summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2019-12-16 21:19:30 +0100
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2019-12-16 21:19:30 +0100
commit10f1958417a4944a60a08230eae6a639209d52f8 (patch)
tree7662166d1cf40507e65fba6dbb9ee73a7c652afc
parent963c37d5c0eb62b38f8764b23931c0dcdd497a13 (diff)
parenta2e487ce1c59d19345d9ecacc58de79febd869e4 (diff)
Merge branch 'master' of git://sourceware.org/git/glibc into upstreamupstream
-rw-r--r--ChangeLog24396
-rw-r--r--ChangeLog.old/ChangeLog.1024
-rw-r--r--ChangeLog.old/ChangeLog.1138
-rw-r--r--ChangeLog.old/ChangeLog.1210
-rw-r--r--ChangeLog.old/ChangeLog.132
-rw-r--r--ChangeLog.old/ChangeLog.1412
-rw-r--r--ChangeLog.old/ChangeLog.152
-rw-r--r--ChangeLog.old/ChangeLog.1730
-rw-r--r--ChangeLog.old/ChangeLog.1859
-rw-r--r--ChangeLog.old/ChangeLog.1939254
-rw-r--r--ChangeLog.old/ChangeLog.52
-rw-r--r--ChangeLog.old/ChangeLog.64
-rw-r--r--ChangeLog.old/ChangeLog.712
-rw-r--r--ChangeLog.old/ChangeLog.812
-rw-r--r--ChangeLog.old/ChangeLog.914
-rw-r--r--ChangeLog.old/ChangeLog.localedata36
-rw-r--r--ChangeLog.old/ChangeLog.nptl2
-rw-r--r--INSTALL146
-rw-r--r--LICENSES4
-rw-r--r--Makeconfig128
-rw-r--r--Makefile308
-rw-r--r--Makefile.help42
-rw-r--r--Makerules178
-rw-r--r--NEWS590
-rw-r--r--README7
-rw-r--r--Rules60
-rw-r--r--argp/Makefile9
-rw-r--r--argp/argp-ba.c4
-rw-r--r--argp/argp-eexst.c4
-rw-r--r--argp/argp-fmtstream.c11
-rw-r--r--argp/argp-fmtstream.h4
-rw-r--r--argp/argp-fs-xinl.c4
-rw-r--r--argp/argp-help.c48
-rw-r--r--argp/argp-namefrob.h6
-rw-r--r--argp/argp-parse.c4
-rw-r--r--argp/argp-pv.c4
-rw-r--r--argp/argp-pvh.c4
-rw-r--r--argp/argp-test.c6
-rw-r--r--argp/argp-xinl.c4
-rw-r--r--argp/argp.h8
-rw-r--r--argp/bits/argp-ldbl.h24
-rw-r--r--argp/tst-argp1.c4
-rw-r--r--argp/tst-argp2.c4
-rw-r--r--argp/tst-ldbl-argp.c102
-rw-r--r--assert/Makefile4
-rw-r--r--assert/__assert.c4
-rw-r--r--assert/assert-perr.c4
-rw-r--r--assert/assert.c4
-rw-r--r--assert/assert.h4
-rw-r--r--assert/tst-assert-c++.cc7
-rw-r--r--assert/tst-assert-g++.cc4
-rw-r--r--benchtests/Makefile60
-rw-r--r--benchtests/README12
-rw-r--r--benchtests/bench-bcopy.c20
-rw-r--r--benchtests/bench-bzero.c19
-rw-r--r--benchtests/bench-malloc-simple.c185
-rw-r--r--benchtests/bench-malloc-thread.c11
-rw-r--r--benchtests/bench-math-inlines.c6
-rw-r--r--benchtests/bench-memccpy.c31
-rw-r--r--benchtests/bench-memchr.c11
-rw-r--r--benchtests/bench-memcmp.c27
-rw-r--r--benchtests/bench-memcpy-large.c4
-rw-r--r--benchtests/bench-memcpy-random.c6
-rw-r--r--benchtests/bench-memcpy-walk.c12
-rw-r--r--benchtests/bench-memcpy.c32
-rw-r--r--benchtests/bench-memmem.c85
-rw-r--r--benchtests/bench-memmove-large.c12
-rw-r--r--benchtests/bench-memmove-walk.c20
-rw-r--r--benchtests/bench-memmove.c66
-rw-r--r--benchtests/bench-mempcpy.c18
-rw-r--r--benchtests/bench-memrchr.c4
-rw-r--r--benchtests/bench-memset-large.c49
-rw-r--r--benchtests/bench-memset-walk.c63
-rw-r--r--benchtests/bench-memset.c105
-rw-r--r--benchtests/bench-rawmemchr.c23
-rw-r--r--benchtests/bench-skeleton.c17
-rw-r--r--benchtests/bench-stpcpy.c30
-rw-r--r--benchtests/bench-stpcpy_chk.c4
-rw-r--r--benchtests/bench-stpncpy.c59
-rw-r--r--benchtests/bench-strcasecmp.c24
-rw-r--r--benchtests/bench-strcasestr.c31
-rw-r--r--benchtests/bench-strcat.c38
-rw-r--r--benchtests/bench-strchr.c37
-rw-r--r--benchtests/bench-strchrnul.c4
-rw-r--r--benchtests/bench-strcmp.c63
-rw-r--r--benchtests/bench-strcoll.c4
-rw-r--r--benchtests/bench-strcpy.c51
-rw-r--r--benchtests/bench-strcpy_chk.c6
-rw-r--r--benchtests/bench-strcspn.c30
-rw-r--r--benchtests/bench-string.h125
-rw-r--r--benchtests/bench-strlen.c114
-rw-r--r--benchtests/bench-strncasecmp.c27
-rw-r--r--benchtests/bench-strncat.c47
-rw-r--r--benchtests/bench-strncmp.c52
-rw-r--r--benchtests/bench-strncpy.c67
-rw-r--r--benchtests/bench-strnlen.c46
-rw-r--r--benchtests/bench-strpbrk.c36
-rw-r--r--benchtests/bench-strrchr.c17
-rw-r--r--benchtests/bench-strsep.c6
-rw-r--r--benchtests/bench-strspn.c40
-rw-r--r--benchtests/bench-strstr.c306
-rw-r--r--benchtests/bench-strtod.c12
-rw-r--r--benchtests/bench-strtok.c6
-rw-r--r--benchtests/bench-timing-type.c4
-rw-r--r--benchtests/bench-timing.h48
-rw-r--r--benchtests/bench-util.c4
-rw-r--r--benchtests/bench-util.h4
-rw-r--r--benchtests/bench-wcpcpy.c4
-rw-r--r--benchtests/bench-wcpncpy.c4
-rw-r--r--benchtests/bench-wcscat.c4
-rw-r--r--benchtests/bench-wcschr.c4
-rw-r--r--benchtests/bench-wcschrnul.c4
-rw-r--r--benchtests/bench-wcscmp.c4
-rw-r--r--benchtests/bench-wcscpy.c4
-rw-r--r--benchtests/bench-wcscspn.c4
-rw-r--r--benchtests/bench-wcslen.c4
-rw-r--r--benchtests/bench-wcsncat.c4
-rw-r--r--benchtests/bench-wcsncmp.c4
-rw-r--r--benchtests/bench-wcsncpy.c4
-rw-r--r--benchtests/bench-wcsnlen.c5
-rw-r--r--benchtests/bench-wcspbrk.c4
-rw-r--r--benchtests/bench-wcsrchr.c4
-rw-r--r--benchtests/bench-wcsspn.c4
-rw-r--r--benchtests/bench-wmemchr.c4
-rw-r--r--benchtests/bench-wmemcmp.c4
-rw-r--r--benchtests/bench-wmemset.c4
-rw-r--r--benchtests/hypot-inputs16
-rw-r--r--benchtests/isfinite-inputs21
-rw-r--r--benchtests/isinf-inputs21
-rw-r--r--benchtests/isnan-inputs21
-rw-r--r--benchtests/json-lib.c4
-rw-r--r--benchtests/json-lib.h4
-rw-r--r--benchtests/logb-inputs11
-rw-r--r--benchtests/logbf-inputs11
-rw-r--r--benchtests/pthread_once-source.c4
-rwxr-xr-xbenchtests/scripts/bench.py4
-rw-r--r--benchtests/scripts/benchout.schema.json4
-rwxr-xr-xbenchtests/scripts/compare_bench.py40
-rwxr-xr-xbenchtests/scripts/compare_strings.py9
-rw-r--r--benchtests/scripts/import_bench.py4
-rwxr-xr-xbenchtests/scripts/plot_strings.py395
-rwxr-xr-xbenchtests/scripts/validate_benchout.py4
-rw-r--r--benchtests/thread_create-source.c4
-rw-r--r--bits/byteswap.h4
-rw-r--r--bits/confname.h4
-rw-r--r--bits/dirent.h4
-rw-r--r--bits/dirent_ext.h21
-rw-r--r--bits/dlfcn.h4
-rw-r--r--bits/environments.h4
-rw-r--r--bits/errno.h4
-rw-r--r--bits/fcntl.h4
-rw-r--r--bits/fenv.h6
-rw-r--r--bits/floatn-common.h4
-rw-r--r--bits/floatn.h4
-rw-r--r--bits/flt-eval-method.h4
-rw-r--r--bits/fp-fast.h4
-rw-r--r--bits/fp-logb.h4
-rw-r--r--bits/hwcap.h4
-rw-r--r--bits/in.h4
-rw-r--r--bits/indirect-return.h4
-rw-r--r--bits/ioctl-types.h4
-rw-r--r--bits/ipc.h4
-rw-r--r--bits/ipctypes.h4
-rw-r--r--bits/iscanonical.h4
-rw-r--r--bits/libc-header-start.h24
-rw-r--r--bits/libm-simd-decl-stubs.h4
-rw-r--r--bits/long-double.h4
-rw-r--r--bits/math-vector.h4
-rw-r--r--bits/mathdef.h4
-rw-r--r--bits/mman.h4
-rw-r--r--bits/mqueue.h4
-rw-r--r--bits/msq.h4
-rw-r--r--bits/netdb.h4
-rw-r--r--bits/param.h4
-rw-r--r--bits/poll.h4
-rw-r--r--bits/resource.h4
-rw-r--r--bits/sched.h4
-rw-r--r--bits/select.h4
-rw-r--r--bits/sem.h4
-rw-r--r--bits/shm.h4
-rw-r--r--bits/sigaction.h4
-rw-r--r--bits/sigcontext.h4
-rw-r--r--bits/sigevent-consts.h4
-rw-r--r--bits/siginfo-consts.h4
-rw-r--r--bits/signal_ext.h21
-rw-r--r--bits/signum-generic.h4
-rw-r--r--bits/signum.h4
-rw-r--r--bits/sigstack.h4
-rw-r--r--bits/sigthread.h4
-rw-r--r--bits/sockaddr.h4
-rw-r--r--bits/socket.h4
-rw-r--r--bits/ss_flags.h4
-rw-r--r--bits/stat.h4
-rw-r--r--bits/statfs.h4
-rw-r--r--bits/statvfs.h4
-rw-r--r--bits/stdint-intn.h4
-rw-r--r--bits/stdint-uintn.h4
-rw-r--r--bits/stdlib-bsearch.h4
-rw-r--r--bits/stropts.h230
-rw-r--r--bits/sys_errlist.h4
-rw-r--r--bits/syslog-path.h4
-rw-r--r--bits/sysmacros.h4
-rw-r--r--bits/termios.h4
-rw-r--r--bits/time.h4
-rw-r--r--bits/time64.h36
-rw-r--r--bits/timesize.h22
-rw-r--r--bits/types/error_t.h4
-rw-r--r--bits/types/stack_t.h4
-rw-r--r--bits/types/struct_sched_param.h4
-rw-r--r--bits/typesizes.h9
-rw-r--r--bits/uintn-identity.h4
-rw-r--r--bits/uio-ext.h4
-rw-r--r--bits/uio_lim.h4
-rw-r--r--bits/unistd_ext.h21
-rw-r--r--bits/utmp.h108
-rw-r--r--bits/utsname.h4
-rw-r--r--bits/waitflags.h4
-rw-r--r--bits/waitstatus.h4
-rw-r--r--bits/wchar.h4
-rw-r--r--bits/xtitypes.h33
-rw-r--r--catgets/Makefile4
-rw-r--r--catgets/catgets.c4
-rw-r--r--catgets/catgetsinfo.h4
-rw-r--r--catgets/gencat.c12
-rw-r--r--catgets/nl_types.h4
-rw-r--r--catgets/open_catalog.c4
-rwxr-xr-xcatgets/test-gencat.sh4
-rw-r--r--catgets/xopen-msg.awk4
-rw-r--r--config.h.in21
-rw-r--r--config.make.in3
-rwxr-xr-xconfigure125
-rw-r--r--configure.ac78
-rw-r--r--conform/GlibcConform.pm74
-rw-r--r--conform/Makefile56
-rwxr-xr-xconform/check-header-lists.sh4
-rw-r--r--conform/conformtest.pl898
-rw-r--r--conform/conformtest.py734
-rw-r--r--conform/data/arpa/inet.h-data24
-rw-r--r--conform/data/fcntl.h-data2
-rw-r--r--conform/data/signal.h-data3
-rw-r--r--conform/data/spawn.h-data4
-rw-r--r--conform/data/stropts.h-data140
-rw-r--r--conform/data/sys/ipc.h-data3
-rw-r--r--conform/data/sys/wait.h-data3
-rw-r--r--conform/data/termios.h-data2
-rw-r--r--conform/data/wchar.h-data4
-rw-r--r--conform/glibcconform.py94
-rw-r--r--conform/linknamespace.pl233
-rw-r--r--conform/linknamespace.py217
-rw-r--r--conform/list-header-symbols.pl83
-rw-r--r--conform/list-header-symbols.py76
-rw-r--r--crypt/Makefile4
-rw-r--r--crypt/badsalttest.c5
-rw-r--r--crypt/crypt-entry.c4
-rw-r--r--crypt/crypt-private.h4
-rw-r--r--crypt/crypt.c4
-rw-r--r--crypt/crypt.h4
-rw-r--r--crypt/crypt_util.c4
-rw-r--r--crypt/md5-crypt.c4
-rw-r--r--crypt/md5.c8
-rw-r--r--crypt/md5.h4
-rw-r--r--crypt/md5test-giant.c4
-rw-r--r--crypt/sha256-crypt.c4
-rw-r--r--crypt/sha256.c8
-rw-r--r--crypt/sha256.h4
-rw-r--r--crypt/sha256c-test.c1
-rw-r--r--crypt/sha512-crypt.c4
-rw-r--r--crypt/sha512.c8
-rw-r--r--crypt/sha512.h4
-rw-r--r--crypt/ufc-crypt.h4
-rw-r--r--crypt/ufc.c4
-rw-r--r--csu/Makefile4
-rw-r--r--csu/abi-note.S4
-rw-r--r--csu/check_fds.c4
-rw-r--r--csu/dso_handle.c4
-rw-r--r--csu/elf-init.c4
-rw-r--r--csu/errno-loc.c4
-rw-r--r--csu/errno.c4
-rw-r--r--csu/gmon-start.c4
-rw-r--r--csu/init-first.c4
-rw-r--r--csu/init.c4
-rw-r--r--csu/libc-start.c6
-rw-r--r--csu/libc-tls.c38
-rw-r--r--csu/static-reloc.c4
-rw-r--r--csu/version.c6
-rw-r--r--ctype/Makefile4
-rw-r--r--ctype/ctype-c99.c4
-rw-r--r--ctype/ctype-c99_l.c4
-rw-r--r--ctype/ctype-extn.c4
-rw-r--r--ctype/ctype-info.c4
-rw-r--r--ctype/ctype.c4
-rw-r--r--ctype/ctype.h6
-rw-r--r--ctype/ctype_l.c4
-rw-r--r--ctype/isctype.c4
-rw-r--r--ctype/test_ctype.c4
-rw-r--r--debug/Makefile6
-rw-r--r--debug/asprintf_chk.c24
-rw-r--r--debug/backtrace.c4
-rw-r--r--debug/backtracesyms.c4
-rw-r--r--debug/backtracesymsfd.c4
-rwxr-xr-xdebug/catchsegv.sh6
-rw-r--r--debug/chk_fail.c4
-rw-r--r--debug/confstr_chk.c4
-rw-r--r--debug/dprintf_chk.c24
-rw-r--r--debug/execinfo.h4
-rw-r--r--debug/explicit_bzero_chk.c4
-rw-r--r--debug/fdelt_chk.c4
-rw-r--r--debug/fgets_chk.c4
-rw-r--r--debug/fgets_u_chk.c4
-rw-r--r--debug/fgetws_chk.c4
-rw-r--r--debug/fgetws_u_chk.c4
-rw-r--r--debug/fortify_fail.c30
-rw-r--r--debug/fprintf_chk.c24
-rw-r--r--debug/fread_chk.c4
-rw-r--r--debug/fread_u_chk.c4
-rw-r--r--debug/fwprintf_chk.c24
-rw-r--r--debug/getcwd_chk.c4
-rw-r--r--debug/getdomainname_chk.c4
-rw-r--r--debug/getgroups_chk.c4
-rw-r--r--debug/gethostname_chk.c4
-rw-r--r--debug/gets_chk.c20
-rw-r--r--debug/getwd_chk.c4
-rw-r--r--debug/longjmp_chk.c4
-rw-r--r--debug/mbsnrtowcs_chk.c4
-rw-r--r--debug/mbsrtowcs_chk.c4
-rw-r--r--debug/mbstowcs_chk.c4
-rw-r--r--debug/memcpy_chk.c4
-rw-r--r--debug/memmove_chk.c4
-rw-r--r--debug/mempcpy_chk.c4
-rw-r--r--debug/memset_chk.c4
-rw-r--r--debug/noophooks.c4
-rw-r--r--debug/obprintf_chk.c100
-rw-r--r--debug/pcprofile.c4
-rw-r--r--debug/pcprofiledump.c6
-rw-r--r--debug/poll_chk.c4
-rw-r--r--debug/ppoll_chk.c4
-rw-r--r--debug/pread64_chk.c4
-rw-r--r--debug/pread_chk.c4
-rw-r--r--debug/printf_chk.c24
-rw-r--r--debug/read_chk.c4
-rw-r--r--debug/readlink_chk.c8
-rw-r--r--debug/readlinkat_chk.c4
-rw-r--r--debug/readonly-area.c4
-rw-r--r--debug/realpath_chk.c4
-rw-r--r--debug/recv_chk.c4
-rw-r--r--debug/recvfrom_chk.c4
-rw-r--r--debug/segfault.c20
-rw-r--r--debug/snprintf_chk.c28
-rw-r--r--debug/sprintf_chk.c33
-rw-r--r--debug/stack_chk_fail.c11
-rw-r--r--debug/stack_chk_fail_local.c4
-rw-r--r--debug/stpcpy_chk.c4
-rw-r--r--debug/stpncpy_chk.c4
-rw-r--r--debug/strcat_chk.c4
-rw-r--r--debug/strcpy_chk.c4
-rw-r--r--debug/strncat_chk.c4
-rw-r--r--debug/strncpy_chk.c4
-rw-r--r--debug/swprintf_chk.c31
-rw-r--r--debug/test-stpcpy_chk.c4
-rw-r--r--debug/test-strcpy_chk.c4
-rw-r--r--debug/tst-backtrace.h4
-rw-r--r--debug/tst-backtrace2.c4
-rw-r--r--debug/tst-backtrace3.c4
-rw-r--r--debug/tst-backtrace4.c4
-rw-r--r--debug/tst-backtrace5.c23
-rw-r--r--debug/tst-backtrace6.c4
-rw-r--r--debug/tst-chk1.c4
-rw-r--r--debug/tst-longjmp_chk3.c4
-rw-r--r--debug/tst-ssp-1.c4
-rw-r--r--debug/ttyname_r_chk.c4
-rw-r--r--debug/vasprintf_chk.c72
-rw-r--r--debug/vdprintf_chk.c41
-rw-r--r--debug/vfprintf_chk.c25
-rw-r--r--debug/vfwprintf_chk.c25
-rw-r--r--debug/vobprintf_chk.c31
-rw-r--r--debug/vprintf_chk.c24
-rw-r--r--debug/vsnprintf_chk.c50
-rw-r--r--debug/vsprintf_chk.c77
-rw-r--r--debug/vswprintf_chk.c55
-rw-r--r--debug/vwprintf_chk.c25
-rw-r--r--debug/warning-nop.c4
-rw-r--r--debug/wcpcpy_chk.c4
-rw-r--r--debug/wcpncpy_chk.c4
-rw-r--r--debug/wcrtomb_chk.c4
-rw-r--r--debug/wcscat_chk.c4
-rw-r--r--debug/wcscpy_chk.c4
-rw-r--r--debug/wcsncat_chk.c4
-rw-r--r--debug/wcsncpy_chk.c4
-rw-r--r--debug/wcsnrtombs_chk.c4
-rw-r--r--debug/wcsrtombs_chk.c4
-rw-r--r--debug/wcstombs_chk.c4
-rw-r--r--debug/wctomb_chk.c4
-rw-r--r--debug/wmemcpy_chk.c4
-rw-r--r--debug/wmemmove_chk.c4
-rw-r--r--debug/wmempcpy_chk.c4
-rw-r--r--debug/wmemset_chk.c4
-rw-r--r--debug/wprintf_chk.c25
-rwxr-xr-xdebug/xtrace.sh6
-rw-r--r--dirent/Makefile6
-rw-r--r--dirent/alphasort.c4
-rw-r--r--dirent/alphasort64.c4
-rw-r--r--dirent/closedir.c4
-rw-r--r--dirent/dirent.h10
-rw-r--r--dirent/dirfd.c4
-rw-r--r--dirent/fdopendir.c4
-rw-r--r--dirent/getdents.c4
-rw-r--r--dirent/getdents64.c4
-rw-r--r--dirent/list.c4
-rw-r--r--dirent/opendir-tst1.c4
-rw-r--r--dirent/opendir.c4
-rw-r--r--dirent/readdir.c4
-rw-r--r--dirent/readdir64.c4
-rw-r--r--dirent/readdir64_r.c4
-rw-r--r--dirent/readdir_r.c4
-rw-r--r--dirent/rewinddir.c4
-rw-r--r--dirent/scandir-cancel.c4
-rw-r--r--dirent/scandir-tail-common.c4
-rw-r--r--dirent/scandir-tail.c4
-rw-r--r--dirent/scandir.c4
-rw-r--r--dirent/scandir64-tail.c4
-rw-r--r--dirent/scandir64.c4
-rw-r--r--dirent/scandirat.c4
-rw-r--r--dirent/scandirat64.c4
-rw-r--r--dirent/seekdir.c4
-rw-r--r--dirent/telldir.c4
-rw-r--r--dirent/tst-fdopendir.c1
-rw-r--r--dirent/tst-scandir.c4
-rw-r--r--dirent/versionsort.c4
-rw-r--r--dirent/versionsort64.c4
-rw-r--r--dlfcn/Makefile4
-rw-r--r--dlfcn/bug-dl-leaf-lib-cb.c4
-rw-r--r--dlfcn/bug-dl-leaf-lib.c4
-rw-r--r--dlfcn/bug-dl-leaf.c4
-rw-r--r--dlfcn/dladdr.c4
-rw-r--r--dlfcn/dladdr1.c4
-rw-r--r--dlfcn/dlclose.c4
-rw-r--r--dlfcn/dlerror.c38
-rw-r--r--dlfcn/dlfcn.c4
-rw-r--r--dlfcn/dlfcn.h16
-rw-r--r--dlfcn/dlfreeres.c4
-rw-r--r--dlfcn/dlinfo.c33
-rw-r--r--dlfcn/dlmopen.c4
-rw-r--r--dlfcn/dlopen.c4
-rw-r--r--dlfcn/dlopenold.c4
-rw-r--r--dlfcn/dlsym.c4
-rw-r--r--dlfcn/dlvsym.c4
-rw-r--r--dlfcn/errmsg1.c4
-rw-r--r--dlfcn/errmsg1mod.c4
-rw-r--r--dlfcn/glreflib1.c4
-rw-r--r--dlfcn/glreflib2.c4
-rw-r--r--dlfcn/glrefmain.c4
-rw-r--r--dlfcn/modatexit.c4
-rw-r--r--dlfcn/modcxaatexit.c4
-rw-r--r--dlfcn/modstatic3.c4
-rw-r--r--dlfcn/modstatic5.c4
-rw-r--r--dlfcn/tst-dladdr.c4
-rw-r--r--dlfcn/tst-dlinfo.c4
-rw-r--r--dlfcn/tst-rec-dlopen.c4
-rw-r--r--dlfcn/tstatexit.c4
-rw-r--r--dlfcn/tstcxaatexit.c4
-rw-r--r--dlfcn/tststatic3.c4
-rw-r--r--dlfcn/tststatic4.c4
-rw-r--r--dlfcn/tststatic5.c4
-rw-r--r--elf/Makefile297
-rw-r--r--elf/cache.c19
-rw-r--r--elf/chroot_canon.c4
-rw-r--r--elf/dl-addr-obj.c4
-rw-r--r--elf/dl-addr.c9
-rw-r--r--elf/dl-cache.c9
-rw-r--r--elf/dl-close.c83
-rw-r--r--elf/dl-conflict.c4
-rw-r--r--elf/dl-debug.c4
-rw-r--r--elf/dl-deps.c4
-rw-r--r--elf/dl-dst.h4
-rw-r--r--elf/dl-environ.c4
-rw-r--r--elf/dl-error-minimal.c4
-rw-r--r--elf/dl-error-skeleton.c16
-rw-r--r--elf/dl-error.c4
-rw-r--r--elf/dl-exception.c46
-rw-r--r--elf/dl-execstack.c4
-rw-r--r--elf/dl-fini.c13
-rw-r--r--elf/dl-fptr.c4
-rw-r--r--elf/dl-hwcaps.c6
-rw-r--r--elf/dl-hwcaps.h6
-rw-r--r--elf/dl-init.c4
-rw-r--r--elf/dl-iteratephdr.c4
-rw-r--r--elf/dl-libc.c4
-rw-r--r--elf/dl-load.c204
-rw-r--r--elf/dl-load.h6
-rw-r--r--elf/dl-lookup.c146
-rw-r--r--elf/dl-machine-reject-phdr.h4
-rw-r--r--elf/dl-map-segments.h4
-rw-r--r--elf/dl-minimal.c4
-rw-r--r--elf/dl-misc.c4
-rw-r--r--elf/dl-object.c61
-rw-r--r--elf/dl-open.c640
-rw-r--r--elf/dl-origin.c4
-rw-r--r--elf/dl-profile.c4
-rw-r--r--elf/dl-profstub.c4
-rw-r--r--elf/dl-reloc-static-pie.c4
-rw-r--r--elf/dl-reloc.c27
-rw-r--r--elf/dl-runtime.c76
-rw-r--r--elf/dl-scope.c4
-rw-r--r--elf/dl-sort-maps.c4
-rw-r--r--elf/dl-support.c12
-rw-r--r--elf/dl-sym.c42
-rw-r--r--elf/dl-symaddr.c4
-rw-r--r--elf/dl-sysdep-open.h4
-rw-r--r--elf/dl-sysdep.c77
-rw-r--r--elf/dl-tls.c13
-rw-r--r--elf/dl-tunable-types.h4
-rw-r--r--elf/dl-tunables.c7
-rw-r--r--elf/dl-tunables.h7
-rw-r--r--elf/dl-tunables.list11
-rw-r--r--elf/dl-unmap-segments.h4
-rw-r--r--elf/dl-version.c4
-rw-r--r--elf/dl-writev.h4
-rw-r--r--elf/do-rel.h4
-rw-r--r--elf/dynamic-link.h4
-rw-r--r--elf/elf.h110
-rw-r--r--elf/enbl-secure.c4
-rw-r--r--elf/get-dynamic-info.h10
-rw-r--r--elf/ifuncmain9.c107
-rw-r--r--elf/ifuncmain9pic.c1
-rw-r--r--elf/ifuncmain9picstatic.c1
-rw-r--r--elf/ifuncmain9pie.c1
-rw-r--r--elf/ifuncmain9static.c1
-rw-r--r--elf/interp.c4
-rw-r--r--elf/ldconfig.c12
-rw-r--r--elf/ldd.bash.in8
-rw-r--r--elf/link.h4
-rw-r--r--elf/pldd-xx.c118
-rw-r--r--elf/pldd.c70
-rw-r--r--elf/readelflib.c48
-rw-r--r--elf/readlib.c4
-rw-r--r--elf/rtld-Rules4
-rw-r--r--elf/rtld.c681
-rw-r--r--elf/setup-vdso.h4
-rw-r--r--elf/sln.c4
-rw-r--r--elf/sotruss-lib.c4
-rwxr-xr-xelf/sotruss.sh6
-rw-r--r--elf/sprof.c12
-rw-r--r--elf/static-stubs.c4
-rw-r--r--elf/tlsdeschtab.h4
-rw-r--r--elf/tst-_dl_addr_inside_object.c4
-rw-r--r--elf/tst-absolute-sym-lib.c4
-rw-r--r--elf/tst-absolute-sym-lib.lds4
-rw-r--r--elf/tst-absolute-sym.c4
-rw-r--r--elf/tst-absolute-zero-lib.c4
-rw-r--r--elf/tst-absolute-zero.c4
-rw-r--r--elf/tst-align.c4
-rw-r--r--elf/tst-align2.c4
-rw-r--r--elf/tst-alignmod.c4
-rw-r--r--elf/tst-alignmod2.c4
-rw-r--r--elf/tst-audit11.c4
-rw-r--r--elf/tst-audit11mod1.c4
-rw-r--r--elf/tst-audit11mod2.c4
-rw-r--r--elf/tst-audit11mod2.map4
-rw-r--r--elf/tst-audit12.c4
-rw-r--r--elf/tst-audit12mod1.c4
-rw-r--r--elf/tst-audit12mod2.c4
-rw-r--r--elf/tst-audit12mod2.map4
-rw-r--r--elf/tst-audit12mod3.c4
-rw-r--r--elf/tst-audit13.c28
-rw-r--r--elf/tst-audit13mod1.c93
-rw-r--r--elf/tst-auditmany.c26
-rw-r--r--elf/tst-auditmanymod.h64
-rw-r--r--elf/tst-auditmanymod1.c20
-rw-r--r--elf/tst-auditmanymod2.c20
-rw-r--r--elf/tst-auditmanymod3.c20
-rw-r--r--elf/tst-auditmanymod4.c20
-rw-r--r--elf/tst-auditmanymod5.c20
-rw-r--r--elf/tst-auditmanymod6.c20
-rw-r--r--elf/tst-auditmanymod7.c20
-rw-r--r--elf/tst-auditmanymod8.c20
-rw-r--r--elf/tst-auditmanymod9.c20
-rw-r--r--elf/tst-auditmod11.c4
-rw-r--r--elf/tst-auditmod12.c4
-rw-r--r--elf/tst-auxv.c4
-rw-r--r--elf/tst-big-note-lib.S14
-rw-r--r--elf/tst-big-note.c4
-rw-r--r--elf/tst-create_format1.c103
-rw-r--r--elf/tst-debug1.c4
-rw-r--r--elf/tst-dl-iter-static.c4
-rw-r--r--elf/tst-dlmodcount.c4
-rw-r--r--elf/tst-dlopen-aout.c67
-rw-r--r--elf/tst-dlopen-nodelete-reloc-mod1.c39
-rw-r--r--elf/tst-dlopen-nodelete-reloc-mod10.c41
-rw-r--r--elf/tst-dlopen-nodelete-reloc-mod11.cc49
-rw-r--r--elf/tst-dlopen-nodelete-reloc-mod12.cc42
-rw-r--r--elf/tst-dlopen-nodelete-reloc-mod13.cc48
-rw-r--r--elf/tst-dlopen-nodelete-reloc-mod13.h24
-rw-r--r--elf/tst-dlopen-nodelete-reloc-mod14.cc42
-rw-r--r--elf/tst-dlopen-nodelete-reloc-mod15.cc42
-rw-r--r--elf/tst-dlopen-nodelete-reloc-mod16.c27
-rw-r--r--elf/tst-dlopen-nodelete-reloc-mod17.c19
-rw-r--r--elf/tst-dlopen-nodelete-reloc-mod2.c38
-rw-r--r--elf/tst-dlopen-nodelete-reloc-mod3.c38
-rw-r--r--elf/tst-dlopen-nodelete-reloc-mod4.c37
-rw-r--r--elf/tst-dlopen-nodelete-reloc-mod5.c38
-rw-r--r--elf/tst-dlopen-nodelete-reloc-mod6.cc42
-rw-r--r--elf/tst-dlopen-nodelete-reloc-mod7.cc48
-rw-r--r--elf/tst-dlopen-nodelete-reloc-mod8.c41
-rw-r--r--elf/tst-dlopen-nodelete-reloc-mod9.cc42
-rw-r--r--elf/tst-dlopen-nodelete-reloc.c179
-rw-r--r--elf/tst-dlopen-nodelete-reloc.h35
-rw-r--r--elf/tst-dlopen-pie.c49
-rw-r--r--elf/tst-dlopen-self-container.c19
-rw-r--r--elf/tst-dlopen-self-pie.c19
-rw-r--r--elf/tst-dlopen-self.c55
-rw-r--r--elf/tst-dlopen-tlsmodid-container.c39
-rw-r--r--elf/tst-dlopen-tlsmodid-pie.c20
-rw-r--r--elf/tst-dlopen-tlsmodid.c25
-rw-r--r--elf/tst-dlopen-tlsmodid.h87
-rw-r--r--elf/tst-dlopenfail.c79
-rw-r--r--elf/tst-dlopenfaillinkmod.c17
-rw-r--r--elf/tst-dlopenfailmod1.c36
-rw-r--r--elf/tst-dlopenfailmod2.c29
-rw-r--r--elf/tst-dlopenrpath.c4
-rw-r--r--elf/tst-dlopenrpathmod.c4
-rw-r--r--elf/tst-dlsym-error.c4
-rw-r--r--elf/tst-env-setuid-tunables.c4
-rw-r--r--elf/tst-env-setuid.c4
-rw-r--r--elf/tst-finilazyfailmod.c27
-rw-r--r--elf/tst-gnu2-tls1.c4
-rw-r--r--elf/tst-gnu2-tls1mod.c4
-rw-r--r--elf/tst-ifunc-fault-bindnow.c21
-rw-r--r--elf/tst-ifunc-fault-lazy.c57
-rw-r--r--elf/tst-ifunc-textrel.c45
-rw-r--r--elf/tst-initfinilazyfail.c84
-rw-r--r--elf/tst-initlazyfailmod.c27
-rw-r--r--elf/tst-latepthread.c4
-rw-r--r--elf/tst-latepthreadmod.c4
-rw-r--r--elf/tst-ldconfig-X.sh4
-rw-r--r--elf/tst-ldconfig-bad-aux-cache.c112
-rw-r--r--elf/tst-ldconfig-bad-aux-cache.root/etc/ld.so.conf2
-rw-r--r--elf/tst-ldconfig-bad-aux-cache.root/postclean.req0
-rw-r--r--elf/tst-libc_dlvsym-dso.c4
-rw-r--r--elf/tst-libc_dlvsym-static.c4
-rw-r--r--elf/tst-libc_dlvsym.c4
-rw-r--r--elf/tst-libc_dlvsym.h4
-rw-r--r--elf/tst-linkall-static.c4
-rw-r--r--elf/tst-main1.c4
-rw-r--r--elf/tst-main1mod.c4
-rw-r--r--elf/tst-nodelete-dlclose-dso.c4
-rw-r--r--elf/tst-nodelete-dlclose-plugin.c4
-rw-r--r--elf/tst-nodelete-dlclose.c4
-rw-r--r--elf/tst-nodelete-opened-lib.c4
-rw-r--r--elf/tst-nodelete-opened.c4
-rw-r--r--elf/tst-noload.c4
-rw-r--r--elf/tst-null-argv-lib.c4
-rw-r--r--elf/tst-null-argv.c4
-rwxr-xr-xelf/tst-pathopt.sh4
-rw-r--r--elf/tst-pie2.c4
-rw-r--r--elf/tst-pldd.c168
-rw-r--r--elf/tst-prelink.c4
-rw-r--r--elf/tst-protected1a.c4
-rw-r--r--elf/tst-protected1b.c4
-rw-r--r--elf/tst-protected1mod.h4
-rw-r--r--elf/tst-protected1moda.c4
-rw-r--r--elf/tst-protected1modb.c4
-rw-r--r--elf/tst-ptrguard1.c4
-rwxr-xr-xelf/tst-rtld-load-self.sh4
-rwxr-xr-xelf/tst-rtld-preload.sh38
-rw-r--r--elf/tst-sonamemove-dlopen.c35
-rw-r--r--elf/tst-sonamemove-link.c41
-rw-r--r--elf/tst-sonamemove-linkmod1.c25
-rw-r--r--elf/tst-sonamemove-linkmod1.map3
-rw-r--r--elf/tst-sonamemove-runmod1.c23
-rw-r--r--elf/tst-sonamemove-runmod1.map3
-rw-r--r--elf/tst-sonamemove-runmod2.c24
-rw-r--r--elf/tst-sonamemove-runmod2.map3
-rw-r--r--elf/tst-stackguard1.c4
-rw-r--r--elf/tst-tls-manydynamic.c4
-rw-r--r--elf/tst-tls-manydynamic.h4
-rw-r--r--elf/tst-tls-manydynamicmod.c4
-rw-r--r--elf/tst-tlsalign-extern.c4
-rw-r--r--elf/tst-tlsalign.c4
-rw-r--r--elf/tst-unwind-ctor-lib.c42
-rw-r--r--elf/tst-unwind-ctor.c27
-rw-r--r--elf/tst-unwind-main.c60
-rw-r--r--elf/vismain.c4
-rw-r--r--elf/vismod1.c4
-rw-r--r--elf/vismod2.c4
-rw-r--r--elf/vismod3.c4
-rw-r--r--gmon/Makefile4
-rw-r--r--gmon/Versions2
-rw-r--r--gmon/profil.c4
-rw-r--r--gmon/sprofil.c4
-rw-r--r--gmon/sys/gmon_out.h4
-rw-r--r--gmon/sys/profil.h4
-rw-r--r--gmon/tst-gmon-gprof.sh4
-rw-r--r--gmon/tst-gmon-static-gprof.sh4
-rw-r--r--gmon/tst-gmon.c4
-rw-r--r--gmon/tst-sprofil.c4
-rw-r--r--gnulib/Makefile4
-rw-r--r--gnulib/tst-gcc.c4
-rw-r--r--grp/Makefile4
-rw-r--r--grp/fgetgrent.c4
-rw-r--r--grp/fgetgrent_r.c4
-rw-r--r--grp/getgrent.c4
-rw-r--r--grp/getgrent_r.c4
-rw-r--r--grp/getgrgid.c4
-rw-r--r--grp/getgrgid_r.c4
-rw-r--r--grp/getgrnam.c4
-rw-r--r--grp/getgrnam_r.c4
-rw-r--r--grp/grp-merge.c4
-rw-r--r--grp/grp-merge.h4
-rw-r--r--grp/grp.h4
-rw-r--r--grp/initgroups.c14
-rw-r--r--grp/putgrent.c4
-rw-r--r--grp/setgroups.c4
-rw-r--r--grp/tst-putgrent.c4
-rw-r--r--grp/tst_fgetgrent.c4
-rw-r--r--grp/tst_fgetgrent.sh4
-rw-r--r--gshadow/Makefile4
-rw-r--r--gshadow/fgetsgent.c4
-rw-r--r--gshadow/fgetsgent_r.c10
-rw-r--r--gshadow/getsgent.c4
-rw-r--r--gshadow/getsgent_r.c4
-rw-r--r--gshadow/getsgnam.c4
-rw-r--r--gshadow/getsgnam_r.c4
-rw-r--r--gshadow/gshadow.h4
-rw-r--r--gshadow/putsgent.c4
-rw-r--r--gshadow/sgetsgent.c4
-rw-r--r--gshadow/sgetsgent_r.c4
-rw-r--r--gshadow/tst-putsgent.c4
-rw-r--r--hesiod/Makefile4
-rw-r--r--hesiod/hesiod.c4
-rw-r--r--hesiod/hesiod.h4
-rw-r--r--hesiod/hesiod_p.h4
-rw-r--r--hesiod/nss_hesiod/hesiod-grp.c4
-rw-r--r--hesiod/nss_hesiod/hesiod-proto.c4
-rw-r--r--hesiod/nss_hesiod/hesiod-pwd.c4
-rw-r--r--hesiod/nss_hesiod/hesiod-service.c4
-rw-r--r--htl/Makefile4
-rw-r--r--htl/Versions2
-rw-r--r--htl/alloca_cutoff.c4
-rw-r--r--htl/cthreads-compat.c4
-rw-r--r--htl/forward.c4
-rw-r--r--htl/libc_pthread_init.c4
-rw-r--r--htl/lockfile.c4
-rw-r--r--htl/pt-alloc.c4
-rw-r--r--htl/pt-cancel.c4
-rw-r--r--htl/pt-cleanup.c4
-rw-r--r--htl/pt-create.c4
-rw-r--r--htl/pt-dealloc.c4
-rw-r--r--htl/pt-detach.c4
-rw-r--r--htl/pt-exit.c4
-rw-r--r--htl/pt-getattr.c10
-rw-r--r--htl/pt-initialize.c4
-rw-r--r--htl/pt-internal.h4
-rw-r--r--htl/pt-join.c4
-rw-r--r--htl/pt-self.c4
-rw-r--r--htl/pt-setcancelstate.c4
-rw-r--r--htl/pt-setcanceltype.c4
-rw-r--r--htl/pt-sigmask.c4
-rw-r--r--htl/pt-spin-inlines.c4
-rw-r--r--htl/pt-testcancel.c4
-rw-r--r--htl/pt-yield.c4
-rw-r--r--htl/tests/test-1.c4
-rw-r--r--htl/tests/test-10.c4
-rw-r--r--htl/tests/test-11.c4
-rw-r--r--htl/tests/test-12.c4
-rw-r--r--htl/tests/test-13.c4
-rw-r--r--htl/tests/test-14.c4
-rw-r--r--htl/tests/test-15.c4
-rw-r--r--htl/tests/test-16.c4
-rw-r--r--htl/tests/test-17.c4
-rw-r--r--htl/tests/test-2.c4
-rw-r--r--htl/tests/test-3.c4
-rw-r--r--htl/tests/test-4.c4
-rw-r--r--htl/tests/test-5.c4
-rw-r--r--htl/tests/test-6.c4
-rw-r--r--htl/tests/test-7.c4
-rw-r--r--htl/tests/test-8.c4
-rw-r--r--htl/tests/test-9.c4
-rw-r--r--htl/tests/test-__pthread_destroy_specific-skip.c4
-rw-r--r--hurd/Makefile9
-rw-r--r--hurd/Versions4
-rw-r--r--hurd/alloc-fd.c4
-rw-r--r--hurd/catch-exc.c4
-rw-r--r--hurd/catch-signal.c4
-rw-r--r--hurd/compat-20.c4
-rw-r--r--hurd/ctty-input.c8
-rw-r--r--hurd/ctty-output.c8
-rw-r--r--hurd/dtable.c32
-rw-r--r--hurd/exc2signal.c4
-rw-r--r--hurd/fchroot.c4
-rw-r--r--hurd/fcntl-internal.h2
-rw-r--r--hurd/fd-close.c4
-rw-r--r--hurd/fd-read.c4
-rw-r--r--hurd/fd-write.c4
-rw-r--r--hurd/fopenport.c4
-rw-r--r--hurd/get-host.c4
-rw-r--r--hurd/getdport.c8
-rw-r--r--hurd/geteuids.c4
-rw-r--r--hurd/getumask.c4
-rw-r--r--hurd/hurd-raise.c4
-rw-r--r--hurd/hurd.h4
-rw-r--r--hurd/hurd/fd.h4
-rw-r--r--hurd/hurd/id.h4
-rw-r--r--hurd/hurd/ioctl.h4
-rw-r--r--hurd/hurd/lookup.h4
-rw-r--r--hurd/hurd/port.h29
-rw-r--r--hurd/hurd/resource.h4
-rw-r--r--hurd/hurd/signal.h15
-rw-r--r--hurd/hurd/sigpreempt.h8
-rw-r--r--hurd/hurd/threadvar.h4
-rw-r--r--hurd/hurd/userlink.h28
-rw-r--r--hurd/hurd/xattr.h4
-rw-r--r--hurd/hurdauth.c4
-rw-r--r--hurd/hurdchdir.c4
-rw-r--r--hurd/hurdexec.c4
-rw-r--r--hurd/hurdfault.c8
-rw-r--r--hurd/hurdfault.h4
-rw-r--r--hurd/hurdfchdir.c4
-rw-r--r--hurd/hurdhost.h4
-rw-r--r--hurd/hurdid.c4
-rw-r--r--hurd/hurdinit.c22
-rw-r--r--hurd/hurdioctl.c16
-rw-r--r--hurd/hurdkill.c8
-rw-r--r--hurd/hurdlock.c6
-rw-r--r--hurd/hurdlock.h4
-rw-r--r--hurd/hurdlookup.c8
-rw-r--r--hurd/hurdmsg.c4
-rw-r--r--hurd/hurdpid.c4
-rw-r--r--hurd/hurdports.c4
-rw-r--r--hurd/hurdprio.c4
-rw-r--r--hurd/hurdrlimit.c4
-rw-r--r--hurd/hurdselect.c277
-rw-r--r--hurd/hurdsig.c43
-rw-r--r--hurd/hurdsock.c4
-rw-r--r--hurd/hurdsocket.h4
-rw-r--r--hurd/hurdstartup.c10
-rw-r--r--hurd/hurdstartup.h4
-rw-r--r--hurd/intern-fd.c4
-rw-r--r--hurd/intr-msg.c43
-rw-r--r--hurd/intr-rpc.defs4
-rw-r--r--hurd/intr-rpc.h4
-rw-r--r--hurd/longjmp-ts.c4
-rw-r--r--hurd/lookup-at.c36
-rw-r--r--hurd/lookup-retry.c98
-rw-r--r--hurd/msgportdemux.c8
-rw-r--r--hurd/new-fd.c4
-rw-r--r--hurd/openport.c4
-rw-r--r--hurd/path-lookup.c4
-rw-r--r--hurd/pid2task.c4
-rw-r--r--hurd/port-cleanup.c4
-rw-r--r--hurd/port2fd.c9
-rw-r--r--hurd/ports-get.c4
-rw-r--r--hurd/ports-set.c4
-rw-r--r--hurd/preempt-sig.c4
-rw-r--r--hurd/privports.c4
-rw-r--r--hurd/report-wait.c4
-rw-r--r--hurd/set-host.c4
-rw-r--r--hurd/setauth.c32
-rw-r--r--hurd/seteuids.c4
-rw-r--r--hurd/siginfo.c4
-rw-r--r--hurd/sigunwind.c4
-rw-r--r--hurd/task2pid.c4
-rw-r--r--hurd/thread-cancel.c4
-rw-r--r--hurd/thread-self.c4
-rw-r--r--hurd/trampoline.c4
-rw-r--r--hurd/vpprintf.c6
-rw-r--r--hurd/xattr.c4
-rw-r--r--iconv/Makefile9
-rw-r--r--iconv/dummy-repertoire.c4
-rw-r--r--iconv/gconv.c4
-rw-r--r--iconv/gconv.h15
-rw-r--r--iconv/gconv_builtin.c4
-rw-r--r--iconv/gconv_builtin.h4
-rw-r--r--iconv/gconv_cache.c4
-rw-r--r--iconv/gconv_charset.h4
-rw-r--r--iconv/gconv_close.c4
-rw-r--r--iconv/gconv_conf.c224
-rw-r--r--iconv/gconv_db.c12
-rw-r--r--iconv/gconv_dl.c24
-rw-r--r--iconv/gconv_int.h37
-rw-r--r--iconv/gconv_open.c8
-rw-r--r--iconv/gconv_simple.c36
-rw-r--r--iconv/gconv_trans.c4
-rw-r--r--iconv/iconv.c4
-rw-r--r--iconv/iconv.h4
-rw-r--r--iconv/iconv_charmap.c4
-rw-r--r--iconv/iconv_close.c4
-rw-r--r--iconv/iconv_open.c4
-rw-r--r--iconv/iconv_prog.c6
-rw-r--r--iconv/iconv_prog.h4
-rw-r--r--iconv/iconvconfig.c10
-rw-r--r--iconv/iconvconfig.h4
-rw-r--r--iconv/loop.c6
-rw-r--r--iconv/skeleton.c41
-rw-r--r--iconv/strtab.c4
-rw-r--r--iconv/test-gconv-modules4
-rw-r--r--iconv/tst-gconv-init-failure-mod.c4
-rw-r--r--iconv/tst-gconv-init-failure.c4
-rw-r--r--iconv/tst-iconv-mt.c142
-rw-r--r--iconv/tst-iconv2.c4
-rw-r--r--iconv/tst-iconv5.c4
-rw-r--r--iconv/tst-iconv6.c4
-rw-r--r--iconv/tst-iconv7.c55
-rw-r--r--iconvdata/8bit-gap.c4
-rw-r--r--iconvdata/8bit-generic.c4
-rw-r--r--iconvdata/Makefile4
-rw-r--r--iconvdata/TESTS4
-rw-r--r--iconvdata/TESTS24
-rw-r--r--iconvdata/ansi_x3.110.c4
-rw-r--r--iconvdata/armscii-8.c4
-rw-r--r--iconvdata/asmo_449.c4
-rw-r--r--iconvdata/big5.c4
-rw-r--r--iconvdata/big5hkscs.c4
-rw-r--r--iconvdata/brf.c4
-rw-r--r--iconvdata/bug-iconv10.c4
-rw-r--r--iconvdata/bug-iconv11.c4
-rw-r--r--iconvdata/bug-iconv12.c4
-rw-r--r--iconvdata/bug-iconv3.c4
-rw-r--r--iconvdata/bug-iconv8.c4
-rw-r--r--iconvdata/cns11643.c4
-rw-r--r--iconvdata/cns11643.h7
-rw-r--r--iconvdata/cns11643l1.c4
-rw-r--r--iconvdata/cns11643l1.h4
-rw-r--r--iconvdata/cns11643l2.h4
-rw-r--r--iconvdata/cp10007.c4
-rw-r--r--iconvdata/cp1125.c4
-rw-r--r--iconvdata/cp1250.c4
-rw-r--r--iconvdata/cp1251.c4
-rw-r--r--iconvdata/cp1252.c4
-rw-r--r--iconvdata/cp1253.c4
-rw-r--r--iconvdata/cp1254.c4
-rw-r--r--iconvdata/cp1255.c4
-rw-r--r--iconvdata/cp1256.c4
-rw-r--r--iconvdata/cp1257.c4
-rw-r--r--iconvdata/cp1258.c4
-rw-r--r--iconvdata/cp737.c4
-rw-r--r--iconvdata/cp737.h4
-rw-r--r--iconvdata/cp770.c4
-rw-r--r--iconvdata/cp771.c4
-rw-r--r--iconvdata/cp772.c4
-rw-r--r--iconvdata/cp773.c4
-rw-r--r--iconvdata/cp774.c4
-rw-r--r--iconvdata/cp775.c4
-rw-r--r--iconvdata/cp775.h4
-rw-r--r--iconvdata/cp932.c4
-rw-r--r--iconvdata/csn_369103.c4
-rw-r--r--iconvdata/cwi.c4
-rw-r--r--iconvdata/dec-mcs.c4
-rw-r--r--iconvdata/ebcdic-at-de-a.c4
-rw-r--r--iconvdata/ebcdic-at-de.c4
-rw-r--r--iconvdata/ebcdic-ca-fr.c4
-rw-r--r--iconvdata/ebcdic-dk-no-a.c4
-rw-r--r--iconvdata/ebcdic-dk-no.c4
-rw-r--r--iconvdata/ebcdic-es-a.c4
-rw-r--r--iconvdata/ebcdic-es-s.c4
-rw-r--r--iconvdata/ebcdic-es.c4
-rw-r--r--iconvdata/ebcdic-fi-se-a.c4
-rw-r--r--iconvdata/ebcdic-fi-se.c4
-rw-r--r--iconvdata/ebcdic-fr.c4
-rw-r--r--iconvdata/ebcdic-is-friss.c4
-rw-r--r--iconvdata/ebcdic-it.c4
-rw-r--r--iconvdata/ebcdic-pt.c4
-rw-r--r--iconvdata/ebcdic-uk.c4
-rw-r--r--iconvdata/ebcdic-us.c4
-rw-r--r--iconvdata/ecma-cyrillic.c4
-rw-r--r--iconvdata/euc-cn.c4
-rw-r--r--iconvdata/euc-jisx0213.c4
-rw-r--r--iconvdata/euc-jp-ms.c4
-rw-r--r--iconvdata/euc-jp.c4
-rw-r--r--iconvdata/euc-kr.c4
-rw-r--r--iconvdata/euc-tw.c4
-rw-r--r--iconvdata/gb18030.c4
-rw-r--r--iconvdata/gb2312.c4
-rw-r--r--iconvdata/gb2312.h4
-rw-r--r--iconvdata/gbbig5.c4
-rw-r--r--iconvdata/gbgbk.c4
-rw-r--r--iconvdata/gbk.c4
-rw-r--r--iconvdata/gconv-modules4
-rw-r--r--iconvdata/georgian-academy.c4
-rw-r--r--iconvdata/georgian-ps.c4
-rw-r--r--iconvdata/gost_19768-74.c4
-rw-r--r--iconvdata/greek-ccitt.c4
-rw-r--r--iconvdata/greek7-old.c4
-rw-r--r--iconvdata/greek7.c4
-rw-r--r--iconvdata/hp-greek8.c4
-rw-r--r--iconvdata/hp-roman8.c4
-rw-r--r--iconvdata/hp-roman9.c4
-rw-r--r--iconvdata/hp-thai8.c4
-rw-r--r--iconvdata/hp-turkish8.c4
-rw-r--r--iconvdata/ibm037.c4
-rw-r--r--iconvdata/ibm038.c4
-rw-r--r--iconvdata/ibm1004.c4
-rw-r--r--iconvdata/ibm1008.c4
-rw-r--r--iconvdata/ibm1008.h4
-rw-r--r--iconvdata/ibm1008_420.c4
-rw-r--r--iconvdata/ibm1025.c4
-rw-r--r--iconvdata/ibm1025.h4
-rw-r--r--iconvdata/ibm1026.c4
-rw-r--r--iconvdata/ibm1046.c4
-rw-r--r--iconvdata/ibm1046.h4
-rw-r--r--iconvdata/ibm1047.c4
-rw-r--r--iconvdata/ibm1097.c4
-rw-r--r--iconvdata/ibm1097.h4
-rw-r--r--iconvdata/ibm1112.c4
-rw-r--r--iconvdata/ibm1112.h4
-rw-r--r--iconvdata/ibm1122.c4
-rw-r--r--iconvdata/ibm1122.h4
-rw-r--r--iconvdata/ibm1123.c4
-rw-r--r--iconvdata/ibm1123.h4
-rw-r--r--iconvdata/ibm1124.c4
-rw-r--r--iconvdata/ibm1124.h4
-rw-r--r--iconvdata/ibm1129.c4
-rw-r--r--iconvdata/ibm1129.h4
-rw-r--r--iconvdata/ibm1130.c4
-rw-r--r--iconvdata/ibm1130.h4
-rw-r--r--iconvdata/ibm1132.c4
-rw-r--r--iconvdata/ibm1132.h4
-rw-r--r--iconvdata/ibm1133.c4
-rw-r--r--iconvdata/ibm1133.h4
-rw-r--r--iconvdata/ibm1137.c4
-rw-r--r--iconvdata/ibm1137.h4
-rw-r--r--iconvdata/ibm1140.c4
-rw-r--r--iconvdata/ibm1140.h4
-rw-r--r--iconvdata/ibm1141.c4
-rw-r--r--iconvdata/ibm1141.h4
-rw-r--r--iconvdata/ibm1142.c4
-rw-r--r--iconvdata/ibm1142.h4
-rw-r--r--iconvdata/ibm1143.c4
-rw-r--r--iconvdata/ibm1143.h4
-rw-r--r--iconvdata/ibm1144.c4
-rw-r--r--iconvdata/ibm1144.h4
-rw-r--r--iconvdata/ibm1145.c4
-rw-r--r--iconvdata/ibm1145.h4
-rw-r--r--iconvdata/ibm1146.c4
-rw-r--r--iconvdata/ibm1146.h4
-rw-r--r--iconvdata/ibm1147.c4
-rw-r--r--iconvdata/ibm1147.h4
-rw-r--r--iconvdata/ibm1148.c4
-rw-r--r--iconvdata/ibm1148.h4
-rw-r--r--iconvdata/ibm1149.c4
-rw-r--r--iconvdata/ibm1149.h4
-rw-r--r--iconvdata/ibm1153.c4
-rw-r--r--iconvdata/ibm1153.h4
-rw-r--r--iconvdata/ibm1154.c4
-rw-r--r--iconvdata/ibm1154.h4
-rw-r--r--iconvdata/ibm1155.c4
-rw-r--r--iconvdata/ibm1155.h4
-rw-r--r--iconvdata/ibm1156.c4
-rw-r--r--iconvdata/ibm1156.h4
-rw-r--r--iconvdata/ibm1157.c4
-rw-r--r--iconvdata/ibm1157.h4
-rw-r--r--iconvdata/ibm1158.c4
-rw-r--r--iconvdata/ibm1158.h4
-rw-r--r--iconvdata/ibm1160.c4
-rw-r--r--iconvdata/ibm1160.h4
-rw-r--r--iconvdata/ibm1161.c4
-rw-r--r--iconvdata/ibm1161.h4
-rw-r--r--iconvdata/ibm1162.c4
-rw-r--r--iconvdata/ibm1162.h4
-rw-r--r--iconvdata/ibm1163.c4
-rw-r--r--iconvdata/ibm1163.h4
-rw-r--r--iconvdata/ibm1164.c4
-rw-r--r--iconvdata/ibm1164.h4
-rw-r--r--iconvdata/ibm1166.c4
-rw-r--r--iconvdata/ibm1166.h4
-rw-r--r--iconvdata/ibm1167.c4
-rw-r--r--iconvdata/ibm1167.h4
-rw-r--r--iconvdata/ibm12712.c4
-rw-r--r--iconvdata/ibm12712.h4
-rw-r--r--iconvdata/ibm1364.c4
-rw-r--r--iconvdata/ibm1364.h4
-rw-r--r--iconvdata/ibm1371.c4
-rw-r--r--iconvdata/ibm1371.h4
-rw-r--r--iconvdata/ibm1388.c4
-rw-r--r--iconvdata/ibm1388.h4
-rw-r--r--iconvdata/ibm1390.c4
-rw-r--r--iconvdata/ibm1390.h4
-rw-r--r--iconvdata/ibm1399.c4
-rw-r--r--iconvdata/ibm1399.h4
-rw-r--r--iconvdata/ibm16804.c4
-rw-r--r--iconvdata/ibm16804.h4
-rw-r--r--iconvdata/ibm256.c4
-rw-r--r--iconvdata/ibm273.c4
-rw-r--r--iconvdata/ibm274.c4
-rw-r--r--iconvdata/ibm275.c4
-rw-r--r--iconvdata/ibm277.c4
-rw-r--r--iconvdata/ibm278.c4
-rw-r--r--iconvdata/ibm280.c4
-rw-r--r--iconvdata/ibm281.c4
-rw-r--r--iconvdata/ibm284.c4
-rw-r--r--iconvdata/ibm285.c4
-rw-r--r--iconvdata/ibm290.c4
-rw-r--r--iconvdata/ibm297.c4
-rw-r--r--iconvdata/ibm420.c4
-rw-r--r--iconvdata/ibm423.c4
-rw-r--r--iconvdata/ibm424.c4
-rw-r--r--iconvdata/ibm437.c4
-rw-r--r--iconvdata/ibm4517.c4
-rw-r--r--iconvdata/ibm4517.h4
-rw-r--r--iconvdata/ibm4899.c4
-rw-r--r--iconvdata/ibm4899.h4
-rw-r--r--iconvdata/ibm4909.c4
-rw-r--r--iconvdata/ibm4909.h4
-rw-r--r--iconvdata/ibm4971.c4
-rw-r--r--iconvdata/ibm4971.h4
-rw-r--r--iconvdata/ibm500.c4
-rw-r--r--iconvdata/ibm5347.c4
-rw-r--r--iconvdata/ibm5347.h4
-rw-r--r--iconvdata/ibm803.c4
-rw-r--r--iconvdata/ibm803.h4
-rw-r--r--iconvdata/ibm850.c4
-rw-r--r--iconvdata/ibm851.c4
-rw-r--r--iconvdata/ibm852.c4
-rw-r--r--iconvdata/ibm855.c4
-rw-r--r--iconvdata/ibm856.c4
-rw-r--r--iconvdata/ibm856.h4
-rw-r--r--iconvdata/ibm857.c4
-rw-r--r--iconvdata/ibm858.c4
-rw-r--r--iconvdata/ibm860.c4
-rw-r--r--iconvdata/ibm861.c4
-rw-r--r--iconvdata/ibm862.c4
-rw-r--r--iconvdata/ibm863.c4
-rw-r--r--iconvdata/ibm864.c4
-rw-r--r--iconvdata/ibm865.c4
-rw-r--r--iconvdata/ibm866.c4
-rw-r--r--iconvdata/ibm866nav.c4
-rw-r--r--iconvdata/ibm868.c4
-rw-r--r--iconvdata/ibm869.c4
-rw-r--r--iconvdata/ibm870.c4
-rw-r--r--iconvdata/ibm871.c4
-rw-r--r--iconvdata/ibm874.c4
-rw-r--r--iconvdata/ibm875.c4
-rw-r--r--iconvdata/ibm880.c4
-rw-r--r--iconvdata/ibm891.c4
-rw-r--r--iconvdata/ibm901.c4
-rw-r--r--iconvdata/ibm901.h4
-rw-r--r--iconvdata/ibm902.c4
-rw-r--r--iconvdata/ibm902.h4
-rw-r--r--iconvdata/ibm903.c4
-rw-r--r--iconvdata/ibm9030.c4
-rw-r--r--iconvdata/ibm9030.h4
-rw-r--r--iconvdata/ibm904.c4
-rw-r--r--iconvdata/ibm905.c4
-rw-r--r--iconvdata/ibm9066.c4
-rw-r--r--iconvdata/ibm9066.h4
-rw-r--r--iconvdata/ibm918.c4
-rw-r--r--iconvdata/ibm921.c4
-rw-r--r--iconvdata/ibm921.h4
-rw-r--r--iconvdata/ibm922.c4
-rw-r--r--iconvdata/ibm922.h4
-rw-r--r--iconvdata/ibm930.c4
-rw-r--r--iconvdata/ibm930.h4
-rw-r--r--iconvdata/ibm932.c4
-rw-r--r--iconvdata/ibm932.h4
-rw-r--r--iconvdata/ibm933.c4
-rw-r--r--iconvdata/ibm933.h4
-rw-r--r--iconvdata/ibm935.c4
-rw-r--r--iconvdata/ibm935.h4
-rw-r--r--iconvdata/ibm937.c4
-rw-r--r--iconvdata/ibm937.h4
-rw-r--r--iconvdata/ibm939.c4
-rw-r--r--iconvdata/ibm939.h4
-rw-r--r--iconvdata/ibm943.c4
-rw-r--r--iconvdata/ibm943.h4
-rw-r--r--iconvdata/ibm9448.c4
-rw-r--r--iconvdata/ibm9448.h4
-rw-r--r--iconvdata/iec_p27-1.c4
-rw-r--r--iconvdata/inis-8.c4
-rw-r--r--iconvdata/inis-cyrillic.c4
-rw-r--r--iconvdata/inis.c4
-rw-r--r--iconvdata/isiri-3342.c4
-rw-r--r--iconvdata/iso-2022-cn-ext.c4
-rw-r--r--iconvdata/iso-2022-cn.c4
-rw-r--r--iconvdata/iso-2022-jp-3.c4
-rw-r--r--iconvdata/iso-2022-jp.c4
-rw-r--r--iconvdata/iso-2022-kr.c4
-rw-r--r--iconvdata/iso-ir-165.c4
-rw-r--r--iconvdata/iso-ir-165.h4
-rw-r--r--iconvdata/iso-ir-197.c4
-rw-r--r--iconvdata/iso-ir-209.c4
-rw-r--r--iconvdata/iso646.c4
-rw-r--r--iconvdata/iso8859-1.c4
-rw-r--r--iconvdata/iso8859-10.c4
-rw-r--r--iconvdata/iso8859-11.c4
-rw-r--r--iconvdata/iso8859-13.c4
-rw-r--r--iconvdata/iso8859-14.c4
-rw-r--r--iconvdata/iso8859-15.c4
-rw-r--r--iconvdata/iso8859-16.c4
-rw-r--r--iconvdata/iso8859-2.c4
-rw-r--r--iconvdata/iso8859-3.c4
-rw-r--r--iconvdata/iso8859-4.c4
-rw-r--r--iconvdata/iso8859-5.c4
-rw-r--r--iconvdata/iso8859-6.c4
-rw-r--r--iconvdata/iso8859-7.c4
-rw-r--r--iconvdata/iso8859-8.c4
-rw-r--r--iconvdata/iso8859-9.c4
-rw-r--r--iconvdata/iso8859-9e.c4
-rw-r--r--iconvdata/iso_10367-box.c4
-rw-r--r--iconvdata/iso_11548-1.c4
-rw-r--r--iconvdata/iso_2033.c4
-rw-r--r--iconvdata/iso_5427-ext.c4
-rw-r--r--iconvdata/iso_5427.c4
-rw-r--r--iconvdata/iso_5428.c4
-rw-r--r--iconvdata/iso_6937-2.c4
-rw-r--r--iconvdata/iso_6937.c4
-rw-r--r--iconvdata/jis0201.c4
-rw-r--r--iconvdata/jis0201.h4
-rw-r--r--iconvdata/jis0208.c4
-rw-r--r--iconvdata/jis0208.h4
-rw-r--r--iconvdata/jis0212.c4
-rw-r--r--iconvdata/jis0212.h4
-rw-r--r--iconvdata/jisx0213.c4
-rw-r--r--iconvdata/jisx0213.h4
-rw-r--r--iconvdata/johab.c4
-rw-r--r--iconvdata/koi-8.c4
-rw-r--r--iconvdata/koi8-r.c4
-rw-r--r--iconvdata/koi8-ru.c4
-rw-r--r--iconvdata/koi8-t.c4
-rw-r--r--iconvdata/koi8-u.c4
-rw-r--r--iconvdata/ksc5601.c4
-rw-r--r--iconvdata/ksc5601.h4
-rw-r--r--iconvdata/latin-greek-1.c4
-rw-r--r--iconvdata/latin-greek.c4
-rw-r--r--iconvdata/mac-centraleurope.c4
-rw-r--r--iconvdata/mac-is.c4
-rw-r--r--iconvdata/mac-sami.c4
-rw-r--r--iconvdata/mac-uk.c4
-rw-r--r--iconvdata/macintosh.c4
-rw-r--r--iconvdata/mik.c4
-rw-r--r--iconvdata/nats-dano.c4
-rw-r--r--iconvdata/nats-sefi.c4
-rw-r--r--iconvdata/pt154.c4
-rw-r--r--iconvdata/rk1048.c4
-rwxr-xr-xiconvdata/run-iconv-test.sh4
-rw-r--r--iconvdata/sami-ws2.c4
-rw-r--r--iconvdata/shift_jisx0213.c4
-rw-r--r--iconvdata/sjis.c4
-rw-r--r--iconvdata/t.61.c4
-rw-r--r--iconvdata/tcvn5712-1.c4
-rw-r--r--iconvdata/tis-620.c4
-rw-r--r--iconvdata/tscii.c4
-rw-r--r--iconvdata/tst-e2big.c4
-rw-r--r--iconvdata/tst-loading.c4
-rwxr-xr-xiconvdata/tst-table-charmap.sh4
-rw-r--r--iconvdata/tst-table-from.c4
-rw-r--r--iconvdata/tst-table-to.c4
-rwxr-xr-xiconvdata/tst-table.sh4
-rwxr-xr-xiconvdata/tst-tables.sh4
-rw-r--r--iconvdata/uhc.c4
-rw-r--r--iconvdata/unicode.c4
-rw-r--r--iconvdata/utf-16.c4
-rw-r--r--iconvdata/utf-32.c4
-rw-r--r--iconvdata/utf-7.c4
-rw-r--r--iconvdata/viscii.c4
-rw-r--r--include/alloc_buffer.h35
-rw-r--r--include/allocate_once.h4
-rw-r--r--include/ar.h1
-rw-r--r--include/argp.h11
-rw-r--r--include/arpa/inet.h6
-rw-r--r--include/array_length.h16
-rw-r--r--include/atomic.h4
-rw-r--r--include/bits/argp-ldbl.h1
-rw-r--r--include/bits/endian.h1
-rw-r--r--include/bits/err-ldbl.h1
-rw-r--r--include/bits/error-ldbl.h1
-rw-r--r--include/bits/monetary-ldbl.h1
-rw-r--r--include/bits/mqueue2.h1
-rw-r--r--include/bits/printf-ldbl.h1
-rw-r--r--include/bits/statx-generic.h1
-rw-r--r--include/bits/stdio-ldbl.h1
-rw-r--r--include/bits/stdio.h1
-rw-r--r--include/bits/stdio2.h1
-rw-r--r--include/bits/stdlib-ldbl.h1
-rw-r--r--include/bits/syslog-ldbl.h1
-rw-r--r--include/bits/types/struct_statx.h1
-rw-r--r--include/bits/types/struct_statx_timestamp.h1
-rw-r--r--include/bits/wchar-ldbl.h1
-rw-r--r--include/bits/xopen_lim.h4
-rw-r--r--include/dirent.h9
-rw-r--r--include/dlfcn.h5
-rw-r--r--include/elf.h2
-rw-r--r--include/err.h9
-rw-r--r--include/error.h14
-rw-r--r--include/features.h49
-rw-r--r--include/fenv.h90
-rw-r--r--include/float.h4
-rw-r--r--include/fstab.h1
-rw-r--r--include/fts.h1
-rw-r--r--include/gnu-versions.h4
-rw-r--r--include/gnu/libc-version.h4
-rw-r--r--include/ifunc-impl-list.h4
-rw-r--r--include/inline-hashtab.h4
-rw-r--r--include/intprops.h579
-rw-r--r--include/inttypes.h2
-rw-r--r--include/lastlog.h1
-rw-r--r--include/libc-diag.h4
-rw-r--r--include/libc-internal.h7
-rw-r--r--include/libc-pointer-arith.h4
-rw-r--r--include/libc-symbols.h57
-rw-r--r--include/limits.h6
-rw-r--r--include/link.h39
-rw-r--r--include/list.h4
-rw-r--r--include/list_t.h4
-rw-r--r--include/loop_unroll.h78
-rw-r--r--include/malloc.h2
-rw-r--r--include/math-narrow-eval.h4
-rw-r--r--include/math.h111
-rw-r--r--include/monetary.h18
-rw-r--r--include/netinet/icmp6.h1
-rw-r--r--include/netinet/igmp.h1
-rw-r--r--include/netinet/ip6.h1
-rw-r--r--include/programs/xmalloc.h4
-rw-r--r--include/random-bits.h41
-rw-r--r--include/re_comp.h1
-rw-r--r--include/regexp.h1
-rw-r--r--include/rounding-mode.h4
-rw-r--r--include/rpcsvc/bootparam.h1
-rw-r--r--include/rpcsvc/yp_prot.h1
-rw-r--r--include/sched.h4
-rw-r--r--include/scratch_buffer.h4
-rw-r--r--include/search.h2
-rw-r--r--include/set-hooks.h4
-rw-r--r--include/setjmp.h10
-rw-r--r--include/shlib-compat.h40
-rw-r--r--include/spawn.h38
-rw-r--r--include/stackinfo.h4
-rw-r--r--include/stap-probe.h15
-rw-r--r--include/stdc-predef.h4
-rw-r--r--include/stdint.h1
-rw-r--r--include/stdio.h31
-rw-r--r--include/stropts.h1
-rw-r--r--include/sys/poll.h13
-rw-r--r--include/sys/random.h11
-rw-r--r--include/sys/sem.h10
-rw-r--r--include/sys/sysctl.h10
-rw-r--r--include/sys/syslog.h19
-rw-r--r--include/sys/sysmacros.h4
-rw-r--r--include/sys/time.h11
-rw-r--r--include/sys/ttychars.h1
-rw-r--r--include/sys/vfs.h1
-rw-r--r--include/time.h261
-rw-r--r--include/unistd.h8
-rw-r--r--include/values.h4
-rw-r--r--include/verify.h4
-rw-r--r--include/wait.h1
-rw-r--r--include/wchar.h24
-rw-r--r--inet/Makefile10
-rw-r--r--inet/aliases.h4
-rw-r--r--inet/arpa/inet.h4
-rw-r--r--inet/bug-if1.c4
-rw-r--r--inet/check_native.c4
-rw-r--r--inet/check_pf.c4
-rw-r--r--inet/deadline.c12
-rw-r--r--inet/ether_aton.c4
-rw-r--r--inet/ether_aton_r.c4
-rw-r--r--inet/ether_hton.c4
-rw-r--r--inet/ether_line.c4
-rw-r--r--inet/ether_ntoa.c4
-rw-r--r--inet/ether_ntoa_r.c4
-rw-r--r--inet/ether_ntoh.c4
-rw-r--r--inet/getaliasent.c4
-rw-r--r--inet/getaliasent_r.c4
-rw-r--r--inet/getaliasname.c4
-rw-r--r--inet/getaliasname_r.c4
-rw-r--r--inet/gethstbyad.c4
-rw-r--r--inet/gethstbyad_r.c4
-rw-r--r--inet/gethstbynm.c4
-rw-r--r--inet/gethstbynm2.c4
-rw-r--r--inet/gethstbynm2_r.c4
-rw-r--r--inet/gethstbynm_r.c4
-rw-r--r--inet/gethstent.c4
-rw-r--r--inet/gethstent_r.c4
-rw-r--r--inet/getipv4sourcefilter.c4
-rw-r--r--inet/getnameinfo.c4
-rw-r--r--inet/getnetbyad.c4
-rw-r--r--inet/getnetbyad_r.c4
-rw-r--r--inet/getnetbynm.c4
-rw-r--r--inet/getnetbynm_r.c4
-rw-r--r--inet/getnetent.c4
-rw-r--r--inet/getnetent_r.c4
-rw-r--r--inet/getnetgrent.c4
-rw-r--r--inet/getnetgrent_r.c4
-rw-r--r--inet/getproto.c4
-rw-r--r--inet/getproto_r.c4
-rw-r--r--inet/getprtent.c4
-rw-r--r--inet/getprtent_r.c4
-rw-r--r--inet/getprtname.c4
-rw-r--r--inet/getprtname_r.c4
-rw-r--r--inet/getservent.c4
-rw-r--r--inet/getservent_r.c4
-rw-r--r--inet/getsourcefilter.c4
-rw-r--r--inet/getsrvbynm.c4
-rw-r--r--inet/getsrvbynm_r.c4
-rw-r--r--inet/getsrvbypt.c4
-rw-r--r--inet/getsrvbypt_r.c4
-rw-r--r--inet/herrno-loc.c4
-rw-r--r--inet/herrno.c4
-rw-r--r--inet/htonl.c4
-rw-r--r--inet/htons.c4
-rw-r--r--inet/htontest.c4
-rw-r--r--inet/idna.c4
-rw-r--r--inet/idna_name_classify.c4
-rw-r--r--inet/if_index.c4
-rw-r--r--inet/ifaddrs.c4
-rw-r--r--inet/ifaddrs.h4
-rw-r--r--inet/ifreq.c4
-rw-r--r--inet/in6_addr.c4
-rw-r--r--inet/inet6_opt.c4
-rw-r--r--inet/inet6_option.c4
-rw-r--r--inet/inet6_rth.c4
-rw-r--r--inet/inet6_scopeid_pton.c4
-rw-r--r--inet/inet_net.c4
-rw-r--r--inet/inet_ntoa.c4
-rw-r--r--inet/net-internal.h17
-rw-r--r--inet/netgroup.h4
-rw-r--r--inet/netinet/ether.h4
-rw-r--r--inet/netinet/icmp6.h4
-rw-r--r--inet/netinet/igmp.h5
-rw-r--r--inet/netinet/in.h13
-rw-r--r--inet/netinet/ip6.h4
-rw-r--r--inet/setipv4sourcefilter.c4
-rw-r--r--inet/setsourcefilter.c4
-rw-r--r--inet/test-hnto-types.c4
-rw-r--r--inet/test-ifaddrs.c4
-rw-r--r--inet/test_ifindex.c4
-rw-r--r--inet/tst-checks-posix.c4
-rw-r--r--inet/tst-deadline.c4
-rw-r--r--inet/tst-idna_name_classify.c4
-rw-r--r--inet/tst-if_index-long.c61
-rw-r--r--inet/tst-inet6_scopeid_pton.c4
-rw-r--r--inet/tst-network.c4
-rw-r--r--inet/tst-sockaddr.c4
-rw-r--r--intl/Makefile4
-rw-r--r--intl/bindtextdom.c4
-rw-r--r--intl/dcgettext.c4
-rw-r--r--intl/dcigettext.c9
-rw-r--r--intl/dcngettext.c4
-rw-r--r--intl/dgettext.c4
-rw-r--r--intl/dngettext.c4
-rw-r--r--intl/eval-plural.h4
-rw-r--r--intl/explodename.c4
-rw-r--r--intl/finddomain.c4
-rw-r--r--intl/gettext.c4
-rw-r--r--intl/gettextP.h4
-rw-r--r--intl/gmo.h4
-rw-r--r--intl/hash-string.c4
-rw-r--r--intl/hash-string.h4
-rw-r--r--intl/l10nflist.c4
-rw-r--r--intl/libintl.h4
-rw-r--r--intl/loadinfo.h4
-rw-r--r--intl/loadmsgcat.c4
-rw-r--r--intl/locale.alias4
-rw-r--r--intl/localealias.c4
-rw-r--r--intl/ngettext.c4
-rw-r--r--intl/plural-exp.c4
-rw-r--r--intl/plural-exp.h4
-rw-r--r--intl/plural.y4
-rw-r--r--intl/po2test.awk4
-rw-r--r--intl/textdomain.c4
-rw-r--r--intl/tst-codeset.c4
-rw-r--r--intl/tst-gettext.c4
-rwxr-xr-xintl/tst-gettext.sh4
-rw-r--r--intl/tst-gettext2.c4
-rw-r--r--intl/tst-gettext2.sh4
-rw-r--r--intl/tst-gettext3.c4
-rw-r--r--intl/tst-gettext4.c4
-rwxr-xr-xintl/tst-gettext4.sh4
-rw-r--r--intl/tst-gettext5.c4
-rw-r--r--intl/tst-gettext6.c4
-rw-r--r--intl/tst-gettext6.sh4
-rw-r--r--intl/tst-ngettext.c4
-rw-r--r--intl/tst-translit.c4
-rwxr-xr-xintl/tst-translit.sh4
-rw-r--r--io/Makefile16
-rw-r--r--io/access.c5
-rw-r--r--io/bits/fcntl2.h4
-rw-r--r--io/bits/poll2.h4
-rw-r--r--io/bits/statx-generic.h60
-rw-r--r--io/bits/statx.h77
-rw-r--r--io/bits/types/struct_statx.h55
-rw-r--r--io/bits/types/struct_statx_timestamp.h33
-rw-r--r--io/bug-ftw1.c4
-rw-r--r--io/bug-ftw2.c4
-rw-r--r--io/bug-ftw4.c4
-rw-r--r--io/chdir.c4
-rw-r--r--io/chmod.c4
-rw-r--r--io/chown.c4
-rw-r--r--io/close.c4
-rw-r--r--io/copy_file_range-compat.c160
-rw-r--r--io/copy_file_range.c20
-rw-r--r--io/creat.c7
-rw-r--r--io/creat64.c4
-rw-r--r--io/dup.c4
-rw-r--r--io/dup2.c4
-rw-r--r--io/dup3.c4
-rw-r--r--io/euidaccess.c4
-rw-r--r--io/faccessat.c4
-rw-r--r--io/fchdir.c4
-rw-r--r--io/fchmod.c4
-rw-r--r--io/fchmodat.c4
-rw-r--r--io/fchown.c4
-rw-r--r--io/fchownat.c4
-rw-r--r--io/fcntl.c4
-rw-r--r--io/fcntl.h5
-rw-r--r--io/fcntl64.c4
-rw-r--r--io/flock.c4
-rw-r--r--io/fstat.c4
-rw-r--r--io/fstat64.c4
-rw-r--r--io/fstatat.c4
-rw-r--r--io/fstatat64.c4
-rw-r--r--io/fstatfs.c4
-rw-r--r--io/fstatfs64.c4
-rw-r--r--io/fstatvfs.c4
-rw-r--r--io/fstatvfs64.c4
-rw-r--r--io/fts.c4
-rw-r--r--io/fts.h4
-rw-r--r--io/fts64.c4
-rw-r--r--io/ftw.c10
-rw-r--r--io/ftw.h4
-rw-r--r--io/ftw64.c4
-rw-r--r--io/ftwtest-sh4
-rw-r--r--io/futimens.c4
-rw-r--r--io/fxstat.c4
-rw-r--r--io/fxstat64.c4
-rw-r--r--io/fxstatat.c4
-rw-r--r--io/fxstatat64.c4
-rw-r--r--io/getcwd.c5
-rw-r--r--io/getdirname.c4
-rw-r--r--io/getwd.c4
-rw-r--r--io/isatty.c4
-rw-r--r--io/lchmod.c4
-rw-r--r--io/lchown.c4
-rw-r--r--io/link.c4
-rw-r--r--io/linkat.c4
-rw-r--r--io/lockf.c58
-rw-r--r--io/lockf64.c71
-rw-r--r--io/lseek.c4
-rw-r--r--io/lseek64.c4
-rw-r--r--io/lstat.c4
-rw-r--r--io/lstat64.c4
-rw-r--r--io/lxstat.c4
-rw-r--r--io/lxstat64.c4
-rw-r--r--io/mkdir.c4
-rw-r--r--io/mkdirat.c4
-rw-r--r--io/mkfifo.c4
-rw-r--r--io/mkfifoat.c4
-rw-r--r--io/mknod.c4
-rw-r--r--io/mknodat.c4
-rw-r--r--io/open.c4
-rw-r--r--io/open64.c4
-rw-r--r--io/open64_2.c4
-rw-r--r--io/open_2.c4
-rw-r--r--io/openat.c4
-rw-r--r--io/openat64.c4
-rw-r--r--io/openat64_2.c4
-rw-r--r--io/openat_2.c4
-rw-r--r--io/pipe.c4
-rw-r--r--io/pipe2.c4
-rw-r--r--io/poll.c4
-rw-r--r--io/posix_fadvise.c4
-rw-r--r--io/posix_fadvise64.c4
-rw-r--r--io/posix_fallocate.c4
-rw-r--r--io/posix_fallocate64.c4
-rw-r--r--io/ppoll.c10
-rw-r--r--io/pwd.c4
-rw-r--r--io/read.c4
-rw-r--r--io/readlink.c4
-rw-r--r--io/readlinkat.c4
-rw-r--r--io/rmdir.c4
-rw-r--r--io/sendfile.c4
-rw-r--r--io/sendfile64.c4
-rw-r--r--io/stat.c4
-rw-r--r--io/stat64.c4
-rw-r--r--io/statfs.c4
-rw-r--r--io/statfs64.c4
-rw-r--r--io/statvfs.c4
-rw-r--r--io/statvfs64.c4
-rw-r--r--io/statx.c4
-rw-r--r--io/statx_generic.c15
-rw-r--r--io/symlink.c4
-rw-r--r--io/symlinkat.c4
-rw-r--r--io/sys/poll.h4
-rw-r--r--io/sys/sendfile.h4
-rw-r--r--io/sys/stat.h4
-rw-r--r--io/sys/statfs.h4
-rw-r--r--io/sys/statvfs.h4
-rw-r--r--io/test-lfs.c10
-rw-r--r--io/test-stat.c4
-rw-r--r--io/test-stat2.c4
-rw-r--r--io/test-utime.c4
-rw-r--r--io/tst-copy_file_range-compat.c30
-rw-r--r--io/tst-copy_file_range.c559
-rw-r--r--io/tst-fcntl.c4
-rw-r--r--io/tst-fts.c4
-rw-r--r--io/tst-ftw-lnk.c239
-rw-r--r--io/tst-getcwd-abspath.c2
-rw-r--r--io/tst-getcwd.c4
-rw-r--r--io/tst-lockf.c138
-rw-r--r--io/tst-open-tmpfile.c4
-rw-r--r--io/tst-posix_fallocate-common.c4
-rw-r--r--io/tst-posix_fallocate.c4
-rw-r--r--io/tst-posix_fallocate64.c4
-rw-r--r--io/tst-statx.c4
-rw-r--r--io/ttyname.c4
-rw-r--r--io/ttyname_r.c4
-rw-r--r--io/umask.c4
-rw-r--r--io/unlink.c4
-rw-r--r--io/unlinkat.c4
-rw-r--r--io/utime.c4
-rw-r--r--io/utime.h4
-rw-r--r--io/utimensat.c4
-rw-r--r--io/write.c4
-rw-r--r--io/xmknod.c4
-rw-r--r--io/xmknodat.c4
-rw-r--r--io/xstat.c4
-rw-r--r--io/xstat64.c4
-rw-r--r--libio/Makefile31
-rw-r--r--libio/__fbufsize.c4
-rw-r--r--libio/__flbf.c4
-rw-r--r--libio/__fpending.c4
-rw-r--r--libio/__fpurge.c4
-rw-r--r--libio/__freadable.c4
-rw-r--r--libio/__freading.c4
-rw-r--r--libio/__fsetlocking.c4
-rw-r--r--libio/__fwritable.c4
-rw-r--r--libio/__fwriting.c4
-rw-r--r--libio/bits/stdio-ldbl.h11
-rw-r--r--libio/bits/stdio.h4
-rw-r--r--libio/bits/stdio2.h4
-rw-r--r--libio/bits/types/cookie_io_functions_t.h4
-rw-r--r--libio/bits/types/struct_FILE.h4
-rw-r--r--libio/bug-ungetc4.c4
-rw-r--r--libio/clearerr.c4
-rw-r--r--libio/clearerr_u.c4
-rw-r--r--libio/fcloseall.c4
-rw-r--r--libio/feof.c4
-rw-r--r--libio/feof_u.c4
-rw-r--r--libio/ferror.c4
-rw-r--r--libio/ferror_u.c4
-rw-r--r--libio/filedoalloc.c4
-rw-r--r--libio/fileno.c4
-rw-r--r--libio/fileops.c39
-rw-r--r--libio/fmemopen.c4
-rw-r--r--libio/fputc.c4
-rw-r--r--libio/fputc_u.c4
-rw-r--r--libio/fputwc.c4
-rw-r--r--libio/fputwc_u.c4
-rw-r--r--libio/freopen.c35
-rw-r--r--libio/freopen64.c30
-rw-r--r--libio/fseek.c4
-rw-r--r--libio/fseeko.c4
-rw-r--r--libio/fseeko64.c4
-rw-r--r--libio/ftello.c4
-rw-r--r--libio/ftello64.c4
-rw-r--r--libio/fwide.c4
-rw-r--r--libio/fwprintf.c6
-rw-r--r--libio/fwscanf.c9
-rw-r--r--libio/genops.c20
-rw-r--r--libio/getc.c4
-rw-r--r--libio/getc_u.c4
-rw-r--r--libio/getchar.c14
-rw-r--r--libio/getchar_u.c6
-rw-r--r--libio/getwc.c4
-rw-r--r--libio/getwc_u.c4
-rw-r--r--libio/getwchar.c10
-rw-r--r--libio/getwchar_u.c6
-rw-r--r--libio/iofclose.c15
-rw-r--r--libio/iofdopen.c4
-rw-r--r--libio/iofflush.c4
-rw-r--r--libio/iofflush_u.c4
-rw-r--r--libio/iofgetpos.c7
-rw-r--r--libio/iofgetpos64.c7
-rw-r--r--libio/iofgets.c4
-rw-r--r--libio/iofgets_u.c4
-rw-r--r--libio/iofgetws.c4
-rw-r--r--libio/iofgetws_u.c4
-rw-r--r--libio/iofopen.c4
-rw-r--r--libio/iofopen64.c4
-rw-r--r--libio/iofopncook.c4
-rw-r--r--libio/iofputs.c4
-rw-r--r--libio/iofputs_u.c4
-rw-r--r--libio/iofputws.c4
-rw-r--r--libio/iofputws_u.c4
-rw-r--r--libio/iofread.c4
-rw-r--r--libio/iofread_u.c4
-rw-r--r--libio/iofsetpos.c7
-rw-r--r--libio/iofsetpos64.c7
-rw-r--r--libio/ioftell.c4
-rw-r--r--libio/iofwide.c204
-rw-r--r--libio/iofwrite.c4
-rw-r--r--libio/iofwrite_u.c4
-rw-r--r--libio/iogetdelim.c4
-rw-r--r--libio/iogetline.c4
-rw-r--r--libio/iogets.c20
-rw-r--r--libio/iogetwline.c4
-rw-r--r--libio/iolibio.h10
-rw-r--r--libio/iopadn.c4
-rw-r--r--libio/iopopen.c136
-rw-r--r--libio/ioputs.c16
-rw-r--r--libio/ioseekoff.c4
-rw-r--r--libio/ioseekpos.c4
-rw-r--r--libio/iosetbuffer.c4
-rw-r--r--libio/iosetvbuf.c4
-rw-r--r--libio/ioungetc.c4
-rw-r--r--libio/ioungetwc.c4
-rw-r--r--libio/iovdprintf.c17
-rw-r--r--libio/iovsprintf.c80
-rw-r--r--libio/iovsscanf.c21
-rw-r--r--libio/iovswscanf.c25
-rw-r--r--libio/iowpadn.c4
-rw-r--r--libio/libc_fatal.c4
-rw-r--r--libio/libio.h60
-rw-r--r--libio/libioP.h207
-rw-r--r--libio/memstream.c4
-rw-r--r--libio/obprintf.c23
-rw-r--r--libio/oldfileops.c9
-rw-r--r--libio/oldfmemopen.c4
-rw-r--r--libio/oldiofclose.c11
-rw-r--r--libio/oldiofdopen.c4
-rw-r--r--libio/oldiofgetpos.c4
-rw-r--r--libio/oldiofgetpos64.c4
-rw-r--r--libio/oldiofopen.c4
-rw-r--r--libio/oldiofsetpos.c4
-rw-r--r--libio/oldiofsetpos64.c4
-rw-r--r--libio/oldiopopen.c4
-rw-r--r--libio/oldpclose.c4
-rw-r--r--libio/oldstdfiles.c27
-rw-r--r--libio/oldtmpfile.c4
-rw-r--r--libio/pclose.c4
-rw-r--r--libio/peekc.c4
-rw-r--r--libio/putc.c4
-rw-r--r--libio/putc_u.c4
-rw-r--r--libio/putchar.c10
-rw-r--r--libio/putchar_u.c8
-rw-r--r--libio/putwc.c4
-rw-r--r--libio/putwc_u.c4
-rw-r--r--libio/putwchar.c10
-rw-r--r--libio/putwchar_u.c8
-rw-r--r--libio/readline.c4
-rw-r--r--libio/rewind.c4
-rw-r--r--libio/setbuf.c4
-rw-r--r--libio/setlinebuf.c4
-rw-r--r--libio/stdfiles.c13
-rw-r--r--libio/stdio.c15
-rw-r--r--libio/stdio.h26
-rw-r--r--libio/strfile.h37
-rw-r--r--libio/strops.c4
-rw-r--r--libio/swprintf.c6
-rw-r--r--libio/swscanf.c19
-rw-r--r--libio/test-fmemopen.c4
-rw-r--r--libio/test-freopen.c4
-rwxr-xr-xlibio/test-freopen.sh4
-rw-r--r--libio/tst-atime.c1
-rw-r--r--libio/tst-bz22415.c4
-rw-r--r--libio/tst-bz24051.c81
-rw-r--r--libio/tst-bz24153.c114
-rw-r--r--libio/tst-bz24228.c29
-rw-r--r--libio/tst-bz24228.map5
-rw-r--r--libio/tst-fopenloc.c24
-rw-r--r--libio/tst-fputws.c4
-rw-r--r--libio/tst-freopen.c4
-rw-r--r--libio/tst-fseek.c4
-rw-r--r--libio/tst-ftell-active-handler.c4
-rw-r--r--libio/tst-ftell-append.c4
-rw-r--r--libio/tst-ftell-partial-wide.c4
-rw-r--r--libio/tst-fwrite-error.c4
-rw-r--r--libio/tst-memstream.h68
-rw-r--r--libio/tst-memstream3.c4
-rw-r--r--libio/tst-memstream4.c64
-rw-r--r--libio/tst-mmap-setvbuf.c4
-rw-r--r--libio/tst-readline.c5
-rw-r--r--libio/tst-sprintf-chk-ub.c2
-rw-r--r--libio/tst-sprintf-ub.c102
-rw-r--r--libio/tst-vtables-common.c22
-rw-r--r--libio/tst-vtables-interposed.c4
-rw-r--r--libio/tst-vtables.c4
-rw-r--r--libio/tst-wfile-sync.c39
-rw-r--r--libio/tst-wfile-sync.input1
-rw-r--r--libio/tst-widetext.c4
-rw-r--r--libio/tst-wmemstream3.c4
-rw-r--r--libio/tst-wmemstream4.c20
-rw-r--r--libio/tst_getwc.c4
-rw-r--r--libio/tst_putwc.c4
-rw-r--r--libio/vasprintf.c24
-rw-r--r--libio/vscanf.c11
-rw-r--r--libio/vsnprintf.c20
-rw-r--r--libio/vswprintf.c20
-rw-r--r--libio/vtables.c4
-rw-r--r--libio/vwprintf.c6
-rw-r--r--libio/vwscanf.c11
-rw-r--r--libio/wfiledoalloc.c4
-rw-r--r--libio/wfileops.c104
-rw-r--r--libio/wgenops.c4
-rw-r--r--libio/wmemstream.c4
-rw-r--r--libio/wprintf.c6
-rw-r--r--libio/wscanf.c11
-rw-r--r--libio/wstrops.c8
-rw-r--r--locale/C-address.c4
-rw-r--r--locale/C-collate.c4
-rw-r--r--locale/C-ctype.c4
-rw-r--r--locale/C-identification.c4
-rw-r--r--locale/C-measurement.c4
-rw-r--r--locale/C-messages.c4
-rw-r--r--locale/C-monetary.c4
-rw-r--r--locale/C-name.c4
-rw-r--r--locale/C-numeric.c4
-rw-r--r--locale/C-paper.c4
-rw-r--r--locale/C-telephone.c4
-rw-r--r--locale/C-time.c4
-rw-r--r--locale/C-translit.h836
-rw-r--r--locale/C-translit.h.in3048
-rw-r--r--locale/Makefile19
-rw-r--r--locale/bits/locale.h4
-rw-r--r--locale/bits/types/__locale_t.h4
-rw-r--r--locale/bits/types/locale_t.h4
-rw-r--r--locale/broken_cur_max.c4
-rw-r--r--locale/categories.def4
-rw-r--r--locale/coll-lookup.c4
-rw-r--r--locale/coll-lookup.h4
-rw-r--r--locale/duplocale.c4
-rw-r--r--locale/elem-hash.h4
-rw-r--r--locale/findlocale.c13
-rw-r--r--locale/freelocale.c4
-rw-r--r--locale/gen-translit.pl144
-rw-r--r--locale/gen-translit.py177
-rw-r--r--locale/global-locale.c4
-rw-r--r--locale/hashval.h4
-rw-r--r--locale/indigits.h4
-rw-r--r--locale/indigitswc.h4
-rw-r--r--locale/iso-3166.def2
-rw-r--r--locale/iso-4217.def2
-rw-r--r--locale/iso-639.def3
-rw-r--r--locale/langinfo.h4
-rw-r--r--locale/lc-address.c4
-rw-r--r--locale/lc-collate.c4
-rw-r--r--locale/lc-ctype.c4
-rw-r--r--locale/lc-identification.c4
-rw-r--r--locale/lc-measurement.c4
-rw-r--r--locale/lc-messages.c4
-rw-r--r--locale/lc-monetary.c4
-rw-r--r--locale/lc-name.c4
-rw-r--r--locale/lc-numeric.c4
-rw-r--r--locale/lc-paper.c4
-rw-r--r--locale/lc-telephone.c4
-rw-r--r--locale/lc-time.c4
-rw-r--r--locale/loadarchive.c6
-rw-r--r--locale/loadlocale.c7
-rw-r--r--locale/locale.h4
-rw-r--r--locale/localeconv.c4
-rw-r--r--locale/localeinfo.h24
-rw-r--r--locale/localename.c4
-rw-r--r--locale/locarchive.h4
-rw-r--r--locale/mb_cur_max.c4
-rw-r--r--locale/newlocale.c7
-rw-r--r--locale/nl_langinfo.c4
-rw-r--r--locale/nl_langinfo_l.c4
-rw-r--r--locale/outdigits.h4
-rw-r--r--locale/outdigitswc.h4
-rw-r--r--locale/programs/3level.h4
-rw-r--r--locale/programs/charmap-dir.c4
-rw-r--r--locale/programs/charmap-dir.h4
-rw-r--r--locale/programs/charmap-kw.gperf4
-rw-r--r--locale/programs/charmap-kw.h24
-rw-r--r--locale/programs/charmap.c5
-rw-r--r--locale/programs/charmap.h6
-rw-r--r--locale/programs/config.h4
-rw-r--r--locale/programs/ld-address.c4
-rw-r--r--locale/programs/ld-collate.c8
-rw-r--r--locale/programs/ld-ctype.c41
-rw-r--r--locale/programs/ld-identification.c4
-rw-r--r--locale/programs/ld-measurement.c4
-rw-r--r--locale/programs/ld-messages.c4
-rw-r--r--locale/programs/ld-monetary.c4
-rw-r--r--locale/programs/ld-name.c4
-rw-r--r--locale/programs/ld-numeric.c4
-rw-r--r--locale/programs/ld-paper.c4
-rw-r--r--locale/programs/ld-telephone.c4
-rw-r--r--locale/programs/ld-time.c4
-rw-r--r--locale/programs/linereader.c4
-rw-r--r--locale/programs/linereader.h6
-rw-r--r--locale/programs/locale-spec.c4
-rw-r--r--locale/programs/locale.c143
-rw-r--r--locale/programs/localedef.c16
-rw-r--r--locale/programs/localedef.h5
-rw-r--r--locale/programs/locarchive.c4
-rw-r--r--locale/programs/locfile-kw.gperf4
-rw-r--r--locale/programs/locfile-kw.h24
-rw-r--r--locale/programs/locfile-token.h4
-rw-r--r--locale/programs/locfile.c25
-rw-r--r--locale/programs/locfile.h4
-rw-r--r--locale/programs/record-status.c4
-rw-r--r--locale/programs/record-status.h4
-rw-r--r--locale/programs/repertoire.c8
-rw-r--r--locale/programs/repertoire.h4
-rw-r--r--locale/programs/simple-hash.c4
-rw-r--r--locale/programs/simple-hash.h4
-rw-r--r--locale/programs/xmalloc.c4
-rw-r--r--locale/programs/xstrdup.c4
-rw-r--r--locale/setlocale.c29
-rw-r--r--locale/strlen-hash.h4
-rw-r--r--locale/tst-C-locale.c4
-rw-r--r--locale/tst-locale-locpath.sh83
-rw-r--r--locale/uselocale.c4
-rw-r--r--locale/weight.h4
-rw-r--r--locale/weightwc.h4
-rw-r--r--locale/xlocale.c4
-rw-r--r--localedata/Makefile53
-rw-r--r--localedata/SUPPORTED1
-rw-r--r--localedata/charmaps/UTF-8594
-rw-r--r--localedata/collate-test.c4
-rw-r--r--localedata/dump-ctype.c4
-rw-r--r--localedata/gen-locale.sh4
-rw-r--r--localedata/locales/aa_DJ14
-rw-r--r--localedata/locales/aa_ER8
-rw-r--r--localedata/locales/aa_ER@saaho8
-rw-r--r--localedata/locales/aa_ET10
-rw-r--r--localedata/locales/am_ET4
-rw-r--r--localedata/locales/anp_IN4
-rw-r--r--localedata/locales/ar_AE2
-rw-r--r--localedata/locales/ar_BH2
-rw-r--r--localedata/locales/ar_DZ2
-rw-r--r--localedata/locales/ar_EG2
-rw-r--r--localedata/locales/ar_IN4
-rw-r--r--localedata/locales/ar_IQ2
-rw-r--r--localedata/locales/ar_JO2
-rw-r--r--localedata/locales/ar_KW2
-rw-r--r--localedata/locales/ar_LB2
-rw-r--r--localedata/locales/ar_LY2
-rw-r--r--localedata/locales/ar_MA6
-rw-r--r--localedata/locales/ar_OM2
-rw-r--r--localedata/locales/ar_QA2
-rw-r--r--localedata/locales/ar_SD2
-rw-r--r--localedata/locales/ar_SS2
-rw-r--r--localedata/locales/ar_SY2
-rw-r--r--localedata/locales/ar_TN2
-rw-r--r--localedata/locales/ar_YE2
-rw-r--r--localedata/locales/az_AZ2
-rw-r--r--localedata/locales/be_BY@latin2
-rw-r--r--localedata/locales/ber_DZ11
-rw-r--r--localedata/locales/ber_MA10
-rw-r--r--localedata/locales/bg_BG2
-rw-r--r--localedata/locales/bhb_IN8
-rw-r--r--localedata/locales/bho_IN5
-rw-r--r--[-rwxr-xr-x]localedata/locales/bi_VU2
-rw-r--r--localedata/locales/bn_BD4
-rw-r--r--localedata/locales/bn_IN4
-rw-r--r--localedata/locales/bo_CN1
-rw-r--r--localedata/locales/br_FR@euro2
-rw-r--r--localedata/locales/brx_IN4
-rw-r--r--localedata/locales/bs_BA2
-rw-r--r--localedata/locales/byn_ER4
-rw-r--r--localedata/locales/ca_ES6
-rw-r--r--localedata/locales/ca_ES@euro2
-rw-r--r--localedata/locales/chr_US2
-rw-r--r--localedata/locales/cmn_TW4
-rw-r--r--localedata/locales/crh_UA4
-rw-r--r--localedata/locales/cs_CZ4
-rw-r--r--localedata/locales/csb_PL1
-rw-r--r--localedata/locales/de_BE@euro2
-rw-r--r--localedata/locales/de_CH4
-rw-r--r--localedata/locales/de_DE2
-rw-r--r--localedata/locales/de_DE@euro2
-rw-r--r--localedata/locales/de_LU@euro2
-rw-r--r--localedata/locales/doi_IN5
-rw-r--r--localedata/locales/dv_MV5
-rw-r--r--localedata/locales/el_GR@euro2
-rw-r--r--localedata/locales/en_AG2
-rw-r--r--localedata/locales/en_HK4
-rw-r--r--localedata/locales/en_IE1
-rw-r--r--localedata/locales/en_IE@euro2
-rw-r--r--localedata/locales/en_IL2
-rw-r--r--localedata/locales/en_IN6
-rw-r--r--localedata/locales/en_PH2
-rw-r--r--localedata/locales/en_US5
-rw-r--r--localedata/locales/eo2
-rw-r--r--localedata/locales/es_CR2
-rw-r--r--localedata/locales/es_ES@euro2
-rw-r--r--localedata/locales/es_NI2
-rw-r--r--localedata/locales/es_PR2
-rw-r--r--localedata/locales/eu_ES@euro2
-rw-r--r--localedata/locales/fi_FI@euro2
-rw-r--r--localedata/locales/fr_BE@euro2
-rw-r--r--localedata/locales/fr_FR@euro2
-rw-r--r--localedata/locales/fr_LU@euro2
-rw-r--r--localedata/locales/fy_NL2
-rw-r--r--localedata/locales/ga_IE1
-rw-r--r--localedata/locales/ga_IE@euro2
-rw-r--r--localedata/locales/gez_ER4
-rw-r--r--localedata/locales/gez_ET4
-rw-r--r--localedata/locales/gl_ES@euro2
-rw-r--r--localedata/locales/gu_IN4
-rw-r--r--localedata/locales/hak_TW8
-rw-r--r--localedata/locales/hi_IN4
-rw-r--r--localedata/locales/hif_FJ10
-rw-r--r--localedata/locales/hne_IN5
-rw-r--r--localedata/locales/i18n_ctype2260
-rw-r--r--localedata/locales/ia_FR2
-rw-r--r--localedata/locales/id_ID2
-rw-r--r--localedata/locales/ig_NG8
-rw-r--r--localedata/locales/it_CH10
-rw-r--r--localedata/locales/it_IT8
-rw-r--r--localedata/locales/it_IT@euro2
-rw-r--r--localedata/locales/ja_JP24
-rw-r--r--localedata/locales/kab_DZ2
-rw-r--r--localedata/locales/kl_GL44
-rw-r--r--localedata/locales/kn_IN4
-rw-r--r--localedata/locales/kok_IN4
-rw-r--r--localedata/locales/ks_IN6
-rw-r--r--localedata/locales/ks_IN@devanagari4
-rw-r--r--localedata/locales/ku_TR4
-rw-r--r--localedata/locales/lzh_TW4
-rw-r--r--localedata/locales/mag_IN5
-rw-r--r--localedata/locales/mai_IN4
-rw-r--r--localedata/locales/mfe_MU2
-rw-r--r--localedata/locales/mhr_RU2
-rw-r--r--localedata/locales/mi_NZ2
-rw-r--r--localedata/locales/mjw_IN4
-rw-r--r--localedata/locales/ml_IN4
-rw-r--r--localedata/locales/mni_IN4
-rw-r--r--localedata/locales/mnw_MM287
-rw-r--r--localedata/locales/mr_IN4
-rw-r--r--localedata/locales/ms_MY4
-rw-r--r--localedata/locales/mt_MT6
-rw-r--r--localedata/locales/my_MM3
-rw-r--r--localedata/locales/nan_TW8
-rw-r--r--localedata/locales/nan_TW@latin4
-rw-r--r--localedata/locales/nds_DE2
-rw-r--r--localedata/locales/nds_NL2
-rw-r--r--localedata/locales/ne_NP2
-rw-r--r--localedata/locales/nhn_MX3
-rw-r--r--localedata/locales/niu_NU2
-rw-r--r--localedata/locales/niu_NZ1
-rw-r--r--localedata/locales/nl_AW8
-rw-r--r--localedata/locales/nl_BE2
-rw-r--r--localedata/locales/nl_BE@euro2
-rw-r--r--localedata/locales/nl_NL15
-rw-r--r--localedata/locales/nl_NL@euro2
-rw-r--r--localedata/locales/nr_ZA2
-rw-r--r--localedata/locales/oc_FR2
-rw-r--r--localedata/locales/om_ET4
-rw-r--r--localedata/locales/or_IN2
-rw-r--r--localedata/locales/pa_IN4
-rw-r--r--localedata/locales/pa_PK2
-rw-r--r--localedata/locales/ps_AF3
-rw-r--r--localedata/locales/pt_PT@euro2
-rw-r--r--localedata/locales/quz_PE8
-rw-r--r--localedata/locales/raj_IN15
-rw-r--r--localedata/locales/ru_UA70
-rw-r--r--localedata/locales/rw_RW2
-rw-r--r--localedata/locales/sa_IN4
-rw-r--r--localedata/locales/sah_RU14
-rw-r--r--localedata/locales/sat_IN9
-rw-r--r--localedata/locales/sc_IT2
-rw-r--r--localedata/locales/sd_IN10
-rw-r--r--localedata/locales/sd_IN@devanagari6
-rw-r--r--localedata/locales/shn_MM3
-rw-r--r--localedata/locales/shs_CA8
-rw-r--r--localedata/locales/sid_ET4
-rw-r--r--localedata/locales/sk_SK2
-rw-r--r--localedata/locales/sm_WS2
-rw-r--r--localedata/locales/so_DJ4
-rw-r--r--localedata/locales/so_ET4
-rw-r--r--localedata/locales/so_KE8
-rw-r--r--localedata/locales/so_SO4
-rw-r--r--localedata/locales/sq_AL11
-rw-r--r--localedata/locales/ss_ZA2
-rw-r--r--localedata/locales/sv_FI@euro2
-rw-r--r--localedata/locales/szl_PL43
-rw-r--r--localedata/locales/ta_IN8
-rw-r--r--localedata/locales/ta_LK8
-rw-r--r--localedata/locales/tcy_IN4
-rw-r--r--localedata/locales/te_IN4
-rw-r--r--localedata/locales/tg_TJ2
-rw-r--r--localedata/locales/the_NP6
-rw-r--r--localedata/locales/ti_ER4
-rw-r--r--localedata/locales/ti_ET4
-rw-r--r--localedata/locales/tig_ER4
-rw-r--r--localedata/locales/tk_TM2
-rw-r--r--localedata/locales/tl_PH1
-rw-r--r--localedata/locales/to_TO6
-rw-r--r--localedata/locales/tpi_PG5
-rw-r--r--localedata/locales/tr_CY2
-rw-r--r--localedata/locales/tr_TR2254
-rw-r--r--localedata/locales/translit_circle2
-rw-r--r--localedata/locales/translit_cjk_compat4
-rw-r--r--localedata/locales/translit_combining54
-rw-r--r--localedata/locales/translit_compat4
-rw-r--r--localedata/locales/translit_font2
-rw-r--r--localedata/locales/translit_fraction2
-rw-r--r--localedata/locales/translit_neutral52
-rw-r--r--localedata/locales/tt_RU77
-rw-r--r--localedata/locales/tt_RU@iqtelif2
-rw-r--r--localedata/locales/ug_CN3
-rw-r--r--localedata/locales/unm_US2
-rw-r--r--localedata/locales/ur_IN4
-rw-r--r--localedata/locales/wa_BE2
-rw-r--r--localedata/locales/wa_BE@euro2
-rw-r--r--localedata/locales/wal_ET4
-rw-r--r--localedata/locales/wo_SN1
-rw-r--r--localedata/locales/xh_ZA4
-rw-r--r--localedata/locales/yo_NG4
-rw-r--r--localedata/locales/yuw_PG6
-rw-r--r--localedata/locales/zh_CN1
-rw-r--r--localedata/locales/zh_HK5
-rw-r--r--localedata/locales/zh_SG1
-rw-r--r--localedata/locales/zh_TW4
-rw-r--r--localedata/sort-test.sh4
-rw-r--r--localedata/tests-mbwc/tst_swscanf.c10
-rw-r--r--localedata/tests/test6.c4
-rw-r--r--localedata/tst-ctype.c4
-rwxr-xr-xlocaledata/tst-ctype.sh4
-rw-r--r--localedata/tst-digits.c4
-rw-r--r--localedata/tst-fmon.c4
-rw-r--r--localedata/tst-fmon.data4
-rwxr-xr-xlocaledata/tst-fmon.sh4
-rw-r--r--localedata/tst-iconv-math-trans.c104
-rw-r--r--localedata/tst-langinfo-newlocale.c4
-rw-r--r--localedata/tst-langinfo-setlocale.c4
-rw-r--r--localedata/tst-langinfo.c4
-rwxr-xr-xlocaledata/tst-langinfo.sh4
-rw-r--r--localedata/tst-leaks.c1
-rwxr-xr-xlocaledata/tst-locale.sh4
-rw-r--r--localedata/tst-mbswcs1.c4
-rw-r--r--localedata/tst-mbswcs2.c4
-rw-r--r--localedata/tst-mbswcs3.c4
-rw-r--r--localedata/tst-mbswcs4.c4
-rw-r--r--localedata/tst-mbswcs5.c4
-rw-r--r--localedata/tst-mbswcs6.c4
-rw-r--r--localedata/tst-numeric.c4
-rw-r--r--localedata/tst-numeric.data4
-rw-r--r--localedata/tst-numeric.sh4
-rw-r--r--localedata/tst-rpmatch.c4
-rwxr-xr-xlocaledata/tst-rpmatch.sh4
-rw-r--r--localedata/tst-setlocale3.c4
-rw-r--r--localedata/tst-strfmon1.c3
-rw-r--r--localedata/tst-trans.c4
-rwxr-xr-xlocaledata/tst-trans.sh4
-rw-r--r--localedata/tst-wctype.c4
-rw-r--r--localedata/unicode-gen/DerivedCoreProperties.txt509
-rw-r--r--localedata/unicode-gen/EastAsianWidth.txt116
-rw-r--r--localedata/unicode-gen/Makefile6
-rw-r--r--localedata/unicode-gen/PropList.txt77
-rw-r--r--localedata/unicode-gen/UnicodeData.txt565
-rwxr-xr-xlocaledata/unicode-gen/ctype_compatibility.py4
-rw-r--r--localedata/unicode-gen/ctype_compatibility_test_cases.py9
-rw-r--r--localedata/unicode-gen/gen_translit_circle.py4
-rw-r--r--localedata/unicode-gen/gen_translit_cjk_compat.py4
-rw-r--r--localedata/unicode-gen/gen_translit_combining.py4
-rw-r--r--localedata/unicode-gen/gen_translit_compat.py4
-rw-r--r--localedata/unicode-gen/gen_translit_font.py4
-rw-r--r--localedata/unicode-gen/gen_translit_fraction.py4
-rwxr-xr-xlocaledata/unicode-gen/gen_unicode_ctype.py4
-rw-r--r--localedata/unicode-gen/unicode_utils.py4
-rwxr-xr-xlocaledata/unicode-gen/utf8_compatibility.py4
-rwxr-xr-xlocaledata/unicode-gen/utf8_gen.py4
-rw-r--r--localedata/xfrm-test.c4
-rw-r--r--login/Makefile10
-rw-r--r--login/endutxent.c4
-rw-r--r--login/forkpty.c4
-rw-r--r--login/getlogin.c4
-rw-r--r--login/getlogin_r.c4
-rw-r--r--login/getlogin_r_chk.c4
-rw-r--r--login/getpt.c4
-rw-r--r--login/getutent.c4
-rw-r--r--login/getutent_r.c112
-rw-r--r--login/getutid.c4
-rw-r--r--login/getutid_r.c11
-rw-r--r--login/getutline.c4
-rw-r--r--login/getutline_r.c6
-rw-r--r--login/getutmp.c16
-rw-r--r--login/getutmpx.c17
-rw-r--r--login/getutxent.c4
-rw-r--r--login/getutxid.c4
-rw-r--r--login/getutxline.c4
-rw-r--r--login/grantpt.c4
-rw-r--r--login/login.c8
-rw-r--r--login/logout.c23
-rw-r--r--login/logwtmp.c23
-rw-r--r--login/openpty.c4
-rw-r--r--login/programs/pt_chown.c6
-rw-r--r--login/programs/utmpdump.c50
-rw-r--r--login/ptsname.c4
-rw-r--r--login/ptsname_r_chk.c4
-rw-r--r--login/pty.h4
-rw-r--r--login/pututxline.c4
-rw-r--r--login/setlogin.c4
-rw-r--r--login/setutxent.c4
-rw-r--r--login/tst-getlogin.c4
-rw-r--r--login/tst-ptsname.c4
-rw-r--r--login/tst-pututxline-cache.c193
-rw-r--r--login/tst-pututxline-lockfail.c176
-rw-r--r--login/tst-updwtmpx.c112
-rw-r--r--login/tst-utmp.c37
-rw-r--r--login/unlockpt.c4
-rw-r--r--login/updwtmp.c6
-rw-r--r--login/updwtmpx.c4
-rw-r--r--login/utmp-private.h33
-rw-r--r--login/utmp.h4
-rw-r--r--login/utmp_file.c515
-rw-r--r--login/utmpname.c7
-rw-r--r--login/utmpxname.c4
-rw-r--r--mach/Machrules4
-rw-r--r--mach/Makefile4
-rw-r--r--mach/devstream.c4
-rw-r--r--mach/err_kern.sub2
-rw-r--r--mach/lock-intern.h4
-rw-r--r--mach/lowlevellock.h12
-rw-r--r--mach/mach.h4
-rw-r--r--mach/mach/mach_traps.h4
-rw-r--r--mach/mach/mig_support.h4
-rw-r--r--mach/mach_init.c4
-rw-r--r--mach/mach_init.h4
-rw-r--r--mach/mig-alloc.c4
-rw-r--r--mach/mig-dealloc.c4
-rw-r--r--mach/mig-reply.c4
-rw-r--r--mach/msgserver.c4
-rw-r--r--mach/mutex-init.c4
-rw-r--r--mach/mutex-solid.c4
-rw-r--r--mach/setup-thread.c4
-rw-r--r--mach/spin-lock.h4
-rw-r--r--mach/spin-solid.c4
-rw-r--r--malloc/Depend2
-rw-r--r--malloc/Makefile14
-rw-r--r--malloc/alloc_buffer_alloc_array.c7
-rw-r--r--malloc/alloc_buffer_allocate.c4
-rw-r--r--malloc/alloc_buffer_copy_bytes.c4
-rw-r--r--malloc/alloc_buffer_copy_string.c4
-rw-r--r--malloc/alloc_buffer_create_failure.c4
-rw-r--r--malloc/arena.c11
-rw-r--r--malloc/dynarray-skeleton.c4
-rw-r--r--malloc/dynarray.h4
-rw-r--r--malloc/dynarray_at_failure.c4
-rw-r--r--malloc/dynarray_emplace_enlarge.c7
-rw-r--r--malloc/dynarray_finalize.c4
-rw-r--r--malloc/dynarray_resize.c7
-rw-r--r--malloc/dynarray_resize_clear.c4
-rw-r--r--malloc/hooks.c21
-rw-r--r--malloc/malloc-hooks.h4
-rw-r--r--malloc/malloc-internal.h25
-rw-r--r--malloc/malloc.c449
-rw-r--r--malloc/malloc.h24
-rw-r--r--malloc/mcheck-init.c4
-rw-r--r--malloc/mcheck.c4
-rw-r--r--malloc/mcheck.h4
-rw-r--r--malloc/memusage.c4
-rwxr-xr-xmalloc/memusage.sh6
-rw-r--r--malloc/memusagestat.c10
-rw-r--r--malloc/morecore.c4
-rw-r--r--malloc/mtrace.c76
-rw-r--r--malloc/mtrace.pl6
-rw-r--r--malloc/obstack.c4
-rw-r--r--malloc/obstack.h4
-rw-r--r--malloc/reallocarray.c10
-rw-r--r--malloc/scratch_buffer_grow.c4
-rw-r--r--malloc/scratch_buffer_grow_preserve.c4
-rw-r--r--malloc/scratch_buffer_set_array_size.c4
-rw-r--r--malloc/set-freeres.c4
-rw-r--r--malloc/thread-freeres.c4
-rw-r--r--malloc/tst-alloc_buffer.c4
-rw-r--r--malloc/tst-calloc.c11
-rw-r--r--malloc/tst-dynarray-at-fail.c4
-rw-r--r--malloc/tst-dynarray-fail.c4
-rw-r--r--malloc/tst-dynarray-shared.h4
-rw-r--r--malloc/tst-dynarray.c4
-rw-r--r--malloc/tst-interpose-aux-nothread.c4
-rw-r--r--malloc/tst-interpose-aux-thread.c4
-rw-r--r--malloc/tst-interpose-aux.c4
-rw-r--r--malloc/tst-interpose-aux.h4
-rw-r--r--malloc/tst-interpose-nothread.c4
-rw-r--r--malloc/tst-interpose-skeleton.c4
-rw-r--r--malloc/tst-interpose-static-nothread.c4
-rw-r--r--malloc/tst-interpose-static-thread.c4
-rw-r--r--malloc/tst-interpose-thread.c4
-rw-r--r--malloc/tst-malloc-backtrace.c4
-rw-r--r--malloc/tst-malloc-fork-deadlock.c4
-rw-r--r--malloc/tst-malloc-tcache-leak.c4
-rw-r--r--malloc/tst-malloc-thread-exit.c4
-rw-r--r--malloc/tst-malloc-thread-fail.c4
-rw-r--r--malloc/tst-malloc-too-large.c53
-rw-r--r--malloc/tst-malloc-usable.c4
-rw-r--r--malloc/tst-malloc.c4
-rw-r--r--malloc/tst-malloc_info.c4
-rw-r--r--malloc/tst-mallocfork.c6
-rw-r--r--malloc/tst-mallocfork2.c141
-rw-r--r--malloc/tst-mallocstate.c4
-rw-r--r--malloc/tst-mallopt.c4
-rw-r--r--malloc/tst-mcheck.c4
-rw-r--r--malloc/tst-memalign.c14
-rw-r--r--malloc/tst-mtrace.c4
-rwxr-xr-xmalloc/tst-mtrace.sh4
-rw-r--r--malloc/tst-mxfast.c50
-rw-r--r--malloc/tst-posix_memalign.c14
-rw-r--r--malloc/tst-pvalloc.c14
-rw-r--r--malloc/tst-realloc.c4
-rw-r--r--malloc/tst-reallocarray.c31
-rw-r--r--malloc/tst-scratch_buffer.c4
-rw-r--r--malloc/tst-tcfree1.c42
-rw-r--r--malloc/tst-tcfree2.c48
-rw-r--r--malloc/tst-tcfree3.c56
-rw-r--r--malloc/tst-valloc.c14
-rw-r--r--manual/Makefile14
-rw-r--r--manual/README.pretty-printers2
-rw-r--r--manual/README.tunables6
-rw-r--r--manual/arith.texi46
-rw-r--r--manual/check-safety.sh4
-rw-r--r--manual/conf.texi2
-rw-r--r--manual/contrib.texi50
-rw-r--r--manual/creature.texi7
-rw-r--r--manual/errno.texi13
-rw-r--r--manual/examples/add.c4
-rw-r--r--manual/examples/argp-ex1.c4
-rw-r--r--manual/examples/argp-ex2.c4
-rw-r--r--manual/examples/argp-ex3.c4
-rw-r--r--manual/examples/argp-ex4.c4
-rw-r--r--manual/examples/atexit.c4
-rw-r--r--manual/examples/db.c4
-rw-r--r--manual/examples/dir.c4
-rw-r--r--manual/examples/dir2.c4
-rw-r--r--manual/examples/execinfo.c4
-rw-r--r--manual/examples/filecli.c4
-rw-r--r--manual/examples/filesrv.c4
-rw-r--r--manual/examples/fmtmsgexpl.c4
-rw-r--r--manual/examples/genpass.c4
-rw-r--r--manual/examples/inetcli.c4
-rw-r--r--manual/examples/inetsrv.c4
-rw-r--r--manual/examples/isockad.c4
-rw-r--r--manual/examples/longopt.c4
-rw-r--r--manual/examples/memopen.c4
-rw-r--r--manual/examples/memstrm.c4
-rw-r--r--manual/examples/mkdirent.c4
-rw-r--r--manual/examples/mkfsock.c4
-rw-r--r--manual/examples/mkisock.c4
-rw-r--r--manual/examples/mygetpass.c4
-rw-r--r--manual/examples/ofdlocks.c4
-rw-r--r--manual/examples/pipe.c4
-rw-r--r--manual/examples/popen.c4
-rw-r--r--manual/examples/rprintf.c4
-rw-r--r--manual/examples/search.c4
-rw-r--r--manual/examples/select.c4
-rw-r--r--manual/examples/setjmp.c4
-rw-r--r--manual/examples/sigh1.c4
-rw-r--r--manual/examples/sigusr.c4
-rw-r--r--manual/examples/stpcpy.c4
-rw-r--r--manual/examples/strdupa.c4
-rw-r--r--manual/examples/strftim.c4
-rw-r--r--manual/examples/subopt.c4
-rw-r--r--manual/examples/swapcontext.c4
-rw-r--r--manual/examples/termios.c4
-rw-r--r--manual/examples/testopt.c4
-rw-r--r--manual/examples/testpass.c4
-rw-r--r--manual/examples/timeval_subtract.c4
-rw-r--r--manual/examples/twalk.c56
-rw-r--r--manual/filesys.texi46
-rw-r--r--manual/freemanuals.texi2
-rw-r--r--manual/install.texi139
-rw-r--r--manual/job.texi40
-rw-r--r--manual/libc.texinfo4
-rwxr-xr-xmanual/libm-err-tab.pl206
-rw-r--r--manual/llio.texi31
-rw-r--r--manual/locale.texi9
-rw-r--r--manual/maint.texi125
-rw-r--r--manual/math.texi2
-rw-r--r--manual/memory.texi1
-rw-r--r--manual/message.texi18
-rw-r--r--manual/nss.texi28
-rw-r--r--manual/probes.texi12
-rw-r--r--manual/process.texi71
-rw-r--r--manual/resource.texi81
-rw-r--r--manual/search.texi27
-rw-r--r--manual/setjmp.texi4
-rw-r--r--manual/signal.texi19
-rw-r--r--manual/socket.texi39
-rw-r--r--manual/startup.texi8
-rw-r--r--manual/stdio.texi4
-rwxr-xr-xmanual/summary.pl4
-rw-r--r--manual/terminal.texi13
-rw-r--r--manual/texinfo.tex119
-rw-r--r--manual/threads.texi98
-rw-r--r--manual/time.texi1110
-rw-r--r--manual/tsort.awk2
-rw-r--r--manual/tunables.texi85
-rw-r--r--manual/users.texi24
-rw-r--r--math/Makefile136
-rw-r--r--math/README.libm-test20
-rw-r--r--math/Versions15
-rw-r--r--math/atest-exp.c4
-rw-r--r--math/atest-exp2.c4
-rw-r--r--math/atest-sincos.c4
-rw-r--r--math/auto-libm-test-in6
-rw-r--r--math/auto-libm-test-out-pow50
-rw-r--r--math/basic-test.c4
-rw-r--r--math/bits/cmathcalls.h4
-rw-r--r--math/bits/math-finite.h197
-rw-r--r--math/bits/mathcalls-helper-functions.h4
-rw-r--r--math/bits/mathcalls-narrow.h4
-rw-r--r--math/bits/mathcalls.h30
-rw-r--r--math/cabs_template.c4
-rw-r--r--math/carg_template.c4
-rw-r--r--math/cimag_template.c4
-rw-r--r--math/complex.h4
-rw-r--r--math/conj_template.c4
-rw-r--r--math/creal_template.c4
-rw-r--r--math/divtc3.c16
-rw-r--r--math/e_exp10.c4
-rw-r--r--math/e_exp10f.c4
-rw-r--r--math/e_exp10l.c4
-rw-r--r--math/e_exp2_template.c4
-rw-r--r--math/e_scalb.c6
-rw-r--r--math/e_scalbf.c6
-rw-r--r--math/e_scalbl.c6
-rw-r--r--math/fclrexcpt.c4
-rw-r--r--math/fedisblxcpt.c4
-rw-r--r--math/feenablxcpt.c4
-rw-r--r--math/fegetenv.c4
-rw-r--r--math/fegetexcept.c4
-rw-r--r--math/fegetmode.c4
-rw-r--r--math/fegetround.c4
-rw-r--r--math/feholdexcpt.c4
-rw-r--r--math/fenv.h12
-rw-r--r--math/fesetenv.c4
-rw-r--r--math/fesetexcept.c4
-rw-r--r--math/fesetmode.c4
-rw-r--r--math/fesetround.c4
-rw-r--r--math/fetestexceptflag.c4
-rw-r--r--math/feupdateenv.c4
-rw-r--r--math/fgetexcptflg.c4
-rw-r--r--math/finclude/math-vector-fortran.h19
-rw-r--r--math/fpu_control.c4
-rw-r--r--math/fraiseexcpt.c7
-rw-r--r--math/fromfp.h5
-rw-r--r--math/fsetexcptflg.c4
-rw-r--r--math/ftestexcept.c4
-rw-r--r--math/gen-auto-libm-tests.c6
-rwxr-xr-xmath/gen-fromfp-tests.py4
-rwxr-xr-xmath/gen-libm-test.pl846
-rwxr-xr-xmath/gen-libm-test.py689
-rwxr-xr-xmath/gen-tgmath-tests.py190
-rw-r--r--math/k_casinh_template.c4
-rw-r--r--math/lgamma-compat.h4
-rw-r--r--math/libm-test-acos.inc4
-rw-r--r--math/libm-test-acosh.inc4
-rw-r--r--math/libm-test-asin.inc4
-rw-r--r--math/libm-test-asinh.inc4
-rw-r--r--math/libm-test-atan.inc4
-rw-r--r--math/libm-test-atan2.inc4
-rw-r--r--math/libm-test-atanh.inc4
-rw-r--r--math/libm-test-cabs.inc4
-rw-r--r--math/libm-test-cacos.inc4
-rw-r--r--math/libm-test-cacosh.inc4
-rw-r--r--math/libm-test-canonicalize.inc4
-rw-r--r--math/libm-test-carg.inc4
-rw-r--r--math/libm-test-casin.inc4
-rw-r--r--math/libm-test-casinh.inc4
-rw-r--r--math/libm-test-catan.inc4
-rw-r--r--math/libm-test-catanh.inc4
-rw-r--r--math/libm-test-cbrt.inc4
-rw-r--r--math/libm-test-ccos.inc4
-rw-r--r--math/libm-test-ccosh.inc4
-rw-r--r--math/libm-test-ceil.inc4
-rw-r--r--math/libm-test-cexp.inc4
-rw-r--r--math/libm-test-cimag.inc4
-rw-r--r--math/libm-test-clog.inc4
-rw-r--r--math/libm-test-clog10.inc4
-rw-r--r--math/libm-test-compat_totalorder.inc56
-rw-r--r--math/libm-test-compat_totalordermag.inc56
-rw-r--r--math/libm-test-conj.inc4
-rw-r--r--math/libm-test-copysign.inc4
-rw-r--r--math/libm-test-cos.inc4
-rw-r--r--math/libm-test-cosh.inc4
-rw-r--r--math/libm-test-cpow.inc4
-rw-r--r--math/libm-test-cproj.inc4
-rw-r--r--math/libm-test-creal.inc4
-rw-r--r--math/libm-test-csin.inc4
-rw-r--r--math/libm-test-csinh.inc4
-rw-r--r--math/libm-test-csqrt.inc4
-rw-r--r--math/libm-test-ctan.inc4
-rw-r--r--math/libm-test-ctanh.inc4
-rw-r--r--math/libm-test-driver.c35
-rw-r--r--math/libm-test-erf.inc4
-rw-r--r--math/libm-test-erfc.inc4
-rw-r--r--math/libm-test-exp.inc4
-rw-r--r--math/libm-test-exp10.inc4
-rw-r--r--math/libm-test-exp2.inc4
-rw-r--r--math/libm-test-expm1.inc4
-rw-r--r--math/libm-test-fabs.inc4
-rw-r--r--math/libm-test-fdim.inc4
-rw-r--r--math/libm-test-floor.inc4
-rw-r--r--math/libm-test-fma.inc213
-rw-r--r--math/libm-test-fmax.inc4
-rw-r--r--math/libm-test-fmaxmag.inc4
-rw-r--r--math/libm-test-fmin.inc4
-rw-r--r--math/libm-test-fminmag.inc4
-rw-r--r--math/libm-test-fmod.inc4
-rw-r--r--math/libm-test-fpclassify.inc4
-rw-r--r--math/libm-test-frexp.inc4
-rw-r--r--math/libm-test-fromfp.inc4
-rw-r--r--math/libm-test-fromfpx.inc4
-rw-r--r--math/libm-test-getpayload.inc4
-rw-r--r--math/libm-test-hypot.inc4
-rw-r--r--math/libm-test-ilogb.inc20
-rw-r--r--math/libm-test-iscanonical.inc4
-rw-r--r--math/libm-test-iseqsig.inc4
-rw-r--r--math/libm-test-isfinite.inc4
-rw-r--r--math/libm-test-isgreater.inc4
-rw-r--r--math/libm-test-isgreaterequal.inc4
-rw-r--r--math/libm-test-isinf.inc4
-rw-r--r--math/libm-test-isless.inc4
-rw-r--r--math/libm-test-islessequal.inc4
-rw-r--r--math/libm-test-islessgreater.inc4
-rw-r--r--math/libm-test-isnan.inc4
-rw-r--r--math/libm-test-isnormal.inc4
-rw-r--r--math/libm-test-issignaling.inc4
-rw-r--r--math/libm-test-issubnormal.inc4
-rw-r--r--math/libm-test-isunordered.inc4
-rw-r--r--math/libm-test-iszero.inc4
-rw-r--r--math/libm-test-j0.inc4
-rw-r--r--math/libm-test-j1.inc4
-rw-r--r--math/libm-test-jn.inc4
-rw-r--r--math/libm-test-lgamma.inc4
-rw-r--r--math/libm-test-llogb.inc20
-rw-r--r--math/libm-test-llrint.inc4
-rw-r--r--math/libm-test-llround.inc4
-rw-r--r--math/libm-test-log.inc4
-rw-r--r--math/libm-test-log10.inc4
-rw-r--r--math/libm-test-log1p.inc4
-rw-r--r--math/libm-test-log2.inc4
-rw-r--r--math/libm-test-logb.inc16
-rw-r--r--math/libm-test-lrint.inc4
-rw-r--r--math/libm-test-lround.inc4
-rw-r--r--math/libm-test-modf.inc4
-rw-r--r--math/libm-test-narrow-add.inc4
-rw-r--r--math/libm-test-narrow-div.inc4
-rw-r--r--math/libm-test-narrow-mul.inc4
-rw-r--r--math/libm-test-narrow-sub.inc4
-rw-r--r--math/libm-test-nearbyint.inc4
-rw-r--r--math/libm-test-nextafter.inc4
-rw-r--r--math/libm-test-nextdown.inc9
-rw-r--r--math/libm-test-nexttoward.inc8
-rw-r--r--math/libm-test-nextup.inc4
-rw-r--r--math/libm-test-pow.inc13
-rw-r--r--math/libm-test-remainder.inc4
-rw-r--r--math/libm-test-remquo.inc4
-rw-r--r--math/libm-test-rint.inc4
-rw-r--r--math/libm-test-round.inc4
-rw-r--r--math/libm-test-roundeven.inc4
-rw-r--r--math/libm-test-scalb.inc4
-rw-r--r--math/libm-test-scalbln.inc4
-rw-r--r--math/libm-test-scalbn.inc4
-rw-r--r--math/libm-test-setpayload.inc4
-rw-r--r--math/libm-test-setpayloadsig.inc4
-rw-r--r--math/libm-test-signbit.inc4
-rw-r--r--math/libm-test-significand.inc4
-rw-r--r--math/libm-test-sin.inc4
-rw-r--r--math/libm-test-sincos.inc4
-rw-r--r--math/libm-test-sinh.inc4
-rw-r--r--math/libm-test-sqrt.inc4
-rw-r--r--math/libm-test-support.c8
-rw-r--r--math/libm-test-support.h10
-rw-r--r--math/libm-test-tan.inc4
-rw-r--r--math/libm-test-tanh.inc4
-rw-r--r--math/libm-test-tgamma.inc4
-rw-r--r--math/libm-test-totalorder.inc458
-rw-r--r--math/libm-test-totalordermag.inc458
-rw-r--r--math/libm-test-trunc.inc4
-rw-r--r--math/libm-test-ufromfp.inc4
-rw-r--r--math/libm-test-ufromfpx.inc4
-rw-r--r--math/libm-test-y0.inc4
-rw-r--r--math/libm-test-y1.inc4
-rw-r--r--math/libm-test-yn.inc4
-rw-r--r--math/math-narrow.h5
-rw-r--r--math/math-svid-compat.h4
-rw-r--r--math/math-underflow.h4
-rw-r--r--math/math.h253
-rw-r--r--math/mul_split.h4
-rw-r--r--math/mul_splitl.h4
-rw-r--r--math/multc3.c28
-rw-r--r--math/s_cacos_template.c4
-rw-r--r--math/s_cacosh_template.c5
-rw-r--r--math/s_canonicalize_template.c4
-rw-r--r--math/s_casin_template.c5
-rw-r--r--math/s_casinh_template.c5
-rw-r--r--math/s_catan_template.c4
-rw-r--r--math/s_catanh_template.c4
-rw-r--r--math/s_ccos_template.c5
-rw-r--r--math/s_ccosh_template.c4
-rw-r--r--math/s_cexp_template.c4
-rw-r--r--math/s_clog10_template.c4
-rw-r--r--math/s_clog_template.c4
-rw-r--r--math/s_cpow_template.c4
-rw-r--r--math/s_cproj_template.c5
-rw-r--r--math/s_csin_template.c4
-rw-r--r--math/s_csinh_template.c4
-rw-r--r--math/s_csqrt_template.c4
-rw-r--r--math/s_ctan_template.c4
-rw-r--r--math/s_ctanh_template.c4
-rw-r--r--math/s_fdim_template.c5
-rw-r--r--math/s_fma.c4
-rw-r--r--math/s_fmaf.c4
-rw-r--r--math/s_fmal.c4
-rw-r--r--math/s_fmax_template.c4
-rw-r--r--math/s_fmaxmag_template.c5
-rw-r--r--math/s_fmin_template.c4
-rw-r--r--math/s_fminmag_template.c5
-rw-r--r--math/s_iseqsig_template.c5
-rw-r--r--math/s_ldexp_template.c1
-rw-r--r--math/s_nan_template.c4
-rw-r--r--math/s_nextdown_template.c5
-rw-r--r--math/s_significand_template.c4
-rw-r--r--math/setfpucw.c4
-rw-r--r--math/test-arg-double.h4
-rw-r--r--math/test-arg-float128.h4
-rw-r--r--math/test-arg-float32x.h4
-rw-r--r--math/test-arg-float64.h4
-rw-r--r--math/test-arg-float64x.h4
-rw-r--r--math/test-arg-ldouble.h4
-rw-r--r--math/test-double-vlen2.h6
-rw-r--r--math/test-double-vlen4.h6
-rw-r--r--math/test-double-vlen8.h6
-rw-r--r--math/test-double.h4
-rw-r--r--math/test-fe-snans-always-signal.c4
-rw-r--r--math/test-femode-traps.c4
-rw-r--r--math/test-femode.c4
-rw-r--r--math/test-fenv-clear-main.c4
-rw-r--r--math/test-fenv-preserve.c4
-rw-r--r--math/test-fenv-return.c4
-rw-r--r--math/test-fenv-tls.c4
-rw-r--r--math/test-fenv.c8
-rw-r--r--math/test-fenvinline.c8
-rw-r--r--math/test-fesetexcept-traps.c4
-rw-r--r--math/test-fesetexcept.c4
-rw-r--r--math/test-fetestexceptflag.c4
-rw-r--r--math/test-fexcept-traps.c4
-rw-r--r--math/test-fexcept.c4
-rw-r--r--math/test-finite-macros.c35
-rw-r--r--math/test-float-vlen16.h6
-rw-r--r--math/test-float-vlen4.h6
-rw-r--r--math/test-float-vlen8.h6
-rw-r--r--math/test-float.h4
-rw-r--r--math/test-float128.h4
-rw-r--r--math/test-float32.h4
-rw-r--r--math/test-float32x.h4
-rw-r--r--math/test-float64.h4
-rw-r--r--math/test-float64x.h4
-rw-r--r--math/test-flt-eval-method.c4
-rw-r--r--math/test-fp-ilogb-constants.c4
-rw-r--r--math/test-fp-llogb-constants.c4
-rw-r--r--math/test-fpucw-ieee.c4
-rw-r--r--math/test-fpucw.c4
-rw-r--r--math/test-iseqsig-excess-precision.c4
-rw-r--r--math/test-iszero-excess-precision.c4
-rw-r--r--math/test-ldouble.h4
-rw-r--r--math/test-math-cxx11.cc4
-rw-r--r--math/test-math-errno.h4
-rw-r--r--math/test-math-exceptions.h19
-rw-r--r--math/test-math-finite.h21
-rw-r--r--math/test-math-floatn.h4
-rw-r--r--math/test-math-inline.h5
-rw-r--r--math/test-math-iscanonical.cc4
-rw-r--r--math/test-math-iseqsig.cc4
-rw-r--r--math/test-math-isinff.cc4
-rw-r--r--math/test-math-issignaling.cc4
-rw-r--r--math/test-math-iszero.cc4
-rw-r--r--math/test-math-narrow.h4
-rw-r--r--math/test-math-no-finite.h20
-rw-r--r--math/test-math-no-inline.h4
-rw-r--r--math/test-math-scalar.h4
-rw-r--r--math/test-math-vector.h5
-rw-r--r--math/test-matherr-2.c4
-rw-r--r--math/test-matherr-3.c4
-rw-r--r--math/test-matherr.c4
-rw-r--r--math/test-misc.c10
-rw-r--r--math/test-nan-const.c4
-rw-r--r--math/test-nan-overflow.c4
-rw-r--r--math/test-nan-payload.c4
-rw-r--r--math/test-narrow-macros.c4
-rw-r--r--math/test-nearbyint-except-2.c4
-rw-r--r--math/test-nearbyint-except.c4
-rw-r--r--math/test-powl.c4
-rw-r--r--math/test-signgam-finite-c11.c1
-rw-r--r--math/test-signgam-finite-c99.c63
-rw-r--r--math/test-signgam-finite.c63
-rw-r--r--math/test-signgam-main.c4
-rw-r--r--math/test-snan.c4
-rw-r--r--math/test-tgmath-int.c4
-rw-r--r--math/test-tgmath-ret.c6
-rw-r--r--math/test-tgmath.c26
-rw-r--r--math/test-tgmath2.c4
-rw-r--r--math/tgmath.h197
-rw-r--r--math/tst-CMPLX2.c4
-rw-r--r--math/tst-definitions.c4
-rw-r--r--math/w_acos_compat.c4
-rw-r--r--math/w_acos_template.c4
-rw-r--r--math/w_acosf_compat.c4
-rw-r--r--math/w_acosh_compat.c4
-rw-r--r--math/w_acosh_template.c4
-rw-r--r--math/w_acoshf_compat.c4
-rw-r--r--math/w_acoshl_compat.c4
-rw-r--r--math/w_acosl_compat.c4
-rw-r--r--math/w_asin_compat.c4
-rw-r--r--math/w_asin_template.c4
-rw-r--r--math/w_asinf_compat.c4
-rw-r--r--math/w_asinl_compat.c4
-rw-r--r--math/w_atan2_compat.c4
-rw-r--r--math/w_atan2_template.c4
-rw-r--r--math/w_atan2f_compat.c4
-rw-r--r--math/w_atan2l_compat.c4
-rw-r--r--math/w_atanh_compat.c4
-rw-r--r--math/w_atanh_template.c4
-rw-r--r--math/w_atanhf_compat.c4
-rw-r--r--math/w_atanhl_compat.c4
-rw-r--r--math/w_cosh_compat.c2
-rw-r--r--math/w_cosh_template.c4
-rw-r--r--math/w_coshl_compat.c2
-rw-r--r--math/w_exp.c8
-rw-r--r--math/w_exp10_compat.c4
-rw-r--r--math/w_exp10_template.c4
-rw-r--r--math/w_exp10f_compat.c4
-rw-r--r--math/w_exp10l_compat.c4
-rw-r--r--math/w_exp2.c8
-rw-r--r--math/w_exp2_compat.c20
-rw-r--r--math/w_exp2_template.c4
-rw-r--r--math/w_exp_compat.c25
-rw-r--r--math/w_exp_template.c4
-rw-r--r--math/w_expf_compat.c4
-rw-r--r--math/w_fmod_compat.c4
-rw-r--r--math/w_fmod_template.c4
-rw-r--r--math/w_fmodf_compat.c4
-rw-r--r--math/w_fmodl_compat.c4
-rw-r--r--math/w_hypot_template.c4
-rw-r--r--math/w_ilogb_template.c5
-rw-r--r--math/w_j0_compat.c4
-rw-r--r--math/w_j0_template.c4
-rw-r--r--math/w_j0f_compat.c4
-rw-r--r--math/w_j0l_compat.c4
-rw-r--r--math/w_j1_compat.c4
-rw-r--r--math/w_j1_template.c4
-rw-r--r--math/w_j1f_compat.c4
-rw-r--r--math/w_j1l_compat.c4
-rw-r--r--math/w_jn_compat.c4
-rw-r--r--math/w_jn_template.c4
-rw-r--r--math/w_jnf_compat.c4
-rw-r--r--math/w_lgamma_main.c2
-rw-r--r--math/w_lgamma_r_compat.c2
-rw-r--r--math/w_lgamma_r_template.c4
-rw-r--r--math/w_lgamma_template.c4
-rw-r--r--math/w_lgammaf_main.c2
-rw-r--r--math/w_lgammaf_r_compat.c2
-rw-r--r--math/w_lgammal_main.c2
-rw-r--r--math/w_lgammal_r_compat.c2
-rw-r--r--math/w_llogb_template.c5
-rw-r--r--math/w_log.c8
-rw-r--r--math/w_log10_compat.c4
-rw-r--r--math/w_log10_template.c4
-rw-r--r--math/w_log10f_compat.c4
-rw-r--r--math/w_log10l_compat.c4
-rw-r--r--math/w_log1p_template.c5
-rw-r--r--math/w_log2.c8
-rw-r--r--math/w_log2_compat.c24
-rw-r--r--math/w_log2_template.c4
-rw-r--r--math/w_log2f_compat.c4
-rw-r--r--math/w_log2l_compat.c4
-rw-r--r--math/w_log_compat.c24
-rw-r--r--math/w_log_template.c4
-rw-r--r--math/w_logf_compat.c4
-rw-r--r--math/w_logl_compat.c4
-rw-r--r--math/w_pow.c8
-rw-r--r--math/w_pow_compat.c24
-rw-r--r--math/w_pow_template.c4
-rw-r--r--math/w_powf_compat.c4
-rw-r--r--math/w_powl_compat.c4
-rw-r--r--math/w_remainder_compat.c4
-rw-r--r--math/w_remainder_template.c4
-rw-r--r--math/w_remainderf_compat.c4
-rw-r--r--math/w_remainderl_compat.c4
-rw-r--r--math/w_scalb_compat.c4
-rw-r--r--math/w_scalbf_compat.c4
-rw-r--r--math/w_scalbl_compat.c4
-rw-r--r--math/w_scalbln_template.c5
-rw-r--r--math/w_sinh_template.c4
-rw-r--r--math/w_sqrt_compat.c4
-rw-r--r--math/w_sqrt_template.c4
-rw-r--r--math/w_sqrtf_compat.c4
-rw-r--r--math/w_sqrtl_compat.c4
-rw-r--r--math/w_tgamma_compat.c2
-rw-r--r--math/w_tgamma_template.c6
-rw-r--r--math/w_tgammaf_compat.c2
-rw-r--r--math/w_tgammal_compat.c2
-rw-r--r--mathvec/Makefile4
-rw-r--r--misc/Makefile20
-rw-r--r--misc/Versions5
-rw-r--r--misc/acct.c4
-rw-r--r--misc/allocate_once.c4
-rw-r--r--misc/ar.h4
-rw-r--r--misc/bits/err-ldbl.h30
-rw-r--r--misc/bits/error-ldbl.h24
-rw-r--r--misc/bits/error.h4
-rw-r--r--misc/bits/select2.h4
-rw-r--r--misc/bits/stab.def4
-rw-r--r--misc/bits/syslog-ldbl.h4
-rw-r--r--misc/bits/syslog.h4
-rw-r--r--misc/bits/types/struct_iovec.h4
-rw-r--r--misc/brk.c4
-rw-r--r--misc/bug18240.c4
-rw-r--r--misc/chflags.c4
-rw-r--r--misc/chroot.c4
-rw-r--r--misc/dirname.c4
-rw-r--r--misc/efgcvt.c4
-rw-r--r--misc/efgcvt_r.c4
-rw-r--r--misc/err.c105
-rw-r--r--misc/err.h8
-rw-r--r--misc/error.c117
-rw-r--r--misc/error.h16
-rw-r--r--misc/fchflags.c4
-rw-r--r--misc/fdatasync.c4
-rw-r--r--misc/fgetxattr.c4
-rw-r--r--misc/flistxattr.c4
-rw-r--r--misc/fremovexattr.c4
-rw-r--r--misc/fsetxattr.c4
-rw-r--r--misc/fstab.c16
-rw-r--r--misc/fsync.c4
-rw-r--r--misc/ftruncate.c4
-rw-r--r--misc/ftruncate64.c4
-rw-r--r--misc/futimes.c4
-rw-r--r--misc/futimesat.c4
-rw-r--r--misc/getauxval.c4
-rw-r--r--misc/getclktck.c4
-rw-r--r--misc/getdomain.c4
-rw-r--r--misc/getdtsz.c4
-rw-r--r--misc/gethostid.c4
-rw-r--r--misc/gethostname.c4
-rw-r--r--misc/getloadavg.c4
-rw-r--r--misc/getpagesize.c4
-rw-r--r--misc/getpass.c4
-rw-r--r--misc/getsysstats.c4
-rw-r--r--misc/getxattr.c4
-rw-r--r--misc/gtty.c4
-rw-r--r--misc/hsearch.c4
-rw-r--r--misc/hsearch_r.c4
-rw-r--r--misc/ifunc-impl-list.c4
-rw-r--r--misc/init-misc.c4
-rw-r--r--misc/insremque.c4
-rw-r--r--misc/ioctl.c4
-rw-r--r--misc/lgetxattr.c4
-rw-r--r--misc/libgen.h4
-rw-r--r--misc/listxattr.c4
-rw-r--r--misc/llistxattr.c4
-rw-r--r--misc/lremovexattr.c4
-rw-r--r--misc/lsearch.c4
-rw-r--r--misc/lsetxattr.c4
-rw-r--r--misc/lutimes.c4
-rw-r--r--misc/madvise.c4
-rw-r--r--misc/makedev.c4
-rw-r--r--misc/mincore.c4
-rw-r--r--misc/mkdtemp.c4
-rw-r--r--misc/mkostemp.c4
-rw-r--r--misc/mkostemp64.c4
-rw-r--r--misc/mkostemps.c4
-rw-r--r--misc/mkostemps64.c4
-rw-r--r--misc/mkstemp.c4
-rw-r--r--misc/mkstemp64.c4
-rw-r--r--misc/mkstemps.c4
-rw-r--r--misc/mkstemps64.c4
-rw-r--r--misc/mktemp.c4
-rw-r--r--misc/mlock.c4
-rw-r--r--misc/mlockall.c4
-rw-r--r--misc/mmap.c4
-rw-r--r--misc/mmap64.c4
-rw-r--r--misc/mntent.c41
-rw-r--r--misc/mntent.h4
-rw-r--r--misc/mntent_r.c54
-rw-r--r--misc/mprotect.c4
-rw-r--r--misc/msync.c4
-rw-r--r--misc/munlock.c4
-rw-r--r--misc/munlockall.c4
-rw-r--r--misc/munmap.c4
-rw-r--r--misc/preadv.c4
-rw-r--r--misc/preadv2.c4
-rw-r--r--misc/preadv64.c4
-rw-r--r--misc/preadv64v2.c4
-rw-r--r--misc/pselect.c52
-rw-r--r--misc/ptrace.c4
-rw-r--r--misc/pwritev.c4
-rw-r--r--misc/pwritev2.c4
-rw-r--r--misc/pwritev64.c4
-rw-r--r--misc/pwritev64v2.c4
-rw-r--r--misc/qefgcvt.c4
-rw-r--r--misc/qefgcvt_r.c4
-rw-r--r--misc/readv.c4
-rw-r--r--misc/reboot.c4
-rw-r--r--misc/regexp.c4
-rw-r--r--misc/regexp.h4
-rw-r--r--misc/remap_file_pages.c4
-rw-r--r--misc/removexattr.c4
-rw-r--r--misc/revoke.c4
-rw-r--r--misc/sbrk.c4
-rw-r--r--misc/search.h11
-rw-r--r--misc/select.c4
-rw-r--r--misc/setdomain.c4
-rw-r--r--misc/setegid.c4
-rw-r--r--misc/seteuid.c4
-rw-r--r--misc/sethostid.c4
-rw-r--r--misc/sethostname.c4
-rw-r--r--misc/setregid.c4
-rw-r--r--misc/setreuid.c4
-rw-r--r--misc/setxattr.c4
-rw-r--r--misc/sgtty.h4
-rw-r--r--misc/sstk.c4
-rw-r--r--misc/stty.c4
-rw-r--r--misc/swapoff.c4
-rw-r--r--misc/swapon.c4
-rw-r--r--misc/sync.c4
-rw-r--r--misc/syncfs.c4
-rw-r--r--misc/sys/auxv.h4
-rw-r--r--misc/sys/cdefs.h20
-rw-r--r--misc/sys/dir.h4
-rw-r--r--misc/sys/file.h4
-rw-r--r--misc/sys/ioctl.h4
-rw-r--r--misc/sys/mman.h4
-rw-r--r--misc/sys/param.h4
-rw-r--r--misc/sys/select.h4
-rw-r--r--misc/sys/sysmacros.h4
-rw-r--r--misc/sys/uio.h4
-rw-r--r--misc/sys/xattr.h4
-rw-r--r--misc/syscall.c4
-rw-r--r--misc/syslog.c38
-rw-r--r--misc/truncate.c4
-rw-r--r--misc/truncate64.c4
-rw-r--r--misc/tsearch.c38
-rw-r--r--misc/tst-allocate_once.c4
-rw-r--r--misc/tst-atomic-long.c4
-rw-r--r--misc/tst-atomic.c4
-rw-r--r--misc/tst-dbl-efgcvt.c36
-rw-r--r--misc/tst-dirname.c4
-rw-r--r--misc/tst-efgcvt-template.c235
-rw-r--r--misc/tst-efgcvt.c216
-rw-r--r--misc/tst-fdset.c4
-rw-r--r--misc/tst-gethostid.c108
-rw-r--r--misc/tst-ldbl-efgcvt.c28
-rw-r--r--misc/tst-ldbl-error.c124
-rw-r--r--misc/tst-ldbl-warn.c124
-rw-r--r--misc/tst-makedev.c4
-rw-r--r--misc/tst-mntent-autofs.c141
-rw-r--r--misc/tst-mntent-blank-corrupt.c4
-rw-r--r--misc/tst-mntent-blank-passno.c4
-rw-r--r--misc/tst-preadvwritev-common.c8
-rw-r--r--misc/tst-preadvwritev.c4
-rw-r--r--misc/tst-preadvwritev2-common.c74
-rw-r--r--misc/tst-preadvwritev2.c6
-rw-r--r--misc/tst-preadvwritev64.c10
-rw-r--r--misc/tst-preadvwritev64v2.c6
-rw-r--r--misc/tst-pselect.c4
-rw-r--r--misc/tst-tsearch.c95
-rw-r--r--misc/tst-warn-wide.c88
-rw-r--r--misc/ualarm.c4
-rw-r--r--misc/usleep.c4
-rw-r--r--misc/ustat.c4
-rw-r--r--misc/utimes.c4
-rw-r--r--misc/vhangup.c4
-rw-r--r--misc/writev.c4
-rw-r--r--nis/Makefile14
-rw-r--r--nis/libnsl.h4
-rw-r--r--nis/nis_add.c4
-rw-r--r--nis/nis_addmember.c4
-rw-r--r--nis/nis_call.c15
-rw-r--r--nis/nis_callback.c8
-rw-r--r--nis/nis_checkpoint.c4
-rw-r--r--nis/nis_clone_dir.c4
-rw-r--r--nis/nis_clone_obj.c4
-rw-r--r--nis/nis_clone_res.c4
-rw-r--r--nis/nis_creategroup.c4
-rw-r--r--nis/nis_defaults.c20
-rw-r--r--nis/nis_destroygroup.c4
-rw-r--r--nis/nis_domain_of.c4
-rw-r--r--nis/nis_domain_of_r.c4
-rw-r--r--nis/nis_error.c4
-rw-r--r--nis/nis_file.c4
-rw-r--r--nis/nis_findserv.c12
-rw-r--r--nis/nis_free.c4
-rw-r--r--nis/nis_getservlist.c4
-rw-r--r--nis/nis_hash.c4
-rw-r--r--nis/nis_intern.h4
-rw-r--r--nis/nis_ismember.c8
-rw-r--r--nis/nis_local_names.c8
-rw-r--r--nis/nis_lookup.c4
-rw-r--r--nis/nis_mkdir.c4
-rw-r--r--nis/nis_modify.c4
-rw-r--r--nis/nis_ping.c4
-rw-r--r--nis/nis_print.c4
-rw-r--r--nis/nis_print_group_entry.c4
-rw-r--r--nis/nis_remove.c4
-rw-r--r--nis/nis_removemember.c4
-rw-r--r--nis/nis_rmdir.c4
-rw-r--r--nis/nis_server.c4
-rw-r--r--nis/nis_subr.c6
-rw-r--r--nis/nis_table.c4
-rw-r--r--nis/nis_util.c4
-rw-r--r--nis/nis_verifygroup.c4
-rw-r--r--nis/nis_xdr.c4
-rw-r--r--nis/nis_xdr.h4
-rw-r--r--nis/nisplus-parser.h4
-rw-r--r--nis/nss-default.c4
-rw-r--r--nis/nss-nis.c4
-rw-r--r--nis/nss-nis.h4
-rw-r--r--nis/nss-nisplus.c4
-rw-r--r--nis/nss-nisplus.h4
-rw-r--r--nis/nss_nis/nis-alias.c4
-rw-r--r--nis/nss_nis/nis-ethers.c4
-rw-r--r--nis/nss_nis/nis-grp.c4
-rw-r--r--nis/nss_nis/nis-hosts.c59
-rw-r--r--nis/nss_nis/nis-initgroups.c4
-rw-r--r--nis/nss_nis/nis-netgrp.c4
-rw-r--r--nis/nss_nis/nis-network.c4
-rw-r--r--nis/nss_nis/nis-proto.c4
-rw-r--r--nis/nss_nis/nis-publickey.c4
-rw-r--r--nis/nss_nis/nis-pwd.c4
-rw-r--r--nis/nss_nis/nis-rpc.c10
-rw-r--r--nis/nss_nis/nis-service.c4
-rw-r--r--nis/nss_nis/nis-spwd.c4
-rw-r--r--nis/nss_nisplus/nisplus-alias.c4
-rw-r--r--nis/nss_nisplus/nisplus-ethers.c4
-rw-r--r--nis/nss_nisplus/nisplus-grp.c4
-rw-r--r--nis/nss_nisplus/nisplus-hosts.c63
-rw-r--r--nis/nss_nisplus/nisplus-initgroups.c4
-rw-r--r--nis/nss_nisplus/nisplus-netgrp.c22
-rw-r--r--nis/nss_nisplus/nisplus-network.c4
-rw-r--r--nis/nss_nisplus/nisplus-parser.c4
-rw-r--r--nis/nss_nisplus/nisplus-proto.c4
-rw-r--r--nis/nss_nisplus/nisplus-publickey.c4
-rw-r--r--nis/nss_nisplus/nisplus-pwd.c4
-rw-r--r--nis/nss_nisplus/nisplus-rpc.c4
-rw-r--r--nis/nss_nisplus/nisplus-service.c4
-rw-r--r--nis/nss_nisplus/nisplus-spwd.c4
-rw-r--r--nis/rpcsvc/nislib.h4
-rw-r--r--nis/rpcsvc/ypclnt.h4
-rw-r--r--nis/ypclnt.c28
-rw-r--r--nptl/DESIGN-systemtap-probes.txt3
-rw-r--r--nptl/Makefile110
-rw-r--r--nptl/Versions27
-rw-r--r--nptl/alloca_cutoff.c4
-rw-r--r--nptl/allocatestack.c62
-rw-r--r--nptl/call_once.c4
-rw-r--r--nptl/cancellation.c11
-rw-r--r--nptl/cleanup.c4
-rw-r--r--nptl/cleanup_compat.c4
-rw-r--r--nptl/cleanup_defer.c4
-rw-r--r--nptl/cleanup_defer_compat.c4
-rw-r--r--nptl/cleanup_routine.c4
-rw-r--r--nptl/cnd_broadcast.c4
-rw-r--r--nptl/cnd_destroy.c4
-rw-r--r--nptl/cnd_init.c4
-rw-r--r--nptl/cnd_signal.c4
-rw-r--r--nptl/cnd_timedwait.c4
-rw-r--r--nptl/cnd_wait.c4
-rw-r--r--nptl/compat-pthread_self.c27
-rw-r--r--nptl/createthread.c4
-rw-r--r--nptl/default-sched.h4
-rw-r--r--nptl/descr.h11
-rw-r--r--nptl/eintr.c16
-rw-r--r--nptl/events.c4
-rw-r--r--nptl/forward.c36
-rw-r--r--nptl/herrno.c4
-rw-r--r--nptl/libc-cancellation.c4
-rw-r--r--nptl/libc-cleanup.c4
-rw-r--r--nptl/libc-lowlevellock.c4
-rw-r--r--nptl/libc_multiple_threads.c4
-rw-r--r--nptl/libc_pthread_init.c4
-rw-r--r--nptl/libpthread-compat.c47
-rw-r--r--nptl/lll_timedlock_wait.c43
-rw-r--r--nptl/lll_timedwait_tid.c70
-rw-r--r--nptl/lowlevellock.c35
-rw-r--r--nptl/mtx_destroy.c4
-rw-r--r--nptl/mtx_init.c4
-rw-r--r--nptl/mtx_lock.c4
-rw-r--r--nptl/mtx_timedlock.c4
-rw-r--r--nptl/mtx_trylock.c4
-rw-r--r--nptl/mtx_unlock.c4
-rw-r--r--nptl/nptl-init.c79
-rw-r--r--nptl/nptl-printers.py7
-rw-r--r--nptl/nptlfreeres.c4
-rw-r--r--nptl/old_pthread_atfork.c4
-rw-r--r--nptl/old_pthread_cond_broadcast.c13
-rw-r--r--nptl/old_pthread_cond_destroy.c4
-rw-r--r--nptl/old_pthread_cond_init.c4
-rw-r--r--nptl/old_pthread_cond_signal.c13
-rw-r--r--nptl/old_pthread_cond_timedwait.c13
-rw-r--r--nptl/old_pthread_cond_wait.c13
-rw-r--r--nptl/perf.c4
-rw-r--r--nptl/pt-allocrtsig.c4
-rw-r--r--nptl/pt-cleanup.c4
-rw-r--r--nptl/pt-crti.S4
-rw-r--r--nptl/pt-fork.c4
-rw-r--r--nptl/pt-longjmp.c4
-rw-r--r--nptl/pt-raise.c4
-rw-r--r--nptl/pt-system.c4
-rw-r--r--nptl/pt-vfork.c65
-rw-r--r--nptl/pthread-pids.h4
-rw-r--r--nptl/pthreadP.h99
-rw-r--r--nptl/pthread_atfork.c4
-rw-r--r--nptl/pthread_attr_destroy.c6
-rw-r--r--nptl/pthread_attr_getaffinity.c4
-rw-r--r--nptl/pthread_attr_getdetachstate.c4
-rw-r--r--nptl/pthread_attr_getguardsize.c4
-rw-r--r--nptl/pthread_attr_getinheritsched.c4
-rw-r--r--nptl/pthread_attr_getschedparam.c4
-rw-r--r--nptl/pthread_attr_getschedpolicy.c4
-rw-r--r--nptl/pthread_attr_getscope.c4
-rw-r--r--nptl/pthread_attr_getstack.c4
-rw-r--r--nptl/pthread_attr_getstackaddr.c4
-rw-r--r--nptl/pthread_attr_getstacksize.c4
-rw-r--r--nptl/pthread_attr_init.c12
-rw-r--r--nptl/pthread_attr_setaffinity.c4
-rw-r--r--nptl/pthread_attr_setdetachstate.c4
-rw-r--r--nptl/pthread_attr_setguardsize.c4
-rw-r--r--nptl/pthread_attr_setinheritsched.c4
-rw-r--r--nptl/pthread_attr_setschedparam.c4
-rw-r--r--nptl/pthread_attr_setschedpolicy.c4
-rw-r--r--nptl/pthread_attr_setscope.c4
-rw-r--r--nptl/pthread_attr_setstack.c4
-rw-r--r--nptl/pthread_attr_setstackaddr.c4
-rw-r--r--nptl/pthread_attr_setstacksize.c4
-rw-r--r--nptl/pthread_barrier_destroy.c4
-rw-r--r--nptl/pthread_barrier_init.c4
-rw-r--r--nptl/pthread_barrier_wait.c4
-rw-r--r--nptl/pthread_barrierattr_destroy.c4
-rw-r--r--nptl/pthread_barrierattr_getpshared.c4
-rw-r--r--nptl/pthread_barrierattr_init.c4
-rw-r--r--nptl/pthread_barrierattr_setpshared.c4
-rw-r--r--nptl/pthread_cancel.c11
-rw-r--r--nptl/pthread_clock_gettime.c67
-rw-r--r--nptl/pthread_clock_settime.c54
-rw-r--r--nptl/pthread_clockjoin.c29
-rw-r--r--nptl/pthread_cond_broadcast.c4
-rw-r--r--nptl/pthread_cond_common.c12
-rw-r--r--nptl/pthread_cond_destroy.c4
-rw-r--r--nptl/pthread_cond_init.c4
-rw-r--r--nptl/pthread_cond_signal.c4
-rw-r--r--nptl/pthread_cond_wait.c70
-rw-r--r--nptl/pthread_condattr_destroy.c4
-rw-r--r--nptl/pthread_condattr_getclock.c4
-rw-r--r--nptl/pthread_condattr_getpshared.c4
-rw-r--r--nptl/pthread_condattr_init.c4
-rw-r--r--nptl/pthread_condattr_setclock.c9
-rw-r--r--nptl/pthread_condattr_setpshared.c4
-rw-r--r--nptl/pthread_create.c13
-rw-r--r--nptl/pthread_detach.c4
-rw-r--r--nptl/pthread_equal.c4
-rw-r--r--nptl/pthread_exit.c4
-rw-r--r--nptl/pthread_getaffinity.c4
-rw-r--r--nptl/pthread_getattr_default_np.c4
-rw-r--r--nptl/pthread_getattr_np.c4
-rw-r--r--nptl/pthread_getconcurrency.c4
-rw-r--r--nptl/pthread_getcpuclockid.c4
-rw-r--r--nptl/pthread_getname.c4
-rw-r--r--nptl/pthread_getschedparam.c4
-rw-r--r--nptl/pthread_getspecific.c4
-rw-r--r--nptl/pthread_join.c7
-rw-r--r--nptl/pthread_join_common.c79
-rw-r--r--nptl/pthread_key_create.c4
-rw-r--r--nptl/pthread_key_delete.c4
-rw-r--r--nptl/pthread_kill.c4
-rw-r--r--nptl/pthread_kill_other_threads.c4
-rw-r--r--nptl/pthread_mutex_conf.c46
-rw-r--r--nptl/pthread_mutex_conf.h34
-rw-r--r--nptl/pthread_mutex_consistent.c11
-rw-r--r--nptl/pthread_mutex_destroy.c15
-rw-r--r--nptl/pthread_mutex_getprioceiling.c8
-rw-r--r--nptl/pthread_mutex_init.c44
-rw-r--r--nptl/pthread_mutex_lock.c61
-rw-r--r--nptl/pthread_mutex_setprioceiling.c11
-rw-r--r--nptl/pthread_mutex_timedlock.c181
-rw-r--r--nptl/pthread_mutex_trylock.c88
-rw-r--r--nptl/pthread_mutex_unlock.c32
-rw-r--r--nptl/pthread_mutexattr_destroy.c4
-rw-r--r--nptl/pthread_mutexattr_getprioceiling.c4
-rw-r--r--nptl/pthread_mutexattr_getprotocol.c4
-rw-r--r--nptl/pthread_mutexattr_getpshared.c4
-rw-r--r--nptl/pthread_mutexattr_getrobust.c4
-rw-r--r--nptl/pthread_mutexattr_gettype.c4
-rw-r--r--nptl/pthread_mutexattr_init.c4
-rw-r--r--nptl/pthread_mutexattr_setprioceiling.c4
-rw-r--r--nptl/pthread_mutexattr_setprotocol.c4
-rw-r--r--nptl/pthread_mutexattr_setpshared.c4
-rw-r--r--nptl/pthread_mutexattr_setrobust.c4
-rw-r--r--nptl/pthread_mutexattr_settype.c4
-rw-r--r--nptl/pthread_once.c4
-rw-r--r--nptl/pthread_rwlock_clockrdlock.c28
-rw-r--r--nptl/pthread_rwlock_clockwrlock.c28
-rw-r--r--nptl/pthread_rwlock_common.c187
-rw-r--r--nptl/pthread_rwlock_destroy.c4
-rw-r--r--nptl/pthread_rwlock_init.c12
-rw-r--r--nptl/pthread_rwlock_rdlock.c6
-rw-r--r--nptl/pthread_rwlock_timedrdlock.c16
-rw-r--r--nptl/pthread_rwlock_timedwrlock.c16
-rw-r--r--nptl/pthread_rwlock_tryrdlock.c29
-rw-r--r--nptl/pthread_rwlock_trywrlock.c13
-rw-r--r--nptl/pthread_rwlock_unlock.c4
-rw-r--r--nptl/pthread_rwlock_wrlock.c6
-rw-r--r--nptl/pthread_rwlockattr_destroy.c4
-rw-r--r--nptl/pthread_rwlockattr_getkind_np.c4
-rw-r--r--nptl/pthread_rwlockattr_getpshared.c4
-rw-r--r--nptl/pthread_rwlockattr_init.c4
-rw-r--r--nptl/pthread_rwlockattr_setkind_np.c4
-rw-r--r--nptl/pthread_rwlockattr_setpshared.c4
-rw-r--r--nptl/pthread_self.c4
-rw-r--r--nptl/pthread_setaffinity.c4
-rw-r--r--nptl/pthread_setattr_default_np.c4
-rw-r--r--nptl/pthread_setcancelstate.c4
-rw-r--r--nptl/pthread_setcanceltype.c9
-rw-r--r--nptl/pthread_setconcurrency.c4
-rw-r--r--nptl/pthread_setname.c4
-rw-r--r--nptl/pthread_setschedparam.c4
-rw-r--r--nptl/pthread_setschedprio.c4
-rw-r--r--nptl/pthread_setspecific.c4
-rw-r--r--nptl/pthread_sigmask.c42
-rw-r--r--nptl/pthread_sigqueue.c4
-rw-r--r--nptl/pthread_spin_destroy.c4
-rw-r--r--nptl/pthread_spin_init.c4
-rw-r--r--nptl/pthread_spin_lock.c4
-rw-r--r--nptl/pthread_spin_trylock.c4
-rw-r--r--nptl/pthread_spin_unlock.c4
-rw-r--r--nptl/pthread_testcancel.c4
-rw-r--r--nptl/pthread_timedjoin.c7
-rw-r--r--nptl/pthread_tryjoin.c9
-rw-r--r--nptl/pthread_yield.c4
-rw-r--r--nptl/register-atfork.c12
-rw-r--r--nptl/res.c4
-rw-r--r--nptl/sem_clockwait.c46
-rw-r--r--nptl/sem_close.c32
-rw-r--r--nptl/sem_destroy.c4
-rw-r--r--nptl/sem_getvalue.c4
-rw-r--r--nptl/sem_init.c4
-rw-r--r--nptl/sem_open.c4
-rw-r--r--nptl/sem_post.c4
-rw-r--r--nptl/sem_timedwait.c10
-rw-r--r--nptl/sem_unlink.c4
-rw-r--r--nptl/sem_wait.c15
-rw-r--r--nptl/sem_waitcommon.c19
-rw-r--r--nptl/semaphoreP.h4
-rw-r--r--nptl/sigaction.c4
-rw-r--r--nptl/smp.h4
-rw-r--r--nptl/stack-aliasing.h4
-rw-r--r--nptl/test-cond-printers.c4
-rw-r--r--nptl/test-cond-printers.py4
-rw-r--r--nptl/test-condattr-printers.c4
-rw-r--r--nptl/test-condattr-printers.py4
-rw-r--r--nptl/test-mutex-printers.c4
-rw-r--r--nptl/test-mutex-printers.py4
-rw-r--r--nptl/test-mutexattr-printers.c4
-rw-r--r--nptl/test-mutexattr-printers.py4
-rw-r--r--nptl/test-rwlock-printers.c4
-rw-r--r--nptl/test-rwlock-printers.py4
-rw-r--r--nptl/test-rwlockattr-printers.c4
-rw-r--r--nptl/test-rwlockattr-printers.py4
-rw-r--r--nptl/thrd_create.c4
-rw-r--r--nptl/thrd_current.c4
-rw-r--r--nptl/thrd_detach.c4
-rw-r--r--nptl/thrd_equal.c4
-rw-r--r--nptl/thrd_exit.c4
-rw-r--r--nptl/thrd_join.c6
-rw-r--r--nptl/thrd_priv.h4
-rw-r--r--nptl/thrd_sleep.c25
-rw-r--r--nptl/thrd_yield.c4
-rw-r--r--nptl/tpp.c4
-rw-r--r--nptl/tss_create.c4
-rw-r--r--nptl/tss_delete.c4
-rw-r--r--nptl/tss_get.c4
-rw-r--r--nptl/tss_set.c4
-rw-r--r--nptl/tst-_res1.c4
-rw-r--r--nptl/tst-_res1mod1.c4
-rw-r--r--nptl/tst-abstime.c82
-rw-r--r--nptl/tst-align.c4
-rw-r--r--nptl/tst-align3.c4
-rw-r--r--nptl/tst-atfork1.c4
-rw-r--r--nptl/tst-atfork2.c4
-rw-r--r--nptl/tst-atfork2mod.c4
-rw-r--r--nptl/tst-attr1.c4
-rw-r--r--nptl/tst-attr2.c4
-rw-r--r--nptl/tst-attr3.c4
-rw-r--r--nptl/tst-audit-threads-mod1.c74
-rw-r--r--nptl/tst-audit-threads-mod2.c22
-rw-r--r--nptl/tst-audit-threads.c95
-rw-r--r--nptl/tst-audit-threads.h92
-rw-r--r--nptl/tst-backtrace1.c4
-rw-r--r--nptl/tst-bad-schedattr.c4
-rw-r--r--nptl/tst-barrier1.c4
-rw-r--r--nptl/tst-barrier2.c4
-rw-r--r--nptl/tst-barrier3.c4
-rw-r--r--nptl/tst-barrier4.c4
-rw-r--r--nptl/tst-barrier5.c4
-rw-r--r--nptl/tst-basic1.c4
-rw-r--r--nptl/tst-basic2.c4
-rw-r--r--nptl/tst-basic3.c4
-rw-r--r--nptl/tst-basic4.c4
-rw-r--r--nptl/tst-basic5.c4
-rw-r--r--nptl/tst-basic6.c4
-rw-r--r--nptl/tst-call-once.c4
-rw-r--r--nptl/tst-cancel-self-cancelstate.c4
-rw-r--r--nptl/tst-cancel-self-canceltype.c4
-rw-r--r--nptl/tst-cancel-self-cleanup.c4
-rw-r--r--nptl/tst-cancel-self-testcancel.c4
-rw-r--r--nptl/tst-cancel-self.c4
-rw-r--r--nptl/tst-cancel-wrappers.sh92
-rw-r--r--nptl/tst-cancel1.c4
-rw-r--r--nptl/tst-cancel10.c4
-rw-r--r--nptl/tst-cancel11.c4
-rw-r--r--nptl/tst-cancel12.c4
-rw-r--r--nptl/tst-cancel13.c4
-rw-r--r--nptl/tst-cancel14.c4
-rw-r--r--nptl/tst-cancel15.c4
-rw-r--r--nptl/tst-cancel16.c4
-rw-r--r--nptl/tst-cancel17.c4
-rw-r--r--nptl/tst-cancel18.c4
-rw-r--r--nptl/tst-cancel19.c5
-rw-r--r--nptl/tst-cancel2.c4
-rw-r--r--nptl/tst-cancel20.c4
-rw-r--r--nptl/tst-cancel21.c4
-rw-r--r--nptl/tst-cancel22.c5
-rw-r--r--nptl/tst-cancel25.c4
-rw-r--r--nptl/tst-cancel26.c4
-rw-r--r--nptl/tst-cancel27.c4
-rw-r--r--nptl/tst-cancel3.c4
-rw-r--r--nptl/tst-cancel4-common.c4
-rw-r--r--nptl/tst-cancel4-common.h8
-rw-r--r--nptl/tst-cancel4.c12
-rw-r--r--nptl/tst-cancel4_1.c4
-rw-r--r--nptl/tst-cancel4_2.c4
-rw-r--r--nptl/tst-cancel6.c4
-rw-r--r--nptl/tst-cancel7.c5
-rw-r--r--nptl/tst-cancel8.c4
-rw-r--r--nptl/tst-cancel9.c4
-rw-r--r--nptl/tst-cleanup0.c4
-rw-r--r--nptl/tst-cleanup1.c4
-rw-r--r--nptl/tst-cleanup2.c4
-rw-r--r--nptl/tst-cleanup3.c4
-rw-r--r--nptl/tst-cleanup4.c4
-rw-r--r--nptl/tst-cleanup4aux.c4
-rw-r--r--nptl/tst-clock1.c4
-rw-r--r--nptl/tst-clock2.c4
-rw-r--r--nptl/tst-cnd-basic.c4
-rw-r--r--nptl/tst-cnd-broadcast.c4
-rw-r--r--nptl/tst-cnd-timedwait.c4
-rw-r--r--nptl/tst-compat-forwarder-mod.c4
-rw-r--r--nptl/tst-compat-forwarder.c4
-rw-r--r--nptl/tst-cond-except.c5
-rw-r--r--nptl/tst-cond1.c4
-rw-r--r--nptl/tst-cond10.c4
-rw-r--r--nptl/tst-cond11-static.c1
-rw-r--r--nptl/tst-cond11.c184
-rw-r--r--nptl/tst-cond12.c4
-rw-r--r--nptl/tst-cond14.c5
-rw-r--r--nptl/tst-cond15.c5
-rw-r--r--nptl/tst-cond16.c4
-rw-r--r--nptl/tst-cond18.c4
-rw-r--r--nptl/tst-cond19.c4
-rw-r--r--nptl/tst-cond2.c4
-rw-r--r--nptl/tst-cond20.c4
-rw-r--r--nptl/tst-cond23.c4
-rw-r--r--nptl/tst-cond24.c5
-rw-r--r--nptl/tst-cond25.c5
-rw-r--r--nptl/tst-cond26.c77
-rw-r--r--nptl/tst-cond27.c66
-rw-r--r--nptl/tst-cond3.c4
-rw-r--r--nptl/tst-cond4.c4
-rw-r--r--nptl/tst-cond5.c4
-rw-r--r--nptl/tst-cond6.c4
-rw-r--r--nptl/tst-cond7.c4
-rw-r--r--nptl/tst-cond8.c4
-rw-r--r--nptl/tst-cond9.c4
-rw-r--r--nptl/tst-context1.c4
-rw-r--r--nptl/tst-create-detached.c4
-rw-r--r--nptl/tst-default-attr.c4
-rw-r--r--nptl/tst-detach1.c4
-rw-r--r--nptl/tst-eintr1.c59
-rw-r--r--nptl/tst-eintr2.c64
-rw-r--r--nptl/tst-eintr3.c27
-rw-r--r--nptl/tst-eintr4.c19
-rw-r--r--nptl/tst-eintr5.c44
-rw-r--r--nptl/tst-exec1.c4
-rw-r--r--nptl/tst-exec2.c4
-rw-r--r--nptl/tst-exec3.c4
-rw-r--r--nptl/tst-exec4.c4
-rw-r--r--nptl/tst-exec5.c4
-rw-r--r--nptl/tst-exit1.c4
-rw-r--r--nptl/tst-fini1.c4
-rw-r--r--nptl/tst-fini1mod.c4
-rw-r--r--nptl/tst-flock1.c4
-rw-r--r--nptl/tst-flock2.c4
-rw-r--r--nptl/tst-fork1.c4
-rw-r--r--nptl/tst-fork2.c4
-rw-r--r--nptl/tst-fork3.c4
-rw-r--r--nptl/tst-fork4.c4
-rw-r--r--nptl/tst-initializers1.c4
-rw-r--r--nptl/tst-join1.c4
-rw-r--r--nptl/tst-join10.c20
-rw-r--r--nptl/tst-join11.c21
-rw-r--r--nptl/tst-join12.c20
-rw-r--r--nptl/tst-join13.c21
-rw-r--r--nptl/tst-join14.c74
-rw-r--r--nptl/tst-join2.c4
-rw-r--r--nptl/tst-join3.c113
-rw-r--r--nptl/tst-join4.c4
-rw-r--r--nptl/tst-join5.c104
-rw-r--r--nptl/tst-join7.c4
-rw-r--r--nptl/tst-join7mod.c4
-rw-r--r--nptl/tst-join8.c20
-rw-r--r--nptl/tst-join9.c21
-rw-r--r--nptl/tst-key1.c4
-rw-r--r--nptl/tst-key2.c4
-rw-r--r--nptl/tst-key3.c4
-rw-r--r--nptl/tst-key4.c4
-rw-r--r--nptl/tst-kill1.c4
-rw-r--r--nptl/tst-kill2.c5
-rw-r--r--nptl/tst-kill3.c5
-rw-r--r--nptl/tst-kill4.c4
-rw-r--r--nptl/tst-kill5.c4
-rw-r--r--nptl/tst-kill6.c4
-rw-r--r--nptl/tst-memstream.c4
-rw-r--r--nptl/tst-minstack-cancel.c4
-rw-r--r--nptl/tst-minstack-exit.c4
-rw-r--r--nptl/tst-minstack-throw.cc4
-rw-r--r--nptl/tst-mtx-basic.c4
-rw-r--r--nptl/tst-mtx-recursive.c4
-rw-r--r--nptl/tst-mtx-timedlock.c4
-rw-r--r--nptl/tst-mtx-trylock.c4
-rw-r--r--nptl/tst-mutex-errorcheck.c33
-rw-r--r--nptl/tst-mutex1.c4
-rw-r--r--nptl/tst-mutex10.c109
-rw-r--r--nptl/tst-mutex11.c69
-rw-r--r--nptl/tst-mutex2.c4
-rw-r--r--nptl/tst-mutex3.c4
-rw-r--r--nptl/tst-mutex4.c5
-rw-r--r--nptl/tst-mutex5.c190
-rw-r--r--nptl/tst-mutex6.c4
-rw-r--r--nptl/tst-mutex7.c4
-rw-r--r--nptl/tst-mutex8.c4
-rw-r--r--nptl/tst-mutex9.c156
-rw-r--r--nptl/tst-mutexpp10.c4
-rw-r--r--nptl/tst-oddstacklimit.c4
-rw-r--r--nptl/tst-once1.c4
-rw-r--r--nptl/tst-once2.c5
-rw-r--r--nptl/tst-once3.c5
-rw-r--r--nptl/tst-once4.c5
-rw-r--r--nptl/tst-once5.cc4
-rw-r--r--nptl/tst-popen1.c4
-rw-r--r--nptl/tst-pthread-attr-affinity.c4
-rw-r--r--nptl/tst-pthread-getattr.c21
-rw-r--r--nptl/tst-pthread-mutexattr.c4
-rw-r--r--nptl/tst-raise1.c4
-rw-r--r--nptl/tst-robust-fork.c4
-rw-r--r--nptl/tst-robust1.c4
-rw-r--r--nptl/tst-robust10.c4
-rw-r--r--nptl/tst-robust7.c4
-rw-r--r--nptl/tst-robust8.c1
-rw-r--r--nptl/tst-robust9.c1
-rw-r--r--nptl/tst-rwlock-pwn.c87
-rw-r--r--nptl/tst-rwlock-tryrdlock-stall.c355
-rw-r--r--nptl/tst-rwlock-trywrlock-stall.c108
-rw-r--r--nptl/tst-rwlock1.c4
-rw-r--r--nptl/tst-rwlock10.c4
-rw-r--r--nptl/tst-rwlock11.c4
-rw-r--r--nptl/tst-rwlock12.c4
-rw-r--r--nptl/tst-rwlock13.c4
-rw-r--r--nptl/tst-rwlock14.c138
-rw-r--r--nptl/tst-rwlock15.c4
-rw-r--r--nptl/tst-rwlock16.c5
-rw-r--r--nptl/tst-rwlock17.c4
-rw-r--r--nptl/tst-rwlock18.c4
-rw-r--r--nptl/tst-rwlock19.c4
-rw-r--r--nptl/tst-rwlock2.c4
-rw-r--r--nptl/tst-rwlock20.c4
-rw-r--r--nptl/tst-rwlock3.c4
-rw-r--r--nptl/tst-rwlock4.c4
-rw-r--r--nptl/tst-rwlock5.c4
-rw-r--r--nptl/tst-rwlock6.c227
-rw-r--r--nptl/tst-rwlock7.c192
-rw-r--r--nptl/tst-rwlock8.c4
-rw-r--r--nptl/tst-rwlock9.c186
-rw-r--r--nptl/tst-sched1.c4
-rw-r--r--nptl/tst-sem1.c4
-rw-r--r--nptl/tst-sem10.c4
-rw-r--r--nptl/tst-sem13.c82
-rw-r--r--nptl/tst-sem14.c5
-rw-r--r--nptl/tst-sem15.c4
-rw-r--r--nptl/tst-sem16.c4
-rw-r--r--nptl/tst-sem17.c76
-rw-r--r--nptl/tst-sem2.c4
-rw-r--r--nptl/tst-sem3.c4
-rw-r--r--nptl/tst-sem4.c4
-rw-r--r--nptl/tst-sem5.c86
-rw-r--r--nptl/tst-sem6.c5
-rw-r--r--nptl/tst-sem7.c4
-rw-r--r--nptl/tst-sem8.c4
-rw-r--r--nptl/tst-sem9.c4
-rw-r--r--nptl/tst-setuid1.c4
-rw-r--r--nptl/tst-setuid2.c4
-rw-r--r--nptl/tst-setuid3.c4
-rw-r--r--nptl/tst-signal1.c4
-rw-r--r--nptl/tst-signal2.c4
-rw-r--r--nptl/tst-signal3.c5
-rw-r--r--nptl/tst-signal4.c4
-rw-r--r--nptl/tst-signal5.c4
-rw-r--r--nptl/tst-signal6.c4
-rw-r--r--nptl/tst-signal7.c8
-rw-r--r--nptl/tst-spin1.c4
-rw-r--r--nptl/tst-spin2.c4
-rw-r--r--nptl/tst-spin3.c4
-rw-r--r--nptl/tst-spin4.c1
-rw-r--r--nptl/tst-stack1.c4
-rw-r--r--nptl/tst-stack2.c4
-rw-r--r--nptl/tst-stack3.c4
-rw-r--r--nptl/tst-stack4.c4
-rw-r--r--nptl/tst-stack4mod.c4
-rw-r--r--nptl/tst-stackguard1.c4
-rw-r--r--nptl/tst-stdio1.c4
-rw-r--r--nptl/tst-stdio2.c4
-rw-r--r--nptl/tst-sysconf.c4
-rw-r--r--nptl/tst-thrd-detach.c4
-rw-r--r--nptl/tst-thrd-sleep.c4
-rw-r--r--nptl/tst-thread-exit-clobber.cc4
-rw-r--r--nptl/tst-thread_local1.cc4
-rw-r--r--nptl/tst-tls1.c94
-rw-r--r--nptl/tst-tls2.c4
-rw-r--r--nptl/tst-tls3-malloc.c4
-rw-r--r--nptl/tst-tls3.c5
-rw-r--r--nptl/tst-tls3mod.c4
-rw-r--r--nptl/tst-tls4.c5
-rw-r--r--nptl/tst-tls4moda.c4
-rw-r--r--nptl/tst-tls4modb.c4
-rw-r--r--nptl/tst-tls5.c4
-rwxr-xr-xnptl/tst-tls6.sh4
-rw-r--r--nptl/tst-tpp.h4
-rw-r--r--nptl/tst-tsd1.c4
-rw-r--r--nptl/tst-tsd2.c4
-rw-r--r--nptl/tst-tsd3.c4
-rw-r--r--nptl/tst-tsd4.c4
-rw-r--r--nptl/tst-tsd5.c4
-rw-r--r--nptl/tst-tss-basic.c4
-rw-r--r--nptl/tst-umask1.c4
-rw-r--r--nptl/tst-unload.c4
-rw-r--r--nptl/tst-unwind-thread.c2
-rw-r--r--nptl/unwind.c4
-rw-r--r--nptl/vars.c4
-rw-r--r--nptl/version.c6
-rw-r--r--nptl_db/Makefile4
-rw-r--r--nptl_db/db-symbols.h7
-rw-r--r--nptl_db/db_info.c10
-rw-r--r--nptl_db/fetch-value.c4
-rw-r--r--nptl_db/structs.def6
-rw-r--r--nptl_db/td_init.c4
-rw-r--r--nptl_db/td_log.c4
-rw-r--r--nptl_db/td_symbol_list.c4
-rw-r--r--nptl_db/td_ta_clear_event.c4
-rw-r--r--nptl_db/td_ta_delete.c4
-rw-r--r--nptl_db/td_ta_enable_stats.c4
-rw-r--r--nptl_db/td_ta_event_addr.c4
-rw-r--r--nptl_db/td_ta_event_getmsg.c4
-rw-r--r--nptl_db/td_ta_get_nthreads.c4
-rw-r--r--nptl_db/td_ta_get_ph.c4
-rw-r--r--nptl_db/td_ta_get_stats.c4
-rw-r--r--nptl_db/td_ta_map_id2thr.c4
-rw-r--r--nptl_db/td_ta_map_lwp2thr.c4
-rw-r--r--nptl_db/td_ta_new.c4
-rw-r--r--nptl_db/td_ta_reset_stats.c4
-rw-r--r--nptl_db/td_ta_set_event.c4
-rw-r--r--nptl_db/td_ta_setconcurrency.c4
-rw-r--r--nptl_db/td_ta_thr_iter.c4
-rw-r--r--nptl_db/td_ta_tsd_iter.c4
-rw-r--r--nptl_db/td_thr_clear_event.c4
-rw-r--r--nptl_db/td_thr_dbresume.c4
-rw-r--r--nptl_db/td_thr_dbsuspend.c4
-rw-r--r--nptl_db/td_thr_event_enable.c4
-rw-r--r--nptl_db/td_thr_event_getmsg.c4
-rw-r--r--nptl_db/td_thr_get_info.c4
-rw-r--r--nptl_db/td_thr_getfpregs.c4
-rw-r--r--nptl_db/td_thr_getgregs.c4
-rw-r--r--nptl_db/td_thr_getxregs.c4
-rw-r--r--nptl_db/td_thr_getxregsize.c4
-rw-r--r--nptl_db/td_thr_set_event.c4
-rw-r--r--nptl_db/td_thr_setfpregs.c4
-rw-r--r--nptl_db/td_thr_setgregs.c4
-rw-r--r--nptl_db/td_thr_setprio.c4
-rw-r--r--nptl_db/td_thr_setsigpending.c4
-rw-r--r--nptl_db/td_thr_setxregs.c4
-rw-r--r--nptl_db/td_thr_sigsetmask.c4
-rw-r--r--nptl_db/td_thr_tls_get_addr.c4
-rw-r--r--nptl_db/td_thr_tlsbase.c4
-rw-r--r--nptl_db/td_thr_tsd.c4
-rw-r--r--nptl_db/td_thr_validate.c4
-rw-r--r--nptl_db/thread_dbP.h8
-rw-r--r--nscd/Makefile4
-rw-r--r--nscd/aicache.c18
-rw-r--r--nscd/cache.c4
-rw-r--r--nscd/connections.c8
-rw-r--r--nscd/dbg_log.c4
-rw-r--r--nscd/dbg_log.h4
-rw-r--r--nscd/gai.c5
-rw-r--r--nscd/getgrgid_r.c4
-rw-r--r--nscd/getgrnam_r.c4
-rw-r--r--nscd/gethstbyad_r.c4
-rw-r--r--nscd/gethstbynm3_r.c6
-rw-r--r--nscd/getpwnam_r.c4
-rw-r--r--nscd/getpwuid_r.c4
-rw-r--r--nscd/getsrvbynm_r.c4
-rw-r--r--nscd/getsrvbypt_r.c4
-rw-r--r--nscd/grpcache.c4
-rw-r--r--nscd/hstcache.c10
-rw-r--r--nscd/initgrcache.c14
-rw-r--r--nscd/mem.c4
-rw-r--r--nscd/netgroupcache.c48
-rw-r--r--nscd/nscd-client.h4
-rw-r--r--nscd/nscd.c6
-rw-r--r--nscd/nscd.conf6
-rw-r--r--nscd/nscd.h4
-rw-r--r--nscd/nscd_conf.c10
-rw-r--r--nscd/nscd_getai.c4
-rw-r--r--nscd/nscd_getgr_r.c4
-rw-r--r--nscd/nscd_gethst_r.c12
-rw-r--r--nscd/nscd_getpw_r.c4
-rw-r--r--nscd/nscd_getserv_r.c4
-rw-r--r--nscd/nscd_helper.c32
-rw-r--r--nscd/nscd_initgroups.c4
-rw-r--r--nscd/nscd_netgroup.c4
-rw-r--r--nscd/nscd_proto.h4
-rw-r--r--nscd/nscd_setup_thread.c4
-rw-r--r--nscd/nscd_stat.c4
-rw-r--r--nscd/pwdcache.c4
-rw-r--r--nscd/selinux.c4
-rw-r--r--nscd/selinux.h4
-rw-r--r--nscd/servicescache.c4
-rw-r--r--nss/Makefile19
-rw-r--r--nss/Versions8
-rw-r--r--nss/XXX-lookup.c8
-rw-r--r--nss/alias-lookup.c4
-rw-r--r--nss/bug17079.c4
-rw-r--r--nss/compat-lookup.c34
-rw-r--r--nss/databases.def4
-rw-r--r--nss/db-Makefile4
-rw-r--r--nss/digits_dots.c7
-rw-r--r--nss/ethers-lookup.c4
-rw-r--r--nss/function.def4
-rw-r--r--nss/getXXbyYY.c4
-rw-r--r--nss/getXXbyYY_r.c4
-rw-r--r--nss/getXXent.c4
-rw-r--r--nss/getXXent_r.c4
-rw-r--r--nss/getent.c42
-rw-r--r--nss/getnssent.c4
-rw-r--r--nss/getnssent_r.c4
-rw-r--r--nss/grp-lookup.c4
-rw-r--r--nss/hosts-lookup.c4
-rw-r--r--nss/key-lookup.c4
-rw-r--r--nss/makedb.c6
-rw-r--r--nss/netgrp-lookup.c4
-rw-r--r--nss/network-lookup.c4
-rw-r--r--nss/nss.h4
-rw-r--r--nss/nss_compat/compat-grp.c28
-rw-r--r--nss/nss_compat/compat-initgroups.c16
-rw-r--r--nss/nss_compat/compat-pwd.c52
-rw-r--r--nss/nss_compat/compat-spwd.c26
-rw-r--r--nss/nss_compat/nisdomain.c4
-rw-r--r--nss/nss_compat/nisdomain.h4
-rw-r--r--nss/nss_db/db-XXX.c4
-rw-r--r--nss/nss_db/db-init.c4
-rw-r--r--nss/nss_db/db-initgroups.c4
-rw-r--r--nss/nss_db/db-netgrp.c4
-rw-r--r--nss/nss_db/db-open.c10
-rw-r--r--nss/nss_db/nss_db.h4
-rw-r--r--nss/nss_files/files-XXX.c4
-rw-r--r--nss/nss_files/files-alias.c23
-rw-r--r--nss/nss_files/files-ethers.c4
-rw-r--r--nss/nss_files/files-grp.c4
-rw-r--r--nss/nss_files/files-hosts.c42
-rw-r--r--nss/nss_files/files-init.c4
-rw-r--r--nss/nss_files/files-initgroups.c4
-rw-r--r--nss/nss_files/files-key.c4
-rw-r--r--nss/nss_files/files-netgrp.c4
-rw-r--r--nss/nss_files/files-network.c4
-rw-r--r--nss/nss_files/files-parse.c4
-rw-r--r--nss/nss_files/files-proto.c4
-rw-r--r--nss/nss_files/files-pwd.c4
-rw-r--r--nss/nss_files/files-rpc.c4
-rw-r--r--nss/nss_files/files-service.c4
-rw-r--r--nss/nss_files/files-sgrp.c4
-rw-r--r--nss/nss_files/files-spwd.c4
-rw-r--r--nss/nss_hash.c4
-rw-r--r--nss/nss_test.h4
-rw-r--r--nss/nss_test1.c6
-rw-r--r--nss/nss_test2.c4
-rw-r--r--nss/nsswitch.c24
-rw-r--r--nss/nsswitch.conf82
-rw-r--r--nss/nsswitch.h12
-rw-r--r--nss/proto-lookup.c4
-rw-r--r--nss/pwd-lookup.c4
-rw-r--r--nss/rewrite_field.c4
-rw-r--r--nss/rpc-lookup.c4
-rw-r--r--nss/service-lookup.c4
-rw-r--r--nss/sgrp-lookup.c4
-rw-r--r--nss/spwd-lookup.c4
-rw-r--r--nss/test-digits-dots.c4
-rw-r--r--nss/test-netdb.c6
-rw-r--r--nss/tst-cancel-getpwuid_r.c4
-rw-r--r--nss/tst-field.c7
-rw-r--r--nss/tst-nss-db-endgrent.c54
-rw-r--r--nss/tst-nss-db-endgrent.root/etc/nsswitch.conf1
-rw-r--r--nss/tst-nss-db-endpwent.c66
-rw-r--r--nss/tst-nss-db-endpwent.root/etc/nsswitch.conf1
-rw-r--r--nss/tst-nss-db-endpwent.root/var/db/passwd.in4
-rw-r--r--nss/tst-nss-files-alias-leak.c237
-rw-r--r--nss/tst-nss-files-alias-truncated.c69
-rw-r--r--nss/tst-nss-files-hosts-erange.c4
-rw-r--r--nss/tst-nss-files-hosts-getent.c4
-rw-r--r--nss/tst-nss-files-hosts-long.c45
-rw-r--r--nss/tst-nss-files-hosts-long.root/etc/host.conf1
-rw-r--r--nss/tst-nss-files-hosts-long.root/etc/hosts8
-rw-r--r--nss/tst-nss-files-hosts-multi.c5
-rw-r--r--nss/tst-nss-getpwent.c4
-rw-r--r--nss/tst-nss-test1.c4
-rw-r--r--nss/tst-nss-test2.c4
-rw-r--r--nss/tst-nss-test3.c10
-rw-r--r--nss/tst-nss-test3.root/etc/nsswitch.conf1
-rw-r--r--nss/tst-nss-test3.root/tst-nss-test3.script2
-rw-r--r--nss/tst-nss-test4.c4
-rw-r--r--nss/tst-nss-test5.c4
-rw-r--r--nss/valid_field.c4
-rw-r--r--nss/valid_list_field.c4
-rw-r--r--po/Makefile4
-rw-r--r--po/be.po1647
-rw-r--r--po/bg.po899
-rw-r--r--po/ca.po912
-rw-r--r--po/cs.po930
-rw-r--r--po/da.po906
-rw-r--r--po/de.po885
-rw-r--r--po/el.po893
-rw-r--r--po/eo.po878
-rw-r--r--po/es.po975
-rw-r--r--po/fi.po1110
-rw-r--r--po/fr.po935
-rw-r--r--po/gl.po894
-rw-r--r--po/hr.po1131
-rw-r--r--po/hu.po867
-rw-r--r--po/ia.po883
-rw-r--r--po/id.po906
-rw-r--r--po/it.po914
-rw-r--r--po/ja.po903
-rw-r--r--po/ko.po932
-rw-r--r--po/libc.pot858
-rw-r--r--po/lt.po900
-rw-r--r--po/nb.po896
-rw-r--r--po/nl.po977
-rw-r--r--po/pl.po886
-rw-r--r--po/pt_BR.po913
-rw-r--r--po/ru.po973
-rw-r--r--po/rw.po889
-rw-r--r--po/sk.po904
-rw-r--r--po/sl.po873
-rw-r--r--po/sv.po898
-rw-r--r--po/tr.po918
-rw-r--r--po/uk.po916
-rw-r--r--po/vi.po937
-rw-r--r--po/zh_CN.po923
-rw-r--r--po/zh_TW.po1633
-rw-r--r--posix/Makefile34
-rw-r--r--posix/Versions10
-rw-r--r--posix/_exit.c4
-rw-r--r--posix/alarm.c4
-rw-r--r--posix/annexc.c4
-rw-r--r--posix/bits/cpu-set.h4
-rw-r--r--posix/bits/getopt_core.h4
-rw-r--r--posix/bits/getopt_ext.h4
-rw-r--r--posix/bits/getopt_posix.h4
-rw-r--r--posix/bits/posix1_lim.h4
-rw-r--r--posix/bits/posix2_lim.h4
-rw-r--r--posix/bits/types.h25
-rw-r--r--posix/bits/unistd.h4
-rw-r--r--posix/bsd-getpgrp.c4
-rw-r--r--posix/bug-glob2.c4
-rw-r--r--posix/bug-regex10.c4
-rw-r--r--posix/bug-regex11.c4
-rw-r--r--posix/bug-regex12.c4
-rw-r--r--posix/bug-regex13.c4
-rw-r--r--posix/bug-regex14.c4
-rw-r--r--posix/bug-regex17.c4
-rw-r--r--posix/bug-regex18.c4
-rw-r--r--posix/bug-regex19.c4
-rw-r--r--posix/bug-regex2.c4
-rw-r--r--posix/bug-regex20.c4
-rw-r--r--posix/bug-regex21.c4
-rw-r--r--posix/bug-regex22.c12
-rw-r--r--posix/bug-regex23.c4
-rw-r--r--posix/bug-regex25.c4
-rw-r--r--posix/bug-regex26.c4
-rw-r--r--posix/bug-regex27.c4
-rw-r--r--posix/bug-regex28.c4
-rw-r--r--posix/bug-regex3.c4
-rw-r--r--posix/bug-regex30.c4
-rw-r--r--posix/bug-regex33.c4
-rw-r--r--posix/bug-regex34.c4
-rw-r--r--posix/bug-regex35.c4
-rw-r--r--posix/bug-regex36.c4
-rw-r--r--posix/bug-regex37.c4
-rw-r--r--posix/bug-regex38.c4
-rw-r--r--posix/bug-regex4.c4
-rw-r--r--posix/bug-regex6.c4
-rw-r--r--posix/bug-regex7.c4
-rw-r--r--posix/bug-regex8.c4
-rw-r--r--posix/bug-regex9.c4
-rw-r--r--posix/confstr.c8
-rw-r--r--posix/cpio.h4
-rw-r--r--posix/execl.c4
-rw-r--r--posix/execle.c4
-rw-r--r--posix/execlp.c4
-rw-r--r--posix/execv.c4
-rw-r--r--posix/execve.c4
-rw-r--r--posix/execvp.c4
-rw-r--r--posix/execvpe.c6
-rw-r--r--posix/fexecve.c4
-rw-r--r--posix/flexmember.h4
-rw-r--r--posix/fnmatch.c10
-rw-r--r--posix/fnmatch.h4
-rw-r--r--posix/fnmatch_loop.c232
-rw-r--r--posix/fork.c4
-rw-r--r--posix/fpathconf.c4
-rw-r--r--posix/gai_strerror.c4
-rw-r--r--posix/get_child_max.c4
-rw-r--r--posix/getaddrinfo.c4
-rw-r--r--posix/getconf-speclist.c4
-rw-r--r--posix/getconf.c6
-rw-r--r--posix/getegid.c4
-rw-r--r--posix/geteuid.c4
-rw-r--r--posix/getgid.c4
-rw-r--r--posix/getgroups.c4
-rw-r--r--posix/getopt.c4
-rw-r--r--posix/getopt.h4
-rw-r--r--posix/getopt1.c4
-rw-r--r--posix/getopt_int.h4
-rw-r--r--posix/getpgid.c4
-rw-r--r--posix/getpgrp.c4
-rw-r--r--posix/getpid.c4
-rw-r--r--posix/getppid.c4
-rw-r--r--posix/getresgid.c4
-rw-r--r--posix/getresuid.c4
-rw-r--r--posix/getsid.c4
-rw-r--r--posix/getuid.c4
-rw-r--r--posix/glob-lstat-compat.c4
-rw-r--r--posix/glob.c4
-rw-r--r--posix/glob.h18
-rw-r--r--posix/glob64-lstat-compat.c4
-rw-r--r--posix/glob64.c4
-rw-r--r--posix/glob_internal.h4
-rw-r--r--posix/glob_pattern_p.c4
-rw-r--r--posix/globfree.c4
-rw-r--r--posix/globfree64.c4
-rw-r--r--posix/globtest.c4
-rwxr-xr-xposix/globtest.sh4
-rw-r--r--posix/group_member.c4
-rw-r--r--posix/nanosleep.c17
-rw-r--r--posix/pathconf.c4
-rw-r--r--posix/pause.c4
-rw-r--r--posix/posix-conf-vars.h4
-rw-r--r--posix/posix-envs.def4
-rw-r--r--posix/posix_madvise.c4
-rw-r--r--posix/pread.c4
-rw-r--r--posix/pread64.c4
-rw-r--r--posix/ptestcases.h326
-rw-r--r--posix/pwrite.c4
-rw-r--r--posix/pwrite64.c4
-rw-r--r--posix/re_comp.h4
-rw-r--r--posix/regcomp.c389
-rw-r--r--posix/regex.c8
-rw-r--r--posix/regex.h2
-rw-r--r--posix/regex_internal.c176
-rw-r--r--posix/regex_internal.h73
-rw-r--r--posix/regexec.c486
-rw-r--r--posix/runptests.c4
-rw-r--r--posix/sched.h4
-rw-r--r--posix/sched_cpualloc.c4
-rw-r--r--posix/sched_cpucount.c4
-rw-r--r--posix/sched_cpufree.c4
-rw-r--r--posix/sched_getaffinity.c4
-rw-r--r--posix/sched_getp.c4
-rw-r--r--posix/sched_gets.c4
-rw-r--r--posix/sched_primax.c4
-rw-r--r--posix/sched_primin.c4
-rw-r--r--posix/sched_rr_gi.c4
-rw-r--r--posix/sched_setaffinity.c4
-rw-r--r--posix/sched_setp.c4
-rw-r--r--posix/sched_sets.c4
-rw-r--r--posix/sched_yield.c4
-rw-r--r--posix/setgid.c4
-rw-r--r--posix/setpgid.c4
-rw-r--r--posix/setpgrp.c4
-rw-r--r--posix/setresgid.c4
-rw-r--r--posix/setresuid.c4
-rw-r--r--posix/setsid.c4
-rw-r--r--posix/setuid.c4
-rw-r--r--posix/sleep.c4
-rw-r--r--posix/spawn.c5
-rw-r--r--posix/spawn.h76
-rw-r--r--posix/spawn_faction_addchdir.c53
-rw-r--r--posix/spawn_faction_addclose.c10
-rw-r--r--posix/spawn_faction_adddup2.c10
-rw-r--r--posix/spawn_faction_addfchdir.c46
-rw-r--r--posix/spawn_faction_addopen.c12
-rw-r--r--posix/spawn_faction_destroy.c12
-rw-r--r--posix/spawn_faction_init.c7
-rw-r--r--posix/spawn_int.h16
-rw-r--r--posix/spawn_valid_fd.c4
-rw-r--r--posix/spawnattr_destroy.c7
-rw-r--r--posix/spawnattr_getdefault.c4
-rw-r--r--posix/spawnattr_getflags.c4
-rw-r--r--posix/spawnattr_getpgroup.c4
-rw-r--r--posix/spawnattr_getschedparam.c4
-rw-r--r--posix/spawnattr_getschedpolicy.c4
-rw-r--r--posix/spawnattr_getsigmask.c4
-rw-r--r--posix/spawnattr_init.c7
-rw-r--r--posix/spawnattr_setdefault.c9
-rw-r--r--posix/spawnattr_setflags.c7
-rw-r--r--posix/spawnattr_setpgroup.c4
-rw-r--r--posix/spawnattr_setschedparam.c4
-rw-r--r--posix/spawnattr_setschedpolicy.c4
-rw-r--r--posix/spawnattr_setsigmask.c7
-rw-r--r--posix/spawni.c4
-rw-r--r--posix/spawnp.c4
-rw-r--r--posix/streams-compat.c101
-rw-r--r--posix/sys/times.h4
-rw-r--r--posix/sys/types.h37
-rw-r--r--posix/sys/utsname.h4
-rw-r--r--posix/sys/wait.h4
-rw-r--r--posix/sysconf.c4
-rw-r--r--posix/tar.h4
-rw-r--r--posix/test-errno.c4
-rw-r--r--posix/test-ssize-max.c4
-rw-r--r--posix/testcases.h167
-rw-r--r--posix/times.c4
-rw-r--r--posix/tst-boost.c4
-rw-r--r--posix/tst-chmod.c9
-rw-r--r--posix/tst-dir.c4
-rw-r--r--posix/tst-exec.c4
-rw-r--r--posix/tst-execvpe1.c4
-rw-r--r--posix/tst-execvpe2.c4
-rw-r--r--posix/tst-execvpe3.c4
-rw-r--r--posix/tst-execvpe4.c4
-rw-r--r--posix/tst-execvpe5.c4
-rw-r--r--posix/tst-execvpe6.c4
-rw-r--r--posix/tst-fexecve.c4
-rw-r--r--posix/tst-fnmatch.c4
-rw-r--r--posix/tst-fnmatch.input4
-rw-r--r--posix/tst-fnmatch3.c4
-rw-r--r--posix/tst-fnmatch4.c41
-rw-r--r--posix/tst-fnmatch5.c46
-rw-r--r--posix/tst-fork.c4
-rw-r--r--posix/tst-getaddrinfo.c4
-rw-r--r--posix/tst-getaddrinfo4.c5
-rw-r--r--posix/tst-getaddrinfo5.c5
-rw-r--r--posix/tst-getconf.sh4
-rw-r--r--posix/tst-getopt-cancel.c4
-rw-r--r--posix/tst-glob-tilde.c4
-rw-r--r--posix/tst-glob_lstat_compat.c4
-rw-r--r--posix/tst-glob_symlinks.c4
-rw-r--r--posix/tst-gnuglob-skeleton.c4
-rw-r--r--posix/tst-gnuglob.c4
-rw-r--r--posix/tst-gnuglob64.c4
-rw-r--r--posix/tst-mmap-offset.c13
-rw-r--r--posix/tst-nanosleep.c4
-rw-r--r--posix/tst-nice.c4
-rw-r--r--posix/tst-pathconf.c4
-rw-r--r--posix/tst-pcre.c4
-rw-r--r--posix/tst-posix_fadvise-common.c4
-rw-r--r--posix/tst-posix_fadvise.c4
-rw-r--r--posix/tst-posix_fadvise64.c4
-rw-r--r--posix/tst-posix_spawn-fd.c4
-rw-r--r--posix/tst-posix_spawn-setsid.c4
-rw-r--r--posix/tst-preadwrite-common.c7
-rw-r--r--posix/tst-preadwrite.c4
-rw-r--r--posix/tst-preadwrite64.c4
-rw-r--r--posix/tst-regcomp-truncated.c191
-rw-r--r--posix/tst-regex.c55
-rw-r--r--posix/tst-regex.input12549
-rw-r--r--posix/tst-regex2.c1
-rw-r--r--posix/tst-regexloc.c4
-rw-r--r--posix/tst-rxspencer.c4
-rw-r--r--posix/tst-spawn-chdir.c218
-rw-r--r--posix/tst-spawn.c261
-rw-r--r--posix/tst-spawn2.c4
-rw-r--r--posix/tst-spawn3.c8
-rw-r--r--posix/tst-spawn4-compat.c4
-rw-r--r--posix/tst-spawn4.c4
-rw-r--r--posix/tst-sysconf-empty-chroot.c4
-rw-r--r--posix/tst-truncate-common.c4
-rw-r--r--posix/tst-truncate.c4
-rw-r--r--posix/tst-truncate64.c4
-rw-r--r--posix/tst-vfork1.c4
-rw-r--r--posix/tst-vfork2.c4
-rw-r--r--posix/tst-vfork3.c4
-rw-r--r--posix/tst-waitid.c6
-rw-r--r--posix/tst-wordexp-nocmd.c179
-rw-r--r--posix/uname-values.h4
-rw-r--r--posix/uname.c4
-rw-r--r--posix/unistd.h7
-rw-r--r--posix/vfork.c4
-rw-r--r--posix/wait.c4
-rw-r--r--posix/wait3.c4
-rw-r--r--posix/wait4.c4
-rw-r--r--posix/waitid.c4
-rw-r--r--posix/waitpid.c4
-rw-r--r--posix/wordexp-test.c210
-rwxr-xr-xposix/wordexp-tst.sh4
-rw-r--r--posix/wordexp.c165
-rw-r--r--posix/wordexp.h8
-rw-r--r--pwd/Makefile4
-rw-r--r--pwd/fgetpwent.c4
-rw-r--r--pwd/fgetpwent_r.c8
-rw-r--r--pwd/getpw.c4
-rw-r--r--pwd/getpwent.c4
-rw-r--r--pwd/getpwent_r.c4
-rw-r--r--pwd/getpwnam.c4
-rw-r--r--pwd/getpwnam_r.c4
-rw-r--r--pwd/getpwuid.c4
-rw-r--r--pwd/getpwuid_r.c4
-rw-r--r--pwd/putpwent.c4
-rw-r--r--pwd/pwd.h4
-rw-r--r--pwd/tst-getpw.c4
-rw-r--r--pwd/tst-putpwent.c4
-rw-r--r--resolv/Makefile26
-rw-r--r--resolv/Versions1
-rw-r--r--resolv/compat-gethnamaddr.c23
-rw-r--r--resolv/compat-hooks.c4
-rw-r--r--resolv/gai_cancel.c4
-rw-r--r--resolv/gai_error.c4
-rw-r--r--resolv/gai_misc.c17
-rw-r--r--resolv/gai_misc.h4
-rw-r--r--resolv/gai_notify.c4
-rw-r--r--resolv/gai_sigqueue.c4
-rw-r--r--resolv/gai_suspend.c10
-rw-r--r--resolv/getaddrinfo_a.c4
-rw-r--r--resolv/inet_addr.c226
-rw-r--r--resolv/inet_pton.c4
-rw-r--r--resolv/netdb.h4
-rw-r--r--resolv/ns_ttl.c4
-rw-r--r--resolv/nss_dns/dns-canon.c4
-rw-r--r--resolv/nss_dns/dns-host.c46
-rw-r--r--resolv/nss_dns/dns-network.c7
-rw-r--r--resolv/res-close.c4
-rw-r--r--resolv/res-state.c4
-rw-r--r--resolv/res_comp.c4
-rw-r--r--resolv/res_data.c4
-rw-r--r--resolv/res_debug.c4
-rw-r--r--resolv/res_enable_icmp.c37
-rw-r--r--resolv/res_hconf.c4
-rw-r--r--resolv/res_hconf.h4
-rw-r--r--resolv/res_init.c25
-rw-r--r--resolv/res_libc.c4
-rw-r--r--resolv/res_mkquery.c25
-rw-r--r--resolv/res_randomid.c4
-rw-r--r--resolv/res_send.c105
-rw-r--r--resolv/res_use_inet6.h49
-rw-r--r--resolv/resolv-internal.h19
-rw-r--r--resolv/resolv.h5
-rw-r--r--resolv/resolv_conf.c4
-rw-r--r--resolv/resolv_conf.h4
-rw-r--r--resolv/resolv_context.c4
-rw-r--r--resolv/resolv_context.h15
-rw-r--r--resolv/tst-aton.c35
-rw-r--r--resolv/tst-bug18665-tcp.c4
-rw-r--r--resolv/tst-bug18665.c4
-rw-r--r--resolv/tst-inet_aton_exact.c47
-rw-r--r--resolv/tst-inet_pton.c4
-rw-r--r--resolv/tst-leaks.c4
-rw-r--r--resolv/tst-leaks2.c4
-rw-r--r--resolv/tst-ns_name.c4
-rw-r--r--resolv/tst-ns_name.data4
-rw-r--r--resolv/tst-ns_name_compress.c4
-rw-r--r--resolv/tst-ns_name_pton.c4
-rw-r--r--resolv/tst-p_secstodate.c4
-rw-r--r--resolv/tst-res_hconf_reorder.c4
-rw-r--r--resolv/tst-res_hnok.c4
-rw-r--r--resolv/tst-res_use_inet6.c509
-rw-r--r--resolv/tst-resolv-ai_idn-common.c5
-rw-r--r--resolv/tst-resolv-ai_idn-latin1.c9
-rw-r--r--resolv/tst-resolv-ai_idn-nolibidn2.c4
-rw-r--r--resolv/tst-resolv-ai_idn.c9
-rw-r--r--resolv/tst-resolv-basic.c4
-rw-r--r--resolv/tst-resolv-binary.c4
-rw-r--r--resolv/tst-resolv-canonname.c4
-rw-r--r--resolv/tst-resolv-edns.c4
-rw-r--r--resolv/tst-resolv-network.c10
-rw-r--r--resolv/tst-resolv-nondecimal.c139
-rw-r--r--resolv/tst-resolv-qtypes.c4
-rw-r--r--resolv/tst-resolv-res_init-multi.c4
-rw-r--r--resolv/tst-resolv-res_init-skeleton.c18
-rw-r--r--resolv/tst-resolv-res_init-thread.c4
-rw-r--r--resolv/tst-resolv-res_init.c4
-rw-r--r--resolv/tst-resolv-res_ninit.c4
-rw-r--r--resolv/tst-resolv-rotate.c4
-rw-r--r--resolv/tst-resolv-search.c4
-rw-r--r--resolv/tst-resolv-threads.c83
-rw-r--r--resolv/tst-resolv-trailing.c136
-rw-r--r--resolv/tst-resolv-trustad.c200
-rw-r--r--resource/Makefile4
-rw-r--r--resource/bits/types/struct_rusage.h9
-rw-r--r--resource/getpriority.c4
-rw-r--r--resource/getrlimit.c4
-rw-r--r--resource/getrlimit64.c4
-rw-r--r--resource/getrusage.c4
-rw-r--r--resource/nice.c4
-rw-r--r--resource/setpriority.c4
-rw-r--r--resource/setrlimit.c4
-rw-r--r--resource/setrlimit64.c4
-rw-r--r--resource/sys/resource.h4
-rw-r--r--resource/sys/vlimit.h4
-rw-r--r--resource/sys/vtimes.h4
-rw-r--r--resource/tst-getrlimit.c4
-rw-r--r--resource/ulimit.c4
-rw-r--r--resource/ulimit.h4
-rw-r--r--resource/vlimit.c4
-rw-r--r--resource/vtimes.c8
-rw-r--r--rt/Makefile20
-rw-r--r--rt/Versions16
-rw-r--r--rt/aio.h4
-rw-r--r--rt/aio_cancel.c4
-rw-r--r--rt/aio_error.c4
-rw-r--r--rt/aio_fsync.c4
-rw-r--r--rt/aio_misc.c4
-rw-r--r--rt/aio_notify.c4
-rw-r--r--rt/aio_read.c4
-rw-r--r--rt/aio_return.c4
-rw-r--r--rt/aio_sigqueue.c4
-rw-r--r--rt/aio_suspend.c4
-rw-r--r--rt/aio_write.c4
-rw-r--r--rt/bits/mqueue2.h4
-rw-r--r--rt/clock-compat.c61
-rw-r--r--rt/clock_getcpuclockid.c40
-rw-r--r--rt/clock_getres.c30
-rw-r--r--rt/clock_gettime.c31
-rw-r--r--rt/clock_nanosleep.c37
-rw-r--r--rt/clock_settime.c30
-rw-r--r--rt/get_clockfreq.c27
-rw-r--r--rt/lio_listio.c4
-rw-r--r--rt/mq_close.c4
-rw-r--r--rt/mq_getattr.c4
-rw-r--r--rt/mq_notify.c4
-rw-r--r--rt/mq_open.c4
-rw-r--r--rt/mq_receive.c4
-rw-r--r--rt/mq_send.c4
-rw-r--r--rt/mq_setattr.c4
-rw-r--r--rt/mq_timedreceive.c4
-rw-r--r--rt/mq_timedsend.c4
-rw-r--r--rt/mq_unlink.c4
-rw-r--r--rt/mqueue.h4
-rw-r--r--rt/shm_open.c4
-rw-r--r--rt/shm_unlink.c4
-rw-r--r--rt/timer_create.c4
-rw-r--r--rt/timer_delete.c4
-rw-r--r--rt/timer_getoverr.c4
-rw-r--r--rt/timer_gettime.c4
-rw-r--r--rt/timer_settime.c4
-rw-r--r--rt/tst-aio.c7
-rw-r--r--rt/tst-aio10.c1
-rw-r--r--rt/tst-aio2.c4
-rw-r--r--rt/tst-aio3.c4
-rw-r--r--rt/tst-aio4.c7
-rw-r--r--rt/tst-aio5.c7
-rw-r--r--rt/tst-aio6.c8
-rw-r--r--rt/tst-aio64.c7
-rw-r--r--rt/tst-aio7.c8
-rw-r--r--rt/tst-aio9.c1
-rw-r--r--rt/tst-cpuclock2.c5
-rw-r--r--rt/tst-mqueue.h4
-rw-r--r--rt/tst-mqueue1.c4
-rw-r--r--rt/tst-mqueue2.c5
-rw-r--r--rt/tst-mqueue3.c4
-rw-r--r--rt/tst-mqueue4.c5
-rw-r--r--rt/tst-mqueue5.c6
-rw-r--r--rt/tst-mqueue6.c4
-rw-r--r--rt/tst-mqueue7.c4
-rw-r--r--rt/tst-mqueue8.c4
-rw-r--r--rt/tst-mqueue9.c4
-rw-r--r--rt/tst-shm-cancel.c4
-rw-r--r--rt/tst-shm.c4
-rw-r--r--rt/tst-timer.c4
-rw-r--r--rt/tst-timer4.c5
-rw-r--r--scripts/abilist.awk23
-rw-r--r--scripts/backport-support.sh4
-rwxr-xr-xscripts/build-many-glibcs.py141
-rwxr-xr-xscripts/check-c++-types.sh4
-rw-r--r--scripts/check-initfini.awk4
-rw-r--r--scripts/check-installed-headers.sh69
-rwxr-xr-xscripts/check-local-headers.sh4
-rwxr-xr-xscripts/check-obsolete-constructs.py466
-rw-r--r--scripts/check-wrapper-headers.py117
-rwxr-xr-xscripts/config.guess553
-rwxr-xr-xscripts/config.sub2511
-rwxr-xr-xscripts/cross-test-ssh.sh4
-rwxr-xr-xscripts/evaluate-test.sh4
-rw-r--r--scripts/gen-as-const.awk63
-rw-r--r--scripts/gen-as-const.py120
-rw-r--r--scripts/gen-py-const.awk118
-rw-r--r--scripts/gen-rrtypes.py4
-rwxr-xr-xscripts/gen-sorted.awk2
-rwxr-xr-xscripts/gitlog_to_changelog.py138
-rw-r--r--scripts/glibcextract.py175
-rw-r--r--scripts/haveversions.awk23
-rwxr-xr-xscripts/install-sh27
-rwxr-xr-xscripts/list-fixed-bugs.py4
-rwxr-xr-xscripts/merge-test-results.sh4
-rwxr-xr-xscripts/mkinstalldirs4
-rwxr-xr-xscripts/move-if-change6
-rwxr-xr-xscripts/rellns-sh4
-rwxr-xr-xscripts/test-installation.pl6
-rw-r--r--scripts/test_printers_common.py8
-rw-r--r--scripts/test_printers_exceptions.py4
-rw-r--r--scripts/update-abilist.sh4
-rwxr-xr-xscripts/update-copyrights6
-rw-r--r--scripts/vcs_to_changelog/frontend_c.py827
-rw-r--r--scripts/vcs_to_changelog/misc_util.py51
-rw-r--r--scripts/vcs_to_changelog/vcs_git.py164
-rw-r--r--scripts/vcs_to_changelog/vcstocl_quirks.py64
-rw-r--r--scripts/versionlist.awk2
-rw-r--r--scripts/versions.awk2
-rw-r--r--setjmp/Makefile4
-rw-r--r--setjmp/__longjmp.c4
-rw-r--r--setjmp/bits/setjmp2.h4
-rw-r--r--setjmp/bsd-_setjmp.c4
-rw-r--r--setjmp/bsd-setjmp.c4
-rw-r--r--setjmp/bug269-setjmp.c4
-rw-r--r--setjmp/jmp-unwind.c4
-rw-r--r--setjmp/longjmp.c4
-rw-r--r--setjmp/setjmp.c4
-rw-r--r--setjmp/setjmp.h4
-rw-r--r--setjmp/sigjmp.c10
-rw-r--r--setjmp/tst-setjmp-fp.c4
-rw-r--r--setjmp/tst-setjmp.c6
-rw-r--r--setjmp/tst-sigsetjmp.c4
-rw-r--r--shadow/Makefile4
-rw-r--r--shadow/fgetspent.c4
-rw-r--r--shadow/fgetspent_r.c8
-rw-r--r--shadow/getspent.c4
-rw-r--r--shadow/getspent_r.c4
-rw-r--r--shadow/getspnam.c4
-rw-r--r--shadow/getspnam_r.c4
-rw-r--r--shadow/lckpwdf.c4
-rw-r--r--shadow/putspent.c4
-rw-r--r--shadow/sgetspent.c4
-rw-r--r--shadow/sgetspent_r.c4
-rw-r--r--shadow/shadow.h4
-rw-r--r--shadow/tst-putspent.c4
-rw-r--r--signal/Makefile16
-rw-r--r--signal/allocrtsig.c4
-rw-r--r--signal/bits/types/__sigval_t.h4
-rw-r--r--signal/bits/types/struct_sigstack.h4
-rw-r--r--signal/kill.c4
-rw-r--r--signal/killpg.c4
-rw-r--r--signal/raise.c4
-rw-r--r--signal/sigaction.c4
-rw-r--r--signal/sigaddset.c4
-rw-r--r--signal/sigaltstack.c4
-rw-r--r--signal/sigandset.c4
-rw-r--r--signal/sigblock.c4
-rw-r--r--signal/sigdelset.c4
-rw-r--r--signal/sigempty.c4
-rw-r--r--signal/sigfillset.c4
-rw-r--r--signal/siggetmask.c4
-rw-r--r--signal/sighold.c4
-rw-r--r--signal/sigignore.c4
-rw-r--r--signal/sigintr.c4
-rw-r--r--signal/sigisempty.c4
-rw-r--r--signal/sigismem.c4
-rw-r--r--signal/signal.c4
-rw-r--r--signal/signal.h7
-rw-r--r--signal/sigorset.c4
-rw-r--r--signal/sigpause.c4
-rw-r--r--signal/sigpending.c4
-rw-r--r--signal/sigprocmask.c4
-rw-r--r--signal/sigqueue.c4
-rw-r--r--signal/sigrelse.c4
-rw-r--r--signal/sigreturn.c4
-rw-r--r--signal/sigset.c4
-rw-r--r--signal/sigsetmask.c4
-rw-r--r--signal/sigsetops.c4
-rw-r--r--signal/sigstack.c4
-rw-r--r--signal/sigsuspend.c4
-rw-r--r--signal/sigtimedwait.c4
-rw-r--r--signal/sigvec.c4
-rw-r--r--signal/sigwait.c4
-rw-r--r--signal/sigwaitinfo.c4
-rw-r--r--signal/sysv_signal.c4
-rw-r--r--signal/tst-minsigstksz-1.c131
-rw-r--r--signal/tst-minsigstksz-2.c66
-rw-r--r--signal/tst-minsigstksz-3.c64
-rw-r--r--signal/tst-minsigstksz-3a.c69
-rw-r--r--signal/tst-minsigstksz-4.c65
-rw-r--r--signal/tst-raise.c4
-rw-r--r--signal/tst-sigaction.c4
-rw-r--r--signal/tst-sigsimple.c4
-rw-r--r--signal/tst-sigwait-eintr.c4
-rw-r--r--socket/Makefile4
-rw-r--r--socket/accept.c4
-rw-r--r--socket/accept4.c4
-rw-r--r--socket/bind.c4
-rw-r--r--socket/bits/socket2.h4
-rw-r--r--socket/connect.c4
-rw-r--r--socket/getpeername.c4
-rw-r--r--socket/getsockname.c4
-rw-r--r--socket/getsockopt.c4
-rw-r--r--socket/isfdtype.c4
-rw-r--r--socket/listen.c4
-rw-r--r--socket/opensock.c4
-rw-r--r--socket/recv.c4
-rw-r--r--socket/recvfrom.c4
-rw-r--r--socket/recvmmsg.c4
-rw-r--r--socket/recvmsg.c4
-rw-r--r--socket/sa_len.c4
-rw-r--r--socket/send.c4
-rw-r--r--socket/sendmmsg.c4
-rw-r--r--socket/sendmsg.c4
-rw-r--r--socket/sendto.c4
-rw-r--r--socket/setsockopt.c4
-rw-r--r--socket/shutdown.c4
-rw-r--r--socket/sockatmark.c6
-rw-r--r--socket/socket.c4
-rw-r--r--socket/socketpair.c4
-rw-r--r--socket/sys/socket.h6
-rw-r--r--socket/sys/un.h4
-rw-r--r--socket/tst-accept4.c4
-rw-r--r--soft-fp/Makefile4
-rw-r--r--soft-fp/adddf3.c4
-rw-r--r--soft-fp/addsf3.c4
-rw-r--r--soft-fp/addtf3.c4
-rw-r--r--soft-fp/divdf3.c4
-rw-r--r--soft-fp/divsf3.c4
-rw-r--r--soft-fp/divtf3.c4
-rw-r--r--soft-fp/double.h4
-rw-r--r--soft-fp/eqdf2.c4
-rw-r--r--soft-fp/eqsf2.c4
-rw-r--r--soft-fp/eqtf2.c4
-rw-r--r--soft-fp/extenddftf2.c6
-rw-r--r--soft-fp/extended.h4
-rw-r--r--soft-fp/extendhftf2.c6
-rw-r--r--soft-fp/extendsfdf2.c4
-rw-r--r--soft-fp/extendsftf2.c6
-rw-r--r--soft-fp/extendxftf2.c8
-rw-r--r--soft-fp/fixdfdi.c4
-rw-r--r--soft-fp/fixdfsi.c4
-rw-r--r--soft-fp/fixdfti.c6
-rw-r--r--soft-fp/fixhfti.c4
-rw-r--r--soft-fp/fixsfdi.c4
-rw-r--r--soft-fp/fixsfsi.c4
-rw-r--r--soft-fp/fixsfti.c6
-rw-r--r--soft-fp/fixtfdi.c4
-rw-r--r--soft-fp/fixtfsi.c4
-rw-r--r--soft-fp/fixtfti.c6
-rw-r--r--soft-fp/fixunsdfdi.c4
-rw-r--r--soft-fp/fixunsdfsi.c4
-rw-r--r--soft-fp/fixunsdfti.c6
-rw-r--r--soft-fp/fixunshfti.c4
-rw-r--r--soft-fp/fixunssfdi.c4
-rw-r--r--soft-fp/fixunssfsi.c4
-rw-r--r--soft-fp/fixunssfti.c6
-rw-r--r--soft-fp/fixunstfdi.c4
-rw-r--r--soft-fp/fixunstfsi.c4
-rw-r--r--soft-fp/fixunstfti.c6
-rw-r--r--soft-fp/floatdidf.c4
-rw-r--r--soft-fp/floatdisf.c4
-rw-r--r--soft-fp/floatditf.c4
-rw-r--r--soft-fp/floatsidf.c4
-rw-r--r--soft-fp/floatsisf.c4
-rw-r--r--soft-fp/floatsitf.c4
-rw-r--r--soft-fp/floattidf.c6
-rw-r--r--soft-fp/floattihf.c4
-rw-r--r--soft-fp/floattisf.c6
-rw-r--r--soft-fp/floattitf.c6
-rw-r--r--soft-fp/floatundidf.c4
-rw-r--r--soft-fp/floatundisf.c4
-rw-r--r--soft-fp/floatunditf.c4
-rw-r--r--soft-fp/floatunsidf.c4
-rw-r--r--soft-fp/floatunsisf.c4
-rw-r--r--soft-fp/floatunsitf.c4
-rw-r--r--soft-fp/floatuntidf.c6
-rw-r--r--soft-fp/floatuntihf.c4
-rw-r--r--soft-fp/floatuntisf.c6
-rw-r--r--soft-fp/floatuntitf.c6
-rw-r--r--soft-fp/gedf2.c4
-rw-r--r--soft-fp/gesf2.c4
-rw-r--r--soft-fp/getf2.c4
-rw-r--r--soft-fp/half.h4
-rw-r--r--soft-fp/ledf2.c4
-rw-r--r--soft-fp/lesf2.c4
-rw-r--r--soft-fp/letf2.c4
-rw-r--r--soft-fp/muldf3.c4
-rw-r--r--soft-fp/mulsf3.c4
-rw-r--r--soft-fp/multf3.c4
-rw-r--r--soft-fp/negdf2.c4
-rw-r--r--soft-fp/negsf2.c4
-rw-r--r--soft-fp/negtf2.c4
-rw-r--r--soft-fp/op-1.h4
-rw-r--r--soft-fp/op-2.h4
-rw-r--r--soft-fp/op-4.h67
-rw-r--r--soft-fp/op-8.h92
-rw-r--r--soft-fp/op-common.h4
-rw-r--r--soft-fp/quad.h4
-rw-r--r--soft-fp/single.h4
-rw-r--r--soft-fp/soft-fp.h4
-rw-r--r--soft-fp/subdf3.c4
-rw-r--r--soft-fp/subsf3.c4
-rw-r--r--soft-fp/subtf3.c4
-rw-r--r--soft-fp/truncdfsf2.c4
-rw-r--r--soft-fp/trunctfdf2.c6
-rw-r--r--soft-fp/trunctfhf2.c6
-rw-r--r--soft-fp/trunctfsf2.c6
-rw-r--r--soft-fp/trunctfxf2.c8
-rw-r--r--soft-fp/unorddf2.c4
-rw-r--r--soft-fp/unordsf2.c4
-rw-r--r--soft-fp/unordtf2.c4
-rw-r--r--stdio-common/Makefile28
-rw-r--r--stdio-common/Versions3
-rw-r--r--stdio-common/_i18n_number.h4
-rw-r--r--stdio-common/_itoa.c4
-rw-r--r--stdio-common/_itowa.c4
-rw-r--r--stdio-common/_itowa.h4
-rw-r--r--stdio-common/asprintf.c10
-rw-r--r--stdio-common/bits/printf-ldbl.h4
-rw-r--r--stdio-common/bug-vfprintf-nargs.c4
-rw-r--r--stdio-common/bug21.c11
-rw-r--r--stdio-common/bug22.c22
-rw-r--r--stdio-common/bug26.c4
-rw-r--r--stdio-common/ctermid.c4
-rw-r--r--stdio-common/cuserid.c4
-rw-r--r--stdio-common/dprintf.c9
-rw-r--r--stdio-common/errlist.c4
-rw-r--r--stdio-common/errnobug.c4
-rw-r--r--stdio-common/flockfile.c4
-rw-r--r--stdio-common/fprintf.c6
-rw-r--r--stdio-common/fscanf.c9
-rw-r--r--stdio-common/ftrylockfile.c4
-rw-r--r--stdio-common/funlockfile.c4
-rw-r--r--stdio-common/fxprintf.c30
-rw-r--r--stdio-common/gentempfd.c4
-rw-r--r--stdio-common/getline.c4
-rw-r--r--stdio-common/getw.c4
-rw-r--r--stdio-common/iovfscanf.c38
-rw-r--r--stdio-common/iovfwscanf.c38
-rw-r--r--stdio-common/isoc99_fscanf.c11
-rw-r--r--stdio-common/isoc99_scanf.c16
-rw-r--r--stdio-common/isoc99_sscanf.c13
-rw-r--r--stdio-common/isoc99_vfscanf.c13
-rw-r--r--stdio-common/isoc99_vscanf.c13
-rw-r--r--stdio-common/isoc99_vsscanf.c20
-rw-r--r--stdio-common/itoa-digits.c4
-rw-r--r--stdio-common/itoa-udigits.c4
-rw-r--r--stdio-common/itowa-digits.c4
-rw-r--r--stdio-common/perror.c4
-rw-r--r--stdio-common/printf-parse.h7
-rw-r--r--stdio-common/printf-parsemb.c4
-rw-r--r--stdio-common/printf-prs.c4
-rw-r--r--stdio-common/printf.c7
-rw-r--r--stdio-common/printf.h4
-rw-r--r--stdio-common/printf_fp.c24
-rw-r--r--stdio-common/printf_fphex.c4
-rw-r--r--stdio-common/printf_size.c4
-rw-r--r--stdio-common/psiginfo.c4
-rw-r--r--stdio-common/psignal.c4
-rw-r--r--stdio-common/putw.c4
-rw-r--r--stdio-common/reg-modifier.c4
-rw-r--r--stdio-common/reg-printf.c4
-rw-r--r--stdio-common/reg-type.c4
-rw-r--r--stdio-common/remove.c4
-rw-r--r--stdio-common/rename.c4
-rw-r--r--stdio-common/renameat.c4
-rw-r--r--stdio-common/renameat2.c8
-rw-r--r--stdio-common/scanf.c11
-rw-r--r--stdio-common/scanf11.c4
-rw-r--r--stdio-common/scanf14.c52
-rw-r--r--stdio-common/scanf14a.c143
-rw-r--r--stdio-common/scanf15.c31
-rw-r--r--stdio-common/scanf16.c37
-rw-r--r--stdio-common/scanf16a.c173
-rw-r--r--stdio-common/scanf17.c31
-rw-r--r--stdio-common/siglist.c4
-rw-r--r--stdio-common/snprintf.c8
-rw-r--r--stdio-common/sprintf.c8
-rw-r--r--stdio-common/sscanf.c22
-rw-r--r--stdio-common/stdio_ext.h4
-rw-r--r--stdio-common/stdio_lim.h.in4
-rw-r--r--stdio-common/tempnam.c4
-rw-r--r--stdio-common/tempname.c4
-rw-r--r--stdio-common/test-fseek.c4
-rw-r--r--stdio-common/test-popen.c4
-rw-r--r--stdio-common/test-vfprintf.c4
-rw-r--r--stdio-common/test_rdwr.c4
-rw-r--r--stdio-common/tmpfile.c4
-rw-r--r--stdio-common/tmpfile64.c4
-rw-r--r--stdio-common/tmpnam.c4
-rw-r--r--stdio-common/tmpnam_r.c4
-rw-r--r--stdio-common/tst-bz11319-fortify2.c1
-rw-r--r--stdio-common/tst-bz11319.c49
-rw-r--r--stdio-common/tst-fileno.c10
-rw-r--r--stdio-common/tst-fmemopen.c4
-rw-r--r--stdio-common/tst-fmemopen2.c4
-rw-r--r--stdio-common/tst-fmemopen3.c4
-rw-r--r--stdio-common/tst-fmemopen4.c10
-rw-r--r--stdio-common/tst-fphex-wide.c4
-rw-r--r--stdio-common/tst-fseek.c5
-rw-r--r--stdio-common/tst-gets.c4
-rw-r--r--stdio-common/tst-long-dbl-fphex.c4
-rw-r--r--stdio-common/tst-popen.c4
-rw-r--r--stdio-common/tst-printf-bz18872.sh4
-rw-r--r--stdio-common/tst-printf-round.c4
-rw-r--r--stdio-common/tst-printf.c13
-rw-r--r--stdio-common/tst-printf.sh4
-rw-r--r--stdio-common/tst-printfsz-islongdouble.c4
-rw-r--r--stdio-common/tst-printfsz-islongdouble.sh4
-rw-r--r--stdio-common/tst-put-error.c4
-rw-r--r--stdio-common/tst-renameat2.c4
-rw-r--r--stdio-common/tst-rndseek.c1
-rw-r--r--stdio-common/tst-scanf-round.c4
-rw-r--r--stdio-common/tst-sprintf3.c4
-rw-r--r--stdio-common/tst-sscanf.c4
-rw-r--r--stdio-common/tst-tmpnam.c4
-rwxr-xr-xstdio-common/tst-unbputc.sh4
-rw-r--r--stdio-common/tst-unlockedio.c4
-rw-r--r--stdio-common/tst-vfprintf-mbs-prec.c4
-rw-r--r--stdio-common/tst-vfprintf-user-type.c4
-rw-r--r--stdio-common/tst-vfprintf-width-prec.c4
-rw-r--r--stdio-common/tstgetln.c4
-rw-r--r--stdio-common/tstscanf.c4
-rw-r--r--stdio-common/vfprintf-internal.c2405
-rw-r--r--stdio-common/vfprintf.c2355
-rw-r--r--stdio-common/vfscanf-internal.c3057
-rw-r--r--stdio-common/vfscanf.c3049
-rw-r--r--stdio-common/vfwprintf-internal.c2
-rw-r--r--stdio-common/vfwprintf.c28
-rw-r--r--stdio-common/vfwscanf-internal.c2
-rw-r--r--stdio-common/vfwscanf.c33
-rw-r--r--stdio-common/vprintf.c8
-rw-r--r--stdlib/Makefile12
-rw-r--r--stdlib/Versions3
-rw-r--r--stdlib/a64l.c4
-rw-r--r--stdlib/abort.c4
-rw-r--r--stdlib/abs.c4
-rw-r--r--stdlib/add_n.c4
-rw-r--r--stdlib/addmul_1.c4
-rw-r--r--stdlib/alloca.h4
-rw-r--r--stdlib/at_quick_exit.c4
-rw-r--r--stdlib/atexit.c4
-rw-r--r--stdlib/atof.c4
-rw-r--r--stdlib/atoi.c4
-rw-r--r--stdlib/atol.c4
-rw-r--r--stdlib/atoll.c4
-rw-r--r--stdlib/bits/monetary-ldbl.h4
-rw-r--r--stdlib/bits/stdlib-float.h4
-rw-r--r--stdlib/bits/stdlib-ldbl.h6
-rw-r--r--stdlib/bits/stdlib.h4
-rw-r--r--stdlib/bsearch.c4
-rw-r--r--stdlib/bug-strtod.c4
-rw-r--r--stdlib/canonicalize.c4
-rw-r--r--stdlib/cmp.c4
-rw-r--r--stdlib/cxa_at_quick_exit.c4
-rw-r--r--stdlib/cxa_atexit.c8
-rw-r--r--stdlib/cxa_finalize.c4
-rw-r--r--stdlib/cxa_thread_atexit_impl.c4
-rw-r--r--stdlib/dbl2mpn.c4
-rw-r--r--stdlib/div.c4
-rw-r--r--stdlib/divmod_1.c4
-rw-r--r--stdlib/divrem.c4
-rw-r--r--stdlib/drand48-iter.c4
-rw-r--r--stdlib/drand48.c4
-rw-r--r--stdlib/drand48_r.c4
-rw-r--r--stdlib/erand48.c4
-rw-r--r--stdlib/erand48_r.c4
-rw-r--r--stdlib/errno.h4
-rw-r--r--stdlib/exit.c4
-rw-r--r--stdlib/exit.h4
-rw-r--r--stdlib/fmtmsg.c6
-rw-r--r--stdlib/fmtmsg.h4
-rw-r--r--stdlib/fpioconst.c4
-rw-r--r--stdlib/fpioconst.h4
-rw-r--r--stdlib/gen-fpioconst.c4
-rw-r--r--stdlib/gen-tst-strtod-round.c4
-rw-r--r--stdlib/getcontext.c4
-rw-r--r--stdlib/getentropy.c4
-rw-r--r--stdlib/getenv.c4
-rw-r--r--stdlib/getrandom.c10
-rw-r--r--stdlib/getsubopt.c4
-rw-r--r--stdlib/gmp-impl.h4
-rw-r--r--stdlib/gmp.h4
-rw-r--r--stdlib/grouping.c4
-rw-r--r--stdlib/grouping.h4
-rw-r--r--stdlib/inttypes.h (renamed from sysdeps/generic/inttypes.h)4
-rw-r--r--stdlib/isomac.c5
-rw-r--r--stdlib/jrand48.c4
-rw-r--r--stdlib/jrand48_r.c4
-rw-r--r--stdlib/l64a.c4
-rw-r--r--stdlib/labs.c4
-rw-r--r--stdlib/lcong48.c4
-rw-r--r--stdlib/lcong48_r.c4
-rw-r--r--stdlib/ldiv.c4
-rw-r--r--stdlib/llabs.c4
-rw-r--r--stdlib/lldiv.c4
-rw-r--r--stdlib/longlong.h119
-rw-r--r--stdlib/lrand48.c4
-rw-r--r--stdlib/lrand48_r.c4
-rw-r--r--stdlib/lshift.c4
-rw-r--r--stdlib/makecontext.c4
-rw-r--r--stdlib/mblen.c4
-rw-r--r--stdlib/mbstowcs.c11
-rw-r--r--stdlib/mbtowc.c4
-rw-r--r--stdlib/mod_1.c4
-rw-r--r--stdlib/monetary.h4
-rw-r--r--stdlib/mp_clz_tab.c4
-rw-r--r--stdlib/mpn2dbl.c4
-rw-r--r--stdlib/mpn2flt.c4
-rw-r--r--stdlib/mrand48.c4
-rw-r--r--stdlib/mrand48_r.c4
-rw-r--r--stdlib/msort.c4
-rw-r--r--stdlib/mul.c4
-rw-r--r--stdlib/mul_1.c4
-rw-r--r--stdlib/mul_n.c4
-rw-r--r--stdlib/nrand48.c4
-rw-r--r--stdlib/nrand48_r.c4
-rw-r--r--stdlib/on_exit.c9
-rw-r--r--stdlib/putenv.c4
-rw-r--r--stdlib/qsort.c6
-rw-r--r--stdlib/quick_exit.c4
-rw-r--r--stdlib/rand.c4
-rw-r--r--stdlib/rand_r.c4
-rw-r--r--stdlib/random.c4
-rw-r--r--stdlib/random_r.c4
-rw-r--r--stdlib/rpmatch.c4
-rw-r--r--stdlib/rshift.c4
-rw-r--r--stdlib/secure-getenv.c4
-rw-r--r--stdlib/seed48.c4
-rw-r--r--stdlib/seed48_r.c4
-rw-r--r--stdlib/setcontext.c4
-rw-r--r--stdlib/setenv.c4
-rw-r--r--stdlib/srand48.c4
-rw-r--r--stdlib/srand48_r.c4
-rw-r--r--stdlib/stdint.h319
-rw-r--r--stdlib/stdlib.h21
-rw-r--r--stdlib/strfmon.c7
-rw-r--r--stdlib/strfmon_l.c59
-rw-r--r--stdlib/strfrom-skeleton.c6
-rw-r--r--stdlib/strfromd.c4
-rw-r--r--stdlib/strfromf.c4
-rw-r--r--stdlib/strfroml.c4
-rw-r--r--stdlib/strtod.c4
-rw-r--r--stdlib/strtod_l.c29
-rw-r--r--stdlib/strtod_nan.c4
-rw-r--r--stdlib/strtod_nan_main.c4
-rw-r--r--stdlib/strtod_nan_narrow.h4
-rw-r--r--stdlib/strtod_nan_wide.h4
-rw-r--r--stdlib/strtof.c4
-rw-r--r--stdlib/strtof_l.c4
-rw-r--r--stdlib/strtof_nan.c4
-rw-r--r--stdlib/strtol.c4
-rw-r--r--stdlib/strtol_l.c4
-rw-r--r--stdlib/strtold.c4
-rw-r--r--stdlib/strtold_l.c4
-rw-r--r--stdlib/strtold_nan.c4
-rw-r--r--stdlib/strtoll.c4
-rw-r--r--stdlib/strtoll_l.c4
-rw-r--r--stdlib/strtoul.c4
-rw-r--r--stdlib/strtoul_l.c4
-rw-r--r--stdlib/strtoull.c4
-rw-r--r--stdlib/strtoull_l.c4
-rw-r--r--stdlib/sub_n.c4
-rw-r--r--stdlib/submul_1.c4
-rw-r--r--stdlib/swapcontext.c4
-rw-r--r--stdlib/sys/random.h4
-rw-r--r--stdlib/system.c4
-rw-r--r--stdlib/test-a64l.c4
-rw-r--r--stdlib/test-at_quick_exit-race.c4
-rw-r--r--stdlib/test-atexit-race-common.c4
-rw-r--r--stdlib/test-atexit-race.c4
-rw-r--r--stdlib/test-bz22786.c58
-rw-r--r--stdlib/test-canon.c8
-rw-r--r--stdlib/test-canon2.c4
-rw-r--r--stdlib/test-cxa_atexit-race.c4
-rw-r--r--stdlib/test-dlclose-exit-race-helper.c4
-rw-r--r--stdlib/test-dlclose-exit-race.c4
-rw-r--r--stdlib/test-on_exit-race.c4
-rw-r--r--stdlib/testdiv.c4
-rw-r--r--stdlib/testmb2.c2
-rw-r--r--stdlib/testrand.c4
-rw-r--r--stdlib/tst-at_quick_exit.c4
-rw-r--r--stdlib/tst-atexit-common.c4
-rw-r--r--stdlib/tst-atexit.c4
-rw-r--r--stdlib/tst-bsearch.c4
-rw-r--r--stdlib/tst-bz20544.c115
-rw-r--r--stdlib/tst-cxa_atexit.c4
-rw-r--r--stdlib/tst-empty-env.c5
-rw-r--r--stdlib/tst-environ.c4
-rwxr-xr-xstdlib/tst-fmtmsg.sh4
-rw-r--r--stdlib/tst-getrandom.c4
-rw-r--r--stdlib/tst-makecontext-align.c4
-rw-r--r--stdlib/tst-makecontext.c4
-rw-r--r--stdlib/tst-makecontext2.c4
-rw-r--r--stdlib/tst-makecontext3.c4
-rw-r--r--stdlib/tst-on_exit.c4
-rw-r--r--stdlib/tst-quick_exit.cc4
-rw-r--r--stdlib/tst-random2.c4
-rw-r--r--stdlib/tst-secure-getenv.c23
-rw-r--r--stdlib/tst-setcontext.c4
-rw-r--r--stdlib/tst-setcontext2.c4
-rw-r--r--stdlib/tst-setcontext3.c4
-rw-r--r--stdlib/tst-setcontext3.sh4
-rw-r--r--stdlib/tst-setcontext4.c4
-rw-r--r--stdlib/tst-setcontext5.c4
-rw-r--r--stdlib/tst-setcontext6.c4
-rw-r--r--stdlib/tst-setcontext7.c4
-rw-r--r--stdlib/tst-setcontext8.c4
-rw-r--r--stdlib/tst-setcontext9.c53
-rw-r--r--stdlib/tst-strfmon_l.c4
-rw-r--r--stdlib/tst-strfrom-locale.c4
-rw-r--r--stdlib/tst-strfrom.c4
-rw-r--r--stdlib/tst-strfrom.h12
-rw-r--r--stdlib/tst-strtod-nan-locale-main.c4
-rw-r--r--stdlib/tst-strtod-nan-locale.c4
-rw-r--r--stdlib/tst-strtod-nan-sign-main.c4
-rw-r--r--stdlib/tst-strtod-nan-sign.c4
-rw-r--r--stdlib/tst-strtod-overflow.c20
-rw-r--r--stdlib/tst-strtod-round-skeleton.c4
-rw-r--r--stdlib/tst-strtod-round.c4
-rw-r--r--stdlib/tst-strtod-underflow.c4
-rw-r--r--stdlib/tst-strtod.c4
-rw-r--r--stdlib/tst-strtod.h4
-rw-r--r--stdlib/tst-strtod1i.c4
-rw-r--r--stdlib/tst-strtod5.c4
-rw-r--r--stdlib/tst-strtod5i.c4
-rw-r--r--stdlib/tst-strtol-locale-main.c4
-rw-r--r--stdlib/tst-strtol-locale.c4
-rw-r--r--stdlib/tst-swapcontext1.c8
-rw-r--r--stdlib/tst-system.c4
-rw-r--r--stdlib/tst-thread-quick_exit.cc4
-rw-r--r--stdlib/tst-tininess.c4
-rw-r--r--stdlib/tst-tls-atexit-lib.c4
-rw-r--r--stdlib/tst-tls-atexit-nodelete.c4
-rw-r--r--stdlib/tst-tls-atexit.c4
-rw-r--r--stdlib/tst-width-stdint.c4
-rw-r--r--stdlib/tst-width.c4
-rw-r--r--stdlib/tst-xpg-basename.c4
-rw-r--r--stdlib/ucontext.h4
-rw-r--r--stdlib/wcstombs.c4
-rw-r--r--stdlib/wctomb.c4
-rw-r--r--stdlib/xpg_basename.c4
-rw-r--r--streams/Makefile28
-rw-r--r--streams/Versions15
-rw-r--r--streams/fattach.c29
-rw-r--r--streams/fdetach.c29
-rw-r--r--streams/getmsg.c29
-rw-r--r--streams/getpmsg.c30
-rw-r--r--streams/isastream.c33
-rw-r--r--streams/putmsg.c30
-rw-r--r--streams/putpmsg.c30
-rw-r--r--streams/stropts.h92
-rw-r--r--streams/sys/stropts.h1
-rw-r--r--string/Makefile13
-rw-r--r--string/_strerror.c4
-rw-r--r--string/argz-addsep.c4
-rw-r--r--string/argz-append.c4
-rw-r--r--string/argz-count.c4
-rw-r--r--string/argz-create.c4
-rw-r--r--string/argz-ctsep.c4
-rw-r--r--string/argz-delete.c4
-rw-r--r--string/argz-extract.c4
-rw-r--r--string/argz-insert.c4
-rw-r--r--string/argz-next.c4
-rw-r--r--string/argz-replace.c4
-rw-r--r--string/argz-stringify.c4
-rw-r--r--string/argz.h4
-rw-r--r--string/basename.c4
-rw-r--r--string/bcopy.c4
-rw-r--r--string/bits/endian.h49
-rw-r--r--string/bits/string_fortified.h4
-rw-r--r--string/bits/strings_fortified.h4
-rw-r--r--string/bug-strcoll2.c4
-rw-r--r--string/byteswap.h4
-rw-r--r--string/bzero.c4
-rw-r--r--string/endian.h33
-rw-r--r--string/envz.c4
-rw-r--r--string/envz.h4
-rw-r--r--string/explicit_bzero.c4
-rw-r--r--string/ffs.c4
-rw-r--r--string/ffsll.c4
-rw-r--r--string/memccpy.c4
-rw-r--r--string/memchr.c4
-rw-r--r--string/memcmp.c6
-rw-r--r--string/memcpy.c12
-rw-r--r--string/memfrob.c4
-rw-r--r--string/memmem.c127
-rw-r--r--string/memmove.c4
-rw-r--r--string/memory.h4
-rw-r--r--string/mempcpy.c4
-rw-r--r--string/memrchr.c4
-rw-r--r--string/memset.c12
-rw-r--r--string/rawmemchr.c4
-rw-r--r--string/stpcpy.c4
-rw-r--r--string/stpncpy.c4
-rw-r--r--string/str-two-way.h13
-rw-r--r--string/stratcliff.c4
-rw-r--r--string/strcasecmp.c4
-rw-r--r--string/strcasecmp_l.c4
-rw-r--r--string/strcasestr.c46
-rw-r--r--string/strcat.c4
-rw-r--r--string/strchr.c10
-rw-r--r--string/strchrnul.c10
-rw-r--r--string/strcmp.c4
-rw-r--r--string/strcoll.c4
-rw-r--r--string/strcoll_l.c4
-rw-r--r--string/strcpy.c4
-rw-r--r--string/strcspn.c8
-rw-r--r--string/strdup.c4
-rw-r--r--string/strerror.c4
-rw-r--r--string/strerror_l.c4
-rw-r--r--string/strfry.c8
-rw-r--r--string/string-inlines.c4
-rw-r--r--string/string.h13
-rw-r--r--string/strings.h4
-rw-r--r--string/strlen.c4
-rw-r--r--string/strncase.c4
-rw-r--r--string/strncase_l.c4
-rw-r--r--string/strncat.c4
-rw-r--r--string/strncmp.c4
-rw-r--r--string/strncpy.c4
-rw-r--r--string/strndup.c4
-rw-r--r--string/strnlen.c4
-rw-r--r--string/strpbrk.c4
-rw-r--r--string/strrchr.c4
-rw-r--r--string/strsep.c4
-rw-r--r--string/strsignal.c4
-rw-r--r--string/strspn.c4
-rw-r--r--string/strstr.c181
-rw-r--r--string/strtok.c4
-rw-r--r--string/strtok_r.c4
-rw-r--r--string/strverscmp.c6
-rw-r--r--string/strxfrm.c4
-rw-r--r--string/strxfrm_l.c4
-rw-r--r--string/swab.c4
-rw-r--r--string/test-bcopy.c4
-rw-r--r--string/test-bzero.c4
-rw-r--r--string/test-endian-file-scope.c4
-rw-r--r--string/test-endian-sign-conversion.c4
-rw-r--r--string/test-endian-types.c4
-rw-r--r--string/test-explicit_bzero.c4
-rw-r--r--string/test-ffs.c4
-rw-r--r--string/test-memccpy.c4
-rw-r--r--string/test-memchr.c4
-rw-r--r--string/test-memcmp.c4
-rw-r--r--string/test-memcpy.c4
-rw-r--r--string/test-memmem.c12
-rw-r--r--string/test-memmove.c4
-rw-r--r--string/test-mempcpy.c4
-rw-r--r--string/test-memrchr.c4
-rw-r--r--string/test-memset.c4
-rw-r--r--string/test-rawmemchr.c4
-rw-r--r--string/test-stpcpy.c4
-rw-r--r--string/test-stpncpy.c4
-rw-r--r--string/test-strcasecmp.c4
-rw-r--r--string/test-strcasestr.c7
-rw-r--r--string/test-strcat.c4
-rw-r--r--string/test-strchr.c4
-rw-r--r--string/test-strchrnul.c4
-rw-r--r--string/test-strcmp.c4
-rw-r--r--string/test-strcpy.c12
-rw-r--r--string/test-strcspn.c4
-rw-r--r--string/test-strerror-errno.c61
-rw-r--r--string/test-string.h4
-rw-r--r--string/test-strlen.c16
-rw-r--r--string/test-strncasecmp.c4
-rw-r--r--string/test-strncat.c4
-rw-r--r--string/test-strncmp.c4
-rw-r--r--string/test-strncpy.c4
-rw-r--r--string/test-strnlen.c4
-rw-r--r--string/test-strpbrk.c4
-rw-r--r--string/test-strrchr.c8
-rw-r--r--string/test-strspn.c4
-rw-r--r--string/test-strstr.c78
-rw-r--r--string/testcopy.c4
-rw-r--r--string/tester.c144
-rw-r--r--string/tst-bswap.c4
-rw-r--r--string/tst-cmp.c4
-rw-r--r--string/tst-inlcall.c4
-rw-r--r--string/tst-strcoll-overflow.c4
-rw-r--r--string/tst-strtok_r.c4
-rw-r--r--string/tst-xbzero-opt.c4
-rw-r--r--string/wordcopy.c4
-rw-r--r--string/xpg-strerror.c4
-rw-r--r--sunrpc/Makefile4
-rw-r--r--sunrpc/auth_des.c19
-rw-r--r--sunrpc/auth_unix.c9
-rw-r--r--sunrpc/clnt_udp.c11
-rw-r--r--sunrpc/create_xid.c10
-rw-r--r--sunrpc/des_impl.c2
-rw-r--r--sunrpc/getrpcbyname.c4
-rw-r--r--sunrpc/getrpcbyname_r.c4
-rw-r--r--sunrpc/getrpcbynumber.c4
-rw-r--r--sunrpc/getrpcbynumber_r.c4
-rw-r--r--sunrpc/getrpcent.c4
-rw-r--r--sunrpc/getrpcent_r.c4
-rw-r--r--sunrpc/getrpcport.c4
-rw-r--r--sunrpc/netname.c4
-rw-r--r--sunrpc/publickey.c4
-rw-r--r--sunrpc/rpc/auth_des.h4
-rw-r--r--sunrpc/rpc/svc.h4
-rw-r--r--sunrpc/rpc_gethostbyname.c4
-rw-r--r--sunrpc/rpcsvc/bootparam.h4
-rw-r--r--sunrpc/svc.c4
-rw-r--r--sunrpc/svc_tcp.c4
-rw-r--r--sunrpc/svc_udp.c4
-rw-r--r--sunrpc/svc_unix.c4
-rw-r--r--sunrpc/svcauth_des.c7
-rw-r--r--sunrpc/test-rpcent.c4
-rw-r--r--sunrpc/tst-svc_register.c6
-rw-r--r--sunrpc/tst-udp-error.c4
-rw-r--r--sunrpc/tst-udp-garbage.c4
-rw-r--r--sunrpc/tst-udp-nonblocking.c4
-rw-r--r--sunrpc/tst-udp-timeout.c4
-rw-r--r--sunrpc/tst-xdrmem.c4
-rw-r--r--sunrpc/tst-xdrmem2.c4
-rw-r--r--sunrpc/xdr.c7
-rw-r--r--sunrpc/xdr_intXX_t.c4
-rw-r--r--support/Makefile76
-rw-r--r--support/README6
-rw-r--r--support/blob_repeat.c282
-rw-r--r--support/blob_repeat.h44
-rw-r--r--support/capture_subprocess.h25
-rw-r--r--support/check.c4
-rw-r--r--support/check.h21
-rw-r--r--support/check_addrinfo.c4
-rw-r--r--support/check_dns_packet.c4
-rw-r--r--support/check_hostent.c4
-rw-r--r--support/check_netent.c4
-rw-r--r--support/check_nss.h4
-rw-r--r--support/delayed_exit.c4
-rw-r--r--support/descriptors.h47
-rw-r--r--support/echo-container.c34
-rw-r--r--support/format_nss.h4
-rw-r--r--support/ignore_stderr.c4
-rw-r--r--support/links-dso-program-c.c26
-rw-r--r--support/links-dso-program.cc28
-rw-r--r--support/namespace.h6
-rw-r--r--support/next_to_fault.c4
-rw-r--r--support/next_to_fault.h4
-rw-r--r--support/oom_error.c4
-rw-r--r--support/resolv_test.c6
-rw-r--r--support/resolv_test.h7
-rw-r--r--support/run_diff.h4
-rw-r--r--support/set_fortify_handler.c4
-rw-r--r--support/shell-container.c395
-rw-r--r--support/subprocess.h49
-rw-r--r--support/support-xfstat.c4
-rw-r--r--support/support-xstat.c4
-rw-r--r--support/support.h44
-rw-r--r--support/support_become_root.c4
-rw-r--r--support/support_can_chroot.c4
-rw-r--r--support/support_capture_subprocess.c78
-rw-r--r--support/support_capture_subprocess_check.c45
-rw-r--r--support/support_chroot.c6
-rw-r--r--support/support_copy_file_range.c143
-rw-r--r--support/support_descriptor_supports_holes.c87
-rw-r--r--support/support_descriptors.c275
-rw-r--r--support/support_enter_mount_namespace.c4
-rw-r--r--support/support_enter_network_namespace.c4
-rw-r--r--support/support_format_address_family.c8
-rw-r--r--support/support_format_addrinfo.c4
-rw-r--r--support/support_format_dns_packet.c4
-rw-r--r--support/support_format_herrno.c4
-rw-r--r--support/support_format_hostent.c4
-rw-r--r--support/support_format_netent.c4
-rw-r--r--support/support_isolate_in_subprocess.c4
-rw-r--r--support/support_openpty.c4
-rw-r--r--support/support_paths.c80
-rw-r--r--support/support_ptrace.c43
-rw-r--r--support/support_quote_blob.c4
-rw-r--r--support/support_quote_string.c26
-rw-r--r--support/support_record_failure.c12
-rw-r--r--support/support_run_diff.c4
-rw-r--r--support/support_set_small_thread_stack_size.c35
-rw-r--r--support/support_shared_allocate.c4
-rw-r--r--support/support_small_stack_thread_attribute.c54
-rw-r--r--support/support_subprocess.c152
-rw-r--r--support/support_test_compare_blob.c8
-rw-r--r--support/support_test_compare_failure.c4
-rw-r--r--support/support_test_compare_string.c91
-rw-r--r--support/support_test_main.c84
-rw-r--r--support/support_test_verify_impl.c4
-rw-r--r--support/support_write_file_string.c4
-rw-r--r--support/temp_file-internal.h4
-rw-r--r--support/temp_file.c4
-rw-r--r--support/temp_file.h4
-rw-r--r--support/test-container.c1100
-rw-r--r--support/test-driver.c4
-rw-r--r--support/test-driver.h12
-rw-r--r--support/timespec-add.c65
-rw-r--r--support/timespec-sub.c65
-rw-r--r--support/timespec.c59
-rw-r--r--support/timespec.h79
-rw-r--r--support/true-container.c26
-rw-r--r--support/tst-support-namespace.c4
-rw-r--r--support/tst-support_blob_repeat.c85
-rw-r--r--support/tst-support_capture_subprocess.c201
-rw-r--r--support/tst-support_descriptors.c198
-rw-r--r--support/tst-support_format_dns_packet.c4
-rw-r--r--support/tst-support_quote_blob.c4
-rw-r--r--support/tst-support_quote_string.c60
-rw-r--r--support/tst-support_record_failure-2.sh4
-rw-r--r--support/tst-support_record_failure.c4
-rw-r--r--support/tst-test_compare.c4
-rw-r--r--support/tst-test_compare_blob.c4
-rw-r--r--support/tst-test_compare_string.c107
-rw-r--r--support/tst-xreadlink.c4
-rw-r--r--support/tst-xsigstack.c64
-rw-r--r--support/tty.h4
-rw-r--r--support/write_message.c4
-rw-r--r--support/xaccept.c4
-rw-r--r--support/xaccept4.c4
-rw-r--r--support/xasprintf.c4
-rw-r--r--support/xbind.c4
-rw-r--r--support/xcalloc.c4
-rw-r--r--support/xchroot.c4
-rw-r--r--support/xclock_gettime.c31
-rw-r--r--support/xclose.c4
-rw-r--r--support/xconnect.c4
-rw-r--r--support/xcopy_file_range.c32
-rw-r--r--support/xdlfcn.c40
-rw-r--r--support/xdlfcn.h7
-rw-r--r--support/xdlmopen.c31
-rw-r--r--support/xdup2.c4
-rw-r--r--support/xfclose.c4
-rw-r--r--support/xfopen.c4
-rw-r--r--support/xfork.c4
-rw-r--r--support/xftruncate.c4
-rw-r--r--support/xgetsockname.c4
-rw-r--r--support/xlisten.c4
-rw-r--r--support/xlseek.c4
-rw-r--r--support/xmalloc.c4
-rw-r--r--support/xmemstream.c4
-rw-r--r--support/xmemstream.h4
-rw-r--r--support/xmkdir.c4
-rw-r--r--support/xmkdirp.c66
-rw-r--r--support/xmmap.c4
-rw-r--r--support/xmprotect.c4
-rw-r--r--support/xmunmap.c4
-rw-r--r--support/xopen.c4
-rw-r--r--support/xpipe.c4
-rw-r--r--support/xpoll.c4
-rw-r--r--support/xposix_memalign.c35
-rw-r--r--support/xposix_spawn.c32
-rw-r--r--support/xposix_spawn_file_actions_addclose.c29
-rw-r--r--support/xposix_spawn_file_actions_adddup2.c30
-rw-r--r--support/xpthread_attr_destroy.c4
-rw-r--r--support/xpthread_attr_init.c4
-rw-r--r--support/xpthread_attr_setdetachstate.c4
-rw-r--r--support/xpthread_attr_setguardsize.c4
-rw-r--r--support/xpthread_attr_setstack.c26
-rw-r--r--support/xpthread_attr_setstacksize.c4
-rw-r--r--support/xpthread_barrier_destroy.c4
-rw-r--r--support/xpthread_barrier_init.c4
-rw-r--r--support/xpthread_barrier_wait.c4
-rw-r--r--support/xpthread_barrierattr_destroy.c4
-rw-r--r--support/xpthread_barrierattr_init.c4
-rw-r--r--support/xpthread_barrierattr_setpshared.c4
-rw-r--r--support/xpthread_cancel.c4
-rw-r--r--support/xpthread_check_return.c4
-rw-r--r--support/xpthread_cond_wait.c4
-rw-r--r--support/xpthread_create.c4
-rw-r--r--support/xpthread_detach.c4
-rw-r--r--support/xpthread_join.c4
-rw-r--r--support/xpthread_mutex_consistent.c4
-rw-r--r--support/xpthread_mutex_destroy.c4
-rw-r--r--support/xpthread_mutex_init.c4
-rw-r--r--support/xpthread_mutex_lock.c4
-rw-r--r--support/xpthread_mutex_unlock.c4
-rw-r--r--support/xpthread_mutexattr_destroy.c4
-rw-r--r--support/xpthread_mutexattr_init.c4
-rw-r--r--support/xpthread_mutexattr_setprotocol.c4
-rw-r--r--support/xpthread_mutexattr_setpshared.c4
-rw-r--r--support/xpthread_mutexattr_setrobust.c4
-rw-r--r--support/xpthread_mutexattr_settype.c4
-rw-r--r--support/xpthread_once.c4
-rw-r--r--support/xpthread_rwlock_destroy.c26
-rw-r--r--support/xpthread_rwlock_init.c4
-rw-r--r--support/xpthread_rwlock_rdlock.c4
-rw-r--r--support/xpthread_rwlock_unlock.c4
-rw-r--r--support/xpthread_rwlock_wrlock.c4
-rw-r--r--support/xpthread_rwlockattr_init.c4
-rw-r--r--support/xpthread_rwlockattr_setkind_np.c4
-rw-r--r--support/xpthread_sigmask.c4
-rw-r--r--support/xpthread_spin_lock.c4
-rw-r--r--support/xpthread_spin_unlock.c4
-rw-r--r--support/xptrace.h32
-rw-r--r--support/xraise.c4
-rw-r--r--support/xreadlink.c4
-rw-r--r--support/xrealloc.c4
-rw-r--r--support/xrecvfrom.c4
-rw-r--r--support/xsendto.c4
-rw-r--r--support/xsetlocale.c30
-rw-r--r--support/xsetsockopt.c4
-rw-r--r--support/xsigaction.c4
-rw-r--r--support/xsignal.c4
-rw-r--r--support/xsignal.h21
-rw-r--r--support/xsigstack.c114
-rw-r--r--support/xsocket.c4
-rw-r--r--support/xsocket.h4
-rw-r--r--support/xspawn.h34
-rw-r--r--support/xstdio.h4
-rw-r--r--support/xstrdup.c4
-rw-r--r--support/xstrndup.c4
-rw-r--r--support/xsymlink.c29
-rw-r--r--support/xsysconf.c4
-rw-r--r--support/xthread.h15
-rw-r--r--support/xtime.h43
-rw-r--r--support/xunistd.h11
-rw-r--r--support/xunlink.c4
-rw-r--r--support/xwaitpid.c4
-rw-r--r--support/xwrite.c4
-rw-r--r--sysdeps/aarch64/Makefile6
-rw-r--r--sysdeps/aarch64/__longjmp.S4
-rw-r--r--sysdeps/aarch64/atomic-machine.h4
-rw-r--r--sysdeps/aarch64/bits/endian.h30
-rw-r--r--sysdeps/aarch64/bits/endianness.h15
-rw-r--r--sysdeps/aarch64/bits/fenv.h6
-rw-r--r--sysdeps/aarch64/bits/fp-fast.h4
-rw-r--r--sysdeps/aarch64/bits/link.h4
-rw-r--r--sysdeps/aarch64/bits/setjmp.h4
-rw-r--r--sysdeps/aarch64/bits/wordsize.h4
-rw-r--r--sysdeps/aarch64/crti.S4
-rw-r--r--sysdeps/aarch64/crtn.S4
-rw-r--r--sysdeps/aarch64/dl-dtprocnum.h21
-rw-r--r--sysdeps/aarch64/dl-irel.h15
-rw-r--r--sysdeps/aarch64/dl-machine.h45
-rw-r--r--sysdeps/aarch64/dl-sysdep.h4
-rw-r--r--sysdeps/aarch64/dl-tls.h4
-rw-r--r--sysdeps/aarch64/dl-tlsdesc.S4
-rw-r--r--sysdeps/aarch64/dl-tlsdesc.h4
-rw-r--r--sysdeps/aarch64/dl-trampoline.S4
-rw-r--r--sysdeps/aarch64/dl-tunables.list8
-rw-r--r--sysdeps/aarch64/e_sqrtl.c4
-rw-r--r--sysdeps/aarch64/fpu/e_sqrt.c4
-rw-r--r--sysdeps/aarch64/fpu/e_sqrtf.c4
-rw-r--r--sysdeps/aarch64/fpu/fclrexcpt.c4
-rw-r--r--sysdeps/aarch64/fpu/fedisblxcpt.c4
-rw-r--r--sysdeps/aarch64/fpu/feenablxcpt.c4
-rw-r--r--sysdeps/aarch64/fpu/fegetenv.c4
-rw-r--r--sysdeps/aarch64/fpu/fegetexcept.c4
-rw-r--r--sysdeps/aarch64/fpu/fegetmode.c4
-rw-r--r--sysdeps/aarch64/fpu/fegetround.c4
-rw-r--r--sysdeps/aarch64/fpu/feholdexcpt.c6
-rw-r--r--sysdeps/aarch64/fpu/fenv_private.h303
-rw-r--r--sysdeps/aarch64/fpu/fesetenv.c4
-rw-r--r--sysdeps/aarch64/fpu/fesetexcept.c4
-rw-r--r--sysdeps/aarch64/fpu/fesetmode.c4
-rw-r--r--sysdeps/aarch64/fpu/fesetround.c6
-rw-r--r--sysdeps/aarch64/fpu/feupdateenv.c4
-rw-r--r--sysdeps/aarch64/fpu/fgetexcptflg.c6
-rw-r--r--sysdeps/aarch64/fpu/fpu_control.h10
-rw-r--r--sysdeps/aarch64/fpu/fraiseexcpt.c4
-rw-r--r--sysdeps/aarch64/fpu/fsetexcptflg.c4
-rw-r--r--sysdeps/aarch64/fpu/ftestexcept.c6
-rw-r--r--sysdeps/aarch64/fpu/get-rounding-mode.h4
-rw-r--r--sysdeps/aarch64/fpu/math-barriers.h4
-rw-r--r--sysdeps/aarch64/fpu/math_private.h301
-rw-r--r--sysdeps/aarch64/fpu/s_ceil.c5
-rw-r--r--sysdeps/aarch64/fpu/s_ceilf.c5
-rw-r--r--sysdeps/aarch64/fpu/s_floor.c5
-rw-r--r--sysdeps/aarch64/fpu/s_floorf.c5
-rw-r--r--sysdeps/aarch64/fpu/s_fma.c4
-rw-r--r--sysdeps/aarch64/fpu/s_fmaf.c4
-rw-r--r--sysdeps/aarch64/fpu/s_fmax.c4
-rw-r--r--sysdeps/aarch64/fpu/s_fmaxf.c4
-rw-r--r--sysdeps/aarch64/fpu/s_fmin.c4
-rw-r--r--sysdeps/aarch64/fpu/s_fminf.c4
-rw-r--r--sysdeps/aarch64/fpu/s_llrint.c5
-rw-r--r--sysdeps/aarch64/fpu/s_llrintf.c5
-rw-r--r--sysdeps/aarch64/fpu/s_llround.c4
-rw-r--r--sysdeps/aarch64/fpu/s_llroundf.c4
-rw-r--r--sysdeps/aarch64/fpu/s_lrint.c5
-rw-r--r--sysdeps/aarch64/fpu/s_lrintf.c5
-rw-r--r--sysdeps/aarch64/fpu/s_lround.c4
-rw-r--r--sysdeps/aarch64/fpu/s_lroundf.c4
-rw-r--r--sysdeps/aarch64/fpu/s_nearbyint.c4
-rw-r--r--sysdeps/aarch64/fpu/s_nearbyintf.c4
-rw-r--r--sysdeps/aarch64/fpu/s_rint.c5
-rw-r--r--sysdeps/aarch64/fpu/s_rintf.c5
-rw-r--r--sysdeps/aarch64/fpu/s_round.c5
-rw-r--r--sysdeps/aarch64/fpu/s_roundf.c5
-rw-r--r--sysdeps/aarch64/fpu/s_trunc.c5
-rw-r--r--sysdeps/aarch64/fpu/s_truncf.c5
-rw-r--r--sysdeps/aarch64/jmpbuf-offsets.h4
-rw-r--r--sysdeps/aarch64/jmpbuf-unwind.h4
-rw-r--r--sysdeps/aarch64/ldsodefs.h4
-rw-r--r--sysdeps/aarch64/libc-tls.c4
-rw-r--r--sysdeps/aarch64/libm-test-ulps112
-rw-r--r--sysdeps/aarch64/linkmap.h4
-rw-r--r--sysdeps/aarch64/machine-gmon.h4
-rw-r--r--sysdeps/aarch64/math-tests-trap.h26
-rw-r--r--sysdeps/aarch64/math-tests.h22
-rw-r--r--sysdeps/aarch64/mcount.c4
-rw-r--r--sysdeps/aarch64/memchr.S14
-rw-r--r--sysdeps/aarch64/memcmp.S4
-rw-r--r--sysdeps/aarch64/memcpy.S86
-rw-r--r--sysdeps/aarch64/memset-reg.h4
-rw-r--r--sysdeps/aarch64/memset.S11
-rw-r--r--sysdeps/aarch64/memusage.h4
-rw-r--r--sysdeps/aarch64/multiarch/Makefile5
-rw-r--r--sysdeps/aarch64/multiarch/ifunc-impl-list.c13
-rw-r--r--sysdeps/aarch64/multiarch/init-arch.h4
-rw-r--r--sysdeps/aarch64/multiarch/memchr.c41
-rw-r--r--sysdeps/aarch64/multiarch/memchr_generic.S33
-rw-r--r--sysdeps/aarch64/multiarch/memchr_nosimd.S223
-rw-r--r--sysdeps/aarch64/multiarch/memcpy.c6
-rw-r--r--sysdeps/aarch64/multiarch/memcpy_falkor.S4
-rw-r--r--sysdeps/aarch64/multiarch/memcpy_generic.S4
-rw-r--r--sysdeps/aarch64/multiarch/memcpy_thunderx.S18
-rw-r--r--sysdeps/aarch64/multiarch/memcpy_thunderx2.S462
-rw-r--r--sysdeps/aarch64/multiarch/memmove.c9
-rw-r--r--sysdeps/aarch64/multiarch/memmove_falkor.S4
-rw-r--r--sysdeps/aarch64/multiarch/memset.c9
-rw-r--r--sysdeps/aarch64/multiarch/memset_base64.S186
-rw-r--r--sysdeps/aarch64/multiarch/memset_emag.S34
-rw-r--r--sysdeps/aarch64/multiarch/memset_falkor.S4
-rw-r--r--sysdeps/aarch64/multiarch/memset_generic.S4
-rw-r--r--sysdeps/aarch64/multiarch/rtld-memset.S4
-rw-r--r--sysdeps/aarch64/multiarch/strlen.c41
-rw-r--r--sysdeps/aarch64/multiarch/strlen_asimd.S168
-rw-r--r--sysdeps/aarch64/multiarch/strlen_generic.S39
-rw-r--r--sysdeps/aarch64/nptl/Makefile4
-rw-r--r--sysdeps/aarch64/nptl/bits/pthreadtypes-arch.h30
-rw-r--r--sysdeps/aarch64/nptl/bits/semaphore.h4
-rw-r--r--sysdeps/aarch64/nptl/bits/struct_rwlock.h41
-rw-r--r--sysdeps/aarch64/nptl/pthread-offsets.h5
-rw-r--r--sysdeps/aarch64/nptl/pthreaddef.h4
-rw-r--r--sysdeps/aarch64/nptl/tls.h4
-rw-r--r--sysdeps/aarch64/rawmemchr.S4
-rw-r--r--sysdeps/aarch64/setjmp.S4
-rw-r--r--sysdeps/aarch64/sfp-machine.h4
-rw-r--r--sysdeps/aarch64/sotruss-lib.c4
-rw-r--r--sysdeps/aarch64/stackinfo.h4
-rw-r--r--sysdeps/aarch64/start.S4
-rw-r--r--sysdeps/aarch64/stpcpy.S4
-rw-r--r--sysdeps/aarch64/strchr.S4
-rw-r--r--sysdeps/aarch64/strchrnul.S4
-rw-r--r--sysdeps/aarch64/strcmp.S4
-rw-r--r--sysdeps/aarch64/strcpy.S4
-rw-r--r--sysdeps/aarch64/string_private.h4
-rw-r--r--sysdeps/aarch64/strlen.S16
-rw-r--r--sysdeps/aarch64/strncmp.S4
-rw-r--r--sysdeps/aarch64/strnlen.S4
-rw-r--r--sysdeps/aarch64/strrchr.S4
-rw-r--r--sysdeps/aarch64/sys/ifunc.h42
-rw-r--r--sysdeps/aarch64/sysdep.h4
-rw-r--r--sysdeps/aarch64/tls-macros.h4
-rw-r--r--sysdeps/aarch64/tlsdesc.c4
-rw-r--r--sysdeps/aarch64/tst-audit.h4
-rw-r--r--sysdeps/aarch64/tst-ifunc-arg-1.c63
-rw-r--r--sysdeps/aarch64/tst-ifunc-arg-2.c66
-rw-r--r--sysdeps/alpha/Makefile4
-rw-r--r--sysdeps/alpha/__longjmp.S4
-rw-r--r--sysdeps/alpha/_mcount.S4
-rw-r--r--sysdeps/alpha/add_n.S4
-rw-r--r--sysdeps/alpha/addmul_1.S4
-rw-r--r--sysdeps/alpha/alphaev5/add_n.S4
-rw-r--r--sysdeps/alpha/alphaev5/lshift.S4
-rw-r--r--sysdeps/alpha/alphaev5/rshift.S4
-rw-r--r--sysdeps/alpha/alphaev5/sub_n.S4
-rw-r--r--sysdeps/alpha/alphaev6/addmul_1.S4
-rw-r--r--sysdeps/alpha/alphaev6/fpu/e_sqrt.S4
-rw-r--r--sysdeps/alpha/alphaev6/fpu/e_sqrtf.S4
-rw-r--r--sysdeps/alpha/alphaev6/memcpy.S4
-rw-r--r--sysdeps/alpha/alphaev6/memset.S4
-rw-r--r--sysdeps/alpha/alphaev6/stxcpy.S4
-rw-r--r--sysdeps/alpha/alphaev6/stxncpy.S4
-rw-r--r--sysdeps/alpha/alphaev67/ffs.S4
-rw-r--r--sysdeps/alpha/alphaev67/ffsll.S4
-rw-r--r--sysdeps/alpha/alphaev67/rawmemchr.S4
-rw-r--r--sysdeps/alpha/alphaev67/stpcpy.S4
-rw-r--r--sysdeps/alpha/alphaev67/stpncpy.S4
-rw-r--r--sysdeps/alpha/alphaev67/strcat.S4
-rw-r--r--sysdeps/alpha/alphaev67/strchr.S4
-rw-r--r--sysdeps/alpha/alphaev67/strlen.S4
-rw-r--r--sysdeps/alpha/alphaev67/strncat.S4
-rw-r--r--sysdeps/alpha/alphaev67/strrchr.S4
-rw-r--r--sysdeps/alpha/atomic-machine.h4
-rw-r--r--sysdeps/alpha/bits/endian.h7
-rw-r--r--sysdeps/alpha/bits/endianness.h11
-rw-r--r--sysdeps/alpha/bits/link.h4
-rw-r--r--sysdeps/alpha/bits/mathdef.h4
-rw-r--r--sysdeps/alpha/bits/setjmp.h4
-rw-r--r--sysdeps/alpha/bzero.S4
-rw-r--r--sysdeps/alpha/crti.S4
-rw-r--r--sysdeps/alpha/crtn.S4
-rw-r--r--sysdeps/alpha/div.S4
-rw-r--r--sysdeps/alpha/div_libc.h4
-rw-r--r--sysdeps/alpha/divl.S4
-rw-r--r--sysdeps/alpha/divq.S4
-rw-r--r--sysdeps/alpha/divqu.S11
-rw-r--r--sysdeps/alpha/dl-machine.h4
-rw-r--r--sysdeps/alpha/dl-procinfo.c4
-rw-r--r--sysdeps/alpha/dl-procinfo.h4
-rw-r--r--sysdeps/alpha/dl-sysdep.h4
-rw-r--r--sysdeps/alpha/dl-tls.h4
-rw-r--r--sysdeps/alpha/dl-trampoline.S4
-rw-r--r--sysdeps/alpha/e_sqrtl.c4
-rw-r--r--sysdeps/alpha/ffs.S4
-rw-r--r--sysdeps/alpha/fpu/bits/fenv.h6
-rw-r--r--sysdeps/alpha/fpu/cabsf.c4
-rw-r--r--sysdeps/alpha/fpu/cargf.c4
-rw-r--r--sysdeps/alpha/fpu/cfloat-compat.h4
-rw-r--r--sysdeps/alpha/fpu/cimagf.c4
-rw-r--r--sysdeps/alpha/fpu/conjf.c4
-rw-r--r--sysdeps/alpha/fpu/crealf.c4
-rw-r--r--sysdeps/alpha/fpu/e_sqrt.c4
-rw-r--r--sysdeps/alpha/fpu/fclrexcpt.c4
-rw-r--r--sysdeps/alpha/fpu/fedisblxcpt.c4
-rw-r--r--sysdeps/alpha/fpu/feenablxcpt.c4
-rw-r--r--sysdeps/alpha/fpu/fegetenv.c4
-rw-r--r--sysdeps/alpha/fpu/fegetexcept.c4
-rw-r--r--sysdeps/alpha/fpu/fegetmode.c4
-rw-r--r--sysdeps/alpha/fpu/fegetround.c4
-rw-r--r--sysdeps/alpha/fpu/feholdexcpt.c4
-rw-r--r--sysdeps/alpha/fpu/fenv_libc.h4
-rw-r--r--sysdeps/alpha/fpu/fesetenv.c4
-rw-r--r--sysdeps/alpha/fpu/fesetexcept.c4
-rw-r--r--sysdeps/alpha/fpu/fesetmode.c4
-rw-r--r--sysdeps/alpha/fpu/fesetround.c4
-rw-r--r--sysdeps/alpha/fpu/feupdateenv.c4
-rw-r--r--sysdeps/alpha/fpu/fgetexcptflg.c4
-rw-r--r--sysdeps/alpha/fpu/fpu_control.h4
-rw-r--r--sysdeps/alpha/fpu/fsetexcptflg.c4
-rw-r--r--sysdeps/alpha/fpu/ftestexcept.c4
-rw-r--r--sysdeps/alpha/fpu/get-rounding-mode.h4
-rw-r--r--sysdeps/alpha/fpu/libm-test-ulps104
-rw-r--r--sysdeps/alpha/fpu/math-barriers.h4
-rw-r--r--sysdeps/alpha/fpu/math_private.h18
-rw-r--r--sysdeps/alpha/fpu/s_cacosf.c4
-rw-r--r--sysdeps/alpha/fpu/s_cacoshf.c4
-rw-r--r--sysdeps/alpha/fpu/s_casinf.c4
-rw-r--r--sysdeps/alpha/fpu/s_casinhf.c4
-rw-r--r--sysdeps/alpha/fpu/s_catanf.c4
-rw-r--r--sysdeps/alpha/fpu/s_catanhf.c4
-rw-r--r--sysdeps/alpha/fpu/s_ccosf.c4
-rw-r--r--sysdeps/alpha/fpu/s_ccoshf.c4
-rw-r--r--sysdeps/alpha/fpu/s_cexpf.c4
-rw-r--r--sysdeps/alpha/fpu/s_clog10f.c4
-rw-r--r--sysdeps/alpha/fpu/s_clogf.c4
-rw-r--r--sysdeps/alpha/fpu/s_copysign.c5
-rw-r--r--sysdeps/alpha/fpu/s_copysignf.c5
-rw-r--r--sysdeps/alpha/fpu/s_cpowf.c4
-rw-r--r--sysdeps/alpha/fpu/s_cprojf.c4
-rw-r--r--sysdeps/alpha/fpu/s_csinf.c4
-rw-r--r--sysdeps/alpha/fpu/s_csinhf.c4
-rw-r--r--sysdeps/alpha/fpu/s_csqrtf.c4
-rw-r--r--sysdeps/alpha/fpu/s_ctanf.c4
-rw-r--r--sysdeps/alpha/fpu/s_ctanhf.c4
-rw-r--r--sysdeps/alpha/fpu/s_fabs.c4
-rw-r--r--sysdeps/alpha/fpu/s_fabsf.c4
-rw-r--r--sysdeps/alpha/fpu/s_isnan.c4
-rw-r--r--sysdeps/alpha/fpu/s_lrint.c4
-rw-r--r--sysdeps/alpha/fpu/s_lrintf.c4
-rw-r--r--sysdeps/alpha/fpu/s_lround.c4
-rw-r--r--sysdeps/alpha/fpu/s_lroundf.c4
-rw-r--r--sysdeps/alpha/fpu/s_rint.c5
-rw-r--r--sysdeps/alpha/fpu/s_rintf.c5
-rw-r--r--sysdeps/alpha/gccframe.h4
-rw-r--r--sysdeps/alpha/hp-timing.h22
-rw-r--r--sysdeps/alpha/htonl.S4
-rw-r--r--sysdeps/alpha/htons.S4
-rw-r--r--sysdeps/alpha/jmpbuf-offsets.h4
-rw-r--r--sysdeps/alpha/jmpbuf-unwind.h4
-rw-r--r--sysdeps/alpha/ldiv.S4
-rw-r--r--sysdeps/alpha/ldsodefs.h4
-rw-r--r--sysdeps/alpha/libc-tls.c4
-rw-r--r--sysdeps/alpha/lshift.S4
-rw-r--r--sysdeps/alpha/machine-gmon.h4
-rw-r--r--sysdeps/alpha/memchr.c4
-rw-r--r--sysdeps/alpha/memset.S4
-rw-r--r--sysdeps/alpha/memusage.h4
-rw-r--r--sysdeps/alpha/mul_1.S4
-rw-r--r--sysdeps/alpha/nptl/Makefile4
-rw-r--r--sysdeps/alpha/nptl/bits/pthreadtypes-arch.h61
-rw-r--r--sysdeps/alpha/nptl/bits/struct_rwlock.h43
-rw-r--r--sysdeps/alpha/nptl/pthread-offsets.h5
-rw-r--r--sysdeps/alpha/nptl/pthread_spin_lock.S4
-rw-r--r--sysdeps/alpha/nptl/pthread_spin_trylock.S4
-rw-r--r--sysdeps/alpha/nptl/pthreaddef.h4
-rw-r--r--sysdeps/alpha/nptl/tls.h4
-rw-r--r--sysdeps/alpha/nscd-types.h4
-rw-r--r--sysdeps/alpha/ots_add.c4
-rw-r--r--sysdeps/alpha/ots_cmp.c4
-rw-r--r--sysdeps/alpha/ots_cmpe.c4
-rw-r--r--sysdeps/alpha/ots_cvtqux.c4
-rw-r--r--sysdeps/alpha/ots_cvtqx.c4
-rw-r--r--sysdeps/alpha/ots_cvttx.c6
-rw-r--r--sysdeps/alpha/ots_cvtxq.c4
-rw-r--r--sysdeps/alpha/ots_cvtxt.c6
-rw-r--r--sysdeps/alpha/ots_div.c4
-rw-r--r--sysdeps/alpha/ots_mul.c4
-rw-r--r--sysdeps/alpha/ots_nintxq.c4
-rw-r--r--sysdeps/alpha/ots_sub.c4
-rw-r--r--sysdeps/alpha/rawmemchr.S4
-rw-r--r--sysdeps/alpha/reml.S4
-rw-r--r--sysdeps/alpha/remq.S4
-rw-r--r--sysdeps/alpha/remqu.S20
-rw-r--r--sysdeps/alpha/rshift.S4
-rw-r--r--sysdeps/alpha/setjmp.S4
-rw-r--r--sysdeps/alpha/sfp-machine.h4
-rw-r--r--sysdeps/alpha/sotruss-lib.c4
-rw-r--r--sysdeps/alpha/stackinfo.h4
-rw-r--r--sysdeps/alpha/start.S4
-rw-r--r--sysdeps/alpha/stpcpy.S4
-rw-r--r--sysdeps/alpha/stpncpy.S4
-rw-r--r--sysdeps/alpha/strcat.S4
-rw-r--r--sysdeps/alpha/strchr.S4
-rw-r--r--sysdeps/alpha/strcmp.S4
-rw-r--r--sysdeps/alpha/strcpy.S4
-rw-r--r--sysdeps/alpha/strlen.S4
-rw-r--r--sysdeps/alpha/strncat.S4
-rw-r--r--sysdeps/alpha/strncmp.S4
-rw-r--r--sysdeps/alpha/strncpy.S4
-rw-r--r--sysdeps/alpha/strrchr.S4
-rw-r--r--sysdeps/alpha/stxcpy.S4
-rw-r--r--sysdeps/alpha/stxncpy.S4
-rw-r--r--sysdeps/alpha/sub_n.S4
-rw-r--r--sysdeps/alpha/submul_1.S4
-rw-r--r--sysdeps/alpha/tst-audit.h4
-rw-r--r--sysdeps/alpha/udiv_qrnnd.S4
-rw-r--r--sysdeps/arm/__longjmp.S4
-rw-r--r--sysdeps/arm/add_n.S4
-rw-r--r--sysdeps/arm/addmul_1.S4
-rw-r--r--sysdeps/arm/aeabi_assert.c4
-rw-r--r--sysdeps/arm/aeabi_atexit.c4
-rw-r--r--sysdeps/arm/aeabi_errno_addr.c4
-rw-r--r--sysdeps/arm/aeabi_lcsts.c4
-rw-r--r--sysdeps/arm/aeabi_localeconv.c4
-rw-r--r--sysdeps/arm/aeabi_math.c4
-rw-r--r--sysdeps/arm/aeabi_mb_cur_max.c4
-rw-r--r--sysdeps/arm/aeabi_memclr.c4
-rw-r--r--sysdeps/arm/aeabi_memcpy.c4
-rw-r--r--sysdeps/arm/aeabi_memmove.c4
-rw-r--r--sysdeps/arm/aeabi_memset.c4
-rw-r--r--sysdeps/arm/aeabi_sighandlers.S4
-rw-r--r--sysdeps/arm/aeabi_unwind_cpp_pr1.c4
-rw-r--r--sysdeps/arm/arm-features.h4
-rw-r--r--sysdeps/arm/arm-ifunc.h7
-rw-r--r--sysdeps/arm/arm-mcount.S4
-rw-r--r--sysdeps/arm/arm-unwind-resume.S4
-rw-r--r--sysdeps/arm/armv6/rawmemchr.S4
-rw-r--r--sysdeps/arm/armv6/strchr.S4
-rw-r--r--sysdeps/arm/armv6/strcpy.S4
-rw-r--r--sysdeps/arm/armv6/strlen.S4
-rw-r--r--sysdeps/arm/armv6/strrchr.S4
-rw-r--r--sysdeps/arm/armv6t2/ffs.S4
-rw-r--r--sysdeps/arm/armv6t2/ffsll.S4
-rw-r--r--sysdeps/arm/armv6t2/memchr.S4
-rw-r--r--sysdeps/arm/armv6t2/strlen.S4
-rw-r--r--sysdeps/arm/armv7/multiarch/ifunc-impl-list.c4
-rw-r--r--sysdeps/arm/armv7/multiarch/ifunc-memchr.h4
-rw-r--r--sysdeps/arm/armv7/multiarch/ifunc-memcpy.h4
-rw-r--r--sysdeps/arm/armv7/multiarch/memchr.c4
-rw-r--r--sysdeps/arm/armv7/multiarch/memchr_neon.S4
-rw-r--r--sysdeps/arm/armv7/multiarch/memcpy.c4
-rw-r--r--sysdeps/arm/armv7/multiarch/memcpy_impl.S4
-rw-r--r--sysdeps/arm/armv7/strcmp.S4
-rw-r--r--sysdeps/arm/atomic-machine.h4
-rw-r--r--sysdeps/arm/backtrace.c4
-rw-r--r--sysdeps/arm/be/Implies1
-rw-r--r--sysdeps/arm/be/armv6/Implies1
-rw-r--r--sysdeps/arm/be/armv6t2/Implies1
-rw-r--r--sysdeps/arm/be/armv7/Implies1
-rw-r--r--sysdeps/arm/be/armv7/multiarch/Implies1
-rw-r--r--sysdeps/arm/bits/endian.h10
-rw-r--r--sysdeps/arm/bits/endianness.h15
-rw-r--r--sysdeps/arm/bits/fenv.h6
-rw-r--r--sysdeps/arm/bits/link.h4
-rw-r--r--sysdeps/arm/bits/setjmp.h4
-rw-r--r--sysdeps/arm/bsd-_setjmp.S4
-rw-r--r--sysdeps/arm/bsd-setjmp.S4
-rw-r--r--sysdeps/arm/crti.S4
-rw-r--r--sysdeps/arm/crtn.S4
-rw-r--r--sysdeps/arm/dl-irel.h6
-rw-r--r--sysdeps/arm/dl-lookupcfg.h4
-rw-r--r--sysdeps/arm/dl-machine.h10
-rw-r--r--sysdeps/arm/dl-sysdep.h4
-rw-r--r--sysdeps/arm/dl-tls.h4
-rw-r--r--sysdeps/arm/dl-tlsdesc.S4
-rw-r--r--sysdeps/arm/dl-tlsdesc.h4
-rw-r--r--sysdeps/arm/dl-trampoline.S4
-rw-r--r--sysdeps/arm/e_sqrt.c4
-rw-r--r--sysdeps/arm/e_sqrtf.c4
-rw-r--r--sysdeps/arm/fclrexcpt.c4
-rw-r--r--sysdeps/arm/fedisblxcpt.c4
-rw-r--r--sysdeps/arm/feenablxcpt.c4
-rw-r--r--sysdeps/arm/fegetenv.c4
-rw-r--r--sysdeps/arm/fegetexcept.c4
-rw-r--r--sysdeps/arm/fegetmode.c4
-rw-r--r--sysdeps/arm/fegetround.c4
-rw-r--r--sysdeps/arm/feholdexcpt.c4
-rw-r--r--sysdeps/arm/fenv_private.h12
-rw-r--r--sysdeps/arm/fesetenv.c4
-rw-r--r--sysdeps/arm/fesetexcept.c4
-rw-r--r--sysdeps/arm/fesetmode.c4
-rw-r--r--sysdeps/arm/fesetround.c4
-rw-r--r--sysdeps/arm/feupdateenv.c4
-rw-r--r--sysdeps/arm/fgetexcptflg.c4
-rw-r--r--sysdeps/arm/find_exidx.c4
-rw-r--r--sysdeps/arm/fix-fp-int-convert-overflow.h4
-rw-r--r--sysdeps/arm/fpu_control.h4
-rw-r--r--sysdeps/arm/fraiseexcpt.c4
-rw-r--r--sysdeps/arm/fsetexcptflg.c4
-rw-r--r--sysdeps/arm/ftestexcept.c4
-rw-r--r--sysdeps/arm/gcc-compat.h4
-rw-r--r--sysdeps/arm/gccframe.h4
-rw-r--r--sysdeps/arm/get-rounding-mode.h4
-rw-r--r--sysdeps/arm/gmp-mparam.h4
-rw-r--r--sysdeps/arm/include/bits/setjmp.h4
-rw-r--r--sysdeps/arm/jmpbuf-unwind.h4
-rw-r--r--sysdeps/arm/ldsodefs.h4
-rw-r--r--sysdeps/arm/le/Implies1
-rw-r--r--sysdeps/arm/le/armv6/Implies1
-rw-r--r--sysdeps/arm/le/armv6t2/Implies1
-rw-r--r--sysdeps/arm/le/armv7/Implies1
-rw-r--r--sysdeps/arm/le/armv7/multiarch/Implies1
-rw-r--r--sysdeps/arm/libc-tls.c4
-rw-r--r--sysdeps/arm/libm-test-ulps88
-rw-r--r--sysdeps/arm/machine-gmon.h4
-rw-r--r--sysdeps/arm/math-tests-trap.h26
-rw-r--r--sysdeps/arm/math-tests.h35
-rw-r--r--sysdeps/arm/math_private.h7
-rw-r--r--sysdeps/arm/memcpy.S4
-rw-r--r--sysdeps/arm/memmove.S4
-rw-r--r--sysdeps/arm/memset.S4
-rw-r--r--sysdeps/arm/memusage.h4
-rw-r--r--sysdeps/arm/nofpu/math-tests-exceptions.h29
-rw-r--r--sysdeps/arm/nofpu/math-tests-rounding.h29
-rw-r--r--sysdeps/arm/nptl/Makefile4
-rw-r--r--sysdeps/arm/nptl/bits/pthreadtypes-arch.h71
-rw-r--r--sysdeps/arm/nptl/bits/semaphore.h4
-rw-r--r--sysdeps/arm/nptl/pthread-offsets.h5
-rw-r--r--sysdeps/arm/nptl/pthreaddef.h4
-rw-r--r--sysdeps/arm/nptl/tls.h4
-rw-r--r--sysdeps/arm/preconfigure150
-rw-r--r--sysdeps/arm/preconfigure.ac7
-rw-r--r--sysdeps/arm/setfpucw.c4
-rw-r--r--sysdeps/arm/setjmp.S4
-rw-r--r--sysdeps/arm/sotruss-lib.c4
-rw-r--r--sysdeps/arm/stackinfo.h4
-rw-r--r--sysdeps/arm/stap-probe-machine.h22
-rw-r--r--sysdeps/arm/start.S4
-rw-r--r--sysdeps/arm/strlen.S4
-rw-r--r--sysdeps/arm/submul_1.S4
-rw-r--r--sysdeps/arm/sys/ucontext.h4
-rw-r--r--sysdeps/arm/sysdep.h8
-rw-r--r--sysdeps/arm/tlsdesc.c4
-rw-r--r--sysdeps/arm/tst-armtlsdescloc.c4
-rw-r--r--sysdeps/arm/tst-armtlsdesclocmod.c4
-rw-r--r--sysdeps/arm/tst-audit.h4
-rw-r--r--sysdeps/arm/unwind-dw2-fde-glibc.c4
-rw-r--r--sysdeps/arm/unwind-resume.h4
-rw-r--r--sysdeps/arm/unwind.h4
-rw-r--r--sysdeps/csky/Implies5
-rw-r--r--sysdeps/csky/Makefile9
-rw-r--r--sysdeps/csky/abiv2/__longjmp.S61
-rw-r--r--sysdeps/csky/abiv2/csky-mcount.S67
-rw-r--r--sysdeps/csky/abiv2/dl-trampoline.S50
-rw-r--r--sysdeps/csky/abiv2/memcmp.S142
-rw-r--r--sysdeps/csky/abiv2/memcpy.S238
-rw-r--r--sysdeps/csky/abiv2/memmove.S1
-rw-r--r--sysdeps/csky/abiv2/memset.S98
-rw-r--r--sysdeps/csky/abiv2/setjmp.S77
-rw-r--r--sysdeps/csky/abiv2/start.S112
-rw-r--r--sysdeps/csky/abiv2/strcmp.S156
-rw-r--r--sysdeps/csky/abiv2/strcpy.S127
-rw-r--r--sysdeps/csky/abiv2/strlen.S102
-rw-r--r--sysdeps/csky/abiv2/tls-macros.h55
-rw-r--r--sysdeps/csky/abort-instr.h2
-rw-r--r--sysdeps/csky/atomic-machine.h77
-rw-r--r--sysdeps/csky/bits/endianness.h14
-rw-r--r--sysdeps/csky/bits/fenv.h111
-rw-r--r--sysdeps/csky/bits/link.h55
-rw-r--r--sysdeps/csky/bits/setjmp.h34
-rw-r--r--sysdeps/csky/bsd-_setjmp.S1
-rw-r--r--sysdeps/csky/bsd-setjmp.S1
-rw-r--r--sysdeps/csky/configure4
-rw-r--r--sysdeps/csky/configure.ac4
-rw-r--r--sysdeps/csky/dl-machine.h362
-rw-r--r--sysdeps/csky/dl-procinfo.c62
-rw-r--r--sysdeps/csky/dl-procinfo.h59
-rw-r--r--sysdeps/csky/dl-sysdep.h23
-rw-r--r--sysdeps/csky/dl-tls.h26
-rw-r--r--sysdeps/csky/fpu/fclrexcpt.c42
-rw-r--r--sysdeps/csky/fpu/fedisblxcpt.c41
-rw-r--r--sysdeps/csky/fpu/feenablxcpt.c40
-rw-r--r--sysdeps/csky/fpu/fegetenv.c37
-rw-r--r--sysdeps/csky/fpu/fegetexcept.c32
-rw-r--r--sysdeps/csky/fpu/fegetmode.c28
-rw-r--r--sysdeps/csky/fpu/fegetround.c34
-rw-r--r--sysdeps/csky/fpu/feholdexcpt.c34
-rw-r--r--sysdeps/csky/fpu/fenv_libc.h30
-rw-r--r--sysdeps/csky/fpu/fenv_private.h280
-rw-r--r--sysdeps/csky/fpu/fesetenv.c59
-rw-r--r--sysdeps/csky/fpu/fesetexcept.c33
-rw-r--r--sysdeps/csky/fpu/fesetmode.c33
-rw-r--r--sysdeps/csky/fpu/fesetround.c32
-rw-r--r--sysdeps/csky/fpu/feupdateenv.c46
-rw-r--r--sysdeps/csky/fpu/fgetexcptflg.c32
-rw-r--r--sysdeps/csky/fpu/fix-fp-int-convert-overflow.h33
-rw-r--r--sysdeps/csky/fpu/fraiseexcpt.c126
-rw-r--r--sysdeps/csky/fpu/fsetexcptflg.c43
-rw-r--r--sysdeps/csky/fpu/ftestexcept.c30
-rw-r--r--sysdeps/csky/fpu/libm-test-ulps1640
-rw-r--r--sysdeps/csky/fpu/libm-test-ulps-name1
-rw-r--r--sysdeps/csky/fpu_control.h148
-rw-r--r--sysdeps/csky/gccframe.h21
-rw-r--r--sysdeps/csky/jmpbuf-unwind.h48
-rw-r--r--sysdeps/csky/ldsodefs.h42
-rw-r--r--sysdeps/csky/libc-tls.c32
-rw-r--r--sysdeps/csky/linkmap.h4
-rw-r--r--sysdeps/csky/machine-gmon.h32
-rw-r--r--sysdeps/csky/memusage.h21
-rw-r--r--sysdeps/csky/nofpu/Implies1
-rw-r--r--sysdeps/csky/nofpu/libm-test-ulps1694
-rw-r--r--sysdeps/csky/nofpu/libm-test-ulps-name1
-rw-r--r--sysdeps/csky/nptl/Makefile20
-rw-r--r--sysdeps/csky/nptl/bits/semaphore.h35
-rw-r--r--sysdeps/csky/nptl/pthreaddef.h32
-rw-r--r--sysdeps/csky/nptl/tcb-offsets.sym10
-rw-r--r--sysdeps/csky/nptl/tls.h156
-rw-r--r--sysdeps/csky/preconfigure37
-rw-r--r--sysdeps/csky/sfp-machine.h50
-rw-r--r--sysdeps/csky/sotruss-lib.c49
-rw-r--r--sysdeps/csky/stackinfo.h29
-rw-r--r--sysdeps/csky/sysdep.h84
-rw-r--r--sysdeps/csky/tininess.h1
-rw-r--r--sysdeps/csky/tst-audit.h23
-rw-r--r--sysdeps/generic/Makefile4
-rw-r--r--sysdeps/generic/_itoa.h4
-rw-r--r--sysdeps/generic/abort-instr.h4
-rw-r--r--sysdeps/generic/adaptive_spin_count.h22
-rw-r--r--sysdeps/generic/aio_misc.h4
-rw-r--r--sysdeps/generic/atomic-machine.h4
-rw-r--r--sysdeps/generic/device-nrs.h4
-rw-r--r--sysdeps/generic/dirstream.h4
-rw-r--r--sysdeps/generic/dl-cache.h4
-rw-r--r--sysdeps/generic/dl-dtprocnum.h4
-rw-r--r--sysdeps/generic/dl-dtv.h4
-rw-r--r--sysdeps/generic/dl-fcntl.h4
-rw-r--r--sysdeps/generic/dl-fileid.h4
-rw-r--r--sysdeps/generic/dl-fptr.h4
-rw-r--r--sysdeps/generic/dl-hash.h4
-rw-r--r--sysdeps/generic/dl-irel.h4
-rw-r--r--sysdeps/generic/dl-librecon.h4
-rw-r--r--sysdeps/generic/dl-lookupcfg.h4
-rw-r--r--sysdeps/generic/dl-machine.h4
-rw-r--r--sysdeps/generic/dl-mman.h4
-rw-r--r--sysdeps/generic/dl-osinfo.h4
-rw-r--r--sysdeps/generic/dl-procinfo.h4
-rw-r--r--sysdeps/generic/dl-prop.h4
-rw-r--r--sysdeps/generic/dl-sysdep.h4
-rw-r--r--sysdeps/generic/dl-unistd.h4
-rw-r--r--sysdeps/generic/dwarf2.h4
-rw-r--r--sysdeps/generic/elide.h4
-rw-r--r--sysdeps/generic/eloop-threshold.h4
-rw-r--r--sysdeps/generic/exit-thread.h4
-rw-r--r--sysdeps/generic/fd_to_filename.h8
-rw-r--r--sysdeps/generic/fenv_private.h327
-rw-r--r--sysdeps/generic/fips-private.h4
-rw-r--r--sysdeps/generic/fix-fp-int-compare-invalid.h4
-rw-r--r--sysdeps/generic/fix-fp-int-convert-overflow.h4
-rw-r--r--sysdeps/generic/fix-int-fp-convert-zero.h4
-rw-r--r--sysdeps/generic/fpu_control.h4
-rw-r--r--sysdeps/generic/framestate.c4
-rw-r--r--sysdeps/generic/gcc-compat.h4
-rw-r--r--sysdeps/generic/gccframe.h4
-rw-r--r--sysdeps/generic/get-rounding-mode.h4
-rw-r--r--sysdeps/generic/gmp-mparam.h4
-rw-r--r--sysdeps/generic/hp-timing-common.h14
-rw-r--r--sysdeps/generic/hp-timing.h34
-rw-r--r--sysdeps/generic/ifreq.h4
-rw-r--r--sysdeps/generic/ifunc-init.h4
-rw-r--r--sysdeps/generic/internal-signals.h4
-rw-r--r--sysdeps/generic/ldbl-classify-compat.h4
-rw-r--r--sysdeps/generic/ldconfig.h4
-rw-r--r--sysdeps/generic/ldsodefs.h82
-rw-r--r--sysdeps/generic/libc-lock.h4
-rw-r--r--sysdeps/generic/libc-mmap.h4
-rw-r--r--sysdeps/generic/libc-start.h4
-rw-r--r--sysdeps/generic/libc-tsd.h4
-rw-r--r--sysdeps/generic/libm-alias-double.h4
-rw-r--r--sysdeps/generic/libm-alias-float.h4
-rw-r--r--sysdeps/generic/libm-alias-float128.h4
-rw-r--r--sysdeps/generic/libm-alias-ldouble.h4
-rw-r--r--sysdeps/generic/libm-test-ulps2
-rw-r--r--sysdeps/generic/machine-gmon.h4
-rw-r--r--sysdeps/generic/machine-lock.h4
-rw-r--r--sysdeps/generic/machine-sp.h4
-rw-r--r--sysdeps/generic/malloc-alignment.h4
-rw-r--r--sysdeps/generic/malloc-machine.h4
-rw-r--r--sysdeps/generic/malloc-sysdep.h4
-rw-r--r--sysdeps/generic/math-barriers.h4
-rw-r--r--sysdeps/generic/math-nan-payload-double.h4
-rw-r--r--sysdeps/generic/math-nan-payload-float.h4
-rw-r--r--sysdeps/generic/math-tests-arch.h4
-rw-r--r--sysdeps/generic/math-tests-exceptions.h30
-rw-r--r--sysdeps/generic/math-tests-rounding.h30
-rw-r--r--sysdeps/generic/math-tests-snan-cast.h26
-rw-r--r--sysdeps/generic/math-tests-snan-payload.h28
-rw-r--r--sysdeps/generic/math-tests-snan.h30
-rw-r--r--sysdeps/generic/math-tests-trap-force.h30
-rw-r--r--sysdeps/generic/math-tests-trap.h32
-rw-r--r--sysdeps/generic/math-tests.h92
-rw-r--r--sysdeps/generic/math-type-macros-double.h4
-rw-r--r--sysdeps/generic/math-type-macros-float.h4
-rw-r--r--sysdeps/generic/math-type-macros-float128.h4
-rw-r--r--sysdeps/generic/math-type-macros-ldouble.h4
-rw-r--r--sysdeps/generic/math-type-macros.h6
-rw-r--r--sysdeps/generic/math-use-builtins.h63
-rw-r--r--sysdeps/generic/math_ldbl_opt.h5
-rw-r--r--sysdeps/generic/math_private.h448
-rw-r--r--sysdeps/generic/math_private_calls.h13
-rw-r--r--sysdeps/generic/memcopy.h10
-rw-r--r--sysdeps/generic/memusage.h20
-rw-r--r--sysdeps/generic/mmap_info.h16
-rw-r--r--sysdeps/generic/nan-high-order-bit.h4
-rw-r--r--sysdeps/generic/net/if.h4
-rw-r--r--sysdeps/generic/netinet/if_ether.h4
-rw-r--r--sysdeps/generic/netinet/in_systm.h4
-rw-r--r--sysdeps/generic/netinet/ip.h4
-rw-r--r--sysdeps/generic/nfs/nfs.h4
-rw-r--r--sysdeps/generic/not-cancel.h10
-rw-r--r--sysdeps/generic/not-errno.h6
-rw-r--r--sysdeps/generic/nscd-types.h4
-rw-r--r--sysdeps/generic/pagecopy.h4
-rw-r--r--sysdeps/generic/profil-counter.h6
-rw-r--r--sysdeps/generic/pty-private.h4
-rw-r--r--sysdeps/generic/register-dump.h4
-rw-r--r--sysdeps/generic/safe-fatal.h4
-rw-r--r--sysdeps/generic/setjmpP.h4
-rw-r--r--sysdeps/generic/sigcontextinfo.h15
-rw-r--r--sysdeps/generic/siglist.h4
-rw-r--r--sysdeps/generic/sigset-cvt-mask.h4
-rw-r--r--sysdeps/generic/sigsetops.h4
-rw-r--r--sysdeps/generic/single-thread.h25
-rw-r--r--sysdeps/generic/stackinfo.h4
-rw-r--r--sysdeps/generic/stap-probe-machine.h19
-rw-r--r--sysdeps/generic/startup.h4
-rw-r--r--sysdeps/generic/stdint.h319
-rw-r--r--sysdeps/generic/stdio-lock.h11
-rw-r--r--sysdeps/generic/string_private.h4
-rw-r--r--sysdeps/generic/symbol-hacks.h4
-rw-r--r--sysdeps/generic/sys/ptrace.h4
-rw-r--r--sysdeps/generic/sys/swap.h4
-rw-r--r--sysdeps/generic/sys/sysinfo.h4
-rw-r--r--sysdeps/generic/sys/ucontext.h4
-rw-r--r--sysdeps/generic/sysdep-cancel.h1
-rw-r--r--sysdeps/generic/sysdep.h4
-rw-r--r--sysdeps/generic/thread_state.h4
-rw-r--r--sysdeps/generic/time-clockid.h20
-rw-r--r--sysdeps/generic/tininess.h4
-rw-r--r--sysdeps/generic/tls-setup.h4
-rw-r--r--sysdeps/generic/tls.h4
-rw-r--r--sysdeps/generic/tst-stack-align.h4
-rw-r--r--sysdeps/generic/unwind-dw2-fde-glibc.c4
-rw-r--r--sysdeps/generic/unwind-dw2-fde.c4
-rw-r--r--sysdeps/generic/unwind-dw2-fde.h4
-rw-r--r--sysdeps/generic/unwind-dw2.c8
-rw-r--r--sysdeps/generic/unwind-pe.h8
-rw-r--r--sysdeps/generic/unwind-resume.h4
-rw-r--r--sysdeps/generic/unwind.h4
-rw-r--r--sysdeps/generic/utmp-equal.h38
-rw-r--r--sysdeps/gnu/Makefile4
-rw-r--r--sysdeps/gnu/bits/ipc.h4
-rw-r--r--sysdeps/gnu/bits/msq.h4
-rw-r--r--sysdeps/gnu/bits/sem.h4
-rw-r--r--sysdeps/gnu/bits/shm.h4
-rw-r--r--sysdeps/gnu/bits/utmp.h126
-rw-r--r--sysdeps/gnu/bits/utmpx.h16
-rw-r--r--sysdeps/gnu/errlist-compat.awk4
-rw-r--r--sysdeps/gnu/errlist.awk4
-rw-r--r--sysdeps/gnu/errlist.c15
-rw-r--r--sysdeps/gnu/getutmp.c4
-rw-r--r--sysdeps/gnu/glob-lstat-compat.c4
-rw-r--r--sysdeps/gnu/glob64-lstat-compat.c4
-rw-r--r--sysdeps/gnu/ifaddrs.c4
-rw-r--r--sysdeps/gnu/ldsodefs.h4
-rw-r--r--sysdeps/gnu/net/if.h4
-rw-r--r--sysdeps/gnu/netinet/ip_icmp.h14
-rw-r--r--sysdeps/gnu/netinet/tcp.h17
-rw-r--r--sysdeps/gnu/netinet/udp.h6
-rw-r--r--sysdeps/gnu/siglist.c4
-rw-r--r--sysdeps/gnu/sys/mtio.h4
-rw-r--r--sysdeps/gnu/unwind-resume.c4
-rw-r--r--sysdeps/gnu/updwtmp.c18
-rw-r--r--sysdeps/gnu/utmp_file.c18
-rw-r--r--sysdeps/gnu/utmpx.h4
-rw-r--r--sysdeps/hppa/Makefile4
-rw-r--r--sysdeps/hppa/__longjmp.c4
-rw-r--r--sysdeps/hppa/add_n.S4
-rw-r--r--sysdeps/hppa/bits/endian.h7
-rw-r--r--sysdeps/hppa/bits/endianness.h11
-rw-r--r--sysdeps/hppa/bits/link.h4
-rw-r--r--sysdeps/hppa/bits/setjmp.h4
-rw-r--r--sysdeps/hppa/bsd-_setjmp.S4
-rw-r--r--sysdeps/hppa/bsd-setjmp.S4
-rw-r--r--sysdeps/hppa/crti.S4
-rw-r--r--sysdeps/hppa/crtn.S4
-rw-r--r--sysdeps/hppa/dl-fptr.c2
-rw-r--r--sysdeps/hppa/dl-fptr.h4
-rw-r--r--sysdeps/hppa/dl-irel.h2
-rw-r--r--sysdeps/hppa/dl-lookupcfg.h4
-rw-r--r--sysdeps/hppa/dl-machine.h6
-rw-r--r--sysdeps/hppa/dl-symaddr.c4
-rw-r--r--sysdeps/hppa/dl-tls.h4
-rw-r--r--sysdeps/hppa/dl-trampoline.S4
-rw-r--r--sysdeps/hppa/fpu/bits/fenv.h6
-rw-r--r--sysdeps/hppa/fpu/fclrexcpt.c4
-rw-r--r--sysdeps/hppa/fpu/fedisblxcpt.c4
-rw-r--r--sysdeps/hppa/fpu/feenablxcpt.c4
-rw-r--r--sysdeps/hppa/fpu/fegetenv.c4
-rw-r--r--sysdeps/hppa/fpu/fegetexcept.c4
-rw-r--r--sysdeps/hppa/fpu/fegetmode.c4
-rw-r--r--sysdeps/hppa/fpu/fegetround.c4
-rw-r--r--sysdeps/hppa/fpu/feholdexcpt.c4
-rw-r--r--sysdeps/hppa/fpu/fesetenv.c4
-rw-r--r--sysdeps/hppa/fpu/fesetexcept.c4
-rw-r--r--sysdeps/hppa/fpu/fesetmode.c4
-rw-r--r--sysdeps/hppa/fpu/fesetround.c4
-rw-r--r--sysdeps/hppa/fpu/feupdateenv.c6
-rw-r--r--sysdeps/hppa/fpu/fgetexcptflg.c4
-rw-r--r--sysdeps/hppa/fpu/fpu_control.h4
-rw-r--r--sysdeps/hppa/fpu/fraiseexcpt.c4
-rw-r--r--sysdeps/hppa/fpu/fsetexcptflg.c4
-rw-r--r--sysdeps/hppa/fpu/ftestexcept.c4
-rw-r--r--sysdeps/hppa/fpu/libm-test-ulps88
-rw-r--r--sysdeps/hppa/gccframe.h4
-rw-r--r--sysdeps/hppa/get-rounding-mode.h4
-rw-r--r--sysdeps/hppa/hppa1.1/addmul_1.S4
-rw-r--r--sysdeps/hppa/hppa1.1/mul_1.S4
-rw-r--r--sysdeps/hppa/hppa1.1/s_signbit.c4
-rw-r--r--sysdeps/hppa/hppa1.1/submul_1.S4
-rw-r--r--sysdeps/hppa/hppa1.1/udiv_qrnnd.S4
-rw-r--r--sysdeps/hppa/jmpbuf-offsets.h4
-rw-r--r--sysdeps/hppa/jmpbuf-unwind.h8
-rw-r--r--sysdeps/hppa/ldsodefs.h4
-rw-r--r--sysdeps/hppa/libc-tls.c4
-rw-r--r--sysdeps/hppa/libgcc-compat.c4
-rw-r--r--sysdeps/hppa/lshift.S4
-rw-r--r--sysdeps/hppa/machine-gmon.h4
-rw-r--r--sysdeps/hppa/math-tests-snan-payload.h25
-rw-r--r--sysdeps/hppa/math-tests.h22
-rw-r--r--sysdeps/hppa/memusage.h4
-rw-r--r--sysdeps/hppa/nan-high-order-bit.h4
-rw-r--r--sysdeps/hppa/nptl/Makefile4
-rw-r--r--sysdeps/hppa/nptl/bits/pthreadtypes-arch.h49
-rw-r--r--sysdeps/hppa/nptl/bits/semaphore.h4
-rw-r--r--sysdeps/hppa/nptl/bits/struct_mutex.h53
-rw-r--r--sysdeps/hppa/nptl/bits/struct_rwlock.h58
-rw-r--r--sysdeps/hppa/nptl/jmpbuf-unwind.h4
-rw-r--r--sysdeps/hppa/nptl/pthread-offsets.h6
-rw-r--r--sysdeps/hppa/nptl/pthread_spin_init.c4
-rw-r--r--sysdeps/hppa/nptl/pthread_spin_unlock.c4
-rw-r--r--sysdeps/hppa/nptl/pthreaddef.h4
-rw-r--r--sysdeps/hppa/nptl/tls.h4
-rw-r--r--sysdeps/hppa/nptl/tst-oddstacklimit.c4
-rw-r--r--sysdeps/hppa/rshift.S4
-rw-r--r--sysdeps/hppa/setjmp.S4
-rw-r--r--sysdeps/hppa/sotruss-lib.c4
-rw-r--r--sysdeps/hppa/stackinfo.h4
-rw-r--r--sysdeps/hppa/start.S4
-rw-r--r--sysdeps/hppa/sub_n.S4
-rw-r--r--sysdeps/hppa/sysdep.h4
-rw-r--r--sysdeps/hppa/tst-audit.h4
-rw-r--r--sysdeps/hppa/udiv_qrnnd.S4
-rw-r--r--sysdeps/htl/bits/cancelation.h4
-rw-r--r--sysdeps/htl/bits/pthread-np.h4
-rw-r--r--sysdeps/htl/bits/pthread.h4
-rw-r--r--sysdeps/htl/bits/pthreadtypes.h4
-rw-r--r--sysdeps/htl/bits/semaphore.h4
-rw-r--r--sysdeps/htl/bits/thread-shared-types.h4
-rw-r--r--sysdeps/htl/bits/types/__pthread_key.h4
-rw-r--r--sysdeps/htl/bits/types/struct___pthread_attr.h4
-rw-r--r--sysdeps/htl/bits/types/struct___pthread_barrier.h4
-rw-r--r--sysdeps/htl/bits/types/struct___pthread_barrierattr.h4
-rw-r--r--sysdeps/htl/bits/types/struct___pthread_cond.h4
-rw-r--r--sysdeps/htl/bits/types/struct___pthread_condattr.h4
-rw-r--r--sysdeps/htl/bits/types/struct___pthread_mutex.h4
-rw-r--r--sysdeps/htl/bits/types/struct___pthread_mutexattr.h4
-rw-r--r--sysdeps/htl/bits/types/struct___pthread_once.h4
-rw-r--r--sysdeps/htl/bits/types/struct___pthread_rwlock.h4
-rw-r--r--sysdeps/htl/bits/types/struct___pthread_rwlockattr.h4
-rw-r--r--sysdeps/htl/flockfile.c4
-rw-r--r--sysdeps/htl/fork.h4
-rw-r--r--sysdeps/htl/ftrylockfile.c4
-rw-r--r--sysdeps/htl/funlockfile.c4
-rw-r--r--sysdeps/htl/libc-lockP.h4
-rw-r--r--sysdeps/htl/old_pt-atfork.c4
-rw-r--r--sysdeps/htl/pt-atfork.c4
-rw-r--r--sysdeps/htl/pt-attr-destroy.c4
-rw-r--r--sysdeps/htl/pt-attr-getdetachstate.c4
-rw-r--r--sysdeps/htl/pt-attr-getguardsize.c4
-rw-r--r--sysdeps/htl/pt-attr-getinheritsched.c4
-rw-r--r--sysdeps/htl/pt-attr-getschedparam.c4
-rw-r--r--sysdeps/htl/pt-attr-getschedpolicy.c4
-rw-r--r--sysdeps/htl/pt-attr-getscope.c4
-rw-r--r--sysdeps/htl/pt-attr-getstack.c4
-rw-r--r--sysdeps/htl/pt-attr-getstackaddr.c4
-rw-r--r--sysdeps/htl/pt-attr-getstacksize.c4
-rw-r--r--sysdeps/htl/pt-attr-init.c4
-rw-r--r--sysdeps/htl/pt-attr-setdetachstate.c4
-rw-r--r--sysdeps/htl/pt-attr-setguardsize.c4
-rw-r--r--sysdeps/htl/pt-attr-setinheritsched.c4
-rw-r--r--sysdeps/htl/pt-attr-setschedparam.c4
-rw-r--r--sysdeps/htl/pt-attr-setschedpolicy.c4
-rw-r--r--sysdeps/htl/pt-attr-setscope.c4
-rw-r--r--sysdeps/htl/pt-attr-setstack.c4
-rw-r--r--sysdeps/htl/pt-attr-setstackaddr.c4
-rw-r--r--sysdeps/htl/pt-attr-setstacksize.c4
-rw-r--r--sysdeps/htl/pt-attr.c4
-rw-r--r--sysdeps/htl/pt-barrier-destroy.c4
-rw-r--r--sysdeps/htl/pt-barrier-init.c6
-rw-r--r--sysdeps/htl/pt-barrier-wait.c4
-rw-r--r--sysdeps/htl/pt-barrier.c4
-rw-r--r--sysdeps/htl/pt-barrierattr-destroy.c4
-rw-r--r--sysdeps/htl/pt-barrierattr-getpshared.c4
-rw-r--r--sysdeps/htl/pt-barrierattr-init.c4
-rw-r--r--sysdeps/htl/pt-barrierattr-setpshared.c5
-rw-r--r--sysdeps/htl/pt-cond-brdcast.c4
-rw-r--r--sysdeps/htl/pt-cond-destroy.c4
-rw-r--r--sysdeps/htl/pt-cond-init.c6
-rw-r--r--sysdeps/htl/pt-cond-signal.c4
-rw-r--r--sysdeps/htl/pt-cond-timedwait.c7
-rw-r--r--sysdeps/htl/pt-cond-wait.c4
-rw-r--r--sysdeps/htl/pt-cond.c4
-rw-r--r--sysdeps/htl/pt-condattr-destroy.c4
-rw-r--r--sysdeps/htl/pt-condattr-getclock.c4
-rw-r--r--sysdeps/htl/pt-condattr-getpshared.c4
-rw-r--r--sysdeps/htl/pt-condattr-init.c4
-rw-r--r--sysdeps/htl/pt-condattr-setclock.c4
-rw-r--r--sysdeps/htl/pt-condattr-setpshared.c5
-rw-r--r--sysdeps/htl/pt-destroy-specific.c4
-rw-r--r--sysdeps/htl/pt-equal.c4
-rw-r--r--sysdeps/htl/pt-getconcurrency.c4
-rw-r--r--sysdeps/htl/pt-getcpuclockid.c4
-rw-r--r--sysdeps/htl/pt-getschedparam.c4
-rw-r--r--sysdeps/htl/pt-getspecific.c5
-rw-r--r--sysdeps/htl/pt-init-specific.c4
-rw-r--r--sysdeps/htl/pt-key-create.c4
-rw-r--r--sysdeps/htl/pt-key-delete.c4
-rw-r--r--sysdeps/htl/pt-key.h4
-rw-r--r--sysdeps/htl/pt-kill.c4
-rw-r--r--sysdeps/htl/pt-mutex-destroy.c4
-rw-r--r--sysdeps/htl/pt-mutex-getprioceiling.c4
-rw-r--r--sysdeps/htl/pt-mutex-init.c6
-rw-r--r--sysdeps/htl/pt-mutex-lock.c4
-rw-r--r--sysdeps/htl/pt-mutex-setprioceiling.c4
-rw-r--r--sysdeps/htl/pt-mutex-timedlock.c7
-rw-r--r--sysdeps/htl/pt-mutex-transfer-np.c4
-rw-r--r--sysdeps/htl/pt-mutex-trylock.c4
-rw-r--r--sysdeps/htl/pt-mutex-unlock.c4
-rw-r--r--sysdeps/htl/pt-mutexattr-destroy.c4
-rw-r--r--sysdeps/htl/pt-mutexattr-getprioceiling.c4
-rw-r--r--sysdeps/htl/pt-mutexattr-getprotocol.c4
-rw-r--r--sysdeps/htl/pt-mutexattr-getpshared.c4
-rw-r--r--sysdeps/htl/pt-mutexattr-gettype.c4
-rw-r--r--sysdeps/htl/pt-mutexattr-init.c4
-rw-r--r--sysdeps/htl/pt-mutexattr-setprioceiling.c4
-rw-r--r--sysdeps/htl/pt-mutexattr-setprotocol.c4
-rw-r--r--sysdeps/htl/pt-mutexattr-setpshared.c5
-rw-r--r--sysdeps/htl/pt-mutexattr-settype.c4
-rw-r--r--sysdeps/htl/pt-mutexattr.c4
-rw-r--r--sysdeps/htl/pt-once.c4
-rw-r--r--sysdeps/htl/pt-rwlock-attr.c4
-rw-r--r--sysdeps/htl/pt-rwlock-destroy.c4
-rw-r--r--sysdeps/htl/pt-rwlock-init.c6
-rw-r--r--sysdeps/htl/pt-rwlock-rdlock.c4
-rw-r--r--sysdeps/htl/pt-rwlock-timedrdlock.c7
-rw-r--r--sysdeps/htl/pt-rwlock-timedwrlock.c7
-rw-r--r--sysdeps/htl/pt-rwlock-tryrdlock.c4
-rw-r--r--sysdeps/htl/pt-rwlock-trywrlock.c4
-rw-r--r--sysdeps/htl/pt-rwlock-unlock.c4
-rw-r--r--sysdeps/htl/pt-rwlock-wrlock.c4
-rw-r--r--sysdeps/htl/pt-rwlockattr-destroy.c4
-rw-r--r--sysdeps/htl/pt-rwlockattr-getpshared.c4
-rw-r--r--sysdeps/htl/pt-rwlockattr-init.c4
-rw-r--r--sysdeps/htl/pt-rwlockattr-setpshared.c5
-rw-r--r--sysdeps/htl/pt-setconcurrency.c4
-rw-r--r--sysdeps/htl/pt-setschedparam.c4
-rw-r--r--sysdeps/htl/pt-setschedprio.c4
-rw-r--r--sysdeps/htl/pt-setspecific.c5
-rw-r--r--sysdeps/htl/pt-spin.c4
-rw-r--r--sysdeps/htl/pt-startup.c4
-rw-r--r--sysdeps/htl/pthread-functions.h4
-rw-r--r--sysdeps/htl/pthread.h4
-rw-r--r--sysdeps/htl/pthreadP.h6
-rw-r--r--sysdeps/htl/raise.c4
-rw-r--r--sysdeps/htl/sem-close.c4
-rw-r--r--sysdeps/htl/sem-destroy.c4
-rw-r--r--sysdeps/htl/sem-getvalue.c4
-rw-r--r--sysdeps/htl/sem-init.c4
-rw-r--r--sysdeps/htl/sem-open.c4
-rw-r--r--sysdeps/htl/sem-post.c4
-rw-r--r--sysdeps/htl/sem-timedwait.c7
-rw-r--r--sysdeps/htl/sem-trywait.c4
-rw-r--r--sysdeps/htl/sem-unlink.c4
-rw-r--r--sysdeps/htl/sem-wait.c4
-rw-r--r--sysdeps/htl/shm-directory.h4
-rw-r--r--sysdeps/htl/timer_routines.h4
-rw-r--r--sysdeps/hurd/htl/pt-kill.c4
-rw-r--r--sysdeps/hurd/stdc-predef.h4
-rw-r--r--sysdeps/i386/Versions3
-rw-r--r--sysdeps/i386/__longjmp.S4
-rw-r--r--sysdeps/i386/add_n.S4
-rw-r--r--sysdeps/i386/addmul_1.S4
-rw-r--r--sysdeps/i386/asm-syntax.h4
-rw-r--r--sysdeps/i386/atomic-machine.h545
-rw-r--r--sysdeps/i386/backtrace.c4
-rw-r--r--sysdeps/i386/bsd-_setjmp.S4
-rw-r--r--sysdeps/i386/bsd-setjmp.S4
-rw-r--r--sysdeps/i386/crti.S4
-rw-r--r--sysdeps/i386/crtn.S4
-rw-r--r--sysdeps/i386/dl-cet.c67
-rw-r--r--sysdeps/i386/dl-irel.h6
-rw-r--r--sysdeps/i386/dl-lookupcfg.h31
-rw-r--r--sysdeps/i386/dl-machine.h24
-rw-r--r--sysdeps/i386/dl-procinfo.c4
-rw-r--r--sysdeps/i386/dl-tls.h4
-rw-r--r--sysdeps/i386/dl-tlsdesc.S4
-rw-r--r--sysdeps/i386/dl-tlsdesc.h4
-rw-r--r--sysdeps/i386/dl-trampoline.S4
-rw-r--r--sysdeps/i386/ffs.c4
-rw-r--r--sysdeps/i386/fpu/e_acosh.S4
-rw-r--r--sysdeps/i386/fpu/e_acoshf.S4
-rw-r--r--sysdeps/i386/fpu/e_acoshl.S4
-rw-r--r--sysdeps/i386/fpu/e_atanh.S4
-rw-r--r--sysdeps/i386/fpu/e_atanhf.S4
-rw-r--r--sysdeps/i386/fpu/e_atanhl.S4
-rw-r--r--sysdeps/i386/fpu/e_exp_data.c (renamed from sysdeps/unix/sysv/linux/riscv/pt-vfork.S)0
-rw-r--r--sysdeps/i386/fpu/e_hypot.S4
-rw-r--r--sysdeps/i386/fpu/e_hypotf.S4
-rw-r--r--sysdeps/i386/fpu/e_log2_data.c1
-rw-r--r--sysdeps/i386/fpu/e_log_data.c1
-rw-r--r--sysdeps/i386/fpu/e_pow.S4
-rw-r--r--sysdeps/i386/fpu/e_pow_log_data.c1
-rw-r--r--sysdeps/i386/fpu/e_powl.S4
-rw-r--r--sysdeps/i386/fpu/e_rem_pio2.c3
-rw-r--r--sysdeps/i386/fpu/fclrexcpt.c4
-rw-r--r--sysdeps/i386/fpu/fedisblxcpt.c4
-rw-r--r--sysdeps/i386/fpu/feenablxcpt.c4
-rw-r--r--sysdeps/i386/fpu/fegetenv.c4
-rw-r--r--sysdeps/i386/fpu/fegetexcept.c4
-rw-r--r--sysdeps/i386/fpu/fegetmode.c4
-rw-r--r--sysdeps/i386/fpu/fegetround.c4
-rw-r--r--sysdeps/i386/fpu/feholdexcpt.c4
-rw-r--r--sysdeps/i386/fpu/fenv_private.h495
-rw-r--r--sysdeps/i386/fpu/fesetenv.c4
-rw-r--r--sysdeps/i386/fpu/fesetexcept.c4
-rw-r--r--sysdeps/i386/fpu/fesetmode.c4
-rw-r--r--sysdeps/i386/fpu/fesetround.c4
-rw-r--r--sysdeps/i386/fpu/feupdateenv.c4
-rw-r--r--sysdeps/i386/fpu/fgetexcptflg.c4
-rw-r--r--sysdeps/i386/fpu/fraiseexcpt.c4
-rw-r--r--sysdeps/i386/fpu/fsetexcptflg.c4
-rw-r--r--sysdeps/i386/fpu/ftestexcept.c4
-rw-r--r--sysdeps/i386/fpu/i386-math-asm.h4
-rw-r--r--sysdeps/i386/fpu/libm-test-ulps12
-rw-r--r--sysdeps/i386/fpu/math-tests-snan.h39
-rw-r--r--sysdeps/i386/fpu/math-tests.h27
-rw-r--r--sysdeps/i386/fpu/math_err.c1
-rw-r--r--sysdeps/i386/fpu/math_private.h7
-rw-r--r--sysdeps/i386/fpu/s_asinh.S4
-rw-r--r--sysdeps/i386/fpu/s_asinhf.S4
-rw-r--r--sysdeps/i386/fpu/s_asinhl.S4
-rw-r--r--sysdeps/i386/fpu/s_atanl.c1
-rw-r--r--sysdeps/i386/fpu/s_cbrt.S4
-rw-r--r--sysdeps/i386/fpu/s_cbrtf.S4
-rw-r--r--sysdeps/i386/fpu/s_cbrtl.S4
-rw-r--r--sysdeps/i386/fpu/s_expm1.S4
-rw-r--r--sysdeps/i386/fpu/s_expm1f.S4
-rw-r--r--sysdeps/i386/fpu/s_f32xaddf64.c5
-rw-r--r--sysdeps/i386/fpu/s_f32xdivf64.c4
-rw-r--r--sysdeps/i386/fpu/s_f32xmulf64.c4
-rw-r--r--sysdeps/i386/fpu/s_f32xsubf64.c5
-rw-r--r--sysdeps/i386/fpu/s_fdim.c5
-rw-r--r--sysdeps/i386/fpu/s_fmax.S4
-rw-r--r--sysdeps/i386/fpu/s_fmaxf.S4
-rw-r--r--sysdeps/i386/fpu/s_fmaxl.S4
-rw-r--r--sysdeps/i386/fpu/s_fmin.S4
-rw-r--r--sysdeps/i386/fpu/s_fminf.S4
-rw-r--r--sysdeps/i386/fpu/s_fminl.S4
-rw-r--r--sysdeps/i386/fpu/s_fpclassifyl.c4
-rw-r--r--sysdeps/i386/fpu/s_frexp.S4
-rw-r--r--sysdeps/i386/fpu/s_frexpf.S4
-rw-r--r--sysdeps/i386/fpu/s_frexpl.S4
-rw-r--r--sysdeps/i386/fpu/s_llrint.S4
-rw-r--r--sysdeps/i386/fpu/s_llrintf.S4
-rw-r--r--sysdeps/i386/fpu/s_llrintl.S4
-rw-r--r--sysdeps/i386/fpu/s_logbl.c1
-rw-r--r--sysdeps/i386/fpu/s_lrint.S4
-rw-r--r--sysdeps/i386/fpu/s_lrintf.S4
-rw-r--r--sysdeps/i386/fpu/s_lrintl.S4
-rw-r--r--sysdeps/i386/fpu/s_rintl.c2
-rw-r--r--sysdeps/i386/fpu/s_significandl.c1
-rw-r--r--sysdeps/i386/fpu/s_trunc.S4
-rw-r--r--sysdeps/i386/fpu/s_truncf.S4
-rw-r--r--sysdeps/i386/fpu/s_truncl.S4
-rw-r--r--sysdeps/i386/fpu/t_exp.c1
-rw-r--r--sysdeps/i386/fpu/w_exp.c1
-rw-r--r--sysdeps/i386/fpu/w_exp2.c1
-rw-r--r--sysdeps/i386/fpu/w_log.c1
-rw-r--r--sysdeps/i386/fpu/w_log2.c1
-rw-r--r--sysdeps/i386/fpu/w_pow.c1
-rw-r--r--sysdeps/i386/gccframe.h4
-rw-r--r--sysdeps/i386/gmp-mparam.h4
-rw-r--r--sysdeps/i386/htl/bits/pthreadtypes-arch.h4
-rw-r--r--sysdeps/i386/htl/machine-sp.h4
-rw-r--r--sysdeps/i386/htl/pt-machdep.h4
-rw-r--r--sysdeps/i386/htonl.S4
-rw-r--r--sysdeps/i386/htons.S4
-rw-r--r--sysdeps/i386/i386-mcount.S4
-rw-r--r--sysdeps/i386/i586/add_n.S4
-rw-r--r--sysdeps/i386/i586/addmul_1.S4
-rw-r--r--sysdeps/i386/i586/init-arch.h19
-rw-r--r--sysdeps/i386/i586/isa.h24
-rw-r--r--sysdeps/i386/i586/lshift.S4
-rw-r--r--sysdeps/i386/i586/memcopy.h4
-rw-r--r--sysdeps/i386/i586/memcpy.S4
-rw-r--r--sysdeps/i386/i586/memset.S4
-rw-r--r--sysdeps/i386/i586/mul_1.S4
-rw-r--r--sysdeps/i386/i586/rshift.S4
-rw-r--r--sysdeps/i386/i586/strchr.S4
-rw-r--r--sysdeps/i386/i586/strcpy.S4
-rw-r--r--sysdeps/i386/i586/strlen.S4
-rw-r--r--sysdeps/i386/i586/sub_n.S4
-rw-r--r--sysdeps/i386/i586/submul_1.S4
-rw-r--r--sysdeps/i386/i686/add_n.S4
-rw-r--r--sysdeps/i386/i686/dl-hash.h4
-rw-r--r--sysdeps/i386/i686/ffs.c4
-rw-r--r--sysdeps/i386/i686/fpu/multiarch/e_exp2f.c4
-rw-r--r--sysdeps/i386/i686/fpu/multiarch/e_expf.c6
-rw-r--r--sysdeps/i386/i686/fpu/multiarch/e_log2f.c6
-rw-r--r--sysdeps/i386/i686/fpu/multiarch/e_logf.c6
-rw-r--r--sysdeps/i386/i686/fpu/multiarch/e_powf.c4
-rw-r--r--sysdeps/i386/i686/fpu/multiarch/s_cosf-sse2.S4
-rw-r--r--sysdeps/i386/i686/fpu/multiarch/s_cosf.c6
-rw-r--r--sysdeps/i386/i686/fpu/multiarch/s_sincosf-sse2.S4
-rw-r--r--sysdeps/i386/i686/fpu/multiarch/s_sincosf.c6
-rw-r--r--sysdeps/i386/i686/fpu/multiarch/s_sinf-sse2.S4
-rw-r--r--sysdeps/i386/i686/fpu/multiarch/s_sinf.c6
-rw-r--r--sysdeps/i386/i686/fpu/s_fmax.S4
-rw-r--r--sysdeps/i386/i686/fpu/s_fmaxf.S4
-rw-r--r--sysdeps/i386/i686/fpu/s_fmaxl.S4
-rw-r--r--sysdeps/i386/i686/fpu/s_fmin.S4
-rw-r--r--sysdeps/i386/i686/fpu/s_fminf.S4
-rw-r--r--sysdeps/i386/i686/fpu/s_fminl.S4
-rw-r--r--sysdeps/i386/i686/hp-timing.h42
-rw-r--r--sysdeps/i386/i686/init-arch.h19
-rw-r--r--sysdeps/i386/i686/isa.h24
-rw-r--r--sysdeps/i386/i686/memcmp.S4
-rw-r--r--sysdeps/i386/i686/memcpy.S4
-rw-r--r--sysdeps/i386/i686/memmove.S4
-rw-r--r--sysdeps/i386/i686/mempcpy.S4
-rw-r--r--sysdeps/i386/i686/memset.S4
-rw-r--r--sysdeps/i386/i686/memusage.h4
-rw-r--r--sysdeps/i386/i686/multiarch/bcopy-ia32.S4
-rw-r--r--sysdeps/i386/i686/multiarch/bcopy.c4
-rw-r--r--sysdeps/i386/i686/multiarch/bzero-ia32.S5
-rw-r--r--sysdeps/i386/i686/multiarch/bzero.c4
-rw-r--r--sysdeps/i386/i686/multiarch/ifunc-impl-list.c4
-rw-r--r--sysdeps/i386/i686/multiarch/ifunc-memmove.h4
-rw-r--r--sysdeps/i386/i686/multiarch/ifunc-memset.h4
-rw-r--r--sysdeps/i386/i686/multiarch/ifunc-sse2-bsf.h4
-rw-r--r--sysdeps/i386/i686/multiarch/ifunc-sse2-ssse3.h4
-rw-r--r--sysdeps/i386/i686/multiarch/ifunc-sse2.h4
-rw-r--r--sysdeps/i386/i686/multiarch/ifunc-sse4_2.h4
-rw-r--r--sysdeps/i386/i686/multiarch/ifunc-ssse3-sse4_2.h4
-rw-r--r--sysdeps/i386/i686/multiarch/memchr-ia32.S4
-rw-r--r--sysdeps/i386/i686/multiarch/memchr-sse2-bsf.S4
-rw-r--r--sysdeps/i386/i686/multiarch/memchr-sse2.S4
-rw-r--r--sysdeps/i386/i686/multiarch/memchr.c4
-rw-r--r--sysdeps/i386/i686/multiarch/memcmp-ia32.S4
-rw-r--r--sysdeps/i386/i686/multiarch/memcmp-sse4.S4
-rw-r--r--sysdeps/i386/i686/multiarch/memcmp-ssse3.S4
-rw-r--r--sysdeps/i386/i686/multiarch/memcmp.c4
-rw-r--r--sysdeps/i386/i686/multiarch/memcpy-ia32.S4
-rw-r--r--sysdeps/i386/i686/multiarch/memcpy-sse2-unaligned.S4
-rw-r--r--sysdeps/i386/i686/multiarch/memcpy-ssse3-rep.S4
-rw-r--r--sysdeps/i386/i686/multiarch/memcpy-ssse3.S4
-rw-r--r--sysdeps/i386/i686/multiarch/memcpy.c4
-rw-r--r--sysdeps/i386/i686/multiarch/memcpy_chk-nonshared.S4
-rw-r--r--sysdeps/i386/i686/multiarch/memcpy_chk.c4
-rw-r--r--sysdeps/i386/i686/multiarch/memmove-ia32.S4
-rw-r--r--sysdeps/i386/i686/multiarch/memmove.c4
-rw-r--r--sysdeps/i386/i686/multiarch/memmove_chk-nonshared.S4
-rw-r--r--sysdeps/i386/i686/multiarch/memmove_chk.c4
-rw-r--r--sysdeps/i386/i686/multiarch/mempcpy-ia32.S4
-rw-r--r--sysdeps/i386/i686/multiarch/mempcpy.c4
-rw-r--r--sysdeps/i386/i686/multiarch/mempcpy_chk-nonshared.S4
-rw-r--r--sysdeps/i386/i686/multiarch/mempcpy_chk.c4
-rw-r--r--sysdeps/i386/i686/multiarch/memrchr-sse2-bsf.S4
-rw-r--r--sysdeps/i386/i686/multiarch/memrchr-sse2.S4
-rw-r--r--sysdeps/i386/i686/multiarch/memrchr.c4
-rw-r--r--sysdeps/i386/i686/multiarch/memset-ia32.S4
-rw-r--r--sysdeps/i386/i686/multiarch/memset-sse2-rep.S4
-rw-r--r--sysdeps/i386/i686/multiarch/memset-sse2.S4
-rw-r--r--sysdeps/i386/i686/multiarch/memset.c4
-rw-r--r--sysdeps/i386/i686/multiarch/memset_chk-nonshared.S4
-rw-r--r--sysdeps/i386/i686/multiarch/memset_chk.c4
-rw-r--r--sysdeps/i386/i686/multiarch/rawmemchr-ia32.S4
-rw-r--r--sysdeps/i386/i686/multiarch/rawmemchr.c4
-rw-r--r--sysdeps/i386/i686/multiarch/s_fma-fma.c4
-rw-r--r--sysdeps/i386/i686/multiarch/s_fma.c4
-rw-r--r--sysdeps/i386/i686/multiarch/s_fmaf-fma.c4
-rw-r--r--sysdeps/i386/i686/multiarch/s_fmaf.c4
-rw-r--r--sysdeps/i386/i686/multiarch/stpcpy-ia32.S4
-rw-r--r--sysdeps/i386/i686/multiarch/stpcpy.c4
-rw-r--r--sysdeps/i386/i686/multiarch/stpncpy-ia32.S4
-rw-r--r--sysdeps/i386/i686/multiarch/stpncpy.c4
-rw-r--r--sysdeps/i386/i686/multiarch/strcasecmp.c4
-rw-r--r--sysdeps/i386/i686/multiarch/strcasecmp_l.c4
-rw-r--r--sysdeps/i386/i686/multiarch/strcat-ia32.S4
-rw-r--r--sysdeps/i386/i686/multiarch/strcat-sse2.S4
-rw-r--r--sysdeps/i386/i686/multiarch/strcat-ssse3.S4
-rw-r--r--sysdeps/i386/i686/multiarch/strcat.c4
-rw-r--r--sysdeps/i386/i686/multiarch/strchr-ia32.S4
-rw-r--r--sysdeps/i386/i686/multiarch/strchr-sse2-bsf.S4
-rw-r--r--sysdeps/i386/i686/multiarch/strchr-sse2.S4
-rw-r--r--sysdeps/i386/i686/multiarch/strchr.c4
-rw-r--r--sysdeps/i386/i686/multiarch/strcmp-ia32.S4
-rw-r--r--sysdeps/i386/i686/multiarch/strcmp-sse4.S4
-rw-r--r--sysdeps/i386/i686/multiarch/strcmp-ssse3.S4
-rw-r--r--sysdeps/i386/i686/multiarch/strcmp.c4
-rw-r--r--sysdeps/i386/i686/multiarch/strcpy-ia32.S4
-rw-r--r--sysdeps/i386/i686/multiarch/strcpy-sse2.S4
-rw-r--r--sysdeps/i386/i686/multiarch/strcpy-ssse3.S4
-rw-r--r--sysdeps/i386/i686/multiarch/strcpy.c4
-rw-r--r--sysdeps/i386/i686/multiarch/strcspn-ia32.S4
-rw-r--r--sysdeps/i386/i686/multiarch/strcspn.c4
-rw-r--r--sysdeps/i386/i686/multiarch/strlen-ia32.S4
-rw-r--r--sysdeps/i386/i686/multiarch/strlen-sse2-bsf.S4
-rw-r--r--sysdeps/i386/i686/multiarch/strlen-sse2.S4
-rw-r--r--sysdeps/i386/i686/multiarch/strlen.c4
-rw-r--r--sysdeps/i386/i686/multiarch/strncase.c4
-rw-r--r--sysdeps/i386/i686/multiarch/strncase_l.c4
-rw-r--r--sysdeps/i386/i686/multiarch/strncat.c4
-rw-r--r--sysdeps/i386/i686/multiarch/strncmp.c4
-rw-r--r--sysdeps/i386/i686/multiarch/strncpy.c4
-rw-r--r--sysdeps/i386/i686/multiarch/strnlen.c4
-rw-r--r--sysdeps/i386/i686/multiarch/strpbrk-ia32.S4
-rw-r--r--sysdeps/i386/i686/multiarch/strpbrk.c4
-rw-r--r--sysdeps/i386/i686/multiarch/strrchr-ia32.S4
-rw-r--r--sysdeps/i386/i686/multiarch/strrchr-sse2-bsf.S4
-rw-r--r--sysdeps/i386/i686/multiarch/strrchr-sse2.S4
-rw-r--r--sysdeps/i386/i686/multiarch/strrchr.c4
-rw-r--r--sysdeps/i386/i686/multiarch/strspn-ia32.S4
-rw-r--r--sysdeps/i386/i686/multiarch/strspn.c4
-rw-r--r--sysdeps/i386/i686/multiarch/wcschr-sse2.S4
-rw-r--r--sysdeps/i386/i686/multiarch/wcschr.c4
-rw-r--r--sysdeps/i386/i686/multiarch/wcscmp-sse2.S4
-rw-r--r--sysdeps/i386/i686/multiarch/wcscmp.c4
-rw-r--r--sysdeps/i386/i686/multiarch/wcscpy-ssse3.S4
-rw-r--r--sysdeps/i386/i686/multiarch/wcscpy.c4
-rw-r--r--sysdeps/i386/i686/multiarch/wcslen-sse2.S4
-rw-r--r--sysdeps/i386/i686/multiarch/wcslen.c4
-rw-r--r--sysdeps/i386/i686/multiarch/wcsrchr-sse2.S4
-rw-r--r--sysdeps/i386/i686/multiarch/wcsrchr.c4
-rw-r--r--sysdeps/i386/i686/multiarch/wmemcmp.c7
-rw-r--r--sysdeps/i386/i686/nptl/tls.h4
-rw-r--r--sysdeps/i386/i686/pthread_spin_trylock.S4
-rw-r--r--sysdeps/i386/i686/stack-aliasing.h4
-rw-r--r--sysdeps/i386/i686/strcmp.S4
-rw-r--r--sysdeps/i386/i686/tst-stack-align.h4
-rw-r--r--sysdeps/i386/init-arch.h19
-rw-r--r--sysdeps/i386/isa.h24
-rw-r--r--sysdeps/i386/jmpbuf-offsets.h4
-rw-r--r--sysdeps/i386/jmpbuf-unwind.h4
-rw-r--r--sysdeps/i386/ldbl2mpn.c4
-rw-r--r--sysdeps/i386/lshift.S4
-rw-r--r--sysdeps/i386/machine-gmon.h4
-rw-r--r--sysdeps/i386/malloc-alignment.h4
-rw-r--r--sysdeps/i386/memchr.S4
-rw-r--r--sysdeps/i386/memcmp.S4
-rw-r--r--sysdeps/i386/memcopy.h4
-rw-r--r--sysdeps/i386/memcpy.S4
-rw-r--r--sysdeps/i386/memcpy_chk.S4
-rw-r--r--sysdeps/i386/memmove_chk.S4
-rw-r--r--sysdeps/i386/mempcpy_chk.S4
-rw-r--r--sysdeps/i386/memset.S4
-rw-r--r--sysdeps/i386/memset_chk.S4
-rw-r--r--sysdeps/i386/memusage.h4
-rw-r--r--sysdeps/i386/mul_1.S4
-rw-r--r--sysdeps/i386/nptl/Makefile4
-rw-r--r--sysdeps/i386/nptl/pthread-offsets.h6
-rw-r--r--sysdeps/i386/nptl/pthread_spin_init.c4
-rw-r--r--sysdeps/i386/nptl/pthread_spin_lock.S4
-rw-r--r--sysdeps/i386/nptl/pthread_spin_unlock.S4
-rw-r--r--sysdeps/i386/nptl/pthreaddef.h4
-rw-r--r--sysdeps/i386/nptl/tls.h41
-rw-r--r--sysdeps/i386/pthread_spin_trylock.S4
-rw-r--r--sysdeps/i386/rawmemchr.S4
-rw-r--r--sysdeps/i386/rshift.S4
-rw-r--r--sysdeps/i386/setfpucw.c4
-rw-r--r--sysdeps/i386/setjmp.S4
-rw-r--r--sysdeps/i386/stackinfo.h4
-rw-r--r--sysdeps/i386/start.S14
-rw-r--r--sysdeps/i386/stpcpy.S4
-rw-r--r--sysdeps/i386/stpncpy.S4
-rw-r--r--sysdeps/i386/strcat.S4
-rw-r--r--sysdeps/i386/strchr.S4
-rw-r--r--sysdeps/i386/strchrnul.S4
-rw-r--r--sysdeps/i386/strcspn.S4
-rw-r--r--sysdeps/i386/string-inlines.c4
-rw-r--r--sysdeps/i386/strlen.S4
-rw-r--r--sysdeps/i386/strlen.c4
-rw-r--r--sysdeps/i386/strpbrk.S4
-rw-r--r--sysdeps/i386/strrchr.S4
-rw-r--r--sysdeps/i386/strspn.S4
-rw-r--r--sysdeps/i386/sub_n.S4
-rw-r--r--sysdeps/i386/submul_1.S4
-rw-r--r--sysdeps/i386/symbol-hacks.h4
-rw-r--r--sysdeps/i386/sys/ucontext.h4
-rw-r--r--sysdeps/i386/sysdep.h4
-rw-r--r--sysdeps/i386/tlsdesc.c4
-rw-r--r--sysdeps/i386/tst-audit.h4
-rw-r--r--sysdeps/i386/tst-audit3.c4
-rw-r--r--sysdeps/i386/tst-audit3.h4
-rw-r--r--sysdeps/i386/tst-auditmod3a.c4
-rw-r--r--sysdeps/i386/tst-auditmod3b.c4
-rwxr-xr-xsysdeps/i386/tst-ld-sse-use.sh4
-rw-r--r--sysdeps/i386/tst-stack-align.h4
-rw-r--r--sysdeps/ia64/_mcount.S4
-rw-r--r--sysdeps/ia64/atomic-machine.h4
-rw-r--r--sysdeps/ia64/bits/endianness.h11
-rw-r--r--sysdeps/ia64/bits/fenv.h6
-rw-r--r--sysdeps/ia64/bits/floatn.h4
-rw-r--r--sysdeps/ia64/bits/fp-logb.h4
-rw-r--r--sysdeps/ia64/bits/link.h4
-rw-r--r--sysdeps/ia64/bits/xtitypes.h33
-rw-r--r--sysdeps/ia64/bzero.S4
-rw-r--r--sysdeps/ia64/crti.S4
-rw-r--r--sysdeps/ia64/crtn.S4
-rw-r--r--sysdeps/ia64/dl-dtprocnum.h4
-rw-r--r--sysdeps/ia64/dl-fptr.h4
-rw-r--r--sysdeps/ia64/dl-lookupcfg.h4
-rw-r--r--sysdeps/ia64/dl-machine.h4
-rw-r--r--sysdeps/ia64/dl-sysdep.h4
-rw-r--r--sysdeps/ia64/dl-tls.h4
-rw-r--r--sysdeps/ia64/dl-trampoline.S4
-rw-r--r--sysdeps/ia64/fpu/bits/math-finite.h24
-rw-r--r--sysdeps/ia64/fpu/e_exp.S6
-rw-r--r--sysdeps/ia64/fpu/e_exp2.S12
-rw-r--r--sysdeps/ia64/fpu/e_exp2f.S6
-rw-r--r--sysdeps/ia64/fpu/e_exp_data.c1
-rw-r--r--sysdeps/ia64/fpu/e_log.S6
-rw-r--r--sysdeps/ia64/fpu/e_log2.S12
-rw-r--r--sysdeps/ia64/fpu/e_log2_data.c1
-rw-r--r--sysdeps/ia64/fpu/e_log2f.S6
-rw-r--r--sysdeps/ia64/fpu/e_log_data.c1
-rw-r--r--sysdeps/ia64/fpu/e_pow.S12
-rw-r--r--sysdeps/ia64/fpu/e_pow_log_data.c1
-rw-r--r--sysdeps/ia64/fpu/e_powf.S6
-rw-r--r--sysdeps/ia64/fpu/e_rem_pio2.c1
-rw-r--r--sysdeps/ia64/fpu/e_rem_pio2f.c1
-rw-r--r--sysdeps/ia64/fpu/fclrexcpt.c4
-rw-r--r--sysdeps/ia64/fpu/fedisblxcpt.c4
-rw-r--r--sysdeps/ia64/fpu/feenablxcpt.c4
-rw-r--r--sysdeps/ia64/fpu/fegetenv.c4
-rw-r--r--sysdeps/ia64/fpu/fegetexcept.c4
-rw-r--r--sysdeps/ia64/fpu/fegetmode.c4
-rw-r--r--sysdeps/ia64/fpu/fegetround.c4
-rw-r--r--sysdeps/ia64/fpu/feholdexcpt.c4
-rw-r--r--sysdeps/ia64/fpu/fesetenv.c4
-rw-r--r--sysdeps/ia64/fpu/fesetexcept.c4
-rw-r--r--sysdeps/ia64/fpu/fesetmode.c4
-rw-r--r--sysdeps/ia64/fpu/fesetround.c4
-rw-r--r--sysdeps/ia64/fpu/feupdateenv.c4
-rw-r--r--sysdeps/ia64/fpu/fgetexcptflg.c4
-rw-r--r--sysdeps/ia64/fpu/fraiseexcpt.c4
-rw-r--r--sysdeps/ia64/fpu/fsetexcptflg.c4
-rw-r--r--sysdeps/ia64/fpu/ftestexcept.c4
-rw-r--r--sysdeps/ia64/fpu/get-rounding-mode.h4
-rw-r--r--sysdeps/ia64/fpu/k_rem_pio2f.c1
-rw-r--r--sysdeps/ia64/fpu/lgamma-compat.h4
-rw-r--r--sysdeps/ia64/fpu/libm_sincos_large.S2
-rw-r--r--sysdeps/ia64/fpu/libm_sincosl.S2
-rw-r--r--sysdeps/ia64/fpu/math_err.c1
-rw-r--r--sysdeps/ia64/fpu/math_ldbl.h4
-rw-r--r--sysdeps/ia64/fpu/printf_fphex.c4
-rw-r--r--sysdeps/ia64/fpu/s_copysign.S4
-rw-r--r--sysdeps/ia64/fpu/s_cosl.S2
-rw-r--r--sysdeps/ia64/fpu/s_finite.S4
-rw-r--r--sysdeps/ia64/fpu/s_fpclassify.S4
-rw-r--r--sysdeps/ia64/fpu/s_isinf.S4
-rw-r--r--sysdeps/ia64/fpu/s_isnan.S4
-rw-r--r--sysdeps/ia64/fpu/s_matherrf.c1
-rw-r--r--sysdeps/ia64/fpu/s_matherrl.c1
-rw-r--r--sysdeps/ia64/fpu/s_signbit.S4
-rw-r--r--sysdeps/ia64/fpu/s_sincosf_data.c1
-rw-r--r--sysdeps/ia64/fpu/sfp-machine.h12
-rw-r--r--sysdeps/ia64/fpu/t_exp.c1
-rw-r--r--sysdeps/ia64/fpu/w_log1p.c4
-rw-r--r--sysdeps/ia64/fpu/w_log1pf.c4
-rw-r--r--sysdeps/ia64/fpu/w_log1pl.c4
-rw-r--r--sysdeps/ia64/fpu/w_scalblnf.c4
-rw-r--r--sysdeps/ia64/gccframe.h4
-rw-r--r--sysdeps/ia64/hp-timing.h8
-rw-r--r--sysdeps/ia64/htonl.S4
-rw-r--r--sysdeps/ia64/htons.S4
-rw-r--r--sysdeps/ia64/ieee754.h8
-rw-r--r--sysdeps/ia64/jmpbuf-unwind.h4
-rw-r--r--sysdeps/ia64/ldsodefs.h4
-rw-r--r--sysdeps/ia64/libc-tls.c4
-rw-r--r--sysdeps/ia64/machine-gmon.h4
-rw-r--r--sysdeps/ia64/math-tests-snan.h34
-rw-r--r--sysdeps/ia64/math-tests.h25
-rw-r--r--sysdeps/ia64/memccpy.S4
-rw-r--r--sysdeps/ia64/memchr.S4
-rw-r--r--sysdeps/ia64/memcmp.S4
-rw-r--r--sysdeps/ia64/memcpy.S4
-rw-r--r--sysdeps/ia64/memmove.S4
-rw-r--r--sysdeps/ia64/memset.S4
-rw-r--r--sysdeps/ia64/memusage.h4
-rw-r--r--sysdeps/ia64/nptl/Makefile4
-rw-r--r--sysdeps/ia64/nptl/bits/pthreadtypes-arch.h63
-rw-r--r--sysdeps/ia64/nptl/bits/semaphore.h4
-rw-r--r--sysdeps/ia64/nptl/bits/struct_rwlock.h43
-rw-r--r--sysdeps/ia64/nptl/pthread-offsets.h5
-rw-r--r--sysdeps/ia64/nptl/pthread_spin_lock.c4
-rw-r--r--sysdeps/ia64/nptl/pthread_spin_trylock.c4
-rw-r--r--sysdeps/ia64/nptl/pthread_spin_unlock.c4
-rw-r--r--sysdeps/ia64/nptl/pthreaddef.h4
-rw-r--r--sysdeps/ia64/nptl/tls.h4
-rw-r--r--sysdeps/ia64/sched_cpucount.c4
-rw-r--r--sysdeps/ia64/softpipe.h4
-rw-r--r--sysdeps/ia64/sotruss-lib.c4
-rw-r--r--sysdeps/ia64/stackinfo.h4
-rw-r--r--sysdeps/ia64/start.S4
-rw-r--r--sysdeps/ia64/strchr.S4
-rw-r--r--sysdeps/ia64/strcmp.S4
-rw-r--r--sysdeps/ia64/strcpy.S4
-rw-r--r--sysdeps/ia64/strlen.S4
-rw-r--r--sysdeps/ia64/strncmp.S4
-rw-r--r--sysdeps/ia64/strncpy.S4
-rw-r--r--sysdeps/ia64/sysdep.h4
-rw-r--r--sysdeps/ia64/tst-audit.h4
-rw-r--r--sysdeps/ieee754/dbl-64/Makefile1
-rw-r--r--sysdeps/ieee754/dbl-64/MathLib.h4
-rw-r--r--sysdeps/ieee754/dbl-64/asincos.tbl4
-rw-r--r--sysdeps/ieee754/dbl-64/atnat.h4
-rw-r--r--sysdeps/ieee754/dbl-64/atnat2.h4
-rw-r--r--sysdeps/ieee754/dbl-64/branred.c4
-rw-r--r--sysdeps/ieee754/dbl-64/branred.h4
-rw-r--r--sysdeps/ieee754/dbl-64/dbl2mpn.c4
-rw-r--r--sysdeps/ieee754/dbl-64/dla.h4
-rw-r--r--sysdeps/ieee754/dbl-64/doasin.c4
-rw-r--r--sysdeps/ieee754/dbl-64/doasin.h4
-rw-r--r--sysdeps/ieee754/dbl-64/dosincos.c4
-rw-r--r--sysdeps/ieee754/dbl-64/dosincos.h4
-rw-r--r--sysdeps/ieee754/dbl-64/e_asin.c4
-rw-r--r--sysdeps/ieee754/dbl-64/e_atan2.c7
-rw-r--r--sysdeps/ieee754/dbl-64/e_atanh.c6
-rw-r--r--sysdeps/ieee754/dbl-64/e_exp.c488
-rw-r--r--sysdeps/ieee754/dbl-64/e_exp10.c4
-rw-r--r--sysdeps/ieee754/dbl-64/e_exp2.c236
-rw-r--r--sysdeps/ieee754/dbl-64/e_exp_data.c196
-rw-r--r--sysdeps/ieee754/dbl-64/e_gamma_r.c25
-rw-r--r--sysdeps/ieee754/dbl-64/e_jn.c7
-rw-r--r--sysdeps/ieee754/dbl-64/e_lgamma_r.c4
-rw-r--r--sysdeps/ieee754/dbl-64/e_log.c273
-rw-r--r--sysdeps/ieee754/dbl-64/e_log2.c254
-rw-r--r--sysdeps/ieee754/dbl-64/e_log2_data.c220
-rw-r--r--sysdeps/ieee754/dbl-64/e_log_data.c347
-rw-r--r--sysdeps/ieee754/dbl-64/e_pow.c667
-rw-r--r--sysdeps/ieee754/dbl-64/e_pow_log_data.c195
-rw-r--r--sysdeps/ieee754/dbl-64/e_rem_pio2.c193
-rw-r--r--sysdeps/ieee754/dbl-64/e_remainder.c5
-rw-r--r--sysdeps/ieee754/dbl-64/e_sqrt.c5
-rw-r--r--sysdeps/ieee754/dbl-64/eexp.tbl172
-rw-r--r--sysdeps/ieee754/dbl-64/gamma_product.c5
-rw-r--r--sysdeps/ieee754/dbl-64/gamma_productf.c4
-rw-r--r--sysdeps/ieee754/dbl-64/k_cos.c1
-rw-r--r--sysdeps/ieee754/dbl-64/k_rem_pio2.c4
-rw-r--r--sysdeps/ieee754/dbl-64/k_sin.c1
-rw-r--r--sysdeps/ieee754/dbl-64/lgamma_neg.c9
-rw-r--r--sysdeps/ieee754/dbl-64/lgamma_product.c4
-rw-r--r--sysdeps/ieee754/dbl-64/math_config.h190
-rw-r--r--sysdeps/ieee754/dbl-64/math_err.c92
-rw-r--r--sysdeps/ieee754/dbl-64/mpa-arch.h4
-rw-r--r--sysdeps/ieee754/dbl-64/mpa.c4
-rw-r--r--sysdeps/ieee754/dbl-64/mpa.h4
-rw-r--r--sysdeps/ieee754/dbl-64/mpatan.c4
-rw-r--r--sysdeps/ieee754/dbl-64/mpatan.h4
-rw-r--r--sysdeps/ieee754/dbl-64/mpatan2.c4
-rw-r--r--sysdeps/ieee754/dbl-64/mpn2dbl.c4
-rw-r--r--sysdeps/ieee754/dbl-64/mpsqrt.c4
-rw-r--r--sysdeps/ieee754/dbl-64/mpsqrt.h4
-rw-r--r--sysdeps/ieee754/dbl-64/mptan.c4
-rw-r--r--sysdeps/ieee754/dbl-64/mydefs.h4
-rw-r--r--sysdeps/ieee754/dbl-64/powtwo.tbl4
-rw-r--r--sysdeps/ieee754/dbl-64/root.tbl4
-rw-r--r--sysdeps/ieee754/dbl-64/s_asinh.c2
-rw-r--r--sysdeps/ieee754/dbl-64/s_atan.c8
-rw-r--r--sysdeps/ieee754/dbl-64/s_cbrt.c5
-rw-r--r--sysdeps/ieee754/dbl-64/s_ceil.c66
-rw-r--r--sysdeps/ieee754/dbl-64/s_copysign.c10
-rw-r--r--sysdeps/ieee754/dbl-64/s_f32xaddf64.c4
-rw-r--r--sysdeps/ieee754/dbl-64/s_f32xdivf64.c4
-rw-r--r--sysdeps/ieee754/dbl-64/s_f32xmulf64.c4
-rw-r--r--sysdeps/ieee754/dbl-64/s_f32xsubf64.c4
-rw-r--r--sysdeps/ieee754/dbl-64/s_fadd.c4
-rw-r--r--sysdeps/ieee754/dbl-64/s_fdiv.c4
-rw-r--r--sysdeps/ieee754/dbl-64/s_finite.c22
-rw-r--r--sysdeps/ieee754/dbl-64/s_floor.c98
-rw-r--r--sysdeps/ieee754/dbl-64/s_fma.c6
-rw-r--r--sysdeps/ieee754/dbl-64/s_fmaf.c6
-rw-r--r--sysdeps/ieee754/dbl-64/s_fmul.c4
-rw-r--r--sysdeps/ieee754/dbl-64/s_fpclassify.c4
-rw-r--r--sysdeps/ieee754/dbl-64/s_fromfp_main.c4
-rw-r--r--sysdeps/ieee754/dbl-64/s_fsub.c4
-rw-r--r--sysdeps/ieee754/dbl-64/s_getpayload.c4
-rw-r--r--sysdeps/ieee754/dbl-64/s_isinf.c15
-rw-r--r--sysdeps/ieee754/dbl-64/s_isnan.c17
-rw-r--r--sysdeps/ieee754/dbl-64/s_issignaling.c4
-rw-r--r--sysdeps/ieee754/dbl-64/s_llrint.c4
-rw-r--r--sysdeps/ieee754/dbl-64/s_llround.c4
-rw-r--r--sysdeps/ieee754/dbl-64/s_logb.c61
-rw-r--r--sysdeps/ieee754/dbl-64/s_lrint.c4
-rw-r--r--sysdeps/ieee754/dbl-64/s_lround.c4
-rw-r--r--sysdeps/ieee754/dbl-64/s_nearbyint.c50
-rw-r--r--sysdeps/ieee754/dbl-64/s_nextup.c4
-rw-r--r--sysdeps/ieee754/dbl-64/s_remquo.c4
-rw-r--r--sysdeps/ieee754/dbl-64/s_rint.c44
-rw-r--r--sysdeps/ieee754/dbl-64/s_round.c50
-rw-r--r--sysdeps/ieee754/dbl-64/s_roundeven.c4
-rw-r--r--sysdeps/ieee754/dbl-64/s_scalbln.c6
-rw-r--r--sysdeps/ieee754/dbl-64/s_scalbn.c6
-rw-r--r--sysdeps/ieee754/dbl-64/s_setpayload_main.c4
-rw-r--r--sysdeps/ieee754/dbl-64/s_signbit.c4
-rw-r--r--sysdeps/ieee754/dbl-64/s_sin.c21
-rw-r--r--sysdeps/ieee754/dbl-64/s_sincos.c7
-rw-r--r--sysdeps/ieee754/dbl-64/s_tan.c5
-rw-r--r--sysdeps/ieee754/dbl-64/s_totalorder.c37
-rw-r--r--sysdeps/ieee754/dbl-64/s_totalordermag.c37
-rw-r--r--sysdeps/ieee754/dbl-64/s_trunc.c36
-rw-r--r--sysdeps/ieee754/dbl-64/sincos32.c4
-rw-r--r--sysdeps/ieee754/dbl-64/sincos32.h4
-rw-r--r--sysdeps/ieee754/dbl-64/sincostab.c4
-rw-r--r--sysdeps/ieee754/dbl-64/t_exp.c435
-rw-r--r--sysdeps/ieee754/dbl-64/t_exp2.h585
-rw-r--r--sysdeps/ieee754/dbl-64/uasncs.h4
-rw-r--r--sysdeps/ieee754/dbl-64/uatan.tbl4
-rw-r--r--sysdeps/ieee754/dbl-64/uexp.h68
-rw-r--r--sysdeps/ieee754/dbl-64/uexp.tbl1786
-rw-r--r--sysdeps/ieee754/dbl-64/ulog.h93
-rw-r--r--sysdeps/ieee754/dbl-64/ulog.tbl3326
-rw-r--r--sysdeps/ieee754/dbl-64/upow.h76
-rw-r--r--sysdeps/ieee754/dbl-64/upow.tbl10188
-rw-r--r--sysdeps/ieee754/dbl-64/urem.h4
-rw-r--r--sysdeps/ieee754/dbl-64/usncs.h4
-rw-r--r--sysdeps/ieee754/dbl-64/utan.h4
-rw-r--r--sysdeps/ieee754/dbl-64/utan.tbl4
-rw-r--r--sysdeps/ieee754/dbl-64/w_exp.c1
-rw-r--r--sysdeps/ieee754/dbl-64/w_exp2.c1
-rw-r--r--sysdeps/ieee754/dbl-64/w_log.c1
-rw-r--r--sysdeps/ieee754/dbl-64/w_log2.c1
-rw-r--r--sysdeps/ieee754/dbl-64/w_pow.c1
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/e_log2.c128
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/s_ceil.c51
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/s_finite.c43
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/s_floor.c71
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/s_frexp.c4
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/s_getpayload.c4
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/s_isinf.c34
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/s_isnan.c40
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/s_issignaling.c4
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/s_llround.c4
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/s_logb.c47
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/s_lround.c4
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c64
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/s_remquo.c4
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/s_rint.c57
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/s_round.c65
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/s_roundeven.c4
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/s_scalbln.c6
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/s_scalbn.c6
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/s_setpayload_main.c4
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/s_totalorder.c37
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/s_totalordermag.c37
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/s_trunc.c54
-rw-r--r--sysdeps/ieee754/dbl-64/x2y2m1.c5
-rw-r--r--sysdeps/ieee754/dbl-64/x2y2m1f.c4
-rw-r--r--sysdeps/ieee754/float128/float1282mpn.c4
-rw-r--r--sysdeps/ieee754/float128/float128_private.h29
-rw-r--r--sysdeps/ieee754/float128/ieee754_float128.h4
-rw-r--r--sysdeps/ieee754/float128/math-nan-payload-float128.h4
-rw-r--r--sysdeps/ieee754/float128/mpn2float128.c4
-rw-r--r--sysdeps/ieee754/float128/s_ceilf128.c1
-rw-r--r--sysdeps/ieee754/float128/s_copysignf128.c1
-rw-r--r--sysdeps/ieee754/float128/s_floorf128.c1
-rw-r--r--sysdeps/ieee754/float128/s_rintf128.c1
-rw-r--r--sysdeps/ieee754/float128/s_roundf128.c1
-rw-r--r--sysdeps/ieee754/float128/s_signbitf128.c4
-rw-r--r--sysdeps/ieee754/float128/s_truncf128.c1
-rw-r--r--sysdeps/ieee754/float128/strfromf128.c4
-rw-r--r--sysdeps/ieee754/float128/strtof128.c4
-rw-r--r--sysdeps/ieee754/float128/strtof128_l.c4
-rw-r--r--sysdeps/ieee754/float128/strtof128_nan.c4
-rw-r--r--sysdeps/ieee754/float128/wcstof128.c4
-rw-r--r--sysdeps/ieee754/float128/wcstof128_l.c4
-rw-r--r--sysdeps/ieee754/float128/wcstof128_nan.c4
-rw-r--r--sysdeps/ieee754/flt-32/e_asinf.c2
-rw-r--r--sysdeps/ieee754/flt-32/e_atanhf.c6
-rw-r--r--sysdeps/ieee754/flt-32/e_exp2f.c4
-rw-r--r--sysdeps/ieee754/flt-32/e_exp2f_data.c4
-rw-r--r--sysdeps/ieee754/flt-32/e_expf.c9
-rw-r--r--sysdeps/ieee754/flt-32/e_gammaf_r.c23
-rw-r--r--sysdeps/ieee754/flt-32/e_j1f.c1
-rw-r--r--sysdeps/ieee754/flt-32/e_jnf.c5
-rw-r--r--sysdeps/ieee754/flt-32/e_lgammaf_r.c16
-rw-r--r--sysdeps/ieee754/flt-32/e_log2f.c4
-rw-r--r--sysdeps/ieee754/flt-32/e_log2f_data.c4
-rw-r--r--sysdeps/ieee754/flt-32/e_logf.c4
-rw-r--r--sysdeps/ieee754/flt-32/e_logf_data.c4
-rw-r--r--sysdeps/ieee754/flt-32/e_powf.c23
-rw-r--r--sysdeps/ieee754/flt-32/e_powf_log2_data.c4
-rw-r--r--sysdeps/ieee754/flt-32/e_rem_pio2f.c179
-rw-r--r--sysdeps/ieee754/flt-32/k_cosf.c55
-rw-r--r--sysdeps/ieee754/flt-32/k_rem_pio2f.c219
-rw-r--r--sysdeps/ieee754/flt-32/k_sinf.c51
-rw-r--r--sysdeps/ieee754/flt-32/lgamma_negf.c9
-rw-r--r--sysdeps/ieee754/flt-32/math_config.h33
-rw-r--r--sysdeps/ieee754/flt-32/math_errf.c4
-rw-r--r--sysdeps/ieee754/flt-32/mpn2flt.c4
-rw-r--r--sysdeps/ieee754/flt-32/s_asinhf.c2
-rw-r--r--sysdeps/ieee754/flt-32/s_cbrtf.c5
-rw-r--r--sysdeps/ieee754/flt-32/s_ceilf.c62
-rw-r--r--sysdeps/ieee754/flt-32/s_copysignf.c13
-rw-r--r--sysdeps/ieee754/flt-32/s_cosf.c163
-rw-r--r--sysdeps/ieee754/flt-32/s_floorf.c62
-rw-r--r--sysdeps/ieee754/flt-32/s_fpclassifyf.c4
-rw-r--r--sysdeps/ieee754/flt-32/s_fromfpf_main.c4
-rw-r--r--sysdeps/ieee754/flt-32/s_getpayloadf.c4
-rw-r--r--sysdeps/ieee754/flt-32/s_issignalingf.c4
-rw-r--r--sysdeps/ieee754/flt-32/s_llrintf.c4
-rw-r--r--sysdeps/ieee754/flt-32/s_llroundf.c4
-rw-r--r--sysdeps/ieee754/flt-32/s_lrintf.c4
-rw-r--r--sysdeps/ieee754/flt-32/s_lroundf.c4
-rw-r--r--sysdeps/ieee754/flt-32/s_nearbyintf.c78
-rw-r--r--sysdeps/ieee754/flt-32/s_nextupf.c4
-rw-r--r--sysdeps/ieee754/flt-32/s_remquof.c4
-rw-r--r--sysdeps/ieee754/flt-32/s_rintf.c62
-rw-r--r--sysdeps/ieee754/flt-32/s_roundevenf.c4
-rw-r--r--sysdeps/ieee754/flt-32/s_roundf.c11
-rw-r--r--sysdeps/ieee754/flt-32/s_scalbnf.c6
-rw-r--r--sysdeps/ieee754/flt-32/s_setpayloadf_main.c4
-rw-r--r--sysdeps/ieee754/flt-32/s_signbitf.c4
-rw-r--r--sysdeps/ieee754/flt-32/s_sincosf.c198
-rw-r--r--sysdeps/ieee754/flt-32/s_sincosf.h198
-rw-r--r--sysdeps/ieee754/flt-32/s_sincosf_data.c74
-rw-r--r--sysdeps/ieee754/flt-32/s_sinf.c174
-rw-r--r--sysdeps/ieee754/flt-32/s_tanf.c29
-rw-r--r--sysdeps/ieee754/flt-32/s_totalorderf.c37
-rw-r--r--sysdeps/ieee754/flt-32/s_totalordermagf.c37
-rw-r--r--sysdeps/ieee754/flt-32/s_truncf.c11
-rw-r--r--sysdeps/ieee754/flt-32/sincosf_poly.h87
-rw-r--r--sysdeps/ieee754/ieee754.h8
-rw-r--r--sysdeps/ieee754/k_standard.c12
-rw-r--r--sysdeps/ieee754/k_standardf.c5
-rw-r--r--sysdeps/ieee754/k_standardl.c11
-rw-r--r--sysdeps/ieee754/ldbl-128/bits/floatn.h4
-rw-r--r--sysdeps/ieee754/ldbl-128/bits/long-double.h4
-rw-r--r--sysdeps/ieee754/ldbl-128/e_acosl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/e_asinl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/e_coshl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/e_exp10l.c4
-rw-r--r--sysdeps/ieee754/ldbl-128/e_expl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128/e_gammal_r.c25
-rw-r--r--sysdeps/ieee754/ldbl-128/e_j0l.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/e_j1l.c3
-rw-r--r--sysdeps/ieee754/ldbl-128/e_jnl.c11
-rw-r--r--sysdeps/ieee754/ldbl-128/e_lgammal_r.c8
-rw-r--r--sysdeps/ieee754/ldbl-128/e_log10l.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/e_log2l.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/e_logl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/e_powl.c8
-rw-r--r--sysdeps/ieee754/ldbl-128/e_rem_pio2l.c4
-rw-r--r--sysdeps/ieee754/ldbl-128/e_sinhl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/gamma_productl.c5
-rw-r--r--sysdeps/ieee754/ldbl-128/ieee754.h8
-rw-r--r--sysdeps/ieee754/ldbl-128/k_cosl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128/k_sincosl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128/k_sinl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128/k_tanl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/ldbl2mpn.c4
-rw-r--r--sysdeps/ieee754/ldbl-128/lgamma_negl.c9
-rw-r--r--sysdeps/ieee754/ldbl-128/lgamma_productl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128/math-nan-payload-ldouble.h4
-rw-r--r--sysdeps/ieee754/ldbl-128/math_ldbl.h4
-rw-r--r--sysdeps/ieee754/ldbl-128/mpn2ldbl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128/printf_fphex.c4
-rw-r--r--sysdeps/ieee754/ldbl-128/printf_fphex_macros.h4
-rw-r--r--sysdeps/ieee754/ldbl-128/s_atanl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/s_cbrtl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/s_ceill.c98
-rw-r--r--sysdeps/ieee754/ldbl-128/s_copysignl.c24
-rw-r--r--sysdeps/ieee754/ldbl-128/s_daddl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128/s_ddivl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128/s_dmull.c4
-rw-r--r--sysdeps/ieee754/ldbl-128/s_dsubl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128/s_erfl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/s_expm1l.c4
-rw-r--r--sysdeps/ieee754/ldbl-128/s_f64xaddf128.c4
-rw-r--r--sysdeps/ieee754/ldbl-128/s_f64xdivf128.c4
-rw-r--r--sysdeps/ieee754/ldbl-128/s_f64xmulf128.c4
-rw-r--r--sysdeps/ieee754/ldbl-128/s_f64xsubf128.c4
-rw-r--r--sysdeps/ieee754/ldbl-128/s_faddl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128/s_fdivl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128/s_floorl.c96
-rw-r--r--sysdeps/ieee754/ldbl-128/s_fma.c4
-rw-r--r--sysdeps/ieee754/ldbl-128/s_fmal.c4
-rw-r--r--sysdeps/ieee754/ldbl-128/s_fmull.c4
-rw-r--r--sysdeps/ieee754/ldbl-128/s_fpclassifyl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128/s_fromfpl_main.c4
-rw-r--r--sysdeps/ieee754/ldbl-128/s_fsubl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128/s_getpayloadl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128/s_issignalingl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128/s_llrintl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128/s_llroundl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128/s_log1pl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/s_lrintl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128/s_lroundl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128/s_nearbyintl.c80
-rw-r--r--sysdeps/ieee754/ldbl-128/s_nextupl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128/s_remquol.c4
-rw-r--r--sysdeps/ieee754/ldbl-128/s_rintl.c67
-rw-r--r--sysdeps/ieee754/ldbl-128/s_roundevenl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128/s_roundl.c11
-rw-r--r--sysdeps/ieee754/ldbl-128/s_scalblnl.c6
-rw-r--r--sysdeps/ieee754/ldbl-128/s_scalbnl.c6
-rw-r--r--sysdeps/ieee754/ldbl-128/s_setpayloadl_main.c4
-rw-r--r--sysdeps/ieee754/ldbl-128/s_signbitl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128/s_sincosl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128/s_totalorderl.c37
-rw-r--r--sysdeps/ieee754/ldbl-128/s_totalordermagl.c37
-rw-r--r--sysdeps/ieee754/ldbl-128/s_truncl.c11
-rw-r--r--sysdeps/ieee754/ldbl-128/strtold_l.c4
-rw-r--r--sysdeps/ieee754/ldbl-128/t_expl.h4
-rw-r--r--sysdeps/ieee754/ldbl-128/t_sincosl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128/x2y2m1l.c5
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/Makefile302
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/Versions105
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-argp-help.c42
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-asprintf.c35
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-asprintf_chk.c38
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-dprintf.c34
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-dprintf_chk.c38
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-err.c93
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-error.c51
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fprintf.c34
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fprintf_chk.c38
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fscanf.c34
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fwprintf.c35
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fwprintf_chk.c38
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fwscanf.c35
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_fscanf.c35
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_fwscanf.c35
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_scanf.c35
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_sscanf.c39
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_swscanf.c40
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vfscanf.c27
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vfwscanf.c27
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vscanf.c27
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vsscanf.c30
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vswscanf.c32
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vwscanf.c27
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_wscanf.c35
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-obprintf.c42
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-obstack_chk.c39
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-printf.c35
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-printf_chk.c38
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-printf_size.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-scanf.c34
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-snprintf.c35
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-snprintf_chk.c42
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-sprintf.c35
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-sprintf_chk.c42
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-sscanf.c38
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-strfmon.c35
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-strfmon_l.c35
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-swprintf.c36
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-swprintf_chk.c42
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-swscanf.c40
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-syslog.c65
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vasprintf.c27
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vasprintf_chk.c31
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vdprintf.c26
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vdprintf_chk.c30
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfprintf.c26
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfprintf_chk.c30
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfscanf.c26
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfwprintf.c27
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfwprintf_chk.c31
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfwscanf.c27
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vobstack_chk.c31
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vprintf.c27
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vprintf_chk.c30
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vscanf.c26
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsnprintf.c28
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsnprintf_chk.c34
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsprintf.c27
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsprintf_chk.c34
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsscanf.c29
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vswprintf.c28
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vswprintf_chk.c34
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vswscanf.c32
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vwprintf.c27
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vwprintf_chk.c30
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vwscanf.c27
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-wprintf.c35
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-wprintf_chk.c38
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/ieee128-wscanf.c35
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/libm-alias-float128.h4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/strfromf128.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/strtof128.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/strtof128_l.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-isoc99-scanf-ibm128.c1
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-isoc99-scanf-ieee128.c1
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-isoc99-wscanf-ibm128.c1
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-isoc99-wscanf-ieee128.c1
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-obstack-chk-ibm128.c1
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-obstack-chk-ieee128.c1
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-obstack-chk-ldbl-compat.c6
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-obstack-ibm128.c1
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-obstack-ieee128.c1
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-obstack-ldbl-compat-template.c64
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-obstack-ldbl-compat.c6
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-ibm128.c1
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-ieee128.c1
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-ldbl-compat.c191
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-redir-ibm128.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-redir-ieee128.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ibm128.c1
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ieee128.c1
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ldbl-compat.c182
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ibm128.c1
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ieee128.c1
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat-template.c134
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat.c15
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat.sh63
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-strfmon-ibm128.c1
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-strfmon-ieee128.c1
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-strfmon-ldbl-compat.c59
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-strfrom-ibm128.c1
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-strfrom-ieee128.c1
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-strfrom-ldbl-compat.c49
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-syslog-chk-ibm128.c1
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-syslog-chk-ieee128.c1
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-syslog-chk-ldbl-compat.c6
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-syslog-ibm128.c1
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-syslog-ieee128.c1
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-syslog-ldbl-compat-template.c67
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-syslog-ldbl-compat.c6
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-wcstold-ibm128.c1
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-wcstold-ieee128.c1
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-wcstold-ldbl-compat.c36
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-chk-ibm128.c1
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-chk-ieee128.c1
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-chk-ldbl-compat.c122
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-chk-redir-ibm128.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-chk-redir-ieee128.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-ibm128.c1
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-ieee128.c1
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-ldbl-compat.c120
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-wscanf-ibm128.c1
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-wscanf-ieee128.c1
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/test-wscanf-ldbl-compat.c15
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/wcstof128.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/wcstof128_l.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/bits/iscanonical.h4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/e_acosl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/e_asinl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/e_exp10l.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/e_expl.c16
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c25
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/e_j0l.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/e_j1l.c3
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/e_jnl.c11
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/e_lgammal_r.c8
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/e_log10l.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/e_log2l.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/e_logl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/e_powl.c8
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/e_rem_pio2l.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/e_sqrtl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/gamma_productl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/ieee754.h8
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/k_cosl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/k_sincosl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/k_sinl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/k_tanl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/ldbl2mpn.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/lgamma_negl.c9
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/lgamma_productl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/math-nan-payload-ldouble.h4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/math_ldbl.h4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/mpn2ldbl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/printf_fphex.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_atanl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_cbrtl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_ceill.c11
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_copysignl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_daddl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_ddivl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_dmull.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_dsubl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_erfl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_expm1l.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_faddl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_fdivl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_floorl.c11
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_fmal.c7
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_fmull.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_fpclassifyl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_fromfpl_main.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_fsubl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_getpayloadl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_iscanonicall.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_issignalingl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_llrintl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_llroundl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_log1pl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_lrintl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_lroundl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_nearbyintl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_nextupl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_remquol.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_rintl.c6
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_roundevenl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_roundl.c11
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_scalblnl.c6
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_scalbnl.c6
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_setpayloadl_main.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_signbitl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_sincosl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_totalorderl.c22
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_totalordermagl.c22
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_truncl.c13
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/strtold_l.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/t_expl.h4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/t_sincosl.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/test-canonical-ldbl-128ibm.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/test-fmodl-ldbl-128ibm.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/test-fmodrem-ldbl-128ibm.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/test-remainderl-ldbl-128ibm.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/test-remquol-ldbl-128ibm.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/test-totalorderl-ldbl-128ibm.c12
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/tst-strtold-ldbl-128ibm.c4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/x2y2m1l.c5
-rw-r--r--sysdeps/ieee754/ldbl-64-128/s_finitel.c1
-rw-r--r--sysdeps/ieee754/ldbl-64-128/s_fpclassifyl.c1
-rw-r--r--sysdeps/ieee754/ldbl-64-128/s_isinfl.c1
-rw-r--r--sysdeps/ieee754/ldbl-64-128/s_isnanl.c1
-rw-r--r--sysdeps/ieee754/ldbl-64-128/s_signbitl.c1
-rw-r--r--sysdeps/ieee754/ldbl-64-128/strtold_l.c4
-rw-r--r--sysdeps/ieee754/ldbl-96/Makefile4
-rw-r--r--sysdeps/ieee754/ldbl-96/bits/iscanonical.h4
-rw-r--r--sysdeps/ieee754/ldbl-96/bits/long-double.h4
-rw-r--r--sysdeps/ieee754/ldbl-96/e_asinl.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/e_gammal_r.c25
-rw-r--r--sysdeps/ieee754/ldbl-96/e_j0l.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/e_j1l.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/e_jnl.c11
-rw-r--r--sysdeps/ieee754/ldbl-96/e_lgammal_r.c6
-rw-r--r--sysdeps/ieee754/ldbl-96/e_rem_pio2l.c4
-rw-r--r--sysdeps/ieee754/ldbl-96/gamma_product.c4
-rw-r--r--sysdeps/ieee754/ldbl-96/gamma_productl.c5
-rw-r--r--sysdeps/ieee754/ldbl-96/k_cosl.c4
-rw-r--r--sysdeps/ieee754/ldbl-96/k_sinl.c4
-rw-r--r--sysdeps/ieee754/ldbl-96/k_tanl.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/ldbl2mpn.c4
-rw-r--r--sysdeps/ieee754/ldbl-96/lgamma_negl.c9
-rw-r--r--sysdeps/ieee754/ldbl-96/lgamma_product.c4
-rw-r--r--sysdeps/ieee754/ldbl-96/lgamma_productl.c4
-rw-r--r--sysdeps/ieee754/ldbl-96/math-nan-payload-ldouble.h4
-rw-r--r--sysdeps/ieee754/ldbl-96/math_ldbl.h4
-rw-r--r--sysdeps/ieee754/ldbl-96/mpn2ldbl.c4
-rw-r--r--sysdeps/ieee754/ldbl-96/printf_fphex.c4
-rw-r--r--sysdeps/ieee754/ldbl-96/s_asinhl.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/s_cbrtl.c5
-rw-r--r--sysdeps/ieee754/ldbl-96/s_copysignl.c1
-rw-r--r--sysdeps/ieee754/ldbl-96/s_daddl.c4
-rw-r--r--sysdeps/ieee754/ldbl-96/s_ddivl.c4
-rw-r--r--sysdeps/ieee754/ldbl-96/s_dmull.c4
-rw-r--r--sysdeps/ieee754/ldbl-96/s_dsubl.c4
-rw-r--r--sysdeps/ieee754/ldbl-96/s_erfl.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/s_faddl.c4
-rw-r--r--sysdeps/ieee754/ldbl-96/s_fdivl.c4
-rw-r--r--sysdeps/ieee754/ldbl-96/s_fma.c5
-rw-r--r--sysdeps/ieee754/ldbl-96/s_fmal.c5
-rw-r--r--sysdeps/ieee754/ldbl-96/s_fmull.c4
-rw-r--r--sysdeps/ieee754/ldbl-96/s_fromfpl_main.c4
-rw-r--r--sysdeps/ieee754/ldbl-96/s_fsubl.c4
-rw-r--r--sysdeps/ieee754/ldbl-96/s_getpayloadl.c4
-rw-r--r--sysdeps/ieee754/ldbl-96/s_iscanonicall.c4
-rw-r--r--sysdeps/ieee754/ldbl-96/s_issignalingl.c4
-rw-r--r--sysdeps/ieee754/ldbl-96/s_llrintl.c4
-rw-r--r--sysdeps/ieee754/ldbl-96/s_llroundl.c4
-rw-r--r--sysdeps/ieee754/ldbl-96/s_lrintl.c4
-rw-r--r--sysdeps/ieee754/ldbl-96/s_lroundl.c4
-rw-r--r--sysdeps/ieee754/ldbl-96/s_nextupl.c4
-rw-r--r--sysdeps/ieee754/ldbl-96/s_remquol.c4
-rw-r--r--sysdeps/ieee754/ldbl-96/s_roundevenl.c4
-rw-r--r--sysdeps/ieee754/ldbl-96/s_roundl.c5
-rw-r--r--sysdeps/ieee754/ldbl-96/s_scalblnl.c6
-rw-r--r--sysdeps/ieee754/ldbl-96/s_setpayloadl_main.c4
-rw-r--r--sysdeps/ieee754/ldbl-96/s_signbitl.c4
-rw-r--r--sysdeps/ieee754/ldbl-96/s_sincosl.c4
-rw-r--r--sysdeps/ieee754/ldbl-96/s_totalorderl.c37
-rw-r--r--sysdeps/ieee754/ldbl-96/s_totalordermagl.c37
-rw-r--r--sysdeps/ieee754/ldbl-96/strtold_l.c4
-rw-r--r--sysdeps/ieee754/ldbl-96/t_sincosl.c4
-rw-r--r--sysdeps/ieee754/ldbl-96/test-canonical-ldbl-96.c4
-rw-r--r--sysdeps/ieee754/ldbl-96/test-totalorderl-ldbl-96.c20
-rw-r--r--sysdeps/ieee754/ldbl-96/x2y2m1.c4
-rw-r--r--sysdeps/ieee754/ldbl-96/x2y2m1l.c5
-rw-r--r--sysdeps/ieee754/ldbl-opt/Makefile33
-rw-r--r--sysdeps/ieee754/ldbl-opt/Versions6
-rw-r--r--sysdeps/ieee754/ldbl-opt/bits/long-double.h4
-rw-r--r--sysdeps/ieee754/ldbl-opt/libm-alias-double.h4
-rw-r--r--sysdeps/ieee754/ldbl-opt/libm-alias-ldouble.h4
-rw-r--r--sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h13
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-canonicalize.c4
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-compat.c920
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-compat.h31
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-copysign.c2
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-dadd.c4
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-ddiv.c4
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-dmul.c4
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-dsub.c4
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-fadd.c4
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-fdiv.c4
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-fmaxmag.c4
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-fminmag.c4
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-fmul.c4
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-fromfp.c4
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-fromfpx.c4
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-fscanf.c5
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-fsub.c4
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-fwscanf.c5
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-getpayload.c4
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-iovfscanf.c5
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-llogb.c4
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-nextdown.c4
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-nextup.c4
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-roundeven.c4
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-scanf.c5
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-setpayload.c4
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-setpayloadsig.c4
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-sscanf.c5
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-swscanf.c5
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-totalorder.c6
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-totalordermag.c6
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-ufromfp.c4
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-ufromfpx.c4
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-vfscanf.c5
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-vfwscanf.c5
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-vscanf.c5
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-vsscanf.c5
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-vswscanf.c5
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-vwscanf.c5
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-wscanf.c5
-rw-r--r--sysdeps/ieee754/ldbl-opt/s_clog10.c4
-rw-r--r--sysdeps/ieee754/ldbl-opt/s_clog10l.c4
-rw-r--r--sysdeps/ieee754/ldbl-opt/s_ldexp.c4
-rw-r--r--sysdeps/ieee754/ldbl-opt/s_ldexpl.c4
-rw-r--r--sysdeps/ieee754/ldbl-opt/test-nldbl-redirect.c42
-rw-r--r--sysdeps/ieee754/s_signgam.c1
-rw-r--r--sysdeps/ieee754/soft-fp/s_daddl.c6
-rw-r--r--sysdeps/ieee754/soft-fp/s_ddivl.c18
-rw-r--r--sysdeps/ieee754/soft-fp/s_dmull.c6
-rw-r--r--sysdeps/ieee754/soft-fp/s_dsubl.c6
-rw-r--r--sysdeps/ieee754/soft-fp/s_fadd.c4
-rw-r--r--sysdeps/ieee754/soft-fp/s_faddl.c6
-rw-r--r--sysdeps/ieee754/soft-fp/s_fdiv.c16
-rw-r--r--sysdeps/ieee754/soft-fp/s_fdivl.c18
-rw-r--r--sysdeps/ieee754/soft-fp/s_fma.c4
-rw-r--r--sysdeps/ieee754/soft-fp/s_fmaf.c4
-rw-r--r--sysdeps/ieee754/soft-fp/s_fmal.c4
-rw-r--r--sysdeps/ieee754/soft-fp/s_fmul.c4
-rw-r--r--sysdeps/ieee754/soft-fp/s_fmull.c6
-rw-r--r--sysdeps/ieee754/soft-fp/s_fsub.c4
-rw-r--r--sysdeps/ieee754/soft-fp/s_fsubl.c6
-rw-r--r--sysdeps/init_array/elf-init.c4
-rw-r--r--sysdeps/init_array/gmon-start.c4
-rw-r--r--sysdeps/init_array/pt-crti.S4
-rw-r--r--sysdeps/m68k/Makefile4
-rw-r--r--sysdeps/m68k/__longjmp.c4
-rw-r--r--sysdeps/m68k/asm-syntax.h4
-rw-r--r--sysdeps/m68k/backtrace.c4
-rw-r--r--sysdeps/m68k/bits/endian.h7
-rw-r--r--sysdeps/m68k/bits/endianness.h11
-rw-r--r--sysdeps/m68k/bits/fenv.h6
-rw-r--r--sysdeps/m68k/bits/link.h4
-rw-r--r--sysdeps/m68k/bits/setjmp.h4
-rw-r--r--sysdeps/m68k/bsd-_setjmp.c4
-rw-r--r--sysdeps/m68k/bsd-setjmp.c4
-rw-r--r--sysdeps/m68k/coldfire/atomic-machine.h4
-rw-r--r--sysdeps/m68k/coldfire/fpu/e_sqrt.c4
-rw-r--r--sysdeps/m68k/coldfire/fpu/e_sqrtf.c4
-rw-r--r--sysdeps/m68k/coldfire/fpu/fraiseexcpt.c4
-rw-r--r--sysdeps/m68k/coldfire/fpu/s_fabs.c4
-rw-r--r--sysdeps/m68k/coldfire/fpu/s_fabsf.c4
-rw-r--r--sysdeps/m68k/coldfire/fpu/s_lrint.c4
-rw-r--r--sysdeps/m68k/coldfire/fpu/s_lrintf.c4
-rw-r--r--sysdeps/m68k/coldfire/fpu/s_rint.c5
-rw-r--r--sysdeps/m68k/coldfire/fpu/s_rintf.c5
-rw-r--r--sysdeps/m68k/coldfire/math-tests.h29
-rw-r--r--sysdeps/m68k/coldfire/sysdep.h4
-rw-r--r--sysdeps/m68k/crti.S4
-rw-r--r--sysdeps/m68k/crtn.S4
-rw-r--r--sysdeps/m68k/dl-machine.h4
-rw-r--r--sysdeps/m68k/dl-tls.h4
-rw-r--r--sysdeps/m68k/dl-trampoline.S4
-rw-r--r--sysdeps/m68k/ffs.c4
-rw-r--r--sysdeps/m68k/fpu/fclrexcpt.c4
-rw-r--r--sysdeps/m68k/fpu/fedisblxcpt.c4
-rw-r--r--sysdeps/m68k/fpu/feenablxcpt.c4
-rw-r--r--sysdeps/m68k/fpu/fegetenv.c4
-rw-r--r--sysdeps/m68k/fpu/fegetexcept.c4
-rw-r--r--sysdeps/m68k/fpu/fegetmode.c4
-rw-r--r--sysdeps/m68k/fpu/fegetround.c4
-rw-r--r--sysdeps/m68k/fpu/feholdexcpt.c4
-rw-r--r--sysdeps/m68k/fpu/fesetenv.c4
-rw-r--r--sysdeps/m68k/fpu/fesetexcept.c4
-rw-r--r--sysdeps/m68k/fpu/fesetmode.c4
-rw-r--r--sysdeps/m68k/fpu/fesetround.c4
-rw-r--r--sysdeps/m68k/fpu/feupdateenv.c4
-rw-r--r--sysdeps/m68k/fpu/fgetexcptflg.c4
-rw-r--r--sysdeps/m68k/fpu/fsetexcptflg.c4
-rw-r--r--sysdeps/m68k/fpu/ftestexcept.c4
-rw-r--r--sysdeps/m68k/fpu_control.h4
-rw-r--r--sysdeps/m68k/gccframe.h4
-rw-r--r--sysdeps/m68k/jmpbuf-unwind.h4
-rw-r--r--sysdeps/m68k/ldsodefs.h4
-rw-r--r--sysdeps/m68k/libc-tls.c4
-rw-r--r--sysdeps/m68k/m680x0/add_n.S4
-rw-r--r--sysdeps/m68k/m680x0/bits/flt-eval-method.h4
-rw-r--r--sysdeps/m68k/m680x0/bits/fp-logb.h4
-rw-r--r--sysdeps/m68k/m680x0/fpu/bits/mathinline.h4
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_acos.c4
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_atan2.c4
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_exp_data.c1
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_fmod.c4
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_ilogb.c4
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_log2_data.c1
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_log_data.c1
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_pow.c4
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_pow_log_data.c1
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_rem_pio2.c3
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_rem_pio2f.c3
-rw-r--r--sysdeps/m68k/m680x0/fpu/e_scalb.c4
-rw-r--r--sysdeps/m68k/m680x0/fpu/fraiseexcpt.c4
-rw-r--r--sysdeps/m68k/m680x0/fpu/k_rem_pio2f.c3
-rw-r--r--sysdeps/m68k/m680x0/fpu/math-barriers.h4
-rw-r--r--sysdeps/m68k/m680x0/fpu/math_err.c1
-rw-r--r--sysdeps/m68k/m680x0/fpu/mathimpl.h4
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_atan_template.c4
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_ccosh_template.c4
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_ceil_template.c5
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_cexp_template.c5
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_cos_template.c4
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_csin_template.c4
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_csinh_template.c4
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_expm1.c4
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_expm1_template.c4
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_fabs_template.c4
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_floor_template.c5
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_fpclassifyl.c4
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_frexp_template.c4
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_frexpl.c4
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_isinf.c4
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_llrint.c4
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_llrintf.c4
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_llrintl.c4
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_log1p.c4
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_lrint_template.c4
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_modf_template.c4
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_nearbyint_template.c4
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_remquo_template.c4
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_rint.c1
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_rint_template.c4
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_rintf.c1
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_rintl.c1
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_scalbn.c4
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_significand.c4
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_sin_template.c4
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_sincos_template.c4
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_sincosf_data.c1
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_tan_template.c4
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_tanh_template.c4
-rw-r--r--sysdeps/m68k/m680x0/fpu/s_trunc_template.c5
-rw-r--r--sysdeps/m68k/m680x0/fpu/t_exp.c1
-rw-r--r--sysdeps/m68k/m680x0/fpu/w_exp.c1
-rw-r--r--sysdeps/m68k/m680x0/fpu/w_exp2.c1
-rw-r--r--sysdeps/m68k/m680x0/fpu/w_log.c1
-rw-r--r--sysdeps/m68k/m680x0/fpu/w_log2.c1
-rw-r--r--sysdeps/m68k/m680x0/fpu/w_pow.c1
-rw-r--r--sysdeps/m68k/m680x0/lshift.S4
-rw-r--r--sysdeps/m68k/m680x0/m68020/addmul_1.S4
-rw-r--r--sysdeps/m68k/m680x0/m68020/atomic-machine.h4
-rw-r--r--sysdeps/m68k/m680x0/m68020/mul_1.S4
-rw-r--r--sysdeps/m68k/m680x0/m68020/string_private.h4
-rw-r--r--sysdeps/m68k/m680x0/m68020/submul_1.S4
-rw-r--r--sysdeps/m68k/m680x0/rshift.S4
-rw-r--r--sysdeps/m68k/m680x0/sub_n.S4
-rw-r--r--sysdeps/m68k/m680x0/sysdep.h4
-rw-r--r--sysdeps/m68k/memchr.S4
-rw-r--r--sysdeps/m68k/memcopy.h20
-rw-r--r--sysdeps/m68k/memusage.h4
-rw-r--r--sysdeps/m68k/nptl/Makefile4
-rw-r--r--sysdeps/m68k/nptl/bits/pthreadtypes-arch.h32
-rw-r--r--sysdeps/m68k/nptl/bits/semaphore.h4
-rw-r--r--sysdeps/m68k/nptl/pthread-offsets.h5
-rw-r--r--sysdeps/m68k/nptl/pthreaddef.h4
-rw-r--r--sysdeps/m68k/nptl/tls.h4
-rw-r--r--sysdeps/m68k/rawmemchr.S4
-rw-r--r--sysdeps/m68k/setjmp.c4
-rw-r--r--sysdeps/m68k/sotruss-lib.c4
-rw-r--r--sysdeps/m68k/stackinfo.h4
-rw-r--r--sysdeps/m68k/start.S4
-rw-r--r--sysdeps/m68k/strchr.S4
-rw-r--r--sysdeps/m68k/strchrnul.S4
-rw-r--r--sysdeps/m68k/symbol-hacks.h4
-rw-r--r--sysdeps/m68k/sys/ucontext.h4
-rw-r--r--sysdeps/m68k/sysdep.h4
-rw-r--r--sysdeps/m68k/tls-macros.h4
-rw-r--r--sysdeps/m68k/tst-audit.h4
-rw-r--r--sysdeps/m68k/wcpcpy.c36
-rw-r--r--sysdeps/m68k/wcpcpy_chk.c4
-rw-r--r--sysdeps/mach/Makefile4
-rw-r--r--sysdeps/mach/_strerror.c4
-rw-r--r--sysdeps/mach/adjtime.c4
-rw-r--r--sysdeps/mach/clock_gettime.c51
-rw-r--r--sysdeps/mach/clock_nanosleep.c111
-rw-r--r--sysdeps/mach/getloadavg.c4
-rw-r--r--sysdeps/mach/getpagesize.c4
-rw-r--r--sysdeps/mach/getsysstats.c4
-rw-r--r--sysdeps/mach/gettimeofday.c43
-rw-r--r--sysdeps/mach/htl/bits/spin-lock-inline.h4
-rw-r--r--sysdeps/mach/htl/bits/types/__pthread_spinlock_t.h4
-rw-r--r--sysdeps/mach/htl/pt-block.c4
-rw-r--r--sysdeps/mach/htl/pt-spin.c4
-rw-r--r--sysdeps/mach/htl/pt-stack-alloc.c4
-rw-r--r--sysdeps/mach/htl/pt-thread-alloc.c4
-rw-r--r--sysdeps/mach/htl/pt-thread-start.c4
-rw-r--r--sysdeps/mach/htl/pt-thread-terminate.c4
-rw-r--r--sysdeps/mach/htl/pt-timedblock.c4
-rw-r--r--sysdeps/mach/htl/pt-wakeup.c4
-rw-r--r--sysdeps/mach/hurd/Makefile15
-rw-r--r--sysdeps/mach/hurd/Versions13
-rw-r--r--sysdeps/mach/hurd/_exit.c4
-rw-r--r--sysdeps/mach/hurd/accept.c4
-rw-r--r--sysdeps/mach/hurd/accept4.c4
-rw-r--r--sysdeps/mach/hurd/access.c5
-rw-r--r--sysdeps/mach/hurd/adjtime.c4
-rw-r--r--sysdeps/mach/hurd/bind.c4
-rw-r--r--sysdeps/mach/hurd/bits/errno.h8
-rw-r--r--sysdeps/mach/hurd/bits/fcntl.h19
-rw-r--r--sysdeps/mach/hurd/bits/ioctls.h4
-rw-r--r--sysdeps/mach/hurd/bits/local_lim.h4
-rw-r--r--sysdeps/mach/hurd/bits/param.h4
-rw-r--r--sysdeps/mach/hurd/bits/posix_opt.h4
-rw-r--r--sysdeps/mach/hurd/bits/socket.h4
-rw-r--r--sysdeps/mach/hurd/bits/stat.h8
-rw-r--r--sysdeps/mach/hurd/bits/statfs.h4
-rw-r--r--sysdeps/mach/hurd/bits/statvfs.h4
-rw-r--r--sysdeps/mach/hurd/bits/sysmacros.h4
-rw-r--r--sysdeps/mach/hurd/bits/types/error_t.h4
-rw-r--r--sysdeps/mach/hurd/bits/typesizes.h8
-rw-r--r--sysdeps/mach/hurd/brk.c4
-rw-r--r--sysdeps/mach/hurd/chdir.c4
-rw-r--r--sysdeps/mach/hurd/check_fds.c4
-rw-r--r--sysdeps/mach/hurd/chflags.c4
-rw-r--r--sysdeps/mach/hurd/chmod.c4
-rw-r--r--sysdeps/mach/hurd/chown.c4
-rw-r--r--sysdeps/mach/hurd/chroot.c4
-rw-r--r--sysdeps/mach/hurd/clock.c4
-rw-r--r--sysdeps/mach/hurd/clock_settime.c55
-rw-r--r--sysdeps/mach/hurd/close.c4
-rw-r--r--sysdeps/mach/hurd/close_nocancel_nostatus.c30
-rw-r--r--sysdeps/mach/hurd/closedir.c4
-rw-r--r--sysdeps/mach/hurd/configure.ac2
-rw-r--r--sysdeps/mach/hurd/connect.c4
-rw-r--r--sysdeps/mach/hurd/cthreads.c4
-rw-r--r--sysdeps/mach/hurd/device-nrs.h4
-rw-r--r--sysdeps/mach/hurd/dirfd.c4
-rw-r--r--sysdeps/mach/hurd/dirstream.h4
-rw-r--r--sysdeps/mach/hurd/dl-execstack.c4
-rw-r--r--sysdeps/mach/hurd/dl-fcntl.h4
-rw-r--r--sysdeps/mach/hurd/dl-mman.h4
-rw-r--r--sysdeps/mach/hurd/dl-sysdep.c54
-rw-r--r--sysdeps/mach/hurd/dl-sysdep.h4
-rw-r--r--sysdeps/mach/hurd/dl-unistd.h4
-rw-r--r--sysdeps/mach/hurd/dup2.c4
-rw-r--r--sysdeps/mach/hurd/dup3.c4
-rw-r--r--sysdeps/mach/hurd/eloop-threshold.h4
-rw-r--r--sysdeps/mach/hurd/enbl-secure.c4
-rw-r--r--sysdeps/mach/hurd/errlist.c4
-rw-r--r--sysdeps/mach/hurd/errno-loc.c4
-rw-r--r--sysdeps/mach/hurd/errnos.awk7
-rw-r--r--sysdeps/mach/hurd/euidaccess.c4
-rw-r--r--sysdeps/mach/hurd/execve.c4
-rw-r--r--sysdeps/mach/hurd/f_setlk.c82
-rw-r--r--sysdeps/mach/hurd/f_setlk.h23
-rw-r--r--sysdeps/mach/hurd/faccessat.c8
-rw-r--r--sysdeps/mach/hurd/fchdir.c4
-rw-r--r--sysdeps/mach/hurd/fchflags.c4
-rw-r--r--sysdeps/mach/hurd/fchmod.c4
-rw-r--r--sysdeps/mach/hurd/fchmodat.c4
-rw-r--r--sysdeps/mach/hurd/fchown.c4
-rw-r--r--sysdeps/mach/hurd/fchownat.c4
-rw-r--r--sysdeps/mach/hurd/fcntl.c133
-rw-r--r--sysdeps/mach/hurd/fcntl64.c1
-rw-r--r--sysdeps/mach/hurd/fdatasync.c4
-rw-r--r--sysdeps/mach/hurd/fdopendir.c4
-rw-r--r--sysdeps/mach/hurd/fexecve.c4
-rw-r--r--sysdeps/mach/hurd/fgetxattr.c4
-rw-r--r--sysdeps/mach/hurd/flistxattr.c4
-rw-r--r--sysdeps/mach/hurd/flock.c4
-rw-r--r--sysdeps/mach/hurd/fork.c76
-rw-r--r--sysdeps/mach/hurd/fpathconf.c4
-rw-r--r--sysdeps/mach/hurd/fremovexattr.c4
-rw-r--r--sysdeps/mach/hurd/fsetxattr.c4
-rw-r--r--sysdeps/mach/hurd/fstatfs.c4
-rw-r--r--sysdeps/mach/hurd/fstatfs64.c4
-rw-r--r--sysdeps/mach/hurd/fstatvfs.c4
-rw-r--r--sysdeps/mach/hurd/fstatvfs64.c4
-rw-r--r--sysdeps/mach/hurd/fsync.c4
-rw-r--r--sysdeps/mach/hurd/ftruncate.c4
-rw-r--r--sysdeps/mach/hurd/ftruncate64.c4
-rw-r--r--sysdeps/mach/hurd/futimens.c4
-rw-r--r--sysdeps/mach/hurd/futimes.c4
-rw-r--r--sysdeps/mach/hurd/futimesat.c4
-rw-r--r--sysdeps/mach/hurd/fxstat.c4
-rw-r--r--sysdeps/mach/hurd/fxstat64.c4
-rw-r--r--sysdeps/mach/hurd/fxstatat.c4
-rw-r--r--sysdeps/mach/hurd/fxstatat64.c4
-rw-r--r--sysdeps/mach/hurd/gai_misc.h4
-rw-r--r--sysdeps/mach/hurd/getclktck.c4
-rw-r--r--sysdeps/mach/hurd/getcwd.c27
-rw-r--r--sysdeps/mach/hurd/getdomain.c4
-rw-r--r--sysdeps/mach/hurd/getdtsz.c4
-rw-r--r--sysdeps/mach/hurd/getegid.c4
-rw-r--r--sysdeps/mach/hurd/getentropy.c64
-rw-r--r--sysdeps/mach/hurd/geteuid.c4
-rw-r--r--sysdeps/mach/hurd/getgid.c4
-rw-r--r--sysdeps/mach/hurd/getgroups.c4
-rw-r--r--sysdeps/mach/hurd/gethostid.c4
-rw-r--r--sysdeps/mach/hurd/gethostname.c4
-rw-r--r--sysdeps/mach/hurd/getitimer.c15
-rw-r--r--sysdeps/mach/hurd/getlogin.c4
-rw-r--r--sysdeps/mach/hurd/getlogin_r.c4
-rw-r--r--sysdeps/mach/hurd/getpeername.c4
-rw-r--r--sysdeps/mach/hurd/getpgid.c4
-rw-r--r--sysdeps/mach/hurd/getpid.c4
-rw-r--r--sysdeps/mach/hurd/getppid.c4
-rw-r--r--sysdeps/mach/hurd/getpriority.c4
-rw-r--r--sysdeps/mach/hurd/getrandom.c46
-rw-r--r--sysdeps/mach/hurd/getresgid.c4
-rw-r--r--sysdeps/mach/hurd/getresuid.c4
-rw-r--r--sysdeps/mach/hurd/getrlimit.c4
-rw-r--r--sysdeps/mach/hurd/getrusage.c4
-rw-r--r--sysdeps/mach/hurd/getsid.c4
-rw-r--r--sysdeps/mach/hurd/getsockname.c4
-rw-r--r--sysdeps/mach/hurd/getsockopt.c4
-rw-r--r--sysdeps/mach/hurd/getuid.c4
-rw-r--r--sysdeps/mach/hurd/getxattr.c4
-rw-r--r--sysdeps/mach/hurd/group_member.c4
-rw-r--r--sysdeps/mach/hurd/hp-timing.h4
-rw-r--r--sysdeps/mach/hurd/htl/bits/pthread-np.h4
-rw-r--r--sysdeps/mach/hurd/htl/bits/types/struct___pthread_mutex.h4
-rw-r--r--sysdeps/mach/hurd/htl/pt-attr-setstackaddr.c4
-rw-r--r--sysdeps/mach/hurd/htl/pt-attr-setstacksize.c4
-rw-r--r--sysdeps/mach/hurd/htl/pt-docancel.c4
-rw-r--r--sysdeps/mach/hurd/htl/pt-hurd-cond-timedwait.c7
-rw-r--r--sysdeps/mach/hurd/htl/pt-hurd-cond-wait.c4
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutex-consistent.c14
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutex-destroy.c4
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutex-getprioceiling.c4
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutex-init.c16
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutex-lock.c4
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutex-setprioceiling.c4
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutex-timedlock.c4
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutex-transfer-np.c8
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutex-trylock.c4
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutex-unlock.c12
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutex.h14
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutexattr-destroy.c4
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutexattr-getprioceiling.c4
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutexattr-getprotocol.c4
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutexattr-getpshared.c4
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutexattr-getrobust.c8
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutexattr-gettype.c4
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutexattr-init.c4
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutexattr-setprioceiling.c4
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutexattr-setprotocol.c11
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutexattr-setpshared.c5
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutexattr-setrobust.c4
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutexattr-settype.c4
-rw-r--r--sysdeps/mach/hurd/htl/pt-sigstate-destroy.c4
-rw-r--r--sysdeps/mach/hurd/htl/pt-sigstate-init.c4
-rw-r--r--sysdeps/mach/hurd/htl/pt-sigstate.c4
-rw-r--r--sysdeps/mach/hurd/htl/pt-sysdep.c4
-rw-r--r--sysdeps/mach/hurd/htl/pt-sysdep.h4
-rw-r--r--sysdeps/mach/hurd/i386/Makefile4
-rw-r--r--sysdeps/mach/hurd/i386/____longjmp_chk.S4
-rw-r--r--sysdeps/mach/hurd/i386/bits/sigcontext.h4
-rw-r--r--sysdeps/mach/hurd/i386/exc2signal.c4
-rw-r--r--sysdeps/mach/hurd/i386/htl/pt-machdep.c4
-rw-r--r--sysdeps/mach/hurd/i386/htl/pt-setup.c4
-rw-r--r--sysdeps/mach/hurd/i386/init-first.c19
-rw-r--r--sysdeps/mach/hurd/i386/intr-msg.h27
-rw-r--r--sysdeps/mach/hurd/i386/ioperm.c4
-rw-r--r--sysdeps/mach/hurd/i386/libc.abilist11
-rw-r--r--sysdeps/mach/hurd/i386/libm.abilist21
-rw-r--r--sysdeps/mach/hurd/i386/librt.abilist5
-rw-r--r--sysdeps/mach/hurd/i386/localplt.data5
-rw-r--r--sysdeps/mach/hurd/i386/longjmp-ts.c4
-rw-r--r--sysdeps/mach/hurd/i386/sigcontextinfo.h15
-rw-r--r--sysdeps/mach/hurd/i386/sigreturn.c72
-rw-r--r--sysdeps/mach/hurd/i386/static-start.S4
-rw-r--r--sysdeps/mach/hurd/i386/sys/io.h4
-rw-r--r--sysdeps/mach/hurd/i386/tls.h4
-rw-r--r--sysdeps/mach/hurd/i386/trampoline.c31
-rw-r--r--sysdeps/mach/hurd/if_index.c4
-rw-r--r--sysdeps/mach/hurd/ifreq.c4
-rw-r--r--sysdeps/mach/hurd/ifreq.h4
-rw-r--r--sysdeps/mach/hurd/ioctl.c44
-rw-r--r--sysdeps/mach/hurd/isatty.c4
-rw-r--r--sysdeps/mach/hurd/jmp-unwind.c8
-rw-r--r--sysdeps/mach/hurd/kernel-features.h4
-rw-r--r--sysdeps/mach/hurd/kill.c12
-rw-r--r--sysdeps/mach/hurd/lchmod.c4
-rw-r--r--sysdeps/mach/hurd/lchown.c4
-rw-r--r--sysdeps/mach/hurd/lgetxattr.c4
-rw-r--r--sysdeps/mach/hurd/libc-start.h4
-rw-r--r--sysdeps/mach/hurd/link.c4
-rw-r--r--sysdeps/mach/hurd/linkat.c4
-rw-r--r--sysdeps/mach/hurd/listen.c4
-rw-r--r--sysdeps/mach/hurd/listxattr.c4
-rw-r--r--sysdeps/mach/hurd/llistxattr.c4
-rw-r--r--sysdeps/mach/hurd/lremovexattr.c4
-rw-r--r--sysdeps/mach/hurd/lseek.c4
-rw-r--r--sysdeps/mach/hurd/lseek64.c4
-rw-r--r--sysdeps/mach/hurd/lsetxattr.c4
-rw-r--r--sysdeps/mach/hurd/lutimes.c4
-rw-r--r--sysdeps/mach/hurd/lxstat.c4
-rw-r--r--sysdeps/mach/hurd/lxstat64.c4
-rw-r--r--sysdeps/mach/hurd/malloc-machine.h4
-rw-r--r--sysdeps/mach/hurd/mig-reply.c10
-rw-r--r--sysdeps/mach/hurd/mkdir.c4
-rw-r--r--sysdeps/mach/hurd/mkdirat.c4
-rw-r--r--sysdeps/mach/hurd/mlock.c4
-rw-r--r--sysdeps/mach/hurd/mlockall.c4
-rw-r--r--sysdeps/mach/hurd/mmap.c31
-rw-r--r--sysdeps/mach/hurd/mmap64.c4
-rw-r--r--sysdeps/mach/hurd/msync.c93
-rw-r--r--sysdeps/mach/hurd/munlock.c4
-rw-r--r--sysdeps/mach/hurd/munlockall.c4
-rw-r--r--sysdeps/mach/hurd/net/ethernet.h4
-rw-r--r--sysdeps/mach/hurd/net/if_arp.h4
-rw-r--r--sysdeps/mach/hurd/net/if_ether.h4
-rw-r--r--sysdeps/mach/hurd/net/route.h4
-rw-r--r--sysdeps/mach/hurd/not-cancel.h62
-rw-r--r--sysdeps/mach/hurd/not-errno.h4
-rw-r--r--sysdeps/mach/hurd/open.c4
-rw-r--r--sysdeps/mach/hurd/openat.c4
-rw-r--r--sysdeps/mach/hurd/opendir.c4
-rw-r--r--sysdeps/mach/hurd/pathconf.c4
-rw-r--r--sysdeps/mach/hurd/pipe.c4
-rw-r--r--sysdeps/mach/hurd/pipe2.c4
-rw-r--r--sysdeps/mach/hurd/poll.c4
-rw-r--r--sysdeps/mach/hurd/ppoll.c4
-rw-r--r--sysdeps/mach/hurd/pread.c4
-rw-r--r--sysdeps/mach/hurd/pread64.c4
-rw-r--r--sysdeps/mach/hurd/profil.c4
-rw-r--r--sysdeps/mach/hurd/pselect.c4
-rw-r--r--sysdeps/mach/hurd/ptrace.c12
-rw-r--r--sysdeps/mach/hurd/ptsname.c4
-rw-r--r--sysdeps/mach/hurd/pwrite.c4
-rw-r--r--sysdeps/mach/hurd/pwrite64.c4
-rw-r--r--sysdeps/mach/hurd/read.c4
-rw-r--r--sysdeps/mach/hurd/readdir.c4
-rw-r--r--sysdeps/mach/hurd/readdir64.c4
-rw-r--r--sysdeps/mach/hurd/readdir64_r.c4
-rw-r--r--sysdeps/mach/hurd/readdir_r.c4
-rw-r--r--sysdeps/mach/hurd/readlink.c4
-rw-r--r--sysdeps/mach/hurd/readlinkat.c4
-rw-r--r--sysdeps/mach/hurd/reboot.c4
-rw-r--r--sysdeps/mach/hurd/recv.c4
-rw-r--r--sysdeps/mach/hurd/recvfrom.c4
-rw-r--r--sysdeps/mach/hurd/recvmsg.c4
-rw-r--r--sysdeps/mach/hurd/removexattr.c4
-rw-r--r--sysdeps/mach/hurd/rename.c4
-rw-r--r--sysdeps/mach/hurd/renameat.c25
-rw-r--r--sysdeps/mach/hurd/renameat2.c58
-rw-r--r--sysdeps/mach/hurd/res_enable_icmp.c27
-rw-r--r--sysdeps/mach/hurd/revoke.c4
-rw-r--r--sysdeps/mach/hurd/rewinddir.c4
-rw-r--r--sysdeps/mach/hurd/rmdir.c4
-rw-r--r--sysdeps/mach/hurd/sbrk.c4
-rw-r--r--sysdeps/mach/hurd/seekdir.c4
-rw-r--r--sysdeps/mach/hurd/select.c4
-rw-r--r--sysdeps/mach/hurd/send.c4
-rw-r--r--sysdeps/mach/hurd/sendfile.c4
-rw-r--r--sysdeps/mach/hurd/sendfile64.c4
-rw-r--r--sysdeps/mach/hurd/sendmsg.c4
-rw-r--r--sysdeps/mach/hurd/sendto.c4
-rw-r--r--sysdeps/mach/hurd/setdomain.c4
-rw-r--r--sysdeps/mach/hurd/setegid.c4
-rw-r--r--sysdeps/mach/hurd/seteuid.c4
-rw-r--r--sysdeps/mach/hurd/setgid.c4
-rw-r--r--sysdeps/mach/hurd/setgroups.c4
-rw-r--r--sysdeps/mach/hurd/sethostid.c4
-rw-r--r--sysdeps/mach/hurd/sethostname.c4
-rw-r--r--sysdeps/mach/hurd/setitimer.c49
-rw-r--r--sysdeps/mach/hurd/setlogin.c4
-rw-r--r--sysdeps/mach/hurd/setpgid.c4
-rw-r--r--sysdeps/mach/hurd/setpriority.c4
-rw-r--r--sysdeps/mach/hurd/setregid.c4
-rw-r--r--sysdeps/mach/hurd/setresgid.c4
-rw-r--r--sysdeps/mach/hurd/setresuid.c4
-rw-r--r--sysdeps/mach/hurd/setreuid.c4
-rw-r--r--sysdeps/mach/hurd/setrlimit.c4
-rw-r--r--sysdeps/mach/hurd/setsid.c4
-rw-r--r--sysdeps/mach/hurd/setsockopt.c4
-rw-r--r--sysdeps/mach/hurd/settimeofday.c52
-rw-r--r--sysdeps/mach/hurd/setuid.c4
-rw-r--r--sysdeps/mach/hurd/setxattr.c4
-rw-r--r--sysdeps/mach/hurd/shutdown.c4
-rw-r--r--sysdeps/mach/hurd/sigaction.c16
-rw-r--r--sysdeps/mach/hurd/sigaltstack.c9
-rw-r--r--sysdeps/mach/hurd/siglist.h4
-rw-r--r--sysdeps/mach/hurd/sigpending.c4
-rw-r--r--sysdeps/mach/hurd/sigprocmask.c4
-rw-r--r--sysdeps/mach/hurd/sigstack.c4
-rw-r--r--sysdeps/mach/hurd/sigsuspend.c4
-rw-r--r--sysdeps/mach/hurd/sigwait.c4
-rw-r--r--sysdeps/mach/hurd/socket.c4
-rw-r--r--sysdeps/mach/hurd/socketpair.c4
-rw-r--r--sysdeps/mach/hurd/spawni.c153
-rw-r--r--sysdeps/mach/hurd/statfs.c4
-rw-r--r--sysdeps/mach/hurd/statfs64.c4
-rw-r--r--sysdeps/mach/hurd/statfsconv.c4
-rw-r--r--sysdeps/mach/hurd/statvfs.c4
-rw-r--r--sysdeps/mach/hurd/statvfs64.c4
-rw-r--r--sysdeps/mach/hurd/symlink.c4
-rw-r--r--sysdeps/mach/hurd/symlinkat.c4
-rw-r--r--sysdeps/mach/hurd/sync.c4
-rw-r--r--sysdeps/mach/hurd/syncfs.c4
-rw-r--r--sysdeps/mach/hurd/sysconf.c4
-rw-r--r--sysdeps/mach/hurd/sysdep-cancel.h1
-rw-r--r--sysdeps/mach/hurd/telldir.c4
-rw-r--r--sysdeps/mach/hurd/times.c11
-rw-r--r--sysdeps/mach/hurd/tls.h4
-rw-r--r--sysdeps/mach/hurd/tmpfile.c4
-rw-r--r--sysdeps/mach/hurd/truncate.c4
-rw-r--r--sysdeps/mach/hurd/truncate64.c4
-rw-r--r--sysdeps/mach/hurd/ttyname.c4
-rw-r--r--sysdeps/mach/hurd/ttyname_r.c4
-rw-r--r--sysdeps/mach/hurd/umask.c4
-rw-r--r--sysdeps/mach/hurd/uname.c4
-rw-r--r--sysdeps/mach/hurd/unlink.c4
-rw-r--r--sysdeps/mach/hurd/unlinkat.c4
-rw-r--r--sysdeps/mach/hurd/utime-helper.c4
-rw-r--r--sysdeps/mach/hurd/utimensat.c4
-rw-r--r--sysdeps/mach/hurd/utimes.c4
-rw-r--r--sysdeps/mach/hurd/wait4.c4
-rw-r--r--sysdeps/mach/hurd/write.c4
-rw-r--r--sysdeps/mach/hurd/x86/dl-sysdep.c4
-rw-r--r--sysdeps/mach/hurd/xmknod.c4
-rw-r--r--sysdeps/mach/hurd/xmknodat.c4
-rw-r--r--sysdeps/mach/hurd/xstat.c4
-rw-r--r--sysdeps/mach/hurd/xstat64.c4
-rw-r--r--sysdeps/mach/hurd/xstatconv.c4
-rw-r--r--sysdeps/mach/i386/bits/mach/param.h4
-rw-r--r--sysdeps/mach/i386/machine-lock.h4
-rw-r--r--sysdeps/mach/i386/machine-sp.h4
-rw-r--r--sysdeps/mach/i386/syscall.S4
-rw-r--r--sysdeps/mach/i386/sysdep.h4
-rw-r--r--sysdeps/mach/i386/thread_state.h4
-rw-r--r--sysdeps/mach/libc-lock.h4
-rw-r--r--sysdeps/mach/mprotect.c4
-rw-r--r--sysdeps/mach/msync.c4
-rw-r--r--sysdeps/mach/munmap.c4
-rw-r--r--sysdeps/mach/nanosleep.c70
-rw-r--r--sysdeps/mach/pagecopy.h16
-rw-r--r--sysdeps/mach/readonly-area.c4
-rw-r--r--sysdeps/mach/sched_yield.c4
-rw-r--r--sysdeps/mach/sleep.c8
-rw-r--r--sysdeps/mach/strerror_l.c4
-rw-r--r--sysdeps/mach/sysdep.h4
-rw-r--r--sysdeps/mach/thread_state.h8
-rw-r--r--sysdeps/mach/usleep.c9
-rw-r--r--sysdeps/mach/xpg-strerror.c4
-rw-r--r--sysdeps/microblaze/__longjmp.S4
-rw-r--r--sysdeps/microblaze/_mcount.S4
-rw-r--r--sysdeps/microblaze/asm-syntax.h4
-rw-r--r--sysdeps/microblaze/atomic-machine.h4
-rw-r--r--sysdeps/microblaze/backtrace.c4
-rw-r--r--sysdeps/microblaze/backtrace_linux.c4
-rw-r--r--sysdeps/microblaze/be/Implies1
-rw-r--r--sysdeps/microblaze/bits/endian.h30
-rw-r--r--sysdeps/microblaze/bits/endianness.h15
-rw-r--r--sysdeps/microblaze/bits/fenv.h6
-rw-r--r--sysdeps/microblaze/bits/link.h4
-rw-r--r--sysdeps/microblaze/bits/setjmp.h4
-rw-r--r--sysdeps/microblaze/bsd-_setjmp.S4
-rw-r--r--sysdeps/microblaze/bsd-setjmp.S4
-rw-r--r--sysdeps/microblaze/crti.S4
-rw-r--r--sysdeps/microblaze/crtn.S4
-rw-r--r--sysdeps/microblaze/dl-machine.h18
-rw-r--r--sysdeps/microblaze/dl-tls.h4
-rw-r--r--sysdeps/microblaze/dl-trampoline.S4
-rw-r--r--sysdeps/microblaze/gccframe.h4
-rw-r--r--sysdeps/microblaze/jmpbuf-unwind.h4
-rw-r--r--sysdeps/microblaze/ldsodefs.h4
-rw-r--r--sysdeps/microblaze/le/Implies1
-rw-r--r--sysdeps/microblaze/libc-tls.c4
-rw-r--r--sysdeps/microblaze/machine-gmon.h4
-rw-r--r--sysdeps/microblaze/memusage.h4
-rw-r--r--sysdeps/microblaze/nptl/Makefile4
-rw-r--r--sysdeps/microblaze/nptl/bits/pthreadtypes-arch.h72
-rw-r--r--sysdeps/microblaze/nptl/bits/semaphore.h4
-rw-r--r--sysdeps/microblaze/nptl/pthread-offsets.h5
-rw-r--r--sysdeps/microblaze/nptl/pthreaddef.h4
-rw-r--r--sysdeps/microblaze/nptl/tls.h4
-rw-r--r--sysdeps/microblaze/preconfigure153
-rw-r--r--sysdeps/microblaze/preconfigure.ac11
-rw-r--r--sysdeps/microblaze/setjmp.S4
-rw-r--r--sysdeps/microblaze/sotruss-lib.c4
-rw-r--r--sysdeps/microblaze/stackinfo.h4
-rw-r--r--sysdeps/microblaze/start.S4
-rw-r--r--sysdeps/microblaze/sysdep.h4
-rw-r--r--sysdeps/microblaze/tls-macros.h4
-rw-r--r--sysdeps/microblaze/tst-audit.h4
-rw-r--r--sysdeps/mips/Makefile7
-rw-r--r--sysdeps/mips/__longjmp.c11
-rw-r--r--sysdeps/mips/add_n.S4
-rw-r--r--sysdeps/mips/addmul_1.S4
-rw-r--r--sysdeps/mips/atomic-machine.h4
-rw-r--r--sysdeps/mips/bits/dlfcn.h4
-rw-r--r--sysdeps/mips/bits/endian.h15
-rw-r--r--sysdeps/mips/bits/endianness.h16
-rw-r--r--sysdeps/mips/bits/fenv.h48
-rw-r--r--sysdeps/mips/bits/ipctypes.h4
-rw-r--r--sysdeps/mips/bits/link.h4
-rw-r--r--sysdeps/mips/bits/setjmp.h4
-rw-r--r--sysdeps/mips/bits/wordsize.h4
-rw-r--r--sysdeps/mips/bsd-_setjmp.S4
-rw-r--r--sysdeps/mips/bsd-setjmp.S4
-rw-r--r--sysdeps/mips/dl-dtprocnum.h4
-rw-r--r--sysdeps/mips/dl-machine-reject-phdr.h4
-rw-r--r--sysdeps/mips/dl-machine.h6
-rw-r--r--sysdeps/mips/dl-procinfo.c4
-rw-r--r--sysdeps/mips/dl-procinfo.h4
-rw-r--r--sysdeps/mips/dl-tls.h4
-rw-r--r--sysdeps/mips/dl-trampoline.c6
-rw-r--r--sysdeps/mips/fpregdef.h4
-rw-r--r--sysdeps/mips/fpu/e_sqrt.c4
-rw-r--r--sysdeps/mips/fpu/e_sqrtf.c4
-rw-r--r--sysdeps/mips/fpu/fclrexcpt.c4
-rw-r--r--sysdeps/mips/fpu/fedisblxcpt.c4
-rw-r--r--sysdeps/mips/fpu/feenablxcpt.c4
-rw-r--r--sysdeps/mips/fpu/fegetenv.c4
-rw-r--r--sysdeps/mips/fpu/fegetexcept.c4
-rw-r--r--sysdeps/mips/fpu/fegetmode.c4
-rw-r--r--sysdeps/mips/fpu/fegetround.c4
-rw-r--r--sysdeps/mips/fpu/feholdexcpt.c4
-rw-r--r--sysdeps/mips/fpu/fenv_libc.h4
-rw-r--r--sysdeps/mips/fpu/fenv_private.h241
-rw-r--r--sysdeps/mips/fpu/fesetenv.c4
-rw-r--r--sysdeps/mips/fpu/fesetexcept.c4
-rw-r--r--sysdeps/mips/fpu/fesetmode.c4
-rw-r--r--sysdeps/mips/fpu/fesetround.c4
-rw-r--r--sysdeps/mips/fpu/feupdateenv.c4
-rw-r--r--sysdeps/mips/fpu/fgetexcptflg.c4
-rw-r--r--sysdeps/mips/fpu/fraiseexcpt.c4
-rw-r--r--sysdeps/mips/fpu/fsetexcptflg.c4
-rw-r--r--sysdeps/mips/fpu/ftestexcept.c4
-rw-r--r--sysdeps/mips/fpu_control.h5
-rw-r--r--sysdeps/mips/gccframe.h4
-rw-r--r--sysdeps/mips/ieee754/bits/floatn.h4
-rw-r--r--sysdeps/mips/ieee754/bits/long-double.h4
-rw-r--r--sysdeps/mips/ieee754/ieee754.h21
-rw-r--r--sysdeps/mips/include/sys/asm.h4
-rw-r--r--sysdeps/mips/jmpbuf-unwind.h4
-rw-r--r--sysdeps/mips/ldsodefs.h19
-rw-r--r--sysdeps/mips/libc-tls.c4
-rw-r--r--sysdeps/mips/linkmap.h1
-rw-r--r--sysdeps/mips/lshift.S4
-rw-r--r--sysdeps/mips/machine-gmon.h4
-rw-r--r--sysdeps/mips/math-tests-snan-payload.h30
-rw-r--r--sysdeps/mips/math-tests.h38
-rw-r--r--sysdeps/mips/math_private.h245
-rw-r--r--sysdeps/mips/memcpy.S4
-rw-r--r--sysdeps/mips/memset.S4
-rw-r--r--sysdeps/mips/memusage.h4
-rw-r--r--sysdeps/mips/mips32/crti.S4
-rw-r--r--sysdeps/mips/mips32/crtn.S4
-rw-r--r--sysdeps/mips/mips32/fpu/fix-fp-int-convert-overflow.h4
-rw-r--r--sysdeps/mips/mips32/fpu/fpucw-helpers.c4
-rw-r--r--sysdeps/mips/mips32/libm-test-ulps88
-rw-r--r--sysdeps/mips/mips32/sfp-machine.h4
-rw-r--r--sysdeps/mips/mips64/__longjmp.c4
-rw-r--r--sysdeps/mips/mips64/add_n.S4
-rw-r--r--sysdeps/mips/mips64/addmul_1.S4
-rw-r--r--sysdeps/mips/mips64/bsd-_setjmp.S4
-rw-r--r--sysdeps/mips/mips64/bsd-setjmp.S4
-rw-r--r--sysdeps/mips/mips64/e_sqrtl.c4
-rw-r--r--sysdeps/mips/mips64/gmp-mparam.h4
-rw-r--r--sysdeps/mips/mips64/libm-test-ulps88
-rw-r--r--sysdeps/mips/mips64/lshift.S4
-rw-r--r--sysdeps/mips/mips64/mul_1.S4
-rw-r--r--sysdeps/mips/mips64/n32/crti.S4
-rw-r--r--sysdeps/mips/mips64/n32/crtn.S4
-rw-r--r--sysdeps/mips/mips64/n64/crti.S4
-rw-r--r--sysdeps/mips/mips64/n64/crtn.S4
-rw-r--r--sysdeps/mips/mips64/rshift.S4
-rw-r--r--sysdeps/mips/mips64/setjmp.S4
-rw-r--r--sysdeps/mips/mips64/setjmp_aux.c4
-rw-r--r--sysdeps/mips/mips64/sfp-machine.h13
-rw-r--r--sysdeps/mips/mips64/sub_n.S4
-rw-r--r--sysdeps/mips/mips64/submul_1.S4
-rw-r--r--sysdeps/mips/mul_1.S4
-rw-r--r--sysdeps/mips/nan-high-order-bit.h4
-rw-r--r--sysdeps/mips/nofpu/fesetenv.c8
-rw-r--r--sysdeps/mips/nofpu/feupdateenv.c8
-rw-r--r--sysdeps/mips/nptl/Makefile4
-rw-r--r--sysdeps/mips/nptl/bits/pthreadtypes-arch.h51
-rw-r--r--sysdeps/mips/nptl/bits/semaphore.h4
-rw-r--r--sysdeps/mips/nptl/bits/struct_mutex.h56
-rw-r--r--sysdeps/mips/nptl/bits/struct_rwlock.h71
-rw-r--r--sysdeps/mips/nptl/pthread-offsets.h18
-rw-r--r--sysdeps/mips/nptl/pthreaddef.h4
-rw-r--r--sysdeps/mips/nptl/tls.h4
-rw-r--r--sysdeps/mips/regdef.h5
-rw-r--r--sysdeps/mips/rshift.S4
-rw-r--r--sysdeps/mips/setjmp.S4
-rw-r--r--sysdeps/mips/setjmp_aux.c4
-rw-r--r--sysdeps/mips/sgidefs.h5
-rw-r--r--sysdeps/mips/sotruss-lib.c4
-rw-r--r--sysdeps/mips/stackinfo.h4
-rw-r--r--sysdeps/mips/start.S4
-rw-r--r--sysdeps/mips/strcmp.S4
-rw-r--r--sysdeps/mips/sub_n.S4
-rw-r--r--sysdeps/mips/submul_1.S4
-rw-r--r--sysdeps/mips/sys/asm.h21
-rw-r--r--sysdeps/mips/sys/fpregdef.h4
-rw-r--r--sysdeps/mips/sys/regdef.h5
-rw-r--r--sysdeps/mips/sys/tas.h7
-rw-r--r--sysdeps/mips/sys/ucontext.h4
-rw-r--r--sysdeps/mips/tst-abi-fp32mod.c4
-rw-r--r--sysdeps/mips/tst-abi-fp64amod.c4
-rw-r--r--sysdeps/mips/tst-abi-fp64mod.c4
-rw-r--r--sysdeps/mips/tst-abi-fpxxmod.c4
-rw-r--r--sysdeps/mips/tst-abi-fpxxomod.c4
-rw-r--r--sysdeps/mips/tst-abi-interlink.c4
-rw-r--r--sysdeps/mips/tst-audit.h4
-rw-r--r--sysdeps/mips/tst-mode-switch-1.c4
-rw-r--r--sysdeps/mips/tst-mode-switch-2.c4
-rw-r--r--sysdeps/mips/tst-mode-switch-3.c4
-rw-r--r--sysdeps/mips/tst-undefined-weak-lib.S43
-rw-r--r--sysdeps/mips/tst-undefined-weak.c28
-rw-r--r--sysdeps/nios2/Makefile4
-rw-r--r--sysdeps/nios2/__longjmp.S4
-rw-r--r--sysdeps/nios2/bits/endian.h12
-rw-r--r--sysdeps/nios2/bits/endianness.h16
-rw-r--r--sysdeps/nios2/bits/fenv.h6
-rw-r--r--sysdeps/nios2/bits/link.h4
-rw-r--r--sysdeps/nios2/bits/setjmp.h4
-rw-r--r--sysdeps/nios2/crti.S4
-rw-r--r--sysdeps/nios2/crtn.S4
-rw-r--r--sysdeps/nios2/dl-init.c4
-rw-r--r--sysdeps/nios2/dl-machine.h4
-rw-r--r--sysdeps/nios2/dl-sysdep.h4
-rw-r--r--sysdeps/nios2/dl-tls.h4
-rw-r--r--sysdeps/nios2/dl-trampoline.S4
-rw-r--r--sysdeps/nios2/gccframe.h4
-rw-r--r--sysdeps/nios2/gmp-mparam.h4
-rw-r--r--sysdeps/nios2/jmpbuf-offsets.h4
-rw-r--r--sysdeps/nios2/jmpbuf-unwind.h4
-rw-r--r--sysdeps/nios2/ldsodefs.h4
-rw-r--r--sysdeps/nios2/libc-tls.c4
-rw-r--r--sysdeps/nios2/machine-gmon.h4
-rw-r--r--sysdeps/nios2/math-tests.h28
-rw-r--r--sysdeps/nios2/memusage.h4
-rw-r--r--sysdeps/nios2/nptl/Makefile4
-rw-r--r--sysdeps/nios2/nptl/bits/pthreadtypes-arch.h41
-rw-r--r--sysdeps/nios2/nptl/bits/semaphore.h4
-rw-r--r--sysdeps/nios2/nptl/pthread-offsets.h5
-rw-r--r--sysdeps/nios2/nptl/pthreaddef.h4
-rw-r--r--sysdeps/nios2/nptl/tls.h4
-rw-r--r--sysdeps/nios2/setjmp.S4
-rw-r--r--sysdeps/nios2/sotruss-lib.c4
-rw-r--r--sysdeps/nios2/stackinfo.h4
-rw-r--r--sysdeps/nios2/start.S4
-rw-r--r--sysdeps/nios2/sysdep.h4
-rw-r--r--sysdeps/nios2/tst-audit.h4
-rw-r--r--sysdeps/nptl/Makeconfig4
-rw-r--r--sysdeps/nptl/Makefile4
-rw-r--r--sysdeps/nptl/aio_misc.h19
-rw-r--r--sysdeps/nptl/allocrtsig.c33
-rw-r--r--sysdeps/nptl/bits/pthreadtypes-arch.h45
-rw-r--r--sysdeps/nptl/bits/pthreadtypes.h4
-rw-r--r--sysdeps/nptl/bits/struct_mutex.h84
-rw-r--r--sysdeps/nptl/bits/struct_rwlock.h61
-rw-r--r--sysdeps/nptl/bits/thread-shared-types.h127
-rw-r--r--sysdeps/nptl/dl-tunables.list27
-rw-r--r--sysdeps/nptl/fork.c18
-rw-r--r--sysdeps/nptl/fork.h12
-rw-r--r--sysdeps/nptl/futex-internal.h315
-rw-r--r--sysdeps/nptl/gai_misc.h19
-rw-r--r--sysdeps/nptl/internaltypes.h4
-rw-r--r--sysdeps/nptl/jmp-unwind.c4
-rw-r--r--sysdeps/nptl/libc-lock.h4
-rw-r--r--sysdeps/nptl/libc-lockP.h21
-rw-r--r--sysdeps/nptl/librt-cancellation.c4
-rw-r--r--sysdeps/nptl/lowlevellock-futex.h185
-rw-r--r--sysdeps/nptl/lowlevellock.h65
-rw-r--r--sysdeps/nptl/malloc-machine.h4
-rw-r--r--sysdeps/nptl/proc_service.h (renamed from nptl_db/proc_service.h)4
-rw-r--r--sysdeps/nptl/pthread-functions.h16
-rw-r--r--sysdeps/nptl/pthread-offsets.h26
-rw-r--r--sysdeps/nptl/pthread.h113
-rw-r--r--sysdeps/nptl/setxid.h4
-rw-r--r--sysdeps/nptl/shm-directory.h4
-rw-r--r--sysdeps/nptl/stdio-lock.h11
-rw-r--r--sysdeps/nptl/sys/procfs.h4
-rw-r--r--sysdeps/nptl/thread_db.h (renamed from nptl_db/thread_db.h)4
-rw-r--r--sysdeps/nptl/threads.h4
-rw-r--r--sysdeps/nptl/timer_routines.h4
-rw-r--r--sysdeps/nptl/unwind-forcedunwind.c4
-rw-r--r--sysdeps/posix/alarm.c4
-rw-r--r--sysdeps/posix/clock.c4
-rw-r--r--sysdeps/posix/clock_getres.c70
-rw-r--r--sysdeps/posix/closedir.c4
-rw-r--r--sysdeps/posix/ctermid.c4
-rw-r--r--sysdeps/posix/cuserid.c4
-rw-r--r--sysdeps/posix/dirfd.c4
-rw-r--r--sysdeps/posix/dirstream.h4
-rw-r--r--sysdeps/posix/dl-fileid.h4
-rw-r--r--sysdeps/posix/dup.c4
-rw-r--r--sysdeps/posix/dup2.c4
-rw-r--r--sysdeps/posix/euidaccess.c4
-rw-r--r--sysdeps/posix/fdopendir.c4
-rw-r--r--sysdeps/posix/flock.c4
-rw-r--r--sysdeps/posix/fpathconf.c4
-rw-r--r--sysdeps/posix/gai_strerror.c4
-rw-r--r--sysdeps/posix/getaddrinfo.c65
-rw-r--r--sysdeps/posix/getcwd.c5
-rw-r--r--sysdeps/posix/getdtsz.c4
-rw-r--r--sysdeps/posix/gethostname.c4
-rw-r--r--sysdeps/posix/getpagesize.c4
-rw-r--r--sysdeps/posix/gettimeofday.c67
-rw-r--r--sysdeps/posix/isatty.c4
-rw-r--r--sysdeps/posix/isfdtype.c4
-rw-r--r--sysdeps/posix/killpg.c4
-rw-r--r--sysdeps/posix/libc_fatal.c39
-rw-r--r--sysdeps/posix/mkfifo.c4
-rw-r--r--sysdeps/posix/mkfifoat.c4
-rw-r--r--sysdeps/posix/nice.c4
-rw-r--r--sysdeps/posix/open64.c16
-rw-r--r--sysdeps/posix/opendir.c4
-rw-r--r--sysdeps/posix/pathconf.c4
-rw-r--r--sysdeps/posix/pause.c6
-rw-r--r--sysdeps/posix/posix_fallocate.c4
-rw-r--r--sysdeps/posix/posix_fallocate64.c4
-rw-r--r--sysdeps/posix/pread.c4
-rw-r--r--sysdeps/posix/pread64.c4
-rw-r--r--sysdeps/posix/preadv.c4
-rw-r--r--sysdeps/posix/preadv2.c4
-rw-r--r--sysdeps/posix/preadv64.c4
-rw-r--r--sysdeps/posix/preadv64v2.c4
-rw-r--r--sysdeps/posix/preadv_common.c4
-rw-r--r--sysdeps/posix/profil.c19
-rw-r--r--sysdeps/posix/pwrite.c4
-rw-r--r--sysdeps/posix/pwrite64.c4
-rw-r--r--sysdeps/posix/pwritev.c4
-rw-r--r--sysdeps/posix/pwritev2.c4
-rw-r--r--sysdeps/posix/pwritev64.c4
-rw-r--r--sysdeps/posix/pwritev64v2.c4
-rw-r--r--sysdeps/posix/pwritev_common.c4
-rw-r--r--sysdeps/posix/raise.c4
-rw-r--r--sysdeps/posix/readdir.c4
-rw-r--r--sysdeps/posix/readdir_r.c4
-rw-r--r--sysdeps/posix/readv.c4
-rw-r--r--sysdeps/posix/remove.c4
-rw-r--r--sysdeps/posix/rename.c8
-rw-r--r--sysdeps/posix/rewinddir.c4
-rw-r--r--sysdeps/posix/seekdir.c4
-rw-r--r--sysdeps/posix/shm-directory.c4
-rw-r--r--sysdeps/posix/shm-directory.h4
-rw-r--r--sysdeps/posix/shm_open.c4
-rw-r--r--sysdeps/posix/shm_unlink.c4
-rw-r--r--sysdeps/posix/sigblock.c4
-rw-r--r--sysdeps/posix/sigignore.c4
-rw-r--r--sysdeps/posix/sigintr.c4
-rw-r--r--sysdeps/posix/signal.c4
-rw-r--r--sysdeps/posix/sigpause.c7
-rw-r--r--sysdeps/posix/sigset.c4
-rw-r--r--sysdeps/posix/sigsetmask.c4
-rw-r--r--sysdeps/posix/sigsuspend.c4
-rw-r--r--sysdeps/posix/sigwait.c16
-rw-r--r--sysdeps/posix/sleep.c4
-rw-r--r--sysdeps/posix/spawni.c36
-rw-r--r--sysdeps/posix/sprofil.c29
-rw-r--r--sysdeps/posix/sysconf.c8
-rw-r--r--sysdeps/posix/system.c193
-rw-r--r--sysdeps/posix/sysv_signal.c4
-rw-r--r--sysdeps/posix/telldir.c4
-rw-r--r--sysdeps/posix/tempname.c54
-rw-r--r--sysdeps/posix/time.c40
-rw-r--r--sysdeps/posix/timespec_get.c38
-rw-r--r--sysdeps/posix/truncate.c4
-rw-r--r--sysdeps/posix/ttyname.c4
-rw-r--r--sysdeps/posix/ttyname_r.c4
-rw-r--r--sysdeps/posix/ulimit.c4
-rw-r--r--sysdeps/posix/usleep.c4
-rw-r--r--sysdeps/posix/utime.c4
-rw-r--r--sysdeps/posix/utimes.c4
-rw-r--r--sysdeps/posix/wait.c4
-rw-r--r--sysdeps/posix/wait3.c4
-rw-r--r--sysdeps/posix/waitid.c16
-rw-r--r--sysdeps/posix/writev.c4
-rw-r--r--sysdeps/powerpc/Makefile11
-rw-r--r--sysdeps/powerpc/atomic-machine.h4
-rw-r--r--sysdeps/powerpc/bits/endian.h36
-rw-r--r--sysdeps/powerpc/bits/endianness.h16
-rw-r--r--sysdeps/powerpc/bits/fenv.h6
-rw-r--r--sysdeps/powerpc/bits/fenvinline.h41
-rw-r--r--sysdeps/powerpc/bits/floatn.h4
-rw-r--r--sysdeps/powerpc/bits/fp-fast.h4
-rw-r--r--sysdeps/powerpc/bits/hwcap.h4
-rw-r--r--sysdeps/powerpc/bits/link.h4
-rw-r--r--sysdeps/powerpc/bits/mathinline.h58
-rw-r--r--sysdeps/powerpc/bits/setjmp.h4
-rw-r--r--sysdeps/powerpc/cpu-features.c6
-rw-r--r--sysdeps/powerpc/cpu-features.h4
-rw-r--r--sysdeps/powerpc/dl-procinfo.c4
-rw-r--r--sysdeps/powerpc/dl-procinfo.h61
-rw-r--r--sysdeps/powerpc/dl-tls.c2
-rw-r--r--sysdeps/powerpc/dl-tls.h4
-rw-r--r--sysdeps/powerpc/dl-tunables.list6
-rw-r--r--sysdeps/powerpc/ffs.c4
-rw-r--r--sysdeps/powerpc/fpu/e_hypot.c98
-rw-r--r--sysdeps/powerpc/fpu/e_hypotf.c4
-rw-r--r--sysdeps/powerpc/fpu/e_rem_pio2f.c188
-rw-r--r--sysdeps/powerpc/fpu/e_sqrt.c5
-rw-r--r--sysdeps/powerpc/fpu/e_sqrtf.c7
-rw-r--r--sysdeps/powerpc/fpu/fclrexcpt.c4
-rw-r--r--sysdeps/powerpc/fpu/fe_mask.c4
-rw-r--r--sysdeps/powerpc/fpu/fe_nomask.c4
-rw-r--r--sysdeps/powerpc/fpu/fedisblxcpt.c30
-rw-r--r--sysdeps/powerpc/fpu/feenablxcpt.c31
-rw-r--r--sysdeps/powerpc/fpu/fegetenv.c4
-rw-r--r--sysdeps/powerpc/fpu/fegetexcept.c20
-rw-r--r--sysdeps/powerpc/fpu/fegetmode.c6
-rw-r--r--sysdeps/powerpc/fpu/fegetround.c4
-rw-r--r--sysdeps/powerpc/fpu/feholdexcpt.c11
-rw-r--r--sysdeps/powerpc/fpu/fenv_const.c4
-rw-r--r--sysdeps/powerpc/fpu/fenv_libc.h189
-rw-r--r--sysdeps/powerpc/fpu/fenv_private.h139
-rw-r--r--sysdeps/powerpc/fpu/fesetenv.c31
-rw-r--r--sysdeps/powerpc/fpu/fesetexcept.c4
-rw-r--r--sysdeps/powerpc/fpu/fesetmode.c22
-rw-r--r--sysdeps/powerpc/fpu/fesetround.c4
-rw-r--r--sysdeps/powerpc/fpu/feupdateenv.c21
-rw-r--r--sysdeps/powerpc/fpu/fgetexcptflg.c4
-rw-r--r--sysdeps/powerpc/fpu/fix-fp-int-compare-invalid.h4
-rw-r--r--sysdeps/powerpc/fpu/fraiseexcpt.c4
-rw-r--r--sysdeps/powerpc/fpu/fsetexcptflg.c4
-rw-r--r--sysdeps/powerpc/fpu/ftestexcept.c4
-rw-r--r--sysdeps/powerpc/fpu/get-rounding-mode.h33
-rw-r--r--sysdeps/powerpc/fpu/k_cosf.c65
-rw-r--r--sysdeps/powerpc/fpu/k_rem_pio2f.c273
-rw-r--r--sysdeps/powerpc/fpu/k_sinf.c57
-rw-r--r--sysdeps/powerpc/fpu/libm-test-ulps96
-rw-r--r--sysdeps/powerpc/fpu/math-barriers.h4
-rw-r--r--sysdeps/powerpc/fpu/math-tests-trap-force.h27
-rw-r--r--sysdeps/powerpc/fpu/math_ldbl.h4
-rw-r--r--sysdeps/powerpc/fpu/math_private.h89
-rw-r--r--sysdeps/powerpc/fpu/round_to_integer.h154
-rw-r--r--sysdeps/powerpc/fpu/s_ceil.c35
-rw-r--r--sysdeps/powerpc/fpu/s_ceilf.c35
-rw-r--r--sysdeps/powerpc/fpu/s_copysign.c32
-rw-r--r--sysdeps/powerpc/fpu/s_copysignf.c28
-rw-r--r--sysdeps/powerpc/fpu/s_cosf.c70
-rw-r--r--sysdeps/powerpc/fpu/s_fabs.S33
-rw-r--r--sysdeps/powerpc/fpu/s_fabsf.S1
-rw-r--r--sysdeps/powerpc/fpu/s_float_bitwise.h115
-rw-r--r--sysdeps/powerpc/fpu/s_floor.c35
-rw-r--r--sysdeps/powerpc/fpu/s_floorf.c35
-rw-r--r--sysdeps/powerpc/fpu/s_fma.S28
-rw-r--r--sysdeps/powerpc/fpu/s_fma.c27
-rw-r--r--sysdeps/powerpc/fpu/s_fmaf.S28
-rw-r--r--sysdeps/powerpc/fpu/s_fmaf.c27
-rw-r--r--sysdeps/powerpc/fpu/s_isnan.c62
-rw-r--r--sysdeps/powerpc/fpu/s_isnanf.S1
-rw-r--r--sysdeps/powerpc/fpu/s_logb.c64
-rw-r--r--sysdeps/powerpc/fpu/s_logbf.c56
-rw-r--r--sysdeps/powerpc/fpu/s_logbl.c78
-rw-r--r--sysdeps/powerpc/fpu/s_lrintf.S1
-rw-r--r--sysdeps/powerpc/fpu/s_lrintf.c1
-rw-r--r--sysdeps/powerpc/fpu/s_modf.c59
-rw-r--r--sysdeps/powerpc/fpu/s_modff.c55
-rw-r--r--sysdeps/powerpc/fpu/s_nearbyint.c30
-rw-r--r--sysdeps/powerpc/fpu/s_nearbyintf.c30
-rw-r--r--sysdeps/powerpc/fpu/s_rint.c24
-rw-r--r--sysdeps/powerpc/fpu/s_rintf.c24
-rw-r--r--sysdeps/powerpc/fpu/s_round.c35
-rw-r--r--sysdeps/powerpc/fpu/s_roundf.c35
-rw-r--r--sysdeps/powerpc/fpu/s_sinf.c70
-rw-r--r--sysdeps/powerpc/fpu/s_trunc.c35
-rw-r--r--sysdeps/powerpc/fpu/s_truncf.c35
-rw-r--r--sysdeps/powerpc/fpu/tst-setcontext-fpscr.c16
-rw-r--r--sysdeps/powerpc/fpu_control.h76
-rw-r--r--sysdeps/powerpc/gccframe.h4
-rw-r--r--sysdeps/powerpc/hwcapinfo.c4
-rw-r--r--sysdeps/powerpc/hwcapinfo.h4
-rw-r--r--sysdeps/powerpc/jmpbuf-offsets.h4
-rw-r--r--sysdeps/powerpc/jmpbuf-unwind.h4
-rw-r--r--sysdeps/powerpc/ldsodefs.h4
-rw-r--r--sysdeps/powerpc/libc-tls.c4
-rw-r--r--sysdeps/powerpc/longjmp.c4
-rw-r--r--sysdeps/powerpc/machine-gmon.h4
-rw-r--r--sysdeps/powerpc/math-tests-snan-cast.h30
-rw-r--r--sysdeps/powerpc/math-tests.h33
-rw-r--r--sysdeps/powerpc/memusage.h4
-rw-r--r--sysdeps/powerpc/nofpu/atomic-feclearexcept.c4
-rw-r--r--sysdeps/powerpc/nofpu/atomic-feholdexcept.c4
-rw-r--r--sysdeps/powerpc/nofpu/atomic-feupdateenv.c4
-rw-r--r--sysdeps/powerpc/nofpu/fclrexcpt.c4
-rw-r--r--sysdeps/powerpc/nofpu/fedisblxcpt.c4
-rw-r--r--sysdeps/powerpc/nofpu/feenablxcpt.c4
-rw-r--r--sysdeps/powerpc/nofpu/fegetenv.c4
-rw-r--r--sysdeps/powerpc/nofpu/fegetexcept.c4
-rw-r--r--sysdeps/powerpc/nofpu/fegetmode.c4
-rw-r--r--sysdeps/powerpc/nofpu/fegetround.c4
-rw-r--r--sysdeps/powerpc/nofpu/feholdexcpt.c4
-rw-r--r--sysdeps/powerpc/nofpu/fenv_const.c4
-rw-r--r--sysdeps/powerpc/nofpu/fesetenv.c4
-rw-r--r--sysdeps/powerpc/nofpu/fesetexcept.c4
-rw-r--r--sysdeps/powerpc/nofpu/fesetmode.c4
-rw-r--r--sysdeps/powerpc/nofpu/fesetround.c4
-rw-r--r--sysdeps/powerpc/nofpu/feupdateenv.c4
-rw-r--r--sysdeps/powerpc/nofpu/fgetexcptflg.c4
-rw-r--r--sysdeps/powerpc/nofpu/flt-rounds.c4
-rw-r--r--sysdeps/powerpc/nofpu/fraiseexcpt.c4
-rw-r--r--sysdeps/powerpc/nofpu/fsetexcptflg.c4
-rw-r--r--sysdeps/powerpc/nofpu/ftestexcept.c4
-rw-r--r--sysdeps/powerpc/nofpu/get-rounding-mode.h4
-rw-r--r--sysdeps/powerpc/nofpu/libm-test-ulps88
-rw-r--r--sysdeps/powerpc/nofpu/sim-full.c10
-rw-r--r--sysdeps/powerpc/nofpu/soft-supp.h4
-rw-r--r--sysdeps/powerpc/nofpu/sqrtdf2.c4
-rw-r--r--sysdeps/powerpc/nofpu/sqrtsf2.c4
-rw-r--r--sysdeps/powerpc/novmx-longjmp.c4
-rw-r--r--sysdeps/powerpc/novmx-sigjmp.c10
-rw-r--r--sysdeps/powerpc/novmxsetjmp.h4
-rw-r--r--sysdeps/powerpc/nptl/Makefile4
-rw-r--r--sysdeps/powerpc/nptl/bits/pthreadtypes-arch.h81
-rw-r--r--sysdeps/powerpc/nptl/bits/struct_mutex.h63
-rw-r--r--sysdeps/powerpc/nptl/bits/struct_rwlock.h61
-rw-r--r--sysdeps/powerpc/nptl/elide.h4
-rw-r--r--sysdeps/powerpc/nptl/pthread-offsets.h14
-rw-r--r--sysdeps/powerpc/nptl/pthread_spin_lock.c4
-rw-r--r--sysdeps/powerpc/nptl/pthread_spin_trylock.c4
-rw-r--r--sysdeps/powerpc/nptl/pthread_spin_unlock.c4
-rw-r--r--sysdeps/powerpc/nptl/pthreaddef.h4
-rw-r--r--sysdeps/powerpc/nptl/tcb-offsets.sym1
-rw-r--r--sysdeps/powerpc/nptl/tls.h17
-rw-r--r--sysdeps/powerpc/power4/fpu/Makefile5
-rw-r--r--sysdeps/powerpc/power4/fpu/mpa-arch.h56
-rw-r--r--sysdeps/powerpc/power4/fpu/mpa.c214
-rw-r--r--sysdeps/powerpc/power4/wordcopy.c4
-rw-r--r--sysdeps/powerpc/power5+/fpu/s_modf.c51
-rw-r--r--sysdeps/powerpc/power5+/fpu/s_modff.c47
-rw-r--r--sysdeps/powerpc/power6/wcschr.c96
-rw-r--r--sysdeps/powerpc/power6/wcscpy.c105
-rw-r--r--sysdeps/powerpc/power6/wcsrchr.c89
-rw-r--r--sysdeps/powerpc/power6/wordcopy.c4
-rw-r--r--sysdeps/powerpc/power7/fpu/s_logb.c74
-rw-r--r--sysdeps/powerpc/power7/fpu/s_logbf.c61
-rw-r--r--sysdeps/powerpc/power7/fpu/s_logbl.c83
-rw-r--r--sysdeps/powerpc/powerpc32/405/memcmp.S4
-rw-r--r--sysdeps/powerpc/powerpc32/405/memcpy.S4
-rw-r--r--sysdeps/powerpc/powerpc32/405/memset.S4
-rw-r--r--sysdeps/powerpc/powerpc32/405/strcmp.S4
-rw-r--r--sysdeps/powerpc/powerpc32/405/strcpy.S4
-rw-r--r--sysdeps/powerpc/powerpc32/405/strlen.S4
-rw-r--r--sysdeps/powerpc/powerpc32/405/strncmp.S4
-rw-r--r--sysdeps/powerpc/powerpc32/476/memset.S4
-rw-r--r--sysdeps/powerpc/powerpc32/__longjmp-common.S46
-rw-r--r--sysdeps/powerpc/powerpc32/__longjmp.S4
-rw-r--r--sysdeps/powerpc/powerpc32/a2/memcpy.S4
-rw-r--r--sysdeps/powerpc/powerpc32/add_n.S4
-rw-r--r--sysdeps/powerpc/powerpc32/addmul_1.S4
-rw-r--r--sysdeps/powerpc/powerpc32/atomic-machine.h4
-rw-r--r--sysdeps/powerpc/powerpc32/backtrace.c8
-rw-r--r--sysdeps/powerpc/powerpc32/bsd-_setjmp.S4
-rw-r--r--sysdeps/powerpc/powerpc32/bsd-setjmp.S4
-rw-r--r--sysdeps/powerpc/powerpc32/bzero.S4
-rw-r--r--sysdeps/powerpc/powerpc32/cell/memcpy.S4
-rw-r--r--sysdeps/powerpc/powerpc32/crti.S4
-rw-r--r--sysdeps/powerpc/powerpc32/crtn.S4
-rw-r--r--sysdeps/powerpc/powerpc32/dl-irel.h6
-rw-r--r--sysdeps/powerpc/powerpc32/dl-machine.c8
-rw-r--r--sysdeps/powerpc/powerpc32/dl-machine.h4
-rw-r--r--sysdeps/powerpc/powerpc32/dl-start.S7
-rw-r--r--sysdeps/powerpc/powerpc32/dl-trampoline.S4
-rw-r--r--sysdeps/powerpc/powerpc32/e500/nofpu/Makefile9
-rw-r--r--sysdeps/powerpc/powerpc32/e500/nofpu/atomic-feclearexcept.c50
-rw-r--r--sysdeps/powerpc/powerpc32/e500/nofpu/atomic-feholdexcept.c55
-rw-r--r--sysdeps/powerpc/powerpc32/e500/nofpu/atomic-feupdateenv.c46
-rw-r--r--sysdeps/powerpc/powerpc32/e500/nofpu/fclrexcpt.c53
-rw-r--r--sysdeps/powerpc/powerpc32/e500/nofpu/fe_note_change.c39
-rw-r--r--sysdeps/powerpc/powerpc32/e500/nofpu/fedisblxcpt.c54
-rw-r--r--sysdeps/powerpc/powerpc32/e500/nofpu/feenablxcpt.c54
-rw-r--r--sysdeps/powerpc/powerpc32/e500/nofpu/fegetenv.c49
-rw-r--r--sysdeps/powerpc/powerpc32/e500/nofpu/fegetexcept.c36
-rw-r--r--sysdeps/powerpc/powerpc32/e500/nofpu/fegetmode.c37
-rw-r--r--sysdeps/powerpc/powerpc32/e500/nofpu/fegetround.c31
-rw-r--r--sysdeps/powerpc/powerpc32/e500/nofpu/feholdexcpt.c59
-rw-r--r--sysdeps/powerpc/powerpc32/e500/nofpu/fenv_const.c45
-rw-r--r--sysdeps/powerpc/powerpc32/e500/nofpu/fenv_libc.h99
-rw-r--r--sysdeps/powerpc/powerpc32/e500/nofpu/fesetenv.c50
-rw-r--r--sysdeps/powerpc/powerpc32/e500/nofpu/fesetexcept.c37
-rw-r--r--sysdeps/powerpc/powerpc32/e500/nofpu/fesetmode.c43
-rw-r--r--sysdeps/powerpc/powerpc32/e500/nofpu/fesetround.c37
-rw-r--r--sysdeps/powerpc/powerpc32/e500/nofpu/fetestexceptflag.c25
-rw-r--r--sysdeps/powerpc/powerpc32/e500/nofpu/feupdateenv.c48
-rw-r--r--sysdeps/powerpc/powerpc32/e500/nofpu/fexcepts_from_prctl.c42
-rw-r--r--sysdeps/powerpc/powerpc32/e500/nofpu/fexcepts_from_spe.c41
-rw-r--r--sysdeps/powerpc/powerpc32/e500/nofpu/fexcepts_to_prctl.c42
-rw-r--r--sysdeps/powerpc/powerpc32/e500/nofpu/fexcepts_to_spe.c41
-rw-r--r--sysdeps/powerpc/powerpc32/e500/nofpu/fgetexcptflg.c41
-rw-r--r--sysdeps/powerpc/powerpc32/e500/nofpu/flt-rounds.c39
-rw-r--r--sysdeps/powerpc/powerpc32/e500/nofpu/fraiseexcept-soft.c25
-rw-r--r--sysdeps/powerpc/powerpc32/e500/nofpu/fraiseexcpt.c41
-rw-r--r--sysdeps/powerpc/powerpc32/e500/nofpu/fsetexcptflg.c55
-rw-r--r--sysdeps/powerpc/powerpc32/e500/nofpu/ftestexcept.c31
-rw-r--r--sysdeps/powerpc/powerpc32/e500/nofpu/get-rounding-mode.h4
-rw-r--r--sysdeps/powerpc/powerpc32/e500/nofpu/s_fabsf.S28
-rw-r--r--sysdeps/powerpc/powerpc32/e500/nofpu/spe-raise.c53
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/Makefile7
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S4
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/__longjmp.S4
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/fix-int-fp-convert-zero.h4
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/fprrest.S4
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/fprsave.S4
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/s_ceil.S76
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/s_ceilf.S76
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/s_copysign.S53
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/s_copysignf.S1
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/s_copysignl.S4
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/s_fabsl.S4
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/s_floor.S76
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/s_floorf.S76
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/s_isnan.S57
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/s_llrint.c15
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/s_llrintf.c13
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/s_llround.c55
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/s_llroundf.c4
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/s_lrint.S40
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/s_lrint.c40
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/s_lround.S123
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/s_lround.c77
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/s_nearbyint.S80
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/s_nearbyintf.S79
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/s_rint.S69
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/s_rintf.S66
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/s_round.S97
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/s_roundf.S96
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/s_trunc.S83
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/s_truncf.S83
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/setjmp-common.S4
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/setjmp.S4
-rw-r--r--sysdeps/powerpc/powerpc32/gprrest0.S4
-rw-r--r--sysdeps/powerpc/powerpc32/gprrest1.S4
-rw-r--r--sysdeps/powerpc/powerpc32/gprsave0.S4
-rw-r--r--sysdeps/powerpc/powerpc32/gprsave1.S4
-rw-r--r--sysdeps/powerpc/powerpc32/libgcc-compat.S4
-rw-r--r--sysdeps/powerpc/powerpc32/lshift.S4
-rw-r--r--sysdeps/powerpc/powerpc32/memset.S4
-rw-r--r--sysdeps/powerpc/powerpc32/mul_1.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/Makefile26
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypot-power7.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypot-ppc32.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypot.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypotf-power7.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypotf-ppc32.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypotf.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil-power5+.S33
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil-power5+.c3
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil-ppc32.S31
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil-ppc32.c3
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil.c5
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceilf-power5+.S26
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceilf-power5+.c3
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceilf-ppc32.S27
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceilf-ppc32.c3
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceilf.c5
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysign-power6.S33
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysign-ppc32.S34
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysign.c44
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysignf.c33
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_finite-power7.S33
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_finite-ppc32.c33
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_finite.c57
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_finitef-ppc32.c31
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_finitef.c34
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floor-power5+.S33
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floor-power5+.c3
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floor-ppc32.S31
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floor-ppc32.c3
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floor.c5
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floorf-power5+.S26
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floorf-power5+.c3
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floorf-ppc32.S27
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floorf-ppc32.c3
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floorf.c5
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isinf-power7.S33
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isinf-ppc32.c33
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isinf.c50
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isinff-ppc32.c31
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isinff.c35
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnan-power5.S33
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnan-power6.S33
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnan-power7.S33
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnan-ppc32.S32
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnan.c56
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnanf-power5.S28
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnanf-power6.S28
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnanf.c39
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrint-power6.S31
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrint-power6.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrint-ppc32.S31
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrint-ppc32.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrint.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrintf-power6.S26
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrintf-power6.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrintf-ppc32.S26
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrintf-ppc32.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrintf.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround-power5+.S31
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround-power5+.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround-power6.S31
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround-power6.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround-ppc32.S31
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround-ppc32.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llroundf.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logb-power7.c17
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logb-ppc32.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logb.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbf-power7.c12
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbf-ppc32.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbf.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbl-power7.c7
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbl-ppc32.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbl.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrint-power6x.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrint-ppc32.S31
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrint-ppc32.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrint.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrintf.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround-power5+.S33
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround-power5+.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround-power6x.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround-ppc32.S31
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround-ppc32.c2
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lroundf.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf-power5+.c17
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf-ppc32.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff-power5+.c13
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff-ppc32.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_round-power5+.S33
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_round-power5+.c3
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_round-ppc32.S31
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_round-ppc32.c3
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_round.c5
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_roundf-power5+.S26
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_roundf-power5+.c3
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_roundf-ppc32.S27
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_roundf-ppc32.c3
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_roundf.c5
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_trunc-power5+.S33
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_trunc-power5+.c3
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_trunc-ppc32.S31
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_trunc-ppc32.c3
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_trunc.c5
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_truncf-power5+.S26
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_truncf-power5+.c3
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_truncf-ppc32.S27
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_truncf-ppc32.c3
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_truncf.c5
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/s_llrint.S39
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/s_llrintf.S39
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/s_llround.S105
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/s_llroundf.S1
-rw-r--r--sysdeps/powerpc/powerpc32/power4/hp-timing.h8
-rw-r--r--sysdeps/powerpc/powerpc32/power4/memcmp.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/memcopy.h4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/memcpy.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/memset.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/Makefile13
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/bzero-power6.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/bzero-power7.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/bzero-ppc32.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/bzero.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/ifunc-impl-list.c37
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/init-arch.h4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/memchr-power7.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/memchr-ppc32.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/memchr.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/memcmp-power7.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/memcmp-ppc32.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/memcmp.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-a2.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-cell.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-power6.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-power7.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-ppc32.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/memcpy.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/memmove-power7.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/memmove-ppc.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/memmove.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/mempcpy-power7.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/mempcpy-ppc32.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/mempcpy.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/memrchr-power7.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/memrchr-ppc32.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/memrchr.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/memset-power6.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/memset-power7.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/memset-ppc32.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/memset.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/rawmemchr-power7.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/rawmemchr-ppc32.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/rawmemchr.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/rtld-memcmp.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/rtld-memset.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/rtld-strchr.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/rtld-strnlen.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp-power7.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp_l-power7.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp_l.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/strchr-power7.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/strchr-ppc32.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/strchr.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/strchrnul-power7.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/strchrnul-ppc32.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/strchrnul.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/strlen-power7.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/strlen-ppc32.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/strlen.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/strncase-power7.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/strncase.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/strncase_l-power7.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/strncase_l.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/strncmp-power7.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/strncmp-ppc32.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/strncmp.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/strnlen-power7.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/strnlen-ppc32.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/strnlen.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/wcschr-power6.c26
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/wcschr-power7.c26
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/wcschr-ppc32.c43
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/wcschr.c41
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy-power6.c22
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy-power7.c22
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy-ppc32.c26
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy.c36
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr-power6.c20
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr-power7.c20
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr-ppc32.c26
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr.c36
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/wordcopy-power7.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/wordcopy-ppc32.c4
-rw-r--r--sysdeps/powerpc/powerpc32/power4/strncmp.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power5+/fpu/s_ceil.S29
-rw-r--r--sysdeps/powerpc/powerpc32/power5+/fpu/s_ceilf.S30
-rw-r--r--sysdeps/powerpc/powerpc32/power5+/fpu/s_floor.S29
-rw-r--r--sysdeps/powerpc/powerpc32/power5+/fpu/s_floorf.S30
-rw-r--r--sysdeps/powerpc/powerpc32/power5+/fpu/s_llround.S53
-rw-r--r--sysdeps/powerpc/powerpc32/power5+/fpu/s_llroundf.S1
-rw-r--r--sysdeps/powerpc/powerpc32/power5+/fpu/s_lround.S51
-rw-r--r--sysdeps/powerpc/powerpc32/power5+/fpu/s_round.S29
-rw-r--r--sysdeps/powerpc/powerpc32/power5+/fpu/s_roundf.S30
-rw-r--r--sysdeps/powerpc/powerpc32/power5+/fpu/s_trunc.S29
-rw-r--r--sysdeps/powerpc/powerpc32/power5+/fpu/s_truncf.S30
-rw-r--r--sysdeps/powerpc/powerpc32/power5/fpu/s_isnan.S61
-rw-r--r--sysdeps/powerpc/powerpc32/power5/fpu/s_isnanf.S45
-rw-r--r--sysdeps/powerpc/powerpc32/power6/fpu/s_copysign.S49
-rw-r--r--sysdeps/powerpc/powerpc32/power6/fpu/s_copysignf.S1
-rw-r--r--sysdeps/powerpc/powerpc32/power6/fpu/s_isnan.S61
-rw-r--r--sysdeps/powerpc/powerpc32/power6/fpu/s_isnanf.S44
-rw-r--r--sysdeps/powerpc/powerpc32/power6/fpu/s_llrint.S39
-rw-r--r--sysdeps/powerpc/powerpc32/power6/fpu/s_llrintf.S39
-rw-r--r--sysdeps/powerpc/powerpc32/power6/fpu/s_llround.S53
-rw-r--r--sysdeps/powerpc/powerpc32/power6/fpu/s_llroundf.S1
-rw-r--r--sysdeps/powerpc/powerpc32/power6/memcpy.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power6/memset.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power6x/fpu/s_lrint.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power6x/fpu/s_lround.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power7/fpu/s_finite.S93
-rw-r--r--sysdeps/powerpc/powerpc32/power7/fpu/s_finitef.S1
-rw-r--r--sysdeps/powerpc/powerpc32/power7/fpu/s_isinf.S85
-rw-r--r--sysdeps/powerpc/powerpc32/power7/fpu/s_isinff.S1
-rw-r--r--sysdeps/powerpc/powerpc32/power7/fpu/s_isnan.S90
-rw-r--r--sysdeps/powerpc/powerpc32/power7/fpu/s_isnanf.S1
-rw-r--r--sysdeps/powerpc/powerpc32/power7/memchr.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power7/memcmp.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power7/memcpy.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power7/mempcpy.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power7/memrchr.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power7/memset.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power7/rawmemchr.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power7/strcasecmp.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power7/strchr.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power7/strchrnul.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power7/strlen.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power7/strncmp.S4
-rw-r--r--sysdeps/powerpc/powerpc32/power7/strnlen.S4
-rw-r--r--sysdeps/powerpc/powerpc32/ppc-mcount.S4
-rw-r--r--sysdeps/powerpc/powerpc32/register-dump.h12
-rw-r--r--sysdeps/powerpc/powerpc32/rshift.S4
-rw-r--r--sysdeps/powerpc/powerpc32/setjmp-common.S46
-rw-r--r--sysdeps/powerpc/powerpc32/setjmp.S4
-rw-r--r--sysdeps/powerpc/powerpc32/start.S4
-rw-r--r--sysdeps/powerpc/powerpc32/stpcpy.S4
-rw-r--r--sysdeps/powerpc/powerpc32/strchr.S4
-rw-r--r--sysdeps/powerpc/powerpc32/strcmp.S4
-rw-r--r--sysdeps/powerpc/powerpc32/strcpy.S4
-rw-r--r--sysdeps/powerpc/powerpc32/strlen.S4
-rw-r--r--sysdeps/powerpc/powerpc32/strncmp.S4
-rw-r--r--sysdeps/powerpc/powerpc32/sub_n.S4
-rw-r--r--sysdeps/powerpc/powerpc32/submul_1.S4
-rw-r--r--sysdeps/powerpc/powerpc32/symbol-hacks.h4
-rw-r--r--sysdeps/powerpc/powerpc32/sysdep.h21
-rw-r--r--sysdeps/powerpc/powerpc32/tst-audit.h4
-rw-r--r--sysdeps/powerpc/powerpc64/Makefile5
-rw-r--r--sysdeps/powerpc/powerpc64/__longjmp-common.S4
-rw-r--r--sysdeps/powerpc/powerpc64/__longjmp.S4
-rw-r--r--sysdeps/powerpc/powerpc64/a2/memcpy.S4
-rw-r--r--sysdeps/powerpc/powerpc64/addmul_1.S35
-rw-r--r--sysdeps/powerpc/powerpc64/atomic-machine.h4
-rw-r--r--sysdeps/powerpc/powerpc64/backtrace.c6
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/Makefile67
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_ceil-power5+.c3
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_ceil-ppc64.c3
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_ceil.c32
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_ceilf-power5+.c3
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_ceilf-ppc64.c3
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_ceilf.c32
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_floor-power5+.c3
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_floor-ppc64.c3
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_floor.c34
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_floorf-power5+.c3
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_floorf-ppc64.c3
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_floorf.c34
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llrint-power6x.c2
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llrint-power8.c2
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llrint-ppc64.c2
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llrint.c47
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llrintf.c47
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llround-power5+.c2
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llround-power6x.c2
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llround-power8.c2
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llround-ppc64.c2
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llround.c48
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llroundf-ppc64.c2
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llroundf.c47
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logb-power7.c (renamed from sysdeps/powerpc/powerpc64/fpu/multiarch/s_logb-power7.c)7
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logb-ppc64.c (renamed from sysdeps/powerpc/powerpc64/fpu/multiarch/s_logb-ppc64.c)4
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logb.c33
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbf-power7.c (renamed from sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbf-power7.c)7
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbf-ppc64.c (renamed from sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbf-ppc64.c)4
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbf.c33
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbl-power7.c (renamed from sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbl-power7.c)7
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbl-ppc64.c (renamed from sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbl-ppc64.c)4
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbl.c32
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_lrint.c (renamed from sysdeps/powerpc/powerpc64/fpu/multiarch/s_lrint.c)0
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_lround.c (renamed from sysdeps/powerpc/powerpc64/fpu/multiarch/s_lround.c)0
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modf-power5+.c (renamed from sysdeps/powerpc/powerpc64/fpu/multiarch/s_modf-power5+.c)7
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modf-ppc64.c (renamed from sysdeps/powerpc/powerpc64/fpu/multiarch/s_modf-ppc64.c)4
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modf.c37
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modff-power5+.c (renamed from sysdeps/powerpc/powerpc64/fpu/multiarch/s_modff-power5+.c)7
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modff-ppc64.c (renamed from sysdeps/powerpc/powerpc64/fpu/multiarch/s_modff-ppc64.c)4
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modff.c31
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_round-power5+.c3
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_round-ppc64.c3
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_round.c34
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_roundf-power5+.c3
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_roundf-ppc64.c3
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_roundf.c32
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_trunc-power5+.c3
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_trunc-ppc64.c3
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_trunc.c34
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_truncf-power5+.c3
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_truncf-ppc64.c3
-rw-r--r--sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_truncf.c32
-rw-r--r--sysdeps/powerpc/powerpc64/bzero.S4
-rw-r--r--sysdeps/powerpc/powerpc64/cell/memcpy.S4
-rw-r--r--sysdeps/powerpc/powerpc64/crti.S4
-rw-r--r--sysdeps/powerpc/powerpc64/crtn.S4
-rw-r--r--sysdeps/powerpc/powerpc64/dl-dtprocnum.h4
-rw-r--r--sysdeps/powerpc/powerpc64/dl-irel.h6
-rw-r--r--sysdeps/powerpc/powerpc64/dl-machine.c4
-rw-r--r--sysdeps/powerpc/powerpc64/dl-machine.h6
-rw-r--r--sysdeps/powerpc/powerpc64/dl-trampoline.S4
-rw-r--r--sysdeps/powerpc/powerpc64/entry.h4
-rw-r--r--sysdeps/powerpc/powerpc64/ffsll.c4
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/Makefile7
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile46
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf-power8.S24
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf-ppc64.c21
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf.c32
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypot-power7.c19
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypot-ppc64.c26
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypot.c33
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypotf-power7.c19
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypotf-ppc64.c26
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypotf.c33
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceil-power5+.S30
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceil-ppc64.S30
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceil.c33
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceilf-power5+.S24
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceilf-ppc64.S24
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceilf.c33
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign-power6.S32
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign-ppc64.S34
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign.c44
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysignf.c33
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_cosf-power8.S24
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_cosf-ppc64.c24
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_cosf.c32
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite-power7.S32
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite-power8.S32
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite-ppc64.c34
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite.c69
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_finitef-ppc64.c32
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_finitef.c37
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_floor-power5+.S30
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_floor-ppc64.S30
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_floor.c33
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_floorf-power5+.S24
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_floorf-ppc64.S24
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_floorf.c33
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf-power7.S32
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf-power8.S32
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf-ppc64.c33
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf.c62
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinff-ppc64.c31
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinff.c38
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power5.S32
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power6.S32
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power6x.S32
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power7.S32
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power8.S32
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-ppc64.S36
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan.c71
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnanf.c44
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-power6x.S30
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-power8.S30
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-ppc64.S30
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint.c47
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrintf.c47
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power5+.S31
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power6x.S31
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power8.S30
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-ppc64.S27
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround.c48
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_llroundf-ppc64.S31
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_llroundf.c47
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_logb.c33
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbf.c33
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbl.c32
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_modf.c37
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_modff.c31
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_round-power5+.S30
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_round-ppc64.S30
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_round.c33
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_roundf-power5+.S24
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_roundf-ppc64.S24
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_roundf.c33
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf-power8.S24
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf-ppc64.c24
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf.c32
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_trunc-power5+.S30
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_trunc-ppc64.S30
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_trunc.c33
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_truncf-power5+.S24
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_truncf-ppc64.S24
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/s_truncf.c33
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/w_expf.c1
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/s_ceil.S65
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/s_ceilf.S67
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/s_copysign.S53
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/s_copysignf.S1
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/s_copysignl.S4
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/s_fabsl.S4
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/s_floor.S65
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/s_floorf.S67
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/s_isnan.S56
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/s_llrint.S45
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/s_llrint.c55
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/s_llrintf.S1
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/s_llrintf.c1
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/s_llround.S86
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/s_llround.c83
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/s_llroundf.S89
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/s_llroundf.c83
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/s_lrint.S1
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/s_lrint.c1
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/s_lround.S1
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/s_lround.c1
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/s_lroundf.S1
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/s_lroundf.c1
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/s_nearbyint.S68
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/s_nearbyintf.S69
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/s_rint.S58
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/s_rintf.S57
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/s_round.S80
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/s_roundf.S82
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/s_trunc.S72
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/s_truncf.S74
-rw-r--r--sysdeps/powerpc/powerpc64/hp-timing.h8
-rw-r--r--sysdeps/powerpc/powerpc64/le/Makefile2
-rw-r--r--sysdeps/powerpc/powerpc64/le/configure42
-rw-r--r--sysdeps/powerpc/powerpc64/le/configure.ac28
-rw-r--r--sysdeps/powerpc/powerpc64/le/fpu/e_sqrtf128.c4
-rw-r--r--sysdeps/powerpc/powerpc64/le/fpu/multiarch/w_sqrtf128-power9.c4
-rw-r--r--sysdeps/powerpc/powerpc64/le/fpu/multiarch/w_sqrtf128-ppc64le.c4
-rw-r--r--sysdeps/powerpc/powerpc64/le/fpu/multiarch/w_sqrtf128.c4
-rw-r--r--sysdeps/powerpc/powerpc64/le/fpu/sfp-machine.h5
-rw-r--r--sysdeps/powerpc/powerpc64/le/power9/fpu/e_sqrtf128.c4
-rw-r--r--sysdeps/powerpc/powerpc64/le/power9/strcmp.S264
-rw-r--r--sysdeps/powerpc/powerpc64/le/power9/strncmp.S (renamed from sysdeps/powerpc/powerpc64/power9/strncmp.S)18
-rw-r--r--sysdeps/powerpc/powerpc64/lshift.S16
-rw-r--r--sysdeps/powerpc/powerpc64/memcpy.S4
-rw-r--r--sysdeps/powerpc/powerpc64/memset.S4
-rw-r--r--sysdeps/powerpc/powerpc64/mul_1.S17
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/Makefile20
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/bcopy-ppc64.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/bcopy.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/bzero.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c41
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/init-arch.h4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memchr-power7.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memchr-power8.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memchr-ppc64.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memchr.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memcmp-power4.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memcmp-power7.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memcmp-power8.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memcmp-ppc64.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memcmp.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memcpy-a2.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memcpy-cell.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memcpy-power4.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memcpy-power6.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memcpy-power7.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memcpy-power8-cached.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memcpy-ppc64.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memcpy.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memmove-power7.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memmove-ppc64.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memmove.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/mempcpy-power7.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/mempcpy-ppc64.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/mempcpy.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memrchr-power7.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memrchr-power8.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memrchr-ppc64.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memrchr.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memset-power4.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memset-power6.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memset-power7.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memset-power8.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memset-ppc64.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memset.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/rawmemchr-power7.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/rawmemchr-ppc64.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/rawmemchr.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/rtld-memset.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/rtld-strchr.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/stpcpy-power7.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/stpcpy-power8.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/stpcpy-ppc64.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/stpcpy.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/stpncpy-power7.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/stpncpy-power8.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/stpncpy-ppc64.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/stpncpy.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcasecmp-power7.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcasecmp-power8.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcasecmp-ppc64.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcasecmp.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcasecmp_l-power7.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcasecmp_l.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcasestr-power8.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcasestr-ppc64.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcasestr.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcat-power7.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcat-power8.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcat-ppc64.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcat.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strchr-power7.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strchr-power8.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strchr-ppc64.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strchr.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strchrnul-power7.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strchrnul-power8.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strchrnul-ppc64.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strchrnul.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcmp-power7.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcmp-power8.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcmp-power9.S8
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcmp-ppc64.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcmp.c8
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcpy-power7.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcpy-power8.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcpy-ppc64.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcpy.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcspn-power8.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcspn-ppc64.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcspn.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strlen-power7.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strlen-power8.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strlen-ppc64.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strlen.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strncase-power7.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strncase-power8.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strncase-ppc64.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strncase.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strncase_l-power7.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strncase_l.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strncat-power7.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strncat-power8.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strncat-ppc64.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strncat.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strncmp-power4.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strncmp-power7.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strncmp-power8.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strncmp-power9.S8
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strncmp-ppc64.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strncmp.c8
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strncpy-power7.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strncpy-power8.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strncpy-ppc64.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strncpy.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strnlen-power7.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strnlen-power8.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strnlen-ppc64.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strnlen.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strrchr-power7.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strrchr-power8.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strrchr-ppc64.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strrchr.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strspn-power8.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strspn-ppc64.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strspn.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strstr-power7.S4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strstr-ppc64.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strstr.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/wcschr-power6.c19
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/wcschr-power7.c19
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/wcschr-ppc64.c18
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/wcschr.c43
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/wcscpy-power6.c19
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/wcscpy-power7.c19
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/wcscpy-ppc64.c18
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/wcscpy.c36
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/wcsrchr-power6.c19
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/wcsrchr-power7.c19
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/wcsrchr-ppc64.c18
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/wcsrchr.c36
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/wordcopy-ppc64.c4
-rw-r--r--sysdeps/powerpc/powerpc64/power4/memcmp.S11
-rw-r--r--sysdeps/powerpc/powerpc64/power4/memcpy.S4
-rw-r--r--sysdeps/powerpc/powerpc64/power4/memset.S4
-rw-r--r--sysdeps/powerpc/powerpc64/power4/strncmp.S4
-rw-r--r--sysdeps/powerpc/powerpc64/power5+/fpu/s_ceil.S30
-rw-r--r--sysdeps/powerpc/powerpc64/power5+/fpu/s_ceilf.S31
-rw-r--r--sysdeps/powerpc/powerpc64/power5+/fpu/s_floor.S30
-rw-r--r--sysdeps/powerpc/powerpc64/power5+/fpu/s_floorf.S31
-rw-r--r--sysdeps/powerpc/powerpc64/power5+/fpu/s_llround.S56
-rw-r--r--sysdeps/powerpc/powerpc64/power5+/fpu/s_llroundf.S1
-rw-r--r--sysdeps/powerpc/powerpc64/power5+/fpu/s_round.S30
-rw-r--r--sysdeps/powerpc/powerpc64/power5+/fpu/s_roundf.S31
-rw-r--r--sysdeps/powerpc/powerpc64/power5+/fpu/s_trunc.S30
-rw-r--r--sysdeps/powerpc/powerpc64/power5+/fpu/s_truncf.S31
-rw-r--r--sysdeps/powerpc/powerpc64/power5/fpu/s_isnan.S60
-rw-r--r--sysdeps/powerpc/powerpc64/power6/fpu/s_copysign.S49
-rw-r--r--sysdeps/powerpc/powerpc64/power6/fpu/s_copysignf.S1
-rw-r--r--sysdeps/powerpc/powerpc64/power6/fpu/s_isnan.S59
-rw-r--r--sysdeps/powerpc/powerpc64/power6/memcpy.S4
-rw-r--r--sysdeps/powerpc/powerpc64/power6/memset.S4
-rw-r--r--sysdeps/powerpc/powerpc64/power6/wcschr.c1
-rw-r--r--sysdeps/powerpc/powerpc64/power6/wcscpy.c1
-rw-r--r--sysdeps/powerpc/powerpc64/power6/wcsrchr.c1
-rw-r--r--sysdeps/powerpc/powerpc64/power6x/fpu/s_isnan.S58
-rw-r--r--sysdeps/powerpc/powerpc64/power6x/fpu/s_llrint.S42
-rw-r--r--sysdeps/powerpc/powerpc64/power6x/fpu/s_llround.S52
-rw-r--r--sysdeps/powerpc/powerpc64/power6x/fpu/s_llroundf.S1
-rw-r--r--sysdeps/powerpc/powerpc64/power7/add_n.S4
-rw-r--r--sysdeps/powerpc/powerpc64/power7/fpu/s_finite.S70
-rw-r--r--sysdeps/powerpc/powerpc64/power7/fpu/s_finitef.S1
-rw-r--r--sysdeps/powerpc/powerpc64/power7/fpu/s_isinf.S69
-rw-r--r--sysdeps/powerpc/powerpc64/power7/fpu/s_isinff.S1
-rw-r--r--sysdeps/powerpc/powerpc64/power7/fpu/s_isnan.S68
-rw-r--r--sysdeps/powerpc/powerpc64/power7/fpu/s_isnanf.S1
-rw-r--r--sysdeps/powerpc/powerpc64/power7/fpu/s_logb.c1
-rw-r--r--sysdeps/powerpc/powerpc64/power7/fpu/s_logbf.c1
-rw-r--r--sysdeps/powerpc/powerpc64/power7/fpu/s_logbl.c1
-rw-r--r--sysdeps/powerpc/powerpc64/power7/memchr.S4
-rw-r--r--sysdeps/powerpc/powerpc64/power7/memcmp.S4
-rw-r--r--sysdeps/powerpc/powerpc64/power7/memcpy.S4
-rw-r--r--sysdeps/powerpc/powerpc64/power7/memmove.S4
-rw-r--r--sysdeps/powerpc/powerpc64/power7/mempcpy.S4
-rw-r--r--sysdeps/powerpc/powerpc64/power7/memrchr.S4
-rw-r--r--sysdeps/powerpc/powerpc64/power7/memset.S4
-rw-r--r--sysdeps/powerpc/powerpc64/power7/rawmemchr.S4
-rw-r--r--sysdeps/powerpc/powerpc64/power7/stpncpy.S4
-rw-r--r--sysdeps/powerpc/powerpc64/power7/strcasecmp.S4
-rw-r--r--sysdeps/powerpc/powerpc64/power7/strchr.S4
-rw-r--r--sysdeps/powerpc/powerpc64/power7/strchrnul.S4
-rw-r--r--sysdeps/powerpc/powerpc64/power7/strcmp.S4
-rw-r--r--sysdeps/powerpc/powerpc64/power7/strlen.S4
-rw-r--r--sysdeps/powerpc/powerpc64/power7/strncmp.S5
-rw-r--r--sysdeps/powerpc/powerpc64/power7/strncpy.S4
-rw-r--r--sysdeps/powerpc/powerpc64/power7/strnlen.S4
-rw-r--r--sysdeps/powerpc/powerpc64/power7/strrchr.S4
-rw-r--r--sysdeps/powerpc/powerpc64/power7/strstr-ppc64.c4
-rw-r--r--sysdeps/powerpc/powerpc64/power7/strstr.S4
-rw-r--r--sysdeps/powerpc/powerpc64/power7/sub_n.S4
-rw-r--r--sysdeps/powerpc/powerpc64/power8/fpu/e_expf.S303
-rw-r--r--sysdeps/powerpc/powerpc64/power8/fpu/s_cosf.S509
-rw-r--r--sysdeps/powerpc/powerpc64/power8/fpu/s_finite.S56
-rw-r--r--sysdeps/powerpc/powerpc64/power8/fpu/s_finitef.S1
-rw-r--r--sysdeps/powerpc/powerpc64/power8/fpu/s_isinf.S61
-rw-r--r--sysdeps/powerpc/powerpc64/power8/fpu/s_isinff.S1
-rw-r--r--sysdeps/powerpc/powerpc64/power8/fpu/s_isnan.S56
-rw-r--r--sysdeps/powerpc/powerpc64/power8/fpu/s_isnanf.S1
-rw-r--r--sysdeps/powerpc/powerpc64/power8/fpu/s_llrint.S43
-rw-r--r--sysdeps/powerpc/powerpc64/power8/fpu/s_llround.S46
-rw-r--r--sysdeps/powerpc/powerpc64/power8/fpu/s_llroundf.S1
-rw-r--r--sysdeps/powerpc/powerpc64/power8/fpu/s_sinf.S520
-rw-r--r--sysdeps/powerpc/powerpc64/power8/fpu/w_expf.c1
-rw-r--r--sysdeps/powerpc/powerpc64/power8/memchr.S35
-rw-r--r--sysdeps/powerpc/powerpc64/power8/memcmp.S25
-rw-r--r--sysdeps/powerpc/powerpc64/power8/memrchr.S34
-rw-r--r--sysdeps/powerpc/powerpc64/power8/memset.S14
-rw-r--r--sysdeps/powerpc/powerpc64/power8/stpcpy.S4
-rw-r--r--sysdeps/powerpc/powerpc64/power8/stpncpy.S4
-rw-r--r--sysdeps/powerpc/powerpc64/power8/strcasecmp.S40
-rw-r--r--sysdeps/powerpc/powerpc64/power8/strcasestr-ppc64.c4
-rw-r--r--sysdeps/powerpc/powerpc64/power8/strcasestr.S18
-rw-r--r--sysdeps/powerpc/powerpc64/power8/strchr.S34
-rw-r--r--sysdeps/powerpc/powerpc64/power8/strchrnul.S4
-rw-r--r--sysdeps/powerpc/powerpc64/power8/strcmp.S5
-rw-r--r--sysdeps/powerpc/powerpc64/power8/strcpy.S4
-rw-r--r--sysdeps/powerpc/powerpc64/power8/strcspn.S4
-rw-r--r--sysdeps/powerpc/powerpc64/power8/strlen.S27
-rw-r--r--sysdeps/powerpc/powerpc64/power8/strncase.S4
-rw-r--r--sysdeps/powerpc/powerpc64/power8/strncmp.S6
-rw-r--r--sysdeps/powerpc/powerpc64/power8/strncpy.S6
-rw-r--r--sysdeps/powerpc/powerpc64/power8/strnlen.S55
-rw-r--r--sysdeps/powerpc/powerpc64/power8/strrchr.S43
-rw-r--r--sysdeps/powerpc/powerpc64/power8/strspn.S39
-rw-r--r--sysdeps/powerpc/powerpc64/power9/strcmp.S268
-rw-r--r--sysdeps/powerpc/powerpc64/ppc-mcount.S5
-rw-r--r--sysdeps/powerpc/powerpc64/register-dump.h12
-rw-r--r--sysdeps/powerpc/powerpc64/setjmp-bug21895.c4
-rw-r--r--sysdeps/powerpc/powerpc64/setjmp-common.S4
-rw-r--r--sysdeps/powerpc/powerpc64/setjmp.S4
-rw-r--r--sysdeps/powerpc/powerpc64/start.S4
-rw-r--r--sysdeps/powerpc/powerpc64/strchr.S4
-rw-r--r--sysdeps/powerpc/powerpc64/strcmp.S4
-rw-r--r--sysdeps/powerpc/powerpc64/strlen.S4
-rw-r--r--sysdeps/powerpc/powerpc64/strncmp.S4
-rw-r--r--sysdeps/powerpc/powerpc64/submul_1.S4
-rw-r--r--sysdeps/powerpc/powerpc64/sysdep.h21
-rw-r--r--sysdeps/powerpc/powerpc64/tst-audit.h4
-rw-r--r--sysdeps/powerpc/powerpc64/tst-setjmp-bug21895-static.c4
-rw-r--r--sysdeps/powerpc/powerpc64/tst-ucontext-ppc64-vscr.c84
-rw-r--r--sysdeps/powerpc/preconfigure20
-rw-r--r--sysdeps/powerpc/sched_cpucount.c4
-rw-r--r--sysdeps/powerpc/sigjmp.c10
-rw-r--r--sysdeps/powerpc/sotruss-lib.c4
-rw-r--r--sysdeps/powerpc/stackinfo.h4
-rw-r--r--sysdeps/powerpc/sys/platform/ppc.h4
-rw-r--r--sysdeps/powerpc/sysdep.h24
-rw-r--r--sysdeps/powerpc/test-arith.c30
-rw-r--r--sysdeps/powerpc/test-get_hwcap-static.c4
-rw-r--r--sysdeps/powerpc/test-get_hwcap.c4
-rw-r--r--sysdeps/powerpc/test-gettimebase.c4
-rw-r--r--sysdeps/powerpc/tst-set_ppr.c4
-rw-r--r--sysdeps/powerpc/tst-stack-align.h4
-rw-r--r--sysdeps/powerpc/tst-tlsifunc-static.c4
-rw-r--r--sysdeps/powerpc/tst-tlsifunc.c4
-rw-r--r--sysdeps/pthread/Makefile4
-rw-r--r--sysdeps/pthread/aio_cancel.c4
-rw-r--r--sysdeps/pthread/aio_error.c4
-rw-r--r--sysdeps/pthread/aio_fsync.c4
-rw-r--r--sysdeps/pthread/aio_misc.c10
-rw-r--r--sysdeps/pthread/aio_misc.h4
-rw-r--r--sysdeps/pthread/aio_notify.c4
-rw-r--r--sysdeps/pthread/aio_read.c4
-rw-r--r--sysdeps/pthread/aio_read64.c4
-rw-r--r--sysdeps/pthread/aio_suspend.c10
-rw-r--r--sysdeps/pthread/aio_write.c4
-rw-r--r--sysdeps/pthread/aio_write64.c4
-rw-r--r--sysdeps/pthread/allocalim.h4
-rw-r--r--sysdeps/pthread/bits/sigthread.h4
-rw-r--r--sysdeps/pthread/flockfile.c4
-rw-r--r--sysdeps/pthread/ftrylockfile.c4
-rw-r--r--sysdeps/pthread/funlockfile.c4
-rw-r--r--sysdeps/pthread/lio_listio.c4
-rw-r--r--sysdeps/pthread/lio_listio64.c4
-rw-r--r--sysdeps/pthread/posix-timer.h4
-rw-r--r--sysdeps/pthread/semaphore.h34
-rw-r--r--sysdeps/pthread/timer_create.c4
-rw-r--r--sysdeps/pthread/timer_delete.c4
-rw-r--r--sysdeps/pthread/timer_getoverr.c4
-rw-r--r--sysdeps/pthread/timer_gettime.c4
-rw-r--r--sysdeps/pthread/timer_routines.c4
-rw-r--r--sysdeps/pthread/timer_settime.c10
-rw-r--r--sysdeps/pthread/tst-timer.c4
-rw-r--r--sysdeps/riscv/__longjmp.S4
-rw-r--r--sysdeps/riscv/bits/endian.h5
-rw-r--r--sysdeps/riscv/bits/endianness.h11
-rw-r--r--sysdeps/riscv/bits/fenv.h6
-rw-r--r--sysdeps/riscv/bits/link.h4
-rw-r--r--sysdeps/riscv/bits/setjmp.h4
-rw-r--r--sysdeps/riscv/bits/wordsize.h4
-rw-r--r--sysdeps/riscv/dl-machine.h4
-rw-r--r--sysdeps/riscv/dl-tls.h4
-rw-r--r--sysdeps/riscv/dl-trampoline.S4
-rw-r--r--sysdeps/riscv/e_sqrtl.c4
-rw-r--r--sysdeps/riscv/fpu_control.h4
-rw-r--r--sysdeps/riscv/gccframe.h4
-rw-r--r--sysdeps/riscv/jmpbuf-offsets.h4
-rw-r--r--sysdeps/riscv/jmpbuf-unwind.h4
-rw-r--r--sysdeps/riscv/ldsodefs.h7
-rw-r--r--sysdeps/riscv/libc-tls.c4
-rw-r--r--sysdeps/riscv/machine-gmon.h4
-rw-r--r--sysdeps/riscv/math-tests-snan-payload.h26
-rw-r--r--sysdeps/riscv/math-tests-trap.h26
-rw-r--r--sysdeps/riscv/math-tests.h42
-rw-r--r--sysdeps/riscv/memusage.h4
-rw-r--r--sysdeps/riscv/nofpu/libm-test-ulps8
-rw-r--r--sysdeps/riscv/nofpu/math-tests-exceptions.h29
-rw-r--r--sysdeps/riscv/nofpu/math-tests-rounding.h27
-rw-r--r--sysdeps/riscv/nptl/Makefile4
-rw-r--r--sysdeps/riscv/nptl/bits/pthreadtypes-arch.h33
-rw-r--r--sysdeps/riscv/nptl/bits/semaphore.h4
-rw-r--r--sysdeps/riscv/nptl/bits/struct_rwlock.h45
-rw-r--r--sysdeps/riscv/nptl/pthread-offsets.h24
-rw-r--r--sysdeps/riscv/nptl/pthreaddef.h4
-rw-r--r--sysdeps/riscv/nptl/tls.h9
-rw-r--r--sysdeps/riscv/rv64/rvd/libm-test-ulps130
-rw-r--r--sysdeps/riscv/rv64/rvd/s_ceil.c7
-rw-r--r--sysdeps/riscv/rv64/rvd/s_floor.c7
-rw-r--r--sysdeps/riscv/rv64/rvd/s_llrint.c4
-rw-r--r--sysdeps/riscv/rv64/rvd/s_llround.c4
-rw-r--r--sysdeps/riscv/rv64/rvd/s_lrint.c4
-rw-r--r--sysdeps/riscv/rv64/rvd/s_lround.c4
-rw-r--r--sysdeps/riscv/rv64/rvd/s_nearbyint.c6
-rw-r--r--sysdeps/riscv/rv64/rvd/s_rint.c7
-rw-r--r--sysdeps/riscv/rv64/rvd/s_round.c7
-rw-r--r--sysdeps/riscv/rv64/rvd/s_roundeven.c6
-rw-r--r--sysdeps/riscv/rv64/rvd/s_trunc.c7
-rw-r--r--sysdeps/riscv/rv64/rvf/s_llrintf.c4
-rw-r--r--sysdeps/riscv/rv64/rvf/s_llroundf.c4
-rw-r--r--sysdeps/riscv/rv64/rvf/s_lrintf.c4
-rw-r--r--sysdeps/riscv/rv64/rvf/s_lroundf.c4
-rw-r--r--sysdeps/riscv/rvd/e_sqrt.c4
-rw-r--r--sysdeps/riscv/rvd/s_copysign.c5
-rw-r--r--sysdeps/riscv/rvd/s_finite.c6
-rw-r--r--sysdeps/riscv/rvd/s_fma.c4
-rw-r--r--sysdeps/riscv/rvd/s_fmax.c6
-rw-r--r--sysdeps/riscv/rvd/s_fmin.c6
-rw-r--r--sysdeps/riscv/rvd/s_fpclassify.c6
-rw-r--r--sysdeps/riscv/rvd/s_isinf.c6
-rw-r--r--sysdeps/riscv/rvd/s_isnan.c6
-rw-r--r--sysdeps/riscv/rvd/s_issignaling.c6
-rw-r--r--sysdeps/riscv/rvf/e_sqrtf.c4
-rw-r--r--sysdeps/riscv/rvf/fclrexcpt.c4
-rw-r--r--sysdeps/riscv/rvf/fegetenv.c4
-rw-r--r--sysdeps/riscv/rvf/fegetmode.c4
-rw-r--r--sysdeps/riscv/rvf/fegetround.c6
-rw-r--r--sysdeps/riscv/rvf/feholdexcpt.c6
-rw-r--r--sysdeps/riscv/rvf/fenv_private.h161
-rw-r--r--sysdeps/riscv/rvf/fesetenv.c6
-rw-r--r--sysdeps/riscv/rvf/fesetexcept.c4
-rw-r--r--sysdeps/riscv/rvf/fesetmode.c4
-rw-r--r--sysdeps/riscv/rvf/fesetround.c6
-rw-r--r--sysdeps/riscv/rvf/feupdateenv.c6
-rw-r--r--sysdeps/riscv/rvf/fgetexcptflg.c6
-rw-r--r--sysdeps/riscv/rvf/fraiseexcpt.c4
-rw-r--r--sysdeps/riscv/rvf/fsetexcptflg.c4
-rw-r--r--sysdeps/riscv/rvf/ftestexcept.c6
-rw-r--r--sysdeps/riscv/rvf/get-rounding-mode.h4
-rw-r--r--sysdeps/riscv/rvf/math_private.h161
-rw-r--r--sysdeps/riscv/rvf/s_ceilf.c7
-rw-r--r--sysdeps/riscv/rvf/s_copysignf.c5
-rw-r--r--sysdeps/riscv/rvf/s_finitef.c6
-rw-r--r--sysdeps/riscv/rvf/s_floorf.c7
-rw-r--r--sysdeps/riscv/rvf/s_fmaf.c4
-rw-r--r--sysdeps/riscv/rvf/s_fmaxf.c6
-rw-r--r--sysdeps/riscv/rvf/s_fminf.c6
-rw-r--r--sysdeps/riscv/rvf/s_fpclassifyf.c6
-rw-r--r--sysdeps/riscv/rvf/s_isinff.c6
-rw-r--r--sysdeps/riscv/rvf/s_isnanf.c6
-rw-r--r--sysdeps/riscv/rvf/s_issignalingf.c6
-rw-r--r--sysdeps/riscv/rvf/s_nearbyintf.c6
-rw-r--r--sysdeps/riscv/rvf/s_rintf.c7
-rw-r--r--sysdeps/riscv/rvf/s_roundevenf.c6
-rw-r--r--sysdeps/riscv/rvf/s_roundf.c7
-rw-r--r--sysdeps/riscv/rvf/s_truncf.c7
-rw-r--r--sysdeps/riscv/setjmp.S4
-rw-r--r--sysdeps/riscv/sfp-machine.h4
-rw-r--r--sysdeps/riscv/sotruss-lib.c4
-rw-r--r--sysdeps/riscv/stackinfo.h4
-rw-r--r--sysdeps/riscv/start.S17
-rw-r--r--sysdeps/riscv/sys/asm.h4
-rw-r--r--sysdeps/riscv/tls-macros.h4
-rw-r--r--sysdeps/riscv/tst-audit.h4
-rw-r--r--sysdeps/s390/Makefile74
-rw-r--r--sysdeps/s390/asm-syntax.h4
-rw-r--r--sysdeps/s390/atomic-machine.h4
-rw-r--r--sysdeps/s390/bits/endian.h7
-rw-r--r--sysdeps/s390/bits/endianness.h11
-rw-r--r--sysdeps/s390/bits/flt-eval-method.h4
-rw-r--r--sysdeps/s390/bits/link.h4
-rw-r--r--sysdeps/s390/bits/setjmp.h4
-rw-r--r--sysdeps/s390/bits/xtitypes.h33
-rw-r--r--sysdeps/s390/bzero.c47
-rw-r--r--sysdeps/s390/configure148
-rw-r--r--sysdeps/s390/configure.ac106
-rw-r--r--sysdeps/s390/dl-irel.h6
-rw-r--r--sysdeps/s390/dl-procinfo.c12
-rw-r--r--sysdeps/s390/dl-procinfo.h16
-rw-r--r--sysdeps/s390/dl-tls.h4
-rw-r--r--sysdeps/s390/ffs.c4
-rw-r--r--sysdeps/s390/fix-fp-int-convert-overflow.h4
-rw-r--r--sysdeps/s390/fpu/bits/fenv.h6
-rw-r--r--sysdeps/s390/fpu/e_sqrt.c4
-rw-r--r--sysdeps/s390/fpu/e_sqrtf.c4
-rw-r--r--sysdeps/s390/fpu/e_sqrtl.c4
-rw-r--r--sysdeps/s390/fpu/fclrexcpt.c4
-rw-r--r--sysdeps/s390/fpu/fedisblxcpt.c4
-rw-r--r--sysdeps/s390/fpu/feenablxcpt.c4
-rw-r--r--sysdeps/s390/fpu/fegetenv.c4
-rw-r--r--sysdeps/s390/fpu/fegetexcept.c4
-rw-r--r--sysdeps/s390/fpu/fegetmode.c4
-rw-r--r--sysdeps/s390/fpu/fegetround.c13
-rw-r--r--sysdeps/s390/fpu/feholdexcpt.c16
-rw-r--r--sysdeps/s390/fpu/fenv_libc.h8
-rw-r--r--sysdeps/s390/fpu/fenv_private.h250
-rw-r--r--sysdeps/s390/fpu/fesetenv.c25
-rw-r--r--sysdeps/s390/fpu/fesetexcept.c4
-rw-r--r--sysdeps/s390/fpu/fesetmode.c4
-rw-r--r--sysdeps/s390/fpu/fesetround.c13
-rw-r--r--sysdeps/s390/fpu/fetestexceptflag.c31
-rw-r--r--sysdeps/s390/fpu/feupdateenv.c18
-rw-r--r--sysdeps/s390/fpu/fgetexcptflg.c20
-rw-r--r--sysdeps/s390/fpu/fix-fp-int-compare-invalid.h16
-rw-r--r--sysdeps/s390/fpu/fpu_control.h4
-rw-r--r--sysdeps/s390/fpu/fraiseexcpt.c4
-rw-r--r--sysdeps/s390/fpu/fsetexcptflg.c27
-rw-r--r--sysdeps/s390/fpu/ftestexcept.c20
-rw-r--r--sysdeps/s390/fpu/get-rounding-mode.h4
-rw-r--r--sysdeps/s390/fpu/libm-test-ulps166
-rw-r--r--sysdeps/s390/fpu/math-barriers.h46
-rw-r--r--sysdeps/s390/fpu/math-use-builtins.h111
-rw-r--r--sysdeps/s390/fpu/math_private.h53
-rw-r--r--sysdeps/s390/fpu/s_fma.c4
-rw-r--r--sysdeps/s390/fpu/s_fmaf.c4
-rw-r--r--sysdeps/s390/fpu/s_llrint.c50
-rw-r--r--sysdeps/s390/fpu/s_llrintf.c50
-rw-r--r--sysdeps/s390/fpu/s_llrintl.c51
-rw-r--r--sysdeps/s390/fpu/s_llround.c42
-rw-r--r--sysdeps/s390/fpu/s_llroundf.c42
-rw-r--r--sysdeps/s390/fpu/s_llroundl.c43
-rw-r--r--sysdeps/s390/fpu/s_lrint.c55
-rw-r--r--sysdeps/s390/fpu/s_lrintf.c55
-rw-r--r--sysdeps/s390/fpu/s_lrintl.c56
-rw-r--r--sysdeps/s390/fpu/s_lround.c47
-rw-r--r--sysdeps/s390/fpu/s_lroundf.c47
-rw-r--r--sysdeps/s390/fpu/s_lroundl.c48
-rw-r--r--sysdeps/s390/fpu/s_roundeven.c39
-rw-r--r--sysdeps/s390/fpu/s_roundevenf.c38
-rw-r--r--sysdeps/s390/fpu/s_roundevenl.c39
-rw-r--r--sysdeps/s390/gccframe.h4
-rw-r--r--sysdeps/s390/gconv-modules4
-rw-r--r--sysdeps/s390/gmp-mparam.h4
-rw-r--r--sysdeps/s390/hp-timing.h42
-rw-r--r--sysdeps/s390/ifunc-memccpy.h52
-rw-r--r--sysdeps/s390/ifunc-memchr.h52
-rw-r--r--sysdeps/s390/ifunc-memcmp.h59
-rw-r--r--sysdeps/s390/ifunc-memcpy.h122
-rw-r--r--sysdeps/s390/ifunc-memmem.h76
-rw-r--r--sysdeps/s390/ifunc-memrchr.h52
-rw-r--r--sysdeps/s390/ifunc-memset.h74
-rw-r--r--sysdeps/s390/ifunc-rawmemchr.h52
-rw-r--r--sysdeps/s390/ifunc-stpcpy.h52
-rw-r--r--sysdeps/s390/ifunc-stpncpy.h52
-rw-r--r--sysdeps/s390/ifunc-strcat.h52
-rw-r--r--sysdeps/s390/ifunc-strchr.h52
-rw-r--r--sysdeps/s390/ifunc-strchrnul.h52
-rw-r--r--sysdeps/s390/ifunc-strcmp.h52
-rw-r--r--sysdeps/s390/ifunc-strcpy.h52
-rw-r--r--sysdeps/s390/ifunc-strcspn.h52
-rw-r--r--sysdeps/s390/ifunc-strlen.h52
-rw-r--r--sysdeps/s390/ifunc-strncat.h52
-rw-r--r--sysdeps/s390/ifunc-strncmp.h52
-rw-r--r--sysdeps/s390/ifunc-strncpy.h52
-rw-r--r--sysdeps/s390/ifunc-strnlen.h52
-rw-r--r--sysdeps/s390/ifunc-strpbrk.h52
-rw-r--r--sysdeps/s390/ifunc-strrchr.h52
-rw-r--r--sysdeps/s390/ifunc-strspn.h52
-rw-r--r--sysdeps/s390/ifunc-strstr.h76
-rw-r--r--sysdeps/s390/ifunc-wcpcpy.h53
-rw-r--r--sysdeps/s390/ifunc-wcpncpy.h53
-rw-r--r--sysdeps/s390/ifunc-wcscat.h53
-rw-r--r--sysdeps/s390/ifunc-wcschr.h53
-rw-r--r--sysdeps/s390/ifunc-wcschrnul.h53
-rw-r--r--sysdeps/s390/ifunc-wcscmp.h52
-rw-r--r--sysdeps/s390/ifunc-wcscpy.h53
-rw-r--r--sysdeps/s390/ifunc-wcscspn.h53
-rw-r--r--sysdeps/s390/ifunc-wcslen.h53
-rw-r--r--sysdeps/s390/ifunc-wcsncat.h53
-rw-r--r--sysdeps/s390/ifunc-wcsncmp.h52
-rw-r--r--sysdeps/s390/ifunc-wcsncpy.h53
-rw-r--r--sysdeps/s390/ifunc-wcsnlen.h53
-rw-r--r--sysdeps/s390/ifunc-wcspbrk.h53
-rw-r--r--sysdeps/s390/ifunc-wcsrchr.h53
-rw-r--r--sysdeps/s390/ifunc-wcsspn.h53
-rw-r--r--sysdeps/s390/ifunc-wmemchr.h53
-rw-r--r--sysdeps/s390/ifunc-wmemcmp.h52
-rw-r--r--sysdeps/s390/ifunc-wmemset.h53
-rw-r--r--sysdeps/s390/iso-8859-1_cp037_z900.c11
-rw-r--r--sysdeps/s390/jmpbuf-offsets.h4
-rw-r--r--sysdeps/s390/jmpbuf-unwind.h4
-rw-r--r--sysdeps/s390/ldsodefs.h4
-rw-r--r--sysdeps/s390/libc-tls.c4
-rw-r--r--sysdeps/s390/longjmp.c4
-rw-r--r--sysdeps/s390/machine-gmon.h4
-rw-r--r--sysdeps/s390/memccpy-c.c (renamed from sysdeps/s390/multiarch/memccpy-c.c)16
-rw-r--r--sysdeps/s390/memccpy-vx.S (renamed from sysdeps/s390/multiarch/memccpy-vx.S)20
-rw-r--r--sysdeps/s390/memccpy.c39
-rw-r--r--sysdeps/s390/memchr-vx.S (renamed from sysdeps/s390/multiarch/memchr-vx.S)24
-rw-r--r--sysdeps/s390/memchr-z900.S63
-rw-r--r--sysdeps/s390/memchr.c41
-rw-r--r--sysdeps/s390/memcmp-z900.S173
-rw-r--r--sysdeps/s390/memcmp.c49
-rw-r--r--sysdeps/s390/memcopy.h23
-rw-r--r--sysdeps/s390/memcpy-z900.S366
-rw-r--r--sysdeps/s390/memcpy.c49
-rw-r--r--sysdeps/s390/memmem-arch13.S161
-rw-r--r--sysdeps/s390/memmem-c.c47
-rw-r--r--sysdeps/s390/memmem-vx.c61
-rw-r--r--sysdeps/s390/memmem.c49
-rw-r--r--sysdeps/s390/memmove-c.c37
-rw-r--r--sysdeps/s390/memmove.c54
-rw-r--r--sysdeps/s390/mempcpy.S19
-rw-r--r--sysdeps/s390/mempcpy.c54
-rw-r--r--sysdeps/s390/memrchr-c.c (renamed from sysdeps/s390/multiarch/memrchr-c.c)14
-rw-r--r--sysdeps/s390/memrchr-vx.S (renamed from sysdeps/s390/multiarch/memrchr-vx.S)20
-rw-r--r--sysdeps/s390/memrchr.c39
-rw-r--r--sysdeps/s390/memset-z900.S219
-rw-r--r--sysdeps/s390/memset.c48
-rw-r--r--sysdeps/s390/memusage.h4
-rw-r--r--sysdeps/s390/multiarch/8bit-generic.c4
-rw-r--r--sysdeps/s390/multiarch/Makefile46
-rw-r--r--sysdeps/s390/multiarch/gconv_simple.c33
-rw-r--r--sysdeps/s390/multiarch/iconv/skeleton.c4
-rw-r--r--sysdeps/s390/multiarch/ifunc-impl-list.c716
-rw-r--r--sysdeps/s390/multiarch/ifunc-resolve.h52
-rw-r--r--sysdeps/s390/multiarch/memccpy.c28
-rw-r--r--sysdeps/s390/multiarch/memchr.c27
-rw-r--r--sysdeps/s390/multiarch/mempcpy.c32
-rw-r--r--sysdeps/s390/multiarch/memrchr.c28
-rw-r--r--sysdeps/s390/multiarch/rawmemchr-c.c34
-rw-r--r--sysdeps/s390/multiarch/rawmemchr.c31
-rw-r--r--sysdeps/s390/multiarch/stpcpy-c.c35
-rw-r--r--sysdeps/s390/multiarch/stpcpy.c35
-rw-r--r--sysdeps/s390/multiarch/stpncpy-c.c28
-rw-r--r--sysdeps/s390/multiarch/stpncpy.c32
-rw-r--r--sysdeps/s390/multiarch/strcat-c.c28
-rw-r--r--sysdeps/s390/multiarch/strcat.c29
-rw-r--r--sysdeps/s390/multiarch/strchr-c.c29
-rw-r--r--sysdeps/s390/multiarch/strchr.c32
-rw-r--r--sysdeps/s390/multiarch/strchrnul-c.c26
-rw-r--r--sysdeps/s390/multiarch/strchrnul.c28
-rw-r--r--sysdeps/s390/multiarch/strcmp.c29
-rw-r--r--sysdeps/s390/multiarch/strcpy.c27
-rw-r--r--sysdeps/s390/multiarch/strcspn-c.c28
-rw-r--r--sysdeps/s390/multiarch/strcspn.c31
-rw-r--r--sysdeps/s390/multiarch/strlen-c.c28
-rw-r--r--sysdeps/s390/multiarch/strlen.c29
-rw-r--r--sysdeps/s390/multiarch/strncat.c27
-rw-r--r--sysdeps/s390/multiarch/strncmp-c.c28
-rw-r--r--sysdeps/s390/multiarch/strncmp.c31
-rw-r--r--sysdeps/s390/multiarch/strncpy.c29
-rw-r--r--sysdeps/s390/multiarch/strnlen-c.c30
-rw-r--r--sysdeps/s390/multiarch/strnlen.c32
-rw-r--r--sysdeps/s390/multiarch/strpbrk-c.c28
-rw-r--r--sysdeps/s390/multiarch/strpbrk.c31
-rw-r--r--sysdeps/s390/multiarch/strrchr-c.c29
-rw-r--r--sysdeps/s390/multiarch/strrchr.c30
-rw-r--r--sysdeps/s390/multiarch/strspn-c.c28
-rw-r--r--sysdeps/s390/multiarch/strspn.c31
-rw-r--r--sysdeps/s390/multiarch/utf16-utf32-z9.c4
-rw-r--r--sysdeps/s390/multiarch/utf8-utf16-z9.c4
-rw-r--r--sysdeps/s390/multiarch/utf8-utf32-z9.c4
-rw-r--r--sysdeps/s390/multiarch/wcpcpy.c28
-rw-r--r--sysdeps/s390/multiarch/wcpncpy.c28
-rw-r--r--sysdeps/s390/multiarch/wcscat.c28
-rw-r--r--sysdeps/s390/multiarch/wcschr-c.c37
-rw-r--r--sysdeps/s390/multiarch/wcschr.c32
-rw-r--r--sysdeps/s390/multiarch/wcschrnul.c28
-rw-r--r--sysdeps/s390/multiarch/wcscmp-c.c32
-rw-r--r--sysdeps/s390/multiarch/wcscmp.c30
-rw-r--r--sysdeps/s390/multiarch/wcscpy.c27
-rw-r--r--sysdeps/s390/multiarch/wcscspn.c27
-rw-r--r--sysdeps/s390/multiarch/wcslen.c28
-rw-r--r--sysdeps/s390/multiarch/wcsncat.c27
-rw-r--r--sysdeps/s390/multiarch/wcsncmp.c27
-rw-r--r--sysdeps/s390/multiarch/wcsncpy.c28
-rw-r--r--sysdeps/s390/multiarch/wcsnlen.c28
-rw-r--r--sysdeps/s390/multiarch/wcspbrk-c.c31
-rw-r--r--sysdeps/s390/multiarch/wcspbrk.c29
-rw-r--r--sysdeps/s390/multiarch/wcsrchr.c27
-rw-r--r--sysdeps/s390/multiarch/wcsspn-c.c31
-rw-r--r--sysdeps/s390/multiarch/wcsspn.c29
-rw-r--r--sysdeps/s390/multiarch/wmemchr-c.c37
-rw-r--r--sysdeps/s390/multiarch/wmemchr.c32
-rw-r--r--sysdeps/s390/multiarch/wmemcmp.c27
-rw-r--r--sysdeps/s390/multiarch/wmemset-c.c37
-rw-r--r--sysdeps/s390/multiarch/wmemset.c32
-rw-r--r--sysdeps/s390/nptl/Makefile4
-rw-r--r--sysdeps/s390/nptl/bits/pthreadtypes-arch.h79
-rw-r--r--sysdeps/s390/nptl/bits/semaphore.h4
-rw-r--r--sysdeps/s390/nptl/bits/struct_mutex.h63
-rw-r--r--sysdeps/s390/nptl/bits/struct_rwlock.h58
-rw-r--r--sysdeps/s390/nptl/pthread-offsets.h14
-rw-r--r--sysdeps/s390/nptl/pthreaddef.h4
-rw-r--r--sysdeps/s390/nptl/tls.h4
-rw-r--r--sysdeps/s390/rawmemchr-c.c34
-rw-r--r--sysdeps/s390/rawmemchr-vx.S (renamed from sysdeps/s390/multiarch/rawmemchr-vx.S)24
-rw-r--r--sysdeps/s390/rawmemchr.c41
-rw-r--r--sysdeps/s390/s390-32/__longjmp.c4
-rw-r--r--sysdeps/s390/s390-32/add_n.S4
-rw-r--r--sysdeps/s390/s390-32/addmul_1.S4
-rw-r--r--sysdeps/s390/s390-32/backtrace.c4
-rw-r--r--sysdeps/s390/s390-32/bcopy.S85
-rw-r--r--sysdeps/s390/s390-32/bzero.S42
-rw-r--r--sysdeps/s390/s390-32/crti.S4
-rw-r--r--sysdeps/s390/s390-32/crtn.S4
-rw-r--r--sysdeps/s390/s390-32/dl-machine.h4
-rw-r--r--sysdeps/s390/s390-32/dl-sysdep.h4
-rw-r--r--sysdeps/s390/s390-32/dl-trampoline.S4
-rw-r--r--sysdeps/s390/s390-32/dl-trampoline.h342
-rw-r--r--sysdeps/s390/s390-32/memchr.S41
-rw-r--r--sysdeps/s390/s390-32/memcmp.S66
-rw-r--r--sysdeps/s390/s390-32/memcpy.S89
-rw-r--r--sysdeps/s390/s390-32/memset.S65
-rw-r--r--sysdeps/s390/s390-32/mul_1.S4
-rw-r--r--sysdeps/s390/s390-32/multiarch/Makefile4
-rw-r--r--sysdeps/s390/s390-32/multiarch/memchr.c21
-rw-r--r--sysdeps/s390/s390-32/multiarch/memcmp-s390.S107
-rw-r--r--sysdeps/s390/s390-32/multiarch/memcmp.c27
-rw-r--r--sysdeps/s390/s390-32/multiarch/memcpy-s390.S128
-rw-r--r--sysdeps/s390/s390-32/multiarch/memcpy.c27
-rw-r--r--sysdeps/s390/s390-32/multiarch/memset-s390.S116
-rw-r--r--sysdeps/s390/s390-32/multiarch/memset.c26
-rw-r--r--sysdeps/s390/s390-32/multiarch/strcmp.c21
-rw-r--r--sysdeps/s390/s390-32/multiarch/strcpy.c21
-rw-r--r--sysdeps/s390/s390-32/multiarch/strncpy.c21
-rw-r--r--sysdeps/s390/s390-32/s390-mcount.S12
-rw-r--r--sysdeps/s390/s390-32/setjmp.S4
-rw-r--r--sysdeps/s390/s390-32/start.S4
-rw-r--r--sysdeps/s390/s390-32/strcmp.S41
-rw-r--r--sysdeps/s390/s390-32/strcpy.S36
-rw-r--r--sysdeps/s390/s390-32/strncpy-z900.S89
-rw-r--r--sysdeps/s390/s390-32/strncpy.S79
-rw-r--r--sysdeps/s390/s390-32/sub_n.S4
-rw-r--r--sysdeps/s390/s390-32/symbol-hacks.h4
-rw-r--r--sysdeps/s390/s390-32/sysdep.h6
-rw-r--r--sysdeps/s390/s390-32/tst-audit.h4
-rw-r--r--sysdeps/s390/s390-64/Implies1
-rw-r--r--sysdeps/s390/s390-64/Versions5
-rw-r--r--sysdeps/s390/s390-64/__longjmp.c4
-rw-r--r--sysdeps/s390/s390-64/add_n.S4
-rw-r--r--sysdeps/s390/s390-64/backtrace.c4
-rw-r--r--sysdeps/s390/s390-64/bcopy.S71
-rw-r--r--sysdeps/s390/s390-64/bzero.S41
-rw-r--r--sysdeps/s390/s390-64/crti.S4
-rw-r--r--sysdeps/s390/s390-64/crtn.S4
-rw-r--r--sysdeps/s390/s390-64/dl-machine.h4
-rw-r--r--sysdeps/s390/s390-64/dl-trampoline.S4
-rw-r--r--sysdeps/s390/s390-64/dl-trampoline.h371
-rw-r--r--sysdeps/s390/s390-64/memchr.S40
-rw-r--r--sysdeps/s390/s390-64/memcmp.S64
-rw-r--r--sysdeps/s390/s390-64/memcpy.S88
-rw-r--r--sysdeps/s390/s390-64/memset.S64
-rw-r--r--sysdeps/s390/s390-64/multiarch/Makefile4
-rw-r--r--sysdeps/s390/s390-64/multiarch/memchr.c21
-rw-r--r--sysdeps/s390/s390-64/multiarch/memcmp-s390x.S104
-rw-r--r--sysdeps/s390/s390-64/multiarch/memcmp.c27
-rw-r--r--sysdeps/s390/s390-64/multiarch/memcpy-s390x.S122
-rw-r--r--sysdeps/s390/s390-64/multiarch/memcpy.c27
-rw-r--r--sysdeps/s390/s390-64/multiarch/memset-s390x.S112
-rw-r--r--sysdeps/s390/s390-64/multiarch/memset.c26
-rw-r--r--sysdeps/s390/s390-64/multiarch/strcmp.c21
-rw-r--r--sysdeps/s390/s390-64/multiarch/strcpy.c21
-rw-r--r--sysdeps/s390/s390-64/multiarch/strncpy.c21
-rw-r--r--sysdeps/s390/s390-64/s390x-mcount.S81
-rw-r--r--sysdeps/s390/s390-64/s390x-mcount.h99
-rw-r--r--sysdeps/s390/s390-64/setjmp.S4
-rw-r--r--sysdeps/s390/s390-64/start.S4
-rw-r--r--sysdeps/s390/s390-64/strcmp.S41
-rw-r--r--sysdeps/s390/s390-64/strcpy.S35
-rw-r--r--sysdeps/s390/s390-64/strncpy-z900.S100
-rw-r--r--sysdeps/s390/s390-64/strncpy.S90
-rw-r--r--sysdeps/s390/s390-64/sub_n.S4
-rw-r--r--sysdeps/s390/s390-64/sysdep.h6
-rw-r--r--sysdeps/s390/s390-64/tst-audit.h4
-rw-r--r--sysdeps/s390/sotruss-lib.c4
-rw-r--r--sysdeps/s390/stackinfo.h4
-rw-r--r--sysdeps/s390/stpcpy-c.c40
-rw-r--r--sysdeps/s390/stpcpy-vx.S (renamed from sysdeps/s390/multiarch/stpcpy-vx.S)24
-rw-r--r--sysdeps/s390/stpcpy.c46
-rw-r--r--sysdeps/s390/stpncpy-c.c33
-rw-r--r--sysdeps/s390/stpncpy-vx.S (renamed from sysdeps/s390/multiarch/stpncpy-vx.S)23
-rw-r--r--sysdeps/s390/stpncpy.c43
-rw-r--r--sysdeps/s390/strcat-c.c32
-rw-r--r--sysdeps/s390/strcat-vx.S (renamed from sysdeps/s390/multiarch/strcat-vx.S)21
-rw-r--r--sysdeps/s390/strcat.c40
-rw-r--r--sysdeps/s390/strchr-c.c33
-rw-r--r--sysdeps/s390/strchr-vx.S (renamed from sysdeps/s390/multiarch/strchr-vx.S)24
-rw-r--r--sysdeps/s390/strchr.c43
-rw-r--r--sysdeps/s390/strchrnul-c.c30
-rw-r--r--sysdeps/s390/strchrnul-vx.S (renamed from sysdeps/s390/multiarch/strchrnul-vx.S)20
-rw-r--r--sysdeps/s390/strchrnul.c39
-rw-r--r--sysdeps/s390/strcmp-vx.S (renamed from sysdeps/s390/multiarch/strcmp-vx.S)23
-rw-r--r--sysdeps/s390/strcmp-z900.S59
-rw-r--r--sysdeps/s390/strcmp.c42
-rw-r--r--sysdeps/s390/strcpy-vx.S (renamed from sysdeps/s390/multiarch/strcpy-vx.S)30
-rw-r--r--sysdeps/s390/strcpy-z900.S56
-rw-r--r--sysdeps/s390/strcpy.c40
-rw-r--r--sysdeps/s390/strcspn-c.c32
-rw-r--r--sysdeps/s390/strcspn-vx.S (renamed from sysdeps/s390/multiarch/strcspn-vx.S)23
-rw-r--r--sysdeps/s390/strcspn.c42
-rw-r--r--sysdeps/s390/string_private.h4
-rw-r--r--sysdeps/s390/strlen-c.c32
-rw-r--r--sysdeps/s390/strlen-vx.S (renamed from sysdeps/s390/multiarch/strlen-vx.S)21
-rw-r--r--sysdeps/s390/strlen.c40
-rw-r--r--sysdeps/s390/strncat-c.c (renamed from sysdeps/s390/multiarch/strncat-c.c)14
-rw-r--r--sysdeps/s390/strncat-vx.S (renamed from sysdeps/s390/multiarch/strncat-vx.S)25
-rw-r--r--sysdeps/s390/strncat.c38
-rw-r--r--sysdeps/s390/strncmp-c.c32
-rw-r--r--sysdeps/s390/strncmp-vx.S (renamed from sysdeps/s390/multiarch/strncmp-vx.S)23
-rw-r--r--sysdeps/s390/strncmp.c42
-rw-r--r--sysdeps/s390/strncpy-vx.S (renamed from sysdeps/s390/multiarch/strncpy-vx.S)29
-rw-r--r--sysdeps/s390/strncpy.c42
-rw-r--r--sysdeps/s390/strnlen-c.c34
-rw-r--r--sysdeps/s390/strnlen-vx.S (renamed from sysdeps/s390/multiarch/strnlen-vx.S)25
-rw-r--r--sysdeps/s390/strnlen.c43
-rw-r--r--sysdeps/s390/strpbrk-c.c32
-rw-r--r--sysdeps/s390/strpbrk-vx.S (renamed from sysdeps/s390/multiarch/strpbrk-vx.S)23
-rw-r--r--sysdeps/s390/strpbrk.c42
-rw-r--r--sysdeps/s390/strrchr-c.c33
-rw-r--r--sysdeps/s390/strrchr-vx.S (renamed from sysdeps/s390/multiarch/strrchr-vx.S)24
-rw-r--r--sysdeps/s390/strrchr.c41
-rw-r--r--sysdeps/s390/strspn-c.c32
-rw-r--r--sysdeps/s390/strspn-vx.S (renamed from sysdeps/s390/multiarch/strspn-vx.S)23
-rw-r--r--sysdeps/s390/strspn.c42
-rw-r--r--sysdeps/s390/strstr-arch13.S179
-rw-r--r--sysdeps/s390/strstr-c.c32
-rw-r--r--sysdeps/s390/strstr-vx.c52
-rw-r--r--sysdeps/s390/strstr.c46
-rw-r--r--sysdeps/s390/tst-dl-runtime-mod.S30
-rw-r--r--sysdeps/s390/tst-dl-runtime-profile-audit.c19
-rw-r--r--sysdeps/s390/tst-dl-runtime-profile-noaudit.c19
-rw-r--r--sysdeps/s390/tst-dl-runtime-resolve-audit.c19
-rw-r--r--sysdeps/s390/tst-dl-runtime-resolve-noaudit.c19
-rw-r--r--sysdeps/s390/tst-dl-runtime.c91
-rw-r--r--sysdeps/s390/utf16-utf32-z9.c4
-rw-r--r--sysdeps/s390/utf8-utf16-z9.c8
-rw-r--r--sysdeps/s390/utf8-utf32-z9.c4
-rw-r--r--sysdeps/s390/wcpcpy-c.c (renamed from sysdeps/s390/multiarch/wcpcpy-c.c)14
-rw-r--r--sysdeps/s390/wcpcpy-vx.S (renamed from sysdeps/s390/multiarch/wcpcpy-vx.S)20
-rw-r--r--sysdeps/s390/wcpcpy.c39
-rw-r--r--sysdeps/s390/wcpncpy-c.c (renamed from sysdeps/s390/multiarch/wcpncpy-c.c)14
-rw-r--r--sysdeps/s390/wcpncpy-vx.S (renamed from sysdeps/s390/multiarch/wcpncpy-vx.S)20
-rw-r--r--sysdeps/s390/wcpncpy.c39
-rw-r--r--sysdeps/s390/wcscat-c.c (renamed from sysdeps/s390/multiarch/wcscat-c.c)14
-rw-r--r--sysdeps/s390/wcscat-vx.S (renamed from sysdeps/s390/multiarch/wcscat-vx.S)20
-rw-r--r--sysdeps/s390/wcscat.c39
-rw-r--r--sysdeps/s390/wcschr-c.c44
-rw-r--r--sysdeps/s390/wcschr-vx.S (renamed from sysdeps/s390/multiarch/wcschr-vx.S)26
-rw-r--r--sysdeps/s390/wcschr.c43
-rw-r--r--sysdeps/s390/wcschrnul-c.c (renamed from sysdeps/s390/multiarch/wcschrnul-c.c)14
-rw-r--r--sysdeps/s390/wcschrnul-vx.S (renamed from sysdeps/s390/multiarch/wcschrnul-vx.S)20
-rw-r--r--sysdeps/s390/wcschrnul.c39
-rw-r--r--sysdeps/s390/wcscmp-c.c34
-rw-r--r--sysdeps/s390/wcscmp-vx.S (renamed from sysdeps/s390/multiarch/wcscmp-vx.S)22
-rw-r--r--sysdeps/s390/wcscmp.c41
-rw-r--r--sysdeps/s390/wcscpy-c.c (renamed from sysdeps/s390/multiarch/wcscpy-c.c)14
-rw-r--r--sysdeps/s390/wcscpy-vx.S (renamed from sysdeps/s390/multiarch/wcscpy-vx.S)23
-rw-r--r--sysdeps/s390/wcscpy.c40
-rw-r--r--sysdeps/s390/wcscspn-c.c (renamed from sysdeps/s390/multiarch/wcscspn-c.c)13
-rw-r--r--sysdeps/s390/wcscspn-vx.S (renamed from sysdeps/s390/multiarch/wcscspn-vx.S)19
-rw-r--r--sysdeps/s390/wcscspn.c38
-rw-r--r--sysdeps/s390/wcslen-c.c (renamed from sysdeps/s390/multiarch/wcslen-c.c)14
-rw-r--r--sysdeps/s390/wcslen-vx.S (renamed from sysdeps/s390/multiarch/wcslen-vx.S)20
-rw-r--r--sysdeps/s390/wcslen.c39
-rw-r--r--sysdeps/s390/wcsncat-c.c (renamed from sysdeps/s390/multiarch/wcsncat-c.c)14
-rw-r--r--sysdeps/s390/wcsncat-vx.S (renamed from sysdeps/s390/multiarch/wcsncat-vx.S)19
-rw-r--r--sysdeps/s390/wcsncat.c38
-rw-r--r--sysdeps/s390/wcsncmp-c.c (renamed from sysdeps/s390/multiarch/wcsncmp-c.c)14
-rw-r--r--sysdeps/s390/wcsncmp-vx.S (renamed from sysdeps/s390/multiarch/wcsncmp-vx.S)17
-rw-r--r--sysdeps/s390/wcsncmp.c38
-rw-r--r--sysdeps/s390/wcsncpy-c.c (renamed from sysdeps/s390/multiarch/wcsncpy-c.c)14
-rw-r--r--sysdeps/s390/wcsncpy-vx.S (renamed from sysdeps/s390/multiarch/wcsncpy-vx.S)21
-rw-r--r--sysdeps/s390/wcsncpy.c39
-rw-r--r--sysdeps/s390/wcsnlen-c.c (renamed from sysdeps/s390/multiarch/wcsnlen-c.c)14
-rw-r--r--sysdeps/s390/wcsnlen-vx.S (renamed from sysdeps/s390/multiarch/wcsnlen-vx.S)20
-rw-r--r--sysdeps/s390/wcsnlen.c39
-rw-r--r--sysdeps/s390/wcspbrk-c.c37
-rw-r--r--sysdeps/s390/wcspbrk-vx.S (renamed from sysdeps/s390/multiarch/wcspbrk-vx.S)24
-rw-r--r--sysdeps/s390/wcspbrk.c39
-rw-r--r--sysdeps/s390/wcsrchr-c.c (renamed from sysdeps/s390/multiarch/wcsrchr-c.c)14
-rw-r--r--sysdeps/s390/wcsrchr-vx.S (renamed from sysdeps/s390/multiarch/wcsrchr-vx.S)19
-rw-r--r--sysdeps/s390/wcsrchr.c38
-rw-r--r--sysdeps/s390/wcsspn-c.c37
-rw-r--r--sysdeps/s390/wcsspn-vx.S (renamed from sysdeps/s390/multiarch/wcsspn-vx.S)24
-rw-r--r--sysdeps/s390/wcsspn.c39
-rw-r--r--sysdeps/s390/wmemchr-c.c44
-rw-r--r--sysdeps/s390/wmemchr-vx.S (renamed from sysdeps/s390/multiarch/wmemchr-vx.S)26
-rw-r--r--sysdeps/s390/wmemchr.c43
-rw-r--r--sysdeps/s390/wmemcmp-c.c (renamed from sysdeps/s390/multiarch/wmemcmp-c.c)13
-rw-r--r--sysdeps/s390/wmemcmp-vx.S (renamed from sysdeps/s390/multiarch/wmemcmp-vx.S)18
-rw-r--r--sysdeps/s390/wmemcmp.c39
-rw-r--r--sysdeps/s390/wmemset-c.c44
-rw-r--r--sysdeps/s390/wmemset-vx.S (renamed from sysdeps/s390/multiarch/wmemset-vx.S)26
-rw-r--r--sysdeps/s390/wmemset.c43
-rw-r--r--sysdeps/sh/____longjmp_chk.S4
-rw-r--r--sysdeps/sh/_mcount.S4
-rw-r--r--sysdeps/sh/be/sh3/Implies1
-rw-r--r--sysdeps/sh/be/sh4/Implies1
-rw-r--r--sysdeps/sh/bits/endian.h13
-rw-r--r--sysdeps/sh/bits/endianness.h15
-rw-r--r--sysdeps/sh/bits/fenv.h6
-rw-r--r--sysdeps/sh/bits/link.h4
-rw-r--r--sysdeps/sh/bits/setjmp.h4
-rw-r--r--sysdeps/sh/bsd-_setjmp.S4
-rw-r--r--sysdeps/sh/bsd-setjmp.S4
-rw-r--r--sysdeps/sh/crti.S4
-rw-r--r--sysdeps/sh/crtn.S4
-rw-r--r--sysdeps/sh/dl-machine.h4
-rw-r--r--sysdeps/sh/dl-tls.h4
-rw-r--r--sysdeps/sh/dl-trampoline.S4
-rw-r--r--sysdeps/sh/fpu_control.h4
-rw-r--r--sysdeps/sh/gccframe.h4
-rw-r--r--sysdeps/sh/gmp-mparam.h4
-rw-r--r--sysdeps/sh/jmpbuf-offsets.h4
-rw-r--r--sysdeps/sh/jmpbuf-unwind.h4
-rw-r--r--sysdeps/sh/ldsodefs.h4
-rw-r--r--sysdeps/sh/le/sh3/Implies1
-rw-r--r--sysdeps/sh/le/sh4/Implies1
-rw-r--r--sysdeps/sh/libc-tls.c4
-rw-r--r--sysdeps/sh/libm-test-ulps40
-rw-r--r--sysdeps/sh/machine-gmon.h4
-rw-r--r--sysdeps/sh/memcpy.S4
-rw-r--r--sysdeps/sh/memset.S4
-rw-r--r--sysdeps/sh/memusage.h4
-rw-r--r--sysdeps/sh/nptl/bits/pthreadtypes-arch.h71
-rw-r--r--sysdeps/sh/nptl/bits/semaphore.h4
-rw-r--r--sysdeps/sh/nptl/pthread-offsets.h5
-rw-r--r--sysdeps/sh/nptl/pthread_spin_init.c4
-rw-r--r--sysdeps/sh/nptl/pthread_spin_lock.c4
-rw-r--r--sysdeps/sh/nptl/pthread_spin_trylock.S4
-rw-r--r--sysdeps/sh/nptl/pthread_spin_unlock.S4
-rw-r--r--sysdeps/sh/nptl/pthreaddef.h4
-rw-r--r--sysdeps/sh/nptl/tls.h4
-rw-r--r--sysdeps/sh/preconfigure167
-rw-r--r--sysdeps/sh/preconfigure.ac18
-rw-r--r--sysdeps/sh/sh3/__longjmp.S4
-rw-r--r--sysdeps/sh/sh3/setjmp.S4
-rw-r--r--sysdeps/sh/sh4/__longjmp.S4
-rw-r--r--sysdeps/sh/sh4/fpu/fclrexcpt.c4
-rw-r--r--sysdeps/sh/sh4/fpu/fedisblxcpt.c4
-rw-r--r--sysdeps/sh/sh4/fpu/feenablxcpt.c4
-rw-r--r--sysdeps/sh/sh4/fpu/fegetenv.c4
-rw-r--r--sysdeps/sh/sh4/fpu/fegetexcept.c4
-rw-r--r--sysdeps/sh/sh4/fpu/fegetmode.c4
-rw-r--r--sysdeps/sh/sh4/fpu/fegetround.c4
-rw-r--r--sysdeps/sh/sh4/fpu/feholdexcpt.c4
-rw-r--r--sysdeps/sh/sh4/fpu/fesetenv.c4
-rw-r--r--sysdeps/sh/sh4/fpu/fesetexcept.c4
-rw-r--r--sysdeps/sh/sh4/fpu/fesetmode.c4
-rw-r--r--sysdeps/sh/sh4/fpu/fesetround.c4
-rw-r--r--sysdeps/sh/sh4/fpu/feupdateenv.c4
-rw-r--r--sysdeps/sh/sh4/fpu/fgetexcptflg.c4
-rw-r--r--sysdeps/sh/sh4/fpu/fraiseexcpt.c4
-rw-r--r--sysdeps/sh/sh4/fpu/fsetexcptflg.c4
-rw-r--r--sysdeps/sh/sh4/fpu/ftestexcept.c4
-rw-r--r--sysdeps/sh/sh4/setjmp.S4
-rw-r--r--sysdeps/sh/sotruss-lib.c4
-rw-r--r--sysdeps/sh/stackinfo.h4
-rw-r--r--sysdeps/sh/start.S4
-rw-r--r--sysdeps/sh/strlen.S4
-rw-r--r--sysdeps/sh/sysdep.h4
-rw-r--r--sysdeps/sh/tst-audit.h4
-rw-r--r--sysdeps/sparc/Makefile9
-rw-r--r--sysdeps/sparc/atomic-machine.h95
-rw-r--r--sysdeps/sparc/backtrace.c4
-rw-r--r--sysdeps/sparc/bits/endian.h12
-rw-r--r--sysdeps/sparc/bits/endianness.h16
-rw-r--r--sysdeps/sparc/bits/hwcap.h4
-rw-r--r--sysdeps/sparc/bits/link.h4
-rw-r--r--sysdeps/sparc/configure39
-rw-r--r--sysdeps/sparc/configure.ac28
-rw-r--r--sysdeps/sparc/cpu_relax.c40
-rw-r--r--sysdeps/sparc/crti.S4
-rw-r--r--sysdeps/sparc/crtn.S4
-rw-r--r--sysdeps/sparc/dl-dtprocnum.h4
-rw-r--r--sysdeps/sparc/dl-procinfo.c4
-rw-r--r--sysdeps/sparc/dl-procinfo.h8
-rw-r--r--sysdeps/sparc/dl-sysdep.h4
-rw-r--r--sysdeps/sparc/dl-tls.h4
-rw-r--r--sysdeps/sparc/fpu/bits/fenv.h6
-rw-r--r--sysdeps/sparc/fpu/fclrexcpt.c4
-rw-r--r--sysdeps/sparc/fpu/fedisblxcpt.c4
-rw-r--r--sysdeps/sparc/fpu/feenablxcpt.c4
-rw-r--r--sysdeps/sparc/fpu/fegetenv.c4
-rw-r--r--sysdeps/sparc/fpu/fegetexcept.c4
-rw-r--r--sysdeps/sparc/fpu/fegetmode.c4
-rw-r--r--sysdeps/sparc/fpu/fegetround.c4
-rw-r--r--sysdeps/sparc/fpu/feholdexcpt.c4
-rw-r--r--sysdeps/sparc/fpu/fenv_private.h8
-rw-r--r--sysdeps/sparc/fpu/fesetenv.c4
-rw-r--r--sysdeps/sparc/fpu/fesetexcept.c4
-rw-r--r--sysdeps/sparc/fpu/fesetmode.c4
-rw-r--r--sysdeps/sparc/fpu/fesetround.c4
-rw-r--r--sysdeps/sparc/fpu/feupdateenv.c4
-rw-r--r--sysdeps/sparc/fpu/fgetexcptflg.c4
-rw-r--r--sysdeps/sparc/fpu/fpu_control.h4
-rw-r--r--sysdeps/sparc/fpu/fraiseexcpt.c4
-rw-r--r--sysdeps/sparc/fpu/fsetexcptflg.c4
-rw-r--r--sysdeps/sparc/fpu/ftestexcept.c4
-rw-r--r--sysdeps/sparc/fpu/libm-test-ulps88
-rw-r--r--sysdeps/sparc/fpu/math_private.h7
-rw-r--r--sysdeps/sparc/gccframe.h4
-rw-r--r--sysdeps/sparc/ldsodefs.h4
-rw-r--r--sysdeps/sparc/machine-gmon.h4
-rw-r--r--sysdeps/sparc/memusage.h4
-rw-r--r--sysdeps/sparc/nptl/bits/pthreadtypes-arch.h81
-rw-r--r--sysdeps/sparc/nptl/bits/semaphore.h4
-rw-r--r--sysdeps/sparc/nptl/bits/struct_rwlock.h58
-rw-r--r--sysdeps/sparc/nptl/pthread-offsets.h15
-rw-r--r--sysdeps/sparc/nptl/tls.h4
-rw-r--r--sysdeps/sparc/preconfigure20
-rw-r--r--sysdeps/sparc/sparc-ifunc.h7
-rw-r--r--sysdeps/sparc/sparc-mcount.S4
-rw-r--r--sysdeps/sparc/sparc32/Makefile31
-rw-r--r--sysdeps/sparc/sparc32/__longjmp.S4
-rw-r--r--sysdeps/sparc/sparc32/add_n.S4
-rw-r--r--sysdeps/sparc/sparc32/addmul_1.S212
-rw-r--r--sysdeps/sparc/sparc32/alloca.S4
-rw-r--r--sysdeps/sparc/sparc32/atomic-machine.h363
-rw-r--r--sysdeps/sparc/sparc32/bits/setjmp.h4
-rw-r--r--sysdeps/sparc/sparc32/configure197
-rw-r--r--sysdeps/sparc/sparc32/configure.ac37
-rw-r--r--sysdeps/sparc/sparc32/divrem.m4234
-rw-r--r--sysdeps/sparc/sparc32/dl-irel.h6
-rw-r--r--sysdeps/sparc/sparc32/dl-machine.h10
-rw-r--r--sysdeps/sparc/sparc32/dl-plt.h4
-rw-r--r--sysdeps/sparc/sparc32/dl-trampoline.S4
-rw-r--r--sysdeps/sparc/sparc32/dotmul.S120
-rw-r--r--sysdeps/sparc/sparc32/e_sqrt.c4
-rw-r--r--sysdeps/sparc/sparc32/fpu/e_sqrtl.c4
-rw-r--r--sysdeps/sparc/sparc32/fpu/s_copysign.S4
-rw-r--r--sysdeps/sparc/sparc32/fpu/s_copysignf.S4
-rw-r--r--sysdeps/sparc/sparc32/fpu/s_fabs.S4
-rw-r--r--sysdeps/sparc/sparc32/fpu/s_fabsf.S4
-rw-r--r--sysdeps/sparc/sparc32/fpu/s_signbit.S4
-rw-r--r--sysdeps/sparc/sparc32/fpu/s_signbitl.S4
-rw-r--r--sysdeps/sparc/sparc32/ieee754.h8
-rw-r--r--sysdeps/sparc/sparc32/jmpbuf-offsets.h4
-rw-r--r--sysdeps/sparc/sparc32/jmpbuf-unwind.h4
-rw-r--r--sysdeps/sparc/sparc32/lll_timedlock_wait.c1
-rw-r--r--sysdeps/sparc/sparc32/lll_timedwait_tid.c1
-rw-r--r--sysdeps/sparc/sparc32/lowlevellock.c131
-rw-r--r--sysdeps/sparc/sparc32/lshift.S4
-rw-r--r--sysdeps/sparc/sparc32/memchr.S4
-rw-r--r--sysdeps/sparc/sparc32/memcpy.S4
-rw-r--r--sysdeps/sparc/sparc32/memset.S4
-rw-r--r--sysdeps/sparc/sparc32/mul_1.S248
-rw-r--r--sysdeps/sparc/sparc32/pthread_barrier_wait.c1
-rw-r--r--sysdeps/sparc/sparc32/pthread_spin_lock.S4
-rw-r--r--sysdeps/sparc/sparc32/pthread_spin_trylock.S4
-rw-r--r--sysdeps/sparc/sparc32/pthreaddef.h4
-rw-r--r--sysdeps/sparc/sparc32/q_add.c4
-rw-r--r--sysdeps/sparc/sparc32/q_cmp.c4
-rw-r--r--sysdeps/sparc/sparc32/q_cmpe.c4
-rw-r--r--sysdeps/sparc/sparc32/q_div.c4
-rw-r--r--sysdeps/sparc/sparc32/q_dtoq.c6
-rw-r--r--sysdeps/sparc/sparc32/q_feq.c4
-rw-r--r--sysdeps/sparc/sparc32/q_fge.c4
-rw-r--r--sysdeps/sparc/sparc32/q_fgt.c4
-rw-r--r--sysdeps/sparc/sparc32/q_fle.c4
-rw-r--r--sysdeps/sparc/sparc32/q_flt.c4
-rw-r--r--sysdeps/sparc/sparc32/q_fne.c4
-rw-r--r--sysdeps/sparc/sparc32/q_itoq.c4
-rw-r--r--sysdeps/sparc/sparc32/q_lltoq.c4
-rw-r--r--sysdeps/sparc/sparc32/q_mul.c4
-rw-r--r--sysdeps/sparc/sparc32/q_neg.c4
-rw-r--r--sysdeps/sparc/sparc32/q_qtod.c6
-rw-r--r--sysdeps/sparc/sparc32/q_qtoi.c4
-rw-r--r--sysdeps/sparc/sparc32/q_qtoll.c4
-rw-r--r--sysdeps/sparc/sparc32/q_qtos.c6
-rw-r--r--sysdeps/sparc/sparc32/q_qtou.c4
-rw-r--r--sysdeps/sparc/sparc32/q_qtoull.c4
-rw-r--r--sysdeps/sparc/sparc32/q_sqrt.c4
-rw-r--r--sysdeps/sparc/sparc32/q_stoq.c6
-rw-r--r--sysdeps/sparc/sparc32/q_sub.c4
-rw-r--r--sysdeps/sparc/sparc32/q_ulltoq.c4
-rw-r--r--sysdeps/sparc/sparc32/q_util.c4
-rw-r--r--sysdeps/sparc/sparc32/q_utoq.c4
-rw-r--r--sysdeps/sparc/sparc32/rem.S364
-rw-r--r--sysdeps/sparc/sparc32/rshift.S4
-rw-r--r--sysdeps/sparc/sparc32/sdiv.S365
-rw-r--r--sysdeps/sparc/sparc32/sem_post.c82
-rw-r--r--sysdeps/sparc/sparc32/sem_waitcommon.c146
-rw-r--r--sysdeps/sparc/sparc32/setjmp.S4
-rw-r--r--sysdeps/sparc/sparc32/sfp-machine.h4
-rw-r--r--sysdeps/sparc/sparc32/sparcv8/Makefile1
-rw-r--r--sysdeps/sparc/sparc32/sparcv8/addmul_1.S118
-rw-r--r--sysdeps/sparc/sparc32/sparcv8/dotmul.S13
-rw-r--r--sysdeps/sparc/sparc32/sparcv8/mul_1.S102
-rw-r--r--sysdeps/sparc/sparc32/sparcv8/rem.S21
-rw-r--r--sysdeps/sparc/sparc32/sparcv8/sdiv.S20
-rw-r--r--sysdeps/sparc/sparc32/sparcv8/submul_1.S57
-rw-r--r--sysdeps/sparc/sparc32/sparcv8/udiv.S16
-rw-r--r--sysdeps/sparc/sparc32/sparcv8/umul.S13
-rw-r--r--sysdeps/sparc/sparc32/sparcv8/urem.S18
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/Makefile9
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/addmul_1.S4
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/atomic-machine.h108
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/cpu_relax.c1
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysign-vis3.S4
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysign.c5
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysignf-vis3.S4
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysignf.c5
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabs-vis3.S4
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabs.c4
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabsf-vis3.S4
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabsf.c4
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim-vis3.c4
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.c4
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf-vis3.c4
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf.c4
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fma-vis3.S4
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fmaf-vis3.S4
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrint-vis3.S4
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrint.c4
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrintf-vis3.S4
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrintf.c4
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyint-vis3.S4
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyint.c4
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyintf-vis3.S4
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyintf.c4
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rint-vis3.S4
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rint.c5
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rintf-vis3.S4
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rintf.c5
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/s_fabs.S4
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/s_isnan.S4
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/s_llrint.S4
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/s_llrintf.S4
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/s_lrintf.S4
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyint.S4
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyintf.S4
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/s_rint.S4
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/fpu/s_rintf.S4
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/hp-timing.h6
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/mul_1.S4
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/multiarch/memcpy-ultra1.S4
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/multiarch/memset-ultra1.S4
-rw-r--r--sysdeps/sparc/sparc32/sparcv9/submul_1.S4
-rw-r--r--sysdeps/sparc/sparc32/start.S4
-rw-r--r--sysdeps/sparc/sparc32/stpcpy.S4
-rw-r--r--sysdeps/sparc/sparc32/strcat.S4
-rw-r--r--sysdeps/sparc/sparc32/strchr.S4
-rw-r--r--sysdeps/sparc/sparc32/strcmp.S4
-rw-r--r--sysdeps/sparc/sparc32/strcpy.S4
-rw-r--r--sysdeps/sparc/sparc32/strlen.S4
-rw-r--r--sysdeps/sparc/sparc32/sub_n.S4
-rw-r--r--sysdeps/sparc/sparc32/submul_1.S147
-rw-r--r--sysdeps/sparc/sparc32/tst-audit.h4
-rw-r--r--sysdeps/sparc/sparc32/udiv.S341
-rw-r--r--sysdeps/sparc/sparc32/umul.S148
-rw-r--r--sysdeps/sparc/sparc32/urem.S344
-rw-r--r--sysdeps/sparc/sparc64/Makefile13
-rw-r--r--sysdeps/sparc/sparc64/add_n.S4
-rw-r--r--sysdeps/sparc/sparc64/addmul_1.S4
-rw-r--r--sysdeps/sparc/sparc64/align-cpy.S4
-rw-r--r--sysdeps/sparc/sparc64/atomic-machine.h129
-rw-r--r--sysdeps/sparc/sparc64/cpu_relax.c38
-rw-r--r--sysdeps/sparc/sparc64/dl-irel.h6
-rw-r--r--sysdeps/sparc/sparc64/dl-machine.h55
-rw-r--r--sysdeps/sparc/sparc64/dl-plt.h4
-rw-r--r--sysdeps/sparc/sparc64/dl-trampoline.S4
-rw-r--r--sysdeps/sparc/sparc64/fpu/e_sqrtl.c4
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_ceil-generic.c2
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_ceil-vis3.c6
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_ceil.c5
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf-vis3.c4
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf.c5
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_finite-vis3.S4
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_finite.c4
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_finitef-vis3.S4
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_finitef.c4
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_floor-generic.c2
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_floor-vis3.c6
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_floor.c5
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_floorf-vis3.c4
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_floorf.c5
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_fma-vis3.S4
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_fmaf-vis3.S4
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_isinf-vis3.S4
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_isinf.c4
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_isinff-vis3.S4
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_isinff.c4
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_isnan-vis3.S4
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_isnan.c4
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_isnanf-vis3.S4
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_isnanf.c4
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_lrint-vis3.S4
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_lrint.c4
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_lrintf-vis3.S4
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_lrintf.c4
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyint-vis3.S4
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyint.c4
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyintf-vis3.S4
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyintf.c4
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_rint-vis3.S4
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_rint.c5
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_rintf-vis3.S4
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_rintf.c5
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_signbit-vis3.S4
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_signbit.c4
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_signbitf-vis3.S4
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_signbitf.c4
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_trunc-generic.c2
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_trunc-vis3.c6
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_trunc.c5
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_truncf-vis3.c4
-rw-r--r--sysdeps/sparc/sparc64/fpu/multiarch/s_truncf.c5
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_copysign.S4
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_copysignf.S4
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_finite.S4
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_finitef.S4
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_isinf.S4
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_isinff.S4
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_isnan.S4
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_isnanf.S4
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_lrint.S4
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_lrintf.S4
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_nearbyint.S4
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_nearbyintf.S4
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_rint.S4
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_rintf.S4
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_signbit.S4
-rw-r--r--sysdeps/sparc/sparc64/fpu/s_signbitf.S4
-rw-r--r--sysdeps/sparc/sparc64/hp-timing.h6
-rw-r--r--sysdeps/sparc/sparc64/jmpbuf-unwind.h4
-rw-r--r--sysdeps/sparc/sparc64/lshift.S4
-rw-r--r--sysdeps/sparc/sparc64/memchr.S6
-rw-r--r--sysdeps/sparc/sparc64/memcmp.S6
-rw-r--r--sysdeps/sparc/sparc64/memcpy.S4
-rw-r--r--sysdeps/sparc/sparc64/memmove.S4
-rw-r--r--sysdeps/sparc/sparc64/memset.S4
-rw-r--r--sysdeps/sparc/sparc64/mul_1.S4
-rw-r--r--sysdeps/sparc/sparc64/multiarch/add_n-vis3.S4
-rw-r--r--sysdeps/sparc/sparc64/multiarch/add_n.c4
-rw-r--r--sysdeps/sparc/sparc64/multiarch/addmul_1-vis3.S4
-rw-r--r--sysdeps/sparc/sparc64/multiarch/addmul_1.c4
-rw-r--r--sysdeps/sparc/sparc64/multiarch/bzero.c4
-rw-r--r--sysdeps/sparc/sparc64/multiarch/ifunc-impl-list.c4
-rw-r--r--sysdeps/sparc/sparc64/multiarch/ifunc-memcpy.h4
-rw-r--r--sysdeps/sparc/sparc64/multiarch/ifunc-memmove.h4
-rw-r--r--sysdeps/sparc/sparc64/multiarch/ifunc-memset.h4
-rw-r--r--sysdeps/sparc/sparc64/multiarch/md5-crop.S4
-rw-r--r--sysdeps/sparc/sparc64/multiarch/memcpy-memmove-niagara7.S4
-rw-r--r--sysdeps/sparc/sparc64/multiarch/memcpy-niagara1.S4
-rw-r--r--sysdeps/sparc/sparc64/multiarch/memcpy-niagara2.S4
-rw-r--r--sysdeps/sparc/sparc64/multiarch/memcpy-niagara4.S4
-rw-r--r--sysdeps/sparc/sparc64/multiarch/memcpy-ultra1.S4
-rw-r--r--sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S6
-rw-r--r--sysdeps/sparc/sparc64/multiarch/memcpy.c4
-rw-r--r--sysdeps/sparc/sparc64/multiarch/memmove.c4
-rw-r--r--sysdeps/sparc/sparc64/multiarch/mempcpy.c4
-rw-r--r--sysdeps/sparc/sparc64/multiarch/memset-niagara1.S4
-rw-r--r--sysdeps/sparc/sparc64/multiarch/memset-niagara4.S4
-rw-r--r--sysdeps/sparc/sparc64/multiarch/memset-niagara7.S4
-rw-r--r--sysdeps/sparc/sparc64/multiarch/memset-ultra1.S4
-rw-r--r--sysdeps/sparc/sparc64/multiarch/memset.c4
-rw-r--r--sysdeps/sparc/sparc64/multiarch/mul_1-vis3.S4
-rw-r--r--sysdeps/sparc/sparc64/multiarch/mul_1.c4
-rw-r--r--sysdeps/sparc/sparc64/multiarch/sha256-crop.S4
-rw-r--r--sysdeps/sparc/sparc64/multiarch/sha512-crop.S4
-rw-r--r--sysdeps/sparc/sparc64/multiarch/sub_n-vis3.S4
-rw-r--r--sysdeps/sparc/sparc64/multiarch/sub_n.c4
-rw-r--r--sysdeps/sparc/sparc64/multiarch/submul_1-vis3.S4
-rw-r--r--sysdeps/sparc/sparc64/multiarch/submul_1.c4
-rw-r--r--sysdeps/sparc/sparc64/pthread_spin_lock.S4
-rw-r--r--sysdeps/sparc/sparc64/pthread_spin_trylock.S4
-rw-r--r--sysdeps/sparc/sparc64/pthread_spin_unlock.S4
-rw-r--r--sysdeps/sparc/sparc64/pthreaddef.h4
-rw-r--r--sysdeps/sparc/sparc64/qp_add.c4
-rw-r--r--sysdeps/sparc/sparc64/qp_cmp.c4
-rw-r--r--sysdeps/sparc/sparc64/qp_cmpe.c4
-rw-r--r--sysdeps/sparc/sparc64/qp_div.c4
-rw-r--r--sysdeps/sparc/sparc64/qp_dtoq.c6
-rw-r--r--sysdeps/sparc/sparc64/qp_feq.c4
-rw-r--r--sysdeps/sparc/sparc64/qp_fge.c4
-rw-r--r--sysdeps/sparc/sparc64/qp_fgt.c4
-rw-r--r--sysdeps/sparc/sparc64/qp_fle.c4
-rw-r--r--sysdeps/sparc/sparc64/qp_flt.c4
-rw-r--r--sysdeps/sparc/sparc64/qp_fne.c4
-rw-r--r--sysdeps/sparc/sparc64/qp_itoq.c4
-rw-r--r--sysdeps/sparc/sparc64/qp_mul.c4
-rw-r--r--sysdeps/sparc/sparc64/qp_neg.S4
-rw-r--r--sysdeps/sparc/sparc64/qp_qtod.c6
-rw-r--r--sysdeps/sparc/sparc64/qp_qtoi.c4
-rw-r--r--sysdeps/sparc/sparc64/qp_qtos.c6
-rw-r--r--sysdeps/sparc/sparc64/qp_qtoui.c4
-rw-r--r--sysdeps/sparc/sparc64/qp_qtoux.c4
-rw-r--r--sysdeps/sparc/sparc64/qp_qtox.c4
-rw-r--r--sysdeps/sparc/sparc64/qp_sqrt.c4
-rw-r--r--sysdeps/sparc/sparc64/qp_stoq.c6
-rw-r--r--sysdeps/sparc/sparc64/qp_sub.c4
-rw-r--r--sysdeps/sparc/sparc64/qp_uitoq.c4
-rw-r--r--sysdeps/sparc/sparc64/qp_util.c4
-rw-r--r--sysdeps/sparc/sparc64/qp_uxtoq.c4
-rw-r--r--sysdeps/sparc/sparc64/qp_xtoq.c4
-rw-r--r--sysdeps/sparc/sparc64/rawmemchr.S4
-rw-r--r--sysdeps/sparc/sparc64/rshift.S4
-rw-r--r--sysdeps/sparc/sparc64/sfp-machine.h4
-rw-r--r--sysdeps/sparc/sparc64/start.S4
-rw-r--r--sysdeps/sparc/sparc64/stpcpy.S6
-rw-r--r--sysdeps/sparc/sparc64/stpncpy.S6
-rw-r--r--sysdeps/sparc/sparc64/strcat.S6
-rw-r--r--sysdeps/sparc/sparc64/strchr.S6
-rw-r--r--sysdeps/sparc/sparc64/strcmp.S4
-rw-r--r--sysdeps/sparc/sparc64/strcpy.S6
-rw-r--r--sysdeps/sparc/sparc64/strcspn.S4
-rw-r--r--sysdeps/sparc/sparc64/strlen.S6
-rw-r--r--sysdeps/sparc/sparc64/strncmp.S6
-rw-r--r--sysdeps/sparc/sparc64/strncpy.S6
-rw-r--r--sysdeps/sparc/sparc64/strpbrk.S4
-rw-r--r--sysdeps/sparc/sparc64/strspn.S4
-rw-r--r--sysdeps/sparc/sparc64/sub_n.S4
-rw-r--r--sysdeps/sparc/sparc64/submul_1.S4
-rw-r--r--sysdeps/sparc/sparc64/tst-audit.h4
-rw-r--r--sysdeps/sparc/stackinfo.h4
-rw-r--r--sysdeps/sparc/sysdep.h4
-rw-r--r--sysdeps/unix/Makefile4
-rw-r--r--sysdeps/unix/alpha/pipe.S4
-rw-r--r--sysdeps/unix/alpha/sysdep.S4
-rw-r--r--sysdeps/unix/alpha/sysdep.h6
-rw-r--r--sysdeps/unix/arm/sysdep.S4
-rw-r--r--sysdeps/unix/arm/sysdep.h4
-rw-r--r--sysdeps/unix/bsd/bits/signum.h4
-rw-r--r--sysdeps/unix/bsd/bits/sockaddr.h4
-rw-r--r--sysdeps/unix/bsd/ftime.c40
-rw-r--r--sysdeps/unix/bsd/getpt.c4
-rw-r--r--sysdeps/unix/bsd/gtty.c4
-rw-r--r--sysdeps/unix/bsd/stty.c4
-rw-r--r--sysdeps/unix/bsd/tcdrain.c4
-rw-r--r--sysdeps/unix/bsd/tcflow.c4
-rw-r--r--sysdeps/unix/bsd/tcflush.c4
-rw-r--r--sysdeps/unix/bsd/tcgetattr.c4
-rw-r--r--sysdeps/unix/bsd/tcgetpgrp.c4
-rw-r--r--sysdeps/unix/bsd/tcsendbrk.c4
-rw-r--r--sysdeps/unix/bsd/tcsetattr.c4
-rw-r--r--sysdeps/unix/bsd/tcsetpgrp.c4
-rw-r--r--sysdeps/unix/bsd/ualarm.c4
-rw-r--r--sysdeps/unix/bsd/unlockpt.c4
-rw-r--r--sysdeps/unix/bsd/wait.c4
-rw-r--r--sysdeps/unix/bsd/wait3.c4
-rw-r--r--sysdeps/unix/bsd/waitpid.c4
-rw-r--r--sysdeps/unix/clock_gettime.c136
-rw-r--r--sysdeps/unix/clock_nanosleep.c101
-rw-r--r--sysdeps/unix/clock_settime.c126
-rw-r--r--sysdeps/unix/get_child_max.c4
-rw-r--r--sysdeps/unix/getlogin.c4
-rw-r--r--sysdeps/unix/getlogin_r.c11
-rw-r--r--sysdeps/unix/getpagesize.c4
-rw-r--r--sysdeps/unix/grantpt.c8
-rw-r--r--sysdeps/unix/i386/sysdep.S4
-rw-r--r--sysdeps/unix/i386/sysdep.h4
-rw-r--r--sysdeps/unix/ifreq.c4
-rw-r--r--sysdeps/unix/inet/Subdirs1
-rw-r--r--sysdeps/unix/make-syscalls.sh9
-rw-r--r--sysdeps/unix/mips/mips32/sysdep.h4
-rw-r--r--sysdeps/unix/mips/mips64/n32/sysdep.h4
-rw-r--r--sysdeps/unix/mips/mips64/n64/sysdep.h4
-rw-r--r--sysdeps/unix/mips/pipe.S4
-rw-r--r--sysdeps/unix/mips/sysdep.S4
-rw-r--r--sysdeps/unix/mips/sysdep.h4
-rw-r--r--sysdeps/unix/powerpc/sysdep.h4
-rw-r--r--sysdeps/unix/pt-fcntl.c4
-rw-r--r--sysdeps/unix/sh/sysdep.S4
-rw-r--r--sysdeps/unix/sh/sysdep.h4
-rw-r--r--sysdeps/unix/sockatmark.c6
-rw-r--r--sysdeps/unix/stime.c39
-rw-r--r--sysdeps/unix/syscall-template.S4
-rw-r--r--sysdeps/unix/syscall.S4
-rw-r--r--sysdeps/unix/syscalls.list2
-rw-r--r--sysdeps/unix/sysdep.h6
-rw-r--r--sysdeps/unix/sysv/linux/Makefile69
-rw-r--r--sysdeps/unix/sysv/linux/Versions7
-rw-r--r--sysdeps/unix/sysv/linux/_exit.c4
-rw-r--r--sysdeps/unix/sysv/linux/a.out.h4
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/__read_tp.S4
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/bits/fcntl.h4
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/bits/hwcap.h11
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/bits/ipc.h54
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/bits/local_lim.h4
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/bits/mman.h48
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/bits/procfs.h35
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h4
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/clone.S4
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/cpu-features.c8
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/cpu-features.h9
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/dl-cache.h4
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/dl-procinfo.c9
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/dl-procinfo.h4
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/dl-static.c4
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/getcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/gettimeofday.c53
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/init-first.c52
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/ioctl.S4
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/ipc_priv.h4
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/kernel-features.h4
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/kernel_rt_sigframe.h4
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/ldconfig.h4
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/ldsodefs.h4
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/libc-__read_tp.S4
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/libc-start.c4
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/libc-vdso.h33
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/libc.abilist7
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/libm.abilist21
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/libpthread.abilist20
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/makecontext.c4
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/profil-counter.h20
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/pt-vfork.c54
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/readelflib.c4
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/setcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/sigaction.c4
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/sigcontextinfo.h26
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/swapcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/sys/elf.h4
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/sys/procfs.h123
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h10
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h4
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/sys/user.h4
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/syscall.S4
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/sysconf.c4
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/sysdep.c4
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/sysdep.h23
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/ucontext-internal.h4
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/vfork.S4
-rw-r--r--sysdeps/unix/sysv/linux/accept.c4
-rw-r--r--sysdeps/unix/sysv/linux/accept4.c4
-rw-r--r--sysdeps/unix/sysv/linux/access.c5
-rw-r--r--sysdeps/unix/sysv/linux/adjtime.c44
-rw-r--r--sysdeps/unix/sysv/linux/adjtimex.c40
-rw-r--r--sysdeps/unix/sysv/linux/aio_misc.h4
-rw-r--r--sysdeps/unix/sysv/linux/aio_sigqueue.c4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/Makefile4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/____longjmp_chk.S4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/a.out.h10
-rw-r--r--sysdeps/unix/sysv/linux/alpha/adjtime.c84
-rw-r--r--sysdeps/unix/sysv/linux/alpha/adjtimex.c22
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/dirent.h4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/epoll.h4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/errno.h4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/eventfd.h4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/fcntl.h4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/inotify.h4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/ioctls.h4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/ipc.h54
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/local_lim.h4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/mman.h4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/msq.h75
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/netdb.h4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/procfs-prregset.h25
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/procfs.h38
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/resource.h4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/sem.h85
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/semaphore.h4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/shm.h101
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/sigaction.h4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/signalfd.h4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/signum.h4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/sigstack.h4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/socket-constants.h38
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/socket_type.h4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/stat.h4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/statfs.h4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/termios-baud.h46
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/termios-c_cc.h40
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/termios-c_cflag.h35
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/termios-c_iflag.h38
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/termios-c_lflag.h42
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/termios-c_oflag.h66
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/termios-struct.h37
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/termios.h223
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/timerfd.h4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/typesizes.h7
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/wordsize.h4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/brk.S4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/clone.S4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/dl-auxv.h4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/fraiseexcpt.S4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/fxstat.c4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/fxstatat.c4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/getcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/getegid.S (renamed from sysdeps/unix/alpha/getegid.S)4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/geteuid.S (renamed from sysdeps/unix/alpha/geteuid.S)4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/gethostname.c4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/getppid.S (renamed from sysdeps/unix/alpha/getppid.S)4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/getrlimit64.c4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/getsysstats.c4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/gettimeofday.c22
-rw-r--r--sysdeps/unix/sysv/linux/alpha/globfree.c4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/ioperm.c17
-rw-r--r--sysdeps/unix/sysv/linux/alpha/ipc_priv.h21
-rw-r--r--sysdeps/unix/sysv/linux/alpha/kernel-features.h25
-rw-r--r--sysdeps/unix/sysv/linux/alpha/kernel_sigaction.h19
-rw-r--r--sysdeps/unix/sysv/linux/alpha/kernel_termios.h4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/libc.abilist24
-rw-r--r--sysdeps/unix/sysv/linux/alpha/libm.abilist21
-rw-r--r--sysdeps/unix/sysv/linux/alpha/libpthread.abilist23
-rw-r--r--sysdeps/unix/sysv/linux/alpha/librt.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/alpha/lxstat.c4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/makecontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/oldglob.c4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/osf_adjtime.c130
-rw-r--r--sysdeps/unix/sysv/linux/alpha/osf_getitimer.c43
-rw-r--r--sysdeps/unix/sysv/linux/alpha/osf_getrusage.c39
-rw-r--r--sysdeps/unix/sysv/linux/alpha/osf_gettimeofday.c48
-rw-r--r--sysdeps/unix/sysv/linux/alpha/osf_setitimer.c53
-rw-r--r--sysdeps/unix/sysv/linux/alpha/osf_settimeofday.c50
-rw-r--r--sysdeps/unix/sysv/linux/alpha/osf_utimes.c37
-rw-r--r--sysdeps/unix/sysv/linux/alpha/osf_wait4.c41
-rw-r--r--sysdeps/unix/sysv/linux/alpha/pt-vfork.S43
-rw-r--r--sysdeps/unix/sysv/linux/alpha/register-dump.h287
-rw-r--r--sysdeps/unix/sysv/linux/alpha/rt_sigaction.S45
-rw-r--r--sysdeps/unix/sysv/linux/alpha/select.c4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/setcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/setfpucw.c4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/setrlimit64.c4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/settimeofday.c22
-rw-r--r--sysdeps/unix/sysv/linux/alpha/sigaction.c38
-rw-r--r--sysdeps/unix/sysv/linux/alpha/sigcontextinfo.h19
-rw-r--r--sysdeps/unix/sysv/linux/alpha/sigprocmask.c4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/sizes.h4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/swapcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/sys/acct.h4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/sys/io.h4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/sys/procfs.h127
-rw-r--r--sysdeps/unix/sysv/linux/alpha/sys/ucontext.h4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/sys/user.h4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/syscall.S4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/syscalls.list26
-rw-r--r--sysdeps/unix/sysv/linux/alpha/sysconf.c4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/sysdep.h31
-rw-r--r--sysdeps/unix/sysv/linux/alpha/tv32-compat.h124
-rw-r--r--sysdeps/unix/sysv/linux/alpha/vfork.S4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/xstat.c4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/xstatconv.c4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/xstatconv.h4
-rw-r--r--sysdeps/unix/sysv/linux/alphasort64.c4
-rw-r--r--sysdeps/unix/sysv/linux/arch-fork.h4
-rw-r--r--sysdeps/unix/sysv/linux/arm/Makefile2
-rw-r--r--sysdeps/unix/sysv/linux/arm/____longjmp_chk.S4
-rw-r--r--sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S4
-rw-r--r--sysdeps/unix/sysv/linux/arm/arm-features.h4
-rw-r--r--sysdeps/unix/sysv/linux/arm/atomic-machine.h22
-rw-r--r--sysdeps/unix/sysv/linux/arm/be/Implies1
-rw-r--r--sysdeps/unix/sysv/linux/arm/be/Versions5
-rw-r--r--sysdeps/unix/sysv/linux/arm/be/ld.abilist (renamed from sysdeps/unix/sysv/linux/arm/ld.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/arm/be/libBrokenLocale.abilist (renamed from sysdeps/unix/sysv/linux/arm/libBrokenLocale.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/arm/be/libanl.abilist (renamed from sysdeps/unix/sysv/linux/arm/libanl.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/arm/be/libc.abilist2182
-rw-r--r--sysdeps/unix/sysv/linux/arm/be/libcrypt.abilist (renamed from sysdeps/unix/sysv/linux/arm/libcrypt.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/arm/be/libdl.abilist (renamed from sysdeps/unix/sysv/linux/arm/libdl.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/arm/be/libm.abilist784
-rw-r--r--sysdeps/unix/sysv/linux/arm/be/libnsl.abilist (renamed from sysdeps/unix/sysv/linux/arm/libnsl.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/arm/be/libpthread.abilist237
-rw-r--r--sysdeps/unix/sysv/linux/arm/be/libresolv.abilist (renamed from sysdeps/unix/sysv/linux/arm/libresolv.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/arm/be/librt.abilist35
-rw-r--r--sysdeps/unix/sysv/linux/arm/be/libthread_db.abilist (renamed from sysdeps/unix/sysv/linux/arm/libthread_db.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/arm/be/libutil.abilist (renamed from sysdeps/unix/sysv/linux/arm/libutil.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/arm/bits/fcntl.h4
-rw-r--r--sysdeps/unix/sysv/linux/arm/bits/hwcap.h4
-rw-r--r--sysdeps/unix/sysv/linux/arm/bits/mman.h44
-rw-r--r--sysdeps/unix/sysv/linux/arm/bits/procfs-id.h25
-rw-r--r--sysdeps/unix/sysv/linux/arm/bits/procfs.h34
-rw-r--r--sysdeps/unix/sysv/linux/arm/bits/shm.h104
-rw-r--r--sysdeps/unix/sysv/linux/arm/bits/shmlba.h29
-rw-r--r--sysdeps/unix/sysv/linux/arm/brk.c4
-rw-r--r--sysdeps/unix/sysv/linux/arm/clone.S4
-rw-r--r--sysdeps/unix/sysv/linux/arm/dl-cache.h4
-rw-r--r--sysdeps/unix/sysv/linux/arm/dl-machine.h4
-rw-r--r--sysdeps/unix/sysv/linux/arm/dl-procinfo.c4
-rw-r--r--sysdeps/unix/sysv/linux/arm/dl-procinfo.h6
-rw-r--r--sysdeps/unix/sysv/linux/arm/getcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/arm/init-first.c44
-rw-r--r--sysdeps/unix/sysv/linux/arm/ioperm.c166
-rw-r--r--sysdeps/unix/sysv/linux/arm/kernel-features.h18
-rw-r--r--sysdeps/unix/sysv/linux/arm/ldconfig.h4
-rw-r--r--sysdeps/unix/sysv/linux/arm/ldsodefs.h4
-rw-r--r--sysdeps/unix/sysv/linux/arm/le/Implies1
-rw-r--r--sysdeps/unix/sysv/linux/arm/le/ld.abilist9
-rw-r--r--sysdeps/unix/sysv/linux/arm/le/libBrokenLocale.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/arm/le/libanl.abilist4
-rw-r--r--sysdeps/unix/sysv/linux/arm/le/libc.abilist2179
-rw-r--r--sysdeps/unix/sysv/linux/arm/le/libcrypt.abilist7
-rw-r--r--sysdeps/unix/sysv/linux/arm/le/libdl.abilist9
-rw-r--r--sysdeps/unix/sysv/linux/arm/le/libm.abilist784
-rw-r--r--sysdeps/unix/sysv/linux/arm/le/libnsl.abilist121
-rw-r--r--sysdeps/unix/sysv/linux/arm/le/libpthread.abilist237
-rw-r--r--sysdeps/unix/sysv/linux/arm/le/libresolv.abilist91
-rw-r--r--sysdeps/unix/sysv/linux/arm/le/librt.abilist35
-rw-r--r--sysdeps/unix/sysv/linux/arm/le/libthread_db.abilist40
-rw-r--r--sysdeps/unix/sysv/linux/arm/le/libutil.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/arm/libc-do-syscall.S4
-rw-r--r--sysdeps/unix/sysv/linux/arm/libc-vdso.h33
-rw-r--r--sysdeps/unix/sysv/linux/arm/libc.abilist2167
-rw-r--r--sysdeps/unix/sysv/linux/arm/libm.abilist767
-rw-r--r--sysdeps/unix/sysv/linux/arm/libpthread.abilist245
-rw-r--r--sysdeps/unix/sysv/linux/arm/librt.abilist40
-rw-r--r--sysdeps/unix/sysv/linux/arm/lockf64.c1
-rw-r--r--sysdeps/unix/sysv/linux/arm/makecontext.c4
-rw-r--r--sysdeps/unix/sysv/linux/arm/profil-counter.h13
-rw-r--r--sysdeps/unix/sysv/linux/arm/readelflib.c4
-rw-r--r--sysdeps/unix/sysv/linux/arm/register-dump.h4
-rw-r--r--sysdeps/unix/sysv/linux/arm/setcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/arm/sigaction.c4
-rw-r--r--sysdeps/unix/sysv/linux/arm/sigcontextinfo.h31
-rw-r--r--sysdeps/unix/sysv/linux/arm/sigrestorer.S4
-rw-r--r--sysdeps/unix/sysv/linux/arm/swapcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/arm/sys/elf.h4
-rw-r--r--sysdeps/unix/sysv/linux/arm/sys/io.h47
-rw-r--r--sysdeps/unix/sysv/linux/arm/sys/procfs.h122
-rw-r--r--sysdeps/unix/sysv/linux/arm/sys/ptrace.h8
-rw-r--r--sysdeps/unix/sysv/linux/arm/sys/ucontext.h4
-rw-r--r--sysdeps/unix/sysv/linux/arm/sys/user.h4
-rw-r--r--sysdeps/unix/sysv/linux/arm/syscall.S4
-rw-r--r--sysdeps/unix/sysv/linux/arm/sysdep.S4
-rw-r--r--sysdeps/unix/sysv/linux/arm/sysdep.h11
-rw-r--r--sysdeps/unix/sysv/linux/arm/tls.h4
-rw-r--r--sysdeps/unix/sysv/linux/arm/vfork.S4
-rw-r--r--sysdeps/unix/sysv/linux/bind.c4
-rw-r--r--sysdeps/unix/sysv/linux/bits/dirent.h4
-rw-r--r--sysdeps/unix/sysv/linux/bits/dirent_ext.h33
-rw-r--r--sysdeps/unix/sysv/linux/bits/epoll.h4
-rw-r--r--sysdeps/unix/sysv/linux/bits/errno.h4
-rw-r--r--sysdeps/unix/sysv/linux/bits/eventfd.h4
-rw-r--r--sysdeps/unix/sysv/linux/bits/fcntl-linux.h11
-rw-r--r--sysdeps/unix/sysv/linux/bits/in.h6
-rw-r--r--sysdeps/unix/sysv/linux/bits/inotify.h4
-rw-r--r--sysdeps/unix/sysv/linux/bits/ioctl-types.h4
-rw-r--r--sysdeps/unix/sysv/linux/bits/ioctls.h4
-rw-r--r--sysdeps/unix/sysv/linux/bits/ipc-perm.h40
-rw-r--r--sysdeps/unix/sysv/linux/bits/ipc.h21
-rw-r--r--sysdeps/unix/sysv/linux/bits/local_lim.h4
-rw-r--r--sysdeps/unix/sysv/linux/bits/mman-linux.h12
-rw-r--r--sysdeps/unix/sysv/linux/bits/mman-map-flags-generic.h42
-rw-r--r--sysdeps/unix/sysv/linux/bits/mman-shared.h8
-rw-r--r--sysdeps/unix/sysv/linux/bits/mman.h32
-rw-r--r--sysdeps/unix/sysv/linux/bits/mqueue.h4
-rw-r--r--sysdeps/unix/sysv/linux/bits/msq-pad.h31
-rw-r--r--sysdeps/unix/sysv/linux/bits/msq.h34
-rw-r--r--sysdeps/unix/sysv/linux/bits/param.h4
-rw-r--r--sysdeps/unix/sysv/linux/bits/poll.h4
-rw-r--r--sysdeps/unix/sysv/linux/bits/posix_opt.h9
-rw-r--r--sysdeps/unix/sysv/linux/bits/procfs-extra.h22
-rw-r--r--sysdeps/unix/sysv/linux/bits/procfs-id.h25
-rw-r--r--sysdeps/unix/sysv/linux/bits/procfs-prregset.h25
-rw-r--r--sysdeps/unix/sysv/linux/bits/procfs.h1
-rw-r--r--sysdeps/unix/sysv/linux/bits/ptrace-shared.h51
-rw-r--r--sysdeps/unix/sysv/linux/bits/resource.h4
-rw-r--r--sysdeps/unix/sysv/linux/bits/sched.h9
-rw-r--r--sysdeps/unix/sysv/linux/bits/sem-pad.h33
-rw-r--r--sysdeps/unix/sysv/linux/bits/sem.h28
-rw-r--r--sysdeps/unix/sysv/linux/bits/shm-pad.h37
-rw-r--r--sysdeps/unix/sysv/linux/bits/shm.h74
-rw-r--r--sysdeps/unix/sysv/linux/bits/shmlba.h29
-rw-r--r--sysdeps/unix/sysv/linux/bits/sigaction.h4
-rw-r--r--sysdeps/unix/sysv/linux/bits/sigcontext.h4
-rw-r--r--sysdeps/unix/sysv/linux/bits/sigevent-consts.h4
-rw-r--r--sysdeps/unix/sysv/linux/bits/siginfo-consts.h35
-rw-r--r--sysdeps/unix/sysv/linux/bits/signal_ext.h31
-rw-r--r--sysdeps/unix/sysv/linux/bits/signalfd.h4
-rw-r--r--sysdeps/unix/sysv/linux/bits/signum.h4
-rw-r--r--sysdeps/unix/sysv/linux/bits/sigstack.h4
-rw-r--r--sysdeps/unix/sysv/linux/bits/socket-constants.h38
-rw-r--r--sysdeps/unix/sysv/linux/bits/socket.h109
-rw-r--r--sysdeps/unix/sysv/linux/bits/socket_type.h4
-rw-r--r--sysdeps/unix/sysv/linux/bits/ss_flags.h4
-rw-r--r--sysdeps/unix/sysv/linux/bits/stat.h4
-rw-r--r--sysdeps/unix/sysv/linux/bits/statfs.h4
-rw-r--r--sysdeps/unix/sysv/linux/bits/statvfs.h4
-rw-r--r--sysdeps/unix/sysv/linux/bits/statx.h39
-rw-r--r--sysdeps/unix/sysv/linux/bits/sys_errlist.h4
-rw-r--r--sysdeps/unix/sysv/linux/bits/termios-baud.h48
-rw-r--r--sysdeps/unix/sysv/linux/bits/termios-c_cc.h40
-rw-r--r--sysdeps/unix/sysv/linux/bits/termios-c_cflag.h34
-rw-r--r--sysdeps/unix/sysv/linux/bits/termios-c_iflag.h40
-rw-r--r--sysdeps/unix/sysv/linux/bits/termios-c_lflag.h58
-rw-r--r--sysdeps/unix/sysv/linux/bits/termios-c_oflag.h61
-rw-r--r--sysdeps/unix/sysv/linux/bits/termios-misc.h21
-rw-r--r--sysdeps/unix/sysv/linux/bits/termios-struct.h36
-rw-r--r--sysdeps/unix/sysv/linux/bits/termios-tcflow.h26
-rw-r--r--sysdeps/unix/sysv/linux/bits/termios.h171
-rw-r--r--sysdeps/unix/sysv/linux/bits/time.h4
-rw-r--r--sysdeps/unix/sysv/linux/bits/timerfd.h4
-rw-r--r--sysdeps/unix/sysv/linux/bits/timex.h8
-rw-r--r--sysdeps/unix/sysv/linux/bits/types/siginfo_t.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/types/stack_t.h4
-rw-r--r--sysdeps/unix/sysv/linux/bits/uio-ext.h4
-rw-r--r--sysdeps/unix/sysv/linux/bits/uio_lim.h4
-rw-r--r--sysdeps/unix/sysv/linux/bits/unistd_ext.h36
-rw-r--r--sysdeps/unix/sysv/linux/bits/utsname.h4
-rw-r--r--sysdeps/unix/sysv/linux/bits/waitflags.h4
-rw-r--r--sysdeps/unix/sysv/linux/check_native.c6
-rw-r--r--sysdeps/unix/sysv/linux/check_pf.c6
-rw-r--r--sysdeps/unix/sysv/linux/clock.c4
-rw-r--r--sysdeps/unix/sysv/linux/clock_getcpuclockid.c14
-rw-r--r--sysdeps/unix/sysv/linux/clock_getres.c77
-rw-r--r--sysdeps/unix/sysv/linux/clock_gettime.c82
-rw-r--r--sysdeps/unix/sysv/linux/clock_nanosleep.c77
-rw-r--r--sysdeps/unix/sysv/linux/clock_settime.c65
-rw-r--r--sysdeps/unix/sysv/linux/close.c4
-rw-r--r--sysdeps/unix/sysv/linux/close_nocancel.c4
-rw-r--r--sysdeps/unix/sysv/linux/cmsg_nxthdr.c4
-rw-r--r--sysdeps/unix/sysv/linux/connect.c4
-rw-r--r--sysdeps/unix/sysv/linux/copy_file_range.c25
-rw-r--r--sysdeps/unix/sysv/linux/creat.c6
-rw-r--r--sysdeps/unix/sysv/linux/creat64.c6
-rw-r--r--sysdeps/unix/sysv/linux/createthread.c4
-rw-r--r--sysdeps/unix/sysv/linux/csky/Implies3
-rw-r--r--sysdeps/unix/sysv/linux/csky/Makefile8
-rw-r--r--sysdeps/unix/sysv/linux/csky/Versions5
-rw-r--r--sysdeps/unix/sysv/linux/csky/abiv2/____longjmp_chk.S81
-rw-r--r--sysdeps/unix/sysv/linux/csky/abiv2/clone.S98
-rw-r--r--sysdeps/unix/sysv/linux/csky/abiv2/getcontext.S73
-rw-r--r--sysdeps/unix/sysv/linux/csky/abiv2/setcontext.S98
-rw-r--r--sysdeps/unix/sysv/linux/csky/abiv2/swapcontext.S78
-rw-r--r--sysdeps/unix/sysv/linux/csky/abiv2/syscall.S69
-rw-r--r--sysdeps/unix/sysv/linux/csky/abiv2/sysdep.S65
-rw-r--r--sysdeps/unix/sysv/linux/csky/abiv2/ucontext_i.sym32
-rw-r--r--sysdeps/unix/sysv/linux/csky/bits/procfs.h37
-rw-r--r--sysdeps/unix/sysv/linux/csky/bits/shmlba.h29
-rw-r--r--sysdeps/unix/sysv/linux/csky/c++-types.data67
-rw-r--r--sysdeps/unix/sysv/linux/csky/configure4
-rw-r--r--sysdeps/unix/sysv/linux/csky/configure.ac5
-rw-r--r--sysdeps/unix/sysv/linux/csky/jmp_buf-macros.h6
-rw-r--r--sysdeps/unix/sysv/linux/csky/kernel-features.h29
-rw-r--r--sysdeps/unix/sysv/linux/csky/ld.abilist9
-rw-r--r--sysdeps/unix/sysv/linux/csky/ldconfig.h34
-rw-r--r--sysdeps/unix/sysv/linux/csky/libBrokenLocale.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/csky/libanl.abilist4
-rw-r--r--sysdeps/unix/sysv/linux/csky/libc.abilist2091
-rw-r--r--sysdeps/unix/sysv/linux/csky/libcrypt.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/csky/libdl.abilist9
-rw-r--r--sysdeps/unix/sysv/linux/csky/libm.abilist765
-rw-r--r--sysdeps/unix/sysv/linux/csky/libpthread.abilist230
-rw-r--r--sysdeps/unix/sysv/linux/csky/libresolv.abilist79
-rw-r--r--sysdeps/unix/sysv/linux/csky/librt.abilist35
-rw-r--r--sysdeps/unix/sysv/linux/csky/libthread_db.abilist40
-rw-r--r--sysdeps/unix/sysv/linux/csky/libutil.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/csky/localplt.data19
-rw-r--r--sysdeps/unix/sysv/linux/csky/makecontext.c74
-rw-r--r--sysdeps/unix/sysv/linux/csky/register-dump.h190
-rw-r--r--sysdeps/unix/sysv/linux/csky/shlib-versions9
-rw-r--r--sysdeps/unix/sysv/linux/csky/sigcontextinfo.h28
-rw-r--r--sysdeps/unix/sysv/linux/csky/sys/cachectl.h36
-rw-r--r--sysdeps/unix/sysv/linux/csky/sys/ucontext.h89
-rw-r--r--sysdeps/unix/sysv/linux/csky/sys/user.h23
-rw-r--r--sysdeps/unix/sysv/linux/csky/syscalls.list2
-rw-r--r--sysdeps/unix/sysv/linux/csky/sysdep.h534
-rw-r--r--sysdeps/unix/sysv/linux/default-sched.h4
-rw-r--r--sysdeps/unix/sysv/linux/device-nrs.h4
-rw-r--r--sysdeps/unix/sysv/linux/dl-execstack.c4
-rw-r--r--sysdeps/unix/sysv/linux/dl-librecon.h4
-rw-r--r--sysdeps/unix/sysv/linux/dl-openat64.c4
-rw-r--r--sysdeps/unix/sysv/linux/dl-origin.c4
-rw-r--r--sysdeps/unix/sysv/linux/dl-osinfo.h4
-rw-r--r--sysdeps/unix/sysv/linux/dl-sysdep.c4
-rw-r--r--sysdeps/unix/sysv/linux/dl-sysdep.h4
-rw-r--r--sysdeps/unix/sysv/linux/dl-vdso.c4
-rw-r--r--sysdeps/unix/sysv/linux/dl-vdso.h55
-rw-r--r--sysdeps/unix/sysv/linux/dl-writev.h4
-rw-r--r--sysdeps/unix/sysv/linux/epoll_pwait.c4
-rw-r--r--sysdeps/unix/sysv/linux/epoll_wait.c4
-rw-r--r--sysdeps/unix/sysv/linux/errqueue.h4
-rw-r--r--sysdeps/unix/sysv/linux/eventfd_read.c4
-rw-r--r--sysdeps/unix/sysv/linux/eventfd_write.c4
-rw-r--r--sysdeps/unix/sysv/linux/exit-thread.h4
-rw-r--r--sysdeps/unix/sysv/linux/faccessat.c4
-rw-r--r--sysdeps/unix/sysv/linux/fallocate.c4
-rw-r--r--sysdeps/unix/sysv/linux/fallocate64.c4
-rw-r--r--sysdeps/unix/sysv/linux/fatal-prepare.h4
-rw-r--r--sysdeps/unix/sysv/linux/fchmodat.c4
-rw-r--r--sysdeps/unix/sysv/linux/fcntl.c4
-rw-r--r--sysdeps/unix/sysv/linux/fcntl64.c4
-rw-r--r--sysdeps/unix/sysv/linux/fcntl_nocancel.c4
-rw-r--r--sysdeps/unix/sysv/linux/fd_to_filename.h38
-rw-r--r--sysdeps/unix/sysv/linux/fdatasync.c4
-rw-r--r--sysdeps/unix/sysv/linux/fexecve.c4
-rw-r--r--sysdeps/unix/sysv/linux/filter-nr-syscalls.awk4
-rw-r--r--sysdeps/unix/sysv/linux/fips-private.h4
-rw-r--r--sysdeps/unix/sysv/linux/fpathconf.c4
-rw-r--r--sysdeps/unix/sysv/linux/fstatfs64.c4
-rw-r--r--sysdeps/unix/sysv/linux/fstatvfs.c4
-rw-r--r--sysdeps/unix/sysv/linux/fstatvfs64.c4
-rw-r--r--sysdeps/unix/sysv/linux/fsync.c4
-rw-r--r--sysdeps/unix/sysv/linux/ftime.c3
-rw-r--r--sysdeps/unix/sysv/linux/ftruncate.c4
-rw-r--r--sysdeps/unix/sysv/linux/ftruncate64.c4
-rw-r--r--sysdeps/unix/sysv/linux/futex-internal.h251
-rw-r--r--sysdeps/unix/sysv/linux/futimens.c26
-rw-r--r--sysdeps/unix/sysv/linux/futimes.c4
-rw-r--r--sysdeps/unix/sysv/linux/futimesat.c4
-rw-r--r--sysdeps/unix/sysv/linux/fxstat.c4
-rw-r--r--sysdeps/unix/sysv/linux/fxstat64.c19
-rw-r--r--sysdeps/unix/sysv/linux/fxstatat.c4
-rw-r--r--sysdeps/unix/sysv/linux/fxstatat64.c15
-rw-r--r--sysdeps/unix/sysv/linux/gai_sigqueue.c4
-rw-r--r--sysdeps/unix/sysv/linux/gen-syscall-h.awk4
-rw-r--r--sysdeps/unix/sysv/linux/generic/Makefile2
-rw-r--r--sysdeps/unix/sysv/linux/generic/____longjmp_chk.c8
-rw-r--r--sysdeps/unix/sysv/linux/generic/bits/fcntl.h4
-rw-r--r--sysdeps/unix/sysv/linux/generic/bits/msq.h85
-rw-r--r--sysdeps/unix/sysv/linux/generic/bits/sem.h93
-rw-r--r--sysdeps/unix/sysv/linux/generic/bits/shm.h112
-rw-r--r--sysdeps/unix/sysv/linux/generic/bits/stat.h11
-rw-r--r--sysdeps/unix/sysv/linux/generic/bits/statfs.h8
-rw-r--r--sysdeps/unix/sysv/linux/generic/bits/typesizes.h10
-rw-r--r--sysdeps/unix/sysv/linux/generic/brk.c4
-rw-r--r--sysdeps/unix/sysv/linux/generic/chmod.c4
-rw-r--r--sysdeps/unix/sysv/linux/generic/chown.c4
-rw-r--r--sysdeps/unix/sysv/linux/generic/dl-origin.c4
-rw-r--r--sysdeps/unix/sysv/linux/generic/dup2.c4
-rw-r--r--sysdeps/unix/sysv/linux/generic/epoll_create.c4
-rw-r--r--sysdeps/unix/sysv/linux/generic/futimesat.c8
-rw-r--r--sysdeps/unix/sysv/linux/generic/inotify_init.c4
-rw-r--r--sysdeps/unix/sysv/linux/generic/kernel_stat.h4
-rw-r--r--sysdeps/unix/sysv/linux/generic/lchown.c4
-rw-r--r--sysdeps/unix/sysv/linux/generic/link.c4
-rw-r--r--sysdeps/unix/sysv/linux/generic/lxstat.c4
-rw-r--r--sysdeps/unix/sysv/linux/generic/mkdir.c4
-rw-r--r--sysdeps/unix/sysv/linux/generic/pipe.c4
-rw-r--r--sysdeps/unix/sysv/linux/generic/readlink.c4
-rw-r--r--sysdeps/unix/sysv/linux/generic/readlink_chk.c39
-rw-r--r--sysdeps/unix/sysv/linux/generic/rmdir.c4
-rw-r--r--sysdeps/unix/sysv/linux/generic/stat-check.c29
-rw-r--r--sysdeps/unix/sysv/linux/generic/symlink.c4
-rw-r--r--sysdeps/unix/sysv/linux/generic/sysctl.c4
-rw-r--r--sysdeps/unix/sysv/linux/generic/sysdep.h4
-rw-r--r--sysdeps/unix/sysv/linux/generic/unlink.c4
-rw-r--r--sysdeps/unix/sysv/linux/generic/utimes.c4
-rw-r--r--sysdeps/unix/sysv/linux/generic/wordsize-32/fstatfs.c4
-rw-r--r--sysdeps/unix/sysv/linux/generic/wordsize-32/fxstat.c14
-rw-r--r--sysdeps/unix/sysv/linux/generic/wordsize-32/fxstat64.c4
-rw-r--r--sysdeps/unix/sysv/linux/generic/wordsize-32/fxstatat.c14
-rw-r--r--sysdeps/unix/sysv/linux/generic/wordsize-32/fxstatat64.c4
-rw-r--r--sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat.c14
-rw-r--r--sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat64.c23
-rw-r--r--sysdeps/unix/sysv/linux/generic/wordsize-32/overflow.h28
-rw-r--r--sysdeps/unix/sysv/linux/generic/wordsize-32/sendfile.c4
-rw-r--r--sysdeps/unix/sysv/linux/generic/wordsize-32/statfs.c4
-rw-r--r--sysdeps/unix/sysv/linux/generic/wordsize-32/xstat.c13
-rw-r--r--sysdeps/unix/sysv/linux/generic/wordsize-32/xstat64.c20
-rw-r--r--sysdeps/unix/sysv/linux/generic/xmknod.c4
-rw-r--r--sysdeps/unix/sysv/linux/generic/xstat.c4
-rw-r--r--sysdeps/unix/sysv/linux/gentempfd.c4
-rw-r--r--sysdeps/unix/sysv/linux/getclktck.c4
-rw-r--r--sysdeps/unix/sysv/linux/getcpu.c38
-rw-r--r--sysdeps/unix/sysv/linux/getcwd.c5
-rw-r--r--sysdeps/unix/sysv/linux/getdents.c8
-rw-r--r--sysdeps/unix/sysv/linux/getdents64.c112
-rw-r--r--sysdeps/unix/sysv/linux/getdirentries.c4
-rw-r--r--sysdeps/unix/sysv/linux/getdirentries64.c4
-rw-r--r--sysdeps/unix/sysv/linux/getdtsz.c4
-rw-r--r--sysdeps/unix/sysv/linux/getentropy.c4
-rw-r--r--sysdeps/unix/sysv/linux/gethostid.c8
-rw-r--r--sysdeps/unix/sysv/linux/getipv4sourcefilter.c4
-rw-r--r--sysdeps/unix/sysv/linux/getloadavg.c4
-rw-r--r--sysdeps/unix/sysv/linux/getlogin.c4
-rw-r--r--sysdeps/unix/sysv/linux/getlogin_r.c4
-rw-r--r--sysdeps/unix/sysv/linux/getpagesize.c4
-rw-r--r--sysdeps/unix/sysv/linux/getpeername.c4
-rw-r--r--sysdeps/unix/sysv/linux/getpriority.c4
-rw-r--r--sysdeps/unix/sysv/linux/getpt.c4
-rw-r--r--sysdeps/unix/sysv/linux/getrandom.c10
-rw-r--r--sysdeps/unix/sysv/linux/getrlimit.c4
-rw-r--r--sysdeps/unix/sysv/linux/getrlimit64.c4
-rw-r--r--sysdeps/unix/sysv/linux/getsockname.c4
-rw-r--r--sysdeps/unix/sysv/linux/getsockopt.c4
-rw-r--r--sysdeps/unix/sysv/linux/getsourcefilter.c4
-rw-r--r--sysdeps/unix/sysv/linux/getsourcefilter.h4
-rw-r--r--sysdeps/unix/sysv/linux/getsysstats.c6
-rw-r--r--sysdeps/unix/sysv/linux/gettimeofday.c39
-rw-r--r--sysdeps/unix/sysv/linux/glob-lstat-compat.c4
-rw-r--r--sysdeps/unix/sysv/linux/glob.c4
-rw-r--r--sysdeps/unix/sysv/linux/glob64-lstat-compat.c4
-rw-r--r--sysdeps/unix/sysv/linux/glob64.c4
-rw-r--r--sysdeps/unix/sysv/linux/globfree.c4
-rw-r--r--sysdeps/unix/sysv/linux/globfree64.c4
-rw-r--r--sysdeps/unix/sysv/linux/hppa/____longjmp_chk.c2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/atomic-machine.h4
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/epoll.h4
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/errno.h4
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/eventfd.h4
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/fcntl.h4
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/inotify.h4
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/ioctls.h4
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/ipc-perm.h37
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/ipc.h62
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/mman.h88
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/msq-pad.h26
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/msq.h85
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/procfs.h30
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/sem-pad.h26
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/sem.h92
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/shm-pad.h28
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/shm.h108
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/shmlba.h24
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/sigaction.h4
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/signalfd.h4
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/signum.h4
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/socket-constants.h38
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/socket_type.h4
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/timerfd.h4
-rw-r--r--sysdeps/unix/sysv/linux/hppa/brk.c4
-rw-r--r--sysdeps/unix/sysv/linux/hppa/clone.S13
-rw-r--r--sysdeps/unix/sysv/linux/hppa/getcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/hppa/ipc_priv.h21
-rw-r--r--sysdeps/unix/sysv/linux/hppa/kernel-features.h4
-rw-r--r--sysdeps/unix/sysv/linux/hppa/kernel_sigaction.h18
-rw-r--r--sysdeps/unix/sysv/linux/hppa/libc.abilist12
-rw-r--r--sysdeps/unix/sysv/linux/hppa/libm.abilist17
-rw-r--r--sysdeps/unix/sysv/linux/hppa/libpthread.abilist21
-rw-r--r--sysdeps/unix/sysv/linux/hppa/librt.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/hppa/localplt.data1
-rw-r--r--sysdeps/unix/sysv/linux/hppa/makecontext.c18
-rw-r--r--sysdeps/unix/sysv/linux/hppa/profil-counter.h24
-rw-r--r--sysdeps/unix/sysv/linux/hppa/pt-vfork.S82
-rw-r--r--sysdeps/unix/sysv/linux/hppa/pthread.h1138
-rw-r--r--sysdeps/unix/sysv/linux/hppa/pthreadP.h16
-rw-r--r--sysdeps/unix/sysv/linux/hppa/setcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/hppa/sigcontextinfo.h30
-rw-r--r--sysdeps/unix/sysv/linux/hppa/swapcontext.c4
-rw-r--r--sysdeps/unix/sysv/linux/hppa/sys/procfs.h118
-rw-r--r--sysdeps/unix/sysv/linux/hppa/sys/ucontext.h4
-rw-r--r--sysdeps/unix/sysv/linux/hppa/syscall.c4
-rw-r--r--sysdeps/unix/sysv/linux/hppa/sysdep.c4
-rw-r--r--sysdeps/unix/sysv/linux/hppa/sysdep.h4
-rw-r--r--sysdeps/unix/sysv/linux/hppa/utimes.c4
-rw-r--r--sysdeps/unix/sysv/linux/i386/____longjmp_chk.S4
-rw-r--r--sysdeps/unix/sysv/linux/i386/_exit.S4
-rw-r--r--sysdeps/unix/sysv/linux/i386/brk.c4
-rw-r--r--sysdeps/unix/sysv/linux/i386/clone.S4
-rw-r--r--sysdeps/unix/sysv/linux/i386/dl-librecon.h4
-rw-r--r--sysdeps/unix/sysv/linux/i386/dl-procinfo.h8
-rw-r--r--sysdeps/unix/sysv/linux/i386/dl-sysdep.h4
-rw-r--r--sysdeps/unix/sysv/linux/i386/fxstat.c4
-rw-r--r--sysdeps/unix/sysv/linux/i386/fxstatat.c4
-rw-r--r--sysdeps/unix/sysv/linux/i386/get_clockfreq.c88
-rw-r--r--sysdeps/unix/sysv/linux/i386/getcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/i386/getmsg.c33
-rw-r--r--sysdeps/unix/sysv/linux/i386/gettimeofday.c35
-rw-r--r--sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h4
-rw-r--r--sysdeps/unix/sysv/linux/i386/init-first.c50
-rw-r--r--sysdeps/unix/sysv/linux/i386/kernel-features.h14
-rw-r--r--sysdeps/unix/sysv/linux/i386/ldconfig.h4
-rw-r--r--sysdeps/unix/sysv/linux/i386/libc-do-syscall.S4
-rw-r--r--sysdeps/unix/sysv/linux/i386/libc-lowlevellock.S19
-rw-r--r--sysdeps/unix/sysv/linux/i386/libc.abilist12
-rw-r--r--sysdeps/unix/sysv/linux/i386/libm.abilist21
-rw-r--r--sysdeps/unix/sysv/linux/i386/libpthread.abilist23
-rw-r--r--sysdeps/unix/sysv/linux/i386/librt.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/i386/lll_timedlock_wait.c1
-rw-r--r--sysdeps/unix/sysv/linux/i386/lll_timedwait_tid.c1
-rw-r--r--sysdeps/unix/sysv/linux/i386/lockf64.c70
-rw-r--r--sysdeps/unix/sysv/linux/i386/lowlevellock.S434
-rw-r--r--sysdeps/unix/sysv/linux/i386/lowlevellock.h269
-rw-r--r--sysdeps/unix/sysv/linux/i386/lxstat.c4
-rw-r--r--sysdeps/unix/sysv/linux/i386/makecontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/i386/profil-counter.h31
-rw-r--r--sysdeps/unix/sysv/linux/i386/putmsg.c34
-rw-r--r--sysdeps/unix/sysv/linux/i386/readelflib.c4
-rw-r--r--sysdeps/unix/sysv/linux/i386/register-dump.h266
-rw-r--r--sysdeps/unix/sysv/linux/i386/setcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/i386/sigaction.c4
-rw-r--r--sysdeps/unix/sysv/linux/i386/sigcontextinfo.h16
-rw-r--r--sysdeps/unix/sysv/linux/i386/smp.h4
-rw-r--r--sysdeps/unix/sysv/linux/i386/startup.h4
-rw-r--r--sysdeps/unix/sysv/linux/i386/swapcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/i386/syscall.S4
-rw-r--r--sysdeps/unix/sysv/linux/i386/sysdep.c4
-rw-r--r--sysdeps/unix/sysv/linux/i386/sysdep.h11
-rw-r--r--sysdeps/unix/sysv/linux/i386/time.c34
-rw-r--r--sysdeps/unix/sysv/linux/i386/tst-bz21269.c4
-rw-r--r--sysdeps/unix/sysv/linux/i386/vfork.S4
-rw-r--r--sysdeps/unix/sysv/linux/i386/xstat.c4
-rw-r--r--sysdeps/unix/sysv/linux/ia64/____longjmp_chk.S4
-rw-r--r--sysdeps/unix/sysv/linux/ia64/__ia64_longjmp.S4
-rw-r--r--sysdeps/unix/sysv/linux/ia64/__longjmp.S4
-rw-r--r--sysdeps/unix/sysv/linux/ia64/__sigstack_longjmp.c4
-rw-r--r--sysdeps/unix/sysv/linux/ia64/__start_context.S4
-rw-r--r--sysdeps/unix/sysv/linux/ia64/bits/endian.h7
-rw-r--r--sysdeps/unix/sysv/linux/ia64/bits/fcntl.h4
-rw-r--r--sysdeps/unix/sysv/linux/ia64/bits/ipc.h53
-rw-r--r--sysdeps/unix/sysv/linux/ia64/bits/local_lim.h4
-rw-r--r--sysdeps/unix/sysv/linux/ia64/bits/mman.h19
-rw-r--r--sysdeps/unix/sysv/linux/ia64/bits/msq.h76
-rw-r--r--sysdeps/unix/sysv/linux/ia64/bits/procfs.h41
-rw-r--r--sysdeps/unix/sysv/linux/ia64/bits/sem.h86
-rw-r--r--sysdeps/unix/sysv/linux/ia64/bits/setjmp.h4
-rw-r--r--sysdeps/unix/sysv/linux/ia64/bits/shm.h95
-rw-r--r--sysdeps/unix/sysv/linux/ia64/bits/shmlba.h24
-rw-r--r--sysdeps/unix/sysv/linux/ia64/bits/sigaction.h4
-rw-r--r--sysdeps/unix/sysv/linux/ia64/bits/sigcontext.h4
-rw-r--r--sysdeps/unix/sysv/linux/ia64/bits/siginfo-consts-arch.h13
-rw-r--r--sysdeps/unix/sysv/linux/ia64/bits/sigstack.h4
-rw-r--r--sysdeps/unix/sysv/linux/ia64/bits/stat.h4
-rw-r--r--sysdeps/unix/sysv/linux/ia64/brk.S6
-rw-r--r--sysdeps/unix/sysv/linux/ia64/clone2.S4
-rw-r--r--sysdeps/unix/sysv/linux/ia64/dl-cache.h4
-rw-r--r--sysdeps/unix/sysv/linux/ia64/dl-static.c4
-rw-r--r--sysdeps/unix/sysv/linux/ia64/dl-sysdep.h4
-rw-r--r--sysdeps/unix/sysv/linux/ia64/get_clockfreq.c87
-rw-r--r--sysdeps/unix/sysv/linux/ia64/getcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/ia64/has_cpuclock.c51
-rw-r--r--sysdeps/unix/sysv/linux/ia64/ioperm.c4
-rw-r--r--sysdeps/unix/sysv/linux/ia64/ipc_priv.h21
-rw-r--r--sysdeps/unix/sysv/linux/ia64/kernel-features.h10
-rw-r--r--sysdeps/unix/sysv/linux/ia64/kernel_sigaction.h7
-rw-r--r--sysdeps/unix/sysv/linux/ia64/kernel_stat.h4
-rw-r--r--sysdeps/unix/sysv/linux/ia64/ldconfig.h4
-rw-r--r--sysdeps/unix/sysv/linux/ia64/ldsodefs.h4
-rw-r--r--sysdeps/unix/sysv/linux/ia64/libc.abilist12
-rw-r--r--sysdeps/unix/sysv/linux/ia64/libm.abilist21
-rw-r--r--sysdeps/unix/sysv/linux/ia64/libpthread.abilist21
-rw-r--r--sysdeps/unix/sysv/linux/ia64/librt.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/ia64/makecontext.c4
-rw-r--r--sysdeps/unix/sysv/linux/ia64/mmap_internal.h4
-rw-r--r--sysdeps/unix/sysv/linux/ia64/pipe.S4
-rw-r--r--sysdeps/unix/sysv/linux/ia64/profil-counter.h31
-rw-r--r--sysdeps/unix/sysv/linux/ia64/pt-vfork.S48
-rw-r--r--sysdeps/unix/sysv/linux/ia64/readelflib.c4
-rw-r--r--sysdeps/unix/sysv/linux/ia64/register-dump.h4
-rw-r--r--sysdeps/unix/sysv/linux/ia64/setcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/ia64/setjmp.S4
-rw-r--r--sysdeps/unix/sysv/linux/ia64/sigcontextinfo.h18
-rw-r--r--sysdeps/unix/sysv/linux/ia64/sigprocmask.c4
-rw-r--r--sysdeps/unix/sysv/linux/ia64/swapcontext.c4
-rw-r--r--sysdeps/unix/sysv/linux/ia64/sys/io.h4
-rw-r--r--sysdeps/unix/sysv/linux/ia64/sys/procfs.h130
-rw-r--r--sysdeps/unix/sysv/linux/ia64/sys/ptrace.h10
-rw-r--r--sysdeps/unix/sysv/linux/ia64/sys/rse.h4
-rw-r--r--sysdeps/unix/sysv/linux/ia64/sys/ucontext.h4
-rw-r--r--sysdeps/unix/sysv/linux/ia64/sys/user.h4
-rw-r--r--sysdeps/unix/sysv/linux/ia64/syscall.S4
-rw-r--r--sysdeps/unix/sysv/linux/ia64/sysconf.c30
-rw-r--r--sysdeps/unix/sysv/linux/ia64/sysdep.S4
-rw-r--r--sysdeps/unix/sysv/linux/ia64/sysdep.h6
-rw-r--r--sysdeps/unix/sysv/linux/ia64/system.c30
-rw-r--r--sysdeps/unix/sysv/linux/ia64/tst-setcontext2.c4
-rw-r--r--sysdeps/unix/sysv/linux/ia64/tst-setcontext4.c4
-rw-r--r--sysdeps/unix/sysv/linux/ia64/ucontext_i.h4
-rw-r--r--sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c4
-rw-r--r--sysdeps/unix/sysv/linux/ia64/unwind_longjmp.c4
-rw-r--r--sysdeps/unix/sysv/linux/ia64/vfork.S4
-rw-r--r--sysdeps/unix/sysv/linux/ia64/wordexp.c4
-rw-r--r--sysdeps/unix/sysv/linux/if_index.c15
-rw-r--r--sysdeps/unix/sysv/linux/ifaddrs.c6
-rw-r--r--sysdeps/unix/sysv/linux/ifreq.c4
-rw-r--r--sysdeps/unix/sysv/linux/include/sys/sysinfo.h4
-rw-r--r--sysdeps/unix/sysv/linux/include/sys/timex.h4
-rw-r--r--sysdeps/unix/sysv/linux/init-first.c90
-rw-r--r--sysdeps/unix/sysv/linux/internal-signals.h4
-rw-r--r--sysdeps/unix/sysv/linux/internal_statvfs.c4
-rw-r--r--sysdeps/unix/sysv/linux/internal_statvfs.h4
-rw-r--r--sysdeps/unix/sysv/linux/ipc_ops.h4
-rw-r--r--sysdeps/unix/sysv/linux/ipc_priv.h33
-rw-r--r--sysdeps/unix/sysv/linux/kernel-features.h89
-rw-r--r--sysdeps/unix/sysv/linux/kernel-posix-timers.h4
-rw-r--r--sysdeps/unix/sysv/linux/kernel_sigaction.h12
-rw-r--r--sysdeps/unix/sysv/linux/kernel_termios.h7
-rw-r--r--sysdeps/unix/sysv/linux/lddlibc4.c6
-rw-r--r--sysdeps/unix/sysv/linux/ldsodefs.h4
-rw-r--r--sysdeps/unix/sysv/linux/libc-vdso.h55
-rw-r--r--sysdeps/unix/sysv/linux/libc_fatal.c37
-rw-r--r--sysdeps/unix/sysv/linux/linux_fsinfo.h4
-rw-r--r--sysdeps/unix/sysv/linux/listen.c4
-rw-r--r--sysdeps/unix/sysv/linux/lowlevellock-futex.h130
-rw-r--r--sysdeps/unix/sysv/linux/lseek.c4
-rw-r--r--sysdeps/unix/sysv/linux/lseek64.c4
-rw-r--r--sysdeps/unix/sysv/linux/lutimes.c4
-rw-r--r--sysdeps/unix/sysv/linux/lxstat.c4
-rw-r--r--sysdeps/unix/sysv/linux/lxstat64.c10
-rw-r--r--sysdeps/unix/sysv/linux/m68k/Makefile2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/Versions14
-rw-r--r--sysdeps/unix/sysv/linux/m68k/____longjmp_chk.c4
-rw-r--r--sysdeps/unix/sysv/linux/m68k/bits/fcntl.h4
-rw-r--r--sysdeps/unix/sysv/linux/m68k/bits/mman.h44
-rw-r--r--sysdeps/unix/sysv/linux/m68k/bits/poll.h4
-rw-r--r--sysdeps/unix/sysv/linux/m68k/bits/procfs-id.h25
-rw-r--r--sysdeps/unix/sysv/linux/m68k/bits/procfs.h34
-rw-r--r--sysdeps/unix/sysv/linux/m68k/bits/sockaddr.h4
-rw-r--r--sysdeps/unix/sysv/linux/m68k/bits/stat.h4
-rw-r--r--sysdeps/unix/sysv/linux/m68k/brk.c4
-rw-r--r--sysdeps/unix/sysv/linux/m68k/clone.S4
-rw-r--r--sysdeps/unix/sysv/linux/m68k/coldfire/atomic-machine.h49
-rw-r--r--sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist15
-rw-r--r--sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist17
-rw-r--r--sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist20
-rw-r--r--sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/m68k/coldfire/sysdep.h4
-rw-r--r--sysdeps/unix/sysv/linux/m68k/dl-static.c4
-rw-r--r--sysdeps/unix/sysv/linux/m68k/getmsg.c1
-rw-r--r--sysdeps/unix/sysv/linux/m68k/getpagesize.c4
-rw-r--r--sysdeps/unix/sysv/linux/m68k/getsysstats.c4
-rw-r--r--sysdeps/unix/sysv/linux/m68k/init-first.c74
-rw-r--r--sysdeps/unix/sysv/linux/m68k/kernel-features.h15
-rw-r--r--sysdeps/unix/sysv/linux/m68k/kernel_sigaction.h26
-rw-r--r--sysdeps/unix/sysv/linux/m68k/ldsodefs.h4
-rw-r--r--sysdeps/unix/sysv/linux/m68k/libc-m68k-vdso.c1
-rw-r--r--sysdeps/unix/sysv/linux/m68k/lockf64.c1
-rw-r--r--sysdeps/unix/sysv/linux/m68k/m680x0/getcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist15
-rw-r--r--sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist17
-rw-r--r--sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist23
-rw-r--r--sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/m68k/m680x0/makecontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/m68k/m680x0/setcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/m68k/m680x0/swapcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/m68k/m680x0/sysdep.h4
-rw-r--r--sysdeps/unix/sysv/linux/m68k/m68k-helpers.S95
-rw-r--r--sysdeps/unix/sysv/linux/m68k/m68k-helpers.c26
-rw-r--r--sysdeps/unix/sysv/linux/m68k/m68k-vdso.c34
-rw-r--r--sysdeps/unix/sysv/linux/m68k/m68k-vdso.h60
-rw-r--r--sysdeps/unix/sysv/linux/m68k/mmap_internal.h4
-rw-r--r--sysdeps/unix/sysv/linux/m68k/mremap.S4
-rw-r--r--sysdeps/unix/sysv/linux/m68k/pt-vfork.c1
-rw-r--r--sysdeps/unix/sysv/linux/m68k/putmsg.c1
-rw-r--r--sysdeps/unix/sysv/linux/m68k/register-dump.h94
-rw-r--r--sysdeps/unix/sysv/linux/m68k/sigcontextinfo.h16
-rw-r--r--sysdeps/unix/sysv/linux/m68k/sys/procfs.h125
-rw-r--r--sysdeps/unix/sysv/linux/m68k/sys/reg.h4
-rw-r--r--sysdeps/unix/sysv/linux/m68k/sys/ucontext.h4
-rw-r--r--sysdeps/unix/sysv/linux/m68k/sys/user.h4
-rw-r--r--sysdeps/unix/sysv/linux/m68k/syscall.S4
-rw-r--r--sysdeps/unix/sysv/linux/m68k/sysdep.S4
-rw-r--r--sysdeps/unix/sysv/linux/m68k/sysdep.h4
-rw-r--r--sysdeps/unix/sysv/linux/m68k/vfork.S4
-rw-r--r--sysdeps/unix/sysv/linux/malloc-sysdep.h4
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/____longjmp_chk.S4
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/be/Implies1
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/be/Versions5
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/be/libBrokenLocale.abilist (renamed from sysdeps/unix/sysv/linux/microblaze/libBrokenLocale.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/be/libanl.abilist (renamed from sysdeps/unix/sysv/linux/microblaze/libanl.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/be/libc.abilist2142
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/be/libcrypt.abilist (renamed from sysdeps/unix/sysv/linux/microblaze/libcrypt.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist (renamed from sysdeps/unix/sysv/linux/microblaze/libdl.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/be/libm.abilist784
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/be/libnsl.abilist (renamed from sysdeps/unix/sysv/linux/microblaze/libnsl.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist237
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist (renamed from sysdeps/unix/sysv/linux/microblaze/libresolv.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/be/librt.abilist35
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/be/libthread_db.abilist (renamed from sysdeps/unix/sysv/linux/microblaze/libthread_db.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/be/libutil.abilist (renamed from sysdeps/unix/sysv/linux/microblaze/libutil.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/bits/fcntl.h4
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/bits/mman.h46
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/bits/procfs.h35
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/bits/stat.h4
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/brk.c4
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/clock-compat.c4
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/clone.S4
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/getsysstats.c4
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/kernel-features.h19
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/kernel_stat.h4
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/le/Implies1
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/le/libBrokenLocale.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/le/libanl.abilist4
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/le/libc.abilist2139
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/le/libcrypt.abilist7
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist9
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/le/libm.abilist784
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/le/libnsl.abilist121
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist237
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist91
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/le/librt.abilist35
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/le/libthread_db.abilist40
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/le/libutil.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/libc.abilist2132
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/libm.abilist767
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/libpthread.abilist245
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/librt.abilist40
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/profil-counter.h2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/pselect.c73
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/pt-vfork.S49
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/sigcontextinfo.h16
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/sys/procfs.h123
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/sys/ucontext.h4
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/sys/user.h4
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/syscall.S4
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/sysdep.S4
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/sysdep.h4
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/vfork.S4
-rw-r--r--sysdeps/unix/sysv/linux/mips/Makefile21
-rw-r--r--sysdeps/unix/sysv/linux/mips/____longjmp_chk.c4
-rw-r--r--sysdeps/unix/sysv/linux/mips/_test_and_set.c4
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/epoll.h4
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/errno.h4
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/eventfd.h4
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/fcntl.h4
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/inotify.h4
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/ioctl-types.h4
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/ipc.h54
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/local_lim.h4
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/mman.h4
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/msq-pad.h31
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/msq.h93
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/poll.h4
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/procfs.h37
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/resource.h4
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/sem-pad.h24
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/sem.h85
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/shm-pad.h26
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/shm.h96
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/shmlba.h24
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/sigaction.h4
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/sigcontext.h4
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/signalfd.h4
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/signum.h4
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/socket-constants.h38
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/socket_type.h4
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/stat.h4
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/statfs.h4
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/termios-c_cc.h43
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/termios-c_lflag.h46
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/termios-struct.h34
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/termios-tcflow.h26
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/termios.h222
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/timerfd.h4
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/types/stack_t.h4
-rw-r--r--sysdeps/unix/sysv/linux/mips/brk.c4
-rw-r--r--sysdeps/unix/sysv/linux/mips/clone.S6
-rw-r--r--sysdeps/unix/sysv/linux/mips/configure41
-rw-r--r--sysdeps/unix/sysv/linux/mips/configure.ac32
-rw-r--r--sysdeps/unix/sysv/linux/mips/dl-cache.h4
-rw-r--r--sysdeps/unix/sysv/linux/mips/dl-static.c4
-rw-r--r--sysdeps/unix/sysv/linux/mips/getcontext.S9
-rw-r--r--sysdeps/unix/sysv/linux/mips/getmsg.c1
-rw-r--r--sysdeps/unix/sysv/linux/mips/getrlimit64.c4
-rw-r--r--sysdeps/unix/sysv/linux/mips/getsysstats.c4
-rw-r--r--sysdeps/unix/sysv/linux/mips/init-first.c44
-rw-r--r--sysdeps/unix/sysv/linux/mips/kernel-features.h14
-rw-r--r--sysdeps/unix/sysv/linux/mips/kernel_termios.h7
-rw-r--r--sysdeps/unix/sysv/linux/mips/ldsodefs.h6
-rw-r--r--sysdeps/unix/sysv/linux/mips/libc-abis2
-rw-r--r--sysdeps/unix/sysv/linux/mips/libc-vdso.h33
-rw-r--r--sysdeps/unix/sysv/linux/mips/makecontext.S9
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/bug-getcontext-mips-gp.c4
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist12
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/libm.abilist17
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist22
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/librt.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/lockf64.c1
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/mips-syscall5.S4
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/mips-syscall6.S4
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/mips-syscall7.S4
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall.h4
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall0.c4
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall1.c4
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall2.c4
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall3.c4
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall4.c4
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist12
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/sysdep.h30
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/fxstat64.c4
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c4
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/getdents64.c151
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/ipc_priv.h21
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/ldconfig.h4
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/libm.abilist21
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist22
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/librt.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c4
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/msgctl.c4
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist12
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n32/lockf64.c1
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n32/lseek.c4
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n32/mmap_internal.h4
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h30
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n64/ioctl.S4
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist12
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n64/posix_fadvise64.c4
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h30
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/semctl.c4
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/shmctl.c4
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/statx_cp.c3
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/syscall.S4
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/xstat64.c4
-rw-r--r--sysdeps/unix/sysv/linux/mips/mmap_info.h13
-rw-r--r--sysdeps/unix/sysv/linux/mips/profil-counter.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/pt-vfork.S1
-rw-r--r--sysdeps/unix/sysv/linux/mips/putmsg.c1
-rw-r--r--sysdeps/unix/sysv/linux/mips/readelflib.c4
-rw-r--r--sysdeps/unix/sysv/linux/mips/register-dump.h4
-rw-r--r--sysdeps/unix/sysv/linux/mips/setcontext.S42
-rw-r--r--sysdeps/unix/sysv/linux/mips/setrlimit64.c4
-rw-r--r--sysdeps/unix/sysv/linux/mips/sigcontextinfo.h22
-rw-r--r--sysdeps/unix/sysv/linux/mips/swapcontext.S9
-rw-r--r--sysdeps/unix/sysv/linux/mips/sys/cachectl.h4
-rw-r--r--sysdeps/unix/sysv/linux/mips/sys/procfs.h126
-rw-r--r--sysdeps/unix/sysv/linux/mips/sys/sysmips.h4
-rw-r--r--sysdeps/unix/sysv/linux/mips/sys/ucontext.h4
-rw-r--r--sysdeps/unix/sysv/linux/mips/sys/user.h4
-rw-r--r--sysdeps/unix/sysv/linux/mips/sysdep.h40
-rw-r--r--sysdeps/unix/sysv/linux/mips/ustat.c4
-rw-r--r--sysdeps/unix/sysv/linux/mips/vfork.S4
-rw-r--r--sysdeps/unix/sysv/linux/mips/xstatconv.c4
-rw-r--r--sysdeps/unix/sysv/linux/mlock2.c4
-rw-r--r--sysdeps/unix/sysv/linux/mmap.c4
-rw-r--r--sysdeps/unix/sysv/linux/mmap64.c13
-rw-r--r--sysdeps/unix/sysv/linux/mmap_internal.h4
-rw-r--r--sysdeps/unix/sysv/linux/mq_close.c4
-rw-r--r--sysdeps/unix/sysv/linux/mq_getattr.c4
-rw-r--r--sysdeps/unix/sysv/linux/mq_notify.c4
-rw-r--r--sysdeps/unix/sysv/linux/mq_open.c4
-rw-r--r--sysdeps/unix/sysv/linux/mq_receive.c4
-rw-r--r--sysdeps/unix/sysv/linux/mq_send.c4
-rw-r--r--sysdeps/unix/sysv/linux/mq_timedreceive.c4
-rw-r--r--sysdeps/unix/sysv/linux/mq_timedsend.c4
-rw-r--r--sysdeps/unix/sysv/linux/mq_unlink.c4
-rw-r--r--sysdeps/unix/sysv/linux/msgctl.c68
-rw-r--r--sysdeps/unix/sysv/linux/msgget.c4
-rw-r--r--sysdeps/unix/sysv/linux/msgrcv.c4
-rw-r--r--sysdeps/unix/sysv/linux/msgsnd.c4
-rw-r--r--sysdeps/unix/sysv/linux/msync.c4
-rw-r--r--sysdeps/unix/sysv/linux/nanosleep.c31
-rw-r--r--sysdeps/unix/sysv/linux/nanosleep_nocancel.c29
-rw-r--r--sysdeps/unix/sysv/linux/net/ethernet.h4
-rw-r--r--sysdeps/unix/sysv/linux/net/if_arp.h4
-rw-r--r--sysdeps/unix/sysv/linux/net/if_packet.h4
-rw-r--r--sysdeps/unix/sysv/linux/net/if_shaper.h4
-rw-r--r--sysdeps/unix/sysv/linux/net/if_slip.h4
-rw-r--r--sysdeps/unix/sysv/linux/net/route.h4
-rw-r--r--sysdeps/unix/sysv/linux/netash/ash.h4
-rw-r--r--sysdeps/unix/sysv/linux/netatalk/at.h4
-rw-r--r--sysdeps/unix/sysv/linux/netax25/ax25.h4
-rw-r--r--sysdeps/unix/sysv/linux/neteconet/ec.h4
-rw-r--r--sysdeps/unix/sysv/linux/netinet/if_ether.h4
-rw-r--r--sysdeps/unix/sysv/linux/netinet/if_fddi.h4
-rw-r--r--sysdeps/unix/sysv/linux/netinet/if_tr.h4
-rw-r--r--sysdeps/unix/sysv/linux/netipx/ipx.h4
-rw-r--r--sysdeps/unix/sysv/linux/netiucv/iucv.h4
-rw-r--r--sysdeps/unix/sysv/linux/netlink_assert_response.c12
-rw-r--r--sysdeps/unix/sysv/linux/netlinkaccess.h4
-rw-r--r--sysdeps/unix/sysv/linux/netpacket/packet.h5
-rw-r--r--sysdeps/unix/sysv/linux/netrom/netrom.h4
-rw-r--r--sysdeps/unix/sysv/linux/netrose/rose.h4
-rw-r--r--sysdeps/unix/sysv/linux/nios2/Makefile9
-rw-r--r--sysdeps/unix/sysv/linux/nios2/atomic-machine.h4
-rw-r--r--sysdeps/unix/sysv/linux/nios2/bits/mman.h46
-rw-r--r--sysdeps/unix/sysv/linux/nios2/bits/procfs.h34
-rw-r--r--sysdeps/unix/sysv/linux/nios2/cacheflush.c4
-rw-r--r--sysdeps/unix/sysv/linux/nios2/clone.S4
-rw-r--r--sysdeps/unix/sysv/linux/nios2/getcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/nios2/ipc_priv.h21
-rw-r--r--sysdeps/unix/sysv/linux/nios2/kernel-features.h22
-rw-r--r--sysdeps/unix/sysv/linux/nios2/kernel_rt_sigframe.h4
-rw-r--r--sysdeps/unix/sysv/linux/nios2/kernel_sigaction.h3
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libc.abilist7
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libm.abilist17
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libpthread.abilist18
-rw-r--r--sysdeps/unix/sysv/linux/nios2/localplt.data1
-rw-r--r--sysdeps/unix/sysv/linux/nios2/makecontext.c4
-rw-r--r--sysdeps/unix/sysv/linux/nios2/profil-counter.h2
-rw-r--r--sysdeps/unix/sysv/linux/nios2/pt-vfork.S1
-rw-r--r--sysdeps/unix/sysv/linux/nios2/setcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/nios2/sigcontextinfo.h27
-rw-r--r--sysdeps/unix/sysv/linux/nios2/swapcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/nios2/sys/cachectl.h4
-rw-r--r--sysdeps/unix/sysv/linux/nios2/sys/procfs.h123
-rw-r--r--sysdeps/unix/sysv/linux/nios2/sys/ucontext.h4
-rw-r--r--sysdeps/unix/sysv/linux/nios2/sys/user.h4
-rw-r--r--sysdeps/unix/sysv/linux/nios2/syscall.S4
-rw-r--r--sysdeps/unix/sysv/linux/nios2/sysdep.S4
-rw-r--r--sysdeps/unix/sysv/linux/nios2/sysdep.h4
-rw-r--r--sysdeps/unix/sysv/linux/nios2/vfork.S4
-rw-r--r--sysdeps/unix/sysv/linux/not-cancel.h16
-rw-r--r--sysdeps/unix/sysv/linux/not-errno.h18
-rw-r--r--sysdeps/unix/sysv/linux/nscd_setup_thread.c4
-rw-r--r--sysdeps/unix/sysv/linux/ntp_gettime.c4
-rw-r--r--sysdeps/unix/sysv/linux/ntp_gettimex.c4
-rw-r--r--sysdeps/unix/sysv/linux/olddirent.h4
-rw-r--r--sysdeps/unix/sysv/linux/open.c4
-rw-r--r--sysdeps/unix/sysv/linux/open64.c4
-rw-r--r--sysdeps/unix/sysv/linux/open64_nocancel.c4
-rw-r--r--sysdeps/unix/sysv/linux/open_by_handle_at.c4
-rw-r--r--sysdeps/unix/sysv/linux/open_nocancel.c4
-rw-r--r--sysdeps/unix/sysv/linux/openat.c4
-rw-r--r--sysdeps/unix/sysv/linux/openat64.c4
-rw-r--r--sysdeps/unix/sysv/linux/openat64_nocancel.c4
-rw-r--r--sysdeps/unix/sysv/linux/openat_nocancel.c4
-rw-r--r--sysdeps/unix/sysv/linux/opensock.c4
-rw-r--r--sysdeps/unix/sysv/linux/pathconf.c4
-rw-r--r--sysdeps/unix/sysv/linux/pathconf.h4
-rw-r--r--sysdeps/unix/sysv/linux/pause.c4
-rw-r--r--sysdeps/unix/sysv/linux/pause_nocancel.c33
-rw-r--r--sysdeps/unix/sysv/linux/personality.c4
-rw-r--r--sysdeps/unix/sysv/linux/pkey_get.c4
-rw-r--r--sysdeps/unix/sysv/linux/pkey_mprotect.c4
-rw-r--r--sysdeps/unix/sysv/linux/pkey_set.c4
-rw-r--r--sysdeps/unix/sysv/linux/poll.c4
-rw-r--r--sysdeps/unix/sysv/linux/posix_fadvise.c4
-rw-r--r--sysdeps/unix/sysv/linux/posix_fadvise64.c4
-rw-r--r--sysdeps/unix/sysv/linux/posix_fallocate.c4
-rw-r--r--sysdeps/unix/sysv/linux/posix_fallocate64.c4
-rw-r--r--sysdeps/unix/sysv/linux/posix_madvise.c4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/Makefile2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/environments.h4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/ioctl-types.h4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/ipc-perm.h36
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/ipc.h54
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/local_lim.h4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/mman.h6
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/msq-pad.h26
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/msq.h84
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/ppc.h4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/procfs.h49
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/sem-pad.h26
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/sem.h91
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/shm-pad.h28
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/shm.h113
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/sigstack.h4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/socket-constants.h38
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/stat.h4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/termios-baud.h45
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/termios-c_cc.h41
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/termios-c_cflag.h35
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/termios-c_iflag.h38
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/termios-c_lflag.h45
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/termios-c_oflag.h65
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/termios-misc.h72
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/termios.h279
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/dl-static.c4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/elision-conf.c24
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/elision-conf.h4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/elision-lock.c6
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/elision-timed.c10
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/elision-trylock.c6
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/elision-unlock.c8
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/force-elision.h48
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/get_clockfreq.c107
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/get_timebase_freq.c91
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/getmsg.c1
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/gettimeofday.c79
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/htm.h6
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/init-first.c65
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/ioctl.c4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/ipc_priv.h28
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/kernel-features.h14
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/kernel_sigaction.h3
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/kernel_termios.h4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/ldconfig.h4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/ldsodefs.h4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/libc-start.c4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/libc-start.h4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/libc-vdso.h39
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/lowlevellock.h13
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/not-errno.h30
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/____longjmp_chk.S4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/brk.S4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nofpu/Implies2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_mask.c4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist24
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist17
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext-common.S8
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/kernel_stat.h4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist23
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/lockf64.c1
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/context-e500.h144
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/getcontext.S6
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist24
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist17
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/localplt.data1
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/setcontext.S6
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/swapcontext.S6
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S30
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S32
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h30
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/____longjmp_chk.S4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/be/ld.abilist (renamed from sysdeps/unix/sysv/linux/powerpc/powerpc64/ld.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libBrokenLocale.abilist (renamed from sysdeps/unix/sysv/linux/powerpc/powerpc64/libBrokenLocale.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libanl.abilist (renamed from sysdeps/unix/sysv/linux/powerpc/powerpc64/libanl.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist2359
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libcrypt.abilist (renamed from sysdeps/unix/sysv/linux/powerpc/powerpc64/libcrypt.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist (renamed from sysdeps/unix/sysv/linux/powerpc/powerpc64/libdl.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist924
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libnsl.abilist (renamed from sysdeps/unix/sysv/linux/powerpc/powerpc64/libnsl.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist251
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist (renamed from sysdeps/unix/sysv/linux/powerpc/powerpc64/libresolv.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist42
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libthread_db.abilist (renamed from sysdeps/unix/sysv/linux/powerpc/powerpc64/libthread_db.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libutil.abilist (renamed from sysdeps/unix/sysv/linux/powerpc/powerpc64/libutil.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/brk.S4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/dl-cache.h4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_mask.c4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/kernel_stat.h4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/ldsodefs.h4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/le/ld.abilist (renamed from sysdeps/unix/sysv/linux/powerpc/powerpc64/ld-le.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libBrokenLocale.abilist (renamed from sysdeps/unix/sysv/linux/powerpc/powerpc64/libBrokenLocale-le.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libanl.abilist (renamed from sysdeps/unix/sysv/linux/powerpc/powerpc64/libanl-le.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist2249
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libcrypt.abilist (renamed from sysdeps/unix/sysv/linux/powerpc/powerpc64/libcrypt-le.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist (renamed from sysdeps/unix/sysv/linux/powerpc/powerpc64/libdl-le.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist1099
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libnsl.abilist (renamed from sysdeps/unix/sysv/linux/powerpc/powerpc64/libnsl-le.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist237
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist (renamed from sysdeps/unix/sysv/linux/powerpc/powerpc64/libresolv-le.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist (renamed from sysdeps/unix/sysv/linux/powerpc/powerpc64/librt-le.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libthread_db.abilist (renamed from sysdeps/unix/sysv/linux/powerpc/powerpc64/libthread_db-le.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libutil.abilist (renamed from sysdeps/unix/sysv/linux/powerpc/powerpc64/libutil-le.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist2230
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist2335
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist1078
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist907
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread-le.abilist245
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread.abilist259
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/librt.abilist47
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/makecontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S63
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S62
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h30
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/profil-counter.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/pthread_mutex_cond_lock.c4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/pthread_mutex_lock.c4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/pthread_mutex_timedlock.c4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/pthread_mutex_trylock.c4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/putmsg.c1
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/readelflib.c4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/sigcontextinfo.h20
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/sys/procfs.h139
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h15
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h19
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/sys/user.h4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/syscall.S5
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/sysconf.c4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/sysdep.c4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/sysdep.h35
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/test-gettimebasefreq-static.c19
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/test-gettimebasefreq.c4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/test-powerpc-linux-sysconf.c4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/time.c80
-rw-r--r--sysdeps/unix/sysv/linux/ppoll.c53
-rw-r--r--sysdeps/unix/sysv/linux/pread.c4
-rw-r--r--sysdeps/unix/sysv/linux/pread64.c4
-rw-r--r--sysdeps/unix/sysv/linux/pread64_nocancel.c32
-rw-r--r--sysdeps/unix/sysv/linux/preadv.c4
-rw-r--r--sysdeps/unix/sysv/linux/preadv2.c6
-rw-r--r--sysdeps/unix/sysv/linux/preadv64.c4
-rw-r--r--sysdeps/unix/sysv/linux/preadv64v2.c6
-rw-r--r--sysdeps/unix/sysv/linux/prlimit.c4
-rw-r--r--sysdeps/unix/sysv/linux/prof-freq.c4
-rw-r--r--sysdeps/unix/sysv/linux/profil-counter.h32
-rw-r--r--sysdeps/unix/sysv/linux/pselect.c48
-rw-r--r--sysdeps/unix/sysv/linux/pt-raise.c4
-rw-r--r--sysdeps/unix/sysv/linux/pthread-pids.h4
-rw-r--r--sysdeps/unix/sysv/linux/pthread_getaffinity.c4
-rw-r--r--sysdeps/unix/sysv/linux/pthread_getcpuclockid.c4
-rw-r--r--sysdeps/unix/sysv/linux/pthread_getname.c4
-rw-r--r--sysdeps/unix/sysv/linux/pthread_kill.c4
-rw-r--r--sysdeps/unix/sysv/linux/pthread_setaffinity.c4
-rw-r--r--sysdeps/unix/sysv/linux/pthread_setname.c4
-rw-r--r--sysdeps/unix/sysv/linux/pthread_sigmask.c54
-rw-r--r--sysdeps/unix/sysv/linux/pthread_sigqueue.c4
-rw-r--r--sysdeps/unix/sysv/linux/ptrace.c4
-rw-r--r--sysdeps/unix/sysv/linux/ptsname.c4
-rw-r--r--sysdeps/unix/sysv/linux/pwrite.c4
-rw-r--r--sysdeps/unix/sysv/linux/pwrite64.c4
-rw-r--r--sysdeps/unix/sysv/linux/pwritev.c4
-rw-r--r--sysdeps/unix/sysv/linux/pwritev2.c6
-rw-r--r--sysdeps/unix/sysv/linux/pwritev64.c4
-rw-r--r--sysdeps/unix/sysv/linux/pwritev64v2.c6
-rw-r--r--sysdeps/unix/sysv/linux/raise.c4
-rw-r--r--sysdeps/unix/sysv/linux/read.c4
-rw-r--r--sysdeps/unix/sysv/linux/read_nocancel.c4
-rw-r--r--sysdeps/unix/sysv/linux/readahead.c4
-rw-r--r--sysdeps/unix/sysv/linux/readdir.c4
-rw-r--r--sysdeps/unix/sysv/linux/readdir64.c4
-rw-r--r--sysdeps/unix/sysv/linux/readdir64_r.c4
-rw-r--r--sysdeps/unix/sysv/linux/readdir_r.c4
-rw-r--r--sysdeps/unix/sysv/linux/readonly-area.c4
-rw-r--r--sysdeps/unix/sysv/linux/readv.c4
-rw-r--r--sysdeps/unix/sysv/linux/reboot.c4
-rw-r--r--sysdeps/unix/sysv/linux/recv.c4
-rw-r--r--sysdeps/unix/sysv/linux/recvfrom.c4
-rw-r--r--sysdeps/unix/sysv/linux/recvmmsg.c4
-rw-r--r--sysdeps/unix/sysv/linux/recvmsg.c4
-rw-r--r--sysdeps/unix/sysv/linux/rename.c4
-rw-r--r--sysdeps/unix/sysv/linux/renameat.c4
-rw-r--r--sysdeps/unix/sysv/linux/renameat2.c8
-rw-r--r--sysdeps/unix/sysv/linux/riscv/Makefile4
-rw-r--r--sysdeps/unix/sysv/linux/riscv/atomic-machine.h4
-rw-r--r--sysdeps/unix/sysv/linux/riscv/bits/fcntl.h4
-rw-r--r--sysdeps/unix/sysv/linux/riscv/bits/mman.h40
-rw-r--r--sysdeps/unix/sysv/linux/riscv/bits/procfs.h31
-rw-r--r--sysdeps/unix/sysv/linux/riscv/bits/sigcontext.h5
-rw-r--r--sysdeps/unix/sysv/linux/riscv/clone.S9
-rwxr-xr-xsysdeps/unix/sysv/linux/riscv/configure2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/configure.ac2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/dl-cache.h4
-rw-r--r--sysdeps/unix/sysv/linux/riscv/dl-static.c84
-rw-r--r--sysdeps/unix/sysv/linux/riscv/flush-icache.c14
-rw-r--r--sysdeps/unix/sysv/linux/riscv/getcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/riscv/init-first.c58
-rw-r--r--sysdeps/unix/sysv/linux/riscv/ipc_priv.h21
-rw-r--r--sysdeps/unix/sysv/linux/riscv/kernel-features.h9
-rw-r--r--sysdeps/unix/sysv/linux/riscv/ldconfig.h4
-rw-r--r--sysdeps/unix/sysv/linux/riscv/ldsodefs.h32
-rw-r--r--sysdeps/unix/sysv/linux/riscv/libc-vdso.h38
-rw-r--r--sysdeps/unix/sysv/linux/riscv/makecontext.c4
-rw-r--r--sysdeps/unix/sysv/linux/riscv/profil-counter.h31
-rw-r--r--sysdeps/unix/sysv/linux/riscv/readelflib.c4
-rw-r--r--sysdeps/unix/sysv/linux/riscv/register-dump.h4
-rw-r--r--sysdeps/unix/sysv/linux/riscv/rv64/jmp_buf-macros.h4
-rw-r--r--sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist7
-rw-r--r--sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist16
-rw-r--r--sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist17
-rw-r--r--sysdeps/unix/sysv/linux/riscv/setcontext.S8
-rw-r--r--sysdeps/unix/sysv/linux/riscv/sigcontextinfo.h16
-rw-r--r--sysdeps/unix/sysv/linux/riscv/swapcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/riscv/sys/cachectl.h4
-rw-r--r--sysdeps/unix/sysv/linux/riscv/sys/procfs.h114
-rw-r--r--sysdeps/unix/sysv/linux/riscv/sys/ucontext.h4
-rw-r--r--sysdeps/unix/sysv/linux/riscv/sys/user.h4
-rw-r--r--sysdeps/unix/sysv/linux/riscv/syscall.c4
-rw-r--r--sysdeps/unix/sysv/linux/riscv/sysdep.S4
-rw-r--r--sysdeps/unix/sysv/linux/riscv/sysdep.h13
-rw-r--r--sysdeps/unix/sysv/linux/riscv/ucontext-macros.h4
-rw-r--r--sysdeps/unix/sysv/linux/riscv/vfork.S9
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/elfclass.h4
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/environments.h4
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/fcntl.h4
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/hwcap.h8
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/ipc.h60
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/mman.h45
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/msq.h85
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/procfs-extra.h75
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/procfs-id.h30
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/procfs.h29
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/sem.h91
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/shm.h111
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/sigaction.h4
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/stat.h4
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/statfs.h4
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/typesizes.h9
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/utmp.h7
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/utmpx.h16
-rw-r--r--sysdeps/unix/sysv/linux/s390/brk.c4
-rw-r--r--sysdeps/unix/sysv/linux/s390/dl-procinfo.h8
-rw-r--r--sysdeps/unix/sysv/linux/s390/elision-conf.c4
-rw-r--r--sysdeps/unix/sysv/linux/s390/elision-conf.h4
-rw-r--r--sysdeps/unix/sysv/linux/s390/elision-lock.c4
-rw-r--r--sysdeps/unix/sysv/linux/s390/elision-timed.c10
-rw-r--r--sysdeps/unix/sysv/linux/s390/elision-trylock.c4
-rw-r--r--sysdeps/unix/sysv/linux/s390/elision-unlock.c4
-rw-r--r--sysdeps/unix/sysv/linux/s390/force-elision.h48
-rw-r--r--sysdeps/unix/sysv/linux/s390/htm.h4
-rw-r--r--sysdeps/unix/sysv/linux/s390/init-first.c60
-rw-r--r--sysdeps/unix/sysv/linux/s390/ipc_priv.h29
-rw-r--r--sysdeps/unix/sysv/linux/s390/jmp-unwind.c4
-rw-r--r--sysdeps/unix/sysv/linux/s390/kernel-features.h17
-rw-r--r--sysdeps/unix/sysv/linux/s390/kernel_sigaction.h29
-rw-r--r--sysdeps/unix/sysv/linux/s390/ldconfig.h4
-rw-r--r--sysdeps/unix/sysv/linux/s390/libc-vdso.h38
-rw-r--r--sysdeps/unix/sysv/linux/s390/longjmp_chk.c4
-rw-r--r--sysdeps/unix/sysv/linux/s390/lowlevellock.h13
-rw-r--r--sysdeps/unix/sysv/linux/s390/mmap_internal.h4
-rw-r--r--sysdeps/unix/sysv/linux/s390/pt-longjmp.c4
-rw-r--r--sysdeps/unix/sysv/linux/s390/pt-vfork.S1
-rw-r--r--sysdeps/unix/sysv/linux/s390/pthread_mutex_cond_lock.c4
-rw-r--r--sysdeps/unix/sysv/linux/s390/pthread_mutex_lock.c4
-rw-r--r--sysdeps/unix/sysv/linux/s390/pthread_mutex_timedlock.c4
-rw-r--r--sysdeps/unix/sysv/linux/s390/pthread_mutex_trylock.c4
-rw-r--r--sysdeps/unix/sysv/linux/s390/readelflib.c4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/Versions3
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/__makecontext_ret.S4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/clone.S4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/getcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/getutent.c4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/getutent_r.c4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/getutid.c4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/getutid_r.c4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/getutline.c4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/getutline_r.c4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/getutmp.c4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/getutxent.c4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/getutxid.c4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/getutxline.c4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist27
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist21
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist23
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/lockf64.c1
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/login.c4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/login32.c4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/makecontext.c4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/posix_fadvise64.c4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/profil-counter.h26
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/pututxline.c4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/register-dump.h42
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/setcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/syscall.S30
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h17
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/updwtmp.c4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/updwtmpx.c4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/utmp-compat.h4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/utmp-convert.h4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/utmp32.h4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/utmpx-convert.h4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.c4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.h4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/vfork.S4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/__makecontext_ret.S4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/clone.S4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/dl-cache.h4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/getcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/kernel_stat.h4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist25
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist21
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist21
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/makecontext.c4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/profil-counter.h26
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/register-dump.h42
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/setcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/sigprocmask.c4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/swapcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/syscall.S31
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h17
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/vfork.S4
-rw-r--r--sysdeps/unix/sysv/linux/s390/semtimedop.c36
-rw-r--r--sysdeps/unix/sysv/linux/s390/sigcontextinfo.h20
-rw-r--r--sysdeps/unix/sysv/linux/s390/sys/elf.h4
-rw-r--r--sysdeps/unix/sysv/linux/s390/sys/procfs.h176
-rw-r--r--sysdeps/unix/sysv/linux/s390/sys/ptrace.h13
-rw-r--r--sysdeps/unix/sysv/linux/s390/sys/ucontext.h4
-rw-r--r--sysdeps/unix/sysv/linux/s390/sys/user.h4
-rw-r--r--sysdeps/unix/sysv/linux/s390/sysconf.c4
-rw-r--r--sysdeps/unix/sysv/linux/s390/sysdep.h26
-rw-r--r--sysdeps/unix/sysv/linux/s390/system.c29
-rw-r--r--sysdeps/unix/sysv/linux/s390/tst-ptrace-singleblock.c4
-rw-r--r--sysdeps/unix/sysv/linux/safe-fatal.h4
-rw-r--r--sysdeps/unix/sysv/linux/scandir64.c4
-rw-r--r--sysdeps/unix/sysv/linux/sched_getaffinity.c4
-rw-r--r--sysdeps/unix/sysv/linux/sched_getcpu.c4
-rw-r--r--sysdeps/unix/sysv/linux/sched_setaffinity.c4
-rw-r--r--sysdeps/unix/sysv/linux/scsi/scsi.h4
-rw-r--r--sysdeps/unix/sysv/linux/scsi/scsi_ioctl.h4
-rw-r--r--sysdeps/unix/sysv/linux/scsi/sg.h4
-rw-r--r--sysdeps/unix/sysv/linux/select.c4
-rw-r--r--sysdeps/unix/sysv/linux/semctl.c94
-rw-r--r--sysdeps/unix/sysv/linux/semget.c4
-rw-r--r--sysdeps/unix/sysv/linux/semop.c10
-rw-r--r--sysdeps/unix/sysv/linux/semtimedop.c17
-rw-r--r--sysdeps/unix/sysv/linux/send.c4
-rw-r--r--sysdeps/unix/sysv/linux/sendmmsg.c4
-rw-r--r--sysdeps/unix/sysv/linux/sendmsg.c4
-rw-r--r--sysdeps/unix/sysv/linux/sendto.c4
-rw-r--r--sysdeps/unix/sysv/linux/setegid.c4
-rw-r--r--sysdeps/unix/sysv/linux/seteuid.c4
-rw-r--r--sysdeps/unix/sysv/linux/setgid.c4
-rw-r--r--sysdeps/unix/sysv/linux/setgroups.c4
-rw-r--r--sysdeps/unix/sysv/linux/setipv4sourcefilter.c4
-rw-r--r--sysdeps/unix/sysv/linux/setregid.c4
-rw-r--r--sysdeps/unix/sysv/linux/setresgid.c4
-rw-r--r--sysdeps/unix/sysv/linux/setresuid.c4
-rw-r--r--sysdeps/unix/sysv/linux/setreuid.c4
-rw-r--r--sysdeps/unix/sysv/linux/setrlimit.c4
-rw-r--r--sysdeps/unix/sysv/linux/setrlimit64.c4
-rw-r--r--sysdeps/unix/sysv/linux/setsockopt.c4
-rw-r--r--sysdeps/unix/sysv/linux/setsourcefilter.c4
-rw-r--r--sysdeps/unix/sysv/linux/settimezone.c36
-rw-r--r--sysdeps/unix/sysv/linux/setuid.c4
-rw-r--r--sysdeps/unix/sysv/linux/sh/____longjmp_chk.S4
-rw-r--r--sysdeps/unix/sysv/linux/sh/atomic-machine.h4
-rw-r--r--sysdeps/unix/sysv/linux/sh/be/Versions5
-rw-r--r--sysdeps/unix/sysv/linux/sh/be/ld.abilist (renamed from sysdeps/unix/sysv/linux/sh/ld.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/sh/be/libBrokenLocale.abilist (renamed from sysdeps/unix/sysv/linux/sh/libBrokenLocale.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/sh/be/libanl.abilist (renamed from sysdeps/unix/sysv/linux/sh/libanl.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/sh/be/libc.abilist2195
-rw-r--r--sysdeps/unix/sysv/linux/sh/be/libcrypt.abilist (renamed from sysdeps/unix/sysv/linux/sh/libcrypt.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/sh/be/libdl.abilist (renamed from sysdeps/unix/sysv/linux/sh/libdl.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/sh/be/libm.abilist784
-rw-r--r--sysdeps/unix/sysv/linux/sh/be/libnsl.abilist (renamed from sysdeps/unix/sysv/linux/sh/libnsl.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/sh/be/libpthread.abilist249
-rw-r--r--sysdeps/unix/sysv/linux/sh/be/libresolv.abilist (renamed from sysdeps/unix/sysv/linux/sh/libresolv.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/sh/be/librt.abilist37
-rw-r--r--sysdeps/unix/sysv/linux/sh/be/libthread_db.abilist (renamed from sysdeps/unix/sysv/linux/sh/libthread_db.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/sh/be/libutil.abilist (renamed from sysdeps/unix/sysv/linux/sh/libutil.abilist)0
-rw-r--r--sysdeps/unix/sysv/linux/sh/be/sh3/Implies1
-rw-r--r--sysdeps/unix/sysv/linux/sh/be/sh4/Implies1
-rw-r--r--sysdeps/unix/sysv/linux/sh/bits/fcntl.h4
-rw-r--r--sysdeps/unix/sysv/linux/sh/bits/mman.h44
-rw-r--r--sysdeps/unix/sysv/linux/sh/bits/procfs-id.h25
-rw-r--r--sysdeps/unix/sysv/linux/sh/bits/procfs.h24
-rw-r--r--sysdeps/unix/sysv/linux/sh/bits/shm.h102
-rw-r--r--sysdeps/unix/sysv/linux/sh/bits/shmlba.h24
-rw-r--r--sysdeps/unix/sysv/linux/sh/brk.c4
-rw-r--r--sysdeps/unix/sysv/linux/sh/clone.S4
-rw-r--r--sysdeps/unix/sysv/linux/sh/kernel-features.h31
-rw-r--r--sysdeps/unix/sysv/linux/sh/kernel_sigaction.h3
-rw-r--r--sysdeps/unix/sysv/linux/sh/le/ld.abilist9
-rw-r--r--sysdeps/unix/sysv/linux/sh/le/libBrokenLocale.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/sh/le/libanl.abilist4
-rw-r--r--sysdeps/unix/sysv/linux/sh/le/libc.abilist2192
-rw-r--r--sysdeps/unix/sysv/linux/sh/le/libcrypt.abilist7
-rw-r--r--sysdeps/unix/sysv/linux/sh/le/libdl.abilist10
-rw-r--r--sysdeps/unix/sysv/linux/sh/le/libm.abilist784
-rw-r--r--sysdeps/unix/sysv/linux/sh/le/libnsl.abilist121
-rw-r--r--sysdeps/unix/sysv/linux/sh/le/libpthread.abilist249
-rw-r--r--sysdeps/unix/sysv/linux/sh/le/libresolv.abilist96
-rw-r--r--sysdeps/unix/sysv/linux/sh/le/librt.abilist37
-rw-r--r--sysdeps/unix/sysv/linux/sh/le/libthread_db.abilist40
-rw-r--r--sysdeps/unix/sysv/linux/sh/le/libutil.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/sh/le/sh3/Implies1
-rw-r--r--sysdeps/unix/sysv/linux/sh/le/sh4/Implies1
-rw-r--r--sysdeps/unix/sysv/linux/sh/libc.abilist2180
-rw-r--r--sysdeps/unix/sysv/linux/sh/libm.abilist767
-rw-r--r--sysdeps/unix/sysv/linux/sh/libpthread.abilist256
-rw-r--r--sysdeps/unix/sysv/linux/sh/librt.abilist42
-rw-r--r--sysdeps/unix/sysv/linux/sh/lockf64.c1
-rw-r--r--sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h4
-rw-r--r--sysdeps/unix/sysv/linux/sh/makecontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/sh/pipe.S4
-rw-r--r--sysdeps/unix/sysv/linux/sh/profil-counter.h32
-rw-r--r--sysdeps/unix/sysv/linux/sh/pt-vfork.S1
-rw-r--r--sysdeps/unix/sysv/linux/sh/register-dump.h263
-rw-r--r--sysdeps/unix/sysv/linux/sh/sh3/getcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/sh/sh3/register-dump.h150
-rw-r--r--sysdeps/unix/sysv/linux/sh/sh3/setcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/sh/sh3/swapcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/sh/sh4/getcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/sh/sh4/register-dump.h263
-rw-r--r--sysdeps/unix/sysv/linux/sh/sh4/setcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/sh/sh4/swapcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/sh/sigcontextinfo.h15
-rw-r--r--sysdeps/unix/sysv/linux/sh/smp.h4
-rw-r--r--sysdeps/unix/sysv/linux/sh/sys/procfs.h111
-rw-r--r--sysdeps/unix/sysv/linux/sh/sys/ucontext.h4
-rw-r--r--sysdeps/unix/sysv/linux/sh/sys/user.h4
-rw-r--r--sysdeps/unix/sysv/linux/sh/syscall.S4
-rw-r--r--sysdeps/unix/sysv/linux/sh/sysdep.S4
-rw-r--r--sysdeps/unix/sysv/linux/sh/sysdep.h4
-rw-r--r--sysdeps/unix/sysv/linux/sh/vfork.S4
-rw-r--r--sysdeps/unix/sysv/linux/shm-directory.c4
-rw-r--r--sysdeps/unix/sysv/linux/shmat.c4
-rw-r--r--sysdeps/unix/sysv/linux/shmctl.c70
-rw-r--r--sysdeps/unix/sysv/linux/shmdt.c4
-rw-r--r--sysdeps/unix/sysv/linux/shmget.c4
-rw-r--r--sysdeps/unix/sysv/linux/shutdown.c4
-rw-r--r--sysdeps/unix/sysv/linux/sigaction.c8
-rw-r--r--sysdeps/unix/sysv/linux/siglist.h4
-rw-r--r--sysdeps/unix/sysv/linux/signalfd.c4
-rw-r--r--sysdeps/unix/sysv/linux/sigpending.c4
-rw-r--r--sysdeps/unix/sysv/linux/sigprocmask.c4
-rw-r--r--sysdeps/unix/sysv/linux/sigqueue.c4
-rw-r--r--sysdeps/unix/sysv/linux/sigset-cvt-mask.h4
-rw-r--r--sysdeps/unix/sysv/linux/sigsetops.h4
-rw-r--r--sysdeps/unix/sysv/linux/sigstack.c4
-rw-r--r--sysdeps/unix/sysv/linux/sigsuspend.c4
-rw-r--r--sysdeps/unix/sysv/linux/sigtimedwait.c4
-rw-r--r--sysdeps/unix/sysv/linux/sigwait.c7
-rw-r--r--sysdeps/unix/sysv/linux/sigwaitinfo.c7
-rw-r--r--sysdeps/unix/sysv/linux/single-thread.h62
-rw-r--r--sysdeps/unix/sysv/linux/sizes.h4
-rw-r--r--sysdeps/unix/sysv/linux/socket.c4
-rw-r--r--sysdeps/unix/sysv/linux/socketcall.h4
-rw-r--r--sysdeps/unix/sysv/linux/socketpair.c4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/Makefile4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/Versions4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/environments.h4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/epoll.h4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/errno.h4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/eventfd.h4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/fcntl.h4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/inotify.h4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/ioctls.h4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/ipc-perm.h36
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/ipc.h61
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/local_lim.h4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/mman.h6
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/msq-pad.h26
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/msq.h85
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/poll.h4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/procfs-extra.h88
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/procfs-id.h30
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/procfs.h61
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/resource.h4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/sem-pad.h26
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/sem.h92
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/setjmp.h4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/shm-pad.h28
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/shm.h111
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/shmlba.h29
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/sigaction.h4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/sigcontext.h4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/siginfo-arch.h7
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/signalfd.h4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/signum.h4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/sigstack.h4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/socket-constants.h38
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/socket_type.h4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/stat.h4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/termios-baud.h46
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/termios-c_cc.h43
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/termios-c_oflag.h64
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/termios-struct.h34
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/termios.h225
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/timerfd.h4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/typesizes.h9
-rw-r--r--sysdeps/unix/sysv/linux/sparc/dl-cache.h4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/getrlimit64.c4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/getshmlba.c4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/getsysstats.c4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/kernel-features.h41
-rw-r--r--sysdeps/unix/sysv/linux/sparc/kernel_sigaction.h7
-rw-r--r--sysdeps/unix/sysv/linux/sparc/kernel_termios.h7
-rw-r--r--sysdeps/unix/sysv/linux/sparc/lowlevellock.h135
-rw-r--r--sysdeps/unix/sysv/linux/sparc/profil-counter.h37
-rw-r--r--sysdeps/unix/sysv/linux/sparc/pt-vfork.S1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/readelflib.c4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/____longjmp_chk.S4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/bits/long-double.h4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/brk.c4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/clone.S4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/getcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist24
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist21
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist23
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/localplt.data2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/lockf64.c1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/makecontext.c4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/pipe.S4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/profil-counter.h28
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/register-dump.h40
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/setcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c9
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h44
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/get_clockfreq.c1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/swapcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/syscall.S4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/Makefile5
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/__start_context.S4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/bits/long-double.h4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/brk.S4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/clone.S4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/dl-cache.h4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c250
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/getcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/ipc_priv.h26
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist12
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist21
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist21
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/makecontext.c4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/pipe.S4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/profil-counter.h28
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/register-dump.h46
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/setcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/setjmp.S4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c9
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h46
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/sizes.h4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/swapcontext.c4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list3
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/time.c1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/ucontext_i.h4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/wordexp.c4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/xstatconv.c4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sys/procfs.h210
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sys/ptrace.h10
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sys/ucontext.h4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sys/user.h4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sysdep.h18
-rw-r--r--sysdeps/unix/sysv/linux/sparc/system.c29
-rw-r--r--sysdeps/unix/sysv/linux/spawni.c40
-rw-r--r--sysdeps/unix/sysv/linux/speed.c8
-rw-r--r--sysdeps/unix/sysv/linux/splice.c4
-rw-r--r--sysdeps/unix/sysv/linux/statfs64.c4
-rw-r--r--sysdeps/unix/sysv/linux/statvfs.c4
-rw-r--r--sysdeps/unix/sysv/linux/statvfs64.c4
-rw-r--r--sysdeps/unix/sysv/linux/statx.c4
-rw-r--r--sysdeps/unix/sysv/linux/statx_cp.c49
-rw-r--r--sysdeps/unix/sysv/linux/statx_cp.h20
-rw-r--r--sysdeps/unix/sysv/linux/sync_file_range.c4
-rw-r--r--sysdeps/unix/sysv/linux/sys/acct.h6
-rw-r--r--sysdeps/unix/sysv/linux/sys/epoll.h4
-rw-r--r--sysdeps/unix/sysv/linux/sys/eventfd.h4
-rw-r--r--sysdeps/unix/sysv/linux/sys/fanotify.h4
-rw-r--r--sysdeps/unix/sysv/linux/sys/fsuid.h4
-rw-r--r--sysdeps/unix/sysv/linux/sys/inotify.h5
-rw-r--r--sysdeps/unix/sysv/linux/sys/kd.h4
-rw-r--r--sysdeps/unix/sysv/linux/sys/klog.h4
-rw-r--r--sysdeps/unix/sysv/linux/sys/mount.h4
-rw-r--r--sysdeps/unix/sysv/linux/sys/pci.h4
-rw-r--r--sysdeps/unix/sysv/linux/sys/personality.h4
-rw-r--r--sysdeps/unix/sysv/linux/sys/prctl.h4
-rw-r--r--sysdeps/unix/sysv/linux/sys/procfs.h72
-rw-r--r--sysdeps/unix/sysv/linux/sys/ptrace.h10
-rw-r--r--sysdeps/unix/sysv/linux/sys/quota.h4
-rw-r--r--sysdeps/unix/sysv/linux/sys/raw.h4
-rw-r--r--sysdeps/unix/sysv/linux/sys/reboot.h4
-rw-r--r--sysdeps/unix/sysv/linux/sys/signalfd.h11
-rw-r--r--sysdeps/unix/sysv/linux/sys/swap.h4
-rw-r--r--sysdeps/unix/sysv/linux/sys/syscall.h4
-rw-r--r--sysdeps/unix/sysv/linux/sys/sysctl.h9
-rw-r--r--sysdeps/unix/sysv/linux/sys/sysinfo.h4
-rw-r--r--sysdeps/unix/sysv/linux/sys/timerfd.h4
-rw-r--r--sysdeps/unix/sysv/linux/sys/timex.h4
-rw-r--r--sysdeps/unix/sysv/linux/syscall-names.list60
-rw-r--r--sysdeps/unix/sysv/linux/syscalls.list8
-rw-r--r--sysdeps/unix/sysv/linux/sysconf.c68
-rw-r--r--sysdeps/unix/sysv/linux/sysctl.c8
-rw-r--r--sysdeps/unix/sysv/linux/sysdep-cancel.h85
-rw-r--r--sysdeps/unix/sysv/linux/sysdep-vdso.h35
-rw-r--r--sysdeps/unix/sysv/linux/sysdep.h4
-rw-r--r--sysdeps/unix/sysv/linux/system.c76
-rw-r--r--sysdeps/unix/sysv/linux/tcdrain.c4
-rw-r--r--sysdeps/unix/sysv/linux/tcflow.c4
-rw-r--r--sysdeps/unix/sysv/linux/tcflush.c4
-rw-r--r--sysdeps/unix/sysv/linux/tcgetattr.c12
-rw-r--r--sysdeps/unix/sysv/linux/tcsendbrk.c4
-rw-r--r--sysdeps/unix/sysv/linux/tcsetattr.c8
-rw-r--r--sysdeps/unix/sysv/linux/tee.c4
-rw-r--r--sysdeps/unix/sysv/linux/test-errno-linux.c9
-rw-r--r--sysdeps/unix/sysv/linux/time-clockid.h22
-rw-r--r--sysdeps/unix/sysv/linux/time.c41
-rw-r--r--sysdeps/unix/sysv/linux/timer_create.c4
-rw-r--r--sysdeps/unix/sysv/linux/timer_delete.c4
-rw-r--r--sysdeps/unix/sysv/linux/timer_getoverr.c4
-rw-r--r--sysdeps/unix/sysv/linux/timer_gettime.c53
-rw-r--r--sysdeps/unix/sysv/linux/timer_routines.c4
-rw-r--r--sysdeps/unix/sysv/linux/timer_settime.c75
-rw-r--r--sysdeps/unix/sysv/linux/times.c4
-rw-r--r--sysdeps/unix/sysv/linux/timespec_get.c46
-rw-r--r--sysdeps/unix/sysv/linux/truncate.c4
-rw-r--r--sysdeps/unix/sysv/linux/truncate64.c4
-rw-r--r--sysdeps/unix/sysv/linux/tst-affinity-pid.c4
-rw-r--r--sysdeps/unix/sysv/linux/tst-affinity-static.c1
-rw-r--r--sysdeps/unix/sysv/linux/tst-affinity.c4
-rw-r--r--sysdeps/unix/sysv/linux/tst-align-clone.c4
-rw-r--r--sysdeps/unix/sysv/linux/tst-clone.c4
-rw-r--r--sysdeps/unix/sysv/linux/tst-clone2.c4
-rw-r--r--sysdeps/unix/sysv/linux/tst-clone3.c27
-rw-r--r--sysdeps/unix/sysv/linux/tst-fallocate-common.c6
-rw-r--r--sysdeps/unix/sysv/linux/tst-fallocate.c4
-rw-r--r--sysdeps/unix/sysv/linux/tst-fallocate64.c4
-rw-r--r--sysdeps/unix/sysv/linux/tst-fanotify.c4
-rw-r--r--sysdeps/unix/sysv/linux/tst-getdents64.c163
-rw-r--r--sysdeps/unix/sysv/linux/tst-gettid-kill.c129
-rw-r--r--sysdeps/unix/sysv/linux/tst-gettid.c79
-rw-r--r--sysdeps/unix/sysv/linux/tst-memfd_create.c4
-rw-r--r--sysdeps/unix/sysv/linux/tst-mlock2.c4
-rw-r--r--sysdeps/unix/sysv/linux/tst-mman-consts.py65
-rw-r--r--sysdeps/unix/sysv/linux/tst-ofdlocks-compat.c4
-rw-r--r--sysdeps/unix/sysv/linux/tst-ofdlocks.c4
-rw-r--r--sysdeps/unix/sysv/linux/tst-personality.c14
-rw-r--r--sysdeps/unix/sysv/linux/tst-pkey.c4
-rw-r--r--sysdeps/unix/sysv/linux/tst-quota.c4
-rw-r--r--sysdeps/unix/sysv/linux/tst-readdir64-compat.c115
-rw-r--r--sysdeps/unix/sysv/linux/tst-rlimit-infinity.c4
-rw-r--r--sysdeps/unix/sysv/linux/tst-setgetname.c10
-rw-r--r--sysdeps/unix/sysv/linux/tst-sigcontext-get_pc.c78
-rw-r--r--sysdeps/unix/sysv/linux/tst-signal-numbers.py48
-rw-r--r--sysdeps/unix/sysv/linux/tst-signal-numbers.sh86
-rw-r--r--sysdeps/unix/sysv/linux/tst-skeleton-affinity.c21
-rw-r--r--sysdeps/unix/sysv/linux/tst-skeleton-thread-affinity.c9
-rw-r--r--sysdeps/unix/sysv/linux/tst-socket-consts.py65
-rw-r--r--sysdeps/unix/sysv/linux/tst-sync_file_range.c4
-rw-r--r--sysdeps/unix/sysv/linux/tst-syscall-list.sh4
-rw-r--r--sysdeps/unix/sysv/linux/tst-sysconf-iov_max-uapi.c4
-rw-r--r--sysdeps/unix/sysv/linux/tst-sysconf-iov_max.c4
-rw-r--r--sysdeps/unix/sysv/linux/tst-tgkill.c132
-rw-r--r--sysdeps/unix/sysv/linux/tst-thread-affinity-pthread.c4
-rw-r--r--sysdeps/unix/sysv/linux/tst-thread-affinity-pthread2.c4
-rw-r--r--sysdeps/unix/sysv/linux/tst-thread-affinity-sched.c4
-rw-r--r--sysdeps/unix/sysv/linux/tst-ttyname.c71
-rw-r--r--sysdeps/unix/sysv/linux/ttyname.c4
-rw-r--r--sysdeps/unix/sysv/linux/ttyname.h4
-rw-r--r--sysdeps/unix/sysv/linux/ttyname_r.c4
-rw-r--r--sysdeps/unix/sysv/linux/umount.c4
-rw-r--r--sysdeps/unix/sysv/linux/unlockpt.c4
-rw-r--r--sysdeps/unix/sysv/linux/updwtmp.c28
-rw-r--r--sysdeps/unix/sysv/linux/ustat.c4
-rw-r--r--sysdeps/unix/sysv/linux/utimensat.c69
-rw-r--r--sysdeps/unix/sysv/linux/utimes.c4
-rw-r--r--sysdeps/unix/sysv/linux/utmp_file.c28
-rw-r--r--sysdeps/unix/sysv/linux/versionsort64.c4
-rw-r--r--sysdeps/unix/sysv/linux/vmsplice.c4
-rw-r--r--sysdeps/unix/sysv/linux/wait.c4
-rw-r--r--sysdeps/unix/sysv/linux/waitid.c4
-rw-r--r--sysdeps/unix/sysv/linux/waitpid.c4
-rw-r--r--sysdeps/unix/sysv/linux/waitpid_nocancel.c4
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/fxstat.c4
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/fxstatat.c4
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/lxstat.c4
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/statx_cp.c3
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/xstat.c4
-rw-r--r--sysdeps/unix/sysv/linux/write.c4
-rw-r--r--sysdeps/unix/sysv/linux/write_nocancel.c4
-rw-r--r--sysdeps/unix/sysv/linux/writev.c4
-rw-r--r--sysdeps/unix/sysv/linux/x86/Makefile4
-rw-r--r--sysdeps/unix/sysv/linux/x86/arch-pkey.h4
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/environments.h4
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/epoll.h4
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/fcntl.h4
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/ipctypes.h4
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/mman.h21
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/msq.h83
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/procfs-id.h30
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/procfs.h50
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/sem-pad.h24
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/sem.h87
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/shm.h110
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/sigcontext.h6
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/stat.h4
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/sysctl.h4
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/timesize.h25
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/typesizes.h9
-rw-r--r--sysdeps/unix/sysv/linux/x86/cpu-features.c4
-rw-r--r--sysdeps/unix/sysv/linux/x86/dl-cet.h4
-rw-r--r--sysdeps/unix/sysv/linux/x86/dl-sysdep.c4
-rw-r--r--sysdeps/unix/sysv/linux/x86/elision-conf.c10
-rw-r--r--sysdeps/unix/sysv/linux/x86/elision-conf.h4
-rw-r--r--sysdeps/unix/sysv/linux/x86/elision-lock.c4
-rw-r--r--sysdeps/unix/sysv/linux/x86/elision-timed.c10
-rw-r--r--sysdeps/unix/sysv/linux/x86/elision-trylock.c4
-rw-r--r--sysdeps/unix/sysv/linux/x86/elision-unlock.c4
-rw-r--r--sysdeps/unix/sysv/linux/x86/force-elision.h48
-rw-r--r--sysdeps/unix/sysv/linux/x86/gettimeofday.c52
-rw-r--r--sysdeps/unix/sysv/linux/x86/hle.h70
-rw-r--r--sysdeps/unix/sysv/linux/x86/libc-vdso.h37
-rw-r--r--sysdeps/unix/sysv/linux/x86/lowlevellock.h111
-rw-r--r--sysdeps/unix/sysv/linux/x86/pkey_get.c4
-rw-r--r--sysdeps/unix/sysv/linux/x86/pkey_set.c4
-rw-r--r--sysdeps/unix/sysv/linux/x86/pthread_mutex_cond_lock.c4
-rw-r--r--sysdeps/unix/sysv/linux/x86/pthread_mutex_lock.c4
-rw-r--r--sysdeps/unix/sysv/linux/x86/pthread_mutex_timedlock.c4
-rw-r--r--sysdeps/unix/sysv/linux/x86/pthread_mutex_trylock.c4
-rw-r--r--sysdeps/unix/sysv/linux/x86/setjmpP.h4
-rw-r--r--sysdeps/unix/sysv/linux/x86/sys/debugreg.h4
-rw-r--r--sysdeps/unix/sysv/linux/x86/sys/elf.h4
-rw-r--r--sysdeps/unix/sysv/linux/x86/sys/io.h4
-rw-r--r--sysdeps/unix/sysv/linux/x86/sys/perm.h4
-rw-r--r--sysdeps/unix/sysv/linux/x86/sys/procfs.h145
-rw-r--r--sysdeps/unix/sysv/linux/x86/sys/ptrace.h10
-rw-r--r--sysdeps/unix/sysv/linux/x86/sys/reg.h4
-rw-r--r--sysdeps/unix/sysv/linux/x86/sys/ucontext.h4
-rw-r--r--sysdeps/unix/sysv/linux/x86/sys/user.h4
-rw-r--r--sysdeps/unix/sysv/linux/x86/sys/vm86.h4
-rw-r--r--sysdeps/unix/sysv/linux/x86/sysconf.c4
-rw-r--r--sysdeps/unix/sysv/linux/x86/time.c42
-rw-r--r--sysdeps/unix/sysv/linux/x86/tst-cet-property-1.c4
-rw-r--r--sysdeps/unix/sysv/linux/x86/tst-cet-property-2.c8
-rw-r--r--sysdeps/unix/sysv/linux/x86/tst-cet-property-dep-2.S4
-rw-r--r--sysdeps/unix/sysv/linux/x86/tst-cet-setcontext-1.c4
-rw-r--r--sysdeps/unix/sysv/linux/x86/tst-saved_mask-1.c4
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/64/dl-librecon.h7
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/64/libc.abilist12
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/64/libm.abilist21
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist21
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/64/librt.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/64/mmap_internal.h4
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S4
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/__start_context.S4
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/brk.c4
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/cancellation.S6
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/clone.S4
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/compat-timer.h4
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/dl-cache.h4
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/get_clockfreq.c1
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/getcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/init-first.c52
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/ipc_priv.h32
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/kernel-features.h4
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/kernel_stat.h4
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/ldconfig.h4
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/libc-cancellation.S4
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S19
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/librt-cancellation.S4
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/lll_timedlock_wait.c1
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/lll_timedwait_tid.c1
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/lowlevellock.S431
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/lowlevellock.h272
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/makecontext.c4
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/profil-counter.h31
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/register-dump.h4
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/setcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/sigaction.c7
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/sigcontextinfo.h17
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/sigprocmask.c4
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/swapcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/syscall.S4
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/sysdep.S4
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/sysdep.h13
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/timer_create.c4
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/timer_delete.c4
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c4
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/timer_gettime.c16
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/timer_settime.c18
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/vfork.S4
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/arch_prctl.c4
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/dl-cache.h4
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/gettimeofday.c1
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist12
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist21
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist20
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/lseek.S4
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/syscalls.list1
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/sysdep.h4
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/times.c4
-rw-r--r--sysdeps/unix/sysv/linux/xmknod.c4
-rw-r--r--sysdeps/unix/sysv/linux/xmknodat.c4
-rw-r--r--sysdeps/unix/sysv/linux/xstat.c4
-rw-r--r--sysdeps/unix/sysv/linux/xstat64.c10
-rw-r--r--sysdeps/unix/sysv/linux/xstatconv.c19
-rw-r--r--sysdeps/unix/sysv/linux/xstatconv.h4
-rw-r--r--sysdeps/unix/x86_64/sysdep.S4
-rw-r--r--sysdeps/unix/x86_64/sysdep.h4
-rw-r--r--sysdeps/wordsize-32/bits/wordsize.h4
-rw-r--r--sysdeps/wordsize-32/divdi3-symbol-hacks.h4
-rw-r--r--sysdeps/wordsize-32/divdi3.c4
-rw-r--r--sysdeps/wordsize-32/llabs.c4
-rw-r--r--sysdeps/wordsize-32/lldiv.c4
-rw-r--r--sysdeps/wordsize-32/strtoimax.c4
-rw-r--r--sysdeps/wordsize-32/strtoumax.c4
-rw-r--r--sysdeps/wordsize-32/wcstoimax.c4
-rw-r--r--sysdeps/wordsize-32/wcstoumax.c4
-rw-r--r--sysdeps/wordsize-64/bits/wordsize.h4
-rw-r--r--sysdeps/wordsize-64/labs.c4
-rw-r--r--sysdeps/wordsize-64/ldiv.c4
-rw-r--r--sysdeps/wordsize-64/strtoimax.c4
-rw-r--r--sysdeps/wordsize-64/strtoumax.c4
-rw-r--r--sysdeps/wordsize-64/tst-writev.c7
-rw-r--r--sysdeps/wordsize-64/wcstoimax.c4
-rw-r--r--sysdeps/wordsize-64/wcstoumax.c4
-rw-r--r--sysdeps/x86/Makefile51
-rw-r--r--sysdeps/x86/__longjmp_cancel.S4
-rw-r--r--sysdeps/x86/atomic-machine.h571
-rw-r--r--sysdeps/x86/bits/endian.h7
-rw-r--r--sysdeps/x86/bits/endianness.h11
-rw-r--r--sysdeps/x86/bits/floatn.h4
-rw-r--r--sysdeps/x86/bits/flt-eval-method.h4
-rw-r--r--sysdeps/x86/bits/fp-logb.h4
-rw-r--r--sysdeps/x86/bits/indirect-return.h4
-rw-r--r--sysdeps/x86/bits/link.h4
-rw-r--r--sysdeps/x86/bits/select.h4
-rw-r--r--sysdeps/x86/bits/semaphore.h4
-rw-r--r--sysdeps/x86/bits/setjmp.h4
-rw-r--r--sysdeps/x86/bits/xtitypes.h33
-rw-r--r--sysdeps/x86/cacheinfo.c24
-rw-r--r--sysdeps/x86/cet-tunables.h4
-rw-r--r--sysdeps/x86/check-cet.awk4
-rw-r--r--sysdeps/x86/cpu-features-offsets.sym20
-rw-r--r--sysdeps/x86/cpu-features.c180
-rw-r--r--sysdeps/x86/cpu-features.h1108
-rw-r--r--sysdeps/x86/cpu-tunables.c8
-rw-r--r--sysdeps/x86/dl-cet.c6
-rw-r--r--sysdeps/x86/dl-get-cpu-features.c4
-rw-r--r--sysdeps/x86/dl-hwcap.h4
-rw-r--r--sysdeps/x86/dl-lookupcfg.h31
-rw-r--r--sysdeps/x86/dl-procinfo.c4
-rw-r--r--sysdeps/x86/dl-procinfo.h4
-rw-r--r--sysdeps/x86/dl-procruntime.c4
-rw-r--r--sysdeps/x86/dl-prop.h58
-rw-r--r--sysdeps/x86/dl-tunables.list6
-rw-r--r--sysdeps/x86/elide.h4
-rw-r--r--sysdeps/x86/fpu/bits/fenv.h6
-rw-r--r--sysdeps/x86/fpu/bits/math-vector.h4
-rw-r--r--sysdeps/x86/fpu/bits/mathinline.h328
-rw-r--r--sysdeps/x86/fpu/e_sqrtf128.c4
-rw-r--r--sysdeps/x86/fpu/fenv_private.h497
-rw-r--r--sysdeps/x86/fpu/finclude/math-vector-fortran.h43
-rw-r--r--sysdeps/x86/fpu/fix-fp-int-compare-invalid.h4
-rw-r--r--sysdeps/x86/fpu/include/bits/fenv.h4
-rw-r--r--sysdeps/x86/fpu/math-barriers.h4
-rw-r--r--sysdeps/x86/fpu/math_private.h32
-rw-r--r--sysdeps/x86/fpu/powl_helper.c6
-rw-r--r--sysdeps/x86/fpu/s_sincosf_data.c68
-rw-r--r--sysdeps/x86/fpu/sfp-machine.h2
-rw-r--r--sysdeps/x86/fpu/sincosf_poly.h111
-rw-r--r--sysdeps/x86/fpu/test-fenv-clear-sse.c4
-rw-r--r--sysdeps/x86/fpu/test-fenv-sse-2.c4
-rw-r--r--sysdeps/x86/fpu/test-fenv-sse.c4
-rw-r--r--sysdeps/x86/fpu/test-fenv-x87.c4
-rw-r--r--sysdeps/x86/fpu/test-math-vector-sincos.h4
-rw-r--r--sysdeps/x86/fpu_control.h4
-rw-r--r--sysdeps/x86/hp-timing.h61
-rw-r--r--sysdeps/x86/init-arch.h5
-rw-r--r--sysdeps/x86/ldsodefs.h4
-rw-r--r--sysdeps/x86/libc-start.c4
-rw-r--r--sysdeps/x86/libc-start.h4
-rw-r--r--sysdeps/x86/link_map.h13
-rw-r--r--sysdeps/x86/longjmp.c4
-rw-r--r--sysdeps/x86/math-tests.h25
-rw-r--r--sysdeps/x86/nptl/bits/pthreadtypes-arch.h52
-rw-r--r--sysdeps/x86/nptl/bits/struct_mutex.h63
-rw-r--r--sysdeps/x86/nptl/bits/struct_rwlock.h65
-rw-r--r--sysdeps/x86/nptl/pt-longjmp.c4
-rw-r--r--sysdeps/x86/nptl/tls-setup.h4
-rw-r--r--sysdeps/x86/string_private.h4
-rw-r--r--sysdeps/x86/sysdep.h13
-rw-r--r--sysdeps/x86/tst-cet-legacy-1.c4
-rw-r--r--sysdeps/x86/tst-cet-legacy-1a.c81
-rw-r--r--sysdeps/x86/tst-cet-legacy-2.c4
-rw-r--r--sysdeps/x86/tst-cet-legacy-3.c4
-rw-r--r--sysdeps/x86/tst-cet-legacy-4.c4
-rw-r--r--sysdeps/x86/tst-cet-legacy-5.c76
-rw-r--r--sysdeps/x86/tst-cet-legacy-5a.c1
-rw-r--r--sysdeps/x86/tst-cet-legacy-5b.c1
-rw-r--r--sysdeps/x86/tst-cet-legacy-6.c76
-rw-r--r--sysdeps/x86/tst-cet-legacy-6a.c1
-rw-r--r--sysdeps/x86/tst-cet-legacy-6b.c1
-rw-r--r--sysdeps/x86/tst-cet-legacy-mod-1.c4
-rw-r--r--sysdeps/x86/tst-cet-legacy-mod-2.c4
-rw-r--r--sysdeps/x86/tst-cet-legacy-mod-5.c31
-rw-r--r--sysdeps/x86/tst-cet-legacy-mod-5a.c1
-rw-r--r--sysdeps/x86/tst-cet-legacy-mod-5b.c1
-rw-r--r--sysdeps/x86/tst-cet-legacy-mod-5c.c36
-rw-r--r--sysdeps/x86/tst-cet-legacy-mod-6.c31
-rw-r--r--sysdeps/x86/tst-cet-legacy-mod-6a.c1
-rw-r--r--sysdeps/x86/tst-cet-legacy-mod-6b.c1
-rw-r--r--sysdeps/x86/tst-cet-legacy-mod-6c.c36
-rw-r--r--sysdeps/x86/tst-cet-legacy-mod-6d.c1
-rw-r--r--sysdeps/x86/tst-get-cpu-features.c268
-rw-r--r--sysdeps/x86_64/Makefile4
-rw-r--r--sysdeps/x86_64/Versions3
-rw-r--r--sysdeps/x86_64/__longjmp.S4
-rw-r--r--sysdeps/x86_64/_mcount.S4
-rw-r--r--sysdeps/x86_64/add_n.S4
-rw-r--r--sysdeps/x86_64/addmul_1.S4
-rw-r--r--sysdeps/x86_64/atomic-machine.h482
-rw-r--r--sysdeps/x86_64/bsd-_setjmp.S4
-rw-r--r--sysdeps/x86_64/bsd-setjmp.S4
-rw-r--r--sysdeps/x86_64/configure22
-rw-r--r--sysdeps/x86_64/configure.ac9
-rw-r--r--sysdeps/x86_64/crti.S4
-rw-r--r--sysdeps/x86_64/crtn.S4
-rw-r--r--sysdeps/x86_64/dl-irel.h6
-rw-r--r--sysdeps/x86_64/dl-lookupcfg.h31
-rw-r--r--sysdeps/x86_64/dl-machine.h9
-rw-r--r--sysdeps/x86_64/dl-procinfo.c4
-rw-r--r--sysdeps/x86_64/dl-tls.c4
-rw-r--r--sysdeps/x86_64/dl-tls.h4
-rw-r--r--sysdeps/x86_64/dl-tlsdesc.S4
-rw-r--r--sysdeps/x86_64/dl-tlsdesc.h4
-rw-r--r--sysdeps/x86_64/dl-trampoline.S6
-rw-r--r--sysdeps/x86_64/dl-trampoline.h4
-rw-r--r--sysdeps/x86_64/ffs.c4
-rw-r--r--sysdeps/x86_64/ffsll.c4
-rw-r--r--sysdeps/x86_64/fpu/Makefile137
-rw-r--r--sysdeps/x86_64/fpu/e_powl.S4
-rw-r--r--sysdeps/x86_64/fpu/e_sqrt.c4
-rw-r--r--sysdeps/x86_64/fpu/e_sqrtf.c4
-rw-r--r--sysdeps/x86_64/fpu/fclrexcpt.c4
-rw-r--r--sysdeps/x86_64/fpu/fedisblxcpt.c4
-rw-r--r--sysdeps/x86_64/fpu/feenablxcpt.c4
-rw-r--r--sysdeps/x86_64/fpu/fegetenv.c4
-rw-r--r--sysdeps/x86_64/fpu/fegetexcept.c4
-rw-r--r--sysdeps/x86_64/fpu/fegetmode.c4
-rw-r--r--sysdeps/x86_64/fpu/fegetround.c4
-rw-r--r--sysdeps/x86_64/fpu/feholdexcpt.c4
-rw-r--r--sysdeps/x86_64/fpu/fesetenv.c4
-rw-r--r--sysdeps/x86_64/fpu/fesetexcept.c4
-rw-r--r--sysdeps/x86_64/fpu/fesetmode.c4
-rw-r--r--sysdeps/x86_64/fpu/fesetround.c4
-rw-r--r--sysdeps/x86_64/fpu/feupdateenv.c4
-rw-r--r--sysdeps/x86_64/fpu/fgetexcptflg.c4
-rw-r--r--sysdeps/x86_64/fpu/fraiseexcpt.c4
-rw-r--r--sysdeps/x86_64/fpu/fsetexcptflg.c4
-rw-r--r--sysdeps/x86_64/fpu/ftestexcept.c4
-rw-r--r--sysdeps/x86_64/fpu/libm-test-ulps106
-rw-r--r--sysdeps/x86_64/fpu/math-tests-arch.h4
-rw-r--r--sysdeps/x86_64/fpu/math-tests-snan.h34
-rw-r--r--sysdeps/x86_64/fpu/math_ldbl.h4
-rw-r--r--sysdeps/x86_64/fpu/math_private.h101
-rw-r--r--sysdeps/x86_64/fpu/multiarch/Makefile4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/e_asin.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/e_atan2.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/e_exp-avx.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/e_exp-fma.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/e_exp-fma4.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/e_exp.c8
-rw-r--r--sysdeps/x86_64/fpu/multiarch/e_exp2f.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/e_expf.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/e_log-avx.c3
-rw-r--r--sysdeps/x86_64/fpu/multiarch/e_log-fma.c3
-rw-r--r--sysdeps/x86_64/fpu/multiarch/e_log-fma4.c3
-rw-r--r--sysdeps/x86_64/fpu/multiarch/e_log.c8
-rw-r--r--sysdeps/x86_64/fpu/multiarch/e_log2f.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/e_logf.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/e_pow-fma.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/e_pow-fma4.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/e_pow.c8
-rw-r--r--sysdeps/x86_64/fpu/multiarch/e_powf.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/ifunc-avx-fma4.h4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/ifunc-fma.h4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/ifunc-fma4.h4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/ifunc-mathvec-avx2.h4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/ifunc-mathvec-avx512.h4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/ifunc-mathvec-sse4_1.h4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/ifunc-sse4_1.h4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_atan.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_ceil-c.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_ceil-sse4_1.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_ceil.c5
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_ceilf-sse4_1.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_ceilf.c5
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_cosf.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_floor-c.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_floor-sse4_1.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_floor.c5
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_floorf-sse4_1.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_floorf.c5
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_fma.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_fmaf.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_nearbyint-c.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_nearbyint-sse4_1.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_nearbyint.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_nearbyintf-sse4_1.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_nearbyintf.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_rint-c.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_rint-sse4_1.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_rint.c5
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_rintf-sse4_1.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_rintf.c5
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_sin.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_sincosf-fma.c240
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_sincosf-sse2.S2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_sincosf-sse2.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_sincosf.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_sinf.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_tan.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_trunc-c.c2
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_trunc-sse4_1.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_trunc.c5
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_truncf-sse4_1.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/s_truncf.c5
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_cos2_core-sse2.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_cos2_core.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_cos2_core_sse4.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_cos4_core-sse.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_cos4_core.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_cos4_core_avx2.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_cos8_core-avx2.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_cos8_core.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_cos8_core_avx512.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core-sse2.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core_sse4.S8
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core-sse.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core_avx2.S8
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core-avx2.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core_avx512.S12
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_log2_core-sse2.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_log2_core.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_log2_core_sse4.S8
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_log4_core-sse.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_log4_core.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_log4_core_avx2.S8
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_log8_core-avx2.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_log8_core.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_log8_core_avx512.S12
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core-sse2.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core_sse4.S8
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core-sse.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core_avx2.S8
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core-avx2.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core_avx512.S12
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_sin2_core-sse2.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_sin2_core.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_sin2_core_sse4.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_sin4_core-sse.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_sin4_core.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_sin4_core_avx2.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_sin8_core-avx2.S5
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_sin8_core.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_sin8_core_avx512.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_sincos2_core-sse2.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_sincos2_core.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_sincos2_core_sse4.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_sincos4_core-sse.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_sincos4_core.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_sincos4_core_avx2.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_sincos8_core-avx2.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_sincos8_core.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_d_sincos8_core_avx512.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_cosf16_core-avx2.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_cosf16_core.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_cosf16_core_avx512.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_cosf4_core-sse2.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_cosf4_core.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_cosf4_core_sse4.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_cosf8_core-sse.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_cosf8_core.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_cosf8_core_avx2.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_expf16_core-avx2.S5
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_expf16_core.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_expf16_core_avx512.S12
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_expf4_core-sse2.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_expf4_core.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_expf4_core_sse4.S8
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_expf8_core-sse.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_expf8_core.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_expf8_core_avx2.S8
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_logf16_core-avx2.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_logf16_core.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_logf16_core_avx512.S12
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_logf4_core-sse2.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_logf4_core.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_logf4_core_sse4.S8
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_logf8_core-sse.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_logf8_core.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_logf8_core_avx2.S8
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_powf16_core-avx2.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_powf16_core.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_powf16_core_avx512.S12
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_powf4_core-sse2.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_powf4_core.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_powf4_core_sse4.S8
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_powf8_core-sse.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_powf8_core.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_powf8_core_avx2.S8
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_sincosf16_core-avx2.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_sincosf16_core.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_sincosf16_core_avx512.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_sincosf4_core-sse2.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_sincosf4_core.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_sincosf4_core_sse4.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_sincosf8_core-sse.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_sincosf8_core.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_sincosf8_core_avx2.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_sinf16_core-avx2.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_sinf16_core.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_sinf16_core_avx512.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_sinf4_core-sse2.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_sinf4_core.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_sinf4_core_sse4.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_sinf8_core-sse.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_sinf8_core.c4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/svml_s_sinf8_core_avx2.S4
-rw-r--r--sysdeps/x86_64/fpu/multiarch/w_exp.c1
-rw-r--r--sysdeps/x86_64/fpu/multiarch/w_log.c1
-rw-r--r--sysdeps/x86_64/fpu/multiarch/w_pow.c1
-rw-r--r--sysdeps/x86_64/fpu/printf_fphex.c4
-rw-r--r--sysdeps/x86_64/fpu/s_copysign.S4
-rw-r--r--sysdeps/x86_64/fpu/s_copysignf.S4
-rw-r--r--sysdeps/x86_64/fpu/s_fabs.c4
-rw-r--r--sysdeps/x86_64/fpu/s_fabsf.c4
-rw-r--r--sysdeps/x86_64/fpu/s_fabsl.S4
-rw-r--r--sysdeps/x86_64/fpu/s_fmax.S4
-rw-r--r--sysdeps/x86_64/fpu/s_fmaxf.S4
-rw-r--r--sysdeps/x86_64/fpu/s_fmaxl.S4
-rw-r--r--sysdeps/x86_64/fpu/s_fmin.S4
-rw-r--r--sysdeps/x86_64/fpu/s_fminf.S4
-rw-r--r--sysdeps/x86_64/fpu/s_fminl.S4
-rw-r--r--sysdeps/x86_64/fpu/s_llrint.S4
-rw-r--r--sysdeps/x86_64/fpu/s_llrintf.S4
-rw-r--r--sysdeps/x86_64/fpu/s_llrintl.S4
-rw-r--r--sysdeps/x86_64/fpu/s_signbit.S4
-rw-r--r--sysdeps/x86_64/fpu/s_signbitf.S4
-rw-r--r--sysdeps/x86_64/fpu/s_sincosf.S566
-rw-r--r--sysdeps/x86_64/fpu/s_truncl.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_d_cos2_core.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_d_cos4_core.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_d_cos4_core_avx.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_d_cos8_core.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_d_exp2_core.S6
-rw-r--r--sysdeps/x86_64/fpu/svml_d_exp4_core.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_d_exp4_core_avx.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_d_exp8_core.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_d_exp_data.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_d_exp_data.h4
-rw-r--r--sysdeps/x86_64/fpu/svml_d_log2_core.S6
-rw-r--r--sysdeps/x86_64/fpu/svml_d_log4_core.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_d_log4_core_avx.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_d_log8_core.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_d_log_data.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_d_log_data.h4
-rw-r--r--sysdeps/x86_64/fpu/svml_d_pow2_core.S6
-rw-r--r--sysdeps/x86_64/fpu/svml_d_pow4_core.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_d_pow4_core_avx.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_d_pow8_core.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_d_pow_data.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_d_pow_data.h4
-rw-r--r--sysdeps/x86_64/fpu/svml_d_sin2_core.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_d_sin4_core.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_d_sin4_core_avx.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_d_sin8_core.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_d_sincos2_core.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_d_sincos4_core.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_d_sincos4_core_avx.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_d_sincos8_core.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_d_trig_data.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_d_trig_data.h4
-rw-r--r--sysdeps/x86_64/fpu/svml_d_wrapper_impl.h4
-rw-r--r--sysdeps/x86_64/fpu/svml_finite_alias.S58
-rw-r--r--sysdeps/x86_64/fpu/svml_s_cosf16_core.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_s_cosf4_core.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_s_cosf8_core.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_s_cosf8_core_avx.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_s_expf16_core.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_s_expf4_core.S6
-rw-r--r--sysdeps/x86_64/fpu/svml_s_expf8_core.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_s_expf8_core_avx.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_s_expf_data.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_s_expf_data.h4
-rw-r--r--sysdeps/x86_64/fpu/svml_s_logf16_core.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_s_logf4_core.S6
-rw-r--r--sysdeps/x86_64/fpu/svml_s_logf8_core.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_s_logf8_core_avx.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_s_logf_data.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_s_logf_data.h4
-rw-r--r--sysdeps/x86_64/fpu/svml_s_powf16_core.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_s_powf4_core.S6
-rw-r--r--sysdeps/x86_64/fpu/svml_s_powf8_core.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_s_powf8_core_avx.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_s_powf_data.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_s_powf_data.h4
-rw-r--r--sysdeps/x86_64/fpu/svml_s_sincosf16_core.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_s_sincosf4_core.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_s_sincosf8_core.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_s_sincosf8_core_avx.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_s_sinf16_core.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_s_sinf4_core.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_s_sinf8_core.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_s_sinf8_core_avx.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_s_trig_data.S4
-rw-r--r--sysdeps/x86_64/fpu/svml_s_trig_data.h4
-rw-r--r--sysdeps/x86_64/fpu/svml_s_wrapper_impl.h4
-rw-r--r--sysdeps/x86_64/fpu/test-double-libmvec-alias-avx-main.c1
-rw-r--r--sysdeps/x86_64/fpu/test-double-libmvec-alias-avx-mod.c1
-rw-r--r--sysdeps/x86_64/fpu/test-double-libmvec-alias-avx.c1
-rw-r--r--sysdeps/x86_64/fpu/test-double-libmvec-alias-avx2-main.c1
-rw-r--r--sysdeps/x86_64/fpu/test-double-libmvec-alias-avx2-mod.c1
-rw-r--r--sysdeps/x86_64/fpu/test-double-libmvec-alias-avx2.c1
-rw-r--r--sysdeps/x86_64/fpu/test-double-libmvec-alias-avx512-main.c1
-rw-r--r--sysdeps/x86_64/fpu/test-double-libmvec-alias-avx512-mod.c1
-rw-r--r--sysdeps/x86_64/fpu/test-double-libmvec-alias-avx512.c1
-rw-r--r--sysdeps/x86_64/fpu/test-double-libmvec-alias-main.c1
-rw-r--r--sysdeps/x86_64/fpu/test-double-libmvec-alias-mod.c25
-rw-r--r--sysdeps/x86_64/fpu/test-double-libmvec-alias.c29
-rw-r--r--sysdeps/x86_64/fpu/test-double-libmvec-sincos-main.c4
-rw-r--r--sysdeps/x86_64/fpu/test-double-libmvec-sincos.c4
-rw-r--r--sysdeps/x86_64/fpu/test-double-vlen2-wrappers.c4
-rw-r--r--sysdeps/x86_64/fpu/test-double-vlen4-avx2-wrappers.c4
-rw-r--r--sysdeps/x86_64/fpu/test-double-vlen4-avx2.h4
-rw-r--r--sysdeps/x86_64/fpu/test-double-vlen4-wrappers.c4
-rw-r--r--sysdeps/x86_64/fpu/test-double-vlen4.h4
-rw-r--r--sysdeps/x86_64/fpu/test-double-vlen8-wrappers.c4
-rw-r--r--sysdeps/x86_64/fpu/test-double-vlen8.h4
-rw-r--r--sysdeps/x86_64/fpu/test-float-libmvec-alias-avx-main.c1
-rw-r--r--sysdeps/x86_64/fpu/test-float-libmvec-alias-avx-mod.c1
-rw-r--r--sysdeps/x86_64/fpu/test-float-libmvec-alias-avx.c1
-rw-r--r--sysdeps/x86_64/fpu/test-float-libmvec-alias-avx2-main.c1
-rw-r--r--sysdeps/x86_64/fpu/test-float-libmvec-alias-avx2-mod.c1
-rw-r--r--sysdeps/x86_64/fpu/test-float-libmvec-alias-avx2.c1
-rw-r--r--sysdeps/x86_64/fpu/test-float-libmvec-alias-avx512-main.c1
-rw-r--r--sysdeps/x86_64/fpu/test-float-libmvec-alias-avx512-mod.c1
-rw-r--r--sysdeps/x86_64/fpu/test-float-libmvec-alias-avx512.c1
-rw-r--r--sysdeps/x86_64/fpu/test-float-libmvec-alias-main.c1
-rw-r--r--sysdeps/x86_64/fpu/test-float-libmvec-alias-mod.c25
-rw-r--r--sysdeps/x86_64/fpu/test-float-libmvec-alias.c29
-rw-r--r--sysdeps/x86_64/fpu/test-float-libmvec-sincosf-main.c4
-rw-r--r--sysdeps/x86_64/fpu/test-float-libmvec-sincosf.c4
-rw-r--r--sysdeps/x86_64/fpu/test-float-vlen16-wrappers.c4
-rw-r--r--sysdeps/x86_64/fpu/test-float-vlen16.h4
-rw-r--r--sysdeps/x86_64/fpu/test-float-vlen4-wrappers.c4
-rw-r--r--sysdeps/x86_64/fpu/test-float-vlen8-avx2-wrappers.c4
-rw-r--r--sysdeps/x86_64/fpu/test-float-vlen8-avx2.h4
-rw-r--r--sysdeps/x86_64/fpu/test-float-vlen8-wrappers.c4
-rw-r--r--sysdeps/x86_64/fpu/test-float-vlen8.h4
-rw-r--r--sysdeps/x86_64/fpu/test-libmvec-alias-mod.c66
-rw-r--r--sysdeps/x86_64/fpu/x86_64-math-asm.h4
-rw-r--r--sysdeps/x86_64/hp-timing.h40
-rw-r--r--sysdeps/x86_64/htonl.S4
-rw-r--r--sysdeps/x86_64/ifuncmain8.c4
-rw-r--r--sysdeps/x86_64/ifuncmod8.c4
-rw-r--r--sysdeps/x86_64/isa.h24
-rw-r--r--sysdeps/x86_64/jmpbuf-offsets.h4
-rw-r--r--sysdeps/x86_64/jmpbuf-unwind.h4
-rw-r--r--sysdeps/x86_64/lshift.S4
-rw-r--r--sysdeps/x86_64/machine-gmon.h4
-rw-r--r--sysdeps/x86_64/memchr.S14
-rw-r--r--sysdeps/x86_64/memcmp.S24
-rw-r--r--sysdeps/x86_64/memcopy.h1
-rw-r--r--sysdeps/x86_64/memcpy_chk.S4
-rw-r--r--sysdeps/x86_64/memmove.S4
-rw-r--r--sysdeps/x86_64/memmove_chk.S4
-rw-r--r--sysdeps/x86_64/mempcpy_chk.S4
-rw-r--r--sysdeps/x86_64/memrchr.S8
-rw-r--r--sysdeps/x86_64/memset.S4
-rw-r--r--sysdeps/x86_64/memset_chk.S4
-rw-r--r--sysdeps/x86_64/memusage.h4
-rw-r--r--sysdeps/x86_64/mul_1.S4
-rw-r--r--sysdeps/x86_64/multiarch/Makefile3
-rw-r--r--sysdeps/x86_64/multiarch/ifunc-avx2.h4
-rw-r--r--sysdeps/x86_64/multiarch/ifunc-impl-list.c16
-rw-r--r--sysdeps/x86_64/multiarch/ifunc-memcmp.h4
-rw-r--r--sysdeps/x86_64/multiarch/ifunc-memmove.h4
-rw-r--r--sysdeps/x86_64/multiarch/ifunc-memset.h4
-rw-r--r--sysdeps/x86_64/multiarch/ifunc-sse4_2.h4
-rw-r--r--sysdeps/x86_64/multiarch/ifunc-strcasecmp.h4
-rw-r--r--sysdeps/x86_64/multiarch/ifunc-strcpy.h46
-rw-r--r--sysdeps/x86_64/multiarch/ifunc-unaligned-ssse3.h40
-rw-r--r--sysdeps/x86_64/multiarch/ifunc-wmemset.h4
-rw-r--r--sysdeps/x86_64/multiarch/memchr-avx2.S12
-rw-r--r--sysdeps/x86_64/multiarch/memchr-sse2.S4
-rw-r--r--sysdeps/x86_64/multiarch/memchr.c6
-rw-r--r--sysdeps/x86_64/multiarch/memcmp-avx2-movbe.S11
-rw-r--r--sysdeps/x86_64/multiarch/memcmp-sse2.S4
-rw-r--r--sysdeps/x86_64/multiarch/memcmp-sse4.S13
-rw-r--r--sysdeps/x86_64/multiarch/memcmp-ssse3.S11
-rw-r--r--sysdeps/x86_64/multiarch/memcmp.c6
-rw-r--r--sysdeps/x86_64/multiarch/memcpy-ssse3-back.S21
-rw-r--r--sysdeps/x86_64/multiarch/memcpy-ssse3.S21
-rw-r--r--sysdeps/x86_64/multiarch/memcpy.c4
-rw-r--r--sysdeps/x86_64/multiarch/memcpy_chk-nonshared.S4
-rw-r--r--sysdeps/x86_64/multiarch/memcpy_chk.c4
-rw-r--r--sysdeps/x86_64/multiarch/memmove-avx512-no-vzeroupper.S20
-rw-r--r--sysdeps/x86_64/multiarch/memmove-sse2-unaligned-erms.S4
-rw-r--r--sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S58
-rw-r--r--sysdeps/x86_64/multiarch/memmove.c4
-rw-r--r--sysdeps/x86_64/multiarch/memmove_chk-nonshared.S4
-rw-r--r--sysdeps/x86_64/multiarch/memmove_chk.c4
-rw-r--r--sysdeps/x86_64/multiarch/mempcpy.c8
-rw-r--r--sysdeps/x86_64/multiarch/mempcpy_chk-nonshared.S4
-rw-r--r--sysdeps/x86_64/multiarch/mempcpy_chk.c4
-rw-r--r--sysdeps/x86_64/multiarch/memrchr-avx2.S8
-rw-r--r--sysdeps/x86_64/multiarch/memrchr-sse2.S4
-rw-r--r--sysdeps/x86_64/multiarch/memrchr.c4
-rw-r--r--sysdeps/x86_64/multiarch/memset-avx512-no-vzeroupper.S10
-rw-r--r--sysdeps/x86_64/multiarch/memset-sse2-unaligned-erms.S5
-rw-r--r--sysdeps/x86_64/multiarch/memset-vec-unaligned-erms.S38
-rw-r--r--sysdeps/x86_64/multiarch/memset.c6
-rw-r--r--sysdeps/x86_64/multiarch/memset_chk-nonshared.S4
-rw-r--r--sysdeps/x86_64/multiarch/memset_chk.c4
-rw-r--r--sysdeps/x86_64/multiarch/rawmemchr-sse2.S4
-rw-r--r--sysdeps/x86_64/multiarch/rawmemchr.c4
-rw-r--r--sysdeps/x86_64/multiarch/sched_cpucount.c6
-rw-r--r--sysdeps/x86_64/multiarch/stpcpy-avx2.S3
-rw-r--r--sysdeps/x86_64/multiarch/stpcpy-sse2.S4
-rw-r--r--sysdeps/x86_64/multiarch/stpcpy.c10
-rw-r--r--sysdeps/x86_64/multiarch/stpncpy-avx2.S4
-rw-r--r--sysdeps/x86_64/multiarch/stpncpy.c6
-rw-r--r--sysdeps/x86_64/multiarch/strcasecmp.c4
-rw-r--r--sysdeps/x86_64/multiarch/strcasecmp_l-avx.S4
-rw-r--r--sysdeps/x86_64/multiarch/strcasecmp_l-sse2.S4
-rw-r--r--sysdeps/x86_64/multiarch/strcasecmp_l-sse4_2.S4
-rw-r--r--sysdeps/x86_64/multiarch/strcasecmp_l.c4
-rw-r--r--sysdeps/x86_64/multiarch/strcat-avx2.S275
-rw-r--r--sysdeps/x86_64/multiarch/strcat-sse2-unaligned.S4
-rw-r--r--sysdeps/x86_64/multiarch/strcat-sse2.S4
-rw-r--r--sysdeps/x86_64/multiarch/strcat-ssse3.S4
-rw-r--r--sysdeps/x86_64/multiarch/strcat.c8
-rw-r--r--sysdeps/x86_64/multiarch/strchr-avx2.S4
-rw-r--r--sysdeps/x86_64/multiarch/strchr-sse2-no-bsf.S4
-rw-r--r--sysdeps/x86_64/multiarch/strchr-sse2.S4
-rw-r--r--sysdeps/x86_64/multiarch/strchr.c6
-rw-r--r--sysdeps/x86_64/multiarch/strchrnul-sse2.S4
-rw-r--r--sysdeps/x86_64/multiarch/strchrnul.c4
-rw-r--r--sysdeps/x86_64/multiarch/strcmp-avx2.S10
-rw-r--r--sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S4
-rw-r--r--sysdeps/x86_64/multiarch/strcmp-sse2.S4
-rw-r--r--sysdeps/x86_64/multiarch/strcmp-sse42.S10
-rw-r--r--sysdeps/x86_64/multiarch/strcmp-sse4_2.S4
-rw-r--r--sysdeps/x86_64/multiarch/strcmp.c6
-rw-r--r--sysdeps/x86_64/multiarch/strcpy-avx2.S1022
-rw-r--r--sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S8
-rw-r--r--sysdeps/x86_64/multiarch/strcpy-sse2.S4
-rw-r--r--sysdeps/x86_64/multiarch/strcpy-ssse3.S10
-rw-r--r--sysdeps/x86_64/multiarch/strcpy.c8
-rw-r--r--sysdeps/x86_64/multiarch/strcspn-c.c4
-rw-r--r--sysdeps/x86_64/multiarch/strcspn-sse2.S4
-rw-r--r--sysdeps/x86_64/multiarch/strcspn.c6
-rw-r--r--sysdeps/x86_64/multiarch/strlen-avx2.S13
-rw-r--r--sysdeps/x86_64/multiarch/strlen-sse2.S4
-rw-r--r--sysdeps/x86_64/multiarch/strlen.c6
-rw-r--r--sysdeps/x86_64/multiarch/strncase.c4
-rw-r--r--sysdeps/x86_64/multiarch/strncase_l-avx.S4
-rw-r--r--sysdeps/x86_64/multiarch/strncase_l-sse2.S4
-rw-r--r--sysdeps/x86_64/multiarch/strncase_l-sse4_2.S4
-rw-r--r--sysdeps/x86_64/multiarch/strncase_l.c4
-rw-r--r--sysdeps/x86_64/multiarch/strncat-avx2.S3
-rw-r--r--sysdeps/x86_64/multiarch/strncat.c8
-rw-r--r--sysdeps/x86_64/multiarch/strncmp-sse2.S4
-rw-r--r--sysdeps/x86_64/multiarch/strncmp-sse4_2.S4
-rw-r--r--sysdeps/x86_64/multiarch/strncmp-ssse3.S4
-rw-r--r--sysdeps/x86_64/multiarch/strncmp.c6
-rw-r--r--sysdeps/x86_64/multiarch/strncpy-avx2.S3
-rw-r--r--sysdeps/x86_64/multiarch/strncpy.c8
-rw-r--r--sysdeps/x86_64/multiarch/strnlen-sse2.S4
-rw-r--r--sysdeps/x86_64/multiarch/strnlen.c8
-rw-r--r--sysdeps/x86_64/multiarch/strpbrk-sse2.S4
-rw-r--r--sysdeps/x86_64/multiarch/strpbrk.c6
-rw-r--r--sysdeps/x86_64/multiarch/strrchr-avx2.S4
-rw-r--r--sysdeps/x86_64/multiarch/strrchr-sse2.S4
-rw-r--r--sysdeps/x86_64/multiarch/strrchr.c6
-rw-r--r--sysdeps/x86_64/multiarch/strspn-c.c4
-rw-r--r--sysdeps/x86_64/multiarch/strspn-sse2.S4
-rw-r--r--sysdeps/x86_64/multiarch/strspn.c6
-rw-r--r--sysdeps/x86_64/multiarch/strstr-sse2-unaligned.S4
-rw-r--r--sysdeps/x86_64/multiarch/strstr.c4
-rw-r--r--sysdeps/x86_64/multiarch/test-multiarch.c8
-rw-r--r--sysdeps/x86_64/multiarch/varshift.c4
-rw-r--r--sysdeps/x86_64/multiarch/varshift.h4
-rw-r--r--sysdeps/x86_64/multiarch/wcschr-sse2.S4
-rw-r--r--sysdeps/x86_64/multiarch/wcschr.c4
-rw-r--r--sysdeps/x86_64/multiarch/wcscmp-sse2.S4
-rw-r--r--sysdeps/x86_64/multiarch/wcscmp.c4
-rw-r--r--sysdeps/x86_64/multiarch/wcscpy-c.c4
-rw-r--r--sysdeps/x86_64/multiarch/wcscpy-ssse3.S4
-rw-r--r--sysdeps/x86_64/multiarch/wcscpy.c15
-rw-r--r--sysdeps/x86_64/multiarch/wcslen-sse2.S4
-rw-r--r--sysdeps/x86_64/multiarch/wcslen.c4
-rw-r--r--sysdeps/x86_64/multiarch/wcsncmp-sse2.c4
-rw-r--r--sysdeps/x86_64/multiarch/wcsncmp.c4
-rw-r--r--sysdeps/x86_64/multiarch/wcsnlen.c4
-rw-r--r--sysdeps/x86_64/multiarch/wcsrchr-sse2.S4
-rw-r--r--sysdeps/x86_64/multiarch/wcsrchr.c4
-rw-r--r--sysdeps/x86_64/multiarch/wmemchr.c4
-rw-r--r--sysdeps/x86_64/multiarch/wmemcmp.c7
-rw-r--r--sysdeps/x86_64/multiarch/wmemset.c4
-rw-r--r--sysdeps/x86_64/multiarch/wmemset_chk-nonshared.S4
-rw-r--r--sysdeps/x86_64/multiarch/wmemset_chk.c4
-rw-r--r--sysdeps/x86_64/nptl/Makefile4
-rw-r--r--sysdeps/x86_64/nptl/pthread-offsets.h10
-rw-r--r--sysdeps/x86_64/nptl/pthread_spin_lock.S4
-rw-r--r--sysdeps/x86_64/nptl/pthread_spin_trylock.S4
-rw-r--r--sysdeps/x86_64/nptl/pthread_spin_unlock.S4
-rw-r--r--sysdeps/x86_64/nptl/pthreaddef.h4
-rw-r--r--sysdeps/x86_64/nptl/tls.h41
-rw-r--r--sysdeps/x86_64/rawmemchr.S4
-rw-r--r--sysdeps/x86_64/rshift.S4
-rw-r--r--sysdeps/x86_64/sched_cpucount.c4
-rw-r--r--sysdeps/x86_64/setjmp.S4
-rw-r--r--sysdeps/x86_64/stackinfo.h4
-rw-r--r--sysdeps/x86_64/start.S4
-rw-r--r--sysdeps/x86_64/strcat.S4
-rw-r--r--sysdeps/x86_64/strchr.S4
-rw-r--r--sysdeps/x86_64/strchrnul.S4
-rw-r--r--sysdeps/x86_64/strcmp.S10
-rw-r--r--sysdeps/x86_64/strcpy.S4
-rw-r--r--sysdeps/x86_64/strcspn.S4
-rw-r--r--sysdeps/x86_64/strlen.S16
-rw-r--r--sysdeps/x86_64/strrchr.S4
-rw-r--r--sysdeps/x86_64/strspn.S4
-rw-r--r--sysdeps/x86_64/sub_n.S4
-rw-r--r--sysdeps/x86_64/submul_1.S4
-rw-r--r--sysdeps/x86_64/sysdep.h4
-rw-r--r--sysdeps/x86_64/tls_get_addr.S4
-rw-r--r--sysdeps/x86_64/tlsdesc.c4
-rw-r--r--sysdeps/x86_64/tst-audit.h4
-rw-r--r--sysdeps/x86_64/tst-audit10-aux.c4
-rw-r--r--sysdeps/x86_64/tst-audit10.c4
-rw-r--r--sysdeps/x86_64/tst-audit4-aux.c4
-rw-r--r--sysdeps/x86_64/tst-audit4.c4
-rw-r--r--sysdeps/x86_64/tst-auditmod10a.c4
-rw-r--r--sysdeps/x86_64/tst-auditmod10b.c4
-rw-r--r--sysdeps/x86_64/tst-avx-aux.c4
-rw-r--r--sysdeps/x86_64/tst-avx.c4
-rw-r--r--sysdeps/x86_64/tst-avx512-aux.c4
-rw-r--r--sysdeps/x86_64/tst-avx512.c4
-rw-r--r--sysdeps/x86_64/tst-mallocalign1.c4
-rw-r--r--sysdeps/x86_64/tst-platform-1.c4
-rw-r--r--sysdeps/x86_64/tst-platformmod-1.c4
-rw-r--r--sysdeps/x86_64/tst-platformmod-2.c4
-rw-r--r--sysdeps/x86_64/tst-quad1.c4
-rw-r--r--sysdeps/x86_64/tst-quadmod1.S4
-rw-r--r--sysdeps/x86_64/tst-quadmod2.S4
-rw-r--r--sysdeps/x86_64/tst-sse.c4
-rw-r--r--sysdeps/x86_64/tst-stack-align.h4
-rw-r--r--sysdeps/x86_64/tst-x86_64-1.c4
-rw-r--r--sysdeps/x86_64/tst-x86_64mod-1.c4
-rw-r--r--sysdeps/x86_64/wcschr.S4
-rw-r--r--sysdeps/x86_64/wcscmp.S4
-rw-r--r--sysdeps/x86_64/wcslen.S4
-rw-r--r--sysdeps/x86_64/wcsrchr.S4
-rw-r--r--sysdeps/x86_64/wmemset_chk.S4
-rw-r--r--sysdeps/x86_64/x32/Makefile12
-rw-r--r--sysdeps/x86_64/x32/dl-machine.h4
-rw-r--r--sysdeps/x86_64/x32/fpu/s_lrint.S4
-rw-r--r--sysdeps/x86_64/x32/fpu/s_lrintf.S4
-rw-r--r--sysdeps/x86_64/x32/fpu/s_lrintl.S4
-rw-r--r--sysdeps/x86_64/x32/gmp-mparam.h4
-rw-r--r--sysdeps/x86_64/x32/sysdep.h4
-rw-r--r--sysdeps/x86_64/x32/test-size_t.h35
-rw-r--r--sysdeps/x86_64/x32/tst-size_t-memchr.c72
-rw-r--r--sysdeps/x86_64/x32/tst-size_t-memcmp-2.c79
-rw-r--r--sysdeps/x86_64/x32/tst-size_t-memcmp.c76
-rw-r--r--sysdeps/x86_64/x32/tst-size_t-memcpy.c58
-rw-r--r--sysdeps/x86_64/x32/tst-size_t-memrchr.c57
-rw-r--r--sysdeps/x86_64/x32/tst-size_t-memset.c73
-rw-r--r--sysdeps/x86_64/x32/tst-size_t-strncasecmp.c59
-rw-r--r--sysdeps/x86_64/x32/tst-size_t-strncmp.c78
-rw-r--r--sysdeps/x86_64/x32/tst-size_t-strncpy.c58
-rw-r--r--sysdeps/x86_64/x32/tst-size_t-strnlen.c72
-rw-r--r--sysdeps/x86_64/x32/tst-size_t-wcsncmp.c20
-rw-r--r--sysdeps/x86_64/x32/tst-size_t-wcsnlen.c20
-rw-r--r--sysdeps/x86_64/x32/tst-size_t-wmemchr.c20
-rw-r--r--sysdeps/x86_64/x32/tst-size_t-wmemcmp.c20
-rw-r--r--sysdeps/x86_64/x32/tst-size_t-wmemset.c20
-rw-r--r--sysvipc/Makefile4
-rw-r--r--sysvipc/ftok.c4
-rw-r--r--sysvipc/msgctl.c4
-rw-r--r--sysvipc/msgget.c4
-rw-r--r--sysvipc/msgrcv.c4
-rw-r--r--sysvipc/msgsnd.c4
-rw-r--r--sysvipc/semctl.c4
-rw-r--r--sysvipc/semget.c4
-rw-r--r--sysvipc/semop.c4
-rw-r--r--sysvipc/semtimedop.c9
-rw-r--r--sysvipc/shmat.c4
-rw-r--r--sysvipc/shmctl.c4
-rw-r--r--sysvipc/shmdt.c4
-rw-r--r--sysvipc/shmget.c4
-rw-r--r--sysvipc/sys/ipc.h4
-rw-r--r--sysvipc/sys/msg.h4
-rw-r--r--sysvipc/sys/sem.h4
-rw-r--r--sysvipc/sys/shm.h4
-rw-r--r--sysvipc/test-sysvmsg.c4
-rw-r--r--sysvipc/test-sysvsem.c4
-rw-r--r--sysvipc/test-sysvshm.c4
-rw-r--r--termios/Makefile4
-rw-r--r--termios/cfmakeraw.c4
-rw-r--r--termios/cfsetspeed.c4
-rw-r--r--termios/speed.c4
-rw-r--r--termios/tcdrain.c4
-rw-r--r--termios/tcflow.c4
-rw-r--r--termios/tcflush.c4
-rw-r--r--termios/tcgetattr.c4
-rw-r--r--termios/tcgetpgrp.c4
-rw-r--r--termios/tcgetsid.c4
-rw-r--r--termios/tcsendbrk.c4
-rw-r--r--termios/tcsetattr.c10
-rw-r--r--termios/tcsetpgrp.c4
-rw-r--r--termios/termios.h4
-rw-r--r--test-skeleton.c4
-rw-r--r--time/Makefile25
-rw-r--r--time/Versions13
-rw-r--r--time/adjtime.c4
-rw-r--r--time/alt_digit.c8
-rw-r--r--time/asctime.c12
-rw-r--r--time/bits/types/struct_timespec.h13
-rw-r--r--time/bug-mktime4.c92
-rw-r--r--time/clock.c4
-rw-r--r--time/clock_getcpuclockid.c47
-rw-r--r--time/clock_getres.c39
-rw-r--r--time/clock_gettime.c40
-rw-r--r--time/clock_nanosleep.c45
-rw-r--r--time/clock_settime.c40
-rw-r--r--time/ctime.c23
-rw-r--r--time/ctime_r.c23
-rw-r--r--time/difftime.c37
-rw-r--r--time/dysize.c4
-rw-r--r--time/era.c4
-rw-r--r--time/ftime.c28
-rw-r--r--time/getdate.c6
-rw-r--r--time/getitimer.c4
-rw-r--r--time/gettimeofday.c36
-rw-r--r--time/gmtime.c40
-rw-r--r--time/lc-time-cleanup.c4
-rw-r--r--time/localtime.c37
-rw-r--r--time/mktime-internal.h79
-rw-r--r--time/mktime.c799
-rw-r--r--time/offtime.c16
-rw-r--r--time/setitimer.c4
-rw-r--r--time/settimeofday.c28
-rw-r--r--time/settimezone.c28
-rw-r--r--time/stime.c29
-rw-r--r--time/strftime.c4
-rw-r--r--time/strftime_l.c36
-rw-r--r--time/strptime.c4
-rw-r--r--time/strptime_l.c27
-rw-r--r--time/sys/time.h33
-rw-r--r--time/sys/timeb.h7
-rw-r--r--time/test_time.c6
-rw-r--r--time/time.c18
-rw-r--r--time/time.h18
-rw-r--r--time/timegm.c57
-rw-r--r--time/timespec_get.c18
-rw-r--r--time/tst-clock.c (renamed from rt/tst-clock.c)7
-rw-r--r--time/tst-clock2.c (renamed from rt/tst-clock2.c)0
-rw-r--r--time/tst-clock_nanosleep.c (renamed from rt/tst-clock_nanosleep.c)4
-rw-r--r--time/tst-cpuclock1.c (renamed from rt/tst-cpuclock1.c)5
-rw-r--r--time/tst-ftime.c12
-rw-r--r--time/tst-getdate.c4
-rw-r--r--time/tst-mktime2.c71
-rw-r--r--time/tst-strftime2.c196
-rw-r--r--time/tst-strftime3.c522
-rw-r--r--time/tst-strptime-whitespace.c4
-rw-r--r--time/tst-strptime.c4
-rw-r--r--time/tst-tzname.c4
-rw-r--r--time/tst-y2039.c4
-rw-r--r--time/tst_wcsftime.c2
-rw-r--r--time/tzfile.c174
-rw-r--r--time/tzset.c39
-rw-r--r--time/wcsftime.c4
-rw-r--r--time/wcsftime_l.c4
-rw-r--r--timezone/Makefile4
-rw-r--r--timezone/private.h236
-rw-r--r--timezone/tst-timezone.c4
-rw-r--r--timezone/tst-tzset.c8
-rw-r--r--timezone/tzfile.h6
-rwxr-xr-xtimezone/tzselect.ksh33
-rw-r--r--timezone/zdump.c133
-rw-r--r--timezone/zic.c528
-rw-r--r--version.h4
-rw-r--r--wcsmbs/Makefile11
-rw-r--r--wcsmbs/bits/wchar-ldbl.h11
-rw-r--r--wcsmbs/bits/wchar2.h4
-rw-r--r--wcsmbs/btowc.c4
-rw-r--r--wcsmbs/c16rtomb.c45
-rw-r--r--wcsmbs/c32rtomb.c32
-rw-r--r--wcsmbs/isoc99_fwscanf.c11
-rw-r--r--wcsmbs/isoc99_swscanf.c15
-rw-r--r--wcsmbs/isoc99_vfwscanf.c13
-rw-r--r--wcsmbs/isoc99_vswscanf.c19
-rw-r--r--wcsmbs/isoc99_vwscanf.c13
-rw-r--r--wcsmbs/isoc99_wscanf.c11
-rw-r--r--wcsmbs/mbrlen.c4
-rw-r--r--wcsmbs/mbrtoc16.c4
-rw-r--r--wcsmbs/mbrtoc32.c32
-rw-r--r--wcsmbs/mbrtowc.c9
-rw-r--r--wcsmbs/mbsinit.c4
-rw-r--r--wcsmbs/mbsnrtowcs.c4
-rw-r--r--wcsmbs/mbsrtowcs.c4
-rw-r--r--wcsmbs/mbsrtowcs_l.c4
-rw-r--r--wcsmbs/test-char-types.c4
-rw-r--r--wcsmbs/test-wcpcpy.c4
-rw-r--r--wcsmbs/test-wcpncpy.c4
-rw-r--r--wcsmbs/test-wcscat.c4
-rw-r--r--wcsmbs/test-wcschrnul.c4
-rw-r--r--wcsmbs/test-wcscspn.c4
-rw-r--r--wcsmbs/test-wcsncat.c4
-rw-r--r--wcsmbs/test-wcsncpy.c4
-rw-r--r--wcsmbs/test-wcsnlen.c4
-rw-r--r--wcsmbs/test-wcspbrk.c4
-rw-r--r--wcsmbs/test-wcsspn.c4
-rw-r--r--wcsmbs/test-wmemchr.c4
-rw-r--r--wcsmbs/test-wmemset.c4
-rw-r--r--wcsmbs/tst-btowc.c4
-rw-r--r--wcsmbs/tst-c16-surrogate.c89
-rw-r--r--wcsmbs/tst-c32-state.c44
-rw-r--r--wcsmbs/tst-mbrtowc.c4
-rw-r--r--wcsmbs/tst-mbsrtowcs.c4
-rw-r--r--wcsmbs/tst-wcpncpy.c4
-rw-r--r--wcsmbs/tst-wcrtomb.c4
-rw-r--r--wcsmbs/tst-wcsnlen.c4
-rw-r--r--wcsmbs/tst-wcstod-nan-locale.c4
-rw-r--r--wcsmbs/tst-wcstod-nan-sign.c4
-rw-r--r--wcsmbs/tst-wcstod-round.c4
-rw-r--r--wcsmbs/tst-wcstol-locale.c4
-rw-r--r--wcsmbs/uchar.h4
-rw-r--r--wcsmbs/wchar.h17
-rw-r--r--wcsmbs/wcpcpy.c23
-rw-r--r--wcsmbs/wcpncpy.c61
-rw-r--r--wcsmbs/wcrtomb.c9
-rw-r--r--wcsmbs/wcscasecmp.c4
-rw-r--r--wcsmbs/wcscasecmp_l.c4
-rw-r--r--wcsmbs/wcscat.c25
-rw-r--r--wcsmbs/wcschr.c26
-rw-r--r--wcsmbs/wcschrnul.c4
-rw-r--r--wcsmbs/wcscmp.c4
-rw-r--r--wcsmbs/wcscoll.c4
-rw-r--r--wcsmbs/wcscoll_l.c4
-rw-r--r--wcsmbs/wcscpy.c62
-rw-r--r--wcsmbs/wcscspn.c4
-rw-r--r--wcsmbs/wcsdup.c4
-rw-r--r--wcsmbs/wcslen.c4
-rw-r--r--wcsmbs/wcsmbsload.c26
-rw-r--r--wcsmbs/wcsmbsload.h4
-rw-r--r--wcsmbs/wcsncase.c4
-rw-r--r--wcsmbs/wcsncase_l.c4
-rw-r--r--wcsmbs/wcsncat.c57
-rw-r--r--wcsmbs/wcsncmp.c4
-rw-r--r--wcsmbs/wcsncpy.c64
-rw-r--r--wcsmbs/wcsnlen.c26
-rw-r--r--wcsmbs/wcsnrtombs.c4
-rw-r--r--wcsmbs/wcspbrk.c4
-rw-r--r--wcsmbs/wcsrchr.c26
-rw-r--r--wcsmbs/wcsrtombs.c4
-rw-r--r--wcsmbs/wcsspn.c4
-rw-r--r--wcsmbs/wcsstr.c4
-rw-r--r--wcsmbs/wcstod.c4
-rw-r--r--wcsmbs/wcstod_l.c4
-rw-r--r--wcsmbs/wcstod_nan.c4
-rw-r--r--wcsmbs/wcstof.c4
-rw-r--r--wcsmbs/wcstof_l.c4
-rw-r--r--wcsmbs/wcstof_nan.c4
-rw-r--r--wcsmbs/wcstok.c4
-rw-r--r--wcsmbs/wcstol.c4
-rw-r--r--wcsmbs/wcstol_l.c4
-rw-r--r--wcsmbs/wcstold.c4
-rw-r--r--wcsmbs/wcstold_l.c4
-rw-r--r--wcsmbs/wcstold_nan.c4
-rw-r--r--wcsmbs/wcstoll.c4
-rw-r--r--wcsmbs/wcstoll_l.c4
-rw-r--r--wcsmbs/wcstoul.c4
-rw-r--r--wcsmbs/wcstoul_l.c4
-rw-r--r--wcsmbs/wcstoull.c4
-rw-r--r--wcsmbs/wcstoull_l.c4
-rw-r--r--wcsmbs/wcswidth.c4
-rw-r--r--wcsmbs/wcsxfrm.c4
-rw-r--r--wcsmbs/wcsxfrm_l.c4
-rw-r--r--wcsmbs/wctob.c4
-rw-r--r--wcsmbs/wcwidth.c4
-rw-r--r--wcsmbs/wcwidth.h4
-rw-r--r--wcsmbs/wmemchr.c4
-rw-r--r--wcsmbs/wmemcmp.c13
-rw-r--r--wcsmbs/wmemcpy.c4
-rw-r--r--wcsmbs/wmemmove.c4
-rw-r--r--wcsmbs/wmempcpy.c4
-rw-r--r--wcsmbs/wmemset.c4
-rw-r--r--wctype/Makefile4
-rw-r--r--wctype/bits/wctype-wchar.h6
-rw-r--r--wctype/iswctype.c4
-rw-r--r--wctype/iswctype_l.c4
-rw-r--r--wctype/test_wcfuncs.c4
-rw-r--r--wctype/test_wctype.c4
-rw-r--r--wctype/towctrans.c4
-rw-r--r--wctype/towctrans_l.c4
-rw-r--r--wctype/wcfuncs.c4
-rw-r--r--wctype/wcfuncs_l.c4
-rw-r--r--wctype/wchar-lookup.h4
-rw-r--r--wctype/wctrans.c4
-rw-r--r--wctype/wctrans_l.c4
-rw-r--r--wctype/wctype.c4
-rw-r--r--wctype/wctype.h4
-rw-r--r--wctype/wctype_l.c4
12723 files changed, 231444 insertions, 181606 deletions
diff --git a/ChangeLog b/ChangeLog
deleted file mode 100644
index 08b42bd2f5..0000000000
--- a/ChangeLog
+++ /dev/null
@@ -1,24396 +0,0 @@
-2018-08-01 Carlos O'Donel <carlos@redhat.com>
-
- * version.h (RELEASE): Set to "stable".
- (VERSION): Set to "2.28".
- * include/features.h (__GLIBC_MINOR__): Set to 2.28.
- * NEWS: Add the list of bugs fixed in 2.28.
-
- * po/ca.po: Update to latest version.
- * po/cs.po: Likewise
- * po/da.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/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/pt_BR.po: Likewise
- * po/ru.po: Likewise
- * po/rw.po: Likewise
- * po/sk.po: Likewise
- * po/sl.po: Likewise
- * po/tr.po: Likewise
- * po/zh_CN.po: Likewise
- * po/zh_TW.po: Likewise
-
-2018-07-31 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * sysdeps/mach/hurd/i386/init-first.c (init1): Move ELF hdr and TLS
- initialization...
- (init): ... before initializing libpthread.
-
- * mach/mach.h (__mach_setup_tls, mach_setup_tls): Add prototypes.
- * mach/setup-thread.c (__mach_setup_thread): Move TLS setup to...
- (__mach_setup_tls): ... new function.
- (mach_setup_tls): New alias.
- * hurd/hurdsig.c (_hurdsig_init): Call __mach_setup_tls after
- __mach_setup_thread.
- * sysdeps/mach/hurd/profil.c (update_waiter): Likewise.
- * sysdeps/mach/hurd/setitimer.c (setitimer_locked): Likewise.
- * mach/Versions [libc] (mach_setup_tls): Add symbol.
- * sysdeps/mach/hurd/i386/libc.abilist (mach_setup_tls): Likewise.
-
-2018-07-31 Carlos O'Donell <carlos@redhat.com>
-
- * manual/install.texi: Update versions.
- * INSTALL: Regenerate.
-
- * manual/contrib.texi (Contributors): Update contributions.
-
-2018-07-31 Carlos O'Donell <carlos@redhat.com>
-
- * po/be.po: Update translations.
-
-2018-07-31 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * sysdeps/sh/libm-test-ulps: Update.
-
-2018-07-30 Carlos O'Donell <carlos@redhat.com>
-
- * po/bg.po: Update translations.
- * po/de.po: Likewise.
- * po/hr.po: Likewise.
- * po/pt_BR.po: Likewise.
- * po/sv.po: Likewise.
- * po/vi.po: Likewise.
-
-2018-07-30 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #23467]
- * sysdeps/unix/sysv/linux/x86/Makefile (tests): Add
- tst-cet-property-1 and tst-cet-property-2 if CET is enabled.
- (CFLAGS-tst-cet-property-1.o): New.
- (ASFLAGS-tst-cet-property-dep-2.o): Likewise.
- ($(objpfx)tst-cet-property-2): Likewise.
- ($(objpfx)tst-cet-property-2.out): Likewise.
- * sysdeps/unix/sysv/linux/x86/tst-cet-property-1.c: New file.
- * sysdeps/unix/sysv/linux/x86/tst-cet-property-2.c: Likewise.
- * sysdeps/unix/sysv/linux/x86/tst-cet-property-dep-2.S: Likewise.
- * sysdeps/x86/dl-prop.h (_dl_process_cet_property_note): Parse
- each property item until GNU_PROPERTY_X86_FEATURE_1_AND is found.
-
-2018-07-30 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #23458]
- * sysdeps/x86/Makefile (tests): Add tst-get-cpu-features-static.
-
-2018-07-28 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * sysdeps/mach/hurd/dl-unistd.h (__access, __brk, __lseek, __read,
- __sbrk): Do not set attribute_hidden.
- * sysdeps/mach/hurd/not-errno.h: New file.
- * sysdeps/mach/hurd/i386/ld.abilist: Update accordingly.
- * sysdeps/mach/hurd/i386/localplt.data: Update accordingly.
-
-2018-07-27 Carlos O'Donell <carlos@redhat.com>
-
- * po/uk.po: Update translations.
- * po/cs.po: Likewise.
- * po/pl.po: Likewise.
-
-2018-07-27 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/x86/dl-prop.h (_dl_process_cet_property_note): Don't
- parse beyond the note end.
-
-2018-07-27 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * sysdeps/unix/sysv/linux/tst-ofdlocks.c: Return unsupported if
- kernel does not support OFD locks.
- * sysdeps/unix/sysv/linux/tst-ofdlocks-compat.c: Likewise.
-
-2018-07-27 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * sysdeps/mach/hurd/Versions (libc): Make __access and
- __access_noerrno external so they can override the ld symbols.
- (ld): Make __access, __read, __sbrk, __strtoul_internal, __write,
- __writev, __open64, __access_noerrno extern so they can be overrided.
- * sysdeps/mach/hurd/i386/libc.abilist: Update accordingly.
- * sysdeps/mach/hurd/i386/ld.abilist: Update accordingly.
-
-2018-07-26 Carlos O'Donell <carlos@redhat.com>
-
- * po/libc.pot: Regenerate.
-
-2018-07-26 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/powerpc/nofpu/libm-test-ulps: Update.
-
-2018-07-26 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #23459]
- * sysdeps/x86/cpu-features.c (get_extended_indices): New
- function.
- (init_cpu_features): Call get_extended_indices for both Intel
- and AMD CPUs.
- * sysdeps/x86/cpu-features.h (COMMON_CPUID_INDEX_80000001):
- Remove "for AMD" comment.
-
-2018-07-26 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ # 23456]
- * sysdeps/x86/cpu-features.h (index_cpu_LZCNT): Set to
- COMMON_CPUID_INDEX_80000001.
-
-2018-07-26 Stefan Liebler <stli@linux.ibm.com>
-
- * string/tst-xbzero-opt.c (use_test_buffer): New function.
- (prepare_test_buffer): Call use_test_buffer as compiler barrier.
-
-2018-07-26 Florian Weimer <fweimer@redhat.com>
-
- * htl/lockfile.c (flockfile, funlockfile, ftrylockfile): Use weak
- aliases for symbols not in the implementation namespace.
-
-2018-07-25 Carlos O'Donell <carlos@redhat.com>
-
- [BZ #23393]
- * localedata/locales/iso14651_t1_common: Deinterlace uppercase and
- lowercase in LATIN script.
- * localedata/Makefile (test-input): Add en_US.UTF-8.
- * localedata/en_US.UTF-8.in: New file.
- * posix/tst-fnmatch.input: Add comments and new tests for en_US.UTF-8,
- and restore old tests.
- * posix/tst-regexloc.c (do_test): Add back range expression test.
-
-2018-07-25 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/unix/sysv/linux/ia64/tst-setcontext4.c: New file.
-
-2018-07-25 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * nptl/threads.h: Move to ...
- * sysdeps/nptl/threads.h: ... here.
- * sysdeps/hurd/stdc-predef.h: New file.
-
-2018-07-25 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/unix/sysv/linux/x86/Makefile (tests): Add
- tst-cet-setcontext-1 if CET is enabled.
- (CFLAGS-tst-cet-setcontext-1.c): Add -mshstk.
- * sysdeps/unix/sysv/linux/x86/tst-cet-setcontext-1.c: New file.
-
-2018-07-25 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * include/threads.h: Move to ...
- * sysdeps/nptl/threads.h: ... here.
- * sysdeps/htl/threads.h: New file.
- * conform/Makefile (linknamespace-libs-ISO11): Use
- static-thread-library instead of linking libpthread.
- (linknamespace-libs-XPG4): Revert wrong libcrypt.a addition.
-
-2018-07-25 Florian Weimer <fweimer@redhat.com>
-
- * nptl/tst-mtx-timedlock.c (do_test): Implement carry from
- nanoseconds into seconds.
- * nptl/tst-cnd-basic.c (signal_parent): Lock and unlock mutex.
- (do_test): Likewise.
- * nptl/tst-cnd-timedwait.c (signal_parent): Likewise.
- (do_test): Likewise. Avoid nanosecond overflow and spurious
- timeouts due to system load.
- * nptl/tst-cnd-broadcast.c (waiting_threads): New variable.
- (child_wait): Increment it.
- (do_test): Wait as long as necessary until all expected threads
- have arrived.
-
-2018-07-25 Vedvyas Shanbhogue <vedvyas.shanbhogue@intel.com>
- H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/unix/sysv/linux/x86/sys/ucontext.h (ucontext_t): Add
- __ssp.
- * sysdeps/unix/sysv/linux/x86_64/__start_context.S: Include
- <asm/prctl.h> and "ucontext_i.h" when shadow stack is enabled.
- (__push___start_context): New.
- * sysdeps/unix/sysv/linux/x86_64/getcontext.S: Include
- <asm/prctl.h>.
- (__getcontext): Record the current shadow stack base. Save the
- caller's shadow stack pointer and base.
- * sysdeps/unix/sysv/linux/x86_64/makecontext.c: Include
- <pthread.h>, <libc-pointer-arith.h> and <sys/prctl.h>.
- (__push___start_context): New prototype.
- (__makecontext): Call __push___start_context to allocate a new
- shadow stack, push __start_context onto the new stack as well
- as the new shadow stack.
- * sysdeps/unix/sysv/linux/x86_64/setcontext.S: Include
- <asm/prctl.h>.
- (__setcontext): Restore the target shadow stack.
- * sysdeps/unix/sysv/linux/x86_64/swapcontext.S: Include
- <asm/prctl.h>.
- (__swapcontext): Record the current shadow stack base. Save
- the caller's shadow stack pointer and base. Restore the target
- shadow stack.
- * sysdeps/unix/sysv/linux/x86_64/sysdep.h
- (STACK_SIZE_TO_SHADOW_STACK_SIZE_SHIFT): New.
- * sysdeps/unix/sysv/linux/x86_64/ucontext_i.sym (oSSP): New.
-
-2018-07-25 H.J. Lu <hongjiu.lu@intel.com>
-
- * stdlib/Makefile ((tests): Add tst-setcontext6, tst-setcontext7,
- tst-setcontext8 and tst-setcontext9.
- * stdlib/tst-setcontext6.c: New file.
- * stdlib/tst-setcontext7.c: Likewise.
- * stdlib/tst-setcontext8.c: Likewise.
- * stdlib/tst-setcontext9.c: Likewise.
-
-2018-07-25 H.J. Lu <hongjiu.lu@intel.com>
-
- * stdlib/Makefile ((tests): Add tst-setcontext5.
- * stdlib/tst-setcontext5.c: New file.
-
-2018-07-25 H.J. Lu <hongjiu.lu@intel.com>
-
- * stdlib/Makefile (tests): Add tst-setcontext4.
- * stdlib/tst-setcontext4.c: New file.
-
-2018-07-25 H.J. Lu <hongjiu.lu@intel.com>
-
- * stdlib/Makefile (tests): Add tst-swapcontext1.
- * stdlib/tst-swapcontext1.c: New test.
-
-2018-07-25 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/x86/Makefile (tests): Add tst-cet-legacy-1,
- tst-cet-legacy-2, tst-cet-legacy-2a, tst-cet-legacy-3,
- tst-cet-legacy-4, tst-cet-legacy-4a, tst-cet-legacy-4b
- and tst-cet-legacy-4c.
- (modules-names): Add tst-cet-legacy-mod-1, tst-cet-legacy-mod-2
- and tst-cet-legacy-mod-4.
- (CFLAGS-tst-cet-legacy-2.c): New.
- (CFLAGS-tst-cet-legacy-mod-1.c): Likewise.
- (CFLAGS-tst-cet-legacy-mod-2.c): Likewise.
- (CFLAGS-tst-cet-legacy-3.c): Likewise.
- (CFLAGS-tst-cet-legacy-4.c): Likewise.
- (CFLAGS-tst-cet-legacy-mod-4.c): Likewise.
- ($(objpfx)tst-cet-legacy-1): Likewise.
- ($(objpfx)tst-cet-legacy-2): Likewise.
- ($(objpfx)tst-cet-legacy-2.out): Likewise.
- ($(objpfx)tst-cet-legacy-2a): Likewise.
- ($(objpfx)tst-cet-legacy-2a.out): Likewise.
- ($(objpfx)tst-cet-legacy-4): Likewise.
- ($(objpfx)tst-cet-legacy-4.out): Likewise.
- ($(objpfx)tst-cet-legacy-4a): Likewise.
- ($(objpfx)tst-cet-legacy-4a.out): Likewise.
- (tst-cet-legacy-4a-ENV): Likewise.
- ($(objpfx)tst-cet-legacy-4b): Likewise.
- ($(objpfx)tst-cet-legacy-4b.out): Likewise.
- (tst-cet-legacy-4b-ENV): Likewise.
- ($(objpfx)tst-cet-legacy-4c): Likewise.
- ($(objpfx)tst-cet-legacy-4c.out): Likewise.
- (tst-cet-legacy-4c-ENV): Likewise.
- * sysdeps/x86/tst-cet-legacy-1.c: New file.
- * sysdeps/x86/tst-cet-legacy-2.c: Likewise.
- * sysdeps/x86/tst-cet-legacy-2a.c: Likewise.
- * sysdeps/x86/tst-cet-legacy-3.c: Likewise.
- * sysdeps/x86/tst-cet-legacy-4.c: Likewise.
- * sysdeps/x86/tst-cet-legacy-4a.c: Likewise.
- * sysdeps/x86/tst-cet-legacy-4b.c: Likewise.
- * sysdeps/x86/tst-cet-legacy-4c.c: Likewise.
- * sysdeps/x86/tst-cet-legacy-mod-1.c: Likewise.
- * sysdeps/x86/tst-cet-legacy-mod-2.c: Likewise.
- * sysdeps/x86/tst-cet-legacy-mod-4.c: Likewise.
-
-2018-07-25 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/i386/nptl/tcb-offsets.sym (SSP_BASE_OFFSET): New.
- * sysdeps/i386/nptl/tls.h (tcbhead_t): Replace __glibc_reserved2
- with ssp_base.
- * sysdeps/x86_64/nptl/tcb-offsets.sym (SSP_BASE_OFFSET): New.
- * sysdeps/x86_64/nptl/tls.h (tcbhead_t): Replace __glibc_reserved2
- with ssp_base.
-
-2018-07-25 Andreas Schwab <schwab@suse.de>
-
- [BZ #23442]
- * locale/weightwc.h (findidx): Handle the case where usrc is a
- prefix of cp but one character too short.
-
-2018-07-24 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * NEWS: Add ISO C threads addition.
-
-2018-07-24 Florian Weimer <fweimer@redhat.com>
-
- * sysdeps/unix/sysv/linux/alpha/kernel-features.h
- [__LINUX_KERNEL_VERSION < 0x040D00] (__ASSUME_MLOCK2)
- (__ASSUME_COPY_FILE_RANGE): Undefine. Kernel support was added in
- 4.13.
-
-2018-07-24 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/unix/sysv/linux/x86/include/asm/prctl.h: New file.
- * sysdeps/unix/sysv/linux/x86/cpu-features.c: Include
- <sys/prctl.h> and <asm/prctl.h>.
- (get_cet_status): Call arch_prctl with ARCH_CET_STATUS.
- * sysdeps/unix/sysv/linux/x86/dl-cet.h: Include <sys/prctl.h>
- and <asm/prctl.h>.
- (dl_cet_allocate_legacy_bitmap): Call arch_prctl with
- ARCH_CET_LEGACY_BITMAP.
- (dl_cet_disable_cet): Call arch_prctl with ARCH_CET_DISABLE.
- (dl_cet_lock_cet): Call arch_prctl with ARCH_CET_LOCK.
- * sysdeps/x86/libc-start.c: Include <startup.h>.
-
-2018-07-24 Florian Weimer <fweimer@redhat.com>
-
- * sysdeps/unix/sysv/linux/sh/kernel-features.h (__ASSUME_STATX):
- Undefine. Suggested by Romain Naour <romain.naour@gmail.com>.
-
-2018-07-24 Rical Jasan <rj@2c3t.io>
- Adhemerval Zanella <adhemerval.zanella@linaro.org>
- Juan Manuel Torres Palma <jmtorrespalma@gmail.com>
-
- [BZ #14092]
- * manual/debug.texi: Update adjacent chapter name.
- * manual/probes.texi: Likewise.
- * manual/threads.texi (ISO C Threads): New section.
- (POSIX Threads): Convert to a section.
-
-2018-07-24 Adhemerval Zanella <adhemerval.zanella@linaro.org>
- Juan Manuel Torres Palma <jmtorrespalma@gmail.com>
-
- [BZ# 14092]
- * nptl/Makefile (tests): Add new test files.
- * nptl/tst-call-once.c : New file. Tests C11 functions and types.
- * nptl/tst-cnd-basic.c: Likewise.
- * nptl/tst-cnd-broadcast.c: Likewise.
- * nptl/tst-cnd-timedwait.c: Likewise.
- * nptl/tst-mtx-basic.c: Likewise.
- * nptl/tst-mtx-recursive.c: Likewise.
- * nptl/tst-mtx-timedlock.c: Likewise.
- * nptl/tst-mtx-trylock.c: Likewise.
- * nptl/tst-thrd-basic.c: Likewise.
- * nptl/tst-thrd-detach.c: Likewise.
- * nptl/tst-thrd-sleep.c: Likewise.
- * nptl/tst-tss-basic.c: Likewise.
-
-2018-07-24 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- [BZ #14092]
- * sysdeps/unix/sysv/linux/aarch64/libc.abilist [GLIBC_2.28]
- (thrd_current, thrd_equal, thrd_sleep, thrd_yield): Add C11 thread
- symbols.
- * sysdeps/unix/sysv/linux/alpha/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/arm/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/hppa/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/i386/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/ia64/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/microblaze/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/nios2/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sh/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/aarch64/libpthread.abilist [[GLIBC_2.28]
- (call_once, cnd_broadcast, cnd_destroy, cnd_init, cnd_signal,
- cnd_timedwait, cnd_wait, mtx_destroy, mtx_init, mtx_lock,
- mtx_timedlock, mtx_trylock, mtx_unlokc, thrd_create, thrd_detach,
- thrd_exit, thrd_join, tss_create, tss_delete, tss_get, tss_set):
- Likewise.
- * sysdeps/unix/sysv/linux/aarch64/libpthread.abilist: Likewise.
- * sysdeps/unix/sysv/linux/alpha/libpthread.abilist: Likewise.
- * sysdeps/unix/sysv/linux/arm/libpthread.abilist: Likewise.
- * sysdeps/unix/sysv/linux/hppa/libpthread.abilist: Likewise.
- * sysdeps/unix/sysv/linux/i386/libpthread.abilist: Likewise.
- * sysdeps/unix/sysv/linux/ia64/libpthread.abilist: Likewise.
- * sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist: Likewise.
- * sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist: Likewise.
- * sysdeps/unix/sysv/linux/microblaze/libpthread.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist: Likewise.
- * sysdeps/unix/sysv/linux/nios2/libpthread.abilist: Likewise.
- ikewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist:
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread-le.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sh/libpthread.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist: Likewise.
-
- [BZ #14092]
- * conform/data/threads.h-data (thread_local): New macro.
- (TSS_DTOR_ITERATIONS): Likewise.
- (tss_t): New type.
- (tss_dtor_t): Likewise.
- (tss_create): New function.
- (tss_get): Likewise.
- (tss_set): Likewise.
- (tss_delete): Likewise.
- * nptl/Makefile (libpthread-routines): Add tss_create, tss_delete,
- tss_get, and tss_set objects.
- * nptl/Versions (libpthread) [GLIBC_2.28]: Likewise.
- * nptl/tss_create.c: New file.
- * nptl/tss_delete.c: Likewise.
- * nptl/tss_get.c: Likewise.
- * nptl/tss_set.c: Likewise.
- * sysdeps/nptl/threads.h (thread_local): New define.
- (TSS_DTOR_ITERATIONS): Likewise.
- (tss_t): New typedef.
- (tss_dtor_t): Likewise.
- (tss_create): New prototype.
- (tss_get): Likewise.
- (tss_set): Likewise.
- (tss_delete): Likewise.
-
- [BZ #14092]
- * conform/data/threads.h-data (cnd_t): New type.
- (cnd_init): New function.
- (cnd_signal): Likewise.
- (cnd_broadcast): Likewise.
- (cnd_wait): Likewise.
- (cnd_timedwait): Likewise.
- (cnd_destroy): Likewise.
- * nptl/Makefile (libpthread-routines): Add cnd_broadcast,
- cnd_destroy, cnd_init, cnd_signal, cnd_timedwait, and cnd_wait
- object.
- * nptl/Versions (libpthread) [GLIBC_2.28]: Likewise.
- * nptl/cnd_broadcast.c: New file.
- * nptl/cnd_destroy.c: Likewise.
- * nptl/cnd_init.c: Likewise.
- * nptl/cnd_signal.c: Likewise.
- * nptl/cnd_timedwait.c: Likewise.
- * nptl/cnd_wait.c: Likewise.
- * sysdeps/nptl/threads.h (cnd_t): New type.
- (cnd_init): New prototype.
- (cnd_signa): Likewise.
- (cnd_broadcast): Likewise.
- (cnd_wait): Likewise.
- (cnd_timedwait): Likewise.
- (cnd_destroy): Likewise.
-
- [BZ #14092]
- * conform/data/threads.h-data (ONCE_FLAG_INIT): New macro.
- (once_flag): New type.
- (call_once): New function.
- * nptl/Makefile (libpthread-routines): Add call_once object.
- * nptl/Versions (libphread) [GLIBC_2.28]: Add call_once symbol.
- * nptl/call_once.c: New file.
- * sysdeps/nptl/threads.h (ONCE_FLAG_INIT): New define.
- (once_flag): New type.
- (call_once): New prototype.
-
- [BZ #14092]
- * conform/data/threads.h-data (mtx_plain): New constant.
- (mtx_recursive): Likewise.
- (mtx_timed): Likewise.
- (mtx_t): New type.
- (mtx_init): New function.
- (mtx_lock): Likewise.
- (mtx_timedlock): Likewise.
- (mtx_trylock): Likewise.
- (mtx_unlock): Likewise.
- (mtx_destroy): Likewise.
- * nptl/Makefile (libpthread-routines): Add mtx_destroy, mtx_init,
- mtx_lock, mtx_timedlock, mtx_trylock, and mtx_unlock object.
- * nptl/Versions (libpthread) [GLIBC_2.28]): Add mtx_init, mtx_lock,
- mtx_timedlock, mtx_trylock, mtx_unlock, and mtx_destroy.
- * nptl/mtx_destroy.c: New file.
- * nptl/mtx_init.c: Likewise.
- * nptl/mtx_lock.c: Likewise.
- * nptl/mtx_timedlock.c: Likewise.
- * nptl/mtx_trylock.c: Likewise.
- * nptl/mtx_unlock.c: Likewise.
- * sysdeps/nptl/threads.h (mtx_plain): New enumeration.
- (mtx_recursive): Likewise.
- (mtx_timed): Likewise.
- (mtx_t): New type.
- (mtx_init): New prototype.
- (mtx_lock): Likewise.
- (mtx_timedlock): Likewise.
- (mtx_trylock): Likewise.
- (mtx_unlock): Likewise.
- (mtx_destroy): Likewise.
-
- [BZ #14092]
- * conform/Makefile (conformtest-headers-ISO11): Add threads.h.
- (linknamespace-libs-ISO11): Add libpthread.a.
- * conform/data/threads.h-data: New file: add C11 thrd_* types and
- functions.
- * include/stdc-predef.h (__STDC_NO_THREADS__): Remove definition.
- * nptl/Makefile (headers): Add threads.h.
- (libpthread-routines): Add new C11 thread thrd_create, thrd_current,
- thrd_detach, thrd_equal, thrd_exit, thrd_join, thrd_sleep, and
- thrd_yield.
- * nptl/Versions (libpthread) [GLIBC_2.28]): Add new C11 thread
- thrd_create, thrd_current, thrd_detach, thrd_equal, thrd_exit,
- thrd_join, thrd_sleep, and thrd_yield symbols.
- * nptl/descr.h (struct pthread): Add c11 field.
- * nptl/pthreadP.h (ATTR_C11_THREAD): New define.
- * nptl/pthread_create.c (START_THREAD_DEFN): Call C11 thread start
- routine with expected function prototype.
- (__pthread_create_2_1): Add C11 threads check based on attribute
- value.
- * sysdeps/unix/sysdep.h (INTERNAL_SYSCALL_CANCEL): New macro.
- * nptl/thrd_create.c: New file.
- * nptl/thrd_current.c: Likewise.
- * nptl/thrd_detach.c: Likewise.
- * nptl/thrd_equal.c: Likewise.
- * nptl/thrd_exit.c: Likewise.
- * nptl/thrd_join.c: Likewise.
- * nptl/thrd_priv.h: Likewise.
- * nptl/thrd_sleep.c: Likewise.
- * nptl/thrd_yield.c: Likewise.
- * include/threads.h: Likewise.
-
-2018-07-24 H.J. Lu <hongjiu.lu@intel.com>
-
- * bits/indirect-return.h: New file.
- * misc/sys/cdefs.h (__glibc_has_attribute): New.
- * sysdeps/x86/bits/indirect-return.h: Likewise.
- * stdlib/Makefile (headers): Add bits/indirect-return.h.
- * stdlib/ucontext.h: Include <bits/indirect-return.h>.
- (swapcontext): Add __INDIRECT_RETURN.
- * string/tst-xbzero-opt.c (ALWAYS_INLINE): New.
- (prepare_test_buffer): Use it.
-
-2018-07-24 Andreas Schwab <schwab@suse.de>
-
- [BZ #23448]
- * iconvdata/ibm1364.c (MAX_NEEDED_OUTPUT) [FROM_LOOP]: Define.
- (MAX_NEEDED_INPUT) [TO_LOOP]: Define.
-
-2018-07-24 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/unix/sysv/linux/i386/vfork.S (SYSCALL_ERROR_HANDLER):
- Redefine if shadow stack is enabled.
- (SYSCALL_ERROR_LABEL): Likewise.
- (__vfork): Pop shadow stack and jump back to to caller directly
- when shadow stack is in use.
- * sysdeps/unix/sysv/linux/x86_64/vfork.S (SYSCALL_ERROR_HANDLER):
- Redefine if shadow stack is enabled.
- (SYSCALL_ERROR_LABEL): Likewise.
- (__vfork): Pop shadow stack and jump back to to caller directly
- when shadow stack is in use.
-
-2018-07-24 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/x86_64/tst-quadmod1.S (func): Add endbr64 if IBT is
- enabled.
- (foo): Likewise.
- * sysdeps/x86_64/tst-quadmod2.S (func) : Likewise.
- (foo): Likewise.
-
-2018-07-20 Joseph Myers <joseph@codesourcery.com>
-
- * scripts/build-many-glibcs.py (Context.checkout): Default
- binutils version to 2.31 branch.
-
-2018-07-20 Zong Li <zong@andestech.com>
-
- * scripts/build-many-glibcs.py (Context.checkout_tar): Change the
- URL of gcc's tarball.
-
-2018-07-20 Florian Weimer <fweimer@redhat.com>
-
- [BZ #23396]
- * posix/regcomp.c (build_equiv_class): When comparing weights, do
- not compare an extra byte after the end of the weights.
-
-2018-07-20 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * sysdeps/mach/hurd/i386/tls.h (_hurd_tls_init): Set multiple_threads
- to 1.
- * sysdeps/hurd/include/hurd/port.h [!_ISOMAC]: Do not declare libc
- hidden prototypes.
- * sysdeps/mach/include/mach-shortcuts-hidden.h [!_ISOMAC]: Likewise.
- * sysdeps/mach/include/mach/mach_traps.h [!_ISOMAC]: Likewise.
- * scripts/check-execstack.awk: Consider `xfail' variable containing a
- list of libraries whose stack executability is expected.
- * elf/Makefile ($(objpfx)check-execstack.out): Pass
- $(check-execstack-xfail) to check-execstack.awk through `xfail'
- variable.
- * sysdeps/mach/hurd/i386/Makefile (check-execstack-xfail): Set to ld.so
- libc.so libpthread.so.
-
-2018-07-20 Thomas Schwinge <tschwinge@gnu.org>
-
- * sysdeps/mach/hurd/socket.c (__socket): Handle SOCK_CLOEXEC and
- SOCK_NONBLOCK.
- * sysdeps/mach/hurd/socketpair.c (__socketpair): Handle SOCK_CLOEXEC
- and SOCK_NONBLOCK.
- * sysdeps/mach/hurd/pipe2.c: New file, copy from pipe.c. Evolve it to
- implement __pipe2.
- * sysdeps/mach/hurd/pipe.c (__pipe): Reimplement using __pipe2.
-
-2018-07-19 Leonardo Sandoval <leonardo.sandoval.gonzalez@intel.com>
-
- * benchtests/scripts/compare_bench.py (__main__): use the argparse
- library to improve command line parsing.
- (__main__): make schema file as optional parameter (--schema),
- defaulting to benchtests/scripts/benchout.schema.json.
- (main): move out of the parsing stuff to __main_  and leave it
- only as caller of main comparison functions.
-
-2018-07-19 H.J. Lu <hongjiu.lu@intel.com>
-
- * NEWS: Add a note for Intel CET status.
- * manual/install.texi: Likewise.
- * INSTALL: Regenerated.
-
-2018-07-18 Quentin PAGÈS <provaires@quentino.fr>
-
- [BZ #23140]
- * localedata/locales/oc_FR (mon): Rename to...
- (alt_mon): This, then update October (typo fix).
- (mon): New content (genitive case, month names preceded by
- "de" or "d’").
-
- [BZ #23422]
- * localedata/locales/oc_FR (abday): Update all items.
- (day): Update Wednesday and Saturday (typo fixes).
- (abmon): Update all items, except May.
- (d_fmt): Update "%d.%m.%Y" -> "%d/%m/%Y".
- (LC_IDENTIFICATION): Bump the revision number and date.
- Keep the "category" entries in alphabetic order.
- (LC_ADDRESS): Remove no longer needed comment.
- (LC_COLLATE): Use “copy "ca_ES"â€.
- (LC_NAME): Set the correct values of "name_fmt", "name_mr", and
- "name_mrs".
-
-2018-07-18 Joseph Myers <joseph@codesourcery.com>
-
- * grp/tst_fgetgrent.c: Include <unistd.h>.
- (main): Use mkstemp instead of tmpnam.
- * io/test-utime.c (main): Likewise.
- * posix/annexc.c (macrofile): Change to modifiable array.
- (main): Remove macrofile here.
- (get_null_defines): Use mkstemp instead of tmpnam. Do not remove
- macrofile here.
- (check_header): Do not remove macrofile here.
- * posix/bug-getopt1.c: Include <stdlib.h>.
- (do_test): Use mkstemp instead of tmpnam.
- * posix/bug-getopt2.c: Include <stdlib.h>.
- (do_test): Use mkstemp instead of tmpnam.
- * posix/bug-getopt3.c: Include <stdlib.h>.
- (do_test): Use mkstemp instead of tmpnam.
- * posix/bug-getopt4.c: Include <stdlib.h>.
- (do_test): Use mkstemp instead of tmpnam.
- * posix/bug-getopt5.c: Include <stdlib.h>.
- (do_test): Use mkstemp instead of tmpnam.
- * stdio-common/bug7.c: Include <stdlib.h> and <unistd.h>.
- (main): Use mkstemp instead of tmpnam.
- * stdio-common/tst-fdopen.c: Include <stdlib.h>.
- (main): Use mkstemp instead of tmpnam.
- * stdio-common/tst-ungetc.c: Include <stdlib.h>.
- (main): use mkstemp instead of tmpnam.
- * stdlib/isomac.c (macrofile): Change to modifiable array.
- (main): Remove macrofile here.
- (get_null_defines): Use mkstemp instead of tmpnam. Do not remove
- macrofile here.
- (check_header): Do not remove macrofile here.
-
-2018-07-18 H.J. Lu <hongjiu.lu@intel.com>
-
- * manual/tunables.texi: Document glibc.tune.x86_ibt and
- glibc.tune.x86_shstk.
-
-2018-07-18 H.J. Lu <hongjiu.lu@intel.com>
-
- * NEWS: Mention --enable-cet.
- * manual/install.texi: Document --enable-cet.
- * INSTALL: Regenerated.
-
-2018-07-18 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/x86_64/multiarch/memcmp-sse4.S (BRANCH_TO_JMPTBL_ENTRY):
- Add _CET_NOTRACK before indirect jump to jump table.
-
-2018-07-18 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/i386/i686/multiarch/memset-sse2-rep.S
- (BRANCH_TO_JMPTBL_ENTRY): Add _CET_NOTRACK before indirect jump
- to jump table.
-
-2018-07-18 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/i386/i686/multiarch/strcat-sse2.S
- (BRANCH_TO_JMPTBL_ENTRY): Add _CET_NOTRACK before indirect jump
- to jump table.
-
-2018-07-18 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/i386/i686/multiarch/strcpy-sse2.S
- (BRANCH_TO_JMPTBL_ENTRY): Add _CET_NOTRACK before indirect jump
- to jump table.
-
-2018-07-18 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/i386/i686/multiarch/memcpy-ssse3.S
- (BRANCH_TO_JMPTBL_ENTRY): Add _CET_NOTRACK before indirect jump
- to jump table.
-
-2018-07-18 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/i386/i686/multiarch/memcpy-ssse3-rep.S
- (BRANCH_TO_JMPTBL_ENTRY): Add _CET_NOTRACK before indirect jump
- to jump table.
- (BRANCH_TO_JMPTBL_ENTRY_TAIL): Likewise.
-
-2018-07-18 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/i386/i686/multiarch/memcmp-sse4.S
- (BRANCH_TO_JMPTBL_ENTRY): Add _CET_NOTRACK before indirect jump
- to jump table.
-
-2018-07-18 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/i386/i686/multiarch/memset-sse2.S
- (BRANCH_TO_JMPTBL_ENTRY): Add _CET_NOTRACK before indirect jump
- to jump table.
-
-2018-07-18 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/i386/i686/memcmp.S (memcmp): Add _CET_NOTRACK before
- indirect jump to jump table.
-
-2018-07-18 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/x86_64/multiarch/memcpy-ssse3.S
- (BRANCH_TO_JMPTBL_ENTRY): Add _CET_NOTRACK before indirect jump
- to jump table.
- (MEMCPY): Likewise.
-
-2018-07-18 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
- (BRANCH_TO_JMPTBL_ENTRY): Add _CET_NOTRACK before indirect jump
- to jump table.
- (MEMCPY): Likewise.
-
-2018-07-18 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/x86_64/multiarch/strcmp-sse42.S (STRCMP_SSE42): Add
- _CET_NOTRACK before indirect jump to jump table.
-
-2018-07-18 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S
- (BRANCH_TO_JMPTBL_ENTRY): Add _CET_NOTRACK before indirect jump
- to jump table.
-
-2018-07-18 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/x86_64/strcmp.S (STRCMP): Add _CET_NOTRACK before
- indirect jump to jump table.
-
-2018-07-18 Valery Timiriliyev <timiriliyev@gmail.com>
-
- [BZ #22241]
- * localedata/Makefile (test-input): Add sah_RU.UTF-8.
- (LOCALES): Likewise.
- * localedata/SUPPORTED (sah_RU/UTF-8): New entry.
- * localedata/locales/sah_RU: New file.
- * localedata/sah_RU.UTF-8.in: New file.
-
-2018-07-17 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/i386/add_n.S: Include <sysdep.h>, instead of
- "sysdep.h".
- (__mpn_add_n): Save and restore %ebx if IBT is enabed. Add
- _CET_ENDBR to indirect jump targets and adjust jump destination
- for _CET_ENDBR.
- * sysdeps/i386/i686/add_n.S: Include <sysdep.h>, instead of
- "sysdep.h".
- (__mpn_add_n): Save and restore %ebx if IBT is enabed. Add
- _CET_ENDBR to indirect jump targets and adjust jump destination
- for _CET_ENDBR.
- * sysdeps/i386/sub_n.S: Include <sysdep.h>, instead of
- "sysdep.h".
- (__mpn_sub_n): Save and restore %ebx if IBT is enabed. Add
- _CET_ENDBR to indirect jump targets and adjust jump destination
- for _CET_ENDBR.
-
-2018-07-17 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/x86_64/multiarch/strcmp-sse42.S (STRCMP_SSE42): Add
- _CET_ENDBR.
-
-2018-07-17 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/i386/dl-tlsdesc.S (_dl_tlsdesc_return): Add
- _CET_ENDBR.
- (_dl_tlsdesc_undefweak): Likewise.
- (_dl_tlsdesc_dynamic): Likewise.
- (_dl_tlsdesc_resolve_abs_plus_addend): Likewise.
- (_dl_tlsdesc_resolve_rel): Likewise.
- (_dl_tlsdesc_resolve_rela): Likewise.
- (_dl_tlsdesc_resolve_hold): Likewise.
- * sysdeps/x86_64/dl-tlsdesc.S (_dl_tlsdesc_return): Likewise.
- (_dl_tlsdesc_undefweak): Likewise.
- (_dl_tlsdesc_dynamic): Likewise.
- (_dl_tlsdesc_resolve_rela): Likewise.
- (_dl_tlsdesc_resolve_hold): Likewise.
-
-2018-07-17 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/i386/crti.S (_init): Add _CET_ENDBR.
- (_fini): Likewise.
- * sysdeps/x86_64/crti.S (_init): Likewise.
- (_fini): Likewise.
-
-2018-07-17 Rafal Luzynski <digitalfreak@lingonborough.com>
-
- [BZ #23140]
- * localedata/locales/os_RU (mon): Rename to...
- (alt_mon): This.
- (mon): Import from CLDR (genitive case).
-
-2018-07-17 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/x86/cpu-features.c: Always include <dl-cet.h> and
- cet-tunables.h> when CET is enabled.
-
-2018-07-16 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #21598]
- * configure.ac: Add --enable-cet.
- * configure: Regenerated.
- * elf/Makefille (all-built-dso): Add a comment.
- * elf/dl-load.c (filebuf): Moved before "dynamic-link.h".
- Include <dl-prop.h>.
- (_dl_map_object_from_fd): Call _dl_process_pt_note on PT_NOTE
- segment.
- * elf/dl-open.c: Include <dl-prop.h>.
- (dl_open_worker): Call _dl_open_check.
- * elf/rtld.c: Include <dl-prop.h>.
- (dl_main): Call _rtld_process_pt_note on PT_NOTE segment. Call
- _rtld_main_check.
- * sysdeps/generic/dl-prop.h: New file.
- * sysdeps/i386/dl-cet.c: Likewise.
- * sysdeps/unix/sysv/linux/x86/cpu-features.c: Likewise.
- * sysdeps/unix/sysv/linux/x86/dl-cet.h: Likewise.
- * sysdeps/x86/cet-tunables.h: Likewise.
- * sysdeps/x86/check-cet.awk: Likewise.
- * sysdeps/x86/configure: Likewise.
- * sysdeps/x86/configure.ac: Likewise.
- * sysdeps/x86/dl-cet.c: Likewise.
- * sysdeps/x86/dl-procruntime.c: Likewise.
- * sysdeps/x86/dl-prop.h: Likewise.
- * sysdeps/x86/libc-start.h: Likewise.
- * sysdeps/x86/link_map.h: Likewise.
- * sysdeps/i386/dl-trampoline.S (_dl_runtime_resolve): Add
- _CET_ENDBR.
- (_dl_runtime_profile): Likewise.
- (_dl_runtime_resolve_shstk): New.
- (_dl_runtime_profile_shstk): Likewise.
- * sysdeps/linux/x86/Makefile (sysdep-dl-routines): Add dl-cet
- if CET is enabled.
- (CFLAGS-.o): Add -fcf-protection if CET is enabled.
- (CFLAGS-.os): Likewise.
- (CFLAGS-.op): Likewise.
- (CFLAGS-.oS): Likewise.
- (asm-CPPFLAGS): Add -fcf-protection -include cet.h if CET
- is enabled.
- (tests-special): Add $(objpfx)check-cet.out.
- (cet-built-dso): New.
- (+$(cet-built-dso:=.note)): Likewise.
- (common-generated): Add $(cet-built-dso:$(common-objpfx)%=%.note).
- ($(objpfx)check-cet.out): New.
- (generated): Add check-cet.out.
- * sysdeps/x86/cpu-features.c: Include <dl-cet.h> and
- <cet-tunables.h>.
- (TUNABLE_CALLBACK (set_x86_ibt)): New prototype.
- (TUNABLE_CALLBACK (set_x86_shstk)): Likewise.
- (init_cpu_features): Call get_cet_status to check CET status
- and update dl_x86_feature_1 with CET status. Call
- TUNABLE_CALLBACK (set_x86_ibt) and TUNABLE_CALLBACK
- (set_x86_shstk). Disable and lock CET in libc.a.
- * sysdeps/x86/cpu-tunables.c: Include <cet-tunables.h>.
- (TUNABLE_CALLBACK (set_x86_ibt)): New function.
- (TUNABLE_CALLBACK (set_x86_shstk)): Likewise.
- * sysdeps/x86/sysdep.h (_CET_NOTRACK): New.
- (_CET_ENDBR): Define if not defined.
- (ENTRY): Add _CET_ENDBR.
- * sysdeps/x86/dl-tunables.list (glibc.tune): Add x86_ibt and
- x86_shstk.
- * sysdeps/x86_64/dl-trampoline.h (_dl_runtime_resolve): Add
- _CET_ENDBR.
- (_dl_runtime_profile): Likewise.
-
-2018-07-16 Rogerio A. Cardoso <rcardoso@linux.vnet.ibm.com>
-
- [BZ #21895]
- * sysdeps/powerpc/powerpc64/__longjmp-common.S: Remove condition code for
- restore r2 on longjmp.
- * sysdeps/powerpc/powerpc64/Makefile: Added tst-setjmp-bug21895-static to
- test list.
- Added rules to build test tst-setjmp-bug21895-static.
- Added module setjmp-bug21895 and rules to build a shared object from it.
- * sysdeps/powerpc/powerpc64/setjmp-bug21895.c: New test file.
- * sysdeps/powerpc/powerpc64/tst-setjmp-bug21895-static.c: New test file.
-
-2018-07-15 Wilco Dijkstra <wdijkstr@arm.com>
-
- * benchtests/bench-strcasestr.c: Rename __strnlen to strnlen.
- * benchtests/bench-strstr.c: Likewise.
- * string/memmem.c (FASTSEARCH): Define.
- * string/str-two-way.h (two_way_short_needle): Minor cleanups.
- Add support for FASTSEARCH.
- * string/strcasestr.c (AVAILABLE): Use read-ahead __strnlen.
- * string/strstr.c (AVAILABLE): Use read-ahead __strnlen.
- (FASTSEARCH): Define.
- * string/test-strcasestr.c: Rename __strnlen to strnlen.
- * string/test-strstr.c: Likewise.
-
-2018-07-15 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S: Undef
- SHADOW_STACK_POINTER_OFFSET after including <jmp_buf-ssp.h>.
-
-2018-07-14 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
- H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/i386/__longjmp.S: Include <jmp_buf-ssp.h>.
- (__longjmp): Restore shadow stack pointer if shadow stack is
- enabled, SHADOW_STACK_POINTER_OFFSET is defined and __longjmp
- isn't defined for __longjmp_cancel.
- * sysdeps/i386/bsd-_setjmp.S: Include <jmp_buf-ssp.h>.
- (_setjmp): Save shadow stack pointer if shadow stack is enabled
- and SHADOW_STACK_POINTER_OFFSET is defined.
- * sysdeps/i386/bsd-setjmp.S: Include <jmp_buf-ssp.h>.
- (setjmp): Save shadow stack pointer if shadow stack is enabled
- and SHADOW_STACK_POINTER_OFFSET is defined.
- * sysdeps/i386/setjmp.S: Include <jmp_buf-ssp.h>.
- (__sigsetjmp): Save shadow stack pointer if shadow stack is
- enabled and SHADOW_STACK_POINTER_OFFSET is defined.
- * sysdeps/unix/sysv/linux/i386/____longjmp_chk.S: Include
- <jmp_buf-ssp.h>.
- (____longjmp_chk): Restore shadow stack pointer if shadow stack
- is enabled and SHADOW_STACK_POINTER_OFFSET is defined.
- * sysdeps/unix/sysv/linux/x86/Makefile (gen-as-const-headers):
- Remove jmp_buf-ssp.sym.
- * sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S: Include
- <jmp_buf-ssp.h>.
- (____longjmp_chk): Restore shadow stack pointer if shadow stack
- is enabled and SHADOW_STACK_POINTER_OFFSET is defined.
- * sysdeps/x86/Makefile (gen-as-const-headers): Add
- jmp_buf-ssp.sym.
- * sysdeps/x86/jmp_buf-ssp.sym: New dummy file.
- * sysdeps/x86_64/__longjmp.S: Include <jmp_buf-ssp.h>.
- (__longjmp): Restore shadow stack pointer if shadow stack is
- enabled, SHADOW_STACK_POINTER_OFFSET is defined and __longjmp
- isn't defined for __longjmp_cancel.
- * sysdeps/x86_64/setjmp.S: Include <jmp_buf-ssp.h>.
- (__sigsetjmp): Save shadow stack pointer if shadow stack is
- enabled and SHADOW_STACK_POINTER_OFFSET is defined.
-
-2018-07-14 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #22563]
- * nptl/pthread_create.c: Include <tls-setup.h>.
- (__pthread_create_2_1): Call tls_setup_tcbhead.
- * sysdeps/generic/tls-setup.h: New file.
- * sysdeps/x86/nptl/tls-setup.h: Likewise.
- * sysdeps/i386/nptl/tcb-offsets.sym (FEATURE_1_OFFSET): New.
- * sysdeps/x86_64/nptl/tcb-offsets.sym (FEATURE_1_OFFSET):
- Likewise.
- * sysdeps/i386/nptl/tls.h (tcbhead_t): Rename __glibc_reserved1
- to feature_1.
- * sysdeps/x86_64/nptl/tls.h (tcbhead_t): Likewise.
- * sysdeps/x86/sysdep.h (X86_FEATURE_1_IBT): New.
- (X86_FEATURE_1_SHSTK): Likewise.
- (CET_ENABLED): Likewise.
- (IBT_ENABLED): Likewise.
- (SHSTK_ENABLED): Likewise.
-
-2018-07-13 Rafal Luzynski <digitalfreak@lingonborough.com>
-
- [BZ #23208]
- * localedata/Makefile (test-input): Add dsb_DE.UTF-8.
- (LOCALES): Likewise.
- * localedata/dsb_DE.UTF-8.in: New file.
- * localedata/locales/dsb_DE (LC_COLLATE): Fix syntax error.
-
-2018-07-12 Florian Weimer <fweimer@redhat.com>
-
- * nptl/allocatestack.c [_STACK_GROWS_UP] (allocate_stack): Call
- __mprotect, not mprotect.
-
-2018-07-11 Florian Weimer <fweimer@redhat.com>
-
- * io/Makefile (headers): Add bits/statx.h.
-
-2018-07-10 Mike FABIAN <mfabian@redhat.com>
-
- * localedata/charmaps/UTF-8: Use correct Unicode version 11.0.0 in comment.
- * localedata/locales/i18n_ctype: Use correct Unicode version in comments
- and headers.
- * localedata/unicode-gen/utf8_gen.py: Add option to specify Unicode version
- * localedata/unicode-gen/Makefile: Use option to specify Unicode version
- for utf8_gen.py
-
-2018-07-10 Florian Weimer <fweimer@redhat.com>
-
- * io/Makefile (routines): Add statx.
- (tests-internal): Add tst-statx.
- * io/Versions (GLIBC_2.28): Export statx.
- * io/bits/statx.h: New file.
- * io/sys/stat.h [__USE_GNU]: Include it.
- * io/fcntl.h [__USE_GNU] (AT_STATX_SYNC_TYPE)
- (AT_STATX_SYNC_AS_STAT, AT_STATX_FORCE_SYNC, AT_STATX_DONT_SYNC):
- Define.
- * io/statx.c: New file.
- * io/statx_generic.: Likewise.
- * io/tst-statx.: Likewise.
- * include/bits/statx.h: Likewise.
- * sysdeps/unix/sysv/linux/kernel-features.h
- [__LINUX_KERNEL_VERSION >= 0x040B00] (__ASSUME_STATX): Define.
- * sysdeps/unix/sysv/linux/alpha/kernel-features.h
- [__LINUX_KERNEL_VERSION < 0x040D00] (__ASSUME_STATX): Undefine.
- * sysdeps/unix/sysv/linux/ia64/kernel-features.h (__ASSUME_STATX):
- Undefine.
- * sysdeps/unix/sysv/linux/microblaze/kernel-features.h
- [__LINUX_KERNEL_VERSION < 0x040C00] (__ASSUME_STATX): Undefine.
- * sysdeps/unix/sysv/linux/statx.c: New file.
- * manual/filesys.texi: Note that statx is undocumented.
- * sysdeps/**/libc*.abilist: Update.
-
-2018-07-10 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * sysdeps/unix/sysv/linux/tst-ofdlocks-compat.c: Add a comment about
- a kernel issue which lead to test failure in some cases.
-
-2018-07-10 Florian Weimer <fweimer@redhat.com>
-
- [BZ #23036]
- * posix/regexec.c (check_node_accept_bytes): When comparing
- weights, do not compare an extra byte after the end of the
- weights.
-
-2018-07-10 Florian Weimer <fweimer@redhat.com>
-
- * libio/readline.c: Fix copyright year.
- * libio/tst-readline.c Likewise.
- * nss/tst-nss-files-hosts-getent.c: Likewise.
-
-2018-07-06 Florian Weimer <fweimer@redhat.com>
-
- [BZ #18991]
- * nss/nss_files/files-XXX.c (internal_getent): Use
- __libc_readline_unlocked. Seek back to the start of the line if
- parsing failes with ERANGE.
- (get_contents_ret, get_contents): Remove.
- * nss/tst-nss-files-hosts-getent.c: New file.
- * nss/Makefile (tests): Add tst-nss-files-hosts-getent.
- (tst-nss-files-hosts-getent): Link with -ldl.
-
-2018-07-06 Florian Weimer <fweimer@redhat.com>
-
- * include/stdio.h (__libc_readline_unlocked): Declare.
- (__ftello64, __fseeko64): Declare aliases.
- * libio/readline.c: New file.
- * libio/tst-readline.c: Likewise.
- (routines): Add readline.
- (tests-internal): Add tst-readlime.
- * libio/Versions (GLIBC_PRIVATE): Export __fseeko64, __ftello64,
- __libc_readline_unlocked.
- * libio/fseeko.c (__fseeko): Rename from fseeko.
- (fseeko): Add alias.
- [__OFF_T_MATCHES_OFF64_T] (fseeko64, __fseeko64): Likewise.
- * libio/fseeko64.c (__fseeko64): Rename from fseeko64.
- (fseeko64): Add alias.
- * libio/ftello.c [__OFF_T_MATCHES_OFF64_T] (__ftello64): Add alias.
- * libio/ftello64.c (__ftello64): Rename from ftello64.
- (ftello64): Add alias.
-
-2018-07-06 Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- * sysdeps/unix/sysv/linux/aarch64/dl-procinfo.h (HWCAP_IMPORTANT): Add
- HWCAP_ATOMICS.
-
-2018-07-06 Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- * sysdeps/unix/sysv/linux/aarch64/cpu-features.c (init_cpu_features):
- Use dl_hwcap without masking.
- * sysdeps/unix/sysv/linux/aarch64/dl-procinfo.h (HWCAP_IMPORTANT):
- Remove HWCAP_CPUID.
-
-2018-07-06 Florian Weimer <fweimer@redhat.com>
-
- * conform/conformtest.pl (checknamespace): Escape literal braces
- in regular expressions.
-
-2018-07-06 Amit Pawar <amit.pawar@amd.com>
-
- * sysdeps/x86/cpu-features.c (get_common_indeces):
- AVX_Fast_Unaligned_Load is enabled when AVX2 is detected.
- * sysdeps/x86/cpu-features.c (init_cpu_features):
- AVX_Fast_Unaligned_Load is disabled for Excavator core.
-
-2018-07-05 Florian Weimer <fweimer@redhat.com>
-
- * csu/Makefile (CFLAGS-static-reloc.os): Build with stack
- protector.
- (CFLAGS-elf-init.oS): Likewise.
-
-2018-07-05 Florian Weimer <fweimer@redhat.com>
- Carlos O'Donell <carlos@redhat.com>
-
- * debug/Makefile (CFLAGS-stack_chk_fail_local.c): Remove
- $(no-stack-protector). stack_chk_fail_local.c can be compiled
- with stack protector enabled because there is no risk of infinite
- recursion.
-
-2018-07-05 Maciej W. Rozycki <macro@mips.com>
-
- [BZ #19818]
- [BZ #23307]
- * libc-abis (ABSOLUTE): New ABI.
- * sysdeps/unix/sysv/linux/mips/libc-abis (ABSOLUTE): New ABI.
- * NEWS: Mention the new ABI.
-
-2018-07-05 Florian Weimer <fweimer@redhat.com>
-
- [BZ # 17662]
- * libio/stdio.h [__USE_GNU] (RENAME_NOREPLACE, RENAME_EXCHANGE)
- (RENAME_WHITEOUT): Define.
- [__USE_GNU] (renameat2): Declare.
- * stdio-common/Makefile (routines): Add renameat2.
- (tests): Add tst-renameat2.
- * stdio-common/Versions (GLIBC_2_28): Export renameat2.
- * stdio-common/renameat2.c: New file.
- * stdio-common/tst-renameat2.c: Likewise.
- * sysdeps/unix/sysv/linux/renameat2.c: Likewise.
- * manual/filesys.texi (Temporary Files): Note that renameat2 is
- undocumented.
- * sysdeps/unix/sysv/linux/kernel-features.h
- [__LINUX_KERNEL_VERSION >= 0x030F00] (__ASSUME_RENAMEAT2): Define.
- * sysdeps/unix/sysv/linux/alpha/kernel-features.h
- [__LINUX_KERNEL_VERSION < 0x031100] (__ASSUME_RENAMEAT2): Undefine.
- * sysdeps/unix/sysv/linux/microblaze/kernel-features.h
- [__LINUX_KERNEL_VERSION < 0x031100] (__ASSUME_RENAMEAT2): Undefine.
- * sysdeps/unix/sysv/linux/sh/kernel-features.h
- [__LINUX_KERNEL_VERSION < 0x040800] (__ASSUME_RENAMEAT2): Undefine.
- * sysdeps/unix/sysv/linux/sparc/kernel-features.h
- [__LINUX_KERNEL_VERSION < 0x031000] (__ASSUME_RENAMEAT2): Undefine.
- * include/stdio.h (__renameat): Add alias for renameat.
- * stdio-common/renameat.c (__renameat): Rename from renameat.
- Add hidden definition and alias.
- * sysdeps/unix/sysv/linux/renameat.c: Likewise.
- * sysdeps/mach/hurd/renameat.c: Likewise.
- * sysdeps/**/libc*.abilist: Add renameat2.
-
-2018-07-04 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * posix/bug-regex33.c: Fix build after regex sync.
-
-2018-07-04 Carlos O'Donell <carlos@redhat.com>
-
- [BZ #23164]
- * localedata/tst-langinfo-setlocale.c: New file.
- * localedata/tst-langinfo-setlocale-static.c: New file.
- * localedata/tst-langinfo-newlocale.c: New file.
- * localedata/tst-langinfo-newlocale-static.c: New file.
- * localedata/Makefile (test-srcs): Remove tst-langinfo. Add
- tst-langinfo-setlocale, tst-langinfo-setlocale-static,
- tst-langinfo-newlocale, tst-langinfo-newlocale-static.
- (tests-static): Remove tst-langinfo-static. Add
- tst-langinfo-newlocale-static, tst-langinfo-setlocale-static.
- (tests-special): Remove $(objpfx)tst-langinfo.out,
- $(objpfx)tst-langinfo-static.out. Add
- $(objpfx)tst-langinfo-setlocale.out,
- $(objpfx)tst-langinfo-newlocale.out,
- $(objpfx)tst-langinfo-setlocale-static.out,
- $(objpfx)tst-langinfo-newlocale-static.out.
- ($(objpfx)tst-langinfo.out): Remove.
- ($(objpfx)tst-langinfo-static.out): Remove.
- ($(objpfx)tst-langinfo-newlocale.out): New target.
- ($(objpfx)tst-langinfo-newlocale-static.out): New target.
- (test-xfail-tst-langinfo-newlocale-static): Add.
- ($(objpfx)tst-langinfo-setlocale.out): New target.
- ($(objpfx)tst-langinfo-setlocale-static.out): New target.
- * localedata/tst-langinfo.c: Call test_locale.
- * localedata/tst-langinfo.sh: Add LC_MONETARY CURRENCY_SYMBOL test
- data.
-
-2018-07-04 Florian Weimer <fweimer@redhat.com>
-
- testrun.sh: Implement --tool=strace, --tool=valgrind
- * Makefile (testrun-script): Define variable.
- (testrun.sh): Use variable.
- * manual/install.texi (Tools for Compilation): make 4.0 or later
- is required.
- * configure.ac: Check for make 4.0 or later.
- * INSTALL: Regenerate.
- * configure: Likewise.
-
-2018-07-04 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- [BZ #23233]
- [BZ #21163]
- [BZ #18986]
- [BZ #13762]
- * posix/Makefile (tests): Add bug-regex37 and bug-regex38.
- * posix/PCRE.tests: Remove invalid test.
- * posix/bug-regex28.c: Fix expected values for used syntax.
- * posix/bug-regex37.c: New file.
- * posix/bug-regex38.c: Likewise.
- * posix/regcomp.c: Sync with gnulib.
- * posix/regex.c: Likewise.
- * posix/regex.h: Likewise.
- * posix/regex_internal.c: Likewise.
- * posix/regex_internal.h: Likewise.
- * posix/regexec.c: Likewise.
-
-2018-06-26 Mike FABIAN <mfabian@redhat.com>
-
- [BZ #23308]
- * unicode-gen/Makefile (UNICODE_VERSION): Set to 11.0.0.
- * localedata/unicode-gen/DerivedCoreProperties.txt: Update to Unicode 11.0.0.
- * localedata/unicode-gen/EastAsianWidth.txt: likewise.
- * localedata/unicode-gen/PropList.txt: likewise.
- * localedata/unicode-gen/UnicodeData.txt: likewise.
- * localedata/charmaps/UTF-8: Regenerate.
- * localedata/locales/i18n_ctype: likewise.
- * localedata/locales/tr_TR: likewise.
- * localedata/locales/translit_circle: likewise.
- * localedata/locales/translit_cjk_compat: likewise.
- * localedata/locales/translit_combining: likewise.
- * localedata/locales/translit_compat: likewise.
- * localedata/locales/translit_font: likewise.
- * localedata/locales/translit_fraction: likewise.
-
-2018-07-03 Florian Weimer <fweimer@redhat.com>
-
- [BZ #23363]
- * stdio-common/tst-printf.c (DEC, INT, UNS, fp_test): Remove.
- * stdio-common/tst-printf.sh: Adjust expected output.
- * LICENSES: Update.
-
-2018-07-03 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * sysdeps/mach/hurd/i386/libc.abilist [GLIBC_2.28] (fcntl): Remove
- symbol.
-
-2018-07-02 Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
-
- * stdio-common/Makefile (test-srcs): Add tst-printfsz-islongdouble.
- (tests-special) Add $(objpfx)tst-printfsz-islongdouble.out.
- ($(objpfx)tst-printfsz-islongdouble.out): New build and run rule.
- * stdio-common/tst-printfsz-islongdouble.c: New file.
- * stdio-common/tst-printfsz-islongdouble.sh: Likewise.
- * sysdeps/ieee754/ldbl-128ibm-compat/Makefile:
- [subdir == stdio-common] (routines): Add ieee128-printf_size.
- [subdir == stdio-common] (tests-internal): Add
- test-printf-size-ieee128, and test-printf-size-ibm128.
- [subdir == stdio-common] (CFLAGS-test-printf-size-ieee128.c)
- (CFLAGS-test-printf-size-ibm128.c): New variables.
- [subdir == stdio-common] (tests-special): Add
- $(objpfx)test-printf-size-ieee128.out and
- $(objpfx)test-printf-size-ibm128.out.
- [subdir == stdio-common] ($(objpfx)test-printf-size-ieee128.out)
- ($(objpfx)test-printf-size-ibm128.out): New build and run rules.
- * sysdeps/ieee754/ldbl-128ibm-compat/Versions (libc): Add
- __printf_sizeieee128.
- * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-printf_size.c:
- New file.
- * sysdeps/ieee754/ldbl-128ibm-compat/test-printf-size-ibm128.c:
- Likewise.
- * sysdeps/ieee754/ldbl-128ibm-compat/test-printf-size-ieee128.c:
- Likewise.
-
-2018-07-02 Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- * sysdeps/ieee754/flt-32/e_powf.c (__powf): Use uint32_t.
- (exp2f_inline): Likewise.
- * sysdeps/ieee754/flt-32/math_config.h (__math_oflowf): Likewise.
- (__math_uflowf): Likewise.
- (__math_may_uflowf): Likewise.
- (__math_divzerof): Likewise.
- (__math_invalidf): Likewise.
- * sysdeps/ieee754/flt-32/math_errf.c (xflowf): Likewise.
- (__math_oflowf): Likewise.
- (__math_uflowf): Likewise.
- (__math_may_uflowf): Likewise.
- (__math_divzerof): Likewise.
- (__math_invalidf): Likewise.
-
-2018-06-29 DJ Delorie <dj@redhat.com>
- Carlos O'Donell <carlos@redhat.com>
-
- [BZ #23329]
- * include/libc-symbols.h: Comment the freeres framework.
- * include/set-hooks.h: Include libc-symbols.h. Fix comment.
- * dlfcn/Makefile (libdl-routines): Add dlfreeres.
- * dlfcn/Versions (GLIBC_PRIVATE): Add __libdl_freeres.
- * dlfcn/dlerror.c: Include libc-symbols.h
- (__dlerror_main_freeres): New function.
- * dlfcn/dlfreeres.c: New file.
- * dlfcn/sdlfreeres.c: New file.
- * include/dlfcn.h: Declare __dlerror_main_freeres.
- * malloc/set-freeres.c: Declare __libdl_freeres, and
- __libpthread_freeres.
- (__libc_subfreeres): Call __libdl_freeres, and __libpthread_freeres if
- the releavant libraries are loaded.
- * malloc/thread-freeres.c: Add comments.
- * nptl/Makefile (libpthread-routines): Add nptlfreeres.
- * nptl/Version (GLIBC_PRIVATE): Add __libpthread_freeres.
- * nptl/allocatestack.c (__nptl_free_stacks): New function.
- (__free_stacks): Rename to...
- (free_stacks): ...this. Mark static.
- (queue_stack): Call free_stacks.
- * nptl/libc_pthread_init.c [SHARED] (freeres_libpthread): Delete.
- * nptl/nptl-init.c: Delete delcaration of nptl_freeres.
- * sysdeps/nptl/pthread-functions.h (pthread_functions): Remove
- ptr_freeres element from struct.
- (pthread_functions): Remove .ptr_freeres from struct initializer.
- [SHARED] (nptl_freeres): Remove.
- * nptl/nptlfreeres.c: New file.
- * nptl/pthreadP.h
- [IS_IN (libpthread) && SHARED ] (__unwind_freeres): Rename to...
- [IS_IN (libpthread)] (__nptl_unwind_freeres): ...this. Mark
- attribute_hidden.
- (__free_stacks): Rename to...
- (__nptl_stacks_freeres): ...this.
- (__shm_directory_freeres): Declare.
- * nptl/unwind-forcedunwind.c (__unwind_freeres): Rename to...
- (__nptl_unwind_freeres): ...this.
- * resolv/res-close.c: Add comment.
- * resolv/resolv_conf.c: Include libc-symbols.h.
- * string/strerror_l.c: Include libc-symbols.h.
- * sunrpc/rpc_thread.c: Include libc-symbols.h.
- * sysdeps/mach/strerror_l.c: Inlcude libc-symbols.h
- * sysdeps/unix/sysv/linux/shm-directory.c (freeit): Rename to...
- [IS_IN (libpthread)] (__shm_directory_freeres): ...this.
-
-2018-06-29 Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>
-
- * stdlib/tst-strfmon_l.c: Add tests for long double.
-
-2018-06-29 Michael Wolf <milupo@sorbzilla.de>
-
- [BZ #23208]
- * localedata/SUPPORTED (dsb_DE/UTF-8): New entry.
- * localedata/locales/dsb_DE: New file.
-
-2018-06-29 Rafal Luzynski <digitalfreak@lingonborough.com>
-
- [BZ #23140]
- * localedata/locales/hy_AM (mon): Synchronize with CLDR (lowercase,
- genitive case).
- (alt_mon): New entry, import from CLDR (nominative case).
-
-2018-06-29 Sylvain Lesage <severo@rednegra.net>
-
- [BZ #22996]
- * localedata/locales/es_BO (LC_PAPER): Change to “copy "en_US"â€.
-
-2018-06-29 Siddhesh Poyarekar <siddhesh@sourceware.org>
-
- * sysdeps/aarch64/multiarch/memcpy_falkor.S (__memcpy_falkor):
- Use vector registers.
-
- * sysdeps/aarch64/multiarch/memmove_falkor.S
- (__memcpy_falkor): Use vector registers.
-
-2018-06-29 Martin Sebor <msebor@redhat.com>
-
- * manual/stdio.texi (Customizing Printf): Mention interaction
- with GCC built-ins.
-
-2018-06-29 Maciej W. Rozycki <macro@mips.com>
-
- [BZ #23307]
- * elf/dl-lookup.c (check_match): Do not reject a symbol whose
- `st_value' is 0 if `st_shndx' is SHN_ABS.
- * elf/tst-absolute-zero.c: New file.
- * elf/tst-absolute-zero-lib.c: New file.
- * elf/tst-absolute-zero-lib.lds: New file.
- * elf/Makefile (tests): Add `tst-absolute-zero'.
- (modules-names): Add `tst-absolute-zero-lib'.
- (LDLIBS-tst-absolute-zero-lib.so): New variable.
- ($(objpfx)tst-absolute-zero-lib.so): New dependency.
- ($(objpfx)tst-absolute-zero: New dependency.
-
-2018-06-29 Zack Weinberg <zackw@panix.com>
-
- * configure.ac: New command-line option --disable-crypt.
- Force --disable-nss-crypt when --disable-crypt is given, with a
- warning if it was explicitly enabled.
- * configure: Regenerate.
- * config.make.in: New boolean substitution variable $(build-crypt).
- * Makeconfig: Only include 'crypt' in all-subdirs and rpath-dirs
- when $(build-crypt).
- * manual/install.texi: Document --disable-crypt.
- * INSTALL: Regenerate.
-
- * crypt/Makefile: Remove code conditional on $(crypt-in-libc),
- which is never set.
- * conform/Makefile: Only include libcrypt.a in
- linknamespace-libs-xsi and linknamespace-libs-XPG4
- when $(build-crypt).
- * elf/Makefile (CFLAGS-tst-linkall-static.c): Only define
- USE_CRYPT to 1 when $(build-crypt).
- (tst-linkall-static): Only link libcrypt.a when $(build-crypt).
- (localplt-built-dso): Only add libcrypt.so when $(build-crypt).
- * elf/tst-linkall-static.c: Only include crypt.h when USE_CRYPT.
-
-2018-06-29 Zack Weinberg <zackw@panix.com>
-
- * crypt/crypt.h, posix/unistd.h: Update comments and
- prototypes for crypt and crypt_r.
-
- * manual/crypt.texi (Cryptographic Functions): New initial
- exposition.
- (crypt): Section renamed to 'Passphrase Storage'. Full rewrite.
- (Unpredictable Bytes): Improve initial exposition. Clarify error
- behavior of getentropy and getrandom.
- * manual/examples/genpass.c: Generate a salt using getentropy
- instead of the current time. Use hash $5$ (SHA-2-256).
- * manual/examples/testpass.c: Demonstrate validation against
- hashes generated with three different one-way functions.
-
- * manual/intro.texi: crypt.texi does not need an overview
- anymore.
-
- * manual/nss.texi, manual/memory.texi, manual/socket.texi
- * manual/terminal.texi: Consistently refer to "passphrases"
- * instead of "passwords", and to the "user database" instead
- * of the "password database".
- * manual/users.texi: Similarly. Add notes about how actual
- passphrase hashes are now stored in the shadow database.
- Remove 20-year-old junk todo note.
-
-2018-06-29 Zack Weinberg <zackw@panix.com>
-
- * manual/crypt.texi: Use a normal top-level @node declaration.
- Move most of the introductory text to the 'crypt' section.
- Move the example programs below the @deftypefun for 'crypt_r'.
- Move the 'getpass' section...
- * manual/terminal.texi: ...here.
-
-2018-06-29 Zack Weinberg <zackw@panix.com>
- Florian Weimer <fweimer@redhat.com>
-
- * posix/unistd.h: Do not declare encrypt.
- (_XOPEN_CRYPT): Remove macro definition.
- (crypt): Declare only for _USE_MISC.
- * stdlib/stdlib.h: Do not declare setkey.
- * crypt/crypt.h: Do not declare encrypt, setkey, encrypt_r, setkey_r.
- * sunrpc/Makefile: Do not install des_crypt.h nor rpc_des.h.
-
- * crypt/crypt-entry.c: Make fcrypt a compat symbol.
- * crypt/crypt_util.c: Make encrypt, encrypt_r, setkey, setkey_r
- into compat symbols. Don't define initial_perm if it's not
- going to be used.
- * crypt/cert.c: Link explicitly with the expected versions for
- setkey and encrypt. If they are not available at all, mark
- the test as unsupported.
-
- * sunrpc/des_crypt.c: Unconditionally block linkage with
- cbc_crypt and ecb_crypt for new binaries.
- * sunrpc/des_soft.c: Unconditionally block linkage with
- des_setparity for new binaries.
-
- * manual/crypt.texi: Remove the entire "DES Encryption"
- section. Also remove the paragraph talking about FIPS 140-2
- from the introduction.
- * manual/string.texi (strfry, memfrob): Revise. Recommend use
- of libgcrypt for "real" encryption, not DES.
- * manual/conf.texi (Constants for Sysconf): Mention that
- _XOPEN_CRYPT is no longer impelemented.
-
- * conform/data/unistd.h-data: Remove crypt function declaration.
-
-2018-06-29 Florian Weimer <fweimer@redhat.com>
-
- [BZ #23351]
- * malloc/hooks.c: Update comments on restoring of dumped heaps.
- (disallow_malloc_check): Remove variable.
- (__malloc_check_init): Adjust.
- (malloc_set_state): Update comment.
- * malloc/malloc.c (__malloc_get_state, __malloc_set_state): Remove
- declarations.
-
-2018-06-29 Rafal Luzynski <digitalfreak@lingonborough.com>
-
- [BZ #23140]
- * localedata/locales/ast_ES (mon): Rename to...
- (alt_mon): This.
- (mon): Import from CLDR (genitive case).
-
-2018-06-29 Daniel Alvarez <dalvarez@redhat.com>
- Jakub Sitnicki <jkbs@redhat.com>
-
- [BZ #21812]
- * sysdeps/unix/sysv/linux/ifaddrs.c (getifaddrs_internal): Retry
- on NLM_F_DUMP_INTR.
-
-2018-06-28 Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- * manual/llio.texi: Remove spurious space.
-
-2018-06-28 Florian Weimer <fweimer@redhat.com>
-
- [BZ #23349]
- * time/bits/types/struct_timespec.h: Change header inclusion guard to
- _STRUCT_TIMESPEC.
-
-2018-06-28 Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>
-
- * sysdeps/ieee754/ldbl-128ibm-compat/Versions: Add __strfromieee128,
- __strtoieee128, __strtoieee128_l,__wcstoieee128 and __wcstoieee128_l.
- * sysdeps/ieee754/ldbl-128ibm-compat/strfromf128.c: New file.
- * sysdeps/ieee754/ldbl-128ibm-compat/strtof128.c: New file.
- * sysdeps/ieee754/ldbl-128ibm-compat/strtof128_l.c: New file.
- * sysdeps/ieee754/ldbl-128ibm-compat/wcstof128.c: New file.
- * sysdeps/ieee754/ldbl-128ibm-compat/wcstof128_l.c: New file.
-
-2018-06-27 Maciej W. Rozycki <macro@mips.com>
-
- [BZ #23266]
- * nis/nss_nisplus/nisplus-parser.c (_nss_nisplus_parse_pwent):
- Copy and null-terminate entries that are not terminated, in
- addition to empty ones.
-
-2018-06-27 Florian Weimer <fweimer@redhat.com>
-
- [BZ #18023]
- * include/alloca.h (stackinfo_alloca_round, extend_alloca)
- (extend_alloca_account): Remove.
- * manual/stdio.texi (Variable Arguments Output): Update comment.
-
-2018-06-27 Joseph Myers <joseph@codesourcery.com>
-
- * nptl/sockperf.c: Remove file.
-
-2018-06-27 Florian Weimer <fweimer@redhat.com>
-
- [BZ #18023]
- * elf/dl-deps.c (_dl_map_object_deps): Use struct
- scratch_buffer instead of extend_alloca.
-
-2018-06-27 Florian Weimer <fweimer@redhat.com>
-
- [BZ #18023]
- * sysdeps/unix/sysv/linux/gethostid.c (gethostid): Use struct
- scratch_buffer instead of extend_alloca. Update comments.
-
-2018-06-27 Florian Weimer <fweimer@redhat.com>
-
- [BZ #18023]
- * posix/wordexp.c (parse_tilde): Use struct scratch_buffer
- instead of extend_alloca.
-
-2018-06-26 Joseph Myers <joseph@codesourcery.com>
-
- [BZ #13888]
- * posix/Makefile (CFLAGS-tst-spawn3.c): New variable.
- * posix/tst-spawn3.c (do_test): Put tst-spwan3.pid in OBJPFX, not
- /tmp.
- * scripts/test-installation.pl: Put temporary files in build
- directory, not /tmp.
- * stdio-common/Makefile (CFLAGS-bug3.c): New variable.
- (CFLAGS-bug4.c): Likewise.
- (CFLAGS-bug5.c): Likewise.
- (CFLAGS-test-fseek.c): Likewise.
- (CFLAGS-test-popen.c): Likewise.
- (CFLAGS-test_rdwr.c): Likewise.
- * stdio-common/bug3.c (main): Put temporary file in OBJPFX, not
- /tmp.
- * stdio-common/bug4.c (main): Likewise.
- * stdio-common/bug5.c (main): Likewise.
- * stdio-common/test-fseek.c (TESTFILE): Likewise.
- * stdio-common/test-popen.c (do_test): Likewise.
- * stdio-common/test_rdwr.c (main): Likewise.
-
-2018-06-26 Patsy Franklin <pfrankli@redhat.com>
-
- * nptl/sem_open.c [!__HAVE_64B_ATOMICS] (sem_open): Don't update pad.
- (sem_open): Set sem.newsem.pad to zero for valgrind.
-
-2018-06-26 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- [BZ #20251]
- * NEWS: Mention fcntl64 addition.
- * csu/check_fds.c: Replace __fcntl_nocancel by __fcntl64_nocancel.
- * login/utmp_file.c: Likewise.
- * sysdeps/posix/fdopendir.c: Likewise.
- * sysdeps/posix/opendir.c: Likewise.
- * sysdeps/unix/pt-fcntl.c: Likewise.
- * include/fcntl.h (__libc_fcntl64, __fcntl64,
- __fcntl64_nocancel_adjusted): New prototype.
- (__fcntl_nocancel_adjusted): Remove prototype.
- * io/Makefile (routines): Add fcntl64.
- (CFLAGS-fcntl64.c): New rule.
- * io/Versions [GLIBC_2.28] (fcntl64): New symbol.
- [GLIBC_PRIVATE] (__libc_fcntl): Rename to __libc_fcntl64.
- * io/fcntl.h (fcntl64): Add prototype and redirect if
- __USE_FILE_OFFSET64 is defined.
- * io/fcntl64.c: New file.
- * manual/llio.text: Add a note for which commands fcntl acts a
- cancellation point.
- * nptl/Makefile (CFLAGS-fcntl64.c): New rule.
- * sysdeps/mach/hurd/fcntl.c: Alias fcntl to fcntl64 symbols.
- * sysdeps/mach/hurd/i386/libc.abilist [GLIBC_2.28] (fcntl, fcntl64):
- New symbols.
- * sysdeps/unix/sysv/linux/fcntl.c (__libc_fcntl): Fix F_GETLK64,
- F_OFD_GETLK, F_SETLK64, F_SETLKW64, F_OFD_SETLK, and F_OFD_SETLKW for
- non-LFS case.
- * sysdeps/unix/sysv/linux/fcntl64.c: New file.
- * sysdeps/unix/sysv/linux/fcntl_nocancel.c (__fcntl_nocancel): Rename
- to __fcntl64_nocancel.
- (__fcntl_nocancel_adjusted): Rename to __fcntl64_nocancel_adjusted.
- * sysdeps/unix/sysv/linux/not-cancel.h (__fcntl_nocancel): Rename
- to __fcntl64_nocancel.
- * sysdeps/generic/not-cancel.h: Likewise.
- * sysdeps/unix/sysv/linux/tst-ofdlocks.c: New file.
- * sysdeps/unix/sysv/linux/Makefile (tests): Add tst-ofdlocks.
- * sysdeps/unix/sysv/linux/aarch64/libc.abilist [GLIBC_2.28]
- (fcntl64): New symbol.
- * sysdeps/unix/sysv/linux/alpha/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/ia64/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist: Likewise.
- * sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/arm/libc.abilist [GLIBC_2.28] (fcntl,
- fcntl64): Likewise.
- * sysdeps/unix/sysv/linux/hppa/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/i386/libc.abilis: Likewise.
- * sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/microblaze/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/nios2/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sh/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise.
-
-2018-06-26 Florian Weimer <fweimer@redhat.com>
-
- Run thread shutdown functions in an explicit order.
- * malloc/thread-freeres.c (__libc_thread_subfreeres): Remove hook
- definition.
- (__libc_thread_freeres): Call thread shutdown functions
- explicitly.
- * include/rpc/rpc.h (__rpc_thread_destroy): Add hidden attribute.
- * include/string.h (__strerror_thread_freeres): Declare.
- * malloc/arena.c (__malloc_arena_thread_freeres): Renamed from
- arena_thread_freeres. No longer static. Remove thread shutdown
- hook registration.
- * malloc/malloc-internal.h (__malloc_arena_thread_freeres):
- Declare.
- * resolv/res-close.c (__res_thread_freeres): Renamed from
- res_thread_freeres. No longer static. Remove thread shutdown
- hook registration.
- * resolv/resolv-internal.h (__res_thread_freeres): Declare.
- * resolv/resolv_conf.c (freeres): Remove incorrect section
- attribute and use libc_freeres_fn.
- * string/strerror_l.c (__strerror_thread_freeres): Renamed from
- strerror_thread_freeres. No longer static. Remove thread
- shutdown hook registration.
- * sysdeps/mach/strerror_l.c (__strerror_thread_freeres): Likewise.
- * sunrpc/rpc_thread.c (__rpc_thread_destroy): Remove thread
- shutdown hook registration.
- * Makerules (shlib.lds): Do not provide section boundary symbols
- for __libc_thread_subfreeres.
- * manual/memory.texi (Basic Allocation): Update comment.
-
-2018-06-26 Florian Weimer <fweimer@redhat.com>
-
- Remove always-defined _RPC_THREAD_SAFE_ macro.
- * sunrpc/Makefile (sunrpc-CPPFLAGS, CPPFLAGS, BUILD_CPPFLAGS):
- Do not define _RPC_THREAD_SAFE_.
- * include/rpc/rpc.h: Remove _RPC_THREAD_SAFE_ preprocessor
- conditional.
- * sunrpc/clnt_perr.c: Likewise.
- * sunrpc/clnt_raw.c: Likewise.
- * sunrpc/clnt_simp.c: Likewise.
- * sunrpc/key_call.c: Likewise.
- * sunrpc/rpc_common.c: Likewise.
- * sunrpc/rpc_main.c: Likewise.
- * sunrpc/rpc_thread.c: Likewise.
- * sunrpc/svc.c: Likewise.
- * sunrpc/svc_raw.c: Likewise.
- * sunrpc/svc_simple.c: Likewise.
- * sumrpc/svcauth_des.c: Likewise.
-
-2018-06-26 Florian Weimer <fweimer@redhat.com>
-
- * libio/Makefile (tests-internal): Add tst-vtables,
- tst-vtables-interposed.
- * libio/tst-vtables.c: New file.
- * libio/tst-vtables-common.c: Likewise.
- * libio/tst-vtables-interposed.c: Likewise.
-
-2018-06-26 Florian Weimer <fweimer@redhat.com>
-
- * support/support_test_main.c (support_test_main): Only call
- setvbuf if not disables.
- * support/test-driver.c (main): Check TEST_NO_SETVBUF.
- * support/test-driver.h (struct test_config): Add no_setvbuf member.
-
-2018-06-26 Florian Weimer <fweimer@redhat.com>
-
- [BZ #23313]
- * libio/vtables.c (check_stdfiles_vtables): New ELF constructor.
-
-2018-06-25 Florian Weimer <fweimer@redhat.com>
-
- [BZ #18023]
- * nss/nss_files/files-initgroups.c (_nss_files_initgroups_dyn):
- Use struct scratch_buffer instead of extend_alloca.
-
-2018-06-25 Florian Weimer <fweimer@redhat.com>
-
- [BZ #18023]
- * nss/getent.c (initgroups_keys): Use dynarray instead of
- extend_alloca.
-
-2018-06-25 Florian Weimer <fweimer@redhat.com>
-
- [BZ #18023]
- * nis/nss_nis/nis-initgroups.c (get_uid, _nss_nis_initgroups_dyn):
- Use struct scratch_buffer instead of extend_alloca.
-
-2018-06-25 Florian Weimer <fweimer@redhat.com>
-
- [BZ #18023]
- * nss/nss_compat/compat-initgroups.c (getgrent_next_nss): Fall
- back to malloc directly, without stack allocations.
-
-2018-06-25 Florian Weimer <fweimer@redhat.com>
-
- [BZ #18023]
- * nscd/aicache.c (addhstaiX): Use struct scratch_buffer instead
- of extend_alloca.
-
-2018-06-25 Florian Weimer <fweimer@redhat.com>
-
- [BZ #18023]
- * nscd/grpcache.c (addgrbyX): Use struct scratch_buffer instead
- of extend_alloca.
- * nscd/hstcache.c (addhstbyX): Likewise.
- * nscd/pwdcache.c (addpwbyX): Likewise.
- * nscd/servicescache.c (addservbyX): Likewise.
-
-2018-06-25 Florian Weimer <fweimer@redhat.com>
-
- [BZ #18023]
- * nscd/connections.c (read_cmdline): New function.
- (restart): Use it. Update comment.
-
-2018-06-25 Rafal Luzynski <digitalfreak@lingonborough.com>
-
- [BZ #23140]
- * localedata/locales/csb_PL (mon): Rename to...
- (alt_mon): This.
- (abmon): Rename to...
- (ab_alt_mon): This.
- (mon): Add with proper genitive forms, copy from Wikipedia.
- (abmon): Likewise.
-
-2018-06-25 Rafal Luzynski <digitalfreak@lingonborough.com>
-
- [BZ #19485]
- * localedata/locales/csb_PL (mon): Fix typos:
- "łżëkwiôt" -> "łżëkwiat" (April); "lëpinc" -> "lëpińc" (July).
- (yesstr): Add, value is "jo".
- (nostr): Add, value is "nié".
-
-2018-06-22 Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
-
- * sysdeps/m68k/m680x0/fpu/s_log1p.c: Set as the generic file for
- all log1p and significand functions on m680x0.
- * sysdeps/m68k/m680x0/fpu/s_log1pf.c: Include s_log1p.c instead
- of s_significand.c..
- * sysdeps/m68k/m680x0/fpu/s_log1pl.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_significandf.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_significandl.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_significand.c: Move all the code to
- s_log1p.c and include it..
-
-2018-06-21 Vincent Chen <vincentc@andestech.com>
-
- * elf/elf.h (R_NDS32_NONE): New define.
- (R_NDS32_32_RELA): Likewise.
- (R_NDS32_COPY): Likewise.
- (R_NDS32_GLOB_DAT): Likewise.
- (R_NDS32_JUMP_SLOT): Likewise.
- (R_NDS32_RELATIVE): Likewise.
- (R_NDS32_TLS_TPOFF): Likewise.
- (R_NDS32_TLS_DESC): Likewise.
-
-2018-06-21 Mark Wielaard <mark@klomp.org>
-
- * elf/elf.h (R_BPF_MAP_FD): Removed.
- (R_BPF_64_64, R_BPF_64_32): New.
-
-2018-06-21 Florian Weimer <fweimer@redhat.com>
-
- [BZ #23253]
- * sysdeps/generic/math_private.h (default_libc_feholdsetround_ctx):
- Renamed from libc_feholdsetround_ctx.
- (default_libc_feresetround_ctx): Renamed from
- libc_feresetround_ctx.
- (default_libc_feholdsetround_noex_ctx): Renamed from
- libc_feholdsetround_noex_ctx.
- (default_libc_feresetround_noex_ctx): Renamed from
- libc_feresetround_noex_ctx.
- [!HAVE_RM_CTX] (libc_feholdsetround_ctx, libc_feresetround_ctx)
- (libc_feholdsetround_noex_ctx, libc_feresetround_noex_ctx): Macros
- forwardning to the old implementations under the new names.
- * sysdeps/i386/fpu/fenv_private.h [__SSE_MATH__]
- (libc_feholdexcept_setround_ctx, libc_fesetenv_ctx)
- (libc_feupdateenv_ctx, libc_feholdsetround_ctx)
- (libc_feresetround_ctx): Forward to default implements for i386
- and MATH_SET_BOTH_ROUNDING_MODES.
- * sysdeps/i386/Makefile [$(subdir) == math] (CFLAGS-e_gamma_r.c):
- Add -DMATH_SET_BOTH_ROUNDING_MODES.
-
-2018-06-20 Joseph Myers <joseph@codesourcery.com>
-
- * string/tst-cmp.c: Include <libc-diag.h>.
- (strncmp_max): Disable -Wstringop-overflow= around call to
- strncmp.
- (strncasecmp_max): Disable -Wstringop-overflow= around call to
- strncasecmp.
-
- * string/bug-strpbrk1.c: Include <libc-diag.h>.
- (main): Disable -Wunused-value around call to strpbrk.
- * string/bug-strspn1.c: Include <libc-diag.h>.
- (main): Disable -Wunused-value around call to strspn.
-
-2018-06-20 Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
- Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
-
- * sysdeps/ieee754/ldbl-128ibm-compat/Versions: New file.
- * sysdeps/ieee754/ldbl-128ibm-compat/libm-alias-float128.h: New file.
-
-2018-06-20 Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
-
- * math/Makefile (libm-calls): Move s_significandF to...
- (gen-libm-calls): ... here.
- * math/s_significand_template.c: New file.
- * math/s_significand.c: Removed.
- * math/s_significandf.c: Removed.
- * math/s_significandl.c: Removed.
- * sysdeps/ieee754/ldbl-opt/s_significand.c: Removed.
- * sysdeps/ieee754/ldbl-opt/s_significandl.c: Removed.
-
- * math/e_exp2_template.c (declare_mgen_finite_alias,
- declare_mgen_finite_alias_s, declare_mgen_finite_alias_x): Move to...
- * sysdeps/generic/math-type-macros.h (declare_mgen_finite_alias,
- declare_mgen_finite_alias_s, declare_mgen_finite_alias_x): ... here.
-
-2018-06-20 Florian Weimer <fweimer@redhat.com>
-
- * libio/libioP.h (IO_validate_vtable): Avoid ptrdiff_t overflow.
-
-2018-06-19 Joseph Myers <joseph@codesourcery.com>
-
- [BZ #23280]
- * stdio-common/vfscanf.c (_IO_vfscanf_internal): Pass sign of
- floating-point number to strtod functions rather than possibly
- negating result of those functions.
- * stdio-common/tst-scanf-round.c: New file.
- * stdio-common/Makefile (tests): Add tst-scanf-round.
- ($(objpfx)tst-scanf-round): Depend on $(libm).
-
-2018-06-18 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * sysdeps/mach/hurd/localplt.data: Move to...
- * sysdeps/mach/hurd/i386/localplt.data: new file. Add + REL
- R_386_GLOB_DAT like on Linux i386.
-
-2018-06-18 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/unix/sysv/linux/alpha/bits/shm.h [__USE_MISC]
- (SHM_STAT_ANY): New macro.
- * sysdeps/unix/sysv/linux/arm/bits/shm.h [__USE_MISC]
- (SHM_STAT_ANY): Likewise.
- * sysdeps/unix/sysv/linux/bits/shm.h [__USE_MISC]
- (SHM_STAT_ANY): Likewise.
- * sysdeps/unix/sysv/linux/generic/bits/shm.h [__USE_MISC]
- (SHM_STAT_ANY): Likewise.
- * sysdeps/unix/sysv/linux/hppa/bits/shm.h [__USE_MISC]
- (SHM_STAT_ANY): Likewise.
- * sysdeps/unix/sysv/linux/ia64/bits/shm.h [__USE_MISC]
- (SHM_STAT_ANY): Likewise.
- * sysdeps/unix/sysv/linux/mips/bits/shm.h [__USE_MISC]
- (SHM_STAT_ANY): Likewise.
- * sysdeps/unix/sysv/linux/powerpc/bits/shm.h [__USE_MISC]
- (SHM_STAT_ANY): Likewise.
- * sysdeps/unix/sysv/linux/s390/bits/shm.h [__USE_MISC]
- (SHM_STAT_ANY): Likewise.
- * sysdeps/unix/sysv/linux/sh/bits/shm.h [__USE_MISC]
- (SHM_STAT_ANY): Likewise.
- * sysdeps/unix/sysv/linux/sparc/bits/shm.h [__USE_MISC]
- (SHM_STAT_ANY): Likewise.
- * sysdeps/unix/sysv/linux/x86/bits/shm.h [__USE_MISC]
- (SHM_STAT_ANY): Likewise.
-
- * sysdeps/unix/sysv/linux/alpha/bits/sem.h [__USE_MISC]
- (SEM_STAT_ANY): New macro.
- * sysdeps/unix/sysv/linux/bits/sem.h [__USE_MISC]
- (SEM_STAT_ANY): Likewise.
- * sysdeps/unix/sysv/linux/generic/bits/sem.h [__USE_MISC]
- (SEM_STAT_ANY): Likewise.
- * sysdeps/unix/sysv/linux/hppa/bits/sem.h [__USE_MISC]
- (SEM_STAT_ANY): Likewise.
- * sysdeps/unix/sysv/linux/ia64/bits/sem.h [__USE_MISC]
- (SEM_STAT_ANY): Likewise.
- * sysdeps/unix/sysv/linux/mips/bits/sem.h [__USE_MISC]
- (SEM_STAT_ANY): Likewise.
- * sysdeps/unix/sysv/linux/powerpc/bits/sem.h [__USE_MISC]
- (SEM_STAT_ANY): Likewise.
- * sysdeps/unix/sysv/linux/s390/bits/sem.h [__USE_MISC]
- (SEM_STAT_ANY): Likewise.
- * sysdeps/unix/sysv/linux/sparc/bits/sem.h [__USE_MISC]
- (SEM_STAT_ANY): Likewise.
- * sysdeps/unix/sysv/linux/x86/bits/sem.h [__USE_MISC]
- (SEM_STAT_ANY): Likewise.
-
- * sysdeps/unix/sysv/linux/alpha/bits/msq.h [__USE_MISC]
- (MSG_STAT_ANY): New macro.
- * sysdeps/unix/sysv/linux/bits/msq.h [__USE_MISC]
- (MSG_STAT_ANY): Likewise.
- * sysdeps/unix/sysv/linux/generic/bits/msq.h [__USE_MISC]
- (MSG_STAT_ANY): Likewise.
- * sysdeps/unix/sysv/linux/hppa/bits/msq.h [__USE_MISC]
- (MSG_STAT_ANY): Likewise.
- * sysdeps/unix/sysv/linux/ia64/bits/msq.h [__USE_MISC]
- (MSG_STAT_ANY): Likewise.
- * sysdeps/unix/sysv/linux/mips/bits/msq.h [__USE_MISC]
- (MSG_STAT_ANY): Likewise.
- * sysdeps/unix/sysv/linux/powerpc/bits/msq.h [__USE_MISC]
- (MSG_STAT_ANY): Likewise.
- * sysdeps/unix/sysv/linux/s390/bits/msq.h [__USE_MISC]
- (MSG_STAT_ANY): Likewise.
- * sysdeps/unix/sysv/linux/sparc/bits/msq.h [__USE_MISC]
- (MSG_STAT_ANY): Likewise.
- * sysdeps/unix/sysv/linux/x86/bits/msq.h [__USE_MISC]
- (MSG_STAT_ANY): Likewise.
-
- * sysdeps/unix/sysv/linux/hppa/bits/mman.h [__USE_MISC]
- (MAP_TYPE): Change value to 0x2b.
-
-2018-06-18 Florian Weimer <fweimer@redhat.com>
-
- [BZ #15722]
- * sysdeps/unix/sysv/linux/check_pf.c (__check_pf): Create Netlink
- socket with SOCK_CLOEXEC.
-
-2018-06-18 Joseph Myers <joseph@codesourcery.com>
-
- [BZ #23303]
- * sysdeps/powerpc/powerpc64/le/Makefile
- (CFLAGS-tst-strtod-nan-sign.c): Add -mfloat128.
- (CFLAGS-tst-wcstod-nan-sign.c): Likewise.
- (gnulib-tests): Also add $(f128-loader-link) for
- tst-strtod-nan-sign abd tst-wcstod-nan-sign.
-
-2018-06-15 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * include/sys/sendfile.h (__sendfile64): Declare hidden prototype.
- * sysdeps/mach/hurd/sendfile.c (sendfile): Call __sendfile64 instead
- of sendfile.
- * sysdeps/mach/hurd/sendfile64.c (sendfile64): Rename to __sendfile64.
- (sendfile64): New strong alias.
- * sysdeps/mach/hurd/lseek.c: Include <errno.h>.
- * sysdeps/mach/hurd/lseek.c (__libc_lseek): Check that the value
- returned by __lseek64 can fit off_t, return EOVERFLOW otherwise.
- * sysdeps/htl/pthreadP.h (___pthread_get_cleanup_stack): Add hidden
- attribute.
- * htl/pt-join.c (__pthread_get_cleanup_stack): Define to
- ___pthread_get_cleanup_stack.
- * sysdeps/mach/hurd/localplt.data (ld.so): Make ref to __open optional.
- * sysdeps/mach/include/mach-shortcuts-hidden.h: New file.
- * mach/shortcut.awk: Make syscall stubs include
- <mach-shortcuts-hidden.h> and add hidden definition.
- * sysdeps/mach/include/mach.h: Include <mach-shortcuts-hidden.h>.
- (__mach_msg): Add hidden prototype.
- * mach/msg.c: Include <mach.h>.
- (__mach_msg): Add hidden definition.
- * mach/Makefile ($(mach-syscalls:%=$(objpfx))): Add hidden definition.
- * sysdeps/mach/include/mach/mach_traps.h (__mach_reply_port,
- __mach_thread_self, __mach_task_self, __mach_host_self, __swtch,
- __swtch_pri, __thread_switch, __evc_wait): Add hidden prototypes.
- * sysdeps/mach/hurd/localplt.data (siglongjmp, longjmp,
- __libc_lseek64, _IO_funlockfile): Whitelist PLT references.
- * sysdeps/hurd/include/hurd/signal.h (_hurd_self_sigstate): Add hidden
- prototype and definition.
- * sysdeps/mach/hurd/i386/____longjmp_chk.S (____longjmp_chk): Use
- hidden target for _hurd_self_sigstate.
-
-2018-06-15 Joseph Myers <joseph@codesourcery.com>
-
- [BZ #23007]
- * stdlib/tst-strtod-nan-sign-main.c: New file.
- * stdlib/tst-strtod-nan-sign.c: Likewise.
- * wcsmbs/tst-wcstod-nan-sign.c: Likewise.
- * stdlib/Makefile (tests): Add tst-strtod-nan-sign.
- ($(objpfx)tst-strtod-nan-sign): Depend on $(libm).
- * wcsmbs/Makefile (tests) Add tst-wcstod-nan-sign.
- ($(objpfx)tst-wcstod-nan-sign): Depend on $(libm).
-
-2018-06-15 Herman ten Brugge <hermantenbrugge@home.nl>
-
- [BZ #23007]
- * stdlib/strtod_l.c (____STRTOF_INTERNAL): Return NaN of
- appropriate sign.
-
-2018-06-14 Florian Weimer <fweimer@redhat.com>
-
- [BZ #23290]
- * localedata/charmaps/IBM273: Map codepoint 0xbc to U+00AF, so
- that the result stays within the ISO-8859-1 range.
- * iconvdata/ibm273.c (HAS_HOLES): Define as 0 because all 256
- characters are defined in IBM273.
-
-2018-06-14 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * sysdeps/mach/include/mach/mach_traps.h (__mach_thread_self,
- __mach_task_self): Remove attribute_hidden.
-
-2018-06-14 Joseph Myers <joseph@codesourcery.com>
-
- * string/tester.c (test_strncat) [__GNUC_PREREQ (7, 0)]: Also
- ignore -Wrestrict for one test.
-
-2018-06-14 Steve Ellcey <sellcey@caviumnetworks.com>
- Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- * sysdeps/unix/sysv/linux/aarch64/gettimeofday.c: New file.
-
-2018-06-14 Florian Weimer <fweimer@redhat.com>
-
- * scripts/update-abilist.sh: Accept empty list of files to patch.
-
-2018-06-13 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * sysdeps/mach/hurd/i386/Makefile (test-xfail-check-abi-libhurduser,
- test-xfail-check-abi-libmachuser): Add.
- * sysdeps/mach/hurd/localplt.data (ld.so): Add __open64, rename
- __libc_read and __libc_write to __read and __write.
- * sysdeps/hurd/include/hurd/port.h: New file.
- * mach/mach/mach_traps.h (__mach_reply_port, __mach_thread_self,
- __mach_task_self, __mach_host_self, __swtch, __swtch_pri,
- __thread_switch, __evc_wait): Move declarations to...
- * sysdeps/mach/include/mach/mach_traps.h: ... new file, and add
- attribute_hidden.
- * sysdeps/mach/hurd/i386/____longjmp_chk.S (____longjmp_chk): Do not
- use PLT to call _hurd_self_sigstate.
-
-2018-06-13 Joseph Myers <joseph@codesourcery.com>
-
- [BZ #23279]
- * stdlib/strtod_l.c (round_and_return): Handle an exponent of
- MAX_EXP as overflowing.
- * stdlib/gen-tst-strtod-round.c (string_to_fp): Clear MPFR
- overflow flag.
- (round_str): Output also whether result overflows in each rounding
- mode.
- * stdlib/tst-strtod-round-data: Add more tests.
- * stdlib/tst-strtod-round-data.h: Regenerated.
- * stdlib/tst-strtod-round-skeleton.c (_XNTRY): Update comment.
- (TEST): Handle extra arguments for overflow flags.
- (struct test_overflow): New type.
- [!FE_OVERFLOW] (FE_OVERFLOW): Define to 0.
- (GEN_ONE_TEST): Clear all exceptions. Test overflow flag.
- (test_in_one_mode): Take argument with overflow information.
- (do_test): Update calls to test_in_one_mode.
-
-2018-06-12 Carlos O'Donell <carlos@redhat.com>
-
- * elf/dl-load (_dl_dst_substitute): Correct comment.
- (_dl_dst_count): Likewise.
-
- * nptl/pthread_mutex_timedlock.c (__pthread_mutex_timedlock): Call
- lll_futex_timed_wait.
-
-2018-06-12 Joseph Myers <joseph@codesourcery.com>
-
- [BZ #23277]
- * math/bits/mathcalls.h [__USE_ISOC99] (nan): Do not use __const__
- attribute.
- * math/test-nan-const.c: New file.
- * math/Makefile (tests): Add test-nan-const.
- (CFLAGS-test-nan-const.c): New variable.
-
-2018-06-12 H.J. Lu <hongjiu.lu@intel.com>
-
- * benchtests/scripts/compare_strings.py (process_results): Add
- funcs argument. Compare only functions which are selected.
- (main): Check if base function is among selected functions.
- Pass selected functions to process_results.
- (__main__): Add -f/--functions argument.
-
-2018-06-12 Minfeng Kang <minfeng.kang@hxt-semitech.com>
- Hongbo Zhang <hongbo.zhang@linaro.org>
-
- * sysdeps/aarch64/multiarch/memcpy.c (libc_ifunc): reuse
- __memcpy_falkor for phecda core.
- * sysdeps/aarch64/multiarch/memmove.c (libc_ifunc): reuse
- __memmove_falkor for phecda core.
- * sysdeps/aarch64/multiarch/memset.c (libc_ifunc): reuse
- __memset_falkor for phecda core.
- * sysdeps/unix/sysv/linux/aarch64/cpu-features.c: add MIDR entry
- for phecda core.
- * sysdeps/unix/sysv/linux/aarch64/cpu-features.h (IS_PHECDA): add
- macro to identify phecda core.
-
-2018-06-12 Carlos O'Donell <carlos@redhat.com>
- Andreas Schwab <schwab@suse.de>
- Dmitry V. Levin <ldv@altlinux.org>
- Florian Weimer <fweimer@redhat.com>
-
- [BZ #23102]
- [BZ #21942]
- [BZ #18018]
- [BZ #23259]
- CVE-2011-0536
- * elf/dl-dst.h: Remove DL_DST_COUNT.
- * elf/dl-deps.c (expand_dst): Call _dl_dst_count.
- * elf/dl-load.c (is_trusted_path_normalize): Don't handle colons.
- (is_dst): Comment. Support ELF gABI.
- (_dl_dst_count): Comment. Simplify and count DSTs.
- (_dl_dst_substitute): Comment. Support __libc_enable_secure handling.
- (expand_dybamic_string_token): Comment. Call _dl_dst_count. Rename
- locals.
-
-2018-06-12 Zack Weinberg <zackw@panix.com>
-
- * elf/dl-load.c, elf/dl-misc.c, elf/dl-profile.c, elf/rtld.c
- * sysdeps/unix/sysv/linux/dl-sysdep.c
- Include not-cancel.h. Use __close_nocancel instead of __close,
- __open64_nocancel instead of __open, __read_nocancel instead of
- __libc_read, and __write_nocancel instead of __libc_write.
-
- * csu/check_fds.c (check_one_fd)
- * sysdeps/posix/fdopendir.c (__fdopendir)
- * sysdeps/posix/opendir.c (__alloc_dir): Use __fcntl_nocancel
- instead of __fcntl and/or __libc_fcntl.
-
- * sysdeps/unix/sysv/linux/pthread_setname.c (pthread_setname_np)
- * sysdeps/unix/sysv/linux/pthread_getname.c (pthread_getname_np)
- * sysdeps/unix/sysv/linux/i386/smp.h (is_smp_system):
- Use __open64_nocancel instead of __open_nocancel.
-
- * sysdeps/unix/sysv/linux/not-cancel.h: Move all of the
- hidden_proto declarations to the end and issue them if either
- IS_IN(libc) or IS_IN(rtld).
- * sysdeps/unix/sysv/linux/Makefile [subdir=io] (sysdep_routines):
- Add close_nocancel, fcntl_nocancel, nanosleep_nocancel,
- open_nocancel, open64_nocancel, openat_nocancel, pause_nocancel,
- read_nocancel, waitpid_nocancel, write_nocancel.
-
- * io/Versions [GLIBC_PRIVATE]: Add __libc_fcntl,
- __fcntl_nocancel, __open64_nocancel, __write_nocancel.
- * posix/Versions: Add __nanosleep_nocancel, __pause_nocancel.
-
- * nptl/pt-fcntl.c: New file.
- * nptl/Makefile (pthread-compat-wrappers): Remove fcntl.
- (libpthread-routines): Add pt-fcntl.
- * include/fcntl.h (__fcntl_nocancel_adjusted): New function.
- (__libc_fcntl): Remove attribute_hidden.
- * sysdeps/unix/sysv/linux/fcntl.c (__libc_fcntl): Call
- __fcntl_nocancel_adjusted, not fcntl_common.
- (__fcntl_nocancel): Move to new file fcntl_nocancel.c.
- (fcntl_common): Rename to __fcntl_nocancel_adjusted; also move
- to fcntl_nocancel.c.
- * sysdeps/unix/sysv/linux/fcntl_nocancel.c: New file.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/fcntl.c: Remove file.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h:
- Define FCNTL_ADJUST_CMD here, as a self-contained macro.
-
- * sysdeps/unix/sysv/linux/close.c: Move __close_nocancel to...
- * sysdeps/unix/sysv/linux/close_nocancel.c: ...this new file.
- * sysdeps/unix/sysv/linux/nanosleep.c: Move __nanosleep_nocancel to...
- * sysdeps/unix/sysv/linux/nanosleep_nocancel.c: ...this new file.
- * sysdeps/unix/sysv/linux/open.c: Move __open_nocancel to...
- * sysdeps/unix/sysv/linux/open_nocancel.c: ...this new file.
- * sysdeps/unix/sysv/linux/open64.c: Move __open64_nocancel to...
- * sysdeps/unix/sysv/linux/open64_nocancel.c: ...this new file.
- * sysdeps/unix/sysv/linux/openat.c: Move __openat_nocancel to...
- * sysdeps/unix/sysv/linux/openat_nocancel.c: ...this new file.
- * sysdeps/unix/sysv/linux/openat64.c: Move __openat64_nocancel to...
- * sysdeps/unix/sysv/linux/openat64_nocancel.c: ...this new file.
- * sysdeps/unix/sysv/linux/pause.c: Move __pause_nocancel to...
- * sysdeps/unix/sysv/linux/pause_nocancel.c: ...this new file.
- * sysdeps/unix/sysv/linux/read.c: Move __read_nocancel to...
- * sysdeps/unix/sysv/linux/read_nocancel.c: ...this new file.
- * sysdeps/unix/sysv/linux/waitpid.c: Move __waitpid_nocancel to...
- * sysdeps/unix/sysv/linux/waitpid_nocancel.c: ...this new file.
- * sysdeps/unix/sysv/linux/write.c: Move __write_nocancel to...
- * sysdeps/unix/sysv/linux/write_nocancel.c: ...this new file.
-
- * sysdeps/unix/sysv/linux/nios2/Makefile: Don't override
- libpthread-routines.
- * sysdeps/unix/sysv/linux/nios2/pt-vfork.S: New file which
- defines nothing.
-
- * sysdeps/mach/hurd/dl-sysdep.c: Define __read instead of
- __libc_read, and __write instead of __libc_write. Define
- __open64 in addition to __open.
-
-2018-06-12 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #23250]
- [BZ #10686]
- * sysdeps/i386/nptl/tls.h (tcbhead_t): Change __private_tm[4]
- to _private_tm[3] and add __glibc_reserved2.
- Add _Static_assert of offset of __private_ss == 0x30.
- * sysdeps/x86_64/nptl/tls.h: Add _Static_assert of offset of
- __private_ss == 0x40 for ILP32 and == 0x70 for LP64.
-
-2018-06-12 Florian Weimer <fweimer@redhat.com>
-
- x86: Make strncmp usable from rtld.
- * sysdeps/i386/i686/multiarch/strncmp-c.c: Only rename strncmp to
- __strncmp_ia32 if in libc (and not in rtld).
- * 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 <digitalfreak@lingonborough.com>
-
- [BZ #23140]
- * localedata/locales/gd_GB (mon): Rename to...
- (alt_mon): This.
- (mon): Import from CLDR (genitive case).
- * localedata/locales/hsb_DE (mon): Rename to...
- (alt_mon): This.
- (mon): Import from CLDR (genitive case).
- * localedata/locales/wa_BE (mon): Rename to...
- (alt_mon): This.
- (mon): Add, fill with the proper genitive forms, but CLDR data
- is incomplete; completed according to the comments in this file.
- (d_t_fmt): Do not use "di" before the month name, no longer needed.
-
- * localedata/locales/wa_BE (country_name): Reword
- "Beljike" -> "Beldjike".
-
-2018-06-11 Joseph Myers <joseph@codesourcery.com>
-
- [BZ #23272]
- * sysdeps/ieee754/ldbl-96/s_fma.c (__fma): Start by handling all
- cases of non-finite arguments.
- * math/libm-test-fma.inc (fma_test_data): Add more tests.
-
-2018-06-10 John David Anglin <danglin@gcc.gnu.org>
-
- [BZ #23174]
- * sysdeps/unix/sysv/linux/hppa/Makefile: xfail check-execstack.
-
-2018-06-08 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- [BZ #23264]
- * include/unistd.h (__execvpex): New prototype.
- * posix/Makefile (tests): Add tst-spawn4.
- (tests-internal): Add tst-spawn4-compat.
- * posix/execvpe.c (__execvpe_common, __execvpex): New functions.
- * posix/tst-spawn4-compat.c: New file.
- * posix/tst-spawn4.c: Likewise.
- * sysdeps/unix/sysv/linux/spawni.c (__spawni): Do not interpret invalid
- binaries as shell scripts.
- * sysdeps/posix/spawni.c (__spawni): Likewise.
-
-2018-06-08 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #23145]
- * elf/Makefile (tests-special): Add $(objpfx)check-initfini.out.
- ($(all-built-dso:=.dynsym): New target.
- (common-generated): Add $(all-built-dso:$(common-objpfx)%=%.dynsym).
- ($(objpfx)check-initfini.out): New target.
- (generated): Add check-initfini.out.
- * scripts/check-initfini.awk: New file.
- * sysdeps/aarch64/crti.S (_init): Mark as hidden.
- (_fini): Likewise.
- * sysdeps/alpha/crti.S (_init): Mark as hidden.
- (_fini): Likewise.
- * sysdeps/arm/crti.S (_init): Mark as hidden.
- (_fini): Likewise.
- * sysdeps/hppa/crti.S (_init): Mark as hidden.
- (_fini): Likewise.
- * sysdeps/i386/crti.S (_init): Mark as hidden.
- (_fini): Likewise.
- * sysdeps/ia64/crti.S (_init): Mark as hidden.
- (_fini): Likewise.
- * sysdeps/m68k/crti.S (_init): Mark as hidden.
- (_fini): Likewise.
- * sysdeps/microblaze/crti.S (_init): Mark as hidden.
- (_fini): Likewise.
- * sysdeps/mips/mips32/crti.S (_init): Mark as hidden.
- (_fini): Likewise.
- * sysdeps/mips/mips64/n32/crti.S (_init): Mark as hidden.
- (_fini): Likewise.
- * sysdeps/mips/mips64/n64/crti.S (_init): Mark as hidden.
- (_fini): Likewise.
- * sysdeps/nios2/crti.S (_init): Mark as hidden.
- (_fini): Likewise.
- * sysdeps/powerpc/powerpc32/crti.S (_init): Mark as hidden.
- (_fini): Likewise.
- * sysdeps/powerpc/powerpc64/crti.S (_init): Mark as hidden.
- (_fini): Likewise.
- * sysdeps/s390/s390-32/crti.S (_init): Mark as hidden.
- (_fini): Likewise.
- * sysdeps/s390/s390-64/crti.S (_init): Mark as hidden.
- (_fini): Likewise.
- * sysdeps/sh/crti.S (_init): Mark as hidden.
- (_fini): Likewise.
- * sysdeps/sparc/crti.S (_init): Mark as hidden.
- (_fini): Likewise.
- * sysdeps/x86_64/crti.S (_init): Mark as hidden.
- (_fini): Likewise.
-
-2018-06-06 Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
-
- * sysdeps/powerpc/powerpc64/le/fpu/e_sqrtf128.c
- [__HAVE_FLOAT128_UNLIKE_LDBL] (TFtype, TF): Restrict TFtype
- and TF redirection to KFtype and KF only when the default
- long double type is not the IEEE 128-bit floating point type.
-
-2018-06-05 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/unix/sysv/linux/aarch64/bits/hwcap.h (HWCAP_DIT): New
- macro.
- (HWCAP_USCAT): Likewise.
- (HWCAP_ILRCPC): Likewise.
- (HWCAP_FLAGM): Likewise.
- * sysdeps/unix/sysv/linux/aarch64/dl-procinfo.c (_DL_HWCAP_COUNT):
- Increase to 28.
- (_dl_aarch64_cap_flags): Add new flag names.
-
- * sysdeps/unix/sysv/linux/aarch64/bits/mman.h [__USE_MISC]
- (MAP_FIXED_NOREPLACE): New macro.
- * sysdeps/unix/sysv/linux/alpha/bits/mman.h [__USE_MISC]
- (MAP_FIXED_NOREPLACE): Likewise.
- * sysdeps/unix/sysv/linux/arm/bits/mman.h [__USE_MISC]
- (MAP_FIXED_NOREPLACE): Likewise.
- * sysdeps/unix/sysv/linux/hppa/bits/mman.h [__USE_MISC]
- (MAP_FIXED_NOREPLACE): Likewise.
- * sysdeps/unix/sysv/linux/ia64/bits/mman.h [__USE_MISC]
- (MAP_FIXED_NOREPLACE): Likewise.
- * sysdeps/unix/sysv/linux/m68k/bits/mman.h [__USE_MISC]
- (MAP_FIXED_NOREPLACE): Likewise.
- * sysdeps/unix/sysv/linux/microblaze/bits/mman.h [__USE_MISC]
- (MAP_FIXED_NOREPLACE): Likewise.
- * sysdeps/unix/sysv/linux/mips/bits/mman.h [__USE_MISC]
- (MAP_FIXED_NOREPLACE): Likewise.
- * sysdeps/unix/sysv/linux/nios2/bits/mman.h [__USE_MISC]
- (MAP_FIXED_NOREPLACE): Likewise.
- * sysdeps/unix/sysv/linux/powerpc/bits/mman.h [__USE_MISC]
- (MAP_FIXED_NOREPLACE): Likewise.
- * sysdeps/unix/sysv/linux/riscv/bits/mman.h [__USE_MISC]
- (MAP_FIXED_NOREPLACE): Likewise.
- * sysdeps/unix/sysv/linux/s390/bits/mman.h [__USE_MISC]
- (MAP_FIXED_NOREPLACE): Likewise.
- * sysdeps/unix/sysv/linux/sh/bits/mman.h [__USE_MISC]
- (MAP_FIXED_NOREPLACE): Likewise.
- * sysdeps/unix/sysv/linux/sparc/bits/mman.h [__USE_MISC]
- (MAP_FIXED_NOREPLACE): Likewise.
- * sysdeps/unix/sysv/linux/x86/bits/mman.h [__USE_MISC]
- (MAP_FIXED_NOREPLACE): Likewise.
-
- * sysdeps/unix/sysv/linux/syscall-names.list: Update kernel
- version to 4.17.
-
-2018-06-04 Joseph Myers <joseph@codesourcery.com>
-
- * scripts/build-many-glibcs.py (Context.checkout): Default Linux
- version to 4.17
-
-2018-06-02 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * bits/shm.h (struct shmid_ds): Make shm_segsz field size_t instead of
- int.
- * sysdeps/gnu/bits/shm.h (struct shmid_ds): Likewise.
-
-2018-06-01 Leonardo Sandoval <leonardo.sandoval.gonzalez@intel.com>
-
- * benchtests/scripts/compare_string.py: (process_results) Catch
- exception in non-existent base_func and catch exception in
- non-existent attribute.
- (parse_file) Catch exception if input file does not exist.
-
-2018-06-01 Leonardo Sandoval <leonardo.sandoval.gonzalez@intel.com>
-
- * benchtests/scripts/compare_string.py: Add --no-diff and --no-header
- options to avoid diff calculation and omit header, respectively.
- (main): process --no-diff and --no-header
-
-2018-06-01 Leonardo Sandoval <leonardo.sandoval.gonzalez@intel.com>
- H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/x86_64/multiarch/Makefile (sysdep_routines): Add
- strcmp-avx2, strncmp-avx2, wcscmp-avx2, wcscmp-sse2, wcsncmp-avx2 and
- wcsncmp-sse2.
- * sysdeps/x86_64/multiarch/ifunc-impl-list.c
- (__libc_ifunc_impl_list): Add tests for __strcmp_avx2,
- __strncmp_avx2, __wcscmp_avx2, __wcsncmp_avx2, __wcscmp_sse2
- and __wcsncmp_sse2.
- * sysdeps/x86_64/multiarch/strcmp.c (OPTIMIZE (avx2)):
- (IFUNC_SELECTOR): Return OPTIMIZE (avx2) on AVX 2 machines if
- AVX unaligned load is fast and vzeroupper is preferred.
- * sysdeps/x86_64/multiarch/strncmp.c: Likewise.
- * sysdeps/x86_64/multiarch/strcmp-avx2.S: New file.
- * sysdeps/x86_64/multiarch/strncmp-avx2.S: Likewise.
- * sysdeps/x86_64/multiarch/wcscmp-avx2.S: Likewise.
- * sysdeps/x86_64/multiarch/wcscmp-sse2.S: Likewise.
- * sysdeps/x86_64/multiarch/wcscmp.c: Likewise.
- * sysdeps/x86_64/multiarch/wcsncmp-avx2.S: Likewise.
- * sysdeps/x86_64/multiarch/wcsncmp-sse2.c: Likewise.
- * sysdeps/x86_64/multiarch/wcsncmp.c: Likewise.
- * sysdeps/x86_64/wcscmp.S (__wcscmp): Add alias only if __wcscmp
- is undefined.
-
-2018-06-01 Florian Weimer <fweimer@redhat.com>
-
- * sysdeps/i386/fpu/libm-test-ulps: Update with results from
- configuring with --disable-multi-arch, building with
- “-march=x86-64 -mtune=generic -mfpmath=sse†and running on a
- Haswell-era CPU.
-
-2018-06-01 Florian Weimer <fweimer@redhat.com>
-
- * sysdeps/i386/i686/fpu/multiarch/libm-test-ulps: Update with
- results from building with “-march=x86-64 -mtune=generic
- -mfpmath=sse†and running on a Haswell-era CPU.
-
-2018-06-01 Joseph Myers <joseph@codesourcery.com>
-
- [BZ #18473]
- * soft-fp/sqrttf2.c: Remove file.
- * soft-fp/sqrtdf2.c: Move to ....
- * sysdeps/powerpc/nofpu/sqrtdf2.c: ... here. Include
- <shlib-compat.h>.
- (__sqrtdf2): Make conditional on
- [SHLIB_COMPAT (libc, GLIBC_2_3_2, GLIBC_2_28)]. Define as compat
- symbol.
- * soft-fp/sqrtsf2.c: Move to ....
- * sysdeps/powerpc/nofpu/sqrtsf2.c: ... here. Include
- <shlib-compat.h>.
- (__sqrtsf2): Make conditional on
- [SHLIB_COMPAT (libc, GLIBC_2_3_2, GLIBC_2_28)]. Define as compat
- symbol.
- * soft-fp/Makefile (gcc-single-routines): Remove sqrtsf2.
- (gcc-double-routines): Remove sqrtdf2.
- (gcc-quad-routines): Remove sqrttf2.
- * sysdeps/nios2/Makefile [$(subdir) = soft-fp] (sysdep_routines):
- Do not filter out sqrtsf2 and sqrtdf2.
- * sysdeps/powerpc/nofpu/Makefile [$(subdir) = soft-fp]
- (sysdep_routines): Add sqrtsf2 and sqrtdf2.
-
-2018-06-01 Florian Weimer <fweimer@redhat.com>
-
- * sysdeps/generic/libcidn.abilist: Remove file.
-
-2018-06-01 Florian Weimer <fweimer@redhat.com>
-
- [BZ #23236]
- * libio/strfile.h (struct _IO_str_fields): Rename members to
- discourage their use and add comment.
- (_IO_STR_DYNAMIC): Remove unused macro.
- * libio/strops.c (_IO_str_init_static_internal): Do not use
- callback pointers. Call malloc and free.
- (_IO_str_overflow): Do not use callback pointers. Call malloc
- and free.
- (enlarge_userbuf): Likewise.
- (_IO_str_finish): Call free.
- * libio/wstrops.c (_IO_wstr_init_static): Initialize
- _allocate_buffer_unused.
- (_IO_wstr_overflow): Do not use callback pointers. Call malloc
- and free.
- (enlarge_userbuf): Likewise.
- (_IO_wstr_finish): Call free.
- * debug/vasprintf_chk.c (__vasprintf_chk): Initialize
- _allocate_buffer_unused, _free_buffer_unused.
- * libio/memstream.c (__open_memstream): Likewise.
- * libio/vasprintf.c (_IO_vasprintf): Likewise.
- * libio/wmemstream.c (open_wmemstream): Likewise.
-
-2018-05-30 Paul Pluzhnikov <ppluzhnikov@google.com>
-
- * sysdeps/x86_64/fpu/libm-test-ulps (log_vlen8_avx2): Update for
- AMD Ryzen 7 1800X.
-
-2018-05-30 Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>
-
- * sysdeps/powerpc/powerpc64/le/fpu/multiarch/Makefile: New file to
- add w_sqrtf128-power9 and w_sqrtf128-ppc64le to libm-sysdep_routines.
- * sysdeps/powerpc/powerpc64/le/fpu/multiarch/w_sqrtf128-power9.c:
- New file.
- * sysdeps/powerpc/powerpc64/le/fpu/multiarch/w_sqrtf128-ppc64le.c:
- Likewise.
- * sysdeps/powerpc/powerpc64/le/fpu/multiarch/w_sqrtf128.c: Likewise.
-
-2018-05-29 Florian Weimer <fweimer@redhat.com>
-
- * support/Makefile (libsupport-routines): Add
- xpthread_barrierattr_destroy, xpthread_barrierattr_init,
- xpthread_barrierattr_setpshared.
- * support/xpthread_barrierattr_destroy.c: New file.
- * support/xpthread_barrierattr_init.c: Likewise.
- * support/xpthread_barrierattr_setpshared.c: Likewise.
-
-2018-05-29 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #23206]
- * elf/dl-reloc-static-pie.c (_dl_relocate_static_pie): Initialize
- _r_debug and update DT_DEBUG for debugger.
-
-2018-05-29 Florian Weimer <fweimer@redhat.com>
-
- * stdlib/Makefile (tst-strtod1i.out): Depend on generated locales.
- (tst-strtod5i.out): Likewise.
-
-2018-05-25 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/sparc/sparc64/Implies: Remove sparc/sparc64/soft-fp.
- * sysdeps/sparc/sparc64/Makefile [$(subdir) = soft-fp]
- (sparc64-quad-routines): New variable. Moved from ....
- [$(subdir) = soft-fp] (sysdep_routines): Add
- $(sparc64-quad-routines). Moved from ....
- [$(subdir) = math] (CPPFLAGS): Add -I../soft-fp/. Moved from ....
- * sysdeps/sparc/sparc64/soft-fp/Makefile: ... here. Remove file.
- * sysdeps/sparc/sparc64/Versions (libc): Add GLIBC_2.2 symbols
- moved from ....
- * sysdeps/sparc/sparc64/soft-fp/Versions: ... here. Remove file.
- * sysdeps/sparc/sparc64/soft-fp/e_ilogbl.c: Remove file.
- * sysdeps/sparc/sparc64/soft-fp/qp_add.c: Move to ....
- * sysdeps/sparc/sparc64/qp_add.c: ... here.
- * sysdeps/sparc/sparc64/soft-fp/qp_cmp.c: Move to ....
- * sysdeps/sparc/sparc64/qp_cmp.c: ... here.
- * sysdeps/sparc/sparc64/soft-fp/qp_cmpe.c: Move to ....
- * sysdeps/sparc/sparc64/qp_cmpe.c: ... here.
- * sysdeps/sparc/sparc64/soft-fp/qp_div.c: Move to ....
- * sysdeps/sparc/sparc64/qp_div.c: ... here.
- * sysdeps/sparc/sparc64/soft-fp/qp_dtoq.c: Move to ....
- * sysdeps/sparc/sparc64/qp_dtoq.c: ... here.
- * sysdeps/sparc/sparc64/soft-fp/qp_feq.c: Move to ....
- * sysdeps/sparc/sparc64/qp_feq.c: ... here.
- * sysdeps/sparc/sparc64/soft-fp/qp_fge.c: Move to ....
- * sysdeps/sparc/sparc64/qp_fge.c: ... here.
- * sysdeps/sparc/sparc64/soft-fp/qp_fgt.c: Move to ....
- * sysdeps/sparc/sparc64/qp_fgt.c: ... here.
- * sysdeps/sparc/sparc64/soft-fp/qp_fle.c: Move to ....
- * sysdeps/sparc/sparc64/qp_fle.c: ... here.
- * sysdeps/sparc/sparc64/soft-fp/qp_flt.c: Move to ....
- * sysdeps/sparc/sparc64/qp_flt.c: ... here.
- * sysdeps/sparc/sparc64/soft-fp/qp_fne.c: Move to ....
- * sysdeps/sparc/sparc64/qp_fne.c: ... here.
- * sysdeps/sparc/sparc64/soft-fp/qp_itoq.c: Move to ....
- * sysdeps/sparc/sparc64/qp_itoq.c: ... here.
- * sysdeps/sparc/sparc64/soft-fp/qp_mul.c: Move to ....
- * sysdeps/sparc/sparc64/qp_mul.c: ... here.
- * sysdeps/sparc/sparc64/soft-fp/qp_neg.S: Move to ....
- * sysdeps/sparc/sparc64/qp_neg.S: ... here.
- * sysdeps/sparc/sparc64/soft-fp/qp_qtod.c: Move to ....
- * sysdeps/sparc/sparc64/qp_qtod.c: ... here.
- * sysdeps/sparc/sparc64/soft-fp/qp_qtoi.c: Move to ....
- * sysdeps/sparc/sparc64/qp_qtoi.c: ... here.
- * sysdeps/sparc/sparc64/soft-fp/qp_qtos.c: Move to ....
- * sysdeps/sparc/sparc64/qp_qtos.c: ... here.
- * sysdeps/sparc/sparc64/soft-fp/qp_qtoui.c: Move to ....
- * sysdeps/sparc/sparc64/qp_qtoui.c: ... here.
- * sysdeps/sparc/sparc64/soft-fp/qp_qtoux.c: Move to ....
- * sysdeps/sparc/sparc64/qp_qtoux.c: ... here.
- * sysdeps/sparc/sparc64/soft-fp/qp_qtox.c: Move to ....
- * sysdeps/sparc/sparc64/qp_qtox.c: ... here.
- * sysdeps/sparc/sparc64/soft-fp/qp_sqrt.c: Move to ....
- * sysdeps/sparc/sparc64/qp_sqrt.c: ... here.
- * sysdeps/sparc/sparc64/soft-fp/qp_stoq.c: Move to ....
- * sysdeps/sparc/sparc64/qp_stoq.c: ... here.
- * sysdeps/sparc/sparc64/soft-fp/qp_sub.c: Move to ....
- * sysdeps/sparc/sparc64/qp_sub.c: ... here.
- * sysdeps/sparc/sparc64/soft-fp/qp_uitoq.c: Move to ....
- * sysdeps/sparc/sparc64/qp_uitoq.c: ... here.
- * sysdeps/sparc/sparc64/soft-fp/qp_util.c: Move to ....
- * sysdeps/sparc/sparc64/qp_util.c: ... here.
- * sysdeps/sparc/sparc64/soft-fp/qp_uxtoq.c: Move to ....
- * sysdeps/sparc/sparc64/qp_uxtoq.c: ... here.
- * sysdeps/sparc/sparc64/soft-fp/qp_xtoq.c: Move to ....
- * sysdeps/sparc/sparc64/qp_xtoq.c: ... here.
- * sysdeps/sparc/sparc64/soft-fp/sfp-machine.h: Move to ....
- * sysdeps/sparc/sparc64/sfp-machine.h: ... here.
-
- * sysdeps/sparc/sparc32/Implies: Remove sparc/sparc32/soft-fp.
- * sysdeps/sparc/sparc32/Makefile [$(subdir) = soft-fp]
- (sparc32-quad-routines): New variable. Moved from ....
- [$(subdir) = soft-fp] (sysdep_routines): Add
- $(sparc32-quad-routines). Moved from ....
- * sysdeps/sparc/sparc32/soft-fp/Makefile: ... here. Remove file.
- * sysdeps/sparc/sparc32/Versions (libc): Add GLIBC_2.4 symbols
- moved from ....
- * sysdeps/sparc/sparc32/soft-fp/Versions: ... here. Remove file.
- * sysdeps/sparc/sparc32/soft-fp/q_add.c: Move to ....
- * sysdeps/sparc/sparc32/q_add.c: ... here.
- * sysdeps/sparc/sparc32/soft-fp/q_cmp.c: Move to ....
- * sysdeps/sparc/sparc32/q_cmp.c: ... here.
- * sysdeps/sparc/sparc32/soft-fp/q_cmpe.c: Move to ....
- * sysdeps/sparc/sparc32/q_cmpe.c: ... here.
- * sysdeps/sparc/sparc32/soft-fp/q_div.c: Move to ....
- * sysdeps/sparc/sparc32/q_div.c: ... here.
- * sysdeps/sparc/sparc32/soft-fp/q_dtoq.c: Move to ....
- * sysdeps/sparc/sparc32/q_dtoq.c: ... here.
- * sysdeps/sparc/sparc32/soft-fp/q_feq.c: Move to ....
- * sysdeps/sparc/sparc32/q_feq.c: ... here.
- * sysdeps/sparc/sparc32/soft-fp/q_fge.c: Move to ....
- * sysdeps/sparc/sparc32/q_fge.c: ... here.
- * sysdeps/sparc/sparc32/soft-fp/q_fgt.c: Move to ....
- * sysdeps/sparc/sparc32/q_fgt.c: ... here.
- * sysdeps/sparc/sparc32/soft-fp/q_fle.c: Move to ....
- * sysdeps/sparc/sparc32/q_fle.c: ... here.
- * sysdeps/sparc/sparc32/soft-fp/q_flt.c: Move to ....
- * sysdeps/sparc/sparc32/q_flt.c: ... here.
- * sysdeps/sparc/sparc32/soft-fp/q_fne.c: Move to ....
- * sysdeps/sparc/sparc32/q_fne.c: ... here.
- * sysdeps/sparc/sparc32/soft-fp/q_itoq.c: Move to ....
- * sysdeps/sparc/sparc32/q_itoq.c: ... here.
- * sysdeps/sparc/sparc32/soft-fp/q_lltoq.c: Move to ....
- * sysdeps/sparc/sparc32/q_lltoq.c: ... here.
- * sysdeps/sparc/sparc32/soft-fp/q_mul.c: Move to ....
- * sysdeps/sparc/sparc32/q_mul.c: ... here.
- * sysdeps/sparc/sparc32/soft-fp/q_neg.c: Move to ....
- * sysdeps/sparc/sparc32/q_neg.c: ... here.
- * sysdeps/sparc/sparc32/soft-fp/q_qtod.c: Move to ....
- * sysdeps/sparc/sparc32/q_qtod.c: ... here.
- * sysdeps/sparc/sparc32/soft-fp/q_qtoi.c: Move to ....
- * sysdeps/sparc/sparc32/q_qtoi.c: ... here.
- * sysdeps/sparc/sparc32/soft-fp/q_qtoll.c: Move to ....
- * sysdeps/sparc/sparc32/q_qtoll.c: ... here.
- * sysdeps/sparc/sparc32/soft-fp/q_qtos.c: Move to ....
- * sysdeps/sparc/sparc32/q_qtos.c: ... here.
- * sysdeps/sparc/sparc32/soft-fp/q_qtou.c: Move to ....
- * sysdeps/sparc/sparc32/q_qtou.c: ... here.
- * sysdeps/sparc/sparc32/soft-fp/q_qtoull.c: Move to ....
- * sysdeps/sparc/sparc32/q_qtoull.c: ... here.
- * sysdeps/sparc/sparc32/soft-fp/q_sqrt.c: Move to ....
- * sysdeps/sparc/sparc32/q_sqrt.c: ... here.
- * sysdeps/sparc/sparc32/soft-fp/q_stoq.c: Move to ....
- * sysdeps/sparc/sparc32/q_stoq.c: ... here.
- * sysdeps/sparc/sparc32/soft-fp/q_sub.c: Move to ....
- * sysdeps/sparc/sparc32/q_sub.c: ... here.
- * sysdeps/sparc/sparc32/soft-fp/q_ulltoq.c: Move to ....
- * sysdeps/sparc/sparc32/q_ulltoq.c: ... here.
- * sysdeps/sparc/sparc32/soft-fp/q_util.c: Move to ....
- * sysdeps/sparc/sparc32/q_util.c: ... here.
- * sysdeps/sparc/sparc32/soft-fp/q_utoq.c: Move to ....
- * sysdeps/sparc/sparc32/q_utoq.c: ... here.
- * sysdeps/sparc/sparc32/soft-fp/sfp-machine.h: Move to ....
- * sysdeps/sparc/sparc32/sfp-machine.h: ... here.
-
-2018-05-24 Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
- Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
-
- * sysdeps/powerpc/Implies: Removed. Previous contents copied to...
- * sysdeps/powerpc/powerpc32/Implies-after: ... here.
- * sysdeps/powerpc/powerpc64/be/Implies-after: ... here.
- * sysdeps/powerpc/powerpc64/le/Implies-before: ... and here.
-
-2018-05-24 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/Implies: Remove
- powerpc/soft-fp.
- * sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nofpu/Implies:
- Likewise.
- * sysdeps/powerpc/soft-fp/sfp-machine.h: Move to ....
- * sysdeps/powerpc/nofpu/sfp-machine.h: ... here.
-
-2018-05-24 Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
-
- [BZ #23171]
- * math/math.h [C++] (iseqsig): Fix parameter type for the long
- double version.
-
-2018-05-23 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/sh/Implies: Remove sh/soft-fp.
- * sysdeps/sh/soft-fp/sfp-machine.h: Move to ....
- * sysdeps/sh/sfp-machine.h: ... here.
-
-2018-05-23 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S
- (__mempcpy_erms): Skip zero length.
- (__memmove_erms): Likewise.
- * sysdeps/x86_64/multiarch/memset-vec-unaligned-erms.S
- (__memset_erms): Likewise.
-
-2018-05-23 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/alpha/Implies: Remove alpha/soft-fp.
- * sysdeps/alpha/Makefile [$(subdir) = soft-fp] (sysdep_routines):
- Add functions moved from ....
- [$(subdir) = math] (CPPFLAGS): Add -I../soft-fp. Moved from ....
- * sysdeps/alpha/soft-fp/Makefile: ... here. Remove file.
- * sysdeps/alpha/Versions (libc): Add GLIBC_2.3.4 symbols moved
- from ....
- * sysdeps/alpha/soft-fp/Versions: ... here. Remove file.
- * sysdeps/alpha/soft-fp/e_sqrtl.c: Move to ....
- * sysdeps/alpha/e_sqrtl.c: ... here.
- * sysdeps/alpha/soft-fp/local-soft-fp.h: Move to ....
- * sysdeps/alpha/local-soft-fp.h: ... here.
- * sysdeps/alpha/soft-fp/ots_add.c: Move to ....
- * sysdeps/alpha/ots_add.c: ... here.
- * sysdeps/alpha/soft-fp/ots_cmp.c: Move to ....
- * sysdeps/alpha/ots_cmp.c: ... here.
- * sysdeps/alpha/soft-fp/ots_cmpe.c: Move to ....
- * sysdeps/alpha/ots_cmpe.c: ... here.
- * sysdeps/alpha/soft-fp/ots_cvtqux.c: Move to ....
- * sysdeps/alpha/ots_cvtqux.c: ... here.
- * sysdeps/alpha/soft-fp/ots_cvtqx.c: Move to ....
- * sysdeps/alpha/ots_cvtqx.c: ... here.
- * sysdeps/alpha/soft-fp/ots_cvttx.c: Move to ....
- * sysdeps/alpha/ots_cvttx.c: ... here.
- * sysdeps/alpha/soft-fp/ots_cvtxq.c: Move to ....
- * sysdeps/alpha/ots_cvtxq.c: ... here.
- * sysdeps/alpha/soft-fp/ots_cvtxt.c: Move to ....
- * sysdeps/alpha/ots_cvtxt.c: ... here.
- * sysdeps/alpha/soft-fp/ots_div.c: Move to ....
- * sysdeps/alpha/ots_div.c: ... here.
- * sysdeps/alpha/soft-fp/ots_mul.c: Move to ....
- * sysdeps/alpha/ots_mul.c: ... here.
- * sysdeps/alpha/soft-fp/ots_nintxq.c: Move to ....
- * sysdeps/alpha/ots_nintxq.c: ... here.
- * sysdeps/alpha/soft-fp/ots_sub.c: Move to ....
- * sysdeps/alpha/ots_sub.c: ... here.
- * sysdeps/alpha/soft-fp/sfp-machine.h: Move to ....
- * sysdeps/alpha/sfp-machine.h: ... here.
-
-2018-05-23 Florian Weimer <fweimer@redhat.com>
-
- [BZ #19728]
- [BZ #19729]
- [BZ #22247]
- CVE-2016-6261
- CVE-2016-6263
- CVE-2017-14062
- Switch to extern IDNA implementation (libidn2).
- * libidn: Remove subdirectory.
- * LICENSES: Do not mention licensing conditions for the removed
- libidn code.
- * config.h.in (HAVE_LIBIDN): Remove.
- * include/dlfcn.h (__libc_dlopen): Update comment.
- * include/idna.h: Remove file.
- * inet/Makefile (routines): Add idna.
- (tests-static, tests-internal): Add tst-idna_name_classify.
- (LOCALES): Generate locales for tests.
- (tst-idna_name_classify.out): Depend on generated locales.
- * inet/idna_name_classify.c: New file.
- * inet/tst-idna_name_classify.c: Likewise.
- * inet/net-internal.h (__idna_to_dns_encoding)
- (__idna_from_dns_encoding): Declare.
- * inet/net-internal.h (enum idna_name_classification): Define.
- (__idna_name_classify): Declare.
- * inet/Versions (GLIBC_PRIVATE): Add __idna_to_dns_encoding,
- __idna_from_dns_encoding.
- * inet/getnameinfo.c (DEPRECATED_NI_IDN): Define.
- (gni_host_inet_name): Call __idna_from_dns_encoding. Use punycode
- name as a fallback in case of encoding errors.
- (getnameinfo): Use DEPRECATED_NI_IDN.
- * inet/idna.c: New file.
- * nscd/gai.c: Do not include <libidn/idn-stub.c>.
- * resolv/Makefile (tests): Add tst-resolv-ai_idn,
- tst-resolv-ai_idn-latin1, tst-resolv-ai_idn-nolibidn2.
- (modules-names): Add tst-no-libidn2.
- (extra-test-objs): Add tst-no-libidn2.os.
- (LDFLAGS-tst-no-libidn2.so): Set soname.
- (LOCALES): Set, and generate locales.
- (tst-resolv-ai_idn): Link with -ldl -lresolv -lpthread.
- (tst-resolv-ai_idn-latin1): Likewise.
- (tst-resolv-ai_idn-nolibidn2): Likewise.
- (tst-resolv-ai_idn.out): Depend on locales.
- (tst-resolv-ai_idn-latin1.out): Depend on locales.
- (tst-resolv-ai_idn-nolibidn2.out): Depend on locales and
- tst-no-libidn2.so.
- * resolv/netdb.h (AI_IDN_ALLOW_UNASSIGNED)
- (AI_IDN_USE_STD3_ASCII_RULES, NI_IDN_ALLOW_UNASSIGNED)
- (NI_IDN_USE_STD3_ASCII_RULES): Deprecate.
- * resolv/tst-resolv-ai_idn.c: New file.
- * resolv/tst-resolv-ai_idn-latin1.c: Likewise.
- * resolv/tst-resolv-ai_idn-nolibidn2.c: Likewise.
- * resolv/tst-no-libidn2.c: Likewise.
- * support/support_format_addrinfo.c (format_ai_flags): Do not
- handle AI_IDN_ALLOW_UNASSIGNED, AI_IDN_USE_STD3_ASCII_RULES.
- * sysdeps/posix/getaddrinfo.c (DEPRECATED_AI_IDN): Define.
- (gaih_inet): Call __idna_to_dns_encoding and
- __idna_from_dns_encoding, and use the original (punycode) name if
- __idna_from_dns_encoding fails due to an encoding error.
- (getaddrinfo): Use DEPRECATED_AI_IDN.
- * sysdeps/unix/inet/Subdirs (libidn): Remove.
- * sysdeps/unix/inet/configure: Remove file.
- * sysdeps/unix/inet/configure.ac: Likewise.
-
-2018-05-23 Florian Weimer <fweimer@redhat.com>
-
- Implement allocate_once.
- * include/allocate_once.h: New file.
- * misc/allocate_once.c: Likewise.
- * misc/tst-allocate_once.c: Likewise.
- * misc/Makefile (routines): Add allocate_once.
- (tests-internal): Add tst-allocate_once.
- (generated): Add tst-allocate_once.mtrace,
- tst-allocate_once-mem.out.
- (tests-special): Add tst-allocate_once-mem.out.
- (tst-allocate_once-ENV): Set MALLOC_TRACE.
- (tst-allocate_once-mem.out): Call mtrace.
- * misc/Versions (GLIBC_PRIVATE): Add __libc_allocate_once_slow.
-
-2018-05-23 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #23196]
- * string/test-memcpy.c (do_test1): New function.
- (test_main): Call it.
-
-2018-05-23 Andreas Schwab <schwab@suse.de>
-
- [BZ #23196]
- CVE-2018-11237
- * sysdeps/x86_64/multiarch/memmove-avx512-no-vzeroupper.S
- (L(preloop_large)): Save initial destination pointer in %r11 and
- use it instead of %rax after the loop.
- * string/test-mempcpy.c (MIN_PAGE_SIZE): Define.
-
-2018-05-22 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/aarch64/Implies: Remove aarch64/soft-fp.
- * sysdeps/aarch64/Makefile [$(subdir) = math] (CPPFLAGS): Add
- -I../soft-fp. Moved from ....
- * sysdeps/aarch64/soft-fp/Makefile: ... here. Remove file.
- * sysdeps/aarch64/soft-fp/e_sqrtl.c: Move to ....
- * sysdeps/aarch64/e_sqrtl.c: ... here.
- * sysdeps/aarch64/soft-fp/sfp-machine.h: Move to ....
- * sysdeps/aarch64/sfp-machine.h: ... here.
-
- * sysdeps/ieee754/dbl-64/k_rem_pio2.c (__kernel_rem_pio2): Ignore
- -Wmaybe-uninitialized around access to fq[0].
- * sysdeps/ieee754/flt-32/k_rem_pio2f.c (__kernel_rem_pio2f):
- Likewise.
-
- [BZ #18471]
- * sysdeps/unix/make-syscalls.sh (emit_weak_aliases): Use weak
- aliases for non-libc case of versioned symbols.
- * sysdeps/unix/sysv/linux/lseek64.c: Include <shlib-compat.h>.
- (llseek): Define as compat symbol if
- [SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_28)], not as weak alias
- with link warning.
- * sysdeps/unix/sysv/linux/mips/mips64/n32/syscalls.list (llseek):
- Make into a compat symbol, disabled for minimum symbol version
- GLIBC_2.28 and later.
- * sysdeps/unix/sysv/linux/x86_64/x32/llseek.S: Remove file.
-
-2018-05-22 Florian Weimer <fweimer@redhat.com>
-
- * sysdeps/i386/Makefile [$(subdir) == math] (sysdep-CFLAGS): Do
- not add -mpreferred-stack-boundary=4.
- [$(subdir) == csu] (sysdep-CFLAGS): Likewise.
- (stack-align-test-flags): Likewise.
- [$(subdir) == stdlib] (CFLAGS-exit.c, CFLAGS-cxa_finalize.c):
- Likewise.
- [$(subdir) == elf] (CFLAGS-dl-init.c, CFLAGS-dl-fini.c)
- (CFLAGS-dl-open.c, CFLAGS-dl-close.c, CFLAGS-dl-error.c): Likewise.
- [$(subdir) == dlfcn] (CFLAGS-dlopen.c, CFLAGS-dlopenold.c)
- (CFLAGS-dlclose.c, CFLAGS-dlerror.c): Likewise.
- * sysdeps/i386/nptl/Makefile [$(subdir) == nptl]
- (CFLAGS-pthread_create.c, CFLAGS-tst-align.c)
- (CFLAGS-tst-align2.c): Likewise.
-
-2018-05-21 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/x86/cpu-features.h (bit_arch_Prefer_FSRM): New.
- (index_arch_Prefer_FSRM): Likewise.
- * sysdeps/x86/cpu-tunables.c (TUNABLE_CALLBACK (set_hwcaps)):
- Also check Prefer_FSRM.
- * sysdeps/x86_64/multiarch/ifunc-memmove.h (IFUNC_SELECTOR):
- Also return OPTIMIZE (erms) for Prefer_FSRM.
-
-2018-05-21 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/x86/cpu-features.h (bit_cpu_FSRM): New.
- (index_cpu_FSRM): Likewise.
- (reg_FSRM): Likewise.
-
-2018-05-18 Joseph Myers <joseph@codesourcery.com>
-
- * math/gen-tgmath-tests.py: Import sys.
- (Tests.__init__): Initialize macros_seen.
- (Tests.add_tests): Add macro to macros_seen. Only generate tests
- if requested to do so for this macro.
- (Tests.add_all_tests): Take argument for macro for which to
- generate tests.
- (Tests.check_macro_list): New function.
- (main): Handle check-list argument and argument specifying macro
- for which to generate tests.
- * math/Makefile [PYTHON] (tgmath3-macros): New variable.
- [PYTHON] (tgmath3-macro-tests): Likewise.
- [PYTHON] (tests): Add $(tgmath3-macro-tests) not test-tgmath3.
- [PYTHON] (generated): Add $(addsuffix .c,$(tgmath3-macro-tests))
- not test-tgmath3.c.
- [PYTHON] (CFLAGS-test-tgmath3.c): Remove.
- [PYTHON] ($(tgmath3-macro-tests:%=$(objpfx)%.o): Add -fno-builtin
- to CFLAGS.
- [PYTHON] ($(objpfx)test-tgmath3.c): Replace rule by....
- [PYTHON] ($(foreach
- m,$(tgmath3-macros),$(objpfx)test-tgmath3-$(m).c): ... this. New
- rule.
- [PYTHON] (tests-special): Add
- $(objpfx)test-tgmath3-macro-list.out.
- [PYTHON] ($(objpfx)test-tgmath3-macro-list.out): New rule.
-
- * sysdeps/unix/sysv/linux/syscalls.list (nfsservctl): Make into a
- compat symbol, disabled for minimum symbol version GLIBC_2.28 and
- later.
-
- [BZ #22639]
- * time/tzset.c (SECSPERDAY): Cast to time_t.
- * time/tst-y2039.c: New file.
- * time/Makefile (tests): Add tst-y2039.
-
-2018-05-17 Leonardo Sandoval <leonardo.sandoval.gonzalez@intel.com>
-
- * sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S
- (PREFETCH_ONE_SET): Remove duplicate line.
-
-2018-05-17 Florian Weimer <fweimer@redhat.com>
-
- * sysdeps/generic/math-type-macros-double.h: Include
- <math-nan-payload-double.h> after <libm-alias-double.h>.
- * sysdeps/generic/math-type-macros-float.h: Include
- <math-nan-payload-float.h> after <libm-alias-float.h>.
- * sysdeps/generic/math-type-macros-float128.h: Include
- <math-nan-payload-float128.h> after <libm-alias-float128.h>.
- * sysdeps/generic/math-type-macros-ldouble.h: Include
- <math-nan-payload-ldouble.h> after <libm-alias-ldouble.h>.
-
-2018-05-17 Andreas Schwab <schwab@suse.de>
-
- * resolv/res_send.c (__res_context_send): Don't set errno when
- returing error after malloc failure.
-
-2018-05-17 H.J. Lu <hongjiu.lu@intel.com>
-
- * nptl/allocatestack.c (allocate_stack): Remove the
- !__ASSUME_PRIVATE_FUTEX paths.
- * nptl/descr.h (header): Remove the !__ASSUME_PRIVATE_FUTEX path.
- * nptl/nptl-init.c (__pthread_initialize_minimal_internal):
- Likewise.
- * sysdeps/i386/nptl/tcb-offsets.sym (PRIVATE_FUTEX): Removed.
- * sysdeps/powerpc/nptl/tcb-offsets.sym (PRIVATE_FUTEX): Likewise.
- * sysdeps/sh/nptl/tcb-offsets.sym (PRIVATE_FUTEX): Likewise.
- * sysdeps/x86_64/nptl/tcb-offsets.sym (PRIVATE_FUTEX): Likewise.
- * sysdeps/i386/nptl/tls.h: (tcbhead_t): Remve the
- !__ASSUME_PRIVATE_FUTEX path.
- * sysdeps/s390/nptl/tls.h (tcbhead_t): Likewise.
- * sysdeps/sparc/nptl/tls.h (tcbhead_t): Likewise.
- * sysdeps/x86_64/nptl/tls.h (tcbhead_t): Likewise.
- * sysdeps/unix/sysv/linux/i386/lowlevellock.S: Remove the
- !__ASSUME_PRIVATE_FUTEX macros.
- * sysdeps/unix/sysv/linux/lowlevellock-futex.h: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/cancellation.S: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
- * sysdeps/unix/sysv/linux/kernel-features.h
- (__ASSUME_PRIVATE_FUTEX): Removed.
-
-2018-05-17 Joseph Myers <joseph@codesourcery.com>
-
- * math/Makefile (libm-narrow-fns): Add div.
- (libm-test-funcs-narrow): Likewise.
- * math/Versions (GLIBC_2.28): Add narrowing divide functions.
- * math/bits/mathcalls-narrow.h (div): Use __MATHCALL_NARROW.
- * math/gen-auto-libm-tests.c (test_functions): Add div.
- * math/math-narrow.h (CHECK_NARROW_DIV): New macro.
- (NARROW_DIV_ROUND_TO_ODD): Likewise.
- (NARROW_DIV_TRIVIAL): Likewise.
- * sysdeps/ieee754/float128/float128_private.h (__fdivl): New
- macro.
- (__ddivl): Likewise.
- * sysdeps/ieee754/ldbl-opt/Makefile (libnldbl-calls): Add fdiv and
- ddiv.
- (CFLAGS-nldbl-ddiv.c): New variable.
- (CFLAGS-nldbl-fdiv.c): Likewise.
- * sysdeps/ieee754/ldbl-opt/Versions (GLIBC_2.28): Add
- __nldbl_ddivl.
- * sysdeps/ieee754/ldbl-opt/nldbl-compat.h (__nldbl_ddivl): New
- prototype.
- * manual/arith.texi (Misc FP Arithmetic): Document fdiv, fdivl,
- ddivl, fMdivfN, fMdivfNx, fMxdivfN and fMxdivfNx.
- * math/auto-libm-test-in: Add tests of div.
- * math/auto-libm-test-out-narrow-div: New generated file.
- * math/libm-test-narrow-div.inc: New file.
- * sysdeps/i386/fpu/s_f32xdivf64.c: Likewise.
- * sysdeps/ieee754/dbl-64/s_f32xdivf64.c: Likewise.
- * sysdeps/ieee754/dbl-64/s_fdiv.c: Likewise.
- * sysdeps/ieee754/float128/s_f32divf128.c: Likewise.
- * sysdeps/ieee754/float128/s_f64divf128.c: Likewise.
- * sysdeps/ieee754/float128/s_f64xdivf128.c: Likewise.
- * sysdeps/ieee754/ldbl-128/s_ddivl.c: Likewise.
- * sysdeps/ieee754/ldbl-128/s_f64xdivf128.c: Likewise.
- * sysdeps/ieee754/ldbl-128/s_fdivl.c: Likewise.
- * sysdeps/ieee754/ldbl-128ibm/s_ddivl.c: Likewise.
- * sysdeps/ieee754/ldbl-128ibm/s_fdivl.c: Likewise.
- * sysdeps/ieee754/ldbl-96/s_ddivl.c: Likewise.
- * sysdeps/ieee754/ldbl-96/s_fdivl.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/nldbl-ddiv.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/nldbl-fdiv.c: Likewise.
- * sysdeps/ieee754/soft-fp/s_ddivl.c: Likewise.
- * sysdeps/ieee754/soft-fp/s_fdiv.c: Likewise.
- * sysdeps/ieee754/soft-fp/s_fdivl.c: Likewise.
- * sysdeps/powerpc/fpu/libm-test-ulps: Update.
- * sysdeps/mach/hurd/i386/libm.abilist: Likewise.
- * 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/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/libm-le.abilist: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/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.
-
-2018-05-16 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- [BZ #23178]
- * nscd/nscd-client.h (sendfileall): Remove prototype.
- * nscd/connections.c [HAVE_SENDFILE] (sendfileall): Remove function.
- (handle_request): Use writeall instead of sendfileall.
- * nscd/aicache.c (addhstaiX): Likewise.
- * nscd/grpcache.c (cache_addgr): Likewise.
- * nscd/hstcache.c (cache_addhst): Likewise.
- * nscd/initgrcache.c (addinitgroupsX): Likewise.
- * nscd/netgroupcache.c (addgetnetgrentX, addinnetgrX): Likewise.
- * nscd/pwdcache.c (cache_addpw): Likewise.
- * nscd/servicescache.c (cache_addserv): Likewise.
- * sysdeps/unix/sysv/linux/Makefile [$(subdir) == nscd]
- (sysdep-CFLAGS): Remove -DHAVE_SENDFILE.
- * sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_SENDFILE):
- Remove define.
-
-2018-05-16 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/x86_64/multiarch/strncat-c.c (STRNCAT_PRIMARY): Removed.
- Include <string/strncat.c>.
- * sysdeps/x86_64/multiarch/strncat.c (__strncat): New strong
- alias.
- (__GI___strncat): New hidden alias.
-
-2018-05-16 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/mips/mips32/libm-test-ulps: Update.
- * sysdeps/mips/mips64/libm-test-ulps: Likewise.
-
-2018-05-16 Florian Weimer <fweimer@redhat.com>
-
- * support/Makefile (libsupport-routines): Add support_quote_blob,
- support_test_compare_blob.
- (tests): Add tst-support_quote_blob, tst-test_compare_blob.
- * support/check.h (TEST_COMPARE_BLOB): Define.
- (support_test_compare_blob): Declare.
- * support/support.h (support_quote_blob): Declare.
- * support/support_quote_blob.c: New file.
- * support/support_test_compare_blob.c: Likewise.
- * support/tst-support_quote_blob.c: Likewise.
- * support/tst-test_compare_blob.c: Likewise.
-
-2018-05-16 Florian Weimer <fweimer@redhat.com>
-
- * stdlib/strtod_nan.c: Include <math-type-macros-double.h> instead
- of <strtod_nan_double.h>.
- * stdlib/strtod_nan_main.c (STRTOD_NAN): Use SET_NAN_PAYLOAD
- instead of SET_MANTISSA.
- * stdlib/strtof_nan.c: Include <math-type-macros-float.h> instead
- of include <strtod_nan_float.h>.
- * stdlib/strtold_nan.c: Include <math-type-macros-ldouble.h>
- instead of <strtod_nan_ldouble.h>.
- * stdlib/strtod_nan_double.h: Move to ...
- * sysdeps/generic/math-nan-payload-double.h: ... here.
- (FLOAT): Remove definition.
- (SET_MANTISSA): Rename to ...
- (SET_NAN_PAYLOAD): ... this.
- * stdlib/strtod_nan_float.h: Move to ...
- * sysdeps/generic/math-nan-payload-float.h: ... here.
- (FLOAT): Remove definition.
- (SET_MANTISSA): Rename to ...
- (SET_NAN_PAYLOAD): ... this.
- * sysdeps/generic/math-type-macros-double.h: Include
- <math-nan-payload-double.h>. Include <math/math-svid-compat.h>
- instead of <math-svid-compat.h>.
- * sysdeps/generic/math-type-macros-float.h: Include
- <math-nan-payload-float.h>. Include <math/math-svid-compat.h>
- instead of <math-svid-compat.h>.
- * sysdeps/generic/math-type-macros-float128.h: Include
- <math-nan-payload-float128.h>.
- * sysdeps/generic/math-type-macros-ldouble.h: Include
- <math-nan-payload-ldouble.h>. Include <math/math-svid-compat.h>
- instead of <math-svid-compat.h>.
- * sysdeps/generic/math-type-macros.h: Document SET_NAN_PAYLOAD and
- check for definition.
- * sysdeps/ieee754/float128/strtod_nan_float128.h: Move to ...
- * sysdeps/ieee754/float128/math-nan-payload-float128.h: ... here.
- Include <ieee754_float128.h>.
- (FLOAT): Remove definition.
- (SET_MANTISSA): Rename to ...
- (SET_NAN_PAYLOAD): ... this.
- * sysdeps/ieee754/float128/strtof128_nan.c: Include
- <math-type-macros-float128.h> instead of <strtod_nan_float128.h>.
- Do not include <float128_private.h>.
- * sysdeps/ieee754/float128/wcstof128_nan.c: Likewise.
- * sysdeps/ieee754/ldbl-128/strtod_nan_ldouble.h: Move to ...
- * sysdeps/ieee754/ldbl-128/math-nan-payload-ldouble.h: ... here.
- (FLOAT): Remove definition.
- (SET_MANTISSA): Rename to ...
- (SET_NAN_PAYLOAD): ... this.
- * sysdeps/ieee754/ldbl-128ibm/strtod_nan_ldouble.h: Move to ...
- * sysdeps/ieee754/ldbl-128ibm/math-nan-payload-ldouble.h: ... here.
- (FLOAT): Remove definition.
- (SET_MANTISSA): Rename to ...
- (SET_NAN_PAYLOAD): ... this.
- * sysdeps/ieee754/ldbl-96/strtod_nan_ldouble.h: Move to ...
- * sysdeps/ieee754/ldbl-96/math-nan-payload-ldouble.h: ... here.
- (FLOAT): Remove definition.
- (SET_MANTISSA): Rename to ...
- (SET_NAN_PAYLOAD): ... this.
- * wcsmbs/wcstod_nan.c: Include <math-type-macros-double.h> instead
- of "../stdlib/strtod_nan_double.h".
- * wcsmbs/wcstof_nan.c: Include <math-type-macros-float.h> instead
- of "../stdlib/strtod_nan_float.h".
- * wcsmbs/wcstold_nan.c: Include <math-type-macros-ldouble.h>
- instead of "../stdlib/strtod_nan_ldouble.h".
- * manual/arith.texi (Parsing of Floats): Adjust comment.
-
-2018-05-16 Joseph Myers <joseph@codesourcery.com>
-
- * math/Makefile (libm-narrow-fns): Add mul.
- (libm-test-funcs-narrow): Likewise.
- * math/Versions (GLIBC_2.28): Add narrowing multiply functions.
- * math/bits/mathcalls-narrow.h (mul): Use __MATHCALL_NARROW.
- * math/gen-auto-libm-tests.c (test_functions): Add mul.
- * math/math-narrow.h (CHECK_NARROW_MUL): New macro.
- (NARROW_MUL_ROUND_TO_ODD): Likewise.
- (NARROW_MUL_TRIVIAL): Likewise.
- * soft-fp/op-common.h (FP_TRUNC_COOKED): Likewise.
- * sysdeps/ieee754/float128/float128_private.h (__fmull): New
- macro.
- (__dmull): Likewise.
- * sysdeps/ieee754/ldbl-opt/Makefile (libnldbl-calls): Add fmul and
- dmul.
- (CFLAGS-nldbl-dmul.c): New variable.
- (CFLAGS-nldbl-fmul.c): Likewise.
- * sysdeps/ieee754/ldbl-opt/Versions (GLIBC_2.28): Add
- __nldbl_dmull.
- * sysdeps/ieee754/ldbl-opt/nldbl-compat.h (__nldbl_dmull): New
- prototype.
- * manual/arith.texi (Misc FP Arithmetic): Document fmul, fmull,
- dmull, fMmulfN, fMmulfNx, fMxmulfN and fMxmulfNx.
- * math/auto-libm-test-in: Add tests of mul.
- * math/auto-libm-test-out-narrow-mul: New generated file.
- * math/libm-test-narrow-mul.inc: New file.
- * sysdeps/i386/fpu/s_f32xmulf64.c: Likewise.
- * sysdeps/ieee754/dbl-64/s_f32xmulf64.c: Likewise.
- * sysdeps/ieee754/dbl-64/s_fmul.c: Likewise.
- * sysdeps/ieee754/float128/s_f32mulf128.c: Likewise.
- * sysdeps/ieee754/float128/s_f64mulf128.c: Likewise.
- * sysdeps/ieee754/float128/s_f64xmulf128.c: Likewise.
- * sysdeps/ieee754/ldbl-128/s_dmull.c: Likewise.
- * sysdeps/ieee754/ldbl-128/s_f64xmulf128.c: Likewise.
- * sysdeps/ieee754/ldbl-128/s_fmull.c: Likewise.
- * sysdeps/ieee754/ldbl-128ibm/s_dmull.c: Likewise.
- * sysdeps/ieee754/ldbl-128ibm/s_fmull.c: Likewise.
- * sysdeps/ieee754/ldbl-96/s_dmull.c: Likewise.
- * sysdeps/ieee754/ldbl-96/s_fmull.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/nldbl-dmul.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/nldbl-fmul.c: Likewise.
- * sysdeps/ieee754/soft-fp/s_dmull.c: Likewise.
- * sysdeps/ieee754/soft-fp/s_fmul.c: Likewise.
- * sysdeps/ieee754/soft-fp/s_fmull.c: Likewise.
- * sysdeps/powerpc/fpu/libm-test-ulps: Update.
- * sysdeps/mach/hurd/i386/libm.abilist: Likewise.
- * 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/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/libm-le.abilist: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/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.
-
-2018-05-14 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/i386/crti.S (_init): Replace PREINIT_FUNCTION@PLT
- with *%eax in call.
-
-2018-05-14 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/i386/ldsodefs.h: Removed.
- * sysdeps/x86_64/ldsodefs.h: Moved to ...
- * sysdeps/x86/ldsodefs.h: This.
- (La_i86_regs): New.
- (La_i86_retval): Likewise.
- (ARCH_PLTENTER_MEMBERS): Add i86_gnu_pltenter.
- (ARCH_PLTEXIT_MEMBERS): i86_gnu_pltexit.
-
-2018-05-14 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/x86_64/multiarch/strlen-avx2.S (STRLEN): Remove the
- unnecessary testl.
-
-2018-05-13 Alan Modra <amodra@gmail.com>
-
- * sysdeps/hppa/dl-machine.h (elf_machine_rela): Add
- R_PARISC_TLS_DTPOFF32 reloc addend.
-
-2018-05-11 Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
-
- * bits/floatn-common.h: Define __HAVE_FLOAT128_UNLIKE_LDBL.
- * math/math.h: Restrict the prototype definition for the functions
- issignaling(_Float128) and iszero(_Float128); and template
- __iseqsig_type<_Float128>, from __HAVE_DISTINCT_FLOAT128 to
- __HAVE_FLOAT128_UNLIKE_LDBL.
- * sysdeps/powerpc/bits/floatn.h [__HAVE_FLOAT128
- && (!__GNUC_PREREQ (7, 0) || defined __cplusplus)
- && __LDBL_MANT_DIG__ == 113]: Use long double suffix for
- __f128() constants; define the type _Float128 as long double;
- and reuse long double in __CFLOAT128.
-
-2018-05-11 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/generic/math_private.h: Do not include
- <math-barriers.h>.
- * stdlib/strtod_l.c: Include <math-barriers.h> instead of
- <math_private.h>.
- * math/fromfp.h: Include <math-barriers.h>.
- * math/math-narrow.h: Likewise.
- * math/s_nextafter.c: Likewise.
- * math/s_nexttowardf.c: Likewise.
- * sysdeps/aarch64/fpu/s_llrint.c: Likewise.
- * sysdeps/aarch64/fpu/s_llrintf.c: Likewise.
- * sysdeps/aarch64/fpu/s_lrint.c: Likewise.
- * sysdeps/aarch64/fpu/s_lrintf.c: Likewise.
- * sysdeps/i386/fpu/s_nextafterl.c: Likewise.
- * sysdeps/i386/fpu/s_nexttoward.c: Likewise.
- * sysdeps/i386/fpu/s_nexttowardf.c: Likewise.
- * sysdeps/ieee754/dbl-64/e_atan2.c: Likewise.
- * sysdeps/ieee754/dbl-64/e_atanh.c: Likewise.
- * sysdeps/ieee754/dbl-64/e_exp.c: Likewise.
- * sysdeps/ieee754/dbl-64/e_exp2.c: Likewise.
- * sysdeps/ieee754/dbl-64/e_j0.c: Likewise.
- * sysdeps/ieee754/dbl-64/e_sqrt.c: Likewise.
- * sysdeps/ieee754/dbl-64/s_expm1.c: Likewise.
- * sysdeps/ieee754/dbl-64/s_fma.c: Likewise.
- * sysdeps/ieee754/dbl-64/s_fmaf.c: Likewise.
- * sysdeps/ieee754/dbl-64/s_log1p.c: Likewise.
- * sysdeps/ieee754/dbl-64/s_nearbyint.c: Likewise.
- * sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c: Likewise.
- * sysdeps/ieee754/flt-32/e_atanhf.c: Likewise.
- * sysdeps/ieee754/flt-32/e_j0f.c: Likewise.
- * sysdeps/ieee754/flt-32/s_expm1f.c: Likewise.
- * sysdeps/ieee754/flt-32/s_log1pf.c: Likewise.
- * sysdeps/ieee754/flt-32/s_nearbyintf.c: Likewise.
- * sysdeps/ieee754/flt-32/s_nextafterf.c: Likewise.
- * sysdeps/ieee754/k_standardl.c: Likewise.
- * sysdeps/ieee754/ldbl-128/e_asinl.c: Likewise.
- * sysdeps/ieee754/ldbl-128/e_expl.c: Likewise.
- * sysdeps/ieee754/ldbl-128/e_powl.c: Likewise.
- * sysdeps/ieee754/ldbl-128/s_fmal.c: Likewise.
- * sysdeps/ieee754/ldbl-128/s_nearbyintl.c: Likewise.
- * sysdeps/ieee754/ldbl-128/s_nextafterl.c: Likewise.
- * sysdeps/ieee754/ldbl-128/s_nexttoward.c: Likewise.
- * sysdeps/ieee754/ldbl-128/s_nexttowardf.c: Likewise.
- * sysdeps/ieee754/ldbl-128ibm/e_asinl.c: Likewise.
- * sysdeps/ieee754/ldbl-128ibm/s_fmal.c: Likewise.
- * sysdeps/ieee754/ldbl-128ibm/s_nextafterl.c: Likewise.
- * sysdeps/ieee754/ldbl-128ibm/s_nexttoward.c: Likewise.
- * sysdeps/ieee754/ldbl-128ibm/s_nexttowardf.c: Likewise.
- * sysdeps/ieee754/ldbl-128ibm/s_rintl.c: Likewise.
- * sysdeps/ieee754/ldbl-96/e_atanhl.c: Likewise.
- * sysdeps/ieee754/ldbl-96/e_j0l.c: Likewise.
- * sysdeps/ieee754/ldbl-96/s_fma.c: Likewise.
- * sysdeps/ieee754/ldbl-96/s_fmal.c: Likewise.
- * sysdeps/ieee754/ldbl-96/s_nexttoward.c: Likewise.
- * sysdeps/ieee754/ldbl-96/s_nexttowardf.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/s_nexttowardfd.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_nextafterl.c: Likewise.
-
-2018-05-11 Florian Weimer <fweimer@redhat.com>
-
- Use 64-bit epoch values in the time zone file parser.
- * include/time.h (internal_time_t): Define.
- (__tzfile_compute): Use it.
- * time/tzfile.c (struct leap): Use internal_time_t for epoch
- member.
- (transitions): Switch to internal_time_t.
- (__tzfile_read): Likewise. Remove code dealing with 4-byte time_t
- types.
- (__tzfile_compute): Use internal_time_t for timer argument. Check
- for truncation before calling __offtime.
-
-2018-05-11 Florian Weimer <fweimer@redhat.com>
-
- [BZ #23166]
- * include/rpc/clnt.h (rpc_createerr): Declare hidden alias.
- * include/rpc/svc.h (svc_pollfd, svc_max_pollfd, svc_fdset):
- Likewise.
- * sunrpc/rpc_common.c (svc_fdset, rpc_createerr, svc_pollfd)
- (svc_max_pollfd): Add nocommon attribute and hidden alias. Do not
- export without --enable-obsolete-rpc.
- * sunrpc/svcauth_des.c (svcauthdes_stats): Turn into compatibility
- symbol. This should not have been exported, ever.
-
-2018-05-11 Rafal Luzynski <digitalfreak@lingonborough.com>
-
- [BZ #23152]
- * localedata/locales/gd_GB (abmon): Fix typo in May:
- "Mhàrt" -> "Cèit". Adjust the comment according to the change.
-
-2018-05-11 Siddhesh Poyarekar <siddhesh@sourceware.org>
-
- * sysdeps/aarch64/multiarch/memcpy_falkor.S (__memcpy_falkor):
- Use multiple registers to copy data in loop tail.
-
- * sysdeps/aarch64/multiarch/memmove_falkor.S
- (__memmove_falkor): Use multiple registers to move data in
- loop tail.
-
-2018-05-10 Joseph Myers <joseph@codesourcery.com>
-
- * math/math-underflow.h: New file.
- * sysdeps/generic/math_private.h: Do not include <float.h>.
- (fabs_tg): Remove macro. Moved to math-underflow.h.
- (min_of_type_f): Likewise.
- (min_of_type_): Likewise.
- (min_of_type_l): Likewise.
- (min_of_type_f128): Likewise.
- (min_of_type): Likewise.
- (math_check_force_underflow): Likewise.
- (math_check_force_underflow_nonneg): Likewise.
- (math_check_force_underflow_complex): Likewise.
- * math/e_exp2_template.c: Include <math-underflow.h>.
- * math/k_casinh_template.c: Likewise.
- * math/s_catan_template.c: Likewise.
- * math/s_catanh_template.c: Likewise.
- * math/s_ccosh_template.c: Likewise.
- * math/s_cexp_template.c: Likewise.
- * math/s_clog10_template.c: Likewise.
- * math/s_clog_template.c: Likewise.
- * math/s_csin_template.c: Likewise.
- * math/s_csinh_template.c: Likewise.
- * math/s_csqrt_template.c: Likewise.
- * math/s_ctan_template.c: Likewise.
- * math/s_ctanh_template.c: Likewise.
- * sysdeps/ieee754/dbl-64/e_asin.c: Likewise.
- * sysdeps/ieee754/dbl-64/e_atanh.c: Likewise.
- * sysdeps/ieee754/dbl-64/e_exp2.c: Likewise.
- * sysdeps/ieee754/dbl-64/e_gamma_r.c: Likewise.
- * sysdeps/ieee754/dbl-64/e_hypot.c: Likewise.
- * sysdeps/ieee754/dbl-64/e_j1.c: Likewise.
- * sysdeps/ieee754/dbl-64/e_jn.c: Likewise.
- * sysdeps/ieee754/dbl-64/e_pow.c: Likewise.
- * sysdeps/ieee754/dbl-64/e_sinh.c: Likewise.
- * sysdeps/ieee754/dbl-64/s_asinh.c: Likewise.
- * sysdeps/ieee754/dbl-64/s_atan.c: Likewise.
- * sysdeps/ieee754/dbl-64/s_erf.c: Likewise.
- * sysdeps/ieee754/dbl-64/s_expm1.c: Likewise.
- * sysdeps/ieee754/dbl-64/s_log1p.c: Likewise.
- * sysdeps/ieee754/dbl-64/s_sin.c: Likewise.
- * sysdeps/ieee754/dbl-64/s_sincos.c: Likewise.
- * sysdeps/ieee754/dbl-64/s_tan.c: Likewise.
- * sysdeps/ieee754/dbl-64/s_tanh.c: Likewise.
- * sysdeps/ieee754/flt-32/e_asinf.c: Likewise.
- * sysdeps/ieee754/flt-32/e_atanhf.c: Likewise.
- * sysdeps/ieee754/flt-32/e_gammaf_r.c: Likewise.
- * sysdeps/ieee754/flt-32/e_j1f.c: Likewise.
- * sysdeps/ieee754/flt-32/e_jnf.c: Likewise.
- * sysdeps/ieee754/flt-32/e_sinhf.c: Likewise.
- * sysdeps/ieee754/flt-32/k_sinf.c: Likewise.
- * sysdeps/ieee754/flt-32/k_tanf.c: Likewise.
- * sysdeps/ieee754/flt-32/s_asinhf.c: Likewise.
- * sysdeps/ieee754/flt-32/s_atanf.c: Likewise.
- * sysdeps/ieee754/flt-32/s_erff.c: Likewise.
- * sysdeps/ieee754/flt-32/s_expm1f.c: Likewise.
- * sysdeps/ieee754/flt-32/s_log1pf.c: Likewise.
- * sysdeps/ieee754/flt-32/s_tanhf.c: Likewise.
- * sysdeps/ieee754/ldbl-128/e_asinl.c: Likewise.
- * sysdeps/ieee754/ldbl-128/e_atanhl.c: Likewise.
- * sysdeps/ieee754/ldbl-128/e_expl.c: Likewise.
- * sysdeps/ieee754/ldbl-128/e_gammal_r.c: Likewise.
- * sysdeps/ieee754/ldbl-128/e_hypotl.c: Likewise.
- * sysdeps/ieee754/ldbl-128/e_j1l.c: Likewise.
- * sysdeps/ieee754/ldbl-128/e_jnl.c: Likewise.
- * sysdeps/ieee754/ldbl-128/e_sinhl.c: Likewise.
- * sysdeps/ieee754/ldbl-128/k_sincosl.c: Likewise.
- * sysdeps/ieee754/ldbl-128/k_sinl.c: Likewise.
- * sysdeps/ieee754/ldbl-128/k_tanl.c: Likewise.
- * sysdeps/ieee754/ldbl-128/s_asinhl.c: Likewise.
- * sysdeps/ieee754/ldbl-128/s_atanl.c: Likewise.
- * sysdeps/ieee754/ldbl-128/s_erfl.c: Likewise.
- * sysdeps/ieee754/ldbl-128/s_expm1l.c: Likewise.
- * sysdeps/ieee754/ldbl-128/s_log1pl.c: Likewise.
- * sysdeps/ieee754/ldbl-128/s_tanhl.c: Likewise.
- * sysdeps/ieee754/ldbl-128ibm/e_asinl.c: Likewise.
- * sysdeps/ieee754/ldbl-128ibm/e_atanhl.c: Likewise.
- * sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c: Likewise.
- * sysdeps/ieee754/ldbl-128ibm/e_hypotl.c: Likewise.
- * sysdeps/ieee754/ldbl-128ibm/e_j1l.c: Likewise.
- * sysdeps/ieee754/ldbl-128ibm/e_jnl.c: Likewise.
- * sysdeps/ieee754/ldbl-128ibm/e_powl.c: Likewise.
- * sysdeps/ieee754/ldbl-128ibm/e_sinhl.c: Likewise.
- * sysdeps/ieee754/ldbl-128ibm/k_sincosl.c: Likewise.
- * sysdeps/ieee754/ldbl-128ibm/k_sinl.c: Likewise.
- * sysdeps/ieee754/ldbl-128ibm/k_tanl.c: Likewise.
- * sysdeps/ieee754/ldbl-128ibm/s_asinhl.c: Likewise.
- * sysdeps/ieee754/ldbl-128ibm/s_atanl.c: Likewise.
- * sysdeps/ieee754/ldbl-128ibm/s_erfl.c: Likewise.
- * sysdeps/ieee754/ldbl-128ibm/s_fmal.c: Likewise.
- * sysdeps/ieee754/ldbl-128ibm/s_tanhl.c: Likewise.
- * sysdeps/ieee754/ldbl-96/e_asinl.c: Likewise.
- * sysdeps/ieee754/ldbl-96/e_atanhl.c: Likewise.
- * sysdeps/ieee754/ldbl-96/e_gammal_r.c: Likewise.
- * sysdeps/ieee754/ldbl-96/e_hypotl.c: Likewise.
- * sysdeps/ieee754/ldbl-96/e_j1l.c: Likewise.
- * sysdeps/ieee754/ldbl-96/e_jnl.c: Likewise.
- * sysdeps/ieee754/ldbl-96/e_sinhl.c: Likewise.
- * sysdeps/ieee754/ldbl-96/k_sinl.c: Likewise.
- * sysdeps/ieee754/ldbl-96/k_tanl.c: Likewise.
- * sysdeps/ieee754/ldbl-96/s_asinhl.c: Likewise.
- * sysdeps/ieee754/ldbl-96/s_erfl.c: Likewise.
- * sysdeps/ieee754/ldbl-96/s_tanhl.c: Likewise.
- * sysdeps/powerpc/fpu/e_hypot.c: Likewise.
- * sysdeps/x86/fpu/powl_helper.c: Likewise.
- * sysdeps/ieee754/dbl-64/s_nextup.c: Include <float.h>.
- * sysdeps/ieee754/flt-32/s_nextupf.c: Likewise.
- * sysdeps/ieee754/ldbl-128/s_nextupl.c: Likewise.
- * sysdeps/ieee754/ldbl-128ibm/s_nextupl.c: Likewise.
- * sysdeps/ieee754/ldbl-96/s_nextupl.c: Likewise.
-
-2018-05-09 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/generic/math-barriers.h: New file.
- * sysdeps/generic/math_private.h [!math_opt_barrier]
- (math_opt_barrier): Move to math-barriers.h.
- [!math_opt_barrier] (math_force_eval): Likewise.
- * sysdeps/aarch64/fpu/math-barriers.h: New file.
- * sysdeps/aarch64/fpu/math_private.h (math_opt_barrier): Move to
- math-barriers.h.
- (math_force_eval): Likewise.
- * sysdeps/alpha/fpu/math-barriers.h: New file.
- * sysdeps/alpha/fpu/math_private.h (math_opt_barrier): Move to
- math-barriers.h.
- (math_force_eval): Likewise.
- * sysdeps/x86/fpu/math-barriers.h: New file.
- * sysdeps/i386/fpu/fenv_private.h (math_opt_barrier): Move to
- math-barriers.h.
- (math_force_eval): Likewise.
- * sysdeps/m68k/m680x0/fpu/math_private.h: Move to....
- * sysdeps/m68k/m680x0/fpu/math-barriers.h: ... here. Adjust
- multiple-include guard for rename.
- * sysdeps/powerpc/fpu/math-barriers.h: New file.
- * sysdeps/powerpc/fpu/math_private.h (math_opt_barrier): Move to
- math-barriers.h.
- (math_force_eval): Likewise.
-
-2018-05-09 Paul Pluzhnikov <ppluzhnikov@google.com>
-
- [BZ #22786]
- CVE-2018-11236
- * stdlib/canonicalize.c (__realpath): Fix overflow in path length
- computation.
- * stdlib/Makefile (test-bz22786): New test.
- * stdlib/test-bz22786.c: New test.
-
-2018-05-09 Joseph Myers <joseph@codesourcery.com>
-
- * include/math-narrow-eval.h: New file. Contents moved from ....
- * sysdeps/generic/math_private.h: ... here.
- (math_narrow_eval): Remove macro. Moved to math-narrow-eval.h.
- [FLT_EVAL_METHOD != 0] (excess_precision): Likewise.
- * math/s_fdim_template.c: Include <math-narrow-eval.h>.
- * stdlib/strtod_l.c: Likewise.
- * sysdeps/i386/fpu/s_f32xaddf64.c: Likewise.
- * sysdeps/i386/fpu/s_f32xsubf64.c: Likewise.
- * sysdeps/i386/fpu/s_fdim.c: Likewise.
- * sysdeps/ieee754/dbl-64/e_cosh.c: Likewise.
- * sysdeps/ieee754/dbl-64/e_gamma_r.c: Likewise.
- * sysdeps/ieee754/dbl-64/e_j1.c: Likewise.
- * sysdeps/ieee754/dbl-64/e_jn.c: Likewise.
- * sysdeps/ieee754/dbl-64/e_lgamma_r.c: Likewise.
- * sysdeps/ieee754/dbl-64/e_sinh.c: Likewise.
- * sysdeps/ieee754/dbl-64/gamma_productf.c: Likewise.
- * sysdeps/ieee754/dbl-64/k_rem_pio2.c: Likewise.
- * sysdeps/ieee754/dbl-64/lgamma_neg.c: Likewise.
- * sysdeps/ieee754/dbl-64/s_erf.c: Likewise.
- * sysdeps/ieee754/dbl-64/s_llrint.c: Likewise.
- * sysdeps/ieee754/dbl-64/s_lrint.c: Likewise.
- * sysdeps/ieee754/flt-32/e_coshf.c: Likewise.
- * sysdeps/ieee754/flt-32/e_exp2f.c: Likewise.
- * sysdeps/ieee754/flt-32/e_expf.c: Likewise.
- * sysdeps/ieee754/flt-32/e_gammaf_r.c: Likewise.
- * sysdeps/ieee754/flt-32/e_j1f.c: Likewise.
- * sysdeps/ieee754/flt-32/e_jnf.c: Likewise.
- * sysdeps/ieee754/flt-32/e_lgammaf_r.c: Likewise.
- * sysdeps/ieee754/flt-32/e_sinhf.c: Likewise.
- * sysdeps/ieee754/flt-32/k_rem_pio2f.c: Likewise.
- * sysdeps/ieee754/flt-32/lgamma_negf.c: Likewise.
- * sysdeps/ieee754/flt-32/s_erff.c: Likewise.
- * sysdeps/ieee754/flt-32/s_llrintf.c: Likewise.
- * sysdeps/ieee754/flt-32/s_lrintf.c: Likewise.
- * sysdeps/ieee754/ldbl-96/gamma_product.c: Likewise.
-
-2018-05-08 Andreas Schwab <schwab@suse.de>
-
- * sysdeps/nptl/internaltypes.h: Fix comment.
-
-2018-05-07 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/x86_64/multiarch/memset-vec-unaligned-erms.S
- (MEMSET_SYMBOL (__memset, erms)): Mark the debugger symbol as
- hidden.
-
-2018-05-07 Siddhesh Poyarekar <siddhesh@sourceware.org>
-
- * benchtests/bench-memcpy-walk.c (test_main): Move declaration
- of I into loop header.
- * benchtests/bench-memmove-walk.c
- (test_main): Likewise.
-
-2018-05-07 Alexandre Oliva <oliva@gnu.org>
-
- Revert:
- 2018-04-30 Raymond Nicholson <rain1@airmail.cc>
- * manual/startup.texi (Aborting a Program): Remove inappropriate joke.
-
-2018-05-05 Paul Pluzhnikov <ppluzhnikov@google.com>
-
- [BZ #20419]
- * elf/dl-load.c (open_verify): Fix stack overflow.
- * elf/Makefile (tst-big-note): New test.
- * elf/tst-big-note-lib.S: New.
- * elf/tst-big-note.c: New.
-
-2018-05-04 Joseph Myers <joseph@codesourcery.com>
-
- * scripts/abilist.awk: Ignore absolute symbols.
- * sysdeps/mach/hurd/i386/ld.abilist: Remove absolute symbols.
- * sysdeps/mach/hurd/i386/libBrokenLocale.abilist: Likewise.
- * sysdeps/mach/hurd/i386/libanl.abilist: Likewise.
- * sysdeps/mach/hurd/i386/libc.abilist: Likewise.
- * sysdeps/mach/hurd/i386/libcrypt.abilist: Likewise.
- * sysdeps/mach/hurd/i386/libdl.abilist: Likewise.
- * sysdeps/mach/hurd/i386/libm.abilist: Likewise.
- * sysdeps/mach/hurd/i386/libnsl.abilist: Likewise.
- * sysdeps/mach/hurd/i386/libpthread.abilist: Likewise.
- * sysdeps/mach/hurd/i386/libresolv.abilist: Likewise.
- * sysdeps/mach/hurd/i386/librt.abilist: Likewise.
- * sysdeps/mach/hurd/i386/libutil.abilist: Likewise.
- * sysdeps/unix/sysv/linux/aarch64/ld.abilist: Likewise.
- * sysdeps/unix/sysv/linux/aarch64/libBrokenLocale.abilist: Likewise.
- * sysdeps/unix/sysv/linux/aarch64/libanl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/aarch64/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/aarch64/libcrypt.abilist: Likewise.
- * sysdeps/unix/sysv/linux/aarch64/libdl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/aarch64/libnsl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/aarch64/libpthread.abilist: Likewise.
- * sysdeps/unix/sysv/linux/aarch64/libresolv.abilist: Likewise.
- * sysdeps/unix/sysv/linux/aarch64/librt.abilist: Likewise.
- * sysdeps/unix/sysv/linux/aarch64/libthread_db.abilist: Likewise.
- * sysdeps/unix/sysv/linux/aarch64/libutil.abilist: Likewise.
- * sysdeps/unix/sysv/linux/alpha/ld.abilist: Likewise.
- * sysdeps/unix/sysv/linux/alpha/libBrokenLocale.abilist: Likewise.
- * sysdeps/unix/sysv/linux/alpha/libanl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/alpha/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/alpha/libcrypt.abilist: Likewise.
- * sysdeps/unix/sysv/linux/alpha/libdl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/alpha/libnsl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/alpha/libpthread.abilist: Likewise.
- * sysdeps/unix/sysv/linux/alpha/libresolv.abilist: Likewise.
- * sysdeps/unix/sysv/linux/alpha/librt.abilist: Likewise.
- * sysdeps/unix/sysv/linux/alpha/libthread_db.abilist: Likewise.
- * sysdeps/unix/sysv/linux/alpha/libutil.abilist: Likewise.
- * sysdeps/unix/sysv/linux/arm/ld.abilist: Likewise.
- * sysdeps/unix/sysv/linux/arm/libBrokenLocale.abilist: Likewise.
- * sysdeps/unix/sysv/linux/arm/libanl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/arm/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/arm/libcrypt.abilist: Likewise.
- * sysdeps/unix/sysv/linux/arm/libdl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/arm/libnsl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/arm/libpthread.abilist: Likewise.
- * sysdeps/unix/sysv/linux/arm/libresolv.abilist: Likewise.
- * sysdeps/unix/sysv/linux/arm/librt.abilist: Likewise.
- * sysdeps/unix/sysv/linux/arm/libthread_db.abilist: Likewise.
- * sysdeps/unix/sysv/linux/arm/libutil.abilist: Likewise.
- * sysdeps/unix/sysv/linux/hppa/ld.abilist: Likewise.
- * sysdeps/unix/sysv/linux/hppa/libBrokenLocale.abilist: Likewise.
- * sysdeps/unix/sysv/linux/hppa/libanl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/hppa/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/hppa/libcrypt.abilist: Likewise.
- * sysdeps/unix/sysv/linux/hppa/libdl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/hppa/libnsl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/hppa/libpthread.abilist: Likewise.
- * sysdeps/unix/sysv/linux/hppa/libresolv.abilist: Likewise.
- * sysdeps/unix/sysv/linux/hppa/librt.abilist: Likewise.
- * sysdeps/unix/sysv/linux/hppa/libthread_db.abilist: Likewise.
- * sysdeps/unix/sysv/linux/hppa/libutil.abilist: Likewise.
- * sysdeps/unix/sysv/linux/i386/ld.abilist: Likewise.
- * sysdeps/unix/sysv/linux/i386/libBrokenLocale.abilist: Likewise.
- * sysdeps/unix/sysv/linux/i386/libanl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/i386/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/i386/libcrypt.abilist: Likewise.
- * sysdeps/unix/sysv/linux/i386/libdl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/i386/libnsl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/i386/libpthread.abilist: Likewise.
- * sysdeps/unix/sysv/linux/i386/libresolv.abilist: Likewise.
- * sysdeps/unix/sysv/linux/i386/librt.abilist: Likewise.
- * sysdeps/unix/sysv/linux/i386/libthread_db.abilist: Likewise.
- * sysdeps/unix/sysv/linux/i386/libutil.abilist: Likewise.
- * sysdeps/unix/sysv/linux/ia64/ld.abilist: Likewise.
- * sysdeps/unix/sysv/linux/ia64/libBrokenLocale.abilist: Likewise.
- * sysdeps/unix/sysv/linux/ia64/libanl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/ia64/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/ia64/libcrypt.abilist: Likewise.
- * sysdeps/unix/sysv/linux/ia64/libdl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/ia64/libnsl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/ia64/libpthread.abilist: Likewise.
- * sysdeps/unix/sysv/linux/ia64/libresolv.abilist: Likewise.
- * sysdeps/unix/sysv/linux/ia64/librt.abilist: Likewise.
- * sysdeps/unix/sysv/linux/ia64/libthread_db.abilist: Likewise.
- * sysdeps/unix/sysv/linux/ia64/libutil.abilist: Likewise.
- * sysdeps/unix/sysv/linux/m68k/coldfire/ld.abilist: Likewise.
- * sysdeps/unix/sysv/linux/m68k/coldfire/libBrokenLocale.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/m68k/coldfire/libanl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/m68k/coldfire/libcrypt.abilist: Likewise.
- * sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/m68k/coldfire/libnsl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist: Likewise.
- * sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist: Likewise.
- * sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist: Likewise.
- * sysdeps/unix/sysv/linux/m68k/coldfire/libthread_db.abilist: Likewise.
- * sysdeps/unix/sysv/linux/m68k/coldfire/libutil.abilist: Likewise.
- * sysdeps/unix/sysv/linux/m68k/m680x0/ld.abilist: Likewise.
- * sysdeps/unix/sysv/linux/m68k/m680x0/libBrokenLocale.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/m68k/m680x0/libanl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/m68k/m680x0/libcrypt.abilist: Likewise.
- * sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/m68k/m680x0/libnsl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist: Likewise.
- * sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist: Likewise.
- * sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist: Likewise.
- * sysdeps/unix/sysv/linux/m68k/m680x0/libthread_db.abilist: Likewise.
- * sysdeps/unix/sysv/linux/m68k/m680x0/libutil.abilist: Likewise.
- * sysdeps/unix/sysv/linux/microblaze/ld.abilist: Likewise.
- * sysdeps/unix/sysv/linux/microblaze/libBrokenLocale.abilist: Likewise.
- * sysdeps/unix/sysv/linux/microblaze/libanl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/microblaze/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/microblaze/libcrypt.abilist: Likewise.
- * sysdeps/unix/sysv/linux/microblaze/libdl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/microblaze/libnsl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/microblaze/libpthread.abilist: Likewise.
- * sysdeps/unix/sysv/linux/microblaze/libresolv.abilist: Likewise.
- * sysdeps/unix/sysv/linux/microblaze/librt.abilist: Likewise.
- * sysdeps/unix/sysv/linux/microblaze/libthread_db.abilist: Likewise.
- * sysdeps/unix/sysv/linux/microblaze/libutil.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips32/ld.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips32/libBrokenLocale.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/mips/mips32/libanl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips32/libcidn.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips32/libcrypt.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips32/libnsl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips32/libnss_compat.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips32/libnss_db.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips32/libnss_dns.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips32/libnss_files.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips32/libnss_hesiod.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips32/libnss_nis.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips32/libnss_nisplus.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips32/librt.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips32/libthread_db.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips32/libutil.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips64/libBrokenLocale.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/mips/mips64/libanl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips64/libcrypt.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips64/libnsl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips64/librt.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips64/libthread_db.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips64/libutil.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips64/n32/ld.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips64/n64/ld.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist: Likewise.
- * sysdeps/unix/sysv/linux/nios2/ld.abilist: Likewise.
- * sysdeps/unix/sysv/linux/nios2/libBrokenLocale.abilist: Likewise.
- * sysdeps/unix/sysv/linux/nios2/libanl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/nios2/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/nios2/libcrypt.abilist: Likewise.
- * sysdeps/unix/sysv/linux/nios2/libdl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/nios2/libnsl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/nios2/libpthread.abilist: Likewise.
- * sysdeps/unix/sysv/linux/nios2/libresolv.abilist: Likewise.
- * sysdeps/unix/sysv/linux/nios2/librt.abilist: Likewise.
- * sysdeps/unix/sysv/linux/nios2/libthread_db.abilist: Likewise.
- * sysdeps/unix/sysv/linux/nios2/libutil.abilist: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc32/ld.abilist: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc32/libBrokenLocale.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc32/libanl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc32/libcrypt.abilist: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc32/libnsl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc32/libthread_db.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc32/libutil.abilist: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/ld-le.abilist: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/ld.abilist: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/libBrokenLocale-le.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/libBrokenLocale.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/libanl-le.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/libanl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/libcrypt-le.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/libcrypt.abilist: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/libdl-le.abilist: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/libdl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/libnsl-le.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/libnsl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread-le.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/libresolv-le.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/libresolv.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/librt-le.abilist: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/librt.abilist: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/libthread_db-le.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/libthread_db.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/libutil-le.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/libutil.abilist: Likewise.
- * sysdeps/unix/sysv/linux/riscv/rv64/ld.abilist: Likewise.
- * sysdeps/unix/sysv/linux/riscv/rv64/libBrokenLocale.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/riscv/rv64/libanl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/riscv/rv64/libcrypt.abilist: Likewise.
- * sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/riscv/rv64/libnsl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist: Likewise.
- * sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist: Likewise.
- * sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist: Likewise.
- * sysdeps/unix/sysv/linux/riscv/rv64/libthread_db.abilist: Likewise.
- * sysdeps/unix/sysv/linux/riscv/rv64/libutil.abilist: Likewise.
- * sysdeps/unix/sysv/linux/s390/libanl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-32/ld.abilist: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-32/libBrokenLocale.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-32/libcrypt.abilist: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-32/libnsl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-32/libthread_db.abilist: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-32/libutil.abilist: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-64/ld.abilist: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-64/libBrokenLocale.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-64/libcrypt.abilist: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-64/libnsl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-64/libthread_db.abilist: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-64/libutil.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sh/ld.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sh/libBrokenLocale.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sh/libanl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sh/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sh/libcrypt.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sh/libdl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sh/libnsl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sh/libpthread.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sh/libresolv.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sh/librt.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sh/libthread_db.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sh/libutil.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc32/ld.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc32/libBrokenLocale.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc32/libanl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc32/libcrypt.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc32/libnsl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc32/libthread_db.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc32/libutil.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc64/ld.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc64/libBrokenLocale.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc64/libanl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc64/libcrypt.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc64/libnsl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc64/libthread_db.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc64/libutil.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/64/ld.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/64/libBrokenLocale.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/64/libanl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/64/libcrypt.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/64/libnsl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/64/librt.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/64/libthread_db.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/64/libutil.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/libmvec.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/x32/ld.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/x32/libBrokenLocale.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/x32/libanl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/x32/libcrypt.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/x32/libnsl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/x32/libthread_db.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/x32/libutil.abilist: Likewise.
-
-2018-05-04 Stefan Liebler <stli@linux.vnet.ibm.com>
-
- [BZ #23137]
- * sysdeps/nptl/lowlevellock.h (lll_wait_tid):
- Use atomic_load_acquire to load __tid.
-
-2018-05-02 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/unix/sysv/linux/x86_64/swapcontext.S (__swapcontext):
- Restore the pointer into %rdx, after syscall and use %rdx,
- instead of %rsi, to restore context.
-
-2018-05-02 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/unix/sysv/linux/x86_64/setcontext.S (__setcontext):
- Pop the pointer into %rdx after syscall and use %rdx, instead
- of %rsi, to restore context.
-
-2018-05-02 H.J. Lu <hongjiu.lu@intel.com>
-
- * nptl/pthread_create.c (START_THREAD_DEFN): Clear previous
- handlers after setjmp.
- * setjmp/longjmp.c (__libc_longjmp): Don't define alias if
- defined.
- * sysdeps/unix/sysv/linux/x86/setjmpP.h: Include
- <libc-pointer-arith.h>.
- (_JUMP_BUF_SIGSET_BITS_PER_WORD): New.
- (_JUMP_BUF_SIGSET_NSIG): Changed to 96.
- (_JUMP_BUF_SIGSET_NWORDS): Changed to use ALIGN_UP and
- _JUMP_BUF_SIGSET_BITS_PER_WORD.
- * sysdeps/x86/Makefile (sysdep_routines): Add __longjmp_cancel.
- * sysdeps/x86/__longjmp_cancel.S: New file.
- * sysdeps/x86/longjmp.c: Likewise.
- * sysdeps/x86/nptl/pt-longjmp.c: Likewise.
-
-2018-05-02 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * NEWS: Add ustat.h deprecation entry.
- * bits/ustat.h: Remove file.
- * misc/sys/ustat.h: Likewise.
- * misc/ustat.h: Likewise.
- * sysdeps/unix/sysv/linux/generic/ustat.c: Likewise.
- * misc/Makefile (headers): Remove ustat.h and sys/ustat.h.
- * misc/ustat.c (__ustat): Rename to __old_ustat and export only in
- compatibility mode.
- * sysdeps/unix/sysv/linux/ustat.c (__ustat): Likewise.
- * sysdeps/unix/sysv/linux/mips/ustat.c: Define DEV_TO_KDEV and use
- generic Linux implementation.
-
-2018-04-30 Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
-
- * math/w_exp_compat.c: Replace hidden_def with libm_hidden_def..
- * math/w_expl_compat.c: Likewise.
- * math/w_exp_template.c: Likewise. Remove hidden_def_x.
-
-2018-04-30 Raymond Nicholson <rain1@airmail.cc>
-
- * manual/startup.texi (Aborting a Program): Remove inappropriate joke.
-
-2018-04-27 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * sysdeps/unix/sysv/linux/arm/readahead.c: Remove file.
- * sysdeps/unix/sysv/linux/mips/mips32/readahead.c: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips64/n32/syscalls.list (readahead):
- Remove.
- * sysdeps/unix/sysv/linux/mips/mips64/n64/syscalls.list: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list: Likewise.
- * sysdeps/unix/sysv/linux/wordsize-64/syscalls.list: Likewise.
- * sysdeps/unix/sysv/linux/readahead.c (__readahead): Assume
- __NR_readahead existence, and use INLINE_SYSCALL_CALL, __ALIGNMENT_ARG,
- and SYSCALL_LL64.
-
-2018-04-27 Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
-
- * math/e_exp2_template.c: Replace M_SUF (M_LN2) with M_MLIT (M_LN2).
-
- * math/w_acos_template.c: Replace M_SUF (fabs) with M_FABS.
- * math/w_asin_template.c: Likewise.
- * math/w_atanh_template.c: Likewise.
-
-2018-04-27 Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
-
- * sysdeps/powerpc/preconfigure [machine == powerpc64] (machine): Define
- to powerpc/powerpc64/be for big-endian.
- [machine == powerpc64le]: Define to powerpc/powerpc64/le for
- little-endian.
-
- * sysdeps/powerpc/powerpc64/power4/Implies: Move to powerpc64/be.
- * sysdeps/powerpc/powerpc64/power4/fpu/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/power4/fpu/multiarch/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/power4/multiarch/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/power5+/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/power5+/fpu/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/power5+/fpu/multiarch/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/power5+/multiarch/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/power5/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/power5/fpu/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/power5/fpu/multiarch/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/power5/multiarch/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/power6/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/power6/fpu/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/power6/fpu/multiarch/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/power6/multiarch/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/power6x/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/power6x/fpu/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/power6x/fpu/multiarch/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/power6x/multiarch/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/power7/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/power7/fpu/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/power7/fpu/multiarch/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/power7/multiarch/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/power8/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/power8/fpu/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/power8/fpu/multiarch/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/power8/multiarch/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/power9/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/power9/fpu/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/power9/fpu/multiarch/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/power9/multiarch/Implies: Likewise.
-
- * sysdeps/powerpc/powerpc64/be/power4/Implies: Move from powerpc64 and
- adjusted to imply powerpc64 and older processors on powerpc64/be.
- * sysdeps/powerpc/powerpc64/be/power4/fpu/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/be/power4/fpu/multiarch/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/be/power4/multiarch/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/be/power5+/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/be/power5+/fpu/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/be/power5+/fpu/multiarch/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/be/power5+/multiarch/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/be/power5/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/be/power5/fpu/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/be/power5/fpu/multiarch/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/be/power5/multiarch/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/be/power6/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/be/power6/fpu/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/be/power6/fpu/multiarch/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/be/power6/multiarch/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/be/power6x/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/be/power6x/fpu/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/be/power6x/fpu/multiarch/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/be/power6x/multiarch/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/be/power7/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/be/power7/fpu/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/be/power7/fpu/multiarch/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/be/power7/multiarch/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/be/power8/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/be/power8/fpu/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/be/power8/fpu/multiarch/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/be/power8/multiarch/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/be/power9/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/be/power9/fpu/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/be/power9/fpu/multiarch/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/be/power9/multiarch/Implies: Likewise.
-
- * sysdeps/powerpc/powerpc64/970/Implies: Move to powerpc64/be.
- * sysdeps/powerpc/powerpc64/be/970/Implies: Move from powerpc64/be.
- * sysdeps/powerpc/powerpc64/be/a2/Implies: New file.
- * sysdeps/powerpc/powerpc64/be/cell/Implies: Likewise.
-
- * sysdeps/powerpc/powerpc64/be/Implies: New file.
- * sysdeps/powerpc/powerpc64/be/fpu/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/be/fpu/multiarch/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/be/multiarch/Implies: Likewise.
-
- * sysdeps/powerpc/powerpc64le/Implies: Move to powerpc64/le.
- * sysdeps/powerpc/powerpc64le/Implies-before: Likewise.
- * sysdeps/powerpc/powerpc64le/Makefile: Likewise.
- * sysdeps/powerpc/powerpc64le/configure: Likewise.
- * sysdeps/powerpc/powerpc64le/configure.ac: Likewise.
- * sysdeps/powerpc/powerpc64le/fpu/Implies: Likewise.
- * sysdeps/powerpc/powerpc64le/fpu/e_sqrtf128.c: Likewise.
- * sysdeps/powerpc/powerpc64le/fpu/multiarch/Implies: Likewise.
- * sysdeps/powerpc/powerpc64le/fpu/sfp-machine.h: Likewise.
- * sysdeps/powerpc/powerpc64le/multiarch/Implies: Likewise.
- * sysdeps/powerpc/powerpc64le/power9/fpu/e_sqrtf128.c: Likewise.
-
- * sysdeps/powerpc/powerpc64/le/Implies: Move from powerpc64le.
- * sysdeps/powerpc/powerpc64/le/Implies-before: Likewise.
- * sysdeps/powerpc/powerpc64/le/Makefile: Likewise.
- * sysdeps/powerpc/powerpc64/le/configure: Likewise.
- * sysdeps/powerpc/powerpc64/le/configure.ac: Likewise.
- * sysdeps/powerpc/powerpc64/le/fpu/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/le/fpu/e_sqrtf128.c: Likewise.
- * sysdeps/powerpc/powerpc64/le/fpu/multiarch/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/le/fpu/sfp-machine.h: Likewise.
- * sysdeps/powerpc/powerpc64/le/multiarch/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/le/power9/fpu/e_sqrtf128.c: Likewise.
-
- * sysdeps/powerpc/powerpc64le/power7/Implies: Move to powerpc64/le.
- * sysdeps/powerpc/powerpc64le/power7/fpu/Implies: Likewise.
- * sysdeps/powerpc/powerpc64le/power7/fpu/multiarch/Implies: Likewise.
- * sysdeps/powerpc/powerpc64le/power7/multiarch/Implies: Likewise.
- * sysdeps/powerpc/powerpc64le/power8/Implies: Likewise.
- * sysdeps/powerpc/powerpc64le/power8/fpu/Implies: Likewise.
- * sysdeps/powerpc/powerpc64le/power8/fpu/multiarch/Implies: Likewise.
- * sysdeps/powerpc/powerpc64le/power8/multiarch/Implies: Likewise.
- * sysdeps/powerpc/powerpc64le/power9/Implies: Likewise.
- * sysdeps/powerpc/powerpc64le/power9/fpu/Implies: Likewise.
- * sysdeps/powerpc/powerpc64le/power9/fpu/multiarch/Implies: Likewise.
- * sysdeps/powerpc/powerpc64le/power9/multiarch/Implies: Likewise.
-
- * sysdeps/powerpc/powerpc64/le/power7/Implies: Move from powerpc64le
- and adjusted to imply olders processors.
- * sysdeps/powerpc/powerpc64/le/power7/fpu/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/le/power7/fpu/multiarch/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/le/power7/multiarch/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/le/power8/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/le/power8/fpu/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/le/power8/fpu/multiarch/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/le/power8/multiarch/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/le/power9/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/le/power9/fpu/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/le/power9/fpu/multiarch/Implies: Likewise.
- * sysdeps/powerpc/powerpc64/le/power9/multiarch/Implies: Likewise.
-
- * sysdeps/unix/sysv/linux/powerpc/powerpc64le/Implies: Move to
- powerpc64/le.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64le/float128-abi.h: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64le/fpu/Implies: Likewise.
-
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/le/Implies: Move from
- powerpc64le.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/le/float128-abi.h: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/le/fpu/Implies: Likewise.
-
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/970/Implies: Move to
- powerpc64/be.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/a2/Implies: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/cell/Implies: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/cell/fpu/Implies: Likewise.
-
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/be/970/Implies: Move from
- powerpc64 and adjusted.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/be/a2/Implies: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/be/cell/Implies: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/be/cell/fpu/Implies:
- Likewise.
-
-2018-04-27 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/tile: Remove.
- * sysdeps/unix/sysv/linux/tile: Likewise.
- * README (tilegx-*-linux-gnu): Remove from list of supported
- configurations.
- * manual/contrib.texi (Contributors): Mention Chris Metcalf's
- contribution of support for generic Linux kernel syscall
- interface.
- * scripts/build-many-glibcs.py (Context.add_all_configs): Remove
- tilegx configurations.
- (Config.install_linux_headers): Do not handle tile.
- * sysdeps/unix/sysv/linux/aarch64/ldsodefs.h: Do not mention Tile
- in comment.
- * sysdeps/unix/sysv/linux/nios2/Makefile: Likewise.
- * sysdeps/unix/sysv/linux/posix_fadvise.c: Likewise.
- [__ASSUME_FADVISE64_64_NO_ALIGN] (__ALIGNMENT_ARG): Remove
- conditional undefine and redefine.
- * sysdeps/unix/sysv/linux/posix_fadvise64.c: Do not mention Tile
- in comment.
- [__ASSUME_FADVISE64_64_NO_ALIGN] (__ALIGNMENT_ARG): Remove
- conditional undefine and redefine.
-
-2018-04-26 Aurelien Jarno <aurelien@aurel32.net>
-
- * signal/tst-sigaction.c: New file to test BZ #23069.
- * signal/Makefile (tests): Fix indentation. Add tst-sigaction.
-
-2018-04-26 Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
-
- [BZ #22766]
- * include/dlfcn.h [__libc_dl_open]: Replace RTLD_LAZY with RTLD_NOW.
- * sysdeps/gnu/unwind-resume.c (__lib_gcc_s_init): Replace
- __libc_dlopen_mode() using RTLD_NOW with __libc_dlopen.
- * sysdeps/nptl/unwind-forcedunwind.c: Likewise.
-
-2018-04-25 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * sysdeps/unix/sysv/linux/getdirentries.c (getdirentries): Build iff
- _DIRENT_MATCHES_DIRENT64 is not defined.
- * sysdeps/unix/sysv/linux/getdirentries64.c (getdirentries64): Open
- implementation and alias to getdirentries if _DIRENT_MATCHES_DIRENT64
- is defined.
- * sysdeps/unix/sysv/linux/wordsize-64/getdirentries.c: Remove file.
- * sysdeps/unix/sysv/linux/wordsize-64/getdirentries64.c: Remove file.
-
-2018-04-25 Joseph Myers <joseph@codesourcery.com>
-
- * scripts/build-many-glibcs.py (Context.checkout): Default GCC
- version to GCC 8 branch.
-
-2018-04-24 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/mach/hurd/dl-sysdep.c: Include <not-errno.h>.
- (check_no_hidden): Use type of original function when declaring
- alias.
-
- * sysdeps/unix/sysv/linux/sys/ptrace.h
- (PTRACE_SECCOMP_GET_METADATA): New enum value and macro.
- * sysdeps/unix/sysv/linux/bits/ptrace-shared.h
- (struct __ptrace_seccomp_metadata): New type.
- * sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h
- (PTRACE_SECCOMP_GET_METADATA): Likewise.
- * sysdeps/unix/sysv/linux/arm/sys/ptrace.h
- (PTRACE_SECCOMP_GET_METADATA): Likewise.
- * sysdeps/unix/sysv/linux/ia64/sys/ptrace.h
- (PTRACE_SECCOMP_GET_METADATA): Likewise.
- * sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h
- (PTRACE_SECCOMP_GET_METADATA): Likewise.
- * sysdeps/unix/sysv/linux/s390/sys/ptrace.h
- (PTRACE_SECCOMP_GET_METADATA): Likewise.
- * sysdeps/unix/sysv/linux/sparc/sys/ptrace.h
- (PTRACE_SECCOMP_GET_METADATA): Likewise.
- * sysdeps/unix/sysv/linux/tile/sys/ptrace.h
- (PTRACE_SECCOMP_GET_METADATA): Likewise.
- * sysdeps/unix/sysv/linux/x86/sys/ptrace.h
- (PTRACE_SECCOMP_GET_METADATA): Likewise.
-
-2018-04-23 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * dirent/alphasort.c (alphasort): Build iff _DIRENT_MATCHES_DIRENT64 is
- defined.
- * dirent/versionsort.c (versionsort): Likewise.
- * dirent/alphasort64.c (alphasort64): Build regardless and alias to
- alphasort if _DIRENT_MATCHES_DIRENT64 is defined.
- * dirent/versionsort64.c (versionsort64): Likewise.
- * sysdeps/unix/sysv/linux/i386/alphasort64.c: Remove file.
- * sysdeps/unix/sysv/linux/arm/alphasort64.c: Likewise.
- * sysdeps/unix/sysv/linux/arm/versionsort64.c: Likewise.
- * sysdeps/unix/sysv/linux/m68k/alphasort64.c: Likewise.
- * sysdeps/unix/sysv/linux/m68k/versionsort64.c: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-32/alphasort64.c: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-32/versionsort64.c: Likewise.
- * sysdeps/unix/sysv/linux/i386/versionsort64.c: Likewise.
- * sysdeps/unix/sysv/linux/alphasort64.c: New file.
- * sysdeps/unix/sysv/linux/versionsort64.c: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc32/alphasort64.c: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc32/versionsort64.c: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc32/alphasort64.c: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc32/versionsort64.c: Likewise.
-
-2018-04-23 Joseph Myers <joseph@codesourcery.com>
-
- * elf/elf.h (NT_PPC_PKEY): New macro.
-
-2018-04-23 Dragan Stanojevic - Nevidljivi <invisible@hidden-city.net>
-
- [BZ #23094]
- * localedata/locales/hr_HR: fix thousands_sep and
- mon_thousands_sep
-
-2018-04-20 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/unix/sysv/linux/alpha/bits/termios.h [__USE_MISC]
- (XTABS): Define to TAB3.
-
-2018-04-20 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * sysdeps/hppa/fpu/libm-test-ulps: Update.
-
- * dirent/scandir-tail-common.c: New file.
- * dirent/scandir-tail.c: Use scandir-tail-common.c.
- (__scandir_tail): Build iff _DIRENT_MATCHES_DIRENT64 is not defined.
- * dirent/scandir.c: Use scandir-tail-common.c.
- * dirent/scandirat.c: Likewise.
- * dirent/scandir64-tail.c: Use scandir-tail-common.c.
- * dirent/scandir64.c (scandir64): Always build and alias to scandir
- if _DIRENT_MATCHES_DIRENT64 is defined.
- * dirent/scandirat64.c (scandirat64): Likewise.
- * include/dirent.h (__scandir_tail): Only define iff
- _DIRENT_MATCHES_DIRENT64 is not defined.
- (__scandir64_tail): Define regardless.
- (__scandirat, scandirat64): Remove libc_hidden_proto.
- * sysdeps/unix/sysv/linux/arm/scandir64.c: Remove file.
- * sysdeps/unix/sysv/linux/m68k/scandir64.c: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc32/scandir64.c: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-32/scandir64.c: Likewise.
- * sysdeps/unix/sysv/linux/i386/scandir64.c: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc32/scandir64.c: Likewise.
- * sysdeps/unix/sysv/linux/scandir64.c: New file.
-
-2018-04-20 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/unix/sysv/linux/aarch64/bits/hwcap.h (HWCAP_ASIMDFHM):
- New macro.
- * sysdeps/unix/sysv/linux/aarch64/dl-procinfo.c (_DL_HWCAP_COUNT):
- Increase to 24.
- (_dl_aarch64_cap_flags): Add asimdfhm.
-
-2018-04-19 Chung-Lin Tang <cltang@codesourcery.com>
-
- * sysdeps/nios2/libm-test-ulps: Update.
-
-2018-04-19 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * sysdeps/unix/sysv/linux/mips/mips64/getdents64.c (__getdents64):
- Only alias to __getdents for _DIRENT_MATCHES_DIRENT64.
-
- * sysdeps/unix/sysv/linux/alpha/getdents.c: Add comments with alpha
- requirements.
- (_DIRENT_MATCHES_DIRENT64): Undef
- * sysdeps/unix/sysv/linux/alpha/getdents64.c: Likewise.
- * sysdeps/unix/sysv/linux/arm/getdents64.c: Remove file.
- * sysdeps/unix/sysv/linux/generic/getdents.c: Likewise.
- * sysdeps/unix/sysv/linux/generic/getdents64.c: Likewise.
- * sysdeps/unix/sysv/linux/generic/wordsize-32/getdents.c: Likewise.
- * sysdeps/unix/sysv/linux/getdents.c: Simplify implementation by
- use getdents64 syscalls as base.
- * sysdeps/unix/sysv/linux/getdents64.c: Likewise and add compatibility
- symbol if required.
- * sysdeps/unix/sysv/linux/hppa/getdents64.c: Likewise.
- * sysdeps/unix/sysv/linux/i386/getdents64.c: Likewise.
- * sysdeps/unix/sysv/linux/m68k/getdents64.c: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/getdents64.c: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-32/getdents64.c: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc32/getdents64.c: Likewise.
- * sysdeps/unix/sysv/linux/wordsize-64/getdents.c: Likewise.
- * sysdeps/unix/sysv/linux/wordsize-64/getdents64.c: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c
- (__get_clockfreq_via_proc_openprom): Use __getdents64.
- * sysdeps/unix/sysv/linux/mips/mips64/getdents64.c: New file.
-
-2018-04-19 Stefan Liebler <stli@linux.vnet.ibm.com>
-
- * scripts/test_printers_common.py (init_test): Disable lock elision.
-
-2018-04-19 Stefan Liebler <stli@linux.vnet.ibm.com>
-
- * math/test-tgmath.c (count_double, count_float,
- count_ldouble, count_cdouble, count_cfloat,
- count_cldouble): Use volatile int.
-
-2018-04-19 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * sysdeps/mach/hurd/i386/Makefile [$(subdir) = conform]
- (conformtest-xfail-conds): Add i386-gnu.
- * conform/data/fcntl.h-data (flock.l_type, flock.l_whence): XFAIL on
- i386-gnu.
- * conform/data/sys/ipc.h-data (ipc_perm.uid, ipc_perm.gid,
- ipc_perm.cuid, ipc_perm.cgid): Likewise.
- * conform/data/sys/msg.h-data (msqid_ds.msg_lspid,
- msqid_ds.msg_lrpid): Likewise.
- * conform/data/sys/shm.h-data (shmid_ds.shm_lpid, shmid_ds.shm_cpid):
- Likewise.
- * conform/data/sys/stat.h-data (stat.st_dev): Likewise.
- * conform/data/sys/statvfs.h-data (statvfs.f_fsid): Likewise.
- * sysdeps/mach/hurd/bits/statvfs.h (struct statvfs): Make f_bsize,
- f_namemax, f_frsize, and f_flag fields unsigned long int instead of
- unsigned int.
- (struct statvfs64): Likewise.
- * sysdeps/mach/hurd/bits/statfs.h (struct statfs, struct statfs64):
- Likewise.
- * bits/in.h [!__USE_MISC]: Do not define struct ip_opts.
- * conform/data/netinet/in.h-data: Allow sin_ and sin6_ prefix.
- * sysdeps/gnu/bits/msq.h (struct msqid_ds): Use __wait_queue struct
- instead of wait_queue.
- * sysdeps/gnu/bits/shm.h (struct shmid_ds): Use __vm_area_struct
- instead of vm_area_struct.
- * bits/sched.h: Include <bits/types/struct_sched_param.h> and move
- struct sched_param definition to it.
- * sysdeps/unix/sysv/linux/bits/sched.h: Likewise.
- * bits/types/struct_sched_param.h: New file.
- * sysdeps/htl/bits/types/struct___pthread_attr.h: Include
- <bits/types/struct_sched_param.h> instead of <sched.h>.
- * posix/Makefile (headers): Add bits/types/struct_sched_param.h.
- * sysdeps/pthread/bits/types/sigevent_t.h: New file, based on the
- generic version but include <bits/pthreadtypes.h> to make struct
- sigevent's sigev_notify_attributes field a pthread_attr_t*.
- * bits/types/siginfo_t.h: Remove siginfo struct name, unused and
- non-compliant.
- * bits/termios.h [__USE_XOPEN || __USE_XOPEN2K8] (IXANY): Define.
- [__USE_XOPEN && !__USE_XOPEN2K] (IUCLC, OLCUC): Define.
- [__USE_XOPEN] (OFDEL): New macro.
- [__USE_XOPEN && !__USE_XOPEN2K] (XCASE): New macro.
- * bits/resource.h (RLIM_SAVED_MAX, RLIM_SAVED_CUR): New macros.
- * sysdeps/hurd/include/hurd.h [!_ISOMAC]: Do not declare libc hidden
- prototypes.
- * sysdeps/hurd/include/hurd/fd.h [!_ISOMAC]: Likewise.
- * sysdeps/hurd/include/hurd/signal.h [!_ISOMAC]: Likewise.
- * sysdeps/arm/sys/ucontext.h: Remove fpregset struct name, unused and
- non-compliant.
- * sysdeps/i386/sys/ucontext.h: Likewise.
- * sysdeps/m68k/sys/ucontext.h: Likewise.
- * sysdeps/mips/sys/ucontext.h: Likewise.
- * sysdeps/unix/sysv/linux/hppa/sys/ucontext.h: Likewise.
- * sysdeps/mach/hurd/i386/Makefile
- (test-xfail-POSIX/fcntl.h/conform): Add.
- (test-xfail-POSIX/signal.h/conform): Add.
- (test-xfail-POSIX/semaphore.h/conform): Add.
- (test-xfail-POSIX/regex.h/conform): Add.
- (test-xfail-POSIX/aio.h/conform): Add.
- (test-xfail-POSIX/mqueue.h/conform): Add.
- (test-xfail-POSIX/sys/types.h/conform): Add.
- (test-xfail-UNIX98/fcntl.h/conform): Add.
- (test-xfail-UNIX98/netdb.h/conform): Add.
- (test-xfail-UNIX98/signal.h/conform): Add.
- (test-xfail-UNIX98/semaphore.h/conform): Add.
- (test-xfail-UNIX98/regex.h/conform): Add.
- (test-xfail-UNIX98/aio.h/conform): Add.
- (test-xfail-UNIX98/ftw.h/conform): Add.
- (test-xfail-UNIX98/mqueue.h/conform): Add.
- (test-xfail-UNIX98/netinet/in.h/conform): Add.
- (test-xfail-UNIX98/sys/wait.h/conform): Add.
- (test-xfail-UNIX98/sys/sem.h/conform): Add.
- (test-xfail-UNIX98/sys/uio.h/conform): Add.
- (test-xfail-UNIX98/sys/socket.h/conform): Add.
- (test-xfail-UNIX98/sys/types.h/conform): Add.
- (test-xfail-UNIX98/stdlib.h/conform): Add.
- (test-xfail-UNIX98/arpa/inet.h/conform): Add.
- (test-xfail-POSIX2008/fcntl.h/conform): Add.
- (test-xfail-POSIX2008/netdb.h/conform): Add.
- (test-xfail-POSIX2008/signal.h/conform): Add.
- (test-xfail-POSIX2008/semaphore.h/conform): Add.
- (test-xfail-POSIX2008/regex.h/conform): Add.
- (test-xfail-POSIX2008/aio.h/conform): Add.
- (test-xfail-POSIX2008/mqueue.h/conform): Add.
- (test-xfail-POSIX2008/netinet/in.h/conform): Add.
- (test-xfail-POSIX2008/sys/wait.h/conform): Add.
- (test-xfail-POSIX2008/sys/socket.h/conform): Add.
- (test-xfail-POSIX2008/sys/types.h/conform): Add.
- (test-xfail-POSIX2008/arpa/inet.h/conform): Add.
- (test-xfail-XOPEN2K/fcntl.h/conform): Add.
- (test-xfail-XOPEN2K/netdb.h/conform): Add.
- (test-xfail-XOPEN2K/signal.h/conform): Add.
- (test-xfail-XOPEN2K/semaphore.h/conform): Add.
- (test-xfail-XOPEN2K/regex.h/conform): Add.
- (test-xfail-XOPEN2K/aio.h/conform): Add.
- (test-xfail-XOPEN2K/ftw.h/conform): Add.
- (test-xfail-XOPEN2K/mqueue.h/conform): Add.
- (test-xfail-XOPEN2K/netinet/in.h/conform): Add.
- (test-xfail-XOPEN2K/sys/wait.h/conform): Add.
- (test-xfail-XOPEN2K/sys/sem.h/conform): Add.
- (test-xfail-XOPEN2K/sys/uio.h/conform): Add.
- (test-xfail-XOPEN2K/sys/socket.h/conform): Add.
- (test-xfail-XOPEN2K/sys/types.h/conform): Add.
- (test-xfail-XOPEN2K/stdlib.h/conform): Add.
- (test-xfail-XOPEN2K/arpa/inet.h/conform): Add.
- (test-xfail-XOPEN2K8/fcntl.h/conform): Add.
- (test-xfail-XOPEN2K8/netdb.h/conform): Add.
- (test-xfail-XOPEN2K8/signal.h/conform): Add.
- (test-xfail-XOPEN2K8/semaphore.h/conform): Add.
- (test-xfail-XOPEN2K8/regex.h/conform): Add.
- (test-xfail-XOPEN2K8/aio.h/conform): Add.
- (test-xfail-XOPEN2K8/ftw.h/conform): Add.
- (test-xfail-XOPEN2K8/mqueue.h/conform): Add.
- (test-xfail-XOPEN2K8/netinet/in.h/conform): Add.
- (test-xfail-XOPEN2K8/sys/wait.h/conform): Add.
- (test-xfail-XOPEN2K8/sys/sem.h/conform): Add.
- (test-xfail-XOPEN2K8/sys/uio.h/conform): Add.
- (test-xfail-XOPEN2K8/sys/socket.h/conform): Add.
- (test-xfail-XOPEN2K8/sys/types.h/conform): Add.
- (test-xfail-XOPEN2K8/stdlib.h/conform): Add.
- (test-xfail-XOPEN2K8/arpa/inet.h/conform): Add.
- * conform/data/signal.h-data (SA_SIGINFO, SA_NOCLDWAIT): XFAIL on
- i386-gnu.
- * conform/data/sys/wait.h-data (WIFCONTINUED, WEXITED, WSTOPPED,
- WCONTINUED, WNOWAIT): XFAIL on i386-gnu.
-
-2018-04-18 Joseph Myers <joseph@codesourcery.com>
-
- * scripts/build-many-glibcs.py (Context.add_all_configs): Use
- --enable-obsolete for powerpc-linux-gnuspe.
-
-2018-04-18 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * conform/data/sys/un.h-data: Allow sun_ prefix.
- * sysdeps/mach/include/lock-intern.h: Do not declare libc hidden
- prototypes.
- * sysdeps/mach/include/mach.h: Likewise.
- * sysdeps/mach/include/mach/mig_support.h: Likewise.
- * sysdeps/mach/include/mach_error.h: Likewise.
-
-2018-04-16 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * sysdeps/arm/armv6t2/memchr.S (memchr): Remove ARM code path.
- * sysdeps/arm/armv6t2/strlen.S (memchr): Likewise.
- * sysdeps/arm/armv7/multiarch/memchr_neon.S (memchr): Likewise.
- * sysdeps/arm/armv7/strcmp.S (strcmp): Likewise.
-
-2018-04-16 Andreas Schwab <schwab@suse.de>
-
- [BZ #19527]
- * iconvdata/gconv-modules (ARMSCII8//, ShiftJISX0213//): New aliases.
-
-2018-04-15 Patrick McGehearty <patrick.mcgehearty@oracle.com>
-
- * sysdeps/ieee754/dbl-64/e_exp.c: faster __ieee754_exp()
- * sysdeps/ieee754/dbl-64/eexp.tbl: New file for e_exp.c
-
-2018-04-12 DJ Delorie <dj@redhat.com>
-
- * sysdeps/unix/sysv/linux/syscall-names.list: Update kernel
- version to 4.16.
-
-2018-04-12 Stefan Liebler <stli@linux.vnet.ibm.com>
-
- * sysdeps/unix/sysv/linux/s390/kernel_sigaction.h
- (struct kernel_sigaction): Use the same definition on 31bit as is used
- on 64bit.
-
-2018-04-09 Florian Weimer <fweimer@redhat.com>
-
- [BZ #23037]
- * resolv/res_send.c (send_dg): Use designated initializers instead
- of assignment to zero-initialize other fields of struct mmsghdr.
-
-2018-04-06 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * sysdeps/posix/readdir.c (__READDIR, __GETDENTS, DIRENTY_TYPE,
- __READDIR_ALIAS): Undefine after usage.
- * sysdeps/posix/readdir_r.c (__READDIR_R, __GETDENTS, DIRENT_TYPE,
- __READDIR_R_ALIAS): Likewise.
- * sysdeps/unix/sysv/linux/arm/readdir64.c: Remove file.
- * sysdeps/unix/sysv/linux/arm/readdir64_r.c: Likewise.
- * sysdeps/unix/sysv/linux/m68k/readdir64.c: Likewise.
- * sysdeps/unix/sysv/linux/m68k/readdir64_r.c: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/readdir64.c: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/readdir64_r.c: Likewise.
- * sysdeps/unix/sysv/linux/i386/readdir64.c: Likewise.
- * sysdeps/unix/sysv/linux/i386/readdir64_r.c: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-32/readdir64.c: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-32/readdir64_r.c: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc32/readdir64.c: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc32/readdir64_r.c: Likewise.
- * sysdeps/unix/sysv/linux/wordsize-64/readdir.c: Likewise.
- * sysdeps/unix/sysv/linux/wordsize-64/readdir64.c: Likewise.
- * sysdeps/unix/sysv/linux/wordsize-64/readdir64_r.c: Likewise.
- * sysdeps/unix/sysv/linux/wordsize-64/readdir_r.c: Likewise.
- * sysdeps/unix/sysv/linux/readdir.c: New file.
- * sysdeps/unix/sysv/linux/readdir_r.c: Likewise.
- * sysdeps/unix/sysv/linux/readdir64.c: Add compat symbol if required.
- * sysdeps/unix/sysv/linux/readdir64_r.c: Likewise.
-
- * sysdeps/i386/i686/fpu/multiarch/libm-test-ulps: Update.
-
-2018-04-06 Andreas Schwab <schwab@linux-m68k.org>
-
- * manual/charset.texi (Converting a Character): Fix typo.
-
-2018-04-05 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * sysdeps/sparc/fpu/libm-test-ulps: Update.
-
- * sysdeps/arm/libm-test-ulps: Update.
-
- * sysdeps/unix/sysv/linux/aarch64/sigaction.c: Use default Linux version
- as base implementation.
- * sysdeps/unix/sysv/linux/arm/sigaction.c: Likewise.
- * sysdeps/unix/sysv/linux/i386/sigaction.c: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/sigaction.c: Likewise.
- * sysdeps/unix/sysv/linux/alpha/kernel_sigaction.h: Add include guards,
- remove unrequired definitions and update comments.
- * sysdeps/unix/sysv/linux/kernel_sigaction.h: Likewise.
- * sysdeps/unix/sysv/linux/mips/kernel_sigaction.h: Likewise.
- * sysdeps/unix/sysv/linux/ia64/kernel_sigaction.h: New file.
- * sysdeps/unix/sysv/linux/m68k/kernel_sigaction.h: Likewise.
- * sysdeps/unix/sysv/linux/nios2/kernel_sigaction.h: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/kernel_sigaction: Likewise.
- * sysdeps/unix/sysv/linux/s390/kernel_sigaction.h: Likewise.
- * sysdeps/unix/sysv/linux/sh/kernel_sigaction.h: Likewise.
- * sysdeps/unix/sysv/linux/sparc/kernel_sigaction.h: Likewise.
- * sysdeps/unix/sysv/linux/tile/kernel_sigaction.h: Likewise.
- * sysdeps/unix/sysv/linux/ia64/sigaction.c: Remove file.
- * sysdeps/unix/sysv/linux/mips/sigaction.c: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-64/sigaction.c: Likewise.
- * sysdeps/unix/sysv/linux/sigaction.c: Add STUB, SET_SA_RESTORER,
- and RESET_SA_RESTORER hooks.
-
-2018-04-05 Stefan Liebler <stli@linux.vnet.ibm.com>
-
- * sysdeps/s390/fpu/libm-test-ulps: Regenerated.
-
-2018-04-05 Florian Weimer <fweimer@redhat.com>
-
- * manual/examples/mbstouwcs.c (mbstouwcs): Fix loop termination,
- integer overflow, memory leak on error, and indeterminate errno
- value. Add a null wide character to terminate the result string.
- * manual/charset.texi (Converting a Character): Mention embedded
- null bytes in the mbrtowc input string. Explain what happens in
- the -2 result case. Do not claim that mbrtowc is simple or
- obvious to use. Adjust the description of the code example. Use
- @code, not @var, for concrete variables.
-
-2018-04-05 Florian Weimer <fweimer@redhat.com>
-
- * manual/examples/mbstouwcs.c: New file.
- * manual/charset.texi (Converting a Character): Include it.
-
-2018-04-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * include/dirent.h (dirfd): Add hidden proto.
- * dirent/dirfd.c (dirfd): Add hidden def.
- * sysdeps/mach/hurd/dirfd.c (dirfd): Add hidden def.
- * sysdeps/posix/dirfd.c (dirfd): Add hidden def.
-
-2018-04-04 Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
-
- * sysdeps/powerpc/fpu/libm-test-ulps: Increase double-precision
- sin, cos and sincos to 1 ULP.
-
-2018-04-04 Maciej W. Rozycki <macro@mips.com>
-
- [BZ #19818]
- * sysdeps/generic/ldsodefs.h (SYMBOL_ADDRESS): Handle SHN_ABS
- symbols.
- * elf/dl-addr.c (determine_info): Ignore SHN_ABS symbols.
- * elf/tst-absolute-sym.c: New file.
- * elf/tst-absolute-sym-lib.c: New file.
- * elf/tst-absolute-sym-lib.lds: New file.
- * elf/Makefile (tests): Add `tst-absolute-sym'.
- (modules-names): Add `tst-absolute-sym-lib'.
- (LDLIBS-tst-absolute-sym-lib.so): New variable.
- ($(objpfx)tst-absolute-sym-lib.so): New dependency.
- ($(objpfx)tst-absolute-sym): New dependency.
-
- [BZ #19818]
- * sysdeps/generic/ldsodefs.h (LOOKUP_VALUE_ADDRESS): Add `set'
- parameter.
- (SYMBOL_ADDRESS): New macro.
- [!ELF_FUNCTION_PTR_IS_SPECIAL] (DL_SYMBOL_ADDRESS): Use
- SYMBOL_ADDRESS for symbol address calculation.
- * elf/dl-runtime.c (_dl_fixup): Likewise.
- (_dl_profile_fixup): Likewise.
- * elf/dl-symaddr.c (_dl_symbol_address): Likewise.
- * elf/rtld.c (dl_main): Likewise.
- * sysdeps/aarch64/dl-machine.h (elf_machine_rela): Likewise.
- * sysdeps/alpha/dl-machine.h (elf_machine_rela): Likewise.
- * sysdeps/arm/dl-machine.h (elf_machine_rel): Likewise.
- (elf_machine_rela): Likewise.
- * sysdeps/hppa/dl-machine.h (elf_machine_rela): Likewise.
- * sysdeps/hppa/dl-symaddr.c (_dl_symbol_address): Likewise.
- * sysdeps/i386/dl-machine.h (elf_machine_rel): Likewise.
- (elf_machine_rela): Likewise.
- * sysdeps/ia64/dl-machine.h (elf_machine_rela): Likewise.
- * sysdeps/m68k/dl-machine.h (elf_machine_rela): Likewise.
- * sysdeps/microblaze/dl-machine.h (elf_machine_rela): Likewise.
- * sysdeps/mips/dl-machine.h (ELF_MACHINE_BEFORE_RTLD_RELOC):
- Likewise.
- (elf_machine_reloc): Likewise.
- (elf_machine_got_rel): Likewise.
- * sysdeps/mips/dl-trampoline.c (__dl_runtime_resolve): Likewise.
- * sysdeps/nios2/dl-machine.h (elf_machine_rela): Likewise.
- * sysdeps/powerpc/powerpc32/dl-machine.h (elf_machine_rela):
- Likewise.
- * sysdeps/powerpc/powerpc64/dl-machine.h (elf_machine_rela):
- Likewise.
- * sysdeps/riscv/dl-machine.h (elf_machine_rela): Likewise.
- * sysdeps/s390/s390-32/dl-machine.h (elf_machine_rela):
- Likewise.
- * sysdeps/s390/s390-64/dl-machine.h (elf_machine_rela):
- Likewise.
- * sysdeps/sh/dl-machine.h (elf_machine_rela): Likewise.
- * sysdeps/sparc/sparc32/dl-machine.h (elf_machine_rela):
- Likewise.
- * sysdeps/sparc/sparc64/dl-machine.h (elf_machine_rela):
- Likewise.
- * sysdeps/tile/dl-machine.h (elf_machine_rela): Likewise.
- * sysdeps/x86_64/dl-machine.h (elf_machine_rela): Likewise.
-
-2018-04-04 Zack Weinberg <zackw@panix.com>
-
- * sysdeps/generic/internal-signals.h: Include signal.h,
- sigsetops.h, and stdbool.h.
- (__libc_signal_block_all): Actually block all signals.
- (__libc_signal_block_app): Likewise.
- (__libc_signal_restore_set): Actually restore the signal mask.
-
-2018-04-04 Florian Weimer <fweimer@redhat.com>
-
- inet: Actually build and run tst-deadline.
- * inet/Makefile (tests-internal): Add tst-deadline and do not
- overwrite the variable.
- (tests-static-internal): Remove variable.
-
-2018-04-03 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #22947]
- * bits/uio-ext.h (RWF_APPEND): New.
- * sysdeps/unix/sysv/linux/bits/uio-ext.h (RWF_APPEND): Likewise.
- * manual/llio.texi: Document RWF_APPEND.
- * misc/tst-preadvwritev2-common.c (RWF_APPEND): New.
- (RWF_SUPPORTED): Add RWF_APPEND.
-
-2018-04-03 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- [BZ #22391]
- * nptl/sigaction.c (__sigaction): Use __is_internal_signal to
- check for internal nptl signals.
- * nptl/sigaction.c (__sigaction): Likewise.
- * signal/sigaddset.c (sigaddset): Likewise.
- * signal/sigdelset.c (sigdelset): Likewise.
- * sysdeps/posix/signal.c (__bsd_signal): Likewise.
- * sysdeps/posix/sigset.c (sigset): Call and check sigaddset return
- value.
- * signal/sigfillset.c (sigfillset): User __clear_internal_signals
- to filter out internal nptl signals.
- * signal/tst-sigset.c (do_test): Check ech signal indidually and
- also check realtime signals using standard macros.
- * sysdeps/generic/internal-signals.h (__clear_internal_signals,
- __is_internal_signal, __libc_signal_block_all,
- __libc_signal_block_app, __libc_signal_restore_set): New functions.
- * sysdeps/nptl/sigfillset.c: Remove file.
- * sysdeps/unix/sysv/linux/internal-signals.h (__is_internal_signal):
- Change return to bool.
- (__clear_internal_signals): Remove SIGTIMER clean since it is
- equal to SIGCANEL on Linux.
- * sysdeps/unix/sysv/linux/sigtimedwait.c (__sigtimedwait): Assume
- signal set was constructed using standard functions.
-
-2018-04-03 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * sysdeps/mach/hurd/if_index.c (__if_nametoindex): Return ENODEV if
- ifname is too long.
- * hurd/hurdsig.c (interrupted_reply_port_location): Use
- DIAG_IGNORE_NEEDS_COMMENT to silence warning with GCC 6 and before.
- * sysdeps/mach/hurd/i386/exc2signal.c (_hurd_exception2signal): Add
- hidden def.
- * mach/spin-lock.c (__mutex_unlock): Add hidden def.
- * signal/sigaddset.c: Include <sigsetopts.h>.
- * signal/sigdelset.c: Likewise.
-
-2018-04-03 Wilco Dijkstra <wdijkstr@arm.com>
-
- * sysdeps/ieee754/dbl-64/s_sin.c (__sin): Cleanup ifdefs.
- (__cos): Likewise.
- * sysdeps/ieee754/dbl-64/s_sin.c (__sincos): Refactor using the same
- logic as sin and cos.
-
-2018-04-03 Wilco Dijkstra <wdijkstr@arm.com>
-
- * sysdeps/ieee754/dbl-64/s_sin.c (do_sin): Use TAYLOR_SIN for small
- inputs. Return correct sign.
- (do_sincos): Remove small input check before do_sin, let do_sin set
- the sign.
- (__sin): Likewise.
- (__cos): Likewise.
-
-2018-04-03 Wilco Dijkstra <wdijkstr@arm.com>
-
- * sysdeps/ieee754/dbl-64/s_sin.c (TAYLOR_SLOW): Remove.
- (do_cos_slow): Likewise.
- (do_sin_slow): Likewise.
- (reduce_and_compute): Likewise.
- (slow): Likewise.
- (slow1): Likewise.
- (slow2): Likewise.
- (sloww): Likewise.
- (sloww1): Likewise.
- (sloww2): Likewise.
- (bslow): Likewise.
- (bslow1): Likewise.
- (bslow2): Likewise.
- (cslow2): Likewise.
-
-2018-04-03 Wilco Dijkstra <wdijkstr@arm.com>
-
- * sysdeps/ieee754/dbl-64/s_sin.c (TAYLOR_SIN): Remove cor parameter.
- (do_cos): Remove corp parameter and calculations.
- (do_sin): Likewise.
- (do_sincos): Remove cor variable.
- (__sin): Use do_sincos for huge inputs.
- (__cos): Likewise.
- * sysdeps/ieee754/dbl-64/s_sincos.c (__sincos): Likewise.
- (reduce_and_compute_sincos): Remove unused function.
-
-2018-04-03 Wilco Dijkstra <wdijkstr@arm.com>
-
- * sysdeps/ieee754/dbl-64/s_sin.c (reduce_sincos_1): Rename to
- reduce_sincos, improve accuracy to 136 bits.
- (do_sincos_1): Rename to do_sincos, remove fallbacks to slow functions.
- (__sin): Use improved reduction and simplified do_sincos calculation.
- (__cos): Likewise.
- * sysdeps/ieee754/dbl-64/s_sincos.c (__sincos): Likewise.
-
-2018-04-03 Wilco Dijkstra <wdijkstr@arm.com>
-
- * sysdeps/ieee754/dbl-64/s_sin.c (reduce_sincos_2): Remove function.
- (do_sincos_2): Likewise.
- (__sin): Remove middle range reduction case.
- (__cos): Likewise.
- * sysdeps/ieee754/dbl-64/s_sincos.c (__sincos): Remove middle range
- reduction case.
-
-2018-04-03 Wilco Dijkstra <wdijkstr@arm.com>
-
- * sysdeps/aarch64/libm-test-ulps: Update ULP for sin, cos, sincos.
- * sysdeps/ieee754/dbl-64/s_sin.c (__sin): Remove slow paths for small
- inputs.
- (__cos): Likewise.
- * sysdeps/x86_64/fpu/libm-test-ulps: Update ULP for sin, cos, sincos.
-
-2018-04-03 Joseph Myers <joseph@codesourcery.com>
-
- * scripts/build-many-glibcs.py (Context.checkout): Default Linux
- version to 4.16
-
-2018-04-03 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * sysdeps/posix/opendir.c (o_directory_works, tryopen_o_directory):
- Remove definitions.
- (opendir_oflags): Use O_DIRECTORY regardless.
- (__opendir, __opendirat): Remove need_isdir_precheck usage.
- * sysdeps/unix/sysv/linux/opendir.c: Remove file.
-
-2018-04-02 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * sysdeps/mach/hurd/bits/local_lim.h (_POSIX_THREAD_KEYS_MAX,
- _POSIX_THREAD_DESTRUCTOR_ITERATIONS, _POSIX_THREAD_THREADS_MAX): Define
- macros.
- * sysdeps/mach/hurd/bits/posix_opt.h (_POSIX_THREADS,
- _POSIX_THREAD_ATTR_STACKSIZE, _POSIX_THREAD_ATTR_STACKADDR,
- _POSIX_SEMAPHORES, _POSIX_READER_WRITER_LOCKS, _POSIX_TIMEOUTS,
- _POSIX_SPIN_LOCKS, _POSIX_BARRIERS): Define macros to 200809L.
- * sysdeps/mach/hurd/net/if_ppp.h: Remove file.
- * sysdeps/mach/hurd/Makefile (sysdep_headers): Remove net/if_ppp.h.
-
- * htl/Makefile: Bump licence to LGPL 2.1+.
- * htl/alloca_cutoff.c: Likewise.
- * htl/cthreads-compat.c: Likewise.
- * htl/lockfile.c: Likewise.
- * htl/pt-alloc.c: Likewise.
- * htl/pt-cancel.c: Likewise.
- * htl/pt-cleanup.c: Likewise.
- * htl/pt-create.c: Likewise.
- * htl/pt-dealloc.c: Likewise.
- * htl/pt-detach.c: Likewise.
- * htl/pt-exit.c: Likewise.
- * htl/pt-getattr.c: Likewise.
- * htl/pt-initialize.c: Likewise.
- * htl/pt-internal.h: Likewise.
- * htl/pt-join.c: Likewise.
- * htl/pt-self.c: Likewise.
- * htl/pt-setcancelstate.c: Likewise.
- * htl/pt-setcanceltype.c: Likewise.
- * htl/pt-sigmask.c: Likewise.
- * htl/pt-spin-inlines.c: Likewise.
- * htl/pt-testcancel.c: Likewise.
- * htl/pt-yield.c: Likewise.
- * htl/tests/test-1.c: Likewise.
- * htl/tests/test-10.c: Likewise.
- * htl/tests/test-11.c: Likewise.
- * htl/tests/test-12.c: Likewise.
- * htl/tests/test-13.c: Likewise.
- * htl/tests/test-14.c: Likewise.
- * htl/tests/test-15.c: Likewise.
- * htl/tests/test-16.c: Likewise.
- * htl/tests/test-17.c: Likewise.
- * htl/tests/test-2.c: Likewise.
- * htl/tests/test-3.c: Likewise.
- * htl/tests/test-4.c: Likewise.
- * htl/tests/test-5.c: Likewise.
- * htl/tests/test-6.c: Likewise.
- * htl/tests/test-7.c: Likewise.
- * htl/tests/test-8.c: Likewise.
- * htl/tests/test-9.c: Likewise.
- * htl/tests/test-__pthread_destroy_specific-skip.c: Likewise.
- * sysdeps/htl/bits/cancelation.h: Likewise.
- * sysdeps/htl/bits/pthread-np.h: Likewise.
- * sysdeps/htl/bits/pthread.h: Likewise.
- * sysdeps/htl/bits/pthreadtypes.h: Likewise.
- * sysdeps/htl/bits/semaphore.h: Likewise.
- * sysdeps/htl/bits/types/__pthread_key.h: Likewise.
- * sysdeps/htl/bits/types/struct___pthread_attr.h: Likewise.
- * sysdeps/htl/bits/types/struct___pthread_barrier.h: Likewise.
- * sysdeps/htl/bits/types/struct___pthread_barrierattr.h: Likewise.
- * sysdeps/htl/bits/types/struct___pthread_cond.h: Likewise.
- * sysdeps/htl/bits/types/struct___pthread_condattr.h: Likewise.
- * sysdeps/htl/bits/types/struct___pthread_mutex.h: Likewise.
- * sysdeps/htl/bits/types/struct___pthread_mutexattr.h: Likewise.
- * sysdeps/htl/bits/types/struct___pthread_once.h: Likewise.
- * sysdeps/htl/bits/types/struct___pthread_rwlock.h: Likewise.
- * sysdeps/htl/bits/types/struct___pthread_rwlockattr.h: Likewise.
- * sysdeps/htl/old_pt-atfork.c: Likewise.
- * sysdeps/htl/pt-atfork.c: Likewise.
- * sysdeps/htl/pt-attr-destroy.c: Likewise.
- * sysdeps/htl/pt-attr-getdetachstate.c: Likewise.
- * sysdeps/htl/pt-attr-getguardsize.c: Likewise.
- * sysdeps/htl/pt-attr-getinheritsched.c: Likewise.
- * sysdeps/htl/pt-attr-getschedparam.c: Likewise.
- * sysdeps/htl/pt-attr-getschedpolicy.c: Likewise.
- * sysdeps/htl/pt-attr-getscope.c: Likewise.
- * sysdeps/htl/pt-attr-getstack.c: Likewise.
- * sysdeps/htl/pt-attr-getstackaddr.c: Likewise.
- * sysdeps/htl/pt-attr-getstacksize.c: Likewise.
- * sysdeps/htl/pt-attr-init.c: Likewise.
- * sysdeps/htl/pt-attr-setdetachstate.c: Likewise.
- * sysdeps/htl/pt-attr-setguardsize.c: Likewise.
- * sysdeps/htl/pt-attr-setinheritsched.c: Likewise.
- * sysdeps/htl/pt-attr-setschedparam.c: Likewise.
- * sysdeps/htl/pt-attr-setschedpolicy.c: Likewise.
- * sysdeps/htl/pt-attr-setscope.c: Likewise.
- * sysdeps/htl/pt-attr-setstack.c: Likewise.
- * sysdeps/htl/pt-attr-setstackaddr.c: Likewise.
- * sysdeps/htl/pt-attr-setstacksize.c: Likewise.
- * sysdeps/htl/pt-attr.c: Likewise.
- * sysdeps/htl/pt-barrier-destroy.c: Likewise.
- * sysdeps/htl/pt-barrier-init.c: Likewise.
- * sysdeps/htl/pt-barrier-wait.c: Likewise.
- * sysdeps/htl/pt-barrier.c: Likewise.
- * sysdeps/htl/pt-barrierattr-destroy.c: Likewise.
- * sysdeps/htl/pt-barrierattr-getpshared.c: Likewise.
- * sysdeps/htl/pt-barrierattr-init.c: Likewise.
- * sysdeps/htl/pt-barrierattr-setpshared.c: Likewise.
- * sysdeps/htl/pt-cond-brdcast.c: Likewise.
- * sysdeps/htl/pt-cond-destroy.c: Likewise.
- * sysdeps/htl/pt-cond-init.c: Likewise.
- * sysdeps/htl/pt-cond-signal.c: Likewise.
- * sysdeps/htl/pt-cond-timedwait.c: Likewise.
- * sysdeps/htl/pt-cond-wait.c: Likewise.
- * sysdeps/htl/pt-cond.c: Likewise.
- * sysdeps/htl/pt-condattr-destroy.c: Likewise.
- * sysdeps/htl/pt-condattr-getclock.c: Likewise.
- * sysdeps/htl/pt-condattr-getpshared.c: Likewise.
- * sysdeps/htl/pt-condattr-init.c: Likewise.
- * sysdeps/htl/pt-condattr-setclock.c: Likewise.
- * sysdeps/htl/pt-condattr-setpshared.c: Likewise.
- * sysdeps/htl/pt-destroy-specific.c: Likewise.
- * sysdeps/htl/pt-equal.c: Likewise.
- * sysdeps/htl/pt-getconcurrency.c: Likewise.
- * sysdeps/htl/pt-getcpuclockid.c: Likewise.
- * sysdeps/htl/pt-getschedparam.c: Likewise.
- * sysdeps/htl/pt-getspecific.c: Likewise.
- * sysdeps/htl/pt-init-specific.c: Likewise.
- * sysdeps/htl/pt-key-create.c: Likewise.
- * sysdeps/htl/pt-key-delete.c: Likewise.
- * sysdeps/htl/pt-key.h: Likewise.
- * sysdeps/htl/pt-mutex-destroy.c: Likewise.
- * sysdeps/htl/pt-mutex-getprioceiling.c: Likewise.
- * sysdeps/htl/pt-mutex-init.c: Likewise.
- * sysdeps/htl/pt-mutex-lock.c: Likewise.
- * sysdeps/htl/pt-mutex-setprioceiling.c: Likewise.
- * sysdeps/htl/pt-mutex-timedlock.c: Likewise.
- * sysdeps/htl/pt-mutex-trylock.c: Likewise.
- * sysdeps/htl/pt-mutex-unlock.c: Likewise.
- * sysdeps/htl/pt-mutexattr-destroy.c: Likewise.
- * sysdeps/htl/pt-mutexattr-getprioceiling.c: Likewise.
- * sysdeps/htl/pt-mutexattr-getprotocol.c: Likewise.
- * sysdeps/htl/pt-mutexattr-getpshared.c: Likewise.
- * sysdeps/htl/pt-mutexattr-gettype.c: Likewise.
- * sysdeps/htl/pt-mutexattr-init.c: Likewise.
- * sysdeps/htl/pt-mutexattr-setprioceiling.c: Likewise.
- * sysdeps/htl/pt-mutexattr-setprotocol.c: Likewise.
- * sysdeps/htl/pt-mutexattr-setpshared.c: Likewise.
- * sysdeps/htl/pt-mutexattr-settype.c: Likewise.
- * sysdeps/htl/pt-mutexattr.c: Likewise.
- * sysdeps/htl/pt-once.c: Likewise.
- * sysdeps/htl/pt-rwlock-attr.c: Likewise.
- * sysdeps/htl/pt-rwlock-destroy.c: Likewise.
- * sysdeps/htl/pt-rwlock-init.c: Likewise.
- * sysdeps/htl/pt-rwlock-rdlock.c: Likewise.
- * sysdeps/htl/pt-rwlock-timedrdlock.c: Likewise.
- * sysdeps/htl/pt-rwlock-timedwrlock.c: Likewise.
- * sysdeps/htl/pt-rwlock-tryrdlock.c: Likewise.
- * sysdeps/htl/pt-rwlock-trywrlock.c: Likewise.
- * sysdeps/htl/pt-rwlock-unlock.c: Likewise.
- * sysdeps/htl/pt-rwlock-wrlock.c: Likewise.
- * sysdeps/htl/pt-rwlockattr-destroy.c: Likewise.
- * sysdeps/htl/pt-rwlockattr-getpshared.c: Likewise.
- * sysdeps/htl/pt-rwlockattr-init.c: Likewise.
- * sysdeps/htl/pt-rwlockattr-setpshared.c: Likewise.
- * sysdeps/htl/pt-setconcurrency.c: Likewise.
- * sysdeps/htl/pt-setschedparam.c: Likewise.
- * sysdeps/htl/pt-setschedprio.c: Likewise.
- * sysdeps/htl/pt-setspecific.c: Likewise.
- * sysdeps/htl/pt-spin.c: Likewise.
- * sysdeps/htl/pt-startup.c: Likewise.
- * sysdeps/htl/pthread.h: Likewise.
- * sysdeps/htl/sem-close.c: Likewise.
- * sysdeps/htl/sem-destroy.c: Likewise.
- * sysdeps/htl/sem-getvalue.c: Likewise.
- * sysdeps/htl/sem-init.c: Likewise.
- * sysdeps/htl/sem-open.c: Likewise.
- * sysdeps/htl/sem-post.c: Likewise.
- * sysdeps/htl/sem-timedwait.c: Likewise.
- * sysdeps/htl/sem-trywait.c: Likewise.
- * sysdeps/htl/sem-unlink.c: Likewise.
- * sysdeps/htl/sem-wait.c: Likewise.
- * sysdeps/hurd/htl/pt-kill.c: Likewise.
- * sysdeps/i386/htl/pt-machdep.h: Likewise.
- * sysdeps/mach/htl/pt-block.c: Likewise.
- * sysdeps/mach/htl/pt-spin.c: Likewise.
- * sysdeps/mach/htl/pt-stack-alloc.c: Likewise.
- * sysdeps/mach/htl/pt-thread-alloc.c: Likewise.
- * sysdeps/mach/htl/pt-thread-start.c: Likewise.
- * sysdeps/mach/htl/pt-thread-terminate.c: Likewise.
- * sysdeps/mach/htl/pt-timedblock.c: Likewise.
- * sysdeps/mach/htl/pt-wakeup.c: Likewise.
- * sysdeps/mach/hurd/htl/bits/pthread-np.h: Likewise.
- * sysdeps/mach/hurd/htl/bits/types/struct___pthread_mutex.h: Likewise.
- * sysdeps/mach/hurd/htl/pt-attr-setstackaddr.c: Likewise.
- * sysdeps/mach/hurd/htl/pt-attr-setstacksize.c: Likewise.
- * sysdeps/mach/hurd/htl/pt-docancel.c: Likewise.
- * sysdeps/mach/hurd/htl/pt-hurd-cond-timedwait.c: Likewise.
- * sysdeps/mach/hurd/htl/pt-hurd-cond-wait.c: Likewise.
- * sysdeps/mach/hurd/htl/pt-mutex-consistent.c: Likewise.
- * sysdeps/mach/hurd/htl/pt-mutex-destroy.c: Likewise.
- * sysdeps/mach/hurd/htl/pt-mutex-getprioceiling.c: Likewise.
- * sysdeps/mach/hurd/htl/pt-mutex-init.c: Likewise.
- * sysdeps/mach/hurd/htl/pt-mutex-lock.c: Likewise.
- * sysdeps/mach/hurd/htl/pt-mutex-setprioceiling.c: Likewise.
- * sysdeps/mach/hurd/htl/pt-mutex-timedlock.c: Likewise.
- * sysdeps/mach/hurd/htl/pt-mutex-transfer-np.c: Likewise.
- * sysdeps/mach/hurd/htl/pt-mutex-trylock.c: Likewise.
- * sysdeps/mach/hurd/htl/pt-mutex-unlock.c: Likewise.
- * sysdeps/mach/hurd/htl/pt-mutex.h: Likewise.
- * sysdeps/mach/hurd/htl/pt-mutexattr-destroy.c: Likewise.
- * sysdeps/mach/hurd/htl/pt-mutexattr-getprioceiling.c: Likewise.
- * sysdeps/mach/hurd/htl/pt-mutexattr-getprotocol.c: Likewise.
- * sysdeps/mach/hurd/htl/pt-mutexattr-getpshared.c: Likewise.
- * sysdeps/mach/hurd/htl/pt-mutexattr-getrobust.c: Likewise.
- * sysdeps/mach/hurd/htl/pt-mutexattr-gettype.c: Likewise.
- * sysdeps/mach/hurd/htl/pt-mutexattr-init.c: Likewise.
- * sysdeps/mach/hurd/htl/pt-mutexattr-setprioceiling.c: Likewise.
- * sysdeps/mach/hurd/htl/pt-mutexattr-setprotocol.c: Likewise.
- * sysdeps/mach/hurd/htl/pt-mutexattr-setpshared.c: Likewise.
- * sysdeps/mach/hurd/htl/pt-mutexattr-setrobust.c: Likewise.
- * sysdeps/mach/hurd/htl/pt-mutexattr-settype.c: Likewise.
- * sysdeps/mach/hurd/htl/pt-sigstate-destroy.c: Likewise.
- * sysdeps/mach/hurd/htl/pt-sigstate-init.c: Likewise.
- * sysdeps/mach/hurd/htl/pt-sigstate.c: Likewise.
- * sysdeps/mach/hurd/htl/pt-sysdep.c: Likewise.
- * sysdeps/mach/hurd/htl/pt-sysdep.h: Likewise.
- * sysdeps/mach/hurd/i386/htl/pt-machdep.c: Likewise.
- * sysdeps/mach/hurd/i386/htl/pt-setup.c: Likewise.
-
- * NEWS: Announce that glibc now builds unpatched on GNU/Hurd.
- * README: Remove the mention of out-of-tree patches needed for
- GNU/Hurd.
-
- * sysdeps/mach/hurd/bits/stat.h [!__USE_MISC && __USE_ATFILE]
- (UTIME_NOW, UTIME_OMIT): Define macros.
-
- * htl/cthreads-compat.c (__cthread_detach): Call __pthread_detach
- instead of pthread_detach.
- (__cthread_fork): Call __pthread_create instead of pthread_create.
- (__cthread_keycreate): Call __pthread_key_create instead of
- pthread_key_create.
- (__cthread_getspecific): Call __pthread_getspecific instead of
- pthread_getspecific.
- (__cthread_setspecific): Call __pthread_setspecific instead of
- pthread_setspecific.
- * htl/pt-alloc.c (__pthread_alloc): Call __pthread_mutex_lock and
- __pthread_mutex_unlock instead of pthread_mutex_lock and
- pthread_mutex_unlock.
- * htl/pt-cleanup.c (__pthread_get_cleanup_stack): Rename to
- ___pthread_get_cleanup_stack.
- (__pthread_get_cleanup_stack): New strong alias.
- * htl/pt-create.c: Include <pthreadP.h>.
- (entry_point): Call __pthread_exit instead of pthread_exit.
- (pthread_create): Rename to __pthread_create.
- (pthread_create): New strong alias.
- * htl/pt-detach.c (pthread_detach): Rename to __pthread_detach.
- (pthread_detach): New strong alias.
- (__pthread_detach): Call __pthread_cond_broadcast instead of
- pthread_cond_broadcast.
- * htl/pt-exit.c: Include <pthreadP.h>.
- (__pthread_exit): Call __pthread_setcancelstate and
- ___pthread_get_cleanup_stack instead of pthread_setcancelstate and
- __pthread_get_cleanup_stack.
- * htl/pt-testcancel.c: Include <pthreadP.h>.
- (pthread_testcancel): Call __pthread_exit instead of pthread_exit.
- * sysdeps/htl/pt-attr-getstack.c: Include <pthreadP.h>
- (__pthread_attr_getstack): Call __pthread_attr_getstackaddr and
- __pthread_attr_getstacksize instead of pthread_attr_getstackaddr and
- pthread_attr_getstacksize.
- * sysdeps/htl/pt-attr-getstackaddr.c (pthread_attr_getstackaddr):
- Rename to __pthread_attr_getstackaddr.
- (pthread_attr_getstackaddr): New strong alias.
- * sysdeps/htl/pt-attr-getstacksize.c (pthread_attr_getstacksize):
- Rename to __pthread_attr_getstacksize.
- (pthread_attr_getstacksize): New strong alias.
- * sysdeps/htl/pt-attr-setstack.c: Include <pthreadP.h>.
- (pthread_attr_setstack): Rename to __pthread_attr_setstack.
- (pthread_attr_setstack): New strong alias.
- (__pthread_attr_setstack): Call __pthread_attr_getstacksize,
- __pthread_attr_setstacksize and __pthread_attr_setstackaddr instead of
- pthread_attr_getstacksize, pthread_attr_setstacksize and
- pthread_attr_setstackaddr.
- * sysdeps/htl/pt-attr-setstackaddr.c (pthread_attr_setstackaddr):
- Rename to __pthread_attr_setstackaddr.
- (pthread_attr_setstackaddr): New strong alias.
- * sysdeps/htl/pt-attr-setstacksize.c (pthread_attr_setstacksize):
- Rename to __pthread_attr_setstacksize.
- (pthread_attr_setstacksize): New strong alias.
- * sysdeps/htl/pt-cond-timedwait.c: Include <pthreadP.h>.
- (__pthread_cond_timedwait_internal): Use __pthread_exit instead of
- pthread_exit.
- * sysdeps/htl/pt-key-create.c: Include <pthreadP.h>.
- (__pthread_key_create): New hidden def.
- * sysdeps/htl/pt-key.h: Include <pthreadP.h>.
- * sysdeps/htl/pthreadP.h (_pthread_mutex_init,
- __pthread_cond_broadcast, __pthread_create, __pthread_detach,
- __pthread_exit, __pthread_key_create, __pthread_getspecific,
- __pthread_setspecific, __pthread_setcancelstate,
- __pthread_attr_getstackaddr, __pthread_attr_setstackaddr,
- __pthread_attr_getstacksize, __pthread_attr_setstacksize,
- __pthread_attr_setstack, ___pthread_get_cleanup_stack): New
- declarations.
- (__pthread_key_create, _pthread_mutex_init): New hidden declarations.
- * sysdeps/mach/hurd/htl/pt-attr-setstackaddr.c
- (pthread_attr_setstackaddr): Rename to __pthread_attr_setstackaddr.
- (pthread_attr_setstackaddr): New strong alias.
- * sysdeps/mach/hurd/htl/pt-attr-setstacksize.c
- (pthread_attr_setstacksize): Rename to __pthread_attr_setstacksize.
- (pthread_attr_setstacksize): New strong alias.
- * sysdeps/mach/hurd/htl/pt-docancel.c: Include <pthreadP.h>.
- (call_exit): Call __pthread_exit instead of pthread_exit.
- * sysdeps/mach/hurd/htl/pt-mutex-init.c: Include <pthreadP.h>.
- (_pthread_mutex_init): New hidden definition.
- * sysdeps/mach/hurd/htl/pt-sysdep.c: Include <pthreadP.h>.
- (_init_routine): Call __pthread_attr_init and __pthread_attr_setstack
- instead of pthread_attr_init and pthread_attr_setstack.
-
- * hurd/hurdauth.c (_S_msg_add_auth): Call __vm_allocate and
- __vm_deallocate instead of vm_allocate and vm_deallocate.
- * hurd/hurdmsg.c (_S_msg_set_env_variable): Call __setenv instead of
- setenv.
- * hurd/hurdprio.c (_hurd_priority_which_map): Call __geteuid instead
- of geteuid.
- * hurd/path-lookup.c (file_name_path_scan): Call __strdup instead of
- strdup.
- * hurd/siginfo.c: Include <libioP.h>.
- (_hurd_siginfo_handler): Call _IO_puts instead of puts.
- * hurd/xattr.c (_hurd_xattr_get, _hurd_xattr_set): Call __munmap instead of
- munmap.
- * mach/devstream.c: Include <libioP.h>.
- (dealloc_ref): Call __mach_port_deallocate instead of
- mach_port_deallocate.
- (mach_open_devstream): Call _IO_fopencookie instead of fopencookie.
- Call __mach_port_deallocate instead of mach_port_deallocate.
- * stdlib/canonicalize.c (__realpath): Call __pathconf instead of
- pathconf.
- * sysdeps/mach/hurd/ifreq.c (__ifreq): Call __munmap instead of
- munmap.
- * sysdeps/mach/hurd/ifreq.h (__if_freereq): Likewise.
- * sysdeps/mach/hurd/ptrace.c (ptrace): Call __kill instead of kill.
- * sysdeps/mach/hurd/sendfile64.c (sendfile64): Call __munmap instead
- of munmap.
- * sysdeps/mach/hurd/socketpair.c (__socketpair): Call __close instead
- of close.
- * sysdeps/posix/clock_getres.c (realtime_getres): Call __sysconf
- instead of sysconf.
- * sysdeps/pthread/timer_gettime.c (timer_gettime): Call
- __clock_gettime instead of clock_gettime.
- * sysdeps/pthread/timer_routines.c (thread_func): Likewise.
- * sysdeps/pthread/timer_settime.c (timer_settime): Likewise.
- * sysdeps/unix/bsd/gtty.c (gtty): Call __ioctl instead of ioctl.
- * sysdeps/unix/bsd/stty.c (stty): Likewise.
- * sysdeps/unix/bsd/tcflow.c (tcflow): Call __tcgetattr instead of
- tcgetattr.
- * sysdeps/unix/clock_nanosleep.c (__clock_nanosleep): Call
- __clock_gettime and __nanosleep instead of clock_gettime and
- nanosleep.
- * hurd/catch-signal.c (hurd_catch_signal): Rename to
- __hurd_catch_signal.
- (hurd_catch_signal): New strong alias.
- (hurd_safe_memset, hurd_safe_copyout, hurd_safe_copyin): Call
- __hurd_catch_signal instead of hurd_catch_signal.
- * hurd/exc2signal.c (_hurd_exception2signal): Add hidden def.
- * hurd/hurdexec.c (_hurd_init): Add hidden def.
- * hurd/hurdinit.c (_hurd_init): Add hidden def.
- * hurd/hurdsig.c: Include <mach/mig_support.h>.
- (_hurd_thread_sigstate): Add hidden def.
- (_hurd_internal_post_signal): Use __mutex_unlock instead of
- mutex_unlock.
- * hurd/intern-fd.c (_hurd_intern_fd): Add hidden def.
- * hurd/intr-msg.c (_hurd_intr_rpc_mach_msg): Add hidden def.
- * hurd/path-lookup.c (hurd_file_name_path_lookup): Rename to
- __hurd_file_name_path_lookup.
- (hurd_file_name_path_lookup): New strong alias.
- (file_name_path_lookup): Call __hurd_file_name_path_lookup instead of
- hurd_file_name_path_lookup.
- * mach/errstring.c (mach_error_type): Add hidden def.
- * mach/msg-destroy.c (__mach_msg_destroy): Add hidden def.
- * mach/mutex-init.c (__mutex_init): Add hidden def.
- * mach/spin-lock.c (__spin_lock_locked, __spin_lock, __spin_unlock,
- __spin_try_lock, __mutex_lock, __mutex_trylock): Add hidden defs.
- * mach/spin-solid.c (__spin_lock_solid): Add hidden def.
- * sysdeps/mach/hurd/getcwd.c
- (_hurd_canonicalize_directory_name_internal): Rename to
- __hurd_canonicalize_directory_name_internal.
- (_hurd_canonicalize_directory_name_internal): New strong alias.
- (__canonicalize_directory_name_internal, __getcwd): Call
- __hurd_canonicalize_directory_name_internal instead of
- _hurd_canonicalize_directory_name_internal.
- * sysdeps/mach/hurd/mig-reply.c: Include <mach/mig_support.h>.
- (__mig_get_reply_port, __mig_dealloc_reply_port, __mig_init): Add
- hidden defs.
- * sysdeps/hurd/include/hurd.h: New file.
- * sysdeps/hurd/include/hurd/fd.h: New file.
- * sysdeps/hurd/include/hurd/signal.h: New file.
- * sysdeps/mach/include/lock-intern.h: New file.
- * sysdeps/mach/include/mach.h: New file.
- * sysdeps/mach/include/mach/mig_support.h: New file.
- * sysdeps/mach/include/mach_error.h: New file.
- * sysdeps/hurd/include/hurd/signal.h (_hurd_raise_signal): Add hidden
- prototype.
- * hurd/hurd-raise.c (_hurd_raise_signal): Add hidden def.
- * hurd/Makefile ($(inlines:%=$(objpfx)%.c): Define
- _HEADER_H_HIDDEN_DEF macro.
- * sysdeps/hurd/include/hurd/fd.h (_hurd_fd_error,
- _hurd_fd_error_signal): Add hidden prototype.
- [_HURD_FD_H_HIDDEN_DEF] (_hurd_fd_error, _hurd_fd_error_signal): Add
- hidden def.
- * libio/iolibio.h (_IO_puts): New hidden prototype.
- * libio/ioputs.c (_IO_puts): New hidden def.
- * sysdeps/mach/hurd/localplt.data: New file.
-
-2018-04-02 Agustina Arzille <avarzille@riseup.net>
- Amos Jeffries <squid3@treenet.co.nz>
- David Michael <fedora.dm0@gmail.com>
- Marco Gerards <marco@gnu.org>
- Marcus Brinkmann <marcus@gnu.org>
- Neal H. Walfield <neal@gnu.org>
- Pino Toscano <toscano.pino@tiscali.it>
- Richard Braun <rbraun@sceen.net>
- Roland McGrath <roland@gnu.org>
- Samuel Thibault <samuel.thibault@ens-lyon.org>
- Thomas DiModica <ricinwich@yahoo.com>
- Thomas Schwinge <tschwinge@gnu.org>
-
- * htl: New directory.
- * sysdeps/htl: New directory.
- * sysdeps/hurd/htl: New directory.
- * sysdeps/i386/htl: New directory.
- * sysdeps/mach/htl: New directory.
- * sysdeps/mach/hurd/htl: New directory.
- * sysdeps/mach/hurd/i386/htl: New directory.
- * nscd/Depend, resolv/Depend, rt/Depend: Add htl dependency.
- * sysdeps/mach/hurd/i386/Implies: Add mach/hurd/i386/htl imply.
- * sysdeps/mach/hurd/i386/libpthread.abilist: New file.
-
-2018-04-02 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * sysdeps/pthread/timer_routines.c (__timer_thread_start): Block all
- signals in thread created for runing timers.
-
-2018-04-01 Florian Weimer <fweimer@redhat.com>
-
- * support/support_format_addrinfo.c (support_format_addrinfo):
- Include unknown error number in formatted result.
-
-2018-03-29 Florian Weimer <fweimer@redhat.com>
-
- * sysdeps/unix/sysv/linux/i386/tst-bz21269.c (do_test): Also
- capture SIGBUS.
-
-2018-03-27 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * sysdeps/unix/sysv/linux/arch-fork.h [__ASSUME_CLONE_BACKWARDS]
- (arch_fork): Issue INLINE_CLONE_SYSCALL if defined.
- * sysdeps/unix/sysv/linux/sparc/kernel-features.h
- (__ASSUME_CLONE_BACKWARDS): Define.
-
-2018-03-27 Jesse Hathaway <jesse@mbuki-mvuki.org>
-
- [BZ #23024]
- * sysdeps/unix/sysv/linux/getlogin_r.c (__getlogin_r_loginuid): Return
- early when linux sentinel value is set.
-
-2018-03-27 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * sysdeps/mach/hurd/bits/posix_opt.h (_POSIX_MEMLOCK): Define.
-
-2018-03-27 Andreas Schwab <schwab@suse.de>
-
- [BZ #23005]
- * resolv/res_send.c (__res_context_send): Return ENOMEM if
- allocation of private copy of nsaddr_list fails.
-
-2018-03-26 Joseph Myers <joseph@codesourcery.com>
-
- [BZ #16552]
- * sysdeps/unix/sysv/linux/generic/umount.c: Move to ....
- * sysdeps/unix/sysv/linux/umount.c: ... here.
- * sysdeps/unix/sysv/linux/arm/umount.c: Remove file.
- * sysdeps/unix/sysv/linux/hppa/umount.c: Likewise.
- * sysdeps/unix/sysv/linux/ia64/umount.c: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips64/umount.c: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/umount.c: Likewise.
- * sysdeps/unix/sysv/linux/umount.S: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/umount.c: Likewise.
-
-2018-03-26 Andreas Schwab <schwab@suse.de>
-
- * elf/elf.h (R_RISCV_BRANCH, R_RISCV_JAL, R_RISCV_CALL)
- (R_RISCV_CALL_PLT, R_RISCV_GOT_HI20, R_RISCV_TLS_GOT_HI20)
- (R_RISCV_TLS_GD_HI20, R_RISCV_PCREL_HI20, R_RISCV_PCREL_LO12_I)
- (R_RISCV_PCREL_LO12_S, R_RISCV_HI20, R_RISCV_LO12_I)
- (R_RISCV_LO12_S, R_RISCV_TPREL_HI20, R_RISCV_TPREL_LO12_I)
- (R_RISCV_TPREL_LO12_S, R_RISCV_TPREL_ADD, R_RISCV_ADD8)
- (R_RISCV_ADD16, R_RISCV_ADD32, R_RISCV_ADD64, R_RISCV_SUB8)
- (R_RISCV_SUB16, R_RISCV_SUB32, R_RISCV_SUB64)
- (R_RISCV_GNU_VTINHERIT, R_RISCV_GNU_VTENTRY, R_RISCV_ALIGN)
- (R_RISCV_RVC_BRANCH, R_RISCV_RVC_JUMP, R_RISCV_RVC_LUI)
- (R_RISCV_GPREL_I, R_RISCV_GPREL_S, R_RISCV_TPREL_I)
- (R_RISCV_TPREL_S, R_RISCV_RELAX, R_RISCV_SUB6, R_RISCV_SET6)
- (R_RISCV_SET8, R_RISCV_SET16, R_RISCV_SET32, R_RISCV_32_PCREL)
- (R_RISCV_NUM): Define.
-
-2018-03-25 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * include/errno.h [IS_IN(rtld) && !RTLD_PRIVATE_ERRNO]: Do not use the
- TLS declaration of errno.
- * sysdeps/generic/libc-start.h [!SHARED] (ARCH_SETUP_TLS): Define to
- __libc_setup_tls.
- * sysdeps/unix/sysv/linux/powerpc/libc-start.h [!SHARED]
- (ARCH_SETUP_TLS): Likewise.
- * sysdeps/mach/hurd/libc-start.h: New file copied from
- sysdeps/generic/libc-start.h, but define ARCH_SETUP_TLS to empty.
- * csu/libc-start.c [!SHARED] (LIBC_START_MAIN): Call ARCH_SETUP_TLS
- instead of __libc_setup_tls.
- * sysdeps/mach/hurd/i386/init-first.c [!SHARED] (init1): Call
- __libc_setup_tls before initializing libpthread and running _hurd_init
- which starts the signal thread.
- * sysdeps/generic/ldsodefs.h [SHARED] (__pthread_initialize_minimal):
- Declare function.
- * sysdeps/mach/hurd/bits/errno.h: Regenerate.
-
-2018-03-24 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #22998]
- * elf/Makefile (tests): Add $(tests-execstack-$(have-z-execstack))
- after it is defined.
-
-2018-03-23 Andrew Senkevich <andrew.senkevich@intel.com>
- Max Horn <max@quendi.de>
-
- [BZ #22644]
- CVE-2017-18269
- * sysdeps/i386/i686/multiarch/memcpy-sse2-unaligned.S: Fixed
- branch conditions.
- * string/test-memmove.c (do_test2): New testcase.
-
-2018-03-22 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/generic/frame.h: Remove file.
- * sysdeps/arm/frame.h: Likewise.
- * sysdeps/hppa/frame.h: Likewise.
- * sysdeps/generic/sigcontextinfo.h (SIGCONTEXT_EXTRA_ARGS): Remove
- macro.
- (GET_FRAME): Likewise.
- (GET_STACK): Likewise.
- (CALL_SIGHANDLER): Likewise.
- * sysdeps/mach/hurd/i386/sigcontextinfo.h (SIGCONTEXT_EXTRA_ARGS):
- Likewise.
- (GET_FRAME): Likewise.
- (GET_STACK): Likewise.
- (CALL_SIGHANDLER): Likewise.
- * sysdeps/unix/sysv/linux/alpha/sigcontextinfo.h
- (SIGCONTEXT_EXTRA_ARGS): Likewise.
- (GET_FRAME): Likewise.
- (GET_STACK): Likewise.
- (CALL_SIGHANDLER): Likewise.
- * sysdeps/unix/sysv/linux/arm/sigcontextinfo.h
- (SIGCONTEXT_EXTRA_ARGS): Likewise.
- (GET_FRAME): Likewise.
- (GET_STACK): Likewise.
- (ADVANCE_STACK_FRAME): Likewise.
- (CALL_SIGHANDLER): Likewise.
- * sysdeps/unix/sysv/linux/i386/sigcontextinfo.h
- (SIGCONTEXT_EXTRA_ARGS): Likewise.
- (GET_FRAME): Likewise.
- (GET_STACK): Likewise.
- (CALL_SIGHANDLER): Likewise.
- * sysdeps/unix/sysv/linux/ia64/sigcontextinfo.h
- (SIGCONTEXT_EXTRA_ARGS): Likewise.
- (GET_FRAME): Likewise.
- (GET_STACK): Likewise.
- (CALL_SIGHANDLER): Likewise.
- * sysdeps/unix/sysv/linux/m68k/sigcontextinfo.h
- (SIGCONTEXT_EXTRA_ARGS): Likewise.
- (GET_FRAME): Likewise.
- (GET_STACK): Likewise.
- (CALL_SIGHANDLER): Likewise.
- * sysdeps/unix/sysv/linux/microblaze/sigcontextinfo.h
- (SIGCONTEXT_EXTRA_ARGS): Likewise.
- (GET_FRAME): Likewise.
- (GET_STACK): Likewise.
- (CALL_SIGHANDLER): Likewise.
- * sysdeps/unix/sysv/linux/mips/sigcontextinfo.h
- (SIGCONTEXT_EXTRA_ARGS): Likewise.
- (GET_FRAME): Likewise.
- (GET_STACK): Likewise.
- (CALL_SIGHANDLER): Likewise.
- * sysdeps/unix/sysv/linux/powerpc/sigcontextinfo.h
- (SIGCONTEXT_EXTRA_ARGS): Likewise.
- (GET_FRAME): Likewise.
- (GET_STACK): Likewise.
- (CALL_SIGHANDLER): Likewise.
- * sysdeps/unix/sysv/linux/riscv/sigcontextinfo.h
- (SIGCONTEXT_EXTRA_ARGS): Likewise.
- (GET_FRAME): Likewise.
- (GET_STACK): Likewise.
- (CALL_SIGHANDLER): Likewise.
- * sysdeps/unix/sysv/linux/s390/sigcontextinfo.h
- (SIGCONTEXT_EXTRA_ARGS): Likewise.
- (GET_FRAME): Likewise.
- (GET_STACK): Likewise.
- (CALL_SIGHANDLER): Likewise.
- * sysdeps/unix/sysv/linux/sh/sigcontextinfo.h
- (SIGCONTEXT_EXTRA_ARGS): Likewise.
- (GET_FRAME): Likewise.
- (GET_STACK): Likewise.
- (CALL_SIGHANDLER): Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h
- (SIGCONTEXT_EXTRA_ARGS): Likewise.
- (FIRST_FRAME_POINTER): Likewise.
- (ADVANCE_STACK_FRAME): Likewise.
- (GET_STACK): Likewise.
- (GET_FRAME): Likewise.
- (CALL_SIGHANDLER): Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h
- (SIGCONTEXT_EXTRA_ARGS): Likewise.
- (ADVANCE_STACK_FRAME): Likewise.
- (GET_STACK): Likewise.
- (GET_FRAME): Likewise.
- (CALL_SIGHANDLER): Likewise.
- * sysdeps/unix/sysv/linux/tile/sigcontextinfo.h
- (SIGCONTEXT_EXTRA_ARGS): Likewise.
- (GET_FRAME): Likewise.
- (GET_STACK): Likewise.
- (CALL_SIGHANDLER): Likewise.
- * sysdeps/unix/sysv/linux/x86_64/sigcontextinfo.h
- (SIGCONTEXT_EXTRA_ARGS): Likewise.
- (GET_FRAME): Likewise.
- (GET_STACK): Likewise.
- (CALL_SIGHANDLER): Likewise.
-
-2018-03-21 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/x86_64/backtrace.c: Move to ....
- * debug/backtrace.c: ... here.
- * sysdeps/aarch64/backtrace.c: Remove file.
- * sysdeps/alpha/backtrace.c: Likewise.
- * sysdeps/hppa/backtrace.c: Likewise.
- * sysdeps/ia64/backtrace.c: Likewise.
- * sysdeps/mips/backtrace.c: Likewise.
- * sysdeps/nios2/backtrace.c: Likewise.
- * sysdeps/riscv/backtrace.c: Likewise.
- * sysdeps/sh/backtrace.c: Likewise.
- * sysdeps/tile/backtrace.c: Likewise.
-
-2018-03-20 Joseph Myers <joseph@codesourcery.com>
-
- [BZ #22987]
- * sysdeps/powerpc/bits/mathinline.h (fdim): Remove inline
- function.
- (fdimf): Likewise.
- * sysdeps/sparc/fpu/bits/mathinline.h: Remove file.
-
- [BZ #17343]
- * stdlib/random_r.c (__random_r): Use unsigned arithmetic for
- possibly overflowing computations.
-
-2018-03-20 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * manual/errno.texi (EOWNERDEAD, ENOTRECOVERABLE): Remove errno
- values from Linux-specific section now that it is in the GNU section.
- * sysdeps/gnu/errlist.c: Regenerate.
-
-2018-03-20 Joseph Myers <joseph@codesourcery.com>
-
- * math/Makefile (libm-narrow-fns): Add sub.
- (libm-test-funcs-narrow): Likewise.
- * math/Versions (GLIBC_2.28): Add narrowing subtract functions.
- * math/bits/mathcalls-narrow.h (sub): Use __MATHCALL_NARROW.
- * math/gen-auto-libm-tests.c (test_functions): Add sub.
- * math/math-narrow.h (CHECK_NARROW_SUB): New macro.
- (NARROW_SUB_ROUND_TO_ODD): Likewise.
- (NARROW_SUB_TRIVIAL): Likewise.
- * sysdeps/ieee754/float128/float128_private.h (__fsubl): New
- macro.
- (__dsubl): Likewise.
- * sysdeps/ieee754/ldbl-opt/Makefile (libnldbl-calls): Add fsub and
- dsub.
- (CFLAGS-nldbl-dsub.c): New variable.
- (CFLAGS-nldbl-fsub.c): Likewise.
- * sysdeps/ieee754/ldbl-opt/Versions (GLIBC_2.28): Add
- __nldbl_dsubl.
- * sysdeps/ieee754/ldbl-opt/nldbl-compat.h (__nldbl_dsubl): New
- prototype.
- * manual/arith.texi (Misc FP Arithmetic): Document fsub, fsubl,
- dsubl, fMsubfN, fMsubfNx, fMxsubfN and fMxsubfNx.
- * math/auto-libm-test-in: Add tests of sub.
- * math/auto-libm-test-out-narrow-sub: New generated file.
- * math/libm-test-narrow-sub.inc: New file.
- * sysdeps/i386/fpu/s_f32xsubf64.c: Likewise.
- * sysdeps/ieee754/dbl-64/s_f32xsubf64.c: Likewise.
- * sysdeps/ieee754/dbl-64/s_fsub.c: Likewise.
- * sysdeps/ieee754/float128/s_f32subf128.c: Likewise.
- * sysdeps/ieee754/float128/s_f64subf128.c: Likewise.
- * sysdeps/ieee754/float128/s_f64xsubf128.c: Likewise.
- * sysdeps/ieee754/ldbl-128/s_dsubl.c: Likewise.
- * sysdeps/ieee754/ldbl-128/s_f64xsubf128.c: Likewise.
- * sysdeps/ieee754/ldbl-128/s_fsubl.c: Likewise.
- * sysdeps/ieee754/ldbl-128ibm/s_dsubl.c: Likewise.
- * sysdeps/ieee754/ldbl-128ibm/s_fsubl.c: Likewise.
- * sysdeps/ieee754/ldbl-96/s_dsubl.c: Likewise.
- * sysdeps/ieee754/ldbl-96/s_fsubl.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/nldbl-dsub.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/nldbl-fsub.c: Likewise.
- * sysdeps/ieee754/soft-fp/s_dsubl.c: Likewise.
- * sysdeps/ieee754/soft-fp/s_fsub.c: Likewise.
- * sysdeps/ieee754/soft-fp/s_fsubl.c: Likewise.
- * sysdeps/powerpc/fpu/libm-test-ulps: Update.
- * sysdeps/mach/hurd/i386/libm.abilist: Likewise.
- * 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/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/libm-le.abilist: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/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/tile/tilegx32/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/tile/tilegx64/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
-
-2018-03-19 Joseph Myers <joseph@codesourcery.com>
-
- [BZ #20079]
- * elf/elf.h (SHT_X86_64_UNWIND): New macro.
-
-2018-03-19 Wilco Dijkstra <wdijkstr@arm.com>
-
- * benchtests/bench-timing.h (attribute_hidden): Undefine.
-
-2018-03-18 Richard Braun <rbraun@sceen.net>
-
- * sysdeps/mach/hurd/i386/tls.h (_hurd_tls_init): Use a temporary
- thread reference.
-
-2018-03-18 Agustina Arzille <avarzille@riseup.net>
-
- * sysdeps/mach/libc-lock.h (__libc_cleanup_frame): Define structure.
- (__libc_cleanup_fct): Define function.
- (__libc_cleanup_region_start, __libc_cleanup_region_end,
- __libc_cleanup_end): Rewrite implementation using
- __attribute__ ((__cleanup__)).
- (__libc_cleanup_push, __libc_cleanup_pop): New macros.
- * hurd/Makefile (routines): Add hurdlock.
- * hurd/Versions (GLIBC_PRIVATE): Added new entry to export the above
- interface.
- (HURD_CTHREADS_0.3): Remove __libc_getspecific.
- * hurd/hurdpid.c: Include <lowlevellock.h>
- (_S_msg_proc_newids): Use lll_wait to synchronize.
- * hurd/hurdsig.c: (reauth_proc): Use __mutex_lock and __mutex_unlock.
- * hurd/setauth.c: Include <hurdlock.h>, use integer for synchronization.
- * mach/Makefile (lock-headers): Remove machine-lock.h.
- * mach/lock-intern.h: Include <lowlevellock.h> instead of
- <machine-lock.h>.
- (__spin_lock_t): New type.
- (__SPIN_LOCK_INITIALIZER): New macro.
- (__spin_lock, __spin_unlock, __spin_try_lock, __spin_lock_locked,
- __mutex_init, __mutex_lock_solid, __mutex_unlock_solid, __mutex_lock,
- __mutex_unlock, __mutex_trylock): Use lll to implement locks.
- * mach/mutex-init.c: Include <lowlevellock.h> instead of <cthreads.h>.
- (__mutex_init): Initialize with lll.
- * manual/errno.texi (EOWNERDEAD, ENOTRECOVERABLE): New errno values.
- * sysdeps/mach/Makefile: Add libmachuser as dependencies for libs
- needing lll.
- * sysdeps/mach/hurd/bits/errno.h: Regenerate.
- * sysdeps/mach/hurd/cthreads.c (__libc_getspecific): Remove function.
- * sysdeps/mach/hurd/bits/libc-lock.h: Remove file.
- * sysdeps/mach/hurd/setpgid.c: Include <lowlevellock.h>.
- (__setpgid): Use lll for synchronization.
- * sysdeps/mach/hurd/setsid.c: Likewise with __setsid.
- * sysdeps/mach/bits/libc-lock.h: Include <tls.h> and <lowlevellock.h>
- instead of <cthreads.h>.
- (_IO_lock_inexpensive): New macro
- (__libc_lock_recursive_t, __rtld_lock_recursive_t): New structures.
- (__libc_lock_self0): New declaration.
- (__libc_lock_owner_self): New macro.
- (__libc_key_t): Remove type.
- (_LIBC_LOCK_INITIALIZER): New macro.
- (__libc_lock_define_initialized, __libc_lock_init, __libc_lock_fini,
- __libc_lock_fini_recursive, __rtld_lock_fini_recursive,
- __libc_lock_lock, __libc_lock_trylock, __libc_lock_unlock,
- __libc_lock_define_initialized_recursive,
- __rtld_lock_define_initialized_recursive,
- __libc_lock_init_recursive, __libc_lock_trylock_recursive,
- __libc_lock_lock_recursive, __libc_lock_unlock_recursive,
- __rtld_lock_initialize, __rtld_lock_trylock_recursive,
- __rtld_lock_lock_recursive, __rtld_lock_unlock_recursive
- __libc_once_define, __libc_mutex_unlock): Reimplement with lll.
- (__libc_lock_define_recursive, __rtld_lock_define_recursive,
- _LIBC_LOCK_RECURSIVE_INITIALIZER, _RTLD_LOCK_RECURSIVE_INITIALIZER):
- New macros.
- Include <libc-lockP.h> to reimplement libc_key* with pthread_key*.
- * hurd/hurdlock.c: New file.
- * hurd/hurdlock.h: New file.
- * mach/lowlevellock.h: New file
-
-2018-03-18 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * sysdeps/mach/hurd/cthreads.c: Include <cthreads.h>.
- * hurd/lookup-retry.c (__hurd_file_name_lookup_retry): Return ELOOP
- when opening a symlink with O_NOFOLLOW.
- * hurd/hurdlookup.c (__hurd_file_name_lookup): Do not append '/' to
- path when flags contains O_NOFOLLOW.
- * hurd/lookup-retry.c (__hurd_file_name_lookup_retry): Return ENOTDIR
- if flags contains O_DIRECTORY and the result is a directory.
- * sysdeps/mach/hurd/i386/init-first.c (init): Also find ELF headers by
- oneself when the pointer given in D is nul (as set by ext2fs).
- * sysdeps/mach/hurd/mlockall.c: New file.
- * sysdeps/mach/hurd/munlockall.c: New file.
-
-2018-03-17 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * hurd/hurdsig.c: Include <pthread.h>.
- (_hurdsig_init): Call pthread_getattr_np and pthread_attr_getstack to
- get the signal thread stack layout.
- * hurd/Makefile (headers): Remove threadvar.h.
- (inline-headers): Remove threadvar.h.
- * hurd/Versions (GLIBC_2.0: Remove __hurd_sigthread_stack_base,
- __hurd_sigthread_stack_end, __hurd_sigthread_variables,
- __hurd_threadvar_max, __hurd_errno_location.
- (HURD_CTHREADS_0.3): Add pthread_getattr_np, pthread_attr_getstack.
- * hurd/hurd/signal.h: Do not include <hurd/threadvar.h>.
- (_hurd_self_sigstate): Use THREAD_SELF to get _hurd_sigstate.
- (_HURD_SIGNAL_H_EXTERN_INLINE): Use THREAD_SELF to get _hurd_sigstate,
- unless TLS is not initialized yet, in which case we do not need a
- critical section yet anyway.
- * hurd/hurd/threadvar.h: Include <tls.h>, do not include
- <machine-sp.h>.
- (__hurd_sigthread_variables, __hurd_threadvar_max): Remove variables
- declarations.
- (__hurd_threadvar_index): Remove enum.
- (_HURD_THREADVAR_H_EXTERN_INLINE): Remove macro.
- (__hurd_threadvar_location_from_sp,__hurd_threadvar_location): Remove
- inlines.
- (__hurd_reply_port0): New variable declaration.
- (__hurd_local_reply_port): New macro.
- * hurd/hurdsig.c (__hurd_sigthread_variables): Remove variable.
- (interrupted_reply_port_location): Add thread_t parameter. Use it
- with THREAD_TCB to access thread-local variables.
- (_hurdsig_abort_rpcs): Pass ss->thread to
- interrupted_reply_port_location.
- (_hurd_internal_post_signal): Likewise.
- (_hurdsig_init): Use presence of cthread_fork instead of
- __hurd_threadvar_stack_mask to start signal thread by hand.
- Remove signal thread threadvar initialization.
- * hurd/hurdstartup.c: Do not include <hurd/threadvar.h>
- * hurd/sigunwind.c: Include <hurd/threadvar.h>
- (_hurdsig_longjmp_from_handler): Use __hurd_local_reply_port instead
- of threadvar.
- * sysdeps/mach/hurd/Versions (libc.GLIBC_PRIVATE): Add
- __libc_lock_self0.
- (ld.GLIBC_2.0): Remove __hurd_sigthread_stack_base,
- __hurd_sigthread_stack_end, __hurd_sigthread_variables.
- (ld.GLIBC_PRIVATE): Add __libc_lock_self0.
- * sysdeps/mach/hurd/cthreads.c: Add __libc_lock_self0.
- * sysdeps/mach/hurd/dl-sysdep.c (errno, __hurd_sigthread_stack_base,
- __hurd_sigthread_stack_end, __hurd_sigthread_variables, threadvars,
- __hurd_threadvar_stack_offset, __hurd_threadvar_stack_mask): Do not
- define variables.
- * sysdeps/mach/hurd/errno-loc.c: Do not include <errno.h> and
- <hurd/threadvar.h>.
- [IS_IN(rtld)] (rtld_errno): New variable.
- [IS_IN(rtld)] (__errno_location): New weak function.
- [!IS_IN(rtld)]: Include "../../../csu/errno-loc.c".
- * sysdeps/mach/hurd/errno.c: Remove file.
- * sysdeps/mach/hurd/fork.c: Include <hurd/threadvar.h>
- (__fork): Remove THREADVAR_SPACE macro and its use.
- * sysdeps/mach/hurd/i386/init-first.c (__hurd_threadvar_max): Remove
- variable.
- (init): Do not initialize threadvar.
- * sysdeps/mach/hurd/i386/libc.abilist (__hurd_threadvar_max): Remove
- symbol.
- * sysdeps/mach/hurd/i386/sigreturn.c (__sigreturn): Use
- __hurd_local_reply_port instead of threadvar.
- * sysdeps/mach/hurd/i386/tls.h (tcbhead_t): Add reply_port and
- _hurd_sigstate fields.
- (HURD_DESC_TLS, __LIBC_NO_TLS, THREAD_TCB): New macro.
- * sysdeps/mach/hurd/i386/trampoline.c: Remove outdated comment.
- * sysdeps/mach/hurd/libc-lock.h: Do not include <hurd/threadvar.h>.
- (__libc_lock_owner_self): Use &__libc_lock_self0 and THREAD_SELF
- instead of threadvar.
- * sysdeps/mach/hurd/libc-tsd.h: Remove file.
- * sysdeps/mach/hurd/mig-reply.c (GETPORT, reply_port): Remove macros.
- (use_threadvar, global_reply_port): Remove variables.
- (__hurd_reply_port0): New variable.
- (__mig_get_reply_port): Use __hurd_local_reply_port and
- __hurd_reply_port0 instead of threadvar.
- (__mig_dealloc_reply_port): Likewise.
- (__mig_init): Do not initialize threadvar.
- * sysdeps/mach/hurd/profil.c: Fix comment.
- * hurd/Versions (HURD_CTHREADS_0.3): Rename weak refs cthread_fork,
- cthread_detach, pthread_getattr_np, pthread_attr_getstack,
- cthread_keycreate, cthread_getspecific, cthread_setspecific to
- __cthread_fork, __cthread_detach, __pthread_getattr_np,
- __pthread_attr_getstack, __cthread_keycreate, __cthread_getspecific,
- __cthread_setspecific.
- * hurd/hurdsig.c (_hurdsig_init): Use __cthread_fork,
- __cthread_detach, __pthread_getattr_np, __pthread_attr_getstack,
- __cthread_t instead of cthread_fork, cthread_detach,
- pthread_getattr_np, pthread_attr_getstack.
- * sysdeps/mach/hurd/cthreads.c (cthread_keycreate): Rename to
- __cthread_keycreate.
- (cthread_getspecific): Rename to __cthread_getspecific.
- (cthread_setspecific): Rename to __cthread_setspecific.
- (__libc_getspecific): Use __cthread_getspecific instead of
- cthread_getspecific.
- * sysdeps/mach/hurd/libc-lock.h (__libc_key_create): Use
- __cthread_keycreate instead of cthread_keycreate.
- (__libc_setspecific): Use __cthread_setspecific instead of
- cthread_setspecific.
- * sysdeps/mach/libc-lock.h (__libc_key_create, __libc_setspecific):
- Likewise.
- * sysdeps/unix/sysv/linux/x86_64/sysdep.h: Always include
- <dl-sysdep.h>. Test for value of RTLD_PRIVATE_ERRNO instead of
- testing whether it is defined.
-
-2018-03-16 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * sysdeps/generic/thread_state.h (MACHINE_NEW_THREAD_STATE_FLAVOR):
- Define macro.
- * sysdeps/mach/thread_state.h (MACHINE_THREAD_STATE_FIX_NEW): New macro.
- * sysdeps/mach/i386/thread_state.h
- (MACHINE_NEW_THREAD_STATE_FLAVOR): New macro, defined to
- i386_THREAD_STATE.
- (MACHINE_THREAD_STATE_FLAVOR): Define to i386_REGS_SEGS_STATE instead of
- i386_THREAD_STATE.
- (MACHINE_THREAD_STATE_FIX_NEW): New macro, reads segments.
-
- * sysdeps/mach/hurd/i386/trampoline.c (_hurd_setup_sighandler): Use
- i386_REGS_SEGS_STATE instead of i386_THREAD_STATE.
-
- * sysdeps/mach/hurd/i386/tls.h (TCB_ALIGNMENT, HURD_SEL_LDT): New
- macros.
- (_hurd_tls_fork): Add original thread parameter, Duplicate existing LDT
- descriptor instead of creating a new one.
- (_hurd_tls_new): New function, creates a new descriptor and updates tcb.
-
- * mach/setup-thread.c: Include <ldsodefs.h>.
- (__mach_setup_thread): Call _dl_allocate_tls, pass
- MACHINE_NEW_THREAD_STATE_FLAVOR to __thread_set_state instead of
- MACHINE_THREAD_STATE_FLAVOR, before getting
- MACHINE_THREAD_STATE_FLAVOR, calling _hurd_tls_new, and setting
- MACHINE_THREAD_STATE_FLAVOR with the result.
- * hurd/hurdfault.c (_hurdsig_fault_init): Call
- MACHINE_THREAD_STATE_FIX_NEW.
- * sysdeps/mach/hurd/fork.c (__fork): Call _hurd_tls_fork for sigthread
- too. Add original thread parameter.
-
-2018-03-16 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/x86/fpu/bits/mathinline.h [__USE_MISC] (__finite):
- Remove inline function.
-
- * sysdeps/i386/fpu/libm-test-ulps: Update.
- * sysdeps/i386/i686/fpu/multiarch/libm-test-ulps: Likewise.
-
-2018-03-16 Wilco Dijkstra <wdijkstr@arm.com>
-
- * sysdeps/m68k/m680x0/fpu/mathimpl.h (__ieee754_sqrt): Revert previous
- commit.
-
-2018-03-15 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/x86/fpu/bits/mathinline.h [__FAST_MATH__]
- (__sincos_code): Remove define and undefine.
- [__FAST_MATH__] (__sincos): Remove inline function.
- [__FAST_MATH__] (__sincosf): Remove inline function.
- [__FAST_MATH__] (__sincosl): Remove inline function.
- (__atan2l): Remove inline functions.
- [!__GNUC_PREREQ (3, 4)] (__atan2_code): Remove macro.
- [!__GNUC_PREREQ (3, 4) && __FAST_MATH__] (atan2): Remove inline
- function.
- (floor): Remove inline function.
- (ceil): Likewise.
- [__FAST_MATH__] (__ldexp_code): Remove macro.
- [__FAST_MATH__] (ldexp): Remove inline function.
- [__FAST_MATH__ && __USE_ISOC99] (ldexpf): Likewise.
- [__FAST_MATH__ && __USE_ISOC99] (ldexpl): Likewise.
- [__FAST_MATH__ && __USE_ISOC99] (rint): Likewise.
- [__USE_ISOC99] (__lrint_code): Remove macro.
- [__USE_ISOC99] (__llrint_code): Likewise.
- [__USE_ISOC99] (lrintf): Remove inline function.
- [__USE_ISOC99] (lrint): Likewise.
- [__USE_ISOC99] (lrintl): Likewise.
- [__USE_ISOC99] (llrint): Likewise.
- [__USE_ISOC99] (llrintf): Likewise.
- [__USE_ISOC99] (llrintl): Likewise.
-
-2018-03-15 Wilco Dijkstra <wdijkstr@arm.com>
-
- * sysdeps/aarch64/fpu/math_private.h (__ieee754_sqrt): Remove.
- (__ieee754_sqrtf): Remove.
- * sysdeps/alpha/fpu/math_private.h (__ieee754_sqrt): Remove.
- (__ieee754_sqrtf): Remove.
- * sysdeps/generic/math-type-macros.h (M_SQRT): Use sqrt.
- * sysdeps/m68k/m680x0/fpu/mathimpl.h (__ieee754_sqrt): Remove.
- * sysdeps/powerpc/fpu/math_private.h (__ieee754_sqrt): Remove.
- (__ieee754_sqrtf): Remove.
- * sysdeps/s390/fpu/bits/mathinline.h: Remove file.
- * sysdeps/sparc/fpu/bits/mathinline.h (sqrt) Remove.
- (sqrtf): Remove.
- (sqrtl): Remove.
- (__ieee754_sqrt): Remove.
- (__ieee754_sqrtf): Remove.
- (__ieee754_sqrtl): Remove.
- * sysdeps/m68k/m680x0/fpu/mathimpl.h (__ieee754_sqrt): Remove.
- * sysdeps/x86/fpu/math_private.h (__ieee754_sqrt): Remove.
- * sysdeps/x86_64/fpu/math_private.h (__ieee754_sqrt): Remove.
- (__ieee754_sqrtf): Remove.
- (__ieee754_sqrtl): Remove.
-
-2018-03-15 Wilco Dijkstra <wdijkstr@arm.com>
-
- * sysdeps/ieee754/dbl-64/e_acosh.c (__ieee754_acosh): Use sqrt.
- * sysdeps/ieee754/dbl-64/e_gamma_r.c (gamma_positive): Likewise.
- * sysdeps/ieee754/dbl-64/e_hypot.c (__ieee754_hypot): Likewise.
- * sysdeps/ieee754/dbl-64/e_j0.c (__ieee754_j0): Likewise.
- * sysdeps/ieee754/dbl-64/e_j1.c (__ieee754_j1): Likewise.
- * sysdeps/ieee754/dbl-64/e_jn.c (__ieee754_jn): Likewise.
- * sysdeps/ieee754/dbl-64/s_asinh.c (__asinh): Likewise.
- * sysdeps/ieee754/dbl-64/wordsize-64/e_acosh.c (__ieee754_acosh):
- Likewise.
- * sysdeps/ieee754/flt-32/e_acosf.c (__ieee754_acosf): Likewise.
- * sysdeps/ieee754/flt-32/e_acoshf.c (__ieee754_acoshf): Likewise.
- * sysdeps/ieee754/flt-32/e_asinf.c (__ieee754_asinf): Likewise.
- * sysdeps/ieee754/flt-32/e_gammaf_r.c (gammaf_positive): Likewise.
- * sysdeps/ieee754/flt-32/e_hypotf.c (__ieee754_hypotf): Likewise.
- * sysdeps/ieee754/flt-32/e_j0f.c (__ieee754_j0f): Likewise.
- * sysdeps/ieee754/flt-32/e_j1f.c (__ieee754_j1f): Likewise.
- * sysdeps/ieee754/flt-32/e_powf.c (__ieee754_powf): Likewise.
- * sysdeps/ieee754/flt-32/s_asinhf.c (__asinhf): Likewise.
- * sysdeps/ieee754/ldbl-128/e_acoshl.c (__ieee754_acoshl): Use sqrtl.
- * sysdeps/ieee754/ldbl-128/e_acosl.c (__ieee754_acosl): Likewise.
- * sysdeps/ieee754/ldbl-128/e_asinl.c (__ieee754_asinl): Likewise.
- * sysdeps/ieee754/ldbl-128/e_gammal_r.c (gammal_positive): Likewise.
- * sysdeps/ieee754/ldbl-128/e_hypotl.c (__ieee754_hypotl): Likewise.
- * sysdeps/ieee754/ldbl-128/e_j0l.c (__ieee754_j0l): Likewise.
- * sysdeps/ieee754/ldbl-128/e_j1l.c (__ieee754_j1l): Likewise.
- * sysdeps/ieee754/ldbl-128/e_jnl.c (__ieee754_jnl): Likewise.
- * sysdeps/ieee754/ldbl-128/e_powl.c (__ieee754_powl): Likewise.
- * sysdeps/ieee754/ldbl-128/s_asinhl.c (__ieee754_asinhl): Likewise.
- * sysdeps/ieee754/ldbl-128ibm/e_acoshl.c (__ieee754_acoshl): Likewise.
- * sysdeps/ieee754/ldbl-128ibm/e_acosl.c (__ieee754_acosl): Likewise.
- * sysdeps/ieee754/ldbl-128ibm/e_asinl.c (__ieee754_asinl): Likewise.
- * sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c (gammal_positive): Likewise.
- * sysdeps/ieee754/ldbl-128ibm/e_hypotl.c (__ieee754_hypotl): Likewise.
- * sysdeps/ieee754/ldbl-128ibm/e_j0l.c (__ieee754_j0l): Likewise.
- * sysdeps/ieee754/ldbl-128ibm/e_j1l.c (__ieee754_j1l): Likewise
- * sysdeps/ieee754/ldbl-128ibm/e_jnl.c (__ieee754_jnl): Likewise.
- * sysdeps/ieee754/ldbl-128ibm/e_powl.c (__ieee754_powl): Likewise.
- * sysdeps/ieee754/ldbl-128ibm/s_asinhl.c (__ieee754_asinhl): Likewise.
- * sysdeps/ieee754/ldbl-96/e_acoshl.c (__ieee754_acoshl): Use sqrtl.
- * sysdeps/ieee754/ldbl-96/e_asinl.c (__ieee754_asinl): Likewise.
- * sysdeps/ieee754/ldbl-96/e_gammal_r.c (gammal_positive): Likewise.
- * sysdeps/ieee754/ldbl-96/e_hypotl.c (__ieee754_hypotl): Likewise.
- * sysdeps/ieee754/ldbl-96/e_j0l.c (__ieee754_j0l): Likewise.
- * sysdeps/ieee754/ldbl-96/e_j1l.c (__ieee754_j1l): Likewise.
- * sysdeps/ieee754/ldbl-96/e_jnl.c (__ieee754_jnl): Likewise.
- * sysdeps/ieee754/ldbl-96/s_asinhl.c (__ieee754_asinhl): Likewise.
- * sysdeps/m68k/m680x0/fpu/e_pow.c (__ieee754_pow): Likewise.
- * sysdeps/powerpc/fpu/e_hypot.c (__ieee754_hypot): Likewise.
- * sysdeps/powerpc/fpu/e_hypotf.c (__ieee754_hypotf): Likewise.
-
-2018-03-15 Wilco Dijkstra <wdijkstr@arm.com>
-
- * include/math.h (sqrt): Declare with asm redirect.
- (sqrtf): Likewise.
- (sqrtl): Likewise.
- (sqrtf128): Likewise.
- * Makeconfig: Add -fno-math-errno for libc/libm, but build testsuite,
- nonlib and libnldbl with -fmath-errno.
- * math/w_sqrt_compat.c: Define NO_MATH_REDIRECT.
- * math/w_sqrt_template.c: Likewise.
- * math/w_sqrtf_compat.c: Likewise.
- * math/w_sqrtl_compat.c: Likewise.
- * sysdeps/i386/fpu/w_sqrt.c: Likewise.
- * sysdeps/i386/fpu/w_sqrt_compat.c: Likewise.
- * sysdeps/generic/math-type-macros-float128.h: Remove math.h and
- complex.h.
-
-2018-03-15 Wilco Dijkstra <wdijkstr@arm.com>
-
- * benchtests/Makefile: Define _ISOMAC.
- * benchtests/bench-strcoll.c: Add missing sys/stat.h include.
- * benchtests/bench-string.h: Define inhibit_loop_to_libcall macro.
- * benchtests/bench-strstr.c: Define empty libc_hidden_builtin_def.
- * benchtests/bench-strtok.c (oldstrtok): Use rawmemchr.
- * benchtests/bench-timing.h: Define attribute_hidden.
-
-2018-03-15 Siddhesh Poyarekar <siddhesh@sourceware.org>
-
- * sysdeps/aarch64/strncmp.S (strncmp): Use lsr instead of
- mov + lsr.
-
-2018-03-15 Rafal Luzynski <digitalfreak@lingonborough.com>
-
- [BZ #22963]
- * localedata/locales/cs_CZ (mon): Rename to...
- (alt_mon): This.
- (mon): Import from CLDR (genitive case).
-
-2018-03-15 Rafal Luzynski <digitalfreak@lingonborough.com>
-
- [BZ #22937]
- * localedata/locales/el_CY (abmon): Rename to...
- (ab_alt_mon): This.
- (abmon): Import from CLDR (abbreviated genitive case).
- * localedata/locales/el_GR (abmon): Rename to...
- (ab_alt_mon): This.
- (abmon): Import from CLDR (abbreviated genitive case).
-
-2018-03-15 Rafal Luzynski <digitalfreak@lingonborough.com>
-
- [BZ #22932]
- * localedata/locales/lt_LT (abmon): Synchronize with CLDR.
-
-2018-03-15 Robert Buj <robert.buj@gmail.com>
-
- [BZ #22848]
- * localedata/locales/ca_ES (abmon): Rename to...
- (ab_alt_mon): This, then synchronize with CLDR (nominative case).
- (mon): Rename to...
- (alt_mon): This.
- (abmon): Import from CLDR (genitive case, month names preceded by
- "de" or "d’").
- (mon): Likewise.
- (abday): Synchronize with CLDR.
- (d_t_fmt): Likewise.
- (d_fmt): Likewise.
- (am_pm): Likewise.
-
- (LC_TIME): Improve indentation.
- (LC_TELEPHONE): Likewise.
- (LC_NAME): Likewise.
- (LC_ADDRESS): Likewise.
-
-2018-03-14 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/x86/fpu/bits/mathinline.h [!__GNUC_PREREQ (3, 4)]
- (lrintf): Remove definitions used only with old GCC.
- [!__GNUC_PREREQ (3, 4)] (lrint): Likewise.
- [!__GNUC_PREREQ (3, 4)] (llrintf): Likewise.
- [!__GNUC_PREREQ (3, 4)] (llrint): Likewise.
- [!__GNUC_PREREQ (3, 4)] (fmaxf): Likewise.
- [!__GNUC_PREREQ (3, 4)] (fmax): Likewise.
- [!__GNUC_PREREQ (3, 4)] (fminf): Likewise.
- [!__GNUC_PREREQ (3, 4)] (fmin): Likewise.
- [!__GNUC_PREREQ (3, 4)] (rint): Likewise.
- [!__GNUC_PREREQ (3, 4)] (rintf): Likewise.
- [!__GNUC_PREREQ (3, 4)] (nearbyint): Likewise.
- [!__GNUC_PREREQ (3, 4)] (nearbyintf): Likewise.
- [!__GNUC_PREREQ (3, 4)] (ceil): Likewise.
- [!__GNUC_PREREQ (3, 4)] (ceilf): Likewise.
- [!__GNUC_PREREQ (3, 4)] (floor): Likewise.
- [!__GNUC_PREREQ (3, 4)] (floorf): Likewise.
- [__FAST_MATH__ && !__GNUC_PREREQ (3, 5)] (tan): Likewise.
- [__FAST_MATH__ && !__GNUC_PREREQ (3, 5)] (fmod): Likewise.
- [__FAST_MATH__ && !__GNUC_PREREQ (3, 4)] (sin): Likewise.
- [__FAST_MATH__ && !__GNUC_PREREQ (3, 4)] (cos): Likewise.
- [__FAST_MATH__ && !__GNUC_PREREQ (3, 5)] (log10): Likewise.
- [__FAST_MATH__ && !__GNUC_PREREQ (3, 5)] (asin): Likewise.
- [__FAST_MATH__ && !__GNUC_PREREQ (3, 5)] (acos): Likewise.
- [__FAST_MATH__ && !__GNUC_PREREQ (3, 4)] (atan): Likewise.
- [__FAST_MATH__ && !__GNUC_PREREQ (3, 5)] (log1p): Likewise.
- [__FAST_MATH__ && !__GNUC_PREREQ (3, 5)] (logb): Likewise.
- [__FAST_MATH__ && !__GNUC_PREREQ (3, 5)] (log2): Likewise.
- [__FAST_MATH__ && !__GNUC_PREREQ (3, 5)] (drem): Likewise.
- [__FAST_MATH__] (__M_SQRT2): Remove macro.
-
-2018-03-14 Siddhesh Poyarekar <siddhesh@sourceware.org>
-
- * sysdeps/aarch64/strncmp.S (strncmp): Use a separate shift
- instruction to unbreak builds with binutils 2.26 and older.
-
-2018-03-13 Siddhesh Poyarekar <siddhesh@sourceware.org>
-
- * sysdeps/aarch64/strncmp.S (count): New macro.
- (strncmp): Store misaligned length in SRC1 in COUNT.
- (mutual_align): Adjust.
- (misaligned8): Load dword at a time when it is safe.
-
-2018-03-12 Zack Weinberg <zackw@panix.com>
-
- [BZ #1190]
- [BZ #19476]
- * libio/fileops.c (_IO_new_file_underflow): Return EOF immediately
- if the _IO_EOF_SEEN bit is already set; update commentary.
- * libio/oldfileops.c (_IO_old_file_underflow): Likewise.
- * libio/wfileops.c (_IO_wfile_underflow): Likewise.
-
- * support/support_openpty.c, support/tty.h: New files.
- * support/Makefile (libsupport-routines): Add support_openpty.
-
- * libio/tst-fgetc-after-eof.c, wcsmbs/test-fgetwc-after-eof.c:
- New test cases.
- * libio/Makefile (tests): Add tst-fgetc-after-eof.
- * wcsmbs/Makefile (tests): Add tst-fgetwc-after-eof.
-
-2018-03-12 Dmitry V. Levin <ldv@altlinux.org>
-
- * po/pt_BR.po: Update translations.
-
-2018-03-12 David Michael <fedora.dm0@gmail.com>
-
- * sysdeps/mach/hurd/reboot.c: Include <hurd/paths.h>
- (reboot): Lookup _SERVERS_STARTUP instead of calling proc_getmsgport to
- get a port to the startup server.
-
-2018-03-11 Zack Weinberg <zackw@panix.com>
-
- * sysdeps/ieee754/ldbl-opt/nldbl-compat.c: Include math.h
- before nldbl-compat.h.
-
-2018-03-10 Zack Weinberg <zackw@panix.com>
-
- * sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h: Don't include
- math.h or math_private.h.
-
- * sysdeps/alpha/fpu/s_isnan.c
- * sysdeps/ieee754/ldbl-128ibm/s_ceill.c
- * sysdeps/ieee754/ldbl-128ibm/s_floorl.c
- * sysdeps/ieee754/ldbl-128ibm/s_llrintl.c
- * sysdeps/ieee754/ldbl-128ibm/s_llroundl.c
- * sysdeps/ieee754/ldbl-128ibm/s_lrintl.c
- * sysdeps/ieee754/ldbl-128ibm/s_lroundl.c
- * sysdeps/ieee754/ldbl-128ibm/s_rintl.c
- * sysdeps/ieee754/ldbl-128ibm/s_roundl.c
- * sysdeps/ieee754/ldbl-128ibm/s_truncl.c
- * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypot.c
- * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypotf.c:
- * sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf.c
- * sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypot.c
- * sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypotf.c:
- Include math_private.h.
-
- * sysdeps/ieee754/ldbl-64-128/s_finitel.c
- * sysdeps/ieee754/ldbl-64-128/s_fpclassifyl.c
- * sysdeps/ieee754/ldbl-64-128/s_isinfl.c
- * sysdeps/ieee754/ldbl-64-128/s_isnanl.c
- * sysdeps/ieee754/ldbl-64-128/s_signbitl.c
- * sysdeps/powerpc/power7/fpu/s_logb.c:
- Include math.h and math_private.h.
-
- * sysdeps/unix/sysv/linux/alpha/clone.S (__clone): Wrap manual
- uses of $at in .set noat / .set at.
-
-2018-03-10 H.J. Lu <hongjiu.lu@intel.com>
-
- * include/setjmp.h (__libc_longjmp): Remove libc_hidden_proto.
- * setjmp/longjmp.c (__libc_longjmp): Remove libc_hidden_def.
- * sysdeps/s390/longjmp.c (__libc_longjmp): Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S (__libc_longjmp):
- Likewise.
-
-2018-03-09 Florian Weimer <fweimer@redhat.com>
-
- * malloc/malloc.c (prev_size, set_prev_size, prev_chunk): Fix typo
- in comment.
-
-2018-03-09 Aurelien Jarno <aurelien@aurel32.net>
-
- [BZ #22919]
- * sysdeps/unix/sysv/linux/sparc/sparc32/setcontext.S (__startcontext):
- Add nop before __startcontext, add explaining comments.
-
-2018-03-07 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- [BZ #22926]
- * sysdeps/powerpc/powerpc32/sysdep.h (ABORT_TRANSACTION_IMPL): Define
- empty for __SPE__.
- * sysdeps/powerpc/sysdep.h (ABORT_TRANSACTION): Likewise.
- * sysdeps/unix/sysv/linux/powerpc/elision-lock.c (__lll_lock_elision):
- Do not build hardware transactional code for __SPE__.
- * sysdeps/unix/sysv/linux/powerpc/elision-trylock.c
- (__lll_trylock_elision): Likewise.
- * sysdeps/unix/sysv/linux/powerpc/elision-unlock.c
- (__lll_unlock_elision): Likewise.
-
- * sysdeps/nptl/fork.c (ARCH_FORK): Replace by arch_fork.
- * sysdeps/unix/sysv/linux/alpha/arch-fork.h: Remove file.
- * sysdeps/unix/sysv/linux/riscv/arch-fork.h: Likewise.
- * sysdeps/unix/sysv/linux/aarch64/arch-fork.h: Likewise.
- * sysdeps/unix/sysv/linux/arm/arch-fork.h: Likewise.
- * sysdeps/unix/sysv/linux/hppa/arch-fork.h: Likewise.
- * sysdeps/unix/sysv/linux/i386/arch-fork.h: Likewise.
- * sysdeps/unix/sysv/linux/ia64/arch-fork.h: Likewise.
- * sysdeps/unix/sysv/linux/m68k/arch-fork.h: Likewise.
- * sysdeps/unix/sysv/linux/microblaze/arch-fork.h: Likewise.
- * sysdeps/unix/sysv/linux/mips/arch-fork.h: Likewise.
- * sysdeps/unix/sysv/linux/nios2/arch-fork.h: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/arch-fork.h: Likewise.
- * sysdeps/unix/sysv/linux/s390/arch-fork.h: Likewise.
- * sysdeps/unix/sysv/linux/sh/arch-fork.h: Likewise.
- * sysdeps/unix/sysv/linux/sparc/arch-fork.h: Likewise.
- * sysdeps/unix/sysv/linux/tile/arch-fork.h: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/arch-fork.h: Likewise.
- * sysdeps/unix/sysv/linux/arch-fork.h (arch_fork): New function.
- * sysdeps/unix/sysv/linux/aarch64/kernel-features.h: New file.
- * sysdeps/unix/sysv/linux/riscv/kernel-features.h: Likewise.
- * sysdeps/unix/sysv/linux/arm/kernel-features.h
- (__ASSUME_CLONE_BACKWARDS): Define.
- * sysdeps/unix/sysv/linux/createthread.c (ARCH_CLONE): Define to
- __clone2 if __NR_clone2 is defined.
- * sysdeps/unix/sysv/linux/hppa/kernel-features.h
- (__ASSUME_CLONE_BACKWARDS): Likewise.
- * sysdeps/unix/sysv/linux/i386/kernel-features.h
- (__ASSUME_CLONE_BACKWARDS): Likewise.
- * sysdeps/unix/sysv/linux/ia64/kernel-features.h
- (__ASSUME_CLONE2): Likewise.
- * sysdeps/unix/sysv/linux/microblaze/kernel-features.h
- (__ASSUME_CLONE_BACKWARDS3): Likewise.
- * sysdeps/unix/sysv/linux/kernel-features.h: Document possible clone
- variants and the define architecture can use.
- (__ASSUME_CLONE_DEFAULT): Define as default.
- * sysdeps/unix/sysv/linux/mips/kernel-features.h
- (__ASSUME_CLONE_BACKWARDS): Likewise.
- * sysdeps/unix/sysv/linux/powerpc/kernel-features.h
- (__ASSUME_CLONE_BACKWARDS): Likewise.
- * sysdeps/unix/sysv/linux/s390/kernel-features.h
- (__ASSUME_CLONE_BACKWARDS2): Likewise.
-
-2018-03-06 Siddhesh Poyarekar <siddhesh@sourceware.org>
-
- * sysdeps/aarch64/memcmp.S (more16): Fix loop16 branch target.
-
- * sysdeps/aarch64/memcmp.S: Widen comparison to 16 bytes at a
- time.
-
- * benchtests/bench-strncmp.c (test_main): Remove 0 length tests.
- (do_test_limit): Likewise.
-
- * benchtests/bench-strncmp.c (do_test_limit): Reallocate buffers
- for every implementation.
- (do_test): Likewise.
-
- * benchtests/bench-strncmp.c: Convert output to json.
-
-2018-03-06 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * io/futimens.c: Add missing start-of-file descriptive comment.
- * io/utime.c: Likewise.
- * misc/futimesat.c: Likewise.
- * misc/utimes.c: Likewise.
- * sysdeps/mach/hurd/futimesat.c: Likewise.
- * sysdeps/mach/hurd/utimes.c: Likewise.
- * sysdeps/posix/utime.c: Likewise.
- * sysdeps/posix/utimes.c: Likewise.
- * sysdeps/unix/sysv/linux/futimesat.c: Likewise.
- * sysdeps/unix/sysv/linux/generic/futimesat.c: Likewise.
- * sysdeps/unix/sysv/linux/generic/utimes.c: Likewise.
- * sysdeps/unix/sysv/linux/utimes.c: Likewise.
-
-2018-03-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * sysdeps/mach/hurd/utime-helper.c (hurd_futimens): Rename function to
- hurd_futimes.
- * sysdeps/mach/hurd/utimes.c (__utimes): Update call accordingly.
- * sysdeps/mach/hurd/lutimes.c (__lutimes): Likewise.
- * sysdeps/mach/hurd/futimens.c: Include "utime-helper.c".
- (__futimens): Move implementation to...
- * sysdeps/mach/hurd/utime-helper.c (utime_ts_from_tspec,
- utime_tvalue_from_tspec): ... new helper functions.
- (hurd_futimens): New function.
- * sysdeps/mach/hurd/futimesat.c: New file.
- * sysdeps/mach/hurd/utimensat.c: New file.
-
-2018-03-05 Flávio Cruz <flaviocruz@gmail.com>
-
- * sysdeps/mach/hurd/bits/stat.h [__USE_ATFILE] (UTIME_NOW,
- UTIME_OMIT): New macros.
- * sysdeps/mach/hurd/futimens.c (__futimens): Try to use __file_utimens
- before reverting to converting time spec to time value and calling
- __file_utimes.
- * sysdeps/mach/hurd/utime-helper.c: New file.
- * sysdeps/mach/hurd/futimes.c: Include "utime-helper.c".
- (__futimes): Try to use utime_ts_from_tval and __file_utimens before
- reverting to utime_tvalue_from_tval and __file_utimes.
- * sysdeps/mach/hurd/lutimes.c: Include "utime-helper.c".
- (__lutimes): Just call hurd_futimens after lookup.
- * sysdeps/mach/hurd/utimes.c: Likewise.
-
-2018-03-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * bits/sigaction.h: Add include guard.
- * sysdeps/unix/sysv/linux/alpha/bits/sigaction.h: Likewise.
- * sysdeps/unix/sysv/linux/bits/sigaction.h: Likewise.
- * sysdeps/unix/sysv/linux/hppa/bits/sigaction.h: Likewise.
- * sysdeps/unix/sysv/linux/ia64/bits/sigaction.h: Likewise.
- * sysdeps/unix/sysv/linux/mips/bits/sigaction.h: Likewise.
- * sysdeps/unix/sysv/linux/s390/bits/sigaction.h: Likewise.
- * sysdeps/unix/sysv/linux/sparc/bits/sigaction.h: Likewise.
- * sysdeps/unix/sysv/linux/tile/bits/sigaction.h: Likewise.
- * hurd/hurd/signal.h: Include <bits/sigaction.h>.
-
-2018-03-05 Joseph Myers <joseph@codesourcery.com>
-
- * iconv/loop.c (UNICODE_TAG_HANDLER): Disable
- -Wmaybe-uninitialized for -Os.
- * sysdeps/s390/multiarch/8bit-generic.c (BODY): Add comment about
- this disabling.
-
-2018-03-03 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * bits/dirent.h (__INO_T_MATCHES_INO64_T): Define regardless whether
- __INO_T_MATCHES_INO64_T is defined.
- * sysdeps/unix/sysv/linux/bits/dirent.h: Likewise.
- * dirent/alphasort.c: Check _DIRENT_MATCHES_DIRENT64 value instead
- of definition.
- * dirent/alphasort64.c: Likewise.
- * dirent/scandir.c: Likewise.
- * dirent/scandir64-tail.c: Likewise.
- * dirent/scandir64.c: Likewise.
- * dirent/scandirat.c: Likewise.
- * dirent/scandirat64.c: Likewise.
- * dirent/versionsort.c: Likewise.
- * dirent/versionsort64.c: Likewise.
- * include/dirent.h: Likewise.
-
- * nptl/tst-cancel4-common.h (set_socket_buffer): New function.
- * nptl/tst-cancel4-common.c (do_test): Call set_socket_buffer
- for socketpair endpoint.
- * nptl/tst-cancel4.c (tf_send): Call set_socket_buffer and use
- WRITE_BUFFER_SIZE as buffer size for sending socket.
- (tf_sendto): Use SOCK_STREAM instead of SOCK_DGRAM and fix an
- issue on system where send is implemented with sendto syscall.
- * sysdeps/unix/sysv/linux/mips/mips64/Makefile [$(subdir) = socket]
- (CFLAGS-recv.c, CFLAGS-send.c): Remove rules.
- [$(subdir) = nptl] (CFLAGS-recv.c, CFLAGS-send.c): Likewise.
- * sysdeps/unix/sysv/linux/riscv/rv64/Makefile: Remove file.
-
- [BZ #21269]
- * sysdeps/unix/sysv/linux/i386/Makefile (tests): Add tst-bz21269.
- * sysdeps/unix/sysv/linux/i386/sigaction.c (SET_SA_RESTORER): Clear
- sa_restorer for vDSO case.
- * sysdeps/unix/sysv/linux/i386/tst-bz21269.c: New file.
-
-2018-03-03 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * scripts/check-installed-headers.sh: Ignore Hurd and Mach headers.
- * hurd/hurd/id.h: Include <hurd/hurd_types.h>
- * hurd/hurd/ioctl.h: Include <mach/port.h>
- * hurd/hurd/lookup.h: Include <hurd/hurd_types.h>
- * mach/Makefile ($(objpfx)mach-shortcuts.h): Make it include
- <mach/mach_types.h> and <mach/message.h>.
- (headers): Move mach/param.h to bits/mach/param.h.
- * sysdeps/mach/i386/mach/param.h: Move file to ...
- * sysdeps/mach/i386/bits/mach/param.h: ... here. Update path in #error.
- * sysdeps/mach/hurd/bits/param.h: Include <bits/mach/param.h> instead
- of <mach/param.h>.
- * hurd/hurd/port.h: Do not include <hurd/signal.h>.
- * hurd/hurd/userlink.h [!defined __USE_EXTERN_INLINES ||
- !defined _LIBC || !IS_IN (libc)]: Do not include <hurd/signal.h>.
- * hurd/hurd/fd.h (_hurd_fd_error): Fix struct initializer to be
- trivial, for C++ conformity.
- * sysdeps/mach/hurd/dl-sysdep.c: Include <mach/machine/vm_param.h>.
- * mach/Machrules ($(patsubst %,$(objpfx)%.h,$(user-interfaces)):
- Process mig output through $(migheadersed).
- * hurd/Makefile (migheadersed): Define variable.
- * mach/mach/mig_support.h [defined __USE_GNU]: Do not #error out.
- * scripts/check-installed-headers.sh: Do not ignore Hurd and Mach
- headers.
- * hurd/hurd.h: Include <bits/types/sigset_t.h>
- * hurd/hurd/fd.h: Include <sys/select.h> and <bits/types/sigset_t.h>
- (_hurd_fd_read, _hurd_fd_write): Use __loff_t instead of loff_t.
- * hurd/hurd/signal.h: Include <bits/types/stack_t.h> and
- <bits/types/sigset_t.h>.
- [!defined __USE_GNU]: Do not #error out.
- (struct hurd_sigstate): Use _NSIG instead of NSIG.
- * hurd/hurd/sigpreempt.h (__need_size_t): Define.
- Include <stddef.h> and <bits/types/sigset_t.h>
- (struct hurd_signal_preemptor, hurd_catch_signal): Use __sighandler_t
- instead of sighandler_t.
- * stdlib/errno.h (error_t): Move definition to...
- * bits/types/error_t.h: ... new header.
- * stdlib/Makefile (headers): Add bits/types/error_t.h.
- * sysdeps/mach/hurd/bits/errno.h (error_t): Move definition to...
- * sysdeps/mach/hurd/bits/types/error_t.h: ... new header.
- * sysdeps/mach/hurd/errnos.awk (error_t): Likewise.
- * hurd/hurd.h: Include <bits/types/error_t.h>
- * hurd/hurd/fd.h: Include <bits/types/error_t.h>
- * hurd/hurd/id.h: Include <errno.h> and <bits/types/error_t.h>
- * hurd/hurd/lookup.h: Include <errno.h> and <bits/types/error_t.h>
- * hurd/hurd/resource.h: Include <bits/types/error_t.h>
- * hurd/hurd/signal.h: Include <bits/types/error_t.h>
- * hurd/hurd/sigpreempt.h: Include <bits/types/error_t.h>
- * sysdeps/mach/hurd/futimens.c: New file.
-
-2018-03-03 Andreas Schwab <schwab@linux-m68k.org>
-
- [BZ #22918]
- * nss/nsswitch.h (DEFINE_DATABASE): Don't define __nss_*_database.
- * nss/nsswitch.c (DEFINE_DATABASE): Define __nss_*_database here.
- * nscd/gai.c (__nss_hosts_database): Readd definition.
- * posix/tst-rfc3484.c (__nss_hosts_database): Likewise.
- * posix/tst-rfc3484-3.c (__nss_hosts_database): Likewise.
- * posix/tst-rfc3484-2.c (__nss_hosts_database): Likewise.
-
-2018-03-02 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/powerpc/ifunc-sel.h (ifunc_sel): Make always_inline.
- (ifunc_one): Likewise.
-
-2018-03-01 DJ Delorie <dj@delorie.com>
-
- [BZ #22342]
- * nscd/netgroupcache.c (addinnetgrX): Include trailing NUL in
- key value.
-
-2018-03-01 Maciej W. Rozycki <macro@mips.com>
-
- * nptl_db/td_ta_thr_iter.c (iterate_thread_list): Remove
- `match_pid' parameter.
- (td_ta_thr_iter): Update accordingly.
-
-2018-03-01 Florian Weimer <fweimer@redhat.com>
-
- * nptl/Makefile (install-lib-ldscripts): Remove.
- (install): Remove rule.
- ($(inst_libdir)/libpthread.so): Likewise.
-
-2018-03-01 Mike FABIAN <mfabian@redhat.com>
-
- [BZ #22896]
- * localedata/locales/an_ES: update month and day names,
- improve d_fmt, improve postal_fmt, add country_post,
- add country_isbn
-
-2018-03-01 Mike FABIAN <mfabian@redhat.com>
-
- * localedata/locales/bg_BG (LC_COLLATE): The comment mentioned
- Ukrainian instead of Bulgarian.
-
-2018-03-01 Florian Weimer <fweimer@redhat.com>
-
- * nptl/Makefile (libpthread.so): Drop libpthread_nonshared.a
- reference.
-
-2018-03-01 Florian Weimer <fweimer@redhat.com>
-
- Move pthread_atfork to libc. Remove libpthread_nonshared.a.
- * nptl/Makefile (routines): Add pthread_atfork.
- (static-only-routines): Set to pthread_atfork.
- (libpthread-routines): Remove pthread_atfork.
- (libpthread-static-only-routines): Remove.
- (install): Update comment.
- (libpthread.so): Do not install libpthread_nonshared.a.
- (tests): Do not link with libpthread_nonshared.a.
- (generated): Remove libpthread_nonshared.a.
- * nptl/pthread_atfork.c (pthread_atfork): Turn into weak alias.
- * sysdeps/nptl/Makeconfig (shared-thread-library): Do not link
- with libpthread_nonshared.a.
-
-2018-02-28 Joseph Myers <joseph@codesourcery.com>
-
- [BZ #22902]
- * sysdeps/i386/fpu/fenv_private.h [!__x86_64__]
- (libc_feholdexcept_setroundf128): New macro.
- [!__x86_64__] (libc_feupdateenv_testf128): Likewise.
-
- [BZ #15105]
- * sysdeps/wordsize-32/strtoumax.c (strtoumax): Use
- libc_hidden_def.
- * sysdeps/wordsize-64/strtoumax.c (strtoumax): Likewise.
- * include/inttypes.h: New file.
-
-2018-02-27 Joseph Myers <joseph@codesourcery.com>
-
- * locale/weightwc.h (findidx): Ignore -Wmaybe-uninitialized for
- -Os in two more places.
-
-2018-02-27 Mike FABIAN <mfabian@redhat.com>
-
- See this bug https://sourceware.org/bugzilla/show_bug.cgi?id=22898
- * localedata/cmn_TW.UTF-8.in: Remove the lines which cannot
- be sorted correctly at the moment because of a bug.
-
-2018-02-27 Mike FABIAN <mfabian@redhat.com>
-
- [BZ #22550] - es_ES locale (and other es_* locales): collation should
- treat ñ as a primary different character, sync the collation
- for Spanish with CLDR.
- [BZ #21547] - Tibetan script collation broken (Dzongkha and Tibetan).
- * localedata/Makefile: Add new test files.
- * localedata/lv_LV.UTF-8.in: Adapt test file to new collation order.
- * localedata/sv_SE.ISO-8859-1.in: Adapt test file to new
- collation order.
- * localedata/uk_UA.UTF-8.in: Adapt test file to new collation order.
- * localedata/am_ET.UTF-8.in: New test file.
- * localedata/az_AZ.UTF-8.in: Likewise.
- * localedata/be_BY.UTF-8.in: Likewise.
- * localedata/ber_DZ.UTF-8.in: Likewise.
- * localedata/ber_MA.UTF-8.in: Likewise.
- * localedata/bg_BG.UTF-8.in: Likewise.
- * localedata/br_FR.UTF-8.in: Likewise.
- * localedata/cmn_TW.UTF-8.in: Likewise.
- * localedata/crh_UA.UTF-8.in: Likewise.
- * localedata/csb_PL.UTF-8.in: Likewise.
- * localedata/cv_RU.UTF-8.in: Likewise.
- * localedata/cy_GB.UTF-8.in: Likewise.
- * localedata/dz_BT.UTF-8.in: Likewise.
- * localedata/eo.UTF-8.in: Likewise.
- * localedata/es_ES.UTF-8.in: Likewise.
- * localedata/fa_IR.UTF-8.in: Likewise.
- * localedata/fi_FI.UTF-8.in: Likewise.
- * localedata/fil_PH.UTF-8.in: Likewise.
- * localedata/fur_IT.UTF-8.in: Likewise.
- * localedata/gez_ER.UTF-8@abegede.in: Likewise.
- * localedata/ha_NG.UTF-8.in: Likewise.
- * localedata/ig_NG.UTF-8.in: Likewise.
- * localedata/ik_CA.UTF-8.in: Likewise.
- * localedata/kk_KZ.UTF-8.in: Likewise.
- * localedata/ku_TR.UTF-8.in: Likewise.
- * localedata/ky_KG.UTF-8.in: Likewise.
- * localedata/ln_CD.UTF-8.in: Likewise.
- * localedata/mi_NZ.UTF-8.in: Likewise.
- * localedata/ml_IN.UTF-8.in: Likewise.
- * localedata/mn_MN.UTF-8.in: Likewise.
- * localedata/mr_IN.UTF-8.in: Likewise.
- * localedata/mt_MT.UTF-8.in: Likewise.
- * localedata/nb_NO.UTF-8.in: Likewise.
- * localedata/om_KE.UTF-8.in: Likewise.
- * localedata/os_RU.UTF-8.in: Likewise.
- * localedata/ps_AF.UTF-8.in: Likewise.
- * localedata/ro_RO.UTF-8.in: Likewise.
- * localedata/ru_RU.UTF-8.in: Likewise.
- * localedata/sc_IT.UTF-8.in: Likewise.
- * localedata/se_NO.UTF-8.in: Likewise.
- * localedata/sq_AL.UTF-8.in: Likewise.
- * localedata/sv_SE.UTF-8.in: Likewise.
- * localedata/szl_PL.UTF-8.in: Likewise.
- * localedata/tg_TJ.UTF-8.in: Likewise.
- * localedata/tk_TM.UTF-8.in: Likewise.
- * localedata/tt_RU.UTF-8.in: Likewise.
- * localedata/tt_RU.UTF-8@iqtelif.in: Likewise.
- * localedata/ug_CN.UTF-8.in: Likewise.
- * localedata/uz_UZ.UTF-8.in: Likewise.
- * localedata/vi_VN.UTF-8.in: Likewise.
- * localedata/yi_US.UTF-8.in: Likewise.
- * localedata/yo_NG.UTF-8.in: Likewise.
- * localedata/zh_CN.UTF-8.in: Likewise.
- * localedata/locales/am_ET: Adapt collation rules to new iso14651_t1_common
- file and fix bugs in the collation.
- * localedata/locales/az_AZ: Likewise.
- * localedata/locales/be_BY: Likewise.
- * localedata/locales/ber_DZ: Likewise.
- * localedata/locales/ber_MA: Likewise.
- * localedata/locales/bg_BG: Likewise.
- * localedata/locales/br_FR: Likewise.
- * localedata/locales/br_FR@euro: Likewise.
- * localedata/locales/ca_ES: Likewise.
- * localedata/locales/cns11643_stroke: Likewise.
- * localedata/locales/crh_UA: Likewise.
- * localedata/locales/cs_CZ: Likewise.
- * localedata/locales/csb_PL: Likewise.
- * localedata/locales/cv_RU: Likewise.
- * localedata/locales/cy_GB: Likewise.
- * localedata/locales/da_DK: Likewise.
- * localedata/locales/dz_BT: Likewise.
- * localedata/locales/en_CA: Likewise.
- * localedata/locales/eo: Likewise.
- * localedata/locales/es_CU: Likewise.
- * localedata/locales/es_EC: Likewise.
- * localedata/locales/es_ES: Likewise.
- * localedata/locales/es_US: Likewise.
- * localedata/locales/et_EE: Likewise.
- * localedata/locales/fa_IR: Likewise.
- * localedata/locales/fi_FI: Likewise.
- * localedata/locales/fil_PH: Likewise.
- * localedata/locales/fur_IT: Likewise.
- * localedata/locales/gez_ER@abegede: Likewise.
- * localedata/locales/ha_NG: Likewise.
- * localedata/locales/hr_HR: Likewise.
- * localedata/locales/hsb_DE: Likewise.
- * localedata/locales/hu_HU: Likewise.
- * localedata/locales/ig_NG: Likewise.
- * localedata/locales/ik_CA: Likewise.
- * localedata/locales/is_IS: Likewise.
- * localedata/locales/iso14651_t1_pinyin: Likewise.
- * localedata/locales/kk_KZ: Likewise.
- * localedata/locales/ku_TR: Likewise.
- * localedata/locales/ky_KG: Likewise.
- * localedata/locales/ln_CD: Likewise.
- * localedata/locales/lt_LT: Likewise.
- * localedata/locales/lv_LV: Likewise.
- * localedata/locales/mi_NZ: Likewise.
- * localedata/locales/ml_IN: Likewise.
- * localedata/locales/mn_MN: Likewise.
- * localedata/locales/mr_IN: Likewise.
- * localedata/locales/mt_MT: Likewise.
- * localedata/locales/nb_NO: Likewise.
- * localedata/locales/om_KE: Likewise.
- * localedata/locales/os_RU: Likewise.
- * localedata/locales/pl_PL: Likewise.
- * localedata/locales/ps_AF: Likewise.
- * localedata/locales/ro_RO: Likewise.
- * localedata/locales/ru_RU: Likewise.
- * localedata/locales/ru_UA: Likewise.
- * localedata/locales/sc_IT: Likewise.
- * localedata/locales/se_NO: Likewise.
- * localedata/locales/si_LK: Likewise.
- * localedata/locales/sq_AL: Likewise.
- * localedata/locales/sv_FI: Likewise.
- * localedata/locales/sv_FI@euro: Likewise.
- * localedata/locales/sv_SE: Likewise.
- * localedata/locales/szl_PL: Likewise.
- * localedata/locales/tg_TJ: Likewise.
- * localedata/locales/ti_ER: Likewise.
- * localedata/locales/tk_TM: Likewise.
- * localedata/locales/tl_PH: Likewise.
- * localedata/locales/tr_TR: Likewise.
- * localedata/locales/tt_RU: Likewise.
- * localedata/locales/tt_RU@iqtelif: Likewise.
- * localedata/locales/ug_CN: Likewise.
- * localedata/locales/uk_UA: Likewise.
- * localedata/locales/uz_UZ: Likewise.
- * localedata/locales/uz_UZ@cyrillic: Likewise.
- * localedata/locales/vi_VN: Likewise.
- * localedata/locales/yi_US: Likewise.
- * localedata/locales/yo_NG: Likewise.
-
-2018-02-27 Mike FABIAN <mfabian@redhat.com>
-
- * gen-locales.mk: Make test files which contain @ modifiers in their
- name work.
- * localedata/gen-locale.sh: Likewise.
-
-2018-02-27 Mike FABIAN <mfabian@redhat.com>
-
- * posix/tst-fnmatch.input: Fix results for range expressions
- for non C locales.
- * posix/tst-regexloc.c: Do not use a range expression for
- de_DE.ISO-8859-1 locale.
-
-2018-02-27 Mike FABIAN <mfabian@redhat.com>
-
- * posix/bug-regex5.c: Fix test case because with the new
- iso14651_t1_common file, the da_DK locale now has 6 collating elements
- in the ISO-8859-1 range instead of 4 with the old iso14651_t1_common
- file.
-
-2018-02-27 Mike FABIAN <mfabian@redhat.com>
-
- * localedata/da_DK.ISO-8859-1.in: In the new iso14651_t1_common file
- downloaded from ISO, the collation order of @-. and space has changed.
- Therefore, this test file needed to be adapted.
- * localedata/fr_CA.UTF-8.in: Likewise.
- * localedata/fr_FR.UTF-8.in: Likewise.
- * localedata/uk_UA.UTF-8.in: Likewise.
-
-2018-02-27 Mike FABIAN <mfabian@redhat.com>
-
- * localedata/cs_CZ.UTF-8.in: adapt this test file to the collation
- order of ȥ in the new iso14651_t1_common file.
- * localedata/pl_PL.UTF-8.in: Likewise.
-
-2018-02-27 Mike FABIAN <mfabian@redhat.com>
-
- * localedata/locales/iso14651_t1_common: Add sections for various
- scripts to the iso14651_t1_common file.
-
-2018-02-27 Mike FABIAN <mfabian@redhat.com>
-
- * localedata/locales/iso14651_t1_common: Use the code point of a
- character in the fourth collation level instead of IGNORE for all
- entries which have IGNORE on all 4 levels.
-
-2018-02-27 Mike FABIAN <mfabian@redhat.com>
-
- * localedata/locales/iso14651_t1_common: Add some convenient collation
- symbols like <AFTER-A>, <BEFORE-A> to make tailoring easier using
- rules similar to those in CLDR.
-
-2018-02-27 Mike FABIAN <mfabian@redhat.com>
-
- * localedata/locales/iso14651_t1_common: The new version of this
- file downloaded from ISO contained several syntax errors which
- are fixed by this patch.
-
-2018-02-27 Mike FABIAN <mfabian@redhat.com>
-
- * localedata/locales/iso14651_t1_common: replace all <U.....>
- with <U000.....> because glibc understands only 4 digit or 8 digit
-
-2018-02-27 Mike FABIAN <mfabian@redhat.com>
-
- * localedata/locales/iso14651_t1_common: Necessary changes
- to make the file downloaded from ISO usable by glibc.
-
-2018-02-27 Mike FABIAN <mfabian@redhat.com>
-
- [BZ #14095]
- * localedata/locales/iso14651_t1_common: Update file to
- latest version from ISO (ISO14651_2016_TABLE1_en.txt).
-
-2018-02-27 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * sysdeps/pthread/timer_routines.c: Include <timer_routines.h> instead
- of <nptl/pthreadP.h>
- (thread_attr_compare): Move function to...
- [!defined DELAYTIMER_MAX] (DELAYTIMER_MAX): Define to INT_MAX.
- * sysdeps/nptl/timer_routines.h: ... new header.
- * sysdeps/mach/hurd/gai_misc.h: New file.
-
-2018-02-26 Joseph Myers <joseph@codesourcery.com>
-
- * string/strcoll_l.c: Include <libc-diag.h>.
- (STRCOLL): Ignore -Wmaybe-uninitialized for -Os around
- declarations of seq1 and seq2.
-
- [BZ #15105]
- * stdlib/atoi.c (atoi): Use libc_hidden_def.
- * include/stdlib.h [!_ISOMAC] (atoi): Use libc_hidden_proto.
-
-2018-02-26 Dmitry V. Levin <ldv@altlinux.org>
-
- [BZ #22433]
- [BZ #22807]
- * sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h (__ptrace_request): Add
- PTRACE_GETREGS, PTRACE_SETREGS, PTRACE_GETFPREGS, PTRACE_SETFPREGS,
- PTRACE_GETVRREGS, PTRACE_SETVRREGS, PTRACE_GETEVRREGS,
- PTRACE_SETEVRREGS, PTRACE_GETREGS64, PTRACE_SETREGS64,
- PTRACE_GET_DEBUGREG, PTRACE_SET_DEBUGREG, PTRACE_GETVSRREGS,
- PTRACE_SETVSRREGS, and PTRACE_SINGLEBLOCK.
-
-2018-02-26 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
-
- * sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h: Undefine Linux
- macros used in __ptrace_request.
-
-2018-02-23 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #22792]
- * Makerules ($(common-objpfx)%.h): Pass -DGEN_AS_CONST_HEADERS
- to $(CC).
- * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Include
- <tcb-offsets.h> only if GEN_AS_CONST_HEADERS isn't defined.
- * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Don't include
- <tcb-offsets.h>.
-
-2018-02-23 Joseph Myers <joseph@codesourcery.com>
-
- [BZ #15105]
- * ctype/ctype.c (tolower): Use libc_hidden_def.
- (toupper): Likewise.
- * include/ctype.h [!_ISOMAC] (tolower): Use libc_hidden_proto.
- [!_ISOMAC] (toupper): Likewise.
-
-2018-02-23 Mike FABIAN <mfabian@redhat.com>
-
- * localedata/Makefile: Remove --quiet argument when
- installing locales
-
-2018-02-23 Mike FABIAN <mfabian@redhat.com>
-
- [BZ #17438]
- * localedata/locales/pt_BR (LC_TIME): use / instead of -
- in d_fmt.
- * localedata/locales/pt_PT (LC_TIME): likewise
-
-2018-02-23 Mike FABIAN <mfabian@redhat.com>
-
- [BZ #22646]
- * localedata/locales/es_CL (LC_TIME): copy "es_BO".
- * localedata/locales/es_CU (LC_TIME): copy "es_BO".
- * localedata/locales/es_EC (LC_TIME): copy "es_BO".
-
-2018-02-22 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * sysdeps/sparc/fpu/libm-test-ulps: Update.
-
- * nptl/Makefile (routines): Remove unregister-atfork.
- * nptl/register-atfork.c (fork_handler_pool): Remove variable.
- (fork_handler_alloc): Remove function.
- (fork_handlers, fork_handler_init): New variables.
- (__fork_lock): Rename to atfork_lock.
- (__register_atfork, __unregister_atfork, libc_freeres_fn): Rewrite
- to use a dynamic array to add/remove atfork handlers.
- * sysdeps/nptl/fork.c (__libc_fork): Likewise.
- * sysdeps/nptl/fork.h (__fork_lock, __fork_handlers, __linkin_atfork):
- Remove declaration.
- (fork_handler): Remove next, refcntr, and need_signal member.
- (__run_fork_handler_type): New enum.
- (__run_fork_handlers): New prototype.
- * nptl/register-atfork.c: Remove file.
- * sysdeps/nptl/libc-lockP.h (__libc_atfork): Remove declaration.
-
- * sysdeps/nptl/nptl-signals.h: Move to ...
- * sysdeps/generic/internal-signals.h: ... here. Adjust internal
- comments.
- * sysdeps/unix/sysv/linux/internal-signals.h: Add include guards.
- (__nptl_is_internal_signal): Rename to __is_internal_signal and remove
- unnecessary check for SIGTIMER.
- (__nptl_clear_internal_signals): Rename to __clear_internal_signals and
- remove unnecessary removal of SIGTIMER.
- * sysdeps/unix/sysv/linux/raise.c: Adjust nptl-signal.h to
- include-signals.h rename.
- * nptl/pthreadP.h: Likewise.
- * sysdeps/unix/sysv/linux/spawni.c (__spawni_child): Call
- __is_internal_signal instead of __nptl_is_internal_signal.
-
-2018-02-22 Andrew Waterman <andrew@sifive.com>
-
- [BZ # 22884]
- * sysdeps/riscv/rvd/s_fmax.c (__fmax): Handle sNaNs correctly.
- * sysdeps/riscv/rvd/s_fmin.c (__fmin): Likewise.
- * sysdeps/riscv/rvf/s_fmaxf.c (__fmaxf): Likewise.
- * sysdeps/riscv/rvf/s_fminf.c (__fminf): Likewise.
-
-2018-02-22 DJ Delorie <dj@delorie.com>
-
- * sysdeps/riscv/tls-macros.h: Do not initialize $gp.
-
-2018-02-22 Siddhesh Poyarekar <siddhesh@sourceware.org>
-
- * sysdeps/aarch64/strcmp.S (do_misaligned): Jump back to
- do_misaligned, not misaligned8.
-
-2018-02-22 Steve Ellcey <sellcey@cavium.com>
-
- * sysdeps/aarch64/multiarch/Makefile (sysdep_routines):
- Add memcpy_thunderx2.
- * sysdeps/aarch64/multiarch/ifunc-impl-list.c (MAX_IFUNC):
- Increment to 4.
- (__libc_ifunc_impl_list): Add __memcpy_thunderx2.
- * sysdeps/aarch64/multiarch/memcpy.c (libc_ifunc): Add IS_THUNDERX2
- and IS_THUNDERX2PA checks.
- * sysdeps/aarch64/multiarch/memcpy_thunderx.S (USE_THUNDERX2):
- Use macro to set name appropriately.
- (memcpy): Use USE_THUNDERX2 macro to modify prefetches.
- * sysdeps/aarch64/multiarch/memcpy_thunderx2.S: New file.
- * sysdeps/unix/sysv/linux/aarch64/cpu-features.h (IS_THUNDERX2PA):
- New macro.
- (IS_THUNDERX2): New macro.
-
-2018-02-22 Stefan Liebler <stli@linux.vnet.ibm.com>
-
- * sysdeps/s390/fpu/libm-test-ulps: Regenerated.
-
-2018-02-21 Zack Weinberg <zackw@panix.com>
-
- * libio/libio.h (_IO_pos_BAD, _IO_pos_0, _IO_pos_adjust):
- Define here, unconditionally.
- * libio/iolibio.h (_IO_pos_BAD): Don't define here.
- * libio/libioP.h: Remove #if 0 blocks.
- (_IO_pos_BAD, _IO_pos_0, _IO_pos_adjust): Don't define here.
- (_IO_va_start, COERCE_FILE, MAYBE_SET_EINVAL): Don't define.
- (CHECK_FILE): Don't use MAYBE_SET_EINVAL or COERCE_FILE. Fix style.
-
- * libio/clearerr.c, libio/fputc.c, libio/getchar.c:
- Assume weak_alias is always defined.
-
- * libio/fileops.c, libio/genops.c, libio/oldfileops.c
- * libio/oldpclose.c, libio/pclose.c, libio/wfileops.c:
- Remove #if 0 and #ifdef TODO blocks.
- Assume text_set_element is always defined.
-
- * libio/iofdopen.c, libio/iogetdelim.c, libio/oldiofdopen.c
- Use __set_errno (EINVAL) instead of MAYBE_SET_EINVAL.
- * libio/tst-mmap-eofsync.c: Make #if 1 block unconditional.
-
- * libio/libio.h (_IOS_ATEND, _IOS_APPEND, _IOS_TRUNC)
- (_IOS_NOCREATE, _IOS_NOREPLACE, _IOS_BIN, _OLD_STDIO_MAGIC)
- (_IO_SKIPWS, _IO_LEFT, _IO_RIGHT, _IO_INTERNAL, _IO_DEC)
- (_IO_OCT, _IO_HEX, _IO_SHOWBASE, _IO_SHOWPOINT, _IO_UPPERCASE)
- (_IO_SHOWPOS, _IO_SCIENTIFIC, _IO_FIXED, _IO_UNITBUF, _IO_STDIO)
- (_IO_DONT_CLOSE, _IO_BOOLALPHA, _IO_BAD_SEEN): Remove, unused.
- Reformat bit flags for _flags field to make occupancy clearer.
- Update commentary.
- * libio/bits/types/struct_FILE.h (_IO_EOF_SEEN, _IO_ERR_SEEN):
- Keep definitions consistent with those in libio/libio.h.
-
- * libio/libio.h (_IO_file_flags): Remove macro.
- All uses changed to _flags.
-
- * libio/libio.h (_IO_UNIFIED_JUMPTABLES, _STDIO_USES_IOSTREAM)
- (__HAVE_COLUMN, _IO_BE): Don't define.
- (_IO_peekc_unlocked, _IO_getwc_unlocked, _IO_putwc_unlocked)
- (_IO_fwide_maybe_incompatible): Use __glibc_unlikely.
- * libio/libioP.h (EOF): Don't define.
- * libio/iofdopen.c, libio/iofopen.c, libio/iopopen.c
- * libio/iovdprintf.c, libio/oldiofdopen.c, libio/oldiofopen.c
- * libio/oldiopopen.c, debug/vdprintf_chk.c: Remove #if block
- testing _IO_UNIFIED_JUMPTABLES.
-
- * libio/libio.h (_IO_FILE): Delete; all uses changed to FILE.
- (_IO_fpos_t): Delete; all uses changed to __fpos_t.
- (_IO_fpos64_t): Delete; all uses changed to __fpos64_t.
- (_IO_size_t): Delete; all uses changed to size_t.
- (_IO_ssize_t): Delete; all uses changed to ssize_t or __ssize_t.
- (_IO_off_t): Delete; all uses changed to off_t.
- (_IO_off64_t): Delete; all uses changed to off64_t.
- (_IO_pid_t): Delete; all uses changed to pid_t.
- (_IO_uid_t): Delete; all uses changed to uid_t.
- (_IO_wint_t): Delete; all uses changed to wint_t.
- (_IO_va_list): Delete; all uses changed to va_list or __gnuc_va_list.
- (_IO_BUFSIZ): Delete; all uses changed to BUFSIZ.
- (_IO_cookie_io_functions_t): Delete; all uses changed to
- cookie_io_functions_t.
- (__io_read_fn): Delete; all uses changed to cookie_read_function_t.
- (__io_write_fn): Delete; all uses changed to cookie_write_function_t.
- (__io_seek_fn): Delete; all uses changed to cookie_seek_function_t.
- (__io_close_fn): Delete: all uses changed to cookie_close_function_t.
-
- * libio/iofopncook.c: Remove unnecessary forward declarations.
- * libio/iolibio.h: Correct outdated commentary.
- * malloc/malloc.c (__malloc_stats): Remove unnecessary casts.
- * stdio-common/fxprintf.c (__fxprintf_nocancel):
- Remove unnecessary casts.
- * stdio-common/getline.c: Use _IO_getdelim directly.
- Don't redefine ssize_t.
- * stdio-common/printf_fp.c, stdio_common/printf_fphex.c
- * stdio-common/printf_size.c: Don't redefine size_t or FILE.
- Remove outdated comments.
- * stdio-common/vfscanf.c: Don't redefine va_list.
-
- * libio/iolibio.h, libio/libioP.h: Remove extern "C".
- * libio/libio.h: Remove __BEGIN_DECLS and __END_DECLS.
- Remove preprocessor conditionals on _LIBC and __USE_GNU,
- which are always true, and __cplusplus, which is always false.
-
-2018-02-21 Joseph Myers <joseph@codesourcery.com>
-
- [BZ #15105]
- [BZ #19463]
- * libio/fputc_u.c (fputc_unlocked): Use libc_hidden_def.
- * libio/putc_u.c (putc_unlocked): Rename to __putc_unlocked and
- define as weak alias of __putc_unlocked. Use libc_hidden_weak.
- * include/stdio.h [!_ISOMAC] (fputc_unlocked): Use
- libc_hidden_proto.
- [!_ISOMAC] (putc_unlocked): Likewise.
- [!_ISOMAC] (__putc_unlocked): Declare as hidden function, and
- define inline if [__USE_EXTERN_INLINES].
- * misc/syslog.c (__vsyslog_chk): Call __putc_unlocked instead of
- putc_unlocked.
-
- [BZ #15105]
- [BZ #19463]
- * libio/getc_u.c (getc_unlocked): Use libc_hidden_weak.
- * include/stdio.h [!_ISOMAC] (__getc_unlocked): Use
- attribute_hidden, and define inline if [__USE_EXTERN_INLINES].
- [!_ISOMAC] (getc_unlocked): Use libc_hidden_proto.
- * misc/getttyent.c (__getttyent): Call __getc_unlocked instead of
- getc_unlocked.
- * time/tzfile.c (__tzfile_read): Likewise.
-
-2018-02-21 Mike FABIAN <mfabian@redhat.com>
-
- [BZ #22517]
- * localedata/locales/et_EE (LC_COLLATE): add missing “reorder-endâ€
-
-2018-02-21 Rical Jasan <ricaljasan@pacific.net>
-
- * io/fcntl.h: Fix a typo in a comment.
-
-2018-02-21 Rical Jasan <ricaljasan@pacific.net>
-
- [BZ #22862]
- * include/features.h: Add _ISOC11_SOURCE to test for whether to
- define _DEFAULT_SOURCE.
- * manual/creature.texi (_DEFAULT_SOURCE): Improve documentation.
-
-2018-02-21 Florian Weimer <fweimer@redhat.com>
-
- [BZ #20890]
- * elf/cache.c (save_cache): Call fsync on temporary file before
- renaming it.
- (save_aux_cache): Call fdatasync on temporary file before renaming
- it.
-
-2018-02-21 Florian Weimer <fweimer@redhat.com>
-
- [BZ #22787]
- * include/caller.h: Remove file.
- * elf/dl-caller.c: Likewise.
- * elf/Makefile (dl-routines): Remove dl-caller.
- (shared-only-routines): Do not add dl-caller.
- * elf/dl-load.c (_dl_map_object_from_fd): Do not call
- __check_caller.
- * elf/dl-open.c (struct dl_open_args): Remove caller_dl_open
- member.
- (dl_open_worker): Do not call __check_caller.
- (_dl_open): Do not set caller_dl_open member.
- * elf/rtld.c (_rtld_global_ro): Do not initialize
- _dl_check_caller member.
- * sysdeps/generic/ldsodefs.h (rtld_global): Remove
- _dl_check_caller member.
- (_dl_check_caller): Remove declaration.
- * sysdeps/unix/sysv/linux/dl-execstack.c
- (_dl_make_stack_executable): Do not call __check_caller.
-
-2018-02-21 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * sysdeps/mach/hurd/dl-sysdep.c (_dl_random): New variable.
- * sysdeps/mach/hurd/sysdep-cancel.h: New file.
-
-2018-02-20 Rical Jasan <ricaljasan@pacific.net>
-
- * manual/creature.texi (_ISOC99_SOURCE): Update the dated
- description.
-
-2018-02-20 Rical Jasan <ricaljasan@pacific.net>
-
- [BZ #16335]
- * manual/creature.texi (_POSIX_C_SOURCE): Document special values
- of 199606L, 200112L, and 200809L.
- (_XOPEN_SOURCE): Document special values of 600 and 700.
- (_ISOC11_SOURCE): Document macro.
- (_ATFILE_SOURCE): Likewise.
- (_FORTIFY_SOURCE): Likewise.
-
-2018-02-19 Joseph Myers <joseph@codesourcery.com>
-
- [BZ #15105]
- [BZ #19463]
- * libio/ferror_u.c (ferror_unlocked): Rename to __ferror_unlocked
- and define as weak alias of __ferror_unlocked. Use
- libc_hidden_weak.
- * include/stdio.h [!_ISOMAC] (ferror_unlocked): Use
- libc_hidden_proto.
- [!_ISOMAC] (__ferror_unlocked) New declaration, and inline
- function if [__USE_EXTERN_INLINES].
- * time/getdate.c (__getdate_r): Call __ferror_unlocked instead of
- ferror_unlocked.
-
-2018-02-19 Rical Jasan <ricaljasan@pacific.net>
-
- [BZ #6889]
- * manual/filesys.texi (get_current_dir_name): Clarify behaviour.
-
-2018-02-18 Aurelien Jarno <aurelien@aurel32.net>
-
- [BZ #22818]
- * posix/tst-glob_lstat_compat.c [__alpha__] (glob): Access
- the GLIBC_2.1 version.
-
-2018-02-18 Aurelien Jarno <aurelien@aurel32.net>
-
- [BZ #21508]
- * catgets/xopen-msg.awk: Ignore POT-Creation-Date line.
- * intl/Makefile ($(objpfx)tst-gettext-de.po): Generate
- intl/tst-gettext-de.po from po/de.po by removing the
- POT-Creation-Date line.
- ($(objpfx)msgs.h): Depend on $(objpfx)tst-gettext-de.po instead of
- ../po/de.po.
- * intl/tst-gettext.sh: Use ${objpfx}tst-gettext-de.po instead of
- ../po/de.po.
-
-2018-02-17 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * mach/Makefile (headers): Add mach/param.h.
- * sysdeps/mach/hurd/bits/param.h: Include <mach/param.h>.
- * sysdeps/mach/i386/mach/param.h: New file, defines EXEC_PAGESIZE
- * sysdeps/mach/hurd/ptsname.c: Include <sys/stat.h>.
- (__ptsname_r): Move implementation to...
- (__ptsname_internal): ... new function. Add filling the STP
- structure.
-
-2018-02-17 John David Anglin <danglin@gcc.gnu.org>
-
- * sysdeps/hppa/fpu/libm-test-ulps (pow): Increase double and
- idouble to 1 ULP.
-
-2018-02-16 Rical Jasan <ricaljasan@pacific.net>
-
- * manual/platform.texi (__riscv_flush_icache): Fix @deftypefun
- syntax.
-
-2018-02-16 Stefan Liebler <stli@linux.vnet.ibm.com>
-
- * nptl/Makefile (tst-mutex8-ENV): Delete.
- * nptl/tst-mutex8.c (check_type):
- Add runtime check if mutex will be elided.
-
-2018-02-15 Joseph Myers <joseph@codesourcery.com>
-
- [BZ #20980]
- [BZ #21234]
- * manual/install.texi (Configuring and compiling): Describe
- passing CC and CFLAGS on configure command line, not as
- environment variables. Use @code markup on those variables.
- Specify what options go in CC and what go in CFLAGS. Note the
- requirement to compile with optimization.
- * INSTALL: Regenerated.
-
- [BZ #18124]
- * sysdeps/hppa/bsd-setjmp.S: Include <sysdep.h>.
- (setjmp): Use HIDDEN_JUMPTARGET with __sigsetjmp.
- * sysdeps/unix/sysv/linux/hppa/getcontext.S (__getcontext): Call
- __sigprocmask instead of sigprocmask.
- * sysdeps/unix/sysv/linux/hppa/setcontext.S (__setcontext):
- Likewise.
- * sysdeps/unix/sysv/linux/hppa/localplt.data: Remove entries for
- __sigsetjmp and sigprocmask.
-
- [BZ #15105]
- * include/argz.h (argz_next): Use libc_hidden_proto.
- (__argz_next): Likewise.
- * string-argz-next.c (__argz_next): Use libc_hidden_def.
- (argz_next): Use libc_hidden_weak.
-
- [BZ #15105]
- * include/sys/socket.h [!_ISOMAC] (__cmsg_nxthdr): Use
- libc_hidden_proto.
- * sysdeps/unix/sysv/linux/cmsg_nxthdr.c (__cmsg_nxthdr): Use
- libc_hidden_def.
-
- [BZ #15105]
- * include/stdio.h [!_ISOMAC && IS_IN (libc)] (fputs): Use
- libc_hidden_proto.
- * libio/iofputs.c (fputs): Use libc_hidden_weak.
-
- [BZ #15105]
- [BZ #19463]
- * libio/feof_u.c (feof_unlocked): Rename to __feof_unlocked and
- define as weak alias of __feof_unlocked. Use libc_hidden_weak.
- * include/stdio.h (feof_unlocked): Use libc_hidden_proto.
- (__feof_unlocked): New declaration, and inline function if
- [__USE_EXTERN_INLINES].
- * iconv/gconv_conf.c (read_conf_file): Call __feof_unlocked
- instead of feof_unlocked.
- * intl/localealias.c [_LIBC] (FEOF): Likewise.
- * nss/nsswitch.c (nss_parse_file): Likewise.
- * sysdeps/unix/sysv/linux/readonly-area.c (__readonly_area):
- Likewise.
- * time/getdate.c (__getdate_r): Likewise.
- * sysdeps/posix/getaddrinfo.c [IS_IN (libc)] (feof_unlocked):
- Define as macro to call __feof_unlocked.
-
-2018-02-15 Wilco Dijkstra <wdijkstr@arm.com>
-
- * sysdeps/aarch64/fpu/fpu_control.h: Use <> in include.
-
-2018-02-15 Wilco Dijkstra <wdijkstr@arm.com>
-
- * math/Makefile: Remove mpexp.c and mplog.c
- * sysdeps/i386/fpu/mpexp.c: Delete file.
- * sysdeps/i386/fpu/mplog.c: Likewise.
- * sysdeps/ia64/fpu/mpexp.c: Likewise.
- * sysdeps/ia64/fpu/mplog.c: Likewise.
- * sysdeps/ieee754/dbl-64/e_exp.c: Remove mention of mpexp and mplog.
- * sysdeps/ieee754/dbl-64/mpa.h (__pow_mp): Remove unused function.
- * sysdeps/ieee754/dbl-64/mpexp.c: Delete file.
- * sysdeps/ieee754/dbl-64/mplog.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/mpexp.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/mplog.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/Makefile: Remove mpexp* and mplog*.
- * sysdeps/x86_64/fpu/multiarch/e_log-avx.c: Remove unused defines.
- * sysdeps/x86_64/fpu/multiarch/e_log-fma.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/e_log-fma4.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/mpexp-avx.c: Delete file.
- * sysdeps/x86_64/fpu/multiarch/mpexp-fma.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/mpexp-fma4.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/mplog-avx.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/mplog-fma.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/mplog-fma4.c: Likewise.
-
-2018-02-15 Stefan Liebler <stli@linux.vnet.ibm.com>
-
- * sysdeps/s390/fpu/libm-test-ulps: Regenerated.
-
-2018-02-14 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * sysdeps/sh/libm-test-ulps: Update.
-
-2018-02-12 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
-
- * sysdeps/powerpc/fpu/libm-test-ulps (pow): Increase double and
- idouble to 1 ULP.
-
-2018-02-12 Zack Weinberg <zackw@panix.com>
-
- [BZ #19239]
- * posix/sys/types.h: Don't include sys/sysmacros.h.
- * misc/sys/sysmacros.h: Remove the conditional deprecation
- warnings for the macros defined by this header.
-
-2018-02-12 Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- * manual/probes.texi: Remove slowexp probes.
- * math/Makefile: Remove slowexp.
- * sysdeps/generic/math_private.h (__slowexp): Remove.
- * sysdeps/ieee754/dbl-64/e_exp.c (__ieee754_exp): Remove __slowexp and
- document error bounds.
- * sysdeps/i386/fpu/slowexp.c: Remove.
- * sysdeps/ia64/fpu/slowexp.c: Remove.
- * sysdeps/ieee754/dbl-64/slowexp.c: Remove.
- * sysdeps/ieee754/dbl-64/uexp.h (err_0): Remove.
- * sysdeps/m68k/m680x0/fpu/slowexp.c: Remove.
- * sysdeps/powerpc/power4/fpu/Makefile (CPPFLAGS-slowexp.c): Remove.
- * sysdeps/x86_64/fpu/multiarch/Makefile: Remove slowexp-fma.
- * sysdeps/x86_64/fpu/multiarch/e_exp-avx.c (__slowexp): Remove.
- * sysdeps/x86_64/fpu/multiarch/e_exp-fma.c (__slowexp): Remove.
- * sysdeps/x86_64/fpu/multiarch/e_exp-fma4.c (__slowexp): Remove.
- * sysdeps/x86_64/fpu/multiarch/slowexp-avx.c: Remove.
- * sysdeps/x86_64/fpu/multiarch/slowexp-fma.c: Remove.
- * sysdeps/x86_64/fpu/multiarch/slowexp-fma4.c: Remove.
-
-2018-02-12 Wilco Dijkstra <wdijkstr@arm.com>
-
- [BZ #13932]
- * sysdeps/ieee754/dbl-64/uexp.h (err_1): Remove.
- * benchtests/pow-inputs: Update comment for slow path cases.
- * manual/probes.texi (slowpow_p10): Delete removed probe.
- (slowpow_p10): Likewise.
- * math/Makefile: Remove halfulp.c and slowpow.c.
- * sysdeps/aarch64/libm-test-ulps: Set ULP of pow to 1.
- * sysdeps/generic/math_private.h (__exp1): Remove error argument.
- (__halfulp): Remove.
- (__slowpow): Remove.
- * sysdeps/i386/fpu/halfulp.c: Delete file.
- * sysdeps/i386/fpu/slowpow.c: Likewise.
- * sysdeps/ia64/fpu/halfulp.c: Likewise.
- * sysdeps/ia64/fpu/slowpow.c: Likewise.
- * sysdeps/ieee754/dbl-64/e_exp.c (__exp1): Remove error argument,
- improve comments and add error analysis.
- * sysdeps/ieee754/dbl-64/e_pow.c (__ieee754_pow): Add error analysis.
- (power1): Remove function:
- (log1): Remove error argument, add error analysis.
- (my_log2): Remove function.
- * sysdeps/ieee754/dbl-64/halfulp.c: Delete file.
- * sysdeps/ieee754/dbl-64/slowpow.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/halfulp.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/slowpow.c: Likewise.
- * sysdeps/powerpc/power4/fpu/Makefile: Remove CPPFLAGS-slowpow.c.
- * sysdeps/x86_64/fpu/libm-test-ulps: Set ULP of pow to 1.
- * sysdeps/x86_64/fpu/multiarch/Makefile: Remove slowpow-fma.c,
- slowpow-fma4.c, halfulp-fma.c, halfulp-fma4.c.
- * sysdeps/x86_64/fpu/multiarch/e_pow-fma.c (__slowpow): Remove define.
- * sysdeps/x86_64/fpu/multiarch/e_pow-fma4.c (__slowpow): Likewise.
- * sysdeps/x86_64/fpu/multiarch/halfulp-fma.c: Delete file.
- * sysdeps/x86_64/fpu/multiarch/halfulp-fma4.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/slowpow-fma.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/slowpow-fma4.c: Likewise.
-
-2018-02-11 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * nscd/connections.c (RWLOCK_INITIALIZER): Define to
- PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP or
-
-2018-02-10 Dmitry V. Levin <ldv@altlinux.org>
-
- [BZ #22433]
- * sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h (__ptrace_request):
- Remove arm-specific PTRACE_GET_THREAD_AREA, PTRACE_GETHBPREGS,
- and PTRACE_SETHBPREGS.
-
-2018-02-10 Zack Weinberg <zackw@panix.com>
-
- [BZ #22830]
- * malloc/malloc.c (__malloc_stats): Restore stderr->_flags2
- correctly.
- * malloc/tst-malloc-stats-cancellation.c: New test case.
- * malloc/Makefile: Add new test case.
-
-2018-02-10 Wilco Dijkstra <wdijkstr@arm.com>
-
- * sysdeps/aarch64/fpu/fpu_control.h: Add features.h to fix build error.
-
-2018-02-10 Joseph Myers <joseph@codesourcery.com>
-
- * math/Makefile (libm-narrow-fns): Add add.
- (libm-test-funcs-narrow): Likewise.
- * math/Versions (GLIBC_2.28): Add narrowing add functions.
- * math/bits/mathcalls-narrow.h (add): Use __MATHCALL_NARROW .
- * math/gen-auto-libm-tests.c (test_functions): Add add.
- * math/math-narrow.h (CHECK_NARROW_ADD): New macro.
- (NARROW_ADD_ROUND_TO_ODD): Likewise.
- (NARROW_ADD_TRIVIAL): Likewise.
- * sysdeps/ieee754/float128/float128_private.h (__faddl): New
- macro.
- (__daddl): Likewise.
- * sysdeps/ieee754/ldbl-opt/Makefile (libnldbl-calls): Add fadd and
- dadd.
- (CFLAGS-nldbl-dadd.c): New variable.
- (CFLAGS-nldbl-fadd.c): Likewise.
- * sysdeps/ieee754/ldbl-opt/Versions (GLIBC_2.28): Add
- __nldbl_daddl.
- * sysdeps/ieee754/ldbl-opt/nldbl-compat.h (__nldbl_daddl): New
- prototype.
- * manual/arith.texi (Misc FP Arithmetic): Document fadd, faddl,
- daddl, fMaddfN, fMaddfNx, fMxaddfN and fMxaddfNx.
- * math/auto-libm-test-in: Add tests of add.
- * math/auto-libm-test-out-narrow-add: New generated file.
- * math/libm-test-narrow-add.inc: New file.
- * sysdeps/i386/fpu/s_f32xaddf64.c: Likewise.
- * sysdeps/ieee754/dbl-64/s_f32xaddf64.c: Likewise.
- * sysdeps/ieee754/dbl-64/s_fadd.c: Likewise.
- * sysdeps/ieee754/float128/s_f32addf128.c: Likewise.
- * sysdeps/ieee754/float128/s_f64addf128.c: Likewise.
- * sysdeps/ieee754/float128/s_f64xaddf128.c: Likewise.
- * sysdeps/ieee754/ldbl-128/s_daddl.c: Likewise.
- * sysdeps/ieee754/ldbl-128/s_f64xaddf128.c: Likewise.
- * sysdeps/ieee754/ldbl-128/s_faddl.c: Likewise.
- * sysdeps/ieee754/ldbl-128ibm/s_daddl.c: Likewise.
- * sysdeps/ieee754/ldbl-128ibm/s_faddl.c: Likewise.
- * sysdeps/ieee754/ldbl-96/s_daddl.c: Likewise.
- * sysdeps/ieee754/ldbl-96/s_faddl.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/nldbl-dadd.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/nldbl-fadd.c: Likewise.
- * sysdeps/ieee754/soft-fp/s_daddl.c: Likewise.
- * sysdeps/ieee754/soft-fp/s_fadd.c: Likewise.
- * sysdeps/ieee754/soft-fp/s_faddl.c: Likewise.
- * sysdeps/powerpc/fpu/libm-test-ulps: Update.
- * sysdeps/mach/hurd/i386/libm.abilist: Likewise.
- * 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/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/libm-le.abilist: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/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/tile/tilegx32/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/tile/tilegx64/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
-
- * sysdeps/powerpc/powerpc64le/Makefile [$(subdir) = math]
- (f128-pairs): New variable.
- [$(subdir) = math] ($(foreach suf,$(all-object-suffixes),$(foreach
- pair,$(f128-pairs),$(objpfx)test-$(pair)%$(suf)))): Add -mfloat128
- to CFLAGS.
- [$(subdir) = math] ($(foreach pair,$(f128-pairs),test-$(pair)%)):
- Also make tests add $(f128-loader-link) to gnulib-tests.
-
-2018-02-09 DJ Delorie <dj@redhat.com>
-
- [BZ #22827]
- * sysdeps/unix/sysv/linux/riscv/readelflib.c (process_elf_file): Use
- 64-bit ELF type for 64-bit ELF objects.
-
-2018-02-09 Joseph Myers <joseph@codesourcery.com>
-
- * math/libm-test-driver.c (snan_tests_arg): New variable.
- * math/libm-test-support.h (snan_tests_arg): New declaration.
- * math/libm-test-support.c (enable_test): Check snan_tests_arg.
-
- * math/Makefile (test-type-pairs): New variable.
- (test-type-pairs-f64xf128-yes): Likewise.
- (tests): Add test-narrow-macros.
- (libm-test-funcs-narrow): New variable.
- (libm-test-c-narrow): Likewise.
- (generated): Add $(libm-test-c-narrow).
- (libm-tests-base-narrow): New variable.
- (libm-tests-narrow): Likewise.
- (libm-tests): Add $(libm-tests-narrow).
- (libm-tests-for-type): Handle $(libm-tests-narrow).
- (libm-test-c-narrow-obj): New variable.
- ($(libm-test-c-narrow-obj)): New rule.
- ($(foreach t,$(libm-tests-narrow),$(objpfx)$(t).c)): Likewise.
- ($(foreach f,$(libm-test-funcs-narrow),$(objpfx)$(o)-$(f).o)): Use
- $(o-iterator) to set dependencies and CFLAGS.
- * math/gen-auto-libm-tests.c: Document use for narrowing
- functions.
- (output_for_one_input_case): Take argument NARROW.
- (generate_output): Likewise. Update call to
- output_for_one_input_case.
- (main): Take --narrow option. Update call to generate_output.
- * math/gen-libm-test.pl (_apply_lit): Take macro name as argument.
- (apply_lit): Update call to _apply_lit.
- (apply_arglit): New function.
- (parse_args): Handle "a" arguments.
- (parse_auto_input): Handle format names using ":".
- * math/README.libm-test: Document "a" parameter type.
- * math/libm-test-support.h (ARG_TYPE_MIN): New macro.
- (ARG_TYPE_TRUE_MIN): Likewise.
- (ARG_TYPE_MAX): Likwise.
- (ARG_MIN_EXP): Likewise.
- (ARG_MAX_EXP): Likewise.
- (ARG_MANT_DIG): Likewise.
- (TEST_COND_arg_ibm128): Likewise.
- (TEST_COND_ibm128_libgcc): Define conditional on [ARG_FLOAT].
- (TEST_COND_arg_fmt): New macro.
- (init_max_error): Update prototype.
- * math/libm-test-support.c (test_ibm128): New variable.
- (init_max_error): Take argument testing_ibm128 and set test_ibm128
- instead of using [TEST_COND_ibm128] conditional.
- (test_exceptions): Use test_ibm128 instead of TEST_COND_ibm128.
- * math/libm-test-driver.c (STR_ARG_FLOAT): New macro.
- [TEST_NARROW] (TEST_MSG): New definition.
- (arg_plus_zero): New macro.
- (arg_minus_zero): Likewise.
- (arg_plus_infty): Likewise.
- (arg_minus_infty): Likewise.
- (arg_qnan_value_pl): Likewise.
- (arg_qnan_value): Likewise.
- (arg_snan_value_pl): Likewise.
- (arg_snan_value): Likewise.
- (arg_max_value): Likewise.
- (arg_min_value): Likewise.
- (arg_min_subnorm_value): Likewise.
- [ARG_FLOAT] (struct test_aa_f_data): New struct type.
- (RUN_TEST_LOOP_aa_f): New macro.
- (TEST_SUFF): New macro.
- (TEST_SUFF_STR): Likewise.
- [!TEST_MATHVEC] (VEC_SUFF): Don't define.
- (TEST_COND_any_ibm128): New macro.
- (START): Use TEST_SUFF and TEST_SUFF_STR in initializer for
- this_func. Update call to init_max_error.
- * math/test-double.h (FUNC_NARROW_PREFIX): New macro.
- * math/test-float.h (FUNC_NARROW_PREFIX): Likewise.
- * math/test-float128.h (FUNC_NARROW_PREFIX): Likewise.
- * math/test-float32.h (FUNC_NARROW_PREFIX): Likewise.
- * math/test-float32x.h (FUNC_NARROW_PREFIX): Likewise.
- * math/test-float64.h (FUNC_NARROW_PREFIX): Likewise.
- * math/test-float64x.h (FUNC_NARROW_PREFIX): Likewise.
- * math/test-math-scalar.h (TEST_NARROW): Likewise.
- * math/test-math-vector.h (TEST_NARROW): Likewise.
- * math/test-arg-double.h: New file.
- * math/test-arg-float128.h: Likewise.
- * math/test-arg-float32x.h: Likewise.
- * math/test-arg-float64.h: Likewise.
- * math/test-arg-float64x.h: Likewise.
- * math/test-arg-ldouble.h: Likewise.
- * math/test-math-narrow.h: Likewise.
- * math/test-narrow-macros.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/test-narrow-macros-ldbl-64.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/Makefile (tests): Add
- test-narrow-macros-ldbl-64.
- (CFLAGS-test-narrow-macros-ldbl-64.c): New variable.
-
- * math/bits/mathcalls-narrow.h: New file.
- * include/bits/mathcalls-narrow.h: Likewise.
- * math/math-narrow.h: Likewise.
- * math/math.h (__MATHCALL_NARROW_ARGS_1): New macro.
- (__MATHCALL_NARROW_ARGS_2): Likewise.
- (__MATHCALL_NARROW_ARGS_3): Likewise.
- (__MATHCALL_NARROW_NORMAL): Likewise.
- (__MATHCALL_NARROW_REDIR): Likewise.
- (__MATHCALL_NARROW): Likewise.
- [__GLIBC_USE (IEC_60559_BFP_EXT)]: Repeatedly include
- <bits/mathcalls-narrow.h> with _Mret_, _Marg_ and __MATHCALL_NAME
- defined.
- [__GLIBC_USE (IEC_60559_TYPES_EXT)]: Likewise.
- * math/Makefile (headers): Add bits/mathcalls-narrow.h.
- (libm-narrow-fns): New variable.
- (libm-narrow-types-basic): Likewise.
- (libm-narrow-types-ldouble-yes): Likewise.
- (libm-narrow-types-float128-yes): Likewise.
- (libm-narrow-types-float128-alias-yes): Likewise.
- (libm-narrow-types): Likewise.
- (libm-routines): Add narrowing functions.
- * sysdeps/i386/fpu/fenv_private.h [__x86_64__]
- (libc_feholdexcept_setroundf128): New macro.
- [__x86_64__] (libc_feupdateenv_testf128): Likewise.
- * sysdeps/ieee754/float128/float128_private.h: Include
- <math/math-narrow.h>.
- [libc_feholdexcept_setroundf128] (libc_feholdexcept_setroundl):
- Undefine and redefine.
- [libc_feupdateenv_testf128] (libc_feupdateenv_testl): Likewise.
- (libm_alias_float_ldouble): Undefine and redefine.
- (libm_alias_double_ldouble): Likewise.
-
- * math/Makefile [$(PERL) != no] (libm-test-incs): Remove variable.
-
-2018-02-09 Wilco Dijkstra <wdijkstr@arm.com>
-
- * sysdeps/aarch64/fpu/fpu_control.h: Use builtins for accessing
- FPCR/FPSR.
-
-2018-02-09 Rical Jasan <ricaljasan@pacific.net>
-
- * manual/creature.texi: Convert references to gcc.info to gcc.
- * manual/stdio.texi: Likewise.
- * manual/string.texi: Likewise.
-
-2018-02-07 Joseph Myers <joseph@codesourcery.com>
-
- [BZ #17979]
- * posix/bits/types.h (__int_least8_t): New typedef.
- (__uint_least8_t): Likewise.
- (__int_least16_t): Likewise.
- (__uint_least16_t): Likewise.
- (__int_least32_t): Likewise.
- (__uint_least32_t): Likewise.
- (__int_least64_t): Likewise.
- (__uint_least64_t): Likewise.
- * sysdeps/generic/stdint.h (int_least8_t): Define using
- __int_least8_t.
- (int_least16_t): Define using __int_least16_t.
- (int_least32_t): Define using __int_least32_t.
- (int_least64_t): Define using __int_least64_t.
- (uint_least8_t): Define using __uint_least8_t.
- (uint_least16_t): Define using __uint_least16_t.
- (uint_least32_t): Define using __uint_least32_t.
- (uint_least64_t): Define using __uint_least64_t.
- * wcsmbs/uchar.h: Include <bits/types.h>.
- (char16_t): Define using __uint_least16_t conditional only on
- [!__USE_ISOCXX11].
- (char32_t): Define using __uint_least32_t conditional only on
- [!__USE_ISOCXX11].
- * wcsmbs/test-char-types.c: New file.
- * wcsmbs/Makefile (tests): Add test-char-types.
-
- * scripts/build-many-glibcs.py (Context.checkout): Default MPFR
- version to 4.0.1.
-
-2018-02-07 Zack Weinberg <zackw@panix.com>
-
- * bits/_G_config.h: Move back to sysdeps/generic/_G_config.h.
- Delete all contents except for definitions of _G_HAVE_MMAP and
- _G_HAVE_MREMAP. Add commentary explaining those two symbols.
- * sysdeps/unix/sysv/linux/bits/_G_config.h: Move back to
- sysdeps/unix/sysv/linux/_G_config.h. Make same content
- change as above.
-
- * libio/libio.h: Don't include bits/_G_config.h here.
- Include stddef.h with __need_wchar_t defined. Include
- bits/types/__mbstate_t.h, bits/types/wint_t.h, and gconv.h.
- Define _IO_iconv_t here, directly.
- Don't define _IO_HAVE_ST_BLKSIZE.
- * libio/libioP.h: Include _G_config.h here. Move include of
- shlib-compat.h up with rest of includes. Simplify conditionals
- controlling definition of _IO_JUMPS_OFFSET.
-
- * csu/init.c: Remove always-true #if around entire file.
- Don't include stdio.h. Set _IO_stdin_used to hardwired
- constant 0x20001, and update commentary.
- * include/stdio.h, sysdeps/ieee754/ldbl-opt/nldbl-compat.h:
- Replace all uses of _G_va_list with __gnuc_va_list.
- * libio/filedoalloc.c: Use #if defined _STATBUF_ST_BLKSIZE
- instead of #if _IO_HAVE_ST_BLKSIZE.
- * libio/fileops.c: Test _G_HAVE_MREMAP with #if, not #ifdef.
- * libio/iofdopen.c, libio/iofopen.c: Test _G_HAVE_MMAP with #if,
- not #ifdef.
-
- * libio/bits/libio.h: Move back to libio/libio.h and adjust
- multiple-include guard to match.
- Merge contents of libio/bits/libio-ldbl.h and include/libio.h
- into this file.
- Remove preprocessor conditionals that are always true and/or
- redundant to other preprocessor conditionals in the same nest.
- Include shlib-compat.h unconditionally.
- Error out if _LIBC is not defined, or if _ISOMAC is defined,
- or if _IO_MTSAFE_IO is defined but _IO_lock_t_defined is not
- defined after including stdio.h.
- Use __BEGIN_DECLS/__END_DECLS.
-
- * libio/bits/libio-ldbl.h, include/bits/libio.h: Delete file.
- * include/stdio.h, libio/iolibio.h, libio/libioP.h: Include
- libio.h as <libio/libio.h> rather than as <bits/libio.h>.
-
-2018-02-07 Zack Weinberg <zackw@panix.com>
-
- * libio/bits/types/__fpos_t.h, libio/bits/types/__fpos64_t.h:
- New single-type headers split from _G_config.h.
- * libio/bits/types/cookie_io_functions_t.h
- * libio/bits/types/struct_FILE.h
- New single-type headers split from libio.h.
-
- * libio/Makefile: Install the above new headers. Don't install
- libio.h, _G_config.h, bits/libio.h, bits/_G_config.h, or
- bits/libio-ldbl.h.
- * libio/_G_config.h, libio/libio.h: Delete file.
-
- * libio/bits/libio.h: Remove improper-inclusion guard.
- Include stdio.h and don't repeat anything that it does.
- Define _IO_fpos_t as __fpos_t, _IO_fpos64_t as __fpos64_t,
- _IO_BUFSIZ as BUFSIZ, _IO_va_list as __gnuc_va_list,
- __io_read_fn as cookie_read_function_t,
- __io_write_fn as cookie_write_function_t,
- __io_seek_fn as cookie_seek_function_t,
- __io_close_fn as cookie_close_function_t,
- and _IO_cookie_io_functions_t as cookie_io_functions_t.
- Define _STDIO_USES_IOSTREAM, __HAVE_COLUMN, and _IO_file_flags
- here, in the "compatibility defines" section. Remove an #if 0
- block. Use the "body" macros from bits/types/struct_FILE.h to
- define _IO_getc_unlocked, _IO_putc_unlocked, _IO_feof_unlocked,
- and _IO_ferror_unlocked.
- Move prototypes of __uflow and __overflow...
-
- * libio/stdio.h: ...here. Don't include bits/libio.h.
- Don't define _STDIO_USES_IOSTREAM. Get __gnuc_va_list
- directly from stdarg.h. Include bits/types/__fpos_t.h,
- bits/types/__fpos64_t.h, bits/types/struct_FILE.h,
- and, when __USE_GNU, bits/types/cookie_io_functions_t.h.
- Use __gnuc_va_list, not _G_va_list; __fpos_t, not _G_fpos_t;
- __fpos64_t, not _G_fpos64_t; FILE, not struct _IO_FILE;
- cookie_io_functions_t, not _IO_cookie_io_functions_t;
- __ssize_t, not _IO_ssize_t. Unconditionally define
- BUFSIZ as 8192 and EOF as (-1).
-
- * libio/bits/stdio.h: Add multiple-include guard. Use the "body"
- macros from bits/types/struct_FILE.h instead of _IO_* macros
- from libio.h; use __gnuc_va_list instead of va_list and __ssize_t
- instead of _IO_ssize_t.
- * libio/bits/stdio2.h: Similarly.
-
- * libio/iolibio.h: Add multiple-include guard.
- Include bits/libio.h after stdio.h.
- * libio/libioP.h: Add multiple-include guard.
- Include stdio.h and bits/libio.h before iolibio.h.
-
- * include/bits/types/__fpos_t.h, include/bits/types/__fpos64_t.h
- * include/bits/types/cookie_io_functions_t.h
- * include/bits/types/struct_FILE.h: New wrappers.
-
- * bits/_G_config.h, sysdeps/unix/sysv/linux/_G_config.h:
- Get definitions of _G_fpos_t and _G_fpos64_t from
- bits/types/__fpos_t.h and bits/types/__fpos64_t.h
- respectively. Remove improper-inclusion guards.
-
- * conform/data/stdio.h-data: Update expectations of va_list.
- * scripts/check-installed-headers.sh: Remove special case for
- libio.h and _G_config.h.
-
-2018-02-07 Joseph Myers <joseph@codesourcery.com>
-
- [BZ #15105]
- [BZ #19463]
- * include/sys/sysmacros.h [!_ISOMAC]
- (__SYSMACROS_NEED_IMPLEMENTATION): Define macro.
- [!_SYS_SYSMACROS_H_WRAPPER && !_ISOMAC]
- (_SYS_SYSMACROS_H_WRAPPER): Likewise.
- [!_SYS_SYSMACROS_H_WRAPPER && !_ISOMAC] (gnu_dev_major): Use
- libc_hidden_proto.
- [!_SYS_SYSMACROS_H_WRAPPER && !_ISOMAC] (gnu_dev_minor): Likewise.
- [!_SYS_SYSMACROS_H_WRAPPER && !_ISOMAC] (gnu_dev_makedev):
- Likewise.
- [!_SYS_SYSMACROS_H_WRAPPER && !_ISOMAC] (__SYSMACROS_DECL_TEMPL):
- Undefine and redefine to add use __gnu_dev_ prefix.
- [!_SYS_SYSMACROS_H_WRAPPER && !_ISOMAC] (__SYSMACROS_IMPL_TEMPL):
- Likewise.
- [!_SYS_SYSMACROS_H_WRAPPER && !_ISOMAC] (__gnu_dev_major): Declare
- and define as hidden inline function.
- [!_SYS_SYSMACROS_H_WRAPPER && !_ISOMAC] (__gnu_dev_minor):
- Likewise.
- [!_SYS_SYSMACROS_H_WRAPPER && !_ISOMAC] (__gnu_dev_makedev):
- Likewise.
- * misc/makedev.c (OUT_OF_LINE_IMPL_TEMPL): Use __gnu_dev_ prefix.
- (gnu_dev_major): Use weak_alias and libc_hidden_weak.
- (gnu_dev_minor): Likewise.
- (gnu_dev_makedev): Likewise.
- * csu/check_fds.c (check_one_fd): Use __gnu_dev_makedev instead of
- makedev.
- * posix/wordexp.c (exec_comm_child): Likewise.
- * sysdeps/mach/hurd/xmknodat.c (__xmknodat): Use __gnu_dev_minor
- instead of minor and __gnu_dev_major instead of major.
- * sysdeps/unix/sysv/linux/device-nrs.h (DEV_TTY_P): Use
- __gnu_dev_major instead of major.
- * sysdeps/unix/sysv/linux/pathconf.c (distinguish_extX): Use
- __gnu_dev_major instead of gnu_dev_major and __gnu_dev_minor
- instead of gnu_dev_minor.
- * sysdeps/unix/sysv/linux/ptsname.c (MASTER_P): Likewise.
- (SLAVE_P): Likewise.
- (__ptsname_internal): Use __gnu_dev_minor instead of minor.
- * sysdeps/unix/sysv/linux/ttyname.h (is_pty): Use __gnu_dev_major
- instead of major.
-
- [BZ #21313]
- * locale/weight.h (findidx): Disable -Wmaybe-uninitialized for -Os
- in another place.
- * locale/weightwc.h (findidx): Likewise.
-
-2018-02-07 Wilco Dijkstra <wdijkstr@arm.com>
-
- * manual/probes.texi (slowlog): Delete documentation of removed probe.
- (slowlog_inexact): Likewise
- * sysdeps/ieee754/dbl-64/e_log.c (__ieee754_log): Remove slow paths.
- * sysdeps/ieee754/dbl-64/ulog.h: Remove unused declarations.
-
-2018-02-07 Igor Gnatenko <ignatenko@redhat.com>
-
- [BZ #22797]
- * sysdeps/unix/sysv/linux/bits/mman-shared.h (pkey_get): Add
- missing second underscore to parameter name.
-
-2018-02-06 Joseph Myers <joseph@codesourcery.com>
-
- [BZ #14508]
- [BZ #15512]
- [BZ #17082]
- [BZ #20530]
- * bits/byteswap.h: Update file comment. Do not include
- <bits/byteswap-16.h>.
- (__bswap_constant_16): Cast result to __uint16_t. Use signed 0xff
- constant.
- (__bswap_16): Define as inline function.
- (__bswap_constant_32): Reformat definition.
- (__bswap_32): Always define as inline function, not macro, using
- __uint32_t. Use __builtin_bswap32 if [__GNUC_PREREQ (4, 3)],
- otherwise __bswap_constant_32.
- (__bswap_constant_64): Reformat definition. Do not use
- __extension__ here.
- (__bswap_64): Always define as inline function, not macro. Use
- __extension__ on function definition. Use __builtin_bswap64 if
- [__GNUC_PREREQ (4, 3)], otherwise __bswap_constant_64.
- * string/test-endian-file-scope.c: New file.
- * string/test-endian-sign-conversion.c: Likewise.
- * string/Makefile (headers): Remove bits/byteswap-16.h.
- (tests): Add test-endian-file-scope and
- test-endian-sign-conversion.
- (CFLAGS-test-endian-sign-conversion.c): New variable.
- * bits/byteswap-16.h: Remove file.
- * sysdeps/ia64/bits/byteswap-16.h: Likewise.
- * sysdeps/ia64/bits/byteswap.h: Likewise.
- * sysdeps/m68k/bits/byteswap.h: Likewise.
- * sysdeps/s390/bits/byteswap-16.h: Likewise.
- * sysdeps/s390/bits/byteswap.h: Likewise.
- * sysdeps/tile/bits/byteswap.h: Likewise.
- * sysdeps/x86/bits/byteswap-16.h: Likewise.
- * sysdeps/x86/bits/byteswap.h: Likewise.
-
- [BZ #17721]
- * misc/sys/cdefs.h [!__GNUC__ && (__cplusplus || (__STDC_VERSION__
- && __STDC_VERSION__ >= 199901L))] (__inline): Define to inline.
- [!__GNUC_PREREQ (2,92) && __STDC_VERSION__ && __STDC_VERSION__ >=
- 199901L] (__restrict): Define to restrict.
-
- [BZ #19667]
- * string/testcopy.c: Include <support/support.h>. Do not include
- <malloc.h>. Use <support/test-driver.c>.
- (main): Rename to do_test. Make static. Use xmalloc instead of
- malloc.
-
- [BZ #13575]
- * posix/bits/posix1_lim.h: Include <bits/wordsize.h>.
- [!SSIZE_MAX && !(__WORDSIZE == 64 || __WORDSIZE32_SIZE_ULONG)]
- (SSIZE_MAX): Define to INT_MAX.
- * posix/test-ssize-max.c: New file.
- * posix/Makefile (tests): Add test-ssize-max.
-
- [BZ #19668]
- * sysdeps/powerpc/fpu/tst-setcontext-fpscr.c: Include
- <support/support.h>. Do not include <malloc.h>.
- (query_auxv): Use xmalloc instead of malloc.
-
- [BZ #14553]
- * posix/sys/types.h (loff_t): Only define for [__USE_MISC].
- * sysdeps/unix/sysv/linux/sys/quota.h (dqoff): Use __loff_t
- instead of loff_t.
-
-2018-02-06 Florian Weimer <fweimer@redhat.com>
-
- [BZ #18023]
- * sysdeps/unix/sysv/linux/getlogin_r.c (__getlogin_r_loginuid):
- Use scratch_buffer instead of extend_alloca.
-
-2018-02-06 Zack Weinberg <zackw@panix.com>
-
- * libio/stdio.h: Don't define getc or putc as macros.
- * libio/bits/stdio.h (getchar, putchar): Use getc and putc,
- not _IO_getc and _IO_putc.
-
- * stdio-common/tstgetln.c: Don't redefine FILE, va_list, or BUFSIZ.
- * stdio-common/tstgetln.c: Don't redefine ssize_t.
-
-2018-02-06 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/gnu/netinet/tcp.h (TCP_FASTOPEN_KEY): New macro.
- (TCP_FASTOPEN_NO_COOKIE): Likewise.
-
- * sysdeps/unix/sysv/linux/bits/in.h (IPV6_FREEBIND): New macro.
-
- [BZ #14890]
- * elf/elf.h (NT_PRFPREG): New macro.
- (NT_S390_VXRS_LOW): Likewise.
- (NT_S390_VXRS_HIGH): Likewise.
- (NT_S390_GS_CB): Likewise.
- (NT_S390_GS_BC): Likewise.
- (NT_S390_RI_CB): Likewise.
-
- * sysdeps/unix/sysv/linux/aarch64/bits/mman.h [__USE_MISC]
- (MAP_SYNC): New macro.
- * sysdeps/unix/sysv/linux/arm/bits/mman.h [__USE_MISC] (MAP_SYNC):
- Likewise.
- * sysdeps/unix/sysv/linux/ia64/bits/mman.h [__USE_MISC]
- (MAP_SYNC): Likewise.
- * sysdeps/unix/sysv/linux/m68k/bits/mman.h [__USE_MISC]
- (MAP_SYNC): Likewise.
- * sysdeps/unix/sysv/linux/microblaze/bits/mman.h [__USE_MISC]
- (MAP_SYNC): Likewise.
- * sysdeps/unix/sysv/linux/nios2/bits/mman.h [__USE_MISC]
- (MAP_SYNC): Likewise.
- * sysdeps/unix/sysv/linux/riscv/bits/mman.h [__USE_MISC]
- (MAP_SYNC): Likewise.
- * sysdeps/unix/sysv/linux/s390/bits/mman.h [__USE_MISC]
- (MAP_SYNC): Likewise.
- * sysdeps/unix/sysv/linux/sh/bits/mman.h [__USE_MISC] (MAP_SYNC):
- Likewise.
- * sysdeps/unix/sysv/linux/x86/bits/mman.h [__USE_MISC] (MAP_SYNC):
- Likewise.
-
- * sysdeps/unix/sysv/linux/bits/mman-linux.h [__USE_MISC]
- (MAP_SHARED_VALIDATE): New macro.
- * sysdeps/unix/sysv/linux/hppa/bits/mman.h [__USE_MISC]
- (MAP_SHARED_VALIDATE): Likewise.
-
-2018-02-05 H.J. Lu <hongjiu.lu@intel.com>
-
- * elf/dl-addr.c (determine_info): Use ADDRIDX with DT_GNU_HASH.
- * elf/dl-lookup.c (_dl_setup_hash): Likewise.
- * elf/get-dynamic-info.h (elf_get_dynamic_info): Likewise.
-
-2018-02-05 H.J. Lu <hongjiu.lu@intel.com>
-
- * elf/elf.h (DT_SYMTAB_SHNDX): New. Set to 34.
- (DT_NUM): Updated to 35.
-
-2018-02-05 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/i386/dl-machine.h (elf_machine_rel): Replace
- __builtin_expect with __glibc_likely and __glibc_unlikely.
- (elf_machine_rela): Likewise.
- (elf_machine_lazy_rel): Likewise.
-
-2018-02-05 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/x86_64/dl-machine.h (elf_machine_rela): Replace
- __builtin_expect with __glibc_likely and __glibc_unlikely.
- (elf_machine_lazy_rel): Likewise.
-
-2018-02-05 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #22638]
- * sysdeps/sparc/sparc32/start.S (_start): Check PIC instead of
- SHARED.
- * sysdeps/sparc/sparc64/start.S (_start): Likewise.
-
-2018-02-05 Andreas Schwab <schwab@suse.de>
-
- [BZ #22761]
- * assert/assert-perr.c (__assert_perror_fail): Append %n to format
- string.
-
-2018-02-04 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * stdlib/test-atexit-race-common.c [!defined PTHREAD_STACK_MIN]: Do
- not check against PTHREAD_STACK_MIN.
-
-2018-02-02 Sean McKean <smckean83@gmail.com>
-
- [BZ #22735]
- * time/time.h (clock): Reference CLOCKS_PER_SEC in comment.
-
-2018-02-02 Florian Weimer <fweimer@redhat.com>
-
- [BZ #22753]
- * sysdeps/posix/preadv2.c (preadv2): Handle offset == -1.
- * sysdeps/posix/preadv64v2.c (preadv64v2): Likewise.
- * sysdeps/posix/pwritev2.c (pwritev2): Likewise.
- * sysdeps/posix/pwritev64v2.c (pwritev64v2): Likweise.
- * sysdeps/unix/sysv/linux/preadv2.c (preadv2): Likewise.
- * sysdeps/unix/sysv/linux/preadv64v2.c (preadv64v2): Likewise.
- * sysdeps/unix/sysv/linux/pwritev2.c (pwritev2): Likewise.
- * sysdeps/unix/sysv/linux/pwritev64v2.c (pwritev64v2): Likweise.
- * manual/llio.texi (Scatter-Gather): Mention offset -1.
- * misc/tst-preadvwritev-common.c (do_test_without_offset): New.
- * misc/tst-preadvwritev2.c (do_test): Call it.
- * misc/tst-preadvwritev64v2.c (do_test): Likewise.
-
-2018-02-02 Siddhesh Poyarekar <siddhesh@sourceware.org>
-
- * sysdeps/aarch64/memcmp.S: Use L() macro for labels.
-
- * benchtests/bench-memcmp.c: Print json instead of plain text.
-
- * benchtests/bench-memcmp.c (do_test): Call realloc_buf for
- every test run.
-
-2018-02-01 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/unix/sysv/linux/syscall-names.list: Update kernel
- version to 4.15.
- (s390_sthyi): New syscall.
-
- * sysdeps/generic/ldbl-classify-compat.h: New file.
- * sysdeps/arm/ldbl-classify-compat.h: Likewise.
- * sysdeps/m68k/coldfire/ldbl-classify-compat.h: Likewise.
- * sysdeps/microblaze/ldbl-classify-compat.h: Likewise.
- * sysdeps/mips/ldbl-classify-compat.h: Likewise.
- * sysdeps/nios2/ldbl-classify-compat.h: Likewise.
- * sysdeps/sh/ldbl-classify-compat.h: Likewise.
- * sysdeps/ieee754/dbl-64/s_finite.c: Include
- <ldbl-classify-compat.h>.
- [LDBL_CLASSIFY_COMPAT]: Test value, not whether defined.
- * sysdeps/ieee754/dbl-64/s_isinf.c: Include
- <ldbl-classify-compat.h>.
- [LDBL_CLASSIFY_COMPAT]: Test value, not whether defined.
- * sysdeps/ieee754/dbl-64/s_isnan.c: Include
- <ldbl-classify-compat.h>.
- [LDBL_CLASSIFY_COMPAT]: Test value, not whether defined.
- * sysdeps/ieee754/dbl-64/wordsize-64/s_finite.c: Include
- <ldbl-classify-compat.h>.
- [LDBL_CLASSIFY_COMPAT]: Test value, not whether defined.
- * sysdeps/ieee754/dbl-64/wordsize-64/s_isinf.c: Include
- <ldbl-classify-compat.h>.
- [LDBL_CLASSIFY_COMPAT]: Test value, not whether defined.
- * sysdeps/ieee754/dbl-64/wordsize-64/s_isnan.c: Include
- <ldbl-classify-compat.h>.
- [LDBL_CLASSIFY_COMPAT]: Test value, not whether defined.
- * sysdeps/arm/math_private.h (LDBL_CLASSIFY_COMPAT): Remove macro.
- * sysdeps/mips/math_private.h (LDBL_CLASSIFY_COMPAT): Likewise.
- * sysdeps/m68k/coldfire/math_private.h: Remove file.
- * sysdeps/microblaze/math_private.h: Likewise.
- * sysdeps/nios2/math_private.h: Likewise.
- * sysdeps/sh/math_private.h: Likewise.
-
- * sysdeps/m68k/coldfire/fpu/math_private.h: Move to ....
- * sysdeps/m68k/coldfire/math_private.h: ... here.
- * sysdeps/m68k/coldfire/nofpu/math_private.h: Remove file.
- * sysdeps/tile/math_private.h: Likewise.
- * sysdeps/microblaze/math_private.h (libc_feholdexcept_setround):
- Remove macro.
- * sysdeps/nios2/math_private.h (libc_feholdexcept_setround):
- Likewise.
-
- * sysdeps/m68k/coldfire/nofpu/math_private.h (libc_fesetround):
- Remove macro.
- (libc_fetestexcept): Likewise.
- (libc_feupdateenv_test): Likewise.
- * sysdeps/microblaze/math_private.h (libc_fesetround): Likewise.
- (libc_fetestexcept): Likewise.
- (libc_feupdateenv_test): Likewise.
- * sysdeps/nios2/math_private.h (libc_fesetround): Likewise.
- (libc_fetestexcept): Likewise.
- (libc_feupdateenv_test): Likewise.
- * sysdeps/tile/math_private.h (libc_fesetround): Likewise.
- (libc_fetestexcept): Likewise.
- (libc_feupdateenv_test): Likewise.
-
- * sysdeps/generic/math_private.h
- [!FE_HAVE_ROUNDING_MODES && FE_ALL_EXCEPT == 0] (feholdexcept):
- New inline function.
- [!FE_HAVE_ROUNDING_MODES && FE_ALL_EXCEPT == 0] (__feholdexcept):
- Likewise.
-
- * include/fenv.h [!_ISOMAC && !FE_TONEAREST]: Give #error.
- [!_ISOMAC] (FE_HAVE_ROUNDING_MODES): New macro.
- * sysdeps/generic/math_private.h
- [!FE_HAVE_ROUNDING_MODES && FE_ALL_EXCEPT == 0] (fegetenv): New
- inline function.
- [!FE_HAVE_ROUNDING_MODES && FE_ALL_EXCEPT == 0] (__fegetenv):
- Likewise.
- [!FE_HAVE_ROUNDING_MODES && FE_ALL_EXCEPT == 0] (fesetenv):
- Likewise.
- [!FE_HAVE_ROUNDING_MODES && FE_ALL_EXCEPT == 0] (__fesetenv):
- Likewise.
- [!FE_HAVE_ROUNDING_MODES && FE_ALL_EXCEPT == 0] (feupdateenv):
- Likewise.
- [!FE_HAVE_ROUNDING_MODES && FE_ALL_EXCEPT == 0] (__feupdateenv):
- Likewise.
- [!FE_HAVE_ROUNDING_MODES] (fegetround): Likewise.
- [!FE_HAVE_ROUNDING_MODES] (__fegetround): Likewise.
- [!FE_HAVE_ROUNDING_MODES] (fesetround): Likewise.
- [!FE_HAVE_ROUNDING_MODES] (__fesetround): Likewise.
- * sysdeps/tile/math_private.h (fegetenv): Remove inline function.
- (__fegetenv): Likewise.
- (fesetenv): Likewise.
- (__fesetenv): Likewise.
- (feupdateenv): Likewise.
- (__feupdateenv): Likewise.
- (fegetround): Likewise.
- (__fegetround): Likewise.
- (fesetround): Likewise.
- (__fesetround): Likewise.
-
- * sysdeps/generic/math_private.h [FE_ALL_EXCEPT == 0]
- (feraiseexcept): New macro.
- [FE_ALL_EXCEPT == 0] (__feraiseexcept): Likewise.
- * sysdeps/m68k/coldfire/nofpu/math_private.h (feraiseexcept):
- Remove macro.
- (__feraiseexcept): Likewise.
- (feclearexcept): Likewise.
- * sysdeps/microblaze/math_private.h (feraiseexcept): Likewise.
- (__feraiseexcept): Likewise.
- (feclearexcept): Likewise.
- * sysdeps/nios2/math_private.h (feraiseexcept): Likewise.
- (__feraiseexcept): Likewise.
- (feclearexcept): Likewise.
- * sysdeps/tile/math_private.h (feraiseexcept): Likewise.
- (__feraiseexcept): Likewise.
- (feclearexcept): Likewise.
- (fetestexcept): Likewise.
-
- * sysdeps/m68k/coldfire/math-tests.h: New file.
-
- * sysdeps/m68k/fpu/bits/fenv.h: Move to ....
- * sysdeps/m68k/bits/fenv.h: ... here.
- [!__HAVE_68881__ && !__HAVE_FPU__ && !__mcffpu__] (FE_INEXACT): Do
- not define.
- [!__HAVE_68881__ && !__HAVE_FPU__ && !__mcffpu__] (FE_DIVBYZERO):
- Likewise.
- [!__HAVE_68881__ && !__HAVE_FPU__ && !__mcffpu__] (FE_UNDERFLOW):
- Likewise.
- [!__HAVE_68881__ && !__HAVE_FPU__ && !__mcffpu__] (FE_OVERFLOW):
- Likewise.
- [!__HAVE_68881__ && !__HAVE_FPU__ && !__mcffpu__] (FE_INVALID):
- Likewise.
- [!__HAVE_68881__ && !__HAVE_FPU__ && !__mcffpu__] (FE_ALL_EXCEPT):
- Define to 0.
- [!__HAVE_68881__ && !__HAVE_FPU__ && !__mcffpu__]
- (__FE_UNDEFINED): New enum constant.
- [!__HAVE_68881__ && !__HAVE_FPU__ && !__mcffpu__] (FE_TOWARDZERO):
- Do not define.
- [!__HAVE_68881__ && !__HAVE_FPU__ && !__mcffpu__] (FE_DOWNWARD):
- Likewise.
- [!__HAVE_68881__ && !__HAVE_FPU__ && !__mcffpu__] (FE_UPWARD):
- Likewise.
- [!__HAVE_68881__ && !__HAVE_FPU__ && !__mcffpu__] (fenv_t): Define
- to match generic bits/fenv.h.
- [!__HAVE_68881__ && !__HAVE_FPU__ && !__mcffpu__] (FE_NOMASK_ENV):
- Do not define.
-
- * soft-fp/double.h (union _FP_UNION_D): Do not use attribute
- packed on bits.
- * soft-fp/extended.h (union _FP_UNION_E): Likewise.
- * soft-fp/half.h (union _FP_UNION_H): Likewise.
- * soft-fp/quad.h (union _FP_UNION_Q): Likewise.
- * soft-fp/single.h (union _FP_UNION_S): Likewise.
-
-2018-02-01 Carlos O'Donell <carlos@redhat.com>
- Ramin Seyed-Moussavi <lordrasmus@gmail.com>
- Joseph Myers <joseph@codesourcery.com>
-
- [BZ #21314]
- * sysdeps/ieee754/dbl-64/s_log1p.c: Include <libc-diag.h>.
- (__log1p): Disable -Wmaybe-uninitialized for -Os around
- computation using c.
- * sysdeps/ieee754/flt-32/s_log1pf.c: Include <libc-diag.h>.
- (__log1pf): Disable -Wmaybe-uninitialized for -Os around
- computation using c.
-
-2018-02-01 Dmitry V. Levin <ldv@altlinux.org>
-
- * version.h (RELEASE): Set to "development".
- (VERSION): Set to "2.27.9000".
- * NEWS (2.28): New section.
-
- * version.h (RELEASE): Set to "stable".
- (VERSION): Set to "2.27".
- * include/features.h (__GLIBC_MINOR__): Set to 2.27.
-
- * NEWS: Add the list of bugs fixed in 2.27.
-
-2018-02-01 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * stdlib/test-atexit-race-common.c (do_test): Check stack size
- against PTHREAD_STACK_MIN.
-
-2018-02-01 Dmitry V. Levin <ldv@altlinux.org>
-
- * manual/contrib.texi (Palmer Dabbelt, Arjun Shankar, Florian Weimer):
- New entries.
- (Rafal Luzynski, Andreas Schwab): Update.
-
-2018-02-01 Rafal Luzynski <digitalfreak@lingonborough.com>
-
- [BZ #10871]
- * NEWS: List the languages which actually use the alternative
- months feature in this release. Also explain that "alt_mon" and
- "ab_alt_mon" are optional.
-
-2018-01-31 Il'ya Malakhov <ilmalakhov@yandex.ru>
-
- [BZ #22765]
- * crypt/badsalttest.c (do_test): Set cd.initialized to 0.
-
-2018-01-31 Dmitry V. Levin <ldv@altlinux.org>
-
- * manual/install.texi (Tools for Compilation): Update the newest
- versions of gcc, binutils, texinfo, gawk, bison, and sed.
- * INSTALL: Regenerated.
-
-2018-01-30 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * sysdeps/pthread/allocalim.h (__libc_use_alloca): Use __glibc_likely
- instead of __builtin_expect.
-
-2018-01-30 Florian Weimer <fweimer@redhat.com>
-
- * nss/bug17079.c (do_test): Use nss_files only for reading passwd
- data.
- * nss/tst-nss-getpwent.c (do_test): Likewise.
-
-2018-01-30 Rafal Luzynski <digitalfreak@lingonborough.com>
-
- [BZ #10871]
- * localedata/locales/hr_HR (mon): Rename to...
- (alt_mon): This.
- (mon): Import from CLDR (genitive case).
- (d_t_fmt): Update the comment.
-
-2018-01-29 Andreas Schwab <schwab@linux-m68k.org>
-
- * sysdeps/posix/fpathconf.c (__fpathconf): Verify the values of
- _POSIX_CHOWN_RESTRICTED, _POSIX_NO_TRUNC, _POSIX_VDISABLE.
- * sysdeps/posix/pathconf.c (__pathconf): Likewise.
-
-2018-01-29 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * mach/Versions: Fix version when __mach_host_self_ was added.
- * hurd/Versions: Fix version when _hurd_exec_paths was added.
- * sysdeps/mach/hurd/i386/ld.abilist: New file.
- * sysdeps/mach/hurd/i386/libBrokenLocale.abilist: New file.
- * sysdeps/mach/hurd/i386/libanl.abilist: New file.
- * sysdeps/mach/hurd/i386/libc.abilist: New file.
- * sysdeps/mach/hurd/i386/libcrypt.abilist: New file.
- * sysdeps/mach/hurd/i386/libdl.abilist: New file.
- * sysdeps/mach/hurd/i386/libm.abilist: New file.
- * sysdeps/mach/hurd/i386/libnsl.abilist: New file.
- * sysdeps/mach/hurd/i386/libresolv.abilist: New file.
- * sysdeps/mach/hurd/i386/librt.abilist: New file.
- * sysdeps/mach/hurd/i386/libutil.abilist: New file.
- * sysdeps/pthread/allocalim.h (__libc_use_alloca): Commute operands of
- || to respect codestyle.
- * libio/tst-memstream3.c (_FWRITE): Rename to FWRITE_FUNC.
- (do_test_bz20181): Rename accordingly.
- * malloc/malloc.c: Include <assert.h>.
- (assert): Do not define.
- [!defined NDEBUG] (__assert_fail): Define to __malloc_assert.
- * bits/fcntl.h: Fix comment for FREAD and FWRITE.
- * sysdeps/mach/hurd/bits/fcntl.h: Likewise.
- * sysdeps/mach/hurd/hp-timing.h: New file.
- * sysdeps/mach/hurd/i386/tlsdesc.sym: New file.
-
-2018-01-29 Darius Rad <darius@bluespec.com>
-
- * sysdeps/unix/sysv/linux/riscv/ipc_priv.h: New file.
-
-2018-01-29 Palmer Dabbelt <palmer@sifive.com>
-
- * sysdeps/init_array/crti.S (.section .init_array): Add
- PREINIT_FUNCTION when defined.
- * manual/math.texi: RISC-V supports _Float128 and _Float64x.
- * config.h.in: Regenerate.
- * manual/platform.texi: Add RISC-V documenation for
- __riscv_flush_icache.
- * sysdeps/riscv/__longjmp.S: New file.
- * sysdeps/riscv/backtrace.c: Likewise.
- * sysdeps/riscv/bits/endian.h: Likewise.
- * sysdeps/riscv/bits/setjmp.h: Likewise.
- * sysdeps/riscv/bits/wordsize.h: Likewise.
- * sysdeps/riscv/bsd-_setjmp.c: Likewise.
- * sysdeps/riscv/bsd-setjmp.c: Likewise.
- * sysdeps/riscv/dl-trampoline.S: Likewise.
- * sysdeps/riscv/gccframe.h: Likewise.
- * sysdeps/riscv/jmpbuf-offsets.h: Likewise.
- * sysdeps/riscv/jmpbuf-unwind.h: Likewise.
- * sysdeps/riscv/machine-gmon.h: Likewise.
- * sysdeps/riscv/memusage.h: Likewise.
- * sysdeps/riscv/setjmp.S: Likewise.
- * sysdeps/riscv/sys/asm.h: Likewise.
- * sysdeps/riscv/tls-macros.h: Likewise.
- * sysdeps/riscv/dl-tls.h: New file.
- * sysdeps/riscv/libc-tls.c: Likewise.
- * sysdeps/riscv/nptl/tcb-offsets.sym: Likewise.
- * sysdeps/riscv/nptl/tls.h: Likewise.
- * sysdeps/riscv/stackinfo.h: Likewise.
- * sysdeps/riscv/bits/fenv.h: New file.
- * sysdeps/riscv/e_sqrtl.c: Likewise.
- * sysdeps/riscv/fpu_control.h: Likewise.
- * sysdeps/riscv/math-tests.h: Likewise.
- * sysdeps/riscv/nofpu/Implies: Likewise.
- * sysdeps/riscv/sfp-machine.h: Likewise.
- * sysdeps/riscv/tininess.h: Likewise.
- * sysdeps/riscv/rv64/rvd/s_ceil.c: New file.
- * sysdeps/riscv/rv64/rvd/s_floor.c: Likewise.
- * sysdeps/riscv/rv64/rvd/s_llrint.c: Likewise.
- * sysdeps/riscv/rv64/rvd/s_llround.c: Likewise.
- * sysdeps/riscv/rv64/rvd/s_lrint.c: Likewise.
- * sysdeps/riscv/rv64/rvd/s_lround.c: Likewise.
- * sysdeps/riscv/rv64/rvd/s_nearbyint.c: Likewise.
- * sysdeps/riscv/rv64/rvd/s_rint.c: Likewise.
- * sysdeps/riscv/rv64/rvd/s_round.c: Likewise.
- * sysdeps/riscv/rv64/rvd/s_roundeven.c: Likewise.
- * sysdeps/riscv/rv64/rvd/s_trunc.c: Likewise.
- * sysdeps/riscv/rv64/rvf/s_llrintf.c: Likewise.
- * sysdeps/riscv/rv64/rvf/s_llroundf.c: Likewise.
- * sysdeps/riscv/rv64/rvf/s_lrintf.c: Likewise.
- * sysdeps/riscv/rv64/rvf/s_lroundf.c: Likewise.
- * sysdeps/riscv/rvd/e_sqrt.c: Likewise.
- * sysdeps/riscv/rvd/s_copysign.c: Likewise.
- * sysdeps/riscv/rvd/s_finite.c: Likewise.
- * sysdeps/riscv/rvd/s_fma.c: Likewise.
- * sysdeps/riscv/rvd/s_fmax.c: Likewise.
- * sysdeps/riscv/rvd/s_fmin.c: Likewise.
- * sysdeps/riscv/rvd/s_fpclassify.c: Likewise.
- * sysdeps/riscv/rvd/s_isinf.c: Likewise.
- * sysdeps/riscv/rvd/s_isnan.c: Likewise.
- * sysdeps/riscv/rvd/s_issignaling.c: Likewise.
- * sysdeps/riscv/rvf/e_sqrtf.c: Likewise.
- * sysdeps/riscv/rvf/fclrexcpt.c: Likewise.
- * sysdeps/riscv/rvf/fegetenv.c: Likewise.
- * sysdeps/riscv/rvf/fegetmode.c: Likewise.
- * sysdeps/riscv/rvf/fegetround.c: Likewise.
- * sysdeps/riscv/rvf/feholdexcpt.c: Likewise.
- * sysdeps/riscv/rvf/fesetenv.c: Likewise.
- * sysdeps/riscv/rvf/fesetexcept.c: Likewise.
- * sysdeps/riscv/rvf/fesetmode.c: Likewise.
- * sysdeps/riscv/rvf/fesetround.c: Likewise.
- * sysdeps/riscv/rvf/feupdateenv.c: Likewise.
- * sysdeps/riscv/rvf/fgetexcptflg.c: Likewise.
- * sysdeps/riscv/rvf/fraiseexcpt.c: Likewise.
- * sysdeps/riscv/rvf/fsetexcptflg.c: Likewise.
- * sysdeps/riscv/rvf/ftestexcept.c: Likewise.
- * sysdeps/riscv/rvf/get-rounding-mode.h: Likewise.
- * sysdeps/riscv/rvf/math_private.h: Likewise.
- * sysdeps/riscv/rvf/s_ceilf.c: Likewise.
- * sysdeps/riscv/rvf/s_copysignf.c: Likewise.
- * sysdeps/riscv/rvf/s_finitef.c: Likewise.
- * sysdeps/riscv/rvf/s_floorf.c: Likewise.
- * sysdeps/riscv/rvf/s_fmaf.c: Likewise.
- * sysdeps/riscv/rvf/s_fmaxf.c: Likewise.
- * sysdeps/riscv/rvf/s_fminf.c: Likewise.
- * sysdeps/riscv/rvf/s_fpclassifyf.c: Likewise.
- * sysdeps/riscv/rvf/s_isinff.c: Likewise.
- * sysdeps/riscv/rvf/s_isnanf.c: Likewise.
- * sysdeps/riscv/rvf/s_issignalingf.c: Likewise.
- * sysdeps/riscv/rvf/s_nearbyintf.c: Likewise.
- * sysdeps/riscv/rvf/s_rintf.c: Likewise.
- * sysdeps/riscv/rvf/s_roundevenf.c: Likewise.
- * sysdeps/riscv/rvf/s_roundf.c: Likewise.
- * sysdeps/riscv/rvf/s_truncf.c: Likewise.
- * sysdeps/riscv/nptl/bits/pthreadtypes-arch.h: New file.
- * sysdeps/riscv/nptl/bits/semaphore.h: Likewise.
- * sysdeps/riscv/nptl/libc-lowlevellock.c: Likewise.
- * sysdeps/unix/sysv/linux/riscv/atomic-machine.h: Likewise.
- * sysdeps/riscv/nptl/nptl-sysdep.S: New file.
- * sysdeps/unix/sysv/linux/riscv/arch-fork.h: Likewise.
- * sysdeps/unix/sysv/linux/riscv/clone.S: Likewise.
- * sysdeps/unix/sysv/linux/riscv/profil-counter.h: Likewise.
- * sysdeps/unix/sysv/linux/riscv/pt-vfork.S: Likewise.
- * sysdeps/unix/sysv/linux/riscv/syscall.c: Likewise.
- * sysdeps/unix/sysv/linux/riscv/sysdep.S: Likewise.
- * sysdeps/unix/sysv/linux/riscv/sysdep.h: Likewise.
- * sysdeps/unix/sysv/linux/riscv/vfork.S: Likewise.
- * sysdeps/riscv/nptl/pthread-offsets.h: New file.
- * sysdeps/riscv/nptl/pthreaddef.h: Likewise.
- * sysdeps/unix/sysv/linux/riscv/bits/fcntl.h: Likewise.
- * sysdeps/unix/sysv/linux/riscv/bits/mman.h: Likewise.
- * sysdeps/unix/sysv/linux/riscv/bits/sigcontext.h: Likewise.
- * sysdeps/unix/sysv/linux/riscv/dl-cache.h: Likewise.
- * sysdeps/unix/sysv/linux/riscv/flush-icache.c: Likewise.
- * sysdeps/unix/sysv/linux/riscv/getcontext.S: Likewise.
- * sysdeps/unix/sysv/linux/riscv/init-first.c: Likewise.
- * sysdeps/unix/sysv/linux/riscv/libc-vdso.h: Likewise.
- * sysdeps/unix/sysv/linux/riscv/makecontext.c: Likewise.
- * sysdeps/unix/sysv/linux/riscv/readelflib.c: Likewise.
- * sysdeps/unix/sysv/linux/riscv/register-dump.h: Likewise.
- * sysdeps/unix/sysv/linux/riscv/setcontext.S: Likewise.
- * sysdeps/unix/sysv/linux/riscv/sigcontextinfo.h: Likewise.
- * sysdeps/unix/sysv/linux/riscv/swapcontext.S: Likewise.
- * sysdeps/unix/sysv/linux/riscv/sys/cachectl.h: Likewise.
- * sysdeps/unix/sysv/linux/riscv/sys/procfs.h: Likewise.
- * sysdeps/unix/sysv/linux/riscv/sys/ucontext.h: Likewise.
- * sysdeps/unix/sysv/linux/riscv/sys/user.h: Likewise.
- * sysdeps/unix/sysv/linux/riscv/ucontext-macros.h: Likewise.
- * sysdeps/unix/sysv/linux/riscv/ucontext_i.sym: Likewise.
- * sysdeps/unix/sysv/linux/riscv/dl-static.c: New file.
- * sysdeps/unix/sysv/linux/riscv/ldconfig.h: Likewise.
- * sysdeps/unix/sysv/linux/riscv/ldsodefs.h: Likewise.
- * sysdeps/riscv/nofpu/libm-test-ulps: New file.
- * sysdeps/riscv/nofpu/libm-test-ulps-name: Likewise.
- * sysdeps/riscv/rv64/rvd/libm-test-ulps: Likewise.
- * sysdeps/riscv/rv64/rvd/libm-test-ulps-name: Likewise.
- * sysdeps/unix/sysv/linux/riscv/localplt.data: Likewise.
- * sysdeps/unix/sysv/linux/riscv/rv64/c++-types.data: Likewise.
- * sysdeps/unix/sysv/linux/riscv/rv64/ld.abilist: Likewise.
- * sysdeps/unix/sysv/linux/riscv/rv64/libanl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/riscv/rv64/libnsl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist: Likewise.
- * sysdeps/unix/sysv/linux/riscv/rv64/libutil.abilist: Likewise.
- * sysdeps/riscv/Implies: New file.
- * sysdeps/riscv/Makefile: Likewise.
- * sysdeps/riscv/configure: Likewise.
- * sysdeps/riscv/configure.ac: Likewise.
- * sysdeps/riscv/nptl/Makefile: Likewise.
- * sysdeps/riscv/preconfigure: Likewise.
- * sysdeps/riscv/rv64/Implies-after: Likewise.
- * sysdeps/riscv/rv64/rvd/Implies: Likewise.
- * sysdeps/riscv/rv64/rvf/Implies: Likewise.
- * sysdeps/unix/sysv/linux/riscv/Implies: Likewise.
- * sysdeps/unix/sysv/linux/riscv/Makefile: Likewise.
- * sysdeps/unix/sysv/linux/riscv/Versions: Likewise.
- * sysdeps/unix/sysv/linux/riscv/configure: Likewise.
- * sysdeps/unix/sysv/linux/riscv/configure.ac: Likewise.
- * sysdeps/unix/sysv/linux/riscv/ldd-rewrite.sed: Likewise.
- * sysdeps/unix/sysv/linux/riscv/rv64/Implies: Likewise.
- * sysdeps/unix/sysv/linux/riscv/rv64/Makefile: Likewise.
- * sysdeps/unix/sysv/linux/riscv/shlib-versions: Likewise.
- * scripts/build-many-glibcs.py (Context): Add RISC-V targets.
- (Config): Likewise.
-
-2018-01-29 Florian Weimer <fweimer@redhat.com>
-
- [BZ #22701]
- * include/rpcsvc/nislib.h (__nis_default_ttl): Add
- libnsl_hidden_proto.
- * include/rpcsvc/yp.h (yp_xdrall): Declare with
- libnsl_hidden_proto.
- * include/rpcsvc/ypclnt.h (yp_maplist): Likewise.
- * nis/Makefile (libnsl-routines): Add nss-default only for
- build-obsolete-nsl.
- * nis/nis_defaults.c (__nis_default_ttl): Add
- libnsl_hidden_nolink_def.
- * nis/rpcsvc/ypclnt.h (yp_maplist): Remove #ifdef'ed-out
- declaration.
- * nis/yp_xdr.c (xdr_ypall): Add libnsl_hidden_nolink_def.
- * nis/ypclnt.c (yp_maplist): Likewise.
-
-2018-01-29 Romain Naour <romain.naour@gmail.com> (tiny change)
-
- * sysdeps/unix/sysv/linux/microblaze/kernel-features.h
- (__ASSUME_COPY_FILE_RANGE) [__LINUX_KERNEL_VERSION < 0x040A00]: Undef.
-
-2018-01-29 Joseph Myers <joseph@codesourcery.com>
-
- * scripts/build-many-glibcs.py (Context.git_checkout): Use git
- clean -dxfq for git updates when replacing sources.
-
- * scripts/build-many-glibcs.py (Config.build_gcc): Use
- --disable-libcilkrts unconditionally, not just for the final GCC
- build for Hurd.
-
- * scripts/build-many-glibcs.py (Context.checkout): Default Linux
- version to 4.15.
-
-2018-01-29 Rafal Luzynski <digitalfreak@lingonborough.com>
-
- [BZ #10871]
- * localedata/locales/lt_LT (alt_mon): Import from CLDR (nominative
- case).
-
-2018-01-29 Rafal Luzynski <digitalfreak@lingonborough.com>
-
- [BZ #10871]
- * localedata/locales/be_BY (mon): Rename to...
- (alt_mon): This, then synchronize with CLDR (nominative case).
- (abmon): Rename to...
- (ab_alt_mon): This, then synchronize with CLDR (nominative case).
- (mon): Import from CLDR (genitive case).
- (abmon): Likewise.
- * localedata/locales/be_BY@latin (mon): Rename to...
- (alt_mon): This.
- (mon): Add, proper genitive forms provided by Viktar Siarheichyk.
-
- * localedata/locales/be_BY@latin (lang_name): Reworded to
- "biełaruskaja mova".
-
-2018-01-29 Rafal Luzynski <digitalfreak@lingonborough.com>
-
- [BZ #10871]
- * localedata/locales/el_CY (mon): Renamed to...
- (alt_mon): This.
- (mon): Import from CLDR (genitive case).
- * localedata/locales/el_GR: Likewise.
-
-2018-01-29 Rafal Luzynski <digitalfreak@lingonborough.com>
-
- [BZ #10871]
- * localedata/locales/ru_RU (mon): Rename to...
- (alt_mon): This.
- (abmon): Rename to...
- (ab_alt_mon): This.
- (mon): Import from CLDR (genitive case).
- (abmon): Copy from the old content except the 5th month which is
- now in the genitive case, even when abbreviated.
- * localedata/locales/ru_UA: Likewise.
- * time/tst-strptime.c (day_tests): Add an actual example of
- a difference between %b and %Ob in Russian.
-
-2018-01-27 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * sysdeps/mach/hurd/xmknodat.c: Include <sys/sysmacros.h>.
- * sysdeps/mach/hurd/profil.c: Reuse `a' variable instead of introducing
- a `c' variable.
- * resolv/res-close.c: Include <stdlib.h>.
- * sysdeps/generic/not-cancel.h: Include <fcntl.h>, <unistd.h>,
- <sys/wait.h>, <time.h>, <sys/uio.h>.
- (NOT_CANCEL_H): Add inclusion guard.
- * sysdeps/generic/sigset-cvt-mask.h: Include <sigsetops.h>.
- * sysdeps/generic/sigsetops.h (__sigemptyset, __sigfillset,
- __sigandset, __sigorset, __sigaddset, __sigdelset): Make them really
- return 0.
- * sysdeps/mach/hurd/dl-sysdep.c (_dl_sysdep_start): Cast
- vm_address_t * to ElfW(Addr) * for dl_main parameter.
- * sysdeps/pthread/posix-timer.h (timer_ptr2id): Cast to timer_t
- instead of void *.
- * sysdeps/pthread/timer_create.c (timer_create): Do not use
- timer_ptr2id to cast struct timer_node * to void *.
- * scripts/build-many-glibcs.py [os == gnu] (build_gcc): Pass
- --disable-libcilkrts to gcc configure.
- (checkout_vcs): Add mig and gnumach repository URLs, run autoreconf,
- and make them the default for now.
- * sysdeps/mach/hurd/Makefile [$(subdir)==nis]: Add
- -DUSE_BINDINGDIR=1 to CFLAGS-ypclnt.c.
- * mach/Machrules (MIGFLAGS): Do not set -DMACH_IPC_COMPAT=0.
- * mach/mach/mach_traps.h: Drop comment about MACH_IPC_COMPAT.
- * sysdeps/mach/hurd/fork.c (__fork): Drop special casing
- MACH_IPC_COMPAT.
- * sysdeps/mach/hurd/dl-sysdep.c (_exit): Call LOSE and abort() if
- __task_terminate would ever return successfully.
- * sysdeps/mach/hurd/profil.c (special_profil_failure): Move variable
- to global scope.
- * sysdeps/mach/pagecopy.h (PAGE_THRESHOLD): Rename to
- PAGE_COPY_THRESHOLD and set to benchmarked 16384.
- * sysdeps/mach/hurd/getresgid.c (__getresgid): Set result from
- critical section to make code simpler and avoid warning.
- * sysdeps/mach/hurd/getresuid.c (__getresuid): Set result from
- critical section to make code simpler and avoid warning.
- * sysdeps/mach/hurd/spawni.c (__spawni): Make relpath and abspath
- const char * instead of char *.
- * hurd/hurd/lookup.h (__hurd_file_name_lookup, hurd_file_name_lookup,
- __hurd_file_name_split, hurd_file_name_split,
- __hurd_directory_name_split, hurd_directory_name_split,
- __hurd_file_name_lookup_retry, hurd_file_name_lookup_retry,
- hurd_file_name_path_lookup): Make lookup function parameter take a
- const char *name instead of char *name.
- * hurd/hurdlookup.c (__hurd_file_name_lookup, __hurd_file_name_split,
- __hurd_directory_name_split): Likewise.
- * hurd/lookup-retry.c (__hurd_file_name_lookup_retry): Likewise.
- * hurd/path-lookup.c (hurd_file_name_path_lookup): Likewise.
- * sysdeps/mach/hurd/check_native.c: New file.
- * sysdeps/mach/hurd/check_pf.c: New file.
- * nscd/gai.c (__getifaddrs): Define macro to getifaddrs.
- (__freeifaddrs): Define macro to freeifaddrs.
- * sysdeps/mach/hurd/libhurduser.abilist: New file.
- * sysdeps/mach/libmachuser.abilist: New file.
- * libio/tst-memstream3.c (FWRITE): Rename to _FWRITE.
- (do_test_bz20181): Rename accordingly.
- * libio/tst-wmemstream3.c (FWRITE): Rename accordingly.
- * io/tst-copy_file_range.c [!defined CLONE_NEWNS]: Do not include
- <sys/mount.h>.
- * hurd/hurd.h (__hurd_fail): Always declare function, and provide inline
- version only if __USE_EXTERN_INLINES is defined.
- * hurd/hurd/fd.h (_hurd_fd_error_signal, _hurd_fd_error, __hurd_dfail,
- __hurd_sockfail): Likewise.
- (_hurd_fd_get): Always declare functions, and provide inline versions
- only if __USE_EXTERN_INLINES and _LIBC are defined and IS_IN(libc).
- * hurd/hurd/port.h (_hurd_port_init, _hurd_port_locked_get,
- _hurd_port_get, _hurd_port_free, _hurd_port_locked_set,
- _hurd_port_set): Always declare functions, and provide inline versions
- only if __USE_EXTERN_INLINES and _LIBC are defined and
- IS_IN(libc).
- * hurd/hurd/signal.h (_hurd_self_sigstate, _hurd_critical_section_lock,
- _hurd_critical_section_unlock): Likewise.
- * hurd/hurd/threadvar.h (__hurd_threadvar_location_from_sp,
- * __hurd_threadvar_location): Likewise.
- * hurd/hurd/userlink.h (_hurd_userlink_link, _hurd_userlink_unlink,
- _hurd_userlink_clear): Likewise.
- * mach/lock-intern.h (__spin_lock_init, __spin_lock, __mutex_lock,
- __mutex_unlock, __mutex_trylock): Always declare functions, and provide
- inline versions only if __USE_EXTERN_INLINES and _LIBC are defined.
- * mach/mach/mig_support.h (__mig_strncpy): Likewise.
- * sysdeps/generic/machine-lock.h (__spin_unlock, __spin_try_lock,
- __spin_lock_locked): Likewise.
- * sysdeps/mach/i386/machine-lock.h (__spin_unlock, __spin_try_lock,
- __spin_lock_locked): Likewise.
- * mach/spin-lock.c (__USE_EXTERN_INLINES): Define to 1.
- * hurd/Versions (libc: GLIBC_2.27): Add _hurd_fd_error_signal,
- _hurd_fd_error, __hurd_dfail, __hurd_sockfail, _hurd_port_locked_set,
- __hurd_threadvar_location_from_sp, __hurd_threadvar_location,
- _hurd_userlink_link, _hurd_userlink_unlink, _hurd_userlink_clear.
- * sysdeps/mach/hurd/bits/posix_opt.h (_POSIX_CHOWN_RESTRICTED,
- _POSIX_NO_TRUNC): Define to 0.
- * sysdeps/pthread/allocalim.h [!defined PTHREAD_STACK_MIN]: Do not
- check size against PTHREAD_STACK_MIN.
- * hurd/hurd/signal.h [__USE_EXTERN_INLINES][_LIBC][IS_IN(libc) ||
- IS_IN(libpthread)]: Include <sigsetops.h>.
- * mach/Makefile (user-interfaces): Add mach/gnumach.
- * sysdeps/mach/configure.ac (mach_interface_list): Add gnumach.
- * sysdeps/mach/configure (mach_interface_list): Regenerate.
- * sysdeps/mach/hurd/bits/posix_opt.h (_POSIX_VDISABLE): Set to '\0'
- instead of invalid -1.
- * sysdeps/mach/hurd/net/ethernet.h: Include <stdint.h>.
- * sysdeps/mach/hurd/net/if_arp.h: Include <stdint.h>.
- * sysdeps/mach/hurd/net/if_ppp.h: Do not include non-existing
- <net/ppp_defs.h>.
-
-2018-01-27 Thomas Schwinge <tschwinge@gnu.org>
-
- * hurd/fcntl-internal.h: New file.
-
-2018-01-27 James Clarke <jrtc27@jrtc27.com>
-
- * sysdeps/hppa/fpu/libm-test-ulps: Update.
-
- * sysdeps/alpha/fpu/libm-test-ulps: Update.
-
-2018-01-26 Andreas Schwab <schwab@linux-m68k.org>
-
- [BZ #22701]
- * nis/Makefile (libnsl-inhibit-o) [$(build-obsolete-nsl) != yes]:
- Build only shared objects.
-
-2018-01-26 Carlos O'Donell <carlos@redhat.com>
-
- * README: Update for hppa.
-
-2018-01-26 Patrick McGehearty <patrick.mcgehearty@oracle.com>
-
- * sysdeps/sparc/fpu/libm-test-ulps: Update
- cpow, ctan, ctanh, j0, j1, y0, yn ulps.
-
-2018-01-26 Carlos O'Donell <carlos@redhat.com>
-
- Revert:
-
- 2017-12-19 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #22563]
- * sysdeps/i386/nptl/tcb-offsets.sym (FEATURE_1_OFFSET): New.
- * sysdeps/i386/nptl/tls.h (tcbhead_t): Add feature_1.
- * sysdeps/x86_64/nptl/tcb-offsets.sym (FEATURE_1_OFFSET): New.
- * sysdeps/x86_64/nptl/tls.h (tcbhead_t): Rename __glibc_unused1
- to feature_1.
-
- 2017-12-19 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #22563]
- * bits/types/__cancel_jmp_buf_tag.h: New file.
- * sysdeps/unix/sysv/linux/x86/bits/types/__cancel_jmp_buf_tag.h
- * sysdeps/unix/sysv/linux/x86/pthreaddef.h: Likewise.
- * sysdeps/unix/sysv/linux/x86/nptl/pthreadP.h: Likewise.
- * nptl/Makefile (headers): Add
- bits/types/__cancel_jmp_buf_tag.h.
- * nptl/descr.h [NEED_SAVED_MASK_IN_CANCEL_JMP_BUF]
- (pthread_unwind_buf): Add saved_mask to cancel_jmp_buf.
- * sysdeps/nptl/pthread.h: Include
- <bits/types/__cancel_jmp_buf_tag.h>.
- (__pthread_unwind_buf_t): Use struct __cancel_jmp_buf_tag with
- __cancel_jmp_buf.
- * sysdeps/unix/sysv/linux/hppa/pthread.h: Likewise.
-
-2018-01-25 Rafal Luzynski <digitalfreak@lingonborough.com>
-
- [BZ #10871]
- * localedata/locales/uk_UA (mon): Renamed to...
- (alt_mon): This.
- (alt_digits): "0" removed and then renamed to...
- (mon): This.
- (date_fmt): Definition changed not to use the alternative
- digits hack.
-
-2018-01-25 Palmer Dabbelt <palmer@sifive.com>
-
- * elf/cache.c (print_entry): Add FLAG_RISCV_FLOAT_ABI_SOFT and
- FLAG_RISCV_FLOAT_ABI_DOUBLE.
- * elf/elf.h (EF_RISCV_RVC): New define.
- (EF_RISCV_FLOAT_ABI): Likewise.
- (EF_RISCV_FLOAT_ABI_SOFT): Likewise.
- (EF_RISCV_FLOAT_ABI_SINGLE): Likewise.
- (EF_RISCV_FLOAT_ABI_DOUBLE): Likewise.
- (EF_RISCV_FLOAT_ABI_QUAD): Likewise.
- * sysdeps/generic/ldconfig.h (FLAG_RISCV_FLOAT_ABI_SOFT): New
- define.
- (FLAG_RISCV_FLOAT_ABI_DOUBLE): Likewise.
-
-2018-01-25 Andreas Schwab <schwab@suse.de>
-
- * aclocal.m4 (LIBC_SLIBDIR_RTLDDIR): Consistently put arguments in
- single quotes.
- * sysdeps/gnu/configure: Regenerate.
- * sysdeps/unix/sysv/linux/aarch64/configure: Regenerate.
- * sysdeps/unix/sysv/linux/mips/configure: Regenerate.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/configure: Regenerate.
- * sysdeps/unix/sysv/linux/s390/s390-64/configure: Regenerate.
- * sysdeps/unix/sysv/linux/sparc/sparc64/configure: Regenerate.
- * sysdeps/unix/sysv/linux/tile/configure: Regenerate.
- * sysdeps/unix/sysv/linux/x86_64/64/configure: Regenerate.
- * sysdeps/unix/sysv/linux/x86_64/x32/configure: Regenerate.
-
-2018-01-25 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * scripts/build-many-glibcs.py (checkout_vcs): Add hurd repository
- URL, and run autoconf, make it the default for now.
-
-2018-01-24 Joseph Myers <joseph@codesourcery.com>
-
- * scripts/build-many-glibcs.py (Context.add_all_configs): Add
- soft-float ColdFire configuration.
-
- * sysdeps/unix/sysv/linux/m68k/localplt.data: Move to ....
- * sysdeps/unix/sysv/linux/m68k/m680x0/localplt.data: ... here.
- * sysdeps/unix/sysv/linux/m68k/coldfire/localplt.data: New file.
-
- * sysdeps/m68k/coldfire/nofpu/math_private.h: New file. Based on
- MicroBlaze file.
-
- * sysdeps/unix/sysv/linux/m68k/coldfire/jmp_buf-macros.h: Move to
- ....
- * sysdeps/unix/sysv/linux/m68k/coldfire/fpu/jmp_buf-macros.h:
- ... here.
- * sysdeps/unix/sysv/linux/m68k/coldfire/nofpu/jmp_buf-macros.h:
- New file.
-
- * sysdeps/unix/sysv/linux/m68k/jmp_buf-macros.h: Move to ....
- * sysdeps/unix/sysv/linux/m68k/m680x0/jmp_buf-macros.h: ... here.
- * sysdeps/unix/sysv/linux/m68k/coldfire/jmp_buf-macros.h: New
- file.
-
-2018-01-24 Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- [BZ #22742]
- * sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h (__glibc_reserved1):
- Rename to __reserved and add comment.
- * sysdeps/unix/sysv/linux/aarch64/ucontext_i.sym (__glibc_reserved1):
- Rename to __reserved.
-
-2018-01-24 Joseph Myers <joseph@codesourcery.com>
-
- * scripts/build-many-glibcs.py (Context.add_all_configs): Add
- i686-gnu configurations.
- (Context.run_builds): Include mig, gnumach and hurd in components
- considered.
- (Context.checkout): Add mig, gnumach and hurd to components.
- (Context.checkout_tar): Add URL mappings for mig, gnumach and
- hurd.
- (Context.bot_cycle): Check for changes to mig, gnumach and hurd.
- (Config.build): Install gnumach headers, build mig and install
- hurd headers for 'gnu' OS.
- (Config.install_gnumach_headers): New function.
- (Config.install_hurd_headers): Likewise.
- (Glibc.build_glibc): Do not use /usr for 'gnu' OS. Specifiy MIG
- when building for 'gnu' OS.
-
-2018-01-23 Tobias Klauser <tklauser@distanz.ch>
-
- * manual/tunables.texi (Hardware Capability Tunables): Fix
- spelling.
-
-2018-01-22 Rical Jasan <ricaljasan@pacific.net>
-
- * manual/locale.texi (ALTMON_1, ALTMON_2, ALTMON_3, ALTMON_4)
- (ALTMON_5, ALTMON_6, ALTMON_7, ALTMON_8, ALTMON_9, ALTMON_10)
- (ALTMON_11, ALTMON_12): Improve documentation.
- * manual/time.texi (strftime): Likewise.
-
-2018-01-22 Rafal Luzynski <digitalfreak@lingonborough.com>
-
- [BZ #10871]
- * localedata/locales/pl_PL: Alternative month names added,
- primary month names are genitive now.
- * time/tst-strptime.c (day_tests): Actually use a genitive case
- of a month name in Polish language.
-
-2018-01-22 Rafal Luzynski <digitalfreak@lingonborough.com>
-
- [BZ #10871]
- * manual/locale.texi: Document ALTMON_1..12 constants for
- nl_langinfo. Specify when to use ALTMON instead of MON.
- * manual/time.texi (strftime, strptime): Document GNU extension
- permitting O modifier with %B and %b. Specify when to use
- %OB instead of %B.
-
-2018-01-22 Rafal Luzynski <digitalfreak@lingonborough.com>
-
- [BZ #10871]
- * locale/C-time.c (_nl_C_LC_TIME): Add abbreviated alternative month
- names, define them as the same as abbreviated month names explicitly.
- * locale/categories.def (LC_TIME): Add ab_alt_mon and wide-ab_alt_mon.
- * locale/langinfo.h: (_NL_ABALTMON_1, _NL_ABALTMON_2, _NL_ABALTMON_3,
- _NL_ABALTMON_4, _NL_ABALTMON_5, _NL_ABALTMON_6, _NL_ABALTMON_7,
- _NL_ABALTMON_8, _NL_ABALTMON_9, _NL_ABALTMON_10, _NL_ABALTMON_11,
- _NL_ABALTMON_12, _NL_WABALTMON_1, _NL_WABALTMON_2, _NL_WABALTMON_3,
- _NL_WABALTMON_4, _NL_WABALTMON_5, _NL_WABALTMON_6, _NL_WABALTMON_7,
- _NL_WABALTMON_8, _NL_WABALTMON_9, _NL_WABALTMON_10, _NL_WABALTMON_11,
- _NL_WABALTMON_12): New enum constants.
- * locale/programs/ld-time.c (struct locale_time_t): Add ab_alt_mon,
- wab_alt_mon, and ab_alt_mon_defined members.
- (time_output): Output ab_alt_mon and wab_alt_mon members.
- (time_read): Read them, initialize them as copies of abmon and wabmon
- respectively if they are missing, initialize ab_alt_mon_defined.
- * locale/programs/locfile-kw.gperf (ab_alt_mon): Define.
- * locale/programs/locfile-kw.h: Regenerate.
- * locale/programs/locfile-token.h (tok_ab_alt_mon): New enum constant.
- * time/Makefile [$(run-built-tests) = yes] (LOCALES): Add es_ES.UTF-8
- and ru_RU.UTF-8.
- * time/strftime_l.c (a_altmonth, aam_len): New macros.
- [!COMPILE_WIDE] (ABALTMON_1): New macro.
- (__strftime_internal): Handle %Ob and %Oh formats.
- * time/strptime_l.c [_LIBC] (ab_alt_month_name): New macro.
- (__strptime_internal): Handle %Ob and %Oh formats.
- * 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 <digitalfreak@lingonborough.com>
-
- [BZ #10871]
- * locale/C-time.c (_nl_C_LC_TIME): Add alternative month names,
- define them as the same as primary full month names explicitly.
- * locale/categories.def (LC_TIME): Add alt_mon and wide-alt_mon.
- * locale/langinfo.h (__ALTMON_1, __ALTMON_2, __ALTMON_3, __ALTMON_4,
- __ALTMON_5, __ALTMON_6, __ALTMON_7, __ALTMON_8, __ALTMON_9, __ALTMON_10,
- __ALTMON_11, __ALTMON_12, _NL_WALTMON_1, _NL_WALTMON_2, _NL_WALTMON_3,
- _NL_WALTMON_4, _NL_WALTMON_5, _NL_WALTMON_6, _NL_WALTMON_7,
- _NL_WALTMON_8, _NL_WALTMON_9, _NL_WALTMON_10, _NL_WALTMON_11,
- _NL_WALTMON_12): New enum constants.
- [__USE_GNU] (ALTMON_1, ALTMON_2, ALTMON_3, ALTMON_4, ALTMON_5, ALTMON_6,
- ALTMON_7, ALTMON_8, ALTMON_9, ALTMON_10, ALTMON_11, ALTMON_12): New
- macros.
- * locale/programs/ld-time.c (struct locale_time_t): Add alt_mon,
- walt_mon, and alt_mon_defined members.
- (time_output): Output alt_mon and walt_mon members.
- (time_read): Read them, initialize them as copies of mon and wmon
- respectively if they are missing, initialize alt_mon_defined.
- * locale/programs/locfile-kw.gperf (alt_mon): Define.
- * locale/programs/locfile-kw.h: Regenerate.
- * locale/programs/locfile-token.h (tok_alt_mon): New enum constant.
- * localedata/tst-langinfo.c (map): Add tests for the new constants
- ALTMON_1 .. ALTMON_12.
- * time/Makefile [$(run-built-tests) = yes] (LOCALES): Add fr_FR.UTF-8
- and pl_PL.UTF-8.
- * time/strftime_l.c (f_altmonth): New macro.
- (__strftime_internal): Handle %OB format.
- * time/strptime_l.c [_LIBC] (alt_month_name): New macro.
- (__strptime_internal): Handle %OB format.
- * time/tst-strptime.c (day_tests): Add tests to parse different forms
- of month names including the new %OB format specifier.
-
-2018-01-19 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
-
- [BZ #22685]
- * sysdeps/powerpc/powerpc32/sysdep.h (ABORT_TRANSACTION_IMPL): Renamed
- from ABORT_TRANSACTION.
- (ABORT_TRANSACTION): Redirect to ABORT_TRANSACTION_IMPL.
- * sysdeps/powerpc/powerpc64/sysdep.h (ABORT_TRANSACTION,
- ABORT_TRANSACTION_IMPL): Likewise.
- * sysdeps/unix/sysv/linux/powerpc/not-errno.h: New file. Reuse
- Linux code, but remove the code that aborts transactions.
-
-2018-01-19 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * sysdeps/generic/netinet/if_ether.h: Include <stdint.h>.
-
-2018-01-19 Rafal Luzynski <digitalfreak@lingonborough.com>
-
- * localedata/locales/gu_IN (LC_IDENTIFICATION): Fix an obvious typo
- in date: "2004-14-09" should be "2004-09-14".
- * localedata/locales/lo_LA: Fix an obvious typo in date in the header:
- "2003-15-09" should be "2003-09-15".
-
-2018-01-18 Arjun Shankar <arjun@redhat.com>
-
- [BZ #22343]
- [BZ #22774]
- CVE-2018-6485
- CVE-2018-6551
- * malloc/malloc.c (checked_request2size): call REQUEST_OUT_OF_RANGE
- after padding.
- (_int_memalign): check for integer overflow before calling
- _int_malloc.
- * malloc/tst-malloc-too-large.c: New test.
- * malloc/Makefile: Add tst-malloc-too-large.
-
-2018-01-18 Rafal Luzynski <digitalfreak@lingonborough.com>
-
- * localedata/locales/bho_NP (LC_IDENTIFICATION): Fix an obvious typo
- in date: "2017-24-07" should be "2017-07-24".
- * localedata/locales/mai_IN: Likewise.
- * localedata/locales/mai_NP: Likewise.
-
-2018-01-17 Dmitry V. Levin <ldv@altlinux.org>
-
- * po/ru.po: Update translations.
-
-2018-01-17 Joseph Myers <joseph@codesourcery.com>
-
- [BZ #22719]
- * sysdeps/hppa/backtrace.c: New file.
-
-2018-01-17 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #22715]
- * sysdeps/x86_64/dl-trampoline.h (_dl_runtime_profile): Properly
- align La_x86_64_retval to VEC_SIZE.
-
-2018-01-16 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/x86_64/backtrace.c: Include <gnu/lib-names.h>.
- (init): Use LIBGCC_S_SO not hardcoded "libgcc_s.so.1".
-
-2018-01-16 Florian Weimer <fweimer@redhat.com>
-
- * nptl/Makefile [$(have-cxx-thread_local)] (tests-unsupported):
- Move tst-thread-exit-clobber ...
- [$(CXX)] (tests-unsupported): ... to here.
-
-2018-01-16 Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- * sysdeps/unix/sysv/linux/aarch64/bits/hwcap.h (HWCAP_SHA3): Define.
- (HWCAP_SM3, HWCAP_SM4, HWCAP_ASIMDDP, HWCAP_SHA512, HWCAP_SVE): Define.
- * sysdeps/unix/sysv/linux/aarch64/dl-procinfo.c
- (_dl_aarch64_cap_flags): Update.
- (_DL_HWCAP_COUNT): Update.
-
-2018-01-16 Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- * sysdeps/unix/sysv/linux/aarch64/dl-procinfo.h
- (_DL_HWCAP_LAST): Remove.
- (_DL_HWCAP_COUNT): Move to ...
- * sysdeps/unix/sysv/linux/aarch64/dl-procinfo.c
- (_DL_HWCAP_COUNT): ... here.
-
-2018-01-16 Florian Weimer <fweimer@redhat.com>
-
- * nptl/Makefile (CFLAGS-tst-minstack-throw.o): Compile in C++11
- mode with GNU extensions.
-
-2018-01-15 Alan Hayward <alan.hayward@arm.com>
-
- * elf/elf.h (NT_ARM_SVE): Define.
-
-2018-01-15 Florian Weimer <fweimer@redhat.com>
-
- [BZ #22636]
- * nptl/tst-minstack-throw.cc: New file.
- * nptl/Makefile (tests): Add tst-minstack-throw.
- (LDLIBS-tst-minstack-throw): Link with libstdc++.
- [!CXX] (tests-unsupported): Add tst-minstack-throw.
-
-2018-01-15 Joseph Myers <joseph@codesourcery.com>
-
- * scripts/build-many-glibcs.py (Context.checkout): Default
- binutils version to 2.30 branch, MPFR version to 4.0.0 and MPC
- version to 1.1.0.
-
-2018-01-13 Carlos O'Donell <carlos@redhat.com>
-
- [BZ #22707]
- * elf/elf.h (DF_1_STUB): Define.
- (DF_1_PIE): Define.
-
-2018-01-12 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
-
- [BZ #22697]
- * sysdeps/powerpc/powerpc32/power4/fpu/s_llround.S (__llround):
- Do not add 0.5 to integer or out-of-range arguments.
-
-2018-01-12 Dmitry V. Levin <ldv@altlinux.org>
-
- * po/bg.po: Update translations.
- * po/cs.po: Likewise.
- * po/de.po: Likewise.
- * po/ko.po: Likewise.
- * po/pl.po: Likewise.
- * po/sv.po: Likewise.
- * po/uk.po: Likewise.
- * po/vi.po: Likewise.
-
-2018-01-12 Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- * aarch64/start.S (_start): Use __wrap_main.
- (__wrap_main): New local symbol.
-
-2018-01-12 Dmitry V. Levin <ldv@altlinux.org>
-
- [BZ #22679]
- CVE-2018-1000001
- * sysdeps/unix/sysv/linux/getcwd.c (__getcwd): Fall back to
- generic_getcwd if the path returned by getcwd syscall is not absolute.
- * io/tst-getcwd-abspath.c: New test.
- * io/Makefile (tests): Add tst-getcwd-abspath.
-
-2018-01-12 Istvan Kurucsai <pistukem@gmail.com>
-
- * malloc/malloc.c (malloc_consolidate): Add size check.
-
-2018-01-12 Florian Weimer <fweimer@redhat.com>
-
- * support/write_message.c (write_message): Preserve errno.
- * support/check.c (print_failure): Likewise.
- * support/support_test_verify_impl.c (support_test_verify_impl):
- Likewise.
- * support/support_test_compare_failure.c
- (support_test_compare_failure): Likewise.
-
-2018-01-12 Florian Weimer <fweimer@redhat.com>
-
- [BZ #22701]
- * nis/Makefile (install-lib-ldscripts, $(inst_libdir)/libnsl.so):
- Prevent installation of libnsl.so.
- (libnsl-inhibit-o): Do not build (or install) static libraries.
-
-2018-01-12 Egmont Koblinger <egmont@gmail.com>
-
- [BZ #22657]
- * localedata/locales/hu_HU (d_t_fmt): Avoid a leading space
- before the day number which may produce a double space.
- (date_fmt): Likewise.
-
-2018-01-12 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/s390/fpu/feholdexcpt.c (__feholdexcept): Call __fegetenv
- instead of fegetenv.
-
-2018-01-11 Joseph Myers <joseph@codesourcery.com>
-
- [BZ #22702]
- * sysdeps/generic/math_private.h (libc_feresetround_noex): Update
- comment to say exceptions are discarded.
- (libc_feholdsetround_noex_ctx): Use __feholdexcept instead of
- __fegetenv.
- (SET_RESTORE_ROUND_NOEX): Update comment to say non-stop mode must
- be enabled.
-
-2018-01-11 Florian Weimer <fweimer@redhat.com>
-
- * sysdeps/gnu/unwind-resume.c (__libgcc_s_init): Update comment
- and error message.
-
-2018-01-11 Florian Weimer <fweimer@redhat.com>
-
- [BZ #22636]
- * nptl/Makefile (tests): Add tst-minstack-cancel, tst-minstack-exit.
- * nptl/tst-minstack-cancel.c, nptl/tst-minstack-exit.c: New files.
-
-2018-01-10 Joseph Myers <joseph@codesourcery.com>
-
- [BZ #22693]
- * sysdeps/ieee754/ldbl-128ibm/s_log1pl.c (__log1pl): Handle
- negative arguments in test for NaN or infinity argument.
-
-2018-01-10 Dmitry V. Levin <ldv@altlinux.org>
-
- * po/libc.pot: Regenerate.
-
-2018-01-10 Florian Weimer <fweimer@redhat.com>
-
- [BZ #22636]
- * sysdeps/nptl/unwind-forcedunwind.c (pthread_cancel_init): Open
- libgcc.so with RTLD_NOW, to avoid lazy binding during unwind.
-
-2018-01-10 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * hurd/hurd/fd.h: Include <fcntl.h>
- (__hurd_at_flags): New function.
- * hurd/lookup-at.c (__file_name_lookup_at): Replace flag computation
- with call to __hurd_at_flags.
- * include/unistd.h (__faccessat, __faccessat_noerrno): Add declaration.
- * sysdeps/mach/hurd/access.c (access_common): Move implementation to
- __faccessat
- (hurd_fail_seterrno, hurd_fail_noerrno): Move to sysdeps/mach/hurd/faccessat.c.
- (__access_noerrno): Use __faccessat_common instead of access_common.
- (__access): Likewise.
- * sysdeps/mach/hurd/euidaccess.c (__euidaccess): Replace implementation
- with a call to __faccessat.
- * sysdeps/mach/hurd/faccessat.c (faccessat): Rename into...
- (__faccessat_common): ... this. Move implementation of __access into it when
- AT_FLAGS does not contain AT_EACCESS. Make it call __hurd_at_flags, add
- reauthenticate_cwdir_at helper to implement AT mechanism.
- (__faccessat_noerrno): New function, just calls __faccessat_common.
- (__faccessat): New function, just calls __faccessat_common.
- (faccessat): Define weak alias.
-
-2018-01-10 Joseph Myers <joseph@codesourcery.com>
-
- [BZ #22691]
- * sysdeps/powerpc/nofpu/Makefile [$(subdir) = math]
- (CFLAGS-s_fmaxmagl.c): New variable.
- [$(subdir) = math] (CFLAGS-s_fminmagl.c: Likewise.
-
- [BZ #22690]
- * sysdeps/ieee754/ldbl-128ibm/s_lrintl.c (__lrintl): Use unsigned
- long int for arguments of possibly overflowing addition or
- subtraction.
- * sysdeps/ieee754/ldbl-128ibm/s_lroundl.c (__lroundl): Likewise.
-
-2018-01-09 Joseph Myers <joseph@codesourcery.com>
-
- [BZ #22688]
- * sysdeps/powerpc/nofpu/Makefile [$(subdir) = math]
- (CFLAGS-e_remainderl.c): New variable.
-
- [BZ #22687]
- * sysdeps/powerpc/nofpu/Makefile (CFLAGS-s_cacosl.c): New
- variable.
- (CFLAGS-s_cacoshl.c): Likewise.
- (CFLAGS-s_casinhl.c): Likewise.
- (CFLAGS-s_catanl.c): Likewise.
- (CFLAGS-s_catanhl.c): Likewise.
- (CFLAGS-s_cexpl.c): Likewise.
- (CFLAGS-s_ccoshl.c): Add -fsignaling-nans.
- (CFLAGS-s_csinhl.c): Likewise.
- (CFLAGS-s_clogl.c): Likewise.
- (CFLAGS-s_clog10l.c): Likewise.
- (CFLAGS-s_csinl.c): Likewise.
- (CFLAGS-s_csqrtl.c): Likewise.
-
-2017-01-09 Emilio Pozuelo Monfort <pochu27@gmail.com>
-2017-01-09 Svante Signell <svante.signell@gmail.com>
-
- * hurd/hurdexec.c (_hurd_exec): Deprecate function.
- (_hurd_exec_paths): New function.
- * hurd/hurd.h (_hurd_exec): Deprecate function.
- (_hurd_exec_paths): Declare function.
- * hurd/Versions: Export _hurd_exec_paths.
- * sysdeps/mach/hurd/execve.c: Include <stdlib.h> and <stdio.h>
- (__execve): Use __getcwd to build absolute path, and use
- _hurd_exec_paths instead of _hurd_exec.
- * sysdeps/mach/hurd/spawni.c: Likewise.
- * sysdeps/mach/hurd/fexecve.c: Use _hurd_exec_paths instead of
- _hurd_exec.
-
-2018-01-08 Dmitry V. Levin <ldv@altlinux.org>
-
- * sysdeps/unix/sysv/linux/tst-ttyname.c (do_in_chroot_1): Skip the
- test instead of failing in case of ENOENT returned by posix_openpt.
-
-2018-01-08 Florian Weimer <fweimer@redhat.com>
-
- resolv: Support binary labels in test framework.
- * support/resolv_test.c (struct to_be_freed): Remove.
- (struct compressed_name): New.
- (allocate_compressed_name, ascii_tolower)
- (compare_compressed_name): New functions.
- (struct resolv_response_builder): Update type of
- compression_offsets for use with tsearch. Rempve to_be_freed.
- (response_push_pointer_to_free): Remove function.
- (resolv_response_add_name): Rewrite using struct compressed_name
- and tsearch instead of hsearch_r.
- (response_builder_allocate): Remove initialization of
- compression_offsets.
- (response_builder_free): Update for removal of to_be_freed. Use
- tdestroy instead of hdestroy_r.
- * resolv/Makefile (tests): Add tst-resolv-binary.
- (tst-resolv-binary): Link with -lresolv -lpthread.
-
-2018-01-08 Florian Weimer <fweimer@redhat.com>
-
- * support/check.h (TEST_COMPARE): Allow sign mismatch at compile
- time. Pass positive flag instead of negative flag to
- support_test_compare_failure.
- (support_test_compare_failure): Change negative parameter to
- positive.
- * support/support_test_compare_failure.c (report)
- (support_test_compare_failure): Likewise.
- * support/tst-test_compare.c (return_ssize_t, return_int): New.
- (do_test): Check int/size_t, ssize_t/size_t comparisons.
-
-2018-01-08 Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- [BZ #22637]
- * nptl/descr.h (stackblock, stackblock_size): Update comments.
- * nptl/allocatestack.c (allocate_stack): Add guardsize to stacksize.
- * nptl/nptl-init.c (__pthread_get_minstack): Remove guardsize from
- stacksize.
- * nptl/pthread_getattr_np.c (pthread_getattr_np): Likewise.
-
-2018-01-08 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/x86_64/fpu/multiarch/Makefile (libm-sysdep_routines):
- Add s_sincosf-sse2 and s_sincosf-fma.
- (CFLAGS-s_sincosf-fma.c): New.
- * sysdeps/x86_64/fpu/multiarch/s_sincosf-fma.c: New file.
- * sysdeps/x86_64/fpu/multiarch/s_sincosf-sse2.S: Likewise.
- * sysdeps/x86_64/fpu/multiarch/s_sincosf.c: Likewise.
- * sysdeps/x86_64/fpu/s_sincosf.S: Don't add alias if
- __sincosf is defined.
-
-2018-01-08 Florian Weimer <fweimer@redhat.com>
-
- * nptl/tst-thread-exit-clobber.cc: New file.
- * nptl/Makefile (CFLAGS-tst-thread-exit-clobber.o): Compile in
- C++11 mode.
- (LDLIBS-tst-thread-exit-clobber): Link with libstdc++.
- (tests): Add tst-thread-exit-clobber.
- [!CXX] (tests-unsupported): Add tst-thread-exit-clobber.
-
-2018-01-08 Florian Weimer <fweimer@redhat.com>
-
- * support/check.h (support_static_assert): Define.
- (TEST_COMPARE): Use it.
-
-2018-01-07 Aurelien Jarno <aurelien@aurel32.net>
-
- * sysdeps/unix/sysv/linux/getrlimit64 (getrlimit64)
- [!__RLIM_T_MATCHES_RLIM64_T]
- [!SHLIB_COMPAT (libc, GLIBC_2_1, GLIBC_2_2)]: Define as weak alias of
- __getrlimit64. Add libc_hidden_weak.
-
-2018-01-06 Palmer Dabbelt <palmer@sifive.com>
-
- * elf/elf.h (R_RISCV_NONE): New define.
- (R_RISCV_32): Likewise.
- (R_RISCV_64): Likewise.
- (R_RISCV_RELATIVE): Likewise.
- (R_RISCV_COPY): Likewise.
- (R_RISCV_JUMP_SLOT): Likewise.
- (R_RISCV_TLS_DTPMOD32): Likewise.
- (R_RISCV_TLS_DTPMOD64): Likewise.
- (R_RISCV_TLS_DTPREL32): Likewise.
- (R_RISCV_TLS_DTPREL64): Likewise.
- (R_RISCV_TLS_TPREL32): Likewise.
- (R_RISCV_TLS_TPREL64): Likewise.
- * Makerules (make-link-multidir): Make directories before linking into
- them.
- * sysdeps/unix/sysv/linux/dl-vdso.h (VDSO_NAME_LINUX_4_15): New
- define.
- (VDSO_HASH_LINUX_4_15): Likewise.
- * scripts/build-many-glibcs.py (class Glibc): Strip shared objects
- in subdirectories of lib.
- * nptl/Makefile (/librt.so): Always depend on
- "$(shared-thread-library)".
-
-2018-01-06 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * sysdeps/mach/hurd/i386/jmp_buf-macros.h: New file.
- * sysdeps/i386/dl-tlsdesc.S (_dl_tlsdesc_dynamic) [NO_RTLD_HIDDEN]: Call
- JUMPTARGET (___tls_get_addr) instead of HIDDEN_JUMPTARGET
- (___tls_get_addr).
- * sysdeps/x86_64/dl-tlsdesc.S (_dl_tlsdesc_dynamic): Likewise.
- * sysdeps/i386/fpu/libm-test-ulps: Regenerated for GCC 7 with
- "-O2 -march=i686".
- * posix/tst-glob_symlinks.c [!PATH_MAX]: Define PATH_MAX macro.
- * sysdeps/gnu/glob64.c (__glob): Define macro instead of glob macro.
- (__glob64): Define GLIBC_2_27 versioned symbol instead of glob64.
- * sysdeps/gnu/glob-lstat-compat.c: New file.
- * sysdeps/gnu/glob64-lstat-compat.c: New file.
- * sysdeps/posix/pwritev_common.c: Add PROT_READ to __mmap prot.
-
-2018-01-05 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
-
- * sysdeps/powerpc/powerpc64/dl-machine.c (_dl_reloc_overflow):
- Reserve 16 chars to reloc_addr before calling _itoa_word.
-
-2018-01-05 Aurelien Jarno <aurelien@aurel32.net>
-
- [BZ #22678]
- * sysdeps/unix/sysv/linux/prlimit.c (prlimit): Translate
- old_rlimit from RLIM64_INFINITY to RLIM_INFINITY.
-
- * sysdeps/unix/sysv/linux/tst-rlimit-infinity.c: New file.
- * sysdeps/unix/sysv/linux/Makefile (tests): Add tst-rlimit-infinity.
-
- * resource/tst-getrlimit.c: Add copyright header.
-
-2018-01-05 Aurelien Jarno <aurelien@aurel32.net>
- Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * sysdeps/unix/sysv/linux/getrlimit64.c [USE_VERSIONED_RLIMIT]: Do not
- define getrlimit and getrlimit64 as weak aliases of __getrlimit64.
- Define __GI_getrlimit64 as weak alias of __getrlimit64.
- [__RLIM_T_MATCHES_RLIM64_T]: Do not redefine SHLIB_COMPAT, use #elif
- instead.
- * sysdeps/unix/sysv/linux/setrlimit64.c [USE_VERSIONED_RLIMIT]: Do not
- define setrlimit and setrlimit64 as weak aliases of __setrlimit64.
- * sysdeps/unix/sysv/linux/alpha/bits/resource.h (RLIM_INFINITY,
- RLIM64_INFINITY): Fix values to match the kernel ones.
- * sysdeps/unix/sysv/linux/alpha/getrlimit64.c: Define
- USE_VERSIONED_RLIMIT. Rename __getrlimit64 into __old_getrlimit64 and
- provide it as getrlimit@@GLIBC_2_0 and getrlimit64@@GLIBC_2_1. Add a
- __getrlimit64 function and provide it as getrlimit@@GLIBC_2_27 and
- getrlimit64@@GLIBC_2_27.
- * sysdeps/unix/sysv/linux/alpha/setrlimit64.c: Ditto with setrlimit
- and setrlimit64.
- * sysdeps/unix/sysv/linux/alpha/libc.abilist (GLIBC_2.27): Add
- getrlimit, setrlimit, getrlimit64 and setrlimit64.
- * sysdeps/unix/sysv/linux/alpha/Versions (libc): Add getrlimit,
- setrlimit, getrlimit64 and setrlimit64.
-
-2018-01-05 Aurelien Jarno <aurelien@aurel32.net>
-
- [BZ #22648]
- * sysdeps/unix/sysv/linux/alpha/getrlimit64.c: New file.
- * sysdeps/unix/sysv/linux/alpha/setrlimit64.c: Ditto.
-
-2018-01-04 Joseph Myers <joseph@codesourcery.com>
-
- * malloc/tst-malloc-tcache-leak.c (TIMEOUT): Define to 50.
- * posix/tst-glob-tilde.c (TIMEOUT): Define to 200.
- * resolv/tst-resolv-res_ninit.c (TIMEOUT): Define to 50.
-
-2018-01-03 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- [BZ #15479]
- [BZ #22666]
- * sysdeps/alpha/fpu/s_trunc.c: Remove file.
- * sysdeps/alpha/fpu/s_truncf.c: Likewise.
-
- [BZ #15479]
- [BZ #22665]
- * sysdeps/alpha/fpu/s_ceil.c: Remove file.
- * sysdeps/alpha/fpu/s_ceilf.c: Likewise.
- * sysdeps/alpha/fpu/s_floor.c: Likewise.
- * sysdeps/alpha/fpu/s_floorf.c: Likewise.
-
-2018-01-04 Florian Weimer <fweimer@redhat.com>
-
- [BZ #22667]
- * sysdeps/unix/sysv/linux/i386/makecontext.S (__makecontext):
- Align the stack before calling exit.
- * stdlib/tst-makecontext-align.c: New file.
- * stdlib/Makefile (tests): Add tst-makecontext-align.
-
-2018-01-04 Florian Weimer <fweimer@redhat.com>
-
- Add support for calling dlvsym from libc.so.
- * include/dlfcn.h (__libc_dlvsym): Declare.
- * elf/Makefile (tests-static-internal): Add
- tst-libc_dlvsym-static.
- (tests-internal): Add tst-libc_dlvsym.
- (modules-names): Add tst-libc_dlvsym-dso.
- (tst-libc_dlvsym, tst-libc_dlvsym-static): Link with libdl.
- (tst-libc_dlvsym-dso.so): Link with libdl, libsupport.
- (tst-libc_dlvsym.out, tst-libc_dlvsym-static.out): The shared
- object tst-libc_dlvsym-dso.so needs to be built before running
- these tests.
- (tst-libc_dlvsym-static-ENV): Set LD_LIBRARY_PATH.
- * elf/Versions: Export __libc_dlvsym.
- * elf/dl-libc.c (struct do_dlvsym_args): New.
- (do_dlvsym, __libc_dlvsym): New functions.
- (struct dl_open_hook, _dl_open_hook): Add dlvsym member.
- (_dl_open_hook2): New variable.
- (__libc_register_dl_open_hook): Set it.
- * elf/tst-libc_dlvsym-dso.c: New file.
- * elf/tst-libc_dlvsym-static.c: Likewise.
- * elf/tst-libc_dlvsym.c: Likewise.
- * elf/tst-libc_dlvsym.h: Likewise.
-
-2018-01-03 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * support/support_enter_mount_namespace.c [!CLONE_NEWNS]: Do not
- include <sys/mount.h>.
-
-2018-01-02 Wilco Dijkstra <wdijkstr@arm.com>
-
- * math/math.h (math_errhandling): Set to 0 with __FAST_MATH__.
- Add __NO_MATH_ERRNO__ check.
-
-2018-01-02 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/mips/mips32/libm-test-ulps: Update.
- * sysdeps/mips/mips64/libm-test-ulps: Likewise.
-
-2018-01-02 Florian Weimer <fweimer@redhat.com>
-
- * misc/tst-pselect.c: Add copyright header.
-
-2018-01-02 Aurelien Jarno <aurelien@aurel32.net>
-
- * sysdeps/unix/sysv/linux/alpha/getrlimit64.c: Fix a typo in the
- comment.
- * sysdeps/unix/sysv/linux/alpha/setrlimit64.c: Fix a typo in the
- comment.
- (settrlimit): Rename into setrlimit.
- (__sttrlimit): Rename into __setrlimit.
-
- * sysdeps/unix/sysv/linux/alpha/getrlimit64.c (__old_getrlimit64):
- Drop __RLIM_T_MATCHES_RLIM64_T conditional as __old_getrlimit64 is
- never defined in that case.
-
-2018-01-02 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/powerpc/nofpu/libm-test-ulps: Update.
-
- * sysdeps/arm/libm-test-ulps: Update.
-
- * math/Makefile (run-regen-ulps): Add $(objpfx) to test name here.
- (regen-ulps): Use $(libm-tests) not $^ in shell loop.
-
-2018-01-02 Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>
-
- * NEWS: Add cosf and sincosf to list of optimized functions.
-
-2018-01-02 Aurelien Jarno <aurelien@aurel32.net>
-
- [BZ #22660]
- * sysdeps/alpha/fpu/s_fmax.S: Remove file.
- * sysdeps/alpha/fpu/s_fmaxf.S: Likewise.
- * sysdeps/alpha/fpu/s_fmin.S: Likewise.
- * sysdeps/alpha/fpu/s_fminf.S: Likewise.
-
-2018-01-01 Dmitry V. Levin <ldv@altlinux.org>
-
- [BZ #22433]
- * sysdeps/unix/sysv/linux/arm/sys/ptrace.h: New file.
-
- * elf/dl-load.c (decompose_rpath): Check for rpath emptiness before
- making a copy of it.
-
-2018-01-01 Joseph Myers <joseph@codesourcery.com>
-
- * manual/texinfo.tex: Update to version 2017-12-26.21 with
- trailing whitespace removed.
- * scripts/config.guess: Update to version 2018-01-01.
- * scripts/config.sub: Update to version 2018-01-01.
- * scripts/move-if-change: Update from gnulib.
-
- * NEWS: Update copyright dates.
- * catgets/gencat.c (print_version): Likewise.
- * csu/version.c (banner): Likewise.
- * debug/catchsegv.sh: Likewise.
- * debug/pcprofiledump.c (print_version): Likewise.
- * debug/xtrace.sh (do_version): Likewise.
- * elf/ldconfig.c (print_version): Likewise.
- * elf/ldd.bash.in: Likewise.
- * elf/pldd.c (print_version): Likewise.
- * elf/sotruss.sh: Likewise.
- * elf/sprof.c (print_version): Likewise.
- * iconv/iconv_prog.c (print_version): Likewise.
- * iconv/iconvconfig.c (print_version): Likewise.
- * locale/programs/locale.c (print_version): Likewise.
- * locale/programs/localedef.c (print_version): Likewise.
- * login/programs/pt_chown.c (print_version): Likewise.
- * malloc/memusage.sh (do_version): Likewise.
- * malloc/memusagestat.c (print_version): Likewise.
- * malloc/mtrace.pl: Likewise.
- * manual/libc.texinfo: Likewise.
- * nptl/version.c (banner): Likewise.
- * nscd/nscd.c (print_version): Likewise.
- * nss/getent.c (print_version): Likewise.
- * nss/makedb.c (print_version): Likewise.
- * posix/getconf.c (main): Likewise.
- * scripts/test-installation.pl: Likewise.
- * sysdeps/unix/sysv/linux/lddlibc4.c (main): Likewise.
-
- * All files with FSF copyright notices: Update copyright dates
- using scripts/update-copyrights.
- * locale/programs/charmap-kw.h: Regenerated.
- * locale/programs/locfile-kw.h: Likewise.
-
-2017-12-31 Zack Weinberg <zackw@panix.com>
-
- * libio/bits/libio-ldbl.h: Correct check for improper
- inclusion. Add own multiple include guard.
-
-2017-12-30 Aurelien Jarno <aurelien@aurel32.net>
- Dmitry V. Levin <ldv@altlinux.org>
-
- [BZ #22625]
- CVE-2017-16997
- * elf/dl-load.c (fillin_rpath): Check for empty tokens before dynamic
- string token expansion. Check for NULL pointer or empty string possibly
- returned by expand_dynamic_string_token.
- (decompose_rpath): Check for empty path after dynamic string
- token expansion.
-
-2017-12-29 Dmitry V. Levin <ldv@altlinux.org>
-
- [BZ #22433]
- * sysdeps/unix/sysv/linux/x86/sys/ptrace.h: New file.
-
- * sysdeps/unix/sysv/linux/sys/ptrace.h (__ptrace_request): Add comments
- about PTRACE_PEEKSIGINFO, PTRACE_GETSIGMASK, PTRACE_SETSIGMASK, and
- PTRACE_SECCOMP_GET_FILTER. Update comments about PTRACE_SINGLESTEP
- and PTRACE_SYSCALL.
- * sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h: Likewise.
- * sysdeps/unix/sysv/linux/ia64/sys/ptrace.h: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h: Likewise.
- * sysdeps/unix/sysv/linux/s390/sys/ptrace.h: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sys/ptrace.h: Likewise.
- * sysdeps/unix/sysv/linux/tile/sys/ptrace.h: Likewise.
-
- * sysdeps/unix/sysv/linux/sys/ptrace.h: Include <bits/ptrace-shared.h>.
- (__ptrace_setoptions, __ptrace_eventcodes, __ptrace_peeksiginfo_args,
- __ptrace_peeksiginfo_flags, ptrace): Move to ...
- * sysdeps/unix/sysv/linux/bits/ptrace-shared.h: ... new file.
- * sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
- bits/ptrace-shared.h.
- * sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h: Include
- <bits/ptrace-shared.h>.
- (__ptrace_setoptions, __ptrace_eventcodes, __ptrace_peeksiginfo_args,
- __ptrace_peeksiginfo_flags, ptrace): Remove.
- * sysdeps/unix/sysv/linux/ia64/sys/ptrace.h: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h: Likewise.
- * sysdeps/unix/sysv/linux/s390/sys/ptrace.h: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sys/ptrace.h: Likewise.
- * sysdeps/unix/sysv/linux/tile/sys/ptrace.h: Likewise.
-
-2017-12-29 Aurelien Jarno <aurelien@aurel32.net>
-
- [BZ #17804]
- * dirent/scandir-tail.c (SCANDIR_TAIL): Move __set_errno (0) at the
- end of the loop. Improve comments.
-
-2017-12-29 Zack Weinberg <zackw@panix.com>
-
- [BZ #22615]
- * manual/errno.texi (Checking for Errors): Explicitly say that errno
- might be set on success.
-
-2017-12-29 Aurelien Jarno <aurelien@aurel32.net>
-
- [BZ #22611]
- * malloc/tst-realloc.c (do_test): Remove the test checking that errno
- is unchanged on success.
-
-2017-12-27 Dmitry V. Levin <ldv@altlinux.org>
-
- * elf/dl-dst.h (DL_DST_COUNT): Remove is_path argument, all callers
- updated.
- * elf/dl-load.c (is_dst, _dl_dst_count, _dl_dst_substitute,
- expand_dynamic_string_token): Likewise.
- * sysdeps/generic/ldsodefs.h (_dl_dst_count, _dl_dst_substitute): Remove
- is_path argument.
-
- * elf/dl-load.c (is_dst): Remove checks that is_path is set and name
- contains ':'.
-
- * elf/dl-load.c (_dl_dst_substitute): Remove checks that is_path
- is set and name contains ':', and all code depending on these checks.
-
-2017-12-24 Zack Weinberg <zackw@panix.com>
-
- * libio/libio.h, libio/_G_config.h: New stub headers which issue a
- deprecation warning and then include <bits/libio.h>, <bits/_G_config.h>
- respectively.
- * libio/libio.h: Rename the original version of this file to
- libio/bits/libio.h. Error out if not included by stdio.h or the
- stub libio.h.
- * include/libio.h: Move to include/bits. Forward to libio/bits/libio.h.
- * sysdeps/generic/_G_config.h: Move to top-level bits/. Error out
- if not included by bits/libio.h or the stub _G_config.h.
- * sysdeps/unix/sysv/linux/_G_config.h: Move to
- sysdeps/unix/sysv/linux/bits. Error out if not included by
- bits/libio.h or the stub _G_config.h.
- * libio/stdio.h: Include bits/libio.h, not libio.h.
- * libio/Makefile: Install bits/libio.h and bits/_G_config.h as
- well as libio.h and _G_config.h.
-
- * csu/init.c, libio/fmemopen.c, libio/iolibio.h, libio/oldfmemopen.c
- * libio/strfile.h, stdio-common/vfscanf.c
- * sysdeps/pthread/flockfile.c, sysdeps/pthread/funlockfile.c
- Include stdio.h, not _G_config.h nor libio.h.
- * libio/iofgetpos.c: Also rename fgetpos64 out of the way.
- * libio/iofsetpos.c: Also rename fsetpos64 out of the way.
-
- * scripts/check-installed-headers.sh: Skip libio.h and _G_config.h.
-
-2017-12-23 Dmitry V. Levin <ldv@altlinux.org>
-
- [BZ #22347]
- * stdlib/getrandom.c (getrandom): Fix comment.
- * sysdeps/unix/sysv/linux/getrandom.c (getrandom): Likewise.
-
-2017-12-23 Aurelien Jarno <aurelien@aurel32.net>
-
- [BZ #21161]
- * manual/arith.texi (strtoul): Fix a typo.
-
- [BZ #22596]
- * manual/arith.texi (finite): Fix the description of the return
- value.
-
-2017-12-22 Eric Blake <ebb9@byu.net>
-
- Avoid gcc warnings on cygwin
- * posix/regex_internal.c (re_string_reconstruct) [!RE_ENABLE_I18N]:
- * posix/regexec.c (check_arrival_add_next_nodes) [!RE_ENABLE_I18N]:
- Avoid unused variable.
-
-2017-12-22 Florian Weimer <fweimer@redhat.com>
-
- * io/Makefile (routines): Add copy_file_range.
- (tests): Add tst-copy_file_range.
- (tests-static, tests-internal): Add tst-copy_file_range-compat.
- * io/Versions (GLIBC_2.27): Export copy_file_range.
- * io/copy_file_range-compat.c: New file.
- * io/copy_file_range.c: Likewise.
- * io/tst-copy_file_range-compat.c: Likewise.
- * io/tst-copy_file_range.c: Likewise.
- * manual/llio.texi (Copying File Data): New section.
- * posix/unistd.h [__USE_GNU] (copy_file_range): Declare.
- * support/Makefile (libsupport-routines): Add support-xfstat,
- xftruncate, xlseek.
- * support/support-xfstat.c: New file.
- * support/xftruncate.c: Likewise.
- * support/xlseek.c: Likewise.
- * support/xunistd.h (xfstat, xftruncate, xlseek): Declare.
- * sysdeps/unix/sysv/linux/**.abilist: Update.
- * sysdeps/unix/sysv/linux/copy_file_range.c: New file.
-
-2017-12-21 Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- * scripts/build-many-glibcs.py (Context.add_all_configs): Add
- disable-multi-arch variant to aarch64-linux-gnu.
-
-2017-12-20 Joseph Myers <joseph@codesourcery.com>
-
- * manual/texinfo.tex: Update to version 2017-12-18.20 with
- trailing whitespace removed.
- * scripts/config.guess: Update to version 2017-12-17.
- * scripts/config.sub: Update to version 2017-11-23.
- * scripts/install-sh: Update to version 2017-09-23.17.
- * scripts/move-if-change: Update to version 2017-09-13 06:45.
-
-2017-12-20 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * sysdeps/tile/__longjmp.S (__longjmp): Use lowercase instructions.
- * sysdeps/tile/__tls_get_addr.S (__tls_get_addr): Likewise.
- * sysdeps/tile/_mcount.S (__mcount): Likewise.
- * sysdeps/tile/crti.S (_init, _fini): Likewise.
- * sysdeps/tile/crtn.S: Likewise.
- * sysdeps/tile/dl-start.S (_start): Likewise.
- * sysdeps/tile/dl-trampoline.S: Likewise.
- * sysdeps/tile/setjmp.S (__sigsetjmp): Likewise.
- * sysdeps/tile/start.S (_start): Likewise.
- * sysdeps/unix/sysv/linux/tile/clone.S (_clone): Likewise.
- * sysdeps/unix/sysv/linux/tile/getcontext.S (__getcontext): Likewise.
- * sysdeps/unix/sysv/linux/tile/ioctl.S (__ioctl): Likewise.
- * sysdeps/unix/sysv/linux/tile/setcontext.S (__setcontext): Likewise.
- * sysdeps/unix/sysv/linux/tile/swapcontext.S (__swapcontext): Likewise.
- * sysdeps/unix/sysv/linux/tile/syscall.S (syscall): Likewise.
- * sysdeps/unix/sysv/linux/tile/vfork.S (__vfork): Likewise.
-
- * stdlib/bug-getcontext.c (do_test): Remove tilepro mention in
- comment.
- * sysdeps/tile/preconfigure: Remove tilegx folder.
- * sysdeps/tile/tilegx/Implies: Move definitions to ...
- * sysdeps/tile/Implies: ... here.
- * sysdeps/tile/tilegx/Makefile: Move rules to ...
- * sysdeps/tile/Makefile: ... here.
- * sysdeps/tile/tilegx/atomic-machine.h: Move definitions to ...
- * sysdeps/tile/atomic-machine.h: ... here. Add include guards.
- * sysdeps/tile/tilegx/bits/wordsize.h: Move to ...
- * sysdeps/tile/bits/wordsize.h: ... here.
- * sysdeps/tile/tilegx/*: Move to ...
- * sysdeps/tile/*: ... here.
- * sysdeps/tile/tilegx/tilegx32/Implies: Move to ...
- * sysdeps/tile/tilegx32/Implies: ... here.
- * sysdeps/tile/tilegx/tilegx64/Implies: Move to ...
- * sysdeps/tile/tilegx64/Implies: ... here.
- * sysdeps/unix/sysv/linux/tile/tilegx/Makefile: Move definitions
- to ...
- * sysdeps/unix/sysv/linux/tile/Makefile: ... here.
- * sysdeps/unix/sysv/linux/tile/tilegx/*: Move to ...
- * sysdeps/unix/sysv/linux/tile/*: ... here.
- * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/*: Move to ...
- * sysdeps/unix/sysv/linux/tile/tilegx32/*: ... here.
- * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/*: Move to ...
- * sysdeps/unix/sysv/linux/tile/tilegx64/*: ... here.
-
- * README: Remove tilepro-*-linux-gnu from supported architecture.
- * scripts/build-many-glibcs.py: Likewise.
- * sysdeps/tile/__tls_get_addr.S (__tls_get_addr): Likewise.
- * sysdeps/tile/crti.S (PREINIT_FUNCTION): Likewise.
- * sysdeps/tile/dl-machine.h (ELF_MACHINE_NAME,
- elf_machine_matches_host, elf_machine_dynamic,
- elf_machine_load_address, elf_machine_runtime_setup, reloc_howto
- howto, elf_machine_rela): Likewise.
- * sysdeps/tile/dl-start.S (_start): Likewise.
- * sysdeps/tile/memcmp.c (DBLALIGN, REVBYTES): Likewise.
- * sysdeps/tile/memcopy.h (MEMCPY_OK_FOR_FWD_MEMMOVE,
- MEMCPY_OK_FOR_FWD_MEMMOVE, op_t): Likewise.
- * sysdeps/tile/nptl/pthread_spin_lock.c (TNS, CMPTNS): Likewise.
- * sysdeps/tile/nptl/pthread_spin_trylock.c (TNS): Likewise.
- * sysdeps/tile/nptl/pthread_spin_unlock.c (pthread_spin_unlock):
- Likewise.
- * sysdeps/tile/nptl/tls.h (DB_THREAD_SELF): Likewise.
- * sysdeps/tile/preconfigure: Likewise.
- * sysdeps/tile/stackguard-macros.h (STACK_CHK_GUARD,
- POINTER_CHK_GUARD): Likewise.
- * sysdeps/tile/stackinfo.h (__stackinfo_sub): Likewise.
- * sysdeps/tile/start.S (_start): Likewise.
- * sysdeps/tile/tls-macros.h (TLS_GD_OFFSET, TLS_IE_OFFSET, _TLS_LE):
- Likewise.
- * sysdeps/tile/sysdep.h (REGSIZE): Likewise.
- (LD, LD4U, ST, ST4, BNEZ, BEQZ, BEQZT, BGTZ, CMPEQI, CMPEQ, CMOVEQZ,
- CMOVNEZ): Remove.
- * sysdeps/unix/sysv/linux/tile/bits/environments.h
- (__ILP32_OFF32_CFLAGS, __ILP32_OFFBIG_CFLAGS, __ILP32_OFF32_LDFLAGS,
- __ILP32_OFFBIG_LDFLAGS, __LP64_OFF64_CFLAGS, __LP64_OFF64_LDFLAGS):
- Likewise.
- * sysdeps/tile/wordcopy.c (DBLALIGN): Likewise.
- * sysdeps/tile/tilepro/Implies: Remove file.
- * sysdeps/tile/tilepro/atomic-machine.h: Likewise.
- * sysdeps/tile/tilepro/bits/wordsize.h: Likewise.
- * sysdeps/tile/tilepro/memchr.c: Likewise.
- * sysdeps/tile/tilepro/memcpy.S: Likewise.
- * sysdeps/tile/tilepro/memset.c: Likewise.
- * sysdeps/tile/tilepro/memusage.h: Likewise.
- * sysdeps/tile/tilepro/rawmemchr.c: Likewise.
- * sysdeps/tile/tilepro/strchr.c: Likewise.
- * sysdeps/tile/tilepro/strchrnul.c: Likewise.
- * sysdeps/tile/tilepro/strlen.c: Likewise.
- * sysdeps/tile/tilepro/strrchr.c: Likewise.
- * sysdeps/unix/sysv/linux/tile/tilepro/Implies: Likewise.
- * sysdeps/unix/sysv/linux/tile/tilepro/c++-types.data: Likewise.
- * sysdeps/unix/sysv/linux/tile/tilepro/jmp_buf-macros.h: Likewise.
- * sysdeps/unix/sysv/linux/tile/tilepro/ld.abilist: Likewise.
- * sysdeps/unix/sysv/linux/tile/tilepro/ldconfig.h: Likewise.
- * sysdeps/unix/sysv/linux/tile/tilepro/libBrokenLocale.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/tile/tilepro/libanl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/tile/tilepro/libcrypt.abilist: Likewise.
- * sysdeps/unix/sysv/linux/tile/tilepro/libdl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/tile/tilepro/libnsl.abilist: Likewise.
- * sysdeps/unix/sysv/linux/tile/tilepro/libpthread.abilist: Likewise.
- * sysdeps/unix/sysv/linux/tile/tilepro/libresolv.abilist: Likewise.
- * sysdeps/unix/sysv/linux/tile/tilepro/librt.abilist: Likewise.
- * sysdeps/unix/sysv/linux/tile/tilepro/libthread_db.abilist: Likewise.
- * sysdeps/unix/sysv/linux/tile/tilepro/libutil.abilist: Likewise.
- * sysdeps/unix/sysv/linux/tile/tilepro/register-dump.h: Likewise.
- * sysdeps/unix/sysv/linux/tile/sysconf.c (linux_sysconf): Remove
- tilepro mention in comment.
-
- * nptl/Makefile (libpthread-routines): Add pthread_join_common.
- * nptl/pthreadP.h (__pthread_timedjoin_ex): New prototype.
- * nptl/pthread_join_common.c: New file: common function used on
- pthread_join, pthread_timedjoin_np, pthread_tryjoin_np.
- * nptl/pthread_join.c (pthread_join): Use __pthread_timedjoin_ex.
- * nptl/pthread_tryjoin.c (pthread_tryjoin): Likewise.
- * nptl/pthread_timedjoin.c (pthread_timedjoin_np): Likewise.
- (cleanup): Move definition to pthread_join_common.c.
- * sysdeps/unix/sysv/linux/i386/lowlevellock.h (__lll_timedwait_tid):
- Remove superflous checks.
- * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (__lll_timedwait_tid):
- Likewise.
-
-2017-12-20 Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- * sysdeps/aarch64/libm-test-ulps: Update.
-
-2017-12-20 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * sysdeps/aarch64/memset.S (MEMSET): Define.
-
-2017-12-20 Florian Weimer <fweimer@redhat.com>
-
- [BZ #22635]
- nptl: Provide full implementation of pthread_self in libc.so.
- * nptl/Makefile (routines): Add pthread_self.
- (libpthread-routines): Replace pthread_self with
- compat-pthread_self.
- * nptl/forward.c (pthread_self): Remove.
- * nptl/nptl-init.c (pthread_functions): Do not initialize
- ptr_pthread_self.
- * nptl/pthread_self.c (pthread_self): Remove weak alias.
- * nptl/compat-pthread_self.c: New file.
- * sysdeps/nptl/pthread-functions.h (struct pthread_functions):
- Remove ptr_pthread_self.
-
-2017-12-19 Arnold D. Robbins <arnold@skeeve.com>
-
- * posix/regcomp.c: Fix spelling in comments.
- * posix/regex.h: Likewise.
- * posix/regex_internal.c: Likewise.
- * posix/regexec.c: Likewise.
-
-2017-12-19 Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
-
- [BZ #22377]
- * math/Makefile [C++] (tests): Add test for iseqsig.
- * math/math.h [C++] (iseqsig): New implementation, which does
- not rely on __MATH_TG/__builtin_types_compatible_p.
- * math/test-math-iseqsig.cc: New file.
- * sysdeps/powerpc/powerpc64le/Makefile
- (CFLAGS-test-math-iseqsig.cc): New variable.
-
-2017-12-19 Dmitry V. Levin <ldv@altlinux.org>
-
- * elf/dl-load.c (is_trusted_path): Remove.
- (fillin_rpath): Remove check_trusted argument and its use,
- all callers changed.
-
-2017-12-19 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #22630]
- * Makeconfig (link-pie-before-libc): Replace -pie with
- $(if $($(@F)-no-pie),$(no-pie-ldflag),-pie).
- * elf/Makefile (LDFLAGS-tst-dlopen-aout): Removed.
- (tst-dlopen-aout-no-pie): New.
- (LDFLAGS-tst-prelink): Removed.
- (tst-prelink-no-pie): New.
- (LDFLAGS-tst-main1): Removed.
- (tst-main1-no-pie): New.
- * gmon/Makefile (LDFLAGS-tst-gmon): Removed.
- (tst-gmon-no-pie): New.
-
-2017-12-19 H.J. Lu <hongjiu.lu@intel.com>
-
- * manual/install.texi: Document that --enable-static-pie
- implies PIE.
- * INSTALL: Regenerated.
-
-2017-12-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
-
- [BZ #21309]
- * sysdeps/ieee754/dbl-64/e_pow.c (checkint): Make m and n
- unsigned.
-
-2017-12-19 Joseph Myers <joseph@codesourcery.com>
-
- Revert:
-
- 2017-12-19 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/x86_64/fpu/libm-test-ulps: Update.
-
- 2017-12-19 Patrick McGehearty <patrick.mcgehearty@oracle.com>
-
- * sysdeps/ieee754/dbl-64/e_exp.c: Include <math-svid-compat.h> and
- <errno.h>. Include "eexp.tbl".
- (half): New constant.
- (one): Likewise.
- (__ieee754_exp): Rewrite.
- (__slowexp): Remove prototype.
- * sysdeps/ieee754/dbl-64/eexp.tbl: New file.
- * sysdeps/ieee754/dbl-64/slowexp.c: Remove file.
- * sysdeps/i386/fpu/slowexp.c: Likewise.
- * sysdeps/ia64/fpu/slowexp.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/slowexp.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/slowexp-avx.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/slowexp-fma.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/slowexp-fma4.c: Likewise.
- * sysdeps/generic/math_private.h (__slowexp): Remove prototype.
- * sysdeps/ieee754/dbl-64/e_pow.c: Remove mention of slowexp.c in
- comment.
- * sysdeps/powerpc/power4/fpu/Makefile [$(subdir) = math]
- (CPPFLAGS-slowexp.c): Remove variable.
- * sysdeps/x86_64/fpu/multiarch/Makefile (libm-sysdep_routines):
- Remove slowexp-fma, slowexp-fma4 and slowexp-avx.
- (CFLAGS-slowexp-fma.c): Remove variable.
- (CFLAGS-slowexp-fma4.c): Likewise.
- (CFLAGS-slowexp-avx.c): Likewise.
- * sysdeps/x86_64/fpu/multiarch/e_exp-avx.c (__slowexp): Do not
- define as macro.
- * sysdeps/x86_64/fpu/multiarch/e_exp-fma.c (__slowexp): Likewise.
- * sysdeps/x86_64/fpu/multiarch/e_exp-fma4.c (__slowexp): Likewise.
- * math/Makefile (type-double-routines): Remove slowexp.
- * manual/probes.texi (slowexp_p6): Remove.
- (slowexp_p32): Likewise.
-
-2017-12-19 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * lib/glob.c (glob): Use a 'char *', not a 'void *', in pointer
- arithmetic.
-
- * lib/glob.c (glob): Do not pass NULL to mempcpy.
-
-2017-12-19 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/x86_64/fpu/libm-test-ulps: Update.
-
-2017-12-19 Patrick McGehearty <patrick.mcgehearty@oracle.com>
-
- * sysdeps/ieee754/dbl-64/e_exp.c: Include <math-svid-compat.h> and
- <errno.h>. Include "eexp.tbl".
- (half): New constant.
- (one): Likewise.
- (__ieee754_exp): Rewrite.
- (__slowexp): Remove prototype.
- * sysdeps/ieee754/dbl-64/eexp.tbl: New file.
- * sysdeps/ieee754/dbl-64/slowexp.c: Remove file.
- * sysdeps/i386/fpu/slowexp.c: Likewise.
- * sysdeps/ia64/fpu/slowexp.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/slowexp.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/slowexp-avx.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/slowexp-fma.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/slowexp-fma4.c: Likewise.
- * sysdeps/generic/math_private.h (__slowexp): Remove prototype.
- * sysdeps/ieee754/dbl-64/e_pow.c: Remove mention of slowexp.c in
- comment.
- * sysdeps/powerpc/power4/fpu/Makefile [$(subdir) = math]
- (CPPFLAGS-slowexp.c): Remove variable.
- * sysdeps/x86_64/fpu/multiarch/Makefile (libm-sysdep_routines):
- Remove slowexp-fma, slowexp-fma4 and slowexp-avx.
- (CFLAGS-slowexp-fma.c): Remove variable.
- (CFLAGS-slowexp-fma4.c): Likewise.
- (CFLAGS-slowexp-avx.c): Likewise.
- * sysdeps/x86_64/fpu/multiarch/e_exp-avx.c (__slowexp): Do not
- define as macro.
- * sysdeps/x86_64/fpu/multiarch/e_exp-fma.c (__slowexp): Likewise.
- * sysdeps/x86_64/fpu/multiarch/e_exp-fma4.c (__slowexp): Likewise.
- * math/Makefile (type-double-routines): Remove slowexp.
- * manual/probes.texi (slowexp_p6): Remove.
- (slowexp_p32): Likewise.
-
-2017-12-19 Adhemerval Zanella <adhemerval.zanella@linaro.org>
- James Clarke <jrtc27@jrtc27.com>
-
- [BZ #22603]
- * sysdeps/ia64/memchr.S (__memchr): Avoid overflow in pointer
- addition.
-
-2017-12-19 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- [BZ #22605]
- * sysdeps/unix/sysv/linux/sh/clone.S (__clone): Fix exit return
- code.
-
-2017-12-19 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #22563]
- * sysdeps/i386/nptl/tcb-offsets.sym (FEATURE_1_OFFSET): New.
- * sysdeps/i386/nptl/tls.h (tcbhead_t): Add feature_1.
- * sysdeps/x86_64/nptl/tcb-offsets.sym (FEATURE_1_OFFSET): New.
- * sysdeps/x86_64/nptl/tls.h (tcbhead_t): Rename __glibc_unused1
- to feature_1.
-
-2017-12-19 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #22563]
- * bits/types/__cancel_jmp_buf_tag.h: New file.
- * sysdeps/unix/sysv/linux/x86/bits/types/__cancel_jmp_buf_tag.h
- * sysdeps/unix/sysv/linux/x86/pthreaddef.h: Likewise.
- * sysdeps/unix/sysv/linux/x86/nptl/pthreadP.h: Likewise.
- * nptl/Makefile (headers): Add
- bits/types/__cancel_jmp_buf_tag.h.
- * nptl/descr.h [NEED_SAVED_MASK_IN_CANCEL_JMP_BUF]
- (pthread_unwind_buf): Add saved_mask to cancel_jmp_buf.
- * sysdeps/nptl/pthread.h: Include
- <bits/types/__cancel_jmp_buf_tag.h>.
- (__pthread_unwind_buf_t): Use struct __cancel_jmp_buf_tag with
- __cancel_jmp_buf.
- * sysdeps/unix/sysv/linux/hppa/pthread.h: Likewise.
-
-2017-12-18 H.J. Lu <hongjiu.lu@intel.com>
-
- * scripts/build-many-glibcs.py (Context.add_all_configs): Add
- --enable-static-pie variants to x86_64, x32 and i686.
-
-2017-12-19 Joseph Myers <joseph@codesourcery.com>
-
- [BZ #22631]
- * sysdeps/m68k/m680x0/fpu/bits/mathinline.h (__m81_defun): Add
- argument for attrubutes. All callers changed.
- (__inline_mathop1): Likewise. All callers changed.
- (__inline_mathop): Likewise. All callers changed.
- [__USE_MISC] (scalbn): Use __inline_forward instead of
- __inline_forward_c.
- [__USE_ISOC99] (scalbln): Likewise.
- [__USE_ISOC99] (nearbyint): Likewise.
- [__USE_ISOC99] (lrint): Likewise.
- [__USE_MISC] (scalbnf): Likewise.
- [__USE_ISOC99] (scalblnf): Likewise.
- [__USE_ISOC99] (nearbyintf): Likewise.
- [__USE_ISOC99] (lrintf): Likewise.
- [__USE_MISC] (scalbnl): Likewise.
- [__USE_ISOC99] (scalblnl): Likewise.
- [__USE_ISOC99] (nearbyintl): Likewise.
- [__USE_ISOC99] (lrintl): Likewise.
- * sysdeps/m68k/m680x0/fpu/mathimpl.h: All callers of
- __inline_mathop and __m81_defun changed.
-
- * scripts/build-many-glibcs.py (Context.add_all_configs): Specify
- CPU or FPU for ARM hard-float configurations.
-
-2017-12-18 Joseph Myers <joseph@codesourcery.com>
-
- * nptl/tst-attr3.c: Include <libc-diag.h>.
- (do_test) [__GNUC_PREREQ (7, 0)]: Ignore -Wrestrict for two tests.
-
- * posix/tst-glob_symlinks.c (do_test): Increase size of buf.
-
- * string/tester.c (test_strncat): Also disable -Warray-bounds
- warnings for two tests.
-
-2017-12-18 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #22614]
- * Makeconfig (no-pie-ldflag): Set to -no-pie only if
- $(cc-pie-default) == yes.
- * config.make.in (cc-pie-default): New.
- * configure.ac (libc_cv_pie_default): Renamed to ...
- (libc_cv_cc_pie_default): This.
- (libc_cv_pie_default): Set to $libc_cv_cc_pie_default.
- * configure: Regenerated.
-
-2017-12-18 Florian Weimer <fweimer@redhat.com>
-
- [BZ #20204]
- ld.so: Harden dl-libc/libdl hooks.
- * sysdeps/generic/ldsodefs.h (_dl_init_all_dirs): Update comment.
- (rtld_active): New function.
- * dlfcn/dladdr.c (__dladdr): Call it.
- * dlfcn/dladdr1.c (__dladdr1): Likewise.
- * dlfcn/dlclose.c (__dlcose): Likewise.
- * dlfcn/dlerror.c (__dlerror): Likewise.
- * dlfcn/dlinfo.c (__dlinfo): Likewise.
- * dlfcn/dlmopen.c (__dlmopen): Likewise.
- * dlfcn/dlopen.c (__dlopen): Likewise.
- * dlfcn/dlopenold.c (__dlopen_nocheck): Likewise.
- * dlfcn/dlsym.c (__dlsym): Likewise.
- * dlfcn/dlvsym.c (__dlvsym): Likewise.
- * libio/vtables.c (_IO_vtable_check): Likewise.
- * elf/dl-libc.c (__libc_dlopen_mode, __libc_dlsym)
- (__libc_dlclose): Likewise.
- * elf/rtld.c (dl_main): Update comment on the _dl_init_all_dirs
- assignment.
-
-2017-12-18 Joseph Myers <joseph@codesourcery.com>
-
- [BZ #22446]
- * nscd/connections.c (handle_request) [SO_PEERCRED]: Use separate
- buffers for readlink input and output.
-
-2017-12-18 Sergei Trofimovich <slyfox@gentoo.org>
-
- [BZ #22624]
- * sysdeps/mips/setjmp_aux.c (__sigsetjmp_aux): Use
- inhibit_stack_protector.
-
- [BZ #22624]
- * sysdeps/mips/mips64/setjmp_aux.c (__sigsetjmp_aux): Use
- inhibit_stack_protector.
-
-2017-12-18 Dmitry V. Levin <ldv@altlinux.org>
-
- [BZ #22627]
- * elf/dl-load.c (_dl_init_paths): Remove _dl_dst_substitute preparatory
- code and invocation.
-
-2017-12-18 Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- * sysdeps/aarch64/start.S (_start): Handle PIC && !SHARED case.
-
-2017-12-16 Aurelien Jarno <aurelien@aurel32.net>
-
- [BZ #22505]
- * elf/ldconfig.c (main): Call setlocale to force LC_COLLATE to C.
-
-2017-12-16 Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>
-
- * sysdeps/s390/fpu/libm-test-ulps: Update.
-
-2017-12-16 Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>
-
- * sysdeps/powerpc/fpu/libm-test-ulps: Update.
-
-2017-12-16 Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>
-
- * sysdeps/ieee754/flt-32/s_cosf.c: Move reduced() and
- constants to s_sincosf.h file.
- * sysdeps/ieee754/flt-32/s_sinf.c: Likewise.
- * sysdeps/ieee754/flt-32/s_sincosf.c: New
- implementation.
- * sysdeps/ieee754/flt-32/s_sincosf.h:
- New file.
-
-2017-12-12 Carlos O'Donell <carlos@redhat.com>
-
- [BZ #14681]
- * elf/tst-leaks1.c (do_test): Call one dlopen with $ORIGIN expansion
- before mtrace.
-
-2017-12-15 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #19574]
- * INSTALL: Regenerated.
- * Makeconfig (real-static-start-installed-name): New.
- (pic-default): Updated for --enable-static-pie.
- (pie-default): New for --enable-static-pie.
- (default-pie-ldflag): Likewise.
- (+link-static-before-libc): Replace $(DEFAULT-LDFLAGS-$(@F))
- with $(if $($(@F)-no-pie),$(no-pie-ldflag),$(default-pie-ldflag)).
- Replace $(static-start-installed-name) with
- $(real-static-start-installed-name).
- (+prectorT): Updated for --enable-static-pie.
- (+postctorT): Likewise.
- (CFLAGS-.o): Add $(pie-default).
- (CFLAGS-.op): Likewise.
- * NEWS: Mention --enable-static-pie.
- * config.h.in (ENABLE_STATIC_PIE): New.
- * configure.ac (--enable-static-pie): New configure option.
- (have-no-dynamic-linker): New LIBC_CONFIG_VAR.
- (have-static-pie): Likewise.
- Enable static PIE if linker supports --no-dynamic-linker.
- (ENABLE_STATIC_PIE): New AC_DEFINE.
- (enable-static-pie): New LIBC_CONFIG_VAR.
- * configure: Regenerated.
- * csu/Makefile (omit-deps): Add r$(start-installed-name) and
- gr$(start-installed-name) for --enable-static-pie.
- (extra-objs): Likewise.
- (install-lib): Likewise.
- (extra-objs): Add static-reloc.o and static-reloc.os
- ($(objpfx)$(start-installed-name)): Also depend on
- $(objpfx)static-reloc.o.
- ($(objpfx)r$(start-installed-name)): New.
- ($(objpfx)g$(start-installed-name)): Also depend on
- $(objpfx)static-reloc.os.
- ($(objpfx)gr$(start-installed-name)): New.
- * csu/libc-start.c (LIBC_START_MAIN): Call _dl_relocate_static_pie
- in libc.a.
- * csu/libc-tls.c (__libc_setup_tls): Add main_map->l_addr to
- initimage.
- * csu/static-reloc.c: New file.
- * elf/Makefile (routines): Add dl-reloc-static-pie.
- (elide-routines.os): Likewise.
- (DEFAULT-LDFLAGS-tst-tls1-static-non-pie): Removed.
- (tst-tls1-static-non-pie-no-pie): New.
- * elf/dl-reloc-static-pie.c: New file.
- * elf/dl-support.c (_dl_get_dl_main_map): New function.
- * elf/dynamic-link.h (ELF_DURING_STARTUP): Also check
- STATIC_PIE_BOOTSTRAP.
- * elf/get-dynamic-info.h (elf_get_dynamic_info): Likewise.
- * gmon/Makefile (tests): Add tst-gmon-static-pie.
- (tests-static): Likewise.
- (DEFAULT-LDFLAGS-tst-gmon-static): Removed.
- (tst-gmon-static-no-pie): New.
- (CFLAGS-tst-gmon-static-pie.c): Likewise.
- (CRT-tst-gmon-static-pie): Likewise.
- (tst-gmon-static-pie-ENV): Likewise.
- (tests-special): Likewise.
- ($(objpfx)tst-gmon-static-pie.out): Likewise.
- (clean-tst-gmon-static-pie-data): Likewise.
- ($(objpfx)tst-gmon-static-pie-gprof.out): Likewise.
- * gmon/tst-gmon-static-pie.c: New file.
- * manual/install.texi: Document --enable-static-pie.
- * sysdeps/generic/ldsodefs.h (_dl_relocate_static_pie): New.
- (_dl_get_dl_main_map): Likewise.
- * sysdeps/i386/configure.ac: Check if linker supports static PIE.
- * sysdeps/x86_64/configure.ac: Likewise.
- * sysdeps/i386/configure: Regenerated.
- * sysdeps/x86_64/configure: Likewise.
- * sysdeps/mips/Makefile (ASFLAGS-.o): Add $(pie-default).
- (ASFLAGS-.op): Likewise.
-
-2017-12-15 Joseph Myers <joseph@codesourcery.com>
-
- * io/Makefile (tst-open-tmpfile-ARGS): New variable.
- * posix/tst-mmap-offset.c (fname): Use /tmp.
- * stdlib/tst-setcontext3.sh (tempfile): Use ${objpfx}.
-
-2017-12-15 Steve Ellcey <sellcey@cavium.com>
-
- * nscd/dbg_log.c (dbg_log): Increase msg buffer size.
-
-2017-12-15 Thomas Schwinge <thomas@codesourcery.com>
-
- * sysdeps/mach/hurd/dl-sysdep.c (__access_noerrno): Don't set
- errno.
-
-2017-12-15 Joseph Myers <joseph@codesourcery.com>
-
- * scripts/build-many-glibcs.py (Context.add_all_configs): Use
- --with-float=hard for arm-linux-gnueabihf configurations.
-
- [BZ #14121]
- * po/Makefile (generated): Add $(ALL_LINGUAS:%=%.mo).
- (%.mo): Change to $(objpfx)%.mo. Use $(make-target-directory).
- ($(mo-installed)): Use $(objpfx)%.mo.
- (realclean): Remove rule.
-
- * po/Makefile (linguas): Remove rule and dependencies.
- (linguas.mo): Likewise.
- (.PHONY): Do not depend on linguas and linguas.mo.
- (podir): Remove variable.
- (pofiles): Likewise.
- [$(pofiles)] (%.po): Remove rule.
-
- * sysdeps/sparc/sparc32/Makefile
- ($(divrem:%=$(sysdep_dir)/sparc/sparc32/%.S)): Do not include
- start-of-line whitespace in argument of echo.
- * sysdeps/sparc/sparc32/divrem.m4: Avoid generating lines starting
- with whitespace. Generate __wrap_.udiv alias.
- * sysdeps/sparc/sparc32/rem.S: Regenerated.
- * sysdeps/sparc/sparc32/sdiv.S: Likewise.
- * sysdeps/sparc/sparc32/udiv.S: Likewise.
- * sysdeps/sparc/sparc32/urem.S: Likewise.
-
-2017-12-15 Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>
-
- * sysdeps/powerpc/powerpc64/power8/strcpy.S: Use vectors
- for aligned inputs.
-
-2017-12-14 Siddhesh Poyarekar <siddhesh@sourceware.org>
-
- * benchtests/bench-strcmp.c: Print output in JSON format.
-
- * elf/dl-tunables.list: Remove redundant SXID_ERASE.
-
-2017-12-14 Florian Weimer <fweimer@redhat.com>
-
- [BZ #22607]
- CVE-2017-1000409
- * elf/dl-load.c (_dl_init_paths): Compute number of components in
- the expanded path string.
-
-2017-12-14 Florian Weimer <fweimer@redhat.com>
-
- [BZ #22606]
- CVE-2017-1000408
- * elf/dl-load.c (system_dirs): Update comment.
- (nsystem_dirs_len): Use array_length.
- (_dl_init_paths): Use nsystem_dirs_len to compute the array size.
-
-2017-12-14 Florian Weimer <fweimer@redhat.com>
-
- Simplify compiling most of support/ outside of glibc.
- * support/check_addrinfo.c: Include <string.h>.
- * support/check_dns_packet.c: Likewise.
- * support/check_hostent.c: Likewise.
- * support/support_can_chroot.c: Include <support/xunistd.h>.
- * support/support_format_addrinfo.c: Include <stdlib.h>
- * support/support_format_dns_packet.c: Include <stdbool.h>.
- * support/support_format_hostent.c: Include <stdlib.h>.
- * support/support_format_netent.c: Likewise.
- * support/support_write_string.c: Include <support/xunistd.h>.
- * support/xdlfcn.c: Include <stddef.h>.
-
-2017-12-14 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/x86_64/fpu/s_cosf.S: Removed.
-
-2017-12-14 Patrick McGehearty <patrick.mcgehearty@oracle.com>
- Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * sysdeps/sparc/sparc32/sparcv9/multiarch/Makefile
- (sysdeps_routines): Add memset-niagara7.
- * sysdeps/sparc/sparc64/multiarch/Makefile (sysdes_rotuines):
- Likewise.
- * sysdeps/sparc/sparc32/sparcv9/multiarch/memset-niagara7.S: New
- file.
- * sysdeps/sparc/sparc64/multiarch/memset-niagara7.S: Likewise.
- * sysdeps/sparc/sparc64/multiarch/ifunc-impl-list.c
- (__libc_ifunc_impl_list): Add __bzero_niagara7 and __memset_niagara7.
- * sysdeps/sparc/sparc64/multiarch/ifunc-memset.h (IFUNC_SELECTOR):
- Add niagara7 option.
- * NEWS: Mention sparc m7 optimized memcpy, mempcpy, memmove, and
- memset.
-
- * sysdeps/sparc/sparc32/sparcv9/multiarch/Makefile
- (sysdeps_routines): Add memcpy-memmove-niagara7 and memmove-ultra1.
- * sysdeps/sparc/sparc64/multiarch/Makefile (sysdeps_routines):
- Likewise.
- * sysdeps/sparc/sparc32/sparcv9/multiarch/memcpy-memmove-niagara7.S:
- New file.
- * sysdeps/sparc/sparc32/sparcv9/multiarch/memmove-ultra1.S: Likewise.
- * sysdeps/sparc/sparc32/sparcv9/multiarch/rtld-memmove.c: Likewise.
- * sysdeps/sparc/sparc64/multiarch/ifunc-impl-list.c
- (__libc_ifunc_impl_list): Add __memcpy_niagara7, __mempcpy_niagara7,
- and __memmove_niagara7.
- * sysdeps/sparc/sparc64/multiarch/ifunc-memcpy.h (IFUNC_SELECTOR):
- Add niagara7 option.
- * sysdeps/sparc/sparc64/multiarch/memmove.c: New file.
- * sysdeps/sparc/sparc64/multiarch/ifunc-memmove.h: Likewise.
- * sysdeps/sparc/sparc64/multiarch/memcpy-memmove-niagara7.S: Likewise.
- * sysdeps/sparc/sparc64/multiarch/memmove-ultra1.S: Likewise.
- * sysdeps/sparc/sparc64/multiarch/rtld-memmove.c: Likewise.
-
-2017-12-14 Jose E. Marchesi <jose.marchesi@oracle.com>
-
- * sysdeps/sparc/sparc32/sparcv9/memmove.S: New file.
- * sysdeps/sparc/sparc32/sparcv9/rtld-memmove.c: Likewise.
- * sysdeps/sparc/sparc64/memmove.S: Likewise.
- * sysdeps/sparc/sparc64/rtld-memmove.c: Likewise.
-
- * sysdeps/sparc/bits/hwcap.h (HWCAP_SPARC_ADP): Defined.
- * sysdeps/sparc/dl-procinfo.c: Added "adp" to the
- _dl_sparc_cap_flags array.
- * sysdeps/sparc/dl-procinfo.h (_DL_HWCAP_COUNT): Increment.
-
-2017-12-13 Siddhesh Poyarekar <siddhesh@sourceware.org>
-
- * sysdeps/aarch64/strcmp.S (misaligned8): Compare dword at a
- time whenever possible.
-
-2017-12-12 Carlos O'Donell <carlos@redhat.com>
-
- * elf/Makefile [$(nss-crypt)$(static-nss-crypt) == yesno]
- (CFLAGS-tst-linkall-static.c): Undefine USE_CRYPT first.
-
-2017-12-12 Joseph Myers <joseph@codesourcery.com>
-
- * soft-fp/fmadf4.c: Move to ....
- * sysdeps/ieee754/soft-fp/s_fma.c: ... here.
- * soft-fp/fmasf4.c: Move to ....
- * sysdeps/ieee754/soft-fp/s_fmaf.c: ... here.
- * soft-fp/fmatf4.c: Move to ....
- * sysdeps/ieee754/soft-fp/s_fmal.c: ... here.
- * sysdeps/ieee754/soft-fp/Makefile: New file.
- * sysdeps/arm/preconfigure.ac: Define with_fp_cond.
- * sysdeps/arm/preconfigure: Regenerated.
- * sysdeps/arm/nofpu/Implies: New file.
- * sysdeps/arm/s_fma.c: Remove file.
- * sysdeps/arm/s_fmaf.c: Likewise.
- * sysdeps/m68k/coldfire/nofpu/Implies: New file.
- * sysdeps/m68k/coldfire/nofpu/s_fma.c: Remove file.
- * sysdeps/m68k/coldfire/nofpu/s_fmaf.c: Likewise.
- * sysdeps/microblaze/Implies: Add ieee754/soft-fp.
- * sysdeps/microblaze/s_fma.c: Remove file.
- * sysdeps/microblaze/s_fmaf.c: Likewise.
- * sysdeps/mips/mips32/nofpu/Implies: New file.
- * sysdeps/mips/mips64/n32/fpu/s_fma.c: Likewise.
- * sysdeps/mips/mips64/n32/nofpu/Implies: Likewise.
- * sysdeps/mips/mips64/n64/fpu/s_fma.c: Likewise.
- * sysdeps/mips/mips64/n64/nofpu/Implies: Likewise.
- * sysdeps/mips/ieee754/s_fma.c: Remove file.
- * sysdeps/mips/ieee754/s_fmaf.c: Likewise.
- * sysdeps/mips/ieee754/s_fmal.c: Update include for move of fmal
- implementation.
- * sysdeps/nios2/Implies: Add ieee754/soft-fp.
- * sysdeps/nios2/s_fma.c: Remove file.
- * sysdeps/nios2/s_fmaf.c: Likewise.
- * sysdeps/sh/nofpu/Implies: New file.
- * sysdeps/sh/s_fma.c: Remove file.
- * sysdeps/sh/s_fmaf.c: Likewise.
- * sysdeps/tile/Implies: Add ieee754/soft-fp.
- * sysdeps/tile/s_fma.c: Remove file.
- * sysdeps/tile/s_fmaf.c: Likewise.
-
-2017-12-12 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/x86_64/fpu/multiarch/Makefile (libm-sysdep_routines):
- Add s_cosf-sse2 and s_cosf-fma.
- (CFLAGS-s_cosf-fma.c): New.
- * sysdeps/x86_64/fpu/multiarch/s_cosf-fma.c: New file.
- * sysdeps/x86_64/fpu/multiarch/s_cosf-sse2.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/s_cosf.c: Likewise.
-
-2017-12-12 Steve Ellcey <sellcey@cavium.com>
-
- * nscd/nscd.h (init_traced_file): Change strncpy to memcpy.
-
-2017-12-12 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * libio/Makefile (tests): Add tst-bz22415.
- (tst-bz22415-ENV): New rule.
- (generated): Add tst-bz22415.mtrace and tst-bz22415.check.
- (tests-special): Add tst-bz22415-mem.out.
- ($(objpfx)tst-bz22415-mem.out): New rule.
- * libio/fileops.c (_IO_new_file_seekoff): Call _IO_free_backup_area
- in case of a successful seek operation.
- * libio/wfileops.c (_IO_wfile_seekoff): Likewise.
- (_IO_wfile_overflow): Call _IO_free_wbackup_area in case a write
- buffer is required.
- * libio/tst-bz22415.c: New test.
-
- * sysdeps/ia64/fpu/libm-test-ulps: Update.
-
-2017-12-12 James Clarke <jrtc27@jrtc27.com>
-
- * sysdeps/unix/sysv/linux/ia64/ipc_priv.h: New file defining
- __IPC_64 to 0 to avoid IPC_64 being set.
-
-2017-12-12 Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- [BZ #22593]
- * math/bits/mathcalls.h (nextafter): Remove const.
- (nexttoward): Likewise.
-
-2017-12-12 Joseph Myers <joseph@codesourcery.com>
-
- * configure.ac (--with-fp): Remove configure option.
- (with_fp_cond): New variable.
- (libc_cv_with_fp): New configure test. Use this variable instead
- of with_fp.
- * configure: Regenerated.
- * config.make.in (with-fp): Use @libc_cv_with_fp@.
- * manual/install.texi (Configuring and compiling): Remove
- --without-fp.
- * INSTALL: Regenerated.
- * sysdeps/m68k/preconfigure (with_fp_cond): Define for ColdFire.
- * sysdeps/mips/preconfigure (with_fp_cond): Define.
- * sysdeps/powerpc/preconfigure (with_fp_cond): Define for 32-bit.
- * sysdeps/sh/preconfigure (with_fp_cond): Define.
- * scripts/build-many-glibcs.py (Context.add_all_configs): Do not
- use --without-fp to configure glibc.
-
-2017-12-12 Rical Jasan <ricaljasan@pacific.net>
-
- * manual/locale.texi (nl_langinfo): Fix a typo.
-
-2017-12-12 Aurelien Jarno <aurelien@aurel32.net>
-
- [BZ #22588]
- * manual/conf.texi (SC_SSIZE_MAX): Rename into _SC_SSIZE_MAX.
-
-2017-12-11 H.J. Lu <hongjiu.lu@intel.com>
-
- * argp/Makefile (CFLAGS-argp-help.c): Replace = with +=.
- (CFLAGS-argp-parse.c): Likewise.
- (CFLAGS-argp-fmtstream.c): Likewise.
- * crypt/Makefile (CPPFLAGS-sha256-crypt.c): Likewise.
- (CPPFLAGS-sha512-crypt.c): Likewise.
- (CPPFLAGS-md5-crypt.c): Likewise.
- * debug/Makefile (CFLAGS-stack_chk_fail.c): Likewise.
- (CFLAGS-stack_chk_fail_local.c): Likewise.
- (CFLAGS-backtrace.c): Likewise.
- (CFLAGS-sprintf_chk.c): Likewise.
- (CFLAGS-snprintf_chk.c): Likewise.
- (CFLAGS-vsprintf_chk.c): Likewise.
- (CFLAGS-vsnprintf_chk.c): Likewise.
- (CFLAGS-asprintf_chk.c): Likewise.
- (CFLAGS-vasprintf_chk.c): Likewise.
- (CFLAGS-obprintf_chk.c): Likewise.
- (CFLAGS-dprintf_chk.c): Likewise.
- (CFLAGS-vdprintf_chk.c): Likewise.
- (CFLAGS-printf_chk.c): Likewise.
- (CFLAGS-fprintf_chk.c): Likewise.
- (CFLAGS-vprintf_chk.c): Likewise.
- (CFLAGS-vfprintf_chk.c): Likewise.
- (CFLAGS-gets_chk.c): Likewise.
- (CFLAGS-fgets_chk.c): Likewise.
- (CFLAGS-fgets_u_chk.c): Likewise.
- (CFLAGS-fread_chk.c): Likewise.
- (CFLAGS-fread_u_chk.c): Likewise.
- (CFLAGS-swprintf_chk.c): Likewise.
- (CFLAGS-vswprintf_chk.c): Likewise.
- (CFLAGS-wprintf_chk.c): Likewise.
- (CFLAGS-fwprintf_chk.c): Likewise.
- (CFLAGS-vwprintf_chk.c): Likewise.
- (CFLAGS-vfwprintf_chk.c): Likewise.
- (CFLAGS-fgetws_chk.c): Likewise.
- (CFLAGS-fgetws_u_chk.c): Likewise.
- (CFLAGS-read_chk.c): Likewise.
- (CFLAGS-pread_chk.c): Likewise.
- (CFLAGS-pread64_chk.c): Likewise.
- (CFLAGS-recv_chk.c): Likewise.
- (CFLAGS-recvfrom_chk.c): Likewise.
- (CFLAGS-tst-longjmp_chk.c): Likewise.
- (CPPFLAGS-tst-longjmp_chk.c): Likewise.
- (CFLAGS-tst-longjmp_chk2.c): Likewise.
- (CPPFLAGS-tst-longjmp_chk2.c): Likewise.
- (CFLAGS-tst-longjmp_chk3.c): Likewise.
- (CPPFLAGS-tst-longjmp_chk3.c): Likewise.
- (CFLAGS-tst-chk1.c): Likewise.
- (CFLAGS-tst-chk2.c): Likewise.
- (CFLAGS-tst-chk3.c): Likewise.
- (CFLAGS-tst-chk4.cc): Likewise.
- (CFLAGS-tst-chk5.cc): Likewise.
- (CFLAGS-tst-chk6.cc): Likewise.
- (CFLAGS-tst-lfschk1.c): Likewise.
- (CFLAGS-tst-lfschk2.c): Likewise.
- (CFLAGS-tst-lfschk3.c): Likewise.
- (CFLAGS-tst-lfschk4.cc): Likewise.
- (CFLAGS-tst-lfschk5.cc): Likewise.
- (CFLAGS-tst-lfschk6.cc): Likewise.
- (CFLAGS-tst-ssp-1.c): Likewise.
- * dirent/Makefile (CFLAGS-scandir.c): Likewise.
- (CFLAGS-scandir64.c): Likewise.
- (CFLAGS-scandir-tail.c): Likewise.
- (CFLAGS-scandir64-tail.c): Likewise.
- * elf/Makefile (CPPFLAGS-dl-tunables.c): Likewise.
- (CFLAGS-dl-tunables.c): Likewise.
- (CFLAGS-dl-runtime.c): Likewise.
- (CFLAGS-dl-lookup.c): Likewise.
- (CFLAGS-dl-iterate-phdr.c): Likewise.
- (CFLAGS-vismain.c): Likewise.
- (CFLAGS-tst-linkall-static.c): Likewise.
- (CFLAGS-tst-linkall-static.c): Likewise.
- (CPPFLAGS-dl-load.c): Likewise.
- (CFLAGS-ldconfig.c): Likewise.
- (CFLAGS-dl-cache.c): Likewise.
- (CFLAGS-cache.c): Likewise.
- (CFLAGS-rtld.c): Likewise.
- (CFLAGS-multiload.c): Likewise.
- (CFLAGS-filtmod1.c): Likewise.
- (CFLAGS-tst-align.c): Likewise.
- (CFLAGS-tst-align2.c): Likewise.
- (CFLAGS-tst-alignmod.c): Likewise.
- (CFLAGS-tst-alignmod2.c): Likewise.
- (CPPFLAGS-tst-execstack.c): Likewise.
- (CFLAGS-tst-ptrguard1-static.c): Likewise.
- (CFLAGS-tst-latepthreadmod.c): Likewise.
- * grp/Makefile (CFLAGS-getgrgid_r.c): Likewise.
- (CFLAGS-getgrnam_r.c): Likewise.
- (CFLAGS-getgrent_r.c): Likewise.
- (CFLAGS-getgrent.c): Likewise.
- (CFLAGS-fgetgrent.c): Likewise.
- (CFLAGS-fgetgrent_r.c): Likewise.
- (CFLAGS-putgrent.c): Likewise.
- (CFLAGS-initgroups.c): Likewise.
- (CFLAGS-getgrgid.c): Likewise.
- * gshadow/Makefile (CFLAGS-getsgent_r.c): Likewise.
- (CFLAGS-getsgent.c): Likewise.
- (CFLAGS-fgetsgent.c): Likewise.
- (CFLAGS-fgetsgent_r.c): Likewise.
- (CFLAGS-putsgent.c): Likewise.
- (CFLAGS-getsgnam.c): Likewise.
- (CFLAGS-getsgnam_r.c): Likewise.
- * iconv/Makefile (CFLAGS-iconv_prog.c): Likewise.
- (CFLAGS-iconv_charmap.c): Likewise.
- (CFLAGS-dummy-repertoire.c): Likewise.
- (CFLAGS-charmap.c): Likewise.
- (CFLAGS-linereader.c): Likewise.
- (CFLAGS-simple-hash.c): Likewise.
- (CFLAGS-gconv_conf.c): Likewise.
- (CFLAGS-iconvconfig.c): Likewise.
- * inet/Makefile (CFLAGS-gethstbyad_r.c): Likewise.
- (CFLAGS-gethstbyad.c): Likewise.
- (CFLAGS-gethstbynm_r.c): Likewise.
- (CFLAGS-gethstbynm.c): Likewise.
- (CFLAGS-gethstbynm2_r.c): Likewise.
- (CFLAGS-gethstbynm2.c): Likewise.
- (CFLAGS-gethstent_r.c): Likewise.
- (CFLAGS-gethstent.c): Likewise.
- (CFLAGS-rcmd.c): Likewise.
- (CFLAGS-getnetbynm_r.c): Likewise.
- (CFLAGS-getnetbynm.c): Likewise.
- (CFLAGS-getnetbyad_r.c): Likewise.
- (CFLAGS-getnetbyad.c): Likewise.
- (CFLAGS-getnetent_r.c): Likewise.
- (CFLAGS-getnetent.c): Likewise.
- (CFLAGS-getaliasent_r.c): Likewise.
- (CFLAGS-getaliasent.c): Likewise.
- (CFLAGS-getrpcent_r.c): Likewise.
- (CFLAGS-getrpcent.c): Likewise.
- (CFLAGS-getservent_r.c): Likewise.
- (CFLAGS-getservent.c): Likewise.
- (CFLAGS-getprtent_r.c): Likewise.
- (CFLAGS-getprtent.c): Likewise.
- (CFLAGS-either_ntoh.c): Likewise.
- (CFLAGS-either_hton.c): Likewise.
- (CFLAGS-getnetgrent.c): Likewise.
- (CFLAGS-getnetgrent_r.c): Likewise.
- (CFLAGS-tst-checks-posix.c): Likewise.
- (CFLAGS-tst-sockaddr.c): Likewise.
- * intl/Makefile (CFLAGS-tst-gettext.c): Likewise.
- (CFLAGS-tst-translit.c): Likewise.
- (CFLAGS-tst-gettext2.c): Likewise.
- (CFLAGS-tst-codeset.c): Likewise.
- (CFLAGS-tst-gettext3.c): Likewise.
- (CFLAGS-tst-gettext4.c): Likewise.
- (CFLAGS-tst-gettext5.c): Likewise.
- (CFLAGS-tst-gettext6.c): Likewise.
- * io/Makefile (CFLAGS-open.c): Likewise.
- (CFLAGS-open64.c): Likewise.
- (CFLAGS-creat.c): Likewise.
- (CFLAGS-creat64.c): Likewise.
- (CFLAGS-fcntl.c): Likewise.
- (CFLAGS-poll.c): Likewise.
- (CFLAGS-ppoll.c): Likewise.
- (CFLAGS-lockf.c): Likewise.
- (CFLAGS-statfs.c): Likewise.
- (CFLAGS-fstatfs.c): Likewise.
- (CFLAGS-statvfs.c): Likewise.
- (CFLAGS-fstatvfs.c): Likewise.
- (CFLAGS-fts.c): Likewise.
- (CFLAGS-fts64.c): Likewise.
- (CFLAGS-ftw.c): Likewise.
- (CFLAGS-ftw64.c): Likewise.
- (CFLAGS-lockf.c): Likewise.
- (CFLAGS-posix_fallocate.c): Likewise.
- (CFLAGS-posix_fallocate64.c): Likewise.
- (CFLAGS-fallocate.c): Likewise.
- (CFLAGS-fallocate64.c): Likewise.
- (CFLAGS-read.c): Likewise.
- (CFLAGS-write.c): Likewise.
- (CFLAGS-test-stat.c): Likewise.
- (CFLAGS-test-lfs.c): Likewise.
- * libio/Makefile (CFLAGS-fileops.c): Likewise.
- (CFLAGS-fputc.c): Likewise.
- (CFLAGS-fputwc.c): Likewise.
- (CFLAGS-freopen64.c): Likewise.
- (CFLAGS-freopen.c): Likewise.
- (CFLAGS-fseek.c): Likewise.
- (CFLAGS-fseeko64.c): Likewise.
- (CFLAGS-fseeko.c): Likewise.
- (CFLAGS-ftello64.c): Likewise.
- (CFLAGS-ftello.c): Likewise.
- (CFLAGS-fwide.c): Likewise.
- (CFLAGS-genops.c): Likewise.
- (CFLAGS-getc.c): Likewise.
- (CFLAGS-getchar.c): Likewise.
- (CFLAGS-getwc.c): Likewise.
- (CFLAGS-getwchar.c): Likewise.
- (CFLAGS-iofclose.c): Likewise.
- (CFLAGS-iofflush.c): Likewise.
- (CFLAGS-iofgetpos64.c): Likewise.
- (CFLAGS-iofgetpos.c): Likewise.
- (CFLAGS-iofgets.c): Likewise.
- (CFLAGS-iofgetws.c): Likewise.
- (CFLAGS-iofputs.c): Likewise.
- (CFLAGS-iofputws.c): Likewise.
- (CFLAGS-iofread.c): Likewise.
- (CFLAGS-iofsetpos64.c): Likewise.
- (CFLAGS-iofsetpos.c): Likewise.
- (CFLAGS-ioftell.c): Likewise.
- (CFLAGS-iofwrite.c): Likewise.
- (CFLAGS-iogetdelim.c): Likewise.
- (CFLAGS-iogetline.c): Likewise.
- (CFLAGS-iogets.c): Likewise.
- (CFLAGS-iogetwline.c): Likewise.
- (CFLAGS-ioputs.c): Likewise.
- (CFLAGS-ioseekoff.c): Likewise.
- (CFLAGS-ioseekpos.c): Likewise.
- (CFLAGS-iosetbuffer.c): Likewise.
- (CFLAGS-iosetvbuf.c): Likewise.
- (CFLAGS-ioungetc.c): Likewise.
- (CFLAGS-ioungetwc.c): Likewise.
- (CFLAGS-oldfileops.c): Likewise.
- (CFLAGS-oldiofclose.c): Likewise.
- (CFLAGS-oldiofgetpos64.c): Likewise.
- (CFLAGS-oldiofgetpos.c): Likewise.
- (CFLAGS-oldiofsetpos64.c): Likewise.
- (CFLAGS-oldiofsetpos.c): Likewise.
- (CFLAGS-peekc.c): Likewise.
- (CFLAGS-putc.c): Likewise.
- (CFLAGS-putchar.c): Likewise.
- (CFLAGS-putwc.c): Likewise.
- (CFLAGS-putwchar.c): Likewise.
- (CFLAGS-rewind.c): Likewise.
- (CFLAGS-wfileops.c): Likewise.
- (CFLAGS-wgenops.c): Likewise.
- (CFLAGS-oldiofopen.c): Likewise.
- (CFLAGS-iofopen.c): Likewise.
- (CFLAGS-iofopen64.c): Likewise.
- (CFLAGS-oldtmpfile.c): Likewise.
- (CFLAGS-tst_putwc.c): Likewise.
- * locale/Makefile (CFLAGS-md5.c): Likewise.
- (CFLAGS-charmap.c): Likewise.
- (CFLAGS-locfile.c): Likewise.
- (CFLAGS-charmap-dir.c): Likewise.
- * login/Makefile (CFLAGS-grantpt.c): Likewise.
- (CFLAGS-getpt.c): Likewise.
- (CFLAGS-pt_chown.c): Likewise.
- * malloc/Makefile (CFLAGS-mcheck-init.c): Likewise.
- (CFLAGS-obstack.c): Likewise.
- * math/Makefile (CFLAGS-test-tgmath3.c): Likewise.
- (CFLAGS-test-double-vlen4-wrappers.c): Likewise.
- (CFLAGS-test-double-vlen8-wrappers.c): Likewise.
- (CFLAGS-test-float-vlen8-wrappers.c): Likewise.
- (CFLAGS-test-float-vlen16-wrappers.c): Likewise.
- (CFLAGS-test-tgmath.c): Likewise.
- (CFLAGS-test-tgmath2.c): Likewise.
- (CFLAGS-test-tgmath-ret.c): Likewise.
- (CFLAGS-test-powl.c): Likewise.
- (CFLAGS-test-snan.c): Likewise.
- (CFLAGS-test-signgam-finite.c): Likewise.
- (CFLAGS-test-signgam-finite-c99.c): Likewise.
- (CFLAGS-test-signgam-finite-c11.c): Likewise.
- (CFLAGS-test-signgam-uchar.c): Likewise.
- (CFLAGS-test-signgam-uchar-init.c): Likewise.
- (CFLAGS-test-signgam-uchar-static.c): Likewise.
- (CFLAGS-test-signgam-uchar-init-static.c): Likewise.
- (CFLAGS-test-signgam-uint.c): Likewise.
- (CFLAGS-test-signgam-uint-init.c): Likewise.
- (CFLAGS-test-signgam-uint-static.c): Likewise.
- (CFLAGS-test-signgam-uint-init-static.c): Likewise.
- (CFLAGS-test-signgam-ullong.c): Likewise.
- (CFLAGS-test-signgam-ullong-init.c): Likewise.
- (CFLAGS-test-signgam-ullong-static.c): Likewise.
- (CFLAGS-test-signgam-ullong-init-static.c): Likewise.
- (CFLAGS-test-math-cxx11.cc): Likewise.
- (CFLAGS-test-math-isinff.cc): Likewise.
- (CFLAGS-test-math-iszero.cc): Likewise.
- (CFLAGS-test-math-issignaling.cc): Likewise.
- (CFLAGS-test-math-iscanonical.cc): Likewise.
- (CFLAGS-test-iszero-excess-precision.c): Likewise.
- (CFLAGS-test-iseqsig-excess-precision.c): Likewise.
- (CFLAGS-test-flt-eval-method.c): Likewise.
- (CFLAGS-test-fe-snans-always-signal.c): Likewise.
- (CFLAGS-test-finite-macros.c): Likewise.
- * misc/Makefile (CFLAGS-select.c): Likewise.
- (CFLAGS-tsearch.c): Likewise.
- (CFLAGS-lsearch.c): Likewise.
- (CFLAGS-pselect.c): Likewise.
- (CFLAGS-readv.c): Likewise.
- (CFLAGS-writev.c): Likewise.
- (CFLAGS-preadv.c): Likewise.
- (CFLAGS-preadv64.c): Likewise.
- (CFLAGS-pwritev.c): Likewise.
- (CFLAGS-pwritev64.c): Likewise.
- (CFLAGS-preadv2.c): Likewise.
- (CFLAGS-preadv64v2.c): Likewise.
- (CFLAGS-pwritev2.c): Likewise.
- (CFLAGS-pwritev64v2.c): Likewise.
- (CFLAGS-usleep.c): Likewise.
- (CFLAGS-syslog.c): Likewise.
- (CFLAGS-error.c): Likewise.
- (CFLAGS-getpass.c): Likewise.
- (CFLAGS-mkstemp.c): Likewise.
- (CFLAGS-mkstemp64.c): Likewise.
- (CFLAGS-getsysstats.c): Likewise.
- (CFLAGS-getusershell.c): Likewise.
- (CFLAGS-err.c): Likewise.
- (CFLAGS-tst-tsearch.c): Likewise.
- (CFLAGS-msync.c): Likewise.
- (CFLAGS-fdatasync.c): Likewise.
- (CFLAGS-fsync.c): Likewise.
- * nptl/Makefile (CFLAGS-nptl-init.c): Likewise.
- (CFLAGS-unwind.c): Likewise.
- (CFLAGS-unwind-forcedunwind.c): Likewise.
- (CFLAGS-pthread_cancel.c): Likewise.
- (CFLAGS-pthread_setcancelstate.c): Likewise.
- (CFLAGS-pthread_setcanceltype.c): Likewise.
- (CFLAGS-cancellation.c): Likewise.
- (CFLAGS-libc-cancellation.c): Likewise.
- (CFLAGS-pthread_exit.c): Likewise.
- (CFLAGS-forward.c): Likewise.
- (CFLAGS-pthread_testcancel.c): Likewise.
- (CFLAGS-pthread_join.c): Likewise.
- (CFLAGS-pthread_timedjoin.c): Likewise.
- (CFLAGS-pthread_once.c): Likewise.
- (CFLAGS-pthread_cond_wait.c): Likewise.
- (CFLAGS-sem_wait.c): Likewise.
- (CFLAGS-sem_timedwait.c): Likewise.
- (CFLAGS-fcntl.c): Likewise.
- (CFLAGS-lockf.c): Likewise.
- (CFLAGS-pread.c): Likewise.
- (CFLAGS-pread64.c): Likewise.
- (CFLAGS-pwrite.c): Likewise.
- (CFLAGS-pwrite64.c): Likewise.
- (CFLAGS-wait.c): Likewise.
- (CFLAGS-waitpid.c): Likewise.
- (CFLAGS-sigwait.c): Likewise.
- (CFLAGS-msgrcv.c): Likewise.
- (CFLAGS-msgsnd.c): Likewise.
- (CFLAGS-tcdrain.c): Likewise.
- (CFLAGS-open.c): Likewise.
- (CFLAGS-open64.c): Likewise.
- (CFLAGS-pause.c): Likewise.
- (CFLAGS-recv.c): Likewise.
- (CFLAGS-send.c): Likewise.
- (CFLAGS-accept.c): Likewise.
- (CFLAGS-sendto.c): Likewise.
- (CFLAGS-connect.c): Likewise.
- (CFLAGS-recvfrom.c): Likewise.
- (CFLAGS-recvmsg.c): Likewise.
- (CFLAGS-sendmsg.c): Likewise.
- (CFLAGS-close.c): Likewise.
- (CFLAGS-read.c): Likewise.
- (CFLAGS-write.c): Likewise.
- (CFLAGS-nanosleep.c): Likewise.
- (CFLAGS-sigsuspend.c): Likewise.
- (CFLAGS-msync.c): Likewise.
- (CFLAGS-fdatasync.c): Likewise.
- (CFLAGS-fsync.c): Likewise.
- (CFLAGS-pt-system.c): Likewise.
- (CFLAGS-tst-cleanup2.c): Likewise.
- (CFLAGS-tst-cleanupx2.c): Likewise.
- (CFLAGS-flockfile.c): Likewise.
- (CFLAGS-ftrylockfile.c): Likewise.
- (CFLAGS-funlockfile.c): Likewise.
- (CFLAGS-tst-initializers1.c): Likewise.
- (CFLAGS-tst-initializers1-c89.c): Likewise.
- (CFLAGS-tst-initializers1-c99.c): Likewise.
- (CFLAGS-tst-initializers1-c11.c): Likewise.
- (CFLAGS-tst-initializers1-gnu89.c): Likewise.
- (CFLAGS-tst-initializers1-gnu99.c): Likewise.
- (CFLAGS-tst-initializers1-gnu11.c): Likewise.
- * nscd/Makefile (CFLAGS-nscd_getpw_r.c): Likewise.
- (CFLAGS-nscd_getgr_r.c): Likewise.
- (CFLAGS-nscd_gethst_r.c): Likewise.
- (CFLAGS-nscd_getai.c): Likewise.
- (CFLAGS-nscd_initgroups.c): Likewise.
- * posix/Makefile (CFLAGS-getaddrinfo.c): Likewise.
- (CFLAGS-pause.c): Likewise.
- (CFLAGS-pread.c): Likewise.
- (CFLAGS-pread64.c): Likewise.
- (CFLAGS-pwrite.c): Likewise.
- (CFLAGS-pwrite64.c): Likewise.
- (CFLAGS-sleep.c): Likewise.
- (CFLAGS-wait.c): Likewise.
- (CFLAGS-waitid.c): Likewise.
- (CFLAGS-waitpid.c): Likewise.
- (CFLAGS-getopt.c): Likewise.
- (CFLAGS-wordexp.c): Likewise.
- (CFLAGS-sysconf.c): Likewise.
- (CFLAGS-pathconf.c): Likewise.
- (CFLAGS-fpathconf.c): Likewise.
- (CFLAGS-spawn.c): Likewise.
- (CFLAGS-spawnp.c): Likewise.
- (CFLAGS-spawni.c): Likewise.
- (CFLAGS-glob.c): Likewise.
- (CFLAGS-glob64.c): Likewise.
- (CFLAGS-getconf.c): Likewise.
- (CFLAGS-nanosleep.c): Likewise.
- * pwd/Makefile (CFLAGS-getpwent_r.c): Likewise.
- (CFLAGS-getpwent.c): Likewise.
- (CFLAGS-getpw.c): Likewise.
- (CFLAGS-fgetpwent_r.c): Likewise.
- * resolv/Makefile (CFLAGS-res_hconf.c): Likewise.
- * rt/Makefile (CFLAGS-aio_suspend.c): Likewise.
- (CFLAGS-mq_timedreceive.c): Likewise.
- (CFLAGS-mq_timedsend.c): Likewise.
- (CFLAGS-clock_nanosleep.c): Likewise.
- (CFLAGS-librt-cancellation.c): Likewise.
- * shadow/Makefile (CFLAGS-getspent_r.c): Likewise.
- (CFLAGS-getspent.c): Likewise.
- (CFLAGS-fgetspent.c): Likewise.
- (CFLAGS-fgetspent_r.c): Likewise.
- (CFLAGS-putspent.c): Likewise.
- (CFLAGS-getspnam.c): Likewise.
- (CFLAGS-getspnam_r.c): Likewise.
- * signal/Makefile (CFLAGS-sigpause.c): Likewise.
- (CFLAGS-sigsuspend.c): Likewise.
- (CFLAGS-sigtimedwait.c): Likewise.
- (CFLAGS-sigwait.c): Likewise.
- (CFLAGS-sigwaitinfo.c): Likewise.
- (CFLAGS-sigreturn.c): Likewise.
- * stdio-common/Makefile (CFLAGS-vfprintf.c): Likewise.
- (CFLAGS-vfwprintf.c): Likewise.
- (CFLAGS-tmpfile.c): Likewise.
- (CFLAGS-tmpfile64.c): Likewise.
- (CFLAGS-tempname.c): Likewise.
- (CFLAGS-psignal.c): Likewise.
- (CFLAGS-vprintf.c): Likewise.
- (CFLAGS-cuserid.c): Likewise.
- (CFLAGS-errlist.c): Likewise.
- (CFLAGS-siglist.c): Likewise.
- (CFLAGS-scanf15.c): Likewise.
- (CFLAGS-scanf17.c): Likewise.
- * stdlib/Makefile (CFLAGS-bsearch.c): Likewise.
- (CFLAGS-msort.c): Likewise.
- (CFLAGS-qsort.c): Likewise.
- (CFLAGS-system.c): Likewise.
- (CFLAGS-fmtmsg.c): Likewise.
- (CFLAGS-strfmon.c): Likewise.
- (CFLAGS-strfmon_l.c): Likewise.
- (CFLAGS-strfromd.c): Likewise.
- (CFLAGS-strfromf.c): Likewise.
- (CFLAGS-strfroml.c): Likewise.
- (CFLAGS-tst-bsearch.c): Likewise.
- (CFLAGS-tst-qsort.c): Likewise.
- (CFLAGS-tst-makecontext2.c): Likewise.
- * sunrpc/Makefile (CFLAGS-xbootparam_prot.c): Likewise.
- (CFLAGS-xnlm_prot.c): Likewise.
- (CFLAGS-xrstat.c): Likewise.
- (CFLAGS-xyppasswd.c): Likewise.
- (CFLAGS-xklm_prot.c): Likewise.
- (CFLAGS-xrex.c): Likewise.
- (CFLAGS-xsm_inter.c): Likewise.
- (CFLAGS-xmount.c): Likewise.
- (CFLAGS-xrusers.c): Likewise.
- (CFLAGS-xspray.c): Likewise.
- (CFLAGS-xnfs_prot.c): Likewise.
- (CFLAGS-xrquota.c): Likewise.
- (CFLAGS-xkey_prot.c): Likewise.
- (CFLAGS-auth_unix.c): Likewise.
- (CFLAGS-key_call.c): Likewise.
- (CFLAGS-pmap_rmt.c): Likewise.
- (CFLAGS-clnt_perr.c): Likewise.
- (CFLAGS-openchild.c): Likewise.
- * sysvipc/Makefile (CFLAGS-msgrcv.c): Likewise.
- (CFLAGS-msgsnd.c): Likewise.
- * termios/Makefile (CFLAGS-tcdrain.c): Likewise.
- * time/Makefile (CFLAGS-tzfile.c): Likewise.
- (CFLAGS-tzset.c): Likewise.
- (CFLAGS-getdate.c): Likewise.
- (CFLAGS-test_time.c): Likewise.
- (CPPFLAGS-tst-tzname.c): Likewise.
- * timezone/Makefile (CFLAGS-zdump.c): Likewise.
- (CFLAGS-zic.c): Likewise.
- * wcsmbs/Makefile (CFLAGS-wcwidth.c): Likewise.
- (CFLAGS-wcswidth.c): Likewise.
- (CFLAGS-wcstol.c): Likewise.
- (CFLAGS-wcstoul.c): Likewise.
- (CFLAGS-wcstoll.c): Likewise.
- (CFLAGS-wcstoull.c): Likewise.
- (CFLAGS-wcstod.c): Likewise.
- (CFLAGS-wcstold.c): Likewise.
- (CFLAGS-wcstof128.c): Likewise.
- (CFLAGS-wcstof.c): Likewise.
- (CFLAGS-wcstol_l.c): Likewise.
- (CFLAGS-wcstoul_l.c): Likewise.
- (CFLAGS-wcstoll_l.c): Likewise.
- (CFLAGS-wcstoull_l.c): Likewise.
- (CFLAGS-wcstod_l.c): Likewise.
- (CFLAGS-wcstold_l.c): Likewise.
- (CFLAGS-wcstof128_l.c): Likewise.
- (CFLAGS-wcstof_l.c): Likewise.
- (CPPFLAGS-tst-wchar-h.c): Likewise.
- (CPPFLAGS-wcstold_l.c): Likewise.
----
-2017-12-11 Paul A. Clarke <pc@us.ibm.com>
-
- * sysdeps/ieee754/flt-32/s_cosf.c: New implementation.
-
-2017-12-11 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
- Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
-
- * manual/tunables.texi (Hardware Capability Tunables): Document
- glibc.tune.cached_memopt.
- * sysdeps/powerpc/cpu-features.c: New file.
- * sysdeps/powerpc/cpu-features.h: New file.
- * sysdeps/powerpc/dl-procinfo.c [!IS_IN(ldconfig)]: Add
- _dl_powerpc_cpu_features.
- * sysdeps/powerpc/dl-tunables.list: New file.
- * sysdeps/powerpc/ldsodefs.h: Include cpu-features.h.
- * sysdeps/powerpc/powerpc32/power4/multiarch/init-arch.h
- (INIT_ARCH): Initialize use_aligned_memopt.
- * sysdeps/powerpc/powerpc64/dl-machine.h [defined(SHARED &&
- IS_IN(rtld))]: Restrict dl_platform_init availability and
- initialize CPU features used by tunables.
- * sysdeps/powerpc/powerpc64/multiarch/Makefile (sysdep_routines):
- Add memcpy-power8-cached.
- * sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c: Add
- __memcpy_power8_cached.
- * sysdeps/powerpc/powerpc64/multiarch/memcpy.c: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/memcpy-power8-cached.S:
- New file.
-
-2017-12-11 H.J. Lu <hongjiu.lu@intel.com>
-
- * string/Makefile (CFLAGS-inl-tester.c): Replace = with +=.
- (CFLAGS-noinl-tester.c): Likewise.
- (CFLAGS-tst-strlen.c): Likewise.
- (CFLAGS-stratcliff.c): Likewise.
- (CFLAGS-test-ffs.c): Likewise.
- (CFLAGS-tst-inlcall.c): Likewise.
- (CFLAGS-tst-xbzero-opt.c): Likewise.
- (CFLAGS-memcpy.c): Likewise.
- (CFLAGS-wordcopy.c): Likewise.
-
-2017-12-11 Stefan Liebler <stli@linux.vnet.ibm.com>
-
- * sysdeps/s390/s390-64/dl-trampoline.h (_dl_runtime_resolve):
- Store r15 on stack and add cfi rule.
- * sysdeps/s390/s390-32/dl-trampoline.h (_dl_runtime_resolve):
- Likewise.
-
-2017-12-10 Aurelien Jarno <aurelien@aurel32.net>
-
- [BZ #22577]
- * elf/rtld.c (init_tls): Add missing new line to the _dl_fatal_printf
- call.
-
-2017-12-07 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/x86_64/fpu/multiarch/Makefile (libm-sysdep_routines):
- Add s_sinf-sse2 and s_sinf-fma.
- (CFLAGS-s_sinf-fma.c): New.
- * sysdeps/x86_64/fpu/multiarch/s_sinf-fma.c: New file.
- * sysdeps/x86_64/fpu/multiarch/s_sinf-sse2.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/s_sinf.c: Likewise.
-
-2017-12-07 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/x86_64/fpu/s_sinf.S: Removed.
-
-2017-12-07 Joseph Myers <joseph@codesourcery.com>
-
- [BZ #22568]
- * math/s_ctan_template.c (M_DECL_FUNC (__ctan)): Set imaginary
- part of result to imaginary part of argument if it is zero and the
- real part of the argument is not finite.
- * math/s_ctanh_template.c (M_DECL_FUNC (__ctanh)): Set real part
- of result to real part of argument if it is zero and the imaginary
- part of the argument is not finite.
-
-2017-12-07 Mike FABIAN <mfabian@redhat.com>
-
- [BZ #22524]
- * localedata/Makefile: Add lt_LT.UTF-8 to test-input
- and to the list of locales to be built for testing.
- * localedata/lt_LT.UTF-8.in: New file for testing the collation.
- * localedata/locales/lt_LT (LC_COLLATE): Use “copy "iso14651_t1"â€
- and build the collation rules upon that.
-
-2017-12-07 Joseph Myers <joseph@codesourcery.com>
-
- * bits/floatn-common.h (__HAVE_FLOAT32): Define to 1.
- * manual/math.texi (Mathematics): Document support for _Float32.
- * math/Makefile (test-types): Add float32.
- * math/Versions (GLIBC_2.27): Add _Float32 functions.
- * stdlib/Versions (GLIBC_2.27): Likewise.
- * wcsmbs/Versions (GLIBC_2.27): Likewise.
- * sysdeps/unix/sysv/linux/aarch64/libc.abilist: Update.
- * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/alpha/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/arm/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/hppa/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/i386/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/ia64/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/microblaze/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/nios2/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist:
- Likewise.
-
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sh/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
- * sysdeps/i386/fpu/libm-test-ulps: Likewise.
- * sysdeps/i386/i686/fpu/multiarch/libm-test-ulps: Likewise.
-
-2017-12-06 Joseph Myers <joseph@codesourcery.com>
-
- * stdlib/strtof.c: Include <bits/floatn.h>
- [__HAVE_FLOAT32 && !__HAVE_DISTINCT_FLOAT32] (strtof32): Define
- and later undefine as macro. Define as weak alias if
- [!USE_WIDE_CHAR].
- [__HAVE_FLOAT32 && !__HAVE_DISTINCT_FLOAT32] (wcstof32): Define
- and later undefine as macro. Define as weak alias if
- [USE_WIDE_CHAR].
- * stdlib/strtof_l.c: Include <bits/floatn.h>
- [__HAVE_FLOAT32 && !__HAVE_DISTINCT_FLOAT32] (strtof32_l): Define
- and later undefine as macro. Define as weak alias if
- [!USE_WIDE_CHAR].
- [__HAVE_FLOAT32 && !__HAVE_DISTINCT_FLOAT32] (wcstof32_l): Define
- and later undefine as macro. Define as weak alias if
- [USE_WIDE_CHAR].
-
- * stdlib/strfromf.c: Include <bits/floatn.h>.
- [__HAVE_FLOAT32 && !__HAVE_DISTINCT_FLOAT32] (strfromf32): Define
- and later undefine as macro and define as weak alias.
-
- * math/test-float32.h: New file.
-
- * sysdeps/generic/libm-alias-float.h: Include <bits/floatn.h>.
- [__HAVE_FLOAT32 && !__HAVE_DISTINCT_FLOAT32]
- (libm_alias_float_other_r): Create f32 alias.
- (libm_alias_float_r): Use semicolon before call to
- libm_alias_float_other_r.
-
- * sysdeps/ia64/fpu/e_exp2f.S (__exp2f): Use exp2 not __exp2 as
- second argument to libm_alias_float_other.
- * sysdeps/ia64/fpu/e_log2f.S (__log2f): Use log2 not __log2 as
- second argument to libm_alias_float_other.
- * sysdeps/ia64/fpu/e_powf.S (__powf): Use pow not __pow as second
- argument to libm_alias_float_other.
-
- [BZ #22561]
- * math/s_cacosh_template.c (M_DECL_FUNC (__cacosh)): Use pi/2 for
- real part of result for argument 0 + i * NaN.
- * math/libm-test-cacosh.inc (cacosh_test_data): Update expected
- results for tests of 0 + i * NaN.
-
-2017-12-06 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * sysdeps/alpha/fpu/libm-test-ulps: Update.
-
-2017-12-06 David S. Miller <davem@davemloft.net>
-
- * sysdeps/sparc/fpu/libm-test-ulps: Update
- exp_{downward,towardzero,upward} ulps.
-
-2017-12-06 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/ieee754/ldbl-96/e_j1l.c (qone): Don't make local
- variables static.
-
- * sysdeps/ieee754/ldbl-128/e_j0l.c (Y0_2N): Make const.
- (Y0_2D): Likewise.
- * sysdeps/ieee754/ldbl-128/e_j1l.c (Y0_2N): Likewise.
- (Y0_2D): Likewise.
- * sysdeps/ieee754/ldbl-128ibm/e_j0l.c (Y0_2N): Likewise.
- (Y0_2D): Likewise.
- * sysdeps/ieee754/ldbl-128ibm/e_j1l.c (Y0_2N): Likewise.
- (Y0_2D): Likewise.
-
-2017-12-06 Mike FABIAN <mfabian@redhat.com>
-
- [BZ #22515]
- * localedata/Makefile: Add hsb_DE.UTF-8 to test-input
- and to the list of locales to be built for testing.
- * localedata/hsb_DE.UTF-8.in: New file for testing the collation.
- * localedata/locales/hsb_DE (LC_COLLATE): Use “copy "iso14651_t1"â€
- and build the collation rules upon that.
-
-2017-12-06 Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>
-
- * NEWS: Add sinf to list of optimized functions.
-
-2017-12-06 Joseph Myers <joseph@codesourcery.com>
-
- * bits/floatn-common.h (__HAVE_FLOAT64): Define to 1.
- (__HAVE_FLOAT32X): Likewise.
- * manual/math.texi (Mathematics): Document support for _Float64
- and _Float32x.
- * math/Makefile (test-types): Add float64 and float32x.
- * math/Versions (GLIBC_2.27): Add _Float64 and _Float32x
- functions.
- * stdlib/Versions (GLIBC_2.27): Likewise.
- * wcsmbs/Versions (GLIBC_2.27): Likewise.
- * sysdeps/unix/sysv/linux/aarch64/libc.abilist: Update.
- * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/alpha/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/arm/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/hppa/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/i386/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/ia64/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/microblaze/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/nios2/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sh/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
- * sysdeps/i386/fpu/libm-test-ulps: Likewise.
- * sysdeps/i386/i686/fpu/multiarch/libm-test-ulps: Likewise.
-
-2017-12-05 Joseph Myers <joseph@codesourcery.com>
-
- * bits/floatn-common.h: Include <bits/long-double.h>.
- [__HAVE_FLOAT64 && (!__GNUC_PREREQ (7, 0) || defined __cplusplus)
- && __NO_LONG_DOUBLE_MATH] (__f64): Use suffix 'l'.
- [__HAVE_FLOAT64 && (!__GNUC_PREREQ (7, 0) || defined __cplusplus)
- && __NO_LONG_DOUBLE_MATH] (__CFLOAT64): Use _Complex long double.
- [__HAVE_FLOAT64 && (!__GNUC_PREREQ (7, 0) || defined __cplusplus)
- && __NO_LONG_DOUBLE_MATH] (_Float64): Use long double.
- [__HAVE_FLOAT64 && !__GNUC_PREREQ (7, 0) && __NO_LONG_DOUBLE_MATH]
- (__builtin_huge_valf64): Use __builtin_huge_vall.
- [__HAVE_FLOAT64 && !__GNUC_PREREQ (7, 0) && __NO_LONG_DOUBLE_MATH]
- (__builtin_inff64): Use __builtin_infl.
- [__HAVE_FLOAT64 && !__GNUC_PREREQ (7, 0) && __NO_LONG_DOUBLE_MATH]
- (__builtin_nanf64): Use __builtin_nanl.
- [__HAVE_FLOAT64 && !__GNUC_PREREQ (7, 0) && __NO_LONG_DOUBLE_MATH]
- (__builtin_nansf64): Use __builtin_nansl.
-
-2017-12-05 Rogerio A. Cardoso <rcardoso@linux.vnet.ibm.com>
- Paul E. Murphy <murphyp@linux.vnet.ibm.com>
- Carlos O'Donnell <carlos@redhat.com>
-
- * elf/dl-tunables.list: Add elision parameters.
- * manual/tunables.texi: Add entries about elision tunable.
- * sysdeps/unix/sysv/linux/powerpc/elision-conf.c:
- Add callback functions to dynamically enable/disable elision.
- Add multiple callbacks functions to set elision parameters.
- Deleted __libc_enable_secure check.
- * sysdeps/unix/sysv/linux/s390/elision-conf.c: Likewise.
- * sysdeps/unix/sysv/linux/x86/elision-conf.c: Likewise.
- * configure: Regenerated.
- * configure.ac: Option enable_lock_elision was deleted.
- * config.h.in: ENABLE_LOCK_ELISION flag was deleted.
- * config.make.in: Remove references to enable_lock_elision.
- * manual/install.texi: Elision configure option was removed.
- * INSTALL: Regenerated to remove enable_lock_elision.
- * nptl/Makefile:
- Disable elision so it can verify error case for destroying a mutex.
- * sysdeps/powerpc/nptl/elide.h:
- Cleanup ENABLE_LOCK_ELISION check.
- Deleted macros for the case when ENABLE_LOCK_ELISION was not defined.
- * sysdeps/s390/configure: Regenerated.
- * sysdeps/s390/configure.ac: Remove references to enable_lock_elision..
- * nptl/tst-mutex8.c:
- Deleted all #ifndef ENABLE_LOCK_ELISION from the test.
- * sysdeps/powerpc/powerpc32/sysdep.h:
- Deleted all ENABLE_LOCK_ELISION checks.
- * sysdeps/powerpc/powerpc64/sysdep.h: Likewise.
- * sysdeps/powerpc/sysdep.h: Likewise.
- * sysdeps/s390/nptl/bits/pthreadtypes-arch.h: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/force-elision.h: Likewise.
- * sysdeps/unix/sysv/linux/s390/elision-conf.h: Likewise.
- * sysdeps/unix/sysv/linux/s390/force-elision.h: Likewise.
- * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
- * sysdeps/unix/sysv/linux/s390/Makefile: Remove references to
- enable-lock-elision.
-
-2017-12-05 Joseph Myers <joseph@codesourcery.com>
-
- * stdlib/strtod.c: Include <bits/floatn.h>.
- (BUILD_DOUBLE): New macro.
- [BUILD_DOUBLE && __HAVE_FLOAT64 && !__HAVE_DISTINCT_FLOAT64]
- (strtof64): Define and later undefine as macro. Define as weak
- alias if [!USE_WIDE_CHAR].
- [BUILD_DOUBLE && __HAVE_FLOAT64 && !__HAVE_DISTINCT_FLOAT64]
- (wcstof64): Define and later undefine as macro. Define as weak
- alias if [USE_WIDE_CHAR].
- [BUILD_DOUBLE && __HAVE_FLOAT32X && !__HAVE_DISTINCT_FLOAT32X]
- (strtof32x): Define and later undefine as macro. Define as weak
- alias if [!USE_WIDE_CHAR].
- [BUILD_DOUBLE && __HAVE_FLOAT32X && !__HAVE_DISTINCT_FLOAT32X]
- (wcstof32x): Define and later undefine as macro. Define as weak
- alias if [USE_WIDE_CHAR].
- * stdlib/strtod_l.c: Include <bits/floatn.h>.
- (BUILD_DOUBLE): New macro.
- [BUILD_DOUBLE && __HAVE_FLOAT64 && !__HAVE_DISTINCT_FLOAT64]
- (strtof64_l): Define and later undefine as macro. Define as weak
- alias if [!USE_WIDE_CHAR].
- [BUILD_DOUBLE && __HAVE_FLOAT64 && !__HAVE_DISTINCT_FLOAT64]
- (wcstof64_l): Define and later undefine as macro. Define as weak
- alias if [USE_WIDE_CHAR].
- [BUILD_DOUBLE && __HAVE_FLOAT32X && !__HAVE_DISTINCT_FLOAT32X]
- (strtof32x_l): Define and later undefine as macro. Define as weak
- alias if [!USE_WIDE_CHAR].
- [BUILD_DOUBLE && __HAVE_FLOAT32X && !__HAVE_DISTINCT_FLOAT32X]
- (wcstof32x_l): Define and later undefine as macro. Define as weak
- alias if [USE_WIDE_CHAR].
-
-2017-12-05 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * sysdeps/ieee754/flt-32/s_sinf.c (ones): Define as double.
- (reduced): Use ones as double instead of integer.
-
-2017-12-05 Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- * sysdeps/ieee754/flt-32/s_sinf.c (sinf): Use isless.
-
-2017-12-05 Joseph Myers <joseph@codesourcery.com>
-
- * stdlib/strfromd.c: Include <bits/floatn.h>.
- [__HAVE_FLOAT64 && !__HAVE_DISTINCT_FLOAT64] (strfromf64): Define
- and later undefine as macro and define as weak alias.
- [__HAVE_FLOAT32X && !__HAVE_DISTINCT_FLOAT32X] (strfromf32x):
- Likewise.
-
- * math/test-float32x.h: New file.
- * math/test-float64.h: Likewise.
-
- * sysdeps/generic/libm-alias-double.h: Include <bits/floatn.h>.
- (libm_alias_double_other_r_f64): New macro.
- (libm_alias_double_other_r_f32x): Likewise.
- (libm_alias_double_other_r): Use libm_alias_double_other_r_f64 and
- libm_alias_double_other_r_f32x.
- (libm_alias_double_r): Use semicolon before call to
- libm_alias_double_other_r.
- * sysdeps/ieee754/ldbl-opt/libm-alias-double.h: Include
- <bits/floatn.h>.
- (libm_alias_double_other_r_f64): New macro.
- (libm_alias_double_other_r_f32x): Likewise.
- (libm_alias_double_other_r): Use libm_alias_double_other_r_f64 and
- libm_alias_double_other_r_f32x.
-
-2017-12-05 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/ieee754/flt-32/s_sinf.c (reduced): Replace long with
- int.
- (SINF_FUNC): Likewise. Replace floor with simple casts.
-
-2017-12-05 Mike FABIAN <mfabian@redhat.com>
-
- [BZ #22517]
- * localedata/Makefile: Add et_EE.UTF-8 to test-input
- and to the list of locales to be built for testing.
- * localedata/et_EE.UTF-8.in: New file for testing the collation.
- * localedata/locales/et_EE (LC_COLLATE): Use “copy "iso14651_t1"â€
- and build the collation rules upon that.
-
-2017-12-05 Chris Metcalf <cmetcalf@mellanox.com>
-
- * sysdeps/tile/tilegx/string-endian.h (VECOP): Provide working
- replacements for __insn_xxx builtins for v1cmpeq, v1cmpltu,
- v1cmpne, v1add, v1shru, v1shl (register and immediate versions).
- * sysdeps/tile/tilegx/memchr.c (__memchr): Use VECOP function
- instead of __insn__xxx.
- * sysdeps/tile/tilegx/rawmemchr.c (__rawmemchr): Likewise.
- * sysdeps/tile/tilegx/strstr.c (strcasechr): Likewise.
- * sysdeps/tile/tilegx/strrchr.c (strrchr): Likewise.
- * sysdeps/tile/tilegx/strlen.c (strlen): Likewise.
- * sysdeps/tile/tilegx/strchrnul.c (__strchrnul): Likewise.
- * sysdeps/tile/tilegx/strchr.c (strchr): Likewise.
-
-2017-12-05 Florian Weimer <fweimer@redhat.com>
-
- Linux: Implement interfaces for memory protection keys
- * support/Makefile (libsupport-routines): Add xraise, xsigaction,
- xsignal, xsysconf.
- * support/xsignal.h (xraise, xsignal, xsigaction): Declare.
- * support/xunistd.h (xsysconf): Declare.
- * support/xraise.c: New file.
- * support/xsigaction.c: Likewise.
- * support/xsignal.c: Likewise.
- * support/xsysconf.c: Likewise.
- * sysdeps/unix/sysv/linux/Makefile [misc] (routines): Add
- pkey_set, pkey_get, pkey_mprotect.
- [misc] (tests): Add tst-pkey.
- (tst-pkey): Link with -lpthread.
- * sysdeps/unix/sysv/linux/Versions (GLIBC_2.27): Add pkey_alloc,
- pkey_free, pkey_set, pkey_get, pkey_mprotect.
- * sysdeps/unix/sysv/linux/bits/mman-linux.h (PKEY_DISABLE_ACCESS)
- (PKEY_DISABLE_WRITE): Define.
- (pkey_alloc, pkey_free, pkey_set, pkey_get, pkey_mprotect):
- Declare.
- * sysdeps/unix/sysv/linux/bits/siginfo-consts.h (SEGV_BNDERR)
- (SEGV_PKUERR): Add.
- * sysdeps/unix/sysv/linux/pkey_get.c: New file.
- * sysdeps/unix/sysv/linux/pkey_set.c: Likewise.
- * sysdeps/unix/sysv/linux/pkey_mprotect.c: Likewise.
- * sysdeps/unix/sysv/linux/syscalls.list (pkey_alloc, pkey_free):
- Add.
- * sysdeps/unix/sysv/linux/tst-pkey.c: New file.
- * sysdeps/unix/sysv/linux/x86/arch-pkey.h: Likewise.
- * sysdeps/unix/sysv/linux/x86/pkey_get.c: Likewise.
- * sysdeps/unix/sysv/linux/x86/pkey_set.c: Likewise.
- * sysdeps/unix/sysv/linux/**.abilist: Update.
-
-2017-12-05 Florian Weimer <fweimer@redhat.com>
-
- * support/tst-test_compare.c (subprocess): Use long long instead
- of long argument for consistent type width across 32-bit and
- 64-bit architectures.
- (do_test): Adjust expected output.
-
-2017-12-05 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/powerpc/fpu/s_cosf.c: Include <libm-alias-float.h>.
- (cosf): Define using libm_alias_float.
- * sysdeps/powerpc/fpu/s_fabs.S: Include <libm-alias-float.h>.
- (fabsf): Define using libm_alias_float.
- * sysdeps/powerpc/fpu/s_fmaf.S: Include <libm-alias-float.h>.
- (fmaf): Define using libm_alias_float.
- * sysdeps/powerpc/fpu/s_rintf.c: Include <libm-alias-float.h>.
- (rintf): Define using libm_alias_float.
- * sysdeps/powerpc/fpu/s_sinf.c: Include <libm-alias-float.h>.
- (sinf): Define using libm_alias_float.
- * sysdeps/powerpc/power5+/fpu/s_modff.c: Include
- <libm-alias-float.h>.
- (modff): Define using libm_alias_float.
- * sysdeps/powerpc/power7/fpu/s_logbf.c: Include
- <libm-alias-float.h>.
- (logbf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc32/fpu/s_ceilf.S: Include
- <libm-alias-float.h>.
- (ceilf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc32/fpu/s_copysign.S: Include
- <libm-alias-float.h>.
- (copysignf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc32/fpu/s_floorf.S: Include
- <libm-alias-float.h>.
- (floorf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc32/fpu/s_llrintf.c: Include
- <libm-alias-float.h>.
- (llrintf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc32/fpu/s_llroundf.c: Include
- <libm-alias-float.h>.
- (llroundf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc32/fpu/s_lrint.S: Include
- <libm-alias-float.h>.
- (lrintf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc32/fpu/s_lround.S: Include
- <libm-alias-float.h>.
- (lroundf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc32/fpu/s_nearbyintf.S: Include
- <libm-alias-float.h>.
- (nearbyintf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc32/fpu/s_rintf.S: Include
- <libm-alias-float.h>.
- (rintf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc32/fpu/s_roundf.S: Include
- <libm-alias-float.h>.
- (roundf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc32/fpu/s_truncf.S: Include
- <libm-alias-float.h>.
- (truncf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceilf.c:
- Include <libm-alias-float.h>.
- (ceilf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysignf.c:
- Include <libm-alias-float.h>.
- (copysignf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floorf.c:
- Include <libm-alias-float.h>.
- (floorf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrintf.c:
- Include <libm-alias-float.h>.
- (llrintf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llroundf.c:
- Include <libm-alias-float.h>.
- (llroundf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbf.c:
- Include <libm-alias-float.h>.
- (logbf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrintf.c:
- Include <libm-alias-float.h>.
- (lrintf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lroundf.c:
- Include <libm-alias-float.h>.
- (lroundf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff.c:
- Include <libm-alias-float.h>.
- (modff): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_roundf.c:
- Include <libm-alias-float.h>.
- (roundf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_truncf.c:
- Include <libm-alias-float.h>.
- (truncf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc32/power4/fpu/s_llrintf.S: Include
- <libm-alias-float.h>.
- (llrintf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc32/power4/fpu/s_llround.S: Include
- <libm-alias-float.h>.
- (llroundf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc32/power5+/fpu/s_ceilf.S: Include
- <libm-alias-float.h>.
- (ceilf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc32/power5+/fpu/s_floorf.S: Include
- <libm-alias-float.h>.
- (floorf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc32/power5+/fpu/s_llround.S: Include
- <libm-alias-float.h>.
- (llroundf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc32/power5+/fpu/s_lround.S: Include
- <libm-alias-float.h>.
- (lroundf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc32/power5+/fpu/s_roundf.S: Include
- <libm-alias-float.h>.
- (roundf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc32/power5+/fpu/s_truncf.S: Include
- <libm-alias-float.h>.
- (truncf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc32/power6/fpu/s_copysign.S: Include
- <libm-alias-float.h>.
- (copysignf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc32/power6/fpu/s_llrintf.S: Include
- <libm-alias-float.h>.
- (llrintf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc32/power6/fpu/s_llround.S: Include
- <libm-alias-float.h>.
- (llroundf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc32/power6x/fpu/s_lrint.S: Include
- <libm-alias-float.h>.
- (lrintf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc32/power6x/fpu/s_lround.S: Include
- <libm-alias-float.h>.
- (lroundf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceilf.c: Include
- <libm-alias-float.h>.
- (ceilf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysignf.c: Include
- <libm-alias-float.h>.
- (copysignf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_cosf.c: Include
- <libm-alias-float.h>.
- (cosf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_floorf.c: Include
- <libm-alias-float.h>.
- (floorf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrintf.c: Include
- <libm-alias-float.h>.
- (llrintf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llroundf.c: Include
- <libm-alias-float.h>.
- (llroundf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbf.c: Include
- <libm-alias-float.h>.
- (logbf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_modff.c: Include
- <libm-alias-float.h>.
- (modff): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_roundf.c: Include
- <libm-alias-float.h>.
- (roundf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf.c: Include
- <libm-alias-float.h>.
- (sinf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_truncf.c: Include
- <libm-alias-float.h>.
- (truncf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc64/fpu/s_ceilf.S: Include
- <libm-alias-float.h>.
- (ceilf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc64/fpu/s_copysign.S: Include
- <libm-alias-float.h>.
- (copysignf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc64/fpu/s_floorf.S: Include
- <libm-alias-float.h>.
- (floorf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc64/fpu/s_llrint.S: Include
- <libm-alias-float.h>.
- (llrintf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc64/fpu/s_llroundf.S: Include
- <libm-alias-float.h>.
- (llroundf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc64/fpu/s_nearbyintf.S: Include
- <libm-alias-float.h>.
- (nearbyintf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc64/fpu/s_rintf.S: Include
- <libm-alias-float.h>.
- (rintf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc64/fpu/s_roundf.S: Include
- <libm-alias-float.h>.
- (roundf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc64/fpu/s_truncf.S: Include
- <libm-alias-float.h>.
- (truncf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc64/power5+/fpu/s_ceilf.S: Include
- <libm-alias-float.h>.
- (ceilf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc64/power5+/fpu/s_floorf.S: Include
- <libm-alias-float.h>.
- (floorf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc64/power5+/fpu/s_llround.S: Include
- <libm-alias-float.h>.
- (llroundf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc64/power5+/fpu/s_roundf.S: Include
- <libm-alias-float.h>.
- (roundf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc64/power5+/fpu/s_truncf.S: Include
- <libm-alias-float.h>.
- (truncf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc64/power6/fpu/s_copysign.S: Include
- <libm-alias-float.h>.
- (copysignf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc64/power6x/fpu/s_llrint.S: Include
- <libm-alias-float.h>.
- (llrintf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc64/power6x/fpu/s_llround.S: Include
- <libm-alias-float.h>.
- (llroundf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc64/power8/fpu/s_cosf.S: Include
- <libm-alias-float.h>.
- (cosf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc64/power8/fpu/s_llrint.S: Include
- <libm-alias-float.h>.
- (llrintf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc64/power8/fpu/s_llround.S: Include
- <libm-alias-float.h>.
- (llroundf): Define using libm_alias_float.
- * sysdeps/powerpc/powerpc64/power8/fpu/s_sinf.S: Include
- <libm-alias-float.h>.
- (sinf): Define using libm_alias_float.
-
-2017-12-04 Florian Weimer <fweimer@redhat.com>
-
- * support/check.h (TEST_COMPARE): Define.
- (support_test_compare_failure): Declare.
- * support/Makefile (libsupport-routines): Add
- support_test_compare_failure.
- (tests): Add tst-test_compare.
- * support /support_test_compare_failure.c: New file.
- * support/tst-test_compare.c: Likewise.
-
-2017-12-04 Mike FABIAN <mfabian@redhat.com>
-
- [BZ #22527]
- * localedata/locales/tr_TR (LC_COLLATE): Base collation rules
- on iso14651_t1. A test file localedata/tr_TR.UTF-8.in is already
- available, this rewrite of the collation rules does reproduce
- the test file in the same order.
-
-2017-12-04 Mike FABIAN <mfabian@redhat.com>
-
- [BZ #10580]
- * localedata/locales/hr_HR (LC_TIME): Use two letters for the
- digraphs in the month and day names. Using single code points for
- digraphs is deprecated. While there are dedicated Unicode
- codepoints, for the digraphs, these are included for backwards
- compatibility and modern texts use a sequence of Basic Latin
- characters. See: https://www.unicode.org/faq/ligature_digraph.html
- This makes the month and day names agree exactly with CLDR now,
- CLDR does not use the single code points for the digraphs either.
-
-2017-12-04 Chris Metcalf <cmetcalf@mellanox.com>
-
- * sysdeps/tile/libm-test-ulps: Update ca{cos,sin,tan}{,h} ulps.
-
-2017-12-04 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/ieee754/flt-32/s_sinf.c (SINF_FUNC): Use __floor instead
- of floor.
-
-2017-12-04 Siddhesh Poyarekar <siddhesh@sourceware.org>
-
- * sysdeps/aarch64/multiarch/memcpy_generic.S (__GI_memcpy):
- Define only for libc.so.
-
-2017-12-04 Stefan Liebler <stli@linux.vnet.ibm.com>
-
- * sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h
- (INTERNAL_VSYSCALL_CALL, CLOBBER_0, CLOBBER_1, CLOBBER_2,
- CLOBBER_3, CLOBBER_4, CLOBBER_5, CLOBBER_6,
- INTERNAL_VSYSCALL_NO_SYSCALL_FALLBACK): Remove.
- * sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h: Likewise.
-
-2017-12-04 Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>
-
- [BZ #5997]
- * sysdeps/ieee754/flt-32/s_sinf.c: New implementation.
-
-2017-12-02 John David Anglin <danglin@gcc.gnu.org>
-
- [BZ libc/19170]
- * sysdeps/hppa/crti.S: Declare PREINIT_FUNCTION weak_extern when
- PREINIT_FUNCTION_WEAK is nonzero.
- (gmon_initializer): New function. Put procedure label for it in
- .init_array section.
- (_init): Don't call PREINIT_FUNCTION.
- * sysdeps/hppa/crtn.S (__gmon_start__): Remove.
- * sysdeps/hppa/dl-lookupcfg.h (DL_FIXUP_MAKE_VALUE): Create null fixup
- value when map argument is null.
-
- * sysdeps/hppa/dl-fptr.c (elf_machine_resolve): Remove unnecessary
- depi instruction from PIC pc-relative sequence.
- * sysdeps/hppa/dl-fptr.h (ELF_MACHINE_LOAD_ADDRESS): Likewise.
- * sysdeps/hppa/dl-machine.h (elf_machine_dynamic): Likewise.
- (elf_machine_load_address): Likewise.
- (elf_machine_runtime_setup): Likewise.
-
-2017-12-02 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/powerpc/power7/fpu/s_logb.c: Include
- <libm-alias-double.h>.
- (logb): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc32/fpu/s_copysign.S: Include
- <libm-alias-double.h>.
- (copysign): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc32/fpu/s_llrint.c: Include
- <libm-alias-double.h>.
- (llrint): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc32/fpu/s_llround.c: Include
- <libm-alias-double.h>.
- (llround): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc32/fpu/s_lrint.S: Include
- <libm-alias-double.h>.
- (lrint): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc32/fpu/s_lround.S: Include
- <libm-alias-double.h>.
- (lround): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysign.c:
- Include <libm-alias-double.h>.
- (copysign): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrint.c:
- Include <libm-alias-double.h>.
- (llrint): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround.c:
- Include <libm-alias-double.h>.
- (llround): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logb.c: Include
- <libm-alias-double.h>.
- (logb): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrint.c:
- Include <libm-alias-double.h>.
- (lrint): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround.c:
- Include <libm-alias-double.h>.
- (lround): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc32/power4/fpu/s_llrint.S: Include
- <libm-alias-double.h>.
- (llrint): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc32/power4/fpu/s_llround.S: Include
- <libm-alias-double.h>.
- (llround): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc32/power5+/fpu/s_llround.S: Include
- <libm-alias-double.h>.
- (llround): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc32/power5+/fpu/s_lround.S: Include
- <libm-alias-double.h>.
- (lround): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc32/power6/fpu/s_copysign.S: Include
- <libm-alias-double.h>.
- (copysign): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc32/power6/fpu/s_llrint.S: Include
- <libm-alias-double.h>.
- (llrint): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc32/power6/fpu/s_llround.S: Include
- <libm-alias-double.h>.
- (llround): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc32/power6x/fpu/s_lrint.S: Include
- <libm-alias-double.h>.
- (lrint): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc32/power6x/fpu/s_lround.S: Include
- <libm-alias-double.h>.
- (lround): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign.c: Include
- <libm-alias-double.h>.
- (copysign): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint.c: Include
- <libm-alias-double.h>.
- (llrint): Define using libm_alias_double.
- (lrint): Likewise.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround.c: Include
- <libm-alias-double.h>.
- (llround): Define using libm_alias_double.
- (lround): Likewise.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_logb.c: Include
- <libm-alias-double.h>.
- (logb): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc64/fpu/s_copysign.S: Include
- <libm-alias-double.h>.
- (copysign): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc64/fpu/s_llrint.S: Include
- <libm-alias-double.h>.
- (llrint): Define using libm_alias_double.
- (lrint): Likewise.
- * sysdeps/powerpc/powerpc64/fpu/s_llround.S: Include
- <libm-alias-double.h>.
- (llround): Define using libm_alias_double.
- (lround): Likewise.
- * sysdeps/powerpc/powerpc64/power5+/fpu/s_llround.S: Include
- <libm-alias-double.h>.
- (llround): Define using libm_alias_double.
- (lround): Likewise.
- * sysdeps/powerpc/powerpc64/power6/fpu/s_copysign.S: Include
- <libm-alias-double.h>.
- (copysign): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc64/power6x/fpu/s_llrint.S: Include
- <libm-alias-double.h>.
- (llrint): Define using libm_alias_double.
- (lrint): Likewise.
- * sysdeps/powerpc/powerpc64/power6x/fpu/s_llround.S: Include
- <libm-alias-double.h>.
- (llround): Define using libm_alias_double.
- (lround): Likewise.
- * sysdeps/powerpc/powerpc64/power8/fpu/s_llrint.S: Include
- <libm-alias-double.h>.
- (llrint): Define using libm_alias_double.
- (lrint): Likewise.
- * sysdeps/powerpc/powerpc64/power8/fpu/s_llround.S: Include
- <libm-alias-double.h>.
- (llround): Define using libm_alias_double.
- (lround): Likewise.
-
-2017-12-01 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround.c
- [LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)] (lroundl): Do not define
- compat symbol based on llround.
-
- * sysdeps/powerpc/power7/fpu/s_logb.c
- [LONG_DOUBLE_COMPAT (libm, GLIBC_2_0)] (logbl): Define as compat
- symbol based on __logb, not on logb.
- * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logb.c
- [LONG_DOUBLE_COMPAT (libm, GLIBC_2_0)] (logbl): Likewise.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_logb.c
- [LONG_DOUBLE_COMPAT (libm, GLIBC_2_0)] (logbl): Likewise.
-
- * sysdeps/powerpc/fpu/s_rint.c: Include <libm-alias-double.h>.
- (rint): Define using libm_alias_double.
- * sysdeps/powerpc/power5+/fpu/s_modf.c: Include
- <libm-alias-double.h>.
- (modf): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc32/fpu/s_ceil.S: Include
- <libm-alias-double.h>.
- (ceil): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc32/fpu/s_floor.S: Include
- <libm-alias-double.h>.
- (floor): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc32/fpu/s_nearbyint.S: Include
- <libm-alias-double.h>.
- (nearbyint): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc32/fpu/s_rint.S: Include
- <libm-alias-double.h>.
- (rint): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc32/fpu/s_round.S: Include
- <libm-alias-double.h>.
- (round): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc32/fpu/s_trunc.S: Include
- <libm-alias-double.h>.
- (trunc): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil.c: Include
- <libm-alias-double.h>.
- (ceil): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floor.c:
- Include <libm-alias-double.h>.
- (floor): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf.c: Include
- <libm-alias-double.h>.
- (modf): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_round.c:
- Include <libm-alias-double.h>.
- (round): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_trunc.c:
- Include <libm-alias-double.h>.
- (trunc): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc32/power5+/fpu/s_ceil.S: Include
- <libm-alias-double.h>.
- (ceil): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc32/power5+/fpu/s_floor.S: Include
- <libm-alias-double.h>.
- (floor): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc32/power5+/fpu/s_round.S: Include
- <libm-alias-double.h>.
- (round): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc32/power5+/fpu/s_trunc.S: Include
- <libm-alias-double.h>.
- (trunc): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceil.c: Include
- <libm-alias-double.h>.
- (ceil): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_floor.c: Include
- <libm-alias-double.h>.
- (floor): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_modf.c: Include
- <libm-alias-double.h>.
- (modf): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_round.c: Include
- <libm-alias-double.h>.
- (round): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_trunc.c: Include
- <libm-alias-double.h>.
- (trunc): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc64/fpu/s_ceil.S: Include
- <libm-alias-double.h>.
- (ceil): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc64/fpu/s_floor.S: Include
- <libm-alias-double.h>.
- (floor): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc64/fpu/s_nearbyint.S: Include
- <libm-alias-double.h>.
- (nearbyint): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc64/fpu/s_rint.S: Include
- <libm-alias-double.h>.
- (rint): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc64/fpu/s_round.S: Include
- <libm-alias-double.h>.
- (round): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc64/fpu/s_trunc.S: Include
- <libm-alias-double.h>.
- (trunc): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc64/power5+/fpu/s_ceil.S: Include
- <libm-alias-double.h>.
- (ceil): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc64/power5+/fpu/s_floor.S: Include
- <libm-alias-double.h>.
- (floor): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc64/power5+/fpu/s_round.S: Include
- <libm-alias-double.h>.
- (round): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc64/power5+/fpu/s_trunc.S: Include
- <libm-alias-double.h>.
- (trunc): Define using libm_alias_double.
-
- * sysdeps/powerpc/fpu/s_fabs.S: Include <libm-alias-double.h>.
- (fabs): Define using libm_alias_double.
- * sysdeps/powerpc/fpu/s_fma.S: Include <libm-alias-double.h>.
- (fma): Define using libm_alias_double.
- * sysdeps/powerpc/powerpc32/fpu/s_fabs.S: Remove file.
- * sysdeps/powerpc/powerpc32/fpu/s_fma.S: Likewise.
- * sysdeps/powerpc/powerpc64/fpu/s_fabs.S: Likewise.
- * sysdeps/powerpc/powerpc64/fpu/s_fma.S: Likewise.
-
-2017-12-01 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * sysdeps/unix/sysv/linux/x86_64/x32/getcpu.c: Remove file.
-
- * sysdeps/sparc/sparc-ifunc.h (SPARC_ASM_IFUNC_DFLT,
- SPARC_ASM_IFUNC1, SPARC_ASM_IFUNC2, SET, SPARC_ASM_VIS2_IFUNC,
- SPARC_ASM_VIS3_IFUNC, SPARC_ASM_VIS3_VIS2_IFUNC): Remove macros.
-
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysign.c: Fix build
- due redirect macro.
-
-2017-12-01 Andreas Schwab <schwab@linux-m68k.org>
-
- * intl/Makefile ($(objpfx)plural.c): Add $(make-target-directory).
-
-2017-12-01 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * sysdeps/sparc/sparc64/cpu_relax.c: New file.
- * sysdeps/sparc/sparc32/sparcv9/cpu_relax.c: Likewise.
- * sysdeps/sparc/sparc64/cpu_relax.S: Remove file.
- * sysdeps/sparc/sparc32/sparcv9/cpu_relax.S: Likewise.
-
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/Makefile
- (libm-sysdep_routines): Add s_nearbyintf-generic and
- s_nearbyint-generic.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyint-generic.S:
- New file.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyint.c: Likewise.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyintf-generic.S:
- Likewise.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyintf.c:
- Likewise.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyint.S: Remove
- file.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyintf.S:
- Likewise.
-
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/Makefile
- (libm-sysdep_routines): Add s_rintf-generic and s_rint-generic.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rint-generic.S: New
- file.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rint.c: Likewise.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rintf-generic.S:
- Likewise.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rintf.c: Likewise.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rint.S: Remove file.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rintf.S: Likewise.
-
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/Makefile
- (libm-sysdep_routines): Add s_llrintf-generic and s_llrint-generic.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrint-generic.S: New
- file.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrint.c: Likewise.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrintf-generic.S:
- Likewise.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrintf.c: Likewise.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrint.S: Remove file.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrintf.S: Likewise.
-
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/Makefile
- (libm-sysdep_routines): Add s_fabsf-generic and s_fabs-generic.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabs-generic.S: New
- file.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabs.c: Likewise.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabsf-generic.S:
- Likewise.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabsf.c: Likewise.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabs.S: Remove file.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabsf.S: Likewise.
-
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/Makefile
- (sysdep_calls): New rule.
- (sysdep_routines): Use sysdep_calls as base.
- (libm-sysdep_routines): Add generic rule for symbols shared with
- libc. Add s_copysign-generic and s_copysign-generic objects.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysign-generic.S:
- New file.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysign.c: Likewise.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysignf-generic.S:
- Likewise.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysignf.c: Likewise.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysign.S: Remove file.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysignf.S: Likewise.
-
-2017-12-01 Mike FABIAN <mfabian@redhat.com>
-
- [BZ #22519]
- * localedata/Makefile: Add is_IS.UTF-8 to test-input and to
- the list of locales to be built for testing.
- * localedata/is_IS.UTF-8.in: New file.
- * localedata/locales/is_IS (LC_COLLATE): Base collation rules
- on iso14651_t1.
-
-2017-12-01 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/powerpc/powerpc32/e500/nofpu/s_fabsf.S: Include
- <libm-alias-float.h>.
- (fabsf): Define using libm_alias_float.
-
-2017-11-30 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/mips/dl-machine.h (elf_machine_reloc): Expand MIN.
-
-2017-11-30 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/m68k/coldfire/fpu/s_fabsf.c: Include
- <libm-alias-float.h>.
- (fabsf): Define using libm_alias_float.
- * sysdeps/m68k/coldfire/fpu/s_lrintf.c: Include
- <libm-alias-float.h>.
- (lrintf): Define using libm_alias_float.
- * sysdeps/m68k/coldfire/fpu/s_rintf.c: Include
- <libm-alias-float.h>.
- (rintf): Define using libm_alias_float.
-
- * sysdeps/m68k/coldfire/fpu/s_fabs.c: Include
- <libm-alias-double.h>.
- (fabs): Define using libm_alias_double.
- * sysdeps/m68k/coldfire/fpu/s_lrint.c: Include
- <libm-alias-double.h>.
- (lrint): Define using libm_alias_double.
- * sysdeps/m68k/coldfire/fpu/s_rint.c: Include
- <libm-alias-double.h>.
- (rint): Define using libm_alias_double.
-
- * sysdeps/m68k/m680x0/fpu/s_atan_template.c: New file.
- * sysdeps/m68k/m680x0/fpu/s_ceil_template.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_cos_template.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_expm1_template.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_fabs_template.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_floor_template.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_frexp_template.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_lrint_template.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_modf_template.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_nearbyint_template.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_remquo_template.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_rint_template.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_sin_template.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_sincos_template.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_tan_template.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_tanh_template.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_trunc_template.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_atan.c: Reimplement to use
- s_atan_template.c.
- * sysdeps/m68k/m680x0/fpu/s_atanf.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_atanl.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_ceil.c: Reimplement to use
- s_ceil_template.c.
- * sysdeps/m68k/m680x0/fpu/s_ceilf.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_ceill.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_cos.c: Reimplement to use
- s_cos_template.c.
- * sysdeps/m68k/m680x0/fpu/s_cosf.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_cosl.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_expm1.c: Reimplement to use
- s_expm1_template.c.
- * sysdeps/m68k/m680x0/fpu/s_expm1f.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_expm1l.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_fabs.c: Reimplement to use
- s_fabs_template.c.
- * sysdeps/m68k/m680x0/fpu/s_fabsf.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_fabsl.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_floor.c: Reimplement to use
- s_floor_template.c.
- * sysdeps/m68k/m680x0/fpu/s_floorf.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_floorl.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_frexp.c: Reimplement to use
- s_frexp_template.c.
- * sysdeps/m68k/m680x0/fpu/s_frexpf.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_lrint.c: Reimplement to use
- s_lrint_template.c.
- * sysdeps/m68k/m680x0/fpu/s_lrintf.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_lrintl.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_modf.c: Reimplement to use
- s_modf_template.c.
- * sysdeps/m68k/m680x0/fpu/s_modff.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_modfl.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_nearbyint.c: Reimplement to use
- s_nearbyint_template.c.
- * sysdeps/m68k/m680x0/fpu/s_nearbyintf.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_nearbyintl.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_remquo.c: Reimplement to use
- s_remquo_template.c.
- * sysdeps/m68k/m680x0/fpu/s_remquof.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_remquol.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_rint.c: Reimplement to use
- s_rint_template.c.
- * sysdeps/m68k/m680x0/fpu/s_rintf.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_rintl.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_sin.c: Reimplement to use
- s_sin_template.c.
- * sysdeps/m68k/m680x0/fpu/s_sinf.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_sinl.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_sincos.c: Reimplement to use
- s_sincos_template.c.
- * sysdeps/m68k/m680x0/fpu/s_sincosf.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_sincosl.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_tan.c: Reimplement to use
- s_tan_template.c.
- * sysdeps/m68k/m680x0/fpu/s_tanf.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_tanl.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_tanh.c: Reimplement to use
- s_tanh_template.c.
- * sysdeps/m68k/m680x0/fpu/s_tanhf.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_tanhl.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_trunc.c: Reimplement to use
- s_trunc_template.c.
- * sysdeps/m68k/m680x0/fpu/s_truncf.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_truncl.c: Likewise.
- * sysdeps/m68k/m680x0/fpu/s_significand.c: Reimplement based on
- s_atan.c instead of including s_atan.c.
- * sysdeps/m68k/m680x0/fpu/s_significandf.c: Reimplement based on
- s_atanf.c instead of including s_atanf.c.
- * sysdeps/m68k/m680x0/fpu/s_significandl.c: Reimplement based on
- s_atanl.c instead of including s_atanl.c.
- * sysdeps/m68k/m680x0/fpu/s_log1p.c: Include s_significand.c
- instead of s_atan.c.
- * sysdeps/m68k/m680x0/fpu/s_log1pf.c: Include s_significandf.c
- instead of s_atanf.c.
- * sysdeps/m68k/m680x0/fpu/s_log1pl.c: Include s_significandl.c
- instead of s_atanl.c.
-
- * scripts/update-copyrights: Do not handle intl/plural.c
- specially.
-
-2017-11-30 Juro Bystricky <juro.bystricky@linux.intel.com>
-
- [BZ #22432]
- * configure.ac (BISON): Require to be present.
- * configure: Regenerated.
- * intl/Makefile (generated): Add plural.c.
- [$(BISON) != no]: Make code unconditional.
- (plural.c): Change rule to $(objpfx)plural.c.
- ($(objpfx)plural.o): Depend on $(objpfx)plural.c.
- * intl/plural.c: Remove.
- * manual/install.texi (Tools for Compilation): Document bison as
- required.
- * INSTALL: Regenerated.
-
-2017-11-30 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/m68k/m680x0/fpu/s_llrint.c: Include
- <libm-alias-double.h>.
- (llrint): Define using libm_alias_double.
- * sysdeps/m68k/m680x0/fpu/s_llrintf.c: Include
- <libm-alias-float.h>.
- (llrintf): Define using libm_alias_float.
- * sysdeps/m68k/m680x0/fpu/s_llrintl.c: Include
- <libm-alias-ldouble.h>.
- (llrintl): Define using libm_alias_ldouble.
-
- * sysdeps/m68k/m680x0/fpu/s_ccosh_template.c (ccosh): Use
- declare_mgen_alias instead of weak_alias.
- * sysdeps/m68k/m680x0/fpu/s_cexp_template.c (cexp): Likewise.
- * sysdeps/m68k/m680x0/fpu/s_csin_template.c (csin): Likewise.
- * sysdeps/m68k/m680x0/fpu/s_csinh_template.c (csinh): Likewise.
-
-2017-11-30 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * sysdeps/sparc/sparc64/multiarch/Makefile (sysdep_routines):
- Add add_n-generic.
- * sysdeps/sparc/sparc64/multiarch/add_n-generic.S: New file.
- * sysdeps/sparc/sparc64/multiarch/add_n.c: Likewise.
- * sysdeps/sparc/sparc64/multiarch/add_n.S: Remove file.
-
- * sysdeps/sparc/sparc64/multiarch/Makefile (sysdep_routines):
- Add submul_1-generic.
- * sysdeps/sparc/sparc64/multiarch/submul_1-generic.S: New file.
- * sysdeps/sparc/sparc64/multiarch/submul_1.c: Likewise.
- * sysdeps/sparc/sparc64/multiarch/submul_1.S: Remove file.
-
- * sysdeps/sparc/sparc64/multiarch/Makefile (sysdep_routines):
- Add addmul_1-generic.
- * sysdeps/sparc/sparc64/multiarch/addmul_1-generic.S: New file.
- * sysdeps/sparc/sparc64/multiarch/addmul_1.c: Likewise.
- * sysdeps/sparc/sparc64/multiarch/addmul_1.S: Remove file.
-
- * sysdeps/sparc/sparc64/multiarch/Makefile (sysdep_routines):
- Add sub_n-generic.
- * sysdeps/sparc/sparc64/multiarch/sub_n-generic.S: New file.
- * sysdeps/sparc/sparc64/multiarch/sub_n.c: Likewise.
- * sysdeps/sparc/sparc64/multiarch/sub_n.S: Remove file.
-
- * sysdeps/sparc/sparc64/multiarch/Makefile (sysdep_routines):
- Add mul_1-generic.
- * sysdeps/sparc/sparc64/multiarch/mul_1-generic.S: New file.
- * sysdeps/sparc/sparc64/multiarch/mul_1.c: Likewise.
- * sysdeps/sparc/sparc64/multiarch/mul_1.S: Remove file.
-
-2017-11-30 Mike FABIAN <mfabian@redhat.com>
-
- According to CLDR, collation rules for Serbian and Bosnian
- should be the same as for Croatian.
-
- [BZ #22534]
- * localedata/Makefile: Add sr_RS.UTF-8 and bs_BA.UTF-8 to test-input
- and to the list of locales to be built for testing.
- * localedata/bs_BA.UTF-8.in: New file (same as hr_HR.UTF-8.in).
- * localedata/sr_RS.UTF-8.in: New file (same as hr_HR.UTF-8.in).
- * localedata/locales/bs_BA (LC_COLLATE): Use “copy "hr_HR"â€.
- * localedata/locales/sr_RS (LC_COLLATE): Use “copy "hr_HR"â€.
-
-2017-11-30 Mike FABIAN <mfabian@redhat.com>
-
- * localedata/locales/hr_HR (LC_COLLATE): Fix collation
- to make test case pass.
- * localedata/hr_HR.UTF-8.in: Add more test strings.
-
-2017-11-30 Mike FABIAN <mfabian@redhat.com>
-
- * stdlib/tst-strfmon_l.c: Fix testcase. Needed because of [BZ #10580]
-
-2017-11-30 Dragan Stanojević - Nevidljivi <invisible@hidden-city.net>
-
- * localedata/Makefile: Add hr_HR.UTF-8 to test-input and to
- the list of locales to built for testing.
- * localedata/hr_HR.UTF-8.in: New file.
-
-2017-11-30 Dragan Stanojević - Nevidljivi <invisible@hidden-city.net>
-
- [BZ #10580]
- * localedata/locales/hr_HR (LC_COLLATE): Base collation rules on
- iso14651_t1.
- * localedata/locales/hr_HR (LC_TIME): Sync month and day names with
- CLDR (except use ligatures for the digraphs, CLDR does not use
- the ligatures), add first_workday, some fixes in the date and time
- formats.
- * localedata/locales/hr_HR (LC_CTYPE): Add transliteration rules
- for Ä and Ä‘.
- * localedata/locales/hr_HR (LC_MONETARY): Change currency_symbol to
- lower case. p_cs_precedes and n_cs_precedes should be 0 instead of 1.
- Add int_p_cs_precedes and int_n_cs_precedes.
- * localedata/locales/hr_HR (LC_NUMERIC): Change thousands_sep to
- "<U202F>" (NARROW NO-BREAK SPACE) and grouping to 3;3 (Agrees with
- LC_MONETARY now).
- * localedata/locales/hr_HR (LC_TELEPHONE): Add tel_dom_fmt.
- * localedata/locales/hr_HR (LC_NAME): Add name_mr, name_mrs, and
- name_miss.
- * localedata/locales/hr_HR (LC_ADDRESS): Add country_post, country_isbn,
- and lang_lib. Change postal_fmt.
-
-2017-11-30 H.J. Lu <hongjiu.lu@intel.com>
-
- * debug/longjmp_chk.c: Include <setjmpP.h> instead of
- <setjmp.h>.
- * setjmp/longjmp.c: Include <setjmpP.h> instead of <setjmp.h>.
- (__libc_siglongjmp): Cast &env[0].__saved_mask to "sigset_t *".
- * setjmp/sigjmp.c: Include <setjmpP.h> instead of <setjmp.h>.
- (__sigjmp_save): Cast &env[0].__saved_mask to "sigset_t *".
- * sysdeps/generic/setjmpP.h: New file.
- * sysdeps/unix/sysv/linux/x86/jmp_buf-ssp.sym: Likewise.
- * sysdeps/unix/sysv/linux/x86/setjmpP.h: Likewise.
- * sysdeps/unix/sysv/linux/x86/tst-saved_mask-1.c: Likewise.
- * sysdeps/unix/sysv/linux/x86/Makefile (gen-as-const-headers):
- Add jmp_buf-ssp.sym.
- (tests): Add tst-saved_mask-1.
-
-2017-11-30 Arjun Shankar <arjun@redhat.com>
-
- [BZ #22375]
- CVE-2017-17426
- * malloc/malloc.c (__libc_malloc): Use checked_request2size
- instead of request2size.
-
-2017-11-30 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrint.S
- (__lllrint): Remove alias.
- (lllrint): Likewise.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrintf.S
- (__lllrintf): Likewise.
- (lllrintf): Likewise.
-
- * sysdeps/sparc/sparc32/fpu/s_copysignf.S: Include
- <libm-alias-float.h>.
- (copysignf): Define using libm_alias_float.
- * sysdeps/sparc/sparc32/fpu/s_fabsf.S: Include
- <libm-alias-float.h>.
- (fabsf): Define using libm_alias_float.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysignf.S:
- Include <libm-alias-float.h>.
- (copysignf): Define using libm_alias_float.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabsf.S: Include
- <libm-alias-float.h>.
- (fabsf): Define using libm_alias_float.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf.c: Include
- <libm-alias-float.h>.
- (fdimf): Define using libm_alias_float.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fmaf.c: Include
- <libm-alias-float.h>.
- (fmaf): Define using libm_alias_float.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrintf.S: Include
- <libm-alias-float.h>.
- (llrintf): Define using libm_alias_float.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyintf.S:
- Include <libm-alias-float.h>.
- (nearbyintf): Define using libm_alias_float.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rintf.S: Include
- <libm-alias-float.h>.
- (rintf): Define using libm_alias_float.
- * sysdeps/sparc/sparc32/sparcv9/fpu/s_llrintf.S: Include
- <libm-alias-float.h>.
- (llrintf): Define using libm_alias_float.
- * sysdeps/sparc/sparc32/sparcv9/fpu/s_lrintf.S: Include
- <libm-alias-float.h>.
- (lrintf): Define using libm_alias_float.
- * sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyintf.S: Include
- <libm-alias-float.h>.
- (nearbyintf): Define using libm_alias_float.
- * sysdeps/sparc/sparc32/sparcv9/fpu/s_rintf.S: Include
- <libm-alias-float.h>.
- (rintf): Define using libm_alias_float.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf.c: Include
- <libm-alias-float.h>.
- (ceilf): Define using libm_alias_float.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_floorf.c: Include
- <libm-alias-float.h>.
- (floorf): Define using libm_alias_float.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_fmaf.c: Include
- <libm-alias-float.h>.
- (fmaf): Define using libm_alias_float.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_lrintf.c: Include
- <libm-alias-float.h>.
- (lrintf): Define using libm_alias_float.
- (llrintf): Likewise.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyintf.c: Include
- <libm-alias-float.h>.
- (nearbyintf): Define using libm_alias_float.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_rintf.c: Include
- <libm-alias-float.h>.
- (rintf): Define using libm_alias_float.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_truncf.c: Include
- <libm-alias-float.h>.
- (truncf): Define using libm_alias_float.
- * sysdeps/sparc/sparc64/fpu/s_copysignf.S: Include
- <libm-alias-float.h>.
- (copysignf): Define using libm_alias_float.
- * sysdeps/sparc/sparc64/fpu/s_fabsf.c: Include
- <libm-alias-float.h>.
- (fabsf): Define using libm_alias_float.
- * sysdeps/sparc/sparc64/fpu/s_lrintf.S: Include
- <libm-alias-float.h>.
- (lrintf): Define using libm_alias_float.
- (llrintf): Likewise.
- * sysdeps/sparc/sparc64/fpu/s_nearbyintf.S: Include
- <libm-alias-float.h>.
- (nearbyintf): Define using libm_alias_float.
- * sysdeps/sparc/sparc64/fpu/s_rintf.S: Include
- <libm-alias-float.h>.
- (rintf): Define using libm_alias_float.
-
-2017-11-29 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/sparc/sparc32/fpu/s_copysign.S: Include
- <libm-alias-double.h>.
- (copysign): Define using libm_alias_double.
- * sysdeps/sparc/sparc32/fpu/s_fabs.S: Include
- <libm-alias-double.h>.
- (fabs): Define using libm_alias_double.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysign.S:
- Include <libm-alias-double.h>.
- (copysign): Define using libm_alias_double.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabs.S: Include
- <libm-alias-double.h>.
- (fabs): Define using libm_alias_double.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.c: Include
- <libm-alias-double.h>.
- (fdim): Define using libm_alias_double.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fma.c: Include
- <libm-alias-double.h>.
- (fma): Define using libm_alias_double.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrint.S: Include
- <libm-alias-double.h>.
- (llrint): Define using libm_alias_double.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyint.S:
- Include <libm-alias-double.h>.
- (nearbyint): Define using libm_alias_double.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rint.S: Include
- <libm-alias-double.h>.
- (rint): Define using libm_alias_double.
- * sysdeps/sparc/sparc32/sparcv9/fpu/s_fabs.S: Include
- <libm-alias-double.h>.
- (fabs): Define using libm_alias_double.
- * sysdeps/sparc/sparc32/sparcv9/fpu/s_llrint.S: Include
- <libm-alias-double.h>.
- (llrint): Define using libm_alias_double.
- * sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyint.S: Include
- <libm-alias-double.h>.
- (nearbyint): Define using libm_alias_double.
- * sysdeps/sparc/sparc32/sparcv9/fpu/s_rint.S: Include
- <libm-alias-double.h>.
- (rint): Define using libm_alias_double.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_ceil.c: Include
- <libm-alias-double.h>.
- (ceil): Define using libm_alias_double.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_floor.c: Include
- <libm-alias-double.h>.
- (floor): Define using libm_alias_double.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_fma.c: Include
- <libm-alias-double.h>.
- (fma): Define using libm_alias_double.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_lrint.c: Include
- <libm-alias-double.h>.
- (lrint): Define using libm_alias_double.
- (llrint): Likewise.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyint.c: Include
- <libm-alias-double.h>.
- (nearbyint): Define using libm_alias_double.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_rint.c: Include
- <libm-alias-double.h>.
- (rint): Define using libm_alias_double.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_trunc.c: Include
- <libm-alias-double.h>.
- (trunc): Define using libm_alias_double.
- * sysdeps/sparc/sparc64/fpu/s_copysign.S: Include
- <libm-alias-double.h>.
- (copysign): Define using libm_alias_double.
- * sysdeps/sparc/sparc64/fpu/s_fabs.c: Include
- <libm-alias-double.h>.
- (fabs): Define using libm_alias_double.
- * sysdeps/sparc/sparc64/fpu/s_lrint.S: Include
- <libm-alias-double.h>.
- (lrint): Define using libm_alias_double.
- (llrint): Likewise.
- * sysdeps/sparc/sparc64/fpu/s_nearbyint.S: Include
- <libm-alias-double.h>.
- (nearbyint): Define using libm_alias_double.
- * sysdeps/sparc/sparc64/fpu/s_rint.S: Include
- <libm-alias-double.h>.
- (rint): Define using libm_alias_double.
-
- [BZ #22229]
- * sysdeps/sparc/sparc32/sparcv9/fpu/s_fabs.S: Include
- <math_ldbl_opt.h>.
- (fabsl): Define as compat symbol at version GLIBC_2_0 for libm.
-
- * scripts/build-many-glibcs.py (Context.add_all_configs): Add
- SPARC --disable-multi-arch glibc variants.
-
- * sysdeps/x86_64/fpu/multiarch/e_exp2f.c: Include
- <libm-alias-float.h>.
- (exp2f): Define using libm_alias_float, or libm_alias_float_other
- if [SHARED].
- * sysdeps/x86_64/fpu/multiarch/e_expf.c: Include
- <libm-alias-float.h>.
- (exp2f): Define using libm_alias_float, or libm_alias_float_other
- if [SHARED].
- * sysdeps/x86_64/fpu/multiarch/e_log2f.c: Include
- <libm-alias-float.h>.
- (exp2f): Define using libm_alias_float, or libm_alias_float_other
- if [SHARED].
- * sysdeps/x86_64/fpu/multiarch/e_logf.c: Include
- <libm-alias-float.h>.
- (exp2f): Define using libm_alias_float, or libm_alias_float_other
- if [SHARED].
- * sysdeps/x86_64/fpu/multiarch/e_powf.c: Include
- <libm-alias-float.h>.
- (exp2f): Define using libm_alias_float, or libm_alias_float_other
- if [SHARED].
- * sysdeps/x86_64/fpu/multiarch/s_ceilf.c: Include
- <libm-alias-float.h>.
- (ceilf): Define using libm_alias_float.
- * sysdeps/x86_64/fpu/multiarch/s_floorf.c: Include
- <libm-alias-float.h>.
- (floorf): Define using libm_alias_float.
- * sysdeps/x86_64/fpu/multiarch/s_fmaf.c: Include
- <libm-alias-float.h>.
- (fmaf): Define using libm_alias_float.
- * sysdeps/x86_64/fpu/multiarch/s_nearbyintf.c: Include
- <libm-alias-float.h>.
- (nearbyintf): Define using libm_alias_float.
- * sysdeps/x86_64/fpu/multiarch/s_rintf.c: Include
- <libm-alias-float.h>.
- (rintf): Define using libm_alias_float.
- * sysdeps/x86_64/fpu/multiarch/s_truncf.c: Include
- <libm-alias-float.h>.
- (truncf): Define using libm_alias_float.
- * sysdeps/x86_64/fpu/s_copysignf.S: Include <libm-alias-float.h>.
- (copysignf): Define using libm_alias_float.
- * sysdeps/x86_64/fpu/s_cosf.S: Include <libm-alias-float.h>.
- (cosf): Define using libm_alias_float.
- * sysdeps/x86_64/fpu/s_fabsf.c: Include <libm-alias-float.h>.
- (fabsf): Define using libm_alias_float.
- * sysdeps/x86_64/fpu/s_fmaxf.S: Include <libm-alias-float.h>.
- (fmaxf): Define using libm_alias_float.
- * sysdeps/x86_64/fpu/s_fminf.S: Include <libm-alias-float.h>.
- (fminf): Define using libm_alias_float.
- * sysdeps/x86_64/fpu/s_llrintf.S: Include <libm-alias-float.h>.
- (llrintf): Define using libm_alias_float.
- [!__ILP32__] (lrintf): Likewise.
- * sysdeps/x86_64/fpu/s_sincosf.S: Include <libm-alias-float.h>.
- (sincosf): Define using libm_alias_float.
- * sysdeps/x86_64/fpu/s_sinf.S: Include <libm-alias-float.h>.
- (sinf): Define using libm_alias_float.
- * sysdeps/x86_64/x32/fpu/s_lrintf.S: Include <libm-alias-float.h>.
- (lrintf): Define using libm_alias_float.
-
- * sysdeps/x86_64/fpu/multiarch/s_atan.c: Include
- <libm-alias-double.h>.
- (atan): Define using libm_alias_double.
- * sysdeps/x86_64/fpu/multiarch/s_ceil.c: Include
- <libm-alias-double.h>.
- (ceil): Define using libm_alias_double.
- * sysdeps/x86_64/fpu/multiarch/s_floor.c: Include
- <libm-alias-double.h>.
- (floor): Define using libm_alias_double.
- * sysdeps/x86_64/fpu/multiarch/s_fma.c: Include
- <libm-alias-double.h>.
- (fma): Define using libm_alias_double.
- * sysdeps/x86_64/fpu/multiarch/s_nearbyint.c: Include
- <libm-alias-double.h>.
- (nearbyint): Define using libm_alias_double.
- * sysdeps/x86_64/fpu/multiarch/s_rint.c: Include
- <libm-alias-double.h>.
- (rint): Define using libm_alias_double.
- * sysdeps/x86_64/fpu/multiarch/s_sin.c: Include
- <libm-alias-double.h>.
- (sin): Define using libm_alias_double.
- (cos): Likewise.
- * sysdeps/x86_64/fpu/multiarch/s_tan.c: Include
- <libm-alias-double.h>.
- (tan): Define using libm_alias_double.
- * sysdeps/x86_64/fpu/multiarch/s_trunc.c: Include
- <libm-alias-double.h>.
- (trunc): Define using libm_alias_double.
- * sysdeps/x86_64/fpu/s_copysign.S: Include <libm-alias-double.h>.
- (copysign): Define using libm_alias_double.
- * sysdeps/x86_64/fpu/s_fabs.c: Include <libm-alias-double.h>.
- (fabs): Define using libm_alias_double.
- * sysdeps/x86_64/fpu/s_fmax.S: Include <libm-alias-double.h>.
- (fmax): Define using libm_alias_double.
- * sysdeps/x86_64/fpu/s_fmin.S: Include <libm-alias-double.h>.
- (fmin): Define using libm_alias_double.
- * sysdeps/x86_64/fpu/s_llrint.S: Include <libm-alias-double.h>.
- (llrint): Define using libm_alias_double.
- [!__ILP32__] (lrint): Likewise.
- * sysdeps/x86_64/x32/fpu/s_lrint.S: Include <libm-alias-double.h>.
- (lrint): Define using libm_alias_double.
-
-2017-11-29 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * sysdeps/sparc/sparc64/fpu/multiarch/Makefile
- (libm-sysdep_routines): Add s_rintf-generic and s_rint-generic
- objects.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_rint-generic.S: New file.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_rint.c: Likewise.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_rintf-generic.S: Likewise.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_rintf.c: Likewise.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_rint.S: Remove file.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_rintf.S: Likewise.
-
- * sysdeps/sparc/sparc64/fpu/multiarch/Makefile
- (libm-sysdep_routines): Add s_lrint-generic and s_lrintf-generic
- objects.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_lrint-generic.S: New file.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_lrint.c: Likewise.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_lrintf-generic.S: Likewise.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_lrintf.c: Likewise.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_lrint.S: Remove file.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_lrintf.S: Likewise.
-
- * sysdeps/sparc/sparc64/fpu/multiarch/Makefile
- (libm-sysdep_routines): Add s_nearbyint-generic and
- s_nearbyintf-generic objects.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyint-generic.S: New file.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyint.c: Likewise.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyintf-generic.S: Likewise.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyintf.c: Likewise.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyint.S: Remove file.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyintf.S: Likewise.
-
- * sysdeps/sparc/sparc64/fpu/multiarch/Makefile (sysdeps_calls):
- Add s_finitef-generic and s_finite-generic objects.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_finite-generic.S: New file.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_finite.c: Likewise.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_finitef-generic.S: Likewise.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_finitef.c: Likewise.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_finite.S: Remove file.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_finitef.S: Remove file.
-
- * sysdeps/sparc/sparc64/fpu/multiarch/Makefile (sysdeps_calls):
- Add s_isinff-generic and s_isinf-generic objects.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_isinf-generic.S: New file.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_isinf.c: Likewise.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_isinff-generic.S: Likewise.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_isinff.c: Likewise.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_isinf.S: Remove file.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_isinff.S: Likewise.
-
- * sysdeps/sparc/sparc64/fpu/multiarch/Makefile (sysdeps_calls):
- Add s_isnanf-generic and s_isnan-generic objects.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_isnan-generic.S: New file.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_isnanf-generic.S: Likewise.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_isnan.c: Likewise.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_isnanf.c: Likewise.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_isnan.S: Remove file.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_isnanf.S: Likewise.
-
- * sysdeps/sparc/sparc-ifunc.h (sparc_libm_ifunc_redirected): New
- macro.
- * sysdeps/sparc/sparc64/fpu/multiarch/Makefile (sysdep_calls): New
- rule.
- (sysdep_routines): Use sysdep_calls as base.
- (libm-sysdep_routines): Add generic rule for symbols shared with
- libc. Add s_signbit-generic and s_signbitf-generic objects.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_signbit.c: New file.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_signbitf.c: Likewise.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_signbit-generic.S: Likewise.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_signbitf-generic.S: Likewise.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_signbit.S: Remove file.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_signbitf.S: Likewise.
-
-2017-11-29 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/ia64/fpu/libm-symbols.h: Include <libm-alias-float.h>.
- * sysdeps/ia64/fpu/e_acosf.S (acosf): Use libm_alias_float_other.
- * sysdeps/ia64/fpu/e_acoshf.S (acoshf): Likewise.
- * sysdeps/ia64/fpu/e_asinf.S (asinf): Likewise.
- * sysdeps/ia64/fpu/e_atan2f.S (atan2f): Likewise.
- * sysdeps/ia64/fpu/e_atanhf.S (atanhf): Likewise.
- * sysdeps/ia64/fpu/e_coshf.S (coshf): Likewise.
- * sysdeps/ia64/fpu/e_exp10f.S (exp10f): Likewise.
- * sysdeps/ia64/fpu/e_exp2f.S (exp2f): Likewise.
- * sysdeps/ia64/fpu/e_expf.S (expf): Likewise.
- * sysdeps/ia64/fpu/e_fmodf.S (fmodf): Likewise.
- * sysdeps/ia64/fpu/e_hypotf.S (hypotf): Likewise.
- * sysdeps/ia64/fpu/e_lgammaf_r.c (lgammaf_r): Define using
- libm_alias_float_r.
- * sysdeps/ia64/fpu/e_log2f.S (log2f): Use libm_alias_float_other.
- * sysdeps/ia64/fpu/e_logf.S (log10f): Likewise.
- (logf): Likewise.
- * sysdeps/ia64/fpu/e_powf.S (powf): Likewise.
- * sysdeps/ia64/fpu/e_remainderf.S (remainderf): Likewise.
- * sysdeps/ia64/fpu/e_sinhf.S (sinhf): Likewise.
- * sysdeps/ia64/fpu/e_sqrtf.S (sqrtf): Likewise.
- * sysdeps/ia64/fpu/libm_sincosf.S (sincosf): Likewise.
- * sysdeps/ia64/fpu/s_asinhf.S (asinhf): Likewise.
- * sysdeps/ia64/fpu/s_atanf.S (atanf): Likewise.
- * sysdeps/ia64/fpu/s_cbrtf.S (cbrtf): Likewise.
- * sysdeps/ia64/fpu/s_ceilf.S (ceilf): Likewise.
- * sysdeps/ia64/fpu/s_copysign.S (copysignf): Define using
- libm_alias_float.
- * sysdeps/ia64/fpu/s_cosf.S (sinf): Use libm_alias_float_other.
- (cosf): Likewise.
- * sysdeps/ia64/fpu/s_erfcf.S (erfcf): Likewise.
- * sysdeps/ia64/fpu/s_erff.S (erff): Likewise.
- * sysdeps/ia64/fpu/s_expm1f.S (expm1f): Likewise.
- * sysdeps/ia64/fpu/s_fabsf.S (fabsf): Likewise.
- * sysdeps/ia64/fpu/s_fdimf.S (fdimf): Likewise.
- * sysdeps/ia64/fpu/s_floorf.S (floorf): Likewise.
- * sysdeps/ia64/fpu/s_fmaf.S (fmaf): Likewise.
- * sysdeps/ia64/fpu/s_fmaxf.S (fmaxf): Likewise.
- * sysdeps/ia64/fpu/s_frexpf.c (frexpf): Likewise.
- * sysdeps/ia64/fpu/s_ldexpf.c (ldexpf): Likewise.
- * sysdeps/ia64/fpu/s_log1pf.S (log1pf): Likewise.
- * sysdeps/ia64/fpu/s_logbf.S (logbf): Likewise.
- * sysdeps/ia64/fpu/s_modff.S (modff): Likewise.
- * sysdeps/ia64/fpu/s_nearbyintf.S (nearbyintf): Likewise.
- * sysdeps/ia64/fpu/s_nextafterf.S (nextafterf): Likewise.
- * sysdeps/ia64/fpu/s_rintf.S (rintf): Likewise.
- * sysdeps/ia64/fpu/s_roundf.S (roundf): Likewise.
- * sysdeps/ia64/fpu/s_scalblnf.c (scalblnf): Likewise.
- * sysdeps/ia64/fpu/s_scalbnf.c (scalbnf): Define using
- libm_alias_float.
- * sysdeps/ia64/fpu/s_tanf.S (tanf): Use libm_alias_float_other.
- * sysdeps/ia64/fpu/s_tanhf.S (tanhf): Likewise.
- * sysdeps/ia64/fpu/s_truncf.S (truncf): Likewise.
- * sysdeps/ia64/fpu/w_lgammaf_main.c
- [BUILD_LGAMMA && !USE_AS_COMPAT] (lgammaf): Likewise.
- * sysdeps/ia64/fpu/w_tgammaf_compat.S (tgammaf): Likewise.
-
-2017-11-28 Mike FABIAN <mfabian@redhat.com>
- Alexandre Oliva <aoliva@redhat.com>
-
- [BZ #17750]
- * Makefile: add fr_CA.UTF-8 to test-input and LOCALES.
- * localedata/fr_CA.UTF-8.in: New file with test data for backward
- accents sorting.
- * localedata/fr_FR.UTF-8.in: Fix test data for forward accents
- sorting.
- * localedata/locales/cs_CZ (LC_COLLATE): Remove “define DIACRIT_FORWARDâ€
- * localedata/locales/de_DE (LC_COLLATE): Likewise.
- * localedata/locales/hu_HU (LC_COLLATE): Likewise.
- * localedata/locales/lb_LU (LC_COLLATE): Likewise.
- * localedata/locales/yuw_PG (LC_COLLATE): Likewise.
- * localedata/locales/fr_CA (LC_COLLATE): Add “define DIACRIT_BACKWARDâ€
- * localedata/locales/iso14651_t1_common: Use “ifdef DIACRIT_FORWARDâ€
- instead of “ifdef DIACRIT_BACKWARDâ€.
-
-2017-11-29 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * config.h.in (HAVE_AS_VIS3_SUPPORT): Remove check for VIS3 support.
- * sysdeps/sparc/configure.ac (HAVE_AS_VIS3_SUPPORT): Likewise.
- * sysdeps//sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.c: Likewise.
- * sysdeps//sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf.c: Likewise.
- * sysdeps//sparc/sparc32/sparcv9/fpu/multiarch/s_fma.c: Likewise.
- * sysdeps//sparc/sparc32/sparcv9/fpu/multiarch/s_fmaf.c: Likewise.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_ceil.c: Likewise.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf.c: Likewise.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_floor.c: Likewise.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_floorf.c: Likewise.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_fma.c: Likewise.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_fmaf.c: Likewise.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_trunc.c: Likewise.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_truncf.c: Likewise.
- * sysdeps/sparc/sparc-ifunc.h [!HAVE_AS_VIS3_SUPPORT]
- (SPARC_ASM_VIS3_IFUNC, SPARC_ASM_VIS3_VIS2_IFUNC): Remove macros.
- * sysdeps/sparc/sparc32/sparcv9/Makefile [$(have-as-vis3) != yes]
- (ASFLAGS.o, ASFLAGS-.os, ASFLAGS-.op, ASFLAGS-.oS): Remove rules.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/Makefile
- ($(have-as-vis3) == yes): Remove conditional.
- * sysdeps/sparc/sparc64/Makefile (($(have-as-vis3) == yes)):
- Likewise.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim-generic.c: New
- file.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf-generic.c: New
- file.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fma-generic.c: New
- file.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fmaf-generic.c: New
- file.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_ceil-generic.c: New file.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf-generic.c: New file.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_floor-generic.c: New file.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_floorf-generic.c: New file.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_fma-generic.c: New file.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_fmaf-generic.c: New file.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_trunc-generic.c: New file.
- * sysdeps/sparc/sparc64/fpu/multiarch/s_truncf-generic.c: New file.
-
-2017-11-29 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/ia64/fpu/libm-symbols.h: Include <libm-alias-double.h>.
- * sysdeps/ia64/fpu/e_acos.S (acos): Use libm_alias_double_other.
- * sysdeps/ia64/fpu/e_acosh.S (acosh): Likewise.
- * sysdeps/ia64/fpu/e_asin.S (asin): Likewise.
- * sysdeps/ia64/fpu/e_atan2.S (atan2): Likewise.
- * sysdeps/ia64/fpu/e_atanh.S (atanh): Likewise.
- * sysdeps/ia64/fpu/e_cosh.S (cosh): Likewise.
- * sysdeps/ia64/fpu/e_exp.S (exp): Likewise.
- * sysdeps/ia64/fpu/e_exp10.S (exp10): Likewise.
- * sysdeps/ia64/fpu/e_exp2.S (exp2): Likewise.
- * sysdeps/ia64/fpu/e_fmod.S (fmod): Likewise.
- * sysdeps/ia64/fpu/e_hypot.S (hypot): Likewise.
- * sysdeps/ia64/fpu/e_lgamma_r.c (lgamma_r): Define using
- libm_alias_double_r.
- * sysdeps/ia64/fpu/e_log.S (log10): Use libm_alias_double_other.
- (log): Likewise.
- * sysdeps/ia64/fpu/e_log2.S (log2): Likewise.
- * sysdeps/ia64/fpu/e_pow.S (pow): Likewise.
- * sysdeps/ia64/fpu/e_remainder.S (remainder): Likewise.
- * sysdeps/ia64/fpu/e_sinh.S (sinh): Likewise.
- * sysdeps/ia64/fpu/e_sqrt.S (sqrt): Likewise.
- * sysdeps/ia64/fpu/libm_sincos.S (sincos): Likewise.
- * sysdeps/ia64/fpu/s_asinh.S (asinh): Likewise.
- * sysdeps/ia64/fpu/s_atan.S (atan): Likewise.
- * sysdeps/ia64/fpu/s_cbrt.S (cbrt): Likewise.
- * sysdeps/ia64/fpu/s_ceil.S (ceil): Likewise.
- * sysdeps/ia64/fpu/s_copysign.S (copysign): Define using
- libm_alias_double.
- * sysdeps/ia64/fpu/s_cos.S (sin): Use libm_alias_double_other.
- (cos): Likewise.
- * sysdeps/ia64/fpu/s_erf.S (erf): Likewise.
- * sysdeps/ia64/fpu/s_erfc.S (erfc): Likewise.
- * sysdeps/ia64/fpu/s_expm1.S (expm1): Likewise.
- * sysdeps/ia64/fpu/s_fabs.S (fabs): Likewise.
- * sysdeps/ia64/fpu/s_fdim.S (fdim): Likewise.
- * sysdeps/ia64/fpu/s_floor.S (floor): Likewise.
- * sysdeps/ia64/fpu/s_fma.S (fma): Likewise.
- * sysdeps/ia64/fpu/s_fmax.S (fmax): Likewise.
- * sysdeps/ia64/fpu/s_frexp.c (frexp): Likewise.
- * sysdeps/ia64/fpu/s_ldexp.c (ldexp): Likewise.
- * sysdeps/ia64/fpu/s_log1p.S (log1p): Likewise.
- * sysdeps/ia64/fpu/s_logb.S (logb): Likewise.
- * sysdeps/ia64/fpu/s_modf.S (modf): Likewise.
- * sysdeps/ia64/fpu/s_nearbyint.S (nearbyint): Likewise.
- * sysdeps/ia64/fpu/s_nextafter.S (nextafter): Likewise.
- * sysdeps/ia64/fpu/s_rint.S (rint): Likewise.
- * sysdeps/ia64/fpu/s_round.S (round): Likewise.
- * sysdeps/ia64/fpu/s_scalbn.c (scalbn): Define using
- libm_alias_double.
- * sysdeps/ia64/fpu/s_tan.S (tan): Use libm_alias_double_other.
- * sysdeps/ia64/fpu/s_tanh.S (tanh): Likewise.
- * sysdeps/ia64/fpu/s_trunc.S (trunc): Likewise.
- * sysdeps/ia64/fpu/w_lgamma_main.c
- [BUILD_LGAMMA && !USE_AS_COMPAT] (lgamma): Likewise.
- * sysdeps/ia64/fpu/w_tgamma_compat.S (tgamma): Likewise.
-
-2017-11-28 John David Anglin <danglin@gcc.gnu.org>
-
- * sysdeps/hppa/start.S (_start): Check PIC instead of SHARED. Load
- address of $global$ into %dp register earlier. Use pc-relative
- instruction sequence for PIC case.
-
-2017-11-28 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/i386/fpu/s_asinhf.S: Include <libm-alias-float.h>.
- (asinhf): Define using libm_alias_float.
- * sysdeps/i386/fpu/s_atanf.S: Include <libm-alias-float.h>.
- (atanf): Define using libm_alias_float.
- * sysdeps/i386/fpu/s_cbrtf.S: Include <libm-alias-float.h>.
- (cbrtf): Define using libm_alias_float.
- * sysdeps/i386/fpu/s_ceilf.S: Include <libm-alias-float.h>.
- (ceilf): Define using libm_alias_float.
- * sysdeps/i386/fpu/s_copysignf.S: Include <libm-alias-float.h>.
- (copysignf): Define using libm_alias_float.
- * sysdeps/i386/fpu/s_expm1f.S: Include <libm-alias-float.h>.
- (expm1f): Define using libm_alias_float.
- * sysdeps/i386/fpu/s_fabsf.S: Include <libm-alias-float.h>.
- (fabsf): Define using libm_alias_float.
- * sysdeps/i386/fpu/s_floorf.S: Include <libm-alias-float.h>.
- (floorf): Define using libm_alias_float.
- * sysdeps/i386/fpu/s_fmaxf.S: Include <libm-alias-float.h>.
- (fmaxf): Define using libm_alias_float.
- * sysdeps/i386/fpu/s_fminf.S: Include <libm-alias-float.h>.
- (fminf): Define using libm_alias_float.
- * sysdeps/i386/fpu/s_frexpf.S: Include <libm-alias-float.h>.
- (frexpf): Define using libm_alias_float.
- * sysdeps/i386/fpu/s_llrintf.S: Include <libm-alias-float.h>.
- (llrintf): Define using libm_alias_float.
- * sysdeps/i386/fpu/s_logbf.S: Include <libm-alias-float.h>.
- (logbf): Define using libm_alias_float.
- * sysdeps/i386/fpu/s_lrintf.S: Include <libm-alias-float.h>.
- (lrintf): Define using libm_alias_float.
- * sysdeps/i386/fpu/s_nearbyintf.S: Include <libm-alias-float.h>.
- (nearbyintf): Define using libm_alias_float.
- * sysdeps/i386/fpu/s_remquof.S: Include <libm-alias-float.h>.
- (remquof): Define using libm_alias_float.
- * sysdeps/i386/fpu/s_rintf.S: Include <libm-alias-float.h>.
- (rintf): Define using libm_alias_float.
- * sysdeps/i386/fpu/s_truncf.S: Include <libm-alias-float.h>.
- (truncf): Define using libm_alias_float.
- * sysdeps/i386/i686/fpu/multiarch/e_exp2f.c: Include
- <libm-alias-float.h>.
- (exp2f): Define using libm_alias_float, or libm_alias_float_other
- if [SHARED].
- * sysdeps/i386/i686/fpu/multiarch/e_expf.c: Include
- <libm-alias-float.h>.
- (expf): Define using libm_alias_float, or libm_alias_float_other
- if [SHARED].
- * sysdeps/i386/i686/fpu/multiarch/e_log2f.c: Include
- <libm-alias-float.h>.
- (log2f): Define using libm_alias_float, or libm_alias_float_other
- if [SHARED].
- * sysdeps/i386/i686/fpu/multiarch/e_logf.c: Include
- <libm-alias-float.h>.
- (logf): Define using libm_alias_float, or libm_alias_float_other
- if [SHARED].
- * sysdeps/i386/i686/fpu/multiarch/e_powf.c: Include
- <libm-alias-float.h>.
- (powf): Define using libm_alias_float, or libm_alias_float_other
- if [SHARED].
- * sysdeps/i386/i686/fpu/multiarch/s_cosf.c: Include
- <libm-alias-float.h>.
- (cosf): Define using libm_alias_float.
- * sysdeps/i386/i686/fpu/multiarch/s_sincosf.c: Include
- <libm-alias-float.h>.
- (sincosf): Define using libm_alias_float.
- * sysdeps/i386/i686/fpu/multiarch/s_sinf.c: Include
- <libm-alias-float.h>.
- (sinf): Define using libm_alias_float.
- * sysdeps/i386/i686/fpu/s_fmaxf.S: Include <libm-alias-float.h>.
- (fmaxf): Define using libm_alias_float.
- * sysdeps/i386/i686/fpu/s_fminf.S: Include <libm-alias-float.h>.
- (fminf): Define using libm_alias_float.
- * sysdeps/i386/i686/multiarch/s_fmaf.c: Include
- <libm-alias-float.h>.
- (fmaf): Define using libm_alias_float.
-
- * sysdeps/i386/fpu/s_asinh.S: Include <libm-alias-double.h>.
- (asinh): Define using libm_alias_double.
- * sysdeps/i386/fpu/s_atan.S: Include <libm-alias-double.h>.
- (atan): Define using libm_alias_double.
- * sysdeps/i386/fpu/s_cbrt.S: Include <libm-alias-double.h>.
- (cbrt): Define using libm_alias_double.
- * sysdeps/i386/fpu/s_ceil.S: Include <libm-alias-double.h>.
- (ceil): Define using libm_alias_double.
- * sysdeps/i386/fpu/s_copysign.S: Include <libm-alias-double.h>.
- (copysign): Define using libm_alias_double.
- * sysdeps/i386/fpu/s_expm1.S: Include <libm-alias-double.h>.
- (expm1): Define using libm_alias_double.
- * sysdeps/i386/fpu/s_fabs.S: Include <libm-alias-double.h>.
- (fabs): Define using libm_alias_double.
- * sysdeps/i386/fpu/s_fdim.c: Include <libm-alias-double.h>.
- (fdim): Define using libm_alias_double.
- * sysdeps/i386/fpu/s_floor.S: Include <libm-alias-double.h>.
- (floor): Define using libm_alias_double.
- * sysdeps/i386/fpu/s_fmax.S: Include <libm-alias-double.h>.
- (fmax): Define using libm_alias_double.
- * sysdeps/i386/fpu/s_fmin.S: Include <libm-alias-double.h>.
- (fmin): Define using libm_alias_double.
- * sysdeps/i386/fpu/s_frexp.S: Include <libm-alias-double.h>.
- (frexp): Define using libm_alias_double.
- * sysdeps/i386/fpu/s_llrint.S: Include <libm-alias-double.h>.
- (llrint): Define using libm_alias_double.
- * sysdeps/i386/fpu/s_logb.S: Include <libm-alias-double.h>.
- (logb): Define using libm_alias_double.
- * sysdeps/i386/fpu/s_lrint.S: Include <libm-alias-double.h>.
- (lrint): Define using libm_alias_double.
- * sysdeps/i386/fpu/s_nearbyint.S: Include <libm-alias-double.h>.
- (nearbyint): Define using libm_alias_double.
- * sysdeps/i386/fpu/s_remquo.S: Include <libm-alias-double.h>.
- (remquo): Define using libm_alias_double.
- * sysdeps/i386/fpu/s_rint.S: Include <libm-alias-double.h>.
- (rint): Define using libm_alias_double.
- * sysdeps/i386/fpu/s_trunc.S: Include <libm-alias-double.h>.
- (trunc): Define using libm_alias_double.
- * sysdeps/i386/i686/fpu/s_fmax.S: Include <libm-alias-double.h>.
- (fmax): Define using libm_alias_double.
- * sysdeps/i386/i686/fpu/s_fmin.S: Include <libm-alias-double.h>.
- (fmin): Define using libm_alias_double.
- * sysdeps/i386/i686/multiarch/s_fma.c: Include <libm-alias-double.h>.
- (fma): Define using libm_alias_double.
-
-2017-11-28 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #22370]
- * elf/dl-hwcaps.c (ROUND): Removed.
- (_dl_important_hwcaps): Replace ROUND with ELF_NOTE_DESC_OFFSET
- and ELF_NOTE_NEXT_OFFSET.
- * elf/dl-load.c (ROUND): Removed.
- (open_verify): Replace ROUND with ELF_NOTE_NEXT_OFFSET.
- * elf/readelflib.c (ROUND): Removed.
- (process_elf_file): Replace ROUND with ELF_NOTE_NEXT_OFFSET.
- * include/elf.h [!_ISOMAC]: Include <libc-pointer-arith.h>.
- [!_ISOMAC] (ELF_NOTE_DESC_OFFSET): New.
- [!_ISOMAC] (ELF_NOTE_NEXT_OFFSET): Likewise.
-
-2017-11-28 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/s390/fpu/s_fmaf.c: Include <libm-alias-float.h>.
- [!__fmaf] (fmaf): Define using libm_alias_float.
-
- * sysdeps/s390/fpu/s_fma.c: Include <libm-alias-double.h>.
- [!__fma] (fma): Define using libm_alias_double.
- * sysdeps/unix/sysv/linux/s390/fpu/s_fma.c: Remove.
-
-2017-11-28 Mike FABIAN <mfabian@redhat.com>
-
- [BZ #22336]
- * localedata/locales/cs_CZ (LC_COLLATE): Use “copy "iso14651_t1"â€
- and implement the collation rules for cs from CLDR on top of that.
- * Makefile: Add cs_CZ.UTF-8 to test-input.
- * cs_CZ.UTF-8.in: New file with test data to test the Czech sorting.
-
-2017-11-28 Siddhesh Poyarekar <siddhesh@sourceware.org>
-
- * localedata/Makefile (LOCALES): Remove duplicate cs_CZ.UTF-8.
-
-2017-11-28 Victor Rodriguez <victor.rodriguez.bahena@intel.com>
- Icarus Sparry <icarus.w.sparry@intel.com>
-
- * benchtests/Makefile:Add BENCHSET to allow subsets of
- benchmarks to be run.
- * benchtests/README: Add documentation for: Running subsets of
- benchmarks.
-
-2017-11-28 Victor Rodriguez <victor.rodriguez.bahena@intel.com>
-
- * benchtests/scripts/benchout.schema.json: Fix regex to accept a wider
- range of tests names.
-
- * benchtests/scripts/benchout.schema.json: Add throughput as accepted
- result from property and remove "max", min" and "mean" from
- required properties based on benchtests/bench-skeleton.c.
-
-2017-11-28 Florian Weimer <fweimer@redhat.com>
-
- [BZ #20826]
- Turn posix/tst-getaddrinfo4, posix/tst-getaddrinfo5 into xtests
- due to Internet requirement.
- * posix/Makefile (tests): Remove tst-getaddrinfo4,
- tst-getaddrinfo5.
- (xtests): Add tst-getaddrinfo4, tst-getaddrinfo5.
-
-2017-11-28 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * sysdeps/sparc/sparc32/sparcv9/multiarch/Makefile
- [$(subdir) = string] (sysdep_routines): Add memset-ultra1.
- * sysdeps/sparc/sparc64/multiarch/Makefile [$(subdir) = string]
- (sysdep_routines): Add memset-ultra1.
- * sysdeps/sparc/sparc32/sparcv9/multiarch/memset-ultra1.S: New
- file.
- * sysdeps/sparc/sparc32/sparcv9/multiarch/memset.c: Likewise.
- * sysdeps/sparc/sparc32/sparcv9/multiarch/bzero.c: Likewise.
- * sysdeps/sparc/sparc64/multiarch/ifunc-memset.h: Likewise.
- * sysdeps/sparc/sparc64/multiarch/memset-ultra1.S: Likewise.
- * sysdeps/sparc/sparc64/multiarch/memset.c: Likewise.
- * sysdeps/sparc/sparc64/multiarch/bzero.c: Likewise.
- * sysdeps/sparc/sparc32/sparcv9/multiarch/memset.S: Remove file.
- * sysdeps/sparc/sparc64/multiarch/memset.S: Likewise.
-
- * sysdeps/sparc/sparc32/sparcv9/multiarch/memcpy-ultra1.S: New
- file.
- * sysdeps/sparc/sparc32/sparcv9/multiarch/memcpy.c: Likewise.
- * sysdeps/sparc/sparc32/sparcv9/multiarch/mempcpy.c: Likewise.
- * sysdeps/sparc/sparc64/multiarch/ifunc-memcpy.h: Likewise.
- * sysdeps/sparc/sparc64/multiarch/memcpy-ultra1.S: Likewise.
- * sysdeps/sparc/sparc64/multiarch/memcpy.c: Likewise.
- * sysdeps/sparc/sparc64/multiarch/mempcpy.c: Likewise.
- * sysdeps/sparc/sparc-ifunc.h (sparc_libc_ifunc_redirected): New
- macro.
- * sysdeps/sparc/sparc32/sparcv9/multiarch/Makefile
- [$(subdir) = string] (sysdep_routines): Add memcpy-ultra1.
- * sysdeps/sparc/sparc64/multiarch/Makefile [$(subdir) = string]
- (sysdep_routines): Add memcpy-ultra1.
- * sysdeps/sparc/sparc64/multiarch/memcpy.S: Remove file.
- * sysdeps/sparc/sparc32/sparcv9/multiarch/memcpy.S: Likewise.
-
-2017-11-28 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/alpha/fpu/cfloat-compat.h: Include <libm-alias-float.h>.
- (cfloat_versions): Take function argument without trailing 'f'.
- Call libm_alias_float_other.
- * sysdeps/alpha/fpu/cabsf.c: Update call to cfloat_versions.
- * sysdeps/alpha/fpu/cargf.c: Likewise.
- * sysdeps/alpha/fpu/cimagf.c: Likewise.
- * sysdeps/alpha/fpu/conjf.c: Likewise.
- * sysdeps/alpha/fpu/crealf.c: Likewise.
- * sysdeps/alpha/fpu/s_cacosf.c: Likewise.
- * sysdeps/alpha/fpu/s_cacoshf.c: Likewise.
- * sysdeps/alpha/fpu/s_casinf.c: Likewise.
- * sysdeps/alpha/fpu/s_casinhf.c: Likewise.
- * sysdeps/alpha/fpu/s_catanf.c: Likewise.
- * sysdeps/alpha/fpu/s_catanhf.c: Likewise.
- * sysdeps/alpha/fpu/s_ccosf.c: Likewise.
- * sysdeps/alpha/fpu/s_ccoshf.c: Likewise.
- * sysdeps/alpha/fpu/s_cexpf.c: Likewise.
- * sysdeps/alpha/fpu/s_clogf.c: Likewise.
- * sysdeps/alpha/fpu/s_cpowf.c: Likewise.
- * sysdeps/alpha/fpu/s_cprojf.c: Likewise.
- * sysdeps/alpha/fpu/s_csinf.c: Likewise.
- * sysdeps/alpha/fpu/s_csinhf.c: Likewise.
- * sysdeps/alpha/fpu/s_csqrtf.c: Likewise.
- * sysdeps/alpha/fpu/s_ctanf.c: Likewise.
- * sysdeps/alpha/fpu/s_ctanhf.c: Likewise.
- * sysdeps/alpha/fpu/s_clog10f.c: Include <libm-alias-float.h>.
- (clog10f): Use libm_alias_float_other.
- * sysdeps/alpha/fpu/s_ceilf.c: Include <libm-alias-float.h>.
- (ceilf): Define using libm_alias_float.
- * sysdeps/alpha/fpu/s_copysignf.c: Include <libm-alias-float.h>.
- (copysignf): Define using libm_alias_float.
- * sysdeps/alpha/fpu/s_fabsf.c: Include <libm-alias-float.h>.
- (fabsf): Define using libm_alias_float.
- * sysdeps/alpha/fpu/s_floorf.c: Include <libm-alias-float.h>.
- (floorf): Define using libm_alias_float.
- * sysdeps/alpha/fpu/s_fmax.S: Include <libm-alias-float.h>.
- (fmaxf): Define using libm_alias_float.
- * sysdeps/alpha/fpu/s_fmin.S: Include <libm-alias-float.h>.
- (fminf): Define using libm_alias_float.
- * sysdeps/alpha/fpu/s_lrintf.c: Include <libm-alias-float.h>.
- (lrintf): Define using libm_alias_float.
- (llrintf): Likewise.
- * sysdeps/alpha/fpu/s_lroundf.c: Include <libm-alias-float.h>.
- (lroundf): Define using libm_alias_float.
- (llroundf): Likewise.
- * sysdeps/alpha/fpu/s_rintf.c: Include <libm-alias-float.h>.
- (rintf): Define using libm_alias_float.
- * sysdeps/alpha/fpu/s_truncf.c: Include <libm-alias-float.h>.
- (truncf): Define using libm_alias_float.
-
- * sysdeps/aarch64/fpu/s_ceilf.c: Include <libm-alias-float.h>.
- (ceilf): Define using libm_alias_float.
- * sysdeps/aarch64/fpu/s_floorf.c: Include <libm-alias-float.h>.
- (floorf): Define using libm_alias_float.
- * sysdeps/aarch64/fpu/s_fmaf.c: Include <libm-alias-float.h>.
- (fmaf): Define using libm_alias_float.
- * sysdeps/aarch64/fpu/s_fmaxf.c: Include <libm-alias-float.h>.
- (fmaxf): Define using libm_alias_float.
- * sysdeps/aarch64/fpu/s_fminf.c: Include <libm-alias-float.h>.
- (fminf): Define using libm_alias_float.
- * sysdeps/aarch64/fpu/s_llrintf.c: Include <libm-alias-float.h>.
- (llrintf): Define using libm_alias_float.
- * sysdeps/aarch64/fpu/s_llroundf.c: Include <libm-alias-float.h>.
- (llroundf): Define using libm_alias_float.
- * sysdeps/aarch64/fpu/s_lrintf.c: Include <libm-alias-float.h>.
- (lrintf): Define using libm_alias_float.
- * sysdeps/aarch64/fpu/s_lroundf.c: Include <libm-alias-float.h>.
- (lroundf): Define using libm_alias_float.
- * sysdeps/aarch64/fpu/s_nearbyintf.c: Include
- <libm-alias-float.h>.
- (nearbyintf): Define using libm_alias_float.
- * sysdeps/aarch64/fpu/s_rintf.c: Include <libm-alias-float.h>.
- (rintf): Define using libm_alias_float.
- * sysdeps/aarch64/fpu/s_roundf.c: Include <libm-alias-float.h>.
- (roundf): Define using libm_alias_float.
- * sysdeps/aarch64/fpu/s_truncf.c: Include <libm-alias-float.h>.
- (truncf): Define using libm_alias_float.
-
- * sysdeps/alpha/fpu/s_ceil.c: Include <libm-alias-double.h>.
- (ceil): Define using libm_alias_double.
- * sysdeps/alpha/fpu/s_copysign.c: Include <libm-alias-double.h>.
- (copysign): Define using libm_alias_double.
- * sysdeps/alpha/fpu/s_fabs.c: Include <libm-alias-double.h>.
- (fabs): Define using libm_alias_double.
- * sysdeps/alpha/fpu/s_floor.c: Include <libm-alias-double.h>.
- (floor): Define using libm_alias_double.
- * sysdeps/alpha/fpu/s_fmax.S: Include <libm-alias-double.h>.
- (fmax): Define using libm_alias_double.
- * sysdeps/alpha/fpu/s_fmin.S: Include <libm-alias-double.h>.
- (fmin): Define using libm_alias_double.
- * sysdeps/alpha/fpu/s_lrint.c: Include <libm-alias-double.h>.
- (lrint): Define using libm_alias_double.
- (llrint): Likewise.
- * sysdeps/alpha/fpu/s_lround.c: Include <libm-alias-double.h>.
- (lround): Define using libm_alias_double.
- (llround): Likewise.
- * sysdeps/alpha/fpu/s_rint.c: Include <libm-alias-double.h>.
- (rint): Define using libm_alias_double.
- * sysdeps/alpha/fpu/s_trunc.c: Include <libm-alias-double.h>.
- (trunc): Define using libm_alias_double.
-
- * sysdeps/ieee754/ldbl-opt/libm-alias-double.h
- (libm_alias_double_r): Add semicolon after weak_alias call.
-
-2017-11-27 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/aarch64/fpu/s_ceil.c: Include <libm-alias-double.h>.
- (ceil): Define using libm_alias_double.
- * sysdeps/aarch64/fpu/s_floor.c: Include <libm-alias-double.h>.
- (floor): Define using libm_alias_double.
- * sysdeps/aarch64/fpu/s_fma.c: Include <libm-alias-double.h>.
- (fma): Define using libm_alias_double.
- * sysdeps/aarch64/fpu/s_fmax.c: Include <libm-alias-double.h>.
- (fmax): Define using libm_alias_double.
- * sysdeps/aarch64/fpu/s_fmin.c: Include <libm-alias-double.h>.
- (fmin): Define using libm_alias_double.
- * sysdeps/aarch64/fpu/s_llrint.c: Include <libm-alias-double.h>.
- (llrint): Define using libm_alias_double.
- * sysdeps/aarch64/fpu/s_llround.c: Include <libm-alias-double.h>.
- (llround): Define using libm_alias_double.
- * sysdeps/aarch64/fpu/s_lrint.c: Include <libm-alias-double.h>.
- (lrint): Define using libm_alias_double.
- * sysdeps/aarch64/fpu/s_lround.c: Include <libm-alias-double.h>.
- (lround): Define using libm_alias_double.
- * sysdeps/aarch64/fpu/s_nearbyint.c: Include <libm-alias-double.h>.
- (nearbyint): Define using libm_alias_double.
- * sysdeps/aarch64/fpu/s_rint.c: Include <libm-alias-double.h>.
- (rint): Define using libm_alias_double.
- * sysdeps/aarch64/fpu/s_round.c: Include <libm-alias-double.h>.
- (round): Define using libm_alias_double.
- * sysdeps/aarch64/fpu/s_trunc.c: Include <libm-alias-double.h>.
- (trunc): Define using libm_alias_double.
-
-2017-11-27 Florian Weimer <fweimer@redhat.com>
-
- * sysdeps/unix/sysv/linux/mlock2.c: New file.
- * sysdeps/unix/sysv/linux/tst-mlock2.c: Likewise.
- * sysdeps/unix/sysv/linux/Makefile (routines): Add mlock2.
- (tests): Add tst-mlock2.
- * sysdeps/unix/sysv/linux/Versions (GLIBC_2.27): Export mlock2.
- * sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_MLOCK2)
- [__LINUX_KERNEL_VERSION >= 4.4]: Define.
- * sysdeps/unix/sysv/linux/libc**.abilist: Update.
- * manual/memory.texi (Page Lock Functions): Move @end deftypefun
- for mlock. Document mlock2.
-
-2017-11-27 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/ia64/Makeconfig (float64x-alias-fcts): New variable.
- * sysdeps/ieee754/float128/Makeconfig (float64x-alias-fcts):
- Likewise.
- * sysdeps/ieee754/ldbl-128/Makeconfig (float64x-alias-fcts):
- Likewise.
- * sysdeps/x86/Makeconfig: New file.
- * bits/floatn-common.h (__HAVE_FLOAT64X): Remove macro.
- (__HAVE_FLOAT64X_LONG_DOUBLE): Likewise.
- * bits/floatn.h (__HAVE_FLOAT64X): New macro.
- (__HAVE_FLOAT64X_LONG_DOUBLE): Likewise.
- * sysdeps/ia64/bits/floatn.h (__HAVE_FLOAT64X): Likewise.
- (__HAVE_FLOAT64X_LONG_DOUBLE): Likewise.
- * sysdeps/ieee754/ldbl-128/bits/floatn.h (__HAVE_FLOAT64X):
- Likewise.
- (__HAVE_FLOAT64X_LONG_DOUBLE): Likewise.
- * sysdeps/mips/ieee754/bits/floatn.h (__HAVE_FLOAT64X): Likewise.
- (__HAVE_FLOAT64X_LONG_DOUBLE): Likewise.
- * sysdeps/powerpc/bits/floatn.h (__HAVE_FLOAT64X): Likewise.
- (__HAVE_FLOAT64X_LONG_DOUBLE): Likewise.
- * sysdeps/x86/bits/floatn.h (__HAVE_FLOAT64X): Likewise.
- (__HAVE_FLOAT64X_LONG_DOUBLE): Likewise.
- * manual/math.texi (Mathematics): Document support for _Float64x.
- * math/Versions (GLIBC_2.27): Add _Float64x functions.
- * stdlib/Versions (GLIBC_2.27): Likewise.
- * wcsmbs/Versions (GLIBC_2.27): Likewise.
- * sysdeps/unix/sysv/linux/aarch64/libc.abilist: Update.
- * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/alpha/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/i386/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/ia64/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
- * sysdeps/i386/fpu/libm-test-ulps: Likewise.
- * sysdeps/i386/i686/fpu/multiarch/libm-test-ulps: Likewise.
-
-2017-11-27 Andreas Schwab <schwab@suse.de>
-
- * elf/Makefile (dl-routines): Add dl-sort-maps.
- * elf/dl-sort-maps.c: New file.
- * sysdeps/generic/ldsodefs.h (_dl_sort_fini): Don't declare.
- (_dl_sort_maps): Declare.
- * elf/dl-fini.c (_dl_sort_fini): Remove.
- (_dl_fini): Use _dl_sort_maps instead of _dl_sort_fini.
- * elf/dl-close.c (_dl_close_worker): Likewise.
- * elf/dl-deps.c (_dl_map_object_deps): Use _dl_sort_maps instead of
- open-coding it.
- * elf/dl-open.c (dl_open_worker): Likewise.
-
-2017-11-24 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/ieee754/float128/s_fromfpf128.c (fromfpf128): Define
- using libm_alias_float128.
- * sysdeps/ieee754/float128/s_fromfpxf128.c (fromfpxf128):
- Likewise.
- * sysdeps/ieee754/float128/s_setpayloadf128.c (setpayloadf128):
- Likewise.
- * sysdeps/ieee754/float128/s_setpayloadsigf128.c
- (setpayloadsigf128): Likewise.
- * sysdeps/ieee754/float128/s_ufromfpf128.c (ufromfpf128):
- Likewise.
- * sysdeps/ieee754/float128/s_ufromfpxf128.c (ufromfpxf128):
- Likewise.
-
- * sysdeps/powerpc/powerpc64le/Makefile ($(foreach
- suf,$(all-object-suffixes),$(objpfx)test-float64x%$(suf))): Add
- -mfloat128 to CFLAGS.
- ($(foreach
- suf,$(all-object-suffixes),$(objpfx)test-ifloat64x%$(suf))):
- Likewise.
- (CFLAGS-libm-test-support-float64x.c): New variable.
- ($(objpfx)test-float64x% $(objpfx)test-ifloat64x%): Add
- $(f128-loader-link) to gnulib-tests.
-
- * sysdeps/generic/libm-alias-float128.h: Include <bits/floatn.h>.
- (libm_alias_float128_other_r): If
- [__HAVE_FLOAT64X && !__HAVE_FLOAT64X_LONG_DOUBLE], define f64x
- alias.
- (libm_alias_float128_r): Add semicolon after weak_alias call.
- * sysdeps/generic/libm-alias-ldouble.h
- (libm_alias_ldouble_other_r_f128): New macro.
- (libm_alias_ldouble_other_r_f64x): Likewise.
- (libm_alias_ldouble_other_r): Use libm_alias_ldouble_other_r_f128
- and libm_alias_ldouble_other_r_f64x.
- (libm_alias_ldouble_r): Add semicolon after weak_alias call.
- * sysdeps/ieee754/ldbl-opt/libm-alias-ldouble.h
- (libm_alias_ldouble_other_r_f128): New macro.
- (libm_alias_ldouble_other_r_f64x): Likewise.
- (libm_alias_ldouble_other_r): Use libm_alias_ldouble_other_r_f128
- and libm_alias_ldouble_other_r_f64x.
-
- * stdlib/strfroml.c: Always include <stdlib.h>.
- [__HAVE_FLOAT64X_LONG_DOUBLE] (strfromf64x): Define and later
- undefine as macro and define as weak alias.
- * sysdeps/ieee754/float128/strfromf128.c: Include <bits/floatn.h>.
- [__HAVE_FLOAT64X && !__HAVE_FLOAT64X_LONG_DOUBLE]: Include
- <stdlib.h>.
- [__HAVE_FLOAT64X && !__HAVE_FLOAT64X_LONG_DOUBLE] (strfromf64x):
- Define and later undefine as macro and define as weak alias.
-
- * stdlib/strtold.c [__HAVE_FLOAT64X_LONG_DOUBLE] (strtof64x):
- Define and later undefine as macro. Define as weak alias if
- [!USE_WIDE_CHAR].
- [__HAVE_FLOAT64X_LONG_DOUBLE] (wcstof64x): Define and later
- undefine as macro. Define as weak alias if [USE_WIDE_CHAR].
- * sysdeps/ieee754/float128/strtof128.c: Include <bits/floatn.h>.
- [__HAVE_FLOAT64X && !__HAVE_FLOAT64X_LONG_DOUBLE] (strtof64x):
- Define and later undefine as macro. Define as weak alias if
- [!USE_WIDE_CHAR].
- [__HAVE_FLOAT64X && !__HAVE_FLOAT64X_LONG_DOUBLE] (wcstof64x):
- Define and later undefine as macro. Define as weak alias if
- [USE_WIDE_CHAR].
- * sysdeps/ieee754/float128/strtof128_l.c
- [__HAVE_FLOAT64X && !__HAVE_FLOAT64X_LONG_DOUBLE] (strtof64x_l):
- Define and later undefine as macro. Define as weak alias if
- [!USE_WIDE_CHAR].
- [__HAVE_FLOAT64X && !__HAVE_FLOAT64X_LONG_DOUBLE] (wcstof64x_l):
- Define and later undefine as macro. Define as weak alias if
- [USE_WIDE_CHAR].
- * sysdeps/ieee754/ldbl-128/strtold_l.c
- [__HAVE_FLOAT64X_LONG_DOUBLE] (strtof64x_l): Define and later
- undefine as macro. Define as weak alias if [!USE_WIDE_CHAR].
- [__HAVE_FLOAT64X_LONG_DOUBLE] (wcstof64x_l): Define and later
- undefine as macro. Define as weak alias if [USE_WIDE_CHAR].
- * sysdeps/ieee754/ldbl-64-128/strtold_l.c
- [__HAVE_FLOAT64X_LONG_DOUBLE] (strtof64x_l): Define and later
- undefine as macro. Define as weak alias if [!USE_WIDE_CHAR].
- [__HAVE_FLOAT64X_LONG_DOUBLE] (wcstof64x_l): Define and later
- undefine as macro. Define as weak alias if [USE_WIDE_CHAR].
- * sysdeps/ieee754/ldbl-96/strtold_l.c
- [__HAVE_FLOAT64X_LONG_DOUBLE] (strtof64x_l): Define and later
- undefine as macro. Define as weak alias if [!USE_WIDE_CHAR].
- [__HAVE_FLOAT64X_LONG_DOUBLE] (wcstof64x_l): Define and later
- undefine as macro. Define as weak alias if [USE_WIDE_CHAR].
-
- * math/test-float64x.h: New file.
- * math/Makefile (type-float64x-yes): New variable.
- (test-types): Add $(type-float64x-$(float64x-alias-fcts)).
-
- * sysdeps/generic/math_private.h (min_of_type_f): Make into a
- function-like macro.
- (min_of_type_): Likewise.
- (min_of_type_l): Likewise.
- (min_of_type_f128): Likewise.
- (min_of_type): Pass () as last argument of __MATH_TG.
-
- * stdlib/tst-strtod-round-skeleton.c
- (__STDC_WANT_IEC_60559_TYPES_EXT__): Define before including
- headers.
-
- * math/gen-tgmath-tests.py (Type.init_types): Pass suffix argument
- for combinations of long double with _Float64 and _Float64x.
-
- * bits/libm-simd-decl-stubs.h (__DECL_SIMD_cosf16): New macro.
- (__DECL_SIMD_cosf32): Likewise.
- (__DECL_SIMD_cosf64): Likewise.
- (__DECL_SIMD_cosf32x): Likewise.
- (__DECL_SIMD_cosf64x): Likewise.
- (__DECL_SIMD_cosf128x): Likewise.
- (__DECL_SIMD_sinf16): Likewise.
- (__DECL_SIMD_sinf32): Likewise.
- (__DECL_SIMD_sinf64): Likewise.
- (__DECL_SIMD_sinf32x): Likewise.
- (__DECL_SIMD_sinf64x): Likewise.
- (__DECL_SIMD_sinf128x): Likewise.
- (__DECL_SIMD_sincosf16): Likewise.
- (__DECL_SIMD_sincosf32): Likewise.
- (__DECL_SIMD_sincosf64): Likewise.
- (__DECL_SIMD_sincosf32x): Likewise.
- (__DECL_SIMD_sincosf64x): Likewise.
- (__DECL_SIMD_sincosf128x): Likewise.
- (__DECL_SIMD_logf16): Likewise.
- (__DECL_SIMD_logf32): Likewise.
- (__DECL_SIMD_logf64): Likewise.
- (__DECL_SIMD_logf32x): Likewise.
- (__DECL_SIMD_logf64x): Likewise.
- (__DECL_SIMD_logf128x): Likewise.
- (__DECL_SIMD_expf16): Likewise.
- (__DECL_SIMD_expf32): Likewise.
- (__DECL_SIMD_expf64): Likewise.
- (__DECL_SIMD_expf32x): Likewise.
- (__DECL_SIMD_expf64x): Likewise.
- (__DECL_SIMD_expf128x): Likewise.
- (__DECL_SIMD_powf16): Likewise.
- (__DECL_SIMD_powf32): Likewise.
- (__DECL_SIMD_powf64): Likewise.
- (__DECL_SIMD_powf32x): Likewise.
- (__DECL_SIMD_powf64x): Likewise.
- (__DECL_SIMD_powf128x): Likewise.
-
- * stdlib/Versions (libc): Move entries for wcstof128 and
- wcstof128_l to ....
- * wcsmbs/Versions (libc): ... here.
- Include <float128-abi.h>.
-
-2017-11-24 Florian Weimer <fweimer@redhat.com>
-
- * sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
- bits/mman-shared.h.
- * sysdeps/unix/sysv/linux/bits/mman-linux.h: Include
- <bits/mman-shared.h>.
- (MFD_CLOEXEC, MFD_ALLOW_SEALING, MFD_HUGETLB, memfd_create): Move
- to ...
- * sysdeps/unix/sysv/linux/bits/mman-shared.h: ... this new file.
- Add #ifndef guard for the MFD_* constants based on MFD_CLOEXEC.
- * sysdeps/unix/sysv/linux/hppa/bits/mman.h: Include
- <bits/mman-shared.h>.
-
-2017-11-24 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- [BZ #22457]
- * sysdeps/posix/preadv_common.c (PREADV): Use mmap/munmap instead of
- posix_memalign/free.
- * sysdeps/posix/pwritev_common.c (PWRITEV): Likewise.
-
-2017-11-22 Mike FABIAN <mfabian@redhat.com>
-
- [BZ #22469]
- * localedata/locales/pl_PL (LC_COLLATE): Use “copy "iso14651_t1"â€
- and implement the collation rules for pl from CLDR on top of that.
- * Makefile: Add pl_PL.UTF-8 to test-input and to the list
- of locales to be built for testing.
- * pl_PL.UTF-8.in: New file with test data to test the Polish sorting.
-
-2017-11-23 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/ia64/fpu/libm-symbols.h: Include <libm-alias-ldouble.h>.
- * sysdeps/ia64/fpu/e_acoshl.S (acoshl): Use
- libm_alias_ldouble_other.
- * sysdeps/ia64/fpu/e_acosl.S (acosl): Likewise.
- * sysdeps/ia64/fpu/e_asinl.S (asinl): Likewise.
- * sysdeps/ia64/fpu/e_atanhl.S (atanhl): Likewise.
- * sysdeps/ia64/fpu/e_coshl.S (coshl): Likewise.
- * sysdeps/ia64/fpu/e_exp10l.S (exp10l): Likewise.
- * sysdeps/ia64/fpu/e_exp2l.S (exp2l): Likewise.
- * sysdeps/ia64/fpu/e_fmodl.S (fmodl): Likewise.
- * sysdeps/ia64/fpu/e_hypotl.S (hypotl): Likewise.
- * sysdeps/ia64/fpu/e_lgammal_r.c (lgammal_r): Define using
- libm_alias_ldouble_r.
- * sysdeps/ia64/fpu/e_log2l.S (log2l): Use
- libm_alias_ldouble_other.
- * sysdeps/ia64/fpu/e_logl.S (logl): Likewise.
- (log10l): Likewise.
- * sysdeps/ia64/fpu/e_powl.S (powl): Likewise.
- * sysdeps/ia64/fpu/e_remainderl.S (remainderl): Likewise.
- * sysdeps/ia64/fpu/e_sinhl.S (sinhl): Likewise.
- * sysdeps/ia64/fpu/e_sqrtl.S (sqrtl): Likewise.
- * sysdeps/ia64/fpu/libm_sincosl.S (sincosl): Likewise.
- * sysdeps/ia64/fpu/s_asinhl.S (asinhl): Likewise.
- * sysdeps/ia64/fpu/s_atanl.S (atanl): Likewise.
- (atan2l): Likewise.
- * sysdeps/ia64/fpu/s_cbrtl.S (cbrtl): Likewise.
- * sysdeps/ia64/fpu/s_ceill.S (ceill): Likewise.
- * sysdeps/ia64/fpu/s_copysign.S (copysignl): Define using
- libm_alias_ldouble.
- * sysdeps/ia64/fpu/s_cosl.S (sinl): Use libm_alias_ldouble_other.
- (cosl): Likewise.
- * sysdeps/ia64/fpu/s_erfcl.S (erfcl): Likewise.
- * sysdeps/ia64/fpu/s_erfl.S (erfl): Likewise.
- * sysdeps/ia64/fpu/s_expm1l.S (expm1l): Likewise.
- (expl): Likewise.
- * sysdeps/ia64/fpu/s_fabsl.S (fabsl): Likewise.
- * sysdeps/ia64/fpu/s_fdiml.S (fdiml): Likewise.
- * sysdeps/ia64/fpu/s_floorl.S (floorl): Likewise.
- * sysdeps/ia64/fpu/s_fmal.S (fmal): Likewise.
- * sysdeps/ia64/fpu/s_fmaxl.S (fmaxl): Likewise.
- * sysdeps/ia64/fpu/s_frexpl.c (frexpl): Likewise.
- * sysdeps/ia64/fpu/s_ldexpl.c (ldexpl): Likewise.
- * sysdeps/ia64/fpu/s_log1pl.S (log1pl): Likewise.
- * sysdeps/ia64/fpu/s_logbl.S (logbl): Likewise.
- * sysdeps/ia64/fpu/s_modfl.S (modfl): Likewise.
- * sysdeps/ia64/fpu/s_nearbyintl.S (nearbyintl): Define using
- libm_alias_ldouble.
- * sysdeps/ia64/fpu/s_nextafterl.S (nextafterl): Use
- libm_alias_ldouble_other.
- * sysdeps/ia64/fpu/s_rintl.S (rintl): Likewise.
- * sysdeps/ia64/fpu/s_roundl.S (roundl): Likewise.
- * sysdeps/ia64/fpu/s_scalbnl.c (scalbnl): Define using
- libm_alias_ldouble.
- * sysdeps/ia64/fpu/s_tanhl.S (tanhl): Use
- libm_alias_ldouble_other.
- * sysdeps/ia64/fpu/s_tanl.S (tanl): Likewise.
- * sysdeps/ia64/fpu/s_truncl.S (truncl): Likewise.
- * sysdeps/ia64/fpu/w_lgammal_main.c
- [BUILD_LGAMMA && !USE_AS_COMPAT] (lgammal): Likewise.
- * sysdeps/ia64/fpu/w_tgammal_compat.S (tgammal): Likewise.
-
-2017-11-23 Florian Weimer <fweimer@redhat.com>
-
- * malloc/malloc.c (tcache_thread_shutdown): Rename from
- tcache_thread_freeres. Define for USE_TCACHE and !USE_TCACHE
- alike. Remove freeres marker.
- * malloc/arena.c (arena_thread_freeres): Call
- tcache_thread_shutdown.
-
-2017-11-23 Florian Weimer <fweimer@redhat.com>
-
- [BZ #22459]
- Export nscd hash function as __nss_hash.
- * include/nss.h (__nss_hash): Declare.
- * nis/nis_hash.c (__nis_hash): Call __nss_hash. Turn into compat
- symbol.
- * nscd/Makefile (aux, nscd-modules): Remove nscd_hash.
- * nscd/cache.c (cache_search, cache_add): Call __nss_hash instead
- of __nscd_hash.
- * nscd/nscd_helper.c (__nscd_cache_search): Likewise.
- * nscd/nscd_hash.h, nscd/nscd_hash.c: Remove files.
- * nss/Makefiles (routines): Add nss_hash.
- * nss/Versions (GLIBC_PRIVATE): Export __nss_hash.
- * nss/nss_hash.c: Rename from nis/nis_hash.c.
- (__nss_hash): Rename from __nis_hash. Define hidden alias.
- * nis/rpcsvc/nislib.h (__nis_hash): Remove declaration.
-
-2017-11-23 Florian Weimer <fweimer@redhat.com>
-
- [BZ #22478]
- * sysdeps/unix/sysv/linux/sigwait.c (__sigwait): Retry on EINTR.
- Return error code, not -1.
- * signal/tst-sigwait-eintr.c: New file.
- * signal/Makefile (tests): Add tst-sigwait-eintr.
-
-2017-11-23 Florian Weimer <fweimer@redhat.com>
-
- Linux: Add memfd_create system call wrapper
- * sysdeps/unix/sysv/linux/Makefile [misc] (tests): Add
- tst-memfd_create.
- * sysdeps/unix/sysv/linux/bits/mman-linux.h [__USE_GNU]
- (MFD_CLOEXEC, MFD_ALLOW_SEALING): Define.
- [__USE_GNU] (memfd_create): Declare.
- * sysdeps/unix/sysv/linux/Versions (GLIBC_2.27): Add memfd_create.
- * sysdeps/unix/sysv/linux/syscalls.list (memfd_create): Add.
- * sysdeps/unix/sysv/linux/tst-memfd_create.c: New file.
- * sysdeps/unix/sysv/linux/**.abilist: Update.
- * manual/llio.texi (Memory-mapped I/O): Document memfd_create.
-
-2017-11-22 Joseph Myers <joseph@codesourcery.com>
-
- * localedata/gen-locale.sh: Fix typo in variable name.
-
- * resolv/res_debug.c (p_secstodate): Condition definition on
- [SHLIB_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_27)]. Define
- directly as __p_secstodate, and as a compat symbol. Do not use
- libresolv_hidden_def.
- * resolv/resolv.h (p_secstodate): Remove macro and function
- declaration.
- * resolv/ns_print.c (ns_sprintrrf): Print times with %lu, not
- using p_secstodate.
- * include/resolv.h (__p_secstodate): Do not use
- libresolv_hidden_proto.
- * resolv/Makefile (tests): Move tst-p_secstodate to ....
- (tests-internal): ... here.
- * resolv/tst-p_secstodate.c: Include <shlib-compat.h>. Condition
- all contents on [TEST_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_27)]
- and declare and use __p_secstodate and use compat_symbol_reference
- in that case.
- [!TEST_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_27)] (do_test): Add
- implementation returning 77.
-
- [BZ #22463]
- * resolv/res_debug.c: Include <libc-diag.h>.
- (p_secstodate): Assert time_t at least as wide as u_long. On
- overflow, use integer seconds since the epoch as output, or use
- "<overflow>" as output and set errno to EOVERFLOW if integer
- seconds since the epoch would be 14 or more characters.
- (p_secstodate) [__GNUC_PREREQ (7, 0)]: Disable -Wformat-overflow=
- for sprintf call.
- * resolv/tst-p_secstodate.c: New file.
- * resolv/Makefile (tests): Add tst-p_secstodate.
- ($(objpfx)tst-p_secstodate): Depend on $(objpfx)libresolv.so.
-
- * sysdeps/sparc/sparc64/soft-fp/s_frexpl.c: Remove file.
- * sysdeps/sparc/sparc64/soft-fp/s_scalblnl.c: Likewise.
- * sysdeps/sparc/sparc64/soft-fp/s_scalbnl.c: Likewise.
-
-2017-11-22 Paul Eggert <eggert@cs.ucla.edu>
-
- * posix/regcomp.c (init_word_char): Add comments.
-
-2017-11-22 Joseph Myers <joseph@codesourcery.com>
-
- [BZ #22447]
- * sysdeps/unix/getlogin_r.c (__getlogin_r): Use __strnlen not
- strlen to compute length of ut_user and set trailing NUL byte of
- result explicitly.
-
-2017-11-21 Mike FABIAN <mfabian@redhat.com>
-
- [BZ #15537]
- * localedata/locales/lv_LV (LC_COLLATE): Fix collation by
- using “copy "iso14651_t1"†and then implementing the
- collation rules for lv from CLDR on top of that.
- * Makefile: Add lv_LV.UTF-8 to test-input and to the list
- of locales to be built for testing.
- * lv_LV.UTF-8.in: New file with test data to test the Latvian
- sorting.
-
-2017-11-21 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/unix/sysv/linux/hppa/bits/mman.h
- [__USE_MISC] (MADV_SPACEAVAIL): Remove macro.
- [__USE_MISC] (MADV_VPS_PURGE): Likewise.
- [__USE_MISC] (MADV_VPS_INHERIT): Likewise.
- [__USE_MISC] (MADV_HWPOISON): New macro.
- [__USE_MISC] (MADV_SOFT_OFFLINE): Likewise.
-
-2017-11-21 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * nptl/pthreadP.h (ASSERT_PTHREAD_INTERNAL_SIZE): Add workarond for
- -Wmissing-braces on GCC 4.9.
-
-2017-11-21 Stefan Liebler <stli@linux.vnet.ibm.com>
-
- * sysdeps/s390/s390-64/start.S (_start): Add cfi information for r14.
- * sysdeps/s390/s390-32/start.S (_start): Likewise
- * sysdeps/unix/sysv/linux/s390/s390-64/clone.S
- (thread_start): Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-32/clone.S
- (thread_start): Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-64/__makecontext_ret.S
- (__makecontext_ret): Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-32/__makecontext_ret.S
- (__makecontext_ret): Likewise.
-
-2017-11-21 Stefan Liebler <stli@linux.vnet.ibm.com>
-
- * include/wchar.h (__wcsnlen, __wcscat, __wcsncpy, __wcpncpy,
- __wcschrnul): Remove attribute_hidden.
-
-2017-11-20 Paul Eggert <eggert@cs.ucla.edu>
-
- regex: don't assume uint64_t or uint32_t
- This avoids -Werror=overflow errors for 32-bit systems in
- the 64-bit case. Problem reported by Joseph Myers in:
- https://sourceware.org/ml/libc-alpha/2017-11/msg00694.html
- Also, when this code is used in Gnulib it ports to platforms
- that lack uint64_t and uint32_t. The C standard doesn't guarantee
- them, and on some 32-bit compilers there is no uint64_t.
- Problem reported by Gianluigi Tiesi in:
- http://lists.gnu.org/archive/html/bug-gnulib/2012-03/msg00154.html
- * posix/regcomp.c (init_word_char): Don't assume that the types
- uint64_t and uint32_t exist. Adapted from Gnulib patch
- 2012-05-27T06:40:00!eggert@cs.ucla.edu. See:
- https://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=252b52457da7887667c036d18cc5169777615bb0
-
-2017-11-20 Siddhesh Poyarekar <siddhesh@sourceware.org>
-
- * sysdeps/aarch64/memset-reg.h: New file.
- * sysdeps/aarch64/memset.S: Use it.
- (__memset): Rename to MEMSET macro.
- [ZVA_MACRO]: Use zva_macro.
- * sysdeps/aarch64/multiarch/Makefile (sysdep_routines):
- Add memset_generic and memset_falkor.
- * sysdeps/aarch64/multiarch/ifunc-impl-list.c
- (__libc_ifunc_impl_list): Add memset ifuncs.
- * sysdeps/aarch64/multiarch/init-arch.h (INIT_ARCH): New
- local variable zva_size.
- * sysdeps/aarch64/multiarch/memset.c: New file.
- * sysdeps/aarch64/multiarch/memset_generic.S: New file.
- * sysdeps/aarch64/multiarch/memset_falkor.S: New file.
- * sysdeps/aarch64/multiarch/rtld-memset.S: New file.
- * sysdeps/unix/sysv/linux/aarch64/cpu-features.c
- (DCZID_DZP_MASK): New macro.
- (DCZID_BS_MASK): Likewise.
- (init_cpu_features): Read and set zva_size.
- * sysdeps/unix/sysv/linux/aarch64/cpu-features.h
- (struct cpu_features): New member zva_size.
-
- * benchtests/bench-memcpy-walk.c (START_SIZE): Set to 128.
- * benchtests/bench-memmove-walk.c (START_SIZE): Likewise.
- * benchtests/bench-memset-walk.c (START_SIZE): Likewise.
-
- * benchtests/bench-memcpy-walk.c (do_one_test): Copy only
- backwards. Fix timing computation.
- * benchtests/bench-memmove-walk.c (do_one_test): Likewise.
- * benchtests/bench-memset-walk.c (do_one_test): Walk backwards
- on memset by N at a time. Fix timing computation.
-
-2017-11-20 Florian Weimer <fweimer@redhat.com>
-
- * manual/llio.texi (Memory-mapped I/O): Document MAP_HUGETLB,
- MADV_HUGEPAGE, MADV_NOHUGEPAGE.
-
-2017-11-19 Florian Weimer <fweimer@redhat.com>
-
- manual: Document mprotect
- * manual/memory.texi (Memory Protection): New section.
- * manual/llio.texi (Memory-mapped I/O): Remove duplicate
- documentation of PROT_* flags and reference the Memory Protection
- section instead.
-
-2017-11-19 Florian Weimer <fweimer@redhat.com>
-
- * manual/llio.texi (I/O Primitives): Move preadv, preadv64,
- pwritev, pwritev64, preadv2, preadv64v2, pwritev2, pwritev64v2 ...
- (Scatter-Gather): ... to here. Remove misleading comment.
-
-2017-11-18 Christian Brauner <christian.brauner@ubuntu.com>
-
- * support/support_become_root.c (setup_uid_gid_mapping): Fix comment
- style.
-
- * support/support_become_root.c (setup_uid_gid_mapping): Don't fail
- when /proc/<pid>/setgroups does not exist.
-
-2017-11-18 Florian Weimer <fweimer@redhat.com>
-
- * sysdeps/unix/sysv/linux/tst-ttyname.c
- (become_root_in_mount_ns): Remove.
- (do_in_chroot_1): Call support_enter_mount_namespace.
- (do_in_chroot_2): Likewise.
- (do_test): Call support_become_root early.
-
-2017-11-18 Florian Weimer <fweimer@redhat.com>
-
- * support/namespace.h (support_enter_mount_namespace): Declare.
- * support/support_enter_mount_namespace.c: New file.
- * support/Makefile (libsupport-routines): Add
- support_enter_mount_namespace.
-
-2017-11-18 Florian Weimer <fweimer@redhat.com>
-
- * support/temp_file.c (support_create_temp_directory): Use
- test_dir and do not rely on the presence of the XXXXXX suffix.
- * support/temp_file.h (support_create_temp_directory): Update
- comment.
- * support/tst-xreadlink.c (do_test): Adjust.
- * support/support_chroot.c (support_chroot_create): Likewise.
-
-2017-11-17 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
-
- * sysdeps/powerpc/bits/hwcap.h (PPC_FEATURE2_HTM_NO_SUSPEND): New
- macro.
- * sysdeps/powerpc/dl-procinfo.c (_dl_powerpc_cap_flags): Add
- htm-no-suspend.
-
-2017-11-17 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/x86_64/fpu/e_expl.S: Include <libm-alias-ldouble.h>.
- [USE_AS_EXPM1L] (expm1l): Define using libm_alias_ldouble.
- * sysdeps/x86_64/fpu/s_ceill.S: Include <libm-alias-ldouble.h>.
- (ceill): Define using libm_alias_ldouble.
- * sysdeps/x86_64/fpu/s_copysignl.S: Include
- <libm-alias-ldouble.h>.
- (copysignl): Define using libm_alias_ldouble.
- * sysdeps/x86_64/fpu/s_fabsl.S: Include <libm-alias-ldouble.h>.
- (fabsl): Define using libm_alias_ldouble.
- * sysdeps/x86_64/fpu/s_floorl.S: Include <libm-alias-ldouble.h>.
- (floorl): Define using libm_alias_ldouble.
- * sysdeps/x86_64/fpu/s_fmaxl.S: Include <libm-alias-ldouble.h>.
- (fmaxl): Define using libm_alias_ldouble.
- * sysdeps/x86_64/fpu/s_fminl.S: Include <libm-alias-ldouble.h>.
- (fminl): Define using libm_alias_ldouble.
- * sysdeps/x86_64/fpu/s_llrintl.S: Include <libm-alias-ldouble.h>.
- (llrintl): Define using libm_alias_ldouble.
- (lrintl): Likewise.
- * sysdeps/x86_64/fpu/s_nearbyintl.S: Include
- <libm-alias-ldouble.h>.
- (nearbyintl): Define using libm_alias_ldouble.
- * sysdeps/x86_64/fpu/s_truncl.S: Include <libm-alias-ldouble.h>.
- (truncl): Define using libm_alias_ldouble.
- * sysdeps/x86_64/x32/fpu/s_lrintl.S: Include
- <libm-alias-ldouble.h>.
- (lrintl): Define using libm_alias_ldouble.
-
- * sysdeps/i386/fpu/e_expl.S: Include <libm-alias-ldouble.h>.
- [USE_AS_EXPM1L] (expm1l): Define using libm_alias_ldouble.
- * sysdeps/i386/fpu/s_asinhl.S: Include <libm-alias-ldouble.h>.
- (asinhl): Define using libm_alias_ldouble.
- * sysdeps/i386/fpu/s_atanl.c: Include <libm-alias-ldouble.h>.
- (atanl): Define using libm_alias_ldouble.
- * sysdeps/i386/fpu/s_cbrtl.S: Include <libm-alias-ldouble.h>.
- (cbrtl): Define using libm_alias_ldouble.
- * sysdeps/i386/fpu/s_ceill.S: Include <libm-alias-ldouble.h>.
- (ceill): Define using libm_alias_ldouble.
- * sysdeps/i386/fpu/s_copysignl.S: Include <libm-alias-ldouble.h>.
- (copysignl): Define using libm_alias_ldouble.
- * sysdeps/i386/fpu/s_fabsl.S: Include <libm-alias-ldouble.h>.
- (fabsl): Define using libm_alias_ldouble.
- * sysdeps/i386/fpu/s_floorl.S: Include <libm-alias-ldouble.h>.
- (floorl): Define using libm_alias_ldouble.
- * sysdeps/i386/fpu/s_fmaxl.S: Include <libm-alias-ldouble.h>.
- (fmaxl): Define using libm_alias_ldouble.
- * sysdeps/i386/fpu/s_fminl.S: Include <libm-alias-ldouble.h>.
- (fminl): Define using libm_alias_ldouble.
- * sysdeps/i386/fpu/s_frexpl.S: Include <libm-alias-ldouble.h>.
- (frexpl): Define using libm_alias_ldouble.
- * sysdeps/i386/fpu/s_llrintl.S: Include <libm-alias-ldouble.h>.
- (llrintl): Define using libm_alias_ldouble.
- * sysdeps/i386/fpu/s_logbl.c: Include <libm-alias-ldouble.h>.
- (logbl): Define using libm_alias_ldouble.
- * sysdeps/i386/fpu/s_lrintl.S: Include <libm-alias-ldouble.h>.
- (lrintl): Define using libm_alias_ldouble.
- * sysdeps/i386/fpu/s_nearbyintl.S: Include <libm-alias-ldouble.h>.
- (nearbyintl): Define using libm_alias_ldouble.
- * sysdeps/i386/fpu/s_nextafterl.c: Include <libm-alias-ldouble.h>.
- (nextafterl): Define using libm_alias_ldouble.
- * sysdeps/i386/fpu/s_remquol.S: Include <libm-alias-ldouble.h>.
- (remquol): Define using libm_alias_ldouble.
- * sysdeps/i386/fpu/s_rintl.c: Include <libm-alias-ldouble.h>.
- (rintl): Define using libm_alias_ldouble.
- * sysdeps/i386/fpu/s_truncl.S: Include <libm-alias-ldouble.h>.
- (truncl): Define using libm_alias_ldouble.
- * sysdeps/i386/i686/fpu/s_fmaxl.S: Include <libm-alias-ldouble.h>.
- (fmaxl): Define using libm_alias_ldouble.
- * sysdeps/i386/i686/fpu/s_fminl.S: Include <libm-alias-ldouble.h>.
- (fminl): Define using libm_alias_ldouble.
-
- * bits/floatn-common.h [!__ASSEMBLER]: Disable everything related
- to C syntax instead of availability and properties of types.
- * bits/floatn.h [!__ASSEMBLER]: Likewise.
- * sysdeps/ia64/bits/floatn.h [!__ASSEMBLER]: Likewise.
- * sysdeps/ieee754/ldbl-128/bits/floatn.h [!__ASSEMBLER]: Likewise.
- * sysdeps/mips/ieee754/bits/floatn.h [!__ASSEMBLER]: Likewise.
- * sysdeps/powerpc/bits/floatn.h [!__ASSEMBLER]: Likewise.
- * sysdeps/x86/bits/floatn.h [!__ASSEMBLER]: Likewise.
-
-2017-11-17 Florian Weimer <fweimer@redhat.com>
-
- support_become_root: Enable file creation in namespaces.
- * support/support_become_root.c (setup_mapping): New function.
- (support_become_root): Call it.
-
-2017-11-17 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/unix/sysv/linux/aarch64/bits/hwcap.h (HWCAP_DCPOP): New
- macro.
-
-2017-11-16 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * sysdeps/aarch64/fpu/Makefile (CFLAGS-s_fmax.c, CFLAGS-s_fmaxf.c,
- CFLAGS-s_fmin.c, CFLAGS-s_fminf.c): New rule: add -ffinite-math-only.
-
-2017-11-16 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/unix/sysv/linux/net/if_arp.h (ARPHRD_RAWIP): New macro.
-
- * sysdeps/unix/sysv/linux/syscall-names.list: Update kernel
- version to 4.14.
-
-2017-11-16 Siddhesh Poyarekar <siddhesh@sourceware.org>
-
- * INSTALL: Fix botched up regeneration.
-
- * NEWS: Update sourceare link to https.
- * configure.ac: Likewise.
- * crypt/md5test-giant.c: Likewise.
- * dlfcn/bug-atexit1.c: Likewise.
- * dlfcn/bug-atexit2.c: Likewise.
- * localedata/README: Likewise.
- * malloc/tst-mallocfork.c: Likewise.
- * manual/install.texi: Likewise.
- * nptl/tst-pthread-getattr.c: Likewise.
- * stdio-common/tst-fgets.c: Likewise.
- * stdio-common/tst-fwrite.c: Likewise.
- * sunrpc/Makefile: Likewise.
- * sysdeps/arm/armv7/multiarch/memcpy_impl.S: Likewise.
- * wcsmbs/tst-mbrtowc2.c: Likewise.
- * configure: Regenerate.
- * INSTALL: Regenerate.
-
-2017-11-15 Martin Sebor <msebor@redhat.com>
-
- * misc/sys/cdefs.h (__attribute_nonstring__): New macro.
- * sysdeps/gnu/bits/utmp.h (struct utmp): Use it.
- * sysdeps/unix/sysv/linux/s390/bits/utmp.h (struct utmp): Same.
-
-2017-11-15 Luke Shumaker <lukeshu@parabola.nu>
-
- [BZ #22145]
- * sysdeps/unix/sysv/linux/tst-ttyname.c: New file.
- * sysdeps/unix/sysv/linux/Makefile: Add tst-ttyname to tests.
-
- [BZ #22145]
- * sysdeps/unix/sysv/linux/ttyname.c (ttyname):
- Defer is_pty check until end of the function.
- * sysdeps/unix/sysv/linux/ttyname_r.c (__ttyname_r): Likewise.
-
- [BZ #22145]
- * sysdeps/unix/sysv/linux/ttyname.h (is_mytty): New function.
- * sysdeps/unix/sysv/linux/ttyname.c (getttyname): Call is_mytty.
- (ttyname): Likewise.
- * sysdeps/unix/sysv/linux/ttyname_r.c (getttyname_r): Likewise.
- (__ttyname_r): Likewise.
-
- * sysdeps/unix/sysv/linux/ttyname.h (is_pty): Change return type from
- int to bool.
-
- * sysdeps/unix/sysv/linux/ttyname.h (is_pty): Update doc reference.
-
- * manual/terminal.texi (Is It a Terminal):
- Mention ENODEV for ttyname and ttyname_r.
-
-2017-11-15 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/unix/sysv/linux/bits/socket.h (MSG_ZEROCOPY): New enum
- constant and macro.
-
- * sysdeps/unix/sysv/linux/bits/mman-linux.h
- [__USE_MISC] (MADV_WIPEONFORK): New macro.
- [__USE_MISC] (MADV_KEEPONFORK): Likewise.
- * sysdeps/unix/sysv/linux/hppa/bits/mman.h
- [__USE_MISC] (MADV_WIPEONFORK): Likewise.
- [__USE_MISC] (MADV_KEEPONFORK): Likewise.
-
-2017-11-15 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * signal/sigrelse.c (sigrelse): Optimize implementation.
-
- * sysdeps/posix/sigpause.c (do_sigpause): Remove.
- (__sigpause): Rely on __sigsuspend to implement single thread
- optimization. Add LIBC_CANCEL_HANDLED for cancellation marking.
-
-2017-11-15 Joseph Myers <joseph@codesourcery.com>
-
- * scripts/build-many-glibcs.py (Context.checkout): Default Linux
- kernel version to 4.14.
-
-2017-11-15 Steve Ellcey <sellcey@cavium.com>
-
- [BZ #22442]
- * sysdeps/unix/sysv/linux/if_index.c (__if_nametoindex):
- Check if ifname is too long.
-
-2017-11-15 Luke Shumaker <lukeshu@parabola.nu>
-
- * sysdeps/unix/sysv/linux/epoll_wait.c: Include <sysdep-cancel.h>.
-
-2017-11-15 Mike FABIAN <mfabian@redhat.com>
-
- * localedata/locales/ka_GE (LC_MESSAGES): Add “X†back to yesexpr,
- was accidentally lost.
-
-2017-11-15 Mike FABIAN <mfabian@redhat.com>
-
- * localedata/locales/az_IR: Add standard copyright header.
-
-2017-11-15 Florian Weimer <fweimer@redhat.com>
-
- [BZ #22439]
- * malloc/malloc.c (__malloc_info): Count all heaps in an arena,
- not just the top one. Output a new "subheaps" statistic.
-
-2017-11-15 Florian Weimer <fweimer@redhat.com>
-
- [BZ #22408]
- * malloc/malloc.c (__malloc_info): Obtain arena heap statistics
- under the per-arena lock.
- * malloc/Makefile (tests): Add tst-malloc_info.
- (tst-malloc_info): Link with libpthread.
- * malloc/tst-malloc_info.c: New file.
-
-2017-11-15 Joseph Myers <joseph@codesourcery.com>
-
- [BZ #21660]
- * math/tgmath.h (__HAVE_BUILTIN_TGMATH): New macro.
- [__HAVE_BUILTIN_TGMATH] (__TG_F16_ARG): Likewise.
- [__HAVE_BUILTIN_TGMATH] (__TG_F32_ARG): Likewise.
- [__HAVE_BUILTIN_TGMATH] (__TG_F64_ARG): Likewise.
- [__HAVE_BUILTIN_TGMATH] (__TG_F128_ARG): Likewise.
- [__HAVE_BUILTIN_TGMATH] (__TG_F32X_ARG): Likewise.
- [__HAVE_BUILTIN_TGMATH] (__TG_F64X_ARG): Likewise.
- [__HAVE_BUILTIN_TGMATH] (__TG_F128X_ARG): Likewise.
- [__HAVE_BUILTIN_TGMATH] (__TGMATH_FUNCS): Likewise.
- [__HAVE_BUILTIN_TGMATH] (__TGMATH_RCFUNCS): Likewise.
- [__HAVE_BUILTIN_TGMATH] (__TGMATH_1): Likewise.
- [__HAVE_BUILTIN_TGMATH] (__TGMATH_2): Likewise.
- [__HAVE_BUILTIN_TGMATH] (__TGMATH_2STD): Likewise.
- [__HAVE_BUILTIN_TGMATH] (__TGMATH_3): Likewise.
- [__HAVE_BUILTIN_TGMATH] (__TGMATH_1C): Likewise.
- [__HAVE_BUILTIN_TGMATH] (__TGMATH_2C): Likewise.
- (__tgml): Make conditional on [!__HAVE_BUILTIN_TGMATH].
- (__floating_type): Likewise.
- (__real_integer_type): Likewise.
- (__complex_integer_type): Likewise.
- (__expr_is_real): Likewise.
- (__tgmath_real_type_sub): Likewise.
- (__tgmath_real_type): Likewise.
- (__tgmath_complex_type_sub): Likewise.
- (__tgmath_complex_type): Likewise.
- (__TGMATH_F128): Likewise.
- (__TGMATH_CF128): Likewise.
- [__HAVE_BUILTIN_TGMATH] (__TGMATH_UNARY_REAL_ONLY): Define using
- new macros.
- [__HAVE_BUILTIN_TGMATH] (__TGMATH_UNARY_REAL_RET_ONLY): Likewise.
- [__HAVE_BUILTIN_TGMATH] (__TGMATH_BINARY_FIRST_REAL_ONLY):
- Likewise.
- [__HAVE_BUILTIN_TGMATH] (__TGMATH_BINARY_FIRST_REAL_STD_ONLY):
- Likewise.
- [__HAVE_BUILTIN_TGMATH] (__TGMATH_BINARY_REAL_ONLY): Likewise.
- [__HAVE_BUILTIN_TGMATH] (__TGMATH_BINARY_REAL_STD_ONLY): Likewise.
- [__HAVE_BUILTIN_TGMATH] (__TGMATH_BINARY_REAL_RET_ONLY): Likewise.
- [__HAVE_BUILTIN_TGMATH] (__TGMATH_TERNARY_FIRST_SECOND_REAL_ONLY):
- Likewise.
- [__HAVE_BUILTIN_TGMATH] (__TGMATH_TERNARY_REAL_ONLY): Likewise.
- [__HAVE_BUILTIN_TGMATH] (__TGMATH_TERNARY_FIRST_REAL_RET_ONLY):
- Likewise.
- [__HAVE_BUILTIN_TGMATH] (__TGMATH_UNARY_REAL_IMAG): Likewise.
- [__HAVE_BUILTIN_TGMATH] (__TGMATH_UNARY_IMAG): Likewise.
- [__HAVE_BUILTIN_TGMATH] (__TGMATH_UNARY_REAL_IMAG_RET_REAL):
- Likewise.
- [__HAVE_BUILTIN_TGMATH] (__TGMATH_BINARY_REAL_IMAG): Likewise.
- (__TGMATH_UNARY_REAL_IMAG_RET_REAL_SAME): New macro.
- (carg): Use __TGMATH_UNARY_REAL_IMAG_RET_REAL_SAME.
- (cimag): Likewise.
- (creal): Likewise.
-
-2017-11-14 Joseph Myers <joseph@codesourcery.com>
-
- * string/tester.c (test_stpncpy): Disable -Wstringop-truncation
- for stpncpy calls for GCC 8.
- (test_strncat): Disable -Wstringop-truncation warning for strncat
- calls for GCC 8. Disable -Wstringop-overflow= warning for one
- strncat call for GCC 7.
- (test_strncpy): Disable -Wstringop-truncation warning for strncpy
- calls for GCC 8.
- (test_memcmp): Use memcpy instead of strncpy for calls not copying
- trailing NUL.
-
- * string/bug-strncat1.c: Include <libc-diag.h>.
- (main): Disable -Wstringop-truncation for strncat call for GCC 8.
-
-2017-11-13 Claude Paroz <claude@2xlibre.net>
-
- [BZ #22387]
- * localedata/locales/aa_DJ: Improved readibility by replacing
- <Uxxxx> sequences in the ASCII printable range by their ASCII
- character equivalents.
- * localedata/locales/aa_ER: Likewise.
- * localedata/locales/aa_ER@saaho: Likewise.
- * localedata/locales/aa_ET: Likewise.
- * localedata/locales/af_ZA: Likewise.
- * localedata/locales/agr_PE: Likewise.
- * localedata/locales/ak_GH: Likewise.
- * localedata/locales/am_ET: Likewise.
- * localedata/locales/anp_IN: Likewise.
- * localedata/locales/ar_AE: Likewise.
- * localedata/locales/ar_BH: Likewise.
- * localedata/locales/ar_DZ: Likewise.
- * localedata/locales/ar_EG: Likewise.
- * localedata/locales/ar_IN: Likewise.
- * localedata/locales/ar_IQ: Likewise.
- * localedata/locales/ar_JO: Likewise.
- * localedata/locales/ar_KW: Likewise.
- * localedata/locales/ar_LB: Likewise.
- * localedata/locales/ar_LY: Likewise.
- * localedata/locales/ar_MA: Likewise.
- * localedata/locales/ar_OM: Likewise.
- * localedata/locales/ar_QA: Likewise.
- * localedata/locales/ar_SA: Likewise.
- * localedata/locales/ar_SD: Likewise.
- * localedata/locales/ar_SS: Likewise.
- * localedata/locales/ar_SY: Likewise.
- * localedata/locales/ar_TN: Likewise.
- * localedata/locales/ar_YE: Likewise.
- * localedata/locales/as_IN: Likewise.
- * localedata/locales/ast_ES: Likewise.
- * localedata/locales/ayc_PE: Likewise.
- * localedata/locales/az_AZ: Likewise.
- * localedata/locales/az_IR: Likewise.
- * localedata/locales/be_BY: Likewise.
- * localedata/locales/be_BY@latin: Likewise.
- * localedata/locales/bem_ZM: Likewise.
- * localedata/locales/ber_DZ: Likewise.
- * localedata/locales/ber_MA: Likewise.
- * localedata/locales/bg_BG: Likewise.
- * localedata/locales/bhb_IN: Likewise.
- * localedata/locales/bho_IN: Likewise.
- * localedata/locales/bi_VU: Likewise.
- * localedata/locales/bn_BD: Likewise.
- * localedata/locales/bn_IN: Likewise.
- * localedata/locales/bo_CN: Likewise.
- * localedata/locales/bo_IN: Likewise.
- * localedata/locales/br_FR: Likewise.
- * localedata/locales/brx_IN: Likewise.
- * localedata/locales/bs_BA: Likewise.
- * localedata/locales/byn_ER: Likewise.
- * localedata/locales/ca_AD: Likewise.
- * localedata/locales/ca_ES: Likewise.
- * localedata/locales/ca_FR: Likewise.
- * localedata/locales/ca_IT: Likewise.
- * localedata/locales/ce_RU: Likewise.
- * localedata/locales/chr_US: Likewise.
- * localedata/locales/cmn_TW: Likewise.
- * localedata/locales/crh_UA: Likewise.
- * localedata/locales/cs_CZ: Likewise.
- * localedata/locales/csb_PL: Likewise.
- * localedata/locales/cv_RU: Likewise.
- * localedata/locales/cy_GB: Likewise.
- * localedata/locales/da_DK: Likewise.
- * localedata/locales/de_AT: Likewise.
- * localedata/locales/de_BE: Likewise.
- * localedata/locales/de_CH: Likewise.
- * localedata/locales/de_DE: Likewise.
- * localedata/locales/de_IT: Likewise.
- * localedata/locales/de_LI: Likewise.
- * localedata/locales/de_LU: Likewise.
- * localedata/locales/doi_IN: Likewise.
- * localedata/locales/dv_MV: Likewise.
- * localedata/locales/dz_BT: Likewise.
- * localedata/locales/el_CY: Likewise.
- * localedata/locales/el_GR: Likewise.
- * localedata/locales/en_AG: Likewise.
- * localedata/locales/en_AU: Likewise.
- * localedata/locales/en_BW: Likewise.
- * localedata/locales/en_CA: Likewise.
- * localedata/locales/en_DK: Likewise.
- * localedata/locales/en_GB: Likewise.
- * localedata/locales/en_HK: Likewise.
- * localedata/locales/en_IE: Likewise.
- * localedata/locales/en_IL: Likewise.
- * localedata/locales/en_IN: Likewise.
- * localedata/locales/en_NG: Likewise.
- * localedata/locales/en_NZ: Likewise.
- * localedata/locales/en_PH: Likewise.
- * localedata/locales/en_SG: Likewise.
- * localedata/locales/en_US: Likewise.
- * localedata/locales/en_ZA: Likewise.
- * localedata/locales/en_ZM: Likewise.
- * localedata/locales/en_ZW: Likewise.
- * localedata/locales/eo: Likewise.
- * localedata/locales/es_AR: Likewise.
- * localedata/locales/es_BO: Likewise.
- * localedata/locales/es_CL: Likewise.
- * localedata/locales/es_CO: Likewise.
- * localedata/locales/es_CR: Likewise.
- * localedata/locales/es_CU: Likewise.
- * localedata/locales/es_DO: Likewise.
- * localedata/locales/es_EC: Likewise.
- * localedata/locales/es_ES: Likewise.
- * localedata/locales/es_GT: Likewise.
- * localedata/locales/es_HN: Likewise.
- * localedata/locales/es_MX: Likewise.
- * localedata/locales/es_NI: Likewise.
- * localedata/locales/es_PA: Likewise.
- * localedata/locales/es_PE: Likewise.
- * localedata/locales/es_PR: Likewise.
- * localedata/locales/es_PY: Likewise.
- * localedata/locales/es_SV: Likewise.
- * localedata/locales/es_US: Likewise.
- * localedata/locales/es_UY: Likewise.
- * localedata/locales/es_VE: Likewise.
- * localedata/locales/et_EE: Likewise.
- * localedata/locales/eu_ES: Likewise.
- * localedata/locales/eu_ES@euro: Likewise.
- * localedata/locales/fa_IR: Likewise.
- * localedata/locales/ff_SN: Likewise.
- * localedata/locales/fi_FI: Likewise.
- * localedata/locales/fil_PH: Likewise.
- * localedata/locales/fo_FO: Likewise.
- * localedata/locales/fr_BE: Likewise.
- * localedata/locales/fr_CA: Likewise.
- * localedata/locales/fr_CH: Likewise.
- * localedata/locales/fr_FR: Likewise.
- * localedata/locales/fr_LU: Likewise.
- * localedata/locales/fur_IT: Likewise.
- * localedata/locales/fy_DE: Likewise.
- * localedata/locales/fy_NL: Likewise.
- * localedata/locales/ga_IE: Likewise.
- * localedata/locales/gd_GB: Likewise.
- * localedata/locales/gez_ER: Likewise.
- * localedata/locales/gez_ET: Likewise.
- * localedata/locales/gl_ES: Likewise.
- * localedata/locales/gu_IN: Likewise.
- * localedata/locales/gv_GB: Likewise.
- * localedata/locales/ha_NG: Likewise.
- * localedata/locales/hak_TW: Likewise.
- * localedata/locales/he_IL: Likewise.
- * localedata/locales/hi_IN: Likewise.
- * localedata/locales/hif_FJ: Likewise.
- * localedata/locales/hne_IN: Likewise.
- * localedata/locales/hr_HR: Likewise.
- * localedata/locales/hsb_DE: Likewise.
- * localedata/locales/ht_HT: Likewise.
- * localedata/locales/hu_HU: Likewise.
- * localedata/locales/hy_AM: Likewise.
- * localedata/locales/i18n: Likewise.
- * localedata/locales/ia_FR: Likewise.
- * localedata/locales/id_ID: Likewise.
- * localedata/locales/ig_NG: Likewise.
- * localedata/locales/ik_CA: Likewise.
- * localedata/locales/is_IS: Likewise.
- * localedata/locales/it_CH: Likewise.
- * localedata/locales/it_IT: Likewise.
- * localedata/locales/iu_CA: Likewise.
- * localedata/locales/ja_JP: Likewise.
- * localedata/locales/ka_GE: Likewise.
- * localedata/locales/kk_KZ: Likewise.
- * localedata/locales/kl_GL: Likewise.
- * localedata/locales/kn_IN: Likewise.
- * localedata/locales/ko_KR: Likewise.
- * localedata/locales/kok_IN: Likewise.
- * localedata/locales/ks_IN: Likewise.
- * localedata/locales/ks_IN@devanagari: Likewise.
- * localedata/locales/ku_TR: Likewise.
- * localedata/locales/kw_GB: Likewise.
- * localedata/locales/ky_KG: Likewise.
- * localedata/locales/lb_LU: Likewise.
- * localedata/locales/lg_UG: Likewise.
- * localedata/locales/li_BE: Likewise.
- * localedata/locales/li_NL: Likewise.
- * localedata/locales/lij_IT: Likewise.
- * localedata/locales/ln_CD: Likewise.
- * localedata/locales/lo_LA: Likewise.
- * localedata/locales/lt_LT: Likewise.
- * localedata/locales/lv_LV: Likewise.
- * localedata/locales/lzh_TW: Likewise.
- * localedata/locales/mag_IN: Likewise.
- * localedata/locales/mai_IN: Likewise.
- * localedata/locales/mg_MG: Likewise.
- * localedata/locales/mhr_RU: Likewise.
- * localedata/locales/mi_NZ: Likewise.
- * localedata/locales/mk_MK: Likewise.
- * localedata/locales/ml_IN: Likewise.
- * localedata/locales/mn_MN: Likewise.
- * localedata/locales/mni_IN: Likewise.
- * localedata/locales/mr_IN: Likewise.
- * localedata/locales/ms_MY: Likewise.
- * localedata/locales/mt_MT: Likewise.
- * localedata/locales/my_MM: Likewise.
- * localedata/locales/nan_TW: Likewise.
- * localedata/locales/nan_TW@latin: Likewise.
- * localedata/locales/nb_NO: Likewise.
- * localedata/locales/nds_DE: Likewise.
- * localedata/locales/nds_NL: Likewise.
- * localedata/locales/ne_NP: Likewise.
- * localedata/locales/nhn_MX: Likewise.
- * localedata/locales/niu_NU: Likewise.
- * localedata/locales/niu_NZ: Likewise.
- * localedata/locales/nl_AW: Likewise.
- * localedata/locales/nl_BE: Likewise.
- * localedata/locales/nl_NL: Likewise.
- * localedata/locales/nn_NO: Likewise.
- * localedata/locales/nr_ZA: Likewise.
- * localedata/locales/nso_ZA: Likewise.
- * localedata/locales/oc_FR: Likewise.
- * localedata/locales/om_ET: Likewise.
- * localedata/locales/om_KE: Likewise.
- * localedata/locales/or_IN: Likewise.
- * localedata/locales/os_RU: Likewise.
- * localedata/locales/pa_IN: Likewise.
- * localedata/locales/pa_PK: Likewise.
- * localedata/locales/pap_AW: Likewise.
- * localedata/locales/pap_CW: Likewise.
- * localedata/locales/pl_PL: Likewise.
- * localedata/locales/ps_AF: Likewise.
- * localedata/locales/pt_BR: Likewise.
- * localedata/locales/pt_PT: Likewise.
- * localedata/locales/quz_PE: Likewise.
- * localedata/locales/raj_IN: Likewise.
- * localedata/locales/ro_RO: Likewise.
- * localedata/locales/ru_RU: Likewise.
- * localedata/locales/ru_UA: Likewise.
- * localedata/locales/rw_RW: Likewise.
- * localedata/locales/sa_IN: Likewise.
- * localedata/locales/sat_IN: Likewise.
- * localedata/locales/sc_IT: Likewise.
- * localedata/locales/sd_IN: Likewise.
- * localedata/locales/sd_IN@devanagari: Likewise.
- * localedata/locales/se_NO: Likewise.
- * localedata/locales/sgs_LT: Likewise.
- * localedata/locales/shs_CA: Likewise.
- * localedata/locales/si_LK: Likewise.
- * localedata/locales/sid_ET: Likewise.
- * localedata/locales/sk_SK: Likewise.
- * localedata/locales/sl_SI: Likewise.
- * localedata/locales/sm_WS: Likewise.
- * localedata/locales/so_DJ: Likewise.
- * localedata/locales/so_ET: Likewise.
- * localedata/locales/so_KE: Likewise.
- * localedata/locales/so_SO: Likewise.
- * localedata/locales/sq_AL: Likewise.
- * localedata/locales/sq_MK: Likewise.
- * localedata/locales/sr_ME: Likewise.
- * localedata/locales/sr_RS: Likewise.
- * localedata/locales/sr_RS@latin: Likewise.
- * localedata/locales/ss_ZA: Likewise.
- * localedata/locales/st_ZA: Likewise.
- * localedata/locales/sv_FI: Likewise.
- * localedata/locales/sv_SE: Likewise.
- * localedata/locales/sw_KE: Likewise.
- * localedata/locales/sw_TZ: Likewise.
- * localedata/locales/szl_PL: Likewise.
- * localedata/locales/ta_IN: Likewise.
- * localedata/locales/ta_LK: Likewise.
- * localedata/locales/tcy_IN: Likewise.
- * localedata/locales/te_IN: Likewise.
- * localedata/locales/tg_TJ: Likewise.
- * localedata/locales/th_TH: Likewise.
- * localedata/locales/the_NP: Likewise.
- * localedata/locales/ti_ER: Likewise.
- * localedata/locales/ti_ET: Likewise.
- * localedata/locales/tig_ER: Likewise.
- * localedata/locales/tk_TM: Likewise.
- * localedata/locales/tl_PH: Likewise.
- * localedata/locales/tn_ZA: Likewise.
- * localedata/locales/to_TO: Likewise.
- * localedata/locales/tpi_PG: Likewise.
- * localedata/locales/tr_CY: Likewise.
- * localedata/locales/tr_TR: Likewise.
- * localedata/locales/ts_ZA: Likewise.
- * localedata/locales/tt_RU: Likewise.
- * localedata/locales/tt_RU@iqtelif: Likewise.
- * localedata/locales/ug_CN: Likewise.
- * localedata/locales/uk_UA: Likewise.
- * localedata/locales/unm_US: Likewise.
- * localedata/locales/ur_IN: Likewise.
- * localedata/locales/ur_PK: Likewise.
- * localedata/locales/uz_UZ: Likewise.
- * localedata/locales/uz_UZ@cyrillic: Likewise.
- * localedata/locales/ve_ZA: Likewise.
- * localedata/locales/vi_VN: Likewise.
- * localedata/locales/wa_BE: Likewise.
- * localedata/locales/wae_CH: Likewise.
- * localedata/locales/wal_ET: Likewise.
- * localedata/locales/wo_SN: Likewise.
- * localedata/locales/xh_ZA: Likewise.
- * localedata/locales/yi_US: Likewise.
- * localedata/locales/yo_NG: Likewise.
- * localedata/locales/yue_HK: Likewise.
- * localedata/locales/yuw_PG: Likewise.
- * localedata/locales/zh_CN: Likewise.
- * localedata/locales/zh_HK: Likewise.
- * localedata/locales/zh_SG: Likewise.
- * localedata/locales/zh_TW: Likewise.
- * localedata/locales/zu_ZA: Likewise.
-
-2017-11-13 Florian Weimer <fweimer@redhat.com>
-
- * support/next_to_fault.h, support/next_to_fault.c: New files.
- * support/Makefile (libsupport-routines): Add next_to_fault.
- * resolv/tst-inet_pton.c (struct next_to_fault)
- (next_to_fault_allocate, next_to_fault_free): Remove.
- (run_one_test): Switch to <support/next_to_fault.h> interfaces.
-
-2017-11-13 H.J. Lu <hongjiu.lu@intel.com>
-
- * elf/dl-support.c: Include <dl-procruntime.c>.
- * include/link.h: Include <link_map.h>.
- * sysdeps/generic/dl-procruntime.c: New file.
- * sysdeps/generic/link_map.h: Likewise.
- * sysdeps/generic/ldsodefs.h: Include <dl-procruntime.c> in
- the writable ld.so namespace.
-
-2017-11-12 Paul Eggert <eggert@cs.ucla.edu>
-
- timezone: pacify GCC -Wstringop-truncation
- Problem reported by Martin Sebor in:
- https://sourceware.org/ml/libc-alpha/2017-11/msg00336.html
- * timezone/zic.c (writezone): Use memcpy, not strncpy.
-
-2017-11-12 Florian Weimer <fweimer@redhat.com>
-
- * support/Makefile (libsupport-routines): Add xreadlink, xstrndup,
- tst-xreadlink.
- (tests): Add tst-xreadlink.
- * support/support.h (xstrndup): Declare.
- * support/xunistd.h (xunlink, xreadlink): Declare.
- * support/temp_file.h (support_create_temp_directory): Declare.
- * support/temp_file.c (support_create_temp_directory): New function.
- * support/support_chroot.c (support_chroot_create): Use it.
- * support/xreadlink.c: New file.
- * support/xstrndup.c: Likewise.
- * support/xunlink.c: Likewise.
- * support/tst-xreadlink.c: Likewise.
-
-2017-11-11 John David Anglin <danglin@gcc.gnu.org>
-
- * sysdeps/hppa/fpu/libm-test-ulps: Update clog10_downward ulps.
-
-2017-11-11 Florian Weimer <fweimer@redhat.com>
-
- [BZ #22409]
- [BZ #22412]
- * resolv/res_comp.c (printable_string, binary_hnok)
- (binary_leading_dash): New functions.
- (res_hnok): Reimplement using these functions and ns_name_pton.
- (res_ownok): Likewise.
- (res_mailok): Reimplement using printable_string, ns_name_pton and
- binary_hnok.
- (res_dnok): Reimplement using printable_string and ns_name_pton.
- * resolv/tst-res_hnok.c (tests): Add additional tests.
- (LETTERDIGITS, PRINTABLE): Define.
- (do_test): Adjust one_char results.
-
-2017-11-11 Florian Weimer <fweimer@redhat.com>
-
- [BZ #22413]
- * resolv/ns_name.c (ns_name_pton): Treat trailing backslash as error.
- * resolv/tst-ns_name_pton.c (tests): Add trailing backslash tests.
-
-2017-11-11 Florian Weimer <fweimer@redhat.com>
-
- * resolv/tst-ns_name_pton.c: New file.
- * resolv/Makefile (tests): Add tst-ns_name_pton.
- (tst-ns_name_pton): Link against libresolv.
-
-2017-11-11 Florian Weimer <fweimer@redhat.com>
-
- * resolv/tst-res_hnok.c: New file.
- * resolv/Makefile (tests): Add tst-res_hnok.
- (tst-res_hnok): Link against libresolv.
-
-2017-11-11 Florian Weimer <fweimer@redhat.com>
-
- * resolv/tst-resolv-network.c: Use test framework instead explicit
- main function.
-
-2017-11-09 H.J. Lu <hongjiu.lu@intel.com>
-
- * include/setjmp.h [!_ISOMAC]: Include <stddef.h> and
- <jmp_buf-macros.h>.
- [!_ISOMAC] (STR_HELPER): New.
- [!_ISOMAC] (STR): Likewise.
- [!_ISOMAC] (TEST_SIZE): Likewise.
- [!_ISOMAC] (TEST_ALIGN): Likewise.
- [!_ISOMAC] (TEST_OFFSET): Likewise.
- [!_ISOMAC] Add _Static_assert to check sizes, alignments and
- field offsets of jmp_buf as well as sigjmp_buf.
- * sysdeps/unix/sysv/linux/aarch64/jmp_buf-macros.h: Likewise.
- * sysdeps/unix/sysv/linux/alpha/jmp_buf-macros.h: Likewise.
- * sysdeps/unix/sysv/linux/arm/jmp_buf-macros.h: Likewise.
- * sysdeps/unix/sysv/linux/hppa/jmp_buf-macros.h: Likewise.
- * sysdeps/unix/sysv/linux/i386/jmp_buf-macros.h: Likewise.
- * sysdeps/unix/sysv/linux/ia64/jmp_buf-macros.h: Likewise.
- * sysdeps/unix/sysv/linux/m68k/jmp_buf-macros.h: Likewise.
- * sysdeps/unix/sysv/linux/microblaze/jmp_buf-macros.h: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips32/jmp_buf-macros.h: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips64/n32/jmp_buf-macros.h:
- Likewise.
- * sysdeps/unix/sysv/linux/mips/mips64/n64/jmp_buf-macros.h:
- Likewise.
- * sysdeps/unix/sysv/linux/nios2/jmp_buf-macros.h: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc32/jmp_buf-macros.h:
- Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/jmp_buf-macros.h:
- Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-32/jmp_buf-macros.h: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-64/jmp_buf-macros.h: Likewise.
- * sysdeps/unix/sysv/linux/sh/jmp_buf-macros.h: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc32/jmp_buf-macros.h: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc64/jmp_buf-macros.h: Likewise.
- * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/jmp_buf-macros.h:
- Likewise.
- * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/jmp_buf-macros.h:
- Likewise.
- * sysdeps/unix/sysv/linux/tile/tilepro/jmp_buf-macros.h: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/64/jmp_buf-macros.h: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/x32/jmp_buf-macros.h: Likewise.
-
-2017-11-07 Joseph Myers <joseph@codesourcery.com>
-
- * include/float.h
- [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
- && __HAVE_FLOAT32] (FLT32_MANT_DIG): New macro.
- [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
- && __HAVE_FLOAT32] (FLT32_DECIMAL_DIG): Likewise.
- [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
- && __HAVE_FLOAT32] (FLT32_DIG): Likewise.
- [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
- && __HAVE_FLOAT32] (FLT32_MIN_EXP): Likewise.
- [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
- && __HAVE_FLOAT32] (FLT32_MIN_10_EXP): Likewise.
- [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
- && __HAVE_FLOAT32] (FLT32_MAX_EXP): Likewise.
- [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
- && __HAVE_FLOAT32] (FLT32_MAX_10_EXP): Likewise.
- [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
- && __HAVE_FLOAT32] (FLT32_MAX): Likewise.
- [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
- && __HAVE_FLOAT32] (FLT32_EPSILON): Likewise.
- [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
- && __HAVE_FLOAT32] (FLT32_MIN): Likewise.
- [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
- && __HAVE_FLOAT32] (FLT32_TRUE_MIN): Likewise.
- [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
- && __HAVE_FLOAT64] (FLT64_MANT_DIG): Likewise.
- [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
- && __HAVE_FLOAT64] (FLT64_DECIMAL_DIG): Likewise.
- [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
- && __HAVE_FLOAT64] (FLT64_DIG): Likewise.
- [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
- && __HAVE_FLOAT64] (FLT64_MIN_EXP): Likewise.
- [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
- && __HAVE_FLOAT64] (FLT64_MIN_10_EXP): Likewise.
- [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
- && __HAVE_FLOAT64] (FLT64_MAX_EXP): Likewise.
- [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
- && __HAVE_FLOAT64] (FLT64_MAX_10_EXP): Likewise.
- [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
- && __HAVE_FLOAT64] (FLT64_MAX): Likewise.
- [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
- && __HAVE_FLOAT64] (FLT64_EPSILON): Likewise.
- [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
- && __HAVE_FLOAT64] (FLT64_MIN): Likewise.
- [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
- && __HAVE_FLOAT64] (FLT64_TRUE_MIN): Likewise.
- [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
- && __HAVE_FLOAT32X] (FLT32X_MANT_DIG): Likewise.
- [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
- && __HAVE_FLOAT32X] (FLT32X_DECIMAL_DIG): Likewise.
- [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
- && __HAVE_FLOAT32X] (FLT32X_DIG): Likewise.
- [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
- && __HAVE_FLOAT32X] (FLT32X_MIN_EXP): Likewise.
- [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
- && __HAVE_FLOAT32X] (FLT32X_MIN_10_EXP): Likewise.
- [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
- && __HAVE_FLOAT32X] (FLT32X_MAX_EXP): Likewise.
- [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
- && __HAVE_FLOAT32X] (FLT32X_MAX_10_EXP): Likewise.
- [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
- && __HAVE_FLOAT32X] (FLT32X_MAX): Likewise.
- [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
- && __HAVE_FLOAT32X] (FLT32X_EPSILON): Likewise.
- [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
- && __HAVE_FLOAT32X] (FLT32X_MIN): Likewise.
- [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
- && __HAVE_FLOAT32X] (FLT32X_TRUE_MIN): Likewise.
- [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
- && __HAVE_FLOAT64X] (FLT64X_MANT_DIG): Likewise.
- [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
- && __HAVE_FLOAT64X] (FLT64X_DECIMAL_DIG): Likewise.
- [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
- && __HAVE_FLOAT64X] (FLT64X_DIG): Likewise.
- [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
- && __HAVE_FLOAT64X] (FLT64X_MIN_EXP): Likewise.
- [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
- && __HAVE_FLOAT64X] (FLT64X_MIN_10_EXP): Likewise.
- [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
- && __HAVE_FLOAT64X] (FLT64X_MAX_EXP): Likewise.
- [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
- && __HAVE_FLOAT64X] (FLT64X_MAX_10_EXP): Likewise.
- [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
- && __HAVE_FLOAT64X] (FLT64X_MAX): Likewise.
- [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
- && __HAVE_FLOAT64X] (FLT64X_EPSILON): Likewise.
- [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
- && __HAVE_FLOAT64X] (FLT64X_MIN): Likewise.
- [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
- && __HAVE_FLOAT64X] (FLT64X_TRUE_MIN): Likewise.
-
- * stdlib/tst-strtod.h (F16): New macro.
- (F32): Likewise.
- (F64): Likewise.
- (F32X): Likewise.
- (F64X): Likewise.
- (F128X): Likewise.
- (IF_FLOAT16): Likewise.
- (IF_FLOAT32): Likewise.
- (IF_FLOAT64): Likewise.
- (IF_FLOAT32X): Likewise.
- (IF_FLOAT64X): Likewise.
- (IF_FLOAT128X): Likewise.
- (GEN_TEST_STRTOD_FOREACH): Conditionally call macros for _Float16,
- _Float32, _Float64, _Float32x, _Float64x and _Float128x.
- (STRTOD_TEST_FOREACH): Likewise.
- * stdlib/tst-strtod-round-skeleton.c (CHOOSE_f32): New macro.
- (CHOOSE_f64): Likewise.
- (CHOOSE_f32x): Likewise.
- (CHOOSE_f64x): Likewise.
-
-2017-11-07 Andreas Schwab <schwab@suse.de>
-
- * nptl/Makefile (tests-internal): Remove tst-typesizes.
-
-2017-11-07 Mike FABIAN <mfabian@redhat.com>
-
- [BZ #22403]
- * localedata/locales/mfe_MU (LC_TIME): Fix wrong d_fmt, / needs
- to be escaped.
- * localedata/locales/miq_NI (LC_TIME): Fix wrong d_fmt, / needs
- to be escaped.
-
-2017-11-07 Claude Paroz <claude@2xlibre.net>
-
- [BZ #22403]
- * localedata/locales/an_ES (LC_TIME): Fix wrong d_fmt, / needs
- to be escaped.
- * localedata/locales/kab_DZ (LC_TIME): Fix wrong d_fmt, / needs
- to be escaped.
- * localedata/locales/om_ET (LC_TIME): Fix wrong d_fmt, / needs
- to be escaped.
-
-2017-11-07 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- [BZ #22298]
- * nptl/allocatestack.c (allocate_stack): Check if
- __PTHREAD_MUTEX_HAVE_PREV is non-zero, instead if
- __PTHREAD_MUTEX_HAVE_PREV is defined.
- * nptl/descr.h (pthread): Likewise.
- * nptl/nptl-init.c (__pthread_initialize_minimal_internal):
- Likewise.
- * nptl/pthread_create.c (START_THREAD_DEFN): Likewise.
- * sysdeps/nptl/fork.c (__libc_fork): Likewise.
- * sysdeps/nptl/pthread.h (PTHREAD_MUTEX_INITIALIZER): Likewise.
- * sysdeps/nptl/bits/thread-shared-types.h
- (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION): New
- defines.
- (__pthread_internal_list): Check __PTHREAD_MUTEX_USE_UNION instead
- of __WORDSIZE for internal layout.
- (__pthread_mutex_s): Check __PTHREAD_MUTEX_NUSERS_AFTER_KIND instead
- of __WORDSIZE for internal __nusers layout and __PTHREAD_MUTEX_USE_UNION
- instead of __WORDSIZE whether to use an union for __spins and __list
- fields.
- (__PTHREAD_MUTEX_HAVE_PREV): Define also for __PTHREAD_MUTEX_USE_UNION
- case.
- * sysdeps/aarch64/nptl/bits/pthreadtypes-arch.h
- (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION): New
- defines.
- * sysdeps/alpha/nptl/bits/pthreadtypes-arch.h
- (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION):
- Likewise.
- * sysdeps/arm/nptl/bits/pthreadtypes-arch.h
- (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION):
- Likewise.
- * sysdeps/hppa/nptl/bits/pthreadtypes-arch.h
- (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION):
- Likewise.
- * sysdeps/ia64/nptl/bits/pthreadtypes-arch.h
- (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION):
- Likewise.
- * sysdeps/m68k/nptl/bits/pthreadtypes-arch.h
- (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION):
- Likewise.
- * sysdeps/microblaze/nptl/bits/pthreadtypes-arch.h
- (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION):
- Likewise.
- * sysdeps/mips/nptl/bits/pthreadtypes-arch.h
- (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION):
- Likewise.
- * sysdeps/nios2/nptl/bits/pthreadtypes-arch.h
- (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION):
- Likewise.
- * sysdeps/powerpc/nptl/bits/pthreadtypes-arch.h
- (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION):
- Likewise.
- * sysdeps/s390/nptl/bits/pthreadtypes-arch.h
- (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION):
- Likewise.
- * sysdeps/sh/nptl/bits/pthreadtypes-arch.h
- (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION):
- Likewise.
- * sysdeps/sparc/nptl/bits/pthreadtypes-arch.h
- (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION):
- Likewise.
- * sysdeps/tile/nptl/bits/pthreadtypes-arch.h
- (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION):
- Likewise.
- * sysdeps/x86/nptl/bits/pthreadtypes-arch.h
- (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION):
- Likewise.
-
- * nptl/pthreadP.h (ASSERT_TYPE_SIZE, ASSERT_PTHREAD_INTERNAL_SIZE):
- New macros.
- * nptl/pthread_attr_init.c (__pthread_mutex_init): Add build time
- checks for expected input type size.
- * nptl/pthread_barrier_init.c (__pthread_barrier_init): Likewise.
- * nptl/pthread_barrierattr_init.c (pthread_barrierattr_init):
- Likewise.
- * nptl/pthread_cond_init.c (__pthread_cond_init): Likewise.
- * nptl/pthread_condattr_init.c (__pthread_condattr_init): Likewise.
- * nptl/pthread_mutex_init.c (__pthread_mutex_init): Likewise.
- * nptl/pthread_mutexattr_init.c (__pthread_mutexattr_init): Likewise.
- * nptl/pthread_rwlock_init.c (__pthread_rwlock_init): Likewise.
- * nptl/pthread_rwlockattr_init.c (pthread_rwlockattr_init): Likewise.
- * nptl/sem_init.c (__new_sem_init, __old_sem_init): Likewise
- * nptl/pthread_attr_destroy.c (__pthread_attr_destroy): Remove
- superflous runtime assert check.
- * nptl/pthread_attr_getaffinity.c (__pthread_attr_getaffinity_new):
- Likewise.
- * nptl/pthread_attr_getdetachstate.c (__pthread_attr_getdetachstate):
- Likewise.
- * nptl/pthread_attr_getguardsize.c (pthread_attr_getguardsize):
- Likewise.
- * nptl/pthread_attr_getinheritsched.c (__pthread_attr_getinheritsched):
- Likewise.
- * nptl/pthread_attr_getschedparam.c (__pthread_attr_getschedparam):
- Likewise.
- * nptl/pthread_attr_getschedpolicy.c (__pthread_attr_getschedpolicy):
- Likewise.
- * nptl/pthread_attr_getscope.c (__pthread_attr_getscope): Likewise.
- * nptl/pthread_attr_getstack.c (__pthread_attr_getstack): Likewise.
- * nptl/pthread_attr_getstackaddr.c (__pthread_attr_getstackaddr):
- Likewise.
- * nptl/pthread_attr_getstacksize.c (__pthread_attr_getstacksize):
- Likewise.
- * nptl/pthread_attr_setaffinity.c (__pthread_attr_setaffinity_new):
- Likewise.
- * nptl/pthread_attr_setdetachstate.c (__pthread_attr_setdetachstate):
- Likewise.
- * nptl/pthread_attr_setguardsize.c (pthread_attr_setguardsize):
- Likewise.
- * nptl/pthread_attr_setinheritsched.c
- (__pthread_attr_setinheritsched): Likewise.
- * nptl/pthread_attr_setschedparam.c (__pthread_attr_setschedparam):
- Likewise.
- * nptl/pthread_attr_setschedpolicy.c (__pthread_attr_setschedpolicy):
- Likewise.
- * nptl/pthread_attr_setscope.c (__pthread_attr_setscope): Likewise.
- * nptl/pthread_attr_setstack.c (__pthread_attr_setstack,
- __old_pthread_attr_setstack): Likewise.
- * nptl/pthread_attr_setstackaddr.c (__pthread_attr_setstackaddr):
- Likewise.
- * nptl/pthread_attr_setstacksize.c (__pthread_attr_setstacksize):
- Likewise.
- * nptl/pthread_getattr_default_np.c (pthread_getattr_default_np):
- Likewise.
- * nptl/pthread_mutex_lock.c (__pthread_mutex_lock): Likewise.
- * nptl/pthread_setattr_default_np.c (pthread_setattr_default_np):
- Likewise.
- * nptl/tst-typesizes.c: Remove file.
-
- * nptl/pthreadP.h (ASSERT_PTHREAD_STRING,
- ASSERT_PTHREAD_INTERNAL_OFFSET): New macro.
- * nptl/pthread_mutex_init.c (__pthread_mutex_init): Add build time
- checks for internal pthread_mutex_t offsets.
- * sysdeps/aarch64/nptl/pthread-offsets.h
- (__PTHREAD_MUTEX_NUSERS_OFFSET, __PTHREAD_MUTEX_KIND_OFFSET,
- __PTHREAD_MUTEX_SPINS_OFFSET, __PTHREAD_MUTEX_ELISION_OFFSET,
- __PTHREAD_MUTEX_LIST_OFFSET): New macro.
- * sysdeps/alpha/nptl/pthread-offsets.h: Likewise.
- * sysdeps/arm/nptl/pthread-offsets.h: Likewise.
- * sysdeps/hppa/nptl/pthread-offsets.h: Likewise.
- * sysdeps/i386/nptl/pthread-offsets.h: Likewise.
- * sysdeps/ia64/nptl/pthread-offsets.h: Likewise.
- * sysdeps/m68k/nptl/pthread-offsets.h: Likewise.
- * sysdeps/microblaze/nptl/pthread-offsets.h: Likewise.
- * sysdeps/mips/nptl/pthread-offsets.h: Likewise.
- * sysdeps/nios2/nptl/pthread-offsets.h: Likewise.
- * sysdeps/powerpc/nptl/pthread-offsets.h: Likewise.
- * sysdeps/s390/nptl/pthread-offsets.h: Likewise.
- * sysdeps/sh/nptl/pthread-offsets.h: Likewise.
- * sysdeps/sparc/nptl/pthread-offsets.h: Likewise.
- * sysdeps/tile/nptl/pthread-offsets.h: Likewise.
- * sysdeps/x86_64/nptl/pthread-offsets.h: Likewise.
-
-2017-11-07 Florian Weimer <fweimer@redhat.com>
-
- * bits/mman-linux.h: Move ...
- * sysdeps/unix/sysv/linux/bits/mman-linux.h: ... here. Update
- comment.
- * sysdeps/unix/sysv/linux/bits/Makefile (sysdep_headers): Remove
- outdated comment.
-
-2017-11-07 Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>
-
- * sysdeps/powerpc/powerpc64/multiarch/strcasestr-power8.S (STRNLEN):
- Redefine STRNLEN as __strnlen_power8.
-
-2017-11-06 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * signal/sighold.c (sighold): Optimize implementation.
-
- * sysdeps/unix/sysv/linux/sigqueue.c (__sigqueue): Asssume
- __NR_rt_sigqueueinfo.
-
- * sysdeps/unix/sysv/linux/Versions (libc) [GLIBC_PRIVATE]: Add
- __sigtimedwait.
- * sysdeps/unix/sysv/linux/sigtimedwait.c: Simplify includes and
- assume __NR_rt_sigtimedwait.
- * sysdeps/unix/sysv/linux/sigwait.c (__sigwait): Call __sigtimedwait
- and add LIBC_CANCEL_HANDLED for cancellation marking.
- * sysdeps/unix/sysv/linux/sigwaitinfo.c (__sigwaitinfo): Likewise.
-
- * sysdeps/arm/armv7/multiarch/Makefile [$(subdir) = string]
- (sysdeps_routines): Add memchr_noneon.
- * sysdeps/arm/armv7/multiarch/ifunc-memchr.h: New file.
- * sysdeps/arm/armv7/multiarch/memchr_noneon.S: Likewise.
- * sysdeps/arm/armv7/multiarch/rtld-memchr.S: Likewise.
- * sysdeps/arm/armv7/multiarch/memchr.S: Remove file.
- * sysdeps/arm/armv7/multiarch/memchr.c: New file.
- * sysdeps/arm/armv7/multiarch/memchr_impl.S: Move to ...
- * sysdeps/arm/armv7/multiarch/memchr_neon.S: ... here.
-
- * sysdeps/arm/arm-ifunc.h: New file.
- * sysdeps/arm/armv7/multiarch/ifunc-memcpy.h: Likewise.
- * sysdeps/arm/armv7/multiarch/memcpy.c: Likewise.
- * sysdeps/arm/armv7/multiarch/memcpy_arm.S: Likewise.
- * sysdeps/arm/armv7/multiarch/rtld-memcpy.S: Likewise.
- * sysdeps/arm/armv7/multiarch/memcpy_neon.S [!__ARM_NEON__]
- (__memcpy_neon): Avoid create hidden alias.
- * sysdeps/arm/armv7/multiarch/memcpy_vfp.S [!__ARM_NEON_]
- (__memcpy_vfp): Likewise.
- * sysdeps/arm/armv7/multiarch/Makefile [$(subdir) = string]
- (sysdep_routines): Add memcpy_arm.
- * sysdeps/arm/armv7/multiarch/memcpy.S: Remove file.
-
-2017-11-06 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #22362]
- * Makerules (make-link-multidir): New.
- * config.make.in (multidir): New.
- * configure.ac (libc_cv_multidir): New. AC_SUBST.
- * configure: Regenerated.
- * csu/Makefile [$(multidir) != .](multilib-extra-objs): New.
- [$(multidir) != .](extra-objs): Add $(multilib-extra-objs).
- [$(multidir) != .]($(addprefix $(objpfx)$(multidir)/, $(install-lib))):
- New target.
-
-2017-11-06 Joseph Myers <joseph@codesourcery.com>
-
- [BZ #22402]
- * sysdeps/powerpc/bits/floatn.h: Include <bits/long-double.h>.
- [__NO_LONG_DOUBLE_MATH] (__HAVE_FLOAT128): Define to 0.
-
-2017-11-04 Mike FABIAN <mfabian@redhat.com>
-
- * localedata/locales/tpi_PG (LC_TIME): Fix wrong d_fmt, / needs
- to be escaped.
-
-2017-11-04 Florian Weimer <fweimer@redhat.com>
-
- * manual/llio.texi (Open-time Flags): Document O_TMPFILE.
-
-2017-11-03 Joseph Myers <joseph@codesourcery.com>
-
- * math/math.h [__HAVE_DISTINCT_FLOAT16
- || __HAVE_DISTINCT_FLOAT32 || __HAVE_DISTINCT_FLOAT64
- || __HAVE_DISTINCT_FLOAT32X || __HAVE_DISTINCT_FLOAT64X
- || __HAVE_DISTINCT_FLOAT128X]: Use #error.
- [__NO_LONG_DOUBLE_MATH && __HAVE_DISTINCT_FLOAT128]: Likewise.
- [__HAVE_DISTINCT_FLOAT128 && !__HAVE_GENERIC_SELECTION
- && __HAVE_FLOATN_NOT_TYPEDEF]: Likewise.
- [__HAVE_DISTINCT_FLOAT128 && __HAVE_GENERIC_SELECTION]
- (__MATH_TG_F32): New macro.
- [__HAVE_DISTINCT_FLOAT128 && __HAVE_GENERIC_SELECTION]
- (__MATH_TG_F64X): Likewise.
- [__HAVE_DISTINCT_FLOAT128 && __HAVE_GENERIC_SELECTION]
- (__MATH_TG): Use __MATH_TG_F32 and __MATH_TG_F64X.
-
-2017-11-03 Dmitry V. Levin <ldv@altlinux.org>
-
- * po/de.po: Update translations.
- * po/ru.po: Likewise.
-
-2017-11-03 Florian Weimer <fweimer@redhat.com>
-
- * manual/filesys.texi (Hard Links): Document linkat.
-
-2017-11-03 Joseph Myers <joseph@codesourcery.com>
-
- * math/tgmath.h [__HAVE_DISTINCT_FLOAT16
- || __HAVE_DISTINCT_FLOAT32 || __HAVE_DISTINCT_FLOAT64
- || __HAVE_DISTINCT_FLOAT32X || __HAVE_DISTINCT_FLOAT64X
- || __HAVE_DISTINCT_FLOAT128X]: Use #error.
- [__HAVE_DISTINCT_FLOAT128 && __GLIBC_USE (IEC_60559_TYPES_EXT)
- && __HAVE_FLOAT64X && !__HAVE_FLOAT64X_LONG_DOUBLE
- && __HAVE_FLOATN_NOT_TYPEDEF] (__TGMATH_F128): Handle _Float64x
- the same as _Float128.
- [__HAVE_DISTINCT_FLOAT128 && __GLIBC_USE (IEC_60559_TYPES_EXT)
- && __HAVE_FLOAT64X && !__HAVE_FLOAT64X_LONG_DOUBLE
- && __HAVE_FLOATN_NOT_TYPEDEF] (__TGMATH_CF128): Likewise.
-
- * stdlib/stdlib.h
- [__HAVE_FLOAT16 && __GLIBC_USE (IEC_60559_TYPES_EXT)] (strtof16):
- Declare.
- [__HAVE_FLOAT32 && __GLIBC_USE (IEC_60559_TYPES_EXT)] (strtof32):
- Likewise.
- [__HAVE_FLOAT64 && __GLIBC_USE (IEC_60559_TYPES_EXT)] (strtof64):
- Likewise.
- [__HAVE_FLOAT32X && __GLIBC_USE (IEC_60559_TYPES_EXT)]
- (strtof32x): Likewise.
- [__HAVE_FLOAT64X && __GLIBC_USE (IEC_60559_TYPES_EXT)]
- (strtof64x): Likewise.
- [__HAVE_FLOAT128X && __GLIBC_USE (IEC_60559_TYPES_EXT)]
- (strtof128x): Likewise.
- [__HAVE_FLOAT16 && __GLIBC_USE (IEC_60559_TYPES_EXT)]
- (strfromf16): Likewise.
- [__HAVE_FLOAT32 && __GLIBC_USE (IEC_60559_TYPES_EXT)]
- (strfromf32): Likewise.
- [__HAVE_FLOAT64 && __GLIBC_USE (IEC_60559_TYPES_EXT)]
- (strfromf64): Likewise.
- [__HAVE_FLOAT32X && __GLIBC_USE (IEC_60559_TYPES_EXT)]
- (strfromf32x): Likewise.
- [__HAVE_FLOAT64X && __GLIBC_USE (IEC_60559_TYPES_EXT)]
- (strfromf64x): Likewise.
- [__HAVE_FLOAT128X && __GLIBC_USE (IEC_60559_TYPES_EXT)]
- (strfromf128x): Likewise.
- [__USE_GNU && __HAVE_FLOAT16] (strtof16_l): Likewise.
- [__USE_GNU && __HAVE_FLOAT32] (strtof32_l): Likewise.
- [__USE_GNU && __HAVE_FLOAT64] (strtof64_l): Likewise.
- [__USE_GNU && __HAVE_FLOAT32X] (strtof32x_l): Likewise.
- [__USE_GNU && __HAVE_FLOAT64X] (strtof64x_l): Likewise.
- [__USE_GNU && __HAVE_FLOAT128X] (strtof128x_l): Likewise.
-
-2017-11-03 Richard Henderson <rth@twiddle.net>
-
- * sysdeps/unix/sysv/linux/aarch64/sysconf.c: New file.
-
-2017-11-03 Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- * sysdeps/aarch64/dl-tlsdesc.S (_dl_tlsdesc_dynamic): Optimize.
-
-2017-11-03 Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- * sysdeps/arm/dl-machine.h (elf_machine_runtime_setup): Remove
- DT_TLSDESC_GOT initialization.
- * sysdeps/arm/dl-tlsdesc.S (_dl_tlsdesc_lazy_resolver): Remove.
- (_dl_tlsdesc_resolve_hold): Likewise.
- * sysdeps/aarch64/dl-tlsdesc.h (_dl_tlsdesc_lazy_resolver): Remove.
- (_dl_tlsdesc_resolve_hold): Likewise.
- * sysdeps/aarch64/tlsdesc.c (_dl_tlsdesc_lazy_resolver_fixup): Remove.
- (_dl_tlsdesc_resolve_hold_fixup): Likewise.
-
-2017-11-03 Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- * sysdeps/arm/dl-machine.h (elf_machine_rel): Remove volatile.
-
-2017-11-03 Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- [BZ #18572]
- * sysdeps/arm/dl-machine.h (elf_machine_lazy_rel): Do symbol binding
- non-lazily for R_ARM_TLS_DESC.
-
-2017-11-03 Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- [BZ #17078]
- * sysdeps/arm/dl-machine.h (elf_machine_rela): Remove the
- R_ARM_TLS_DESC case.
- (elf_machine_lazy_rel): Remove the prelink check.
-
-2017-11-03 Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- * sysdeps/aarch64/dl-machine.h (elf_machine_runtime_setup): Remove
- DT_TLSDESC_GOT initialization.
- * sysdeps/aarch64/dl-tlsdesc.S (_dl_tlsdesc_return_lazy): Remove.
- (_dl_tlsdesc_resolve_rela): Likewise.
- (_dl_tlsdesc_resolve_hold): Likewise.
- (_dl_tlsdesc_undefweak): Remove ldar.
- (_dl_tlsdesc_dynamic): Likewise.
- * sysdeps/aarch64/dl-tlsdesc.h (_dl_tlsdesc_return_lazy): Remove.
- (_dl_tlsdesc_resolve_rela): Likewise.
- (_dl_tlsdesc_resolve_hold): Likewise.
- * sysdeps/aarch64/tlsdesc.c (_dl_tlsdesc_resolve_rela_fixup): Remove.
- (_dl_tlsdesc_resolve_hold_fixup): Likewise.
- (_dl_tlsdesc_resolve_rela): Likewise.
- (_dl_tlsdesc_resolve_hold): Likewise.
-
-2017-11-03 Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- * sysdeps/aarch64/dl-machine.h (elf_machine_lazy_rel): Do symbol
- binding and initialization non-lazily for R_AARCH64_TLSDESC.
-
-2017-11-03 Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- * elf/tlsdeschtab.h (_dl_tls_resolve_early_return_p): Mark unused.
- (_dl_tlsdesc_wake_up_held_fixups): Likewise.
-
-2017-11-02 Joseph Myers <joseph@codesourcery.com>
-
- * wcsmbs/wchar.h [__HAVE_FLOAT16 && __USE_GNU] (wcstof16):
- Declare.
- [__HAVE_FLOAT32 && __USE_GNU] (wcstof32): Likewise.
- [__HAVE_FLOAT64 && __USE_GNU] (wcstof64): Likewise.
- [__HAVE_FLOAT32X && __USE_GNU] (wcstof32x): Likewise.
- [__HAVE_FLOAT64X && __USE_GNU] (wcstof64x): Likewise.
- [__HAVE_FLOAT128X && __USE_GNU] (wcstof128x): Likewise.
- [__HAVE_FLOAT16 && __USE_GNU] (wcstof16_l): Likewise.
- [__HAVE_FLOAT32 && __USE_GNU] (wcstof32_l): Likewise.
- [__HAVE_FLOAT64 && __USE_GNU] (wcstof64_l): Likewise.
- [__HAVE_FLOAT32X && __USE_GNU] (wcstof32x_l): Likewise.
- [__HAVE_FLOAT64X && __USE_GNU] (wcstof64x_l): Likewise.
- [__HAVE_FLOAT128X && __USE_GNU] (wcstof128x_l): Likewise.
-
-2017-11-02 Mike FABIAN <mfabian@redhat.com>
-
- [BZ #22382]
- * localedata/locales/tpi_PG (LC_TIME): Fix syntax error.
- * localedata/locales/tpi_PG: Add standard header.
-
-2017-11-02 Florian Weimer <fweimer@redhat.com>
-
- test-errno-linux: quotactl can fail with EPERM in containers.
- * sysdeps/unix/sysv/linux/test-errno-linux.c
- (LIST, LIST_FORWARD): New macros.
- (check_error_in_list): New function.
- (test_wrp_rv): Accept list of permitted error codes.
- (test_wrp_rv2): Remove.
- (test_wrp): Call test_wrp_rv with list of error codes.
- (test_wrp2): Accept list of error codes.
- (do_test): Adjust. Allow EPERM for quotactl.
-
-2017-11-02 Florian Weimer <fweimer@redhat.com>
-
- * stdio-common/bug16.c (do_test): Use array_length.
- * stdio-common/errlist.c (_sys_nerr): Likewise.
- * stdio-common/printf_fp.c (PRINTF_FP_FETCH): Likewise.
- * stdio-common/printf_fphex.c (__printf_fphex): Use array_end.
- * stdio-common/psiginfo.c (psiginfo): Use array_length.
- * stdio-common/test-vfprintf.c (nlocs): Remove definition.
- (do_test): Use array_length.
- * stdio-common/tst-fphex.c (do_test): Use array_end, array_length.
- * stdio-common/tst-long-dbl-fphex.c (do_test): Use array_length.
- * stdio-common/tst-printf-round.c (do_test): Likewise.
- * stdio-common/tst-swprintf.c (nbuf): Remove definition.
- (CHECK): Use array_length.
- * stdio-common/tstdiomisc.c (t3, F): Likewise.
- * stdio-common/tstscanf.c (main): Likewise.
- * stdio-common/vfprintf.c (process_string_arg): Likewise.
-
-2017-11-02 Florian Weimer <fweimer@redhat.com>
-
- Add array_length and array_end macros.
- * include/array_length.h: New file.
-
-2017-11-02 Florian Weimer <fweimer@redhat.com>
-
- [BZ #22332]
- * posix/tst-glob-tilde.c (do_noescape): New variable.
- (one_test): Process it.
- (do_test): Set do_noescape. Add unescaping test case.
-
-2017-11-01 Joseph Myers <joseph@codesourcery.com>
-
- * math/complex.h
- [(__HAVE_DISTINCT_FLOAT16 || (__HAVE_FLOAT16 && !_LIBC))
- && __GLIBC_USE (IEC_60559_TYPES_EXT)]: Include <bits/cmathcalls.h>
- with appropriate macros defined and undefined.
- [(__HAVE_DISTINCT_FLOAT32 || (__HAVE_FLOAT32 && !_LIBC))
- && __GLIBC_USE (IEC_60559_TYPES_EXT)]: Likewise.
- [(__HAVE_DISTINCT_FLOAT64 || (__HAVE_FLOAT64 && !_LIBC))
- && __GLIBC_USE (IEC_60559_TYPES_EXT)]: Likewise.
- [(__HAVE_DISTINCT_FLOAT32X || (__HAVE_FLOAT32X && !_LIBC))
- && __GLIBC_USE (IEC_60559_TYPES_EXT)]: Likewise.
- [(__HAVE_DISTINCT_FLOAT64X || (__HAVE_FLOAT64X && !_LIBC))
- && __GLIBC_USE (IEC_60559_TYPES_EXT)]: Likewise.
- [(__HAVE_DISTINCT_FLOAT128X || (__HAVE_FLOAT128X && !_LIBC))
- && __GLIBC_USE (IEC_60559_TYPES_EXT)]: Likewise.
-
- * math/complex.h
- [(__HAVE_DISTINCT_FLOAT128 || (__HAVE_FLOAT128 && !LIBC))
- && __GLIBC_USE (IEC_60559_TYPES_EXT)]: Move conditional code after
- that for long double. Do not condition define and undefine of
- _Mdouble_complex_ on [__CFLOAT128].
-
-2017-11-01 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/i386/sysdep.h: Include <sysdeps/x86/sysdep.h> instead
- of <sysdeps/generic/sysdep.h>.
- (ALIGNARG): Removed.
- (ASM_SIZE_DIRECTIVE): Likewise.
- (ENTRY): Likewise.
- (END): Likewise.
- (ENTRY_CHK): Likewise.
- (END_CHK): Likewise.
- (syscall_error): Likewise.
- (mcount): Likewise.
- (PSEUDO_END): Likewise.
- (L): Likewise.
- (atom_text_section): Likewise.
- * sysdeps/x86/sysdep.h: New file.
- * sysdeps/x86_64/sysdep.h: Include <sysdeps/x86/sysdep.h> instead
- of <sysdeps/generic/sysdep.h>.
- (ALIGNARG): Removed.
- (ASM_SIZE_DIRECTIVE): Likewise.
- (ENTRY): Likewise.
- (END): Likewise.
- (ENTRY_CHK): Likewise.
- (END_CHK): Likewise.
- (syscall_error): Likewise.
- (mcount): Likewise.
- (PSEUDO_END): Likewise.
- (L): Likewise.
- (atom_text_section): Likewise.
-
-2017-10-31 Rafal Luzynski <digitalfreak@lingonborough.com>
-
- * localedata/unicode-gen/gen_unicode_ctype.py (output_head):
- category of LC_CTYPE set to "i18n:2012".
- * localedata/locales/i18n_ctype: Regenerate.
-
-2017-10-31 Yury Norov <ynorov@caviumnetworks.com>
-
- * sysdeps/unix/sysv/linux/sigprocmask.c: Remove useless #ifdefs.
- * sysdeps/unix/sysv/linux/sigtimedwait.c: Likewise.
- * sysdeps/unix/sysv/linux/sigwait.c: Likewise.
- * sysdeps/unix/sysv/linux/sigwaitinfo.c: Likewise.
-
- * sysdeps/unix/sysv/linux/ia64/sigpending.c: Remove file.
- * sysdeps/unix/sysv/linux/s390/s390-64/sigpending.c: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc64/sigpending.c: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/sigpending.c: Likewise.
-
-2017-10-31 Joseph Myers <joseph@codesourcery.com>
-
- * math/complex.h
- [__HAVE_FLOAT16 && __GLIBC_USE (IEC_60559_TYPES_EXT)] (CMPLXF16):
- New macro.
- [__HAVE_FLOAT32 && __GLIBC_USE (IEC_60559_TYPES_EXT)] (CMPLXF32):
- Likewise.
- [__HAVE_FLOAT64 && __GLIBC_USE (IEC_60559_TYPES_EXT)] (CMPLXF64):
- Likewise.
- [__HAVE_FLOAT32X && __GLIBC_USE (IEC_60559_TYPES_EXT)]
- (CMPLXF32X): Likewise.
- [__HAVE_FLOAT64X && __GLIBC_USE (IEC_60559_TYPES_EXT)]
- (CMPLXF64X): Likewise.
- [__HAVE_FLOAT128X && __GLIBC_USE (IEC_60559_TYPES_EXT)]
- (CMPLXF128X): Likewise.
-
- * math/math.h
- [__FLT_EVAL_METHOD__ == 0 || __FLT_EVAL_METHOD__ == 32]
- (__MATH_EVAL_FMT2): Define to add 0.0f.
-
-2017-10-31 Alan Modra <amodra@gmail.com>
-
- * sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf-power8.S: Don't
- include sysdep.h.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceilf-power5+.S: Likewise.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceilf-ppc64.S: Likewise.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_cosf-power8.S: Likewise.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_cosf-ppc64.c: Likewise.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite-power7.S: Likewise.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite-power8.S: Likewise.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_floor-power5+.S: Likewise.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_floor-ppc64.S: Likewise.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_roundf-power5+.S: Likewise.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_roundf-ppc64.S: Likewise.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf-power8.S: Likewise.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf-ppc64.c: Likewise.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_truncf-power5+.S: Likewise.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_truncf-ppc64.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/memchr-power7.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/memchr-power8.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/memcmp-power4.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/memcmp-power7.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/memcmp-power8.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/memcpy-a2.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/memcpy-cell.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/memcpy-power4.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/memcpy-power6.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/memcpy-power7.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/memcpy-ppc64.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/memmove-power7.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/mempcpy-power7.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/memrchr-power7.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/memrchr-power8.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/memset-power4.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/memset-power6.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/memset-power7.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/memset-power8.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/rawmemchr-power7.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/stpcpy-power8.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/stpncpy-power7.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/stpncpy-power8.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/strcasecmp-power7.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/strcasecmp-power8.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/strcasecmp_l-power7.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/strcasestr-power8.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/strchr-power7.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/strchr-power8.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/strchr-ppc64.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/strchrnul-power7.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/strchrnul-power8.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/strcmp-power7.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/strcmp-power8.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/strcmp-power9.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/strcmp-ppc64.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/strcpy-power8.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/strcspn-power8.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/strlen-power7.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/strlen-power8.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/strlen-ppc64.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/strncase-power8.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/strncmp-power4.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/strncmp-power7.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/strncmp-power8.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/strncmp-power9.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/strncmp-ppc64.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/strncpy-power7.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/strncpy-power8.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/strnlen-power7.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/strnlen-power8.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/strrchr-power7.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/strrchr-power8.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/strspn-power8.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/strstr-power7.S: Likewise.
-
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_floorf-ppc64.S: Don't
- include sysdep.h and math_ldbl_opt.h.
-
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceil-power5+.S: Don't
- include sysdep.h and math_ldbl_opt.h. Include shlib-compat.h.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceil-ppc64.S: Likewise.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign-power6.S: Likewise.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign-ppc64.S: Likewise.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_floorf-power5+.S: Likewise.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf-power7.S: Likewise.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf-power8.S: Likewise.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power5.S: Likewise.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power6.S: Likewise.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power6x.S: Likewise.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power7.S: Likewise.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power8.S: Likewise.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-ppc64.S: Likewise.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-power6x.S: Likewise.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-power8.S: Likewise.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-ppc64.S: Likewise.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power5+.S: Likewise.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power6x.S: Likewise.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power8.S: Likewise.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-ppc64.S: Likewise.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llroundf-ppc64.S: Likewise.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_round-power5+.S: Likewise.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_round-ppc64.S: Likewise.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_trunc-power5+.S: Likewise.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_trunc-ppc64.S: Likewise.
-
-2017-10-31 Alan Modra <amodra@gmail.com>
-
- * sysdeps/powerpc/powerpc64/multiarch/strncase_l-power7.c: Include
- string/strncase_l.c, not string/strncase.c.
- (USE_IN_EXTENDED_LOCALE_MODEL): Don't define.
- (libc_hidden_def): Redefine.
-
-2017-10-31 Alan Modra <amodra@gmail.com>
-
- * sysdeps/powerpc/powerpc64/multiarch/strcasecmp_l-power7.S:
- (__STRCMP, STRCMP, __strcasecmp_l): Define.
- (__strcasecmp): Don't define.
-
-2017-10-31 Alan Modra <amodra@gmail.com>
-
- * sysdeps/powerpc/powerpc64/multiarch/strcmp-power8.S: Wrap in
- IS_IN (libc).
- * sysdeps/powerpc/powerpc64/multiarch/strcmp-power9.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/strncmp-power8.S: Likewise.
- * sysdeps/powerpc/powerpc64/multiarch/strncmp-power9.S: Likewise.
-
-2017-10-31 Alan Modra <amodra@gmail.com>
-
- * sysdeps/powerpc/powerpc64/multiarch/stpncpy-power8.S: Don't define
- USE_AS_STPNCPY.
-
-2017-10-31 Alan Modra <amodra@gmail.com>
-
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-ppc64.S (hidden_def):
- Redefine only when SHARED.
-
-2017-10-30 Joseph Myers <joseph@codesourcery.com>
-
- * math/math.h [__HAVE_DISTINCT_FLOAT16 || (__HAVE_FLOAT16 && !_LIBC)]:
- Include <bits/math-finite.h> with appropriate macros defined and
- undefined.
- [__HAVE_DISTINCT_FLOAT32 || (__HAVE_FLOAT32 && !_LIBC)]: Likewise.
- [__HAVE_DISTINCT_FLOAT64 || (__HAVE_FLOAT64 && !_LIBC)]: Likewise.
- [__HAVE_DISTINCT_FLOAT32X || (__HAVE_FLOAT32X && !_LIBC)]: Likewise.
- [__HAVE_DISTINCT_FLOAT64X || (__HAVE_FLOAT64X && !_LIBC)]: Likewise.
- [__HAVE_DISTINCT_FLOAT128X || (__HAVE_FLOAT128X && !_LIBC)]: Likewise.
-
- * math/math.h [!_Mfloat_] (_Mfloat_): Do not define.
- [!_Mlong_double_] (_Mlong_double_): Likewise.
- [!_Mfloat16_] (_Mfloat16_): Likewise.
- [!_Mfloat32_] (_Mfloat32_): Likewise.
- [!_Mfloat64_] (_Mfloat64_): Likewise.
- [!_Mfloat128_] (_Mfloat128_): Likewise.
- [!_Mfloat32x_] (_Mfloat32x_): Likewise.
- [!_Mfloat64x_] (_Mfloat64x_): Likewise.
- [!_Mfloat128x_] (_Mfloat128x_): Likewise.
- (_Mdouble_): Define without indirection through those macros.
- * math/complex.h [!_Mfloat_] (_Mfloat_): Do not define.
- [!_Mfloat128_] (_Mfloat128_): Likewise.
- [_Mlong_double_] (_Mlong_double_): Likewise.
- (_Mdouble_): Define without indirection through those macros.
- * math/Makefile [$(long-double-fcts) != yes] (math-CPPFLAGS): Do
- not add -D_Mlong_double_=double.
- * include/math.h [_ISOMAC] (_Mlong_double_): Do not undefine.
- * math/test-signgam-finite-c99.c (_Mlong_double_): Likewise.
-
-2017-10-30 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/x86/libc-start.c: Add /* !SHARED */.
-
-2017-10-30 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/x86/libc-start.c: Reformat.
-
-2017-10-30 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #22353]
- * sysdeps/i386/i586/strcpy.S (STRCPY): Use conditional branches.
- (1): Renamed to ...
- (L(Src0)): This.
- (L(Src1)): New.
- (L(Src2)): Likewise.
- (L(1)): Renamed to ...
- (L(Src3)): This.
-
-2017-10-30 Joseph Myers <joseph@codesourcery.com>
-
- * math/math.h [__HAVE_FLOAT16 && __USE_GNU] (M_Ef16): New macro.
- [__HAVE_FLOAT16 && __USE_GNU] (M_LOG2Ef16): Likewise.
- [__HAVE_FLOAT16 && __USE_GNU] (M_LOG10Ef16): Likewise.
- [__HAVE_FLOAT16 && __USE_GNU] (M_LN2f16): Likewise.
- [__HAVE_FLOAT16 && __USE_GNU] (M_LN10f16): Likewise.
- [__HAVE_FLOAT16 && __USE_GNU] (M_PIf16): Likewise.
- [__HAVE_FLOAT16 && __USE_GNU] (M_PI_2f16): Likewise.
- [__HAVE_FLOAT16 && __USE_GNU] (M_PI_4f16): Likewise.
- [__HAVE_FLOAT16 && __USE_GNU] (M_1_PIf16): Likewise.
- [__HAVE_FLOAT16 && __USE_GNU] (M_2_PIf16): Likewise.
- [__HAVE_FLOAT16 && __USE_GNU] (M_2_SQRTPIf16): Likewise.
- [__HAVE_FLOAT16 && __USE_GNU] (M_SQRT2f16): Likewise.
- [__HAVE_FLOAT16 && __USE_GNU] (M_SQRT1_2f16): Likewise.
- [__HAVE_FLOAT32 && __USE_GNU] (M_Ef32): Likewise.
- [__HAVE_FLOAT32 && __USE_GNU] (M_LOG2Ef32): Likewise.
- [__HAVE_FLOAT32 && __USE_GNU] (M_LOG10Ef32): Likewise.
- [__HAVE_FLOAT32 && __USE_GNU] (M_LN2f32): Likewise.
- [__HAVE_FLOAT32 && __USE_GNU] (M_LN10f32): Likewise.
- [__HAVE_FLOAT32 && __USE_GNU] (M_PIf32): Likewise.
- [__HAVE_FLOAT32 && __USE_GNU] (M_PI_2f32): Likewise.
- [__HAVE_FLOAT32 && __USE_GNU] (M_PI_4f32): Likewise.
- [__HAVE_FLOAT32 && __USE_GNU] (M_1_PIf32): Likewise.
- [__HAVE_FLOAT32 && __USE_GNU] (M_2_PIf32): Likewise.
- [__HAVE_FLOAT32 && __USE_GNU] (M_2_SQRTPIf32): Likewise.
- [__HAVE_FLOAT32 && __USE_GNU] (M_SQRT2f32): Likewise.
- [__HAVE_FLOAT32 && __USE_GNU] (M_SQRT1_2f32): Likewise.
- [__HAVE_FLOAT64 && __USE_GNU] (M_Ef64): Likewise.
- [__HAVE_FLOAT64 && __USE_GNU] (M_LOG2Ef64): Likewise.
- [__HAVE_FLOAT64 && __USE_GNU] (M_LOG10Ef64): Likewise.
- [__HAVE_FLOAT64 && __USE_GNU] (M_LN2f64): Likewise.
- [__HAVE_FLOAT64 && __USE_GNU] (M_LN10f64): Likewise.
- [__HAVE_FLOAT64 && __USE_GNU] (M_PIf64): Likewise.
- [__HAVE_FLOAT64 && __USE_GNU] (M_PI_2f64): Likewise.
- [__HAVE_FLOAT64 && __USE_GNU] (M_PI_4f64): Likewise.
- [__HAVE_FLOAT64 && __USE_GNU] (M_1_PIf64): Likewise.
- [__HAVE_FLOAT64 && __USE_GNU] (M_2_PIf64): Likewise.
- [__HAVE_FLOAT64 && __USE_GNU] (M_2_SQRTPIf64): Likewise.
- [__HAVE_FLOAT64 && __USE_GNU] (M_SQRT2f64): Likewise.
- [__HAVE_FLOAT64 && __USE_GNU] (M_SQRT1_2f64): Likewise.
- [__HAVE_FLOAT32X && __USE_GNU] (M_Ef32x): Likewise.
- [__HAVE_FLOAT32X && __USE_GNU] (M_LOG2Ef32x): Likewise.
- [__HAVE_FLOAT32X && __USE_GNU] (M_LOG10Ef32x): Likewise.
- [__HAVE_FLOAT32X && __USE_GNU] (M_LN2f32x): Likewise.
- [__HAVE_FLOAT32X && __USE_GNU] (M_LN10f32x): Likewise.
- [__HAVE_FLOAT32X && __USE_GNU] (M_PIf32x): Likewise.
- [__HAVE_FLOAT32X && __USE_GNU] (M_PI_2f32x): Likewise.
- [__HAVE_FLOAT32X && __USE_GNU] (M_PI_4f32x): Likewise.
- [__HAVE_FLOAT32X && __USE_GNU] (M_1_PIf32x): Likewise.
- [__HAVE_FLOAT32X && __USE_GNU] (M_2_PIf32x): Likewise.
- [__HAVE_FLOAT32X && __USE_GNU] (M_2_SQRTPIf32x): Likewise.
- [__HAVE_FLOAT32X && __USE_GNU] (M_SQRT2f32x): Likewise.
- [__HAVE_FLOAT32X && __USE_GNU] (M_SQRT1_2f32x): Likewise.
- [__HAVE_FLOAT64X && __USE_GNU] (M_Ef64x): Likewise.
- [__HAVE_FLOAT64X && __USE_GNU] (M_LOG2Ef64x): Likewise.
- [__HAVE_FLOAT64X && __USE_GNU] (M_LOG10Ef64x): Likewise.
- [__HAVE_FLOAT64X && __USE_GNU] (M_LN2f64x): Likewise.
- [__HAVE_FLOAT64X && __USE_GNU] (M_LN10f64x): Likewise.
- [__HAVE_FLOAT64X && __USE_GNU] (M_PIf64x): Likewise.
- [__HAVE_FLOAT64X && __USE_GNU] (M_PI_2f64x): Likewise.
- [__HAVE_FLOAT64X && __USE_GNU] (M_PI_4f64x): Likewise.
- [__HAVE_FLOAT64X && __USE_GNU] (M_1_PIf64x): Likewise.
- [__HAVE_FLOAT64X && __USE_GNU] (M_2_PIf64x): Likewise.
- [__HAVE_FLOAT64X && __USE_GNU] (M_2_SQRTPIf64x): Likewise.
- [__HAVE_FLOAT64X && __USE_GNU] (M_SQRT2f64x): Likewise.
- [__HAVE_FLOAT64X && __USE_GNU] (M_SQRT1_2f64x): Likewise.
- [__HAVE_FLOAT128X && __USE_GNU]: Use #error.
-
-2017-10-30 Florian Weimer <fweimer@redhat.com>
-
- * elf/ldconfig.c (search_dir): Assume that _DIRENT_HAVE_D_TYPE is
- always defined.
- * io/tst-mkdirat.c (do_test): Likewise.
- * io/tst-mkfifoat.c (do_test): Likewise.
- * io/tst-mknodat.c (do_test): Likewise.
- * locale/programs/charmap-dir.c (charmap_readdir): Likewise.
- * locale/programs/locale.c (select_dirs): Likewise.
- * locale/programs/locarchive.c (add_locales_to_archive): Likewise.
- * posix/bug-glob2.c (my_readdir): Likewise.
- * posix/tst-dir.c (main): Likewise.
- * posix/tst-glob_lstat_compat.c (my_readdir): Likewise.
- * posix/tst-gnuglob-skeleton.c (my_readdir): Likewise.
-
-2017-10-30 Florian Weimer <fweimer@redhat.com>
-
- * string/strings.h (ffsl, ffsll): Declare under __USE_MISC, not
- just __USE_GNU.
-
-2017-10-30 Florian Weimer <fweimer@redhat.com>
-
- * posix/tst-gnuglob-skeleton.c: Renamed from tst-gnuglob.c.
- Convert to support/test-driver.c.
- (GLOB_FUNC, GLOB_TYPE, GLOBFREE_FUNC, DIRENT_STRUCT, STAT_STRUCT):
- New macro parameters.
- (PRINTF): Remove macro. Use test_verbose conditionals instead.
- * posix/tst-gnuglob.c: New file.
- * posix/tst-gnuglob64.c: Likewise.
- * posix/Makefile (tests): Add tst-gnuglob64.
-
-2017-10-30 Michal Ostrowski <ostrowski.michal@gmail.com>
-
- [BZ #19485]
- * localedata/locales/csb_PL (LC_TIME): Fix “abmon†for March
- and use a better translation for March in “monâ€.
- * localedata/locales/csb_PL: Use more ASCII to improve the
- readability of the source.
-
-2017-10-30 Mike FABIAN <mfabian@redhat.com>
-
- [BZ #13953]
- * localedata/locales/km_KH: Use ASCII as much
- as possible for better readability of the source and
- remove useless comments.
- * localedata/locales/km_KH (LC_TIME): Remove era stuff, it
- was commented out and apparently wrong anyway because it was
- using Lao characters. If Buddhist era should be used
- for km_KH, a native speaker should write the correct formaat
- for Khmer.
- * localedata/locales/km_KH (LC_TIME): Add first_weekday 1
- (According to CLDR, the first weekday for Cambodia is Sunday).
- * localedata/locales/km_KH (LC_NAME): Remove name_mr and name_mrs
- (These were using Lao characters which must be wrong. If we get
- the correct data from a native speaker, we could add it back, until
- then it is better not to have name_mr and name_mrs at all than
- having it wrong).
-
-2017-10-27 Rafal Luzynski <digitalfreak@lingonborough.com>
-
- * locale/loadlocale.c: Correct size of
- _nl_value_type_LC_<category> arrays.
-
-2017-10-27 Joseph Myers <joseph@codesourcery.com>
-
- * math/math.h [__HAVE_DISTINCT_FLOAT16 || (__HAVE_FLOAT16 && !_LIBC)]:
- Include <bits/mathcalls-helper-functions.h> and <bits/mathcalls.h>
- with appropriate macros defined and undefined.
- [__HAVE_DISTINCT_FLOAT32 || (__HAVE_FLOAT32 && !_LIBC)]: Likewise.
- [__HAVE_DISTINCT_FLOAT64 || (__HAVE_FLOAT64 && !_LIBC)]: Likewise.
- [__HAVE_DISTINCT_FLOAT32X || (__HAVE_FLOAT32X && !_LIBC)]: Likewise.
- [__HAVE_DISTINCT_FLOAT64X || (__HAVE_FLOAT64X && !_LIBC)]: Likewise.
- [__HAVE_DISTINCT_FLOAT128X || (__HAVE_FLOAT128X && !_LIBC)]: Likewise.
-
-2017-10-27 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/i386/fpu/libm-test-ulps: Regenerated for GCC 7 with
- "-O2 -march=i586".
-
-2017-10-27 Mike FABIAN <mfabian@redhat.com>
-
- * localedata/locales/tt_RU (LC_MESSAGES): Start yesstr and nostr
- with lowercase letters to make it agree with CLDR.
-
-2017-10-27 Mike FABIAN <mfabian@redhat.com>
-
- [BZ #15260]
- * localedata/locales/doi_IN (LC_MESSAGES): Match only for the
- first letters of yesstr and nostr in yesexpr and noexpr,
- not for the full words.
- * localedata/locales/hne_IN (LC_MESSAGES): Likewise.
- * localedata/locales/kok_IN (LC_MESSAGES): Likewise.
- * localedata/locales/mr_IN (LC_MESSAGES): Likewise.
- * localedata/locales/sat_IN (LC_MESSAGES): Likewise.
- * localedata/locales/km_KH (LC_MESSAGES): Match also for the
- first letters of yesstr and nostr in yesexpr and noexpr,
- until now only English was matched in yesexpr and noexpr.
- * localedata/locales/tl_PH (LC_MESSAGES): Use “copy "fil_PH"â€
- instead of “copy "en_US"â€. CLDR has yesstr and nostr data for
- fil but not for tl. As tl and fil are very similar, using fil
- is probably better than using English.
-
-2017-10-27 Thierry Vignaud <thierry.vignaud@gmail.com>
-
- [BZ #21706]
- * localedata/locales/br_FR (LC_MESSAGES): Use all lowercase
- in yesstr and nostr.
-
-2017-10-26 Joseph Myers <joseph@codesourcery.com>
-
- * math/math.h [__HAVE_FLOAT16 && __GLIBC_USE
- (IEC_60559_TYPES_EXT)] (SNANF16): New macro.
- [__HAVE_FLOAT32 && __GLIBC_USE (IEC_60559_TYPES_EXT)] (SNANF32):
- Likewise.
- [__HAVE_FLOAT64 && __GLIBC_USE (IEC_60559_TYPES_EXT)] (SNANF64):
- Likewise.
- [__HAVE_FLOAT32X && __GLIBC_USE (IEC_60559_TYPES_EXT)] (SNANF32X):
- Likewise.
- [__HAVE_FLOAT64X && __GLIBC_USE (IEC_60559_TYPES_EXT)] (SNANF64X):
- Likewise.
- [__HAVE_FLOAT128X && __GLIBC_USE (IEC_60559_TYPES_EXT)]
- (SNANF128X): Likewise.
-
- * math/math.h [__HAVE_FLOAT16 && __GLIBC_USE
- (IEC_60559_TYPES_EXT)] (HUGE_VAL_F16): New macro.
- [__HAVE_FLOAT32 && __GLIBC_USE (IEC_60559_TYPES_EXT)]
- (HUGE_VAL_F32): Likewise.
- [__HAVE_FLOAT64 && __GLIBC_USE (IEC_60559_TYPES_EXT)]
- (HUGE_VAL_F64): Likewise.
- [__HAVE_FLOAT32X && __GLIBC_USE (IEC_60559_TYPES_EXT)]
- (HUGE_VAL_F32X): Likewise.
- [__HAVE_FLOAT64X && __GLIBC_USE (IEC_60559_TYPES_EXT)]
- (HUGE_VAL_F64X): Likewise.
- [__HAVE_FLOAT128X && __GLIBC_USE (IEC_60559_TYPES_EXT)]
- (HUGE_VAL_F128X): Likewise.
-
-2017-10-26 Thierry Vignaud <thierry.vignaud@gmail.com>
-
- * localedata/locales/br_FR (LC_IDENTIFICATON): Add
- Thierry Vignaud <thierry.vignaud@gmail.com> as the contact
- for the br_FR locale.
-
-2017-10-26 Thierry Vignaud <thierry.vignaud@gmail.com>
-
- [BZ #21706]
- * localedata/locales/br_FR (LC_MESSAGES): Fix nostr.
-
-2017-10-25 Carlos O'Donell <carlos@redhat.com>
-
- * locale/programs/record-status.h: Define globals, and function
- prototypes. Move function bodies...
- * locale/programs/record-status.c: ... to here. New file.
- * iconv/Makefile (iconv_prog-modules): Add record-status.
- * locale/Makefile (lib-modules): Likewise.
- * iconv/iconv_prog.c: Remove verbose.
- * iconv/iconv_prog.h: Include record-status.h (defines verbose).
- * locale/programs/charmap.c (charmap_read): If warn_ascii is true then
- record a warning about ASCII compatibility.
- * locale/programs/ld-monetary.c (monetary_finish): If
- warn_int_curr_symbol is true then record a warning about the symbol
- not being in our ISO 4217 list.
- * locale/programs/locale.c: Include record-status.h. Remove verbose.
- * locale/programs/localedef.c: Include ctype.h. Remove delcaration of
- verbose, recorded_warning_count, recorded_error_count, and be_quiet.
- (OPT_NO_WARN): Define.
- (OPT_WARN): Define.
- (options): Add entry for --no-warnings, and --warnings.
- (set_warnings): New function to enable/disable warnings.
- (parse_opt): Call set_warnings for OPT_NO_WARN and OPT_WARN.
- * locale/programs/localedef.h: Remove warn_int_curr_symbol.
- * localedata/gen-locale.sh: Default flags to `--quiet -c'.
- Add `--no-warnings=ascii' to locales using SHIFT_JIS or SHIFT_JIXX0213.
- Pass flags to generate_locale.
- (generate_locale): Accept new flag argument and pass it to localedef
- invocation.
- * localedata/Makefile (INSTALL-SUPPORTED-LOCALES): Use
- --no-warnings=ascii for SHIFT_JIS and SHIFT_JISX0213 charmaps.
-
- * localedata/Makefile (test-input-data): Use full file name.
- * localedata/da_DK.in: Rename to...
- * localedata/da_DK.ISO-8859-1.in: ...this.
- * localedata/de_DE.in: Rename to...
- * localedata/de_DE.ISO-8859-1.in: ...this.
- * localedata/en_US.in: Rename to...
- * localedata/en_US.ISO-8859-1.in: ...this.
- * localedata/fr_FR.in: Rename to...
- * localedata/fr_FR.UTF-8.in: ... this.
- * localedata/hr_HR.in: Rename to...
- * localedata/hr_HR.ISO-8859-2.in: ...this.
- * localedata/hu_HU.in: Rename to...
- * localedata/hu_HU.UTF-8.in: ...this.
- * localedata/si_LK.in: Rename to...
- * localedata/si_LK.UTF-8.in: ...this.
- * localedata/sv_SE.in: Rename to...
- * localedata/sv_SE.ISO-8859-1.in: ...this.
- * localedata/tr_TR.in: Rename to...
- * localedata/tr_TR.UTF-8.in: ...this.
- * localedata/uk_UA.in: Rename to...
- * localedata/uk_UA.UTF-8.in: ...this.
- * localedata/sort-test.sh: Test file is locale name with the
- suffix.
-
- * localedata/unicode-gen/Makefile (check_i18n): Rename to
- check_i18n_ctype. Depend on i18n_ctype-report. Check i18n_ctype-report
- file.
- * localedata/locales/i18n_ctype: Regenerate.
- * localedata/locales/tr_TR: Likewise.
- * localedata/locales/translit_circle: Likewise.
- * localedata/locales/translit_cjk_compat: Likewise.
- * localedata/locales/translit_combining: Likewise.
- * localedata/locales/translit_compat: Likewise.
- * localedata/locales/translit_font: Likewise.
- * localedata/locales/translit_fraction: Likewise.
-
-2017-10-25 Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>
-
- * sysdeps/powerpc/powerpc64/power7/memcpy.S: Replace
- lxvd2x/stxvd2x with lvx/stvx.
- * sysdeps/powerpc/powerpc64/power7/memmove.S: Likewise.
-
-2017-10-25 H.J. Lu <hongjiu.lu@intel.com>
-
- * include/alloc_buffer.h: Replace "if if " with "if " in
- comments.
- * sysdeps/mips/memcpy.S: Likkewise.
- * sysdeps/mips/memset.S: Likewise.
- * sysdeps/x86_64/fpu/multiarch/svml_s_sincosf16_core_avx512.S:
- Likewise.
- * sysdeps/x86_64/fpu/multiarch/svml_s_sincosf4_core_sse4.S:
- Likewise.
- * sysdeps/x86_64/fpu/multiarch/svml_s_sincosf8_core_avx2.S:
- Likewise.
-
-2017-10-25 Mike FABIAN <mfabian@redhat.com>
-
- [BZ #15261]
- * localedata/locales/cmn_TW (LC_MESSAGES): Add fullwidth yYnN to
- yesexpr and noexpr.
- * localedata/locales/hak_TW (LC_MESSAGES): Likewise.
- * localedata/locales/ko_KR (LC_MESSAGES): Likewise.
- * localedata/locales/lzh_TW (LC_MESSAGES): Likewise.
- * localedata/locales/nan_TW (LC_MESSAGES): Likewise.
- * localedata/locales/zh_CN (LC_MESSAGES): Likewise.
- * localedata/locales/zh_HK (LC_MESSAGES): Likewise.
- * localedata/locales/zh_TW (LC_MESSAGES): Likewise.
-
-2017-10-25 Mike FABIAN <mfabian@redhat.com>
-
- * localedata/locales/am_ET (LC_MESSAGES): Sync with CLDR.
- * localedata/locales/az_AZ (LC_MESSAGES): Likewise.
- * localedata/locales/el_GR (LC_MESSAGES): Likewise.
- * localedata/locales/ha_NG (LC_MESSAGES): Likewise.
- * localedata/locales/ln_CD (LC_MESSAGES): Likewise.
- * localedata/locales/mfe_MU (LC_MESSAGES): Likewise.
- * localedata/locales/ml_IN (LC_MESSAGES): Likewise.
- * localedata/locales/mt_MT (LC_MESSAGES): Likewise.
- * localedata/locales/os_RU (LC_MESSAGES): Likewise.
- * localedata/locales/tg_TJ (LC_MESSAGES): Likewise.
- * localedata/locales/tt_RU (LC_MESSAGES): Likewise.
- * localedata/locales/wo_SN (LC_MESSAGES): Likewise.
-
-2017-10-25 Mike FABIAN <mfabian@redhat.com>
-
- * localedata/locales/aa_ET (LC_MESSAGES): Use ASCII as much
- as possible for better readability of the source.
- * localedata/locales/af_ZA (LC_MESSAGES): Likewise.
- * localedata/locales/ak_GH (LC_MESSAGES): Likewise.
- * localedata/locales/am_ET (LC_MESSAGES): Likewise.
- * localedata/locales/anp_IN (LC_MESSAGES): Likewise.
- * localedata/locales/ar_EG (LC_MESSAGES): Likewise.
- * localedata/locales/as_IN (LC_MESSAGES): Likewise.
- * localedata/locales/ast_ES (LC_MESSAGES): Likewise.
- * localedata/locales/ayc_PE (LC_MESSAGES): Likewise.
- * localedata/locales/az_AZ (LC_MESSAGES): Likewise.
- * localedata/locales/az_IR (LC_MESSAGES): Likewise.
- * localedata/locales/be_BY (LC_MESSAGES): Likewise.
- * localedata/locales/be_BY@latin (LC_MESSAGES): Likewise.
- * localedata/locales/bem_ZM (LC_MESSAGES): Likewise.
- * localedata/locales/ber_MA (LC_MESSAGES): Likewise.
- * localedata/locales/bg_BG (LC_MESSAGES): Likewise.
- * localedata/locales/bhb_IN (LC_MESSAGES): Likewise.
- * localedata/locales/bi_VU (LC_MESSAGES): Likewise.
- * localedata/locales/bo_CN (LC_MESSAGES): Likewise.
- * localedata/locales/br_FR (LC_MESSAGES): Likewise.
- * localedata/locales/bs_BA (LC_MESSAGES): Likewise.
- * localedata/locales/ca_ES (LC_MESSAGES): Likewise.
- * localedata/locales/ce_RU (LC_MESSAGES): Likewise.
- * localedata/locales/crh_UA (LC_MESSAGES): Likewise.
- * localedata/locales/cs_CZ (LC_MESSAGES): Likewise.
- * localedata/locales/csb_PL (LC_MESSAGES): Likewise.
- * localedata/locales/cv_RU (LC_MESSAGES): Likewise.
- * localedata/locales/cy_GB (LC_MESSAGES): Likewise.
- * localedata/locales/da_DK (LC_MESSAGES): Likewise.
- * localedata/locales/de_DE (LC_MESSAGES): Likewise.
- * localedata/locales/dv_MV (LC_MESSAGES): Likewise.
- * localedata/locales/dz_BT (LC_MESSAGES): Likewise.
- * localedata/locales/el_GR (LC_MESSAGES): Likewise.
- * localedata/locales/en_CA (LC_MESSAGES): Likewise.
- * localedata/locales/en_US (LC_MESSAGES): Likewise.
- * localedata/locales/es_ES (LC_MESSAGES): Likewise.
- * localedata/locales/et_EE (LC_MESSAGES): Likewise.
- * localedata/locales/eu_ES (LC_MESSAGES): Likewise.
- * localedata/locales/fa_IR (LC_MESSAGES): Likewise.
- * localedata/locales/ff_SN (LC_MESSAGES): Likewise.
- * localedata/locales/fi_FI (LC_MESSAGES): Likewise.
- * localedata/locales/fil_PH (LC_MESSAGES): Likewise.
- * localedata/locales/fo_FO (LC_MESSAGES): Likewise.
- * localedata/locales/fr_BE (LC_MESSAGES): Likewise.
- * localedata/locales/fr_CH (LC_MESSAGES): Likewise.
- * localedata/locales/fr_FR (LC_MESSAGES): Likewise.
- * localedata/locales/fr_LU (LC_MESSAGES): Likewise.
- * localedata/locales/fur_IT (LC_MESSAGES): Likewise.
- * localedata/locales/fy_DE (LC_MESSAGES): Likewise.
- * localedata/locales/ga_IE (LC_MESSAGES): Likewise.
- * localedata/locales/gd_GB (LC_MESSAGES): Likewise.
- * localedata/locales/gl_ES (LC_MESSAGES): Likewise.
- * localedata/locales/gu_IN (LC_MESSAGES): Likewise.
- * localedata/locales/gv_GB (LC_MESSAGES): Likewise.
- * localedata/locales/ha_NG (LC_MESSAGES): Likewise.
- * localedata/locales/hak_TW (LC_MESSAGES): Likewise.
- * localedata/locales/he_IL (LC_MESSAGES): Likewise.
- * localedata/locales/hif_FJ (LC_MESSAGES): Likewise.
- * localedata/locales/hne_IN (LC_MESSAGES): Likewise.
- * localedata/locales/hr_HR (LC_MESSAGES): Likewise.
- * localedata/locales/hsb_DE (LC_MESSAGES): Likewise.
- * localedata/locales/ht_HT (LC_MESSAGES): Likewise.
- * localedata/locales/hu_HU (LC_MESSAGES): Likewise.
- * localedata/locales/hy_AM (LC_MESSAGES): Likewise.
- * localedata/locales/ia_FR (LC_MESSAGES): Likewise.
- * localedata/locales/id_ID (LC_MESSAGES): Likewise.
- * localedata/locales/ig_NG (LC_MESSAGES): Likewise.
- * localedata/locales/ik_CA (LC_MESSAGES): Likewise.
- * localedata/locales/is_IS (LC_MESSAGES): Likewise.
- * localedata/locales/it_CH (LC_MESSAGES): Likewise.
- * localedata/locales/it_IT (LC_MESSAGES): Likewise.
- * localedata/locales/iu_CA (LC_MESSAGES): Likewise.
- * localedata/locales/ja_JP (LC_MESSAGES): Likewise.
- * localedata/locales/kk_KZ (LC_MESSAGES): Likewise.
- * localedata/locales/kl_GL (LC_MESSAGES): Likewise.
- * localedata/locales/ko_KR (LC_MESSAGES): Likewise.
- * localedata/locales/ks_IN (LC_MESSAGES): Likewise.
- * localedata/locales/ku_TR (LC_MESSAGES): Likewise.
- * localedata/locales/kw_GB (LC_MESSAGES): Likewise.
- * localedata/locales/ky_KG (LC_MESSAGES): Likewise.
- * localedata/locales/lb_LU (LC_MESSAGES): Likewise.
- * localedata/locales/lg_UG (LC_MESSAGES): Likewise.
- * localedata/locales/li_NL (LC_MESSAGES): Likewise.
- * localedata/locales/lij_IT (LC_MESSAGES): Likewise.
- * localedata/locales/ln_CD (LC_MESSAGES): Likewise.
- * localedata/locales/lo_LA (LC_MESSAGES): Likewise.
- * localedata/locales/lt_LT (LC_MESSAGES): Likewise.
- * localedata/locales/lv_LV (LC_MESSAGES): Likewise.
- * localedata/locales/lzh_TW (LC_MESSAGES): Likewise.
- * localedata/locales/mg_MG (LC_MESSAGES): Likewise.
- * localedata/locales/mhr_RU (LC_MESSAGES): Likewise.
- * localedata/locales/mi_NZ (LC_MESSAGES): Likewise.
- * localedata/locales/mk_MK (LC_MESSAGES): Likewise.
- * localedata/locales/ml_IN (LC_MESSAGES): Likewise.
- * localedata/locales/mn_MN (LC_MESSAGES): Likewise.
- * localedata/locales/ms_MY (LC_MESSAGES): Likewise.
- * localedata/locales/mt_MT (LC_MESSAGES): Likewise.
- * localedata/locales/my_MM (LC_MESSAGES): Likewise.
- * localedata/locales/nan_TW (LC_MESSAGES): Likewise.
- * localedata/locales/nan_TW@latin (LC_MESSAGES): Likewise.
- * localedata/locales/nb_NO (LC_MESSAGES): Likewise.
- * localedata/locales/nds_DE (LC_MESSAGES): Likewise.
- * localedata/locales/nds_NL (LC_MESSAGES): Likewise.
- * localedata/locales/ne_NP (LC_MESSAGES): Likewise.
- * localedata/locales/nhn_MX (LC_MESSAGES): Likewise.
- * localedata/locales/niu_NU (LC_MESSAGES): Likewise.
- * localedata/locales/nl_NL (LC_MESSAGES): Likewise.
- * localedata/locales/nn_NO (LC_MESSAGES): Likewise.
- * localedata/locales/nr_ZA (LC_MESSAGES): Likewise.
- * localedata/locales/nso_ZA (LC_MESSAGES): Likewise.
- * localedata/locales/oc_FR (LC_MESSAGES): Likewise.
- * localedata/locales/om_ET (LC_MESSAGES): Likewise.
- * localedata/locales/or_IN (LC_MESSAGES): Likewise.
- * localedata/locales/os_RU (LC_MESSAGES): Likewise.
- * localedata/locales/pa_IN (LC_MESSAGES): Likewise.
- * localedata/locales/pa_PK (LC_MESSAGES): Likewise.
- * localedata/locales/pap_AW (LC_MESSAGES): Likewise.
- * localedata/locales/pap_CW (LC_MESSAGES): Likewise.
- * localedata/locales/pl_PL (LC_MESSAGES): Likewise.
- * localedata/locales/ps_AF (LC_MESSAGES): Likewise.
- * localedata/locales/pt_BR (LC_MESSAGES): Likewise.
- * localedata/locales/quz_PE (LC_MESSAGES): Likewise.
- * localedata/locales/raj_IN (LC_MESSAGES): Likewise.
- * localedata/locales/ro_RO (LC_MESSAGES): Likewise.
- * localedata/locales/ru_RU (LC_MESSAGES): Likewise.
- * localedata/locales/ru_UA (LC_MESSAGES): Likewise.
- * localedata/locales/rw_RW (LC_MESSAGES): Likewise.
- * localedata/locales/sa_IN (LC_MESSAGES): Likewise.
- * localedata/locales/sc_IT (LC_MESSAGES): Likewise.
- * localedata/locales/sd_IN@devanagari (LC_MESSAGES): Likewise.
- * localedata/locales/se_NO (LC_MESSAGES): Likewise.
- * localedata/locales/sgs_LT (LC_MESSAGES): Likewise.
- * localedata/locales/si_LK (LC_MESSAGES): Likewise.
- * localedata/locales/sk_SK (LC_MESSAGES): Likewise.
- * localedata/locales/sl_SI (LC_MESSAGES): Likewise.
- * localedata/locales/sm_WS (LC_MESSAGES): Likewise.
- * localedata/locales/so_DJ (LC_MESSAGES): Likewise.
- * localedata/locales/sq_AL (LC_MESSAGES): Likewise.
- * localedata/locales/sr_RS (LC_MESSAGES): Likewise.
- * localedata/locales/sr_RS@latin (LC_MESSAGES): Likewise.
- * localedata/locales/ss_ZA (LC_MESSAGES): Likewise.
- * localedata/locales/st_ZA (LC_MESSAGES): Likewise.
- * localedata/locales/sv_SE (LC_MESSAGES): Likewise.
- * localedata/locales/sw_KE (LC_MESSAGES): Likewise.
- * localedata/locales/szl_PL (LC_MESSAGES): Likewise.
- * localedata/locales/tcy_IN (LC_MESSAGES): Likewise.
- * localedata/locales/tg_TJ (LC_MESSAGES): Likewise.
- * localedata/locales/th_TH (LC_MESSAGES): Likewise.
- * localedata/locales/the_NP (LC_MESSAGES): Likewise.
- * localedata/locales/ti_ER (LC_MESSAGES): Likewise.
- * localedata/locales/tk_TM (LC_MESSAGES): Likewise.
- * localedata/locales/tn_ZA (LC_MESSAGES): Likewise.
- * localedata/locales/to_TO (LC_MESSAGES): Likewise.
- * localedata/locales/tr_TR (LC_MESSAGES): Likewise.
- * localedata/locales/ts_ZA (LC_MESSAGES): Likewise.
- * localedata/locales/tt_RU (LC_MESSAGES): Likewise.
- * localedata/locales/tt_RU@iqtelif (LC_MESSAGES): Likewise.
- * localedata/locales/uk_UA (LC_MESSAGES): Likewise.
- * localedata/locales/unm_US (LC_MESSAGES): Likewise.
- * localedata/locales/ur_IN (LC_MESSAGES): Likewise.
- * localedata/locales/ur_PK (LC_MESSAGES): Likewise.
- * localedata/locales/uz_UZ (LC_MESSAGES): Likewise.
- * localedata/locales/uz_UZ@cyrillic (LC_MESSAGES): Likewise.
- * localedata/locales/ve_ZA (LC_MESSAGES): Likewise.
- * localedata/locales/vi_VN (LC_MESSAGES): Likewise.
- * localedata/locales/wa_BE (LC_MESSAGES): Likewise.
- * localedata/locales/wo_SN (LC_MESSAGES): Likewise.
- * localedata/locales/xh_ZA (LC_MESSAGES): Likewise.
- * localedata/locales/yi_US (LC_MESSAGES): Likewise.
- * localedata/locales/yo_NG (LC_MESSAGES): Likewise.
- * localedata/locales/yue_HK (LC_MESSAGES): Likewise.
- * localedata/locales/zh_CN (LC_MESSAGES): Likewise.
- * localedata/locales/zh_HK (LC_MESSAGES): Likewise.
- * localedata/locales/zh_TW (LC_MESSAGES): Likewise.
- * localedata/locales/zu_ZA (LC_MESSAGES): Likewise.
-
-2017-10-25 Mike FABIAN <mfabian@redhat.com>
-
- * localedata/locales/brx_IN (LC_MESSAGES): Fix yesexpr and noexpr
- (Use first letters of yesstr and nostr correctly instead of using
- full words).
-
-2017-10-25 Mike FABIAN <mfabian@redhat.com>
-
- * localedata/locales/ta_IN (LC_MESSAGES): Fix yesexpr and noexpr
- (Use first letters of yesstr and nostr correctly).
-
-2017-10-25 Mike FABIAN <mfabian@redhat.com>
-
- * localedata/locales/hi_IN (LC_MESSAGES): In yesexpr and noexpr,
- also check for the first characters of yesstr and nostr.
- * localedata/locales/kn_IN (LC_MESSAGES): Likewise.
- * localedata/locales/ks_IN@devanagari (LC_MESSAGES): Likewise.
-
-2017-10-25 Mike FABIAN <mfabian@redhat.com>
-
- * localedata/locales/cmn_TW (LC_MESSAGES): In yesexpr and noexpr,
- also check for Chinese characters.
-
-2017-10-25 Mike FABIAN <mfabian@redhat.com>
-
- * localedata/locales/chr_US (LC_MESSAGES): In yesexpr and noexpr,
- match also for the contents of yesstr and nostr. As the first letter
- of yesstr and nostr is equal, checking only for the first letter
- is not enough.
-
-2017-10-25 Mike FABIAN <mfabian@redhat.com>
-
- * localedata/locales/ber_DZ (LC_MESSAGES): Use copy "kab_DZ",
- it is the same according to Belkacem Mohammed <belkacem77@gmail.com>.
-
-2017-10-25 Mike FABIAN <mfabian@redhat.com>
-
- * localedata/locales/kab_DZ (LC_IDENTIFICATION): Add e-mail
- of main contributor.
-
-2017-10-25 Mike FABIAN <mfabian@redhat.com>
-
- * localedata/locales/zh_SG (LC_MESSAGES): Use copy "zh_CN"
- instead of using English.
-
-2017-10-25 Mike FABIAN <mfabian@redhat.com>
-
- * localedata/locales/ug_CN (LC_MESSAGES): Fix noexpr and yesexpr
- by including the first letters of nostr and yesexpr in the regexp.
- Also make it more readable by using ASCII where possible.
-
-2017-10-25 Mike FABIAN <mfabian@redhat.com>
-
- * localedata/locales/te_IN (LC_MESSAGES): Fix noexpr by including
- the first letter of nostr in the regexp. It agrees with CLDR now.
- Also make it more readable by using ASCII where possible.
-
-2017-10-24 Mike FABIAN <mfabian@redhat.com>
-
- * localedata/locales/km_KH (LC_MESSAGES): Fix yestr and nostr.
- The yesstr and nostr apparently came from CLDR. And CLDR has a bug there:
- these strings contain a U+17D6 (which somewhat looks like a colon)
- instead of a real colon to separate the full words for “yesâ€
- and “no†from the single letter responses.
-
-2017-10-24 Mike FABIAN <mfabian@redhat.com>
-
- * localedata/locales/ka_GE (LC_MESSAGES): Fix yesexp to make
- it agree with CLDR (include the first letter of yesstr).
- Also make it more readable by using ASCII where possible.
-
-2017-10-24 Mike FABIAN <mfabian@redhat.com>
-
- * localedata/locales/mr_IN (LC_MESSAGES): Fix yesstr and nostr
- and improve yesexpr and noexpr. The yesstr and nostr apparently
- came from CLDR. And CLDR has a bug there: these strings contain
- a U+0903 (which looks like a colon) instead of a real colon
- to separate the full words for “yes†and “no†from the single
- letter responses.
-
-2017-10-24 Mike FABIAN <mfabian@redhat.com>
-
- * localedata/locales/bn_BD (LC_MESSAGES): Use only the first
- letters of the full yesstr and nostr in yesexpr and noexpr.
-
-2017-10-24 Mike FABIAN <mfabian@redhat.com>
-
- * localedata/locales/an_ES (LC_MESSAGES): Add yesstr and nostr.
- * localedata/locales/an_ES (LC_ADDRESS): Add lang_term and lang_lib.
- * localedata/locales/an_ES: Make source more readable by using ASCII
- where possible.
-
-2017-10-24 Mike FABIAN <mfabian@redhat.com>
-
- [BZ #20952]
- * localedata/locales/yuw_PG: New file.
- * localedata/SUPPORTED: Add yuw_PG/UTF-8.
- * locale/iso-639.def: Add Yau (Uruwa).
-
-2017-10-23 Wilco Dijkstra <wdijkstr@arm.com>
-
- * malloc/malloc.c (_int_malloc): Add SINGLE_THREAD_P path.
-
-2017-10-23 Wilco Dijkstra <wdijkstr@arm.com>
-
- * malloc/malloc.c (__libc_malloc): Add SINGLE_THREAD_P path.
- (__libc_realloc): Likewise.
- (_mid_memalign): Likewise.
- (__libc_calloc): Likewise.
-
-2017-10-23 Mike FABIAN <mfabian@redhat.com>
-
- * localedata/locales/tpi_PG (LC_MESSAGES): Fix yesexpr and noexpr
- by adding the generic +1 and -0 as in all other locales.
- * localedata/locales/tpi_PG (LC_TIME): Fix some typos in the month and
- day names and make it more readable by using ASCII where possible.
-
-2017-10-24 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/x86/fpu/fix-fp-int-compare-invalid.h
- (FIX_COMPARE_INVALID): Define to 0 if [__GNUC_PREREQ (8, 0)].
-
-2017-10-23 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * sysdeps/unix/sysv/linux/spawni.c (__spawnix): Use 0 instead of
- WNOHANG in waitpid call.
-
-2017-10-23 Siddhesh Poyarekar <siddhesh@sourceware.org>
-
- * manual/conf.texi (_SC_LEVEL1_DCACHE_LINESIZE,
- _SC_LEVEL1_ICACHE_LINESIZE): Document aarch64 caveat.
-
- * manual/conf.texi (_SC_LEVEL1_ICACHE_SIZE,
- _SC_LEVEL1_ICACHE_ASSOC, _SC_LEVEL1_ICACHE_LINESIZE,
- _SC_LEVEL1_DCACHE_SIZE, _SC_LEVEL1_DCACHE_ASSOC,
- _SC_LEVEL1_DCACHE_LINESIZE, _SC_LEVEL2_CACHE_SIZE,
- _SC_LEVEL2_CACHE_ASSOC, _SC_LEVEL2_CACHE_LINESIZE,
- _SC_LEVEL3_CACHE_SIZE, _SC_LEVEL3_CACHE_ASSOC,
- _SC_LEVEL3_CACHE_LINESIZE, _SC_LEVEL4_CACHE_SIZE,
- _SC_LEVEL4_CACHE_ASSOC, _SC_LEVEL4_CACHE_LINESIZE): New
- variables.
-
-2017-10-23 Michael Collison <michael.collison@arm.com>
-
- * sysdeps/aarch64/fpu/e_sqrt.c (ieee754_sqrt): Replace asm statements
- with __builtin_sqrt.
- * sysdeps/aarch64/fpu/e_sqrtf.c (ieee754_sqrtf): Replace asm statements
- with __builtin_sqrtf.
- * sysdeps/aarch64/fpu/s_ceil.c (__ceil): Replace asm statements
- with __builtin_ceil.
- * sysdeps/aarch64/fpu/s_ceilf.c (__ceilf): Replace asm statements
- with __builtin_ceilf.
- * sysdeps/aarch64/fpu/s_floor.c (__floor): Replace asm statements
- with __builtin_floor.
- * sysdeps/aarch64/fpu/s_floorf.c (__floorf): Replace asm statements
- with __builtin_floorf.
- * sysdeps/aarch64/fpu/s_fma.c (__fma): Replace asm statements
- with __builtin_fma.
- * sysdeps/aarch64/fpu/s_fmaf.c (__fmaf): Replace asm statements
- with __builtin_fmaf.
- * sysdeps/aarch64/fpu/s_fmax.c (__fmax): Replace asm statements
- with __builtin_fmax.
- * sysdeps/aarch64/fpu/s_fmaxf.c (__fmaxf): Replace asm statements
- with __builtin_fmaxf.
- * sysdeps/aarch64/fpu/s_fmin.c (__fmin): Replace asm statements
- with __builtin_fmin.
- * sysdeps/aarch64/fpu/s_fminf.c (__fminf): Replace asm statements
- with __builtin_fminf.
- * sysdeps/aarch64/fpu/s_frint.c: Delete file.
- * sysdeps/aarch64/fpu/s_frintf.c: Delete file.
- * sysdeps/aarch64/fpu/s_llrint.c (__llrint): Replace asm statements
- with builtin_rint and conversion to int.
- * sysdeps/aarch64/fpu/s_llrintf.c (__llrintf): Likewise.
- * sysdeps/aarch64/fpu/s_llround.c (__llround): Replace asm statements
- with builtin_llround.
- * sysdeps/aarch64/fpu/s_llroundf.c (__llroundf): Likewise.
- * sysdeps/aarch64/fpu/s_lrint.c (__lrint): Replace asm statements
- with builtin_rint and conversion to long int.
- * sysdeps/aarch64/fpu/s_lrintf.c (__lrintf): Likewise.
- * sysdeps/aarch64/fpu/s_lround.c (__lround): Replace asm statements
- with builtin_lround.
- * sysdeps/aarch64/fpu/s_lroundf.c (__lroundf): Replace asm statements
- with builtin_lroundf.
- * sysdeps/aarch64/fpu/s_nearbyint.c (__nearbyint): Replace asm
- statements with __builtin_nearbyint.
- * sysdeps/aarch64/fpu/s_nearbyintf.c (__nearbyintf): Replace asm
- statements with __builtin_nearbyintf.
- * sysdeps/aarch64/fpu/s_rint.c (__rint): Replace asm statements
- with __builtin_rint.
- * sysdeps/aarch64/fpu/s_rintf.c (__rintf): Replace asm statements
- with __builtin_rintf.
- * sysdeps/aarch64/fpu/s_round.c (__round): Replace asm statements
- with __builtin_round.
- * sysdeps/aarch64/fpu/s_roundf.c (__roundf): Replace asm statements
- with __builtin_roundf.
- * sysdeps/aarch64/fpu/s_trunc.c (__trunc): Replace asm statements
- with __builtin_trunc.
- * sysdeps/aarch64/fpu/s_truncf.c (__truncf): Replace asm statements
- with __builtin_truncf.
- * sysdeps/aarch64/fpu/Makefile: Build e_sqrt[f].c with -fno-math-errno,
- and s_l[l]round[f].c too.
-
-2017-10-23 Alan Modra <amodra@gmail.com>
-
- * sysdeps/powerpc/powerpc64/power8/strncpy.S: Move LR cfi.
- Adjust stack after restoring regs. Add missing LR cfi_restore.
-
-2017-10-23 Alan Modra <amodra@gmail.com>
-
- * sysdeps/powerpc/powerpc64/power7/strncpy.S: Decrease FRAMESIZE.
- Move LR save and frame setup/teardown and LR restore to
- immediately around memset call. Provide cfi.
-
-2017-10-22 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/i386/fpu/e_powf.S: Removed.
- * sysdeps/i386/fpu/e_powf_log2_data.c: Likewise.
- * sysdeps/i386/fpu/w_powf.c: Likewise.
- * sysdeps/i386/fpu/libm-test-ulps: Updated for generic e_powf.c.
- * sysdeps/i386/i686/fpu/multiarch/libm-test-ulps: Likewise.
- * sysdeps/i386/i686/fpu/multiarch/Makefile (libm-sysdep_routines):
- Add e_powf-sse2.
- (CFLAGS-e_powf-sse2.c): New.
- * sysdeps/i386/i686/fpu/multiarch/e_powf-sse2.c: New file.
- * sysdeps/i386/i686/fpu/multiarch/e_powf.c: Likewise.
-
-2017-10-22 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/i386/fpu/e_log2f.S: Removed.
- * sysdeps/i386/fpu/e_log2f_data.c: Likewise.
- * sysdeps/i386/fpu/w_log2f.c: Likewise.
- * sysdeps/i386/fpu/libm-test-ulps: Updated for generic e_log2f.c.
- * sysdeps/i386/i686/fpu/multiarch/libm-test-ulps: Likewise.
- * sysdeps/i386/i686/fpu/multiarch/Makefile (libm-sysdep_routines):
- Add e_log2f-sse2.
- (CFLAGS-e_log2f-sse2.c): New.
- * sysdeps/i386/i686/fpu/multiarch/e_log2f-sse2.c: New file.
- * sysdeps/i386/i686/fpu/multiarch/e_log2f.c: Likewise.
-
-2017-10-22 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/x86_64/fpu/multiarch/Makefile (libm-sysdep_routines):
- Add e_powf-fma.
- (CFLAGS-e_powf-fma.c): New.
- * sysdeps/x86_64/fpu/multiarch/e_powf-fma.c: New file.
- * sysdeps/x86_64/fpu/multiarch/e_powf.c: Likewise.
-
-2017-10-22 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/x86_64/fpu/multiarch/Makefile (libm-sysdep_routines):
- Add e_log2f-fma.
- (CFLAGS-e_log2f-fma.c): New.
- * sysdeps/x86_64/fpu/multiarch/e_log2f-fma.c: New file.
- * sysdeps/x86_64/fpu/multiarch/e_log2f.c: Likewise.
-
-2017-10-22 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/x86_64/fpu/multiarch/Makefile (libm-sysdep_routines):
- Add e_logf-fma.
- (CFLAGS-e_logf-fma.c): New.
- * sysdeps/x86_64/fpu/multiarch/e_logf-fma.c: New file.
- * sysdeps/x86_64/fpu/multiarch/e_logf.c: Likewise.
-
-2017-10-22 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/i386/fpu/e_logf.S: Removed.
- * sysdeps/i386/fpu/e_logf_data.c: Likewise.
- * sysdeps/i386/fpu/w_logf.c: Likewise.
- * sysdeps/i386/i686/fpu/e_logf.S: Likewise.
- * sysdeps/i386/fpu/libm-test-ulps: Updated for generic e_logf.c.
- * sysdeps/i386/i686/fpu/multiarch/libm-test-ulps: Likewise.
- * sysdeps/i386/i686/fpu/multiarch/Makefile (libm-sysdep_routines):
- Add e_logf-sse2.
- (CFLAGS-e_logf-sse2.c): New.
- * sysdeps/i386/i686/fpu/multiarch/e_logf-sse2.c: New file.
- * sysdeps/i386/i686/fpu/multiarch/e_logf.c: Likewise.
-
-2017-10-22 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/i386/fpu/e_exp2f.S: Removed.
- * sysdeps/i386/fpu/w_exp2f.c: Likewise.
- * sysdeps/i386/fpu/libm-test-ulps: Updated for generic e_exp2f.c.
- * sysdeps/i386/i686/fpu/multiarch/libm-test-ulps: Likewise.
- * sysdeps/i386/i686/fpu/multiarch/Makefile (libm-sysdep_routines):
- Add e_exp2f-sse2.
- (CFLAGS-e_exp2f-sse2.c): New.
- * sysdeps/i386/i686/fpu/multiarch/e_exp2f-sse2.c: New file.
- * sysdeps/i386/i686/fpu/multiarch/e_exp2f.c: Likewise.
-
-2017-10-22 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/x86_64/fpu/multiarch/Makefile (libm-sysdep_routines):
- Add e_exp2f-fma.
- (CFLAGS-e_exp2f-fma.c): New.
- * sysdeps/x86_64/fpu/multiarch/e_exp2f-fma.c: New file.
- * sysdeps/x86_64/fpu/multiarch/e_exp2f.c: Likewise.
-
-2017-10-22 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/i386/fpu/e_exp2f_data.c: Removed.
- * sysdeps/i386/fpu/e_expf.S: Likewise.
- * sysdeps/i386/fpu/math_errf.c: Likewise.
- * sysdeps/i386/fpu/w_expf.c: Likewise.
- * sysdeps/i386/i686/fpu/multiarch/e_expf-ia32.S: Likewise.
- * sysdeps/i386/i686/fpu/multiarch/e_expf-sse2.S: Likewise.
- * sysdeps/i386/i686/fpu/multiarch/w_expf.c: Likewise.
- * sysdeps/i386/fpu/libm-test-ulps: Updated for generic e_expf.c.
- * sysdeps/i386/i686/fpu/multiarch/libm-test-ulps: Likewise.
- * sysdeps/i386/i686/fpu/multiarch/Makefile (libm-sysdep_routines):
- Remove e_expf-ia32.
- (CFLAGS-e_expf-sse2.c): New.
- * sysdeps/i386/i686/fpu/multiarch/e_expf-sse2.c: New file.
- * sysdeps/i386/i686/fpu/multiarch/e_expf.c: Rewritten.
-
-2017-10-22 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/x86_64/fpu/e_expf.S: Removed.
- * sysdeps/x86_64/fpu/multiarch/e_expf-fma.S: Likewise.
- * sysdeps/x86_64/fpu/w_expf.c: Likewise.
- * sysdeps/x86_64/fpu/libm-test-ulps: Updated for generic
- e_expf.c.
- * sysdeps/x86_64/fpu/multiarch/Makefile (CFLAGS-e_expf-fma.c):
- New.
- * sysdeps/x86_64/fpu/multiarch/e_expf-fma.c: New file.
- * sysdeps/x86_64/fpu/multiarch/e_expf.c (__redirect_ieee754_expf):
- Renamed to ...
- (__redirect_expf): This.
- (SYMBOL_NAME): Changed to expf.
- (__ieee754_expf): Renamed to ...
- (__expf): This.
- (__GI___expf): This.
- (__ieee754_expf): Add strong_alias.
- (__expf_finite): Likewise.
- (__expf): New.
- Include <sysdeps/ieee754/flt-32/e_expf.c>.
-
-2017-10-22 Paul Eggert <eggert@cs.ucla.edu>
-
- [BZ #22332]
- * posix/glob.c (__glob): Fix buffer overflow during GLOB_TILDE
- unescaping.
-
-2017-10-21 Florian Weimer <fweimer@redhat.com>
-
- * posix/Makefile (tests): Add tst-glob-tilde.
- (tests-special): Add tst-glob-tilde-mem.out
- (tst-glob-tilde-ENV): Set MALLOC_TRACE.
- (tst-glob-tilde-mem.out): Add mtrace check.
- * posix/tst-glob-tilde.c: New file.
-
-2017-10-20 Joseph Myers <joseph@codesourcery.com>
-
- * bits/floatn-common.h: New file.
- * math/Makefile (headers): Add bits/floatn-common.h.
- * bits/floatn.h: Include <bits/floatn-common.h>.
- * sysdeps/ia64/bits/floatn.h: Likewise.
- * sysdeps/ieee754/ldbl-128/bits/floatn.h: Likewise.
- * sysdeps/mips/ieee754/bits/floatn.h: Likewise.
- * sysdeps/powerpc/bits/floatn.h: Likewise.
- * sysdeps/x86/bits/floatn.h: Likewise.
-
-2017-10-20 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * configure.ac (libc_cv_gcc_incompatbile_alias): New define:
- indicates whether compiler emits an warning for alias for
- functions with incompatible types.
-
- [BZ #22273]
- * sysdeps/unix/sysv/linux/spawni.c (__spawnix): Handle the case where
- the auxiliary process is terminated by a signal before calling _exit
- or execve.
-
-2017-10-20 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #21265]
- * sysdeps/x86/cpu-features-offsets.sym (XSAVE_STATE_SIZE_OFFSET):
- New.
- * sysdeps/x86/cpu-features.c: Include <libc-pointer-arith.h>.
- (get_common_indeces): Set xsave_state_size, xsave_state_full_size
- and bit_arch_XSAVEC_Usable if needed.
- (init_cpu_features): Remove bit_arch_Use_dl_runtime_resolve_slow
- and bit_arch_Use_dl_runtime_resolve_opt.
- * sysdeps/x86/cpu-features.h (bit_arch_Use_dl_runtime_resolve_opt):
- Removed.
- (bit_arch_Use_dl_runtime_resolve_slow): Likewise.
- (bit_arch_Prefer_No_AVX512): Updated.
- (bit_arch_MathVec_Prefer_No_AVX512): Likewise.
- (bit_arch_XSAVEC_Usable): New.
- (STATE_SAVE_OFFSET): Likewise.
- (STATE_SAVE_MASK): Likewise.
- [__ASSEMBLER__]: Include <cpu-features-offsets.h>.
- (cpu_features): Add xsave_state_size and xsave_state_full_size.
- (index_arch_Use_dl_runtime_resolve_opt): Removed.
- (index_arch_Use_dl_runtime_resolve_slow): Likewise.
- (index_arch_XSAVEC_Usable): New.
- * sysdeps/x86/cpu-tunables.c (TUNABLE_CALLBACK (set_hwcaps)):
- Support XSAVEC_Usable. Remove Use_dl_runtime_resolve_slow.
- * sysdeps/x86_64/Makefile (tst-x86_64-1-ENV): New if tunables
- is enabled.
- * sysdeps/x86_64/dl-machine.h (elf_machine_runtime_setup):
- Replace _dl_runtime_resolve_sse, _dl_runtime_resolve_avx,
- _dl_runtime_resolve_avx_slow, _dl_runtime_resolve_avx_opt,
- _dl_runtime_resolve_avx512 and _dl_runtime_resolve_avx512_opt
- with _dl_runtime_resolve_fxsave, _dl_runtime_resolve_xsave and
- _dl_runtime_resolve_xsavec.
- * sysdeps/x86_64/dl-trampoline.S (DL_RUNTIME_UNALIGNED_VEC_SIZE):
- Removed.
- (DL_RUNTIME_RESOLVE_REALIGN_STACK): Check STATE_SAVE_ALIGNMENT
- instead of VEC_SIZE.
- (REGISTER_SAVE_BND0): Removed.
- (REGISTER_SAVE_BND1): Likewise.
- (REGISTER_SAVE_BND3): Likewise.
- (REGISTER_SAVE_RAX): Always defined to 0.
- (VMOV): Removed.
- (_dl_runtime_resolve_avx): Likewise.
- (_dl_runtime_resolve_avx_slow): Likewise.
- (_dl_runtime_resolve_avx_opt): Likewise.
- (_dl_runtime_resolve_avx512): Likewise.
- (_dl_runtime_resolve_avx512_opt): Likewise.
- (_dl_runtime_resolve_sse): Likewise.
- (_dl_runtime_resolve_sse_vex): Likewise.
- (USE_FXSAVE): New.
- (_dl_runtime_resolve_fxsave): Likewise.
- (USE_XSAVE): Likewise.
- (_dl_runtime_resolve_xsave): Likewise.
- (USE_XSAVEC): Likewise.
- (_dl_runtime_resolve_xsavec): Likewise.
- * sysdeps/x86_64/dl-trampoline.h (_dl_runtime_resolve_avx512):
- Removed.
- (_dl_runtime_resolve_avx512_opt): Likewise.
- (_dl_runtime_resolve_avx): Likewise.
- (_dl_runtime_resolve_avx_opt): Likewise.
- (_dl_runtime_resolve_sse): Likewise.
- (_dl_runtime_resolve_sse_vex): Likewise.
- (_dl_runtime_resolve_fxsave): New.
- (_dl_runtime_resolve_xsave): Likewise.
- (_dl_runtime_resolve_xsavec): Likewise.
-
-2017-10-20 Paul Eggert <eggert@cs.ucla.edu>
-
- [BZ #22320]
- CVE-2017-15670
- * posix/glob.c (__glob): Fix one-byte overflow.
-
-2017-10-20 Wilco Dijkstra <wdijkstr@arm.com>
-
- * malloc/malloc.c (sysdep-cancel.h): Add include.
-
-2017-10-20 Wilco Dijkstra <wdijkstr@arm.com>
-
- * malloc/malloc.c (_int_free): Add SINGLE_THREAD_P fast paths.
-
-2017-10-20 Will Hawkins <hawkinsw@borlaugic.com>
-
- * resolv/Makefile [$(build-shared)$(have-thread-library) == yesyes]
- (tests): Remove $(objpfx)ga_test depdendency.
- * resolv/ga_test.c: Remove file.
-
-2017-10-20 Mike FABIAN <mfabian@redhat.com>
-
- [BZ #18812]
- * localedata/SUPPORTED: Add kab_DZ/UTF-8.
- * localedata/locales/kab_DZ: New file.
-
-2017-10-20 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/m68k/dl-machine.h (elf_machine_load_address): Use
- _dl_relocate_static_pie instead of _dl_start to compute load
- address in static PIE.
-
-2017-10-20 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/m68k/start.S (_start): Check PIC instead of SHARED.
-
-2017-10-20 Mike FABIAN <mfabian@redhat.com>
-
- [BZ #13605]
- * localedata/SUPPORTED: Add shn_MM/UTF-8.
- * localedata/locales/shn_MM: New file.
-
-2017-10-20 Florian Weimer <fweimer@redhat.com>
-
- [BZ #22321]
- sysconf: Fix missing definition of UIO_MAXIOV on Linux.
- * sysdeps/posix/sysconf.c: Include <sys/uio.h>.
- * sysdeps/unix/sysv/linux/Makefile (tests): Add tst-sysconf-iov_max.
- (tst-sysconf-iov_max): Link with tst-sysconf-iov_max-uapi.o.
- * sysdeps/unix/sysv/linux/tst-sysconf-iov_max.c: New file.
- * sysdeps/unix/sysv/linux/tst-sysconf-iov_max-uapi.c: Likewise.
-
-2017-10-19 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/i386/fpu/libm-test-ulps: Regenerated.
-
-2017-10-19 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/mips/ieee754/bits/floatn.h: New file.
-
- [BZ #22322]
- * sysdeps/mips/bits/long-double.h: Move to ....
- * sysdeps/mips/ieee754/bits/long-double.h: ... here.
-
-2017-10-19 Wilco Dijkstra <wdijkstr@arm.com>
-
- * malloc/malloc.c (_int_free): Fix deadlock bug in consistency check.
-
-2017-10-19 Valery Reznic <valery_reznic@yahoo.com>
- H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #22299]
- * sysdeps/x86/cpu-features.c (init_cpu_features): Don't set
- GLRO(dl_platform) to NULL.
- * sysdeps/x86_64/Makefile (tests): Add tst-platform-1.
- (modules-names): Add tst-platformmod-1 and
- x86_64/tst-platformmod-2.
- (CFLAGS-tst-platform-1.c): New.
- (CFLAGS-tst-platformmod-1.c): Likewise.
- (CFLAGS-tst-platformmod-2.c): Likewise.
- (LDFLAGS-tst-platformmod-2.so): Likewise.
- ($(objpfx)tst-platform-1): Likewise.
- ($(objpfx)tst-platform-1.out): Likewise.
- (tst-platform-1-ENV): Likewise.
- ($(objpfx)x86_64/tst-platformmod-2.os): Likewise.
- * sysdeps/x86_64/tst-platform-1.c: New file.
- * sysdeps/x86_64/tst-platformmod-1.c: Likewise.
- * sysdeps/x86_64/tst-platformmod-2.c: Likewise.
-
-2017-10-19 Mike FABIAN <mfabian@redhat.com>
-
- [BZ #13994]
- * locale/iso-639.def: Add Karbi.
- * localedata/SUPPORTED: Add mjw_IN/UTF-8.
- * localedata/locales/mjw_IN: New file.
-
-2017-10-18 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/ieee754/ldbl-128/Makeconfig: New file.
- * sysdeps/ieee754/ldbl-128/bits/floatn.h: Likewise.
- * sysdeps/ieee754/ldbl-128/float128-abi.h: Likewise.
- * sysdeps/generic/libm-alias-ldouble.h: Include <bits/floatn.h>.
- [__HAVE_FLOAT128 && !__HAVE_DISTINCT_FLOAT128]
- (libm_alias_ldouble_other_r): Also create _Float128 alias.
- * sysdeps/ieee754/ldbl-opt/libm-alias-ldouble.h: Include
- <bits/floatn.h>.
- [__HAVE_FLOAT128 && !__HAVE_DISTINCT_FLOAT128]
- (libm_alias_ldouble_other_r): Also create _Float128 alias.
- * manual/math.texi (Mathematics): Document additional architecture
- support for _Float128.
- * sysdeps/unix/sysv/linux/aarch64/libc.abilist: Update.
- * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/alpha/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise.
-
-2017-10-18 Renlin Li <renlin.li@arm.com>
-
- * sysdeps/aarch64/dl-machine.h (elf_machine_load_address): Use
- _DYNAMIC symbol to calculate load address.
-
-2017-10-18 Paul A. Clarke <pc@us.ibm.com>
-
- * sysdeps/powerpc/fpu/fenv_private.h (_FPU_MASK_TRAPS_RN):
- (_FPU_MASK_FRAC_INEX_RET_CC): Fix masks to more properly handle
- summary bits.
- (_FPU_MASK_RN): Expand _FPU_MASK_RN to 64bit hex.
- (_FPU_MASK_NOT_RN_NI): Treat bit 52 (left-to-right) as reserved.
-
-2017-10-18 Mike FABIAN <mfabian@redhat.com>
-
- [BZ #16777]
- * localedata/locales/pl_PL (LC_MONETARY): Use U+202F as mon_thousands_sep
- and improve readability by using more ASCII.
- * localedata/locales/pl_PL (LC_NUMERIC): Use U+202F as thousands_sep
- and improve readability by using more ASCII.
-
-2017-10-18 Wilco Dijkstra <wdijkstr@arm.com>
-
- * malloc/malloc.c (malloc_state): Use int for have_fastchunks since
- not all targets support atomics on bool.
-
-2017-10-17 Joseph Myers <joseph@codesourcery.com>
-
- * include/float.h [!__GNUC_PREREQ (7, 0) && __HAVE_FLOAT128 &&
- __GLIBC_USE (IEC_60559_TYPES_EXT)] (FLT128_MAX): Define using
- __f128.
- [!__GNUC_PREREQ (7, 0) && __HAVE_FLOAT128 && __GLIBC_USE
- (IEC_60559_TYPES_EXT)] (FLT128_EPSILON): Likewise.
- [!__GNUC_PREREQ (7, 0) && __HAVE_FLOAT128 && __GLIBC_USE
- (IEC_60559_TYPES_EXT)] (FLT128_MIN): Likewise.
- [!__GNUC_PREREQ (7, 0) && __HAVE_FLOAT128 && __GLIBC_USE
- (IEC_60559_TYPES_EXT)] (FLT128_TRUE_MIN): Likewise.
-
-2017-10-17 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * bits/uio-ext.h (RWF_HIPRI, RWF_DSYNC, RWF_SYNC, RWF_NOWAIT): New
- defines.
-
-2017-10-17 Wilco Dijkstra <wdijkstr@arm.com>
-
- [BZ #22159]
- * malloc/arena.c (ptmalloc_init): Call malloc_init_state.
- * malloc/malloc.c (do_check_free_chunk): Fix build bug.
- (do_check_remalloced_chunk): Fix build bug.
- (do_check_malloc_state): Add assert that checks arena->top.
- (malloc_consolidate): Remove initialization.
- (int_mallinfo): Remove call to malloc_consolidate.
- (__libc_mallopt): Clarify why malloc_consolidate is needed.
-
-2017-10-17 Wilco Dijkstra <wdijkstr@arm.com>
-
- * malloc/malloc.c (FASTCHUNKS_BIT): Remove.
- (have_fastchunks): Remove.
- (clear_fastchunks): Remove.
- (set_fastchunks): Remove.
- (malloc_state): Add have_fastchunks.
- (malloc_init_state): Use have_fastchunks.
- (do_check_malloc_state): Remove incorrect invariant checks.
- (_int_malloc): Use have_fastchunks.
- (_int_free): Likewise.
- (malloc_consolidate): Likewise.
-
-2017-10-17 Wilco Dijkstra <wdijkstr@arm.com>
-
- * malloc/malloc.c (tcache_put): Inline.
- (tcache_get): Inline.
-
-2017-10-17 Jordi Mallach <jordi@gnu.org>
-
- Aurelien Jarno <aurelien@aurel32.net>
- [BZ #2522]
- * localedata/locales/ca_ES@valencia: New file.
- * localedata/SUPPORTED: Add ca_ES@valencia/UTF-8.
-
-2017-10-17 Romain Naour <romain.naour@gmail.com> (tiny change)
-
- [BZ #22296]
- * math/math.h: Let signbit use the builtin in C++ mode with gcc
- < 6.x
-
-2017-10-17 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * scripts/build-many-glibcs.py (Context.add_all_configs):
- Add arm-linux-gnueabihf multiarch extra_glibcs.
-
- * sysdeps/generic/ifunc-init.h: New file.
- * sysdeps/x86/init-arch.h: Use generic ifunc-init.h.
-
-2017-10-17 Mike FABIAN <mfabian@redhat.com>
-
- [BZ #22019]
- * localedata/locales/el_GR: Set n_cs_precedes to 0.
- * localedata/locales/el_CY: copy "el_GR" because it is identical.
- * stdlib/tst-strfmon_l.c: adapt test case.
-
-2017-10-16 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/generic/float128-abi.h: New file.
- * sysdeps/ieee754/float128/Versions (FLOAT128_VERSION): Move
- non-__prefixed symbols to ....
- * math/Versions: ... here. Include <float128-abi.h>.
- * stdlib/Versions ... and here. Include <float128-abi.h>
-
-2017-10-16 Florian Weimer <fweimer@redhat.com>
-
- * version.h (VERSION): Switch to ".9000" as the development
- version suffix.
-
-2017-10-16 Florian Weimer <fweimer@redhat.com>
-
- [BZ #22050]
- * malloc/mcheck-init.c (__malloc_initialize_hook): Use
- compat_symbol_reference to access non-default version.
-
-2017-10-16 Florian Weimer <fweimer@redhat.com>
-
- * malloc/Makefile (others-extras): Set to mcheck-init.o.
-
-2017-10-16 Carlos O'Donell <carlos@redhat.com>
-
- * include/shlib-compat.h (compat_symbol_reference): Update
- comment.
-
-2017-10-16 Joseph Myers <joseph@codesourcery.com>
-
- * math/Makefile (test-types): Add
- $(type-float128-$(float128-alias-fcts)).
- * math/test-float128.h (TYPE_STR): Define conditional on
- [FLT128_MANT_DIG == LDBL_MANT_DIG].
- (ULP_IDX): Likewise.
- (ULP_I_IDX): Likewise.
-
- * stdlib/strtold.c: Include <bits/floatn.h>
- [__HAVE_FLOAT128 && !__HAVE_DISTINCT_FLOAT128] (strtof128): Define
- and later undefine as macro. Define as weak alias if
- [!USE_WIDE_CHAR].
- [__HAVE_FLOAT128 && !__HAVE_DISTINCT_FLOAT128] (wcstof128): Define
- and later undefine as macro. Define as weak alias if
- [USE_WIDE_CHAR].
- * sysdeps/ieee754/ldbl-128/strtold_l.c [__HAVE_FLOAT128 &&
- !__HAVE_DISTINCT_FLOAT128] (strtof128_l): Define and later
- undefine as macro. Define as weak alias if [!USE_WIDE_CHAR].
- [__HAVE_FLOAT128 && !__HAVE_DISTINCT_FLOAT128] (wcstof128_l):
- Define and later undefine as macro. Define as weak alias if
- [USE_WIDE_CHAR].
- * sysdeps/ieee754/ldbl-64-128/strtold_l.c: Include
- <bits/floatn.h>.
- [__HAVE_FLOAT128 && !__HAVE_DISTINCT_FLOAT128] (strtof128_l):
- Define and later undefine as macro. Define as weak alias if
- [!USE_WIDE_CHAR].
- [__HAVE_FLOAT128 && !__HAVE_DISTINCT_FLOAT128] (wcstof128_l):
- Define and later undefine as macro. Define as weak alias if
- [USE_WIDE_CHAR].
-
-2017-10-15 Carlos O'Donell <carlos@redhat.com>
-
- * localedata/collate-test.c (allocate_arrays): Don't use \n in
- record_verbose messages.
-
-2017-10-15 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #22052]
- * malloc/hooks.c (realloc_check): Use DIAG_IGNORE_NEEDS_COMMENT
- to silence -O3 -Wall warning with GCC 7.
-
-2017-10-14 H.J. Lu <hongjiu.lu@intel.com>
-
- * Makeconfig (+link-static-before-libc): Use the first of
- $(CRT-$(@F)) and $(csu-objpfx)$(static-start-installed-name).
- * gmon/Makefile (tests): Add tst-gmon-static.
- (tests-static): Likewise.
- (CFLAGS-tst-gmon-static.c): New.
- (CRT-tst-gmon-static): Likewise.
- (DEFAULT-LDFLAGS-tst-gmon-static): Likewise.
- (tst-gmon-static-ENV): Likewise.
- (tests-special): Likewise.
- ($(objpfx)tst-gmon-static.out): Likewise.
- (clean-tst-gmon-static-data): Likewise.
- ($(objpfx)tst-gmon-static-gprof.out): Likewise.
- * gmon/tst-gmon-static-gprof.sh: New file.
- * gmon/tst-gmon-static.c: Likewise.
-
-2017-10-13 Carlos O'Donell <carlos@redhat.com>
-
- [BZ #22295]
- * locale/programs/linereader.c (get_string): Don't warn on
- non-symbolic character.
-
- [BZ #22294]
- * locale/programs/ld-monetary.c (monetary_finish): Allow ""
- int_curr_symbol.
-
- [BZ #22292]
- * locale/programs/record-status.h: New file
- * locale/programs/locale.c: Add comment.
- * locale/programs/charmap-dir.c: Don't include error.h.
- (charmap_opendir): Use record_error.
- * locale/programs/charmap.c: Don't include error.h.
- (charmap_read): Use record_error, and record_warning.
- (parse_charmap): Likewise.
- * locale/programs/ld-address.c: Don't include error.h.
- (address_finish): Use record_error, and record_warning.
- * locale/programs/ld-collate.c: Don't include error.h.
- (collate_finish): Use record_error, and record_error_at_line.
- * locale/programs/ld-ctype.c (ctype_finish): Use record_error.
- (ctype_class_new): Likewise.
- (ctype_map_new): Likewise.
- (set_one_default): Likewise.
- (set_class_defaults): Likewise.
- (translit_flatten): Likewise.
- (allocate_arrays): Use record_error, and record_verbose.
- * locale/programs/ld-identification.c: Don't include error.h.
- (indentation_finish): Use record_error and record_warning.
- * locale/programs/ld-measurement.c: Don't include error.h.
- (measurement_finish): Use record_error.
- * locale/programs/ld-messages.c
- (message_finish): Likewise.
- * locale/programs/ld-monetary.c
- (monetary_finish): Likewise.
- * locale/programs/ld-name.c (name_finish): Use record_error
- and record_warning.
- * locale/programs/ld-numeric.c
- (numeric_finish): Use record_error.
- * locale/programs/ld-paper.c: Don't include error.h.
- (paper_finish): Use record_error.
- * locale/programs/ld-telephone.c: Don't include error.h.
- (telephone_finish): Use record_error.
- * locale/programs/ld-time.c (time_finish): Likewise.
- * locale/programs/linereader.h (lr_error): Make inline func.
- * locale/programs/localedef.c: Define recorded_warning_count,
- and recorded_error_count.
- (main): Use record_error. Use recorded_error_count and
- recorded_warning_count to issue correct error returns.
- (add_to_readlist): Use record_error.
- (find_locale): Likewise.
- (load_locale): Likewise.
- * locale/programs/localedef.h: Remove be_quiet
- and WITH_CUR_LOCALE.
- * locale/programs/locarchive.c (compare_from_file): Use
- record_error.
- * locale/programs/locfile.c (write_locale_data): Use
- record_error.
- * locale/programs/repertoire.c: Dont include error.h.
- (repertoire_complain): Use record_error.
- * localedata/tst-fmon.sh: Expect failures from localedef.
- * localedata/tst-locale.sh: Likewise.
- * localedata/gen-locale.sh: Expect failures from SHIFT_JIS.
-
- * localedata/unicode-gen/Makefile (GENERATED): Use i18n_ctype.
- (REPORTS): Likewise.
- (check): Likewise.
- (i18n): Rename to...
- (i18n_ctype): ...this.
- (i18n-report): Rename to...
- (i18n_ctype-report): ...this.
- * localedata/locales/i18n_ctype: Regenerate.
- * localedata/locales/i18n: copy i18n_ctype.
-
-2017-10-13 Joseph Myers <joseph@codesourcery.com>
-
- * stdlib/strfroml.c: Include <bits/floatn.h>.
- [__HAVE_FLOAT128 && !__HAVE_DISTINCT_FLOAT128] (strfromf128):
- Define before include of <stdlib.h> and undefine afterwards, then
- define as weak alias.
-
- * sysdeps/ieee754/ldbl-64-128/s_nextafterl.c (weak_alias):
- Undefine and restore default definition. Use
- libm_alias_ldouble_other.
-
-2017-10-13 Peter Zelezny <peter.zelezny@dektech.com.au>
-
- [BZ #22153]
- * nptl/allocatestack.c (__nptl_setxid_error): Preserve error code
- in coredumps.
-
-2017-10-13 James Clarke <jrtc27@jrtc27.com>
-
- * sysdeps/powerpc/powerpc32/dl-machine.h (elf_machine_rela):
- Assign sym_map to be map for local symbols, as TLS relocations
- use sym_map to determine whether the symbol is defined and to
- extract the TLS information.
- * sysdeps/sparc/sparc32/dl-machine.h (elf_machine_rela): Likewise.
- * sysdeps/sparc/sparc64/dl-machine.h (elf_machine_rela): Likewise.
-
-2017-10-13 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
-
- [BZ #22189]
- * sysdeps/powerpc/fpu/math_private.h (math_opt_barrier):
- (math_force_eval): Add powerpc version.
-
- [BZ #22142]
- * stdio-common/tst-printf.c (fp_test): Add tests for DBL_MAX and
- -DBL_MAX.
- (do_test): Likewise.
- * stdio-common/tst-printf.sh: Likewise.
- * sysdeps/powerpc/powerpc64/power7/add_n.S: Invert the initial
- ifdef clause in order to set the carry bit right. Replace r0 by
- 0 without changing the behavior.
-
-2017-10-13 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/sparc/sparc32/fpu/s_fabsl.c: Include
- <libm-alias-ldouble.h>.
- (fabsl): Define using libm_alias_ldouble.
- * sysdeps/sparc/sparc64/fpu/s_fabsl.c: Include
- <libm-alias-ldouble.h>.
- (fabsl): Define using libm_alias_ldouble.
-
- * sysdeps/ieee754/ldbl-opt/w_lgamma_compatl.c [BUILD_LGAMMA]:
- Remove conditional code.
-
- * sysdeps/ieee754/ldbl-opt/s_clog10l.c (__clog10l__internal):
- Rename to __clog10_internal_l.
- (__clog10_internal_l): Define aliases using
- libm_alias_ldouble_other instead of using libm_alias_ldouble_other
- with __clog10.
-
-2017-10-13 Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>
-
- * benchtests/Makefile (bench-math): Add sinf, cosf and sincosf.
- * benchtests/sincosf-inputs: New file.
- * benchtests/cosf-inputs: New file.
- * benchtests/sinf-inputs: New file.
-
-2017-10-12 Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- * posix/tst-spawn.c (do_test): Wait for both children.
-
-2017-10-12 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #22284]
- * gmon/Makefile [$(have-fpie)$(build-shared) == yesyes] (tests,
- tests-pie): Add tst-gmon-pie.
- (CFLAGS-tst-gmon-pie.c): New.
- (CRT-tst-gmon-pie): Likewise.
- (tst-gmon-pie-ENV): Likewise.
- [$(have-fpie)$(build-shared) == yesyes] (tests-special): Likewise.
- ($(objpfx)tst-gmon-pie.out): Likewise.
- (clean-tst-gmon-pie-data): Likewise.
- ($(objpfx)tst-gmon-pie-gprof.out): Likewise.
- * gmon/gmon.c [PIC]: Include <link.h>.
- [PIC] (callback): New function.
- (write_hist): Add an argument for load address. Subtract load
- address from PCs.
- (write_call_graph): Likewise.
- (write_gmon): Call __dl_iterate_phdr to get load address, pass
- it to write_hist and write_call_graph.
- * gmon/tst-gmon-pie.c: New file.
-
-2017-10-11 Joseph Myers <joseph@codesourcery.com>
-
- * math/Makefile (test-types-basic): New variable.
- (test-types): Likewise.
- (libm-test-support): Use $(test-types) instead of $(types).
- (libm-tests-base-normal): Likewise.
- (libm-tests-base-finite): Likewise.
- (libm-tests-base-inline): Likewise.
- (generated): Likewise.
- ($(objpfx)libm-test-support-$(t).c): Likewise.
- (libm-tests-for-type iterator): Likewise.
- (libm-test-support iterator): Likewise.
- * math/libm-test-support.c (ulp_i_idx): Use ULP_I_IDX.
- (ulp_idx): Use ULP_IDX.
- * math/test-ldouble.h: Include <float.h>.
- (TYPE_STR): Define conditional on [LDBL_MANT_DIG == DBL_MANT_DIG].
- (ULP_IDX): New macro.
- (ULP_I_IDX): Likewise.
- * math/test-double.h (ULP_IDX): Likewise.
- (ULP_I_IDX): Likewise.
- * math/test-float.h (ULP_IDX): Likewise.
- (ULP_I_IDX): Likewise.
- * math/test-float128.h (ULP_IDX): Likewise.
- (ULP_I_IDX): Likewise.
-
-2017-10-11 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * sysdeps/unix/sysv/linux/aarch64/sysdep-cancel.h: Remove file.
- * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: Likewise.
- * sysdeps/unix/sysv/linux/arm/sysdep-cancel.h: Likewise.
- * sysdeps/unix/sysv/linux/hppa/sysdep-cancel.h: Likewise.
- * sysdeps/unix/sysv/linux/mips/sysdep-cancel.h: Likewise.
- * sysdeps/unix/sysv/linux/nios2/sysdep-cancel.h: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/sysdep-cancel.h: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: Likewise.
- * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sysdep-cancel.h: Likewise.
- * sysdeps/unix/sysv/linux/tile/sysdep-cancel.h: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h
- (SINGLE_THREAD_BY_GLOBAL): Define.
- * sysdeps/unix/sysv/linux/aarch64/sysdep.h (SINGLE_THREAD_BY_GLOBAL):
- Likewise.
- * sysdeps/unix/sysv/linux/alpha/sysdep.h (SINGLE_THREAD_BY_GLOBAL):
- Likewise.
- * sysdeps/unix/sysv/linux/arm/sysdep.h (SINGLE_THREAD_BY_GLOBAL):
- Likewise.
- * sysdeps/unix/sysv/linux/hppa/sysdep.h (SINGLE_THREAD_BY_GLOBAL):
- Likewise.
- * sysdeps/unix/sysv/linux/microblaze/sysdep.h
- (SINGLE_THREAD_BY_GLOBAL): Likewise.
- * sysdeps/unix/sysv/linux/x86_64/sysdep.h (SINGLE_THREAD_BY_GLOBAL):
- Likewise.
-
-2017-10-11 Andreas Schwab <schwab@suse.de>
-
- * nis/Makefile (aux): Remove.
- * nscd/Makefile (aux): Add nscd_hash.
- (nscd-modules): Likewise.
- ($(objpfx)nscd): Don't depend on libnsl.
- * nscd/nscd_hash.c: New file.
- * nscd/nscd_hash.h: Likewise.
- * nscd/cache.c: Include "nscd_hash.h" instead of <rpcsvc/nis.h>.
- (cache_search, cache_add): Use __nscd_hash instead of __nis_hash.
- * nscd/nscd_helper.c: Include <sys/param.h> and "nscd_hash.h"
- instead of <nis/rpcsvc/nis.h>.
- (__nscd_cache_search): Use __nscd_hash instead of __nis_hash.
-
-2017-10-11 Florian Weimer <fweimer@redhat.com>
-
- [BZ #22078]
- Avoid large NSS buffers with many addresses, aliases.
- * nss/nss_files/files-hosts.c (gethostbyname3_multi): Rewrite
- using dynarrays and struct alloc_buffer.
- * nss/Makefile (tests): Add tst-nss-files-hosts-multi.
- (tst-nss-files-hosts-multi): Link with -ldl.
- * nss/tst-nss-files-hosts-multi.c: New file.
-
-2017-10-11 Florian Weimer <fweimer@redhat.com>
-
- [BZ #18023]
- * nss/nss_files/files-hosts.c (gethostbyname3_multi): Use struct
- scratch_buffer. Eliminate gotos.
-
-2017-10-11 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/ieee754/ldbl-opt/s_clog10l.c: Use
- libm_alias_ldouble_other.
- * sysdeps/ieee754/ldbl-opt/w_exp10l_compat.c (weak_alias): Do not
- undefine and redefine.
- [LIBM_SVID_COMPAT && !LONG_DOUBLE_COMPAT (libm, GLIBC_2_1)]
- (exp10l): Do not define here.
- * sysdeps/ieee754/ldbl-opt/w_lgamma_compatl.c [BUILD_LGAMMA]
- (weak_alias): Undefine and redefine.
- [BUILD_LGAMMA]: Use libm_alias_ldouble_other.
- * sysdeps/ieee754/ldbl-opt/w_remainderl_compat.c
- [LIBM_SVID_COMPAT] (weak_alias): Undefine and redefine here.
- [LIBM_SVID_COMPAT]: Use libm_alias_ldouble_other.
-
- * soft-fp/fmadf4.c: Include <libm-alias-double.h>.
- [!__fma] (fma): Define using libm_alias_double.
- * soft-fp/fmasf4.c: Include <libm-alias-float.h>.
- [!__fmaf] (fmaf): Define using libm_alias_float.
- * soft-fp/fmatf4.c: Include <libm-alias-ldouble.h>.
- (fmal): Define using libm_alias_ldouble.
-
-2017-10-10 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/generic/libm-alias-double.h (libm_alias_double_other_r):
- New macro.
- (libm_alias_double_other): Likewise.
- (libm_alias_double_r): Use libm_alias_double_other_r.
- * sysdeps/generic/libm-alias-float.h (libm_alias_float_other_r):
- New macro.
- (libm_alias_float_other): Likewise.
- (libm_alias_float_r): Use libm_alias_float_other_r.
- * sysdeps/generic/libm-alias-float128.h
- (libm_alias_float128_other_r): New macro.
- (libm_alias_float128_other): Likewise.
- (libm_alias_float128_r): Use libm_alias_float128_other_r.
- * sysdeps/generic/libm-alias-ldouble.h
- (libm_alias_ldouble_other_r): New macro.
- (libm_alias_ldouble_other): Likewise.
- (libm_alias_ldouble_r): Use libm_alias_ldouble_other_r.
- * sysdeps/ieee754/ldbl-opt/libm-alias-double.h
- (libm_alias_double_other_r): New macro.
- (libm_alias_double_other): Likewise.
- (libm_alias_double_r): Use libm_alias_double_other_r.
- * sysdeps/ieee754/ldbl-opt/libm-alias-ldouble.h
- (libm_alias_ldouble_other_r): New macro.
- (libm_alias_ldouble_other): Likewise.
- (libm_alias_ldouble_r): Use libm_alias_ldouble_other_r.
- * math/w_lgamma_main.c: Include <libm-alias-double.h>.
- [!USE_AS_COMPAT]: Use libm_alias_double_other.
- * math/w_lgammaf_main.c: Include <libm-alias-float.h>.
- [!USE_AS_COMPAT]: Use libm_alias_float_other.
- * math/w_lgammal_main.c: Include <libm-alias-ldouble.h>.
- [!USE_AS_COMPAT]: Use libm_alias_ldouble_other.
- * math/w_exp2f.c: Use libm_alias_float_other.
- * math/w_expf.c: Likewise.
- * math/w_log2f.c: Likewise.
- * math/w_logf.c: Likewise.
- * math/w_powf.c: Likewise.
- * sysdeps/ieee754/flt-32/e_exp2f.c: Include <libm-alias-float.h>.
- [!__exp2f]: Use libm_alias_float_other.
- * sysdeps/ieee754/flt-32/e_expf.c: Include <libm-alias-float.h>.
- [!__expf]: Use libm_alias_float_other.
- * sysdeps/ieee754/flt-32/e_log2f.c: Include <libm-alias-float.h>.
- [!__log2f]: Use libm_alias_float_other.
- * sysdeps/ieee754/flt-32/e_logf.c: Include <libm-alias-float.h>.
- [!__logf]: Use libm_alias_float_other.
- * sysdeps/ieee754/flt-32/e_powf.c: Include <libm-alias-float.h>.
- [!__powf]: Use libm_alias_float_other.
-
-2017-10-10 Florian Weimer <fweimer@redhat.com>
-
- * nss/nss_files/files-hosts.c (gethostbyname3_multi): New
- function.
- (_nss_files_gethostbyname3_r): Call it.
-
-2017-10-09 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/generic/math-type-macros.h [!declare_mgen_alias]: Give
- error. Remove default definition of declare_mgen_alias.
- [!declare_mgen_alias_r]: Likewise.
- * sysdeps/generic/math-type-macros-double.h
- [!declare_mgen_alias_r] (declare_mgen_alias_r): New macro.
- * sysdeps/generic/math-type-macros-float.h [!declare_mgen_alias_r]
- (declare_mgen_alias_r): Likewise.
- * sysdeps/generic/math-type-macros-float128.h
- [!declare_mgen_alias_r] (declare_mgen_alias_r): Likewise.
- * sysdeps/generic/math-type-macros-ldouble.h
- [!declare_mgen_alias_r] (declare_mgen_alias_r): Likewise.
- * math/w_lgamma_r_template.c (declare_mgen_alias_r_x): Remove
- macro.
- (declare_mgen_alias_r_s): Likewise.
- (declare_mgen_alias_r): Likewise.
- * math/w_lgamma_r_compat.c: Include <libm-alias-double.h>.
- (lgamma_r): Define using libm_alias_double_r.
- * math/w_lgammaf_r_compat.c: Include <libm-alias-float.h>.
- (lgammaf_r): Define using libm_alias_float_r.
- * math/w_lgammal_r_compat.c: Include <libm-alias-ldouble.h>.
- (lgammal_r): Define using libm_alias_ldouble_r.
- * sysdeps/ieee754/ldbl-opt/w_lgamma_r_compat.c: Remove file.
- * sysdeps/ieee754/ldbl-opt/w_lgammal_r_compat.c: Likewise.
-
-2017-10-09 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * lib/glob.c (__glob_pattern_type): Remove now-spurious
- extern declaration.
-
-2017-10-09 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/ieee754/ldbl-opt/w_scalbln.c: Remove file.
-
-2017-10-09 Jonathan Wakely <jwakely@redhat.com>
-
- [BZ #21326]
- * include/features.h [__cplusplus >= 201703] (__USE_ISOC11): Define.
- [__cplusplus >= 201103] (__USE_ISOC99): Define.
- * math/Makefile (test-math-cxx11): New test.
- * math/test-math-cxx11.cc: New file.
-
-2017-10-08 Christian Brauner <christian.brauner@ubuntu.com>
-
- * login/openpty.c (openpty): Close slave pty file descriptor on error.
-
- * login/openpty.c (openpty): If defined, use the TIOCGPTPEER ioctl()
- call to allocate the slave pty file descriptor.
-
-2017-10-06 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/ieee754/ldbl-128/s_fma.c: Include <libm-alias-double.h>.
- [!__fma] (fma): Define using libm_alias_double.
- * sysdeps/ieee754/ldbl-96/s_fma.c: Include <libm-alias-double.h>.
- [!__fma] (fma): Define using libm_alias_double.
-
- * sysdeps/ieee754/float128/float128_private.h: Include
- <libm-alias-ldouble.h> and <libm-alias-float128.h>.
- (libm_alias_ldouble_r): Undefine and redefine.
- * sysdeps/ieee754/ldbl-128/s_asinhl.c: Include
- <libm-alias-ldouble.h>.
- (asinhl): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-128/s_atanl.c: Include
- <libm-alias-ldouble.h>.
- (atanl): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-128/s_cbrtl.c: Include
- <libm-alias-ldouble.h>.
- (cbrtl): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-128/s_ceill.c: Include
- <libm-alias-ldouble.h>.
- (ceill): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-128/s_copysignl.c: Include
- <libm-alias-ldouble.h>.
- (copysignl): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-128/s_cosl.c: Include
- <libm-alias-ldouble.h>.
- (cosl): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-128/s_erfl.c: Include
- <libm-alias-ldouble.h>.
- (erfl): Define using libm_alias_ldouble.
- (erfcl): Likewise.
- * sysdeps/ieee754/ldbl-128/s_expm1l.c: Include
- <libm-alias-ldouble.h>.
- (expm1l): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-128/s_fabsl.c: Include
- <libm-alias-ldouble.h>.
- (fabsl): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-128/s_floorl.c: Include
- <libm-alias-ldouble.h>.
- (floorl): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-128/s_fmal.c: Include
- <libm-alias-ldouble.h>.
- (fmal): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-128/s_frexpl.c: Include
- <libm-alias-ldouble.h>.
- (frexpl): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-128/s_fromfpl.c (fromfpl): Define using
- libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-128/s_fromfpl_main.c: Include
- <libm-alias-ldouble.h>.
- * sysdeps/ieee754/ldbl-128/s_fromfpxl.c (fromfpxl): Define using
- libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-128/s_getpayloadl.c: Include
- <libm-alias-ldouble.h>.
- (getpayloadl): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-128/s_llrintl.c: Include
- <libm-alias-ldouble.h>.
- (llrintl): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-128/s_llroundl.c: Include
- <libm-alias-ldouble.h>.
- (llroundl): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-128/s_logbl.c: Include
- <libm-alias-ldouble.h>.
- (logbl): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-128/s_lrintl.c: Include
- <libm-alias-ldouble.h>.
- (lrintl): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-128/s_lroundl.c: Include
- <libm-alias-ldouble.h>.
- (lroundl): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-128/s_modfl.c: Include
- <libm-alias-ldouble.h>.
- (modfl): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-128/s_nearbyintl.c: Include
- <libm-alias-ldouble.h>.
- (nearbyintl): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-128/s_nextafterl.c: Include
- <libm-alias-ldouble.h>.
- (nextafterl): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-128/s_nextupl.c: Include
- <libm-alias-ldouble.h>.
- (nextupl): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-128/s_remquol.c: Include
- <libm-alias-ldouble.h>.
- (remquol): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-128/s_rintl.c: Include
- <libm-alias-ldouble.h>.
- (rintl): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-128/s_roundevenl.c: Include
- <libm-alias-ldouble.h>.
- (roundevenl): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-128/s_roundl.c: Include
- <libm-alias-ldouble.h>.
- (roundl): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-128/s_setpayloadl.c (setpayloadl): Define
- using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-128/s_setpayloadl_main.c: Include
- <libm-alias-ldouble.h>.
- * sysdeps/ieee754/ldbl-128/s_setpayloadsigl.c (setpayloadsigl):
- Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-128/s_sincosl.c: Include
- <libm-alias-ldouble.h>.
- (sincosl): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-128/s_sinl.c: Include
- <libm-alias-ldouble.h>.
- (sinl): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-128/s_tanhl.c: Include
- <libm-alias-ldouble.h>.
- (tanhl): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-128/s_tanl.c: Include
- <libm-alias-ldouble.h>.
- (tanl): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-128/s_totalorderl.c: Include
- <libm-alias-ldouble.h>.
- (totalorderl): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-128/s_totalordermagl.c: Include
- <libm-alias-ldouble.h>.
- (totalordermagl): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-128/s_truncl.c: Include
- <libm-alias-ldouble.h>.
- (truncl): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-128/s_ufromfpl.c (ufromfpl): Define using
- libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-128/s_ufromfpxl.c (ufromfpxl): Define using
- libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-64-128/s_copysignl.c: Include
- <libm-alias-ldouble.h>.
- (weak_alias): Do not undefine and redefine.
- [IS_IN (libc)] (libm_alias_ldouble): Undefine and redefine.
- (copysignl): Define with long_double_symbol only if [IS_IN
- (libc)].
- * sysdeps/ieee754/ldbl-64-128/s_frexpl.c: Include
- <libm-alias-ldouble.h>.
- (weak_alias): Do not undefine and redefine.
- [IS_IN (libc)] (libm_alias_ldouble): Undefine and redefine.
- (frexpl): Define with long_double_symbol only if [IS_IN (libc)].
- * sysdeps/ieee754/ldbl-64-128/s_modfl.c: Include
- <libm-alias-ldouble.h>.
- (weak_alias): Do not undefine and redefine.
- [IS_IN (libc)] (libm_alias_ldouble): Undefine and redefine.
- (modfl): Define with long_double_symbol only if [IS_IN (libc)].
- * sysdeps/ieee754/ldbl-64-128/s_asinhl.c: Remove file.
- * sysdeps/ieee754/ldbl-64-128/s_atanl.c: Likewise.
- * sysdeps/ieee754/ldbl-64-128/s_cbrtl.c: Likewise.
- * sysdeps/ieee754/ldbl-64-128/s_ceill.c: Likewise.
- * sysdeps/ieee754/ldbl-64-128/s_cosl.c: Likewise.
- * sysdeps/ieee754/ldbl-64-128/s_erfl.c: Likewise.
- * sysdeps/ieee754/ldbl-64-128/s_expm1l.c: Likewise.
- * sysdeps/ieee754/ldbl-64-128/s_fabsl.c: Likewise.
- * sysdeps/ieee754/ldbl-64-128/s_floorl.c: Likewise.
- * sysdeps/ieee754/ldbl-64-128/s_fmal.c: Likewise.
- * sysdeps/ieee754/ldbl-64-128/s_llrintl.c: Likewise.
- * sysdeps/ieee754/ldbl-64-128/s_llroundl.c: Likewise.
- * sysdeps/ieee754/ldbl-64-128/s_logbl.c: Likewise.
- * sysdeps/ieee754/ldbl-64-128/s_lrintl.c: Likewise.
- * sysdeps/ieee754/ldbl-64-128/s_lroundl.c: Likewise.
- * sysdeps/ieee754/ldbl-64-128/s_nearbyintl.c: Likewise.
- * sysdeps/ieee754/ldbl-64-128/s_remquol.c: Likewise.
- * sysdeps/ieee754/ldbl-64-128/s_rintl.c: Likewise.
- * sysdeps/ieee754/ldbl-64-128/s_roundl.c: Likewise.
- * sysdeps/ieee754/ldbl-64-128/s_sincosl.c: Likewise.
- * sysdeps/ieee754/ldbl-64-128/s_sinl.c: Likewise.
- * sysdeps/ieee754/ldbl-64-128/s_tanhl.c: Likewise.
- * sysdeps/ieee754/ldbl-64-128/s_tanl.c: Likewise.
- * sysdeps/ieee754/ldbl-64-128/s_truncl.c: Likewise.
-
-2017-10-06 Carlos O'Donell <carlos@redhat.com>
-
- [BZ #22111]
- * malloc/malloc.c (tcache_shutting_down): Use bool type.
- (tcache_thread_freeres): Set tcache_shutting_down before
- freeing the tcache.
- * malloc/Makefile (tests): Add tst-malloc-tcache-leak.
- * malloc/tst-malloc-tcache-leak.c: New file.
-
-2017-10-06 Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>
-
- * sysdeps/powerpc/powerpc64/multiarch/memrchr-ppc64.c: Revert
- back to powerpc32 file.
- * sysdeps/powerpc/powerpc64/multiarch/memrchr.c
- (memrchr): Add __memrchr_power8 to ifunc list.
- * sysdeps/powerpc/powerpc64/power8/memrchr.S: Mask
- extra bytes for unaligned inputs.
-
-2017-10-06 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/ieee754/ldbl-64-128/e_ilogbl.c: Remove file.
- * sysdeps/ieee754/ldbl-64-128/s_log1pl.c: Likewise.
- * sysdeps/ieee754/ldbl-64-128/s_scalblnl.c: Likewise.
- * sysdeps/ieee754/ldbl-64-128/s_scalbnl.c: Likewise.
- * sysdeps/ieee754/ldbl-64-128/w_scalblnl.c: Likewise.
-
-2017-10-05 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/arm/libm-test-ulps: Update.
-
- * sysdeps/ieee754/ldbl-96/s_asinhl.c: Include
- <libm-alias-ldouble.h>.
- (asinhl): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-96/s_cbrtl.c: Include
- <libm-alias-ldouble.h>.
- (cbrtl): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-96/s_copysignl.c: Include
- <libm-alias-ldouble.h>.
- (copysignl): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-96/s_cosl.c: Include
- <libm-alias-ldouble.h>.
- (cosl): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-96/s_erfl.c: Include
- <libm-alias-ldouble.h>.
- (erfl): Define using libm_alias_ldouble.
- (erfcl): Likewise.
- * sysdeps/ieee754/ldbl-96/s_fmal.c: Include
- <libm-alias-ldouble.h>.
- (fmal): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-96/s_frexpl.c: Include
- <libm-alias-ldouble.h>.
- (frexpl): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-96/s_fromfpl.c (fromfpl): Define using
- libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-96/s_fromfpl_main.c: Include
- <libm-alias-ldouble.h>.
- * sysdeps/ieee754/ldbl-96/s_fromfpxl.c (fromfpxl): Define using
- libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-96/s_getpayloadl.c: Include
- <libm-alias-ldouble.h>.
- (getpayloadl): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-96/s_llrintl.c: Include
- <libm-alias-ldouble.h>.
- (llrintl): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-96/s_llroundl.c: Include
- <libm-alias-ldouble.h>.
- (llroundl): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-96/s_lrintl.c: Include
- <libm-alias-ldouble.h>.
- (lrintl): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-96/s_lroundl.c: Include
- <libm-alias-ldouble.h>.
- (lroundl): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-96/s_modfl.c: Include
- <libm-alias-ldouble.h>.
- (modfl): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-96/s_nextupl.c: Include
- <libm-alias-ldouble.h>.
- (nextupl): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-96/s_remquol.c: Include
- <libm-alias-ldouble.h>.
- (remquol): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-96/s_roundevenl.c: Include
- <libm-alias-ldouble.h>.
- (roundevenl): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-96/s_roundl.c: Include
- <libm-alias-ldouble.h>.
- (roundl): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-96/s_setpayloadl.c (setpayloadl): Define
- using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-96/s_setpayloadl_main.c: Include
- <libm-alias-ldouble.h>.
- * sysdeps/ieee754/ldbl-96/s_setpayloadsigl.c: Include
- <libm-alias-ldouble.h>.
- (setpayloadsigl): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-96/s_sincosl.c: Include
- <libm-alias-ldouble.h>.
- (sincosl): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-96/s_sinl.c: Include
- <libm-alias-ldouble.h>.
- (sinl): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-96/s_tanhl.c: Include
- <libm-alias-ldouble.h>.
- (tanhl): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-96/s_tanl.c: Include
- <libm-alias-ldouble.h>.
- (tanl): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-96/s_totalorderl.c: Include
- <libm-alias-ldouble.h>.
- (totalorderl): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-96/s_totalordermagl.c: Include
- <libm-alias-ldouble.h>.
- (totalordermagl): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-96/s_ufromfpl.c (ufromfpl): Define using
- libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-96/s_ufromfpxl.c (ufromfpxl): Define using
- libm_alias_ldouble.
-
-2017-10-05 Siddhesh Poyarekar <siddhesh@sourceware.org>
-
- * sysdeps/aarch64/multiarch/Makefile (sysdep_routines): Add
- memmove_falkor.
- * sysdeps/aarch64/multiarch/ifunc-impl-list.c
- (__libc_ifunc_impl_list): Likewise.
- * sysdeps/aarch64/multiarch/memmove.c: Likewise.
- * sysdeps/aarch64/multiarch/memmove_falkor.S: New file.
-
- * benchtests/bench-memmove-walk.c: New file.
- * benchtests/Makefile (string-benchset): Add it.
-
- * benchtests/bench-memset-walk.c: New file.
- * benchtests/Makefile (string-benchset): Add it.
-
- * benchtests/bench-memcpy-walk.c: New file.
- * benchtests/Makefile (string-benchset): Add it.
-
-2017-10-05 Florian Weimer <fweimer@redhat.com>
-
- nscd: Eliminate compilation time dependency in the build output.
- * nscd/nscd_stat.c (STATDATA_VERSION)
- (STATDATA_VERSION_SELINUX_FLAG, STATDATA_VERSION_FLAGS)
- (STATDATA_VERSION_FULL): New macro definitions.
- (compilation): Remove.
- (struct statdata): Adjust version member.
- (send_stats): Set version from STATDATA_VERSION_FULL.
- (receive_print_stats): Verify version against STATDATA_VERSION_FULL.
-
-2017-10-05 Joseph Myers <joseph@codesourcery.com>
-
- * configure.ac (--enable-add-ons): Remove option.
- (machine): Do not mention add-ons in comment.
- (LIBC_PRECONFIGURE): Likewise.
- (add_ons): Remove variable and sanity checks and logic to locate
- add-ons.
- (add_ons_automatic): Remove variable.
- (configured_add_ons): Likewise.
- (add_ons_sfx): Likewise.
- (add_ons_pfx): Likewise.
- (add_on_subdirs): Likewise.
- (sysnames_add_ons): Likewise. Remove loop over add-ons and
- consideration of add-ons in Implies handling.
- (sysdeps_add_ons): Likewise.
- * configure: Regenerated.
- * libidn/configure.ac: Remove.
- * libidn/configure: Likewise.
- * sysdeps/unix/inet/configure.ac: New file.
- * sysdeps/unix/inet/configure: New generated file.
- * sysdeps/unix/inet/Subdirs: Add libidn.
- * Makeconfig (sysdeps-srcdirs): Remove variable.
- (+sysdep_dirs): Do not include $(sysdeps-srcdirs).
- ($(common-objpfx)config.status): Do not depend on add-on files.
- ($(common-objpfx)shlib-versions.v.i): Do not mention add-ons in
- comment.
- (all-subdirs): Do not include $(add-on-subdirs).
- * Makefile (dist-prepare): Do not use $(sysdeps-add-ons).
- * config.make.in (add-ons): Remove variable.
- (add-on-subdirs): Likewise.
- (sysdeps-add-ons): Likewise.
- * manual/Makefile (add-chapters): Remove.
- ($(objpfx)texis): Do not depend on $(add-chapters).
- (nonexamples): Do not handle $(add-chapters).
- (examples): Do not handle $(add-ons).
- (chapters.% top-menu.%): Do not pass '$(add-chapters)' to
- libc-texinfo.sh.
- * manual/install.texi (Installation): Do not mention add-ons.
- (--enable-add-ons): Do not document configure option.
- * INSTALL: Regenerated.
- * manual/libc-texinfo.sh: Do not handle $2 add-ons argument.
- * manual/maint.texi (Hierarchy Conventions): Do not mention
- add-ons.
- * scripts/build-many-glibcs.py (Glibc.build_glibc): Do not use
- --enable-add-ons.
- * scripts/gen-sorted.awk: Do not handle Subdirs files from
- add-ons.
- * scripts/test-installation.pl: Do not handle glibc-compat add-on.
- * sysdeps/nptl/Makeconfig: Do not mention add-ons in comment.
-
-2017-10-05 Andreas Schwab <schwab@suse.de>
-
- [BZ #15142]
- * libio/genops.c (_IO_list_all_stamp): Delete. All uses removed.
- (_IO_flush_all_lockp): Always lock list_all_lock.
- (_IO_flush_all_linebuffered): Likewise.
- (_IO_unbuffer_all): Likewise.
-
-2017-10-05 Florian Weimer <fweimer@redhat.com>
-
- [BZ #15436]
- Do not flush stdio streams on abort.
- * stdlib/abort.c (fflush): Remove macro definition.
- (abort): Remove stages related to stdio flushing.
-
-2017-10-05 Florian Weimer <fweimer@redhat.com>
-
- * gmon/Makefile (CFLAGS-tst-gmon.c): Add -fno-omit-frame-pointer.
-
-2017-10-05 Stefan Liebler <stli@linux.vnet.ibm.com>
-
- * sysdeps/s390/fpu/libm-test-ulps: Regenerated.
-
-2017-10-05 Florian Weimer <fweimer@redhat.com>
-
- * support/support_format_hostent.c (support_format_hostent): Add
- more error information for NETDB_INTERNAL.
-
-2017-10-04 H.J. Lu <hongjiu.lu@intel.com>
-
- * config.h.in (NO_HIDDEN_EXTERN_FUNC_IN_PIE): New.
- * include/libc-symbols.h (__hidden_proto_hiddenattr): Add check
- for PIC and NO_HIDDEN_EXTERN_FUNC_IN_PIE.
- * sysdeps/i386/configure.ac (NO_HIDDEN_EXTERN_FUNC_IN_PIE): New
- AC_DEFINE if multi-arch is enabled.
- * sysdeps/i386/configure: Regenerated.
-
-2017-10-04 H.J. Lu <hongjiu.lu@intel.com>
-
- * Makeconfig (+link-static-before-libc): Use
- $(DEFAULT-LDFLAGS-$(@F)).
- * elf/Makefile (CRT-tst-tls1-static-non-pie): New.
- (LDFLAGS-tst-tls1-static-non-pie): Renamed to ...
- (DEFAULT-LDFLAGS-tst-tls1-static-non-pie): This.
-
-2017-10-04 H.J. Lu <hongjiu.lu@intel.com>
-
- * elf/Makefile (tests): Add tst-main1.
- (modules-names): Add tst-main1mod.
- ($(objpfx)tst-main1): New.
- (CRT-tst-main1): Likewise.
- (LDFLAGS-tst-main1): Likewise.
- (LDLIBS-tst-main1): Likewise.
- (tst-main1mod.so-no-z-defs): Likewise.
- * elf/tst-main1.c: New file.
- * elf/tst-main1mod.c: Likewise.
-
-2017-10-04 H.J. Lu <hongjiu.lu@intel.com>
-
- * math/test-math-iscanonical.cc (do_test): Return errors != 0.
-
-2017-10-04 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/ieee754/dbl-64/s_fma.c: Include <libm-alias-double.h>.
- (fma): Define using libm_alias_double.
- * sysdeps/ieee754/ldbl-opt/s_fma.c: Remove file.
- * sysdeps/sparc/sparc32/fpu/s_fma.c: Do not include
- <math_ldbl_opt.h>.
- (fmal): Do not define as compat symbol here.
- * sysdeps/alpha/fpu/s_fma.c: New file.
-
-2017-10-04 Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- * sysdeps/aarch64/dl-machine.h (elf_machine_rela): Expand MIN.
-
-2017-10-04 Joseph Myers <joseph@codesourcery.com>
-
- [BZ #22229]
- * sysdeps/sparc/sparc32/fpu/s_copysign.S: Include
- <math_ldbl_opt.h>
- (copysignl): Define as compat symbol at version GLIBC_2_0 for libm
- and libc.
- * sysdeps/sparc/sparc32/fpu/s_fabs.S: Include <math_ldbl_opt.h>.
- (fabsl): Define as compat symbol at version GLIBC_2_0 for libm.
- * sysdeps/sparc/sparc32/fpu/s_fma.c: Include <math_ldbl_opt.h>.
- (fmal): Define as compat symbol at version GLIBC_2_1 for libm.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysign.S:
- Include <math_ldbl_opt.h>
- (copysignl): Define as compat symbol at version GLIBC_2_0 for libm
- and libc.
- (compat_symbol): Undefine and redefine.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabs.S: Include
- <math_ldbl_opt.h>
- (fabsl): Define as compat symbol at version GLIBC_2_0 for libm.
- (compat_symbol): Undefine and redefine.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fma.c
- [HAVE_AS_VIS3_SUPPORT]: Include <math_ldbl_opt.h>.
- [HAVE_AS_VIS3_SUPPORT] (fmal): Define as compat symbol at version
- GLIBC_2_1 for libm.
- * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Add
- GLIBC_2.0 copysignl symbol.
- * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Add
- GLIBC_2.0 copysignl and fabsl and GLIBC_2.1 fmal symbols.
-
- * sysdeps/alpha/fpu/s_nearbyint.c: Remove file.
-
-2017-10-04 Florian Weimer <fweimer@redhat.com>
-
- * scripts/check-local-headers.sh: Ignore nspr4 header file
- directory in addition to nspr.
-
-2017-10-04 Guido Trentalancia <guido@trentalancia.net>
-
- [BZ #17956]
- * configure.ac (--enable-nss-crypt): Use NSPR include directory.
- * configure: Regenerate.
- * crypt/Makefile (nss-cpp-flags): New variable.
- (CPPFLAGS-sha256-crypt.c, CPPFLAGS-sha512-crypt.c)
- (CPPFLAGS-md5-crypt.c): Use it.
- * scripts/check-local-headers.sh: Ignore nspr header file
- directory.
-
-2017-10-04 Andreas Schwab <schwab@suse.de>
-
- * nis/Makefile (services): Remove compat.
- (libnss_compat-routines, libnss_compat-inhibit-o): Don't define.
- ($(objpfx)libnss_compat.so): Remove rule.
- * nis/Versions (libnss_compat): Remove.
- * nss/Makefile (services): Add compat.
- (libnss_compat-routines, libnss_compat-inhibit-o): Define.
- * nss/Versions (libnss_compat): Define.
- * nss/nss_compat/compat-grp.c: Moved here from nis/nss_compat.
- Don't include <rpc/types.h>. Replace bool_t by bool.
- * nss/nss_compat/compat-initgroups.c: Likewise.
- * nss/nss_compat/compat-pwd.c: Likewise. Include "nisdomain.h"
- instead of <rpcsrv/ypclnt.h>.
- (getpwent_next_nss_netgr): Use __nss_get_default_domain instead of
- yp_get_default_domain.
- * nss/nss_compat/compat-pwd.c: Likewise.
- (getspent_next_nss_netgr): Use __nss_get_default_domain instead of
- yp_get_default_domain.
- * nss/nss_compat/nisdomain.c: New file.
- * nss/nss_compat/nisdomain.h: Likewise.
-
-2017-10-04 Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- [BZ #22244]
- * sysdeps/ieee754/dbl-64/e_jn.c (__ieee754_yn): Fix x == 0 case.
- * sysdeps/ieee754/flt-32/e_jnf.c (__ieee754_ynf): Likewise.
-
-2017-10-04 Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- [BZ #22243]
- * sysdeps/ieee754/dbl-64/wordsize-64/e_log10.c (__ieee754_log10): Use fabs.
- * sysdeps/ieee754/dbl-64/wordsize-64/e_log2.c (__ieee754_log2): Likewise.
-
-2017-10-03 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/i386/start.S: Replace "leal main@GOT(%ebx), %eax" with
- "movl main@GOTOFF(%ebx), %eax".
-
-2017-10-03 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/i386/dl-machine.h (elf_machine_load_address): Don't
- allow undefined _DYNAMIC in PIE libc.a.
- * sysdeps/x86_64/dl-machine.h (elf_machine_load_address):
- Likewse.
-
-2017-10-03 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/mips/dl-machine.h (elf_machine_load_address): Don't
- check _DYNAMIC.
-
-2017-10-03 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/arm/dl-machine.h (elf_machine_load_address): Don't
- check _DYNAMIC.
-
-2017-10-03 H.J. Lu <hongjiu.lu@intel.com>
-
- * math/test-math-iscanonical.cc (error): Replace bool with int.
-
-2017-10-03 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/ieee754/dbl-64/s_modf.c: Include <libm-alias-double.h>.
- (modf): Define using libm_alias_double, only if [!__modf].
- * sysdeps/ieee754/dbl-64/wordsize-64/s_modf.c: Include
- <libm-alias-double.h>.
- (modf): Define using libm_alias_double, only if [!__modf].
- * sysdeps/ieee754/ldbl-opt/s_modf.c (modfl): Only define libc
- compat symbol here.
- * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf-ppc32.c
- (weak_alias): Do not undefine and redefine.
- (strong_alias): Likewise.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_modf-ppc64.c
- (weak_alias): Likewise.
- (strong_alias): Likewise.
-
- * sysdeps/ieee754/dbl-64/s_logb.c: Include <libm-alias-double.h>.
- (logb): Define using libm_alias_double, only if [!__logb].
- * sysdeps/ieee754/dbl-64/wordsize-64/s_logb.c: Include
- <libm-alias-double.h>.
- (logb): Define using libm_alias_double, only if [!__logb].
- * sysdeps/ieee754/ldbl-opt/s_logb.c: Remove file.
- * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logb-ppc32.c
- (weak_alias): Do not undefine and redefine.
- (strong_alias): Likewise.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_logb-ppc64.c
- (weak_alias): Likewise.
- (strong_alias): Likewise.
-
-2017-10-03 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/unix/sysv/linux/tile/sysdep.h (SYSCALL_ERROR_NAME):
- Check SHARED instead PIC.
-
-2017-10-03 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/ieee754/dbl-64/s_fmaf.c: Include <libm-alias-float.h>.
- [!__fmaf] (fmaf): Define using libm_alias_float.
-
- * sysdeps/ieee754/dbl-64/s_frexp.c: Include <libm-alias-double.h>.
- (frexp): Define using libm_alias_double.
- * sysdeps/ieee754/dbl-64/wordsize-64/s_frexp.c: Include
- <libm-alias-double.h>.
- (frexp): Define using libm_alias_double.
- * sysdeps/ieee754/ldbl-opt/s_frexp.c (frexpl): Only define libc
- compat symbol here.
-
-2017-10-03 Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
-
- [BZ #22235]
- * math/math.h: Trivial fix for unbalanced parentheses in comment.
- * math/Makefile [CXX] (tests): Add test-math-iscanonical.cc.
- (CFLAGS-test-math-iscanonical.cc): New variable.
- * math/test-math-iscanonical.cc: New file.
- * sysdeps/ieee754/ldbl-96/bits/iscanonical.h (iscanonical):
- Provide a C++ implementation based on function overloading,
- rather than using __MATH_TG, which uses C-only builtins.
- * sysdeps/ieee754/ldbl-128ibm/bits/iscanonical.h (iscanonical):
- Likewise.
- * sysdeps/powerpc/powerpc64le/Makefile
- (CFLAGS-test-math-iscanonical.cc): New variable.
-
-2017-10-03 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/ieee754/dbl-64/s_ceil.c: Include <libm-alias-double.h>.
- (ceil): Define using libm_alias_double.
- * sysdeps/ieee754/dbl-64/s_floor.c: Include <libm-alias-double.h>.
- (floor): Define using libm_alias_double.
- * sysdeps/ieee754/dbl-64/s_llround.c: Include
- <libm-alias-double.h>.
- (llround): Define using libm_alias_double.
- * sysdeps/ieee754/dbl-64/s_lround.c: Include
- <libm-alias-double.h>.
- (lround): Define using libm_alias_double.
- * sysdeps/ieee754/dbl-64/s_nearbyint.c: Include
- <libm-alias-double.h>.
- (nearbyint): Define using libm_alias_double.
- * sysdeps/ieee754/dbl-64/s_remquo.c: Include
- <libm-alias-double.h>.
- (remquo): Define using libm_alias_double.
- * sysdeps/ieee754/dbl-64/s_rint.c: Include <libm-alias-double.h>.
- (rint): Define using libm_alias_double.
- * sysdeps/ieee754/dbl-64/s_round.c: Include <libm-alias-double.h>.
- (round): Define using libm_alias_double.
- * sysdeps/ieee754/dbl-64/s_trunc.c: Include <libm-alias-double.h>.
- (trunc): Define using libm_alias_double.
- * sysdeps/ieee754/dbl-64/wordsize-64/s_ceil.c: Include
- <libm-alias-double.h>.
- (ceil): Define using libm_alias_double.
- * sysdeps/ieee754/dbl-64/wordsize-64/s_floor.c: Include
- <libm-alias-double.h>.
- (floor): Define using libm_alias_double.
- * sysdeps/ieee754/dbl-64/wordsize-64/s_llround.c: Include
- <libm-alias-double.h>.
- (llround): Define using libm_alias_double.
- [_LP64] (lround): Likewise.
- * sysdeps/ieee754/dbl-64/wordsize-64/s_lround.c: Include
- <libm-alias-double.h>.
- [!_LP64] (lround): Define using libm_alias_double.
- * sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c: Include
- <libm-alias-double.h>.
- (nearbyint): Define using libm_alias_double.
- * sysdeps/ieee754/dbl-64/wordsize-64/s_remquo.c: Include
- <libm-alias-double.h>.
- (remquo): Define using libm_alias_double.
- * sysdeps/ieee754/dbl-64/wordsize-64/s_rint.c: Include
- <libm-alias-double.h>.
- (rint): Define using libm_alias_double.
- * sysdeps/ieee754/dbl-64/wordsize-64/s_round.c: Include
- <libm-alias-double.h>.
- (round): Define using libm_alias_double.
- * sysdeps/ieee754/dbl-64/wordsize-64/s_trunc.c: Include
- <libm-alias-double.h>.
- (trunc): Define using libm_alias_double.
- * sysdeps/ieee754/ldbl-opt/s_ceil.c: Remove file.
- * sysdeps/ieee754/ldbl-opt/s_floor.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/s_llround.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/s_lround.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/s_nearbyint.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/s_remquo.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/s_rint.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/s_round.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/s_trunc.c: Likewise.
-
-2017-10-03 Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- * math/w_remainder.c: New file.
- * math/w_remainderf.c: New file.
- * math/w_remainderl.c: New file.
-
-2017-10-03 H.J. Lu <hongjiu.lu@intel.com>
-
- * elf/rtld.c (BOOTSTRAP_MAP): New.
- (RESOLVE_MAP): Replace (&bootstrap_map) with BOOTSTRAP_MAP.
- * sysdeps/hppa/dl-machine.h (ELF_MACHINE_BEFORE_RTLD_RELOC):
- Likewise.
- * sysdeps/ia64/dl-machine.h (ELF_MACHINE_BEFORE_RTLD_RELOC):
- Likewise.
- * sysdeps/mips/dl-machine.h (ELF_MACHINE_BEFORE_RTLD_RELOC):
- Likewise.
-
-2017-10-03 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * include/libc-symbols.h [NO_RTLD_HIDDEN] (rtld_hidden_proto,
- rtld_hidden_tls_proto, rtld_hidden_def, rtld_hidden_weak,
- rtld_hidden_rtld_hidden_ver, data_def, rtld_hidden_data_weak,
- rtld_hidden_data_ver): Define to empty.
- * include/assert.h [IS_IN(rtld) && NO_RTLD_HIDDEN] (__assert_fail,
- __assert_perror_fail): Likewise.
- * include/dirent.h [IS_IN(rtld) && NO_RTLD_HIDDEN]
- (__rewinddir): Likewise.
- * include/libc-internal.h [IS_IN(rtld) && NO_RTLD_HIDDEN]
- (__profile_frequency): Likewise.
- * include/setjmp.h (__sigsetjmp): Likewise.
- * include/signal.h [IS_IN(rtld) && NO_RTLD_HIDDEN] (__sigaction,
- __libc_sigaction): Likewise.
- * include/stdlib.h [NO_RTLD_HIDDEN] (unsetenv, __strtoul_internal): Do
- not set hidden attribute.
- * include/string.h [IS_IN(rtld) && NO_RTLD_HIDDEN] (__stpcpy, __strdup,
- __strerror_t, __strsep_g, memchr, memcmp, memcpy, memmove, memset,
- rawmemchr, stpcpy, strchr, strcmp, strlen, strnlen, strsep): Likewise.
- * include/sys/stat.h [IS_IN(rtld) && NO_RTLD_HIDDEN] (__fxstat,
- __fxstat64, __lxstat, __lxstat64, __xstat, __xstat64,
- __fxstatat64): Likewise.
- * include/sys/utsname.h [IS_IN(rtld) && NO_RTLD_HIDDEN]
- (__uname): Likewise.
- * include/sysdeps/generic/_itoa.h [IS_IN(rtld) && NO_RTLD_HIDDEN]
- (_itoa_upper_digits, _itoa_lower_digits): Likewise.
- * sysdeps/mach/hurd/configure.ac (NO_HIDDEN): Do not set.
- (NO_RTLD_HIDDEN): Set.
- * sysdeps/mach/hurd/configure: Refresh.
- * config.h.in: Refresh.
-
-2017-10-02 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/ieee754/dbl-64/s_atan.c: Include <libm-alias-double.h>.
- (atan): Define using libm_alias_double.
- * sysdeps/ieee754/dbl-64/s_tan.c: Include <libm-alias-double.h>.
- (tan): Define using libm_alias_double.
- * sysdeps/ieee754/ldbl-opt/s_atan.c: Remove file.
- * sysdeps/ieee754/ldbl-opt/s_tan.c: Likewise.
-
- * sysdeps/ieee754/dbl-64/s_atan.c (atan): Rename to __atan and
- define as weak alias of __atan. Do not define any aliases if
- [__atan].
- [NO_LONG_DOUBLE] (__atanl): Define as strong alias of __atan.
- [NO_LONG_DOUBLE] (atanl): Define as weak alias of __atanl.
- * sysdeps/ieee754/dbl-64/s_tan.c (tan): Rename to __tan and define
- as weak alias of __tan. Do not define any aliases if [__tan].
- [NO_LONG_DOUBLE] (__tanl): Define as strong alias of __tan.
- [NO_LONG_DOUBLE] (tanl): Define as weak alias of __tanl.
- * sysdeps/x86_64/fpu/multiarch/s_atan-avx.c (atan): Rename to
- __atan.
- * sysdeps/x86_64/fpu/multiarch/s_atan-fma.c (atan): Likewise.
- * sysdeps/x86_64/fpu/multiarch/s_atan-fma4.c (atan): Likewise.
- * sysdeps/x86_64/fpu/multiarch/s_atan.c (atan): Rename to __atan
- and define as weak alias of __atan.
- * sysdeps/x86_64/fpu/multiarch/s_tan-avx.c (tan): Rename to
- __atan.
- * sysdeps/x86_64/fpu/multiarch/s_tan-fma.c (tan): Likewise.
- * sysdeps/x86_64/fpu/multiarch/s_tan-fma4.c (tan): Likewise.
- * sysdeps/x86_64/fpu/multiarch/s_tan.c (tan): Rename to __tan and
- define as weak alias of __tan.
-
-2017-10-02 Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- * math/w_lgamma.c: New file.
- * math/w_lgammaf.c: New file.
- * math/w_lgammal.c: New file.
-
-2017-10-02 Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- * sysdeps/ieee754/flt-32/e_log2f.c (__log2f): Define without wrapper.
- * sysdeps/ieee754/flt-32/e_logf.c (__logf): Likewise
- * sysdeps/ieee754/flt-32/e_powf.c (__powf): Likewise
- * sysdeps/ieee754/flt-32/w_log2f.c: New file.
- * sysdeps/ieee754/flt-32/w_logf.c: New file.
- * sysdeps/ieee754/flt-32/w_powf.c: New file.
- * sysdeps/i386/fpu/w_log2f.c: New file.
- * sysdeps/i386/fpu/w_logf.c: New file.
- * sysdeps/i386/fpu/w_powf.c: New file.
- * sysdeps/m68k/m680x0/fpu/w_log2f.c: New file.
- * sysdeps/m68k/m680x0/fpu/w_logf.c: New file.
- * sysdeps/m68k/m680x0/fpu/w_powf.c: New file.
-
-2017-10-02 Szabolcs Nagy <szabolcs.nagy@arm.com>
- H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/ieee754/flt-32/e_exp2f.c (__exp2f): Define without wrapper.
- * sysdeps/ieee754/flt-32/e_expf.c (__expf): Likewise
- * sysdeps/ieee754/flt-32/w_exp2f.c: New file.
- * sysdeps/ieee754/flt-32/w_expf.c: New file.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf-ppc64.c: Update for
- the new expf code.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/w_expf.c: New file.
- * sysdeps/powerpc/powerpc64/power8/fpu/w_expf.c: New file.
- * sysdeps/m68k/m680x0/fpu/w_exp2f.c: New file.
- * sysdeps/m68k/m680x0/fpu/w_expf.c: New file.
- * sysdeps/i386/fpu/w_exp2f.c: New file.
- * sysdeps/i386/fpu/w_expf.c: New file.
- * sysdeps/i386/i686/fpu/multiarch/w_expf.c: New file.
- * sysdeps/x86_64/fpu/w_expf.c: New file.
-
-2017-10-02 Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- * math/Versions (logf): New libm symbol at GLIBC_2.27.
- (log2f): Likewise.
- (powf): Likewise.
- * math/w_log2f.c: New file.
- * math/w_logf.c: New file.
- * math/w_powf.c: New file.
- * math/w_log2f_compat.c (__log2f_compat): For compat symbol only.
- * math/w_logf_compat.c (__logf_compat): Likewise.
- * math/w_powf_compat.c (__powf_compat): Likewise.
- * sysdeps/ia64/fpu/e_log2f.S: Add versioned symbols.
- * sysdeps/ia64/fpu/e_logf.S: Likewise.
- * sysdeps/ia64/fpu/e_powf.S: Likewise.
- * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Update.
- * sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/arm/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/libm-le.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/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/tile/tilegx/tilegx32/libm.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
-
-2017-10-02 Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>
-
- * sysdeps/powerpc/powerpc64/multiarch/Makefile
- (sysdep_routines): Add memrchr_power8.
- * sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c
- (memrchr): Add __memrchr_power8 to list of memrchr functions.
- * sysdeps/powerpc/powerpc64/multiarch/memrchr-power8.S:
- New file.
- * sysdeps/powerpc/powerpc64/multiarch/memrchr.c
- (memrchr): Add __memrchr_power8 to ifunc list.
- * sysdeps/powerpc/powerpc64/power8/memrchr.S: New file.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * sysdeps/unix/sysv/linux/posix_fadvise64.c
- (__posix_fadvise64_l64): Add Add libc_hidden_proto and
- libc_hidden_def.
- * sysdeps/unix/sysv/linux/posix_fallocate64.c
- (__posix_fallocate64_l64): Likewise.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * sysdeps/unix/sysv/linux/sched_setaffinity.c
- (__sched_setaffinity_new): Add libc_hidden_proto and
- libc_hidden_def.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * include/glob.h (__glob64): Add libc_hidden_proto.
- * sysdeps/unix/sysv/linux/glob64.c (__glob64): Add
- libc_hidden_def.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * sysdeps/unix/sysv/linux/getrlimit64.c (__new_getrlimit): Add
- attribute_hidden.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * stdlib/exit.h (__new_exitfn): Add attribute_hidden.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * mon/gmon.c (__moncontrol): Add libc_hidden_proto and
- libc_hidden_def.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * csu/version.c (__libc_print_version): Add attribute_hidden.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * include/libc-internal.h (__init_misc): Add attribute_hidden.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * include/fpu_control.h (__setfpucw): Add attribute_hidden.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * nscd/nscd_helper.c (__nis_hash): New prototype.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * include/termios.h (__tcgetattr): Add libc_hidden_proto.
- * sysdeps/unix/bsd/tcgetattr.c (__tcgetattr): Add
- libc_hidden_def.
- * sysdeps/unix/sysv/linux/tcgetattr.c (__tcgetattr): Likewise.
- * termios/tcgetattr.c (__tcgetattr): Likewise.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * include/sys/resource.h (__setrlimit): Add libc_hidden_proto.
- * resource/setrlimit.c (__setrlimit): Add libc_hidden_def.
- * sysdeps/mach/hurd/setrlimit.c (__setrlimit): Likewise.
- * sysdeps/unix/sysv/linux/setrlimit.c (__setrlimit): Likewise.
- * sysdeps/unix/sysv/linux/setrlimit64.c (__GI___setrlimit): New.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * include/monetary.h (__vstrfmon_l): Add attribute_hidden.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * include/sched.h (__sched_setparam): Add libc_hidden_proto.
- * posix/sched_setp.c (__sched_setparam): Add libc_hidden_def.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * intl/hash-string.h (__hash_string): Add attribute_hidden.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * include/mntent.h (__hasmntopt): Add libc_hidden_proto.
- * misc/mntent_r.c (__hasmntopt): Add libc_hidden_def.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * include/ifreq.h: New file.
- * sysdeps/generic/ifreq.h (__if_nextreq): Removed.
- (__ifreq): Likewise.
- * sysdeps/mach/hurd/ifreq.h (__if_nextreq): Removed.
- (__ifreq): Likewise.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * include/idna.h: New file.
- * inet/getnameinfo.c: Include <idna.h> instead of
- <libidn/idna.h>.
- (__idna_to_unicode_lzlz): Removed.
- * sysdeps/posix/getaddrinfo.c: Include <idna.h> instead of
- <libidn/idna.h>.
- (__idna_to_ascii_lz): Removed.
- (__idna_to_unicode_lzlz): Likewise.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * include/plural-exp.h: New file.
- * intl/plural-exp.c: Include <plural-exp.h> instead of
- "plural-exp.h".
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * sysdeps/unix/sysv/linux/getsourcefilter.c: Include
- "getsourcefilter.h".
- * sysdeps/unix/sysv/linux/getsourcefilter.h: New file.
- * sysdeps/unix/sysv/linux/setsourcefilter.c: Include
- "getsourcefilter.h".
- (__get_sol): Removed.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * elf/dl-iteratephdr.c (hidden_proto (__dl_iterate_phdr)): Moved
- to ...
- * include/link.h (hidden_proto (__dl_iterate_phdr)): Here.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * sysdeps/unix/sysv/linux/getpt.c (__bsd_getpt): Add
- attribute_hidden.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * libio/iolibio.h (__fopen_maybe_mmap): Add attribute_hidden.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * include/search.h (__tdestroy): Add libc_hidden_proto.
- * misc/tsearch.c (__tdestroy): Add libc_hidden_def.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * include/assert.h (__assert_fail_base): Add attribute_hidden.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * sysdeps/unix/sysv/linux/include/sys/sysinfo.h (__sysinfo): Add
- attribute_hidden.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * include/signal.h (__kill): Add libc_hidden_proto.
- (__sigblock): Likewise.
- (__sigprocmask): Likewise.
- (__sigaltstack): Likewise.
- * signal/kill.c (__kill): Add libc_hidden_def.
- * signal/sigblock.c (__sigblock): Likewise.
- * signal/sigprocmask.c (__sigprocmask): Likewise.
- * sysdeps/mach/hurd/kill.c (__kill): Likewise.
- * sysdeps/mach/hurd/sigaltstack.c (__sigaltstack): Likewise.
- * sysdeps/mach/hurd/sigprocmask.c (__sigprocmask): Likewise.
- * sysdeps/posix/sigblock.c (__sigblock): Likewise.
- * sysdeps/unix/sysv/linux/alpha/sigprocmask.c (__sigprocmask):
- Likewise.
- * sysdeps/unix/sysv/linux/ia64/sigprocmask.c (__sigprocmask):
- Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-64/sigprocmask.c
- (__sigprocmask): Likewise.
- * sysdeps/unix/sysv/linux/sigprocmask.c (__sigprocmask):
- Likewise.
- * /sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c
- (__sigprocmask): Likewise.
- * sysdeps/unix/sysv/linux/x86_64/sigprocmask.c (__sigprocmask):
- Likewise.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * include/string.h (__strsep): Add libc_hidden_proto.
- * string/strsep.c (__strsep): Add libc_hidden_def.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * posix/spawn_int.h (__posix_spawn_file_actions_realloc): Add
- attribute_hidden.
- (__spawni): Likewise.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * include/sys/mman.h (__mremap): Add libc_hidden_proto.
- * sysdeps/unix/sysv/linux/m68k/mremap.S (__mremap): Add
- libc_hidden_def.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * include/malloc.h (__malloc_check_init): Add attribute_hidden.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * include/sys/ioctl.h (__ioctl): Add libc_hidden_proto.
- * misc/ioctl.c (__ioctl): Add libc_hidden_def.
- * sysdeps/mach/hurd/ioctl.c (__ioctl): Likewise.
- * sysdeps/unix/sysv/linux/aarch64/ioctl.S (__ioctl): Likewise.
- * sysdeps/unix/sysv/linux/mips/mips64/n64/ioctl.S (__ioctl):
- Likewise.
- * sysdeps/unix/sysv/linux/powerpc/ioctl.c (__ioctl): Likewise.
- * sysdeps/unix/sysv/linux/tile/tilegx/ioctl.S (__ioctl): Likewise.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * intl/gettextP.h (__dcngettext): Add attribute_hidden.
- (__dcigettext): Likewise.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * include/sys/sysinfo.h (__get_nprocs_conf): Add
- libc_hidden_proto.
- (__get_nprocs): Likewise.
- (__get_phys_pages): Likewise.
- (__get_avphys_pages): Likewise.
- (__get_child_max): Add attribute_hidden.
- * misc/getsysstats.c (__get_nprocs_conf): Add libc_hidden_def.
- (__get_nprocs): Likewise.
- (__get_phys_pages): Likewise.
- (__get_avphys_pages): Likewise.
- * sysdeps/mach/getsysstats.c (__get_nprocs_conf): Add
- libc_hidden_def.
- (__get_nprocs): Likewise.
- (__get_phys_pages): Likewise.
- (__get_avphys_pages): Likewise.
- * sysdeps/unix/sysv/linux/getsysstats.c (__get_nprocs): Add
- libc_hidden_def.
- (__get_nprocs_conf): Likewise.
- (__get_phys_pages): Likewise.
- (__get_avphys_pages): Likewise.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * sysdeps/unix/sysv/linux/netlinkaccess.h (__netlink_open): Add
- attribute_hidden.
- (__netlink_close): Likewise.
- (__netlink_free_handle): Likewise.
- (__netlink_request): Likewise.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * include/rpc/rpc.h (__rpc_thread_variables): Add
- attribute_hidden.
- (__rpc_thread_svc_cleanup): Likewise.
- (__rpc_thread_clnt_cleanup): Likewise.
- (__rpc_thread_key_cleanup): Likewise.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * include/sys/uio.h (__readv): Add libc_hidden_proto.
- (__writev): Likewise.
- * misc/readv.c (__readv): Add libc_hidden_def.
- * misc/writev.c (__writev): Likewise.
- * sysdeps/posix/readv.c (__readv): Likewise.
- * sysdeps/posix/writev.c (__writev): Likewise.
- * sysdeps/unix/sysv/linux/readv.c: Include <sys/uio.h>.
- (__readv): Likewise.
- * sysdeps/unix/sysv/linux/writev.c: Include <sys/uio.h>.
- (__writev): Likewise.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * include/regex.h (__re_compile_fastmap): Add attribute_hidden.
- (__regcomp): Add libc_hidden_proto.
- (__regexec): Likewise.
- (__regfree): Likewise.
- * posix/regcomp.c (__regcomp): Add libc_hidden_def.
- (__regfree): Likewise.
- * posix/regexec.c (__regexec): Likewise.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * include/utmp.h (__updwtmp): Add libc_hidden_proto.
- (__getutent): Likewise.
- (__getutid): Likewise.
- (__getutline): Likewise.
- (__pututline): Likewise.
- (__getutent_r): Likewise.
- (__getutid_r): Likewise.
- (__getutline_r): Likewise.
- (__utmpname): Add attribute_hidden.
- (__setutent): Likewise.
- (__endutent): Likewise.
- * login/getutent.c (__getutent): Add libc_hidden_def.
- * login/getutent_r.c (__getutent_r): Likewise.
- (__pututline): Likewise.
- * login/getutid.c (__getutid): Likewise.
- * login/getutid_r.c (__getutid_r): Likewise.
- * login/getutline.c (__getutline): Likewise.
- * login/getutline_r.c (__getutline_r): Likewise.
- * login/updwtmp.c (__updwtmp): Likewise.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * include/dirent.h (__opendir): Always add attribute_hidden.
- (__fdopendir): Likewise.
- (__closedir): Likewise.
- (__readdir): Likewise.
- (__readdir64): Add libc_hidden_proto.
- * sysdeps/mach/hurd/readdir64.c (__readdir64): Add libc_hidden_def.
- * sysdeps/unix/sysv/linux/i386/readdir64.c (__readdir64): Likewise.
- * sysdeps/unix/sysv/linux/readdir64.c (__readdir64): Likewise.
- * sysdeps/unix/sysv/linux/wordsize-64/readdir.c (__GI___readdir64):
- New alias.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * include/aliases.h (__getaliasbyname_r): Add attribute_hidden.
- * include/netdb.h (__gethostbyaddr_r): Likewise.
- (__gethostbyname_r): Likewise.
- (__gethostbyname2_r): Likewise.
- (__getnetbyaddr_r): Likewise.
- (__getnetbyname_r): Likewise.
- (__getservbyname_r): Likewise.
- (__getservbyport_r): Likewise.
- (__getprotobyname_r): Likewise.
- (__getprotobynumber_r): Likewise.
- (__getnetgrent_r): Likewise.
- * include/rpc/netdb.h (__getrpcbyname_r): Likewise.
- (__getrpcbynumber_r): Likewise.
- * nss/getXXbyYY.c (INTERNAL (REENTRANT_NAME)): Likewise.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * include/stdio.h (__fcloseall): Add attribute_hidden.
- (__getline): Likewise.
- (__path_search): Likewise.
- (__gen_tempname): Likewise.
- (__libc_message): Likewise.
- (__flockfile): Likewise.
- (__funlockfile): Likewise.
- (__fxprintf): Likewise.
- (__fxprintf_nocancel): Likewise.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * include/gshadow.h (__fgetsgent_r): Add attribute_hidden.
- (__sgetsgent_r): Likewise.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * include/sys/statfs.h (__fstatfs): Add attribute_hidden.
- (__statfs64): Likewise.
- (__fstatfs64): Likewise.
- * include/sys/statvfs.h (__statvfs64): Likewise.
- (__fstatvfs64): Likewise.
- * sysdeps/unix/sysv/linux/pathconf.h (__statfs_link_max): Likewise.
- (__statfs_filesize_max): Likewise.
- (__statfs_symlinks): Likewise.
- (__statfs_chown_restricted): Likewise.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * include/time.h (__tzstring): Add attribute_hidden.
- (__tzfile_read): Likewise.
- (__tzfile_compute): Likewise.
- (__tzfile_default): Likewise.
- (__tzset_parse_tz): Likewise.
- (__offtime): Likewise.
- (__asctime_r): Likewise.
- (__tzset): Likewise.
- (__tz_convert): Likewise.
- (__getdate_r): Likewise.
- (__getclktck): Likewise.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * nscd/nscd-client.h (__nscd_get_map_ref): Add attribute_hidden.
- (__nscd_unmap): Likewise.
- (__nscd_cache_search): Likewise.
- (__nscd_get_nl_timestamp): Likewise.
- (__nscd_getpwnam_r): Likewise.
- (__nscd_getpwuid_r): Likewise.
- (__nscd_getgrnam_r): Likewise.
- (__nscd_getgrgid_r): Likewise.
- (__nscd_gethostbyname_r): Likewise.
- (__nscd_gethostbyname2_r): Likewise.
- (__nscd_gethostbyaddr_r): Likewise.
- (__nscd_getai): Likewise.
- (__nscd_getgrouplist): Likewise.
- (__nscd_getservbyname_r): Likewise.
- (__nscd_getservbyport_r): Likewise.
- (__nscd_innetgr): Likewise.
- (__nscd_setnetgrent): Likewise.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * include/gmp.h: Declare internal functions only if _ISOMAC is
- undefined.
- (__mpn_extract_double): Add attribute_hidden.
- (__mpn_extract_long_double): Likewise.
- (__mpn_extract_float128): Likewise.
- (__mpn_construct_float): Likewise.
- (__mpn_construct_double): Likewise.
- (__mpn_construct_long_double): Likewise.
- (__mpn_construct_float128): Likewise.
- (mpn_add_1): Likewise.
- (mpn_addmul_1): Likewise.
- (mpn_add_n): Likewise.
- (mpn_cmp): Likewise.
- (mpn_divrem): Likewise.
- (mpn_lshift): Likewise.
- (mpn_mul): Likewise.
- (mpn_mul_1): Likewise.
- (mpn_rshift): Likewise.
- (mpn_sub_1): Likewise.
- (mpn_submul_1): Likewise.
- (mpn_sub_n): Likewise.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * include/wchar.h (__wcsnlen): Add attribute_hidden.
- (__wcscat): Likewise.
- (__btowc): Likewise.
- (__wcrtomb): Likewise.
- (__mbsrtowcs): Likewise.
- (__wcsrtombs): Likewise.
- (__mbsnrtowcs): Likewise.
- (__wcsnrtombs): Likewise.
- (__wcsncpy): Likewise.
- (__wcpncpy): Likewise.
- (__wmemcpy): Likewise.
- (__wmempcpy): Likewise.
- (__wmemmove): Likewise.
- (__wcschrnul): Likewise.
- (__vfwscanf): Likewise.
- (__vswprintf): Likewise.
- (__fwprintf): Likewise.
- (__vfwprintf): Likewise.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * include/grp.h (__fgetgrent_r): Add attribute_hidden.
- (__getgrgid_r): Likewise.
- (__getgrnam_r): Likewise.
- * include/pwd.h (__getpwuid_r): Likewise.
- (__getpwnam_r): Likewise.
- (__fgetpwent_r): Likewise.
- * include/shadow.h (__getspnam_r): Likewise.
- (__sgetspent_r): Likewise.
- (__fgetspent_r): Likewise.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * include/unistd.h (__access): Add attribute_hidden.
- (__lseek64): Likewise.
- (__libc_pread64): Likewise.
- (__pipe2): Likewise.
- (__sleep): Likewise.
- (__chdir): Likewise.
- (__fchdir): Likewise.
- (__getcwd): Likewise.
- (__rmdir): Likewise.
- (__execvpe): Likewise.
- (__execve): Likewise.
- (__setsid): Likewise.
- (__getuid): Likewise.
- (__geteuid): Likewise.
- (__getgid): Likewise.
- (__getegid): Likewise.
- (__getgroups): Likewise.
- (__group_member): Likewise.
- (__ttyname_r): Likewise.
- (__isatty): Likewise.
- (__readlink): Likewise.
- (__unlink): Likewise.
- (__gethostname): Likewise.
- (__profil): Likewise.
- (__getdtablesize): Likewise.
- (__brk): Likewise.
- (__ftruncate): Likewise.
- (__ftruncate64): Likewise.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * argp/argp-fmtstream.c: Include <argp-fmtstream.h>.
- * argp/argp-fs-xinl.c: Likewise.
- * argp/argp-help.c: Include <argp.h> and <argp-fmtstream.h>.
- * argp/argp-parse.c: Include <argp.h>.
- * argp/argp-xinl.c: Likewise.
- * include/argp-fmtstream.h: New file.
- * include/argp.h (__argp_error): Add attribute_hidden.
- (__argp_failure): Likewise.
- (__argp_input): Likewise.
- (__argp_state_help): Likewise.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * include/wchar.h (____wcstof_l_internal): New prototype.
- (____wcstod_l_internal): Likewise.
- (____wcstold_l_internal): Likewise.
- (____wcstol_l_internal): Likewise.
- (____wcstoul_l_internal): Likewise.
- (____wcstoll_l_internal): Likewise.
- (____wcstoull_l_internal): Likewise.
- (____wcstof128_l_internal): Likewise.
- * sysdeps/ieee754/float128/wcstof128.c
- (____wcstof128_l_internal): Removed.
- * sysdeps/ieee754/float128/wcstof128_l.c
- (____wcstof128_l_internal): Likewise.
- * wcsmbs/wcstod.c (____wcstod_l_internal): Likewise.
- * wcsmbs/wcstod_l.c (____wcstod_l_internal): Likewise.
- * wcsmbs/wcstof.c (____wcstof_l_internal): Likewise.
- * wcsmbs/wcstof_l.c (____wcstof_l_internal): Likewise.
- * wcsmbs/wcstol_l.c (____wcstol_l_internal): Likewise.
- * wcsmbs/wcstold.c (____wcstold_l_internal): Likewise.
- * wcsmbs/wcstold_l.c (____wcstold_l_internal): Likewise.
- * wcsmbs/wcstoll_l.c (____wcstoll_l_internal): Likewise.
- * wcsmbs/wcstoul_l.c (____wcstoul_l_internal): Likewise.
- * wcsmbs/wcstoull_l.c (____wcstoull_l_internal): Likewise.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * sysdeps/unix/sysv/linux/fstatvfs.c: Include "internal_statvfs.h"
- instead of <sys/statvfs.h>.
- (__internal_statvfs): Removed.
- * sysdeps/unix/sysv/linux/fstatvfs64.c Include "internal_statvfs.h"
- instead of <sys/statvfs.h>.
- (__internal_statvfs64): Removed.
- * sysdeps/unix/sysv/linux/internal_statvfs.c: Include
- "internal_statvfs.h" instead of <sys/statvfs.h>.
- * sysdeps/unix/sysv/linux/internal_statvfs.h: New file.
- * sysdeps/unix/sysv/linux/statvfs.c Include "internal_statvfs.h"
- instead of <sys/statvfs.h>.
- (__internal_statvfs): Removed.
- * sysdeps/unix/sysv/linux/statvfs64.c Include "internal_statvfs.h"
- instead of <sys/statvfs.h>.
- (__internal_statvfs64): Removed.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * iconv/gconv_int.h (__gconv_open): Add attribute_hidden.
- (__gconv_close): Likewise.
- (__gconv): Likewise.
- (__gconv_find_transform): Likewise.
- (__gconv_lookup_cache): Likewise.
- (__gconv_compare_alias_cache): Likewise.
- (__gconv_load_cache): Likewise.
- (__gconv_get_path): Likewise.
- (__gconv_close_transform): Likewise.
- (__gconv_release_cache): Likewise.
- (__gconv_find_shlib): Likewise.
- (__gconv_release_shlib): Likewise.
- (__gconv_get_builtin_trans): Likewise.
- (__gconv_compare_alias): Likewise.
- * include/dlfcn.h (_dlerror_run): Likewise.
- * include/stdio.h (__fortify_fail_abort): Likewise.
- * include/time.h (__tz_compute): Likewise.
- (__strptime_internal): Likewise.
- * intl/gettextP.h (_nl_find_domain): Likewise.
- (_nl_load_domain): Likewise.
- (_nl_find_msg): Likewise.
- * intl/plural-exp.h (FREE_EXPRESSION): Likewise.
- (EXTRACT_PLURAL_EXPRESSION): Likewise.
- * locale/coll-lookup.h (__collidx_table_lookup): Likewise.
- * resolv/gai_misc.h (__gai_enqueue_request): Likewise.
- (__gai_find_request): Likewise.
- (__gai_remove_request): Likewise.
- (__gai_notify): Likewise.
- (__gai_notify_only): Likewise.
- * sysdeps/generic/aio_misc.h (__aio_sigqueue): Likewise.
- * sysdeps/generic/ldsodefs.h (_dl_fini): Likewise.
- (_dl_non_dynamic_init): Likewise.
- (_dl_aux_init): Likewise.
- * sysdeps/i386/machine-gmon.h (mcount_internal): Likewise.
- * sysdeps/unix/sysv/linux/i386/olddirent.h (__old_getdents64):
- Likewise.
- * wcsmbs/wcsmbsload.h (__wcsmbs_load_conv): Likewise.
- (__wcsmbs_clone_conv): Likewise.
- (__wcsmbs_named_conv): Likewise.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * include/stdlib.h (__random): Add attribute_hidden.
- (__random_r): Likewise.
- (__srandom_r): Likewise.
- (__initstate_r): Likewise.
- (__setstate_r): Likewise.
- (__erand48_r): Likewise.
- (__nrand48_r): Likewise.
- (__jrand48_r): Likewise.
- (__srand48_r): Likewise.
- (__seed48_r): Likewise.
- (__lcong48_r): Likewise.
- (__drand48_iterate): Likewise.
- (__setenv): Likewise.
- (__unsetenv): Likewise.
- (__clearenv): Likewise.
- (__ptsname_r): Likewise.
- (__posix_openpt): Likewise.
- (__add_to_environ): Likewise.
- (__realpath): Add libc_hidden_proto.
- (__ecvt_r): Likewise.
- (__fcvt_r): Likewise.
- (__qecvt_r): Likewise.
- (__qfcvt_r): Likewise.
- * misc/efgcvt_r.c (cvt_symbol_1): Add libc_hidden_def (local).
- * stdlib/canonicalize.c (__realpath): Add libc_hidden_def.
-
-2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * include/stdlib.h (__ptsname_internal): Add attribute_hidden.
- * include/time.h (__mktime_internal): Likewise.
- * libio/iolibio.h (__fopen_internal): Likewise.
-
-2017-10-01 John David Anglin <danglin@gcc.gnu.org>
-
- * sysdeps/unix/sysv/linux/hppa/getcontext.S (__getcontext): Save return
- pointer in frame.
- * sysdeps/unix/sysv/linux/hppa/setcontext.S (__setcontext): Likewise.
- Correct offset used to restore PIC register.
-
-2017-09-30 John David Anglin <danglin@gcc.gnu.org>
-
- [BZ libc/22165]
- * sysdeps/unix/sysv/linux/hppa/getcontext.S (__getcontext): Use PIC
- code to load address of __getcontext_ret when generating PIC code.
-
-2017-09-30 H.J. Lu <hongjiu.lu@intel.com>
-
- * elf/Makefile (tests-static-internal): Add
- tst-tls1-static-non-pie.
- (LDFLAGS-tst-tls1-static-non-pie): New.
- * elf/tst-tls1-static-non-pie.c: New file.
-
-2017-09-29 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/ieee754/dbl-64/s_asinh.c: Include <libm-alias-double.h>.
- (asinh): Define using libm_alias_double.
- * sysdeps/ieee754/dbl-64/s_cbrt.c: Include <libm-alias-double.h>.
- (cbrt): Define using libm_alias_double.
- * sysdeps/ieee754/dbl-64/s_copysign.c: Include
- <libm-alias-double.h>.
- (copysign): Define using libm_alias_double.
- * sysdeps/ieee754/dbl-64/s_erf.c: Include <libm-alias-double.h>.
- (erf): Define using libm_alias_double.
- (erfc): Likewise.
- * sysdeps/ieee754/dbl-64/s_expm1.c: Include <libm-alias-double.h>.
- (expm1): Define using libm_alias_double.
- * sysdeps/ieee754/dbl-64/s_fabs.c: Include <libm-alias-double.h>.
- (fabs): Define using libm_alias_double.
- * sysdeps/ieee754/dbl-64/s_fromfp.c (fromfp): Define using
- libm_alias_double.
- * sysdeps/ieee754/dbl-64/s_fromfp_main.c: Include
- <libm-alias-double.h>.
- * sysdeps/ieee754/dbl-64/s_fromfpx.c (fromfpx): Define using
- libm_alias_double.
- * sysdeps/ieee754/dbl-64/s_getpayload.c: Include
- <libm-alias-double.h>.
- (getpayload): Define using libm_alias_double.
- * sysdeps/ieee754/dbl-64/s_llrint.c: Include
- <libm-alias-double.h>.
- (llrint): Define using libm_alias_double.
- * sysdeps/ieee754/dbl-64/s_lrint.c: Include <libm-alias-double.h>.
- (lrint): Define using libm_alias_double.
- * sysdeps/ieee754/dbl-64/s_nextup.c: Include
- <libm-alias-double.h>.
- (nextup): Define using libm_alias_double.
- * sysdeps/ieee754/dbl-64/s_roundeven.c: Include
- <libm-alias-double.h>.
- (roundeven): Define using libm_alias_double.
- * sysdeps/ieee754/dbl-64/s_setpayload.c (setpayload): Define using
- libm_alias_double.
- * sysdeps/ieee754/dbl-64/s_setpayload_main.c: Include
- <libm-alias-double.h>.
- * sysdeps/ieee754/dbl-64/s_setpayloadsig.c (setpayloadsig): Define
- using libm_alias_double.
- * sysdeps/ieee754/dbl-64/s_sin.c: Include <libm-alias-double.h>.
- (cos): Define using libm_alias_double.
- (sin): Likewise.
- * sysdeps/ieee754/dbl-64/s_sincos.c: Include
- <libm-alias-double.h>.
- (sincos): Define using libm_alias_double.
- * sysdeps/ieee754/dbl-64/s_tanh.c: Include <libm-alias-double.h>.
- (tanh): Define using libm_alias_double.
- * sysdeps/ieee754/dbl-64/s_totalorder.c: Include
- <libm-alias-double.h>.
- (totalorder): Define using libm_alias_double.
- * sysdeps/ieee754/dbl-64/s_totalordermag.c: Include
- <libm-alias-double.h>.
- (totalordermag): Define using libm_alias_double.
- * sysdeps/ieee754/dbl-64/s_ufromfp.c (ufromfp): Define using
- libm_alias_double.
- * sysdeps/ieee754/dbl-64/s_ufromfpx.c (ufromfpx): Define using
- libm_alias_double.
- * sysdeps/ieee754/dbl-64/wordsize-64/s_getpayload.c: Include
- <libm-alias-double.h>.
- (getpayload): Define using libm_alias_double.
- * sysdeps/ieee754/dbl-64/wordsize-64/s_roundeven.c: Include
- <libm-alias-double.h>.
- (roundeven): Define using libm_alias_double.
- * sysdeps/ieee754/dbl-64/wordsize-64/s_setpayload_main.c: Include
- <libm-alias-double.h>.
- * sysdeps/ieee754/dbl-64/wordsize-64/s_totalorder.c: Include
- <libm-alias-double.h>.
- (totalorder): Define using libm_alias_double.
- * sysdeps/ieee754/dbl-64/wordsize-64/s_totalordermag.c: Include
- <libm-alias-double.h>.
- (totalordermag): Define using libm_alias_double.
- * sysdeps/ieee754/ldbl-opt/s_copysign.c (copysignl): Only define
- libc compat symbol here.
- * sysdeps/ieee754/ldbl-opt/s_asinh.c: Remove file.
- * sysdeps/ieee754/ldbl-opt/s_cbrt.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/s_erf.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/s_expm1.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/s_fabs.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/s_llrint.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/s_lrint.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/s_sin.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/s_sincos.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/s_tanh.c: Likewise.
-
-2017-09-29 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/arm/dl-machine.h (elf_machine_load_address): Use
- _dl_relocate_static_pie instead of _dl_start to compute load
- address in static PIE. Return 0 if _DYNAMIC is undefined for
- static executable.
-
-2017-09-29 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/mips/dl-machine.h (elf_machine_dynamic): Return 0 if
- _DYNAMIC is undefined for static executable.
-
-2017-09-29 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/arm/start.S (_start): Check PIC instead of SHARED.
-
-2017-09-29 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/x86_64/fpu/libm-test-ulps: Update.
-
-2017-09-29 Wilco Dijkstra <wdijkstr@arm.com>
-
- * sysdeps/ieee754/dbl-64/e_lgamma_r.c
- (__ieee754_lgamma_r): Use fabs rather than __fabs.
- * sysdeps/ieee754/dbl-64/e_log10.c (__ieee754_log10): Likewise.
- * sysdeps/ieee754/dbl-64/e_log2.c (__ieee754_log2): Likewise.
- * sysdeps/ieee754/flt-32/e_lgammaf_r.c
- (__ieee754_lgammaf_r): Use fabsf rather than __fabsf.
- * sysdeps/ieee754/flt-32/e_log10f.c (__ieee754_log10f): Likewise.
- * sysdeps/ieee754/flt-32/e_log2f.c (__ieee754_log2f): Likewise.
- * sysdeps/ieee754/ldbl-128/e_lgammal_r.c
- (__ieee754_lgammal_r): Use fabsl rather than __fabsl.
- * sysdeps/ieee754/ldbl-128/e_log10l.c (__ieee754_log10l): Likewise.
- * sysdeps/ieee754/ldbl-128/e_log2l.c (__ieee754_log2l): Likewise.
- * sysdeps/ieee754/ldbl-128ibm/e_lgammal_r.c
- (__ieee754_lgammal_r): Use fabsl rather than __fabsl.
- * sysdeps/ieee754/ldbl-128ibm/e_log10l.c (__ieee754_log10l): Likewise.
- * sysdeps/ieee754/ldbl-128ibm/e_log2l.c (__ieee754_log2l): Likewise.
- * sysdeps/powerpc/nofpu/Makefile: Add -fno-builtin-fabsl for BZ #29253.
-
-2017-09-29 Wilco Dijkstra <wdijkstr@arm.com>
-
- * math/bits/cmathcalls.h (cimag): Remove inline.
- (creal): Remove inline.
- (conj): Remove inline.
-
-2017-09-29 Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- * math/Makefile (type-float-routines): Add e_powf_log2_data.
- * sysdeps/ieee754/flt-32/e_powf.c: New implementation.
- * sysdeps/ieee754/flt-32/e_powf_log2_data.c: New file.
- * sysdeps/ieee754/flt-32/math_config.h (__powf_log2_data): Define.
- (issignalingf_inline): Likewise.
- (POWF_LOG2_TABLE_BITS): Likewise.
- (POWF_LOG2_POLY_ORDER): Likewise.
- (POWF_SCALE_BITS): Likewise.
- (POWF_SCALE): Likewise.
- * sysdeps/i386/fpu/e_powf_log2_data.c: New file.
- * sysdeps/ia64/fpu/e_powf_log2_data.c: New file.
- * sysdeps/m68k/m680x0/fpu/e_powf_log2_data.c: New file.
-
-2017-09-29 Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- * math/Makefile (type-float-routines): Add e_log2f_data.
- * sysdeps/ieee754/flt-32/e_log2f.c: New implementation.
- * sysdeps/ieee754/flt-32/e_log2f_data.c: New file.
- * sysdeps/ieee754/flt-32/math_config.h (__log2f_data): Define.
- (LOG2F_TABLE_BITS, LOG2F_POLY_ORDER): Define.
- * sysdeps/i386/fpu/e_log2f_data.c: New file.
- * sysdeps/ia64/fpu/e_log2f_data.c: New file.
- * sysdeps/m68k/m680x0/fpu/e_log2f_data.c: New file.
-
-2017-09-29 Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- * math/Makefile (type-float-routines): Add e_logf_data.
- * sysdeps/ieee754/flt-32/e_logf.c: New implementation.
- * sysdeps/ieee754/flt-32/e_logf_data.c: New file.
- * sysdeps/ieee754/flt-32/math_config.h (__logf_data): Define.
- (LOGF_TABLE_BITS, LOGF_POLY_ORDER): Define.
- * sysdeps/i386/fpu/e_logf_data.c: New file.
- * sysdeps/ia64/fpu/e_logf_data.c: New file.
- * sysdeps/m68k/m680x0/fpu/e_logf_data.c: New file.
-
-2017-09-28 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/i386/dl-machine.h (elf_machine_load_address): Allow
- undefined _DYNAMIC in PIE libc.a.
- * sysdeps/x86_64/dl-machine.h (elf_machine_load_address):
- Likewse.
-
-2017-09-28 Wilco Dijkstra <wdijkstr@arm.com>
-
- * sysdeps/alpha/fpu/bits/mathinline.h: Delete file.
- * sysdeps/ia64/fpu/bits/mathinline.h: Delete file.
- * sysdeps/m68k/coldfire/fpu/bits/mathinline.h: Delete file.
- * sysdeps/m68k/m680x0/fpu/bits/mathinline.h: (__signbitf): Remove.
- (__signbit): Remove.
- (__signbitl): Remove.
- * sysdeps/powerpc/bits/mathinline.h (__signbitf): Remove.
- (__signbit): Remove.
- (__signbitl): Remove.
- * sysdeps/s390/fpu/bits/mathinline.h: (__signbitf): Remove.
- (__signbit): Remove.
- (__signbitl): Remove.
- * sysdeps/sparc/fpu/bits/mathinline.h (__signbitf): Remove.
- (__signbit): Remove.
- (__signbitl): Remove.
- * sysdeps/tile/bits/mathinline.h: Delete file.
- * sysdeps/x86/fpu/bits/mathinline.h (__signbitf): Remove.
- (__signbit): Remove.
- (__signbitl): Remove.
-
-2017-09-28 Wilco Dijkstra <wdijkstr@arm.com>
-
- * math/math.h: Improve handling of C99 isgreater macros.
- * sysdeps/alpha/fpu/bits/mathinline.h: Remove isgreater macros.
- * sysdeps/m68k/m680x0/fpu/bits/mathinline.h: Likewise.
- * sysdeps/powerpc/bits/mathinline.h: Likewise.
- * sysdeps/sparc/fpu/bits/mathinline.h: Likewise.
- * sysdeps/x86/fpu/bits/mathinline.h: Likewise.
-
-2017-09-28 Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- * sysdeps/aarch64/libm-test-ulps: Update.
-
-2017-09-28 Joseph Myers <joseph@codesourcery.com>
-
- [BZ #22225]
- * sysdeps/ieee754/dbl-64/s_nearbyint.c (__nearbyint): Use
- math_opt_barrier on argument when doing arithmetic on it.
- * sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c (__nearbyint):
- Likewise. Use math_force_eval not math_opt_barrier after
- arithmetic.
- * sysdeps/ieee754/flt-32/s_nearbyintf.c (__nearbyintf): Use
- math_opt_barrier on argument when doing arithmetic on it.
- * sysdeps/ieee754/ldbl-128/s_nearbyintl.c (__nearbyintl):
- Likewise.
-
-2017-09-27 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/unix/sysv/linux/ifaddrs.c (__getifaddrs): Add
- libc_hidden_def.
- (__freeifaddrs): Likewise.
-
-2017-09-27 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * include/dirent.h (__dirfd): New declaration.
- * dirent/dirfd.c (dirfd): Rename to __dirfd, and redefine as weak
- alias.
- * sysdeps/posix/dirfd/dirfd.c (dirfd): Likewise.
- * sysdeps/mach/hurd/dirfd.c (dirfd): Likewise.
- * io/ftw.c (open_dir_stream, ftw_dir): Use __dirfd instead of dirfd.
- * include/unistd.h (__revoke): New declaration.
- * misc/revoke.c (revoke): Rename to __revoke, and redefine as weak
- alias.
- * sysdeps/mach/hurd/revoke.c (revoke): Likewise.
- * sysdeps/unix/bsd/unlockpt.c (unlockpt): Use __revoke instead of
- revoke.
- * include/dirent.h (__seekdir): New declaration.
- * sysdeps/mach/hurd/seekdir.c (seekdir): Rename to __seekdir and
- redefine as weak alias.
- * sysdeps/mach/hurd/rewinddir.c (__rewinddir): Use __seekdir instead
- of seekdir.
- * include/ifaddrs.h (__getifaddrs, __freeifaddrs): New declarations,
- and use libc_hidden_def on them.
- * inet/ifaddrs.c (__getifaddrs, __freeifaddrs): Use libc_hidden_def on
- them.
- * sysdeps/gnu/ifaddrs.c (__getifaddrs, __freeifaddrs): Likewise.
- * inet/check_pf.c (__check_pf): Use __getifaddrs and __freeifaddrs
- instead of getifaddrs and freeifaddrs.
-
-2017-09-26 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * dlfcn/modatexit.c (foo): Remove __dso_handle check.
- * dlfcn/modcxaatexit.c: Include <dso_handle.h>.
- (__dso_handle): Remove declaration.
- * dlfcn/tstatexit.c (__dso_handle): Removed.
- (main): Don't check __dso_handle.
- * dlfcn/tstcxaatexit.c (__dso_handle): Removed.
- (main): Don't check __dso_handle.
- * include/dso_handle.h: New file.
- * malloc/mtrace.c: Include <dso_handle.h>.
- (mtrace): Pass __dso_handle directly.
- * nptl/pthread_atfork.c: Include <dso_handle.h>.
- (__dso_handle): Remove declaration.
- (__pthread_atfork): Pass __dso_handle directly.
- * nptl/tst-atfork2mod.c: Include <dso_handle.h>.
- (__dso_handle): Removed.
- * posix/wordexp-test.c: Include <dso_handle.h>.
- (__dso_handle): Remove declaration.
- (__app_register_atfork): Pass __dso_handle directly.
- * stdlib/at_quick_exit.c: Include <dso_handle.h>.
- (__dso_handle): Remove declaration.
- (at_quick_exit): Pass __dso_handle directly.
- * stdlib/atexit.c: Include <dso_handle.h>.
- (__dso_handle): Remove declaration.
- (atexit): Pass __dso_handle directly.
- * stdlib/tst-tls-atexit-lib.c: Include <dso_handle.h>.
- (__dso_handle): Removed.
-
-2017-09-26 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/unix/make-syscalls.sh: Use __ifunc to define symbols
- using VDSO.
-
-2017-09-26 Alexey Makhalov <amakhalov@vmware.com>
-
- * elf/dl-tunables.c (do_tunable_update_val): Range checking fix.
- * scripts/gen-tunables.awk: Set unspecified minval and/or maxval
- values to correct default value for given type.
-
-2017-09-26 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #22101]
- * elf/Makefile (tests): Add tst-debug1.
- ($(objpfx)tst-debug1): New.
- ($(objpfx)tst-debug1.out): Likewise.
- ($(objpfx)tst-debug1mod1.so): Likewise.
- * elf/dl-load.c (_dl_map_object_from_fd): Skip PT_DYNAMIC segment
- with p_filesz == 0.
- * elf/tst-debug1.c: New file.
-
-2017-09-26 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/sparc/sparc-ifunc.h [!__ASSEMBLER__] (sparc_libm_ifunc):
- Define using __ifunc.
-
-2017-09-26 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
-
- * sysdeps/powerpc/fpu/libm-test-ulps: Regenerate expf() and
- exp2f() values.
-
-2017-09-26 Joseph Myers <joseph@codesourcery.com>
-
- [BZ #22156]
- * sysdeps/ia64/stackinfo.h (DEFAULT_STACK_PERMS): Likewise.
-
-2017-09-26 Florian Weimer <fweimer@redhat.com>
-
- * resolv/Makefile (tests-internal): Fix typo in comment.
-
-2017-09-26 Florian Weimer <fweimer@redhat.com>
-
- * resolv/nss_dns/dns-host.c: Fix typo in comment.
-
-2017-09-25 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * lib/malloc/scratch_buffer.h (struct scratch_buffer):
- Use an union instead of a max_align_t array for __space,
- so that __space is the same size on all platforms.
- * malloc/scratch_buffer_grow_preserve.c
- (__libc_scratch_buffer_grow_preserve): Likewise.
-
- [BZ #22183]
- * include/gnu-versions.h (_GNU_GLOB_INTERFACE_VERSION): Increase
- version to 2.
- * posix/Makefile (routines): Add glob-lstat-compat and
- glob64-lstat-compat.
- * posix/Versions (GLIBC_2.27, glob, glob64): Add symbol version.
- * posix/glob-lstat-compat.c: New file.
- * posix/glob64-lstat-compat.c: Likewise.
- * posix/tst-glob_lstat_compat.c: Likewise.
- * sysdeps/unix/sysv/linux/glob-lstat-compat.c: Likewise.
- * sysdeps/unix/sysv/linux/alpha/glob-lstat-compat.c: Likewise.
- * sysdeps/unix/sysv/linux/glob64-lstat-compat.c: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-32/glob64-lstat-compat.c:
- Likewise.
- * sysdeps/unix/sysv/linux/alpha/glob.c: Remove file.
- * sysdeps/unix/sysv/linux/s390/s390-32/glob64.c: Likewise.
- * posix/glob.c (glob_lstat): New function.
- (glob): Rename to __glob and add versioned symbol to 2.27.
- (glob_in_dir): Use glob_lstat.
- * posix/glob64.c (glob64): Add GLOB_ATTRIBUTE.
- * sysdeps/unix/sysv/linux/arm/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/glob.c (glob): Add versioned symbol for
- 2.27.
- * sysdeps/unix/sysv/linux/glob64.c (glob64): Likewise.
- * sysdeps/unix/sysv/linux/oldglob.c (GLOB_NO_LSTAT): Define.
- * sysdeps/unix/sysv/linux/alpha/oldglob.c (__old_glob): Do not use
- gl_lstat on glob call.
- * sysdeps/unix/sysv/linux/aarch64/libc.abilist: Add GLIBC_2.27 glob
- and glob64 symbols.
- * sysdeps/unix/sysv/linux/alpha/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/hppa/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/i386/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/ia64/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/microblaze/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/nios2/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist:
- Likewise.
- * sysdeps/unix/linux/powerpc/powerpc32/nofpu/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sh/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Likewise.
-
-2017-09-25 H.J. Lu <hongjiu.lu@intel.com>
-
- * configure.ac (AS): Require binutils 2.25 or later.
- * configure: Regenerated.
-
-2017-09-25 Paul Pluzhnikov <ppluzhnikov@google.com>
-
- [BZ #22207]
- * stdlib/test-atexit-race-common.c (do_test): Minimize required
- VM size.
-
-2017-09-25 DJ Delorie <dj@redhat.com>
-
- [BZ #22161]
- * nscd/netgroupcache.c (addinnetgrX): Release read lock after
- resetting timeout.
-
-2017-09-25 Stefan Liebler <stli@linux.vnet.ibm.com>
-
- * sysdeps/ieee754/dbl-64/sincos32.h
- [SINCCOS32_H]: Remove define.
- [SINCOS32_H]: Define.
-
-2017-09-25 Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- * math/Versions (expf): New libm symbol at GLIBC_2.27.
- (exp2f): Likewise.
- * math/w_exp2f.c: New file.
- * math/w_expf.c: New file.
- * math/w_exp2f_compat.c (__exp2f_compat): For compat symbol only.
- * math/w_expf_compat.c (__expf_compat): Likewise.
- * sysdeps/ia64/fpu/e_exp2f.S: Add versioned symbols.
- * sysdeps/ia64/fpu/e_expf.S: Likewise.
- * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Update.
- * sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/arm/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/libm-le.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/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/tile/tilegx/tilegx32/libm.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist:
- Likewise.
- * sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
-
-2017-09-25 Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- * math/Makefile (type-float-routines): Add math_errf and e_exp2f_data.
- * sysdeps/aarch64/fpu/math_private.h (TOINT_INTRINSICS): Define.
- (roundtoint, converttoint): Likewise.
- * sysdeps/ieee754/flt-32/e_expf.c: New implementation.
- * sysdeps/ieee754/flt-32/e_exp2f.c: New implementation.
- * sysdeps/ieee754/flt-32/e_exp2f_data.c: New file.
- * sysdeps/ieee754/flt-32/math_config.h: New file.
- * sysdeps/ieee754/flt-32/math_errf.c: New file.
- * sysdeps/ieee754/flt-32/t_exp2f.h: Remove.
- * sysdeps/i386/fpu/e_exp2f_data.c: New file.
- * sysdeps/i386/fpu/math_errf.c: New file.
- * sysdeps/ia64/fpu/e_exp2f_data.c: New file.
- * sysdeps/ia64/fpu/math_errf.c: New file.
- * sysdeps/m68k/m680x0/fpu/e_exp2f_data.c: New file.
- * sysdeps/m68k/m680x0/fpu/math_errf.c: New file.
-
-2017-09-24 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * sysdeps/mach/hurd/dl-sysdep.c (check_no_hidden): New macro.
- (__open, __close, __libc_read, __libc_write, __writev, __libc_lseek64,
- __mmap, __fxstat64, __xstat64, __access, __access_noerrno, __getpid,
- __getcwd, __sbrk, __strtoul_internal, _exit, abort): Use check_no_hidden
- to make sure that these symbols are defined.
- * sysdeps/mach/hurd/bits/socket.h: Include <bits/wordsize.h> instead
- of <limits.h>
- (__need_NULL): Do not define.
- (__ss_aligntype): Use __WORDSIZE instead of ULONG_MAX to determine
- alignment.
- [!__USE_MISC] (pseudo_AF_XTP, pseudo_AF_RTIP, pseudo_AF_PIP,
- CMGROUP_MAX, cmsgcred): Do not define.
- (CMSG_FIRSTHDR, __cmsg_nxthdr): Use (struct cmsghdr *) 0 instead of
- NULL.
- * bits/socket.h: Likewise.
- * sysdeps/unix/clock_gettime.c (realtime_gettime, __clock_gettime): Use
- __gettimeofday instead of gettimeofday.
- * sysdeps/unix/clock_settime.c (__clock_settime): Use __settimeofday
- instead of settimeofday.
-
-2017-09-22 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/ieee754/flt-32/s_asinhf.c: Include <libm-alias-float.h>.
- (asinhf): Define using libm_alias_float.
- * sysdeps/ieee754/flt-32/s_atanf.c: Include <libm-alias-float.h>.
- (atanf): Define using libm_alias_float.
- * sysdeps/ieee754/flt-32/s_cbrtf.c: Include <libm-alias-float.h>.
- (cbrtf): Define using libm_alias_float.
- * sysdeps/ieee754/flt-32/s_ceilf.c: Include <libm-alias-float.h>.
- (ceilf): Define using libm_alias_float.
- * sysdeps/ieee754/flt-32/s_copysignf.c: Include
- <libm-alias-float.h>.
- (copysignf): Define using libm_alias_float.
- * sysdeps/ieee754/flt-32/s_cosf.c: Include <libm-alias-float.h>.
- (cosf): Define using libm_alias_float.
- * sysdeps/ieee754/flt-32/s_erff.c: Include <libm-alias-float.h>.
- (erff): Define using libm_alias_float.
- (erfcf): Likewise.
- * sysdeps/ieee754/flt-32/s_expm1f.c: Include <libm-alias-float.h>.
- (expm1f): Define using libm_alias_float.
- * sysdeps/ieee754/flt-32/s_fabsf.c: Include <libm-alias-float.h>.
- (fabsf): Define using libm_alias_float.
- * sysdeps/ieee754/flt-32/s_floorf.c: Include <libm-alias-float.h>.
- (floorf): Define using libm_alias_float.
- * sysdeps/ieee754/flt-32/s_frexpf.c: Include <libm-alias-float.h>.
- (frexpf): Define using libm_alias_float.
- * sysdeps/ieee754/flt-32/s_fromfpf.c (fromfpf): Define using
- libm_alias_float.
- * sysdeps/ieee754/flt-32/s_fromfpf_main.c: Include
- <libm-alias-float.h>.
- * sysdeps/ieee754/flt-32/s_fromfpxf.c (fromfpxf): Define using
- libm_alias_float.
- * sysdeps/ieee754/flt-32/s_getpayloadf.c: Include
- <libm-alias-float.h>.
- (getpayloadf): Define using libm_alias_float.
- * sysdeps/ieee754/flt-32/s_llrintf.c: Include
- <libm-alias-float.h>.
- (llrintf): Define using libm_alias_float.
- * sysdeps/ieee754/flt-32/s_llroundf.c: Include
- <libm-alias-float.h>.
- (llroundf): Define using libm_alias_float.
- * sysdeps/ieee754/flt-32/s_logbf.c: Include <libm-alias-float.h>.
- (logbf): Define using libm_alias_float.
- * sysdeps/ieee754/flt-32/s_lrintf.c: Include <libm-alias-float.h>.
- (lrintf): Define using libm_alias_float.
- * sysdeps/ieee754/flt-32/s_lroundf.c: Include <libm-alias-float.h>.
- (lroundf): Define using libm_alias_float.
- * sysdeps/ieee754/flt-32/s_modff.c: Include <libm-alias-float.h>.
- (modff): Define using libm_alias_float.
- * sysdeps/ieee754/flt-32/s_nearbyintf.c: Include
- <libm-alias-float.h>.
- (nearbyintf): Define using libm_alias_float.
- * sysdeps/ieee754/flt-32/s_nextafterf.c: Include
- <libm-alias-float.h>.
- (nextafterf): Define using libm_alias_float.
- * sysdeps/ieee754/flt-32/s_nextupf.c: Include
- <libm-alias-float.h>.
- (nextupf): Define using libm_alias_float.
- * sysdeps/ieee754/flt-32/s_remquof.c: Include
- <libm-alias-float.h>.
- (remquof): Define using libm_alias_float.
- * sysdeps/ieee754/flt-32/s_rintf.c: Include <libm-alias-float.h>.
- (rintf): Define using libm_alias_float.
- * sysdeps/ieee754/flt-32/s_roundevenf.c: Include
- <libm-alias-float.h>.
- (roundevenf): Define using libm_alias_float.
- * sysdeps/ieee754/flt-32/s_roundf.c: Include <libm-alias-float.h>.
- (roundf): Define using libm_alias_float.
- * sysdeps/ieee754/flt-32/s_setpayloadf.c (setpayloadf): Define
- using libm_alias_float.
- * sysdeps/ieee754/flt-32/s_setpayloadf_main.c: Include
- <libm-alias-float.h>.
- * sysdeps/ieee754/flt-32/s_setpayloadsigf.c (setpayloadsigf):
- Define using libm_alias_float.
- * sysdeps/ieee754/flt-32/s_sincosf.c: Include
- <libm-alias-float.h>.
- (sincosf): Define using libm_alias_float.
- * sysdeps/ieee754/flt-32/s_sinf.c: Include <libm-alias-float.h>.
- (sinf): Define using libm_alias_float.
- * sysdeps/ieee754/flt-32/s_tanf.c: Include <libm-alias-float.h>.
- (tanf): Define using libm_alias_float.
- * sysdeps/ieee754/flt-32/s_tanhf.c: Include <libm-alias-float.h>.
- (tanhf): Define using libm_alias_float.
- * sysdeps/ieee754/flt-32/s_totalorderf.c: Include
- <libm-alias-float.h>.
- (totalorderf): Define using libm_alias_float.
- * sysdeps/ieee754/flt-32/s_totalordermagf.c: Include
- <libm-alias-float.h>.
- (totalordermagf): Define using libm_alias_float.
- * sysdeps/ieee754/flt-32/s_truncf.c: Include <libm-alias-float.h>.
- (truncf): Define using libm_alias_float.
- * sysdeps/ieee754/flt-32/s_ufromfpf.c (ufromfpf): Define using
- libm_alias_float.
- * sysdeps/ieee754/flt-32/s_ufromfpxf.c (ufromfpxf): Define using
- libm_alias_float.
-
-2017-09-22 Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
-
- [BZ #22146]
- math/math.h: Let fpclassify use the builtin in C++ mode, even
- when optimazing for size.
-
-2017-09-22 Joseph Myers <joseph@codesourcery.com>
-
- * csu/Makefile (generated): Do not add version-info.h.
- (before-compile): Likewise.
- (all-Banner-files): Remove variable.
- ($(objpfx)version-info.h): Remove rule.
- * csu/version.c (banner): Do not include "version-info.h".
- * libidn/Banner: Remove.
- * manual/contrib.texi (Simon Josefsson): New entry.
-
-2017-09-21 Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
-
- * sysdeps/ieee754/ldbl-128/e_lgammal_r.c (__ieee754_lgammal_r):
- Remove conditionals on LDBL_MANT_DIG.
- * sysdeps/ieee754/ldbl-128ibm/e_lgammal_r.c
- (__ieee754_lgammal_r): Likewise.
-
-2017-09-21 Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
-
- * sysdeps/ieee754/ldbl-128ibm/e_expl.c: Remove definitions of
- _Float128 and L().
- * sysdeps/ieee754/ldbl-128ibm/e_j0l.c: Remove definitions of
- _Float128 and L(). Replace _Float128 with long double and L(x)
- with xL, throughout the file.
- * sysdeps/ieee754/ldbl-128ibm/e_j1l.c: Likewise.
- * sysdeps/ieee754/ldbl-128ibm/e_lgammal_r.c: Likewise.
- * sysdeps/ieee754/ldbl-128ibm/s_cbrtl.c: Likewise.
- * sysdeps/ieee754/ldbl-128ibm/t_expl.h: Likewise.
-
-2017-09-21 Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
-
- * sysdeps/ieee754/ldbl-128ibm/e_expl.c: Include tables from
- sysdeps/ieee754/ldbl-128ibm.
- * sysdeps/ieee754/ldbl-128ibm/e_j0l.c: Copy contents from the
- equivalent implementation in sysdeps/ieee754/ldbl-128/ instead
- of including it. Keep _Float128 and L() intact. These will be
- reviewed by a separate patch.
- * sysdeps/ieee754/ldbl-128ibm/e_j1l.c: Likewise.
- * sysdeps/ieee754/ldbl-128ibm/e_lgammal_r.c: Likewise.
- * sysdeps/ieee754/ldbl-128ibm/s_cbrtl.c: Likewise.
- * sysdeps/ieee754/ldbl-128ibm/t_expl.h: Likewise.
-
-2017-09-21 Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
-
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite.c
- (__finitef128): Define to __redirect___finitef128.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf.c
- (__isinff128): Define to __redirect___isinff128.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan.c
- (__isnanf128): Define to __redirect___isnanf128.
-
-2017-09-21 Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
-
- * sysdeps/powerpc/powerpc64le/Makefile
- (CFLAGS-tst-strtod-nan-locale.c): New variable.
- (CFLAGS-tst-wcstod-nan-locale.c): New variable.
-
-2017-09-21 Paul Pluzhnikov <ppluzhnikov@google.com>
- Carlos O'Donell <carlos@redhat.com>
-
- [BZ #22180]
- * stdlib/Makefile (tests): Add test-dlclose-exit-race.
- * stdlib/test-dlclose-exit-race.c: New file.
- * stdlib/test-dlclose-exit-race-helper.c: New file.
- * stdlib/exit.c (__run_exit_handlers): Mark slot as free.
-
-2017-09-21 Joseph Myers <joseph@codesourcery.com>
-
- * crypt/Banner: Remove file.
- * nptl/Banner: Likewise.
- * resolv/Banner: Likewise.
- * soft-fp/Banner: Likewise.
- * nptl/Makefile ($(objpfx)banner.h): Remove rule.
- ($(objpfx)version.d): Remove dependency on banner.h.
- ($(objpfx)version.os): Likewise.
- * nptl/version.c (banner): Do not include banner.h.
- * manual/contrib.texi: Update entries for Richard Henderson, Jakub
- Jelinek and BIND code.
-
-2017-09-20 Paul Pluzhnikov <ppluzhnikov@google.com>
- Carlos O'Donell <carlos@redhat.com>
-
- * support/xdlfcn.h: New file.
- * support/xdlfcn.c: New file.
- * support/Makefile (libsupport-routines): Add xdlfcn.
- * stdlib/tst-tls-atexit.c: Use xdlopen, xdlsym, xdlclose.
-
-2017-09-20 Joseph Myers <joseph@codesourcery.com>
-
- [BZ #20142]
- * sysdeps/x86_64/fpu/multiarch/Makefile (libm-sysdep_routines):
- Add s_trunc-c, s_truncf-c, s_trunc-sse4_1 and s_truncf-sse4_1.
- * sysdeps/x86_64/fpu/multiarch/s_trunc-c.c: New file.
- * sysdeps/x86_64/fpu/multiarch/s_trunc-sse4_1.S: Likewise.
- * sysdeps/x86_64/fpu/multiarch/s_trunc.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/s_truncf-c.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/s_truncf-sse4_1.S: Likewise.
- * sysdeps/x86_64/fpu/multiarch/s_truncf.c: Likewise.
-
-2017-09-20 Paul Pluzhnikov <ppluzhnikov@google.com>
- Ricky Zhou <rickyz@google.com>
- Anoop V Chakkalakkal <anoop.vijayan@in.ibm.com>
-
- [BZ #14333]
- * stdlib/cxa_atexit.c (__internal_atexit): Use __exit_funcs_lock.
- Remove atomics.
- (__new_exitfn): Fail registration when we finished at_exit processing.
- * stdlib/cxa_finalize.c (__cxa_finalize): Likewise.
- * stdlib/on_exit.c (__on_exit): Likewise.
- * stdlib/exit.c (__exit_funcs_done): New variable.
- (__run_exit_handlers): Use __exit_funcs_lock.
- * stdlib/exit.h (__exit_funcs_lock, __exit_funcs_done): New
- declarations.
- * stdlib/Makefile (test-atexit-race, test-quick_at_exit-race)
- (test-cxa_atexit-race, test-on_exit-race): New tests.
- * stdlib/test-atexit-race-common.c: New file.
- * stdlib/test-atexit-race.c: New file.
- * stdlib/test-at_quick_exit-race.c: New file.
- * stdlib/test-cxa_atexit-race.c: New file.
- * stdlib/test-on_exit-race.c: New file.
-
-2017-09-20 Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- * benchtests/Makefile: Add exp2f and log2f benchmarks.
- * benchtests/exp2f-inputs: Copy of expf-inputs.
- * benchtests/log2f-inputs: Copy of logf-inputs.
-
-2017-09-19 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/unix/sysv/linux/fexecve.c (fexecve) [__NR_execveat]:
- Explicitly take address of first element of array arguments in
- call to INLINE_SYSCALL.
-
-2017-09-19 Andreas Schwab <schwab@suse.de>
-
- [BZ #22134]
- * sysdeps/unix/sysv/linux/fexecve.c (fexecve) [__NR_execveat]: Try
- execveat first.
- [!__ASSUME_EXECVEAT]: Fall back to /proc if execveat is
- unimplemented.
- * sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_EXECVEAT)
- [__LINUX_KERNEL_VERSION >= 0x031300]: Define.
- * sysdeps/unix/sysv/linux/alpha/kernel-features.h
- (__ASSUME_EXECVEAT) [__LINUX_KERNEL_VERSION < 0x040200]: Undef.
- * sysdeps/unix/sysv/linux/hppa/kernel-features.h
- (__ASSUME_EXECVEAT) [__LINUX_KERNEL_VERSION < 0x040000]: Undef.
- * sysdeps/unix/sysv/linux/microblaze/kernel-features.h
- (__ASSUME_EXECVEAT) [__LINUX_KERNEL_VERSION < 0x040000]: Undef.
- * posix/Makefile (tests): Add tst-fexecve.
- * posix/tst-fexecve.c: New file.
-
-2017-09-19 Wilco Dijkstra <wdijkstr@arm.com>
-
- * benchtests/Makefile: Add logf benchmark.
- * benchtests/logf-inputs: Add reduced trace from wrf_r.
-
-2017-09-19 Wilco Dijkstra <wdijkstr@arm.com>
-
- * benchtests/Makefile: Add expf benchmark.
- * benchtests/expf-inputs: Add reduced trace from wrf_r.
-
-2017-09-19 Wilco Dijkstra <wdijkstr@arm.com>
-
- * csu/Makefile: Add -funwind-tables to libc-start.c.
- * debug/Makefile: Add -funwind-tables to backtrace.c.
- * sysdeps/aarch64/Makefile: Remove CFLAGS-backtrace.c.
- * sysdeps/arm/Makefile: Likewise.
- * sysdeps/i386/Makefile: Likewise.
- * sysdeps/m68k/Makefile: Likewise.
- * sysdeps/mips/Makefile: Likewise.
- * sysdeps/nios2/Makefile: Likewise.
- * sysdeps/sh/Makefile: Likewise.
- * sysdeps/sparc/Makefile: Likewise.
-
-2017-09-19 Joseph Myers <joseph@codesourcery.com>
-
- * benchtests/Makefile (bench-math): Add trunc and truncf.
- (CFLAGS-bench-trunc.c): New variable.
- (CFLAGS-bench-truncf.c): Likewise.
- * benchtests/trunc-inputs: New file.
- * benchtests/truncf-inputs: Likewise.
-
-2017-09-19 Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>
-
- * sysdeps/powerpc/powerpc64/power8/memset.S: Avoid misaligned stores.
-
-2017-09-18 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/ieee754/ldbl-opt/w_exp10l_compat.c [LIBM_SVID_COMPAT &&
- !LONG_DOUBLE_COMPAT (libm, GLIBC_2_1)] (weak_alias): Undefine and
- redefine.
- [LIBM_SVID_COMPAT && !LONG_DOUBLE_COMPAT (libm, GLIBC_2_1)]
- (exp10l): Define as weak alias.
- * sysdeps/ieee754/ldbl-opt/w_remainderl_compat.c [LIBM_SVID_COMPAT
- && !LONG_DOUBLE_COMPAT (libm, GLIBC_2_0)] (weak_alias): Undefine
- and redefine.
- [LIBM_SVID_COMPAT && !LONG_DOUBLE_COMPAT (libm, GLIBC_2_0)]
- (remainderl): Define as weak alias.
-
- * math/s_fmal.c: Include <libm-alias-ldouble.h>.
- (fmal): Define using libm_alias_ldouble.
- * math/w_acoshl_compat.c: Include <libm-alias-ldouble.h>.
- (acoshl): Define using libm_alias_ldouble.
- * math/w_acosl_compat.c: Include <libm-alias-ldouble.h>.
- (acosl): Define using libm_alias_ldouble.
- * math/w_asinl_compat.c: Include <libm-alias-ldouble.h>.
- (asinl): Define using libm_alias_ldouble.
- * math/w_atan2l_compat.c: Include <libm-alias-ldouble.h>.
- (atan2l): Define using libm_alias_ldouble.
- * math/w_atanhl_compat.c: Include <libm-alias-ldouble.h>.
- (atanhl): Define using libm_alias_ldouble.
- * math/w_coshl_compat.c: Include <libm-alias-ldouble.h>.
- (coshl): Define using libm_alias_ldouble.
- * math/w_exp10l_compat.c: Include <libm-alias-ldouble.h>.
- (exp10l): Define using libm_alias_ldouble.
- * math/w_exp2l_compat.c: Include <libm-alias-ldouble.h>.
- (exp2l): Define using libm_alias_ldouble.
- * math/w_expl_compat.c: Include <libm-alias-ldouble.h>.
- (expl): Define using libm_alias_ldouble.
- * math/w_fmodl_compat.c: Include <libm-alias-ldouble.h>.
- (fmodl): Define using libm_alias_ldouble.
- * math/w_hypotl_compat.c: Include <libm-alias-ldouble.h>.
- (hypotl): Define using libm_alias_ldouble.
- * math/w_j0l_compat.c: Include <libm-alias-ldouble.h>.
- (j0l): Define using libm_alias_ldouble.
- (y0l): Likewise.
- * math/w_j1l_compat.c: Include <libm-alias-ldouble.h>.
- (j1l): Define using libm_alias_ldouble.
- (y1l): Likewise.
- * math/w_jnl_compat.c: Include <libm-alias-ldouble.h>.
- (jnl): Define using libm_alias_ldouble.
- (ynl): Likewise.
- * math/w_log10l_compat.c: Include <libm-alias-ldouble.h>.
- (log10l): Define using libm_alias_ldouble.
- * math/w_log2l_compat.c: Include <libm-alias-ldouble.h>.
- (log2l): Define using libm_alias_ldouble.
- * math/w_logl_compat.c: Include <libm-alias-ldouble.h>.
- (logl): Define using libm_alias_ldouble.
- * math/w_powl_compat.c: Include <libm-alias-ldouble.h>.
- (powl): Define using libm_alias_ldouble.
- * math/w_remainderl_compat.c: Include <libm-alias-ldouble.h>.
- (remainderl): Define using libm_alias_ldouble.
- * math/w_sinhl_compat.c: Include <libm-alias-ldouble.h>.
- (sinhl): Define using libm_alias_ldouble.
- * math/w_sqrtl_compat.c: Include <libm-alias-ldouble.h>.
- (sqrtl): Define using libm_alias_ldouble.
- * math/w_tgammal_compat.c: Include <libm-alias-ldouble.h>.
- (tgammal): Define using libm_alias_ldouble.
- * sysdeps/ieee754/ldbl-opt/w_exp10l_compat.c [LIBM_SVID_COMPAT]
- (exp10l): Do not use long_double_symbol here.
- * sysdeps/ieee754/ldbl-opt/w_remainderl_compat.c
- [LIBM_SVID_COMPAT] (remainderl): Likewise.
- * sysdeps/ieee754/ldbl-opt/s_fmal.c: Remove.
- * sysdeps/ieee754/ldbl-opt/w_acoshl_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_acosl_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_asinl_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_atan2l_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_atanhl_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_coshl_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_expl_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_fmodl_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_hypotl_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_j0l_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_j1l_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_jnl_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_log10l_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_log2l_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_logl_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_powl_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_sinhl_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_sqrtl_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_tgammal_compat.c: Likewise.
-
-2017-09-18 Wang Boshi <wangboshi@huawei.com> (tiny change)
-
- * sysdeps/aarch64/start.S: Use MOVL instead of literal pools.
- * sysdeps/aarch64/sysdep.h (MOVL): Add MOVL macro.
-
-2017-09-17 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * io/read.c (read): Add libc_hidden_weak.
- * sysdeps/mach/hurd/read.c (read): Likewise.
- * io/write.c (write): Likewise.
- * sysdeps/mach/hurd/write.c (write): Likewise.
- * io/pread64.c (__pread64): Likewise.
- * sysdeps/mach/hurd/pread64.c (__pread64): Likewise.
- * posix/pread64.c (__pread64): Add libc_hidden_def.
-
-2017-09-16 Siddhesh Poyarekar <siddhesh@sourceware.org>
-
- * benchtests/scripts/compare_strings.py: New option -g.
- (draw_graph): Print a message that a graph is being generated.
- (process_results): Generate graph only if -g is passed.
- (main): Process option -g.
-
- * benchtests/scripts/compare_strings.py (process_results):
- Better spacing for output.
-
- * benchtests/scripts/compare_strings.py: Use argparse.
- * benchtests/README: Document existence of compare_strings.py.
-
-2017-09-15 Joseph Myers <joseph@codesourcery.com>
-
- * math/s_fma.c: Include <libm-alias-double.h>.
- (fma): Define using libm_alias_double.
- * math/s_nextafter.c: Include <libm-alias-double.h>.
- (nextafter): Define using libm_alias_double.
- * math/w_acos_compat.c: Include <libm-alias-double.h>.
- (acos): Define using libm_alias_double.
- * math/w_acosh_compat.c: Include <libm-alias-double.h>.
- (aocsh): Define using libm_alias_double.
- * math/w_asin_compat.c: Include <libm-alias-double.h>.
- (asin): Define using libm_alias_double.
- * math/w_atan2_compat.c: Include <libm-alias-double.h>.
- (atan2): Define using libm_alias_double.
- * math/w_atanh_compat.c: Include <libm-alias-double.h>.
- (atanh): Define using libm_alias_double.
- * math/w_cosh_compat.c: Include <libm-alias-double.h>.
- (cosh): Define using libm_alias_double.
- * math/w_exp10_compat.c: Include <libm-alias-double.h>.
- (exp10): Define using libm_alias_double.
- * math/w_exp2_compat.c: Include <libm-alias-double.h>.
- (exp2): Define using libm_alias_double.
- * math/w_exp_compat.c: Include <libm-alias-double.h>.
- (exp): Define using libm_alias_double.
- * math/w_fmod_compat.c: Include <libm-alias-double.h>.
- (fmod): Define using libm_alias_double.
- * math/w_hypot_compat.c: Include <libm-alias-double.h>.
- (hypot): Define using libm_alias_double.
- * math/w_j0_compat.c: Include <libm-alias-double.h>.
- (j0): Define using libm_alias_double.
- (y0): Likewise.
- * math/w_j1_compat.c: Include <libm-alias-double.h>.
- (j1): Define using libm_alias_double.
- (y1): Likewise.
- * math/w_jn_compat.c: Include <libm-alias-double.h>.
- (jn): Define using libm_alias_double.
- (yn): Likewise.
- * math/w_log10_compat.c: Include <libm-alias-double.h>.
- (log10): Define using libm_alias_double.
- * math/w_log2_compat.c: Include <libm-alias-double.h>.
- (log2): Define using libm_alias_double.
- * math/w_log_compat.c: Include <libm-alias-double.h>.
- (log): Define using libm_alias_double.
- * math/w_pow_compat.c: Include <libm-alias-double.h>.
- (pow): Define using libm_alias_double.
- * math/w_remainder_compat.c: Include <libm-alias-double.h>.
- (remainder): Define using libm_alias_double.
- * math/w_sinh_compat.c: Include <libm-alias-double.h>.
- (sinh): Define using libm_alias_double.
- * math/w_sqrt_compat.c: Include <libm-alias-double.h>.
- (sqrt): Define using libm_alias_double.
- * math/w_tgamma_compat.c: Include <libm-alias-double.h>.
- (tgamma): Define using libm_alias_double.
- * sysdeps/ieee754/ldbl-opt/s_nextafter.c [LONG_DOUBLE_COMPAT(libm,
- GLIBC_2_0)] (nextafterl): Do not define compat symbol here.
- * sysdeps/ieee754/ldbl-opt/w_exp10_compat.c
- [LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)] (exp10l): Likewise.
- * sysdeps/ieee754/ldbl-opt/w_remainder_compat.c
- [LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)] (remainderl): Likewise.
- * sysdeps/ieee754/ldbl-opt/w_acos_compat.c: Remove.
- * sysdeps/ieee754/ldbl-opt/w_acosh_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_asin_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_atan2_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_atanh_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_cosh_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_exp_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_fmod_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_hypot_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_j0_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_j1_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_jn_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_log10_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_log2_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_log_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_pow_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_sinh_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_sqrt_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_tgamma_compat.c: Likewise.
-
- * math/e_acoshl.c: Remove.
- * math/e_acosl.c: Likewise.
- * math/e_asinl.c: Likewise.
- * math/e_atan2l.c: Likewise.
- * math/e_atanhl.c: Likewise.
- * math/e_coshl.c: Likewise.
- * math/e_expl.c: Likewise.
- * math/e_fmodl.c: Likewise.
- * math/e_gammal_r.c: Likewise.
- * math/e_hypotl.c: Likewise.
- * math/e_j0l.c: Likewise.
- * math/e_j1l.c: Likewise.
- * math/e_jnl.c: Likewise.
- * math/e_lgammal_r.c: Likewise.
- * math/e_log10l.c: Likewise.
- * math/e_log2l.c: Likewise.
- * math/e_logl.c: Likewise.
- * math/e_powl.c: Likewise.
- * math/e_rem_pio2l.c: Likewise.
- * math/e_sinhl.c: Likewise.
- * math/e_sqrtf128.c: Likewise.
- * math/e_sqrtl.c: Likewise.
- * math/k_cosl.c: Likewise.
- * math/k_sinl.c: Likewise.
- * math/k_tanl.c: Likewise.
- * math/s_asinhl.c: Likewise.
- * math/s_atanl.c: Likewise.
- * math/s_cbrtl.c: Likewise.
- * math/s_erfl.c: Likewise.
- * math/s_expm1l.c: Likewise.
- * math/s_log1pl.c: Likewise.
- * math/s_tanhl.c: Likewise.
-
-2017-09-15 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
-
- [BZ #21745]
- * sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile:
- [$(subdir) = math] (sysdep_calls): New variable. Has the
- previous contents of sysdep_routines, but re-sorted..
- [$(subdir) = math] (sysdep_routines): Re-use the contents from
- sysdep_calls.
- [$(subdir) = math] (libm-sysdep_routines): Remove the functions
- defined in sysdep_calls and replace by the respective m_* names.
- * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-ppc64.S:
- (compat_symbol): Undefine to avoid duplicated compat symbols in
- libc.
-
-2017-09-15 Joseph Myers <joseph@codesourcery.com>
-
- * math/s_fmaf.c: Include <libm-alias-float.h>.
- (fmaf): Define using libm_alias_float.
- * math/w_acosf_compat.c: Include <libm-alias-float.h>.
- (acosf): Define using libm_alias_float.
- * math/w_acoshf_compat.c: Include <libm-alias-float.h>.
- (acoshf): Define using libm_alias_float.
- * math/w_asinf_compat.c: Include <libm-alias-float.h>.
- (asinf): Define using libm_alias_float.
- * math/w_atan2f_compat.c: Include <libm-alias-float.h>.
- (atan2f): Define using libm_alias_float.
- * math/w_atanhf_compat.c: Include <libm-alias-float.h>.
- (atanhf): Define using libm_alias_float.
- * math/w_coshf_compat.c: Include <libm-alias-float.h>.
- (coshf): Define using libm_alias_float.
- * math/w_exp10f_compat.c: Include <libm-alias-float.h>.
- (exp10f): Define using libm_alias_float.
- * math/w_fmodf_compat.c: Include <libm-alias-float.h>.
- (fmodf): Define using libm_alias_float.
- * math/w_hypotf_compat.c: Include <libm-alias-float.h>.
- (hypotf): Define using libm_alias_float.
- * math/w_j0f_compat.c: Include <libm-alias-float.h>.
- (j0f): Define using libm_alias_float.
- (y0f): Likewise.
- * math/w_j1f_compat.c: Include <libm-alias-float.h>.
- (j1f): Define using libm_alias_float.
- (y1f): Likewise.
- * math/w_jnf_compat.c: Include <libm-alias-float.h>.
- (jnf): Define using libm_alias_float.
- (ynf): Likewise.
- * math/w_log10f_compat.c: Include <libm-alias-float.h>.
- (log10f): Define using libm_alias_float.
- * math/w_log2f_compat.c: Include <libm-alias-float.h>.
- (log2f): Define using libm_alias_float.
- * math/w_logf_compat.c: Include <libm-alias-float.h>.
- (logf): Define using libm_alias_float.
- * math/w_powf_compat.c: Include <libm-alias-float.h>.
- (powf): Define using libm_alias_float.
- * math/w_remainderf_compat.c: Include <libm-alias-float.h>.
- (remainderf): Define using libm_alias_float.
- * math/w_sinhf_compat.c: Include <libm-alias-float.h>.
- (sinhf): Define using libm_alias_float.
- * math/w_sqrtf_compat.c: Include <libm-alias-float.h>.
- (sqrtf): Define using libm_alias_float.
- * math/w_tgammaf_compat.c: Include <libm-alias-float.h>.
- (tgammaf): Define using libm_alias_float.
-
-2017-09-14 Joseph Myers <joseph@codesourcery.com>
-
- * include/math.h (roundeven): Change hidden_proto call to
- __roundeven.
- * math/w_j0_compat.c (j0): Rename to __j0 and define as weak
- alias.
- [NO_LONG_DOUBLE] (__j0l): New strong alias.
- (y0): Rename to __y0 and define as weak alias.
- [NO_LONG_DOUBLE] (__y0l): New strong alias.
- * math/w_j0f_compat.c (j0f): Rename to __j0f and define as weak
- alias.
- (y0f): Rename to __y0f and define as weak alias.
- * math/w_j1_compat.c (j1): Rename to __j1 and define as weak
- alias.
- [NO_LONG_DOUBLE] (__j1l): New strong alias.
- (y1): Rename to __y1 and define as weak alias.
- [NO_LONG_DOUBLE] (__y1l): New strong alias.
- * math/w_j1f_compat.c (j1f): Rename to __j1f and define as weak
- alias.
- (y1f): Rename to __y1f and define as weak alias.
- * math/w_jn_compat.c (jn): Rename to __jn and define as weak
- alias.
- [NO_LONG_DOUBLE] (__jnl): New strong alias.
- (yn): Rename to __yn and define as weak alias.
- [NO_LONG_DOUBLE] (__ynl): New strong alias.
- * math/w_jnf_compat.c (jnf): Rename to __jnf and define as weak
- alias.
- (ynf): Rename to __ynf and define as weak alias.
- * sysdeps/ieee754/dbl-64/s_fromfp.c (FUNC): Define to __fromfp.
- (fromfp): Define as weak alias.
- [NO_LONG_DOUBLE] (__fromfpl): New strong alias.
- * sysdeps/ieee754/dbl-64/s_fromfpx.c (FUNC): Define to __fromfpx.
- (fromfpx): Define as weak alias.
- [NO_LONG_DOUBLE] (__fromfpxl): New strong alias.
- * sysdeps/ieee754/dbl-64/s_getpayload.c (getpayload): Rename to
- __getpayload and define as weak alias.
- [NO_LONG_DOUBLE] (__getpayloadl): New strong alias.
- * sysdeps/ieee754/dbl-64/s_roundeven.c (roundeven): Rename to
- __roundeven and define as weak alias.
- [NO_LONG_DOUBLE] (__roundevenl): New strong alias.
- * sysdeps/ieee754/dbl-64/s_setpayload.c (FUNC): Define to
- __setpayload.
- (setpayload): Define as weak alias.
- [NO_LONG_DOUBLE] (__setpayloadl): New strong alias.
- * sysdeps/ieee754/dbl-64/s_setpayloadsig.c (FUNC): Define to
- __setpayloadsig.
- (setpayloadsig): Define as weak alias.
- [NO_LONG_DOUBLE] (__setpayloadsigl): New strong alias.
- * sysdeps/ieee754/dbl-64/s_totalorder.c (totalorder): Rename to
- __totalorder and define as weak alias.
- [NO_LONG_DOUBLE] (__totalorderl): New strong alias.
- * sysdeps/ieee754/dbl-64/s_totalordermag.c (totalordermag): Rename
- to __totalordermag and define as weak alias.
- [NO_LONG_DOUBLE] (__totalordermagl): New strong alias.
- * sysdeps/ieee754/dbl-64/s_ufromfp.c (FUNC): Define to __ufromfp.
- (ufromfp): Define as weak alias.
- [NO_LONG_DOUBLE] (__ufromfpl): New strong alias.
- * sysdeps/ieee754/dbl-64/s_ufromfpx.c (FUNC): Define to
- __ufromfpx.
- (ufromfpx): Define as weak alias.
- [NO_LONG_DOUBLE] (__ufromfpxl): New strong alias.
- * sysdeps/ieee754/dbl-64/wordsize-64/s_getpayload.c (getpayload):
- Rename to __getpayload and define as weak alias.
- [NO_LONG_DOUBLE] (__getpayloadl): New strong alias.
- * sysdeps/ieee754/dbl-64/wordsize-64/s_roundeven.c (roundeven):
- Rename to __roundeven and define as weak alias.
- [NO_LONG_DOUBLE] (__roundevenl): New strong alias.
- * sysdeps/ieee754/dbl-64/wordsize-64/s_totalorder.c (totalorder):
- Rename to __totalorder and define as weak alias.
- [NO_LONG_DOUBLE] (__totalorderl): New strong alias.
- * sysdeps/ieee754/dbl-64/wordsize-64/s_totalordermag.c
- (totalordermag): Rename to __totalordermag and define as weak
- alias.
- [NO_LONG_DOUBLE] (__totalordermagl): New strong alias.
- * sysdeps/ieee754/float128/float128_private.h (__getpayloadl): New
- macro.
- (__roundevenl): Likewise.
- (__totalorderl): Likewise.
- (__totalordermagl): Likewise
- * sysdeps/ieee754/float128/s_fromfpf128.c (FUNC): Define to
- __fromfpf128.
- (fromfpf128): Define as weak alias.
- * sysdeps/ieee754/float128/s_fromfpxf128.c (FUNC): Define to
- __fromfpxf128.
- (fromfpxf128): Define as weak alias.
- * sysdeps/ieee754/float128/s_setpayloadf128.c (FUNC): Define to
- __setpayloadf128.
- (setpayloadf128): Define as weak alias.
- * sysdeps/ieee754/float128/s_setpayloadsigf128.c (FUNC): Define to
- __setpayloadsigf128.
- (setpayloadsigf128): Define as weak alias.
- * sysdeps/ieee754/float128/s_ufromfpf128.c (FUNC): Define to
- __ufromfpf128.
- (ufromfpf128): Define as weak alias.
- * sysdeps/ieee754/float128/s_ufromfpxf128.c (FUNC): Define to
- __ufromfpxf128.
- (ufromfpxf128): Define as weak alias.
- * sysdeps/ieee754/flt-32/s_fromfpf.c (FUNC): Define to __fromfpf.
- (fromfpf): Define as weak alias.
- * sysdeps/ieee754/flt-32/s_fromfpxf.c (FUNC): Define to
- __fromfpxf.
- (fromfpxf): Define as weak alias.
- * sysdeps/ieee754/flt-32/s_getpayloadf.c (getpayloadf): Rename to
- __getpayloadf and define as weak alias.
- * sysdeps/ieee754/flt-32/s_roundevenf.c (roundevenf): Rename to
- __roundevenf and define as weak alias.
- * sysdeps/ieee754/flt-32/s_setpayloadf.c (FUNC): Define to
- __setpayloadf.
- (setpayloadf): Define as weak alias.
- * sysdeps/ieee754/flt-32/s_setpayloadsigf.c (FUNC): Define to
- __setpayloadsigf.
- (setpayloadsigf): Define as weak alias.
- * sysdeps/ieee754/flt-32/s_totalorderf.c (totalorderf): Rename to
- __totalorderf and define as weak alias.
- * sysdeps/ieee754/flt-32/s_totalordermagf.c (totalordermagf):
- Rename to __totalordermagf and define as weak alias.
- * sysdeps/ieee754/flt-32/s_ufromfpf.c (FUNC): Define to
- __ufromfpf.
- (ufromfpf): Define as weak alias.
- * sysdeps/ieee754/flt-32/s_ufromfpxf.c (FUNC): Define to
- __ufromfpxf.
- (ufromfpxf): Define as weak alias.
- * sysdeps/ieee754/ldbl-128/s_fromfpl.c (FUNC): Define to
- __fromfpl.
- (fromfpl): Define as weak alias.
- * sysdeps/ieee754/ldbl-128/s_fromfpxl.c (FUNC): Define to
- __fromfpxl.
- (fromfpxl): Define as weak alias.
- * sysdeps/ieee754/ldbl-128/s_getpayloadl.c (getpayloadl): Rename
- to __getpayloadl and define as weak alias.
- * sysdeps/ieee754/ldbl-128/s_roundevenl.c (roundevenl): Rename to
- __roundevenl and define as weak alias.
- * sysdeps/ieee754/ldbl-128/s_setpayloadl.c (FUNC): Define to
- __setpayloadl.
- (setpayloadl): Define as weak alias.
- * sysdeps/ieee754/ldbl-128/s_setpayloadsigl.c (FUNC): Define to
- __setpayloadsigl.
- (setpayloadsigl): Define as weak alias.
- * sysdeps/ieee754/ldbl-128/s_totalorderl.c (totalorderl): Rename
- to __totalorderl and define as weak alias.
- * sysdeps/ieee754/ldbl-128/s_totalordermagl.c (totalordermagl):
- Rename to __totalordermagl and define as weak alias.
- * sysdeps/ieee754/ldbl-128/s_ufromfpl.c (FUNC): Define to
- __ufromfpl.
- (ufromfpl): Define as weak alias.
- * sysdeps/ieee754/ldbl-128/s_ufromfpxl.c (FUNC): Define to
- __ufromfpxl.
- (ufromfpxl): Define as weak alias.
- * sysdeps/ieee754/ldbl-128ibm/s_fromfpl.c (FUNC): Define to
- __fromfpl.
- (fromfpl): Define as weak alias.
- * sysdeps/ieee754/ldbl-128ibm/s_fromfpxl.c (FUNC): Define to
- __fromfpxl.
- (fromfpxl): Define as weak alias.
- * sysdeps/ieee754/ldbl-128ibm/s_getpayloadl.c (getpayloadl):
- Rename to __getpayloadl and define as weak alias.
- * sysdeps/ieee754/ldbl-128ibm/s_roundevenl.c (roundevenl): Rename
- to __roundevenl and define as weak alias. Call __roundeven
- instead of roundeven.
- * sysdeps/ieee754/ldbl-128ibm/s_setpayloadl.c (FUNC): Define to
- __setpayloadl.
- (setpayloadl): Define as weak alias.
- * sysdeps/ieee754/ldbl-128ibm/s_setpayloadsigl.c (FUNC): Define to
- __setpayloadsigl.
- (setpayloadsigl): Define as weak alias.
- * sysdeps/ieee754/ldbl-128ibm/s_totalorderl.c (totalorderl):
- Rename to __totalorderl and define as weak alias.
- * sysdeps/ieee754/ldbl-128ibm/s_totalordermagl.c (totalordermagl):
- Rename to __totalordermagl and define as weak alias.
- * sysdeps/ieee754/ldbl-128ibm/s_ufromfpl.c (FUNC): Define to
- __ufromfpl.
- (ufromfpl): Define as weak alias.
- * sysdeps/ieee754/ldbl-128ibm/s_ufromfpxl.c (FUNC): Define to
- __ufromfpxl.
- (ufromfpxl): Define as weak alias.
- * sysdeps/ieee754/ldbl-96/s_fromfpl.c (FUNC): Define to
- __fromfpl.
- (fromfpl): Define as weak alias.
- * sysdeps/ieee754/ldbl-96/s_fromfpxl.c (FUNC): Define to
- __fromfpxl.
- (fromfpxl): Define as weak alias.
- * sysdeps/ieee754/ldbl-96/s_getpayloadl.c (getpayloadl): Rename to
- __getpayloadl and define as weak alias.
- * sysdeps/ieee754/ldbl-96/s_roundevenl.c (roundevenl): Rename to
- __roundevenl and define as weak alias.
- * sysdeps/ieee754/ldbl-96/s_setpayloadl.c (FUNC): Define to
- __setpayloadl.
- (setpayloadl): Define as weak alias.
- * sysdeps/ieee754/ldbl-96/s_setpayloadsigl.c (FUNC): Define to
- __setpayloadsigl.
- (setpayloadsigl): Define as weak alias.
- * sysdeps/ieee754/ldbl-96/s_totalorderl.c (totalorderl): Rename to
- __totalorderl and define as weak alias.
- * sysdeps/ieee754/ldbl-96/s_totalordermagl.c (totalordermagl):
- Rename to __totalordermagl and define as weak alias.
- * sysdeps/ieee754/ldbl-96/s_ufromfpl.c (FUNC): Define to
- __ufromfpl.
- (ufromfpl): Define as weak alias.
- * sysdeps/ieee754/ldbl-96/s_ufromfpxl.c (FUNC): Define to
- __ufromfpxl.
- (ufromfpxl): Define as weak alias.
-
-2017-09-14 Siddhesh Poyarekar <siddhesh@sourceware.org>
-
- * benchtests/bench-string.h (realloc_bufs): New function.
- (test_init): Call it.
- * benchtests/bench-memset-large.c (do_test): Likewise.
- * benchtests/bench-memset.c (do_test): Likewise.
-
- * benchtests/bench-memset-large.c: Print output in JSON
- format.
- * benchtests/bench-memset.c: Likewise.
-
-2017-09-14 Mike FABIAN <mfabian@redhat.com>
-
- [BZ #21084]
- * benchtests/strcoll-inputs/filelist#en_US.UTF-8: Add IBM858 and ibm858.c.
- * iconvdata/Makefile: Add IBM858.
- * iconvdata/gconv-modules: Likewise.
- * iconvdata/tst-tables.sh: Likewise.
- * iconvdata/ibm858.c: New file.
- * localedata/charmaps/IBM858: Likewise.
-
-2017-09-14 Akhilesh Kumar <akhilesh.k@samsung.com>
-
- [BZ #22023]
- * locales/niu_NZ (LC_TIME): copy "niu_NU".
- * locales/niu_NZ (LC_MESSAGES): copy "niu_NU".
-
-2017-09-14 Mike FABIAN <mfabian@redhat.com>
-
- [BZ #22112]
- * localedata/locales/az_AZ(LC_TELEPHONE): Fix int_select
- and add tel_int_fmt.
-
-2017-09-14 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/generic/libm-alias-float128.h: New file.
- * sysdeps/generic/math-type-macros-float128.h: Include
- <libm-alias-float128.h>.
- [!declare_mgen_alias] (declare_mgen_alias): Define macro.
-
-2017-09-13 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/generic/libm-alias-ldouble.h: New file.
- * sysdeps/ieee754/ldbl-opt/libm-alias-ldouble.h: Likewise.
- * sysdeps/ieee754/ldbl-opt/math-type-macros-ldouble.h: Remove.
- * sysdeps/generic/math-type-macros-ldouble.h: Include
- <libm-alias-ldouble.h>.
- [!declare_mgen_alias] (declare_mgen_alias): Define to use
- libm_alias_ldouble.
-
-2017-09-13 Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- * sysdeps/ieee754/dbl-64/w_exp_compat.c: Move to...
- * math/w_exp_compat.c: ... here.
- * sysdeps/ieee754/flt-32/w_expf_compat.c: Move to...
- * math/w_expf_compat.c: ... here.
- * sysdeps/ieee754/ldbl-128/w_expl_compat.c: Move to...
- * math/w_expl_compat.c: ... here.
- * sysdeps/ieee754/ldbl-128ibm/w_expl_compat.c: Remove.
- * sysdeps/ieee754/ldbl-96/w_expl_compat.c: Remove.
- * sysdeps/ieee754/ldbl-opt/w_exp_compat.c: Use the new path.
- * sysdeps/ieee754/ldbl-opt/w_expl_compat.c: Likewise.
-
-2017-09-13 Joseph Myers <joseph@codesourcery.com>
-
- * math/w_scalbln_template.c (strong_alias): Do not undefine and
- redefine.
- * sysdeps/ieee754/ldbl-opt/s_ldexp.c (declare_mgen_alias): Remove
- macro.
- (ldexpl): Only define as compat symbol for libc, not libm.
- (scalbnl): Define as compat symbol for libc here.
- * sysdeps/ieee754/ldbl-opt/s_ldexpl.c (declare_mgen_alias): Only
- define for [IS_IN (libc)].
- (__ldexpl_2): Remove alias.
- (ldexpl): Only define with long_double_symbol if [IS_IN (libc)].
- (scalbnl): Likewise. Use __wrap_scalbnl not __ldexpl_2 as base
- name in long_double_symbol call.
- * sysdeps/ieee754/ldbl-opt/s_log1p.c: Remove file.
- * sysdeps/ieee754/ldbl-opt/s_scalbln.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/s_scalbn.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_log1p.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_scalbln.c (declare_mgen_alias):
- Remove macro.
- [IS_IN (libc) && LONG_DOUBLE_COMPAT (libc, GLIBC_2_1)] (scalblnl):
- Define as compat symbol.
-
-2017-09-13 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * sysdeps/unix/sysv/linux/s390/s390-32/oldglob.c: New file.
- * sysdeps/unix/sysv/linux/alpha/Makefile
- [$(subdir) = csu] (sysdep_routines): Remove rule.
-
-2017-09-13 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/generic/libm-alias-double.h: New file.
- * sysdeps/ieee754/ldbl-opt/libm-alias-double.h: Likewise.
- * sysdeps/generic/math-type-macros-double.h: Include
- <libm-alias-double.h>.
- [declare_mgen_alias] (declare_mgen_alias): Define to use
- libm_alias_double.
- * sysdeps/generic/math-type-macros.h [!M_LIBM_NEED_COMPAT]
- (M_LIBM_NEED_COMPAT): Remove macro.
- [!M_LIBM_NEED_COMPAT] (declare_mgen_libm_compat): Likewise.
- * sysdeps/ieee754/ldbl-opt/math-type-macros-double.h: Remove.
- * math/cabs_template.c [M_LIBM_NEED_COMPAT]: Remove conditional
- code.
- * math/carg_template.c [M_LIBM_NEED_COMPAT]: Likewise.
- * math/cimag_template.c [M_LIBM_NEED_COMPAT]: Likewise.
- * math/conj_template.c [M_LIBM_NEED_COMPAT]: Likewise.
- * math/creal_template.c [M_LIBM_NEED_COMPAT]: Likewise.
- * math/s_cacos_template.c [M_LIBM_NEED_COMPAT]: Likewise.
- * math/s_cacosh_template.c [M_LIBM_NEED_COMPAT]: Likewise.
- * math/s_casin_template.c [M_LIBM_NEED_COMPAT]: Likewise.
- * math/s_casinh_template.c [M_LIBM_NEED_COMPAT]: Likewise.
- * math/s_catan_template.c [M_LIBM_NEED_COMPAT]: Likewise.
- * math/s_catanh_template.c [M_LIBM_NEED_COMPAT]: Likewise.
- * math/s_ccos_template.c [M_LIBM_NEED_COMPAT]: Likewise.
- * math/s_ccosh_template.c [M_LIBM_NEED_COMPAT]: Likewise.
- * math/s_cexp_template.c [M_LIBM_NEED_COMPAT]: Likewise.
- * math/s_clog10_template.c [M_LIBM_NEED_COMPAT]: Likewise.
- * math/s_clog_template.c [M_LIBM_NEED_COMPAT]: Likewise.
- * math/s_cpow_template.c [M_LIBM_NEED_COMPAT]: Likewise.
- * math/s_cproj_template.c [M_LIBM_NEED_COMPAT]: Likewise.
- * math/s_csin_template.c [M_LIBM_NEED_COMPAT]: Likewise.
- * math/s_csinh_template.c [M_LIBM_NEED_COMPAT]: Likewise.
- * math/s_csqrt_template.c [M_LIBM_NEED_COMPAT]: Likewise.
- * math/s_ctan_template.c [M_LIBM_NEED_COMPAT]: Likewise.
- * math/s_ctanh_template.c [M_LIBM_NEED_COMPAT]: Likewise.
- * math/s_fdim_template.c [M_LIBM_NEED_COMPAT]: Likewise.
- * math/s_fmax_template.c [M_LIBM_NEED_COMPAT]: Likewise.
- * math/s_fmin_template.c [M_LIBM_NEED_COMPAT]: Likewise.
- * math/s_nan_template.c [M_LIBM_NEED_COMPAT]: Likewise.
- * math/w_ilogb_template.c [M_LIBM_NEED_COMPAT]: Likewise.
- * sysdeps/ieee754/ldbl-opt/s_clog10.c: New file.
- * sysdeps/ieee754/ldbl-opt/s_ldexp.c (M_LIBM_NEED_COMPAT): Remove
- macro.
- (declare_mgen_alias): New macro.
- * sysdeps/ieee754/ldbl-opt/w_log1p.c: New file.
- * sysdeps/ieee754/ldbl-opt/w_scalbln.c: Likewise.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim-vis3.c
- (M_LIBM_NEED_COMPAT): Remove macro.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.c
- [HAVE_AS_VIS3_SUPPORT]: Include <math_ldbl_opt.h> and
- <first-versions.h>.
- [HAVE_AS_VIS3_SUPPORT && LONG_DOUBLE_COMPAT (libm,
- FIRST_VERSION_libm_fdiml)]: Define fdiml as compat symbol.
-
-2017-09-12 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/generic/math-type-macros.h [!declare_mgen_alias_2]
- (declare_mgen_alias_2): Remove.
- * sysdeps/generic/math-type-macros-double.h
- [NO_LONG_DOUBLE && !declare_mgen_alias_2] (declare_mgen_alias_2):
- Likewise.
- * math/s_ldexp_template.c (M_SUF (__wrap_scalbn)): Define strong
- alias.
- (ldexp): Define with declare_mgen_alias.
- (scalbn): Likewise.
-
-2017-09-12 Steve Ellcey <sellcey@cavium.com>
-
- * grp/initgroups.c: Include config.h.
- (DEFAULT_CONFIG): New macro.
- (internal_getgrouplist): Use DEFAULT_CONFIG.
- * nscd/initgrcache.c (addinitgroupsX): Likewise.
- * nss/nsswitch.c (__nss_disable_nscd): Likewise.
- (DEFAULT_DEFCONFIG): New macro.
- (__nss_database_lookup): Use DEFAULT_DEFCONFIG.
- * nss/grp-lookup.c: Include config.h
- (DEFAULT_CONFIG): Set definition based on LINK_OBSOLETE_NSL.
- * nss/pwd-lookup.c (DEFAULT_CONFIG): Likewise.
- * nss/spwd-lookup.c (DEFAULT_CONFIG): Likewise.
- * manual/nss.texi: Update default values section.
-
-2017-09-12 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #21967]
- * sysdeps/x86/cpu-features.h (bit_arch_MathVec_Prefer_No_AVX512):
- New.
- (index_arch_MathVec_Prefer_No_AVX512): Likewise.
- * sysdeps/x86/cpu-tunables.c (TUNABLE_CALLBACK (set_hwcaps)):
- Handle MathVec_Prefer_No_AVX512.
- * sysdeps/x86_64/fpu/multiarch/ifunc-mathvec-avx512.h
- (IFUNC_SELECTOR): Return AVX2 version if MathVec_Prefer_No_AVX512
- is set.
-
-2017-09-12 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * posix/sched_primax.c (__sched_get_priority_max): Add
- libc_hidden_def.
- * posix/sched_primin.c (__sched_get_priority_min): Likewise.
- * sysdeps/mach/hurd/mmap.c (__mmap): Likewise.
- * sysdeps/mach/hurd/mmap64.c (__mmap64): Likewise.
- * sysdeps/mach/hurd/mprotect.c (__mprotect): Likewise.
- * sysdeps/mach/hurd/munmap.c (__munmap): Likewise.
- * sysdeps/mach/hurd/dl-sysdep.c (__GI___getpid,
- __GI___strtoul_internal, __GI_____strtoul_internal, __GI___chk_fail,
- __GI___fortify_fail, __GI___assert_fail, __GI___assert_perror_fail):
- Add aliases.
-
-2017-09-11 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/generic/libm-alias-float.h: New file.
- * sysdeps/generic/math-type-macros-float.h: Include
- <libm-alias-float.h>.
- [!declare_mgen_alias] (declare_mgen_alias): Define macro.
-
-2017-09-11 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #22093]
- * sysdeps/x86/cpu-features.c (init_cpu_features): Initialize
- GLRO(dl_hwcap) to HWCAP_X86_64 for x86-64.
- * sysdeps/x86/dl-hwcap.h (HWCAP_COUNT): Updated.
- (HWCAP_IMPORTANT): Likewise.
- (HWCAP_X86_64): New enum.
- (HWCAP_X86_AVX512_1): Updated.
- * sysdeps/x86/dl-procinfo.c (_dl_x86_hwcap_flags): Add "x86_64".
- * sysdeps/x86_64/Makefile (tests): Add tst-x86_64-1.
- (modules-names): Add x86_64/tst-x86_64mod-1.
- (LDFLAGS-tst-x86_64mod-1.so): New.
- ($(objpfx)tst-x86_64-1): Likewise.
- ($(objpfx)x86_64/tst-x86_64mod-1.os): Likewise.
- (tst-x86_64-1-clean): Likewise.
- * sysdeps/x86_64/tst-x86_64-1.c: New file.
- * sysdeps/x86_64/tst-x86_64mod-1.c: Likewise.
-
-2017-09-11 Siddhesh Poyarekar <siddhesh@sourceware.org>
-
- * po/sv.po: Update translations.
- * po/fr.po: Likewise.
-
-2017-09-10 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * sunrpc/tst-udp-timeout.c (test_udp_server): Increase timeout to 2.5
- seconds.
- * sunrpc/tst-udp-nonblocking.c (do_test): Increase timeout to 0.75
- seconds.
- * elf/rtld-Rules: Fix $(error) use.
-
-2017-09-09 Mike FABIAN <mfabian@redhat.com>
-
- [BZ #14925]
- * libio/tst-widetext.input: Change “Bengali†to “Banglaâ€.
- * locale/iso-639.def: Change “Bengali†to “Banglaâ€.
- * localedata/locales/bn_BD: “Bengali†was still used in some
- comments. Change it to “Banglaâ€.
-
-2017-09-08 Markus Trippelsdorf <markus@trippelsdorf.de>
-
- * sysdeps/x86_64/fpu/libm-test-ulps: Update for AMD Ryzen.
-
-2017-09-08 Steve Ellcey <sellcey@cavium.com>
-
- * manual/tunables.texi (glibc.tune.cpu): Add thunderx2t99 and
- thunderx2t99p1 to list of cpu names.
- * sysdeps/unix/sysv/linux/aarch64/cpu-features.c (cpu_list):
- Add thunderx2t99 and thunderx2t99p1 entries to cpu_list.
-
-2017-09-08 Steve Ellcey <sellcey@cavium.com>
-
- * sysdeps/unix/sysv/linux/aarch64/cpu-features.c (get_midr_from_mcpu):
- Use strcmp instead of tunable_is_name.
-
-2017-09-08 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/unix/sysv/linux/bits/fcntl-linux.h [__USE_GNU]
- (F_GET_RW_HINT): New macro.
- [__USE_GNU] (F_SET_RW_HINT): Likewise.
- [__USE_GNU] (F_GET_FILE_RW_HINT): Likewise.
- [__USE_GNU] (F_SET_FILE_RW_HINT): Likewise.
- [__USE_GNU] (RWF_WRITE_LIFE_NOT_SET): Likewise.
- [__USE_GNU] (RWH_WRITE_LIFE_NONE): Likewise.
- [__USE_GNU] (RWH_WRITE_LIFE_SHORT): Likewise.
- [__USE_GNU] (RWH_WRITE_LIFE_MEDIUM): Likewise.
- [__USE_GNU] (RWH_WRITE_LIFE_LONG): Likewise.
- [__USE_GNU] (RWH_WRITE_LIFE_EXTREME): Likewise.
-
- * sysdeps/unix/sysv/linux/bits/fcntl-linux.h [__USE_GNU]
- (F_ADD_SEALS): New macro.
- [__USE_GNU] (F_GET_SEALS): Likewise.
- [__USE_GNU] (F_SEAL_SEAL): Likewise.
- [__USE_GNU] (F_SEAL_SHRINK): Likewise.
- [__USE_GNU] (F_SEAL_GROW): Likewise.
- [__USE_GNU] (F_SEAL_WRITE): Likewise.
-
-2017-09-08 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * posix/glob_internal.h (GLOBPAT_NONE, GLOBPAT_SPECIAL)
- (GLOBPAT_BACKSLASH, GLOBPAT_BRACKET): New constants.
- * posix/glob_internal.h (__glob_pattern_type):
- * posix/glob.c (glob):
- * posix/glob_pattern_p.c (__glob_pattern_p):
- Use them.
-
- * sysdeps/unix/sysv/linux/arm/glob64.c: Remove file.
- * sysdeps/unix/sysv/linux/i386/glob64.c: Likewise.
- * sysdeps/unix/sysv/linux/m68k/glob64.c: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips64/n64/glob64.c: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips64/n64/globfree64.c: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc32/glob64.c: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc32/glob64.c: Likewise.
- * sysdeps/unix/sysv/linux/wordsize-64/glob64.c: Likewise.
- * sysdeps/unix/sysv/linux/wordsize-64/globfree64.c: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/x32/glob.c: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/x32/globfree.c: Likewise.
- * sysdeps/wordsize-64/glob.c: Likewise.
- * sysdeps/wordsize-64/glob64.c: Likewise.
- * sysdeps/wordsize-64/globfree.c: Likewise.
- * sysdeps/wordsize-64/globfree64.c: Likewise.
- * sysdeps/unix/sysv/linux/glob.c: New file.
- * sysdeps/unix/sysv/linux/glob64.c: Likewise.
- * sysdeps/unix/sysv/linux/globfree.c: Likewise.
- * sysdeps/unix/sysv/linux/globfree64.c: Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-32/glob64.c: Likewise.
- * sysdeps/unix/sysv/linux/oldglob.c [SHLIB_COMPAT]: Also
- adds !GLOB_NO_OLD_VERSION as an extra condition.
- * sysdeps/unix/sysv/linux/i386/alphasort64.c: Include olddirent.h
- using relative path instead of absolute one.
- * sysdeps/unix/sysv/linux/i386/getdents64.c: Likewise.
- * sysdeps/unix/sysv/linux/i386/readdir64.c: Likewise.
- * sysdeps/unix/sysv/linux/i386/readdir64_r.c: Likewise.
- * sysdeps/unix/sysv/linux/i386/versionsort64.c: Likewise.
- * sysdeps/unix/sysv/linux/i386/olddirent.h: Move to ...
- * sysdeps/unix/sysv/linux//olddirent.h: ... here.
-
- [BZ #1062]
- * posix/glob.c (GET_LOGIN_NAME_MAX): Remove.
- (glob): Use the same scratch buffer for both getlogin_r and
- getpwnam_r. Don’t require preallocation of the login name. This
- simplifies storage allocation, and corrects the handling of
- long login names.
-
- [BZ #1062]
- * posix/glob.c (glob): Port recent patches to platforms
- lacking getpwnam_r.
- (glob): Fix longstanding misuse of errno after getpwnam_r, which
- returns an error number rather than setting errno.
-
- * include/scratch_buffer.h (scratch_buffer): Use a C99 align method
- instead of GCC extension.
- * malloc/scratch_buffer_grow.c [!_LIBC]: Include libc-config.h.
- * malloc/scratch_buffer_grow_preserve.c [!_LIBC]: Likewise.
- * malloc/scratch_buffer_set_array_size.c [!_LIBC]: Likewise.
-
- [BZ #866]
- [BZ #1062]
- * posix/Makefile (tests): Remove bug-glob1 and tst-glob_symlinks.
- * posix/bug-glob1.c: Remove file.
- * posix/tst-glob_symlinks.c: New file.
- * posix/glob.c (__lstat64): New macro.
- (is_dir): New function.
- (glob, glob_in_dir): Match symlinks even if they are dangling.
- (link_stat, link_exists_p): Remove. All uses removed.
-
- [BZ #1062]
- [BZ #19971]
- * posix/glob.c (struct readdir_result): Remove skip_entry member.
- (readdir_result_skip_entry, D_INO_TO_RESULT): Remove.
- All uses removed.
-
- [BZ #1062]
- CVE-2017-15671
- * posix/Makefile (routines): Add globfree, globfree64, and
- glob_pattern_p.
- * posix/flexmember.h: New file.
- * posix/glob_internal.h: Likewise.
- * posix/glob_pattern_p.c: Likewise.
- * posix/globfree.c: Likewise.
- * posix/globfree64.c: Likewise.
- * sysdeps/gnu/globfree64.c: Likewise.
- * sysdeps/unix/sysv/linux/alpha/globfree.c: Likewise.
- * sysdeps/unix/sysv/linux/mips/mips64/n64/globfree64.c: Likewise.
- * sysdeps/unix/sysv/linux/oldglob.c: Likewise.
- * sysdeps/unix/sysv/linux/wordsize-64/globfree64.c: Likewise.
- * sysdeps/unix/sysv/linux/x86_64/x32/globfree.c: Likewise.
- * sysdeps/wordsize-64/globfree.c: Likewise.
- * sysdeps/wordsize-64/globfree64.c: Likewise.
- * posix/glob.c (HAVE_CONFIG_H): Use !_LIBC instead.
- [NDEBUG): Remove comments.
- (GLOB_ONLY_P, _AMIGA, VMS): Remove define.
- (dirent_type): New type. Use uint_fast8_t not
- uint8_t, as C99 does not require uint8_t.
- (DT_UNKNOWN, DT_DIR, DT_LNK): New macros.
- (struct readdir_result): Use dirent_type. Do not define skip_entry
- unless it is needed; this saves a byte on platforms lacking d_ino.
- (readdir_result_type, readdir_result_skip_entry):
- New functions, replacing ...
- (readdir_result_might_be_symlink, readdir_result_might_be_dir):
- these functions, which were removed. This makes the callers
- easier to read. All callers changed.
- (D_INO_TO_RESULT): Now empty if there is no d_ino.
- (size_add_wrapv, glob_use_alloca): New static functions.
- (glob, glob_in_dir): Check for size_t overflow in several places,
- and fix some size_t checks that were not quite right.
- Remove old code using SHELL since Bash no longer
- uses this.
- (glob, prefix_array): Separate MS code better.
- (glob_in_dir): Remove old Amiga and VMS code.
- (globfree, __glob_pattern_type, __glob_pattern_p): Move to
- separate files.
- (glob_in_dir): Do not rely on undefined behavior in accessing
- struct members beyond their bounds. Use a flexible array member
- instead
- (link_stat): Rename from link_exists2_p and return -1/0 instead of
- 0/1. Caller changed.
- (glob): Fix memory leaks.
- * posix/glob64 (globfree64): Move to separate file.
- * sysdeps/gnu/glob64.c (NO_GLOB_PATTERN_P): Remove define.
- (globfree64): Remove hidden alias.
- * sysdeps/unix/sysv/linux/Makefile (sysdeps_routines): Add
- oldglob.
- * sysdeps/unix/sysv/linux/alpha/glob.c (__new_globfree): Move to
- separate file.
- * sysdeps/unix/sysv/linux/i386/glob64.c (NO_GLOB_PATTERN_P): Remove
- define.
- Move compat code to separate file.
- * sysdeps/wordsize-64/glob.c (globfree): Move definitions to
- separate file.
-
-2017-09-07 H.J. Lu <hongjiu.lu@intel.com>
-
- * resolv/tst-resolv-qtypes.c (domain): Changed to
- "const char domain[] =".
-
-2017-09-07 Joseph Myers <joseph@codesourcery.com>
-
- * scripts/build-many-glibcs.py (Context.checkout): Default MPFR
- version to 3.1.6.
-
- * sysdeps/gnu/netinet/tcp.h (TCP_ULP): New macro.
- (TCP_MD5SIG_EXT): Likewise.
- (TCP_MD5SIG_FLAG_PREFIX): Likewise.
- (struct tcp_md5sig): Replace __tcpm_pad1 by tcpm_flags and
- tcpm_prefixlen. Rename __tcpm_pad2 to __tcpm_pad.
-
- * sysdeps/unix/sysv/linux/bits/socket.h (SOL_TLS): New macro.
-
-2017-09-07 Mike FABIAN <mfabian@redhat.com>
-
- * localedata/locales/om_ET (LC_TIME): use ASCII for better readability.
-
-2017-09-07 Akhilesh Kumar <akhilesh.k@samsung.com>
-
- [BZ #22100]
- * localedata/locales/om_KE (LC_TIME): copy "om_ET".
-
-2017-09-07 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * hurd/get-host.c (_hurd_get_host_config): Also check that more == 0
- before assuming that the file is empty. Avoid testing buffer content
- when nread == 0.
-
-2017-09-06 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- [BZ #18858]
- * sysdeps/i386/i686/multiarch/strncpy.c (_HAVE_STRING_ARCH_strncpy):
- Remove define.
- * sysdeps/x86_64/multiarch/stpcpy.c (_HAVE_STRING_ARCH_stpcpy):
- Likewise.
- * sysdeps/x86_64/multiarch/strcspn.c (_HAVE_STRING_ARCH_strcspn):
- Likewise.
- * sysdeps/x86_64/multiarch/strncat.c (_HAVE_STRING_ARCH_strncat):
- Likewise.
- * sysdeps/x86_64/multiarch/strncpy.c (_HAVE_STRING_ARCH_strncpy):
- Likewise.
- * sysdeps/x86_64/multiarch/strpbrk.c (_HAVE_STRING_ARCH_strpbrk):
- Likewise.
- * sysdeps/x86_64/multiarch/strspn.c (_HAVE_STRING_ARCH_strspn):
- Likewise.
-
-2017-09-06 Florian Weimer <fweimer@redhat.com>
-
- * malloc/dynarray_emplace_enlarge.c
- (__libc_dynarray_emplace_enlarge): Add missing else.
-
-2017-09-06 Florian Weimer <fweimer@redhat.com>
-
- [BZ #22096]
- * resolv/resolv_conf.c (__resolv_conf_attach): Do not free conf in
- case of failure to obtain the global conf object.
-
-2017-09-06 Florian Weimer <fweimer@redhat.com>
-
- [BZ #22095]
- * resolv/res_init.c (res_vinit_1): Avoid memory leak in case of
- dynarray allocation failure.
-
-2017-09-06 Florian Weimer <fweimer@redhat.com>
-
- Remove dead PTR IPv4-to-IPv6 mapping code from nss_dns.
- * resolv/nss_dns/dns-host.c (getanswer_r): Remove dead code.
- * resolv/tst-res_use_inet6.c (response_ptr_v4, response_ptr_v6):
- New functions.
- (response): Call them. Add 'p', '6' flag processing.
- (test_reverse): New function.
- (test_get2_any): Call it.
- (test_no_inet6): Add 'p' test.
- (test_inet6): Likewise.
-
-2017-09-06 Florian Weimer <fweimer@redhat.com>
-
- Enhance tst-res_use_inet6 to test IPv4-to-IPv6 address mapping.
- * resolv/tst-res_use_inet6.c (response): Process flags embedded in
- the QNAME.
- (test_gai): Adjust query names. Add additional tests.
- (test_get2_any, test_get2_no_inet6, test_get2_inet6): Split from
- test_get2. Adjust query names. Add additional tests.
- (test_no_inet6): New function, extracted from threadfunc.
- (threadfunc): Call test_get2_any, test_get2_inet6, test_no_inet6.
- Add additional tests.
-
-2017-09-06 Mike FABIAN <mfabian@redhat.com>
-
- [BZ #22070]
- * localedata/unicode-gen/utf8_gen.py: Set the width for
- characters with Prepended_Concatenation_Mark property to 1
- * localedata/charmaps/UTF-8: Updated using the improved script.
-
-2017-09-06 Mike FABIAN <mfabian@redhat.com>
-
- [BZ #21750]
- * localedata/unicode-gen/utf8_gen.py: Improve the script to
- use the range notation for all ranges of neighbouring characters
- with the same width.
-
-2017-09-05 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/generic/math-type-macros-double.h: Include
- <math-svid-compat.h>.
- (__USE_WRAPPER_TEMPLATE): Define to !LIBM_SVID_COMPAT.
- * sysdeps/generic/math-type-macros-float.h: Include
- <math-svid-compat.h>.
- (__USE_WRAPPER_TEMPLATE): Define to !LIBM_SVID_COMPAT.
- * sysdeps/generic/math-type-macros-ldouble.h: Include
- <math-svid-compat.h>.
- (__USE_WRAPPER_TEMPLATE): Define to !LIBM_SVID_COMPAT.
- * math/lgamma-compat.h (BUILD_LGAMMA): Include LIBM_SVID_COMPAT
- condition.
- * math/w_acos_compat.c: Condition contents on [LIBM_SVID_COMPAT].
- * math/w_acosf_compat.c: Likewise.
- * math/w_acosh_compat.c: Likewise.
- * math/w_acoshf_compat.c: Likewise.
- * math/w_acoshl_compat.c: Likewise.
- * math/w_acosl_compat.c: Likewise.
- * math/w_asin_compat.c: Likewise.
- * math/w_asinf_compat.c: Likewise.
- * math/w_asinl_compat.c: Likewise.
- * math/w_atan2_compat.c: Likewise.
- * math/w_atan2f_compat.c: Likewise.
- * math/w_atan2l_compat.c: Likewise.
- * math/w_atanh_compat.c: Likewise.
- * math/w_atanhf_compat.c: Likewise.
- * math/w_atanhl_compat.c: Likewise.
- * math/w_cosh_compat.c: Likewise.
- * math/w_coshf_compat.c: Likewise.
- * math/w_coshl_compat.c: Likewise.
- * math/w_exp10_compat.c: Likewise.
- * math/w_exp10f_compat.c: Likewise.
- * math/w_exp10l_compat.c: Likewise.
- * math/w_exp2_compat.c: Likewise.
- * math/w_exp2f_compat.c: Likewise.
- * math/w_exp2l_compat.c: Likewise.
- * math/w_fmod_compat.c: Likewise.
- * math/w_fmodf_compat.c: Likewise.
- * math/w_fmodl_compat.c: Likewise.
- * math/w_hypot_compat.c: Likewise.
- * math/w_hypotf_compat.c: Likewise.
- * math/w_hypotl_compat.c: Likewise.
- * math/w_j0_compat.c: Likewise.
- * math/w_j0f_compat.c: Likewise.
- * math/w_j0l_compat.c: Likewise.
- * math/w_j1_compat.c: Likewise.
- * math/w_j1f_compat.c: Likewise.
- * math/w_j1l_compat.c: Likewise.
- * math/w_jn_compat.c: Likewise.
- * math/w_jnf_compat.c: Likewise.
- * math/w_jnl_compat.c: Likewise.
- * math/w_lgamma_r_compat.c: Likewise.
- * math/w_lgammaf_r_compat.c: Likewise.
- * math/w_lgammal_r_compat.c: Likewise.
- * math/w_log10_compat.c: Likewise.
- * math/w_log10f_compat.c: Likewise.
- * math/w_log10l_compat.c: Likewise.
- * math/w_log2_compat.c: Likewise.
- * math/w_log2f_compat.c: Likewise.
- * math/w_log2l_compat.c: Likewise.
- * math/w_log_compat.c: Likewise.
- * math/w_logf_compat.c: Likewise.
- * math/w_logl_compat.c: Likewise.
- * math/w_pow_compat.c: Likewise.
- * math/w_powf_compat.c: Likewise.
- * math/w_powl_compat.c: Likewise.
- * math/w_remainder_compat.c: Likewise.
- * math/w_remainderf_compat.c: Likewise.
- * math/w_remainderl_compat.c: Likewise.
- * math/w_sinh_compat.c: Likewise.
- * math/w_sinhf_compat.c: Likewise.
- * math/w_sinhl_compat.c: Likewise.
- * math/w_sqrt_compat.c: Likewise.
- * math/w_sqrtf_compat.c: Likewise.
- * math/w_sqrtl_compat.c: Likewise.
- * math/w_tgamma_compat.c: Likewise.
- * math/w_tgammaf_compat.c: Likewise.
- * math/w_tgammal_compat.c: Likewise.
- * math/w_scalb_compat.c (sysv_scalb): Condition definition on
- [LIBM_SVID_COMPAT].
- (__scalb): Condition call to sysv_scalb on [LIBM_SVID_COMPAT].
- * math/w_scalbf_compat.c (sysv_scalbf): Condition definition on
- [LIBM_SVID_COMPAT].
- (__scalbf): Condition call to sysv_scalbf on [LIBM_SVID_COMPAT].
- * math/w_scalbl_compat.c (sysv_scalbl): Condition definition on
- [LIBM_SVID_COMPAT].
- (__scalbl): Condition call to sysv_scalbl on [LIBM_SVID_COMPAT].
- * sysdeps/i386/fpu/w_sqrt.c: New file.
- * sysdeps/ia64/fpu/w_acos.c: Likewise.
- * sysdeps/ia64/fpu/w_acosf.c: Likewise.
- * sysdeps/ia64/fpu/w_acosh.c: Likewise.
- * sysdeps/ia64/fpu/w_acoshf.c: Likewise.
- * sysdeps/ia64/fpu/w_acoshl.c: Likewise.
- * sysdeps/ia64/fpu/w_acosl.c: Likewise.
- * sysdeps/ia64/fpu/w_asin.c: Likewise.
- * sysdeps/ia64/fpu/w_asinf.c: Likewise.
- * sysdeps/ia64/fpu/w_asinl.c: Likewise.
- * sysdeps/ia64/fpu/w_atan2.c: Likewise.
- * sysdeps/ia64/fpu/w_atan2f.c: Likewise.
- * sysdeps/ia64/fpu/w_atan2l.c: Likewise.
- * sysdeps/ia64/fpu/w_atanh.c: Likewise.
- * sysdeps/ia64/fpu/w_atanhf.c: Likewise.
- * sysdeps/ia64/fpu/w_atanhl.c: Likewise.
- * sysdeps/ia64/fpu/w_cosh.c: Likewise.
- * sysdeps/ia64/fpu/w_coshf.c: Likewise.
- * sysdeps/ia64/fpu/w_coshl.c: Likewise.
- * sysdeps/ia64/fpu/w_exp.c: Likewise.
- * sysdeps/ia64/fpu/w_exp10.c: Likewise.
- * sysdeps/ia64/fpu/w_exp10f.c: Likewise.
- * sysdeps/ia64/fpu/w_exp10l.c: Likewise.
- * sysdeps/ia64/fpu/w_exp2.c: Likewise.
- * sysdeps/ia64/fpu/w_exp2f.c: Likewise.
- * sysdeps/ia64/fpu/w_exp2l.c: Likewise.
- * sysdeps/ia64/fpu/w_expf.c: Likewise.
- * sysdeps/ia64/fpu/w_expl.c: Likewise.
- * sysdeps/ia64/fpu/w_fmod.c: Likewise.
- * sysdeps/ia64/fpu/w_fmodf.c: Likewise.
- * sysdeps/ia64/fpu/w_fmodl.c: Likewise.
- * sysdeps/ia64/fpu/w_hypot.c: Likewise.
- * sysdeps/ia64/fpu/w_hypotf.c: Likewise.
- * sysdeps/ia64/fpu/w_hypotl.c: Likewise.
- * sysdeps/ia64/fpu/w_lgamma_r.c: Likewise.
- * sysdeps/ia64/fpu/w_lgammaf_r.c: Likewise.
- * sysdeps/ia64/fpu/w_lgammal_r.c: Likewise.
- * sysdeps/ia64/fpu/w_log.c: Likewise.
- * sysdeps/ia64/fpu/w_log10.c: Likewise.
- * sysdeps/ia64/fpu/w_log10f.c: Likewise.
- * sysdeps/ia64/fpu/w_log10l.c: Likewise.
- * sysdeps/ia64/fpu/w_log2.c: Likewise.
- * sysdeps/ia64/fpu/w_log2f.c: Likewise.
- * sysdeps/ia64/fpu/w_log2l.c: Likewise.
- * sysdeps/ia64/fpu/w_logf.c: Likewise.
- * sysdeps/ia64/fpu/w_logl.c: Likewise.
- * sysdeps/ia64/fpu/w_pow.c: Likewise.
- * sysdeps/ia64/fpu/w_powf.c: Likewise.
- * sysdeps/ia64/fpu/w_powl.c: Likewise.
- * sysdeps/ia64/fpu/w_remainder.c: Likewise.
- * sysdeps/ia64/fpu/w_remainderf.c: Likewise.
- * sysdeps/ia64/fpu/w_remainderl.c: Likewise.
- * sysdeps/ia64/fpu/w_sinh.c: Likewise.
- * sysdeps/ia64/fpu/w_sinhf.c: Likewise.
- * sysdeps/ia64/fpu/w_sinhl.c: Likewise.
- * sysdeps/ia64/fpu/w_sqrt.c: Likewise.
- * sysdeps/ia64/fpu/w_sqrtf.c: Likewise.
- * sysdeps/ia64/fpu/w_sqrtl.c: Likewise.
- * sysdeps/ia64/fpu/w_tgamma.c: Likewise.
- * sysdeps/ia64/fpu/w_tgammaf.c: Likewise.
- * sysdeps/ia64/fpu/w_tgammal.c: Likewise.
- * sysdeps/ieee754/dbl-64/w_exp_compat.c: Condition contents on
- [LIBM_SVID_COMPAT].
- * sysdeps/ieee754/flt-32/w_expf_compat.c: Likewise.
- * sysdeps/ieee754/k_standard.c: Likewise.
- * sysdeps/ieee754/k_standardf.c: Likewise.
- * sysdeps/ieee754/k_standardl.c: Likewise.
- * sysdeps/ieee754/ldbl-128/w_expl_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-128ibm/w_expl_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-96/w_expl_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-64-128/w_expl_compat.c: Condition
- long_double_symbol call on [LIBM_SVID_COMPAT].
- * sysdeps/ieee754/ldbl-opt/w_acoshl_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_acosl_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_asinl_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_atan2l_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_atanhl_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_coshl_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_fmodl_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_hypotl_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_j0l_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_j1l_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_jnl_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_lgammal_r_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_log10l_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_log2l_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_logl_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_powl_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_remainderl_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_sinhl_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_sqrtl_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_tgammal_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-opt/w_exp10l_compat.c: Condition
- long_double_symbol and compat_symbol calls on [LIBM_SVID_COMPAT].
-
-2017-09-05 Steve Ellcey <sellcey@cavium.com>
-
- * include/shlib-compat.h (TEST_COMPAT): New Macro.
- * malloc/tst-mallocstate.c: Convert from test-skeleton
- to test-driver. Ifdef code using TEST_COMPAT macro.
- * math/test-matherr-2.c: Ifdef test using TEST_COMPAT macro.
- * math/test-matherr.c: Likewise.
-
-2017-09-05 Joseph Myers <joseph@codesourcery.com>
-
- [BZ #22086]
- * debug/pcprofiledump.c (main): Use byte-swapped mask when
- comparing word with byte-swapped constant.
-
-2017-09-05 Chris Leonard <cjlhomeaddress@gmail.com>
-
- [BZ #20498]
- * locale/iso-639.def: add Miskito.
- * localedata/SUPPORTED: Add miq_NI/UTF-8.
- * localedata/locales/miq_NI: New file.
-
-2017-09-04 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * include/sys/stat.h (__chmod): Add libc_hidden_proto.
- (__mkdir): Likewise.
- * io/chmod.c (__chmod): Add libc_hidden_def.
- * io/mkdir.c (__mkdir): Likewise.
- * sysdeps/mach/hurd/chmod.c (__chmod): Likewise.
- * sysdeps/mach/hurd/mkdir.c (__mkdir): Likewise.
- * sysdeps/unix/sysv/linux/generic/chmod.c (__chmod): Likewise.
- * sysdeps/unix/sysv/linux/generic/mkdir.c (__mkdir): Likewise.
-
-2017-09-04 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/unix/sysv/linux/syscall-names.list: Update kernel
- version to 4.13.
-
- [BZ #22082]
- * math/bits/math-finite.h (exp10): Redirect if [__GLIBC_USE
- (IEC_60559_FUNCS_EXT)], not [__USE_GNU].
-
-2017-09-04 Florian Weimer <fweimer@redhat.com>
-
- * math/math.h: Issue warning if log is defined.
-
-2017-09-04 Joseph Myers <joseph@codesourcery.com>
-
- * scripts/build-many-glibcs.py (Context.checkout): Default Linux
- kernel version to 4.13.
-
-2017-09-03 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * sysdeps/generic/sigsetops.h: Remove spurious #endif.
- (__sigismember, __sigaddset, __sigdelset): Fix referencing set
- parameter.
- * sysdeps/mach/hurd/bits/socket.h: Include <sys/types.h> instead of
- just <bits/types.h>.
- * sysdeps/posix/preadv2.c: Use off_t instead of OFF_T.
- * sysdeps/posix/preadv64v2.c: Use off64_t instead of OFF_T.
- * sysdeps/posix/pwritev2.c: Use off_t instead of OFF_T.
- * sysdeps/posix/pwritev64v2.c: Use off64_t instead of OFF_T.
- * misc/preadv2.c: Include <errno.h>.
- * misc/preadv64v2.c: Include <errno.h>.
- * misc/pwritev2.c: Include <errno.h>.
- * misc/pwritev64v2.c: Include <errno.h>.
- * sysdeps/posix/preadv2.c: Include <errno.h>.
- * sysdeps/posix/preadv64v2.c: Include <errno.h>.
- Fix <unistd.h> inclusion.
- * sysdeps/posix/pwritev2.c: Include <errno.h>.
- * sysdeps/posix/pwritev64v2.c: Include <errno.h>.
- * sysdeps/mach/hurd/dl-sysdep.c (__access_noerrno, __sbrk,
- __strtoul_internal): New functions.
- * sysdeps/posix/pause.c: Include <sigsetops.h>.
- * sysdeps/posix/system.c: Include <sigsetops.h>.
- * sysdeps/mach/hurd/i386/Makefile
- [$(subdir) = csu] (sysdep_routines): New rule: divdi3 object.
- [$(subdir) = csu] (sysdep-only-routines): Likewise.
- [$(subdir) = csu] (CFLAGS-divdi3.c): Likewise.
- * sysdeps/x86/fpu/include/bits/fenv.h [NO_HIDDEN]: Redirect
- __feraiseexcept_renamed to feraiseexcept instead of
- __GI_feraiseexcept.
- * sysdeps/mach/hurd/i386/Implies: Add mach/hurd/x86.
- * sysdeps/mach/hurd/x86/dl-sysdep.c: New file.
- * misc/tst-preadvwritev2-common.c (RWF_HIPRI, RWF_DSYNC, RWF_SYNC,
- RWF_NOWAIT): Define to 0 if undefined already.
- (do_test_with_invalid_flags): Set invalid_flag to 2 if RWF_SUPPORTED
- boils down to 0.
- * resolv/tst-resolv-res_init-skeleton.c (run_res_init)
- [!CLONE_NEWUTS]: Fail as unsupported if hostname is not NULL.
-
-2017-09-01 Joseph Myers <joseph@codesourcery.com>
-
- * manual/math.texi (pow10): Do not document.
- (pow10f): Likewise.
- (pow10l): Likewise.
- * math/bits/mathcalls.h [__USE_GNU] (pow10): Do not declare.
- * math/bits/math-finite.h [__USE_GNU] (pow10): Likewise.
- * math/libm-test-exp10.inc (pow10_test): Remove.
- (do_test): Do not call pow10.
- * math/w_exp10_compat.c (pow10): Make into compat symbol.
- [NO_LONG_DOUBLE] (pow10l): Likewise.
- * math/w_exp10f_compat.c (pow10f): Likewise.
- * math/w_exp10l_compat.c (pow10l): Likewise.
- * sysdeps/ia64/fpu/e_exp10.S: Include <shlib-compat.h>.
- (pow10): Make into compat symbol.
- * sysdeps/ia64/fpu/e_exp10f.S: Include <shlib-compat.h>.
- (pow10f): Make into compat symbol.
- * sysdeps/ia64/fpu/e_exp10l.S: Include <shlib-compat.h>.
- (pow10l): Make into compat symbol.
- * sysdeps/ieee754/ldbl-opt/Makefile (libnldbl-calls): Remove
- pow10.
- (CFLAGS-nldbl-pow10.c): Remove variable..
- * sysdeps/ieee754/ldbl-opt/nldbl-pow10.c: Remove file.
- * sysdeps/ieee754/ldbl-opt/w_exp10_compat.c (pow10l): Condition on
- [SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_27)].
- * sysdeps/ieee754/ldbl-opt/w_exp10l_compat.c (compat_symbol):
- Undefine and redefine.
- (pow10l): Make into compat symbol.
- * sysdeps/aarch64/libm-test-ulps: Remove pow10 ulps.
- * sysdeps/alpha/fpu/libm-test-ulps: Likewise.
- * sysdeps/arm/libm-test-ulps: Likewise.
- * sysdeps/hppa/fpu/libm-test-ulps: Likewise.
- * sysdeps/i386/fpu/libm-test-ulps: Likewise.
- * sysdeps/i386/i686/fpu/multiarch/libm-test-ulps: Likewise.
- * sysdeps/microblaze/libm-test-ulps: Likewise.
- * sysdeps/mips/mips32/libm-test-ulps: Likewise.
- * sysdeps/mips/mips64/libm-test-ulps: Likewise.
- * sysdeps/nios2/libm-test-ulps: Likewise.
- * sysdeps/powerpc/fpu/libm-test-ulps: Likewise.
- * sysdeps/powerpc/nofpu/libm-test-ulps: Likewise.
- * sysdeps/s390/fpu/libm-test-ulps: Likewise.
- * sysdeps/sh/libm-test-ulps: Likewise.
- * sysdeps/sparc/fpu/libm-test-ulps: Likewise.
- * sysdeps/tile/libm-test-ulps: Likewise.
- * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
-
-2017-09-01 Paul Pluzhnikov <ppluzhnikov@google.com>
-
- * stdlib/tst-atexit-common.c (crumbs): Ensure correct size.
-
-2017-09-01 H.J. Lu <hongjiu.lu@intel.com>
-
- * posix/tst-regex.c (do_test): Replace "../ChangeLog.8" with
- "../ChangeLog.old/ChangeLog.8".
- * posix/tst-regex2.c (do_test): Replace "../ChangeLog.14" with
- "../ChangeLog.old/ChangeLog.14".
-
-2017-09-01 H.J. Lu <hongjiu.lu@intel.com>
-
- * manual/contrib.texi: Credit Ulrich Drepper for the POSIX
- Threads Library.
-
-2017-09-01 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/unix/sysv/linux/gentempfd.c: Include <string.h>.
-
-2017-09-01 H.J. Lu <hongjiu.lu@intel.com>
-
- * csu/version.c (banner): Remove "by Roland McGrath et al.".
- * nptl/Banner: Remove "by Ulrich Drepper et al.".
-
-2017-09-01 Paul Pluzhnikov <ppluzhnikov@google.com>
-
- * stdlib/tst-atexit-common.c (do_test): Test support for at least
- 32 atexit handlers.
-
-2017-09-01 Zack Weinberg <zackw@panix.com>
-
- * math/math.h (HUGE_VAL): Improve commentary.
-
-2017-09-01 Adhemerval Zanella <adhemerval.zanella@linaro.org>
- Andreas Schwab <schwab@suse.de>
-
- [BZ #21530]
- * include/stdio.h (__gen_tempfd): New function.
- * stdio-common/Makefile (routines): Add gentempfd.
- * stdio-common/gentempfd.c: New file.
- * sysdeps/unix/sysv/linux/gentempfd.c: Likewise.
- * stdio-common/tmpfile.c (tmpfile): First try to use a system specific
- unnamed file first.
-
-2017-09-01 Florian Weimer <fweimer@redhat.com>
-
- [BZ #21915]
- [BZ #21922]
- * sysdeps/posix/getaddrinfo.c (gethosts): Look at NSS function
- result to determine success or failure, not the errno value.
- * nss/Makefile (tests): Add tst-nss-files-hosts-erange.
- (tst-nss-files-hosts-erange): Link with -ldl.
- * nss/tst-nss-files-hosts-erange.c: New file.
- * nss/tst-resolv-basic.c (response): Handle nodata.example.
- (do_test): Add NO_DATA tests.
- * resolv/tst-resolv-basic.c (test_nodata_nxdomain): New function.
- (do_test): Call it.
-
-2017-09-01 Florian Weimer <fweimer@redhat.com>
-
- [BZ #21922]
- * sysdeps/posix/getaddrinfo.c (gaih_inet): Report EAI_NODATA error
- coming from gethostbyname2_r.
-
-2017-09-01 Florian Weimer <fweimer@redhat.com>
-
- * support/namespace.h (struct support_chroot_configuration): Add
- hosts, host_conf.
- (struct support_chroot): Add path_hosts, path_host_conf.
- * support/support_chroot.c (write_file): New function.
- (support_chroot_create): Call it to process /etc/resolv.conf,
- /etc/hosts, /etc/host.conf.
- (support_chroot_free): Update.
-
-2017-09-01 Florian Weimer <fweimer@redhat.com>
-
- * sysdeps/posix/getaddrinfo.c (gaih_inet): Only use h_errno if
- status indicates it is set.
-
-2017-09-01 Florian Weimer <fweimer@redhat.com>
-
- [BZ #20532]
- * sysdeps/posix/getaddrinfo.c (gaih_inet): Make reporting of NSS
- function lookup failures more reliable.
-
-2017-09-01 Florian Weimer <fweimer@redhat.com>
-
- * sysdeps/posix/getaddrinfo.c (gethosts): Use h_errno directly.
- (getcanonname): Likewise.
- (gaih_inet): Likewise.
-
-2017-09-01 Florian Weimer <fweimer@redhat.com>
-
- * sysdeps/posix/getaddrinfo.c (gethosts): Use errno directly.
- (getcanonname): Likewise.
- (gaih_inet): Likewise.
-
-2017-08-31 Steve Ellcey <sellcey@cavium.com>
- Richard Henderson <rth@twiddle.net>
-
- * sysdeps/aarch64/fpu/s_llrint.c (OREG_SIZE): New macro.
- * sysdeps/aarch64/fpu/s_llround.c (OREG_SIZE): Likewise.
- * sysdeps/aarch64/fpu/s_llrintf.c (OREGS, IREGS): Remove.
- (IREG_SIZE, OREG_SIZE): New macros.
- * sysdeps/aarch64/fpu/s_llroundf.c: (OREGS, IREGS): Remove.
- (IREG_SIZE, OREG_SIZE): New macros.
- * sysdeps/aarch64/fpu/s_lrintf.c (IREGS): Remove.
- (IREG_SIZE): New macro.
- * sysdeps/aarch64/fpu/s_lroundf.c (IREGS): Remove.
- (IREG_SIZE): New macro.
- * sysdeps/aarch64/fpu/s_lrint.c (get-rounding-mode.h, stdint.h):
- New includes.
- (IREG_SIZE, OREG_SIZE): Initialize if not already set.
- (OREGS, IREGS): Set based on IREG_SIZE and OREG_SIZE.
- (__CONCATX): Handle exceptions correctly on large values that may
- set FE_INVALID.
- * sysdeps/aarch64/fpu/s_lround.c (IREG_SIZE, OREG_SIZE):
- Initialize if not already set.
- (OREGS, IREGS): Set based on IREG_SIZE and OREG_SIZE.
-
-2017-08-31 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * sysdeps/generic/not-cancel.h (NO_CANCELLATION): Remove macro.
- * sysdeps/unix/sysv/linux/aarch64/sysdep-cancel.h (NO_CANCELLATION):
- Likewise.
- * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (NO_CANCELLATION):
- Likewise.
- * sysdeps/unix/sysv/linux/arm/sysdep-cancel.h (NO_CANCELLATION):
- Likewise.
- * sysdeps/unix/sysv/linux/hppa/sysdep-cancel.h (NO_CANCELLATION):
- Likewise.
- * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (NO_CANCELLATION):
- Likewise.
- * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (NO_CANCELLATION):
- Likewise.
- * sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h (NO_CANCELLATION):
- Likewise.
- * sysdeps/unix/sysv/linux/microblaze/sysdep-cancel.h
- (NO_CANCELLATION): Likewise.
- * sysdeps/unix/sysv/linux/mips/sysdep-cancel.h (NO_CANCELLATION):
- Likewise.
- * sysdeps/unix/sysv/linux/nios2/sysdep-cancel.h (NO_CANCELLATION):
- Likewise.
- * sysdeps/unix/sysv/linux/powerpc/sysdep-cancel.h (NO_CANCELLATION):
- Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h
- (NO_CANCELLATION): Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
- (NO_CANCELLATION): Likewise.
- * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (NO_CANCELLATION):
- Likewise
- * sysdeps/unix/sysv/linux/sparc/sysdep-cancel.h (NO_CANCELLATION):
- Likewise.
- * sysdeps/unix/sysv/linux/tile/sysdep-cancel.h (NO_CANCELLATION):
- Likewise.
- * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (NO_CANCELLATION):
- Likewise.
- * sysdeps/unix/sysv/linux/not-cancel.h (__fcntl_nocancel): Add
- hidden prototype.
- * sysdeps/unix/sysv/linux/fcntl.c (__fcntl_nocancel): Define only
- for !IS_IN (rtld) and remove NO_CANCELLATION usage.
-
-2017-08-31 Steve Ellcey <sellcey@cavium.com>
-
- * sysdeps/aarch64/dl-irel.h: (elf_ifunc_invoke): Change argument type
- in resolver call.
-
-2017-08-31 Florian Weimer <fweimer@redhat.com>
-
- * include/libc-symbols.h (internal_function): Remove.
-
-2017-08-31 Florian Weimer <fweimer@redhat.com>
-
- * stdlib/fmtmsg.c (internal_addseverity): Remove
- internal_function.
-
-2017-08-31 Florian Weimer <fweimer@redhat.com>
-
- * stdio-common/printf_fp.c (group_number): Remove
- internal_function.
- * stdio-common/vfprintf.c (buffered_vfprintf): Likewise.
-
-2017-08-31 Florian Weimer <fweimer@redhat.com>
-
- * posix/fnmatch.c (internal_function): Remove definition.
- * posix/fnmatch_loop.c (FCT, EXT, END): Remove internal_function.
- * posix/regcomp.c (peek_token, init_word_char)
- (duplicate_node_closure, fetch_token, peek_token)
- (peek_token_bracket, build_range_exp, build_collating_symbol):
- Likewise.
- * posix/regex_internal.c (re_string_construct_common)
- (create_ci_newstate, create_cd_newstate, re_string_allocate)
- (re_string_construct, re_string_realloc_buffers, build_wcs_buffer)
- (build_wcs_upper_buffer, re_string_skip_chars, build_upper_buffer)
- (re_string_translate_buffer, re_string_reconstruct)
- (re_string_peek_byte_case, re_string_fetch_byte_case)
- (re_string_destruct, re_string_context_at, re_node_set_alloc)
- (re_node_set_init_1, re_node_set_init_2, re_node_set_init_copy)
- (re_node_set_add_intersect, re_node_set_init_union)
- (re_node_set_merge, re_node_set_insert, re_node_set_insert_last)
- (re_node_set_compare, re_node_set_contains, re_node_set_remove_at)
- (re_dfa_add_node, calc_state_hash, re_acquire_state)
- (re_acquire_state_context): Likewise.
- * posix/regex_internal.h (internal_function): Remove definition.
- (re_string_realloc_buffers, build_wcs_buffer)
- (build_wcs_upper_buffer, build_upper_buffer)
- (re_string_translate_buffer, re_string_context_at)
- (re_string_char_size_at, re_string_wchar_at)
- (re_string_elem_size_at): Likewise.
- * posix/regexec.c (match_ctx_init, match_ctx_clean)
- (match_ctx_free, match_ctx_add_entry, search_cur_bkref_entry)
- (match_ctx_add_subtop, match_ctx_add_sublast, sift_ctx_init)
- (re_search_internal, re_search_2_stub, re_search_stub)
- (re_copy_regs, prune_impossible_nodes, check_matching)
- (check_halt_state_context, update_regs, push_fail_stack, set_regs)
- (free_fail_stack_return, sift_states_iter_mb)
- (sift_states_backward, build_sifted_states)
- (update_cur_sifted_state, add_epsilon_src_nodes, check_dst_limits)
- (check_dst_limits_calc_pos_1, check_dst_limits_calc_pos)
- (check_subexp_limits, sift_states_bkref, merge_state_array)
- (find_recover_state, transit_state, merge_state_with_log)
- (check_subexp_matching_top, transit_state_sb, transit_state_sb)
- (transit_state_mb, transit_state_bkref, get_subexp)
- (get_subexp_sub, find_subexp_node, check_arrival)
- (check_arrival_add_next_nodes, check_arrival_expand_ecl)
- (check_arrival_expand_ecl_sub, expand_bkref_cache, build_trtable)
- (check_node_accept_bytes, find_collation_sequence_value)
- (group_nodes_into_DFAstates, check_node_accept, extend_buffers)
- (acquire_init_state_context, check_halt_node_context)
- (proceed_next_node, pop_fail_stack, clean_state_log_if_needed)
- (sub_epsilon_src_nodes): Likewise.
- * posix/spawn_int.h (__spawn_valid_fd): Likewise.
- * posix/spawn_valid_fd (__spawn_valid_fd): Likewise.
- * posix/wordexp.c (parse_dollars, parse_backtick, parse_dquote)
- (eval_expr, w_addmem, w_addstr, w_addword, parse_backslash)
- (parse_qtd_backslash, parse_tilde, do_parse_glob, parse_glob)
- (parse_squote, eval_expr_val, eval_expr_multdiv, parse_arith)
- (exec_comm_child, exec_comm, parse_comm, parse_param): Likewise.
- * sysdeps/posix/ttyname.c (getttyname): Likewise.
- * sysdeps/posix/ttyname_r.c (getttyname_r): Likewise.
- * sysdeps/unix/sysv/linux/preadv.c (__atomic_preadv_replacement)
- (PREADV): Likewise.
- * sysdeps/unix/sysv/linux/preadv64.c (__atomic_preadv64_replacement)
- (PREADV): Likewise.
- * sysdeps/unix/sysv/linux/pwritev.c (__atomic_pwritev_replacement)
- (PWRITEV): Likewise.
- * sysdeps/unix/sysv/linux/pwritev64.c (__atomic_pwritev64_replacement)
- (PWRITEV): Likewise.
- * sysdeps/unix/sysv/linux/ttyname.c (getttyname): Likewise.
- * sysdeps/unix/sysv/linux/ttyname_r.c (getttyname_r): Likewise.
-
-2017-08-31 Florian Weimer <fweimer@redhat.com>
-
- * nptl/allocatestack.c (change_stack_perm, __deallocate_stack)
- (setxid_mark_thread, setxid_unmark_thread, setxid_signal_thread):
- Remove internal_function.
- * nptl/cancellation.c (__pthread_disable_asynccancel): Likewise.
- * nptl/libc_pthread_init.c (__libc_pthread_init): Likewise.
- * nptl/pthreadP.h (__find_in_stack_list, __free_tcb)
- (__deallocate_stack, __libc_pthread_init)
- (__pthread_mutex_cond_lock, __pthread_mutex_cond_lock_adjust)
- (__pthread_mutex_unlock_usercnt, __pthread_disable_asynccancel)
- (__libc_disable_asynccancel, __librt_disable_asynccancel):
- Likewise.
- * nptl/pthread_create.c (__find_in_stack_list, __free_tcb): Likewise.
- * nptl/pthread_mutex_cond_lock.c (__pthread_mutex_lock): Likewise.
- * nptl/pthread_mutex_lock.c (__pthread_mutex_cond_lock_adjust):
- Likewise.
- * nptl/pthread_mutex_unlock.c (__pthread_mutex_unlock_full)
- (__pthread_mutex_unlock_usercnt): Likewise.
-
-2017-08-31 Florian Weimer <fweimer@redhat.com>
-
- * io/fts.c (fts_alloc, fts_build, fts_lfree, fts_load)
- (fts_maxarglen, fts_padjust, fts_palloc, fts_sort, fts_stat)
- (fts_safe_changedir): Remove internal_function.
- * io/ftw.c (internal_function): Remove definition.
- (ftw_dir, process_entry, ftw_startup): Remove internal_function.
-
-2017-08-31 Florian Weimer <fweimer@redhat.com>
-
- * inet/deadline.c (__deadline_current_time)
- (__deadline_from_timeval, __deadline_to_ms): Remove
- internal_function.
- * inet/getnameinfo.c (nrl_domainname): Likewise.
- * inet/getnetgrent_r.c (__internal_setnetgrent_reuse): Likewise.
- * inet/inet6_option.c (add_pad): Likewise.
- * inet/net-internal.h (__deadline_current_time)
- (__deadline_from_timeval, __deadline_to_ms): Likewise.
- * inet/rcmd.c (__checkhost_sa, __icheckuser): Likewise.
- * sysdeps/mach/hurd/if_index.c (__protocol_available): Likewise.
- * sysdeps/unix/sysv/linux/ifaddrs.c (map_newlink): Likewise.
-
-2017-08-31 Joseph Myers <joseph@codesourcery.com>
-
- * math/math.h [__USE_ISOC99] (NAN): Define directly here. Do not
- include <bits/nan.h>.
- * math/Makefile (headers): Remove bits/nan.h.
- * bits/nan.h: Remove.
- * sysdeps/ieee754/bits/nan.h: Likewise.
- * sysdeps/mips/bits/nan.h: Likewise.
-
- * math/math.h [__USE_ISOC99] (INFINITY): Define directly here. Do
- not include <bits/inf.h>.
- * math/Makefile (headers): Remove bits/inf.h.
- * bits/inf.h: Remove.
- * sysdeps/ieee754/bits/inf.h: Likewise.
-
- * math/math.h: Do not include bits/huge_val.h, bits/huge_valf.h,
- bits/huge_vall.h or bits/huge_val_flt128.h.
- (HUGE_VAL): Define directly here.
- [__USE_ISOC99] (HUGE_VALF): Likewise.
- [__USE_ISOC99] (HUGE_VALL): Likewise.
- [__HAVE_FLOAT128 && __GLIBC_USE (IEC_60559_TYPES_EXT)]
- (HUGE_VAL_F128): Likewise.
- * math/Makefile (headers): Remove bits/huge_val.h,
- bits/huge_valf.h, bits/huge_vall.h and bits/huge_val_flt128.h.
- * bits/huge_val.h: Remove.
- * bits/huge_val_flt128.h: Likewise.
- * bits/huge_valf.h: Likewise.
- * bits/huge_vall.h: Likewise.
- * sysdeps/ia64/bits/huge_vall.h: Likewise.
- * sysdeps/ieee754/bits/huge_val.h: Likewise.
- * sysdeps/ieee754/bits/huge_valf.h: Likewise.
- * sysdeps/m68k/m680x0/bits/huge_vall.h: Likewise.
- * sysdeps/sh/bits/huge_val.h: Likewise.
- * sysdeps/sparc/bits/huge_vall.h: Likewise.
- * sysdeps/x86/bits/huge_vall.h: Likewise.
-
-2017-08-31 Florian Weimer <fweimer@redhat.com>
-
- * elf/dl-addr-obj.c (_dl_addr_inside_object): Remove
- internal_function.
- * elf/dl-cache.c (_dl_cache_libcmp, _dl_load_cache_lookup):
- Likewise.
- * elf/dl-debug.c (_dl_debug_initialize): Likewise.
- * elf/dl-deps.c (_dl_build_local_scope, _dl_map_object_deps): Likewise.
- * elf/dl-environ.c (_dl_next_ld_env_entry): Likewise.
- * elf/dl-execstack.c (_dl_make_stack_executable): Likewise.
- * elf/dl-fini.c (_dl_sort_fini): Likewise.
- * elf/dl-hwcaps.c (_dl_important_hwcaps): Likewise.
- * elf/dl-libc.c (dlerror_run): Likewise.
- * elf/dl-load.c (add_name_to_object, decompose_rpath)
- (_dl_init_paths, _dl_map_object, _dl_rtld_di_serinfo): Likewise.
- * elf/dl-lookup.c (add_dependency, _dl_debug_bindings)
- (_dl_lookup_symbol_x, _dl_setup_hash, _dl_debug_bindings):
- Likewise.
- * elf/dl-misc.c (_dl_sysdep_read_whole_file, _dl_name_match_p)
- (_dl_higher_prime_number, _dl_strtoul): Likewise.
- * elf/dl-object.c (_dl_add_to_namespace_list, _dl_new_object): Likewise.
- * elf/dl-profile.c (_dl_start_profile): Likewise.
- * elf/dl-reloc.c (_dl_try_allocate_static_tls)
- (_dl_allocate_static_tls, _dl_protect_relro, _dl_reloc_bad_type):
- Likewise.
- * elf/dl-support.c (_dl_aux_init, _dl_non_dynamic_init): Likewise.
- * elf/dl-sym.c (_dl_tls_symaddr, do_sym): Likewise.
- * elf/dl-sysdep.c (_dl_sysdep_start_cleanup, _dl_show_auxv): Likewise.
- * elf/dl-tls.c (_dl_next_tls_modid, _dl_count_modids)
- (_dl_determine_tlsoffset, allocate_dtv, _dl_get_tls_static_info)
- (_dl_allocate_tls_storage): Likewise.
- * elf/dl-version.c (match_symbol, _dl_check_map_versions)
- (_dl_check_all_versions): Likewise.
- * elf/dynamic-link.h (_dl_try_allocate_static_tls): Likewise.
- * elf/tlsdeschtab.h (_dl_make_tlsdesc_dynamic): Likewise.
- * elf/tst-_dl_addr_inside_object.c (_dl_addr_inside_object): Likewise.
- * sysdeps/aarch64/dl-tlsdesc.h (_dl_make_tlsdesc_dynamic): Likewise.
- * sysdeps/aarch64/tlsdesc.c (_dl_unmap): Likewise.
- * sysdeps/arm/dl-lookupcfg.h (_dl_unmap): Likewise.
- * sysdeps/arm/dl-machine.h (elf_machine_load_address): Remove
- internal_function from __dl_start.
- * sysdeps/arm/dl-tlsdesc.h (_dl_unmap): Remove internal_function.
- * sysdeps/generic/dl-cache.h (_dl_cache_libcmp): Likewise.
- * sysdeps/generic/ldsodefs.h (_dl_name_match_p)
- (_dl_higher_prime_number, _dl_strtoul, _dl_map_object)
- (_dl_map_object_deps, _dl_setup_hash, _dl_rtld_di_serinfo)
- (_dl_lookup_symbol_x, _dl_add_to_namespace_list, _dl_new_object)
- (_dl_protect_relro, _dl_reloc_bad_type, _dl_check_all_versions)
- (_dl_check_map_versions, _dl_sort_fini, _dl_debug_initialize)
- (_dl_init_paths, _dl_start_profile, _dl_show_auxv)
- (_dl_next_ld_env_entry, _dl_important_hwcaps)
- (_dl_load_cache_lookup, _dl_sysdep_read_whole_file)
- (_dl_sysdep_start_cleanup, _dl_next_tls_modid, _dl_count_modids)
- (_dl_determine_tlsoffset, _dl_get_tls_static_info)
- (_dl_allocate_static_tls, _dl_allocate_tls_storage)
- (_dl_addr_inside_object, _dl_non_dynamic_init, _dl_aux_init):
- Likewise.
- (struct rtld_global_ro): Remove internal_function from the
- _dl_lookup_symbol_x member.
- (_dl_symbol_value): Remove. No longer defined anywhere.
- * sysdeps/i386/dl-lookupcfg.h (_dl_unmap): Remove
- internal_function.
- * sysdeps/i386/dl-tlsdesc.h (_dl_make_tlsdesc_dynamic): Likewise.
- * sysdeps/i386/tlsdesc.c (_dl_unmap): Likewise.
- * sysdeps/mach/hurd/dl-sysdep.c (_dl_show_auxv): Likewise.
- * sysdeps/nios2/dl-init.c (_dl_nios2_get_gp_value): Likewise.
- * sysdeps/tile/dl-lookupcfg.h (_dl_unmap): Likewise.
- * sysdeps/tile/dl-machine.h (_dl_after_load): Likewise.
- * sysdeps/tile/dl-runtime.c (_dl_after_load, _dl_unmap): Likewise.
- * sysdeps/unix/sysv/linux/dl-vdso.c (_dl_vdso_vsym): Likewise.
- * sysdeps/unix/sysv/linux/dl-vdso.h (_dl_vdso_vsym): Likewise.
- * sysdeps/x86_64/dl-lookupcfg.h (_dl_unmap): Likewise.
- * sysdeps/x86_64/dl-tlsdesc.h (_dl_make_tlsdesc_dynamic): Likewise.
- * sysdeps/x86_64/tlsdesc.c (_dl_unmap): Likewise.
-
-2017-08-31 Florian Weimer <fweimer@redhat.com>
-
- * gmon/gmon.c (write_hist, write_call_graph, write_bb_counts):
- Remove internal_function.
- * sysdeps/arm/machine-gmon.h (mcount_internal, _MCOUNT_DECL):
- Likewise.
- * sysdeps/sparc/machine-gmon.h (mcount_internal, _MCOUNT_DECL):
- Likewise.
-
-2017-08-31 Florian Weimer <fweimer@redhat.com>
-
- * dlfcn/dlerror.c (_dlerror_run): Remove internal_function.
- * elf/dl-sym.c (_dl_vsym, _dl_sym): Likewise.
- * include/dlfcn.h (_dl_sym, _dl_vsym, _dlerror_run): Likewise.
-
-2017-08-31 Florian Weimer <fweimer@redhat.com>
-
- * resolv/gai_misc.c (__gai_find_request, __gai_remove_request)
- (__gai_enqueue_request): Remove internal_function.
- * resolv/gai_misc.h (__gai_enqueue_request, __gai_find_request)
- (__gai_remove_request, __gai_notify, __gai_notify_only)
- (__gai_sigqueue): Likewise.
- * resolv/gai_notify.c (__gai_notify_only, __gai_notify): Likewise.
- * resolv/gai_sigqueue.c (__gai_sigqueue): Likewise.
- * resolv/inet_ntop.c (inet_ntop4, inet_ntop6): Likewise.
- * sysdeps/unix/sysv/linux/gai_sigqueue.c (__gai_sigqueue):
- Likewise.
-
-2017-08-31 Florian Weimer <fweimer@redhat.com>
-
- * dirent/scandir-tail.c (SCANDIR_TAIL): Remove internal_function.
- * include/dirent.h (__opendirat, __getdents, __getdents64)
- (__alloc_dir, __scandir_tail, __scandir64_tail): Likewise.
- * sysdeps/posix/opendir.c (__opendirat, __alloc_dir): Likewise.
- * sysdeps/mach/hurd/opendir.c (__opendirat): Likewise.
- * sysdeps/unix/sysv/linux/i386/olddirent.h (__old_getdents64):
- Likewise.
- * sysdeps/unix/sysv/linux/getdents.c (__GETDENTS): Likewise.
-
-2017-08-31 Florian Weimer <fweimer@redhat.com>
-
- * sysdeps/unix/sysv/linux/getcwd.c (generic_getcwd): Remove
- internal_function.
- (GETCWD_RETURN_TYPE): Likewise.
-
-2017-08-31 Florian Weimer <fweimer@redhat.com>
-
- * include/time.h (__tz_compute, __strptime_internal): Remove
- internal_function.
- * time/strptime_l.c (__strptime_internal): Likewise.
- * time/tzset.c (compute_change, update_vars, __tz_compute): Likewise.
-
-2017-08-31 Florian Weimer <fweimer@redhat.com>
-
- * iconv/gconv.c (__gconv): Remove internal_function.
- * iconv/gconv_builtin.c (__gconv_get_builtin_trans): Likewise.
- * iconv/gconv_cache.c (__gconv_load_cache, find_module_idx)
- (find_module, __gconv_compare_alias_cache, __gconv_lookup_cache)
- (__gconv_release_cache): Likewise.
- * iconv/gconv_close.c (__gconv_close): Likewise.
- * iconv/gconv_conf.c (detect_conflict, insert_module, add_module)
- (read_conf_file, __gconv_get_path): Likewise.
- * iconv/gconv_db.c (derivation_lookup, add_derivation)
- (__gconv_release_step, gen_steps, increment_counter)
- (find_derivation, __gconv_compare_alias, __gconv_find_transform)
- (__gconv_close_transform, free_modules_db): Likewise.
- * iconv/gconv_dl.c (__gconv_find_shlib, __gconv_release_shlib):
- Likewise.
- * iconv/gconv_int.h (__gconv_open, __gconv_close, __gconv)
- (__gconv_find_transform, __gconv_lookup_cache)
- (__gconv_release_step, __gconv_load_cache, __gconv_get_path)
- (__gconv_close_transform, __gconv_release_cache)
- (__gconv_loaded_object, __gconv_release_shlib)
- (__gconv_compare_alias): Likewise.
- * iconv/gconv_open.c (__gconv_open): Likewise.
- * iconv/iconv_prog.c (print_known_names, add_known_names): Likewise.
- * iconv/iconvconfig.c (add_module): Likewise.
- * intl/dcigettext.c (plural_lookup, guess_category_value)
- (category_to_name, get_output_charset, _nl_find_msg): Likewise.
- * intl/eval-plural.h (plural_eval): Likewise.
- * intl/finddomain.c (_nl_find_domain): Likewise.
- * intl/gettextP.h (_nl_unload_domain, _nl_find_domain)
- (_nl_load_domain, _nl_find_msg): Likewise.
- (internal_function): Remove definition.
- * intl/loadinfo.h (internal_function): Likewise.
- * intl/loadmsgcat.c (_nl_load_domain, _nl_unload_domain): Remove
- internal_function.
- * intl/localealias.c (internal_function): Remove definition.
- (read_alias_file): Remove internal_function.
- * intl/plural-exp.c (EXTRACT_PLURAL_EXPRESSION): Likewise.
- * intl/plural-exp.h (internal_function): Remove definition.
- (FREE_EXPRESSION, EXTRACT_PLURAL_EXPRESSION): Remove
- internal_function.
- * intl/plural.c: Regenerate.
- * intl/plural.y (FREE_EXPRESSION): Remove internal_function.
- * locale/coll-lookup.c (__collidx_table_lookup)
- (__collseq_table_lookup): Likewise.
- * locale/coll-lookup.h (__collidx_table_lookup)
- (__collseq_table_lookup): Likewise.
- * locale/findlocale.c (_nl_find_locale, _nl_remove_locale): Likewise.
- * locale/loadarchive.c (_nl_load_locale_from_archive): Likewise.
- * locale/loadlocale.c (_nl_intern_locale_data, _nl_load_locale)
- (_nl_unload_locale): Likewise.
- * locale/localeinfo.h (struct __locale_data): Remove
- internal_function from cleanup member.
- (_nl_find_locale, _nl_load_locale, _nl_unload_locale)
- (_nl_remove_locale, _nl_load_locale_from_archive)
- (_nl_intern_locale_data, _nl_get_era_entry, _nl_select_era_entry)
- (_nl_get_alt_digit, _nl_get_walt_digit, _nl_parse_alt_digit)
- (_nl_cleanup_time): Remove internal_function.
- * time/alt_digit.c (_nl_get_alt_digit, _nl_get_walt_digit)
- (_nl_parse_alt_digit): Likewise.
- * time/era.c (_nl_init_era_entries, _nl_get_era_entry)
- (_nl_select_era_entry): Likewise.
- * time/lc-time-cleanup.c (_nl_cleanup_time): Likewise.
- * wcsmbs/wcsmbsload.c (__wcsmbs_load_conv, __wcsmbs_clone_conv)
- (__wcsmbs_named_conv, _nl_cleanup_ctype): Likewise.
- * wcsmbs/wcsmbsload.h (__wcsmbs_load_conv, __wcsmbs_clone_conv)
- (__wcsmbs_named_conv, _nl_cleanup_ctype): Likewise.
-
-2017-08-31 Florian Weimer <fweimer@redhat.com>
-
- * rt/aio_sigqueue.c (__aio_sigqueue): Remove internal_function.
- * sysdeps/generic/aio_misc.h (__aio_sigqueue): Likewise.
- * sysdeps/pthread/aio_misc.c (__aio_free_request, __aio_find_req)
- (__aio_find_req_fd, __aio_remove_request, __aio_enqueue_request):
- Likewise.
- * sysdeps/pthread/aio_misc.h (__aio_enqueue_request)
- (__aio_find_req, __aio_find_req_fd, __aio_free_request)
- (__aio_notify, __aio_notify_only, __aio_sigqueue): Likewise.
- * sysdeps/pthread/aio_notify.c (__aio_notify_only, __aio_notify):
- Likewise.
- * sysdeps/unix/sysv/linux/aio_sigqueue.c (__aio_sigqueue): Likewise.
-
-2017-08-31 Florian Weimer <fweimer@redhat.com>
-
- * misc/getttyent.c (skip, value): Remove internal_function.
- * misc/syslog.c (openlog_internal): Likewise.
- * misc/tsearch.c (trecurse, tdestroy_recurse): Likewise.
-
-2017-08-31 Florian Weimer <fweimer@redhat.com>
-
- * include/nss.h (__nss_valid_field, __nss_valid_list_field)
- (__nss_rewrite_field): Remove internal_function.
- * nscd/nscd_getgr_r.c (nscd_getgr_r): Likewise.
- * nscd/nscd_gethst_r.c (nscd_gethst_r): Likewise.
- * nscd/nscd_getpw_r.c (nscd_getpw_r): Likewise.
- * nss/nsswitch.c (nss_parse_file, nss_getline)
- (nss_parse_service_list, nss_new_service): Likewise.
- * nss/rewrite_field.c (__nss_rewrite_field): Likewise.
- * nss/valid_field.c (__nss_valid_field): Likewise.
- * nss/valid_list_field.c (__nss_valid_list_field): Likewise.
-
-2017-08-31 Florian Weimer <fweimer@redhat.com>
-
- * malloc/arena.c (__malloc_fork_lock_parent)
- (__malloc_fork_unlock_parent, __malloc_fork_unlock_child)
- (next_env_entry, new_heap, heap_trim, arena_get2): Remove
- internal_function from defintions.
- * malloc/hooks.c (mem2mem_check, mem2chunk_check): Likewise.
- * malloc/malloc-internal.h (__malloc_fork_lock_parent)
- (__malloc_fork_unlock_parent, __malloc_fork_unlock_child): Remove
- internal_function from declarations.
- * malloc/malloc.c (internal_function): Do not define.
- (mem2mem_check): Remove internal_function from declaration.
- (munmap_chunk, mremap_chunk): Remove internal_function.
- * malloc/mtrace.c (tr_where): Likewise.
-
-2017-08-31 Florian Weimer <fweimer@redhat.com>
-
- * include/rpc/pmap_clnt.h (__get_socket): Remove
- internal_function.
- * sunrpc/auth_des.c (synchronize): Likewise.
- * sunrpc/auth_unix.c (marshal_new_auth): Likewise.
- * sunrpc/clnt_perr.c (auth_errmsg): Likewise.
- * sunrpc/des_impl.c (des_encrypt, des_set_key): Likewise.
- * sunrpc/key_call.c (key_call_keyenvoy, key_call_socket)
- (key_call): Likewise.
- * sunrpc/pm_getport.c (__get_socket): Likewise.
- * sunrpc/pmap_rmt.c (getbroadcastnets): Likewise.
- * sunrpc/svc_unix.c (makefd_xprt): Likewise.
- * sunrpc/svc_tcp.c (makefd_xprt): Likewise.
- * sunrpc/svcauth_des.c (cache_init, cache_spot, cache_ref)
- (invalidate): Likewise.
- * sunrpc/xcrypt.c (hexval, hex2bin, bin2hex): Likewise.
- * sunrpc/xdr_rec.c (fix_buf_size, skip_input_bytes, flush_out)
- (set_input_fragment, get_input_bytes): Likewise.
-
-2017-08-31 Florian Weimer <fweimer@redhat.com>
-
- * malloc/malloc.c (_int_free): Remove locked variable and related
- asserts.
-
-2017-08-31 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #22051]
- * Makerules (build-module-helper-objlist): Filter out
- $(elf-objpfx)sofini.os.
- (build-shlib-objlist): Append $(elf-objpfx)sofini.os if it is
- needed.
-
-2017-08-31 Florian Weimer <fweimer@redhat.com>
-
- * libio/fcloseall.c: Assume weak_alias is defined.
- * libio/feof.c: Likewise.
- * libio/fileno.c: Likewise.
- * libio/fileops.c: Assume _LIBC, errno, __set_errno are defined.
- (_POSIX_SOURCE, open, lseek, read, write): Remove macro
- definitions.
- (_IO_file_open): Call __open directly.
- (_IO_new_file_sync): Assume ESPIPE is defined.
- (_IO_file_seekoff_maybe_mmap): Call __read directly.
- (_IO_new_file_write): Call __write directly.
- * libio/ftello.c (__ftello): Assume EIO, EOVERFLOW are defined.
- * libio/ftello64.c (__ftello64): Assume EIO is defined.
- * libio/genops.c: Assume _LIBC is defined.
- (save_for_backup): Remove internal_function.
- * libio/getc.c: Assume weak_alias is defined.
- * libio/getwc.c: Likewise.
- * libio/iofclose.c: Assume _LIBC is defined.
- * libio/iofdopen.c: Likewise.
- (_IO_fcntl): Remove macro definition.
- (_IO_new_fdopen): Assume F_GETFL, F_SETFL, O_ACCMODE are defined.
- Call __fcntl directly.
- * libio/iofflush.c: Assume weak_alias is defined.
- * libio/iofgetpos.c (_IO_new_fgetpos): Assume EIO, EOVERFLOW are
- defined.
- * libio/iofgetpos64.c (_IO_new_fgetpos64): Assume EIO is defined.
- * libio/iofgets.c: Likewise.
- * libio/iofopen.c: Assume _LIBC is defined.
- * libio/iofopen64.c: Assume _LIBC, weak_alias are defined.
- * libio/iofputs.c: Assume weak_alias is defined.
- * libio/iofread.c: Likewise.
- * libio/iofsetpos.c (_IO_new_fsetpos): Assume EIO is defined.
- * libio/iofsetpos64.c (_IO_new_fsetpos64): Likewise.
- * libio/ioftell.c: Assume weak_alias is defined.
- (_IO_ftell): Assume EIO, EOVERFLOW are defined.
- * libio/iofwide.c: Assume _LIBC is defined.
- (_IO_fwide): Drop SHARED conditional because it is implied by
- SHLIB_COMPAT.
- * libio/iofwrite.c: Assume weak_alias is defined.
- * libio/iogetdelim.c: Likewise.
- * libio/iogets.c: Assume _LIBC, weak_alias are defined.
- * libio/iogetwline.c (wmemcpy): Remove macro definition.
- (_IO_getwline): Call __wmemcpy directly.
- * libio/iopopen.c: Assume _LIBC is defined.
- (_POSIX_SOURCE, _IO_fork, _IO_dup2, _IO_waitpid, _IO_execl)
- (_IO_close): Remove macro definitions.
- (_IO_new_proc_open): Call __fork, __dup2, __close_nocancel, execl,
- _exit directly.
- (_IO_new_proc_close): Call __close_nocancel, __waitpid_nocancel
- directly.
- * libio/ioputs.c: Assume weak_alias is defined.
- * libio/ioseekoff.c: Assume errno, __set_errno are defined.
- * libio/iosetbuffer.c: Assume weak_alias is defined.
- * libio/iosetvbuf.c: Likewise.
- * libio/ioungetc.c: Likewise.
- * libio/libioP.h: Assume _LIBC, __GLIBC__, libc_hidden_proto,
- libc_hidden_def, libc_hidden_weak, NULL are defined.
- (mmap, munmap, ftruncate, OS_FSTAT): Remove macro definitions.
- * libio/oldfilepos.c: Assume _LIBC, errno, __set_errno are
- defined.
- (_POSIX_SOURCE, open, lseek, read, write): Remove macro
- definitions.
- (_IO_old_file_init_internal): Drop SHARED conditional because it
- is implied by SHLIB_COMPAT.
- (_IO_old_file_fopen): Call __open directly.
- (_IO_old_file_sync): Assume ESPIPE is defined.
- (_IO_old_file_write): Call __write directly.
- * libio/oldfdopen.c (_IO_fcntl): Remove macro definition.
- (_IO_old_fdopen): Assume F_GETFL, O_ACCMODE, F_SETFL are defined.
- Call __fcntl directly.
- * libio/oldiofgetpos.c: Assume weak_alias is defined.
- (_IO_old_fgetpos): Assume EIO is defined.
- * libio/oldiofgetpos64.c: Assume weak_alias is defined.
- (_IO_old_fgetpos64): Assume EIO is defined.
- * libio/oldiofsetpos.c: Assume weak_alias is defined.
- (_IO_old_fsetpos): Assume EIO is defined.
- * libio/oldiofsetpos64.c: Assume weak_alias is defined.
- (_IO_old_fsetpos64): Assume EIO is defined.
- * libio/oldiopopen.c: Assume _LIBC is defined.
- (_POSIX_SOURCE, _IO_fork, _IO_dup2, _IO_waitpid, _IO_execl)
- (_IO_close): Remove macro definitions.
- (_IO_old_proc_open): Call __pipe, __close, __dup2, execl, _exit
- directly.
- (_IO_old_proc_close): Call __close, __waitpid directly.
- * libio/put.c: Assume weak_alias is defined.
- * libio/stdfiles.c: Assume _LIBC is defined.
- * libio/stdio.c: Likewise.
- * libio/wfileops.c: Likewise.
- (_IO_wfile_sync): Assume ESPIPE is defined.
- * libio/wgenops.c: Assume _LIBC is defined.
- (save_for_wbackup): Remove internal_function.
-
-2017-08-31 Florian Weimer <fweimer@redhat.com>
-
- * malloc/malloc.c (top_check): Change return type to void. Remove
- internal_function.
- * malloc/hooks.c (top_check): Likewise.
- (malloc_check, realloc_check, memalign_check): Adjust.
-
-2017-08-30 Joseph Myers <joseph@codesourcery.com>
-
- [BZ #21457]
- * sysdeps/arm/sys/ucontext.h: Do not include <bits/sigcontext.h>.
- * sysdeps/generic/sys/ucontext.h: Add comment about use of struct
- sigcontext and namespace requirements.
- * sysdeps/i386/sys/ucontext.h: Do not include <bits/sigcontext.h>.
- * sysdeps/m68k/sys/ucontext.h: Likewise.
- * sysdeps/mips/sys/ucontext.h: Likewise. Include <bits/types.h>.
- * sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h: Do not include
- <bits/sigcontext.h>.
- (__ctx): Define earlier.
- (mcontext_t): Define structure contents rather than using struct
- sigcontext.
- * sysdeps/unix/sysv/linux/aarch64/ucontext_i.sym (oEXTENSION): Use
- __glibc_reserved1 instead of __reserved.
- * sysdeps/unix/sysv/linux/alpha/sys/ucontext.h: Do not include
- <bits/sigcontext.h>.
- (__ctx): Define earlier.
- (mcontext_t): Define structure contents rather than using struct
- sigcontext.
- * sysdeps/unix/sysv/linux/alpha/ucontext-offsets.sym: Use
- mcontext_t instead of struct sigcontext.
- * sysdeps/unix/sysv/linux/arm/sys/ucontext.h: Do not include
- <bits/sigcontext.h>.
- (__ctx): Define earlier.
- (mcontext_t): Define structure contents rather than using struct
- sigcontext.
- * sysdeps/unix/sysv/linux/hppa/sys/ucontext.h: Do not include
- <bits/sigcontext.h>.
- (__ctx): Define earlier.
- (mcontext_t): Define structure contents rather than using struct
- sigcontext.
- * sysdeps/unix/sysv/linux/ia64/makecontext.c (__makecontext): Use
- mcontext_t instead of struct sigcontext.
- * sysdeps/unix/sysv/linux/ia64/sigcontext-offsets.sym: Use
- mcontext_t instead of struct sigcontext.
- * sysdeps/unix/sysv/linux/ia64/sys/ucontext.h: Do not include
- <bits/sigcontext.h>.
- (__ctx): New macro.
- (struct __ia64_fpreg_mcontext): New type.
- (mcontext_t): Define structure contents rather than using struct
- sigcontext.
- (_SC_GR0_OFFSET): Use mcontext_t instead of struct sigcontext.
- (uc_sigmask): Define using __ctx.
- (uc_stack): Likewise.
- * sysdeps/unix/sysv/linux/ia64/sys/procfs.h: Include
- <bits/sigcontext.h>.
- * sysdeps/unix/sysv/linux/ia64/sys/ptrace.h: Likewise.
- * sysdeps/unix/sysv/linux/m68k/sys/ucontext.h: Do not include
- <bits/sigcontext.h>.
- * sysdeps/unix/sysv/linux/microblaze/sys/ucontext.h: New file.
- * sysdeps/unix/sysv/linux/mips/sys/ucontext.h: Do not include
- <bits/sigcontext.h>.
- * sysdeps/unix/sysv/linux/nios2/sys/ucontext.h: Do not include
- <bits/sigcontext.h>.
- * sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h: Do not include
- <bits/sigcontext.h>.
- * sysdeps/unix/sysv/linux/s390/sys/ucontext.h: Do not include
- <bits/sigcontext.h>.
- * sysdeps/unix/sysv/linux/sh/sys/ucontext.h: Do not include
- <bits/sigcontext.h>.
- * sysdeps/unix/sysv/linux/sparc/sys/ucontext.h: Do not include
- <bits/sigcontext.h>.
- * sysdeps/unix/sysv/linux/tile/sys/ucontext.h: Do not include
- <bits/sigcontext.h>.
- (__ctx): Define earlier.
- (mcontext_t): Define structure contents rather than using struct
- sigcontext.
- * sysdeps/unix/sysv/linux/x86/sys/ucontext.h: Do not include
- <bits/sigcontext.h>. Include <bits/types.h>.
- * conform/Makefile (test-xfail-XPG42/signal.h/conform): Remove.
- (test-xfail-XPG42/sys/wait.h/conform): Likewise.
- (test-xfail-XPG42/ucontext.h/conform): Likewise.
- (test-xfail-UNIX98/signal.h/conform): Likewise.
- (test-xfail-UNIX98/sys/wait.h/conform): Likewise.
- (test-xfail-UNIX98/ucontext.h/conform): Likewise.
- (test-xfail-XOPEN2K/signal.h/conform): Likewise.
- (test-xfail-XOPEN2K/sys/wait.h/conform): Likewise.
- (test-xfail-XOPEN2K/ucontext.h/conform): Likewise.
- (test-xfail-POSIX2008/signal.h/conform): Likewise.
- (test-xfail-POSIX2008/sys/wait.h/conform): Likewise.
- (test-xfail-XOPEN2K8/signal.h/conform): Likewise.
- (test-xfail-XOPEN2K8/sys/wait.h/conform): Likewise.
-
-2017-08-30 Florian Weimer <fweimer@redhat.com>
-
- * malloc/dynarray_emplace_enlarge.c
- (__libc_dynarray_emplace_enlarge): Set errno on overflow.
- * malloc/dynarray_resize.c (__libc_dynarray_resize): Likewise.
- * malloc/tst-dynarray.c (test_long_overflow): New function.
- (do_test): Call it.
-
-2017-08-30 Florian Weimer <fweimer@redhat.com>
-
- * malloc/malloc.c (ARENA_CORRUPTION_BIT, arena_is_corrupt)
- (set_arena_corrupt): Remove definitions.
- (mtrim): Do not check for corrupt arena.
- * malloc/arena.c (arena_lock, reused_arena, arena_get_retry):
- Likewise.
-
-2017-08-30 Florian Weimer <fweimer@redhat.com>
-
- [BZ #21754]
- * malloc/arena.c (TUNABLE_CALLBACK set_mallopt_check): Do not set
- check_action.
- (ptmalloc_init): Do not set or use check_action.
- * malloc/hooks.c (malloc_check_get_size, realloc_check): Adjust
- call to malloc_printerr. Remove return statement.
- (free_check): Likewise. Remove arena unlock.
- (top_check): Update comment. Adjust call to malloc_printerr.
- Remove heap repair code.
- * malloc/malloc.c (unlink): Adjust calls to malloc_printerr.
- (DEFAULT_CHECK_ACTION, check_action): Remove definitions.
- (sysmalloc): Adjust call to malloc_printerr.
- (munmap_chunk, __libc_realloc): Likewise. Remove return
- statement.
- (_int_malloc, int_realloc): Likewise. Remove errstr variable.
- Remove errout label and corresponding gotos.
- (_int_free): Likewise. Remove arena unlock.
- (do_set_mallopt_check): Do not set check_action.
- (malloc_printerr): Adjust parameter list. Do not mark arena as
- corrupt.
- * manual/memory.texi (Malloc Tunable Parameters): Remove TODO
- comment.
- * manual/probes.texi (Memory Allocation Probes): Remove
- memory_mallopt_check_action.
-
-2017-08-30 Steve Ellcey <sellcey@cavium.com>
-
- * sysdeps/unix/sysv/linux/aarch64/makecontext.c (__makecontext):
- Use pointer to uint64_t instead of long int for sp.
-
-2017-08-30 Florian Weimer <fweimer@redhat.com>
-
- [BZ #21754]
- * malloc/malloc.c (malloc_printerr): Always terminate the process,
- without printing a backtrace. Do not leak any information in the
- error message.
- * manual/memory.texi (Heap Consistency Checking): Update.
- * manual/tunables.texi (Memory Allocation Tunables): Likewise.
-
-2017-08-30 Florian Weimer <fweimer@redhat.com>
-
- Do not scale NPTL tests with available number of CPUs.
- * nptl/tst-cond16.c (count): Set to constant value of 8.
- * nptl/tst-cond18.c (count): Likewise.
-
-2017-08-29 Joseph Myers <joseph@codesourcery.com>
-
- [BZ #22035]
- * sysdeps/m68k/m680x0/fpu/bits/mathinline.h (__inline_functions):
- Define to take a second argument that is a macro that
- concatentates a suffix, not the suffix itself.
- (__CONCAT_d): New macro.
- (__CONCAT_f): Likewise.
- (__CONCAT_l): Likewise.
-
-2017-08-29 Paul Pluzhnikov <ppluzhnikov@google.com>
-
- * stdlib/tst-atexit-common.c (do_test): Test handler inheritance
- by child.
-
-2017-08-29 Adhemerval Zanella <adhemerval.zanella@linaro.org>
- Aurelien Jarno <aurelien@aurel32.net>
- Maciej W. Rozycki <macro@imgtec.com>
-
- [BZ #21956]
- * sysdeps/unix/sysv/linux/mips/mips32/mips16/Makefile
- [subdir = misc] (sysdep_routines): Remove `mips16-syscall5',
- `mips16-syscall6' and `mips16-syscall7'.
- (CFLAGS-mips16-syscall5.c, CFLAGS-mips16-syscall6.c)
- (CFLAGS-mips16-syscall7.c): Remove.
- * sysdeps/unix/sysv/linux/mips/mips32/mips16/Versions (libc):
- Remove `__mips16_syscall5', `__mips16_syscall6' and
- `__mips16_syscall7'.
- * sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall0.c
- (__mips16_syscall0): Rename `__mips16_syscall_return' to
- `__mips_syscall_return'.
- * sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall1.c
- (__mips16_syscall1): Likewise.
- * sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall2.c
- (__mips16_syscall2): Likewise.
- * sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall3.c
- (__mips16_syscall3): Likewise.
- * sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall4.c
- (__mips16_syscall4): Likewise.
- * sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall5.c:
- Remove.
- * sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall6.c:
- Remove.
- * sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall7.c:
- Remove.
- * sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall.h
- (__mips16_syscall5): Expand to `__mips_syscall5' rather than
- `__mips16_syscall5'. Remove prototype.
- (__mips16_syscall6): Expand to `__mips_syscall6' rather than
- `__mips16_syscall6'. Remove prototype.
- (__mips16_syscall7): Expand to `__mips_syscall7' rather than
- `__mips16_syscall7'. Remove prototype.
- (__nomips16, __mips16_syscall_return): Move to...
- * sysdeps/unix/sysv/linux/mips/mips32/sysdep.h
- (__nomips16, __mips_syscall_return): ... here.
- [__mips16] (INTERNAL_SYSCALL_NCS): Rename
- `__mips16_syscall_return' to `__mips_syscall_return'.
- [__mips16] (INTERNAL_SYSCALL_MIPS16): Pass `number' to
- `internal_syscall##nr'.
- [!__mips16] (INTERNAL_SYSCALL): Pass `SYS_ify (name)' to
- `internal_syscall##nr'.
- (FORCE_FRAME_POINTER): Remove.
- (__mips_syscall5): New prototype.
- (internal_syscall5): Rewrite to call `__mips_syscall5'.
- (__mips_syscall6): New prototype.
- (internal_syscall6): Rewrite to call `__mips_syscall6'.
- (__mips_syscall7): New prototype.
- (internal_syscall7): Rewrite to call `__mips_syscall7'.
- * sysdeps/unix/sysv/linux/mips/mips32/mips-syscall5.S: New file.
- * sysdeps/unix/sysv/linux/mips/mips32/mips-syscall6.S: New file.
- * sysdeps/unix/sysv/linux/mips/mips32/mips-syscall7.S: New file.
- * sysdeps/unix/sysv/linux/mips/mips32/Makefile [subdir = misc]
- (sysdep_routines): Add libc-do-syscall.
- * sysdeps/unix/sysv/linux/mips/mips32/Versions (libc): Add
- `__mips_syscall5', `__mips_syscall6' and `__mips_syscall7'.
-
-2017-08-29 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- [BZ #21672]
- * nptl/allocatestack.c [_STACK_GROWS_DOWN] (setup_stack_prot):
- Set to use !NEED_SEPARATE_REGISTER_STACK as well.
- (advise_stack_range): New function.
- * nptl/pthread_create.c (START_THREAD_DEFN): Move logic to mark
- stack non required to advise_stack_range at allocatestack.c
-
-2017-08-29 Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- * sysdeps/unix/sysv/linux/aarch64/sys/procfs.h: Use __uint64_t.
-
-2017-08-29 Florian Weimer <fweimer@redhat.com>
-
- [BZ #22026]
- * iconv/gconv_db.c (gen_steps): Decrement step_cnt after resetting
- __end_fct. Mangle __end_fct after setting it to NULL.
- * iconv/Makefile (tests): Add tst-gconv-init-failure.
- (modules-names, modules-names-tests): Add
- tst-gconv-init-failure-mod.
- (gconv-modules): New target.
- (tst-gconv-init-failure-mod.so): Link against libsupport.
- (tst-gconv-init-failure): Depend on gconv-modules,
- tst-gconv-init-failure-mod.so.
- * iconv/tst-gconv-init-failure-mod.c: New file.
- * iconv/tst-gconv-init-failure.c: Likewise.
- * iconv/test-gconv-modules: Likewise.
-
-2017-08-29 Florian Weimer <fweimer@redhat.com>
-
- [BZ #22025]
- * iconv/gconv_db.c (free_derivation): Remove redundant
- parentheses.
- (gen_steps): Unconditionally mangle __btowc_fct after
- initialization.
- (increment_counter): Likewise. Do not call init_fct for internal
- modules.
-
-2017-08-29 Joseph Myers <joseph@codesourcery.com>
-
- [BZ #22028]
- * math/math.h [__FINITE_MATH_ONLY__ && __FINITE_MATH_ONLY__ > 0]
- (_MSUF_): Remove macro.
- [__FINITE_MATH_ONLY__ && __FINITE_MATH_ONLY__ > 0] (_MSUFTO_):
- Likewise.
- [__FINITE_MATH_ONLY__ && __FINITE_MATH_ONLY__ > 0]
- (__REDIRFROM_X): New macro.
- [__FINITE_MATH_ONLY__ && __FINITE_MATH_ONLY__ > 0] (__REDIRTO_X):
- Likewise.
- * math/bits/math-finite.h (__REDIRFROM_X): Remove macro.
- (__REDIRTO_X): Likewise.
- (__MATH_REDIRCALL): Do not pass _MSUF_ or _MSUFTO_ macro
- arguments.
- (__MATH_REDIRCALL_2): Likewise.
- (__MATH_REDIRCALL_INTERNAL): Likewise.
- (__REDIRFROM (lgamma, , _MSUF_)): Likewise.
- (__REDIRFROM (gamma, , _MSUF_)): Likweise.
- (__REDIRFROM (__gamma, _r_finite, _MSUF_)): Likewise.
- (__REDIRFROM (tgamma, , _MSUF_)): Likewise.
- * math/test-finite-macros.c: New file.
- * math/Makefile (tests): Add test-finite-macros.
- (CFLAGS-test-finite-macros.c): New variable.
-
-2017-08-29 Patsy Franklin <pfrankli@redhat.com>
- Jeff Law <law@redhat.com>
-
- [BZ #22025]
- Mangle NULL pointers in iconv/gconv.
- * iconv/gconv_cache.c (find_module): Demangle init_fct before
- checking for NULL. Mangle __btowc_fct if init_fct is non-NULL.
- * iconv/gconv_db.c (free_derivation): Check that __shlib_handle
- is non-NULL before demangling the end_fct. Check for NULL
- end_fct after demangling.
- (__gconv_release_step): Demangle the end_fct before checking
- it for NULL. Remove assert on __shlibc_handle != NULL.
- (gen_steps): Don't check btowc_fct for NULL before mangling.
- Demangle init_fct before checking for NULL.
- (increment_counter): Likewise.
- * gconv_dl.c (__gconv_find_shlib): Don't check init_fct or
- end_fct for NULL before mangling.
- * wcsmbs/btowc.c (__btowc): Demangle btowc_fct before checking
- for NULL.
-
-2017-08-29 Akhilesh Kumar <akhilesh.k@samsung.com>
-
- [BZ #21971]
- * locale/iso-639.def: add Morisyen.
-
-2017-08-28 Gabriel F. T. Gomes <gftg@linux.vnet.ibm.com>
-
- [BZ #21930]
- * math/math.h [defined __cplusplus && defined __SUPPORT_SNAN__]
- (iszero): New C++ implementation that does not use
- fpclassify/__MATH_TG/__builtin_types_compatible_p, when
- signaling nans are enabled, since __builtin_types_compatible_p
- is a C-only feature.
- * math/test-math-iszero.cc: When __HAVE_DISTINCT_FLOAT128 is
- defined, include ieee754_float128.h for access to the union and
- member ieee854_float128.ieee.
- [__HAVE_DISTINCT_FLOAT128] (do_test): Call check_float128.
- [__HAVE_DISTINCT_FLOAT128] (check_float128): New function.
- * sysdeps/powerpc/powerpc64le/Makefile [subdir == math]
- (CXXFLAGS-test-math-iszero.cc): Add -mfloat128 to the build
- options of test-math-zero on powerpc64le.
-
-2017-08-28 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/x86_64/fpu/multiarch/e_expf.c (__redirect_ieee754_expf):
- Change double to float.
-
-2017-08-28 Joseph Myers <joseph@codesourcery.com>
-
- * math/math-svid-compat.h [!__ASSEMBLER__]: Make code
- unconditional.
- * sysdeps/ieee754/s_lib_version.c [!defined SHARED]: Remove
- conditional code; define contents only for [LIBM_SVID_COMPAT].
-
-2017-08-28 Florian Weimer <fweimer@redhat.com>
-
- * sysdeps/unix/sysv/linux/aarch64/Makefile (abi-lp64-options)
- (abi-lp64_be-options): Remove.
- * sysdeps/unix/sysv/linux/arm/Makefile (abi-soft-options)
- (abi-hard-options): Likewise.
- * sysdeps/unix/sysv/linux/mips/Makefile(abi-o32_soft-options)
- (abi-o32_hard-options, abi-o32_soft_2008-options)
- (abi-o32_hard_2008-options, abi-n32_soft-options)
- (abi-n32_hard-options, abi-n32_soft_2008-options)
- (abi-n32_hard_2008-options, abi-n64_soft-options)
- (abi-n64_hard-options, abi-n64_soft_2008-options)
- (abi-n64_hard_2008-options): Likewise.
- * sysdeps/unix/sysv/linux/powerpc/Makefile (abi-32-options)
- (abi-64-v1-options, abi-64-v2-options): Likewise.
- * sysdeps/unix/sysv/linux/s390/Makefile (abi-32-options)
- (abi-64-options): Likewise.
- * sysdeps/unix/sysv/linux/sparc/Makefile (abi-32-options)
- (abi-64-options): Likewise.
- * sysdeps/unix/sysv/linux/tile/tilegx/Makefile (abi-32-options)
- (abi-64-options): Likewise.
- * sysdeps/unix/sysv/linux/x86/Makefile (abi-32-options)
- (abi-64-options, abi-x32-options): Likewise.
-
-2017-08-28 Florian Weimer <fweimer@redhat.com>
-
- Store supported list of SYS_* system calls in the source tree.
- * sysdeps/unix/sysv/linux/Makefile [$(subdir) = misc]
- (bits/syscall.h): Generate from list file.
- [$(subdir) = misc] (before-compile): Add bits/syscall.h.
- [$(subdir) = misc] (tests): Add tst-syscall-list.
- [$(subdir) = misc] (tests-special): Add tst-syscall-list.out
- [$(subdir) = misc] (tst-syscall-list-macros.list)
- [$(subdir) = misc] (tst-syscall-list-nr.list)
- (tst-syscall-list-sys.list): Helper targets for new
- tst-syscall-list test.
- [$(subdir) = misc] (tst-syscall-list.out): Run test script
- tst-syscall-list.sh.
- [$(subdir) = misc] (bits/syscall%h, bits/syscall%d): Remove
- target. Do not include bits/syscall.d.
- [$(subdir) = misc] (generated): Do not update.
- * sysdeps/unix/sysv/linux/syscall-names.list: New file.
- * sysdeps/unix/sysv/linux/gen-syscall-h.awk: Likewise.
- * sysdeps/unix/sysv/linux/filter-nr-syscalls.awk: Likewise.
- * sysdeps/unix/sysv/linux/tst-syscall-list.sh: Likewise.
-
-2017-08-27 Paul Pluzhnikov <ppluzhnikov@google.com>
-
- * stdlib/Makefile (tst-atexit, tst-at_quick_exit): New tests.
- (tst-cxa_atexit, tst-on_exit): Likewise.
- * stdlib/Makefile (tests): Add tst-atexit, tst-at_quick_exit,
- tst-cxa_atexit, and tst-on_exit.
- * stdlib/tst-atexit-common.c: New file.
- * stdlib/tst-atexit.c: New file.
- * stdlib/tst-at_quick_exit.c: New file.
- * stdlib/tst-cxa_atexit.c: New file.
- * stdlib/tst-on_exit.c: New file.
-
-2017-08-27 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * sysdeps/mach/hurd/bits/sysmacros.h: New file.
- * mach/stack_chk_fail_local.c: New file.
- * hurd/stack_chk_fail_local.c: New file.
- * mach/Machrules ($(interface-library)-routines): Add
- stack_chk_fail_local.
- * mach/Makefile (CFLAGS-mach_init.o, CFLAGS-RPC_vm_statistics.o,
- CFLAGS-RPC_vm_map.o, CFLAGS-RPC_vm_protect.o,
- CFLAGS-RPC_i386_set_gdt.o, CFLAGS-RPC_i386_set_ldt.o,
- CFLAGS-RPC_task_get_special_port.o): Add $(no-stack-protector).
- * hurd/Makefile (CFLAGS-hurdstartup.o,
- CFLAGS-RPC_exec_startup_get_info.o): Add $(no-stack-protector).
-
-2017-08-25 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/x86/cpu-features.h [__ASSEMBLER__]
- (index_cpu_*, index_arch_*): Removed.
-
-2017-08-25 Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- * sysdeps/unix/sysv/linux/aarch64/sys/procfs.h (elf_greg_t):
- Use uint64_t instead of unsigned long.
-
-2017-08-25 Joseph Myers <joseph@codesourcery.com>
-
- * math/tgmath.h [__HAVE_FLOAT128]: Change conditional to
- [__HAVE_DISTINCT_FLOAT128].
-
- * math/math.h (_MSUFTO_): Define and undefine for each inclusion
- of <bits/math-finite.h>.
- (__MATH_DECLARING_LDOUBLE): Do not define and undefine for each
- inclusion of <bits/math-finite.h>.
- * math/bits/math-finite.h (__REDIRTO_X): Do not define
- conditionally on [__MATH_DECLARING_LDOUBLE && defined
- __NO_LONG_DOUBLE_MATH].
- (__MATH_REDIRCALL): Use _MSUFTO_ in __REDIRTO call.
- (__MATH_REDIRCALL_2): Likewise.
- (__MATH_REDIRCALL_INTERNAL): Likewise.
- (__REDIRFROM (lgamma, , _MSUF_)): Likewise.
- (__REDIRFROM (gamma, , _MSUF_)): Likewise.
- (__REDIRFROM (tgamma, , _MSUF_)): Likewise.
-
- * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/w_sqrt_compat-power5.S:
- Remove file.
- * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/w_sqrt_compat-ppc32.S:
- Likewise.
- * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/w_sqrt_compat.c:
- Likewise.
- * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/w_sqrtf_compat-power5.S:
- Likewise.
- * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/w_sqrtf_compat-ppc32.S:
- Likewise.
- * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/w_sqrtf_compat.c:
- Likewise.
- * sysdeps/powerpc/powerpc32/power4/fpu/w_sqrt_compat.S: Likewise.
- * sysdeps/powerpc/powerpc32/power4/fpu/w_sqrtf_compat.S: Likewise.
- * sysdeps/powerpc/powerpc32/power5/fpu/w_sqrt_compat.S: Likewise.
- * sysdeps/powerpc/powerpc32/power5/fpu/w_sqrtf_compat.S: Likewise.
- * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/Makefile
- (libm-sysdep-routines): Remove w_sqrt_compat-power5,
- w_sqrt_compat-ppc32, w_sqrtf_compat-power5 and
- w_sqrtf_compat-ppc32.
-
-2017-08-24 Gabriel F. T. Gomes <gftg@linux.vnet.ibm.com>
-
- * math/math.h [defined __cplusplus] (issignaling): In the long
- double case, call __issignalingl only if __NO_LONG_DOUBLE_MATH
- is not defined. Call __issignaling, otherwise.
-
-2017-08-24 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * sysdeps/unix/make-syscalls.sh: Remove cancellable tagging for
- syscall definitions and replace __builtin_expect with __glibc_likely.
- * sysdeps/unix/syscall-template.S: Update comment about cancellable
- syscall.
- (SYSCALL_CANCELLABLE): Removedefinition
- * sysdeps/unix/sysv/linux/aarch64/sysdep-cancel.h (PSEUDO): Remove
- definition.
- (PSEUDO_END): Likewise.
- [IS_IN (libpthread)] (CENABLE): Likewise.
- [IS_IN (libpthread)] (CDISABLE): Likewise.
- [IS_IN (libc)] (CENABLE): Likewise.
- [IS_IN (libc)] (CENABLE): Likewise.
- [IS_IN (librt)] (CDISABLE): Likewise.
- [IS_IN (librt)] (CDISABLE): Likewise.
- [__ASSEMBLER__] (SINGLE_THREAD_P): Likewise.
- * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (PSEUDO): Remove
- definition.
- (PSEUDO_END): Likewise.
- [IS_IN (libpthread)] (__local_enable_asynccancel): Likewise.
- [IS_IN (libpthread)] (__local_disable_asynccancel): Likewise.
- [IS_IN (libc)] (__local_enable_asynccancel): Likewise.
- [IS_IN (libc)] (__local_enable_asynccancel): Likewise.
- [IS_IN (librt)] (__local_disable_asynccancel): Likewise.
- [IS_IN (librt)] (__local_disable_asynccancel): Likewise.
- (CENABLE): Likewise.
- (CDISABLE): Likewise.
- [__ASSEMBLER__] (SINGLE_THREAD_P): Likewise.
- * sysdeps/unix/sysv/linux/arm/sysdep-cancel.h (PSEUDO): Remove
- defintion.
- (PSEUDO_END): Likewise.
- [IS_IN (libpthread)] (CENABLE): Likewise.
- [IS_IN (libpthread)] (CDISABLE): Likewise.
- [IS_IN (libc)] (CENABLE): Likewise.
- [IS_IN (libc)] (CENABLE): Likewise.
- [IS_IN (librt)] (CDISABLE): Likewise.
- [IS_IN (librt)] (CDISABLE): Likewise.
- [__ASSEMBLER__] (SINGLE_THREAD_P): Likewise.
- * sysdeps/unix/sysv/linux/hppa/sysdep-cancel.h (PSEUDO): Remove
- definition.
- (PSEUDO_END): Likewise.
- [IS_IN (libpthread)] (CENABLE): Likewise.
- [IS_IN (libpthread)] (CDISABLE): Likewise.
- [IS_IN (libc)] (CENABLE): Likewise.
- [IS_IN (libc)] (CENABLE): Likewise.
- [IS_IN (librt)] (CDISABLE): Likewise.
- [IS_IN (librt)] (CDISABLE): Likewise.
- [__ASSEMBLER__] (SINGLE_THREAD_P): Likewise.
- * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (PSEUDO): Remove
- definition.
- (PSEUDO_END): Likewise.
- [IS_IN (libpthread)] (CENABLE): Likewise.
- [IS_IN (libpthread)] (CDISABLE): Likewise.
- [IS_IN (libc)] (CENABLE): Likewise.
- [IS_IN (libc)] (CENABLE): Likewise.
- [IS_IN (librt)] (CDISABLE): Likewise.
- [IS_IN (librt)] (CDISABLE): Likewise.
- [__ASSEMBLER__] (SINGLE_THREAD_P): Likewise.
- * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (PSEUDO): Remove
- definition.
- (PSEUDO_END): Likewise.
- [IS_IN (libpthread)] (CENABLE): Likewise.
- [IS_IN (libpthread)] (CDISABLE): Likewise.
- [IS_IN (libc)] (CENABLE): Likewise.
- [IS_IN (libc)] (CENABLE): Likewise.
- [IS_IN (librt)] (CDISABLE): Likewise.
- [IS_IN (librt)] (CDISABLE): Likewise.
- [__ASSEMBLER__] (SINGLE_THREAD_P): Likewise.
- * sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h (PSEUDO): Remove
- definition.
- (PSEUDO_END): Likewise.
- [IS_IN (libpthread)] (CENABLE): Likewise.
- [IS_IN (libpthread)] (CDISABLE): Likewise.
- [IS_IN (libc)] (CENABLE): Likewise.
- [IS_IN (libc)] (CENABLE): Likewise.
- [IS_IN (librt)] (CDISABLE): Likewise.
- [IS_IN (librt)] (CDISABLE): Likewise.
- [__ASSEMBLER__] (SINGLE_THREAD_P): Likewise.
- * sysdeps/unix/sysv/linux/microblaze/sysdep-cancel.h (PSEUDO): Remove
- definition.
- (PSEUDO_END): Likewise.
- [IS_IN (libpthread)] (CENABLE): Likewise.
- [IS_IN (libpthread)] (CDISABLE): Likewise.
- [IS_IN (libc)] (CENABLE): Likewise.
- [IS_IN (libc)] (CENABLE): Likewise.
- [IS_IN (librt)] (CDISABLE): Likewise.
- [IS_IN (librt)] (CDISABLE): Likewise.
- [__ASSEMBLER__] (SINGLE_THREAD_P): Likewise.
- * sysdeps/unix/sysv/linux/mips/mips64/sysdep-cancel.h (PSEUDO):
- Remove definition.
- (PSEUDO_END): Likewise.
- [IS_IN (libpthread)] (CENABLE): Likewise.
- [IS_IN (libpthread)] (CDISABLE): Likewise.
- [IS_IN (libc)] (CENABLE): Likewise.
- [IS_IN (libc)] (CENABLE): Likewise.
- [IS_IN (librt)] (CDISABLE): Likewise.
- [IS_IN (librt)] (CDISABLE): Likewise.
- (SINGLE_THREAD_P): Likewise.
- * sysdeps/unix/sysv/linux/mips/sysdep-cancel.h (PSEUDO): Remove
- definition.
- (PSEUDO_END): Likewise.
- [IS_IN (libpthread)] (CENABLE): Likewise.
- [IS_IN (libpthread)] (CDISABLE): Likewise.
- [IS_IN (libc)] (CENABLE): Likewise.
- [IS_IN (libc)] (CENABLE): Likewise.
- [IS_IN (librt)] (CDISABLE): Likewise.
- [IS_IN (librt)] (CDISABLE): Likewise.
- [__ASSEMBLER__] (SINGLE_THREAD_P): Likewise.
- * sysdeps/unix/sysv/linux/nios2/sysdep-cancel.h (PSEUDO): Remove
- definition.
- (PSEUDO_END): Likewise.
- [IS_IN (libpthread)] (CENABLE): Likewise.
- [IS_IN (libpthread)] (CDISABLE): Likewise.
- [IS_IN (libc)] (CENABLE): Likewise.
- [IS_IN (libc)] (CENABLE): Likewise.
- [IS_IN (librt)] (CDISABLE): Likewise.
- [IS_IN (librt)] (CDISABLE): Likewise.
- [__ASSEMBLER__] (SINGLE_THREAD_P): Likewise.
- * sysdeps/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Remove file.
- * sysdeps/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/sysdep-cancel.h: New file.
- * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO): Remove
- definition.
- (PSEUDO_END): Likewise.
- [IS_IN (libpthread)] (CENABLE): Likewise.
- [IS_IN (libpthread)] (CDISABLE): Likewise.
- [IS_IN (libc)] (CENABLE): Likewise.
- [IS_IN (libc)] (CENABLE): Likewise.
- [IS_IN (librt)] (CDISABLE): Likewise.
- [IS_IN (librt)] (CDISABLE): Likewise.
- [__ASSEMBLER__] (SINGLE_THREAD_P): Likewise.
- * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO): Remove
- definition.
- (PSEUDO_END): Likewise.
- [IS_IN (libpthread)] (CENABLE): Likewise.
- [IS_IN (libpthread)] (CDISABLE): Likewise.
- [IS_IN (libc)] (CENABLE): Likewise.
- [IS_IN (libc)] (CENABLE): Likewise.
- [IS_IN (librt)] (CDISABLE): Likewise.
- [IS_IN (librt)] (CDISABLE): Likewise.
- [__ASSEMBLER__] (SINGLE_THREAD_P): Likewise.
- * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (PSEUDO): Remove
- definition.
- (PSEUDO_END): Likewise.
- [IS_IN (libpthread)] (CENABLE): Likewise.
- [IS_IN (libpthread)] (CDISABLE): Likewise.
- [IS_IN (libc)] (CENABLE): Likewise.
- [IS_IN (libc)] (CENABLE): Likewise.
- [IS_IN (librt)] (CDISABLE): Likewise.
- [IS_IN (librt)] (CDISABLE): Likewise.
- [__ASSEMBLER__] (SINGLE_THREAD_P): Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Remove file.
- * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sysdep-cancel.h: New file.
- * sysdeps/unix/sysv/linux/tile/sysdep-cancel.h (PSEUDO): Remove
- definition.
- (PSEUDO_END): Likewise.
- [IS_IN (libpthread)] (CENABLE): Likewise.
- [IS_IN (libpthread)] (CDISABLE): Likewise.
- [IS_IN (libc)] (CENABLE): Likewise.
- [IS_IN (libc)] (CENABLE): Likewise.
- [IS_IN (librt)] (CDISABLE): Likewise.
- [IS_IN (librt)] (CDISABLE): Likewise.
- [__ASSEMBLER__] (SINGLE_THREAD_P): Likewise.
- * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (PSEUDO): Remove
- definition.
- (PSEUDO_END): Likewise.
- [IS_IN (libpthread)] (CENABLE): Likewise.
- [IS_IN (libpthread)] (CDISABLE): Likewise.
- [IS_IN (libc)] (CENABLE): Likewise.
- [IS_IN (libc)] (CENABLE): Likewise.
- [IS_IN (librt)] (CDISABLE): Likewise.
- [IS_IN (librt)] (CDISABLE): Likewise.
- [__ASSEMBLER__] (SINGLE_THREAD_P): Likewise.
-
-2017-08-24 Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- * sysdeps/ieee754/dbl-64/Makefile: Don't override CFLAGS.
-
-2017-08-23 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/x86_64/fpu/libm-test-ulps: Regenerated.
-
-2017-08-23 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #21982]
- * string/stratcliff.c (do_test): Declare size, nchars, inner,
- middle and outer with size_t instead of int. Repleace %d and
- %Zd with %zu in printf. Update "MAX (0, nchars - 128)" and
- "MAX (outer, nchars - 64)" to support unsigned outer and
- nchars. Also exit loop when outer == 0.
-
-2017-08-23 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * include/fcntl.h (__fcntl_nocancel): Remove definition.
- * include/signal.h (__sigsuspend_nocancel): Likewise.
- * include/time.h (__nanosleep_nocancel): Likewise.
- * sysdeps/generic/not-cancel.h (__fcntl_nocancel): New macro.
- * login/utmp_file.c: Include non cancellable syscall header.
- * sysdeps/unix/sysv/linux/not-cancel.h (__fcntl_nocancel): New
- prototype.
-
-2017-08-23 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/x86_64/fpu/svml_d_sincos8_core.S: Replace AVX512F
- .byte sequences with AVX512F instructions.
- * sysdeps/x86_64/fpu/svml_d_wrapper_impl.h: Likewise.
- * sysdeps/x86_64/fpu/svml_s_sincosf16_core.S: Likewise.
- * sysdeps/x86_64/fpu/svml_s_wrapper_impl.h: Likewise.
- * sysdeps/x86_64/fpu/multiarch/svml_d_sincos8_core_avx512.S:
- Likewise.
- * sysdeps/x86_64/fpu/multiarch/svml_s_sincosf16_core_avx512.S:
- Likewise.
-
-2017-08-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
- Steve Ellcey <sellcey@cavium.com>
-
- * sysdeps/aarch64/dl-tlsdesc.S (_dl_tlsdesc_dynamic):
- Use PTR_REG macro in cmp instruction.
-
-2017-08-22 Gabriel F. T. Gomes <gftg@linux.vnet.ibm.com>
-
- * include/libc-symbols.h: [!defined HAVE_GCC_IFUNC] (__ifunc):
- Change the return type of the ifunc resolver to match the return
- type of the target function.
-
-2017-08-22 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * sysdeps/unix/sysv/linux/x86_64/syscalls.list (pread64): Remove.
- (preadv64): Likewise.
- (pwrite64(: Likewise.
- (pwritev64): Likewise.
-
- * sysdeps/unix/sysv/linux/x86_64/sysdep.h
- (INTERNAL_SYSCALL_NCS_TYPES): Remove define.
- (LOAD_ARGS_0): Likewise.
- (LOAD_ARGS_1): Likewise.
- (LOAD_ARGS_2): Likewise.
- (LOAD_ARGS_3): Likewise.
- (LOAD_ARGS_4): Likewise.
- (LOAD_ARGS_5): Likewise.
- (LOAD_ARGS_6): Likewise.
- (LOAD_REGS_0): Likewise.
- (LOAD_REGS_1): Likewise.
- (LOAD_REGS_2): Likewise.
- (LOAD_REGS_3): Likewise.
- (LOAD_REGS_4): Likewise.
- (LOAD_REGS_5): Likewise.
- (LOAD_REGS_6): Likewise.
- (ASM_ARGS_0): Likewise.
- (ASM_ARGS_1): Likewise.
- (ASM_ARGS_2): Likewise.
- (ASM_ARGS_3): Likewise.
- (ASM_ARGS_4): Likewise.
- (ASM_ARGS_5): Likewise.
- (ASM_ARGS_6): Likewise.
- (LOAD_ARGS_TYPES_1): Likewise.
- (LOAD_ARGS_TYPES_2): Likewise.
- (LOAD_ARGS_TYPES_3): Likewise.
- (LOAD_ARGS_TYPES_4): Likewise.
- (LOAD_ARGS_TYPES_5): Likewise.
- (LOAD_ARGS_TYPES_6): Likewise.
- (LOAD_REGS_TYPES_1): Likewise.
- (LOAD_REGS_TYPES_2): Likewise.
- (LOAD_REGS_TYPES_3): Likewise.
- (LOAD_REGS_TYPES_4): Likewise.
- (LOAD_REGS_TYPES_5): Likewise.
- (LOAD_REGS_TYPES_6): Likewise.
- (TYPEFY): New define.
- (ARGIFY): Likewise.
- (internal_syscall0): Likewise.
- (internal_syscall1): Likewise.
- (internal_syscall2): Likewise.
- (internal_syscall3): Likewise.
- (internal_syscall4): Likewise.
- (internal_syscall5): Likewise.
- (internal_syscall6): Likewise.
- * sysdeps/unix/sysv/linux/x86_64/x32/times.c
- (INTERNAL_SYSCALL_NCS): Remove define.
- (internal_syscall1): Add define.
-
-2017-08-22 Gabriel F. T. Gomes <gftg@linux.vnet.ibm.com>
-
- * math/w_remainder_compat.c: Remove duplicate inclusion of
- math-svid-compat.h.
- * math/w_remainderf_compat.c: Likewise.
- * math/w_remainderl_compat.c: Likewise.
-
-2017-08-22 Gabriel F. T. Gomes <gftg@linux.vnet.ibm.com>
-
- * sysdeps/powerpc/fpu/libm-test-ulps: Update.
-
-2017-08-22 Joseph Myers <joseph@codesourcery.com>
-
- [BZ #21684]
- * math/tgmath.h (__floating_type): Simplify definitions.
- (__real_integer_type): New macro.
- (__complex_integer_type): Likewise.
- (__expr_is_real): Likewise.
- (__tgmath_real_type_sub): Update comment to describe handling of
- complex types.
- (__tgmath_complex_type_sub): New macro.
- (__tgmath_complex_type): Likewise.
- [__HAVE_FLOAT128 && __GLIBC_USE (IEC_60559_TYPES_EXT)]
- (__TGMATH_CF128): Use __expr_is_real.
- (__TGMATH_UNARY_REAL_IMAG): Use __tgmath_complex_type and
- __expr_is_real.
- (__TGMATH_BINARY_REAL_IMAG): Likewise.
- (__TGMATH_UNARY_REAL_IMAG_RET_REAL): Use __expr_is_real.
- * math/gen-tgmath-tests.py (Type.create_type): Create complex
- integer types.
-
-2017-08-22 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * sysdeps/generic/not-cancel.h (sigsuspend_not_cancel): Remove
- macro.
- * sysdeps/mach/hurd/sigsuspend.c (sigsuspend_not_cancel): Remove
- alias.
- * sysdeps/unix/sysv/linux/not-cancel.h (sigsuspend_not_cancel):
- Likewise.
-
- * nptl/pthread_mutex_timedlock.c (__pthread_mutex_timedlock): Replace
- nanosleep_not_cancel with __nanosleep_nocancel.
- * sysdeps/generic/not-cancel.h (nanosleep_not_cancel): Remove macro.
- (__nanosleep_nocancel): New macro.
- * sysdeps/unix/sysv/linux/nanosleep.c (__nanosleep_nocancel): New
- function.
- * sysdeps/unix/sysv/linux/not-cancel.h (nanosleep_not_cancel): Remove
- macro.
- (__nanosleep_nocancel): New prototype.
-
- * nptl/pthread_mutex_lock.c (__pthread_mutex_lock_full): Replace
- pause_not_cancel with __pause_nocancel.
- * sysdeps/generic/not-cancel.h (pause_not_cancel): Remove macro.
- (__pause_nocancel): New macro.
- * sysdeps/unix/sysv/linux/not-cancel.h (pause_not_cancel): Remove
- macro.
- (__pause_nocancel): New prototype.
- * sysdeps/unix/sysv/linux/pause.c (__pause_nocancel): New function.
-
-2017-08-22 Martin Sebor <msebor@redhat.com>
-
- * include/libc-symbols.h (__ifunc_resolver): Declare resolver
- to return a pointer to the same type as the target function.
-
-2017-08-22 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- [BZ #21986]
- * include/printf.h (__printf_fphex): Add attribute_hidden.
- (__guess_grouping): New prototype.
- * stdio-common/printf_fp.c (__guess_grouping): Removed.
- * stdio-common/reg-printf.c (__register_printf_specifier): Add
- libc_hidden_proto and libc_hidden_def.
- * stdlib/strfmon_l.c (__guess_grouping): Removed.
- (__vstrfmon_l): Remove the third argument passed to
- __guess_grouping.
-
-2017-08-22 Gabriel F. T. Gomes <gftg@linux.vnet.ibm.com>
-
- * math/math.h [defined __cplusplus] (issignaling): Provide a C++
- definition for issignaling that does not rely on __MATH_TG,
- since __MATH_TG uses __builtin_types_compatible_p, which is only
- available in C mode.
- (CFLAGS-test-math-issignaling.cc): New variable.
- * math/Makefile [CXX] (tests): Add test-math-issignaling.
- * math/test-math-issignaling.cc: New test for C++ implementation
- of type-generic issignaling.
- * sysdeps/powerpc/powerpc64le/Makefile [subdir == math]
- (CXXFLAGS-test-math-issignaling.cc): Add -mfloat128 to the build
- options of test-math-issignaling on powerpc64le.
-
-2017-08-22 H.J. Lu <hongjiu.lu@intel.com>
-
- * include/libc-symbols.h (__hidden_proto_hiddenattr): New for
- building libc.a.
- (hidden_proto): Likewise.
- (hidden_tls_proto): Likewise.
- (__hidden_proto): Likewise.
-
-2017-08-22 Florian Weimer <fweimer@redhat.com>
-
- math: Statically link tests of internal functionality.
- * math/Makefile (tests): Remove atest-exp, atest-sincos,
- atest-exp2.
- (tests-static): Add atest-exp, atest-sincos, atest-exp2.
- (gmp-objs): Remove assignment.
- (atest-exp, atest-sincos, atest-exp2): Remove targets.
-
-2017-08-22 Joseph Myers <joseph@codesourcery.com>
-
- [BZ #21987]
- * sysdeps/unix/sysv/linux/sparc/bits/long-double.h: Remove file
- and copy to ...
- * sysdeps/unix/sysv/linux/sparc/sparc32/bits/long-double.h:
- ... here.
- * sysdeps/unix/sysv/linux/sparc/sparc64/bits/long-double.h:
- ... and here.
-
- * assert/Makefile [$(have-cxx-thread_local)]: Move conditional
- variable definitions above inclusion of ../Rules.
-
-2017-08-21 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/ieee754/k_standard.c (__kernel_standard): Add default
- case calling __builtin_unreachable.
-
-2017-08-21 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * libio/ioopen.c (_IO_waitpid): Replace waitpid_not_cancel with
- __waitpid_nocancel.
- * sysdeps/generic/not-cancel.h (waitpid_not_cancel): Remove macro.
- (__waitpid_nocancel): New macro.
- * sysdeps/unix/sysv/linux/not-cancel.h (waitpid_not_cancel): Remove
- macro.
- (__waitpid_nocancel): Replace macro with a function.
- * sysdeps/unix/sysv/linux/waitpid.c (__waitpid_nocancel): New
- function.
-
- * login/utmp_file.c (timeout_handler): Replace fcntl_not_cancel with
- __fcntl_nocancel.
- * sysdeps/generic/not-cancel.h (fcntl_not_cancel): Remove macro.
- * sysdeps/unix/sysv/linux/not-cancel.h (fcntl_not_cancel): Likewise.
-
- * gmon/gmon.c (write_hist): Replace writev_not_cancel_no_status with
- __writev_nocancel_nostatus.
- (write_call_graph): Likewise.
- (write_bb_counts): Likewise.
- * resolv/herror.c (herror): Likewise.
- * sysdeps/generic/not-cancel.h (writev_not_cancel_no_status): Remove
- macro.
- (__writev_nocancel_nostatus): New macro.
- * sysdeps/unix/sysv/linux/not-cancel.h (writev_not_cancel_no_status):
- Remove macro.
- (__writev_nocancel_nostatus): New function.
-
-2017-08-21 Joseph Myers <joseph@codesourcery.com>
-
- Revert:
- 2017-08-21 H.J. Lu <hongjiu.lu@intel.com>
-
- * include/libc-symbols.h (__hidden_proto_hiddenattr): New for
- building libc.a.
- (hidden_proto): Likewise.
- (hidden_tls_proto): Likewise.
- (__hidden_proto): Likewise.
-
- [BZ #21973]
- * sysdeps/sparc/sparc32/fpu/w_sqrt_compat.S: Remove file.
- * sysdeps/sparc/sparc32/fpu/w_sqrtf_compat.S: Likewise.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/w_sqrt_compat-vis3.S:
- Likewise.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/w_sqrt_compat.S:
- Likewise.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/w_sqrtf_compat-vis3.S:
- Likewise.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/w_sqrtf_compat.S:
- Likewise.
- * sysdeps/sparc/sparc32/sparcv9/fpu/w_sqrt_compat.S : Likewise.
- * sysdeps/sparc/sparc32/sparcv9/fpu/w_sqrtf_compat.S: Likewise.
- * sysdeps/sparc/sparc64/fpu/w_sqrt_compat.S: Likewise.
- * sysdeps/sparc/sparc64/fpu/w_sqrtf_compat.S: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Add
- GLIBC_2.0 sqrtl symbol.
-
- * math/math.h [__USE_MISC] (_LIB_VERSION_TYPE): Remove.
- [__USE_MISC] (_LIB_VERSION): Likewise.
- [__USE_MISC] (struct exception): Likewise.
- [__USE_MISC] (matherr): Likewise.
- [__USE_MISC] (DOMAIN): Likewise.
- [__USE_MISC] (SING): Likewise.
- [__USE_MISC] (OVERFLOW): Likewise.
- [__USE_MISC] (UNDERFLOW): Likewise.
- [__USE_MISC] (TLOSS): Likewise.
- [__USE_MISC] (PLOSS): Likewise.
- [__USE_MISC] (HUGE): Likewise.
- [__USE_XOPEN] (MAXFLOAT): Define even if [__USE_MISC].
- * math/math-svid-compat.h: New file.
- * conform/linknamespace.pl (@whitelist): Remove matherr, matherrf
- and matherrl.
- * include/math.h [!_ISOMAC] (__matherr): Remove.
- * manual/arith.texi (FP Exceptions): Do not document matherr.
- * math/Makefile (tests): Change test-matherr to test-matherr-3.
- (tests-internal): New variable.
- (install-lib): Do not add libieee.a.
- (non-lib.a): Likewise.
- (extra-objs): Do not add libieee.a and ieee-math.o.
- (CPPFLAGS-s_lib_version.c): Remove variable.
- ($(objpfx)libieee.a): Remove rule.
- ($(addprefix $(objpfx), $(tests-internal)): Depend on $(libm).
- * math/ieee-math.c: Remove.
- * math/libm-test-support.c (matherr): Remove.
- * math/test-matherr.c: Use <support/test-driver.c>. Add copyright
- and license notices. Include <math-svid-compat.h> and
- <shlib-compat.h>.
- (matherr): Undefine as macro. Use compat_symbol_reference.
- (_LIB_VERSION): Likewise.
- * math/test-matherr-2.c: New file.
- * math/test-matherr-3.c: Likewise.
- * sysdeps/generic/math_private.h (__kernel_standard): Remove
- declaration.
- (__kernel_standard_f): Likewise.
- (__kernel_standard_l): Likewise.
- * sysdeps/ieee754/s_lib_version.c: Do not include <math.h> or
- <math_private.h>. Include <math-svid-compat.h>.
- (_LIB_VERSION): Undefine as macro.
- (_LIB_VERSION_INTERNAL): Always initialize to _POSIX_. Define
- only if [LIBM_SVID_COMPAT || !defined SHARED]. If
- [LIBM_SVID_COMPAT], use compat_symbol.
- * sysdeps/ieee754/s_matherr.c: Do not include <math.h> or
- <math_private.h>. Include <math-svid-compat.h>.
- (matherr): Undefine as macro.
- (__matherr): Define only if [LIBM_SVID_COMPAT]. Use
- compat_symbol.
- * sysdeps/ia64/fpu/libm_error.c: Include <math-svid-compat.h>.
- [_LIBC && LIBM_SVID_COMPAT] (matherrf): Use
- compat_symbol_reference.
- [_LIBC && LIBM_SVID_COMPAT] (matherrl): Likewise.
- [_LIBC && !LIBM_SVID_COMPAT] (matherrf): Define as macro.
- [_LIBC && !LIBM_SVID_COMPAT] (matherrl): Likewise.
- * sysdeps/ia64/fpu/libm_support.h: Include <math-svid-compat.h>.
- (MATHERR_D): Remove declaration.
- [!_LIBC] (_LIB_VERSION_TYPE): Likewise
- [!LIBM_BUILD] (_LIB_VERSIONIMF): Likewise.
- [LIBM_BUILD] (pmatherrf): Likewise.
- [LIBM_BUILD] (pmatherr): Likewise.
- [LIBM_BUILD] (pmatherrl): Likewise.
- (DOMAIN): Likewise.
- (SING): Likewise.
- (OVERFLOW): Likewise.
- (UNDERFLOW): Likewise.
- (TLOSS): Likewise.
- (PLOSS): Likewise.
- * sysdeps/ia64/fpu/s_matherrf.c: Include <math-svid-compat.h>.
- (__matherrf): Define only if [LIBM_SVID_COMPAT]. Use
- compat_symbol.
- * sysdeps/ia64/fpu/s_matherrl.c: Include <math-svid-compat.h>.
- (__matherrl): Define only if [LIBM_SVID_COMPAT]. Use
- compat_symbol.
- * math/lgamma-compat.h: Include <math-svid-compat.h>.
- * math/w_acos_compat.c: Likewise.
- * math/w_acosf_compat.c: Likewise.
- * math/w_acosh_compat.c: Likewise.
- * math/w_acoshf_compat.c: Likewise.
- * math/w_acoshl_compat.c: Likewise.
- * math/w_acosl_compat.c: Likewise.
- * math/w_asin_compat.c: Likewise.
- * math/w_asinf_compat.c: Likewise.
- * math/w_asinl_compat.c: Likewise.
- * math/w_atan2_compat.c: Likewise.
- * math/w_atan2f_compat.c: Likewise.
- * math/w_atan2l_compat.c: Likewise.
- * math/w_atanh_compat.c: Likewise.
- * math/w_atanhf_compat.c: Likewise.
- * math/w_atanhl_compat.c: Likewise.
- * math/w_cosh_compat.c: Likewise.
- * math/w_coshf_compat.c: Likewise.
- * math/w_coshl_compat.c: Likewise.
- * math/w_exp10_compat.c: Likewise.
- * math/w_exp10f_compat.c: Likewise.
- * math/w_exp10l_compat.c: Likewise.
- * math/w_exp2_compat.c: Likewise.
- * math/w_exp2f_compat.c: Likewise.
- * math/w_exp2l_compat.c: Likewise.
- * math/w_fmod_compat.c: Likewise.
- * math/w_fmodf_compat.c: Likewise.
- * math/w_fmodl_compat.c: Likewise.
- * math/w_hypot_compat.c: Likewise.
- * math/w_hypotf_compat.c: Likewise.
- * math/w_hypotl_compat.c: Likewise.
- * math/w_j0_compat.c: Likewise.
- * math/w_j0f_compat.c: Likewise.
- * math/w_j0l_compat.c: Likewise.
- * math/w_j1_compat.c: Likewise.
- * math/w_j1f_compat.c: Likewise.
- * math/w_j1l_compat.c: Likewise.
- * math/w_jn_compat.c: Likewise.
- * math/w_jnf_compat.c: Likewise.
- * math/w_jnl_compat.c: Likewise.
- * math/w_lgamma_main.c: Likewise.
- * math/w_lgamma_r_compat.c: Likewise.
- * math/w_lgammaf_main.c: Likewise.
- * math/w_lgammaf_r_compat.c: Likewise.
- * math/w_lgammal_main.c: Likewise.
- * math/w_lgammal_r_compat.c: Likewise.
- * math/w_log10_compat.c: Likewise.
- * math/w_log10f_compat.c: Likewise.
- * math/w_log10l_compat.c: Likewise.
- * math/w_log2_compat.c: Likewise.
- * math/w_log2f_compat.c: Likewise.
- * math/w_log2l_compat.c: Likewise.
- * math/w_log_compat.c: Likewise.
- * math/w_logf_compat.c: Likewise.
- * math/w_logl_compat.c: Likewise.
- * math/w_pow_compat.c: Likewise.
- * math/w_powf_compat.c: Likewise.
- * math/w_powl_compat.c: Likewise.
- * math/w_remainder_compat.c: Likewise.
- * math/w_remainderf_compat.c: Likewise.
- * math/w_remainderl_compat.c: Likewise.
- * math/w_scalb_compat.c: Likewise.
- * math/w_scalbf_compat.c: Likewise.
- * math/w_scalbl_compat.c: Likewise.
- * math/w_sinh_compat.c: Likewise.
- * math/w_sinhf_compat.c: Likewise.
- * math/w_sinhl_compat.c: Likewise.
- * math/w_sqrt_compat.c: Likewise.
- * math/w_sqrtf_compat.c: Likewise.
- * math/w_sqrtl_compat.c: Likewise.
- * math/w_tgamma_compat.c: Likewise.
- * math/w_tgammaf_compat.c: Likewise.
- * math/w_tgammal_compat.c: Likewise.
- * sysdeps/ieee754/dbl-64/w_exp_compat.c: Likewise.
- * sysdeps/ieee754/flt-32/w_expf_compat.c: Likewise.
- * sysdeps/ieee754/k_standard.c: Likewise.
- * sysdeps/ieee754/k_standardf.c: Likewise.
- * sysdeps/ieee754/k_standardl.c: Likewise.
- * sysdeps/ieee754/ldbl-128/w_expl_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-128ibm/w_expl_compat.c: Likewise.
- * sysdeps/ieee754/ldbl-96/w_expl_compat.c: Likewise.
- * sysdeps/powerpc/powerpc32/power4/fpu/w_sqrt_compat.S: Likewise.
- * sysdeps/powerpc/powerpc32/power4/fpu/w_sqrtf_compat.S: Likewise.
- * sysdeps/powerpc/powerpc32/power5/fpu/w_sqrt_compat.S: Likewise.
- * sysdeps/powerpc/powerpc32/power5/fpu/w_sqrtf_compat.S: Likewise.
- * sysdeps/sparc/sparc32/fpu/w_sqrt_compat.S: Likewise.
- * sysdeps/sparc/sparc32/fpu/w_sqrtf_compat.S: Likewise.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/w_sqrt_compat-vis3.S:
- Likewise.
- * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/w_sqrtf_compat-vis3.S:
- Likewise.
- * sysdeps/sparc/sparc32/sparcv9/fpu/w_sqrt_compat.S: Likewise.
- * sysdeps/sparc/sparc32/sparcv9/fpu/w_sqrtf_compat.S: Likewise.
- * sysdeps/sparc/sparc64/fpu/w_sqrt_compat.S: Likewise.
- * sysdeps/sparc/sparc64/fpu/w_sqrtf_compat.S: Likewise.
-
-2017-08-21 Florian Weimer <fweimer@redhat.com>
-
- [BZ #21864]
- Do not compile benchmark helper objects with -DMODULE_NAME=libc.
- * benchtests/Makefile (others-extras): Set to $(bench-extra-objs).
- Move before inclusion of ../Rules.
-
-2017-08-21 Florian Weimer <fweimer@redhat.com>
-
- [BZ #21972]
- * assert/assert.h (assert): Use static_cast (bool) for C++.
- Use the ternary operator in the warning branch for GNU C.
- * assert/Makefile (tests): Add tst-assert-c++, tst-assert-g++.
- (CFLAGS-tst-assert-c++.o): Compile in C++11 mode.
- (CFLAGS-tst-assert-g++.o): Compile in GnU C++11 mode.
- (LDLIBS-tst-assert-c++, LDLIBS-tst-assert-g++): Link with libstdc++.
- * assert/tst-assert-c++.cc, assert/tst-assert-g++.cc: New files.
-
-2017-08-21 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * sysdeps/unix/sysv/linux/x86_64/init-first.c
- (__syscall_clock_gettime): Add attribute_hidden.
- * sysdeps/unix/sysv/linux/x86_64/makecontext.c
- (__start_context): Likewise.
-
-2017-08-21 H.J. Lu <hongjiu.lu@intel.com>
-
- * include/libc-symbols.h (__hidden_proto_hiddenattr): New for
- building libc.a.
- (hidden_proto): Likewise.
- (hidden_tls_proto): Likewise.
- (__hidden_proto): Likewise.
-
-2017-08-21 H.J. Lu <hongjiu.lu@intel.com>
-
- * include/libc-symbols.h (attribute_hidden): Enable hidden
- visibility in libc.a compiled with PIE.
-
-2017-08-21 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * sysdeps/unix/sysv/linux/x86/libc-vdso.h (VDSO_SYMBOL(getcpu)):
- Add attribute_hidden.
-
-2017-08-21 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #21864]
- * Makerules (all-nonlib): Add $(others-extras).
- * catgets/Makefile (others-extras): New.
- * elf/Makefile (others-extras): Likewise.
- * nss/Makefile (others-extras): Likewise.
-
-2017-08-21 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * csu/libc-start.c (__libc_multiple_libcs): Removed.
- * elf/dl-open.c: Include <libc-internal.h>.
- (__libc_multiple_libcs): Removed.
- * elf/dl-sysdep.c: Include <libc-internal.h> instead of
- <hp-timing.h>.
- * include/libc-internal.h (__libc_multiple_libcs): New.
- * misc/sbrk.c: Include <libc-internal.h>.
- (__libc_multiple_libcs): Removed.
-
-2017-08-21 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * grp/initgroups.c (__nss_group_database): Removed.
- (__nss_initgroups_database): Likewise.
- * nscd/gai.c (__nss_hosts_database): Likewise.
- * nss/XXX-lookup.c (DATABASE_NAME_SYMBOL): Likewise.
- * posix/tst-rfc3484-2.c (__nss_hosts_database): Likewise.
- * posix/tst-rfc3484-3.c (__nss_hosts_database): Likewise.
- * posix/tst-rfc3484.c (__nss_hosts_database): Likewise.
- * sysdeps/posix/getaddrinfo.c (__nss_hosts_database): Likewise.
- * nss/getXXent.c (INTERNAL (REENTRANT_GETNAME)): Add
- attribute_hidden.
- * nss/nsswitch.c (__nss_database_custom): Define only if
- USE_NSCD is defined.
- (__nss_configure_lookup): Use __nss_database_custom only if
- USE_NSCD is defined.
- * nss/nsswitch.h (__nss_database_custom): Declare only if
- USE_NSCD is defined. Add attribute_hidden.
- (__nss_setent): Add attribute_hidden.
- (__nss_endent): Likewise.
- (__nss_getent_r): Likewise.
- (__nss_getent): Likewise.
- (DEFINE_DATABASE): Declare __nss_##arg##_database.
-
-2017-08-20 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * sysdeps/unix/sysv/linux/i386/glob64.c (__old_glob64): Add
- libc_hidden_proto and libc_hidden_def.
-
-2017-08-20 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * sysdeps/unix/sysv/linux/i386/olddirent.h (__old_readdir64):
- Add libc_hidden_proto.
- * sysdeps/unix/sysv/linux/i386/readdir64.c (__old_readdir64):
- Add libc_hidden_def.
-
-2017-08-20 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #21974]
- * gmon/Makefile (routines): Remove bb_init_func and
- bb_exit_func.
- (elide-routines.os): Removed.
- * gmon/bb_exit_func.c: Likewise.
- * gmon/bb_init_func.c: Likewise.
- * include/sys/gmon.h (__bb): Likewise.
- (__bb_init_func): Likewise.
- (__bb_exit_func): Likewise.
- * sysdeps/alpha/bb_init_func.S: Likewise.
-
-2017-08-20 H.J. Lu <hongjiu.lu@intel.com>
-
- * debug/longjmp_chk.c (____longjmp_chk): Moved to ...
- * include/setjmp.h (____longjmp_chk): Here. Add
- attribute_hidden.
-
-2017-08-19 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * sysdeps/x86_64/multiarch/strcspn-c.c (STRCSPN_SSE2): Add
- attribute_hidden.
- (__strspn_sse2): Likewise.
-
-2017-08-18 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * sysdeps/generic/not-cancel.h (close_not_cancel): Remove macro.
- (close_not_cancel_no_status): Likewise.
- (__close_nocancel): New macro.
- (__close_nocancel_nostatus): Likewise.
- * sysdeps/unix/sysv/linux/not-cancel.h (__close_nocancel): Remove
- macro.
- (close_not_cancel): Likewise.
- (close_not_cancel_no_status): Likewise.
- (__close_nocancel): New prototype.
- (__close_nocancel_nostatus): New function.
- * sysdeps/unix/sysv/linux/close.c (__close_nocancel): New function.
- * catgets/open_catalog.c (__open_catalog): Replace
- close_not_cancel{_no_status) with __close_nocancel{_nostatus}.
- * gmon/gmon.c (write_gmon): Likewise.
- * iconv/gconv_cache.c (__gconv_load_cache): Likewise.
- * intl/loadmsgcat.c (close): Likewise.
- * io/ftw.c (open_dir_stream): Likewise.
- (ftw_startup): Likewise.
- * libio/fileops.c (_IO_file_open): Likewise.
- (_IO_file_close_mmap): Likewise.
- (_IO_file_close): Likewise.
- * libio/iopopen.c (_IO_dup2): Likewise.
- * locale/loadarchive.c (_nl_load_locale_from_archive): Likewise.
- * locale/loadlocale.c (_nl_load_locale): Likewise.
- * login/utmp_file.c (pututline_file): Likewise.
- (endutent_file): Likewise.
- * misc/daemon.c (daemon): Likewise.
- * nscd/nscd_getai.c (__nscd_getai): Likewise.
- * nscd/nscd_getgr_r.c (nscd_getgr_r): Likewise.
- * nscd/nscd_gethst_r.c (nscd_gethst_r): Likewise.
- * nscd/nscd_getpw_r.c (nscd_getpw_r): Likewise.
- * nscd/nscd_getserv_r.c (nscd_getserv_r): Likewise.
- * nscd/nscd_helper.c (open_socket): Likewise.
- (__nscd_open_socket): Likewise.
- * nscd/nscd_initgroups.c (__nscd_getgrouplist): Likewise.
- * nscd/nscd_netgroup.c (__nscd_setnetgrent): Likewise.
- (__nscd_innetgr): Likewise.
- * nss/nss_db/db-open.c (internal_setent): Likewise.
- * resolv/res-close.c (__res_iclose): Likewise.
- * sunrpc/pm_getmaps.c (pmap_getmaps): Likewise.
- * sysdeps/posix/closedir.c (__closedir): Likewise.
- * sysdeps/posix/getaddrinfo.c (getaddrinfo): Likewise.
- * sysdeps/posix/getcwd.c (__getcwd): Likewise.
- * sysdeps/posix/opendir.c (tryopen_o_directory): Likewise.
- (opendir_tail): Likewise.
- * sysdeps/posix/spawni.c (__spawni_child): Likewise.
- * sysdeps/unix/sysv/linux/check_native.c (__check_native): Likewise.
- * sysdeps/unix/sysv/linux/check_pf.c (__check_pf): Likewise.
- * sysdeps/unix/sysv/linux/fips-private.h (fips_enabled_p): Likewise.
- * sysdeps/unix/sysv/linux/gethostid.c (sethostid): Likewise.
- (gethostid): Likewise.
- * sysdeps/unix/sysv/linux/getloadavg.c (getloadavg): Likewise.
- * sysdeps/unix/sysv/linux/getlogin_r.c (__getlogin_r_loginuid):
- Likewise.
- * sysdeps/unix/sysv/linux/getsysstats.c (__get_nprocs): Likewise.
- * sysdeps/unix/sysv/linux/grantpt.c (close_all_fds): Likewise.
- * sysdeps/unix/sysv/linux/i386/smp.h (is_smp_system): Likewise.
- * sysdeps/unix/sysv/linux/ia64/has_cpuclock.c (has_cpuclock):
- Likewise.
- * sysdeps/unix/sysv/linux/if_index.c (__if_nametoindex): Likewise.
- * sysdeps/unix/sysv/linux/libc_fatal.c (backtrace_and_maps): Likewise.
- * sysdeps/unix/sysv/linux/malloc-sysdep.h (check_may_shrink_heap):
- Likewise.
- * sysdeps/unix/sysv/linux/mq_notify.c (init_mq_netlink): Likewise.
- * sysdeps/unix/sysv/linux/pthread_getname.c (pthread_getname_np):
- Likewise.
- * sysdeps/unix/sysv/linux/pthread_setname.c (pthread_setname_np):
- Likewise.
- * sysdeps/unix/sysv/linux/spawni.c (__spawni_child): Likewise.
- * sysdeps/unix/sysv/linux/sysconf.c (__sysconf): Likewise.
- * sysdeps/unix/sysv/linux/Versions (libc) [GLIBC_PRIVATE]: Add
- __close_nocancel.
-
- * sysdeps/generic/not-cancel.h (openat_not_cancel): Remove macro.
- (openat_not_cancel_3): Likewise.
- (openat64_not_cancel_3): Likewise).
- (openat_not_cancel_3): Likewise).
- * sysdeps/unix/sysv/linux/not-cancel.h (openat_not_cancel): Remove
- macro.
- (openat_not_cancel_3): Likewise.
- (openat64_not_cancel): Likewise.
- (openat64_not_cancel_3): Likewise.
- * sysdeps/unix/sysv/linux/openat.c (__openat_nocancel): New function.
- * sysdeps/unix/sysv/linux/openat64.c (__openat64_nocancel): Likewise.
- * io/ftw.c (open_dir_stream): Replace openat{64}_not_cancel{_3} with
- __open{64}_nocancel.
- * sysdeps/mach/hurd/opendir.c (__opendirat): Likewise.
- * sysdeps/posix/getcwd.c (__getcwd): Likewise.
- * sysdeps/posix/opendir.c (__opendirat): Likewise.
-
-2017-08-18 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #18822]
- * include/argz.h (__argz_create_sep): New function prototype.
- (__argz_append): Likewise.
- (__argz_add): Likewise.
- (__argz_add_sep): Likewise.
- (__argz_delete): Likewise.
- (__argz_insert): Likewise.
- (__argz_replace): Likewise.
- * string/argz.h (__argz_create_sep): Removed.
- (__argz_append): Likewise.
- (__argz_add): Likewise.
- (__argz_add_sep): Likewise.
- (__argz_delete): Likewise.
- (__argz_insert): Likewise.
- (__argz_replace): Likewise.
-
-2017-08-18 H.J. Lu <hongjiu.lu@intel.com>
-
- * elf/elf.h (NT_GNU_PROPERTY_TYPE_0): New.
- (NOTE_GNU_PROPERTY_SECTION_NAME): Likewise.
- (GNU_PROPERTY_STACK_SIZE): Likewie.
- (GNU_PROPERTY_NO_COPY_ON_PROTECTED): Likewie.
- (GNU_PROPERTY_LOPROC): Likewise.
- (GNU_PROPERTY_HIPROC): Likewise.
- (GNU_PROPERTY_LOUSER): Likewise.
- (GNU_PROPERTY_HIUSER): Likewise.
- (GNU_PROPERTY_X86_ISA_1_USED): Likwise.
- (GNU_PROPERTY_X86_ISA_1_NEEDED): Likwise.
- (GNU_PROPERTY_X86_FEATURE_1_AND): Likwise.
- (GNU_PROPERTY_X86_ISA_1_486): Likwise.
- (GNU_PROPERTY_X86_ISA_1_586): Likwise.
- (GNU_PROPERTY_X86_ISA_1_686): Likwise.
- (GNU_PROPERTY_X86_ISA_1_SSE): Likwise.
- (GNU_PROPERTY_X86_ISA_1_SSE2): Likwise.
- (GNU_PROPERTY_X86_ISA_1_SSE3): Likwise.
- (GNU_PROPERTY_X86_ISA_1_SSSE3): Likwise.
- (GNU_PROPERTY_X86_ISA_1_SSE4_1): Likwise.
- (GNU_PROPERTY_X86_ISA_1_SSE4_2): Likwise.
- (GNU_PROPERTY_X86_ISA_1_AVX): Likwise.
- (GNU_PROPERTY_X86_ISA_1_AVX2): Likwise.
- (GNU_PROPERTY_X86_ISA_1_AVX512F): Likwise.
- (GNU_PROPERTY_X86_ISA_1_AVX512CD): Likwise.
- (GNU_PROPERTY_X86_ISA_1_AVX512ER): Likwise.
- (GNU_PROPERTY_X86_ISA_1_AVX512PF): Likwise.
- (GNU_PROPERTY_X86_ISA_1_AVX512VL): Likwise.
- (GNU_PROPERTY_X86_ISA_1_AVX512DQ): Likwise.
- (GNU_PROPERTY_X86_ISA_1_AVX512BW): Likwise.
- (GNU_PROPERTY_X86_FEATURE_1_IBT): Likwise.
- (GNU_PROPERTY_X86_FEATURE_1_SHSTK): Likwise.
-
-2017-08-18 Gabriel F. T. Gomes <gftg@linux.vnet.ibm.com>
-
- * misc/sys/cdefs.h (__HAVE_GENERIC_SELECTION): Define to 0, if
- in C++ mode.
-
-2017-08-18 Gabriel F. T. Gomes <gftg@linux.vnet.ibm.com>
-
- [BZ #21930]
- * math/math.h (isinf): Check if in C or C++ mode before using
- __builtin_types_compatible_p, since this is a C mode feature.
-
-2017-08-18 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * sysdeps/generic/not-cancel.h (write_not_cancel): Remove macro.
- (__write_nocancel): New macro.
- * sysdeps/unix/sysv/linux/not-cancel.h (__write_nocancel):
- Rewrite as a function prototype.
- (write_not_cancel): Remove macro.
- * sysdeps/unix/sysv/linux/write.c (__write_nocancel): New function.
- * gmon/gmon.c (ERR): Replace write_not_cancel with __write_nocancel.
- (write_gmon): Likewise.
- * libio/fileops.c (_IO_new_file_write): Likewise.
- * login/utmp_file.c (pututline_file): Likewise.
- (updwtmp_file): Likewise.
- * stdio-common/psiginfo.c (psiginfo): Likewise.
- * sysdeps/posix/spawni.c (__spawni_child): Likewise.
- * sysdeps/unix/sysv/linux/gethostid.c (sethostid): Likewise.
- * sysdeps/unix/sysv/linux/libc_fatal.c (backtrace_and_maps):
- Likewise.
- * sysdeps/unix/sysv/linux/pthread_setname.c (pthread_setname_np):
- Likewise.
-
- * sysdeps/generic/not-cancel.h (read_not_cancel): Remove macro.
- (__read_nocancel): New macro.
- * sysdeps/unix/sysv/linux/Versions (libc) [GLIBC_PRIVATE]: Add
- __read_nocancel.
- * sysdeps/unix/sysv/linux/not-cancel.h (__read_nocancel): Remove
- macro.
- (__read_nocancel): New prototype.
- * sysdeps/unix/sysv/linux/read.c (__read_nocancel): New function.
- * catgets/open_catalog.c (__open_catalog): Replace read_not_cancel
- with __read_nocancel.
- * intl/loadmsgcat.c (read): Likewise.
- * libio/fileops.c (_IO_file_read): Likewise.
- * locale/loadlocale.c (_nl_load_locale): Likewise.
- * login/utmp_file.c (getutent_r_file): Likewise.
- (internal_getut_r): Likewise.
- (getutline_r_file): Likewise.
- * sysdeps/unix/sysv/linux/fips-private.h (fips_enable_p): Likewise.
- * sysdeps/unix/sysv/linux/gethostid.c (gethostid): Likewise.
- * sysdeps/unix/sysv/linux/getloadavg.c (getloadavg): Likewise.
- * sysdeps/unix/sysv/linux/getlogin_r.c (__getlogin_r_loginuid):
- Likewise.
- * sysdeps/unix/sysv/linux/getsysstats.c (next_line): Likewise.
- * sysdeps/unix/sysv/linux/i386/smp.h (is_smp_system): Likewise.
- * sysdeps/unix/sysv/linux/ia64/has_cpuclock.c (has_cpuclock):
- Likewise.
- * sysdeps/unix/sysv/linux/libc_fatal.c (backtrace_and_maps):
- Likewise.
- * sysdeps/unix/sysv/linux/malloc-sysdep.h (check_may_shrink_heap):
- Likewise.
- * sysdeps/unix/sysv/linux/pthread_getname.c (pthread_getname_np):
- Likewise.
- * sysdeps/unix/sysv/linux/sysconf.c (__sysconf): Likewise.
-
-2017-08-18 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #21966]
- * sysdeps/x86_64/fpu/multiarch/ifunc-mathvec-avx2.h
- (IFUNC_SELECTOR): Don't use the AVX2 version if FMA isn't
- usable.
-
-2017-08-17 DJ Delorie <dj@redhat.com>
-
- * bug17079.c: Update to new test harness.
- * test-digits-dots.c: Likewise.
- * test-netdb.c: Likewise.
- * tst-field.c: Likewise.
- * tst-nss-getpwent.c: Likewise.
- * tst-nss-static.c: Likewise.
- * tst-nss-test1.c: Likewise.
- * tst-nss-test2.c: Likewise.
- * tst-nss-test3.c: Likewise.
- * tst-nss-test4.c: Likewise.
- * tst-nss-test5.c: Likewise.
-
-2017-08-17 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- * sysdeps/generic/not-cancel.h (open_not_cancel): Remove macro.
- (open_not_cancel_2): Likewise.
- (open_nocancel): New macro.
- (open64_nocancel): Likewise.
- * sysdeps/unix/sysv/linux/not-cancel.h (open_not_cancel): Remove macro.
- (open_not_cancel_2): Likewise.
- (__open_nocancel): New prototype.
- (__open64_nocancel): Likewise.
- * sysdeps/unix/sysv/linux/Versions (libc) [GLIBC_PRIVATE]: Add
- __open_nocancel.
- * sysdeps/unix/sysv/linux/open.c (__open_nocancel): New function.
- * sysdeps/unix/sysv/linux/open64.c (__open64_nocancel): Likewise.
- * catgets/open_catalog.c (__open_catalog): Replace open_not_cancel{_2}
- with __open_nocancel.
- * csu/check_fds.c (check_one_fd): Likewise.
- * gmon/gmon.c (write_gmon): Likewise.
- * iconv/gconv_cache.c (__gconv_load_cached): Likewise.
- * intl/loadmsgcat.c (open): Likewise.
- * libio/fileops.c (_IO_file_open): Likewise.
- * locale/loadarchive.c (_nl_load_locale_from_archive): Likewise.
- * locale/loadlocale.c (_nl_load_locale): Likewise.
- * login/utmp_file.c (setutent_file): Likewise.
- * misc/daemon.c (daemon): Likewise.
- * nss/nss_db/db-open.c (internal_setent): Likewise.
- * sysdeps/mach/hurd/opendir.c (__opendirat): Likewise.
- * sysdeps/posix/libc_fatal.c (__libc_message): Likewise.
- * sysdeps/posix/opendir.c (tryopen_o_directory): Likewise.
- (__opendir): Likewise.
- * sysdeps/posix/spawni.c (__spawni_child): Likewise.
- * sysdeps/unix/sysv/linux/fips-private.h (fips_enable_p): Likewise.
- * sysdeps/unix/sysv/linux/gethostid.c (sethostid): Likewise.
- (gethostid): Likewise.
- * sysdeps/unix/sysv/linux/getloadavg.c (getloadavg): Likewise.
- * sysdeps/unix/sysv/linux/getlogin_r.c (__getlogin_r_loginuid):
- Likewise.
- * sysdeps/unix/sysv/linux/getsysstats.c (__get_nprocs): Likewise.
- * sysdeps/unix/sysv/linux/grantpt.c (__close_all_fds): Likewise.
- * sysdeps/unix/sysv/linux/i386/smp.h (is_smp_system): Likewise.
- * sysdeps/unix/sysv/linux/ia64/has_cpuclock.c (has_cpuclock):
- Likewise.
- * sysdeps/unix/sysv/linux/libc_fatal.c (backtrace_and_maps):
- Likewise.
- * sysdeps/unix/sysv/linux/malloc-sysdep.h (check_may_shrink_heap):
- Likewise.
- * sysdeps/unix/sysv/linux/powerpc/get_clockfreq.c (__get_clockfreq):
- Likewise.
- * sysdeps/unix/sysv/linux/pthread_getname.c (pthread_getname_np):
- Likewise.
- * sysdeps/unix/sysv/linux/pthread_setname.c (pthread_setname_np):
- Likewise.
- * sysdeps/unix/sysv/linux/spawni.c (__spawni_child): Likewise.
- * sysdeps/unix/sysv/linux/sysconf.c (__sysconf): Likewise.
-
-2017-08-17 Wilco Dijkstra <wdijkstr@arm.com>
-
- * benchtests/bench-skeleton.c (main): Add support for
- latency benchmarking.
- * benchtests/scripts/bench.py: Add support for latency benchmarking.
-
-2017-08-17 H.J. Lu <hongjiu.lu@intel.com>
-
- * Makeconfig (+link-pie-before-libc): Add CRT-* hook to override
- the startup object.
-
-2017-08-17 Florian Weimer <fweimer@redhat.com>
-
- * include/sys/socket.h (__opensock): Remove internal_function.
- * socket/opensock.c (__opensock): Likewise.
- * sysdeps/unix/sysv/linux/opensock.c (__opensock): Likewise.
-
-2017-08-16 Joseph Myers <joseph@codesourcery.com>
-
- [BZ #21944]
- * signal/bits/types/__sigval_t.h: New file.
- * signal/Makefile (headers): Add bits/types/__sigval_t.h.
- * signal/bits/types/sigval_t.h: Include <bits/types/__sigval_t.h>
- and define sigval_t using __sigval_t.
- * include/bits/types/__sigval_t.h: New file.
- * bits/types/sigevent_t.h: Include <bits/types/__sigval_t.h>
- instead of <bits/types/__sigval_t.h>.
- (struct sigevent): Use __sigval_t instead of sigval_t.
- * bits/types/siginfo_t.h: Include <bits/types/__sigval_t.h>
- instead of <bits/types/__sigval_t.h>.
- (siginfo_t): Use __sigval_t instead of sigval_t.
- * sysdeps/unix/sysv/linux/bits/types/sigevent_t.h: Include
- <bits/types/__sigval_t.h> instead of <bits/types/__sigval_t.h>.
- (struct sigevent): Use __sigval_t instead of sigval_t.
- * sysdeps/unix/sysv/linux/bits/types/siginfo_t.h: Include
- <bits/types/__sigval_t.h> instead of <bits/types/__sigval_t.h>.
- (siginfo_t): Use __sigval_t instead of sigval_t.
- * signal/signal.h [__USE_MISC]: Include <bits/types/sigval_t.h>.
-
-2017-08-16 H.J. Lu <hongjiu.lu@intel.com>
-
- * NEWS: Remove "[Add new features here]" for 2.27.
-
-2017-08-16 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/unix/sysv/linux/sh/localplt.data: Allow abort in
- libc.so.
-
-2017-08-16 H.J. Lu <hongjiu.lu@intel.com>
-
- * NEWS: Mention x86-64 FMA optimization.
-
-2017-08-16 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #21912]
- * sysdeps/x86_64/fpu/multiarch/Makefile (libm-sysdep_routines):
- Add e_expf-fma.
- * sysdeps/x86_64/fpu/multiarch/e_expf-fma.S: New file.
- * sysdeps/x86_64/fpu/multiarch/e_expf.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/ifunc-fma.h: Likewise.
-
-2017-08-16 Andreas Schwab <schwab@suse.de>
-
- [BZ #16750]
- CVE-2009-5064
- * elf/ldd.bash.in: Never run file directly.
-
-2017-08-15 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #21955]
- * sysdeps/x86_64/fpu/e_expf.S (L(SP_RANGE)): Aligned to 8 bytes.
- (L(SP_INF_0)): Likewise.
-
-2017-08-15 Florian Weimer <fweimer@redhat.com>
-
- * gmon/Makefile (tests-special): Add tst-gmon-prof only if
- run-built-tests.
-
-2017-08-15 Florian Weimer <fweimer@redhat.com>
-
- Remove BROKEN_THREAD_SIGNALS support for LinuxThreads.
- * sysdeps/pthread/aio_misc.c (__aio_enqueue_request): Remove
- BROKEN_THREAD_SIGNALS code.
- * sysdeps/ppthread/aio_misc.h (struct waitlist, struct
- request_list): Remove caller_pid member used for
- BROKEN_THREAD_SIGNALS.
- [BROKEN_THREAD_SIGNALS] (__aio_notify_only): Remove declaration.
- * sysdeps/pthread/aio_notify.c (__aio_notify_only, __aio_notify):
- Remove BROKEN_THREAD_SIGNALS support.
- * sysdeps/pthread/aio_suspend.c (aio_suspend): Likewise.
- * sysdeps/pthread/lio_listio.c (lio_listio_internal): Likewise.
-
-2017-08-15 Florian Weimer <fweimer@redhat.com>
-
- * gmon/Makefile (tests): Add tst-gmon.
- (CFLAGS-tst-gmon.c, LDFLAGS-tst-gmon, CRT-tst-gmon, tst-gmon-ENV):
- Set.
- (tests-special): Add tst-gmon-prof.out.
- (tst-gmon.out): Depend on clean-tst-gmon-data.
- (clean-tst-gmon-data, tst-gmon-gprof.out): New targets.
- * gmon/tst-gmon.c, gmon/tst-gmon-gprof.sh: New files.
- * Makeconfig (+link-before-libc): Add CRT-* hook to override the
- startup object.
- * aclocal.m4 (GPROF): Set and substitute.
- * config.amke.in (GPROF): Set.
- * configure: Regenerate.
-
-2017-08-15 Gustavo Romero <gromero@linux.vnet.ibm.com>
-
- * elf/elf.h A (NT_PPC_TAR): New macro.
- (NT_PPC_PPR): Likewise.
- (NT_PPC_DSCR): Likewise.
- (NT_PPC_EBB): Likewise.
- (NT_PPC_PMU): Likewise.
- (NT_PPC_TM_CGPR): Likewise.
- (NT_PPC_TM_CFPR): Likewise.
- (NT_PPC_TM_CVMX): Likewise.
- (NT_PPC_TM_CVSX): Likewise.
- (NT_PPC_TM_SPR): Likewise.
- (NT_PPC_TM_CTAR): Likewise.
- (NT_PPC_TM_CPPR): Likewise.
- (NT_PPC_TM_CDSCR): Likewise.
-
-2017-08-15 Florian Weimer <fweimer@redhat.com>
-
- * sysdeps/i386/machine-gmon.h (mcount_internal): Declare with
- regparm (2) instead of internal_function.
- (_MCOUNT_DECL): Adjust.
-
-2017-08-15 Stefan Liebler <stli@linux.vnet.ibm.com>
-
- * sysdeps/s390/dl-procinfo.c (_dl_s390_cap_flags): Add z14.
- * sysdeps/s390/dl-procinfo.h (_DL_PLATFORMS_COUNT): Increased.
-
-2017-08-14 Joseph Myers <joseph@codesourcery.com>
-
- * conform/data/sys/wait.h-data (si_value): Do not expect for
- XPG42.
-
-2017-08-14 Florian Weimer <fweimer@redhat.com>
-
- [BZ #21962]
- NSS: Create stubs for accidentally exported lookup functions.
- * grp/initgroups.c (__nss_group_lookup, __nss_lookup_function):
- Remove declaration.
- * inet/ether_hton.c (__nss_ethers_lookup): Likewise.
- (ether_hostton): Call __nss_ethers_lookup2 instead.
- * inet/ether_ntoh.c (__nss_ethers_lookup): Remove declaration.
- (ether_ntohost): Call __nss_ethers_lookup2 instead.
- * inet/getnetgrent_r.c (__nss_netgroup_lookup): Remove declaration.
- (setup): Call __nss_netgroup_lookup2 instead.
- * nss/Makefile (routines): Add compat-lookup.
- * nss/Versions (GLIBC_2.27): Add symbol version.
- * nss/XXX-lookup (DB_LOOKUP_FCT): Remove declaration. Now provided by <nsswitch.h>.
- (DB_COMPAT_FCT): Remove.
- * nss/compat-lookup.c: New file.
- * nss/nsswitch.h: Generate __nss_*_lookup2 function prototypes
- from databases.def.
- * nss/service-lookup.c (NO_COMPAT): Remove definition.
- * sunrpc/netname.c (__nss_publickey_lookup): Remove declaration.
- (netname2user): Call __nss_publickey_lookup2 instead.
- * sunrpc/publickey.c (__nss_publickey_lookup): Remove declaration.
- (getpublickey, getsecretkey): Call __nss_publickey_lookup2
- instead.
-
-2017-08-14 Adhemerval Zanella <adhemerval.zanella@linaro.org>
- Sergei Trofimovich <slyfox@inbox.ru>
-
- [BZ #21908]
- * sysdeps/unix/sysv/linux/m68k/mmap_internal.h (MMAP2_PAGE_SHIFT):
- Rename to MMAP2_PAGE_UNIT.
- * sysdeps/unix/sysv/linux/mmap.c: Include mmap_internal iff
- __OFF_T_MATCHES_OFF64_T is not defined.
- * sysdeps/unix/sysv/linux/mmap_internal.h (page_unit): Declare as
- uint64_t.
- (MMAP2_PAGE_UNIT) [MMAP2_PAGE_UNIT == -1]: Redefine to page_unit.
- (page_unit) [MMAP2_PAGE_UNIT != -1]: Remove definition.
-
-2017-08-14 Florian Weimer <fweimer@redhat.com>
-
- i386: Do not set internal_function.
- * config.h.in (USE_REGPARMS, internal_function): Remove.
- * sysdeps/i386/configure.ac (USE_REGPARMS): Likewise.
- * sysdeps/i386/configure (USE_REGPARMS): Likewise.
-
-2017-08-14 Florian Weimer <fweimer@redhat.com>
-
- * elf/dl-init.c (_dl_init): Remove internal_function.
- * sysdeps/generic/ldsodefs.h (_dl_init): Likewise.
- * sysdeps/i386/dl-machine.h (RTLD_START): Adjust call to _dl_init.
-
-2017-08-14 Florian Weimer <fweimer@redhat.com>
-
- * elf/rtld.c (_dl_start): Remove internal_function.
- * sysdeps/i386/dl-machine.h (RTLD_START): Adjust call to
- _dl_start.
-
-2017-08-14 Florian Weimer <fweimer@redhat.com>
-
- * elf/dl-fini.c (_dl_fini): Remove internal_function
- * sysdeps/generic/ldsodefs.h (_dl_fini): Likewise.
-
-2017-08-14 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/x86/cpu-features.h (bit_cpu_IBT): New.
- (bit_cpu_SHSTK): Likewise.
- (index_cpu_IBT): Likewise.
- (index_cpu_SHSTK): Likewise.
- (reg_IBT): Likewise.
- (reg_SHSTK): Likewise.
- * sysdeps/x86/cpu-tunables.c (TUNABLE_CALLBACK (set_hwcaps)):
- Handle index_cpu_IBT and index_cpu_SHSTK.
-
-2017-08-14 Mike FABIAN <mfabian@redhat.com>
-
- [BZ #19982]
- * po/fr.po: Fix spelling mistake.
-
-2017-08-13 Florian Weimer <fweimer@redhat.com>
-
- * elf/dl-addr.c (_dl_addr): Remove internal_function.
- * elf/dl-error-skeleton.c (_dl_signal_error, _dl_signal_cerror)
- (_dl_catch_error, _dl_receive_error): Likewise.
- * elf/dl-open.c (_dl_find_dso_for_object): Likewise.
- * elf/dl-tls.c (_dl_allocate_tls_init, _dl_allocate_tls)
- (_dl_deallocate_tls): Likewise.
- * include/dlfcn.h (_dl_addr): Likewise.
- * sysdeps/generic/ldsodefs.h (_dl_signal_error, _dl_signal_cerror)
- (_dl_catch_error, _dl_receive_error, _dl_find_dso_for_object)
- (_dl_allocate_tls_init, _dl_allocate_tls, _dl_deallocate_tls):
- Likewise.
-
-2017-08-13 Florian Weimer <fweimer@redhat.com>
-
- * include/stdlib.h: (__strtof_nan, __strtod_nan, __strtold_nan)
- (__wcstof_nan, __wcstod_nan, __wcstold_nan): Remove
- internal_function.
- * stdlib/sttod_nan_main.c (STRTOD_NAN): Likewise.
-
-2017-08-13 Florian Weimer <fweimer@redhat.com>
-
- * elf/dl-support.c (_dl_make_stack_executable_hook): Remove
- internal_function.
- * nptl/allocatestack.c (__make_stacks_executable): Likewise.
- * nptl/pthreadP.h (__make_stacks_executable): Likewise.
- * sysdeps/generic/ldsodefs.h (_rtld_global): Remove
- internal_function from _dl_make_stack_executable_hook member.
- (_dl_make_stack_executable): Remove internal_function.
- * sysdeps/mach/hurd/dl-execstack.c (_dl_make_stack_executable):
- Likewise.
- * sysdeps/unix/sysv/linux/dl-execstack.c
- (_dl_make_stack_executable): Likewise.
-
-2017-08-13 Florian Weimer <fweimer@redhat.com>
-
- * sysdeps/unix/sysv/linux/netlinkaccess.h
- (__netlink_assert_response): Remove internal_function.
- * sysdeps/unix/sysv/linux/netlink_assert_response.c
- (__netlink_assert_response): Likewise.
-
-2017-08-13 Florian Weimer <fweimer@redhat.com>
-
- * include/rpc/pmap_clnt.h (__libc_rpc_getport): Remove
- internal_function.
- * sunrpoc/pm_getport.c (__libc_rpc_getport): Likewise.
-
-2017-08-13 Florian Weimer <fweimer@redhat.com>
-
- * grp/grp-merge.h (__copy_grp, __merge_grp): Remove
- internal_function.
- * grp/grp-merge.c (__copy_grp, __merge_grp): Likewise.
- * inet/netgroup.h (__internal_setnetgrent)
- (__internal_endnetgrent,__internal_getnetgrent_r): Likewise.
- * inet/getnetgrent_r.c (__internal_setnetgrent)
- (__internal_endnetgrent,__internal_getnetgrent_r): Likewise.
- * nss/XXX-lookup.c (DB_LOOKUP_FCT, DB_COMPAT_FCT): Likewise.
- * nss/getXXbyYY_r.c (DB_LOOKUP_FCT): Likewise.
- * nss/getXXent_r.c (DB_LOOKUP_FCT): Likewise.
- * nss/nsswitch.h (db_lookup_function): Likewise.
-
-2017-08-13 Florian Weimer <fweimer@redhat.com>
-
- * debug/fortify_fail.c (__fortify_fail, __fortify_fail_abort):
- Remove internal_function.
- * include/stdio.h (__fortify_fail, __fortify_fail_abort): Likewise.
- * sysdeps/mach/hurd/i386/____longjmp_chk.S (CALL_FAIL): Pass
- message argument on the stack.
- * sysdeps/unix/sysv/linux/i386/____longjmp_chk.S (CALL_FAIL):
- Likeweise.
-
-2017-08-12 Mike FABIAN <mfabian@redhat.com>
-
- Adapt test case data to the changes in the thousands
- separators.
-
- [BZ #20756]
- * localedata/tst-langinfo.sh: Adapt test case data.
- * stdlib/tst-strfmon_l.c: Likewise.
- * stdlib/tst-strtod4.c: Likewise.
- * stdlib/tst-strtod5i.c: Likewise.
-
-2017-08-11 Florian Weimer <fweimer@redhat.com>
-
- [BZ #21242]
- * assert/assert.h [__GNUC__ && !__STRICT_ANSI__] (assert):
- Suppress pedantic warning resulting from statement expression.
- (__ASSERT_FUNCTION): Add missing __extension__.
-
-2017-08-11 Siddhesh Poyarekar <siddhesh@sourceware.org>
-
- * benchtests/bench-memmove-large.c: Print output in JSON
- format.
- * benchtests/bench-memmove.c: Likewise.
-
- * benchtests/bench-memccpy.c (do_one_test): Remove checks.
- * benchtests/bench-memchr.c (do_one_test): Likewise.
- * benchtests/bench-memcpy-large.c (do_one_test): Likewise.
- * benchtests/bench-memcpy.c (do_one_test): Likewise.
- * benchtests/bench-memmove-large.c (do_one_test): Likewise.
- * benchtests/bench-memmove.c (do_one_test): Likewise.
- * benchtests/bench-memset-large.c (do_one_test): Likewise.
- * benchtests/bench-memset.c (do_one_test): Likewise.
- * benchtests/bench-string.h (test_init): Remove memsets.
-
-2017-08-10 Rical Jasan <ricaljasan@pacific.net>
-
- * manual/lang.texi
- (Computing the Width of an Integer Data Type): Rename section to
- "Width of an Integer Type". Remove inaccurate statement regarding
- lack of C language facilities for determining width of integer
- types, and reorder content to improve flow and context of
- discussion.
-
-2017-08-10 Rical Jasan <ricaljasan@pacific.net>
-
- * lang.texi (va_copy): Change standard from ISO to C99.
- (__va_copy): Add standard and header annotation.
- Update description for clarity of origins and current use.
-
-2017-08-10 Gabriel F. T. Gomes <gftg@linux.vnet.ibm.com>
-
- [BZ #21941]
- * sysdeps/powerpc/fpu/math_private.h (__ieee754_sqrtf128): Since
- xssqrtqp requires operands to be in Vector Registers
- (Altivec/VMX), replace the register constraint 'wq' with 'v'.
- * sysdeps/powerpc/powerpc64le/power9/fpu/e_sqrtf128.c
- (__ieee754_sqrtf128): Likewise.
-
-2017-08-10 Wilco Dijkstra <wdijkstr@arm.com>
-
- * sysdeps/aarch64/memcmp.S (memcmp):
- Rewrite of optimized memcmp.
-
-2017-08-10 Florian Weimer <fweimer@redhat.com>
-
- Introduce ld.so exceptions.
- * sysdeps/generic/ldsodefs.h (struct dl_exception): Define.
- (_dl_exception_create, _dl_exception_create_format)
- (_dl_exception_free, _dl_signal_exception, _dl_signal_cexception)
- (_dl_catch_exception): Declare.
- (_dl_catch_error): Update comment.
- * elf/dl-error-skeleton.c (struct catch): Replace objname,
- errstring, malloced members with exception member.
- (_dl_out_of_memory): Remove.
- (fatal_error): New function, extracted from _dl_signal_error.
- (_dl_signal_exception, _dl_signal_cexception): New functions.
- (_dl_signal_error): Call _dl_exception_create to allocate an
- exception object.
- (_dl_catch_exception): New function, based on _dl_catch_error.
- (_dl_catch_error): Implement using _dl_catch_exception.
- * elf/dl-exception.c: New file.
- * elf/Makefile (dl-routines): Add dl-exception.
- (elide-routines.os): Likewise.
- * elf/Version (ld/GLIBC_PRIVATE): Add _dl_exception_create,
- _dl_exception_create_format, _dl_exception_free.
- * elf/dl-deps.c (_dl_map_object_deps): Use _dl_catch_exception and
- _dl_signal_exception.
- * elf/dl-lookup.c (make_string): Remove.
- (_dl_lookup_symbol_x): Use _dl_exception_create_format,
- _dl_signal_cexception, _dl_exception_free.
- * elf/dl-open.c (_dl_open): Use _dl_catch_exception and
- _dl_signal_exception.
- * elf/dl-sym.c (do_sym): Likewise.
- * elf/dl-version.c (make_string): Remove.
- (match_symbol): Use _dl_exception_create_format,
- _dl_signal_cexception, _dl_exception_free.
- (_dl_check_map_versions): Likewise.
- * sysdeps/generic/localplt.data (ld.so): Add _dl_signal_exception,
- _dl_catch_exception.
- * sysdeps/unix/sysv/linux/aarch64/localplt.data (ld.so): Likewise.
- * sysdeps/unix/sysv/linux/alpha/localplt.data (ld.so): Likewise.
- * sysdeps/unix/sysv/linux/arm/localplt.data (ld.so): Likewise.
- * sysdeps/unix/sysv/linux/hppa/localplt.data (ld.so): Likewise.
- * sysdeps/unix/sysv/linux/i386/localplt.data (ld.so): Likewise.
- * sysdeps/unix/sysv/linux/ia64/localplt.data (ld.so): Likewise.
- * sysdeps/unix/sysv/linux/m68k/localplt.data (ld.so): Likewise.
- * sysdeps/unix/sysv/linux/microblaze/localplt.data (ld.so):
- Likewise.
- * sysdeps/unix/sysv/linux/nios2/localplt.data (ld.so): Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/localplt.data
- (ld.so): Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/localplt.data
- (ld.so): Likewise.
- * sysdeps/unix/sysv/linux/powerpc/powerpc64/localplt.data (ld.so):
- Likewise.
- * sysdeps/unix/sysv/linux/s390/localplt.data (ld.so): Likewise.
- * sysdeps/unix/sysv/linux/sh/localplt.data (ld.so): Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc32/localplt.data (ld.so):
- Likewise.
- * sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data (ld.so):
- Likewise.
- * sysdeps/x86_64/localplt.data (ld.so): Likewise.
-
-2017-08-10 Florian Weimer <fweimer@redhat.com>
-
- * inet/net-internal.h (__inet6_scopeid_pton): Remove
- attribute_hidden, internal_function.
- * inet/inet6_scopeid_pton.c (__inet6_scopeid_pton): Remove
- internal_function.
-
-2017-08-10 Florian Weimer <fweimer@redhat.com>
-
- * malloc/malloc.c (get_max_fast): Reimplement as an inline
- function which calls __builtin_unreachable.
-
-2017-08-10 Mike FABIAN <mfabian@redhat.com>
-
- * stdlib/tst-strfmon_l.c: Fix test cases to agree with the changes in
- Indian monetary formatting
- * stdlib/Makefile: Adapt list of locales needed for the tst-strfmon_l.c
- test cases.
-
-2017-08-09 Dmitry V. Levin <ldv@altlinux.org>
-
- * sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h (enum __ptrace_request):
- Fix typo in comment.
-
- [BZ #21928]
- * sysdeps/unix/sysv/linux/sys/ptrace.h (enum __ptrace_flags,
- PTRACE_SEIZE_DEVEL): Remove.
- * sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h: Likewise.
- * sysdeps/unix/sysv/linux/ia64/sys/ptrace.h: Likewise.
- * sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h: Likewise.
- * sysdeps/unix/sysv/linux/s390/sys/ptrace.h: Likewise.
- * sysdeps/unix/sysv/linux/sparc/sys/ptrace.h: Likewise.
-
-2017-08-09 Joseph Myers <joseph@codesourcery.com>
-
- * posix/bits/types.h (__qaddr_t): Remove.
-
- [BZ #21457]
- * sysdeps/arm/sys/ucontext.h (__ctx): Move undefine further down.
- (ucontext_t): Use __ctx with uc_flags. Rename uc_filler to
- __glibc_reserved1.
- * sysdeps/generic/sys/ucontext.h (__ctx): New macro.
- (ucontext_t): Use __ctx with uc_flags.
- * sysdeps/i386/sys/ucontext.h (__ctx): Move undefine further down.
- (__ctxt): Likewise.
- (ucontext_t): Use __ctx with uc_flags. Rename uc_filler to
- __glibc_reserved1.
- * sysdeps/m68k/sys/ucontext.h (__ctx): Move undefine further down.
- (ucontext_t): Use __ctx with uc_flags. Rename uc_filler to
- __glibc_reserved1.
- * sysdeps/mips/sys/ucontext.h (__ctx): Move undefine further down.
- (ucontext_t): Use __ctx with uc_flags. Rename uc_filler to
- __glibc_reserved1.
- * sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h (__ctx): New
- macro.
- (ucontext_t): Use __ctx with uc_flags.
- * sysdeps/unix/sysv/linux/alpha/sys/ucontext.h (__ctx): New macro.
- (ucontext_t): Use __ctx with uc_flags.
- * sysdeps/unix/sysv/linux/arm/sys/ucontext.h (__ctx): New macro.
- (ucontext_t): Use __ctx with uc_flags and uc_regspace.
- * sysdeps/unix/sysv/linux/hppa/sys/ucontext.h (__ctx): New macro.
- (ucontext_t): Use __ctx with uc_flags.
- * sysdeps/unix/sysv/linux/m68k/sys/ucontext.h (__ctx): Move
- undefine further down.
- (ucontext_t): Use __ctx with uc_flags. Rename uc_filler to
- __glibc_reserved1.
- * sysdeps/unix/sysv/linux/mips/sys/ucontext.h (__ctx): Move
- undefine further down.
- (ucontext_t): Use __ctx with uc_flags.
- * sysdeps/unix/sysv/linux/nios2/sys/ucontext.h (__ctx): Move
- undefine further down.
- (ucontext_t): Use __ctx with uc_flags.
- * sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h (ucontext_t): Use
- __ctx with uc_flags, uc_regs_ptr, uc_regs and uc_reg_space.
- Rename uc_pad to __glibc_reserved1.
- * sysdeps/unix/sysv/linux/s390/sys/ucontext.h (__ctx): Move
- undefine further down.
- (ucontext_t): Use __ctx with uc_flags.
- * sysdeps/unix/sysv/linux/sh/sys/ucontext.h (__ctx): Move undefine
- further down.
- (ucontext_t): Use __ctx with uc_flags.
- * sysdeps/unix/sysv/linux/sparc/sys/ucontext.h (ucontext_t): Use
- __ctx with uc_flags.
- * sysdeps/unix/sysv/linux/tile/sys/ucontext.h (__ctx): New macro.
- (ucontext_t): Use __ctx with uc_flags.
- * sysdeps/unix/sysv/linux/x86/sys/ucontext.h (ucontext_t): Use
- __ctx with uc_flags.
-
-2017-08-09 Florian Weimer <fweimer@redhat.com>
-
- [BZ #21932]
- * nss/getXXbyYY_r.c (REENTRANT_NAME): Call __resolv_context_put
- before early return.
-
-2017-08-09 Andreas Schwab <schwab@suse.de>
-
- [BZ #21041]
- * sysdeps/unix/sysv/linux/s390/pt-longjmp.c: Update reference to
- renamed alias.
-
- [BZ #21041]
- * nptl/Makefile (tests) [$(build-shared) = yes]: Add
- tst-compat-forwarder.
- (modules-names): Add tst-compat-forwarder-mod.
- ($(objpfx)tst-compat-forwarder): Depend on
- $(objpfx)tst-compat-forwarder-mod.so.
- * nptl/tst-compat-forwarder.c: New file.
- * nptl/tst-compat-forwarder-mod.c: New file.
-
-2017-08-09 Siddhesh Poyarekar <siddhesh@sourceware.org>
-
- * sysdeps/aarch64/multiarch/memcpy_falkor.S: Fix code style in
- comments.
-
- * manual/tunables.texi (Tunable glibc.tune.cpu): Add falkor.
- * sysdeps/aarch64/multiarch/Makefile (sysdep_routines): Add
- memcpy_falkor.
- * sysdeps/aarch64/multiarch/ifunc-impl-list.c (MAX_IFUNC):
- Bump.
- (__libc_ifunc_impl_list): Add __memcpy_falkor.
- * sysdeps/aarch64/multiarch/memcpy.c: Likewise.
- * sysdeps/aarch64/multiarch/memcpy_falkor.S: New file.
- * sysdeps/unix/sysv/linux/aarch64/cpu-features.c (cpu_list):
- Add falkor.
- * sysdeps/unix/sysv/linux/aarch64/cpu-features.h (IS_FALKOR):
- New macro.
-
-2017-08-08 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- [BZ #759]
- * manual/setjmp.texi (getcontex): Document uc_stack value
- compatibility differences.
-
-2017-08-08 Joseph Myers <joseph@codesourcery.com>
-
- * malloc/mcheck.c (old_free_hook): Use void * instead of __ptr_t.
- (old_malloc_hook): Likewise.
- (old_memalign_hook): Likewise.
- (old_realloc_hook): Likewise.
- (struct hdr): Likewise.
- (flood): Likewise.
- (freehook): Likewise.
- (mallochook): Likewise.
- (memalignhook): Likewise.
- (reallochook): Likewise.
- (mprobe): Likewise.
- * malloc/mtrace.c (mallwatch): Likewise.
- (tr_old_free_hook): Likewise.
- (tr_old_malloc_hook): Likewise.
- (tr_old_realloc_hook): Likewise.
- (tr_old_memalign_hook): Likewise.
- (tr_where): Likewise.
- (lock_and_info): Likewise.
- (tr_freehook): Likewise.
- (tr_mallochook): Likewise.
- (tr_reallochook): Likewise.
- (tr_memalignhook): Likewise.
- * misc/err.h [!__GNUC_VA_LIST] (__gnuc_va_list): Likewise.
- * misc/mmap.c (__mmap): Likewise.
- * misc/mmap64.c (__mmap64): Likewise.
- * misc/mprotect.c (__mprotect): Likewise.
- * misc/msync.c (msync): Likewise.
- * misc/munmap.c (__munmap): Likewise.
- * posix/posix_madvise.c (posix_madvise): Likewise.
- * socket/send.c (__send): Likewise.
- * socket/sendto.c (__sendto): Likewise.
- * socket/setsockopt.c (__setsockopt): Likewise.
- * string/memcmp.c (__ptr_t): Remove macro.
- (MEMCMP): Use void * instead of ptr_t.
- * string/memrchr.c (__ptr_t): Remove macro.
- (__memrchr): Use void * instead of ptr_t.
- * sysdeps/mach/hurd/dl-sysdep.c (__mmap): Likewise.
- * sysdeps/mach/hurd/mmap.c (__mmap): Likewise.
- * sysdeps/mach/hurd/mmap64.c (__mmap64): Likewise.
- * sysdeps/mach/mprotect.c (__mprotect): Likewise.
- * sysdeps/mach/msync.c (msync): Likewise.
- * sysdeps/mach/munmap.c (__munmap): Likewise.
- * sysdeps/mips/bits/setjmp.h (struct __jmp_buf_internal_tag):
- Likewise.
- * sysdeps/posix/getcwd.c (__getcwd): Likewise.
- * sysdeps/powerpc/powerpc32/memset.S (memset): Likewise.
- * sysdeps/powerpc/powerpc32/power4/memcpy.S (memcpy): Likewise.
- * sysdeps/powerpc/powerpc32/power4/memset.S (memset): Likewise.
- * sysdeps/powerpc/powerpc32/power6/memcpy.S (memcpy): Likewise.
- * sysdeps/powerpc/powerpc32/power6/memset.S (memset): Likewise.
- * sysdeps/powerpc/powerpc32/power7/memcpy.S (memcpy): Likewise.
- * sysdeps/powerpc/powerpc32/power7/mempcpy.S (__mempcpy):
- Likewise.
- * sysdeps/powerpc/powerpc32/power7/memset.S (memset): Likewise.
- * sysdeps/powerpc/powerpc64/memcpy.S (memcpy): Likewise.
- * sysdeps/powerpc/powerpc64/memset.S (memset): Likewise.
- * sysdeps/powerpc/powerpc64/power4/memcpy.S (memcpy): Likewise.
- * sysdeps/powerpc/powerpc64/power4/memset.S (memset): Likewise.
- * sysdeps/powerpc/powerpc64/power6/memcpy.S (memcpy): Likewise.
- * sysdeps/powerpc/powerpc64/power6/memset.S (memset): Likewise.
- * sysdeps/powerpc/powerpc64/power7/memcpy.S (memcpy): Likewise.
- * sysdeps/powerpc/powerpc64/power7/mempcpy.S (__mempcpy):
- Likewise.
- * sysdeps/powerpc/powerpc64/power7/memset.S (memset): Likewise.
- * sysdeps/powerpc/powerpc64/power8/memset.S (memset): Likewise.
- * sysdeps/tile/memcmp.c (__ptr_t): Remove macro.
- (MEMCMP): Use void * instead of ptr_t.
- * sysdeps/unix/sysv/linux/alpha/oldglob.c (old_glob_t): Likewise.
- * sysdeps/unix/sysv/linux/mmap.c (__mmap): Likewise.
-
-2017-08-08 Florian Weimer <fweimer@redhat.com>
-
- * sysdeps/posix/getaddrinfo.c (gaih_inet): Remove unreachable
- return statement.
-
-2017-08-08 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #21913]
- * csu/libc-tls.c: Include <startup.h> first.
- (__libc_setup_tls): Call _startup_fatal instead of __libc_fatal.
- * elf/dl-tunables.c: Include <startup.h> first.
- * include/libc-symbols.h (BUILD_PIE_DEFAULT): New.
- * sysdeps/generic/startup.h: New file.
- * sysdeps/unix/sysv/linux/i386/startup.h: Likewise.
- * sysdeps/unix/sysv/linux/i386/brk.c [BUILD_PIE_DEFAULT != 0]
- (I386_USE_SYSENTER): New. Defined to 0.
-
-2017-08-08 Andreas Schwab <schwab@suse.de>
-
- [BZ #21041]
- * nptl/pt-longjmp.c (longjmp, siglongjmp): Don't use IFUNC resolver.
- * nptl/pt-system.c (system): Likewise.
-
-2017-08-07 Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
- [BZ #21780]
- * sysdeps/posix/preadv2.c (preadv2): Use ENOTSUP instead of
- EOPNOTSUPP.
- * sysdeps/posix/preadv64v2.c (preadv64v2): Likewise.
- * sysdeps/posix/pwritev2.c (pwritev2): Likewise.
- * sysdeps/posix/pwritev64v2.c (pwritev64v2): Likewise.
- * sysdeps/unix/sysv/linux/preadv2.c (preadv2): Likewise.
- * sysdeps/unix/sysv/linux/preadv64v2.c (preadv64v2): Likewise.
- * sysdeps/unix/sysv/linux/pwritev2.c (pwritev2): Likewise.
- * sysdeps/unix/sysv/linux/pwritev64v2.c (pwritev64v2): Likewise.
-
-2017-08-07 Joseph Myers <joseph@codesourcery.com>
-
- [BZ #21899]
- * bits/sigaction.h (struct sigaction): Define sa_handler and
- sa_sigaction using union also for [__USE_XOPEN_EXTENDED].
- (SA_ONSTACK): Change [__USE_UNIX98] condition to
- [__USE_XOPEN_EXTENDED].
- (SA_RESTART): Likewise.
- (SA_NODEFER): Likewise.
- (SA_RESETHAND): Likewise.
- * sysdeps/unix/sysv/linux/alpha/bits/sigaction.h
- (struct sigaction): Define sa_handler and sa_sigaction using union
- also for [__USE_XOPEN_EXTENDED].
- (SA_ONSTACK): Change [__USE_UNIX98] condition to
- [__USE_XOPEN_EXTENDED].
- (SA_RESTART): Likewise.
- (SA_NODEFER): Likewise.
- (SA_RESETHAND): Likewise.
- * sysdeps/unix/sysv/linux/bits/sigaction.h
- (struct sigaction): Define sa_handler and sa_sigaction using union
- also for [__USE_XOPEN_EXTENDED].
- (SA_ONSTACK): Change [__USE_UNIX98] condition to
- [__USE_XOPEN_EXTENDED].
- (SA_RESTART): Likewise.
- (SA_NODEFER): Likewise.
- (SA_RESETHAND): Likewise.
- * sysdeps/unix/sysv/linux/hppa/bits/sigaction.h
- (struct sigaction): Define sa_handler and sa_sigaction using union
- also for [__USE_XOPEN_EXTENDED].
- (SA_ONSTACK): Change [__USE_UNIX98] condition to
- [__USE_XOPEN_EXTENDED].
- (SA_RESTART): Likewise.
- (SA_NODEFER): Likewise.
- (SA_RESETHAND): Likewise.
- * sysdeps/unix/sysv/linux/ia64/bits/sigaction.h
- (struct sigaction): Define sa_handler and sa_sigaction using union
- also for [__USE_XOPEN_EXTENDED].
- (SA_ONSTACK): Change [__USE_UNIX98] condition to
- [__USE_XOPEN_EXTENDED].
- (SA_RESTART): Likewise.
- (SA_NODEFER): Likewise.
- (SA_RESETHAND): Likewise.
- * sysdeps/unix/sysv/linux/mips/bits/sigaction.h
- (struct sigaction): Define sa_handler and sa_sigaction using union
- also for [__USE_XOPEN_EXTENDED].
- (SA_ONSTACK): Change [__USE_UNIX98] condition to
- [__USE_XOPEN_EXTENDED].
- (SA_RESTART): Likewise.
- (SA_NODEFER): Likewise.
- (SA_RESETHAND): Likewise.
- * sysdeps/unix/sysv/linux/s390/bits/sigaction.h
- (struct sigaction): Define sa_handler and sa_sigaction using union
- also for [__USE_XOPEN_EXTENDED].
- (SA_ONSTACK): Change [__USE_UNIX98] condition to
- [__USE_XOPEN_EXTENDED].
- (SA_RESTART): Likewise.
- (SA_NODEFER): Likewise.
- (SA_RESETHAND): Likewise.
- * sysdeps/unix/sysv/linux/sparc/bits/sigaction.h
- (struct sigaction): Define sa_handler and sa_sigaction using union
- also for [__USE_XOPEN_EXTENDED].
- (SA_ONSTACK): Change [__USE_UNIX98] condition to
- [__USE_XOPEN_EXTENDED].
- (SA_RESTART): Likewise.
- (SA_NODEFER): Likewise. Define directly rather than as alias.
- (SA_RESETHAND): Likewise.
- (SA_INTERRUPT): Define only for [__USE_MISC].
- (SA_NOMASK): Define as alias of SA_NODEFER, only for [__USE_MISC].
- (SA_ONESHOT): Define as alias of SA_RESETHAND, only for
- [__USE_MISC].
- (SA_STACK): Define only for [__USE_MISC].
- * sysdeps/unix/sysv/linux/tile/bits/sigaction.h
- (struct sigaction): Define sa_handler and sa_sigaction using union
- also for [__USE_XOPEN_EXTENDED].
- (SA_ONSTACK): Change [__USE_UNIX98] condition to
- [__USE_XOPEN_EXTENDED].
- (SA_RESTART): Likewise.
- (SA_NODEFER): Likewise.
- (SA_RESETHAND): Likewise.
- (SA_NOPTRACE): Define only for [__USE_MISC].
-
- * catgets/catgets.c (catgets): Use uintN_t instead of u_intN_t.
- * catgets/catgetsinfo.h (struct catalog_obj): Likewise.
- (struct catalog_info): Likewise.
- * inet/htontest.c (lo): Likewise.
- (foo): Likewise.
- * inet/inet_lnaof.c (inet_lnaof): Likewise.
- * inet/inet_net.c (inet_network): Likewise.
- * inet/inet_netof.c (inet_netof): Likewise.
- * inet/rcmd.c (__ivaliduser): Likewise.
- (iruserok): Likewise.
- * locale/loadlocale.c (_nl_intern_locale_data): Likewise.
- * locale/programs/locale-spec.c (locale_special): Likewise.
- * nis/nis_findserv.c (struct findserv_req): Likewise.
- (__nis_findfastest_with_timeout): Likewise.
- * nss/test-netdb.c (test_network): Likewise.
- * resolv/inet_neta.c (inet_neta): Likewise.
- * resolv/ns_date.c (ns_datetosecs): Likewise.
- (SECS_PER_DAY): Likewise.
- * resolv/nss_dns/dns-network.c (_nss_dns_getnetbyaddr_r):
- Likewise.
- * resolv/res_comp.c (__putlong): Likewise.
- (__putshort): Likewise.
- (_getlong): Likewise.
- (_getshort): Likewise.
- * resolv/res_debug.c (p_time): Likewise.
- (precsize_ntoa): Likewise.
- (precsize_aton): Likewise.
- (latlon2ul): Likewise.
- (loc_aton): Likewise.
- (loc_ntoa): Likewise.
- * resolv/res_hconf.c (struct netaddr): Likewise.
- (_res_hconf_reorder_addrs): Likewise.
- * sunrpc/clnt_tcp.c (clnttcp_call): Likewise.
- (clnttcp_control): Likewise.
- * sunrpc/clnt_udp.c (clntudp_call): Likewise.
- (clntudp_control): Likewise.
- * sunrpc/clnt_unix.c (clntunix_call): Likewise.
- (clntunix_control): Likewise.
- * sunrpc/pmap_rmt.c (clnt_broadcast): Likewise.
- * sunrpc/rpc/auth.h (union des_block): Likewise.
- * sunrpc/tst-udp-nonblocking.c (do_test): Likewise.
- * sunrpc/xdr_rec.c (struct rec_strm): Likewise.
- (xdrrec_create): Likewise.
- (xdrrec_endofrecord): Likewise.
- (flush_out): Likewise.
- * sunrpc/xdr_stdio.c (xdrstdio_getlong): Likewise.
- (xdrstdio_putlong): Likewise.
- * sysdeps/unix/sysv/linux/errqueue.h (struct sock_extended_err):
- Likewise.
-
- * misc/sys/cdefs.h (__long_double_t): Remove.
- * stdio-common/printf_fp.c (__printf_fp_l): Use long double
- instead of __long_double_t,
- * stdlib/strfmon_l.c (__vstrfmon_l): Likewise.
-
-2017-08-07 Siddhesh Poyarekar <siddhesh@sourceware.org>
-
- * benchtests/scripts/compare_strings.py: Avoid display error when
- running on a text terminal.
-
- * benchtests/scripts/compare_strings.py (main): Add an
- optional -base option.
- (process_results): New argument base_func.
-
- * benchtests/bench-memcpy.c (test_main): Use TEST_NAME instead of
- hardcoding memcpy.
- * benchtests/bench-memcpy-large.c (test_name): Likewise.
- * benchtests/bench-memcpy-random.c (test_name): Likewise.
-
-2017-08-07 Andreas Schwab <schwab@suse.de>
-
- * elf/Makefile ($(objpfx)tst-pathopt.out): Redirect output to target.
- * grp/Makefile ($(objpfx)tst_fgetgrent.out): Likewise.
- * intl/Makefile ($(objpfx)tst-gettext.out)
- ($(objpfx)tst-translit.out, $(objpfx)tst-gettext2.out)
- ($(objpfx)tst-gettext4.out, $(objpfx)tst-gettext6.out): Likewise.
- * libio/Makefile ($(objpfx)test-freopen.out): Likewise.
- * malloc/Makefile ($(objpfx)tst-mtrace.out): Likewise.
- * nptl/Makefile ($(objpfx)tst-tls6.out): Likewise.
- * posix/Makefile ($(objpfx)globtest.out)
- ($(objpfx)wordexp-tst.out, $(objpfx)tst-getconf.out): Likewise.
- * stdio-common/Makefile ($(objpfx)tst-unbputc.out)
- ($(objpfx)tst-printf.out): Likewise.
- * stdlib/Makefile ($(objpfx)tst-fmtmsg.out)
- ($(objpfx)tst-setcontext3.out): Likewise.
-
-2017-08-07 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/x86_64/fpu/multiarch/Makefile (libm-sysdep_routines):
- Add e_exp-fma, e_log-fma, e_pow-fma, s_atan-fma, e_asin-fma,
- e_atan2-fma, s_sin-fma, s_tan-fma, mplog-fma, mpa-fma,
- slowexp-fma, slowpow-fma, sincos32-fma, doasin-fma, dosincos-fma,
- halfulp-fma, mpexp-fma, mpatan2-fma, mpatan-fma, mpsqrt-fma,
- and mptan-fma.
- (CFLAGS-doasin-fma.c): New.
- (CFLAGS-dosincos-fma.c): Likewise.
- (CFLAGS-e_asin-fma.c): Likewise.
- (CFLAGS-e_atan2-fma.c): Likewise.
- (CFLAGS-e_exp-fma.c): Likewise.
- (CFLAGS-e_log-fma.c): Likewise.
- (CFLAGS-e_pow-fma.c): Likewise.
- (CFLAGS-halfulp-fma.c): Likewise.
- (CFLAGS-mpa-fma.c): Likewise.
- (CFLAGS-mpatan-fma.c): Likewise.
- (CFLAGS-mpatan2-fma.c): Likewise.
- (CFLAGS-mpexp-fma.c): Likewise.
- (CFLAGS-mplog-fma.c): Likewise.
- (CFLAGS-mpsqrt-fma.c): Likewise.
- (CFLAGS-mptan-fma.c): Likewise.
- (CFLAGS-s_atan-fma.c): Likewise.
- (CFLAGS-sincos32-fma.c): Likewise.
- (CFLAGS-slowexp-fma.c): Likewise.
- (CFLAGS-slowpow-fma.c): Likewise.
- (CFLAGS-s_sin-fma.c): Likewise.
- (CFLAGS-s_tan-fma.c): Likewise.
- * sysdeps/x86_64/fpu/multiarch/doasin-fma.c: New file.
- * sysdeps/x86_64/fpu/multiarch/dosincos-fma.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/e_asin-fma.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/e_atan2-fma.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/e_exp-fma.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/e_log-fma.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/e_pow-fma.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/halfulp-fma.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/ifunc-avx-fma4.h: Likewise.
- * sysdeps/x86_64/fpu/multiarch/ifunc-fma4.h: Likewise.
- * sysdeps/x86_64/fpu/multiarch/mpa-fma.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/mpatan-fma.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/mpatan2-fma.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/mpexp-fma.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/mplog-fma.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/mpsqrt-fma.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/mptan-fma.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/s_atan-fma.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/s_sin-fma.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/s_tan-fma.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/sincos32-fma.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/slowexp-fma.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/slowpow-fma.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/e_asin.c: Rewrite.
- * sysdeps/x86_64/fpu/multiarch/e_atan2.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/e_exp.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/e_log.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/e_pow.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/s_atan.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/s_sin.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/s_tan.c: Likewise.
-
-2017-08-04 Joseph Myers <joseph@codesourcery.com>
-
- * sysdeps/generic/math_private.h (__EXPR_FLT128): Remove macro.
- (min_of_type_f): New macro.
- (min_of_type_): Likewise.
- (min_of_type_l): Likewise.
- (min_of_type_f128): Likewise.
- (min_of_type): Define using __MATH_TG and taking an expression
- argument.
- (math_check_force_underflow): Pass expression instead of type to
- min_of_type.
- (math_check_force_underflow_nonneg): Likewise.
-
-2017-08-04 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/x86/cpu-features.h [__ASSEMBLER__]
- (LOAD_RTLD_GLOBAL_RO_RDX, HAS_FEATURE, LOAD_FUNC_GOT_EAX,
- HAS_CPU_FEATURE, HAS_ARCH_FEATURE): Removed.
-
-2017-08-04 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/i386/i686/multiarch/Makefile (sysdep_routines): Add
- bcopy-ia32, bzero-ia32, rawmemchr-ia32 memchr-ia32,
- memcmp-ia32, memcpy-ia32, memmove-ia32, mempcpy-ia32,
- memset-ia32, strcat-ia32, strchr-ia32, strrchr-ia32,
- strcpy-ia32, strcmp-ia32, strcspn-ia32, strpbrk-ia32,
- strspn-ia32, strlen-ia32, stpcpy-ia32, stpncpy-ia32,
- memcpy_chk-nonshared, mempcpy_chk-nonshared,
- memmove_chk-nonshared and memset_chk-nonshared
- * sysdeps/i386/i686/multiarch/bcopy-ia32.S: New file.
- * sysdeps/i386/i686/multiarch/bcopy.c: Likewise.
- * sysdeps/i386/i686/multiarch/bzero-ia32.S: Likewise.
- * sysdeps/i386/i686/multiarch/bzero.c: Likewise.
- * sysdeps/i386/i686/multiarch/ifunc-memmove.h: Likewise.
- * sysdeps/i386/i686/multiarch/ifunc-memset.h: Likewise.
- * sysdeps/i386/i686/multiarch/ifunc-sse2-bsf.h: Likewise.
- * sysdeps/i386/i686/multiarch/ifunc-sse2-ssse3.h: Likewise.
- * sysdeps/i386/i686/multiarch/ifunc-sse2.h: Likewise.
- * sysdeps/i386/i686/multiarch/ifunc-sse4_2.h: Likewise.
- * sysdeps/i386/i686/multiarch/ifunc-ssse3-sse4_2.h: Likewise.
- * sysdeps/i386/i686/multiarch/memchr-ia32.S: Likewise.
- * sysdeps/i386/i686/multiarch/memchr.c: Likewise.
- * sysdeps/i386/i686/multiarch/memcmp-ia32.S: Likewise.
- * sysdeps/i386/i686/multiarch/memcmp.c: Likewise.
- * sysdeps/i386/i686/multiarch/memcpy-ia32.S: Likewise.
- * sysdeps/i386/i686/multiarch/memcpy.c: Likewise.
- * sysdeps/i386/i686/multiarch/memcpy_chk-nonshared.S: Likewise.
- * sysdeps/i386/i686/multiarch/memcpy_chk.c: Likewise.
- * sysdeps/i386/i686/multiarch/memmove-ia32.S: Likewise.
- * sysdeps/i386/i686/multiarch/memmove.c: Likewise.
- * sysdeps/i386/i686/multiarch/memmove_chk-nonshared.S: Likewise.
- * sysdeps/i386/i686/multiarch/memmove_chk.c: Likewise.
- * sysdeps/i386/i686/multiarch/mempcpy-ia32.S: Likewise.
- * sysdeps/i386/i686/multiarch/mempcpy.c: Likewise.
- * sysdeps/i386/i686/multiarch/mempcpy_chk-nonshared.S: Likewise.
- * sysdeps/i386/i686/multiarch/mempcpy_chk.c: Likewise.
- * sysdeps/i386/i686/multiarch/memrchr.c: Likewise.
- * sysdeps/i386/i686/multiarch/memset-ia32.S: Likewise.
- * sysdeps/i386/i686/multiarch/memset.c: Likewise.
- * sysdeps/i386/i686/multiarch/memset_chk-nonshared.S: Likewise.
- * sysdeps/i386/i686/multiarch/rawmemchr-ia32.S: Likewise.
- * sysdeps/i386/i686/multiarch/rawmemchr.c: Likewise.
- * sysdeps/i386/i686/multiarch/stpcpy-ia32.S: Likewise.
- * sysdeps/i386/i686/multiarch/stpcpy-ia32.S: Likewise.
- * sysdeps/i386/i686/multiarch/stpcpy.c: Likewise.
- * sysdeps/i386/i686/multiarch/stpncpy-ia32.S: Likewise.
- * sysdeps/i386/i686/multiarch/stpncpy.c: Likewise.
- * sysdeps/i386/i686/multiarch/strcasecmp.c: Likewise.
- * sysdeps/i386/i686/multiarch/strcasecmp_l.c: Likewise.
- * sysdeps/i386/i686/multiarch/strcat-ia32.S: Likewise.
- * sysdeps/i386/i686/multiarch/strcat.c: Likewise.
- * sysdeps/i386/i686/multiarch/strchr-ia32.S: Likewise.
- * sysdeps/i386/i686/multiarch/strchr.c: Likewise.
- * sysdeps/i386/i686/multiarch/strcmp-ia32.S: Likewise.
- * sysdeps/i386/i686/multiarch/strcmp.c: Likewise.
- * sysdeps/i386/i686/multiarch/strcpy-ia32.S: Likewise.
- * sysdeps/i386/i686/multiarch/strcpy.c: Likewise.
- * sysdeps/i386/i686/multiarch/strcspn-ia32.S: Likewise.
- * sysdeps/i386/i686/multiarch/strcspn.c: Likewise.
- * sysdeps/i386/i686/multiarch/strlen-ia32.S: Likewise.
- * sysdeps/i386/i686/multiarch/strlen.c: Likewise.
- * sysdeps/i386/i686/multiarch/strncase.c: Likewise.
- * sysdeps/i386/i686/multiarch/strncase_l.c: Likewise.
- * sysdeps/i386/i686/multiarch/strncat.c: Likewise.
- * sysdeps/i386/i686/multiarch/strncmp.c: Likewise.
- * sysdeps/i386/i686/multiarch/strncpy.c: Likewise.
- * sysdeps/i386/i686/multiarch/strnlen.c: Likewise.
- * sysdeps/i386/i686/multiarch/strpbrk-ia32.S: Likewise.
- * sysdeps/i386/i686/multiarch/strpbrk.c: Likewise.
- * sysdeps/i386/i686/multiarch/strrchr-ia32.S: Likewise.
- * sysdeps/i386/i686/multiarch/strrchr.c: Likewise.
- * sysdeps/i386/i686/multiarch/strspn-ia32.S: Likewise.
- * sysdeps/i386/i686/multiarch/strspn.c: Likewise.
- * sysdeps/i386/i686/multiarch/wcschr.c: Likewise.
- * sysdeps/i386/i686/multiarch/wcscmp.c: Likewise.
- * sysdeps/i386/i686/multiarch/wcscpy.c: Likewise.
- * sysdeps/i386/i686/multiarch/wcslen.c: Likewise.
- * sysdeps/i386/i686/multiarch/wcsrchr.c: Likewise.
- * sysdeps/i386/i686/multiarch/wmemcmp.c: Likewise.
- * sysdeps/i386/i686/multiarch/bcopy.S: Removed.
- * sysdeps/i386/i686/multiarch/bzero.S: Likewise.
- * sysdeps/i386/i686/multiarch/memchr.S: Likewise.
- * sysdeps/i386/i686/multiarch/memcmp.S: Likewise.
- * sysdeps/i386/i686/multiarch/memcpy.S: Likewise.
- * sysdeps/i386/i686/multiarch/memcpy_chk.S: Likewise.
- * sysdeps/i386/i686/multiarch/memmove.S: Likewise.
- * sysdeps/i386/i686/multiarch/memmove_chk.S: Likewise.
- * sysdeps/i386/i686/multiarch/mempcpy.S: Likewise.
- * sysdeps/i386/i686/multiarch/mempcpy_chk.S: Likewise.
- * sysdeps/i386/i686/multiarch/memrchr.S: Likewise.
- * sysdeps/i386/i686/multiarch/memset.S: Likewise.
- * sysdeps/i386/i686/multiarch/memset_chk.S: Likewise.
- * sysdeps/i386/i686/multiarch/rawmemchr.S: Likewise.
- * sysdeps/i386/i686/multiarch/stpcpy.S: Likewise.
- * sysdeps/i386/i686/multiarch/stpncpy.S: Likewise.
- * sysdeps/i386/i686/multiarch/strcasecmp.S: Likewise.
- * sysdeps/i386/i686/multiarch/strcasecmp_l.S: Likewise.
- * sysdeps/i386/i686/multiarch/strcat.S: Likewise.
- * sysdeps/i386/i686/multiarch/strcmp.S: Likewise.
- * sysdeps/i386/i686/multiarch/strcpy.S: Likewise.
- * sysdeps/i386/i686/multiarch/strcspn.S: Likewise.
- * sysdeps/i386/i686/multiarch/strlen.S: Likewise.
- * sysdeps/i386/i686/multiarch/strncase.S: Likewise.
- * sysdeps/i386/i686/multiarch/strncase_l.S: Likewise.
- * sysdeps/i386/i686/multiarch/strncat.S: Likewise.
- * sysdeps/i386/i686/multiarch/strncmp.S: Likewise.
- * sysdeps/i386/i686/multiarch/strncpy.S: Likewise.
- * sysdeps/i386/i686/multiarch/strnlen.S: Likewise.
- * sysdeps/i386/i686/multiarch/strpbrk.S: Likewise.
- * sysdeps/i386/i686/multiarch/strrchr.S: Likewise.
- * sysdeps/i386/i686/multiarch/strspn.S: Likewise.
- * sysdeps/i386/i686/multiarch/wcschr.S: Likewise.
- * sysdeps/i386/i686/multiarch/wcscmp.S: Likewise.
- * sysdeps/i386/i686/multiarch/wcscpy.S: Likewise.
- * sysdeps/i386/i686/multiarch/wcslen.S: Likewise.
- * sysdeps/i386/i686/multiarch/wcsrchr.S: Likewise.
- * sysdeps/i386/i686/multiarch/wmemcmp.S: Likewise.
-
-2017-08-04 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/x86_64/fpu/multiarch/Makefile (libmvec-sysdep_routines)
- Add svml_d_cos2_core-sse2, svml_d_cos4_core-sse,
- svml_d_cos8_core-avx2, svml_d_exp2_core-sse2,
- svml_d_exp4_core-sse, svml_d_exp8_core-avx2,
- svml_d_log2_core-sse2, svml_d_log4_core-sse,
- svml_d_log8_core-avx2, svml_d_pow2_core-sse2,
- svml_d_pow4_core-sse, svml_d_pow8_core-avx2
- svml_d_sin2_core-sse2, svml_d_sin4_core-sse,
- svml_d_sin8_core-avx2, svml_d_sincos2_core-sse2,
- svml_d_sincos4_core-sse, svml_d_sincos8_core-avx2,
- svml_s_cosf16_core-avx2, svml_s_cosf4_core-sse2,
- svml_s_cosf8_core-sse, svml_s_expf16_core-avx2,
- svml_s_expf4_core-sse2, svml_s_expf8_core-sse,
- svml_s_logf16_core-avx2, svml_s_logf4_core-sse2,
- svml_s_logf8_core-sse, svml_s_powf16_core-avx2,
- svml_s_powf4_core-sse2, svml_s_powf8_core-sse,
- svml_s_sincosf16_core-avx2, svml_s_sincosf4_core-sse2,
- svml_s_sincosf8_core-sse, svml_s_sinf16_core-avx2,
- svml_s_sinf4_core-sse2 and svml_s_sinf8_core-sse.
- * sysdeps/x86_64/fpu/multiarch/ifunc-mathvec-avx2.h: New file.
- * sysdeps/x86_64/fpu/multiarch/ifunc-mathvec-avx512.h: Likewise.
- * sysdeps/x86_64/fpu/multiarch/ifunc-mathvec-sse4_1.h: Likewise.
- * sysdeps/x86_64/fpu/multiarch/svml_d_cos2_core.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/svml_d_cos4_core.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/svml_d_cos8_core.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/svml_d_log2_core.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/svml_d_log4_core.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/svml_d_log8_core.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/svml_d_sin2_core.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/svml_d_sin4_core.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/svml_d_sin8_core.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/svml_d_sincos2_core.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/svml_d_sincos4_core.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/svml_d_sincos8_core.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/svml_d_cosf16_core.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/svml_d_cosf4_core.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/svml_d_cosf8_core.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/svml_d_expf16_core.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/svml_d_expf4_core.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/svml_d_expf8_core.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/svml_d_logf16_core.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/svml_d_logf4_core.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/svml_d_logf8_core.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/svml_d_powf16_core.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/svml_d_powf4_core.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/svml_d_powf8_core.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/svml_d_sincosf16_core.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/svml_d_sincosf4_core.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/svml_d_sincosf8_core.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/svml_d_sinf16_core.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/svml_d_sinf4_core.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/svml_d_sinf8_core.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/svml_d_cos2_core.S: Renamed to
- ...
- * sysdeps/x86_64/fpu/multiarch/svml_d_cos2_core-sse2.S: This.
- Don't include <sysdep.h> nor <init-arch.h>.
- (_ZGVbN2v_cos): Removed.
- * sysdeps/x86_64/fpu/multiarch/svml_d_cos4_core.S: Renamed to
- ...
- * sysdeps/x86_64/fpu/multiarch/svml_d_cos4_core-sse.S: This.
- Don't include <sysdep.h> nor <init-arch.h>.
- (_ZGVdN4v_cos): Removed.
- * sysdeps/x86_64/fpu/multiarch/svml_d_cos8_core.S: Renamed to
- ...
- * sysdeps/x86_64/fpu/multiarch/svml_d_cos8_core-avx2.S: This.
- Don't include <sysdep.h> nor <init-arch.h>.
- (_ZGVeN8v_cos): Removed.
- * sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core.S: Renamed to
- ...
- * sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core-sse2.S: This.
- Don't include <sysdep.h> nor <init-arch.h>.
- (_ZGVbN2v_exp): Removed.
- * sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core.S: Renamed to
- ...
- * sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core-sse.S: This.
- Don't include <sysdep.h> nor <init-arch.h>.
- (_ZGVdN4v_exp): Removed.
- * sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core.S: Renamed to
- ...
- * sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core-avx2.S: This.
- Don't include <sysdep.h> nor <init-arch.h>.
- (_ZGVeN8v_exp): Removed.
- * sysdeps/x86_64/fpu/multiarch/svml_d_log2_core.S: Renamed to
- ...
- * sysdeps/x86_64/fpu/multiarch/svml_d_log2_core-sse2.S: This.
- Don't include <sysdep.h> nor <init-arch.h>.
- (_ZGVbN2v_log): Removed.
- * sysdeps/x86_64/fpu/multiarch/svml_d_log4_core.S: Renamed to
- ...
- * sysdeps/x86_64/fpu/multiarch/svml_d_log4_core-sse.S: This.
- Don't include <sysdep.h> nor <init-arch.h>.
- (_ZGVdN4v_log): Removed.
- * sysdeps/x86_64/fpu/multiarch/svml_d_log8_core.S: Renamed to
- ...
- * sysdeps/x86_64/fpu/multiarch/svml_d_log8_core-avx2.S: This.
- Don't include <sysdep.h> nor <init-arch.h>.
- (_ZGVeN8v_log): Removed.
- * sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core.S: Renamed to
- ...
- * sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core-sse2.S: This.
- Don't include <sysdep.h> nor <init-arch.h>.
- (_ZGVbN2vv_pow): Removed.
- * sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core.S: Renamed to
- ...
- * sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core-sse.S: This.
- Don't include <sysdep.h> nor <init-arch.h>.
- (_ZGVdN4vv_pow): Removed.
- * sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core.S: Renamed to
- ...
- * sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core-avx2.S: This.
- Don't include <sysdep.h> nor <init-arch.h>.
- (_ZGVeN8vv_pow): Removed.
- * sysdeps/x86_64/fpu/multiarch/svml_d_sin2_core.S: Renamed to
- ...
- * sysdeps/x86_64/fpu/multiarch/svml_d_sin2_core-sse2.S: This.
- Don't include <sysdep.h> nor <init-arch.h>.
- (_ZGVbN2v_sin): Removed.
- * sysdeps/x86_64/fpu/multiarch/svml_d_sin4_core.S: Renamed to
- ...
- * sysdeps/x86_64/fpu/multiarch/svml_d_sin4_core-sse.S: This.
- Don't include <sysdep.h> nor <init-arch.h>.
- (_ZGVbN4v_sin): Removed.
- * sysdeps/x86_64/fpu/multiarch/svml_d_sin8_core.S: Renamed to
- ...
- * sysdeps/x86_64/fpu/multiarch/svml_d_sin8_core-avx2.S: This.
- Don't include <sysdep.h> nor <init-arch.h>.
- (_ZGVbN8v_sin): Removed.
- * sysdeps/x86_64/fpu/multiarch/svml_d_sincos2_core.S: Renamed to
- ...
- * sysdeps/x86_64/fpu/multiarch/svml_d_sincos2_core-sse2.S: This.
- Don't include <sysdep.h> nor <init-arch.h>.
- (_ZGVbN2vvv_sincos): Removed.
- * sysdeps/x86_64/fpu/multiarch/svml_d_sincos4_core.S: Renamed to
- ...
- * sysdeps/x86_64/fpu/multiarch/svml_d_sincos4_core-sse.S: This.
- Don't include <sysdep.h> nor <init-arch.h>.
- (_ZGVdN4vvv_sincos): Removed.
- * sysdeps/x86_64/fpu/multiarch/svml_d_sincos8_core.S: Renamed to
- ...
- * sysdeps/x86_64/fpu/multiarch/svml_d_sincos8_core-avx2.S: This.
- Don't include <sysdep.h> nor <init-arch.h>.
- (_ZGVeN8vvv_sincos): Removed.
- * sysdeps/x86_64/fpu/multiarch/svml_d_cosf16_core.S: Renamed to
- ...
- * sysdeps/x86_64/fpu/multiarch/svml_d_cosf16_core-avx2.S: This.
- Don't include <sysdep.h> nor <init-arch.h>.
- (_ZGVeN16v_cosf): Removed.
- * sysdeps/x86_64/fpu/multiarch/svml_d_cosf4_core.S: Renamed to
- ...
- * sysdeps/x86_64/fpu/multiarch/svml_d_cosf4_core-sse2.S: This.
- Don't include <sysdep.h> nor <init-arch.h>.
- (_ZGVbN4v_cosf): Removed.
- * sysdeps/x86_64/fpu/multiarch/svml_d_cosf8_core.S: Renamed to
- ...
- * sysdeps/x86_64/fpu/multiarch/svml_d_cosf8_core-sse.S: This.
- Don't include <sysdep.h> nor <init-arch.h>.
- (_ZGVdN8v_cosf): Removed.
- * sysdeps/x86_64/fpu/multiarch/svml_d_expf16_core.S: Renamed to
- ...
- * sysdeps/x86_64/fpu/multiarch/svml_d_expf16_core-avx2.S: This.
- Don't include <sysdep.h> nor <init-arch.h>.
- (_ZGVeN16v_expf): Removed.
- * sysdeps/x86_64/fpu/multiarch/svml_d_expf4_core.S: Renamed to
- ...
- * sysdeps/x86_64/fpu/multiarch/svml_d_expf4_core-sse2.S: This.
- Don't include <sysdep.h> nor <init-arch.h>.
- (_ZGVbN4v_expf): Removed.
- * sysdeps/x86_64/fpu/multiarch/svml_d_expf8_core.S: Renamed to
- ...
- * sysdeps/x86_64/fpu/multiarch/svml_d_expf8_core-sse.S: This.
- Don't include <sysdep.h> nor <init-arch.h>.
- (_ZGVdN8v_expf): Removed.
- * sysdeps/x86_64/fpu/multiarch/svml_d_logf16_core.S: Renamed to
- ...
- * sysdeps/x86_64/fpu/multiarch/svml_d_logf16_core-avx2.S: This.
- Don't include <sysdep.h> nor <init-arch.h>.
- (_ZGVeN16v_logf): Removed.
- * sysdeps/x86_64/fpu/multiarch/svml_d_logf4_core.S: Renamed to
- ...
- * sysdeps/x86_64/fpu/multiarch/svml_d_logf4_core-sse2.S: This.
- Don't include <sysdep.h> nor <init-arch.h>.
- (_ZGVbN4v_logf): Removed.
- * sysdeps/x86_64/fpu/multiarch/svml_d_logf8_core.S: Renamed to
- ...
- * sysdeps/x86_64/fpu/multiarch/svml_d_logf8_core-sse.S: This.
- Don't include <sysdep.h> nor <init-arch.h>.
- (_ZGVdN8v_logf): Removed.
- * sysdeps/x86_64/fpu/multiarch/svml_d_powf16_core.S: Renamed to
- ...
- * sysdeps/x86_64/fpu/multiarch/svml_d_powf16_core-avx2.S: This.
- Don't include <sysdep.h> nor <init-arch.h>.
- (_ZGVeN16vv_powf): Removed.
- * sysdeps/x86_64/fpu/multiarch/svml_d_powf4_core.S: Renamed to
- ...
- * sysdeps/x86_64/fpu/multiarch/svml_d_powf4_core-sse2.S: This.
- Don't include <sysdep.h> nor <init-arch.h>.
- (_ZGVbN4vv_powf): Removed.
- * sysdeps/x86_64/fpu/multiarch/svml_d_powf8_core.S: Renamed to
- ...
- * sysdeps/x86_64/fpu/multiarch/svml_d_powf8_core-sse.S: This.
- Don't include <sysdep.h> nor <init-arch.h>.
- (_ZGVdN8vv_powf): Removed.
- * sysdeps/x86_64/fpu/multiarch/svml_d_sincosf16_core.S: Renamed to
- ...
- * sysdeps/x86_64/fpu/multiarch/svml_d_sincosf16_core-avx2.S: This.
- Don't include <sysdep.h> nor <init-arch.h>.
- (_ZGVeN16vvv_sincosf): Removed.
- * sysdeps/x86_64/fpu/multiarch/svml_d_sincosf4_core.S: Renamed to
- ...
- * sysdeps/x86_64/fpu/multiarch/svml_d_sincosf4_core-sse2.S: This.
- Don't include <sysdep.h> nor <init-arch.h>.
- (_ZGVbN4vvv_sincosf): Removed.
- * sysdeps/x86_64/fpu/multiarch/svml_d_sincosf8_core.S: Renamed to
- ...
- * sysdeps/x86_64/fpu/multiarch/svml_d_sincosf8_core-sse.S: This.
- Don't include <sysdep.h> nor <init-arch.h>.
- (_ZGVdN8vvv_sincosf): Removed.
- * sysdeps/x86_64/fpu/multiarch/svml_d_sinf16_core.S: Renamed to
- ...
- * sysdeps/x86_64/fpu/multiarch/svml_d_sinf16_core-avx2.S: This.
- Don't include <sysdep.h> nor <init-arch.h>.
- (_ZGVeN16v_sinf): Removed.
- * sysdeps/x86_64/fpu/multiarch/svml_d_sinf4_core.S: Renamed to
- ...
- * sysdeps/x86_64/fpu/multiarch/svml_d_sinf4_core-sse2.S: This.
- Don't include <sysdep.h> nor <init-arch.h>.
- (_ZGVbN4v_sinf): Removed.
- * sysdeps/x86_64/fpu/multiarch/svml_d_sinf8_core.S: Renamed to
- ...
- * sysdeps/x86_64/fpu/multiarch/svml_d_sinf8_core-sse.S: This.
- Don't include <sysdep.h> nor <init-arch.h>.
- (_ZGVdN8v_sinf): Removed.
-
-2017-08-04 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/x86_64/fpu/multiarch/Makefile (libm-sysdep_routines):
- Add s_ceil-sse4_1, s_ceilf-sse4_1, s_floor-sse4_1,
- s_floorf-sse4_1, s_nearbyint-sse4_1, s_nearbyintf-sse4_1,
- s_rint-sse4_1 and s_rintf-sse4_1.
- * sysdeps/x86_64/fpu/multiarch/ifunc-sse4_1.h: New file.
- * sysdeps/x86_64/fpu/multiarch/s_ceil.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/s_ceilf.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/s_floor.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/s_floorf.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/s_nearbyint.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/s_nearbyintf.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/s_rint.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/s_rintf.c: Likewise.
- * sysdeps/x86_64/fpu/multiarch/s_ceil.S: Renamed to ...
- * sysdeps/x86_64/fpu/multiarch/s_ceil-sse4_1.S: This. Don't
- include <machine/asm.h> nor <init-arch.h>. Include <sysdep.h>.
- (__ceil): Removed.
- * sysdeps/x86_64/fpu/multiarch/s_ceilf.S: Renamed to ...
- * sysdeps/x86_64/fpu/multiarch/s_ceilf-sse4_1.S: This. Don't
- include <machine/asm.h> nor <init-arch.h>. Include <sysdep.h>.
- (__ceilf): Removed.
- * sysdeps/x86_64/fpu/multiarch/s_floor.S: Renamed to ...
- * sysdeps/x86_64/fpu/multiarch/s_floor-sse4_1.S: This. Don't
- include <machine/asm.h> nor <init-arch.h>. Include <sysdep.h>.
- (__floor): Removed.
- * sysdeps/x86_64/fpu/multiarch/s_floorf.S: Renamed to ...
- * sysdeps/x86_64/fpu/multiarch/s_floorf-sse4_1.S: This. Don't
- include <machine/asm.h> nor <init-arch.h>. Include <sysdep.h>.
- (__floorf): Removed.
- * sysdeps/x86_64/fpu/multiarch/s_nearbyint.S: Renamed to ...
- * sysdeps/x86_64/fpu/multiarch/s_nearbyint-sse4_1.S: This. Don't
- include <machine/asm.h> nor <init-arch.h>. Include <sysdep.h>.
- (__nearbyint): Removed.
- * sysdeps/x86_64/fpu/multiarch/s_nearbyintf.S: Renamed to ...
- * sysdeps/x86_64/fpu/multiarch/s_nearbyintf-sse4_1.S: This. Don't
- include <machine/asm.h> nor <init-arch.h>. Include <sysdep.h>.
- (__nearbyintf): Removed.
- * sysdeps/x86_64/fpu/multiarch/s_rint.S: Renamed to ...
- * sysdeps/x86_64/fpu/multiarch/s_rint-sse4_1.S: This. Don't
- include <machine/asm.h> nor <init-arch.h>. Include <sysdep.h>.
- (__rint): Removed.
- * sysdeps/x86_64/fpu/multiarch/s_rintf.S: Renamed to ...
- * sysdeps/x86_64/fpu/multiarch/s_rintf-sse4_1.S: This. Don't
- include <machine/asm.h> nor <init-arch.h>. Include <sysdep.h>.
- (__rintf): Removed.
-
-2017-08-04 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/i386/start.S (_start): Check Check PIC instead of
- SHARED. Avoid dynamic relocation against main in static PIE.
-
-2017-08-04 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #21815]
- * elf/Makefile (CFLAGS-tst-prelink.c): New.
- (LDFLAGS-tst-prelink): Likewise.
-
-2017-08-04 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/unix/sysv/linux/i386/sysdep.h (I386_USE_SYSENTER):
- Define to I386_USE_SYSENTER to 0 or 1 if not defined.
- (ENTER_KERNEL): Check if I386_USE_SYSENTER is 1 and check PIC.
- (INTERNAL_SYSCALL_MAIN_INLINE): Likewise.
- (INTERNAL_SYSCALL_NCS): Likewise.
- (LOADARGS_1): Likewise.
- (LOADARGS_5): Likewise.
- (RESTOREARGS_1): Likewise.
- (RESTOREARGS_5): Likewise.
-
-2017-08-04 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/x86_64/memmove.S (MEMCPY_SYMBOL): Don't check SHARED.
- (MEMPCPY_SYMBOL): Likewise.
- * sysdeps/x86_64/multiarch/ifunc-impl-list.c
- (__libc_ifunc_impl_list): Test memcpy and mempcpy in libc.a.
- * sysdeps/x86_64/multiarch/memcpy-ssse3-back.S: Also include
- in libc.a.
- * sysdeps/x86_64/multiarch/memcpy-ssse3.S: Likewise.
- * sysdeps/x86_64/multiarch/memmove-avx512-no-vzeroupper.S:
- Likewise.
- * sysdeps/x86_64/multiarch/memcpy.c: Also include in libc.a.
- (__hidden_ver1): Don't use in libc.a.
- * sysdeps/x86_64/multiarch/memmove-sse2-unaligned-erms.S
- (__mempcpy): Don't create a weak alias in libc.a.
- * sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S: Support
- libc.a.
- * sysdeps/x86_64/multiarch/mempcpy.c: Also include in libc.a.
- (__hidden_ver1): Don't use in libc.a.
-
-2017-08-04 H.J. Lu <hongjiu.lu@intel.com>
-
- * config.make.in (have-insert): New.
- * configure.ac (libc_cv_insert): New. Set to yes if linker
- supports INSERT in linker script.
- (AC_SUBST(libc_cv_insert): New.
- * configure: Regenerated.
- * sysdeps/x86_64/Makefile (tests): Add tst-split-dynreloc only
- if $(have-insert) == yes.
-
-2017-08-04 H.J. Lu <hongjiu.lu@intel.com>
-
- * elf/Makefile (tests): Add vismain only if
- $(have-protected-data) == yes.
- (tests-pie): Likewise.
-
-2017-08-04 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #21871]
- * sysdeps/x86/cpu-features.c (init_cpu_features): Set
- bit_arch_Use_dl_runtime_resolve_opt only with AVX512F.
-
-2017-08-04 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #21790]
- * sysdeps/i386/i586/memset.S
- (__memset_zero_constant_len_parameter): Removed.
- * sysdeps/i386/i686/memset.S
- (__memset_zero_constant_len_parameter): Likewise.
- * sysdeps/i386/i686/multiarch/memset_chk.S
- (__memset_zero_constant_len_parameter): Likewise.
- * sysdeps/x86_64/memset.S (__memset_zero_constant_len_parameter):
- Likewise.
-
-2017-08-03 Aurelien Jarno <aurelien@aurel32.net>
-
- * stdlib/getentropy.c (getentropy): Change return type to int.
-
-2017-08-03 Aurelien Jarno <aurelien@aurel32.net>
-
- * sysdeps/i386/i686/fpu/multiarch/libm-test-ulps: Regenerated.
-
-2017-08-03 Joseph Myers <joseph@codesourcery.com>
-
- * math/s_nextafter.c (__nextafter): Use uintN_t instead of
- u_intN_t.
- * math/s_nexttowardf.c (__nexttowardf): Likewise.
- * sysdeps/generic/math_private.h (ieee_double_shape_type):
- Likewise.
- (ieee_float_shape_type): Likewise.
- * sysdeps/i386/fpu/s_fpclassifyl.c (__fpclassifyl): Likewise.
- * sysdeps/i386/fpu/s_isnanl.c (__isnanl): Likewise.
- * sysdeps/i386/fpu/s_nextafterl.c (__nextafterl): Likewise.
- * sysdeps/i386/fpu/s_nexttoward.c (__nexttoward): Likewise.
- * sysdeps/i386/fpu/s_nexttowardf.c (__nexttowardf): Likewise.
- * sysdeps/ieee754/dbl-64/e_acosh.c (__ieee754_acosh): Likewise.
- * sysdeps/ieee754/dbl-64/e_cosh.c (__ieee754_cosh): Likewise.
- * sysdeps/ieee754/dbl-64/e_fmod.c (__ieee754_fmod): Likewise.
- * sysdeps/ieee754/dbl-64/e_gamma_r.c (__ieee754_gamma_r):
- Likewise.
- * sysdeps/ieee754/dbl-64/e_hypot.c (__ieee754_hypot): Likewise.
- * sysdeps/ieee754/dbl-64/e_jn.c (__ieee754_jn): Likewise.
- (__ieee754_yn): Likewise.
- * sysdeps/ieee754/dbl-64/e_log10.c (__ieee754_log10): Likewise.
- * sysdeps/ieee754/dbl-64/e_log2.c (__ieee754_log2): Likewise.
- * sysdeps/ieee754/dbl-64/e_rem_pio2.c (__ieee754_rem_pio2):
- Likewise.
- * sysdeps/ieee754/dbl-64/e_sinh.c (__ieee754_sinh): Likewise.
- * sysdeps/ieee754/dbl-64/s_ceil.c (__ceil): Likewise.
- * sysdeps/ieee754/dbl-64/s_copysign.c (__copysign): Likewise.
- * sysdeps/ieee754/dbl-64/s_erf.c (__erf): Likewise.
- (__erfc): Likewise.
- * sysdeps/ieee754/dbl-64/s_expm1.c (__expm1): Likewise.
- * sysdeps/ieee754/dbl-64/s_finite.c (FINITE): Likewise.
- * sysdeps/ieee754/dbl-64/s_floor.c (__floor): Likewise.
- * sysdeps/ieee754/dbl-64/s_fpclassify.c (__fpclassify): Likewise.
- * sysdeps/ieee754/dbl-64/s_isnan.c (__isnan): Likewise.
- * sysdeps/ieee754/dbl-64/s_issignaling.c (__issignaling):
- Likewise.
- * sysdeps/ieee754/dbl-64/s_llrint.c (__llrint): Likewise.
- * sysdeps/ieee754/dbl-64/s_llround.c (__llround): Likewise.
- * sysdeps/ieee754/dbl-64/s_lrint.c (__lrint): Likewise.
- * sysdeps/ieee754/dbl-64/s_lround.c (__lround): Likewise.
- * sysdeps/ieee754/dbl-64/s_modf.c (__modf): Likewise.
- * sysdeps/ieee754/dbl-64/s_nextup.c (__nextup): Likewise.
- * sysdeps/ieee754/dbl-64/s_remquo.c (__remquo): Likewise.
- * sysdeps/ieee754/dbl-64/s_round.c (__round): Likewise.
- * sysdeps/ieee754/dbl-64/s_trunc.c (__trunc): Likewise.
- * sysdeps/ieee754/dbl-64/wordsize-64/s_issignaling.c
- (__issignaling): Likewise.
- * sysdeps/ieee754/flt-32/e_atan2f.c (__ieee754_atan2f): Likewise.
- * sysdeps/ieee754/flt-32/e_fmodf.c (__ieee754_fmodf): Likewise.
- * sysdeps/ieee754/flt-32/e_gammaf_r.c (__ieee754_gammaf_r):
- Likewise.
- * sysdeps/ieee754/flt-32/e_jnf.c (__ieee754_ynf): Likewise.
- * sysdeps/ieee754/flt-32/e_log10f.c (__ieee754_log10f): Likewise.
- * sysdeps/ieee754/flt-32/e_powf.c (__ieee754_powf): Likewise.
- * sysdeps/ieee754/flt-32/e_rem_pio2f.c (__ieee754_rem_pio2f):
- Likewise.
- * sysdeps/ieee754/flt-32/e_remainderf.c (__ieee754_remainderf):
- Likewise.
- * sysdeps/ieee754/flt-32/e_sqrtf.c (__ieee754_sqrtf): Likewise.
- * sysdeps/ieee754/flt-32/s_ceilf.c (__ceilf): Likewise.
- * sysdeps/ieee754/flt-32/s_copysignf.c (__copysignf): Likewise.
- * sysdeps/ieee754/flt-32/s_erff.c (__erff): Likewise.
- (__erfcf): Likewise.
- * sysdeps/ieee754/flt-32/s_expm1f.c (__expm1f): Likewise.
- * sysdeps/ieee754/flt-32/s_finitef.c (FINITEF): Likewise.
- * sysdeps/ieee754/flt-32/s_floorf.c (__floorf): Likewise.
- * sysdeps/ieee754/flt-32/s_fpclassifyf.c (__fpclassifyf):
- Likewise.
- * sysdeps/ieee754/flt-32/s_isnanf.c (__isnanf): Likewise.
- * sysdeps/ieee754/flt-32/s_issignalingf.c (__issignalingf):
- Likewise.
- * sysdeps/ieee754/flt-32/s_llrintf.c (__llrintf): Likewise.
- * sysdeps/ieee754/flt-32/s_llroundf.c (__llroundf): Likewise.
- * sysdeps/ieee754/flt-32/s_lrintf.c (__lrintf): Likewise.
- * sysdeps/ieee754/flt-32/s_lroundf.c (__lroundf): Likewise.
- * sysdeps/ieee754/flt-32/s_modff.c (__modff): Likewise.
- * sysdeps/ieee754/flt-32/s_remquof.c (__remquof): Likewise.
- * sysdeps/ieee754/flt-32/s_roundf.c (__roundf): Likewise.
- * sysdeps/ieee754/ldbl-128/e_acoshl.c (__ieee754_acoshl):
- Likewise.
- * sysdeps/ieee754/ldbl-128/e_atan2l.c (__ieee754_atan2l):
- Likewise.
- * sysdeps/ieee754/ldbl-128/e_atanhl.c (__ieee754_atanhl):
- Likewise.
- * sysdeps/ieee754/ldbl-128/e_fmodl.c (__ieee754_fmodl): Likewise.
- * sysdeps/ieee754/ldbl-128/e_gammal_r.c (__ieee754_gammal_r):
- Likewise.
- * sysdeps/ieee754/ldbl-128/e_hypotl.c (__ieee754_hypotl):
- Likewise.
- * sysdeps/ieee754/ldbl-128/e_jnl.c (__ieee754_jnl): Likewise.
- (__ieee754_ynl): Likewise.
- * sysdeps/ieee754/ldbl-128/e_powl.c (__ieee754_powl): Likewise.
- * sysdeps/ieee754/ldbl-128/e_rem_pio2l.c (__ieee754_rem_pio2l):
- Likewise.
- * sysdeps/ieee754/ldbl-128/e_remainderl.c (__ieee754_remainderl):
- Likewise.
- * sysdeps/ieee754/ldbl-128/e_sinhl.c (__ieee754_sinhl): Likewise.
- * sysdeps/ieee754/ldbl-128/k_cosl.c (__kernel_cosl): Likewise.
- * sysdeps/ieee754/ldbl-128/k_sincosl.c (__kernel_sincosl):
- Likewise.
- * sysdeps/ieee754/ldbl-128/k_sinl.c (__kernel_sinl): Likewise.
- * sysdeps/ieee754/ldbl-128/s_ceill.c (__ceill): Likewise.
- * sysdeps/ieee754/ldbl-128/s_copysignl.c (__copysignl): Likewise.
- * sysdeps/ieee754/ldbl-128/s_erfl.c (__erfcl): Likewise.
- * sysdeps/ieee754/ldbl-128/s_fabsl.c (__fabsl): Likewise.
- * sysdeps/ieee754/ldbl-128/s_finitel.c (__finitel): Likewise.
- * sysdeps/ieee754/ldbl-128/s_floorl.c (__floorl): Likewise.
- * sysdeps/ieee754/ldbl-128/s_fpclassifyl.c (__fpclassifyl):
- Likewise.
- * sysdeps/ieee754/ldbl-128/s_frexpl.c (__frexpl): Likewise.
- * sysdeps/ieee754/ldbl-128/s_isnanl.c (__isnanl): Likewise.
- * sysdeps/ieee754/ldbl-128/s_issignalingl.c (__issignalingl):
- Likewise.
- * sysdeps/ieee754/ldbl-128/s_llrintl.c (__llrintl): Likewise.
- * sysdeps/ieee754/ldbl-128/s_llroundl.c (__llroundl): Likewise.
- * sysdeps/ieee754/ldbl-128/s_lrintl.c (__lrintl): Likewise.
- * sysdeps/ieee754/ldbl-128/s_lroundl.c (__lroundl): Likewise.
- * sysdeps/ieee754/ldbl-128/s_modfl.c (__modfl): Likewise.
- * sysdeps/ieee754/ldbl-128/s_nearbyintl.c (__nearbyintl):
- Likewise.
- * sysdeps/ieee754/ldbl-128/s_nextafterl.c (__nextafterl):
- Likewise.
- * sysdeps/ieee754/ldbl-128/s_nexttoward.c (__nexttoward):
- Likewise.
- * sysdeps/ieee754/ldbl-128/s_nexttowardf.c (__nexttowardf):
- Likewise.
- * sysdeps/ieee754/ldbl-128/s_nextupl.c (__nextupl): Likewise.
- * sysdeps/ieee754/ldbl-128/s_remquol.c (__remquol): Likewise.
- * sysdeps/ieee754/ldbl-128/s_rintl.c (__rintl): Likewise.
- * sysdeps/ieee754/ldbl-128/s_roundl.c (__roundl): Likewise.
- * sysdeps/ieee754/ldbl-128/s_tanhl.c (__tanhl): Likewise.
- * sysdeps/ieee754/ldbl-128/s_truncl.c (__truncl): Likewise.
- * sysdeps/ieee754/ldbl-128ibm/e_fmodl.c (__ieee754_fmodl):
- Likewise.
- * sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c (__ieee754_gammal_r):
- Likewise.
- * sysdeps/ieee754/ldbl-128ibm/e_powl.c (__ieee754_powl): Likewise.
- * sysdeps/ieee754/ldbl-128ibm/e_rem_pio2l.c (__ieee754_rem_pio2l):
- Likewise.
- * sysdeps/ieee754/ldbl-128ibm/e_remainderl.c
- (__ieee754_remainderl): Likewise.
- * sysdeps/ieee754/ldbl-128ibm/k_cosl.c (__kernel_cosl): Likewise.
- * sysdeps/ieee754/ldbl-128ibm/k_sinl.c (__kernel_sinl): Likewise.
- * sysdeps/ieee754/ldbl-128ibm/s_fabsl.c (__fabsl): Likewise.
- * sysdeps/ieee754/ldbl-128ibm/s_fpclassifyl.c (___fpclassifyl):
- Likewise.
- * sysdeps/ieee754/ldbl-128ibm/s_modfl.c (__modfl): Likewise.
- * sysdeps/ieee754/ldbl-128ibm/s_nexttowardf.c (__nexttowardf):
- Likewise.
- * sysdeps/ieee754/ldbl-128ibm/s_remquol.c (__remquol): Likewise.
- * sysdeps/ieee754/ldbl-96/e_acoshl.c (__ieee754_acoshl): Likewise.
- * sysdeps/ieee754/ldbl-96/e_asinl.c (__ieee754_asinl): Likewise.
- * sysdeps/ieee754/ldbl-96/e_atanhl.c (__ieee754_atanhl): Likewise.
- * sysdeps/ieee754/ldbl-96/e_coshl.c (__ieee754_coshl): Likewise.
- * sysdeps/ieee754/ldbl-96/e_gammal_r.c (__ieee754_gammal_r):
- Likewise.
- * sysdeps/ieee754/ldbl-96/e_hypotl.c (__ieee754_hypotl): Likewise.
- * sysdeps/ieee754/ldbl-96/e_j0l.c (__ieee754_j0l): Likewise.
- (__ieee754_y0l): Likewise.
- (pzero): Likewise.
- (qzero): Likewise.
- * sysdeps/ieee754/ldbl-96/e_j1l.c (__ieee754_j1l): Likewise.
- (__ieee754_y1l): Likewise.
- (pone): Likewise.
- (qone): Likewise.
- * sysdeps/ieee754/ldbl-96/e_jnl.c (__ieee754_jnl): Likewise.
- (__ieee754_ynl): Likewise.
- * sysdeps/ieee754/ldbl-96/e_lgammal_r.c (sin_pi): Likewise.
- (__ieee754_lgammal_r): Likewise.
- * sysdeps/ieee754/ldbl-96/e_rem_pio2l.c (__ieee754_rem_pio2l):
- Likewise.
- * sysdeps/ieee754/ldbl-96/e_sinhl.c (__ieee754_sinhl): Likewise.
- * sysdeps/ieee754/ldbl-96/s_copysignl.c (__copysignl): Likewise.
- * sysdeps/ieee754/ldbl-96/s_erfl.c (__erfl): Likewise.
- (__erfcl): Likewise.
- * sysdeps/ieee754/ldbl-96/s_frexpl.c (__frexpl): Likewise.
- * sysdeps/ieee754/ldbl-96/s_issignalingl.c (__issignalingl):
- Likewise.
- * sysdeps/ieee754/ldbl-96/s_llrintl.c (__llrintl): Likewise.
- * sysdeps/ieee754/ldbl-96/s_llroundl.c (__llroundl): Likewise.
- * sysdeps/ieee754/ldbl-96/s_lrintl.c (__lrintl): Likewise.
- * sysdeps/ieee754/ldbl-96/s_lroundl.c (__lroundl): Likewise.
- * sysdeps/ieee754/ldbl-96/s_modfl.c (__modfl): Likewise.
- * sysdeps/ieee754/ldbl-96/s_nexttoward.c (__nexttoward): Likewise.
- * sysdeps/ieee754/ldbl-96/s_nexttowardf.c (__nexttowardf):
- Likewise.
- * sysdeps/ieee754/ldbl-96/s_nextupl.c (__nextupl): Likewise.
- * sysdeps/ieee754/ldbl-96/s_remquol.c (__remquol): Likewise.
- * sysdeps/ieee754/ldbl-96/s_roundl.c (__roundl): Likewise.
- * sysdeps/ieee754/ldbl-96/s_tanhl.c (__tanhl): Likewise.
- * sysdeps/ieee754/ldbl-opt/s_nexttowardfd.c (__nldbl_nexttowardf):
- Likewise.
- * sysdeps/m68k/m680x0/fpu/e_pow.c (s(__ieee754_pow)): Likewise.
- * sysdeps/m68k/m680x0/fpu/s_fpclassifyl.c (__fpclassifyl):
- Likewise.
- * sysdeps/m68k/m680x0/fpu/s_llrint.c (__llrint): Likewise.
- * sysdeps/m68k/m680x0/fpu/s_llrintf.c (__llrintf): Likewise.
- * sysdeps/m68k/m680x0/fpu/s_llrintl.c (__llrintl): Likewise.
- * sysdeps/m68k/m680x0/fpu/s_nextafterl.c (__nextafterl): Likewise.
- * sysdeps/x86/fpu/powl_helper.c (__powl_helper): Likewise.
-
-2017-08-03 Florian Weimer <fweimer@redhat.com>
-
- [BZ #21885]
- * sysdeps/posix/getaddrinfo.c (gethosts): Release resolver context
- on memory allocation failure.
-
-2017-08-03 Alan Modra <amodra@gmail.com>
-
- * sysdeps/powerpc/mod-tlsopt-powerpc.c: Extract from
- tst-tlsopt-powerpc.c with function name change and no test harness.
- * sysdeps/powerpc/tst-tlsopt-powerpc.c: Remove body of test.
- Call tls_get_addr_opt_test.
- * sysdeps/powerpc/Makefile (LDFLAGS-tst-tlsopt-powerpc): Don't define.
- (modules-names): Add mod-tlsopt-powerpc.
- (mod-tlsopt-powerpc.so-no-z-defs): Define.
- (tst-tlsopt-powerpc): Depend on .so.
- * sysdeps/powerpc/powerpc64/tls-macros.h (__TLS_GET_ADDR): Don't
- define. Expand use in TLS_GD and TLS_LD.
-
-2017-08-02 Samuel Thibault <samuel.thibault@ens-lyon.org>
-
- * sysdeps/mach/hurd/enbl-secure.c (__libc_init_secure): Define
- function.
- * sysdeps/posix/shm_open.c: Include <pthread.h>.
-
-2017-08-02 Joseph Myers <joseph@codesourcery.com>
-
- [BZ #21686]
- * math/tgmath.h (__TGMATH_BINARY_REAL_ONLY): Add arguments before
- comparing size with that of double.
- (__TGMATH_BINARY_REAL_STD_ONLY): Likewise.
- (__TGMATH_BINARY_REAL_RET_ONLY): Likewise.
- (__TGMATH_TERNARY_FIRST_SECOND_REAL_ONLY): Likewise.
- (__TGMATH_TERNARY_REAL_ONLY): Likewise.
- (__TGMATH_BINARY_REAL_IMAG): Likewise.
- * math/gen-tgmath-tests.py (Type.init_types): Create __int128 and
- unsigned __int128 types.
-
-2017-08-02 Steve Ellcey <sellcey@cavium.com>
-
- * localedata/Makefile (CFLAGS-tst_iswalnum.c, CFLAGS-tst_iswalpha.c
- CFLAGS-tst_iswcntrl.c, CFLAGS-tst_iswdigit.c, CFLAGS-tst_iswgraph.c,
- CFLAGS-tst_iswlower.c, CFLAGS-tst_iswprint.c, CFLAGS-tst_iswpunct.c,
- CFLAGS-tst_iswspace.c, CFLAGS-tst_iswupper.c, CFLAGS-tst_iswxdigit.c,
- CFLAGS-tst_towlower.c, CFLAGS-tst_towupper.c): Remove.
-
-2017-08-02 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/x86_64/start.S (_start): Check PIC instead of SHARED.
-
-2017-08-02 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysdeps/i386/i686/multiarch/memcmp-sse4.S: Check PIC instead
- of SHARED.
- * sysdeps/i386/i686/multiarch/memcpy-sse2-unaligned.S: Likewise.
- * sysdeps/i386/i686/multiarch/memcpy-ssse3-rep.S: Likewise.
- * sysdeps/i386/i686/multiarch/memcpy-ssse3.S: Likewise.
- * sysdeps/i386/i686/multiarch/memset-sse2-rep.S: Likewise.
- * sysdeps/i386/i686/multiarch/memset-sse2.S: Likewise.
- * sysdeps/i386/i686/multiarch/strcat-sse2.S: Likewise.
- * sysdeps/i386/i686/multiarch/strcpy-sse2.S: Likewise.
-
-2017-08-02 Joseph Myers <joseph@codesourcery.com>
-
- [BZ #21685]
- * math/tgmath.h (__tgmath_real_type): Use unary + on potentially
- bit-field expressions passed to sizeof or typeof.
- [__HAVE_FLOAT128 && __GLIBC_USE (IEC_60559_TYPES_EXT)]
- (__TGMATH_F128): Likewise.
- [__HAVE_FLOAT128 && __GLIBC_USE (IEC_60559_TYPES_EXT)]
- (__TGMATH_CF128): Likewise.
- (__TGMATH_UNARY_REAL_ONLY): Likewise.
- (__TGMATH_UNARY_REAL_RET_ONLY): Likewise.
- (__TGMATH_BINARY_FIRST_REAL_ONLY): Likewise.
- (__TGMATH_BINARY_FIRST_REAL_STD_ONLY): Likewise.
- (__TGMATH_BINARY_REAL_ONLY): Likewise.
- (__TGMATH_BINARY_REAL_STD_ONLY): Likewise.
- (__TGMATH_BINARY_REAL_RET_ONLY): Likewise.
- (__TGMATH_TERNARY_FIRST_SECOND_REAL_ONLY): Likewise.
- (__TGMATH_TERNARY_REAL_ONLY): Likewise.
- (__TGMATH_TERNARY_FIRST_REAL_RET_ONLY): Likewise.
- (__TGMATH_UNARY_REAL_IMAG): Likewise.
- (__TGMATH_UNARY_IMAG): Likewise.
- (__TGMATH_UNARY_REAL_IMAG_RET_REAL): Likewise.
- (__TGMATH_BINARY_REAL_IMAG): Likewise.
- * math/gen-tgmath-tests.py (Type.init_types): Create bit_field
- type.
- (define_vars_for_type): Handle bit_field type specially.
- (Tests.__init__): Declare structure with bit-field element.
-
-2017-08-02 H.J. Lu <hongjiu.lu@intel.com>
-
- [BZ #21791]
- * sysdeps/i386/i686/multiarch/memcpy-sse2-unaligned.S
- (MEMCPY_CHK): Define only if SHARED is defined.
- * sysdeps/i386/i686/multiarch/memcpy-ssse3-rep.S (MEMCPY_CHK):
- Likewise.
- * sysdeps/i386/i686/multiarch/memcpy-ssse3.S (MEMCPY_CHK):
- Likewise.
-
-See ChangeLog.18 for earlier changes.
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 <mitr@volny.cz> (PR libc/1601).
+ not exist. Patch by Miloslav TrmaÄ <mitr@volny.cz> (PR libc/1601).
* sysdeps/i386/fpu/s_nearbyint.S: Disable raising exception, not
- enable it. Patch by Miloslav Trmac <mitr@volny.cz> (PR libc/1600).
+ enable it. Patch by Miloslav TrmaÄ <mitr@volny.cz> (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 <mitr@volny.cz> (PR libc/1563).
+ Patch by Miloslav TrmaÄ <mitr@volny.cz> (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 <ralf@gnu.org>.
+ Bächle <ralf@gnu.org>.
* 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 <mitr@volny.cz>.
+ Patch by Miloslav TrmaÄ <mitr@volny.cz>.
* 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 Raúl Núñez de Arenas Coronado <dervishd@jazzfree.com>
+ Patch by Raúl Núñez de Arenas Coronado <dervishd@jazzfree.com>
* 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 <macro@ds2.pg.gda.pl> and
- Ralf Baechle <baechle@uni-koblenz.de>.
+ Ralf Bächle <baechle@uni-koblenz.de>.
* 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 <ralf@uni-koblenz.de>.
+ Patch by Ralf Bächle <ralf@uni-koblenz.de>.
1999-08-25 Ulrich Drepper <drepper@cygnus.com>
@@ -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 <aj@arthur.rhein-neckar.de>
* sysdeps/unix/mips/sysdep.h: Use __syscall_error.
* sysdeps/unix/mips/sysdep.S: Rewrite, don't declare errno here.
- Patches by Ralf Baechle <ralf@uni-koblenz.de>
+ Patches by Ralf Bächle <ralf@uni-koblenz.de>
1999-08-24 Andreas Jaeger <aj@arthur.rhein-neckar.de>
@@ -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 <ralf@uni-koblenz.de>
+ Patches by Ralf Bächle <ralf@uni-koblenz.de>
1999-08-21 Ulrich Drepper <drepper@cygnus.com>
@@ -7316,7 +7316,7 @@
1999-07-25 Andreas Jaeger <aj@arthur.rhein-neckar.de>
- * 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 <drepper@cygnus.com>
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 <ralf@gnu.org>.
+ Patch by Ralf Bächle <ralf@gnu.org>.
2000-10-21 Ulrich Drepper <drepper@redhat.com>
@@ -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 <schwidefsky@de.ibm.com>.
+ Patch by Martin Schwidefsky <schwidefsky@de.ibm.com>.
2000-10-20 Jakub Jelinek <jakub@redhat.com>
@@ -918,7 +918,7 @@
* string/string.h: Remove declaration of __strcasecmp and __strcasestr.
* include/string.h: Declare them here.
-2000-10-18 Ralf Baechle <ralf@gnu.org>
+2000-10-18 Ralf Bächle <ralf@gnu.org>
* sysdeps/unix/sysv/linux/mips/sys/syscall.h: Include <asm/unistd.h>.
@@ -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 <ralf@gnu.org>.
+ Patches by Ralf Bächle <ralf@gnu.org>.
2000-10-09 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
@@ -1347,7 +1347,7 @@
* sysdeps/sparc/sparc32/fpu/libm-test-ulps: New file.
-2000-10-02 Ralf Baechle <ralf@gnu.org>
+2000-10-02 Ralf Bächle <ralf@gnu.org>
* 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 <ralf@gnu.org>
+2000-10-01 Ralf Bächle <ralf@gnu.org>
* 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 <ralf@gnu.org>
+2000-09-30 Ralf Bächle <ralf@gnu.org>
* 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 <schwidefsky@de.ibm.com>
+2000-09-28 Martin Schwidefsky <schwidefsky@de.ibm.com>
* sysdeps/s390/atomicity.h: Fix compare_and_swap.
@@ -1733,7 +1733,7 @@
2000-09-28 Ulrich Drepper <drepper@redhat.com>
* manual/errno.texi: Correct error text for ENXIO.
- Reported by Jörg Schilling <schilling@fokus.gmd.de>.
+ Reported by Jörg Schilling <schilling@fokus.gmd.de>.
2000-09-27 Jes Sorensen <jes@linuxcare.com>
@@ -2216,7 +2216,7 @@
* intl/Versions: Add bind_textdomain_codeset.
-2000-09-16 Ralf Baechle <ralf@gnu.org>
+2000-09-16 Ralf Bächle <ralf@gnu.org>
* 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 <martin@loewis.home.cs.tu-berlin.de>.
+ Reported by Martin v. Löwis <martin@loewis.home.cs.tu-berlin.de>.
* 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 <ralf@gnu.org>
+2000-07-30 Ralf Bächle <ralf@gnu.org>
* 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 <baggins@sith.mimuw.edu.pl>.
+ Patch by Jan Rękorajski <baggins@sith.mimuw.edu.pl>.
* 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 <ralf@uni-koblenz.de>.
+ Patch by Ralf Bächle <ralf@uni-koblenz.de>.
* posix/fnmatch_loop.c (FCT): Only declare len if
!WIDE_CHAR_VERSION to silence GCC.
@@ -8201,7 +8201,7 @@
2000-06-18 Andreas Jaeger <aj@suse.de>
* sysdeps/mips/dl-machine.h: Always use $25 as jump register.
- Patch by Ralf Baechle <ralf@uni-koblenz.de>.
+ Patch by Ralf Bächle <ralf@uni-koblenz.de>.
2000-06-17 Ulrich Drepper <drepper@redhat.com>
@@ -8471,7 +8471,7 @@
2000-06-13 Andreas Jaeger <aj@suse.de>
* sysdeps/mips/elf/start.S (ENTRY_POINT): Remove mips64 defines.
- Patch by Ralf Baechle <ralf@gnu.org>.
+ Patch by Ralf Bächle <ralf@gnu.org>.
2000-06-13 Ulrich Drepper <drepper@redhat.com>
@@ -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 <jh@suse.cz>
+2000-05-11 Jan HubiÄka <jh@suse.cz>
* 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 <ralf@uni-koblenz.de>.
+ Patches by Ralf Bächle <ralf@uni-koblenz.de>.
* 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 <aj@suse.de>,
- Ralf Baechle <ralf@uni-koblenz.de>
+ Ralf Bächle <ralf@uni-koblenz.de>
* 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 <Padraig@linux.ie>.
+ Reported by Pádraig Brady <Padraig@linux.ie>.
2001-07-31 Andreas Jaeger <aj@suse.de>
@@ -2247,7 +2247,7 @@
* sysdeps/unix/sysv/linux/speed.c (cfsetispeed): Max speed is
B4000000.
(cfsetospeed): Likewise.
- Reported by Lukasz Trabinski <lukasz@lt.wsisiz.edu.pl>.
+ Reported by Åukasz TrÄ…biÅ„ski <lukasz@lt.wsisiz.edu.pl>.
2001-05-31 Joseph S. Myers <jsm28@cam.ac.uk>
@@ -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 <ralf@gnu.org>
+2001-04-29 Ralf Bächle <ralf@gnu.org>
* 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 <A.Breiler@gmx.net>.
+ Patch by André Breiler <A.Breiler@gmx.net>.
2001-02-27 Philip Blundell <pb@futuretv.com>
@@ -9884,7 +9884,7 @@
* manual/startup.texi (Program Arguments): Fix type of main's envp
parameter.
- Reported by Raúl Núñez de Arenas Coronado <dervishd@linuxfreak.com>.
+ Reported by Raúl Núñez de Arenas Coronado <dervishd@linuxfreak.com>.
* 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 <ralf@gnu.org>
+2001-10-15 Ralf Bächle <ralf@gnu.org>
* 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 <drepper@redhat.com>
@@ -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 Möller,
+ (__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 <sjmunroe@us.ibm.com>.
-2003-03-11 Ralf Baechle <ralf@linux-mips.org>
+2003-03-11 Ralf Bächle <ralf@linux-mips.org>
* 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 Günther <agx@sigxcpu.org>
+2003-01-10 Guido Günther <agx@sigxcpu.org>
* 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 <mitr@volny.cz> [PR libc/4766].
+ Reported by Miloslav TrmaÄ <mitr@volny.cz> [PR libc/4766].
* manual/examples/dir.c: Don't include <stddef.h>.
* manual/examples/select.c: Include <errno.h> for TEMP_FAILURE_RETRY.
- Reported by Frédéric Delanoy <delanoy_f@yahoo.com>.
+ Reported by Frédéric Delanoy <delanoy_f@yahoo.com>.
2002-11-02 H.J. Lu <hjl@gnu.org>
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 <j@bitron.ch>
+2004-10-03 Jürg Billeter <j@bitron.ch>
* 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 <meyering@redhat.com>
@@ -5048,7 +5048,7 @@ d2009-10-30 Ulrich Drepper <drepper@redhat.com>
* posix/Makefile (getconf.speclist): Also collect SUSv5 and SUSv7
environments.
-2009-01-16 Petr Baudis <pasky@suse.cz>
+2009-01-16 Petr Baudiš <pasky@suse.cz>
[BZ #9753]
* resolv/res_libc.c (__res_maybe_init): Call __res_vinit()
@@ -5357,7 +5357,7 @@ d2009-10-30 Ulrich Drepper <drepper@redhat.com>
re_string_skip_chars, re_string_reconstruct): Likewise.
* posix/regex_internal.h [!_LIBC] (__mbrtowc): New #define.
-2008-12-31 Rafael Avila de Espindola <espindola@google.com>
+2008-12-31 Rafael Ãvila de Espíndola <espindola@google.com>
* 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 <drepper@redhat.com>
* inet/Makefile (tests): Add tst-getni1.
* inet/tst-getni1.c: New file.
-2008-12-03 Petr Baudis <pasky@suse.cz>
+2008-12-03 Petr Baudiš <pasky@suse.cz>
[BZ #7067]
* nscd/connections.c (invalidate_cache): Use prune_run_lock
@@ -6487,7 +6487,7 @@ d2009-10-30 Ulrich Drepper <drepper@redhat.com>
[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 <drepper@redhat.com>
@@ -6542,7 +6542,7 @@ d2009-10-30 Ulrich Drepper <drepper@redhat.com>
[BZ #6612]
* time/strftime.c (__strftime_internal): Call tzset() only
when printing timezone-dependent values.
- Based on a patch by Petr Baudis <pasky@suse.cz>.
+ Based on a patch by Petr Baudiš <pasky@suse.cz>.
* 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 <drepper@redhat.com>
* 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 <pasky@suse.cz>.
+ Partially based on a patch by Petr Baudiš <pasky@suse.cz>.
* 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 <drepper@redhat.com>
* 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 <pasky@suse.cz>.
+ Partially based on a patch by Petr Baudiš <pasky@suse.cz>.
* locale/programs/ld-collate.c (collate_read): Fix loop to match
macro name.
@@ -9789,7 +9789,7 @@ d2009-10-30 Ulrich Drepper <drepper@redhat.com>
[BZ #4946]
* nscd/connections.c (handle_request): Using sendfile always
requires that mmap is used for the database.
- Patch by Petr Baudis <pasky@suse.cz>.
+ Patch by Petr Baudiš <pasky@suse.cz>.
[BZ #4905]
* nscd/hstcache.c (cache_addhst): When reloading an entry which
@@ -10987,7 +10987,7 @@ d2009-10-30 Ulrich Drepper <drepper@redhat.com>
determining whether there are IPv4/IPv6 addresses, ignore loopback
addresses.
-2007-06-14 Uros Bizjak <ubizjak@gmail.com>
+2007-06-14 Uroš Bizjak <ubizjak@gmail.com>
* 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 <drepper@redhat.com>
with setting the sticky bit.
* math/test-misc.c (main): Add more truncation tests.
-2007-04-14 Uros Bizjak <ubizjak@gmail.com>
+2007-04-14 Uroš Bizjak <ubizjak@gmail.com>
* soft-fp/floatunsidf.c (__floatunsidf): Use DFtype instead of
double in the function declaration.
@@ -11658,7 +11658,7 @@ d2009-10-30 Ulrich Drepper <drepper@redhat.com>
* soft-fp/op-4.h (_FP_FRAC_COPY_2_2): Define as alias to
_FP_FRAC_COPY_4.
-2007-04-16 Uros Bizjak <ubizjak@gmail.com>
+2007-04-16 Uroš Bizjak <ubizjak@gmail.com>
Jakub Jelinek <jakub@redhat.com>
* soft-fp/op-common.h (FP_EXTEND): Do not abort when
@@ -12914,7 +12914,7 @@ d2009-10-30 Ulrich Drepper <drepper@redhat.com>
* io/fts.c: Make sure fts_cur is always valid after return from
fts_read.
- Patch by Miloslav Trmac <mitr@redhat.com>.
+ Patch by Miloslav TrmaÄ <mitr@redhat.com>.
2006-10-27 Richard Sandiford <richard@codesourcery.com>
@@ -13800,7 +13800,7 @@ d2009-10-30 Ulrich Drepper <drepper@redhat.com>
* po/pl.po: Update from translation team.
* nscd/nscd.c (main): Fix typo in message.
- Patch by Jakub Bogsz <qboosh@pld-linux.org>.
+ Patch by Jakub Bogusz <qboosh@pld-linux.org>.
2006-10-02 Jakub Jelinek <jakub@redhat.com>
@@ -13858,7 +13858,7 @@ d2009-10-30 Ulrich Drepper <drepper@redhat.com>
[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 <jakub@redhat.com>
diff --git a/ChangeLog.old/ChangeLog.18 b/ChangeLog.old/ChangeLog.18
index b0c91453ae..76e2e2b0d6 100644
--- a/ChangeLog.old/ChangeLog.18
+++ b/ChangeLog.old/ChangeLog.18
@@ -2108,6 +2108,7 @@
2017-06-20 Zack Weinberg <zackw@panix.com>
+ [BZ #2489]
* bits/signum-generic.h: Renamed from bits/signum.h.
Add proper multiple include guard and misuse check.
Define __SIGRTMIN = __SIGRTMAX = 32, and define _NSIG = __SIGRTMAX+1.
@@ -6270,7 +6271,7 @@
* scripts/build-many-glibcs.py (Context.checkout): Default gcc
version to 7 branch.
-2017-04-25 Uros Bizjak <ubizjak@gmail.com>
+2017-04-25 Uroš Bizjak <ubizjak@gmail.com>
* sysdeps/alpha/fpu/math_private.h (__ieee754_sqrt): Add
earlyclobber to output operand of sqrt insn.
@@ -14295,6 +14296,7 @@
2016-11-24 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+ [BZ #651]
* sysdeps/nptl/fork.c (__libc_fork): Remove pid cache setting.
* nptl/allocatestack.c (allocate_stack): Likewise.
(__reclaim_stacks): Likewise.
@@ -15921,7 +15923,7 @@
* math/libm-test.inc (totalorder_test_data): Add more tests.
-2016-10-12 Adhemerval Zanela <adhemerval.zanella@linaro.org>
+2016-10-12 Adhemerval Zanella <adhemerval.zanella@linaro.org>
* sysdeps/unix/sysv/linux/mips/mips64/n64/posix_fadvise64.c:
Undefine weak_alias and add a comment why mips64 require
@@ -20366,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 <adhemerval.zanella@linaro.org>
+2016-06-10 Adhemerval Zanella <adhemerval.zanella@linaro.org>
* conform/data/sys/socket.h-data (msghdr.msg_iovlen): Add xfail-.
(msghdr.msg_controllen): Likewise.
@@ -24838,7 +24840,7 @@
* sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Move
__sqrtl_finite to GLIBC_2.23
-2016-01-25 Ricchard Henderson <rth@redhat.com>
+2016-01-25 Richard Henderson <rth@redhat.com>
* sysdeps/alpha/fpu/libm-test-ulps: Update.
@@ -33527,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 <neleai@seznam.cz>
+2015-08-10 Ondřej Bílka <neleai@seznam.cz>
* sysdeps/powerpc/powerpc64/multiarch/stpcpy.c: Fix ifunc.
@@ -39108,7 +39110,7 @@
[BZ #18043]
* posix/wordexp.c (parse_param): Don't call setenv(..., NULL, 1).
-2015-03-11 Adhemerval Zanellla <azanella@linux.vnet.ibm.com>
+2015-03-11 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
* config.h.in [HAVE_ASM_GLOBAL_DOT_NAME]: Remove define.
* include/libc-symbols.h [HAVE_ASM_GLOBAL_DOT_NAME] (strong_alias):
@@ -39395,7 +39397,7 @@
* string/strings.h (__CORRECT_ISO_CPP_STRINGS_H_PROTO):
Likewise.
-2015-03-03 Adhemerval Zanellla <azanella@linux.vnet.ibm.com>
+2015-03-03 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
[BZ #17776]
* sysdeps/powerpc/bits/fenvinline.h (feraiseexcept): Convert input to
@@ -40168,7 +40170,7 @@
* sysdeps/i386/i686/multiarch/mempcpy_chk.S: Fix position of
jump label.
-2015-02-09 Adhemerval Zanellla <azanella@linux.vnet.ibm.com>
+2015-02-09 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
* sysdeps/powerpc/powerpc32/configure.ac: Remove R_PPC_REL16 check.
* sysdeps/powerpc/powerpc32/configure: Regenerated.
@@ -40606,7 +40608,7 @@
* sysdeps/mips/bits/atomic.h [_MIPS_SIM == _ABIN32]
(__HAVE_64B_ATOMICS): Define to 0.
-2015-01-28 Adhemerval Zanellla <azanella@linux.vnet.ibm.com>
+2015-01-28 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
[BZ #17885]
* sysdeps/powerpc/fpu/fsetexcptflg.c (__fesetexceptflag): Fix correct
@@ -40655,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 <azanella@linux.vnet.ibm.com>
+2015-01-24 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
[BZ #17869]
* sysdeps/powerpc/powerpc64/power8/memset.S: Use power7 instead of
@@ -51439,7 +51441,7 @@
* manual/resource.texi (How to get information about the memory
subsystem?): Fix typo.
- Reported by Peon de la Parra Ivan <peon@keba.com>
+ Reported by Ivan Peon de la Parra <peon@keba.com>
2014-06-03 Guo Yixuan <culu.gyx@gmail.com>
@@ -58131,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.
@@ -61218,7 +61220,7 @@
* malloc/malloc.c (__libc_calloc): Make memset a tail call.
-2013-11-26 Uros Bizjak <ubizjak@gmail.com>
+2013-11-26 Uroš Bizjak <ubizjak@gmail.com>
* soft-fp/op-4.h (_FP_FRAC_ASSEMBLE_4): Check rsize against
_FP_W_TYPE_SIZE to avoid "left shift count >= width of type"
@@ -64632,8 +64634,8 @@
2013-08-01 David S. Miller <davem@davemloft.net>
* 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 <davem@davemloft.net>
@@ -68986,7 +68988,7 @@
2013-04-10 Siddhesh Poyarekar <siddhesh@redhat.com>
Roland McGrath <roland@hack.frob.com>
- Ondrej Bilka <neleai@seznam.cz>
+ Ondřej Bílka <neleai@seznam.cz>
[BZ #15346]
* time/getdate.c: Include ctype.h and alloca.h.
@@ -69561,7 +69563,7 @@
on argument names, not just descriptions.
* iconv/iconvconfig.c (options): Likewise.
-2013-03-18 Ondrej Bilka <neleai@seznam.cz>
+2013-03-18 Ondřej Bílka <neleai@seznam.cz>
* sysdeps/x86_64/strlen.S: Replace with new SSE2 based
implementation which is faster on all x86_64 architectures.
@@ -69770,7 +69772,7 @@
* sysdeps/unix/sysv/linux/times.c (__times): Fix formatting.
-2013-03-14 Petr Baudis <pasky@ucw.cz>
+2013-03-14 Petr Baudiš <pasky@ucw.cz>
* sysdeps/unix/sysv/linux/times.c (__times): On EFAULT, test
for non-NULL pointer before the memory validity test. Pointed
@@ -79025,6 +79027,7 @@
2012-08-01 Florian Weimer <fweimer@redhat.com>
+ [BZ #2705]
* posix/unistd.h (setuid, setreuid, seteuid, setresuid):
Declare with warn_unused_result.
(setgid, setregid, setegid, setresgid): Likewise.
@@ -83500,7 +83503,7 @@
* config.h.in: Add HAVE_ARM_PCS_VFP.
-2012-05-08 Roland Mc Grath <roland@hack.frob.com>
+2012-05-08 Roland McGrath <roland@hack.frob.com>
[BZ #13979]
* include/features.h: Warn if user requests __FORTIFY_SOURCE
@@ -85137,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 <pasky@ucw.cz>
+2012-04-17 Petr Baudiš <pasky@ucw.cz>
* include/sys/uio.h: Change __vector to __iovec to avoid clash
with altivec.
@@ -85185,7 +85188,7 @@
[BZ #2074]
* libio/libio.h (__io_write_fn): Update comment.
-2012-04-12 Petr Baudis <pasky@ucw.cz>
+2012-04-12 Petr Baudiš <pasky@ucw.cz>
[BZ #2074]
* stdio.texi (Hook Functions): The user provided writer function
@@ -92405,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 <pasky@suse.cz>
+2010-05-12 Petr Baudiš <pasky@suse.cz>
[BZ #11589]
* sysdeps/ieee754/dbl-64/e_jn.c: Compensate major precision loss
@@ -94472,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 <pasky@suse.cz>
+2011-05-07 Petr Baudiš <pasky@suse.cz>
Ulrich Drepper <drepper@gmail.com>
[BZ #12393]
@@ -94981,7 +94984,7 @@
Hurd needs munmap.
* sysdeps/mach/hurd/ifreq.h: New file.
-2011-01-27 Petr Baudis <pasky@suse.cz>
+2011-01-27 Petr Baudiš <pasky@suse.cz>
Ulrich Drepper <drepper@gmail.com>
[BZ 12445]#
@@ -95429,7 +95432,7 @@
* sysdeps/ieee754/ldbl-128/s_fmal.c (__fmal): Fix up inline asm.
-2010-05-31 Petr Baudis <pasky@suse.cz>
+2010-05-31 Petr Baudiš <pasky@suse.cz>
[BZ #11149]
* elf/ldconfig.c (main): Allow aux_cache_file open()ing to fail
@@ -95440,7 +95443,7 @@
* nis/nss_compat/compat-initgroups.c (internal_getgrent_r): Optimize
last patch a bit. Pretty printing
-2010-05-31 Petr Baudis <pasky@suse.cz>
+2010-05-31 Petr Baudiš <pasky@suse.cz>
[BZ #10085]
* nis/nss_compat/compat-initgroups.c (internal_getgrent_r): Fix
@@ -95818,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 <pasky@suse.cz>
+2010-09-24 Petr Baudiš <pasky@suse.cz>
* debug/stack_chk_fail_local.c: Add missing licence exception.
* debug/warning-nop.c: Likewise.
@@ -96048,7 +96051,7 @@
* configure.in: Move assembler checks to before sysdep dir checking.
-2010-08-20 Petr Baudis <pasky@suse.cz>
+2010-08-20 Petr Baudiš <pasky@suse.cz>
* LICENSES: Sync the sunrpc license.
diff --git a/ChangeLog.old/ChangeLog.19 b/ChangeLog.old/ChangeLog.19
new file mode 100644
index 0000000000..84d56ed5e8
--- /dev/null
+++ b/ChangeLog.old/ChangeLog.19
@@ -0,0 +1,39254 @@
+2019-10-11 Florian Weimer <fweimer@redhat.com>
+
+ * manual/startup.texi (Aborting a Program): Remove warning.
+
+2019-10-10 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ [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 <schwab@suse.de>
+
+ * elf/dl-load.c (open_verify): Remove dead code.
+
+2019-10-10 Dmitry V. Levin <ldv@altlinux.org>
+
+ * sysdeps/unix/sysv/linux/syscall-names.list: Fix typos in comment,
+ reformat the affected paragraph.
+
+2019-10-10 Åukasz Majewski <lukma@denx.de>
+
+ * 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 <adhemerval.zanella@linaro.org>
+
+ * 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 <fweimer@redhat.com>
+
+ * 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 <pvorel@suse.cz>
+
+ * include/dirent.h (__getdents64): Update comment.
+
+2019-10-08 Gabriel F. T. Gomes <gabrielftg@linux.ibm.com>
+
+ * 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 <fweimer@redhat.com>
+
+ * posix/tst-wordexp-nocmd.c (do_test): Fix diagnostics output.
+
+2019-10-08 Florian Weimer <fweimer@redhat.com>
+
+ * 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 <fweimer@redhat.com>
+
+ 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 <fweimer@redhat.com>
+
+ 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 <fweimer@redhat.com>
+
+ 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 <fweimer@redhat.com>
+
+ [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 <fweimer@redhat.com>
+
+ [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 <fweimer@redhat.com>
+
+ 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 <joseph@codesourcery.com>
+
+ * sunrpc/clnt_udp.c: Include <libc-diag.h>.
+ (clntudp_call): Disable -Wmaybe-uninitialized around declaration
+ of total_deadline.
+
+2019-10-02 Alistair Francis <alistair.francis@wdc.com>
+
+ * string/endian.h: Restore the __USE_MISC conditionals.
+
+2019-10-02 Joseph Myers <joseph@codesourcery.com>
+
+ * 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 <lukma@denx.de>
+
+ * include/time.h: Add #include <bits/types/struct_timeval.h>
+
+2019-10-02 Paul A. Clarke <pc@us.ibm.com>
+
+ * 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 <arjun@redhat.com>
+
+ debugglibc.sh: Implement program arguments
+ * Makefile (debugglibc): Change variable definition.
+
+2019-10-01 Alistair Francis <alistair.francis@wdc.com>
+
+ * time/bits/types/struct_timespec.h: Add padding for the timespec if
+ required.
+
+2019-10-01 Zack Weinberg <zackw@panix.com>
+ Alistair Francis <alistair.francis@wdc.com>
+
+ * 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 <mfabian@redhat.com>
+
+ * 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 <joseph@codesourcery.com>
+
+ * scripts/build-many-glibcs.py (Context.checkout): Default
+ binutils version to 2.33 branch.
+
+2019-10-01 Lukasz Majewski <lukma@denx.de>
+
+ * 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 <joseph@codesourcery.com>
+
+ * 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 <pc@us.ibm.com>
+
+ * 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 <pc@us.ibm.com>
+
+ * sysdeps/powerpc/fpu/fenv_private.h
+ (libc_feholdsetround_noex_ppc_ctx): Call fesetenv_mode instead
+ of fesetenv_register.
+
+2019-09-27 Paul A. Clarke <pc@us.ibm.com>
+
+ * 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 <pc@us.ibm.com>
+
+ * sysdeps/powerpc/fpu/fenv_libc.h (__fesetround_inline): Use
+ 'mffscrn' instruction on POWER9.
+ (__fesetround_inline_nocheck): Likewise.
+
+2019-09-27 Paul A. Clarke <pc@us.ibm.com>
+
+ * 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 <pc@us.ibm.com>
+
+ * 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 <joseph@codesourcery.com>
+
+ * sysdeps/gnu/netinet/tcp.h (TCP_TX_DELAY): New macro.
+
+2019-09-26 Lukasz Majewski <lukma@denx.de>
+
+ * include/time.h: Add struct __timespec64 definition
+
+2019-09-26 Siddhesh Poyarekar <siddhesh@gotplt.org>
+
+ * scripts/vcs_to_changelog/misc_util.py (decode): Remove latin1
+ from codecs.
+
+2019-09-25 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * 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 <alistair.francis@wdc.com>
+
+ * inet/net-internal.h: Fix uninitalised clntudp_call() variable.
+
+2019-09-24 Andreas Schwab <schwab@suse.de>
+
+ * 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 <pc@us.ibm.com>
+
+ * 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 <stli@linux.ibm.com>
+
+ * support/support_ptrace.c: Remove inclusion of sys/prctl.h.
+
+2019-09-19 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/hp-timing.h (_HP_TIMING_H): Undefine.
+ (_HP_TIMING_S390_H): Define.
+
+2019-09-18 Joseph Myers <joseph@codesourcery.com>
+
+ * 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 <stli@linux.ibm.com>
+
+ * sysdeps/s390/hp-timing.h: New file.
+
+2019-09-18 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/riscv/vfork.S: Do not include
+ <linux/sched.h>.
+ (CLONE_VM): New macro.
+ (CLONE_VFORK): Likewise.
+
+2019-09-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * 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 <adhemerval.zanella@linaro.org>
+
+ * 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 <cltang@codesourcery.com>
+
+ * sysdeps/generic/hp-timing-common.h (HP_TIMING_PRINT): Correct
+ position of string null termination.
+
+2019-09-14 Aurelien Jarno <aurelien@aurel32.net>
+
+ [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 <eggert@cs.ucla.edu>
+
+ 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 <fweimer@redhat.com>
+
+ [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 <gabrielftg@linux.ibm.com>
+
+ * math/bits/mathcalls.h (totalorder, totalordermag): Replace
+ const attribute with pure attribute.
+
+2019-09-04 Lukasz Majewski <lukma@denx.de>
+
+ * sysdeps/unix/sysv/linux/kernel-features.h
+ (__ASSUME_TIME64_SYSCALLS): New macro.
+
+2019-09-04 Zack Weinberg <zackw@panix.com>
+
+ [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 <aurelien@aurel32.net>
+
+ * sysdeps/alpha/fpu/libm-test-ulps: Regenerated using GCC 9.2.
+
+2019-09-03 Florian Weimer <fweimer@redhat.com>
+
+ [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 <fweimer@redhat.com>
+
+ * misc/tst-mntent-autofs.c: New file.
+ * misc/Makefile (tests): Add misc/tst-mntent-autofs.
+
+2019-09-02 Ian Kent <ikent@redhat.com>
+
+ 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 <wdijkstr@arm.com>
+
+ * 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 <fweimer@redhat.com>
+
+ 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 <samuel.thibault@ens-lyon.org>
+
+ * 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 <rbraun@sceen.net>
+
+ * 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 <sys/time.h>, <hurd/io_request.h> and
+ <limits.h>.
+ (_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 <mihailo.stojanovic@rt-rk.com>
+
+ * 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 <adhemerval.zanella@linaro.org>
+
+ * 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 <eggert@cs.ucla.edu>
+
+ 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 <pc@us.ibm.com>
+
+ * sysdeps/powerpc/fpu/fenv_libc.h (fegetenv_status_ISA300): Delete.
+ (fegetenv_status): Generate 'mffsl' unconditionally.
+
+2019-08-28 Paul A. Clarke <pc@us.ibm.com>
+
+ * sysdeps/powerpc/fpu/fesetenv.c (__fesetenv): Utilize lightweight
+ FPSCR read.
+ (_FPU_MASK_ALL): Delete.
+
+2019-08-28 Paul A. Clarke <pc@us.ibm.com>
+
+ * 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 <pc@us.ibm.com>
+
+ * 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 <pc@us.ibm.com>
+
+ * 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 <fweimer@redhat.com>
+
+ * 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 <fweimer@redhat.com>
+
+ 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 <fweimer@redhat.com>
+
+ [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 <stli@linux.ibm.com>
+
+ * posix/tst-regex.c (do_test): Use tst-regex.input as input file.
+ * posix/tst-regex.input: New file.
+
+2019-08-23 Mihailo Stojanovic <mihailo.stojanovic@rt-rk.com>
+
+ [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 <dmladjenovic@wavecomp.com>
+
+ * 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 <adhemerval.zanella@linaro.org>
+ Florian Weimer <fweimer@redhat.com>
+
+ * 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 <adhemerval.zanella@linaro.org>
+
+ * sysdeps/generic/single-thread.h (RTLD_SINGLE_THREAD_P): Add
+ definition.
+
+2019-08-23 Rafał Lużyński <digitalfreak@lingonborough.com>
+
+ [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 <gromero@linux.vnet.ibm.com>
+
+ * sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h: Fix typos and
+ field name in mcontext_t struct.
+
+2019-08-22 Joseph Myers <joseph@codesourcery.com>
+
+ * 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 <eggert@cs.ucla.edu>
+
+ 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 <zackw@panix.com>
+
+ * 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 <joseph@codesourcery.com>
+
+ * 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 <schwab@suse.de>
+
+ * sysdeps/i386/fpu/libm-test-ulps: Update.
+
+2019-08-19 Carlos O'Donell <carlos@redhat.com>
+
+ * nscd/nscd.conf: Add warning and comment about shared option.
+
+2019-08-19 Carlos O'Donell <carlos@redhat.com>
+
+ * 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 <fweimer@redhat.com>
+
+ 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 <fweimer@redhat.com>
+
+ 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 <joseph@codesourcery.com>
+
+ * 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 <fweimer@redhat.com>
+
+ 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 <fweimer@redhat.com>
+
+ [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 <joseph@codesourcery.com>
+
+ * 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 <shlib-compat.h>
+ and <first-versions.h>.
+ (__totalorder): Take pointer arguments. Add symbol versions and
+ compat symbols.
+ * sysdeps/ieee754/dbl-64/s_totalordermag.c: Include
+ <shlib-compat.h> and <first-versions.h>.
+ (__totalordermag): Take pointer arguments. Add symbol versions
+ and compat symbols.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_totalorder.c: Include
+ <shlib-compat.h> and <first-versions.h>.
+ (__totalorder): Take pointer arguments. Add symbol versions and
+ compat symbols.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_totalordermag.c: Include
+ <shlib-compat.h> and <first-versions.h>.
+ (__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 <shlib-compat.h>
+ and <first-versions.h>.
+ (__totalorderf): Take pointer arguments. Add symbol versions and
+ compat symbols.
+ * sysdeps/ieee754/flt-32/s_totalordermagf.c: Include
+ <shlib-compat.h> and <first-versions.h>.
+ (__totalordermagf): Take pointer arguments. Add symbol versions
+ and compat symbols.
+ * sysdeps/ieee754/ldbl-128/s_totalorderl.c: Include
+ <shlib-compat.h> and <first-versions.h>.
+ (__totalorderl): Take pointer arguments. Add symbol versions and
+ compat symbols.
+ * sysdeps/ieee754/ldbl-128/s_totalordermagl.c: Include
+ <shlib-compat.h> and <first-versions.h>.
+ (__totalordermagl): Take pointer arguments. Add symbol versions
+ and compat symbols.
+ * sysdeps/ieee754/ldbl-128ibm/s_totalorderl.c: Include
+ <shlib-compat.h>.
+ (__totalorderl): Take pointer arguments. Add symbol versions and
+ compat symbols.
+ * sysdeps/ieee754/ldbl-128ibm/s_totalordermagl.c: Include
+ <shlib-compat.h>.
+ (__totalordermagl): Take pointer arguments. Add symbol versions
+ and compat symbols.
+ * sysdeps/ieee754/ldbl-96/s_totalorderl.c: Include
+ <shlib-compat.h> and <first-versions.h>.
+ (__totalorderl): Take pointer arguments. Add symbol versions and
+ compat symbols.
+ * sysdeps/ieee754/ldbl-96/s_totalordermagl.c: Include
+ <shlib-compat.h> and <first-versions.h>.
+ (__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 <fweimer@redhat.com>
+
+ [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 <fweimer@redhat.com>
+
+ [BZ #24880]
+ * login/utmp_file.c (file_locking_failed): Use struct flock64.
+ (file_locking_unlock): Likewise.
+
+2019-08-15 Florian Weimer <fweimer@redhat.com>
+
+ [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 <fweimer@redhat.com>
+
+ 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 <fweimer@redhat.com>
+
+ 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 <schwab@suse.de>
+
+ * sysdeps/i386/fpu/libm-test-ulps: Update.
+
+2019-08-15 Florian Weimer <fweimer@redhat.com>
+
+ * 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 <fweimer@redhat.com>
+
+ * 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 <fweimer@redhat.com>
+
+ 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 <fweimer@redhat.com>
+
+ * support/support_descriptors.c: Include <support/descriptors.h>.
+
+2019-08-14 Feng Xue <fxue@os.amperecomputing.com>
+
+ * 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 <joseph@codesourcery.com>
+
+ * 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 <fweimer@redhat.com>
+
+ * 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 <joseph@codesourcery.com>
+
+ * 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 <fweimer@redhat.com>
+
+ * 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 <fweimer@redhat.com>
+
+ * 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 <assert.h>.
+ (do_test): Open the executable using an absolute path. Print
+ error message to standard output.
+
+2019-08-09 DJ Delorie <dj@redhat.com>
+
+ * 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 <mail@nh2.me>
+ Carlos O'Donell <carlos@redhat.com>
+
+ [BZ #24026]
+ * malloc/malloc.c (__malloc_info): Account for top chunk.
+
+2019-08-07 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/bits/fcntl-linux.h [__USE_GNU]
+ (SYNC_FILE_RANGE_WRITE_AND_WAIT): New macro.
+
+2019-08-06 Joseph Myers <joseph@codesourcery.com>
+
+ * io/fcntl.h [__USE_GNU] (AT_RECURSIVE): New macro.
+
+2019-07-02 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/unix/sysv/linux/s390/init-first.c (VDSO_SETUP): New define.
+
+2019-08-05 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/bits/sched.h [__USE_GNU] (CLONE_PIDFD):
+ New macro.
+
+2019-08-05 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ [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 <fweimer@redhat.com>
+
+ [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á <ahajkova@redhat.com>
+
+ * elf/tst-ldconfig-bad-aux-cache.c: Use support_capture_subprocess.
+
+2019-08-02 Joseph Myers <joseph@codesourcery.com>
+
+ * 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 <raoni@linux.ibm.com>
+
+ * 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 <adhemerval.zanella@linaro.org>
+
+ * sysdeps/hppa/fpu/libm-test-ulps: Update.
+
+2019-08-01 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #24867]
+ * malloc/malloc.c (__malloc_info): Remove unwanted leading
+ whitespace.
+
+2019-08-01 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ [BZ #15813]
+ sysdeps/posix/tempname.c (__gen_tempname): get entropy on each
+ attempt.
+
+2019-08-01 Carlos O'Donell <carlos@redhat.com>
+
+ * 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 <carlos@redhat.com>
+
+ * 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 <fweimer@redhat.com>
+
+ [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 <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S
+ (__CONTEXT_FUNC_NAME): Restore setting of r31.
+
+2019-07-30 Florian Weimer <fweimer@redhat.com>
+
+ * nptl/tst-pthread-getattr.c (allocate_and_test): Change return
+ type to uintptr_t. Update comment.
+ (check_stack_top): Adjust.
+
+2019-07-29 Florian Weimer <fweimer@redhat.com>
+
+ Linux: Move declaration of getdents64 to <dirent.h>.
+ * bits/dirent_ext.h: New file.
+ * dirent/Makefile (headers): Add bits/dirent_ext.h.
+ * dirent/dirent.h: Include <bits/dirent_ext.h>.
+ * sysdeps/unix/sysv/linux/bits/dirent_ext.h: New file.
+ * sysdeps/unix/sysv/linux/bits/unistd_ext.h (getdents64): Remove
+ declaration.
+ * manual/filesys.texi (Low-level Directory Access): Update header
+ to dirent.h.
+
+2019-07-29 DJ Delorie <dj@redhat.com>
+ Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
+
+ [BZ #24794]
+ * Makeconfig (all-subdirs): Improved source comments.
+ * Makefile (testroot.pristine/install.stamp): Pass
+ subdirs='$(sorted-subdirs)' to make install.
+
+2019-07-25 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #24677]
+ * iconv/gconv_cache.c (__gconv_release_cache): Check reference
+ counter before freeing array.
+
+2019-07-24 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #24603]
+ * sysdeps/x86_64/configure.ac: Check if -mprefer-vector-width=128
+ works.
+ * sysdeps/x86_64/configure: Regenerated.
+ * sysdeps/x86_64/fpu/Makefile (CFLAGS-branred.c): New. Set
+ to -mprefer-vector-width=128 if supported.
+
+2019-07-24 Florian Weimer <fweimer@redhat.com>
+
+ * scripts/build-many-glibcs.py (Context.checkout): Default to
+ Linux 5.2.
+
+2019-07-24 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #24532]
+ Linux: Use in-tree copy of SO_ constants for !__USE_MISC.
+ * sysdeps/unix/sysv/linux/Makefile [$(subdir) == socket]
+ (sysdep_headers): Add bits/socket-constants.h.
+ (tests-special): Add tst-socket-consts.out.
+ (tst-socket-consts.out): New target.
+ * sysdeps/unix/sysv/linux/bits/socket.h: Remove macro tracking
+ around <asm/unistd.h>.
+ [__USE_MISC]: Include <bits/types/time_t.h> before <asm/socket.h>.
+ [!__USE_MISC]: Include <sys/socket-constants.h> instead of
+ <asm/socket.h>.
+ * sysdeps/unix/sysv/linux/bits/tst-socket-consts.py: New file.
+ * sysdeps/unix/sysv/linux/bits/socket-constants.h: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/bits/socket-constants.h: Likewise.
+ * sysdeps/unix/sysv/linux/hppa/bits/socket-constants.h: Likewise.
+ * sysdeps/unix/sysv/linux/mips/bits/socket-constants.h: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/bits/socket-constants.h:
+ Likewise.
+ * sysdeps/unix/sysv/linux/sparc/bits/socket-constants.h: Likewise.
+
+2019-07-23 Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
+
+ [BZ #24794]
+ * Makefile (testroot.pristine/install.stamp): Pass
+ subdirs='$(all-subdirs)' to make install.
+
+ * Makefile (testroot.pristine/install.stamp): Execute ld.so with
+ the same arguments used in all tests.
+
+2019-07-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * NEWS: Mention the AArch64 IFUNC resolver ABI change.
+
+2019-07-20 Egor Kobylkin <egor@kobylkin.com>
+
+ [BZ #2872]
+ * locale/C-translit.h.in: Add Cyrillic transliteration.
+
+2019-07-19 Florian Weimer <fweimer@redhat.com>
+
+ * sysdeps/unix/sysv/linux/syscall-names.list: Add system calls
+ from Linux 5.2.
+ (fsconfig): Add system call name.
+ (fsmount): Likewise.
+ (fsopen): Likewise.
+ (fspick): Likewise.
+ (move_mount): Likewise.
+ (open_tree): Likewise.
+
+2019-07-18 Carlos O'Donell <carlos@redhat.com>
+
+ * po/libc.pot: Regenerate.
+
+2019-07-18 Mike Crowe <mac@mcrowe.com>
+
+ * sysdeps/unix/sysv/linux/hppa/pthread.h: Add declarations of
+ functions recently added to sysdeps/nptl/pthread.h:
+ pthread_mutex_clocklock, pthread_rwlock_clockrdlock,
+ pthread_rwlock_clockwrlock and pthread_cond_clockwait.
+
+ * nptl/forward.c: Remove unnecessary __pthread_cond_clockwait and
+ pthread_cond_clockwait forwarding functions. There are no internal
+ users, so it is unnecessary to expose these functions in libc.so.
+ * sysdeps/nptl/pthread-functions.h (pthread_functions): Remove
+ unnecessary ptr___pthread_cond_clockwait member.
+ * nptl/nptl-init.c (pthread_functions): Remove assignment of
+ removed member.
+
+2019-07-17 Rafał Lużyński <digitalfreak@lingonborough.com>
+
+ [BZ #21897]
+ * localedata/locales/aa_DJ (abday): Update from CLDR, all words
+ begin with an uppercase letter now.
+ (abmon): Likewise.
+ (mon): Update from CLDR, reword February from "Kudo" to
+ "Naharsi Kudo", April from "Agda Baxisso" to "Agda Baxis",
+ and August from "Liiqen" to "Leqeeni".
+ * localedata/locales/aa_ER (mon): Update from CLDR, reword
+ April from "Agda Baxisso" to "Agda Baxis" and August from
+ "Leqeeni" to "Liiqen".
+ * localedata/locales/aa_ER@saaho (mon): Likewise.
+ * localedata/locales/aa_ET (abmon): Update from CLDR, reword
+ abbreviated February from "Kud" to "Nah".
+ (mon): Update from CLDR, reword February from "Kudo" to
+ "Naharsi Kudo" and April from "Agda Baxisso" to "Agda Baxis".
+
+2019-07-17 Rafał Lużyński <digitalfreak@lingonborough.com>
+
+ [BZ #23996]
+ * localedata/locales/nl_BE (LC_NAME): Replace with “copy "nl_NL"â€.
+
+2019-07-17 PanderMusubi <pander@users.sourceforge.net>
+
+ [BZ #23996]
+ * localedata/locales/nl_BE (LC_NAME): Add name_gen, name_mr,
+ name_mrs, name_miss, and name_ms.
+ * localedata/locales/nl_NL (LC_NAME): Likewise.
+
+2019-07-17 Daniil Zhilin <generalfailer@protonmail.com>
+
+ [BZ #24200]
+ * localedata/locales/ga_IE (first_weekday): Add, set to 2 (Monday).
+ * localedata/locales/en_IE (first_weekday): Likewise.
+
+2019-07-12 Mike Crowe <mac@mcrowe.com>
+
+ * nptl/pthread_cond_wait.c: (__pthread_cond_clockwait): Remove code
+ that is only useful if futex_supports_exact_relative_timeouts ()
+ returns false.
+ * nptl/pthread_condattr_setclock.c: (pthread_condattr_setclock):
+ Likewise.
+ * sysdeps/nptl/futex-internal.h: Remove comment about relative
+ timeouts potentially being imprecise since it's no longer true.
+ Remove declaration of futex_supports_exact_relative_timeouts.
+ * sysdeps/unix/sysv/linux/futex-internal.h: Remove implementation
+ of futex_supports_exact_relative_timeouts.
+
+ * NEWS: Mention recently-added pthread_cond_clockwait,
+ pthread_rwlock_clockrdlock, pthread_rwlock_clockwrlock and
+ sem_clockwait functions.
+
+ nptl: Add POSIX-proposed pthread_mutex_clocklock function that
+ works like pthread_mutex_timedlock but takes a clockid parameter to
+ measure the abstime parameter against.
+ * sysdeps/nptl/pthread.h: Add pthread_mutex_clocklock.
+ * nptl/DESIGN-systemtap-probes.txt: Likewise.
+ * nptl/pthread_mutex_timedlock.c
+ (__pthread_mutex_clocklock_common): Rename from
+ __pthread_mutex_timedlock and add clockid parameter. Pass this
+ parameter to lll_clocklock and lll_clocklock_elision in place of
+ CLOCK_REALTIME. (__pthread_mutex_clocklock): New function to add
+ LIBC_PROBE and validate clockid parameter before calling
+ __pthread_mutex_clocklock_common. (__pthread_mutex_timedlock): New
+ implementation to add LIBC_PROBE and calls
+ __pthread_mutex_clocklock_common passing CLOCK_REALTIME as the
+ clockid.
+ * nptl/Makefile: Add tst-mutex11.c.
+ * nptl/tst-abstime.c (th): Add tests for pthread_mutex_clocklock.
+ * nptl/tst-mutex11.c: New tests for passing invalid and unsupported
+ clockid parameters to pthread_mutex_clocklock.
+ * nptl/tst-mutex5.c (do_test_clock): Rename from do_test and take
+ clockid parameter to indicate which clock to be used. Call
+ pthread_mutex_timedlock or pthread_mutex_clocklock as appropriate.
+ (do_test): Call do_test_clock to separately test
+ pthread_mutex_timedlock, pthread_mutex_clocklock(CLOCK_REALTIME)
+ and pthread_mutex_clocklock(CLOCK_MONOTONIC).
+ * nptl/tst-mutex9.c: Likewise.
+ * nptl/Versions (GLIBC_2.30): Add pthread_mutex_clocklock.
+ * sysdeps/unix/sysv/linux/aarch64/libpthread.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/alpha/libpthread.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/arm/libpthread.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/csky/libpthread.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/hppa/libpthread.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/i386/libpthread.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/ia64/libpthread.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/microblaze/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/nios2/libpthread.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/sh/libpthread.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+
+ nptl: Rename lll_timedlock to lll_clocklock and add clockid
+ parameter to indicate the clock that the abstime parameter should
+ be measured against in preparation for adding
+ pthread_mutex_clocklock.
+ * sysdeps/nptl/lowlevellock.h (lll_clocklock): Rename from
+ lll_timedlock and add clockid parameter. (__lll_clocklock): Rename
+ from __lll_timedlock and add clockid parameter.
+ * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (lll_clocklock):
+ Likewise.
+ * nptl/lll_timedlock_wait.c (__lll_clocklock_wait): Rename from
+ __lll_timedlock_wait and add clockid parameter. Use __clock_gettime
+ rather than __gettimeofday so that clockid can be used. This means
+ that conversion from struct timeval is no longer required.
+ * sysdeps/sparc/sparc32/lowlevellock.c (lll_clocklock_wait):
+ Likewise.
+ * sysdeps/sparc/sparc32/lll_timedlock_wait.c: Update comment to
+ refer to __lll_clocklock_wait rather than __lll_timedlock_wait.
+ * nptl/pthread_mutex_timedlock.c (lll_clocklock_elision): Rename
+ from lll_timedlock_elision, add clockid parameter and use
+ meaningful names for other parameters. (__pthread_mutex_timedlock):
+ Pass CLOCK_REALTIME where necessary to lll_clocklock and
+ lll_clocklock_elision.
+ * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
+ (lll_clocklock_elision): Rename from lll_timedlock_elision and add
+ clockid parameter. (__lll_clocklock_elision): Rename from
+ __lll_timedlock_elision and add clockid parameter.
+ * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
+ * sysdeps/unix/sysv/linux/x86/lowlevellock.h: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/elision-timed.c
+ (__lll_lock_elision): Call __lll_clocklock_elision rather than
+ __lll_timedlock_elision. (EXTRAARG): Add clockid parameter.
+ (LLL_LOCK): Likewise.
+ * sysdeps/unix/sysv/linux/s390/elision-timed.c: Likewise.
+ * sysdeps/unix/sysv/linux/x86/elision-timed.c: Likewise.
+
+ nptl: Add POSIX-proposed pthread_rwlock_clockrdlock &
+ pthread_rwlock_clockwrlock which behave like
+ pthread_rwlock_timedrdlock and pthread_rwlock_timedwrlock
+ respectively, except they always measure abstime against the
+ supplied clockid. The functions currently support CLOCK_REALTIME
+ and CLOCK_MONOTONIC and return EINVAL if any other clock is
+ specified.
+ * sysdeps/nptl/pthread.h: Add pthread_rwlock_clockrdlock and
+ pthread_wrlock_clockwrlock.
+ * nptl/Makefile: Build pthread_rwlock_clockrdlock.c and
+ pthread_rwlock_clockwrlock.c.
+ * nptl/pthread_rwlock_clockrdlock.c: Implement
+ pthread_rwlock_clockrdlock.
+ * nptl/pthread_rwlock_clockwrlock.c: Implement
+ pthread_rwlock_clockwrlock.
+ * nptl/pthread_rwlock_common.c (__pthread_rwlock_rdlock_full): Add
+ clockid parameter and verify that it indicates a supported clock on
+ entry so that we fail even if it doesn't end up being used. Pass
+ that clock on to futex_abstimed_wait when necessary.
+ (__pthread_rwlock_wrlock_full): Likewise.
+ * nptl/pthread_rwlock_rdlock.c: (__pthread_rwlock_rdlock): Pass
+ CLOCK_REALTIME to __pthread_rwlock_rdlock_full even though it won't
+ be used because there's no timeout.
+ * nptl/pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock): Pass
+ CLOCK_REALTIME to __pthread_rwlock_wrlock_full even though it won't
+ be used because there is no timeout.
+ * nptl/pthread_rwlock_timedrdlock.c (pthread_rwlock_timedrdlock):
+ Pass CLOCK_REALTIME to __pthread_rwlock_rdlock_full since abstime
+ uses that clock.
+ * nptl/pthread_rwlock_timedwrlock.c (pthread_rwlock_timedwrlock):
+ Pass CLOCK_REALTIME to __pthread_rwlock_wrlock_full since abstime
+ uses that clock.
+ * sysdeps/unix/sysv/linux/aarch64/libpthread.abilist (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/alpha/libpthread.abilist (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/arm/libpthread.abilist (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/csky/libpthread.abilist (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/hppa/libpthread.abilist (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/i386/libpthread.abilist (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/ia64/libpthread.abilist (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/microblaze/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/nios2/libpthread.abilist (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/sh/libpthread.abilist (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * nptl/tst-abstime.c (th): Add pthread_rwlock_clockrdlock and
+ pthread_rwlock_clockwrlock timeout tests to match the existing
+ pthread_rwlock_timedrdloock and pthread_rwlock_timedwrlock tests.
+ * nptl/tst-rwlock14.c (do_test): Likewise.
+ * nptl/tst-rwlock6.c Invent verbose_printf macro, and use for
+ ancillary output throughout. (tf): Accept thread_args structure so
+ that rwlock, a clockid and function name can be passed to the
+ thread. (do_test_clock): Rename from do_test. Accept clockid
+ parameter to specify test clock. Use the magic clockid value of
+ CLOCK_USE_TIMEDLOCK to indicate that pthread_rwlock_timedrdlock and
+ pthread_rwlock_timedwrlock should be tested, otherwise pass the
+ specified clockid to pthread_rwlock_clockrdlock and
+ pthread_rwlock_clockwrlock. Use xpthread_create and xpthread_join.
+ (do_test): Call do_test_clock to test each clockid in turn.
+ * nptl/tst-rwlock7.c: Likewise.
+ * nptl/tst-rwlock9.c (writer_thread, reader_thread): Accept
+ thread_args structure so that the (now int) thread number, the
+ clockid and the function name can be passed to the thread.
+ (do_test_clock): Renamed from do_test. Pass the necessary
+ thread_args when creating the reader and writer threads. Use
+ xpthread_create and xpthread_join.
+ (do_test): Call do_test_clock to test each clockid in turn.
+ * manual/threads.texi: Add documentation for
+ pthread_rwlock_clockrdlock and pthread_rwlock_clockwrclock.
+
+ nptl: pthread_rwlock: Move timeout validation into _full functions
+ * nptl/pthread_rwlock_common.c (__pthread_rwlock_rdlock_full):
+ Check validity of abstime parameter.
+ (__pthread_rwlock_rwlock_full): Likewise.
+ * nptl/pthread_rwlock_timedrdlock.c (pthread_rwlock_timedrdlock):
+ Remove check for validity of abstime parameter.
+ * nptl/pthread_rwlock_timedwrlock.c (pthread_rwlock_timedwrlock):
+ Likewise.
+
+ nptl: Add POSIX-proposed pthread_cond_clockwait which behaves just
+ like pthread_cond_timedwait except it always measures abstime
+ against the supplied clockid.
+ * nptl/Makefile: Add tst-cond26 and tst-cond27
+ * nptl/Versions (GLIBC_2.30): Add pthread_cond_clockwait
+ * sysdeps/nptl/pthread.h: Likewise
+ * nptl/forward.c: Add __pthread_cond_clockwait
+ * nptl/forward.c: Likewise
+ * nptl/pthreadP.h: Likewise
+ * sysdeps/nptl/pthread-functions.h: Likewise
+ * nptl/pthread_cond_wait.c (__pthread_cond_wait_common): Add
+ clockid parameter and comment describing why we don't need to check
+ its value. Use that value when calling
+ futex_abstimed_wait_cancelable rather than reading the clock from
+ the flags. (__pthread_cond_wait): Pass unused clockid parameter.
+ (__pthread_cond_timedwait): Read clock from flags and pass it to
+ __pthread_cond_wait_common. (__pthread_cond_clockwait): Add new
+ function with weak alias from pthread_cond_clockwait.
+ * sysdeps/unix/sysv/linux/aarch64/libpthread.abilist (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/alpha/libpthread.abilist (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/arm/libpthread.abilist (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/csky/libpthread.abilist (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/hppa/libpthread.abilist (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/i386/libpthread.abilist (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/ia64/libpthread.abilist (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/microblaze/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/nios2/libpthread.abilist (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/sh/libpthread.abilist (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * nptl/tst-cond11.c (run_test): Support testing
+ pthread_cond_clockwait too by using a special magic
+ CLOCK_USE_ATTR_CLOCK value to determine whether to call
+ pthread_cond_timedwait or pthread_cond_clockwait. (do_test): Pass
+ CLOCK_USE_ATTR_CLOCK for existing tests, and add new tests using
+ all combinations of CLOCK_MONOTONIC and CLOCK_REALTIME.
+ * ntpl/tst-cond26.c: New test for passing unsupported and invalid
+ clocks to pthread_cond_clockwait.
+ * nptl/tst-cond27.c: Add test similar to tst-cond5.c, but using
+ struct timespec and pthread_cond_clockwait.
+ * manual/threads.texi: Document pthread_cond_clockwait.
+
+ nptl: Add POSIX-proposed sem_clockwait which behaves just like
+ sem_timedwait, but measures abstime against the specified clock.
+ * nptl/sem_waitcommon.c (do_futex_wait, __new_sem_wait_slow): Add
+ clockid parameters to indicate the clock which abstime should be
+ measured against.
+ * nptl/sem_timedwait.c (sem_timedwait), nptl/sem_wait.c
+ (__new_sem_wait): Pass CLOCK_REALTIME as clockid to
+ __new_sem_wait_slow.
+ * nptl/sem_clockwait.c: New file to implement sem_clockwait based
+ on sem_timedwait.c.
+ * nptl/Makefile: Add sem_clockwait.c source file. Add CFLAGS for
+ sem_clockwait.c to match those used for sem_timedwait.c.
+ * sysdeps/pthread/semaphore.h: Add sem_clockwait.
+ * nptl/Versions (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/aarch64/libpthread.abilist (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/alpha/libpthread.abilist (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/arm/libpthread.abilist (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/csky/libpthread.abilist (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/hppa/libpthread.abilist (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/i386/libpthread.abilist (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/ia64/libpthread.abilist (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/microblaze/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/nios2/libpthread.abilist (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/sh/libpthread.abilist (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
+ (GLIBC_2.30): Likewise.
+ * nptl/tst-sem17.c: Add new test for passing invalid clock to
+ sem_clockwait.
+ * nptl/tst-sem13.c, nptl/tst-sem5.c: Modify existing sem_timedwait
+ tests to also test sem_clockwait.
+ * manual/threads.texi: Document sem_clockwait.
+
+ nptl: Add clockid parameter to futex timed wait calls
+ * sysdeps/nptl/lowlevellock-futex.h,
+ sysdeps/unix/sysv/linux/lowlevellock-futex.h: Replace
+ lll_futex_timed_wait_bitset with lll_futex_clock_wait_bitset that
+ takes a clockid rather than a special clockbit.
+ * sysdeps/nptl/lowlevellock-futex.h: Add
+ lll_futex_supported_clockid so that client functions can check
+ whether their clockid parameter is valid even if they don't
+ ultimately end up calling lll_futex_clock_wait_bitset.
+ * sysdeps/nptl/futex-internal.h,
+ sysdeps/unix/sysv/linux/futex-internal.h
+ (futex_abstimed_wait, futex_abstimed_wait_cancelable): Add
+ clockid_t parameter to indicate which clock the absolute time
+ passed should be measured against. Pass that clockid onto
+ lll_futex_clock_wait_bitset. Add invalid clock as reason for
+ returning -EINVAL.
+ * sysdeps/nptl/futex-internal.h,
+ sysdeps/unix/sysv/linux/futex-internal.h: Introduce
+ futex_abstimed_supported_clockid so that client functions can check
+ whether their clockid parameter is valid even if they don't
+ ultimately end up calling futex_abstimed_wait.
+ * nptl/pthread_cond_wait.c (__pthread_cond_wait_common): Remove
+ code to calculate relative timeout for
+ __PTHREAD_COND_CLOCK_MONOTONIC_MASK and just pass CLOCK_MONOTONIC
+ or CLOCK_REALTIME as required to futex_abstimed_wait_cancelable.
+ * nptl/pthread_rwlock_common (__pthread_rwlock_rdlock_full)
+ (__pthread_wrlock_full), nptl/sem_waitcommon (do_futex_wait): Pass
+ additional CLOCK_REALTIME to futex_abstimed_wait_cancelable.
+ * nptl/pthread_mutex_timedlock.c (__pthread_mutex_timedlock):
+ Switch to lll_futex_clock_wait_bitset and pass CLOCK_REALTIME
+
+2019-07-10 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ [BZ #24699]
+ * posix/tst-mmap-offset.c: Mention BZ #24699.
+ (do_test_bz21270): Rename to do_test_large_offset and use
+ mmap64_maximum_offset to check for maximum expected offset value.
+ * sysdeps/generic/mmap_info.h: New file.
+ * sysdeps/unix/sysv/linux/mips/mmap_info.h: Likewise.
+ * sysdeps/unix/sysv/linux/mmap64.c (MMAP_OFF_HIGH_MASK): Define iff
+ __NR_mmap2 is used.
+
+2019-07-10 DJ Delorie <dj@redhat.com>
+ Sergei Trofimovich <slyfox@inbox.ru>
+
+ [BZ #24696]
+ [BZ #24695]
+ * nss/nss_db/db-open.c (internal_endent): Protect against NULL
+ mappings.
+ * nss/tst-nss-db-endgrent.c: New.
+ * nss/tst-nss-db-endgrent.root: New.
+ * nss/tst-nss-db-endpwent.c: New.
+ * nss/tst-nss-db-endpwent.root: New.
+ * nss/Makefile: Add new tests.
+ * support/links-dso-program-c.c: Add selinux dependency.
+ * support/links-dso-program.cc: Add selinux dependency.
+ * support/Makefile: Build those with -lselinux if enabled.
+
+2019-07-10 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * sysdeps/aarch64/dl-machine.h (elf_machine_runtime_setup): Remove the
+ DT_AARCH64_VARIANT_PCS check.
+ (elf_machine_lazy_rel): Use l_info[DT_AARCH64 (VARIANT_PCS)].
+ * sysdeps/aarch64/linkmap.h (struct link_map_machine): Remove
+ variant_pcs.
+
+2019-07-10 Andreas Schwab <schwab@suse.de>
+
+ [BZ #23352]
+ * malloc/malloc.h (__malloc_check_init): Don't declare.
+ * include/malloc.h (__malloc_check_init): Likewise.
+ * malloc/malloc-internal.h (__malloc_check_init): Declare it here.
+ * manual/memory.texi (__malloc_check_init): Don't mention it.
+
+2019-07-10 Mao Han <han_mao@c-sky.com>
+
+ * locale/Makefile: Fix tst-locale-locpath arguments passing.
+
+2019-07-09 Paul A. Clarke <pc@us.ibm.com>
+
+ * sysdeps/powerpc/fpu/fenv_libc.h (_FPU_GET_RC): Protect use of
+ __builtin_cpu_supports with __BUILTIN_CPU_SUPPORTS__.
+
+2019-07-08 DJ Delorie <dj@redhat.com>
+
+ [BZ #23501]
+ * io/ftw.c (process_entry): Fill in statbuf for dangling links.
+ * io/tst-ftw-lnk.c: New test.
+ * io/Makefile: Run it.
+
+2019-07-08 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/powerpc/power7/fpu/s_logb.c: Move to ...
+ * sysdeps/powerpc/fpu/s_logb.c: ... here. Use inline FP constants.
+ * sysdeps/powerpc/power7/fpu/s_logbf.c: Move to ...
+ * sysdeps/powerpc/fpu/s_logbf.c: ... here. Use inline FP constants.
+ * sysdeps/powerpc/power7/fpu/s_logbl.c: Move to ...
+ * sysdeps/powerpc/fpu/s_logbl.c: ... here. Use inline FP constants.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logb-power7.c:
+ Adjust implementation path.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbf-power7.c:
+ Adjust implementation path.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbl-power7.c:
+ Adjust implementation path.
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/Makefile
+ (libm-sysdep_routines): Add s_log* objects.
+ (CFLAGS-s_logbf-power7.c, CFLAGS-s_logbl-power7.c,
+ CFLAGS-s_logb-power7.c): New fule.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_logb-power7.c: Move
+ to ...
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logb-power7.c:
+ ... here.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_logb-ppc64.c: Move
+ to ...
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logb-ppc64.c:
+ ... here.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_logb.c: Move to ...
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logb.c: ... here.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbf-power7.c: Move
+ to ...
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbf-power7.c:
+ ... here.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbf-ppc64.c: Move
+ to ...
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbf-ppc64.c:
+ ... here.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbf.c: Move to ...
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbf.c: ... here.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbl-power7.c: Move
+ to ...
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbl-power7.c:
+ ... here.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbl-ppc64.c: Move
+ to ...
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbl-ppc64.c:
+ ... here.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbl.c: Move to ...
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbl.c: ... here.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile: Remove file.
+ * sysdeps/powerpc/powerpc64/power7/fpu/s_logb.c: Remove file.
+ * sysdeps/powerpc/powerpc64/power7/fpu/s_logbf.c: Likewise.
+ * sysdeps/powerpc/powerpc64/power7/fpu/s_logbl.c: Likewise.
+
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_logb.c: Move to ...
+ * sysdeps/ieee754/dbl-64/s_logb.c: ... here. Add work around for
+ powerpc32 integer 0 converting to -0.
+
+ * benchtests/Makefile (bench-math): Add logb.
+ * benchtests/logb-inputs: New file.
+ * benchtests/logbf-inputs: New file.
+
+ * sysdeps/powerpc/power5+/fpu/s_modf.c: Move to ...
+ * sysdeps/powerpc/fpu/s_modf.c: ... here. Add ISA 2.07 optimization.
+ * sysdeps/powerpc/power5+/fpu/s_modff.c: Move to ...
+ * sysdeps/powerpc/fpu/s_modff.c: ... here. Add ISA 2.07 optimization.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf-power5+.c:
+ Adjust include.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff-power5+.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/Makefile (sysdep_calls,
+ sysdep_routines): Add s_modf* objects.
+ (CFLAGS-s_modf-power5+.c, CFLAGS-s_modff-power5+.c,
+ CFLAGS-s_modf-ppc64.c, CFLAGS-s_modff-ppc64.c): New rule.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_modf-power5+.c: Move
+ to ...
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modf-power5+.c:
+ ... here.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_modf-power5+.c: Movo
+ to ...
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modf-power5+.c: Move
+ ... here.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_modf.c: Move to ...
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modf.c: ... here.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_modff-power5+.c: Move
+ to ...
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modff-power5+.c:
+ ... here.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_modff-ppc64.c: Move to ...
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modff-ppc64.c:
+ ... here.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_modff.c: Move to ...
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modff.c: ... here.
+
+ * sysdeps/powerpc/fpu/e_hypot.c (two60, two500, two600, two1022,
+ twoM500, twoM600, two60factor, pdnum): Remove.
+ (TEST_INFO_NAN, GET_TW0_HIGH_WORD): Remove macro.
+ (__ieee754_hypot): Replace static variables with inline definition,
+ remove ununsed branches.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile
+ (libm-sysdep_routines): Remove e_hypot-* objects.
+ (CFLAGS-e_hypot-power7.c, CFLAGS-e_hypotf-power7.c): Remove rule.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypot-power7.c: Remove
+ file.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypot-ppc64.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypot.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypotf-power7.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypotf-ppc64.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypotf.c: Likewise.
+
+ * benchtests/Makefile (bench-math): Add hypot.
+ * benchtests/hypot-inputs: New file.
+
+2019-07-08 Vincent Chen <vincentc@andestech.com>
+
+ * sysdeps/unix/sysv/linux/dl-vdso.h
+ (VDSO_NAME_LINUX_4, VDSO_HASH_LINUX_4): New defines.
+
+2019-07-04 Andreas Schwab <schwab@suse.de>
+
+ [BZ #24484]
+ * sysdeps/riscv/ldsodefs.h (DL_RO_DYN_SECTION): Define.
+
+2019-07-04 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * sysdeps/aarch64/Makefile: Install sys/ifunc.h and add tests.
+ * sysdeps/aarch64/dl-irel.h (elf_ifunc_invoke): Update to new ABI.
+ * sysdeps/aarch64/sys/ifunc.h: New file.
+ * sysdeps/aarch64/tst-ifunc-arg-1.c: New file.
+ * sysdeps/aarch64/tst-ifunc-arg-2.c: New file.
+
+2019-07-01 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #20188]
+ * nptl/Versions (libpthread): Remove __fork from GLIBC_2.0.
+ Replace __vfork with __libpthread_version_placeholder for
+ GLIBC_2.1.2.
+ (libc): Remove __libc_vfork from GLIBC_PRIVATE.
+ * nptl/Makefile (libpthread-routines): Remove pt-vfork. Add
+ libpthread-compat.
+ * nptl/pt-vfork.c: Remove file.
+ * sysdeps/unix/sysv/linux/aarch64/pt-vfork.c: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/pt-vfork.S: Likewise.
+ * sysdeps/unix/sysv/linux/csky/pt-vfork.S: Likewise.
+ * sysdeps/unix/sysv/linux/hppa/pt-vfork.S: Likewise.
+ * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/pt-vfork.c: Likewise.
+ * sysdeps/unix/sysv/linux/microblaze/pt-vfork.S: Likewise.
+ * sysdeps/unix/sysv/linux/mips/pt-vfork.S: Likewise.
+ * sysdeps/unix/sysv/linux/nios2/pt-vfork.S: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/pt-vfork.S: Likewise.
+ * sysdeps/unix/sysv/linux/s390/pt-vfork.S: Likewise.
+ * sysdeps/unix/sysv/linux/sh/pt-vfork.S: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/pt-vfork.S: Likewise.
+ * sysdeps/unix/sysv/linux/aarch64/libpthread.abilist (GLIBC_2.17):
+ Remove vfork, __vfork.
+ * sysdeps/unix/sysv/linux/alpha/libpthread.abilist (GLIBC_2.0):
+ Remove vfork.
+ (GLIBC_2.1.2): Replace __vfork with
+ __libpthread_version_placeholder.
+ * sysdeps/unix/sysv/linux/arm/libpthread.abilist (GLIBC_2.4):
+ Remove vfork, __vfork.
+ * sysdeps/unix/sysv/linux/hppa/libpthread.abilist (GLIBC_2.2):
+ Likewise.
+ * sysdeps/unix/sysv/linux/i386/libpthread.abilist (GLIBC_2.0):
+ Remove vfork.
+ (GLIBC_2.1.2): Replace __vfork with
+ __libpthread_version_placeholder.
+ * sysdeps/unix/sysv/linux/ia64/libpthread.abilist (GLIBC_2.2):
+ Remove vfork.
+ * sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
+ (GLIBC_2.4): Remove vfork, __vfork.
+ * sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
+ (GLIBC_2.0): Remove vfork.
+ (GLIBC_2.1.2): Replace __vfork with
+ __libpthread_version_placeholder.
+ * sysdeps/unix/sysv/linux/microblaze/libpthread.abilist
+ (GLIBC_2.18): Remove vfork, __vfork.
+ * sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
+ (GLIBC_2.0): Remove vfork.
+ (GLIBC_2.2): Remove __vfork.
+ * sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist:
+ (GLIBC_2.2): Remove vfork, __vfork.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist:
+ (GLIBC_2.0): Remove vfork.
+ (GLIBC_2.1.2): Replace __vfork with
+ __libpthread_version_placeholder.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
+ (GLIBC_2.3): Remove vfork, __vfork.
+ * 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): Remove vfork.
+ (GLIBC_2.1.2): Replace __vfork with
+ __libpthread_version_placeholder.
+ * sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
+ (GLIBC_2.2): Remove vfork, __vfork.
+ * sysdeps/unix/sysv/linux/sh/libpthread.abilist (GLIBC_2.2):
+ Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
+ (GLIBC_2.0): Remove vfork.
+ (GLIBC_2.1.2): Replace __vfork with
+ __libpthread_version_placeholder.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
+ (GLIBC_2.2): Remove vfork, __vfork.
+ * 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.
+ * sysdeps/unix/sysv/linux/hppa/localplt.data (libpthread.so):
+ Remove __errno_location.
+
+2019-07-02 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #24757]
+ * malloc/Depend: Add nptl and htl, due to potential indirect
+ libpthread dependency of memusagestat.
+
+2019-07-02 Stefan Liebler <stli@linux.ibm.com>
+
+ * resolv/res_send.c (__res_context_send): Disable maybe-uninitialized
+ warning.
+
+2019-07-01 Florian Weimer <fweimer@redhat.com>
+
+ * scripts/build-many-glibcs.py (Context.add_all_configs): Add v4t
+ variant for arm-linux-gnueabi.
+
+2019-07-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #24259]
+ * elf/dl-open.c (dl_open_worker): Call _dl_open_check after
+ relocation.
+ * sysdeps/x86/Makefile (tests): Add tst-cet-legacy-5a,
+ tst-cet-legacy-5b, tst-cet-legacy-6a and tst-cet-legacy-6b.
+ (modules-names): Add tst-cet-legacy-mod-5a, tst-cet-legacy-mod-5b,
+ tst-cet-legacy-mod-5c, tst-cet-legacy-mod-6a, tst-cet-legacy-mod-6b
+ and tst-cet-legacy-mod-6c.
+ (CFLAGS-tst-cet-legacy-5a.c): New.
+ (CFLAGS-tst-cet-legacy-5b.c): Likewise.
+ (CFLAGS-tst-cet-legacy-mod-5a.c): Likewise.
+ (CFLAGS-tst-cet-legacy-mod-5b.c): Likewise.
+ (CFLAGS-tst-cet-legacy-mod-5c.c): Likewise.
+ (CFLAGS-tst-cet-legacy-6a.c): Likewise.
+ (CFLAGS-tst-cet-legacy-6b.c): Likewise.
+ (CFLAGS-tst-cet-legacy-mod-6a.c): Likewise.
+ (CFLAGS-tst-cet-legacy-mod-6b.c): Likewise.
+ (CFLAGS-tst-cet-legacy-mod-6c.c): Likewise.
+ ($(objpfx)tst-cet-legacy-5a): Likewise.
+ ($(objpfx)tst-cet-legacy-5a.out): Likewise.
+ ($(objpfx)tst-cet-legacy-mod-5a.so): Likewise.
+ ($(objpfx)tst-cet-legacy-mod-5b.so): Likewise.
+ ($(objpfx)tst-cet-legacy-5b): Likewise.
+ ($(objpfx)tst-cet-legacy-5b.out): Likewise.
+ (tst-cet-legacy-5b-ENV): Likewise.
+ ($(objpfx)tst-cet-legacy-6a): Likewise.
+ ($(objpfx)tst-cet-legacy-6a.out): Likewise.
+ ($(objpfx)tst-cet-legacy-mod-6a.so): Likewise.
+ ($(objpfx)tst-cet-legacy-mod-6b.so): Likewise.
+ ($(objpfx)tst-cet-legacy-6b): Likewise.
+ ($(objpfx)tst-cet-legacy-6b.out): Likewise.
+ (tst-cet-legacy-6b-ENV): Likewise.
+ * sysdeps/x86/tst-cet-legacy-5.c: New file.
+ * sysdeps/x86/tst-cet-legacy-5a.c: Likewise.
+ * sysdeps/x86/tst-cet-legacy-5b.c: Likewise.
+ * sysdeps/x86/tst-cet-legacy-6.c: Likewise.
+ * sysdeps/x86/tst-cet-legacy-6a.c: Likewise.
+ * sysdeps/x86/tst-cet-legacy-6b.c: Likewise.
+ * sysdeps/x86/tst-cet-legacy-mod-5.c: Likewise.
+ * sysdeps/x86/tst-cet-legacy-mod-5a.c: Likewise.
+ * sysdeps/x86/tst-cet-legacy-mod-5b.c: Likewise.
+ * sysdeps/x86/tst-cet-legacy-mod-5c.c: Likewise.
+ * sysdeps/x86/tst-cet-legacy-mod-6.c: Likewise.
+ * sysdeps/x86/tst-cet-legacy-mod-6a.c: Likewise.
+ * sysdeps/x86/tst-cet-legacy-mod-6b.c: Likewise.
+ * sysdeps/x86/tst-cet-legacy-mod-6c.c: Likewise.
+
+2019-06-30 Paul A. Clarke <pc@us.ibm.com>
+
+ * sysdeps/powerpc/bits/fenvinline.h (__fegetround): Use
+ __fegetround_ISA300() or __fegetround_ISA2() as appropriate.
+ (__fegetround_ISA300) New.
+ (__fegetround_ISA2) New.
+ * sysdeps/powerpc/fpu_control.h (IS_ISA300): New.
+ (_FPU_MFFS): Move implementation...
+ (_FPU_GETCW): Here.
+ (_FPU_MFFSL): Move implementation....
+ (_FPU_GET_RC_ISA300): Here. New.
+ (_FPU_GET_RC): Use _FPU_GET_RC_ISA300() or _FPU_GETCW() as appropriate.
+ * sysdeps/powerpc/fpu/fenv_libc.h (fegetenv_status_ISA300): New.
+ (fegetenv_status): New.
+ * sysdeps/powerpc/fpu/fegetmode.c (fegetmode): Use fegetenv_status()
+ instead of fegetenv_register().
+ * sysdeps/powerpc/fpu/fegetexcept.c (__fegetexcept): Likewise.
+
+2019-06-28 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * benchtests/bench-math-inlines.c: Increase iterations.
+ * benchtests/bench-memcmp.c: Likewise.
+ * benchtests/bench-rawmemchr.c: Likewise.
+ * benchtests/bench-strcmp.c: Likewise.
+ * benchtests/bench-strcpy_chk.c: Likewise.
+ * benchtests/bench-string.h (INNER_LOOP_ITERS8): Add define.
+ (INNER_LOOP_ITERS_MEDIUM): Increase iterations.
+ (INNER_LOOP_ITERS_SMALL): Likewise.
+ * benchtests/bench-strncat.c: Increase iterations.
+ * benchtests/bench-strncmp.c: Increase iterations.
+ * benchtests/bench-strncpy.c: Reduce iterations for wide strings.
+ * benchtests/bench-strrchr.c: Increase iterations.
+ * benchtests/bench-strstr.c: Keep iterations unchanged.
+ * benchtests/bench-strtod.c: Increase iterations.
+
+2019-06-28 Anton Youdkevitch <anton.youdkevitch@bell-sw.com>
+
+ * benchtests/bench-memccpy.c: Replace INNER_LOOP_ITERS
+ with INNER_LOOP_ITERS_LARGE.
+ * benchtests/bench-memchr.c: Likewise.
+ * benchtests/bench-rawmemchr.c: Likewise.
+ * benchtests/bench-strcat.c: Likewise.
+ * benchtests/bench-strchr.c: Likewise.
+ * benchtests/bench-string.h: Likewise.
+ * benchtests/bench-strlen.c: Likewise.
+ * benchtests/bench-strncpy.c: Likewise.
+ * benchtests/bench-strnlen.c: Likewise.
+
+2019-06-28 Florian Weimer <fweimer@redhat.com>
+
+ * sysdeps/unix/sysv/linux/tst-getdents64.c (large_buffer_checks):
+ Use mmap instead of malloc. malloc with M_PERTURB writes to the
+ entire allocated memory range.
+
+2019-06-28 Tobias Klauser <tklauser@distanz.ch>
+
+ * sysdeps/unix/sysv/linux/dl-vdso.h (PREPARE_VERSION): Remove macro.
+ (prepare_version_base): New helper inline function.
+ (prepare_version): New macro replacing PREPARE_VERSION.
+ (PREPARE_VERSION_KNOWN): Use prepare_version instead of PREPARE_VERSION.
+
+2019-06-28 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #24741]
+ * elf/dl-lookup.c (do_lookup_x): Do not fail if there is a soname
+ mismatch in a versioned symbol reference.
+ (_dl_lookup_symbol_x): Do not report soname mismatch failures.
+ * elf/Makefile [$(build-shared)] (tests): Add tst-sonamemove-link,
+ tst-sonamemove-dlopen.
+ (module-names): Add tst-sonamemove-linkmod1,
+ tst-sonamemove-runmod1, tst-sonamemove-runmod2.
+ (LDFLAGS-tst-sonamemove-linkmod1.so): Set.
+ (LDFLAGS-tst-sonamemove-runmod1.so): Likewise.
+ (LDFLAGS-tst-sonamemove-runmod2.so): Likewise.
+ (tst-sonamemove-runmod1.so): Link against
+ tst-sonamemove-runmod2.so.
+ (tst-sonamemove-link): Link against tst-sonamemove-linkmod1.so.
+ (tst-sonamemove-link.out): Depend on tst-sonamemove-runmod1.so,
+ tst-sonamemove-runmod2.so.
+ (tst-sonamemove-dlopen): Link with -ldl.
+ (tst-sonamemove-dlopen.out): Likewise.
+ * elf/tst-sonamemove-link.c: New file.
+ * elf/tst-sonamemove-dlopen.c: Likewise.
+ * elf/tst-sonamemove-linkmod1.c: Likewise.
+ * elf/tst-sonamemove-linkmod1.map: Likewise.
+ * elf/tst-sonamemove-runmod1.c: Likewise.
+ * elf/tst-sonamemove-runmod1.map: Likewise.
+ * elf/tst-sonamemove-runmod2.c: Likewise.
+ * elf/tst-sonamemove-runmod2.map: Likewise.
+
+2019-06-28 Florian Weimer <fweimer@redhat.com>
+
+ * support/xdlfcn.h (xdlvsym): Declare function.
+ * support/xdlfcn.c (xdlvsym): Define funciton.
+
+2019-06-28 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #24744]
+ io: Remove the copy_file_range emulation.
+ * sysdeps/unix/sysv/linux/copy_file_range.c (copy_file_range): Do
+ not define and call copy_file_range_compat.
+ * io/Makefile (tests-static, tests-internal): Do not add
+ tst-copy_file_range-compat.
+ * io/copy_file_range-compat.c: Remove file.
+ * io/copy_file_range.c (copy_file_range): Define as stub.
+ * io/tst-copy_file_range-compat.c: Remove file.
+ * io/tst-copy_file_range.c (xdevfile): Remove variable.
+ (typical_sizes): Update comment. Remove 16K sizes.
+ (maximum_offset, maximum_offset_errno, maximum_offset_hard_limit):
+ Remove variables.
+ (find_maximum_offset, pipe_as_source, pipe_as_destination)
+ (delayed_write_failure_beginning, delayed_write_failure_end)
+ (cross_device_failure, enospc_failure_1, enospc_failure)
+ (oappend_failure): Remove functions.
+ (tests): Adjust test case list.
+ (do_test): Remove file system search code. Check for ENOSYS from
+ copy_file_range. Do not free xdevfile.
+ * manual/llio.texi (Copying File Data): Document ENOSYS error from
+ copy_file_range. Do not document the EXDEV error, which future
+ kernels may not report. Update the wording to reflect that
+ further errors are possible.
+ * sysdeps/unix/sysv/linux/alpha/kernel-features.h
+ [__LINUX_KERNEL_VERSION < 0x040D00] (__ASSUME_COPY_FILE_RANGE): Do
+ not undefine.
+ * sysdeps/unix/sysv/linux/arm/kernel-features.h
+ [__LINUX_KERNEL_VERSION < 0x040700] (__ASSUME_COPY_FILE_RANGE):
+ Likewise.
+ * sysdeps/unix/sysv/linux/kernel-features.h
+ [__LINUX_KERNEL_VERSION >= 0x040500] (__ASSUME_COPY_FILE_RANGE):
+ Remove definition.
+ * sysdeps/unix/sysv/linux/microblaze/kernel-features.h
+ [__LINUX_KERNEL_VERSION < 0x040A00] (__ASSUME_COPY_FILE_RANGE): Do
+ not undefine.
+ * sysdeps/unix/sysv/linux/sh/kernel-features.h
+ [__LINUX_KERNEL_VERSION < 0x040800] (__ASSUME_COPY_FILE_RANGE):
+ Likewise.
+
+2019-06-27 Gabriel F. T. Gomes <gabrielftg@linux.ibm.com>
+
+ * libio/libioP.h (PRINTF_LDBL_USES_FLOAT128): New macro to be
+ used as a mask for the mode argument of __vfprintf_internal.
+ * stdio-common/printf-parse.h (printf_arg): New union member:
+ pa_float128.
+ * stdio-common/vfprintf-internal.c
+ (PARSE_FLOAT_VA_ARG_EXTENDED): New macro.
+ (PARSE_FLOAT_VA_ARG): Likewise.
+ (SETUP_FLOAT128_INFO): Likewise.
+ (process_arg): Use PARSE_FLOAT_VA_ARG_EXTENDED and
+ SETUP_FLOAT128_INFO.
+ [__HAVE_FLOAT128_UNLIKE_LDBL] (printf_positional): Write
+ floating-point value to the new union member, pa_float128.
+ (printf_positional): Zero-initialize args_value[cnt] with memset.
+
+2019-06-27 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #24740]
+ * sysdeps/unix/sysv/linux/getdents64.c (__getdents64): Adjust
+ buffer size if necessary.
+ * sysdeps/unix/sysv/linux/mips/mips64/getdents64.c (__getdents64):
+ Likewise.
+ * sysdeps/unix/sysv/linux/tst-getdents64.c (large_buffer_check):
+ New function.
+ (large_buffer_checks): Likewise.
+ (do_test): Call large_buffer_checks.
+
+2019-06-26 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/i386/dl-lookupcfg.h: Moved to ...
+ * sysdeps/x86/dl-lookupcfg.h: Here.
+ * sysdeps/x86_64/dl-lookupcfg.h: Removed.
+
+2019-06-26 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile
+ (libm-sysdep_routines): Remove e_expf-power8 and expf-ppc64.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf-power8.S: Remove
+ file.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf-ppc64.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/w_expf.c: Likewise.
+ * sysdeps/powerpc/powerpc64/power8/fpu/e_expf.S: Likewise.
+ * sysdeps/powerpc/powerpc64/power8/fpu/w_expf.c: Likewise.
+
+ * sysdeps/powerpc/powerpc32/fpu/Makefile
+ [$(subdir) == math] (CFLAGS-s_lround.c): New rule.
+ * sysdeps/powerpc/powerpc32/fpu/s_llround.c (__llround): Add power5+
+ and fctidz optimization.
+ * sysdeps/powerpc/powerpc32/fpu/s_lround.S: Remove file.
+ * sysdeps/powerpc/powerpc32/fpu/s_lround.c: New file.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/Makefile
+ (CFLAGS-s_llround-power6.c, CFLAGS-s_llround-power5+.c,
+ CFLAGS-s_llround-ppc32.c, CFLAGS-s_lround-ppc32.c,
+ CFLAGS-s_lround-power5+.c): New rule.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround-power5+.c:
+ New file.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround-power6.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround-ppc32.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround-power5+.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround-ppc32.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround-power5+.S:
+ Remove file.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround-power6.S:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround-ppc32.S:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround-power5+.S:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround-ppc32.S:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/s_llround.S: Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/s_llroundf.S: Likewise.
+ * sysdeps/powerpc/powerpc32/power5+/fpu/s_llround.S: Likewise.
+ * sysdeps/powerpc/powerpc32/power5+/fpu/s_llroundf.S: Likewise.
+ * sysdeps/powerpc/powerpc32/power5+/fpu/s_lround.S: Likewise.
+ * sysdeps/powerpc/powerpc32/power6/fpu/s_llround.S: Likewise.
+ * sysdeps/powerpc/powerpc32/power6/fpu/s_llroundf.S: Likewise.
+
+2019-06-26 Vincent Chen <vincentc@andestech.com>
+
+ * sysdeps/unix/sysv/linux/syscall-names.list: Add nds32
+ specific system calls, fp_udfiex_crtl and udftrap.
+
+2019-06-26 Stefan Liebler <stli@linux.ibm.com>
+
+ * nptl/tst-eintr1.c (tf1): Add return statement.
+ (do_test): Remove unused th variable.
+
+2019-06-26 Stefan Liebler <stli@linux.ibm.com>
+
+ * locale/programs/ld-ctype.c (charclass_symbolic_ellipsis):
+ Return error if get_character fails.
+
+2019-06-25 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/fpu/libm-test-ulps: Regenerated.
+
+2019-06-24 Rafał Lużyński <digitalfreak@lingonborough.com>
+
+ [BZ #24652]
+ * localedata/locales/szl_PL (day): Use the correct Unicode
+ sequences instead of non-ASCII characters.
+
+2019-06-24 Grzegorz Kulik <gregorykkulik@gmail.com>
+
+ [BZ #24652]
+ * localedata/locales/szl_PL (abday): Spelling corrections.
+ (day): Likewise.
+ (abmon): Likewise.
+ (mon): Rename to...
+ (alt_mon): This, then apply spelling corrections.
+ (mon): New entry, month names in the genitive case.
+
+2019-06-21 Rafał Lużyński <digitalfreak@lingonborough.com>
+
+ [BZ #23831]
+ * localedata/locales/nl_AW (mon_thousands_sep): Set to ".".
+ * localedata/locales/nl_NL (mon_thousands_sep): Likewise.
+ (thousands_sep): Likewise.
+ (grouping): Set to 3;3.
+
+2019-06-21 Tobias Klauser <tklauser@distanz.ch>
+
+ * sysdeps/unix/sysv/linux/aarch64/gettimeofday.c (INIT_ARCH): Use
+ PREPARE_VERSION_KNOWN.
+ * sysdeps/unix/sysv/linux/aarch64/init-first.c: Likewise.
+ * sysdeps/unix/sysv/linux/dl-vdso.h (VDSO_NAME_LINUX_2_6_39): New
+ define.
+ (VDSO_HASH_LINUX_2_6_39): Likewise.
+ (VDSO_NAME_LINUX_4_9): Likewise.
+ (VDSO_HASH_LINUX_4_9): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/gettimeofday.c (INIT_ARCH): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/init-first.c
+ (_libc_vdso_platform_setup): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/time.c (INIT_ARCH): Likewise.
+ * sysdeps/unix/sysv/linux/s390/init-first.c (_libc_vdso_platform_setup):
+ Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/init-first.c (__vdso_platform_setup):
+ Likewise.
+
+2019-06-20 Mike Crowe <mac@mcrowe.com>
+
+ * nptl/eintr.c: Use libsupport.
+ * nptl/tst-eintr1.c: Likewise.
+ * nptl/tst-eintr2.c: Likewise.
+ * nptl/tst-eintr3.c: Likewise.
+ * nptl/tst-eintr4.c: Likewise.
+ * nptl/tst-eintr5.c: Likewise.
+ * nptl/tst-mutex-errorcheck.c: Likewise.
+ * nptl/tst-mutex5.c: Likewise.
+
+ * support/test-driver.h: Add verbose_printf macro.
+
+ * support/xtime.h: Add xclock_now() helper function.
+
+2019-06-20 Dmitry V. Levin <ldv@altlinux.org>
+ Florian Weimer <fweimer@redhat.com>
+
+ [BZ #24228]
+ * libio/genops.c (_IO_unbuffer_all)
+ [SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)]: Do not attempt to free wide
+ buffers and access _IO_FILE_complete members of legacy libio streams.
+ * libio/tst-bz24228.c: New file.
+ * libio/tst-bz24228.map: Likewise.
+ * libio/Makefile [build-shared] (tests): Add tst-bz24228.
+ [build-shared] (generated): Add tst-bz24228.mtrace and
+ tst-bz24228.check.
+ [run-built-tests && build-shared] (tests-special): Add
+ $(objpfx)tst-bz24228-mem.out.
+ (LDFLAGS-tst-bz24228, tst-bz24228-ENV): New variables.
+ ($(objpfx)tst-bz24228-mem.out): New rule.
+
+2019-06-19 Paul A. Clarke <pc@us.ibm.com>
+
+ * sysdeps/powerpc/fpu/fenv_libc.h (relax_fenv_state): Add 'volatile'.
+ * sysdeps/powerpc/fpu/fpu_control.h (__FPU_MFFS): Likewise.
+ (__FPU_MFFSL): Likewise.
+ (_FPU_SETCW): Likewise.
+
+2019-06-19 Stan Shebs <stanshebs@google.com>
+ Raoni Fassina Firmino <raoni@linux.ibm.com>
+
+ [BZ #24640]
+ * sysdeps/unix/sysv/linux/powerpc/get_timebase_freq.c
+ [!SHARED] (__get_timebase_freq): Fix sense of a test in the
+ static-linking version.
+ * sysdeps/unix/sysv/linux/powerpc/Makefile
+ (tests-static): Add test-gettimebasefreq-static.
+ (tests): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/test-gettimebasefreq-static.c:
+ New file.
+
+2019-06-19 Rafał Lużyński <digitalfreak@lingonborough.com>
+
+ [BZ #24614]
+ * localedata/locales/nl_AW (n_sep_by_space): Set to 2 (a space
+ between the currency symbol and the minus sign).
+ (n_sign_posn): Set to 4 (the minus sign after the currency symbol).
+
+2019-06-19 Stefan Liebler <stli@linux.ibm.com>
+
+ [BZ #24556]
+ * string/test-strcasestr.c (check_result): Add NULL check.
+ * nss/tst-field.c (check_rewrite): Likewise.
+ * benchtests/bench-strstr.c (do_one_test): Likewise.
+ * string/test-strstr.c (check_result): Likewise.
+ * argp/argp-test.c (popt): Increase size of buf to 12.
+ * benchtests/bench-malloc-simple.c (bench):
+ Do not initialize tests array out of bounds.
+
+2019-06-19 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #24166]
+ * dlfcn/dlfcn.h (Dl_serinfo): Do not use array of length 1 for
+ dls_serpath field.
+
+2019-06-18 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #24323]
+ * include/elf.h (DT_1_SUPPORTED_MASK): Include DF_1_PIE.
+ * elf/dl-load.c (_dl_map_object_from_fd): Check for DF_1_PIE and
+ fail when called from dlopen.
+ * elf/Makefile [have-fpie && build-shared] (tests): Add
+ tst-dlopen-pie.
+ (tst-dlopen-pie): Link with -ldl.
+ (tst-dlopen-pie.out): Add run-time dependency on tst-pie1.
+ * elf/tst-dlopen-pie.c (do_test): New file.
+
+2019-06-17 Rafał Lużyński <digitalfreak@lingonborough.com>
+
+ [BZ #24614]
+ * localedata/Makefile (LOCALES): Add nl_NL.UTF-8.
+ * localedata/locales/nl_NL (n_sep_by_space): Set to 2 (a space
+ between the currency symbol and the minus sign).
+ (n_sign_posn): Set to 4 (the minus sign after the currency symbol).
+ * localedata/tst-strfmon1.c (tests): Add test data for nl_NL.UTF-8.
+
+2019-06-17 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/unix/sysv/linux/m68k/Makefile (sysdep_routines,
+ sysdep-rtld-routines): Remove rules.
+ * sysdeps/unix/sysv/linux/m68k/Versions (libc) [GLIBC_PRIVATE]:
+ Remove __vdso_atomic_cmpxchg_32 and __vdso_atomic_barrier.
+ (ld) [GLIBC_PRIVATE]: __rtld___vdso_read_tp,
+ __rtld___vdso_atomic_cmpxchg_32, and __rtld___vdso_atomic_barrier.
+ * sysdeps/unix/sysv/linux/m68k/coldfire/atomic-machine.h
+ (atomic_compare_and_exchange_val_acq, atomic_full_barrier): Remove
+ vDSO path for SHARED.
+ * sysdeps/unix/sysv/linux/m68k/init-first.c: Remove file.
+ * sysdeps/unix/sysv/linux/m68k/libc-m68k-vdso.c: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/m68k-helpers.S: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/m68k-vdso.c: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/m68k-vdso.h: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/m68k-helpers.c: New file.
+
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/Makefile
+ (libm-sysdep_routines): Add s_llround-power8, s_llround-power6x,
+ s_llround-power5+, s_llround-ppc64, and s_llroundf-ppc64.
+ (CFLAGS-s_llround-power8.c, CFLAGS-s_llround-power6x.c,
+ CFLAGS-s_llround-power5+.c): New rule.
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llround-power5+.c:
+ New file.
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llround-power6x.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llround-power8.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llround-ppc64.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llroundf-ppc64.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround.c: Move to ...
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llround.c: ... here.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llroundf.c: Move to ...
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llroundf.c: ... here.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_lround.c: Move to ...
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_lround.c: ... here.
+ * sysdeps/powerpc/powerpc64/fpu/Makefile
+ [$(subdir) == math] (CFLAGS-s_llround.c): New rule.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile
+ (libm-sysdep_routines): Remove s_llround-* objects.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power5+.S: Remove
+ file.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power6x.S:
+ Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power8.S:
+ Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-ppc64.S:
+ Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llroundf-ppc64.S:
+ Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/s_llround.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/s_llroundf.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/s_lround.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/s_lroundf.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/s_llround.c: New file.
+ * sysdeps/powerpc/powerpc64/fpu/s_llroundf.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/s_lround.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/s_lroundf.c: Likewise.
+ * sysdeps/powerpc/powerpc64/power5+/fpu/s_llround.S: Likewise.
+ * sysdeps/powerpc/powerpc64/power5+/fpu/s_llroundf.S: Likewise.
+ * sysdeps/powerpc/powerpc64/power6x/fpu/s_llround.S: Likewise.
+ * sysdeps/powerpc/powerpc64/power6x/fpu/s_llroundf.S: Likewise.
+ * sysdeps/powerpc/powerpc64/power8/fpu/s_llround.S: Likewise.
+ * sysdeps/powerpc/powerpc64/power8/fpu/s_llroundf.S: Likewise.
+
+ * sysdeps/powerpc/fpu/s_lrintf.S: Remove file.
+ * sysdeps/powerpc/powerpc64/fpu/s_lrintf.c: Move to ...
+ * sysdeps/powerpc/fpu/s_lrintf.c: ... here.
+ * sysdeps/powerpc/powerpc32/fpu/Makefile
+ [$(subdir) == math] (CFLAGS-s_lrint.c): New rule.
+ * sysdeps/powerpc/powerpc32/fpu/s_llrint.c (__llrint): Add power4
+ optimization.
+ * sysdeps/powerpc/powerpc32/fpu/s_llrintf.c (__llrintf): Likewise.
+ * sysdeps/powerpc/powerpc32/fpu/s_lrint.S: Remove file.
+ * sysdeps/powerpc/powerpc32/fpu/s_lrint.c: New file.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/Makefile
+ (CFLAGS-s_llrintf-power6.c, CFLAGS-s_llrintf-ppc32.c,
+ CFLAGS-s_llrint-power6.c, CFLAGS-s_llrint-ppc32.c,
+ CFLAGS-s_lrint-ppc32.c): New rule.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrint-power6.S:
+ Remove file.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrint-ppc32.S:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrintf-power6.S:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrintf-ppc32.S:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrint-ppc32.S:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/s_llrint.S: Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/s_llrintf.S: Likewise.
+ * sysdeps/powerpc/powerpc32/power6/fpu/s_llrint.S: Likewise.
+ * sysdeps/powerpc/powerpc32/power6/fpu/s_llrintf.S: Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrint-power6.c:
+ New file.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrint-ppc32.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrintf-power6.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrintf-ppc32.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrint-ppc32.c:
+ Likewise.
+
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/Makefile
+ (libm-sysdep_routines): Add s_llrint-power8, s_llrint-power6x, and
+ s_llrint-ppc64.
+ (CFLAGS-s_llrint-power8.c, CFLAGS-s_llrint-power6x.c): New rule.
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llrint-power6x.c: New
+ file.
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llrint-power8.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llrint-ppc64.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_lrint.c: Move to ...
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_lrint.c: ... here.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint.c: Move to ...
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llrint.c: ... here.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrintf.c: Move to ...
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llrintf.c: ... here.
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_lrint.c: New file.
+ * sysdeps/powerpc/powerpc64/fpu/Makefile: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile
+ (libm-sysdep_routines): Remove s_llrint-* objects.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-power6x.S: Remove
+ file.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-power8.S:
+ Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-ppc64.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/s_llrint.c: New file.
+ * sysdeps/powerpc/powerpc64/fpu/s_llrintf.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/s_lrint.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/s_lrintf.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/s_llrint.S: Remove file.
+ * sysdeps/powerpc/powerpc64/fpu/s_llrintf.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/s_lrint.S: Likewise.
+ * sysdeps/powerpc/powerpc64/power6x/fpu/s_llrint.S: Likewise.
+ * sysdeps/powerpc/powerpc64/power8/fpu/s_llrint.S: Likewise.
+
+2019-06-14 Florian Weimer <fweimer@redhat.com>
+
+ * sysdeps/unix/sysv/linux/bits/statx.h: Use string literal in
+ argument to __glibc_has_include to inhibit macro expansion.
+
+2019-06-14 Florian Weimer <fweimer@redhat.com>
+
+ * misc/sys/cdefs.h (__glibc_has_include): Do not use a
+ function-like macro, so that __has_include can inhibit expansion
+ of its argument.
+
+2019-06-13 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/bits/in.h (IPV6_ROUTER_ALERT_ISOLATE):
+ New macro.
+
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/localplt.data:
+ Allow memset in libc.so.
+
+2019-06-13 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * sysdeps/aarch64/dl-dtprocnum.h: New file.
+ * sysdeps/aarch64/dl-machine.h (DT_AARCH64): Define.
+ (elf_machine_runtime_setup): Handle DT_AARCH64_VARIANT_PCS.
+ (elf_machine_lazy_rel): Check STO_AARCH64_VARIANT_PCS and bind such
+ symbols at load time.
+ * sysdeps/aarch64/linkmap.h (struct link_map_machine): Add variant_pcs.
+
+2019-06-13 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * elf/elf.h (STO_AARCH64_VARIANT_PCS): Define.
+ (DT_AARCH64_VARIANT_PCS): Define.
+
+2019-06-12 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/Makefile
+ (sysdeps_routines, libm-sysdep_routines): Remove s_finite*
+ objects.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_finite-power7.S:
+ Remove file.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_finite-ppc32.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_finite.c: Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_finitef-ppc32.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_finitef.c: Likewise.
+ * sysdeps/powerpc/powerpc32/power7/fpu/s_finite.S: Likewise.
+ * sysdeps/powerpc/powerpc32/power7/fpu/s_finitef.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile (sysdep_call):
+ Remove s_finite* objects.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite-power7.S: Remove file.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite-power8.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite-ppc64.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_finitef-ppc64.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_finitef.c: Likewise.
+ * sysdeps/powerpc/powerpc64/power7/fpu/s_finite.S: Likewise.
+ * sysdeps/powerpc/powerpc64/power7/fpu/s_finitef.S: Likewise.
+ * sysdeps/powerpc/powerpc64/power8/fpu/s_finite.S: Likewise.
+ * sysdeps/powerpc/powerpc64/power8/fpu/s_finitef.S: Likewise.
+
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_finite.c: Move to ...
+ * sysdeps/ieee754/dbl-64/s_finite.c: ... here and format code.
+
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/Makefile
+ (sysdeps_routines, libm-sysdep_routines): Remove s_isinf* and s_isinf*
+ objects.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isinf-power7.S:
+ Remove file.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isinf-ppc32.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isinf.c: Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isinff-ppc32.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isinff.c: Likewise.
+ * sysdeps/powerpc/powerpc32/power7/fpu/s_isinf.S: Likewise.
+ * sysdeps/powerpc/powerpc32/power7/fpu/s_isinff.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile (sysdep_call):
+ Remove s_isinf* and s_isinf* objects.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf-power7.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf-power8.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf-ppc64.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinff-ppc64.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinff.c: Likewise.
+ * sysdeps/powerpc/powerpc64/power7/fpu/s_isinf.S: Likewise.
+ * sysdeps/powerpc/powerpc64/power7/fpu/s_isinff.S: Likewise.
+ * sysdeps/powerpc/powerpc64/power8/fpu/s_isinf.S: Likewise.
+ * sysdeps/powerpc/powerpc64/power8/fpu/s_isinff.S: Likewise.
+
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_isinf.c: Move to ...
+ * sysdeps/ieee754/dbl-64/s_isinf.c: ... here and format code.
+
+ * sysdeps/powerpc/fpu/s_isnan.c: Remove file.
+ * sysdeps/powerpc/fpu/s_isnanf.S: Likewise.
+ * sysdeps/powerpc/powerpc32/fpu/s_isnan.S: Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/Makefile
+ (sysdeps_routines, libm-sysdep_routines): Remove s_isnan-* and
+ s_isnanf-* objects.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnan-power5.S:
+ Remove file
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnan-power6.S:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnan-power7.S:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnan-ppc32.S:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnan.c: Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnanf-power5.S:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnanf-power6.S:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnanf.c: Likewise.
+ * sysdeps/powerpc/powerpc32/power5/fpu/s_isnan.S: Likewise.
+ * sysdeps/powerpc/powerpc32/power5/fpu/s_isnanf.S: Likewise.
+ * sysdeps/powerpc/powerpc32/power6/fpu/s_isnan.S: Likewise.
+ * sysdeps/powerpc/powerpc32/power6/fpu/s_isnanf.S: Likewise.
+ * sysdeps/powerpc/powerpc32/power7/fpu/s_isnan.S: Likewise.
+ * sysdeps/powerpc/powerpc32/power7/fpu/s_isnanf.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile (sysdep_calls):
+ Remove s_isnan-* and s_isnanf-* objects.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power5.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power6.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power6x.S:
+ Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power7.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power8.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-ppc64.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnanf.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/s_isnan.S: Likewise.
+ * sysdeps/powerpc/powerpc64/power5/fpu/s_isnan.S: Likewise.
+ * sysdeps/powerpc/powerpc64/power6/fpu/s_isnan.S: Likewise.
+ * sysdeps/powerpc/powerpc64/power6x/fpu/s_isnan.S: Likewise.
+ * sysdeps/powerpc/powerpc64/power7/fpu/s_isnan.S: Likewise.
+ * sysdeps/powerpc/powerpc64/power7/fpu/s_isnanf.S: Likewise.
+ * sysdeps/powerpc/powerpc64/power8/fpu/s_isnan.S: Likewise.
+ * sysdeps/powerpc/powerpc64/power8/fpu/s_isnanf.S: Likewise.
+
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_isnan.c: Move to ...
+ * sysdeps/ieee754/dbl-64/s_isnan.c: ... here and format code.
+
+ * benchtests/Makefile (bench-math): Add isnan, isinf, and isfinite.
+ (CFLAGS-bench-isnan.c, CFLAGS-bench-isinf.c,
+ CFLAGS-bench-isfinite.c): New rule.
+ * benchtests/isnan-input: New file.
+ * benchtests/isinf-input: New file.
+ * benchtests/isfinite-input: New file.
+
+ * sysdeps/powerpc/fpu/s_copysign.c: New file.
+ * sysdeps/powerpc/fpu/s_copysignf.c: Likewise.
+ * sysdeps/powerpc/powerpc32/fpu/s_copysign.S: Remove file.
+ * sysdeps/powerpc/powerpc32/fpu/s_copysignf.S: Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/Makefile
+ (sysdep_routines, libm-sysdep_routines): Remove s_copysign-power6 and
+ s_copysign-ppc32.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysign-power6.S:
+ Remove file.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysign-ppc32.S:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysign.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysignf.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power6/fpu/s_copysign.S: Likewise.
+ * sysdeps/powerpc/powerpc32/power6/fpu/s_copysignf.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile (sysdeps_calls):
+ Remove s_copysign-power6 s_copysign-ppc64.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign-power6.S:
+ Remove file.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign-ppc64.S:
+ Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysignf.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/s_copysign.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/s_copysignf.S: Likewise.
+ * sysdeps/powerpc/powerpc64/power6/fpu/s_copysign.S: Likewise.
+ * sysdeps/powerpc/powerpc64/power6/fpu/s_copysignf.S: Likewise.
+
+ * sysdeps/powerpc/fpu/round_to_integer.h (set_fenv_mode,
+ round_to_integer_float, round_mode): Add RINT handling.
+ (reset_fenv_mode): New symbol.
+ * sysdeps/powerpc/fpu/s_rint.c (__rint): Use generic implementation.
+ * sysdeps/powerpc/fpu/s_rintf.c (__rintf): Likewise.
+ * sysdeps/powerpc/powerpc32/fpu/s_rint.S: Remove file.
+ * sysdeps/powerpc/powerpc32/fpu/s_rintf.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/s_rint.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/s_rintf.S: Likewise.
+
+2019-06-12 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #24632]
+ * libio/libioP.h (_IO_JUMPS_FUNC_UPDATE): New macro.
+ * libio/freopen.c (freopen): Use it.
+
+2019-06-12 Florian Weimer <fweimer@redhat.com>
+
+ Linux: Deprecate sysctl.
+ * include/sysctl.h (__sysctl): Remove declaration.
+ * scripts/check-installed-headers.sh (sys/sysctl.h): Disable
+ check.
+ * sysdeps/unix/sysv/linux/sys/sysctl.h: Add deprecation warning.
+ (sysctl): Add deprecation attribute.
+ * sysdeps/unix/sysv/linux/sysctl.c: Include <linux/sysctl.h>
+ directly, to avoid the deprecation warning. Do not include
+ <string.h>.
+ (__sysctl): Remove hidden alias.
+
+2019-06-12 Florian Weimer <fweimer@redhat.com>
+
+ Linux: Use kernel headers for statx definitions if available.
+ * include/bits/statx-generic.h: New file.
+ * include/bits/types/struct_statx.h: Likewise.
+ * include/bits/types/struct_statx_timestamp.h: Likewise.
+ * io/Makefile (headers): Add bits/statx-generic.h.
+ * io/bits/statx-generic.h: New file. Partly copied from
+ io/bits/statx.h.
+ * io/statx_generic.c: Include <bits/types/struct_statx.h> to
+ define original_statx.
+ * io/bits/types/struct_statx.h: Likewise.
+ * io/bits/types/struct_statx_timestamp.h: Likewise.
+ (statx_generic): Use original_statx.
+ * io/bits/statx.h: Rewrite to include <bits/statx-generic.h>.
+ * sysdeps/unix/sysv/linux/bits/statx.h: New file.
+
+2019-06-12 Florian Weimer <fweimer@redhat.com>
+
+ * misc/sys/cdefs.h (__glibc_has_include): Define.
+
+2019-06-12 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * string/memmem.c (__memmem): Rewrite to improve performance.
+
+2019-06-12 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * string/str-two-way.h (two_way_short_needle): Add inline to avoid
+ warning.
+ (two_way_long_needle): Block inlining.
+ * string/strstr.c (strstr2): Add new function.
+ (strstr3): Likewise.
+ (STRSTR): Completely rewrite strstr to improve performance.
+
+2019-06-11 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * benchtests/bench-strstr.c (test_hard_needle): New function.
+
+2019-06-10 Joseph Myers <joseph@codesourcery.com>
+
+ * malloc/tst-calloc.c: Include <libc-diag.h>.
+ (null_test): Ignore -Wunused-result around calls to calloc.
+ * malloc/tst-mallocfork.c: Include <libc-diag.h>.
+ (do_test): Ignore -Wunused-result around call to malloc.
+
+2019-06-07 Florian Weimer <fweimer@redhat.com>
+
+ Linux: Add getdents64 system call.
+ * include/dirnent.h (getdents): Add comment and change buffer
+ argument type to void *.
+ (getdents64): Likewise. Add hidden prototype.
+ * sysdeps/unix/sysv/linux/bits/Versions (GLIBC_2.30): Export
+ getdents64.
+ * sysdeps/unix/sysv/linux/Makefile [$(subdir) == dirent] (tests):
+ Add tst-getdents64.
+ * sysdeps/unix/sysv/linux/bits/unistd_ext.h (getdents64): Declare.
+ * sysdeps/unix/sysv/linux/getdents.c (__getdents): Change buffer
+ argument type to void *.
+ * sysdeps/unix/sysv/linux/getdents64.c (__getdents64): Likewise.
+ Add hidden definition and getdents64 alias.
+ * sysdeps/unix/sysv/linux/mips/mips64/getdents64.c (__getdents64):
+ Likewise.
+ * sysdeps/unix/sysv/linux/tst-getdents64.c: New file.
+ * manual/filesys.texi (Accessing Directories): Add Low-level
+ Directory Access node reference.
+ (Opening a Directory): Cross-reference it.
+ (Low-level Directory Access): New node.
+ * sysdeps/unix/sysv/linux/aarch64/libc.abilist (GLIBC_2.30): Add
+ getdents64.
+ * sysdeps/unix/sysv/linux/alpha/libc.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/arm/libc.abilist (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/csky/libc.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/hppa/libc.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/i386/libc.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/ia64/libc.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/microblaze/libc.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/nios2/libc.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/sh/libc.abilist (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist (GLIBC_2.30):
+ Likewise.
+
+2019-06-06 Paul A. Clarke <pc@us.ibm.com>
+
+ * sysdeps/powerpc/fpu_control.h (_FPU_MASK_RC): New.
+ (__FPU_MFFS): New.
+ (__FPU_MFFSL): New.
+ (_FPU_GET_RC): New.
+ (_FPU_GETCW): Use __FPU_MFFS().
+ * sysdeps/powerpc/fpu/get-rounding-mode.h: New file.
+
+2019-06-06 Florian Weimer <fweimer@redhat.com>
+
+ * sysdeps/unix/sysv/linux/riscv/flush-icache.c: Do not use
+ internal GCC preprocessor identifier __has_include__.
+
+2019-06-05 Paul A. Clarke <pc@us.ibm.com>
+
+ * sysdeps/powerpc/fpu/fegetexcept.c (__fegetexcept): Replace code
+ with call to equivalent function.
+
+2019-06-04 Florian Weimer <fweimer@redhat.com>
+
+ * iconv/gconv_dl.c (release_handle): Remove file-level definition.
+ (do_release_shlib): Adjust for __twalk_r.
+ (__gconv_release_shlib): Call __twalk_r.
+
+2019-06-04 Andreas Schwab <schwab@suse.de>
+
+ [BZ #18830]
+ * iconv/skeleton.c (FUNCTION_NAME): Use RESET_INPUT_BUFFER only if
+ no irreversible characters occurred.
+ * iconv/gconv_simple.c (internal_ucs4_loop)
+ (internal_ucs4_loop_unaligned, internal_ucs4_loop_single)
+ (ucs4_internal_loop, ucs4_internal_loop_unaligned)
+ (ucs4_internal_loop_single, internal_ucs4le_loop)
+ (internal_ucs4le_loop_unaligned, internal_ucs4le_loop_single)
+ (ucs4le_internal_loop, ucs4le_internal_loop_unaligned)
+ (ucs4le_internal_loop_single): Add const to outend.
+ * sysdeps/s390/multiarch/gconv_simple.c (internal_ucs4le_loop)
+ (ucs4_internal_loop, ucs4le_internal_loop): Likewise.
+ * iconv/Makefile (tests): Add tst-iconv7.
+ * iconv/tst-iconv7.c: New file.
+
+2019-06-03 Joseph Myers <joseph@codesourcery.com>
+
+ * inet/netinet/in.h (INADDR_ALLSNOOPERS_GROUP): New macro.
+
+2019-06-01 Florian Weimer <fweimer@redhat.com>
+
+ arm: Remove ioperm/iopl/inb/inw/inl/outb/outw/outl support.
+ * sysdeps/unix/sysv/linux/arm/Makefile
+ [$(subdir) == misc] (sysdep_headers): Remove sys/io.h.
+ * sysdeps/unix/sysv/linux/arm/sys/io.h: Remove file.
+ * sysdeps/unix/sysv/linux/arm/ioperm.c: Rewrite file.
+ (ioperm, iopl, inb, inw, inl, outb, outw, outl): Turn into
+ compatibility symbols.
+
+2019-05-31 Florian Weimer <fweimer@redhat.com>
+
+ * sysdeps/unix/sysv/linux/syscall-names.list: Add oddly named
+ system calls for the arm architecture: breakpoint, get_tls,
+ set_tls, usr26, usr32.
+
+2019-05-30 Gabriel F. T. Gomes <gabrielftg@linux.ibm.com>
+
+ * sysdeps/powerpc/Makefile
+ [$(subdir) == misc] (CFLAGS-tst-set_ppr.c): New variable.
+ * sysdeps/powerpc/powerpc64/power4/memcmp.S [__LITTLE_ENDIAN__]:
+ Declare '.machine power7' to get support for ldbrx.
+ * sysdeps/powerpc/powerpc64/power7/strncmp.S: Declare '.machine'
+ directive based on the directory of the file.
+ * sysdeps/powerpc/powerpc64/power8/fpu/s_llround.S: Likewise.
+ * sysdeps/powerpc/powerpc64/power8/strcmp.S: Likewise.
+ * sysdeps/powerpc/powerpc64/power8/strcasecmp.S: Update
+ '.machine' directive.
+ (VCLZD_V8_v7, MFVRD_R3_V1, VSUBUDM_V9_V8, VPOPCNTD_V8_V8)
+ (VADDUQM_V7_V8): Remove.
+ (__STRCASECMP): Replace macros with actual instructions.
+ * sysdeps/powerpc/powerpc64/power8/strcasestr.S: Update
+ '.machine' directive.
+ (VCLZD_V8_v7): Remove.
+ (STRCASESTR): Replace VCLZD_V8_v7 with actual instruction.
+
+2019-05-29 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/get_clockfreq.c:
+ Remove file.
+ * sysdeps/unix/sysv/linux/x86_64/get_clockfreq.c: Likewise.
+
+2019-05-28 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/powerpc/fpu/round_to_integer.h (set_fenv_mode): Add
+ NEARBYINT handling.
+ * sysdeps/powerpc/fpu/s_nearbyint.c: New file.
+ * sysdeps/powerpc/fpu/s_nearbyintf.c: Likewise.
+ * sysdeps/powerpc/powerpc32/fpu/s_nearbyint.S: Remove file.
+ * sysdeps/powerpc/powerpc32/fpu/s_nearbyintf.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/s_nearbyint.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/s_nearbyintf.S: Likewise.
+
+2019-05-28 mansayk <6688000@gmail.com>
+
+ [BZ #24370]
+ * localedata/locales/tt_RU (lang_name): Add from CLDR-35.1.
+
+2019-05-28 mansayk <6688000@gmail.com>
+
+ [BZ #24369]
+ * localedata/locales/tt_RU (mon): Update from CLDR-35.1, fix errors.
+ (abmon): Likewise, but remove the trailing dots.
+
+2019-05-28 Joseph Myers <joseph@codesourcery.com>
+
+ * inet/netinet/igmp.h (IGMP_MRDISC_ADV): New macro.
+
+2019-05-27 Florian Weimer <fweimer@redhat.com>
+
+ * nptl/nptl-init.c: Add comment.
+
+2019-05-24 Florian Weimer <fweimer@redhat.com>
+
+ * resolv/nss_dns/dns-host.c (getanswer_r): Be more explicit about
+ struct in_addr/struct in6_addr alignment.
+
+2019-05-23 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/bits/fcntl-linux.h [__USE_GNU]
+ (F_SEAL_FUTURE_WRITE): New macro.
+
+2019-05-23 Alexandra Hájková <ahajkova@redhat.com>
+
+ * elf/Makefile (test-container): Add tst-ldconfig-bad-aux-cache.
+ * elf/tst-ldconfig-bad-aux-cache.c: New file.
+ * elf/tst-ldconfig_aux-cache.root: New directory.
+ * elf/tst-ldconfig-bad-aux-cache.root/postclean.req: New file.
+ * elf/tst-ldconfig-bad-aux-cache.root/etc: New directory.
+ * elf/tst-ldconfig-bad-aux-cache.root/etc/ld.so.conf: New file.
+
+2019-05-22 Zack Weinberg <zackw@panix.com>
+
+ * sysdeps/powerpc/preconfigure: Error out on powerpc-*-*gnuspe*
+ host type.
+ * scripts/build-many-glibcs.py: Remove powerpc-*-linux-gnuspe
+ and powerpc-*-linux-gnuspe-e500v1 from list of build configurations.
+
+ * sysdeps/powerpc/powerpc32/e500: Recursively delete.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/e500: Recursively delete.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/context-e500.h:
+ Delete.
+
+ * sysdeps/powerpc/fpu_control.h: Remove SPE variant.
+ Issue an #error if used with a compiler in SPE-float mode.
+ * sysdeps/powerpc/powerpc32/__longjmp_common.S
+ * sysdeps/powerpc/powerpc32/setjmp_common.S
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext-common.S
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/getcontext.S
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/setcontext.S
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/swapcontext.S
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S:
+ Remove code to preserve SPE register state.
+
+ * sysdeps/unix/sysv/linux/powerpc/elision-lock.c
+ * sysdeps/unix/sysv/linux/powerpc/elision-trylock.c
+ * sysdeps/unix/sysv/linux/powerpc/elision-unlock.c:
+ Remove __SPE__ ifndefs.
+
+2019-05-21 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * benchtests/bench-memcpy-random.c (do_one_test): Use medium iterations.
+ * benchtests/bench-memcpy-walk.c (test_main): Reduce alignment tests.
+ * benchtests/bench-memmem.c (do_one_test): Use small iterations.
+ * benchtests/bench-memmove-walk.c (test_main): Reduce alignment tests.
+ * benchtests/bench-memset-walk.c (test_main): Reduce alignment tests.
+ * benchtests/bench-strcasestr.c (do_one_test): Use small iterations.
+ * benchtests/bench-string.h (INNER_LOOP_ITERS): Increase iterations.
+ (INNER_LOOP_ITERS_MEDIUM): New define.
+ (INNER_LOOP_ITERS_SMALL): New define.
+ * benchtests/bench-strpbrk.c (do_one_test): Use medium iterations.
+ * benchtests/bench-strsep.c (do_one_test): Use small iterations.
+ * benchtests/bench-strspn.c (do_one_test): Use medium iterations.
+ * benchtests/bench-strstr.c (do_one_test): Use small iterations.
+ * benchtests/bench-strtok.c (do_one_test): Use small iterations.
+
+2019-05-21 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/unix/sysv/linux/powerpc/ipc_priv.h (SEMTIMEDOP_IPC_ARGS):
+ New define.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/ipc_priv.h
+ (SEMTIMEDOP_IPC_ARGS): Likewise.
+
+2019-05-21 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #24584]
+ * wcsmbs/wcsmbsload.c (__wcsmbs_clone_conv): Acquire __gconv_lock
+ before updating __counter field and release it afterwards. Add
+ overflow check.
+ * iconv/gconv.h (struct __gconv_step): Mention synchronization
+ requirement for __counter member.
+
+2019-05-21 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #24583]
+ * wcsmbs/wcsmbsload.h (__wcsmbs_close_conv): Declare.
+ * wcsmbs/wcsmbsload.c (__wcsmbs_close_conv): Define.
+ * libio/iofclose.c (_IO_new_fclose): Call __wcsmbs_close_conv
+ instead of __gconv_release_step.
+ * libio/Makefile (tests): Add tst-wfile-gconv.
+ (tests-container): Add tst-wfile-ascii.
+ (tst-wfile-gconv-ENV): Enable mtrace.
+ (generated): Add tst-wfile-gconv.mtrace, tst-wfile-gconv.check.
+ (tests-special): Add tst-wfile-gconv-mem.out.
+ (tst-wfile-gconv.out): Depend on locales.
+ (tst-wfile-gconv-mem.out): Add mtrace rule.
+ * libio/tst-wfile-ascii.c: New file.
+ * libio/tst-wfile-gconv.c: Likewise.
+
+2019-05-20 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #24588]
+ libio: Remove codecvt vtable.
+ * libio/fileops.c ( _IO_new_file_fopen): Do not copy
+ __libio_codecvt.
+ * libio/iofgetpos.c (_IO_new_fgetpos): Call
+ __libio_codecvt_encoding.
+ * libio/iofgetpos64.c (_IO_new_fgetpos): Likewise.
+ * libio/iofsetpos.c (_IO_new_fsetpos): Likewise.
+ * libio/iofsetpos64.c (_IO_new_fsetpos): Likewise.
+ * libio/iofwide.c (__libio_codecvt): Remove variable.
+ (_IO_fwide): Do not copy __libio_codecvt.
+ (__libio_codecvt_out): Rename from do_out and export.
+ (do_unshift): Remove function.
+ (__libio_codecvt_in): Rename from do_in and export.
+ (__libio_codecvt_encoding): Rename from do_encoding and export.
+ (do_always_noconv): Remove function.
+ (__libio_codecvt_length): Rename from do_length and export.
+ (do_max_length): Remove function.
+ * libio/libio.h (enum __codecvt_result): Remove definition; moved
+ to libioP.h.
+ (struct _IO_codecvt): Remove fields __codecvt_destr,
+ __codecvt_do_out, __codecvt_do_unshift, __codecvt_do_in,
+ __codecvt_do_encoding, __codecvt_do_always_noconv,
+ __codecvt_do_length, __codecvt_do_max_length.
+ * libio/libioP.h (enum __codecvt_result): Define; moved from
+ libio.h.
+ (__libio_codecvt_out, __libio_codecvt_in)
+ (__libio_codecvt_encoding, __libio_codecvt_length): Declare
+ functions.
+ * libio/wfileops.c (_IO_wdo_write): Call __libio_codecvt_out.
+ (_IO_wfile_underflow): Call __libio_codecvt_in.
+ (_IO_wfile_underflow): Likewise.
+ (_IO_wfile_underflow_mmap): Likewise.
+ (_IO_wfile_sync): Call __libio_codecvt_encoding,
+ __libio_codecvt_length.
+ (adjust_wide_data): Call __libio_codecvt_encoding,
+ __libio_codecvt_in.
+ (do_ftell_wide): Call __libio_codecvt_length, __libio_codecvt_out.
+ (_IO_wfile_seekoff): Call __libio_codecvt_encoding,
+ __libio_codecvt_length.
+
+2019-05-20 Florian Weimer <fweimer@redhat.com>
+
+ * support/support.h (support_sbindir_prefix): Declare.
+ (support_install_rootsbindir): Update comment.
+ * support/Makefile (CFLAGS-support_paths.c): Define SBINDIR_PATH.
+ * support/support_paths.c (support_sbindir_prefix): Define.
+
+2019-05-20 Mike Crowe <mac@mcrowe.com>
+
+ * support/timespec.c: Add backslash to correct newline in failure
+ message.
+
+ * support/timespec.h: Correct confusing comment.
+
+2019-05-20 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/unix/sysv/linux/ipc_priv.h (SEMTIMEDOP_IPC_ARGS): New
+ define.
+ * sysdpes/unix/sysv/linux/s390/ipc_priv.h: New file.
+ * sysdeps/unix/sysv/linux/s390/semtimedop.c: Remove file.
+ * sysdeps/unix/sysv/linux/semtimedop.c (semtimedop): Use
+ SEMTIMEDOP_IPC_ARGS for calls with __NR_ipc.
+
+ [BZ #24570]
+ * sysdeps/unix/sysv/linux/msgctl.c (__old_msgctl): Remove __IPC_64
+ usage.
+
+2019-05-20 Joseph Myers <joseph@codesourcery.com>
+
+ * elf/elf.h (NT_ARM_PACA_KEYS): New macro.
+ (NT_ARM_PACG_KEYS): Likewise.
+
+2019-05-17 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * malloc/malloc.c (MAX_TCACHE_COUNT): Increase to UINT16_MAX.
+ (tcache_put): Remove redundant assert.
+ (tcache_get): Remove redundant asserts.
+ (__libc_malloc): Check tcache count is not zero.
+ * manual/tunables.texi (glibc.malloc.tcache_count): Update maximum.
+
+2019-05-17 Florian Weimer <fweimer@redhat.com>
+
+ * manual/llio.texi (Open-time Flags): Document O_DIRECTORY.
+
+2019-05-16 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/alpha/kernel-features.h
+ (__ASSUME_STATFS64): Only undefine if [__LINUX_KERNEL_VERSION <
+ 0x050100].
+ * sysdeps/unix/sysv/linux/ia64/kernel-features.h (__ASSUME_STATX):
+ Likewise.
+ * sysdeps/unix/sysv/linux/sh/kernel-features.h
+ (__ASSUME_STATX): Likewise.
+
+2019-05-16 Florian Weimer <fweimer@redhat.com>
+
+ * nis/nss_nis/nis-hosts.c (EXTRA_ARGS, EXTRA_ARGS_DECL): Remove
+ flags argument.
+ (LINE_PARSER): Do not map IPv4 addresses.
+ (internal_nis_gethostent_r): Remove flags argument. Adjust call
+ to parse_line.
+ (_nss_nis_gethostent_r): Always pass AF_INET to
+ internal_nis_gethostent_r.
+ (internal_gethostbyname2_r): Remove flags argument. Adjust call
+ to parse_line.
+ (_nss_nis_gethostbyname2_r): Adjust call to
+ internal_nis_gethostent_r.
+ (_nss_nis_gethostbyname_r): Do not attempt IPv6 query. Adjust
+ call to internal_nis_gethostent_r.
+ (_nss_nis_gethostbyaddr_r): Do not request IPv4 address mapping
+ from parse_line.
+ (_nss_nis_gethostbyname4_r):Adjust call to parse_line.
+ * nis/nss_nisplus/nisplus-hosts.c (_nss_nisplus_parse_hostent):
+ Remove flags argument. Do not map IPv4 addresses.
+ (internal_nisplus_gethostent_r): Adjust call to
+ _nss_nisplus_parse_hostent.
+ (internal_gethostbyname2_r): Remove flags argument. Adjust call
+ to _nss_nisplus_parse_hostent.
+ (_nss_nisplus_gethostbyname2_r): Adjust call to
+ internal_gethostbyname2_r.
+ (_nss_nisplus_gethostbyname_r): Do not perform IPv6 lookup.
+ Adjust call to internal_gethostbyname2_r.
+ (_nss_nisplus_gethostbyaddr_r): Adjust call to
+ _nss_nisplus_parse_hostent.
+ (_nss_nisplus_gethostbyname4_r): Adjust call to
+ internal_gethostbyname2_r.
+
+2019-05-16 Florian Weimer <fweimer@redhat.com>
+
+ * nss/nss_files/files-hosts.c (EXTRA_ARGS, EXTRA_ARGS_DECL):
+ Remove flags.
+ (LINE_PARSER): Remove address mapping.
+ (EXTRA_ARGS_VALUE): Remove flags argument.
+ (gethostbyname3_multi): Likewise. Adjust call to internal_getent.
+ (_nss_files_gethostbyname3_r): Adjust calls to internal_getent and
+ gethostbyname3_multi.
+ (_nss_files_gethostbyname_r): Always use AF_INET. Adjust call to
+ _nss_files_gethostbyname3_r.
+ (_nss_files_gethostbyname4_r): Adjust call to internal_getent.
+
+2019-05-16 Florian Weimer <fweimer@redhat.com>
+
+ * support/support_test_compare_blob.c (report_blob): Report
+ incorrect NULL blobs.
+
+2019-05-15 Mark Wielaard <mark@klomp.org>
+
+ [BZ# 24476]
+ * dlfcn/dlerror.c (__dlerror_main_freeres): Guard using
+ __libc_once_get (once) and static_buf == NULL.
+ (__dlerror): Check we have a valid key, set result to static_buf
+ otherwise.
+
+2019-05-15 Andreas Schwab <schwab@suse.de>
+
+ [BZ #20568]
+ * libio/wfileops.c (_IO_wfile_sync): Correct last argument to
+ __codecvt_do_length.
+ * libio/Makefile (tests): Add tst-wfile-sync.
+ ($(objpfx)tst-wfile-sync.out): Depend on $(gen-locales).
+ * libio/tst-wfile-sync.c: New file.
+ * libio/tst-wfile-sync.input: New file.
+
+2019-05-15 Florian Weimer <fweimer@redhat.com>
+
+ nss: Turn __nss_database_lookup into a compatibility symbol.
+ * nss/nsswitch.h (__nss_database_lookup2): Renamed from
+ __nss_database_lookup.
+ * nss/nsswitch.c (__nss_database_lookup2): Likewise.
+ (nss_load_all_libraries): Call __nss_database_lookup2 instead of
+ __nss_database_lookup.
+ (__nss_next): Move to …
+ * nss/compat-lookup.c (nss_next): … here. Change it to fail
+ unconditionally.
+ (__nss_database_lookup): New function.
+ * nss/Versions (GLIBC_2.0): Update comment.
+ (GLIBC_PRIVATE): Export __nss_database_lookup2.
+ * grp/initgroups.c (internal_getgrouplist): Call
+ __nss_database_lookup2 instead of __nss_database_lookup.
+ * nscd/aicache.c (addhstaiX): Likewise.
+ * nscd/initgrcache.c (addinitgroupsX): Likewise.
+ * nscd/netgroupcache.c (addgetnetgrentX): Likewise.
+ * nss/XXX-lookup.c (DB_LOOKUP_FCT): Likewise.
+ * nss/nss_compat/compat-grp.c (init_nss_interface): Likewise.
+ * nss/nss_compat/compat-initgroups.c (init_nss_interface):
+ Likewise.
+ * nss/nss_compat/compat-pwd.c (init_nss_interface): Likewise.
+ * nss/nss_compat/compat-spwd.c (init_nss_interface): Likewise.
+ * sysdeps/posix/getaddrinfo.c (gaih_inet): Likewise.
+
+2019-05-15 Alexandra Hájková <ahajkova@redhat.com>
+
+ * support/support.h (support_install_rootsbindir): New variable.
+ * support/support_paths.c: Likewise.
+ * support/Makefile (CFLAGS-support_paths.c): Add -DROOTSBINDIR_PATH.
+
+2019-05-15 Florian Weimer <fweimer@redhat.com>
+
+ * iconv/gconv.h (__gconv_transliterate): Move declaration …
+ * iconv/gconv_int.h (__gconv_transliterate): … here.
+ * iconv/loop.c: Include <iconv/gconv_int.h> instead of <gconv.h>.
+ * iconv/skeleton.c: Likewise.
+
+2019-05-14 Florian Weimer <fweimer@redhat.com>
+
+ Linux: Add the tgkill function.
+ * bits/signal_ext.h: New file.
+ * manual/signal.texi (Signaling Another Process): Document tgkill.
+ * signal/Makefile (headers): Add bits/signal_ext.h.
+ * signal/signal.h: Include <bits/signal_ext.h>.
+ * sysdeps/unix/sysv/linux/Makefile (tests): Add tst-tgkill.
+ (tst-tgkill): Link with libpthread.
+ * sysdeps/unix/sysv/linux/Versions (GLIBC_2.30): Export tgkill.
+ * sysdeps/unix/sysv/linux/bits/signal_ext.h: New file.
+ * sysdeps/unix/sysv/linux/bits/tst-tgkill.c: Likewise.
+ * sysdeps/unix/sysv/linux/aarch64/libc.abilist (GLIBC_2.30): Add
+ tgkill.
+ * sysdeps/unix/sysv/linux/alpha/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/arm/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/csky/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/hppa/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/i386/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/ia64/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/microblaze/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/nios2/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sh/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Likewise.
+
+2019-05-14 Carlos O'Donell <carlos@redhat.com>
+
+ * manual/search.texi (Tree Search Function): Adjust twalk_r
+ documentation.
+
+2019-05-14 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ [BZ #24544]
+ * elf/tst-pldd.c (do_test): Use support_bindir_prefix instead of
+ pre-defined value.
+
+ * support/Makefile (CFLAGS-support_paths.c): Add -DBINDIR_PATH.
+ * support/support.h (support_bindir_prefix): New variable.
+ * support/support_paths.c [BINDIR_PATH] (support_bindir_prefix):
+
+ * config.make.in (bindir): New variable.
+
+ * sysdeps/nptl/lowlevellock.h (__lll_trylock): New macro.
+ (lll_trylock): Call __lll_trylock.
+ * sysdeps/unix/sysv/linux/i386/libc-lowlevellock.S: Remove file.
+ * sysdeps/unix/sysv/linux/i386/lll_timedlock_wait.c: Likewise.
+ * sysdeps/unix/sysv/linux/i386/lowlevellock.S: Likewise.
+ * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/lll_timedlock_wait.c: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
+ * sysdeps/unix/sysv/linux/x86/lowlevellock.h: New file.
+ * sysdeps/unix/sysv/linux/x86_64/cancellation.S: Include
+ lowlevellock-futex.h.
+
+ * nptl/nptl-init.c (__pthread_initialize_minimal_internal): Remove
+ initialization for LLL_LOCK_INITIALIZER different than 0.
+ * nptl/old_pthread_cond_broadcast.c (__pthread_cond_broadcast_2_0):
+ Assume LLL_LOCK_INITIALIZER being 0.
+ * nptl/old_pthread_cond_signal.c (__pthread_cond_signal_2_0): Likewise.
+ * nptl/old_pthread_cond_timedwait.c (__pthread_cond_timedwait_2_0):
+ Likewise.
+ * nptl/old_pthread_cond_wait.c (__pthread_cond_wait_2_0): Likewise.
+ * sysdeps/nptl/libc-lockP.h (__libc_lock_define_initialized): Likewise.
+
+ * nptl/lowlevellock.c (__lll_lock_wait, __lll_lock_wait_private):
+ Optimize futex call and add systemtap probe.
+
+ * nptl/pthreadP.h (CANCEL_ASYNC, CANCEL_RESET, LIBC_CANCEL_ASYNC,
+ LIBC_CANCEL_RESET, __libc_enable_asynccancel,
+ __libc_disable_asynccancel, __librt_enable_asynccancel,
+ __libc_disable_asynccancel, __librt_enable_asynccancel,
+ __librt_disable_asynccancel): Move to ...
+ * sysdeps/unix/sysv/linux/sysdep-cancel.h: ... here.
+ (SINGLE_THREAD_P, RTLD_SINGLE_THREAD_P): Move to ...
+ * sysdeps/unix/sysv/linux/single-thread.h: ... here.
+ * sysdeps/generic/single-thread.h: New file.
+ * sysdeps/unix/sysdep.h: Include single-thread.h.
+ * sysdeps/unix/sysv/linux/futex-internal.h: Include sysdep-cancel.h.
+ * sysdeps/unix/sysv/linux/lowlevellock-futex.h: Likewise.
+
+2019-05-08 Mike FABIAN <mfabian@redhat.com>
+
+ [BZ #24535]
+ * localedata/unicode-gen/Makefile (UNICODE_VERSION): Set to 12.1.0.
+ * localedata/unicode-gen/DerivedCoreProperties.txt: Update to
+ Unicode 12.1.0.
+ * localedata/unicode-gen/EastAsianWidth.txt: Likewise.
+ * localedata/unicode-gen/PropList.txt: Likewise.
+ * localedata/unicode-gen/UnicodeData.txt: Likewise.
+ * localedata/charmaps/UTF-8: Regenerate.
+ * localedata/locales/i18n_ctype: Likewise.
+ * localedata/locales/tr_TR: Likewise.
+ * localedata/locales/translit_circle: Likewise.
+ * localedata/locales/translit_cjk_compat: Likewise.
+ * localedata/locales/translit_combining: Likewise.
+ * localedata/locales/translit_compat: Likewise.
+ * localedata/locales/translit_font: Likewise.
+ * localedata/locales/translit_fraction: Likewise.
+
+2019-05-10 Wilco Dijkstra <wdijkstr@arm.com>
+
+ [BZ #24531]
+ * malloc/malloc.c (MAX_TCACHE_COUNT): New define.
+ (do_set_tcache_count): Only update if count is small enough.
+ * manual/tunables.texi (glibc.malloc.tcache_count): Document max value.
+
+2019-05-10 Florian Weimer <fweimer@redhat.com>
+
+ * nptl/sem_close.c (struct walk_closure): Define.
+ (walker): Adjust for __twalk_r.
+ (sem_close): Call __twalk_r.
+
+2019-05-09 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * support/timespec.c (test_timespec_before_impl,
+ test_timespec_equal_or_after_impl): print timespec member as intmax_t
+ insted of long int.
+
+2019-05-09 Mike Crowe <mac@mcrowe.com>
+
+ * nptl/tst-abstime.c: Use libsupport.
+
+ * nptl/tst-rwlock6.c: Use libsupport. This also happens to fix a
+ small bug where only tv.tv_usec was checked which could cause an
+ erroneous pass if pthread_rwlock_timedrdlock incorrectly took more
+ than a second.
+
+ * nptl/tst-rwlock7.c, nptl/tst-rwlock9.c, nptl/tst-rwlock14.c: Use
+ libsupport.
+
+ * nptl/tst-sem5.c (do_test): Use xclock_gettime, timespec_add and
+ TEST_TIMESPEC_NOW_OR_AFTER from libsupport.
+
+ * nptl/tst-cond11.c: Use libsupport.
+
+ * support/timespec.h: New file. Provide timespec helper functions
+ along with macros in the style of those in check.h.
+ * support/timespec.c: New file. Implement check functions declared
+ in support/timespec.h.
+ * support/timespec-add.c: New file from gnulib containing
+ timespec_add implementation that handles overflow.
+ * support/timespec-sub.c: New file from gnulib containing
+ timespec_sub implementation that handles overflow.
+ * support/README: Mention timespec.h.
+
+2019-05-09 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ [BZ #24537]
+ * nptl/Makefile: Move tst-eintr1 to xtests.
+
+2019-05-09 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/powerpc/fpu/trunc_to_integer.h (set_fenv_mode): Add
+ TRUNC handling.
+ (round_mode): Add definition for TRUNC.
+ * sysdeps/powerpc/fpu/s_trunc.c: New file.
+ * sysdeps/powerpc/fpu/s_truncf.c: New file.
+ * sysdeps/powerpc/powerpc32/fpu/s_trunc.S: Remove file.
+ * sysdeps/powerpc/powerpc32/fpu/s_truncf.S: Likewise.
+ * sysdep/powerpc/powepc32/power4/fpu/multiarch/s_trunc-power5+.S:
+ Likewise.
+ * sysdep/powerpc/powepc32/power4/fpu/multiarch/s_trunc-ppc32.S:
+ Likewise.
+ * sysdep/powerpc/powepc32/power4/fpu/multiarch/s_truncf-power5+.S:
+ Likewise.
+ * sysdep/powerpc/powepc32/power4/fpu/multiarch/s_truncf-ppc32.S:
+ Likewise.
+ * sysdep/powerpc/powepc32/power4/fpu/multiarch/s_trunc-power5+.c: New
+ file.
+ * sysdep/powerpc/powepc32/power4/fpu/multiarch/s_trunc-ppc32.c:
+ Likewise.
+ * sysdep/powerpc/powepc32/power4/fpu/multiarch/s_truncf-power5+.c:
+ Likewise.
+ * sysdep/powerpc/powepc32/power4/fpu/multiarch/s_truncf-ppc32.c:
+ Likewise.
+ * sysdep/powerpc/powerpc32/power5+/fpu/s_trunc.S: Remove file.
+ * sysdep/powerpc/powerpc32/power5+/fpu/s_truncf.S: Likewise.
+ * sysdep/powerpc/powerpc64/be/fpu/multiarch/Makefile
+ (libm-sysdep_routines): Add s_trunc-power5+, s_trunc-ppc64,
+ s_truncf-power5+, and s_truncf-ppc64.
+ (CFLAGS-s_trunc-power5+.c, CFLAGS-s_truncf-power5+.c): New rule.
+ * sysdep/powerpc/powercp64/be/fpu/multiarch/s_trunc-power5+.c: New
+ file.
+ * sysdep/powerpc/powercp64/be/fpu/multiarch/s_trunc-ppc64.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_trunc.c: Move to ...
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_trunc.c: ... here.
+ * sysdep/powerpc/powercp64/be/fpu/multiarch/s_truncf-power5+.c: New
+ file.
+ * sysdep/powerpc/powercp64/be/fpu/multiarch/s_truncf-ppc64.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_truncf.c: Move to ...
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_truncf.c: ... here.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile
+ (libm-sysdep_routines): Remove s_trunc-power5+, s_trunc-ppc64,
+ s_truncf-power5+, and s_truncf-ppc64.
+ * sysdep/powerpc/powerpc64/fpu/multiarch/s_trunc-power5+.S: Remove
+ file.
+ * sysdep/powerpc/powerpc64/fpu/multiarch/s_trunc-ppc64.S: Likewise.
+ * sysdep/powerpc/powerpc64/fpu/multiarch/s_truncf-power5+.S:
+ Likewise.
+ * sysdep/powerpc/powerpc64/fpu/multiarch/s_truncf-ppc64.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/s_trunc.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/s_truncf.S: Likewise.
+ * sysdep/powerpc/powerpc64/power5+/fpu/s_trunc.S: Likewise.
+ * sysdep/powerpc/powerpc64/power5+/fpu/s_truncf.S: Likewise.
+
+ * sysdeps/powerpc/fpu/round_to_integer.h (set_fenv_mode): Add
+ ROUND handling.
+ (round_mode): Add definition for ROUND.
+ (round_to_integer_float): Likewise.
+ * sysdeps/powerpc/fpu/s_round.c: New file.
+ * sysdeps/powerpc/fpu/s_roundf.c: New file.
+ * sysdeps/powerpc/powerpc32/fpu/s_round.S: Remove file.
+ * sysdeps/powerpc/powerpc32/fpu/s_roundf.S: Likewise.
+ * sysdep/powerpc/powepc32/power4/fpu/multiarch/s_round-power5+.S:
+ Likewise.
+ * sysdep/powerpc/powepc32/power4/fpu/multiarch/s_round-ppc32.S:
+ Likewise.
+ * sysdep/powerpc/powepc32/power4/fpu/multiarch/s_roundf-power5+.S:
+ Likewise.
+ * sysdep/powerpc/powepc32/power4/fpu/multiarch/s_roundf-ppc32.S:
+ Likewise.
+ * sysdep/powerpc/powepc32/power4/fpu/multiarch/s_round-power5+.c: New
+ file.
+ * sysdep/powerpc/powepc32/power4/fpu/multiarch/s_round-ppc32.c:
+ Likewise.
+ * sysdep/powerpc/powepc32/power4/fpu/multiarch/s_roundf-power5+.c:
+ Likewise.
+ * sysdep/powerpc/powepc32/power4/fpu/multiarch/s_roundf-ppc32.c:
+ Likewise.
+ * sysdep/powerpc/powerpc32/power5+/fpu/s_round.S: Remove file.
+ * sysdep/powerpc/powerpc32/power5+/fpu/s_roundf.S: Likewise.
+ * sysdep/powerpc/powerpc64/be/fpu/multiarch/Makefile
+ (libm-sysdep_routines): Add s_round-power5+, s_round-ppc64,
+ s_roundf-power5+, and s_roundf-ppc64.
+ (CFLAGS-s_round-power5+.c, CFLAGS-s_roundf-power5+.c): New rule.
+ * sysdep/powerpc/powercp64/be/fpu/multiarch/s_round-power5+.c: New
+ file.
+ * sysdep/powerpc/powercp64/be/fpu/multiarch/s_round-ppc64.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_round.c: Move to ...
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_round.c: ... here.
+ * sysdep/powerpc/powercp64/be/fpu/multiarch/s_roundf-power5+.c: New
+ file.
+ * sysdep/powerpc/powercp64/be/fpu/multiarch/s_roundf-ppc64.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_roundf.c: Move to ...
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_roundf.c: ... here.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile
+ (libm-sysdep_routines): Remove s_round-power5+, s_round-ppc64,
+ s_roundf-power5+, and s_roundf-ppc64.
+ * sysdep/powerpc/powerpc64/fpu/multiarch/s_round-power5+.S: Remove
+ file.
+ * sysdep/powerpc/powerpc64/fpu/multiarch/s_round-ppc64.S: Likewise.
+ * sysdep/powerpc/powerpc64/fpu/multiarch/s_roundf-power5+.S:
+ Likewise.
+ * sysdep/powerpc/powerpc64/fpu/multiarch/s_roundf-ppc64.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/s_round.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/s_roundf.S: Likewise.
+ * sysdep/powerpc/powerpc64/power5+/fpu/s_round.S: Likewise.
+ * sysdep/powerpc/powerpc64/power5+/fpu/s_roundf.S: Likewise.
+
+ * sysdeps/powerpc/fpu/round_to_integer.h (set_fenv_mode):
+ Add FLOOR option.
+ (round_mode): Add definition for FLOOR.
+ * sysdeps/powerpc/fpu/s_floor.c: New file.
+ * sysdeps/powerpc/fpu/s_floorf.c: Likewise.
+ * sysdeps/powerpc/powerpc32/fpu/s_floor.S: Remove file.
+ * sysdeps/powerpc/powerpc32/fpu/s_floorf.S: Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floor-power5+.S:
+ Remove file.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floor-ppc32.S:
+ Likewise
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floorf-power5+.S:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floorf-ppc32.S:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floor-power5+.c:
+ New file.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floor-ppc32.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floorf-power5+.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floorf-ppc32.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power5+/fpu/s_floor.S: Remove file.
+ * sysdeps/powerpc/powerpc32/power5+/fpu/s_floorf.S: Remove file.
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/Makefile
+ (libm-sysdep_routines): Add s_floor-power5+, s_floor-ppc64,
+ s_floorf-power5+, and s_floorf-ppc64.
+ (CFLAGS-s_floor-power5+.c, CFLAGS-s_floorf-power5+.c): New rule.
+ * sysdep/powerpc/powerpc64/be/fpu/multiarch/s_floor-power5+.c: New
+ file.
+ * sysdep/powerpc/powerpc64/be/fpu/multiarch/s_floor-ppc64.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_floor.c: Move to ...
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_floor.c: ... here.
+ * sysdep/powerpc/powerpc64/be/fpu/multiarch/s_floorf-power5+.c: New
+ file.
+ * sysdep/powerpc/powerpc64/be/fpu/multiarch/s_floorf-ppc64.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_floorf.c: Move to ...
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_floorf.c: ... here.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile
+ (libm-sysdep_routines): Remove s_floor-power5+, s_floor-ppc64,
+ s_floorf-power5+, and s_floorf-ppc64.
+ * sysdep/powerpc/powerpc64/fpu/multiarch/s_floor-power5+.S: Remove
+ file.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_floor-ppc64.S: Remove
+ file.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_floorf-power5+.S:
+ Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_floorf-ppc64.S:
+ Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/s_floor.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/s_floorf.S: Likewise.
+ * sysdeps/powerpc/powerpc64/power5+/fpu/s_floor.S: Likewise.
+ * sysdeps/powerpc/powerpc64/power5+/fpu/s_floorf.S: Likewise.
+
+2019-05-08 Mike Crowe <mac@mcrowe.com>
+
+ * support/xclock_gettime.c (xclock_gettime): New file. Provide
+ clock_gettime wrapper for use in tests that fails the test rather
+ than returning failure.
+
+ * support/xtime.h: New file to declare xclock_gettime.
+
+ * support/Makefile: Add xclock_gettime.c.
+
+ * support/README: Mention xtime.h.
+
+2019-05-08 Florian Weimer <fweimer@redhat.com>
+
+ malloc/tst-mallocfork2: Use process-shared barriers.
+ * malloc/tst-mallocfork2.c: Switch to <support/test-driver.c>.
+ (signal_count, sigusr1_sender_pid): Remove.
+ (iterations): Define constant.
+ (shared): New variable.
+ (sigusr1_received): Update comment.
+ (sigusr1_handler): Do not send SIGSTOP to the sender process.
+ (signal_sender): Optional use barriers to avoid sending signals
+ during irrelevant times.
+ (do_it): Initialize variable shared. Use xfork for error
+ checking. Launch multiple SIGUSR1-sending subprocesses. Limit
+ the iteration count, independent of signal delivery. Check for
+ deadlocks in fork. Introduce barriers for reducing signal
+ traffic. Do not send SIGCONT to the SIGUSR1-sending processes;
+ replaced by the barriers. Count signals during fork/free/malloc
+ and report them.
+ * malloc/Makefile (tst-mallocfork): Link with libpthread.
+
+2019-05-07 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/syscall-names.list: Update kernel
+ version to 5.1.
+ (clock_adjtime64) New syscall.
+ (clock_getres_time64) Likewise.
+ (clock_gettime64) Likewise.
+ (clock_nanosleep_time64) Likewise.
+ (clock_settime64) Likewise.
+ (futex_time64) Likewise.
+ (io_pgetevents_time64) Likewise.
+ (io_uring_enter) Likewise.
+ (io_uring_register) Likewise.
+ (io_uring_setup) Likewise.
+ (mq_timedreceive_time64) Likewise.
+ (mq_timedsend_time64) Likewise.
+ (pidfd_send_signal) Likewise.
+ (ppoll_time64) Likewise.
+ (pselect6_time64) Likewise.
+ (recvmmsg_time64) Likewise.
+ (rt_sigtimedwait_time64) Likewise.
+ (sched_rr_get_interval_time64) Likewise.
+ (semtimedop_time64) Likewise.
+ (timer_gettime64) Likewise.
+ (timer_settime64) Likewise.
+ (timerfd_gettime64) Likewise.
+ (timerfd_settime64) Likewise.
+ (utimensat_time64) Likewise.
+
+ * scripts/build-many-glibcs.py (Context.checkout): Default GCC
+ version to 9 branch.
+
+2019-05-03 Anton Youdkevitch <anton.youdkevitch@bell-sw.com>
+
+ * sysdeps/aarch64/multiarch/ifunc-impl-list.c: Added
+ __memmove_thunderx2 to the list of implementations
+ * sysdeps/aarch64/multiarch/memmove.c: Likewise
+ * sysdeps/aarch64/multiarch/memcpy_thunderx2.S:
+ (__memmove_thunderx2): Rewritten using SIMD ld/st
+ (__memcpy_thunderx2): Fixed handling overlapping cases.
+ Used ldp/stp instead of ldr/str if possible. Made loops
+ tails branchless.
+
+2019-05-03 Florian Weimer <fweimer@redhat.com>
+
+ * misc/tst-tsearch.c (walk_tree): Add more error checking.
+
+2019-05-02 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ [BZ #24506]
+ * elf/tst-pldd.c (in_str_list): New function.
+ (do_test): Add default names for ld and libc as one option.
+
+2019-05-02 Florian Weimer <fweimer@redhat.com>
+
+ misc: Add twalk_r function.
+ * include/search.h (__twalk_r): Declare.
+ * manual/examples/twalk.c: New file.
+ * manual/search.texi (Tree Search Function): Document twalk_r.
+ * misc/Versions (2.30): Export twalk_r.
+ (GLIBC_PRIVATE): Export __twalk_r.
+ * misc/search.h [__USE_GNU] (twalk_r): Declare.
+ * misc/tsearch.c (trecurse_r, __twalk_r): New functions.
+ (twalk_r): Add weak alias.
+ * misc/tst-tsearch.c (struct walk_trace_element): Define.
+ (walk_trace): New variable.
+ (struct twalk_with_twalk_r_closure): Define.
+ (twalk_with_twalk_r_action): New function.
+ (twalk_with_twalk_r): Likewise.
+ (walk_action): Call walk_trace_add.
+ (walk_tree_with): Rename from walk_tree. Add walk argument.
+ (walk_tree): New function.
+ * sysdeps/mach/hurd/i386/libc.abilist (GLIBC_2.30): Add twalk_r.
+ * sysdeps/unix/sysv/linux/aarch64/libc.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/alpha/libc.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/arm/libc.abilist (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/csky/libc.abilist (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/hppa/libc.abilist (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/i386/libc.abilist (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/ia64/libc.abilist (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/microblaze/libc.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/nios2/libc.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/sh/libc.abilist (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist (GLIBC_2.30):
+ Likewise.
+
+2019-04-30 Paul Eggert <eggert@cs.ucla.edu>
+
+ Make mktime etc. compatible with __time64_t
+ Keep these functions compatible with Gnulib while adding
+ __time64_t support. The basic idea is to move private API
+ declarations from include/time.h to time/mktime-internal.h, since
+ the former file cannot easily be shared with Gnulib whereas the
+ latter can.
+ Also, do some other minor cleanup while in the neighborhood.
+ * include/time.h: Include stdbool.h, time/mktime-internal.h.
+ (__mktime_internal): Move this prototype to time/mktime-internal.h,
+ since Gnulib needs it.
+ (__localtime64_r, __gmtime64_r) [__TIMESIZE == 64]:
+ Move these macros to time/mktime-internal.h, since Gnulib needs them.
+ (__mktime64, __timegm64) [__TIMESIZE != 64]: New prototypes.
+ (in_time_t_range): New static function.
+ * posix/bits/types.h (__time64_t): Move to time/mktime-internal.h,
+ so that glibc users are not tempted to use __time64_t.
+ * time/mktime-internal.h: Rewrite so that it does both glibc
+ and Gnulib work. Include time.h if not _LIBC.
+ (mktime_offset_t) [!_LIBC]: Define for gnulib.
+ (__time64_t): New type or macro, moved here from
+ posix/bits/types.h.
+ (__gmtime64_r, __localtime64_r, __mktime64, __timegm64)
+ [!_LIBC || __TIMESIZE == 64): New macros, mostly moved here
+ from include/time.h.
+ (__gmtime_r, __localtime_r, __mktime_internal) [!_LIBC]:
+ New macros, taken from GNulib.
+ (__mktime_internal): New prototype, moved here from include/time.h.
+ * time/mktime.c (mktime_min, mktime_max, convert_time)
+ (ranged_convert, __mktime_internal, __mktime64):
+ * time/timegm.c (__timegm64):
+ Use __time64_t, not time_t.
+ * time/mktime.c: Stop worrying about whether time_t is floating-point.
+ (__mktime64) [! (_LIBC && __TIMESIZE != 64)]:
+ Rename from mktime.
+ (mktime) [_LIBC && __TIMESIZE != 64]: New function.
+ * time/timegm.c [!_LIBC]: Include libc-config.h, not config.h,
+ for libc_hidden_def.
+ Include errno.h.
+ (__timegm64) [! (_LIBC && __TIMESIZE != 64)]:
+ Rename from timegm.
+ (timegm) [_LIBC && __TIMESIZE != 64]: New function.
+
+2019-04-30 Maciej W. Rozycki <macro@wdc.com>
+
+ [BZ #19444]
+ * sysdeps/ieee754/soft-fp/s_ddivl.c (__ddivl): Ignore errors
+ from `-Wmaybe-uninitialized'.
+ * sysdeps/ieee754/soft-fp/s_fdivl.c (__fdivl): Likewise.
+
+2019-04-29 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/powerpc/fpu/fenv_libc.h (__fesetround_inline_nocheck): New
+ function.
+ * sysdeps/powerpc/fpu/round_to_integer.h: New file.
+ * sysdeps/powerpc/fpu/s_ceil.c: Likewise.
+ * sysdeps/powerpc/fpu/s_ceilf.c: Likewise.
+ * sysdeps/powerpc/powerpc32/fpu/s_ceil.S: Remove file.
+ * sysdeps/powerpc/powerpc32/fpu/s_ceilf.S: Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/Makefile
+ (CFLAGS-s_ceil-power5+.c, CFLAGS-s_ceilf-power5+.c): New rule.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil-power5+.S:
+ Remove file.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil-ppc32.S:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceilf-power5+.S:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceilf-ppc32.S:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil-power5+.c:
+ New file.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil-ppc32.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceilf-power5+.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceilf-ppc32.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power5+/fpu/s_ceil.S: Remove file.
+ * sysdeps/powerpc/powerpc32/power5+/fpu/s_ceilf.S: Likewise.
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/Makefile: New file.
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_ceil-power5+.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_ceil-ppc64.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceil.c: Move to ...
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_ceil.c: ... here.
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_ceilf-power5+.c: New
+ file.
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_ceilf-ppc64.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceilf.c: Move to ...
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_ceilf.c: ...
+ * here.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile
+ (libm-sysdep_routines): Remove s_ceil-power5+, s_ceil-ppc64,
+ s_ceilf-power5+, and s_ceilf-ppc64.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceil-power5+.S: Remove
+ file.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceil-ppc64.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceilf-power5+.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceilf-ppc64.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/s_ceil.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/s_ceilf.S: Likewise.
+ * sysdeps/powerpc/powerpc64/power5+/fpu/s_ceil.S: Likewise.
+ * sysdeps/powerpc/powerpc64/power5+/fpu/s_ceilf.S: Likewise.
+
+ * sysdeps/powerpc/power4/fpu/Makefile: Remove file.
+ * sysdeps/powerpc/power4/fpu/mpa-arch.h: Likewise.
+ * sysdeps/powerpc/power4/fpu/mpa.c: Likewise.
+
+2019-04-29 Yann Droneaud <ydroneaud@opteya.com>
+
+ * sysdeps/pthread/semaphore.h (sem_init): Add __nonnull attribute.
+ (sem_destroy, sem_open, sem_close, sem_unlink): Likewise.
+ (sem_wait, sem_timedwait, sem_trywait, sem_post): Likewise.
+ (sem_getvalue): Likewise.
+
+2019-04-26 Florian Weimer <fweimer@redhat.com>
+
+ elf: Link sotruss-lib.so with BIND_NOW for --enable-bind-now.
+ * elf/Makefile (LDFLAGS-sotruss-lib.so): Set.
+
+2019-04-26 Florian Weimer <fweimer@redhat.com>
+
+ Makeconfig: Move -Wl,-rpath-link options before library references.
+ * Makeconfig (+link-pie, +link): Add $(link-libc-rpath-link).
+ (link-libc): Remove $(link-libc-rpath-link).
+
+2019-04-25 Florian Weimer <fweimer@redhat.com>
+
+ * Makeconfig (+link-pie-before-libc): Remove $(CC).
+ (+link-pie, +link-pie-tests, +link-pie-printers-tests): Add $(CC).
+ (+link-static-before-libc): Remove $(CC).
+ (+link-static, +link-static-tests): Add $(CC).
+ (+link-before-libc): Remove $(CC).
+ (+link, +link-pie, +link-pie-printers): Add $(CC).
+
+2019-04-26 Florian Weimer <fweimer@redhat.com>
+
+ * Makeconfig (+link-pie-before-libc): Remove $(CC).
+ (+link-pie, +link-pie-tests, +link-pie-printers-tests): Add $(CC).
+ (+link-static-before-libc): Remove $(CC).
+ (+link-static, +link-static-tests): Add $(CC).
+ (+link-before-libc): Remove $(CC).
+ (+link, +link-pie, +link-pie-printers): Add $(CC).
+
+2019-04-25 David Abdurachmanov <david.abdurachmanov@gmail.com>
+
+ [BZ#24484]
+ * sysdeps/riscv/ldsodefs.h (DL_RO_DYN_SECTION): Remove.
+
+2019-04-25 Florian Weimer <fweimer@redhat.com>
+
+ benchtests: Enable BIND_NOW if configured with --enable-bind-now.
+ * benchtests/Makefile [$(bind-now)] (link-bench-bind-now): Set.
+ (bench-link-targets): New variable.
+ ($(binaries-bench) …): Use it. Set LDFLAGS accordingly.
+
+2019-04-25 Florian Weimer <fweimer@redhat.com>
+
+ Also enable BIND_NOW for programs if --enable-bind-now.
+ * Makeconfig [$(bind-now)] (link-extra-flags): Add -Wl,-z,now.
+ (+link-pie): Use $(link-extra-flags).
+ (+link-static): Likewise.
+ [! $(build-pie-default)] (+link): Likewise.
+ * manual/install.texi (Configuring and compiling): Update
+ --enable-bind-now description.
+ * INSTALL: Regenerated.
+
+2019-04-24 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * benchtests/Makefile (BENCH_DURATION): Set to 1 second.
+ * benchtests/bench-malloc-thread.c (BENCH_DURATION): Set to 10 seconds.
+
+2019-04-24 Mike Frysinger <vapier@gentoo.org>
+
+ [BZ #18465]
+ * malloc/Makefile (others): Add memusagestat.
+ ($(objpfx)memusagestat): Delete rule.
+ (LDLIBS-memusagestat): New variable.
+
+2019-04-24 Florian Weimer <fweimer@redhat.com>
+
+ * locale/Makefile (tests-special): Guard setting by
+ $(run-built-tests) == yes, otherwise tst-locale-locpath attempts
+ to run while cross-compiling.
+
+2019-04-23 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ [BZ #18035]
+ * elf/Makefile (tests-container): Add tst-pldd.
+ * elf/pldd-xx.c: Use _Static_assert in of pldd_assert.
+ (E(find_maps)): Avoid use alloca, use default read file operations
+ instead of explicit LFS names, and fix infinite loop.
+ * elf/pldd.c: Explicit set _FILE_OFFSET_BITS, cleanup headers.
+ (get_process_info): Use _Static_assert instead of assert, use default
+ directory operations instead of explicit LFS names, and free some
+ leadek pointers.
+ * elf/tst-pldd.c: New file.
+
+2019-04-23 H.J. Lu <hongjiu.lu@intel.com>
+
+ * malloc/arena.c (do_set_mallopt_check): Removed.
+
+2019-04-23 Florian Weimer <fweimer@redhat.com>
+
+ locale: Add LOCPATH diagnostics to the locale program.
+ * locale/programs/locale.c (setlocale_failed): New variable.
+ (try_setlocale): New function.
+ (quote_string): Likewise.
+ (setlocale_diagnostics): Likewise.
+ (main): Call try_setlocale instead of setlocale. Call
+ setlocale_diagnostics.
+ * locale/Makefile (tests-special): Add tst-locale-locpath.out.
+ (tst-locale-locpath.out): New target.
+ * locale/tst-locale-locpath.sh: New file.
+
+2019-04-21 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * NEWS: Move memory allocation changes of BZ#23741 from 2.29
+ to 2.30 notes.
+
+2019-04-18 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ [BZ #23741]
+ * malloc/hooks.c (malloc_check, realloc_check): Use
+ __builtin_add_overflow on overflow check and adapt to
+ checked_request2size change.
+ * malloc/malloc.c (__libc_malloc, __libc_realloc, _mid_memalign,
+ __libc_pvalloc, __libc_calloc, _int_memalign): Limit maximum
+ allocation size to PTRDIFF_MAX.
+ (REQUEST_OUT_OF_RANGE): Remove macro.
+ (checked_request2size): Change to inline function and limit maximum
+ requested size to PTRDIFF_MAX.
+ (__libc_malloc, __libc_realloc, _int_malloc, _int_memalign): Limit
+ maximum allocation size to PTRDIFF_MAX.
+ (_mid_memalign): Use _int_memalign call for overflow check.
+ (__libc_pvalloc): Use __builtin_add_overflow on overflow check.
+ (__libc_calloc): Use __builtin_mul_overflow for overflow check and
+ limit maximum requested size to PTRDIFF_MAX.
+ * malloc/malloc.h (malloc, calloc, realloc, reallocarray, memalign,
+ valloc, pvalloc): Add __attribute_alloc_size__.
+ * stdlib/stdlib.h (malloc, realloc, reallocarray, valloc): Likewise.
+ * malloc/tst-malloc-too-large.c (do_test): Add check for allocation
+ larger than PTRDIFF_MAX.
+ * malloc/tst-memalign.c (do_test): Disable -Walloc-size-larger-than=
+ around tests of malloc with negative sizes.
+ * malloc/tst-posix_memalign.c (do_test): Likewise.
+ * malloc/tst-pvalloc.c (do_test): Likewise.
+ * malloc/tst-valloc.c (do_test): Likewise.
+ * malloc/tst-reallocarray.c (do_test): Replace call to reallocarray
+ with resulting size allocation larger than PTRDIFF_MAX with
+ reallocarray_nowarn.
+ (reallocarray_nowarn): New function.
+ * NEWS: Mention the malloc function semantic change.
+
+2019-04-17 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/powerpc/fpu/s_fma.c: Fix format.
+ * sysdeps/powerpc/fpu/s_fmaf.c: Likewise.
+
+ * sysdeps/powerpc/fpu/s_fma.S: Remove file.
+ * sysdeps/powerpc/fpu/s_fmaf.S: Likewise.
+ * sysdeps/powerpc/fpu/s_fma.c: New file.
+ * sysdeps/powerpc/fpu/s_fmaf.c: Likewise.
+
+ * sysdeps/powerpc/fpu/s_fabs.S: Remove file.
+ * sysdeps/powerpc/fpu/s_fabsf.S: Likewise.
+
+ * sysdeps/unix/sysv/linux/mips/getcontext.S (__getcontext): Remove
+ the magic flag store.
+ * sysdeps/unix/sysv/linux/mips/makecontext.S (__makecontext):
+ Likewise.
+ * sysdeps/unix/sysv/linux/mips/swapcontext.S (__swapcontext):
+ Likewise.
+ * sysdeps/unix/sysv/linux/mips/setcontext.S (__setcontext):
+ Remove rt_sigreturn call.
+
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S:
+ Remove rt_sigreturn call.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S: Likewie.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S: Likewise.
+
+ * support/Makefile (libsupport-routines): Add support_subprocess,
+ xposix_spawn, xposix_spawn_file_actions_addclose, and
+ xposix_spawn_file_actions_adddup2.
+ (tst-support_capture_subprocess-ARGS): New rule.
+ * support/capture_subprocess.h (support_capture_subprogram): New
+ prototype.
+ * support/support_capture_subprocess.c (support_capture_subprocess):
+ Refactor to use support_subprocess and support_capture_poll.
+ (support_capture_subprogram): New function.
+ * support/tst-support_capture_subprocess.c (write_mode_to_str,
+ str_to_write_mode, test_common, parse_int, handle_restart,
+ do_subprocess, do_subprogram, do_multiple_tests): New functions.
+ (do_test): Add support_capture_subprogram tests.
+ * support/subprocess.h: New file.
+ * support/support_subprocess.c: Likewise.
+ * support/xposix_spawn.c: Likewise.
+ * support/xposix_spawn_file_actions_addclose.c: Likewise.
+ * support/xposix_spawn_file_actions_adddup2.c: Likewise.
+ * support/xspawn.h: Likewise.
+
+2019-04-17 Mike Gerow <gerow@google.com>
+
+ * stdlib/tst-secure-getenv.c (choose_gid): Remove 64 supplemental
+ groups limit.
+
+2019-04-11 Florian Weimer <fweimer@redhat.com>
+
+ * resolv/nss_dns/dns-network.c (getanswer_r): Do not replace root
+ domain with empty string.
+ * resolv/nss_dns/dns-host.c (getanswer_r): Likewise.
+
+2019-04-11 Florian Weimer <fweimer@redhat.com>
+
+ * include/alloc_buffer.h (alloc_buffer_alloc_bytes): Update
+ comment.
+ (alloc_buffer_next): Change return type to non-const. Update
+ comment.
+
+2019-04-10 TAMUKI Shoichi <tamuki@linet.gr.jp>
+
+ * manual/time.texi (Formatting Calendar Time): Add missing percent
+ sign to conversion specifier.
+
+2019-04-09 Carlos O'Donell <carlos@redhat.com>
+ Kwok Cheung Yeung <kcy@codesourcery.com>
+
+ [BZ #16573]
+ * malloc/mtrace.c: Define prototypes for all hooks.
+ (set_default_hooks): New function.
+ (set_trace_hooks): Likewise.
+ (save_default_hooks): Likewise.
+ (tr_freehook): Use new s*_hooks functions.
+ (tr_mallochook): Likewise.
+ (tr_reallochook): Likewise.
+ (tr_memalignhook): Likewise.
+ (mtrace): Likewise.
+ (muntrace): Likewise.
+
+2019-04-09 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * benchtests/bench-stpcpy.c (SIMPLE_STPCPY): Remove function.
+ (generic_stpcpy): New function.
+ * benchtests/bench-stpncpy.c (SIMPLE_STPNCPY): Remove function.
+ (generic_stpncpy): New function.
+ * benchtests/bench-strcat.c (SIMPLE_STRCAT): Remove function.
+ (generic_strcat): New function.
+ * benchtests/bench-strcpy.c (SIMPLE_STRCPY): Remove function.
+ (generic_strcpy): New function.
+ * benchtests/bench-strncat.c (SIMPLE_STRNCAT): Remove function.
+ (STUPID_STRNCAT): Remove function.
+ (generic_strncat): New function.
+ * benchtests/bench-strncpy.c (SIMPLE_STRNCPY): Remove function.
+ (STUPID_STRNCPY): Remove function.
+ (generic_strncpy): New function.
+ * benchtests/bench-strnlen.c (SIMPLE_STRNLEN): Remove function.
+ (generic_strnlen): New function.
+ (memchr_strnlen): New function.
+ * benchtests/bench-strlen.c (generic_strlen): Define for WIDE.
+ (memchr_strlen): Likewise.
+
+2019-04-09 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * benchtests/bench-strstr.c (input): Add realistic input text.
+ (stupid_strstr): Remove function.
+ (basic_strstr): Add function.
+ (twoway_strstr): Add function.
+ (do_one_test): Add result checking.
+ (do_test): Use new input text. Remove accidental early matches.
+ (test_main): Improve range of tests, reduce unaligned cases.
+
+2019-04-09 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * benchtests/bench-memmem.c (simple_memmem): Remove function.
+ (basic_memmem): Add function.
+ (twoway_memmem): Add function.
+
+2019-04-09 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * benchtests/bench-malloc-simple.c: Remove TIMING_INIT.
+ * benchtests/bench-malloc-thread.c: Likewise.
+ * benchtests/bench-skeleton.c: Likewise.
+ * benchtests/bench-strtod.c: Likewise.
+ * benchtests/bench-timing.h: Likewise.
+
+2019-04-08 Florian Weimer <fweimer@redhat.com>
+
+ * resolv/resolv.h (RES_INSECURE1, RES_INSECURE2): Remove
+ definitions.
+ * resolv/res_send.c (send_dg): Always perform RES_INSECURE1 and
+ RES_INSECURE2 security checks.
+ * resolv/res_debug.c (p_option): Remove RES_INSECURE1 and
+ RES_INSECURE2 handling.
+
+2019-04-08 Florian Weimer <fweimer@redhat.com>
+
+ resolv: Remove support for RES_USE_INET6 and the inet6 option.
+ * nscd/aicache.c (addhstaiX): Do not disable RES_USE_INET6.
+ * nscd/nscd_gehst_r.c (__nscd_gethostbyname_r): Always use
+ GETHOSTBYNAME.
+ * resolv/Makefile (tests): Remove tst-res_use_inet6.
+ (tests-internal): Update justification for tst-resolv-res_init,
+ tst-resolv-res_init-thread.
+ (tst-res_use_inet6): Remove target.
+ (CFLAGS-tst-res_use_inet6.c): Do not set variable.
+ * resolv/res_debug.c (p_option): Remove "inet6" support.
+ * resolv/res_init.c (res_setoptions): Likewise.
+ * resolv/res_use_inet6.h: Remove file.
+ * resolv/resolv-internal.h (DEPRECATED_RES_USE_INET6): Remove
+ definition.
+ (res_use_inet6): Always return false.
+ * resolv/resolv.h (RES_USE_INET6): Remove definition.
+ * resolv/resolv_context.h: Adjust file comment.
+ (struct resolv_context): Update comment on __next field.
+ (__resolv_context_put): Update comment.
+ * resolv/tst-res_use_inet6.c: Remove file.
+ * resolv/tst-resolv-res_init-skeleton.c (print_resp): Remove
+ "inet6" support.
+ (test_cases): Adjust test case.
+ * resolv/tst-resolv-threads.c (byname_inet6) Remove function.
+ (thread_byname2_af_inet6): Use old byname_inet6 code.
+ (thread_byname_inet6, thread_byname2_af_inet6): Remove functions.
+ (gai): Remove do_inet6 argument.
+ (thread_gai_inet, thread_gai_inet6, thread_gai_unspec): Adjust.
+ (thread_gai_inet_inet6, thread_gai_inet6_inet6)
+ (thread_gai_unspec_inet6): Remove functions.
+ (do_test): Adjust thread_funcs.
+ * sysdeps/posix/getaddrinfo.c (gethosts): Do not restore
+ RES_USE_INET6 flag.
+ (gaih_inet): Do not disable RES_USE_INET6 flag.
+
+2019-04-05 Anton Youdkevitch <anton.youdkevitch@bell-sw.com>
+
+ * sysdeps/aarch64/multiarch/memcpy_thunderx2.S: Cleanup branching
+ and remove redundant code.
+
+2019-04-04 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/powerpc/Makefile [$(subdir) == wcsmbs] (CFLAGS-wcsrchr.c):
+ New rule.
+ * sysdeps/powerpc/power6/wcsrchr.c: Remove file.
+ * sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr-power6.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr-power7.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr-ppc32.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr.c: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/wcsrchr-power6.c: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/wcsrchr-power7.c: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/wcsrchr-ppc64.c: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/wcsrchr.c: Likewise.
+ * sysdeps/powerpc/powerpc64/power6/wcsrchr.c: Likewise.
+ * sysdeps/powerpc/powerpc32/power4/multiarch/Makefile
+ [$(subdir) == wcsmbs] (sysdeps_routines): Remove wcsrchr-power6 and
+ wcsrchr-power7.
+ (CFLAGS-wcsrchr-power7.c, CFLAGS-wcsrchr-power6.c): Remove rule.
+ * sysdeps/powerpc/powerpc64/multiarch/Makefile: Likewise.
+ * sysdeps/powerpc/powerpc32/power4/multiarch/ifunc-impl-list.c:
+ Remove wcsrchr optimizations.
+ * sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c: Likewise.
+
+ * wcsmbs/wcsrchr.c (WCSRCHR): Use loop_unroll.h to parametrize
+ the loop unroll.
+
+ * sysdeps/powerpc/Makefile [$(subdir) == wcsmbs] (CFLAGS-wcschr.c):
+ New rule.
+ * sysdeps/powerpc/power6/wcschr.c: Remove file.
+ * sysdeps/powerpc/powerpc32/power4/multiarch/wcschr-power6.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/multiarch/wcschr-power7.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/multiarch/wcschr-ppc32.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/multiarch/wcschr.c: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/wcschr-power6.c: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/wcschr-power7.c: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/wcschr-ppc64.c: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/wcschr.c: Likewise.
+ * sysdeps/powerpc/powerpc64/power6/wcschr.c: Likewise.
+ * sysdeps/powerpc/powerpc32/power4/multiarch/Makefile
+ [$(subdir) == wcsmbs] (sysdeps_routines): Remove wcschr-power6 and
+ wcschr-power7.
+ (CFLAGS-wcschr-power7.c, CFLAGS-wcschr-power6.c): Remove rule.
+ * sysdeps/powerpc/powerpc64/multiarch/Makefile: Likewise.
+ * sysdeps/powerpc/powerpc32/power4/multiarch/ifunc-impl-list.c:
+ Remove wcschr optimizations.
+ * sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c: Likewise.
+
+ * wcsmbs/wcschr.c (WCSCHR): Use loop_unroll.h to parametrize
+ the loop unroll.
+
+ * sysdeps/powerpc/Makefile [$(subdir) == wcsmbs] (CFLAGS-wcscpy.c):
+ New rule.
+ * sysdeps/powerpc/power6/wcscpy.c: Remove file.
+ * sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy-power6.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy-power7.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy-ppc32.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy.c: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/wcscpy-power6.c: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/wcscpy-power7.c: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/wcscpy-ppc64.c: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/wcscpy.c: Likewise.
+ * sysdeps/powerpc/powerpc64/power6/wcscpy.c: Likewise.
+ * sysdeps/powerpc/powerpc32/power4/multiarch/Makefile
+ [$(subdir) == wcsmbs] (sysdeps_routines): Remove wcscpy-power6 and
+ wcscpy-power7.
+ (CFLAGS-wcscpy-power7.c, CFLAGS-wcscpy-power6.c): Remove rule.
+ * sysdeps/powerpc/powerpc64/multiarch/Makefile: Likewise.
+ * sysdeps/powerpc/powerpc32/power4/multiarch/ifunc-impl-list.c:
+ Remove wcscpy optimizations.
+ * sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c: Likewise.
+
+ * include/loop_unroll.h: New file.
+ * wcsmbs/wcscpy (__wcscpy): Add option to use loop unrolling
+ besides generic implementation.
+
+2019-04-03 DJ Delorie <dj@redhat.com>
+
+ * time/tst-strftime3.c (tm_to_printed): Disable warning about
+ snprintf truncating output.
+
+2019-04-02 DJ Delorie <dj@redhat.com>
+
+ * time/tst-strftime3.c: Add new Japanese era tests. Fix printf
+ warning.
+
+2019-04-02 TAMUKI Shoichi <tamuki@linet.gr.jp>
+
+ [BZ #22964]
+ * localedata/locales/ja_JP (LC_TIME): Add entry for the new Japanese
+ era.
+ * time/tst-strftime2.c (dates): Add 2019-04-30 and 2019-05-01.
+ (mkreftable): Add rules for the new Japanese era and the new dates.
+
+2019-04-02 TAMUKI Shoichi <tamuki@linet.gr.jp>
+ Rafał Lużyński <digitalfreak@lingonborough.com>
+
+ * time/tst-strftime2.c (date_t): Explicitly define the type.
+ (dates): Use natural month and year numbers to express a date.
+ (is_before): New function to compare dates.
+ (mkreftable): Minor improvements to simplify maintenance.
+ (do_test): Reflect the changes in dates array.
+
+ [BZ #24293]
+ * time/Makefile (LOCALES): Add zh_TW.UTF-8, cmn_TW.UTF-8,
+ hak_TW.UTF-8, nan_TW.UTF-8, and lzh_TW.UTF-8.
+ * time/tst-strftime2.c (locales): Likewise.
+ (dates): Add 1910-04-01, 1911-12-31, 1912-01-01, 1913-04-01,
+ 2010-04-01, and 2011-04-01.
+ (mkreftable): Add rules for the new locales and the new dates.
+
+2019-04-01 Carlos O'Donell <carlos@redhat.com>
+
+ * localedata/locales/ja_JP: Add comments to era entries.
+
+2019-04-01 DJ Delorie <dj@redhat.com>
+
+ [BZ #24394]
+ * time/strptime_l.c (%Ey): Fix fencepost error.
+ * time/tst-strftime3.c: New.
+ * time/Makefile (tests): Add tst-strftime3.
+
+2019-04-01 Uroš Bizjak <ubizjak@gmail.com>
+
+ * sysdeps/alpha/divqu.S (__divqu): Move save of $f0 and excb after
+ conditional branch to DIVBYZERO. Fix unwind info.
+ * sysdeps/alpha/remqu.S (__remqu): Move saves of $f0, $f1, $f2 and
+ excb after conditional branch to $powerof2. Add missing unop
+ instructions and .align directives and reorder instructions to
+ match __divqu.
+
+2019-04-01 Richard Henderson <rth@twiddle.net>
+
+ * sysdeps/unix/sysv/linux/alpha/kernel-features.h (__NR_shmat):
+ Do not redefine.
+ * sysdeps/unix/sysv/linux/alpha/sysdep.h (__NR_osf_shmat):
+ Do not redefine.
+
+2019-03-30 Maciej W. Rozycki <macro@wdc.com>
+
+ * sysdeps/unix/sysv/linux/riscv/configure.ac: Quote
+ $libc_cv_riscv_float_abi in `test' invocation.
+ * sysdeps/unix/sysv/linux/riscv/configure: Regenerate.
+
+2019-03-29 Paul A. Clarke <pc@us.ibm.com>
+
+ * sysdeps/powerpc/fpu/fenv_libc.h (fegetenv_register): Replace inline
+ asm with builtin.
+ * sysdeps/powerpc/powerpc64/le/fpu/sfp-machine.h (FP_INIT_ROUNDMODE):
+ Likewise.
+ * sysdeps/powerpc/fpu/tst-setcontext-fpscr.c (_GET_DI_FPSCR): Likewise.
+ (_GET_SI_FPSCR): Likewise.
+ (_SET_SI_FPSCR): Likewise.
+
+2019-03-26 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * math/math.h (fpclassify, isfinite, isnormal, isnan): Use builtin for
+ clang 2.8.
+ (signbit): Use builtin for clang 3.3.
+ (isinf): Use builtin for clang 3.7.
+
+2019-03-25 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/powerpc/fpu/s_float_bitwise.h: Remove file.
+
+2019-03-25 Andreas K. Hüttel <dilfridge@gentoo.org>
+
+ * nss/tst-nss-files-alias-leak.c (do_test): add missing opening
+ quote in printf.
+
+2019-03-25 Mike Crowe <mac@mcrowe.com>
+
+ * nptl/tst-rwlock14.c (do_test): Replace duplicate calls to
+ pthread_rwlock_timedrdlock with calls to
+ pthread_rwlock_timedwrlock to ensure that the latter is tested
+ too. Use new function name in diagnostic messages too.
+
+ * nptl/tst-sem5.c: Remove unused headers. Add <support/check.h>.
+ (do_test) Use libsupport test macros rather than hand-coded
+ conditionals and error messages. Ensure that sem_init returns zero
+ rather than not -1. Use <support/test-driver.c> rather than
+ test-skeleton.c.
+
+ * nptl/tst-sem13.c: Add <support/check.h>. (do_test) Use libsupport
+ test macros rather than hand-coded conditionals and error messages.
+ Use <support/test-driver.c> rather than test-skeleton.c.
+
+2019-03-25 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/gnu/netinet/udp.h (UDP_GRO): New macro.
+
+ * elf/elf.h (NT_ARM_PAC_MASK): New macro.
+ (NT_MIPS_MSA): Likewise.
+
+2019-03-22 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * benchtests/Makefile (USE_CLOCK_GETTIME) Remove.
+ * benchtests/README: Update description.
+ * benchtests/bench-timing.h: Default to hp-timing.
+ * sysdeps/generic/hp-timing.h (HP_TIMING_DIFF, HP_TIMING_ACCUM_NT,
+ HP_TIMING_PRINT): Remove.
+ (HP_TIMING_NOW): Add generic implementation.
+ (hp_timing_t): Change to uint64_t.
+
+ * benchtests/bench-timing.h: Replace HP_TIMING_AVAIL with
+ HP_TIMING_INLINE.
+ * nptl/descr.h: Likewise.
+ * elf/rtld.c (RLTD_TIMING_DECLARE, RTLD_TIMING_NOW, RTLD_TIMING_DIFF,
+ RTLD_TIMING_ACCUM_NT, RTLD_TIMING_SET): Define.
+ (dl_start_final_info, _dl_start_final, dl_main, print_statistics):
+ Abstract hp-timing usage with RTLD_* macros.
+ * sysdeps/alpha/hp-timing.h (HP_TIMING_INLINE): Define iff IS_IN(rtld).
+ (HP_TIMING_AVAIL, HP_SMALL_TIMING_AVAIL): Remove.
+ * sysdeps/generic/hp-timing.h (HP_TIMING_AVAIL, HP_SMALL_TIMING_AVAIL,
+ HP_TIMING_NONAVAIL): Likewise.
+ * sysdeps/ia64/hp-timing.h (HP_TIMING_AVAIL, HP_SMALL_TIMING_AVAIL):
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/hp-timing.h (HP_TIMING_AVAIL,
+ HP_SMALL_TIMING_AVAIL): Likewise.
+ * sysdeps/powerpc/powerpc64/hp-timing.h (HP_TIMING_AVAIL,
+ HP_SMALL_TIMING_AVAIL): Likewise.
+ * sysdeps/sparc/sparc32/sparcv9/hp-timing.h (HP_TIMING_AVAIL,
+ HP_SMALL_TIMING_AVAIL): Likewise.
+ * sysdeps/sparc/sparc64/hp-timing.h (HP_TIMING_AVAIL,
+ HP_SMALL_TIMING_AVAIL): Likewise.
+ * sysdeps/x86/hp-timing.h (HP_TIMING_AVAIL, HP_SMALL_TIMING_AVAIL):
+ Likewise.
+ * sysdeps/generic/hp-timing-common.h: Update comment with
+ HP_TIMING_AVAIL removal.
+
+ * include/random-bits.h: New file.
+ * resolv/res_mkquery.c [HP_TIMING_AVAIL] (RANDOM_BITS,
+ (__res_context_mkquery): Remove usage hp-timing usage and replace with
+ random_bits.
+ * resolv/res_send.c [HP_TIMING_AVAIL] (nameserver_offset): Likewise.
+ * sysdeps/posix/tempname.c [HP_TIMING_AVAIL] (__gen_tempname):
+ Likewise.
+
+ * include/libc-internal.h (__get_clockfreq): Remove prototype.
+ * rt/Makefile (clock-routines): Remove get_clockfreq.
+ * rt/get_clockfreq.c: Remove file.
+ * sysdeps/unix/sysv/linux/i386/get_clockfreq.c: Likewise.
+ * sysdeps/unix/sysv/linux/ia64/get_clockfreq.c: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/get_clockfreq.c: Move code to ...
+ * sysdeps/unix/sysv/linux/powerpc/get_timebase_freq.c: ... here.
+
+ * sysdeps/unix/sysv/linux/ia64/has_cpuclock.c: Remove file.
+ * sysdeps/unix/sysv/linux/ia64/sysconf.c: Likewise.
+ * sysdeps/unix/sysv/linux/sysconf.c (has_cpuclock): Remove function.
+ (__sysconf): Assume kernel support for _SC_MONOTONIC_CLOCK,
+ _SC_CPUTIME, and _SC_THREAD_CPUTIME.
+
+ * nptl/Makefile (libpthread-routines): Remove pthread_clock_gettime and
+ pthread_clock_settime.
+ * nptl/pthreadP.h (__find_thread_by_id): Remove prototype.
+ * elf/dl-support.c [!HP_TIMING_NOAVAIL] (_dl_cpuclock_offset): Remove.
+ (_dl_non_dynamic_init): Remove _dl_cpuclock_offset setting.
+ * elf/rtld.c (_dl_start_final): Likewise.
+ * nptl/allocatestack.c (__find_thread_by_id): Remove function.
+ * sysdeps/generic/ldsodefs.h [!HP_TIMING_NOAVAIL] (_dl_cpuclock_offset):
+ Remove.
+ * sysdeps/mach/hurd/dl-sysdep.c [!HP_TIMING_NOAVAIL]
+ (_dl_cpuclock_offset): Remove.
+ * nptl/descr.h (struct pthread): Rename cpuclock_offset to
+ cpuclock_offset_ununsed.
+ * nptl/nptl-init.c (__pthread_initialize_minimal_internal): Remove
+ cpuclock_offset set.
+ * nptl/pthread_create.c (START_THREAD_DEFN): Likewise.
+ * sysdeps/nptl/fork.c (__libc_fork): Likewise.
+ * nptl/pthread_clock_gettime.c: Remove file.
+ * nptl/pthread_clock_settime.c: Likewise.
+ * sysdeps/unix/clock_gettime.c (hp_timing_gettime): Remove function.
+ [HP_TIMING_AVAIL] (realtime_gettime): Remove CLOCK_THREAD_CPUTIME_ID
+ and CLOCK_PROCESS_CPUTIME_ID support.
+ * sysdeps/unix/clock_settime.c (hp_timing_gettime): Likewise.
+ [HP_TIMING_AVAIL] (realtime_gettime): Likewise.
+ * sysdeps/posix/clock_getres.c (hp_timing_getres): Likewise.
+ [HP_TIMING_AVAIL] (__clock_getres): Likewise.
+ * sysdeps/unix/clock_nanosleep.c (CPUCLOCK_P, INVALID_CLOCK_P):
+ Likewise.
+ (__clock_nanosleep): Remove CPUCLOCK_P and INVALID_CLOCK_P usage.
+
+2019-03-22 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/Makefile (sysdep_routines): Add memmem-arch13.
+ * sysdeps/s390/ifunc-memmem.h (HAVE_MEMMEM_ARCH13, MEMMEM_ARCH13,
+ MEMMEM_Z13_ONLY_USED_AS_FALLBACK, HAVE_MEMMEM_IFUNC_AND_ARCH13_SUPPORT):
+ New defines.
+ * sysdeps/s390/memmem-arch13.S: New file.
+ * sysdeps/s390/memmem-vx.c: Omit GI symbol for z13 memmem ifunc variant
+ if it is only used as fallback.
+ * sysdeps/s390/memmem.c (memmem): Add arch13 variant in ifunc selector.
+ * sysdeps/s390/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Add ifunc variant for arch13 memmem.
+
+2019-03-22 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/Makefile (sysdep_routines): Add strstr-arch13.
+ * sysdeps/s390/ifunc-strstr.h (HAVE_STRSTR_ARCH13, STRSTR_ARCH13,
+ STRSTR_Z13_ONLY_USED_AS_FALLBACK, HAVE_STRSTR_IFUNC_AND_ARCH13_SUPPORT):
+ New defines.
+ * sysdeps/s390/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Add ifunc variant for arch13 strstr.
+ * sysdeps/s390/strstr-arch13.S: New file.
+ * sysdeps/s390/strstr-vx.c: Omit GI symbol for z13 strstr ifunc variant
+ if it is only used as fallback.
+ * sysdeps/s390/strstr.c (strstr): Add arch13 variant in ifunc selector.
+
+2019-03-22 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/ifunc-memcpy.h (HAVE_MEMMOVE_ARCH13, MEMMOVE_ARCH13
+ HAVE_MEMMOVE_IFUNC_AND_ARCH13_SUPPORT): New defines.
+ * sysdeps/s390/memcpy-z900.S: Add arch13 memmove implementation.
+ * sysdeps/s390/memmove.c (memmove): Add arch13 variant in
+ ifunc selector.
+ * sysdeps/s390/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Add ifunc variant for arch13 memmove.
+ * sysdeps/s390/multiarch/ifunc-resolve.h (S390_STFLE_BITS_ARCH13_MIE3,
+ S390_IS_ARCH13_MIE3): New defines.
+
+2019-03-22 Stefan Liebler <stli@linux.ibm.com>
+
+ * config.h.in (HAVE_S390_MIN_ARCH13_ZARCH_ASM_SUPPORT,
+ HAVE_S390_ARCH13_ASM_SUPPORT): New undefine.
+ * sysdeps/s390/configure.ac: Add checks for arch13 support.
+ * sysdeps/s390/configure: Regenerated.
+
+2019-03-22 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/dl-procinfo.c (_dl_s390_cap_flags):
+ Add vxe2, vxp, dflt, sort flags.
+ * sysdeps/s390/dl-procinfo.h: Add HWCAP_S390_VXRS_EXT2,
+ HWCAP_S390_VXRS_PDE, HWCAP_S390_SORT, HWCAP_S390_DFLT
+ capabilities.
+ (HWCAP_IMPORTANT): Add HWCAP_S390_VXRS_EXT2.
+ * sysdeps/unix/sysv/linux/s390/bits/hwcap.h
+ (HWCAP_S390_VXRS_EXT2, HWCAP_S390_VXRS_PDE, HWCAP_S390_SORT,
+ HWCAP_S390_DFLT): Define.
+
+2019-03-21 Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
+
+ [BZ #24372]
+ * iconv/iconvconfig.c (write_output): Add parentheses to get rid
+ of compiler warning.
+ * locale/programs/ld-collate.c (collate_output): Likewise.
+
+2019-03-21 DJ Delorie <dj@redhat.com>
+
+ [BZ #24372]
+ * iconv/iconvconfig.c (write_output): Replace floating point math
+ with integer math to avoid imprecise results.
+ * locale/programs/ld-collate.c (collate_output): Likewise.
+
+2019-03-21 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/dl-procinfo.h (HWCAP_IMPORTANT):
+ Add HWCAP_S390_VX and HWCAP_S390_VXE.
+
+2019-03-20 mansayk <6688000@gmail.com>
+
+ [BZ #24296]
+ * localedata/locales/tt_RU (day): Update from CLDR-34, fix errors.
+ (abday): Likewise, but remove the trailing dots.
+
+2019-03-19 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/aarch64/bits/hwcap.h (HWCAP_SB): New
+ macro.
+ (HWCAP_PACA): Likewise.
+ (HWCAP_PACG): Likewise.
+ * sysdeps/unix/sysv/linux/aarch64/dl-procinfo.c (_DL_HWCAP_COUNT):
+ Increase to 32.
+ (_dl_aarch64_cap_flags): Add new entries for new HWCAPs.
+
+2019-03-16 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * hurd/hurd/signal.h (_hurd_critical_section_lock): Document how EINTR
+ should be handled.
+
+2019-03-15 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/syscall-names.list: Update kernel
+ version to 5.0.
+ (old_getpagesize): New syscall.
+
+2019-03-15 Felix Yan <felixonmars@archlinux.org>
+
+ [BZ #24293]
+ * localedata/locales/zh_TW (era): Add, support Minguo calendar.
+ * localedata/locales/cmn_TW (era): Likewise.
+ * localedata/locales/hak_TW (era): Likewise.
+ * localedata/locales/lzh_TW (era): Likewise.
+ * localedata/locales/nan_TW (era): Likewise.
+
+2019-03-14 Adam Maris <amaris@redhat.com>
+
+ * malloc/malloc.c (_int_malloc): Check for large bin list
+ corruption when inserting unsorted chunk.
+
+2019-03-14 Florian Weimer <fweimer@redhat.com>
+
+ Remove obsolete, never-implemented XSI STREAMS declarations.
+ * manual/terminal.texi (Allocation): Remove portability note and
+ adjust example.
+ * sysdeps/posix/sysconf.c (__sysconf): Always return -1 for
+ _SC_STREAMS.
+ * sysdeps/unix/sysv/linux/syscalls.list (getpmsg, putpmsg): Remove.
+ * sysdeps/unix/inet/Subdirs (streams): Remove.
+ * conform/Makefile (conformtest-headers-XPG42): Remove stropts.h.
+ (conformtest-headers-UNIX98): Likewise.
+ (conformtest-headers-XOPEN2K): Likewise.
+ (conformtest-headers-POSIX2008): Likewise.
+ * posix/compat-streams.c: New file.
+ * posix/Makefile (routines): Add it.
+ * posix/Versions (GLIBC_2.1): Add fattach, fdetach, getmsg,
+ getpmsg, isastream, putmsg, putpmsg.
+ (GLIBC_2.30): New section.
+ * bits/stropts.h: Remove file.
+ * bits/xtitypes.h: Likewise.
+ * conform/data/stropts.h-data: Likewise.
+ * include/stropts.h: Likewise.
+ * include/sys/stropts.h: Likewise.
+ * include/xtitypes.h: Likewise.
+ * streams/Makefile: Likewise.
+ * streams/fattach.c: Likewise.
+ * streams/fdetach.c: Likewise.
+ * streams/getmsg.c: Likewise.
+ * streams/getpmsg.c: Likewise.
+ * streams/isastream.c: Likewise.
+ * streams/putmsg.c: Likewise.
+ * streams/putpmsg.c: Likewise.
+ * streams/stropts.h: Likewise.
+ * streams/sys/stropts.h: Likewise.
+ * sysdeps/ia64/bits/xtitypes.h: Likewise.
+ * sysdeps/s390/bits/xtitypes.h: Likewise.
+ * sysdeps/unix/sysv/linux/i386/getmsg.c: Likewise.
+ * sysdeps/unix/sysv/linux/i386/putmsg.c: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/getmsg.c: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/putmsg.c: Likewise.
+ * sysdeps/unix/sysv/linux/mips/getmsg.c: Likewise.
+ * sysdeps/unix/sysv/linux/mips/putmsg.c: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/getmsg.c: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/putmsg.c: Likewise.
+ * sysdeps/x86/bits/xtitypes.h: Likewise.
+
+2019-03-14 Florian Weimer <fweimer@redhat.com>
+
+ * nss/tst-nss-files-alias-truncated.c (do_test): Load
+ libnss_files.
+ * nss/Makefile (tst-nss-files-alias-truncated): Link with -ldl,
+ but not with libnss_files.
+ (tst-nss-files-alias-truncated.out): Depend on libnss_files.
+
+2019-03-14 Zack Weinberg <zackw@panix.com>
+
+ * scripts/check-obsolete-constructs.py (HeaderChecker.check):
+ Specify encoding="utf-8" when opening headers to check.
+
+2019-03-13 Joseph Myers <joseph@codesourcery.com>
+
+ * scripts/build-many-glibcs.py (Context.checkout): Default Linux
+ version to 5.0.
+ (Context.checkout_tar): Handle variable major version for Linux
+ kernel.
+
+2019-03-13 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #24047]
+ * sysdeps/mach/hurd/res_enable_icmp.c: New file.
+
+2019-03-13 Zack Weinberg <zackw@panix.com>
+
+ * sysdeps/generic/inttypes.h, sysdeps/generic/stdint.h:
+ Move to stdlib.
+ * include/inttypes.h: Adjust to match.
+ * include/stdint.h: New wrapper.
+
+2019-03-13 Zack Weinberg <zackw@panix.com>
+
+ * scripts/check-obsolete-constructs.py: New test script.
+ * scripts/check-installed-headers.sh: Remove tests for
+ obsolete typedefs, superseded by check-obsolete-constructs.py.
+ * Rules: Run scripts/check-obsolete-constructs.py over $(headers)
+ as a special test. Update commentary.
+ * posix/bits/types.h (__SQUAD_TYPE, __S64_TYPE): Define as __int64_t.
+ (__UQUAD_TYPE, __U64_TYPE): Define as __uint64_t.
+ Update commentary.
+ * posix/sys/types.h (__u_intN_t): Remove.
+ (u_int8_t): Typedef using __uint8_t.
+ (u_int16_t): Typedef using __uint16_t.
+ (u_int32_t): Typedef using __uint32_t.
+ (u_int64_t): Typedef using __uint64_t.
+
+2019-03-13 Stefan Liebler <stli@linux.ibm.com>
+
+ * elf/dl-sysdep.c (_dl_show_auxv): Remove condition and always
+ call _dl_procinfo.
+ * sysdeps/unix/sysv/linux/s390/dl-procinfo.h (_dl_procinfo):
+ Ignore types other than AT_HWCAP.
+ * sysdeps/sparc/dl-procinfo.h (_dl_procinfo): Likewise.
+ * sysdeps/unix/sysv/linux/i386/dl-procinfo.h (_dl_procinfo):
+ Likewise.
+ * sysdeps/powerpc/dl-procinfo.h (_dl_procinfo): Adjust comment
+ in the case of falling back to generic output mechanism.
+ * sysdeps/unix/sysv/linux/arm/dl-procinfo.h (_dl_procinfo):
+ Likewise.
+
+2019-03-12 Florian Weimer <fweimer@redhat.com>
+
+ * elf/elf.h (DF_1_KMOD, DF_1_WEAKFILTER, DF_1_NOCOMMON): Define.
+
+2019-03-12 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #24047]
+ resolv: Enable full ICMP errors for UDP DNS sockets
+ * resolv/res_enable_icmp.c: New file.
+ * resolv/Makefile (libresolv-routines): Add res_enable_icmp.
+ * resolv/resolv-internal.h (__res_enable_icmp): Declare.
+ * resolv/res_send.c (reopen): Call __res_enable_icmp on new
+ socket.
+
+2019-03-11 Mao Han <han_mao@c-sky.com>
+
+ * elf/elf.h (EF_CSKY_ABIMASK, EF_CSKY_OTHER, EF_CSKY_PROCESSOR)
+ (EF_CSKY_ABIV1, EF_CSKY_ABIV2, SHT_CSKY_ATTRIBUTES): New defines.
+
+2019-03-11 Mao Han <han_mao@c-sky.com>
+
+ * sysdeps/csky/abiv2/start.S: Mark lr as undefined.
+ * sysdeps/unix/sysv/linux/csky/abiv2/clone.S: Likewise.
+ * sysdeps/unix/sysv/linux/csky/abiv2/setcontext.S: Likewise.
+
+2019-03-11 Mao Han <han_mao@c-sky.com>
+
+ * sysdeps/unix/sysv/linux/csky/sys/procfs.h: Use linux definition
+ directly.
+ * sysdeps/unix/sysv/linux/csky/sys/user.h: Remove user_regs
+ definition.
+
+2019-03-11 Mao Han <han_mao@c-sky.com>
+
+ * sysdeps/unix/sysv/linux/csky/register-dump.h: Adjust offset change.
+ * sysdeps/unix/sysv/linux/csky/sys/ucontext.h: Remove __mask field
+ in mcontext_t
+
+2019-03-08 Mike FABIAN <mfabian@redhat.com>
+
+ [BZ #24307]
+ * localedata/unicode-gen/Makefile (UNICODE_VERSION): Set to 12.0.0.
+ * localedata/unicode-gen/DerivedCoreProperties.txt: Update to
+ Unicode 12.0.0.
+ * localedata/unicode-gen/EastAsianWidth.txt: Likewise.
+ * localedata/unicode-gen/PropList.txt: Likewise.
+ * localedata/unicode-gen/UnicodeData.txt: Likewise.
+ * localedata/unicode-gen/ctype_compatibility_test_cases.py: U+108D
+ became "Alphabetic" in Unicode 12.0.0. Adapt test case.
+ * localedata/charmaps/UTF-8: Regenerate.
+ * localedata/locales/i18n_ctype: Likewise.
+ * localedata/locales/tr_TR: Likewise.
+ * localedata/locales/translit_circle: Likewise.
+ * localedata/locales/translit_cjk_compat: Likewise.
+ * localedata/locales/translit_combining: Likewise.
+ * localedata/locales/translit_compat: Likewise.
+ * localedata/locales/translit_font: Likewise.
+ * localedata/locales/translit_fraction: Likewise.
+
+2019-03-07 Joseph Myers <joseph@codesourcery.com>
+
+ * stdio-common/vfscanf-internal.c (ARG): Break lines before rather
+ than after operators.
+ * sysdeps/mach/hurd/setitimer.c (timer_thread): Likewise.
+ (setitimer_locked): Likewise.
+ * sysdeps/mach/hurd/sigaction.c (__sigaction): Likewise.
+ * sysdeps/mach/hurd/sigaltstack.c (__sigaltstack): Likewise.
+ * sysdeps/mach/pagecopy.h (PAGE_COPY_FWD): Likewise.
+ * sysdeps/mach/thread_state.h (machine_get_basic_state): Likewise.
+ * sysdeps/powerpc/powerpc64/tst-ucontext-ppc64-vscr.c
+ (PPC_CPU_SUPPORTED): Likewise.
+ * sysdeps/unix/sysv/linux/alpha/a.out.h (N_TXTOFF): Likewise.
+ * sysdeps/unix/sysv/linux/generic/wordsize-32/overflow.h
+ (stat_overflow): Likewise.
+ (statfs_overflow): Likewise.
+ * sysdeps/unix/sysv/linux/tst-personality.c (do_test): Likewise.
+ * sysdeps/unix/sysv/linux/tst-ttyname.c (eq_ttyname): Likewise.
+ (eq_ttyname_r): Likewise.
+ (run_chroot_tests): Likewise.
+
+2019-03-07 Florian Weimer <fweimer@redhat.com>
+
+ * scripts/check-wrapper-headers.py (check_headers): Adjust Fortran
+ header check.
+
+2019-03-07 Martin Liska <mliska@suse.cz>
+
+ * math/Makefile: Change location where math-vector-fortran.h is
+ installed.
+ * math/finclude/math-vector-fortran.h: Move from bits/math-vector-fortran.h.
+ * sysdeps/x86/fpu/finclude/math-vector-fortran.h: Move
+ from sysdeps/x86/fpu/bits/math-vector-fortran.h.
+ * scripts/check-installed-headers.sh: Skip Fortran header files.
+ * scripts/check-wrapper-headers.py: Likewise.
+
+2019-03-05 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * nptl/nptl-init.c (__have_futex_clock_realtime,
+ __have_futex_clock_realtime): Remove definition.
+ (__pthread_initialize_minimal_internal): Remove FUTEX_CLOCK_REALTIME
+ check test for !__ASSUME_FUTEX_CLOCK_REALTIME.
+ * nptl/pthread_mutex_timedlock.c (__pthread_mutex_timedlock): Assume
+ __ASSUME_FUTEX_CLOCK_REALTIME support.
+ * sysdeps/unix/sysv/linux/i386/lowlevellock.S: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
+ * sysdeps/unix/sysv/linux/kernel-features.h
+ (__ASSUME_FUTEX_CLOCK_REALTIME): Remove.
+ * sysdeps/nptl/lowlevellock-futex.h (lll_futex_timed_wait_bitset):
+ Adjust comment.
+
+2019-03-05 Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
+
+ * sysdeps/powerpc/powerpc64/power6/wcscpy.c (WCSCPY): Define to
+ __wcscpy, then use libc_hidden_def and weak_alias to bind it to
+ __GI___wcscpy and wcscpy.
+
+2019-03-04 Florian Weimer <fweimer@redhat.com>
+
+ * sysdeps/generic/ldsodefs.h (_dl_sysdep_open_zero_fill): Remove
+ declaration.
+ * elf/dl-load.c (_dl_map_object_from_fd): Assume MAP_ANON is
+ defined.
+
+2019-03-04 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/s390-64/sysdep.h (ENTRY): Use alignment of 16byte.
+ * sysdeps/s390/s390-32/sysdep.h: Likewise.
+
+2019-03-02 TAMUKI Shoichi <tamuki@linet.gr.jp>
+
+ [BZ #24162]
+ * localedata/locales/ja_JP (LC_TIME): Change the offset for Taisho
+ gan-nen from 2 to 1. Problem reported by Morimitsu, Junji.
+
+2019-03-01 Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
+
+ * misc/tst-ldbl-error.c (do_one_test): Adapt for reuse by nldbl
+ tests.
+ (do_test): Likewise.
+ * misc/tst-ldbl-warn.c (do_one_test): Likewise.
+ (do_test_call_varg): Likewise.
+ (do_test_call_rarg): Likewise.
+ * sysdeps/ieee754/ldbl-opt/Makefile
+ [subdir == misc] (tests-internal): Add tst-nldbl-warn,
+ tst-nldbl-error.
+ ($(objpfx)tst-nldbl-warn.c): New rule.
+ ($(objpfx)tst-nldbl-error.c): Likewise.
+ (CFLAGS-tst-nldbl-warn.c, CFLAGS-tst-nldbl-error.c):
+ New variables.
+
+2019-03-01 Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
+
+ [BZ #23984]
+ * include/bits/error-ldbl.h: New file.
+ * include/error.h: Include stdarg.h. Declare internal functions
+ __error_internal and __error_at_line_internal.
+ * misc/Makefile (headers): Add bits/error-ldbl.h.
+ * misc/bits/error-ldbl.h: New file.
+ * misc/error.h [__LDBL_COMPAT]: Include bits/error-ldbl.h and
+ avoid the inclusion of bits/error.h.
+ * sysdeps/ieee754/ldbl-opt/Versions (libc): Add __nldbl_error,
+ and __nldbl_error_at_line.
+ * sysdeps/ieee754/ldbl-opt/nldbl-compat.c: Include error.h.
+ (__nldbl_error, __ndlbl_error_at_line): New functions.
+ * sysdeps/ieee754/ldbl-opt/nldbl-compat.h: Include error.h.
+ Redirect error and error_at_line.
+ * sysdeps/unix/sysv/linux/alpha/libc.abilist: Update.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise.
+
+2019-03-01 Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
+
+ [BZ #23984]
+ * include/bits/err-ldbl.h: New file.
+ * include/err.h: Add prototypes for the internal functions:
+ __vwarnx_internal and __vwarn_internal.
+ * misc/Makefile (headers): Add bits/err-ldbl.h.
+ * misc/bits/err-ldbl.h: New file.
+ * misc/err.h: Include bits/err-ldbl.h when __LDBL_COMPAT is
+ defined, i.e.: when -mlong-double-64 is in use.
+ * sysdeps/ieee754/ldbl-opt/Versions (libc): Add __nldbl_warn,
+ __nldbl_vwarn, __nldbl_warnx, __nldbl_vwarnx, __nldbl_err,
+ __nldbl_verr, __nldbl_errx, and __nldbl_verrx.
+ * sysdeps/ieee754/ldbl-opt/nldbl-compat.c: Include err.h.
+ (VA_CALL): New macro.
+ (__nldbl_vwarn, __nldbl_vwarnx, __nldbl_warn, __nldbl_warnx)
+ (__nldbl_verr, __nldbl_verrx, __nldbl_err, __nldbl_errx): New
+ functions.
+ * sysdeps/ieee754/ldbl-opt/nldbl-compat.h: Include err.h and
+ declare prototypes for the new functions.
+ * sysdeps/unix/sysv/linux/alpha/libc.abilist: Update.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise.
+
+2019-03-01 Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
+
+ * sysdeps/ieee754/ldbl-opt/Makefile
+ [subdir == argp] (tests-internal): Add tst-nldbl-argp.
+ [subdir == argp] ($(objpfx)tst-nldbl-argp.c): New rule.
+ [subdir == argp] (CFLAGS-tst-nldbl-argp.c): New variable.
+
+2019-03-01 Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
+
+ [BZ #23983]
+ * argp/Makefile (headers): Add bits/argp-ldbl.h.
+ * argp/argp.h [defined __LDBL_COMPAT]: Include bits/argp-ldbl.h.
+ * argp/bits/argp-ldbl.h: New file.
+ * include/argp.h: Include stdarg.h. Add prototypes for internal
+ functions: __argp_error_internal and __argp_failure_internal.
+ * include/bits/argp-ldbl.h: New file.
+ * sysdeps/ieee754/ldbl-opt/Versions (libc): Add
+ __nldbl_argp_error and __nldbl_argp_failure.
+ * sysdeps/ieee754/ldbl-opt/nldbl-compat.c: Include argp.h.
+ (__nldbl_argp_error, __nldbl_argp_failure): New functions.
+ * sysdeps/ieee754/ldbl-opt/nldbl-compat.h: Include argp.h.
+ Redirect argp_error and argp_failure calls.
+ * sysdeps/unix/sysv/linux/alpha/libc.abilist: Update.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise.
+
+2019-03-01 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #20419]
+ * elf/tst-big-note-lib.S: Create a syntactically valid note.
+ * elf/Makefile (tst-big-note-lib.so): Do not link with startup
+ code, to avoid creating an ABI tag note.
+ (modules-names-nobuild): Add tst-big-note-lib.
+
+2019-03-01 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/wcscpy-vx.S: Add strong aliases to
+ __wcscpy, __GI___wcscpy and weak alias to wcscpy.
+
+2019-03-01 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #20271]
+ * sysdeps/unix/sysv/linux/netlink_assert_response.c
+ (__netlink_assert_response): Add additional missing newlines.
+
+2019-02-28 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/powerpc/powerpc32/dl-machine.c
+ (__elf_machine_fixup_plt): Use space before '('.
+ (__process_machine_rela): Likewise.
+ * sysdeps/powerpc/powerpc32/register-dump.h (register_dump):
+ Likewise.
+ * sysdeps/powerpc/powerpc64/le/fpu/sfp-machine.h (TI_BITS):
+ Likewise.
+ * sysdeps/powerpc/powerpc64/register-dump.h (register_dump):
+ Likewise.
+ * sysdeps/powerpc/test-arith.c (union_t): Likewise.
+ (pattern): Likewise.
+ (delta): Likewise.
+ (check_result): Likewise.
+ (check_excepts): Likewise.
+ (check_op): Likewise.
+ (fail_xr): Likewise.
+ * sysdeps/unix/alpha/sysdep.h (syscall_promote): Likewise.
+ * sysdeps/unix/sysv/linux/alpha/a.out.h (AOUTHSZ): Likewise.
+ (SCNHSZ): Likewise.
+ * sysdeps/unix/sysv/linux/hppa/makecontext.c (FRAME_SIZE_BYTES):
+ Likewise.
+ (ARGS): Likewise.
+ (__makecontext): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h (ucontext_t):
+ Likewise.
+
+2019-02-28 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #23937]
+ elf: Add test with a local IFUNC resolver.
+ * elf/ifuncmain9.c: New file.
+ * elf/ifuncmain9pic.c: Likewise.
+ * elf/ifuncmain9picstatic.c: Likewise.
+ * elf/ifuncmain9pie.c: Likewise.
+ * elf/ifuncmain9static.c: Likewise.
+ * elf/Makefile [multi-arch] (tests-ifuncstatic): Add
+ ifuncmain9static, ifuncmain9picstatic.
+ * elf/Makefile [multi-arch && build-shared] (tests-internal):
+ Add ifuncmain9, ifuncmain9pic.
+ * elf/Makefile [multi-arch && build-shared && have-fpie]
+ (ifunc-pie-tests): Add ifuncmain9pie.
+ (CFLAGS-ifuncmain9pic.c): Add $(pic-ccflag).
+ (CFLAGS-ifuncmain9picstatic.c): Likewise.
+ (CFLAGS-ifuncmain9pie.c): Add $(pie-ccflag).
+
+2019-02-27 H.J. Lu <hongjiu.lu@intel.com>
+
+ * configure.ac (have-ifunc): New LIBC_CONFIG_VAR.
+ * configure: Regenerated.
+ * elf/Makefile: Run IFUNC tests if binutils supports IFUNC.
+
+2019-02-27 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy.c: Define ifunc
+ symbol as __wcspcy instead of wcscpy.
+
+2019-02-27 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * include/stdio.h (__renameat2): New hidden prototype.
+ * stdio-common/renameat2.c (__renameat2): Add hidden definition.
+ * sysdeps/mach/hurd/renameat.c (__renameat): Move implementation to...
+ * sysdeps/mach/hurd/renameat2.c (__renameat2): ... new function.
+ * sysdeps/unix/sysv/linux/renameat2.c (__renameat2): Add hidden definition.
+
+2019-02-27 Joseph Myers <joseph@codesourcery.com>
+
+ * hurd/hurdinit.c (_hurd_init): Use braces around empty body of an
+ if statement.
+
+ * benchtests/bench-strcpy.c (do_test): Use space before '('.
+ * benchtests/bench-string.h (cmdline_process_function): Likewise.
+ * benchtests/bench-strlen.c (do_test): Likewise.
+ (test_main): Likewise.
+ * catgets/gencat.c (read_old): Likewise.
+ * elf/cache.c (load_aux_cache): Likewise.
+ * iconvdata/bug-iconv8.c (do_test): Likewise.
+ * math/test-tgmath-ret.c (do_test): Likewise.
+ * nis/nis_call.c (rec_dirsearch): Likewise.
+ * nis/nis_findserv.c (__nis_findfastest_with_timeout): Likewise.
+ * nptl/tst-audit-threads.c (do_test): Likewise.
+ * nptl/tst-cancel4-common.h (set_socket_buffer): Likewise.
+ * nss/nss_test1.c (init): Likewise.
+ * nss/test-netdb.c (test_hosts): Likewise.
+ * posix/execvpe.c (maybe_script_execute): Likewise.
+ * stdio-common/tst-fmemopen4.c (do_test): Likewise.
+ * stdio-common/tst-printf.c (do_test): Likewise.
+ * stdio-common/vfscanf-internal.c (__vfscanf_internal): Likewise.
+ * stdlib/fmtmsg.c (NKEYWORDS): Likewise.
+ * stdlib/qsort.c (STACK_SIZE): Likewise.
+ * stdlib/test-canon.c (do_test): Likewise.
+ * stdlib/tst-swapcontext1.c (do_test): Likewise.
+ * string/memcmp.c (OPSIZ): Likewise.
+ * string/test-strcpy.c (do_test): Likewise.
+ (do_random_tests): Likewise.
+ * string/test-strlen.c (do_test): Likewise.
+ (test_main): Likewise.
+ * string/test-strrchr.c (do_test): Likewise.
+ (do_random_tests): Likewise.
+ * string/tester.c (test_memrchr): Likewise.
+ (test_memchr): Likewise.
+ * sysdeps/generic/memcopy.h (OPSIZ): Likewise.
+ * sysdeps/generic/unwind-dw2.c (execute_stack_op): Likewise.
+ * sysdeps/generic/unwind-pe.h (read_sleb128): Likewise.
+ (read_encoded_value_with_base): Likewise.
+ * sysdeps/hppa/dl-machine.h (elf_machine_runtime_setup): Likewise.
+ * sysdeps/hppa/fpu/feupdateenv.c (__feupdateenv): Likewise.
+ * sysdeps/ia64/fpu/sfp-machine.h (TI_BITS): Likewise.
+ * sysdeps/mach/hurd/spawni.c (__spawni): Likewise.
+ * sysdeps/posix/spawni.c (maybe_script_execute): Likewise.
+ * sysdeps/powerpc/fpu/tst-setcontext-fpscr.c (query_auxv):
+ Likewise.
+ * sysdeps/unix/sysv/linux/aarch64/bits/procfs.h (ELF_NGREG):
+ Likewise.
+ * sysdeps/unix/sysv/linux/arm/bits/procfs.h (ELF_NGREG): Likewise.
+ * sysdeps/unix/sysv/linux/arm/ioperm.c (init_iosys): Likewise.
+ * sysdeps/unix/sysv/linux/csky/bits/procfs.h (ELF_NGREG):
+ Likewise.
+ * sysdeps/unix/sysv/linux/m68k/bits/procfs.h (ELF_NGREG):
+ Likewise.
+ * sysdeps/unix/sysv/linux/nios2/bits/procfs.h (ELF_NGREG):
+ Likewise.
+ * sysdeps/unix/sysv/linux/spawni.c (maybe_script_execute):
+ Likewise.
+ * sysdeps/unix/sysv/linux/x86/bits/procfs.h (ELF_NGREG): Likewise.
+ * sysdeps/unix/sysv/linux/x86/bits/sigcontext.h
+ (FP_XSTATE_MAGIC2_SIZE): Likewise.
+ * sysdeps/x86/fpu/sfp-machine.h (TI_BITS): Likewise.
+ * time/test_time.c (main): Likewise.
+
+2019-02-27 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * wcsmbs/wcsnlen.c (__wcsnlen): Rewrite using wmemchr.
+
+ * wcsmbs/wcsncpy.c (__wcsncpy): Rewrite using wcsnlen, wmemset, and
+ wmemcpy.
+
+ * wcsmbs/wcsncat.c (wcsncat): Rewrite using wcslen, wcsnlen, and
+ wmemcpy.
+
+ * wcsmbs/wcscpy.c (__wcpcpy): Rewrite using wcslen and wmemcpy.
+
+ * include/wchar.h (__wcscpy): New prototype.
+ * sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy-ppc32.c
+ (__wcscpy): Route internal symbol to generic implementation.
+ * sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy.c (wcscpy):
+ Add internal __wcscpy alias.
+ * sysdeps/powerpc/powerpc64/multiarch/wcscpy.c (wcscpy): Likewise.
+ * sysdeps/s390/wcscpy.c (wcscpy): Likewise.
+ * sysdeps/x86_64/multiarch/wcscpy.c (wcscpy): Likewise.
+ * wcsmbs/wcscpy.c (wcscpy): Add
+ * sysdeps/x86_64/multiarch/wcscpy-c.c (WCSCPY): Adjust macro to
+ use generic implementation.
+ * wcsmbs/wcscat.c (wcscat): Rewrite using wcslen and wcscpy.
+
+ * wcsmbs/wcpncpy.c (__wcpcpy): Rewrite using wcslen, wmemcpy, and
+ wmemset.
+
+ * sysdeps/m68k/wcpcpy.c: Remove file.
+ * wcsmbs/wcpcpy.c (__wcpcpy): Rewrite using wcslen and wmemcpy.
+
+2019-02-26 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/arm/sysdep.h (#if condition): Break lines before rather
+ than after operators.
+ * sysdeps/mach/hurd/fork.c (__fork): Likewise.
+ * sysdeps/mach/hurd/getcwd.c
+ (__hurd_canonicalize_directory_name_internal): Likewise.
+ * sysdeps/mach/hurd/htl/pt-mutex-consistent.c
+ (pthread_mutex_consistent): Likewise.
+ * sysdeps/mach/hurd/htl/pt-mutex-init.c (_pthread_mutex_init):
+ Likewise.
+ * sysdeps/mach/hurd/htl/pt-mutex-transfer-np.c
+ (__pthread_mutex_transfer_np): Likewise.
+ * sysdeps/mach/hurd/htl/pt-mutex-unlock.c
+ (__pthread_mutex_unlock): Likewise.
+ * sysdeps/mach/hurd/htl/pt-mutex.h (ROBUST_LOCK): Likewise.
+ (mtx_owned_p): Likewise.
+ * sysdeps/mach/hurd/htl/pt-mutexattr-getrobust.c
+ (pthread_mutexattr_getrobust): Likewise.
+ * sysdeps/mach/hurd/i386/init-first.c (init1): Likewise.
+ * sysdeps/mach/hurd/i386/trampoline.c (_hurd_setup_sighandler):
+ Likewise.
+ * sysdeps/mach/hurd/ioctl.c (__ioctl): Likewise.
+ * sysdeps/mach/hurd/jmp-unwind.c (_longjmp_unwind): Likewise.
+ * sysdeps/mach/hurd/kill.c (__kill): Likewise.
+ * sysdeps/mach/hurd/mig-reply.c (__mig_get_reply_port): Likewise.
+ * sysdeps/mach/hurd/ptrace.c (ptrace): Likewise.
+ * sysdeps/sparc/sparc64/dl-machine.h (elf_machine_rela): Likewise.
+ * sysdeps/unix/sysv/linux/aarch64/sysdep.h (#if condition):
+ Likewise.
+ * sysdeps/unix/sysv/linux/alpha/ioperm.c (process_cpuinfo):
+ Likewise.
+ * sysdeps/unix/sysv/linux/bits/timex.h (STA_RONLY): Likewise.
+ * sysdeps/unix/sysv/linux/csky/sysdep.h (#if condition): Likewise.
+ * sysdeps/unix/sysv/linux/generic/____longjmp_chk.c
+ (____longjmp_chk): Likewise.
+ * sysdeps/unix/sysv/linux/generic/futimesat.c (futimesat):
+ Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h
+ (INTERNAL_SYSCALL): Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h
+ (INTERNAL_SYSCALL): Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c
+ (__get_clockfreq_via_cpuinfo): Likewise.
+
+ * sysdeps/i386/dl-machine.h (elf_machine_rela): Add fall-through
+ comments.
+ * sysdeps/m68k/m680x0/fpu/s_cexp_template.c (s(__cexp)): Likewise.
+ * sysdeps/m68k/memcopy.h (WORD_COPY_FWD): Likewise.
+ (WORD_COPY_BWD): Likewise.
+ * sysdeps/mach/hurd/ioctl.c (__ioctl): Likewise.
+ * sysdeps/powerpc/powerpc64/dl-machine.h (elf_machine_rela):
+ Likewise.
+ * sysdeps/s390/iso-8859-1_cp037_z900.c (TR_LOOP): Likewise.
+ * sysdeps/mips/dl-machine.h (elf_machine_reloc): Move fall-through
+ comment.
+ * sysdeps/mips/dl-trampoline.c (__dl_runtime_resolve): Likewise.
+
+2019-02-25 Joseph Myers <joseph@codesourcery.com>
+
+ * dirent/dirent.h [!_DIRENT_HAVE_D_NAMLEN
+ && _DIRENT_HAVE_D_RECLEN] (_D_ALLOC_NAMLEN): Break lines before
+ rather than after operators.
+ * elf/cache.c (print_cache): Likewise.
+ * gshadow/fgetsgent_r.c (__fgetsgent_r): Likewise.
+ * htl/pt-getattr.c (__pthread_getattr_np): Likewise.
+ * hurd/hurdinit.c (_hurd_setproc): Likewise.
+ * hurd/hurdkill.c (_hurd_sig_post): Likewise.
+ * hurd/hurdlookup.c (__file_name_lookup_under): Likewise.
+ * hurd/hurdsig.c (_hurd_internal_post_signal): Likewise.
+ (reauth_proc): Likewise.
+ * hurd/lookup-at.c (__file_name_lookup_at): Likewise.
+ (__file_name_split_at): Likewise.
+ (__directory_name_split_at): Likewise.
+ * hurd/lookup-retry.c (__hurd_file_name_lookup_retry): Likewise.
+ * hurd/port2fd.c (_hurd_port2fd): Likewise.
+ * iconv/gconv_dl.c (do_print): Likewise.
+ * inet/netinet/in.h (struct sockaddr_in): Likewise.
+ * libio/wstrops.c (_IO_wstr_seekoff): Likewise.
+ * locale/setlocale.c (new_composite_name): Likewise.
+ * malloc/memusagestat.c (main): Likewise.
+ * misc/fstab.c (fstab_convert): Likewise.
+ * nptl/pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt):
+ Likewise.
+ * nss/nss_compat/compat-grp.c (getgrent_next_nss): Likewise.
+ (getgrent_next_file): Likewise.
+ (internal_getgrnam_r): Likewise.
+ (internal_getgrgid_r): Likewise.
+ * nss/nss_compat/compat-initgroups.c (getgrent_next_nss):
+ Likewise.
+ (internal_getgrent_r): Likewise.
+ * nss/nss_compat/compat-pwd.c (getpwent_next_nss_netgr): Likewise.
+ (getpwent_next_nss): Likewise.
+ (getpwent_next_file): Likewise.
+ (internal_getpwnam_r): Likewise.
+ (internal_getpwuid_r): Likewise.
+ * nss/nss_compat/compat-spwd.c (getspent_next_nss_netgr):
+ Likewise.
+ (getspent_next_nss): Likewise.
+ (internal_getspnam_r): Likewise.
+ * pwd/fgetpwent_r.c (__fgetpwent_r): Likewise.
+ * shadow/fgetspent_r.c (__fgetspent_r): Likewise.
+ * string/strchr.c (STRCHR): Likewise.
+ * string/strchrnul.c (STRCHRNUL): Likewise.
+ * sysdeps/aarch64/fpu/fpu_control.h (_FPU_FPCR_IEEE): Likewise.
+ * sysdeps/aarch64/sfp-machine.h (_FP_CHOOSENAN): Likewise.
+ * sysdeps/csky/dl-machine.h (elf_machine_rela): Likewise.
+ * sysdeps/generic/memcopy.h (PAGE_COPY_FWD_MAYBE): Likewise.
+ * sysdeps/generic/symbol-hacks.h (__stack_chk_fail_local):
+ Likewise.
+ * sysdeps/gnu/netinet/ip_icmp.h (ICMP_INFOTYPE): Likewise.
+ * sysdeps/gnu/updwtmp.c (TRANSFORM_UTMP_FILE_NAME): Likewise.
+ * sysdeps/gnu/utmp_file.c (TRANSFORM_UTMP_FILE_NAME): Likewise.
+ * sysdeps/hppa/jmpbuf-unwind.h (_JMPBUF_UNWINDS): Likewise.
+ * sysdeps/mach/hurd/bits/stat.h (S_ISPARE): Likewise.
+ * sysdeps/mach/hurd/dl-sysdep.c (_dl_sysdep_start): Likewise.
+ (open_file): Likewise.
+ * sysdeps/mach/hurd/htl/pt-mutexattr-setprotocol.c
+ (pthread_mutexattr_setprotocol): Likewise.
+ * sysdeps/mach/hurd/ioctl.c (__ioctl): Likewise.
+ * sysdeps/mach/hurd/mmap.c (__mmap): Likewise.
+ * sysdeps/mach/hurd/ptrace.c (ptrace): Likewise.
+ * sysdeps/mach/hurd/spawni.c (__spawni): Likewise.
+ * sysdeps/microblaze/dl-machine.h (elf_machine_type_class):
+ Likewise.
+ (elf_machine_rela): Likewise.
+ * sysdeps/mips/mips32/sfp-machine.h (_FP_CHOOSENAN): Likewise.
+ * sysdeps/mips/mips64/sfp-machine.h (_FP_CHOOSENAN): Likewise.
+ * sysdeps/mips/sys/asm.h (multiple #if conditionals): Likewise.
+ * sysdeps/posix/rename.c (rename): Likewise.
+ * sysdeps/powerpc/novmx-sigjmp.c (__novmx__sigjmp_save): Likewise.
+ * sysdeps/powerpc/sigjmp.c (__vmx__sigjmp_save): Likewise.
+ * sysdeps/s390/fpu/fenv_libc.h (FPC_VALID_MASK): Likewise.
+ * sysdeps/s390/utf8-utf16-z9.c (gconv_end): Likewise.
+ * sysdeps/unix/grantpt.c (grantpt): Likewise.
+ * sysdeps/unix/sysv/linux/a.out.h (N_TXTOFF): Likewise.
+ * sysdeps/unix/sysv/linux/updwtmp.c (TRANSFORM_UTMP_FILE_NAME):
+ Likewise.
+ * sysdeps/unix/sysv/linux/utmp_file.c (TRANSFORM_UTMP_FILE_NAME):
+ Likewise.
+ * sysdeps/x86/cpu-features.c (get_common_indices): Likewise.
+ * time/tzfile.c (__tzfile_compute): Likewise.
+
+2019-02-22 Joseph Myers <joseph@codesourcery.com>
+
+ * benchtests/bench-memmem.c (simple_memmem): Break lines before
+ rather than after operators.
+ * benchtests/bench-skeleton.c (TIMESPEC_AFTER): Likewise.
+ * crypt/md5.c (md5_finish_ctx): Likewise.
+ * crypt/sha256.c (__sha256_finish_ctx): Likewise.
+ * crypt/sha512.c (__sha512_finish_ctx): Likewise.
+ * elf/cache.c (load_aux_cache): Likewise.
+ * elf/dl-load.c (open_verify): Likewise.
+ * elf/get-dynamic-info.h (elf_get_dynamic_info): Likewise.
+ * elf/readelflib.c (process_elf_file): Likewise.
+ * elf/rtld.c (dl_main): Likewise.
+ * elf/sprof.c (generate_call_graph): Likewise.
+ * hurd/ctty-input.c (_hurd_ctty_input): Likewise.
+ * hurd/ctty-output.c (_hurd_ctty_output): Likewise.
+ * hurd/dtable.c (reauth_dtable): Likewise.
+ * hurd/getdport.c (__getdport): Likewise.
+ * hurd/hurd/signal.h (_hurd_interrupted_rpc_timeout): Likewise.
+ * hurd/hurd/sigpreempt.h (HURD_PREEMPT_SIGNAL_P): Likewise.
+ * hurd/hurdfault.c (_hurdsig_fault_catch_exception_raise):
+ Likewise.
+ * hurd/hurdioctl.c (fioctl): Likewise.
+ * hurd/hurdselect.c (_hurd_select): Likewise.
+ * hurd/hurdsig.c (_hurdsig_abort_rpcs): Likewise.
+ (STOPSIGS): Likewise.
+ * hurd/hurdstartup.c (_hurd_startup): Likewise.
+ * hurd/intr-msg.c (_hurd_intr_rpc_mach_msg): Likewise.
+ * hurd/lookup-retry.c (__hurd_file_name_lookup_retry): Likewise.
+ * hurd/msgportdemux.c (msgport_server): Likewise.
+ * hurd/setauth.c (_hurd_setauth): Likewise.
+ * include/features.h (__GLIBC_USE_DEPRECATED_SCANF): Likewise.
+ * libio/libioP.h [IO_DEBUG] (CHECK_FILE): Likewise.
+ * locale/programs/ld-ctype.c (set_class_defaults): Likewise.
+ * localedata/tests-mbwc/tst_swscanf.c (tst_swscanf): Likewise.
+ * login/tst-utmp.c (do_check): Likewise.
+ (simulate_login): Likewise.
+ * mach/lowlevellock.h (lll_lock): Likewise.
+ (lll_trylock): Likewise.
+ * math/test-fenv.c (ALL_EXC): Likewise.
+ * math/test-fenvinline.c (ALL_EXC): Likewise.
+ * misc/sys/cdefs.h (__attribute_deprecated_msg__): Likewise.
+ * nis/nis_call.c (__do_niscall3): Likewise.
+ * nis/nis_callback.c (cb_prog_1): Likewise.
+ * nis/nis_defaults.c (searchaccess): Likewise.
+ * nis/nis_findserv.c (__nis_findfastest_with_timeout): Likewise.
+ * nis/nis_ismember.c (internal_ismember): Likewise.
+ * nis/nis_local_names.c (nis_local_principal): Likewise.
+ * nis/nss_nis/nis-rpc.c (_nss_nis_getrpcbyname_r): Likewise.
+ * nis/nss_nisplus/nisplus-netgrp.c (_nss_nisplus_getnetgrent_r):
+ Likewise.
+ * nis/ypclnt.c (yp_match): Likewise.
+ (yp_first): Likewise.
+ (yp_next): Likewise.
+ (yp_master): Likewise.
+ (yp_order): Likewise.
+ * nscd/hstcache.c (cache_addhst): Likewise.
+ * nscd/initgrcache.c (addinitgroupsX): Likewise.
+ * nss/nss_compat/compat-pwd.c (copy_pwd_changes): Likewise.
+ (internal_getpwuid_r): Likewise.
+ * nss/nss_compat/compat-spwd.c (copy_spwd_changes): Likewise.
+ * posix/glob.h (__GLOB_FLAGS): Likewise.
+ * posix/regcomp.c (peek_token): Likewise.
+ (peek_token_bracket): Likewise.
+ (parse_expression): Likewise.
+ * posix/regexec.c (sift_states_iter_mb): Likewise.
+ (check_node_accept_bytes): Likewise.
+ * posix/tst-spawn3.c (do_test): Likewise.
+ * posix/wordexp-test.c (testit): Likewise.
+ * posix/wordexp.c (parse_tilde): Likewise.
+ (exec_comm): Likewise.
+ * posix/wordexp.h (__WRDE_FLAGS): Likewise.
+ * resource/vtimes.c (TIMEVAL_TO_VTIMES): Likewise.
+ * setjmp/sigjmp.c (__sigjmp_save): Likewise.
+ * stdio-common/printf_fp.c (__printf_fp_l): Likewise.
+ * stdio-common/tst-fileno.c (do_test): Likewise.
+ * stdio-common/vfprintf-internal.c (vfprintf): Likewise.
+ * stdlib/strfmon_l.c (__vstrfmon_l_internal): Likewise.
+ * stdlib/strtod_l.c (round_and_return): Likewise.
+ (____STRTOF_INTERNAL): Likewise.
+ * stdlib/tst-strfrom.h (TEST_STRFROM): Likewise.
+ * string/strcspn.c (STRCSPN): Likewise.
+ * string/test-memmem.c (simple_memmem): Likewise.
+ * termios/tcsetattr.c (tcsetattr): Likewise.
+ * time/alt_digit.c (_nl_parse_alt_digit): Likewise.
+ * time/asctime.c (asctime_internal): Likewise.
+ * time/strptime_l.c (__strptime_internal): Likewise.
+ * time/sys/time.h (timercmp): Likewise.
+ * time/tzfile.c (__tzfile_compute): Likewise.
+
+2019-02-21 Patsy Griffin Franklin <pfrankli@redhat.com>
+
+ [BZ #21915]
+ * nss/tst-nss-files-hosts-long.root/etc/host.conf: New file.
+
+2019-02-21 Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
+
+ * argp/argp-help.c (__argp_error_internal): New function,
+ renamed from __argp_error, but that takes a 'mode_flags'
+ parameter to control the format of long double parameters.
+ (__argp_error): Converted into a call __argp_error_internal.
+ (__argp_failure_internal): New function, renamed from
+ __argp_failure, but that takes a 'mode_flags' parameter.
+ (__argp_failure): Converted into a call __argp_failure_internal.
+ * misc/err.c (__vwarnx_internal): New function, renamed from
+ vwarnx, but that takes a 'mode_flags' parameter.
+ (vwarnx): Converted into a call to __vwarnx_internal.
+ (__vwarn_internal): New function, renamed from vwarn, but that
+ takes a 'mode_flags' parameter.
+ (vwarn): Converted into a call to __vwarn_internal.
+ * misc/error.c (error_tail): Add 'mode_flags' parameter. Update
+ call to __vfxprintf with 'mode_flags'.
+ (__error_internal): New function, renamed from error, but that
+ takes a 'mode_flags' parameter.
+ (error): Converted into a call to __error_internal.
+ (__error_at_line_internal): New function, renamed from
+ error_at_line, but that takes a 'mode_flags' parameter.
+ (error_at_line): Converted into a call to
+ __error_at_line_internal.
+ * include/stdio.h (__vfxprintf): Add mode_flags parameter.
+ * stdio-common/fxprintf.c (locked_vfxprintf, __vfxprintf):
+ Likewise.
+
+2019-02-20 Martin Liska <mliska@suse.cz>
+
+ * math/Makefile: Install math-vector-fortran.h.
+ * bits/math-vector-fortran.h: New file.
+ * sysdeps/x86/fpu/bits/math-vector-fortran.h: New file.
+
+2019-02-20 Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
+
+ * sysdeps/powerpc/powerpc64/le/configure.ac: Remove test.
+ * sysdeps/powerpc/powerpc64/le/configure: Regenerate.
+
+2019-02-19 Wolfram Sang <wsa@the-dreams.de>
+
+ * nptl/pthread_mutex_trylock.c: Fix comment.
+
+2019-02-19 Carlos O'Donell <carlos@redhat.com>
+
+ * nptl/pthread_tryjoin.c: Fix comment.
+
+2019-02-18 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #24231]
+ * sysdeps/sparc/sparc64/dl-machine.h (elf_machine_rela): Add break
+ after R_SPARC_H34 case.
+
+2019-02-18 Florian Weimer <fweimer@redhat.com>
+
+ * resolv/compat-gethnamaddr.c (Dprintf): Remove definition.
+ (getanswer): Do not call Dprintf.
+ (res_gethostbyname2_context): Likewise.
+ (res_gethostbyaddr_context): Likewise.
+
+2019-02-18 Florian Weimer <fweimer@redhat.com>
+
+ * libio/libio.h (_IO_stdin, _IO_stdout, _IO_stderr): Remove
+ declaration.
+ * libio/stdio.c (AL, AL2, _IO_stdin, _IO_stdout, _IO_stderr):
+ Remove definitions.
+ * libio/stdfiles.c: Update comment.
+ * libio/oldstdfiles.c (_IO_check_libio): Update comment. Do not
+ set _IO_stdin, _IO_stdout, _IO_stderr.
+ * libio/libioP.h (_IO_fake_stdiobuf): Remove unused declaration.
+ [SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)] (_IO_legacy_file): New
+ inline function.
+ (_IO_deallocate_file): New inline function.
+ * libio/iolibio.h (_IO_vprintf): Remove definition.
+ * libio/iofclose.c (_IO_new_fclose): Use _IO_deallocate_file.
+ * libio/oldiofclose.c (_IO_old_fclose): Likewise.
+ * libio/iofwide.c (_IO_fwide): Use __glibc_unlikely and
+ _IO_legacy_file.
+ * libio/oldfileops.c (_IO_old_file_init_internal): Remove
+ __builtin_expect. Use _IO_legacy_file.
+
+2019-02-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/unix/sysv/linux/tst-clone3.c (do_test):
+ Initialize ctid with a known value and remove update of ctid
+ after clone.
+ (wait_tid): Adjust arguments and call futex_wait with ctid_val
+ as assumed current value of ctid_ptr.
+
+2019-02-16 Florian Weimer <fweimer@redhat.com>
+
+ Check that non-sysdeps headers have wrapper headers.
+ * scripts/check-wrapper-headers.py: New file.
+ * Makefile (tests-special): Add check-wrapper-headers.out.
+ (check-wrapper-headers.out): New target.
+ * Rules (tests-special): Add check-wrapper-headers.out.
+ (check-wrapper-headers.out): New target.
+
+2019-02-16 Florian Weimer <fweimer@redhat.com>
+
+ Add missing header wrappers under include/.
+ * include/ar.h: New file.
+ * include/bits/mqueue2.h: Likewise.
+ * include/bits/stdio.h: Likewise.
+ * include/bits/stdio2.h: Likewise.
+ * include/fstab.h: Likewise.
+ * include/fts.h: Likewise.
+ * include/lastlog.h: Likewise.
+ * include/netinet/icmp6.h: Likewise.
+ * include/netinet/igmp.h: Likewise.
+ * include/netinet/ip6.h: Likewise.
+ * include/re_comp.h: Likewise.
+ * include/regexp.h: Likewise.
+ * include/rpcsvc/bootparam.h: Likewise.
+ * include/rpcsvc/yp_prot.h: Likewise.
+ * include/sys/random.h: Likewise.
+ * include/sys/stropts.h: Likewise.
+ * include/sys/ttychars.h: Likewise.
+ * include/sys/vfs.h: Likewise.
+ * include/wait.h: Likewise.
+
+2019-02-16 Florian Weimer <fweimer@redhat.com>
+
+ * nptl_db/proc_service.h: Move to ...
+ * sysdeps/nptl/proc_service.h: ... here.
+ * nptl_db/thread_db.h: Move to ...
+ * sysdeps/nptl/thread_db.h: ... here.
+ * nptl/descr.h: Include <thread_db.h>.
+
+2019-02-15 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * io/Makefile (tests): Add tst-lockf.
+ * io/lockf.c (lockf): Use __fcntl and only define for
+ !__OFF_T_MATCHES_OFF64_T.
+ * io/lockf64.c (__lockf64): Call __fcntl64 and alias to lockf for
+ __OFF_T_MATCHES_OFF64_T case.
+ * io/tst-lockf.c: New file.
+ * sysdeps/unix/sysv/linux/i386/lockf64.c: Remove file.
+ * sysdeps/unix/sysv/linux/arm/lockf64.c: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/lockf64.c: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/lockf64.c: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/n32/lockf64.c: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/lockf64.c: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/lockf64.c: Likewise.
+ * sysdeps/unix/sysv/linux/sh/lockf64.c: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/lockf64.c: Likewise.
+
+2019-02-15 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #24211]
+ * nptl/pthread_join_common.c (__pthread_timedjoin_ex): Do not read
+ pd->result after the thread descriptor has been freed.
+
+2019-02-15 Joseph Myers <joseph@codesourcery.com>
+
+ * sunrpc/tst-svc_register.c (rpcbind_address): Remove qualifier
+ from function return type.
+
+ * setjmp/tst-setjmp.c (jump): Use __attribute__ ((__noreturn__)).
+
+2019-02-14 Jan Kratochvil <jan.kratochvil@redhat.com>
+
+ * scripts/test_printers_common.py: Set TERM to a known harmless
+ value.
+
+2019-02-14 Joseph Myers <joseph@codesourcery.com>
+
+ * sunrpc/xdr.c (xdr_int): Add fall-through comment.
+ (xdr_u_int): Likewise.
+ (xdr_enum): Likewise.
+ (xdr_bytes): Reword fall-through comment.
+ (xdr_string): Likewise.
+
+2019-02-14 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ [BZ #2421]
+ * nptl/Makefile (lpthread-routines): Remove lll_timedwait_tid.
+ (tests): Add tst-join8 tst-join9.
+ * nptl/lll_timedwait_tid.c: Remove file.
+ * sysdeps/sparc/sparc32/lll_timedwait_tid.c: Likewise.
+ * sysdeps/unix/sysv/linux/i386/lll_timedwait_tid.c: Likewise.
+ * sysdeps/sysv/linux/x86_64/lll_timedwait_tid.c: Likewise.
+ * nptl/pthread_join_common.c (timedwait_tid): New function.
+ (__pthread_timedjoin_ex): Act as cancellation entrypoint is block
+ is set.
+ * nptl/tst-join5.c (thread_join): New function.
+ (tf1, tf2, do_test): Use libsupport and add pthread_timedjoin_np
+ check.
+ * nptl/tst-join8.c: New file.
+ * nptl/tst-join9.c: Likewise.
+ * sysdeps/nptl/lowlevellock-futex.h (lll_futex_wait_cancel,
+ lll_futex_timed_wait_cancel): Add generic macros.
+ * sysdeps/nptl/lowlevellock.h (__lll_timedwait_tid, lll_wait_tid):
+ Remove definitions.
+ * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
+ * sysdeps/sparc/sparc32/lowlevellock.c (__lll_timedwait_tid):
+ Remove function.
+ * sysdeps/unix/sysv/linux/i386/lowlevellock.S (__lll_timedwait_tid):
+ Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
+ * sysdeps/unix/sysv/linux/lowlevellock-futex.h
+ (lll_futex_timed_wait_cancel): New macro.
+
+2019-02-14 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * benchtests/Makefile: Add malloc-simple benchmark.
+ * benchtests/bench-malloc-simple.c: New benchmark.
+
+2019-02-14 Siddhesh Poyarekar <siddhesh@sourceware.org>
+
+ * benchtests/bench-memmove.c (do_one_test): Remove unused
+ ORIG_SRC.
+ (do_test): Adjust.
+ * benchtests/bench-memmove-large.c (do_one_test): Remove unused
+ ORIG_SRC.
+ (do_test): Adjust.
+
+2019-01-13 Jim Wilson <jimw@sifive.com>
+
+ [BZ #24040]
+ * elf/Makefile (CFLAGS-tst-unwind-main.c): Add -DUSE_PTHREADS=0.
+ * elf/tst-unwind-main.c: If USE_PTHEADS, include pthread.h and error.h
+ (func): New.
+ (main): If USE_PTHREADS, call pthread_create to run func. Otherwise
+ call func directly.
+ * nptl/Makefile (tests): Add tst-unwind-thread.
+ (CFLAGS-tst-unwind-thread.c): Define.
+ * nptl/tst-unwind-thread.c: New file.
+ * sysdeps/unix/sysv/linux/riscv/clone.S (__thread_start): Mark ra
+ as undefined.
+
+2019-02-13 Joseph Myers <joseph@codesourcery.com>
+
+ * iconvdata/cns11643.h (ucs4_to_cns11643): Adjust fall-through
+ comment wording.
+ * nis/nis_call.c (__do_niscall3): Likewise.
+
+ * catgets/gencat.c (normalize_line): Use braces around empty
+ 'else' body.
+ * include/stap-probe.h [!USE_STAP_PROBE && !__ASSEMBLER__]
+ (STAP_PROBE0): Use do {} while (0) for do-nothing definition.
+ [!USE_STAP_PROBE && !__ASSEMBLER__] (STAP_PROBE1): Likewise.
+ [!USE_STAP_PROBE && !__ASSEMBLER__] (STAP_PROBE2): Likewise.
+ [!USE_STAP_PROBE && !__ASSEMBLER__] (STAP_PROBE3): Likewise.
+ [!USE_STAP_PROBE && !__ASSEMBLER__] (STAP_PROBE4): Likewise.
+ * libio/libio.h (_IO_funlockfile): Use ((void) 0) for do-nothing
+ definition.
+
+ * support/test-container.c (recursive_remove): Use FAIL_EXIT1 if
+ execlp returns.
+
+2019-02-12 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * benchtests/bench-strcasecmp.c (stupid_strcasecmp): Remove.
+ * benchtests/bench-strcasestr.c (stupid_strcasestr): Remove.
+ * benchtests/bench-strchr.c (stupid_strchr): Remove.
+ * benchtests/bench-strcmp.c (stupid_strcmp): Remove.
+ * benchtests/bench-strcspn.c (stupid_strcspn): Remove.
+ * benchtests/bench-strlen.c (builtin_strlen): Remove.
+ * benchtests/bench-strncasecmp.c (stupid_strncasecmp): Remove.
+ * benchtests/bench-strncmp.c (stupid_strncmp): Remove.
+ * benchtests/bench-strpbrk.c (stupid_strpbrk): Remove.
+ * benchtests/bench-strspn.c (stupid_strspn): Remove.
+ * benchtests/Makefile: Remove bench-bcopy.c and bench-bzero.c.
+ * benchtests/bench-bcopy.c: Delete file.
+ * benchtests/bench-bzero.c: Likewise.
+ * benchtests/bench-memccpy.c (stupid_memccpy): Remove.
+ (simple_memccpy): Remove.
+ (generic_memccpy): Add function.
+ * benchtests/bench-memcpy.c: (builtin_memcpy): Remove.
+ * benchtests/bench-memmove.c (simple_bcopy): Remove.
+ * benchtests/bench-mempcpy.c (simple_mempcpy): Remove.
+ (generic_mempcpy): Add new function.
+ * benchtests/bench-memset.c (simple_bzero): Remove.
+ (builtin_bzero): Remove.
+ (builtin_memset): Remove.
+ * benchtests/bench-rawmemchr.c (simple_rawmemchr): Remove.
+ (generic_rawmemchr): Add new function.
+
+2019-02-12 Florian Weimer <fweimer@redhat.com>
+
+ * nss/getent.c (ahosts_keys_int): Include IPv6 scope ID in output.
+
+2019-02-12 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ [BZ #24122]
+ * elf/Makefile (tests): Add tst-audit13.
+ (modules-names): Add tst-audit13mod1.
+ (tst-audit13.out, LDFLAGS-tst-audit13mod1.so, tst-audit13-ENV): New
+ rule.
+ * elf/tst-audit13.c: New file.
+ * elf/tst-audit13mod1.c: Likewise.
+
+2019-02-12 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #24122]
+ * elf/rtld.c (unload_audit_module): New function.
+ (report_audit_module_load_error): Likewise.
+ (load_audit_module): Likewise. Extracted from dl_main. Call
+ _dl_close if the laversion symbol cannot be found. Use early
+ returns for error handling. Add malloc error check. Check for a
+ zero return value from la_version. Remove spurious comment about
+ static TLS initialization. Remove useless casts.
+ (notify_audit_modules_of_loaded_object): New function. Extracted
+ from dl_main.
+ (load_audit_module): Likewise.
+ (dl_main): Call load_audit_modules.
+
+2019-02-12 Joseph Myers <joseph@codesourcery.com>
+
+ * elf/dl-exception.c (_dl_exception_create_format): Add
+ fall-through comments.
+ * elf/ldconfig.c (parse_conf_include): Likewise.
+ * elf/rtld.c (print_statistics): Likewise.
+ * locale/programs/charmap.c (parse_charmap): Likewise.
+ * misc/mntent_r.c (__getmntent_r): Likewise.
+ * posix/wordexp.c (parse_arith): Likewise.
+ (parse_backtick): Likewise.
+ * resolv/ns_ttl.c (ns_parse_ttl): Likewise.
+ * sysdeps/x86/cpu-features.c (init_cpu_features): Likewise.
+ * sysdeps/x86_64/dl-machine.h (elf_machine_rela): Likewise.
+
+2019-02-11 Paul A. Clarke <pc@us.ibm.com>
+
+ * sysdeps/powerpc/fpu/e_sqrt.c (__slow_ieee754_sqrtf):
+ Use float instead of double.
+
+2019-02-11 TAMUKI Shoichi <tamuki@linet.gr.jp>
+
+ * time/strftime_l.c: Fix a few whitespace arrangement inconsistencies.
+
+2019-02-08 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/powerpc/bits/mathinline.h: Remove.
+
+2019-02-08 Florian Weimer <fweimer@redhat.com>
+
+ math: Enable <bits/math-finite.h> sysdeps override, as used on ia64.
+ * math/bits/math-finite.h: Move to ...
+ * bits/math-finite.h: ... here.
+
+2019-02-08 Florian Weimer <fweimer@redhat.com>
+
+ * sysdeps/generic/bits/unistd_ext.h: Move to ...
+ * bits/unistd_ext.h: here.
+
+2019-02-08 Patsy Griffin Franklin <pfrankli@redhat.com>
+
+ [BZ #21915]
+ * nss/Makefile (test-container): Add tst-nss-files-hosts-long.
+ * nss/tst-nss-files-hosts-long.c: New file.
+ * nss/tst-nss-files-hosts-long.root: New directory.
+ * nss/tst-nss-files-hosts-long.root/etc: Likewise.
+ * nss/tst-nss-files-hosts-long.root/etc/hosts: New file.
+
+2019-02-08 Florian Weimer <fweimer@redhat.com>
+
+ * include/bits/unistd_ext.h: Remove file.
+ * posix/bits/unistd_ext.h: Move to ...
+ * sysdeps/generic/bits/unistd_ext.h: ... here.
+
+2019-02-08 Florian Weimer <fweimer@redhat.com>
+
+ * include/bits/unistd_ext.h: New file.
+
+2019-02-08 TAMUKI Shoichi <tamuki@linet.gr.jp>
+
+ * time/tst-strftime2.c: Use array_length macros instead of magic
+ numbers.
+
+2019-02-08 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #24161]
+ * sysdeps/nptl/fork.h (__run_fork_handlers): Add multiple_threads
+ argument.
+ * nptl/register-atfork.c (__run_fork_handlers): Only perform
+ locking if the new do_locking argument is true.
+ * sysdeps/nptl/fork.c (__libc_fork): Pass multiple_threads to
+ __run_fork_handlers.
+
+2019-02-08 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #6399]
+ Linux: Add gettid system call wrapper.
+ * posix/Makefile (headers): Add bits/unistd_ext.h.
+ * posix/bits/unistd_ext.h: New file.
+ * posix/unistd.h: Include it.
+ * manual/process.texi (Process Identification): Document gettid.
+ * sysdeps/unix/sysv/linux/Makefile [subdir == misc] (tests): Add
+ tst-gettid, tst-gettid-kill.
+ (tst-gettid): Link with $(shared-thread-library).
+ * sysdeps/unix/sysv/linux/Version (GLIBC_2.30): Export gettid.
+ * sysdeps/unix/sysv/linux/bits/unistd_ext.h: New file.
+ * sysdeps/unix/sysv/linux/bits/syscalls.list (gettid): Add.
+ * sysdeps/unix/sysv/linux/bits/tst-gettid.c: New file.
+ * sysdeps/unix/sysv/linux/bits/tst-gettid-kill.c: Likewise.
+ * sysdeps/unix/sysv/linux/aarch64/libc.abilist (GLIBC_2.30):
+ Add gettid.
+ * sysdeps/unix/sysv/linux/alpha/libc.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/arm/libc.abilist (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/csky/libc.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/hppa/libc.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/i386/libc.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/ia64/libc.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/microblaze/libc.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/nios2/libc.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+ (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/sh/libc.abilist (GLIBC_2.30): Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist (GLIBC_2.30):
+ Likewise.
+ * sysdeps/unix/sysv/linux/tst-setgetname.c (gettid): Remove.
+
+2019-02-08 Florian Weimer <fweimer@redhat.com>
+
+ * rt/clock-compat.c (COMPAT_REDIRECT): Turn librt forwarders into
+ compatibility symbols.
+
+2019-02-07 Stefan Liebler <stli@linux.ibm.com>
+
+ [BZ #24180]
+ * nptl/pthread_mutex_trylock.c (__pthread_mutex_trylock):
+ Add compiler barriers and comments.
+
+2019-02-07 Florian Weimer <fweimer@redhat.com>
+
+ * include/array_length.h (array_length): Do not use a statement
+ expression and _Static_assert, so that array_length can be used at
+ file scope and as a constant expression.
+
+2019-02-07 Florian Weimer <fweimer@redhat.com>
+
+ * support/xdlfcn.h (xdlmopen): Declare.
+ * support/xdlmopen.c: New file.
+ * support/Makefile (libsupport-routines): Add xdlmopen.
+
+2019-02-06 Joseph Myers <joseph@codesourcery.com>
+
+ * elf/dl-load.h (_dl_postprocess_loadcmd): Use __always_inline
+ before return type, without separate inline.
+ * elf/dl-tunables.c (maybe_enable_malloc_check): Likewise.
+ * elf/dl-tunables.h (tunable_is_name): Likewise.
+ * malloc/malloc.c (do_set_trim_threshold): Likewise.
+ (do_set_top_pad): Likewise.
+ (do_set_mmap_threshold): Likewise.
+ (do_set_mmaps_max): Likewise.
+ (do_set_mallopt_check): Likewise.
+ (do_set_perturb_byte): Likewise.
+ (do_set_arena_test): Likewise.
+ (do_set_arena_max): Likewise.
+ (do_set_tcache_max): Likewise.
+ (do_set_tcache_count): Likewise.
+ (do_set_tcache_unsorted_limit): Likewise.
+ * nis/nis_subr.c (count_dots): Likewise.
+ * nptl/allocatestack.c (advise_stack_range): Likewise.
+ * sysdeps/ieee754/dbl-64/s_sin.c (do_cos): Likewise.
+ (do_sin): Likewise.
+ (reduce_sincos): Likewise.
+ (do_sincos): Likewise.
+ * sysdeps/unix/sysv/linux/x86/elision-conf.c
+ (do_set_elision_enable): Likewise.
+ (TUNABLE_CALLBACK_FNDECL): Likewise.
+
+2019-02-06 Florian Weimer <fweimer@redhat.com>
+
+ * support/xdlfcn.c (xdlopen, xdlclose): Do not call dlerror.
+ (xdlsym): Use dlerror to detect a NULL symbol.
+
+2019-02-06 Florian Weimer <fweimer@redhat.com>
+
+ * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Do not include
+ <stap-probe.h>.
+ * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
+
+2019-02-06 Stefan Liebler <stli@linux.ibm.com>
+
+ * libio/tst-bz24153.c (wide): Use wide char format specifier.
+
+2019-02-06 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/wmemcmp-vx.S: Add strong alias to
+ __wmemcmp and weak alias to wmemcmp.
+
+2019-02-06 Stefan Liebler <stli@linux.ibm.com>
+
+ [BZ #23403]
+ * nptl/allocatestack.c (allocate_stack): Align pointer pd for
+ TLS_TCB_AT_TP tls variant.
+ * nptl/tst-tls1.c: Migrate to support/test-driver.c.
+ Add alignment checks.
+ * support/Makefile (libsupport-routines): Add xposix_memalign and
+ xpthread_setstack.
+ * support/support.h: Add xposix_memalign.
+ * support/xthread.h: Add xpthread_attr_setstack.
+ * support/xposix_memalign.c: New File.
+ * support/xpthread_attr_setstack.c: Likewise.
+
+2019-02-05 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #24164]
+ arm: Use "nr" constraint for Systemtap probes, to avoid the
+ compiler using memory operands for constants, due to the "o"
+ alternative in the default "nor" constraint.
+ * include/stap-probe.h [USE_STAP_PROBE]: Include
+ <stap-probe-machine.h>
+ * sysdeps/generic/stap-probe-machine.h: New file.
+ * sysdeps/arm/stap-probe-machine.h: Likewise.
+
+2019-02-04 Joseph Myers <joseph@codesourcery.com>
+
+ * malloc/malloc.c (tcache_get): Compare tcache->counts[tc_idx]
+ with 0, not tcache->entries[tc_idx].
+
+ * nscd/connections.c (reqinfo): Initialize SHUTDOWN element only
+ once.
+
+2019-02-04 Andreas Schwab <schwab@suse.de>
+
+ [BZ #16976]
+ [BZ #17396]
+ * posix/fnmatch_loop.c (internal_fnmatch, internal_fnwmatch): When
+ looking up collating elements match against (wide) character
+ sequence instead of name. Correct alignment adjustment.
+ * posix/fnmatch.c: Don't include "../locale/elem-hash.h".
+ (WMEMCMP) [HANDLE_MULTIBYTE]: Define.
+ * posix/Makefile (tests): Add tst-fnmatch4 and tst-fnmatch5.
+ (LOCALES): Add cs_CZ.ISO-8859-2.
+ * posix/tst-fnmatch4.c: New file.
+ * posix/tst-fnmatch5.c: New file.
+ * include/wchar.h (__wmemcmp): Declare.
+ * wcsmbs/wmemcmp.c: Define __wmemcmp and add wmemcmp as weak alias.
+ * sysdeps/i386/i686/multiarch/wmemcmp.c: Likewise.
+ * sysdeps/x86_64/multiarch/wmemcmp.c: Likewise.
+ * sysdeps/s390/wmemcmp.c: Likewise.
+
+2019-02-04 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #24155]
+ CVE-2019-7309
+ * NEWS: Updated for CVE-2019-7309.
+ * sysdeps/x86_64/memcmp.S: Use RDX_LP for size. Clear the
+ upper 32 bits of RDX register for x32. Use unsigned Jcc
+ instructions, instead of signed.
+ * sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-memcmp-2.
+ * sysdeps/x86_64/x32/tst-size_t-memcmp-2.c: New test.
+
+2019-02-04 Florian Weimer <fweimer@redhat.com>
+
+ * posix/spawn.h (posix_spawn, posix_spawnp): Add __nonnull attribute.
+ (posix_spawnattr_init, posix_spawnattr_destroy): Likewise.
+ (posix_spawnattr_getsigdefault, posix_spawnattr_setsigdefault):
+ Likewise.
+ (posix_spawnattr_getsigmask, posix_spawnattr_setsigmask): Likewise.
+ (posix_spawnattr_getflags, posix_spawnattr_setflags): Likewise.
+ (posix_spawnattr_getpgroup, posix_spawnattr_setpgroup): Likewise.
+ (posix_spawnattr_getschedpolicy, posix_spawnattr_setschedpolicy):
+ Likewise.
+ (posix_spawnattr_getschedparam, posix_spawnattr_setschedparam):
+ Likewise.
+ (posix_spawn_file_actions_init, posix_spawn_file_actions_destroy):
+ Likewise.
+ (posix_spawn_file_actions_addopen): Likewise.
+ (posix_spawn_file_actions_addclose): Likewise.
+ (posix_spawn_file_actions_adddup2): Likewise.
+ (posix_spawn_file_actions_addchdir_np): Likewise. Add __restrict
+ qualifiers.
+ (posix_spawn_file_actions_addfchdir_np): Likewise.
+
+2019-02-04 David Newall <glibc@davidnewall.com>
+
+ elf: Implement --preload option for the dynamic linker.
+ * elf/rtld.c (preloadarg): New variable.
+ (handle_preload_list): Pass through “where†argument to
+ do_preload.
+ (dl_main): Handle "--preload" and add second call to
+ handle_preload_list.
+ * elf/Makefile (tests-special): Add tst-rtld-preload.out.
+ (tst-rtld-preload-OBJS): Set variable.
+ (tst-rtld-preload.out): New target.
+ * elf/tst-rtld-preload.sh: New file.
+
+2019-02-04 Matthew Malcomson <matthew.malcomson@arm.com>
+
+ * Makefile (testrun.sh): Exit in case of incorrect argument.
+
+2019-02-04 Florian Weimer <fweimer@redhat.com>
+
+ * time/tzfile.c (__tzfile_read): Reorder suballocations to avoid
+ alignment gaps.
+
+2019-02-03 Florian Weimer <fweimer@redhat.com>
+
+ * time/tzfile.c (__tzfile_read): Use struct alloc_buffer and its
+ implicit overflow checks.
+
+2019-02-03 Aurelien Jarno <aurelien@aurel32.net>
+
+ * stdlib/isomac.c: Include <unistd.h>.
+
+2019-02-03 Florian Weimer <fweimer@redhat.com>
+
+ * include/time.h (__tzfile_default): Use int, not long int, for
+ the GMT offsets.
+ * time/tzfile.c (struct ttinfo): Change type of the offset member
+ to int.
+ (__tzfile_read): Remove useless cast.
+ (__tzfile_default): Adjust prototype.
+ * time/tzset.c (tz_rule): Change type of the offset member to int.
+ (parse_offset): Change the type of the sign variable to int.
+
+2019-02-03 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #24153]
+ * debug/gets_chk.c (__gets_chk): Use stdin instead of _IO_stdin.
+ * libio/getchar.c (getchar): Likewise.
+ * libio/getchar_u.c (getchar_unlocked): Likewise.
+ * libio/getwchar.c (getwchar): Likewise.
+ * libio/getwchar_u.c (getwchar_unlocked): Likewise.
+ * libio/iogets.c (_IO_gets): Likewise.
+ * libio/vscanf.c (_IO_vscanf): Likewise.
+ * libio/vwscanf.c (__vwscanf): Likewise.
+ * libio/tst-bz24153.c: New file.
+ * libio/Makefile (tests): Add it.
+
+2019-02-02 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #14829]
+ * manual/resource.texi (Basic Scheduling Functions): Add
+ portability note. Change process to task throughout the section.
+ Remove incorrect comment about sched_yield as it affects
+ tasks/threads, not entire processes.
+ * sysdeps/unix/sysv/linux/bits/posix_opt.h
+ (_POSIX_PRIORITY_SCHEDULING): Update comment.
+
+2019-02-01 Joseph Myers <joseph@codesourcery.com>
+
+ * configure.ac (libc_cv_compiler_ok): Require GCC 6.2 or later.
+ * configure: Regenerated.
+ * manual/install.texi (Tools for Compilation): Update minimum GCC
+ version.
+ * INSTALL: Regenerated.
+
+2019-02-01 Florian Weimer <fweimer@redhat.com>
+
+ * support/support_test_compare_string.c
+ (support_test_compare_string): Use "string" in error message.
+ * support/tst-test_compare_string.c (do_test): Adjust.
+
+2019-02-01 Florian Weimer <fweimer@redhat.com>
+
+ * support/support_format_address_family.c
+ (support_format_address_family): Handle AF_LOCAL, AF_UNSPEC.
+
+2019-02-01 Florian Weimer <fweimer@redhat.com>
+
+ * manual/socket.texi (Internet Address Formats): Clarify the byte
+ order of struct sockaddr_in, struct sockaddr_in6. Document
+ sin6_flowinfo and sin6_scope_id.
+
+2019-02-01 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * sysdeps/posix/clock_getres.c (__clock_getres): Cleanup.
+ * sysdeps/unix/clock_gettime.c (__clock_gettime): Cleanup.
+ * sysdeps/unix/clock_settime.c (__clock_settime): Cleanup.
+ * sysdeps/unix/sysv/linux/clock_getres.c (__clock_getres): Cleanup.
+ * sysdeps/unix/sysv/linux/clock_gettime.c (__clock_gettime): Cleanup.
+ * sysdeps/unix/sysv/linux/clock_settime.c (__clock_settime): Cleanup.
+
+2019-02-01 Feng Xue <fxue@os.amperecomputing.com>
+
+ * sysdeps/aarch64/memchr.S (__memchr): Rename to MEMCHR.
+ [!MEMCHR](MEMCHR): Set to __memchr.
+ * sysdeps/aarch64/multiarch/Makefile (sysdep_routines):
+ Add memchr_generic and memchr_nosimd.
+ * sysdeps/aarch64/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Add memchr ifuncs.
+ * sysdeps/aarch64/multiarch/memchr.c: New file.
+ * sysdeps/aarch64/multiarch/memchr_generic.S: Likewise.
+ * sysdeps/aarch64/multiarch/memchr_nosimd.S: Likewise.
+
+2019-02-01 Feng Xue <fxue@os.amperecomputing.com>
+
+ * sysdeps/aarch64/multiarch/Makefile (sysdep_routines):
+ Add memset_emag.
+ * sysdeps/aarch64/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Add __memset_emag to memset ifunc.
+ * sysdeps/aarch64/multiarch/memset.c (libc_ifunc):
+ Add IS_EMAG check for ifunc dispatch.
+ * sysdeps/aarch64/multiarch/memset_base64.S: New file.
+ * sysdeps/aarch64/multiarch/memset_emag.S: New file.
+
+2019-02-01 Feng Xue <fxue@os.amperecomputing.com>
+
+ * manual/tunables.texi (Tunable glibc.cpu.name): Add emag.
+ * sysdeps/unix/sysv/linux/aarch64/cpu-features.c (cpu_list):
+ Add emag.
+ * sysdeps/unix/sysv/linux/aarch64/cpu-features.h (IS_EMAG):
+ New macro.
+
+2019-02-01 Stefan Liebler <stli@linux.ibm.com>
+
+ * posix/tst-spawn do_test(): Move waitpid before posix_spawn.
+
+2019-01-31 Vineet Gupta <vgupta@synopsys.com>
+
+ * sysdeps/unix/make-syscalls.sh: Fix comment referencing
+ syscall-template file.
+
+2019-01-31 Carlos O'Donell <carlos@redhat.com>
+ Torvald Riegel <triegel@redhat.com>
+ Rik Prohaska <prohaska7@gmail.com>
+
+ [BZ# 23844]
+ * nptl/Makefile (tests): Add tst-rwlock-tryrdlock-stall, and
+ tst-rwlock-trywrlock-stall.
+ * nptl/pthread_rwlock_tryrdlock.c (__pthread_rwlock_tryrdlock):
+ Wake waiters if PTHREAD_RWLOCK_FUTEX_USED is set.
+ * nptl/pthread_rwlock_trywrlock.c (__pthread_rwlock_trywrlock):
+ Set __wrphase_fute to 1 only if we started the write phase.
+ * nptl/tst-rwlock-tryrdlock-stall.c: New file.
+ * nptl/tst-rwlock-trywrlock-stall.c: New file.
+ * support/Makefile (libsupport-routines): Add xpthread_rwlock_destroy.
+ * support/xpthread_rwlock_destroy.c: New file.
+ * support/xthread.h: Declare xpthread_rwlock_destroy.
+
+2019-02-01 Joseph Myers <joseph@codesourcery.com>
+
+ * scripts/build-many-glibcs.py (Context.checkout): Default MPFR
+ version to 4.0.2.
+
+2019-01-31 Paul Pluzhnikov <ppluzhnikov@google.com>
+
+ [BZ #24051]
+ * libio/ioputs.c (_IO_puts): Use stdout instead of _IO_stdout.
+ * libio/fileops.c (_IO_new_file_underflow): Likewise
+ * libio/wfileops.c (_IO_wfile_underflow): Likewise
+ * libio/putchar.c (putchar): Likewise.
+ * libio/putchar_u.c (putchar_unlocked): Likewise.
+ * libio/putwchar.c (putchar): Likewise.
+ * libio/putwchar_u.c (putwchar_unlocked): Likewise.
+ * libio/tst-bz24051.c: New test.
+ * libio/Makefile (tests): Add tst-bz24051
+
+2019-01-31 Paul Eggert <eggert@cs.ucla.edu>
+
+ CVE-2019-9169
+ regex: fix read overrun [BZ #24114]
+ Problem found by AddressSanitizer, reported by Hongxu Chen in:
+ https://debbugs.gnu.org/34140
+ * posix/regexec.c (proceed_next_node):
+ Do not read past end of input buffer.
+
+2019-01-31 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #24059]
+ * nss/nss_files/files-alias.c (get_next_alias): Handle
+ continuation line without newline at the end.
+ * nss/tst-nss-files-alias-truncated.c: New file.
+ * nss/Makefile [$(build-shared)] (tests): Add
+ tst-nss-files-alias-truncated.
+ (tst-nss-files-alias-truncated): Link with libnss_files.so.
+ * support/namespace.h (struct support_chroot_configuration): Add
+ aliases member.
+ (struct support_chroot): Add path_aliases member.
+ * support/support_chroot.c (support_chroot_create): Handle
+ aliases.
+ (support_chroot_free): Free path_aliases.
+
+2019-01-31 Siddhesh Poyarekar <siddhesh@sourceware.org>
+
+ * version.h (RELEASE): Set to "development".
+ (VERSION): Set to "2.29.9000".
+ * NEWS: Add section for 2.30.
+
+ * version.h (RELEASE): Set to "stable".
+ (VERSION): Set to "2.29".
+ * include/features.h (__GLIBC_MINOR__): Set to 2.29.
+
+ * NEWS: Add the list of bugs fixed in 2.29.
+ * manual/contrib.texi: Update contributors list with some more
+ names.
+ * manual/install.texi: Update latest versions of packages
+ tested.
+ * INSTALL: Regenerated.
+
+2019-01-25 Siddhesh Poyarekar <siddhesh@sourceware.org>
+
+ * 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-01-24 Uroš Bizjak <ubizjak@gmail.com>
+
+ [BZ #24130]
+ * sysdeps/alpha/remqu.S (__remqu): Add missing restore
+ of $f3 register on $y_is_neg path.
+
+2019-01-24 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ [BZ #24110]
+ * hurd/hurdsig.c (_hurd_thread_sigstate): Set SS_DISABLE in
+ sigaltstack.ss_flags.
+
+2019-01-24 TAMUKI Shoichi <tamuki@linet.gr.jp>
+
+ [BZ #23758]
+ * manual/time.texi (strftime): Document "%Ey".
+ * time/strftime_l.c (__strftime_internal): Set the default width
+ padding with zero of "%Ey" to 2.
+
+ [BZ #24096]
+ * manual/time.texi (strftime): Document "%EC" and "%EY".
+ * time/Makefile (tests): Add tst-strftime2.
+ (LOCALES): Add ja_JP.UTF-8, lo_LA.UTF-8, and th_TH.UTF-8.
+ * time/strftime_l.c (__strftime_internal): Add argument yr_spec to
+ override padding for "%Ey".
+ If an optional flag ('_' or '-') is specified to "%EY", interpret the
+ "%Ey" in the subformat as if decorated with that flag.
+ * time/tst-strftime2.c: New file.
+
+2019-01-24 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * support/xsigstack.c (MAP_NORESERVE, MAP_STACK): Define if they
+ are not defined.
+
+ [BZ #24122]
+ * elf/Makefile (tests): Add tst-audit13.
+ (modules-names): Add tst-audit13mod1.
+ (tst-audit13.out, LDFLAGS-tst-audit13mod1.so, tst-audit13-ENV): New
+ rule.
+ * elf/rtld.c (dl_main): Handle invalid audit module version.
+ * elf/tst-audit13.c: New file.
+ * elf/tst-audit13mod1.c: Likewise.
+
+2019-01-22 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * sysdeps/mach/hurd/faccessat.c (__faccessat_common): Check for errors
+ returned by __hurd_at_flags.
+ * hurd/lookup-at.c (__file_name_lookup_at): When at_flags contains
+ AT_EMPTY_PATH, call __dir_lookup and __hurd_file_name_lookup_retry
+ directly instead of __hurd_file_name_lookup.
+
+2019-01-21 Joseph Myers <joseph@codesourcery.com>
+
+ * scripts/build-many-glibcs.py (Context.checkout): Default
+ binutils version to 2.32 branch.
+
+2019-01-21 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #20018]
+ CVE-2016-10739
+ resolv: Reject trailing characters in host names
+ * include/arpa/inet.h (__inet_aton_exact): Declare.
+ (inet_aton): Remove hidden prototype. No longer used internally.
+ * nscd/gai.c (__inet_aton): Do not define.
+ * nscd/gethstbynm3_r.c (__inet_aton): Likewise.
+ * nss/digits_dots.c (__inet_aton): Likewise.
+ (__nss_hostname_digits_dots_context): Call __inet_aton_exact.
+ * resolv/Makefile (tests-internal): Add tst-inet_aton_exact.
+ (tests): Add tst-resolv-nondecimal, tst-resolv-trailing.
+ (tst-resolv-nondecimal): Link with libresolv.so and libpthread.
+ (tst-resolv-trailing): Likewise.
+ * resolv/Versions (GLIBC_PRIVATE): Export __inet_aton_exact from
+ libc.
+ * resolv/inet_addr.c (inet_aton_end): Remame from __inet_aton.
+ Make static. Add endp parameter.
+ (__inet_aton_exact): New function.
+ (__inet_aton_ignore_trailing): New function, aliased to inet_aton.
+ (__inet_addr): Call inet_aton_end.
+ * resolv/res_init.c (res_vinit_1): Truncate nameserver for IPv4,
+ not just IPv6. Call __inet_aton_exact.
+ * resolv/tst-aton.c: Switch to <support/test-driver.c>.
+ (tests): Make const. Add additional test cases with trailing
+ characters.
+ (do_test): Use array_length.
+ * resolv/tst-inet_aton_exact.c: New file.
+ * resolv/tst-resolv-trailing.c: Likewise.
+ * resolv/tst-resolv-nondecimal.c: Likewise.
+ * sysdeps/posix/getaddrinfo.c (gaih_inet): Call __inet_aton_exact.
+
+2019-01-21 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ# 24097]
+ CVE-2019-6488
+ * sysdeps/x86_64/multiarch/strlen-avx2.S: Use RSI_LP for length.
+ Clear the upper 32 bits of RSI register.
+ * sysdeps/x86_64/strlen.S: Use RSI_LP for length.
+ * sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-strnlen
+ and tst-size_t-wcsnlen.
+ * sysdeps/x86_64/x32/tst-size_t-strnlen.c: New file.
+ * sysdeps/x86_64/x32/tst-size_t-wcsnlen.c: Likewise.
+
+2019-01-21 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ# 24097]
+ CVE-2019-6488
+ * sysdeps/x86_64/multiarch/strcpy-avx2.S: Use RDX_LP for length.
+ * sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S: Likewise.
+ * sysdeps/x86_64/multiarch/strcpy-ssse3.S: Likewise.
+ * sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-strncpy.
+ * sysdeps/x86_64/x32/tst-size_t-strncpy.c: New file.
+
+2019-01-21 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ# 24097]
+ CVE-2019-6488
+ * sysdeps/x86_64/multiarch/strcmp-avx2.S: Use RDX_LP for length.
+ * sysdeps/x86_64/multiarch/strcmp-sse42.S: Likewise.
+ * sysdeps/x86_64/strcmp.S: Likewise.
+ * sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-strncasecmp,
+ tst-size_t-strncmp and tst-size_t-wcsncmp.
+ * sysdeps/x86_64/x32/tst-size_t-strncasecmp.c: New file.
+ * sysdeps/x86_64/x32/tst-size_t-strncmp.c: Likewise.
+ * sysdeps/x86_64/x32/tst-size_t-wcsncmp.c: Likewise.
+
+2019-01-21 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ# 24097]
+ CVE-2019-6488
+ * sysdeps/x86_64/multiarch/memset-avx512-no-vzeroupper.S: Use
+ RDX_LP for length. Clear the upper 32 bits of RDX register.
+ * sysdeps/x86_64/multiarch/memset-vec-unaligned-erms.S: Likewise.
+ * sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-wmemset.
+ * sysdeps/x86_64/x32/tst-size_t-memset.c: New file.
+ * sysdeps/x86_64/x32/tst-size_t-wmemset.c: Likewise.
+
+2019-01-21 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ# 24097]
+ CVE-2019-6488
+ * sysdeps/x86_64/memrchr.S: Use RDX_LP for length.
+ * sysdeps/x86_64/multiarch/memrchr-avx2.S: Likewise.
+ * sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-memrchr.
+ * sysdeps/x86_64/x32/tst-size_t-memrchr.c: New file.
+
+2019-01-21 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ# 24097]
+ CVE-2019-6488
+ * sysdeps/x86_64/multiarch/memcpy-ssse3-back.S: Use RDX_LP for
+ length. Clear the upper 32 bits of RDX register.
+ * sysdeps/x86_64/multiarch/memcpy-ssse3.S: Likewise.
+ * sysdeps/x86_64/multiarch/memmove-avx512-no-vzeroupper.S:
+ Likewise.
+ * sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:
+ Likewise.
+ * sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-memcpy.
+ tst-size_t-wmemchr.
+ * sysdeps/x86_64/x32/tst-size_t-memcpy.c: New file.
+
+2019-01-21 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ# 24097]
+ CVE-2019-6488
+ * sysdeps/x86_64/multiarch/memcmp-avx2-movbe.S: Use RDX_LP for
+ length. Clear the upper 32 bits of RDX register.
+ * sysdeps/x86_64/multiarch/memcmp-sse4.S: Likewise.
+ * sysdeps/x86_64/multiarch/memcmp-ssse3.S: Likewise.
+ * sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-memcmp and
+ tst-size_t-wmemcmp.
+ * sysdeps/x86_64/x32/tst-size_t-memcmp.c: New file.
+ * sysdeps/x86_64/x32/tst-size_t-wmemcmp.c: Likewise.
+
+2019-01-21 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ# 24097]
+ CVE-2019-6488
+ * sysdeps/x86_64/memchr.S: Use RDX_LP for length. Clear the
+ upper 32 bits of RDX register.
+ * sysdeps/x86_64/multiarch/memchr-avx2.S: Likewise.
+ * sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-memchr and
+ tst-size_t-wmemchr.
+ * sysdeps/x86_64/x32/test-size_t.h: New file.
+ * sysdeps/x86_64/x32/tst-size_t-memchr.c: Likewise.
+ * sysdeps/x86_64/x32/tst-size_t-wmemchr.c: Likewise.
+
+2019-01-18 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #24112]
+ resolv: Do not send queries for non-host-names in nss_dns.
+ * resolv/nss_dns/dns-host.c (check_name): New function.
+ (_nss_dns_gethostbyname2_r): Use it.
+ (_nss_dns_gethostbyname_r): Likewise.
+ (_nss_dns_gethostbyname4_r): Likewise.
+
+2019-01-21 Florian Weimer <fweimer@redhat.com>
+
+ * resolv/inet_addr.c: Reformat to GNU style.
+ (__inet_addr, __inet_aton): Update comment.
+
+2019-01-18 Florian Weimer <fweimer@redhat.com>
+
+ malloc: Revert commit 6923f6db1e688dedcf3a6556da76e0bf24a41872
+ ("malloc: Use current (C11-style) atomics for fastbin access").
+ This commit introduces a substantial performance regression on
+ POWER and Aarch64.
+ * malloc/malloc.c (fastbin_push_entry, fastbin_pop_entry): Remove.
+ (REMOVE_FB): Define.
+ (_int_malloc): Use it and reindent.
+ (_int_free): Use CAS loop with
+ catomic_compare_and_exchange_val_rel.
+ (malloc_consolidate): Use atomic_exchange_acq.
+
+
+2019-01-18 H.J. Lu <hongjiu.lu@intel.com>
+
+ * signal/Makefile (LDFLAGS-tst-minsigstksz-1): New. Set to
+ -Wl,-z,now.
+ (LDFLAGS-tst-minsigstksz-2): Likewise.
+ (LDFLAGS-tst-minsigstksz-3): Likewise.
+ (LDFLAGS-tst-minsigstksz-3a): Likewise.
+ (LDFLAGS-tst-minsigstksz-4): Likewise.
+
+2019-01-18 TAMUKI Shoichi <tamuki@linet.gr.jp>
+
+ * manual/time.texi (strftime): Fix the wording to "alternative" rather
+ than "alternate".
+
+2019-01-16 Paul A. Clarke <pc@us.ibm.com>
+
+ * sysdeps/powerpc/powerpc64/multiarch/strncmp.c: Fix #ifdef.
+
+2019-01-16 Zack Weinberg <zackw@panix.com>
+
+ * support/xsignal.h (xalloc_sigstack, xfree_sigstack)
+ (xget_sigstack_location): New test support functions.
+ * support/xsigstack.c: New file, implementing them.
+ * support/tst-xsigstack.c: New test for them.
+ * support/Makefile: Update.
+
+ * signal/tst-minsigstksz-1.c
+ * signal/tst-minsigstksz-2.c
+ * signal/tst-minsigstksz-3.c
+ * signal/tst-minsigstksz-3a.c
+ * signal/tst-minsigstksz-4.c: New tests.
+ * signal/Makefile: Run them.
+
+2019-01-16 Siddhesh Poyarekar <siddhesh@sourceware.org>
+
+ * po/libc.pot: Regenerate.
+
+2019-01-15 Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
+
+ * math/libm-test-fma.inc (fma_test_data): Set
+ XFAIL_ROUNDING_IBM128_LIBGCC to more tests.
+
+2019-01-15 Rogerio A. Cardoso <rcardoso@linux.ibm.com>
+
+ * sysdeps/powerpc/powerpc64/tst-ucontext-ppc64-vscr.c:
+ (do_test): Changed __vector __int128_t to __vector unsigned int.
+
+2019-01-14 Leonardo Sandoval <leonardo.sandoval.gonzalez@intel.com>
+
+ * sysdeps/x86_64/multiarch/Makefile (sysdep_routines): Add
+ strcat-avx2, strncat-avx2, strcpy-avx2, strncpy-avx2,
+ stpcpy-avx2 and stpncpy-avx2.
+ * sysdeps/x86_64/multiarch/ifunc-impl-list.c:
+ (__libc_ifunc_impl_list): Add tests for __strcat_avx2,
+ __strncat_avx2, __strcpy_avx2, __strncpy_avx2, __stpcpy_avx2
+ and __stpncpy_avx2.
+ * sysdeps/x86_64/multiarch/{ifunc-unaligned-ssse3.h =>
+ ifunc-strcpy.h}: rename header for a more generic name.
+ * sysdeps/x86_64/multiarch/ifunc-strcpy.h:
+ (IFUNC_SELECTOR): Return OPTIMIZE (avx2) on AVX 2 machines if
+ AVX unaligned load is fast and vzeroupper is preferred.
+ * sysdeps/x86_64/multiarch/stpcpy-avx2.S: New file.
+ * sysdeps/x86_64/multiarch/stpncpy-avx2.S: Likewise.
+ * sysdeps/x86_64/multiarch/strcat-avx2.S: Likewise.
+ * sysdeps/x86_64/multiarch/strcpy-avx2.S: Likewise.
+ * sysdeps/x86_64/multiarch/strncat-avx2.S: Likewise.
+ * sysdeps/x86_64/multiarch/strncpy-avx2.S: Likewise.
+
+2019-01-12 Dmitry V. Levin <ldv@altlinux.org>
+
+ * argp/argp-help.c: Fix typo in comment.
+ * misc/sys/cdefs.h: Likewise.
+ * posix/regexec.c (sift_states_iter_mb): Likewise.
+ * socket/sockatmark.c: Likewise.
+ * socket/sys/socket.h: Likewise.
+ * sysdeps/ia64/fpu/libm_sincos_large.S: Likewise.
+ * sysdeps/ia64/fpu/libm_sincosl.S: Likewise.
+ * sysdeps/ia64/fpu/s_cosl.S: Likewise.
+ * sysdeps/ieee754/dbl-64/k_rem_pio2.c: Likewise.
+ * sysdeps/unix/sockatmark.c: Likewise.
+ * time/strptime_l.c: Likewise.
+
+2019-01-11 TAMUKI Shoichi <tamuki@linet.gr.jp>
+
+ * time/strftime_l.c (__strftime_internal): Use "L_" macros, also add a
+ missing space after the cast of "_NL_CURRENT".
+
+2019-01-11 Rogerio A. Cardoso <rcardoso@linux.ibm.com>
+
+ * sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h (vscr_t): Added
+ ifdef to fix read of VSCR.
+ * sysdeps/powerpc/powerpc64/Makefile [$subdir == stdlib]: Add
+ tst-ucontext-ppc64-vscr.c to test list.
+ * sysdeps/powerpc/powerpc64/tst-ucontext-ppc64-vscr.c: New test file.
+
+2019-01-10 Andreas K. Hüttel <dilfridge@gentoo.org>
+
+ * resolv/tst-resolv-ai_idn-common.c (response): Avoid switch
+ fall-through.
+
+2019-01-09 Jim Wilson <jimw@sifive.com>
+
+ * sysdeps/riscv/rv64/rvd/libm-test-ulps: Update.
+
+2019-01-09 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * manual/tunables.texi (glibc.cpu.name): Add ares tunable.
+ * sysdeps/aarch64/multiarch/memcpy.c (__libc_memcpy): Use
+ __memcpy_falkor for ares.
+ * sysdeps/unix/sysv/linux/aarch64/cpu-features.h (IS_ARES):
+ Add new define.
+ * sysdeps/unix/sysv/linux/aarch64/cpu-features.c (cpu_list):
+ Add ares cpu.
+
+2019-01-07 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #24066]
+ * soft-fp/extenddftf2.c: Use "_FP_W_TYPE_SIZE < 64" to check if
+ 4_FP_W_TYPEs are used for IEEE quad precision.
+ * soft-fp/extendhftf2.c: Likewise.
+ * soft-fp/extendsftf2.c: Likewise.
+ * soft-fp/extendxftf2.c: Likewise.
+ * soft-fp/trunctfdf2.c: Likewise.
+ * soft-fp/trunctfhf2.c: Likewise.
+ * soft-fp/trunctfsf2.c: Likewise.
+ * soft-fp/trunctfxf2.c: Likewise.
+ * sysdeps/alpha/ots_cvttx.c: Likewise.
+ * sysdeps/alpha/ots_cvtxt.c: Likewise.
+ * sysdeps/ieee754/soft-fp/s_daddl.c: Likewise.
+ * sysdeps/ieee754/soft-fp/s_ddivl.c: Likewise.
+ * sysdeps/ieee754/soft-fp/s_dmull.c: Likewise.
+ * sysdeps/ieee754/soft-fp/s_dsubl.c: Likewise.
+ * sysdeps/ieee754/soft-fp/s_faddl.c: Likewise.
+ * sysdeps/ieee754/soft-fp/s_fdivl.c: Likewise.
+ * sysdeps/ieee754/soft-fp/s_fmull.c: Likewise.
+ * sysdeps/ieee754/soft-fp/s_fsubl.c: Likewise.
+ * sysdeps/sparc/sparc32/q_dtoq.c: Likewise.
+ * sysdeps/sparc/sparc32/q_qtod.c: Likewise.
+ * sysdeps/sparc/sparc32/q_qtos.c: Likewise.
+ * sysdeps/sparc/sparc32/q_stoq.c: Likewise.
+ * sysdeps/sparc/sparc64/qp_dtoq.c: Likewise.
+ * sysdeps/sparc/sparc64/qp_qtod.c: Likewise.
+ * sysdeps/sparc/sparc64/qp_qtos.c: Likewise.
+ * sysdeps/sparc/sparc64/qp_stoq.c: Likewise.
+
+2019-01-07 Aurelien Jarno <aurelien@aurel32.net>
+
+ [BZ #24024]
+ * Makeconfig: Build libm with -fno-math-errno but build the remaining
+ code with -fmath-errno.
+ * string/Makefile [$(build-shared)] (tests): Add test-strerror-errno.
+ [$(build-shared)] (LDLIBS-test-strerror-errno): New variable.
+ * string/test-strerror-errno.c: New file.
+
+2019-01-07 Aurelien Jarno <aurelien@aurel32.net>
+
+ [BZ #24046]
+ * localedata/locales/en_US (date_fmt): Add, set to
+ "%a %d %b %Y %r %Z".
+
+2019-01-07 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #24063]
+ * manual/arith.texi (Math Error Reporting): Use @code{errno}
+ instead of @var{errno}.
+ (Parsing of Integers): Likewise.
+ (Parsing of Floats): Likewise.
+ * manual/filesys.texi (Working with Directory Trees): Likewise.
+ (Temporary Files): Likewise.
+ * manual/job.texi (Terminal Access Functions): Likewise.
+ * manual/llio.texi (Synchronizing I/O): Likewise.
+ * manual/math.texi (SVID Random): Likewise.
+ * manual/message.texi (The catgets Functions): Likewise.
+ (Translation with gettext): Likewise.
+ (Locating gettext catalog): Likewise.
+ (Charset conversion in gettext): Likewise.
+ * manual/nss.texi (NSS Module Function Internals): Likewise.
+ * manual/search.texi (Hash Search Function): Likewise.
+ * manual/setjmp.texi (System V contexts): Likewise.
+ * manual/time.texi (Sleeping): Likewise.
+ * manual/users.texi (Lookup User): Likewise.
+ (Lookup Group): Likewise.
+
+2019-01-05 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * posix/tst-spawn.c (do_test): Extend spargv to new required size and
+ fix typo.
+
+2019-01-04 Martin Jansa <Martin.Jansa@gmail.com>
+
+ [BZ #19444]
+ * sysdeps/ieee754/dbl-64/e_jn.c (__ieee754_jn): Use
+ __builtin_unreachable for default case in switch.
+ (__ieee754_yn): Likewise.
+ * sysdeps/ieee754/ldbl-96/e_jnl.c (__ieee754_jnl): Likewise.
+ (__ieee754_ynl): Likewise.
+ * sysdeps/ieee754/ldbl-128/e_jnl.c (__ieee754_jnl): Likewise.
+ (__ieee754_ynl): Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_jnl.c (__ieee754_jnl): Likewise.
+ (__ieee754_ynl): Likewise.
+
+2019-01-04 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * manual/maint.texi: Use @{ and @}.
+
+2019-01-04 Florian Weimer <fweimer@redhat.com>
+
+ * sysdeps/unix/sysv/linux/tst-ttyname.c (adjust_file_limit): New
+ function.
+ (do_in_chroot_1): Call it.
+ (run_chroot_tests):
+ Improve error reporting in case it is not possible to create a
+ collision for the PTY name required by the test.
+
+2019-01-03 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * nptl/pthread_join_common.c (__pthread_timedjoin_ex): Use
+ lll_wait_tid with timeout.
+ * nptl/sem_wait.c (__old_sem_wait): Use lll_futex_wait_cancel.
+ * sysdeps/nptl/aio_misc.h (AIO_MISC_WAIT): Use
+ futex_reltimed_wait_cancelable for cancelabla mode.
+ * sysdeps/nptl/gai_misc.h (GAI_MISC_WAIT): Likewise.
+ * sysdeps/posix/open64.c (__libc_open64): Do not call cancelation
+ macros.
+ * sysdeps/posix/sigwait.c (__sigwait): Likewise.
+ * sysdeps/posix/waitid.c (__sigwait): Likewise.
+ * sysdeps/unix/sysdep.h (__SYSCALL_CANCEL_CALL,
+ SYSCALL_CANCEL_NCS): New macro.
+ * sysdeps/nptl/lowlevellock.h (lll_wait_tid): Add timeout argument.
+ (lll_timedwait_tid): Remove macro.
+ * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_wait_tid):
+ Likewise.
+ (lll_timedwait_tid): Likewise.
+ * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (lll_wait_tid):
+ Likewise.
+ (lll_timedwait_tid): Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_wait_tid):
+ Likewise.
+ (lll_timedwait_tid): Likewise.
+ * sysdeps/unix/sysv/linux/clock_nanosleep.c (__clock_nanosleep):
+ Use INTERNAL_SYSCALL_CANCEL.
+ * sysdeps/unix/sysv/linux/futex-internal.h
+ (futex_reltimed_wait_cancelable): Use LIBC_CANCEL_{ASYNC,RESET}
+ instead of __pthread_{enable,disable}_asynccancel.
+ * sysdeps/unix/sysv/linux/lowlevellock-futex.h
+ (lll_futex_wait_cancel): New macro.
+
+ * sysdeps/i386/nptl/tls.h (THREAD_ATOMIC_CMPXCHG_VAL,
+ THREAD_ATOMIC_AND, THREAD_ATOMIC_BIT_SET): Remove macros.
+
+ * sysdeps/x86_64/nptl/tls.h (THREAD_ATOMIC_CMPXCHG_VAL,
+ THREAD_ATOMIC_AND, THREAD_ATOMIC_BIT_SET): Remove macros.
+
+ * debug/tst-backtrace5.c (handle_signal): Avoid cancellable wrappers
+ in backtrace analysis.
+ * nptl/tst-cancel4.c (tf_write): Handle cancelled syscall with
+ side-effects.
+ (tf_send): Likewise.
+
+ * io/creat.c (LIBC_CANCEL_HANDLED): Remove macro.
+ * io/ppoll.c (LIBC_CANCEL_HANDLED): Likewise.
+ * misc/pselect.c (LIBC_CANCEL_HANDLED): Likewise.
+ * nptl/pthreadP.h (LIBC_CANCEL_HANDLED): Likewise.
+ * sysdeps/generic/sysdep-cancel.h (LIBC_CANCEL_HANDLED): Likewise.
+ * sysdeps/mach/hurd/sysdep-cancel.h (LIBC_CANCEL_HANDLED): Likewise.
+ * sysdeps/posix/pause.c (LIBC_CANCEL_HANDLED): Likewise.
+ * sysdeps/posix/sigpause.c (LIBC_CANCEL_HANDLED): Likewise.
+ * sysdeps/unix/sysv/linux/creat.c (LIBC_CANCEL_HANDLED): Likewise.
+ * sysdeps/unix/sysv/linux/creat64.c (LIBC_CANCEL_HANDLED): Likewise.
+ * sysdeps/unix/sysv/linux/sigwait.c (LIBC_CANCEL_HANDLED): Likewise.
+ * sysdeps/unix/sysv/linux/sigwaitinfo.c (LIBC_CANCEL_HANDLED):
+ Likewise.
+ * nptl/Makefile [$(run-built-tests) = yes] (tests-special): Remove
+ tst-cancel-wrappers.sh.
+ (generated): Remove tst-cancel-wrappers.out.
+ (tst-cancel-wrappers.out): Remove rule.
+ * nptl/tst-cancel-wrappers.sh: Remove file.
+
+2019-01-03 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * sysdeps/unix/sysv/linux/aarch64/bits/hwcap.h: Add comment.
+ * sysdeps/unix/sysv/linux/aarch64/dl-procinfo.c (_DL_HWCAP_COUNT):
+ Update.
+
+2019-01-03 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ [BZ #23640]
+ * posix/tst-spawn.c (do_prepare, handle_restart, do_test): Add
+ posix_spawn_file_actions_adddup2 test to check O_CLOCEXEC reset.
+ * sysdeps/unix/sysv/linux/spawni.c (__spawni_child): Add
+ close-on-exec reset for adddup2 file action.
+ * sysdeps/posix/spawni.c (__spawni_child): Likewise.
+
+2019-01-03 Zack Weinberg <zackw@panix.com>
+
+ * include/features.h (__GLIBC_USE_DEPRECATED_SCANF): New __GLIBC_USE
+ parameter. Only use deprecated scanf when __USE_GNU is defined
+ and __STDC_VERSION__ is less than 199901L or __cplusplus is less
+ than 201103L, whichever is relevant for the language being compiled.
+
+ * libio/stdio.h, libio/bits/stdio-ldbl.h: Decide whether to redirect
+ scanf, fscanf, sscanf, vscanf, vfscanf, and vsscanf to their
+ __isoc99_ variants based only on __GLIBC_USE (DEPRECATED_SCANF).
+ * wcsmbs/wchar.h: wcsmbs/bits/wchar-ldbl.h: Likewise for
+ wscanf, fwscanf, swscanf, vwscanf, vfwscanf, and vswscanf.
+
+ * libio/iovsscanf.c
+ * libio/fwscanf.c
+ * libio/iovswscanf.c
+ * libio/swscanf.c
+ * libio/vscanf.c
+ * libio/vwscanf.c
+ * libio/wscanf.c
+ * stdio-common/fscanf.c
+ * stdio-common/scanf.c
+ * stdio-common/vfscanf.c
+ * stdio-common/vfwscanf.c
+ * sysdeps/ieee754/ldbl-opt/nldbl-compat.c
+ * sysdeps/ieee754/ldbl-opt/nldbl-fscanf.c
+ * sysdeps/ieee754/ldbl-opt/nldbl-fwscanf.c
+ * sysdeps/ieee754/ldbl-opt/nldbl-iovfscanf.c
+ * sysdeps/ieee754/ldbl-opt/nldbl-scanf.c
+ * sysdeps/ieee754/ldbl-opt/nldbl-sscanf.c
+ * sysdeps/ieee754/ldbl-opt/nldbl-swscanf.c
+ * sysdeps/ieee754/ldbl-opt/nldbl-vfscanf.c
+ * sysdeps/ieee754/ldbl-opt/nldbl-vfwscanf.c
+ * sysdeps/ieee754/ldbl-opt/nldbl-vscanf.c
+ * sysdeps/ieee754/ldbl-opt/nldbl-vsscanf.c
+ * sysdeps/ieee754/ldbl-opt/nldbl-vswscanf.c
+ * sysdeps/ieee754/ldbl-opt/nldbl-vwscanf.c
+ * sysdeps/ieee754/ldbl-opt/nldbl-wscanf.c:
+ Override __GLIBC_USE_DEPRECATED_SCANF to 1.
+
+ * stdio-common/sscanf.c: Likewise. Remove ldbl_hidden_def for __sscanf.
+ * stdio-common/isoc99_sscanf.c: Add libc_hidden_def for __isoc99_sscanf.
+ * include/stdio.h: Provide libc_hidden_proto for __isoc99_sscanf,
+ not sscanf.
+ [!__GLIBC_USE (DEPRECATED_SCANF)]: Define sscanf as __isoc99_scanf
+ with a preprocessor macro.
+
+ * stdio-common/bug21.c, stdio-common/scanf14.c:
+ Use %ms instead of %as, %mS instead of %aS, %m[] instead of %a[];
+ remove DIAG_IGNORE_NEEDS_COMMENT for -Wformat.
+ * stdio-common/scanf16.c: Likewise. Add __attribute__ ((format (scanf)))
+ to xscanf, xfscanf, xsscanf.
+
+ * stdio-common/scanf14a.c: New copy of scanf14.c which still uses
+ %as, %aS, %a[]. Remove DIAG_IGNORE_NEEDS_COMMENT for -Wformat.
+ * stdio-common/scanf16a.c: New copy of scanf16.c which still uses
+ %as, %aS, %a[]. Add __attribute__ ((format (scanf))) to xscanf,
+ xfscanf, xsscanf.
+ * stdio-common/scanf15.c, stdio-common/scanf17.c: No need to
+ override feature selection macros or provide definitions of u_char etc.
+ * stdio-common/Makefile (tests): Add scanf14a and scanf16a.
+ (CFLAGS-scanf15.c, CFLAGS-scanf17.c): Remove.
+ (CFLAGS-scanf14a.c, CFLAGS-scanf16a.c): New. Compile these files
+ with -std=gnu89.
+
+2019-01-03 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
+ bits/termios-misc.h.
+ * sysdeps/unix/sysv/linux/alpha/bits/termios.h: Remove file.
+ * sysdeps/unix/sysv/linux/mips/bits/termios.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/bits/termios.h: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/bits/termios.h: Likewise.
+ * sysdeps/unix/sysv/linux/bits/termios-misc.h: New file.
+ * sysdeps/unix/sysv/linux/bits/termios.h: Include termios-misc.h.
+
+ * sysdeps/unix/sysv/linux/powerpc/bits/termios-misc.h: New file.
+ * sysdeps/unix/sysv/linux/powerpc/bits/termios.h [__USE_MISC]
+ (struct sgtty, struct tchars, struct ltchars, TIOCPKT_DATA,
+ TIOCPKT_FLUSHREAD, TIOCPKT_FLUSHWRITE, TIOCPKT_STOP, TIOCPKT_START,
+ TIOCPKT_NOSTOP, TIOCPKT_DOSTOP, _VINTR, _VQUIT, _VERASE, _VKILL,
+ _VEOF, _VMIN, _VEOL, _VTIME, _VEOL2, _VSWTC): Move to
+ termios-misc.h.
+ * sysdeps/unix/sysv/linux/powerpc/Makefile [$subdir == misc]
+ (sysdep_headers): Add termios-misc.h.
+
+ * sysdeps/unix/sysv/linux/bits/termios.h (_IOT_termios): Remove.
+ * sysdeps/unix/sysv/linux/alpha/bits/termios.h: Likewise.
+ * sysdeps/unix/sysv/linux/mips/bits/termios.h: Likewise.
+
+ * sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
+ termios-tcflow.h.
+ * sysdeps/unix/sysv/linux/bits/termios-tcflow.h: New file.
+ * sysdeps/unix/sysv/linux/mips/bits/termios-tcflow.h: Likewise.
+ * sysdeps/unix/sysv/linux/bits/termios.h (TCSANOW, TCSADRAIN,
+ TCSAFLUSH): Move to termios-tcflow.h.
+ * sysdeps/unix/sysv/linux/alpha/bits/termios.h: Likewise.
+ * sysdeps/unix/sysv/linux/mips/bits/termios.h: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/bits/termios.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/bits/termios.h: Likewise.
+
+ * sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
+ termios-c_lflag.h.
+ * sysdeps/unix/sysv/linux/bits/termios-c_lflag.h: New file.
+ * sysdeps/unix/sysv/linux/alpha/bits/termios-c_lflag.h: Likewise.
+ * sysdeps/unix/sysv/linux/mips/bits/termios-c_lflag.h: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/bits/termios-c_lflag.h: Likewise.
+ * sysdeps/unix/sysv/linux/bits/termios.h (ISIG, ISCANON, ECHO, ECHOE,
+ ECHOK, ECHONL, NOFLSH, TOSTOP, IEXTEN): Move to termios-c_lflag.h.
+ [__USE_MISC || (__USE_XOPEN && !__USE_XOPEN2K)] (XCASE): Likewise.
+ [__USE_MISC] (ECHOCTL, ECHOPRT, ECHOKE, FLUSHO, PENDIN, EXTPROC):
+ Likewise.
+ * sysdeps/unix/sysv/linux/alpha/bits/termios.h: Likewise.
+ * sysdeps/unix/sysv/linux/mips/bits/termios.h: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/bits/termios.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/bits/termios.h: Likewise.
+
+ * sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
+ termios-c_cflag.h.
+ * sysdeps/unix/sysv/linux/bits/termios-c_cflag.h: New file.
+ * sysdeps/unix/sysv/linux/alpha/bits/termios-c_cflag.h: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/bits/termios-c_cflag.h: Likewise.
+ * sysdeps/unix/sysv/linux/bits/termios.h (CSIZE, CS5, CS6, CS7, CS8,
+ CSTOPB, CREAD, PARENB, PARODD, HUPCL, CLOCAL): Move to
+ termios-c_cflag.h.
+ * sysdeps/unix/sysv/linux/alpha/bits/termios.h: Likewise.
+ * sysdeps/unix/sysv/linux/mips/bits/termios.h: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/bits/termios.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/bits/termios.h: Likewise.
+
+ [BZ #23783]
+ * sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
+ termios-baud.h.
+ * sysdeps/unix/sysv/linux/bits/termios-baud.h: New file.
+ * sysdeps/unix/sysv/linux/alpha/bits/termios-baud.h: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/bits/termios-baud.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/bits/termios-baud.h: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/bits/termios.h (B57600, B115200,
+ B230400, B460800, B500000, B576000, B921600, B1000000, B1152000,
+ B1500000, B2000000, B2500000, B3000000, B3500000, B4000000,
+ __MAX_BAUD): Move to termios-baud.h.
+ [__USE_MISC] (CBAUD, CBAUDEX): Likewise.
+ * sysdeps/unix/sysv/linux/bits/termios.h: Likewise.
+ * sysdeps/unix/sysv/linux/mips/bits/termios.h: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/bits/termios.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/bits/termios.h: Likewise.
+
+ * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Add
+ termios-c_oflag.h.
+ * sysdeps/unix/sysv/linux/bits/termios-c_oflag.h: New file.
+ * sysdeps/unix/sysv/linux/alpha/bits/termios-c_oflag.h: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/bits/termios-c_oflag.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/bits/termios-c_oflag.h: Likewise.
+ * sysdeps/unix/sysv/linux/bits/termios.h (OPOST, OLCUC, ONLCR, OCRNL,
+ ONOCR, ONLRET, OFILL, OFDEL, VTDLY, VT0, VT1): Move to
+ termios-c_oflag.h.
+ [__USE_MISC || __USE_XOPEN] (NLDLY, NL0, NL1, CRDLY, CR0, CR1, CR2,
+ CR3, TABDLY, TAB0, TAB1, TAB2, TAB3, BSDLY, BS0, BS1, FFDLY, FF0,
+ FFR1): Likewise.
+ [USE_MISC] (XTABS): Likewise.
+ * sysdeps/unix/sysv/linux/alpha/bits/termios.h: Likewise.
+ * sysdeps/unix/sysv/linux/mips/bits/termios.h: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/bits/termios.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/bits/termios.h Likewise.
+
+ * sysdeps/unix/sysv/linux/Makefile (sysdeps_headers): Add
+ termios-c_iflag.h.
+ * sysdeps/unix/sysv/linux/bits/termios-c_iflag.h: New file.
+ * sysdeps/unix/sysv/linux/alpha/bits/termios-c_iflag.h: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/bits/termios-c_iflag.h: Likewise.
+ * sysdeps/unix/sysv/linux/bits/termios.h (IGNBRK, BRKINT, IGNPAR, PARMRK,
+ INPCK, ISTRIP, INLCR, IGNCR, ICRNL, IXON, IXOFF, IXANY, IUCLC, IMAXBEL,
+ IUTF8): Move to termios-c_iflag.h.
+ * sysdeps/unix/sysv/linux/alpha/bits/termios.h: Likewise.
+ * sysdeps/unix/sysv/linux/mips/bits/termios.h: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/bits/termios.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/bits/termios.h: Likewise.
+
+ * sysdeps/unix/sysv/linux/Makefile (sysdeps_headers): Add
+ termios-cc.h.
+ * sysdeps/unix/sysv/linux/bits/termios-c_cc.h: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/bits/termios-c_cc.h: New file.
+ * sysdeps/unix/sysv/linux/mips/bits/termios-c_cc.h: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/bits/termios-c_cc.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/bits/termios-c_cc.h: Likewise.
+ * sysdeps/unix/sysv/linux/bits/termios.h (VINTR, VQUIT, VERASE,
+ VKILL, VEOF, VTIME, VMIN, VSWTC, VSTART, VSTOP, VSUSP, VEOL,
+ VREPRINT, VDISCARD, VWERASE, VLNEXT, VEOLF2): Move to termios-cc.h.
+ * sysdeps/unix/sysv/linux/alpha/bits/termios.h: Likewise.
+ * sysdeps/unix/sysv/linux/mips/bits/termios.h: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/bits/termios.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/bits/termios.h: Likewise.
+
+ * sysdeps/unix/sysv/linux/alpha/bits/termios-struct.h: New file.
+ * sysdeps/unix/sysv/linux/bits/termios-struct.h: Likewise.
+ * sysdeps/unix/sysv/linux/mips/bits/termios-struct.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/bits/termios-struct.h: Likewise.
+ * sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
+ termios-struct.h.
+ * sysdeps/unix/sysv/linux/bits/termios.h (struct termios): Move to
+ termios-struct.h.
+ * sysdeps/unix/sysv/linux/alpha/bits/termios.h (struct termios):
+ Likewise.
+ * sysdeps/unix/sysv/linux/mips/bits/termios.h (struct termios):
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/bits/termios.h (struct termios):
+ Likewise.
+ * sysdeps/unix/sysv/linux/sparc/bits/termios.h (struct termios):
+ Likewise.
+ * sysdeps/unix/sysv/linux/kernel_termios.h (_HAVE_C_ISPEED,
+ _HAVE_C_OSPEED): Define.
+ * sysdeps/unix/sysv/linux/mips/kernel_termios.h (_HAVE_C_ISPEED,
+ _HAVE_C_OSPEED): Likewise.
+ * sysdeps/unix/sysv/linux/sparc/kernel_termios.h (_HAVE_C_ISPEED,
+ _HAVE_C_OSPEED): Likewise.
+ * sysdeps/unix/sysv/linux/speed.c [_HAVE_STRUCT_TERMIOS_C_OSPEED]
+ (cfsetospeed): Check for define value instead of existence.
+ [_HAVE_STRUCT_TERMIOS_C_ISPEED] (cfsetispeed): Likewise.
+ * sysdeps/unix/sysv/linux/tcgetattr.c [_HAVE_STRUCT_TERMIOS_C_ISPEED
+ && _HAVE_C_ISPEED] (__tcgetattr): Likewise.
+ * sysdeps/unix/sysv/linux/tcsetattr.c [_HAVE_STRUCT_TERMIOS_C_ISPEED
+ && _HAVE_C_ISPEED] (__tcsetattr): Likewise.
+
+ [BZ #17783]
+ * sysdeps/unix/sysv/linux/bits/termios.h [__USE_MISC] (TIOCSER_TEMT):
+ Define.
+ * sysdeps/unix/sysv/linux/powerpc/bits/termios.h [__USE_MISC]
+ (TIOCSER_TEMT): Likewise.
+ * sysdeps/unix/sysv/linux/sparc/bits/termios.h [__USE_MISC]
+ (TEOCSER_TEMT): Likewise.
+
+2019-01-02 PanderMusubi <pander@users.sourceforge.net>
+
+ [BZ #24011]
+ * localedata/locales/bs_BA (LC_TELEPHONE): Fix a typo in comment.
+
+2019-01-02 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/powerpc/nofpu/libm-test-ulps: Update.
+
+2019-01-02 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * sysdeps/htl/pt-barrierattr-setpshared.c
+ (pthread_barrierattr_setpshared): Add stub warning.
+ * sysdeps/htl/pt-condattr-setpshared.c
+ (pthread_condattr_setpshared): Likewise.
+ * sysdeps/htl/pt-mutexattr-setpshared.c
+ (pthread_mutexattr_setpshared): Likewise.
+ * sysdeps/htl/pt-rwlockattr-setpshared.c
+ (pthread_rwlockattr_setpshared): Likewise.
+ * sysdeps/mach/hurd/htl/pt-mutexattr-setpshared.c
+ (pthread_mutexattr_setpshared): Likewise.
+
+2019-01-02 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/tst-mman-consts.py (main): Expect
+ constants to match with Linux 4.20.
+
+ * sysdeps/mips/mips32/libm-test-ulps: Update.
+ * sysdeps/mips/mips64/libm-test-ulps: Likewise.
+
+2019-01-02 Aurelien Jarno <aurelien@aurel32.net>
+
+ [BZ #24034]
+ * sysdeps/unix/sysv/linux/arm/atomic-machine.h
+ (__arm_assisted_compare_and_exchange_val_32_acq): Use uint32_t rather
+ than __typeof (...) for the a_ptr variable.
+
+2019-01-02 Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
+
+ * debug/sprintf_chk.c (___sprintf_chk): Use PRINTF_CHK.
+ * debug/vsprintf_chk.c (___vsprintf_chk): Likewise.
+ * libio/Makefile (tests): Add tst-sprintf-ub and
+ tst-sprintf-chk-ub.
+ (CFLAGS-tst-sprintf-ub.c): New variable.
+ (CFLAGS-tst-sprintf-chk-ub.c): Likewise.
+ * libio/iovsprintf.c (__vsprintf_internal): Only erase the
+ destination buffer and check for overflows in fortified mode.
+ * libio/libioP.h (PRINTF_CHK): New macro.
+ * libio/tst-sprintf-chk-ub.c: New file.
+ * libio/tst-sprintf-ub.c: Likewise.
+
+2019-01-02 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #24018]
+ * intl/dcigettext.c (DCIGETTEXT): Do not return NULL on asprintf
+ failure.
+
+2019-01-02 Florian Weimer <fweimer@redhat.com>
+
+ * nptl/tst-audit-threads.c: Switch to <support/test-driver.c>.
+
+2019-01-01 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/bits/in.h (IPV6_MULTICAST_ALL): New
+ macro.
+
+ * sysdeps/unix/sysv/linux/netpacket/packet.h
+ (PACKET_IGNORE_OUTGOING): New macro.
+
+ * sysdeps/unix/sysv/linux/aarch64/bits/hwcap.h (HWCAP_SSBS): New
+ macro.
+
+ * sysdeps/unix/sysv/linux/syscall-names.list: Update kernel
+ version to 4.20.
+ (riscv_flush_icache): New syscall.
+
+ * manual/texinfo.tex: Update to version 2018-12-28.17 with
+ trailing whitespace removed.
+ * scripts/config.guess: Update to version 2019-01-01.
+ * scripts/config.sub: Update to version 2019-01-01.
+ * scripts/move-if-change: Update from gnulib.
+
+ * NEWS: Update copyright dates.
+ * catgets/gencat.c (print_version): Likewise.
+ * csu/version.c (banner): Likewise.
+ * debug/catchsegv.sh: Likewise.
+ * debug/pcprofiledump.c (print_version): Likewise.
+ * debug/xtrace.sh (do_version): Likewise.
+ * elf/ldconfig.c (print_version): Likewise.
+ * elf/ldd.bash.in: Likewise.
+ * elf/pldd.c (print_version): Likewise.
+ * elf/sotruss.sh: Likewise.
+ * elf/sprof.c (print_version): Likewise.
+ * iconv/iconv_prog.c (print_version): Likewise.
+ * iconv/iconvconfig.c (print_version): Likewise.
+ * locale/programs/locale.c (print_version): Likewise.
+ * locale/programs/localedef.c (print_version): Likewise.
+ * login/programs/pt_chown.c (print_version): Likewise.
+ * malloc/memusage.sh (do_version): Likewise.
+ * malloc/memusagestat.c (print_version): Likewise.
+ * malloc/mtrace.pl: Likewise.
+ * manual/libc.texinfo: Likewise.
+ * nptl/version.c (banner): Likewise.
+ * nscd/nscd.c (print_version): Likewise.
+ * nss/getent.c (print_version): Likewise.
+ * nss/makedb.c (print_version): Likewise.
+ * posix/getconf.c (main): Likewise.
+ * scripts/test-installation.pl: Likewise.
+ * sysdeps/unix/sysv/linux/lddlibc4.c (main): Likewise.
+
+ * All files with FSF copyright notices: Update copyright dates
+ using scripts/update-copyrights.
+ * locale/programs/charmap-kw.h: Regenerated.
+ * locale/programs/locfile-kw.h: Likewise.
+
+2018-12-31 Joseph Myers <joseph@codesourcery.com>
+
+ * timezone/zdump.c: Update from tzcode 2018i.
+ * timezone/zic.c: Likewise.
+
+2018-12-31 Paul Eggert <eggert@cs.ucla.edu>
+
+ regex: improve Gnulib port to AIX
+ From the glibc point of view, this removes duplicate macro
+ definitions and is obviously safe.
+ From the Gnulib point of view, this pacifies xlc 12.01 on AIX 7.1.
+ * posix/regex_internal.h:
+ (__attribute__, __attribute_warn_unused_result__):
+ Remove; already defined elsewhere.
+
+2018-12-31 Florian Weimer <fw@deneb.enyo.de>
+
+ [BZ #24027]
+ * malloc/malloc.c (_int_realloc): Always call memcpy for the
+ copying operation. (ncopies had the wrong type, resulting in an
+ integer wraparound and too few elements being copied.)
+
+2018-12-31 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #24022]
+ * sysdeps/unix/sysv/linux/riscv/flush-icache.c: Check if
+ <asm/syscalls.h> exists with __has_include__ before including it.
+
+2018-12-31 Joseph Myers <joseph@codesourcery.com>
+
+ * scripts/build-many-glibcs.py (Context.checkout): Default Linux
+ version to 4.20.
+
+2018-12-28 Justus Winter <4winter@informatik.uni-hamburg.de>
+
+ * hurd/lookup-retry: Include <unistd.h>.
+ (__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 Rafał Lużyński <digitalfreak@lingonborough.com>
+
+ [BZ #10496]
+ * localedata/locales/aa_DJ (t_fmt): Set to "%l:%M:%S %p".
+ (t_fmt_ampm): Likewise.
+ * localedata/locales/aa_ER (t_fmt): Likewise.
+ (t_fmt_ampm): Likewise.
+ * localedata/locales/aa_ER@saaho (t_fmt): Likewise.
+ (t_fmt_ampm): Likewise.
+ * localedata/locales/aa_ET (t_fmt): Likewise.
+ (t_fmt_ampm): Likewise.
+ * localedata/locales/am_ET (t_fmt): Likewise.
+ (t_fmt_ampm): Likewise.
+ * localedata/locales/byn_ER (t_fmt): Likewise.
+ (t_fmt_ampm): Likewise.
+ * localedata/locales/om_ET (t_fmt): Likewise.
+ (t_fmt_ampm): Likewise.
+ * localedata/locales/sid_ET (t_fmt): Likewise.
+ (t_fmt_ampm): Likewise.
+ * localedata/locales/so_DJ (t_fmt): Likewise.
+ (t_fmt_ampm): Likewise.
+ * localedata/locales/so_ET (t_fmt): Likewise.
+ (t_fmt_ampm): Likewise.
+ * localedata/locales/so_SO (t_fmt): Likewise.
+ (t_fmt_ampm): Likewise.
+ * localedata/locales/ti_ER (t_fmt): Likewise.
+ (t_fmt_ampm): Likewise.
+ * localedata/locales/ti_ET (t_fmt): Likewise.
+ (t_fmt_ampm): Likewise.
+ * localedata/locales/tig_ER (t_fmt): Likewise.
+ (t_fmt_ampm): Likewise.
+ * localedata/locales/wal_ET (t_fmt): Likewise.
+ (t_fmt_ampm): Likewise.
+
+ * localedata/locales/anp_IN (t_fmt): Set to "%I:%M:%S %p %Z".
+ * localedata/locales/ar_IN (t_fmt): Likewise.
+ * localedata/locales/bhb_IN (t_fmt): Likewise.
+ * localedata/locales/bho_IN (t_fmt): Likewise.
+ * localedata/locales/bi_VU (t_fmt): Likewise.
+ * localedata/locales/bn_BD (t_fmt): Likewise.
+ * localedata/locales/bn_IN (t_fmt): Likewise.
+ * localedata/locales/brx_IN (t_fmt): Likewise.
+ * localedata/locales/doi_IN (t_fmt): Likewise.
+ * localedata/locales/en_HK (t_fmt): Likewise.
+ (t_fmt_ampm): Likewise.
+ * localedata/locales/en_IN (t_fmt): Likewise.
+ * localedata/locales/en_PH (t_fmt): Likewise.
+ * localedata/locales/gu_IN (t_fmt): Likewise.
+ * localedata/locales/hi_IN (t_fmt): Likewise.
+ * localedata/locales/hif_FJ (t_fmt): Likewise.
+ * localedata/locales/hne_IN (t_fmt): Likewise.
+ * localedata/locales/kn_IN (t_fmt): Likewise.
+ * localedata/locales/kok_IN (t_fmt): Likewise.
+ * localedata/locales/ks_IN (t_fmt): Likewise.
+ * localedata/locales/ks_IN@devanagari (t_fmt): Likewise.
+ * localedata/locales/mag_IN (t_fmt): Likewise.
+ * localedata/locales/mai_IN (t_fmt): Likewise.
+ * localedata/locales/mjw_IN (t_fmt): Likewise.
+ * localedata/locales/ml_IN (t_fmt): Likewise.
+ * localedata/locales/mni_IN (t_fmt): Likewise.
+ * localedata/locales/mr_IN (t_fmt): Likewise.
+ * localedata/locales/ms_MY (t_fmt): Likewise.
+ * localedata/locales/pa_IN (t_fmt): Likewise.
+ * localedata/locales/raj_IN (t_fmt): Likewise.
+ * localedata/locales/sa_IN (t_fmt): Likewise.
+ * localedata/locales/sat_IN (t_fmt): Likewise.
+ * localedata/locales/sd_IN (t_fmt): Likewise.
+ * localedata/locales/sd_IN@devanagari (t_fmt): Likewise.
+ * localedata/locales/tcy_IN (t_fmt): Likewise.
+ * localedata/locales/the_NP (t_fmt): Likewise.
+ * localedata/locales/to_TO (t_fmt): Likewise.
+ * localedata/locales/ur_IN (t_fmt): Likewise.
+
+ * localedata/locales/hif_FJ (d_t_fmt): Set to
+ "%A %d %b %Y %I:%M:%S %p".
+ (date_fmt): Add, set to "%A %d %b %Y %I:%M:%S %p %Z".
+
+ * localedata/locales/ar_AE (t_fmt): Set to "%Z %I:%M:%S %p".
+ * localedata/locales/ar_BH (t_fmt): Likewise.
+ * localedata/locales/ar_DZ (t_fmt): Likewise.
+ * localedata/locales/ar_EG (t_fmt): Likewise.
+ * localedata/locales/ar_IQ (t_fmt): Likewise.
+ * localedata/locales/ar_JO (t_fmt): Likewise.
+ * localedata/locales/ar_KW (t_fmt): Likewise.
+ * localedata/locales/ar_LB (t_fmt): Likewise.
+ * localedata/locales/ar_LY (t_fmt): Likewise.
+ * localedata/locales/ar_OM (t_fmt): Likewise.
+ * localedata/locales/ar_QA (t_fmt): Likewise.
+ * localedata/locales/ar_SD (t_fmt): Likewise.
+ * localedata/locales/ar_SS (t_fmt): Likewise.
+ * localedata/locales/ar_SY (t_fmt): Likewise.
+ * localedata/locales/ar_TN (t_fmt): Likewise.
+ * localedata/locales/ar_YE (t_fmt): Likewise.
+
+ * localedata/locales/gez_ER (t_fmt): Set to "%l:%M:%S<U1361>%p".
+ (t_fmt_ampm): Likewise.
+ * localedata/locales/gez_ET (t_fmt): Likewise.
+ (t_fmt_ampm): Likewise.
+
+ * localedata/locales/ta_IN (t_fmt): Set to "%p %I:%M:%S %Z".
+ (t_fmt_ampm): Likewise.
+ (d_t_fmt): Set to "%A %d %B %Y %p %I:%M:%S %Z".
+
+ * localedata/locales/zh_HK (t_fmt):
+ Set to "%p %I<U6642>%M<U5206>%S<U79D2> %Z".
+
+ * localedata/locales/ar_MA (t_fmt_ampm): Set to "" (empty string)
+ because this locale does not use the 12-hour clock.
+ (t_fmt): Set to "%Z %H:%M:%S".
+ (d_t_fmt): Set to "%d %b, %Y %Z %H:%M:%S".
+
+ * localedata/locales/mt_MT (t_fmt_ampm): Set to "" (empty string)
+ because this locale does not use the 12-hour clock.
+ (t_fmt): Set to "%H:%M:%S %Z".
+ (d_t_fmt): Set to "%A, %d ta %b, %Y %H:%M:%S %Z".
+
+ * localedata/locales/so_KE (t_fmt_ampm): Set to "" (empty string)
+ because this locale does not use the 12-hour clock.
+ (t_fmt): Set to "%T".
+ (d_t_fmt): Set to "%A, %B %e, %Y %X %Z".
+ (date_fmt): Set to "%A, %B %e, %X %Z %Y".
+
+ * localedata/locales/ta_LK (t_fmt_ampm): Set to "" (empty string)
+ because this locale does not use the 12-hour clock.
+ (t_fmt): Set to "%H:%M:%S %Z".
+ (d_t_fmt): Set to "%A %d %B %Y %H:%M:%S %Z".
+
+ * localedata/locales/bg_BG (t_fmt_ampm): Set to "" (empty string)
+ because this locale does not use the 12-hour clock.
+ * localedata/locales/cs_CZ (t_fmt_ampm): Likewise.
+ * localedata/locales/sk_SK (t_fmt_ampm): Likewise.
+
+2018-12-28 Rafał Lużyński <digitalfreak@lingonborough.com>
+
+ [BZ #10496]
+ [BZ #23724]
+ * localedata/locales/sq_AL (t_fmt): Set to "%I:%M:%S.%p %Z".
+ (t_fmt_ampm): Likewise.
+ (d_t_fmt): Set to "%a %-d %b %Y %I:%M:%S.%p".
+ (date_fmt): Add, set to "%a %-d %b %Y %I:%M:%S.%p %Z".
+ (d_fmt): Set to "%-d.%-m.%y".
+
+2018-12-28 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * malloc/alloc_buffer_alloc_array.c (__libc_alloc_buffer_alloc_array):
+ Use __builtin_mul_overflow in place of check_mul_overflow_size_t.
+ * malloc/dynarray_emplace_enlarge.c (__libc_dynarray_emplace_enlarge):
+ Likewise.
+ * malloc/dynarray_resize.c (__libc_dynarray_resize): Likewise.
+ * malloc/reallocarray.c (__libc_reallocarray): Likewise.
+ * malloc/malloc-internal.h (check_mul_overflow_size_t): Remove
+ function.
+ * support/blob_repeat.c (check_mul_overflow_size_t,
+ (minimum_stride_size, support_blob_repeat_allocate): Likewise.
+
+2018-12-28 Aurelien Jarno <aurelien@aurel32.net>
+
+ * sysdeps/alpha/fpu/libm-test-ulps: Regenerated.
+
+2018-12-27 Paul Eggert <eggert@cs.ucla.edu>
+
+ regex: simplify Gnulib port
+ This simplifies the code, by removing stuff intended for porting
+ to Gnulib but no longer needed there.
+ * posix/regcomp.c [!_LIBC]: No need to put #ifdef _LIBC around
+ uses of libc_hidden_def, weak_alias.
+ * posix/regcomp.c, posix/regexec.c: Use __restrict rather than
+ _Restrict_ except for public-facing headers.
+ * posix/regex_internal.h (attribute_hidden) [!_LIBC]:
+ Remove; already defined elsewhere.
+ * posix/regex.c, posix/regex_internal.h:
+ Use __GNUC_PREREQ instead of rolling our own.
+ * posix/regex_internal.h (__GNUC_PREREQ): Remove duplicate defn.
+
+2018-12-27 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * benchtests/bench-strlen.c (generic_strlen): New function.
+ (memchr_strlen): New function.
+
+2018-12-26 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86_64/fpu/s_sincosf.S: Removed.
+ * sysdeps/x86_64/fpu/multiarch/s_sincosf-sse2.S: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/s_sincosf-sse2.c: New file.
+
+2018-12-26 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86_64/fpu/libm-test-ulps: Regenerated.
+
+2018-12-26 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/ieee754/flt-32/s_sincosf.h: Include <sincosf_poly.h>.
+ (sincos_t, sincosf_poly, sinf_poly): Moved to ...
+ * sysdeps/ieee754/flt-32/sincosf_poly.h: Here. New file.
+ * sysdeps/x86/fpu/s_sincosf_data.c: New file.
+ * sysdeps/x86/fpu/sincosf_poly.h: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/s_sincosf-fma.c: Just include
+ <sysdeps/ieee754/flt-32/s_sincosf.c>.
+
+2018-12-21 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #24023]
+ * sysdeps/unix/sysv/linux/nios2/localplt.data: Allow __floatundidf
+ PLT reference in libc.so.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/localplt.data: Allow
+ _Q_lltoq and _Q_qtod PLT references in libc.so.
+
+2018-12-21 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * benchtests/bench-memchr.c: Cleanup defines.
+ * benchtests/bench-memcmp.c: Likewise.
+ * benchtests/bench-memset.c: Likewise.
+ * benchtests/bench-memset-large.c: Likewise.
+ * benchtests/bench-memset-walk.c: Likewise.
+ * benchtests/bench-stpcpy.c: Likewise.
+ * benchtests/bench-stpncpy.c: Likewise.
+ * benchtests/bench-strcat.c: Likewise.
+ * benchtests/bench-strchr.c: Likewise.
+ * benchtests/bench-strcmp.c: Likewise.
+ * benchtests/bench-strcpy.c: Likewise.
+ * benchtests/bench-strcspn.c: Likewise.
+ * benchtests/bench-string.h: Likewise.
+ * benchtests/bench-strlen.c: Likewise.
+ * benchtests/bench-strncat.c: Likewise.
+ * benchtests/bench-strncmp.c: Likewise.
+ * benchtests/bench-strncpy.c: Likewise.
+ * benchtests/bench-strnlen.c: Likewise.
+ * benchtests/bench-strpbrk.c: Likewise.
+ * benchtests/bench-strrchr.c: Likewise.
+ * benchtests/bench-strspn.c: Likewise.
+
+2018-12-21 Joseph Myers <joseph@codesourcery.com>
+
+ * stdlib/longlong.h: Update from GCC.
+
+ [BZ #23993]
+ * configure.ac (libc_cv_compiler_ok): Require GCC 5 or later.
+ * configure: Regenerated.
+ * manual/install.texi (Tools for Compilation): Update minimum GCC
+ version.
+ * INSTALL: Regenerated.
+
+2018-12-21 Istvan Kurucsai <pistukem@gmail.com>
+
+ * malloc/malloc.c (munmap_chunk): Verify chunk alignment.
+
+2018-12-20 Istvan Kurucsai <pistukem@gmail.com>
+
+ * malloc/malloc.c (mremap_chunk): Additional checks.
+
+2018-12-21 Mao Han <han_mao@c-sky.com>
+
+ * config.h.in (CSKYABI, CSKY_HARD_FLOAT): New Define.
+ * scripts/build-many-glibcs.py: Add C-SKY targets.
+ * sysdeps/csky/Implies: New file.
+ * sysdeps/csky/Makefile: Likewise.
+ * sysdeps/csky/abiv2/__longjmp.S: Likewise.
+ * sysdeps/csky/abiv2/csky-mcount.S: Likewise.
+ * sysdeps/csky/abiv2/dl-trampoline.S: Likewise.
+ * sysdeps/csky/abiv2/memcmp.S: Likewise.
+ * sysdeps/csky/abiv2/memcpy.S: Likewise.
+ * sysdeps/csky/abiv2/memmove.S: Likewise.
+ * sysdeps/csky/abiv2/memset.S: Likewise.
+ * sysdeps/csky/abiv2/setjmp.S: Likewise.
+ * sysdeps/csky/abiv2/start.S: Likewise.
+ * sysdeps/csky/abiv2/strcmp.S: Likewise.
+ * sysdeps/csky/abiv2/strcpy.S: Likewise.
+ * sysdeps/csky/abiv2/strlen.S: Likewise.
+ * sysdeps/csky/abiv2/tls-macros.h: Likewise.
+ * sysdeps/csky/abort-instr.h: Likewise.
+ * sysdeps/csky/atomic-machine.h: Likewise.
+ * sysdeps/csky/bits/endian.h: Likewise.
+ * sysdeps/csky/bits/fenv.h: Likewise.
+ * sysdeps/csky/bits/link.h: Likewise.
+ * sysdeps/csky/bits/setjmp.h: Likewise.
+ * sysdeps/csky/bsd-_setjmp.S: Likewise.
+ * sysdeps/csky/bsd-setjmp.S: Likewise.
+ * sysdeps/csky/configure: Likewise.
+ * sysdeps/csky/configure.ac: Likewise.
+ * sysdeps/csky/dl-machine.h: Likewise.
+ * sysdeps/csky/dl-procinfo.c: Likewise.
+ * sysdeps/csky/dl-procinfo.h: Likewise.
+ * sysdeps/csky/dl-sysdep.h: Likewise.
+ * sysdeps/csky/dl-tls.h: Likewise.
+ * sysdeps/csky/fpu/fclrexcpt.c: Likewise.
+ * sysdeps/csky/fpu/fedisblxcpt.c: Likewise.
+ * sysdeps/csky/fpu/feenablxcpt.c: Likewise.
+ * sysdeps/csky/fpu/fegetenv.c: Likewise.
+ * sysdeps/csky/fpu/fegetexcept.c: Likewise.
+ * sysdeps/csky/fpu/fegetmode.c: Likewise.
+ * sysdeps/csky/fpu/fegetround.c: Likewise.
+ * sysdeps/csky/fpu/feholdexcpt.c: Likewise.
+ * sysdeps/csky/fpu/fenv_libc.h: Likewise.
+ * sysdeps/csky/fpu/fenv_private.h: Likewise.
+ * sysdeps/csky/fpu/fesetenv.c: Likewise.
+ * sysdeps/csky/fpu/fesetexcept.c: Likewise.
+ * sysdeps/csky/fpu/fesetmode.c: Likewise.
+ * sysdeps/csky/fpu/fesetround.c: Likewise.
+ * sysdeps/csky/fpu/feupdateenv.c: Likewise.
+ * sysdeps/csky/fpu/fgetexcptflg.c: Likewise.
+ * sysdeps/csky/fpu/fix-fp-int-convert-overflow.h: Likewise.
+ * sysdeps/csky/fpu/fraiseexcpt.c: Likewise.
+ * sysdeps/csky/fpu/fsetexcptflg.c: Likewise.
+ * sysdeps/csky/fpu/ftestexcept.c: Likewise.
+ * sysdeps/csky/fpu/libm-test-ulps: Likewise.
+ * sysdeps/csky/fpu/libm-test-ulps-name: Likewise.
+ * sysdeps/csky/fpu_control.h: Likewise.
+ * sysdeps/csky/gccframe.h: Likewise.
+ * sysdeps/csky/jmpbuf-unwind.h: Likewise.
+ * sysdeps/csky/ldsodefs.h: Likewise.
+ * sysdeps/csky/libc-tls.c: Likewise.
+ * sysdeps/csky/linkmap.h: Likewise.
+ * sysdeps/csky/machine-gmon.h: Likewise.
+ * sysdeps/csky/memusage.h: Likewise.
+ * sysdeps/csky/nofpu/Implies: Likewise.
+ * sysdeps/csky/nofpu/libm-test-ulps: Likewise.
+ * sysdeps/csky/nofpu/libm-test-ulps-name: Likewise.
+ * sysdeps/csky/nptl/Makefile: Likewise.
+ * sysdeps/csky/nptl/bits/pthreadtypes-arch.h: Likewise.
+ * sysdeps/csky/nptl/bits/semaphore.h: Likewise.
+ * sysdeps/csky/nptl/pthread-offsets.h: Likewise.
+ * sysdeps/csky/nptl/pthreaddef.h: Likewise.
+ * sysdeps/csky/nptl/tcb-offsets.sym: Likewise.
+ * sysdeps/csky/nptl/tls.h: Likewise.
+ * sysdeps/csky/preconfigure: Likewise.
+ * sysdeps/csky/sfp-machine.h: Likewise.
+ * sysdeps/csky/sotruss-lib.c: Likewise.
+ * sysdeps/csky/stackinfo.h: Likewise.
+ * sysdeps/csky/sysdep.h: Likewise.
+ * sysdeps/csky/tininess.h: Likewise.
+ * sysdeps/csky/tst-audit.h: Likewise.
+ * sysdeps/unix/sysv/linux/csky/Implies: Likewise.
+ * sysdeps/unix/sysv/linux/csky/Makefile: Likewise.
+ * sysdeps/unix/sysv/linux/csky/Versions: Likewise.
+ * sysdeps/unix/sysv/linux/csky/abiv2/____longjmp_chk.S: Likewise.
+ * sysdeps/unix/sysv/linux/csky/abiv2/clone.S: Likewise.
+ * sysdeps/unix/sysv/linux/csky/abiv2/getcontext.S: Likewise.
+ * sysdeps/unix/sysv/linux/csky/abiv2/setcontext.S: Likewise.
+ * sysdeps/unix/sysv/linux/csky/abiv2/swapcontext.S: Likewise.
+ * sysdeps/unix/sysv/linux/csky/abiv2/syscall.S: Likewise.
+ * sysdeps/unix/sysv/linux/csky/abiv2/sysdep.S: Likewise.
+ * sysdeps/unix/sysv/linux/csky/abiv2/ucontext_i.sym: Likewise.
+ * sysdeps/unix/sysv/linux/csky/bits/procfs.h: Likewise.
+ * sysdeps/unix/sysv/linux/csky/bits/shmlba.h: Likewise.
+ * sysdeps/unix/sysv/linux/csky/c++-types.data: Likewise.
+ * sysdeps/unix/sysv/linux/csky/configure: Likewise.
+ * sysdeps/unix/sysv/linux/csky/configure.ac: Likewise.
+ * sysdeps/unix/sysv/linux/csky/ipc_priv.h: Likewise.
+ * sysdeps/unix/sysv/linux/csky/jmp_buf-macros.h: Likewise.
+ * sysdeps/unix/sysv/linux/csky/kernel-features.h: Likewise.
+ * sysdeps/unix/sysv/linux/csky/ld.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/csky/ldconfig.h: Likewise.
+ * sysdeps/unix/sysv/linux/csky/libBrokenLocale.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/csky/libanl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/csky/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/csky/libcrypt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/csky/libdl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/csky/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/csky/libpthread.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/csky/libresolv.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/csky/librt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/csky/libthread_db.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/csky/libutil.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/csky/localplt.data: Likewise.
+ * sysdeps/unix/sysv/linux/csky/makecontext.c: Likewise.
+ * sysdeps/unix/sysv/linux/csky/profil-counter.h: Likewise.
+ * sysdeps/unix/sysv/linux/csky/pt-vfork.S: Likewise.
+ * sysdeps/unix/sysv/linux/csky/register-dump.h: Likewise.
+ * sysdeps/unix/sysv/linux/csky/shlib-versions: Likewise.
+ * sysdeps/unix/sysv/linux/csky/sigcontextinfo.h: Likewise.
+ * sysdeps/unix/sysv/linux/csky/sys/cachectl.h: Likewise.
+ * sysdeps/unix/sysv/linux/csky/sys/ucontext.h: Likewise.
+ * sysdeps/unix/sysv/linux/csky/sys/user.h: Likewise.
+ * sysdeps/unix/sysv/linux/csky/syscalls.list: Likewise.
+ * sysdeps/unix/sysv/linux/csky/sysdep.h: Likewise.
+
+2018-12-18 Albert ARIBAUD <albert.aribaud@3adev.fr>
+
+ * include/time.h (__difftime64): Add.
+ * time/difftime.c (subtract): convert to 64-bit time.
+ * time/difftime.c (__difftime64): Add.
+ * time/difftime.c (__difftime): Wrap around __difftime64.
+
+2018-12-20 H.J. Lu <hongjiu.lu@intel.com>
+
+ * manual/examples/add.c: Remove redundant "if not".
+ * manual/examples/argp-ex1.c: Likewise.
+ * manual/examples/argp-ex2.c: Likewise.
+ * manual/examples/argp-ex3.c: Likewise.
+ * manual/examples/argp-ex4.c: Likewise.
+ * manual/examples/atexit.c: Likewise.
+ * manual/examples/db.c: Likewise.
+ * manual/examples/dir.c: Likewise.
+ * manual/examples/dir2.c: Likewise.
+ * manual/examples/execinfo.c: Likewise.
+ * manual/examples/filecli.c: Likewise.
+ * manual/examples/filesrv.c: Likewise.
+ * manual/examples/fmtmsgexpl.c: Likewise.
+ * manual/examples/genpass.c: Likewise.
+ * manual/examples/inetcli.c: Likewise.
+ * manual/examples/inetsrv.c: Likewise.
+ * manual/examples/isockad.c: Likewise.
+ * manual/examples/longopt.c: Likewise.
+ * manual/examples/memopen.c: Likewise.
+ * manual/examples/memstrm.c: Likewise.
+ * manual/examples/mkdirent.c: Likewise.
+ * manual/examples/mkfsock.c: Likewise.
+ * manual/examples/mkisock.c: Likewise.
+ * manual/examples/mygetpass.c: Likewise.
+ * manual/examples/pipe.c: Likewise.
+ * manual/examples/popen.c: Likewise.
+ * manual/examples/rprintf.c: Likewise.
+ * manual/examples/search.c: Likewise.
+ * manual/examples/select.c: Likewise.
+ * manual/examples/setjmp.c: Likewise.
+ * manual/examples/sigh1.c: Likewise.
+ * manual/examples/sigusr.c: Likewise.
+ * manual/examples/stpcpy.c: Likewise.
+ * manual/examples/strdupa.c: Likewise.
+ * manual/examples/strftim.c: Likewise.
+ * manual/examples/subopt.c: Likewise.
+ * manual/examples/swapcontext.c: Likewise.
+ * manual/examples/termios.c: Likewise.
+ * manual/examples/testopt.c: Likewise.
+ * manual/examples/testpass.c: Likewise.
+ * manual/examples/timeval_subtract.c: Likewise.
+
+2018-12-19 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/x86/fpu/math_private.h: New file.
+ * sysdeps/x86/fpu/bits/mathinline.h: Remove.
+
+ * sysdeps/x86/fpu/bits/mathinline.h (sinh): Remove inline
+ definition.
+ (cosh): Likewise.
+ (tanh): Likewise.
+
+2018-12-19 Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
+
+ * elf/dl-sysdep.c (auxvars): Add AT_L1I_CACHESIZE,
+ AT_L1I_CACHEGEOMETRY, AT_L1D_CACHESIZE, AT_L1D_CACHEGEOMETRY,
+ AT_L2_CACHESIZE, AT_L2_CACHEGEOMETRY, AT_L3_CACHESIZE and
+ AT_L3_CACHEGEOMETRY. Fix indentation when printing the other
+ fields.
+ (_dl_show_auxv): Give a special treatment to
+ AT_L1I_CACHEGEOMETRY, AT_L1D_CACHEGEOMETRY, AT_L2_CACHEGEOMETRY
+ and AT_L3_CACHEGEOMETRY.
+ * sysdeps/powerpc/dl-procinfo.h (cache_geometry): New function.
+ (_dl_procinfo): Fix indentation when printing AT_HWCAP and
+ AT_HWCAP2. Add support for AT_L1I_CACHEGEOMETRY,
+ AT_L1D_CACHEGEOMETRY, AT_L2_CACHEGEOMETRY and AT_L3_CACHEGEOMETRY.
+
+2018-12-19 Andreas Schwab <schwab@suse.de>
+
+ * nscd/connections.c (check_use): Don't abort on invalid len.
+
+2018-12-18 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * sysdeps/mach/hurd/fcntl.c (__libc_fcntl): Test against 64bit `cmd'
+ values in the 64bit value cases.
+
+2018-12-18 Albert ARIBAUD <albert.aribaud@3adev.fr>
+
+ * include/time.h
+ (__ctime64_r): Add.
+ * time/ctime_r.c
+ (__ctime64_r): Add.
+ [__TIMESIZE != 64] (__ctime_r): Turn into a wrapper.
+
+ * include/time.h
+ (__ctime64): Add.
+ * time/gmtime.c
+ (__ctime64): Add.
+ [__TIMESIZE != 64] (ctime): Turn into a wrapper.
+
+ * include/time.h
+ (__gmtime64_r): Add.
+ * time/gmtime.c
+ (__gmtime64_r): Add.
+ [__TIMESIZE != 64] (__gmtime): Turn into a wrapper.
+
+ * include/time.h
+ (__gmtime64): Add.
+ * time/gmtime.c
+ (__gmtime64): Add.
+ [__TIMESIZE != 64] (__gmtime): Turn into a wrapper.
+
+ * include/time.h
+ (__localtime64_r): Add.
+ * time/localtime.c
+ (__localtime64_r): Add.
+ [__TIMESIZE != 64] (__localtime_r): Turn into a wrapper.
+
+2018-12-18 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/unix/sysv/linux/s390/kernel_sigaction.h: Use Linux generic
+ kernel_sigction definition.
+
+ * sysdeps/unix/sysv/linux/ia64/kernel_sigaction.h: Remove file.
+
+ * sysdeps/unix/sysv/linux/hppa/kernel_sigaction.h: Remove file.
+
+ * sysdeps/unix/sysv/linux/alpha/Makefile: Update comment about
+ __syscall_rt_sigaction.
+ * sysdeps/unix/sysv/linux/alpha/kernel_sigaction.h
+ (kernel_sigaction): Use Linux generic defintion.
+ (STUB): Define.
+ (__syscall_rt_sigreturn, __syscall_sigreturn): Add prototype.
+ * sysdeps/unix/sysv/linux/alpha/rt_sigaction.S
+ (__syscall_rt_sigaction): Remove implementation.
+ (__syscall_sigreturn, __syscall_rt_sigreturn): Define as global and
+ hidden.
+ * sysdeps/unix/sysv/linux/alpha/sigaction.c: Remove file.
+ * sysdeps/unix/sysv/linux/alpha/sysdep.h (INLINE_SYSCALL,
+ INTERNAL_SYSCALL): Remove definitions.
+ * sysdeps/unix/sysv/linux/sigaction.c: Define STUB to accept both the
+ action and signal set size.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c (STUB): Redefine.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c (STUB): Likewise.
+
+2018-12-18 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+ James Clarke <jrtc27@jrtc27.com>
+
+ [BZ #23967]
+ * sysdeps/unix/sysv/linux/kernel_sigaction.h (HAS_SA_RESTORER):
+ Define if SA_RESTORER is defined.
+ (kernel_sigaction): Define sa_restorer if HAS_SA_RESTORER is defined.
+ (SET_SA_RESTORER, RESET_SA_RESTORER): Define iff the macro are not
+ already defined.
+ * sysdeps/unix/sysv/linux/m68k/kernel_sigaction.h (SA_RESTORER,
+ kernel_sigaction, SET_SA_RESTORER, RESET_SA_RESTORER): Remove
+ definitions.
+ (HAS_SA_RESTORER): Define.
+ * sysdeps/unix/sysv/linux/sparc/kernel_sigaction.h (SA_RESTORER,
+ SET_SA_RESTORER, RESET_SA_RESTORER): Remove definition.
+ (HAS_SA_RESTORER): Define.
+ * sysdeps/unix/sysv/linux/nios2/kernel_sigaction.h: Include generic
+ kernel_sigaction after define SET_SA_RESTORER and RESET_SA_RESTORER.
+ * sysdeps/unix/sysv/linux/powerpc/kernel_sigaction.h: Likewise.
+ * sysdeps/unix/sysv/linux/s390/kernel_sigaction.h: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/sigaction.c: Likewise.
+
+2018-12-18 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/kernel-features.h
+ (__ASSUME_ST_INO_64_BIT): Remove macro definition.
+ * sysdeps/unix/sysv/linux/alpha/kernel-features.h
+ (__ASSUME_ST_INO_64_BIT): Do not undefine and define.
+ * sysdeps/unix/sysv/linux/sh/kernel-features.h
+ (__ASSUME_ST_INO_64_BIT): Likewise.
+ * sysdeps/unix/sysv/linux/fxstat64.c: Do not include
+ <kernel-features.h>.
+ (___fxstat64) [_HAVE_STAT64___ST_INO && !__ASSUME_ST_INO_64_BIT]:
+ Remove conditional code.
+ * sysdeps/unix/sysv/linux/lxstat64.c: Do not include
+ <kernel-features.h>.
+ (___lxstat64) [_HAVE_STAT64___ST_INO && !__ASSUME_ST_INO_64_BIT]:
+ Remove conditional code.
+ * sysdeps/unix/sysv/linux/xstat64.c: Do not include
+ <kernel-features.h>.
+ (___xstat64) [_HAVE_STAT64___ST_INO && !__ASSUME_ST_INO_64_BIT]:
+ Remove conditional code.
+ * sysdeps/unix/sysv/linux/xstatconv.c: Do not include
+ <kernel-features.h>.
+ (__xstat32_conv) [_HAVE_STAT64___ST_INO]: Remove conditional code.
+ [!_HAVE_STAT64___ST_INO]: Make code unconditional.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/multiarch/ifunc-resolve.h
+ (s390_vx_libc_ifunc, s390_vx_libc_ifunc_redirected,
+ s390_vx_libc_ifunc2, s390_vx_libc_ifunc_init,
+ s390_vx_libc_ifunc2_redirected, s390_libc_ifunc):
+ Delete macro definition.
+ (s390_libc_ifunc_init): Rename to
+ s390_libc_ifunc_expr_stfle_init.
+ * sysdeps/s390/bzero: Use
+ s390_libc_ifunc_expr_stfle_init instead of
+ s390_libc_ifunc_init.
+ * sysdeps/s390/memcmp.c: Likewise.
+ * sysdeps/s390/memcpy.c: Likewise.
+ * sysdeps/s390/mempcpy.c: Likewise.
+ * sysdeps/s390/memset.c: Likewise.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/multiarch/gconv_simple.c (ICONV_VX_IFUNC):
+ Define macro dependent on HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/multiarch/Makefile
+ (sysdep_routines): Remove wmemcmp variants.
+ * sysdeps/s390/Makefile (sysdep_routines): Add wmemcmp variants.
+ * sysdeps/s390/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Refactor ifunc handling for wmemcmp.
+ * sysdeps/s390/multiarch/wmemcmp-c.c: Move to ...
+ * sysdeps/s390/wmemcmp-c.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/wmemcmp-vx.S: Move to ...
+ * sysdeps/s390/wmemcmp-vx.S: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/wmemcmp.c: Move to ...
+ * sysdeps/s390/wmemcmp.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/ifunc-wmemcmp.h: New file.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/multiarch/Makefile
+ (sysdep_routines): Remove wmemset variants.
+ * sysdeps/s390/Makefile (sysdep_routines): Add wmemset variants.
+ * sysdeps/s390/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Refactor ifunc handling for wmemset.
+ * sysdeps/s390/multiarch/wmemset-c.c: Move to ...
+ * sysdeps/s390/wmemset-c.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/wmemset-vx.S: Move to ...
+ * sysdeps/s390/wmemset-vx.S: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/wmemset.c: Move to ...
+ * sysdeps/s390/wmemset.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/ifunc-wmemset.h: New file.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/multiarch/Makefile
+ (sysdep_routines): Remove wmemchr variants.
+ * sysdeps/s390/Makefile (sysdep_routines): Add wmemchr variants.
+ * sysdeps/s390/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Refactor ifunc handling for wmemchr.
+ * sysdeps/s390/multiarch/wmemchr-c.c: Move to ...
+ * sysdeps/s390/wmemchr-c.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/wmemchr-vx.S: Move to ...
+ * sysdeps/s390/wmemchr-vx.S: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/wmemchr.c: Move to ...
+ * sysdeps/s390/wmemchr.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/ifunc-wmemchr.h: New file.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/multiarch/Makefile
+ (sysdep_routines): Remove wcscspn variants.
+ * sysdeps/s390/Makefile (sysdep_routines): Add wcscspn variants.
+ * sysdeps/s390/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Refactor ifunc handling for wcscspn.
+ * sysdeps/s390/multiarch/wcscspn-c.c: Move to ...
+ * sysdeps/s390/wcscspn-c.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/wcscspn-vx.S: Move to ...
+ * sysdeps/s390/wcscspn-vx.S: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/wcscspn.c: Move to ...
+ * sysdeps/s390/wcscspn.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/ifunc-wcscspn.h: New file.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/multiarch/Makefile
+ (sysdep_routines): Remove wcspbrk variants.
+ * sysdeps/s390/Makefile (sysdep_routines): Add wcspbrk variants.
+ * sysdeps/s390/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Refactor ifunc handling for wcspbrk.
+ * sysdeps/s390/multiarch/wcspbrk-c.c: Move to ...
+ * sysdeps/s390/wcspbrk-c.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/wcspbrk-vx.S: Move to ...
+ * sysdeps/s390/wcspbrk-vx.S: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/wcspbrk.c: Move to ...
+ * sysdeps/s390/wcspbrk.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/ifunc-wcspbrk.h: New file.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/multiarch/Makefile
+ (sysdep_routines): Remove wcsspn variants.
+ * sysdeps/s390/Makefile (sysdep_routines): Add wcsspn variants.
+ * sysdeps/s390/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Refactor ifunc handling for wcsspn.
+ * sysdeps/s390/multiarch/wcsspn-c.c: Move to ...
+ * sysdeps/s390/wcsspn-c.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/wcsspn-vx.S: Move to ...
+ * sysdeps/s390/wcsspn-vx.S: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/wcsspn.c: Move to ...
+ * sysdeps/s390/wcsspn.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/ifunc-wcsspn.h: New file.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/multiarch/Makefile
+ (sysdep_routines): Remove wcsrchr variants.
+ * sysdeps/s390/Makefile (sysdep_routines): Add wcsrchr variants.
+ * sysdeps/s390/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Refactor ifunc handling for wcsrchr.
+ * sysdeps/s390/multiarch/wcsrchr-c.c: Move to ...
+ * sysdeps/s390/wcsrchr-c.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/wcsrchr-vx.S: Move to ...
+ * sysdeps/s390/wcsrchr-vx.S: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/wcsrchr.c: Move to ...
+ * sysdeps/s390/wcsrchr.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/ifunc-wcsrchr.h: New file.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/multiarch/Makefile
+ (sysdep_routines): Remove wcschrnul variants.
+ * sysdeps/s390/Makefile (sysdep_routines): Add wcschrnul variants.
+ * sysdeps/s390/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Refactor ifunc handling for wcschrnul.
+ * sysdeps/s390/multiarch/wcschrnul-c.c: Move to ...
+ * sysdeps/s390/wcschrnul-c.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/wcschrnul-vx.S: Move to ...
+ * sysdeps/s390/wcschrnul-vx.S: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/wcschrnul.c: Move to ...
+ * sysdeps/s390/wcschrnul.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/ifunc-wcschrnul.h: New file.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/multiarch/Makefile
+ (sysdep_routines): Remove wcschr variants.
+ * sysdeps/s390/Makefile (sysdep_routines): Add wcschr variants.
+ * sysdeps/s390/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Refactor ifunc handling for wcschr.
+ * sysdeps/s390/multiarch/wcschr-c.c: Move to ...
+ * sysdeps/s390/wcschr-c.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/wcschr-vx.S: Move to ...
+ * sysdeps/s390/wcschr-vx.S: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/wcschr.c: Move to ...
+ * sysdeps/s390/wcschr.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/ifunc-wcschr.h: New file.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/multiarch/Makefile
+ (sysdep_routines): Remove wcsncmp variants.
+ * sysdeps/s390/Makefile (sysdep_routines): Add wcsncmp variants.
+ * sysdeps/s390/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Refactor ifunc handling for wcsncmp.
+ * sysdeps/s390/multiarch/wcsncmp-c.c: Move to ...
+ * sysdeps/s390/wcsncmp-c.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/wcsncmp-vx.S: Move to ...
+ * sysdeps/s390/wcsncmp-vx.S: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/wcsncmp.c: Move to ...
+ * sysdeps/s390/wcsncmp.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/ifunc-wcsncmp.h: New file.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/multiarch/Makefile
+ (sysdep_routines): Remove wcscmp variants.
+ * sysdeps/s390/Makefile (sysdep_routines): Add wcscmp variants.
+ * sysdeps/s390/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Refactor ifunc handling for wcscmp.
+ * sysdeps/s390/multiarch/wcscmp-c.c: Move to ...
+ * sysdeps/s390/wcscmp-c.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/wcscmp-vx.S: Move to ...
+ * sysdeps/s390/wcscmp-vx.S: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/wcscmp.c: Move to ...
+ * sysdeps/s390/wcscmp.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/ifunc-wcscmp.h: New file.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/multiarch/Makefile
+ (sysdep_routines): Remove wcsncat variants.
+ * sysdeps/s390/Makefile (sysdep_routines): Add wcsncat variants.
+ * sysdeps/s390/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Refactor ifunc handling for wcsncat.
+ * sysdeps/s390/multiarch/wcsncat-c.c: Move to ...
+ * sysdeps/s390/wcsncat-c.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/wcsncat-vx.S: Move to ...
+ * sysdeps/s390/wcsncat-vx.S: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/wcsncat.c: Move to ...
+ * sysdeps/s390/wcsncat.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/ifunc-wcsncat.h: New file.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/multiarch/Makefile
+ (sysdep_routines): Remove wcscat variants.
+ * sysdeps/s390/Makefile (sysdep_routines): Add wcscat variants.
+ * sysdeps/s390/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Refactor ifunc handling for wcscat.
+ * sysdeps/s390/multiarch/wcscat-c.c: Move to ...
+ * sysdeps/s390/wcscat-c.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/wcscat-vx.S: Move to ...
+ * sysdeps/s390/wcscat-vx.S: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/wcscat.c: Move to ...
+ * sysdeps/s390/wcscat.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/ifunc-wcscat.h: New file.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/multiarch/Makefile
+ (sysdep_routines): Remove wcpncpy variants.
+ * sysdeps/s390/Makefile (sysdep_routines): Add wcpncpy variants.
+ * sysdeps/s390/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Refactor ifunc handling for wcpncpy.
+ * sysdeps/s390/multiarch/wcpncpy-c.c: Move to ...
+ * sysdeps/s390/wcpncpy-c.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/wcpncpy-vx.S: Move to ...
+ * sysdeps/s390/wcpncpy-vx.S: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/wcpncpy.c: Move to ...
+ * sysdeps/s390/wcpncpy.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/ifunc-wcpncpy.h: New file.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/multiarch/Makefile
+ (sysdep_routines): Remove wcsncpy variants.
+ * sysdeps/s390/Makefile (sysdep_routines): Add wcsncpy variants.
+ * sysdeps/s390/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Refactor ifunc handling for wcsncpy.
+ * sysdeps/s390/multiarch/wcsncpy-c.c: Move to ...
+ * sysdeps/s390/wcsncpy-c.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/wcsncpy-vx.S: Move to ...
+ * sysdeps/s390/wcsncpy-vx.S: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/wcsncpy.c: Move to ...
+ * sysdeps/s390/wcsncpy.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/ifunc-wcsncpy.h: New file.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/multiarch/Makefile
+ (sysdep_routines): Remove wcpcpy variants.
+ * sysdeps/s390/Makefile (sysdep_routines): Add wcpcpy variants.
+ * sysdeps/s390/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Refactor ifunc handling for wcpcpy.
+ * sysdeps/s390/multiarch/wcpcpy-c.c: Move to ...
+ * sysdeps/s390/wcpcpy-c.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/wcpcpy-vx.S: Move to ...
+ * sysdeps/s390/wcpcpy-vx.S: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/wcpcpy.c: Move to ...
+ * sysdeps/s390/wcpcpy.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/ifunc-wcpcpy.h: New file.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/multiarch/Makefile
+ (sysdep_routines): Remove wcscpy variants.
+ * sysdeps/s390/Makefile (sysdep_routines): Add wcscpy variants.
+ * sysdeps/s390/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Refactor ifunc handling for wcscpy.
+ * sysdeps/s390/multiarch/wcscpy-c.c: Move to ...
+ * sysdeps/s390/wcscpy-c.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/wcscpy-vx.S: Move to ...
+ * sysdeps/s390/wcscpy-vx.S: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/wcscpy.c: Move to ...
+ * sysdeps/s390/wcscpy.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/ifunc-wcscpy.h: New file.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/multiarch/Makefile
+ (sysdep_routines): Remove wcsnlen variants.
+ * sysdeps/s390/Makefile (sysdep_routines): Add wcsnlen variants.
+ * sysdeps/s390/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Refactor ifunc handling for wcsnlen.
+ * sysdeps/s390/multiarch/wcsnlen-c.c: Move to ...
+ * sysdeps/s390/wcsnlen-c.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/wcsnlen-vx.S: Move to ...
+ * sysdeps/s390/wcsnlen-vx.S: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/wcsnlen.c: Move to ...
+ * sysdeps/s390/wcsnlen.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/ifunc-wcsnlen.h: New file.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/multiarch/Makefile
+ (sysdep_routines): Remove wcslen variants.
+ * sysdeps/s390/Makefile (sysdep_routines): Add wcslen variants.
+ * sysdeps/s390/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Refactor ifunc handling for wcslen.
+ * sysdeps/s390/multiarch/wcslen-c.c: Move to ...
+ * sysdeps/s390/wcslen-c.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/wcslen-vx.S: Move to ...
+ * sysdeps/s390/wcslen-vx.S: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/wcslen.c: Move to ...
+ * sysdeps/s390/wcslen.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/ifunc-wcslen.h: New file.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/multiarch/Makefile
+ (sysdep_routines): Remove memrchr variants.
+ * sysdeps/s390/Makefile (sysdep_routines): Add memrchr variants.
+ * sysdeps/s390/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Refactor ifunc handling for memrchr.
+ * sysdeps/s390/multiarch/memrchr-c.c: Move to ...
+ * sysdeps/s390/memrchr-c.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/memrchr-vx.S: Move to ...
+ * sysdeps/s390/memrchr-vx.S: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/memrchr.c: Move to ...
+ * sysdeps/s390/memrchr.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/ifunc-memrchr.h: New file.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/multiarch/Makefile
+ (sysdep_routines): Remove memccpy variants.
+ * sysdeps/s390/Makefile (sysdep_routines): Add memccpy variants.
+ * sysdeps/s390/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Refactor ifunc handling for memccpy.
+ * sysdeps/s390/multiarch/memccpy-c.c: Move to ...
+ * sysdeps/s390/memccpy-c.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/memccpy-vx.S: Move to ...
+ * sysdeps/s390/memccpy-vx.S: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/memccpy.c: Move to ...
+ * sysdeps/s390/memccpy.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/ifunc-memccpy.h: New file.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/multiarch/Makefile
+ (sysdep_routines): Remove rawmemchr variants.
+ * sysdeps/s390/Makefile (sysdep_routines): Add rawmemchr variants.
+ * sysdeps/s390/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Refactor ifunc handling for rawmemchr.
+ * sysdeps/s390/multiarch/rawmemchr-c.c: Move to ...
+ * sysdeps/s390/rawmemchr-c.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/rawmemchr-vx.S: Move to ...
+ * sysdeps/s390/rawmemchr-vx.S: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/rawmemchr.c: Move to ...
+ * sysdeps/s390/rawmemchr.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/ifunc-rawmemchr.h: New file.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/multiarch/Makefile
+ (sysdep_routines): Remove memchr variants.
+ * sysdeps/s390/Makefile (sysdep_routines): Add memchr variants.
+ * sysdeps/s390/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Refactor ifunc handling for memchr.
+ * sysdeps/s390/multiarch/memchr-vx.S: Move to ...
+ * sysdeps/s390/memchr-vx.S: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/memchr.c: Move to ...
+ * sysdeps/s390/memchr.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/ifunc-memchr.h: New file.
+ * sysdeps/s390/s390-64/memchr.S: Move to ...
+ * sysdeps/s390/memchr-z900.S: ... here and adjust to be usable
+ for 31/64bit and ifunc handling.
+ * sysdeps/s390/s390-32/multiarch/memchr.c: Delete file.
+ * sysdeps/s390/s390-64/multiarch/memchr.c: Likewise.
+ * sysdeps/s390/s390-32/memchr.S: Likewise.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/multiarch/Makefile
+ (sysdep_routines): Remove strcspn variants.
+ * sysdeps/s390/Makefile (sysdep_routines): Add strcspn variants.
+ * sysdeps/s390/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Refactor ifunc handling for strcspn.
+ * sysdeps/s390/multiarch/strcspn-c.c: Move to ...
+ * sysdeps/s390/strcspn-c.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/strcspn-vx.S: Move to ...
+ * sysdeps/s390/strcspn-vx.S: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/strcspn.c: Move to ...
+ * sysdeps/s390/strcspn.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/ifunc-strcspn.h: New file.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/multiarch/Makefile
+ (sysdep_routines): Remove strpbrk variants.
+ * sysdeps/s390/Makefile (sysdep_routines): Add strpbrk variants.
+ * sysdeps/s390/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Refactor ifunc handling for strpbrk.
+ * sysdeps/s390/multiarch/strpbrk-c.c: Move to ...
+ * sysdeps/s390/strpbrk-c.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/strpbrk-vx.S: Move to ...
+ * sysdeps/s390/strpbrk-vx.S: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/strpbrk.c: Move to ...
+ * sysdeps/s390/strpbrk.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/ifunc-strpbrk.h: New file.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/multiarch/Makefile
+ (sysdep_routines): Remove strspn variants.
+ * sysdeps/s390/Makefile (sysdep_routines): Add strspn variants.
+ * sysdeps/s390/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Refactor ifunc handling for strspn.
+ * sysdeps/s390/multiarch/strspn-c.c: Move to ...
+ * sysdeps/s390/strspn-c.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/strspn-vx.S: Move to ...
+ * sysdeps/s390/strspn-vx.S: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/strspn.c: Move to ...
+ * sysdeps/s390/strspn.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/ifunc-strspn.h: New file.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/multiarch/Makefile
+ (sysdep_routines): Remove strrchr variants.
+ * sysdeps/s390/Makefile (sysdep_routines): Add strrchr variants.
+ * sysdeps/s390/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Refactor ifunc handling for strrchr.
+ * sysdeps/s390/multiarch/strrchr-c.c: Move to ...
+ * sysdeps/s390/strrchr-c.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/strrchr-vx.S: Move to ...
+ * sysdeps/s390/strrchr-vx.S: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/strrchr.c: Move to ...
+ * sysdeps/s390/strrchr.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/ifunc-strrchr.h: New file.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/multiarch/Makefile
+ (sysdep_routines): Remove strchrnul variants.
+ * sysdeps/s390/Makefile (sysdep_routines): Add strchrnul variants.
+ * sysdeps/s390/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Refactor ifunc handling for strchrnul.
+ * sysdeps/s390/multiarch/strchrnul-c.c: Move to ...
+ * sysdeps/s390/strchrnul-c.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/strchrnul-vx.S: Move to ...
+ * sysdeps/s390/strchrnul-vx.S: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/strchrnul.c: Move to ...
+ * sysdeps/s390/strchrnul.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/ifunc-strchrnul.h: New file.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/multiarch/Makefile
+ (sysdep_routines): Remove strchr variants.
+ * sysdeps/s390/Makefile (sysdep_routines): Add strchr variants.
+ * sysdeps/s390/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Refactor ifunc handling for strchr.
+ * sysdeps/s390/multiarch/strchr-c.c: Move to ...
+ * sysdeps/s390/strchr-c.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/strchr-vx.S: Move to ...
+ * sysdeps/s390/strchr-vx.S: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/strchr.c: Move to ...
+ * sysdeps/s390/strchr.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/ifunc-strchr.h: New file.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/multiarch/Makefile
+ (sysdep_routines): Remove strncmp variants.
+ * sysdeps/s390/Makefile (sysdep_routines): Add strncmp variants.
+ * sysdeps/s390/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Refactor ifunc handling for strncmp.
+ * sysdeps/s390/multiarch/strncmp-c.c: Move to ...
+ * sysdeps/s390/strncmp-c.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/strncmp-vx.S: Move to ...
+ * sysdeps/s390/strncmp-vx.S: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/strncmp.c: Move to ...
+ * sysdeps/s390/strncmp.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/ifunc-strncmp.h: New file.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/multiarch/Makefile
+ (sysdep_routines): Remove strcmp variants.
+ * sysdeps/s390/Makefile (sysdep_routines): Add strcmp variants.
+ * sysdeps/s390/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Refactor ifunc handling for strcmp.
+ * sysdeps/s390/multiarch/strcmp-vx.S: Move to ...
+ * sysdeps/s390/strcmp-vx.S: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/strcmp.c: Move to ...
+ * sysdeps/s390/strcmp.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/ifunc-strcmp.h: New file.
+ * sysdeps/s390/s390-64/strcmp.S: Move to ...
+ * sysdeps/s390/strcmp-z900.S: ... here and adjust to be usable
+ for 31/64bit and ifunc handling.
+ * sysdeps/s390/s390-32/multiarch/strcmp.c: Delete file.
+ * sysdeps/s390/s390-64/multiarch/strcmp.c: Likewise.
+ * sysdeps/s390/s390-32/strcmp.S: Likewise.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/multiarch/Makefile
+ (sysdep_routines): Remove strncat variants.
+ * sysdeps/s390/Makefile (sysdep_routines): Add strncat variants.
+ * sysdeps/s390/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Refactor ifunc handling for strncat.
+ * sysdeps/s390/multiarch/strncat-c.c: Move to ...
+ * sysdeps/s390/strncat-c.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/strncat-vx.S: Move to ...
+ * sysdeps/s390/strncat-vx.S: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/strncat.c: Move to ...
+ * sysdeps/s390/strncat.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/ifunc-strncat.h: New file.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/multiarch/Makefile
+ (sysdep_routines): Remove strcat variants.
+ * sysdeps/s390/Makefile (sysdep_routines): Add strcat variants.
+ * sysdeps/s390/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Refactor ifunc handling for strcat.
+ * sysdeps/s390/multiarch/strcat-c.c: Move to ...
+ * sysdeps/s390/strcat-c.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/strcat-vx.S: Move to ...
+ * sysdeps/s390/strcat-vx.S: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/strcat.c: Move to ...
+ * sysdeps/s390/strcat.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/ifunc-strcat.h: New file.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/multiarch/Makefile
+ (sysdep_routines): Remove stpncpy variants.
+ * sysdeps/s390/Makefile (sysdep_routines): Add stpncpy variants.
+ * sysdeps/s390/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Refactor ifunc handling for stpncpy.
+ * sysdeps/s390/multiarch/stpncpy-c.c: Move to ...
+ * sysdeps/s390/stpncpy-c.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/stpncpy-vx.S: Move to ...
+ * sysdeps/s390/stpncpy-vx.S: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/stpncpy.c: Move to ...
+ * sysdeps/s390/stpncpy.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/ifunc-stpncpy.h: New file.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/multiarch/Makefile
+ (sysdep_routines): Remove strncpy variants.
+ * sysdeps/s390/Makefile (sysdep_routines): Add strncpy variants.
+ * sysdeps/s390/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Refactor ifunc handling for strncpy.
+ * sysdeps/s390/multiarch/strncpy-vx.S: Move to ...
+ * sysdeps/s390/strncpy-vx.S: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/strncpy.c: Move to ...
+ * sysdeps/s390/strncpy.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/ifunc-strncpy.h: New file.
+ * sysdeps/s390/s390-64/strncpy.S: Move to ...
+ * sysdeps/s390/s390-64/strncpy-z900.S: ... here
+ and adjust ifunc handling.
+ * sysdeps/s390/s390-32/strncpy.S: Move to ...
+ * sysdeps/s390/s390-32/strncpy-z900.S: ... here
+ and adjust ifunc handling.
+ * sysdeps/s390/s390-32/multiarch/strncpy.c: Delete file.
+ * sysdeps/s390/s390-64/multiarch/strncpy.c: Likewise.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/multiarch/Makefile
+ (sysdep_routines): Remove stpcpy variants.
+ * sysdeps/s390/Makefile (sysdep_routines): Add stpcpy variants.
+ * sysdeps/s390/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Refactor ifunc handling for stpcpy.
+ * sysdeps/s390/multiarch/stpcpy-c.c: Move to ...
+ * sysdeps/s390/stpcpy-c.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/stpcpy-vx.S: Move to ...
+ * sysdeps/s390/stpcpy-vx.S: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/stpcpy.c: Move to ...
+ * sysdeps/s390/stpcpy.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/ifunc-stpcpy.h: New file.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/multiarch/Makefile
+ (sysdep_routines): Remove strcpy variants.
+ * sysdeps/s390/Makefile (sysdep_routines): Add strcpy variants.
+ * sysdeps/s390/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Refactor ifunc handling for strcpy.
+ * sysdeps/s390/multiarch/strcpy-vx.S: Move to ...
+ * sysdeps/s390/strcpy-vx.S: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/strcpy.c: Move to ...
+ * sysdeps/s390/strcpy.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/ifunc-strcpy.h: New file.
+ * sysdeps/s390/s390-64/strcpy.S: Move to ...
+ * sysdeps/s390/strcpy-z900.S: ... here and adjust to be usable
+ for 31/64bit and ifunc handling.
+ * sysdeps/s390/s390-32/multiarch/strcpy.c: Delete file.
+ * sysdeps/s390/s390-64/multiarch/strcpy.c: Likewise.
+ * sysdeps/s390/s390-32/strcpy.S: Likewise.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/multiarch/Makefile
+ (sysdep_routines): Remove strnlen variants.
+ * sysdeps/s390/Makefile (sysdep_routines): Add strnlen variants.
+ * sysdeps/s390/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Refactor ifunc handling for strnlen.
+ * sysdeps/s390/multiarch/strnlen-c.c: Move to ...
+ * sysdeps/s390/strnlen-c.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/strnlen-vx.S: Move to ...
+ * sysdeps/s390/strnlen-vx.S: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/strnlen.c: Move to ...
+ * sysdeps/s390/strnlen.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/ifunc-strnlen.h: New file.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/multiarch/Makefile
+ (sysdep_routines): Remove strlen variants.
+ * sysdeps/s390/Makefile (sysdep_routines): Add strlen variants.
+ * sysdeps/s390/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Refactor ifunc handling for strlen.
+ * sysdeps/s390/multiarch/strlen-c.c: Move to ...
+ * sysdeps/s390/strlen-c.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/strlen-vx.S: Move to ...
+ * sysdeps/s390/strlen-vx.S: ... here and adjust ifunc handling.
+ * sysdeps/s390/multiarch/strlen.c: Move to ...
+ * sysdeps/s390/strlen.c: ... here and adjust ifunc handling.
+ * sysdeps/s390/ifunc-strlen.h: New file.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/Makefile (sysdep_routines): Add memmem variants.
+ * sysdeps/s390/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Add ifunc variants for memmem.
+ * sysdeps/s390/ifunc-memmem.h: New file.
+ * sysdeps/s390/memmem.c: Likewise.
+ * sysdeps/s390/memmem-c.c: Likewise.
+ * sysdeps/s390/memmem-vx.c: Likewise.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/Makefile (sysdep_routines): Add strstr variants.
+ * sysdeps/s390/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Add ifunc variants for strstr.
+ * sysdeps/s390/ifunc-strstr.h: New file.
+ * sysdeps/s390/strstr.c: Likewise.
+ * sysdeps/s390/strstr-c.c: Likewise.
+ * sysdeps/s390/strstr-vx.c: Likewise.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/Makefile (sysdep_routines): Add memmove-c.
+ * sysdeps/s390/ifunc-memcpy.h (HAVE_MEMMOVE_IFUNC,
+ HAVE_MEMMOVE_IFUNC_AND_VX_SUPPORT, MEMMOVE_DEFAULT,
+ HAVE_MEMMOVE_C, MEMMOVE_C, HAVE_MEMMOVE_Z13, MEMMOVE_Z13):
+ New defines.
+ * sysdeps/s390/memcpy-z900.S: Add z13 memmove implementation.
+ * sysdeps/s390/memmove-c.c: New file.
+ * sysdeps/s390/memmove.c: Likewise.
+ * sysdeps/s390/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Add ifunc variants for memmove.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * config.h.in (HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT): New undefine.
+ * sysdeps/s390/configure.ac: Add check for z13 support.
+ * sysdeps/s390/configure: Regenerated.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/memcopy.h: New file.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/s390-32/bcopy.S: Remove.
+ * sysdeps/s390/s390-64/bcopy.S: Likewise.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/ifunc-memcpy.h: New File.
+ * sysdeps/s390/memcpy.S: Move to ...
+ * sysdeps/s390/memcpy-z900.S ... here.
+ Move implementations from memcpy-s390x.s to here.
+ * sysdeps/s390/multiarch/memcpy-s390x.S: Delete File.
+ * sysdeps/s390/multiarch/Makefile (sysdep_routines):
+ Remove memcpy/mempcpy variants.
+ * sysdeps/s390/Makefile (sysdep_routines):
+ Add memcpy/mempcpy variants.
+ * sysdeps/s390/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Adjust ifunc variants for
+ memcpy and mempcpy.
+ * sysdeps/s390/multiarch/memcpy.c: Move ifunc resolver
+ to ...
+ * sysdeps/s390/memcpy.c: ... here.
+ Adjust ifunc variants for memcpy.
+ * sysdeps/s390/multiarch/mempcpy.c: Move to ...
+ * sysdeps/s390/mempcpy.c: ... here.
+ Adjust ifunc variants for mempcpy.
+ * sysdeps/s390/mempcpy.S: Delete file.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/s390-64/memcpy.S: Move to ...
+ * sysdeps/s390/memcpy.S: ... here.
+ Adjust to be usable for 31/64bit.
+ * sysdeps/s390/s390-32/memcpy.S: Delete File.
+ * sysdeps/s390/multiarch/Makefile (sysdep_routines): Add memcpy.
+ * sysdeps/s390/s390-32/multiarch/Makefile: Delete file.
+ * sysdeps/s390/s390-64/multiarch/Makefile: Likewise.
+ * sysdeps/s390/s390-64/multiarch/memcpy-s390x.S: Move to ...
+ * sysdeps/s390/multiarch/memcpy-s390x.S: ... here.
+ Adjust to be usable for 31/64bit.
+ * sysdeps/s390/s390-32/multiarch/memcpy-s390.S: Delete File.
+ * sysdeps/s390/s390-64/multiarch/memcpy.c: Move to ...
+ * sysdeps/s390/multiarch/memcpy.c: ... here.
+ * sysdeps/s390/s390-32/multiarch/memcpy.c: Delete File.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/ifunc-memcmp.h: New File.
+ * sysdeps/s390/memcmp.S: Move to ...
+ * sysdeps/s390/memcmp-z900.S ... here.
+ Move implementations from memcmp-s390x.s to here.
+ * sysdeps/s390/multiarch/memcmp-s390x.S: Delete File.
+ * sysdeps/s390/multiarch/Makefile (sysdep_routines):
+ Remove memcmp variants.
+ * sysdeps/s390/Makefile (sysdep_routines):
+ Add memcmp variants.
+ * sysdeps/s390/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Adjust ifunc variants for
+ memcmp.
+ * sysdeps/s390/multiarch/memcmp.c: Move ifunc resolver
+ to ...
+ * sysdeps/s390/memcmp.c: ... here.
+ Adjust ifunc variants for memcmp.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/s390-64/memcmp.S: Move to ...
+ * sysdeps/s390/memcmp.S: ... here.
+ Adjust to be usable for 31/64bit.
+ * sysdeps/s390/s390-32/memcmp.S: Delete File.
+ * sysdeps/s390/multiarch/Makefile (sysdep_routines): Add memcmp.
+ * sysdeps/s390/s390-32/multiarch/Makefile (sysdep_routines):
+ Remove memcmp.
+ * sysdeps/s390/s390-64/multiarch/Makefile: Likewise.
+ * sysdeps/s390/s390-64/multiarch/memcmp-s390x.S: Move to ...
+ * sysdeps/s390/multiarch/memcmp-s390x.S: ... here.
+ Adjust to be usable for 31/64bit.
+ * sysdeps/s390/s390-32/multiarch/memcmp-s390.S: Delete File.
+ * sysdeps/s390/s390-64/multiarch/memcmp.c: Move to ...
+ * sysdeps/s390/multiarch/memcmp.c: ... here.
+ * sysdeps/s390/s390-32/multiarch/memcmp.c: Delete File.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/s390-32/bzero.S: Delete file.
+ * sysdeps/s390/s390-64/bzero.S: Likewise.
+ * sysdeps/s390/Makefile (sysdep_routines): Add bzero.
+ * sysdeps/s390/bzero.c: New file.
+ * sysdeps/s390/memset-z900.S: Add bzero entry points.
+ * sysdeps/s390/ifunc-memset.h: Add bzero function macros.
+ * sysdeps/s390/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Add bzero ifunc variants.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/ifunc-memset.h: New File.
+ * sysdeps/s390/memset.S: Move to ...
+ * sysdeps/s390/memset-z900.S ... here.
+ Move implementations from memset-s390x.s to here.
+ * sysdeps/s390/multiarch/memset-s390x.S: Delete File.
+ * sysdeps/s390/multiarch/Makefile (sysdep_routines):
+ Remove memset variants.
+ * sysdeps/s390/Makefile (sysdep_routines):
+ Add memset variants.
+ * sysdeps/s390/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Adjust ifunc variants for
+ memset.
+ * sysdeps/s390/multiarch/memset.c: Move ifunc resolver
+ to ...
+ * sysdeps/s390/memset.c: ... here.
+ Adjust ifunc variants for memset.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/s390-64/memset.S: Move to ...
+ * sysdeps/s390/memset.S: ... here.
+ Adjust to be usable for 31/64bit.
+ * sysdeps/s390/s390-32/memset.S: Delete File.
+ * sysdeps/s390/multiarch/Makefile (sysdep_routines): Add memset.
+ * sysdeps/s390/s390-32/multiarch/Makefile (sysdep_routines):
+ Remove memset.
+ * sysdeps/s390/s390-64/multiarch/Makefile: Likewise.
+ * sysdeps/s390/s390-64/multiarch/memset-s390x.S: Move to ...
+ * sysdeps/s390/multiarch/memset-s390x.S: ... here.
+ Adjust to be usable for 31/64bit.
+ * sysdeps/s390/s390-32/multiarch/memset-s390.S: Delete File.
+ * sysdeps/s390/s390-64/multiarch/memset.c: Move to ...
+ * sysdeps/s390/multiarch/memset.c: ... here.
+ * sysdeps/s390/s390-32/multiarch/memset.c: Delete File.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/multiarch/ifunc-resolve.h
+ (s390_libc_ifunc_init, s390_libc_ifunc,
+ s390_vx_libc_ifunc2_redirected): Use hwcap instead of dl_hwcap.
+
+2018-12-18 Stefan Liebler <stli@linux.ibm.com>
+
+ * config.h.in (HAVE_S390_MIN_Z10_ZARCH_ASM_SUPPORT): New undefine.
+ * sysdeps/s390/configure.ac: Add check for z10 support.
+ * sysdeps/s390/configure: Regenerated.
+
+2018-12-18 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/i386/atomic-machine.h: Merged with ...
+ * sysdeps/x86_64/atomic-machine.h: To ...
+ * sysdeps/x86/atomic-machine.h: This. New file.
+
+2018-12-18 Florian Weimer <fweimer@redhat.com>
+
+ Rewrite locale/gen-translit.pl in Python.
+ * locale/Makefile (generated): Add C-translit.h.
+ (before-compile): Add $(objpfx)C-translit.h.
+ (C-translit.h): Move to $(objpfx). Create target directory.
+ Build using Python script.
+ * locale/gen-translit.py: New file.
+ * locale/gen-translit.pl: Remove file.
+ * locale/C-translit.h.in: Change comment character to '#' for
+ easier parsing without a C preprocessor.
+ * locale/C-translit.h: Remove generated file.
+ * manual/install.texi (Tools for Compilation): Do not mention
+ C-translit.h.
+ * scripts/build-many-glibcs.py (Context.fix_glibc_timestamps):
+ Remove locale/C-translit.h.
+ * scripts/update-copyrights: Likewise.
+ * INSTALL: Regenerate.
+
+2018-12-18 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #23995]
+ * localedata/locales/bi_VU: Remove executable bit from file.
+
+2018-12-17 Albert ARIBAUD <albert.aribaud@3adev.fr>
+
+ * include/time.h
+ (__localtime64): Add.
+ * manual/maint.texi: Document Y2038 symbol handling.
+ * time/localtime.c
+ (__localtime64): Add.
+ [__TIMESIZE != 64] (__localtime): Turn into a wrapper.
+
+2018-12-17 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/ia64/sysdep.h (ASM_CLOBBERS_6_COMMON):
+ Do not clobber r12.
+
+ * scripts/glibcextract.py (compare_macro_consts): Take parameters
+ to allow extra macros from first or second sources.
+ * sysdeps/unix/sysv/linux/tst-mman-consts.py: New file.
+ * sysdeps/unix/sysv/linux/Makefile [$(subdir) = misc]
+ (tests-special): Add $(objpfx)tst-mman-consts.out.
+ ($(objpfx)tst-mman-consts.out): New makefile target.
+
+2018-12-17 Mao Han <han_mao@c-sky.com>
+
+ * sysdeps/unix/sysv/linux/Makefile: Add statx_cp.c.
+ * sysdeps/unix/sysv/linux/fxstat64.c: Add conditionals for kernel
+ without stat64 system call support.
+ * sysdeps/unix/sysv/linux/fxstatat64.c: Likewise.
+ * sysdeps/unix/sysv/linux/generic/wordsize-32/fxstat.c: Likewise.
+ * sysdeps/unix/sysv/linux/generic/wordsize-32/fxstatat.c: Likewise.
+ * sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat.c: Likewise.
+ * sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat64.c: Likewise.
+ * sysdeps/unix/sysv/linux/generic/wordsize-32/xstat.c: Likewise.
+ * sysdeps/unix/sysv/linux/generic/wordsize-32/xstat64.c: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/statx_cp.c: New file.
+ * sysdeps/unix/sysv/linux/statx_cp.c: Likewise.
+ * sysdeps/unix/sysv/linux/statx_cp.h: Likewise.
+ * sysdeps/unix/sysv/linux/wordsize-64/statx_cp.c: Likewise.
+
+2018-12-15 Paul Eggert <eggert@cs.ucla.edu>
+
+ regex: fix storage-exhaustion error
+ [BZ #18040]
+ * posix/regexec.c (get_subexp):
+ Do not continue if storage is exhausted.
+
+2018-12-15 Assaf Gordon <assafgordon@gmail.com>
+
+ regex: fix heap-use-after-free error
+ [BZ #18040]
+ Problem reported by Saito Takaaki <tails.saito@gmail.com> in
+ https://debbugs.gnu.org/32592
+ Call stack get_subexp->get_subexp_sub->clean_state_log_if_needed may
+ call extend_buffers which reallocates the re_string_t internal buffer.
+ Local variable 'buf' was not updated in such case, resulting in
+ use-after-free.
+ * posix/regexec.c (get_subexp): Update 'buf' after call to
+ get_subexp_sub.
+
+2018-12-15 Florian Weimer <fweimer@redhat.com>
+
+ * support/blob_repeat.c (check_mul_overflow_size_t): New function.
+ (minimum_stride_size): Use it.
+ (support_blob_repeat_allocate): Likewise.
+
+2018-12-14 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/x86/fpu/bits/mathinline.h (asinh): Remove inline
+ definition.
+ (acosh): Likewise.
+ (atanh): Likewise.
+
+2018-12-14 Florian Weimer <fweimer@redhat.com>
+
+ * manual/process.texi (Process Creation Concepts): Remove
+ documentation of process (ID) lifetime. List more process
+ creation functions. Reference Process Identification section.
+ (Process Identification): Add information about process ID
+ lifetime. Describe Linux thread/task IDs.
+ * manual/signal.texi (Signaling Another Process): Mention that the
+ signal is always sent to the process.
+
+2018-12-14 Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
+
+ * misc/Makefile (tests): Remove tst-efgcvt. Add tst-dbl-efgcvt
+ and tst-ldbl-efgcvt.
+ * misc/tst-efgcvt.c: Renamed to misc/tst-efgcvt-template.c.
+ * misc/tst-efgcvt-template.c: Renamed from misc/tst-efgcvt.c.
+ (struct testcase, efcvt_func, efcvt_r_func, ecvt_tests)
+ (fcvt_tests, output_error, output_r_error, do_test): Use the
+ macros defined in tst-dbl-efgcvt.c and tst-ldbl-efgcvt.c to:
+ select the type of floating-point variables and arguments; to
+ produce extra tests for double and conversion specifiers for
+ printf; and to set the names of called functions.
+ * misc/tst-dbl-efgcvt.c: New file that defines the macros used
+ in tst-efgcvt-template.c.
+ * misc/tst-ldbl-efgcvt.c: Likewise.
+
+2018-12-14 Stefan Liebler <stli@linux.ibm.com>
+
+ * nss/Makefile (tst-nss-test3.out): New rule.
+
+2018-12-13 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/mach/hurd/i386/init-first.c (_hurd_stack_setup): Do not
+ clobber sp.
+
+2018-12-13 fanjinke <fanjinke@hygon.cn>
+
+ * sysdeps/x86/cpu-features.c (init_cpu_features): Check for
+ "HygonGenuine".
+
+2018-12-13 Andreas Schwab <schwab@suse.de>
+
+ [BZ #23861]
+ * nptl/pthread_rwlock_common.c: Reindent. Fix typos.
+ (__pthread_rwlock_rdlock_full): Update expected value for
+ __readers while waiting on PTHREAD_RWLOCK_RWAITING.
+ * nptl/tst-rwlock-pwn.c: New file.
+ * nptl/Makefile (tests): Add tst-rwlock-pwn.
+
+2018-12-12 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/x86/fpu/bits/mathinline.h (hypot): Remove inline
+ definition.
+
+2018-12-12 Leonardo Sandoval <leonardo.sandoval.gonzalez@intel.com>
+
+ * benchtests/scripts/compare_bench.py (do_compare): write to
+ stderr in casestat is not present.
+ * benchtests/scripts/compare_bench.py (plot_graphs): write to
+ stderr in case timings field is not present. Also string showing
+ the output filename goes into the stderr.
+
+2018-12-12 Leonardo Sandoval <leonardo.sandoval.gonzalez@intel.com>
+
+ * benchtests/scripts/compare_bench.py (do_compare): Catch KeyError
+ and ZeroDivisorError exceptions.
+ * benchtests/scripts/compare_bench.py (compare_runs): Use stats
+ argument to loop through user provided statistics.
+ * benchtests/scripts/compare_bench.py (main): Include the --stats
+ argument.
+
+2018-12-12 Leonardo Sandoval <leonardo.sandoval.gonzalez@intel.com>
+
+ * benchtests/scripts/compare_bench.py (compare_runs): Continue
+ instead of return.
+
+2018-12-12 Florian Weimer <fweimer@redhat.com>
+
+ * sysdeps/posix/timespec_get.c: Add missing “any later versionâ€
+ clause to copyright header.
+
+2018-12-12 Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
+
+ [BZ #23614]
+ * sysdeps/powerpc/powerpc64/addmul_1.S (FUNC): Add CFI offset for
+ registers saved in the stack frame.
+ * sysdeps/powerpc/powerpc64/lshift.S (__mpn_lshift): Likewise.
+ * sysdeps/powerpc/powerpc64/mul_1.S (__mpn_mul_1): Likewise.
+
+2018-12-11 Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
+
+ * include/bits/monetary-ldbl.h: New file.
+ * include/bits/printf-ldbl.h: Likewise.
+ * include/bits/stdio-ldbl.h: Likewise.
+ * include/bits/stdlib-ldbl.h: Likewise.
+ * include/bits/syslog-ldbl.h: Likewise.
+ * include/bits/wchar-ldbl.h: Likewise.
+
+2018-12-11 Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
+
+ * libio/libio.h: Remove redirection for _IO_vfprintf.
+
+2018-12-11 Andreas Schwab <schwab@suse.de>
+
+ * Makerules: Remove all references to abilist-pattern.
+ (update-all-abi): Simplify find expression.
+
+2018-12-11 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ [BZ #23961]
+ * math/auto-libm-test-in: Add new test case.
+ * math/auto-libm-test-out-pow: Regenerated.
+ * sysdeps/ieee754/flt-32/e_powf.c (__powf): Fix overflow check.
+
+2018-12-10 DJ Delorie <dj@redhat.com>
+
+ [BZ #23948]
+ * support/test-container.c: Move postclean step to before we
+ change namespaces.
+
+2018-12-10 Joseph Myers <joseph@codesourcery.com>
+
+ * scripts/gen-as-const.py (main): Handle --python option.
+ * scripts/gen-py-const.awk: Remove.
+ * Makerules (py-const-script): Use gen-as-const.py.
+ ($(py-const)): Likewise.
+ * nptl/nptl-printers.py (MutexPrinter.read_status_no_robust): Mask
+ with 0xffffffff together with ~(PTHREAD_MUTEX_PRIO_CEILING_MASK).
+ (MutexAttributesPrinter.read_values): Mask with 0xffffffff
+ together with ~PTHREAD_MUTEXATTR_FLAG_BITS and
+ ~PTHREAD_MUTEX_NO_ELISION_NP.
+ * manual/README.pretty-printers: Update reference to
+ gen-py-const.awk.
+
+ * scripts/glibcextract.py: New file.
+ * scripts/gen-as-const.py: Do not import os.path, re, subprocess
+ or tempfile. Import glibcexctract.
+ (compute_c_consts): Remove. Moved to glibcextract.py.
+ (gen_test): Update reference to compute_c_consts.
+ (main): Likewise.
+ * sysdeps/unix/sysv/linux/tst-signal-numbers.py: New file.
+ * sysdeps/unix/sysv/linux/tst-signal-numbers.sh: Remove.
+ * sysdeps/unix/sysv/linux/Makefile
+ ($(objpfx)tst-signal-numbers.out): Use tst-signal-numbers.py.
+ Redirect stderr as well as stdout.
+
+2018-12-10 Rafael Ãvila de Espíndola <rafael@espindo.la>
+
+ [BZ #19767]
+ * sysdeps/unix/sysv/linux/mips/init-first.c: Remove #ifdef SHARED.
+ * sysdeps/unix/sysv/linux/mips/libc-vdso.h: Remove #ifdef SHARED.
+ * sysdeps/unix/sysv/linux/mips/mips32/sysdep.h: Define
+ ALWAYS_USE_VSYSCALL.
+ * sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h: Define
+ ALWAYS_USE_VSYSCALL.
+ * sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h: Define
+ ALWAYS_USE_VSYSCALL.
+
+2018-12-10 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #23972]
+ * sysdeps/unix/sysv/linux/getdents64.c (handle_overflow): Check
+ offset instead of count for clarity. Fix typo in comment.
+ (__old_getdents64): Keep track of previous offset. Use it to call
+ handle_overflow.
+ * sysdeps/unix/sysv/linux/tst-readdir64-compat.c (do_test): Check
+ that d_off is never zero.
+
+2018-12-10 Andreas Schwab <schwab@suse.de>
+
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/*-le.abilist: Move to
+ sysdeps/unix/sysv/linux/powerpc/powerpc64/le/*.abilist.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/*.abilist: Move to
+ sysdeps/unix/sysv/linux/powerpc/powerpc64/be/*.abilist.
+ * sysdeps/powerpc/Makefile (abilist-pattern): Don't define.
+
+2018-12-10 Joseph Myers <joseph@codesourcery.com>
+
+ * timezone/private.h: Update from tzcode 2018g.
+ * timezone/tzfile.h: Likewise.
+ * timezone/tzselect.ksh: Likewise.
+ * timezone/zdump.c: Likewise.
+ * timezone/zic.c: Likewise.
+
+2018-12-08 Paul Pluzhnikov <ppluzhnikov@google.com>
+
+ [BZ #23490]
+ * sysdeps/unix/sysv/linux/x86/tst-cet-property-2.c
+ (do_test): Adjust buffer size and fix format.
+
+2018-12-07 DJ Delorie <dj@redhat.com>
+
+ [BZ #23907]
+ * malloc/tst-tcfree3.c: New.
+ * malloc/Makefile: Add it.
+
+2018-12-07 H.J. Lu <hongjiu.lu@intel.com>
+
+ * include/sched.h (__getcpu): Don't use __typeof__ (getcpu).
+
+2018-12-07 Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
+
+ * libio/libioP.h (SCANF_LDBL_USES_FLOAT128): New macro to be
+ used as a mask for the mode argument of __vfscanf_internal and
+ __vfwscanf_internal.
+ * stdio-common/vfscanf-internal.c
+ [defined COMPILE_WSCANF && __HAVE_FLOAT128_UNLIKE_LDBL]
+ (__strtof128_internal): Define to __wcstof128_internal.
+ [__HAVE_FLOAT128_UNLIKE_LDBL] (__vfscanf_internal): Call
+ __strtof128_internal or __wcstof128_internal when the format of
+ long double is the same as _Float128.
+
+2018-12-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * include/unistd.h (__confstr): Add prototype and hidden prototype.
+ * posix/confstr.c (confstr): Rename to __confstr.
+ (__confstr): Add hidden def.
+ (confstr): Add weak alias for __confstr.
+ * sysdeps/mach/hurd/spawni.c (__spawni): Call __confstr instead of
+ confstr.
+
+2018-12-07 H.J. Lu <hongjiu.lu@intel.com>
+
+ * NEWS: Mention getcpu.
+ * include/sched.h (__getcpu): New libc_hidden_proto.
+ * manual/resource.texi: Document getcpu.
+ * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Add getcpu.
+ * sysdeps/unix/sysv/linux/Versions (GLIBC_2.29): Add getcpu.
+ * sysdeps/unix/sysv/linux/aarch64/libc.abilist: Add getcpu.
+ * sysdeps/unix/sysv/linux/alpha/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/arm/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/hppa/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/i386/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/ia64/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/microblaze/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/nios2/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sh/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/bits/sched.h (getcpu): New prototype.
+ * sysdeps/unix/sysv/linux/getcpu.c: New file.
+ * sysdeps/unix/sysv/linux/tst-skeleton-affinity.c (test_size):
+ Also check getcpu.
+
+2018-12-07 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * sysdeps/mach/hurd/spawni.c (child_lookup_under, child_fchdir): New
+ functions.
+ (__spawni): Handle spawn_do_fchdir by calling child_fchdir.
+
+2018-12-07 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #17405]
+ * posix/Makefile (routines): Add spawn_faction_addfchdir.
+ * posix/Versions (GLIBC_2.29): Export
+ posix_spawn_file_actions_addfchdir_np.
+ * posix/spawn.h (posix_spawn_file_actions_addfchdir_np): Declare.
+ * posix/spawn_faction_destroy.c
+ (__posix_spawn_file_actions_destroy): Handle spawn_do_fchdir.
+ * posix/spawn_int.h (struct __spawn_action): Add spawn_do_fchdir
+ and the field action.fchdir_action.
+ * posix/tst-spawn-chdir.c (add_chdir): New function.
+ (do_test): Add do_fchdir loop. Call add_chdir.
+ * sysdeps/posix/spawni.c (__spawni_child): Handle spawn_do_fchdir.
+ * sysdeps/unix/sysv/linux/spawni.c (__spawni_child): Likewise.
+ * sysdeps/mach/hurd/i386/libc.abilist (GLIBC_2.29): Add
+ posix_spawn_file_actions_addfchdir_np.
+ * sysdeps/unix/sysv/linux/aarch64/libc.abilist (GLIBC_2.29):
+ Likewise.
+ * sysdeps/unix/sysv/linux/alpha/libc.abilist (GLIBC_2.29):
+ Likewise.
+ * sysdeps/unix/sysv/linux/arm/libc.abilist (GLIBC_2.29): Likewise.
+ * sysdeps/unix/sysv/linux/hppa/libc.abilist (GLIBC_2.29):
+ Likewise.
+ * sysdeps/unix/sysv/linux/i386/libc.abilist (GLIBC_2.29):
+ Likewise.
+ * sysdeps/unix/sysv/linux/ia64/libc.abilist (GLIBC_2.29):
+ Likewise.
+ * sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist (GLIBC_2.29):
+ Likewise.
+ * sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist (GLIBC_2.29):
+ Likewise.
+ * sysdeps/unix/sysv/linux/microblaze/libc.abilist (GLIBC_2.29):
+ Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+ (GLIBC_2.29): Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+ (GLIBC_2.29): Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+ (GLIBC_2.29): Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+ (GLIBC_2.29): Likewise.
+ * sysdeps/unix/sysv/linux/nios2/libc.abilist (GLIBC_2.29):
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+ (GLIBC_2.29): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+ (GLIBC_2.29): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist
+ (GLIBC_2.29): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist
+ (GLIBC_2.29): Likewise.
+ * sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist (GLIBC_2.29):
+ Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist (GLIBC_2.29):
+ Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist (GLIBC_2.29):
+ Likewise.
+ * sysdeps/unix/sysv/linux/sh/libc.abilist (GLIBC_2.29): Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist (GLIBC_2.29):
+ Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist (GLIBC_2.29):
+ Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist (GLIBC_2.29):
+ Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist (GLIBC_2.29):
+ Likewise.
+
+2018-12-06 Joseph Myers <joseph@codesourcery.com>
+
+ * manual/texinfo.tex: Update to version 2018-09-21.20 with
+ trailing whitespace removed.
+ * scripts/config.guess: Update to version 2018-11-28.
+ * scripts/config.sub: Update to version 2018-11-28.
+ * scripts/install-sh: Update to version 2018-03-11.20.
+ * scripts/mkinstalldirs: Update to version 2018-03-07.03.
+ * scripts/move-if-change: Update to version 2018-03-07 03:47.
+
+2018-12-07 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #23927]
+ CVE-2018-19591
+ * inet/tst-if_index-long.c: New file.
+ * inet/Makefile (tests): Add tst-if_index-long.
+
+2018-12-07 Florian Weimer <fweimer@redhat.com>
+
+ * support/check.h (support_record_failure_is_failed): Declare.
+ * support/descriptors.h: New file.
+ * support/support_descriptors.c: Likewise.
+ * support/tst-support_descriptors.c: Likewise.
+ * support/support_record_failure.c
+ (support_record_failure_is_failed): New function.
+ * support/Makefile (libsupport-routines): Add support_descriptors.
+ (tests): Add tst-support_descriptors.
+
+2018-12-05 Zack Weinberg <zackw@panix.com>
+ Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
+
+ * stdio-common/vfprintf-internal.c
+ (__vfprintf_internal, __vfwprintf_internal): Don't use __ldbl_is_dbl.
+ * sysdeps/generic/math_ldbl_opt.h: Remove __ldbl_is_dbl.
+ * sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h: Remove __ldbl_is_dbl
+ and __no_long_double.
+ * sysdeps/ieee754/ldbl-opt/math_ldbl_opt.c: Remove file.
+ * sysdeps/ieee754/ldbl-opt/Makefile (routines): Remove math_ldbl_opt.
+ * sysdeps/ieee754/ldbl-opt/nldbl-compat.c: Remove
+ libc_hidden_proto and libc_hidden_def from all __nldbl_*printf*
+ and __nldbl_*syslog* functions.
+ (__nldbl_cleanup, set_no_long_double, clear_no_long_double): Remove.
+ (__nldbl___asprintf, __nldbl_dprintf, __nldbl_fprintf)
+ (__nldbl_fwprintf, __nldbl_printf, __nldbl_sprintf)
+ (__nldbl_vfprintf, __nldbl___vsprintf, __nldbl_obstack_vprintf)
+ (__ndlbl_obstack_printf, __nldbl_snprintf, __nldbl_swprintf)
+ (__nldbl_vasprintf, __nldbl_vdprintf, __nldbl_vfwprintf)
+ (__nldbl_vprintf, __nldbl_vsnprintf, __ndlbl_vswprintf)
+ (__nldbl_vwprintf, __nldbl_wprintf):
+ Directly call the appropriate __v*printf_internal routine, passing
+ PRINTF_LDBL_IS_DBL. Do not mess with __no_long_double. Normalize
+ variable names.
+ (__nldbl___fprintf_chk, __nldbl___fwprintf_chk)
+ (__nldbl___printf_chk, __nldbl___snprintf_chk)
+ (__nldbl___sprintf_chk, __nldbl___swprintf_chk)
+ (__nldbl___vfprintf_chk, __nldbl___vfwprintf_chk)
+ (__nldbl___vprintf_chk, __nldbl___vsnprintf_chk)
+ (__nldbl___vsprintf_chk, __nldbl___vswprintf_chk)
+ (__nldbl___vwprintf_chk, __nldbl___wprintf_chk)
+ (__nldbl___vasprintf_chk, __nldbl___asprintf_chk)
+ (__nldbl___vdprintf_chk, __nldbl___dprintf_chk)
+ (__nldbl___obstack_vprintf_chk, __nldbl___obstack_printf_chk):
+ Likewise, and also pass PRINTF_FORTIFY when appropriate.
+ (__nldbl_syslog, __nldbl_vsyslog):
+ Directly call __vsyslog_internal, passing PRINTF_LDBL_IS_DBL.
+ (__nldbl_syslog_chk): Likewise, and also pass PRINTF_FORTIFY when
+ appropriate.
+ (__nldbl_vsyslog_chk): Likewise, and also pass PRINTF_FORTIFY when
+ appropriate.
+
+2018-12-05 Zack Weinberg <zackw@panix.com>
+ Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
+
+ [BZ #11319]
+ * libio/iovsprintf.c (_IO_str_chk_overflow, libio_vtable):
+ Moved here from debug/vsprintf_chk.c.
+ (__vsprintf_internal): Add 'maxlen' argument. Change the setup
+ and completion logic for the strfile to match exactly what
+ __vsprintf_chk used to do, except, when maxlen is -1, pass -1 to
+ _IO_str_init_static_internal instead of maxlen-1.
+ (__vsprintf): Pass -1 as maxlen to __vsprintf_internal.
+ * stdio-common/sprintf.c (__sprintf): Pass -1 as maxlen to
+ __vsprintf_internal.
+
+ * debug/vsprintf_chk.c (__vsprintf_chk)
+ * debug/sprintf_chk.c (__sprintf_chk):
+ Directly call __vsprintf_internal, passing PRINTF_FORTIFY if
+ 'flags' argument is positive, and slen as maxlen. No need to lock
+ the FILE and/or construct a temporary FILE. Minimize and normalize
+ header inclusions and variable names. Do not libc_hidden_def anything.
+
+ * debug/asprintf_chk.c (__asprintf_chk)
+ * debug/dprintf_chk.c (__dprintf_chk)
+ * debug/fprintf_chk.c (__fprintf_chk)
+ * debug/fwprintf_chk.c (__fwprintf_chk)
+ * debug/printf_chk.c (__printf_chk)
+ * debug/snprintf_chk.c (__snprintf_chk)
+ * debug/swprintf_chk.c (__swprintf_chk)
+ * debug/vasprintf_chk.c (__vasprintf_chk)
+ * debug/vdprintf_chk.c (__vdprintf_chk)
+ * debug/vfprintf_chk.c (__vfprintf_chk)
+ * debug/vfwprintf_chk.c (__vfwprintf_chk)
+ * debug/vprintf_chk.c (__vprintf_chk)
+ * debug/vsnprintf_chk.c (__vsnprintf_chk)
+ * debug/vswprintf_chk.c (__vswprintf_chk)
+ * debug/vwprintf_chk.c (__vwprintf_chk)
+ * debug/wprintf_chk.c (__wprintf_chk):
+ Directly call the corresponding vxxprintf_internal function, passing
+ PRINTF_FORTIFY if 'flag' argument is positive. No need to lock
+ the FILE and/or construct a temporary FILE. Minimize and normalize
+ header inclusions and variable names. Do not libc_hidden_def anything.
+
+ * debug/obprintf_chk.c (__obstack_printf_chk): Directly call
+ __obstack_vprintf_internal.
+ (__obstack_vprintf_chk): Convert into a wrapper that calls
+ __obstack_vprintf_internal (these two functions already had the
+ same code) and move to new file...
+ * debug/vobprintf_chk.c (__obstack_vprintf_chk): ... here. New
+ file.
+ * debug/obprintf.c (__obstack_vprintf_internal): Remove the checking of
+ the flags argument and the setting of _IO_FLAGS2_FORTIFY.
+ * debug/Makefile (routines): Add vobprintf_chk.
+
+ * sysdeps/ieee754/ldbl-opt/nldbl-compat.c
+ (__nldbl___vsprintf): Pass -1 as maxlen to __vsprintf_internal.
+ (__nldbl___vfprintf_chk, __nldbl___vsnprintf_chk)
+ (__nldbl___vsprintf_chk, __nldbl___vswprintf_chk)
+ (__nldbl___vasprintf_chk, __nldbl___vdprintf_chk)
+ (__nldbl___obstack_vfprintf_chk):
+ Directly call the corresponding vxxprintf_internal function,
+ passing PRINTF_FORTIFY if 'flag' argument is positive. If necessary,
+ duplicate comparison of slen with 0 or maxlen from the corresponding
+ non-__nldbl function.
+
+ * include/stdio.h (__vsnprintf_chk, __vfprintf_chk, __vasprintf_chk)
+ (__vdprintf_chk, __obstack_vfprintf_chk): Remove libc_hidden_proto.
+ * include/wchar.h (__vfwprintf_chk, __vswprintf_chk):
+ Remove libc_hidden_proto.
+
+ * stdio-common/vfprintf-internal.c
+ (__vfprintf_internal, __vfwprintf_internal):
+ Do not check _IO_FLAGS2_FORTIFY.
+ * libio/libio.h (_IO_FLAGS2_FORTIFY): Remove.
+ * libio/libioP.h: Update prototype of __vsprintf_internal and add
+ a comment explaining why it has the maxlen argument.
+ (_IO_acquire_lock_clear_flags2_fct): Remove.
+ (_IO_acquire_lock_clear_flags2): Remove.
+ (_IO_release_lock): Remove conditional statement which will
+ now never execute.
+ (_IO_acquire_lock): Remove variable which is now unused.
+ * sysdeps/generic/stdio-lock.h (_IO_acquire_lock_clear_flags2): Remove.
+ * sysdeps/nptl/stdio-lock.h (_IO_acquire_lock_clear_flags2): Remove.
+
+ * stdio-common/Makefile (tests): Add tst-bz11319 and
+ tst-bz11319-fortify2.
+ (CFLAGS-tst-bz11319-fortify2.c): New macro.
+ * stdio-common/tst-bz11319-fortify2.c: New file.
+ * stdio-common/tst-bz11319.c: Likewise.
+
+2018-12-05 Zack Weinberg <zackw@panix.com>
+ Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
+
+ * misc/syslog.c: Include libioP.h, not iolibio.h.
+ (__vsyslog_internal): New function with the former body of
+ __vsyslog_chk; takes mode_flags argument same as
+ __v*printf_internal. Call __vfprintf_internal directly.
+
+ (__vsyslog_chk): Now a wrapper around __vsyslog_internal.
+ Remove libc_hidden_def.
+ (__syslog, __syslog_chk): Use __vsyslog_internal.
+ (__vsyslog): Move to just below __syslog. Use __vsyslog_internal.
+
+ * include/sys/syslog.h: Add multiple inclusion guard.
+ Add prototype for __vsyslog_internal.
+ Remove declaration and libc_hidden_proto for __vsyslog_chk.
+
+ * sysdeps/ieee754/ldbl-opt/nldbl-compat.c (__nldbl___vsyslog_chk):
+ Use __vsyslog_internal.
+
+2018-12-05 Zack Weinberg <zackw@panix.com>
+ Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
+
+ * libio/libioP.h (__vfprintf_internal, __vfwprintf_internal)
+ (__vasprintf_internal, __vdprintf_internal, __obstack_vprintf_internal)
+ (__vsprintf_internal, __vsnprintf_internal, __vswprintf_internal):
+ New functions.
+ (PRINTF_LDBL_IS_DBL, PRINTF_FORTIFY): New constants.
+ (_IO_vasprintf, _IO_vdprintf, _IO_vsnprintf): Remove prototypes.
+
+ * stdio-common/vfprintf-internal.c: Rename from vfprintf.c.
+ Include wctype.h here if COMPILE_WPRINTF is defined.
+ Define __vfprintf_internal or __vfwprintf_internal, depending
+ on COMPILE_WPRINTF.
+ Temporarily, on entry to this function, update mode_flags
+ according to the environmental settings corresponding to
+ PRINTF_LDBL_IS_DBL and PRINTF_FORTIFY.
+ Throughout, check mode_flags instead of __ldbl_is_dbl and
+ _IO_FLAGS2_FORTIFY on the destination FILE.
+ * stdio-common/vfwprintf-internal.c: Rename from vfwprintf.c.
+ Include vfprintf-internal.c. Don't include wctype.h.
+ * stdio-common/vfprintf.c: New file. Just define __vfprintf
+ as a wrapper around __vfprintf_internal, with aliases _IO_vfprintf
+ and vfprintf.
+ * stdio-common/vfwprintf.c: New file. Just define __vfwprintf
+ as a wrapper around __vfwprintf_internal, with aliases _IO_vfwprintf
+ and vfwprintf.
+ * stdio-common/Makefile: Add vfprintf-internal and vfwprintf-internal.
+
+ * libio/iovdprintf.c (_IO_vdprintf): Rename to __vdprintf_internal
+ and add mode_flags argument; use __vfprintf_internal.
+ (__vdprintf): New function. Alias vdprintf to this.
+ * libio/iovsprintf.c (_IO_vsprintf, __vsprintf): Similarly.
+ * libio/vasprintf.c (_IO_vasprintf, __vasprintf): Similarly.
+ * libio/obprintf.c (_IO_obstack_vprintf, __obstack_vprintf): Similarly.
+ (__obstack_printf): Use __obstack_printf_internal.
+ * libio/vsnprintf.c (_IO_vsnprintf, ___vsnprintf): Similarly, with
+ public aliases __vsnprintf and vsnprintf.
+ Remove use of ldbl_hidden_def, since __vsnprintf is no longer
+ called internally.
+ * libio/vswprintf (_IO_vswprintf, __vswprintf): Similarly, with
+ public aliases _IO_vsprintf and vsprintf.
+ * libio/swprintf.c (__swprintf): Use __vswprintf_internal.
+ * stdio-common/asprintf.c (__asprintf): Use __vasprintf_internal.
+ * stdio-common/dprintf.c (__dprintf): Use __vdprintf_internal.
+ * stdio-common/snprintf.c (__snprintf): Use __vsprintf_internal.
+ * stdio-common/sprintf.c (__sprintf): Use __vsprintf_internal.
+
+ * debug/obprintf_chk.c, debug/vasprintf_chk.c, debug/vdprintf_chk.c
+ * debug/vsnprintf_chk.c, debug/vsprintf_chk.c, hurd/vpprintf.c
+ * stdio-common/fprintf.c, stdio-common/fxprintf.c
+ * stdio-common/printf.c: Use __vfprintf_internal.
+
+ * debug/fwprintf_chk.c, debug/vfwprintf_chk.c, debug/vswprintf_chk.c
+ * debug/vwprintf_chk.c, debug/wprintf_chk.c, libio/fwprintf.c
+ * libio/vwprintf.c, libio/wprintf.c: Use __vfwprintf_internal.
+
+ * sysdeps/ieee754/ldbl-opt/nldbl-compat.c: Use __vsprintf_internal,
+ __obstack_vprintf_internal, __vasprintf_internal, __vdprintf_internal,
+ __vsnprintf_internal, __vswprintf_internal, __vfprintf_internal, and
+ __vfwprintf_internal.
+
+ * libio/libio.h: Remove libc_hidden_proto and declaration for
+ _IO_vfprintf.
+ Remove declaration of _IO_vfwprintf.
+ * libio/iolibio.h: Remove libc_hidden_proto and declaration for
+ _IO_vsprintf.
+ Remove declarations of _IO_vswprintf, _IO_obstack_printf, and
+ _IO_obstack_printf.
+ * include/stdio.h: Add prototype for __vasprintf.
+ (__vsnprintf): Remove declaration, because there are no more
+ internal calls.
+ * include/wchar.h (__vfwprintf, __vswprintf): Remove
+ declaration, because there are no more internal calls.
+
+ * argp/argp-fmtstream.c (__argp_fmtstream_printf): Use
+ __vsnprintf_internal, instead of _IO_vsnprintf.
+ * argp/argp-help.c (__argp_error, __argp_failure): Use
+ __vasprintf_internal, instead of _IO_vasprintf.
+ * argp/argp-namefrob.h (__vsnprintf): Do not undefined then
+ redefine, because there are no more internal calls.
+
+2018-12-05 Zack Weinberg <zackw@panix.com>
+ Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
+
+ * stdio-common/vfscanf-internal.c: Don't look at __ldbl_is_dbl.
+ * sysdeps/ieee754/ldbl-opt/ndlbl-compat.c:
+ Include libio/strfile.h instead of libioP.h.
+ (__nldbl_IO_vfscanf, __ndlbl___vfscanf, __nldbl_sscanf)
+ (__nldbl___vsscanf, __nldbl_vscanf, __nldbl_fscanf)
+ (__nldbl_scanf, __nldbl_vfwscanf, __nldbl_swscanf)
+ (__nldbl_vswscanf, __nldbl_vwscanf, __nldbl_fwscanf)
+ (__nldbl_wscanf): Call __vfscanf_internal / __vfwscanf_internal
+ directly, passing SCANF_LDBL_IS_DBL. Set up a strfile if
+ necessary. Do not set __no_long_double. Normalize variable names.
+ (__nldbl___isoc99_vfscanf, __nldbl___isoc99_sscanf)
+ (__nldbl___isoc99_vsscanf, __nldbl___isoc99_vscanf)
+ (__nldbl___isoc99_fscanf, __nldbl___isoc99_scanf)
+ (__nldbl___isoc99_vfwscanf, __nldbl___isoc99_swscanf)
+ (__nldbl___isoc99_vswscanf, __nldbl___isoc99_vwscanf)
+ (__nldbl___isoc99_fwscanf, __nldbl___isoc99_wscanf):
+ Call __vfscanf_internal / __vfwscanf_internal directly, passing
+ SCANF_LDBL_IS_DBL | SCANF_ISOC99_A. Set up a strfile if necessary.
+ Do not set __no_long_double. Normalize variable names.
+
+2018-12-05 Zack Weinberg <zackw@panix.com>
+ Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
+
+ * stdio-common/isoc99_scanf.c
+ * stdio-common/isoc99_fscanf.c
+ * stdio-common/isoc99_sscanf.c
+ * stdio-common/isoc99_vscanf.c
+ * stdio-common/isoc99_vfscanf.c
+ * stdio-common/isoc99_vsscanf.c
+ * wcsmbs/isoc99_wscanf.c
+ * wcsmbs/isoc99_fwscanf.c
+ * wcsmbs/isoc99_swscanf.c
+ * wcsmbs/isoc99_vwscanf.c
+ * wcsmbs/isoc99_vfwscanf.c
+ * wcsmbs/isoc99_vswscanf.c:
+ Pass SCANF_ISOC99_A to __vfscanf_internal and/or __vfwscanf_internal.
+ Do not set _IO_FLAGS2_SCANF_STD on the FILE passed to that function.
+ No need to lock and unlock the FILE passed to that function.
+
+ * stdio-common/vfscanf-internal.c
+ (__vfscanf_internal, __vfwscanf_internal):
+ Don't look at _IO_FLAGS2_SCANF_STD.
+ * libio/libioP.h (_IO_acquire_lock_clear_flags2_fct)
+ (_IO_release_lock): Don't clear _IO_FLAGS2_SCANF_STD.
+ * libio/libio.h (_IO_FLAGS2_SCANF_STD): Delete.
+
+2018-12-05 Zack Weinberg <zackw@panix.com>
+ Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
+
+ * libio/libioP.h (SCANF_LDBL_IS_DBL, SCANF_ISOC99_A): New constants.
+ (__vfscanf_internal, __vfwscanf_internal): New function prototypes.
+ * libio/libio.h: Remove libc_hidden_proto for _IO_vfscanf.
+ * libio/strfile.h: Add multiple inclusion guard.
+ (_IO_strfile_read, _IO_strfile_readw): New inline functions.
+
+ * sysdeps/generic/math_ldbl_opt.h: Include shlib-compat.h, for
+ consistency with the other version of this file.
+ (ldbl_compat_symbol): New macro.
+ * sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h (ldbl_compat_symbol):
+ New macro.
+
+ * stdio-common/vfscanf-internal.c: Rename from vfscanf.c.
+ Define __vfscanf_internal or __vfwscanf_internal, depending on
+ COMPILE_WSCANF; don't define any other public symbols.
+ Remove errval and code to set errp.
+ Temporarily check __ldbl_is_dbl and _IO_FLAGS2_SCANF_STD as well
+ as the mode_flags argument.
+ (encode_error, conv_error, input_error): Don't set errval.
+ * stdio-common/vfwscanf-internal.c: Rename from vfwscanf.c.
+ Include vfscanf-internal.c.
+ * stdio-common/vfscanf.c: New file defining the public entry
+ point vfscanf, which calls __vfscanf_internal.
+ * stdio-common/vfwscanf.c: New file defining the public entry
+ point vfwscanf, which calls __vfwscanf_internal.
+
+ * stdio-common/iovfscanf.c: New file.
+ * stdio-common/iovfwscanf.c: Likewise.
+
+ * stdio-common/Makefile (routines): Add vfscanf-internal,
+ vfwscanf-internal, iovfscanf, iovfwscanf.
+ * stdio-common/Versions: Mention GLIBC_2.29, so that
+ it can be used in SHLIB_COMPAT expressions.
+ * sysdeps/ieee754/ldbl-opt/nldbl-compat.c (__nldbl__IO_vfscanf):
+ Wrap definition and compat_symbol line in #if SHLIB_COMPAT.
+ Call __vfscanf_internal, instead of _IO_vfscanf.
+ (__nldbl___vfscanf): Call __vfscanf_internal, instead of
+ _IO_vfscanf.
+ (__nldbl_vfwscanf): Call __vfwscanf_internal, instead of
+ _IO_vfwscanf.
+
+ * libio/iovsscanf.c: Clean up includes, when possible. Use
+ _IO_strfile_read or _IO_strfile_readw, when needed. Call
+ __vfscanf_internal or __vfwscanf_internal directly.
+ * libio/iovswscanf.c: Likewise.
+ * libio/swscanf.c: Likewise.
+ * libio/vscanf.c: Likewise.
+ * libio/vwscanf.c: Likewise.
+ * libio/wscanf.c: Likewise.
+ * stdio-common/isoc99_fscanf.c: Likewise.
+ * stdio-common/isoc99_scanf.c: Likewise.
+ * stdio-common/isoc99_sscanf.c: Likewise.
+ * stdio-common/isoc99_vfscanf.c: Likewise.
+ * stdio-common/isoc99_vscanf.c: Likewise.
+ * stdio-common/isoc99_vsscanf.c: Likewise.
+ * stdio-common/scanf.c: Likewise.
+ * stdio-common/sscanf.c: Likewise.
+ * wcsmbs/isoc99_fwscanf.c: Likewise.
+ * wcsmbs/isoc99_swscanf.c: Likewise.
+ * wcsmbs/isoc99_vfwscanf.c: Likewise.
+ * wcsmbs/isoc99_vswscanf.c: Likewise.
+ * wcsmbs/isoc99_vwscanf.c: Likewise.
+ * wcsmbs/isoc99_wscanf.c: Likewise.
+
+2018-12-05 Albert ARIBAUD <albert.aribaud@3adev.fr>
+
+ * include/time.h
+ (__tz_compute): Replace time_t with __time64_t.
+ (__tz_convert): Replace time_t* with __time64_t.
+ (__offtime): Replace time_t* with __time64_t.
+ * time/gmtime.c
+ (__gmtime_r): Adjust call to __tz_convert.
+ (gmtime): Likewise.
+ * time/localtime.c
+ (__localtime_r): Likewise.
+ (localtime): Likewise.
+ * time/offtime.c: Replace time_t with __time64_t.
+ * time/tzset.c: Likewise.
+
+2018-12-04 Joseph Myers <joseph@codesourcery.com>
+
+ * Makefile ($(objpfx)testroot.pristine/install.stamp): Do not run
+ dynamic linker unless [$(run-built-tests) = yes].
+
+2018-12-03 DJ Delorie <dj@delorie.com>
+
+ * support/test-container.c (check_for_unshare_hints): New.
+ (main): Call it if unshare fails. Add support for "su" scriptlet
+ command.
+
+2018-12-03 Joseph Myers <joseph@codesourcery.com>
+
+ * scripts/gen-as-const.py (compute_c_consts): Take an argument
+ 'START' to indicate that start text should be output.
+ (gen_test): Likewise.
+ (main): Generate 'START' for first symbol or '--' line, or at end
+ of input if not previously generated.
+
+2018-12-03 Rafael Ãvila de Espíndola <rafael@espindo.la>
+
+ [BZ #19767]
+ * sysdeps/unix/sysv/linux/arm/init-first.c: Remove #ifdef SHARED.
+ * sysdeps/unix/sysv/linux/arm/libc-vdso.h: Remove #ifdef SHARED.
+ * sysdeps/unix/sysv/linux/arm/sysdep.h: Define
+ ALWAYS_USE_VSYSCALL.
+
+2018-12-03 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ [BZ #23913]
+ * sysdeps/posix/spawni.c (maybe_script_execute): Increment size of
+ new_argv by one.
+
+2018-12-03 Carlos O'Donell <carlos@redhat.com>
+
+ [BZ #23923]
+ * locale/programs/localedef.c: Declare boolean hard_links default true.
+ (options): Add --no-hard-links option.
+ (parse_opt): Add OPT_NO_HARD_LINKS case and set hard_links to false.
+ * locale/programs/localedef.h: Declare prototype for hard_links.
+ * locale/programs/locfile.c (write_locale_data): Don't use hard
+ links if hard_links is false.
+
+2018-12-03 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86/cacheinfo.c (intel_check_word): Updated for
+ cpu_features_basic.
+ (__cache_sysconf): Likewise.
+ (init_cacheinfo): Likewise.
+ * sysdeps/x86/cpu-features.c (get_extended_indeces): Also
+ populate COMMON_CPUID_INDEX_80000007 and
+ COMMON_CPUID_INDEX_80000008.
+ (get_common_indices): Also populate COMMON_CPUID_INDEX_D_ECX_1.
+ Use CPU_FEATURES_CPU_P (cpu_features, XSAVEC) to check if
+ XSAVEC is available. Set the bit_arch_XXX_Usable bits.
+ (init_cpu_features): Use _Static_assert on
+ index_arch_Fast_Unaligned_Load.
+ __get_cpuid_registers and __get_arch_feature. Updated for
+ cpu_features_basic. Set stepping in cpu_features.
+ * sysdeps/x86/cpu-features.h: (FEATURE_INDEX_1): Changed to enum.
+ (FEATURE_INDEX_2): New.
+ (FEATURE_INDEX_MAX): Changed to enum.
+ (COMMON_CPUID_INDEX_D_ECX_1): New.
+ (COMMON_CPUID_INDEX_80000007): Likewise.
+ (COMMON_CPUID_INDEX_80000008): Likewise.
+ (cpuid_registers): Likewise.
+ (cpu_features_basic): Likewise.
+ (CPU_FEATURE_USABLE): Likewise.
+ (bit_arch_XXX_Usable): Likewise.
+ (cpu_features): Use cpuid_registers and cpu_features_basic.
+ (bit_arch_XXX): Reweritten.
+ (bit_cpu_XXX): Likewise.
+ (index_cpu_XXX): Likewise.
+ (reg_XXX): Likewise.
+ * sysdeps/x86/tst-get-cpu-features.c: Include <stdio.h> and
+ <support/check.h>.
+ (CHECK_CPU_FEATURE): New.
+ (CHECK_CPU_FEATURE_USABLE): Likewise.
+ (cpu_kinds): Likewise.
+ (do_test): Print vendor, family, model and stepping. Check
+ HAS_CPU_FEATURE and CPU_FEATURE_USABLE.
+ (TEST_FUNCTION): Removed.
+ Include <support/test-driver.c> instead of
+ "../../test-skeleton.c".
+ * sysdeps/x86_64/multiarch/sched_cpucount.c (__sched_cpucount):
+ Check POPCNT instead of POPCOUNT.
+ * sysdeps/x86_64/multiarch/test-multiarch.c (do_test): Likewise.
+
+2018-12-03 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * scripts/gen-as-const.py (main): Avoid emitting empty line when
+ there is no element in `consts'.
+
+2018-12-01 Florian Weimer <fweimer@redhat.com>
+
+ * support/support_capture_subprocess.c
+ (support_capture_subprocess): Check that pipe descriptors have
+ expected values. Close original pipe descriptors in subprocess.
+
+2018-12-01 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ [BZ #23032]
+ * sysdeps/htl/pt-barrier-init.c (pthread_barrier_init): Fix comparing
+ attr with __pthread_default_barrierattr.
+ * sysdeps/htl/pt-cond-init.c (__pthread_cond_init): Fix comparing
+ attr with __pthread_default_condattr.
+ * sysdeps/htl/pt-mutex-init.c (_pthread_mutex_init): Fix comparing
+ attr with __pthread_default_mutexattr.
+ * sysdeps/htl/pt-rwlock-init.c (_pthread_rwlock_init): Fix comparing
+ attr with __pthread_default_rwlockattr.
+
+2018-12-01 Kemi Wang <kemi.wang@intel.com>
+
+ * manual/tunables.texi (POSIX Thread Tunables): New node.
+ * nptl/Makefile (libpthread-routines): Add pthread_mutex_conf.
+ * nptl/nptl-init.c: Include pthread_mutex_conf.h
+ (__pthread_initialize_minimal_internal) [HAVE_TUNABLES]: Call
+ __pthread_tunables_init.
+ * nptl/pthreadP.h (MAX_ADAPTIVE_COUNT): Remove.
+ (max_adaptive_count): Define.
+ * nptl/pthread_mutex_conf.c: New file.
+ * nptl/pthread_mutex_conf.h: New file.
+ * sysdeps/generic/adaptive_spin_count.h: New file.
+ * sysdeps/nptl/dl-tunables.list: New file.
+ * nptl/pthread_mutex_lock.c (__pthread_mutex_lock): Use
+ max_adaptive_count () not MAX_ADAPTIVE_COUNT.
+ * nptl/pthread_mutex_timedlock.c (__pthrad_mutex_timedlock):
+ Likewise.
+
+2018-12-01 Paul Pluzhnikov <ppluzhnikov@google.com>
+
+ [BZ #20544]
+ * stdlib/cxa_atexit.c (__internal_atexit): assert func != NULL.
+ * stdlib/on_exit.c (__on_exit): Likewise.
+ * stdlib/Makefile (tests): Add tst-bz20544.
+ * stdlib/tst-bz20544.c: New test.
+
+2018-11-30 Rafael Ãvila de Espíndola <rafael@espindo.la>
+
+ [BZ #19767]
+ * sysdeps/unix/sysv/linux/i386/init-first.c: Don't check SHARED.
+ * sysdeps/unix/sysv/linux/i386/sysdep.h (ALWAYS_USE_VSYSCALL):
+ New.
+
+2018-11-30 Florian Weimer <fweimer@redhat.com>
+
+ * scripts/abilist.awk: Print "0x0" for size 0. Handle "g"/"D".
+ Extend error logging.
+ * sysdeps/mach/hurd/i386/libc.abilist (GLIBC_2.2.6): Adjust _end
+ symbol.
+
+2018-11-30 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/unix/sysv/linux/spawni.c (__spawni_child): Use
+ __sigismember instead of sigismember.
+ * sysdeps/posix/system.c [SIGCANCEL] (cancel_handler_args,
+ cancel_handler): New definitions.
+ (do_system): Use posix_spawn instead of fork and execl and remove
+ reentracy code.
+ * sysdeps/generic/not-errno.h (__kill_noerrno): New prototype.
+ * sysdeps/unix/sysv/linux/not-errno.h (__kill_noerrno): Likewise.
+ * sysdeps/unix/sysv/linux/ia64/system.c: Remove file.
+ * sysdeps/unix/sysv/linux/s390/system.c: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/system.c: Likewise.
+ * sysdeps/unix/sysv/linux/system.c: Likewise.
+
+ [BZ #22834]
+ [BZ #17490]
+ * NEWS: Add new semantic for atfork with popen and system.
+ * libio/iopopen.c (_IO_new_proc_open): use posix_spawn instead of
+ fork and execl.
+
+2018-11-30 Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
+
+ [BZ #23690]
+ * elf/dl-runtime.c (_dl_profile_fixup): Guarantee memory
+ modification order when accessing reloc_result->addr.
+ * include/link.h (reloc_result): Add field init.
+ * nptl/Makefile (tests): Add tst-audit-threads.
+ (modules-names): Add tst-audit-threads-mod1 and
+ tst-audit-threads-mod2.
+ Add rules to build tst-audit-threads.
+ * nptl/tst-audit-threads-mod1.c: New file.
+ * nptl/tst-audit-threads-mod2.c: Likewise.
+ * nptl/tst-audit-threads.c: Likewise.
+ * nptl/tst-audit-threads.h: Likewise.
+
+2018-11-30 Joseph Myers <joseph@codesourcery.com>
+
+ * scripts/gen-as-const.py: New file.
+ * scripts/gen-as-const.awk: Remove.
+ * Makerules ($(common-objpfx)%.h $(common-objpfx)%.h.d): Use
+ gen-as-const.py.
+ ($(objpfx)test-as-const-%.c): Likewise.
+
+2018-11-29 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elf/dl-exception.c: Include <_itoa.h>.
+
+2018-11-30 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * sysdeps/mach/hurd/fcntl.c (__libc_fcntl): Directly return value
+ returned by __f_setlk.
+
+2018-11-29 H.J. Lu <hongjiu.lu@intel.com>
+ Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * elf/Makefile (tests-internal): Add tst-create_format1.
+ * elf/dl-exception.c (_dl_exception_create_format): Support
+ %x, %lx and %zx.
+ * elf/tst-create_format1.c: New file.
+
+2018-11-29 Charles-Antoine Couret <charles-antoine.couret@essensium.com>
+
+ * argp/argp-fmtstream.c (__argp_fmtstream_update): Use [_LIBC]
+ conditional on calls to _IO_fwide and putwc_unlocked. (Merge from
+ gnulib.)
+ * argp/argp-help.c (__argp_failure): Likewise.
+
+2018-11-29 Mao Han <han_mao@c-sky.com>
+
+ * elf/elf.h (EM_CSKY, R_CKCORE_NONE, R_CKCORE_ADDR32)
+ (R_CKCORE_PCRELIMM8BY4, R_CKCORE_PCRELIMM11BY2, R_CKCORE_PCREL32)
+ (R_CKCORE_PCRELJSR_IMM11BY2, R_CKCORE_RELATIVE, R_CKCORE_COPY)
+ (R_CKCORE_GLOB_DAT, R_CKCORE_JUMP_SLOT, R_CKCORE_GOTOFF)
+ (R_CKCORE_GOTPC, R_CKCORE_GOT32, R_CKCORE_PLT32, R_CKCORE_ADDRGOT)
+ (R_CKCORE_ADDRPLT, R_CKCORE_PCREL_IMM26BY2, R_CKCORE_PCREL_IMM16BY2)
+ (R_CKCORE_PCREL_IMM16BY4, R_CKCORE_PCREL_IMM10BY2)
+ (R_CKCORE_PCREL_IMM10BY4, R_CKCORE_ADDR_HI16, R_CKCORE_ADDR_LO16)
+ (R_CKCORE_GOTPC_HI16, R_CKCORE_GOTPC_LO16, R_CKCORE_GOTOFF_HI16)
+ (R_CKCORE_GOTOFF_LO16, R_CKCORE_GOT12, R_CKCORE_GOT_HI16)
+ (R_CKCORE_GOT_LO16, R_CKCORE_PLT12, R_CKCORE_PLT_HI16)
+ (R_CKCORE_PLT_LO16, R_CKCORE_ADDRGOT_HI16, R_CKCORE_ADDRGOT_LO16)
+ (R_CKCORE_ADDRPLT_HI16, R_CKCORE_ADDRPLT_LO16)
+ (R_CKCORE_PCREL_JSR_IMM26BY2, R_CKCORE_TOFFSET_LO16)
+ (R_CKCORE_DOFFSET_LO16, R_CKCORE_PCREL_IMM18BY2)
+ (R_CKCORE_DOFFSET_IMM18, R_CKCORE_DOFFSET_IMM18BY2)
+ (R_CKCORE_DOFFSET_IMM18BY4, R_CKCORE_GOT_IMM18BY4)
+ (R_CKCORE_PLT_IMM18BY4, R_CKCORE_PCREL_IMM7BY4, R_CKCORE_TLS_LE32)
+ (R_CKCORE_TLS_IE32, R_CKCORE_TLS_GD32, R_CKCORE_TLS_LDM32)
+ (R_CKCORE_TLS_LDO32, R_CKCORE_TLS_DTPMOD32, R_CKCORE_TLS_DTPOFF32)
+ (R_CKCORE_TLS_TPOFF32): New defines.
+
+2018-11-29 Florian Weimer <fweimer@redhat.com>
+
+ * posix/Makefile (before-compile): Remove testcases.h and
+ ptestcases.h.
+ (generated): Add testcases.h and ptestcases.h.
+ (testcases.h, ptestcases.h): Move to $(objpfx).
+ (runtests.o): Add dependency on testcases.h.
+ (runptests.o): Add dependency on ptestcases.h.
+ * posix/testcases.h, posix/ptestcases.h: Remove files.
+ * scripts/build-many-glibcs.py (Context.fix_glibc_timestamps): Do
+ not touch posix/testcases.h and posix/ptestcases.h.
+
+2018-11-28 Florian Weimer <fweimer@redhat.com>
+
+ support: Add signal support to support_capture_subprocess_check.
+ * support/capture_subprocess.h (support_capture_subprocess_check):
+ Adjust comment and rename parameter.
+ * support/support_capture_subprocess_check.c
+ (print_actual_status): New function.
+ (support_capture_subprocess_check): Support negative
+ status_or_signal. Call print_actual_status.
+ * support/tst-support_capture_subprocess.c (do_test): Call
+ support_capture_subprocess_check.
+ * libio/tst-vtables-common.c (termination_status)
+ (init_termination_status): Remove.
+ (check_for_termination): Adjust support_capture_subprocess_check
+ call.
+ (do_test): Remove call to init_termination_status.
+
+2018-11-28 Joseph Myers <joseph@codesourcery.com>
+
+ * scripts/build-many-glibcs.py (Glibc.build_glibc): Use original
+ source directory instead of a copy.
+ (CommandList.create_copy_dir): Remove.
+
+2018-11-28 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/fpu/libm-test-ulps: Regenerated.
+
+2018-11-28 Florian Weimer <fweimer@redhat.com>
+
+ * support/support.h (support_quote_string): Do not use str
+ parameter name.
+
+2018-11-27 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/mach/hurd/Makefile ($(common-objpfx)stamp-errnos): Use
+ $(hurd-objpfx)bits/errno.h-tmp, not $(hurd)/bits/errno.h-tmp.
+
+2018-11-27 Florian Weimer <fweimer@redhat.com>
+
+ * support/support.h (support_quote_string): Declare.
+ * support/support_quote_string.c: New file.
+ * support/tst-support_quote_string.c: Likewise.
+ * support/Makefile (libsupport-routines): Add
+ support_quote_string.
+ (tests): Add tst-support_quote_string.
+
+2018-11-27 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #23927]
+ CVE-2018-19591
+ * sysdeps/unix/sysv/linux/if_index.c (__if_nametoindex): Avoid
+ descriptor leak in case of ENODEV error.
+
+2018-11-27 Rafael Ãvila de Espíndola <rafael@espindo.la>
+
+ [BZ #19767]
+ * sysdeps/unix/sysv/linux/aarch64/init-first.c: Remove #ifdef SHARED.
+ * sysdeps/unix/sysv/linux/aarch64/libc-vdso.h: Remove #ifdef SHARED.
+ * sysdeps/unix/sysv/linux/aarch64/sysdep.h: Define ALWAYS_USE_VSYSCALL.
+
+2018-11-26 Carlos O'Donell <carlos@redhat.com>
+
+ * scripts/abilist.awk: Handle .tdata. Error for unknown combinations.
+ Error for unknown lines.
+
+2018-11-26 Joseph Myers <joseph@codesourcery.com>
+
+ * scripts/build-many-glibcs.py (Context.fix_glibc_timestamps):
+ Touch additional files.
+
+2018-11-26 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #23907]
+ * malloc/malloc.c (_int_free): Validate tc_idx before checking for
+ double-frees.
+
+2018-11-26 Rafael Ãvila de Espíndola <rafael@espindo.la>
+
+ [BZ #19767]
+ * sysdeps/unix/sysv/linux/powerpc/init-first.c: Remove #ifdef SHARED.
+ * sysdeps/unix/sysv/linux/powerpc/libc-vdso.h: Remove #ifdef
+ SHARED. Include sysdep.h.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h: Define
+ ALWAYS_USE_VSYSCALL.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h: Define
+ ALWAYS_USE_VSYSCALL.
+
+2018-11-23 Rafael Ãvila de Espíndola <rafael@espindo.la>
+
+ [BZ #19767]
+ * nptl/Makefile (tests-static): Add tst-cond11-static.
+ (tests): Likewise.
+ * nptl/tst-cond11-static.c: New File.
+ * sysdeps/unix/sysv/linux/Makefile (tests-static): Add
+ tst-affinity-static.
+ (tests): Likewise.
+ * sysdeps/unix/sysv/linux/sysdep-vdso.h: Check USE_VSYSCALL
+ instead of SHARED.
+ * sysdeps/unix/sysv/linux/sysdep.h (ALWAYS_USE_VSYSCALL): New.
+ (USE_VSYSCALL): Likewise.
+ * sysdeps/unix/sysv/linux/tst-affinity-static.c: New file.
+ * sysdeps/unix/sysv/linux/x86/libc-vdso.h: Check USE_VSYSCALL
+ instead of SHARED.
+ * sysdeps/unix/sysv/linux/x86_64/init-first.c: Don't check
+ SHARED.
+ * sysdeps/unix/sysv/linux/x86_64/sysdep.h (ALWAYS_USE_VSYSCALL):
+ New.
+
+2018-11-23 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #23915]
+ * sysdeps/unix/sysv/linux/arm/kernel-features.h
+ [__LINUX_KERNEL_VERSION < 0x040700] (__ASSUME_COPY_FILE_RANGE):
+ Undefine.
+
+2018-11-23 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86/Makefile (tests): Add tst-cet-legacy-1a.
+ (tst-cet-legacy-1a-ARGS): New.
+ ($(objpfx)tst-cet-legacy-1a): New target.
+ * sysdeps/x86/tst-cet-legacy-1a.c: New file.
+
+2018-11-22 Joseph Myers <joseph@codesourcery.com>
+
+ * conform/conformtest.py (CompileSubTest.__init__): Set
+ self.run_early to False.
+ (ExecuteSubTest.__init__): Likewise.
+ (HeaderTests.run): Try running all non-optional, non-XFAILed
+ compilation tests in a single execution of the compiler.
+
+ * conform/conformtest.py (CompileSubTest): New class.
+ (ExecuteSubTest): Likewise.
+ (ElementTest.run): Rename to gen_subtests. Append tests to
+ self.subtests instead of running them.
+ (ConstantTest.run): Likewise.
+ (SymbolTest.run): Likewise.
+ (TypeTest.run): Likewise.
+ (TagTest.run): Likewise.
+ (FunctionTest.run): Likewise.
+ (VariableTest.run): Likewise.
+ (MacroFunctionTest.run): Likewise.
+ (MacroStrTest.run): Likewise.
+ (HeaderTests.handle_test_line): Generate subtests for tests.
+ (HeaderTests.run): Run subtests for tests.
+
+2018-11-21 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * math/Versions (GLIBC_2.29): Add pow.
+ * math/w_pow_compat.c (__pow_compat): Change to versioned compat
+ symbol.
+ * math/w_pow.c: New file.
+ * sysdeps/i386/fpu/w_pow.c: New file.
+ * sysdeps/ia64/fpu/e_pow.S: Add versioned symbols.
+ * sysdeps/ieee754/dbl-64/e_pow.c (__ieee754_pow): Rename to __pow
+ and add necessary aliases.
+ * sysdeps/ieee754/dbl-64/w_pow.c: New file.
+ * sysdeps/m68k/m680x0/fpu/w_pow.c: New file.
+ * sysdeps/mach/hurd/i386/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/alpha/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/arm/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/hppa/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/i386/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/ia64/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/microblaze/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/nios2/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist: Update.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/sh/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Update.
+ * sysdeps/x86_64/fpu/multiarch/e_pow-fma.c (__ieee754_pow): Rename to
+ __pow.
+ * sysdeps/x86_64/fpu/multiarch/e_pow-fma4.c (__ieee754_pow): Likewise.
+ * sysdeps/x86_64/fpu/multiarch/e_pow.c (__ieee754_pow): Likewise.
+ * sysdeps/x86_64/fpu/multiarch/w_pow.c: New file.
+
+2018-11-21 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * math/Versions (GLIBC_2.29): Add log2.
+ * math/w_log2_compat.c (__log2_compat): Change to versioned compat
+ symbol.
+ * math/w_log2.c: New file.
+ * sysdeps/i386/fpu/w_log2.c: New file.
+ * sysdeps/ia64/fpu/e_log2.S: Add versioned symbols.
+ * sysdeps/ieee754/dbl-64/e_log2.c (__ieee754_log2): Rename to __log2
+ and add necessary aliases.
+ * sysdeps/ieee754/dbl-64/w_log2.c: New file.
+ * sysdeps/m68k/m680x0/fpu/w_log2.c: New file.
+ * sysdeps/mach/hurd/i386/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/alpha/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/arm/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/hppa/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/i386/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/ia64/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/microblaze/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/nios2/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist: Update.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/sh/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Update.
+
+2018-11-21 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * math/Versions (GLIBC_2.29): Add log.
+ * math/w_log_compat.c (__log_compat): Change to versioned compat
+ symbol.
+ * math/w_log.c: New file.
+ * sysdeps/i386/fpu/w_log.c: New file.
+ * sysdeps/ia64/fpu/e_log.S: Update.
+ * sysdeps/ieee754/dbl-64/e_log.c (__ieee754_log): Rename to __log
+ and add necessary aliases.
+ * sysdeps/ieee754/dbl-64/w_log.c: New file.
+ * sysdeps/m68k/m680x0/fpu/w_log.c: New file.
+ * sysdeps/mach/hurd/i386/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/alpha/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/arm/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/hppa/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/i386/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/ia64/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/microblaze/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/nios2/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist: Update.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/sh/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Update.
+ * sysdeps/x86_64/fpu/multiarch/e_log-avx.c (__ieee754_log): Rename to
+ __log.
+ * sysdeps/x86_64/fpu/multiarch/e_log-fma.c (__ieee754_log): Likewise.
+ * sysdeps/x86_64/fpu/multiarch/e_log-fma4.c (__ieee754_log): Likewise.
+ * sysdeps/x86_64/fpu/multiarch/e_log.c (__ieee754_log): Likewise.
+ * sysdeps/x86_64/fpu/multiarch/w_log.c: New file.
+
+2018-11-21 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * math/Versions (GLIBC_2.29): Add exp and exp2.
+ * math/w_exp2_compat.c (__exp2_compat): Change to versioned compat
+ symbol, handle NO_LONG_DOUBLE and LONG_DOUBLE_COMPAT explicitly.
+ * math/w_exp_compat.c (__exp_compat): Likewise.
+ * math/w_exp.c: New file.
+ * math/w_exp2.c: New file.
+ * sysdeps/i386/fpu/w_exp.c: New file.
+ * sysdeps/i386/fpu/w_exp2.c: New file.
+ * sysdeps/ia64/fpu/e_exp.S: Add versioned symbols.
+ * sysdeps/ia64/fpu/e_exp2.S: Likewise.
+ * sysdeps/ieee754/dbl-64/e_exp.c (__ieee754_exp): Rename to __exp
+ and add necessary aliases.
+ * sysdeps/ieee754/dbl-64/e_exp2.c (__ieee754_exp2): Rename to __exp2
+ and add necessary aliases.
+ * sysdeps/ieee754/dbl-64/w_exp.c: New file.
+ * sysdeps/ieee754/dbl-64/w_exp2.c: New file.
+ * sysdeps/m68k/m680x0/fpu/w_exp.c: New file.
+ * sysdeps/m68k/m680x0/fpu/w_exp2.c: New file.
+ * sysdeps/mach/hurd/i386/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/alpha/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/arm/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/hppa/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/i386/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/ia64/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/microblaze/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/nios2/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist: Update.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/sh/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Update.
+ * sysdeps/x86_64/fpu/multiarch/e_exp-avx.c (__exp1): Remove.
+ (__ieee754_exp): Rename to __exp.
+ * sysdeps/x86_64/fpu/multiarch/e_exp-fma.c (__exp1): Remove.
+ (__ieee754_exp): Rename to __exp.
+ * sysdeps/x86_64/fpu/multiarch/e_exp-fma4.c (__exp1): Remove.
+ (__ieee754_exp): Rename to __exp.
+ * sysdeps/x86_64/fpu/multiarch/e_exp.c (__ieee754_exp): Rename to
+ __exp.
+ * sysdeps/x86_64/fpu/multiarch/w_exp.c: New file.
+
+2018-11-20 DJ Delorie <dj@redhat.com>
+
+ * malloc/malloc.c (tcache_entry): Add key field.
+ (tcache_put): Set it.
+ (tcache_get): Likewise.
+ (_int_free): Check for double free in tcache.
+ * malloc/tst-tcfree1.c: New.
+ * malloc/tst-tcfree2.c: New.
+ * malloc/Makefile: Run the new tests.
+ * manual/probes.texi: Document memory_tcache_double_free probe.
+
+ * dlfcn/dlerror.c (check_free): Prevent double frees.
+
+2018-11-20 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * sysdeps/aarch64/memset.S (MEMSET): Improve non-zero memset loop.
+
+2018-11-20 Joseph Myers <joseph@codesourcery.com>
+
+ * conform/conformtest.py (ElementTest.run): Use unique identifiers
+ in tests. Use names for format arguments.
+ (ConstantTest.run): Likewise.
+ (SymbolTest.run): Likewise.
+ (TypeTest.run): Likewise.
+ (TagTest.run): Likewise.
+ (FunctionTest.run): Likewise.
+ (VariableTest.run): Likewise.
+ (MacroFunctionTest.run): Likewise.
+ (MacroStrTest.run): Likewise.
+ (HeaderTests.__init__): Set self.num_tests.
+ (HeaderTests.handle_test_line): Set test.num. Increment
+ self.num_tests.
+
+2018-11-19 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * sysdeps/mach/hurd/f_setlk.c: Include <unistd.h>.
+ (__f_setlk): When whence is SEEK_CUR, use __lseek64 to convert it to
+ SEEK_SET.
+
+2018-11-19 Mao Han <han_mao@c-sky.com>
+
+ * scripts/config.guess: Update to version 2018-08-29.
+ * scripts/config.sub: Update to version 2018-08-29.
+
+2018-11-19 Florian Weimer <fweimer@redhat.com>
+
+ support: Print timestamps in timeout handler.
+ * support/support_test_main.c (print_timestamp): New function.
+ (signal_handler): Use it to print the termination time and the
+ time of the last write to standard output.
+
+2018-11-16 Zack Weinberg <zackw@panix.com>
+ Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
+
+ * include/monetary.h (STRFMON_LDBL_IS_DBL): New constant.
+ (__vstrfmon_l): Rename to __vstrfmon_l_internal and add flags
+ argument.
+ * stdlib/strfmon_l.c (__vstrfmon_l): Rename to __vstrfmon_l_internal
+ and add flags argument. Check flags instead of __ldbl_is_dbl when
+ deciding whether to set is_long_double.
+ (__strfmon_l): Call __vstrfmon_l_internal instead of __vstrfmon_l,
+ passing zero for flags argument.
+ * stdlib/strfmon.c (strfmon): Same change as made to __strfmon_l.
+
+ * sysdeps/ieee754/ldbl-opt/nldbl-compat.c
+ (__nldbl___vstrfmon, __nldbl___vstrfmon_l)
+ (__nldbl_strfmon, __nldbl___strfmon_l): Call __vstrfmon_l_internal
+ directly, passing STRFMON_LDBL_IS_DBL for flags argument. Normalize
+ variable names. Remove libc_hidden_def/libc_hidden_proto from
+ __nldbl___vstrfmon and __nldbl___vstrfmon_l, because they are no
+ longer called from within the library.
+ * sysdeps/ieee754/ldbl-opt/nldbl-compat.h: Don't use NLDBL_DECL
+ for __nldbl___vstrfmon_l, declare it explicitly.
+
+ * manual/locale.texi: Update a reference to vstrfmon_l in comments.
+
+2018-11-15 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * sysdeps/mach/hurd/bits/fcntl.h (F_GETLK64, F_SETLK64, F_SETLKW64): New
+ macros
+ [__USE_FILE_OFFSET64] (F_GETLK, F_SETLK, F_SETLKW): Define to F_GETLK64,
+ F_SETLK64, F_SETLKW64, respectively.
+ * sysdeps/mach/hurd/f_setlk.c: New file.
+ * sysdeps/mach/hurd/f_setlk.h: New file.
+ * sysdeps/mach/hurd/Makefile [$(subdir) = io] (sysdeps_routines): Add
+ f_setlk.
+ * sysdeps/mach/hurd/fcntl.c: Include "f_setlk.h".h".
+ (__libc_fcntl): Move non-flock operations to...
+ * sysdeps/mach/hurd/vfcntl.c (__libc_vfcntl): ... New file.
+ * sysdeps/mach/hurd/fcntl.c (fcntl64): Add missing alias.
+
+2018-11-15 Paul Eggert <eggert@cs.ucla.edu>
+
+ mktime: DEBUG_MKTIME cleanup
+ The DEBUG_MKTIME code no longer works in glibc or in Gnulib.
+ And it’s no longer needed now that glibc and Gnulib both have
+ their own testing mechanisms for mktime.
+ * time/mktime.c (DEBUG_MKTIME): Remove. All uses removed.
+
+ mktime: fix non-EOVERFLOW errno handling
+ [BZ#23789]
+ mktime was not properly reporting failures when the underlying
+ localtime_r fails with errno != EOVERFLOW; it incorrectly treated
+ them like EOVERFLOW failures, and set errno to EOVERFLOW.
+ The problem could happen on non-glibc platforms, with Gnulib.
+ * time/mktime.c (guess_time_tm): Remove, replacing with ...
+ (tm_diff): ... this simpler function, which does not change errno.
+ All callers changed to deal with errno themselves.
+ (ranged_convert, __mktime_internal): Return failure immediately if
+ the underlying function reports any failure other than EOVERFLOW.
+ (__mktime_internal): Set errno to EOVERFLOW if the spring-forward
+ gap code fails.
+
+ mktime: fix bug with Y2038 DST transition
+ [BZ#23789]
+ * time/mktime.c (ranged_convert): On 32-bit platforms, don’t
+ mishandle a DST transition that jumps over the Y2038 boundary.
+ No such DST transitions are known so this is only a theoretical
+ bug, but we might as well do things right.
+
+ mktime: make more room for overflow
+ [BZ#23789]
+ * time/mktime.c (long_int): Now 4⨯ int, not just 3⨯.
+ This is so that we can add tm_diff results to a previous guess,
+ which will be useful in a later patch.
+
+ mktime: simplify offset guess
+ [BZ#23789]
+ * time/mktime.c (__mktime_internal): Omit excess precision.
+
+ mktime: new test for mktime failure
+ [BZ#23789]
+ Based on a test suggested by Albert Aribaud in:
+ https://www.sourceware.org/ml/libc-alpha/2018-10/msg00662.html
+ * time/Makefile (tests): Add bug-mktime4.
+ * time/bug-mktime4.c: New file.
+
+ mktime: fix EOVERFLOW bug
+ [BZ#23789]
+ * time/mktime.c [!_LIBC && !DEBUG_MKTIME]:
+ Include libc-config.h, not config.h, for __set_errno.
+ (guess_time_tm, __mktime_internal): Set errno to EOVERFLOW on overflow.
+
+2018-11-14 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * sysdeps/mach/hurd/dl-sysdep.c (check_no_hidden): Use
+ __attribute_copy__ to copy attributes from name. Drop static qualifier
+ to avoid warnings about leaf attribute not having effect on static
+ functions.
+
+2018-11-13 Florian Weimer <fweimer@redhat.com>
+
+ * malloc/malloc.c (fastbin_push_entry): New function.
+ (fastbin_pop_entry): Likewise. Replaces REMOVE_FB.
+ (REMOVE_FB): Remove macro.
+ (_int_malloc): Use fastbin_pop_entry and reindent.
+ (_int_free): Use fastbin_push_entry.
+ (malloc_consolidate): Use atomic_exchange_acquire.
+
+2018-11-13 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/mips/__longjmp.c (__longjmp): Define alias manually with
+ alias attribute, not with strong_alias.
+
+ * include/libc-symbols.h [SHARED && !NO_HIDDEN && !__ASSEMBLER__]
+ (__hidden_ver2): New macro. Use old definition of __hidden_ver1
+ with additional parameter thread.
+ [SHARED && !NO_HIDDEN && !__ASSEMBLER__] (__hidden_ver1): Define
+ in terms of __hidden_ver2.
+ (hidden_tls_def): New macro.
+ (libc_hidden_tls_def): Likewise.
+ (rtld_hidden_tls_def): Likewise.
+ (libm_hidden_tls_def): Likewise.
+ (libmvec_hidden_tls_def): Likewise.
+ (libresolv_hidden_tls_def): Likewise.
+ (librt_hidden_tls_def): Likewise.
+ (libdl_hidden_tls_def): Likewise.
+ (libnss_files_hidden_tls_def): Likewise.
+ (libnsl_hidden_tls_def): Likewise.
+ (libnss_nisplus_hidden_tls_def): Likewise.
+ (libutil_hidden_tls_def): Likewise.
+ (libutil_hidden_tls_def): Likweise.
+ * sysdeps/powerpc/nofpu/sim-full.c (__sim_exceptions_thread): Use
+ libc_hidden_tls_def.
+ (__sim_disabled_exceptions_thread): Likewise.
+ (__sim_round_mode_thread): Likewise.
+
+ * sysdeps/sparc/sparc-ifunc.h [SHARED]
+ (sparc_ifunc_redirected_hidden_def): Use __attribute_copy__ to
+ copy attributes from name.
+
+2018-11-12 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/arm/arm-ifunc.h [SHARED] (arm_libc_ifunc_hidden_def):
+ Use __attribute_copy__ to copy attributes from name.
+
+ * sysdeps/i386/i686/fpu/multiarch/e_expf.c [SHARED]: Use __THROW
+ with __hidden_ver1 call.
+ * sysdeps/i386/i686/fpu/multiarch/e_log2f.c [SHARED]: Likewise.
+ * sysdeps/i386/i686/fpu/multiarch/e_logf.c [SHARED]: Likewise.
+ * sysdeps/i386/i686/fpu/multiarch/s_cosf.c: Include <math.h>.
+ (__cosf): Do not declare here.
+ * sysdeps/i386/i686/fpu/multiarch/s_sincosf.c: Include <math.h>.
+ (__sincosf): Do not declare here.
+ * sysdeps/i386/i686/fpu/multiarch/s_sinf.c: Include <math.h>.
+ (__sinf): Do not declare here.
+
+ * sysdeps/ia64/fpu/sfp-machine.h (__LITTLE_ENDIAN): Remove.
+ (__BIG_ENDIAN): Likewise.
+ (__BYTE_ORDER): Likewise.
+ (strong_alias): Likewise.
+ (_strong_alias): Likewise.
+
+2018-11-12 Florian Weimer <fweimer@redhat.com>
+
+ * malloc/malloc.c (unlink_chunk): Turn the unlink macro into this
+ function. Move after the definition of in_smallbin_range. Do not
+ use __builtin_expect for paths that lead to a noreturn function.
+ Drop remaining __builtin_expect (p->fd_nextsize != NULL, 0)
+ because it is unclear whether this is in fact an unlikely
+ condition.
+ (_int_malloc, _int_free): Adjust.
+ (malloc_consolidate, _int_realloc): Adjust. Remove bck, fwd
+ variables.
+ * malloc/arena.c (heap_trim): Likewise.
+
+2018-11-10 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * sysdeps/mach/hurd/spawni.c (__spawni): Add ccwdir port. Test and use
+ it, free it if needed.
+ (reauthenticate): Test and use ccwdir.
+ (child_init_port): In non-resetids case, test and use ccwdir.
+ (child_chdir): New nested function to set ccwdir.
+ * hurd/hurd/userlink.h (_hurd_userlink_move): New function.
+ * hurd/hurd/port.h (_hurd_port_move): New function.
+ * sysdeps/mach/hurd/spawni.c (NEW_ULINK_TABLE): New macro.
+ (EXPAND_DTABLE): Use NEW_ULINK_TABLE macro for ulink_dtable.
+ * hurd/Versions (_hurd_port_move): Export function.
+ * sysdeps/mach/hurd/i386/libc.abilist (_hurd_port_move): Expect
+ symbol.
+ * sysdeps/mach/hurd/spawni.c (__spawni): Use orig_dtablesize instead
+ of dtablesize for allocating dtable_cloexec.
+
+2018-11-09 Martin Sebor <msebor@redhat.com>
+
+ * include/libc-symbols.h (__attribute_copy__): Define macro unless
+ it's already defined.
+ (_strong_alias): Use __attribute_copy__.
+ (_weak_alias, __hidden_ver1, __hidden_nolink2): Same.
+ * misc/sys/cdefs.h (__attribute_copy__): New macro.
+ * sysdeps/x86_64/multiarch/memchr.c (memchr): Use __attribute_copy__.
+ * sysdeps/x86_64/multiarch/memcmp.c (memcmp): Same.
+ * sysdeps/x86_64/multiarch/mempcpy.c (mempcpy): Same.
+ * sysdeps/x86_64/multiarch/memset.c (memset): Same.
+ * sysdeps/x86_64/multiarch/stpcpy.c (stpcpy): Same.
+ * sysdeps/x86_64/multiarch/strcat.c (strcat): Same.
+ * sysdeps/x86_64/multiarch/strchr.c (strchr): Same.
+ * sysdeps/x86_64/multiarch/strcmp.c (strcmp): Same.
+ * sysdeps/x86_64/multiarch/strcpy.c (strcpy): Same.
+ * sysdeps/x86_64/multiarch/strcspn.c (strcspn): Same.
+ * sysdeps/x86_64/multiarch/strlen.c (strlen): Same.
+ * sysdeps/x86_64/multiarch/strncmp.c (strncmp): Same.
+ * sysdeps/x86_64/multiarch/strncpy.c (strncpy): Same.
+ * sysdeps/x86_64/multiarch/strnlen.c (strnlen): Same.
+ * sysdeps/x86_64/multiarch/strpbrk.c (strpbrk): Same.
+ * sysdeps/x86_64/multiarch/strrchr.c (strrchr): Same.
+ * sysdeps/x86_64/multiarch/strspn.c (strspn): Same.
+
+2018-11-09 Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
+
+ * misc/tst-efgcvt.c: Include support/check.h and
+ support/test-driver.c. Do not include test-skeleton.c.
+ (error_count): Remove.
+ (output_error): Replace increments to error_count with calls to
+ support_record_failure.
+ (output_r_error): Likewise.
+ (special): Likewise.
+ (do_test): Unconditionally return zero.
+ (TEST_FUNCTION): Remove.
+
+2018-11-09 Joseph Myers <joseph@codesourcery.com>
+
+ * conform/Makefile ($(conformtest-header-tests)): Create $(@D),
+ not $(@D)/scratch.
+ ($(linknamespace-header-tests)): Likewise.
+
+ * conform/conformtest.py: New file.
+ * conform/conformtest.pl: Remove.
+ * conform/GlibcConform.pm: Likewise.
+ * conform/glibcconform.py (KEYWORDS_C90): New constant.
+ (KEYWORDS_C99): Likewise.
+ (KEYWORDS): Likewise.
+ * conform/Makefile ($(conformtest-header-tests)): Use
+ conformtest.py instead of conformtest.pl. Do not pass --tmpdir
+ option. Use --header instead of --headers.
+ * conform/data/arpa/inet.h-data: Remove trailing semicolons on
+ function entries.
+ * conform/data/spawn.h-data: Likewise.
+ * conform/data/fcntl.h-data (openat): Add space after function
+ name.
+ * conform/data/wchar.h-data (wcscasecmp): Likewise.
+ (wcscasecmp_l): Likewise.
+ * conform/data/termios.h-data (c_cc): Add space after element
+ name.
+
+2018-11-08 Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
+
+ * argp/tst-ldbl-argp.c (do_one_test): Use TEST_COMPARE_STRING,
+ instead of manually comparing and reporting mismatching strings.
+ * misc/tst-ldbl-error.c (do_one_test): Likewise.
+ * misc/tst-ldbl-warn.c (do_one_test): Likewise.
+
+2018-11-08 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/kernel-features.h: Remove comment about
+ __ASSUME_SOCKETCALL.
+ * sysdeps/unix/sysv/linux/i386/kernel-features.h
+ (__ASSUME_SOCKETCALL): Remove.
+ * sysdeps/unix/sysv/linux/m68k/kernel-features.h
+ (__ASSUME_SOCKETCALL): Likewise.
+ * sysdeps/unix/sysv/linux/microblaze/kernel-features.h
+ (__ASSUME_SOCKETCALL): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/kernel-features.h
+ (__ASSUME_SOCKETCALL): Likewise.
+ * sysdeps/unix/sysv/linux/s390/kernel-features.h
+ (__ASSUME_SOCKETCALL): Likewise.
+ * sysdeps/unix/sysv/linux/sh/kernel-features.h
+ (__ASSUME_SOCKETCALL): Likewise.
+ * sysdeps/unix/sysv/linux/sparc/kernel-features.h
+ (__ASSUME_SOCKETCALL): Likewise.
+
+2018-11-08 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #23509]
+ * sysdeps/x86/dl-prop.h (_dl_process_cet_property_note): Skip
+ note parsing if a NT_GNU_PROPERTY_TYPE_0 note has been processed.
+ Update the l_cet field when processing NT_GNU_PROPERTY_TYPE_0 note.
+ Check multiple NT_GNU_PROPERTY_TYPE_0 notes.
+ * sysdeps/x86/link_map.h (l_cet): Expand to 3 bits, Add
+ lc_unknown.
+
+2018-11-08 Alexandra Hájková <ahajkova@redhat.com>
+
+ [BZ #17630]
+ * resolv/tst-resolv-network.c: Add test for getnetbyname.
+
+2018-11-07 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #23867]
+ * sysdeps/unix/sysv/linux/arm/kernel-features.h
+ [__LINUX_KERNEL_VERSION < 0x040700] (__ASSUME_MLOCK2): Undefine.
+ * sysdeps/unix/sysv/linux/microblaze/kernel-features.h
+ [__LINUX_KERNEL_VERSION < 0x040700] (__ASSUME_MLOCK2): Undefine.
+
+2018-11-07 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * support/support_test_compare_string.c
+ (support_test_compare_string): Fix printf format.
+
+2018-11-07 Florian Weimer <fweimer@redhat.com>
+
+ Implement TEST_COMPARE_STRING.
+ * support/check.h (TEST_COMPARE_STRING): Define.
+ (support_test_compare_string): Declare.
+ * support/Makefile (libsupport-routines): Add
+ support_test_compare_string.
+ (tests): Add tst-test_compare_string.
+ * support/support_test_compare_string.c: New file.
+ * support/tst-test_compare_string.c: Likewise.
+
+2018-11-07 Andreas Schwab <schwab@suse.de>
+
+ [BZ #23864]
+ * sysdeps/unix/sysv/linux/riscv/kernel-features.h
+ (__ASSUME_SET_ROBUST_LIST) [__LINUX_KERNEL_VERSION < 0x041400]:
+ Undef.
+
+2018-11-06 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #23862]
+ * sysdeps/unix/sysv/linux/sh/kernel-features.h
+ [__LINUX_KERNEL_VERSION < 0x040800] (__ASSUME_EXECVEAT): Undefine.
+ [__LINUX_KERNEL_VERSION < 0x040800] (__ASSUME_MLOCK2): Likewise.
+ [__LINUX_KERNEL_VERSION < 0x040800] (__ASSUME_COPY_FILE_RANGE):
+ Likewise.
+
+2018-11-06 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #17405]
+ * posix/Makefile (routines): Add spawn_faction_addchdir.
+ (tests): Add tst-spawn-chdir.
+ * posix/Versions (GLIBC_2.29): Add
+ posix_spawn_file_actions_addchdir_np.
+ * posix/spawn_faction_addchdir.c: New file.
+ * posix/spawn_faction_destroy.c
+ (__posix_spawn_file_actions_destroy): Handle spawn_do_chdir.
+ * posix/spawn.h (posix_spawn_file_actions_addchdir_np): Declare.
+ * posix/spawn_int.h (struct __spawn_action): Add spawn_do_chdir,
+ chdir_action.
+ * posix/tst-spawn-chdir.c: New file.
+ * sysdeps/posix/spawni.c (__spawni_child): Handle spawn_do_chdir.
+ * sysdeps/unix/sysv/linux/spawni.c (__spawni_child): Likewise.
+ * sysdeps/mach/hurd/i386/libc.abilist (GLIBC_2.29): Add
+ posix_spawn_file_actions_addchdir_np.
+ * sysdeps/unix/sysv/linux/aarch64/libc.abilist (GLIBC_2.29):
+ Likewise.
+ * sysdeps/unix/sysv/linux/alpha/libc.abilist (GLIBC_2.29):
+ Likewise.
+ * sysdeps/unix/sysv/linux/arm/libc.abilist (GLIBC_2.29): Likewise.
+ * sysdeps/unix/sysv/linux/hppa/libc.abilist (GLIBC_2.29):
+ Likewise.
+ * sysdeps/unix/sysv/linux/i386/libc.abilist (GLIBC_2.29):
+ Likewise.
+ * sysdeps/unix/sysv/linux/ia64/libc.abilist (GLIBC_2.29):
+ Likewise.
+ * sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist (GLIBC_2.29):
+ Likewise.
+ * sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist (GLIBC_2.29):
+ Likewise.
+ * sysdeps/unix/sysv/linux/microblaze/libc.abilist (GLIBC_2.29):
+ Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+ (GLIBC_2.29): Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+ (GLIBC_2.29): Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+ (GLIBC_2.29): Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+ (GLIBC_2.29): Likewise.
+ * sysdeps/unix/sysv/linux/nios2/libc.abilist (GLIBC_2.29):
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+ (GLIBC_2.29): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+ (GLIBC_2.29): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist
+ (GLIBC_2.29): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist
+ (GLIBC_2.29): Likewise.
+ * sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist (GLIBC_2.29):
+ Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist (GLIBC_2.29):
+ Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist (GLIBC_2.29):
+ Likewise.
+ * sysdeps/unix/sysv/linux/sh/libc.abilist (GLIBC_2.29): Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist (GLIBC_2.29):
+ Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist (GLIBC_2.29):
+ Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist (GLIBC_2.29):
+ Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist (GLIBC_2.29):
+ Likewise.
+
+2018-11-06 Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
+
+ * misc/Makefile (tests): Add tst-ldbl-error.
+ * misc/tst-ldbl-error.c: New file.
+
+2018-11-06 Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
+
+ * misc/Makefile (tests): Add tst-ldbl-warn.
+ * misc/tst-ldbl-warn.c: New file.
+
+2018-11-06 Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
+
+ * argp/Makefile (tests): Add tst-ldbl-argp.
+ * argp/tst-ldbl-argp.c: New file.
+
+2018-11-05 Arjun Shankar <arjun@redhat.com>
+
+ * iconv/gconv_conf.c (__gconv_read_conf): Remove NULL check for
+ __gconv_path_elem and call __gconv_get_path unconditionally.
+
+2018-11-05 Andreas Schwab <schwab@suse.de>
+
+ [BZ #22927]
+ * resolv/gai_misc.c (__gai_enqueue_request): Don't crash if
+ creating the first helper thread failed.
+
+2018-11-03 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * sysdeps/mach/hurd/msync.c: New file.
+
+2018-11-02 Florian Weimer <fweimer@redhat.com>
+
+ * support/shell-container.c (copy_func): Call
+ support_copy_file_range instead of copy_file_range to support
+ cross-device copies.
+
+2018-11-02 Florian Weimer <fweimer@redhat.com>
+
+ * support/test-container.c: Include <libc-pointer-arith.h> for
+ ALIGN_UP.
+
+2018-11-01 Zong Li <zong@andestech.com>
+
+ * soft-fp/op-8.h (_FP_FRAC_SET_8, _FP_FRAC_ADD_8, _FP_FRAC_SUB_8)
+ (_FP_FRAC_CLZ_8, _FP_MINFRAC_8, _FP_FRAC_NEGP_8, _FP_FRAC_ZEROP_8)
+ (_FP_FRAC_HIGHBIT_DW_8, _FP_FRAC_COPY_4_8, _FP_FRAC_COPY_8_4)
+ (__FP_FRAC_SET_8): Add implementation for RV32 use.
+
+ * soft-fp/op-4.h (_FP_FRAC_SUB_3, _FP_FRAC_SUB_4): Use temporary
+ variable to avoid overlap arguments.
+
+2018-11-01 Joseph Myers <joseph@codesourcery.com>
+
+ * posix/bug-regex22.c (main): Use puts with distinct error
+ messages for unexpected success of re_compile_pattern, not printf
+ with NULL argument to %s.
+
+ * stdio-common/bug22.c: Include <libc-diag.h>.
+ (do_test): Disable -Wformat-overflow= warnings around fprintf
+ calls outputting more than INT_MAX characters.
+ * stdio-common/tst-printf.c: Disable -Wformat-overflow= warnings
+ around printf call with NULL %s argument.
+
+ [BZ #23848]
+ * sysdeps/unix/sysv/linux/sparc/kernel-features.h [!__arch64__ &&
+ __LINUX_KERNEL_VERSION < 0x040400] (__ASSUME_SENDMSG_SYSCALL):
+ Undefine.
+ [!__arch64__ && __LINUX_KERNEL_VERSION < 0x040400]
+ (__ASSUME_RECVMSG_SYSCALL): Likewise.
+ [!__arch64__ && __LINUX_KERNEL_VERSION < 0x040400]
+ (__ASSUME_SENDTO_SYSCALL): Likewise.
+ [!__arch64__ && __LINUX_KERNEL_VERSION < 0x040400]
+ (__ASSUME_ACCEPT_SYSCALL): Undefine under this condition, not just
+ [!__arch64__].
+ [!__arch64__ && __LINUX_KERNEL_VERSION < 0x040400]
+ (__ASSUME_CONNECT_SYSCALL): Likewise.
+ [!__arch64__ && __LINUX_KERNEL_VERSION < 0x040400]
+ (__ASSUME_RECVFROM_SYSCALL): Likewise.
+ [__LINUX_KERNEL_VERSION >= 0x040400] (__ASSUME_BIND_SYSCALL):
+ Define.
+ [__LINUX_KERNEL_VERSION >= 0x040400] (__ASSUME_LISTEN_SYSCALL):
+ Likewise.
+ [__LINUX_KERNEL_VERSION >= 0x040400]
+ (__ASSUME_SETSOCKOPT_SYSCALL): Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list (bind):
+ Remove.
+ (listen): Likewise.
+ (setsockopt): Likewise.
+
+2018-11-01 Fredrik Noring <noring@nocrew.org>
+
+ * sysdeps/mips/sys/tas.h (_test_and_set): Handle the R5900 CPU
+ with the ISA override.
+
+2018-10-31 Rafael Ãvila de Espíndola <rafael@espindo.la>
+
+ * sysdeps/unix/sysv/linux/sysdep-vdso.h: Simplify an #if #else
+ #endif.
+
+2018-10-31 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * manual/errno.texi (EIEIO): Document how translators should
+ translate the error message.
+ * sysdeps/mach/hurd/errnos.awk: Avoid printing errnos.d. Avoid
+ printing trailing whitespaces refused by git.
+ * sysdeps/gnu/errlist.c (EIEIO): Regenerate.
+ * sysdeps/mach/hurd/bits/errno.h: Regenerate.
+ * hurd/Makefile (user-interfaces): Add pci.
+
+2018-10-30 Joseph Myers <joseph@codesourcery.com>
+
+ * conform/linknamespace.py: New file.
+ * conform/linknamespace.pl: Remove file.
+ * conform/Makefile ($(linknamespace-header-tests)): Use
+ linknamespace.py instead of linknamespace.pl. Do not use --tmpdir
+ option.
+
+2018-10-30 Florian Weimer <fweimer@redhat.com>
+
+ * stdlib/test-bz22786.c (do_test): Additional free calls to avoid
+ memory leaks.
+
+2018-10-30 Florian Weimer <fweimer@redhat.com>
+
+ * support/blob_repeat.c (allocate_big): Call mkstemp directly.
+
+2018-10-30 Florian Weimer <fweimer@redhat.com>
+
+ * stdlib/tst-strtod-overflow.c (do_test): Switch to
+ support_blob_repeat.
+
+2018-10-30 Florian Weimer <fweimer@redhat.com>
+
+ Avoid spurious test failures in stdlib/test-bz22786.
+ * support/Makefile (libsupport-routines): Add blob_repeat.
+ (tests): Add tst-support_blob_repeat.
+ * support/blob_repeat.h: New file.
+ * support/blob_repeat.c: Likewise.
+ * support/tst-support_blob_repeat.c: Likewise.
+ * stdlib/test-bz22786.c (do_test): Replace malloc and memset with
+ support_blob_repeat_allocate.
+
+2018-10-30 Andreas Schwab <schwab@suse.de>
+
+ [BZ #23125]
+ * sysdeps/riscv/start.S (ENTRY_POINT): Mark ra as undefined.
+ Don't use tail call.
+ * elf/tst-unwind-main.c: New file.
+ * elf/Makefile (tests): Add tst-unwind-main.
+ (CFLAGS-tst-unwind-main.c): Define.
+
+2018-10-29 Sergi Almacellas Abellana <sergi@koolpi.com>
+
+ [BZ #23791]
+ * localedata/locales/ca_ES (LC_MONETARY): set p_cs_precedes and
+ n_cs_precedes to 0.
+ * localedata/locales/ca_ES (LC_MONETARY): set grouping to 3;3
+
+2018-10-29 Joseph Myers <joseph@codesourcery.com>
+
+ * conform/glibcconform.py: Do not import shutil.
+ (list_exported_functions): Use tempfile.TemporaryDirectory instead
+ of mkdtemp.
+
+ * configure.ac (PYTHON_PROG): Use AC_CHECK_PROG_VER. Set
+ critic_missing for versions before 3.4.
+ * configure: Regenerated.
+ * manual/install.texi (Tools for Compilation): Document
+ requirement for Python to build glibc.
+ * INSTALL: Regenerated.
+ * Rules [PYTHON]: Make code unconditional.
+ * benchtests/Makefile [PYTHON]: Likewise.
+ * conform/Makefile [PYTHON]: Likewise.
+ * manual/Makefile [PYTHON]: Likewise.
+ * math/Makefile [PYTHON]: Likewise.
+
+2018-10-28 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * hurd/hurdsig.c (_hurd_interrupted_rpc_timeout): Set to 60000.
+ * hurd/intr-msg.c (_hurd_intr_rpc_mach_msg): When the server does not
+ answer to interrupt_operation, return EIEIO instead of EINTR.
+ * sysdeps/mach/hurd/i386/intr-msg.h (INTR_MSG_TRAP): Make
+ _hurd_intr_rpc_msg_about_to global point to start of controlled
+ assembly snippet. Make it check canceled flag.
+ * hurd/hurdsig.c (_hurdsig_abort_rpcs): Only mutate thread if it passed
+ the _hurd_intr_rpc_msg_about_to point.
+ * hurd/intr-msg.c (_hurd_intr_rpc_mach_msg): Remove comment on mutation
+ issue, remove cancel flag check.
+
+2018-10-26 Joseph Myers <joseph@codesourcery.com>
+
+ * scripts/build-many-glibcs.py: Remove compatibility for missing
+ os.cpu_count and re.fullmatch.
+
+2018-10-26 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ [BZ #23822]
+ * sysdeps/ia64/fpu/e_exp2f.S (exp2f): Use WEAK_LIBM_ENTRY.
+ * sysdeps/ia64/fpu/e_log2f.S (log2f): Likewise.
+ * sysdeps/ia64/fpu/e_exp2f.S (powf): Likewise.
+
+2018-10-25 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/sys/inotify.h (IN_MASK_CREATE): New
+ macro.
+
+2018-10-25 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #23562]
+ [BZ #23821]
+ XFAIL siginfo_t si_band conform test on sparc64.
+ * sysdeps/unix/sysv/linux/sparc/bits/siginfo-arch.h
+ (__SI_BAND_TYPE): Only override long int default type on sparc64.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/Makefile
+ (conformtest-xfail-conds): Add sparc64-linux.
+ * conform/data/signal.h-data (siginfo_t): XFAIL si_band test on
+ sparc64.
+ * conform/data/sys/wait.h-data (siginfo_t): Likewise.
+
+2018-10-25 Joseph Myers <joseph@codesourcery.com>
+
+ * elf/elf.h (NT_MIPS_DSP): New macro.
+ (NT_MIPS_FP_MODE): Likewise.
+
+2018-10-25 Zong Li <zong@andestech.com>
+
+ * elf/Makefile (LDFLAGS-tst-execstack-mod.so): Change variable
+ name by adding the file extension (.so).
+
+2018-10-25 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * sysdeps/mach/hurd/i386/Makefile [$(subdir) = conform]
+ (test-xfail-ISO11/threads.h/linknamespace,
+ test-xfail-ISO11/threads.h/conform): Add.
+
+2018-10-24 Joseph Myers <joseph@codesourcery.com>
+
+ * math/gen-libm-test.py: Import os.
+ (ALL_FLOATS_MANUAL): New constant.
+ (ALL_FLOATS_SUFFIX): Likewise.
+ (Ulps.all_functions): New function.
+ (real_all_ulps): Likewise.
+ (generate_err_table_sub): Likewise.
+ (generate_err_table): Likewise.
+ (main): Handle -s and -m options.
+ * manual/libm-err-tab.pl: Remove.
+ * manual/Makefile ($(objpfx)stamp-libm-err): Use gen-libm-test.py
+ instead of libm-err-tab.pl.
+ [$(PERL) != no]: Change condition to [$(if $(PYTHON),$(PERL),no)
+ != no].
+ * manual/install.texi (Tools for Compilation): Document
+ requirement for Python to build manual.
+ * INSTALL: Regenerated.
+
+2018-10-24 Albert ARIBAUD <albert.aribaud@3adev.fr>
+
+ * bits/time64.h: New file.
+ * include/time.h: Replace internal_time_t with __time64_t.
+ * posix/bits/types (__time64_t): Add.
+ * stdlib/Makefile: Add bits/time64.h to includes.
+ * time/tzfile.c: Replace internal_time_t with __time64_t.
+
+2018-10-24 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * include/spawn.h (__posix_spawn, posix_spawn_file_actions_addclose,
+ __posix_spawn_file_actions_adddup2, __posix_spawn_file_actions_destroy,
+ __posix_spawn_file_actions_init, __posix_spawnattr_init,
+ __posix_spawnattr_destroy, __posix_spawnattr_setflags,
+ __posix_spawnattr_setsigdefault, __posix_spawnattr_setsigmask): New
+ prototype.
+ * posix/spawn.c (__posix_spawn): Add libc_hidden_def.
+ * posix/spawn_faction_addclose.c
+ (__posix_spawn_file_actions_addclose): Add hidden definition.
+ * posix/spawn_faction_adddup2.c
+ (__posix_spawn_file_actions_adddup2): Likewise.
+ * posix/spawn_faction_destroy.c
+ (__posix_spawn_file_actions_destroy): Likewise.
+ * posix/spawn_faction_init.c (__posix_spawn_file_actions_init):
+ Likewise.
+ * posix/spawnattr_destroy.c (__posix_spawnattr_destroy): Likewise.
+ * posix/spawnattr_init.c (__posix_spawnattr_init): Likewise.
+ * posix/spawnattr_setdefault.c (__posix_spawnattr_setsigdefault):
+ Likewise.
+ * posix/spawnattr_setflags.c (__posix_spawnattr_setflags): Likewise.
+ * posix/spawnattr_setsigmask.c (__posix_spawnattr_setsigmask):
+ Likewise.
+
+2018-10-24 Andreas Schwab <schwab@suse.de>
+
+ [BZ #18093]
+ * elf/dl-cache.c (_dl_load_cache_lookup): Check for truncated old
+ format cache.
+ * elf/cache.c (print_cache): Likewise.
+
+2018-10-24 Albert ARIBAUD <albert.aribaud@3adev.fr>
+
+ * bits/timesize.h: New file.
+ * stdlib/Makefile (headers): Add bits/timesize.h.
+ * sysdeps/unix/sysv/linux/bits/msq-pad.h
+ (__MSQ_PAD_AFTER_TIME): Use __TIMESIZE instead of __WORDSIZE.
+ * sysdeps/unix/sysv/linux/bits/sem-pad.h
+ (__SEM_PAD_AFTER_TIME): Likewise.
+ * sysdeps/unix/sysv/linux/bits/shm-pad.h
+ (__SHM_PAD_AFTER_TIME): Likewise.
+ * sysdeps/unix/sysv/linux/hppa/bits/msq-pad.h
+ (__MSQ_PAD_BEFORE_TIME): Likewise.
+ * sysdeps/unix/sysv/linux/hppa/bits/sem-pad.h
+ (__SEM_PAD_BEFORE_TIME): Likewise.
+ * sysdeps/unix/sysv/linux/hppa/bits/shm-pad.h
+ (__SHM_PAD_BEFORE_TIME, __SHM_PAD_BETWEEN_TIME_AND_SEGSZ): Likewise.
+ * sysdeps/unix/sysv/linux/mips/bits/msq-pad.h
+ (__MSQ_PAD_AFTER_TIME, __MSQ_PAD_BEFORE_TIME): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/bits/msq-pad.h
+ (__MSQ_PAD_BEFORE_TIME): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/bits/sem-pad.h
+ (__SEM_PAD_BEFORE_TIME): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/bits/shm-pad.h
+ (__SHM_PAD_BEFORE_TIME, __SHM_PAD_BETWEEN_TIME_AND_SEGSZ): Likewise.
+ * sysdeps/unix/sysv/linux/sparc/bits/msq-pad.h
+ (__MSQ_PAD_BEFORE_TIME): Likewise.
+ * sysdeps/unix/sysv/linux/sparc/bits/sem-pad.h
+ (__SEM_PAD_BEFORE_TIME): Likewise.
+ * sysdeps/unix/sysv/linux/sparc/bits/shm-pad.h
+ (__SHM_PAD_BEFORE_TIME): Likewise.
+ * sysdeps/unix/sysv/linux/x86/bits/msq-pad.h: Delete file.
+ * sysdeps/unix/sysv/linux/x86/bits/shm-pad.h: Likewise.
+ * sysdeps/unix/sysv/linux/x86/bits/timesize.h: New file.
+
+2018-10-24 H.J. Lu <hongjiu.lu@intel.com>
+
+ * benchtests/Makefile (CPPFLAGS-nonlib): Add -DUSE_RDTSCP if
+ USE_RDTSCP is defined.
+ * sysdeps/x86/hp-timing.h (HP_TIMING_NOW): Use RDTSCP if
+ USE_RDTSCP is defined.
+
+2018-10-23 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * misc/tst-preadvwritev2-common.c (IOV_MAX): Define if not
+ defined.
+
+ [BZ #23709]
+ * sysdeps/x86/cpu-features.c (init_cpu_features): Set TSX bits
+ independently of other flags.
+
+2018-10-23 Florian Weimer <fweimer@redhat.com>
+
+ * time/tst-mktime2.c (N_STRINGS): Remove.
+ (set_timezone): New function.
+ (spring_forward_gap): Call it. Use FAIL_EXIT1.
+ (mktime_test1): Report localtime failure and check errno value.
+ Use TEST_COMPARE.
+ (irix_6_4_bug, bigtime_test): Use TEST_COMPARE.
+ (do_test): Remove alarm call. Use set_timezone and array_length.
+
+2018-10-23 Andreas Schwab <schwab@suse.de>
+
+ * sysdeps/unix/sysv/linux/riscv/setcontext.S (__setcontext)
+ (__start_context): Use END instead of PSEUDO_END.
+
+2018-10-22 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/syscall-names.list: Update kernel
+ version to 4.19.
+
+ * scripts/build-many-glibcs.py (Context.checkout): Default Linux
+ version to 4.19.
+
+ [BZ #23793]
+ * wcsmbs/c32rtomb.c: New file.
+ * wcsmbs/mbrtoc32.c: Likewise.
+ * wcsmbs/tst-c32-state.c: Likewise.
+ * wcsmbs/mbrtowc.c (mbrtoc32): Do not define as alias.
+ * wcsmbs/wcrtomb.c (c32rtomb): Likewise.
+ * wcsmbs/Makefile (routines): Add mbrtoc32 and c32rtomb.
+ (tests): Add tst-c32-state.
+ [$(run-built-tests) = yes] ($(objpfx)tst-c32-state.out): Depend on
+ $(gen-locales).
+
+2018-10-21 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86/hp-timing.h: Don't include <x86intrin.h>.
+ (HP_TIMING_NOW): Replace _rdtsc with __builtin_ia32_rdtsc.
+
+2018-10-19 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #23794]
+ * wcsmbs/c16rtomb.c (c16rtomb): Save first character of surrogate
+ pair and return 0 in that case, and use saved character to
+ interpret following character.
+ * wcsmbs/tst-c16-surrogate.c: New file.
+ * wcsmbs/Makefile (tests): Add tst-c16-surrogate.c.
+ [$(run-built-tests) = yes] ($(objpfx)tst-c16-surrogate.out):
+ Depend on $(gen-locales)
+
+2018-10-19 Ilya Yu. Malakhov <malakhov@mcst.ru>
+
+ [BZ #23562]
+ * sysdeps/unix/sysv/linux/bits/types/siginfo_t.h
+ (struct siginfo_t): Use correct type for si_band.
+
+2018-10-19 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #23689]
+ * resource/bits/types/struct_rusage.h (struct rusage): Update
+ comment on struct. Remove extraneous field comment.
+
+2018-10-18 David S. Miller <davem@davemloft.net>
+
+ * sysdeps/unix/sysv/linux/sparc/init-first.c: New file.
+ * sysdeps/unix/sysv/linux/sparc/libc-vdso.h: New file.
+ * sysdeps/unix/sysv/linux/sparc/Makefile: Add dl-vdso to
+ sysdep_routines in subdir elf.
+ * sysdeps/unix/sysv/linux/sparc/Versions: Add GLIBC_PRIVATE
+ version for __vdso_clock_gettime.
+ * sysdeps/unix/sysv/linux/sparc/sysdep.h (INTERNAL_VSYSCALL_CALL):
+ Define.
+ (HAVE_CLOCK_GETTIME_VSYSCALL): Define.
+ (HAVE_GETTIMEOFDAY_VSYSCALL): Define.
+
+ * sysdeps/sparc/fpu/libm-test-ulps: Regenerated.
+
+2018-10-17 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/i386/init-arch.h: Removed.
+ * sysdeps/i386/i586/init-arch.h: Likewise.
+ * sysdeps/i386/i686/init-arch.h: Likewise.
+ * sysdeps/i386/i686/hp-timing.h: Likewise.
+ * sysdeps/x86_64/hp-timing.h: Likewise.
+ * sysdeps/i386/isa.h: New file.
+ * sysdeps/i386/i586/isa.h: Likewise.
+ * sysdeps/i386/i686/isa.h: Likewise.
+ * sysdeps/x86_64/isa.h: Likewise.
+ * sysdeps/x86/hp-timing.h: New file.
+ * sysdeps/x86/init-arch.h: Include <isa.h>.
+
+2018-10-17 Joseph Myers <joseph@codesourcery.com>
+
+ * math/libm-test-pow.inc (pow_test_data): Do not allow
+ divide-by-zero exception for pow(+/- 0, -Inf).
+
+2018-10-17 Zack Weinberg <zackw@panix.com>
+
+ * manual/job.texi (Job Control is Optional): Remove node, as
+ job control has not been optional in quite some time.
+ (Job Control): Mention briefly that systems older than
+ POSIX.1-2001 might not support job control.
+ * manual/conf.texi (_POSIX_JOB_CONTROL): Will always be
+ defined on systems conforming to POSIX.1-2001.
+
+2018-10-17 Arjun Shankar <arjun@redhat.com>
+
+ [BZ #22062]
+ * iconv/gconv_conf.c (__gconv_get_path): Remove locking and fix
+ indentation.
+ * (__gconv_read_conf): Mark function static.
+ * (once): New static variable.
+ * (__gconv_load_conf): New function.
+ * iconv/gconv_int.h (__gconv_load_conf): Likewise.
+ * iconv/gconv_db.c (once): Remove static variable.
+ * (__gconv_compare_alias): Use __gconv_load_conf instead of
+ __gconv_read_conf.
+ * (__gconv_find_transform): Likewise.
+ * iconv/tst-iconv-mt.c: New test.
+ * iconv/Makefile: Add tst-iconv_mt.
+
+2018-10-17 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
+ bits/shm-pad.h.
+ * sysdeps/unix/sysv/linux/bits/shm.h: Include <bits/shm-pad.h>.
+ (shmatt_t): Define as __syscall_ulong_t.
+ (__SHM_PAD_TIME): New macro, depending on [__SHM_PAD_BEFORE_TIME]
+ and [__SHM_PAD_AFTER_TIME].
+ (struct shmid_ds): Define time fields using __SHM_PAD_TIME.
+ Define shm_segsz and associated padding based on
+ [__SHM_SEGSZ_AFTER_TIME] and [__SHM_PAD_BETWEEN_TIME_AND_SEGSZ].
+ Use __syscall_ulong_t instead of unsigned long int.
+ [__USE_MISC] (struct shminfo): Use __syscall_ulong_t instead of
+ unsigned long int.
+ [__USE_MISC] (struct shm_info): Likewise.
+ * sysdeps/unix/sysv/linux/bits/shm-pad.h: New file.
+ * sysdeps/unix/sysv/linux/hppa/bits/shm-pad.h: Likewise.
+ * sysdeps/unix/sysv/linux/mips/bits/shm-pad.h: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/bits/shm-pad.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/bits/shm-pad.h: Likewise.
+ * sysdeps/unix/sysv/linux/x86/bits/shm-pad.h: Likewise.
+ * sysdeps/unix/sysv/linux/hppa/bits/shm.h: Remove.
+ * sysdeps/unix/sysv/linux/mips/bits/shm.h: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/bits/shm.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/bits/shm.h: Likewise.
+ * sysdeps/unix/sysv/linux/x86/bits/shm.h: Likewise.
+
+ * sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
+ bits/shmlba.h.
+ * sysdeps/unix/sysv/linux/bits/shm.h: Include <bits/shmlba.h>.
+ (SHMLBA): Remove macro.
+ (__getpagesize): Remove function declaration.
+ * sysdeps/unix/sysv/linux/hppa/bits/shm.h: Include
+ <bits/shmlba.h>.
+ (SHMLBA): Remove macro.
+ * sysdeps/unix/sysv/linux/mips/bits/shm.h: Include
+ <bits/shmlba.h>.
+ (SHMLBA): Remove macro.
+ * sysdeps/unix/sysv/linux/powerpc/bits/shm.h: Include
+ <bits/shmlba.h>.
+ (SHMLBA): Remove macro.
+ (__getpagesize): Remove function declaration.
+ * sysdeps/unix/sysv/linux/sparc/bits/shm.h: Include
+ <bits/shmlba.h>.
+ (SHMLBA): Remove macro.
+ (__getshmlba): Remove function declaration.
+ * sysdeps/unix/sysv/linux/x86/bits/shm.h: Include <bits/shmlba.h>.
+ (SHMLBA): Remove macro.
+ (__getpagesize): Remove function declaration.
+ * sysdeps/unix/sysv/linux/arm/bits/shm.h: Remove file.
+ * sysdeps/unix/sysv/linux/ia64/bits/shm.h: Likewise.
+ * sysdeps/unix/sysv/linux/sh/bits/shm.h: Likewise.
+ * sysdeps/unix/sysv/linux/bits/shmlba.h: New file.
+ * sysdeps/unix/sysv/linux/arm/bits/shmlba.h: Likewise.
+ * sysdeps/unix/sysv/linux/hppa/bits/shmlba.h: Likewise.
+ * sysdeps/unix/sysv/linux/ia64/bits/shmlba.h: Likewise.
+ * sysdeps/unix/sysv/linux/mips/bits/shmlba.h: Likewise.
+ * sysdeps/unix/sysv/linux/sh/bits/shmlba.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/bits/shmlba.h: Likewise.
+
+2018-10-17 Stefan Liebler <stli@linux.ibm.com>
+
+ [BZ #23275]
+ * nptl/tst-mutex10.c: New File.
+ * nptl/Makefile (tests): Add tst-mutex10.
+ (tst-mutex10-ENV): New variable.
+ * sysdeps/unix/sysv/linux/s390/force-elision.h: (FORCE_ELISION):
+ Ensure that elision path is used if elision is available.
+ * sysdeps/unix/sysv/linux/powerpc/force-elision.h (FORCE_ELISION):
+ Likewise.
+ * sysdeps/unix/sysv/linux/x86/force-elision.h: (FORCE_ELISION):
+ Likewise.
+ * nptl/pthreadP.h (PTHREAD_MUTEX_TYPE, PTHREAD_MUTEX_TYPE_ELISION)
+ (PTHREAD_MUTEX_PSHARED): Use atomic_load_relaxed.
+ * nptl/pthread_mutex_consistent.c (pthread_mutex_consistent): Likewise.
+ * nptl/pthread_mutex_getprioceiling.c (pthread_mutex_getprioceiling):
+ Likewise.
+ * nptl/pthread_mutex_lock.c (__pthread_mutex_lock_full)
+ (__pthread_mutex_cond_lock_adjust): Likewise.
+ * nptl/pthread_mutex_setprioceiling.c (pthread_mutex_setprioceiling):
+ Likewise.
+ * nptl/pthread_mutex_timedlock.c (__pthread_mutex_timedlock): Likewise.
+ * nptl/pthread_mutex_trylock.c (__pthread_mutex_trylock): Likewise.
+ * nptl/pthread_mutex_unlock.c (__pthread_mutex_unlock_full): Likewise.
+ * sysdeps/nptl/bits/thread-shared-types.h (struct __pthread_mutex_s):
+ Add comments.
+ * nptl/pthread_mutex_destroy.c (__pthread_mutex_destroy):
+ Use atomic_load_relaxed and atomic_store_relaxed.
+ * nptl/pthread_mutex_init.c (__pthread_mutex_init):
+ Use atomic_store_relaxed.
+
+2018-10-17 Andreas Schwab <schwab@suse.de>
+
+ * benchtests/bench-strtod.c (TIMEOUT): Don't define.
+ * crypt/badsalttest.c (TIMEOUT): Likewise.
+ * crypt/sha256c-test.c (TIMEOUT): Likewise.
+ * dirent/tst-fdopendir.c (TIMEOUT): Likewise.
+ * io/test-lfs.c (TIMEOUT): Likewise.
+ * libio/tst-atime.c (TIMEOUT): Likewise.
+ * localedata/tst-leaks.c (TIMEOUT): Likewise.
+ * nptl/tst-cancel19.c (TIMEOUT): Likewise.
+ * nptl/tst-cancel22.c (TIMEOUT): Likewise.
+ * nptl/tst-cancel25.c (TIMEOUT): Likewise.
+ * nptl/tst-cancel7.c (TIMEOUT): Likewise.
+ * nptl/tst-cond-except.c (TIMEOUT): Likewise.
+ * nptl/tst-cond11.c (TIMEOUT): Likewise.
+ * nptl/tst-cond14.c (TIMEOUT): Likewise.
+ * nptl/tst-cond15.c (TIMEOUT): Likewise.
+ * nptl/tst-cond24.c (TIMEOUT): Likewise.
+ * nptl/tst-cond25.c (TIMEOUT): Likewise.
+ * nptl/tst-kill2.c (TIMEOUT): Likewise.
+ * nptl/tst-kill3.c (TIMEOUT): Likewise.
+ * nptl/tst-mutex4.c (TIMEOUT): Likewise.
+ * nptl/tst-mutex5.c (TIMEOUT): Likewise.
+ * nptl/tst-mutex9.c (TIMEOUT): Likewise.
+ * nptl/tst-once2.c (TIMEOUT): Likewise.
+ * nptl/tst-once3.c (TIMEOUT): Likewise.
+ * nptl/tst-once4.c (TIMEOUT): Likewise.
+ * nptl/tst-robust8.c (TIMEOUT): Likewise.
+ * nptl/tst-robust9.c (TIMEOUT): Likewise.
+ * nptl/tst-rwlock16.c (TIMEOUT): Likewise.
+ * nptl/tst-sem14.c (TIMEOUT): Likewise.
+ * nptl/tst-sem6.c (TIMEOUT): Likewise.
+ * nptl/tst-signal3.c (TIMEOUT): Likewise.
+ * nptl/tst-spin4.c (TIMEOUT): Likewise.
+ * nptl/tst-tls3.c (TIMEOUT): Likewise.
+ * nptl/tst-tls4.c (TIMEOUT): Likewise.
+ * posix/tst-chmod.c (TIMEOUT): Likewise.
+ * posix/tst-getaddrinfo4.c (TIMEOUT): Likewise.
+ * posix/tst-getaddrinfo5.c (TIMEOUT): Likewise.
+ * posix/tst-preadwrite-common.c (TIMEOUT): Likewise.
+ * posix/tst-regex2.c (TIMEOUT): Likewise.
+ * posix/tst-waitid.c (TIMEOUT): Likewise.
+ * rt/tst-aio.c (TIMEOUT): Likewise.
+ * rt/tst-aio10.c (TIMEOUT): Likewise.
+ * rt/tst-aio4.c (TIMEOUT): Likewise.
+ * rt/tst-aio5.c (TIMEOUT): Likewise.
+ * rt/tst-aio6.c (TIMEOUT): Likewise.
+ * rt/tst-aio64.c (TIMEOUT): Likewise.
+ * rt/tst-aio7.c (TIMEOUT): Likewise.
+ * rt/tst-aio9.c (TIMEOUT): Likewise.
+ * rt/tst-clock.c (TIMEOUT): Likewise.
+ * rt/tst-cpuclock1.c (TIMEOUT): Likewise.
+ * rt/tst-cpuclock2.c (TIMEOUT): Likewise.
+ * rt/tst-mqueue2.c (TIMEOUT): Likewise.
+ * rt/tst-mqueue4.c (TIMEOUT): Likewise.
+ * rt/tst-mqueue5.c (TIMEOUT): Likewise.
+ * rt/tst-timer4.c (TIMEOUT): Likewise.
+ * stdio-common/tst-fseek.c (TIMEOUT): Likewise.
+ * stdio-common/tst-rndseek.c (TIMEOUT): Likewise.
+ * stdlib/tst-empty-env.c (TIMEOUT): Likewise.
+ * sysdeps/wordsize-64/tst-writev.c (TIMEOUT): Likewise.
+ * time/tst-ftime.c (TIMEOUT): Likewise.
+ * timezone/tst-tzset.c (TIMEOUT): Likewise.
+
+2018-10-16 Anton Youdkevitch <anton.youdkevitch@bell-sw.com>
+
+ * sysdeps/aarch64/multiarch/memcpy_thunderx.S: Remove thunderx2 code.
+ * sysdeps/aarch64/multiarch/memcpy_thunderx2.S: New implementation
+ for thunderX2.
+
+2018-10-15 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
+ bits/sem-pad.h.
+ * sysdeps/unix/sysv/linux/bits/sem.h: Include <bits/sem-pad.h>
+ instead of <bits/wordsize.h>.
+ (__SEM_PAD_TIME): New macro, depending on [__SEM_PAD_BEFORE_TIME]
+ and [__SEM_PAD_AFTER_TIME].
+ (struct semid_ds): Define time fields using __SEM_PAD_TIME. Use
+ __syscall_ulong_t instead of unsigned long int.
+ * sysdeps/unix/sysv/linux/bits/sem-pad.h: New file.
+ * sysdeps/unix/sysv/linux/hppa/bits/sem-pad.h: Likewise.
+ * sysdeps/unix/sysv/linux/mips/bits/sem-pad.h: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/bits/sem-pad.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/bits/sem-pad.h: Likewise.
+ * sysdeps/unix/sysv/linux/x86/bits/sem-pad.h: Likewise.
+ * sysdeps/unix/sysv/linux/hppa/bits/sem.h: Remove.
+ * sysdeps/unix/sysv/linux/mips/bits/sem.h: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/bits/sem.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/bits/sem.h: Likewise.
+ * sysdeps/unix/sysv/linux/x86/bits/sem.h: Likewise.
+
+2018-10-14 Paul Eggert <eggert@cs.ucla.edu>
+
+ regex: simplify by using intprops.h
+ [BZ#23744]
+ * posix/regex_internal.h [_LIBC]: Include intprops.h.
+ (TYPE_SIGNED, INT_ADD_WRAPV) [_LIBC]: Remove.
+ intprops.h defines them.
+
+ regex: __builtin_expect → __glibc_unlikely
+ [BZ#23744]
+ This refactoring was prompted by a problem when the regex code is
+ used as part of Gnulib and when the builder’s compiler does not grok
+ __builtin_expect. Problem reported for Gawk by Nelson H.F. Beebe in:
+ https://lists.gnu.org/r/bug-gnulib/2018-09/msg00137.html
+ Although this refactoring does not fix the problem directly,
+ we might as well have Gawk use the now-preferred glibc style for when
+ __builtin_expect is unavailable.
+ * posix/regex_internal.h (BE): Remove.
+ All uses replaced by __glibc_unlikely or __glibc_likely.
+
+2018-10-11 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
+ bits/msq-pad.h.
+ * sysdeps/unix/sysv/linux/bits/msq.h: Include <bits/msq-pad.h>
+ instead of <bits/wordsize.h>.
+ (msgqnum_t): Define as __syscall_ulong_t.
+ (msglen_t): Likewise.
+ (__MSQ_PAD_TIME): New macro, depending on [__MSQ_PAD_BEFORE_TIME]
+ and [__MSQ_PAD_AFTER_TIME].
+ (struct msqid_ds): Define time fields using __MSQ_PAD_TIME. Use
+ __syscall_ulong_t instead of unsigned long int.
+ * sysdeps/unix/sysv/linux/bits/msq-pad.h: New file.
+ * sysdeps/unix/sysv/linux/hppa/bits/msq-pad.h: Likewise.
+ * sysdeps/unix/sysv/linux/mips/bits/msq-pad.h: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/bits/msq-pad.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/bits/msq-pad.h: Likewise.
+ * sysdeps/unix/sysv/linux/x86/bits/msq-pad.h: Likewise.
+ * sysdeps/unix/sysv/linux/hppa/bits/msq.h: Remove.
+ * sysdeps/unix/sysv/linux/mips/bits/msq.h: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/bits/msq.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/bits/msq.h: Likewise.
+ * sysdeps/unix/sysv/linux/x86/bits/msq.h: Likewise.
+
+2018-10-10 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/bits/shm.h: Include <bits/wordsize.h>.
+ (struct shmid_ds): Condition padding after time fields on
+ [__WORDSIZE == 32].
+ * sysdeps/unix/sysv/linux/alpha/bits/shm.h: Remove file.
+ * sysdeps/unix/sysv/linux/generic/bits/shm.h: Likewise.
+ * sysdeps/unix/sysv/linux/s390/bits/shm.h: Likewise.
+
+ * sysdeps/unix/sysv/linux/bits/sem.h: Include <bits/wordsize.h>.
+ (struct semid_ds): Condition padding after time fields on
+ [__WORDSIZE == 32].
+ * sysdeps/unix/sysv/linux/alpha/bits/sem.h: Remove file.
+ * sysdeps/unix/sysv/linux/generic/bits/sem.h: Likewise.
+ * sysdeps/unix/sysv/linux/ia64/bits/sem.h: Likewise.
+ * sysdeps/unix/sysv/linux/s390/bits/sem.h: Likewise.
+
+ * sysdeps/unix/sysv/linux/bits/msq.h: Include <bits/wordsize.h>.
+ (struct msqid_ds): Condition padding after time fields on
+ [__WORDSIZE == 32].
+ * sysdeps/unix/sysv/linux/alpha/bits/msq.h: Remove file.
+ * sysdeps/unix/sysv/linux/generic/bits/msq.h: Likewise.
+ * sysdeps/unix/sysv/linux/ia64/bits/msq.h: Likewise.
+ * sysdeps/unix/sysv/linux/s390/bits/msq.h: Likewise.
+
+2018-10-09 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * nss/tst-nss-files-hosts-multi.c (TIMEOUT): Define.
+
+2018-10-09 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * libio/tst-readline.c (TIMEOUT): Define.
+
+2018-10-08 Paul Eggert <eggert@cs.ucla.edu>
+
+ mktime fix for Gnulib + coreutils
+ [BZ#23745]
+ This fix affects only Gnulib. Problem discovered when
+ mktime.c was used as part of Gnulib in bleeding-edge Coreutils.
+ * time/mktime.c:
+ (my_tzset) [!_LIBC && !NEED_MKTIME_WORKING && !NEED_MKTIME_WINDOWS]:
+ Do not define since it is not used. Defining an unused static
+ function prompts a warning from GCC when Coreutils is configured
+ with --enable-gcc-warnings.
+
+2018-10-08 Leonardo Sandoval <leonardo.sandoval.gonzalez@intel.com>
+
+ * benchtests/scripts/compare_bench.py (main): set float type on
+ threshold argument.
+
+2018-10-08 Rafał Lużyński <digitalfreak@lingonborough.com>
+
+ [BZ #23740]
+ * localedata/locales/kl_GL (mon): Update, the relative case.
+ (alt_mon): Add, fill with month names in the nominative case.
+ (d_t_fmt): Set to "%a %b %d %Y %T %Z".
+ (d_fmt): Set to "%b %d %Y".
+
+2018-10-04 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/hppa/bits/mman.h: Include
+ <bits/mman-linux.h>.
+ (PROT_READ): Don't define here.
+ (PROT_WRITE): Likewise.
+ (PROT_EXEC): Likewise.
+ (PROT_NONE): Likewise.
+ (PROT_GROWSDOWN): Likewise.
+ (PROT_GROWSUP): Likewise.
+ (MAP_SHARED): Likewise.
+ (MAP_PRIVATE): Likewise.
+ [__USE_MISC] (MAP_SHARED_VALIDATE): Likewise.
+ [__USE_MISC] (MAP_FILE): Likewise.
+ [__USE_MISC] (MAP_ANONYMOUS): Likewise.
+ [__USE_MISC] (MAP_ANON): Likewise.
+ [__USE_MISC] (MAP_HUGE_SHIFT): Likewise.
+ [__USE_MISC] (MAP_HUGE_MASK): Likewise.
+ (MCL_CURRENT): Likewise.
+ (MCL_FUTURE): Likewise.
+ (MCL_ONFAULT): Likewise.
+ [__USE_MISC] (MADV_NORMAL): Likewise.
+ [__USE_MISC] (MADV_RANDOM): Likewise.
+ [__USE_MISC] (MADV_SEQUENTIAL): Likewise.
+ [__USE_MISC] (MADV_WILLNEED): Likewise.
+ [__USE_MISC] (MADV_DONTNEED): Likewise.
+ [__USE_MISC] (MADV_FREE): Likewise.
+ [__USE_MISC] (MADV_REMOVE): Likewise.
+ [__USE_MISC] (MADV_DONTFORK): Likewise.
+ [__USE_MISC] (MADV_DOFORK): Likewise.
+ [__USE_MISC] (MADV_HWPOISON): Likewise.
+ [__USE_XOPEN2K] (POSIX_MADV_NORMAL): Likewise.
+ [__USE_XOPEN2K] (POSIX_MADV_RANDOM): Likewise.
+ [__USE_XOPEN2K] (POSIX_MADV_SEQUENTIAL): Likewise.
+ [__USE_XOPEN2K] (POSIX_MADV_WILLNEED): Likewise.
+ [__USE_XOPEN2K] (POSIX_MADV_DONTNEED): Likewise.
+ (__MAP_ANONYMOUS): New macro.
+ [__USE_MISC] (MAP_TYPE): Undefine and redefine after
+ <bits/mman-linux.h> inclusion.
+ (MAP_FIXED): Likewise.
+ (MS_SYNC): Likewise.
+ (MS_ASYNC): Likewise.
+ (MS_INVALIDATE): Likewise.
+ [__USE_MISC] (MADV_MERGEABLE): Likewise.
+ [__USE_MISC] (MADV_UNMERGEABLE): Likewise.
+ [__USE_MISC] (MADV_HUGEPAGE): Likewise.
+ [__USE_MISC] (MADV_NOHUGEPAGE): Likewise.
+ [__USE_MISC] (MADV_DONTDUMP): Likewise.
+ [__USE_MISC] (MADV_DODUMP): Likewise.
+ [__USE_MISC] (MADV_WIPEONFORK): Likewise.
+ [__USE_MISC] (MADV_KEEPONFORK): Likewise.
+
+ [BZ #23735]
+ * sysdeps/ieee754/ldbl-opt/nldbl-compat.h (NO_MATH_REDIRECT):
+ Define.
+ * sysdeps/ieee754/ldbl-opt/test-nldbl-redirect.c: New file.
+ * sysdeps/ieee754/ldbl-opt/Makefile [$(subdir) = math] (tests):
+ Add test-nldbl-redirect.
+ [$(subdir) = math] (CFLAGS-test-nldbl-redirect.c): New variable.
+ [$(subdir) = math] ($(objpfx)test-nldbl-redirect): Depend on
+ $(objpfx)libnldbl_nonshared.a.
+
+2018-10-04 Stefan Liebler <stli@linux.ibm.com>
+
+ * support/support.h (support_objdir_elf_ldso): New variable.
+ * support/support_paths.c (support_objdir_elf_ldso): Likewise.
+ * support/Makefile (CFLAGS-support_paths.c): Add definition
+ for OBJDIR_ELF_LDSO_PATH.
+ * support/test-container.c (main): Search for the ld.so
+ which is also used by the testsuite.
+
+2018-10-02 Rafał Lużyński <digitalfreak@lingonborough.com>
+
+ [BZ #20209]
+ * localedata/locales/kl_GL: (abday): Fix spelling of Sun (Sunday),
+ should be "sap" rather than "sab".
+ (day): Fix spelling of Sunday, should be "sapaat" rather than
+ "sabaat".
+
+2018-10-02 Joseph Myers <joseph@codesourcery.com>
+
+ * math/libm-test-fma.inc (fma_test_data): Add more tests.
+
+2018-10-02 Martin Jansa <Martin.Jansa@gmail.com>
+
+ [BZ #19444]
+ * sysdeps/ieee754/soft-fp/s_fdiv.c: Include <libc-diag.h> and use
+ DIAG_PUSH_NEEDS_COMMENT, DIAG_IGNORE_NEEDS_COMMENT and
+ DIAG_POP_NEEDS_COMMENT to disable -Wmaybe-uninitialized.
+
+2018-10-02 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/unix/sysv/linux/fd_to_filename.h: Add missing includes.
+
+2018-10-02 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/unix/sysv/linux/x86/Makefile (CFLAGS-elision-lock.c):
+ Add -mrtm.
+ (CFLAGS-elision-unlock.c): Likewise.
+ (CFLAGS-elision-timed.c): Likewise.
+ (CFLAGS-elision-trylock.c): Likewise.
+ * sysdeps/unix/sysv/linux/x86/hle.h: Rewritten.
+
+2018-10-02 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ [BZ #21037]
+ * libio/Makefile (tests): Add tst-memstream4 and tst-wmemstream4.
+ * libio/freopen.c (freopen): Sync stream before reopen and adjust to
+ new fd_to_filename interface.
+ * libio/freopen64.c (freopen64): Likewise.
+ * libio/tst-memstream.h: New file.
+ * libio/tst-memstream4.c: Likewise.
+ * libio/tst-wmemstream4.c: Likewise.
+ * sysdeps/generic/fd_to_filename.h (fd_to_filename): Change signature.
+ * sysdeps/unix/sysv/linux/fd_to_filename.h (fd_to_filename): Likewise
+ and remove internal dynamic allocation.
+
+2018-10-01 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/bits/mman-linux.h [__USE_GNU]
+ (MREMAP_MAYMOVE): Do not define here.
+ [__USE_GNU] (MREMAP_FIXED): Likewise.
+ * sysdeps/unix/sysv/linux/bits/mman-shared.h [__USE_GNU]
+ (MREMAP_MAYMOVE): Define here instead.
+ [__USE_GNU] (MREMAP_FIXED): Likewise.
+ * sysdeps/unix/sysv/linux/hppa/bits/mman.h [__USE_GNU]
+ (MREMAP_MAYMOVE): Remove.
+ [__USE_GNU] (MREMAP_FIXED): Likewise.
+
+2018-09-28 Joseph Myers <joseph@codesourcery.com>
+
+ * math/fromfp.h: Do not include <math_private.h>.
+ * math/s_cacosh_template.c: Likewise.
+ * math/s_casin_template.c: Likewise.
+ * math/s_casinh_template.c: Likewise.
+ * math/s_ccos_template.c: Likewise.
+ * math/s_cproj_template.c: Likewise.
+ * math/s_fdim_template.c: Likewise.
+ * math/s_fmaxmag_template.c: Likewise.
+ * math/s_fminmag_template.c: Likewise.
+ * math/s_iseqsig_template.c: Likewise.
+ * math/s_ldexp_template.c: Likewise.
+ * math/s_nextdown_template.c: Likewise.
+ * math/w_log1p_template.c: Likewise.
+ * math/w_scalbln_template.c: Likewise.
+ * sysdeps/aarch64/fpu/feholdexcpt.c: Likewise.
+ * sysdeps/aarch64/fpu/fesetround.c: Likewise.
+ * sysdeps/aarch64/fpu/fgetexcptflg.c: Likewise.
+ * sysdeps/aarch64/fpu/ftestexcept.c: Likewise.
+ * sysdeps/aarch64/fpu/s_llrint.c: Likewise.
+ * sysdeps/aarch64/fpu/s_llrintf.c: Likewise.
+ * sysdeps/aarch64/fpu/s_lrint.c: Likewise.
+ * sysdeps/aarch64/fpu/s_lrintf.c: Likewise.
+ * sysdeps/i386/fpu/s_atanl.c: Likewise.
+ * sysdeps/i386/fpu/s_f32xaddf64.c: Likewise.
+ * sysdeps/i386/fpu/s_f32xsubf64.c: Likewise.
+ * sysdeps/i386/fpu/s_fdim.c: Likewise.
+ * sysdeps/i386/fpu/s_logbl.c: Likewise.
+ * sysdeps/i386/fpu/s_rintl.c: Likewise.
+ * sysdeps/i386/fpu/s_significandl.c: Likewise.
+ * sysdeps/ia64/fpu/s_matherrf.c: Likewise.
+ * sysdeps/ia64/fpu/s_matherrl.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_atan.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_cbrt.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_fma.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_fmaf.c: Likewise.
+ * sysdeps/ieee754/flt-32/s_cbrtf.c: Likewise.
+ * sysdeps/ieee754/k_standardf.c: Likewise.
+ * sysdeps/ieee754/k_standardl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_copysignl.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_finitel.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_fpclassifyl.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_isinfl.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_isnanl.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_signbitl.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/s_cbrtl.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/s_fma.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/s_fmal.c: Likewise.
+ * sysdeps/ieee754/s_signgam.c: Likewise.
+ * sysdeps/powerpc/power5+/fpu/s_modf.c: Likewise.
+ * sysdeps/powerpc/power5+/fpu/s_modff.c: Likewise.
+ * sysdeps/powerpc/power7/fpu/s_logbf.c: Likewise.
+ * sysdeps/riscv/rv64/rvd/s_ceil.c: Likewise.
+ * sysdeps/riscv/rv64/rvd/s_floor.c: Likewise.
+ * sysdeps/riscv/rv64/rvd/s_nearbyint.c: Likewise.
+ * sysdeps/riscv/rv64/rvd/s_round.c: Likewise.
+ * sysdeps/riscv/rv64/rvd/s_roundeven.c: Likewise.
+ * sysdeps/riscv/rv64/rvd/s_trunc.c: Likewise.
+ * sysdeps/riscv/rvd/s_finite.c: Likewise.
+ * sysdeps/riscv/rvd/s_fmax.c: Likewise.
+ * sysdeps/riscv/rvd/s_fmin.c: Likewise.
+ * sysdeps/riscv/rvd/s_fpclassify.c: Likewise.
+ * sysdeps/riscv/rvd/s_isinf.c: Likewise.
+ * sysdeps/riscv/rvd/s_isnan.c: Likewise.
+ * sysdeps/riscv/rvd/s_issignaling.c: Likewise.
+ * sysdeps/riscv/rvf/fegetround.c: Likewise.
+ * sysdeps/riscv/rvf/feholdexcpt.c: Likewise.
+ * sysdeps/riscv/rvf/fesetenv.c: Likewise.
+ * sysdeps/riscv/rvf/fesetround.c: Likewise.
+ * sysdeps/riscv/rvf/feupdateenv.c: Likewise.
+ * sysdeps/riscv/rvf/fgetexcptflg.c: Likewise.
+ * sysdeps/riscv/rvf/ftestexcept.c: Likewise.
+ * sysdeps/riscv/rvf/s_ceilf.c: Likewise.
+ * sysdeps/riscv/rvf/s_finitef.c: Likewise.
+ * sysdeps/riscv/rvf/s_floorf.c: Likewise.
+ * sysdeps/riscv/rvf/s_fmaxf.c: Likewise.
+ * sysdeps/riscv/rvf/s_fminf.c: Likewise.
+ * sysdeps/riscv/rvf/s_fpclassifyf.c: Likewise.
+ * sysdeps/riscv/rvf/s_isinff.c: Likewise.
+ * sysdeps/riscv/rvf/s_isnanf.c: Likewise.
+ * sysdeps/riscv/rvf/s_issignalingf.c: Likewise.
+ * sysdeps/riscv/rvf/s_nearbyintf.c: Likewise.
+ * sysdeps/riscv/rvf/s_roundevenf.c: Likewise.
+ * sysdeps/riscv/rvf/s_roundf.c: Likewise.
+ * sysdeps/riscv/rvf/s_truncf.c: Likewise.
+ * sysdeps/riscv/rv64/rvd/s_rint.c: Include <stdbool.h> instead of
+ <math_private.h>.
+ * sysdeps/riscv/rvf/s_rintf.c: Likewise.
+
+2018-09-28 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #23716]
+ * sysdeps/i386/dl-cet.c: Removed.
+ * sysdeps/i386/dl-machine.h (_dl_runtime_resolve_shstk): New
+ prototype.
+ (_dl_runtime_profile_shstk): Likewise.
+ (elf_machine_runtime_setup): Use _dl_runtime_profile_shstk or
+ _dl_runtime_resolve_shstk if SHSTK is enabled by kernel.
+
+2018-09-28 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ [BZ #23579]
+ * misc/tst-preadvwritev2-common.c (do_test_with_invalid_fd,
+ do_test_with_invalid_iov): New tests.
+ * misc/tst-preadvwritev2.c, misc/tst-preadvwritev64v2.c (do_test):
+ Call do_test_with_invalid_fd and do_test_with_invalid_iov.
+ * sysdeps/unix/sysv/linux/preadv2.c (preadv2): Use fallback code iff
+ errno is ENOSYS.
+ * sysdeps/unix/sysv/linux/preadv64v2.c (preadv64v2): Likewise.
+ * sysdeps/unix/sysv/linux/pwritev2.c (pwritev2): Likewise.
+ * sysdeps/unix/sysv/linux/pwritev64v2.c (pwritev64v2): Likewise.
+
+2018-09-27 Joseph Myers <joseph@codesourcery.com>
+
+ * include/math.h [!_ISOMAC && !(__FINITE_MATH_ONLY__ &&
+ __FINITE_MATH_ONLY__ > 0) && !NO_MATH_REDIRECT]
+ (MATH_REDIRECT_BINARY_ARGS): New macro.
+ [!_ISOMAC && !(__FINITE_MATH_ONLY__ && __FINITE_MATH_ONLY__ > 0)
+ && !NO_MATH_REDIRECT] (copysign): Redirect using MATH_REDIRECT.
+ * sysdeps/alpha/fpu/s_copysign.c: Define NO_MATH_REDIRECT before
+ header inclusion.
+ * sysdeps/alpha/fpu/s_copysignf.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_copysign.c: Likewise.
+ * sysdeps/ieee754/float128/s_copysignf128.c: Likewise.
+ * sysdeps/ieee754/flt-32/s_copysignf.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/s_copysignl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_copysignl.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/s_copysignl.c: Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysign.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysignf.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysignf.c: Likewise.
+ * sysdeps/riscv/rvd/s_copysign.c: Likewise.
+ * sysdeps/riscv/rvf/s_copysignf.c: Likewise.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysign.c:
+ Likewise.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysignf.c:
+ Likewise.
+ * sysdeps/generic/math_private_calls.h
+ [!__MATH_DECLARING_LONG_DOUBLE || !NO_LONG_DOUBLE] (__copysign):
+ Do not declare and define as an inline function.
+ * math/divtc3.c (__divtc3): Use copysign functions instead of
+ __copysign variants.
+ * math/multc3.c (__multc3): Likewise.
+ * sysdeps/generic/math-type-macros.h (M_COPYSIGN): Likewise.
+ * sysdeps/ieee754/dbl-64/e_atan2.c (signArctan2): Likewise.
+ * sysdeps/ieee754/dbl-64/e_atanh.c (__ieee754_atanh): Likewise.
+ * sysdeps/ieee754/dbl-64/e_gamma_r.c (__ieee754_gamma_r):
+ Likewise.
+ * sysdeps/ieee754/dbl-64/e_jn.c (__ieee754_jn): Likewise.
+ (__ieee754_yn): Likewise.
+ * sysdeps/ieee754/dbl-64/s_asinh.c (__asinh): Likewise.
+ * sysdeps/ieee754/dbl-64/s_atan.c (__signArctan): Likewise.
+ * sysdeps/ieee754/dbl-64/s_scalbln.c (__scalbln): Likewise.
+ * sysdeps/ieee754/dbl-64/s_scalbn.c (__scalbn): Likewise.
+ * sysdeps/ieee754/dbl-64/s_sin.c (do_sin): Likewise.
+ (__sin): Likewise.
+ * sysdeps/ieee754/dbl-64/s_sincos.c (__sincos): Likewise.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c (__nearbyint):
+ Likewise.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_scalbln.c (__scalbln):
+ Likewise.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_scalbn.c (__scalbn):
+ Likewise.
+ * sysdeps/ieee754/flt-32/e_atanhf.c (__ieee754_atanhf): Likewise.
+ * sysdeps/ieee754/flt-32/e_gammaf_r.c (__ieee754_gammaf_r):
+ Likewise.
+ * sysdeps/ieee754/flt-32/e_jnf.c (__ieee754_jnf): Likewise.
+ (__ieee754_ynf): Likewise.
+ * sysdeps/ieee754/flt-32/s_asinhf.c (__asinhf): Likewise.
+ * sysdeps/ieee754/flt-32/s_scalbnf.c (__scalbnf): Likewise.
+ * sysdeps/ieee754/k_standard.c (__kernel_standard): Likewise.
+ * sysdeps/ieee754/ldbl-128/e_gammal_r.c (__ieee754_gammal_r):
+ Likewise.
+ * sysdeps/ieee754/ldbl-128/e_jnl.c (__ieee754_jnl): Likewise.
+ (__ieee754_ynl): Likewise.
+ * sysdeps/ieee754/ldbl-128/s_scalblnl.c (__scalblnl): Likewise.
+ * sysdeps/ieee754/ldbl-128/s_scalbnl.c (__scalbnl): Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c (__ieee754_gammal_r):
+ Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_jnl.c (__ieee754_jnl): Likewise.
+ (__ieee754_ynl): Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_fmal.c (__fmal): Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_scalblnl.c (__scalblnl): Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_scalbnl.c (__scalbnl): Likewise.
+ * sysdeps/ieee754/ldbl-96/e_gammal_r.c (__ieee754_gammal_r):
+ Likewise.
+ * sysdeps/ieee754/ldbl-96/e_jnl.c (__ieee754_jnl): Likewise.
+ (__ieee754_ynl)
+ * sysdeps/ieee754/ldbl-96/s_asinhl.c (__asinhl): Likewise.
+ * sysdeps/ieee754/ldbl-96/s_scalblnl.c (__scalblnl): Likewise.
+ * sysdeps/ieee754/ldbl-opt/nldbl-copysign.c (copysignl): Likewise.
+ * sysdeps/powerpc/power5+/fpu/s_modf.c (__modf): Likewise.
+ * sysdeps/powerpc/power5+/fpu/s_modff.c (__modff): Likewise.
+
+ * include/math.h [!_ISOMAC && !(__FINITE_MATH_ONLY__ &&
+ __FINITE_MATH_ONLY__ > 0) && !NO_MATH_REDIRECT] (round): Redirect
+ using MATH_REDIRECT.
+ * sysdeps/aarch64/fpu/s_round.c: Define NO_MATH_REDIRECT before
+ header inclusion.
+ * sysdeps/aarch64/fpu/s_roundf.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_round.c: Likewise.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_round.c: Likewise.
+ * sysdeps/ieee754/float128/s_roundf128.c: Likewise.
+ * sysdeps/ieee754/flt-32/s_roundf.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/s_roundl.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/s_roundl.c: Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_round.c: Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_roundf.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_round.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_roundf.c: Likewise.
+ * sysdeps/riscv/rv64/rvd/s_round.c: Likewise.
+ * sysdeps/riscv/rvf/s_roundf.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_roundl.c: Likewise.
+ (round): Redirect to __round.
+ (__roundl): Call round instead of __round.
+ * sysdeps/powerpc/fpu/math_private.h [_ARCH_PWR5X] (__round):
+ Remove macro.
+ [_ARCH_PWR5X] (__roundf): Likewise.
+ * sysdeps/ieee754/dbl-64/e_gamma_r.c (gamma_positive): Use round
+ functions instead of __round variants.
+ * sysdeps/ieee754/flt-32/e_gammaf_r.c (gammaf_positive): Likewise.
+ * sysdeps/ieee754/ldbl-128/e_gammal_r.c (gammal_positive):
+ Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c (gammal_positive):
+ Likewise.
+ * sysdeps/ieee754/ldbl-96/e_gammal_r.c (gammal_positive):
+ Likewise.
+ * sysdeps/x86/fpu/powl_helper.c (__powl_helper): Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_expl.c (lroundl): Redirect to
+ __lroundl.
+ (__ieee754_expl): Call roundl instead of __roundl.
+
+2018-09-27 Andreas Schwab <schwab@suse.de>
+
+ [BZ #23717]
+ * stdlib/tst-setcontext9.c (f1a): Make st2 static.
+ (do_test): Make st1 static.
+
+2018-09-26 Andreas Schwab <schwab@suse.de>
+
+ [BZ #23707]
+ * sysdeps/powerpc/powerpc32/dl-start.S: Add unwind information.
+ * elf/Makefile (tests): Add tst-unwind-ctor.
+ (modules-names): Add tst-unwind-ctor-lib.
+ ($(objpfx)tst-unwind-ctor): Depend on
+ $(objpfx)tst-unwind-ctor-lib.so.
+
+2018-09-26 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/bits/mman-map-flags-generic.h: New
+ file. Most contents moved from ....
+ * sysdeps/unix/sysv/linux/bits/mman.h: ... here. Move contents to
+ and include <bits/mman-map-flags-generic.h>.
+ * sysdeps/unix/sysv/linux/Makefile [$(subdir) = misc]
+ (sysdep_headers): Add bits/mman-map-flags-generic.h.
+ * sysdeps/unix/sysv/linux/ia64/bits/mman.h: Include
+ <bits/mman-map-flags-generic.h>.
+ [__USE_MISC] (MAP_GROWSUP): Only define this macro, not other
+ macros defined in <bits/mman-map-flags-generic.h>.
+ * sysdeps/unix/sysv/linux/x86/bits/mman.h: Include
+ <bits/mman-map-flags-generic.h>.
+ [__USE_MISC] (MAP_32BIT): Only define this macro, not other macros
+ defined in <bits/mman-map-flags-generic.h>.
+
+2018-09-26 Andreas Schwab <schwab@suse.de>
+
+ * Makefile ($(common-objpfx)testrun.sh): Remove leading space from
+ output.
+
+2018-09-25 Adam J. Richte <adam_richter2004@yahoo.com>
+ Adhemerval Zanella <adhemerval.zanella@linaro.org>
+ Fangrui Song <maskray@google.com>
+
+ [BZ #20480]
+ * config.make.in (have-textrel_ifunc): New define.
+ * configure.ac: Add check if linker supports textrel relocation with
+ ifunc.
+ * elf/Makefile [have-textrel_ifunc == yes] (ifunc-pie-tests): Add
+ tst-ifunc-textrel.
+ (CFLAGS-tst-ifunc-textrel.c): New rule.
+ * elf/dl-reloc.c (_dl_relocate_object): Use all required flags on
+ DT_TEXTREL segments, not only PROT_READ and PROT_WRITE.
+ * elf/tst-ifunc-textrel.c: New file.
+
+2018-09-25 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/sys/procfs.h: Include
+ <bits/procfs-prregset.h>.
+ (prgregset_t): Define using __prgregset_t.
+ (prfpregset_t): Define using __prfpregset_t.
+ * sysdeps/unix/sysv/linux/Makefile [$(subdir) = misc]
+ (sysdep_headers): Add bits/procfs-prregset.h.
+ * sysdeps/unix/sysv/linux/bits/procfs-prregset.h: New file.
+ * sysdeps/unix/sysv/linux/alpha/bits/procfs-prregset.h: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/bits/procfs.h: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/sys/procfs.h: Remove file.
+
+ * sysdeps/unix/sysv/linux/sys/procfs.h: Include
+ <bits/procfs-id.h> and <bits/procfs-extra.h>.
+ (struct elf_prpsinfo): Use __pr_uid_t and __pr_gid_t as types of
+ pr_uid and pr_gid.
+ * sysdeps/unix/sysv/linux/Makefile [$(subdir) = misc]
+ (sysdep_headers): Add bits/procfs-id.h and bits/procfs-extra.h.
+ * sysdeps/unix/sysv/linux/bits/procfs-extra.h: New file.
+ * sysdeps/unix/sysv/linux/bits/procfs-id.h: Likewise.
+ * sysdeps/unix/sysv/linux/arm/bits/procfs-id.h: Likewise.
+ * sysdeps/unix/sysv/linux/arm/bits/procfs.h: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/bits/procfs-id.h: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/bits/procfs.h: Likewise.
+ * sysdeps/unix/sysv/linux/s390/bits/procfs-extra.h: Likewise.
+ * sysdeps/unix/sysv/linux/s390/bits/procfs-id.h: Likewise.
+ * sysdeps/unix/sysv/linux/s390/bits/procfs.h: Likewise.
+ * sysdeps/unix/sysv/linux/sh/bits/procfs-id.h: Likewise.
+ * sysdeps/unix/sysv/linux/sh/bits/procfs.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/bits/procfs-extra.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/bits/procfs-id.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/bits/procfs.h: Likewise.
+ * sysdeps/unix/sysv/linux/x86/bits/procfs-id.h: Likewise.
+ * sysdeps/unix/sysv/linux/x86/bits/procfs.h: Likewise.
+ * sysdeps/unix/sysv/linux/arm/sys/procfs.h: Remove file.
+ * sysdeps/unix/sysv/linux/m68k/sys/procfs.h: Likewise.
+ * sysdeps/unix/sysv/linux/s390/sys/procfs.h: Likewise.
+ * sysdeps/unix/sysv/linux/sh/sys/procfs.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sys/procfs.h: Likewise.
+ * sysdeps/unix/sysv/linux/x86/sys/procfs.h: Likewise.
+
+ * sysdeps/unix/sysv/linux/sys/procfs.h: Replace with file based on
+ AArch64 version. Include <bits/procfs.h>.
+ * sysdeps/unix/sysv/linux/Makefile [$(subdir) = misc]
+ (sysdep_headers): Add bits/procfs.h.
+ * sysdeps/unix/sysv/linux/bits/procfs.h: New file.
+ * sysdeps/unix/sysv/linux/aarch64/bits/procfs.h: Likewise.
+ * sysdeps/unix/sysv/linux/hppa/bits/procfs.h: Likewise.
+ * sysdeps/unix/sysv/linux/ia64/bits/procfs.h: Likewise.
+ * sysdeps/unix/sysv/linux/microblaze/bits/procfs.h: Likewise.
+ * sysdeps/unix/sysv/linux/mips/bits/procfs.h: Likewise.
+ * sysdeps/unix/sysv/linux/nios2/bits/procfs.h: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/bits/procfs.h: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/bits/procfs.h: Likewise.
+ * sysdeps/unix/sysv/linux/aarch64/sys/procfs.h: Remove file.
+ * sysdeps/unix/sysv/linux/hppa/sys/procfs.h: Likewise.
+ * sysdeps/unix/sysv/linux/ia64/sys/procfs.h: Likewise.
+ * sysdeps/unix/sysv/linux/microblaze/sys/procfs.h: Likewise.
+ * sysdeps/unix/sysv/linux/mips/sys/procfs.h: Likewise.
+ * sysdeps/unix/sysv/linux/nios2/sys/procfs.h: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/sys/procfs.h: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/sys/procfs.h: Likewise.
+
+2018-09-25 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * posix/tst-spawn.c (do_prepare, handle_restart, do_test):
+ Use libsupport.
+
+2018-09-25 Arjun Shankar <arjun@redhat.com>
+
+ * iconv/gconv_int.h (__gconv_path_elem): Remove.
+ (__gconv_max_path_elem_len): Likewise.
+ (__gconv_nmodules): Likewise.
+ (__gconv_get_path): Likewise.
+ (path_elem): Move to ...
+ * iconv/gconv_conf.c: ... here.
+ (__gconv_get_path): Mark function static.
+ * iconv/gconv_int.h (GCONV_NCHAR_GOAL): Move to ...
+ * iconv/gconv_open.c: ... here.
+
+2018-09-24 Andreas Schwab <schwab@suse.de>
+
+ * scripts/haveversions.awk: New file.
+ * Makerules ($(common-objpfx)Versions.def)
+ ($(common-objpfx)Versions.all, $(common-objpfx)Versions.v.i)
+ ($(common-objpfx)sysd-versions, $(common-objpfx)versions.stmp):
+ Move rules ...
+ * Makeconfig ($(common-objpfx)Versions.def)
+ ($(common-objpfx)Versions.all, $(common-objpfx)Versions.v.i)
+ ($(common-objpfx)sysd-versions, $(common-objpfx)versions.stmp):
+ ... here.
+ ($(common-objpfx)Versions.mk): New rule. Include it.
+ * nis/Makefile [!have-GLIBC_2.28]: Don't build any targets.
+ Emit error if build-obsolete-nsl = yes.
+ * manual/install.texi (Configuring and compiling): Describe
+ --enable-obsolete-nsl as unavaiable after version 2.28.
+ * INSTALL: Regenerate.
+
+2018-09-21 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * NEWS: Add note about new TLE support on powerpc64le.
+ * sysdeps/powerpc/nptl/tcb-offsets.sym (TM_CAPABLE): Remove.
+ * sysdeps/powerpc/nptl/tls.h (tcbhead_t): Rename tm_capable to
+ __ununsed1.
+ (TLS_INIT_TP, TLS_DEFINE_INIT_TP): Remove tm_capable setup.
+ (THREAD_GET_TM_CAPABLE, THREAD_SET_TM_CAPABLE): Remove macros.
+ * sysdeps/powerpc/powerpc32/sysdep.h,
+ sysdeps/powerpc/powerpc64/sysdep.h (ABORT_TRANSACTION_IMPL,
+ ABORT_TRANSACTION): Remove macros.
+ * sysdeps/powerpc/sysdep.h (ABORT_TRANSACTION): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/elision-conf.c (elision_init): Set
+ __pthread_force_elision iff PPC_FEATURE2_HTM_NOSC is set.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h,
+ sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h
+ sysdeps/unix/sysv/linux/powerpc/syscall.S (ABORT_TRANSACTION): Remove
+ usage.
+ * sysdeps/unix/sysv/linux/powerpc/not-errno.h: Remove file.
+
+2018-09-21 Rafał Lużyński <digitalfreak@lingonborough.com>
+
+ [BZ #10425]
+ * localedata/locales/it_IT (d_t_fmt): Use "%a %-d %b %Y, %T".
+ (date_fmt): Use "%a %-d %b %Y, %T, %Z".
+ * localedata/locales/it_CH (d_t_fmt): Use "%a %-d %b %Y, %T"
+ which is the same as in it_IT.
+ (d_fmt): Use "%d.%m.%Y" which is the same as in de_CH.
+ (date_fmt): Use "%a %-d %b %Y, %T, %Z" which is the same as in it_IT.
+
+2018-09-20 Joseph Myers <joseph@codesourcery.com>
+
+ * include/math.h [!_ISOMAC && !(__FINITE_MATH_ONLY__ &&
+ __FINITE_MATH_ONLY__ > 0) && !NO_MATH_REDIRECT] (trunc): Redirect
+ using MATH_REDIRECT.
+ * sysdeps/aarch64/fpu/s_trunc.c: Define NO_MATH_REDIRECT before
+ header inclusion.
+ * sysdeps/aarch64/fpu/s_truncf.c: Likewise.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_trunc.c: Likewise.
+ * sysdeps/ieee754/float128/s_truncf128.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_trunc.c: Likewise.
+ * sysdeps/ieee754/flt-32/s_truncf.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/s_truncl.c: Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_trunc.c: Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_truncf.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_trunc.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_truncf.c: Likewise.
+ * sysdeps/riscv/rv64/rvd/s_trunc.c: Likewise.
+ * sysdeps/riscv/rvf/s_truncf.c: Likewise.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_trunc.c: Likewise.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_truncf.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/s_trunc.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/s_truncf.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_trunc_template.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_truncl.c: Likewise.
+ (ceil): Redirect to __ceil.
+ (floor): Redirect to __floor.
+ (trunc): Redirect to __trunc.
+ (__truncl): Call trunc instead of __trunc.
+ * sysdeps/powerpc/fpu/math_private.h [_ARCH_PWR5X] (__trunc):
+ Remove macro.
+ [_ARCH_PWR5X] (__truncf): Likewise.
+ * sysdeps/ieee754/dbl-64/e_gamma_r.c (__ieee754_gamma_r): Use
+ trunc functions instead of __trunc variants.
+ * sysdeps/ieee754/flt-32/e_gammaf_r.c (__ieee754_gammaf_r):
+ Likewise.
+ * sysdeps/ieee754/ldbl-128/e_gammal_r.c (__ieee754_gammal_r):
+ Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c (__ieee754_gammal_r):
+ Likewise.
+ * sysdeps/ieee754/ldbl-96/e_gammal_r.c (__ieee754_gammal_r):
+ Likewise.
+
+ * sysdeps/x86/cpu-features.h [__geode__ || __k6__]: Handle like
+ [__i586__ || __pentium__].
+ [__i486__]: Handle explicitly.
+ (HAS_CPUID): Define to 1 if above macros are undefined.
+ (HAS_I586): Likewise.
+ (HAS_I686): Likewise.
+
+2018-09-20 Florian Weimer <fweimer@redhat.com>
+
+ * misc/tst-gethostid.c: New file.
+ * misc/Makefile [$(build-shared)] (tests): Add tst-gethostid.
+ (tst-gethostid): Link with -ldl.
+
+2018-09-20 Mingli Yu <Mingli.Yu@windriver.com>
+
+ * sysdeps/unix/sysv/linux/gethostid.c (gethostid): Check for NULL
+ value from gethostbyname_r.
+
+2018-09-19 Carlos O'Donell <carlos@redhat.com>
+
+ * stdlib/tst-setcontext9.c (f1): Rename to...
+ (f1a): ... this.
+ (f1b): New function implementing lower half of f1 in alternate stack.
+
+2018-09-19 Paul Eggert <eggert@cs.ucla.edu>
+
+ Fix mktime localtime offset confusion
+ [BZ #23603]
+ * include/time.h (__mktime_internal): The localtime offset is now
+ of type long int instead of time_t. This is the longstanding type
+ in glibc, and it is more than enough to represent difference
+ between localtime and gmtime even if it is 32 bits and time_t is
+ 64. Changing it now will let us avoid an unnecessary change when
+ time_t is widened to 64 bits on 32-bit platforms.
+ * time/mktime-internal.h (mktime_offset_t): Now long int.
+
+ Merge mktime, timegm from upstream Gnulib
+ [BZ #23603][BZ #16346]
+ This fixes some obscure problems with integer overflow.
+ Although it looks scary, it is almost all a byte-for-byte copy
+ from Gnulib, and the Gnulib code has been tested reasonably well.
+ * include/intprops.h: New file, copied from Gnulib.
+ * include/verify.h, time/mktime-internal.h:
+ New tiny files, simplified from Gnulib.
+ * time/mktime.c: Copy from Gnulib. This has the following changes:
+ Do not include config.h if DEBUG_MKTIME is nonzero.
+ Include stdbool.h, intprops.h, verify.h.
+ Include string.h only if needed.
+ Include stdlib.h on MS-Windows.
+ Include mktime-internal.h.
+ (DEBUG_MKTIME): Default to 0, and simplify later uses.
+ (NEED_MKTIME_INTERNAL, NEED_MKTIME_WINDOWS)
+ (NEED_MKTIME_WORKING): Give default values to pacify -Wundef,
+ which glibc uses. Default NEED_MKTIME_WORKING to DEBUG_MKTIME, to
+ simplify later conditionals; default the others to zero. Use
+ these conditionals to express only the code needed on the current
+ platform. In uses of these conditionals, explicitly spell out how
+ _LIBC affects things, so it’s easier to review from a glibc
+ viewpoint.
+ (WRAPV): Remove; no longer needed now that we have
+ systematic overflow checking.
+ (my_tzset, __tzset) [!_LIBC]: New function and macro, to better
+ compartmentalize tzset issues. Move system-dependent tzsettish
+ code here from mktime.
+ (verify): Remove; now done by verify.h. All uses changed.
+ (long_int): Use a more-conservative definition, to avoid
+ integer overflow.
+ (SHR): Remove, replacing with ...
+ (shr): New function, which means we needn’t worry about side
+ effects in args, and conversion analysis is simpler.
+ (TYPE_IS_INTEGER, TYPE_TWOS_COMPLEMENT, TYPE_SIGNED, TYPE_MINIMUM)
+ (TYPE_MAXIMUM, TIME_T_MIN, TIME_T_MAX, TIME_T_MIDPOINT)
+ (time_t_avg, time_t_add_ok): Remove.
+ (mktime_min, mktime_max): New constants.
+ (leapyear, isdst_differ): Use bool for booleans.
+ (ydhms_diff, guess_time_tm, ranged_convert, __mktime_internal):
+ Use long_int, not time_t, for mktime differences.
+ (long_int_avg): New function, replacing time_t_avg.
+ INT_ADD_WRAPV replaces time_t_add_ok.
+ (guess_time_tm): 6th arg is now long_int, not time_t const *.
+ All uses changed.
+ (convert_time): New function.
+ (ranged_convert): Use it.
+ (__mktime_internal): Last arg now points to mktime_offset_t, not
+ time_t. All uses changed. This is a no-op on glibc, where
+ mktime_offset_t is always time_t. Use int, not time_t, for UTC
+ offset guess. Directly check for integer overflow instead of
+ using a heuristic that works only 99.9...% of the time.
+ Access *OFFSET only once, to avoid an unlikely race if the
+ compiler delays a load and if this cascades into a signed integer
+ overflow.
+ (mktime): Move tzsettish code to my_tzset, and move
+ localtime_offset to within mktime so that it doesn’t
+ need a separate ifdef.
+ (main) [DEBUG_MKTIME]: Speed up by using localtime_r
+ instead of localtime.
+ * time/timegm.c: Copy from Gnulib. This has the following changes:
+ Include mktime-internal.h.
+ [!_LIBC]: Include config.h and time.h. Do not include
+ timegm.h or time_r.h. Make __mktime_internal a macro,
+ and include mktime-internal.h to get its declaration.
+ (timegm): Temporary is now mktime_offset_t, not time_t.
+ This affects only Gnulib.
+
+2018-09-19 Wilco Dijkstra <wdijkstr@arm.com>
+
+ [BZ #23637]
+ * string/test-strstr.c (pr23637): New function.
+ (test_main): Add tests with longer needles.
+ * string/strcasestr.c (AVAILABLE): Fix readahead distance.
+ * string/strstr.c (AVAILABLE): Likewise.
+
+2018-09-19 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * sysdeps/ieee754/flt-32/e_powf.c (checkint): Fix documentation.
+
+2018-09-19 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * NEWS: Mention pow improvements.
+ * math/Makefile (type-double-routines): Add e_pow_log_data.
+ * sysdeps/generic/math_private.h (__exp1): Remove.
+ * sysdeps/i386/fpu/e_pow_log_data.c: New file.
+ * sysdeps/ia64/fpu/e_pow_log_data.c: New file.
+ * sysdeps/ieee754/dbl-64/Makefile (CFLAGS-e_pow.c): Allow fma
+ contraction.
+ * sysdeps/ieee754/dbl-64/e_exp.c (__exp1): Remove.
+ (exp_inline): Remove.
+ (__ieee754_exp): Only single double input is handled.
+ * sysdeps/ieee754/dbl-64/e_pow.c: Rewrite.
+ * sysdeps/ieee754/dbl-64/e_pow_log_data.c: New file.
+ * sysdeps/ieee754/dbl-64/math_config.h (issignaling_inline): Define.
+ (__pow_log_data): Define.
+ * sysdeps/ieee754/dbl-64/upow.h: Remove.
+ * sysdeps/ieee754/dbl-64/upow.tbl: Remove.
+ * sysdeps/m68k/m680x0/fpu/e_pow_log_data.c: New file.
+ * sysdeps/x86_64/fpu/multiarch/Makefile (CFLAGS-e_pow-fma.c): Allow fma
+ contraction.
+ (CFLAGS-e_pow-fma4.c): Likewise.
+
+2018-09-18 Paul Eggert <eggert@cs.ucla.edu>
+
+ Simplify tzfile fstat failure code
+ [BZ #21716]
+ * time/tzfile.c (__tzfile_read): Simplify slightly.
+
+ Fix tzfile low-memory assertion failure
+ [BZ #21716]
+ * time/tzfile.c (__tzfile_read): Check for memory exhaustion
+ when registering time zone abbreviations.
+
+2018-09-18 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/bits/mman.h: New file.
+ * sysdeps/unix/sysv/linux/aarch64/bits/mman.h: Remove.
+ * sysdeps/unix/sysv/linux/arm/bits/mman.h: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/bits/mman.h: Likewise.
+ * sysdeps/unix/sysv/linux/microblaze/bits/mman.h: Likewise.
+ * sysdeps/unix/sysv/linux/nios2/bits/mman.h: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/bits/mman.h: Likewise.
+ * sysdeps/unix/sysv/linux/s390/bits/mman.h: Likewise.
+ * sysdeps/unix/sysv/linux/sh/bits/mman.h: Likewise.
+
+ * sysdeps/ieee754/ldbl-128ibm/s_ceill.c (ceil): Redirect to
+ __ceil.
+ (__ceill): Call ceil instead of __ceil.
+ * sysdeps/ieee754/ldbl-128ibm/s_floorl.c (floor): Redirect to
+ __floor.
+ (__floorl): Call floor instead of __floor.
+
+2018-09-17 Joseph Myers <joseph@codesourcery.com>
+
+ * include/math.h [!_ISOMAC && !(__FINITE_MATH_ONLY__ &&
+ __FINITE_MATH_ONLY__ > 0) && !NO_MATH_REDIRECT] (ceil): Redirect
+ using MATH_REDIRECT.
+ * sysdeps/aarch64/fpu/s_ceil.c: Define NO_MATH_REDIRECT before
+ header inclusion.
+ * sysdeps/aarch64/fpu/s_ceilf.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_ceil.c: Likewise.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_ceil.c: Likewise.
+ * sysdeps/ieee754/float128/s_ceilf128.c: Likewise.
+ * sysdeps/ieee754/flt-32/s_ceilf.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/s_ceill.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_ceill.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_ceil_template.c: Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil.c: Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceilf.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceil.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceilf.c: Likewise.
+ * sysdeps/riscv/rv64/rvd/s_ceil.c: Likewise.
+ * sysdeps/riscv/rvf/s_ceilf.c: Likewise.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_ceil.c: Likewise.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/s_ceil.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/s_ceilf.c: Likewise.
+ * sysdeps/powerpc/fpu/math_private.h [_ARCH_PWR5X] (__ceil):
+ Remove macro.
+ * sysdeps/ieee754/dbl-64/e_gamma_r.c (gamma_positive): Use ceil
+ functions instead of __ceil variants.
+ * sysdeps/ieee754/flt-32/e_gammaf_r.c (gammaf_positive): Likewise.
+ * sysdeps/ieee754/ldbl-128/e_gammal_r.c (gammal_positive):
+ Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c (gammal_positive):
+ Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_truncl.c (__truncl): Likewise.
+ * sysdeps/ieee754/ldbl-96/e_gammal_r.c (gammal_positive):
+ Likewise.
+ * sysdeps/powerpc/power5+/fpu/s_modf.c (__modf): Likewise.
+ * sysdeps/powerpc/power5+/fpu/s_modff.c (__modff): Likewise.
+
+ [BZ #21286]
+ * sysdeps/unix/sysv/linux/bits/siginfo-consts.h (SI_DETHREAD): New
+ constant.
+ [__USE_XOPEN_EXTENDED || __USE_XOPEN2K8] (ILL_BADIADDR): Likewise.
+ [__USE_XOPEN_EXTENDED || __USE_XOPEN2K8] (FPE_FLTUNK): Likewise.
+ [__USE_XOPEN_EXTENDED || __USE_XOPEN2K8] (FPE_CONDTRAP): Likewise.
+ [__USE_XOPEN_EXTENDED || __USE_XOPEN2K8] (SEGV_ACCADI): Likewise.
+ [__USE_XOPEN_EXTENDED || __USE_XOPEN2K8] (SEGV_ADIDERR): Likewise.
+ [__USE_XOPEN_EXTENDED || __USE_XOPEN2K8] (SEGV_ADIPERR): Likewise.
+ [__USE_XOPEN_EXTENDED] (TRAP_BRANCH): Likewise.
+ [__USE_XOPEN_EXTENDED] (TRAP_HWBKPT): Likewise.
+ [__USE_XOPEN_EXTENDED] (TRAP_UNK): Likweise.
+ * sysdeps/unix/sysv/linux/ia64/bits/siginfo-consts-arch.h
+ (ILL_BADIADDR): Remove constant.
+ (TRAP_BRANCH): Likewise.
+ (TRAP_HWBKPT): Likewise.
+
+2018-09-14 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #23656]
+ * sysdeps/unix/sysv/linux/mips/sys/procfs.h (struct elf_prstatus):
+ Remove [_MIPS_SIM = _ABIN32] conditional case.
+ (struct elf_prpsinfo): Likewise.
+
+ [BZ #23649]
+ * sysdeps/unix/sysv/linux/microblaze/sys/procfs.h (struct
+ elf_prpsinfo): Use unsigned int for pr_uid and pr_gid.
+ * sysdeps/unix/sysv/linux/mips/sys/procfs.h (struct elf_prpsinfo):
+ Likewise.
+ * sysdeps/unix/sysv/linux/nios2/sys/procfs.h (struct
+ elf_prpsinfo): Likewise.
+ * sysdeps/unix/sysv/linux/riscv/sys/procfs.h (struct
+ elf_prpsinfo): Likewise.
+ * sysdeps/unix/sysv/linux/sys/procfs.h (struct elf_prpsinfo):
+ Likewise.
+
+ * include/math.h [!_ISOMAC && !(__FINITE_MATH_ONLY__ &&
+ __FINITE_MATH_ONLY__ > 0) && !NO_MATH_REDIRECT] (rint): Redirect
+ using MATH_REDIRECT.
+ * sysdeps/aarch64/fpu/s_rint.c: Define NO_MATH_REDIRECT before
+ header inclusion.
+ * sysdeps/aarch64/fpu/s_rintf.c: Likewise.
+ * sysdeps/alpha/fpu/s_rint.c: Likewise.
+ * sysdeps/alpha/fpu/s_rintf.c: Likewise.
+ * sysdeps/i386/fpu/s_rintl.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_rint.c: Likewise.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_rint.c: Likewise.
+ * sysdeps/ieee754/float128/s_rintf128.c: Likewise.
+ * sysdeps/ieee754/flt-32/s_rintf.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/s_rintl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_rintl.c: Likewise.
+ * sysdeps/m68k/coldfire/fpu/s_rint.c: Likewise.
+ * sysdeps/m68k/coldfire/fpu/s_rintf.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_rint.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_rintf.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_rintl.c: Likewise.
+ * sysdeps/powerpc/fpu/s_rint.c: Likewise.
+ * sysdeps/powerpc/fpu/s_rintf.c: Likewise.
+ * sysdeps/riscv/rv64/rvd/s_rint.c: Likewise.
+ * sysdeps/riscv/rvf/s_rintf.c: Likewise.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rint.c: Likewise.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rintf.c: Likewise.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_rint.c: Likewise.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_rintf.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/s_rint.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/s_rintf.c: Likewise.
+ * sysdeps/x86_64/fpu/math_private.h: Remove file.
+ * math/e_scalb.c (invalid_fn): Use rint functions instead of
+ __rint variants.
+ * math/e_scalbf.c (invalid_fn): Likewise.
+ * math/e_scalbl.c (invalid_fn): Likewise.
+ * sysdeps/ieee754/dbl-64/e_gamma_r.c (__ieee754_gamma_r):
+ Likewise.
+ * sysdeps/ieee754/flt-32/e_gammaf_r.c (__ieee754_gammaf_r):
+ Likewise.
+ * sysdeps/ieee754/k_standard.c (__kernel_standard): Likewise.
+ * sysdeps/ieee754/k_standardl.c (__kernel_standard_l): Likewise.
+ * sysdeps/ieee754/ldbl-128/e_gammal_r.c (__ieee754_gammal_r):
+ Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c (__ieee754_gammal_r):
+ Likewise.
+ * sysdeps/ieee754/ldbl-96/e_gammal_r.c (__ieee754_gammal_r):
+ Likewise.
+ * sysdeps/powerpc/powerpc32/fpu/s_llrint.c (__llrint): Likewise.
+ * sysdeps/powerpc/powerpc32/fpu/s_llrintf.c (__llrintf): Likewise.
+
+ * include/math.h [!_ISOMAC && !(__FINITE_MATH_ONLY__ &&
+ __FINITE_MATH_ONLY__ > 0) && !NO_MATH_REDIRECT] (MATH_REDIRECT):
+ New macro.
+ [!_ISOMAC && !(__FINITE_MATH_ONLY__ && __FINITE_MATH_ONLY__ > 0)
+ && !NO_MATH_REDIRECT] (MATH_REDIRECT_LDBL): Likewise.
+ [!_ISOMAC && !(__FINITE_MATH_ONLY__ && __FINITE_MATH_ONLY__ > 0)
+ && !NO_MATH_REDIRECT] (MATH_REDIRECT_F128): Likewise.
+ [!_ISOMAC && !(__FINITE_MATH_ONLY__ && __FINITE_MATH_ONLY__ > 0)
+ && !NO_MATH_REDIRECT] (MATH_REDIRECT_UNARY_ARGS): Likewise.
+ [!_ISOMAC && !(__FINITE_MATH_ONLY__ && __FINITE_MATH_ONLY__ > 0)
+ && !NO_MATH_REDIRECT] (sqrt): Redirect using MATH_REDIRECT.
+ [!_ISOMAC && !(__FINITE_MATH_ONLY__ && __FINITE_MATH_ONLY__ > 0)
+ && !NO_MATH_REDIRECT] (floor): Likewise.
+ * sysdeps/aarch64/fpu/s_floor.c: Define NO_MATH_REDIRECT before
+ header inclusion.
+ * sysdeps/aarch64/fpu/s_floorf.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_floor.c: Likewise.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_floor.c: Likewise.
+ * sysdeps/ieee754/float128/s_floorf128.c: Likewise.
+ * sysdeps/ieee754/flt-32/s_floorf.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/s_floorl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_floorl.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_floor_template.c: Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floor.c: Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floorf.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_floor.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_floorf.c: Likewise.
+ * sysdeps/riscv/rv64/rvd/s_floor.c: Likewise.
+ * sysdeps/riscv/rvf/s_floorf.c: Likewise.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_floor.c: Likewise.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_floorf.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/s_floor.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/s_floorf.c: Likewise.
+ * sysdeps/powerpc/fpu/math_private.h [_ARCH_PWR5X] (__floor):
+ Remove macro.
+ [_ARCH_PWR5X] (__floorf): Likewise.
+ * sysdeps/x86_64/fpu/math_private.h [__SSE4_1__] (__floor): Remove
+ inline function.
+ [__SSE4_1__] (__floorf): Likewise.
+ * math/w_lgamma_main.c (LGFUNC (__lgamma)): Use floor functions
+ instead of __floor variants.
+ * math/w_lgamma_r_compat.c (__lgamma_r): Likewise.
+ * math/w_lgammaf_main.c (LGFUNC (__lgammaf)): Likewise.
+ * math/w_lgammaf_r_compat.c (__lgammaf_r): Likewise.
+ * math/w_lgammal_main.c (LGFUNC (__lgammal)): Likewise.
+ * math/w_lgammal_r_compat.c (__lgammal_r): Likewise.
+ * math/w_tgamma_compat.c (__tgamma): Likewise.
+ * math/w_tgamma_template.c (M_DECL_FUNC (__tgamma)): Likewise.
+ * math/w_tgammaf_compat.c (__tgammaf): Likewise.
+ * math/w_tgammal_compat.c (__tgammal): Likewise.
+ * sysdeps/ieee754/dbl-64/e_lgamma_r.c (sin_pi): Likewise.
+ * sysdeps/ieee754/dbl-64/k_rem_pio2.c (__kernel_rem_pio2):
+ Likewise.
+ * sysdeps/ieee754/dbl-64/lgamma_neg.c (__lgamma_neg): Likewise.
+ * sysdeps/ieee754/flt-32/e_lgammaf_r.c (sin_pif): Likewise.
+ * sysdeps/ieee754/flt-32/lgamma_negf.c (__lgamma_negf): Likewise.
+ * sysdeps/ieee754/ldbl-128/e_lgammal_r.c (__ieee754_lgammal_r):
+ Likewise.
+ * sysdeps/ieee754/ldbl-128/e_powl.c (__ieee754_powl): Likewise.
+ * sysdeps/ieee754/ldbl-128/lgamma_negl.c (__lgamma_negl):
+ Likewise.
+ * sysdeps/ieee754/ldbl-128/s_expm1l.c (__expm1l): Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_lgammal_r.c (__ieee754_lgammal_r):
+ Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_powl.c (__ieee754_powl): Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/lgamma_negl.c (__lgamma_negl):
+ Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_expm1l.c (__expm1l): Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_truncl.c (__truncl): Likewise.
+ * sysdeps/ieee754/ldbl-96/e_lgammal_r.c (sin_pi): Likewise.
+ * sysdeps/ieee754/ldbl-96/lgamma_negl.c (__lgamma_negl): Likewise.
+ * sysdeps/powerpc/power5+/fpu/s_modf.c (__modf): Likewise.
+ * sysdeps/powerpc/power5+/fpu/s_modff.c (__modff): Likewise.
+
+2018-09-12 Joseph Myers <joseph@codesourcery.com>
+
+ * elf/Makefile (modules-names-tests): New variable.
+
+2018-09-12 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * NEWS: Mention log2 improvements.
+ * math/Makefile (type-double-routines): Add e_log2_data.
+ * sysdeps/i386/fpu/e_log2_data.c: New file.
+ * sysdeps/ia64/fpu/e_log2_data.c: New file.
+ * sysdeps/ieee754/dbl-64/e_log2.c: Rewrite.
+ * sysdeps/ieee754/dbl-64/e_log2_data.c: New file.
+ * sysdeps/ieee754/dbl-64/math_config.h (__log2_data): Add.
+ * sysdeps/ieee754/dbl-64/wordsize-64/e_log2.c: Remove.
+ * sysdeps/m68k/m680x0/fpu/e_log2_data.c: New file.
+
+2018-09-12 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * NEWS: Mention log improvement.
+ * math/Makefile (type-double-routines): Add e_log_data.
+ * sysdeps/i386/fpu/e_log_data.c: New file.
+ * sysdeps/ia64/fpu/e_log_data.c: New file.
+ * sysdeps/ieee754/dbl-64/e_log.c: Rewrite.
+ * sysdeps/ieee754/dbl-64/e_log_data.c: New file.
+ * sysdeps/ieee754/dbl-64/math_config.h (__log_data): Add.
+ * sysdeps/ieee754/dbl-64/ulog.h: Remove.
+ * sysdeps/ieee754/dbl-64/ulog.tbl: Remove.
+ * sysdeps/m68k/m680x0/fpu/e_log_data.c: New file.
+
+2018-09-12 H.J. Lu <hongjiu.lu@intel.com>
+ Xuepeng Guo <xuepeng.guo@intel.com>
+
+ [BZ #23606]
+ * sysdeps/i386/start.S: Include <sysdep.h>
+ (_start): Use ENTRY/END to insert ENDBR32 at entry when CET is
+ enabled. Add cfi_undefined (eip).
+
+2018-09-11 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/x86_64/fpu/math_private.h (MOVD): Remove macro.
+ (MOVQ): Likewise.
+ (EXTRACT_WORDS64): Likewise.
+ (INSERT_WORDS64): Likewise.
+ (GET_FLOAT_WORD): Likewise.
+ (SET_FLOAT_WORD): Likewise.
+
+ * scripts/build-many-glibcs.py (Context.__init__): Add full_gcc
+ argument.
+ (Config.build_gcc): Use --disable-libsanitizer for first GCC
+ build, but not for second build if --full-gcc. Use
+ --enable-languages=all for second build if --full-gcc.
+ (get_parser): Add --full-gcc option.
+ (main): Update call to Context.
+
+2018-09-10 Rafał Lużyński <digitalfreak@lingonborough.com>
+
+ [BZ #10797]
+ * localedata/locales/de_CH (mon_thousands_sep): Use "<U2019>" (Right
+ Single Quotation Mark).
+ (thousands_sep): Likewise.
+ * localedata/locales/it_CH (LC_NUMERIC): Use “copy "de_CH"â€.
+ * localedata/locales/it_IT (thousands_sep): Use ".".
+ (grouping): Use "3;3".
+
+2018-09-10 Joseph Myers <joseph@codesourcery.com>
+
+ * scripts/build-many-glibcs.py (Context.add_all_configs): Add
+ x86_64 and i686 configs using --enable-obsolete-rpc
+ --enable-obsolete-nsl.
+
+2018-09-06 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/s390/fpu/libm-test-ulps: Regenerated.
+
+2018-09-06 Stefan Liebler <stli@linux.ibm.com>
+
+ * sysdeps/unix/sysv/linux/spawni.c (maybe_script_execute):
+ Increment size of new_argv by one.
+
+2018-09-05 Rafał Lużyński <digitalfreak@lingonborough.com>
+
+ [BZ #17426]
+ * localedata/locales/anp_IN (d_fmt): Use "%-d//%-m//%y".
+ * localedata/locales/ar_IN (d_fmt): Likewise.
+ * localedata/locales/bhb_IN (d_fmt): Likewise.
+ * localedata/locales/bho_IN (d_fmt): Likewise.
+ * localedata/locales/bn_BD (d_fmt): Likewise.
+ * localedata/locales/bn_IN (d_fmt): Likewise.
+ * localedata/locales/doi_IN (d_fmt): Likewise.
+ * localedata/locales/gu_IN (d_fmt): Likewise.
+ * localedata/locales/hi_IN (d_fmt): Likewise.
+ * localedata/locales/hne_IN (d_fmt): Likewise.
+ * localedata/locales/kn_IN (d_fmt): Likewise.
+ * localedata/locales/mag_IN (d_fmt): Likewise.
+ * localedata/locales/mai_IN (d_fmt): Likewise.
+ * localedata/locales/mjw_IN (d_fmt): Likewise.
+ * localedata/locales/ml_IN (d_fmt): Likewise.
+ * localedata/locales/mni_IN (d_fmt): Likewise.
+ * localedata/locales/mr_IN (d_fmt): Likewise.
+ * localedata/locales/pa_IN (d_fmt): Likewise.
+ * localedata/locales/raj_IN (d_fmt): Likewise.
+ * localedata/locales/sat_IN (d_fmt): Likewise.
+ * localedata/locales/sd_IN (d_fmt): Likewise.
+ * localedata/locales/sd_IN@devanagari (d_fmt): Likewise.
+ * localedata/locales/ta_IN (d_fmt): Likewise.
+ * localedata/locales/ta_LK (d_fmt): Likewise.
+ * localedata/locales/tcy_IN (d_fmt): Likewise.
+ * localedata/locales/ur_IN (d_fmt): Likewise.
+
+ * localedata/locales/brx_IN (d_fmt): Use "%-m//%-d//%y".
+ * localedata/locales/ks_IN (d_fmt): Likewise.
+ * localedata/locales/ks_IN@devanagari (d_fmt): Likewise.
+
+ * localedata/locales/kok_IN (d_fmt): Use "%-d-%-m-%y".
+ * localedata/locales/ne_NP (d_fmt): Use "%y//%-m//%-d".
+ * localedata/locales/sa_IN (d_fmt): Use "%-d-%m-%y".
+ * localedata/locales/te_IN (d_fmt): Use "%d-%m-%y".
+
+2018-09-05 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * NEWS: Mention exp and exp2 improvements.
+ * math/Makefile (libm-support): Remove t_exp.
+ (type-double-routines): Add math_err and e_exp_data.
+ * sysdeps/aarch64/libm-test-ulps: Update.
+ * sysdeps/arm/libm-test-ulps: Update.
+ * sysdeps/i386/fpu/e_exp_data.c: New file.
+ * sysdeps/i386/fpu/math_err.c: New file.
+ * sysdeps/i386/fpu/t_exp.c: Remove.
+ * sysdeps/ia64/fpu/e_exp_data.c: New file.
+ * sysdeps/ia64/fpu/math_err.c: New file.
+ * sysdeps/ia64/fpu/t_exp.c: Remove.
+ * sysdeps/ieee754/dbl-64/e_exp.c: Rewrite.
+ * sysdeps/ieee754/dbl-64/e_exp2.c: Rewrite.
+ * sysdeps/ieee754/dbl-64/e_exp_data.c: New file.
+ * sysdeps/ieee754/dbl-64/e_pow.c (__ieee754_pow): Update error bound.
+ * sysdeps/ieee754/dbl-64/eexp.tbl: Remove.
+ * sysdeps/ieee754/dbl-64/math_config.h: New file.
+ * sysdeps/ieee754/dbl-64/math_err.c: New file.
+ * sysdeps/ieee754/dbl-64/t_exp.c: Remove.
+ * sysdeps/ieee754/dbl-64/t_exp2.h: Remove.
+ * sysdeps/ieee754/dbl-64/uexp.h: Remove.
+ * sysdeps/ieee754/dbl-64/uexp.tbl: Remove.
+ * sysdeps/m68k/m680x0/fpu/e_exp_data.c: New file.
+ * sysdeps/m68k/m680x0/fpu/math_err.c: New file.
+ * sysdeps/m68k/m680x0/fpu/t_exp.c: Remove.
+ * sysdeps/powerpc/fpu/libm-test-ulps: Update.
+ * sysdeps/x86_64/fpu/libm-test-ulps: Update.
+
+2018-09-05 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/alpha/fpu/math_private.h: Remove.
+
+ * sysdeps/generic/math_private.h
+ [__HAVE_DISTINCT_FLOAT128 && !__GNUC_PREREQ (7, 0)] (__isinff128):
+ Move this inline function ....
+ [__HAVE_DISTINCT_FLOAT128] (fabsf128): And this one ....
+ * include/math.h [!_ISOMAC]: To here....
+
+2018-09-04 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/generic/fenv_private.h [FE_ALL_EXCEPT == 0]: Move this
+ code ....
+ [!FE_HAVE_ROUNDING_MODES]: And this code ....
+ * include/fenv.h [!_ISOMAC]: ... to here.
+ * math/fraiseexcpt.c (__feraiseexcept): Undefine as macro.
+ (feraiseexcept): Likewise.
+ * math/fromfp.h: Do not include <fenv_private.h>.
+ * math/s_cexp_template.c: Likewise.
+ * math/s_csin_template.c: Likewise.
+ * math/s_csinh_template.c: Likewise.
+ * math/s_ctan_template.c: Likewise.
+ * math/s_ctanh_template.c: Likewise.
+ * math/s_iseqsig_template.c: Likewise.
+ * math/w_acos_compat.c: Likewise.
+ * math/w_acosf_compat.c: Likewise.
+ * math/w_acosl_compat.c: Likewise.
+ * math/w_asin_compat.c: Likewise.
+ * math/w_asinf_compat.c: Likewise.
+ * math/w_asinl_compat.c: Likewise.
+ * math/w_j0_compat.c: Likewise.
+ * math/w_j0f_compat.c: Likewise.
+ * math/w_j0l_compat.c: Likewise.
+ * math/w_j1_compat.c: Likewise.
+ * math/w_j1f_compat.c: Likewise.
+ * math/w_j1l_compat.c: Likewise.
+ * math/w_jn_compat.c: Likewise.
+ * math/w_jnf_compat.c: Likewise.
+ * math/w_log10_compat.c: Likewise.
+ * math/w_log10f_compat.c: Likewise.
+ * math/w_log10l_compat.c: Likewise.
+ * math/w_log2_compat.c: Likewise.
+ * math/w_log2f_compat.c: Likewise.
+ * math/w_log2l_compat.c: Likewise.
+ * math/w_log_compat.c: Likewise.
+ * math/w_logf_compat.c: Likewise.
+ * math/w_logl_compat.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_llrint.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_llround.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_lrint.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_lround.c: Likewise.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_lround.c: Likewise.
+ * sysdeps/ieee754/flt-32/s_llrintf.c: Likewise.
+ * sysdeps/ieee754/flt-32/s_llroundf.c: Likewise.
+ * sysdeps/ieee754/flt-32/s_lrintf.c: Likewise.
+ * sysdeps/ieee754/flt-32/s_lroundf.c: Likewise.
+ * sysdeps/ieee754/k_standardl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/e_expl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/s_fmal.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/s_llrintl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/s_llroundl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/s_lrintl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/s_lroundl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/s_nearbyintl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_llrintl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_llroundl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_lrintl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_lroundl.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/s_fma.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/s_fmal.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/s_llrintl.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/s_llroundl.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/s_lrintl.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/s_lroundl.c: Likewise.
+ * math/w_ilogb_template.c: Include <fenv.h> instead of
+ <fenv_private.h>.
+ * math/w_llogb_template.c: Likewise.
+ * sysdeps/powerpc/fpu/e_sqrt.c: Likewise.
+ * sysdeps/powerpc/fpu/e_sqrtf.c: Likewise.
+
+2018-09-03 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/generic/math_private.h: Do not include <fenv_private.h>.
+ * math/fromfp.h: Include <fenv_private.h>.
+ * math/math-narrow.h: Likewise.
+ * math/s_cexp_template.c: Likewise.
+ * math/s_csin_template.c: Likewise.
+ * math/s_csinh_template.c: Likewise.
+ * math/s_ctan_template.c: Likewise.
+ * math/s_ctanh_template.c: Likewise.
+ * math/s_iseqsig_template.c: Likewise.
+ * math/w_acos_compat.c: Likewise.
+ * math/w_acosf_compat.c: Likewise.
+ * math/w_acosl_compat.c: Likewise.
+ * math/w_asin_compat.c: Likewise.
+ * math/w_asinf_compat.c: Likewise.
+ * math/w_asinl_compat.c: Likewise.
+ * math/w_ilogb_template.c: Likewise.
+ * math/w_j0_compat.c: Likewise.
+ * math/w_j0f_compat.c: Likewise.
+ * math/w_j0l_compat.c: Likewise.
+ * math/w_j1_compat.c: Likewise.
+ * math/w_j1f_compat.c: Likewise.
+ * math/w_j1l_compat.c: Likewise.
+ * math/w_jn_compat.c: Likewise.
+ * math/w_jnf_compat.c: Likewise.
+ * math/w_llogb_template.c: Likewise.
+ * math/w_log10_compat.c: Likewise.
+ * math/w_log10f_compat.c: Likewise.
+ * math/w_log10l_compat.c: Likewise.
+ * math/w_log2_compat.c: Likewise.
+ * math/w_log2f_compat.c: Likewise.
+ * math/w_log2l_compat.c: Likewise.
+ * math/w_log_compat.c: Likewise.
+ * math/w_logf_compat.c: Likewise.
+ * math/w_logl_compat.c: Likewise.
+ * sysdeps/aarch64/fpu/feholdexcpt.c: Likewise.
+ * sysdeps/aarch64/fpu/fesetround.c: Likewise.
+ * sysdeps/aarch64/fpu/fgetexcptflg.c: Likewise.
+ * sysdeps/aarch64/fpu/ftestexcept.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_atan2.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_exp.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_exp2.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_gamma_r.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_jn.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_pow.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_remainder.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_sqrt.c: Likewise.
+ * sysdeps/ieee754/dbl-64/gamma_product.c: Likewise.
+ * sysdeps/ieee754/dbl-64/lgamma_neg.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_atan.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_fma.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_fmaf.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_llrint.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_llround.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_lrint.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_lround.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_nearbyint.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_sin.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_sincos.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_tan.c: Likewise.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_lround.c: Likewise.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c: Likewise.
+ * sysdeps/ieee754/dbl-64/x2y2m1.c: Likewise.
+ * sysdeps/ieee754/float128/float128_private.h: Likewise.
+ * sysdeps/ieee754/flt-32/e_gammaf_r.c: Likewise.
+ * sysdeps/ieee754/flt-32/e_j1f.c: Likewise.
+ * sysdeps/ieee754/flt-32/e_jnf.c: Likewise.
+ * sysdeps/ieee754/flt-32/lgamma_negf.c: Likewise.
+ * sysdeps/ieee754/flt-32/s_llrintf.c: Likewise.
+ * sysdeps/ieee754/flt-32/s_llroundf.c: Likewise.
+ * sysdeps/ieee754/flt-32/s_lrintf.c: Likewise.
+ * sysdeps/ieee754/flt-32/s_lroundf.c: Likewise.
+ * sysdeps/ieee754/flt-32/s_nearbyintf.c: Likewise.
+ * sysdeps/ieee754/k_standardl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/e_expl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/e_gammal_r.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/e_j1l.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/e_jnl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/gamma_productl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/lgamma_negl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/s_fmal.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/s_llrintl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/s_llroundl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/s_lrintl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/s_lroundl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/s_nearbyintl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/x2y2m1l.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_expl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_j1l.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_jnl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/lgamma_negl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_fmal.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_llrintl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_llroundl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_lrintl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_lroundl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_rintl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/x2y2m1l.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/e_gammal_r.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/e_jnl.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/gamma_productl.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/lgamma_negl.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/s_fma.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/s_fmal.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/s_llrintl.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/s_llroundl.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/s_lrintl.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/s_lroundl.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/x2y2m1l.c: Likewise.
+ * sysdeps/powerpc/fpu/e_sqrt.c: Likewise.
+ * sysdeps/powerpc/fpu/e_sqrtf.c: Likewise.
+ * sysdeps/riscv/rv64/rvd/s_ceil.c: Likewise.
+ * sysdeps/riscv/rv64/rvd/s_floor.c: Likewise.
+ * sysdeps/riscv/rv64/rvd/s_nearbyint.c: Likewise.
+ * sysdeps/riscv/rv64/rvd/s_round.c: Likewise.
+ * sysdeps/riscv/rv64/rvd/s_roundeven.c: Likewise.
+ * sysdeps/riscv/rv64/rvd/s_trunc.c: Likewise.
+ * sysdeps/riscv/rvd/s_finite.c: Likewise.
+ * sysdeps/riscv/rvd/s_fmax.c: Likewise.
+ * sysdeps/riscv/rvd/s_fmin.c: Likewise.
+ * sysdeps/riscv/rvd/s_fpclassify.c: Likewise.
+ * sysdeps/riscv/rvd/s_isinf.c: Likewise.
+ * sysdeps/riscv/rvd/s_isnan.c: Likewise.
+ * sysdeps/riscv/rvd/s_issignaling.c: Likewise.
+ * sysdeps/riscv/rvf/fegetround.c: Likewise.
+ * sysdeps/riscv/rvf/feholdexcpt.c: Likewise.
+ * sysdeps/riscv/rvf/fesetenv.c: Likewise.
+ * sysdeps/riscv/rvf/fesetround.c: Likewise.
+ * sysdeps/riscv/rvf/feupdateenv.c: Likewise.
+ * sysdeps/riscv/rvf/fgetexcptflg.c: Likewise.
+ * sysdeps/riscv/rvf/ftestexcept.c: Likewise.
+ * sysdeps/riscv/rvf/s_ceilf.c: Likewise.
+ * sysdeps/riscv/rvf/s_finitef.c: Likewise.
+ * sysdeps/riscv/rvf/s_floorf.c: Likewise.
+ * sysdeps/riscv/rvf/s_fmaxf.c: Likewise.
+ * sysdeps/riscv/rvf/s_fminf.c: Likewise.
+ * sysdeps/riscv/rvf/s_fpclassifyf.c: Likewise.
+ * sysdeps/riscv/rvf/s_isinff.c: Likewise.
+ * sysdeps/riscv/rvf/s_isnanf.c: Likewise.
+ * sysdeps/riscv/rvf/s_issignalingf.c: Likewise.
+ * sysdeps/riscv/rvf/s_nearbyintf.c: Likewise.
+ * sysdeps/riscv/rvf/s_roundevenf.c: Likewise.
+ * sysdeps/riscv/rvf/s_roundf.c: Likewise.
+ * sysdeps/riscv/rvf/s_truncf.c: Likewise.
+
+2018-08-31 Paul Pluzhnikov <ppluzhnikov@google.com>
+
+ [BZ #20271]
+ * include/stdio.h (__libc_fatal): Mention newline in comment.
+ * grp/initgroups.c (internal_getgrouplist): Add missing newline.
+ * nptl/pthread_cond_wait.c (__pthread_cond_wait_common): Likewise.
+ * nscd/initgrcache.c (addinitgroupsX): Likewise.
+ * nss/nsswitch.c (__nss_next2): Likewise.
+ * sysdeps/aarch64/dl-irel.h (elf_irela): Likewise.
+ * sysdeps/arm/dl-irel.h (elf_irel): Likewise.
+ * sysdeps/generic/unwind-dw2.c (execute_cfa_program): Likewise.
+ * sysdeps/i386/dl-irel.h (elf_irel): Likewise.
+ * sysdeps/powerpc/powerpc32/dl-irel.h (elf_irel): Likewise.
+ * sysdeps/powerpc/powerpc64/dl-irel.h (elf_irel): Likewise.
+ * sysdeps/s390/dl-irel.h (elf_irel): Likewise.
+ * sysdeps/sparc/sparc32/dl-irel.h (elf_irel): Likewise.
+ * sysdeps/sparc/sparc64/dl-irel.h (elf_irel): Likewise.
+ * sysdeps/x86_64/dl-irel.h (elf_irel): Likewise.
+ * sysdeps/nptl/futex-internal.h (futex_wake): Likewise.
+ * sysdeps/unix/sysv/linux/netlink_assert_response.c
+ (__netlink_assert_response): Likewise.
+
+2018-08-31 Joseph Myers <joseph@codesourcery.com>
+
+ * conform/glibcconform.py: New file.
+ * conform/list-header-symbols.py: Likewise.
+ * conform/list-header-symbols.pl: Remove.
+ * conform/Makefile (tests-special): Only add linknamespace tests
+ if [PYTHON].
+ ($(linknamespace-symlists-tests)): Use list-header-symbols.py.
+
+2018-08-31 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #23597]
+ * support/Makefile (libsupport-routines): Add
+ support_copy_file_range and xcopy_file_range.
+ * support/support.h: Include <sys/types.h>.
+ (support_copy_file_range): New prototype.
+ * support/support_copy_file_range.c: New file. Copied and
+ modified from io/copy_file_range-compat.c.
+ * support/test-container.c (copy_one_file): Call xcopy_file_rang
+ instead of copy_file_range.
+ * support/xcopy_file_range.c: New file.
+ * support/xunistd.h (xcopy_file_range): New prototype.
+
+2018-08-30 Carlos O'Donell <carlos@redhat.com>
+
+ * elf/tst-dlopen-aout.c: Include support/xthread.h. Use
+ xpthread_create and xpthread_join.
+
+2018-08-30 Florian Weimer <fweimer@redhat.com>
+
+ * stdlib/stdlib.h (reallocarray): Make available under __USE_MISC.
+
+2018-08-30 Stefan Liebler <stli@linux.ibm.com>
+
+ * stdlib/test-bz22786.c (do_test): Return EXIT_UNSUPPORTED
+ if malloc fails.
+
+2018-08-29 Joseph Myers <joseph@codesourcery.com>
+
+ * math/gen-libm-test.py (gen_test_args_res): Also treat plus_oflow
+ and minus_oflow as non-finite.
+
+2018-08-28 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/aarch64/fpu/fenv_private.h: New file. Based on ....
+ * sysdeps/aarch64/fpu/math_private.h: ... this file. All contents
+ moved to fenv_private.h except for ...
+ (TOINT_INTRINSICS): Kept in math_private.h.
+ (roundtoint): Likewise.
+ (converttoint): Likewise.
+ * sysdeps/arm/fenv_private.h: Change multiple-include guard to
+ [ARM_FENV_PRIVATE_H]. Include next <fenv_private.h>.
+ * sysdeps/arm/math_private.h: Remove.
+ * sysdeps/generic/fenv_private.h: New file. Contents moved from
+ ....
+ * sysdeps/generic/math_private.h: ... this file. Include
+ <stdbool.h>. Do not include <fenv.h> or <get-rounding-mode.h>.
+ Include <fenv_private.h>. Remove functions and macros moved to
+ fenv_private.h.
+ * sysdeps/i386/fpu/math_private.h: Remove.
+ * sysdeps/mips/math_private.h: Move to ....
+ * sysdeps/mips/fpu/fenv_private.h: ... here. Change
+ multiple-include guard to [MIPS_FENV_PRIVATE_H]. Remove
+ [__mips_hard_float] conditional. Include next <fenv_private.h>.
+ * sysdeps/powerpc/fpu/fenv_private.h: Change multiple-include
+ guard to [POWERPC_FENV_PRIVATE_H]. Include next <fenv_private.h>.
+ * sysdeps/powerpc/fpu/math_private.h: Do not include
+ <fenv_private.h>.
+ * sysdeps/riscv/rvf/math_private.h: Move to ....
+ * sysdeps/riscv/rvf/fenv_private.h: ... here. Change
+ multiple-include guard to [RISCV_FENV_PRIVATE_H]. Include next
+ <fenv_private.h>.
+ * sysdeps/sparc/fpu/fenv_private.h: Change multiple-include guard
+ to [SPARC_FENV_PRIVATE_H]. Include next <fenv_private.h>.
+ * sysdeps/sparc/fpu/math_private.h: Remove.
+ * sysdeps/i386/fpu/fenv_private.h: Move to ....
+ * sysdeps/x86/fpu/fenv_private.h: ... here. Change
+ multiple-include guard to [X86_FENV_PRIVATE_H]. Include next
+ <fenv_private.h>.
+ * sysdeps/x86_64/fpu/math_private.h: Do not include
+ <sysdeps/i386/fpu/fenv_private.h>.
+
+2018-08-28 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #23578]
+ * posix/tst-regcomp-truncated.c: New file.
+ * posix/Makefile (tests): Add it.
+ (tst-regcomp-truncated.out): Depend on generated locales.
+
+2018-08-28 Florian Weimer <fweimer@redhat.com>
+
+ * support/test-container.c (main): Treat unshare failure with
+ EPERM as an unsupported test.
+
+2018-08-28 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #23520]
+ nscd: Fix use-after-free in addgetnetgrentX and its callers.
+ * nscd/netgroupcache.c
+ (addgetnetgrentX): Add tofreep parameter. Do not free
+ heap-allocated buffer.
+ (addinnetgrX): Free buffer allocated bt addgetnetgrentX.
+ (addgetnetgrentX_ignore): New function.
+ (addgetnetgrent): Call it.
+ (readdgetnetgrent): Likewise.
+
+2018-08-28 Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>
+
+ * string/memmem.c: Use memcmp for first match.
+
+2018-08-28 Rafał Lużyński <digitalfreak@lingonborough.com>
+
+ [BZ #17426]
+ * localedata/locales/en_IN (d_fmt): Use "%d/%m/%y".
+
+2018-08-27 DJ Delorie <dj@redhat.com>
+
+ * support/Makefile (others): Don't list programs explicitly as a
+ dependency of "others".
+
+2018-08-27 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/generic/math-tests-trap-force.h: New file.
+ * sysdeps/generic/math-tests.h: Include <math-tests-trap-force.h>.
+ (EXCEPTION_SET_FORCES_TRAP): Do not define here.
+ * sysdeps/powerpc/math-tests.h: Remove file.
+ * sysdeps/powerpc/fpu/math-tests-trap-force.h: New file.
+
+2018-08-27 Martin Kuchta <martin.kuchta@netapp.com>
+ Torvald Riegel <triegel@redhat.com>
+
+ [BZ #23538]
+ * nptl/pthread_cond_common.c (__condvar_quiesce_and_switch_g1):
+ Update r to include the set wake-request flag if waiters are
+ remaining after spinning.
+
+2018-08-27 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/gnu/netinet/udp.h (UDP_SEGMENT): New macro.
+
+2018-08-25 Paul Eggert <eggert@cs.ucla.edu>
+
+ [BZ #23578]
+ regex: fix uninitialized memory access
+ I introduced this bug into gnulib in commit
+ 8335a4d6c7b4448cd0bcb6d0bebf1d456bcfdb17 dated 2006-04-10;
+ eventually it was merged into glibc. The bug was found by
+ project-repo <bugs@feusi.co> and reported here:
+ https://lists.gnu.org/r/sed-devel/2018-08/msg00017.html
+ Diagnosis and draft fix reported by Assaf Gordon here:
+ https://lists.gnu.org/r/bug-gnulib/2018-08/msg00071.html
+ https://lists.gnu.org/r/bug-gnulib/2018-08/msg00142.html
+ * posix/regex_internal.c (build_wcs_upper_buffer):
+ Fix bug when mbrtowc returns 0.
+
+2018-08-24 Carlos O'Donell <carlos@redhat.com>
+
+ * po/be.po: Update translation.
+
+2018-08-24 DJ Delorie <dj@delorie.com>
+
+ * support/Makefile (LDLIBS-links-dso-program): Add -lgcc and
+ $(libunwind).
+
+2018-08-24 Paul Pluzhnikov <ppluzhnikov@google.com>
+
+ [BZ #23400]
+ * stdlib/test-bz22786.c (do_test): Fix undefined behavior, don't
+ create temporary files in source tree.
+
+2018-08-24 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/generic/math-tests-trap.h: New file.
+ * sysdeps/generic/math-tests.h: Include <math-tests-trap.h>.
+ (EXCEPTION_ENABLE_SUPPORTED): Do not define here.
+ * sysdeps/aarch64/math-tests.h: Remove file.
+ * sysdeps/arm/math-tests.h: Likewise.
+ * sysdeps/riscv/math-tests.h: Likewise.
+ * sysdeps/aarch64/math-tests-trap.h: New file.
+ * sysdeps/arm/math-tests-trap.h: Likewise.
+ * sysdeps/riscv/math-tests-trap.h: Likewise.
+
+2018-08-24 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * math/Makefile: Remove empty files k_sin(f).c, k_cos(f).c.
+ Remove unused files e_rem_pio2(f).c, k_rem_pio2f.c.
+ * sysdeps/i386/fpu/e_rem_pio2.c: Delete file.
+ * sysdeps/ia64/fpu/e_rem_pio2.c: Likewise.
+ * sysdeps/ia64/fpu/e_rem_pio2f.c: Likewise.
+ * sysdeps/ia64/fpu/k_rem_pio2f.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_rem_pio2.c: Likewise.
+ * sysdeps/ieee754/dbl-64/k_cos.c: Likewise.
+ * sysdeps/ieee754/dbl-64/k_sin.c: Likewise.
+ * sysdeps/ieee754/flt-32/e_rem_pio2f.c: Likewise.
+ * sysdeps/ieee754/flt-32/k_cosf.c: Likewise.
+ * sysdeps/ieee754/flt-32/k_rem_pio2f.c: Likewise.
+ * sysdeps/ieee754/flt-32/k_sinf.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/e_rem_pio2.c: Likewise
+ * sysdeps/m68k/m680x0/fpu/e_rem_pio2f.c: Likewise
+ * sysdeps/m68k/m680x0/fpu/k_rem_pio2f.c: Likewise
+ * sysdeps/powerpc/fpu/e_rem_pio2f.c: Likewise.
+ * sysdeps/powerpc/fpu/k_rem_pio2f.c: Likewise.
+
+2018-08-23 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/generic/math-tests-exceptions.h: New file.
+ * sysdeps/generic/math-tests.h: Include <math-tests-exceptions.h>.
+ (EXCEPTION_TESTS_float): Do not define here.
+ (EXCEPTION_TESTS_double): Likewise.
+ (EXCEPTION_TESTS_long_double): Likewise.
+ (EXCEPTION_TESTS_float128): Likewise.
+ * sysdeps/arm/math-tests.h [__SOFTFP__] (EXCEPTION_TESTS_float):
+ Likewise.
+ [__SOFTFP__] (EXCEPTION_TESTS_double): Likewise.
+ [__SOFTFP__] (EXCEPTION_TESTS_long_double): Likewise.
+ * sysdeps/arm/nofpu/math-tests-exceptions.h: New file.
+ * sysdeps/m68k/coldfire/math-tests.h: Remove file.
+ * sysdeps/mips/math-tests.h: Likewise.
+ * sysdeps/nios2/math-tests.h: Likewise.
+ * sysdeps/riscv/math-tests.h [!__riscv_flen]
+ (EXCEPTION_TESTS_float): Do not define here.
+ [!__riscv_flen] (EXCEPTION_TESTS_double): Likewise.
+ [!__riscv_flen] (EXCEPTION_TESTS_long_double): Likewise.
+ * sysdeps/riscv/nofpu/math-tests-exceptions.h: New file.
+
+2018-08-23 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * NEWS: Move optimized sinf entry to 2.29.
+
+2018-08-23 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * sysdeps/ieee754/flt-32/s_tanf.c (__tanf): Use fast range reduction.
+
+2018-08-22 DJ Delorie <dj@redhat.com>
+
+ * Makefile (testroot.pristine): New rules to initialize the
+ test-in-container "testroot".
+ * Makerules (all-testsuite): Add tests-container.
+ * Rules (tests-expected): Add tests-container.
+ (binaries-all-tests): Likewise.
+ (tests-container): New, run these tests in the testroot container.
+ * support/Makefile (others): Add *-container, support_paths.c,
+ xmkdirp, and links-dso-program.
+ * support/links-dso-program-c.c: New.
+ * support/links-dso-program.cc: New.
+ * support/test-container.c: New.
+ * support/shell-container.c: New.
+ * support/echo-container.c: New.
+ * support/true-container.c: New.
+ * support/xmkdirp.c: New.
+ * support/xsymlink.c: New.
+ * support/support_paths.c: New.
+ * support/support.h: Add support paths prototypes.
+ * support/xunistd.h: Add xmkdirp () and xsymlink ().
+
+ * nss/tst-nss-test3.c: Convert to test-in-container.
+ * nss/tst-nss-test3.root/: New.
+
+2018-08-22 Paul Eggert <eggert@cs.ucla.edu>
+
+ regex: port Gnulib code to z/OS POSIX environment
+ Problem reported by Arnold Robbins in:
+ https://lists.gnu.org/r/bug-gnulib/2018-08/msg00129.html
+ * posix/regex_internal.h (__iswalnum, __towlower, __towupper) [!_LIBC]:
+ Undef.
+
+2018-08-22 Joseph Myers <joseph@codesourcery.com>
+
+ * math/test-double-vlen2.h: Don't include <math-tests-rounding.h>.
+ (ROUNDING_TESTS_double): Remove.
+ * math/test-double-vlen4.h: Don't include <math-tests-rounding.h>.
+ (ROUNDING_TESTS_double): Remove.
+ * math/test-double-vlen8.h: Don't include <math-tests-rounding.h>.
+ (ROUNDING_TESTS_double): Remove.
+ * math/test-float-vlen16.h: Don't include <math-tests-rounding.h>.
+ (ROUNDING_TESTS_float): Remove.
+ * math/test-float-vlen4.h: Don't include <math-tests-rounding.h>.
+ (ROUNDING_TESTS_float): Remove.
+ * math/test-float-vlen8.h: Don't include <math-tests-rounding.h>.
+ (ROUNDING_TESTS_float): Remove.
+ * math/libm-test-driver.c (IF_ROUND_INIT_FE_DOWNWARD): Check
+ !TEST_MATHVEC here.
+ (IF_ROUND_INIT_FE_TOWARDZERO): Likewise.
+ (IF_ROUND_INIT_FE_UPWARD): Likewise.
+
+ * sysdeps/generic/math-tests-rounding.h: New file.
+ * sysdeps/generic/math-tests.h: Include <math-tests-rounding.h>.
+ (ROUNDING_TESTS_float): Do not define here.
+ (ROUNDING_TESTS_double): Likewise.
+ (ROUNDING_TESTS_long_double): Likewise.
+ (ROUNDING_TESTS_float128): Likewise.
+ * math/test-double-vlen2.h: Include <math-tests-rounding.h>.
+ (ROUNDING_TESTS_double): Undefine before defining.
+ * math/test-double-vlen4.h: Include <math-tests-rounding.h>.
+ (ROUNDING_TESTS_double): Undefine before defining.
+ * math/test-double-vlen8.h: Include <math-tests-rounding.h>.
+ (ROUNDING_TESTS_double): Undefine before defining.
+ * math/test-float-vlen16.h: Include <math-tests-rounding.h>.
+ (ROUNDING_TESTS_float): Undefine before defining.
+ * math/test-float-vlen4.h: Include <math-tests-rounding.h>.
+ (ROUNDING_TESTS_float): Undefine before defining.
+ * math/test-float-vlen8.h: Include <math-tests-rounding.h>.
+ (ROUNDING_TESTS_float): Undefine before defining.
+ * sysdeps/arm/nofpu/math-tests-rounding.h: New file.
+ * sysdeps/arm/math-tests.h [__SOFTFP__] (ROUNDING_TESTS_float): Do
+ not define here.
+ [__SOFTFP__] (ROUNDING_TESTS_double): Likewise.
+ [__SOFTFP__] (ROUNDING_TESTS_long_double): Likewise.
+ * sysdeps/riscv/nofpu/math-tests-rounding.h: New file.
+ * sysdeps/riscv/math-tests.h [!__riscv_flen]
+ (ROUNDING_TESTS_float): Do not define here.
+ [!__riscv_flen] (ROUNDING_TESTS_double): Likewise.
+ [!__risv_flen] (ROUNDING_TESTS_long_double): Likewise.
+ * sysdeps/m68k/coldfire/math-tests.h [!__mcffpu__]
+ (ROUNDING_TESTS_float): Likewise.
+ [!__mcffpu__] (ROUNDING_TESTS_double): Likewise.
+ [!__mcffpu__] (ROUNDING_TESTS_long_double): Likewise.
+ * sysdeps/mips/math-tests.h [__mips_soft_float]
+ (ROUNDING_TESTS_float): Likewise.
+ [__mips_soft_float] (ROUNDING_TESTS_double): Likewise.
+ [__mips_soft_float] (ROUNDING_TESTS_long_double): Likewise.
+ * sysdeps/nios2/math-tests.h (ROUNDING_TESTS_float): Likewise.
+ (ROUNDING_TESTS_double): Likewise.
+ (ROUNDING_TESTS_long_double): Likewise.
+
+2018-08-21 Tobias Klauser <tklauser@distanz.ch>
+
+ * sysdeps/unix/sysv/linux/bits/socket.h (PF_MAX): Set to 45.
+ (PF_XDP): New macro.
+ (AF_XDP): New macro.
+ (SOL_XDP): New macro.
+
+2018-08-21 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/gnu/netinet/tcp.h (TCP_ZEROCOPY_RECEIVE): New macro.
+ (TCP_INQ): Likewise.
+ (TCP_CM_INQ): Likewise.
+ (TCP_REPAIR_ON): Likewise.
+ (TCP_REPAIR_OFF): Likewise.
+ (TCP_REPAIR_OFF_NO_WP): Likewise.
+ (struct tcp_zerocopy_receive): New type.
+
+2018-08-21 Florian Weimer <fweimer@redhat.com>
+
+ * support/support.h (support_descriptor_supports_holes): Declare.
+ * support/Makefile (libsupport-routines): Add
+ support_descriptor_supports_holes.
+ * support/support_descriptor_supports_holes.c: New file.
+ * io/tst-copy_file_range.c: Call support_descriptor_supports_holes
+ and stop testing if holes are not supported.
+ * io/test-lfs.c (do_prepare): Likewise.
+ * sysdeps/unix/sysv/linux/tst-fallocate-common.c (do_prepare):
+ Likewise.
+ * timezone/tst-tzset.c (create_tz_file): Likewise.
+ * misc/tst-preadvwritev-common.c (temp_fd_supports_holes) New
+ variable.
+ (do_prepare): Set it.
+ * misc/tst-preadvwritev64.c (do_test): Use temp_fd_supports_holes.
+
+2018-08-21 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #17248]
+ * Makeconfig (+cflags): Do not sort (and deduplicate).
+
+2018-08-21 Florian Weimer <fweimer@redhat.com>
+
+ * debug/readlink_chk.c (__readlink_chk): Always call __readlink.
+ * sysdeps/unix/sysv/linux/generic/readlink_chk.c: Remove file.
+
+2018-08-20 Florian Weimer <fweimer@redhat.com>
+
+ * sysdeps/unix/sysv/linux/generic/readlink_chk.c: Remove
+ HAVE_INLINED_SYSCALLS conditionals. Use INLINE_SYSCALL_CALL.
+
+2018-08-20 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/sys/signalfd.h (struct
+ signalfd_siginfo): Add ssi_addr_lsb, ssi_syscall, ssi_call_addr
+ and ssi_arch members.
+
+ * elf/elf.c (NT_VMCOREDD): New macro.
+ (AT_MINSIGSTKSZ): Likewise.
+
+2018-08-20 Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>
+
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile
+ (libm-sysdep_routines): Remove s_sinf-ppc64, s_sinf-power8,
+ s_cosf-ppc64 and s_cosf-power8.
+ * sysdeps/powerpc/fpu/s_cosf.c: Remove file.
+ * sysdeps/powerpc/fpu/s_sinf.c: Likewise.
+ * sysdeps/powerpc/fpu/k_sinf.c: Likewise.
+ * sysdeps/powerpc/fpu/k_cosf.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_cosf-power8.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_cosf-ppc64.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_cosf.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf-power8.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf-ppc64.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf.c: Likewise.
+ * sysdeps/powerpc/powerpc64/power8/fpu/s_cosf.S: Likewise.
+ * sysdeps/powerpc/powerpc64/power8/fpu/s_sinf.S: Likewise.
+
+2018-08-17 Florian Weimer <fweimer@redhat.com>
+
+ * sysdeps/s390/fpu/libm-test-ulps: Regenerate.
+
+2018-08-17 Istvan Kurucsai <pistukem@gmail.com>
+
+ * malloc/malloc.c (_int_malloc): Additional binning code checks.
+
+2018-08-16 Florian Weimer <fweimer@redhat.com>
+
+ * configure.ac: Add --with-nonshared-cflags option.
+ * config.make.in (extra-nonshared-cflags): Set variable.
+ * Makeconfig (CFLAGS-.oS): Use it.
+ * manual/install.texi (Configuring and compiling): Document
+ --with-nonshared-cflags.
+ * configure: Regenerate.
+ * INSTALL: Likewise.
+
+2018-08-16 Florian Weimer <fweimer@redhat.com>
+
+ * Makeconfig (ASFLAGS): Always append required assembler flags.
+
+2018-08-16 Moritz Eckert <m.eckert@cs.ucsb.edu>
+
+ * malloc/malloc.c (_int_free): Check for corrupt prev_size vs size.
+ (malloc_consolidate): Likewise.
+
+2018-08-16 Pochang Chen <johnchen902@gmail.com>
+
+ * malloc/malloc.c (_int_malloc.c): Verify size of top chunk.
+
+2018-08-16 Siddhesh Poyarekar <siddhesh@sourceware.org>
+
+ * benchtests/bench-strlen.c (do_test): Allocate buffers before
+ every strlen call.
+
+ * benchtests/bench-strlen.c: Print performance numbers in json.
+
+2018-08-16 Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>
+
+ * sysdeps/powerpc/powerpc64/multiarch/Makefile
+ (sysdep_routines): Build strcmp-power9 and strncmp-power9
+ only for little endian.
+ * sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c
+ (strncmp): Move __strncmp_power9 inside ifdef __LITTLE_ENDIAN__.
+ (STRCMP): Move __strcmp_power9 inside ifdef __LITTLE_ENDIAN__.
+ * sysdeps/powerpc/powerpc64/multiarch/strcmp-power9.S:
+ Add check for little endian.
+ * sysdeps/powerpc/powerpc64/multiarch/strcmp.c
+ (__strcmp_power9): Add check for little endian.
+ * sysdeps/powerpc/powerpc64/multiarch/strncmp-power9.S:
+ Add check for little endian.
+ * sysdeps/powerpc/powerpc64/multiarch/strncmp.c
+ (__strncmp_power9): Add check for little endian.
+ * sysdeps/powerpc/powerpc64/power9/strcmp.S: Removed ifdef
+ __LITTLE_ENDIAN__ and moved to sysdeps/powerpc/powerpc64/le/power9.
+ * sysdeps/powerpc/powerpc64/power9/strncmp.S: Likewise.
+ * sysdeps/powerpc/powerpc64/le/power9/strcmp.S: New file.
+ * sysdeps/powerpc/powerpc64/le/power9/strncmp.S: Likewise.
+
+2018-08-15 Siddhesh Poyarekar <siddhesh@sourceware.org>
+
+ * sysdeps/aarch64/strlen.S (__strlen): Rename to STRLEN.
+ [!STRLEN](STRLEN): Set to __strlen.
+ * sysdeps/aarch64/multiarch/strlen.c: New file.
+ * sysdeps/aarch64/multiarch/strlen_generic.S: Likewise.
+ * sysdeps/aarch64/multiarch/strlen_asimd.S: Likewise.
+ * sysdeps/aarch64/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Add strlen.
+ * sysdeps/aarch64/multiarch/Makefile (sysdep_routines): Add
+ strlen_generic and strlen_asimd.
+
+2018-08-15 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * sysdeps/ieee754/flt-32/e_lgammaf_r.c (sin_pif): Use __sinf/__cosf.
+ * sysdeps/ieee754/flt-32/k_cosf.c (__kernel_cosf): Remove all code.
+ * sysdeps/ieee754/flt-32/k_sinf.c (__kernel_sinf): Likewise.
+
+2018-08-15 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * sysdeps/x86_64/fpu/libm-test-ulps: Regenerate to fix spaces.
+
+2018-08-14 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #23519]
+ * include/stdio.h (__vfxprintf): Declare.
+ * stdio-common/fxprintf.c (__vfxprintf): New function.
+ (__fxprintf): Call it.
+ * misc/err.c (convert_and_print): Remove function.
+ (vwarnx, vwarn): Call __fxprintf and __vfxprintf.
+ * misc/error.c [_LIBC] (error_tail): Call __vfxprintf.
+ * misc/Makefile (tests): Add tst-warn-wide.
+ * misc/tst-warn-wide.c: New file.
+
+2018-08-14 Wilco Dijkstra <wdijkstr@arm.com>
+ Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * NEWS: Mention sinf, cosf, sincosf.
+ * sysdeps/aarch64/libm-test-ulps: Update ULP for sinf, cosf, sincosf.
+ * sysdeps/x86_64/fpu/libm-test-ulps: Update ULP for sinf and cosf.
+ * sysdeps/x86_64/fpu/multiarch/s_sincosf-fma.c: Add definitions of
+ constants rather than including generic sincosf.h.
+ * sysdeps/x86_64/fpu/s_sincosf_data.c: Remove.
+ * sysdeps/ieee754/flt-32/s_cosf.c (cosf): Rewrite.
+ * sysdeps/ieee754/flt-32/s_sincosf.h (reduced_sin): Remove.
+ (reduced_cos): Remove.
+ (sinf_poly): New function.
+ * sysdeps/ieee754/flt-32/s_sinf.c (sinf): Rewrite.
+
+2018-08-14 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #23521]
+ [BZ #23522]
+ * nss/nss_files/files-alias.c (get_next_alias): During :include:
+ processing, bail out if no room, and close the stream before
+ returning ERANGE.
+ * nss/Makefile (tests): Add tst-nss-files-alias-leak.
+ (tst-nss-files-alias-leak): Link with libdl.
+ (tst-nss-files-alias-leak.out): Depend on nss_files.
+
+ * nss/tst-nss-files-alias-leak.c: New file.
+
+2018-08-14 Florian Weimer <fweimer@redhat.com>
+
+ * nscd/nscd_conf.c (nscd_parse_file): Deallocate old storage for
+ server_user, stat_user.
+
+2018-08-13 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/syscall-names.list: Update kernel
+ version to 4.18.
+ (io_pgetevents): New syscall.
+ (rseq): Likewise.
+
+ * manual/install.texi (Configuring and compiling): Do not list
+ tools used for testing pretty printers here.
+ (Tools for Compilation): List Python, PExpect and GDB here.
+ Update descriptions of uses of Perl and Python.
+ * INSTALL: Regenerate.
+
+ * scripts/build-many-glibcs.py (Context.checkout): Default Linux
+ version to 4.18.
+
+2018-08-13 Florian Weimer <fweimer@redhat.com>
+
+ * misc/error.c (error): Add missing va_end call.
+ (error_at_line): Likewise.
+
+2018-08-13 Florian Weimer <fweimer@redhat.com>
+
+ * stdlib/mbstowcs.c (mbstowcs): Remove outdated comment.
+
+2018-08-11 Siddhesh Poyarekar <siddhesh@sourceware.org>
+
+ * benchtests/scripts/benchout.schema.json (properties): Add
+ new properties.
+
+ * benchtests/bench-skeleton.c (main): Add duration and
+ iterations attributes.
+
+2018-08-10 Paul Eggert <eggert@cs.ucla.edu>
+
+ regex: Gnulib unibyte RRI uses bytes not chars
+ Adjust the non-glibc code to agree with what Gawk needs for
+ rational range interpretation (RRI) for regular expression ranges.
+ In unibyte locales, Gawk wants ranges to use the underlying byte
+ rather than the character code point. This change does not affect
+ glibc proper.
+ * posix/regcomp.c (parse_byte) [!LIBC && RE_ENABLE_I18N]:
+ In unibyte locales, use the byte value rather than
+ running it through btowc.
+
+2018-08-10 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/generic/math-tests-snan.h: New file.
+ * sysdeps/generic/math-tests.h: Include <math-tests-snan.h>.
+ (SNAN_TESTS_float): Do not define here.
+ (SNAN_TESTS_double): Likewise.
+ (SNAN_TESTS_long_double): Likewise.
+ (SNAN_TESTS_float128): Likewise.
+ * sysdeps/i386/fpu/math-tests-snan.h: New file.
+ * sysdeps/i386/fpu/math-tests.h: Remove file.
+ * sysdeps/ia64/math-tests-snan.h: New file.
+ * sysdeps/ia64/math-tests.h: Remove file.
+ * sysdeps/x86/math-tests.h: Likewise.
+ * sysdeps/x86_64/fpu/math-tests-snan.h: New file.
+
+2018-08-10 Wilco Dijkstra <wdijkstr@arm.com>
+ Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * math/Makefile: Add s_sincosf_data.c.
+ * sysdeps/ia64/fpu/s_sincosf_data.c: New file.
+ * sysdeps/ieee754/flt-32/s_sincosf.h (abstop12): Add new function.
+ (sincosf_poly): Likewise.
+ (reduce_small): Likewise.
+ (reduce_large): Likewise.
+ * sysdeps/ieee754/flt-32/s_sincosf.c (sincosf): Rewrite.
+ * sysdeps/ieee754/flt-32/s_sincosf_data.c: New file with sincosf data.
+ * sysdeps/m68k/m680x0/fpu/s_sincosf_data.c: New file.
+ * sysdeps/x86_64/fpu/s_sincosf_data.c: New file.
+
+2018-08-10 Wilco Dijkstra <wdijkstr@arm.com>
+ Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * sysdeps/aarch64/fpu/math_private.h (roundtoint): Use round.
+ (converttoint): Use lround.
+ * sysdeps/ieee754/flt-32/math_config.h (roundtoint): Declare and
+ document the semantics when TOINT_INTRINSICS is set.
+ (converttoint): Likewise.
+ (TOINT_RINT): Remove.
+ (TOINT_SHIFT): Remove.
+ * sysdeps/ieee754/flt-32/e_expf.c (__expf): Remove the TOINT_RINT code
+ path.
+
+2018-08-10 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #23497]
+ * sysdeps/unix/sysv/linux/getdents64.c (handle_overflow): New
+ function.
+ (__old_getdents64): Use getdents64. Convert entries without
+ moving them.
+ * sysdeps/unix/sysv/linux/tst-readdir64-compat.c: New file.
+ * sysdeps/unix/sysv/linux/Makefile (tests-internal): Add
+ tst-readdir64-compat.
+
+2018-08-10 Ilya Leoshkevich <iii@linux.ibm.com>
+
+ * sysdeps/s390/s390-32/s390-mcount.S (_mcount):
+ Fix unwind.
+
+2018-08-10 Ilya Leoshkevich <iii@linux.ibm.com>
+
+ * sysdeps/s390/s390-64/Versions (__fentry__): Add.
+ * sysdeps/s390/s390-64/s390x-mcount.S: Move the common
+ code to s390x-mcount.h and #include it.
+ * sysdeps/s390/s390-64/s390x-mcount.h: New file.
+ * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+ (__fentry__): Add.
+
+2018-08-10 Ilya Leoshkevich <iii@linux.ibm.com>
+
+ * stdlib/Versions: Remove __fentry__.
+ * sysdeps/i386/Versions: Add __fentry__.
+ * sysdeps/x86_64/Versions: Add __fentry__.
+
+2018-08-10 Ilya Leoshkevich <iii@linux.ibm.com>
+
+ * sysdeps/s390/Makefile: Register the new tests.
+ * sysdeps/s390/tst-dl-runtime-mod.S: New file.
+ * sysdeps/s390/tst-dl-runtime-profile-audit.c: New file.
+ * sysdeps/s390/tst-dl-runtime-profile-noaudit.c: New file.
+ * sysdeps/s390/tst-dl-runtime-resolve-audit.c: New file.
+ * sysdeps/s390/tst-dl-runtime-resolve-noaudit.c: New file.
+ * sysdeps/s390/tst-dl-runtime.c: New file.
+
+2018-08-10 Ilya Leoshkevich <iii@linux.ibm.com>
+
+ * sysdeps/s390/s390-64/dl-trampoline.h (_dl_runtime_profile):
+ Do not clobber R0.
+
+2018-08-10 Ilya Leoshkevich <iii@linux.ibm.com>
+
+ * sysdeps/s390/s390-64/dl-trampoline.h (_dl_runtime_resolve):
+ Do not clobber R0.
+
+2018-08-10 Ilya Leoshkevich <iii@linux.ibm.com>
+
+ * sysdeps/s390/s390-32/dl-trampoline.h (_dl_runtime_profile):
+ Do not clobber R0.
+
+2018-08-10 Ilya Leoshkevich <iii@linux.ibm.com>
+
+ * sysdeps/s390/s390-32/dl-trampoline.h (_dl_runtime_resolve):
+ Do not clobber R0.
+
+2018-08-10 Ilya Leoshkevich <iii@linux.ibm.com>
+
+ * sysdeps/s390/s390-64/dl-trampoline.h (_dl_runtime_profile):
+ Use symbolic offsets for stack variables.
+
+2018-08-10 Ilya Leoshkevich <iii@linux.ibm.com>
+
+ * sysdeps/s390/s390-64/dl-trampoline.h (_dl_runtime_resolve):
+ Use symbolic offsets for stack variables.
+
+2018-08-10 Ilya Leoshkevich <iii@linux.ibm.com>
+
+ * sysdeps/s390/s390-32/dl-trampoline.h (_dl_runtime_profile):
+ Use symbolic offsets for stack variables.
+
+2018-08-10 Ilya Leoshkevich <iii@linux.ibm.com>
+
+ * sysdeps/s390/s390-32/dl-trampoline.h (_dl_runtime_resolve):
+ Use symbolic offsets for stack variables.
+
+2018-08-09 Joseph Myers <joseph@codesourcery.com>
+
+ * math/gen-libm-test.py: New file.
+ * math/gen-libm-test.pl: Remove.
+ * math/Makefile [$(PERL) != no]: Change condition to [PYTHON].
+ ($(objpfx)libm-test-ulps.h): Use gen-libm-test.py instead of
+ gen-libm-test.pl.
+ ($(libm-test-c-noauto-obj)): Likewise.
+ ($(libm-test-c-auto-obj)): Likewise.
+ ($(libm-test-c-narrow-obj)): Likewise.
+ (regen-ulps): Likewise.
+ * math/README.libm-test: Update references to gen-libm-test.pl.
+ * math/libm-test-driver.c (struct test_fj_f_data): Update comment
+ referencing gen-libm-test.pl.
+ * math/libm-test-nexttoward.inc (nexttoward_test_data): Likewise.
+ * math/libm-test-support.c: Likewise.
+ * math/libm-test-support.h: Likewise.
+ * sysdeps/generic/libm-test-ulps: Likewise.
+
+2018-08-08 Siddhesh Poyarekar <siddhesh@sourceware.org>
+
+ * sysdeps/aarch64/strlen.S [TEST_PAGE_CROSS](MIN_PAGE_SIZE):
+ Fix value.
+
+2018-08-08 Joseph Myers <joseph@codesourcery.com>
+
+ * math/libm-test-nextdown.inc (do_test): Move comment to ....
+ * math/libm-test-nexttoward.inc (nexttoward_test_data): ... here.
+
+2018-08-08 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * htl/Versions (__pthread_getspecific, __pthread_setspecific): Add
+ symbols.
+ * sysdeps/htl/pthreadP.h [IS_IN (libpthread)] (__pthread_getspecific,
+ __pthread_setspecific): Add hidden proto.
+ * sysdeps/htl/pt-getspecific.c (__pthread_getspecific): Add hidden def.
+ * sysdeps/htl/pt-setspecific.c (__pthread_setspecific): Add hidden def.
+
+2018-08-07 Siddhesh Poyarekar <siddhesh@sourceware.org>
+
+ * benchtests/bench-string.h (buf1_size, buf2_size): New
+ variables.
+ (init_sizes): New function.
+ (test_init): Use it.
+ (alloc_buf, exit_error): New functions.
+ (alloc_bufs): Use ALLOC_BUF.
+ (realloc_bufs): Remove.
+ * benchtests/bench-memcmp.c (do_test): Adjust.
+ * benchtests/bench-memset-large.c (do_test): Likewise.
+ * benchtests/bench-memset-walk.c (do_test): Likewise.
+ * benchtests/bench-memset.c (do_test): Likewise.
+ * benchtests/bench-strncmp.c (do_test): Likewise.
+
+2018-08-06 Andreas Schwab <schwab@suse.de>
+
+ * sysdeps/riscv/nptl/tls.h (DB_THREAD_SELF): Use REGISTER instead
+ of CONST_THREAD_AREA.
+
+2018-08-06 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86/cpu-features.h (STATE_SAVE_OFFSET): Removed.
+ (STATE_SAVE_MASK): Likewise.
+ Don't check __ASSEMBLER__ to include <cpu-features-offsets.h>.
+ * sysdeps/x86/sysdep.h (STATE_SAVE_OFFSET): New.
+ (STATE_SAVE_MASK): Likewise.
+ * sysdeps/x86_64/dl-trampoline.S: Include <cpu-features-offsets.h>
+ instead of <cpu-features.h>.
+
+2018-08-03 DJ Delorie <dj@redhat.com>
+
+ * sysdeps/riscv/rvf/math_private.h (libc_feholdexcept_setround_riscv):
+ Move libc_fesetround_riscv after libc_feholdexcept_riscv.
+
+ * sysdeps/riscv/rv64/rvd/libm-test-ulps: Update.
+
+2018-08-03 Joseph Myers <joseph@codesourcery.com>
+
+ * math/libm-test-ilogb.inc (ilogb_test_data): Use ',' not ';'
+ after TEST_* calls.
+ * math/libm-test-llogb.inc (llogb_test_data): Likewise.
+ * math/libm-test-logb.inc (logb_test_data): Likewise.
+
+2018-08-03 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * string/strcasestr.c (STRCASESTR): Simplify and speedup first match.
+ * string/strstr.c (AVAILABLE): Likewise.
+
+2018-08-03 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/i386/i686/multiarch/bzero-ia32.S: Don't include
+ <init-arch.h>.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_sin8_core-avx2.S: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/svml_s_expf16_core-avx2.S: Likewise.
+ * sysdeps/x86_64/multiarch/memset-sse2-unaligned-erms.S: Likewise.
+
+2018-08-03 Carlos O'Donell <carlos@redhat.com>
+
+ * po/be.po: Update translation.
+
+ * po/be.po: Update translation.
+
+2018-08-03 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86/cpu-features-offsets.sym
+ (rtld_global_ro_offsetof): Removed.
+ (CPU_FEATURES_SIZE): Likewise.
+ (CPUID_OFFSET): Likewise.
+ (CPUID_SIZE): Likewise.
+ (CPUID_EAX_OFFSET): Likewise.
+ (CPUID_EBX_OFFSET): Likewise.
+ (CPUID_ECX_OFFSET): Likewise.
+ (CPUID_EDX_OFFSET): Likewise.
+ (FAMILY_OFFSET): Likewise.
+ (MODEL_OFFSET): Likewise.
+ (FEATURE_OFFSET): Likewise.
+ (FEATURE_SIZ): Likewise.
+ (COMMON_CPUID_INDEX_1): Likewise.
+ (COMMON_CPUID_INDEX_7): Likewise.
+ (FEATURE_INDEX_1): Likewise.
+ (RTLD_GLOBAL_RO_DL_X86_CPU_FEATURES_OFFSET): Updated.
+
+2018-08-02 Carlos O'Donell <carlos@redhat.com>
+
+ * localedata/Makefile (INSTALL-SUPPORTED-LOCALES): Remove.
+ (INSTALL-SUPPORTED-LOCALE-ARCHIVE): Define.
+ (INSTALL-SUPPORTED-LOCALE-FILES): Define.
+ (install-locales): Depend on install-locale-archive.
+ (install-locale-archive): Define.
+ (install-locale-files): Define.
+ (build-one-locale): Define macro.
+ * manual/install.texi (Running make install): Document.
+ * manual/INSTALL: Regenerate.
+
+2018-08-02 Siddhesh Poyarekar <siddhesh@sourceware.org>
+
+ * benchtests/scripts/compare_strings.py: Import traceback.
+ (parse_file): Pretty-print error.
+
+ * NEWS: Mention the change.
+ * elf/dl-tunables.list: Rename tune namespace to cpu.
+ * sysdeps/powerpc/dl-tunables.list: Likewise.
+ * sysdeps/x86/dl-tunables.list: Likewise.
+ * sysdeps/aarch64/dl-tunables.list: Rename tune.cpu to
+ cpu.name.
+ * elf/dl-hwcaps.c (_dl_important_hwcaps): Adjust.
+ * elf/dl-hwcaps.h (GET_HWCAP_MASK): Likewise.
+ * manual/README.tunables: Likewise.
+ * manual/tunables.texi: Likewise.
+ * sysdeps/powerpc/cpu-features.c: Likewise.
+ * sysdeps/unix/sysv/linux/aarch64/cpu-features.c
+ (init_cpu_features): Likewise.
+ * sysdeps/x86/cpu-features.c: Likewise.
+ * sysdeps/x86/cpu-features.h: Likewise.
+ * sysdeps/x86/cpu-tunables.c: Likewise.
+ * sysdeps/x86_64/Makefile: Likewise.
+ * sysdeps/x86/dl-cet.c: Likewise.
+
+2018-08-02 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #23479]
+ * sysdeps/mips/bits/fenv.h (FE_INEXACT): Define only if
+ [__mips_hard_float].
+ (FE_UNDERFLOW): Likewise.
+ (FE_OVERFLOW): Likewise.
+ (FE_DIVBYZERO): Likewise.
+ (FE_INVALID): Likewise.
+ (FE_ALL_EXCEPT): Define to 0 if [!__mips_hard_float].
+ (FE_TOWARDZERO): Define only if [__mips_hard_float].
+ (FE_UPWARD): Likewise.
+ (FE_DOWNWARD): Likewise.
+ (__FE_UNDEFINED): Define if [!__mips_hard_float]
+ (FE_NOMASK_ENV): Define only if [__mips_hard_float].
+ * sysdeps/mips/mips64/sfp-machine.h (_FP_DECL_EX): Define only if
+ [__mips_hard_float].
+ (FP_ROUNDMODE): Likewise.
+ (FP_RND_NEAREST): Likewise.
+ (FP_RND_ZERO): Likewise.
+ (FP_RND_PINF): Likewise.
+ (FP_RND_MINF): Likewise.
+ (FP_EX_INVALID): Likewise.
+ (FP_EX_OVERFLOW): Likewise.
+ (FP_EX_UNDERFLOW): Likewise.
+ (FP_EX_DIVZERO): Likewise.
+ (FP_EX_INEXACT): Likewise.
+ (FP_INIT_ROUNDMODE): Likewise.
+ * sysdeps/mips/nofpu/fesetenv.c: New file.
+ * sysdeps/mips/nofpu/feupdateenv.c: Likewise.
+
+2018-08-01 Joseph Myers <joseph@codesourcery.com>
+
+ * math/test-misc.c (do_test) [LDBL_MANT_DIG > DBL_MANT_DIG]: Make
+ code using FE_UNDERFLOW conditional on [FE_UNDERFLOW], code using
+ FE_OVERFLOW conditional on [FE_OVERFLOW] and code using FE_UPWARD
+ conditional on [FE_UPWARD].
+
+2018-08-01 Paul Eggert <eggert@cs.ucla.edu>
+
+ regex: fix memory leak in Gnulib
+ Problem and fix reported by Assaf Gordon in:
+ https://lists.gnu.org/r/bug-gnulib/2018-07/txtqLKNwBdefE.txt
+ * posix/regcomp.c (free_charset) [!_LIBC]: Free range_starts and
+ range_ends members too, as they are defined in 'struct
+ re_charset_t' even if not _LIBC. This affects only Gnulib.
+
+2018-08-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86/cpu-features.c (get_common_indeces): Renamed to
+ ...
+ (get_common_indices): This.
+ (init_cpu_features): Updated.
+
+2018-08-01 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/generic/math-tests-snan-payload.h: New file.
+ * sysdeps/hppa/math-tests-snan-payload.h: Likewise.
+ * sysdeps/mips/math-tests-snan-payload.h: Likewise.
+ * sysdeps/riscv/math-tests-snan-payload.h: Likewise.
+ * sysdeps/generic/math-tests.h: Include
+ <math-tests-snan-payload.h>.
+ (SNAN_TESTS_PRESERVE_PAYLOAD): Do not define macro here.
+ * sysdeps/hppa/math-tests.h: Remove file.
+ * sysdeps/mips/math-tests.h [!__mips_nan2008]
+ (SNAN_TESTS_PRESERVE_PAYLOAD): Do not define macro here.
+ * sysdeps/riscv/math-tests.h (SNAN_TESTS_PRESERVE_PAYLOAD):
+ Likewise.
+
+ * sysdeps/generic/math-tests-snan-cast.h: New file.
+ * sysdeps/powerpc/math-tests-snan-cast.h: Likewise.
+ * sysdeps/generic/math-tests.h: Include <math-tests-snan-cast.h>.
+ (SNAN_TESTS_TYPE_CAST): Do not define macro here.
+ * sysdeps/powerpc/math-tests.h (SNAN_TESTS_TYPE_CAST): Likewise.
+
+2018-08-01 Carlos O'Donell <carlos@redhat.com>
+
+ * version.h (RELEASE): Set to "development".
+ (VERSION): Set to "2.28.9000".
+ * NEWS (2.29): New section.
+
+ * version.h (RELEASE): Set to "stable".
+ (VERSION): Set to "2.28".
+ * include/features.h (__GLIBC_MINOR__): Set to 2.28.
+ * NEWS: Add the list of bugs fixed in 2.28.
+
+ * po/ca.po: Update to latest version.
+ * po/cs.po: Likewise
+ * po/da.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/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/pt_BR.po: Likewise
+ * po/ru.po: Likewise
+ * po/rw.po: Likewise
+ * po/sk.po: Likewise
+ * po/sl.po: Likewise
+ * po/tr.po: Likewise
+ * po/zh_CN.po: Likewise
+ * po/zh_TW.po: Likewise
+
+2018-07-31 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * sysdeps/mach/hurd/i386/init-first.c (init1): Move ELF hdr and TLS
+ initialization...
+ (init): ... before initializing libpthread.
+
+ * mach/mach.h (__mach_setup_tls, mach_setup_tls): Add prototypes.
+ * mach/setup-thread.c (__mach_setup_thread): Move TLS setup to...
+ (__mach_setup_tls): ... new function.
+ (mach_setup_tls): New alias.
+ * hurd/hurdsig.c (_hurdsig_init): Call __mach_setup_tls after
+ __mach_setup_thread.
+ * sysdeps/mach/hurd/profil.c (update_waiter): Likewise.
+ * sysdeps/mach/hurd/setitimer.c (setitimer_locked): Likewise.
+ * mach/Versions [libc] (mach_setup_tls): Add symbol.
+ * sysdeps/mach/hurd/i386/libc.abilist (mach_setup_tls): Likewise.
+
+2018-07-31 Carlos O'Donell <carlos@redhat.com>
+
+ * manual/install.texi: Update versions.
+ * INSTALL: Regenerate.
+
+ * manual/contrib.texi (Contributors): Update contributions.
+
+2018-07-31 Carlos O'Donell <carlos@redhat.com>
+
+ * po/be.po: Update translations.
+
+2018-07-31 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/sh/libm-test-ulps: Update.
+
+2018-07-30 Carlos O'Donell <carlos@redhat.com>
+
+ * po/bg.po: Update translations.
+ * po/de.po: Likewise.
+ * po/hr.po: Likewise.
+ * po/pt_BR.po: Likewise.
+ * po/sv.po: Likewise.
+ * po/vi.po: Likewise.
+
+2018-07-30 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #23467]
+ * sysdeps/unix/sysv/linux/x86/Makefile (tests): Add
+ tst-cet-property-1 and tst-cet-property-2 if CET is enabled.
+ (CFLAGS-tst-cet-property-1.o): New.
+ (ASFLAGS-tst-cet-property-dep-2.o): Likewise.
+ ($(objpfx)tst-cet-property-2): Likewise.
+ ($(objpfx)tst-cet-property-2.out): Likewise.
+ * sysdeps/unix/sysv/linux/x86/tst-cet-property-1.c: New file.
+ * sysdeps/unix/sysv/linux/x86/tst-cet-property-2.c: Likewise.
+ * sysdeps/unix/sysv/linux/x86/tst-cet-property-dep-2.S: Likewise.
+ * sysdeps/x86/dl-prop.h (_dl_process_cet_property_note): Parse
+ each property item until GNU_PROPERTY_X86_FEATURE_1_AND is found.
+
+2018-07-30 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #23458]
+ * sysdeps/x86/Makefile (tests): Add tst-get-cpu-features-static.
+
+2018-07-28 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * sysdeps/mach/hurd/dl-unistd.h (__access, __brk, __lseek, __read,
+ __sbrk): Do not set attribute_hidden.
+ * sysdeps/mach/hurd/not-errno.h: New file.
+ * sysdeps/mach/hurd/i386/ld.abilist: Update accordingly.
+ * sysdeps/mach/hurd/i386/localplt.data: Update accordingly.
+
+2018-07-27 Carlos O'Donell <carlos@redhat.com>
+
+ * po/uk.po: Update translations.
+ * po/cs.po: Likewise.
+ * po/pl.po: Likewise.
+
+2018-07-27 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86/dl-prop.h (_dl_process_cet_property_note): Don't
+ parse beyond the note end.
+
+2018-07-27 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/unix/sysv/linux/tst-ofdlocks.c: Return unsupported if
+ kernel does not support OFD locks.
+ * sysdeps/unix/sysv/linux/tst-ofdlocks-compat.c: Likewise.
+
+2018-07-27 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * sysdeps/mach/hurd/Versions (libc): Make __access and
+ __access_noerrno external so they can override the ld symbols.
+ (ld): Make __access, __read, __sbrk, __strtoul_internal, __write,
+ __writev, __open64, __access_noerrno extern so they can be overrided.
+ * sysdeps/mach/hurd/i386/libc.abilist: Update accordingly.
+ * sysdeps/mach/hurd/i386/ld.abilist: Update accordingly.
+
+2018-07-26 Carlos O'Donell <carlos@redhat.com>
+
+ * po/libc.pot: Regenerate.
+
+2018-07-26 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/powerpc/nofpu/libm-test-ulps: Update.
+
+2018-07-26 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #23459]
+ * sysdeps/x86/cpu-features.c (get_extended_indices): New
+ function.
+ (init_cpu_features): Call get_extended_indices for both Intel
+ and AMD CPUs.
+ * sysdeps/x86/cpu-features.h (COMMON_CPUID_INDEX_80000001):
+ Remove "for AMD" comment.
+
+2018-07-26 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ # 23456]
+ * sysdeps/x86/cpu-features.h (index_cpu_LZCNT): Set to
+ COMMON_CPUID_INDEX_80000001.
+
+2018-07-26 Stefan Liebler <stli@linux.ibm.com>
+
+ * string/tst-xbzero-opt.c (use_test_buffer): New function.
+ (prepare_test_buffer): Call use_test_buffer as compiler barrier.
+
+2018-07-26 Florian Weimer <fweimer@redhat.com>
+
+ * htl/lockfile.c (flockfile, funlockfile, ftrylockfile): Use weak
+ aliases for symbols not in the implementation namespace.
+
+2018-07-25 Carlos O'Donell <carlos@redhat.com>
+
+ [BZ #23393]
+ * localedata/locales/iso14651_t1_common: Deinterlace uppercase and
+ lowercase in LATIN script.
+ * localedata/Makefile (test-input): Add en_US.UTF-8.
+ * localedata/en_US.UTF-8.in: New file.
+ * posix/tst-fnmatch.input: Add comments and new tests for en_US.UTF-8,
+ and restore old tests.
+ * posix/tst-regexloc.c (do_test): Add back range expression test.
+
+2018-07-25 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/unix/sysv/linux/ia64/tst-setcontext4.c: New file.
+
+2018-07-25 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * nptl/threads.h: Move to ...
+ * sysdeps/nptl/threads.h: ... here.
+ * sysdeps/hurd/stdc-predef.h: New file.
+
+2018-07-25 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/unix/sysv/linux/x86/Makefile (tests): Add
+ tst-cet-setcontext-1 if CET is enabled.
+ (CFLAGS-tst-cet-setcontext-1.c): Add -mshstk.
+ * sysdeps/unix/sysv/linux/x86/tst-cet-setcontext-1.c: New file.
+
+2018-07-25 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * include/threads.h: Move to ...
+ * sysdeps/nptl/threads.h: ... here.
+ * sysdeps/htl/threads.h: New file.
+ * conform/Makefile (linknamespace-libs-ISO11): Use
+ static-thread-library instead of linking libpthread.
+ (linknamespace-libs-XPG4): Revert wrong libcrypt.a addition.
+
+2018-07-25 Florian Weimer <fweimer@redhat.com>
+
+ * nptl/tst-mtx-timedlock.c (do_test): Implement carry from
+ nanoseconds into seconds.
+ * nptl/tst-cnd-basic.c (signal_parent): Lock and unlock mutex.
+ (do_test): Likewise.
+ * nptl/tst-cnd-timedwait.c (signal_parent): Likewise.
+ (do_test): Likewise. Avoid nanosecond overflow and spurious
+ timeouts due to system load.
+ * nptl/tst-cnd-broadcast.c (waiting_threads): New variable.
+ (child_wait): Increment it.
+ (do_test): Wait as long as necessary until all expected threads
+ have arrived.
+
+2018-07-25 Vedvyas Shanbhogue <vedvyas.shanbhogue@intel.com>
+ H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/unix/sysv/linux/x86/sys/ucontext.h (ucontext_t): Add
+ __ssp.
+ * sysdeps/unix/sysv/linux/x86_64/__start_context.S: Include
+ <asm/prctl.h> and "ucontext_i.h" when shadow stack is enabled.
+ (__push___start_context): New.
+ * sysdeps/unix/sysv/linux/x86_64/getcontext.S: Include
+ <asm/prctl.h>.
+ (__getcontext): Record the current shadow stack base. Save the
+ caller's shadow stack pointer and base.
+ * sysdeps/unix/sysv/linux/x86_64/makecontext.c: Include
+ <pthread.h>, <libc-pointer-arith.h> and <sys/prctl.h>.
+ (__push___start_context): New prototype.
+ (__makecontext): Call __push___start_context to allocate a new
+ shadow stack, push __start_context onto the new stack as well
+ as the new shadow stack.
+ * sysdeps/unix/sysv/linux/x86_64/setcontext.S: Include
+ <asm/prctl.h>.
+ (__setcontext): Restore the target shadow stack.
+ * sysdeps/unix/sysv/linux/x86_64/swapcontext.S: Include
+ <asm/prctl.h>.
+ (__swapcontext): Record the current shadow stack base. Save
+ the caller's shadow stack pointer and base. Restore the target
+ shadow stack.
+ * sysdeps/unix/sysv/linux/x86_64/sysdep.h
+ (STACK_SIZE_TO_SHADOW_STACK_SIZE_SHIFT): New.
+ * sysdeps/unix/sysv/linux/x86_64/ucontext_i.sym (oSSP): New.
+
+2018-07-25 H.J. Lu <hongjiu.lu@intel.com>
+
+ * stdlib/Makefile ((tests): Add tst-setcontext6, tst-setcontext7,
+ tst-setcontext8 and tst-setcontext9.
+ * stdlib/tst-setcontext6.c: New file.
+ * stdlib/tst-setcontext7.c: Likewise.
+ * stdlib/tst-setcontext8.c: Likewise.
+ * stdlib/tst-setcontext9.c: Likewise.
+
+2018-07-25 H.J. Lu <hongjiu.lu@intel.com>
+
+ * stdlib/Makefile ((tests): Add tst-setcontext5.
+ * stdlib/tst-setcontext5.c: New file.
+
+2018-07-25 H.J. Lu <hongjiu.lu@intel.com>
+
+ * stdlib/Makefile (tests): Add tst-setcontext4.
+ * stdlib/tst-setcontext4.c: New file.
+
+2018-07-25 H.J. Lu <hongjiu.lu@intel.com>
+
+ * stdlib/Makefile (tests): Add tst-swapcontext1.
+ * stdlib/tst-swapcontext1.c: New test.
+
+2018-07-25 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86/Makefile (tests): Add tst-cet-legacy-1,
+ tst-cet-legacy-2, tst-cet-legacy-2a, tst-cet-legacy-3,
+ tst-cet-legacy-4, tst-cet-legacy-4a, tst-cet-legacy-4b
+ and tst-cet-legacy-4c.
+ (modules-names): Add tst-cet-legacy-mod-1, tst-cet-legacy-mod-2
+ and tst-cet-legacy-mod-4.
+ (CFLAGS-tst-cet-legacy-2.c): New.
+ (CFLAGS-tst-cet-legacy-mod-1.c): Likewise.
+ (CFLAGS-tst-cet-legacy-mod-2.c): Likewise.
+ (CFLAGS-tst-cet-legacy-3.c): Likewise.
+ (CFLAGS-tst-cet-legacy-4.c): Likewise.
+ (CFLAGS-tst-cet-legacy-mod-4.c): Likewise.
+ ($(objpfx)tst-cet-legacy-1): Likewise.
+ ($(objpfx)tst-cet-legacy-2): Likewise.
+ ($(objpfx)tst-cet-legacy-2.out): Likewise.
+ ($(objpfx)tst-cet-legacy-2a): Likewise.
+ ($(objpfx)tst-cet-legacy-2a.out): Likewise.
+ ($(objpfx)tst-cet-legacy-4): Likewise.
+ ($(objpfx)tst-cet-legacy-4.out): Likewise.
+ ($(objpfx)tst-cet-legacy-4a): Likewise.
+ ($(objpfx)tst-cet-legacy-4a.out): Likewise.
+ (tst-cet-legacy-4a-ENV): Likewise.
+ ($(objpfx)tst-cet-legacy-4b): Likewise.
+ ($(objpfx)tst-cet-legacy-4b.out): Likewise.
+ (tst-cet-legacy-4b-ENV): Likewise.
+ ($(objpfx)tst-cet-legacy-4c): Likewise.
+ ($(objpfx)tst-cet-legacy-4c.out): Likewise.
+ (tst-cet-legacy-4c-ENV): Likewise.
+ * sysdeps/x86/tst-cet-legacy-1.c: New file.
+ * sysdeps/x86/tst-cet-legacy-2.c: Likewise.
+ * sysdeps/x86/tst-cet-legacy-2a.c: Likewise.
+ * sysdeps/x86/tst-cet-legacy-3.c: Likewise.
+ * sysdeps/x86/tst-cet-legacy-4.c: Likewise.
+ * sysdeps/x86/tst-cet-legacy-4a.c: Likewise.
+ * sysdeps/x86/tst-cet-legacy-4b.c: Likewise.
+ * sysdeps/x86/tst-cet-legacy-4c.c: Likewise.
+ * sysdeps/x86/tst-cet-legacy-mod-1.c: Likewise.
+ * sysdeps/x86/tst-cet-legacy-mod-2.c: Likewise.
+ * sysdeps/x86/tst-cet-legacy-mod-4.c: Likewise.
+
+2018-07-25 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/i386/nptl/tcb-offsets.sym (SSP_BASE_OFFSET): New.
+ * sysdeps/i386/nptl/tls.h (tcbhead_t): Replace __glibc_reserved2
+ with ssp_base.
+ * sysdeps/x86_64/nptl/tcb-offsets.sym (SSP_BASE_OFFSET): New.
+ * sysdeps/x86_64/nptl/tls.h (tcbhead_t): Replace __glibc_reserved2
+ with ssp_base.
+
+2018-07-25 Andreas Schwab <schwab@suse.de>
+
+ [BZ #23442]
+ * locale/weightwc.h (findidx): Handle the case where usrc is a
+ prefix of cp but one character too short.
+
+2018-07-24 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * NEWS: Add ISO C threads addition.
+
+2018-07-24 Florian Weimer <fweimer@redhat.com>
+
+ * sysdeps/unix/sysv/linux/alpha/kernel-features.h
+ [__LINUX_KERNEL_VERSION < 0x040D00] (__ASSUME_MLOCK2)
+ (__ASSUME_COPY_FILE_RANGE): Undefine. Kernel support was added in
+ 4.13.
+
+2018-07-24 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/unix/sysv/linux/x86/include/asm/prctl.h: New file.
+ * sysdeps/unix/sysv/linux/x86/cpu-features.c: Include
+ <sys/prctl.h> and <asm/prctl.h>.
+ (get_cet_status): Call arch_prctl with ARCH_CET_STATUS.
+ * sysdeps/unix/sysv/linux/x86/dl-cet.h: Include <sys/prctl.h>
+ and <asm/prctl.h>.
+ (dl_cet_allocate_legacy_bitmap): Call arch_prctl with
+ ARCH_CET_LEGACY_BITMAP.
+ (dl_cet_disable_cet): Call arch_prctl with ARCH_CET_DISABLE.
+ (dl_cet_lock_cet): Call arch_prctl with ARCH_CET_LOCK.
+ * sysdeps/x86/libc-start.c: Include <startup.h>.
+
+2018-07-24 Florian Weimer <fweimer@redhat.com>
+
+ * sysdeps/unix/sysv/linux/sh/kernel-features.h (__ASSUME_STATX):
+ Undefine. Suggested by Romain Naour <romain.naour@gmail.com>.
+
+2018-07-24 Rical Jasan <rj@2c3t.io>
+ Adhemerval Zanella <adhemerval.zanella@linaro.org>
+ Juan Manuel Torres Palma <jmtorrespalma@gmail.com>
+
+ [BZ #14092]
+ * manual/debug.texi: Update adjacent chapter name.
+ * manual/probes.texi: Likewise.
+ * manual/threads.texi (ISO C Threads): New section.
+ (POSIX Threads): Convert to a section.
+
+2018-07-24 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+ Juan Manuel Torres Palma <jmtorrespalma@gmail.com>
+
+ [BZ# 14092]
+ * nptl/Makefile (tests): Add new test files.
+ * nptl/tst-call-once.c : New file. Tests C11 functions and types.
+ * nptl/tst-cnd-basic.c: Likewise.
+ * nptl/tst-cnd-broadcast.c: Likewise.
+ * nptl/tst-cnd-timedwait.c: Likewise.
+ * nptl/tst-mtx-basic.c: Likewise.
+ * nptl/tst-mtx-recursive.c: Likewise.
+ * nptl/tst-mtx-timedlock.c: Likewise.
+ * nptl/tst-mtx-trylock.c: Likewise.
+ * nptl/tst-thrd-basic.c: Likewise.
+ * nptl/tst-thrd-detach.c: Likewise.
+ * nptl/tst-thrd-sleep.c: Likewise.
+ * nptl/tst-tss-basic.c: Likewise.
+
+2018-07-24 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ [BZ #14092]
+ * sysdeps/unix/sysv/linux/aarch64/libc.abilist [GLIBC_2.28]
+ (thrd_current, thrd_equal, thrd_sleep, thrd_yield): Add C11 thread
+ symbols.
+ * sysdeps/unix/sysv/linux/alpha/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/arm/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/hppa/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/i386/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/ia64/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/microblaze/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/nios2/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sh/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/aarch64/libpthread.abilist [[GLIBC_2.28]
+ (call_once, cnd_broadcast, cnd_destroy, cnd_init, cnd_signal,
+ cnd_timedwait, cnd_wait, mtx_destroy, mtx_init, mtx_lock,
+ mtx_timedlock, mtx_trylock, mtx_unlokc, thrd_create, thrd_detach,
+ thrd_exit, thrd_join, tss_create, tss_delete, tss_get, tss_set):
+ Likewise.
+ * sysdeps/unix/sysv/linux/aarch64/libpthread.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/libpthread.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/arm/libpthread.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/hppa/libpthread.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/i386/libpthread.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/ia64/libpthread.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/microblaze/libpthread.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/nios2/libpthread.abilist: Likewise.
+ ikewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist:
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread-le.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sh/libpthread.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist: Likewise.
+
+ [BZ #14092]
+ * conform/data/threads.h-data (thread_local): New macro.
+ (TSS_DTOR_ITERATIONS): Likewise.
+ (tss_t): New type.
+ (tss_dtor_t): Likewise.
+ (tss_create): New function.
+ (tss_get): Likewise.
+ (tss_set): Likewise.
+ (tss_delete): Likewise.
+ * nptl/Makefile (libpthread-routines): Add tss_create, tss_delete,
+ tss_get, and tss_set objects.
+ * nptl/Versions (libpthread) [GLIBC_2.28]: Likewise.
+ * nptl/tss_create.c: New file.
+ * nptl/tss_delete.c: Likewise.
+ * nptl/tss_get.c: Likewise.
+ * nptl/tss_set.c: Likewise.
+ * sysdeps/nptl/threads.h (thread_local): New define.
+ (TSS_DTOR_ITERATIONS): Likewise.
+ (tss_t): New typedef.
+ (tss_dtor_t): Likewise.
+ (tss_create): New prototype.
+ (tss_get): Likewise.
+ (tss_set): Likewise.
+ (tss_delete): Likewise.
+
+ [BZ #14092]
+ * conform/data/threads.h-data (cnd_t): New type.
+ (cnd_init): New function.
+ (cnd_signal): Likewise.
+ (cnd_broadcast): Likewise.
+ (cnd_wait): Likewise.
+ (cnd_timedwait): Likewise.
+ (cnd_destroy): Likewise.
+ * nptl/Makefile (libpthread-routines): Add cnd_broadcast,
+ cnd_destroy, cnd_init, cnd_signal, cnd_timedwait, and cnd_wait
+ object.
+ * nptl/Versions (libpthread) [GLIBC_2.28]: Likewise.
+ * nptl/cnd_broadcast.c: New file.
+ * nptl/cnd_destroy.c: Likewise.
+ * nptl/cnd_init.c: Likewise.
+ * nptl/cnd_signal.c: Likewise.
+ * nptl/cnd_timedwait.c: Likewise.
+ * nptl/cnd_wait.c: Likewise.
+ * sysdeps/nptl/threads.h (cnd_t): New type.
+ (cnd_init): New prototype.
+ (cnd_signa): Likewise.
+ (cnd_broadcast): Likewise.
+ (cnd_wait): Likewise.
+ (cnd_timedwait): Likewise.
+ (cnd_destroy): Likewise.
+
+ [BZ #14092]
+ * conform/data/threads.h-data (ONCE_FLAG_INIT): New macro.
+ (once_flag): New type.
+ (call_once): New function.
+ * nptl/Makefile (libpthread-routines): Add call_once object.
+ * nptl/Versions (libphread) [GLIBC_2.28]: Add call_once symbol.
+ * nptl/call_once.c: New file.
+ * sysdeps/nptl/threads.h (ONCE_FLAG_INIT): New define.
+ (once_flag): New type.
+ (call_once): New prototype.
+
+ [BZ #14092]
+ * conform/data/threads.h-data (mtx_plain): New constant.
+ (mtx_recursive): Likewise.
+ (mtx_timed): Likewise.
+ (mtx_t): New type.
+ (mtx_init): New function.
+ (mtx_lock): Likewise.
+ (mtx_timedlock): Likewise.
+ (mtx_trylock): Likewise.
+ (mtx_unlock): Likewise.
+ (mtx_destroy): Likewise.
+ * nptl/Makefile (libpthread-routines): Add mtx_destroy, mtx_init,
+ mtx_lock, mtx_timedlock, mtx_trylock, and mtx_unlock object.
+ * nptl/Versions (libpthread) [GLIBC_2.28]): Add mtx_init, mtx_lock,
+ mtx_timedlock, mtx_trylock, mtx_unlock, and mtx_destroy.
+ * nptl/mtx_destroy.c: New file.
+ * nptl/mtx_init.c: Likewise.
+ * nptl/mtx_lock.c: Likewise.
+ * nptl/mtx_timedlock.c: Likewise.
+ * nptl/mtx_trylock.c: Likewise.
+ * nptl/mtx_unlock.c: Likewise.
+ * sysdeps/nptl/threads.h (mtx_plain): New enumeration.
+ (mtx_recursive): Likewise.
+ (mtx_timed): Likewise.
+ (mtx_t): New type.
+ (mtx_init): New prototype.
+ (mtx_lock): Likewise.
+ (mtx_timedlock): Likewise.
+ (mtx_trylock): Likewise.
+ (mtx_unlock): Likewise.
+ (mtx_destroy): Likewise.
+
+ [BZ #14092]
+ * conform/Makefile (conformtest-headers-ISO11): Add threads.h.
+ (linknamespace-libs-ISO11): Add libpthread.a.
+ * conform/data/threads.h-data: New file: add C11 thrd_* types and
+ functions.
+ * include/stdc-predef.h (__STDC_NO_THREADS__): Remove definition.
+ * nptl/Makefile (headers): Add threads.h.
+ (libpthread-routines): Add new C11 thread thrd_create, thrd_current,
+ thrd_detach, thrd_equal, thrd_exit, thrd_join, thrd_sleep, and
+ thrd_yield.
+ * nptl/Versions (libpthread) [GLIBC_2.28]): Add new C11 thread
+ thrd_create, thrd_current, thrd_detach, thrd_equal, thrd_exit,
+ thrd_join, thrd_sleep, and thrd_yield symbols.
+ * nptl/descr.h (struct pthread): Add c11 field.
+ * nptl/pthreadP.h (ATTR_C11_THREAD): New define.
+ * nptl/pthread_create.c (START_THREAD_DEFN): Call C11 thread start
+ routine with expected function prototype.
+ (__pthread_create_2_1): Add C11 threads check based on attribute
+ value.
+ * sysdeps/unix/sysdep.h (INTERNAL_SYSCALL_CANCEL): New macro.
+ * nptl/thrd_create.c: New file.
+ * nptl/thrd_current.c: Likewise.
+ * nptl/thrd_detach.c: Likewise.
+ * nptl/thrd_equal.c: Likewise.
+ * nptl/thrd_exit.c: Likewise.
+ * nptl/thrd_join.c: Likewise.
+ * nptl/thrd_priv.h: Likewise.
+ * nptl/thrd_sleep.c: Likewise.
+ * nptl/thrd_yield.c: Likewise.
+ * include/threads.h: Likewise.
+
+2018-07-24 H.J. Lu <hongjiu.lu@intel.com>
+
+ * bits/indirect-return.h: New file.
+ * misc/sys/cdefs.h (__glibc_has_attribute): New.
+ * sysdeps/x86/bits/indirect-return.h: Likewise.
+ * stdlib/Makefile (headers): Add bits/indirect-return.h.
+ * stdlib/ucontext.h: Include <bits/indirect-return.h>.
+ (swapcontext): Add __INDIRECT_RETURN.
+ * string/tst-xbzero-opt.c (ALWAYS_INLINE): New.
+ (prepare_test_buffer): Use it.
+
+2018-07-24 Andreas Schwab <schwab@suse.de>
+
+ [BZ #23448]
+ * iconvdata/ibm1364.c (MAX_NEEDED_OUTPUT) [FROM_LOOP]: Define.
+ (MAX_NEEDED_INPUT) [TO_LOOP]: Define.
+
+2018-07-24 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/unix/sysv/linux/i386/vfork.S (SYSCALL_ERROR_HANDLER):
+ Redefine if shadow stack is enabled.
+ (SYSCALL_ERROR_LABEL): Likewise.
+ (__vfork): Pop shadow stack and jump back to to caller directly
+ when shadow stack is in use.
+ * sysdeps/unix/sysv/linux/x86_64/vfork.S (SYSCALL_ERROR_HANDLER):
+ Redefine if shadow stack is enabled.
+ (SYSCALL_ERROR_LABEL): Likewise.
+ (__vfork): Pop shadow stack and jump back to to caller directly
+ when shadow stack is in use.
+
+2018-07-24 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86_64/tst-quadmod1.S (func): Add endbr64 if IBT is
+ enabled.
+ (foo): Likewise.
+ * sysdeps/x86_64/tst-quadmod2.S (func) : Likewise.
+ (foo): Likewise.
+
+2018-07-20 Joseph Myers <joseph@codesourcery.com>
+
+ * scripts/build-many-glibcs.py (Context.checkout): Default
+ binutils version to 2.31 branch.
+
+2018-07-20 Zong Li <zong@andestech.com>
+
+ * scripts/build-many-glibcs.py (Context.checkout_tar): Change the
+ URL of gcc's tarball.
+
+2018-07-20 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #23396]
+ * posix/regcomp.c (build_equiv_class): When comparing weights, do
+ not compare an extra byte after the end of the weights.
+
+2018-07-20 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * sysdeps/mach/hurd/i386/tls.h (_hurd_tls_init): Set multiple_threads
+ to 1.
+ * sysdeps/hurd/include/hurd/port.h [!_ISOMAC]: Do not declare libc
+ hidden prototypes.
+ * sysdeps/mach/include/mach-shortcuts-hidden.h [!_ISOMAC]: Likewise.
+ * sysdeps/mach/include/mach/mach_traps.h [!_ISOMAC]: Likewise.
+ * scripts/check-execstack.awk: Consider `xfail' variable containing a
+ list of libraries whose stack executability is expected.
+ * elf/Makefile ($(objpfx)check-execstack.out): Pass
+ $(check-execstack-xfail) to check-execstack.awk through `xfail'
+ variable.
+ * sysdeps/mach/hurd/i386/Makefile (check-execstack-xfail): Set to ld.so
+ libc.so libpthread.so.
+
+2018-07-20 Thomas Schwinge <tschwinge@gnu.org>
+
+ * sysdeps/mach/hurd/socket.c (__socket): Handle SOCK_CLOEXEC and
+ SOCK_NONBLOCK.
+ * sysdeps/mach/hurd/socketpair.c (__socketpair): Handle SOCK_CLOEXEC
+ and SOCK_NONBLOCK.
+ * sysdeps/mach/hurd/pipe2.c: New file, copy from pipe.c. Evolve it to
+ implement __pipe2.
+ * sysdeps/mach/hurd/pipe.c (__pipe): Reimplement using __pipe2.
+
+2018-07-19 Leonardo Sandoval <leonardo.sandoval.gonzalez@intel.com>
+
+ * benchtests/scripts/compare_bench.py (__main__): use the argparse
+ library to improve command line parsing.
+ (__main__): make schema file as optional parameter (--schema),
+ defaulting to benchtests/scripts/benchout.schema.json.
+ (main): move out of the parsing stuff to __main_  and leave it
+ only as caller of main comparison functions.
+
+2018-07-19 H.J. Lu <hongjiu.lu@intel.com>
+
+ * NEWS: Add a note for Intel CET status.
+ * manual/install.texi: Likewise.
+ * INSTALL: Regenerated.
+
+2018-07-18 Quentin PAGÈS <provaires@quentino.fr>
+
+ [BZ #23140]
+ * localedata/locales/oc_FR (mon): Rename to...
+ (alt_mon): This, then update October (typo fix).
+ (mon): New content (genitive case, month names preceded by
+ "de" or "d’").
+
+ [BZ #23422]
+ * localedata/locales/oc_FR (abday): Update all items.
+ (day): Update Wednesday and Saturday (typo fixes).
+ (abmon): Update all items, except May.
+ (d_fmt): Update "%d.%m.%Y" -> "%d/%m/%Y".
+ (LC_IDENTIFICATION): Bump the revision number and date.
+ Keep the "category" entries in alphabetic order.
+ (LC_ADDRESS): Remove no longer needed comment.
+ (LC_COLLATE): Use “copy "ca_ES"â€.
+ (LC_NAME): Set the correct values of "name_fmt", "name_mr", and
+ "name_mrs".
+
+2018-07-18 Joseph Myers <joseph@codesourcery.com>
+
+ * grp/tst_fgetgrent.c: Include <unistd.h>.
+ (main): Use mkstemp instead of tmpnam.
+ * io/test-utime.c (main): Likewise.
+ * posix/annexc.c (macrofile): Change to modifiable array.
+ (main): Remove macrofile here.
+ (get_null_defines): Use mkstemp instead of tmpnam. Do not remove
+ macrofile here.
+ (check_header): Do not remove macrofile here.
+ * posix/bug-getopt1.c: Include <stdlib.h>.
+ (do_test): Use mkstemp instead of tmpnam.
+ * posix/bug-getopt2.c: Include <stdlib.h>.
+ (do_test): Use mkstemp instead of tmpnam.
+ * posix/bug-getopt3.c: Include <stdlib.h>.
+ (do_test): Use mkstemp instead of tmpnam.
+ * posix/bug-getopt4.c: Include <stdlib.h>.
+ (do_test): Use mkstemp instead of tmpnam.
+ * posix/bug-getopt5.c: Include <stdlib.h>.
+ (do_test): Use mkstemp instead of tmpnam.
+ * stdio-common/bug7.c: Include <stdlib.h> and <unistd.h>.
+ (main): Use mkstemp instead of tmpnam.
+ * stdio-common/tst-fdopen.c: Include <stdlib.h>.
+ (main): Use mkstemp instead of tmpnam.
+ * stdio-common/tst-ungetc.c: Include <stdlib.h>.
+ (main): use mkstemp instead of tmpnam.
+ * stdlib/isomac.c (macrofile): Change to modifiable array.
+ (main): Remove macrofile here.
+ (get_null_defines): Use mkstemp instead of tmpnam. Do not remove
+ macrofile here.
+ (check_header): Do not remove macrofile here.
+
+2018-07-18 H.J. Lu <hongjiu.lu@intel.com>
+
+ * manual/tunables.texi: Document glibc.tune.x86_ibt and
+ glibc.tune.x86_shstk.
+
+2018-07-18 H.J. Lu <hongjiu.lu@intel.com>
+
+ * NEWS: Mention --enable-cet.
+ * manual/install.texi: Document --enable-cet.
+ * INSTALL: Regenerated.
+
+2018-07-18 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86_64/multiarch/memcmp-sse4.S (BRANCH_TO_JMPTBL_ENTRY):
+ Add _CET_NOTRACK before indirect jump to jump table.
+
+2018-07-18 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/i386/i686/multiarch/memset-sse2-rep.S
+ (BRANCH_TO_JMPTBL_ENTRY): Add _CET_NOTRACK before indirect jump
+ to jump table.
+
+2018-07-18 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/i386/i686/multiarch/strcat-sse2.S
+ (BRANCH_TO_JMPTBL_ENTRY): Add _CET_NOTRACK before indirect jump
+ to jump table.
+
+2018-07-18 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/i386/i686/multiarch/strcpy-sse2.S
+ (BRANCH_TO_JMPTBL_ENTRY): Add _CET_NOTRACK before indirect jump
+ to jump table.
+
+2018-07-18 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/i386/i686/multiarch/memcpy-ssse3.S
+ (BRANCH_TO_JMPTBL_ENTRY): Add _CET_NOTRACK before indirect jump
+ to jump table.
+
+2018-07-18 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/i386/i686/multiarch/memcpy-ssse3-rep.S
+ (BRANCH_TO_JMPTBL_ENTRY): Add _CET_NOTRACK before indirect jump
+ to jump table.
+ (BRANCH_TO_JMPTBL_ENTRY_TAIL): Likewise.
+
+2018-07-18 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/i386/i686/multiarch/memcmp-sse4.S
+ (BRANCH_TO_JMPTBL_ENTRY): Add _CET_NOTRACK before indirect jump
+ to jump table.
+
+2018-07-18 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/i386/i686/multiarch/memset-sse2.S
+ (BRANCH_TO_JMPTBL_ENTRY): Add _CET_NOTRACK before indirect jump
+ to jump table.
+
+2018-07-18 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/i386/i686/memcmp.S (memcmp): Add _CET_NOTRACK before
+ indirect jump to jump table.
+
+2018-07-18 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86_64/multiarch/memcpy-ssse3.S
+ (BRANCH_TO_JMPTBL_ENTRY): Add _CET_NOTRACK before indirect jump
+ to jump table.
+ (MEMCPY): Likewise.
+
+2018-07-18 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
+ (BRANCH_TO_JMPTBL_ENTRY): Add _CET_NOTRACK before indirect jump
+ to jump table.
+ (MEMCPY): Likewise.
+
+2018-07-18 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86_64/multiarch/strcmp-sse42.S (STRCMP_SSE42): Add
+ _CET_NOTRACK before indirect jump to jump table.
+
+2018-07-18 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S
+ (BRANCH_TO_JMPTBL_ENTRY): Add _CET_NOTRACK before indirect jump
+ to jump table.
+
+2018-07-18 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86_64/strcmp.S (STRCMP): Add _CET_NOTRACK before
+ indirect jump to jump table.
+
+2018-07-18 Valery Timiriliyev <timiriliyev@gmail.com>
+
+ [BZ #22241]
+ * localedata/Makefile (test-input): Add sah_RU.UTF-8.
+ (LOCALES): Likewise.
+ * localedata/SUPPORTED (sah_RU/UTF-8): New entry.
+ * localedata/locales/sah_RU: New file.
+ * localedata/sah_RU.UTF-8.in: New file.
+
+2018-07-17 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/i386/add_n.S: Include <sysdep.h>, instead of
+ "sysdep.h".
+ (__mpn_add_n): Save and restore %ebx if IBT is enabed. Add
+ _CET_ENDBR to indirect jump targets and adjust jump destination
+ for _CET_ENDBR.
+ * sysdeps/i386/i686/add_n.S: Include <sysdep.h>, instead of
+ "sysdep.h".
+ (__mpn_add_n): Save and restore %ebx if IBT is enabed. Add
+ _CET_ENDBR to indirect jump targets and adjust jump destination
+ for _CET_ENDBR.
+ * sysdeps/i386/sub_n.S: Include <sysdep.h>, instead of
+ "sysdep.h".
+ (__mpn_sub_n): Save and restore %ebx if IBT is enabed. Add
+ _CET_ENDBR to indirect jump targets and adjust jump destination
+ for _CET_ENDBR.
+
+2018-07-17 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86_64/multiarch/strcmp-sse42.S (STRCMP_SSE42): Add
+ _CET_ENDBR.
+
+2018-07-17 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/i386/dl-tlsdesc.S (_dl_tlsdesc_return): Add
+ _CET_ENDBR.
+ (_dl_tlsdesc_undefweak): Likewise.
+ (_dl_tlsdesc_dynamic): Likewise.
+ (_dl_tlsdesc_resolve_abs_plus_addend): Likewise.
+ (_dl_tlsdesc_resolve_rel): Likewise.
+ (_dl_tlsdesc_resolve_rela): Likewise.
+ (_dl_tlsdesc_resolve_hold): Likewise.
+ * sysdeps/x86_64/dl-tlsdesc.S (_dl_tlsdesc_return): Likewise.
+ (_dl_tlsdesc_undefweak): Likewise.
+ (_dl_tlsdesc_dynamic): Likewise.
+ (_dl_tlsdesc_resolve_rela): Likewise.
+ (_dl_tlsdesc_resolve_hold): Likewise.
+
+2018-07-17 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/i386/crti.S (_init): Add _CET_ENDBR.
+ (_fini): Likewise.
+ * sysdeps/x86_64/crti.S (_init): Likewise.
+ (_fini): Likewise.
+
+2018-07-17 Rafał Lużyński <digitalfreak@lingonborough.com>
+
+ [BZ #23140]
+ * localedata/locales/os_RU (mon): Rename to...
+ (alt_mon): This.
+ (mon): Import from CLDR (genitive case).
+
+2018-07-17 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86/cpu-features.c: Always include <dl-cet.h> and
+ cet-tunables.h> when CET is enabled.
+
+2018-07-16 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #21598]
+ * configure.ac: Add --enable-cet.
+ * configure: Regenerated.
+ * elf/Makefille (all-built-dso): Add a comment.
+ * elf/dl-load.c (filebuf): Moved before "dynamic-link.h".
+ Include <dl-prop.h>.
+ (_dl_map_object_from_fd): Call _dl_process_pt_note on PT_NOTE
+ segment.
+ * elf/dl-open.c: Include <dl-prop.h>.
+ (dl_open_worker): Call _dl_open_check.
+ * elf/rtld.c: Include <dl-prop.h>.
+ (dl_main): Call _rtld_process_pt_note on PT_NOTE segment. Call
+ _rtld_main_check.
+ * sysdeps/generic/dl-prop.h: New file.
+ * sysdeps/i386/dl-cet.c: Likewise.
+ * sysdeps/unix/sysv/linux/x86/cpu-features.c: Likewise.
+ * sysdeps/unix/sysv/linux/x86/dl-cet.h: Likewise.
+ * sysdeps/x86/cet-tunables.h: Likewise.
+ * sysdeps/x86/check-cet.awk: Likewise.
+ * sysdeps/x86/configure: Likewise.
+ * sysdeps/x86/configure.ac: Likewise.
+ * sysdeps/x86/dl-cet.c: Likewise.
+ * sysdeps/x86/dl-procruntime.c: Likewise.
+ * sysdeps/x86/dl-prop.h: Likewise.
+ * sysdeps/x86/libc-start.h: Likewise.
+ * sysdeps/x86/link_map.h: Likewise.
+ * sysdeps/i386/dl-trampoline.S (_dl_runtime_resolve): Add
+ _CET_ENDBR.
+ (_dl_runtime_profile): Likewise.
+ (_dl_runtime_resolve_shstk): New.
+ (_dl_runtime_profile_shstk): Likewise.
+ * sysdeps/linux/x86/Makefile (sysdep-dl-routines): Add dl-cet
+ if CET is enabled.
+ (CFLAGS-.o): Add -fcf-protection if CET is enabled.
+ (CFLAGS-.os): Likewise.
+ (CFLAGS-.op): Likewise.
+ (CFLAGS-.oS): Likewise.
+ (asm-CPPFLAGS): Add -fcf-protection -include cet.h if CET
+ is enabled.
+ (tests-special): Add $(objpfx)check-cet.out.
+ (cet-built-dso): New.
+ (+$(cet-built-dso:=.note)): Likewise.
+ (common-generated): Add $(cet-built-dso:$(common-objpfx)%=%.note).
+ ($(objpfx)check-cet.out): New.
+ (generated): Add check-cet.out.
+ * sysdeps/x86/cpu-features.c: Include <dl-cet.h> and
+ <cet-tunables.h>.
+ (TUNABLE_CALLBACK (set_x86_ibt)): New prototype.
+ (TUNABLE_CALLBACK (set_x86_shstk)): Likewise.
+ (init_cpu_features): Call get_cet_status to check CET status
+ and update dl_x86_feature_1 with CET status. Call
+ TUNABLE_CALLBACK (set_x86_ibt) and TUNABLE_CALLBACK
+ (set_x86_shstk). Disable and lock CET in libc.a.
+ * sysdeps/x86/cpu-tunables.c: Include <cet-tunables.h>.
+ (TUNABLE_CALLBACK (set_x86_ibt)): New function.
+ (TUNABLE_CALLBACK (set_x86_shstk)): Likewise.
+ * sysdeps/x86/sysdep.h (_CET_NOTRACK): New.
+ (_CET_ENDBR): Define if not defined.
+ (ENTRY): Add _CET_ENDBR.
+ * sysdeps/x86/dl-tunables.list (glibc.tune): Add x86_ibt and
+ x86_shstk.
+ * sysdeps/x86_64/dl-trampoline.h (_dl_runtime_resolve): Add
+ _CET_ENDBR.
+ (_dl_runtime_profile): Likewise.
+
+2018-07-16 Rogerio A. Cardoso <rcardoso@linux.vnet.ibm.com>
+
+ [BZ #21895]
+ * sysdeps/powerpc/powerpc64/__longjmp-common.S: Remove condition code for
+ restore r2 on longjmp.
+ * sysdeps/powerpc/powerpc64/Makefile: Added tst-setjmp-bug21895-static to
+ test list.
+ Added rules to build test tst-setjmp-bug21895-static.
+ Added module setjmp-bug21895 and rules to build a shared object from it.
+ * sysdeps/powerpc/powerpc64/setjmp-bug21895.c: New test file.
+ * sysdeps/powerpc/powerpc64/tst-setjmp-bug21895-static.c: New test file.
+
+2018-07-15 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * benchtests/bench-strcasestr.c: Rename __strnlen to strnlen.
+ * benchtests/bench-strstr.c: Likewise.
+ * string/memmem.c (FASTSEARCH): Define.
+ * string/str-two-way.h (two_way_short_needle): Minor cleanups.
+ Add support for FASTSEARCH.
+ * string/strcasestr.c (AVAILABLE): Use read-ahead __strnlen.
+ * string/strstr.c (AVAILABLE): Use read-ahead __strnlen.
+ (FASTSEARCH): Define.
+ * string/test-strcasestr.c: Rename __strnlen to strnlen.
+ * string/test-strstr.c: Likewise.
+
+2018-07-15 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S: Undef
+ SHADOW_STACK_POINTER_OFFSET after including <jmp_buf-ssp.h>.
+
+2018-07-14 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
+ H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/i386/__longjmp.S: Include <jmp_buf-ssp.h>.
+ (__longjmp): Restore shadow stack pointer if shadow stack is
+ enabled, SHADOW_STACK_POINTER_OFFSET is defined and __longjmp
+ isn't defined for __longjmp_cancel.
+ * sysdeps/i386/bsd-_setjmp.S: Include <jmp_buf-ssp.h>.
+ (_setjmp): Save shadow stack pointer if shadow stack is enabled
+ and SHADOW_STACK_POINTER_OFFSET is defined.
+ * sysdeps/i386/bsd-setjmp.S: Include <jmp_buf-ssp.h>.
+ (setjmp): Save shadow stack pointer if shadow stack is enabled
+ and SHADOW_STACK_POINTER_OFFSET is defined.
+ * sysdeps/i386/setjmp.S: Include <jmp_buf-ssp.h>.
+ (__sigsetjmp): Save shadow stack pointer if shadow stack is
+ enabled and SHADOW_STACK_POINTER_OFFSET is defined.
+ * sysdeps/unix/sysv/linux/i386/____longjmp_chk.S: Include
+ <jmp_buf-ssp.h>.
+ (____longjmp_chk): Restore shadow stack pointer if shadow stack
+ is enabled and SHADOW_STACK_POINTER_OFFSET is defined.
+ * sysdeps/unix/sysv/linux/x86/Makefile (gen-as-const-headers):
+ Remove jmp_buf-ssp.sym.
+ * sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S: Include
+ <jmp_buf-ssp.h>.
+ (____longjmp_chk): Restore shadow stack pointer if shadow stack
+ is enabled and SHADOW_STACK_POINTER_OFFSET is defined.
+ * sysdeps/x86/Makefile (gen-as-const-headers): Add
+ jmp_buf-ssp.sym.
+ * sysdeps/x86/jmp_buf-ssp.sym: New dummy file.
+ * sysdeps/x86_64/__longjmp.S: Include <jmp_buf-ssp.h>.
+ (__longjmp): Restore shadow stack pointer if shadow stack is
+ enabled, SHADOW_STACK_POINTER_OFFSET is defined and __longjmp
+ isn't defined for __longjmp_cancel.
+ * sysdeps/x86_64/setjmp.S: Include <jmp_buf-ssp.h>.
+ (__sigsetjmp): Save shadow stack pointer if shadow stack is
+ enabled and SHADOW_STACK_POINTER_OFFSET is defined.
+
+2018-07-14 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #22563]
+ * nptl/pthread_create.c: Include <tls-setup.h>.
+ (__pthread_create_2_1): Call tls_setup_tcbhead.
+ * sysdeps/generic/tls-setup.h: New file.
+ * sysdeps/x86/nptl/tls-setup.h: Likewise.
+ * sysdeps/i386/nptl/tcb-offsets.sym (FEATURE_1_OFFSET): New.
+ * sysdeps/x86_64/nptl/tcb-offsets.sym (FEATURE_1_OFFSET):
+ Likewise.
+ * sysdeps/i386/nptl/tls.h (tcbhead_t): Rename __glibc_reserved1
+ to feature_1.
+ * sysdeps/x86_64/nptl/tls.h (tcbhead_t): Likewise.
+ * sysdeps/x86/sysdep.h (X86_FEATURE_1_IBT): New.
+ (X86_FEATURE_1_SHSTK): Likewise.
+ (CET_ENABLED): Likewise.
+ (IBT_ENABLED): Likewise.
+ (SHSTK_ENABLED): Likewise.
+
+2018-07-13 Rafał Lużyński <digitalfreak@lingonborough.com>
+
+ [BZ #23208]
+ * localedata/Makefile (test-input): Add dsb_DE.UTF-8.
+ (LOCALES): Likewise.
+ * localedata/dsb_DE.UTF-8.in: New file.
+ * localedata/locales/dsb_DE (LC_COLLATE): Fix syntax error.
+
+2018-07-12 Florian Weimer <fweimer@redhat.com>
+
+ * nptl/allocatestack.c [_STACK_GROWS_UP] (allocate_stack): Call
+ __mprotect, not mprotect.
+
+2018-07-11 Florian Weimer <fweimer@redhat.com>
+
+ * io/Makefile (headers): Add bits/statx.h.
+
+2018-07-10 Mike FABIAN <mfabian@redhat.com>
+
+ * localedata/charmaps/UTF-8: Use correct Unicode version 11.0.0 in comment.
+ * localedata/locales/i18n_ctype: Use correct Unicode version in comments
+ and headers.
+ * localedata/unicode-gen/utf8_gen.py: Add option to specify Unicode version
+ * localedata/unicode-gen/Makefile: Use option to specify Unicode version
+ for utf8_gen.py
+
+2018-07-10 Florian Weimer <fweimer@redhat.com>
+
+ * io/Makefile (routines): Add statx.
+ (tests-internal): Add tst-statx.
+ * io/Versions (GLIBC_2.28): Export statx.
+ * io/bits/statx.h: New file.
+ * io/sys/stat.h [__USE_GNU]: Include it.
+ * io/fcntl.h [__USE_GNU] (AT_STATX_SYNC_TYPE)
+ (AT_STATX_SYNC_AS_STAT, AT_STATX_FORCE_SYNC, AT_STATX_DONT_SYNC):
+ Define.
+ * io/statx.c: New file.
+ * io/statx_generic.: Likewise.
+ * io/tst-statx.: Likewise.
+ * include/bits/statx.h: Likewise.
+ * sysdeps/unix/sysv/linux/kernel-features.h
+ [__LINUX_KERNEL_VERSION >= 0x040B00] (__ASSUME_STATX): Define.
+ * sysdeps/unix/sysv/linux/alpha/kernel-features.h
+ [__LINUX_KERNEL_VERSION < 0x040D00] (__ASSUME_STATX): Undefine.
+ * sysdeps/unix/sysv/linux/ia64/kernel-features.h (__ASSUME_STATX):
+ Undefine.
+ * sysdeps/unix/sysv/linux/microblaze/kernel-features.h
+ [__LINUX_KERNEL_VERSION < 0x040C00] (__ASSUME_STATX): Undefine.
+ * sysdeps/unix/sysv/linux/statx.c: New file.
+ * manual/filesys.texi: Note that statx is undocumented.
+ * sysdeps/**/libc*.abilist: Update.
+
+2018-07-10 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/unix/sysv/linux/tst-ofdlocks-compat.c: Add a comment about
+ a kernel issue which lead to test failure in some cases.
+
+2018-07-10 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #23036]
+ * posix/regexec.c (check_node_accept_bytes): When comparing
+ weights, do not compare an extra byte after the end of the
+ weights.
+
+2018-07-10 Florian Weimer <fweimer@redhat.com>
+
+ * libio/readline.c: Fix copyright year.
+ * libio/tst-readline.c Likewise.
+ * nss/tst-nss-files-hosts-getent.c: Likewise.
+
+2018-07-06 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #18991]
+ * nss/nss_files/files-XXX.c (internal_getent): Use
+ __libc_readline_unlocked. Seek back to the start of the line if
+ parsing failes with ERANGE.
+ (get_contents_ret, get_contents): Remove.
+ * nss/tst-nss-files-hosts-getent.c: New file.
+ * nss/Makefile (tests): Add tst-nss-files-hosts-getent.
+ (tst-nss-files-hosts-getent): Link with -ldl.
+
+2018-07-06 Florian Weimer <fweimer@redhat.com>
+
+ * include/stdio.h (__libc_readline_unlocked): Declare.
+ (__ftello64, __fseeko64): Declare aliases.
+ * libio/readline.c: New file.
+ * libio/tst-readline.c: Likewise.
+ (routines): Add readline.
+ (tests-internal): Add tst-readlime.
+ * libio/Versions (GLIBC_PRIVATE): Export __fseeko64, __ftello64,
+ __libc_readline_unlocked.
+ * libio/fseeko.c (__fseeko): Rename from fseeko.
+ (fseeko): Add alias.
+ [__OFF_T_MATCHES_OFF64_T] (fseeko64, __fseeko64): Likewise.
+ * libio/fseeko64.c (__fseeko64): Rename from fseeko64.
+ (fseeko64): Add alias.
+ * libio/ftello.c [__OFF_T_MATCHES_OFF64_T] (__ftello64): Add alias.
+ * libio/ftello64.c (__ftello64): Rename from ftello64.
+ (ftello64): Add alias.
+
+2018-07-06 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * sysdeps/unix/sysv/linux/aarch64/dl-procinfo.h (HWCAP_IMPORTANT): Add
+ HWCAP_ATOMICS.
+
+2018-07-06 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * sysdeps/unix/sysv/linux/aarch64/cpu-features.c (init_cpu_features):
+ Use dl_hwcap without masking.
+ * sysdeps/unix/sysv/linux/aarch64/dl-procinfo.h (HWCAP_IMPORTANT):
+ Remove HWCAP_CPUID.
+
+2018-07-06 Florian Weimer <fweimer@redhat.com>
+
+ * conform/conformtest.pl (checknamespace): Escape literal braces
+ in regular expressions.
+
+2018-07-06 Amit Pawar <amit.pawar@amd.com>
+
+ * sysdeps/x86/cpu-features.c (get_common_indeces):
+ AVX_Fast_Unaligned_Load is enabled when AVX2 is detected.
+ * sysdeps/x86/cpu-features.c (init_cpu_features):
+ AVX_Fast_Unaligned_Load is disabled for Excavator core.
+
+2018-07-05 Florian Weimer <fweimer@redhat.com>
+
+ * csu/Makefile (CFLAGS-static-reloc.os): Build with stack
+ protector.
+ (CFLAGS-elf-init.oS): Likewise.
+
+2018-07-05 Florian Weimer <fweimer@redhat.com>
+ Carlos O'Donell <carlos@redhat.com>
+
+ * debug/Makefile (CFLAGS-stack_chk_fail_local.c): Remove
+ $(no-stack-protector). stack_chk_fail_local.c can be compiled
+ with stack protector enabled because there is no risk of infinite
+ recursion.
+
+2018-07-05 Maciej W. Rozycki <macro@mips.com>
+
+ [BZ #19818]
+ [BZ #23307]
+ * libc-abis (ABSOLUTE): New ABI.
+ * sysdeps/unix/sysv/linux/mips/libc-abis (ABSOLUTE): New ABI.
+ * NEWS: Mention the new ABI.
+
+2018-07-05 Florian Weimer <fweimer@redhat.com>
+
+ [BZ # 17662]
+ * libio/stdio.h [__USE_GNU] (RENAME_NOREPLACE, RENAME_EXCHANGE)
+ (RENAME_WHITEOUT): Define.
+ [__USE_GNU] (renameat2): Declare.
+ * stdio-common/Makefile (routines): Add renameat2.
+ (tests): Add tst-renameat2.
+ * stdio-common/Versions (GLIBC_2_28): Export renameat2.
+ * stdio-common/renameat2.c: New file.
+ * stdio-common/tst-renameat2.c: Likewise.
+ * sysdeps/unix/sysv/linux/renameat2.c: Likewise.
+ * manual/filesys.texi (Temporary Files): Note that renameat2 is
+ undocumented.
+ * sysdeps/unix/sysv/linux/kernel-features.h
+ [__LINUX_KERNEL_VERSION >= 0x030F00] (__ASSUME_RENAMEAT2): Define.
+ * sysdeps/unix/sysv/linux/alpha/kernel-features.h
+ [__LINUX_KERNEL_VERSION < 0x031100] (__ASSUME_RENAMEAT2): Undefine.
+ * sysdeps/unix/sysv/linux/microblaze/kernel-features.h
+ [__LINUX_KERNEL_VERSION < 0x031100] (__ASSUME_RENAMEAT2): Undefine.
+ * sysdeps/unix/sysv/linux/sh/kernel-features.h
+ [__LINUX_KERNEL_VERSION < 0x040800] (__ASSUME_RENAMEAT2): Undefine.
+ * sysdeps/unix/sysv/linux/sparc/kernel-features.h
+ [__LINUX_KERNEL_VERSION < 0x031000] (__ASSUME_RENAMEAT2): Undefine.
+ * include/stdio.h (__renameat): Add alias for renameat.
+ * stdio-common/renameat.c (__renameat): Rename from renameat.
+ Add hidden definition and alias.
+ * sysdeps/unix/sysv/linux/renameat.c: Likewise.
+ * sysdeps/mach/hurd/renameat.c: Likewise.
+ * sysdeps/**/libc*.abilist: Add renameat2.
+
+2018-07-04 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * posix/bug-regex33.c: Fix build after regex sync.
+
+2018-07-04 Carlos O'Donell <carlos@redhat.com>
+
+ [BZ #23164]
+ * localedata/tst-langinfo-setlocale.c: New file.
+ * localedata/tst-langinfo-setlocale-static.c: New file.
+ * localedata/tst-langinfo-newlocale.c: New file.
+ * localedata/tst-langinfo-newlocale-static.c: New file.
+ * localedata/Makefile (test-srcs): Remove tst-langinfo. Add
+ tst-langinfo-setlocale, tst-langinfo-setlocale-static,
+ tst-langinfo-newlocale, tst-langinfo-newlocale-static.
+ (tests-static): Remove tst-langinfo-static. Add
+ tst-langinfo-newlocale-static, tst-langinfo-setlocale-static.
+ (tests-special): Remove $(objpfx)tst-langinfo.out,
+ $(objpfx)tst-langinfo-static.out. Add
+ $(objpfx)tst-langinfo-setlocale.out,
+ $(objpfx)tst-langinfo-newlocale.out,
+ $(objpfx)tst-langinfo-setlocale-static.out,
+ $(objpfx)tst-langinfo-newlocale-static.out.
+ ($(objpfx)tst-langinfo.out): Remove.
+ ($(objpfx)tst-langinfo-static.out): Remove.
+ ($(objpfx)tst-langinfo-newlocale.out): New target.
+ ($(objpfx)tst-langinfo-newlocale-static.out): New target.
+ (test-xfail-tst-langinfo-newlocale-static): Add.
+ ($(objpfx)tst-langinfo-setlocale.out): New target.
+ ($(objpfx)tst-langinfo-setlocale-static.out): New target.
+ * localedata/tst-langinfo.c: Call test_locale.
+ * localedata/tst-langinfo.sh: Add LC_MONETARY CURRENCY_SYMBOL test
+ data.
+
+2018-07-04 Florian Weimer <fweimer@redhat.com>
+
+ testrun.sh: Implement --tool=strace, --tool=valgrind
+ * Makefile (testrun-script): Define variable.
+ (testrun.sh): Use variable.
+ * manual/install.texi (Tools for Compilation): make 4.0 or later
+ is required.
+ * configure.ac: Check for make 4.0 or later.
+ * INSTALL: Regenerate.
+ * configure: Likewise.
+
+2018-07-04 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ [BZ #23233]
+ [BZ #21163]
+ [BZ #18986]
+ [BZ #13762]
+ * posix/Makefile (tests): Add bug-regex37 and bug-regex38.
+ * posix/PCRE.tests: Remove invalid test.
+ * posix/bug-regex28.c: Fix expected values for used syntax.
+ * posix/bug-regex37.c: New file.
+ * posix/bug-regex38.c: Likewise.
+ * posix/regcomp.c: Sync with gnulib.
+ * posix/regex.c: Likewise.
+ * posix/regex.h: Likewise.
+ * posix/regex_internal.c: Likewise.
+ * posix/regex_internal.h: Likewise.
+ * posix/regexec.c: Likewise.
+
+2018-06-26 Mike FABIAN <mfabian@redhat.com>
+
+ [BZ #23308]
+ * unicode-gen/Makefile (UNICODE_VERSION): Set to 11.0.0.
+ * localedata/unicode-gen/DerivedCoreProperties.txt: Update to Unicode 11.0.0.
+ * localedata/unicode-gen/EastAsianWidth.txt: likewise.
+ * localedata/unicode-gen/PropList.txt: likewise.
+ * localedata/unicode-gen/UnicodeData.txt: likewise.
+ * localedata/charmaps/UTF-8: Regenerate.
+ * localedata/locales/i18n_ctype: likewise.
+ * localedata/locales/tr_TR: likewise.
+ * localedata/locales/translit_circle: likewise.
+ * localedata/locales/translit_cjk_compat: likewise.
+ * localedata/locales/translit_combining: likewise.
+ * localedata/locales/translit_compat: likewise.
+ * localedata/locales/translit_font: likewise.
+ * localedata/locales/translit_fraction: likewise.
+
+2018-07-03 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #23363]
+ * stdio-common/tst-printf.c (DEC, INT, UNS, fp_test): Remove.
+ * stdio-common/tst-printf.sh: Adjust expected output.
+ * LICENSES: Update.
+
+2018-07-03 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/mach/hurd/i386/libc.abilist [GLIBC_2.28] (fcntl): Remove
+ symbol.
+
+2018-07-02 Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
+
+ * stdio-common/Makefile (test-srcs): Add tst-printfsz-islongdouble.
+ (tests-special) Add $(objpfx)tst-printfsz-islongdouble.out.
+ ($(objpfx)tst-printfsz-islongdouble.out): New build and run rule.
+ * stdio-common/tst-printfsz-islongdouble.c: New file.
+ * stdio-common/tst-printfsz-islongdouble.sh: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm-compat/Makefile:
+ [subdir == stdio-common] (routines): Add ieee128-printf_size.
+ [subdir == stdio-common] (tests-internal): Add
+ test-printf-size-ieee128, and test-printf-size-ibm128.
+ [subdir == stdio-common] (CFLAGS-test-printf-size-ieee128.c)
+ (CFLAGS-test-printf-size-ibm128.c): New variables.
+ [subdir == stdio-common] (tests-special): Add
+ $(objpfx)test-printf-size-ieee128.out and
+ $(objpfx)test-printf-size-ibm128.out.
+ [subdir == stdio-common] ($(objpfx)test-printf-size-ieee128.out)
+ ($(objpfx)test-printf-size-ibm128.out): New build and run rules.
+ * sysdeps/ieee754/ldbl-128ibm-compat/Versions (libc): Add
+ __printf_sizeieee128.
+ * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-printf_size.c:
+ New file.
+ * sysdeps/ieee754/ldbl-128ibm-compat/test-printf-size-ibm128.c:
+ Likewise.
+ * sysdeps/ieee754/ldbl-128ibm-compat/test-printf-size-ieee128.c:
+ Likewise.
+
+2018-07-02 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * sysdeps/ieee754/flt-32/e_powf.c (__powf): Use uint32_t.
+ (exp2f_inline): Likewise.
+ * sysdeps/ieee754/flt-32/math_config.h (__math_oflowf): Likewise.
+ (__math_uflowf): Likewise.
+ (__math_may_uflowf): Likewise.
+ (__math_divzerof): Likewise.
+ (__math_invalidf): Likewise.
+ * sysdeps/ieee754/flt-32/math_errf.c (xflowf): Likewise.
+ (__math_oflowf): Likewise.
+ (__math_uflowf): Likewise.
+ (__math_may_uflowf): Likewise.
+ (__math_divzerof): Likewise.
+ (__math_invalidf): Likewise.
+
+2018-06-29 DJ Delorie <dj@redhat.com>
+ Carlos O'Donell <carlos@redhat.com>
+
+ [BZ #23329]
+ * include/libc-symbols.h: Comment the freeres framework.
+ * include/set-hooks.h: Include libc-symbols.h. Fix comment.
+ * dlfcn/Makefile (libdl-routines): Add dlfreeres.
+ * dlfcn/Versions (GLIBC_PRIVATE): Add __libdl_freeres.
+ * dlfcn/dlerror.c: Include libc-symbols.h
+ (__dlerror_main_freeres): New function.
+ * dlfcn/dlfreeres.c: New file.
+ * dlfcn/sdlfreeres.c: New file.
+ * include/dlfcn.h: Declare __dlerror_main_freeres.
+ * malloc/set-freeres.c: Declare __libdl_freeres, and
+ __libpthread_freeres.
+ (__libc_subfreeres): Call __libdl_freeres, and __libpthread_freeres if
+ the releavant libraries are loaded.
+ * malloc/thread-freeres.c: Add comments.
+ * nptl/Makefile (libpthread-routines): Add nptlfreeres.
+ * nptl/Version (GLIBC_PRIVATE): Add __libpthread_freeres.
+ * nptl/allocatestack.c (__nptl_free_stacks): New function.
+ (__free_stacks): Rename to...
+ (free_stacks): ...this. Mark static.
+ (queue_stack): Call free_stacks.
+ * nptl/libc_pthread_init.c [SHARED] (freeres_libpthread): Delete.
+ * nptl/nptl-init.c: Delete delcaration of nptl_freeres.
+ * sysdeps/nptl/pthread-functions.h (pthread_functions): Remove
+ ptr_freeres element from struct.
+ (pthread_functions): Remove .ptr_freeres from struct initializer.
+ [SHARED] (nptl_freeres): Remove.
+ * nptl/nptlfreeres.c: New file.
+ * nptl/pthreadP.h
+ [IS_IN (libpthread) && SHARED ] (__unwind_freeres): Rename to...
+ [IS_IN (libpthread)] (__nptl_unwind_freeres): ...this. Mark
+ attribute_hidden.
+ (__free_stacks): Rename to...
+ (__nptl_stacks_freeres): ...this.
+ (__shm_directory_freeres): Declare.
+ * nptl/unwind-forcedunwind.c (__unwind_freeres): Rename to...
+ (__nptl_unwind_freeres): ...this.
+ * resolv/res-close.c: Add comment.
+ * resolv/resolv_conf.c: Include libc-symbols.h.
+ * string/strerror_l.c: Include libc-symbols.h.
+ * sunrpc/rpc_thread.c: Include libc-symbols.h.
+ * sysdeps/mach/strerror_l.c: Inlcude libc-symbols.h
+ * sysdeps/unix/sysv/linux/shm-directory.c (freeit): Rename to...
+ [IS_IN (libpthread)] (__shm_directory_freeres): ...this.
+
+2018-06-29 Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>
+
+ * stdlib/tst-strfmon_l.c: Add tests for long double.
+
+2018-06-29 Michael Wolf <milupo@sorbzilla.de>
+
+ [BZ #23208]
+ * localedata/SUPPORTED (dsb_DE/UTF-8): New entry.
+ * localedata/locales/dsb_DE: New file.
+
+2018-06-29 Rafał Lużyński <digitalfreak@lingonborough.com>
+
+ [BZ #23140]
+ * localedata/locales/hy_AM (mon): Synchronize with CLDR (lowercase,
+ genitive case).
+ (alt_mon): New entry, import from CLDR (nominative case).
+
+2018-06-29 Sylvain Lesage <severo@rednegra.net>
+
+ [BZ #22996]
+ * localedata/locales/es_BO (LC_PAPER): Change to “copy "en_US"â€.
+
+2018-06-29 Siddhesh Poyarekar <siddhesh@sourceware.org>
+
+ * sysdeps/aarch64/multiarch/memcpy_falkor.S (__memcpy_falkor):
+ Use vector registers.
+
+ * sysdeps/aarch64/multiarch/memmove_falkor.S
+ (__memcpy_falkor): Use vector registers.
+
+2018-06-29 Martin Sebor <msebor@redhat.com>
+
+ * manual/stdio.texi (Customizing Printf): Mention interaction
+ with GCC built-ins.
+
+2018-06-29 Maciej W. Rozycki <macro@mips.com>
+
+ [BZ #23307]
+ * elf/dl-lookup.c (check_match): Do not reject a symbol whose
+ `st_value' is 0 if `st_shndx' is SHN_ABS.
+ * elf/tst-absolute-zero.c: New file.
+ * elf/tst-absolute-zero-lib.c: New file.
+ * elf/tst-absolute-zero-lib.lds: New file.
+ * elf/Makefile (tests): Add `tst-absolute-zero'.
+ (modules-names): Add `tst-absolute-zero-lib'.
+ (LDLIBS-tst-absolute-zero-lib.so): New variable.
+ ($(objpfx)tst-absolute-zero-lib.so): New dependency.
+ ($(objpfx)tst-absolute-zero: New dependency.
+
+2018-06-29 Zack Weinberg <zackw@panix.com>
+
+ * configure.ac: New command-line option --disable-crypt.
+ Force --disable-nss-crypt when --disable-crypt is given, with a
+ warning if it was explicitly enabled.
+ * configure: Regenerate.
+ * config.make.in: New boolean substitution variable $(build-crypt).
+ * Makeconfig: Only include 'crypt' in all-subdirs and rpath-dirs
+ when $(build-crypt).
+ * manual/install.texi: Document --disable-crypt.
+ * INSTALL: Regenerate.
+
+ * crypt/Makefile: Remove code conditional on $(crypt-in-libc),
+ which is never set.
+ * conform/Makefile: Only include libcrypt.a in
+ linknamespace-libs-xsi and linknamespace-libs-XPG4
+ when $(build-crypt).
+ * elf/Makefile (CFLAGS-tst-linkall-static.c): Only define
+ USE_CRYPT to 1 when $(build-crypt).
+ (tst-linkall-static): Only link libcrypt.a when $(build-crypt).
+ (localplt-built-dso): Only add libcrypt.so when $(build-crypt).
+ * elf/tst-linkall-static.c: Only include crypt.h when USE_CRYPT.
+
+2018-06-29 Zack Weinberg <zackw@panix.com>
+
+ * crypt/crypt.h, posix/unistd.h: Update comments and
+ prototypes for crypt and crypt_r.
+
+ * manual/crypt.texi (Cryptographic Functions): New initial
+ exposition.
+ (crypt): Section renamed to 'Passphrase Storage'. Full rewrite.
+ (Unpredictable Bytes): Improve initial exposition. Clarify error
+ behavior of getentropy and getrandom.
+ * manual/examples/genpass.c: Generate a salt using getentropy
+ instead of the current time. Use hash $5$ (SHA-2-256).
+ * manual/examples/testpass.c: Demonstrate validation against
+ hashes generated with three different one-way functions.
+
+ * manual/intro.texi: crypt.texi does not need an overview
+ anymore.
+
+ * manual/nss.texi, manual/memory.texi, manual/socket.texi
+ * manual/terminal.texi: Consistently refer to "passphrases"
+ * instead of "passwords", and to the "user database" instead
+ * of the "password database".
+ * manual/users.texi: Similarly. Add notes about how actual
+ passphrase hashes are now stored in the shadow database.
+ Remove 20-year-old junk todo note.
+
+2018-06-29 Zack Weinberg <zackw@panix.com>
+
+ * manual/crypt.texi: Use a normal top-level @node declaration.
+ Move most of the introductory text to the 'crypt' section.
+ Move the example programs below the @deftypefun for 'crypt_r'.
+ Move the 'getpass' section...
+ * manual/terminal.texi: ...here.
+
+2018-06-29 Zack Weinberg <zackw@panix.com>
+ Florian Weimer <fweimer@redhat.com>
+
+ * posix/unistd.h: Do not declare encrypt.
+ (_XOPEN_CRYPT): Remove macro definition.
+ (crypt): Declare only for _USE_MISC.
+ * stdlib/stdlib.h: Do not declare setkey.
+ * crypt/crypt.h: Do not declare encrypt, setkey, encrypt_r, setkey_r.
+ * sunrpc/Makefile: Do not install des_crypt.h nor rpc_des.h.
+
+ * crypt/crypt-entry.c: Make fcrypt a compat symbol.
+ * crypt/crypt_util.c: Make encrypt, encrypt_r, setkey, setkey_r
+ into compat symbols. Don't define initial_perm if it's not
+ going to be used.
+ * crypt/cert.c: Link explicitly with the expected versions for
+ setkey and encrypt. If they are not available at all, mark
+ the test as unsupported.
+
+ * sunrpc/des_crypt.c: Unconditionally block linkage with
+ cbc_crypt and ecb_crypt for new binaries.
+ * sunrpc/des_soft.c: Unconditionally block linkage with
+ des_setparity for new binaries.
+
+ * manual/crypt.texi: Remove the entire "DES Encryption"
+ section. Also remove the paragraph talking about FIPS 140-2
+ from the introduction.
+ * manual/string.texi (strfry, memfrob): Revise. Recommend use
+ of libgcrypt for "real" encryption, not DES.
+ * manual/conf.texi (Constants for Sysconf): Mention that
+ _XOPEN_CRYPT is no longer impelemented.
+
+ * conform/data/unistd.h-data: Remove crypt function declaration.
+
+2018-06-29 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #23351]
+ * malloc/hooks.c: Update comments on restoring of dumped heaps.
+ (disallow_malloc_check): Remove variable.
+ (__malloc_check_init): Adjust.
+ (malloc_set_state): Update comment.
+ * malloc/malloc.c (__malloc_get_state, __malloc_set_state): Remove
+ declarations.
+
+2018-06-29 Rafał Lużyński <digitalfreak@lingonborough.com>
+
+ [BZ #23140]
+ * localedata/locales/ast_ES (mon): Rename to...
+ (alt_mon): This.
+ (mon): Import from CLDR (genitive case).
+
+2018-06-29 Daniel Alvarez <dalvarez@redhat.com>
+ Jakub Sitnicki <jkbs@redhat.com>
+
+ [BZ #21812]
+ * sysdeps/unix/sysv/linux/ifaddrs.c (getifaddrs_internal): Retry
+ on NLM_F_DUMP_INTR.
+
+2018-06-28 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * manual/llio.texi: Remove spurious space.
+
+2018-06-28 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #23349]
+ * time/bits/types/struct_timespec.h: Change header inclusion guard to
+ _STRUCT_TIMESPEC.
+
+2018-06-28 Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>
+
+ * sysdeps/ieee754/ldbl-128ibm-compat/Versions: Add __strfromieee128,
+ __strtoieee128, __strtoieee128_l,__wcstoieee128 and __wcstoieee128_l.
+ * sysdeps/ieee754/ldbl-128ibm-compat/strfromf128.c: New file.
+ * sysdeps/ieee754/ldbl-128ibm-compat/strtof128.c: New file.
+ * sysdeps/ieee754/ldbl-128ibm-compat/strtof128_l.c: New file.
+ * sysdeps/ieee754/ldbl-128ibm-compat/wcstof128.c: New file.
+ * sysdeps/ieee754/ldbl-128ibm-compat/wcstof128_l.c: New file.
+
+2018-06-27 Maciej W. Rozycki <macro@mips.com>
+
+ [BZ #23266]
+ * nis/nss_nisplus/nisplus-parser.c (_nss_nisplus_parse_pwent):
+ Copy and null-terminate entries that are not terminated, in
+ addition to empty ones.
+
+2018-06-27 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #18023]
+ * include/alloca.h (stackinfo_alloca_round, extend_alloca)
+ (extend_alloca_account): Remove.
+ * manual/stdio.texi (Variable Arguments Output): Update comment.
+
+2018-06-27 Joseph Myers <joseph@codesourcery.com>
+
+ * nptl/sockperf.c: Remove file.
+
+2018-06-27 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #18023]
+ * elf/dl-deps.c (_dl_map_object_deps): Use struct
+ scratch_buffer instead of extend_alloca.
+
+2018-06-27 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #18023]
+ * sysdeps/unix/sysv/linux/gethostid.c (gethostid): Use struct
+ scratch_buffer instead of extend_alloca. Update comments.
+
+2018-06-27 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #18023]
+ * posix/wordexp.c (parse_tilde): Use struct scratch_buffer
+ instead of extend_alloca.
+
+2018-06-26 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #13888]
+ * posix/Makefile (CFLAGS-tst-spawn3.c): New variable.
+ * posix/tst-spawn3.c (do_test): Put tst-spwan3.pid in OBJPFX, not
+ /tmp.
+ * scripts/test-installation.pl: Put temporary files in build
+ directory, not /tmp.
+ * stdio-common/Makefile (CFLAGS-bug3.c): New variable.
+ (CFLAGS-bug4.c): Likewise.
+ (CFLAGS-bug5.c): Likewise.
+ (CFLAGS-test-fseek.c): Likewise.
+ (CFLAGS-test-popen.c): Likewise.
+ (CFLAGS-test_rdwr.c): Likewise.
+ * stdio-common/bug3.c (main): Put temporary file in OBJPFX, not
+ /tmp.
+ * stdio-common/bug4.c (main): Likewise.
+ * stdio-common/bug5.c (main): Likewise.
+ * stdio-common/test-fseek.c (TESTFILE): Likewise.
+ * stdio-common/test-popen.c (do_test): Likewise.
+ * stdio-common/test_rdwr.c (main): Likewise.
+
+2018-06-26 Patsy Franklin <pfrankli@redhat.com>
+
+ * nptl/sem_open.c [!__HAVE_64B_ATOMICS] (sem_open): Don't update pad.
+ (sem_open): Set sem.newsem.pad to zero for valgrind.
+
+2018-06-26 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ [BZ #20251]
+ * NEWS: Mention fcntl64 addition.
+ * csu/check_fds.c: Replace __fcntl_nocancel by __fcntl64_nocancel.
+ * login/utmp_file.c: Likewise.
+ * sysdeps/posix/fdopendir.c: Likewise.
+ * sysdeps/posix/opendir.c: Likewise.
+ * sysdeps/unix/pt-fcntl.c: Likewise.
+ * include/fcntl.h (__libc_fcntl64, __fcntl64,
+ __fcntl64_nocancel_adjusted): New prototype.
+ (__fcntl_nocancel_adjusted): Remove prototype.
+ * io/Makefile (routines): Add fcntl64.
+ (CFLAGS-fcntl64.c): New rule.
+ * io/Versions [GLIBC_2.28] (fcntl64): New symbol.
+ [GLIBC_PRIVATE] (__libc_fcntl): Rename to __libc_fcntl64.
+ * io/fcntl.h (fcntl64): Add prototype and redirect if
+ __USE_FILE_OFFSET64 is defined.
+ * io/fcntl64.c: New file.
+ * manual/llio.text: Add a note for which commands fcntl acts a
+ cancellation point.
+ * nptl/Makefile (CFLAGS-fcntl64.c): New rule.
+ * sysdeps/mach/hurd/fcntl.c: Alias fcntl to fcntl64 symbols.
+ * sysdeps/mach/hurd/i386/libc.abilist [GLIBC_2.28] (fcntl, fcntl64):
+ New symbols.
+ * sysdeps/unix/sysv/linux/fcntl.c (__libc_fcntl): Fix F_GETLK64,
+ F_OFD_GETLK, F_SETLK64, F_SETLKW64, F_OFD_SETLK, and F_OFD_SETLKW for
+ non-LFS case.
+ * sysdeps/unix/sysv/linux/fcntl64.c: New file.
+ * sysdeps/unix/sysv/linux/fcntl_nocancel.c (__fcntl_nocancel): Rename
+ to __fcntl64_nocancel.
+ (__fcntl_nocancel_adjusted): Rename to __fcntl64_nocancel_adjusted.
+ * sysdeps/unix/sysv/linux/not-cancel.h (__fcntl_nocancel): Rename
+ to __fcntl64_nocancel.
+ * sysdeps/generic/not-cancel.h: Likewise.
+ * sysdeps/unix/sysv/linux/tst-ofdlocks.c: New file.
+ * sysdeps/unix/sysv/linux/Makefile (tests): Add tst-ofdlocks.
+ * sysdeps/unix/sysv/linux/aarch64/libc.abilist [GLIBC_2.28]
+ (fcntl64): New symbol.
+ * sysdeps/unix/sysv/linux/alpha/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/ia64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/arm/libc.abilist [GLIBC_2.28] (fcntl,
+ fcntl64): Likewise.
+ * sysdeps/unix/sysv/linux/hppa/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/i386/libc.abilis: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/microblaze/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/nios2/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sh/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise.
+
+2018-06-26 Florian Weimer <fweimer@redhat.com>
+
+ Run thread shutdown functions in an explicit order.
+ * malloc/thread-freeres.c (__libc_thread_subfreeres): Remove hook
+ definition.
+ (__libc_thread_freeres): Call thread shutdown functions
+ explicitly.
+ * include/rpc/rpc.h (__rpc_thread_destroy): Add hidden attribute.
+ * include/string.h (__strerror_thread_freeres): Declare.
+ * malloc/arena.c (__malloc_arena_thread_freeres): Renamed from
+ arena_thread_freeres. No longer static. Remove thread shutdown
+ hook registration.
+ * malloc/malloc-internal.h (__malloc_arena_thread_freeres):
+ Declare.
+ * resolv/res-close.c (__res_thread_freeres): Renamed from
+ res_thread_freeres. No longer static. Remove thread shutdown
+ hook registration.
+ * resolv/resolv-internal.h (__res_thread_freeres): Declare.
+ * resolv/resolv_conf.c (freeres): Remove incorrect section
+ attribute and use libc_freeres_fn.
+ * string/strerror_l.c (__strerror_thread_freeres): Renamed from
+ strerror_thread_freeres. No longer static. Remove thread
+ shutdown hook registration.
+ * sysdeps/mach/strerror_l.c (__strerror_thread_freeres): Likewise.
+ * sunrpc/rpc_thread.c (__rpc_thread_destroy): Remove thread
+ shutdown hook registration.
+ * Makerules (shlib.lds): Do not provide section boundary symbols
+ for __libc_thread_subfreeres.
+ * manual/memory.texi (Basic Allocation): Update comment.
+
+2018-06-26 Florian Weimer <fweimer@redhat.com>
+
+ Remove always-defined _RPC_THREAD_SAFE_ macro.
+ * sunrpc/Makefile (sunrpc-CPPFLAGS, CPPFLAGS, BUILD_CPPFLAGS):
+ Do not define _RPC_THREAD_SAFE_.
+ * include/rpc/rpc.h: Remove _RPC_THREAD_SAFE_ preprocessor
+ conditional.
+ * sunrpc/clnt_perr.c: Likewise.
+ * sunrpc/clnt_raw.c: Likewise.
+ * sunrpc/clnt_simp.c: Likewise.
+ * sunrpc/key_call.c: Likewise.
+ * sunrpc/rpc_common.c: Likewise.
+ * sunrpc/rpc_main.c: Likewise.
+ * sunrpc/rpc_thread.c: Likewise.
+ * sunrpc/svc.c: Likewise.
+ * sunrpc/svc_raw.c: Likewise.
+ * sunrpc/svc_simple.c: Likewise.
+ * sumrpc/svcauth_des.c: Likewise.
+
+2018-06-26 Florian Weimer <fweimer@redhat.com>
+
+ * libio/Makefile (tests-internal): Add tst-vtables,
+ tst-vtables-interposed.
+ * libio/tst-vtables.c: New file.
+ * libio/tst-vtables-common.c: Likewise.
+ * libio/tst-vtables-interposed.c: Likewise.
+
+2018-06-26 Florian Weimer <fweimer@redhat.com>
+
+ * support/support_test_main.c (support_test_main): Only call
+ setvbuf if not disables.
+ * support/test-driver.c (main): Check TEST_NO_SETVBUF.
+ * support/test-driver.h (struct test_config): Add no_setvbuf member.
+
+2018-06-26 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #23313]
+ * libio/vtables.c (check_stdfiles_vtables): New ELF constructor.
+
+2018-06-25 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #18023]
+ * nss/nss_files/files-initgroups.c (_nss_files_initgroups_dyn):
+ Use struct scratch_buffer instead of extend_alloca.
+
+2018-06-25 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #18023]
+ * nss/getent.c (initgroups_keys): Use dynarray instead of
+ extend_alloca.
+
+2018-06-25 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #18023]
+ * nis/nss_nis/nis-initgroups.c (get_uid, _nss_nis_initgroups_dyn):
+ Use struct scratch_buffer instead of extend_alloca.
+
+2018-06-25 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #18023]
+ * nss/nss_compat/compat-initgroups.c (getgrent_next_nss): Fall
+ back to malloc directly, without stack allocations.
+
+2018-06-25 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #18023]
+ * nscd/aicache.c (addhstaiX): Use struct scratch_buffer instead
+ of extend_alloca.
+
+2018-06-25 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #18023]
+ * nscd/grpcache.c (addgrbyX): Use struct scratch_buffer instead
+ of extend_alloca.
+ * nscd/hstcache.c (addhstbyX): Likewise.
+ * nscd/pwdcache.c (addpwbyX): Likewise.
+ * nscd/servicescache.c (addservbyX): Likewise.
+
+2018-06-25 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #18023]
+ * nscd/connections.c (read_cmdline): New function.
+ (restart): Use it. Update comment.
+
+2018-06-25 Rafał Lużyński <digitalfreak@lingonborough.com>
+
+ [BZ #23140]
+ * localedata/locales/csb_PL (mon): Rename to...
+ (alt_mon): This.
+ (abmon): Rename to...
+ (ab_alt_mon): This.
+ (mon): Add with proper genitive forms, copy from Wikipedia.
+ (abmon): Likewise.
+
+2018-06-25 Rafał Lużyński <digitalfreak@lingonborough.com>
+
+ [BZ #19485]
+ * localedata/locales/csb_PL (mon): Fix typos:
+ "łżëkwiôt" -> "łżëkwiat" (April); "lëpinc" -> "lëpińc" (July).
+ (yesstr): Add, value is "jo".
+ (nostr): Add, value is "nié".
+
+2018-06-22 Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
+
+ * sysdeps/m68k/m680x0/fpu/s_log1p.c: Set as the generic file for
+ all log1p and significand functions on m680x0.
+ * sysdeps/m68k/m680x0/fpu/s_log1pf.c: Include s_log1p.c instead
+ of s_significand.c..
+ * sysdeps/m68k/m680x0/fpu/s_log1pl.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_significandf.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_significandl.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_significand.c: Move all the code to
+ s_log1p.c and include it..
+
+2018-06-21 Vincent Chen <vincentc@andestech.com>
+
+ * elf/elf.h (R_NDS32_NONE): New define.
+ (R_NDS32_32_RELA): Likewise.
+ (R_NDS32_COPY): Likewise.
+ (R_NDS32_GLOB_DAT): Likewise.
+ (R_NDS32_JUMP_SLOT): Likewise.
+ (R_NDS32_RELATIVE): Likewise.
+ (R_NDS32_TLS_TPOFF): Likewise.
+ (R_NDS32_TLS_DESC): Likewise.
+
+2018-06-21 Mark Wielaard <mark@klomp.org>
+
+ * elf/elf.h (R_BPF_MAP_FD): Removed.
+ (R_BPF_64_64, R_BPF_64_32): New.
+
+2018-06-21 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #23253]
+ * sysdeps/generic/math_private.h (default_libc_feholdsetround_ctx):
+ Renamed from libc_feholdsetround_ctx.
+ (default_libc_feresetround_ctx): Renamed from
+ libc_feresetround_ctx.
+ (default_libc_feholdsetround_noex_ctx): Renamed from
+ libc_feholdsetround_noex_ctx.
+ (default_libc_feresetround_noex_ctx): Renamed from
+ libc_feresetround_noex_ctx.
+ [!HAVE_RM_CTX] (libc_feholdsetround_ctx, libc_feresetround_ctx)
+ (libc_feholdsetround_noex_ctx, libc_feresetround_noex_ctx): Macros
+ forwardning to the old implementations under the new names.
+ * sysdeps/i386/fpu/fenv_private.h [__SSE_MATH__]
+ (libc_feholdexcept_setround_ctx, libc_fesetenv_ctx)
+ (libc_feupdateenv_ctx, libc_feholdsetround_ctx)
+ (libc_feresetround_ctx): Forward to default implements for i386
+ and MATH_SET_BOTH_ROUNDING_MODES.
+ * sysdeps/i386/Makefile [$(subdir) == math] (CFLAGS-e_gamma_r.c):
+ Add -DMATH_SET_BOTH_ROUNDING_MODES.
+
+2018-06-20 Joseph Myers <joseph@codesourcery.com>
+
+ * string/tst-cmp.c: Include <libc-diag.h>.
+ (strncmp_max): Disable -Wstringop-overflow= around call to
+ strncmp.
+ (strncasecmp_max): Disable -Wstringop-overflow= around call to
+ strncasecmp.
+
+ * string/bug-strpbrk1.c: Include <libc-diag.h>.
+ (main): Disable -Wunused-value around call to strpbrk.
+ * string/bug-strspn1.c: Include <libc-diag.h>.
+ (main): Disable -Wunused-value around call to strspn.
+
+2018-06-20 Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
+ Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
+
+ * sysdeps/ieee754/ldbl-128ibm-compat/Versions: New file.
+ * sysdeps/ieee754/ldbl-128ibm-compat/libm-alias-float128.h: New file.
+
+2018-06-20 Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
+
+ * math/Makefile (libm-calls): Move s_significandF to...
+ (gen-libm-calls): ... here.
+ * math/s_significand_template.c: New file.
+ * math/s_significand.c: Removed.
+ * math/s_significandf.c: Removed.
+ * math/s_significandl.c: Removed.
+ * sysdeps/ieee754/ldbl-opt/s_significand.c: Removed.
+ * sysdeps/ieee754/ldbl-opt/s_significandl.c: Removed.
+
+ * math/e_exp2_template.c (declare_mgen_finite_alias,
+ declare_mgen_finite_alias_s, declare_mgen_finite_alias_x): Move to...
+ * sysdeps/generic/math-type-macros.h (declare_mgen_finite_alias,
+ declare_mgen_finite_alias_s, declare_mgen_finite_alias_x): ... here.
+
+2018-06-20 Florian Weimer <fweimer@redhat.com>
+
+ * libio/libioP.h (IO_validate_vtable): Avoid ptrdiff_t overflow.
+
+2018-06-19 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #23280]
+ * stdio-common/vfscanf.c (_IO_vfscanf_internal): Pass sign of
+ floating-point number to strtod functions rather than possibly
+ negating result of those functions.
+ * stdio-common/tst-scanf-round.c: New file.
+ * stdio-common/Makefile (tests): Add tst-scanf-round.
+ ($(objpfx)tst-scanf-round): Depend on $(libm).
+
+2018-06-18 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * sysdeps/mach/hurd/localplt.data: Move to...
+ * sysdeps/mach/hurd/i386/localplt.data: new file. Add + REL
+ R_386_GLOB_DAT like on Linux i386.
+
+2018-06-18 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/alpha/bits/shm.h [__USE_MISC]
+ (SHM_STAT_ANY): New macro.
+ * sysdeps/unix/sysv/linux/arm/bits/shm.h [__USE_MISC]
+ (SHM_STAT_ANY): Likewise.
+ * sysdeps/unix/sysv/linux/bits/shm.h [__USE_MISC]
+ (SHM_STAT_ANY): Likewise.
+ * sysdeps/unix/sysv/linux/generic/bits/shm.h [__USE_MISC]
+ (SHM_STAT_ANY): Likewise.
+ * sysdeps/unix/sysv/linux/hppa/bits/shm.h [__USE_MISC]
+ (SHM_STAT_ANY): Likewise.
+ * sysdeps/unix/sysv/linux/ia64/bits/shm.h [__USE_MISC]
+ (SHM_STAT_ANY): Likewise.
+ * sysdeps/unix/sysv/linux/mips/bits/shm.h [__USE_MISC]
+ (SHM_STAT_ANY): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/bits/shm.h [__USE_MISC]
+ (SHM_STAT_ANY): Likewise.
+ * sysdeps/unix/sysv/linux/s390/bits/shm.h [__USE_MISC]
+ (SHM_STAT_ANY): Likewise.
+ * sysdeps/unix/sysv/linux/sh/bits/shm.h [__USE_MISC]
+ (SHM_STAT_ANY): Likewise.
+ * sysdeps/unix/sysv/linux/sparc/bits/shm.h [__USE_MISC]
+ (SHM_STAT_ANY): Likewise.
+ * sysdeps/unix/sysv/linux/x86/bits/shm.h [__USE_MISC]
+ (SHM_STAT_ANY): Likewise.
+
+ * sysdeps/unix/sysv/linux/alpha/bits/sem.h [__USE_MISC]
+ (SEM_STAT_ANY): New macro.
+ * sysdeps/unix/sysv/linux/bits/sem.h [__USE_MISC]
+ (SEM_STAT_ANY): Likewise.
+ * sysdeps/unix/sysv/linux/generic/bits/sem.h [__USE_MISC]
+ (SEM_STAT_ANY): Likewise.
+ * sysdeps/unix/sysv/linux/hppa/bits/sem.h [__USE_MISC]
+ (SEM_STAT_ANY): Likewise.
+ * sysdeps/unix/sysv/linux/ia64/bits/sem.h [__USE_MISC]
+ (SEM_STAT_ANY): Likewise.
+ * sysdeps/unix/sysv/linux/mips/bits/sem.h [__USE_MISC]
+ (SEM_STAT_ANY): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/bits/sem.h [__USE_MISC]
+ (SEM_STAT_ANY): Likewise.
+ * sysdeps/unix/sysv/linux/s390/bits/sem.h [__USE_MISC]
+ (SEM_STAT_ANY): Likewise.
+ * sysdeps/unix/sysv/linux/sparc/bits/sem.h [__USE_MISC]
+ (SEM_STAT_ANY): Likewise.
+ * sysdeps/unix/sysv/linux/x86/bits/sem.h [__USE_MISC]
+ (SEM_STAT_ANY): Likewise.
+
+ * sysdeps/unix/sysv/linux/alpha/bits/msq.h [__USE_MISC]
+ (MSG_STAT_ANY): New macro.
+ * sysdeps/unix/sysv/linux/bits/msq.h [__USE_MISC]
+ (MSG_STAT_ANY): Likewise.
+ * sysdeps/unix/sysv/linux/generic/bits/msq.h [__USE_MISC]
+ (MSG_STAT_ANY): Likewise.
+ * sysdeps/unix/sysv/linux/hppa/bits/msq.h [__USE_MISC]
+ (MSG_STAT_ANY): Likewise.
+ * sysdeps/unix/sysv/linux/ia64/bits/msq.h [__USE_MISC]
+ (MSG_STAT_ANY): Likewise.
+ * sysdeps/unix/sysv/linux/mips/bits/msq.h [__USE_MISC]
+ (MSG_STAT_ANY): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/bits/msq.h [__USE_MISC]
+ (MSG_STAT_ANY): Likewise.
+ * sysdeps/unix/sysv/linux/s390/bits/msq.h [__USE_MISC]
+ (MSG_STAT_ANY): Likewise.
+ * sysdeps/unix/sysv/linux/sparc/bits/msq.h [__USE_MISC]
+ (MSG_STAT_ANY): Likewise.
+ * sysdeps/unix/sysv/linux/x86/bits/msq.h [__USE_MISC]
+ (MSG_STAT_ANY): Likewise.
+
+ * sysdeps/unix/sysv/linux/hppa/bits/mman.h [__USE_MISC]
+ (MAP_TYPE): Change value to 0x2b.
+
+2018-06-18 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #15722]
+ * sysdeps/unix/sysv/linux/check_pf.c (__check_pf): Create Netlink
+ socket with SOCK_CLOEXEC.
+
+2018-06-18 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #23303]
+ * sysdeps/powerpc/powerpc64/le/Makefile
+ (CFLAGS-tst-strtod-nan-sign.c): Add -mfloat128.
+ (CFLAGS-tst-wcstod-nan-sign.c): Likewise.
+ (gnulib-tests): Also add $(f128-loader-link) for
+ tst-strtod-nan-sign abd tst-wcstod-nan-sign.
+
+2018-06-15 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * include/sys/sendfile.h (__sendfile64): Declare hidden prototype.
+ * sysdeps/mach/hurd/sendfile.c (sendfile): Call __sendfile64 instead
+ of sendfile.
+ * sysdeps/mach/hurd/sendfile64.c (sendfile64): Rename to __sendfile64.
+ (sendfile64): New strong alias.
+ * sysdeps/mach/hurd/lseek.c: Include <errno.h>.
+ * sysdeps/mach/hurd/lseek.c (__libc_lseek): Check that the value
+ returned by __lseek64 can fit off_t, return EOVERFLOW otherwise.
+ * sysdeps/htl/pthreadP.h (___pthread_get_cleanup_stack): Add hidden
+ attribute.
+ * htl/pt-join.c (__pthread_get_cleanup_stack): Define to
+ ___pthread_get_cleanup_stack.
+ * sysdeps/mach/hurd/localplt.data (ld.so): Make ref to __open optional.
+ * sysdeps/mach/include/mach-shortcuts-hidden.h: New file.
+ * mach/shortcut.awk: Make syscall stubs include
+ <mach-shortcuts-hidden.h> and add hidden definition.
+ * sysdeps/mach/include/mach.h: Include <mach-shortcuts-hidden.h>.
+ (__mach_msg): Add hidden prototype.
+ * mach/msg.c: Include <mach.h>.
+ (__mach_msg): Add hidden definition.
+ * mach/Makefile ($(mach-syscalls:%=$(objpfx))): Add hidden definition.
+ * sysdeps/mach/include/mach/mach_traps.h (__mach_reply_port,
+ __mach_thread_self, __mach_task_self, __mach_host_self, __swtch,
+ __swtch_pri, __thread_switch, __evc_wait): Add hidden prototypes.
+ * sysdeps/mach/hurd/localplt.data (siglongjmp, longjmp,
+ __libc_lseek64, _IO_funlockfile): Whitelist PLT references.
+ * sysdeps/hurd/include/hurd/signal.h (_hurd_self_sigstate): Add hidden
+ prototype and definition.
+ * sysdeps/mach/hurd/i386/____longjmp_chk.S (____longjmp_chk): Use
+ hidden target for _hurd_self_sigstate.
+
+2018-06-15 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #23007]
+ * stdlib/tst-strtod-nan-sign-main.c: New file.
+ * stdlib/tst-strtod-nan-sign.c: Likewise.
+ * wcsmbs/tst-wcstod-nan-sign.c: Likewise.
+ * stdlib/Makefile (tests): Add tst-strtod-nan-sign.
+ ($(objpfx)tst-strtod-nan-sign): Depend on $(libm).
+ * wcsmbs/Makefile (tests) Add tst-wcstod-nan-sign.
+ ($(objpfx)tst-wcstod-nan-sign): Depend on $(libm).
+
+2018-06-15 Herman ten Brugge <hermantenbrugge@home.nl>
+
+ [BZ #23007]
+ * stdlib/strtod_l.c (____STRTOF_INTERNAL): Return NaN of
+ appropriate sign.
+
+2018-06-14 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #23290]
+ * localedata/charmaps/IBM273: Map codepoint 0xbc to U+00AF, so
+ that the result stays within the ISO-8859-1 range.
+ * iconvdata/ibm273.c (HAS_HOLES): Define as 0 because all 256
+ characters are defined in IBM273.
+
+2018-06-14 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * sysdeps/mach/include/mach/mach_traps.h (__mach_thread_self,
+ __mach_task_self): Remove attribute_hidden.
+
+2018-06-14 Joseph Myers <joseph@codesourcery.com>
+
+ * string/tester.c (test_strncat) [__GNUC_PREREQ (7, 0)]: Also
+ ignore -Wrestrict for one test.
+
+2018-06-14 Steve Ellcey <sellcey@caviumnetworks.com>
+ Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * sysdeps/unix/sysv/linux/aarch64/gettimeofday.c: New file.
+
+2018-06-14 Florian Weimer <fweimer@redhat.com>
+
+ * scripts/update-abilist.sh: Accept empty list of files to patch.
+
+2018-06-13 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * sysdeps/mach/hurd/i386/Makefile (test-xfail-check-abi-libhurduser,
+ test-xfail-check-abi-libmachuser): Add.
+ * sysdeps/mach/hurd/localplt.data (ld.so): Add __open64, rename
+ __libc_read and __libc_write to __read and __write.
+ * sysdeps/hurd/include/hurd/port.h: New file.
+ * mach/mach/mach_traps.h (__mach_reply_port, __mach_thread_self,
+ __mach_task_self, __mach_host_self, __swtch, __swtch_pri,
+ __thread_switch, __evc_wait): Move declarations to...
+ * sysdeps/mach/include/mach/mach_traps.h: ... new file, and add
+ attribute_hidden.
+ * sysdeps/mach/hurd/i386/____longjmp_chk.S (____longjmp_chk): Do not
+ use PLT to call _hurd_self_sigstate.
+
+2018-06-13 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #23279]
+ * stdlib/strtod_l.c (round_and_return): Handle an exponent of
+ MAX_EXP as overflowing.
+ * stdlib/gen-tst-strtod-round.c (string_to_fp): Clear MPFR
+ overflow flag.
+ (round_str): Output also whether result overflows in each rounding
+ mode.
+ * stdlib/tst-strtod-round-data: Add more tests.
+ * stdlib/tst-strtod-round-data.h: Regenerated.
+ * stdlib/tst-strtod-round-skeleton.c (_XNTRY): Update comment.
+ (TEST): Handle extra arguments for overflow flags.
+ (struct test_overflow): New type.
+ [!FE_OVERFLOW] (FE_OVERFLOW): Define to 0.
+ (GEN_ONE_TEST): Clear all exceptions. Test overflow flag.
+ (test_in_one_mode): Take argument with overflow information.
+ (do_test): Update calls to test_in_one_mode.
+
+2018-06-12 Carlos O'Donell <carlos@redhat.com>
+
+ * elf/dl-load (_dl_dst_substitute): Correct comment.
+ (_dl_dst_count): Likewise.
+
+ * nptl/pthread_mutex_timedlock.c (__pthread_mutex_timedlock): Call
+ lll_futex_timed_wait.
+
+2018-06-12 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #23277]
+ * math/bits/mathcalls.h [__USE_ISOC99] (nan): Do not use __const__
+ attribute.
+ * math/test-nan-const.c: New file.
+ * math/Makefile (tests): Add test-nan-const.
+ (CFLAGS-test-nan-const.c): New variable.
+
+2018-06-12 H.J. Lu <hongjiu.lu@intel.com>
+
+ * benchtests/scripts/compare_strings.py (process_results): Add
+ funcs argument. Compare only functions which are selected.
+ (main): Check if base function is among selected functions.
+ Pass selected functions to process_results.
+ (__main__): Add -f/--functions argument.
+
+2018-06-12 Minfeng Kang <minfeng.kang@hxt-semitech.com>
+ Hongbo Zhang <hongbo.zhang@linaro.org>
+
+ * sysdeps/aarch64/multiarch/memcpy.c (libc_ifunc): reuse
+ __memcpy_falkor for phecda core.
+ * sysdeps/aarch64/multiarch/memmove.c (libc_ifunc): reuse
+ __memmove_falkor for phecda core.
+ * sysdeps/aarch64/multiarch/memset.c (libc_ifunc): reuse
+ __memset_falkor for phecda core.
+ * sysdeps/unix/sysv/linux/aarch64/cpu-features.c: add MIDR entry
+ for phecda core.
+ * sysdeps/unix/sysv/linux/aarch64/cpu-features.h (IS_PHECDA): add
+ macro to identify phecda core.
+
+2018-06-12 Carlos O'Donell <carlos@redhat.com>
+ Andreas Schwab <schwab@suse.de>
+ Dmitry V. Levin <ldv@altlinux.org>
+ Florian Weimer <fweimer@redhat.com>
+
+ [BZ #23102]
+ [BZ #21942]
+ [BZ #18018]
+ [BZ #23259]
+ CVE-2011-0536
+ * elf/dl-dst.h: Remove DL_DST_COUNT.
+ * elf/dl-deps.c (expand_dst): Call _dl_dst_count.
+ * elf/dl-load.c (is_trusted_path_normalize): Don't handle colons.
+ (is_dst): Comment. Support ELF gABI.
+ (_dl_dst_count): Comment. Simplify and count DSTs.
+ (_dl_dst_substitute): Comment. Support __libc_enable_secure handling.
+ (expand_dybamic_string_token): Comment. Call _dl_dst_count. Rename
+ locals.
+
+2018-06-12 Zack Weinberg <zackw@panix.com>
+
+ * elf/dl-load.c, elf/dl-misc.c, elf/dl-profile.c, elf/rtld.c
+ * sysdeps/unix/sysv/linux/dl-sysdep.c
+ Include not-cancel.h. Use __close_nocancel instead of __close,
+ __open64_nocancel instead of __open, __read_nocancel instead of
+ __libc_read, and __write_nocancel instead of __libc_write.
+
+ * csu/check_fds.c (check_one_fd)
+ * sysdeps/posix/fdopendir.c (__fdopendir)
+ * sysdeps/posix/opendir.c (__alloc_dir): Use __fcntl_nocancel
+ instead of __fcntl and/or __libc_fcntl.
+
+ * sysdeps/unix/sysv/linux/pthread_setname.c (pthread_setname_np)
+ * sysdeps/unix/sysv/linux/pthread_getname.c (pthread_getname_np)
+ * sysdeps/unix/sysv/linux/i386/smp.h (is_smp_system):
+ Use __open64_nocancel instead of __open_nocancel.
+
+ * sysdeps/unix/sysv/linux/not-cancel.h: Move all of the
+ hidden_proto declarations to the end and issue them if either
+ IS_IN(libc) or IS_IN(rtld).
+ * sysdeps/unix/sysv/linux/Makefile [subdir=io] (sysdep_routines):
+ Add close_nocancel, fcntl_nocancel, nanosleep_nocancel,
+ open_nocancel, open64_nocancel, openat_nocancel, pause_nocancel,
+ read_nocancel, waitpid_nocancel, write_nocancel.
+
+ * io/Versions [GLIBC_PRIVATE]: Add __libc_fcntl,
+ __fcntl_nocancel, __open64_nocancel, __write_nocancel.
+ * posix/Versions: Add __nanosleep_nocancel, __pause_nocancel.
+
+ * nptl/pt-fcntl.c: New file.
+ * nptl/Makefile (pthread-compat-wrappers): Remove fcntl.
+ (libpthread-routines): Add pt-fcntl.
+ * include/fcntl.h (__fcntl_nocancel_adjusted): New function.
+ (__libc_fcntl): Remove attribute_hidden.
+ * sysdeps/unix/sysv/linux/fcntl.c (__libc_fcntl): Call
+ __fcntl_nocancel_adjusted, not fcntl_common.
+ (__fcntl_nocancel): Move to new file fcntl_nocancel.c.
+ (fcntl_common): Rename to __fcntl_nocancel_adjusted; also move
+ to fcntl_nocancel.c.
+ * sysdeps/unix/sysv/linux/fcntl_nocancel.c: New file.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/fcntl.c: Remove file.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h:
+ Define FCNTL_ADJUST_CMD here, as a self-contained macro.
+
+ * sysdeps/unix/sysv/linux/close.c: Move __close_nocancel to...
+ * sysdeps/unix/sysv/linux/close_nocancel.c: ...this new file.
+ * sysdeps/unix/sysv/linux/nanosleep.c: Move __nanosleep_nocancel to...
+ * sysdeps/unix/sysv/linux/nanosleep_nocancel.c: ...this new file.
+ * sysdeps/unix/sysv/linux/open.c: Move __open_nocancel to...
+ * sysdeps/unix/sysv/linux/open_nocancel.c: ...this new file.
+ * sysdeps/unix/sysv/linux/open64.c: Move __open64_nocancel to...
+ * sysdeps/unix/sysv/linux/open64_nocancel.c: ...this new file.
+ * sysdeps/unix/sysv/linux/openat.c: Move __openat_nocancel to...
+ * sysdeps/unix/sysv/linux/openat_nocancel.c: ...this new file.
+ * sysdeps/unix/sysv/linux/openat64.c: Move __openat64_nocancel to...
+ * sysdeps/unix/sysv/linux/openat64_nocancel.c: ...this new file.
+ * sysdeps/unix/sysv/linux/pause.c: Move __pause_nocancel to...
+ * sysdeps/unix/sysv/linux/pause_nocancel.c: ...this new file.
+ * sysdeps/unix/sysv/linux/read.c: Move __read_nocancel to...
+ * sysdeps/unix/sysv/linux/read_nocancel.c: ...this new file.
+ * sysdeps/unix/sysv/linux/waitpid.c: Move __waitpid_nocancel to...
+ * sysdeps/unix/sysv/linux/waitpid_nocancel.c: ...this new file.
+ * sysdeps/unix/sysv/linux/write.c: Move __write_nocancel to...
+ * sysdeps/unix/sysv/linux/write_nocancel.c: ...this new file.
+
+ * sysdeps/unix/sysv/linux/nios2/Makefile: Don't override
+ libpthread-routines.
+ * sysdeps/unix/sysv/linux/nios2/pt-vfork.S: New file which
+ defines nothing.
+
+ * sysdeps/mach/hurd/dl-sysdep.c: Define __read instead of
+ __libc_read, and __write instead of __libc_write. Define
+ __open64 in addition to __open.
+
+2018-06-12 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #23250]
+ [BZ #10686]
+ * sysdeps/i386/nptl/tls.h (tcbhead_t): Change __private_tm[4]
+ to _private_tm[3] and add __glibc_reserved2.
+ Add _Static_assert of offset of __private_ss == 0x30.
+ * sysdeps/x86_64/nptl/tls.h: Add _Static_assert of offset of
+ __private_ss == 0x40 for ILP32 and == 0x70 for LP64.
+
+2018-06-12 Florian Weimer <fweimer@redhat.com>
+
+ x86: Make strncmp usable from rtld.
+ * sysdeps/i386/i686/multiarch/strncmp-c.c: Only rename strncmp to
+ __strncmp_ia32 if in libc (and not in rtld).
+ * sysdeps/x86_64/multiarch/strncmp-sse2.S: Rename strcmp to
+ strncmp if not in libc (and not to __strncmp_sse2).
+
+2018-06-12 Rafał Lużyński <digitalfreak@lingonborough.com>
+
+ [BZ #23140]
+ * localedata/locales/gd_GB (mon): Rename to...
+ (alt_mon): This.
+ (mon): Import from CLDR (genitive case).
+ * localedata/locales/hsb_DE (mon): Rename to...
+ (alt_mon): This.
+ (mon): Import from CLDR (genitive case).
+ * localedata/locales/wa_BE (mon): Rename to...
+ (alt_mon): This.
+ (mon): Add, fill with the proper genitive forms, but CLDR data
+ is incomplete; completed according to the comments in this file.
+ (d_t_fmt): Do not use "di" before the month name, no longer needed.
+
+ * localedata/locales/wa_BE (country_name): Reword
+ "Beljike" -> "Beldjike".
+
+2018-06-11 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #23272]
+ * sysdeps/ieee754/ldbl-96/s_fma.c (__fma): Start by handling all
+ cases of non-finite arguments.
+ * math/libm-test-fma.inc (fma_test_data): Add more tests.
+
+2018-06-10 John David Anglin <danglin@gcc.gnu.org>
+
+ [BZ #23174]
+ * sysdeps/unix/sysv/linux/hppa/Makefile: xfail check-execstack.
+
+2018-06-08 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ [BZ #23264]
+ * include/unistd.h (__execvpex): New prototype.
+ * posix/Makefile (tests): Add tst-spawn4.
+ (tests-internal): Add tst-spawn4-compat.
+ * posix/execvpe.c (__execvpe_common, __execvpex): New functions.
+ * posix/tst-spawn4-compat.c: New file.
+ * posix/tst-spawn4.c: Likewise.
+ * sysdeps/unix/sysv/linux/spawni.c (__spawni): Do not interpret invalid
+ binaries as shell scripts.
+ * sysdeps/posix/spawni.c (__spawni): Likewise.
+
+2018-06-08 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #23145]
+ * elf/Makefile (tests-special): Add $(objpfx)check-initfini.out.
+ ($(all-built-dso:=.dynsym): New target.
+ (common-generated): Add $(all-built-dso:$(common-objpfx)%=%.dynsym).
+ ($(objpfx)check-initfini.out): New target.
+ (generated): Add check-initfini.out.
+ * scripts/check-initfini.awk: New file.
+ * sysdeps/aarch64/crti.S (_init): Mark as hidden.
+ (_fini): Likewise.
+ * sysdeps/alpha/crti.S (_init): Mark as hidden.
+ (_fini): Likewise.
+ * sysdeps/arm/crti.S (_init): Mark as hidden.
+ (_fini): Likewise.
+ * sysdeps/hppa/crti.S (_init): Mark as hidden.
+ (_fini): Likewise.
+ * sysdeps/i386/crti.S (_init): Mark as hidden.
+ (_fini): Likewise.
+ * sysdeps/ia64/crti.S (_init): Mark as hidden.
+ (_fini): Likewise.
+ * sysdeps/m68k/crti.S (_init): Mark as hidden.
+ (_fini): Likewise.
+ * sysdeps/microblaze/crti.S (_init): Mark as hidden.
+ (_fini): Likewise.
+ * sysdeps/mips/mips32/crti.S (_init): Mark as hidden.
+ (_fini): Likewise.
+ * sysdeps/mips/mips64/n32/crti.S (_init): Mark as hidden.
+ (_fini): Likewise.
+ * sysdeps/mips/mips64/n64/crti.S (_init): Mark as hidden.
+ (_fini): Likewise.
+ * sysdeps/nios2/crti.S (_init): Mark as hidden.
+ (_fini): Likewise.
+ * sysdeps/powerpc/powerpc32/crti.S (_init): Mark as hidden.
+ (_fini): Likewise.
+ * sysdeps/powerpc/powerpc64/crti.S (_init): Mark as hidden.
+ (_fini): Likewise.
+ * sysdeps/s390/s390-32/crti.S (_init): Mark as hidden.
+ (_fini): Likewise.
+ * sysdeps/s390/s390-64/crti.S (_init): Mark as hidden.
+ (_fini): Likewise.
+ * sysdeps/sh/crti.S (_init): Mark as hidden.
+ (_fini): Likewise.
+ * sysdeps/sparc/crti.S (_init): Mark as hidden.
+ (_fini): Likewise.
+ * sysdeps/x86_64/crti.S (_init): Mark as hidden.
+ (_fini): Likewise.
+
+2018-06-06 Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
+
+ * sysdeps/powerpc/powerpc64/le/fpu/e_sqrtf128.c
+ [__HAVE_FLOAT128_UNLIKE_LDBL] (TFtype, TF): Restrict TFtype
+ and TF redirection to KFtype and KF only when the default
+ long double type is not the IEEE 128-bit floating point type.
+
+2018-06-05 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/aarch64/bits/hwcap.h (HWCAP_DIT): New
+ macro.
+ (HWCAP_USCAT): Likewise.
+ (HWCAP_ILRCPC): Likewise.
+ (HWCAP_FLAGM): Likewise.
+ * sysdeps/unix/sysv/linux/aarch64/dl-procinfo.c (_DL_HWCAP_COUNT):
+ Increase to 28.
+ (_dl_aarch64_cap_flags): Add new flag names.
+
+ * sysdeps/unix/sysv/linux/aarch64/bits/mman.h [__USE_MISC]
+ (MAP_FIXED_NOREPLACE): New macro.
+ * sysdeps/unix/sysv/linux/alpha/bits/mman.h [__USE_MISC]
+ (MAP_FIXED_NOREPLACE): Likewise.
+ * sysdeps/unix/sysv/linux/arm/bits/mman.h [__USE_MISC]
+ (MAP_FIXED_NOREPLACE): Likewise.
+ * sysdeps/unix/sysv/linux/hppa/bits/mman.h [__USE_MISC]
+ (MAP_FIXED_NOREPLACE): Likewise.
+ * sysdeps/unix/sysv/linux/ia64/bits/mman.h [__USE_MISC]
+ (MAP_FIXED_NOREPLACE): Likewise.
+ * sysdeps/unix/sysv/linux/m68k/bits/mman.h [__USE_MISC]
+ (MAP_FIXED_NOREPLACE): Likewise.
+ * sysdeps/unix/sysv/linux/microblaze/bits/mman.h [__USE_MISC]
+ (MAP_FIXED_NOREPLACE): Likewise.
+ * sysdeps/unix/sysv/linux/mips/bits/mman.h [__USE_MISC]
+ (MAP_FIXED_NOREPLACE): Likewise.
+ * sysdeps/unix/sysv/linux/nios2/bits/mman.h [__USE_MISC]
+ (MAP_FIXED_NOREPLACE): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/bits/mman.h [__USE_MISC]
+ (MAP_FIXED_NOREPLACE): Likewise.
+ * sysdeps/unix/sysv/linux/riscv/bits/mman.h [__USE_MISC]
+ (MAP_FIXED_NOREPLACE): Likewise.
+ * sysdeps/unix/sysv/linux/s390/bits/mman.h [__USE_MISC]
+ (MAP_FIXED_NOREPLACE): Likewise.
+ * sysdeps/unix/sysv/linux/sh/bits/mman.h [__USE_MISC]
+ (MAP_FIXED_NOREPLACE): Likewise.
+ * sysdeps/unix/sysv/linux/sparc/bits/mman.h [__USE_MISC]
+ (MAP_FIXED_NOREPLACE): Likewise.
+ * sysdeps/unix/sysv/linux/x86/bits/mman.h [__USE_MISC]
+ (MAP_FIXED_NOREPLACE): Likewise.
+
+ * sysdeps/unix/sysv/linux/syscall-names.list: Update kernel
+ version to 4.17.
+
+2018-06-04 Joseph Myers <joseph@codesourcery.com>
+
+ * scripts/build-many-glibcs.py (Context.checkout): Default Linux
+ version to 4.17
+
+2018-06-02 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * bits/shm.h (struct shmid_ds): Make shm_segsz field size_t instead of
+ int.
+ * sysdeps/gnu/bits/shm.h (struct shmid_ds): Likewise.
+
+2018-06-01 Leonardo Sandoval <leonardo.sandoval.gonzalez@intel.com>
+
+ * benchtests/scripts/compare_string.py: (process_results) Catch
+ exception in non-existent base_func and catch exception in
+ non-existent attribute.
+ (parse_file) Catch exception if input file does not exist.
+
+2018-06-01 Leonardo Sandoval <leonardo.sandoval.gonzalez@intel.com>
+
+ * benchtests/scripts/compare_string.py: Add --no-diff and --no-header
+ options to avoid diff calculation and omit header, respectively.
+ (main): process --no-diff and --no-header
+
+2018-06-01 Leonardo Sandoval <leonardo.sandoval.gonzalez@intel.com>
+ H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86_64/multiarch/Makefile (sysdep_routines): Add
+ strcmp-avx2, strncmp-avx2, wcscmp-avx2, wcscmp-sse2, wcsncmp-avx2 and
+ wcsncmp-sse2.
+ * sysdeps/x86_64/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Add tests for __strcmp_avx2,
+ __strncmp_avx2, __wcscmp_avx2, __wcsncmp_avx2, __wcscmp_sse2
+ and __wcsncmp_sse2.
+ * sysdeps/x86_64/multiarch/strcmp.c (OPTIMIZE (avx2)):
+ (IFUNC_SELECTOR): Return OPTIMIZE (avx2) on AVX 2 machines if
+ AVX unaligned load is fast and vzeroupper is preferred.
+ * sysdeps/x86_64/multiarch/strncmp.c: Likewise.
+ * sysdeps/x86_64/multiarch/strcmp-avx2.S: New file.
+ * sysdeps/x86_64/multiarch/strncmp-avx2.S: Likewise.
+ * sysdeps/x86_64/multiarch/wcscmp-avx2.S: Likewise.
+ * sysdeps/x86_64/multiarch/wcscmp-sse2.S: Likewise.
+ * sysdeps/x86_64/multiarch/wcscmp.c: Likewise.
+ * sysdeps/x86_64/multiarch/wcsncmp-avx2.S: Likewise.
+ * sysdeps/x86_64/multiarch/wcsncmp-sse2.c: Likewise.
+ * sysdeps/x86_64/multiarch/wcsncmp.c: Likewise.
+ * sysdeps/x86_64/wcscmp.S (__wcscmp): Add alias only if __wcscmp
+ is undefined.
+
+2018-06-01 Florian Weimer <fweimer@redhat.com>
+
+ * sysdeps/i386/fpu/libm-test-ulps: Update with results from
+ configuring with --disable-multi-arch, building with
+ “-march=x86-64 -mtune=generic -mfpmath=sse†and running on a
+ Haswell-era CPU.
+
+2018-06-01 Florian Weimer <fweimer@redhat.com>
+
+ * sysdeps/i386/i686/fpu/multiarch/libm-test-ulps: Update with
+ results from building with “-march=x86-64 -mtune=generic
+ -mfpmath=sse†and running on a Haswell-era CPU.
+
+2018-06-01 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #18473]
+ * soft-fp/sqrttf2.c: Remove file.
+ * soft-fp/sqrtdf2.c: Move to ....
+ * sysdeps/powerpc/nofpu/sqrtdf2.c: ... here. Include
+ <shlib-compat.h>.
+ (__sqrtdf2): Make conditional on
+ [SHLIB_COMPAT (libc, GLIBC_2_3_2, GLIBC_2_28)]. Define as compat
+ symbol.
+ * soft-fp/sqrtsf2.c: Move to ....
+ * sysdeps/powerpc/nofpu/sqrtsf2.c: ... here. Include
+ <shlib-compat.h>.
+ (__sqrtsf2): Make conditional on
+ [SHLIB_COMPAT (libc, GLIBC_2_3_2, GLIBC_2_28)]. Define as compat
+ symbol.
+ * soft-fp/Makefile (gcc-single-routines): Remove sqrtsf2.
+ (gcc-double-routines): Remove sqrtdf2.
+ (gcc-quad-routines): Remove sqrttf2.
+ * sysdeps/nios2/Makefile [$(subdir) = soft-fp] (sysdep_routines):
+ Do not filter out sqrtsf2 and sqrtdf2.
+ * sysdeps/powerpc/nofpu/Makefile [$(subdir) = soft-fp]
+ (sysdep_routines): Add sqrtsf2 and sqrtdf2.
+
+2018-06-01 Florian Weimer <fweimer@redhat.com>
+
+ * sysdeps/generic/libcidn.abilist: Remove file.
+
+2018-06-01 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #23236]
+ * libio/strfile.h (struct _IO_str_fields): Rename members to
+ discourage their use and add comment.
+ (_IO_STR_DYNAMIC): Remove unused macro.
+ * libio/strops.c (_IO_str_init_static_internal): Do not use
+ callback pointers. Call malloc and free.
+ (_IO_str_overflow): Do not use callback pointers. Call malloc
+ and free.
+ (enlarge_userbuf): Likewise.
+ (_IO_str_finish): Call free.
+ * libio/wstrops.c (_IO_wstr_init_static): Initialize
+ _allocate_buffer_unused.
+ (_IO_wstr_overflow): Do not use callback pointers. Call malloc
+ and free.
+ (enlarge_userbuf): Likewise.
+ (_IO_wstr_finish): Call free.
+ * debug/vasprintf_chk.c (__vasprintf_chk): Initialize
+ _allocate_buffer_unused, _free_buffer_unused.
+ * libio/memstream.c (__open_memstream): Likewise.
+ * libio/vasprintf.c (_IO_vasprintf): Likewise.
+ * libio/wmemstream.c (open_wmemstream): Likewise.
+
+2018-05-30 Paul Pluzhnikov <ppluzhnikov@google.com>
+
+ * sysdeps/x86_64/fpu/libm-test-ulps (log_vlen8_avx2): Update for
+ AMD Ryzen 7 1800X.
+
+2018-05-30 Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>
+
+ * sysdeps/powerpc/powerpc64/le/fpu/multiarch/Makefile: New file to
+ add w_sqrtf128-power9 and w_sqrtf128-ppc64le to libm-sysdep_routines.
+ * sysdeps/powerpc/powerpc64/le/fpu/multiarch/w_sqrtf128-power9.c:
+ New file.
+ * sysdeps/powerpc/powerpc64/le/fpu/multiarch/w_sqrtf128-ppc64le.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc64/le/fpu/multiarch/w_sqrtf128.c: Likewise.
+
+2018-05-29 Florian Weimer <fweimer@redhat.com>
+
+ * support/Makefile (libsupport-routines): Add
+ xpthread_barrierattr_destroy, xpthread_barrierattr_init,
+ xpthread_barrierattr_setpshared.
+ * support/xpthread_barrierattr_destroy.c: New file.
+ * support/xpthread_barrierattr_init.c: Likewise.
+ * support/xpthread_barrierattr_setpshared.c: Likewise.
+
+2018-05-29 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #23206]
+ * elf/dl-reloc-static-pie.c (_dl_relocate_static_pie): Initialize
+ _r_debug and update DT_DEBUG for debugger.
+
+2018-05-29 Florian Weimer <fweimer@redhat.com>
+
+ * stdlib/Makefile (tst-strtod1i.out): Depend on generated locales.
+ (tst-strtod5i.out): Likewise.
+
+2018-05-25 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/sparc/sparc64/Implies: Remove sparc/sparc64/soft-fp.
+ * sysdeps/sparc/sparc64/Makefile [$(subdir) = soft-fp]
+ (sparc64-quad-routines): New variable. Moved from ....
+ [$(subdir) = soft-fp] (sysdep_routines): Add
+ $(sparc64-quad-routines). Moved from ....
+ [$(subdir) = math] (CPPFLAGS): Add -I../soft-fp/. Moved from ....
+ * sysdeps/sparc/sparc64/soft-fp/Makefile: ... here. Remove file.
+ * sysdeps/sparc/sparc64/Versions (libc): Add GLIBC_2.2 symbols
+ moved from ....
+ * sysdeps/sparc/sparc64/soft-fp/Versions: ... here. Remove file.
+ * sysdeps/sparc/sparc64/soft-fp/e_ilogbl.c: Remove file.
+ * sysdeps/sparc/sparc64/soft-fp/qp_add.c: Move to ....
+ * sysdeps/sparc/sparc64/qp_add.c: ... here.
+ * sysdeps/sparc/sparc64/soft-fp/qp_cmp.c: Move to ....
+ * sysdeps/sparc/sparc64/qp_cmp.c: ... here.
+ * sysdeps/sparc/sparc64/soft-fp/qp_cmpe.c: Move to ....
+ * sysdeps/sparc/sparc64/qp_cmpe.c: ... here.
+ * sysdeps/sparc/sparc64/soft-fp/qp_div.c: Move to ....
+ * sysdeps/sparc/sparc64/qp_div.c: ... here.
+ * sysdeps/sparc/sparc64/soft-fp/qp_dtoq.c: Move to ....
+ * sysdeps/sparc/sparc64/qp_dtoq.c: ... here.
+ * sysdeps/sparc/sparc64/soft-fp/qp_feq.c: Move to ....
+ * sysdeps/sparc/sparc64/qp_feq.c: ... here.
+ * sysdeps/sparc/sparc64/soft-fp/qp_fge.c: Move to ....
+ * sysdeps/sparc/sparc64/qp_fge.c: ... here.
+ * sysdeps/sparc/sparc64/soft-fp/qp_fgt.c: Move to ....
+ * sysdeps/sparc/sparc64/qp_fgt.c: ... here.
+ * sysdeps/sparc/sparc64/soft-fp/qp_fle.c: Move to ....
+ * sysdeps/sparc/sparc64/qp_fle.c: ... here.
+ * sysdeps/sparc/sparc64/soft-fp/qp_flt.c: Move to ....
+ * sysdeps/sparc/sparc64/qp_flt.c: ... here.
+ * sysdeps/sparc/sparc64/soft-fp/qp_fne.c: Move to ....
+ * sysdeps/sparc/sparc64/qp_fne.c: ... here.
+ * sysdeps/sparc/sparc64/soft-fp/qp_itoq.c: Move to ....
+ * sysdeps/sparc/sparc64/qp_itoq.c: ... here.
+ * sysdeps/sparc/sparc64/soft-fp/qp_mul.c: Move to ....
+ * sysdeps/sparc/sparc64/qp_mul.c: ... here.
+ * sysdeps/sparc/sparc64/soft-fp/qp_neg.S: Move to ....
+ * sysdeps/sparc/sparc64/qp_neg.S: ... here.
+ * sysdeps/sparc/sparc64/soft-fp/qp_qtod.c: Move to ....
+ * sysdeps/sparc/sparc64/qp_qtod.c: ... here.
+ * sysdeps/sparc/sparc64/soft-fp/qp_qtoi.c: Move to ....
+ * sysdeps/sparc/sparc64/qp_qtoi.c: ... here.
+ * sysdeps/sparc/sparc64/soft-fp/qp_qtos.c: Move to ....
+ * sysdeps/sparc/sparc64/qp_qtos.c: ... here.
+ * sysdeps/sparc/sparc64/soft-fp/qp_qtoui.c: Move to ....
+ * sysdeps/sparc/sparc64/qp_qtoui.c: ... here.
+ * sysdeps/sparc/sparc64/soft-fp/qp_qtoux.c: Move to ....
+ * sysdeps/sparc/sparc64/qp_qtoux.c: ... here.
+ * sysdeps/sparc/sparc64/soft-fp/qp_qtox.c: Move to ....
+ * sysdeps/sparc/sparc64/qp_qtox.c: ... here.
+ * sysdeps/sparc/sparc64/soft-fp/qp_sqrt.c: Move to ....
+ * sysdeps/sparc/sparc64/qp_sqrt.c: ... here.
+ * sysdeps/sparc/sparc64/soft-fp/qp_stoq.c: Move to ....
+ * sysdeps/sparc/sparc64/qp_stoq.c: ... here.
+ * sysdeps/sparc/sparc64/soft-fp/qp_sub.c: Move to ....
+ * sysdeps/sparc/sparc64/qp_sub.c: ... here.
+ * sysdeps/sparc/sparc64/soft-fp/qp_uitoq.c: Move to ....
+ * sysdeps/sparc/sparc64/qp_uitoq.c: ... here.
+ * sysdeps/sparc/sparc64/soft-fp/qp_util.c: Move to ....
+ * sysdeps/sparc/sparc64/qp_util.c: ... here.
+ * sysdeps/sparc/sparc64/soft-fp/qp_uxtoq.c: Move to ....
+ * sysdeps/sparc/sparc64/qp_uxtoq.c: ... here.
+ * sysdeps/sparc/sparc64/soft-fp/qp_xtoq.c: Move to ....
+ * sysdeps/sparc/sparc64/qp_xtoq.c: ... here.
+ * sysdeps/sparc/sparc64/soft-fp/sfp-machine.h: Move to ....
+ * sysdeps/sparc/sparc64/sfp-machine.h: ... here.
+
+ * sysdeps/sparc/sparc32/Implies: Remove sparc/sparc32/soft-fp.
+ * sysdeps/sparc/sparc32/Makefile [$(subdir) = soft-fp]
+ (sparc32-quad-routines): New variable. Moved from ....
+ [$(subdir) = soft-fp] (sysdep_routines): Add
+ $(sparc32-quad-routines). Moved from ....
+ * sysdeps/sparc/sparc32/soft-fp/Makefile: ... here. Remove file.
+ * sysdeps/sparc/sparc32/Versions (libc): Add GLIBC_2.4 symbols
+ moved from ....
+ * sysdeps/sparc/sparc32/soft-fp/Versions: ... here. Remove file.
+ * sysdeps/sparc/sparc32/soft-fp/q_add.c: Move to ....
+ * sysdeps/sparc/sparc32/q_add.c: ... here.
+ * sysdeps/sparc/sparc32/soft-fp/q_cmp.c: Move to ....
+ * sysdeps/sparc/sparc32/q_cmp.c: ... here.
+ * sysdeps/sparc/sparc32/soft-fp/q_cmpe.c: Move to ....
+ * sysdeps/sparc/sparc32/q_cmpe.c: ... here.
+ * sysdeps/sparc/sparc32/soft-fp/q_div.c: Move to ....
+ * sysdeps/sparc/sparc32/q_div.c: ... here.
+ * sysdeps/sparc/sparc32/soft-fp/q_dtoq.c: Move to ....
+ * sysdeps/sparc/sparc32/q_dtoq.c: ... here.
+ * sysdeps/sparc/sparc32/soft-fp/q_feq.c: Move to ....
+ * sysdeps/sparc/sparc32/q_feq.c: ... here.
+ * sysdeps/sparc/sparc32/soft-fp/q_fge.c: Move to ....
+ * sysdeps/sparc/sparc32/q_fge.c: ... here.
+ * sysdeps/sparc/sparc32/soft-fp/q_fgt.c: Move to ....
+ * sysdeps/sparc/sparc32/q_fgt.c: ... here.
+ * sysdeps/sparc/sparc32/soft-fp/q_fle.c: Move to ....
+ * sysdeps/sparc/sparc32/q_fle.c: ... here.
+ * sysdeps/sparc/sparc32/soft-fp/q_flt.c: Move to ....
+ * sysdeps/sparc/sparc32/q_flt.c: ... here.
+ * sysdeps/sparc/sparc32/soft-fp/q_fne.c: Move to ....
+ * sysdeps/sparc/sparc32/q_fne.c: ... here.
+ * sysdeps/sparc/sparc32/soft-fp/q_itoq.c: Move to ....
+ * sysdeps/sparc/sparc32/q_itoq.c: ... here.
+ * sysdeps/sparc/sparc32/soft-fp/q_lltoq.c: Move to ....
+ * sysdeps/sparc/sparc32/q_lltoq.c: ... here.
+ * sysdeps/sparc/sparc32/soft-fp/q_mul.c: Move to ....
+ * sysdeps/sparc/sparc32/q_mul.c: ... here.
+ * sysdeps/sparc/sparc32/soft-fp/q_neg.c: Move to ....
+ * sysdeps/sparc/sparc32/q_neg.c: ... here.
+ * sysdeps/sparc/sparc32/soft-fp/q_qtod.c: Move to ....
+ * sysdeps/sparc/sparc32/q_qtod.c: ... here.
+ * sysdeps/sparc/sparc32/soft-fp/q_qtoi.c: Move to ....
+ * sysdeps/sparc/sparc32/q_qtoi.c: ... here.
+ * sysdeps/sparc/sparc32/soft-fp/q_qtoll.c: Move to ....
+ * sysdeps/sparc/sparc32/q_qtoll.c: ... here.
+ * sysdeps/sparc/sparc32/soft-fp/q_qtos.c: Move to ....
+ * sysdeps/sparc/sparc32/q_qtos.c: ... here.
+ * sysdeps/sparc/sparc32/soft-fp/q_qtou.c: Move to ....
+ * sysdeps/sparc/sparc32/q_qtou.c: ... here.
+ * sysdeps/sparc/sparc32/soft-fp/q_qtoull.c: Move to ....
+ * sysdeps/sparc/sparc32/q_qtoull.c: ... here.
+ * sysdeps/sparc/sparc32/soft-fp/q_sqrt.c: Move to ....
+ * sysdeps/sparc/sparc32/q_sqrt.c: ... here.
+ * sysdeps/sparc/sparc32/soft-fp/q_stoq.c: Move to ....
+ * sysdeps/sparc/sparc32/q_stoq.c: ... here.
+ * sysdeps/sparc/sparc32/soft-fp/q_sub.c: Move to ....
+ * sysdeps/sparc/sparc32/q_sub.c: ... here.
+ * sysdeps/sparc/sparc32/soft-fp/q_ulltoq.c: Move to ....
+ * sysdeps/sparc/sparc32/q_ulltoq.c: ... here.
+ * sysdeps/sparc/sparc32/soft-fp/q_util.c: Move to ....
+ * sysdeps/sparc/sparc32/q_util.c: ... here.
+ * sysdeps/sparc/sparc32/soft-fp/q_utoq.c: Move to ....
+ * sysdeps/sparc/sparc32/q_utoq.c: ... here.
+ * sysdeps/sparc/sparc32/soft-fp/sfp-machine.h: Move to ....
+ * sysdeps/sparc/sparc32/sfp-machine.h: ... here.
+
+2018-05-24 Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
+ Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
+
+ * sysdeps/powerpc/Implies: Removed. Previous contents copied to...
+ * sysdeps/powerpc/powerpc32/Implies-after: ... here.
+ * sysdeps/powerpc/powerpc64/be/Implies-after: ... here.
+ * sysdeps/powerpc/powerpc64/le/Implies-before: ... and here.
+
+2018-05-24 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/Implies: Remove
+ powerpc/soft-fp.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nofpu/Implies:
+ Likewise.
+ * sysdeps/powerpc/soft-fp/sfp-machine.h: Move to ....
+ * sysdeps/powerpc/nofpu/sfp-machine.h: ... here.
+
+2018-05-24 Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
+
+ [BZ #23171]
+ * math/math.h [C++] (iseqsig): Fix parameter type for the long
+ double version.
+
+2018-05-23 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/sh/Implies: Remove sh/soft-fp.
+ * sysdeps/sh/soft-fp/sfp-machine.h: Move to ....
+ * sysdeps/sh/sfp-machine.h: ... here.
+
+2018-05-23 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S
+ (__mempcpy_erms): Skip zero length.
+ (__memmove_erms): Likewise.
+ * sysdeps/x86_64/multiarch/memset-vec-unaligned-erms.S
+ (__memset_erms): Likewise.
+
+2018-05-23 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/alpha/Implies: Remove alpha/soft-fp.
+ * sysdeps/alpha/Makefile [$(subdir) = soft-fp] (sysdep_routines):
+ Add functions moved from ....
+ [$(subdir) = math] (CPPFLAGS): Add -I../soft-fp. Moved from ....
+ * sysdeps/alpha/soft-fp/Makefile: ... here. Remove file.
+ * sysdeps/alpha/Versions (libc): Add GLIBC_2.3.4 symbols moved
+ from ....
+ * sysdeps/alpha/soft-fp/Versions: ... here. Remove file.
+ * sysdeps/alpha/soft-fp/e_sqrtl.c: Move to ....
+ * sysdeps/alpha/e_sqrtl.c: ... here.
+ * sysdeps/alpha/soft-fp/local-soft-fp.h: Move to ....
+ * sysdeps/alpha/local-soft-fp.h: ... here.
+ * sysdeps/alpha/soft-fp/ots_add.c: Move to ....
+ * sysdeps/alpha/ots_add.c: ... here.
+ * sysdeps/alpha/soft-fp/ots_cmp.c: Move to ....
+ * sysdeps/alpha/ots_cmp.c: ... here.
+ * sysdeps/alpha/soft-fp/ots_cmpe.c: Move to ....
+ * sysdeps/alpha/ots_cmpe.c: ... here.
+ * sysdeps/alpha/soft-fp/ots_cvtqux.c: Move to ....
+ * sysdeps/alpha/ots_cvtqux.c: ... here.
+ * sysdeps/alpha/soft-fp/ots_cvtqx.c: Move to ....
+ * sysdeps/alpha/ots_cvtqx.c: ... here.
+ * sysdeps/alpha/soft-fp/ots_cvttx.c: Move to ....
+ * sysdeps/alpha/ots_cvttx.c: ... here.
+ * sysdeps/alpha/soft-fp/ots_cvtxq.c: Move to ....
+ * sysdeps/alpha/ots_cvtxq.c: ... here.
+ * sysdeps/alpha/soft-fp/ots_cvtxt.c: Move to ....
+ * sysdeps/alpha/ots_cvtxt.c: ... here.
+ * sysdeps/alpha/soft-fp/ots_div.c: Move to ....
+ * sysdeps/alpha/ots_div.c: ... here.
+ * sysdeps/alpha/soft-fp/ots_mul.c: Move to ....
+ * sysdeps/alpha/ots_mul.c: ... here.
+ * sysdeps/alpha/soft-fp/ots_nintxq.c: Move to ....
+ * sysdeps/alpha/ots_nintxq.c: ... here.
+ * sysdeps/alpha/soft-fp/ots_sub.c: Move to ....
+ * sysdeps/alpha/ots_sub.c: ... here.
+ * sysdeps/alpha/soft-fp/sfp-machine.h: Move to ....
+ * sysdeps/alpha/sfp-machine.h: ... here.
+
+2018-05-23 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #19728]
+ [BZ #19729]
+ [BZ #22247]
+ CVE-2016-6261
+ CVE-2016-6263
+ CVE-2017-14062
+ Switch to extern IDNA implementation (libidn2).
+ * libidn: Remove subdirectory.
+ * LICENSES: Do not mention licensing conditions for the removed
+ libidn code.
+ * config.h.in (HAVE_LIBIDN): Remove.
+ * include/dlfcn.h (__libc_dlopen): Update comment.
+ * include/idna.h: Remove file.
+ * inet/Makefile (routines): Add idna.
+ (tests-static, tests-internal): Add tst-idna_name_classify.
+ (LOCALES): Generate locales for tests.
+ (tst-idna_name_classify.out): Depend on generated locales.
+ * inet/idna_name_classify.c: New file.
+ * inet/tst-idna_name_classify.c: Likewise.
+ * inet/net-internal.h (__idna_to_dns_encoding)
+ (__idna_from_dns_encoding): Declare.
+ * inet/net-internal.h (enum idna_name_classification): Define.
+ (__idna_name_classify): Declare.
+ * inet/Versions (GLIBC_PRIVATE): Add __idna_to_dns_encoding,
+ __idna_from_dns_encoding.
+ * inet/getnameinfo.c (DEPRECATED_NI_IDN): Define.
+ (gni_host_inet_name): Call __idna_from_dns_encoding. Use punycode
+ name as a fallback in case of encoding errors.
+ (getnameinfo): Use DEPRECATED_NI_IDN.
+ * inet/idna.c: New file.
+ * nscd/gai.c: Do not include <libidn/idn-stub.c>.
+ * resolv/Makefile (tests): Add tst-resolv-ai_idn,
+ tst-resolv-ai_idn-latin1, tst-resolv-ai_idn-nolibidn2.
+ (modules-names): Add tst-no-libidn2.
+ (extra-test-objs): Add tst-no-libidn2.os.
+ (LDFLAGS-tst-no-libidn2.so): Set soname.
+ (LOCALES): Set, and generate locales.
+ (tst-resolv-ai_idn): Link with -ldl -lresolv -lpthread.
+ (tst-resolv-ai_idn-latin1): Likewise.
+ (tst-resolv-ai_idn-nolibidn2): Likewise.
+ (tst-resolv-ai_idn.out): Depend on locales.
+ (tst-resolv-ai_idn-latin1.out): Depend on locales.
+ (tst-resolv-ai_idn-nolibidn2.out): Depend on locales and
+ tst-no-libidn2.so.
+ * resolv/netdb.h (AI_IDN_ALLOW_UNASSIGNED)
+ (AI_IDN_USE_STD3_ASCII_RULES, NI_IDN_ALLOW_UNASSIGNED)
+ (NI_IDN_USE_STD3_ASCII_RULES): Deprecate.
+ * resolv/tst-resolv-ai_idn.c: New file.
+ * resolv/tst-resolv-ai_idn-latin1.c: Likewise.
+ * resolv/tst-resolv-ai_idn-nolibidn2.c: Likewise.
+ * resolv/tst-no-libidn2.c: Likewise.
+ * support/support_format_addrinfo.c (format_ai_flags): Do not
+ handle AI_IDN_ALLOW_UNASSIGNED, AI_IDN_USE_STD3_ASCII_RULES.
+ * sysdeps/posix/getaddrinfo.c (DEPRECATED_AI_IDN): Define.
+ (gaih_inet): Call __idna_to_dns_encoding and
+ __idna_from_dns_encoding, and use the original (punycode) name if
+ __idna_from_dns_encoding fails due to an encoding error.
+ (getaddrinfo): Use DEPRECATED_AI_IDN.
+ * sysdeps/unix/inet/Subdirs (libidn): Remove.
+ * sysdeps/unix/inet/configure: Remove file.
+ * sysdeps/unix/inet/configure.ac: Likewise.
+
+2018-05-23 Florian Weimer <fweimer@redhat.com>
+
+ Implement allocate_once.
+ * include/allocate_once.h: New file.
+ * misc/allocate_once.c: Likewise.
+ * misc/tst-allocate_once.c: Likewise.
+ * misc/Makefile (routines): Add allocate_once.
+ (tests-internal): Add tst-allocate_once.
+ (generated): Add tst-allocate_once.mtrace,
+ tst-allocate_once-mem.out.
+ (tests-special): Add tst-allocate_once-mem.out.
+ (tst-allocate_once-ENV): Set MALLOC_TRACE.
+ (tst-allocate_once-mem.out): Call mtrace.
+ * misc/Versions (GLIBC_PRIVATE): Add __libc_allocate_once_slow.
+
+2018-05-23 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #23196]
+ * string/test-memcpy.c (do_test1): New function.
+ (test_main): Call it.
+
+2018-05-23 Andreas Schwab <schwab@suse.de>
+
+ [BZ #23196]
+ CVE-2018-11237
+ * sysdeps/x86_64/multiarch/memmove-avx512-no-vzeroupper.S
+ (L(preloop_large)): Save initial destination pointer in %r11 and
+ use it instead of %rax after the loop.
+ * string/test-mempcpy.c (MIN_PAGE_SIZE): Define.
+
+2018-05-22 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/aarch64/Implies: Remove aarch64/soft-fp.
+ * sysdeps/aarch64/Makefile [$(subdir) = math] (CPPFLAGS): Add
+ -I../soft-fp. Moved from ....
+ * sysdeps/aarch64/soft-fp/Makefile: ... here. Remove file.
+ * sysdeps/aarch64/soft-fp/e_sqrtl.c: Move to ....
+ * sysdeps/aarch64/e_sqrtl.c: ... here.
+ * sysdeps/aarch64/soft-fp/sfp-machine.h: Move to ....
+ * sysdeps/aarch64/sfp-machine.h: ... here.
+
+ * sysdeps/ieee754/dbl-64/k_rem_pio2.c (__kernel_rem_pio2): Ignore
+ -Wmaybe-uninitialized around access to fq[0].
+ * sysdeps/ieee754/flt-32/k_rem_pio2f.c (__kernel_rem_pio2f):
+ Likewise.
+
+ [BZ #18471]
+ * sysdeps/unix/make-syscalls.sh (emit_weak_aliases): Use weak
+ aliases for non-libc case of versioned symbols.
+ * sysdeps/unix/sysv/linux/lseek64.c: Include <shlib-compat.h>.
+ (llseek): Define as compat symbol if
+ [SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_28)], not as weak alias
+ with link warning.
+ * sysdeps/unix/sysv/linux/mips/mips64/n32/syscalls.list (llseek):
+ Make into a compat symbol, disabled for minimum symbol version
+ GLIBC_2.28 and later.
+ * sysdeps/unix/sysv/linux/x86_64/x32/llseek.S: Remove file.
+
+2018-05-22 Florian Weimer <fweimer@redhat.com>
+
+ * sysdeps/i386/Makefile [$(subdir) == math] (sysdep-CFLAGS): Do
+ not add -mpreferred-stack-boundary=4.
+ [$(subdir) == csu] (sysdep-CFLAGS): Likewise.
+ (stack-align-test-flags): Likewise.
+ [$(subdir) == stdlib] (CFLAGS-exit.c, CFLAGS-cxa_finalize.c):
+ Likewise.
+ [$(subdir) == elf] (CFLAGS-dl-init.c, CFLAGS-dl-fini.c)
+ (CFLAGS-dl-open.c, CFLAGS-dl-close.c, CFLAGS-dl-error.c): Likewise.
+ [$(subdir) == dlfcn] (CFLAGS-dlopen.c, CFLAGS-dlopenold.c)
+ (CFLAGS-dlclose.c, CFLAGS-dlerror.c): Likewise.
+ * sysdeps/i386/nptl/Makefile [$(subdir) == nptl]
+ (CFLAGS-pthread_create.c, CFLAGS-tst-align.c)
+ (CFLAGS-tst-align2.c): Likewise.
+
+2018-05-21 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86/cpu-features.h (bit_arch_Prefer_FSRM): New.
+ (index_arch_Prefer_FSRM): Likewise.
+ * sysdeps/x86/cpu-tunables.c (TUNABLE_CALLBACK (set_hwcaps)):
+ Also check Prefer_FSRM.
+ * sysdeps/x86_64/multiarch/ifunc-memmove.h (IFUNC_SELECTOR):
+ Also return OPTIMIZE (erms) for Prefer_FSRM.
+
+2018-05-21 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86/cpu-features.h (bit_cpu_FSRM): New.
+ (index_cpu_FSRM): Likewise.
+ (reg_FSRM): Likewise.
+
+2018-05-18 Joseph Myers <joseph@codesourcery.com>
+
+ * math/gen-tgmath-tests.py: Import sys.
+ (Tests.__init__): Initialize macros_seen.
+ (Tests.add_tests): Add macro to macros_seen. Only generate tests
+ if requested to do so for this macro.
+ (Tests.add_all_tests): Take argument for macro for which to
+ generate tests.
+ (Tests.check_macro_list): New function.
+ (main): Handle check-list argument and argument specifying macro
+ for which to generate tests.
+ * math/Makefile [PYTHON] (tgmath3-macros): New variable.
+ [PYTHON] (tgmath3-macro-tests): Likewise.
+ [PYTHON] (tests): Add $(tgmath3-macro-tests) not test-tgmath3.
+ [PYTHON] (generated): Add $(addsuffix .c,$(tgmath3-macro-tests))
+ not test-tgmath3.c.
+ [PYTHON] (CFLAGS-test-tgmath3.c): Remove.
+ [PYTHON] ($(tgmath3-macro-tests:%=$(objpfx)%.o): Add -fno-builtin
+ to CFLAGS.
+ [PYTHON] ($(objpfx)test-tgmath3.c): Replace rule by....
+ [PYTHON] ($(foreach
+ m,$(tgmath3-macros),$(objpfx)test-tgmath3-$(m).c): ... this. New
+ rule.
+ [PYTHON] (tests-special): Add
+ $(objpfx)test-tgmath3-macro-list.out.
+ [PYTHON] ($(objpfx)test-tgmath3-macro-list.out): New rule.
+
+ * sysdeps/unix/sysv/linux/syscalls.list (nfsservctl): Make into a
+ compat symbol, disabled for minimum symbol version GLIBC_2.28 and
+ later.
+
+ [BZ #22639]
+ * time/tzset.c (SECSPERDAY): Cast to time_t.
+ * time/tst-y2039.c: New file.
+ * time/Makefile (tests): Add tst-y2039.
+
+2018-05-17 Leonardo Sandoval <leonardo.sandoval.gonzalez@intel.com>
+
+ * sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S
+ (PREFETCH_ONE_SET): Remove duplicate line.
+
+2018-05-17 Florian Weimer <fweimer@redhat.com>
+
+ * sysdeps/generic/math-type-macros-double.h: Include
+ <math-nan-payload-double.h> after <libm-alias-double.h>.
+ * sysdeps/generic/math-type-macros-float.h: Include
+ <math-nan-payload-float.h> after <libm-alias-float.h>.
+ * sysdeps/generic/math-type-macros-float128.h: Include
+ <math-nan-payload-float128.h> after <libm-alias-float128.h>.
+ * sysdeps/generic/math-type-macros-ldouble.h: Include
+ <math-nan-payload-ldouble.h> after <libm-alias-ldouble.h>.
+
+2018-05-17 Andreas Schwab <schwab@suse.de>
+
+ * resolv/res_send.c (__res_context_send): Don't set errno when
+ returing error after malloc failure.
+
+2018-05-17 H.J. Lu <hongjiu.lu@intel.com>
+
+ * nptl/allocatestack.c (allocate_stack): Remove the
+ !__ASSUME_PRIVATE_FUTEX paths.
+ * nptl/descr.h (header): Remove the !__ASSUME_PRIVATE_FUTEX path.
+ * nptl/nptl-init.c (__pthread_initialize_minimal_internal):
+ Likewise.
+ * sysdeps/i386/nptl/tcb-offsets.sym (PRIVATE_FUTEX): Removed.
+ * sysdeps/powerpc/nptl/tcb-offsets.sym (PRIVATE_FUTEX): Likewise.
+ * sysdeps/sh/nptl/tcb-offsets.sym (PRIVATE_FUTEX): Likewise.
+ * sysdeps/x86_64/nptl/tcb-offsets.sym (PRIVATE_FUTEX): Likewise.
+ * sysdeps/i386/nptl/tls.h: (tcbhead_t): Remve the
+ !__ASSUME_PRIVATE_FUTEX path.
+ * sysdeps/s390/nptl/tls.h (tcbhead_t): Likewise.
+ * sysdeps/sparc/nptl/tls.h (tcbhead_t): Likewise.
+ * sysdeps/x86_64/nptl/tls.h (tcbhead_t): Likewise.
+ * sysdeps/unix/sysv/linux/i386/lowlevellock.S: Remove the
+ !__ASSUME_PRIVATE_FUTEX macros.
+ * sysdeps/unix/sysv/linux/lowlevellock-futex.h: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/cancellation.S: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
+ * sysdeps/unix/sysv/linux/kernel-features.h
+ (__ASSUME_PRIVATE_FUTEX): Removed.
+
+2018-05-17 Joseph Myers <joseph@codesourcery.com>
+
+ * math/Makefile (libm-narrow-fns): Add div.
+ (libm-test-funcs-narrow): Likewise.
+ * math/Versions (GLIBC_2.28): Add narrowing divide functions.
+ * math/bits/mathcalls-narrow.h (div): Use __MATHCALL_NARROW.
+ * math/gen-auto-libm-tests.c (test_functions): Add div.
+ * math/math-narrow.h (CHECK_NARROW_DIV): New macro.
+ (NARROW_DIV_ROUND_TO_ODD): Likewise.
+ (NARROW_DIV_TRIVIAL): Likewise.
+ * sysdeps/ieee754/float128/float128_private.h (__fdivl): New
+ macro.
+ (__ddivl): Likewise.
+ * sysdeps/ieee754/ldbl-opt/Makefile (libnldbl-calls): Add fdiv and
+ ddiv.
+ (CFLAGS-nldbl-ddiv.c): New variable.
+ (CFLAGS-nldbl-fdiv.c): Likewise.
+ * sysdeps/ieee754/ldbl-opt/Versions (GLIBC_2.28): Add
+ __nldbl_ddivl.
+ * sysdeps/ieee754/ldbl-opt/nldbl-compat.h (__nldbl_ddivl): New
+ prototype.
+ * manual/arith.texi (Misc FP Arithmetic): Document fdiv, fdivl,
+ ddivl, fMdivfN, fMdivfNx, fMxdivfN and fMxdivfNx.
+ * math/auto-libm-test-in: Add tests of div.
+ * math/auto-libm-test-out-narrow-div: New generated file.
+ * math/libm-test-narrow-div.inc: New file.
+ * sysdeps/i386/fpu/s_f32xdivf64.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_f32xdivf64.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_fdiv.c: Likewise.
+ * sysdeps/ieee754/float128/s_f32divf128.c: Likewise.
+ * sysdeps/ieee754/float128/s_f64divf128.c: Likewise.
+ * sysdeps/ieee754/float128/s_f64xdivf128.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/s_ddivl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/s_f64xdivf128.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/s_fdivl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_ddivl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_fdivl.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/s_ddivl.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/s_fdivl.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/nldbl-ddiv.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/nldbl-fdiv.c: Likewise.
+ * sysdeps/ieee754/soft-fp/s_ddivl.c: Likewise.
+ * sysdeps/ieee754/soft-fp/s_fdiv.c: Likewise.
+ * sysdeps/ieee754/soft-fp/s_fdivl.c: Likewise.
+ * sysdeps/powerpc/fpu/libm-test-ulps: Update.
+ * sysdeps/mach/hurd/i386/libm.abilist: Likewise.
+ * 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/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/libm-le.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/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.
+
+2018-05-16 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ [BZ #23178]
+ * nscd/nscd-client.h (sendfileall): Remove prototype.
+ * nscd/connections.c [HAVE_SENDFILE] (sendfileall): Remove function.
+ (handle_request): Use writeall instead of sendfileall.
+ * nscd/aicache.c (addhstaiX): Likewise.
+ * nscd/grpcache.c (cache_addgr): Likewise.
+ * nscd/hstcache.c (cache_addhst): Likewise.
+ * nscd/initgrcache.c (addinitgroupsX): Likewise.
+ * nscd/netgroupcache.c (addgetnetgrentX, addinnetgrX): Likewise.
+ * nscd/pwdcache.c (cache_addpw): Likewise.
+ * nscd/servicescache.c (cache_addserv): Likewise.
+ * sysdeps/unix/sysv/linux/Makefile [$(subdir) == nscd]
+ (sysdep-CFLAGS): Remove -DHAVE_SENDFILE.
+ * sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_SENDFILE):
+ Remove define.
+
+2018-05-16 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86_64/multiarch/strncat-c.c (STRNCAT_PRIMARY): Removed.
+ Include <string/strncat.c>.
+ * sysdeps/x86_64/multiarch/strncat.c (__strncat): New strong
+ alias.
+ (__GI___strncat): New hidden alias.
+
+2018-05-16 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/mips/mips32/libm-test-ulps: Update.
+ * sysdeps/mips/mips64/libm-test-ulps: Likewise.
+
+2018-05-16 Florian Weimer <fweimer@redhat.com>
+
+ * support/Makefile (libsupport-routines): Add support_quote_blob,
+ support_test_compare_blob.
+ (tests): Add tst-support_quote_blob, tst-test_compare_blob.
+ * support/check.h (TEST_COMPARE_BLOB): Define.
+ (support_test_compare_blob): Declare.
+ * support/support.h (support_quote_blob): Declare.
+ * support/support_quote_blob.c: New file.
+ * support/support_test_compare_blob.c: Likewise.
+ * support/tst-support_quote_blob.c: Likewise.
+ * support/tst-test_compare_blob.c: Likewise.
+
+2018-05-16 Florian Weimer <fweimer@redhat.com>
+
+ * stdlib/strtod_nan.c: Include <math-type-macros-double.h> instead
+ of <strtod_nan_double.h>.
+ * stdlib/strtod_nan_main.c (STRTOD_NAN): Use SET_NAN_PAYLOAD
+ instead of SET_MANTISSA.
+ * stdlib/strtof_nan.c: Include <math-type-macros-float.h> instead
+ of include <strtod_nan_float.h>.
+ * stdlib/strtold_nan.c: Include <math-type-macros-ldouble.h>
+ instead of <strtod_nan_ldouble.h>.
+ * stdlib/strtod_nan_double.h: Move to ...
+ * sysdeps/generic/math-nan-payload-double.h: ... here.
+ (FLOAT): Remove definition.
+ (SET_MANTISSA): Rename to ...
+ (SET_NAN_PAYLOAD): ... this.
+ * stdlib/strtod_nan_float.h: Move to ...
+ * sysdeps/generic/math-nan-payload-float.h: ... here.
+ (FLOAT): Remove definition.
+ (SET_MANTISSA): Rename to ...
+ (SET_NAN_PAYLOAD): ... this.
+ * sysdeps/generic/math-type-macros-double.h: Include
+ <math-nan-payload-double.h>. Include <math/math-svid-compat.h>
+ instead of <math-svid-compat.h>.
+ * sysdeps/generic/math-type-macros-float.h: Include
+ <math-nan-payload-float.h>. Include <math/math-svid-compat.h>
+ instead of <math-svid-compat.h>.
+ * sysdeps/generic/math-type-macros-float128.h: Include
+ <math-nan-payload-float128.h>.
+ * sysdeps/generic/math-type-macros-ldouble.h: Include
+ <math-nan-payload-ldouble.h>. Include <math/math-svid-compat.h>
+ instead of <math-svid-compat.h>.
+ * sysdeps/generic/math-type-macros.h: Document SET_NAN_PAYLOAD and
+ check for definition.
+ * sysdeps/ieee754/float128/strtod_nan_float128.h: Move to ...
+ * sysdeps/ieee754/float128/math-nan-payload-float128.h: ... here.
+ Include <ieee754_float128.h>.
+ (FLOAT): Remove definition.
+ (SET_MANTISSA): Rename to ...
+ (SET_NAN_PAYLOAD): ... this.
+ * sysdeps/ieee754/float128/strtof128_nan.c: Include
+ <math-type-macros-float128.h> instead of <strtod_nan_float128.h>.
+ Do not include <float128_private.h>.
+ * sysdeps/ieee754/float128/wcstof128_nan.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/strtod_nan_ldouble.h: Move to ...
+ * sysdeps/ieee754/ldbl-128/math-nan-payload-ldouble.h: ... here.
+ (FLOAT): Remove definition.
+ (SET_MANTISSA): Rename to ...
+ (SET_NAN_PAYLOAD): ... this.
+ * sysdeps/ieee754/ldbl-128ibm/strtod_nan_ldouble.h: Move to ...
+ * sysdeps/ieee754/ldbl-128ibm/math-nan-payload-ldouble.h: ... here.
+ (FLOAT): Remove definition.
+ (SET_MANTISSA): Rename to ...
+ (SET_NAN_PAYLOAD): ... this.
+ * sysdeps/ieee754/ldbl-96/strtod_nan_ldouble.h: Move to ...
+ * sysdeps/ieee754/ldbl-96/math-nan-payload-ldouble.h: ... here.
+ (FLOAT): Remove definition.
+ (SET_MANTISSA): Rename to ...
+ (SET_NAN_PAYLOAD): ... this.
+ * wcsmbs/wcstod_nan.c: Include <math-type-macros-double.h> instead
+ of "../stdlib/strtod_nan_double.h".
+ * wcsmbs/wcstof_nan.c: Include <math-type-macros-float.h> instead
+ of "../stdlib/strtod_nan_float.h".
+ * wcsmbs/wcstold_nan.c: Include <math-type-macros-ldouble.h>
+ instead of "../stdlib/strtod_nan_ldouble.h".
+ * manual/arith.texi (Parsing of Floats): Adjust comment.
+
+2018-05-16 Joseph Myers <joseph@codesourcery.com>
+
+ * math/Makefile (libm-narrow-fns): Add mul.
+ (libm-test-funcs-narrow): Likewise.
+ * math/Versions (GLIBC_2.28): Add narrowing multiply functions.
+ * math/bits/mathcalls-narrow.h (mul): Use __MATHCALL_NARROW.
+ * math/gen-auto-libm-tests.c (test_functions): Add mul.
+ * math/math-narrow.h (CHECK_NARROW_MUL): New macro.
+ (NARROW_MUL_ROUND_TO_ODD): Likewise.
+ (NARROW_MUL_TRIVIAL): Likewise.
+ * soft-fp/op-common.h (FP_TRUNC_COOKED): Likewise.
+ * sysdeps/ieee754/float128/float128_private.h (__fmull): New
+ macro.
+ (__dmull): Likewise.
+ * sysdeps/ieee754/ldbl-opt/Makefile (libnldbl-calls): Add fmul and
+ dmul.
+ (CFLAGS-nldbl-dmul.c): New variable.
+ (CFLAGS-nldbl-fmul.c): Likewise.
+ * sysdeps/ieee754/ldbl-opt/Versions (GLIBC_2.28): Add
+ __nldbl_dmull.
+ * sysdeps/ieee754/ldbl-opt/nldbl-compat.h (__nldbl_dmull): New
+ prototype.
+ * manual/arith.texi (Misc FP Arithmetic): Document fmul, fmull,
+ dmull, fMmulfN, fMmulfNx, fMxmulfN and fMxmulfNx.
+ * math/auto-libm-test-in: Add tests of mul.
+ * math/auto-libm-test-out-narrow-mul: New generated file.
+ * math/libm-test-narrow-mul.inc: New file.
+ * sysdeps/i386/fpu/s_f32xmulf64.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_f32xmulf64.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_fmul.c: Likewise.
+ * sysdeps/ieee754/float128/s_f32mulf128.c: Likewise.
+ * sysdeps/ieee754/float128/s_f64mulf128.c: Likewise.
+ * sysdeps/ieee754/float128/s_f64xmulf128.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/s_dmull.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/s_f64xmulf128.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/s_fmull.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_dmull.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_fmull.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/s_dmull.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/s_fmull.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/nldbl-dmul.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/nldbl-fmul.c: Likewise.
+ * sysdeps/ieee754/soft-fp/s_dmull.c: Likewise.
+ * sysdeps/ieee754/soft-fp/s_fmul.c: Likewise.
+ * sysdeps/ieee754/soft-fp/s_fmull.c: Likewise.
+ * sysdeps/powerpc/fpu/libm-test-ulps: Update.
+ * sysdeps/mach/hurd/i386/libm.abilist: Likewise.
+ * 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/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/libm-le.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/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.
+
+2018-05-14 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/i386/crti.S (_init): Replace PREINIT_FUNCTION@PLT
+ with *%eax in call.
+
+2018-05-14 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/i386/ldsodefs.h: Removed.
+ * sysdeps/x86_64/ldsodefs.h: Moved to ...
+ * sysdeps/x86/ldsodefs.h: This.
+ (La_i86_regs): New.
+ (La_i86_retval): Likewise.
+ (ARCH_PLTENTER_MEMBERS): Add i86_gnu_pltenter.
+ (ARCH_PLTEXIT_MEMBERS): i86_gnu_pltexit.
+
+2018-05-14 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86_64/multiarch/strlen-avx2.S (STRLEN): Remove the
+ unnecessary testl.
+
+2018-05-13 Alan Modra <amodra@gmail.com>
+
+ * sysdeps/hppa/dl-machine.h (elf_machine_rela): Add
+ R_PARISC_TLS_DTPOFF32 reloc addend.
+
+2018-05-11 Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
+
+ * bits/floatn-common.h: Define __HAVE_FLOAT128_UNLIKE_LDBL.
+ * math/math.h: Restrict the prototype definition for the functions
+ issignaling(_Float128) and iszero(_Float128); and template
+ __iseqsig_type<_Float128>, from __HAVE_DISTINCT_FLOAT128 to
+ __HAVE_FLOAT128_UNLIKE_LDBL.
+ * sysdeps/powerpc/bits/floatn.h [__HAVE_FLOAT128
+ && (!__GNUC_PREREQ (7, 0) || defined __cplusplus)
+ && __LDBL_MANT_DIG__ == 113]: Use long double suffix for
+ __f128() constants; define the type _Float128 as long double;
+ and reuse long double in __CFLOAT128.
+
+2018-05-11 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/generic/math_private.h: Do not include
+ <math-barriers.h>.
+ * stdlib/strtod_l.c: Include <math-barriers.h> instead of
+ <math_private.h>.
+ * math/fromfp.h: Include <math-barriers.h>.
+ * math/math-narrow.h: Likewise.
+ * math/s_nextafter.c: Likewise.
+ * math/s_nexttowardf.c: Likewise.
+ * sysdeps/aarch64/fpu/s_llrint.c: Likewise.
+ * sysdeps/aarch64/fpu/s_llrintf.c: Likewise.
+ * sysdeps/aarch64/fpu/s_lrint.c: Likewise.
+ * sysdeps/aarch64/fpu/s_lrintf.c: Likewise.
+ * sysdeps/i386/fpu/s_nextafterl.c: Likewise.
+ * sysdeps/i386/fpu/s_nexttoward.c: Likewise.
+ * sysdeps/i386/fpu/s_nexttowardf.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_atan2.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_atanh.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_exp.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_exp2.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_j0.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_sqrt.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_expm1.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_fma.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_fmaf.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_log1p.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_nearbyint.c: Likewise.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c: Likewise.
+ * sysdeps/ieee754/flt-32/e_atanhf.c: Likewise.
+ * sysdeps/ieee754/flt-32/e_j0f.c: Likewise.
+ * sysdeps/ieee754/flt-32/s_expm1f.c: Likewise.
+ * sysdeps/ieee754/flt-32/s_log1pf.c: Likewise.
+ * sysdeps/ieee754/flt-32/s_nearbyintf.c: Likewise.
+ * sysdeps/ieee754/flt-32/s_nextafterf.c: Likewise.
+ * sysdeps/ieee754/k_standardl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/e_asinl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/e_expl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/e_powl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/s_fmal.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/s_nearbyintl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/s_nextafterl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/s_nexttoward.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/s_nexttowardf.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_asinl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_fmal.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_nextafterl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_nexttoward.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_nexttowardf.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_rintl.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/e_atanhl.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/e_j0l.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/s_fma.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/s_fmal.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/s_nexttoward.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/s_nexttowardf.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/s_nexttowardfd.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_nextafterl.c: Likewise.
+
+2018-05-11 Florian Weimer <fweimer@redhat.com>
+
+ Use 64-bit epoch values in the time zone file parser.
+ * include/time.h (internal_time_t): Define.
+ (__tzfile_compute): Use it.
+ * time/tzfile.c (struct leap): Use internal_time_t for epoch
+ member.
+ (transitions): Switch to internal_time_t.
+ (__tzfile_read): Likewise. Remove code dealing with 4-byte time_t
+ types.
+ (__tzfile_compute): Use internal_time_t for timer argument. Check
+ for truncation before calling __offtime.
+
+2018-05-11 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #23166]
+ * include/rpc/clnt.h (rpc_createerr): Declare hidden alias.
+ * include/rpc/svc.h (svc_pollfd, svc_max_pollfd, svc_fdset):
+ Likewise.
+ * sunrpc/rpc_common.c (svc_fdset, rpc_createerr, svc_pollfd)
+ (svc_max_pollfd): Add nocommon attribute and hidden alias. Do not
+ export without --enable-obsolete-rpc.
+ * sunrpc/svcauth_des.c (svcauthdes_stats): Turn into compatibility
+ symbol. This should not have been exported, ever.
+
+2018-05-11 Rafał Lużyński <digitalfreak@lingonborough.com>
+
+ [BZ #23152]
+ * localedata/locales/gd_GB (abmon): Fix typo in May:
+ "Mhàrt" -> "Cèit". Adjust the comment according to the change.
+
+2018-05-11 Siddhesh Poyarekar <siddhesh@sourceware.org>
+
+ * sysdeps/aarch64/multiarch/memcpy_falkor.S (__memcpy_falkor):
+ Use multiple registers to copy data in loop tail.
+
+ * sysdeps/aarch64/multiarch/memmove_falkor.S
+ (__memmove_falkor): Use multiple registers to move data in
+ loop tail.
+
+2018-05-10 Joseph Myers <joseph@codesourcery.com>
+
+ * math/math-underflow.h: New file.
+ * sysdeps/generic/math_private.h: Do not include <float.h>.
+ (fabs_tg): Remove macro. Moved to math-underflow.h.
+ (min_of_type_f): Likewise.
+ (min_of_type_): Likewise.
+ (min_of_type_l): Likewise.
+ (min_of_type_f128): Likewise.
+ (min_of_type): Likewise.
+ (math_check_force_underflow): Likewise.
+ (math_check_force_underflow_nonneg): Likewise.
+ (math_check_force_underflow_complex): Likewise.
+ * math/e_exp2_template.c: Include <math-underflow.h>.
+ * math/k_casinh_template.c: Likewise.
+ * math/s_catan_template.c: Likewise.
+ * math/s_catanh_template.c: Likewise.
+ * math/s_ccosh_template.c: Likewise.
+ * math/s_cexp_template.c: Likewise.
+ * math/s_clog10_template.c: Likewise.
+ * math/s_clog_template.c: Likewise.
+ * math/s_csin_template.c: Likewise.
+ * math/s_csinh_template.c: Likewise.
+ * math/s_csqrt_template.c: Likewise.
+ * math/s_ctan_template.c: Likewise.
+ * math/s_ctanh_template.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_asin.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_atanh.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_exp2.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_gamma_r.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_hypot.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_j1.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_jn.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_pow.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_sinh.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_asinh.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_atan.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_erf.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_expm1.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_log1p.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_sin.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_sincos.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_tan.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_tanh.c: Likewise.
+ * sysdeps/ieee754/flt-32/e_asinf.c: Likewise.
+ * sysdeps/ieee754/flt-32/e_atanhf.c: Likewise.
+ * sysdeps/ieee754/flt-32/e_gammaf_r.c: Likewise.
+ * sysdeps/ieee754/flt-32/e_j1f.c: Likewise.
+ * sysdeps/ieee754/flt-32/e_jnf.c: Likewise.
+ * sysdeps/ieee754/flt-32/e_sinhf.c: Likewise.
+ * sysdeps/ieee754/flt-32/k_sinf.c: Likewise.
+ * sysdeps/ieee754/flt-32/k_tanf.c: Likewise.
+ * sysdeps/ieee754/flt-32/s_asinhf.c: Likewise.
+ * sysdeps/ieee754/flt-32/s_atanf.c: Likewise.
+ * sysdeps/ieee754/flt-32/s_erff.c: Likewise.
+ * sysdeps/ieee754/flt-32/s_expm1f.c: Likewise.
+ * sysdeps/ieee754/flt-32/s_log1pf.c: Likewise.
+ * sysdeps/ieee754/flt-32/s_tanhf.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/e_asinl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/e_atanhl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/e_expl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/e_gammal_r.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/e_hypotl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/e_j1l.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/e_jnl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/e_sinhl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/k_sincosl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/k_sinl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/k_tanl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/s_asinhl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/s_atanl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/s_erfl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/s_expm1l.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/s_log1pl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/s_tanhl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_asinl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_atanhl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_hypotl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_j1l.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_jnl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_powl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_sinhl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/k_sincosl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/k_sinl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/k_tanl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_asinhl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_atanl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_erfl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_fmal.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_tanhl.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/e_asinl.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/e_atanhl.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/e_gammal_r.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/e_hypotl.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/e_j1l.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/e_jnl.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/e_sinhl.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/k_sinl.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/k_tanl.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/s_asinhl.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/s_erfl.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/s_tanhl.c: Likewise.
+ * sysdeps/powerpc/fpu/e_hypot.c: Likewise.
+ * sysdeps/x86/fpu/powl_helper.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_nextup.c: Include <float.h>.
+ * sysdeps/ieee754/flt-32/s_nextupf.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/s_nextupl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_nextupl.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/s_nextupl.c: Likewise.
+
+2018-05-09 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/generic/math-barriers.h: New file.
+ * sysdeps/generic/math_private.h [!math_opt_barrier]
+ (math_opt_barrier): Move to math-barriers.h.
+ [!math_opt_barrier] (math_force_eval): Likewise.
+ * sysdeps/aarch64/fpu/math-barriers.h: New file.
+ * sysdeps/aarch64/fpu/math_private.h (math_opt_barrier): Move to
+ math-barriers.h.
+ (math_force_eval): Likewise.
+ * sysdeps/alpha/fpu/math-barriers.h: New file.
+ * sysdeps/alpha/fpu/math_private.h (math_opt_barrier): Move to
+ math-barriers.h.
+ (math_force_eval): Likewise.
+ * sysdeps/x86/fpu/math-barriers.h: New file.
+ * sysdeps/i386/fpu/fenv_private.h (math_opt_barrier): Move to
+ math-barriers.h.
+ (math_force_eval): Likewise.
+ * sysdeps/m68k/m680x0/fpu/math_private.h: Move to....
+ * sysdeps/m68k/m680x0/fpu/math-barriers.h: ... here. Adjust
+ multiple-include guard for rename.
+ * sysdeps/powerpc/fpu/math-barriers.h: New file.
+ * sysdeps/powerpc/fpu/math_private.h (math_opt_barrier): Move to
+ math-barriers.h.
+ (math_force_eval): Likewise.
+
+2018-05-09 Paul Pluzhnikov <ppluzhnikov@google.com>
+
+ [BZ #22786]
+ CVE-2018-11236
+ * stdlib/canonicalize.c (__realpath): Fix overflow in path length
+ computation.
+ * stdlib/Makefile (test-bz22786): New test.
+ * stdlib/test-bz22786.c: New test.
+
+2018-05-09 Joseph Myers <joseph@codesourcery.com>
+
+ * include/math-narrow-eval.h: New file. Contents moved from ....
+ * sysdeps/generic/math_private.h: ... here.
+ (math_narrow_eval): Remove macro. Moved to math-narrow-eval.h.
+ [FLT_EVAL_METHOD != 0] (excess_precision): Likewise.
+ * math/s_fdim_template.c: Include <math-narrow-eval.h>.
+ * stdlib/strtod_l.c: Likewise.
+ * sysdeps/i386/fpu/s_f32xaddf64.c: Likewise.
+ * sysdeps/i386/fpu/s_f32xsubf64.c: Likewise.
+ * sysdeps/i386/fpu/s_fdim.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_cosh.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_gamma_r.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_j1.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_jn.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_lgamma_r.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_sinh.c: Likewise.
+ * sysdeps/ieee754/dbl-64/gamma_productf.c: Likewise.
+ * sysdeps/ieee754/dbl-64/k_rem_pio2.c: Likewise.
+ * sysdeps/ieee754/dbl-64/lgamma_neg.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_erf.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_llrint.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_lrint.c: Likewise.
+ * sysdeps/ieee754/flt-32/e_coshf.c: Likewise.
+ * sysdeps/ieee754/flt-32/e_exp2f.c: Likewise.
+ * sysdeps/ieee754/flt-32/e_expf.c: Likewise.
+ * sysdeps/ieee754/flt-32/e_gammaf_r.c: Likewise.
+ * sysdeps/ieee754/flt-32/e_j1f.c: Likewise.
+ * sysdeps/ieee754/flt-32/e_jnf.c: Likewise.
+ * sysdeps/ieee754/flt-32/e_lgammaf_r.c: Likewise.
+ * sysdeps/ieee754/flt-32/e_sinhf.c: Likewise.
+ * sysdeps/ieee754/flt-32/k_rem_pio2f.c: Likewise.
+ * sysdeps/ieee754/flt-32/lgamma_negf.c: Likewise.
+ * sysdeps/ieee754/flt-32/s_erff.c: Likewise.
+ * sysdeps/ieee754/flt-32/s_llrintf.c: Likewise.
+ * sysdeps/ieee754/flt-32/s_lrintf.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/gamma_product.c: Likewise.
+
+2018-05-08 Andreas Schwab <schwab@suse.de>
+
+ * sysdeps/nptl/internaltypes.h: Fix comment.
+
+2018-05-07 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86_64/multiarch/memset-vec-unaligned-erms.S
+ (MEMSET_SYMBOL (__memset, erms)): Mark the debugger symbol as
+ hidden.
+
+2018-05-07 Siddhesh Poyarekar <siddhesh@sourceware.org>
+
+ * benchtests/bench-memcpy-walk.c (test_main): Move declaration
+ of I into loop header.
+ * benchtests/bench-memmove-walk.c
+ (test_main): Likewise.
+
+2018-05-07 Alexandre Oliva <oliva@gnu.org>
+
+ Revert:
+ 2018-04-30 Raymond Nicholson <rain1@airmail.cc>
+ * manual/startup.texi (Aborting a Program): Remove inappropriate joke.
+
+2018-05-05 Paul Pluzhnikov <ppluzhnikov@google.com>
+
+ [BZ #20419]
+ * elf/dl-load.c (open_verify): Fix stack overflow.
+ * elf/Makefile (tst-big-note): New test.
+ * elf/tst-big-note-lib.S: New.
+ * elf/tst-big-note.c: New.
+
+2018-05-04 Joseph Myers <joseph@codesourcery.com>
+
+ * scripts/abilist.awk: Ignore absolute symbols.
+ * sysdeps/mach/hurd/i386/ld.abilist: Remove absolute symbols.
+ * sysdeps/mach/hurd/i386/libBrokenLocale.abilist: Likewise.
+ * sysdeps/mach/hurd/i386/libanl.abilist: Likewise.
+ * sysdeps/mach/hurd/i386/libc.abilist: Likewise.
+ * sysdeps/mach/hurd/i386/libcrypt.abilist: Likewise.
+ * sysdeps/mach/hurd/i386/libdl.abilist: Likewise.
+ * sysdeps/mach/hurd/i386/libm.abilist: Likewise.
+ * sysdeps/mach/hurd/i386/libnsl.abilist: Likewise.
+ * sysdeps/mach/hurd/i386/libpthread.abilist: Likewise.
+ * sysdeps/mach/hurd/i386/libresolv.abilist: Likewise.
+ * sysdeps/mach/hurd/i386/librt.abilist: Likewise.
+ * sysdeps/mach/hurd/i386/libutil.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/aarch64/ld.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/aarch64/libBrokenLocale.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/aarch64/libanl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/aarch64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/aarch64/libcrypt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/aarch64/libdl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/aarch64/libnsl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/aarch64/libpthread.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/aarch64/libresolv.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/aarch64/librt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/aarch64/libthread_db.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/aarch64/libutil.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/ld.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/libBrokenLocale.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/libanl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/libcrypt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/libdl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/libnsl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/libpthread.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/libresolv.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/librt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/libthread_db.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/libutil.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/arm/ld.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/arm/libBrokenLocale.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/arm/libanl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/arm/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/arm/libcrypt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/arm/libdl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/arm/libnsl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/arm/libpthread.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/arm/libresolv.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/arm/librt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/arm/libthread_db.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/arm/libutil.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/hppa/ld.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/hppa/libBrokenLocale.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/hppa/libanl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/hppa/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/hppa/libcrypt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/hppa/libdl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/hppa/libnsl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/hppa/libpthread.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/hppa/libresolv.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/hppa/librt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/hppa/libthread_db.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/hppa/libutil.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/i386/ld.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/i386/libBrokenLocale.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/i386/libanl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/i386/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/i386/libcrypt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/i386/libdl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/i386/libnsl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/i386/libpthread.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/i386/libresolv.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/i386/librt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/i386/libthread_db.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/i386/libutil.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/ia64/ld.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/ia64/libBrokenLocale.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/ia64/libanl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/ia64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/ia64/libcrypt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/ia64/libdl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/ia64/libnsl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/ia64/libpthread.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/ia64/libresolv.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/ia64/librt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/ia64/libthread_db.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/ia64/libutil.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/coldfire/ld.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/coldfire/libBrokenLocale.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/m68k/coldfire/libanl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/coldfire/libcrypt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/coldfire/libnsl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/coldfire/libthread_db.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/coldfire/libutil.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/m680x0/ld.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/m680x0/libBrokenLocale.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/m68k/m680x0/libanl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/m680x0/libcrypt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/m680x0/libnsl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/m680x0/libthread_db.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/m680x0/libutil.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/microblaze/ld.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/microblaze/libBrokenLocale.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/microblaze/libanl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/microblaze/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/microblaze/libcrypt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/microblaze/libdl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/microblaze/libnsl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/microblaze/libpthread.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/microblaze/libresolv.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/microblaze/librt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/microblaze/libthread_db.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/microblaze/libutil.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/ld.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/libBrokenLocale.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/libanl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/libcidn.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/libcrypt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/libnsl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/libnss_compat.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/libnss_db.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/libnss_dns.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/libnss_files.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/libnss_hesiod.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/libnss_nis.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/libnss_nisplus.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/librt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/libthread_db.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/libutil.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/libBrokenLocale.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/libanl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/libcrypt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/libnsl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/librt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/libthread_db.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/libutil.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/n32/ld.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/n64/ld.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/nios2/ld.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/nios2/libBrokenLocale.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/nios2/libanl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/nios2/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/nios2/libcrypt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/nios2/libdl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/nios2/libnsl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/nios2/libpthread.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/nios2/libresolv.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/nios2/librt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/nios2/libthread_db.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/nios2/libutil.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/ld.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/libBrokenLocale.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/libanl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/libcrypt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/libnsl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/libthread_db.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/libutil.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/ld-le.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/ld.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libBrokenLocale-le.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libBrokenLocale.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libanl-le.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libanl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libcrypt-le.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libcrypt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libdl-le.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libdl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libnsl-le.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libnsl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread-le.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libresolv-le.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libresolv.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/librt-le.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/librt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libthread_db-le.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libthread_db.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libutil-le.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libutil.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/rv64/ld.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/rv64/libBrokenLocale.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/riscv/rv64/libanl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/rv64/libcrypt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/rv64/libnsl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/rv64/libthread_db.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/rv64/libutil.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/libanl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/ld.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/libBrokenLocale.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/libcrypt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/libnsl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/libthread_db.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/libutil.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/ld.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/libBrokenLocale.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/libcrypt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/libnsl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/libthread_db.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/libutil.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sh/ld.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sh/libBrokenLocale.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sh/libanl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sh/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sh/libcrypt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sh/libdl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sh/libnsl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sh/libpthread.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sh/libresolv.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sh/librt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sh/libthread_db.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sh/libutil.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/ld.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/libBrokenLocale.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/libanl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/libcrypt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/libnsl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/libthread_db.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/libutil.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/ld.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/libBrokenLocale.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/libanl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/libcrypt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/libnsl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/libthread_db.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/libutil.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/64/ld.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/64/libBrokenLocale.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/64/libanl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/64/libcrypt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/64/libnsl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/64/librt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/64/libthread_db.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/64/libutil.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/libmvec.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/x32/ld.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/x32/libBrokenLocale.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/x32/libanl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/x32/libcrypt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/x32/libnsl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/x32/libthread_db.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/x32/libutil.abilist: Likewise.
+
+2018-05-04 Stefan Liebler <stli@linux.vnet.ibm.com>
+
+ [BZ #23137]
+ * sysdeps/nptl/lowlevellock.h (lll_wait_tid):
+ Use atomic_load_acquire to load __tid.
+
+2018-05-02 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/unix/sysv/linux/x86_64/swapcontext.S (__swapcontext):
+ Restore the pointer into %rdx, after syscall and use %rdx,
+ instead of %rsi, to restore context.
+
+2018-05-02 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/unix/sysv/linux/x86_64/setcontext.S (__setcontext):
+ Pop the pointer into %rdx after syscall and use %rdx, instead
+ of %rsi, to restore context.
+
+2018-05-02 H.J. Lu <hongjiu.lu@intel.com>
+
+ * nptl/pthread_create.c (START_THREAD_DEFN): Clear previous
+ handlers after setjmp.
+ * setjmp/longjmp.c (__libc_longjmp): Don't define alias if
+ defined.
+ * sysdeps/unix/sysv/linux/x86/setjmpP.h: Include
+ <libc-pointer-arith.h>.
+ (_JUMP_BUF_SIGSET_BITS_PER_WORD): New.
+ (_JUMP_BUF_SIGSET_NSIG): Changed to 96.
+ (_JUMP_BUF_SIGSET_NWORDS): Changed to use ALIGN_UP and
+ _JUMP_BUF_SIGSET_BITS_PER_WORD.
+ * sysdeps/x86/Makefile (sysdep_routines): Add __longjmp_cancel.
+ * sysdeps/x86/__longjmp_cancel.S: New file.
+ * sysdeps/x86/longjmp.c: Likewise.
+ * sysdeps/x86/nptl/pt-longjmp.c: Likewise.
+
+2018-05-02 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * NEWS: Add ustat.h deprecation entry.
+ * bits/ustat.h: Remove file.
+ * misc/sys/ustat.h: Likewise.
+ * misc/ustat.h: Likewise.
+ * sysdeps/unix/sysv/linux/generic/ustat.c: Likewise.
+ * misc/Makefile (headers): Remove ustat.h and sys/ustat.h.
+ * misc/ustat.c (__ustat): Rename to __old_ustat and export only in
+ compatibility mode.
+ * sysdeps/unix/sysv/linux/ustat.c (__ustat): Likewise.
+ * sysdeps/unix/sysv/linux/mips/ustat.c: Define DEV_TO_KDEV and use
+ generic Linux implementation.
+
+2018-04-30 Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
+
+ * math/w_exp_compat.c: Replace hidden_def with libm_hidden_def..
+ * math/w_expl_compat.c: Likewise.
+ * math/w_exp_template.c: Likewise. Remove hidden_def_x.
+
+2018-04-30 Raymond Nicholson <rain1@airmail.cc>
+
+ * manual/startup.texi (Aborting a Program): Remove inappropriate joke.
+
+2018-04-27 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/unix/sysv/linux/arm/readahead.c: Remove file.
+ * sysdeps/unix/sysv/linux/mips/mips32/readahead.c: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/n32/syscalls.list (readahead):
+ Remove.
+ * sysdeps/unix/sysv/linux/mips/mips64/n64/syscalls.list: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list: Likewise.
+ * sysdeps/unix/sysv/linux/wordsize-64/syscalls.list: Likewise.
+ * sysdeps/unix/sysv/linux/readahead.c (__readahead): Assume
+ __NR_readahead existence, and use INLINE_SYSCALL_CALL, __ALIGNMENT_ARG,
+ and SYSCALL_LL64.
+
+2018-04-27 Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
+
+ * math/e_exp2_template.c: Replace M_SUF (M_LN2) with M_MLIT (M_LN2).
+
+ * math/w_acos_template.c: Replace M_SUF (fabs) with M_FABS.
+ * math/w_asin_template.c: Likewise.
+ * math/w_atanh_template.c: Likewise.
+
+2018-04-27 Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
+
+ * sysdeps/powerpc/preconfigure [machine == powerpc64] (machine): Define
+ to powerpc/powerpc64/be for big-endian.
+ [machine == powerpc64le]: Define to powerpc/powerpc64/le for
+ little-endian.
+
+ * sysdeps/powerpc/powerpc64/power4/Implies: Move to powerpc64/be.
+ * sysdeps/powerpc/powerpc64/power4/fpu/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/power4/fpu/multiarch/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/power4/multiarch/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/power5+/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/power5+/fpu/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/power5+/fpu/multiarch/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/power5+/multiarch/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/power5/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/power5/fpu/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/power5/fpu/multiarch/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/power5/multiarch/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/power6/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/power6/fpu/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/power6/fpu/multiarch/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/power6/multiarch/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/power6x/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/power6x/fpu/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/power6x/fpu/multiarch/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/power6x/multiarch/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/power7/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/power7/fpu/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/power7/fpu/multiarch/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/power7/multiarch/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/power8/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/power8/fpu/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/power8/fpu/multiarch/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/power8/multiarch/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/power9/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/power9/fpu/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/power9/fpu/multiarch/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/power9/multiarch/Implies: Likewise.
+
+ * sysdeps/powerpc/powerpc64/be/power4/Implies: Move from powerpc64 and
+ adjusted to imply powerpc64 and older processors on powerpc64/be.
+ * sysdeps/powerpc/powerpc64/be/power4/fpu/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/be/power4/fpu/multiarch/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/be/power4/multiarch/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/be/power5+/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/be/power5+/fpu/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/be/power5+/fpu/multiarch/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/be/power5+/multiarch/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/be/power5/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/be/power5/fpu/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/be/power5/fpu/multiarch/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/be/power5/multiarch/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/be/power6/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/be/power6/fpu/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/be/power6/fpu/multiarch/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/be/power6/multiarch/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/be/power6x/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/be/power6x/fpu/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/be/power6x/fpu/multiarch/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/be/power6x/multiarch/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/be/power7/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/be/power7/fpu/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/be/power7/fpu/multiarch/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/be/power7/multiarch/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/be/power8/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/be/power8/fpu/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/be/power8/fpu/multiarch/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/be/power8/multiarch/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/be/power9/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/be/power9/fpu/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/be/power9/fpu/multiarch/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/be/power9/multiarch/Implies: Likewise.
+
+ * sysdeps/powerpc/powerpc64/970/Implies: Move to powerpc64/be.
+ * sysdeps/powerpc/powerpc64/be/970/Implies: Move from powerpc64/be.
+ * sysdeps/powerpc/powerpc64/be/a2/Implies: New file.
+ * sysdeps/powerpc/powerpc64/be/cell/Implies: Likewise.
+
+ * sysdeps/powerpc/powerpc64/be/Implies: New file.
+ * sysdeps/powerpc/powerpc64/be/fpu/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/be/multiarch/Implies: Likewise.
+
+ * sysdeps/powerpc/powerpc64le/Implies: Move to powerpc64/le.
+ * sysdeps/powerpc/powerpc64le/Implies-before: Likewise.
+ * sysdeps/powerpc/powerpc64le/Makefile: Likewise.
+ * sysdeps/powerpc/powerpc64le/configure: Likewise.
+ * sysdeps/powerpc/powerpc64le/configure.ac: Likewise.
+ * sysdeps/powerpc/powerpc64le/fpu/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64le/fpu/e_sqrtf128.c: Likewise.
+ * sysdeps/powerpc/powerpc64le/fpu/multiarch/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64le/fpu/sfp-machine.h: Likewise.
+ * sysdeps/powerpc/powerpc64le/multiarch/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64le/power9/fpu/e_sqrtf128.c: Likewise.
+
+ * sysdeps/powerpc/powerpc64/le/Implies: Move from powerpc64le.
+ * sysdeps/powerpc/powerpc64/le/Implies-before: Likewise.
+ * sysdeps/powerpc/powerpc64/le/Makefile: Likewise.
+ * sysdeps/powerpc/powerpc64/le/configure: Likewise.
+ * sysdeps/powerpc/powerpc64/le/configure.ac: Likewise.
+ * sysdeps/powerpc/powerpc64/le/fpu/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/le/fpu/e_sqrtf128.c: Likewise.
+ * sysdeps/powerpc/powerpc64/le/fpu/multiarch/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/le/fpu/sfp-machine.h: Likewise.
+ * sysdeps/powerpc/powerpc64/le/multiarch/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/le/power9/fpu/e_sqrtf128.c: Likewise.
+
+ * sysdeps/powerpc/powerpc64le/power7/Implies: Move to powerpc64/le.
+ * sysdeps/powerpc/powerpc64le/power7/fpu/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64le/power7/fpu/multiarch/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64le/power7/multiarch/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64le/power8/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64le/power8/fpu/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64le/power8/fpu/multiarch/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64le/power8/multiarch/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64le/power9/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64le/power9/fpu/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64le/power9/fpu/multiarch/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64le/power9/multiarch/Implies: Likewise.
+
+ * sysdeps/powerpc/powerpc64/le/power7/Implies: Move from powerpc64le
+ and adjusted to imply olders processors.
+ * sysdeps/powerpc/powerpc64/le/power7/fpu/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/le/power7/fpu/multiarch/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/le/power7/multiarch/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/le/power8/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/le/power8/fpu/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/le/power8/fpu/multiarch/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/le/power8/multiarch/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/le/power9/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/le/power9/fpu/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/le/power9/fpu/multiarch/Implies: Likewise.
+ * sysdeps/powerpc/powerpc64/le/power9/multiarch/Implies: Likewise.
+
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64le/Implies: Move to
+ powerpc64/le.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64le/float128-abi.h: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64le/fpu/Implies: Likewise.
+
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/le/Implies: Move from
+ powerpc64le.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/le/float128-abi.h: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/le/fpu/Implies: Likewise.
+
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/970/Implies: Move to
+ powerpc64/be.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/a2/Implies: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/cell/Implies: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/cell/fpu/Implies: Likewise.
+
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/be/970/Implies: Move from
+ powerpc64 and adjusted.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/be/a2/Implies: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/be/cell/Implies: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/be/cell/fpu/Implies:
+ Likewise.
+
+2018-04-27 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/tile: Remove.
+ * sysdeps/unix/sysv/linux/tile: Likewise.
+ * README (tilegx-*-linux-gnu): Remove from list of supported
+ configurations.
+ * manual/contrib.texi (Contributors): Mention Chris Metcalf's
+ contribution of support for generic Linux kernel syscall
+ interface.
+ * scripts/build-many-glibcs.py (Context.add_all_configs): Remove
+ tilegx configurations.
+ (Config.install_linux_headers): Do not handle tile.
+ * sysdeps/unix/sysv/linux/aarch64/ldsodefs.h: Do not mention Tile
+ in comment.
+ * sysdeps/unix/sysv/linux/nios2/Makefile: Likewise.
+ * sysdeps/unix/sysv/linux/posix_fadvise.c: Likewise.
+ [__ASSUME_FADVISE64_64_NO_ALIGN] (__ALIGNMENT_ARG): Remove
+ conditional undefine and redefine.
+ * sysdeps/unix/sysv/linux/posix_fadvise64.c: Do not mention Tile
+ in comment.
+ [__ASSUME_FADVISE64_64_NO_ALIGN] (__ALIGNMENT_ARG): Remove
+ conditional undefine and redefine.
+
+2018-04-26 Aurelien Jarno <aurelien@aurel32.net>
+
+ * signal/tst-sigaction.c: New file to test BZ #23069.
+ * signal/Makefile (tests): Fix indentation. Add tst-sigaction.
+
+2018-04-26 Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
+
+ [BZ #22766]
+ * include/dlfcn.h [__libc_dl_open]: Replace RTLD_LAZY with RTLD_NOW.
+ * sysdeps/gnu/unwind-resume.c (__lib_gcc_s_init): Replace
+ __libc_dlopen_mode() using RTLD_NOW with __libc_dlopen.
+ * sysdeps/nptl/unwind-forcedunwind.c: Likewise.
+
+2018-04-25 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/unix/sysv/linux/getdirentries.c (getdirentries): Build iff
+ _DIRENT_MATCHES_DIRENT64 is not defined.
+ * sysdeps/unix/sysv/linux/getdirentries64.c (getdirentries64): Open
+ implementation and alias to getdirentries if _DIRENT_MATCHES_DIRENT64
+ is defined.
+ * sysdeps/unix/sysv/linux/wordsize-64/getdirentries.c: Remove file.
+ * sysdeps/unix/sysv/linux/wordsize-64/getdirentries64.c: Remove file.
+
+2018-04-25 Joseph Myers <joseph@codesourcery.com>
+
+ * scripts/build-many-glibcs.py (Context.checkout): Default GCC
+ version to GCC 8 branch.
+
+2018-04-24 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/mach/hurd/dl-sysdep.c: Include <not-errno.h>.
+ (check_no_hidden): Use type of original function when declaring
+ alias.
+
+ * sysdeps/unix/sysv/linux/sys/ptrace.h
+ (PTRACE_SECCOMP_GET_METADATA): New enum value and macro.
+ * sysdeps/unix/sysv/linux/bits/ptrace-shared.h
+ (struct __ptrace_seccomp_metadata): New type.
+ * sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h
+ (PTRACE_SECCOMP_GET_METADATA): Likewise.
+ * sysdeps/unix/sysv/linux/arm/sys/ptrace.h
+ (PTRACE_SECCOMP_GET_METADATA): Likewise.
+ * sysdeps/unix/sysv/linux/ia64/sys/ptrace.h
+ (PTRACE_SECCOMP_GET_METADATA): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h
+ (PTRACE_SECCOMP_GET_METADATA): Likewise.
+ * sysdeps/unix/sysv/linux/s390/sys/ptrace.h
+ (PTRACE_SECCOMP_GET_METADATA): Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sys/ptrace.h
+ (PTRACE_SECCOMP_GET_METADATA): Likewise.
+ * sysdeps/unix/sysv/linux/tile/sys/ptrace.h
+ (PTRACE_SECCOMP_GET_METADATA): Likewise.
+ * sysdeps/unix/sysv/linux/x86/sys/ptrace.h
+ (PTRACE_SECCOMP_GET_METADATA): Likewise.
+
+2018-04-23 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * dirent/alphasort.c (alphasort): Build iff _DIRENT_MATCHES_DIRENT64 is
+ defined.
+ * dirent/versionsort.c (versionsort): Likewise.
+ * dirent/alphasort64.c (alphasort64): Build regardless and alias to
+ alphasort if _DIRENT_MATCHES_DIRENT64 is defined.
+ * dirent/versionsort64.c (versionsort64): Likewise.
+ * sysdeps/unix/sysv/linux/i386/alphasort64.c: Remove file.
+ * sysdeps/unix/sysv/linux/arm/alphasort64.c: Likewise.
+ * sysdeps/unix/sysv/linux/arm/versionsort64.c: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/alphasort64.c: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/versionsort64.c: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/alphasort64.c: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/versionsort64.c: Likewise.
+ * sysdeps/unix/sysv/linux/i386/versionsort64.c: Likewise.
+ * sysdeps/unix/sysv/linux/alphasort64.c: New file.
+ * sysdeps/unix/sysv/linux/versionsort64.c: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/alphasort64.c: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/versionsort64.c: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/alphasort64.c: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/versionsort64.c: Likewise.
+
+2018-04-23 Joseph Myers <joseph@codesourcery.com>
+
+ * elf/elf.h (NT_PPC_PKEY): New macro.
+
+2018-04-23 Dragan Stanojevic - Nevidljivi <invisible@hidden-city.net>
+
+ [BZ #23094]
+ * localedata/locales/hr_HR: fix thousands_sep and
+ mon_thousands_sep
+
+2018-04-20 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/alpha/bits/termios.h [__USE_MISC]
+ (XTABS): Define to TAB3.
+
+2018-04-20 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/hppa/fpu/libm-test-ulps: Update.
+
+ * dirent/scandir-tail-common.c: New file.
+ * dirent/scandir-tail.c: Use scandir-tail-common.c.
+ (__scandir_tail): Build iff _DIRENT_MATCHES_DIRENT64 is not defined.
+ * dirent/scandir.c: Use scandir-tail-common.c.
+ * dirent/scandirat.c: Likewise.
+ * dirent/scandir64-tail.c: Use scandir-tail-common.c.
+ * dirent/scandir64.c (scandir64): Always build and alias to scandir
+ if _DIRENT_MATCHES_DIRENT64 is defined.
+ * dirent/scandirat64.c (scandirat64): Likewise.
+ * include/dirent.h (__scandir_tail): Only define iff
+ _DIRENT_MATCHES_DIRENT64 is not defined.
+ (__scandir64_tail): Define regardless.
+ (__scandirat, scandirat64): Remove libc_hidden_proto.
+ * sysdeps/unix/sysv/linux/arm/scandir64.c: Remove file.
+ * sysdeps/unix/sysv/linux/m68k/scandir64.c: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/scandir64.c: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/scandir64.c: Likewise.
+ * sysdeps/unix/sysv/linux/i386/scandir64.c: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/scandir64.c: Likewise.
+ * sysdeps/unix/sysv/linux/scandir64.c: New file.
+
+2018-04-20 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/aarch64/bits/hwcap.h (HWCAP_ASIMDFHM):
+ New macro.
+ * sysdeps/unix/sysv/linux/aarch64/dl-procinfo.c (_DL_HWCAP_COUNT):
+ Increase to 24.
+ (_dl_aarch64_cap_flags): Add asimdfhm.
+
+2018-04-19 Chung-Lin Tang <cltang@codesourcery.com>
+
+ * sysdeps/nios2/libm-test-ulps: Update.
+
+2018-04-19 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/unix/sysv/linux/mips/mips64/getdents64.c (__getdents64):
+ Only alias to __getdents for _DIRENT_MATCHES_DIRENT64.
+
+ * sysdeps/unix/sysv/linux/alpha/getdents.c: Add comments with alpha
+ requirements.
+ (_DIRENT_MATCHES_DIRENT64): Undef
+ * sysdeps/unix/sysv/linux/alpha/getdents64.c: Likewise.
+ * sysdeps/unix/sysv/linux/arm/getdents64.c: Remove file.
+ * sysdeps/unix/sysv/linux/generic/getdents.c: Likewise.
+ * sysdeps/unix/sysv/linux/generic/getdents64.c: Likewise.
+ * sysdeps/unix/sysv/linux/generic/wordsize-32/getdents.c: Likewise.
+ * sysdeps/unix/sysv/linux/getdents.c: Simplify implementation by
+ use getdents64 syscalls as base.
+ * sysdeps/unix/sysv/linux/getdents64.c: Likewise and add compatibility
+ symbol if required.
+ * sysdeps/unix/sysv/linux/hppa/getdents64.c: Likewise.
+ * sysdeps/unix/sysv/linux/i386/getdents64.c: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/getdents64.c: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/getdents64.c: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/getdents64.c: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/getdents64.c: Likewise.
+ * sysdeps/unix/sysv/linux/wordsize-64/getdents.c: Likewise.
+ * sysdeps/unix/sysv/linux/wordsize-64/getdents64.c: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c
+ (__get_clockfreq_via_proc_openprom): Use __getdents64.
+ * sysdeps/unix/sysv/linux/mips/mips64/getdents64.c: New file.
+
+2018-04-19 Stefan Liebler <stli@linux.vnet.ibm.com>
+
+ * scripts/test_printers_common.py (init_test): Disable lock elision.
+
+2018-04-19 Stefan Liebler <stli@linux.vnet.ibm.com>
+
+ * math/test-tgmath.c (count_double, count_float,
+ count_ldouble, count_cdouble, count_cfloat,
+ count_cldouble): Use volatile int.
+
+2018-04-19 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * sysdeps/mach/hurd/i386/Makefile [$(subdir) = conform]
+ (conformtest-xfail-conds): Add i386-gnu.
+ * conform/data/fcntl.h-data (flock.l_type, flock.l_whence): XFAIL on
+ i386-gnu.
+ * conform/data/sys/ipc.h-data (ipc_perm.uid, ipc_perm.gid,
+ ipc_perm.cuid, ipc_perm.cgid): Likewise.
+ * conform/data/sys/msg.h-data (msqid_ds.msg_lspid,
+ msqid_ds.msg_lrpid): Likewise.
+ * conform/data/sys/shm.h-data (shmid_ds.shm_lpid, shmid_ds.shm_cpid):
+ Likewise.
+ * conform/data/sys/stat.h-data (stat.st_dev): Likewise.
+ * conform/data/sys/statvfs.h-data (statvfs.f_fsid): Likewise.
+ * sysdeps/mach/hurd/bits/statvfs.h (struct statvfs): Make f_bsize,
+ f_namemax, f_frsize, and f_flag fields unsigned long int instead of
+ unsigned int.
+ (struct statvfs64): Likewise.
+ * sysdeps/mach/hurd/bits/statfs.h (struct statfs, struct statfs64):
+ Likewise.
+ * bits/in.h [!__USE_MISC]: Do not define struct ip_opts.
+ * conform/data/netinet/in.h-data: Allow sin_ and sin6_ prefix.
+ * sysdeps/gnu/bits/msq.h (struct msqid_ds): Use __wait_queue struct
+ instead of wait_queue.
+ * sysdeps/gnu/bits/shm.h (struct shmid_ds): Use __vm_area_struct
+ instead of vm_area_struct.
+ * bits/sched.h: Include <bits/types/struct_sched_param.h> and move
+ struct sched_param definition to it.
+ * sysdeps/unix/sysv/linux/bits/sched.h: Likewise.
+ * bits/types/struct_sched_param.h: New file.
+ * sysdeps/htl/bits/types/struct___pthread_attr.h: Include
+ <bits/types/struct_sched_param.h> instead of <sched.h>.
+ * posix/Makefile (headers): Add bits/types/struct_sched_param.h.
+ * sysdeps/pthread/bits/types/sigevent_t.h: New file, based on the
+ generic version but include <bits/pthreadtypes.h> to make struct
+ sigevent's sigev_notify_attributes field a pthread_attr_t*.
+ * bits/types/siginfo_t.h: Remove siginfo struct name, unused and
+ non-compliant.
+ * bits/termios.h [__USE_XOPEN || __USE_XOPEN2K8] (IXANY): Define.
+ [__USE_XOPEN && !__USE_XOPEN2K] (IUCLC, OLCUC): Define.
+ [__USE_XOPEN] (OFDEL): New macro.
+ [__USE_XOPEN && !__USE_XOPEN2K] (XCASE): New macro.
+ * bits/resource.h (RLIM_SAVED_MAX, RLIM_SAVED_CUR): New macros.
+ * sysdeps/hurd/include/hurd.h [!_ISOMAC]: Do not declare libc hidden
+ prototypes.
+ * sysdeps/hurd/include/hurd/fd.h [!_ISOMAC]: Likewise.
+ * sysdeps/hurd/include/hurd/signal.h [!_ISOMAC]: Likewise.
+ * sysdeps/arm/sys/ucontext.h: Remove fpregset struct name, unused and
+ non-compliant.
+ * sysdeps/i386/sys/ucontext.h: Likewise.
+ * sysdeps/m68k/sys/ucontext.h: Likewise.
+ * sysdeps/mips/sys/ucontext.h: Likewise.
+ * sysdeps/unix/sysv/linux/hppa/sys/ucontext.h: Likewise.
+ * sysdeps/mach/hurd/i386/Makefile
+ (test-xfail-POSIX/fcntl.h/conform): Add.
+ (test-xfail-POSIX/signal.h/conform): Add.
+ (test-xfail-POSIX/semaphore.h/conform): Add.
+ (test-xfail-POSIX/regex.h/conform): Add.
+ (test-xfail-POSIX/aio.h/conform): Add.
+ (test-xfail-POSIX/mqueue.h/conform): Add.
+ (test-xfail-POSIX/sys/types.h/conform): Add.
+ (test-xfail-UNIX98/fcntl.h/conform): Add.
+ (test-xfail-UNIX98/netdb.h/conform): Add.
+ (test-xfail-UNIX98/signal.h/conform): Add.
+ (test-xfail-UNIX98/semaphore.h/conform): Add.
+ (test-xfail-UNIX98/regex.h/conform): Add.
+ (test-xfail-UNIX98/aio.h/conform): Add.
+ (test-xfail-UNIX98/ftw.h/conform): Add.
+ (test-xfail-UNIX98/mqueue.h/conform): Add.
+ (test-xfail-UNIX98/netinet/in.h/conform): Add.
+ (test-xfail-UNIX98/sys/wait.h/conform): Add.
+ (test-xfail-UNIX98/sys/sem.h/conform): Add.
+ (test-xfail-UNIX98/sys/uio.h/conform): Add.
+ (test-xfail-UNIX98/sys/socket.h/conform): Add.
+ (test-xfail-UNIX98/sys/types.h/conform): Add.
+ (test-xfail-UNIX98/stdlib.h/conform): Add.
+ (test-xfail-UNIX98/arpa/inet.h/conform): Add.
+ (test-xfail-POSIX2008/fcntl.h/conform): Add.
+ (test-xfail-POSIX2008/netdb.h/conform): Add.
+ (test-xfail-POSIX2008/signal.h/conform): Add.
+ (test-xfail-POSIX2008/semaphore.h/conform): Add.
+ (test-xfail-POSIX2008/regex.h/conform): Add.
+ (test-xfail-POSIX2008/aio.h/conform): Add.
+ (test-xfail-POSIX2008/mqueue.h/conform): Add.
+ (test-xfail-POSIX2008/netinet/in.h/conform): Add.
+ (test-xfail-POSIX2008/sys/wait.h/conform): Add.
+ (test-xfail-POSIX2008/sys/socket.h/conform): Add.
+ (test-xfail-POSIX2008/sys/types.h/conform): Add.
+ (test-xfail-POSIX2008/arpa/inet.h/conform): Add.
+ (test-xfail-XOPEN2K/fcntl.h/conform): Add.
+ (test-xfail-XOPEN2K/netdb.h/conform): Add.
+ (test-xfail-XOPEN2K/signal.h/conform): Add.
+ (test-xfail-XOPEN2K/semaphore.h/conform): Add.
+ (test-xfail-XOPEN2K/regex.h/conform): Add.
+ (test-xfail-XOPEN2K/aio.h/conform): Add.
+ (test-xfail-XOPEN2K/ftw.h/conform): Add.
+ (test-xfail-XOPEN2K/mqueue.h/conform): Add.
+ (test-xfail-XOPEN2K/netinet/in.h/conform): Add.
+ (test-xfail-XOPEN2K/sys/wait.h/conform): Add.
+ (test-xfail-XOPEN2K/sys/sem.h/conform): Add.
+ (test-xfail-XOPEN2K/sys/uio.h/conform): Add.
+ (test-xfail-XOPEN2K/sys/socket.h/conform): Add.
+ (test-xfail-XOPEN2K/sys/types.h/conform): Add.
+ (test-xfail-XOPEN2K/stdlib.h/conform): Add.
+ (test-xfail-XOPEN2K/arpa/inet.h/conform): Add.
+ (test-xfail-XOPEN2K8/fcntl.h/conform): Add.
+ (test-xfail-XOPEN2K8/netdb.h/conform): Add.
+ (test-xfail-XOPEN2K8/signal.h/conform): Add.
+ (test-xfail-XOPEN2K8/semaphore.h/conform): Add.
+ (test-xfail-XOPEN2K8/regex.h/conform): Add.
+ (test-xfail-XOPEN2K8/aio.h/conform): Add.
+ (test-xfail-XOPEN2K8/ftw.h/conform): Add.
+ (test-xfail-XOPEN2K8/mqueue.h/conform): Add.
+ (test-xfail-XOPEN2K8/netinet/in.h/conform): Add.
+ (test-xfail-XOPEN2K8/sys/wait.h/conform): Add.
+ (test-xfail-XOPEN2K8/sys/sem.h/conform): Add.
+ (test-xfail-XOPEN2K8/sys/uio.h/conform): Add.
+ (test-xfail-XOPEN2K8/sys/socket.h/conform): Add.
+ (test-xfail-XOPEN2K8/sys/types.h/conform): Add.
+ (test-xfail-XOPEN2K8/stdlib.h/conform): Add.
+ (test-xfail-XOPEN2K8/arpa/inet.h/conform): Add.
+ * conform/data/signal.h-data (SA_SIGINFO, SA_NOCLDWAIT): XFAIL on
+ i386-gnu.
+ * conform/data/sys/wait.h-data (WIFCONTINUED, WEXITED, WSTOPPED,
+ WCONTINUED, WNOWAIT): XFAIL on i386-gnu.
+
+2018-04-18 Joseph Myers <joseph@codesourcery.com>
+
+ * scripts/build-many-glibcs.py (Context.add_all_configs): Use
+ --enable-obsolete for powerpc-linux-gnuspe.
+
+2018-04-18 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * conform/data/sys/un.h-data: Allow sun_ prefix.
+ * sysdeps/mach/include/lock-intern.h: Do not declare libc hidden
+ prototypes.
+ * sysdeps/mach/include/mach.h: Likewise.
+ * sysdeps/mach/include/mach/mig_support.h: Likewise.
+ * sysdeps/mach/include/mach_error.h: Likewise.
+
+2018-04-16 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/arm/armv6t2/memchr.S (memchr): Remove ARM code path.
+ * sysdeps/arm/armv6t2/strlen.S (memchr): Likewise.
+ * sysdeps/arm/armv7/multiarch/memchr_neon.S (memchr): Likewise.
+ * sysdeps/arm/armv7/strcmp.S (strcmp): Likewise.
+
+2018-04-16 Andreas Schwab <schwab@suse.de>
+
+ [BZ #19527]
+ * iconvdata/gconv-modules (ARMSCII8//, ShiftJISX0213//): New aliases.
+
+2018-04-15 Patrick McGehearty <patrick.mcgehearty@oracle.com>
+
+ * sysdeps/ieee754/dbl-64/e_exp.c: faster __ieee754_exp()
+ * sysdeps/ieee754/dbl-64/eexp.tbl: New file for e_exp.c
+
+2018-04-12 DJ Delorie <dj@redhat.com>
+
+ * sysdeps/unix/sysv/linux/syscall-names.list: Update kernel
+ version to 4.16.
+
+2018-04-12 Stefan Liebler <stli@linux.vnet.ibm.com>
+
+ * sysdeps/unix/sysv/linux/s390/kernel_sigaction.h
+ (struct kernel_sigaction): Use the same definition on 31bit as is used
+ on 64bit.
+
+2018-04-09 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #23037]
+ * resolv/res_send.c (send_dg): Use designated initializers instead
+ of assignment to zero-initialize other fields of struct mmsghdr.
+
+2018-04-06 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/posix/readdir.c (__READDIR, __GETDENTS, DIRENTY_TYPE,
+ __READDIR_ALIAS): Undefine after usage.
+ * sysdeps/posix/readdir_r.c (__READDIR_R, __GETDENTS, DIRENT_TYPE,
+ __READDIR_R_ALIAS): Likewise.
+ * sysdeps/unix/sysv/linux/arm/readdir64.c: Remove file.
+ * sysdeps/unix/sysv/linux/arm/readdir64_r.c: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/readdir64.c: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/readdir64_r.c: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/readdir64.c: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/readdir64_r.c: Likewise.
+ * sysdeps/unix/sysv/linux/i386/readdir64.c: Likewise.
+ * sysdeps/unix/sysv/linux/i386/readdir64_r.c: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/readdir64.c: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/readdir64_r.c: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/readdir64.c: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/readdir64_r.c: Likewise.
+ * sysdeps/unix/sysv/linux/wordsize-64/readdir.c: Likewise.
+ * sysdeps/unix/sysv/linux/wordsize-64/readdir64.c: Likewise.
+ * sysdeps/unix/sysv/linux/wordsize-64/readdir64_r.c: Likewise.
+ * sysdeps/unix/sysv/linux/wordsize-64/readdir_r.c: Likewise.
+ * sysdeps/unix/sysv/linux/readdir.c: New file.
+ * sysdeps/unix/sysv/linux/readdir_r.c: Likewise.
+ * sysdeps/unix/sysv/linux/readdir64.c: Add compat symbol if required.
+ * sysdeps/unix/sysv/linux/readdir64_r.c: Likewise.
+
+ * sysdeps/i386/i686/fpu/multiarch/libm-test-ulps: Update.
+
+2018-04-06 Andreas Schwab <schwab@linux-m68k.org>
+
+ * manual/charset.texi (Converting a Character): Fix typo.
+
+2018-04-05 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/sparc/fpu/libm-test-ulps: Update.
+
+ * sysdeps/arm/libm-test-ulps: Update.
+
+ * sysdeps/unix/sysv/linux/aarch64/sigaction.c: Use default Linux version
+ as base implementation.
+ * sysdeps/unix/sysv/linux/arm/sigaction.c: Likewise.
+ * sysdeps/unix/sysv/linux/i386/sigaction.c: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/sigaction.c: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/kernel_sigaction.h: Add include guards,
+ remove unrequired definitions and update comments.
+ * sysdeps/unix/sysv/linux/kernel_sigaction.h: Likewise.
+ * sysdeps/unix/sysv/linux/mips/kernel_sigaction.h: Likewise.
+ * sysdeps/unix/sysv/linux/ia64/kernel_sigaction.h: New file.
+ * sysdeps/unix/sysv/linux/m68k/kernel_sigaction.h: Likewise.
+ * sysdeps/unix/sysv/linux/nios2/kernel_sigaction.h: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/kernel_sigaction: Likewise.
+ * sysdeps/unix/sysv/linux/s390/kernel_sigaction.h: Likewise.
+ * sysdeps/unix/sysv/linux/sh/kernel_sigaction.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/kernel_sigaction.h: Likewise.
+ * sysdeps/unix/sysv/linux/tile/kernel_sigaction.h: Likewise.
+ * sysdeps/unix/sysv/linux/ia64/sigaction.c: Remove file.
+ * sysdeps/unix/sysv/linux/mips/sigaction.c: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/sigaction.c: Likewise.
+ * sysdeps/unix/sysv/linux/sigaction.c: Add STUB, SET_SA_RESTORER,
+ and RESET_SA_RESTORER hooks.
+
+2018-04-05 Stefan Liebler <stli@linux.vnet.ibm.com>
+
+ * sysdeps/s390/fpu/libm-test-ulps: Regenerated.
+
+2018-04-05 Florian Weimer <fweimer@redhat.com>
+
+ * manual/examples/mbstouwcs.c (mbstouwcs): Fix loop termination,
+ integer overflow, memory leak on error, and indeterminate errno
+ value. Add a null wide character to terminate the result string.
+ * manual/charset.texi (Converting a Character): Mention embedded
+ null bytes in the mbrtowc input string. Explain what happens in
+ the -2 result case. Do not claim that mbrtowc is simple or
+ obvious to use. Adjust the description of the code example. Use
+ @code, not @var, for concrete variables.
+
+2018-04-05 Florian Weimer <fweimer@redhat.com>
+
+ * manual/examples/mbstouwcs.c: New file.
+ * manual/charset.texi (Converting a Character): Include it.
+
+2018-04-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * include/dirent.h (dirfd): Add hidden proto.
+ * dirent/dirfd.c (dirfd): Add hidden def.
+ * sysdeps/mach/hurd/dirfd.c (dirfd): Add hidden def.
+ * sysdeps/posix/dirfd.c (dirfd): Add hidden def.
+
+2018-04-04 Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
+
+ * sysdeps/powerpc/fpu/libm-test-ulps: Increase double-precision
+ sin, cos and sincos to 1 ULP.
+
+2018-04-04 Maciej W. Rozycki <macro@mips.com>
+
+ [BZ #19818]
+ * sysdeps/generic/ldsodefs.h (SYMBOL_ADDRESS): Handle SHN_ABS
+ symbols.
+ * elf/dl-addr.c (determine_info): Ignore SHN_ABS symbols.
+ * elf/tst-absolute-sym.c: New file.
+ * elf/tst-absolute-sym-lib.c: New file.
+ * elf/tst-absolute-sym-lib.lds: New file.
+ * elf/Makefile (tests): Add `tst-absolute-sym'.
+ (modules-names): Add `tst-absolute-sym-lib'.
+ (LDLIBS-tst-absolute-sym-lib.so): New variable.
+ ($(objpfx)tst-absolute-sym-lib.so): New dependency.
+ ($(objpfx)tst-absolute-sym): New dependency.
+
+ [BZ #19818]
+ * sysdeps/generic/ldsodefs.h (LOOKUP_VALUE_ADDRESS): Add `set'
+ parameter.
+ (SYMBOL_ADDRESS): New macro.
+ [!ELF_FUNCTION_PTR_IS_SPECIAL] (DL_SYMBOL_ADDRESS): Use
+ SYMBOL_ADDRESS for symbol address calculation.
+ * elf/dl-runtime.c (_dl_fixup): Likewise.
+ (_dl_profile_fixup): Likewise.
+ * elf/dl-symaddr.c (_dl_symbol_address): Likewise.
+ * elf/rtld.c (dl_main): Likewise.
+ * sysdeps/aarch64/dl-machine.h (elf_machine_rela): Likewise.
+ * sysdeps/alpha/dl-machine.h (elf_machine_rela): Likewise.
+ * sysdeps/arm/dl-machine.h (elf_machine_rel): Likewise.
+ (elf_machine_rela): Likewise.
+ * sysdeps/hppa/dl-machine.h (elf_machine_rela): Likewise.
+ * sysdeps/hppa/dl-symaddr.c (_dl_symbol_address): Likewise.
+ * sysdeps/i386/dl-machine.h (elf_machine_rel): Likewise.
+ (elf_machine_rela): Likewise.
+ * sysdeps/ia64/dl-machine.h (elf_machine_rela): Likewise.
+ * sysdeps/m68k/dl-machine.h (elf_machine_rela): Likewise.
+ * sysdeps/microblaze/dl-machine.h (elf_machine_rela): Likewise.
+ * sysdeps/mips/dl-machine.h (ELF_MACHINE_BEFORE_RTLD_RELOC):
+ Likewise.
+ (elf_machine_reloc): Likewise.
+ (elf_machine_got_rel): Likewise.
+ * sysdeps/mips/dl-trampoline.c (__dl_runtime_resolve): Likewise.
+ * sysdeps/nios2/dl-machine.h (elf_machine_rela): Likewise.
+ * sysdeps/powerpc/powerpc32/dl-machine.h (elf_machine_rela):
+ Likewise.
+ * sysdeps/powerpc/powerpc64/dl-machine.h (elf_machine_rela):
+ Likewise.
+ * sysdeps/riscv/dl-machine.h (elf_machine_rela): Likewise.
+ * sysdeps/s390/s390-32/dl-machine.h (elf_machine_rela):
+ Likewise.
+ * sysdeps/s390/s390-64/dl-machine.h (elf_machine_rela):
+ Likewise.
+ * sysdeps/sh/dl-machine.h (elf_machine_rela): Likewise.
+ * sysdeps/sparc/sparc32/dl-machine.h (elf_machine_rela):
+ Likewise.
+ * sysdeps/sparc/sparc64/dl-machine.h (elf_machine_rela):
+ Likewise.
+ * sysdeps/tile/dl-machine.h (elf_machine_rela): Likewise.
+ * sysdeps/x86_64/dl-machine.h (elf_machine_rela): Likewise.
+
+2018-04-04 Zack Weinberg <zackw@panix.com>
+
+ * sysdeps/generic/internal-signals.h: Include signal.h,
+ sigsetops.h, and stdbool.h.
+ (__libc_signal_block_all): Actually block all signals.
+ (__libc_signal_block_app): Likewise.
+ (__libc_signal_restore_set): Actually restore the signal mask.
+
+2018-04-04 Florian Weimer <fweimer@redhat.com>
+
+ inet: Actually build and run tst-deadline.
+ * inet/Makefile (tests-internal): Add tst-deadline and do not
+ overwrite the variable.
+ (tests-static-internal): Remove variable.
+
+2018-04-03 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #22947]
+ * bits/uio-ext.h (RWF_APPEND): New.
+ * sysdeps/unix/sysv/linux/bits/uio-ext.h (RWF_APPEND): Likewise.
+ * manual/llio.texi: Document RWF_APPEND.
+ * misc/tst-preadvwritev2-common.c (RWF_APPEND): New.
+ (RWF_SUPPORTED): Add RWF_APPEND.
+
+2018-04-03 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ [BZ #22391]
+ * nptl/sigaction.c (__sigaction): Use __is_internal_signal to
+ check for internal nptl signals.
+ * nptl/sigaction.c (__sigaction): Likewise.
+ * signal/sigaddset.c (sigaddset): Likewise.
+ * signal/sigdelset.c (sigdelset): Likewise.
+ * sysdeps/posix/signal.c (__bsd_signal): Likewise.
+ * sysdeps/posix/sigset.c (sigset): Call and check sigaddset return
+ value.
+ * signal/sigfillset.c (sigfillset): User __clear_internal_signals
+ to filter out internal nptl signals.
+ * signal/tst-sigset.c (do_test): Check ech signal indidually and
+ also check realtime signals using standard macros.
+ * sysdeps/generic/internal-signals.h (__clear_internal_signals,
+ __is_internal_signal, __libc_signal_block_all,
+ __libc_signal_block_app, __libc_signal_restore_set): New functions.
+ * sysdeps/nptl/sigfillset.c: Remove file.
+ * sysdeps/unix/sysv/linux/internal-signals.h (__is_internal_signal):
+ Change return to bool.
+ (__clear_internal_signals): Remove SIGTIMER clean since it is
+ equal to SIGCANEL on Linux.
+ * sysdeps/unix/sysv/linux/sigtimedwait.c (__sigtimedwait): Assume
+ signal set was constructed using standard functions.
+
+2018-04-03 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * sysdeps/mach/hurd/if_index.c (__if_nametoindex): Return ENODEV if
+ ifname is too long.
+ * hurd/hurdsig.c (interrupted_reply_port_location): Use
+ DIAG_IGNORE_NEEDS_COMMENT to silence warning with GCC 6 and before.
+ * sysdeps/mach/hurd/i386/exc2signal.c (_hurd_exception2signal): Add
+ hidden def.
+ * mach/spin-lock.c (__mutex_unlock): Add hidden def.
+ * signal/sigaddset.c: Include <sigsetopts.h>.
+ * signal/sigdelset.c: Likewise.
+
+2018-04-03 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * sysdeps/ieee754/dbl-64/s_sin.c (__sin): Cleanup ifdefs.
+ (__cos): Likewise.
+ * sysdeps/ieee754/dbl-64/s_sin.c (__sincos): Refactor using the same
+ logic as sin and cos.
+
+2018-04-03 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * sysdeps/ieee754/dbl-64/s_sin.c (do_sin): Use TAYLOR_SIN for small
+ inputs. Return correct sign.
+ (do_sincos): Remove small input check before do_sin, let do_sin set
+ the sign.
+ (__sin): Likewise.
+ (__cos): Likewise.
+
+2018-04-03 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * sysdeps/ieee754/dbl-64/s_sin.c (TAYLOR_SLOW): Remove.
+ (do_cos_slow): Likewise.
+ (do_sin_slow): Likewise.
+ (reduce_and_compute): Likewise.
+ (slow): Likewise.
+ (slow1): Likewise.
+ (slow2): Likewise.
+ (sloww): Likewise.
+ (sloww1): Likewise.
+ (sloww2): Likewise.
+ (bslow): Likewise.
+ (bslow1): Likewise.
+ (bslow2): Likewise.
+ (cslow2): Likewise.
+
+2018-04-03 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * sysdeps/ieee754/dbl-64/s_sin.c (TAYLOR_SIN): Remove cor parameter.
+ (do_cos): Remove corp parameter and calculations.
+ (do_sin): Likewise.
+ (do_sincos): Remove cor variable.
+ (__sin): Use do_sincos for huge inputs.
+ (__cos): Likewise.
+ * sysdeps/ieee754/dbl-64/s_sincos.c (__sincos): Likewise.
+ (reduce_and_compute_sincos): Remove unused function.
+
+2018-04-03 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * sysdeps/ieee754/dbl-64/s_sin.c (reduce_sincos_1): Rename to
+ reduce_sincos, improve accuracy to 136 bits.
+ (do_sincos_1): Rename to do_sincos, remove fallbacks to slow functions.
+ (__sin): Use improved reduction and simplified do_sincos calculation.
+ (__cos): Likewise.
+ * sysdeps/ieee754/dbl-64/s_sincos.c (__sincos): Likewise.
+
+2018-04-03 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * sysdeps/ieee754/dbl-64/s_sin.c (reduce_sincos_2): Remove function.
+ (do_sincos_2): Likewise.
+ (__sin): Remove middle range reduction case.
+ (__cos): Likewise.
+ * sysdeps/ieee754/dbl-64/s_sincos.c (__sincos): Remove middle range
+ reduction case.
+
+2018-04-03 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * sysdeps/aarch64/libm-test-ulps: Update ULP for sin, cos, sincos.
+ * sysdeps/ieee754/dbl-64/s_sin.c (__sin): Remove slow paths for small
+ inputs.
+ (__cos): Likewise.
+ * sysdeps/x86_64/fpu/libm-test-ulps: Update ULP for sin, cos, sincos.
+
+2018-04-03 Joseph Myers <joseph@codesourcery.com>
+
+ * scripts/build-many-glibcs.py (Context.checkout): Default Linux
+ version to 4.16
+
+2018-04-03 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/posix/opendir.c (o_directory_works, tryopen_o_directory):
+ Remove definitions.
+ (opendir_oflags): Use O_DIRECTORY regardless.
+ (__opendir, __opendirat): Remove need_isdir_precheck usage.
+ * sysdeps/unix/sysv/linux/opendir.c: Remove file.
+
+2018-04-02 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * sysdeps/mach/hurd/bits/local_lim.h (_POSIX_THREAD_KEYS_MAX,
+ _POSIX_THREAD_DESTRUCTOR_ITERATIONS, _POSIX_THREAD_THREADS_MAX): Define
+ macros.
+ * sysdeps/mach/hurd/bits/posix_opt.h (_POSIX_THREADS,
+ _POSIX_THREAD_ATTR_STACKSIZE, _POSIX_THREAD_ATTR_STACKADDR,
+ _POSIX_SEMAPHORES, _POSIX_READER_WRITER_LOCKS, _POSIX_TIMEOUTS,
+ _POSIX_SPIN_LOCKS, _POSIX_BARRIERS): Define macros to 200809L.
+ * sysdeps/mach/hurd/net/if_ppp.h: Remove file.
+ * sysdeps/mach/hurd/Makefile (sysdep_headers): Remove net/if_ppp.h.
+
+ * htl/Makefile: Bump licence to LGPL 2.1+.
+ * htl/alloca_cutoff.c: Likewise.
+ * htl/cthreads-compat.c: Likewise.
+ * htl/lockfile.c: Likewise.
+ * htl/pt-alloc.c: Likewise.
+ * htl/pt-cancel.c: Likewise.
+ * htl/pt-cleanup.c: Likewise.
+ * htl/pt-create.c: Likewise.
+ * htl/pt-dealloc.c: Likewise.
+ * htl/pt-detach.c: Likewise.
+ * htl/pt-exit.c: Likewise.
+ * htl/pt-getattr.c: Likewise.
+ * htl/pt-initialize.c: Likewise.
+ * htl/pt-internal.h: Likewise.
+ * htl/pt-join.c: Likewise.
+ * htl/pt-self.c: Likewise.
+ * htl/pt-setcancelstate.c: Likewise.
+ * htl/pt-setcanceltype.c: Likewise.
+ * htl/pt-sigmask.c: Likewise.
+ * htl/pt-spin-inlines.c: Likewise.
+ * htl/pt-testcancel.c: Likewise.
+ * htl/pt-yield.c: Likewise.
+ * htl/tests/test-1.c: Likewise.
+ * htl/tests/test-10.c: Likewise.
+ * htl/tests/test-11.c: Likewise.
+ * htl/tests/test-12.c: Likewise.
+ * htl/tests/test-13.c: Likewise.
+ * htl/tests/test-14.c: Likewise.
+ * htl/tests/test-15.c: Likewise.
+ * htl/tests/test-16.c: Likewise.
+ * htl/tests/test-17.c: Likewise.
+ * htl/tests/test-2.c: Likewise.
+ * htl/tests/test-3.c: Likewise.
+ * htl/tests/test-4.c: Likewise.
+ * htl/tests/test-5.c: Likewise.
+ * htl/tests/test-6.c: Likewise.
+ * htl/tests/test-7.c: Likewise.
+ * htl/tests/test-8.c: Likewise.
+ * htl/tests/test-9.c: Likewise.
+ * htl/tests/test-__pthread_destroy_specific-skip.c: Likewise.
+ * sysdeps/htl/bits/cancelation.h: Likewise.
+ * sysdeps/htl/bits/pthread-np.h: Likewise.
+ * sysdeps/htl/bits/pthread.h: Likewise.
+ * sysdeps/htl/bits/pthreadtypes.h: Likewise.
+ * sysdeps/htl/bits/semaphore.h: Likewise.
+ * sysdeps/htl/bits/types/__pthread_key.h: Likewise.
+ * sysdeps/htl/bits/types/struct___pthread_attr.h: Likewise.
+ * sysdeps/htl/bits/types/struct___pthread_barrier.h: Likewise.
+ * sysdeps/htl/bits/types/struct___pthread_barrierattr.h: Likewise.
+ * sysdeps/htl/bits/types/struct___pthread_cond.h: Likewise.
+ * sysdeps/htl/bits/types/struct___pthread_condattr.h: Likewise.
+ * sysdeps/htl/bits/types/struct___pthread_mutex.h: Likewise.
+ * sysdeps/htl/bits/types/struct___pthread_mutexattr.h: Likewise.
+ * sysdeps/htl/bits/types/struct___pthread_once.h: Likewise.
+ * sysdeps/htl/bits/types/struct___pthread_rwlock.h: Likewise.
+ * sysdeps/htl/bits/types/struct___pthread_rwlockattr.h: Likewise.
+ * sysdeps/htl/old_pt-atfork.c: Likewise.
+ * sysdeps/htl/pt-atfork.c: Likewise.
+ * sysdeps/htl/pt-attr-destroy.c: Likewise.
+ * sysdeps/htl/pt-attr-getdetachstate.c: Likewise.
+ * sysdeps/htl/pt-attr-getguardsize.c: Likewise.
+ * sysdeps/htl/pt-attr-getinheritsched.c: Likewise.
+ * sysdeps/htl/pt-attr-getschedparam.c: Likewise.
+ * sysdeps/htl/pt-attr-getschedpolicy.c: Likewise.
+ * sysdeps/htl/pt-attr-getscope.c: Likewise.
+ * sysdeps/htl/pt-attr-getstack.c: Likewise.
+ * sysdeps/htl/pt-attr-getstackaddr.c: Likewise.
+ * sysdeps/htl/pt-attr-getstacksize.c: Likewise.
+ * sysdeps/htl/pt-attr-init.c: Likewise.
+ * sysdeps/htl/pt-attr-setdetachstate.c: Likewise.
+ * sysdeps/htl/pt-attr-setguardsize.c: Likewise.
+ * sysdeps/htl/pt-attr-setinheritsched.c: Likewise.
+ * sysdeps/htl/pt-attr-setschedparam.c: Likewise.
+ * sysdeps/htl/pt-attr-setschedpolicy.c: Likewise.
+ * sysdeps/htl/pt-attr-setscope.c: Likewise.
+ * sysdeps/htl/pt-attr-setstack.c: Likewise.
+ * sysdeps/htl/pt-attr-setstackaddr.c: Likewise.
+ * sysdeps/htl/pt-attr-setstacksize.c: Likewise.
+ * sysdeps/htl/pt-attr.c: Likewise.
+ * sysdeps/htl/pt-barrier-destroy.c: Likewise.
+ * sysdeps/htl/pt-barrier-init.c: Likewise.
+ * sysdeps/htl/pt-barrier-wait.c: Likewise.
+ * sysdeps/htl/pt-barrier.c: Likewise.
+ * sysdeps/htl/pt-barrierattr-destroy.c: Likewise.
+ * sysdeps/htl/pt-barrierattr-getpshared.c: Likewise.
+ * sysdeps/htl/pt-barrierattr-init.c: Likewise.
+ * sysdeps/htl/pt-barrierattr-setpshared.c: Likewise.
+ * sysdeps/htl/pt-cond-brdcast.c: Likewise.
+ * sysdeps/htl/pt-cond-destroy.c: Likewise.
+ * sysdeps/htl/pt-cond-init.c: Likewise.
+ * sysdeps/htl/pt-cond-signal.c: Likewise.
+ * sysdeps/htl/pt-cond-timedwait.c: Likewise.
+ * sysdeps/htl/pt-cond-wait.c: Likewise.
+ * sysdeps/htl/pt-cond.c: Likewise.
+ * sysdeps/htl/pt-condattr-destroy.c: Likewise.
+ * sysdeps/htl/pt-condattr-getclock.c: Likewise.
+ * sysdeps/htl/pt-condattr-getpshared.c: Likewise.
+ * sysdeps/htl/pt-condattr-init.c: Likewise.
+ * sysdeps/htl/pt-condattr-setclock.c: Likewise.
+ * sysdeps/htl/pt-condattr-setpshared.c: Likewise.
+ * sysdeps/htl/pt-destroy-specific.c: Likewise.
+ * sysdeps/htl/pt-equal.c: Likewise.
+ * sysdeps/htl/pt-getconcurrency.c: Likewise.
+ * sysdeps/htl/pt-getcpuclockid.c: Likewise.
+ * sysdeps/htl/pt-getschedparam.c: Likewise.
+ * sysdeps/htl/pt-getspecific.c: Likewise.
+ * sysdeps/htl/pt-init-specific.c: Likewise.
+ * sysdeps/htl/pt-key-create.c: Likewise.
+ * sysdeps/htl/pt-key-delete.c: Likewise.
+ * sysdeps/htl/pt-key.h: Likewise.
+ * sysdeps/htl/pt-mutex-destroy.c: Likewise.
+ * sysdeps/htl/pt-mutex-getprioceiling.c: Likewise.
+ * sysdeps/htl/pt-mutex-init.c: Likewise.
+ * sysdeps/htl/pt-mutex-lock.c: Likewise.
+ * sysdeps/htl/pt-mutex-setprioceiling.c: Likewise.
+ * sysdeps/htl/pt-mutex-timedlock.c: Likewise.
+ * sysdeps/htl/pt-mutex-trylock.c: Likewise.
+ * sysdeps/htl/pt-mutex-unlock.c: Likewise.
+ * sysdeps/htl/pt-mutexattr-destroy.c: Likewise.
+ * sysdeps/htl/pt-mutexattr-getprioceiling.c: Likewise.
+ * sysdeps/htl/pt-mutexattr-getprotocol.c: Likewise.
+ * sysdeps/htl/pt-mutexattr-getpshared.c: Likewise.
+ * sysdeps/htl/pt-mutexattr-gettype.c: Likewise.
+ * sysdeps/htl/pt-mutexattr-init.c: Likewise.
+ * sysdeps/htl/pt-mutexattr-setprioceiling.c: Likewise.
+ * sysdeps/htl/pt-mutexattr-setprotocol.c: Likewise.
+ * sysdeps/htl/pt-mutexattr-setpshared.c: Likewise.
+ * sysdeps/htl/pt-mutexattr-settype.c: Likewise.
+ * sysdeps/htl/pt-mutexattr.c: Likewise.
+ * sysdeps/htl/pt-once.c: Likewise.
+ * sysdeps/htl/pt-rwlock-attr.c: Likewise.
+ * sysdeps/htl/pt-rwlock-destroy.c: Likewise.
+ * sysdeps/htl/pt-rwlock-init.c: Likewise.
+ * sysdeps/htl/pt-rwlock-rdlock.c: Likewise.
+ * sysdeps/htl/pt-rwlock-timedrdlock.c: Likewise.
+ * sysdeps/htl/pt-rwlock-timedwrlock.c: Likewise.
+ * sysdeps/htl/pt-rwlock-tryrdlock.c: Likewise.
+ * sysdeps/htl/pt-rwlock-trywrlock.c: Likewise.
+ * sysdeps/htl/pt-rwlock-unlock.c: Likewise.
+ * sysdeps/htl/pt-rwlock-wrlock.c: Likewise.
+ * sysdeps/htl/pt-rwlockattr-destroy.c: Likewise.
+ * sysdeps/htl/pt-rwlockattr-getpshared.c: Likewise.
+ * sysdeps/htl/pt-rwlockattr-init.c: Likewise.
+ * sysdeps/htl/pt-rwlockattr-setpshared.c: Likewise.
+ * sysdeps/htl/pt-setconcurrency.c: Likewise.
+ * sysdeps/htl/pt-setschedparam.c: Likewise.
+ * sysdeps/htl/pt-setschedprio.c: Likewise.
+ * sysdeps/htl/pt-setspecific.c: Likewise.
+ * sysdeps/htl/pt-spin.c: Likewise.
+ * sysdeps/htl/pt-startup.c: Likewise.
+ * sysdeps/htl/pthread.h: Likewise.
+ * sysdeps/htl/sem-close.c: Likewise.
+ * sysdeps/htl/sem-destroy.c: Likewise.
+ * sysdeps/htl/sem-getvalue.c: Likewise.
+ * sysdeps/htl/sem-init.c: Likewise.
+ * sysdeps/htl/sem-open.c: Likewise.
+ * sysdeps/htl/sem-post.c: Likewise.
+ * sysdeps/htl/sem-timedwait.c: Likewise.
+ * sysdeps/htl/sem-trywait.c: Likewise.
+ * sysdeps/htl/sem-unlink.c: Likewise.
+ * sysdeps/htl/sem-wait.c: Likewise.
+ * sysdeps/hurd/htl/pt-kill.c: Likewise.
+ * sysdeps/i386/htl/pt-machdep.h: Likewise.
+ * sysdeps/mach/htl/pt-block.c: Likewise.
+ * sysdeps/mach/htl/pt-spin.c: Likewise.
+ * sysdeps/mach/htl/pt-stack-alloc.c: Likewise.
+ * sysdeps/mach/htl/pt-thread-alloc.c: Likewise.
+ * sysdeps/mach/htl/pt-thread-start.c: Likewise.
+ * sysdeps/mach/htl/pt-thread-terminate.c: Likewise.
+ * sysdeps/mach/htl/pt-timedblock.c: Likewise.
+ * sysdeps/mach/htl/pt-wakeup.c: Likewise.
+ * sysdeps/mach/hurd/htl/bits/pthread-np.h: Likewise.
+ * sysdeps/mach/hurd/htl/bits/types/struct___pthread_mutex.h: Likewise.
+ * sysdeps/mach/hurd/htl/pt-attr-setstackaddr.c: Likewise.
+ * sysdeps/mach/hurd/htl/pt-attr-setstacksize.c: Likewise.
+ * sysdeps/mach/hurd/htl/pt-docancel.c: Likewise.
+ * sysdeps/mach/hurd/htl/pt-hurd-cond-timedwait.c: Likewise.
+ * sysdeps/mach/hurd/htl/pt-hurd-cond-wait.c: Likewise.
+ * sysdeps/mach/hurd/htl/pt-mutex-consistent.c: Likewise.
+ * sysdeps/mach/hurd/htl/pt-mutex-destroy.c: Likewise.
+ * sysdeps/mach/hurd/htl/pt-mutex-getprioceiling.c: Likewise.
+ * sysdeps/mach/hurd/htl/pt-mutex-init.c: Likewise.
+ * sysdeps/mach/hurd/htl/pt-mutex-lock.c: Likewise.
+ * sysdeps/mach/hurd/htl/pt-mutex-setprioceiling.c: Likewise.
+ * sysdeps/mach/hurd/htl/pt-mutex-timedlock.c: Likewise.
+ * sysdeps/mach/hurd/htl/pt-mutex-transfer-np.c: Likewise.
+ * sysdeps/mach/hurd/htl/pt-mutex-trylock.c: Likewise.
+ * sysdeps/mach/hurd/htl/pt-mutex-unlock.c: Likewise.
+ * sysdeps/mach/hurd/htl/pt-mutex.h: Likewise.
+ * sysdeps/mach/hurd/htl/pt-mutexattr-destroy.c: Likewise.
+ * sysdeps/mach/hurd/htl/pt-mutexattr-getprioceiling.c: Likewise.
+ * sysdeps/mach/hurd/htl/pt-mutexattr-getprotocol.c: Likewise.
+ * sysdeps/mach/hurd/htl/pt-mutexattr-getpshared.c: Likewise.
+ * sysdeps/mach/hurd/htl/pt-mutexattr-getrobust.c: Likewise.
+ * sysdeps/mach/hurd/htl/pt-mutexattr-gettype.c: Likewise.
+ * sysdeps/mach/hurd/htl/pt-mutexattr-init.c: Likewise.
+ * sysdeps/mach/hurd/htl/pt-mutexattr-setprioceiling.c: Likewise.
+ * sysdeps/mach/hurd/htl/pt-mutexattr-setprotocol.c: Likewise.
+ * sysdeps/mach/hurd/htl/pt-mutexattr-setpshared.c: Likewise.
+ * sysdeps/mach/hurd/htl/pt-mutexattr-setrobust.c: Likewise.
+ * sysdeps/mach/hurd/htl/pt-mutexattr-settype.c: Likewise.
+ * sysdeps/mach/hurd/htl/pt-sigstate-destroy.c: Likewise.
+ * sysdeps/mach/hurd/htl/pt-sigstate-init.c: Likewise.
+ * sysdeps/mach/hurd/htl/pt-sigstate.c: Likewise.
+ * sysdeps/mach/hurd/htl/pt-sysdep.c: Likewise.
+ * sysdeps/mach/hurd/htl/pt-sysdep.h: Likewise.
+ * sysdeps/mach/hurd/i386/htl/pt-machdep.c: Likewise.
+ * sysdeps/mach/hurd/i386/htl/pt-setup.c: Likewise.
+
+ * NEWS: Announce that glibc now builds unpatched on GNU/Hurd.
+ * README: Remove the mention of out-of-tree patches needed for
+ GNU/Hurd.
+
+ * sysdeps/mach/hurd/bits/stat.h [!__USE_MISC && __USE_ATFILE]
+ (UTIME_NOW, UTIME_OMIT): Define macros.
+
+ * htl/cthreads-compat.c (__cthread_detach): Call __pthread_detach
+ instead of pthread_detach.
+ (__cthread_fork): Call __pthread_create instead of pthread_create.
+ (__cthread_keycreate): Call __pthread_key_create instead of
+ pthread_key_create.
+ (__cthread_getspecific): Call __pthread_getspecific instead of
+ pthread_getspecific.
+ (__cthread_setspecific): Call __pthread_setspecific instead of
+ pthread_setspecific.
+ * htl/pt-alloc.c (__pthread_alloc): Call __pthread_mutex_lock and
+ __pthread_mutex_unlock instead of pthread_mutex_lock and
+ pthread_mutex_unlock.
+ * htl/pt-cleanup.c (__pthread_get_cleanup_stack): Rename to
+ ___pthread_get_cleanup_stack.
+ (__pthread_get_cleanup_stack): New strong alias.
+ * htl/pt-create.c: Include <pthreadP.h>.
+ (entry_point): Call __pthread_exit instead of pthread_exit.
+ (pthread_create): Rename to __pthread_create.
+ (pthread_create): New strong alias.
+ * htl/pt-detach.c (pthread_detach): Rename to __pthread_detach.
+ (pthread_detach): New strong alias.
+ (__pthread_detach): Call __pthread_cond_broadcast instead of
+ pthread_cond_broadcast.
+ * htl/pt-exit.c: Include <pthreadP.h>.
+ (__pthread_exit): Call __pthread_setcancelstate and
+ ___pthread_get_cleanup_stack instead of pthread_setcancelstate and
+ __pthread_get_cleanup_stack.
+ * htl/pt-testcancel.c: Include <pthreadP.h>.
+ (pthread_testcancel): Call __pthread_exit instead of pthread_exit.
+ * sysdeps/htl/pt-attr-getstack.c: Include <pthreadP.h>
+ (__pthread_attr_getstack): Call __pthread_attr_getstackaddr and
+ __pthread_attr_getstacksize instead of pthread_attr_getstackaddr and
+ pthread_attr_getstacksize.
+ * sysdeps/htl/pt-attr-getstackaddr.c (pthread_attr_getstackaddr):
+ Rename to __pthread_attr_getstackaddr.
+ (pthread_attr_getstackaddr): New strong alias.
+ * sysdeps/htl/pt-attr-getstacksize.c (pthread_attr_getstacksize):
+ Rename to __pthread_attr_getstacksize.
+ (pthread_attr_getstacksize): New strong alias.
+ * sysdeps/htl/pt-attr-setstack.c: Include <pthreadP.h>.
+ (pthread_attr_setstack): Rename to __pthread_attr_setstack.
+ (pthread_attr_setstack): New strong alias.
+ (__pthread_attr_setstack): Call __pthread_attr_getstacksize,
+ __pthread_attr_setstacksize and __pthread_attr_setstackaddr instead of
+ pthread_attr_getstacksize, pthread_attr_setstacksize and
+ pthread_attr_setstackaddr.
+ * sysdeps/htl/pt-attr-setstackaddr.c (pthread_attr_setstackaddr):
+ Rename to __pthread_attr_setstackaddr.
+ (pthread_attr_setstackaddr): New strong alias.
+ * sysdeps/htl/pt-attr-setstacksize.c (pthread_attr_setstacksize):
+ Rename to __pthread_attr_setstacksize.
+ (pthread_attr_setstacksize): New strong alias.
+ * sysdeps/htl/pt-cond-timedwait.c: Include <pthreadP.h>.
+ (__pthread_cond_timedwait_internal): Use __pthread_exit instead of
+ pthread_exit.
+ * sysdeps/htl/pt-key-create.c: Include <pthreadP.h>.
+ (__pthread_key_create): New hidden def.
+ * sysdeps/htl/pt-key.h: Include <pthreadP.h>.
+ * sysdeps/htl/pthreadP.h (_pthread_mutex_init,
+ __pthread_cond_broadcast, __pthread_create, __pthread_detach,
+ __pthread_exit, __pthread_key_create, __pthread_getspecific,
+ __pthread_setspecific, __pthread_setcancelstate,
+ __pthread_attr_getstackaddr, __pthread_attr_setstackaddr,
+ __pthread_attr_getstacksize, __pthread_attr_setstacksize,
+ __pthread_attr_setstack, ___pthread_get_cleanup_stack): New
+ declarations.
+ (__pthread_key_create, _pthread_mutex_init): New hidden declarations.
+ * sysdeps/mach/hurd/htl/pt-attr-setstackaddr.c
+ (pthread_attr_setstackaddr): Rename to __pthread_attr_setstackaddr.
+ (pthread_attr_setstackaddr): New strong alias.
+ * sysdeps/mach/hurd/htl/pt-attr-setstacksize.c
+ (pthread_attr_setstacksize): Rename to __pthread_attr_setstacksize.
+ (pthread_attr_setstacksize): New strong alias.
+ * sysdeps/mach/hurd/htl/pt-docancel.c: Include <pthreadP.h>.
+ (call_exit): Call __pthread_exit instead of pthread_exit.
+ * sysdeps/mach/hurd/htl/pt-mutex-init.c: Include <pthreadP.h>.
+ (_pthread_mutex_init): New hidden definition.
+ * sysdeps/mach/hurd/htl/pt-sysdep.c: Include <pthreadP.h>.
+ (_init_routine): Call __pthread_attr_init and __pthread_attr_setstack
+ instead of pthread_attr_init and pthread_attr_setstack.
+
+ * hurd/hurdauth.c (_S_msg_add_auth): Call __vm_allocate and
+ __vm_deallocate instead of vm_allocate and vm_deallocate.
+ * hurd/hurdmsg.c (_S_msg_set_env_variable): Call __setenv instead of
+ setenv.
+ * hurd/hurdprio.c (_hurd_priority_which_map): Call __geteuid instead
+ of geteuid.
+ * hurd/path-lookup.c (file_name_path_scan): Call __strdup instead of
+ strdup.
+ * hurd/siginfo.c: Include <libioP.h>.
+ (_hurd_siginfo_handler): Call _IO_puts instead of puts.
+ * hurd/xattr.c (_hurd_xattr_get, _hurd_xattr_set): Call __munmap instead of
+ munmap.
+ * mach/devstream.c: Include <libioP.h>.
+ (dealloc_ref): Call __mach_port_deallocate instead of
+ mach_port_deallocate.
+ (mach_open_devstream): Call _IO_fopencookie instead of fopencookie.
+ Call __mach_port_deallocate instead of mach_port_deallocate.
+ * stdlib/canonicalize.c (__realpath): Call __pathconf instead of
+ pathconf.
+ * sysdeps/mach/hurd/ifreq.c (__ifreq): Call __munmap instead of
+ munmap.
+ * sysdeps/mach/hurd/ifreq.h (__if_freereq): Likewise.
+ * sysdeps/mach/hurd/ptrace.c (ptrace): Call __kill instead of kill.
+ * sysdeps/mach/hurd/sendfile64.c (sendfile64): Call __munmap instead
+ of munmap.
+ * sysdeps/mach/hurd/socketpair.c (__socketpair): Call __close instead
+ of close.
+ * sysdeps/posix/clock_getres.c (realtime_getres): Call __sysconf
+ instead of sysconf.
+ * sysdeps/pthread/timer_gettime.c (timer_gettime): Call
+ __clock_gettime instead of clock_gettime.
+ * sysdeps/pthread/timer_routines.c (thread_func): Likewise.
+ * sysdeps/pthread/timer_settime.c (timer_settime): Likewise.
+ * sysdeps/unix/bsd/gtty.c (gtty): Call __ioctl instead of ioctl.
+ * sysdeps/unix/bsd/stty.c (stty): Likewise.
+ * sysdeps/unix/bsd/tcflow.c (tcflow): Call __tcgetattr instead of
+ tcgetattr.
+ * sysdeps/unix/clock_nanosleep.c (__clock_nanosleep): Call
+ __clock_gettime and __nanosleep instead of clock_gettime and
+ nanosleep.
+ * hurd/catch-signal.c (hurd_catch_signal): Rename to
+ __hurd_catch_signal.
+ (hurd_catch_signal): New strong alias.
+ (hurd_safe_memset, hurd_safe_copyout, hurd_safe_copyin): Call
+ __hurd_catch_signal instead of hurd_catch_signal.
+ * hurd/exc2signal.c (_hurd_exception2signal): Add hidden def.
+ * hurd/hurdexec.c (_hurd_init): Add hidden def.
+ * hurd/hurdinit.c (_hurd_init): Add hidden def.
+ * hurd/hurdsig.c: Include <mach/mig_support.h>.
+ (_hurd_thread_sigstate): Add hidden def.
+ (_hurd_internal_post_signal): Use __mutex_unlock instead of
+ mutex_unlock.
+ * hurd/intern-fd.c (_hurd_intern_fd): Add hidden def.
+ * hurd/intr-msg.c (_hurd_intr_rpc_mach_msg): Add hidden def.
+ * hurd/path-lookup.c (hurd_file_name_path_lookup): Rename to
+ __hurd_file_name_path_lookup.
+ (hurd_file_name_path_lookup): New strong alias.
+ (file_name_path_lookup): Call __hurd_file_name_path_lookup instead of
+ hurd_file_name_path_lookup.
+ * mach/errstring.c (mach_error_type): Add hidden def.
+ * mach/msg-destroy.c (__mach_msg_destroy): Add hidden def.
+ * mach/mutex-init.c (__mutex_init): Add hidden def.
+ * mach/spin-lock.c (__spin_lock_locked, __spin_lock, __spin_unlock,
+ __spin_try_lock, __mutex_lock, __mutex_trylock): Add hidden defs.
+ * mach/spin-solid.c (__spin_lock_solid): Add hidden def.
+ * sysdeps/mach/hurd/getcwd.c
+ (_hurd_canonicalize_directory_name_internal): Rename to
+ __hurd_canonicalize_directory_name_internal.
+ (_hurd_canonicalize_directory_name_internal): New strong alias.
+ (__canonicalize_directory_name_internal, __getcwd): Call
+ __hurd_canonicalize_directory_name_internal instead of
+ _hurd_canonicalize_directory_name_internal.
+ * sysdeps/mach/hurd/mig-reply.c: Include <mach/mig_support.h>.
+ (__mig_get_reply_port, __mig_dealloc_reply_port, __mig_init): Add
+ hidden defs.
+ * sysdeps/hurd/include/hurd.h: New file.
+ * sysdeps/hurd/include/hurd/fd.h: New file.
+ * sysdeps/hurd/include/hurd/signal.h: New file.
+ * sysdeps/mach/include/lock-intern.h: New file.
+ * sysdeps/mach/include/mach.h: New file.
+ * sysdeps/mach/include/mach/mig_support.h: New file.
+ * sysdeps/mach/include/mach_error.h: New file.
+ * sysdeps/hurd/include/hurd/signal.h (_hurd_raise_signal): Add hidden
+ prototype.
+ * hurd/hurd-raise.c (_hurd_raise_signal): Add hidden def.
+ * hurd/Makefile ($(inlines:%=$(objpfx)%.c): Define
+ _HEADER_H_HIDDEN_DEF macro.
+ * sysdeps/hurd/include/hurd/fd.h (_hurd_fd_error,
+ _hurd_fd_error_signal): Add hidden prototype.
+ [_HURD_FD_H_HIDDEN_DEF] (_hurd_fd_error, _hurd_fd_error_signal): Add
+ hidden def.
+ * libio/iolibio.h (_IO_puts): New hidden prototype.
+ * libio/ioputs.c (_IO_puts): New hidden def.
+ * sysdeps/mach/hurd/localplt.data: New file.
+
+2018-04-02 Agustina Arzille <avarzille@riseup.net>
+ Amos Jeffries <squid3@treenet.co.nz>
+ David Michael <fedora.dm0@gmail.com>
+ Marco Gerards <marco@gnu.org>
+ Marcus Brinkmann <marcus@gnu.org>
+ Neal H. Walfield <neal@gnu.org>
+ Pino Toscano <toscano.pino@tiscali.it>
+ Richard Braun <rbraun@sceen.net>
+ Roland McGrath <roland@gnu.org>
+ Samuel Thibault <samuel.thibault@ens-lyon.org>
+ Thomas DiModica <ricinwich@yahoo.com>
+ Thomas Schwinge <tschwinge@gnu.org>
+
+ * htl: New directory.
+ * sysdeps/htl: New directory.
+ * sysdeps/hurd/htl: New directory.
+ * sysdeps/i386/htl: New directory.
+ * sysdeps/mach/htl: New directory.
+ * sysdeps/mach/hurd/htl: New directory.
+ * sysdeps/mach/hurd/i386/htl: New directory.
+ * nscd/Depend, resolv/Depend, rt/Depend: Add htl dependency.
+ * sysdeps/mach/hurd/i386/Implies: Add mach/hurd/i386/htl imply.
+ * sysdeps/mach/hurd/i386/libpthread.abilist: New file.
+
+2018-04-02 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * sysdeps/pthread/timer_routines.c (__timer_thread_start): Block all
+ signals in thread created for runing timers.
+
+2018-04-01 Florian Weimer <fweimer@redhat.com>
+
+ * support/support_format_addrinfo.c (support_format_addrinfo):
+ Include unknown error number in formatted result.
+
+2018-03-29 Florian Weimer <fweimer@redhat.com>
+
+ * sysdeps/unix/sysv/linux/i386/tst-bz21269.c (do_test): Also
+ capture SIGBUS.
+
+2018-03-27 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/unix/sysv/linux/arch-fork.h [__ASSUME_CLONE_BACKWARDS]
+ (arch_fork): Issue INLINE_CLONE_SYSCALL if defined.
+ * sysdeps/unix/sysv/linux/sparc/kernel-features.h
+ (__ASSUME_CLONE_BACKWARDS): Define.
+
+2018-03-27 Jesse Hathaway <jesse@mbuki-mvuki.org>
+
+ [BZ #23024]
+ * sysdeps/unix/sysv/linux/getlogin_r.c (__getlogin_r_loginuid): Return
+ early when linux sentinel value is set.
+
+2018-03-27 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * sysdeps/mach/hurd/bits/posix_opt.h (_POSIX_MEMLOCK): Define.
+
+2018-03-27 Andreas Schwab <schwab@suse.de>
+
+ [BZ #23005]
+ * resolv/res_send.c (__res_context_send): Return ENOMEM if
+ allocation of private copy of nsaddr_list fails.
+
+2018-03-26 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #16552]
+ * sysdeps/unix/sysv/linux/generic/umount.c: Move to ....
+ * sysdeps/unix/sysv/linux/umount.c: ... here.
+ * sysdeps/unix/sysv/linux/arm/umount.c: Remove file.
+ * sysdeps/unix/sysv/linux/hppa/umount.c: Likewise.
+ * sysdeps/unix/sysv/linux/ia64/umount.c: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/umount.c: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/umount.c: Likewise.
+ * sysdeps/unix/sysv/linux/umount.S: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/umount.c: Likewise.
+
+2018-03-26 Andreas Schwab <schwab@suse.de>
+
+ * elf/elf.h (R_RISCV_BRANCH, R_RISCV_JAL, R_RISCV_CALL)
+ (R_RISCV_CALL_PLT, R_RISCV_GOT_HI20, R_RISCV_TLS_GOT_HI20)
+ (R_RISCV_TLS_GD_HI20, R_RISCV_PCREL_HI20, R_RISCV_PCREL_LO12_I)
+ (R_RISCV_PCREL_LO12_S, R_RISCV_HI20, R_RISCV_LO12_I)
+ (R_RISCV_LO12_S, R_RISCV_TPREL_HI20, R_RISCV_TPREL_LO12_I)
+ (R_RISCV_TPREL_LO12_S, R_RISCV_TPREL_ADD, R_RISCV_ADD8)
+ (R_RISCV_ADD16, R_RISCV_ADD32, R_RISCV_ADD64, R_RISCV_SUB8)
+ (R_RISCV_SUB16, R_RISCV_SUB32, R_RISCV_SUB64)
+ (R_RISCV_GNU_VTINHERIT, R_RISCV_GNU_VTENTRY, R_RISCV_ALIGN)
+ (R_RISCV_RVC_BRANCH, R_RISCV_RVC_JUMP, R_RISCV_RVC_LUI)
+ (R_RISCV_GPREL_I, R_RISCV_GPREL_S, R_RISCV_TPREL_I)
+ (R_RISCV_TPREL_S, R_RISCV_RELAX, R_RISCV_SUB6, R_RISCV_SET6)
+ (R_RISCV_SET8, R_RISCV_SET16, R_RISCV_SET32, R_RISCV_32_PCREL)
+ (R_RISCV_NUM): Define.
+
+2018-03-25 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * include/errno.h [IS_IN(rtld) && !RTLD_PRIVATE_ERRNO]: Do not use the
+ TLS declaration of errno.
+ * sysdeps/generic/libc-start.h [!SHARED] (ARCH_SETUP_TLS): Define to
+ __libc_setup_tls.
+ * sysdeps/unix/sysv/linux/powerpc/libc-start.h [!SHARED]
+ (ARCH_SETUP_TLS): Likewise.
+ * sysdeps/mach/hurd/libc-start.h: New file copied from
+ sysdeps/generic/libc-start.h, but define ARCH_SETUP_TLS to empty.
+ * csu/libc-start.c [!SHARED] (LIBC_START_MAIN): Call ARCH_SETUP_TLS
+ instead of __libc_setup_tls.
+ * sysdeps/mach/hurd/i386/init-first.c [!SHARED] (init1): Call
+ __libc_setup_tls before initializing libpthread and running _hurd_init
+ which starts the signal thread.
+ * sysdeps/generic/ldsodefs.h [SHARED] (__pthread_initialize_minimal):
+ Declare function.
+ * sysdeps/mach/hurd/bits/errno.h: Regenerate.
+
+2018-03-24 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #22998]
+ * elf/Makefile (tests): Add $(tests-execstack-$(have-z-execstack))
+ after it is defined.
+
+2018-03-23 Andrew Senkevich <andrew.senkevich@intel.com>
+ Max Horn <max@quendi.de>
+
+ [BZ #22644]
+ CVE-2017-18269
+ * sysdeps/i386/i686/multiarch/memcpy-sse2-unaligned.S: Fixed
+ branch conditions.
+ * string/test-memmove.c (do_test2): New testcase.
+
+2018-03-22 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/generic/frame.h: Remove file.
+ * sysdeps/arm/frame.h: Likewise.
+ * sysdeps/hppa/frame.h: Likewise.
+ * sysdeps/generic/sigcontextinfo.h (SIGCONTEXT_EXTRA_ARGS): Remove
+ macro.
+ (GET_FRAME): Likewise.
+ (GET_STACK): Likewise.
+ (CALL_SIGHANDLER): Likewise.
+ * sysdeps/mach/hurd/i386/sigcontextinfo.h (SIGCONTEXT_EXTRA_ARGS):
+ Likewise.
+ (GET_FRAME): Likewise.
+ (GET_STACK): Likewise.
+ (CALL_SIGHANDLER): Likewise.
+ * sysdeps/unix/sysv/linux/alpha/sigcontextinfo.h
+ (SIGCONTEXT_EXTRA_ARGS): Likewise.
+ (GET_FRAME): Likewise.
+ (GET_STACK): Likewise.
+ (CALL_SIGHANDLER): Likewise.
+ * sysdeps/unix/sysv/linux/arm/sigcontextinfo.h
+ (SIGCONTEXT_EXTRA_ARGS): Likewise.
+ (GET_FRAME): Likewise.
+ (GET_STACK): Likewise.
+ (ADVANCE_STACK_FRAME): Likewise.
+ (CALL_SIGHANDLER): Likewise.
+ * sysdeps/unix/sysv/linux/i386/sigcontextinfo.h
+ (SIGCONTEXT_EXTRA_ARGS): Likewise.
+ (GET_FRAME): Likewise.
+ (GET_STACK): Likewise.
+ (CALL_SIGHANDLER): Likewise.
+ * sysdeps/unix/sysv/linux/ia64/sigcontextinfo.h
+ (SIGCONTEXT_EXTRA_ARGS): Likewise.
+ (GET_FRAME): Likewise.
+ (GET_STACK): Likewise.
+ (CALL_SIGHANDLER): Likewise.
+ * sysdeps/unix/sysv/linux/m68k/sigcontextinfo.h
+ (SIGCONTEXT_EXTRA_ARGS): Likewise.
+ (GET_FRAME): Likewise.
+ (GET_STACK): Likewise.
+ (CALL_SIGHANDLER): Likewise.
+ * sysdeps/unix/sysv/linux/microblaze/sigcontextinfo.h
+ (SIGCONTEXT_EXTRA_ARGS): Likewise.
+ (GET_FRAME): Likewise.
+ (GET_STACK): Likewise.
+ (CALL_SIGHANDLER): Likewise.
+ * sysdeps/unix/sysv/linux/mips/sigcontextinfo.h
+ (SIGCONTEXT_EXTRA_ARGS): Likewise.
+ (GET_FRAME): Likewise.
+ (GET_STACK): Likewise.
+ (CALL_SIGHANDLER): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/sigcontextinfo.h
+ (SIGCONTEXT_EXTRA_ARGS): Likewise.
+ (GET_FRAME): Likewise.
+ (GET_STACK): Likewise.
+ (CALL_SIGHANDLER): Likewise.
+ * sysdeps/unix/sysv/linux/riscv/sigcontextinfo.h
+ (SIGCONTEXT_EXTRA_ARGS): Likewise.
+ (GET_FRAME): Likewise.
+ (GET_STACK): Likewise.
+ (CALL_SIGHANDLER): Likewise.
+ * sysdeps/unix/sysv/linux/s390/sigcontextinfo.h
+ (SIGCONTEXT_EXTRA_ARGS): Likewise.
+ (GET_FRAME): Likewise.
+ (GET_STACK): Likewise.
+ (CALL_SIGHANDLER): Likewise.
+ * sysdeps/unix/sysv/linux/sh/sigcontextinfo.h
+ (SIGCONTEXT_EXTRA_ARGS): Likewise.
+ (GET_FRAME): Likewise.
+ (GET_STACK): Likewise.
+ (CALL_SIGHANDLER): Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h
+ (SIGCONTEXT_EXTRA_ARGS): Likewise.
+ (FIRST_FRAME_POINTER): Likewise.
+ (ADVANCE_STACK_FRAME): Likewise.
+ (GET_STACK): Likewise.
+ (GET_FRAME): Likewise.
+ (CALL_SIGHANDLER): Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h
+ (SIGCONTEXT_EXTRA_ARGS): Likewise.
+ (ADVANCE_STACK_FRAME): Likewise.
+ (GET_STACK): Likewise.
+ (GET_FRAME): Likewise.
+ (CALL_SIGHANDLER): Likewise.
+ * sysdeps/unix/sysv/linux/tile/sigcontextinfo.h
+ (SIGCONTEXT_EXTRA_ARGS): Likewise.
+ (GET_FRAME): Likewise.
+ (GET_STACK): Likewise.
+ (CALL_SIGHANDLER): Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/sigcontextinfo.h
+ (SIGCONTEXT_EXTRA_ARGS): Likewise.
+ (GET_FRAME): Likewise.
+ (GET_STACK): Likewise.
+ (CALL_SIGHANDLER): Likewise.
+
+2018-03-21 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/x86_64/backtrace.c: Move to ....
+ * debug/backtrace.c: ... here.
+ * sysdeps/aarch64/backtrace.c: Remove file.
+ * sysdeps/alpha/backtrace.c: Likewise.
+ * sysdeps/hppa/backtrace.c: Likewise.
+ * sysdeps/ia64/backtrace.c: Likewise.
+ * sysdeps/mips/backtrace.c: Likewise.
+ * sysdeps/nios2/backtrace.c: Likewise.
+ * sysdeps/riscv/backtrace.c: Likewise.
+ * sysdeps/sh/backtrace.c: Likewise.
+ * sysdeps/tile/backtrace.c: Likewise.
+
+2018-03-20 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #22987]
+ * sysdeps/powerpc/bits/mathinline.h (fdim): Remove inline
+ function.
+ (fdimf): Likewise.
+ * sysdeps/sparc/fpu/bits/mathinline.h: Remove file.
+
+ [BZ #17343]
+ * stdlib/random_r.c (__random_r): Use unsigned arithmetic for
+ possibly overflowing computations.
+
+2018-03-20 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * manual/errno.texi (EOWNERDEAD, ENOTRECOVERABLE): Remove errno
+ values from Linux-specific section now that it is in the GNU section.
+ * sysdeps/gnu/errlist.c: Regenerate.
+
+2018-03-20 Joseph Myers <joseph@codesourcery.com>
+
+ * math/Makefile (libm-narrow-fns): Add sub.
+ (libm-test-funcs-narrow): Likewise.
+ * math/Versions (GLIBC_2.28): Add narrowing subtract functions.
+ * math/bits/mathcalls-narrow.h (sub): Use __MATHCALL_NARROW.
+ * math/gen-auto-libm-tests.c (test_functions): Add sub.
+ * math/math-narrow.h (CHECK_NARROW_SUB): New macro.
+ (NARROW_SUB_ROUND_TO_ODD): Likewise.
+ (NARROW_SUB_TRIVIAL): Likewise.
+ * sysdeps/ieee754/float128/float128_private.h (__fsubl): New
+ macro.
+ (__dsubl): Likewise.
+ * sysdeps/ieee754/ldbl-opt/Makefile (libnldbl-calls): Add fsub and
+ dsub.
+ (CFLAGS-nldbl-dsub.c): New variable.
+ (CFLAGS-nldbl-fsub.c): Likewise.
+ * sysdeps/ieee754/ldbl-opt/Versions (GLIBC_2.28): Add
+ __nldbl_dsubl.
+ * sysdeps/ieee754/ldbl-opt/nldbl-compat.h (__nldbl_dsubl): New
+ prototype.
+ * manual/arith.texi (Misc FP Arithmetic): Document fsub, fsubl,
+ dsubl, fMsubfN, fMsubfNx, fMxsubfN and fMxsubfNx.
+ * math/auto-libm-test-in: Add tests of sub.
+ * math/auto-libm-test-out-narrow-sub: New generated file.
+ * math/libm-test-narrow-sub.inc: New file.
+ * sysdeps/i386/fpu/s_f32xsubf64.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_f32xsubf64.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_fsub.c: Likewise.
+ * sysdeps/ieee754/float128/s_f32subf128.c: Likewise.
+ * sysdeps/ieee754/float128/s_f64subf128.c: Likewise.
+ * sysdeps/ieee754/float128/s_f64xsubf128.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/s_dsubl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/s_f64xsubf128.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/s_fsubl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_dsubl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_fsubl.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/s_dsubl.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/s_fsubl.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/nldbl-dsub.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/nldbl-fsub.c: Likewise.
+ * sysdeps/ieee754/soft-fp/s_dsubl.c: Likewise.
+ * sysdeps/ieee754/soft-fp/s_fsub.c: Likewise.
+ * sysdeps/ieee754/soft-fp/s_fsubl.c: Likewise.
+ * sysdeps/powerpc/fpu/libm-test-ulps: Update.
+ * sysdeps/mach/hurd/i386/libm.abilist: Likewise.
+ * 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/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/libm-le.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/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/tile/tilegx32/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilegx64/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
+
+2018-03-19 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #20079]
+ * elf/elf.h (SHT_X86_64_UNWIND): New macro.
+
+2018-03-19 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * benchtests/bench-timing.h (attribute_hidden): Undefine.
+
+2018-03-18 Richard Braun <rbraun@sceen.net>
+
+ * sysdeps/mach/hurd/i386/tls.h (_hurd_tls_init): Use a temporary
+ thread reference.
+
+2018-03-18 Agustina Arzille <avarzille@riseup.net>
+
+ * sysdeps/mach/libc-lock.h (__libc_cleanup_frame): Define structure.
+ (__libc_cleanup_fct): Define function.
+ (__libc_cleanup_region_start, __libc_cleanup_region_end,
+ __libc_cleanup_end): Rewrite implementation using
+ __attribute__ ((__cleanup__)).
+ (__libc_cleanup_push, __libc_cleanup_pop): New macros.
+ * hurd/Makefile (routines): Add hurdlock.
+ * hurd/Versions (GLIBC_PRIVATE): Added new entry to export the above
+ interface.
+ (HURD_CTHREADS_0.3): Remove __libc_getspecific.
+ * hurd/hurdpid.c: Include <lowlevellock.h>
+ (_S_msg_proc_newids): Use lll_wait to synchronize.
+ * hurd/hurdsig.c: (reauth_proc): Use __mutex_lock and __mutex_unlock.
+ * hurd/setauth.c: Include <hurdlock.h>, use integer for synchronization.
+ * mach/Makefile (lock-headers): Remove machine-lock.h.
+ * mach/lock-intern.h: Include <lowlevellock.h> instead of
+ <machine-lock.h>.
+ (__spin_lock_t): New type.
+ (__SPIN_LOCK_INITIALIZER): New macro.
+ (__spin_lock, __spin_unlock, __spin_try_lock, __spin_lock_locked,
+ __mutex_init, __mutex_lock_solid, __mutex_unlock_solid, __mutex_lock,
+ __mutex_unlock, __mutex_trylock): Use lll to implement locks.
+ * mach/mutex-init.c: Include <lowlevellock.h> instead of <cthreads.h>.
+ (__mutex_init): Initialize with lll.
+ * manual/errno.texi (EOWNERDEAD, ENOTRECOVERABLE): New errno values.
+ * sysdeps/mach/Makefile: Add libmachuser as dependencies for libs
+ needing lll.
+ * sysdeps/mach/hurd/bits/errno.h: Regenerate.
+ * sysdeps/mach/hurd/cthreads.c (__libc_getspecific): Remove function.
+ * sysdeps/mach/hurd/bits/libc-lock.h: Remove file.
+ * sysdeps/mach/hurd/setpgid.c: Include <lowlevellock.h>.
+ (__setpgid): Use lll for synchronization.
+ * sysdeps/mach/hurd/setsid.c: Likewise with __setsid.
+ * sysdeps/mach/bits/libc-lock.h: Include <tls.h> and <lowlevellock.h>
+ instead of <cthreads.h>.
+ (_IO_lock_inexpensive): New macro
+ (__libc_lock_recursive_t, __rtld_lock_recursive_t): New structures.
+ (__libc_lock_self0): New declaration.
+ (__libc_lock_owner_self): New macro.
+ (__libc_key_t): Remove type.
+ (_LIBC_LOCK_INITIALIZER): New macro.
+ (__libc_lock_define_initialized, __libc_lock_init, __libc_lock_fini,
+ __libc_lock_fini_recursive, __rtld_lock_fini_recursive,
+ __libc_lock_lock, __libc_lock_trylock, __libc_lock_unlock,
+ __libc_lock_define_initialized_recursive,
+ __rtld_lock_define_initialized_recursive,
+ __libc_lock_init_recursive, __libc_lock_trylock_recursive,
+ __libc_lock_lock_recursive, __libc_lock_unlock_recursive,
+ __rtld_lock_initialize, __rtld_lock_trylock_recursive,
+ __rtld_lock_lock_recursive, __rtld_lock_unlock_recursive
+ __libc_once_define, __libc_mutex_unlock): Reimplement with lll.
+ (__libc_lock_define_recursive, __rtld_lock_define_recursive,
+ _LIBC_LOCK_RECURSIVE_INITIALIZER, _RTLD_LOCK_RECURSIVE_INITIALIZER):
+ New macros.
+ Include <libc-lockP.h> to reimplement libc_key* with pthread_key*.
+ * hurd/hurdlock.c: New file.
+ * hurd/hurdlock.h: New file.
+ * mach/lowlevellock.h: New file
+
+2018-03-18 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * sysdeps/mach/hurd/cthreads.c: Include <cthreads.h>.
+ * hurd/lookup-retry.c (__hurd_file_name_lookup_retry): Return ELOOP
+ when opening a symlink with O_NOFOLLOW.
+ * hurd/hurdlookup.c (__hurd_file_name_lookup): Do not append '/' to
+ path when flags contains O_NOFOLLOW.
+ * hurd/lookup-retry.c (__hurd_file_name_lookup_retry): Return ENOTDIR
+ if flags contains O_DIRECTORY and the result is a directory.
+ * sysdeps/mach/hurd/i386/init-first.c (init): Also find ELF headers by
+ oneself when the pointer given in D is nul (as set by ext2fs).
+ * sysdeps/mach/hurd/mlockall.c: New file.
+ * sysdeps/mach/hurd/munlockall.c: New file.
+
+2018-03-17 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * hurd/hurdsig.c: Include <pthread.h>.
+ (_hurdsig_init): Call pthread_getattr_np and pthread_attr_getstack to
+ get the signal thread stack layout.
+ * hurd/Makefile (headers): Remove threadvar.h.
+ (inline-headers): Remove threadvar.h.
+ * hurd/Versions (GLIBC_2.0: Remove __hurd_sigthread_stack_base,
+ __hurd_sigthread_stack_end, __hurd_sigthread_variables,
+ __hurd_threadvar_max, __hurd_errno_location.
+ (HURD_CTHREADS_0.3): Add pthread_getattr_np, pthread_attr_getstack.
+ * hurd/hurd/signal.h: Do not include <hurd/threadvar.h>.
+ (_hurd_self_sigstate): Use THREAD_SELF to get _hurd_sigstate.
+ (_HURD_SIGNAL_H_EXTERN_INLINE): Use THREAD_SELF to get _hurd_sigstate,
+ unless TLS is not initialized yet, in which case we do not need a
+ critical section yet anyway.
+ * hurd/hurd/threadvar.h: Include <tls.h>, do not include
+ <machine-sp.h>.
+ (__hurd_sigthread_variables, __hurd_threadvar_max): Remove variables
+ declarations.
+ (__hurd_threadvar_index): Remove enum.
+ (_HURD_THREADVAR_H_EXTERN_INLINE): Remove macro.
+ (__hurd_threadvar_location_from_sp,__hurd_threadvar_location): Remove
+ inlines.
+ (__hurd_reply_port0): New variable declaration.
+ (__hurd_local_reply_port): New macro.
+ * hurd/hurdsig.c (__hurd_sigthread_variables): Remove variable.
+ (interrupted_reply_port_location): Add thread_t parameter. Use it
+ with THREAD_TCB to access thread-local variables.
+ (_hurdsig_abort_rpcs): Pass ss->thread to
+ interrupted_reply_port_location.
+ (_hurd_internal_post_signal): Likewise.
+ (_hurdsig_init): Use presence of cthread_fork instead of
+ __hurd_threadvar_stack_mask to start signal thread by hand.
+ Remove signal thread threadvar initialization.
+ * hurd/hurdstartup.c: Do not include <hurd/threadvar.h>
+ * hurd/sigunwind.c: Include <hurd/threadvar.h>
+ (_hurdsig_longjmp_from_handler): Use __hurd_local_reply_port instead
+ of threadvar.
+ * sysdeps/mach/hurd/Versions (libc.GLIBC_PRIVATE): Add
+ __libc_lock_self0.
+ (ld.GLIBC_2.0): Remove __hurd_sigthread_stack_base,
+ __hurd_sigthread_stack_end, __hurd_sigthread_variables.
+ (ld.GLIBC_PRIVATE): Add __libc_lock_self0.
+ * sysdeps/mach/hurd/cthreads.c: Add __libc_lock_self0.
+ * sysdeps/mach/hurd/dl-sysdep.c (errno, __hurd_sigthread_stack_base,
+ __hurd_sigthread_stack_end, __hurd_sigthread_variables, threadvars,
+ __hurd_threadvar_stack_offset, __hurd_threadvar_stack_mask): Do not
+ define variables.
+ * sysdeps/mach/hurd/errno-loc.c: Do not include <errno.h> and
+ <hurd/threadvar.h>.
+ [IS_IN(rtld)] (rtld_errno): New variable.
+ [IS_IN(rtld)] (__errno_location): New weak function.
+ [!IS_IN(rtld)]: Include "../../../csu/errno-loc.c".
+ * sysdeps/mach/hurd/errno.c: Remove file.
+ * sysdeps/mach/hurd/fork.c: Include <hurd/threadvar.h>
+ (__fork): Remove THREADVAR_SPACE macro and its use.
+ * sysdeps/mach/hurd/i386/init-first.c (__hurd_threadvar_max): Remove
+ variable.
+ (init): Do not initialize threadvar.
+ * sysdeps/mach/hurd/i386/libc.abilist (__hurd_threadvar_max): Remove
+ symbol.
+ * sysdeps/mach/hurd/i386/sigreturn.c (__sigreturn): Use
+ __hurd_local_reply_port instead of threadvar.
+ * sysdeps/mach/hurd/i386/tls.h (tcbhead_t): Add reply_port and
+ _hurd_sigstate fields.
+ (HURD_DESC_TLS, __LIBC_NO_TLS, THREAD_TCB): New macro.
+ * sysdeps/mach/hurd/i386/trampoline.c: Remove outdated comment.
+ * sysdeps/mach/hurd/libc-lock.h: Do not include <hurd/threadvar.h>.
+ (__libc_lock_owner_self): Use &__libc_lock_self0 and THREAD_SELF
+ instead of threadvar.
+ * sysdeps/mach/hurd/libc-tsd.h: Remove file.
+ * sysdeps/mach/hurd/mig-reply.c (GETPORT, reply_port): Remove macros.
+ (use_threadvar, global_reply_port): Remove variables.
+ (__hurd_reply_port0): New variable.
+ (__mig_get_reply_port): Use __hurd_local_reply_port and
+ __hurd_reply_port0 instead of threadvar.
+ (__mig_dealloc_reply_port): Likewise.
+ (__mig_init): Do not initialize threadvar.
+ * sysdeps/mach/hurd/profil.c: Fix comment.
+ * hurd/Versions (HURD_CTHREADS_0.3): Rename weak refs cthread_fork,
+ cthread_detach, pthread_getattr_np, pthread_attr_getstack,
+ cthread_keycreate, cthread_getspecific, cthread_setspecific to
+ __cthread_fork, __cthread_detach, __pthread_getattr_np,
+ __pthread_attr_getstack, __cthread_keycreate, __cthread_getspecific,
+ __cthread_setspecific.
+ * hurd/hurdsig.c (_hurdsig_init): Use __cthread_fork,
+ __cthread_detach, __pthread_getattr_np, __pthread_attr_getstack,
+ __cthread_t instead of cthread_fork, cthread_detach,
+ pthread_getattr_np, pthread_attr_getstack.
+ * sysdeps/mach/hurd/cthreads.c (cthread_keycreate): Rename to
+ __cthread_keycreate.
+ (cthread_getspecific): Rename to __cthread_getspecific.
+ (cthread_setspecific): Rename to __cthread_setspecific.
+ (__libc_getspecific): Use __cthread_getspecific instead of
+ cthread_getspecific.
+ * sysdeps/mach/hurd/libc-lock.h (__libc_key_create): Use
+ __cthread_keycreate instead of cthread_keycreate.
+ (__libc_setspecific): Use __cthread_setspecific instead of
+ cthread_setspecific.
+ * sysdeps/mach/libc-lock.h (__libc_key_create, __libc_setspecific):
+ Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/sysdep.h: Always include
+ <dl-sysdep.h>. Test for value of RTLD_PRIVATE_ERRNO instead of
+ testing whether it is defined.
+
+2018-03-16 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * sysdeps/generic/thread_state.h (MACHINE_NEW_THREAD_STATE_FLAVOR):
+ Define macro.
+ * sysdeps/mach/thread_state.h (MACHINE_THREAD_STATE_FIX_NEW): New macro.
+ * sysdeps/mach/i386/thread_state.h
+ (MACHINE_NEW_THREAD_STATE_FLAVOR): New macro, defined to
+ i386_THREAD_STATE.
+ (MACHINE_THREAD_STATE_FLAVOR): Define to i386_REGS_SEGS_STATE instead of
+ i386_THREAD_STATE.
+ (MACHINE_THREAD_STATE_FIX_NEW): New macro, reads segments.
+
+ * sysdeps/mach/hurd/i386/trampoline.c (_hurd_setup_sighandler): Use
+ i386_REGS_SEGS_STATE instead of i386_THREAD_STATE.
+
+ * sysdeps/mach/hurd/i386/tls.h (TCB_ALIGNMENT, HURD_SEL_LDT): New
+ macros.
+ (_hurd_tls_fork): Add original thread parameter, Duplicate existing LDT
+ descriptor instead of creating a new one.
+ (_hurd_tls_new): New function, creates a new descriptor and updates tcb.
+
+ * mach/setup-thread.c: Include <ldsodefs.h>.
+ (__mach_setup_thread): Call _dl_allocate_tls, pass
+ MACHINE_NEW_THREAD_STATE_FLAVOR to __thread_set_state instead of
+ MACHINE_THREAD_STATE_FLAVOR, before getting
+ MACHINE_THREAD_STATE_FLAVOR, calling _hurd_tls_new, and setting
+ MACHINE_THREAD_STATE_FLAVOR with the result.
+ * hurd/hurdfault.c (_hurdsig_fault_init): Call
+ MACHINE_THREAD_STATE_FIX_NEW.
+ * sysdeps/mach/hurd/fork.c (__fork): Call _hurd_tls_fork for sigthread
+ too. Add original thread parameter.
+
+2018-03-16 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/x86/fpu/bits/mathinline.h [__USE_MISC] (__finite):
+ Remove inline function.
+
+ * sysdeps/i386/fpu/libm-test-ulps: Update.
+ * sysdeps/i386/i686/fpu/multiarch/libm-test-ulps: Likewise.
+
+2018-03-16 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * sysdeps/m68k/m680x0/fpu/mathimpl.h (__ieee754_sqrt): Revert previous
+ commit.
+
+2018-03-15 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/x86/fpu/bits/mathinline.h [__FAST_MATH__]
+ (__sincos_code): Remove define and undefine.
+ [__FAST_MATH__] (__sincos): Remove inline function.
+ [__FAST_MATH__] (__sincosf): Remove inline function.
+ [__FAST_MATH__] (__sincosl): Remove inline function.
+ (__atan2l): Remove inline functions.
+ [!__GNUC_PREREQ (3, 4)] (__atan2_code): Remove macro.
+ [!__GNUC_PREREQ (3, 4) && __FAST_MATH__] (atan2): Remove inline
+ function.
+ (floor): Remove inline function.
+ (ceil): Likewise.
+ [__FAST_MATH__] (__ldexp_code): Remove macro.
+ [__FAST_MATH__] (ldexp): Remove inline function.
+ [__FAST_MATH__ && __USE_ISOC99] (ldexpf): Likewise.
+ [__FAST_MATH__ && __USE_ISOC99] (ldexpl): Likewise.
+ [__FAST_MATH__ && __USE_ISOC99] (rint): Likewise.
+ [__USE_ISOC99] (__lrint_code): Remove macro.
+ [__USE_ISOC99] (__llrint_code): Likewise.
+ [__USE_ISOC99] (lrintf): Remove inline function.
+ [__USE_ISOC99] (lrint): Likewise.
+ [__USE_ISOC99] (lrintl): Likewise.
+ [__USE_ISOC99] (llrint): Likewise.
+ [__USE_ISOC99] (llrintf): Likewise.
+ [__USE_ISOC99] (llrintl): Likewise.
+
+2018-03-15 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * sysdeps/aarch64/fpu/math_private.h (__ieee754_sqrt): Remove.
+ (__ieee754_sqrtf): Remove.
+ * sysdeps/alpha/fpu/math_private.h (__ieee754_sqrt): Remove.
+ (__ieee754_sqrtf): Remove.
+ * sysdeps/generic/math-type-macros.h (M_SQRT): Use sqrt.
+ * sysdeps/m68k/m680x0/fpu/mathimpl.h (__ieee754_sqrt): Remove.
+ * sysdeps/powerpc/fpu/math_private.h (__ieee754_sqrt): Remove.
+ (__ieee754_sqrtf): Remove.
+ * sysdeps/s390/fpu/bits/mathinline.h: Remove file.
+ * sysdeps/sparc/fpu/bits/mathinline.h (sqrt) Remove.
+ (sqrtf): Remove.
+ (sqrtl): Remove.
+ (__ieee754_sqrt): Remove.
+ (__ieee754_sqrtf): Remove.
+ (__ieee754_sqrtl): Remove.
+ * sysdeps/m68k/m680x0/fpu/mathimpl.h (__ieee754_sqrt): Remove.
+ * sysdeps/x86/fpu/math_private.h (__ieee754_sqrt): Remove.
+ * sysdeps/x86_64/fpu/math_private.h (__ieee754_sqrt): Remove.
+ (__ieee754_sqrtf): Remove.
+ (__ieee754_sqrtl): Remove.
+
+2018-03-15 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * sysdeps/ieee754/dbl-64/e_acosh.c (__ieee754_acosh): Use sqrt.
+ * sysdeps/ieee754/dbl-64/e_gamma_r.c (gamma_positive): Likewise.
+ * sysdeps/ieee754/dbl-64/e_hypot.c (__ieee754_hypot): Likewise.
+ * sysdeps/ieee754/dbl-64/e_j0.c (__ieee754_j0): Likewise.
+ * sysdeps/ieee754/dbl-64/e_j1.c (__ieee754_j1): Likewise.
+ * sysdeps/ieee754/dbl-64/e_jn.c (__ieee754_jn): Likewise.
+ * sysdeps/ieee754/dbl-64/s_asinh.c (__asinh): Likewise.
+ * sysdeps/ieee754/dbl-64/wordsize-64/e_acosh.c (__ieee754_acosh):
+ Likewise.
+ * sysdeps/ieee754/flt-32/e_acosf.c (__ieee754_acosf): Likewise.
+ * sysdeps/ieee754/flt-32/e_acoshf.c (__ieee754_acoshf): Likewise.
+ * sysdeps/ieee754/flt-32/e_asinf.c (__ieee754_asinf): Likewise.
+ * sysdeps/ieee754/flt-32/e_gammaf_r.c (gammaf_positive): Likewise.
+ * sysdeps/ieee754/flt-32/e_hypotf.c (__ieee754_hypotf): Likewise.
+ * sysdeps/ieee754/flt-32/e_j0f.c (__ieee754_j0f): Likewise.
+ * sysdeps/ieee754/flt-32/e_j1f.c (__ieee754_j1f): Likewise.
+ * sysdeps/ieee754/flt-32/e_powf.c (__ieee754_powf): Likewise.
+ * sysdeps/ieee754/flt-32/s_asinhf.c (__asinhf): Likewise.
+ * sysdeps/ieee754/ldbl-128/e_acoshl.c (__ieee754_acoshl): Use sqrtl.
+ * sysdeps/ieee754/ldbl-128/e_acosl.c (__ieee754_acosl): Likewise.
+ * sysdeps/ieee754/ldbl-128/e_asinl.c (__ieee754_asinl): Likewise.
+ * sysdeps/ieee754/ldbl-128/e_gammal_r.c (gammal_positive): Likewise.
+ * sysdeps/ieee754/ldbl-128/e_hypotl.c (__ieee754_hypotl): Likewise.
+ * sysdeps/ieee754/ldbl-128/e_j0l.c (__ieee754_j0l): Likewise.
+ * sysdeps/ieee754/ldbl-128/e_j1l.c (__ieee754_j1l): Likewise.
+ * sysdeps/ieee754/ldbl-128/e_jnl.c (__ieee754_jnl): Likewise.
+ * sysdeps/ieee754/ldbl-128/e_powl.c (__ieee754_powl): Likewise.
+ * sysdeps/ieee754/ldbl-128/s_asinhl.c (__ieee754_asinhl): Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_acoshl.c (__ieee754_acoshl): Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_acosl.c (__ieee754_acosl): Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_asinl.c (__ieee754_asinl): Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c (gammal_positive): Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_hypotl.c (__ieee754_hypotl): Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_j0l.c (__ieee754_j0l): Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_j1l.c (__ieee754_j1l): Likewise
+ * sysdeps/ieee754/ldbl-128ibm/e_jnl.c (__ieee754_jnl): Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_powl.c (__ieee754_powl): Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_asinhl.c (__ieee754_asinhl): Likewise.
+ * sysdeps/ieee754/ldbl-96/e_acoshl.c (__ieee754_acoshl): Use sqrtl.
+ * sysdeps/ieee754/ldbl-96/e_asinl.c (__ieee754_asinl): Likewise.
+ * sysdeps/ieee754/ldbl-96/e_gammal_r.c (gammal_positive): Likewise.
+ * sysdeps/ieee754/ldbl-96/e_hypotl.c (__ieee754_hypotl): Likewise.
+ * sysdeps/ieee754/ldbl-96/e_j0l.c (__ieee754_j0l): Likewise.
+ * sysdeps/ieee754/ldbl-96/e_j1l.c (__ieee754_j1l): Likewise.
+ * sysdeps/ieee754/ldbl-96/e_jnl.c (__ieee754_jnl): Likewise.
+ * sysdeps/ieee754/ldbl-96/s_asinhl.c (__ieee754_asinhl): Likewise.
+ * sysdeps/m68k/m680x0/fpu/e_pow.c (__ieee754_pow): Likewise.
+ * sysdeps/powerpc/fpu/e_hypot.c (__ieee754_hypot): Likewise.
+ * sysdeps/powerpc/fpu/e_hypotf.c (__ieee754_hypotf): Likewise.
+
+2018-03-15 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * include/math.h (sqrt): Declare with asm redirect.
+ (sqrtf): Likewise.
+ (sqrtl): Likewise.
+ (sqrtf128): Likewise.
+ * Makeconfig: Add -fno-math-errno for libc/libm, but build testsuite,
+ nonlib and libnldbl with -fmath-errno.
+ * math/w_sqrt_compat.c: Define NO_MATH_REDIRECT.
+ * math/w_sqrt_template.c: Likewise.
+ * math/w_sqrtf_compat.c: Likewise.
+ * math/w_sqrtl_compat.c: Likewise.
+ * sysdeps/i386/fpu/w_sqrt.c: Likewise.
+ * sysdeps/i386/fpu/w_sqrt_compat.c: Likewise.
+ * sysdeps/generic/math-type-macros-float128.h: Remove math.h and
+ complex.h.
+
+2018-03-15 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * benchtests/Makefile: Define _ISOMAC.
+ * benchtests/bench-strcoll.c: Add missing sys/stat.h include.
+ * benchtests/bench-string.h: Define inhibit_loop_to_libcall macro.
+ * benchtests/bench-strstr.c: Define empty libc_hidden_builtin_def.
+ * benchtests/bench-strtok.c (oldstrtok): Use rawmemchr.
+ * benchtests/bench-timing.h: Define attribute_hidden.
+
+2018-03-15 Siddhesh Poyarekar <siddhesh@sourceware.org>
+
+ * sysdeps/aarch64/strncmp.S (strncmp): Use lsr instead of
+ mov + lsr.
+
+2018-03-15 Rafał Lużyński <digitalfreak@lingonborough.com>
+
+ [BZ #22963]
+ * localedata/locales/cs_CZ (mon): Rename to...
+ (alt_mon): This.
+ (mon): Import from CLDR (genitive case).
+
+2018-03-15 Rafał Lużyński <digitalfreak@lingonborough.com>
+
+ [BZ #22937]
+ * localedata/locales/el_CY (abmon): Rename to...
+ (ab_alt_mon): This.
+ (abmon): Import from CLDR (abbreviated genitive case).
+ * localedata/locales/el_GR (abmon): Rename to...
+ (ab_alt_mon): This.
+ (abmon): Import from CLDR (abbreviated genitive case).
+
+2018-03-15 Rafał Lużyński <digitalfreak@lingonborough.com>
+
+ [BZ #22932]
+ * localedata/locales/lt_LT (abmon): Synchronize with CLDR.
+
+2018-03-15 Robert Buj <robert.buj@gmail.com>
+
+ [BZ #22848]
+ * localedata/locales/ca_ES (abmon): Rename to...
+ (ab_alt_mon): This, then synchronize with CLDR (nominative case).
+ (mon): Rename to...
+ (alt_mon): This.
+ (abmon): Import from CLDR (genitive case, month names preceded by
+ "de" or "d’").
+ (mon): Likewise.
+ (abday): Synchronize with CLDR.
+ (d_t_fmt): Likewise.
+ (d_fmt): Likewise.
+ (am_pm): Likewise.
+
+ (LC_TIME): Improve indentation.
+ (LC_TELEPHONE): Likewise.
+ (LC_NAME): Likewise.
+ (LC_ADDRESS): Likewise.
+
+2018-03-14 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/x86/fpu/bits/mathinline.h [!__GNUC_PREREQ (3, 4)]
+ (lrintf): Remove definitions used only with old GCC.
+ [!__GNUC_PREREQ (3, 4)] (lrint): Likewise.
+ [!__GNUC_PREREQ (3, 4)] (llrintf): Likewise.
+ [!__GNUC_PREREQ (3, 4)] (llrint): Likewise.
+ [!__GNUC_PREREQ (3, 4)] (fmaxf): Likewise.
+ [!__GNUC_PREREQ (3, 4)] (fmax): Likewise.
+ [!__GNUC_PREREQ (3, 4)] (fminf): Likewise.
+ [!__GNUC_PREREQ (3, 4)] (fmin): Likewise.
+ [!__GNUC_PREREQ (3, 4)] (rint): Likewise.
+ [!__GNUC_PREREQ (3, 4)] (rintf): Likewise.
+ [!__GNUC_PREREQ (3, 4)] (nearbyint): Likewise.
+ [!__GNUC_PREREQ (3, 4)] (nearbyintf): Likewise.
+ [!__GNUC_PREREQ (3, 4)] (ceil): Likewise.
+ [!__GNUC_PREREQ (3, 4)] (ceilf): Likewise.
+ [!__GNUC_PREREQ (3, 4)] (floor): Likewise.
+ [!__GNUC_PREREQ (3, 4)] (floorf): Likewise.
+ [__FAST_MATH__ && !__GNUC_PREREQ (3, 5)] (tan): Likewise.
+ [__FAST_MATH__ && !__GNUC_PREREQ (3, 5)] (fmod): Likewise.
+ [__FAST_MATH__ && !__GNUC_PREREQ (3, 4)] (sin): Likewise.
+ [__FAST_MATH__ && !__GNUC_PREREQ (3, 4)] (cos): Likewise.
+ [__FAST_MATH__ && !__GNUC_PREREQ (3, 5)] (log10): Likewise.
+ [__FAST_MATH__ && !__GNUC_PREREQ (3, 5)] (asin): Likewise.
+ [__FAST_MATH__ && !__GNUC_PREREQ (3, 5)] (acos): Likewise.
+ [__FAST_MATH__ && !__GNUC_PREREQ (3, 4)] (atan): Likewise.
+ [__FAST_MATH__ && !__GNUC_PREREQ (3, 5)] (log1p): Likewise.
+ [__FAST_MATH__ && !__GNUC_PREREQ (3, 5)] (logb): Likewise.
+ [__FAST_MATH__ && !__GNUC_PREREQ (3, 5)] (log2): Likewise.
+ [__FAST_MATH__ && !__GNUC_PREREQ (3, 5)] (drem): Likewise.
+ [__FAST_MATH__] (__M_SQRT2): Remove macro.
+
+2018-03-14 Siddhesh Poyarekar <siddhesh@sourceware.org>
+
+ * sysdeps/aarch64/strncmp.S (strncmp): Use a separate shift
+ instruction to unbreak builds with binutils 2.26 and older.
+
+2018-03-13 Siddhesh Poyarekar <siddhesh@sourceware.org>
+
+ * sysdeps/aarch64/strncmp.S (count): New macro.
+ (strncmp): Store misaligned length in SRC1 in COUNT.
+ (mutual_align): Adjust.
+ (misaligned8): Load dword at a time when it is safe.
+
+2018-03-12 Zack Weinberg <zackw@panix.com>
+
+ [BZ #1190]
+ [BZ #19476]
+ * libio/fileops.c (_IO_new_file_underflow): Return EOF immediately
+ if the _IO_EOF_SEEN bit is already set; update commentary.
+ * libio/oldfileops.c (_IO_old_file_underflow): Likewise.
+ * libio/wfileops.c (_IO_wfile_underflow): Likewise.
+
+ * support/support_openpty.c, support/tty.h: New files.
+ * support/Makefile (libsupport-routines): Add support_openpty.
+
+ * libio/tst-fgetc-after-eof.c, wcsmbs/test-fgetwc-after-eof.c:
+ New test cases.
+ * libio/Makefile (tests): Add tst-fgetc-after-eof.
+ * wcsmbs/Makefile (tests): Add tst-fgetwc-after-eof.
+
+2018-03-12 Dmitry V. Levin <ldv@altlinux.org>
+
+ * po/pt_BR.po: Update translations.
+
+2018-03-12 David Michael <fedora.dm0@gmail.com>
+
+ * sysdeps/mach/hurd/reboot.c: Include <hurd/paths.h>
+ (reboot): Lookup _SERVERS_STARTUP instead of calling proc_getmsgport to
+ get a port to the startup server.
+
+2018-03-11 Zack Weinberg <zackw@panix.com>
+
+ * sysdeps/ieee754/ldbl-opt/nldbl-compat.c: Include math.h
+ before nldbl-compat.h.
+
+2018-03-10 Zack Weinberg <zackw@panix.com>
+
+ * sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h: Don't include
+ math.h or math_private.h.
+
+ * sysdeps/alpha/fpu/s_isnan.c
+ * sysdeps/ieee754/ldbl-128ibm/s_ceill.c
+ * sysdeps/ieee754/ldbl-128ibm/s_floorl.c
+ * sysdeps/ieee754/ldbl-128ibm/s_llrintl.c
+ * sysdeps/ieee754/ldbl-128ibm/s_llroundl.c
+ * sysdeps/ieee754/ldbl-128ibm/s_lrintl.c
+ * sysdeps/ieee754/ldbl-128ibm/s_lroundl.c
+ * sysdeps/ieee754/ldbl-128ibm/s_rintl.c
+ * sysdeps/ieee754/ldbl-128ibm/s_roundl.c
+ * sysdeps/ieee754/ldbl-128ibm/s_truncl.c
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypot.c
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypotf.c:
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf.c
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypot.c
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypotf.c:
+ Include math_private.h.
+
+ * sysdeps/ieee754/ldbl-64-128/s_finitel.c
+ * sysdeps/ieee754/ldbl-64-128/s_fpclassifyl.c
+ * sysdeps/ieee754/ldbl-64-128/s_isinfl.c
+ * sysdeps/ieee754/ldbl-64-128/s_isnanl.c
+ * sysdeps/ieee754/ldbl-64-128/s_signbitl.c
+ * sysdeps/powerpc/power7/fpu/s_logb.c:
+ Include math.h and math_private.h.
+
+ * sysdeps/unix/sysv/linux/alpha/clone.S (__clone): Wrap manual
+ uses of $at in .set noat / .set at.
+
+2018-03-10 H.J. Lu <hongjiu.lu@intel.com>
+
+ * include/setjmp.h (__libc_longjmp): Remove libc_hidden_proto.
+ * setjmp/longjmp.c (__libc_longjmp): Remove libc_hidden_def.
+ * sysdeps/s390/longjmp.c (__libc_longjmp): Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S (__libc_longjmp):
+ Likewise.
+
+2018-03-09 Florian Weimer <fweimer@redhat.com>
+
+ * malloc/malloc.c (prev_size, set_prev_size, prev_chunk): Fix typo
+ in comment.
+
+2018-03-09 Aurelien Jarno <aurelien@aurel32.net>
+
+ [BZ #22919]
+ * sysdeps/unix/sysv/linux/sparc/sparc32/setcontext.S (__startcontext):
+ Add nop before __startcontext, add explaining comments.
+
+2018-03-07 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ [BZ #22926]
+ * sysdeps/powerpc/powerpc32/sysdep.h (ABORT_TRANSACTION_IMPL): Define
+ empty for __SPE__.
+ * sysdeps/powerpc/sysdep.h (ABORT_TRANSACTION): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/elision-lock.c (__lll_lock_elision):
+ Do not build hardware transactional code for __SPE__.
+ * sysdeps/unix/sysv/linux/powerpc/elision-trylock.c
+ (__lll_trylock_elision): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/elision-unlock.c
+ (__lll_unlock_elision): Likewise.
+
+ * sysdeps/nptl/fork.c (ARCH_FORK): Replace by arch_fork.
+ * sysdeps/unix/sysv/linux/alpha/arch-fork.h: Remove file.
+ * sysdeps/unix/sysv/linux/riscv/arch-fork.h: Likewise.
+ * sysdeps/unix/sysv/linux/aarch64/arch-fork.h: Likewise.
+ * sysdeps/unix/sysv/linux/arm/arch-fork.h: Likewise.
+ * sysdeps/unix/sysv/linux/hppa/arch-fork.h: Likewise.
+ * sysdeps/unix/sysv/linux/i386/arch-fork.h: Likewise.
+ * sysdeps/unix/sysv/linux/ia64/arch-fork.h: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/arch-fork.h: Likewise.
+ * sysdeps/unix/sysv/linux/microblaze/arch-fork.h: Likewise.
+ * sysdeps/unix/sysv/linux/mips/arch-fork.h: Likewise.
+ * sysdeps/unix/sysv/linux/nios2/arch-fork.h: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/arch-fork.h: Likewise.
+ * sysdeps/unix/sysv/linux/s390/arch-fork.h: Likewise.
+ * sysdeps/unix/sysv/linux/sh/arch-fork.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/arch-fork.h: Likewise.
+ * sysdeps/unix/sysv/linux/tile/arch-fork.h: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/arch-fork.h: Likewise.
+ * sysdeps/unix/sysv/linux/arch-fork.h (arch_fork): New function.
+ * sysdeps/unix/sysv/linux/aarch64/kernel-features.h: New file.
+ * sysdeps/unix/sysv/linux/riscv/kernel-features.h: Likewise.
+ * sysdeps/unix/sysv/linux/arm/kernel-features.h
+ (__ASSUME_CLONE_BACKWARDS): Define.
+ * sysdeps/unix/sysv/linux/createthread.c (ARCH_CLONE): Define to
+ __clone2 if __NR_clone2 is defined.
+ * sysdeps/unix/sysv/linux/hppa/kernel-features.h
+ (__ASSUME_CLONE_BACKWARDS): Likewise.
+ * sysdeps/unix/sysv/linux/i386/kernel-features.h
+ (__ASSUME_CLONE_BACKWARDS): Likewise.
+ * sysdeps/unix/sysv/linux/ia64/kernel-features.h
+ (__ASSUME_CLONE2): Likewise.
+ * sysdeps/unix/sysv/linux/microblaze/kernel-features.h
+ (__ASSUME_CLONE_BACKWARDS3): Likewise.
+ * sysdeps/unix/sysv/linux/kernel-features.h: Document possible clone
+ variants and the define architecture can use.
+ (__ASSUME_CLONE_DEFAULT): Define as default.
+ * sysdeps/unix/sysv/linux/mips/kernel-features.h
+ (__ASSUME_CLONE_BACKWARDS): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/kernel-features.h
+ (__ASSUME_CLONE_BACKWARDS): Likewise.
+ * sysdeps/unix/sysv/linux/s390/kernel-features.h
+ (__ASSUME_CLONE_BACKWARDS2): Likewise.
+
+2018-03-06 Siddhesh Poyarekar <siddhesh@sourceware.org>
+
+ * sysdeps/aarch64/memcmp.S (more16): Fix loop16 branch target.
+
+ * sysdeps/aarch64/memcmp.S: Widen comparison to 16 bytes at a
+ time.
+
+ * benchtests/bench-strncmp.c (test_main): Remove 0 length tests.
+ (do_test_limit): Likewise.
+
+ * benchtests/bench-strncmp.c (do_test_limit): Reallocate buffers
+ for every implementation.
+ (do_test): Likewise.
+
+ * benchtests/bench-strncmp.c: Convert output to json.
+
+2018-03-06 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * io/futimens.c: Add missing start-of-file descriptive comment.
+ * io/utime.c: Likewise.
+ * misc/futimesat.c: Likewise.
+ * misc/utimes.c: Likewise.
+ * sysdeps/mach/hurd/futimesat.c: Likewise.
+ * sysdeps/mach/hurd/utimes.c: Likewise.
+ * sysdeps/posix/utime.c: Likewise.
+ * sysdeps/posix/utimes.c: Likewise.
+ * sysdeps/unix/sysv/linux/futimesat.c: Likewise.
+ * sysdeps/unix/sysv/linux/generic/futimesat.c: Likewise.
+ * sysdeps/unix/sysv/linux/generic/utimes.c: Likewise.
+ * sysdeps/unix/sysv/linux/utimes.c: Likewise.
+
+2018-03-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * sysdeps/mach/hurd/utime-helper.c (hurd_futimens): Rename function to
+ hurd_futimes.
+ * sysdeps/mach/hurd/utimes.c (__utimes): Update call accordingly.
+ * sysdeps/mach/hurd/lutimes.c (__lutimes): Likewise.
+ * sysdeps/mach/hurd/futimens.c: Include "utime-helper.c".
+ (__futimens): Move implementation to...
+ * sysdeps/mach/hurd/utime-helper.c (utime_ts_from_tspec,
+ utime_tvalue_from_tspec): ... new helper functions.
+ (hurd_futimens): New function.
+ * sysdeps/mach/hurd/futimesat.c: New file.
+ * sysdeps/mach/hurd/utimensat.c: New file.
+
+2018-03-05 Flávio Cruz <flaviocruz@gmail.com>
+
+ * sysdeps/mach/hurd/bits/stat.h [__USE_ATFILE] (UTIME_NOW,
+ UTIME_OMIT): New macros.
+ * sysdeps/mach/hurd/futimens.c (__futimens): Try to use __file_utimens
+ before reverting to converting time spec to time value and calling
+ __file_utimes.
+ * sysdeps/mach/hurd/utime-helper.c: New file.
+ * sysdeps/mach/hurd/futimes.c: Include "utime-helper.c".
+ (__futimes): Try to use utime_ts_from_tval and __file_utimens before
+ reverting to utime_tvalue_from_tval and __file_utimes.
+ * sysdeps/mach/hurd/lutimes.c: Include "utime-helper.c".
+ (__lutimes): Just call hurd_futimens after lookup.
+ * sysdeps/mach/hurd/utimes.c: Likewise.
+
+2018-03-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * bits/sigaction.h: Add include guard.
+ * sysdeps/unix/sysv/linux/alpha/bits/sigaction.h: Likewise.
+ * sysdeps/unix/sysv/linux/bits/sigaction.h: Likewise.
+ * sysdeps/unix/sysv/linux/hppa/bits/sigaction.h: Likewise.
+ * sysdeps/unix/sysv/linux/ia64/bits/sigaction.h: Likewise.
+ * sysdeps/unix/sysv/linux/mips/bits/sigaction.h: Likewise.
+ * sysdeps/unix/sysv/linux/s390/bits/sigaction.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/bits/sigaction.h: Likewise.
+ * sysdeps/unix/sysv/linux/tile/bits/sigaction.h: Likewise.
+ * hurd/hurd/signal.h: Include <bits/sigaction.h>.
+
+2018-03-05 Joseph Myers <joseph@codesourcery.com>
+
+ * iconv/loop.c (UNICODE_TAG_HANDLER): Disable
+ -Wmaybe-uninitialized for -Os.
+ * sysdeps/s390/multiarch/8bit-generic.c (BODY): Add comment about
+ this disabling.
+
+2018-03-03 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * bits/dirent.h (__INO_T_MATCHES_INO64_T): Define regardless whether
+ __INO_T_MATCHES_INO64_T is defined.
+ * sysdeps/unix/sysv/linux/bits/dirent.h: Likewise.
+ * dirent/alphasort.c: Check _DIRENT_MATCHES_DIRENT64 value instead
+ of definition.
+ * dirent/alphasort64.c: Likewise.
+ * dirent/scandir.c: Likewise.
+ * dirent/scandir64-tail.c: Likewise.
+ * dirent/scandir64.c: Likewise.
+ * dirent/scandirat.c: Likewise.
+ * dirent/scandirat64.c: Likewise.
+ * dirent/versionsort.c: Likewise.
+ * dirent/versionsort64.c: Likewise.
+ * include/dirent.h: Likewise.
+
+ * nptl/tst-cancel4-common.h (set_socket_buffer): New function.
+ * nptl/tst-cancel4-common.c (do_test): Call set_socket_buffer
+ for socketpair endpoint.
+ * nptl/tst-cancel4.c (tf_send): Call set_socket_buffer and use
+ WRITE_BUFFER_SIZE as buffer size for sending socket.
+ (tf_sendto): Use SOCK_STREAM instead of SOCK_DGRAM and fix an
+ issue on system where send is implemented with sendto syscall.
+ * sysdeps/unix/sysv/linux/mips/mips64/Makefile [$(subdir) = socket]
+ (CFLAGS-recv.c, CFLAGS-send.c): Remove rules.
+ [$(subdir) = nptl] (CFLAGS-recv.c, CFLAGS-send.c): Likewise.
+ * sysdeps/unix/sysv/linux/riscv/rv64/Makefile: Remove file.
+
+ [BZ #21269]
+ * sysdeps/unix/sysv/linux/i386/Makefile (tests): Add tst-bz21269.
+ * sysdeps/unix/sysv/linux/i386/sigaction.c (SET_SA_RESTORER): Clear
+ sa_restorer for vDSO case.
+ * sysdeps/unix/sysv/linux/i386/tst-bz21269.c: New file.
+
+2018-03-03 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * scripts/check-installed-headers.sh: Ignore Hurd and Mach headers.
+ * hurd/hurd/id.h: Include <hurd/hurd_types.h>
+ * hurd/hurd/ioctl.h: Include <mach/port.h>
+ * hurd/hurd/lookup.h: Include <hurd/hurd_types.h>
+ * mach/Makefile ($(objpfx)mach-shortcuts.h): Make it include
+ <mach/mach_types.h> and <mach/message.h>.
+ (headers): Move mach/param.h to bits/mach/param.h.
+ * sysdeps/mach/i386/mach/param.h: Move file to ...
+ * sysdeps/mach/i386/bits/mach/param.h: ... here. Update path in #error.
+ * sysdeps/mach/hurd/bits/param.h: Include <bits/mach/param.h> instead
+ of <mach/param.h>.
+ * hurd/hurd/port.h: Do not include <hurd/signal.h>.
+ * hurd/hurd/userlink.h [!defined __USE_EXTERN_INLINES ||
+ !defined _LIBC || !IS_IN (libc)]: Do not include <hurd/signal.h>.
+ * hurd/hurd/fd.h (_hurd_fd_error): Fix struct initializer to be
+ trivial, for C++ conformity.
+ * sysdeps/mach/hurd/dl-sysdep.c: Include <mach/machine/vm_param.h>.
+ * mach/Machrules ($(patsubst %,$(objpfx)%.h,$(user-interfaces)):
+ Process mig output through $(migheadersed).
+ * hurd/Makefile (migheadersed): Define variable.
+ * mach/mach/mig_support.h [defined __USE_GNU]: Do not #error out.
+ * scripts/check-installed-headers.sh: Do not ignore Hurd and Mach
+ headers.
+ * hurd/hurd.h: Include <bits/types/sigset_t.h>
+ * hurd/hurd/fd.h: Include <sys/select.h> and <bits/types/sigset_t.h>
+ (_hurd_fd_read, _hurd_fd_write): Use __loff_t instead of loff_t.
+ * hurd/hurd/signal.h: Include <bits/types/stack_t.h> and
+ <bits/types/sigset_t.h>.
+ [!defined __USE_GNU]: Do not #error out.
+ (struct hurd_sigstate): Use _NSIG instead of NSIG.
+ * hurd/hurd/sigpreempt.h (__need_size_t): Define.
+ Include <stddef.h> and <bits/types/sigset_t.h>
+ (struct hurd_signal_preemptor, hurd_catch_signal): Use __sighandler_t
+ instead of sighandler_t.
+ * stdlib/errno.h (error_t): Move definition to...
+ * bits/types/error_t.h: ... new header.
+ * stdlib/Makefile (headers): Add bits/types/error_t.h.
+ * sysdeps/mach/hurd/bits/errno.h (error_t): Move definition to...
+ * sysdeps/mach/hurd/bits/types/error_t.h: ... new header.
+ * sysdeps/mach/hurd/errnos.awk (error_t): Likewise.
+ * hurd/hurd.h: Include <bits/types/error_t.h>
+ * hurd/hurd/fd.h: Include <bits/types/error_t.h>
+ * hurd/hurd/id.h: Include <errno.h> and <bits/types/error_t.h>
+ * hurd/hurd/lookup.h: Include <errno.h> and <bits/types/error_t.h>
+ * hurd/hurd/resource.h: Include <bits/types/error_t.h>
+ * hurd/hurd/signal.h: Include <bits/types/error_t.h>
+ * hurd/hurd/sigpreempt.h: Include <bits/types/error_t.h>
+ * sysdeps/mach/hurd/futimens.c: New file.
+
+2018-03-03 Andreas Schwab <schwab@linux-m68k.org>
+
+ [BZ #22918]
+ * nss/nsswitch.h (DEFINE_DATABASE): Don't define __nss_*_database.
+ * nss/nsswitch.c (DEFINE_DATABASE): Define __nss_*_database here.
+ * nscd/gai.c (__nss_hosts_database): Readd definition.
+ * posix/tst-rfc3484.c (__nss_hosts_database): Likewise.
+ * posix/tst-rfc3484-3.c (__nss_hosts_database): Likewise.
+ * posix/tst-rfc3484-2.c (__nss_hosts_database): Likewise.
+
+2018-03-02 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/powerpc/ifunc-sel.h (ifunc_sel): Make always_inline.
+ (ifunc_one): Likewise.
+
+2018-03-01 DJ Delorie <dj@delorie.com>
+
+ [BZ #22342]
+ * nscd/netgroupcache.c (addinnetgrX): Include trailing NUL in
+ key value.
+
+2018-03-01 Maciej W. Rozycki <macro@mips.com>
+
+ * nptl_db/td_ta_thr_iter.c (iterate_thread_list): Remove
+ `match_pid' parameter.
+ (td_ta_thr_iter): Update accordingly.
+
+2018-03-01 Florian Weimer <fweimer@redhat.com>
+
+ * nptl/Makefile (install-lib-ldscripts): Remove.
+ (install): Remove rule.
+ ($(inst_libdir)/libpthread.so): Likewise.
+
+2018-03-01 Mike FABIAN <mfabian@redhat.com>
+
+ [BZ #22896]
+ * localedata/locales/an_ES: update month and day names,
+ improve d_fmt, improve postal_fmt, add country_post,
+ add country_isbn
+
+2018-03-01 Mike FABIAN <mfabian@redhat.com>
+
+ * localedata/locales/bg_BG (LC_COLLATE): The comment mentioned
+ Ukrainian instead of Bulgarian.
+
+2018-03-01 Florian Weimer <fweimer@redhat.com>
+
+ * nptl/Makefile (libpthread.so): Drop libpthread_nonshared.a
+ reference.
+
+2018-03-01 Florian Weimer <fweimer@redhat.com>
+
+ Move pthread_atfork to libc. Remove libpthread_nonshared.a.
+ * nptl/Makefile (routines): Add pthread_atfork.
+ (static-only-routines): Set to pthread_atfork.
+ (libpthread-routines): Remove pthread_atfork.
+ (libpthread-static-only-routines): Remove.
+ (install): Update comment.
+ (libpthread.so): Do not install libpthread_nonshared.a.
+ (tests): Do not link with libpthread_nonshared.a.
+ (generated): Remove libpthread_nonshared.a.
+ * nptl/pthread_atfork.c (pthread_atfork): Turn into weak alias.
+ * sysdeps/nptl/Makeconfig (shared-thread-library): Do not link
+ with libpthread_nonshared.a.
+
+2018-02-28 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #22902]
+ * sysdeps/i386/fpu/fenv_private.h [!__x86_64__]
+ (libc_feholdexcept_setroundf128): New macro.
+ [!__x86_64__] (libc_feupdateenv_testf128): Likewise.
+
+ [BZ #15105]
+ * sysdeps/wordsize-32/strtoumax.c (strtoumax): Use
+ libc_hidden_def.
+ * sysdeps/wordsize-64/strtoumax.c (strtoumax): Likewise.
+ * include/inttypes.h: New file.
+
+2018-02-27 Joseph Myers <joseph@codesourcery.com>
+
+ * locale/weightwc.h (findidx): Ignore -Wmaybe-uninitialized for
+ -Os in two more places.
+
+2018-02-27 Mike FABIAN <mfabian@redhat.com>
+
+ See this bug https://sourceware.org/bugzilla/show_bug.cgi?id=22898
+ * localedata/cmn_TW.UTF-8.in: Remove the lines which cannot
+ be sorted correctly at the moment because of a bug.
+
+2018-02-27 Mike FABIAN <mfabian@redhat.com>
+
+ [BZ #22550] - es_ES locale (and other es_* locales): collation should
+ treat ñ as a primary different character, sync the collation
+ for Spanish with CLDR.
+ [BZ #21547] - Tibetan script collation broken (Dzongkha and Tibetan).
+ * localedata/Makefile: Add new test files.
+ * localedata/lv_LV.UTF-8.in: Adapt test file to new collation order.
+ * localedata/sv_SE.ISO-8859-1.in: Adapt test file to new
+ collation order.
+ * localedata/uk_UA.UTF-8.in: Adapt test file to new collation order.
+ * localedata/am_ET.UTF-8.in: New test file.
+ * localedata/az_AZ.UTF-8.in: Likewise.
+ * localedata/be_BY.UTF-8.in: Likewise.
+ * localedata/ber_DZ.UTF-8.in: Likewise.
+ * localedata/ber_MA.UTF-8.in: Likewise.
+ * localedata/bg_BG.UTF-8.in: Likewise.
+ * localedata/br_FR.UTF-8.in: Likewise.
+ * localedata/cmn_TW.UTF-8.in: Likewise.
+ * localedata/crh_UA.UTF-8.in: Likewise.
+ * localedata/csb_PL.UTF-8.in: Likewise.
+ * localedata/cv_RU.UTF-8.in: Likewise.
+ * localedata/cy_GB.UTF-8.in: Likewise.
+ * localedata/dz_BT.UTF-8.in: Likewise.
+ * localedata/eo.UTF-8.in: Likewise.
+ * localedata/es_ES.UTF-8.in: Likewise.
+ * localedata/fa_IR.UTF-8.in: Likewise.
+ * localedata/fi_FI.UTF-8.in: Likewise.
+ * localedata/fil_PH.UTF-8.in: Likewise.
+ * localedata/fur_IT.UTF-8.in: Likewise.
+ * localedata/gez_ER.UTF-8@abegede.in: Likewise.
+ * localedata/ha_NG.UTF-8.in: Likewise.
+ * localedata/ig_NG.UTF-8.in: Likewise.
+ * localedata/ik_CA.UTF-8.in: Likewise.
+ * localedata/kk_KZ.UTF-8.in: Likewise.
+ * localedata/ku_TR.UTF-8.in: Likewise.
+ * localedata/ky_KG.UTF-8.in: Likewise.
+ * localedata/ln_CD.UTF-8.in: Likewise.
+ * localedata/mi_NZ.UTF-8.in: Likewise.
+ * localedata/ml_IN.UTF-8.in: Likewise.
+ * localedata/mn_MN.UTF-8.in: Likewise.
+ * localedata/mr_IN.UTF-8.in: Likewise.
+ * localedata/mt_MT.UTF-8.in: Likewise.
+ * localedata/nb_NO.UTF-8.in: Likewise.
+ * localedata/om_KE.UTF-8.in: Likewise.
+ * localedata/os_RU.UTF-8.in: Likewise.
+ * localedata/ps_AF.UTF-8.in: Likewise.
+ * localedata/ro_RO.UTF-8.in: Likewise.
+ * localedata/ru_RU.UTF-8.in: Likewise.
+ * localedata/sc_IT.UTF-8.in: Likewise.
+ * localedata/se_NO.UTF-8.in: Likewise.
+ * localedata/sq_AL.UTF-8.in: Likewise.
+ * localedata/sv_SE.UTF-8.in: Likewise.
+ * localedata/szl_PL.UTF-8.in: Likewise.
+ * localedata/tg_TJ.UTF-8.in: Likewise.
+ * localedata/tk_TM.UTF-8.in: Likewise.
+ * localedata/tt_RU.UTF-8.in: Likewise.
+ * localedata/tt_RU.UTF-8@iqtelif.in: Likewise.
+ * localedata/ug_CN.UTF-8.in: Likewise.
+ * localedata/uz_UZ.UTF-8.in: Likewise.
+ * localedata/vi_VN.UTF-8.in: Likewise.
+ * localedata/yi_US.UTF-8.in: Likewise.
+ * localedata/yo_NG.UTF-8.in: Likewise.
+ * localedata/zh_CN.UTF-8.in: Likewise.
+ * localedata/locales/am_ET: Adapt collation rules to new iso14651_t1_common
+ file and fix bugs in the collation.
+ * localedata/locales/az_AZ: Likewise.
+ * localedata/locales/be_BY: Likewise.
+ * localedata/locales/ber_DZ: Likewise.
+ * localedata/locales/ber_MA: Likewise.
+ * localedata/locales/bg_BG: Likewise.
+ * localedata/locales/br_FR: Likewise.
+ * localedata/locales/br_FR@euro: Likewise.
+ * localedata/locales/ca_ES: Likewise.
+ * localedata/locales/cns11643_stroke: Likewise.
+ * localedata/locales/crh_UA: Likewise.
+ * localedata/locales/cs_CZ: Likewise.
+ * localedata/locales/csb_PL: Likewise.
+ * localedata/locales/cv_RU: Likewise.
+ * localedata/locales/cy_GB: Likewise.
+ * localedata/locales/da_DK: Likewise.
+ * localedata/locales/dz_BT: Likewise.
+ * localedata/locales/en_CA: Likewise.
+ * localedata/locales/eo: Likewise.
+ * localedata/locales/es_CU: Likewise.
+ * localedata/locales/es_EC: Likewise.
+ * localedata/locales/es_ES: Likewise.
+ * localedata/locales/es_US: Likewise.
+ * localedata/locales/et_EE: Likewise.
+ * localedata/locales/fa_IR: Likewise.
+ * localedata/locales/fi_FI: Likewise.
+ * localedata/locales/fil_PH: Likewise.
+ * localedata/locales/fur_IT: Likewise.
+ * localedata/locales/gez_ER@abegede: Likewise.
+ * localedata/locales/ha_NG: Likewise.
+ * localedata/locales/hr_HR: Likewise.
+ * localedata/locales/hsb_DE: Likewise.
+ * localedata/locales/hu_HU: Likewise.
+ * localedata/locales/ig_NG: Likewise.
+ * localedata/locales/ik_CA: Likewise.
+ * localedata/locales/is_IS: Likewise.
+ * localedata/locales/iso14651_t1_pinyin: Likewise.
+ * localedata/locales/kk_KZ: Likewise.
+ * localedata/locales/ku_TR: Likewise.
+ * localedata/locales/ky_KG: Likewise.
+ * localedata/locales/ln_CD: Likewise.
+ * localedata/locales/lt_LT: Likewise.
+ * localedata/locales/lv_LV: Likewise.
+ * localedata/locales/mi_NZ: Likewise.
+ * localedata/locales/ml_IN: Likewise.
+ * localedata/locales/mn_MN: Likewise.
+ * localedata/locales/mr_IN: Likewise.
+ * localedata/locales/mt_MT: Likewise.
+ * localedata/locales/nb_NO: Likewise.
+ * localedata/locales/om_KE: Likewise.
+ * localedata/locales/os_RU: Likewise.
+ * localedata/locales/pl_PL: Likewise.
+ * localedata/locales/ps_AF: Likewise.
+ * localedata/locales/ro_RO: Likewise.
+ * localedata/locales/ru_RU: Likewise.
+ * localedata/locales/ru_UA: Likewise.
+ * localedata/locales/sc_IT: Likewise.
+ * localedata/locales/se_NO: Likewise.
+ * localedata/locales/si_LK: Likewise.
+ * localedata/locales/sq_AL: Likewise.
+ * localedata/locales/sv_FI: Likewise.
+ * localedata/locales/sv_FI@euro: Likewise.
+ * localedata/locales/sv_SE: Likewise.
+ * localedata/locales/szl_PL: Likewise.
+ * localedata/locales/tg_TJ: Likewise.
+ * localedata/locales/ti_ER: Likewise.
+ * localedata/locales/tk_TM: Likewise.
+ * localedata/locales/tl_PH: Likewise.
+ * localedata/locales/tr_TR: Likewise.
+ * localedata/locales/tt_RU: Likewise.
+ * localedata/locales/tt_RU@iqtelif: Likewise.
+ * localedata/locales/ug_CN: Likewise.
+ * localedata/locales/uk_UA: Likewise.
+ * localedata/locales/uz_UZ: Likewise.
+ * localedata/locales/uz_UZ@cyrillic: Likewise.
+ * localedata/locales/vi_VN: Likewise.
+ * localedata/locales/yi_US: Likewise.
+ * localedata/locales/yo_NG: Likewise.
+
+2018-02-27 Mike FABIAN <mfabian@redhat.com>
+
+ * gen-locales.mk: Make test files which contain @ modifiers in their
+ name work.
+ * localedata/gen-locale.sh: Likewise.
+
+2018-02-27 Mike FABIAN <mfabian@redhat.com>
+
+ * posix/tst-fnmatch.input: Fix results for range expressions
+ for non C locales.
+ * posix/tst-regexloc.c: Do not use a range expression for
+ de_DE.ISO-8859-1 locale.
+
+2018-02-27 Mike FABIAN <mfabian@redhat.com>
+
+ * posix/bug-regex5.c: Fix test case because with the new
+ iso14651_t1_common file, the da_DK locale now has 6 collating elements
+ in the ISO-8859-1 range instead of 4 with the old iso14651_t1_common
+ file.
+
+2018-02-27 Mike FABIAN <mfabian@redhat.com>
+
+ * localedata/da_DK.ISO-8859-1.in: In the new iso14651_t1_common file
+ downloaded from ISO, the collation order of @-. and space has changed.
+ Therefore, this test file needed to be adapted.
+ * localedata/fr_CA.UTF-8.in: Likewise.
+ * localedata/fr_FR.UTF-8.in: Likewise.
+ * localedata/uk_UA.UTF-8.in: Likewise.
+
+2018-02-27 Mike FABIAN <mfabian@redhat.com>
+
+ * localedata/cs_CZ.UTF-8.in: adapt this test file to the collation
+ order of ȥ in the new iso14651_t1_common file.
+ * localedata/pl_PL.UTF-8.in: Likewise.
+
+2018-02-27 Mike FABIAN <mfabian@redhat.com>
+
+ * localedata/locales/iso14651_t1_common: Add sections for various
+ scripts to the iso14651_t1_common file.
+
+2018-02-27 Mike FABIAN <mfabian@redhat.com>
+
+ * localedata/locales/iso14651_t1_common: Use the code point of a
+ character in the fourth collation level instead of IGNORE for all
+ entries which have IGNORE on all 4 levels.
+
+2018-02-27 Mike FABIAN <mfabian@redhat.com>
+
+ * localedata/locales/iso14651_t1_common: Add some convenient collation
+ symbols like <AFTER-A>, <BEFORE-A> to make tailoring easier using
+ rules similar to those in CLDR.
+
+2018-02-27 Mike FABIAN <mfabian@redhat.com>
+
+ * localedata/locales/iso14651_t1_common: The new version of this
+ file downloaded from ISO contained several syntax errors which
+ are fixed by this patch.
+
+2018-02-27 Mike FABIAN <mfabian@redhat.com>
+
+ * localedata/locales/iso14651_t1_common: replace all <U.....>
+ with <U000.....> because glibc understands only 4 digit or 8 digit
+
+2018-02-27 Mike FABIAN <mfabian@redhat.com>
+
+ * localedata/locales/iso14651_t1_common: Necessary changes
+ to make the file downloaded from ISO usable by glibc.
+
+2018-02-27 Mike FABIAN <mfabian@redhat.com>
+
+ [BZ #14095]
+ * localedata/locales/iso14651_t1_common: Update file to
+ latest version from ISO (ISO14651_2016_TABLE1_en.txt).
+
+2018-02-27 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * sysdeps/pthread/timer_routines.c: Include <timer_routines.h> instead
+ of <nptl/pthreadP.h>
+ (thread_attr_compare): Move function to...
+ [!defined DELAYTIMER_MAX] (DELAYTIMER_MAX): Define to INT_MAX.
+ * sysdeps/nptl/timer_routines.h: ... new header.
+ * sysdeps/mach/hurd/gai_misc.h: New file.
+
+2018-02-26 Joseph Myers <joseph@codesourcery.com>
+
+ * string/strcoll_l.c: Include <libc-diag.h>.
+ (STRCOLL): Ignore -Wmaybe-uninitialized for -Os around
+ declarations of seq1 and seq2.
+
+ [BZ #15105]
+ * stdlib/atoi.c (atoi): Use libc_hidden_def.
+ * include/stdlib.h [!_ISOMAC] (atoi): Use libc_hidden_proto.
+
+2018-02-26 Dmitry V. Levin <ldv@altlinux.org>
+
+ [BZ #22433]
+ [BZ #22807]
+ * sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h (__ptrace_request): Add
+ PTRACE_GETREGS, PTRACE_SETREGS, PTRACE_GETFPREGS, PTRACE_SETFPREGS,
+ PTRACE_GETVRREGS, PTRACE_SETVRREGS, PTRACE_GETEVRREGS,
+ PTRACE_SETEVRREGS, PTRACE_GETREGS64, PTRACE_SETREGS64,
+ PTRACE_GET_DEBUGREG, PTRACE_SET_DEBUGREG, PTRACE_GETVSRREGS,
+ PTRACE_SETVSRREGS, and PTRACE_SINGLEBLOCK.
+
+2018-02-26 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
+
+ * sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h: Undefine Linux
+ macros used in __ptrace_request.
+
+2018-02-23 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #22792]
+ * Makerules ($(common-objpfx)%.h): Pass -DGEN_AS_CONST_HEADERS
+ to $(CC).
+ * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Include
+ <tcb-offsets.h> only if GEN_AS_CONST_HEADERS isn't defined.
+ * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Don't include
+ <tcb-offsets.h>.
+
+2018-02-23 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #15105]
+ * ctype/ctype.c (tolower): Use libc_hidden_def.
+ (toupper): Likewise.
+ * include/ctype.h [!_ISOMAC] (tolower): Use libc_hidden_proto.
+ [!_ISOMAC] (toupper): Likewise.
+
+2018-02-23 Mike FABIAN <mfabian@redhat.com>
+
+ * localedata/Makefile: Remove --quiet argument when
+ installing locales
+
+2018-02-23 Mike FABIAN <mfabian@redhat.com>
+
+ [BZ #17438]
+ * localedata/locales/pt_BR (LC_TIME): use / instead of -
+ in d_fmt.
+ * localedata/locales/pt_PT (LC_TIME): likewise
+
+2018-02-23 Mike FABIAN <mfabian@redhat.com>
+
+ [BZ #22646]
+ * localedata/locales/es_CL (LC_TIME): copy "es_BO".
+ * localedata/locales/es_CU (LC_TIME): copy "es_BO".
+ * localedata/locales/es_EC (LC_TIME): copy "es_BO".
+
+2018-02-22 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/sparc/fpu/libm-test-ulps: Update.
+
+ * nptl/Makefile (routines): Remove unregister-atfork.
+ * nptl/register-atfork.c (fork_handler_pool): Remove variable.
+ (fork_handler_alloc): Remove function.
+ (fork_handlers, fork_handler_init): New variables.
+ (__fork_lock): Rename to atfork_lock.
+ (__register_atfork, __unregister_atfork, libc_freeres_fn): Rewrite
+ to use a dynamic array to add/remove atfork handlers.
+ * sysdeps/nptl/fork.c (__libc_fork): Likewise.
+ * sysdeps/nptl/fork.h (__fork_lock, __fork_handlers, __linkin_atfork):
+ Remove declaration.
+ (fork_handler): Remove next, refcntr, and need_signal member.
+ (__run_fork_handler_type): New enum.
+ (__run_fork_handlers): New prototype.
+ * nptl/register-atfork.c: Remove file.
+ * sysdeps/nptl/libc-lockP.h (__libc_atfork): Remove declaration.
+
+ * sysdeps/nptl/nptl-signals.h: Move to ...
+ * sysdeps/generic/internal-signals.h: ... here. Adjust internal
+ comments.
+ * sysdeps/unix/sysv/linux/internal-signals.h: Add include guards.
+ (__nptl_is_internal_signal): Rename to __is_internal_signal and remove
+ unnecessary check for SIGTIMER.
+ (__nptl_clear_internal_signals): Rename to __clear_internal_signals and
+ remove unnecessary removal of SIGTIMER.
+ * sysdeps/unix/sysv/linux/raise.c: Adjust nptl-signal.h to
+ include-signals.h rename.
+ * nptl/pthreadP.h: Likewise.
+ * sysdeps/unix/sysv/linux/spawni.c (__spawni_child): Call
+ __is_internal_signal instead of __nptl_is_internal_signal.
+
+2018-02-22 Andrew Waterman <andrew@sifive.com>
+
+ [BZ # 22884]
+ * sysdeps/riscv/rvd/s_fmax.c (__fmax): Handle sNaNs correctly.
+ * sysdeps/riscv/rvd/s_fmin.c (__fmin): Likewise.
+ * sysdeps/riscv/rvf/s_fmaxf.c (__fmaxf): Likewise.
+ * sysdeps/riscv/rvf/s_fminf.c (__fminf): Likewise.
+
+2018-02-22 DJ Delorie <dj@delorie.com>
+
+ * sysdeps/riscv/tls-macros.h: Do not initialize $gp.
+
+2018-02-22 Siddhesh Poyarekar <siddhesh@sourceware.org>
+
+ * sysdeps/aarch64/strcmp.S (do_misaligned): Jump back to
+ do_misaligned, not misaligned8.
+
+2018-02-22 Steve Ellcey <sellcey@cavium.com>
+
+ * sysdeps/aarch64/multiarch/Makefile (sysdep_routines):
+ Add memcpy_thunderx2.
+ * sysdeps/aarch64/multiarch/ifunc-impl-list.c (MAX_IFUNC):
+ Increment to 4.
+ (__libc_ifunc_impl_list): Add __memcpy_thunderx2.
+ * sysdeps/aarch64/multiarch/memcpy.c (libc_ifunc): Add IS_THUNDERX2
+ and IS_THUNDERX2PA checks.
+ * sysdeps/aarch64/multiarch/memcpy_thunderx.S (USE_THUNDERX2):
+ Use macro to set name appropriately.
+ (memcpy): Use USE_THUNDERX2 macro to modify prefetches.
+ * sysdeps/aarch64/multiarch/memcpy_thunderx2.S: New file.
+ * sysdeps/unix/sysv/linux/aarch64/cpu-features.h (IS_THUNDERX2PA):
+ New macro.
+ (IS_THUNDERX2): New macro.
+
+2018-02-22 Stefan Liebler <stli@linux.vnet.ibm.com>
+
+ * sysdeps/s390/fpu/libm-test-ulps: Regenerated.
+
+2018-02-21 Zack Weinberg <zackw@panix.com>
+
+ * libio/libio.h (_IO_pos_BAD, _IO_pos_0, _IO_pos_adjust):
+ Define here, unconditionally.
+ * libio/iolibio.h (_IO_pos_BAD): Don't define here.
+ * libio/libioP.h: Remove #if 0 blocks.
+ (_IO_pos_BAD, _IO_pos_0, _IO_pos_adjust): Don't define here.
+ (_IO_va_start, COERCE_FILE, MAYBE_SET_EINVAL): Don't define.
+ (CHECK_FILE): Don't use MAYBE_SET_EINVAL or COERCE_FILE. Fix style.
+
+ * libio/clearerr.c, libio/fputc.c, libio/getchar.c:
+ Assume weak_alias is always defined.
+
+ * libio/fileops.c, libio/genops.c, libio/oldfileops.c
+ * libio/oldpclose.c, libio/pclose.c, libio/wfileops.c:
+ Remove #if 0 and #ifdef TODO blocks.
+ Assume text_set_element is always defined.
+
+ * libio/iofdopen.c, libio/iogetdelim.c, libio/oldiofdopen.c
+ Use __set_errno (EINVAL) instead of MAYBE_SET_EINVAL.
+ * libio/tst-mmap-eofsync.c: Make #if 1 block unconditional.
+
+ * libio/libio.h (_IOS_ATEND, _IOS_APPEND, _IOS_TRUNC)
+ (_IOS_NOCREATE, _IOS_NOREPLACE, _IOS_BIN, _OLD_STDIO_MAGIC)
+ (_IO_SKIPWS, _IO_LEFT, _IO_RIGHT, _IO_INTERNAL, _IO_DEC)
+ (_IO_OCT, _IO_HEX, _IO_SHOWBASE, _IO_SHOWPOINT, _IO_UPPERCASE)
+ (_IO_SHOWPOS, _IO_SCIENTIFIC, _IO_FIXED, _IO_UNITBUF, _IO_STDIO)
+ (_IO_DONT_CLOSE, _IO_BOOLALPHA, _IO_BAD_SEEN): Remove, unused.
+ Reformat bit flags for _flags field to make occupancy clearer.
+ Update commentary.
+ * libio/bits/types/struct_FILE.h (_IO_EOF_SEEN, _IO_ERR_SEEN):
+ Keep definitions consistent with those in libio/libio.h.
+
+ * libio/libio.h (_IO_file_flags): Remove macro.
+ All uses changed to _flags.
+
+ * libio/libio.h (_IO_UNIFIED_JUMPTABLES, _STDIO_USES_IOSTREAM)
+ (__HAVE_COLUMN, _IO_BE): Don't define.
+ (_IO_peekc_unlocked, _IO_getwc_unlocked, _IO_putwc_unlocked)
+ (_IO_fwide_maybe_incompatible): Use __glibc_unlikely.
+ * libio/libioP.h (EOF): Don't define.
+ * libio/iofdopen.c, libio/iofopen.c, libio/iopopen.c
+ * libio/iovdprintf.c, libio/oldiofdopen.c, libio/oldiofopen.c
+ * libio/oldiopopen.c, debug/vdprintf_chk.c: Remove #if block
+ testing _IO_UNIFIED_JUMPTABLES.
+
+ * libio/libio.h (_IO_FILE): Delete; all uses changed to FILE.
+ (_IO_fpos_t): Delete; all uses changed to __fpos_t.
+ (_IO_fpos64_t): Delete; all uses changed to __fpos64_t.
+ (_IO_size_t): Delete; all uses changed to size_t.
+ (_IO_ssize_t): Delete; all uses changed to ssize_t or __ssize_t.
+ (_IO_off_t): Delete; all uses changed to off_t.
+ (_IO_off64_t): Delete; all uses changed to off64_t.
+ (_IO_pid_t): Delete; all uses changed to pid_t.
+ (_IO_uid_t): Delete; all uses changed to uid_t.
+ (_IO_wint_t): Delete; all uses changed to wint_t.
+ (_IO_va_list): Delete; all uses changed to va_list or __gnuc_va_list.
+ (_IO_BUFSIZ): Delete; all uses changed to BUFSIZ.
+ (_IO_cookie_io_functions_t): Delete; all uses changed to
+ cookie_io_functions_t.
+ (__io_read_fn): Delete; all uses changed to cookie_read_function_t.
+ (__io_write_fn): Delete; all uses changed to cookie_write_function_t.
+ (__io_seek_fn): Delete; all uses changed to cookie_seek_function_t.
+ (__io_close_fn): Delete: all uses changed to cookie_close_function_t.
+
+ * libio/iofopncook.c: Remove unnecessary forward declarations.
+ * libio/iolibio.h: Correct outdated commentary.
+ * malloc/malloc.c (__malloc_stats): Remove unnecessary casts.
+ * stdio-common/fxprintf.c (__fxprintf_nocancel):
+ Remove unnecessary casts.
+ * stdio-common/getline.c: Use _IO_getdelim directly.
+ Don't redefine ssize_t.
+ * stdio-common/printf_fp.c, stdio_common/printf_fphex.c
+ * stdio-common/printf_size.c: Don't redefine size_t or FILE.
+ Remove outdated comments.
+ * stdio-common/vfscanf.c: Don't redefine va_list.
+
+ * libio/iolibio.h, libio/libioP.h: Remove extern "C".
+ * libio/libio.h: Remove __BEGIN_DECLS and __END_DECLS.
+ Remove preprocessor conditionals on _LIBC and __USE_GNU,
+ which are always true, and __cplusplus, which is always false.
+
+2018-02-21 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #15105]
+ [BZ #19463]
+ * libio/fputc_u.c (fputc_unlocked): Use libc_hidden_def.
+ * libio/putc_u.c (putc_unlocked): Rename to __putc_unlocked and
+ define as weak alias of __putc_unlocked. Use libc_hidden_weak.
+ * include/stdio.h [!_ISOMAC] (fputc_unlocked): Use
+ libc_hidden_proto.
+ [!_ISOMAC] (putc_unlocked): Likewise.
+ [!_ISOMAC] (__putc_unlocked): Declare as hidden function, and
+ define inline if [__USE_EXTERN_INLINES].
+ * misc/syslog.c (__vsyslog_chk): Call __putc_unlocked instead of
+ putc_unlocked.
+
+ [BZ #15105]
+ [BZ #19463]
+ * libio/getc_u.c (getc_unlocked): Use libc_hidden_weak.
+ * include/stdio.h [!_ISOMAC] (__getc_unlocked): Use
+ attribute_hidden, and define inline if [__USE_EXTERN_INLINES].
+ [!_ISOMAC] (getc_unlocked): Use libc_hidden_proto.
+ * misc/getttyent.c (__getttyent): Call __getc_unlocked instead of
+ getc_unlocked.
+ * time/tzfile.c (__tzfile_read): Likewise.
+
+2018-02-21 Mike FABIAN <mfabian@redhat.com>
+
+ [BZ #22517]
+ * localedata/locales/et_EE (LC_COLLATE): add missing “reorder-endâ€
+
+2018-02-21 Rical Jasan <ricaljasan@pacific.net>
+
+ * io/fcntl.h: Fix a typo in a comment.
+
+2018-02-21 Rical Jasan <ricaljasan@pacific.net>
+
+ [BZ #22862]
+ * include/features.h: Add _ISOC11_SOURCE to test for whether to
+ define _DEFAULT_SOURCE.
+ * manual/creature.texi (_DEFAULT_SOURCE): Improve documentation.
+
+2018-02-21 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #20890]
+ * elf/cache.c (save_cache): Call fsync on temporary file before
+ renaming it.
+ (save_aux_cache): Call fdatasync on temporary file before renaming
+ it.
+
+2018-02-21 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #22787]
+ * include/caller.h: Remove file.
+ * elf/dl-caller.c: Likewise.
+ * elf/Makefile (dl-routines): Remove dl-caller.
+ (shared-only-routines): Do not add dl-caller.
+ * elf/dl-load.c (_dl_map_object_from_fd): Do not call
+ __check_caller.
+ * elf/dl-open.c (struct dl_open_args): Remove caller_dl_open
+ member.
+ (dl_open_worker): Do not call __check_caller.
+ (_dl_open): Do not set caller_dl_open member.
+ * elf/rtld.c (_rtld_global_ro): Do not initialize
+ _dl_check_caller member.
+ * sysdeps/generic/ldsodefs.h (rtld_global): Remove
+ _dl_check_caller member.
+ (_dl_check_caller): Remove declaration.
+ * sysdeps/unix/sysv/linux/dl-execstack.c
+ (_dl_make_stack_executable): Do not call __check_caller.
+
+2018-02-21 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * sysdeps/mach/hurd/dl-sysdep.c (_dl_random): New variable.
+ * sysdeps/mach/hurd/sysdep-cancel.h: New file.
+
+2018-02-20 Rical Jasan <ricaljasan@pacific.net>
+
+ * manual/creature.texi (_ISOC99_SOURCE): Update the dated
+ description.
+
+2018-02-20 Rical Jasan <ricaljasan@pacific.net>
+
+ [BZ #16335]
+ * manual/creature.texi (_POSIX_C_SOURCE): Document special values
+ of 199606L, 200112L, and 200809L.
+ (_XOPEN_SOURCE): Document special values of 600 and 700.
+ (_ISOC11_SOURCE): Document macro.
+ (_ATFILE_SOURCE): Likewise.
+ (_FORTIFY_SOURCE): Likewise.
+
+2018-02-19 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #15105]
+ [BZ #19463]
+ * libio/ferror_u.c (ferror_unlocked): Rename to __ferror_unlocked
+ and define as weak alias of __ferror_unlocked. Use
+ libc_hidden_weak.
+ * include/stdio.h [!_ISOMAC] (ferror_unlocked): Use
+ libc_hidden_proto.
+ [!_ISOMAC] (__ferror_unlocked) New declaration, and inline
+ function if [__USE_EXTERN_INLINES].
+ * time/getdate.c (__getdate_r): Call __ferror_unlocked instead of
+ ferror_unlocked.
+
+2018-02-19 Rical Jasan <ricaljasan@pacific.net>
+
+ [BZ #6889]
+ * manual/filesys.texi (get_current_dir_name): Clarify behaviour.
+
+2018-02-18 Aurelien Jarno <aurelien@aurel32.net>
+
+ [BZ #22818]
+ * posix/tst-glob_lstat_compat.c [__alpha__] (glob): Access
+ the GLIBC_2.1 version.
+
+2018-02-18 Aurelien Jarno <aurelien@aurel32.net>
+
+ [BZ #21508]
+ * catgets/xopen-msg.awk: Ignore POT-Creation-Date line.
+ * intl/Makefile ($(objpfx)tst-gettext-de.po): Generate
+ intl/tst-gettext-de.po from po/de.po by removing the
+ POT-Creation-Date line.
+ ($(objpfx)msgs.h): Depend on $(objpfx)tst-gettext-de.po instead of
+ ../po/de.po.
+ * intl/tst-gettext.sh: Use ${objpfx}tst-gettext-de.po instead of
+ ../po/de.po.
+
+2018-02-17 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * mach/Makefile (headers): Add mach/param.h.
+ * sysdeps/mach/hurd/bits/param.h: Include <mach/param.h>.
+ * sysdeps/mach/i386/mach/param.h: New file, defines EXEC_PAGESIZE
+ * sysdeps/mach/hurd/ptsname.c: Include <sys/stat.h>.
+ (__ptsname_r): Move implementation to...
+ (__ptsname_internal): ... new function. Add filling the STP
+ structure.
+
+2018-02-17 John David Anglin <danglin@gcc.gnu.org>
+
+ * sysdeps/hppa/fpu/libm-test-ulps (pow): Increase double and
+ idouble to 1 ULP.
+
+2018-02-16 Rical Jasan <ricaljasan@pacific.net>
+
+ * manual/platform.texi (__riscv_flush_icache): Fix @deftypefun
+ syntax.
+
+2018-02-16 Stefan Liebler <stli@linux.vnet.ibm.com>
+
+ * nptl/Makefile (tst-mutex8-ENV): Delete.
+ * nptl/tst-mutex8.c (check_type):
+ Add runtime check if mutex will be elided.
+
+2018-02-15 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #20980]
+ [BZ #21234]
+ * manual/install.texi (Configuring and compiling): Describe
+ passing CC and CFLAGS on configure command line, not as
+ environment variables. Use @code markup on those variables.
+ Specify what options go in CC and what go in CFLAGS. Note the
+ requirement to compile with optimization.
+ * INSTALL: Regenerated.
+
+ [BZ #18124]
+ * sysdeps/hppa/bsd-setjmp.S: Include <sysdep.h>.
+ (setjmp): Use HIDDEN_JUMPTARGET with __sigsetjmp.
+ * sysdeps/unix/sysv/linux/hppa/getcontext.S (__getcontext): Call
+ __sigprocmask instead of sigprocmask.
+ * sysdeps/unix/sysv/linux/hppa/setcontext.S (__setcontext):
+ Likewise.
+ * sysdeps/unix/sysv/linux/hppa/localplt.data: Remove entries for
+ __sigsetjmp and sigprocmask.
+
+ [BZ #15105]
+ * include/argz.h (argz_next): Use libc_hidden_proto.
+ (__argz_next): Likewise.
+ * string-argz-next.c (__argz_next): Use libc_hidden_def.
+ (argz_next): Use libc_hidden_weak.
+
+ [BZ #15105]
+ * include/sys/socket.h [!_ISOMAC] (__cmsg_nxthdr): Use
+ libc_hidden_proto.
+ * sysdeps/unix/sysv/linux/cmsg_nxthdr.c (__cmsg_nxthdr): Use
+ libc_hidden_def.
+
+ [BZ #15105]
+ * include/stdio.h [!_ISOMAC && IS_IN (libc)] (fputs): Use
+ libc_hidden_proto.
+ * libio/iofputs.c (fputs): Use libc_hidden_weak.
+
+ [BZ #15105]
+ [BZ #19463]
+ * libio/feof_u.c (feof_unlocked): Rename to __feof_unlocked and
+ define as weak alias of __feof_unlocked. Use libc_hidden_weak.
+ * include/stdio.h (feof_unlocked): Use libc_hidden_proto.
+ (__feof_unlocked): New declaration, and inline function if
+ [__USE_EXTERN_INLINES].
+ * iconv/gconv_conf.c (read_conf_file): Call __feof_unlocked
+ instead of feof_unlocked.
+ * intl/localealias.c [_LIBC] (FEOF): Likewise.
+ * nss/nsswitch.c (nss_parse_file): Likewise.
+ * sysdeps/unix/sysv/linux/readonly-area.c (__readonly_area):
+ Likewise.
+ * time/getdate.c (__getdate_r): Likewise.
+ * sysdeps/posix/getaddrinfo.c [IS_IN (libc)] (feof_unlocked):
+ Define as macro to call __feof_unlocked.
+
+2018-02-15 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * sysdeps/aarch64/fpu/fpu_control.h: Use <> in include.
+
+2018-02-15 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * math/Makefile: Remove mpexp.c and mplog.c
+ * sysdeps/i386/fpu/mpexp.c: Delete file.
+ * sysdeps/i386/fpu/mplog.c: Likewise.
+ * sysdeps/ia64/fpu/mpexp.c: Likewise.
+ * sysdeps/ia64/fpu/mplog.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_exp.c: Remove mention of mpexp and mplog.
+ * sysdeps/ieee754/dbl-64/mpa.h (__pow_mp): Remove unused function.
+ * sysdeps/ieee754/dbl-64/mpexp.c: Delete file.
+ * sysdeps/ieee754/dbl-64/mplog.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/mpexp.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/mplog.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/Makefile: Remove mpexp* and mplog*.
+ * sysdeps/x86_64/fpu/multiarch/e_log-avx.c: Remove unused defines.
+ * sysdeps/x86_64/fpu/multiarch/e_log-fma.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/e_log-fma4.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/mpexp-avx.c: Delete file.
+ * sysdeps/x86_64/fpu/multiarch/mpexp-fma.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/mpexp-fma4.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/mplog-avx.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/mplog-fma.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/mplog-fma4.c: Likewise.
+
+2018-02-15 Stefan Liebler <stli@linux.vnet.ibm.com>
+
+ * sysdeps/s390/fpu/libm-test-ulps: Regenerated.
+
+2018-02-14 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/sh/libm-test-ulps: Update.
+
+2018-02-12 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
+
+ * sysdeps/powerpc/fpu/libm-test-ulps (pow): Increase double and
+ idouble to 1 ULP.
+
+2018-02-12 Zack Weinberg <zackw@panix.com>
+
+ [BZ #19239]
+ * posix/sys/types.h: Don't include sys/sysmacros.h.
+ * misc/sys/sysmacros.h: Remove the conditional deprecation
+ warnings for the macros defined by this header.
+
+2018-02-12 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * manual/probes.texi: Remove slowexp probes.
+ * math/Makefile: Remove slowexp.
+ * sysdeps/generic/math_private.h (__slowexp): Remove.
+ * sysdeps/ieee754/dbl-64/e_exp.c (__ieee754_exp): Remove __slowexp and
+ document error bounds.
+ * sysdeps/i386/fpu/slowexp.c: Remove.
+ * sysdeps/ia64/fpu/slowexp.c: Remove.
+ * sysdeps/ieee754/dbl-64/slowexp.c: Remove.
+ * sysdeps/ieee754/dbl-64/uexp.h (err_0): Remove.
+ * sysdeps/m68k/m680x0/fpu/slowexp.c: Remove.
+ * sysdeps/powerpc/power4/fpu/Makefile (CPPFLAGS-slowexp.c): Remove.
+ * sysdeps/x86_64/fpu/multiarch/Makefile: Remove slowexp-fma.
+ * sysdeps/x86_64/fpu/multiarch/e_exp-avx.c (__slowexp): Remove.
+ * sysdeps/x86_64/fpu/multiarch/e_exp-fma.c (__slowexp): Remove.
+ * sysdeps/x86_64/fpu/multiarch/e_exp-fma4.c (__slowexp): Remove.
+ * sysdeps/x86_64/fpu/multiarch/slowexp-avx.c: Remove.
+ * sysdeps/x86_64/fpu/multiarch/slowexp-fma.c: Remove.
+ * sysdeps/x86_64/fpu/multiarch/slowexp-fma4.c: Remove.
+
+2018-02-12 Wilco Dijkstra <wdijkstr@arm.com>
+
+ [BZ #13932]
+ * sysdeps/ieee754/dbl-64/uexp.h (err_1): Remove.
+ * benchtests/pow-inputs: Update comment for slow path cases.
+ * manual/probes.texi (slowpow_p10): Delete removed probe.
+ (slowpow_p10): Likewise.
+ * math/Makefile: Remove halfulp.c and slowpow.c.
+ * sysdeps/aarch64/libm-test-ulps: Set ULP of pow to 1.
+ * sysdeps/generic/math_private.h (__exp1): Remove error argument.
+ (__halfulp): Remove.
+ (__slowpow): Remove.
+ * sysdeps/i386/fpu/halfulp.c: Delete file.
+ * sysdeps/i386/fpu/slowpow.c: Likewise.
+ * sysdeps/ia64/fpu/halfulp.c: Likewise.
+ * sysdeps/ia64/fpu/slowpow.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_exp.c (__exp1): Remove error argument,
+ improve comments and add error analysis.
+ * sysdeps/ieee754/dbl-64/e_pow.c (__ieee754_pow): Add error analysis.
+ (power1): Remove function:
+ (log1): Remove error argument, add error analysis.
+ (my_log2): Remove function.
+ * sysdeps/ieee754/dbl-64/halfulp.c: Delete file.
+ * sysdeps/ieee754/dbl-64/slowpow.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/halfulp.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/slowpow.c: Likewise.
+ * sysdeps/powerpc/power4/fpu/Makefile: Remove CPPFLAGS-slowpow.c.
+ * sysdeps/x86_64/fpu/libm-test-ulps: Set ULP of pow to 1.
+ * sysdeps/x86_64/fpu/multiarch/Makefile: Remove slowpow-fma.c,
+ slowpow-fma4.c, halfulp-fma.c, halfulp-fma4.c.
+ * sysdeps/x86_64/fpu/multiarch/e_pow-fma.c (__slowpow): Remove define.
+ * sysdeps/x86_64/fpu/multiarch/e_pow-fma4.c (__slowpow): Likewise.
+ * sysdeps/x86_64/fpu/multiarch/halfulp-fma.c: Delete file.
+ * sysdeps/x86_64/fpu/multiarch/halfulp-fma4.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/slowpow-fma.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/slowpow-fma4.c: Likewise.
+
+2018-02-11 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * nscd/connections.c (RWLOCK_INITIALIZER): Define to
+ PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP or
+
+2018-02-10 Dmitry V. Levin <ldv@altlinux.org>
+
+ [BZ #22433]
+ * sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h (__ptrace_request):
+ Remove arm-specific PTRACE_GET_THREAD_AREA, PTRACE_GETHBPREGS,
+ and PTRACE_SETHBPREGS.
+
+2018-02-10 Zack Weinberg <zackw@panix.com>
+
+ [BZ #22830]
+ * malloc/malloc.c (__malloc_stats): Restore stderr->_flags2
+ correctly.
+ * malloc/tst-malloc-stats-cancellation.c: New test case.
+ * malloc/Makefile: Add new test case.
+
+2018-02-10 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * sysdeps/aarch64/fpu/fpu_control.h: Add features.h to fix build error.
+
+2018-02-10 Joseph Myers <joseph@codesourcery.com>
+
+ * math/Makefile (libm-narrow-fns): Add add.
+ (libm-test-funcs-narrow): Likewise.
+ * math/Versions (GLIBC_2.28): Add narrowing add functions.
+ * math/bits/mathcalls-narrow.h (add): Use __MATHCALL_NARROW .
+ * math/gen-auto-libm-tests.c (test_functions): Add add.
+ * math/math-narrow.h (CHECK_NARROW_ADD): New macro.
+ (NARROW_ADD_ROUND_TO_ODD): Likewise.
+ (NARROW_ADD_TRIVIAL): Likewise.
+ * sysdeps/ieee754/float128/float128_private.h (__faddl): New
+ macro.
+ (__daddl): Likewise.
+ * sysdeps/ieee754/ldbl-opt/Makefile (libnldbl-calls): Add fadd and
+ dadd.
+ (CFLAGS-nldbl-dadd.c): New variable.
+ (CFLAGS-nldbl-fadd.c): Likewise.
+ * sysdeps/ieee754/ldbl-opt/Versions (GLIBC_2.28): Add
+ __nldbl_daddl.
+ * sysdeps/ieee754/ldbl-opt/nldbl-compat.h (__nldbl_daddl): New
+ prototype.
+ * manual/arith.texi (Misc FP Arithmetic): Document fadd, faddl,
+ daddl, fMaddfN, fMaddfNx, fMxaddfN and fMxaddfNx.
+ * math/auto-libm-test-in: Add tests of add.
+ * math/auto-libm-test-out-narrow-add: New generated file.
+ * math/libm-test-narrow-add.inc: New file.
+ * sysdeps/i386/fpu/s_f32xaddf64.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_f32xaddf64.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_fadd.c: Likewise.
+ * sysdeps/ieee754/float128/s_f32addf128.c: Likewise.
+ * sysdeps/ieee754/float128/s_f64addf128.c: Likewise.
+ * sysdeps/ieee754/float128/s_f64xaddf128.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/s_daddl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/s_f64xaddf128.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/s_faddl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_daddl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_faddl.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/s_daddl.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/s_faddl.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/nldbl-dadd.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/nldbl-fadd.c: Likewise.
+ * sysdeps/ieee754/soft-fp/s_daddl.c: Likewise.
+ * sysdeps/ieee754/soft-fp/s_fadd.c: Likewise.
+ * sysdeps/ieee754/soft-fp/s_faddl.c: Likewise.
+ * sysdeps/powerpc/fpu/libm-test-ulps: Update.
+ * sysdeps/mach/hurd/i386/libm.abilist: Likewise.
+ * 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/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/libm-le.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/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/tile/tilegx32/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilegx64/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
+
+ * sysdeps/powerpc/powerpc64le/Makefile [$(subdir) = math]
+ (f128-pairs): New variable.
+ [$(subdir) = math] ($(foreach suf,$(all-object-suffixes),$(foreach
+ pair,$(f128-pairs),$(objpfx)test-$(pair)%$(suf)))): Add -mfloat128
+ to CFLAGS.
+ [$(subdir) = math] ($(foreach pair,$(f128-pairs),test-$(pair)%)):
+ Also make tests add $(f128-loader-link) to gnulib-tests.
+
+2018-02-09 DJ Delorie <dj@redhat.com>
+
+ [BZ #22827]
+ * sysdeps/unix/sysv/linux/riscv/readelflib.c (process_elf_file): Use
+ 64-bit ELF type for 64-bit ELF objects.
+
+2018-02-09 Joseph Myers <joseph@codesourcery.com>
+
+ * math/libm-test-driver.c (snan_tests_arg): New variable.
+ * math/libm-test-support.h (snan_tests_arg): New declaration.
+ * math/libm-test-support.c (enable_test): Check snan_tests_arg.
+
+ * math/Makefile (test-type-pairs): New variable.
+ (test-type-pairs-f64xf128-yes): Likewise.
+ (tests): Add test-narrow-macros.
+ (libm-test-funcs-narrow): New variable.
+ (libm-test-c-narrow): Likewise.
+ (generated): Add $(libm-test-c-narrow).
+ (libm-tests-base-narrow): New variable.
+ (libm-tests-narrow): Likewise.
+ (libm-tests): Add $(libm-tests-narrow).
+ (libm-tests-for-type): Handle $(libm-tests-narrow).
+ (libm-test-c-narrow-obj): New variable.
+ ($(libm-test-c-narrow-obj)): New rule.
+ ($(foreach t,$(libm-tests-narrow),$(objpfx)$(t).c)): Likewise.
+ ($(foreach f,$(libm-test-funcs-narrow),$(objpfx)$(o)-$(f).o)): Use
+ $(o-iterator) to set dependencies and CFLAGS.
+ * math/gen-auto-libm-tests.c: Document use for narrowing
+ functions.
+ (output_for_one_input_case): Take argument NARROW.
+ (generate_output): Likewise. Update call to
+ output_for_one_input_case.
+ (main): Take --narrow option. Update call to generate_output.
+ * math/gen-libm-test.pl (_apply_lit): Take macro name as argument.
+ (apply_lit): Update call to _apply_lit.
+ (apply_arglit): New function.
+ (parse_args): Handle "a" arguments.
+ (parse_auto_input): Handle format names using ":".
+ * math/README.libm-test: Document "a" parameter type.
+ * math/libm-test-support.h (ARG_TYPE_MIN): New macro.
+ (ARG_TYPE_TRUE_MIN): Likewise.
+ (ARG_TYPE_MAX): Likwise.
+ (ARG_MIN_EXP): Likewise.
+ (ARG_MAX_EXP): Likewise.
+ (ARG_MANT_DIG): Likewise.
+ (TEST_COND_arg_ibm128): Likewise.
+ (TEST_COND_ibm128_libgcc): Define conditional on [ARG_FLOAT].
+ (TEST_COND_arg_fmt): New macro.
+ (init_max_error): Update prototype.
+ * math/libm-test-support.c (test_ibm128): New variable.
+ (init_max_error): Take argument testing_ibm128 and set test_ibm128
+ instead of using [TEST_COND_ibm128] conditional.
+ (test_exceptions): Use test_ibm128 instead of TEST_COND_ibm128.
+ * math/libm-test-driver.c (STR_ARG_FLOAT): New macro.
+ [TEST_NARROW] (TEST_MSG): New definition.
+ (arg_plus_zero): New macro.
+ (arg_minus_zero): Likewise.
+ (arg_plus_infty): Likewise.
+ (arg_minus_infty): Likewise.
+ (arg_qnan_value_pl): Likewise.
+ (arg_qnan_value): Likewise.
+ (arg_snan_value_pl): Likewise.
+ (arg_snan_value): Likewise.
+ (arg_max_value): Likewise.
+ (arg_min_value): Likewise.
+ (arg_min_subnorm_value): Likewise.
+ [ARG_FLOAT] (struct test_aa_f_data): New struct type.
+ (RUN_TEST_LOOP_aa_f): New macro.
+ (TEST_SUFF): New macro.
+ (TEST_SUFF_STR): Likewise.
+ [!TEST_MATHVEC] (VEC_SUFF): Don't define.
+ (TEST_COND_any_ibm128): New macro.
+ (START): Use TEST_SUFF and TEST_SUFF_STR in initializer for
+ this_func. Update call to init_max_error.
+ * math/test-double.h (FUNC_NARROW_PREFIX): New macro.
+ * math/test-float.h (FUNC_NARROW_PREFIX): Likewise.
+ * math/test-float128.h (FUNC_NARROW_PREFIX): Likewise.
+ * math/test-float32.h (FUNC_NARROW_PREFIX): Likewise.
+ * math/test-float32x.h (FUNC_NARROW_PREFIX): Likewise.
+ * math/test-float64.h (FUNC_NARROW_PREFIX): Likewise.
+ * math/test-float64x.h (FUNC_NARROW_PREFIX): Likewise.
+ * math/test-math-scalar.h (TEST_NARROW): Likewise.
+ * math/test-math-vector.h (TEST_NARROW): Likewise.
+ * math/test-arg-double.h: New file.
+ * math/test-arg-float128.h: Likewise.
+ * math/test-arg-float32x.h: Likewise.
+ * math/test-arg-float64.h: Likewise.
+ * math/test-arg-float64x.h: Likewise.
+ * math/test-arg-ldouble.h: Likewise.
+ * math/test-math-narrow.h: Likewise.
+ * math/test-narrow-macros.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/test-narrow-macros-ldbl-64.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/Makefile (tests): Add
+ test-narrow-macros-ldbl-64.
+ (CFLAGS-test-narrow-macros-ldbl-64.c): New variable.
+
+ * math/bits/mathcalls-narrow.h: New file.
+ * include/bits/mathcalls-narrow.h: Likewise.
+ * math/math-narrow.h: Likewise.
+ * math/math.h (__MATHCALL_NARROW_ARGS_1): New macro.
+ (__MATHCALL_NARROW_ARGS_2): Likewise.
+ (__MATHCALL_NARROW_ARGS_3): Likewise.
+ (__MATHCALL_NARROW_NORMAL): Likewise.
+ (__MATHCALL_NARROW_REDIR): Likewise.
+ (__MATHCALL_NARROW): Likewise.
+ [__GLIBC_USE (IEC_60559_BFP_EXT)]: Repeatedly include
+ <bits/mathcalls-narrow.h> with _Mret_, _Marg_ and __MATHCALL_NAME
+ defined.
+ [__GLIBC_USE (IEC_60559_TYPES_EXT)]: Likewise.
+ * math/Makefile (headers): Add bits/mathcalls-narrow.h.
+ (libm-narrow-fns): New variable.
+ (libm-narrow-types-basic): Likewise.
+ (libm-narrow-types-ldouble-yes): Likewise.
+ (libm-narrow-types-float128-yes): Likewise.
+ (libm-narrow-types-float128-alias-yes): Likewise.
+ (libm-narrow-types): Likewise.
+ (libm-routines): Add narrowing functions.
+ * sysdeps/i386/fpu/fenv_private.h [__x86_64__]
+ (libc_feholdexcept_setroundf128): New macro.
+ [__x86_64__] (libc_feupdateenv_testf128): Likewise.
+ * sysdeps/ieee754/float128/float128_private.h: Include
+ <math/math-narrow.h>.
+ [libc_feholdexcept_setroundf128] (libc_feholdexcept_setroundl):
+ Undefine and redefine.
+ [libc_feupdateenv_testf128] (libc_feupdateenv_testl): Likewise.
+ (libm_alias_float_ldouble): Undefine and redefine.
+ (libm_alias_double_ldouble): Likewise.
+
+ * math/Makefile [$(PERL) != no] (libm-test-incs): Remove variable.
+
+2018-02-09 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * sysdeps/aarch64/fpu/fpu_control.h: Use builtins for accessing
+ FPCR/FPSR.
+
+2018-02-09 Rical Jasan <ricaljasan@pacific.net>
+
+ * manual/creature.texi: Convert references to gcc.info to gcc.
+ * manual/stdio.texi: Likewise.
+ * manual/string.texi: Likewise.
+
+2018-02-07 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #17979]
+ * posix/bits/types.h (__int_least8_t): New typedef.
+ (__uint_least8_t): Likewise.
+ (__int_least16_t): Likewise.
+ (__uint_least16_t): Likewise.
+ (__int_least32_t): Likewise.
+ (__uint_least32_t): Likewise.
+ (__int_least64_t): Likewise.
+ (__uint_least64_t): Likewise.
+ * sysdeps/generic/stdint.h (int_least8_t): Define using
+ __int_least8_t.
+ (int_least16_t): Define using __int_least16_t.
+ (int_least32_t): Define using __int_least32_t.
+ (int_least64_t): Define using __int_least64_t.
+ (uint_least8_t): Define using __uint_least8_t.
+ (uint_least16_t): Define using __uint_least16_t.
+ (uint_least32_t): Define using __uint_least32_t.
+ (uint_least64_t): Define using __uint_least64_t.
+ * wcsmbs/uchar.h: Include <bits/types.h>.
+ (char16_t): Define using __uint_least16_t conditional only on
+ [!__USE_ISOCXX11].
+ (char32_t): Define using __uint_least32_t conditional only on
+ [!__USE_ISOCXX11].
+ * wcsmbs/test-char-types.c: New file.
+ * wcsmbs/Makefile (tests): Add test-char-types.
+
+ * scripts/build-many-glibcs.py (Context.checkout): Default MPFR
+ version to 4.0.1.
+
+2018-02-07 Zack Weinberg <zackw@panix.com>
+
+ * bits/_G_config.h: Move back to sysdeps/generic/_G_config.h.
+ Delete all contents except for definitions of _G_HAVE_MMAP and
+ _G_HAVE_MREMAP. Add commentary explaining those two symbols.
+ * sysdeps/unix/sysv/linux/bits/_G_config.h: Move back to
+ sysdeps/unix/sysv/linux/_G_config.h. Make same content
+ change as above.
+
+ * libio/libio.h: Don't include bits/_G_config.h here.
+ Include stddef.h with __need_wchar_t defined. Include
+ bits/types/__mbstate_t.h, bits/types/wint_t.h, and gconv.h.
+ Define _IO_iconv_t here, directly.
+ Don't define _IO_HAVE_ST_BLKSIZE.
+ * libio/libioP.h: Include _G_config.h here. Move include of
+ shlib-compat.h up with rest of includes. Simplify conditionals
+ controlling definition of _IO_JUMPS_OFFSET.
+
+ * csu/init.c: Remove always-true #if around entire file.
+ Don't include stdio.h. Set _IO_stdin_used to hardwired
+ constant 0x20001, and update commentary.
+ * include/stdio.h, sysdeps/ieee754/ldbl-opt/nldbl-compat.h:
+ Replace all uses of _G_va_list with __gnuc_va_list.
+ * libio/filedoalloc.c: Use #if defined _STATBUF_ST_BLKSIZE
+ instead of #if _IO_HAVE_ST_BLKSIZE.
+ * libio/fileops.c: Test _G_HAVE_MREMAP with #if, not #ifdef.
+ * libio/iofdopen.c, libio/iofopen.c: Test _G_HAVE_MMAP with #if,
+ not #ifdef.
+
+ * libio/bits/libio.h: Move back to libio/libio.h and adjust
+ multiple-include guard to match.
+ Merge contents of libio/bits/libio-ldbl.h and include/libio.h
+ into this file.
+ Remove preprocessor conditionals that are always true and/or
+ redundant to other preprocessor conditionals in the same nest.
+ Include shlib-compat.h unconditionally.
+ Error out if _LIBC is not defined, or if _ISOMAC is defined,
+ or if _IO_MTSAFE_IO is defined but _IO_lock_t_defined is not
+ defined after including stdio.h.
+ Use __BEGIN_DECLS/__END_DECLS.
+
+ * libio/bits/libio-ldbl.h, include/bits/libio.h: Delete file.
+ * include/stdio.h, libio/iolibio.h, libio/libioP.h: Include
+ libio.h as <libio/libio.h> rather than as <bits/libio.h>.
+
+2018-02-07 Zack Weinberg <zackw@panix.com>
+
+ * libio/bits/types/__fpos_t.h, libio/bits/types/__fpos64_t.h:
+ New single-type headers split from _G_config.h.
+ * libio/bits/types/cookie_io_functions_t.h
+ * libio/bits/types/struct_FILE.h
+ New single-type headers split from libio.h.
+
+ * libio/Makefile: Install the above new headers. Don't install
+ libio.h, _G_config.h, bits/libio.h, bits/_G_config.h, or
+ bits/libio-ldbl.h.
+ * libio/_G_config.h, libio/libio.h: Delete file.
+
+ * libio/bits/libio.h: Remove improper-inclusion guard.
+ Include stdio.h and don't repeat anything that it does.
+ Define _IO_fpos_t as __fpos_t, _IO_fpos64_t as __fpos64_t,
+ _IO_BUFSIZ as BUFSIZ, _IO_va_list as __gnuc_va_list,
+ __io_read_fn as cookie_read_function_t,
+ __io_write_fn as cookie_write_function_t,
+ __io_seek_fn as cookie_seek_function_t,
+ __io_close_fn as cookie_close_function_t,
+ and _IO_cookie_io_functions_t as cookie_io_functions_t.
+ Define _STDIO_USES_IOSTREAM, __HAVE_COLUMN, and _IO_file_flags
+ here, in the "compatibility defines" section. Remove an #if 0
+ block. Use the "body" macros from bits/types/struct_FILE.h to
+ define _IO_getc_unlocked, _IO_putc_unlocked, _IO_feof_unlocked,
+ and _IO_ferror_unlocked.
+ Move prototypes of __uflow and __overflow...
+
+ * libio/stdio.h: ...here. Don't include bits/libio.h.
+ Don't define _STDIO_USES_IOSTREAM. Get __gnuc_va_list
+ directly from stdarg.h. Include bits/types/__fpos_t.h,
+ bits/types/__fpos64_t.h, bits/types/struct_FILE.h,
+ and, when __USE_GNU, bits/types/cookie_io_functions_t.h.
+ Use __gnuc_va_list, not _G_va_list; __fpos_t, not _G_fpos_t;
+ __fpos64_t, not _G_fpos64_t; FILE, not struct _IO_FILE;
+ cookie_io_functions_t, not _IO_cookie_io_functions_t;
+ __ssize_t, not _IO_ssize_t. Unconditionally define
+ BUFSIZ as 8192 and EOF as (-1).
+
+ * libio/bits/stdio.h: Add multiple-include guard. Use the "body"
+ macros from bits/types/struct_FILE.h instead of _IO_* macros
+ from libio.h; use __gnuc_va_list instead of va_list and __ssize_t
+ instead of _IO_ssize_t.
+ * libio/bits/stdio2.h: Similarly.
+
+ * libio/iolibio.h: Add multiple-include guard.
+ Include bits/libio.h after stdio.h.
+ * libio/libioP.h: Add multiple-include guard.
+ Include stdio.h and bits/libio.h before iolibio.h.
+
+ * include/bits/types/__fpos_t.h, include/bits/types/__fpos64_t.h
+ * include/bits/types/cookie_io_functions_t.h
+ * include/bits/types/struct_FILE.h: New wrappers.
+
+ * bits/_G_config.h, sysdeps/unix/sysv/linux/_G_config.h:
+ Get definitions of _G_fpos_t and _G_fpos64_t from
+ bits/types/__fpos_t.h and bits/types/__fpos64_t.h
+ respectively. Remove improper-inclusion guards.
+
+ * conform/data/stdio.h-data: Update expectations of va_list.
+ * scripts/check-installed-headers.sh: Remove special case for
+ libio.h and _G_config.h.
+
+2018-02-07 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #15105]
+ [BZ #19463]
+ * include/sys/sysmacros.h [!_ISOMAC]
+ (__SYSMACROS_NEED_IMPLEMENTATION): Define macro.
+ [!_SYS_SYSMACROS_H_WRAPPER && !_ISOMAC]
+ (_SYS_SYSMACROS_H_WRAPPER): Likewise.
+ [!_SYS_SYSMACROS_H_WRAPPER && !_ISOMAC] (gnu_dev_major): Use
+ libc_hidden_proto.
+ [!_SYS_SYSMACROS_H_WRAPPER && !_ISOMAC] (gnu_dev_minor): Likewise.
+ [!_SYS_SYSMACROS_H_WRAPPER && !_ISOMAC] (gnu_dev_makedev):
+ Likewise.
+ [!_SYS_SYSMACROS_H_WRAPPER && !_ISOMAC] (__SYSMACROS_DECL_TEMPL):
+ Undefine and redefine to add use __gnu_dev_ prefix.
+ [!_SYS_SYSMACROS_H_WRAPPER && !_ISOMAC] (__SYSMACROS_IMPL_TEMPL):
+ Likewise.
+ [!_SYS_SYSMACROS_H_WRAPPER && !_ISOMAC] (__gnu_dev_major): Declare
+ and define as hidden inline function.
+ [!_SYS_SYSMACROS_H_WRAPPER && !_ISOMAC] (__gnu_dev_minor):
+ Likewise.
+ [!_SYS_SYSMACROS_H_WRAPPER && !_ISOMAC] (__gnu_dev_makedev):
+ Likewise.
+ * misc/makedev.c (OUT_OF_LINE_IMPL_TEMPL): Use __gnu_dev_ prefix.
+ (gnu_dev_major): Use weak_alias and libc_hidden_weak.
+ (gnu_dev_minor): Likewise.
+ (gnu_dev_makedev): Likewise.
+ * csu/check_fds.c (check_one_fd): Use __gnu_dev_makedev instead of
+ makedev.
+ * posix/wordexp.c (exec_comm_child): Likewise.
+ * sysdeps/mach/hurd/xmknodat.c (__xmknodat): Use __gnu_dev_minor
+ instead of minor and __gnu_dev_major instead of major.
+ * sysdeps/unix/sysv/linux/device-nrs.h (DEV_TTY_P): Use
+ __gnu_dev_major instead of major.
+ * sysdeps/unix/sysv/linux/pathconf.c (distinguish_extX): Use
+ __gnu_dev_major instead of gnu_dev_major and __gnu_dev_minor
+ instead of gnu_dev_minor.
+ * sysdeps/unix/sysv/linux/ptsname.c (MASTER_P): Likewise.
+ (SLAVE_P): Likewise.
+ (__ptsname_internal): Use __gnu_dev_minor instead of minor.
+ * sysdeps/unix/sysv/linux/ttyname.h (is_pty): Use __gnu_dev_major
+ instead of major.
+
+ [BZ #21313]
+ * locale/weight.h (findidx): Disable -Wmaybe-uninitialized for -Os
+ in another place.
+ * locale/weightwc.h (findidx): Likewise.
+
+2018-02-07 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * manual/probes.texi (slowlog): Delete documentation of removed probe.
+ (slowlog_inexact): Likewise
+ * sysdeps/ieee754/dbl-64/e_log.c (__ieee754_log): Remove slow paths.
+ * sysdeps/ieee754/dbl-64/ulog.h: Remove unused declarations.
+
+2018-02-07 Igor Gnatenko <ignatenko@redhat.com>
+
+ [BZ #22797]
+ * sysdeps/unix/sysv/linux/bits/mman-shared.h (pkey_get): Add
+ missing second underscore to parameter name.
+
+2018-02-06 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #14508]
+ [BZ #15512]
+ [BZ #17082]
+ [BZ #20530]
+ * bits/byteswap.h: Update file comment. Do not include
+ <bits/byteswap-16.h>.
+ (__bswap_constant_16): Cast result to __uint16_t. Use signed 0xff
+ constant.
+ (__bswap_16): Define as inline function.
+ (__bswap_constant_32): Reformat definition.
+ (__bswap_32): Always define as inline function, not macro, using
+ __uint32_t. Use __builtin_bswap32 if [__GNUC_PREREQ (4, 3)],
+ otherwise __bswap_constant_32.
+ (__bswap_constant_64): Reformat definition. Do not use
+ __extension__ here.
+ (__bswap_64): Always define as inline function, not macro. Use
+ __extension__ on function definition. Use __builtin_bswap64 if
+ [__GNUC_PREREQ (4, 3)], otherwise __bswap_constant_64.
+ * string/test-endian-file-scope.c: New file.
+ * string/test-endian-sign-conversion.c: Likewise.
+ * string/Makefile (headers): Remove bits/byteswap-16.h.
+ (tests): Add test-endian-file-scope and
+ test-endian-sign-conversion.
+ (CFLAGS-test-endian-sign-conversion.c): New variable.
+ * bits/byteswap-16.h: Remove file.
+ * sysdeps/ia64/bits/byteswap-16.h: Likewise.
+ * sysdeps/ia64/bits/byteswap.h: Likewise.
+ * sysdeps/m68k/bits/byteswap.h: Likewise.
+ * sysdeps/s390/bits/byteswap-16.h: Likewise.
+ * sysdeps/s390/bits/byteswap.h: Likewise.
+ * sysdeps/tile/bits/byteswap.h: Likewise.
+ * sysdeps/x86/bits/byteswap-16.h: Likewise.
+ * sysdeps/x86/bits/byteswap.h: Likewise.
+
+ [BZ #17721]
+ * misc/sys/cdefs.h [!__GNUC__ && (__cplusplus || (__STDC_VERSION__
+ && __STDC_VERSION__ >= 199901L))] (__inline): Define to inline.
+ [!__GNUC_PREREQ (2,92) && __STDC_VERSION__ && __STDC_VERSION__ >=
+ 199901L] (__restrict): Define to restrict.
+
+ [BZ #19667]
+ * string/testcopy.c: Include <support/support.h>. Do not include
+ <malloc.h>. Use <support/test-driver.c>.
+ (main): Rename to do_test. Make static. Use xmalloc instead of
+ malloc.
+
+ [BZ #13575]
+ * posix/bits/posix1_lim.h: Include <bits/wordsize.h>.
+ [!SSIZE_MAX && !(__WORDSIZE == 64 || __WORDSIZE32_SIZE_ULONG)]
+ (SSIZE_MAX): Define to INT_MAX.
+ * posix/test-ssize-max.c: New file.
+ * posix/Makefile (tests): Add test-ssize-max.
+
+ [BZ #19668]
+ * sysdeps/powerpc/fpu/tst-setcontext-fpscr.c: Include
+ <support/support.h>. Do not include <malloc.h>.
+ (query_auxv): Use xmalloc instead of malloc.
+
+ [BZ #14553]
+ * posix/sys/types.h (loff_t): Only define for [__USE_MISC].
+ * sysdeps/unix/sysv/linux/sys/quota.h (dqoff): Use __loff_t
+ instead of loff_t.
+
+2018-02-06 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #18023]
+ * sysdeps/unix/sysv/linux/getlogin_r.c (__getlogin_r_loginuid):
+ Use scratch_buffer instead of extend_alloca.
+
+2018-02-06 Zack Weinberg <zackw@panix.com>
+
+ * libio/stdio.h: Don't define getc or putc as macros.
+ * libio/bits/stdio.h (getchar, putchar): Use getc and putc,
+ not _IO_getc and _IO_putc.
+
+ * stdio-common/tstgetln.c: Don't redefine FILE, va_list, or BUFSIZ.
+ * stdio-common/tstgetln.c: Don't redefine ssize_t.
+
+2018-02-06 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/gnu/netinet/tcp.h (TCP_FASTOPEN_KEY): New macro.
+ (TCP_FASTOPEN_NO_COOKIE): Likewise.
+
+ * sysdeps/unix/sysv/linux/bits/in.h (IPV6_FREEBIND): New macro.
+
+ [BZ #14890]
+ * elf/elf.h (NT_PRFPREG): New macro.
+ (NT_S390_VXRS_LOW): Likewise.
+ (NT_S390_VXRS_HIGH): Likewise.
+ (NT_S390_GS_CB): Likewise.
+ (NT_S390_GS_BC): Likewise.
+ (NT_S390_RI_CB): Likewise.
+
+ * sysdeps/unix/sysv/linux/aarch64/bits/mman.h [__USE_MISC]
+ (MAP_SYNC): New macro.
+ * sysdeps/unix/sysv/linux/arm/bits/mman.h [__USE_MISC] (MAP_SYNC):
+ Likewise.
+ * sysdeps/unix/sysv/linux/ia64/bits/mman.h [__USE_MISC]
+ (MAP_SYNC): Likewise.
+ * sysdeps/unix/sysv/linux/m68k/bits/mman.h [__USE_MISC]
+ (MAP_SYNC): Likewise.
+ * sysdeps/unix/sysv/linux/microblaze/bits/mman.h [__USE_MISC]
+ (MAP_SYNC): Likewise.
+ * sysdeps/unix/sysv/linux/nios2/bits/mman.h [__USE_MISC]
+ (MAP_SYNC): Likewise.
+ * sysdeps/unix/sysv/linux/riscv/bits/mman.h [__USE_MISC]
+ (MAP_SYNC): Likewise.
+ * sysdeps/unix/sysv/linux/s390/bits/mman.h [__USE_MISC]
+ (MAP_SYNC): Likewise.
+ * sysdeps/unix/sysv/linux/sh/bits/mman.h [__USE_MISC] (MAP_SYNC):
+ Likewise.
+ * sysdeps/unix/sysv/linux/x86/bits/mman.h [__USE_MISC] (MAP_SYNC):
+ Likewise.
+
+ * sysdeps/unix/sysv/linux/bits/mman-linux.h [__USE_MISC]
+ (MAP_SHARED_VALIDATE): New macro.
+ * sysdeps/unix/sysv/linux/hppa/bits/mman.h [__USE_MISC]
+ (MAP_SHARED_VALIDATE): Likewise.
+
+2018-02-05 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elf/dl-addr.c (determine_info): Use ADDRIDX with DT_GNU_HASH.
+ * elf/dl-lookup.c (_dl_setup_hash): Likewise.
+ * elf/get-dynamic-info.h (elf_get_dynamic_info): Likewise.
+
+2018-02-05 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elf/elf.h (DT_SYMTAB_SHNDX): New. Set to 34.
+ (DT_NUM): Updated to 35.
+
+2018-02-05 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/i386/dl-machine.h (elf_machine_rel): Replace
+ __builtin_expect with __glibc_likely and __glibc_unlikely.
+ (elf_machine_rela): Likewise.
+ (elf_machine_lazy_rel): Likewise.
+
+2018-02-05 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86_64/dl-machine.h (elf_machine_rela): Replace
+ __builtin_expect with __glibc_likely and __glibc_unlikely.
+ (elf_machine_lazy_rel): Likewise.
+
+2018-02-05 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #22638]
+ * sysdeps/sparc/sparc32/start.S (_start): Check PIC instead of
+ SHARED.
+ * sysdeps/sparc/sparc64/start.S (_start): Likewise.
+
+2018-02-05 Andreas Schwab <schwab@suse.de>
+
+ [BZ #22761]
+ * assert/assert-perr.c (__assert_perror_fail): Append %n to format
+ string.
+
+2018-02-04 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * stdlib/test-atexit-race-common.c [!defined PTHREAD_STACK_MIN]: Do
+ not check against PTHREAD_STACK_MIN.
+
+2018-02-02 Sean McKean <smckean83@gmail.com>
+
+ [BZ #22735]
+ * time/time.h (clock): Reference CLOCKS_PER_SEC in comment.
+
+2018-02-02 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #22753]
+ * sysdeps/posix/preadv2.c (preadv2): Handle offset == -1.
+ * sysdeps/posix/preadv64v2.c (preadv64v2): Likewise.
+ * sysdeps/posix/pwritev2.c (pwritev2): Likewise.
+ * sysdeps/posix/pwritev64v2.c (pwritev64v2): Likweise.
+ * sysdeps/unix/sysv/linux/preadv2.c (preadv2): Likewise.
+ * sysdeps/unix/sysv/linux/preadv64v2.c (preadv64v2): Likewise.
+ * sysdeps/unix/sysv/linux/pwritev2.c (pwritev2): Likewise.
+ * sysdeps/unix/sysv/linux/pwritev64v2.c (pwritev64v2): Likweise.
+ * manual/llio.texi (Scatter-Gather): Mention offset -1.
+ * misc/tst-preadvwritev-common.c (do_test_without_offset): New.
+ * misc/tst-preadvwritev2.c (do_test): Call it.
+ * misc/tst-preadvwritev64v2.c (do_test): Likewise.
+
+2018-02-02 Siddhesh Poyarekar <siddhesh@sourceware.org>
+
+ * sysdeps/aarch64/memcmp.S: Use L() macro for labels.
+
+ * benchtests/bench-memcmp.c: Print json instead of plain text.
+
+ * benchtests/bench-memcmp.c (do_test): Call realloc_buf for
+ every test run.
+
+2018-02-01 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/syscall-names.list: Update kernel
+ version to 4.15.
+ (s390_sthyi): New syscall.
+
+ * sysdeps/generic/ldbl-classify-compat.h: New file.
+ * sysdeps/arm/ldbl-classify-compat.h: Likewise.
+ * sysdeps/m68k/coldfire/ldbl-classify-compat.h: Likewise.
+ * sysdeps/microblaze/ldbl-classify-compat.h: Likewise.
+ * sysdeps/mips/ldbl-classify-compat.h: Likewise.
+ * sysdeps/nios2/ldbl-classify-compat.h: Likewise.
+ * sysdeps/sh/ldbl-classify-compat.h: Likewise.
+ * sysdeps/ieee754/dbl-64/s_finite.c: Include
+ <ldbl-classify-compat.h>.
+ [LDBL_CLASSIFY_COMPAT]: Test value, not whether defined.
+ * sysdeps/ieee754/dbl-64/s_isinf.c: Include
+ <ldbl-classify-compat.h>.
+ [LDBL_CLASSIFY_COMPAT]: Test value, not whether defined.
+ * sysdeps/ieee754/dbl-64/s_isnan.c: Include
+ <ldbl-classify-compat.h>.
+ [LDBL_CLASSIFY_COMPAT]: Test value, not whether defined.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_finite.c: Include
+ <ldbl-classify-compat.h>.
+ [LDBL_CLASSIFY_COMPAT]: Test value, not whether defined.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_isinf.c: Include
+ <ldbl-classify-compat.h>.
+ [LDBL_CLASSIFY_COMPAT]: Test value, not whether defined.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_isnan.c: Include
+ <ldbl-classify-compat.h>.
+ [LDBL_CLASSIFY_COMPAT]: Test value, not whether defined.
+ * sysdeps/arm/math_private.h (LDBL_CLASSIFY_COMPAT): Remove macro.
+ * sysdeps/mips/math_private.h (LDBL_CLASSIFY_COMPAT): Likewise.
+ * sysdeps/m68k/coldfire/math_private.h: Remove file.
+ * sysdeps/microblaze/math_private.h: Likewise.
+ * sysdeps/nios2/math_private.h: Likewise.
+ * sysdeps/sh/math_private.h: Likewise.
+
+ * sysdeps/m68k/coldfire/fpu/math_private.h: Move to ....
+ * sysdeps/m68k/coldfire/math_private.h: ... here.
+ * sysdeps/m68k/coldfire/nofpu/math_private.h: Remove file.
+ * sysdeps/tile/math_private.h: Likewise.
+ * sysdeps/microblaze/math_private.h (libc_feholdexcept_setround):
+ Remove macro.
+ * sysdeps/nios2/math_private.h (libc_feholdexcept_setround):
+ Likewise.
+
+ * sysdeps/m68k/coldfire/nofpu/math_private.h (libc_fesetround):
+ Remove macro.
+ (libc_fetestexcept): Likewise.
+ (libc_feupdateenv_test): Likewise.
+ * sysdeps/microblaze/math_private.h (libc_fesetround): Likewise.
+ (libc_fetestexcept): Likewise.
+ (libc_feupdateenv_test): Likewise.
+ * sysdeps/nios2/math_private.h (libc_fesetround): Likewise.
+ (libc_fetestexcept): Likewise.
+ (libc_feupdateenv_test): Likewise.
+ * sysdeps/tile/math_private.h (libc_fesetround): Likewise.
+ (libc_fetestexcept): Likewise.
+ (libc_feupdateenv_test): Likewise.
+
+ * sysdeps/generic/math_private.h
+ [!FE_HAVE_ROUNDING_MODES && FE_ALL_EXCEPT == 0] (feholdexcept):
+ New inline function.
+ [!FE_HAVE_ROUNDING_MODES && FE_ALL_EXCEPT == 0] (__feholdexcept):
+ Likewise.
+
+ * include/fenv.h [!_ISOMAC && !FE_TONEAREST]: Give #error.
+ [!_ISOMAC] (FE_HAVE_ROUNDING_MODES): New macro.
+ * sysdeps/generic/math_private.h
+ [!FE_HAVE_ROUNDING_MODES && FE_ALL_EXCEPT == 0] (fegetenv): New
+ inline function.
+ [!FE_HAVE_ROUNDING_MODES && FE_ALL_EXCEPT == 0] (__fegetenv):
+ Likewise.
+ [!FE_HAVE_ROUNDING_MODES && FE_ALL_EXCEPT == 0] (fesetenv):
+ Likewise.
+ [!FE_HAVE_ROUNDING_MODES && FE_ALL_EXCEPT == 0] (__fesetenv):
+ Likewise.
+ [!FE_HAVE_ROUNDING_MODES && FE_ALL_EXCEPT == 0] (feupdateenv):
+ Likewise.
+ [!FE_HAVE_ROUNDING_MODES && FE_ALL_EXCEPT == 0] (__feupdateenv):
+ Likewise.
+ [!FE_HAVE_ROUNDING_MODES] (fegetround): Likewise.
+ [!FE_HAVE_ROUNDING_MODES] (__fegetround): Likewise.
+ [!FE_HAVE_ROUNDING_MODES] (fesetround): Likewise.
+ [!FE_HAVE_ROUNDING_MODES] (__fesetround): Likewise.
+ * sysdeps/tile/math_private.h (fegetenv): Remove inline function.
+ (__fegetenv): Likewise.
+ (fesetenv): Likewise.
+ (__fesetenv): Likewise.
+ (feupdateenv): Likewise.
+ (__feupdateenv): Likewise.
+ (fegetround): Likewise.
+ (__fegetround): Likewise.
+ (fesetround): Likewise.
+ (__fesetround): Likewise.
+
+ * sysdeps/generic/math_private.h [FE_ALL_EXCEPT == 0]
+ (feraiseexcept): New macro.
+ [FE_ALL_EXCEPT == 0] (__feraiseexcept): Likewise.
+ * sysdeps/m68k/coldfire/nofpu/math_private.h (feraiseexcept):
+ Remove macro.
+ (__feraiseexcept): Likewise.
+ (feclearexcept): Likewise.
+ * sysdeps/microblaze/math_private.h (feraiseexcept): Likewise.
+ (__feraiseexcept): Likewise.
+ (feclearexcept): Likewise.
+ * sysdeps/nios2/math_private.h (feraiseexcept): Likewise.
+ (__feraiseexcept): Likewise.
+ (feclearexcept): Likewise.
+ * sysdeps/tile/math_private.h (feraiseexcept): Likewise.
+ (__feraiseexcept): Likewise.
+ (feclearexcept): Likewise.
+ (fetestexcept): Likewise.
+
+ * sysdeps/m68k/coldfire/math-tests.h: New file.
+
+ * sysdeps/m68k/fpu/bits/fenv.h: Move to ....
+ * sysdeps/m68k/bits/fenv.h: ... here.
+ [!__HAVE_68881__ && !__HAVE_FPU__ && !__mcffpu__] (FE_INEXACT): Do
+ not define.
+ [!__HAVE_68881__ && !__HAVE_FPU__ && !__mcffpu__] (FE_DIVBYZERO):
+ Likewise.
+ [!__HAVE_68881__ && !__HAVE_FPU__ && !__mcffpu__] (FE_UNDERFLOW):
+ Likewise.
+ [!__HAVE_68881__ && !__HAVE_FPU__ && !__mcffpu__] (FE_OVERFLOW):
+ Likewise.
+ [!__HAVE_68881__ && !__HAVE_FPU__ && !__mcffpu__] (FE_INVALID):
+ Likewise.
+ [!__HAVE_68881__ && !__HAVE_FPU__ && !__mcffpu__] (FE_ALL_EXCEPT):
+ Define to 0.
+ [!__HAVE_68881__ && !__HAVE_FPU__ && !__mcffpu__]
+ (__FE_UNDEFINED): New enum constant.
+ [!__HAVE_68881__ && !__HAVE_FPU__ && !__mcffpu__] (FE_TOWARDZERO):
+ Do not define.
+ [!__HAVE_68881__ && !__HAVE_FPU__ && !__mcffpu__] (FE_DOWNWARD):
+ Likewise.
+ [!__HAVE_68881__ && !__HAVE_FPU__ && !__mcffpu__] (FE_UPWARD):
+ Likewise.
+ [!__HAVE_68881__ && !__HAVE_FPU__ && !__mcffpu__] (fenv_t): Define
+ to match generic bits/fenv.h.
+ [!__HAVE_68881__ && !__HAVE_FPU__ && !__mcffpu__] (FE_NOMASK_ENV):
+ Do not define.
+
+ * soft-fp/double.h (union _FP_UNION_D): Do not use attribute
+ packed on bits.
+ * soft-fp/extended.h (union _FP_UNION_E): Likewise.
+ * soft-fp/half.h (union _FP_UNION_H): Likewise.
+ * soft-fp/quad.h (union _FP_UNION_Q): Likewise.
+ * soft-fp/single.h (union _FP_UNION_S): Likewise.
+
+2018-02-01 Carlos O'Donell <carlos@redhat.com>
+ Ramin Seyed-Moussavi <lordrasmus@gmail.com>
+ Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #21314]
+ * sysdeps/ieee754/dbl-64/s_log1p.c: Include <libc-diag.h>.
+ (__log1p): Disable -Wmaybe-uninitialized for -Os around
+ computation using c.
+ * sysdeps/ieee754/flt-32/s_log1pf.c: Include <libc-diag.h>.
+ (__log1pf): Disable -Wmaybe-uninitialized for -Os around
+ computation using c.
+
+2018-02-01 Dmitry V. Levin <ldv@altlinux.org>
+
+ * version.h (RELEASE): Set to "development".
+ (VERSION): Set to "2.27.9000".
+ * NEWS (2.28): New section.
+
+ * version.h (RELEASE): Set to "stable".
+ (VERSION): Set to "2.27".
+ * include/features.h (__GLIBC_MINOR__): Set to 2.27.
+
+ * NEWS: Add the list of bugs fixed in 2.27.
+
+2018-02-01 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * stdlib/test-atexit-race-common.c (do_test): Check stack size
+ against PTHREAD_STACK_MIN.
+
+2018-02-01 Dmitry V. Levin <ldv@altlinux.org>
+
+ * manual/contrib.texi (Palmer Dabbelt, Arjun Shankar, Florian Weimer):
+ New entries.
+ (Rafał Lużyński, Andreas Schwab): Update.
+
+2018-02-01 Rafał Lużyński <digitalfreak@lingonborough.com>
+
+ [BZ #10871]
+ * NEWS: List the languages which actually use the alternative
+ months feature in this release. Also explain that "alt_mon" and
+ "ab_alt_mon" are optional.
+
+2018-01-31 Il'ya Malakhov <ilmalakhov@yandex.ru>
+
+ [BZ #22765]
+ * crypt/badsalttest.c (do_test): Set cd.initialized to 0.
+
+2018-01-31 Dmitry V. Levin <ldv@altlinux.org>
+
+ * manual/install.texi (Tools for Compilation): Update the newest
+ versions of gcc, binutils, texinfo, gawk, bison, and sed.
+ * INSTALL: Regenerated.
+
+2018-01-30 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * sysdeps/pthread/allocalim.h (__libc_use_alloca): Use __glibc_likely
+ instead of __builtin_expect.
+
+2018-01-30 Florian Weimer <fweimer@redhat.com>
+
+ * nss/bug17079.c (do_test): Use nss_files only for reading passwd
+ data.
+ * nss/tst-nss-getpwent.c (do_test): Likewise.
+
+2018-01-30 Rafał Lużyński <digitalfreak@lingonborough.com>
+
+ [BZ #10871]
+ * localedata/locales/hr_HR (mon): Rename to...
+ (alt_mon): This.
+ (mon): Import from CLDR (genitive case).
+ (d_t_fmt): Update the comment.
+
+2018-01-29 Andreas Schwab <schwab@linux-m68k.org>
+
+ * sysdeps/posix/fpathconf.c (__fpathconf): Verify the values of
+ _POSIX_CHOWN_RESTRICTED, _POSIX_NO_TRUNC, _POSIX_VDISABLE.
+ * sysdeps/posix/pathconf.c (__pathconf): Likewise.
+
+2018-01-29 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * mach/Versions: Fix version when __mach_host_self_ was added.
+ * hurd/Versions: Fix version when _hurd_exec_paths was added.
+ * sysdeps/mach/hurd/i386/ld.abilist: New file.
+ * sysdeps/mach/hurd/i386/libBrokenLocale.abilist: New file.
+ * sysdeps/mach/hurd/i386/libanl.abilist: New file.
+ * sysdeps/mach/hurd/i386/libc.abilist: New file.
+ * sysdeps/mach/hurd/i386/libcrypt.abilist: New file.
+ * sysdeps/mach/hurd/i386/libdl.abilist: New file.
+ * sysdeps/mach/hurd/i386/libm.abilist: New file.
+ * sysdeps/mach/hurd/i386/libnsl.abilist: New file.
+ * sysdeps/mach/hurd/i386/libresolv.abilist: New file.
+ * sysdeps/mach/hurd/i386/librt.abilist: New file.
+ * sysdeps/mach/hurd/i386/libutil.abilist: New file.
+ * sysdeps/pthread/allocalim.h (__libc_use_alloca): Commute operands of
+ || to respect codestyle.
+ * libio/tst-memstream3.c (_FWRITE): Rename to FWRITE_FUNC.
+ (do_test_bz20181): Rename accordingly.
+ * malloc/malloc.c: Include <assert.h>.
+ (assert): Do not define.
+ [!defined NDEBUG] (__assert_fail): Define to __malloc_assert.
+ * bits/fcntl.h: Fix comment for FREAD and FWRITE.
+ * sysdeps/mach/hurd/bits/fcntl.h: Likewise.
+ * sysdeps/mach/hurd/hp-timing.h: New file.
+ * sysdeps/mach/hurd/i386/tlsdesc.sym: New file.
+
+2018-01-29 Darius Rad <darius@bluespec.com>
+
+ * sysdeps/unix/sysv/linux/riscv/ipc_priv.h: New file.
+
+2018-01-29 Palmer Dabbelt <palmer@sifive.com>
+
+ * sysdeps/init_array/crti.S (.section .init_array): Add
+ PREINIT_FUNCTION when defined.
+ * manual/math.texi: RISC-V supports _Float128 and _Float64x.
+ * config.h.in: Regenerate.
+ * manual/platform.texi: Add RISC-V documenation for
+ __riscv_flush_icache.
+ * sysdeps/riscv/__longjmp.S: New file.
+ * sysdeps/riscv/backtrace.c: Likewise.
+ * sysdeps/riscv/bits/endian.h: Likewise.
+ * sysdeps/riscv/bits/setjmp.h: Likewise.
+ * sysdeps/riscv/bits/wordsize.h: Likewise.
+ * sysdeps/riscv/bsd-_setjmp.c: Likewise.
+ * sysdeps/riscv/bsd-setjmp.c: Likewise.
+ * sysdeps/riscv/dl-trampoline.S: Likewise.
+ * sysdeps/riscv/gccframe.h: Likewise.
+ * sysdeps/riscv/jmpbuf-offsets.h: Likewise.
+ * sysdeps/riscv/jmpbuf-unwind.h: Likewise.
+ * sysdeps/riscv/machine-gmon.h: Likewise.
+ * sysdeps/riscv/memusage.h: Likewise.
+ * sysdeps/riscv/setjmp.S: Likewise.
+ * sysdeps/riscv/sys/asm.h: Likewise.
+ * sysdeps/riscv/tls-macros.h: Likewise.
+ * sysdeps/riscv/dl-tls.h: New file.
+ * sysdeps/riscv/libc-tls.c: Likewise.
+ * sysdeps/riscv/nptl/tcb-offsets.sym: Likewise.
+ * sysdeps/riscv/nptl/tls.h: Likewise.
+ * sysdeps/riscv/stackinfo.h: Likewise.
+ * sysdeps/riscv/bits/fenv.h: New file.
+ * sysdeps/riscv/e_sqrtl.c: Likewise.
+ * sysdeps/riscv/fpu_control.h: Likewise.
+ * sysdeps/riscv/math-tests.h: Likewise.
+ * sysdeps/riscv/nofpu/Implies: Likewise.
+ * sysdeps/riscv/sfp-machine.h: Likewise.
+ * sysdeps/riscv/tininess.h: Likewise.
+ * sysdeps/riscv/rv64/rvd/s_ceil.c: New file.
+ * sysdeps/riscv/rv64/rvd/s_floor.c: Likewise.
+ * sysdeps/riscv/rv64/rvd/s_llrint.c: Likewise.
+ * sysdeps/riscv/rv64/rvd/s_llround.c: Likewise.
+ * sysdeps/riscv/rv64/rvd/s_lrint.c: Likewise.
+ * sysdeps/riscv/rv64/rvd/s_lround.c: Likewise.
+ * sysdeps/riscv/rv64/rvd/s_nearbyint.c: Likewise.
+ * sysdeps/riscv/rv64/rvd/s_rint.c: Likewise.
+ * sysdeps/riscv/rv64/rvd/s_round.c: Likewise.
+ * sysdeps/riscv/rv64/rvd/s_roundeven.c: Likewise.
+ * sysdeps/riscv/rv64/rvd/s_trunc.c: Likewise.
+ * sysdeps/riscv/rv64/rvf/s_llrintf.c: Likewise.
+ * sysdeps/riscv/rv64/rvf/s_llroundf.c: Likewise.
+ * sysdeps/riscv/rv64/rvf/s_lrintf.c: Likewise.
+ * sysdeps/riscv/rv64/rvf/s_lroundf.c: Likewise.
+ * sysdeps/riscv/rvd/e_sqrt.c: Likewise.
+ * sysdeps/riscv/rvd/s_copysign.c: Likewise.
+ * sysdeps/riscv/rvd/s_finite.c: Likewise.
+ * sysdeps/riscv/rvd/s_fma.c: Likewise.
+ * sysdeps/riscv/rvd/s_fmax.c: Likewise.
+ * sysdeps/riscv/rvd/s_fmin.c: Likewise.
+ * sysdeps/riscv/rvd/s_fpclassify.c: Likewise.
+ * sysdeps/riscv/rvd/s_isinf.c: Likewise.
+ * sysdeps/riscv/rvd/s_isnan.c: Likewise.
+ * sysdeps/riscv/rvd/s_issignaling.c: Likewise.
+ * sysdeps/riscv/rvf/e_sqrtf.c: Likewise.
+ * sysdeps/riscv/rvf/fclrexcpt.c: Likewise.
+ * sysdeps/riscv/rvf/fegetenv.c: Likewise.
+ * sysdeps/riscv/rvf/fegetmode.c: Likewise.
+ * sysdeps/riscv/rvf/fegetround.c: Likewise.
+ * sysdeps/riscv/rvf/feholdexcpt.c: Likewise.
+ * sysdeps/riscv/rvf/fesetenv.c: Likewise.
+ * sysdeps/riscv/rvf/fesetexcept.c: Likewise.
+ * sysdeps/riscv/rvf/fesetmode.c: Likewise.
+ * sysdeps/riscv/rvf/fesetround.c: Likewise.
+ * sysdeps/riscv/rvf/feupdateenv.c: Likewise.
+ * sysdeps/riscv/rvf/fgetexcptflg.c: Likewise.
+ * sysdeps/riscv/rvf/fraiseexcpt.c: Likewise.
+ * sysdeps/riscv/rvf/fsetexcptflg.c: Likewise.
+ * sysdeps/riscv/rvf/ftestexcept.c: Likewise.
+ * sysdeps/riscv/rvf/get-rounding-mode.h: Likewise.
+ * sysdeps/riscv/rvf/math_private.h: Likewise.
+ * sysdeps/riscv/rvf/s_ceilf.c: Likewise.
+ * sysdeps/riscv/rvf/s_copysignf.c: Likewise.
+ * sysdeps/riscv/rvf/s_finitef.c: Likewise.
+ * sysdeps/riscv/rvf/s_floorf.c: Likewise.
+ * sysdeps/riscv/rvf/s_fmaf.c: Likewise.
+ * sysdeps/riscv/rvf/s_fmaxf.c: Likewise.
+ * sysdeps/riscv/rvf/s_fminf.c: Likewise.
+ * sysdeps/riscv/rvf/s_fpclassifyf.c: Likewise.
+ * sysdeps/riscv/rvf/s_isinff.c: Likewise.
+ * sysdeps/riscv/rvf/s_isnanf.c: Likewise.
+ * sysdeps/riscv/rvf/s_issignalingf.c: Likewise.
+ * sysdeps/riscv/rvf/s_nearbyintf.c: Likewise.
+ * sysdeps/riscv/rvf/s_rintf.c: Likewise.
+ * sysdeps/riscv/rvf/s_roundevenf.c: Likewise.
+ * sysdeps/riscv/rvf/s_roundf.c: Likewise.
+ * sysdeps/riscv/rvf/s_truncf.c: Likewise.
+ * sysdeps/riscv/nptl/bits/pthreadtypes-arch.h: New file.
+ * sysdeps/riscv/nptl/bits/semaphore.h: Likewise.
+ * sysdeps/riscv/nptl/libc-lowlevellock.c: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/atomic-machine.h: Likewise.
+ * sysdeps/riscv/nptl/nptl-sysdep.S: New file.
+ * sysdeps/unix/sysv/linux/riscv/arch-fork.h: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/clone.S: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/profil-counter.h: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/pt-vfork.S: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/syscall.c: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/sysdep.S: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/sysdep.h: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/vfork.S: Likewise.
+ * sysdeps/riscv/nptl/pthread-offsets.h: New file.
+ * sysdeps/riscv/nptl/pthreaddef.h: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/bits/fcntl.h: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/bits/mman.h: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/bits/sigcontext.h: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/dl-cache.h: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/flush-icache.c: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/getcontext.S: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/init-first.c: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/libc-vdso.h: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/makecontext.c: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/readelflib.c: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/register-dump.h: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/setcontext.S: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/sigcontextinfo.h: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/swapcontext.S: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/sys/cachectl.h: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/sys/procfs.h: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/sys/ucontext.h: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/sys/user.h: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/ucontext-macros.h: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/ucontext_i.sym: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/dl-static.c: New file.
+ * sysdeps/unix/sysv/linux/riscv/ldconfig.h: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/ldsodefs.h: Likewise.
+ * sysdeps/riscv/nofpu/libm-test-ulps: New file.
+ * sysdeps/riscv/nofpu/libm-test-ulps-name: Likewise.
+ * sysdeps/riscv/rv64/rvd/libm-test-ulps: Likewise.
+ * sysdeps/riscv/rv64/rvd/libm-test-ulps-name: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/localplt.data: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/rv64/c++-types.data: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/rv64/ld.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/rv64/libanl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/rv64/libnsl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/rv64/libutil.abilist: Likewise.
+ * sysdeps/riscv/Implies: New file.
+ * sysdeps/riscv/Makefile: Likewise.
+ * sysdeps/riscv/configure: Likewise.
+ * sysdeps/riscv/configure.ac: Likewise.
+ * sysdeps/riscv/nptl/Makefile: Likewise.
+ * sysdeps/riscv/preconfigure: Likewise.
+ * sysdeps/riscv/rv64/Implies-after: Likewise.
+ * sysdeps/riscv/rv64/rvd/Implies: Likewise.
+ * sysdeps/riscv/rv64/rvf/Implies: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/Implies: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/Makefile: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/Versions: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/configure: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/configure.ac: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/ldd-rewrite.sed: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/rv64/Implies: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/rv64/Makefile: Likewise.
+ * sysdeps/unix/sysv/linux/riscv/shlib-versions: Likewise.
+ * scripts/build-many-glibcs.py (Context): Add RISC-V targets.
+ (Config): Likewise.
+
+2018-01-29 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #22701]
+ * include/rpcsvc/nislib.h (__nis_default_ttl): Add
+ libnsl_hidden_proto.
+ * include/rpcsvc/yp.h (yp_xdrall): Declare with
+ libnsl_hidden_proto.
+ * include/rpcsvc/ypclnt.h (yp_maplist): Likewise.
+ * nis/Makefile (libnsl-routines): Add nss-default only for
+ build-obsolete-nsl.
+ * nis/nis_defaults.c (__nis_default_ttl): Add
+ libnsl_hidden_nolink_def.
+ * nis/rpcsvc/ypclnt.h (yp_maplist): Remove #ifdef'ed-out
+ declaration.
+ * nis/yp_xdr.c (xdr_ypall): Add libnsl_hidden_nolink_def.
+ * nis/ypclnt.c (yp_maplist): Likewise.
+
+2018-01-29 Romain Naour <romain.naour@gmail.com> (tiny change)
+
+ * sysdeps/unix/sysv/linux/microblaze/kernel-features.h
+ (__ASSUME_COPY_FILE_RANGE) [__LINUX_KERNEL_VERSION < 0x040A00]: Undef.
+
+2018-01-29 Joseph Myers <joseph@codesourcery.com>
+
+ * scripts/build-many-glibcs.py (Context.git_checkout): Use git
+ clean -dxfq for git updates when replacing sources.
+
+ * scripts/build-many-glibcs.py (Config.build_gcc): Use
+ --disable-libcilkrts unconditionally, not just for the final GCC
+ build for Hurd.
+
+ * scripts/build-many-glibcs.py (Context.checkout): Default Linux
+ version to 4.15.
+
+2018-01-29 Rafał Lużyński <digitalfreak@lingonborough.com>
+
+ [BZ #10871]
+ * localedata/locales/lt_LT (alt_mon): Import from CLDR (nominative
+ case).
+
+2018-01-29 Rafał Lużyński <digitalfreak@lingonborough.com>
+
+ [BZ #10871]
+ * localedata/locales/be_BY (mon): Rename to...
+ (alt_mon): This, then synchronize with CLDR (nominative case).
+ (abmon): Rename to...
+ (ab_alt_mon): This, then synchronize with CLDR (nominative case).
+ (mon): Import from CLDR (genitive case).
+ (abmon): Likewise.
+ * localedata/locales/be_BY@latin (mon): Rename to...
+ (alt_mon): This.
+ (mon): Add, proper genitive forms provided by Viktar Siarheichyk.
+
+ * localedata/locales/be_BY@latin (lang_name): Reworded to
+ "biełaruskaja mova".
+
+2018-01-29 Rafał Lużyński <digitalfreak@lingonborough.com>
+
+ [BZ #10871]
+ * localedata/locales/el_CY (mon): Renamed to...
+ (alt_mon): This.
+ (mon): Import from CLDR (genitive case).
+ * localedata/locales/el_GR: Likewise.
+
+2018-01-29 Rafał Lużyński <digitalfreak@lingonborough.com>
+
+ [BZ #10871]
+ * localedata/locales/ru_RU (mon): Rename to...
+ (alt_mon): This.
+ (abmon): Rename to...
+ (ab_alt_mon): This.
+ (mon): Import from CLDR (genitive case).
+ (abmon): Copy from the old content except the 5th month which is
+ now in the genitive case, even when abbreviated.
+ * localedata/locales/ru_UA: Likewise.
+ * time/tst-strptime.c (day_tests): Add an actual example of
+ a difference between %b and %Ob in Russian.
+
+2018-01-27 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * sysdeps/mach/hurd/xmknodat.c: Include <sys/sysmacros.h>.
+ * sysdeps/mach/hurd/profil.c: Reuse `a' variable instead of introducing
+ a `c' variable.
+ * resolv/res-close.c: Include <stdlib.h>.
+ * sysdeps/generic/not-cancel.h: Include <fcntl.h>, <unistd.h>,
+ <sys/wait.h>, <time.h>, <sys/uio.h>.
+ (NOT_CANCEL_H): Add inclusion guard.
+ * sysdeps/generic/sigset-cvt-mask.h: Include <sigsetops.h>.
+ * sysdeps/generic/sigsetops.h (__sigemptyset, __sigfillset,
+ __sigandset, __sigorset, __sigaddset, __sigdelset): Make them really
+ return 0.
+ * sysdeps/mach/hurd/dl-sysdep.c (_dl_sysdep_start): Cast
+ vm_address_t * to ElfW(Addr) * for dl_main parameter.
+ * sysdeps/pthread/posix-timer.h (timer_ptr2id): Cast to timer_t
+ instead of void *.
+ * sysdeps/pthread/timer_create.c (timer_create): Do not use
+ timer_ptr2id to cast struct timer_node * to void *.
+ * scripts/build-many-glibcs.py [os == gnu] (build_gcc): Pass
+ --disable-libcilkrts to gcc configure.
+ (checkout_vcs): Add mig and gnumach repository URLs, run autoreconf,
+ and make them the default for now.
+ * sysdeps/mach/hurd/Makefile [$(subdir)==nis]: Add
+ -DUSE_BINDINGDIR=1 to CFLAGS-ypclnt.c.
+ * mach/Machrules (MIGFLAGS): Do not set -DMACH_IPC_COMPAT=0.
+ * mach/mach/mach_traps.h: Drop comment about MACH_IPC_COMPAT.
+ * sysdeps/mach/hurd/fork.c (__fork): Drop special casing
+ MACH_IPC_COMPAT.
+ * sysdeps/mach/hurd/dl-sysdep.c (_exit): Call LOSE and abort() if
+ __task_terminate would ever return successfully.
+ * sysdeps/mach/hurd/profil.c (special_profil_failure): Move variable
+ to global scope.
+ * sysdeps/mach/pagecopy.h (PAGE_THRESHOLD): Rename to
+ PAGE_COPY_THRESHOLD and set to benchmarked 16384.
+ * sysdeps/mach/hurd/getresgid.c (__getresgid): Set result from
+ critical section to make code simpler and avoid warning.
+ * sysdeps/mach/hurd/getresuid.c (__getresuid): Set result from
+ critical section to make code simpler and avoid warning.
+ * sysdeps/mach/hurd/spawni.c (__spawni): Make relpath and abspath
+ const char * instead of char *.
+ * hurd/hurd/lookup.h (__hurd_file_name_lookup, hurd_file_name_lookup,
+ __hurd_file_name_split, hurd_file_name_split,
+ __hurd_directory_name_split, hurd_directory_name_split,
+ __hurd_file_name_lookup_retry, hurd_file_name_lookup_retry,
+ hurd_file_name_path_lookup): Make lookup function parameter take a
+ const char *name instead of char *name.
+ * hurd/hurdlookup.c (__hurd_file_name_lookup, __hurd_file_name_split,
+ __hurd_directory_name_split): Likewise.
+ * hurd/lookup-retry.c (__hurd_file_name_lookup_retry): Likewise.
+ * hurd/path-lookup.c (hurd_file_name_path_lookup): Likewise.
+ * sysdeps/mach/hurd/check_native.c: New file.
+ * sysdeps/mach/hurd/check_pf.c: New file.
+ * nscd/gai.c (__getifaddrs): Define macro to getifaddrs.
+ (__freeifaddrs): Define macro to freeifaddrs.
+ * sysdeps/mach/hurd/libhurduser.abilist: New file.
+ * sysdeps/mach/libmachuser.abilist: New file.
+ * libio/tst-memstream3.c (FWRITE): Rename to _FWRITE.
+ (do_test_bz20181): Rename accordingly.
+ * libio/tst-wmemstream3.c (FWRITE): Rename accordingly.
+ * io/tst-copy_file_range.c [!defined CLONE_NEWNS]: Do not include
+ <sys/mount.h>.
+ * hurd/hurd.h (__hurd_fail): Always declare function, and provide inline
+ version only if __USE_EXTERN_INLINES is defined.
+ * hurd/hurd/fd.h (_hurd_fd_error_signal, _hurd_fd_error, __hurd_dfail,
+ __hurd_sockfail): Likewise.
+ (_hurd_fd_get): Always declare functions, and provide inline versions
+ only if __USE_EXTERN_INLINES and _LIBC are defined and IS_IN(libc).
+ * hurd/hurd/port.h (_hurd_port_init, _hurd_port_locked_get,
+ _hurd_port_get, _hurd_port_free, _hurd_port_locked_set,
+ _hurd_port_set): Always declare functions, and provide inline versions
+ only if __USE_EXTERN_INLINES and _LIBC are defined and
+ IS_IN(libc).
+ * hurd/hurd/signal.h (_hurd_self_sigstate, _hurd_critical_section_lock,
+ _hurd_critical_section_unlock): Likewise.
+ * hurd/hurd/threadvar.h (__hurd_threadvar_location_from_sp,
+ * __hurd_threadvar_location): Likewise.
+ * hurd/hurd/userlink.h (_hurd_userlink_link, _hurd_userlink_unlink,
+ _hurd_userlink_clear): Likewise.
+ * mach/lock-intern.h (__spin_lock_init, __spin_lock, __mutex_lock,
+ __mutex_unlock, __mutex_trylock): Always declare functions, and provide
+ inline versions only if __USE_EXTERN_INLINES and _LIBC are defined.
+ * mach/mach/mig_support.h (__mig_strncpy): Likewise.
+ * sysdeps/generic/machine-lock.h (__spin_unlock, __spin_try_lock,
+ __spin_lock_locked): Likewise.
+ * sysdeps/mach/i386/machine-lock.h (__spin_unlock, __spin_try_lock,
+ __spin_lock_locked): Likewise.
+ * mach/spin-lock.c (__USE_EXTERN_INLINES): Define to 1.
+ * hurd/Versions (libc: GLIBC_2.27): Add _hurd_fd_error_signal,
+ _hurd_fd_error, __hurd_dfail, __hurd_sockfail, _hurd_port_locked_set,
+ __hurd_threadvar_location_from_sp, __hurd_threadvar_location,
+ _hurd_userlink_link, _hurd_userlink_unlink, _hurd_userlink_clear.
+ * sysdeps/mach/hurd/bits/posix_opt.h (_POSIX_CHOWN_RESTRICTED,
+ _POSIX_NO_TRUNC): Define to 0.
+ * sysdeps/pthread/allocalim.h [!defined PTHREAD_STACK_MIN]: Do not
+ check size against PTHREAD_STACK_MIN.
+ * hurd/hurd/signal.h [__USE_EXTERN_INLINES][_LIBC][IS_IN(libc) ||
+ IS_IN(libpthread)]: Include <sigsetops.h>.
+ * mach/Makefile (user-interfaces): Add mach/gnumach.
+ * sysdeps/mach/configure.ac (mach_interface_list): Add gnumach.
+ * sysdeps/mach/configure (mach_interface_list): Regenerate.
+ * sysdeps/mach/hurd/bits/posix_opt.h (_POSIX_VDISABLE): Set to '\0'
+ instead of invalid -1.
+ * sysdeps/mach/hurd/net/ethernet.h: Include <stdint.h>.
+ * sysdeps/mach/hurd/net/if_arp.h: Include <stdint.h>.
+ * sysdeps/mach/hurd/net/if_ppp.h: Do not include non-existing
+ <net/ppp_defs.h>.
+
+2018-01-27 Thomas Schwinge <tschwinge@gnu.org>
+
+ * hurd/fcntl-internal.h: New file.
+
+2018-01-27 James Clarke <jrtc27@jrtc27.com>
+
+ * sysdeps/hppa/fpu/libm-test-ulps: Update.
+
+ * sysdeps/alpha/fpu/libm-test-ulps: Update.
+
+2018-01-26 Andreas Schwab <schwab@linux-m68k.org>
+
+ [BZ #22701]
+ * nis/Makefile (libnsl-inhibit-o) [$(build-obsolete-nsl) != yes]:
+ Build only shared objects.
+
+2018-01-26 Carlos O'Donell <carlos@redhat.com>
+
+ * README: Update for hppa.
+
+2018-01-26 Patrick McGehearty <patrick.mcgehearty@oracle.com>
+
+ * sysdeps/sparc/fpu/libm-test-ulps: Update
+ cpow, ctan, ctanh, j0, j1, y0, yn ulps.
+
+2018-01-26 Carlos O'Donell <carlos@redhat.com>
+
+ Revert:
+
+ 2017-12-19 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #22563]
+ * sysdeps/i386/nptl/tcb-offsets.sym (FEATURE_1_OFFSET): New.
+ * sysdeps/i386/nptl/tls.h (tcbhead_t): Add feature_1.
+ * sysdeps/x86_64/nptl/tcb-offsets.sym (FEATURE_1_OFFSET): New.
+ * sysdeps/x86_64/nptl/tls.h (tcbhead_t): Rename __glibc_unused1
+ to feature_1.
+
+ 2017-12-19 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #22563]
+ * bits/types/__cancel_jmp_buf_tag.h: New file.
+ * sysdeps/unix/sysv/linux/x86/bits/types/__cancel_jmp_buf_tag.h
+ * sysdeps/unix/sysv/linux/x86/pthreaddef.h: Likewise.
+ * sysdeps/unix/sysv/linux/x86/nptl/pthreadP.h: Likewise.
+ * nptl/Makefile (headers): Add
+ bits/types/__cancel_jmp_buf_tag.h.
+ * nptl/descr.h [NEED_SAVED_MASK_IN_CANCEL_JMP_BUF]
+ (pthread_unwind_buf): Add saved_mask to cancel_jmp_buf.
+ * sysdeps/nptl/pthread.h: Include
+ <bits/types/__cancel_jmp_buf_tag.h>.
+ (__pthread_unwind_buf_t): Use struct __cancel_jmp_buf_tag with
+ __cancel_jmp_buf.
+ * sysdeps/unix/sysv/linux/hppa/pthread.h: Likewise.
+
+2018-01-25 Rafał Lużyński <digitalfreak@lingonborough.com>
+
+ [BZ #10871]
+ * localedata/locales/uk_UA (mon): Renamed to...
+ (alt_mon): This.
+ (alt_digits): "0" removed and then renamed to...
+ (mon): This.
+ (date_fmt): Definition changed not to use the alternative
+ digits hack.
+
+2018-01-25 Palmer Dabbelt <palmer@sifive.com>
+
+ * elf/cache.c (print_entry): Add FLAG_RISCV_FLOAT_ABI_SOFT and
+ FLAG_RISCV_FLOAT_ABI_DOUBLE.
+ * elf/elf.h (EF_RISCV_RVC): New define.
+ (EF_RISCV_FLOAT_ABI): Likewise.
+ (EF_RISCV_FLOAT_ABI_SOFT): Likewise.
+ (EF_RISCV_FLOAT_ABI_SINGLE): Likewise.
+ (EF_RISCV_FLOAT_ABI_DOUBLE): Likewise.
+ (EF_RISCV_FLOAT_ABI_QUAD): Likewise.
+ * sysdeps/generic/ldconfig.h (FLAG_RISCV_FLOAT_ABI_SOFT): New
+ define.
+ (FLAG_RISCV_FLOAT_ABI_DOUBLE): Likewise.
+
+2018-01-25 Andreas Schwab <schwab@suse.de>
+
+ * aclocal.m4 (LIBC_SLIBDIR_RTLDDIR): Consistently put arguments in
+ single quotes.
+ * sysdeps/gnu/configure: Regenerate.
+ * sysdeps/unix/sysv/linux/aarch64/configure: Regenerate.
+ * sysdeps/unix/sysv/linux/mips/configure: Regenerate.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/configure: Regenerate.
+ * sysdeps/unix/sysv/linux/s390/s390-64/configure: Regenerate.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/configure: Regenerate.
+ * sysdeps/unix/sysv/linux/tile/configure: Regenerate.
+ * sysdeps/unix/sysv/linux/x86_64/64/configure: Regenerate.
+ * sysdeps/unix/sysv/linux/x86_64/x32/configure: Regenerate.
+
+2018-01-25 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * scripts/build-many-glibcs.py (checkout_vcs): Add hurd repository
+ URL, and run autoconf, make it the default for now.
+
+2018-01-24 Joseph Myers <joseph@codesourcery.com>
+
+ * scripts/build-many-glibcs.py (Context.add_all_configs): Add
+ soft-float ColdFire configuration.
+
+ * sysdeps/unix/sysv/linux/m68k/localplt.data: Move to ....
+ * sysdeps/unix/sysv/linux/m68k/m680x0/localplt.data: ... here.
+ * sysdeps/unix/sysv/linux/m68k/coldfire/localplt.data: New file.
+
+ * sysdeps/m68k/coldfire/nofpu/math_private.h: New file. Based on
+ MicroBlaze file.
+
+ * sysdeps/unix/sysv/linux/m68k/coldfire/jmp_buf-macros.h: Move to
+ ....
+ * sysdeps/unix/sysv/linux/m68k/coldfire/fpu/jmp_buf-macros.h:
+ ... here.
+ * sysdeps/unix/sysv/linux/m68k/coldfire/nofpu/jmp_buf-macros.h:
+ New file.
+
+ * sysdeps/unix/sysv/linux/m68k/jmp_buf-macros.h: Move to ....
+ * sysdeps/unix/sysv/linux/m68k/m680x0/jmp_buf-macros.h: ... here.
+ * sysdeps/unix/sysv/linux/m68k/coldfire/jmp_buf-macros.h: New
+ file.
+
+2018-01-24 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ [BZ #22742]
+ * sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h (__glibc_reserved1):
+ Rename to __reserved and add comment.
+ * sysdeps/unix/sysv/linux/aarch64/ucontext_i.sym (__glibc_reserved1):
+ Rename to __reserved.
+
+2018-01-24 Joseph Myers <joseph@codesourcery.com>
+
+ * scripts/build-many-glibcs.py (Context.add_all_configs): Add
+ i686-gnu configurations.
+ (Context.run_builds): Include mig, gnumach and hurd in components
+ considered.
+ (Context.checkout): Add mig, gnumach and hurd to components.
+ (Context.checkout_tar): Add URL mappings for mig, gnumach and
+ hurd.
+ (Context.bot_cycle): Check for changes to mig, gnumach and hurd.
+ (Config.build): Install gnumach headers, build mig and install
+ hurd headers for 'gnu' OS.
+ (Config.install_gnumach_headers): New function.
+ (Config.install_hurd_headers): Likewise.
+ (Glibc.build_glibc): Do not use /usr for 'gnu' OS. Specifiy MIG
+ when building for 'gnu' OS.
+
+2018-01-23 Tobias Klauser <tklauser@distanz.ch>
+
+ * manual/tunables.texi (Hardware Capability Tunables): Fix
+ spelling.
+
+2018-01-22 Rical Jasan <ricaljasan@pacific.net>
+
+ * manual/locale.texi (ALTMON_1, ALTMON_2, ALTMON_3, ALTMON_4)
+ (ALTMON_5, ALTMON_6, ALTMON_7, ALTMON_8, ALTMON_9, ALTMON_10)
+ (ALTMON_11, ALTMON_12): Improve documentation.
+ * manual/time.texi (strftime): Likewise.
+
+2018-01-22 Rafał Lużyński <digitalfreak@lingonborough.com>
+
+ [BZ #10871]
+ * localedata/locales/pl_PL: Alternative month names added,
+ primary month names are genitive now.
+ * time/tst-strptime.c (day_tests): Actually use a genitive case
+ of a month name in Polish language.
+
+2018-01-22 Rafał Lużyński <digitalfreak@lingonborough.com>
+
+ [BZ #10871]
+ * manual/locale.texi: Document ALTMON_1..12 constants for
+ nl_langinfo. Specify when to use ALTMON instead of MON.
+ * manual/time.texi (strftime, strptime): Document GNU extension
+ permitting O modifier with %B and %b. Specify when to use
+ %OB instead of %B.
+
+2018-01-22 Rafał Lużyński <digitalfreak@lingonborough.com>
+
+ [BZ #10871]
+ * locale/C-time.c (_nl_C_LC_TIME): Add abbreviated alternative month
+ names, define them as the same as abbreviated month names explicitly.
+ * locale/categories.def (LC_TIME): Add ab_alt_mon and wide-ab_alt_mon.
+ * locale/langinfo.h: (_NL_ABALTMON_1, _NL_ABALTMON_2, _NL_ABALTMON_3,
+ _NL_ABALTMON_4, _NL_ABALTMON_5, _NL_ABALTMON_6, _NL_ABALTMON_7,
+ _NL_ABALTMON_8, _NL_ABALTMON_9, _NL_ABALTMON_10, _NL_ABALTMON_11,
+ _NL_ABALTMON_12, _NL_WABALTMON_1, _NL_WABALTMON_2, _NL_WABALTMON_3,
+ _NL_WABALTMON_4, _NL_WABALTMON_5, _NL_WABALTMON_6, _NL_WABALTMON_7,
+ _NL_WABALTMON_8, _NL_WABALTMON_9, _NL_WABALTMON_10, _NL_WABALTMON_11,
+ _NL_WABALTMON_12): New enum constants.
+ * locale/programs/ld-time.c (struct locale_time_t): Add ab_alt_mon,
+ wab_alt_mon, and ab_alt_mon_defined members.
+ (time_output): Output ab_alt_mon and wab_alt_mon members.
+ (time_read): Read them, initialize them as copies of abmon and wabmon
+ respectively if they are missing, initialize ab_alt_mon_defined.
+ * locale/programs/locfile-kw.gperf (ab_alt_mon): Define.
+ * locale/programs/locfile-kw.h: Regenerate.
+ * locale/programs/locfile-token.h (tok_ab_alt_mon): New enum constant.
+ * time/Makefile [$(run-built-tests) = yes] (LOCALES): Add es_ES.UTF-8
+ and ru_RU.UTF-8.
+ * time/strftime_l.c (a_altmonth, aam_len): New macros.
+ [!COMPILE_WIDE] (ABALTMON_1): New macro.
+ (__strftime_internal): Handle %Ob and %Oh formats.
+ * time/strptime_l.c [_LIBC] (ab_alt_month_name): New macro.
+ (__strptime_internal): Handle %Ob and %Oh formats.
+ * 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 Rafał Lużyński <digitalfreak@lingonborough.com>
+
+ [BZ #10871]
+ * locale/C-time.c (_nl_C_LC_TIME): Add alternative month names,
+ define them as the same as primary full month names explicitly.
+ * locale/categories.def (LC_TIME): Add alt_mon and wide-alt_mon.
+ * locale/langinfo.h (__ALTMON_1, __ALTMON_2, __ALTMON_3, __ALTMON_4,
+ __ALTMON_5, __ALTMON_6, __ALTMON_7, __ALTMON_8, __ALTMON_9, __ALTMON_10,
+ __ALTMON_11, __ALTMON_12, _NL_WALTMON_1, _NL_WALTMON_2, _NL_WALTMON_3,
+ _NL_WALTMON_4, _NL_WALTMON_5, _NL_WALTMON_6, _NL_WALTMON_7,
+ _NL_WALTMON_8, _NL_WALTMON_9, _NL_WALTMON_10, _NL_WALTMON_11,
+ _NL_WALTMON_12): New enum constants.
+ [__USE_GNU] (ALTMON_1, ALTMON_2, ALTMON_3, ALTMON_4, ALTMON_5, ALTMON_6,
+ ALTMON_7, ALTMON_8, ALTMON_9, ALTMON_10, ALTMON_11, ALTMON_12): New
+ macros.
+ * locale/programs/ld-time.c (struct locale_time_t): Add alt_mon,
+ walt_mon, and alt_mon_defined members.
+ (time_output): Output alt_mon and walt_mon members.
+ (time_read): Read them, initialize them as copies of mon and wmon
+ respectively if they are missing, initialize alt_mon_defined.
+ * locale/programs/locfile-kw.gperf (alt_mon): Define.
+ * locale/programs/locfile-kw.h: Regenerate.
+ * locale/programs/locfile-token.h (tok_alt_mon): New enum constant.
+ * localedata/tst-langinfo.c (map): Add tests for the new constants
+ ALTMON_1 .. ALTMON_12.
+ * time/Makefile [$(run-built-tests) = yes] (LOCALES): Add fr_FR.UTF-8
+ and pl_PL.UTF-8.
+ * time/strftime_l.c (f_altmonth): New macro.
+ (__strftime_internal): Handle %OB format.
+ * time/strptime_l.c [_LIBC] (alt_month_name): New macro.
+ (__strptime_internal): Handle %OB format.
+ * time/tst-strptime.c (day_tests): Add tests to parse different forms
+ of month names including the new %OB format specifier.
+
+2018-01-19 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
+
+ [BZ #22685]
+ * sysdeps/powerpc/powerpc32/sysdep.h (ABORT_TRANSACTION_IMPL): Renamed
+ from ABORT_TRANSACTION.
+ (ABORT_TRANSACTION): Redirect to ABORT_TRANSACTION_IMPL.
+ * sysdeps/powerpc/powerpc64/sysdep.h (ABORT_TRANSACTION,
+ ABORT_TRANSACTION_IMPL): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/not-errno.h: New file. Reuse
+ Linux code, but remove the code that aborts transactions.
+
+2018-01-19 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * sysdeps/generic/netinet/if_ether.h: Include <stdint.h>.
+
+2018-01-19 Rafał Lużyński <digitalfreak@lingonborough.com>
+
+ * localedata/locales/gu_IN (LC_IDENTIFICATION): Fix an obvious typo
+ in date: "2004-14-09" should be "2004-09-14".
+ * localedata/locales/lo_LA: Fix an obvious typo in date in the header:
+ "2003-15-09" should be "2003-09-15".
+
+2018-01-18 Arjun Shankar <arjun@redhat.com>
+
+ [BZ #22343]
+ [BZ #22774]
+ CVE-2018-6485
+ CVE-2018-6551
+ * malloc/malloc.c (checked_request2size): call REQUEST_OUT_OF_RANGE
+ after padding.
+ (_int_memalign): check for integer overflow before calling
+ _int_malloc.
+ * malloc/tst-malloc-too-large.c: New test.
+ * malloc/Makefile: Add tst-malloc-too-large.
+
+2018-01-18 Rafał Lużyński <digitalfreak@lingonborough.com>
+
+ * localedata/locales/bho_NP (LC_IDENTIFICATION): Fix an obvious typo
+ in date: "2017-24-07" should be "2017-07-24".
+ * localedata/locales/mai_IN: Likewise.
+ * localedata/locales/mai_NP: Likewise.
+
+2018-01-17 Dmitry V. Levin <ldv@altlinux.org>
+
+ * po/ru.po: Update translations.
+
+2018-01-17 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #22719]
+ * sysdeps/hppa/backtrace.c: New file.
+
+2018-01-17 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #22715]
+ * sysdeps/x86_64/dl-trampoline.h (_dl_runtime_profile): Properly
+ align La_x86_64_retval to VEC_SIZE.
+
+2018-01-16 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/x86_64/backtrace.c: Include <gnu/lib-names.h>.
+ (init): Use LIBGCC_S_SO not hardcoded "libgcc_s.so.1".
+
+2018-01-16 Florian Weimer <fweimer@redhat.com>
+
+ * nptl/Makefile [$(have-cxx-thread_local)] (tests-unsupported):
+ Move tst-thread-exit-clobber ...
+ [$(CXX)] (tests-unsupported): ... to here.
+
+2018-01-16 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * sysdeps/unix/sysv/linux/aarch64/bits/hwcap.h (HWCAP_SHA3): Define.
+ (HWCAP_SM3, HWCAP_SM4, HWCAP_ASIMDDP, HWCAP_SHA512, HWCAP_SVE): Define.
+ * sysdeps/unix/sysv/linux/aarch64/dl-procinfo.c
+ (_dl_aarch64_cap_flags): Update.
+ (_DL_HWCAP_COUNT): Update.
+
+2018-01-16 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * sysdeps/unix/sysv/linux/aarch64/dl-procinfo.h
+ (_DL_HWCAP_LAST): Remove.
+ (_DL_HWCAP_COUNT): Move to ...
+ * sysdeps/unix/sysv/linux/aarch64/dl-procinfo.c
+ (_DL_HWCAP_COUNT): ... here.
+
+2018-01-16 Florian Weimer <fweimer@redhat.com>
+
+ * nptl/Makefile (CFLAGS-tst-minstack-throw.o): Compile in C++11
+ mode with GNU extensions.
+
+2018-01-15 Alan Hayward <alan.hayward@arm.com>
+
+ * elf/elf.h (NT_ARM_SVE): Define.
+
+2018-01-15 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #22636]
+ * nptl/tst-minstack-throw.cc: New file.
+ * nptl/Makefile (tests): Add tst-minstack-throw.
+ (LDLIBS-tst-minstack-throw): Link with libstdc++.
+ [!CXX] (tests-unsupported): Add tst-minstack-throw.
+
+2018-01-15 Joseph Myers <joseph@codesourcery.com>
+
+ * scripts/build-many-glibcs.py (Context.checkout): Default
+ binutils version to 2.30 branch, MPFR version to 4.0.0 and MPC
+ version to 1.1.0.
+
+2018-01-13 Carlos O'Donell <carlos@redhat.com>
+
+ [BZ #22707]
+ * elf/elf.h (DF_1_STUB): Define.
+ (DF_1_PIE): Define.
+
+2018-01-12 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
+
+ [BZ #22697]
+ * sysdeps/powerpc/powerpc32/power4/fpu/s_llround.S (__llround):
+ Do not add 0.5 to integer or out-of-range arguments.
+
+2018-01-12 Dmitry V. Levin <ldv@altlinux.org>
+
+ * po/bg.po: Update translations.
+ * po/cs.po: Likewise.
+ * po/de.po: Likewise.
+ * po/ko.po: Likewise.
+ * po/pl.po: Likewise.
+ * po/sv.po: Likewise.
+ * po/uk.po: Likewise.
+ * po/vi.po: Likewise.
+
+2018-01-12 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * aarch64/start.S (_start): Use __wrap_main.
+ (__wrap_main): New local symbol.
+
+2018-01-12 Dmitry V. Levin <ldv@altlinux.org>
+
+ [BZ #22679]
+ CVE-2018-1000001
+ * sysdeps/unix/sysv/linux/getcwd.c (__getcwd): Fall back to
+ generic_getcwd if the path returned by getcwd syscall is not absolute.
+ * io/tst-getcwd-abspath.c: New test.
+ * io/Makefile (tests): Add tst-getcwd-abspath.
+
+2018-01-12 Istvan Kurucsai <pistukem@gmail.com>
+
+ * malloc/malloc.c (malloc_consolidate): Add size check.
+
+2018-01-12 Florian Weimer <fweimer@redhat.com>
+
+ * support/write_message.c (write_message): Preserve errno.
+ * support/check.c (print_failure): Likewise.
+ * support/support_test_verify_impl.c (support_test_verify_impl):
+ Likewise.
+ * support/support_test_compare_failure.c
+ (support_test_compare_failure): Likewise.
+
+2018-01-12 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #22701]
+ * nis/Makefile (install-lib-ldscripts, $(inst_libdir)/libnsl.so):
+ Prevent installation of libnsl.so.
+ (libnsl-inhibit-o): Do not build (or install) static libraries.
+
+2018-01-12 Egmont Koblinger <egmont@gmail.com>
+
+ [BZ #22657]
+ * localedata/locales/hu_HU (d_t_fmt): Avoid a leading space
+ before the day number which may produce a double space.
+ (date_fmt): Likewise.
+
+2018-01-12 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/s390/fpu/feholdexcpt.c (__feholdexcept): Call __fegetenv
+ instead of fegetenv.
+
+2018-01-11 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #22702]
+ * sysdeps/generic/math_private.h (libc_feresetround_noex): Update
+ comment to say exceptions are discarded.
+ (libc_feholdsetround_noex_ctx): Use __feholdexcept instead of
+ __fegetenv.
+ (SET_RESTORE_ROUND_NOEX): Update comment to say non-stop mode must
+ be enabled.
+
+2018-01-11 Florian Weimer <fweimer@redhat.com>
+
+ * sysdeps/gnu/unwind-resume.c (__libgcc_s_init): Update comment
+ and error message.
+
+2018-01-11 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #22636]
+ * nptl/Makefile (tests): Add tst-minstack-cancel, tst-minstack-exit.
+ * nptl/tst-minstack-cancel.c, nptl/tst-minstack-exit.c: New files.
+
+2018-01-10 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #22693]
+ * sysdeps/ieee754/ldbl-128ibm/s_log1pl.c (__log1pl): Handle
+ negative arguments in test for NaN or infinity argument.
+
+2018-01-10 Dmitry V. Levin <ldv@altlinux.org>
+
+ * po/libc.pot: Regenerate.
+
+2018-01-10 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #22636]
+ * sysdeps/nptl/unwind-forcedunwind.c (pthread_cancel_init): Open
+ libgcc.so with RTLD_NOW, to avoid lazy binding during unwind.
+
+2018-01-10 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * hurd/hurd/fd.h: Include <fcntl.h>
+ (__hurd_at_flags): New function.
+ * hurd/lookup-at.c (__file_name_lookup_at): Replace flag computation
+ with call to __hurd_at_flags.
+ * include/unistd.h (__faccessat, __faccessat_noerrno): Add declaration.
+ * sysdeps/mach/hurd/access.c (access_common): Move implementation to
+ __faccessat
+ (hurd_fail_seterrno, hurd_fail_noerrno): Move to sysdeps/mach/hurd/faccessat.c.
+ (__access_noerrno): Use __faccessat_common instead of access_common.
+ (__access): Likewise.
+ * sysdeps/mach/hurd/euidaccess.c (__euidaccess): Replace implementation
+ with a call to __faccessat.
+ * sysdeps/mach/hurd/faccessat.c (faccessat): Rename into...
+ (__faccessat_common): ... this. Move implementation of __access into it when
+ AT_FLAGS does not contain AT_EACCESS. Make it call __hurd_at_flags, add
+ reauthenticate_cwdir_at helper to implement AT mechanism.
+ (__faccessat_noerrno): New function, just calls __faccessat_common.
+ (__faccessat): New function, just calls __faccessat_common.
+ (faccessat): Define weak alias.
+
+2018-01-10 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #22691]
+ * sysdeps/powerpc/nofpu/Makefile [$(subdir) = math]
+ (CFLAGS-s_fmaxmagl.c): New variable.
+ [$(subdir) = math] (CFLAGS-s_fminmagl.c: Likewise.
+
+ [BZ #22690]
+ * sysdeps/ieee754/ldbl-128ibm/s_lrintl.c (__lrintl): Use unsigned
+ long int for arguments of possibly overflowing addition or
+ subtraction.
+ * sysdeps/ieee754/ldbl-128ibm/s_lroundl.c (__lroundl): Likewise.
+
+2018-01-09 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #22688]
+ * sysdeps/powerpc/nofpu/Makefile [$(subdir) = math]
+ (CFLAGS-e_remainderl.c): New variable.
+
+ [BZ #22687]
+ * sysdeps/powerpc/nofpu/Makefile (CFLAGS-s_cacosl.c): New
+ variable.
+ (CFLAGS-s_cacoshl.c): Likewise.
+ (CFLAGS-s_casinhl.c): Likewise.
+ (CFLAGS-s_catanl.c): Likewise.
+ (CFLAGS-s_catanhl.c): Likewise.
+ (CFLAGS-s_cexpl.c): Likewise.
+ (CFLAGS-s_ccoshl.c): Add -fsignaling-nans.
+ (CFLAGS-s_csinhl.c): Likewise.
+ (CFLAGS-s_clogl.c): Likewise.
+ (CFLAGS-s_clog10l.c): Likewise.
+ (CFLAGS-s_csinl.c): Likewise.
+ (CFLAGS-s_csqrtl.c): Likewise.
+
+2017-01-09 Emilio Pozuelo Monfort <pochu27@gmail.com>
+2017-01-09 Svante Signell <svante.signell@gmail.com>
+
+ * hurd/hurdexec.c (_hurd_exec): Deprecate function.
+ (_hurd_exec_paths): New function.
+ * hurd/hurd.h (_hurd_exec): Deprecate function.
+ (_hurd_exec_paths): Declare function.
+ * hurd/Versions: Export _hurd_exec_paths.
+ * sysdeps/mach/hurd/execve.c: Include <stdlib.h> and <stdio.h>
+ (__execve): Use __getcwd to build absolute path, and use
+ _hurd_exec_paths instead of _hurd_exec.
+ * sysdeps/mach/hurd/spawni.c: Likewise.
+ * sysdeps/mach/hurd/fexecve.c: Use _hurd_exec_paths instead of
+ _hurd_exec.
+
+2018-01-08 Dmitry V. Levin <ldv@altlinux.org>
+
+ * sysdeps/unix/sysv/linux/tst-ttyname.c (do_in_chroot_1): Skip the
+ test instead of failing in case of ENOENT returned by posix_openpt.
+
+2018-01-08 Florian Weimer <fweimer@redhat.com>
+
+ resolv: Support binary labels in test framework.
+ * support/resolv_test.c (struct to_be_freed): Remove.
+ (struct compressed_name): New.
+ (allocate_compressed_name, ascii_tolower)
+ (compare_compressed_name): New functions.
+ (struct resolv_response_builder): Update type of
+ compression_offsets for use with tsearch. Rempve to_be_freed.
+ (response_push_pointer_to_free): Remove function.
+ (resolv_response_add_name): Rewrite using struct compressed_name
+ and tsearch instead of hsearch_r.
+ (response_builder_allocate): Remove initialization of
+ compression_offsets.
+ (response_builder_free): Update for removal of to_be_freed. Use
+ tdestroy instead of hdestroy_r.
+ * resolv/Makefile (tests): Add tst-resolv-binary.
+ (tst-resolv-binary): Link with -lresolv -lpthread.
+
+2018-01-08 Florian Weimer <fweimer@redhat.com>
+
+ * support/check.h (TEST_COMPARE): Allow sign mismatch at compile
+ time. Pass positive flag instead of negative flag to
+ support_test_compare_failure.
+ (support_test_compare_failure): Change negative parameter to
+ positive.
+ * support/support_test_compare_failure.c (report)
+ (support_test_compare_failure): Likewise.
+ * support/tst-test_compare.c (return_ssize_t, return_int): New.
+ (do_test): Check int/size_t, ssize_t/size_t comparisons.
+
+2018-01-08 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ [BZ #22637]
+ * nptl/descr.h (stackblock, stackblock_size): Update comments.
+ * nptl/allocatestack.c (allocate_stack): Add guardsize to stacksize.
+ * nptl/nptl-init.c (__pthread_get_minstack): Remove guardsize from
+ stacksize.
+ * nptl/pthread_getattr_np.c (pthread_getattr_np): Likewise.
+
+2018-01-08 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86_64/fpu/multiarch/Makefile (libm-sysdep_routines):
+ Add s_sincosf-sse2 and s_sincosf-fma.
+ (CFLAGS-s_sincosf-fma.c): New.
+ * sysdeps/x86_64/fpu/multiarch/s_sincosf-fma.c: New file.
+ * sysdeps/x86_64/fpu/multiarch/s_sincosf-sse2.S: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/s_sincosf.c: Likewise.
+ * sysdeps/x86_64/fpu/s_sincosf.S: Don't add alias if
+ __sincosf is defined.
+
+2018-01-08 Florian Weimer <fweimer@redhat.com>
+
+ * nptl/tst-thread-exit-clobber.cc: New file.
+ * nptl/Makefile (CFLAGS-tst-thread-exit-clobber.o): Compile in
+ C++11 mode.
+ (LDLIBS-tst-thread-exit-clobber): Link with libstdc++.
+ (tests): Add tst-thread-exit-clobber.
+ [!CXX] (tests-unsupported): Add tst-thread-exit-clobber.
+
+2018-01-08 Florian Weimer <fweimer@redhat.com>
+
+ * support/check.h (support_static_assert): Define.
+ (TEST_COMPARE): Use it.
+
+2018-01-07 Aurelien Jarno <aurelien@aurel32.net>
+
+ * sysdeps/unix/sysv/linux/getrlimit64 (getrlimit64)
+ [!__RLIM_T_MATCHES_RLIM64_T]
+ [!SHLIB_COMPAT (libc, GLIBC_2_1, GLIBC_2_2)]: Define as weak alias of
+ __getrlimit64. Add libc_hidden_weak.
+
+2018-01-06 Palmer Dabbelt <palmer@sifive.com>
+
+ * elf/elf.h (R_RISCV_NONE): New define.
+ (R_RISCV_32): Likewise.
+ (R_RISCV_64): Likewise.
+ (R_RISCV_RELATIVE): Likewise.
+ (R_RISCV_COPY): Likewise.
+ (R_RISCV_JUMP_SLOT): Likewise.
+ (R_RISCV_TLS_DTPMOD32): Likewise.
+ (R_RISCV_TLS_DTPMOD64): Likewise.
+ (R_RISCV_TLS_DTPREL32): Likewise.
+ (R_RISCV_TLS_DTPREL64): Likewise.
+ (R_RISCV_TLS_TPREL32): Likewise.
+ (R_RISCV_TLS_TPREL64): Likewise.
+ * Makerules (make-link-multidir): Make directories before linking into
+ them.
+ * sysdeps/unix/sysv/linux/dl-vdso.h (VDSO_NAME_LINUX_4_15): New
+ define.
+ (VDSO_HASH_LINUX_4_15): Likewise.
+ * scripts/build-many-glibcs.py (class Glibc): Strip shared objects
+ in subdirectories of lib.
+ * nptl/Makefile (/librt.so): Always depend on
+ "$(shared-thread-library)".
+
+2018-01-06 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * sysdeps/mach/hurd/i386/jmp_buf-macros.h: New file.
+ * sysdeps/i386/dl-tlsdesc.S (_dl_tlsdesc_dynamic) [NO_RTLD_HIDDEN]: Call
+ JUMPTARGET (___tls_get_addr) instead of HIDDEN_JUMPTARGET
+ (___tls_get_addr).
+ * sysdeps/x86_64/dl-tlsdesc.S (_dl_tlsdesc_dynamic): Likewise.
+ * sysdeps/i386/fpu/libm-test-ulps: Regenerated for GCC 7 with
+ "-O2 -march=i686".
+ * posix/tst-glob_symlinks.c [!PATH_MAX]: Define PATH_MAX macro.
+ * sysdeps/gnu/glob64.c (__glob): Define macro instead of glob macro.
+ (__glob64): Define GLIBC_2_27 versioned symbol instead of glob64.
+ * sysdeps/gnu/glob-lstat-compat.c: New file.
+ * sysdeps/gnu/glob64-lstat-compat.c: New file.
+ * sysdeps/posix/pwritev_common.c: Add PROT_READ to __mmap prot.
+
+2018-01-05 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
+
+ * sysdeps/powerpc/powerpc64/dl-machine.c (_dl_reloc_overflow):
+ Reserve 16 chars to reloc_addr before calling _itoa_word.
+
+2018-01-05 Aurelien Jarno <aurelien@aurel32.net>
+
+ [BZ #22678]
+ * sysdeps/unix/sysv/linux/prlimit.c (prlimit): Translate
+ old_rlimit from RLIM64_INFINITY to RLIM_INFINITY.
+
+ * sysdeps/unix/sysv/linux/tst-rlimit-infinity.c: New file.
+ * sysdeps/unix/sysv/linux/Makefile (tests): Add tst-rlimit-infinity.
+
+ * resource/tst-getrlimit.c: Add copyright header.
+
+2018-01-05 Aurelien Jarno <aurelien@aurel32.net>
+ Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/unix/sysv/linux/getrlimit64.c [USE_VERSIONED_RLIMIT]: Do not
+ define getrlimit and getrlimit64 as weak aliases of __getrlimit64.
+ Define __GI_getrlimit64 as weak alias of __getrlimit64.
+ [__RLIM_T_MATCHES_RLIM64_T]: Do not redefine SHLIB_COMPAT, use #elif
+ instead.
+ * sysdeps/unix/sysv/linux/setrlimit64.c [USE_VERSIONED_RLIMIT]: Do not
+ define setrlimit and setrlimit64 as weak aliases of __setrlimit64.
+ * sysdeps/unix/sysv/linux/alpha/bits/resource.h (RLIM_INFINITY,
+ RLIM64_INFINITY): Fix values to match the kernel ones.
+ * sysdeps/unix/sysv/linux/alpha/getrlimit64.c: Define
+ USE_VERSIONED_RLIMIT. Rename __getrlimit64 into __old_getrlimit64 and
+ provide it as getrlimit@@GLIBC_2_0 and getrlimit64@@GLIBC_2_1. Add a
+ __getrlimit64 function and provide it as getrlimit@@GLIBC_2_27 and
+ getrlimit64@@GLIBC_2_27.
+ * sysdeps/unix/sysv/linux/alpha/setrlimit64.c: Ditto with setrlimit
+ and setrlimit64.
+ * sysdeps/unix/sysv/linux/alpha/libc.abilist (GLIBC_2.27): Add
+ getrlimit, setrlimit, getrlimit64 and setrlimit64.
+ * sysdeps/unix/sysv/linux/alpha/Versions (libc): Add getrlimit,
+ setrlimit, getrlimit64 and setrlimit64.
+
+2018-01-05 Aurelien Jarno <aurelien@aurel32.net>
+
+ [BZ #22648]
+ * sysdeps/unix/sysv/linux/alpha/getrlimit64.c: New file.
+ * sysdeps/unix/sysv/linux/alpha/setrlimit64.c: Ditto.
+
+2018-01-04 Joseph Myers <joseph@codesourcery.com>
+
+ * malloc/tst-malloc-tcache-leak.c (TIMEOUT): Define to 50.
+ * posix/tst-glob-tilde.c (TIMEOUT): Define to 200.
+ * resolv/tst-resolv-res_ninit.c (TIMEOUT): Define to 50.
+
+2018-01-03 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ [BZ #15479]
+ [BZ #22666]
+ * sysdeps/alpha/fpu/s_trunc.c: Remove file.
+ * sysdeps/alpha/fpu/s_truncf.c: Likewise.
+
+ [BZ #15479]
+ [BZ #22665]
+ * sysdeps/alpha/fpu/s_ceil.c: Remove file.
+ * sysdeps/alpha/fpu/s_ceilf.c: Likewise.
+ * sysdeps/alpha/fpu/s_floor.c: Likewise.
+ * sysdeps/alpha/fpu/s_floorf.c: Likewise.
+
+2018-01-04 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #22667]
+ * sysdeps/unix/sysv/linux/i386/makecontext.S (__makecontext):
+ Align the stack before calling exit.
+ * stdlib/tst-makecontext-align.c: New file.
+ * stdlib/Makefile (tests): Add tst-makecontext-align.
+
+2018-01-04 Florian Weimer <fweimer@redhat.com>
+
+ Add support for calling dlvsym from libc.so.
+ * include/dlfcn.h (__libc_dlvsym): Declare.
+ * elf/Makefile (tests-static-internal): Add
+ tst-libc_dlvsym-static.
+ (tests-internal): Add tst-libc_dlvsym.
+ (modules-names): Add tst-libc_dlvsym-dso.
+ (tst-libc_dlvsym, tst-libc_dlvsym-static): Link with libdl.
+ (tst-libc_dlvsym-dso.so): Link with libdl, libsupport.
+ (tst-libc_dlvsym.out, tst-libc_dlvsym-static.out): The shared
+ object tst-libc_dlvsym-dso.so needs to be built before running
+ these tests.
+ (tst-libc_dlvsym-static-ENV): Set LD_LIBRARY_PATH.
+ * elf/Versions: Export __libc_dlvsym.
+ * elf/dl-libc.c (struct do_dlvsym_args): New.
+ (do_dlvsym, __libc_dlvsym): New functions.
+ (struct dl_open_hook, _dl_open_hook): Add dlvsym member.
+ (_dl_open_hook2): New variable.
+ (__libc_register_dl_open_hook): Set it.
+ * elf/tst-libc_dlvsym-dso.c: New file.
+ * elf/tst-libc_dlvsym-static.c: Likewise.
+ * elf/tst-libc_dlvsym.c: Likewise.
+ * elf/tst-libc_dlvsym.h: Likewise.
+
+2018-01-03 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * support/support_enter_mount_namespace.c [!CLONE_NEWNS]: Do not
+ include <sys/mount.h>.
+
+2018-01-02 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * math/math.h (math_errhandling): Set to 0 with __FAST_MATH__.
+ Add __NO_MATH_ERRNO__ check.
+
+2018-01-02 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/mips/mips32/libm-test-ulps: Update.
+ * sysdeps/mips/mips64/libm-test-ulps: Likewise.
+
+2018-01-02 Florian Weimer <fweimer@redhat.com>
+
+ * misc/tst-pselect.c: Add copyright header.
+
+2018-01-02 Aurelien Jarno <aurelien@aurel32.net>
+
+ * sysdeps/unix/sysv/linux/alpha/getrlimit64.c: Fix a typo in the
+ comment.
+ * sysdeps/unix/sysv/linux/alpha/setrlimit64.c: Fix a typo in the
+ comment.
+ (settrlimit): Rename into setrlimit.
+ (__sttrlimit): Rename into __setrlimit.
+
+ * sysdeps/unix/sysv/linux/alpha/getrlimit64.c (__old_getrlimit64):
+ Drop __RLIM_T_MATCHES_RLIM64_T conditional as __old_getrlimit64 is
+ never defined in that case.
+
+2018-01-02 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/powerpc/nofpu/libm-test-ulps: Update.
+
+ * sysdeps/arm/libm-test-ulps: Update.
+
+ * math/Makefile (run-regen-ulps): Add $(objpfx) to test name here.
+ (regen-ulps): Use $(libm-tests) not $^ in shell loop.
+
+2018-01-02 Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>
+
+ * NEWS: Add cosf and sincosf to list of optimized functions.
+
+2018-01-02 Aurelien Jarno <aurelien@aurel32.net>
+
+ [BZ #22660]
+ * sysdeps/alpha/fpu/s_fmax.S: Remove file.
+ * sysdeps/alpha/fpu/s_fmaxf.S: Likewise.
+ * sysdeps/alpha/fpu/s_fmin.S: Likewise.
+ * sysdeps/alpha/fpu/s_fminf.S: Likewise.
+
+2018-01-01 Dmitry V. Levin <ldv@altlinux.org>
+
+ [BZ #22433]
+ * sysdeps/unix/sysv/linux/arm/sys/ptrace.h: New file.
+
+ * elf/dl-load.c (decompose_rpath): Check for rpath emptiness before
+ making a copy of it.
+
+2018-01-01 Joseph Myers <joseph@codesourcery.com>
+
+ * manual/texinfo.tex: Update to version 2017-12-26.21 with
+ trailing whitespace removed.
+ * scripts/config.guess: Update to version 2018-01-01.
+ * scripts/config.sub: Update to version 2018-01-01.
+ * scripts/move-if-change: Update from gnulib.
+
+ * NEWS: Update copyright dates.
+ * catgets/gencat.c (print_version): Likewise.
+ * csu/version.c (banner): Likewise.
+ * debug/catchsegv.sh: Likewise.
+ * debug/pcprofiledump.c (print_version): Likewise.
+ * debug/xtrace.sh (do_version): Likewise.
+ * elf/ldconfig.c (print_version): Likewise.
+ * elf/ldd.bash.in: Likewise.
+ * elf/pldd.c (print_version): Likewise.
+ * elf/sotruss.sh: Likewise.
+ * elf/sprof.c (print_version): Likewise.
+ * iconv/iconv_prog.c (print_version): Likewise.
+ * iconv/iconvconfig.c (print_version): Likewise.
+ * locale/programs/locale.c (print_version): Likewise.
+ * locale/programs/localedef.c (print_version): Likewise.
+ * login/programs/pt_chown.c (print_version): Likewise.
+ * malloc/memusage.sh (do_version): Likewise.
+ * malloc/memusagestat.c (print_version): Likewise.
+ * malloc/mtrace.pl: Likewise.
+ * manual/libc.texinfo: Likewise.
+ * nptl/version.c (banner): Likewise.
+ * nscd/nscd.c (print_version): Likewise.
+ * nss/getent.c (print_version): Likewise.
+ * nss/makedb.c (print_version): Likewise.
+ * posix/getconf.c (main): Likewise.
+ * scripts/test-installation.pl: Likewise.
+ * sysdeps/unix/sysv/linux/lddlibc4.c (main): Likewise.
+
+ * All files with FSF copyright notices: Update copyright dates
+ using scripts/update-copyrights.
+ * locale/programs/charmap-kw.h: Regenerated.
+ * locale/programs/locfile-kw.h: Likewise.
+
+2017-12-31 Zack Weinberg <zackw@panix.com>
+
+ * libio/bits/libio-ldbl.h: Correct check for improper
+ inclusion. Add own multiple include guard.
+
+2017-12-30 Aurelien Jarno <aurelien@aurel32.net>
+ Dmitry V. Levin <ldv@altlinux.org>
+
+ [BZ #22625]
+ CVE-2017-16997
+ * elf/dl-load.c (fillin_rpath): Check for empty tokens before dynamic
+ string token expansion. Check for NULL pointer or empty string possibly
+ returned by expand_dynamic_string_token.
+ (decompose_rpath): Check for empty path after dynamic string
+ token expansion.
+
+2017-12-29 Dmitry V. Levin <ldv@altlinux.org>
+
+ [BZ #22433]
+ * sysdeps/unix/sysv/linux/x86/sys/ptrace.h: New file.
+
+ * sysdeps/unix/sysv/linux/sys/ptrace.h (__ptrace_request): Add comments
+ about PTRACE_PEEKSIGINFO, PTRACE_GETSIGMASK, PTRACE_SETSIGMASK, and
+ PTRACE_SECCOMP_GET_FILTER. Update comments about PTRACE_SINGLESTEP
+ and PTRACE_SYSCALL.
+ * sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h: Likewise.
+ * sysdeps/unix/sysv/linux/ia64/sys/ptrace.h: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h: Likewise.
+ * sysdeps/unix/sysv/linux/s390/sys/ptrace.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sys/ptrace.h: Likewise.
+ * sysdeps/unix/sysv/linux/tile/sys/ptrace.h: Likewise.
+
+ * sysdeps/unix/sysv/linux/sys/ptrace.h: Include <bits/ptrace-shared.h>.
+ (__ptrace_setoptions, __ptrace_eventcodes, __ptrace_peeksiginfo_args,
+ __ptrace_peeksiginfo_flags, ptrace): Move to ...
+ * sysdeps/unix/sysv/linux/bits/ptrace-shared.h: ... new file.
+ * sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
+ bits/ptrace-shared.h.
+ * sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h: Include
+ <bits/ptrace-shared.h>.
+ (__ptrace_setoptions, __ptrace_eventcodes, __ptrace_peeksiginfo_args,
+ __ptrace_peeksiginfo_flags, ptrace): Remove.
+ * sysdeps/unix/sysv/linux/ia64/sys/ptrace.h: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h: Likewise.
+ * sysdeps/unix/sysv/linux/s390/sys/ptrace.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sys/ptrace.h: Likewise.
+ * sysdeps/unix/sysv/linux/tile/sys/ptrace.h: Likewise.
+
+2017-12-29 Aurelien Jarno <aurelien@aurel32.net>
+
+ [BZ #17804]
+ * dirent/scandir-tail.c (SCANDIR_TAIL): Move __set_errno (0) at the
+ end of the loop. Improve comments.
+
+2017-12-29 Zack Weinberg <zackw@panix.com>
+
+ [BZ #22615]
+ * manual/errno.texi (Checking for Errors): Explicitly say that errno
+ might be set on success.
+
+2017-12-29 Aurelien Jarno <aurelien@aurel32.net>
+
+ [BZ #22611]
+ * malloc/tst-realloc.c (do_test): Remove the test checking that errno
+ is unchanged on success.
+
+2017-12-27 Dmitry V. Levin <ldv@altlinux.org>
+
+ * elf/dl-dst.h (DL_DST_COUNT): Remove is_path argument, all callers
+ updated.
+ * elf/dl-load.c (is_dst, _dl_dst_count, _dl_dst_substitute,
+ expand_dynamic_string_token): Likewise.
+ * sysdeps/generic/ldsodefs.h (_dl_dst_count, _dl_dst_substitute): Remove
+ is_path argument.
+
+ * elf/dl-load.c (is_dst): Remove checks that is_path is set and name
+ contains ':'.
+
+ * elf/dl-load.c (_dl_dst_substitute): Remove checks that is_path
+ is set and name contains ':', and all code depending on these checks.
+
+2017-12-24 Zack Weinberg <zackw@panix.com>
+
+ * libio/libio.h, libio/_G_config.h: New stub headers which issue a
+ deprecation warning and then include <bits/libio.h>, <bits/_G_config.h>
+ respectively.
+ * libio/libio.h: Rename the original version of this file to
+ libio/bits/libio.h. Error out if not included by stdio.h or the
+ stub libio.h.
+ * include/libio.h: Move to include/bits. Forward to libio/bits/libio.h.
+ * sysdeps/generic/_G_config.h: Move to top-level bits/. Error out
+ if not included by bits/libio.h or the stub _G_config.h.
+ * sysdeps/unix/sysv/linux/_G_config.h: Move to
+ sysdeps/unix/sysv/linux/bits. Error out if not included by
+ bits/libio.h or the stub _G_config.h.
+ * libio/stdio.h: Include bits/libio.h, not libio.h.
+ * libio/Makefile: Install bits/libio.h and bits/_G_config.h as
+ well as libio.h and _G_config.h.
+
+ * csu/init.c, libio/fmemopen.c, libio/iolibio.h, libio/oldfmemopen.c
+ * libio/strfile.h, stdio-common/vfscanf.c
+ * sysdeps/pthread/flockfile.c, sysdeps/pthread/funlockfile.c
+ Include stdio.h, not _G_config.h nor libio.h.
+ * libio/iofgetpos.c: Also rename fgetpos64 out of the way.
+ * libio/iofsetpos.c: Also rename fsetpos64 out of the way.
+
+ * scripts/check-installed-headers.sh: Skip libio.h and _G_config.h.
+
+2017-12-23 Dmitry V. Levin <ldv@altlinux.org>
+
+ [BZ #22347]
+ * stdlib/getrandom.c (getrandom): Fix comment.
+ * sysdeps/unix/sysv/linux/getrandom.c (getrandom): Likewise.
+
+2017-12-23 Aurelien Jarno <aurelien@aurel32.net>
+
+ [BZ #21161]
+ * manual/arith.texi (strtoul): Fix a typo.
+
+ [BZ #22596]
+ * manual/arith.texi (finite): Fix the description of the return
+ value.
+
+2017-12-22 Eric Blake <ebb9@byu.net>
+
+ Avoid gcc warnings on cygwin
+ * posix/regex_internal.c (re_string_reconstruct) [!RE_ENABLE_I18N]:
+ * posix/regexec.c (check_arrival_add_next_nodes) [!RE_ENABLE_I18N]:
+ Avoid unused variable.
+
+2017-12-22 Florian Weimer <fweimer@redhat.com>
+
+ * io/Makefile (routines): Add copy_file_range.
+ (tests): Add tst-copy_file_range.
+ (tests-static, tests-internal): Add tst-copy_file_range-compat.
+ * io/Versions (GLIBC_2.27): Export copy_file_range.
+ * io/copy_file_range-compat.c: New file.
+ * io/copy_file_range.c: Likewise.
+ * io/tst-copy_file_range-compat.c: Likewise.
+ * io/tst-copy_file_range.c: Likewise.
+ * manual/llio.texi (Copying File Data): New section.
+ * posix/unistd.h [__USE_GNU] (copy_file_range): Declare.
+ * support/Makefile (libsupport-routines): Add support-xfstat,
+ xftruncate, xlseek.
+ * support/support-xfstat.c: New file.
+ * support/xftruncate.c: Likewise.
+ * support/xlseek.c: Likewise.
+ * support/xunistd.h (xfstat, xftruncate, xlseek): Declare.
+ * sysdeps/unix/sysv/linux/**.abilist: Update.
+ * sysdeps/unix/sysv/linux/copy_file_range.c: New file.
+
+2017-12-21 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * scripts/build-many-glibcs.py (Context.add_all_configs): Add
+ disable-multi-arch variant to aarch64-linux-gnu.
+
+2017-12-20 Joseph Myers <joseph@codesourcery.com>
+
+ * manual/texinfo.tex: Update to version 2017-12-18.20 with
+ trailing whitespace removed.
+ * scripts/config.guess: Update to version 2017-12-17.
+ * scripts/config.sub: Update to version 2017-11-23.
+ * scripts/install-sh: Update to version 2017-09-23.17.
+ * scripts/move-if-change: Update to version 2017-09-13 06:45.
+
+2017-12-20 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/tile/__longjmp.S (__longjmp): Use lowercase instructions.
+ * sysdeps/tile/__tls_get_addr.S (__tls_get_addr): Likewise.
+ * sysdeps/tile/_mcount.S (__mcount): Likewise.
+ * sysdeps/tile/crti.S (_init, _fini): Likewise.
+ * sysdeps/tile/crtn.S: Likewise.
+ * sysdeps/tile/dl-start.S (_start): Likewise.
+ * sysdeps/tile/dl-trampoline.S: Likewise.
+ * sysdeps/tile/setjmp.S (__sigsetjmp): Likewise.
+ * sysdeps/tile/start.S (_start): Likewise.
+ * sysdeps/unix/sysv/linux/tile/clone.S (_clone): Likewise.
+ * sysdeps/unix/sysv/linux/tile/getcontext.S (__getcontext): Likewise.
+ * sysdeps/unix/sysv/linux/tile/ioctl.S (__ioctl): Likewise.
+ * sysdeps/unix/sysv/linux/tile/setcontext.S (__setcontext): Likewise.
+ * sysdeps/unix/sysv/linux/tile/swapcontext.S (__swapcontext): Likewise.
+ * sysdeps/unix/sysv/linux/tile/syscall.S (syscall): Likewise.
+ * sysdeps/unix/sysv/linux/tile/vfork.S (__vfork): Likewise.
+
+ * stdlib/bug-getcontext.c (do_test): Remove tilepro mention in
+ comment.
+ * sysdeps/tile/preconfigure: Remove tilegx folder.
+ * sysdeps/tile/tilegx/Implies: Move definitions to ...
+ * sysdeps/tile/Implies: ... here.
+ * sysdeps/tile/tilegx/Makefile: Move rules to ...
+ * sysdeps/tile/Makefile: ... here.
+ * sysdeps/tile/tilegx/atomic-machine.h: Move definitions to ...
+ * sysdeps/tile/atomic-machine.h: ... here. Add include guards.
+ * sysdeps/tile/tilegx/bits/wordsize.h: Move to ...
+ * sysdeps/tile/bits/wordsize.h: ... here.
+ * sysdeps/tile/tilegx/*: Move to ...
+ * sysdeps/tile/*: ... here.
+ * sysdeps/tile/tilegx/tilegx32/Implies: Move to ...
+ * sysdeps/tile/tilegx32/Implies: ... here.
+ * sysdeps/tile/tilegx/tilegx64/Implies: Move to ...
+ * sysdeps/tile/tilegx64/Implies: ... here.
+ * sysdeps/unix/sysv/linux/tile/tilegx/Makefile: Move definitions
+ to ...
+ * sysdeps/unix/sysv/linux/tile/Makefile: ... here.
+ * sysdeps/unix/sysv/linux/tile/tilegx/*: Move to ...
+ * sysdeps/unix/sysv/linux/tile/*: ... here.
+ * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/*: Move to ...
+ * sysdeps/unix/sysv/linux/tile/tilegx32/*: ... here.
+ * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/*: Move to ...
+ * sysdeps/unix/sysv/linux/tile/tilegx64/*: ... here.
+
+ * README: Remove tilepro-*-linux-gnu from supported architecture.
+ * scripts/build-many-glibcs.py: Likewise.
+ * sysdeps/tile/__tls_get_addr.S (__tls_get_addr): Likewise.
+ * sysdeps/tile/crti.S (PREINIT_FUNCTION): Likewise.
+ * sysdeps/tile/dl-machine.h (ELF_MACHINE_NAME,
+ elf_machine_matches_host, elf_machine_dynamic,
+ elf_machine_load_address, elf_machine_runtime_setup, reloc_howto
+ howto, elf_machine_rela): Likewise.
+ * sysdeps/tile/dl-start.S (_start): Likewise.
+ * sysdeps/tile/memcmp.c (DBLALIGN, REVBYTES): Likewise.
+ * sysdeps/tile/memcopy.h (MEMCPY_OK_FOR_FWD_MEMMOVE,
+ MEMCPY_OK_FOR_FWD_MEMMOVE, op_t): Likewise.
+ * sysdeps/tile/nptl/pthread_spin_lock.c (TNS, CMPTNS): Likewise.
+ * sysdeps/tile/nptl/pthread_spin_trylock.c (TNS): Likewise.
+ * sysdeps/tile/nptl/pthread_spin_unlock.c (pthread_spin_unlock):
+ Likewise.
+ * sysdeps/tile/nptl/tls.h (DB_THREAD_SELF): Likewise.
+ * sysdeps/tile/preconfigure: Likewise.
+ * sysdeps/tile/stackguard-macros.h (STACK_CHK_GUARD,
+ POINTER_CHK_GUARD): Likewise.
+ * sysdeps/tile/stackinfo.h (__stackinfo_sub): Likewise.
+ * sysdeps/tile/start.S (_start): Likewise.
+ * sysdeps/tile/tls-macros.h (TLS_GD_OFFSET, TLS_IE_OFFSET, _TLS_LE):
+ Likewise.
+ * sysdeps/tile/sysdep.h (REGSIZE): Likewise.
+ (LD, LD4U, ST, ST4, BNEZ, BEQZ, BEQZT, BGTZ, CMPEQI, CMPEQ, CMOVEQZ,
+ CMOVNEZ): Remove.
+ * sysdeps/unix/sysv/linux/tile/bits/environments.h
+ (__ILP32_OFF32_CFLAGS, __ILP32_OFFBIG_CFLAGS, __ILP32_OFF32_LDFLAGS,
+ __ILP32_OFFBIG_LDFLAGS, __LP64_OFF64_CFLAGS, __LP64_OFF64_LDFLAGS):
+ Likewise.
+ * sysdeps/tile/wordcopy.c (DBLALIGN): Likewise.
+ * sysdeps/tile/tilepro/Implies: Remove file.
+ * sysdeps/tile/tilepro/atomic-machine.h: Likewise.
+ * sysdeps/tile/tilepro/bits/wordsize.h: Likewise.
+ * sysdeps/tile/tilepro/memchr.c: Likewise.
+ * sysdeps/tile/tilepro/memcpy.S: Likewise.
+ * sysdeps/tile/tilepro/memset.c: Likewise.
+ * sysdeps/tile/tilepro/memusage.h: Likewise.
+ * sysdeps/tile/tilepro/rawmemchr.c: Likewise.
+ * sysdeps/tile/tilepro/strchr.c: Likewise.
+ * sysdeps/tile/tilepro/strchrnul.c: Likewise.
+ * sysdeps/tile/tilepro/strlen.c: Likewise.
+ * sysdeps/tile/tilepro/strrchr.c: Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilepro/Implies: Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilepro/c++-types.data: Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilepro/jmp_buf-macros.h: Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilepro/ld.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilepro/ldconfig.h: Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilepro/libBrokenLocale.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilepro/libanl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilepro/libcrypt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilepro/libdl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilepro/libnsl.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilepro/libpthread.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilepro/libresolv.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilepro/librt.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilepro/libthread_db.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilepro/libutil.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilepro/register-dump.h: Likewise.
+ * sysdeps/unix/sysv/linux/tile/sysconf.c (linux_sysconf): Remove
+ tilepro mention in comment.
+
+ * nptl/Makefile (libpthread-routines): Add pthread_join_common.
+ * nptl/pthreadP.h (__pthread_timedjoin_ex): New prototype.
+ * nptl/pthread_join_common.c: New file: common function used on
+ pthread_join, pthread_timedjoin_np, pthread_tryjoin_np.
+ * nptl/pthread_join.c (pthread_join): Use __pthread_timedjoin_ex.
+ * nptl/pthread_tryjoin.c (pthread_tryjoin): Likewise.
+ * nptl/pthread_timedjoin.c (pthread_timedjoin_np): Likewise.
+ (cleanup): Move definition to pthread_join_common.c.
+ * sysdeps/unix/sysv/linux/i386/lowlevellock.h (__lll_timedwait_tid):
+ Remove superflous checks.
+ * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (__lll_timedwait_tid):
+ Likewise.
+
+2017-12-20 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * sysdeps/aarch64/libm-test-ulps: Update.
+
+2017-12-20 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/aarch64/memset.S (MEMSET): Define.
+
+2017-12-20 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #22635]
+ nptl: Provide full implementation of pthread_self in libc.so.
+ * nptl/Makefile (routines): Add pthread_self.
+ (libpthread-routines): Replace pthread_self with
+ compat-pthread_self.
+ * nptl/forward.c (pthread_self): Remove.
+ * nptl/nptl-init.c (pthread_functions): Do not initialize
+ ptr_pthread_self.
+ * nptl/pthread_self.c (pthread_self): Remove weak alias.
+ * nptl/compat-pthread_self.c: New file.
+ * sysdeps/nptl/pthread-functions.h (struct pthread_functions):
+ Remove ptr_pthread_self.
+
+2017-12-19 Arnold D. Robbins <arnold@skeeve.com>
+
+ * posix/regcomp.c: Fix spelling in comments.
+ * posix/regex.h: Likewise.
+ * posix/regex_internal.c: Likewise.
+ * posix/regexec.c: Likewise.
+
+2017-12-19 Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
+
+ [BZ #22377]
+ * math/Makefile [C++] (tests): Add test for iseqsig.
+ * math/math.h [C++] (iseqsig): New implementation, which does
+ not rely on __MATH_TG/__builtin_types_compatible_p.
+ * math/test-math-iseqsig.cc: New file.
+ * sysdeps/powerpc/powerpc64le/Makefile
+ (CFLAGS-test-math-iseqsig.cc): New variable.
+
+2017-12-19 Dmitry V. Levin <ldv@altlinux.org>
+
+ * elf/dl-load.c (is_trusted_path): Remove.
+ (fillin_rpath): Remove check_trusted argument and its use,
+ all callers changed.
+
+2017-12-19 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #22630]
+ * Makeconfig (link-pie-before-libc): Replace -pie with
+ $(if $($(@F)-no-pie),$(no-pie-ldflag),-pie).
+ * elf/Makefile (LDFLAGS-tst-dlopen-aout): Removed.
+ (tst-dlopen-aout-no-pie): New.
+ (LDFLAGS-tst-prelink): Removed.
+ (tst-prelink-no-pie): New.
+ (LDFLAGS-tst-main1): Removed.
+ (tst-main1-no-pie): New.
+ * gmon/Makefile (LDFLAGS-tst-gmon): Removed.
+ (tst-gmon-no-pie): New.
+
+2017-12-19 H.J. Lu <hongjiu.lu@intel.com>
+
+ * manual/install.texi: Document that --enable-static-pie
+ implies PIE.
+ * INSTALL: Regenerated.
+
+2017-12-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
+
+ [BZ #21309]
+ * sysdeps/ieee754/dbl-64/e_pow.c (checkint): Make m and n
+ unsigned.
+
+2017-12-19 Joseph Myers <joseph@codesourcery.com>
+
+ Revert:
+
+ 2017-12-19 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/x86_64/fpu/libm-test-ulps: Update.
+
+ 2017-12-19 Patrick McGehearty <patrick.mcgehearty@oracle.com>
+
+ * sysdeps/ieee754/dbl-64/e_exp.c: Include <math-svid-compat.h> and
+ <errno.h>. Include "eexp.tbl".
+ (half): New constant.
+ (one): Likewise.
+ (__ieee754_exp): Rewrite.
+ (__slowexp): Remove prototype.
+ * sysdeps/ieee754/dbl-64/eexp.tbl: New file.
+ * sysdeps/ieee754/dbl-64/slowexp.c: Remove file.
+ * sysdeps/i386/fpu/slowexp.c: Likewise.
+ * sysdeps/ia64/fpu/slowexp.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/slowexp.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/slowexp-avx.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/slowexp-fma.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/slowexp-fma4.c: Likewise.
+ * sysdeps/generic/math_private.h (__slowexp): Remove prototype.
+ * sysdeps/ieee754/dbl-64/e_pow.c: Remove mention of slowexp.c in
+ comment.
+ * sysdeps/powerpc/power4/fpu/Makefile [$(subdir) = math]
+ (CPPFLAGS-slowexp.c): Remove variable.
+ * sysdeps/x86_64/fpu/multiarch/Makefile (libm-sysdep_routines):
+ Remove slowexp-fma, slowexp-fma4 and slowexp-avx.
+ (CFLAGS-slowexp-fma.c): Remove variable.
+ (CFLAGS-slowexp-fma4.c): Likewise.
+ (CFLAGS-slowexp-avx.c): Likewise.
+ * sysdeps/x86_64/fpu/multiarch/e_exp-avx.c (__slowexp): Do not
+ define as macro.
+ * sysdeps/x86_64/fpu/multiarch/e_exp-fma.c (__slowexp): Likewise.
+ * sysdeps/x86_64/fpu/multiarch/e_exp-fma4.c (__slowexp): Likewise.
+ * math/Makefile (type-double-routines): Remove slowexp.
+ * manual/probes.texi (slowexp_p6): Remove.
+ (slowexp_p32): Likewise.
+
+2017-12-19 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * lib/glob.c (glob): Use a 'char *', not a 'void *', in pointer
+ arithmetic.
+
+ * lib/glob.c (glob): Do not pass NULL to mempcpy.
+
+2017-12-19 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/x86_64/fpu/libm-test-ulps: Update.
+
+2017-12-19 Patrick McGehearty <patrick.mcgehearty@oracle.com>
+
+ * sysdeps/ieee754/dbl-64/e_exp.c: Include <math-svid-compat.h> and
+ <errno.h>. Include "eexp.tbl".
+ (half): New constant.
+ (one): Likewise.
+ (__ieee754_exp): Rewrite.
+ (__slowexp): Remove prototype.
+ * sysdeps/ieee754/dbl-64/eexp.tbl: New file.
+ * sysdeps/ieee754/dbl-64/slowexp.c: Remove file.
+ * sysdeps/i386/fpu/slowexp.c: Likewise.
+ * sysdeps/ia64/fpu/slowexp.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/slowexp.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/slowexp-avx.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/slowexp-fma.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/slowexp-fma4.c: Likewise.
+ * sysdeps/generic/math_private.h (__slowexp): Remove prototype.
+ * sysdeps/ieee754/dbl-64/e_pow.c: Remove mention of slowexp.c in
+ comment.
+ * sysdeps/powerpc/power4/fpu/Makefile [$(subdir) = math]
+ (CPPFLAGS-slowexp.c): Remove variable.
+ * sysdeps/x86_64/fpu/multiarch/Makefile (libm-sysdep_routines):
+ Remove slowexp-fma, slowexp-fma4 and slowexp-avx.
+ (CFLAGS-slowexp-fma.c): Remove variable.
+ (CFLAGS-slowexp-fma4.c): Likewise.
+ (CFLAGS-slowexp-avx.c): Likewise.
+ * sysdeps/x86_64/fpu/multiarch/e_exp-avx.c (__slowexp): Do not
+ define as macro.
+ * sysdeps/x86_64/fpu/multiarch/e_exp-fma.c (__slowexp): Likewise.
+ * sysdeps/x86_64/fpu/multiarch/e_exp-fma4.c (__slowexp): Likewise.
+ * math/Makefile (type-double-routines): Remove slowexp.
+ * manual/probes.texi (slowexp_p6): Remove.
+ (slowexp_p32): Likewise.
+
+2017-12-19 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+ James Clarke <jrtc27@jrtc27.com>
+
+ [BZ #22603]
+ * sysdeps/ia64/memchr.S (__memchr): Avoid overflow in pointer
+ addition.
+
+2017-12-19 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ [BZ #22605]
+ * sysdeps/unix/sysv/linux/sh/clone.S (__clone): Fix exit return
+ code.
+
+2017-12-19 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #22563]
+ * sysdeps/i386/nptl/tcb-offsets.sym (FEATURE_1_OFFSET): New.
+ * sysdeps/i386/nptl/tls.h (tcbhead_t): Add feature_1.
+ * sysdeps/x86_64/nptl/tcb-offsets.sym (FEATURE_1_OFFSET): New.
+ * sysdeps/x86_64/nptl/tls.h (tcbhead_t): Rename __glibc_unused1
+ to feature_1.
+
+2017-12-19 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #22563]
+ * bits/types/__cancel_jmp_buf_tag.h: New file.
+ * sysdeps/unix/sysv/linux/x86/bits/types/__cancel_jmp_buf_tag.h
+ * sysdeps/unix/sysv/linux/x86/pthreaddef.h: Likewise.
+ * sysdeps/unix/sysv/linux/x86/nptl/pthreadP.h: Likewise.
+ * nptl/Makefile (headers): Add
+ bits/types/__cancel_jmp_buf_tag.h.
+ * nptl/descr.h [NEED_SAVED_MASK_IN_CANCEL_JMP_BUF]
+ (pthread_unwind_buf): Add saved_mask to cancel_jmp_buf.
+ * sysdeps/nptl/pthread.h: Include
+ <bits/types/__cancel_jmp_buf_tag.h>.
+ (__pthread_unwind_buf_t): Use struct __cancel_jmp_buf_tag with
+ __cancel_jmp_buf.
+ * sysdeps/unix/sysv/linux/hppa/pthread.h: Likewise.
+
+2017-12-18 H.J. Lu <hongjiu.lu@intel.com>
+
+ * scripts/build-many-glibcs.py (Context.add_all_configs): Add
+ --enable-static-pie variants to x86_64, x32 and i686.
+
+2017-12-19 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #22631]
+ * sysdeps/m68k/m680x0/fpu/bits/mathinline.h (__m81_defun): Add
+ argument for attrubutes. All callers changed.
+ (__inline_mathop1): Likewise. All callers changed.
+ (__inline_mathop): Likewise. All callers changed.
+ [__USE_MISC] (scalbn): Use __inline_forward instead of
+ __inline_forward_c.
+ [__USE_ISOC99] (scalbln): Likewise.
+ [__USE_ISOC99] (nearbyint): Likewise.
+ [__USE_ISOC99] (lrint): Likewise.
+ [__USE_MISC] (scalbnf): Likewise.
+ [__USE_ISOC99] (scalblnf): Likewise.
+ [__USE_ISOC99] (nearbyintf): Likewise.
+ [__USE_ISOC99] (lrintf): Likewise.
+ [__USE_MISC] (scalbnl): Likewise.
+ [__USE_ISOC99] (scalblnl): Likewise.
+ [__USE_ISOC99] (nearbyintl): Likewise.
+ [__USE_ISOC99] (lrintl): Likewise.
+ * sysdeps/m68k/m680x0/fpu/mathimpl.h: All callers of
+ __inline_mathop and __m81_defun changed.
+
+ * scripts/build-many-glibcs.py (Context.add_all_configs): Specify
+ CPU or FPU for ARM hard-float configurations.
+
+2017-12-18 Joseph Myers <joseph@codesourcery.com>
+
+ * nptl/tst-attr3.c: Include <libc-diag.h>.
+ (do_test) [__GNUC_PREREQ (7, 0)]: Ignore -Wrestrict for two tests.
+
+ * posix/tst-glob_symlinks.c (do_test): Increase size of buf.
+
+ * string/tester.c (test_strncat): Also disable -Warray-bounds
+ warnings for two tests.
+
+2017-12-18 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #22614]
+ * Makeconfig (no-pie-ldflag): Set to -no-pie only if
+ $(cc-pie-default) == yes.
+ * config.make.in (cc-pie-default): New.
+ * configure.ac (libc_cv_pie_default): Renamed to ...
+ (libc_cv_cc_pie_default): This.
+ (libc_cv_pie_default): Set to $libc_cv_cc_pie_default.
+ * configure: Regenerated.
+
+2017-12-18 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #20204]
+ ld.so: Harden dl-libc/libdl hooks.
+ * sysdeps/generic/ldsodefs.h (_dl_init_all_dirs): Update comment.
+ (rtld_active): New function.
+ * dlfcn/dladdr.c (__dladdr): Call it.
+ * dlfcn/dladdr1.c (__dladdr1): Likewise.
+ * dlfcn/dlclose.c (__dlcose): Likewise.
+ * dlfcn/dlerror.c (__dlerror): Likewise.
+ * dlfcn/dlinfo.c (__dlinfo): Likewise.
+ * dlfcn/dlmopen.c (__dlmopen): Likewise.
+ * dlfcn/dlopen.c (__dlopen): Likewise.
+ * dlfcn/dlopenold.c (__dlopen_nocheck): Likewise.
+ * dlfcn/dlsym.c (__dlsym): Likewise.
+ * dlfcn/dlvsym.c (__dlvsym): Likewise.
+ * libio/vtables.c (_IO_vtable_check): Likewise.
+ * elf/dl-libc.c (__libc_dlopen_mode, __libc_dlsym)
+ (__libc_dlclose): Likewise.
+ * elf/rtld.c (dl_main): Update comment on the _dl_init_all_dirs
+ assignment.
+
+2017-12-18 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #22446]
+ * nscd/connections.c (handle_request) [SO_PEERCRED]: Use separate
+ buffers for readlink input and output.
+
+2017-12-18 Sergei Trofimovich <slyfox@gentoo.org>
+
+ [BZ #22624]
+ * sysdeps/mips/setjmp_aux.c (__sigsetjmp_aux): Use
+ inhibit_stack_protector.
+
+ [BZ #22624]
+ * sysdeps/mips/mips64/setjmp_aux.c (__sigsetjmp_aux): Use
+ inhibit_stack_protector.
+
+2017-12-18 Dmitry V. Levin <ldv@altlinux.org>
+
+ [BZ #22627]
+ * elf/dl-load.c (_dl_init_paths): Remove _dl_dst_substitute preparatory
+ code and invocation.
+
+2017-12-18 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * sysdeps/aarch64/start.S (_start): Handle PIC && !SHARED case.
+
+2017-12-16 Aurelien Jarno <aurelien@aurel32.net>
+
+ [BZ #22505]
+ * elf/ldconfig.c (main): Call setlocale to force LC_COLLATE to C.
+
+2017-12-16 Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>
+
+ * sysdeps/s390/fpu/libm-test-ulps: Update.
+
+2017-12-16 Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>
+
+ * sysdeps/powerpc/fpu/libm-test-ulps: Update.
+
+2017-12-16 Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>
+
+ * sysdeps/ieee754/flt-32/s_cosf.c: Move reduced() and
+ constants to s_sincosf.h file.
+ * sysdeps/ieee754/flt-32/s_sinf.c: Likewise.
+ * sysdeps/ieee754/flt-32/s_sincosf.c: New
+ implementation.
+ * sysdeps/ieee754/flt-32/s_sincosf.h:
+ New file.
+
+2017-12-12 Carlos O'Donell <carlos@redhat.com>
+
+ [BZ #14681]
+ * elf/tst-leaks1.c (do_test): Call one dlopen with $ORIGIN expansion
+ before mtrace.
+
+2017-12-15 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #19574]
+ * INSTALL: Regenerated.
+ * Makeconfig (real-static-start-installed-name): New.
+ (pic-default): Updated for --enable-static-pie.
+ (pie-default): New for --enable-static-pie.
+ (default-pie-ldflag): Likewise.
+ (+link-static-before-libc): Replace $(DEFAULT-LDFLAGS-$(@F))
+ with $(if $($(@F)-no-pie),$(no-pie-ldflag),$(default-pie-ldflag)).
+ Replace $(static-start-installed-name) with
+ $(real-static-start-installed-name).
+ (+prectorT): Updated for --enable-static-pie.
+ (+postctorT): Likewise.
+ (CFLAGS-.o): Add $(pie-default).
+ (CFLAGS-.op): Likewise.
+ * NEWS: Mention --enable-static-pie.
+ * config.h.in (ENABLE_STATIC_PIE): New.
+ * configure.ac (--enable-static-pie): New configure option.
+ (have-no-dynamic-linker): New LIBC_CONFIG_VAR.
+ (have-static-pie): Likewise.
+ Enable static PIE if linker supports --no-dynamic-linker.
+ (ENABLE_STATIC_PIE): New AC_DEFINE.
+ (enable-static-pie): New LIBC_CONFIG_VAR.
+ * configure: Regenerated.
+ * csu/Makefile (omit-deps): Add r$(start-installed-name) and
+ gr$(start-installed-name) for --enable-static-pie.
+ (extra-objs): Likewise.
+ (install-lib): Likewise.
+ (extra-objs): Add static-reloc.o and static-reloc.os
+ ($(objpfx)$(start-installed-name)): Also depend on
+ $(objpfx)static-reloc.o.
+ ($(objpfx)r$(start-installed-name)): New.
+ ($(objpfx)g$(start-installed-name)): Also depend on
+ $(objpfx)static-reloc.os.
+ ($(objpfx)gr$(start-installed-name)): New.
+ * csu/libc-start.c (LIBC_START_MAIN): Call _dl_relocate_static_pie
+ in libc.a.
+ * csu/libc-tls.c (__libc_setup_tls): Add main_map->l_addr to
+ initimage.
+ * csu/static-reloc.c: New file.
+ * elf/Makefile (routines): Add dl-reloc-static-pie.
+ (elide-routines.os): Likewise.
+ (DEFAULT-LDFLAGS-tst-tls1-static-non-pie): Removed.
+ (tst-tls1-static-non-pie-no-pie): New.
+ * elf/dl-reloc-static-pie.c: New file.
+ * elf/dl-support.c (_dl_get_dl_main_map): New function.
+ * elf/dynamic-link.h (ELF_DURING_STARTUP): Also check
+ STATIC_PIE_BOOTSTRAP.
+ * elf/get-dynamic-info.h (elf_get_dynamic_info): Likewise.
+ * gmon/Makefile (tests): Add tst-gmon-static-pie.
+ (tests-static): Likewise.
+ (DEFAULT-LDFLAGS-tst-gmon-static): Removed.
+ (tst-gmon-static-no-pie): New.
+ (CFLAGS-tst-gmon-static-pie.c): Likewise.
+ (CRT-tst-gmon-static-pie): Likewise.
+ (tst-gmon-static-pie-ENV): Likewise.
+ (tests-special): Likewise.
+ ($(objpfx)tst-gmon-static-pie.out): Likewise.
+ (clean-tst-gmon-static-pie-data): Likewise.
+ ($(objpfx)tst-gmon-static-pie-gprof.out): Likewise.
+ * gmon/tst-gmon-static-pie.c: New file.
+ * manual/install.texi: Document --enable-static-pie.
+ * sysdeps/generic/ldsodefs.h (_dl_relocate_static_pie): New.
+ (_dl_get_dl_main_map): Likewise.
+ * sysdeps/i386/configure.ac: Check if linker supports static PIE.
+ * sysdeps/x86_64/configure.ac: Likewise.
+ * sysdeps/i386/configure: Regenerated.
+ * sysdeps/x86_64/configure: Likewise.
+ * sysdeps/mips/Makefile (ASFLAGS-.o): Add $(pie-default).
+ (ASFLAGS-.op): Likewise.
+
+2017-12-15 Joseph Myers <joseph@codesourcery.com>
+
+ * io/Makefile (tst-open-tmpfile-ARGS): New variable.
+ * posix/tst-mmap-offset.c (fname): Use /tmp.
+ * stdlib/tst-setcontext3.sh (tempfile): Use ${objpfx}.
+
+2017-12-15 Steve Ellcey <sellcey@cavium.com>
+
+ * nscd/dbg_log.c (dbg_log): Increase msg buffer size.
+
+2017-12-15 Thomas Schwinge <thomas@codesourcery.com>
+
+ * sysdeps/mach/hurd/dl-sysdep.c (__access_noerrno): Don't set
+ errno.
+
+2017-12-15 Joseph Myers <joseph@codesourcery.com>
+
+ * scripts/build-many-glibcs.py (Context.add_all_configs): Use
+ --with-float=hard for arm-linux-gnueabihf configurations.
+
+ [BZ #14121]
+ * po/Makefile (generated): Add $(ALL_LINGUAS:%=%.mo).
+ (%.mo): Change to $(objpfx)%.mo. Use $(make-target-directory).
+ ($(mo-installed)): Use $(objpfx)%.mo.
+ (realclean): Remove rule.
+
+ * po/Makefile (linguas): Remove rule and dependencies.
+ (linguas.mo): Likewise.
+ (.PHONY): Do not depend on linguas and linguas.mo.
+ (podir): Remove variable.
+ (pofiles): Likewise.
+ [$(pofiles)] (%.po): Remove rule.
+
+ * sysdeps/sparc/sparc32/Makefile
+ ($(divrem:%=$(sysdep_dir)/sparc/sparc32/%.S)): Do not include
+ start-of-line whitespace in argument of echo.
+ * sysdeps/sparc/sparc32/divrem.m4: Avoid generating lines starting
+ with whitespace. Generate __wrap_.udiv alias.
+ * sysdeps/sparc/sparc32/rem.S: Regenerated.
+ * sysdeps/sparc/sparc32/sdiv.S: Likewise.
+ * sysdeps/sparc/sparc32/udiv.S: Likewise.
+ * sysdeps/sparc/sparc32/urem.S: Likewise.
+
+2017-12-15 Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>
+
+ * sysdeps/powerpc/powerpc64/power8/strcpy.S: Use vectors
+ for aligned inputs.
+
+2017-12-14 Siddhesh Poyarekar <siddhesh@sourceware.org>
+
+ * benchtests/bench-strcmp.c: Print output in JSON format.
+
+ * elf/dl-tunables.list: Remove redundant SXID_ERASE.
+
+2017-12-14 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #22607]
+ CVE-2017-1000409
+ * elf/dl-load.c (_dl_init_paths): Compute number of components in
+ the expanded path string.
+
+2017-12-14 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #22606]
+ CVE-2017-1000408
+ * elf/dl-load.c (system_dirs): Update comment.
+ (nsystem_dirs_len): Use array_length.
+ (_dl_init_paths): Use nsystem_dirs_len to compute the array size.
+
+2017-12-14 Florian Weimer <fweimer@redhat.com>
+
+ Simplify compiling most of support/ outside of glibc.
+ * support/check_addrinfo.c: Include <string.h>.
+ * support/check_dns_packet.c: Likewise.
+ * support/check_hostent.c: Likewise.
+ * support/support_can_chroot.c: Include <support/xunistd.h>.
+ * support/support_format_addrinfo.c: Include <stdlib.h>
+ * support/support_format_dns_packet.c: Include <stdbool.h>.
+ * support/support_format_hostent.c: Include <stdlib.h>.
+ * support/support_format_netent.c: Likewise.
+ * support/support_write_string.c: Include <support/xunistd.h>.
+ * support/xdlfcn.c: Include <stddef.h>.
+
+2017-12-14 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86_64/fpu/s_cosf.S: Removed.
+
+2017-12-14 Patrick McGehearty <patrick.mcgehearty@oracle.com>
+ Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/sparc/sparc32/sparcv9/multiarch/Makefile
+ (sysdeps_routines): Add memset-niagara7.
+ * sysdeps/sparc/sparc64/multiarch/Makefile (sysdes_rotuines):
+ Likewise.
+ * sysdeps/sparc/sparc32/sparcv9/multiarch/memset-niagara7.S: New
+ file.
+ * sysdeps/sparc/sparc64/multiarch/memset-niagara7.S: Likewise.
+ * sysdeps/sparc/sparc64/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Add __bzero_niagara7 and __memset_niagara7.
+ * sysdeps/sparc/sparc64/multiarch/ifunc-memset.h (IFUNC_SELECTOR):
+ Add niagara7 option.
+ * NEWS: Mention sparc m7 optimized memcpy, mempcpy, memmove, and
+ memset.
+
+ * sysdeps/sparc/sparc32/sparcv9/multiarch/Makefile
+ (sysdeps_routines): Add memcpy-memmove-niagara7 and memmove-ultra1.
+ * sysdeps/sparc/sparc64/multiarch/Makefile (sysdeps_routines):
+ Likewise.
+ * sysdeps/sparc/sparc32/sparcv9/multiarch/memcpy-memmove-niagara7.S:
+ New file.
+ * sysdeps/sparc/sparc32/sparcv9/multiarch/memmove-ultra1.S: Likewise.
+ * sysdeps/sparc/sparc32/sparcv9/multiarch/rtld-memmove.c: Likewise.
+ * sysdeps/sparc/sparc64/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Add __memcpy_niagara7, __mempcpy_niagara7,
+ and __memmove_niagara7.
+ * sysdeps/sparc/sparc64/multiarch/ifunc-memcpy.h (IFUNC_SELECTOR):
+ Add niagara7 option.
+ * sysdeps/sparc/sparc64/multiarch/memmove.c: New file.
+ * sysdeps/sparc/sparc64/multiarch/ifunc-memmove.h: Likewise.
+ * sysdeps/sparc/sparc64/multiarch/memcpy-memmove-niagara7.S: Likewise.
+ * sysdeps/sparc/sparc64/multiarch/memmove-ultra1.S: Likewise.
+ * sysdeps/sparc/sparc64/multiarch/rtld-memmove.c: Likewise.
+
+2017-12-14 Jose E. Marchesi <jose.marchesi@oracle.com>
+
+ * sysdeps/sparc/sparc32/sparcv9/memmove.S: New file.
+ * sysdeps/sparc/sparc32/sparcv9/rtld-memmove.c: Likewise.
+ * sysdeps/sparc/sparc64/memmove.S: Likewise.
+ * sysdeps/sparc/sparc64/rtld-memmove.c: Likewise.
+
+ * sysdeps/sparc/bits/hwcap.h (HWCAP_SPARC_ADP): Defined.
+ * sysdeps/sparc/dl-procinfo.c: Added "adp" to the
+ _dl_sparc_cap_flags array.
+ * sysdeps/sparc/dl-procinfo.h (_DL_HWCAP_COUNT): Increment.
+
+2017-12-13 Siddhesh Poyarekar <siddhesh@sourceware.org>
+
+ * sysdeps/aarch64/strcmp.S (misaligned8): Compare dword at a
+ time whenever possible.
+
+2017-12-12 Carlos O'Donell <carlos@redhat.com>
+
+ * elf/Makefile [$(nss-crypt)$(static-nss-crypt) == yesno]
+ (CFLAGS-tst-linkall-static.c): Undefine USE_CRYPT first.
+
+2017-12-12 Joseph Myers <joseph@codesourcery.com>
+
+ * soft-fp/fmadf4.c: Move to ....
+ * sysdeps/ieee754/soft-fp/s_fma.c: ... here.
+ * soft-fp/fmasf4.c: Move to ....
+ * sysdeps/ieee754/soft-fp/s_fmaf.c: ... here.
+ * soft-fp/fmatf4.c: Move to ....
+ * sysdeps/ieee754/soft-fp/s_fmal.c: ... here.
+ * sysdeps/ieee754/soft-fp/Makefile: New file.
+ * sysdeps/arm/preconfigure.ac: Define with_fp_cond.
+ * sysdeps/arm/preconfigure: Regenerated.
+ * sysdeps/arm/nofpu/Implies: New file.
+ * sysdeps/arm/s_fma.c: Remove file.
+ * sysdeps/arm/s_fmaf.c: Likewise.
+ * sysdeps/m68k/coldfire/nofpu/Implies: New file.
+ * sysdeps/m68k/coldfire/nofpu/s_fma.c: Remove file.
+ * sysdeps/m68k/coldfire/nofpu/s_fmaf.c: Likewise.
+ * sysdeps/microblaze/Implies: Add ieee754/soft-fp.
+ * sysdeps/microblaze/s_fma.c: Remove file.
+ * sysdeps/microblaze/s_fmaf.c: Likewise.
+ * sysdeps/mips/mips32/nofpu/Implies: New file.
+ * sysdeps/mips/mips64/n32/fpu/s_fma.c: Likewise.
+ * sysdeps/mips/mips64/n32/nofpu/Implies: Likewise.
+ * sysdeps/mips/mips64/n64/fpu/s_fma.c: Likewise.
+ * sysdeps/mips/mips64/n64/nofpu/Implies: Likewise.
+ * sysdeps/mips/ieee754/s_fma.c: Remove file.
+ * sysdeps/mips/ieee754/s_fmaf.c: Likewise.
+ * sysdeps/mips/ieee754/s_fmal.c: Update include for move of fmal
+ implementation.
+ * sysdeps/nios2/Implies: Add ieee754/soft-fp.
+ * sysdeps/nios2/s_fma.c: Remove file.
+ * sysdeps/nios2/s_fmaf.c: Likewise.
+ * sysdeps/sh/nofpu/Implies: New file.
+ * sysdeps/sh/s_fma.c: Remove file.
+ * sysdeps/sh/s_fmaf.c: Likewise.
+ * sysdeps/tile/Implies: Add ieee754/soft-fp.
+ * sysdeps/tile/s_fma.c: Remove file.
+ * sysdeps/tile/s_fmaf.c: Likewise.
+
+2017-12-12 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86_64/fpu/multiarch/Makefile (libm-sysdep_routines):
+ Add s_cosf-sse2 and s_cosf-fma.
+ (CFLAGS-s_cosf-fma.c): New.
+ * sysdeps/x86_64/fpu/multiarch/s_cosf-fma.c: New file.
+ * sysdeps/x86_64/fpu/multiarch/s_cosf-sse2.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/s_cosf.c: Likewise.
+
+2017-12-12 Steve Ellcey <sellcey@cavium.com>
+
+ * nscd/nscd.h (init_traced_file): Change strncpy to memcpy.
+
+2017-12-12 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * libio/Makefile (tests): Add tst-bz22415.
+ (tst-bz22415-ENV): New rule.
+ (generated): Add tst-bz22415.mtrace and tst-bz22415.check.
+ (tests-special): Add tst-bz22415-mem.out.
+ ($(objpfx)tst-bz22415-mem.out): New rule.
+ * libio/fileops.c (_IO_new_file_seekoff): Call _IO_free_backup_area
+ in case of a successful seek operation.
+ * libio/wfileops.c (_IO_wfile_seekoff): Likewise.
+ (_IO_wfile_overflow): Call _IO_free_wbackup_area in case a write
+ buffer is required.
+ * libio/tst-bz22415.c: New test.
+
+ * sysdeps/ia64/fpu/libm-test-ulps: Update.
+
+2017-12-12 James Clarke <jrtc27@jrtc27.com>
+
+ * sysdeps/unix/sysv/linux/ia64/ipc_priv.h: New file defining
+ __IPC_64 to 0 to avoid IPC_64 being set.
+
+2017-12-12 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ [BZ #22593]
+ * math/bits/mathcalls.h (nextafter): Remove const.
+ (nexttoward): Likewise.
+
+2017-12-12 Joseph Myers <joseph@codesourcery.com>
+
+ * configure.ac (--with-fp): Remove configure option.
+ (with_fp_cond): New variable.
+ (libc_cv_with_fp): New configure test. Use this variable instead
+ of with_fp.
+ * configure: Regenerated.
+ * config.make.in (with-fp): Use @libc_cv_with_fp@.
+ * manual/install.texi (Configuring and compiling): Remove
+ --without-fp.
+ * INSTALL: Regenerated.
+ * sysdeps/m68k/preconfigure (with_fp_cond): Define for ColdFire.
+ * sysdeps/mips/preconfigure (with_fp_cond): Define.
+ * sysdeps/powerpc/preconfigure (with_fp_cond): Define for 32-bit.
+ * sysdeps/sh/preconfigure (with_fp_cond): Define.
+ * scripts/build-many-glibcs.py (Context.add_all_configs): Do not
+ use --without-fp to configure glibc.
+
+2017-12-12 Rical Jasan <ricaljasan@pacific.net>
+
+ * manual/locale.texi (nl_langinfo): Fix a typo.
+
+2017-12-12 Aurelien Jarno <aurelien@aurel32.net>
+
+ [BZ #22588]
+ * manual/conf.texi (SC_SSIZE_MAX): Rename into _SC_SSIZE_MAX.
+
+2017-12-11 H.J. Lu <hongjiu.lu@intel.com>
+
+ * argp/Makefile (CFLAGS-argp-help.c): Replace = with +=.
+ (CFLAGS-argp-parse.c): Likewise.
+ (CFLAGS-argp-fmtstream.c): Likewise.
+ * crypt/Makefile (CPPFLAGS-sha256-crypt.c): Likewise.
+ (CPPFLAGS-sha512-crypt.c): Likewise.
+ (CPPFLAGS-md5-crypt.c): Likewise.
+ * debug/Makefile (CFLAGS-stack_chk_fail.c): Likewise.
+ (CFLAGS-stack_chk_fail_local.c): Likewise.
+ (CFLAGS-backtrace.c): Likewise.
+ (CFLAGS-sprintf_chk.c): Likewise.
+ (CFLAGS-snprintf_chk.c): Likewise.
+ (CFLAGS-vsprintf_chk.c): Likewise.
+ (CFLAGS-vsnprintf_chk.c): Likewise.
+ (CFLAGS-asprintf_chk.c): Likewise.
+ (CFLAGS-vasprintf_chk.c): Likewise.
+ (CFLAGS-obprintf_chk.c): Likewise.
+ (CFLAGS-dprintf_chk.c): Likewise.
+ (CFLAGS-vdprintf_chk.c): Likewise.
+ (CFLAGS-printf_chk.c): Likewise.
+ (CFLAGS-fprintf_chk.c): Likewise.
+ (CFLAGS-vprintf_chk.c): Likewise.
+ (CFLAGS-vfprintf_chk.c): Likewise.
+ (CFLAGS-gets_chk.c): Likewise.
+ (CFLAGS-fgets_chk.c): Likewise.
+ (CFLAGS-fgets_u_chk.c): Likewise.
+ (CFLAGS-fread_chk.c): Likewise.
+ (CFLAGS-fread_u_chk.c): Likewise.
+ (CFLAGS-swprintf_chk.c): Likewise.
+ (CFLAGS-vswprintf_chk.c): Likewise.
+ (CFLAGS-wprintf_chk.c): Likewise.
+ (CFLAGS-fwprintf_chk.c): Likewise.
+ (CFLAGS-vwprintf_chk.c): Likewise.
+ (CFLAGS-vfwprintf_chk.c): Likewise.
+ (CFLAGS-fgetws_chk.c): Likewise.
+ (CFLAGS-fgetws_u_chk.c): Likewise.
+ (CFLAGS-read_chk.c): Likewise.
+ (CFLAGS-pread_chk.c): Likewise.
+ (CFLAGS-pread64_chk.c): Likewise.
+ (CFLAGS-recv_chk.c): Likewise.
+ (CFLAGS-recvfrom_chk.c): Likewise.
+ (CFLAGS-tst-longjmp_chk.c): Likewise.
+ (CPPFLAGS-tst-longjmp_chk.c): Likewise.
+ (CFLAGS-tst-longjmp_chk2.c): Likewise.
+ (CPPFLAGS-tst-longjmp_chk2.c): Likewise.
+ (CFLAGS-tst-longjmp_chk3.c): Likewise.
+ (CPPFLAGS-tst-longjmp_chk3.c): Likewise.
+ (CFLAGS-tst-chk1.c): Likewise.
+ (CFLAGS-tst-chk2.c): Likewise.
+ (CFLAGS-tst-chk3.c): Likewise.
+ (CFLAGS-tst-chk4.cc): Likewise.
+ (CFLAGS-tst-chk5.cc): Likewise.
+ (CFLAGS-tst-chk6.cc): Likewise.
+ (CFLAGS-tst-lfschk1.c): Likewise.
+ (CFLAGS-tst-lfschk2.c): Likewise.
+ (CFLAGS-tst-lfschk3.c): Likewise.
+ (CFLAGS-tst-lfschk4.cc): Likewise.
+ (CFLAGS-tst-lfschk5.cc): Likewise.
+ (CFLAGS-tst-lfschk6.cc): Likewise.
+ (CFLAGS-tst-ssp-1.c): Likewise.
+ * dirent/Makefile (CFLAGS-scandir.c): Likewise.
+ (CFLAGS-scandir64.c): Likewise.
+ (CFLAGS-scandir-tail.c): Likewise.
+ (CFLAGS-scandir64-tail.c): Likewise.
+ * elf/Makefile (CPPFLAGS-dl-tunables.c): Likewise.
+ (CFLAGS-dl-tunables.c): Likewise.
+ (CFLAGS-dl-runtime.c): Likewise.
+ (CFLAGS-dl-lookup.c): Likewise.
+ (CFLAGS-dl-iterate-phdr.c): Likewise.
+ (CFLAGS-vismain.c): Likewise.
+ (CFLAGS-tst-linkall-static.c): Likewise.
+ (CFLAGS-tst-linkall-static.c): Likewise.
+ (CPPFLAGS-dl-load.c): Likewise.
+ (CFLAGS-ldconfig.c): Likewise.
+ (CFLAGS-dl-cache.c): Likewise.
+ (CFLAGS-cache.c): Likewise.
+ (CFLAGS-rtld.c): Likewise.
+ (CFLAGS-multiload.c): Likewise.
+ (CFLAGS-filtmod1.c): Likewise.
+ (CFLAGS-tst-align.c): Likewise.
+ (CFLAGS-tst-align2.c): Likewise.
+ (CFLAGS-tst-alignmod.c): Likewise.
+ (CFLAGS-tst-alignmod2.c): Likewise.
+ (CPPFLAGS-tst-execstack.c): Likewise.
+ (CFLAGS-tst-ptrguard1-static.c): Likewise.
+ (CFLAGS-tst-latepthreadmod.c): Likewise.
+ * grp/Makefile (CFLAGS-getgrgid_r.c): Likewise.
+ (CFLAGS-getgrnam_r.c): Likewise.
+ (CFLAGS-getgrent_r.c): Likewise.
+ (CFLAGS-getgrent.c): Likewise.
+ (CFLAGS-fgetgrent.c): Likewise.
+ (CFLAGS-fgetgrent_r.c): Likewise.
+ (CFLAGS-putgrent.c): Likewise.
+ (CFLAGS-initgroups.c): Likewise.
+ (CFLAGS-getgrgid.c): Likewise.
+ * gshadow/Makefile (CFLAGS-getsgent_r.c): Likewise.
+ (CFLAGS-getsgent.c): Likewise.
+ (CFLAGS-fgetsgent.c): Likewise.
+ (CFLAGS-fgetsgent_r.c): Likewise.
+ (CFLAGS-putsgent.c): Likewise.
+ (CFLAGS-getsgnam.c): Likewise.
+ (CFLAGS-getsgnam_r.c): Likewise.
+ * iconv/Makefile (CFLAGS-iconv_prog.c): Likewise.
+ (CFLAGS-iconv_charmap.c): Likewise.
+ (CFLAGS-dummy-repertoire.c): Likewise.
+ (CFLAGS-charmap.c): Likewise.
+ (CFLAGS-linereader.c): Likewise.
+ (CFLAGS-simple-hash.c): Likewise.
+ (CFLAGS-gconv_conf.c): Likewise.
+ (CFLAGS-iconvconfig.c): Likewise.
+ * inet/Makefile (CFLAGS-gethstbyad_r.c): Likewise.
+ (CFLAGS-gethstbyad.c): Likewise.
+ (CFLAGS-gethstbynm_r.c): Likewise.
+ (CFLAGS-gethstbynm.c): Likewise.
+ (CFLAGS-gethstbynm2_r.c): Likewise.
+ (CFLAGS-gethstbynm2.c): Likewise.
+ (CFLAGS-gethstent_r.c): Likewise.
+ (CFLAGS-gethstent.c): Likewise.
+ (CFLAGS-rcmd.c): Likewise.
+ (CFLAGS-getnetbynm_r.c): Likewise.
+ (CFLAGS-getnetbynm.c): Likewise.
+ (CFLAGS-getnetbyad_r.c): Likewise.
+ (CFLAGS-getnetbyad.c): Likewise.
+ (CFLAGS-getnetent_r.c): Likewise.
+ (CFLAGS-getnetent.c): Likewise.
+ (CFLAGS-getaliasent_r.c): Likewise.
+ (CFLAGS-getaliasent.c): Likewise.
+ (CFLAGS-getrpcent_r.c): Likewise.
+ (CFLAGS-getrpcent.c): Likewise.
+ (CFLAGS-getservent_r.c): Likewise.
+ (CFLAGS-getservent.c): Likewise.
+ (CFLAGS-getprtent_r.c): Likewise.
+ (CFLAGS-getprtent.c): Likewise.
+ (CFLAGS-either_ntoh.c): Likewise.
+ (CFLAGS-either_hton.c): Likewise.
+ (CFLAGS-getnetgrent.c): Likewise.
+ (CFLAGS-getnetgrent_r.c): Likewise.
+ (CFLAGS-tst-checks-posix.c): Likewise.
+ (CFLAGS-tst-sockaddr.c): Likewise.
+ * intl/Makefile (CFLAGS-tst-gettext.c): Likewise.
+ (CFLAGS-tst-translit.c): Likewise.
+ (CFLAGS-tst-gettext2.c): Likewise.
+ (CFLAGS-tst-codeset.c): Likewise.
+ (CFLAGS-tst-gettext3.c): Likewise.
+ (CFLAGS-tst-gettext4.c): Likewise.
+ (CFLAGS-tst-gettext5.c): Likewise.
+ (CFLAGS-tst-gettext6.c): Likewise.
+ * io/Makefile (CFLAGS-open.c): Likewise.
+ (CFLAGS-open64.c): Likewise.
+ (CFLAGS-creat.c): Likewise.
+ (CFLAGS-creat64.c): Likewise.
+ (CFLAGS-fcntl.c): Likewise.
+ (CFLAGS-poll.c): Likewise.
+ (CFLAGS-ppoll.c): Likewise.
+ (CFLAGS-lockf.c): Likewise.
+ (CFLAGS-statfs.c): Likewise.
+ (CFLAGS-fstatfs.c): Likewise.
+ (CFLAGS-statvfs.c): Likewise.
+ (CFLAGS-fstatvfs.c): Likewise.
+ (CFLAGS-fts.c): Likewise.
+ (CFLAGS-fts64.c): Likewise.
+ (CFLAGS-ftw.c): Likewise.
+ (CFLAGS-ftw64.c): Likewise.
+ (CFLAGS-lockf.c): Likewise.
+ (CFLAGS-posix_fallocate.c): Likewise.
+ (CFLAGS-posix_fallocate64.c): Likewise.
+ (CFLAGS-fallocate.c): Likewise.
+ (CFLAGS-fallocate64.c): Likewise.
+ (CFLAGS-read.c): Likewise.
+ (CFLAGS-write.c): Likewise.
+ (CFLAGS-test-stat.c): Likewise.
+ (CFLAGS-test-lfs.c): Likewise.
+ * libio/Makefile (CFLAGS-fileops.c): Likewise.
+ (CFLAGS-fputc.c): Likewise.
+ (CFLAGS-fputwc.c): Likewise.
+ (CFLAGS-freopen64.c): Likewise.
+ (CFLAGS-freopen.c): Likewise.
+ (CFLAGS-fseek.c): Likewise.
+ (CFLAGS-fseeko64.c): Likewise.
+ (CFLAGS-fseeko.c): Likewise.
+ (CFLAGS-ftello64.c): Likewise.
+ (CFLAGS-ftello.c): Likewise.
+ (CFLAGS-fwide.c): Likewise.
+ (CFLAGS-genops.c): Likewise.
+ (CFLAGS-getc.c): Likewise.
+ (CFLAGS-getchar.c): Likewise.
+ (CFLAGS-getwc.c): Likewise.
+ (CFLAGS-getwchar.c): Likewise.
+ (CFLAGS-iofclose.c): Likewise.
+ (CFLAGS-iofflush.c): Likewise.
+ (CFLAGS-iofgetpos64.c): Likewise.
+ (CFLAGS-iofgetpos.c): Likewise.
+ (CFLAGS-iofgets.c): Likewise.
+ (CFLAGS-iofgetws.c): Likewise.
+ (CFLAGS-iofputs.c): Likewise.
+ (CFLAGS-iofputws.c): Likewise.
+ (CFLAGS-iofread.c): Likewise.
+ (CFLAGS-iofsetpos64.c): Likewise.
+ (CFLAGS-iofsetpos.c): Likewise.
+ (CFLAGS-ioftell.c): Likewise.
+ (CFLAGS-iofwrite.c): Likewise.
+ (CFLAGS-iogetdelim.c): Likewise.
+ (CFLAGS-iogetline.c): Likewise.
+ (CFLAGS-iogets.c): Likewise.
+ (CFLAGS-iogetwline.c): Likewise.
+ (CFLAGS-ioputs.c): Likewise.
+ (CFLAGS-ioseekoff.c): Likewise.
+ (CFLAGS-ioseekpos.c): Likewise.
+ (CFLAGS-iosetbuffer.c): Likewise.
+ (CFLAGS-iosetvbuf.c): Likewise.
+ (CFLAGS-ioungetc.c): Likewise.
+ (CFLAGS-ioungetwc.c): Likewise.
+ (CFLAGS-oldfileops.c): Likewise.
+ (CFLAGS-oldiofclose.c): Likewise.
+ (CFLAGS-oldiofgetpos64.c): Likewise.
+ (CFLAGS-oldiofgetpos.c): Likewise.
+ (CFLAGS-oldiofsetpos64.c): Likewise.
+ (CFLAGS-oldiofsetpos.c): Likewise.
+ (CFLAGS-peekc.c): Likewise.
+ (CFLAGS-putc.c): Likewise.
+ (CFLAGS-putchar.c): Likewise.
+ (CFLAGS-putwc.c): Likewise.
+ (CFLAGS-putwchar.c): Likewise.
+ (CFLAGS-rewind.c): Likewise.
+ (CFLAGS-wfileops.c): Likewise.
+ (CFLAGS-wgenops.c): Likewise.
+ (CFLAGS-oldiofopen.c): Likewise.
+ (CFLAGS-iofopen.c): Likewise.
+ (CFLAGS-iofopen64.c): Likewise.
+ (CFLAGS-oldtmpfile.c): Likewise.
+ (CFLAGS-tst_putwc.c): Likewise.
+ * locale/Makefile (CFLAGS-md5.c): Likewise.
+ (CFLAGS-charmap.c): Likewise.
+ (CFLAGS-locfile.c): Likewise.
+ (CFLAGS-charmap-dir.c): Likewise.
+ * login/Makefile (CFLAGS-grantpt.c): Likewise.
+ (CFLAGS-getpt.c): Likewise.
+ (CFLAGS-pt_chown.c): Likewise.
+ * malloc/Makefile (CFLAGS-mcheck-init.c): Likewise.
+ (CFLAGS-obstack.c): Likewise.
+ * math/Makefile (CFLAGS-test-tgmath3.c): Likewise.
+ (CFLAGS-test-double-vlen4-wrappers.c): Likewise.
+ (CFLAGS-test-double-vlen8-wrappers.c): Likewise.
+ (CFLAGS-test-float-vlen8-wrappers.c): Likewise.
+ (CFLAGS-test-float-vlen16-wrappers.c): Likewise.
+ (CFLAGS-test-tgmath.c): Likewise.
+ (CFLAGS-test-tgmath2.c): Likewise.
+ (CFLAGS-test-tgmath-ret.c): Likewise.
+ (CFLAGS-test-powl.c): Likewise.
+ (CFLAGS-test-snan.c): Likewise.
+ (CFLAGS-test-signgam-finite.c): Likewise.
+ (CFLAGS-test-signgam-finite-c99.c): Likewise.
+ (CFLAGS-test-signgam-finite-c11.c): Likewise.
+ (CFLAGS-test-signgam-uchar.c): Likewise.
+ (CFLAGS-test-signgam-uchar-init.c): Likewise.
+ (CFLAGS-test-signgam-uchar-static.c): Likewise.
+ (CFLAGS-test-signgam-uchar-init-static.c): Likewise.
+ (CFLAGS-test-signgam-uint.c): Likewise.
+ (CFLAGS-test-signgam-uint-init.c): Likewise.
+ (CFLAGS-test-signgam-uint-static.c): Likewise.
+ (CFLAGS-test-signgam-uint-init-static.c): Likewise.
+ (CFLAGS-test-signgam-ullong.c): Likewise.
+ (CFLAGS-test-signgam-ullong-init.c): Likewise.
+ (CFLAGS-test-signgam-ullong-static.c): Likewise.
+ (CFLAGS-test-signgam-ullong-init-static.c): Likewise.
+ (CFLAGS-test-math-cxx11.cc): Likewise.
+ (CFLAGS-test-math-isinff.cc): Likewise.
+ (CFLAGS-test-math-iszero.cc): Likewise.
+ (CFLAGS-test-math-issignaling.cc): Likewise.
+ (CFLAGS-test-math-iscanonical.cc): Likewise.
+ (CFLAGS-test-iszero-excess-precision.c): Likewise.
+ (CFLAGS-test-iseqsig-excess-precision.c): Likewise.
+ (CFLAGS-test-flt-eval-method.c): Likewise.
+ (CFLAGS-test-fe-snans-always-signal.c): Likewise.
+ (CFLAGS-test-finite-macros.c): Likewise.
+ * misc/Makefile (CFLAGS-select.c): Likewise.
+ (CFLAGS-tsearch.c): Likewise.
+ (CFLAGS-lsearch.c): Likewise.
+ (CFLAGS-pselect.c): Likewise.
+ (CFLAGS-readv.c): Likewise.
+ (CFLAGS-writev.c): Likewise.
+ (CFLAGS-preadv.c): Likewise.
+ (CFLAGS-preadv64.c): Likewise.
+ (CFLAGS-pwritev.c): Likewise.
+ (CFLAGS-pwritev64.c): Likewise.
+ (CFLAGS-preadv2.c): Likewise.
+ (CFLAGS-preadv64v2.c): Likewise.
+ (CFLAGS-pwritev2.c): Likewise.
+ (CFLAGS-pwritev64v2.c): Likewise.
+ (CFLAGS-usleep.c): Likewise.
+ (CFLAGS-syslog.c): Likewise.
+ (CFLAGS-error.c): Likewise.
+ (CFLAGS-getpass.c): Likewise.
+ (CFLAGS-mkstemp.c): Likewise.
+ (CFLAGS-mkstemp64.c): Likewise.
+ (CFLAGS-getsysstats.c): Likewise.
+ (CFLAGS-getusershell.c): Likewise.
+ (CFLAGS-err.c): Likewise.
+ (CFLAGS-tst-tsearch.c): Likewise.
+ (CFLAGS-msync.c): Likewise.
+ (CFLAGS-fdatasync.c): Likewise.
+ (CFLAGS-fsync.c): Likewise.
+ * nptl/Makefile (CFLAGS-nptl-init.c): Likewise.
+ (CFLAGS-unwind.c): Likewise.
+ (CFLAGS-unwind-forcedunwind.c): Likewise.
+ (CFLAGS-pthread_cancel.c): Likewise.
+ (CFLAGS-pthread_setcancelstate.c): Likewise.
+ (CFLAGS-pthread_setcanceltype.c): Likewise.
+ (CFLAGS-cancellation.c): Likewise.
+ (CFLAGS-libc-cancellation.c): Likewise.
+ (CFLAGS-pthread_exit.c): Likewise.
+ (CFLAGS-forward.c): Likewise.
+ (CFLAGS-pthread_testcancel.c): Likewise.
+ (CFLAGS-pthread_join.c): Likewise.
+ (CFLAGS-pthread_timedjoin.c): Likewise.
+ (CFLAGS-pthread_once.c): Likewise.
+ (CFLAGS-pthread_cond_wait.c): Likewise.
+ (CFLAGS-sem_wait.c): Likewise.
+ (CFLAGS-sem_timedwait.c): Likewise.
+ (CFLAGS-fcntl.c): Likewise.
+ (CFLAGS-lockf.c): Likewise.
+ (CFLAGS-pread.c): Likewise.
+ (CFLAGS-pread64.c): Likewise.
+ (CFLAGS-pwrite.c): Likewise.
+ (CFLAGS-pwrite64.c): Likewise.
+ (CFLAGS-wait.c): Likewise.
+ (CFLAGS-waitpid.c): Likewise.
+ (CFLAGS-sigwait.c): Likewise.
+ (CFLAGS-msgrcv.c): Likewise.
+ (CFLAGS-msgsnd.c): Likewise.
+ (CFLAGS-tcdrain.c): Likewise.
+ (CFLAGS-open.c): Likewise.
+ (CFLAGS-open64.c): Likewise.
+ (CFLAGS-pause.c): Likewise.
+ (CFLAGS-recv.c): Likewise.
+ (CFLAGS-send.c): Likewise.
+ (CFLAGS-accept.c): Likewise.
+ (CFLAGS-sendto.c): Likewise.
+ (CFLAGS-connect.c): Likewise.
+ (CFLAGS-recvfrom.c): Likewise.
+ (CFLAGS-recvmsg.c): Likewise.
+ (CFLAGS-sendmsg.c): Likewise.
+ (CFLAGS-close.c): Likewise.
+ (CFLAGS-read.c): Likewise.
+ (CFLAGS-write.c): Likewise.
+ (CFLAGS-nanosleep.c): Likewise.
+ (CFLAGS-sigsuspend.c): Likewise.
+ (CFLAGS-msync.c): Likewise.
+ (CFLAGS-fdatasync.c): Likewise.
+ (CFLAGS-fsync.c): Likewise.
+ (CFLAGS-pt-system.c): Likewise.
+ (CFLAGS-tst-cleanup2.c): Likewise.
+ (CFLAGS-tst-cleanupx2.c): Likewise.
+ (CFLAGS-flockfile.c): Likewise.
+ (CFLAGS-ftrylockfile.c): Likewise.
+ (CFLAGS-funlockfile.c): Likewise.
+ (CFLAGS-tst-initializers1.c): Likewise.
+ (CFLAGS-tst-initializers1-c89.c): Likewise.
+ (CFLAGS-tst-initializers1-c99.c): Likewise.
+ (CFLAGS-tst-initializers1-c11.c): Likewise.
+ (CFLAGS-tst-initializers1-gnu89.c): Likewise.
+ (CFLAGS-tst-initializers1-gnu99.c): Likewise.
+ (CFLAGS-tst-initializers1-gnu11.c): Likewise.
+ * nscd/Makefile (CFLAGS-nscd_getpw_r.c): Likewise.
+ (CFLAGS-nscd_getgr_r.c): Likewise.
+ (CFLAGS-nscd_gethst_r.c): Likewise.
+ (CFLAGS-nscd_getai.c): Likewise.
+ (CFLAGS-nscd_initgroups.c): Likewise.
+ * posix/Makefile (CFLAGS-getaddrinfo.c): Likewise.
+ (CFLAGS-pause.c): Likewise.
+ (CFLAGS-pread.c): Likewise.
+ (CFLAGS-pread64.c): Likewise.
+ (CFLAGS-pwrite.c): Likewise.
+ (CFLAGS-pwrite64.c): Likewise.
+ (CFLAGS-sleep.c): Likewise.
+ (CFLAGS-wait.c): Likewise.
+ (CFLAGS-waitid.c): Likewise.
+ (CFLAGS-waitpid.c): Likewise.
+ (CFLAGS-getopt.c): Likewise.
+ (CFLAGS-wordexp.c): Likewise.
+ (CFLAGS-sysconf.c): Likewise.
+ (CFLAGS-pathconf.c): Likewise.
+ (CFLAGS-fpathconf.c): Likewise.
+ (CFLAGS-spawn.c): Likewise.
+ (CFLAGS-spawnp.c): Likewise.
+ (CFLAGS-spawni.c): Likewise.
+ (CFLAGS-glob.c): Likewise.
+ (CFLAGS-glob64.c): Likewise.
+ (CFLAGS-getconf.c): Likewise.
+ (CFLAGS-nanosleep.c): Likewise.
+ * pwd/Makefile (CFLAGS-getpwent_r.c): Likewise.
+ (CFLAGS-getpwent.c): Likewise.
+ (CFLAGS-getpw.c): Likewise.
+ (CFLAGS-fgetpwent_r.c): Likewise.
+ * resolv/Makefile (CFLAGS-res_hconf.c): Likewise.
+ * rt/Makefile (CFLAGS-aio_suspend.c): Likewise.
+ (CFLAGS-mq_timedreceive.c): Likewise.
+ (CFLAGS-mq_timedsend.c): Likewise.
+ (CFLAGS-clock_nanosleep.c): Likewise.
+ (CFLAGS-librt-cancellation.c): Likewise.
+ * shadow/Makefile (CFLAGS-getspent_r.c): Likewise.
+ (CFLAGS-getspent.c): Likewise.
+ (CFLAGS-fgetspent.c): Likewise.
+ (CFLAGS-fgetspent_r.c): Likewise.
+ (CFLAGS-putspent.c): Likewise.
+ (CFLAGS-getspnam.c): Likewise.
+ (CFLAGS-getspnam_r.c): Likewise.
+ * signal/Makefile (CFLAGS-sigpause.c): Likewise.
+ (CFLAGS-sigsuspend.c): Likewise.
+ (CFLAGS-sigtimedwait.c): Likewise.
+ (CFLAGS-sigwait.c): Likewise.
+ (CFLAGS-sigwaitinfo.c): Likewise.
+ (CFLAGS-sigreturn.c): Likewise.
+ * stdio-common/Makefile (CFLAGS-vfprintf.c): Likewise.
+ (CFLAGS-vfwprintf.c): Likewise.
+ (CFLAGS-tmpfile.c): Likewise.
+ (CFLAGS-tmpfile64.c): Likewise.
+ (CFLAGS-tempname.c): Likewise.
+ (CFLAGS-psignal.c): Likewise.
+ (CFLAGS-vprintf.c): Likewise.
+ (CFLAGS-cuserid.c): Likewise.
+ (CFLAGS-errlist.c): Likewise.
+ (CFLAGS-siglist.c): Likewise.
+ (CFLAGS-scanf15.c): Likewise.
+ (CFLAGS-scanf17.c): Likewise.
+ * stdlib/Makefile (CFLAGS-bsearch.c): Likewise.
+ (CFLAGS-msort.c): Likewise.
+ (CFLAGS-qsort.c): Likewise.
+ (CFLAGS-system.c): Likewise.
+ (CFLAGS-fmtmsg.c): Likewise.
+ (CFLAGS-strfmon.c): Likewise.
+ (CFLAGS-strfmon_l.c): Likewise.
+ (CFLAGS-strfromd.c): Likewise.
+ (CFLAGS-strfromf.c): Likewise.
+ (CFLAGS-strfroml.c): Likewise.
+ (CFLAGS-tst-bsearch.c): Likewise.
+ (CFLAGS-tst-qsort.c): Likewise.
+ (CFLAGS-tst-makecontext2.c): Likewise.
+ * sunrpc/Makefile (CFLAGS-xbootparam_prot.c): Likewise.
+ (CFLAGS-xnlm_prot.c): Likewise.
+ (CFLAGS-xrstat.c): Likewise.
+ (CFLAGS-xyppasswd.c): Likewise.
+ (CFLAGS-xklm_prot.c): Likewise.
+ (CFLAGS-xrex.c): Likewise.
+ (CFLAGS-xsm_inter.c): Likewise.
+ (CFLAGS-xmount.c): Likewise.
+ (CFLAGS-xrusers.c): Likewise.
+ (CFLAGS-xspray.c): Likewise.
+ (CFLAGS-xnfs_prot.c): Likewise.
+ (CFLAGS-xrquota.c): Likewise.
+ (CFLAGS-xkey_prot.c): Likewise.
+ (CFLAGS-auth_unix.c): Likewise.
+ (CFLAGS-key_call.c): Likewise.
+ (CFLAGS-pmap_rmt.c): Likewise.
+ (CFLAGS-clnt_perr.c): Likewise.
+ (CFLAGS-openchild.c): Likewise.
+ * sysvipc/Makefile (CFLAGS-msgrcv.c): Likewise.
+ (CFLAGS-msgsnd.c): Likewise.
+ * termios/Makefile (CFLAGS-tcdrain.c): Likewise.
+ * time/Makefile (CFLAGS-tzfile.c): Likewise.
+ (CFLAGS-tzset.c): Likewise.
+ (CFLAGS-getdate.c): Likewise.
+ (CFLAGS-test_time.c): Likewise.
+ (CPPFLAGS-tst-tzname.c): Likewise.
+ * timezone/Makefile (CFLAGS-zdump.c): Likewise.
+ (CFLAGS-zic.c): Likewise.
+ * wcsmbs/Makefile (CFLAGS-wcwidth.c): Likewise.
+ (CFLAGS-wcswidth.c): Likewise.
+ (CFLAGS-wcstol.c): Likewise.
+ (CFLAGS-wcstoul.c): Likewise.
+ (CFLAGS-wcstoll.c): Likewise.
+ (CFLAGS-wcstoull.c): Likewise.
+ (CFLAGS-wcstod.c): Likewise.
+ (CFLAGS-wcstold.c): Likewise.
+ (CFLAGS-wcstof128.c): Likewise.
+ (CFLAGS-wcstof.c): Likewise.
+ (CFLAGS-wcstol_l.c): Likewise.
+ (CFLAGS-wcstoul_l.c): Likewise.
+ (CFLAGS-wcstoll_l.c): Likewise.
+ (CFLAGS-wcstoull_l.c): Likewise.
+ (CFLAGS-wcstod_l.c): Likewise.
+ (CFLAGS-wcstold_l.c): Likewise.
+ (CFLAGS-wcstof128_l.c): Likewise.
+ (CFLAGS-wcstof_l.c): Likewise.
+ (CPPFLAGS-tst-wchar-h.c): Likewise.
+ (CPPFLAGS-wcstold_l.c): Likewise.
+
+2017-12-11 Paul A. Clarke <pc@us.ibm.com>
+
+ * sysdeps/ieee754/flt-32/s_cosf.c: New implementation.
+
+2017-12-11 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
+ Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
+
+ * manual/tunables.texi (Hardware Capability Tunables): Document
+ glibc.tune.cached_memopt.
+ * sysdeps/powerpc/cpu-features.c: New file.
+ * sysdeps/powerpc/cpu-features.h: New file.
+ * sysdeps/powerpc/dl-procinfo.c [!IS_IN(ldconfig)]: Add
+ _dl_powerpc_cpu_features.
+ * sysdeps/powerpc/dl-tunables.list: New file.
+ * sysdeps/powerpc/ldsodefs.h: Include cpu-features.h.
+ * sysdeps/powerpc/powerpc32/power4/multiarch/init-arch.h
+ (INIT_ARCH): Initialize use_aligned_memopt.
+ * sysdeps/powerpc/powerpc64/dl-machine.h [defined(SHARED &&
+ IS_IN(rtld))]: Restrict dl_platform_init availability and
+ initialize CPU features used by tunables.
+ * sysdeps/powerpc/powerpc64/multiarch/Makefile (sysdep_routines):
+ Add memcpy-power8-cached.
+ * sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c: Add
+ __memcpy_power8_cached.
+ * sysdeps/powerpc/powerpc64/multiarch/memcpy.c: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/memcpy-power8-cached.S:
+ New file.
+
+2017-12-11 H.J. Lu <hongjiu.lu@intel.com>
+
+ * string/Makefile (CFLAGS-inl-tester.c): Replace = with +=.
+ (CFLAGS-noinl-tester.c): Likewise.
+ (CFLAGS-tst-strlen.c): Likewise.
+ (CFLAGS-stratcliff.c): Likewise.
+ (CFLAGS-test-ffs.c): Likewise.
+ (CFLAGS-tst-inlcall.c): Likewise.
+ (CFLAGS-tst-xbzero-opt.c): Likewise.
+ (CFLAGS-memcpy.c): Likewise.
+ (CFLAGS-wordcopy.c): Likewise.
+
+2017-12-11 Stefan Liebler <stli@linux.vnet.ibm.com>
+
+ * sysdeps/s390/s390-64/dl-trampoline.h (_dl_runtime_resolve):
+ Store r15 on stack and add cfi rule.
+ * sysdeps/s390/s390-32/dl-trampoline.h (_dl_runtime_resolve):
+ Likewise.
+
+2017-12-10 Aurelien Jarno <aurelien@aurel32.net>
+
+ [BZ #22577]
+ * elf/rtld.c (init_tls): Add missing new line to the _dl_fatal_printf
+ call.
+
+2017-12-07 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86_64/fpu/multiarch/Makefile (libm-sysdep_routines):
+ Add s_sinf-sse2 and s_sinf-fma.
+ (CFLAGS-s_sinf-fma.c): New.
+ * sysdeps/x86_64/fpu/multiarch/s_sinf-fma.c: New file.
+ * sysdeps/x86_64/fpu/multiarch/s_sinf-sse2.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/s_sinf.c: Likewise.
+
+2017-12-07 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86_64/fpu/s_sinf.S: Removed.
+
+2017-12-07 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #22568]
+ * math/s_ctan_template.c (M_DECL_FUNC (__ctan)): Set imaginary
+ part of result to imaginary part of argument if it is zero and the
+ real part of the argument is not finite.
+ * math/s_ctanh_template.c (M_DECL_FUNC (__ctanh)): Set real part
+ of result to real part of argument if it is zero and the imaginary
+ part of the argument is not finite.
+
+2017-12-07 Mike FABIAN <mfabian@redhat.com>
+
+ [BZ #22524]
+ * localedata/Makefile: Add lt_LT.UTF-8 to test-input
+ and to the list of locales to be built for testing.
+ * localedata/lt_LT.UTF-8.in: New file for testing the collation.
+ * localedata/locales/lt_LT (LC_COLLATE): Use “copy "iso14651_t1"â€
+ and build the collation rules upon that.
+
+2017-12-07 Joseph Myers <joseph@codesourcery.com>
+
+ * bits/floatn-common.h (__HAVE_FLOAT32): Define to 1.
+ * manual/math.texi (Mathematics): Document support for _Float32.
+ * math/Makefile (test-types): Add float32.
+ * math/Versions (GLIBC_2.27): Add _Float32 functions.
+ * stdlib/Versions (GLIBC_2.27): Likewise.
+ * wcsmbs/Versions (GLIBC_2.27): Likewise.
+ * sysdeps/unix/sysv/linux/aarch64/libc.abilist: Update.
+ * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/arm/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/hppa/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/i386/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/ia64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/microblaze/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/nios2/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist:
+ Likewise.
+
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sh/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
+ * sysdeps/i386/fpu/libm-test-ulps: Likewise.
+ * sysdeps/i386/i686/fpu/multiarch/libm-test-ulps: Likewise.
+
+2017-12-06 Joseph Myers <joseph@codesourcery.com>
+
+ * stdlib/strtof.c: Include <bits/floatn.h>
+ [__HAVE_FLOAT32 && !__HAVE_DISTINCT_FLOAT32] (strtof32): Define
+ and later undefine as macro. Define as weak alias if
+ [!USE_WIDE_CHAR].
+ [__HAVE_FLOAT32 && !__HAVE_DISTINCT_FLOAT32] (wcstof32): Define
+ and later undefine as macro. Define as weak alias if
+ [USE_WIDE_CHAR].
+ * stdlib/strtof_l.c: Include <bits/floatn.h>
+ [__HAVE_FLOAT32 && !__HAVE_DISTINCT_FLOAT32] (strtof32_l): Define
+ and later undefine as macro. Define as weak alias if
+ [!USE_WIDE_CHAR].
+ [__HAVE_FLOAT32 && !__HAVE_DISTINCT_FLOAT32] (wcstof32_l): Define
+ and later undefine as macro. Define as weak alias if
+ [USE_WIDE_CHAR].
+
+ * stdlib/strfromf.c: Include <bits/floatn.h>.
+ [__HAVE_FLOAT32 && !__HAVE_DISTINCT_FLOAT32] (strfromf32): Define
+ and later undefine as macro and define as weak alias.
+
+ * math/test-float32.h: New file.
+
+ * sysdeps/generic/libm-alias-float.h: Include <bits/floatn.h>.
+ [__HAVE_FLOAT32 && !__HAVE_DISTINCT_FLOAT32]
+ (libm_alias_float_other_r): Create f32 alias.
+ (libm_alias_float_r): Use semicolon before call to
+ libm_alias_float_other_r.
+
+ * sysdeps/ia64/fpu/e_exp2f.S (__exp2f): Use exp2 not __exp2 as
+ second argument to libm_alias_float_other.
+ * sysdeps/ia64/fpu/e_log2f.S (__log2f): Use log2 not __log2 as
+ second argument to libm_alias_float_other.
+ * sysdeps/ia64/fpu/e_powf.S (__powf): Use pow not __pow as second
+ argument to libm_alias_float_other.
+
+ [BZ #22561]
+ * math/s_cacosh_template.c (M_DECL_FUNC (__cacosh)): Use pi/2 for
+ real part of result for argument 0 + i * NaN.
+ * math/libm-test-cacosh.inc (cacosh_test_data): Update expected
+ results for tests of 0 + i * NaN.
+
+2017-12-06 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/alpha/fpu/libm-test-ulps: Update.
+
+2017-12-06 David S. Miller <davem@davemloft.net>
+
+ * sysdeps/sparc/fpu/libm-test-ulps: Update
+ exp_{downward,towardzero,upward} ulps.
+
+2017-12-06 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/ieee754/ldbl-96/e_j1l.c (qone): Don't make local
+ variables static.
+
+ * sysdeps/ieee754/ldbl-128/e_j0l.c (Y0_2N): Make const.
+ (Y0_2D): Likewise.
+ * sysdeps/ieee754/ldbl-128/e_j1l.c (Y0_2N): Likewise.
+ (Y0_2D): Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_j0l.c (Y0_2N): Likewise.
+ (Y0_2D): Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_j1l.c (Y0_2N): Likewise.
+ (Y0_2D): Likewise.
+
+2017-12-06 Mike FABIAN <mfabian@redhat.com>
+
+ [BZ #22515]
+ * localedata/Makefile: Add hsb_DE.UTF-8 to test-input
+ and to the list of locales to be built for testing.
+ * localedata/hsb_DE.UTF-8.in: New file for testing the collation.
+ * localedata/locales/hsb_DE (LC_COLLATE): Use “copy "iso14651_t1"â€
+ and build the collation rules upon that.
+
+2017-12-06 Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>
+
+ * NEWS: Add sinf to list of optimized functions.
+
+2017-12-06 Joseph Myers <joseph@codesourcery.com>
+
+ * bits/floatn-common.h (__HAVE_FLOAT64): Define to 1.
+ (__HAVE_FLOAT32X): Likewise.
+ * manual/math.texi (Mathematics): Document support for _Float64
+ and _Float32x.
+ * math/Makefile (test-types): Add float64 and float32x.
+ * math/Versions (GLIBC_2.27): Add _Float64 and _Float32x
+ functions.
+ * stdlib/Versions (GLIBC_2.27): Likewise.
+ * wcsmbs/Versions (GLIBC_2.27): Likewise.
+ * sysdeps/unix/sysv/linux/aarch64/libc.abilist: Update.
+ * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/arm/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/hppa/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/i386/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/ia64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/microblaze/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/nios2/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sh/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
+ * sysdeps/i386/fpu/libm-test-ulps: Likewise.
+ * sysdeps/i386/i686/fpu/multiarch/libm-test-ulps: Likewise.
+
+2017-12-05 Joseph Myers <joseph@codesourcery.com>
+
+ * bits/floatn-common.h: Include <bits/long-double.h>.
+ [__HAVE_FLOAT64 && (!__GNUC_PREREQ (7, 0) || defined __cplusplus)
+ && __NO_LONG_DOUBLE_MATH] (__f64): Use suffix 'l'.
+ [__HAVE_FLOAT64 && (!__GNUC_PREREQ (7, 0) || defined __cplusplus)
+ && __NO_LONG_DOUBLE_MATH] (__CFLOAT64): Use _Complex long double.
+ [__HAVE_FLOAT64 && (!__GNUC_PREREQ (7, 0) || defined __cplusplus)
+ && __NO_LONG_DOUBLE_MATH] (_Float64): Use long double.
+ [__HAVE_FLOAT64 && !__GNUC_PREREQ (7, 0) && __NO_LONG_DOUBLE_MATH]
+ (__builtin_huge_valf64): Use __builtin_huge_vall.
+ [__HAVE_FLOAT64 && !__GNUC_PREREQ (7, 0) && __NO_LONG_DOUBLE_MATH]
+ (__builtin_inff64): Use __builtin_infl.
+ [__HAVE_FLOAT64 && !__GNUC_PREREQ (7, 0) && __NO_LONG_DOUBLE_MATH]
+ (__builtin_nanf64): Use __builtin_nanl.
+ [__HAVE_FLOAT64 && !__GNUC_PREREQ (7, 0) && __NO_LONG_DOUBLE_MATH]
+ (__builtin_nansf64): Use __builtin_nansl.
+
+2017-12-05 Rogerio A. Cardoso <rcardoso@linux.vnet.ibm.com>
+ Paul E. Murphy <murphyp@linux.vnet.ibm.com>
+ Carlos O'Donell <carlos@redhat.com>
+
+ * elf/dl-tunables.list: Add elision parameters.
+ * manual/tunables.texi: Add entries about elision tunable.
+ * sysdeps/unix/sysv/linux/powerpc/elision-conf.c:
+ Add callback functions to dynamically enable/disable elision.
+ Add multiple callbacks functions to set elision parameters.
+ Deleted __libc_enable_secure check.
+ * sysdeps/unix/sysv/linux/s390/elision-conf.c: Likewise.
+ * sysdeps/unix/sysv/linux/x86/elision-conf.c: Likewise.
+ * configure: Regenerated.
+ * configure.ac: Option enable_lock_elision was deleted.
+ * config.h.in: ENABLE_LOCK_ELISION flag was deleted.
+ * config.make.in: Remove references to enable_lock_elision.
+ * manual/install.texi: Elision configure option was removed.
+ * INSTALL: Regenerated to remove enable_lock_elision.
+ * nptl/Makefile:
+ Disable elision so it can verify error case for destroying a mutex.
+ * sysdeps/powerpc/nptl/elide.h:
+ Cleanup ENABLE_LOCK_ELISION check.
+ Deleted macros for the case when ENABLE_LOCK_ELISION was not defined.
+ * sysdeps/s390/configure: Regenerated.
+ * sysdeps/s390/configure.ac: Remove references to enable_lock_elision..
+ * nptl/tst-mutex8.c:
+ Deleted all #ifndef ENABLE_LOCK_ELISION from the test.
+ * sysdeps/powerpc/powerpc32/sysdep.h:
+ Deleted all ENABLE_LOCK_ELISION checks.
+ * sysdeps/powerpc/powerpc64/sysdep.h: Likewise.
+ * sysdeps/powerpc/sysdep.h: Likewise.
+ * sysdeps/s390/nptl/bits/pthreadtypes-arch.h: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/force-elision.h: Likewise.
+ * sysdeps/unix/sysv/linux/s390/elision-conf.h: Likewise.
+ * sysdeps/unix/sysv/linux/s390/force-elision.h: Likewise.
+ * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
+ * sysdeps/unix/sysv/linux/s390/Makefile: Remove references to
+ enable-lock-elision.
+
+2017-12-05 Joseph Myers <joseph@codesourcery.com>
+
+ * stdlib/strtod.c: Include <bits/floatn.h>.
+ (BUILD_DOUBLE): New macro.
+ [BUILD_DOUBLE && __HAVE_FLOAT64 && !__HAVE_DISTINCT_FLOAT64]
+ (strtof64): Define and later undefine as macro. Define as weak
+ alias if [!USE_WIDE_CHAR].
+ [BUILD_DOUBLE && __HAVE_FLOAT64 && !__HAVE_DISTINCT_FLOAT64]
+ (wcstof64): Define and later undefine as macro. Define as weak
+ alias if [USE_WIDE_CHAR].
+ [BUILD_DOUBLE && __HAVE_FLOAT32X && !__HAVE_DISTINCT_FLOAT32X]
+ (strtof32x): Define and later undefine as macro. Define as weak
+ alias if [!USE_WIDE_CHAR].
+ [BUILD_DOUBLE && __HAVE_FLOAT32X && !__HAVE_DISTINCT_FLOAT32X]
+ (wcstof32x): Define and later undefine as macro. Define as weak
+ alias if [USE_WIDE_CHAR].
+ * stdlib/strtod_l.c: Include <bits/floatn.h>.
+ (BUILD_DOUBLE): New macro.
+ [BUILD_DOUBLE && __HAVE_FLOAT64 && !__HAVE_DISTINCT_FLOAT64]
+ (strtof64_l): Define and later undefine as macro. Define as weak
+ alias if [!USE_WIDE_CHAR].
+ [BUILD_DOUBLE && __HAVE_FLOAT64 && !__HAVE_DISTINCT_FLOAT64]
+ (wcstof64_l): Define and later undefine as macro. Define as weak
+ alias if [USE_WIDE_CHAR].
+ [BUILD_DOUBLE && __HAVE_FLOAT32X && !__HAVE_DISTINCT_FLOAT32X]
+ (strtof32x_l): Define and later undefine as macro. Define as weak
+ alias if [!USE_WIDE_CHAR].
+ [BUILD_DOUBLE && __HAVE_FLOAT32X && !__HAVE_DISTINCT_FLOAT32X]
+ (wcstof32x_l): Define and later undefine as macro. Define as weak
+ alias if [USE_WIDE_CHAR].
+
+2017-12-05 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/ieee754/flt-32/s_sinf.c (ones): Define as double.
+ (reduced): Use ones as double instead of integer.
+
+2017-12-05 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * sysdeps/ieee754/flt-32/s_sinf.c (sinf): Use isless.
+
+2017-12-05 Joseph Myers <joseph@codesourcery.com>
+
+ * stdlib/strfromd.c: Include <bits/floatn.h>.
+ [__HAVE_FLOAT64 && !__HAVE_DISTINCT_FLOAT64] (strfromf64): Define
+ and later undefine as macro and define as weak alias.
+ [__HAVE_FLOAT32X && !__HAVE_DISTINCT_FLOAT32X] (strfromf32x):
+ Likewise.
+
+ * math/test-float32x.h: New file.
+ * math/test-float64.h: Likewise.
+
+ * sysdeps/generic/libm-alias-double.h: Include <bits/floatn.h>.
+ (libm_alias_double_other_r_f64): New macro.
+ (libm_alias_double_other_r_f32x): Likewise.
+ (libm_alias_double_other_r): Use libm_alias_double_other_r_f64 and
+ libm_alias_double_other_r_f32x.
+ (libm_alias_double_r): Use semicolon before call to
+ libm_alias_double_other_r.
+ * sysdeps/ieee754/ldbl-opt/libm-alias-double.h: Include
+ <bits/floatn.h>.
+ (libm_alias_double_other_r_f64): New macro.
+ (libm_alias_double_other_r_f32x): Likewise.
+ (libm_alias_double_other_r): Use libm_alias_double_other_r_f64 and
+ libm_alias_double_other_r_f32x.
+
+2017-12-05 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/ieee754/flt-32/s_sinf.c (reduced): Replace long with
+ int.
+ (SINF_FUNC): Likewise. Replace floor with simple casts.
+
+2017-12-05 Mike FABIAN <mfabian@redhat.com>
+
+ [BZ #22517]
+ * localedata/Makefile: Add et_EE.UTF-8 to test-input
+ and to the list of locales to be built for testing.
+ * localedata/et_EE.UTF-8.in: New file for testing the collation.
+ * localedata/locales/et_EE (LC_COLLATE): Use “copy "iso14651_t1"â€
+ and build the collation rules upon that.
+
+2017-12-05 Chris Metcalf <cmetcalf@mellanox.com>
+
+ * sysdeps/tile/tilegx/string-endian.h (VECOP): Provide working
+ replacements for __insn_xxx builtins for v1cmpeq, v1cmpltu,
+ v1cmpne, v1add, v1shru, v1shl (register and immediate versions).
+ * sysdeps/tile/tilegx/memchr.c (__memchr): Use VECOP function
+ instead of __insn__xxx.
+ * sysdeps/tile/tilegx/rawmemchr.c (__rawmemchr): Likewise.
+ * sysdeps/tile/tilegx/strstr.c (strcasechr): Likewise.
+ * sysdeps/tile/tilegx/strrchr.c (strrchr): Likewise.
+ * sysdeps/tile/tilegx/strlen.c (strlen): Likewise.
+ * sysdeps/tile/tilegx/strchrnul.c (__strchrnul): Likewise.
+ * sysdeps/tile/tilegx/strchr.c (strchr): Likewise.
+
+2017-12-05 Florian Weimer <fweimer@redhat.com>
+
+ Linux: Implement interfaces for memory protection keys
+ * support/Makefile (libsupport-routines): Add xraise, xsigaction,
+ xsignal, xsysconf.
+ * support/xsignal.h (xraise, xsignal, xsigaction): Declare.
+ * support/xunistd.h (xsysconf): Declare.
+ * support/xraise.c: New file.
+ * support/xsigaction.c: Likewise.
+ * support/xsignal.c: Likewise.
+ * support/xsysconf.c: Likewise.
+ * sysdeps/unix/sysv/linux/Makefile [misc] (routines): Add
+ pkey_set, pkey_get, pkey_mprotect.
+ [misc] (tests): Add tst-pkey.
+ (tst-pkey): Link with -lpthread.
+ * sysdeps/unix/sysv/linux/Versions (GLIBC_2.27): Add pkey_alloc,
+ pkey_free, pkey_set, pkey_get, pkey_mprotect.
+ * sysdeps/unix/sysv/linux/bits/mman-linux.h (PKEY_DISABLE_ACCESS)
+ (PKEY_DISABLE_WRITE): Define.
+ (pkey_alloc, pkey_free, pkey_set, pkey_get, pkey_mprotect):
+ Declare.
+ * sysdeps/unix/sysv/linux/bits/siginfo-consts.h (SEGV_BNDERR)
+ (SEGV_PKUERR): Add.
+ * sysdeps/unix/sysv/linux/pkey_get.c: New file.
+ * sysdeps/unix/sysv/linux/pkey_set.c: Likewise.
+ * sysdeps/unix/sysv/linux/pkey_mprotect.c: Likewise.
+ * sysdeps/unix/sysv/linux/syscalls.list (pkey_alloc, pkey_free):
+ Add.
+ * sysdeps/unix/sysv/linux/tst-pkey.c: New file.
+ * sysdeps/unix/sysv/linux/x86/arch-pkey.h: Likewise.
+ * sysdeps/unix/sysv/linux/x86/pkey_get.c: Likewise.
+ * sysdeps/unix/sysv/linux/x86/pkey_set.c: Likewise.
+ * sysdeps/unix/sysv/linux/**.abilist: Update.
+
+2017-12-05 Florian Weimer <fweimer@redhat.com>
+
+ * support/tst-test_compare.c (subprocess): Use long long instead
+ of long argument for consistent type width across 32-bit and
+ 64-bit architectures.
+ (do_test): Adjust expected output.
+
+2017-12-05 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/powerpc/fpu/s_cosf.c: Include <libm-alias-float.h>.
+ (cosf): Define using libm_alias_float.
+ * sysdeps/powerpc/fpu/s_fabs.S: Include <libm-alias-float.h>.
+ (fabsf): Define using libm_alias_float.
+ * sysdeps/powerpc/fpu/s_fmaf.S: Include <libm-alias-float.h>.
+ (fmaf): Define using libm_alias_float.
+ * sysdeps/powerpc/fpu/s_rintf.c: Include <libm-alias-float.h>.
+ (rintf): Define using libm_alias_float.
+ * sysdeps/powerpc/fpu/s_sinf.c: Include <libm-alias-float.h>.
+ (sinf): Define using libm_alias_float.
+ * sysdeps/powerpc/power5+/fpu/s_modff.c: Include
+ <libm-alias-float.h>.
+ (modff): Define using libm_alias_float.
+ * sysdeps/powerpc/power7/fpu/s_logbf.c: Include
+ <libm-alias-float.h>.
+ (logbf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc32/fpu/s_ceilf.S: Include
+ <libm-alias-float.h>.
+ (ceilf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc32/fpu/s_copysign.S: Include
+ <libm-alias-float.h>.
+ (copysignf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc32/fpu/s_floorf.S: Include
+ <libm-alias-float.h>.
+ (floorf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc32/fpu/s_llrintf.c: Include
+ <libm-alias-float.h>.
+ (llrintf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc32/fpu/s_llroundf.c: Include
+ <libm-alias-float.h>.
+ (llroundf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc32/fpu/s_lrint.S: Include
+ <libm-alias-float.h>.
+ (lrintf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc32/fpu/s_lround.S: Include
+ <libm-alias-float.h>.
+ (lroundf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc32/fpu/s_nearbyintf.S: Include
+ <libm-alias-float.h>.
+ (nearbyintf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc32/fpu/s_rintf.S: Include
+ <libm-alias-float.h>.
+ (rintf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc32/fpu/s_roundf.S: Include
+ <libm-alias-float.h>.
+ (roundf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc32/fpu/s_truncf.S: Include
+ <libm-alias-float.h>.
+ (truncf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceilf.c:
+ Include <libm-alias-float.h>.
+ (ceilf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysignf.c:
+ Include <libm-alias-float.h>.
+ (copysignf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floorf.c:
+ Include <libm-alias-float.h>.
+ (floorf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrintf.c:
+ Include <libm-alias-float.h>.
+ (llrintf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llroundf.c:
+ Include <libm-alias-float.h>.
+ (llroundf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbf.c:
+ Include <libm-alias-float.h>.
+ (logbf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrintf.c:
+ Include <libm-alias-float.h>.
+ (lrintf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lroundf.c:
+ Include <libm-alias-float.h>.
+ (lroundf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff.c:
+ Include <libm-alias-float.h>.
+ (modff): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_roundf.c:
+ Include <libm-alias-float.h>.
+ (roundf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_truncf.c:
+ Include <libm-alias-float.h>.
+ (truncf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc32/power4/fpu/s_llrintf.S: Include
+ <libm-alias-float.h>.
+ (llrintf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc32/power4/fpu/s_llround.S: Include
+ <libm-alias-float.h>.
+ (llroundf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc32/power5+/fpu/s_ceilf.S: Include
+ <libm-alias-float.h>.
+ (ceilf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc32/power5+/fpu/s_floorf.S: Include
+ <libm-alias-float.h>.
+ (floorf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc32/power5+/fpu/s_llround.S: Include
+ <libm-alias-float.h>.
+ (llroundf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc32/power5+/fpu/s_lround.S: Include
+ <libm-alias-float.h>.
+ (lroundf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc32/power5+/fpu/s_roundf.S: Include
+ <libm-alias-float.h>.
+ (roundf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc32/power5+/fpu/s_truncf.S: Include
+ <libm-alias-float.h>.
+ (truncf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc32/power6/fpu/s_copysign.S: Include
+ <libm-alias-float.h>.
+ (copysignf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc32/power6/fpu/s_llrintf.S: Include
+ <libm-alias-float.h>.
+ (llrintf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc32/power6/fpu/s_llround.S: Include
+ <libm-alias-float.h>.
+ (llroundf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc32/power6x/fpu/s_lrint.S: Include
+ <libm-alias-float.h>.
+ (lrintf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc32/power6x/fpu/s_lround.S: Include
+ <libm-alias-float.h>.
+ (lroundf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceilf.c: Include
+ <libm-alias-float.h>.
+ (ceilf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysignf.c: Include
+ <libm-alias-float.h>.
+ (copysignf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_cosf.c: Include
+ <libm-alias-float.h>.
+ (cosf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_floorf.c: Include
+ <libm-alias-float.h>.
+ (floorf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrintf.c: Include
+ <libm-alias-float.h>.
+ (llrintf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llroundf.c: Include
+ <libm-alias-float.h>.
+ (llroundf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbf.c: Include
+ <libm-alias-float.h>.
+ (logbf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_modff.c: Include
+ <libm-alias-float.h>.
+ (modff): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_roundf.c: Include
+ <libm-alias-float.h>.
+ (roundf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf.c: Include
+ <libm-alias-float.h>.
+ (sinf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_truncf.c: Include
+ <libm-alias-float.h>.
+ (truncf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc64/fpu/s_ceilf.S: Include
+ <libm-alias-float.h>.
+ (ceilf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc64/fpu/s_copysign.S: Include
+ <libm-alias-float.h>.
+ (copysignf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc64/fpu/s_floorf.S: Include
+ <libm-alias-float.h>.
+ (floorf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc64/fpu/s_llrint.S: Include
+ <libm-alias-float.h>.
+ (llrintf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc64/fpu/s_llroundf.S: Include
+ <libm-alias-float.h>.
+ (llroundf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc64/fpu/s_nearbyintf.S: Include
+ <libm-alias-float.h>.
+ (nearbyintf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc64/fpu/s_rintf.S: Include
+ <libm-alias-float.h>.
+ (rintf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc64/fpu/s_roundf.S: Include
+ <libm-alias-float.h>.
+ (roundf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc64/fpu/s_truncf.S: Include
+ <libm-alias-float.h>.
+ (truncf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc64/power5+/fpu/s_ceilf.S: Include
+ <libm-alias-float.h>.
+ (ceilf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc64/power5+/fpu/s_floorf.S: Include
+ <libm-alias-float.h>.
+ (floorf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc64/power5+/fpu/s_llround.S: Include
+ <libm-alias-float.h>.
+ (llroundf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc64/power5+/fpu/s_roundf.S: Include
+ <libm-alias-float.h>.
+ (roundf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc64/power5+/fpu/s_truncf.S: Include
+ <libm-alias-float.h>.
+ (truncf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc64/power6/fpu/s_copysign.S: Include
+ <libm-alias-float.h>.
+ (copysignf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc64/power6x/fpu/s_llrint.S: Include
+ <libm-alias-float.h>.
+ (llrintf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc64/power6x/fpu/s_llround.S: Include
+ <libm-alias-float.h>.
+ (llroundf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc64/power8/fpu/s_cosf.S: Include
+ <libm-alias-float.h>.
+ (cosf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc64/power8/fpu/s_llrint.S: Include
+ <libm-alias-float.h>.
+ (llrintf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc64/power8/fpu/s_llround.S: Include
+ <libm-alias-float.h>.
+ (llroundf): Define using libm_alias_float.
+ * sysdeps/powerpc/powerpc64/power8/fpu/s_sinf.S: Include
+ <libm-alias-float.h>.
+ (sinf): Define using libm_alias_float.
+
+2017-12-04 Florian Weimer <fweimer@redhat.com>
+
+ * support/check.h (TEST_COMPARE): Define.
+ (support_test_compare_failure): Declare.
+ * support/Makefile (libsupport-routines): Add
+ support_test_compare_failure.
+ (tests): Add tst-test_compare.
+ * support /support_test_compare_failure.c: New file.
+ * support/tst-test_compare.c: Likewise.
+
+2017-12-04 Mike FABIAN <mfabian@redhat.com>
+
+ [BZ #22527]
+ * localedata/locales/tr_TR (LC_COLLATE): Base collation rules
+ on iso14651_t1. A test file localedata/tr_TR.UTF-8.in is already
+ available, this rewrite of the collation rules does reproduce
+ the test file in the same order.
+
+2017-12-04 Mike FABIAN <mfabian@redhat.com>
+
+ [BZ #10580]
+ * localedata/locales/hr_HR (LC_TIME): Use two letters for the
+ digraphs in the month and day names. Using single code points for
+ digraphs is deprecated. While there are dedicated Unicode
+ codepoints, for the digraphs, these are included for backwards
+ compatibility and modern texts use a sequence of Basic Latin
+ characters. See: https://www.unicode.org/faq/ligature_digraph.html
+ This makes the month and day names agree exactly with CLDR now,
+ CLDR does not use the single code points for the digraphs either.
+
+2017-12-04 Chris Metcalf <cmetcalf@mellanox.com>
+
+ * sysdeps/tile/libm-test-ulps: Update ca{cos,sin,tan}{,h} ulps.
+
+2017-12-04 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/ieee754/flt-32/s_sinf.c (SINF_FUNC): Use __floor instead
+ of floor.
+
+2017-12-04 Siddhesh Poyarekar <siddhesh@sourceware.org>
+
+ * sysdeps/aarch64/multiarch/memcpy_generic.S (__GI_memcpy):
+ Define only for libc.so.
+
+2017-12-04 Stefan Liebler <stli@linux.vnet.ibm.com>
+
+ * sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h
+ (INTERNAL_VSYSCALL_CALL, CLOBBER_0, CLOBBER_1, CLOBBER_2,
+ CLOBBER_3, CLOBBER_4, CLOBBER_5, CLOBBER_6,
+ INTERNAL_VSYSCALL_NO_SYSCALL_FALLBACK): Remove.
+ * sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h: Likewise.
+
+2017-12-04 Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>
+
+ [BZ #5997]
+ * sysdeps/ieee754/flt-32/s_sinf.c: New implementation.
+
+2017-12-02 John David Anglin <danglin@gcc.gnu.org>
+
+ [BZ libc/19170]
+ * sysdeps/hppa/crti.S: Declare PREINIT_FUNCTION weak_extern when
+ PREINIT_FUNCTION_WEAK is nonzero.
+ (gmon_initializer): New function. Put procedure label for it in
+ .init_array section.
+ (_init): Don't call PREINIT_FUNCTION.
+ * sysdeps/hppa/crtn.S (__gmon_start__): Remove.
+ * sysdeps/hppa/dl-lookupcfg.h (DL_FIXUP_MAKE_VALUE): Create null fixup
+ value when map argument is null.
+
+ * sysdeps/hppa/dl-fptr.c (elf_machine_resolve): Remove unnecessary
+ depi instruction from PIC pc-relative sequence.
+ * sysdeps/hppa/dl-fptr.h (ELF_MACHINE_LOAD_ADDRESS): Likewise.
+ * sysdeps/hppa/dl-machine.h (elf_machine_dynamic): Likewise.
+ (elf_machine_load_address): Likewise.
+ (elf_machine_runtime_setup): Likewise.
+
+2017-12-02 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/powerpc/power7/fpu/s_logb.c: Include
+ <libm-alias-double.h>.
+ (logb): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc32/fpu/s_copysign.S: Include
+ <libm-alias-double.h>.
+ (copysign): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc32/fpu/s_llrint.c: Include
+ <libm-alias-double.h>.
+ (llrint): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc32/fpu/s_llround.c: Include
+ <libm-alias-double.h>.
+ (llround): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc32/fpu/s_lrint.S: Include
+ <libm-alias-double.h>.
+ (lrint): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc32/fpu/s_lround.S: Include
+ <libm-alias-double.h>.
+ (lround): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysign.c:
+ Include <libm-alias-double.h>.
+ (copysign): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrint.c:
+ Include <libm-alias-double.h>.
+ (llrint): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround.c:
+ Include <libm-alias-double.h>.
+ (llround): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logb.c: Include
+ <libm-alias-double.h>.
+ (logb): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrint.c:
+ Include <libm-alias-double.h>.
+ (lrint): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround.c:
+ Include <libm-alias-double.h>.
+ (lround): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc32/power4/fpu/s_llrint.S: Include
+ <libm-alias-double.h>.
+ (llrint): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc32/power4/fpu/s_llround.S: Include
+ <libm-alias-double.h>.
+ (llround): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc32/power5+/fpu/s_llround.S: Include
+ <libm-alias-double.h>.
+ (llround): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc32/power5+/fpu/s_lround.S: Include
+ <libm-alias-double.h>.
+ (lround): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc32/power6/fpu/s_copysign.S: Include
+ <libm-alias-double.h>.
+ (copysign): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc32/power6/fpu/s_llrint.S: Include
+ <libm-alias-double.h>.
+ (llrint): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc32/power6/fpu/s_llround.S: Include
+ <libm-alias-double.h>.
+ (llround): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc32/power6x/fpu/s_lrint.S: Include
+ <libm-alias-double.h>.
+ (lrint): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc32/power6x/fpu/s_lround.S: Include
+ <libm-alias-double.h>.
+ (lround): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign.c: Include
+ <libm-alias-double.h>.
+ (copysign): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint.c: Include
+ <libm-alias-double.h>.
+ (llrint): Define using libm_alias_double.
+ (lrint): Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround.c: Include
+ <libm-alias-double.h>.
+ (llround): Define using libm_alias_double.
+ (lround): Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_logb.c: Include
+ <libm-alias-double.h>.
+ (logb): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc64/fpu/s_copysign.S: Include
+ <libm-alias-double.h>.
+ (copysign): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc64/fpu/s_llrint.S: Include
+ <libm-alias-double.h>.
+ (llrint): Define using libm_alias_double.
+ (lrint): Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/s_llround.S: Include
+ <libm-alias-double.h>.
+ (llround): Define using libm_alias_double.
+ (lround): Likewise.
+ * sysdeps/powerpc/powerpc64/power5+/fpu/s_llround.S: Include
+ <libm-alias-double.h>.
+ (llround): Define using libm_alias_double.
+ (lround): Likewise.
+ * sysdeps/powerpc/powerpc64/power6/fpu/s_copysign.S: Include
+ <libm-alias-double.h>.
+ (copysign): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc64/power6x/fpu/s_llrint.S: Include
+ <libm-alias-double.h>.
+ (llrint): Define using libm_alias_double.
+ (lrint): Likewise.
+ * sysdeps/powerpc/powerpc64/power6x/fpu/s_llround.S: Include
+ <libm-alias-double.h>.
+ (llround): Define using libm_alias_double.
+ (lround): Likewise.
+ * sysdeps/powerpc/powerpc64/power8/fpu/s_llrint.S: Include
+ <libm-alias-double.h>.
+ (llrint): Define using libm_alias_double.
+ (lrint): Likewise.
+ * sysdeps/powerpc/powerpc64/power8/fpu/s_llround.S: Include
+ <libm-alias-double.h>.
+ (llround): Define using libm_alias_double.
+ (lround): Likewise.
+
+2017-12-01 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround.c
+ [LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)] (lroundl): Do not define
+ compat symbol based on llround.
+
+ * sysdeps/powerpc/power7/fpu/s_logb.c
+ [LONG_DOUBLE_COMPAT (libm, GLIBC_2_0)] (logbl): Define as compat
+ symbol based on __logb, not on logb.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logb.c
+ [LONG_DOUBLE_COMPAT (libm, GLIBC_2_0)] (logbl): Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_logb.c
+ [LONG_DOUBLE_COMPAT (libm, GLIBC_2_0)] (logbl): Likewise.
+
+ * sysdeps/powerpc/fpu/s_rint.c: Include <libm-alias-double.h>.
+ (rint): Define using libm_alias_double.
+ * sysdeps/powerpc/power5+/fpu/s_modf.c: Include
+ <libm-alias-double.h>.
+ (modf): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc32/fpu/s_ceil.S: Include
+ <libm-alias-double.h>.
+ (ceil): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc32/fpu/s_floor.S: Include
+ <libm-alias-double.h>.
+ (floor): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc32/fpu/s_nearbyint.S: Include
+ <libm-alias-double.h>.
+ (nearbyint): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc32/fpu/s_rint.S: Include
+ <libm-alias-double.h>.
+ (rint): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc32/fpu/s_round.S: Include
+ <libm-alias-double.h>.
+ (round): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc32/fpu/s_trunc.S: Include
+ <libm-alias-double.h>.
+ (trunc): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil.c: Include
+ <libm-alias-double.h>.
+ (ceil): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floor.c:
+ Include <libm-alias-double.h>.
+ (floor): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf.c: Include
+ <libm-alias-double.h>.
+ (modf): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_round.c:
+ Include <libm-alias-double.h>.
+ (round): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_trunc.c:
+ Include <libm-alias-double.h>.
+ (trunc): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc32/power5+/fpu/s_ceil.S: Include
+ <libm-alias-double.h>.
+ (ceil): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc32/power5+/fpu/s_floor.S: Include
+ <libm-alias-double.h>.
+ (floor): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc32/power5+/fpu/s_round.S: Include
+ <libm-alias-double.h>.
+ (round): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc32/power5+/fpu/s_trunc.S: Include
+ <libm-alias-double.h>.
+ (trunc): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceil.c: Include
+ <libm-alias-double.h>.
+ (ceil): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_floor.c: Include
+ <libm-alias-double.h>.
+ (floor): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_modf.c: Include
+ <libm-alias-double.h>.
+ (modf): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_round.c: Include
+ <libm-alias-double.h>.
+ (round): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_trunc.c: Include
+ <libm-alias-double.h>.
+ (trunc): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc64/fpu/s_ceil.S: Include
+ <libm-alias-double.h>.
+ (ceil): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc64/fpu/s_floor.S: Include
+ <libm-alias-double.h>.
+ (floor): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc64/fpu/s_nearbyint.S: Include
+ <libm-alias-double.h>.
+ (nearbyint): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc64/fpu/s_rint.S: Include
+ <libm-alias-double.h>.
+ (rint): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc64/fpu/s_round.S: Include
+ <libm-alias-double.h>.
+ (round): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc64/fpu/s_trunc.S: Include
+ <libm-alias-double.h>.
+ (trunc): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc64/power5+/fpu/s_ceil.S: Include
+ <libm-alias-double.h>.
+ (ceil): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc64/power5+/fpu/s_floor.S: Include
+ <libm-alias-double.h>.
+ (floor): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc64/power5+/fpu/s_round.S: Include
+ <libm-alias-double.h>.
+ (round): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc64/power5+/fpu/s_trunc.S: Include
+ <libm-alias-double.h>.
+ (trunc): Define using libm_alias_double.
+
+ * sysdeps/powerpc/fpu/s_fabs.S: Include <libm-alias-double.h>.
+ (fabs): Define using libm_alias_double.
+ * sysdeps/powerpc/fpu/s_fma.S: Include <libm-alias-double.h>.
+ (fma): Define using libm_alias_double.
+ * sysdeps/powerpc/powerpc32/fpu/s_fabs.S: Remove file.
+ * sysdeps/powerpc/powerpc32/fpu/s_fma.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/s_fabs.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/s_fma.S: Likewise.
+
+2017-12-01 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/unix/sysv/linux/x86_64/x32/getcpu.c: Remove file.
+
+ * sysdeps/sparc/sparc-ifunc.h (SPARC_ASM_IFUNC_DFLT,
+ SPARC_ASM_IFUNC1, SPARC_ASM_IFUNC2, SET, SPARC_ASM_VIS2_IFUNC,
+ SPARC_ASM_VIS3_IFUNC, SPARC_ASM_VIS3_VIS2_IFUNC): Remove macros.
+
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysign.c: Fix build
+ due redirect macro.
+
+2017-12-01 Andreas Schwab <schwab@linux-m68k.org>
+
+ * intl/Makefile ($(objpfx)plural.c): Add $(make-target-directory).
+
+2017-12-01 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/sparc/sparc64/cpu_relax.c: New file.
+ * sysdeps/sparc/sparc32/sparcv9/cpu_relax.c: Likewise.
+ * sysdeps/sparc/sparc64/cpu_relax.S: Remove file.
+ * sysdeps/sparc/sparc32/sparcv9/cpu_relax.S: Likewise.
+
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/Makefile
+ (libm-sysdep_routines): Add s_nearbyintf-generic and
+ s_nearbyint-generic.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyint-generic.S:
+ New file.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyint.c: Likewise.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyintf-generic.S:
+ Likewise.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyintf.c:
+ Likewise.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyint.S: Remove
+ file.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyintf.S:
+ Likewise.
+
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/Makefile
+ (libm-sysdep_routines): Add s_rintf-generic and s_rint-generic.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rint-generic.S: New
+ file.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rint.c: Likewise.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rintf-generic.S:
+ Likewise.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rintf.c: Likewise.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rint.S: Remove file.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rintf.S: Likewise.
+
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/Makefile
+ (libm-sysdep_routines): Add s_llrintf-generic and s_llrint-generic.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrint-generic.S: New
+ file.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrint.c: Likewise.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrintf-generic.S:
+ Likewise.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrintf.c: Likewise.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrint.S: Remove file.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrintf.S: Likewise.
+
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/Makefile
+ (libm-sysdep_routines): Add s_fabsf-generic and s_fabs-generic.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabs-generic.S: New
+ file.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabs.c: Likewise.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabsf-generic.S:
+ Likewise.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabsf.c: Likewise.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabs.S: Remove file.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabsf.S: Likewise.
+
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/Makefile
+ (sysdep_calls): New rule.
+ (sysdep_routines): Use sysdep_calls as base.
+ (libm-sysdep_routines): Add generic rule for symbols shared with
+ libc. Add s_copysign-generic and s_copysign-generic objects.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysign-generic.S:
+ New file.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysign.c: Likewise.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysignf-generic.S:
+ Likewise.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysignf.c: Likewise.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysign.S: Remove file.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysignf.S: Likewise.
+
+2017-12-01 Mike FABIAN <mfabian@redhat.com>
+
+ [BZ #22519]
+ * localedata/Makefile: Add is_IS.UTF-8 to test-input and to
+ the list of locales to be built for testing.
+ * localedata/is_IS.UTF-8.in: New file.
+ * localedata/locales/is_IS (LC_COLLATE): Base collation rules
+ on iso14651_t1.
+
+2017-12-01 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/powerpc/powerpc32/e500/nofpu/s_fabsf.S: Include
+ <libm-alias-float.h>.
+ (fabsf): Define using libm_alias_float.
+
+2017-11-30 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/mips/dl-machine.h (elf_machine_reloc): Expand MIN.
+
+2017-11-30 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/m68k/coldfire/fpu/s_fabsf.c: Include
+ <libm-alias-float.h>.
+ (fabsf): Define using libm_alias_float.
+ * sysdeps/m68k/coldfire/fpu/s_lrintf.c: Include
+ <libm-alias-float.h>.
+ (lrintf): Define using libm_alias_float.
+ * sysdeps/m68k/coldfire/fpu/s_rintf.c: Include
+ <libm-alias-float.h>.
+ (rintf): Define using libm_alias_float.
+
+ * sysdeps/m68k/coldfire/fpu/s_fabs.c: Include
+ <libm-alias-double.h>.
+ (fabs): Define using libm_alias_double.
+ * sysdeps/m68k/coldfire/fpu/s_lrint.c: Include
+ <libm-alias-double.h>.
+ (lrint): Define using libm_alias_double.
+ * sysdeps/m68k/coldfire/fpu/s_rint.c: Include
+ <libm-alias-double.h>.
+ (rint): Define using libm_alias_double.
+
+ * sysdeps/m68k/m680x0/fpu/s_atan_template.c: New file.
+ * sysdeps/m68k/m680x0/fpu/s_ceil_template.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_cos_template.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_expm1_template.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_fabs_template.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_floor_template.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_frexp_template.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_lrint_template.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_modf_template.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_nearbyint_template.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_remquo_template.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_rint_template.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_sin_template.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_sincos_template.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_tan_template.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_tanh_template.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_trunc_template.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_atan.c: Reimplement to use
+ s_atan_template.c.
+ * sysdeps/m68k/m680x0/fpu/s_atanf.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_atanl.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_ceil.c: Reimplement to use
+ s_ceil_template.c.
+ * sysdeps/m68k/m680x0/fpu/s_ceilf.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_ceill.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_cos.c: Reimplement to use
+ s_cos_template.c.
+ * sysdeps/m68k/m680x0/fpu/s_cosf.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_cosl.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_expm1.c: Reimplement to use
+ s_expm1_template.c.
+ * sysdeps/m68k/m680x0/fpu/s_expm1f.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_expm1l.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_fabs.c: Reimplement to use
+ s_fabs_template.c.
+ * sysdeps/m68k/m680x0/fpu/s_fabsf.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_fabsl.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_floor.c: Reimplement to use
+ s_floor_template.c.
+ * sysdeps/m68k/m680x0/fpu/s_floorf.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_floorl.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_frexp.c: Reimplement to use
+ s_frexp_template.c.
+ * sysdeps/m68k/m680x0/fpu/s_frexpf.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_lrint.c: Reimplement to use
+ s_lrint_template.c.
+ * sysdeps/m68k/m680x0/fpu/s_lrintf.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_lrintl.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_modf.c: Reimplement to use
+ s_modf_template.c.
+ * sysdeps/m68k/m680x0/fpu/s_modff.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_modfl.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_nearbyint.c: Reimplement to use
+ s_nearbyint_template.c.
+ * sysdeps/m68k/m680x0/fpu/s_nearbyintf.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_nearbyintl.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_remquo.c: Reimplement to use
+ s_remquo_template.c.
+ * sysdeps/m68k/m680x0/fpu/s_remquof.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_remquol.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_rint.c: Reimplement to use
+ s_rint_template.c.
+ * sysdeps/m68k/m680x0/fpu/s_rintf.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_rintl.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_sin.c: Reimplement to use
+ s_sin_template.c.
+ * sysdeps/m68k/m680x0/fpu/s_sinf.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_sinl.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_sincos.c: Reimplement to use
+ s_sincos_template.c.
+ * sysdeps/m68k/m680x0/fpu/s_sincosf.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_sincosl.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_tan.c: Reimplement to use
+ s_tan_template.c.
+ * sysdeps/m68k/m680x0/fpu/s_tanf.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_tanl.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_tanh.c: Reimplement to use
+ s_tanh_template.c.
+ * sysdeps/m68k/m680x0/fpu/s_tanhf.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_tanhl.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_trunc.c: Reimplement to use
+ s_trunc_template.c.
+ * sysdeps/m68k/m680x0/fpu/s_truncf.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_truncl.c: Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_significand.c: Reimplement based on
+ s_atan.c instead of including s_atan.c.
+ * sysdeps/m68k/m680x0/fpu/s_significandf.c: Reimplement based on
+ s_atanf.c instead of including s_atanf.c.
+ * sysdeps/m68k/m680x0/fpu/s_significandl.c: Reimplement based on
+ s_atanl.c instead of including s_atanl.c.
+ * sysdeps/m68k/m680x0/fpu/s_log1p.c: Include s_significand.c
+ instead of s_atan.c.
+ * sysdeps/m68k/m680x0/fpu/s_log1pf.c: Include s_significandf.c
+ instead of s_atanf.c.
+ * sysdeps/m68k/m680x0/fpu/s_log1pl.c: Include s_significandl.c
+ instead of s_atanl.c.
+
+ * scripts/update-copyrights: Do not handle intl/plural.c
+ specially.
+
+2017-11-30 Juro Bystricky <juro.bystricky@linux.intel.com>
+
+ [BZ #22432]
+ * configure.ac (BISON): Require to be present.
+ * configure: Regenerated.
+ * intl/Makefile (generated): Add plural.c.
+ [$(BISON) != no]: Make code unconditional.
+ (plural.c): Change rule to $(objpfx)plural.c.
+ ($(objpfx)plural.o): Depend on $(objpfx)plural.c.
+ * intl/plural.c: Remove.
+ * manual/install.texi (Tools for Compilation): Document bison as
+ required.
+ * INSTALL: Regenerated.
+
+2017-11-30 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/m68k/m680x0/fpu/s_llrint.c: Include
+ <libm-alias-double.h>.
+ (llrint): Define using libm_alias_double.
+ * sysdeps/m68k/m680x0/fpu/s_llrintf.c: Include
+ <libm-alias-float.h>.
+ (llrintf): Define using libm_alias_float.
+ * sysdeps/m68k/m680x0/fpu/s_llrintl.c: Include
+ <libm-alias-ldouble.h>.
+ (llrintl): Define using libm_alias_ldouble.
+
+ * sysdeps/m68k/m680x0/fpu/s_ccosh_template.c (ccosh): Use
+ declare_mgen_alias instead of weak_alias.
+ * sysdeps/m68k/m680x0/fpu/s_cexp_template.c (cexp): Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_csin_template.c (csin): Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_csinh_template.c (csinh): Likewise.
+
+2017-11-30 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/sparc/sparc64/multiarch/Makefile (sysdep_routines):
+ Add add_n-generic.
+ * sysdeps/sparc/sparc64/multiarch/add_n-generic.S: New file.
+ * sysdeps/sparc/sparc64/multiarch/add_n.c: Likewise.
+ * sysdeps/sparc/sparc64/multiarch/add_n.S: Remove file.
+
+ * sysdeps/sparc/sparc64/multiarch/Makefile (sysdep_routines):
+ Add submul_1-generic.
+ * sysdeps/sparc/sparc64/multiarch/submul_1-generic.S: New file.
+ * sysdeps/sparc/sparc64/multiarch/submul_1.c: Likewise.
+ * sysdeps/sparc/sparc64/multiarch/submul_1.S: Remove file.
+
+ * sysdeps/sparc/sparc64/multiarch/Makefile (sysdep_routines):
+ Add addmul_1-generic.
+ * sysdeps/sparc/sparc64/multiarch/addmul_1-generic.S: New file.
+ * sysdeps/sparc/sparc64/multiarch/addmul_1.c: Likewise.
+ * sysdeps/sparc/sparc64/multiarch/addmul_1.S: Remove file.
+
+ * sysdeps/sparc/sparc64/multiarch/Makefile (sysdep_routines):
+ Add sub_n-generic.
+ * sysdeps/sparc/sparc64/multiarch/sub_n-generic.S: New file.
+ * sysdeps/sparc/sparc64/multiarch/sub_n.c: Likewise.
+ * sysdeps/sparc/sparc64/multiarch/sub_n.S: Remove file.
+
+ * sysdeps/sparc/sparc64/multiarch/Makefile (sysdep_routines):
+ Add mul_1-generic.
+ * sysdeps/sparc/sparc64/multiarch/mul_1-generic.S: New file.
+ * sysdeps/sparc/sparc64/multiarch/mul_1.c: Likewise.
+ * sysdeps/sparc/sparc64/multiarch/mul_1.S: Remove file.
+
+2017-11-30 Mike FABIAN <mfabian@redhat.com>
+
+ According to CLDR, collation rules for Serbian and Bosnian
+ should be the same as for Croatian.
+
+ [BZ #22534]
+ * localedata/Makefile: Add sr_RS.UTF-8 and bs_BA.UTF-8 to test-input
+ and to the list of locales to be built for testing.
+ * localedata/bs_BA.UTF-8.in: New file (same as hr_HR.UTF-8.in).
+ * localedata/sr_RS.UTF-8.in: New file (same as hr_HR.UTF-8.in).
+ * localedata/locales/bs_BA (LC_COLLATE): Use “copy "hr_HR"â€.
+ * localedata/locales/sr_RS (LC_COLLATE): Use “copy "hr_HR"â€.
+
+2017-11-30 Mike FABIAN <mfabian@redhat.com>
+
+ * localedata/locales/hr_HR (LC_COLLATE): Fix collation
+ to make test case pass.
+ * localedata/hr_HR.UTF-8.in: Add more test strings.
+
+2017-11-30 Mike FABIAN <mfabian@redhat.com>
+
+ * stdlib/tst-strfmon_l.c: Fix testcase. Needed because of [BZ #10580]
+
+2017-11-30 Dragan Stanojević - Nevidljivi <invisible@hidden-city.net>
+
+ * localedata/Makefile: Add hr_HR.UTF-8 to test-input and to
+ the list of locales to built for testing.
+ * localedata/hr_HR.UTF-8.in: New file.
+
+2017-11-30 Dragan Stanojević - Nevidljivi <invisible@hidden-city.net>
+
+ [BZ #10580]
+ * localedata/locales/hr_HR (LC_COLLATE): Base collation rules on
+ iso14651_t1.
+ * localedata/locales/hr_HR (LC_TIME): Sync month and day names with
+ CLDR (except use ligatures for the digraphs, CLDR does not use
+ the ligatures), add first_workday, some fixes in the date and time
+ formats.
+ * localedata/locales/hr_HR (LC_CTYPE): Add transliteration rules
+ for Ä and Ä‘.
+ * localedata/locales/hr_HR (LC_MONETARY): Change currency_symbol to
+ lower case. p_cs_precedes and n_cs_precedes should be 0 instead of 1.
+ Add int_p_cs_precedes and int_n_cs_precedes.
+ * localedata/locales/hr_HR (LC_NUMERIC): Change thousands_sep to
+ "<U202F>" (NARROW NO-BREAK SPACE) and grouping to 3;3 (Agrees with
+ LC_MONETARY now).
+ * localedata/locales/hr_HR (LC_TELEPHONE): Add tel_dom_fmt.
+ * localedata/locales/hr_HR (LC_NAME): Add name_mr, name_mrs, and
+ name_miss.
+ * localedata/locales/hr_HR (LC_ADDRESS): Add country_post, country_isbn,
+ and lang_lib. Change postal_fmt.
+
+2017-11-30 H.J. Lu <hongjiu.lu@intel.com>
+
+ * debug/longjmp_chk.c: Include <setjmpP.h> instead of
+ <setjmp.h>.
+ * setjmp/longjmp.c: Include <setjmpP.h> instead of <setjmp.h>.
+ (__libc_siglongjmp): Cast &env[0].__saved_mask to "sigset_t *".
+ * setjmp/sigjmp.c: Include <setjmpP.h> instead of <setjmp.h>.
+ (__sigjmp_save): Cast &env[0].__saved_mask to "sigset_t *".
+ * sysdeps/generic/setjmpP.h: New file.
+ * sysdeps/unix/sysv/linux/x86/jmp_buf-ssp.sym: Likewise.
+ * sysdeps/unix/sysv/linux/x86/setjmpP.h: Likewise.
+ * sysdeps/unix/sysv/linux/x86/tst-saved_mask-1.c: Likewise.
+ * sysdeps/unix/sysv/linux/x86/Makefile (gen-as-const-headers):
+ Add jmp_buf-ssp.sym.
+ (tests): Add tst-saved_mask-1.
+
+2017-11-30 Arjun Shankar <arjun@redhat.com>
+
+ [BZ #22375]
+ CVE-2017-17426
+ * malloc/malloc.c (__libc_malloc): Use checked_request2size
+ instead of request2size.
+
+2017-11-30 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrint.S
+ (__lllrint): Remove alias.
+ (lllrint): Likewise.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrintf.S
+ (__lllrintf): Likewise.
+ (lllrintf): Likewise.
+
+ * sysdeps/sparc/sparc32/fpu/s_copysignf.S: Include
+ <libm-alias-float.h>.
+ (copysignf): Define using libm_alias_float.
+ * sysdeps/sparc/sparc32/fpu/s_fabsf.S: Include
+ <libm-alias-float.h>.
+ (fabsf): Define using libm_alias_float.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysignf.S:
+ Include <libm-alias-float.h>.
+ (copysignf): Define using libm_alias_float.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabsf.S: Include
+ <libm-alias-float.h>.
+ (fabsf): Define using libm_alias_float.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf.c: Include
+ <libm-alias-float.h>.
+ (fdimf): Define using libm_alias_float.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fmaf.c: Include
+ <libm-alias-float.h>.
+ (fmaf): Define using libm_alias_float.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrintf.S: Include
+ <libm-alias-float.h>.
+ (llrintf): Define using libm_alias_float.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyintf.S:
+ Include <libm-alias-float.h>.
+ (nearbyintf): Define using libm_alias_float.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rintf.S: Include
+ <libm-alias-float.h>.
+ (rintf): Define using libm_alias_float.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/s_llrintf.S: Include
+ <libm-alias-float.h>.
+ (llrintf): Define using libm_alias_float.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/s_lrintf.S: Include
+ <libm-alias-float.h>.
+ (lrintf): Define using libm_alias_float.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyintf.S: Include
+ <libm-alias-float.h>.
+ (nearbyintf): Define using libm_alias_float.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/s_rintf.S: Include
+ <libm-alias-float.h>.
+ (rintf): Define using libm_alias_float.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf.c: Include
+ <libm-alias-float.h>.
+ (ceilf): Define using libm_alias_float.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_floorf.c: Include
+ <libm-alias-float.h>.
+ (floorf): Define using libm_alias_float.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_fmaf.c: Include
+ <libm-alias-float.h>.
+ (fmaf): Define using libm_alias_float.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_lrintf.c: Include
+ <libm-alias-float.h>.
+ (lrintf): Define using libm_alias_float.
+ (llrintf): Likewise.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyintf.c: Include
+ <libm-alias-float.h>.
+ (nearbyintf): Define using libm_alias_float.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_rintf.c: Include
+ <libm-alias-float.h>.
+ (rintf): Define using libm_alias_float.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_truncf.c: Include
+ <libm-alias-float.h>.
+ (truncf): Define using libm_alias_float.
+ * sysdeps/sparc/sparc64/fpu/s_copysignf.S: Include
+ <libm-alias-float.h>.
+ (copysignf): Define using libm_alias_float.
+ * sysdeps/sparc/sparc64/fpu/s_fabsf.c: Include
+ <libm-alias-float.h>.
+ (fabsf): Define using libm_alias_float.
+ * sysdeps/sparc/sparc64/fpu/s_lrintf.S: Include
+ <libm-alias-float.h>.
+ (lrintf): Define using libm_alias_float.
+ (llrintf): Likewise.
+ * sysdeps/sparc/sparc64/fpu/s_nearbyintf.S: Include
+ <libm-alias-float.h>.
+ (nearbyintf): Define using libm_alias_float.
+ * sysdeps/sparc/sparc64/fpu/s_rintf.S: Include
+ <libm-alias-float.h>.
+ (rintf): Define using libm_alias_float.
+
+2017-11-29 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/sparc/sparc32/fpu/s_copysign.S: Include
+ <libm-alias-double.h>.
+ (copysign): Define using libm_alias_double.
+ * sysdeps/sparc/sparc32/fpu/s_fabs.S: Include
+ <libm-alias-double.h>.
+ (fabs): Define using libm_alias_double.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysign.S:
+ Include <libm-alias-double.h>.
+ (copysign): Define using libm_alias_double.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabs.S: Include
+ <libm-alias-double.h>.
+ (fabs): Define using libm_alias_double.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.c: Include
+ <libm-alias-double.h>.
+ (fdim): Define using libm_alias_double.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fma.c: Include
+ <libm-alias-double.h>.
+ (fma): Define using libm_alias_double.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrint.S: Include
+ <libm-alias-double.h>.
+ (llrint): Define using libm_alias_double.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyint.S:
+ Include <libm-alias-double.h>.
+ (nearbyint): Define using libm_alias_double.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rint.S: Include
+ <libm-alias-double.h>.
+ (rint): Define using libm_alias_double.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/s_fabs.S: Include
+ <libm-alias-double.h>.
+ (fabs): Define using libm_alias_double.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/s_llrint.S: Include
+ <libm-alias-double.h>.
+ (llrint): Define using libm_alias_double.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyint.S: Include
+ <libm-alias-double.h>.
+ (nearbyint): Define using libm_alias_double.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/s_rint.S: Include
+ <libm-alias-double.h>.
+ (rint): Define using libm_alias_double.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_ceil.c: Include
+ <libm-alias-double.h>.
+ (ceil): Define using libm_alias_double.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_floor.c: Include
+ <libm-alias-double.h>.
+ (floor): Define using libm_alias_double.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_fma.c: Include
+ <libm-alias-double.h>.
+ (fma): Define using libm_alias_double.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_lrint.c: Include
+ <libm-alias-double.h>.
+ (lrint): Define using libm_alias_double.
+ (llrint): Likewise.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyint.c: Include
+ <libm-alias-double.h>.
+ (nearbyint): Define using libm_alias_double.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_rint.c: Include
+ <libm-alias-double.h>.
+ (rint): Define using libm_alias_double.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_trunc.c: Include
+ <libm-alias-double.h>.
+ (trunc): Define using libm_alias_double.
+ * sysdeps/sparc/sparc64/fpu/s_copysign.S: Include
+ <libm-alias-double.h>.
+ (copysign): Define using libm_alias_double.
+ * sysdeps/sparc/sparc64/fpu/s_fabs.c: Include
+ <libm-alias-double.h>.
+ (fabs): Define using libm_alias_double.
+ * sysdeps/sparc/sparc64/fpu/s_lrint.S: Include
+ <libm-alias-double.h>.
+ (lrint): Define using libm_alias_double.
+ (llrint): Likewise.
+ * sysdeps/sparc/sparc64/fpu/s_nearbyint.S: Include
+ <libm-alias-double.h>.
+ (nearbyint): Define using libm_alias_double.
+ * sysdeps/sparc/sparc64/fpu/s_rint.S: Include
+ <libm-alias-double.h>.
+ (rint): Define using libm_alias_double.
+
+ [BZ #22229]
+ * sysdeps/sparc/sparc32/sparcv9/fpu/s_fabs.S: Include
+ <math_ldbl_opt.h>.
+ (fabsl): Define as compat symbol at version GLIBC_2_0 for libm.
+
+ * scripts/build-many-glibcs.py (Context.add_all_configs): Add
+ SPARC --disable-multi-arch glibc variants.
+
+ * sysdeps/x86_64/fpu/multiarch/e_exp2f.c: Include
+ <libm-alias-float.h>.
+ (exp2f): Define using libm_alias_float, or libm_alias_float_other
+ if [SHARED].
+ * sysdeps/x86_64/fpu/multiarch/e_expf.c: Include
+ <libm-alias-float.h>.
+ (exp2f): Define using libm_alias_float, or libm_alias_float_other
+ if [SHARED].
+ * sysdeps/x86_64/fpu/multiarch/e_log2f.c: Include
+ <libm-alias-float.h>.
+ (exp2f): Define using libm_alias_float, or libm_alias_float_other
+ if [SHARED].
+ * sysdeps/x86_64/fpu/multiarch/e_logf.c: Include
+ <libm-alias-float.h>.
+ (exp2f): Define using libm_alias_float, or libm_alias_float_other
+ if [SHARED].
+ * sysdeps/x86_64/fpu/multiarch/e_powf.c: Include
+ <libm-alias-float.h>.
+ (exp2f): Define using libm_alias_float, or libm_alias_float_other
+ if [SHARED].
+ * sysdeps/x86_64/fpu/multiarch/s_ceilf.c: Include
+ <libm-alias-float.h>.
+ (ceilf): Define using libm_alias_float.
+ * sysdeps/x86_64/fpu/multiarch/s_floorf.c: Include
+ <libm-alias-float.h>.
+ (floorf): Define using libm_alias_float.
+ * sysdeps/x86_64/fpu/multiarch/s_fmaf.c: Include
+ <libm-alias-float.h>.
+ (fmaf): Define using libm_alias_float.
+ * sysdeps/x86_64/fpu/multiarch/s_nearbyintf.c: Include
+ <libm-alias-float.h>.
+ (nearbyintf): Define using libm_alias_float.
+ * sysdeps/x86_64/fpu/multiarch/s_rintf.c: Include
+ <libm-alias-float.h>.
+ (rintf): Define using libm_alias_float.
+ * sysdeps/x86_64/fpu/multiarch/s_truncf.c: Include
+ <libm-alias-float.h>.
+ (truncf): Define using libm_alias_float.
+ * sysdeps/x86_64/fpu/s_copysignf.S: Include <libm-alias-float.h>.
+ (copysignf): Define using libm_alias_float.
+ * sysdeps/x86_64/fpu/s_cosf.S: Include <libm-alias-float.h>.
+ (cosf): Define using libm_alias_float.
+ * sysdeps/x86_64/fpu/s_fabsf.c: Include <libm-alias-float.h>.
+ (fabsf): Define using libm_alias_float.
+ * sysdeps/x86_64/fpu/s_fmaxf.S: Include <libm-alias-float.h>.
+ (fmaxf): Define using libm_alias_float.
+ * sysdeps/x86_64/fpu/s_fminf.S: Include <libm-alias-float.h>.
+ (fminf): Define using libm_alias_float.
+ * sysdeps/x86_64/fpu/s_llrintf.S: Include <libm-alias-float.h>.
+ (llrintf): Define using libm_alias_float.
+ [!__ILP32__] (lrintf): Likewise.
+ * sysdeps/x86_64/fpu/s_sincosf.S: Include <libm-alias-float.h>.
+ (sincosf): Define using libm_alias_float.
+ * sysdeps/x86_64/fpu/s_sinf.S: Include <libm-alias-float.h>.
+ (sinf): Define using libm_alias_float.
+ * sysdeps/x86_64/x32/fpu/s_lrintf.S: Include <libm-alias-float.h>.
+ (lrintf): Define using libm_alias_float.
+
+ * sysdeps/x86_64/fpu/multiarch/s_atan.c: Include
+ <libm-alias-double.h>.
+ (atan): Define using libm_alias_double.
+ * sysdeps/x86_64/fpu/multiarch/s_ceil.c: Include
+ <libm-alias-double.h>.
+ (ceil): Define using libm_alias_double.
+ * sysdeps/x86_64/fpu/multiarch/s_floor.c: Include
+ <libm-alias-double.h>.
+ (floor): Define using libm_alias_double.
+ * sysdeps/x86_64/fpu/multiarch/s_fma.c: Include
+ <libm-alias-double.h>.
+ (fma): Define using libm_alias_double.
+ * sysdeps/x86_64/fpu/multiarch/s_nearbyint.c: Include
+ <libm-alias-double.h>.
+ (nearbyint): Define using libm_alias_double.
+ * sysdeps/x86_64/fpu/multiarch/s_rint.c: Include
+ <libm-alias-double.h>.
+ (rint): Define using libm_alias_double.
+ * sysdeps/x86_64/fpu/multiarch/s_sin.c: Include
+ <libm-alias-double.h>.
+ (sin): Define using libm_alias_double.
+ (cos): Likewise.
+ * sysdeps/x86_64/fpu/multiarch/s_tan.c: Include
+ <libm-alias-double.h>.
+ (tan): Define using libm_alias_double.
+ * sysdeps/x86_64/fpu/multiarch/s_trunc.c: Include
+ <libm-alias-double.h>.
+ (trunc): Define using libm_alias_double.
+ * sysdeps/x86_64/fpu/s_copysign.S: Include <libm-alias-double.h>.
+ (copysign): Define using libm_alias_double.
+ * sysdeps/x86_64/fpu/s_fabs.c: Include <libm-alias-double.h>.
+ (fabs): Define using libm_alias_double.
+ * sysdeps/x86_64/fpu/s_fmax.S: Include <libm-alias-double.h>.
+ (fmax): Define using libm_alias_double.
+ * sysdeps/x86_64/fpu/s_fmin.S: Include <libm-alias-double.h>.
+ (fmin): Define using libm_alias_double.
+ * sysdeps/x86_64/fpu/s_llrint.S: Include <libm-alias-double.h>.
+ (llrint): Define using libm_alias_double.
+ [!__ILP32__] (lrint): Likewise.
+ * sysdeps/x86_64/x32/fpu/s_lrint.S: Include <libm-alias-double.h>.
+ (lrint): Define using libm_alias_double.
+
+2017-11-29 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/sparc/sparc64/fpu/multiarch/Makefile
+ (libm-sysdep_routines): Add s_rintf-generic and s_rint-generic
+ objects.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_rint-generic.S: New file.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_rint.c: Likewise.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_rintf-generic.S: Likewise.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_rintf.c: Likewise.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_rint.S: Remove file.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_rintf.S: Likewise.
+
+ * sysdeps/sparc/sparc64/fpu/multiarch/Makefile
+ (libm-sysdep_routines): Add s_lrint-generic and s_lrintf-generic
+ objects.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_lrint-generic.S: New file.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_lrint.c: Likewise.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_lrintf-generic.S: Likewise.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_lrintf.c: Likewise.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_lrint.S: Remove file.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_lrintf.S: Likewise.
+
+ * sysdeps/sparc/sparc64/fpu/multiarch/Makefile
+ (libm-sysdep_routines): Add s_nearbyint-generic and
+ s_nearbyintf-generic objects.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyint-generic.S: New file.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyint.c: Likewise.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyintf-generic.S: Likewise.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyintf.c: Likewise.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyint.S: Remove file.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyintf.S: Likewise.
+
+ * sysdeps/sparc/sparc64/fpu/multiarch/Makefile (sysdeps_calls):
+ Add s_finitef-generic and s_finite-generic objects.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_finite-generic.S: New file.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_finite.c: Likewise.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_finitef-generic.S: Likewise.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_finitef.c: Likewise.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_finite.S: Remove file.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_finitef.S: Remove file.
+
+ * sysdeps/sparc/sparc64/fpu/multiarch/Makefile (sysdeps_calls):
+ Add s_isinff-generic and s_isinf-generic objects.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_isinf-generic.S: New file.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_isinf.c: Likewise.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_isinff-generic.S: Likewise.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_isinff.c: Likewise.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_isinf.S: Remove file.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_isinff.S: Likewise.
+
+ * sysdeps/sparc/sparc64/fpu/multiarch/Makefile (sysdeps_calls):
+ Add s_isnanf-generic and s_isnan-generic objects.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_isnan-generic.S: New file.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_isnanf-generic.S: Likewise.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_isnan.c: Likewise.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_isnanf.c: Likewise.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_isnan.S: Remove file.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_isnanf.S: Likewise.
+
+ * sysdeps/sparc/sparc-ifunc.h (sparc_libm_ifunc_redirected): New
+ macro.
+ * sysdeps/sparc/sparc64/fpu/multiarch/Makefile (sysdep_calls): New
+ rule.
+ (sysdep_routines): Use sysdep_calls as base.
+ (libm-sysdep_routines): Add generic rule for symbols shared with
+ libc. Add s_signbit-generic and s_signbitf-generic objects.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_signbit.c: New file.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_signbitf.c: Likewise.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_signbit-generic.S: Likewise.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_signbitf-generic.S: Likewise.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_signbit.S: Remove file.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_signbitf.S: Likewise.
+
+2017-11-29 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/ia64/fpu/libm-symbols.h: Include <libm-alias-float.h>.
+ * sysdeps/ia64/fpu/e_acosf.S (acosf): Use libm_alias_float_other.
+ * sysdeps/ia64/fpu/e_acoshf.S (acoshf): Likewise.
+ * sysdeps/ia64/fpu/e_asinf.S (asinf): Likewise.
+ * sysdeps/ia64/fpu/e_atan2f.S (atan2f): Likewise.
+ * sysdeps/ia64/fpu/e_atanhf.S (atanhf): Likewise.
+ * sysdeps/ia64/fpu/e_coshf.S (coshf): Likewise.
+ * sysdeps/ia64/fpu/e_exp10f.S (exp10f): Likewise.
+ * sysdeps/ia64/fpu/e_exp2f.S (exp2f): Likewise.
+ * sysdeps/ia64/fpu/e_expf.S (expf): Likewise.
+ * sysdeps/ia64/fpu/e_fmodf.S (fmodf): Likewise.
+ * sysdeps/ia64/fpu/e_hypotf.S (hypotf): Likewise.
+ * sysdeps/ia64/fpu/e_lgammaf_r.c (lgammaf_r): Define using
+ libm_alias_float_r.
+ * sysdeps/ia64/fpu/e_log2f.S (log2f): Use libm_alias_float_other.
+ * sysdeps/ia64/fpu/e_logf.S (log10f): Likewise.
+ (logf): Likewise.
+ * sysdeps/ia64/fpu/e_powf.S (powf): Likewise.
+ * sysdeps/ia64/fpu/e_remainderf.S (remainderf): Likewise.
+ * sysdeps/ia64/fpu/e_sinhf.S (sinhf): Likewise.
+ * sysdeps/ia64/fpu/e_sqrtf.S (sqrtf): Likewise.
+ * sysdeps/ia64/fpu/libm_sincosf.S (sincosf): Likewise.
+ * sysdeps/ia64/fpu/s_asinhf.S (asinhf): Likewise.
+ * sysdeps/ia64/fpu/s_atanf.S (atanf): Likewise.
+ * sysdeps/ia64/fpu/s_cbrtf.S (cbrtf): Likewise.
+ * sysdeps/ia64/fpu/s_ceilf.S (ceilf): Likewise.
+ * sysdeps/ia64/fpu/s_copysign.S (copysignf): Define using
+ libm_alias_float.
+ * sysdeps/ia64/fpu/s_cosf.S (sinf): Use libm_alias_float_other.
+ (cosf): Likewise.
+ * sysdeps/ia64/fpu/s_erfcf.S (erfcf): Likewise.
+ * sysdeps/ia64/fpu/s_erff.S (erff): Likewise.
+ * sysdeps/ia64/fpu/s_expm1f.S (expm1f): Likewise.
+ * sysdeps/ia64/fpu/s_fabsf.S (fabsf): Likewise.
+ * sysdeps/ia64/fpu/s_fdimf.S (fdimf): Likewise.
+ * sysdeps/ia64/fpu/s_floorf.S (floorf): Likewise.
+ * sysdeps/ia64/fpu/s_fmaf.S (fmaf): Likewise.
+ * sysdeps/ia64/fpu/s_fmaxf.S (fmaxf): Likewise.
+ * sysdeps/ia64/fpu/s_frexpf.c (frexpf): Likewise.
+ * sysdeps/ia64/fpu/s_ldexpf.c (ldexpf): Likewise.
+ * sysdeps/ia64/fpu/s_log1pf.S (log1pf): Likewise.
+ * sysdeps/ia64/fpu/s_logbf.S (logbf): Likewise.
+ * sysdeps/ia64/fpu/s_modff.S (modff): Likewise.
+ * sysdeps/ia64/fpu/s_nearbyintf.S (nearbyintf): Likewise.
+ * sysdeps/ia64/fpu/s_nextafterf.S (nextafterf): Likewise.
+ * sysdeps/ia64/fpu/s_rintf.S (rintf): Likewise.
+ * sysdeps/ia64/fpu/s_roundf.S (roundf): Likewise.
+ * sysdeps/ia64/fpu/s_scalblnf.c (scalblnf): Likewise.
+ * sysdeps/ia64/fpu/s_scalbnf.c (scalbnf): Define using
+ libm_alias_float.
+ * sysdeps/ia64/fpu/s_tanf.S (tanf): Use libm_alias_float_other.
+ * sysdeps/ia64/fpu/s_tanhf.S (tanhf): Likewise.
+ * sysdeps/ia64/fpu/s_truncf.S (truncf): Likewise.
+ * sysdeps/ia64/fpu/w_lgammaf_main.c
+ [BUILD_LGAMMA && !USE_AS_COMPAT] (lgammaf): Likewise.
+ * sysdeps/ia64/fpu/w_tgammaf_compat.S (tgammaf): Likewise.
+
+2017-11-28 Mike FABIAN <mfabian@redhat.com>
+ Alexandre Oliva <aoliva@redhat.com>
+
+ [BZ #17750]
+ * Makefile: add fr_CA.UTF-8 to test-input and LOCALES.
+ * localedata/fr_CA.UTF-8.in: New file with test data for backward
+ accents sorting.
+ * localedata/fr_FR.UTF-8.in: Fix test data for forward accents
+ sorting.
+ * localedata/locales/cs_CZ (LC_COLLATE): Remove “define DIACRIT_FORWARDâ€
+ * localedata/locales/de_DE (LC_COLLATE): Likewise.
+ * localedata/locales/hu_HU (LC_COLLATE): Likewise.
+ * localedata/locales/lb_LU (LC_COLLATE): Likewise.
+ * localedata/locales/yuw_PG (LC_COLLATE): Likewise.
+ * localedata/locales/fr_CA (LC_COLLATE): Add “define DIACRIT_BACKWARDâ€
+ * localedata/locales/iso14651_t1_common: Use “ifdef DIACRIT_FORWARDâ€
+ instead of “ifdef DIACRIT_BACKWARDâ€.
+
+2017-11-29 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * config.h.in (HAVE_AS_VIS3_SUPPORT): Remove check for VIS3 support.
+ * sysdeps/sparc/configure.ac (HAVE_AS_VIS3_SUPPORT): Likewise.
+ * sysdeps//sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.c: Likewise.
+ * sysdeps//sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf.c: Likewise.
+ * sysdeps//sparc/sparc32/sparcv9/fpu/multiarch/s_fma.c: Likewise.
+ * sysdeps//sparc/sparc32/sparcv9/fpu/multiarch/s_fmaf.c: Likewise.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_ceil.c: Likewise.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf.c: Likewise.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_floor.c: Likewise.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_floorf.c: Likewise.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_fma.c: Likewise.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_fmaf.c: Likewise.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_trunc.c: Likewise.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_truncf.c: Likewise.
+ * sysdeps/sparc/sparc-ifunc.h [!HAVE_AS_VIS3_SUPPORT]
+ (SPARC_ASM_VIS3_IFUNC, SPARC_ASM_VIS3_VIS2_IFUNC): Remove macros.
+ * sysdeps/sparc/sparc32/sparcv9/Makefile [$(have-as-vis3) != yes]
+ (ASFLAGS.o, ASFLAGS-.os, ASFLAGS-.op, ASFLAGS-.oS): Remove rules.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/Makefile
+ ($(have-as-vis3) == yes): Remove conditional.
+ * sysdeps/sparc/sparc64/Makefile (($(have-as-vis3) == yes)):
+ Likewise.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim-generic.c: New
+ file.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf-generic.c: New
+ file.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fma-generic.c: New
+ file.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fmaf-generic.c: New
+ file.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_ceil-generic.c: New file.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf-generic.c: New file.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_floor-generic.c: New file.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_floorf-generic.c: New file.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_fma-generic.c: New file.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_fmaf-generic.c: New file.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_trunc-generic.c: New file.
+ * sysdeps/sparc/sparc64/fpu/multiarch/s_truncf-generic.c: New file.
+
+2017-11-29 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/ia64/fpu/libm-symbols.h: Include <libm-alias-double.h>.
+ * sysdeps/ia64/fpu/e_acos.S (acos): Use libm_alias_double_other.
+ * sysdeps/ia64/fpu/e_acosh.S (acosh): Likewise.
+ * sysdeps/ia64/fpu/e_asin.S (asin): Likewise.
+ * sysdeps/ia64/fpu/e_atan2.S (atan2): Likewise.
+ * sysdeps/ia64/fpu/e_atanh.S (atanh): Likewise.
+ * sysdeps/ia64/fpu/e_cosh.S (cosh): Likewise.
+ * sysdeps/ia64/fpu/e_exp.S (exp): Likewise.
+ * sysdeps/ia64/fpu/e_exp10.S (exp10): Likewise.
+ * sysdeps/ia64/fpu/e_exp2.S (exp2): Likewise.
+ * sysdeps/ia64/fpu/e_fmod.S (fmod): Likewise.
+ * sysdeps/ia64/fpu/e_hypot.S (hypot): Likewise.
+ * sysdeps/ia64/fpu/e_lgamma_r.c (lgamma_r): Define using
+ libm_alias_double_r.
+ * sysdeps/ia64/fpu/e_log.S (log10): Use libm_alias_double_other.
+ (log): Likewise.
+ * sysdeps/ia64/fpu/e_log2.S (log2): Likewise.
+ * sysdeps/ia64/fpu/e_pow.S (pow): Likewise.
+ * sysdeps/ia64/fpu/e_remainder.S (remainder): Likewise.
+ * sysdeps/ia64/fpu/e_sinh.S (sinh): Likewise.
+ * sysdeps/ia64/fpu/e_sqrt.S (sqrt): Likewise.
+ * sysdeps/ia64/fpu/libm_sincos.S (sincos): Likewise.
+ * sysdeps/ia64/fpu/s_asinh.S (asinh): Likewise.
+ * sysdeps/ia64/fpu/s_atan.S (atan): Likewise.
+ * sysdeps/ia64/fpu/s_cbrt.S (cbrt): Likewise.
+ * sysdeps/ia64/fpu/s_ceil.S (ceil): Likewise.
+ * sysdeps/ia64/fpu/s_copysign.S (copysign): Define using
+ libm_alias_double.
+ * sysdeps/ia64/fpu/s_cos.S (sin): Use libm_alias_double_other.
+ (cos): Likewise.
+ * sysdeps/ia64/fpu/s_erf.S (erf): Likewise.
+ * sysdeps/ia64/fpu/s_erfc.S (erfc): Likewise.
+ * sysdeps/ia64/fpu/s_expm1.S (expm1): Likewise.
+ * sysdeps/ia64/fpu/s_fabs.S (fabs): Likewise.
+ * sysdeps/ia64/fpu/s_fdim.S (fdim): Likewise.
+ * sysdeps/ia64/fpu/s_floor.S (floor): Likewise.
+ * sysdeps/ia64/fpu/s_fma.S (fma): Likewise.
+ * sysdeps/ia64/fpu/s_fmax.S (fmax): Likewise.
+ * sysdeps/ia64/fpu/s_frexp.c (frexp): Likewise.
+ * sysdeps/ia64/fpu/s_ldexp.c (ldexp): Likewise.
+ * sysdeps/ia64/fpu/s_log1p.S (log1p): Likewise.
+ * sysdeps/ia64/fpu/s_logb.S (logb): Likewise.
+ * sysdeps/ia64/fpu/s_modf.S (modf): Likewise.
+ * sysdeps/ia64/fpu/s_nearbyint.S (nearbyint): Likewise.
+ * sysdeps/ia64/fpu/s_nextafter.S (nextafter): Likewise.
+ * sysdeps/ia64/fpu/s_rint.S (rint): Likewise.
+ * sysdeps/ia64/fpu/s_round.S (round): Likewise.
+ * sysdeps/ia64/fpu/s_scalbn.c (scalbn): Define using
+ libm_alias_double.
+ * sysdeps/ia64/fpu/s_tan.S (tan): Use libm_alias_double_other.
+ * sysdeps/ia64/fpu/s_tanh.S (tanh): Likewise.
+ * sysdeps/ia64/fpu/s_trunc.S (trunc): Likewise.
+ * sysdeps/ia64/fpu/w_lgamma_main.c
+ [BUILD_LGAMMA && !USE_AS_COMPAT] (lgamma): Likewise.
+ * sysdeps/ia64/fpu/w_tgamma_compat.S (tgamma): Likewise.
+
+2017-11-28 John David Anglin <danglin@gcc.gnu.org>
+
+ * sysdeps/hppa/start.S (_start): Check PIC instead of SHARED. Load
+ address of $global$ into %dp register earlier. Use pc-relative
+ instruction sequence for PIC case.
+
+2017-11-28 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/i386/fpu/s_asinhf.S: Include <libm-alias-float.h>.
+ (asinhf): Define using libm_alias_float.
+ * sysdeps/i386/fpu/s_atanf.S: Include <libm-alias-float.h>.
+ (atanf): Define using libm_alias_float.
+ * sysdeps/i386/fpu/s_cbrtf.S: Include <libm-alias-float.h>.
+ (cbrtf): Define using libm_alias_float.
+ * sysdeps/i386/fpu/s_ceilf.S: Include <libm-alias-float.h>.
+ (ceilf): Define using libm_alias_float.
+ * sysdeps/i386/fpu/s_copysignf.S: Include <libm-alias-float.h>.
+ (copysignf): Define using libm_alias_float.
+ * sysdeps/i386/fpu/s_expm1f.S: Include <libm-alias-float.h>.
+ (expm1f): Define using libm_alias_float.
+ * sysdeps/i386/fpu/s_fabsf.S: Include <libm-alias-float.h>.
+ (fabsf): Define using libm_alias_float.
+ * sysdeps/i386/fpu/s_floorf.S: Include <libm-alias-float.h>.
+ (floorf): Define using libm_alias_float.
+ * sysdeps/i386/fpu/s_fmaxf.S: Include <libm-alias-float.h>.
+ (fmaxf): Define using libm_alias_float.
+ * sysdeps/i386/fpu/s_fminf.S: Include <libm-alias-float.h>.
+ (fminf): Define using libm_alias_float.
+ * sysdeps/i386/fpu/s_frexpf.S: Include <libm-alias-float.h>.
+ (frexpf): Define using libm_alias_float.
+ * sysdeps/i386/fpu/s_llrintf.S: Include <libm-alias-float.h>.
+ (llrintf): Define using libm_alias_float.
+ * sysdeps/i386/fpu/s_logbf.S: Include <libm-alias-float.h>.
+ (logbf): Define using libm_alias_float.
+ * sysdeps/i386/fpu/s_lrintf.S: Include <libm-alias-float.h>.
+ (lrintf): Define using libm_alias_float.
+ * sysdeps/i386/fpu/s_nearbyintf.S: Include <libm-alias-float.h>.
+ (nearbyintf): Define using libm_alias_float.
+ * sysdeps/i386/fpu/s_remquof.S: Include <libm-alias-float.h>.
+ (remquof): Define using libm_alias_float.
+ * sysdeps/i386/fpu/s_rintf.S: Include <libm-alias-float.h>.
+ (rintf): Define using libm_alias_float.
+ * sysdeps/i386/fpu/s_truncf.S: Include <libm-alias-float.h>.
+ (truncf): Define using libm_alias_float.
+ * sysdeps/i386/i686/fpu/multiarch/e_exp2f.c: Include
+ <libm-alias-float.h>.
+ (exp2f): Define using libm_alias_float, or libm_alias_float_other
+ if [SHARED].
+ * sysdeps/i386/i686/fpu/multiarch/e_expf.c: Include
+ <libm-alias-float.h>.
+ (expf): Define using libm_alias_float, or libm_alias_float_other
+ if [SHARED].
+ * sysdeps/i386/i686/fpu/multiarch/e_log2f.c: Include
+ <libm-alias-float.h>.
+ (log2f): Define using libm_alias_float, or libm_alias_float_other
+ if [SHARED].
+ * sysdeps/i386/i686/fpu/multiarch/e_logf.c: Include
+ <libm-alias-float.h>.
+ (logf): Define using libm_alias_float, or libm_alias_float_other
+ if [SHARED].
+ * sysdeps/i386/i686/fpu/multiarch/e_powf.c: Include
+ <libm-alias-float.h>.
+ (powf): Define using libm_alias_float, or libm_alias_float_other
+ if [SHARED].
+ * sysdeps/i386/i686/fpu/multiarch/s_cosf.c: Include
+ <libm-alias-float.h>.
+ (cosf): Define using libm_alias_float.
+ * sysdeps/i386/i686/fpu/multiarch/s_sincosf.c: Include
+ <libm-alias-float.h>.
+ (sincosf): Define using libm_alias_float.
+ * sysdeps/i386/i686/fpu/multiarch/s_sinf.c: Include
+ <libm-alias-float.h>.
+ (sinf): Define using libm_alias_float.
+ * sysdeps/i386/i686/fpu/s_fmaxf.S: Include <libm-alias-float.h>.
+ (fmaxf): Define using libm_alias_float.
+ * sysdeps/i386/i686/fpu/s_fminf.S: Include <libm-alias-float.h>.
+ (fminf): Define using libm_alias_float.
+ * sysdeps/i386/i686/multiarch/s_fmaf.c: Include
+ <libm-alias-float.h>.
+ (fmaf): Define using libm_alias_float.
+
+ * sysdeps/i386/fpu/s_asinh.S: Include <libm-alias-double.h>.
+ (asinh): Define using libm_alias_double.
+ * sysdeps/i386/fpu/s_atan.S: Include <libm-alias-double.h>.
+ (atan): Define using libm_alias_double.
+ * sysdeps/i386/fpu/s_cbrt.S: Include <libm-alias-double.h>.
+ (cbrt): Define using libm_alias_double.
+ * sysdeps/i386/fpu/s_ceil.S: Include <libm-alias-double.h>.
+ (ceil): Define using libm_alias_double.
+ * sysdeps/i386/fpu/s_copysign.S: Include <libm-alias-double.h>.
+ (copysign): Define using libm_alias_double.
+ * sysdeps/i386/fpu/s_expm1.S: Include <libm-alias-double.h>.
+ (expm1): Define using libm_alias_double.
+ * sysdeps/i386/fpu/s_fabs.S: Include <libm-alias-double.h>.
+ (fabs): Define using libm_alias_double.
+ * sysdeps/i386/fpu/s_fdim.c: Include <libm-alias-double.h>.
+ (fdim): Define using libm_alias_double.
+ * sysdeps/i386/fpu/s_floor.S: Include <libm-alias-double.h>.
+ (floor): Define using libm_alias_double.
+ * sysdeps/i386/fpu/s_fmax.S: Include <libm-alias-double.h>.
+ (fmax): Define using libm_alias_double.
+ * sysdeps/i386/fpu/s_fmin.S: Include <libm-alias-double.h>.
+ (fmin): Define using libm_alias_double.
+ * sysdeps/i386/fpu/s_frexp.S: Include <libm-alias-double.h>.
+ (frexp): Define using libm_alias_double.
+ * sysdeps/i386/fpu/s_llrint.S: Include <libm-alias-double.h>.
+ (llrint): Define using libm_alias_double.
+ * sysdeps/i386/fpu/s_logb.S: Include <libm-alias-double.h>.
+ (logb): Define using libm_alias_double.
+ * sysdeps/i386/fpu/s_lrint.S: Include <libm-alias-double.h>.
+ (lrint): Define using libm_alias_double.
+ * sysdeps/i386/fpu/s_nearbyint.S: Include <libm-alias-double.h>.
+ (nearbyint): Define using libm_alias_double.
+ * sysdeps/i386/fpu/s_remquo.S: Include <libm-alias-double.h>.
+ (remquo): Define using libm_alias_double.
+ * sysdeps/i386/fpu/s_rint.S: Include <libm-alias-double.h>.
+ (rint): Define using libm_alias_double.
+ * sysdeps/i386/fpu/s_trunc.S: Include <libm-alias-double.h>.
+ (trunc): Define using libm_alias_double.
+ * sysdeps/i386/i686/fpu/s_fmax.S: Include <libm-alias-double.h>.
+ (fmax): Define using libm_alias_double.
+ * sysdeps/i386/i686/fpu/s_fmin.S: Include <libm-alias-double.h>.
+ (fmin): Define using libm_alias_double.
+ * sysdeps/i386/i686/multiarch/s_fma.c: Include <libm-alias-double.h>.
+ (fma): Define using libm_alias_double.
+
+2017-11-28 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #22370]
+ * elf/dl-hwcaps.c (ROUND): Removed.
+ (_dl_important_hwcaps): Replace ROUND with ELF_NOTE_DESC_OFFSET
+ and ELF_NOTE_NEXT_OFFSET.
+ * elf/dl-load.c (ROUND): Removed.
+ (open_verify): Replace ROUND with ELF_NOTE_NEXT_OFFSET.
+ * elf/readelflib.c (ROUND): Removed.
+ (process_elf_file): Replace ROUND with ELF_NOTE_NEXT_OFFSET.
+ * include/elf.h [!_ISOMAC]: Include <libc-pointer-arith.h>.
+ [!_ISOMAC] (ELF_NOTE_DESC_OFFSET): New.
+ [!_ISOMAC] (ELF_NOTE_NEXT_OFFSET): Likewise.
+
+2017-11-28 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/s390/fpu/s_fmaf.c: Include <libm-alias-float.h>.
+ [!__fmaf] (fmaf): Define using libm_alias_float.
+
+ * sysdeps/s390/fpu/s_fma.c: Include <libm-alias-double.h>.
+ [!__fma] (fma): Define using libm_alias_double.
+ * sysdeps/unix/sysv/linux/s390/fpu/s_fma.c: Remove.
+
+2017-11-28 Mike FABIAN <mfabian@redhat.com>
+
+ [BZ #22336]
+ * localedata/locales/cs_CZ (LC_COLLATE): Use “copy "iso14651_t1"â€
+ and implement the collation rules for cs from CLDR on top of that.
+ * Makefile: Add cs_CZ.UTF-8 to test-input.
+ * cs_CZ.UTF-8.in: New file with test data to test the Czech sorting.
+
+2017-11-28 Siddhesh Poyarekar <siddhesh@sourceware.org>
+
+ * localedata/Makefile (LOCALES): Remove duplicate cs_CZ.UTF-8.
+
+2017-11-28 Victor Rodriguez <victor.rodriguez.bahena@intel.com>
+ Icarus Sparry <icarus.w.sparry@intel.com>
+
+ * benchtests/Makefile:Add BENCHSET to allow subsets of
+ benchmarks to be run.
+ * benchtests/README: Add documentation for: Running subsets of
+ benchmarks.
+
+2017-11-28 Victor Rodriguez <victor.rodriguez.bahena@intel.com>
+
+ * benchtests/scripts/benchout.schema.json: Fix regex to accept a wider
+ range of tests names.
+
+ * benchtests/scripts/benchout.schema.json: Add throughput as accepted
+ result from property and remove "max", min" and "mean" from
+ required properties based on benchtests/bench-skeleton.c.
+
+2017-11-28 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #20826]
+ Turn posix/tst-getaddrinfo4, posix/tst-getaddrinfo5 into xtests
+ due to Internet requirement.
+ * posix/Makefile (tests): Remove tst-getaddrinfo4,
+ tst-getaddrinfo5.
+ (xtests): Add tst-getaddrinfo4, tst-getaddrinfo5.
+
+2017-11-28 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/sparc/sparc32/sparcv9/multiarch/Makefile
+ [$(subdir) = string] (sysdep_routines): Add memset-ultra1.
+ * sysdeps/sparc/sparc64/multiarch/Makefile [$(subdir) = string]
+ (sysdep_routines): Add memset-ultra1.
+ * sysdeps/sparc/sparc32/sparcv9/multiarch/memset-ultra1.S: New
+ file.
+ * sysdeps/sparc/sparc32/sparcv9/multiarch/memset.c: Likewise.
+ * sysdeps/sparc/sparc32/sparcv9/multiarch/bzero.c: Likewise.
+ * sysdeps/sparc/sparc64/multiarch/ifunc-memset.h: Likewise.
+ * sysdeps/sparc/sparc64/multiarch/memset-ultra1.S: Likewise.
+ * sysdeps/sparc/sparc64/multiarch/memset.c: Likewise.
+ * sysdeps/sparc/sparc64/multiarch/bzero.c: Likewise.
+ * sysdeps/sparc/sparc32/sparcv9/multiarch/memset.S: Remove file.
+ * sysdeps/sparc/sparc64/multiarch/memset.S: Likewise.
+
+ * sysdeps/sparc/sparc32/sparcv9/multiarch/memcpy-ultra1.S: New
+ file.
+ * sysdeps/sparc/sparc32/sparcv9/multiarch/memcpy.c: Likewise.
+ * sysdeps/sparc/sparc32/sparcv9/multiarch/mempcpy.c: Likewise.
+ * sysdeps/sparc/sparc64/multiarch/ifunc-memcpy.h: Likewise.
+ * sysdeps/sparc/sparc64/multiarch/memcpy-ultra1.S: Likewise.
+ * sysdeps/sparc/sparc64/multiarch/memcpy.c: Likewise.
+ * sysdeps/sparc/sparc64/multiarch/mempcpy.c: Likewise.
+ * sysdeps/sparc/sparc-ifunc.h (sparc_libc_ifunc_redirected): New
+ macro.
+ * sysdeps/sparc/sparc32/sparcv9/multiarch/Makefile
+ [$(subdir) = string] (sysdep_routines): Add memcpy-ultra1.
+ * sysdeps/sparc/sparc64/multiarch/Makefile [$(subdir) = string]
+ (sysdep_routines): Add memcpy-ultra1.
+ * sysdeps/sparc/sparc64/multiarch/memcpy.S: Remove file.
+ * sysdeps/sparc/sparc32/sparcv9/multiarch/memcpy.S: Likewise.
+
+2017-11-28 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/alpha/fpu/cfloat-compat.h: Include <libm-alias-float.h>.
+ (cfloat_versions): Take function argument without trailing 'f'.
+ Call libm_alias_float_other.
+ * sysdeps/alpha/fpu/cabsf.c: Update call to cfloat_versions.
+ * sysdeps/alpha/fpu/cargf.c: Likewise.
+ * sysdeps/alpha/fpu/cimagf.c: Likewise.
+ * sysdeps/alpha/fpu/conjf.c: Likewise.
+ * sysdeps/alpha/fpu/crealf.c: Likewise.
+ * sysdeps/alpha/fpu/s_cacosf.c: Likewise.
+ * sysdeps/alpha/fpu/s_cacoshf.c: Likewise.
+ * sysdeps/alpha/fpu/s_casinf.c: Likewise.
+ * sysdeps/alpha/fpu/s_casinhf.c: Likewise.
+ * sysdeps/alpha/fpu/s_catanf.c: Likewise.
+ * sysdeps/alpha/fpu/s_catanhf.c: Likewise.
+ * sysdeps/alpha/fpu/s_ccosf.c: Likewise.
+ * sysdeps/alpha/fpu/s_ccoshf.c: Likewise.
+ * sysdeps/alpha/fpu/s_cexpf.c: Likewise.
+ * sysdeps/alpha/fpu/s_clogf.c: Likewise.
+ * sysdeps/alpha/fpu/s_cpowf.c: Likewise.
+ * sysdeps/alpha/fpu/s_cprojf.c: Likewise.
+ * sysdeps/alpha/fpu/s_csinf.c: Likewise.
+ * sysdeps/alpha/fpu/s_csinhf.c: Likewise.
+ * sysdeps/alpha/fpu/s_csqrtf.c: Likewise.
+ * sysdeps/alpha/fpu/s_ctanf.c: Likewise.
+ * sysdeps/alpha/fpu/s_ctanhf.c: Likewise.
+ * sysdeps/alpha/fpu/s_clog10f.c: Include <libm-alias-float.h>.
+ (clog10f): Use libm_alias_float_other.
+ * sysdeps/alpha/fpu/s_ceilf.c: Include <libm-alias-float.h>.
+ (ceilf): Define using libm_alias_float.
+ * sysdeps/alpha/fpu/s_copysignf.c: Include <libm-alias-float.h>.
+ (copysignf): Define using libm_alias_float.
+ * sysdeps/alpha/fpu/s_fabsf.c: Include <libm-alias-float.h>.
+ (fabsf): Define using libm_alias_float.
+ * sysdeps/alpha/fpu/s_floorf.c: Include <libm-alias-float.h>.
+ (floorf): Define using libm_alias_float.
+ * sysdeps/alpha/fpu/s_fmax.S: Include <libm-alias-float.h>.
+ (fmaxf): Define using libm_alias_float.
+ * sysdeps/alpha/fpu/s_fmin.S: Include <libm-alias-float.h>.
+ (fminf): Define using libm_alias_float.
+ * sysdeps/alpha/fpu/s_lrintf.c: Include <libm-alias-float.h>.
+ (lrintf): Define using libm_alias_float.
+ (llrintf): Likewise.
+ * sysdeps/alpha/fpu/s_lroundf.c: Include <libm-alias-float.h>.
+ (lroundf): Define using libm_alias_float.
+ (llroundf): Likewise.
+ * sysdeps/alpha/fpu/s_rintf.c: Include <libm-alias-float.h>.
+ (rintf): Define using libm_alias_float.
+ * sysdeps/alpha/fpu/s_truncf.c: Include <libm-alias-float.h>.
+ (truncf): Define using libm_alias_float.
+
+ * sysdeps/aarch64/fpu/s_ceilf.c: Include <libm-alias-float.h>.
+ (ceilf): Define using libm_alias_float.
+ * sysdeps/aarch64/fpu/s_floorf.c: Include <libm-alias-float.h>.
+ (floorf): Define using libm_alias_float.
+ * sysdeps/aarch64/fpu/s_fmaf.c: Include <libm-alias-float.h>.
+ (fmaf): Define using libm_alias_float.
+ * sysdeps/aarch64/fpu/s_fmaxf.c: Include <libm-alias-float.h>.
+ (fmaxf): Define using libm_alias_float.
+ * sysdeps/aarch64/fpu/s_fminf.c: Include <libm-alias-float.h>.
+ (fminf): Define using libm_alias_float.
+ * sysdeps/aarch64/fpu/s_llrintf.c: Include <libm-alias-float.h>.
+ (llrintf): Define using libm_alias_float.
+ * sysdeps/aarch64/fpu/s_llroundf.c: Include <libm-alias-float.h>.
+ (llroundf): Define using libm_alias_float.
+ * sysdeps/aarch64/fpu/s_lrintf.c: Include <libm-alias-float.h>.
+ (lrintf): Define using libm_alias_float.
+ * sysdeps/aarch64/fpu/s_lroundf.c: Include <libm-alias-float.h>.
+ (lroundf): Define using libm_alias_float.
+ * sysdeps/aarch64/fpu/s_nearbyintf.c: Include
+ <libm-alias-float.h>.
+ (nearbyintf): Define using libm_alias_float.
+ * sysdeps/aarch64/fpu/s_rintf.c: Include <libm-alias-float.h>.
+ (rintf): Define using libm_alias_float.
+ * sysdeps/aarch64/fpu/s_roundf.c: Include <libm-alias-float.h>.
+ (roundf): Define using libm_alias_float.
+ * sysdeps/aarch64/fpu/s_truncf.c: Include <libm-alias-float.h>.
+ (truncf): Define using libm_alias_float.
+
+ * sysdeps/alpha/fpu/s_ceil.c: Include <libm-alias-double.h>.
+ (ceil): Define using libm_alias_double.
+ * sysdeps/alpha/fpu/s_copysign.c: Include <libm-alias-double.h>.
+ (copysign): Define using libm_alias_double.
+ * sysdeps/alpha/fpu/s_fabs.c: Include <libm-alias-double.h>.
+ (fabs): Define using libm_alias_double.
+ * sysdeps/alpha/fpu/s_floor.c: Include <libm-alias-double.h>.
+ (floor): Define using libm_alias_double.
+ * sysdeps/alpha/fpu/s_fmax.S: Include <libm-alias-double.h>.
+ (fmax): Define using libm_alias_double.
+ * sysdeps/alpha/fpu/s_fmin.S: Include <libm-alias-double.h>.
+ (fmin): Define using libm_alias_double.
+ * sysdeps/alpha/fpu/s_lrint.c: Include <libm-alias-double.h>.
+ (lrint): Define using libm_alias_double.
+ (llrint): Likewise.
+ * sysdeps/alpha/fpu/s_lround.c: Include <libm-alias-double.h>.
+ (lround): Define using libm_alias_double.
+ (llround): Likewise.
+ * sysdeps/alpha/fpu/s_rint.c: Include <libm-alias-double.h>.
+ (rint): Define using libm_alias_double.
+ * sysdeps/alpha/fpu/s_trunc.c: Include <libm-alias-double.h>.
+ (trunc): Define using libm_alias_double.
+
+ * sysdeps/ieee754/ldbl-opt/libm-alias-double.h
+ (libm_alias_double_r): Add semicolon after weak_alias call.
+
+2017-11-27 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/aarch64/fpu/s_ceil.c: Include <libm-alias-double.h>.
+ (ceil): Define using libm_alias_double.
+ * sysdeps/aarch64/fpu/s_floor.c: Include <libm-alias-double.h>.
+ (floor): Define using libm_alias_double.
+ * sysdeps/aarch64/fpu/s_fma.c: Include <libm-alias-double.h>.
+ (fma): Define using libm_alias_double.
+ * sysdeps/aarch64/fpu/s_fmax.c: Include <libm-alias-double.h>.
+ (fmax): Define using libm_alias_double.
+ * sysdeps/aarch64/fpu/s_fmin.c: Include <libm-alias-double.h>.
+ (fmin): Define using libm_alias_double.
+ * sysdeps/aarch64/fpu/s_llrint.c: Include <libm-alias-double.h>.
+ (llrint): Define using libm_alias_double.
+ * sysdeps/aarch64/fpu/s_llround.c: Include <libm-alias-double.h>.
+ (llround): Define using libm_alias_double.
+ * sysdeps/aarch64/fpu/s_lrint.c: Include <libm-alias-double.h>.
+ (lrint): Define using libm_alias_double.
+ * sysdeps/aarch64/fpu/s_lround.c: Include <libm-alias-double.h>.
+ (lround): Define using libm_alias_double.
+ * sysdeps/aarch64/fpu/s_nearbyint.c: Include <libm-alias-double.h>.
+ (nearbyint): Define using libm_alias_double.
+ * sysdeps/aarch64/fpu/s_rint.c: Include <libm-alias-double.h>.
+ (rint): Define using libm_alias_double.
+ * sysdeps/aarch64/fpu/s_round.c: Include <libm-alias-double.h>.
+ (round): Define using libm_alias_double.
+ * sysdeps/aarch64/fpu/s_trunc.c: Include <libm-alias-double.h>.
+ (trunc): Define using libm_alias_double.
+
+2017-11-27 Florian Weimer <fweimer@redhat.com>
+
+ * sysdeps/unix/sysv/linux/mlock2.c: New file.
+ * sysdeps/unix/sysv/linux/tst-mlock2.c: Likewise.
+ * sysdeps/unix/sysv/linux/Makefile (routines): Add mlock2.
+ (tests): Add tst-mlock2.
+ * sysdeps/unix/sysv/linux/Versions (GLIBC_2.27): Export mlock2.
+ * sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_MLOCK2)
+ [__LINUX_KERNEL_VERSION >= 4.4]: Define.
+ * sysdeps/unix/sysv/linux/libc**.abilist: Update.
+ * manual/memory.texi (Page Lock Functions): Move @end deftypefun
+ for mlock. Document mlock2.
+
+2017-11-27 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/ia64/Makeconfig (float64x-alias-fcts): New variable.
+ * sysdeps/ieee754/float128/Makeconfig (float64x-alias-fcts):
+ Likewise.
+ * sysdeps/ieee754/ldbl-128/Makeconfig (float64x-alias-fcts):
+ Likewise.
+ * sysdeps/x86/Makeconfig: New file.
+ * bits/floatn-common.h (__HAVE_FLOAT64X): Remove macro.
+ (__HAVE_FLOAT64X_LONG_DOUBLE): Likewise.
+ * bits/floatn.h (__HAVE_FLOAT64X): New macro.
+ (__HAVE_FLOAT64X_LONG_DOUBLE): Likewise.
+ * sysdeps/ia64/bits/floatn.h (__HAVE_FLOAT64X): Likewise.
+ (__HAVE_FLOAT64X_LONG_DOUBLE): Likewise.
+ * sysdeps/ieee754/ldbl-128/bits/floatn.h (__HAVE_FLOAT64X):
+ Likewise.
+ (__HAVE_FLOAT64X_LONG_DOUBLE): Likewise.
+ * sysdeps/mips/ieee754/bits/floatn.h (__HAVE_FLOAT64X): Likewise.
+ (__HAVE_FLOAT64X_LONG_DOUBLE): Likewise.
+ * sysdeps/powerpc/bits/floatn.h (__HAVE_FLOAT64X): Likewise.
+ (__HAVE_FLOAT64X_LONG_DOUBLE): Likewise.
+ * sysdeps/x86/bits/floatn.h (__HAVE_FLOAT64X): Likewise.
+ (__HAVE_FLOAT64X_LONG_DOUBLE): Likewise.
+ * manual/math.texi (Mathematics): Document support for _Float64x.
+ * math/Versions (GLIBC_2.27): Add _Float64x functions.
+ * stdlib/Versions (GLIBC_2.27): Likewise.
+ * wcsmbs/Versions (GLIBC_2.27): Likewise.
+ * sysdeps/unix/sysv/linux/aarch64/libc.abilist: Update.
+ * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/i386/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/ia64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
+ * sysdeps/i386/fpu/libm-test-ulps: Likewise.
+ * sysdeps/i386/i686/fpu/multiarch/libm-test-ulps: Likewise.
+
+2017-11-27 Andreas Schwab <schwab@suse.de>
+
+ * elf/Makefile (dl-routines): Add dl-sort-maps.
+ * elf/dl-sort-maps.c: New file.
+ * sysdeps/generic/ldsodefs.h (_dl_sort_fini): Don't declare.
+ (_dl_sort_maps): Declare.
+ * elf/dl-fini.c (_dl_sort_fini): Remove.
+ (_dl_fini): Use _dl_sort_maps instead of _dl_sort_fini.
+ * elf/dl-close.c (_dl_close_worker): Likewise.
+ * elf/dl-deps.c (_dl_map_object_deps): Use _dl_sort_maps instead of
+ open-coding it.
+ * elf/dl-open.c (dl_open_worker): Likewise.
+
+2017-11-24 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/ieee754/float128/s_fromfpf128.c (fromfpf128): Define
+ using libm_alias_float128.
+ * sysdeps/ieee754/float128/s_fromfpxf128.c (fromfpxf128):
+ Likewise.
+ * sysdeps/ieee754/float128/s_setpayloadf128.c (setpayloadf128):
+ Likewise.
+ * sysdeps/ieee754/float128/s_setpayloadsigf128.c
+ (setpayloadsigf128): Likewise.
+ * sysdeps/ieee754/float128/s_ufromfpf128.c (ufromfpf128):
+ Likewise.
+ * sysdeps/ieee754/float128/s_ufromfpxf128.c (ufromfpxf128):
+ Likewise.
+
+ * sysdeps/powerpc/powerpc64le/Makefile ($(foreach
+ suf,$(all-object-suffixes),$(objpfx)test-float64x%$(suf))): Add
+ -mfloat128 to CFLAGS.
+ ($(foreach
+ suf,$(all-object-suffixes),$(objpfx)test-ifloat64x%$(suf))):
+ Likewise.
+ (CFLAGS-libm-test-support-float64x.c): New variable.
+ ($(objpfx)test-float64x% $(objpfx)test-ifloat64x%): Add
+ $(f128-loader-link) to gnulib-tests.
+
+ * sysdeps/generic/libm-alias-float128.h: Include <bits/floatn.h>.
+ (libm_alias_float128_other_r): If
+ [__HAVE_FLOAT64X && !__HAVE_FLOAT64X_LONG_DOUBLE], define f64x
+ alias.
+ (libm_alias_float128_r): Add semicolon after weak_alias call.
+ * sysdeps/generic/libm-alias-ldouble.h
+ (libm_alias_ldouble_other_r_f128): New macro.
+ (libm_alias_ldouble_other_r_f64x): Likewise.
+ (libm_alias_ldouble_other_r): Use libm_alias_ldouble_other_r_f128
+ and libm_alias_ldouble_other_r_f64x.
+ (libm_alias_ldouble_r): Add semicolon after weak_alias call.
+ * sysdeps/ieee754/ldbl-opt/libm-alias-ldouble.h
+ (libm_alias_ldouble_other_r_f128): New macro.
+ (libm_alias_ldouble_other_r_f64x): Likewise.
+ (libm_alias_ldouble_other_r): Use libm_alias_ldouble_other_r_f128
+ and libm_alias_ldouble_other_r_f64x.
+
+ * stdlib/strfroml.c: Always include <stdlib.h>.
+ [__HAVE_FLOAT64X_LONG_DOUBLE] (strfromf64x): Define and later
+ undefine as macro and define as weak alias.
+ * sysdeps/ieee754/float128/strfromf128.c: Include <bits/floatn.h>.
+ [__HAVE_FLOAT64X && !__HAVE_FLOAT64X_LONG_DOUBLE]: Include
+ <stdlib.h>.
+ [__HAVE_FLOAT64X && !__HAVE_FLOAT64X_LONG_DOUBLE] (strfromf64x):
+ Define and later undefine as macro and define as weak alias.
+
+ * stdlib/strtold.c [__HAVE_FLOAT64X_LONG_DOUBLE] (strtof64x):
+ Define and later undefine as macro. Define as weak alias if
+ [!USE_WIDE_CHAR].
+ [__HAVE_FLOAT64X_LONG_DOUBLE] (wcstof64x): Define and later
+ undefine as macro. Define as weak alias if [USE_WIDE_CHAR].
+ * sysdeps/ieee754/float128/strtof128.c: Include <bits/floatn.h>.
+ [__HAVE_FLOAT64X && !__HAVE_FLOAT64X_LONG_DOUBLE] (strtof64x):
+ Define and later undefine as macro. Define as weak alias if
+ [!USE_WIDE_CHAR].
+ [__HAVE_FLOAT64X && !__HAVE_FLOAT64X_LONG_DOUBLE] (wcstof64x):
+ Define and later undefine as macro. Define as weak alias if
+ [USE_WIDE_CHAR].
+ * sysdeps/ieee754/float128/strtof128_l.c
+ [__HAVE_FLOAT64X && !__HAVE_FLOAT64X_LONG_DOUBLE] (strtof64x_l):
+ Define and later undefine as macro. Define as weak alias if
+ [!USE_WIDE_CHAR].
+ [__HAVE_FLOAT64X && !__HAVE_FLOAT64X_LONG_DOUBLE] (wcstof64x_l):
+ Define and later undefine as macro. Define as weak alias if
+ [USE_WIDE_CHAR].
+ * sysdeps/ieee754/ldbl-128/strtold_l.c
+ [__HAVE_FLOAT64X_LONG_DOUBLE] (strtof64x_l): Define and later
+ undefine as macro. Define as weak alias if [!USE_WIDE_CHAR].
+ [__HAVE_FLOAT64X_LONG_DOUBLE] (wcstof64x_l): Define and later
+ undefine as macro. Define as weak alias if [USE_WIDE_CHAR].
+ * sysdeps/ieee754/ldbl-64-128/strtold_l.c
+ [__HAVE_FLOAT64X_LONG_DOUBLE] (strtof64x_l): Define and later
+ undefine as macro. Define as weak alias if [!USE_WIDE_CHAR].
+ [__HAVE_FLOAT64X_LONG_DOUBLE] (wcstof64x_l): Define and later
+ undefine as macro. Define as weak alias if [USE_WIDE_CHAR].
+ * sysdeps/ieee754/ldbl-96/strtold_l.c
+ [__HAVE_FLOAT64X_LONG_DOUBLE] (strtof64x_l): Define and later
+ undefine as macro. Define as weak alias if [!USE_WIDE_CHAR].
+ [__HAVE_FLOAT64X_LONG_DOUBLE] (wcstof64x_l): Define and later
+ undefine as macro. Define as weak alias if [USE_WIDE_CHAR].
+
+ * math/test-float64x.h: New file.
+ * math/Makefile (type-float64x-yes): New variable.
+ (test-types): Add $(type-float64x-$(float64x-alias-fcts)).
+
+ * sysdeps/generic/math_private.h (min_of_type_f): Make into a
+ function-like macro.
+ (min_of_type_): Likewise.
+ (min_of_type_l): Likewise.
+ (min_of_type_f128): Likewise.
+ (min_of_type): Pass () as last argument of __MATH_TG.
+
+ * stdlib/tst-strtod-round-skeleton.c
+ (__STDC_WANT_IEC_60559_TYPES_EXT__): Define before including
+ headers.
+
+ * math/gen-tgmath-tests.py (Type.init_types): Pass suffix argument
+ for combinations of long double with _Float64 and _Float64x.
+
+ * bits/libm-simd-decl-stubs.h (__DECL_SIMD_cosf16): New macro.
+ (__DECL_SIMD_cosf32): Likewise.
+ (__DECL_SIMD_cosf64): Likewise.
+ (__DECL_SIMD_cosf32x): Likewise.
+ (__DECL_SIMD_cosf64x): Likewise.
+ (__DECL_SIMD_cosf128x): Likewise.
+ (__DECL_SIMD_sinf16): Likewise.
+ (__DECL_SIMD_sinf32): Likewise.
+ (__DECL_SIMD_sinf64): Likewise.
+ (__DECL_SIMD_sinf32x): Likewise.
+ (__DECL_SIMD_sinf64x): Likewise.
+ (__DECL_SIMD_sinf128x): Likewise.
+ (__DECL_SIMD_sincosf16): Likewise.
+ (__DECL_SIMD_sincosf32): Likewise.
+ (__DECL_SIMD_sincosf64): Likewise.
+ (__DECL_SIMD_sincosf32x): Likewise.
+ (__DECL_SIMD_sincosf64x): Likewise.
+ (__DECL_SIMD_sincosf128x): Likewise.
+ (__DECL_SIMD_logf16): Likewise.
+ (__DECL_SIMD_logf32): Likewise.
+ (__DECL_SIMD_logf64): Likewise.
+ (__DECL_SIMD_logf32x): Likewise.
+ (__DECL_SIMD_logf64x): Likewise.
+ (__DECL_SIMD_logf128x): Likewise.
+ (__DECL_SIMD_expf16): Likewise.
+ (__DECL_SIMD_expf32): Likewise.
+ (__DECL_SIMD_expf64): Likewise.
+ (__DECL_SIMD_expf32x): Likewise.
+ (__DECL_SIMD_expf64x): Likewise.
+ (__DECL_SIMD_expf128x): Likewise.
+ (__DECL_SIMD_powf16): Likewise.
+ (__DECL_SIMD_powf32): Likewise.
+ (__DECL_SIMD_powf64): Likewise.
+ (__DECL_SIMD_powf32x): Likewise.
+ (__DECL_SIMD_powf64x): Likewise.
+ (__DECL_SIMD_powf128x): Likewise.
+
+ * stdlib/Versions (libc): Move entries for wcstof128 and
+ wcstof128_l to ....
+ * wcsmbs/Versions (libc): ... here.
+ Include <float128-abi.h>.
+
+2017-11-24 Florian Weimer <fweimer@redhat.com>
+
+ * sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
+ bits/mman-shared.h.
+ * sysdeps/unix/sysv/linux/bits/mman-linux.h: Include
+ <bits/mman-shared.h>.
+ (MFD_CLOEXEC, MFD_ALLOW_SEALING, MFD_HUGETLB, memfd_create): Move
+ to ...
+ * sysdeps/unix/sysv/linux/bits/mman-shared.h: ... this new file.
+ Add #ifndef guard for the MFD_* constants based on MFD_CLOEXEC.
+ * sysdeps/unix/sysv/linux/hppa/bits/mman.h: Include
+ <bits/mman-shared.h>.
+
+2017-11-24 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ [BZ #22457]
+ * sysdeps/posix/preadv_common.c (PREADV): Use mmap/munmap instead of
+ posix_memalign/free.
+ * sysdeps/posix/pwritev_common.c (PWRITEV): Likewise.
+
+2017-11-22 Mike FABIAN <mfabian@redhat.com>
+
+ [BZ #22469]
+ * localedata/locales/pl_PL (LC_COLLATE): Use “copy "iso14651_t1"â€
+ and implement the collation rules for pl from CLDR on top of that.
+ * Makefile: Add pl_PL.UTF-8 to test-input and to the list
+ of locales to be built for testing.
+ * pl_PL.UTF-8.in: New file with test data to test the Polish sorting.
+
+2017-11-23 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/ia64/fpu/libm-symbols.h: Include <libm-alias-ldouble.h>.
+ * sysdeps/ia64/fpu/e_acoshl.S (acoshl): Use
+ libm_alias_ldouble_other.
+ * sysdeps/ia64/fpu/e_acosl.S (acosl): Likewise.
+ * sysdeps/ia64/fpu/e_asinl.S (asinl): Likewise.
+ * sysdeps/ia64/fpu/e_atanhl.S (atanhl): Likewise.
+ * sysdeps/ia64/fpu/e_coshl.S (coshl): Likewise.
+ * sysdeps/ia64/fpu/e_exp10l.S (exp10l): Likewise.
+ * sysdeps/ia64/fpu/e_exp2l.S (exp2l): Likewise.
+ * sysdeps/ia64/fpu/e_fmodl.S (fmodl): Likewise.
+ * sysdeps/ia64/fpu/e_hypotl.S (hypotl): Likewise.
+ * sysdeps/ia64/fpu/e_lgammal_r.c (lgammal_r): Define using
+ libm_alias_ldouble_r.
+ * sysdeps/ia64/fpu/e_log2l.S (log2l): Use
+ libm_alias_ldouble_other.
+ * sysdeps/ia64/fpu/e_logl.S (logl): Likewise.
+ (log10l): Likewise.
+ * sysdeps/ia64/fpu/e_powl.S (powl): Likewise.
+ * sysdeps/ia64/fpu/e_remainderl.S (remainderl): Likewise.
+ * sysdeps/ia64/fpu/e_sinhl.S (sinhl): Likewise.
+ * sysdeps/ia64/fpu/e_sqrtl.S (sqrtl): Likewise.
+ * sysdeps/ia64/fpu/libm_sincosl.S (sincosl): Likewise.
+ * sysdeps/ia64/fpu/s_asinhl.S (asinhl): Likewise.
+ * sysdeps/ia64/fpu/s_atanl.S (atanl): Likewise.
+ (atan2l): Likewise.
+ * sysdeps/ia64/fpu/s_cbrtl.S (cbrtl): Likewise.
+ * sysdeps/ia64/fpu/s_ceill.S (ceill): Likewise.
+ * sysdeps/ia64/fpu/s_copysign.S (copysignl): Define using
+ libm_alias_ldouble.
+ * sysdeps/ia64/fpu/s_cosl.S (sinl): Use libm_alias_ldouble_other.
+ (cosl): Likewise.
+ * sysdeps/ia64/fpu/s_erfcl.S (erfcl): Likewise.
+ * sysdeps/ia64/fpu/s_erfl.S (erfl): Likewise.
+ * sysdeps/ia64/fpu/s_expm1l.S (expm1l): Likewise.
+ (expl): Likewise.
+ * sysdeps/ia64/fpu/s_fabsl.S (fabsl): Likewise.
+ * sysdeps/ia64/fpu/s_fdiml.S (fdiml): Likewise.
+ * sysdeps/ia64/fpu/s_floorl.S (floorl): Likewise.
+ * sysdeps/ia64/fpu/s_fmal.S (fmal): Likewise.
+ * sysdeps/ia64/fpu/s_fmaxl.S (fmaxl): Likewise.
+ * sysdeps/ia64/fpu/s_frexpl.c (frexpl): Likewise.
+ * sysdeps/ia64/fpu/s_ldexpl.c (ldexpl): Likewise.
+ * sysdeps/ia64/fpu/s_log1pl.S (log1pl): Likewise.
+ * sysdeps/ia64/fpu/s_logbl.S (logbl): Likewise.
+ * sysdeps/ia64/fpu/s_modfl.S (modfl): Likewise.
+ * sysdeps/ia64/fpu/s_nearbyintl.S (nearbyintl): Define using
+ libm_alias_ldouble.
+ * sysdeps/ia64/fpu/s_nextafterl.S (nextafterl): Use
+ libm_alias_ldouble_other.
+ * sysdeps/ia64/fpu/s_rintl.S (rintl): Likewise.
+ * sysdeps/ia64/fpu/s_roundl.S (roundl): Likewise.
+ * sysdeps/ia64/fpu/s_scalbnl.c (scalbnl): Define using
+ libm_alias_ldouble.
+ * sysdeps/ia64/fpu/s_tanhl.S (tanhl): Use
+ libm_alias_ldouble_other.
+ * sysdeps/ia64/fpu/s_tanl.S (tanl): Likewise.
+ * sysdeps/ia64/fpu/s_truncl.S (truncl): Likewise.
+ * sysdeps/ia64/fpu/w_lgammal_main.c
+ [BUILD_LGAMMA && !USE_AS_COMPAT] (lgammal): Likewise.
+ * sysdeps/ia64/fpu/w_tgammal_compat.S (tgammal): Likewise.
+
+2017-11-23 Florian Weimer <fweimer@redhat.com>
+
+ * malloc/malloc.c (tcache_thread_shutdown): Rename from
+ tcache_thread_freeres. Define for USE_TCACHE and !USE_TCACHE
+ alike. Remove freeres marker.
+ * malloc/arena.c (arena_thread_freeres): Call
+ tcache_thread_shutdown.
+
+2017-11-23 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #22459]
+ Export nscd hash function as __nss_hash.
+ * include/nss.h (__nss_hash): Declare.
+ * nis/nis_hash.c (__nis_hash): Call __nss_hash. Turn into compat
+ symbol.
+ * nscd/Makefile (aux, nscd-modules): Remove nscd_hash.
+ * nscd/cache.c (cache_search, cache_add): Call __nss_hash instead
+ of __nscd_hash.
+ * nscd/nscd_helper.c (__nscd_cache_search): Likewise.
+ * nscd/nscd_hash.h, nscd/nscd_hash.c: Remove files.
+ * nss/Makefiles (routines): Add nss_hash.
+ * nss/Versions (GLIBC_PRIVATE): Export __nss_hash.
+ * nss/nss_hash.c: Rename from nis/nis_hash.c.
+ (__nss_hash): Rename from __nis_hash. Define hidden alias.
+ * nis/rpcsvc/nislib.h (__nis_hash): Remove declaration.
+
+2017-11-23 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #22478]
+ * sysdeps/unix/sysv/linux/sigwait.c (__sigwait): Retry on EINTR.
+ Return error code, not -1.
+ * signal/tst-sigwait-eintr.c: New file.
+ * signal/Makefile (tests): Add tst-sigwait-eintr.
+
+2017-11-23 Florian Weimer <fweimer@redhat.com>
+
+ Linux: Add memfd_create system call wrapper
+ * sysdeps/unix/sysv/linux/Makefile [misc] (tests): Add
+ tst-memfd_create.
+ * sysdeps/unix/sysv/linux/bits/mman-linux.h [__USE_GNU]
+ (MFD_CLOEXEC, MFD_ALLOW_SEALING): Define.
+ [__USE_GNU] (memfd_create): Declare.
+ * sysdeps/unix/sysv/linux/Versions (GLIBC_2.27): Add memfd_create.
+ * sysdeps/unix/sysv/linux/syscalls.list (memfd_create): Add.
+ * sysdeps/unix/sysv/linux/tst-memfd_create.c: New file.
+ * sysdeps/unix/sysv/linux/**.abilist: Update.
+ * manual/llio.texi (Memory-mapped I/O): Document memfd_create.
+
+2017-11-22 Joseph Myers <joseph@codesourcery.com>
+
+ * localedata/gen-locale.sh: Fix typo in variable name.
+
+ * resolv/res_debug.c (p_secstodate): Condition definition on
+ [SHLIB_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_27)]. Define
+ directly as __p_secstodate, and as a compat symbol. Do not use
+ libresolv_hidden_def.
+ * resolv/resolv.h (p_secstodate): Remove macro and function
+ declaration.
+ * resolv/ns_print.c (ns_sprintrrf): Print times with %lu, not
+ using p_secstodate.
+ * include/resolv.h (__p_secstodate): Do not use
+ libresolv_hidden_proto.
+ * resolv/Makefile (tests): Move tst-p_secstodate to ....
+ (tests-internal): ... here.
+ * resolv/tst-p_secstodate.c: Include <shlib-compat.h>. Condition
+ all contents on [TEST_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_27)]
+ and declare and use __p_secstodate and use compat_symbol_reference
+ in that case.
+ [!TEST_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_27)] (do_test): Add
+ implementation returning 77.
+
+ [BZ #22463]
+ * resolv/res_debug.c: Include <libc-diag.h>.
+ (p_secstodate): Assert time_t at least as wide as u_long. On
+ overflow, use integer seconds since the epoch as output, or use
+ "<overflow>" as output and set errno to EOVERFLOW if integer
+ seconds since the epoch would be 14 or more characters.
+ (p_secstodate) [__GNUC_PREREQ (7, 0)]: Disable -Wformat-overflow=
+ for sprintf call.
+ * resolv/tst-p_secstodate.c: New file.
+ * resolv/Makefile (tests): Add tst-p_secstodate.
+ ($(objpfx)tst-p_secstodate): Depend on $(objpfx)libresolv.so.
+
+ * sysdeps/sparc/sparc64/soft-fp/s_frexpl.c: Remove file.
+ * sysdeps/sparc/sparc64/soft-fp/s_scalblnl.c: Likewise.
+ * sysdeps/sparc/sparc64/soft-fp/s_scalbnl.c: Likewise.
+
+2017-11-22 Paul Eggert <eggert@cs.ucla.edu>
+
+ * posix/regcomp.c (init_word_char): Add comments.
+
+2017-11-22 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #22447]
+ * sysdeps/unix/getlogin_r.c (__getlogin_r): Use __strnlen not
+ strlen to compute length of ut_user and set trailing NUL byte of
+ result explicitly.
+
+2017-11-21 Mike FABIAN <mfabian@redhat.com>
+
+ [BZ #15537]
+ * localedata/locales/lv_LV (LC_COLLATE): Fix collation by
+ using “copy "iso14651_t1"†and then implementing the
+ collation rules for lv from CLDR on top of that.
+ * Makefile: Add lv_LV.UTF-8 to test-input and to the list
+ of locales to be built for testing.
+ * lv_LV.UTF-8.in: New file with test data to test the Latvian
+ sorting.
+
+2017-11-21 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/hppa/bits/mman.h
+ [__USE_MISC] (MADV_SPACEAVAIL): Remove macro.
+ [__USE_MISC] (MADV_VPS_PURGE): Likewise.
+ [__USE_MISC] (MADV_VPS_INHERIT): Likewise.
+ [__USE_MISC] (MADV_HWPOISON): New macro.
+ [__USE_MISC] (MADV_SOFT_OFFLINE): Likewise.
+
+2017-11-21 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * nptl/pthreadP.h (ASSERT_PTHREAD_INTERNAL_SIZE): Add workarond for
+ -Wmissing-braces on GCC 4.9.
+
+2017-11-21 Stefan Liebler <stli@linux.vnet.ibm.com>
+
+ * sysdeps/s390/s390-64/start.S (_start): Add cfi information for r14.
+ * sysdeps/s390/s390-32/start.S (_start): Likewise
+ * sysdeps/unix/sysv/linux/s390/s390-64/clone.S
+ (thread_start): Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/clone.S
+ (thread_start): Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/__makecontext_ret.S
+ (__makecontext_ret): Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/__makecontext_ret.S
+ (__makecontext_ret): Likewise.
+
+2017-11-21 Stefan Liebler <stli@linux.vnet.ibm.com>
+
+ * include/wchar.h (__wcsnlen, __wcscat, __wcsncpy, __wcpncpy,
+ __wcschrnul): Remove attribute_hidden.
+
+2017-11-20 Paul Eggert <eggert@cs.ucla.edu>
+
+ regex: don't assume uint64_t or uint32_t
+ This avoids -Werror=overflow errors for 32-bit systems in
+ the 64-bit case. Problem reported by Joseph Myers in:
+ https://sourceware.org/ml/libc-alpha/2017-11/msg00694.html
+ Also, when this code is used in Gnulib it ports to platforms
+ that lack uint64_t and uint32_t. The C standard doesn't guarantee
+ them, and on some 32-bit compilers there is no uint64_t.
+ Problem reported by Gianluigi Tiesi in:
+ http://lists.gnu.org/archive/html/bug-gnulib/2012-03/msg00154.html
+ * posix/regcomp.c (init_word_char): Don't assume that the types
+ uint64_t and uint32_t exist. Adapted from Gnulib patch
+ 2012-05-27T06:40:00!eggert@cs.ucla.edu. See:
+ https://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=252b52457da7887667c036d18cc5169777615bb0
+
+2017-11-20 Siddhesh Poyarekar <siddhesh@sourceware.org>
+
+ * sysdeps/aarch64/memset-reg.h: New file.
+ * sysdeps/aarch64/memset.S: Use it.
+ (__memset): Rename to MEMSET macro.
+ [ZVA_MACRO]: Use zva_macro.
+ * sysdeps/aarch64/multiarch/Makefile (sysdep_routines):
+ Add memset_generic and memset_falkor.
+ * sysdeps/aarch64/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Add memset ifuncs.
+ * sysdeps/aarch64/multiarch/init-arch.h (INIT_ARCH): New
+ local variable zva_size.
+ * sysdeps/aarch64/multiarch/memset.c: New file.
+ * sysdeps/aarch64/multiarch/memset_generic.S: New file.
+ * sysdeps/aarch64/multiarch/memset_falkor.S: New file.
+ * sysdeps/aarch64/multiarch/rtld-memset.S: New file.
+ * sysdeps/unix/sysv/linux/aarch64/cpu-features.c
+ (DCZID_DZP_MASK): New macro.
+ (DCZID_BS_MASK): Likewise.
+ (init_cpu_features): Read and set zva_size.
+ * sysdeps/unix/sysv/linux/aarch64/cpu-features.h
+ (struct cpu_features): New member zva_size.
+
+ * benchtests/bench-memcpy-walk.c (START_SIZE): Set to 128.
+ * benchtests/bench-memmove-walk.c (START_SIZE): Likewise.
+ * benchtests/bench-memset-walk.c (START_SIZE): Likewise.
+
+ * benchtests/bench-memcpy-walk.c (do_one_test): Copy only
+ backwards. Fix timing computation.
+ * benchtests/bench-memmove-walk.c (do_one_test): Likewise.
+ * benchtests/bench-memset-walk.c (do_one_test): Walk backwards
+ on memset by N at a time. Fix timing computation.
+
+2017-11-20 Florian Weimer <fweimer@redhat.com>
+
+ * manual/llio.texi (Memory-mapped I/O): Document MAP_HUGETLB,
+ MADV_HUGEPAGE, MADV_NOHUGEPAGE.
+
+2017-11-19 Florian Weimer <fweimer@redhat.com>
+
+ manual: Document mprotect
+ * manual/memory.texi (Memory Protection): New section.
+ * manual/llio.texi (Memory-mapped I/O): Remove duplicate
+ documentation of PROT_* flags and reference the Memory Protection
+ section instead.
+
+2017-11-19 Florian Weimer <fweimer@redhat.com>
+
+ * manual/llio.texi (I/O Primitives): Move preadv, preadv64,
+ pwritev, pwritev64, preadv2, preadv64v2, pwritev2, pwritev64v2 ...
+ (Scatter-Gather): ... to here. Remove misleading comment.
+
+2017-11-18 Christian Brauner <christian.brauner@ubuntu.com>
+
+ * support/support_become_root.c (setup_uid_gid_mapping): Fix comment
+ style.
+
+ * support/support_become_root.c (setup_uid_gid_mapping): Don't fail
+ when /proc/<pid>/setgroups does not exist.
+
+2017-11-18 Florian Weimer <fweimer@redhat.com>
+
+ * sysdeps/unix/sysv/linux/tst-ttyname.c
+ (become_root_in_mount_ns): Remove.
+ (do_in_chroot_1): Call support_enter_mount_namespace.
+ (do_in_chroot_2): Likewise.
+ (do_test): Call support_become_root early.
+
+2017-11-18 Florian Weimer <fweimer@redhat.com>
+
+ * support/namespace.h (support_enter_mount_namespace): Declare.
+ * support/support_enter_mount_namespace.c: New file.
+ * support/Makefile (libsupport-routines): Add
+ support_enter_mount_namespace.
+
+2017-11-18 Florian Weimer <fweimer@redhat.com>
+
+ * support/temp_file.c (support_create_temp_directory): Use
+ test_dir and do not rely on the presence of the XXXXXX suffix.
+ * support/temp_file.h (support_create_temp_directory): Update
+ comment.
+ * support/tst-xreadlink.c (do_test): Adjust.
+ * support/support_chroot.c (support_chroot_create): Likewise.
+
+2017-11-17 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
+
+ * sysdeps/powerpc/bits/hwcap.h (PPC_FEATURE2_HTM_NO_SUSPEND): New
+ macro.
+ * sysdeps/powerpc/dl-procinfo.c (_dl_powerpc_cap_flags): Add
+ htm-no-suspend.
+
+2017-11-17 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/x86_64/fpu/e_expl.S: Include <libm-alias-ldouble.h>.
+ [USE_AS_EXPM1L] (expm1l): Define using libm_alias_ldouble.
+ * sysdeps/x86_64/fpu/s_ceill.S: Include <libm-alias-ldouble.h>.
+ (ceill): Define using libm_alias_ldouble.
+ * sysdeps/x86_64/fpu/s_copysignl.S: Include
+ <libm-alias-ldouble.h>.
+ (copysignl): Define using libm_alias_ldouble.
+ * sysdeps/x86_64/fpu/s_fabsl.S: Include <libm-alias-ldouble.h>.
+ (fabsl): Define using libm_alias_ldouble.
+ * sysdeps/x86_64/fpu/s_floorl.S: Include <libm-alias-ldouble.h>.
+ (floorl): Define using libm_alias_ldouble.
+ * sysdeps/x86_64/fpu/s_fmaxl.S: Include <libm-alias-ldouble.h>.
+ (fmaxl): Define using libm_alias_ldouble.
+ * sysdeps/x86_64/fpu/s_fminl.S: Include <libm-alias-ldouble.h>.
+ (fminl): Define using libm_alias_ldouble.
+ * sysdeps/x86_64/fpu/s_llrintl.S: Include <libm-alias-ldouble.h>.
+ (llrintl): Define using libm_alias_ldouble.
+ (lrintl): Likewise.
+ * sysdeps/x86_64/fpu/s_nearbyintl.S: Include
+ <libm-alias-ldouble.h>.
+ (nearbyintl): Define using libm_alias_ldouble.
+ * sysdeps/x86_64/fpu/s_truncl.S: Include <libm-alias-ldouble.h>.
+ (truncl): Define using libm_alias_ldouble.
+ * sysdeps/x86_64/x32/fpu/s_lrintl.S: Include
+ <libm-alias-ldouble.h>.
+ (lrintl): Define using libm_alias_ldouble.
+
+ * sysdeps/i386/fpu/e_expl.S: Include <libm-alias-ldouble.h>.
+ [USE_AS_EXPM1L] (expm1l): Define using libm_alias_ldouble.
+ * sysdeps/i386/fpu/s_asinhl.S: Include <libm-alias-ldouble.h>.
+ (asinhl): Define using libm_alias_ldouble.
+ * sysdeps/i386/fpu/s_atanl.c: Include <libm-alias-ldouble.h>.
+ (atanl): Define using libm_alias_ldouble.
+ * sysdeps/i386/fpu/s_cbrtl.S: Include <libm-alias-ldouble.h>.
+ (cbrtl): Define using libm_alias_ldouble.
+ * sysdeps/i386/fpu/s_ceill.S: Include <libm-alias-ldouble.h>.
+ (ceill): Define using libm_alias_ldouble.
+ * sysdeps/i386/fpu/s_copysignl.S: Include <libm-alias-ldouble.h>.
+ (copysignl): Define using libm_alias_ldouble.
+ * sysdeps/i386/fpu/s_fabsl.S: Include <libm-alias-ldouble.h>.
+ (fabsl): Define using libm_alias_ldouble.
+ * sysdeps/i386/fpu/s_floorl.S: Include <libm-alias-ldouble.h>.
+ (floorl): Define using libm_alias_ldouble.
+ * sysdeps/i386/fpu/s_fmaxl.S: Include <libm-alias-ldouble.h>.
+ (fmaxl): Define using libm_alias_ldouble.
+ * sysdeps/i386/fpu/s_fminl.S: Include <libm-alias-ldouble.h>.
+ (fminl): Define using libm_alias_ldouble.
+ * sysdeps/i386/fpu/s_frexpl.S: Include <libm-alias-ldouble.h>.
+ (frexpl): Define using libm_alias_ldouble.
+ * sysdeps/i386/fpu/s_llrintl.S: Include <libm-alias-ldouble.h>.
+ (llrintl): Define using libm_alias_ldouble.
+ * sysdeps/i386/fpu/s_logbl.c: Include <libm-alias-ldouble.h>.
+ (logbl): Define using libm_alias_ldouble.
+ * sysdeps/i386/fpu/s_lrintl.S: Include <libm-alias-ldouble.h>.
+ (lrintl): Define using libm_alias_ldouble.
+ * sysdeps/i386/fpu/s_nearbyintl.S: Include <libm-alias-ldouble.h>.
+ (nearbyintl): Define using libm_alias_ldouble.
+ * sysdeps/i386/fpu/s_nextafterl.c: Include <libm-alias-ldouble.h>.
+ (nextafterl): Define using libm_alias_ldouble.
+ * sysdeps/i386/fpu/s_remquol.S: Include <libm-alias-ldouble.h>.
+ (remquol): Define using libm_alias_ldouble.
+ * sysdeps/i386/fpu/s_rintl.c: Include <libm-alias-ldouble.h>.
+ (rintl): Define using libm_alias_ldouble.
+ * sysdeps/i386/fpu/s_truncl.S: Include <libm-alias-ldouble.h>.
+ (truncl): Define using libm_alias_ldouble.
+ * sysdeps/i386/i686/fpu/s_fmaxl.S: Include <libm-alias-ldouble.h>.
+ (fmaxl): Define using libm_alias_ldouble.
+ * sysdeps/i386/i686/fpu/s_fminl.S: Include <libm-alias-ldouble.h>.
+ (fminl): Define using libm_alias_ldouble.
+
+ * bits/floatn-common.h [!__ASSEMBLER]: Disable everything related
+ to C syntax instead of availability and properties of types.
+ * bits/floatn.h [!__ASSEMBLER]: Likewise.
+ * sysdeps/ia64/bits/floatn.h [!__ASSEMBLER]: Likewise.
+ * sysdeps/ieee754/ldbl-128/bits/floatn.h [!__ASSEMBLER]: Likewise.
+ * sysdeps/mips/ieee754/bits/floatn.h [!__ASSEMBLER]: Likewise.
+ * sysdeps/powerpc/bits/floatn.h [!__ASSEMBLER]: Likewise.
+ * sysdeps/x86/bits/floatn.h [!__ASSEMBLER]: Likewise.
+
+2017-11-17 Florian Weimer <fweimer@redhat.com>
+
+ support_become_root: Enable file creation in namespaces.
+ * support/support_become_root.c (setup_mapping): New function.
+ (support_become_root): Call it.
+
+2017-11-17 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/aarch64/bits/hwcap.h (HWCAP_DCPOP): New
+ macro.
+
+2017-11-16 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/aarch64/fpu/Makefile (CFLAGS-s_fmax.c, CFLAGS-s_fmaxf.c,
+ CFLAGS-s_fmin.c, CFLAGS-s_fminf.c): New rule: add -ffinite-math-only.
+
+2017-11-16 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/net/if_arp.h (ARPHRD_RAWIP): New macro.
+
+ * sysdeps/unix/sysv/linux/syscall-names.list: Update kernel
+ version to 4.14.
+
+2017-11-16 Siddhesh Poyarekar <siddhesh@sourceware.org>
+
+ * INSTALL: Fix botched up regeneration.
+
+ * NEWS: Update sourceare link to https.
+ * configure.ac: Likewise.
+ * crypt/md5test-giant.c: Likewise.
+ * dlfcn/bug-atexit1.c: Likewise.
+ * dlfcn/bug-atexit2.c: Likewise.
+ * localedata/README: Likewise.
+ * malloc/tst-mallocfork.c: Likewise.
+ * manual/install.texi: Likewise.
+ * nptl/tst-pthread-getattr.c: Likewise.
+ * stdio-common/tst-fgets.c: Likewise.
+ * stdio-common/tst-fwrite.c: Likewise.
+ * sunrpc/Makefile: Likewise.
+ * sysdeps/arm/armv7/multiarch/memcpy_impl.S: Likewise.
+ * wcsmbs/tst-mbrtowc2.c: Likewise.
+ * configure: Regenerate.
+ * INSTALL: Regenerate.
+
+2017-11-15 Martin Sebor <msebor@redhat.com>
+
+ * misc/sys/cdefs.h (__attribute_nonstring__): New macro.
+ * sysdeps/gnu/bits/utmp.h (struct utmp): Use it.
+ * sysdeps/unix/sysv/linux/s390/bits/utmp.h (struct utmp): Same.
+
+2017-11-15 Luke Shumaker <lukeshu@parabola.nu>
+
+ [BZ #22145]
+ * sysdeps/unix/sysv/linux/tst-ttyname.c: New file.
+ * sysdeps/unix/sysv/linux/Makefile: Add tst-ttyname to tests.
+
+ [BZ #22145]
+ * sysdeps/unix/sysv/linux/ttyname.c (ttyname):
+ Defer is_pty check until end of the function.
+ * sysdeps/unix/sysv/linux/ttyname_r.c (__ttyname_r): Likewise.
+
+ [BZ #22145]
+ * sysdeps/unix/sysv/linux/ttyname.h (is_mytty): New function.
+ * sysdeps/unix/sysv/linux/ttyname.c (getttyname): Call is_mytty.
+ (ttyname): Likewise.
+ * sysdeps/unix/sysv/linux/ttyname_r.c (getttyname_r): Likewise.
+ (__ttyname_r): Likewise.
+
+ * sysdeps/unix/sysv/linux/ttyname.h (is_pty): Change return type from
+ int to bool.
+
+ * sysdeps/unix/sysv/linux/ttyname.h (is_pty): Update doc reference.
+
+ * manual/terminal.texi (Is It a Terminal):
+ Mention ENODEV for ttyname and ttyname_r.
+
+2017-11-15 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/bits/socket.h (MSG_ZEROCOPY): New enum
+ constant and macro.
+
+ * sysdeps/unix/sysv/linux/bits/mman-linux.h
+ [__USE_MISC] (MADV_WIPEONFORK): New macro.
+ [__USE_MISC] (MADV_KEEPONFORK): Likewise.
+ * sysdeps/unix/sysv/linux/hppa/bits/mman.h
+ [__USE_MISC] (MADV_WIPEONFORK): Likewise.
+ [__USE_MISC] (MADV_KEEPONFORK): Likewise.
+
+2017-11-15 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * signal/sigrelse.c (sigrelse): Optimize implementation.
+
+ * sysdeps/posix/sigpause.c (do_sigpause): Remove.
+ (__sigpause): Rely on __sigsuspend to implement single thread
+ optimization. Add LIBC_CANCEL_HANDLED for cancellation marking.
+
+2017-11-15 Joseph Myers <joseph@codesourcery.com>
+
+ * scripts/build-many-glibcs.py (Context.checkout): Default Linux
+ kernel version to 4.14.
+
+2017-11-15 Steve Ellcey <sellcey@cavium.com>
+
+ [BZ #22442]
+ * sysdeps/unix/sysv/linux/if_index.c (__if_nametoindex):
+ Check if ifname is too long.
+
+2017-11-15 Luke Shumaker <lukeshu@parabola.nu>
+
+ * sysdeps/unix/sysv/linux/epoll_wait.c: Include <sysdep-cancel.h>.
+
+2017-11-15 Mike FABIAN <mfabian@redhat.com>
+
+ * localedata/locales/ka_GE (LC_MESSAGES): Add “X†back to yesexpr,
+ was accidentally lost.
+
+2017-11-15 Mike FABIAN <mfabian@redhat.com>
+
+ * localedata/locales/az_IR: Add standard copyright header.
+
+2017-11-15 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #22439]
+ * malloc/malloc.c (__malloc_info): Count all heaps in an arena,
+ not just the top one. Output a new "subheaps" statistic.
+
+2017-11-15 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #22408]
+ * malloc/malloc.c (__malloc_info): Obtain arena heap statistics
+ under the per-arena lock.
+ * malloc/Makefile (tests): Add tst-malloc_info.
+ (tst-malloc_info): Link with libpthread.
+ * malloc/tst-malloc_info.c: New file.
+
+2017-11-15 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #21660]
+ * math/tgmath.h (__HAVE_BUILTIN_TGMATH): New macro.
+ [__HAVE_BUILTIN_TGMATH] (__TG_F16_ARG): Likewise.
+ [__HAVE_BUILTIN_TGMATH] (__TG_F32_ARG): Likewise.
+ [__HAVE_BUILTIN_TGMATH] (__TG_F64_ARG): Likewise.
+ [__HAVE_BUILTIN_TGMATH] (__TG_F128_ARG): Likewise.
+ [__HAVE_BUILTIN_TGMATH] (__TG_F32X_ARG): Likewise.
+ [__HAVE_BUILTIN_TGMATH] (__TG_F64X_ARG): Likewise.
+ [__HAVE_BUILTIN_TGMATH] (__TG_F128X_ARG): Likewise.
+ [__HAVE_BUILTIN_TGMATH] (__TGMATH_FUNCS): Likewise.
+ [__HAVE_BUILTIN_TGMATH] (__TGMATH_RCFUNCS): Likewise.
+ [__HAVE_BUILTIN_TGMATH] (__TGMATH_1): Likewise.
+ [__HAVE_BUILTIN_TGMATH] (__TGMATH_2): Likewise.
+ [__HAVE_BUILTIN_TGMATH] (__TGMATH_2STD): Likewise.
+ [__HAVE_BUILTIN_TGMATH] (__TGMATH_3): Likewise.
+ [__HAVE_BUILTIN_TGMATH] (__TGMATH_1C): Likewise.
+ [__HAVE_BUILTIN_TGMATH] (__TGMATH_2C): Likewise.
+ (__tgml): Make conditional on [!__HAVE_BUILTIN_TGMATH].
+ (__floating_type): Likewise.
+ (__real_integer_type): Likewise.
+ (__complex_integer_type): Likewise.
+ (__expr_is_real): Likewise.
+ (__tgmath_real_type_sub): Likewise.
+ (__tgmath_real_type): Likewise.
+ (__tgmath_complex_type_sub): Likewise.
+ (__tgmath_complex_type): Likewise.
+ (__TGMATH_F128): Likewise.
+ (__TGMATH_CF128): Likewise.
+ [__HAVE_BUILTIN_TGMATH] (__TGMATH_UNARY_REAL_ONLY): Define using
+ new macros.
+ [__HAVE_BUILTIN_TGMATH] (__TGMATH_UNARY_REAL_RET_ONLY): Likewise.
+ [__HAVE_BUILTIN_TGMATH] (__TGMATH_BINARY_FIRST_REAL_ONLY):
+ Likewise.
+ [__HAVE_BUILTIN_TGMATH] (__TGMATH_BINARY_FIRST_REAL_STD_ONLY):
+ Likewise.
+ [__HAVE_BUILTIN_TGMATH] (__TGMATH_BINARY_REAL_ONLY): Likewise.
+ [__HAVE_BUILTIN_TGMATH] (__TGMATH_BINARY_REAL_STD_ONLY): Likewise.
+ [__HAVE_BUILTIN_TGMATH] (__TGMATH_BINARY_REAL_RET_ONLY): Likewise.
+ [__HAVE_BUILTIN_TGMATH] (__TGMATH_TERNARY_FIRST_SECOND_REAL_ONLY):
+ Likewise.
+ [__HAVE_BUILTIN_TGMATH] (__TGMATH_TERNARY_REAL_ONLY): Likewise.
+ [__HAVE_BUILTIN_TGMATH] (__TGMATH_TERNARY_FIRST_REAL_RET_ONLY):
+ Likewise.
+ [__HAVE_BUILTIN_TGMATH] (__TGMATH_UNARY_REAL_IMAG): Likewise.
+ [__HAVE_BUILTIN_TGMATH] (__TGMATH_UNARY_IMAG): Likewise.
+ [__HAVE_BUILTIN_TGMATH] (__TGMATH_UNARY_REAL_IMAG_RET_REAL):
+ Likewise.
+ [__HAVE_BUILTIN_TGMATH] (__TGMATH_BINARY_REAL_IMAG): Likewise.
+ (__TGMATH_UNARY_REAL_IMAG_RET_REAL_SAME): New macro.
+ (carg): Use __TGMATH_UNARY_REAL_IMAG_RET_REAL_SAME.
+ (cimag): Likewise.
+ (creal): Likewise.
+
+2017-11-14 Joseph Myers <joseph@codesourcery.com>
+
+ * string/tester.c (test_stpncpy): Disable -Wstringop-truncation
+ for stpncpy calls for GCC 8.
+ (test_strncat): Disable -Wstringop-truncation warning for strncat
+ calls for GCC 8. Disable -Wstringop-overflow= warning for one
+ strncat call for GCC 7.
+ (test_strncpy): Disable -Wstringop-truncation warning for strncpy
+ calls for GCC 8.
+ (test_memcmp): Use memcpy instead of strncpy for calls not copying
+ trailing NUL.
+
+ * string/bug-strncat1.c: Include <libc-diag.h>.
+ (main): Disable -Wstringop-truncation for strncat call for GCC 8.
+
+2017-11-13 Claude Paroz <claude@2xlibre.net>
+
+ [BZ #22387]
+ * localedata/locales/aa_DJ: Improved readibility by replacing
+ <Uxxxx> sequences in the ASCII printable range by their ASCII
+ character equivalents.
+ * localedata/locales/aa_ER: Likewise.
+ * localedata/locales/aa_ER@saaho: Likewise.
+ * localedata/locales/aa_ET: Likewise.
+ * localedata/locales/af_ZA: Likewise.
+ * localedata/locales/agr_PE: Likewise.
+ * localedata/locales/ak_GH: Likewise.
+ * localedata/locales/am_ET: Likewise.
+ * localedata/locales/anp_IN: Likewise.
+ * localedata/locales/ar_AE: Likewise.
+ * localedata/locales/ar_BH: Likewise.
+ * localedata/locales/ar_DZ: Likewise.
+ * localedata/locales/ar_EG: Likewise.
+ * localedata/locales/ar_IN: Likewise.
+ * localedata/locales/ar_IQ: Likewise.
+ * localedata/locales/ar_JO: Likewise.
+ * localedata/locales/ar_KW: Likewise.
+ * localedata/locales/ar_LB: Likewise.
+ * localedata/locales/ar_LY: Likewise.
+ * localedata/locales/ar_MA: Likewise.
+ * localedata/locales/ar_OM: Likewise.
+ * localedata/locales/ar_QA: Likewise.
+ * localedata/locales/ar_SA: Likewise.
+ * localedata/locales/ar_SD: Likewise.
+ * localedata/locales/ar_SS: Likewise.
+ * localedata/locales/ar_SY: Likewise.
+ * localedata/locales/ar_TN: Likewise.
+ * localedata/locales/ar_YE: Likewise.
+ * localedata/locales/as_IN: Likewise.
+ * localedata/locales/ast_ES: Likewise.
+ * localedata/locales/ayc_PE: Likewise.
+ * localedata/locales/az_AZ: Likewise.
+ * localedata/locales/az_IR: Likewise.
+ * localedata/locales/be_BY: Likewise.
+ * localedata/locales/be_BY@latin: Likewise.
+ * localedata/locales/bem_ZM: Likewise.
+ * localedata/locales/ber_DZ: Likewise.
+ * localedata/locales/ber_MA: Likewise.
+ * localedata/locales/bg_BG: Likewise.
+ * localedata/locales/bhb_IN: Likewise.
+ * localedata/locales/bho_IN: Likewise.
+ * localedata/locales/bi_VU: Likewise.
+ * localedata/locales/bn_BD: Likewise.
+ * localedata/locales/bn_IN: Likewise.
+ * localedata/locales/bo_CN: Likewise.
+ * localedata/locales/bo_IN: Likewise.
+ * localedata/locales/br_FR: Likewise.
+ * localedata/locales/brx_IN: Likewise.
+ * localedata/locales/bs_BA: Likewise.
+ * localedata/locales/byn_ER: Likewise.
+ * localedata/locales/ca_AD: Likewise.
+ * localedata/locales/ca_ES: Likewise.
+ * localedata/locales/ca_FR: Likewise.
+ * localedata/locales/ca_IT: Likewise.
+ * localedata/locales/ce_RU: Likewise.
+ * localedata/locales/chr_US: Likewise.
+ * localedata/locales/cmn_TW: Likewise.
+ * localedata/locales/crh_UA: Likewise.
+ * localedata/locales/cs_CZ: Likewise.
+ * localedata/locales/csb_PL: Likewise.
+ * localedata/locales/cv_RU: Likewise.
+ * localedata/locales/cy_GB: Likewise.
+ * localedata/locales/da_DK: Likewise.
+ * localedata/locales/de_AT: Likewise.
+ * localedata/locales/de_BE: Likewise.
+ * localedata/locales/de_CH: Likewise.
+ * localedata/locales/de_DE: Likewise.
+ * localedata/locales/de_IT: Likewise.
+ * localedata/locales/de_LI: Likewise.
+ * localedata/locales/de_LU: Likewise.
+ * localedata/locales/doi_IN: Likewise.
+ * localedata/locales/dv_MV: Likewise.
+ * localedata/locales/dz_BT: Likewise.
+ * localedata/locales/el_CY: Likewise.
+ * localedata/locales/el_GR: Likewise.
+ * localedata/locales/en_AG: Likewise.
+ * localedata/locales/en_AU: Likewise.
+ * localedata/locales/en_BW: Likewise.
+ * localedata/locales/en_CA: Likewise.
+ * localedata/locales/en_DK: Likewise.
+ * localedata/locales/en_GB: Likewise.
+ * localedata/locales/en_HK: Likewise.
+ * localedata/locales/en_IE: Likewise.
+ * localedata/locales/en_IL: Likewise.
+ * localedata/locales/en_IN: Likewise.
+ * localedata/locales/en_NG: Likewise.
+ * localedata/locales/en_NZ: Likewise.
+ * localedata/locales/en_PH: Likewise.
+ * localedata/locales/en_SG: Likewise.
+ * localedata/locales/en_US: Likewise.
+ * localedata/locales/en_ZA: Likewise.
+ * localedata/locales/en_ZM: Likewise.
+ * localedata/locales/en_ZW: Likewise.
+ * localedata/locales/eo: Likewise.
+ * localedata/locales/es_AR: Likewise.
+ * localedata/locales/es_BO: Likewise.
+ * localedata/locales/es_CL: Likewise.
+ * localedata/locales/es_CO: Likewise.
+ * localedata/locales/es_CR: Likewise.
+ * localedata/locales/es_CU: Likewise.
+ * localedata/locales/es_DO: Likewise.
+ * localedata/locales/es_EC: Likewise.
+ * localedata/locales/es_ES: Likewise.
+ * localedata/locales/es_GT: Likewise.
+ * localedata/locales/es_HN: Likewise.
+ * localedata/locales/es_MX: Likewise.
+ * localedata/locales/es_NI: Likewise.
+ * localedata/locales/es_PA: Likewise.
+ * localedata/locales/es_PE: Likewise.
+ * localedata/locales/es_PR: Likewise.
+ * localedata/locales/es_PY: Likewise.
+ * localedata/locales/es_SV: Likewise.
+ * localedata/locales/es_US: Likewise.
+ * localedata/locales/es_UY: Likewise.
+ * localedata/locales/es_VE: Likewise.
+ * localedata/locales/et_EE: Likewise.
+ * localedata/locales/eu_ES: Likewise.
+ * localedata/locales/eu_ES@euro: Likewise.
+ * localedata/locales/fa_IR: Likewise.
+ * localedata/locales/ff_SN: Likewise.
+ * localedata/locales/fi_FI: Likewise.
+ * localedata/locales/fil_PH: Likewise.
+ * localedata/locales/fo_FO: Likewise.
+ * localedata/locales/fr_BE: Likewise.
+ * localedata/locales/fr_CA: Likewise.
+ * localedata/locales/fr_CH: Likewise.
+ * localedata/locales/fr_FR: Likewise.
+ * localedata/locales/fr_LU: Likewise.
+ * localedata/locales/fur_IT: Likewise.
+ * localedata/locales/fy_DE: Likewise.
+ * localedata/locales/fy_NL: Likewise.
+ * localedata/locales/ga_IE: Likewise.
+ * localedata/locales/gd_GB: Likewise.
+ * localedata/locales/gez_ER: Likewise.
+ * localedata/locales/gez_ET: Likewise.
+ * localedata/locales/gl_ES: Likewise.
+ * localedata/locales/gu_IN: Likewise.
+ * localedata/locales/gv_GB: Likewise.
+ * localedata/locales/ha_NG: Likewise.
+ * localedata/locales/hak_TW: Likewise.
+ * localedata/locales/he_IL: Likewise.
+ * localedata/locales/hi_IN: Likewise.
+ * localedata/locales/hif_FJ: Likewise.
+ * localedata/locales/hne_IN: Likewise.
+ * localedata/locales/hr_HR: Likewise.
+ * localedata/locales/hsb_DE: Likewise.
+ * localedata/locales/ht_HT: Likewise.
+ * localedata/locales/hu_HU: Likewise.
+ * localedata/locales/hy_AM: Likewise.
+ * localedata/locales/i18n: Likewise.
+ * localedata/locales/ia_FR: Likewise.
+ * localedata/locales/id_ID: Likewise.
+ * localedata/locales/ig_NG: Likewise.
+ * localedata/locales/ik_CA: Likewise.
+ * localedata/locales/is_IS: Likewise.
+ * localedata/locales/it_CH: Likewise.
+ * localedata/locales/it_IT: Likewise.
+ * localedata/locales/iu_CA: Likewise.
+ * localedata/locales/ja_JP: Likewise.
+ * localedata/locales/ka_GE: Likewise.
+ * localedata/locales/kk_KZ: Likewise.
+ * localedata/locales/kl_GL: Likewise.
+ * localedata/locales/kn_IN: Likewise.
+ * localedata/locales/ko_KR: Likewise.
+ * localedata/locales/kok_IN: Likewise.
+ * localedata/locales/ks_IN: Likewise.
+ * localedata/locales/ks_IN@devanagari: Likewise.
+ * localedata/locales/ku_TR: Likewise.
+ * localedata/locales/kw_GB: Likewise.
+ * localedata/locales/ky_KG: Likewise.
+ * localedata/locales/lb_LU: Likewise.
+ * localedata/locales/lg_UG: Likewise.
+ * localedata/locales/li_BE: Likewise.
+ * localedata/locales/li_NL: Likewise.
+ * localedata/locales/lij_IT: Likewise.
+ * localedata/locales/ln_CD: Likewise.
+ * localedata/locales/lo_LA: Likewise.
+ * localedata/locales/lt_LT: Likewise.
+ * localedata/locales/lv_LV: Likewise.
+ * localedata/locales/lzh_TW: Likewise.
+ * localedata/locales/mag_IN: Likewise.
+ * localedata/locales/mai_IN: Likewise.
+ * localedata/locales/mg_MG: Likewise.
+ * localedata/locales/mhr_RU: Likewise.
+ * localedata/locales/mi_NZ: Likewise.
+ * localedata/locales/mk_MK: Likewise.
+ * localedata/locales/ml_IN: Likewise.
+ * localedata/locales/mn_MN: Likewise.
+ * localedata/locales/mni_IN: Likewise.
+ * localedata/locales/mr_IN: Likewise.
+ * localedata/locales/ms_MY: Likewise.
+ * localedata/locales/mt_MT: Likewise.
+ * localedata/locales/my_MM: Likewise.
+ * localedata/locales/nan_TW: Likewise.
+ * localedata/locales/nan_TW@latin: Likewise.
+ * localedata/locales/nb_NO: Likewise.
+ * localedata/locales/nds_DE: Likewise.
+ * localedata/locales/nds_NL: Likewise.
+ * localedata/locales/ne_NP: Likewise.
+ * localedata/locales/nhn_MX: Likewise.
+ * localedata/locales/niu_NU: Likewise.
+ * localedata/locales/niu_NZ: Likewise.
+ * localedata/locales/nl_AW: Likewise.
+ * localedata/locales/nl_BE: Likewise.
+ * localedata/locales/nl_NL: Likewise.
+ * localedata/locales/nn_NO: Likewise.
+ * localedata/locales/nr_ZA: Likewise.
+ * localedata/locales/nso_ZA: Likewise.
+ * localedata/locales/oc_FR: Likewise.
+ * localedata/locales/om_ET: Likewise.
+ * localedata/locales/om_KE: Likewise.
+ * localedata/locales/or_IN: Likewise.
+ * localedata/locales/os_RU: Likewise.
+ * localedata/locales/pa_IN: Likewise.
+ * localedata/locales/pa_PK: Likewise.
+ * localedata/locales/pap_AW: Likewise.
+ * localedata/locales/pap_CW: Likewise.
+ * localedata/locales/pl_PL: Likewise.
+ * localedata/locales/ps_AF: Likewise.
+ * localedata/locales/pt_BR: Likewise.
+ * localedata/locales/pt_PT: Likewise.
+ * localedata/locales/quz_PE: Likewise.
+ * localedata/locales/raj_IN: Likewise.
+ * localedata/locales/ro_RO: Likewise.
+ * localedata/locales/ru_RU: Likewise.
+ * localedata/locales/ru_UA: Likewise.
+ * localedata/locales/rw_RW: Likewise.
+ * localedata/locales/sa_IN: Likewise.
+ * localedata/locales/sat_IN: Likewise.
+ * localedata/locales/sc_IT: Likewise.
+ * localedata/locales/sd_IN: Likewise.
+ * localedata/locales/sd_IN@devanagari: Likewise.
+ * localedata/locales/se_NO: Likewise.
+ * localedata/locales/sgs_LT: Likewise.
+ * localedata/locales/shs_CA: Likewise.
+ * localedata/locales/si_LK: Likewise.
+ * localedata/locales/sid_ET: Likewise.
+ * localedata/locales/sk_SK: Likewise.
+ * localedata/locales/sl_SI: Likewise.
+ * localedata/locales/sm_WS: Likewise.
+ * localedata/locales/so_DJ: Likewise.
+ * localedata/locales/so_ET: Likewise.
+ * localedata/locales/so_KE: Likewise.
+ * localedata/locales/so_SO: Likewise.
+ * localedata/locales/sq_AL: Likewise.
+ * localedata/locales/sq_MK: Likewise.
+ * localedata/locales/sr_ME: Likewise.
+ * localedata/locales/sr_RS: Likewise.
+ * localedata/locales/sr_RS@latin: Likewise.
+ * localedata/locales/ss_ZA: Likewise.
+ * localedata/locales/st_ZA: Likewise.
+ * localedata/locales/sv_FI: Likewise.
+ * localedata/locales/sv_SE: Likewise.
+ * localedata/locales/sw_KE: Likewise.
+ * localedata/locales/sw_TZ: Likewise.
+ * localedata/locales/szl_PL: Likewise.
+ * localedata/locales/ta_IN: Likewise.
+ * localedata/locales/ta_LK: Likewise.
+ * localedata/locales/tcy_IN: Likewise.
+ * localedata/locales/te_IN: Likewise.
+ * localedata/locales/tg_TJ: Likewise.
+ * localedata/locales/th_TH: Likewise.
+ * localedata/locales/the_NP: Likewise.
+ * localedata/locales/ti_ER: Likewise.
+ * localedata/locales/ti_ET: Likewise.
+ * localedata/locales/tig_ER: Likewise.
+ * localedata/locales/tk_TM: Likewise.
+ * localedata/locales/tl_PH: Likewise.
+ * localedata/locales/tn_ZA: Likewise.
+ * localedata/locales/to_TO: Likewise.
+ * localedata/locales/tpi_PG: Likewise.
+ * localedata/locales/tr_CY: Likewise.
+ * localedata/locales/tr_TR: Likewise.
+ * localedata/locales/ts_ZA: Likewise.
+ * localedata/locales/tt_RU: Likewise.
+ * localedata/locales/tt_RU@iqtelif: Likewise.
+ * localedata/locales/ug_CN: Likewise.
+ * localedata/locales/uk_UA: Likewise.
+ * localedata/locales/unm_US: Likewise.
+ * localedata/locales/ur_IN: Likewise.
+ * localedata/locales/ur_PK: Likewise.
+ * localedata/locales/uz_UZ: Likewise.
+ * localedata/locales/uz_UZ@cyrillic: Likewise.
+ * localedata/locales/ve_ZA: Likewise.
+ * localedata/locales/vi_VN: Likewise.
+ * localedata/locales/wa_BE: Likewise.
+ * localedata/locales/wae_CH: Likewise.
+ * localedata/locales/wal_ET: Likewise.
+ * localedata/locales/wo_SN: Likewise.
+ * localedata/locales/xh_ZA: Likewise.
+ * localedata/locales/yi_US: Likewise.
+ * localedata/locales/yo_NG: Likewise.
+ * localedata/locales/yue_HK: Likewise.
+ * localedata/locales/yuw_PG: Likewise.
+ * localedata/locales/zh_CN: Likewise.
+ * localedata/locales/zh_HK: Likewise.
+ * localedata/locales/zh_SG: Likewise.
+ * localedata/locales/zh_TW: Likewise.
+ * localedata/locales/zu_ZA: Likewise.
+
+2017-11-13 Florian Weimer <fweimer@redhat.com>
+
+ * support/next_to_fault.h, support/next_to_fault.c: New files.
+ * support/Makefile (libsupport-routines): Add next_to_fault.
+ * resolv/tst-inet_pton.c (struct next_to_fault)
+ (next_to_fault_allocate, next_to_fault_free): Remove.
+ (run_one_test): Switch to <support/next_to_fault.h> interfaces.
+
+2017-11-13 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elf/dl-support.c: Include <dl-procruntime.c>.
+ * include/link.h: Include <link_map.h>.
+ * sysdeps/generic/dl-procruntime.c: New file.
+ * sysdeps/generic/link_map.h: Likewise.
+ * sysdeps/generic/ldsodefs.h: Include <dl-procruntime.c> in
+ the writable ld.so namespace.
+
+2017-11-12 Paul Eggert <eggert@cs.ucla.edu>
+
+ timezone: pacify GCC -Wstringop-truncation
+ Problem reported by Martin Sebor in:
+ https://sourceware.org/ml/libc-alpha/2017-11/msg00336.html
+ * timezone/zic.c (writezone): Use memcpy, not strncpy.
+
+2017-11-12 Florian Weimer <fweimer@redhat.com>
+
+ * support/Makefile (libsupport-routines): Add xreadlink, xstrndup,
+ tst-xreadlink.
+ (tests): Add tst-xreadlink.
+ * support/support.h (xstrndup): Declare.
+ * support/xunistd.h (xunlink, xreadlink): Declare.
+ * support/temp_file.h (support_create_temp_directory): Declare.
+ * support/temp_file.c (support_create_temp_directory): New function.
+ * support/support_chroot.c (support_chroot_create): Use it.
+ * support/xreadlink.c: New file.
+ * support/xstrndup.c: Likewise.
+ * support/xunlink.c: Likewise.
+ * support/tst-xreadlink.c: Likewise.
+
+2017-11-11 John David Anglin <danglin@gcc.gnu.org>
+
+ * sysdeps/hppa/fpu/libm-test-ulps: Update clog10_downward ulps.
+
+2017-11-11 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #22409]
+ [BZ #22412]
+ * resolv/res_comp.c (printable_string, binary_hnok)
+ (binary_leading_dash): New functions.
+ (res_hnok): Reimplement using these functions and ns_name_pton.
+ (res_ownok): Likewise.
+ (res_mailok): Reimplement using printable_string, ns_name_pton and
+ binary_hnok.
+ (res_dnok): Reimplement using printable_string and ns_name_pton.
+ * resolv/tst-res_hnok.c (tests): Add additional tests.
+ (LETTERDIGITS, PRINTABLE): Define.
+ (do_test): Adjust one_char results.
+
+2017-11-11 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #22413]
+ * resolv/ns_name.c (ns_name_pton): Treat trailing backslash as error.
+ * resolv/tst-ns_name_pton.c (tests): Add trailing backslash tests.
+
+2017-11-11 Florian Weimer <fweimer@redhat.com>
+
+ * resolv/tst-ns_name_pton.c: New file.
+ * resolv/Makefile (tests): Add tst-ns_name_pton.
+ (tst-ns_name_pton): Link against libresolv.
+
+2017-11-11 Florian Weimer <fweimer@redhat.com>
+
+ * resolv/tst-res_hnok.c: New file.
+ * resolv/Makefile (tests): Add tst-res_hnok.
+ (tst-res_hnok): Link against libresolv.
+
+2017-11-11 Florian Weimer <fweimer@redhat.com>
+
+ * resolv/tst-resolv-network.c: Use test framework instead explicit
+ main function.
+
+2017-11-09 H.J. Lu <hongjiu.lu@intel.com>
+
+ * include/setjmp.h [!_ISOMAC]: Include <stddef.h> and
+ <jmp_buf-macros.h>.
+ [!_ISOMAC] (STR_HELPER): New.
+ [!_ISOMAC] (STR): Likewise.
+ [!_ISOMAC] (TEST_SIZE): Likewise.
+ [!_ISOMAC] (TEST_ALIGN): Likewise.
+ [!_ISOMAC] (TEST_OFFSET): Likewise.
+ [!_ISOMAC] Add _Static_assert to check sizes, alignments and
+ field offsets of jmp_buf as well as sigjmp_buf.
+ * sysdeps/unix/sysv/linux/aarch64/jmp_buf-macros.h: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/jmp_buf-macros.h: Likewise.
+ * sysdeps/unix/sysv/linux/arm/jmp_buf-macros.h: Likewise.
+ * sysdeps/unix/sysv/linux/hppa/jmp_buf-macros.h: Likewise.
+ * sysdeps/unix/sysv/linux/i386/jmp_buf-macros.h: Likewise.
+ * sysdeps/unix/sysv/linux/ia64/jmp_buf-macros.h: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/jmp_buf-macros.h: Likewise.
+ * sysdeps/unix/sysv/linux/microblaze/jmp_buf-macros.h: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/jmp_buf-macros.h: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/n32/jmp_buf-macros.h:
+ Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/n64/jmp_buf-macros.h:
+ Likewise.
+ * sysdeps/unix/sysv/linux/nios2/jmp_buf-macros.h: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/jmp_buf-macros.h:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/jmp_buf-macros.h:
+ Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/jmp_buf-macros.h: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/jmp_buf-macros.h: Likewise.
+ * sysdeps/unix/sysv/linux/sh/jmp_buf-macros.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/jmp_buf-macros.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/jmp_buf-macros.h: Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/jmp_buf-macros.h:
+ Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/jmp_buf-macros.h:
+ Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilepro/jmp_buf-macros.h: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/64/jmp_buf-macros.h: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/x32/jmp_buf-macros.h: Likewise.
+
+2017-11-07 Joseph Myers <joseph@codesourcery.com>
+
+ * include/float.h
+ [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
+ && __HAVE_FLOAT32] (FLT32_MANT_DIG): New macro.
+ [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
+ && __HAVE_FLOAT32] (FLT32_DECIMAL_DIG): Likewise.
+ [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
+ && __HAVE_FLOAT32] (FLT32_DIG): Likewise.
+ [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
+ && __HAVE_FLOAT32] (FLT32_MIN_EXP): Likewise.
+ [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
+ && __HAVE_FLOAT32] (FLT32_MIN_10_EXP): Likewise.
+ [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
+ && __HAVE_FLOAT32] (FLT32_MAX_EXP): Likewise.
+ [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
+ && __HAVE_FLOAT32] (FLT32_MAX_10_EXP): Likewise.
+ [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
+ && __HAVE_FLOAT32] (FLT32_MAX): Likewise.
+ [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
+ && __HAVE_FLOAT32] (FLT32_EPSILON): Likewise.
+ [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
+ && __HAVE_FLOAT32] (FLT32_MIN): Likewise.
+ [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
+ && __HAVE_FLOAT32] (FLT32_TRUE_MIN): Likewise.
+ [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
+ && __HAVE_FLOAT64] (FLT64_MANT_DIG): Likewise.
+ [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
+ && __HAVE_FLOAT64] (FLT64_DECIMAL_DIG): Likewise.
+ [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
+ && __HAVE_FLOAT64] (FLT64_DIG): Likewise.
+ [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
+ && __HAVE_FLOAT64] (FLT64_MIN_EXP): Likewise.
+ [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
+ && __HAVE_FLOAT64] (FLT64_MIN_10_EXP): Likewise.
+ [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
+ && __HAVE_FLOAT64] (FLT64_MAX_EXP): Likewise.
+ [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
+ && __HAVE_FLOAT64] (FLT64_MAX_10_EXP): Likewise.
+ [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
+ && __HAVE_FLOAT64] (FLT64_MAX): Likewise.
+ [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
+ && __HAVE_FLOAT64] (FLT64_EPSILON): Likewise.
+ [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
+ && __HAVE_FLOAT64] (FLT64_MIN): Likewise.
+ [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
+ && __HAVE_FLOAT64] (FLT64_TRUE_MIN): Likewise.
+ [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
+ && __HAVE_FLOAT32X] (FLT32X_MANT_DIG): Likewise.
+ [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
+ && __HAVE_FLOAT32X] (FLT32X_DECIMAL_DIG): Likewise.
+ [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
+ && __HAVE_FLOAT32X] (FLT32X_DIG): Likewise.
+ [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
+ && __HAVE_FLOAT32X] (FLT32X_MIN_EXP): Likewise.
+ [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
+ && __HAVE_FLOAT32X] (FLT32X_MIN_10_EXP): Likewise.
+ [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
+ && __HAVE_FLOAT32X] (FLT32X_MAX_EXP): Likewise.
+ [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
+ && __HAVE_FLOAT32X] (FLT32X_MAX_10_EXP): Likewise.
+ [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
+ && __HAVE_FLOAT32X] (FLT32X_MAX): Likewise.
+ [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
+ && __HAVE_FLOAT32X] (FLT32X_EPSILON): Likewise.
+ [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
+ && __HAVE_FLOAT32X] (FLT32X_MIN): Likewise.
+ [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
+ && __HAVE_FLOAT32X] (FLT32X_TRUE_MIN): Likewise.
+ [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
+ && __HAVE_FLOAT64X] (FLT64X_MANT_DIG): Likewise.
+ [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
+ && __HAVE_FLOAT64X] (FLT64X_DECIMAL_DIG): Likewise.
+ [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
+ && __HAVE_FLOAT64X] (FLT64X_DIG): Likewise.
+ [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
+ && __HAVE_FLOAT64X] (FLT64X_MIN_EXP): Likewise.
+ [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
+ && __HAVE_FLOAT64X] (FLT64X_MIN_10_EXP): Likewise.
+ [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
+ && __HAVE_FLOAT64X] (FLT64X_MAX_EXP): Likewise.
+ [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
+ && __HAVE_FLOAT64X] (FLT64X_MAX_10_EXP): Likewise.
+ [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
+ && __HAVE_FLOAT64X] (FLT64X_MAX): Likewise.
+ [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
+ && __HAVE_FLOAT64X] (FLT64X_EPSILON): Likewise.
+ [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
+ && __HAVE_FLOAT64X] (FLT64X_MIN): Likewise.
+ [!__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
+ && __HAVE_FLOAT64X] (FLT64X_TRUE_MIN): Likewise.
+
+ * stdlib/tst-strtod.h (F16): New macro.
+ (F32): Likewise.
+ (F64): Likewise.
+ (F32X): Likewise.
+ (F64X): Likewise.
+ (F128X): Likewise.
+ (IF_FLOAT16): Likewise.
+ (IF_FLOAT32): Likewise.
+ (IF_FLOAT64): Likewise.
+ (IF_FLOAT32X): Likewise.
+ (IF_FLOAT64X): Likewise.
+ (IF_FLOAT128X): Likewise.
+ (GEN_TEST_STRTOD_FOREACH): Conditionally call macros for _Float16,
+ _Float32, _Float64, _Float32x, _Float64x and _Float128x.
+ (STRTOD_TEST_FOREACH): Likewise.
+ * stdlib/tst-strtod-round-skeleton.c (CHOOSE_f32): New macro.
+ (CHOOSE_f64): Likewise.
+ (CHOOSE_f32x): Likewise.
+ (CHOOSE_f64x): Likewise.
+
+2017-11-07 Andreas Schwab <schwab@suse.de>
+
+ * nptl/Makefile (tests-internal): Remove tst-typesizes.
+
+2017-11-07 Mike FABIAN <mfabian@redhat.com>
+
+ [BZ #22403]
+ * localedata/locales/mfe_MU (LC_TIME): Fix wrong d_fmt, / needs
+ to be escaped.
+ * localedata/locales/miq_NI (LC_TIME): Fix wrong d_fmt, / needs
+ to be escaped.
+
+2017-11-07 Claude Paroz <claude@2xlibre.net>
+
+ [BZ #22403]
+ * localedata/locales/an_ES (LC_TIME): Fix wrong d_fmt, / needs
+ to be escaped.
+ * localedata/locales/kab_DZ (LC_TIME): Fix wrong d_fmt, / needs
+ to be escaped.
+ * localedata/locales/om_ET (LC_TIME): Fix wrong d_fmt, / needs
+ to be escaped.
+
+2017-11-07 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ [BZ #22298]
+ * nptl/allocatestack.c (allocate_stack): Check if
+ __PTHREAD_MUTEX_HAVE_PREV is non-zero, instead if
+ __PTHREAD_MUTEX_HAVE_PREV is defined.
+ * nptl/descr.h (pthread): Likewise.
+ * nptl/nptl-init.c (__pthread_initialize_minimal_internal):
+ Likewise.
+ * nptl/pthread_create.c (START_THREAD_DEFN): Likewise.
+ * sysdeps/nptl/fork.c (__libc_fork): Likewise.
+ * sysdeps/nptl/pthread.h (PTHREAD_MUTEX_INITIALIZER): Likewise.
+ * sysdeps/nptl/bits/thread-shared-types.h
+ (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION): New
+ defines.
+ (__pthread_internal_list): Check __PTHREAD_MUTEX_USE_UNION instead
+ of __WORDSIZE for internal layout.
+ (__pthread_mutex_s): Check __PTHREAD_MUTEX_NUSERS_AFTER_KIND instead
+ of __WORDSIZE for internal __nusers layout and __PTHREAD_MUTEX_USE_UNION
+ instead of __WORDSIZE whether to use an union for __spins and __list
+ fields.
+ (__PTHREAD_MUTEX_HAVE_PREV): Define also for __PTHREAD_MUTEX_USE_UNION
+ case.
+ * sysdeps/aarch64/nptl/bits/pthreadtypes-arch.h
+ (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION): New
+ defines.
+ * sysdeps/alpha/nptl/bits/pthreadtypes-arch.h
+ (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION):
+ Likewise.
+ * sysdeps/arm/nptl/bits/pthreadtypes-arch.h
+ (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION):
+ Likewise.
+ * sysdeps/hppa/nptl/bits/pthreadtypes-arch.h
+ (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION):
+ Likewise.
+ * sysdeps/ia64/nptl/bits/pthreadtypes-arch.h
+ (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION):
+ Likewise.
+ * sysdeps/m68k/nptl/bits/pthreadtypes-arch.h
+ (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION):
+ Likewise.
+ * sysdeps/microblaze/nptl/bits/pthreadtypes-arch.h
+ (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION):
+ Likewise.
+ * sysdeps/mips/nptl/bits/pthreadtypes-arch.h
+ (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION):
+ Likewise.
+ * sysdeps/nios2/nptl/bits/pthreadtypes-arch.h
+ (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION):
+ Likewise.
+ * sysdeps/powerpc/nptl/bits/pthreadtypes-arch.h
+ (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION):
+ Likewise.
+ * sysdeps/s390/nptl/bits/pthreadtypes-arch.h
+ (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION):
+ Likewise.
+ * sysdeps/sh/nptl/bits/pthreadtypes-arch.h
+ (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION):
+ Likewise.
+ * sysdeps/sparc/nptl/bits/pthreadtypes-arch.h
+ (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION):
+ Likewise.
+ * sysdeps/tile/nptl/bits/pthreadtypes-arch.h
+ (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION):
+ Likewise.
+ * sysdeps/x86/nptl/bits/pthreadtypes-arch.h
+ (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION):
+ Likewise.
+
+ * nptl/pthreadP.h (ASSERT_TYPE_SIZE, ASSERT_PTHREAD_INTERNAL_SIZE):
+ New macros.
+ * nptl/pthread_attr_init.c (__pthread_mutex_init): Add build time
+ checks for expected input type size.
+ * nptl/pthread_barrier_init.c (__pthread_barrier_init): Likewise.
+ * nptl/pthread_barrierattr_init.c (pthread_barrierattr_init):
+ Likewise.
+ * nptl/pthread_cond_init.c (__pthread_cond_init): Likewise.
+ * nptl/pthread_condattr_init.c (__pthread_condattr_init): Likewise.
+ * nptl/pthread_mutex_init.c (__pthread_mutex_init): Likewise.
+ * nptl/pthread_mutexattr_init.c (__pthread_mutexattr_init): Likewise.
+ * nptl/pthread_rwlock_init.c (__pthread_rwlock_init): Likewise.
+ * nptl/pthread_rwlockattr_init.c (pthread_rwlockattr_init): Likewise.
+ * nptl/sem_init.c (__new_sem_init, __old_sem_init): Likewise
+ * nptl/pthread_attr_destroy.c (__pthread_attr_destroy): Remove
+ superflous runtime assert check.
+ * nptl/pthread_attr_getaffinity.c (__pthread_attr_getaffinity_new):
+ Likewise.
+ * nptl/pthread_attr_getdetachstate.c (__pthread_attr_getdetachstate):
+ Likewise.
+ * nptl/pthread_attr_getguardsize.c (pthread_attr_getguardsize):
+ Likewise.
+ * nptl/pthread_attr_getinheritsched.c (__pthread_attr_getinheritsched):
+ Likewise.
+ * nptl/pthread_attr_getschedparam.c (__pthread_attr_getschedparam):
+ Likewise.
+ * nptl/pthread_attr_getschedpolicy.c (__pthread_attr_getschedpolicy):
+ Likewise.
+ * nptl/pthread_attr_getscope.c (__pthread_attr_getscope): Likewise.
+ * nptl/pthread_attr_getstack.c (__pthread_attr_getstack): Likewise.
+ * nptl/pthread_attr_getstackaddr.c (__pthread_attr_getstackaddr):
+ Likewise.
+ * nptl/pthread_attr_getstacksize.c (__pthread_attr_getstacksize):
+ Likewise.
+ * nptl/pthread_attr_setaffinity.c (__pthread_attr_setaffinity_new):
+ Likewise.
+ * nptl/pthread_attr_setdetachstate.c (__pthread_attr_setdetachstate):
+ Likewise.
+ * nptl/pthread_attr_setguardsize.c (pthread_attr_setguardsize):
+ Likewise.
+ * nptl/pthread_attr_setinheritsched.c
+ (__pthread_attr_setinheritsched): Likewise.
+ * nptl/pthread_attr_setschedparam.c (__pthread_attr_setschedparam):
+ Likewise.
+ * nptl/pthread_attr_setschedpolicy.c (__pthread_attr_setschedpolicy):
+ Likewise.
+ * nptl/pthread_attr_setscope.c (__pthread_attr_setscope): Likewise.
+ * nptl/pthread_attr_setstack.c (__pthread_attr_setstack,
+ __old_pthread_attr_setstack): Likewise.
+ * nptl/pthread_attr_setstackaddr.c (__pthread_attr_setstackaddr):
+ Likewise.
+ * nptl/pthread_attr_setstacksize.c (__pthread_attr_setstacksize):
+ Likewise.
+ * nptl/pthread_getattr_default_np.c (pthread_getattr_default_np):
+ Likewise.
+ * nptl/pthread_mutex_lock.c (__pthread_mutex_lock): Likewise.
+ * nptl/pthread_setattr_default_np.c (pthread_setattr_default_np):
+ Likewise.
+ * nptl/tst-typesizes.c: Remove file.
+
+ * nptl/pthreadP.h (ASSERT_PTHREAD_STRING,
+ ASSERT_PTHREAD_INTERNAL_OFFSET): New macro.
+ * nptl/pthread_mutex_init.c (__pthread_mutex_init): Add build time
+ checks for internal pthread_mutex_t offsets.
+ * sysdeps/aarch64/nptl/pthread-offsets.h
+ (__PTHREAD_MUTEX_NUSERS_OFFSET, __PTHREAD_MUTEX_KIND_OFFSET,
+ __PTHREAD_MUTEX_SPINS_OFFSET, __PTHREAD_MUTEX_ELISION_OFFSET,
+ __PTHREAD_MUTEX_LIST_OFFSET): New macro.
+ * sysdeps/alpha/nptl/pthread-offsets.h: Likewise.
+ * sysdeps/arm/nptl/pthread-offsets.h: Likewise.
+ * sysdeps/hppa/nptl/pthread-offsets.h: Likewise.
+ * sysdeps/i386/nptl/pthread-offsets.h: Likewise.
+ * sysdeps/ia64/nptl/pthread-offsets.h: Likewise.
+ * sysdeps/m68k/nptl/pthread-offsets.h: Likewise.
+ * sysdeps/microblaze/nptl/pthread-offsets.h: Likewise.
+ * sysdeps/mips/nptl/pthread-offsets.h: Likewise.
+ * sysdeps/nios2/nptl/pthread-offsets.h: Likewise.
+ * sysdeps/powerpc/nptl/pthread-offsets.h: Likewise.
+ * sysdeps/s390/nptl/pthread-offsets.h: Likewise.
+ * sysdeps/sh/nptl/pthread-offsets.h: Likewise.
+ * sysdeps/sparc/nptl/pthread-offsets.h: Likewise.
+ * sysdeps/tile/nptl/pthread-offsets.h: Likewise.
+ * sysdeps/x86_64/nptl/pthread-offsets.h: Likewise.
+
+2017-11-07 Florian Weimer <fweimer@redhat.com>
+
+ * bits/mman-linux.h: Move ...
+ * sysdeps/unix/sysv/linux/bits/mman-linux.h: ... here. Update
+ comment.
+ * sysdeps/unix/sysv/linux/bits/Makefile (sysdep_headers): Remove
+ outdated comment.
+
+2017-11-07 Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>
+
+ * sysdeps/powerpc/powerpc64/multiarch/strcasestr-power8.S (STRNLEN):
+ Redefine STRNLEN as __strnlen_power8.
+
+2017-11-06 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * signal/sighold.c (sighold): Optimize implementation.
+
+ * sysdeps/unix/sysv/linux/sigqueue.c (__sigqueue): Asssume
+ __NR_rt_sigqueueinfo.
+
+ * sysdeps/unix/sysv/linux/Versions (libc) [GLIBC_PRIVATE]: Add
+ __sigtimedwait.
+ * sysdeps/unix/sysv/linux/sigtimedwait.c: Simplify includes and
+ assume __NR_rt_sigtimedwait.
+ * sysdeps/unix/sysv/linux/sigwait.c (__sigwait): Call __sigtimedwait
+ and add LIBC_CANCEL_HANDLED for cancellation marking.
+ * sysdeps/unix/sysv/linux/sigwaitinfo.c (__sigwaitinfo): Likewise.
+
+ * sysdeps/arm/armv7/multiarch/Makefile [$(subdir) = string]
+ (sysdeps_routines): Add memchr_noneon.
+ * sysdeps/arm/armv7/multiarch/ifunc-memchr.h: New file.
+ * sysdeps/arm/armv7/multiarch/memchr_noneon.S: Likewise.
+ * sysdeps/arm/armv7/multiarch/rtld-memchr.S: Likewise.
+ * sysdeps/arm/armv7/multiarch/memchr.S: Remove file.
+ * sysdeps/arm/armv7/multiarch/memchr.c: New file.
+ * sysdeps/arm/armv7/multiarch/memchr_impl.S: Move to ...
+ * sysdeps/arm/armv7/multiarch/memchr_neon.S: ... here.
+
+ * sysdeps/arm/arm-ifunc.h: New file.
+ * sysdeps/arm/armv7/multiarch/ifunc-memcpy.h: Likewise.
+ * sysdeps/arm/armv7/multiarch/memcpy.c: Likewise.
+ * sysdeps/arm/armv7/multiarch/memcpy_arm.S: Likewise.
+ * sysdeps/arm/armv7/multiarch/rtld-memcpy.S: Likewise.
+ * sysdeps/arm/armv7/multiarch/memcpy_neon.S [!__ARM_NEON__]
+ (__memcpy_neon): Avoid create hidden alias.
+ * sysdeps/arm/armv7/multiarch/memcpy_vfp.S [!__ARM_NEON_]
+ (__memcpy_vfp): Likewise.
+ * sysdeps/arm/armv7/multiarch/Makefile [$(subdir) = string]
+ (sysdep_routines): Add memcpy_arm.
+ * sysdeps/arm/armv7/multiarch/memcpy.S: Remove file.
+
+2017-11-06 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #22362]
+ * Makerules (make-link-multidir): New.
+ * config.make.in (multidir): New.
+ * configure.ac (libc_cv_multidir): New. AC_SUBST.
+ * configure: Regenerated.
+ * csu/Makefile [$(multidir) != .](multilib-extra-objs): New.
+ [$(multidir) != .](extra-objs): Add $(multilib-extra-objs).
+ [$(multidir) != .]($(addprefix $(objpfx)$(multidir)/, $(install-lib))):
+ New target.
+
+2017-11-06 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #22402]
+ * sysdeps/powerpc/bits/floatn.h: Include <bits/long-double.h>.
+ [__NO_LONG_DOUBLE_MATH] (__HAVE_FLOAT128): Define to 0.
+
+2017-11-04 Mike FABIAN <mfabian@redhat.com>
+
+ * localedata/locales/tpi_PG (LC_TIME): Fix wrong d_fmt, / needs
+ to be escaped.
+
+2017-11-04 Florian Weimer <fweimer@redhat.com>
+
+ * manual/llio.texi (Open-time Flags): Document O_TMPFILE.
+
+2017-11-03 Joseph Myers <joseph@codesourcery.com>
+
+ * math/math.h [__HAVE_DISTINCT_FLOAT16
+ || __HAVE_DISTINCT_FLOAT32 || __HAVE_DISTINCT_FLOAT64
+ || __HAVE_DISTINCT_FLOAT32X || __HAVE_DISTINCT_FLOAT64X
+ || __HAVE_DISTINCT_FLOAT128X]: Use #error.
+ [__NO_LONG_DOUBLE_MATH && __HAVE_DISTINCT_FLOAT128]: Likewise.
+ [__HAVE_DISTINCT_FLOAT128 && !__HAVE_GENERIC_SELECTION
+ && __HAVE_FLOATN_NOT_TYPEDEF]: Likewise.
+ [__HAVE_DISTINCT_FLOAT128 && __HAVE_GENERIC_SELECTION]
+ (__MATH_TG_F32): New macro.
+ [__HAVE_DISTINCT_FLOAT128 && __HAVE_GENERIC_SELECTION]
+ (__MATH_TG_F64X): Likewise.
+ [__HAVE_DISTINCT_FLOAT128 && __HAVE_GENERIC_SELECTION]
+ (__MATH_TG): Use __MATH_TG_F32 and __MATH_TG_F64X.
+
+2017-11-03 Dmitry V. Levin <ldv@altlinux.org>
+
+ * po/de.po: Update translations.
+ * po/ru.po: Likewise.
+
+2017-11-03 Florian Weimer <fweimer@redhat.com>
+
+ * manual/filesys.texi (Hard Links): Document linkat.
+
+2017-11-03 Joseph Myers <joseph@codesourcery.com>
+
+ * math/tgmath.h [__HAVE_DISTINCT_FLOAT16
+ || __HAVE_DISTINCT_FLOAT32 || __HAVE_DISTINCT_FLOAT64
+ || __HAVE_DISTINCT_FLOAT32X || __HAVE_DISTINCT_FLOAT64X
+ || __HAVE_DISTINCT_FLOAT128X]: Use #error.
+ [__HAVE_DISTINCT_FLOAT128 && __GLIBC_USE (IEC_60559_TYPES_EXT)
+ && __HAVE_FLOAT64X && !__HAVE_FLOAT64X_LONG_DOUBLE
+ && __HAVE_FLOATN_NOT_TYPEDEF] (__TGMATH_F128): Handle _Float64x
+ the same as _Float128.
+ [__HAVE_DISTINCT_FLOAT128 && __GLIBC_USE (IEC_60559_TYPES_EXT)
+ && __HAVE_FLOAT64X && !__HAVE_FLOAT64X_LONG_DOUBLE
+ && __HAVE_FLOATN_NOT_TYPEDEF] (__TGMATH_CF128): Likewise.
+
+ * stdlib/stdlib.h
+ [__HAVE_FLOAT16 && __GLIBC_USE (IEC_60559_TYPES_EXT)] (strtof16):
+ Declare.
+ [__HAVE_FLOAT32 && __GLIBC_USE (IEC_60559_TYPES_EXT)] (strtof32):
+ Likewise.
+ [__HAVE_FLOAT64 && __GLIBC_USE (IEC_60559_TYPES_EXT)] (strtof64):
+ Likewise.
+ [__HAVE_FLOAT32X && __GLIBC_USE (IEC_60559_TYPES_EXT)]
+ (strtof32x): Likewise.
+ [__HAVE_FLOAT64X && __GLIBC_USE (IEC_60559_TYPES_EXT)]
+ (strtof64x): Likewise.
+ [__HAVE_FLOAT128X && __GLIBC_USE (IEC_60559_TYPES_EXT)]
+ (strtof128x): Likewise.
+ [__HAVE_FLOAT16 && __GLIBC_USE (IEC_60559_TYPES_EXT)]
+ (strfromf16): Likewise.
+ [__HAVE_FLOAT32 && __GLIBC_USE (IEC_60559_TYPES_EXT)]
+ (strfromf32): Likewise.
+ [__HAVE_FLOAT64 && __GLIBC_USE (IEC_60559_TYPES_EXT)]
+ (strfromf64): Likewise.
+ [__HAVE_FLOAT32X && __GLIBC_USE (IEC_60559_TYPES_EXT)]
+ (strfromf32x): Likewise.
+ [__HAVE_FLOAT64X && __GLIBC_USE (IEC_60559_TYPES_EXT)]
+ (strfromf64x): Likewise.
+ [__HAVE_FLOAT128X && __GLIBC_USE (IEC_60559_TYPES_EXT)]
+ (strfromf128x): Likewise.
+ [__USE_GNU && __HAVE_FLOAT16] (strtof16_l): Likewise.
+ [__USE_GNU && __HAVE_FLOAT32] (strtof32_l): Likewise.
+ [__USE_GNU && __HAVE_FLOAT64] (strtof64_l): Likewise.
+ [__USE_GNU && __HAVE_FLOAT32X] (strtof32x_l): Likewise.
+ [__USE_GNU && __HAVE_FLOAT64X] (strtof64x_l): Likewise.
+ [__USE_GNU && __HAVE_FLOAT128X] (strtof128x_l): Likewise.
+
+2017-11-03 Richard Henderson <rth@twiddle.net>
+
+ * sysdeps/unix/sysv/linux/aarch64/sysconf.c: New file.
+
+2017-11-03 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * sysdeps/aarch64/dl-tlsdesc.S (_dl_tlsdesc_dynamic): Optimize.
+
+2017-11-03 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * sysdeps/arm/dl-machine.h (elf_machine_runtime_setup): Remove
+ DT_TLSDESC_GOT initialization.
+ * sysdeps/arm/dl-tlsdesc.S (_dl_tlsdesc_lazy_resolver): Remove.
+ (_dl_tlsdesc_resolve_hold): Likewise.
+ * sysdeps/aarch64/dl-tlsdesc.h (_dl_tlsdesc_lazy_resolver): Remove.
+ (_dl_tlsdesc_resolve_hold): Likewise.
+ * sysdeps/aarch64/tlsdesc.c (_dl_tlsdesc_lazy_resolver_fixup): Remove.
+ (_dl_tlsdesc_resolve_hold_fixup): Likewise.
+
+2017-11-03 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * sysdeps/arm/dl-machine.h (elf_machine_rel): Remove volatile.
+
+2017-11-03 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ [BZ #18572]
+ * sysdeps/arm/dl-machine.h (elf_machine_lazy_rel): Do symbol binding
+ non-lazily for R_ARM_TLS_DESC.
+
+2017-11-03 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ [BZ #17078]
+ * sysdeps/arm/dl-machine.h (elf_machine_rela): Remove the
+ R_ARM_TLS_DESC case.
+ (elf_machine_lazy_rel): Remove the prelink check.
+
+2017-11-03 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * sysdeps/aarch64/dl-machine.h (elf_machine_runtime_setup): Remove
+ DT_TLSDESC_GOT initialization.
+ * sysdeps/aarch64/dl-tlsdesc.S (_dl_tlsdesc_return_lazy): Remove.
+ (_dl_tlsdesc_resolve_rela): Likewise.
+ (_dl_tlsdesc_resolve_hold): Likewise.
+ (_dl_tlsdesc_undefweak): Remove ldar.
+ (_dl_tlsdesc_dynamic): Likewise.
+ * sysdeps/aarch64/dl-tlsdesc.h (_dl_tlsdesc_return_lazy): Remove.
+ (_dl_tlsdesc_resolve_rela): Likewise.
+ (_dl_tlsdesc_resolve_hold): Likewise.
+ * sysdeps/aarch64/tlsdesc.c (_dl_tlsdesc_resolve_rela_fixup): Remove.
+ (_dl_tlsdesc_resolve_hold_fixup): Likewise.
+ (_dl_tlsdesc_resolve_rela): Likewise.
+ (_dl_tlsdesc_resolve_hold): Likewise.
+
+2017-11-03 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * sysdeps/aarch64/dl-machine.h (elf_machine_lazy_rel): Do symbol
+ binding and initialization non-lazily for R_AARCH64_TLSDESC.
+
+2017-11-03 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * elf/tlsdeschtab.h (_dl_tls_resolve_early_return_p): Mark unused.
+ (_dl_tlsdesc_wake_up_held_fixups): Likewise.
+
+2017-11-02 Joseph Myers <joseph@codesourcery.com>
+
+ * wcsmbs/wchar.h [__HAVE_FLOAT16 && __USE_GNU] (wcstof16):
+ Declare.
+ [__HAVE_FLOAT32 && __USE_GNU] (wcstof32): Likewise.
+ [__HAVE_FLOAT64 && __USE_GNU] (wcstof64): Likewise.
+ [__HAVE_FLOAT32X && __USE_GNU] (wcstof32x): Likewise.
+ [__HAVE_FLOAT64X && __USE_GNU] (wcstof64x): Likewise.
+ [__HAVE_FLOAT128X && __USE_GNU] (wcstof128x): Likewise.
+ [__HAVE_FLOAT16 && __USE_GNU] (wcstof16_l): Likewise.
+ [__HAVE_FLOAT32 && __USE_GNU] (wcstof32_l): Likewise.
+ [__HAVE_FLOAT64 && __USE_GNU] (wcstof64_l): Likewise.
+ [__HAVE_FLOAT32X && __USE_GNU] (wcstof32x_l): Likewise.
+ [__HAVE_FLOAT64X && __USE_GNU] (wcstof64x_l): Likewise.
+ [__HAVE_FLOAT128X && __USE_GNU] (wcstof128x_l): Likewise.
+
+2017-11-02 Mike FABIAN <mfabian@redhat.com>
+
+ [BZ #22382]
+ * localedata/locales/tpi_PG (LC_TIME): Fix syntax error.
+ * localedata/locales/tpi_PG: Add standard header.
+
+2017-11-02 Florian Weimer <fweimer@redhat.com>
+
+ test-errno-linux: quotactl can fail with EPERM in containers.
+ * sysdeps/unix/sysv/linux/test-errno-linux.c
+ (LIST, LIST_FORWARD): New macros.
+ (check_error_in_list): New function.
+ (test_wrp_rv): Accept list of permitted error codes.
+ (test_wrp_rv2): Remove.
+ (test_wrp): Call test_wrp_rv with list of error codes.
+ (test_wrp2): Accept list of error codes.
+ (do_test): Adjust. Allow EPERM for quotactl.
+
+2017-11-02 Florian Weimer <fweimer@redhat.com>
+
+ * stdio-common/bug16.c (do_test): Use array_length.
+ * stdio-common/errlist.c (_sys_nerr): Likewise.
+ * stdio-common/printf_fp.c (PRINTF_FP_FETCH): Likewise.
+ * stdio-common/printf_fphex.c (__printf_fphex): Use array_end.
+ * stdio-common/psiginfo.c (psiginfo): Use array_length.
+ * stdio-common/test-vfprintf.c (nlocs): Remove definition.
+ (do_test): Use array_length.
+ * stdio-common/tst-fphex.c (do_test): Use array_end, array_length.
+ * stdio-common/tst-long-dbl-fphex.c (do_test): Use array_length.
+ * stdio-common/tst-printf-round.c (do_test): Likewise.
+ * stdio-common/tst-swprintf.c (nbuf): Remove definition.
+ (CHECK): Use array_length.
+ * stdio-common/tstdiomisc.c (t3, F): Likewise.
+ * stdio-common/tstscanf.c (main): Likewise.
+ * stdio-common/vfprintf.c (process_string_arg): Likewise.
+
+2017-11-02 Florian Weimer <fweimer@redhat.com>
+
+ Add array_length and array_end macros.
+ * include/array_length.h: New file.
+
+2017-11-02 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #22332]
+ * posix/tst-glob-tilde.c (do_noescape): New variable.
+ (one_test): Process it.
+ (do_test): Set do_noescape. Add unescaping test case.
+
+2017-11-01 Joseph Myers <joseph@codesourcery.com>
+
+ * math/complex.h
+ [(__HAVE_DISTINCT_FLOAT16 || (__HAVE_FLOAT16 && !_LIBC))
+ && __GLIBC_USE (IEC_60559_TYPES_EXT)]: Include <bits/cmathcalls.h>
+ with appropriate macros defined and undefined.
+ [(__HAVE_DISTINCT_FLOAT32 || (__HAVE_FLOAT32 && !_LIBC))
+ && __GLIBC_USE (IEC_60559_TYPES_EXT)]: Likewise.
+ [(__HAVE_DISTINCT_FLOAT64 || (__HAVE_FLOAT64 && !_LIBC))
+ && __GLIBC_USE (IEC_60559_TYPES_EXT)]: Likewise.
+ [(__HAVE_DISTINCT_FLOAT32X || (__HAVE_FLOAT32X && !_LIBC))
+ && __GLIBC_USE (IEC_60559_TYPES_EXT)]: Likewise.
+ [(__HAVE_DISTINCT_FLOAT64X || (__HAVE_FLOAT64X && !_LIBC))
+ && __GLIBC_USE (IEC_60559_TYPES_EXT)]: Likewise.
+ [(__HAVE_DISTINCT_FLOAT128X || (__HAVE_FLOAT128X && !_LIBC))
+ && __GLIBC_USE (IEC_60559_TYPES_EXT)]: Likewise.
+
+ * math/complex.h
+ [(__HAVE_DISTINCT_FLOAT128 || (__HAVE_FLOAT128 && !LIBC))
+ && __GLIBC_USE (IEC_60559_TYPES_EXT)]: Move conditional code after
+ that for long double. Do not condition define and undefine of
+ _Mdouble_complex_ on [__CFLOAT128].
+
+2017-11-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/i386/sysdep.h: Include <sysdeps/x86/sysdep.h> instead
+ of <sysdeps/generic/sysdep.h>.
+ (ALIGNARG): Removed.
+ (ASM_SIZE_DIRECTIVE): Likewise.
+ (ENTRY): Likewise.
+ (END): Likewise.
+ (ENTRY_CHK): Likewise.
+ (END_CHK): Likewise.
+ (syscall_error): Likewise.
+ (mcount): Likewise.
+ (PSEUDO_END): Likewise.
+ (L): Likewise.
+ (atom_text_section): Likewise.
+ * sysdeps/x86/sysdep.h: New file.
+ * sysdeps/x86_64/sysdep.h: Include <sysdeps/x86/sysdep.h> instead
+ of <sysdeps/generic/sysdep.h>.
+ (ALIGNARG): Removed.
+ (ASM_SIZE_DIRECTIVE): Likewise.
+ (ENTRY): Likewise.
+ (END): Likewise.
+ (ENTRY_CHK): Likewise.
+ (END_CHK): Likewise.
+ (syscall_error): Likewise.
+ (mcount): Likewise.
+ (PSEUDO_END): Likewise.
+ (L): Likewise.
+ (atom_text_section): Likewise.
+
+2017-10-31 Rafał Lużyński <digitalfreak@lingonborough.com>
+
+ * localedata/unicode-gen/gen_unicode_ctype.py (output_head):
+ category of LC_CTYPE set to "i18n:2012".
+ * localedata/locales/i18n_ctype: Regenerate.
+
+2017-10-31 Yury Norov <ynorov@caviumnetworks.com>
+
+ * sysdeps/unix/sysv/linux/sigprocmask.c: Remove useless #ifdefs.
+ * sysdeps/unix/sysv/linux/sigtimedwait.c: Likewise.
+ * sysdeps/unix/sysv/linux/sigwait.c: Likewise.
+ * sysdeps/unix/sysv/linux/sigwaitinfo.c: Likewise.
+
+ * sysdeps/unix/sysv/linux/ia64/sigpending.c: Remove file.
+ * sysdeps/unix/sysv/linux/s390/s390-64/sigpending.c: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/sigpending.c: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/sigpending.c: Likewise.
+
+2017-10-31 Joseph Myers <joseph@codesourcery.com>
+
+ * math/complex.h
+ [__HAVE_FLOAT16 && __GLIBC_USE (IEC_60559_TYPES_EXT)] (CMPLXF16):
+ New macro.
+ [__HAVE_FLOAT32 && __GLIBC_USE (IEC_60559_TYPES_EXT)] (CMPLXF32):
+ Likewise.
+ [__HAVE_FLOAT64 && __GLIBC_USE (IEC_60559_TYPES_EXT)] (CMPLXF64):
+ Likewise.
+ [__HAVE_FLOAT32X && __GLIBC_USE (IEC_60559_TYPES_EXT)]
+ (CMPLXF32X): Likewise.
+ [__HAVE_FLOAT64X && __GLIBC_USE (IEC_60559_TYPES_EXT)]
+ (CMPLXF64X): Likewise.
+ [__HAVE_FLOAT128X && __GLIBC_USE (IEC_60559_TYPES_EXT)]
+ (CMPLXF128X): Likewise.
+
+ * math/math.h
+ [__FLT_EVAL_METHOD__ == 0 || __FLT_EVAL_METHOD__ == 32]
+ (__MATH_EVAL_FMT2): Define to add 0.0f.
+
+2017-10-31 Alan Modra <amodra@gmail.com>
+
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf-power8.S: Don't
+ include sysdep.h.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceilf-power5+.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceilf-ppc64.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_cosf-power8.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_cosf-ppc64.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite-power7.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite-power8.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_floor-power5+.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_floor-ppc64.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_roundf-power5+.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_roundf-ppc64.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf-power8.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf-ppc64.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_truncf-power5+.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_truncf-ppc64.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/memchr-power7.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/memchr-power8.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/memcmp-power4.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/memcmp-power7.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/memcmp-power8.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/memcpy-a2.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/memcpy-cell.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/memcpy-power4.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/memcpy-power6.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/memcpy-power7.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/memcpy-ppc64.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/memmove-power7.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/mempcpy-power7.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/memrchr-power7.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/memrchr-power8.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/memset-power4.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/memset-power6.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/memset-power7.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/memset-power8.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/rawmemchr-power7.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/stpcpy-power8.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/stpncpy-power7.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/stpncpy-power8.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/strcasecmp-power7.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/strcasecmp-power8.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/strcasecmp_l-power7.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/strcasestr-power8.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/strchr-power7.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/strchr-power8.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/strchr-ppc64.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/strchrnul-power7.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/strchrnul-power8.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/strcmp-power7.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/strcmp-power8.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/strcmp-power9.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/strcmp-ppc64.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/strcpy-power8.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/strcspn-power8.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/strlen-power7.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/strlen-power8.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/strlen-ppc64.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/strncase-power8.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/strncmp-power4.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/strncmp-power7.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/strncmp-power8.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/strncmp-power9.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/strncmp-ppc64.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/strncpy-power7.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/strncpy-power8.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/strnlen-power7.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/strnlen-power8.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/strrchr-power7.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/strrchr-power8.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/strspn-power8.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/strstr-power7.S: Likewise.
+
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_floorf-ppc64.S: Don't
+ include sysdep.h and math_ldbl_opt.h.
+
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceil-power5+.S: Don't
+ include sysdep.h and math_ldbl_opt.h. Include shlib-compat.h.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceil-ppc64.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign-power6.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign-ppc64.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_floorf-power5+.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf-power7.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf-power8.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power5.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power6.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power6x.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power7.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power8.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-ppc64.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-power6x.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-power8.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-ppc64.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power5+.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power6x.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power8.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-ppc64.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llroundf-ppc64.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_round-power5+.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_round-ppc64.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_trunc-power5+.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_trunc-ppc64.S: Likewise.
+
+2017-10-31 Alan Modra <amodra@gmail.com>
+
+ * sysdeps/powerpc/powerpc64/multiarch/strncase_l-power7.c: Include
+ string/strncase_l.c, not string/strncase.c.
+ (USE_IN_EXTENDED_LOCALE_MODEL): Don't define.
+ (libc_hidden_def): Redefine.
+
+2017-10-31 Alan Modra <amodra@gmail.com>
+
+ * sysdeps/powerpc/powerpc64/multiarch/strcasecmp_l-power7.S:
+ (__STRCMP, STRCMP, __strcasecmp_l): Define.
+ (__strcasecmp): Don't define.
+
+2017-10-31 Alan Modra <amodra@gmail.com>
+
+ * sysdeps/powerpc/powerpc64/multiarch/strcmp-power8.S: Wrap in
+ IS_IN (libc).
+ * sysdeps/powerpc/powerpc64/multiarch/strcmp-power9.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/strncmp-power8.S: Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/strncmp-power9.S: Likewise.
+
+2017-10-31 Alan Modra <amodra@gmail.com>
+
+ * sysdeps/powerpc/powerpc64/multiarch/stpncpy-power8.S: Don't define
+ USE_AS_STPNCPY.
+
+2017-10-31 Alan Modra <amodra@gmail.com>
+
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-ppc64.S (hidden_def):
+ Redefine only when SHARED.
+
+2017-10-30 Joseph Myers <joseph@codesourcery.com>
+
+ * math/math.h [__HAVE_DISTINCT_FLOAT16 || (__HAVE_FLOAT16 && !_LIBC)]:
+ Include <bits/math-finite.h> with appropriate macros defined and
+ undefined.
+ [__HAVE_DISTINCT_FLOAT32 || (__HAVE_FLOAT32 && !_LIBC)]: Likewise.
+ [__HAVE_DISTINCT_FLOAT64 || (__HAVE_FLOAT64 && !_LIBC)]: Likewise.
+ [__HAVE_DISTINCT_FLOAT32X || (__HAVE_FLOAT32X && !_LIBC)]: Likewise.
+ [__HAVE_DISTINCT_FLOAT64X || (__HAVE_FLOAT64X && !_LIBC)]: Likewise.
+ [__HAVE_DISTINCT_FLOAT128X || (__HAVE_FLOAT128X && !_LIBC)]: Likewise.
+
+ * math/math.h [!_Mfloat_] (_Mfloat_): Do not define.
+ [!_Mlong_double_] (_Mlong_double_): Likewise.
+ [!_Mfloat16_] (_Mfloat16_): Likewise.
+ [!_Mfloat32_] (_Mfloat32_): Likewise.
+ [!_Mfloat64_] (_Mfloat64_): Likewise.
+ [!_Mfloat128_] (_Mfloat128_): Likewise.
+ [!_Mfloat32x_] (_Mfloat32x_): Likewise.
+ [!_Mfloat64x_] (_Mfloat64x_): Likewise.
+ [!_Mfloat128x_] (_Mfloat128x_): Likewise.
+ (_Mdouble_): Define without indirection through those macros.
+ * math/complex.h [!_Mfloat_] (_Mfloat_): Do not define.
+ [!_Mfloat128_] (_Mfloat128_): Likewise.
+ [_Mlong_double_] (_Mlong_double_): Likewise.
+ (_Mdouble_): Define without indirection through those macros.
+ * math/Makefile [$(long-double-fcts) != yes] (math-CPPFLAGS): Do
+ not add -D_Mlong_double_=double.
+ * include/math.h [_ISOMAC] (_Mlong_double_): Do not undefine.
+ * math/test-signgam-finite-c99.c (_Mlong_double_): Likewise.
+
+2017-10-30 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86/libc-start.c: Add /* !SHARED */.
+
+2017-10-30 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86/libc-start.c: Reformat.
+
+2017-10-30 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #22353]
+ * sysdeps/i386/i586/strcpy.S (STRCPY): Use conditional branches.
+ (1): Renamed to ...
+ (L(Src0)): This.
+ (L(Src1)): New.
+ (L(Src2)): Likewise.
+ (L(1)): Renamed to ...
+ (L(Src3)): This.
+
+2017-10-30 Joseph Myers <joseph@codesourcery.com>
+
+ * math/math.h [__HAVE_FLOAT16 && __USE_GNU] (M_Ef16): New macro.
+ [__HAVE_FLOAT16 && __USE_GNU] (M_LOG2Ef16): Likewise.
+ [__HAVE_FLOAT16 && __USE_GNU] (M_LOG10Ef16): Likewise.
+ [__HAVE_FLOAT16 && __USE_GNU] (M_LN2f16): Likewise.
+ [__HAVE_FLOAT16 && __USE_GNU] (M_LN10f16): Likewise.
+ [__HAVE_FLOAT16 && __USE_GNU] (M_PIf16): Likewise.
+ [__HAVE_FLOAT16 && __USE_GNU] (M_PI_2f16): Likewise.
+ [__HAVE_FLOAT16 && __USE_GNU] (M_PI_4f16): Likewise.
+ [__HAVE_FLOAT16 && __USE_GNU] (M_1_PIf16): Likewise.
+ [__HAVE_FLOAT16 && __USE_GNU] (M_2_PIf16): Likewise.
+ [__HAVE_FLOAT16 && __USE_GNU] (M_2_SQRTPIf16): Likewise.
+ [__HAVE_FLOAT16 && __USE_GNU] (M_SQRT2f16): Likewise.
+ [__HAVE_FLOAT16 && __USE_GNU] (M_SQRT1_2f16): Likewise.
+ [__HAVE_FLOAT32 && __USE_GNU] (M_Ef32): Likewise.
+ [__HAVE_FLOAT32 && __USE_GNU] (M_LOG2Ef32): Likewise.
+ [__HAVE_FLOAT32 && __USE_GNU] (M_LOG10Ef32): Likewise.
+ [__HAVE_FLOAT32 && __USE_GNU] (M_LN2f32): Likewise.
+ [__HAVE_FLOAT32 && __USE_GNU] (M_LN10f32): Likewise.
+ [__HAVE_FLOAT32 && __USE_GNU] (M_PIf32): Likewise.
+ [__HAVE_FLOAT32 && __USE_GNU] (M_PI_2f32): Likewise.
+ [__HAVE_FLOAT32 && __USE_GNU] (M_PI_4f32): Likewise.
+ [__HAVE_FLOAT32 && __USE_GNU] (M_1_PIf32): Likewise.
+ [__HAVE_FLOAT32 && __USE_GNU] (M_2_PIf32): Likewise.
+ [__HAVE_FLOAT32 && __USE_GNU] (M_2_SQRTPIf32): Likewise.
+ [__HAVE_FLOAT32 && __USE_GNU] (M_SQRT2f32): Likewise.
+ [__HAVE_FLOAT32 && __USE_GNU] (M_SQRT1_2f32): Likewise.
+ [__HAVE_FLOAT64 && __USE_GNU] (M_Ef64): Likewise.
+ [__HAVE_FLOAT64 && __USE_GNU] (M_LOG2Ef64): Likewise.
+ [__HAVE_FLOAT64 && __USE_GNU] (M_LOG10Ef64): Likewise.
+ [__HAVE_FLOAT64 && __USE_GNU] (M_LN2f64): Likewise.
+ [__HAVE_FLOAT64 && __USE_GNU] (M_LN10f64): Likewise.
+ [__HAVE_FLOAT64 && __USE_GNU] (M_PIf64): Likewise.
+ [__HAVE_FLOAT64 && __USE_GNU] (M_PI_2f64): Likewise.
+ [__HAVE_FLOAT64 && __USE_GNU] (M_PI_4f64): Likewise.
+ [__HAVE_FLOAT64 && __USE_GNU] (M_1_PIf64): Likewise.
+ [__HAVE_FLOAT64 && __USE_GNU] (M_2_PIf64): Likewise.
+ [__HAVE_FLOAT64 && __USE_GNU] (M_2_SQRTPIf64): Likewise.
+ [__HAVE_FLOAT64 && __USE_GNU] (M_SQRT2f64): Likewise.
+ [__HAVE_FLOAT64 && __USE_GNU] (M_SQRT1_2f64): Likewise.
+ [__HAVE_FLOAT32X && __USE_GNU] (M_Ef32x): Likewise.
+ [__HAVE_FLOAT32X && __USE_GNU] (M_LOG2Ef32x): Likewise.
+ [__HAVE_FLOAT32X && __USE_GNU] (M_LOG10Ef32x): Likewise.
+ [__HAVE_FLOAT32X && __USE_GNU] (M_LN2f32x): Likewise.
+ [__HAVE_FLOAT32X && __USE_GNU] (M_LN10f32x): Likewise.
+ [__HAVE_FLOAT32X && __USE_GNU] (M_PIf32x): Likewise.
+ [__HAVE_FLOAT32X && __USE_GNU] (M_PI_2f32x): Likewise.
+ [__HAVE_FLOAT32X && __USE_GNU] (M_PI_4f32x): Likewise.
+ [__HAVE_FLOAT32X && __USE_GNU] (M_1_PIf32x): Likewise.
+ [__HAVE_FLOAT32X && __USE_GNU] (M_2_PIf32x): Likewise.
+ [__HAVE_FLOAT32X && __USE_GNU] (M_2_SQRTPIf32x): Likewise.
+ [__HAVE_FLOAT32X && __USE_GNU] (M_SQRT2f32x): Likewise.
+ [__HAVE_FLOAT32X && __USE_GNU] (M_SQRT1_2f32x): Likewise.
+ [__HAVE_FLOAT64X && __USE_GNU] (M_Ef64x): Likewise.
+ [__HAVE_FLOAT64X && __USE_GNU] (M_LOG2Ef64x): Likewise.
+ [__HAVE_FLOAT64X && __USE_GNU] (M_LOG10Ef64x): Likewise.
+ [__HAVE_FLOAT64X && __USE_GNU] (M_LN2f64x): Likewise.
+ [__HAVE_FLOAT64X && __USE_GNU] (M_LN10f64x): Likewise.
+ [__HAVE_FLOAT64X && __USE_GNU] (M_PIf64x): Likewise.
+ [__HAVE_FLOAT64X && __USE_GNU] (M_PI_2f64x): Likewise.
+ [__HAVE_FLOAT64X && __USE_GNU] (M_PI_4f64x): Likewise.
+ [__HAVE_FLOAT64X && __USE_GNU] (M_1_PIf64x): Likewise.
+ [__HAVE_FLOAT64X && __USE_GNU] (M_2_PIf64x): Likewise.
+ [__HAVE_FLOAT64X && __USE_GNU] (M_2_SQRTPIf64x): Likewise.
+ [__HAVE_FLOAT64X && __USE_GNU] (M_SQRT2f64x): Likewise.
+ [__HAVE_FLOAT64X && __USE_GNU] (M_SQRT1_2f64x): Likewise.
+ [__HAVE_FLOAT128X && __USE_GNU]: Use #error.
+
+2017-10-30 Florian Weimer <fweimer@redhat.com>
+
+ * elf/ldconfig.c (search_dir): Assume that _DIRENT_HAVE_D_TYPE is
+ always defined.
+ * io/tst-mkdirat.c (do_test): Likewise.
+ * io/tst-mkfifoat.c (do_test): Likewise.
+ * io/tst-mknodat.c (do_test): Likewise.
+ * locale/programs/charmap-dir.c (charmap_readdir): Likewise.
+ * locale/programs/locale.c (select_dirs): Likewise.
+ * locale/programs/locarchive.c (add_locales_to_archive): Likewise.
+ * posix/bug-glob2.c (my_readdir): Likewise.
+ * posix/tst-dir.c (main): Likewise.
+ * posix/tst-glob_lstat_compat.c (my_readdir): Likewise.
+ * posix/tst-gnuglob-skeleton.c (my_readdir): Likewise.
+
+2017-10-30 Florian Weimer <fweimer@redhat.com>
+
+ * string/strings.h (ffsl, ffsll): Declare under __USE_MISC, not
+ just __USE_GNU.
+
+2017-10-30 Florian Weimer <fweimer@redhat.com>
+
+ * posix/tst-gnuglob-skeleton.c: Renamed from tst-gnuglob.c.
+ Convert to support/test-driver.c.
+ (GLOB_FUNC, GLOB_TYPE, GLOBFREE_FUNC, DIRENT_STRUCT, STAT_STRUCT):
+ New macro parameters.
+ (PRINTF): Remove macro. Use test_verbose conditionals instead.
+ * posix/tst-gnuglob.c: New file.
+ * posix/tst-gnuglob64.c: Likewise.
+ * posix/Makefile (tests): Add tst-gnuglob64.
+
+2017-10-30 Michal Ostrowski <ostrowski.michal@gmail.com>
+
+ [BZ #19485]
+ * localedata/locales/csb_PL (LC_TIME): Fix “abmon†for March
+ and use a better translation for March in “monâ€.
+ * localedata/locales/csb_PL: Use more ASCII to improve the
+ readability of the source.
+
+2017-10-30 Mike FABIAN <mfabian@redhat.com>
+
+ [BZ #13953]
+ * localedata/locales/km_KH: Use ASCII as much
+ as possible for better readability of the source and
+ remove useless comments.
+ * localedata/locales/km_KH (LC_TIME): Remove era stuff, it
+ was commented out and apparently wrong anyway because it was
+ using Lao characters. If Buddhist era should be used
+ for km_KH, a native speaker should write the correct formaat
+ for Khmer.
+ * localedata/locales/km_KH (LC_TIME): Add first_weekday 1
+ (According to CLDR, the first weekday for Cambodia is Sunday).
+ * localedata/locales/km_KH (LC_NAME): Remove name_mr and name_mrs
+ (These were using Lao characters which must be wrong. If we get
+ the correct data from a native speaker, we could add it back, until
+ then it is better not to have name_mr and name_mrs at all than
+ having it wrong).
+
+2017-10-27 Rafał Lużyński <digitalfreak@lingonborough.com>
+
+ * locale/loadlocale.c: Correct size of
+ _nl_value_type_LC_<category> arrays.
+
+2017-10-27 Joseph Myers <joseph@codesourcery.com>
+
+ * math/math.h [__HAVE_DISTINCT_FLOAT16 || (__HAVE_FLOAT16 && !_LIBC)]:
+ Include <bits/mathcalls-helper-functions.h> and <bits/mathcalls.h>
+ with appropriate macros defined and undefined.
+ [__HAVE_DISTINCT_FLOAT32 || (__HAVE_FLOAT32 && !_LIBC)]: Likewise.
+ [__HAVE_DISTINCT_FLOAT64 || (__HAVE_FLOAT64 && !_LIBC)]: Likewise.
+ [__HAVE_DISTINCT_FLOAT32X || (__HAVE_FLOAT32X && !_LIBC)]: Likewise.
+ [__HAVE_DISTINCT_FLOAT64X || (__HAVE_FLOAT64X && !_LIBC)]: Likewise.
+ [__HAVE_DISTINCT_FLOAT128X || (__HAVE_FLOAT128X && !_LIBC)]: Likewise.
+
+2017-10-27 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/i386/fpu/libm-test-ulps: Regenerated for GCC 7 with
+ "-O2 -march=i586".
+
+2017-10-27 Mike FABIAN <mfabian@redhat.com>
+
+ * localedata/locales/tt_RU (LC_MESSAGES): Start yesstr and nostr
+ with lowercase letters to make it agree with CLDR.
+
+2017-10-27 Mike FABIAN <mfabian@redhat.com>
+
+ [BZ #15260]
+ * localedata/locales/doi_IN (LC_MESSAGES): Match only for the
+ first letters of yesstr and nostr in yesexpr and noexpr,
+ not for the full words.
+ * localedata/locales/hne_IN (LC_MESSAGES): Likewise.
+ * localedata/locales/kok_IN (LC_MESSAGES): Likewise.
+ * localedata/locales/mr_IN (LC_MESSAGES): Likewise.
+ * localedata/locales/sat_IN (LC_MESSAGES): Likewise.
+ * localedata/locales/km_KH (LC_MESSAGES): Match also for the
+ first letters of yesstr and nostr in yesexpr and noexpr,
+ until now only English was matched in yesexpr and noexpr.
+ * localedata/locales/tl_PH (LC_MESSAGES): Use “copy "fil_PH"â€
+ instead of “copy "en_US"â€. CLDR has yesstr and nostr data for
+ fil but not for tl. As tl and fil are very similar, using fil
+ is probably better than using English.
+
+2017-10-27 Thierry Vignaud <thierry.vignaud@gmail.com>
+
+ [BZ #21706]
+ * localedata/locales/br_FR (LC_MESSAGES): Use all lowercase
+ in yesstr and nostr.
+
+2017-10-26 Joseph Myers <joseph@codesourcery.com>
+
+ * math/math.h [__HAVE_FLOAT16 && __GLIBC_USE
+ (IEC_60559_TYPES_EXT)] (SNANF16): New macro.
+ [__HAVE_FLOAT32 && __GLIBC_USE (IEC_60559_TYPES_EXT)] (SNANF32):
+ Likewise.
+ [__HAVE_FLOAT64 && __GLIBC_USE (IEC_60559_TYPES_EXT)] (SNANF64):
+ Likewise.
+ [__HAVE_FLOAT32X && __GLIBC_USE (IEC_60559_TYPES_EXT)] (SNANF32X):
+ Likewise.
+ [__HAVE_FLOAT64X && __GLIBC_USE (IEC_60559_TYPES_EXT)] (SNANF64X):
+ Likewise.
+ [__HAVE_FLOAT128X && __GLIBC_USE (IEC_60559_TYPES_EXT)]
+ (SNANF128X): Likewise.
+
+ * math/math.h [__HAVE_FLOAT16 && __GLIBC_USE
+ (IEC_60559_TYPES_EXT)] (HUGE_VAL_F16): New macro.
+ [__HAVE_FLOAT32 && __GLIBC_USE (IEC_60559_TYPES_EXT)]
+ (HUGE_VAL_F32): Likewise.
+ [__HAVE_FLOAT64 && __GLIBC_USE (IEC_60559_TYPES_EXT)]
+ (HUGE_VAL_F64): Likewise.
+ [__HAVE_FLOAT32X && __GLIBC_USE (IEC_60559_TYPES_EXT)]
+ (HUGE_VAL_F32X): Likewise.
+ [__HAVE_FLOAT64X && __GLIBC_USE (IEC_60559_TYPES_EXT)]
+ (HUGE_VAL_F64X): Likewise.
+ [__HAVE_FLOAT128X && __GLIBC_USE (IEC_60559_TYPES_EXT)]
+ (HUGE_VAL_F128X): Likewise.
+
+2017-10-26 Thierry Vignaud <thierry.vignaud@gmail.com>
+
+ * localedata/locales/br_FR (LC_IDENTIFICATON): Add
+ Thierry Vignaud <thierry.vignaud@gmail.com> as the contact
+ for the br_FR locale.
+
+2017-10-26 Thierry Vignaud <thierry.vignaud@gmail.com>
+
+ [BZ #21706]
+ * localedata/locales/br_FR (LC_MESSAGES): Fix nostr.
+
+2017-10-25 Carlos O'Donell <carlos@redhat.com>
+
+ * locale/programs/record-status.h: Define globals, and function
+ prototypes. Move function bodies...
+ * locale/programs/record-status.c: ... to here. New file.
+ * iconv/Makefile (iconv_prog-modules): Add record-status.
+ * locale/Makefile (lib-modules): Likewise.
+ * iconv/iconv_prog.c: Remove verbose.
+ * iconv/iconv_prog.h: Include record-status.h (defines verbose).
+ * locale/programs/charmap.c (charmap_read): If warn_ascii is true then
+ record a warning about ASCII compatibility.
+ * locale/programs/ld-monetary.c (monetary_finish): If
+ warn_int_curr_symbol is true then record a warning about the symbol
+ not being in our ISO 4217 list.
+ * locale/programs/locale.c: Include record-status.h. Remove verbose.
+ * locale/programs/localedef.c: Include ctype.h. Remove delcaration of
+ verbose, recorded_warning_count, recorded_error_count, and be_quiet.
+ (OPT_NO_WARN): Define.
+ (OPT_WARN): Define.
+ (options): Add entry for --no-warnings, and --warnings.
+ (set_warnings): New function to enable/disable warnings.
+ (parse_opt): Call set_warnings for OPT_NO_WARN and OPT_WARN.
+ * locale/programs/localedef.h: Remove warn_int_curr_symbol.
+ * localedata/gen-locale.sh: Default flags to `--quiet -c'.
+ Add `--no-warnings=ascii' to locales using SHIFT_JIS or SHIFT_JIXX0213.
+ Pass flags to generate_locale.
+ (generate_locale): Accept new flag argument and pass it to localedef
+ invocation.
+ * localedata/Makefile (INSTALL-SUPPORTED-LOCALES): Use
+ --no-warnings=ascii for SHIFT_JIS and SHIFT_JISX0213 charmaps.
+
+ * localedata/Makefile (test-input-data): Use full file name.
+ * localedata/da_DK.in: Rename to...
+ * localedata/da_DK.ISO-8859-1.in: ...this.
+ * localedata/de_DE.in: Rename to...
+ * localedata/de_DE.ISO-8859-1.in: ...this.
+ * localedata/en_US.in: Rename to...
+ * localedata/en_US.ISO-8859-1.in: ...this.
+ * localedata/fr_FR.in: Rename to...
+ * localedata/fr_FR.UTF-8.in: ... this.
+ * localedata/hr_HR.in: Rename to...
+ * localedata/hr_HR.ISO-8859-2.in: ...this.
+ * localedata/hu_HU.in: Rename to...
+ * localedata/hu_HU.UTF-8.in: ...this.
+ * localedata/si_LK.in: Rename to...
+ * localedata/si_LK.UTF-8.in: ...this.
+ * localedata/sv_SE.in: Rename to...
+ * localedata/sv_SE.ISO-8859-1.in: ...this.
+ * localedata/tr_TR.in: Rename to...
+ * localedata/tr_TR.UTF-8.in: ...this.
+ * localedata/uk_UA.in: Rename to...
+ * localedata/uk_UA.UTF-8.in: ...this.
+ * localedata/sort-test.sh: Test file is locale name with the
+ suffix.
+
+ * localedata/unicode-gen/Makefile (check_i18n): Rename to
+ check_i18n_ctype. Depend on i18n_ctype-report. Check i18n_ctype-report
+ file.
+ * localedata/locales/i18n_ctype: Regenerate.
+ * localedata/locales/tr_TR: Likewise.
+ * localedata/locales/translit_circle: Likewise.
+ * localedata/locales/translit_cjk_compat: Likewise.
+ * localedata/locales/translit_combining: Likewise.
+ * localedata/locales/translit_compat: Likewise.
+ * localedata/locales/translit_font: Likewise.
+ * localedata/locales/translit_fraction: Likewise.
+
+2017-10-25 Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>
+
+ * sysdeps/powerpc/powerpc64/power7/memcpy.S: Replace
+ lxvd2x/stxvd2x with lvx/stvx.
+ * sysdeps/powerpc/powerpc64/power7/memmove.S: Likewise.
+
+2017-10-25 H.J. Lu <hongjiu.lu@intel.com>
+
+ * include/alloc_buffer.h: Replace "if if " with "if " in
+ comments.
+ * sysdeps/mips/memcpy.S: Likkewise.
+ * sysdeps/mips/memset.S: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/svml_s_sincosf16_core_avx512.S:
+ Likewise.
+ * sysdeps/x86_64/fpu/multiarch/svml_s_sincosf4_core_sse4.S:
+ Likewise.
+ * sysdeps/x86_64/fpu/multiarch/svml_s_sincosf8_core_avx2.S:
+ Likewise.
+
+2017-10-25 Mike FABIAN <mfabian@redhat.com>
+
+ [BZ #15261]
+ * localedata/locales/cmn_TW (LC_MESSAGES): Add fullwidth yYnN to
+ yesexpr and noexpr.
+ * localedata/locales/hak_TW (LC_MESSAGES): Likewise.
+ * localedata/locales/ko_KR (LC_MESSAGES): Likewise.
+ * localedata/locales/lzh_TW (LC_MESSAGES): Likewise.
+ * localedata/locales/nan_TW (LC_MESSAGES): Likewise.
+ * localedata/locales/zh_CN (LC_MESSAGES): Likewise.
+ * localedata/locales/zh_HK (LC_MESSAGES): Likewise.
+ * localedata/locales/zh_TW (LC_MESSAGES): Likewise.
+
+2017-10-25 Mike FABIAN <mfabian@redhat.com>
+
+ * localedata/locales/am_ET (LC_MESSAGES): Sync with CLDR.
+ * localedata/locales/az_AZ (LC_MESSAGES): Likewise.
+ * localedata/locales/el_GR (LC_MESSAGES): Likewise.
+ * localedata/locales/ha_NG (LC_MESSAGES): Likewise.
+ * localedata/locales/ln_CD (LC_MESSAGES): Likewise.
+ * localedata/locales/mfe_MU (LC_MESSAGES): Likewise.
+ * localedata/locales/ml_IN (LC_MESSAGES): Likewise.
+ * localedata/locales/mt_MT (LC_MESSAGES): Likewise.
+ * localedata/locales/os_RU (LC_MESSAGES): Likewise.
+ * localedata/locales/tg_TJ (LC_MESSAGES): Likewise.
+ * localedata/locales/tt_RU (LC_MESSAGES): Likewise.
+ * localedata/locales/wo_SN (LC_MESSAGES): Likewise.
+
+2017-10-25 Mike FABIAN <mfabian@redhat.com>
+
+ * localedata/locales/aa_ET (LC_MESSAGES): Use ASCII as much
+ as possible for better readability of the source.
+ * localedata/locales/af_ZA (LC_MESSAGES): Likewise.
+ * localedata/locales/ak_GH (LC_MESSAGES): Likewise.
+ * localedata/locales/am_ET (LC_MESSAGES): Likewise.
+ * localedata/locales/anp_IN (LC_MESSAGES): Likewise.
+ * localedata/locales/ar_EG (LC_MESSAGES): Likewise.
+ * localedata/locales/as_IN (LC_MESSAGES): Likewise.
+ * localedata/locales/ast_ES (LC_MESSAGES): Likewise.
+ * localedata/locales/ayc_PE (LC_MESSAGES): Likewise.
+ * localedata/locales/az_AZ (LC_MESSAGES): Likewise.
+ * localedata/locales/az_IR (LC_MESSAGES): Likewise.
+ * localedata/locales/be_BY (LC_MESSAGES): Likewise.
+ * localedata/locales/be_BY@latin (LC_MESSAGES): Likewise.
+ * localedata/locales/bem_ZM (LC_MESSAGES): Likewise.
+ * localedata/locales/ber_MA (LC_MESSAGES): Likewise.
+ * localedata/locales/bg_BG (LC_MESSAGES): Likewise.
+ * localedata/locales/bhb_IN (LC_MESSAGES): Likewise.
+ * localedata/locales/bi_VU (LC_MESSAGES): Likewise.
+ * localedata/locales/bo_CN (LC_MESSAGES): Likewise.
+ * localedata/locales/br_FR (LC_MESSAGES): Likewise.
+ * localedata/locales/bs_BA (LC_MESSAGES): Likewise.
+ * localedata/locales/ca_ES (LC_MESSAGES): Likewise.
+ * localedata/locales/ce_RU (LC_MESSAGES): Likewise.
+ * localedata/locales/crh_UA (LC_MESSAGES): Likewise.
+ * localedata/locales/cs_CZ (LC_MESSAGES): Likewise.
+ * localedata/locales/csb_PL (LC_MESSAGES): Likewise.
+ * localedata/locales/cv_RU (LC_MESSAGES): Likewise.
+ * localedata/locales/cy_GB (LC_MESSAGES): Likewise.
+ * localedata/locales/da_DK (LC_MESSAGES): Likewise.
+ * localedata/locales/de_DE (LC_MESSAGES): Likewise.
+ * localedata/locales/dv_MV (LC_MESSAGES): Likewise.
+ * localedata/locales/dz_BT (LC_MESSAGES): Likewise.
+ * localedata/locales/el_GR (LC_MESSAGES): Likewise.
+ * localedata/locales/en_CA (LC_MESSAGES): Likewise.
+ * localedata/locales/en_US (LC_MESSAGES): Likewise.
+ * localedata/locales/es_ES (LC_MESSAGES): Likewise.
+ * localedata/locales/et_EE (LC_MESSAGES): Likewise.
+ * localedata/locales/eu_ES (LC_MESSAGES): Likewise.
+ * localedata/locales/fa_IR (LC_MESSAGES): Likewise.
+ * localedata/locales/ff_SN (LC_MESSAGES): Likewise.
+ * localedata/locales/fi_FI (LC_MESSAGES): Likewise.
+ * localedata/locales/fil_PH (LC_MESSAGES): Likewise.
+ * localedata/locales/fo_FO (LC_MESSAGES): Likewise.
+ * localedata/locales/fr_BE (LC_MESSAGES): Likewise.
+ * localedata/locales/fr_CH (LC_MESSAGES): Likewise.
+ * localedata/locales/fr_FR (LC_MESSAGES): Likewise.
+ * localedata/locales/fr_LU (LC_MESSAGES): Likewise.
+ * localedata/locales/fur_IT (LC_MESSAGES): Likewise.
+ * localedata/locales/fy_DE (LC_MESSAGES): Likewise.
+ * localedata/locales/ga_IE (LC_MESSAGES): Likewise.
+ * localedata/locales/gd_GB (LC_MESSAGES): Likewise.
+ * localedata/locales/gl_ES (LC_MESSAGES): Likewise.
+ * localedata/locales/gu_IN (LC_MESSAGES): Likewise.
+ * localedata/locales/gv_GB (LC_MESSAGES): Likewise.
+ * localedata/locales/ha_NG (LC_MESSAGES): Likewise.
+ * localedata/locales/hak_TW (LC_MESSAGES): Likewise.
+ * localedata/locales/he_IL (LC_MESSAGES): Likewise.
+ * localedata/locales/hif_FJ (LC_MESSAGES): Likewise.
+ * localedata/locales/hne_IN (LC_MESSAGES): Likewise.
+ * localedata/locales/hr_HR (LC_MESSAGES): Likewise.
+ * localedata/locales/hsb_DE (LC_MESSAGES): Likewise.
+ * localedata/locales/ht_HT (LC_MESSAGES): Likewise.
+ * localedata/locales/hu_HU (LC_MESSAGES): Likewise.
+ * localedata/locales/hy_AM (LC_MESSAGES): Likewise.
+ * localedata/locales/ia_FR (LC_MESSAGES): Likewise.
+ * localedata/locales/id_ID (LC_MESSAGES): Likewise.
+ * localedata/locales/ig_NG (LC_MESSAGES): Likewise.
+ * localedata/locales/ik_CA (LC_MESSAGES): Likewise.
+ * localedata/locales/is_IS (LC_MESSAGES): Likewise.
+ * localedata/locales/it_CH (LC_MESSAGES): Likewise.
+ * localedata/locales/it_IT (LC_MESSAGES): Likewise.
+ * localedata/locales/iu_CA (LC_MESSAGES): Likewise.
+ * localedata/locales/ja_JP (LC_MESSAGES): Likewise.
+ * localedata/locales/kk_KZ (LC_MESSAGES): Likewise.
+ * localedata/locales/kl_GL (LC_MESSAGES): Likewise.
+ * localedata/locales/ko_KR (LC_MESSAGES): Likewise.
+ * localedata/locales/ks_IN (LC_MESSAGES): Likewise.
+ * localedata/locales/ku_TR (LC_MESSAGES): Likewise.
+ * localedata/locales/kw_GB (LC_MESSAGES): Likewise.
+ * localedata/locales/ky_KG (LC_MESSAGES): Likewise.
+ * localedata/locales/lb_LU (LC_MESSAGES): Likewise.
+ * localedata/locales/lg_UG (LC_MESSAGES): Likewise.
+ * localedata/locales/li_NL (LC_MESSAGES): Likewise.
+ * localedata/locales/lij_IT (LC_MESSAGES): Likewise.
+ * localedata/locales/ln_CD (LC_MESSAGES): Likewise.
+ * localedata/locales/lo_LA (LC_MESSAGES): Likewise.
+ * localedata/locales/lt_LT (LC_MESSAGES): Likewise.
+ * localedata/locales/lv_LV (LC_MESSAGES): Likewise.
+ * localedata/locales/lzh_TW (LC_MESSAGES): Likewise.
+ * localedata/locales/mg_MG (LC_MESSAGES): Likewise.
+ * localedata/locales/mhr_RU (LC_MESSAGES): Likewise.
+ * localedata/locales/mi_NZ (LC_MESSAGES): Likewise.
+ * localedata/locales/mk_MK (LC_MESSAGES): Likewise.
+ * localedata/locales/ml_IN (LC_MESSAGES): Likewise.
+ * localedata/locales/mn_MN (LC_MESSAGES): Likewise.
+ * localedata/locales/ms_MY (LC_MESSAGES): Likewise.
+ * localedata/locales/mt_MT (LC_MESSAGES): Likewise.
+ * localedata/locales/my_MM (LC_MESSAGES): Likewise.
+ * localedata/locales/nan_TW (LC_MESSAGES): Likewise.
+ * localedata/locales/nan_TW@latin (LC_MESSAGES): Likewise.
+ * localedata/locales/nb_NO (LC_MESSAGES): Likewise.
+ * localedata/locales/nds_DE (LC_MESSAGES): Likewise.
+ * localedata/locales/nds_NL (LC_MESSAGES): Likewise.
+ * localedata/locales/ne_NP (LC_MESSAGES): Likewise.
+ * localedata/locales/nhn_MX (LC_MESSAGES): Likewise.
+ * localedata/locales/niu_NU (LC_MESSAGES): Likewise.
+ * localedata/locales/nl_NL (LC_MESSAGES): Likewise.
+ * localedata/locales/nn_NO (LC_MESSAGES): Likewise.
+ * localedata/locales/nr_ZA (LC_MESSAGES): Likewise.
+ * localedata/locales/nso_ZA (LC_MESSAGES): Likewise.
+ * localedata/locales/oc_FR (LC_MESSAGES): Likewise.
+ * localedata/locales/om_ET (LC_MESSAGES): Likewise.
+ * localedata/locales/or_IN (LC_MESSAGES): Likewise.
+ * localedata/locales/os_RU (LC_MESSAGES): Likewise.
+ * localedata/locales/pa_IN (LC_MESSAGES): Likewise.
+ * localedata/locales/pa_PK (LC_MESSAGES): Likewise.
+ * localedata/locales/pap_AW (LC_MESSAGES): Likewise.
+ * localedata/locales/pap_CW (LC_MESSAGES): Likewise.
+ * localedata/locales/pl_PL (LC_MESSAGES): Likewise.
+ * localedata/locales/ps_AF (LC_MESSAGES): Likewise.
+ * localedata/locales/pt_BR (LC_MESSAGES): Likewise.
+ * localedata/locales/quz_PE (LC_MESSAGES): Likewise.
+ * localedata/locales/raj_IN (LC_MESSAGES): Likewise.
+ * localedata/locales/ro_RO (LC_MESSAGES): Likewise.
+ * localedata/locales/ru_RU (LC_MESSAGES): Likewise.
+ * localedata/locales/ru_UA (LC_MESSAGES): Likewise.
+ * localedata/locales/rw_RW (LC_MESSAGES): Likewise.
+ * localedata/locales/sa_IN (LC_MESSAGES): Likewise.
+ * localedata/locales/sc_IT (LC_MESSAGES): Likewise.
+ * localedata/locales/sd_IN@devanagari (LC_MESSAGES): Likewise.
+ * localedata/locales/se_NO (LC_MESSAGES): Likewise.
+ * localedata/locales/sgs_LT (LC_MESSAGES): Likewise.
+ * localedata/locales/si_LK (LC_MESSAGES): Likewise.
+ * localedata/locales/sk_SK (LC_MESSAGES): Likewise.
+ * localedata/locales/sl_SI (LC_MESSAGES): Likewise.
+ * localedata/locales/sm_WS (LC_MESSAGES): Likewise.
+ * localedata/locales/so_DJ (LC_MESSAGES): Likewise.
+ * localedata/locales/sq_AL (LC_MESSAGES): Likewise.
+ * localedata/locales/sr_RS (LC_MESSAGES): Likewise.
+ * localedata/locales/sr_RS@latin (LC_MESSAGES): Likewise.
+ * localedata/locales/ss_ZA (LC_MESSAGES): Likewise.
+ * localedata/locales/st_ZA (LC_MESSAGES): Likewise.
+ * localedata/locales/sv_SE (LC_MESSAGES): Likewise.
+ * localedata/locales/sw_KE (LC_MESSAGES): Likewise.
+ * localedata/locales/szl_PL (LC_MESSAGES): Likewise.
+ * localedata/locales/tcy_IN (LC_MESSAGES): Likewise.
+ * localedata/locales/tg_TJ (LC_MESSAGES): Likewise.
+ * localedata/locales/th_TH (LC_MESSAGES): Likewise.
+ * localedata/locales/the_NP (LC_MESSAGES): Likewise.
+ * localedata/locales/ti_ER (LC_MESSAGES): Likewise.
+ * localedata/locales/tk_TM (LC_MESSAGES): Likewise.
+ * localedata/locales/tn_ZA (LC_MESSAGES): Likewise.
+ * localedata/locales/to_TO (LC_MESSAGES): Likewise.
+ * localedata/locales/tr_TR (LC_MESSAGES): Likewise.
+ * localedata/locales/ts_ZA (LC_MESSAGES): Likewise.
+ * localedata/locales/tt_RU (LC_MESSAGES): Likewise.
+ * localedata/locales/tt_RU@iqtelif (LC_MESSAGES): Likewise.
+ * localedata/locales/uk_UA (LC_MESSAGES): Likewise.
+ * localedata/locales/unm_US (LC_MESSAGES): Likewise.
+ * localedata/locales/ur_IN (LC_MESSAGES): Likewise.
+ * localedata/locales/ur_PK (LC_MESSAGES): Likewise.
+ * localedata/locales/uz_UZ (LC_MESSAGES): Likewise.
+ * localedata/locales/uz_UZ@cyrillic (LC_MESSAGES): Likewise.
+ * localedata/locales/ve_ZA (LC_MESSAGES): Likewise.
+ * localedata/locales/vi_VN (LC_MESSAGES): Likewise.
+ * localedata/locales/wa_BE (LC_MESSAGES): Likewise.
+ * localedata/locales/wo_SN (LC_MESSAGES): Likewise.
+ * localedata/locales/xh_ZA (LC_MESSAGES): Likewise.
+ * localedata/locales/yi_US (LC_MESSAGES): Likewise.
+ * localedata/locales/yo_NG (LC_MESSAGES): Likewise.
+ * localedata/locales/yue_HK (LC_MESSAGES): Likewise.
+ * localedata/locales/zh_CN (LC_MESSAGES): Likewise.
+ * localedata/locales/zh_HK (LC_MESSAGES): Likewise.
+ * localedata/locales/zh_TW (LC_MESSAGES): Likewise.
+ * localedata/locales/zu_ZA (LC_MESSAGES): Likewise.
+
+2017-10-25 Mike FABIAN <mfabian@redhat.com>
+
+ * localedata/locales/brx_IN (LC_MESSAGES): Fix yesexpr and noexpr
+ (Use first letters of yesstr and nostr correctly instead of using
+ full words).
+
+2017-10-25 Mike FABIAN <mfabian@redhat.com>
+
+ * localedata/locales/ta_IN (LC_MESSAGES): Fix yesexpr and noexpr
+ (Use first letters of yesstr and nostr correctly).
+
+2017-10-25 Mike FABIAN <mfabian@redhat.com>
+
+ * localedata/locales/hi_IN (LC_MESSAGES): In yesexpr and noexpr,
+ also check for the first characters of yesstr and nostr.
+ * localedata/locales/kn_IN (LC_MESSAGES): Likewise.
+ * localedata/locales/ks_IN@devanagari (LC_MESSAGES): Likewise.
+
+2017-10-25 Mike FABIAN <mfabian@redhat.com>
+
+ * localedata/locales/cmn_TW (LC_MESSAGES): In yesexpr and noexpr,
+ also check for Chinese characters.
+
+2017-10-25 Mike FABIAN <mfabian@redhat.com>
+
+ * localedata/locales/chr_US (LC_MESSAGES): In yesexpr and noexpr,
+ match also for the contents of yesstr and nostr. As the first letter
+ of yesstr and nostr is equal, checking only for the first letter
+ is not enough.
+
+2017-10-25 Mike FABIAN <mfabian@redhat.com>
+
+ * localedata/locales/ber_DZ (LC_MESSAGES): Use copy "kab_DZ",
+ it is the same according to Belkacem Mohammed <belkacem77@gmail.com>.
+
+2017-10-25 Mike FABIAN <mfabian@redhat.com>
+
+ * localedata/locales/kab_DZ (LC_IDENTIFICATION): Add e-mail
+ of main contributor.
+
+2017-10-25 Mike FABIAN <mfabian@redhat.com>
+
+ * localedata/locales/zh_SG (LC_MESSAGES): Use copy "zh_CN"
+ instead of using English.
+
+2017-10-25 Mike FABIAN <mfabian@redhat.com>
+
+ * localedata/locales/ug_CN (LC_MESSAGES): Fix noexpr and yesexpr
+ by including the first letters of nostr and yesexpr in the regexp.
+ Also make it more readable by using ASCII where possible.
+
+2017-10-25 Mike FABIAN <mfabian@redhat.com>
+
+ * localedata/locales/te_IN (LC_MESSAGES): Fix noexpr by including
+ the first letter of nostr in the regexp. It agrees with CLDR now.
+ Also make it more readable by using ASCII where possible.
+
+2017-10-24 Mike FABIAN <mfabian@redhat.com>
+
+ * localedata/locales/km_KH (LC_MESSAGES): Fix yestr and nostr.
+ The yesstr and nostr apparently came from CLDR. And CLDR has a bug there:
+ these strings contain a U+17D6 (which somewhat looks like a colon)
+ instead of a real colon to separate the full words for “yesâ€
+ and “no†from the single letter responses.
+
+2017-10-24 Mike FABIAN <mfabian@redhat.com>
+
+ * localedata/locales/ka_GE (LC_MESSAGES): Fix yesexp to make
+ it agree with CLDR (include the first letter of yesstr).
+ Also make it more readable by using ASCII where possible.
+
+2017-10-24 Mike FABIAN <mfabian@redhat.com>
+
+ * localedata/locales/mr_IN (LC_MESSAGES): Fix yesstr and nostr
+ and improve yesexpr and noexpr. The yesstr and nostr apparently
+ came from CLDR. And CLDR has a bug there: these strings contain
+ a U+0903 (which looks like a colon) instead of a real colon
+ to separate the full words for “yes†and “no†from the single
+ letter responses.
+
+2017-10-24 Mike FABIAN <mfabian@redhat.com>
+
+ * localedata/locales/bn_BD (LC_MESSAGES): Use only the first
+ letters of the full yesstr and nostr in yesexpr and noexpr.
+
+2017-10-24 Mike FABIAN <mfabian@redhat.com>
+
+ * localedata/locales/an_ES (LC_MESSAGES): Add yesstr and nostr.
+ * localedata/locales/an_ES (LC_ADDRESS): Add lang_term and lang_lib.
+ * localedata/locales/an_ES: Make source more readable by using ASCII
+ where possible.
+
+2017-10-24 Mike FABIAN <mfabian@redhat.com>
+
+ [BZ #20952]
+ * localedata/locales/yuw_PG: New file.
+ * localedata/SUPPORTED: Add yuw_PG/UTF-8.
+ * locale/iso-639.def: Add Yau (Uruwa).
+
+2017-10-23 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * malloc/malloc.c (_int_malloc): Add SINGLE_THREAD_P path.
+
+2017-10-23 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * malloc/malloc.c (__libc_malloc): Add SINGLE_THREAD_P path.
+ (__libc_realloc): Likewise.
+ (_mid_memalign): Likewise.
+ (__libc_calloc): Likewise.
+
+2017-10-23 Mike FABIAN <mfabian@redhat.com>
+
+ * localedata/locales/tpi_PG (LC_MESSAGES): Fix yesexpr and noexpr
+ by adding the generic +1 and -0 as in all other locales.
+ * localedata/locales/tpi_PG (LC_TIME): Fix some typos in the month and
+ day names and make it more readable by using ASCII where possible.
+
+2017-10-24 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/x86/fpu/fix-fp-int-compare-invalid.h
+ (FIX_COMPARE_INVALID): Define to 0 if [__GNUC_PREREQ (8, 0)].
+
+2017-10-23 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/unix/sysv/linux/spawni.c (__spawnix): Use 0 instead of
+ WNOHANG in waitpid call.
+
+2017-10-23 Siddhesh Poyarekar <siddhesh@sourceware.org>
+
+ * manual/conf.texi (_SC_LEVEL1_DCACHE_LINESIZE,
+ _SC_LEVEL1_ICACHE_LINESIZE): Document aarch64 caveat.
+
+ * manual/conf.texi (_SC_LEVEL1_ICACHE_SIZE,
+ _SC_LEVEL1_ICACHE_ASSOC, _SC_LEVEL1_ICACHE_LINESIZE,
+ _SC_LEVEL1_DCACHE_SIZE, _SC_LEVEL1_DCACHE_ASSOC,
+ _SC_LEVEL1_DCACHE_LINESIZE, _SC_LEVEL2_CACHE_SIZE,
+ _SC_LEVEL2_CACHE_ASSOC, _SC_LEVEL2_CACHE_LINESIZE,
+ _SC_LEVEL3_CACHE_SIZE, _SC_LEVEL3_CACHE_ASSOC,
+ _SC_LEVEL3_CACHE_LINESIZE, _SC_LEVEL4_CACHE_SIZE,
+ _SC_LEVEL4_CACHE_ASSOC, _SC_LEVEL4_CACHE_LINESIZE): New
+ variables.
+
+2017-10-23 Michael Collison <michael.collison@arm.com>
+
+ * sysdeps/aarch64/fpu/e_sqrt.c (ieee754_sqrt): Replace asm statements
+ with __builtin_sqrt.
+ * sysdeps/aarch64/fpu/e_sqrtf.c (ieee754_sqrtf): Replace asm statements
+ with __builtin_sqrtf.
+ * sysdeps/aarch64/fpu/s_ceil.c (__ceil): Replace asm statements
+ with __builtin_ceil.
+ * sysdeps/aarch64/fpu/s_ceilf.c (__ceilf): Replace asm statements
+ with __builtin_ceilf.
+ * sysdeps/aarch64/fpu/s_floor.c (__floor): Replace asm statements
+ with __builtin_floor.
+ * sysdeps/aarch64/fpu/s_floorf.c (__floorf): Replace asm statements
+ with __builtin_floorf.
+ * sysdeps/aarch64/fpu/s_fma.c (__fma): Replace asm statements
+ with __builtin_fma.
+ * sysdeps/aarch64/fpu/s_fmaf.c (__fmaf): Replace asm statements
+ with __builtin_fmaf.
+ * sysdeps/aarch64/fpu/s_fmax.c (__fmax): Replace asm statements
+ with __builtin_fmax.
+ * sysdeps/aarch64/fpu/s_fmaxf.c (__fmaxf): Replace asm statements
+ with __builtin_fmaxf.
+ * sysdeps/aarch64/fpu/s_fmin.c (__fmin): Replace asm statements
+ with __builtin_fmin.
+ * sysdeps/aarch64/fpu/s_fminf.c (__fminf): Replace asm statements
+ with __builtin_fminf.
+ * sysdeps/aarch64/fpu/s_frint.c: Delete file.
+ * sysdeps/aarch64/fpu/s_frintf.c: Delete file.
+ * sysdeps/aarch64/fpu/s_llrint.c (__llrint): Replace asm statements
+ with builtin_rint and conversion to int.
+ * sysdeps/aarch64/fpu/s_llrintf.c (__llrintf): Likewise.
+ * sysdeps/aarch64/fpu/s_llround.c (__llround): Replace asm statements
+ with builtin_llround.
+ * sysdeps/aarch64/fpu/s_llroundf.c (__llroundf): Likewise.
+ * sysdeps/aarch64/fpu/s_lrint.c (__lrint): Replace asm statements
+ with builtin_rint and conversion to long int.
+ * sysdeps/aarch64/fpu/s_lrintf.c (__lrintf): Likewise.
+ * sysdeps/aarch64/fpu/s_lround.c (__lround): Replace asm statements
+ with builtin_lround.
+ * sysdeps/aarch64/fpu/s_lroundf.c (__lroundf): Replace asm statements
+ with builtin_lroundf.
+ * sysdeps/aarch64/fpu/s_nearbyint.c (__nearbyint): Replace asm
+ statements with __builtin_nearbyint.
+ * sysdeps/aarch64/fpu/s_nearbyintf.c (__nearbyintf): Replace asm
+ statements with __builtin_nearbyintf.
+ * sysdeps/aarch64/fpu/s_rint.c (__rint): Replace asm statements
+ with __builtin_rint.
+ * sysdeps/aarch64/fpu/s_rintf.c (__rintf): Replace asm statements
+ with __builtin_rintf.
+ * sysdeps/aarch64/fpu/s_round.c (__round): Replace asm statements
+ with __builtin_round.
+ * sysdeps/aarch64/fpu/s_roundf.c (__roundf): Replace asm statements
+ with __builtin_roundf.
+ * sysdeps/aarch64/fpu/s_trunc.c (__trunc): Replace asm statements
+ with __builtin_trunc.
+ * sysdeps/aarch64/fpu/s_truncf.c (__truncf): Replace asm statements
+ with __builtin_truncf.
+ * sysdeps/aarch64/fpu/Makefile: Build e_sqrt[f].c with -fno-math-errno,
+ and s_l[l]round[f].c too.
+
+2017-10-23 Alan Modra <amodra@gmail.com>
+
+ * sysdeps/powerpc/powerpc64/power8/strncpy.S: Move LR cfi.
+ Adjust stack after restoring regs. Add missing LR cfi_restore.
+
+2017-10-23 Alan Modra <amodra@gmail.com>
+
+ * sysdeps/powerpc/powerpc64/power7/strncpy.S: Decrease FRAMESIZE.
+ Move LR save and frame setup/teardown and LR restore to
+ immediately around memset call. Provide cfi.
+
+2017-10-22 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/i386/fpu/e_powf.S: Removed.
+ * sysdeps/i386/fpu/e_powf_log2_data.c: Likewise.
+ * sysdeps/i386/fpu/w_powf.c: Likewise.
+ * sysdeps/i386/fpu/libm-test-ulps: Updated for generic e_powf.c.
+ * sysdeps/i386/i686/fpu/multiarch/libm-test-ulps: Likewise.
+ * sysdeps/i386/i686/fpu/multiarch/Makefile (libm-sysdep_routines):
+ Add e_powf-sse2.
+ (CFLAGS-e_powf-sse2.c): New.
+ * sysdeps/i386/i686/fpu/multiarch/e_powf-sse2.c: New file.
+ * sysdeps/i386/i686/fpu/multiarch/e_powf.c: Likewise.
+
+2017-10-22 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/i386/fpu/e_log2f.S: Removed.
+ * sysdeps/i386/fpu/e_log2f_data.c: Likewise.
+ * sysdeps/i386/fpu/w_log2f.c: Likewise.
+ * sysdeps/i386/fpu/libm-test-ulps: Updated for generic e_log2f.c.
+ * sysdeps/i386/i686/fpu/multiarch/libm-test-ulps: Likewise.
+ * sysdeps/i386/i686/fpu/multiarch/Makefile (libm-sysdep_routines):
+ Add e_log2f-sse2.
+ (CFLAGS-e_log2f-sse2.c): New.
+ * sysdeps/i386/i686/fpu/multiarch/e_log2f-sse2.c: New file.
+ * sysdeps/i386/i686/fpu/multiarch/e_log2f.c: Likewise.
+
+2017-10-22 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86_64/fpu/multiarch/Makefile (libm-sysdep_routines):
+ Add e_powf-fma.
+ (CFLAGS-e_powf-fma.c): New.
+ * sysdeps/x86_64/fpu/multiarch/e_powf-fma.c: New file.
+ * sysdeps/x86_64/fpu/multiarch/e_powf.c: Likewise.
+
+2017-10-22 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86_64/fpu/multiarch/Makefile (libm-sysdep_routines):
+ Add e_log2f-fma.
+ (CFLAGS-e_log2f-fma.c): New.
+ * sysdeps/x86_64/fpu/multiarch/e_log2f-fma.c: New file.
+ * sysdeps/x86_64/fpu/multiarch/e_log2f.c: Likewise.
+
+2017-10-22 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86_64/fpu/multiarch/Makefile (libm-sysdep_routines):
+ Add e_logf-fma.
+ (CFLAGS-e_logf-fma.c): New.
+ * sysdeps/x86_64/fpu/multiarch/e_logf-fma.c: New file.
+ * sysdeps/x86_64/fpu/multiarch/e_logf.c: Likewise.
+
+2017-10-22 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/i386/fpu/e_logf.S: Removed.
+ * sysdeps/i386/fpu/e_logf_data.c: Likewise.
+ * sysdeps/i386/fpu/w_logf.c: Likewise.
+ * sysdeps/i386/i686/fpu/e_logf.S: Likewise.
+ * sysdeps/i386/fpu/libm-test-ulps: Updated for generic e_logf.c.
+ * sysdeps/i386/i686/fpu/multiarch/libm-test-ulps: Likewise.
+ * sysdeps/i386/i686/fpu/multiarch/Makefile (libm-sysdep_routines):
+ Add e_logf-sse2.
+ (CFLAGS-e_logf-sse2.c): New.
+ * sysdeps/i386/i686/fpu/multiarch/e_logf-sse2.c: New file.
+ * sysdeps/i386/i686/fpu/multiarch/e_logf.c: Likewise.
+
+2017-10-22 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/i386/fpu/e_exp2f.S: Removed.
+ * sysdeps/i386/fpu/w_exp2f.c: Likewise.
+ * sysdeps/i386/fpu/libm-test-ulps: Updated for generic e_exp2f.c.
+ * sysdeps/i386/i686/fpu/multiarch/libm-test-ulps: Likewise.
+ * sysdeps/i386/i686/fpu/multiarch/Makefile (libm-sysdep_routines):
+ Add e_exp2f-sse2.
+ (CFLAGS-e_exp2f-sse2.c): New.
+ * sysdeps/i386/i686/fpu/multiarch/e_exp2f-sse2.c: New file.
+ * sysdeps/i386/i686/fpu/multiarch/e_exp2f.c: Likewise.
+
+2017-10-22 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86_64/fpu/multiarch/Makefile (libm-sysdep_routines):
+ Add e_exp2f-fma.
+ (CFLAGS-e_exp2f-fma.c): New.
+ * sysdeps/x86_64/fpu/multiarch/e_exp2f-fma.c: New file.
+ * sysdeps/x86_64/fpu/multiarch/e_exp2f.c: Likewise.
+
+2017-10-22 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/i386/fpu/e_exp2f_data.c: Removed.
+ * sysdeps/i386/fpu/e_expf.S: Likewise.
+ * sysdeps/i386/fpu/math_errf.c: Likewise.
+ * sysdeps/i386/fpu/w_expf.c: Likewise.
+ * sysdeps/i386/i686/fpu/multiarch/e_expf-ia32.S: Likewise.
+ * sysdeps/i386/i686/fpu/multiarch/e_expf-sse2.S: Likewise.
+ * sysdeps/i386/i686/fpu/multiarch/w_expf.c: Likewise.
+ * sysdeps/i386/fpu/libm-test-ulps: Updated for generic e_expf.c.
+ * sysdeps/i386/i686/fpu/multiarch/libm-test-ulps: Likewise.
+ * sysdeps/i386/i686/fpu/multiarch/Makefile (libm-sysdep_routines):
+ Remove e_expf-ia32.
+ (CFLAGS-e_expf-sse2.c): New.
+ * sysdeps/i386/i686/fpu/multiarch/e_expf-sse2.c: New file.
+ * sysdeps/i386/i686/fpu/multiarch/e_expf.c: Rewritten.
+
+2017-10-22 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86_64/fpu/e_expf.S: Removed.
+ * sysdeps/x86_64/fpu/multiarch/e_expf-fma.S: Likewise.
+ * sysdeps/x86_64/fpu/w_expf.c: Likewise.
+ * sysdeps/x86_64/fpu/libm-test-ulps: Updated for generic
+ e_expf.c.
+ * sysdeps/x86_64/fpu/multiarch/Makefile (CFLAGS-e_expf-fma.c):
+ New.
+ * sysdeps/x86_64/fpu/multiarch/e_expf-fma.c: New file.
+ * sysdeps/x86_64/fpu/multiarch/e_expf.c (__redirect_ieee754_expf):
+ Renamed to ...
+ (__redirect_expf): This.
+ (SYMBOL_NAME): Changed to expf.
+ (__ieee754_expf): Renamed to ...
+ (__expf): This.
+ (__GI___expf): This.
+ (__ieee754_expf): Add strong_alias.
+ (__expf_finite): Likewise.
+ (__expf): New.
+ Include <sysdeps/ieee754/flt-32/e_expf.c>.
+
+2017-10-22 Paul Eggert <eggert@cs.ucla.edu>
+
+ [BZ #22332]
+ * posix/glob.c (__glob): Fix buffer overflow during GLOB_TILDE
+ unescaping.
+
+2017-10-21 Florian Weimer <fweimer@redhat.com>
+
+ * posix/Makefile (tests): Add tst-glob-tilde.
+ (tests-special): Add tst-glob-tilde-mem.out
+ (tst-glob-tilde-ENV): Set MALLOC_TRACE.
+ (tst-glob-tilde-mem.out): Add mtrace check.
+ * posix/tst-glob-tilde.c: New file.
+
+2017-10-20 Joseph Myers <joseph@codesourcery.com>
+
+ * bits/floatn-common.h: New file.
+ * math/Makefile (headers): Add bits/floatn-common.h.
+ * bits/floatn.h: Include <bits/floatn-common.h>.
+ * sysdeps/ia64/bits/floatn.h: Likewise.
+ * sysdeps/ieee754/ldbl-128/bits/floatn.h: Likewise.
+ * sysdeps/mips/ieee754/bits/floatn.h: Likewise.
+ * sysdeps/powerpc/bits/floatn.h: Likewise.
+ * sysdeps/x86/bits/floatn.h: Likewise.
+
+2017-10-20 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * configure.ac (libc_cv_gcc_incompatbile_alias): New define:
+ indicates whether compiler emits an warning for alias for
+ functions with incompatible types.
+
+ [BZ #22273]
+ * sysdeps/unix/sysv/linux/spawni.c (__spawnix): Handle the case where
+ the auxiliary process is terminated by a signal before calling _exit
+ or execve.
+
+2017-10-20 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #21265]
+ * sysdeps/x86/cpu-features-offsets.sym (XSAVE_STATE_SIZE_OFFSET):
+ New.
+ * sysdeps/x86/cpu-features.c: Include <libc-pointer-arith.h>.
+ (get_common_indeces): Set xsave_state_size, xsave_state_full_size
+ and bit_arch_XSAVEC_Usable if needed.
+ (init_cpu_features): Remove bit_arch_Use_dl_runtime_resolve_slow
+ and bit_arch_Use_dl_runtime_resolve_opt.
+ * sysdeps/x86/cpu-features.h (bit_arch_Use_dl_runtime_resolve_opt):
+ Removed.
+ (bit_arch_Use_dl_runtime_resolve_slow): Likewise.
+ (bit_arch_Prefer_No_AVX512): Updated.
+ (bit_arch_MathVec_Prefer_No_AVX512): Likewise.
+ (bit_arch_XSAVEC_Usable): New.
+ (STATE_SAVE_OFFSET): Likewise.
+ (STATE_SAVE_MASK): Likewise.
+ [__ASSEMBLER__]: Include <cpu-features-offsets.h>.
+ (cpu_features): Add xsave_state_size and xsave_state_full_size.
+ (index_arch_Use_dl_runtime_resolve_opt): Removed.
+ (index_arch_Use_dl_runtime_resolve_slow): Likewise.
+ (index_arch_XSAVEC_Usable): New.
+ * sysdeps/x86/cpu-tunables.c (TUNABLE_CALLBACK (set_hwcaps)):
+ Support XSAVEC_Usable. Remove Use_dl_runtime_resolve_slow.
+ * sysdeps/x86_64/Makefile (tst-x86_64-1-ENV): New if tunables
+ is enabled.
+ * sysdeps/x86_64/dl-machine.h (elf_machine_runtime_setup):
+ Replace _dl_runtime_resolve_sse, _dl_runtime_resolve_avx,
+ _dl_runtime_resolve_avx_slow, _dl_runtime_resolve_avx_opt,
+ _dl_runtime_resolve_avx512 and _dl_runtime_resolve_avx512_opt
+ with _dl_runtime_resolve_fxsave, _dl_runtime_resolve_xsave and
+ _dl_runtime_resolve_xsavec.
+ * sysdeps/x86_64/dl-trampoline.S (DL_RUNTIME_UNALIGNED_VEC_SIZE):
+ Removed.
+ (DL_RUNTIME_RESOLVE_REALIGN_STACK): Check STATE_SAVE_ALIGNMENT
+ instead of VEC_SIZE.
+ (REGISTER_SAVE_BND0): Removed.
+ (REGISTER_SAVE_BND1): Likewise.
+ (REGISTER_SAVE_BND3): Likewise.
+ (REGISTER_SAVE_RAX): Always defined to 0.
+ (VMOV): Removed.
+ (_dl_runtime_resolve_avx): Likewise.
+ (_dl_runtime_resolve_avx_slow): Likewise.
+ (_dl_runtime_resolve_avx_opt): Likewise.
+ (_dl_runtime_resolve_avx512): Likewise.
+ (_dl_runtime_resolve_avx512_opt): Likewise.
+ (_dl_runtime_resolve_sse): Likewise.
+ (_dl_runtime_resolve_sse_vex): Likewise.
+ (USE_FXSAVE): New.
+ (_dl_runtime_resolve_fxsave): Likewise.
+ (USE_XSAVE): Likewise.
+ (_dl_runtime_resolve_xsave): Likewise.
+ (USE_XSAVEC): Likewise.
+ (_dl_runtime_resolve_xsavec): Likewise.
+ * sysdeps/x86_64/dl-trampoline.h (_dl_runtime_resolve_avx512):
+ Removed.
+ (_dl_runtime_resolve_avx512_opt): Likewise.
+ (_dl_runtime_resolve_avx): Likewise.
+ (_dl_runtime_resolve_avx_opt): Likewise.
+ (_dl_runtime_resolve_sse): Likewise.
+ (_dl_runtime_resolve_sse_vex): Likewise.
+ (_dl_runtime_resolve_fxsave): New.
+ (_dl_runtime_resolve_xsave): Likewise.
+ (_dl_runtime_resolve_xsavec): Likewise.
+
+2017-10-20 Paul Eggert <eggert@cs.ucla.edu>
+
+ [BZ #22320]
+ CVE-2017-15670
+ * posix/glob.c (__glob): Fix one-byte overflow.
+
+2017-10-20 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * malloc/malloc.c (sysdep-cancel.h): Add include.
+
+2017-10-20 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * malloc/malloc.c (_int_free): Add SINGLE_THREAD_P fast paths.
+
+2017-10-20 Will Hawkins <hawkinsw@borlaugic.com>
+
+ * resolv/Makefile [$(build-shared)$(have-thread-library) == yesyes]
+ (tests): Remove $(objpfx)ga_test depdendency.
+ * resolv/ga_test.c: Remove file.
+
+2017-10-20 Mike FABIAN <mfabian@redhat.com>
+
+ [BZ #18812]
+ * localedata/SUPPORTED: Add kab_DZ/UTF-8.
+ * localedata/locales/kab_DZ: New file.
+
+2017-10-20 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/m68k/dl-machine.h (elf_machine_load_address): Use
+ _dl_relocate_static_pie instead of _dl_start to compute load
+ address in static PIE.
+
+2017-10-20 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/m68k/start.S (_start): Check PIC instead of SHARED.
+
+2017-10-20 Mike FABIAN <mfabian@redhat.com>
+
+ [BZ #13605]
+ * localedata/SUPPORTED: Add shn_MM/UTF-8.
+ * localedata/locales/shn_MM: New file.
+
+2017-10-20 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #22321]
+ sysconf: Fix missing definition of UIO_MAXIOV on Linux.
+ * sysdeps/posix/sysconf.c: Include <sys/uio.h>.
+ * sysdeps/unix/sysv/linux/Makefile (tests): Add tst-sysconf-iov_max.
+ (tst-sysconf-iov_max): Link with tst-sysconf-iov_max-uapi.o.
+ * sysdeps/unix/sysv/linux/tst-sysconf-iov_max.c: New file.
+ * sysdeps/unix/sysv/linux/tst-sysconf-iov_max-uapi.c: Likewise.
+
+2017-10-19 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/i386/fpu/libm-test-ulps: Regenerated.
+
+2017-10-19 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/mips/ieee754/bits/floatn.h: New file.
+
+ [BZ #22322]
+ * sysdeps/mips/bits/long-double.h: Move to ....
+ * sysdeps/mips/ieee754/bits/long-double.h: ... here.
+
+2017-10-19 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * malloc/malloc.c (_int_free): Fix deadlock bug in consistency check.
+
+2017-10-19 Valery Reznic <valery_reznic@yahoo.com>
+ H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #22299]
+ * sysdeps/x86/cpu-features.c (init_cpu_features): Don't set
+ GLRO(dl_platform) to NULL.
+ * sysdeps/x86_64/Makefile (tests): Add tst-platform-1.
+ (modules-names): Add tst-platformmod-1 and
+ x86_64/tst-platformmod-2.
+ (CFLAGS-tst-platform-1.c): New.
+ (CFLAGS-tst-platformmod-1.c): Likewise.
+ (CFLAGS-tst-platformmod-2.c): Likewise.
+ (LDFLAGS-tst-platformmod-2.so): Likewise.
+ ($(objpfx)tst-platform-1): Likewise.
+ ($(objpfx)tst-platform-1.out): Likewise.
+ (tst-platform-1-ENV): Likewise.
+ ($(objpfx)x86_64/tst-platformmod-2.os): Likewise.
+ * sysdeps/x86_64/tst-platform-1.c: New file.
+ * sysdeps/x86_64/tst-platformmod-1.c: Likewise.
+ * sysdeps/x86_64/tst-platformmod-2.c: Likewise.
+
+2017-10-19 Mike FABIAN <mfabian@redhat.com>
+
+ [BZ #13994]
+ * locale/iso-639.def: Add Karbi.
+ * localedata/SUPPORTED: Add mjw_IN/UTF-8.
+ * localedata/locales/mjw_IN: New file.
+
+2017-10-18 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/ieee754/ldbl-128/Makeconfig: New file.
+ * sysdeps/ieee754/ldbl-128/bits/floatn.h: Likewise.
+ * sysdeps/ieee754/ldbl-128/float128-abi.h: Likewise.
+ * sysdeps/generic/libm-alias-ldouble.h: Include <bits/floatn.h>.
+ [__HAVE_FLOAT128 && !__HAVE_DISTINCT_FLOAT128]
+ (libm_alias_ldouble_other_r): Also create _Float128 alias.
+ * sysdeps/ieee754/ldbl-opt/libm-alias-ldouble.h: Include
+ <bits/floatn.h>.
+ [__HAVE_FLOAT128 && !__HAVE_DISTINCT_FLOAT128]
+ (libm_alias_ldouble_other_r): Also create _Float128 alias.
+ * manual/math.texi (Mathematics): Document additional architecture
+ support for _Float128.
+ * sysdeps/unix/sysv/linux/aarch64/libc.abilist: Update.
+ * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise.
+
+2017-10-18 Renlin Li <renlin.li@arm.com>
+
+ * sysdeps/aarch64/dl-machine.h (elf_machine_load_address): Use
+ _DYNAMIC symbol to calculate load address.
+
+2017-10-18 Paul A. Clarke <pc@us.ibm.com>
+
+ * sysdeps/powerpc/fpu/fenv_private.h (_FPU_MASK_TRAPS_RN):
+ (_FPU_MASK_FRAC_INEX_RET_CC): Fix masks to more properly handle
+ summary bits.
+ (_FPU_MASK_RN): Expand _FPU_MASK_RN to 64bit hex.
+ (_FPU_MASK_NOT_RN_NI): Treat bit 52 (left-to-right) as reserved.
+
+2017-10-18 Mike FABIAN <mfabian@redhat.com>
+
+ [BZ #16777]
+ * localedata/locales/pl_PL (LC_MONETARY): Use U+202F as mon_thousands_sep
+ and improve readability by using more ASCII.
+ * localedata/locales/pl_PL (LC_NUMERIC): Use U+202F as thousands_sep
+ and improve readability by using more ASCII.
+
+2017-10-18 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * malloc/malloc.c (malloc_state): Use int for have_fastchunks since
+ not all targets support atomics on bool.
+
+2017-10-17 Joseph Myers <joseph@codesourcery.com>
+
+ * include/float.h [!__GNUC_PREREQ (7, 0) && __HAVE_FLOAT128 &&
+ __GLIBC_USE (IEC_60559_TYPES_EXT)] (FLT128_MAX): Define using
+ __f128.
+ [!__GNUC_PREREQ (7, 0) && __HAVE_FLOAT128 && __GLIBC_USE
+ (IEC_60559_TYPES_EXT)] (FLT128_EPSILON): Likewise.
+ [!__GNUC_PREREQ (7, 0) && __HAVE_FLOAT128 && __GLIBC_USE
+ (IEC_60559_TYPES_EXT)] (FLT128_MIN): Likewise.
+ [!__GNUC_PREREQ (7, 0) && __HAVE_FLOAT128 && __GLIBC_USE
+ (IEC_60559_TYPES_EXT)] (FLT128_TRUE_MIN): Likewise.
+
+2017-10-17 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * bits/uio-ext.h (RWF_HIPRI, RWF_DSYNC, RWF_SYNC, RWF_NOWAIT): New
+ defines.
+
+2017-10-17 Wilco Dijkstra <wdijkstr@arm.com>
+
+ [BZ #22159]
+ * malloc/arena.c (ptmalloc_init): Call malloc_init_state.
+ * malloc/malloc.c (do_check_free_chunk): Fix build bug.
+ (do_check_remalloced_chunk): Fix build bug.
+ (do_check_malloc_state): Add assert that checks arena->top.
+ (malloc_consolidate): Remove initialization.
+ (int_mallinfo): Remove call to malloc_consolidate.
+ (__libc_mallopt): Clarify why malloc_consolidate is needed.
+
+2017-10-17 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * malloc/malloc.c (FASTCHUNKS_BIT): Remove.
+ (have_fastchunks): Remove.
+ (clear_fastchunks): Remove.
+ (set_fastchunks): Remove.
+ (malloc_state): Add have_fastchunks.
+ (malloc_init_state): Use have_fastchunks.
+ (do_check_malloc_state): Remove incorrect invariant checks.
+ (_int_malloc): Use have_fastchunks.
+ (_int_free): Likewise.
+ (malloc_consolidate): Likewise.
+
+2017-10-17 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * malloc/malloc.c (tcache_put): Inline.
+ (tcache_get): Inline.
+
+2017-10-17 Jordi Mallach <jordi@gnu.org>
+
+ Aurelien Jarno <aurelien@aurel32.net>
+ [BZ #2522]
+ * localedata/locales/ca_ES@valencia: New file.
+ * localedata/SUPPORTED: Add ca_ES@valencia/UTF-8.
+
+2017-10-17 Romain Naour <romain.naour@gmail.com> (tiny change)
+
+ [BZ #22296]
+ * math/math.h: Let signbit use the builtin in C++ mode with gcc
+ < 6.x
+
+2017-10-17 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * scripts/build-many-glibcs.py (Context.add_all_configs):
+ Add arm-linux-gnueabihf multiarch extra_glibcs.
+
+ * sysdeps/generic/ifunc-init.h: New file.
+ * sysdeps/x86/init-arch.h: Use generic ifunc-init.h.
+
+2017-10-17 Mike FABIAN <mfabian@redhat.com>
+
+ [BZ #22019]
+ * localedata/locales/el_GR: Set n_cs_precedes to 0.
+ * localedata/locales/el_CY: copy "el_GR" because it is identical.
+ * stdlib/tst-strfmon_l.c: adapt test case.
+
+2017-10-16 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/generic/float128-abi.h: New file.
+ * sysdeps/ieee754/float128/Versions (FLOAT128_VERSION): Move
+ non-__prefixed symbols to ....
+ * math/Versions: ... here. Include <float128-abi.h>.
+ * stdlib/Versions ... and here. Include <float128-abi.h>
+
+2017-10-16 Florian Weimer <fweimer@redhat.com>
+
+ * version.h (VERSION): Switch to ".9000" as the development
+ version suffix.
+
+2017-10-16 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #22050]
+ * malloc/mcheck-init.c (__malloc_initialize_hook): Use
+ compat_symbol_reference to access non-default version.
+
+2017-10-16 Florian Weimer <fweimer@redhat.com>
+
+ * malloc/Makefile (others-extras): Set to mcheck-init.o.
+
+2017-10-16 Carlos O'Donell <carlos@redhat.com>
+
+ * include/shlib-compat.h (compat_symbol_reference): Update
+ comment.
+
+2017-10-16 Joseph Myers <joseph@codesourcery.com>
+
+ * math/Makefile (test-types): Add
+ $(type-float128-$(float128-alias-fcts)).
+ * math/test-float128.h (TYPE_STR): Define conditional on
+ [FLT128_MANT_DIG == LDBL_MANT_DIG].
+ (ULP_IDX): Likewise.
+ (ULP_I_IDX): Likewise.
+
+ * stdlib/strtold.c: Include <bits/floatn.h>
+ [__HAVE_FLOAT128 && !__HAVE_DISTINCT_FLOAT128] (strtof128): Define
+ and later undefine as macro. Define as weak alias if
+ [!USE_WIDE_CHAR].
+ [__HAVE_FLOAT128 && !__HAVE_DISTINCT_FLOAT128] (wcstof128): Define
+ and later undefine as macro. Define as weak alias if
+ [USE_WIDE_CHAR].
+ * sysdeps/ieee754/ldbl-128/strtold_l.c [__HAVE_FLOAT128 &&
+ !__HAVE_DISTINCT_FLOAT128] (strtof128_l): Define and later
+ undefine as macro. Define as weak alias if [!USE_WIDE_CHAR].
+ [__HAVE_FLOAT128 && !__HAVE_DISTINCT_FLOAT128] (wcstof128_l):
+ Define and later undefine as macro. Define as weak alias if
+ [USE_WIDE_CHAR].
+ * sysdeps/ieee754/ldbl-64-128/strtold_l.c: Include
+ <bits/floatn.h>.
+ [__HAVE_FLOAT128 && !__HAVE_DISTINCT_FLOAT128] (strtof128_l):
+ Define and later undefine as macro. Define as weak alias if
+ [!USE_WIDE_CHAR].
+ [__HAVE_FLOAT128 && !__HAVE_DISTINCT_FLOAT128] (wcstof128_l):
+ Define and later undefine as macro. Define as weak alias if
+ [USE_WIDE_CHAR].
+
+2017-10-15 Carlos O'Donell <carlos@redhat.com>
+
+ * localedata/collate-test.c (allocate_arrays): Don't use \n in
+ record_verbose messages.
+
+2017-10-15 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #22052]
+ * malloc/hooks.c (realloc_check): Use DIAG_IGNORE_NEEDS_COMMENT
+ to silence -O3 -Wall warning with GCC 7.
+
+2017-10-14 H.J. Lu <hongjiu.lu@intel.com>
+
+ * Makeconfig (+link-static-before-libc): Use the first of
+ $(CRT-$(@F)) and $(csu-objpfx)$(static-start-installed-name).
+ * gmon/Makefile (tests): Add tst-gmon-static.
+ (tests-static): Likewise.
+ (CFLAGS-tst-gmon-static.c): New.
+ (CRT-tst-gmon-static): Likewise.
+ (DEFAULT-LDFLAGS-tst-gmon-static): Likewise.
+ (tst-gmon-static-ENV): Likewise.
+ (tests-special): Likewise.
+ ($(objpfx)tst-gmon-static.out): Likewise.
+ (clean-tst-gmon-static-data): Likewise.
+ ($(objpfx)tst-gmon-static-gprof.out): Likewise.
+ * gmon/tst-gmon-static-gprof.sh: New file.
+ * gmon/tst-gmon-static.c: Likewise.
+
+2017-10-13 Carlos O'Donell <carlos@redhat.com>
+
+ [BZ #22295]
+ * locale/programs/linereader.c (get_string): Don't warn on
+ non-symbolic character.
+
+ [BZ #22294]
+ * locale/programs/ld-monetary.c (monetary_finish): Allow ""
+ int_curr_symbol.
+
+ [BZ #22292]
+ * locale/programs/record-status.h: New file
+ * locale/programs/locale.c: Add comment.
+ * locale/programs/charmap-dir.c: Don't include error.h.
+ (charmap_opendir): Use record_error.
+ * locale/programs/charmap.c: Don't include error.h.
+ (charmap_read): Use record_error, and record_warning.
+ (parse_charmap): Likewise.
+ * locale/programs/ld-address.c: Don't include error.h.
+ (address_finish): Use record_error, and record_warning.
+ * locale/programs/ld-collate.c: Don't include error.h.
+ (collate_finish): Use record_error, and record_error_at_line.
+ * locale/programs/ld-ctype.c (ctype_finish): Use record_error.
+ (ctype_class_new): Likewise.
+ (ctype_map_new): Likewise.
+ (set_one_default): Likewise.
+ (set_class_defaults): Likewise.
+ (translit_flatten): Likewise.
+ (allocate_arrays): Use record_error, and record_verbose.
+ * locale/programs/ld-identification.c: Don't include error.h.
+ (indentation_finish): Use record_error and record_warning.
+ * locale/programs/ld-measurement.c: Don't include error.h.
+ (measurement_finish): Use record_error.
+ * locale/programs/ld-messages.c
+ (message_finish): Likewise.
+ * locale/programs/ld-monetary.c
+ (monetary_finish): Likewise.
+ * locale/programs/ld-name.c (name_finish): Use record_error
+ and record_warning.
+ * locale/programs/ld-numeric.c
+ (numeric_finish): Use record_error.
+ * locale/programs/ld-paper.c: Don't include error.h.
+ (paper_finish): Use record_error.
+ * locale/programs/ld-telephone.c: Don't include error.h.
+ (telephone_finish): Use record_error.
+ * locale/programs/ld-time.c (time_finish): Likewise.
+ * locale/programs/linereader.h (lr_error): Make inline func.
+ * locale/programs/localedef.c: Define recorded_warning_count,
+ and recorded_error_count.
+ (main): Use record_error. Use recorded_error_count and
+ recorded_warning_count to issue correct error returns.
+ (add_to_readlist): Use record_error.
+ (find_locale): Likewise.
+ (load_locale): Likewise.
+ * locale/programs/localedef.h: Remove be_quiet
+ and WITH_CUR_LOCALE.
+ * locale/programs/locarchive.c (compare_from_file): Use
+ record_error.
+ * locale/programs/locfile.c (write_locale_data): Use
+ record_error.
+ * locale/programs/repertoire.c: Dont include error.h.
+ (repertoire_complain): Use record_error.
+ * localedata/tst-fmon.sh: Expect failures from localedef.
+ * localedata/tst-locale.sh: Likewise.
+ * localedata/gen-locale.sh: Expect failures from SHIFT_JIS.
+
+ * localedata/unicode-gen/Makefile (GENERATED): Use i18n_ctype.
+ (REPORTS): Likewise.
+ (check): Likewise.
+ (i18n): Rename to...
+ (i18n_ctype): ...this.
+ (i18n-report): Rename to...
+ (i18n_ctype-report): ...this.
+ * localedata/locales/i18n_ctype: Regenerate.
+ * localedata/locales/i18n: copy i18n_ctype.
+
+2017-10-13 Joseph Myers <joseph@codesourcery.com>
+
+ * stdlib/strfroml.c: Include <bits/floatn.h>.
+ [__HAVE_FLOAT128 && !__HAVE_DISTINCT_FLOAT128] (strfromf128):
+ Define before include of <stdlib.h> and undefine afterwards, then
+ define as weak alias.
+
+ * sysdeps/ieee754/ldbl-64-128/s_nextafterl.c (weak_alias):
+ Undefine and restore default definition. Use
+ libm_alias_ldouble_other.
+
+2017-10-13 Peter Zelezny <peter.zelezny@dektech.com.au>
+
+ [BZ #22153]
+ * nptl/allocatestack.c (__nptl_setxid_error): Preserve error code
+ in coredumps.
+
+2017-10-13 James Clarke <jrtc27@jrtc27.com>
+
+ * sysdeps/powerpc/powerpc32/dl-machine.h (elf_machine_rela):
+ Assign sym_map to be map for local symbols, as TLS relocations
+ use sym_map to determine whether the symbol is defined and to
+ extract the TLS information.
+ * sysdeps/sparc/sparc32/dl-machine.h (elf_machine_rela): Likewise.
+ * sysdeps/sparc/sparc64/dl-machine.h (elf_machine_rela): Likewise.
+
+2017-10-13 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
+
+ [BZ #22189]
+ * sysdeps/powerpc/fpu/math_private.h (math_opt_barrier):
+ (math_force_eval): Add powerpc version.
+
+ [BZ #22142]
+ * stdio-common/tst-printf.c (fp_test): Add tests for DBL_MAX and
+ -DBL_MAX.
+ (do_test): Likewise.
+ * stdio-common/tst-printf.sh: Likewise.
+ * sysdeps/powerpc/powerpc64/power7/add_n.S: Invert the initial
+ ifdef clause in order to set the carry bit right. Replace r0 by
+ 0 without changing the behavior.
+
+2017-10-13 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/sparc/sparc32/fpu/s_fabsl.c: Include
+ <libm-alias-ldouble.h>.
+ (fabsl): Define using libm_alias_ldouble.
+ * sysdeps/sparc/sparc64/fpu/s_fabsl.c: Include
+ <libm-alias-ldouble.h>.
+ (fabsl): Define using libm_alias_ldouble.
+
+ * sysdeps/ieee754/ldbl-opt/w_lgamma_compatl.c [BUILD_LGAMMA]:
+ Remove conditional code.
+
+ * sysdeps/ieee754/ldbl-opt/s_clog10l.c (__clog10l__internal):
+ Rename to __clog10_internal_l.
+ (__clog10_internal_l): Define aliases using
+ libm_alias_ldouble_other instead of using libm_alias_ldouble_other
+ with __clog10.
+
+2017-10-13 Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>
+
+ * benchtests/Makefile (bench-math): Add sinf, cosf and sincosf.
+ * benchtests/sincosf-inputs: New file.
+ * benchtests/cosf-inputs: New file.
+ * benchtests/sinf-inputs: New file.
+
+2017-10-12 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * posix/tst-spawn.c (do_test): Wait for both children.
+
+2017-10-12 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #22284]
+ * gmon/Makefile [$(have-fpie)$(build-shared) == yesyes] (tests,
+ tests-pie): Add tst-gmon-pie.
+ (CFLAGS-tst-gmon-pie.c): New.
+ (CRT-tst-gmon-pie): Likewise.
+ (tst-gmon-pie-ENV): Likewise.
+ [$(have-fpie)$(build-shared) == yesyes] (tests-special): Likewise.
+ ($(objpfx)tst-gmon-pie.out): Likewise.
+ (clean-tst-gmon-pie-data): Likewise.
+ ($(objpfx)tst-gmon-pie-gprof.out): Likewise.
+ * gmon/gmon.c [PIC]: Include <link.h>.
+ [PIC] (callback): New function.
+ (write_hist): Add an argument for load address. Subtract load
+ address from PCs.
+ (write_call_graph): Likewise.
+ (write_gmon): Call __dl_iterate_phdr to get load address, pass
+ it to write_hist and write_call_graph.
+ * gmon/tst-gmon-pie.c: New file.
+
+2017-10-11 Joseph Myers <joseph@codesourcery.com>
+
+ * math/Makefile (test-types-basic): New variable.
+ (test-types): Likewise.
+ (libm-test-support): Use $(test-types) instead of $(types).
+ (libm-tests-base-normal): Likewise.
+ (libm-tests-base-finite): Likewise.
+ (libm-tests-base-inline): Likewise.
+ (generated): Likewise.
+ ($(objpfx)libm-test-support-$(t).c): Likewise.
+ (libm-tests-for-type iterator): Likewise.
+ (libm-test-support iterator): Likewise.
+ * math/libm-test-support.c (ulp_i_idx): Use ULP_I_IDX.
+ (ulp_idx): Use ULP_IDX.
+ * math/test-ldouble.h: Include <float.h>.
+ (TYPE_STR): Define conditional on [LDBL_MANT_DIG == DBL_MANT_DIG].
+ (ULP_IDX): New macro.
+ (ULP_I_IDX): Likewise.
+ * math/test-double.h (ULP_IDX): Likewise.
+ (ULP_I_IDX): Likewise.
+ * math/test-float.h (ULP_IDX): Likewise.
+ (ULP_I_IDX): Likewise.
+ * math/test-float128.h (ULP_IDX): Likewise.
+ (ULP_I_IDX): Likewise.
+
+2017-10-11 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/unix/sysv/linux/aarch64/sysdep-cancel.h: Remove file.
+ * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: Likewise.
+ * sysdeps/unix/sysv/linux/arm/sysdep-cancel.h: Likewise.
+ * sysdeps/unix/sysv/linux/hppa/sysdep-cancel.h: Likewise.
+ * sysdeps/unix/sysv/linux/mips/sysdep-cancel.h: Likewise.
+ * sysdeps/unix/sysv/linux/nios2/sysdep-cancel.h: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/sysdep-cancel.h: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: Likewise.
+ * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sysdep-cancel.h: Likewise.
+ * sysdeps/unix/sysv/linux/tile/sysdep-cancel.h: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h
+ (SINGLE_THREAD_BY_GLOBAL): Define.
+ * sysdeps/unix/sysv/linux/aarch64/sysdep.h (SINGLE_THREAD_BY_GLOBAL):
+ Likewise.
+ * sysdeps/unix/sysv/linux/alpha/sysdep.h (SINGLE_THREAD_BY_GLOBAL):
+ Likewise.
+ * sysdeps/unix/sysv/linux/arm/sysdep.h (SINGLE_THREAD_BY_GLOBAL):
+ Likewise.
+ * sysdeps/unix/sysv/linux/hppa/sysdep.h (SINGLE_THREAD_BY_GLOBAL):
+ Likewise.
+ * sysdeps/unix/sysv/linux/microblaze/sysdep.h
+ (SINGLE_THREAD_BY_GLOBAL): Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/sysdep.h (SINGLE_THREAD_BY_GLOBAL):
+ Likewise.
+
+2017-10-11 Andreas Schwab <schwab@suse.de>
+
+ * nis/Makefile (aux): Remove.
+ * nscd/Makefile (aux): Add nscd_hash.
+ (nscd-modules): Likewise.
+ ($(objpfx)nscd): Don't depend on libnsl.
+ * nscd/nscd_hash.c: New file.
+ * nscd/nscd_hash.h: Likewise.
+ * nscd/cache.c: Include "nscd_hash.h" instead of <rpcsvc/nis.h>.
+ (cache_search, cache_add): Use __nscd_hash instead of __nis_hash.
+ * nscd/nscd_helper.c: Include <sys/param.h> and "nscd_hash.h"
+ instead of <nis/rpcsvc/nis.h>.
+ (__nscd_cache_search): Use __nscd_hash instead of __nis_hash.
+
+2017-10-11 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #22078]
+ Avoid large NSS buffers with many addresses, aliases.
+ * nss/nss_files/files-hosts.c (gethostbyname3_multi): Rewrite
+ using dynarrays and struct alloc_buffer.
+ * nss/Makefile (tests): Add tst-nss-files-hosts-multi.
+ (tst-nss-files-hosts-multi): Link with -ldl.
+ * nss/tst-nss-files-hosts-multi.c: New file.
+
+2017-10-11 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #18023]
+ * nss/nss_files/files-hosts.c (gethostbyname3_multi): Use struct
+ scratch_buffer. Eliminate gotos.
+
+2017-10-11 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/ieee754/ldbl-opt/s_clog10l.c: Use
+ libm_alias_ldouble_other.
+ * sysdeps/ieee754/ldbl-opt/w_exp10l_compat.c (weak_alias): Do not
+ undefine and redefine.
+ [LIBM_SVID_COMPAT && !LONG_DOUBLE_COMPAT (libm, GLIBC_2_1)]
+ (exp10l): Do not define here.
+ * sysdeps/ieee754/ldbl-opt/w_lgamma_compatl.c [BUILD_LGAMMA]
+ (weak_alias): Undefine and redefine.
+ [BUILD_LGAMMA]: Use libm_alias_ldouble_other.
+ * sysdeps/ieee754/ldbl-opt/w_remainderl_compat.c
+ [LIBM_SVID_COMPAT] (weak_alias): Undefine and redefine here.
+ [LIBM_SVID_COMPAT]: Use libm_alias_ldouble_other.
+
+ * soft-fp/fmadf4.c: Include <libm-alias-double.h>.
+ [!__fma] (fma): Define using libm_alias_double.
+ * soft-fp/fmasf4.c: Include <libm-alias-float.h>.
+ [!__fmaf] (fmaf): Define using libm_alias_float.
+ * soft-fp/fmatf4.c: Include <libm-alias-ldouble.h>.
+ (fmal): Define using libm_alias_ldouble.
+
+2017-10-10 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/generic/libm-alias-double.h (libm_alias_double_other_r):
+ New macro.
+ (libm_alias_double_other): Likewise.
+ (libm_alias_double_r): Use libm_alias_double_other_r.
+ * sysdeps/generic/libm-alias-float.h (libm_alias_float_other_r):
+ New macro.
+ (libm_alias_float_other): Likewise.
+ (libm_alias_float_r): Use libm_alias_float_other_r.
+ * sysdeps/generic/libm-alias-float128.h
+ (libm_alias_float128_other_r): New macro.
+ (libm_alias_float128_other): Likewise.
+ (libm_alias_float128_r): Use libm_alias_float128_other_r.
+ * sysdeps/generic/libm-alias-ldouble.h
+ (libm_alias_ldouble_other_r): New macro.
+ (libm_alias_ldouble_other): Likewise.
+ (libm_alias_ldouble_r): Use libm_alias_ldouble_other_r.
+ * sysdeps/ieee754/ldbl-opt/libm-alias-double.h
+ (libm_alias_double_other_r): New macro.
+ (libm_alias_double_other): Likewise.
+ (libm_alias_double_r): Use libm_alias_double_other_r.
+ * sysdeps/ieee754/ldbl-opt/libm-alias-ldouble.h
+ (libm_alias_ldouble_other_r): New macro.
+ (libm_alias_ldouble_other): Likewise.
+ (libm_alias_ldouble_r): Use libm_alias_ldouble_other_r.
+ * math/w_lgamma_main.c: Include <libm-alias-double.h>.
+ [!USE_AS_COMPAT]: Use libm_alias_double_other.
+ * math/w_lgammaf_main.c: Include <libm-alias-float.h>.
+ [!USE_AS_COMPAT]: Use libm_alias_float_other.
+ * math/w_lgammal_main.c: Include <libm-alias-ldouble.h>.
+ [!USE_AS_COMPAT]: Use libm_alias_ldouble_other.
+ * math/w_exp2f.c: Use libm_alias_float_other.
+ * math/w_expf.c: Likewise.
+ * math/w_log2f.c: Likewise.
+ * math/w_logf.c: Likewise.
+ * math/w_powf.c: Likewise.
+ * sysdeps/ieee754/flt-32/e_exp2f.c: Include <libm-alias-float.h>.
+ [!__exp2f]: Use libm_alias_float_other.
+ * sysdeps/ieee754/flt-32/e_expf.c: Include <libm-alias-float.h>.
+ [!__expf]: Use libm_alias_float_other.
+ * sysdeps/ieee754/flt-32/e_log2f.c: Include <libm-alias-float.h>.
+ [!__log2f]: Use libm_alias_float_other.
+ * sysdeps/ieee754/flt-32/e_logf.c: Include <libm-alias-float.h>.
+ [!__logf]: Use libm_alias_float_other.
+ * sysdeps/ieee754/flt-32/e_powf.c: Include <libm-alias-float.h>.
+ [!__powf]: Use libm_alias_float_other.
+
+2017-10-10 Florian Weimer <fweimer@redhat.com>
+
+ * nss/nss_files/files-hosts.c (gethostbyname3_multi): New
+ function.
+ (_nss_files_gethostbyname3_r): Call it.
+
+2017-10-09 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/generic/math-type-macros.h [!declare_mgen_alias]: Give
+ error. Remove default definition of declare_mgen_alias.
+ [!declare_mgen_alias_r]: Likewise.
+ * sysdeps/generic/math-type-macros-double.h
+ [!declare_mgen_alias_r] (declare_mgen_alias_r): New macro.
+ * sysdeps/generic/math-type-macros-float.h [!declare_mgen_alias_r]
+ (declare_mgen_alias_r): Likewise.
+ * sysdeps/generic/math-type-macros-float128.h
+ [!declare_mgen_alias_r] (declare_mgen_alias_r): Likewise.
+ * sysdeps/generic/math-type-macros-ldouble.h
+ [!declare_mgen_alias_r] (declare_mgen_alias_r): Likewise.
+ * math/w_lgamma_r_template.c (declare_mgen_alias_r_x): Remove
+ macro.
+ (declare_mgen_alias_r_s): Likewise.
+ (declare_mgen_alias_r): Likewise.
+ * math/w_lgamma_r_compat.c: Include <libm-alias-double.h>.
+ (lgamma_r): Define using libm_alias_double_r.
+ * math/w_lgammaf_r_compat.c: Include <libm-alias-float.h>.
+ (lgammaf_r): Define using libm_alias_float_r.
+ * math/w_lgammal_r_compat.c: Include <libm-alias-ldouble.h>.
+ (lgammal_r): Define using libm_alias_ldouble_r.
+ * sysdeps/ieee754/ldbl-opt/w_lgamma_r_compat.c: Remove file.
+ * sysdeps/ieee754/ldbl-opt/w_lgammal_r_compat.c: Likewise.
+
+2017-10-09 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * lib/glob.c (__glob_pattern_type): Remove now-spurious
+ extern declaration.
+
+2017-10-09 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/ieee754/ldbl-opt/w_scalbln.c: Remove file.
+
+2017-10-09 Jonathan Wakely <jwakely@redhat.com>
+
+ [BZ #21326]
+ * include/features.h [__cplusplus >= 201703] (__USE_ISOC11): Define.
+ [__cplusplus >= 201103] (__USE_ISOC99): Define.
+ * math/Makefile (test-math-cxx11): New test.
+ * math/test-math-cxx11.cc: New file.
+
+2017-10-08 Christian Brauner <christian.brauner@ubuntu.com>
+
+ * login/openpty.c (openpty): Close slave pty file descriptor on error.
+
+ * login/openpty.c (openpty): If defined, use the TIOCGPTPEER ioctl()
+ call to allocate the slave pty file descriptor.
+
+2017-10-06 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/ieee754/ldbl-128/s_fma.c: Include <libm-alias-double.h>.
+ [!__fma] (fma): Define using libm_alias_double.
+ * sysdeps/ieee754/ldbl-96/s_fma.c: Include <libm-alias-double.h>.
+ [!__fma] (fma): Define using libm_alias_double.
+
+ * sysdeps/ieee754/float128/float128_private.h: Include
+ <libm-alias-ldouble.h> and <libm-alias-float128.h>.
+ (libm_alias_ldouble_r): Undefine and redefine.
+ * sysdeps/ieee754/ldbl-128/s_asinhl.c: Include
+ <libm-alias-ldouble.h>.
+ (asinhl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_atanl.c: Include
+ <libm-alias-ldouble.h>.
+ (atanl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_cbrtl.c: Include
+ <libm-alias-ldouble.h>.
+ (cbrtl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_ceill.c: Include
+ <libm-alias-ldouble.h>.
+ (ceill): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_copysignl.c: Include
+ <libm-alias-ldouble.h>.
+ (copysignl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_cosl.c: Include
+ <libm-alias-ldouble.h>.
+ (cosl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_erfl.c: Include
+ <libm-alias-ldouble.h>.
+ (erfl): Define using libm_alias_ldouble.
+ (erfcl): Likewise.
+ * sysdeps/ieee754/ldbl-128/s_expm1l.c: Include
+ <libm-alias-ldouble.h>.
+ (expm1l): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_fabsl.c: Include
+ <libm-alias-ldouble.h>.
+ (fabsl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_floorl.c: Include
+ <libm-alias-ldouble.h>.
+ (floorl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_fmal.c: Include
+ <libm-alias-ldouble.h>.
+ (fmal): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_frexpl.c: Include
+ <libm-alias-ldouble.h>.
+ (frexpl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_fromfpl.c (fromfpl): Define using
+ libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_fromfpl_main.c: Include
+ <libm-alias-ldouble.h>.
+ * sysdeps/ieee754/ldbl-128/s_fromfpxl.c (fromfpxl): Define using
+ libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_getpayloadl.c: Include
+ <libm-alias-ldouble.h>.
+ (getpayloadl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_llrintl.c: Include
+ <libm-alias-ldouble.h>.
+ (llrintl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_llroundl.c: Include
+ <libm-alias-ldouble.h>.
+ (llroundl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_logbl.c: Include
+ <libm-alias-ldouble.h>.
+ (logbl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_lrintl.c: Include
+ <libm-alias-ldouble.h>.
+ (lrintl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_lroundl.c: Include
+ <libm-alias-ldouble.h>.
+ (lroundl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_modfl.c: Include
+ <libm-alias-ldouble.h>.
+ (modfl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_nearbyintl.c: Include
+ <libm-alias-ldouble.h>.
+ (nearbyintl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_nextafterl.c: Include
+ <libm-alias-ldouble.h>.
+ (nextafterl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_nextupl.c: Include
+ <libm-alias-ldouble.h>.
+ (nextupl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_remquol.c: Include
+ <libm-alias-ldouble.h>.
+ (remquol): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_rintl.c: Include
+ <libm-alias-ldouble.h>.
+ (rintl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_roundevenl.c: Include
+ <libm-alias-ldouble.h>.
+ (roundevenl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_roundl.c: Include
+ <libm-alias-ldouble.h>.
+ (roundl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_setpayloadl.c (setpayloadl): Define
+ using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_setpayloadl_main.c: Include
+ <libm-alias-ldouble.h>.
+ * sysdeps/ieee754/ldbl-128/s_setpayloadsigl.c (setpayloadsigl):
+ Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_sincosl.c: Include
+ <libm-alias-ldouble.h>.
+ (sincosl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_sinl.c: Include
+ <libm-alias-ldouble.h>.
+ (sinl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_tanhl.c: Include
+ <libm-alias-ldouble.h>.
+ (tanhl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_tanl.c: Include
+ <libm-alias-ldouble.h>.
+ (tanl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_totalorderl.c: Include
+ <libm-alias-ldouble.h>.
+ (totalorderl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_totalordermagl.c: Include
+ <libm-alias-ldouble.h>.
+ (totalordermagl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_truncl.c: Include
+ <libm-alias-ldouble.h>.
+ (truncl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_ufromfpl.c (ufromfpl): Define using
+ libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-128/s_ufromfpxl.c (ufromfpxl): Define using
+ libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-64-128/s_copysignl.c: Include
+ <libm-alias-ldouble.h>.
+ (weak_alias): Do not undefine and redefine.
+ [IS_IN (libc)] (libm_alias_ldouble): Undefine and redefine.
+ (copysignl): Define with long_double_symbol only if [IS_IN
+ (libc)].
+ * sysdeps/ieee754/ldbl-64-128/s_frexpl.c: Include
+ <libm-alias-ldouble.h>.
+ (weak_alias): Do not undefine and redefine.
+ [IS_IN (libc)] (libm_alias_ldouble): Undefine and redefine.
+ (frexpl): Define with long_double_symbol only if [IS_IN (libc)].
+ * sysdeps/ieee754/ldbl-64-128/s_modfl.c: Include
+ <libm-alias-ldouble.h>.
+ (weak_alias): Do not undefine and redefine.
+ [IS_IN (libc)] (libm_alias_ldouble): Undefine and redefine.
+ (modfl): Define with long_double_symbol only if [IS_IN (libc)].
+ * sysdeps/ieee754/ldbl-64-128/s_asinhl.c: Remove file.
+ * sysdeps/ieee754/ldbl-64-128/s_atanl.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_cbrtl.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_ceill.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_cosl.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_erfl.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_expm1l.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_fabsl.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_floorl.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_fmal.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_llrintl.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_llroundl.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_logbl.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_lrintl.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_lroundl.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_nearbyintl.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_remquol.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_rintl.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_roundl.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_sincosl.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_sinl.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_tanhl.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_tanl.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_truncl.c: Likewise.
+
+2017-10-06 Carlos O'Donell <carlos@redhat.com>
+
+ [BZ #22111]
+ * malloc/malloc.c (tcache_shutting_down): Use bool type.
+ (tcache_thread_freeres): Set tcache_shutting_down before
+ freeing the tcache.
+ * malloc/Makefile (tests): Add tst-malloc-tcache-leak.
+ * malloc/tst-malloc-tcache-leak.c: New file.
+
+2017-10-06 Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>
+
+ * sysdeps/powerpc/powerpc64/multiarch/memrchr-ppc64.c: Revert
+ back to powerpc32 file.
+ * sysdeps/powerpc/powerpc64/multiarch/memrchr.c
+ (memrchr): Add __memrchr_power8 to ifunc list.
+ * sysdeps/powerpc/powerpc64/power8/memrchr.S: Mask
+ extra bytes for unaligned inputs.
+
+2017-10-06 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/ieee754/ldbl-64-128/e_ilogbl.c: Remove file.
+ * sysdeps/ieee754/ldbl-64-128/s_log1pl.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_scalblnl.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/s_scalbnl.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/w_scalblnl.c: Likewise.
+
+2017-10-05 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/arm/libm-test-ulps: Update.
+
+ * sysdeps/ieee754/ldbl-96/s_asinhl.c: Include
+ <libm-alias-ldouble.h>.
+ (asinhl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-96/s_cbrtl.c: Include
+ <libm-alias-ldouble.h>.
+ (cbrtl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-96/s_copysignl.c: Include
+ <libm-alias-ldouble.h>.
+ (copysignl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-96/s_cosl.c: Include
+ <libm-alias-ldouble.h>.
+ (cosl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-96/s_erfl.c: Include
+ <libm-alias-ldouble.h>.
+ (erfl): Define using libm_alias_ldouble.
+ (erfcl): Likewise.
+ * sysdeps/ieee754/ldbl-96/s_fmal.c: Include
+ <libm-alias-ldouble.h>.
+ (fmal): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-96/s_frexpl.c: Include
+ <libm-alias-ldouble.h>.
+ (frexpl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-96/s_fromfpl.c (fromfpl): Define using
+ libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-96/s_fromfpl_main.c: Include
+ <libm-alias-ldouble.h>.
+ * sysdeps/ieee754/ldbl-96/s_fromfpxl.c (fromfpxl): Define using
+ libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-96/s_getpayloadl.c: Include
+ <libm-alias-ldouble.h>.
+ (getpayloadl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-96/s_llrintl.c: Include
+ <libm-alias-ldouble.h>.
+ (llrintl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-96/s_llroundl.c: Include
+ <libm-alias-ldouble.h>.
+ (llroundl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-96/s_lrintl.c: Include
+ <libm-alias-ldouble.h>.
+ (lrintl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-96/s_lroundl.c: Include
+ <libm-alias-ldouble.h>.
+ (lroundl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-96/s_modfl.c: Include
+ <libm-alias-ldouble.h>.
+ (modfl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-96/s_nextupl.c: Include
+ <libm-alias-ldouble.h>.
+ (nextupl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-96/s_remquol.c: Include
+ <libm-alias-ldouble.h>.
+ (remquol): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-96/s_roundevenl.c: Include
+ <libm-alias-ldouble.h>.
+ (roundevenl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-96/s_roundl.c: Include
+ <libm-alias-ldouble.h>.
+ (roundl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-96/s_setpayloadl.c (setpayloadl): Define
+ using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-96/s_setpayloadl_main.c: Include
+ <libm-alias-ldouble.h>.
+ * sysdeps/ieee754/ldbl-96/s_setpayloadsigl.c: Include
+ <libm-alias-ldouble.h>.
+ (setpayloadsigl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-96/s_sincosl.c: Include
+ <libm-alias-ldouble.h>.
+ (sincosl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-96/s_sinl.c: Include
+ <libm-alias-ldouble.h>.
+ (sinl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-96/s_tanhl.c: Include
+ <libm-alias-ldouble.h>.
+ (tanhl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-96/s_tanl.c: Include
+ <libm-alias-ldouble.h>.
+ (tanl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-96/s_totalorderl.c: Include
+ <libm-alias-ldouble.h>.
+ (totalorderl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-96/s_totalordermagl.c: Include
+ <libm-alias-ldouble.h>.
+ (totalordermagl): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-96/s_ufromfpl.c (ufromfpl): Define using
+ libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-96/s_ufromfpxl.c (ufromfpxl): Define using
+ libm_alias_ldouble.
+
+2017-10-05 Siddhesh Poyarekar <siddhesh@sourceware.org>
+
+ * sysdeps/aarch64/multiarch/Makefile (sysdep_routines): Add
+ memmove_falkor.
+ * sysdeps/aarch64/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Likewise.
+ * sysdeps/aarch64/multiarch/memmove.c: Likewise.
+ * sysdeps/aarch64/multiarch/memmove_falkor.S: New file.
+
+ * benchtests/bench-memmove-walk.c: New file.
+ * benchtests/Makefile (string-benchset): Add it.
+
+ * benchtests/bench-memset-walk.c: New file.
+ * benchtests/Makefile (string-benchset): Add it.
+
+ * benchtests/bench-memcpy-walk.c: New file.
+ * benchtests/Makefile (string-benchset): Add it.
+
+2017-10-05 Florian Weimer <fweimer@redhat.com>
+
+ nscd: Eliminate compilation time dependency in the build output.
+ * nscd/nscd_stat.c (STATDATA_VERSION)
+ (STATDATA_VERSION_SELINUX_FLAG, STATDATA_VERSION_FLAGS)
+ (STATDATA_VERSION_FULL): New macro definitions.
+ (compilation): Remove.
+ (struct statdata): Adjust version member.
+ (send_stats): Set version from STATDATA_VERSION_FULL.
+ (receive_print_stats): Verify version against STATDATA_VERSION_FULL.
+
+2017-10-05 Joseph Myers <joseph@codesourcery.com>
+
+ * configure.ac (--enable-add-ons): Remove option.
+ (machine): Do not mention add-ons in comment.
+ (LIBC_PRECONFIGURE): Likewise.
+ (add_ons): Remove variable and sanity checks and logic to locate
+ add-ons.
+ (add_ons_automatic): Remove variable.
+ (configured_add_ons): Likewise.
+ (add_ons_sfx): Likewise.
+ (add_ons_pfx): Likewise.
+ (add_on_subdirs): Likewise.
+ (sysnames_add_ons): Likewise. Remove loop over add-ons and
+ consideration of add-ons in Implies handling.
+ (sysdeps_add_ons): Likewise.
+ * configure: Regenerated.
+ * libidn/configure.ac: Remove.
+ * libidn/configure: Likewise.
+ * sysdeps/unix/inet/configure.ac: New file.
+ * sysdeps/unix/inet/configure: New generated file.
+ * sysdeps/unix/inet/Subdirs: Add libidn.
+ * Makeconfig (sysdeps-srcdirs): Remove variable.
+ (+sysdep_dirs): Do not include $(sysdeps-srcdirs).
+ ($(common-objpfx)config.status): Do not depend on add-on files.
+ ($(common-objpfx)shlib-versions.v.i): Do not mention add-ons in
+ comment.
+ (all-subdirs): Do not include $(add-on-subdirs).
+ * Makefile (dist-prepare): Do not use $(sysdeps-add-ons).
+ * config.make.in (add-ons): Remove variable.
+ (add-on-subdirs): Likewise.
+ (sysdeps-add-ons): Likewise.
+ * manual/Makefile (add-chapters): Remove.
+ ($(objpfx)texis): Do not depend on $(add-chapters).
+ (nonexamples): Do not handle $(add-chapters).
+ (examples): Do not handle $(add-ons).
+ (chapters.% top-menu.%): Do not pass '$(add-chapters)' to
+ libc-texinfo.sh.
+ * manual/install.texi (Installation): Do not mention add-ons.
+ (--enable-add-ons): Do not document configure option.
+ * INSTALL: Regenerated.
+ * manual/libc-texinfo.sh: Do not handle $2 add-ons argument.
+ * manual/maint.texi (Hierarchy Conventions): Do not mention
+ add-ons.
+ * scripts/build-many-glibcs.py (Glibc.build_glibc): Do not use
+ --enable-add-ons.
+ * scripts/gen-sorted.awk: Do not handle Subdirs files from
+ add-ons.
+ * scripts/test-installation.pl: Do not handle glibc-compat add-on.
+ * sysdeps/nptl/Makeconfig: Do not mention add-ons in comment.
+
+2017-10-05 Andreas Schwab <schwab@suse.de>
+
+ [BZ #15142]
+ * libio/genops.c (_IO_list_all_stamp): Delete. All uses removed.
+ (_IO_flush_all_lockp): Always lock list_all_lock.
+ (_IO_flush_all_linebuffered): Likewise.
+ (_IO_unbuffer_all): Likewise.
+
+2017-10-05 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #15436]
+ Do not flush stdio streams on abort.
+ * stdlib/abort.c (fflush): Remove macro definition.
+ (abort): Remove stages related to stdio flushing.
+
+2017-10-05 Florian Weimer <fweimer@redhat.com>
+
+ * gmon/Makefile (CFLAGS-tst-gmon.c): Add -fno-omit-frame-pointer.
+
+2017-10-05 Stefan Liebler <stli@linux.vnet.ibm.com>
+
+ * sysdeps/s390/fpu/libm-test-ulps: Regenerated.
+
+2017-10-05 Florian Weimer <fweimer@redhat.com>
+
+ * support/support_format_hostent.c (support_format_hostent): Add
+ more error information for NETDB_INTERNAL.
+
+2017-10-04 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config.h.in (NO_HIDDEN_EXTERN_FUNC_IN_PIE): New.
+ * include/libc-symbols.h (__hidden_proto_hiddenattr): Add check
+ for PIC and NO_HIDDEN_EXTERN_FUNC_IN_PIE.
+ * sysdeps/i386/configure.ac (NO_HIDDEN_EXTERN_FUNC_IN_PIE): New
+ AC_DEFINE if multi-arch is enabled.
+ * sysdeps/i386/configure: Regenerated.
+
+2017-10-04 H.J. Lu <hongjiu.lu@intel.com>
+
+ * Makeconfig (+link-static-before-libc): Use
+ $(DEFAULT-LDFLAGS-$(@F)).
+ * elf/Makefile (CRT-tst-tls1-static-non-pie): New.
+ (LDFLAGS-tst-tls1-static-non-pie): Renamed to ...
+ (DEFAULT-LDFLAGS-tst-tls1-static-non-pie): This.
+
+2017-10-04 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elf/Makefile (tests): Add tst-main1.
+ (modules-names): Add tst-main1mod.
+ ($(objpfx)tst-main1): New.
+ (CRT-tst-main1): Likewise.
+ (LDFLAGS-tst-main1): Likewise.
+ (LDLIBS-tst-main1): Likewise.
+ (tst-main1mod.so-no-z-defs): Likewise.
+ * elf/tst-main1.c: New file.
+ * elf/tst-main1mod.c: Likewise.
+
+2017-10-04 H.J. Lu <hongjiu.lu@intel.com>
+
+ * math/test-math-iscanonical.cc (do_test): Return errors != 0.
+
+2017-10-04 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/ieee754/dbl-64/s_fma.c: Include <libm-alias-double.h>.
+ (fma): Define using libm_alias_double.
+ * sysdeps/ieee754/ldbl-opt/s_fma.c: Remove file.
+ * sysdeps/sparc/sparc32/fpu/s_fma.c: Do not include
+ <math_ldbl_opt.h>.
+ (fmal): Do not define as compat symbol here.
+ * sysdeps/alpha/fpu/s_fma.c: New file.
+
+2017-10-04 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * sysdeps/aarch64/dl-machine.h (elf_machine_rela): Expand MIN.
+
+2017-10-04 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #22229]
+ * sysdeps/sparc/sparc32/fpu/s_copysign.S: Include
+ <math_ldbl_opt.h>
+ (copysignl): Define as compat symbol at version GLIBC_2_0 for libm
+ and libc.
+ * sysdeps/sparc/sparc32/fpu/s_fabs.S: Include <math_ldbl_opt.h>.
+ (fabsl): Define as compat symbol at version GLIBC_2_0 for libm.
+ * sysdeps/sparc/sparc32/fpu/s_fma.c: Include <math_ldbl_opt.h>.
+ (fmal): Define as compat symbol at version GLIBC_2_1 for libm.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysign.S:
+ Include <math_ldbl_opt.h>
+ (copysignl): Define as compat symbol at version GLIBC_2_0 for libm
+ and libc.
+ (compat_symbol): Undefine and redefine.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabs.S: Include
+ <math_ldbl_opt.h>
+ (fabsl): Define as compat symbol at version GLIBC_2_0 for libm.
+ (compat_symbol): Undefine and redefine.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fma.c
+ [HAVE_AS_VIS3_SUPPORT]: Include <math_ldbl_opt.h>.
+ [HAVE_AS_VIS3_SUPPORT] (fmal): Define as compat symbol at version
+ GLIBC_2_1 for libm.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Add
+ GLIBC_2.0 copysignl symbol.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Add
+ GLIBC_2.0 copysignl and fabsl and GLIBC_2.1 fmal symbols.
+
+ * sysdeps/alpha/fpu/s_nearbyint.c: Remove file.
+
+2017-10-04 Florian Weimer <fweimer@redhat.com>
+
+ * scripts/check-local-headers.sh: Ignore nspr4 header file
+ directory in addition to nspr.
+
+2017-10-04 Guido Trentalancia <guido@trentalancia.net>
+
+ [BZ #17956]
+ * configure.ac (--enable-nss-crypt): Use NSPR include directory.
+ * configure: Regenerate.
+ * crypt/Makefile (nss-cpp-flags): New variable.
+ (CPPFLAGS-sha256-crypt.c, CPPFLAGS-sha512-crypt.c)
+ (CPPFLAGS-md5-crypt.c): Use it.
+ * scripts/check-local-headers.sh: Ignore nspr header file
+ directory.
+
+2017-10-04 Andreas Schwab <schwab@suse.de>
+
+ * nis/Makefile (services): Remove compat.
+ (libnss_compat-routines, libnss_compat-inhibit-o): Don't define.
+ ($(objpfx)libnss_compat.so): Remove rule.
+ * nis/Versions (libnss_compat): Remove.
+ * nss/Makefile (services): Add compat.
+ (libnss_compat-routines, libnss_compat-inhibit-o): Define.
+ * nss/Versions (libnss_compat): Define.
+ * nss/nss_compat/compat-grp.c: Moved here from nis/nss_compat.
+ Don't include <rpc/types.h>. Replace bool_t by bool.
+ * nss/nss_compat/compat-initgroups.c: Likewise.
+ * nss/nss_compat/compat-pwd.c: Likewise. Include "nisdomain.h"
+ instead of <rpcsrv/ypclnt.h>.
+ (getpwent_next_nss_netgr): Use __nss_get_default_domain instead of
+ yp_get_default_domain.
+ * nss/nss_compat/compat-pwd.c: Likewise.
+ (getspent_next_nss_netgr): Use __nss_get_default_domain instead of
+ yp_get_default_domain.
+ * nss/nss_compat/nisdomain.c: New file.
+ * nss/nss_compat/nisdomain.h: Likewise.
+
+2017-10-04 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ [BZ #22244]
+ * sysdeps/ieee754/dbl-64/e_jn.c (__ieee754_yn): Fix x == 0 case.
+ * sysdeps/ieee754/flt-32/e_jnf.c (__ieee754_ynf): Likewise.
+
+2017-10-04 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ [BZ #22243]
+ * sysdeps/ieee754/dbl-64/wordsize-64/e_log10.c (__ieee754_log10): Use fabs.
+ * sysdeps/ieee754/dbl-64/wordsize-64/e_log2.c (__ieee754_log2): Likewise.
+
+2017-10-03 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/i386/start.S: Replace "leal main@GOT(%ebx), %eax" with
+ "movl main@GOTOFF(%ebx), %eax".
+
+2017-10-03 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/i386/dl-machine.h (elf_machine_load_address): Don't
+ allow undefined _DYNAMIC in PIE libc.a.
+ * sysdeps/x86_64/dl-machine.h (elf_machine_load_address):
+ Likewse.
+
+2017-10-03 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/mips/dl-machine.h (elf_machine_load_address): Don't
+ check _DYNAMIC.
+
+2017-10-03 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/arm/dl-machine.h (elf_machine_load_address): Don't
+ check _DYNAMIC.
+
+2017-10-03 H.J. Lu <hongjiu.lu@intel.com>
+
+ * math/test-math-iscanonical.cc (error): Replace bool with int.
+
+2017-10-03 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/ieee754/dbl-64/s_modf.c: Include <libm-alias-double.h>.
+ (modf): Define using libm_alias_double, only if [!__modf].
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_modf.c: Include
+ <libm-alias-double.h>.
+ (modf): Define using libm_alias_double, only if [!__modf].
+ * sysdeps/ieee754/ldbl-opt/s_modf.c (modfl): Only define libc
+ compat symbol here.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf-ppc32.c
+ (weak_alias): Do not undefine and redefine.
+ (strong_alias): Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_modf-ppc64.c
+ (weak_alias): Likewise.
+ (strong_alias): Likewise.
+
+ * sysdeps/ieee754/dbl-64/s_logb.c: Include <libm-alias-double.h>.
+ (logb): Define using libm_alias_double, only if [!__logb].
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_logb.c: Include
+ <libm-alias-double.h>.
+ (logb): Define using libm_alias_double, only if [!__logb].
+ * sysdeps/ieee754/ldbl-opt/s_logb.c: Remove file.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logb-ppc32.c
+ (weak_alias): Do not undefine and redefine.
+ (strong_alias): Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_logb-ppc64.c
+ (weak_alias): Likewise.
+ (strong_alias): Likewise.
+
+2017-10-03 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/unix/sysv/linux/tile/sysdep.h (SYSCALL_ERROR_NAME):
+ Check SHARED instead PIC.
+
+2017-10-03 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/ieee754/dbl-64/s_fmaf.c: Include <libm-alias-float.h>.
+ [!__fmaf] (fmaf): Define using libm_alias_float.
+
+ * sysdeps/ieee754/dbl-64/s_frexp.c: Include <libm-alias-double.h>.
+ (frexp): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_frexp.c: Include
+ <libm-alias-double.h>.
+ (frexp): Define using libm_alias_double.
+ * sysdeps/ieee754/ldbl-opt/s_frexp.c (frexpl): Only define libc
+ compat symbol here.
+
+2017-10-03 Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
+
+ [BZ #22235]
+ * math/math.h: Trivial fix for unbalanced parentheses in comment.
+ * math/Makefile [CXX] (tests): Add test-math-iscanonical.cc.
+ (CFLAGS-test-math-iscanonical.cc): New variable.
+ * math/test-math-iscanonical.cc: New file.
+ * sysdeps/ieee754/ldbl-96/bits/iscanonical.h (iscanonical):
+ Provide a C++ implementation based on function overloading,
+ rather than using __MATH_TG, which uses C-only builtins.
+ * sysdeps/ieee754/ldbl-128ibm/bits/iscanonical.h (iscanonical):
+ Likewise.
+ * sysdeps/powerpc/powerpc64le/Makefile
+ (CFLAGS-test-math-iscanonical.cc): New variable.
+
+2017-10-03 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/ieee754/dbl-64/s_ceil.c: Include <libm-alias-double.h>.
+ (ceil): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/s_floor.c: Include <libm-alias-double.h>.
+ (floor): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/s_llround.c: Include
+ <libm-alias-double.h>.
+ (llround): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/s_lround.c: Include
+ <libm-alias-double.h>.
+ (lround): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/s_nearbyint.c: Include
+ <libm-alias-double.h>.
+ (nearbyint): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/s_remquo.c: Include
+ <libm-alias-double.h>.
+ (remquo): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/s_rint.c: Include <libm-alias-double.h>.
+ (rint): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/s_round.c: Include <libm-alias-double.h>.
+ (round): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/s_trunc.c: Include <libm-alias-double.h>.
+ (trunc): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_ceil.c: Include
+ <libm-alias-double.h>.
+ (ceil): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_floor.c: Include
+ <libm-alias-double.h>.
+ (floor): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_llround.c: Include
+ <libm-alias-double.h>.
+ (llround): Define using libm_alias_double.
+ [_LP64] (lround): Likewise.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_lround.c: Include
+ <libm-alias-double.h>.
+ [!_LP64] (lround): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c: Include
+ <libm-alias-double.h>.
+ (nearbyint): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_remquo.c: Include
+ <libm-alias-double.h>.
+ (remquo): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_rint.c: Include
+ <libm-alias-double.h>.
+ (rint): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_round.c: Include
+ <libm-alias-double.h>.
+ (round): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_trunc.c: Include
+ <libm-alias-double.h>.
+ (trunc): Define using libm_alias_double.
+ * sysdeps/ieee754/ldbl-opt/s_ceil.c: Remove file.
+ * sysdeps/ieee754/ldbl-opt/s_floor.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/s_llround.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/s_lround.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/s_nearbyint.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/s_remquo.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/s_rint.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/s_round.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/s_trunc.c: Likewise.
+
+2017-10-03 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * math/w_remainder.c: New file.
+ * math/w_remainderf.c: New file.
+ * math/w_remainderl.c: New file.
+
+2017-10-03 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elf/rtld.c (BOOTSTRAP_MAP): New.
+ (RESOLVE_MAP): Replace (&bootstrap_map) with BOOTSTRAP_MAP.
+ * sysdeps/hppa/dl-machine.h (ELF_MACHINE_BEFORE_RTLD_RELOC):
+ Likewise.
+ * sysdeps/ia64/dl-machine.h (ELF_MACHINE_BEFORE_RTLD_RELOC):
+ Likewise.
+ * sysdeps/mips/dl-machine.h (ELF_MACHINE_BEFORE_RTLD_RELOC):
+ Likewise.
+
+2017-10-03 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * include/libc-symbols.h [NO_RTLD_HIDDEN] (rtld_hidden_proto,
+ rtld_hidden_tls_proto, rtld_hidden_def, rtld_hidden_weak,
+ rtld_hidden_rtld_hidden_ver, data_def, rtld_hidden_data_weak,
+ rtld_hidden_data_ver): Define to empty.
+ * include/assert.h [IS_IN(rtld) && NO_RTLD_HIDDEN] (__assert_fail,
+ __assert_perror_fail): Likewise.
+ * include/dirent.h [IS_IN(rtld) && NO_RTLD_HIDDEN]
+ (__rewinddir): Likewise.
+ * include/libc-internal.h [IS_IN(rtld) && NO_RTLD_HIDDEN]
+ (__profile_frequency): Likewise.
+ * include/setjmp.h (__sigsetjmp): Likewise.
+ * include/signal.h [IS_IN(rtld) && NO_RTLD_HIDDEN] (__sigaction,
+ __libc_sigaction): Likewise.
+ * include/stdlib.h [NO_RTLD_HIDDEN] (unsetenv, __strtoul_internal): Do
+ not set hidden attribute.
+ * include/string.h [IS_IN(rtld) && NO_RTLD_HIDDEN] (__stpcpy, __strdup,
+ __strerror_t, __strsep_g, memchr, memcmp, memcpy, memmove, memset,
+ rawmemchr, stpcpy, strchr, strcmp, strlen, strnlen, strsep): Likewise.
+ * include/sys/stat.h [IS_IN(rtld) && NO_RTLD_HIDDEN] (__fxstat,
+ __fxstat64, __lxstat, __lxstat64, __xstat, __xstat64,
+ __fxstatat64): Likewise.
+ * include/sys/utsname.h [IS_IN(rtld) && NO_RTLD_HIDDEN]
+ (__uname): Likewise.
+ * include/sysdeps/generic/_itoa.h [IS_IN(rtld) && NO_RTLD_HIDDEN]
+ (_itoa_upper_digits, _itoa_lower_digits): Likewise.
+ * sysdeps/mach/hurd/configure.ac (NO_HIDDEN): Do not set.
+ (NO_RTLD_HIDDEN): Set.
+ * sysdeps/mach/hurd/configure: Refresh.
+ * config.h.in: Refresh.
+
+2017-10-02 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/ieee754/dbl-64/s_atan.c: Include <libm-alias-double.h>.
+ (atan): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/s_tan.c: Include <libm-alias-double.h>.
+ (tan): Define using libm_alias_double.
+ * sysdeps/ieee754/ldbl-opt/s_atan.c: Remove file.
+ * sysdeps/ieee754/ldbl-opt/s_tan.c: Likewise.
+
+ * sysdeps/ieee754/dbl-64/s_atan.c (atan): Rename to __atan and
+ define as weak alias of __atan. Do not define any aliases if
+ [__atan].
+ [NO_LONG_DOUBLE] (__atanl): Define as strong alias of __atan.
+ [NO_LONG_DOUBLE] (atanl): Define as weak alias of __atanl.
+ * sysdeps/ieee754/dbl-64/s_tan.c (tan): Rename to __tan and define
+ as weak alias of __tan. Do not define any aliases if [__tan].
+ [NO_LONG_DOUBLE] (__tanl): Define as strong alias of __tan.
+ [NO_LONG_DOUBLE] (tanl): Define as weak alias of __tanl.
+ * sysdeps/x86_64/fpu/multiarch/s_atan-avx.c (atan): Rename to
+ __atan.
+ * sysdeps/x86_64/fpu/multiarch/s_atan-fma.c (atan): Likewise.
+ * sysdeps/x86_64/fpu/multiarch/s_atan-fma4.c (atan): Likewise.
+ * sysdeps/x86_64/fpu/multiarch/s_atan.c (atan): Rename to __atan
+ and define as weak alias of __atan.
+ * sysdeps/x86_64/fpu/multiarch/s_tan-avx.c (tan): Rename to
+ __atan.
+ * sysdeps/x86_64/fpu/multiarch/s_tan-fma.c (tan): Likewise.
+ * sysdeps/x86_64/fpu/multiarch/s_tan-fma4.c (tan): Likewise.
+ * sysdeps/x86_64/fpu/multiarch/s_tan.c (tan): Rename to __tan and
+ define as weak alias of __tan.
+
+2017-10-02 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * math/w_lgamma.c: New file.
+ * math/w_lgammaf.c: New file.
+ * math/w_lgammal.c: New file.
+
+2017-10-02 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * sysdeps/ieee754/flt-32/e_log2f.c (__log2f): Define without wrapper.
+ * sysdeps/ieee754/flt-32/e_logf.c (__logf): Likewise
+ * sysdeps/ieee754/flt-32/e_powf.c (__powf): Likewise
+ * sysdeps/ieee754/flt-32/w_log2f.c: New file.
+ * sysdeps/ieee754/flt-32/w_logf.c: New file.
+ * sysdeps/ieee754/flt-32/w_powf.c: New file.
+ * sysdeps/i386/fpu/w_log2f.c: New file.
+ * sysdeps/i386/fpu/w_logf.c: New file.
+ * sysdeps/i386/fpu/w_powf.c: New file.
+ * sysdeps/m68k/m680x0/fpu/w_log2f.c: New file.
+ * sysdeps/m68k/m680x0/fpu/w_logf.c: New file.
+ * sysdeps/m68k/m680x0/fpu/w_powf.c: New file.
+
+2017-10-02 Szabolcs Nagy <szabolcs.nagy@arm.com>
+ H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/ieee754/flt-32/e_exp2f.c (__exp2f): Define without wrapper.
+ * sysdeps/ieee754/flt-32/e_expf.c (__expf): Likewise
+ * sysdeps/ieee754/flt-32/w_exp2f.c: New file.
+ * sysdeps/ieee754/flt-32/w_expf.c: New file.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf-ppc64.c: Update for
+ the new expf code.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/w_expf.c: New file.
+ * sysdeps/powerpc/powerpc64/power8/fpu/w_expf.c: New file.
+ * sysdeps/m68k/m680x0/fpu/w_exp2f.c: New file.
+ * sysdeps/m68k/m680x0/fpu/w_expf.c: New file.
+ * sysdeps/i386/fpu/w_exp2f.c: New file.
+ * sysdeps/i386/fpu/w_expf.c: New file.
+ * sysdeps/i386/i686/fpu/multiarch/w_expf.c: New file.
+ * sysdeps/x86_64/fpu/w_expf.c: New file.
+
+2017-10-02 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * math/Versions (logf): New libm symbol at GLIBC_2.27.
+ (log2f): Likewise.
+ (powf): Likewise.
+ * math/w_log2f.c: New file.
+ * math/w_logf.c: New file.
+ * math/w_powf.c: New file.
+ * math/w_log2f_compat.c (__log2f_compat): For compat symbol only.
+ * math/w_logf_compat.c (__logf_compat): Likewise.
+ * math/w_powf_compat.c (__powf_compat): Likewise.
+ * sysdeps/ia64/fpu/e_log2f.S: Add versioned symbols.
+ * sysdeps/ia64/fpu/e_logf.S: Likewise.
+ * sysdeps/ia64/fpu/e_powf.S: Likewise.
+ * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/arm/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/libm-le.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/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/tile/tilegx/tilegx32/libm.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
+
+2017-10-02 Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>
+
+ * sysdeps/powerpc/powerpc64/multiarch/Makefile
+ (sysdep_routines): Add memrchr_power8.
+ * sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c
+ (memrchr): Add __memrchr_power8 to list of memrchr functions.
+ * sysdeps/powerpc/powerpc64/multiarch/memrchr-power8.S:
+ New file.
+ * sysdeps/powerpc/powerpc64/multiarch/memrchr.c
+ (memrchr): Add __memrchr_power8 to ifunc list.
+ * sysdeps/powerpc/powerpc64/power8/memrchr.S: New file.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * sysdeps/unix/sysv/linux/posix_fadvise64.c
+ (__posix_fadvise64_l64): Add Add libc_hidden_proto and
+ libc_hidden_def.
+ * sysdeps/unix/sysv/linux/posix_fallocate64.c
+ (__posix_fallocate64_l64): Likewise.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * sysdeps/unix/sysv/linux/sched_setaffinity.c
+ (__sched_setaffinity_new): Add libc_hidden_proto and
+ libc_hidden_def.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * include/glob.h (__glob64): Add libc_hidden_proto.
+ * sysdeps/unix/sysv/linux/glob64.c (__glob64): Add
+ libc_hidden_def.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * sysdeps/unix/sysv/linux/getrlimit64.c (__new_getrlimit): Add
+ attribute_hidden.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * stdlib/exit.h (__new_exitfn): Add attribute_hidden.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * mon/gmon.c (__moncontrol): Add libc_hidden_proto and
+ libc_hidden_def.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * csu/version.c (__libc_print_version): Add attribute_hidden.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * include/libc-internal.h (__init_misc): Add attribute_hidden.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * include/fpu_control.h (__setfpucw): Add attribute_hidden.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * nscd/nscd_helper.c (__nis_hash): New prototype.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * include/termios.h (__tcgetattr): Add libc_hidden_proto.
+ * sysdeps/unix/bsd/tcgetattr.c (__tcgetattr): Add
+ libc_hidden_def.
+ * sysdeps/unix/sysv/linux/tcgetattr.c (__tcgetattr): Likewise.
+ * termios/tcgetattr.c (__tcgetattr): Likewise.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * include/sys/resource.h (__setrlimit): Add libc_hidden_proto.
+ * resource/setrlimit.c (__setrlimit): Add libc_hidden_def.
+ * sysdeps/mach/hurd/setrlimit.c (__setrlimit): Likewise.
+ * sysdeps/unix/sysv/linux/setrlimit.c (__setrlimit): Likewise.
+ * sysdeps/unix/sysv/linux/setrlimit64.c (__GI___setrlimit): New.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * include/monetary.h (__vstrfmon_l): Add attribute_hidden.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * include/sched.h (__sched_setparam): Add libc_hidden_proto.
+ * posix/sched_setp.c (__sched_setparam): Add libc_hidden_def.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * intl/hash-string.h (__hash_string): Add attribute_hidden.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * include/mntent.h (__hasmntopt): Add libc_hidden_proto.
+ * misc/mntent_r.c (__hasmntopt): Add libc_hidden_def.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * include/ifreq.h: New file.
+ * sysdeps/generic/ifreq.h (__if_nextreq): Removed.
+ (__ifreq): Likewise.
+ * sysdeps/mach/hurd/ifreq.h (__if_nextreq): Removed.
+ (__ifreq): Likewise.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * include/idna.h: New file.
+ * inet/getnameinfo.c: Include <idna.h> instead of
+ <libidn/idna.h>.
+ (__idna_to_unicode_lzlz): Removed.
+ * sysdeps/posix/getaddrinfo.c: Include <idna.h> instead of
+ <libidn/idna.h>.
+ (__idna_to_ascii_lz): Removed.
+ (__idna_to_unicode_lzlz): Likewise.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * include/plural-exp.h: New file.
+ * intl/plural-exp.c: Include <plural-exp.h> instead of
+ "plural-exp.h".
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * sysdeps/unix/sysv/linux/getsourcefilter.c: Include
+ "getsourcefilter.h".
+ * sysdeps/unix/sysv/linux/getsourcefilter.h: New file.
+ * sysdeps/unix/sysv/linux/setsourcefilter.c: Include
+ "getsourcefilter.h".
+ (__get_sol): Removed.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * elf/dl-iteratephdr.c (hidden_proto (__dl_iterate_phdr)): Moved
+ to ...
+ * include/link.h (hidden_proto (__dl_iterate_phdr)): Here.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * sysdeps/unix/sysv/linux/getpt.c (__bsd_getpt): Add
+ attribute_hidden.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * libio/iolibio.h (__fopen_maybe_mmap): Add attribute_hidden.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * include/search.h (__tdestroy): Add libc_hidden_proto.
+ * misc/tsearch.c (__tdestroy): Add libc_hidden_def.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * include/assert.h (__assert_fail_base): Add attribute_hidden.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * sysdeps/unix/sysv/linux/include/sys/sysinfo.h (__sysinfo): Add
+ attribute_hidden.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * include/signal.h (__kill): Add libc_hidden_proto.
+ (__sigblock): Likewise.
+ (__sigprocmask): Likewise.
+ (__sigaltstack): Likewise.
+ * signal/kill.c (__kill): Add libc_hidden_def.
+ * signal/sigblock.c (__sigblock): Likewise.
+ * signal/sigprocmask.c (__sigprocmask): Likewise.
+ * sysdeps/mach/hurd/kill.c (__kill): Likewise.
+ * sysdeps/mach/hurd/sigaltstack.c (__sigaltstack): Likewise.
+ * sysdeps/mach/hurd/sigprocmask.c (__sigprocmask): Likewise.
+ * sysdeps/posix/sigblock.c (__sigblock): Likewise.
+ * sysdeps/unix/sysv/linux/alpha/sigprocmask.c (__sigprocmask):
+ Likewise.
+ * sysdeps/unix/sysv/linux/ia64/sigprocmask.c (__sigprocmask):
+ Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/sigprocmask.c
+ (__sigprocmask): Likewise.
+ * sysdeps/unix/sysv/linux/sigprocmask.c (__sigprocmask):
+ Likewise.
+ * /sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c
+ (__sigprocmask): Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/sigprocmask.c (__sigprocmask):
+ Likewise.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * include/string.h (__strsep): Add libc_hidden_proto.
+ * string/strsep.c (__strsep): Add libc_hidden_def.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * posix/spawn_int.h (__posix_spawn_file_actions_realloc): Add
+ attribute_hidden.
+ (__spawni): Likewise.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * include/sys/mman.h (__mremap): Add libc_hidden_proto.
+ * sysdeps/unix/sysv/linux/m68k/mremap.S (__mremap): Add
+ libc_hidden_def.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * include/malloc.h (__malloc_check_init): Add attribute_hidden.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * include/sys/ioctl.h (__ioctl): Add libc_hidden_proto.
+ * misc/ioctl.c (__ioctl): Add libc_hidden_def.
+ * sysdeps/mach/hurd/ioctl.c (__ioctl): Likewise.
+ * sysdeps/unix/sysv/linux/aarch64/ioctl.S (__ioctl): Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/n64/ioctl.S (__ioctl):
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/ioctl.c (__ioctl): Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilegx/ioctl.S (__ioctl): Likewise.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * intl/gettextP.h (__dcngettext): Add attribute_hidden.
+ (__dcigettext): Likewise.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * include/sys/sysinfo.h (__get_nprocs_conf): Add
+ libc_hidden_proto.
+ (__get_nprocs): Likewise.
+ (__get_phys_pages): Likewise.
+ (__get_avphys_pages): Likewise.
+ (__get_child_max): Add attribute_hidden.
+ * misc/getsysstats.c (__get_nprocs_conf): Add libc_hidden_def.
+ (__get_nprocs): Likewise.
+ (__get_phys_pages): Likewise.
+ (__get_avphys_pages): Likewise.
+ * sysdeps/mach/getsysstats.c (__get_nprocs_conf): Add
+ libc_hidden_def.
+ (__get_nprocs): Likewise.
+ (__get_phys_pages): Likewise.
+ (__get_avphys_pages): Likewise.
+ * sysdeps/unix/sysv/linux/getsysstats.c (__get_nprocs): Add
+ libc_hidden_def.
+ (__get_nprocs_conf): Likewise.
+ (__get_phys_pages): Likewise.
+ (__get_avphys_pages): Likewise.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * sysdeps/unix/sysv/linux/netlinkaccess.h (__netlink_open): Add
+ attribute_hidden.
+ (__netlink_close): Likewise.
+ (__netlink_free_handle): Likewise.
+ (__netlink_request): Likewise.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * include/rpc/rpc.h (__rpc_thread_variables): Add
+ attribute_hidden.
+ (__rpc_thread_svc_cleanup): Likewise.
+ (__rpc_thread_clnt_cleanup): Likewise.
+ (__rpc_thread_key_cleanup): Likewise.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * include/sys/uio.h (__readv): Add libc_hidden_proto.
+ (__writev): Likewise.
+ * misc/readv.c (__readv): Add libc_hidden_def.
+ * misc/writev.c (__writev): Likewise.
+ * sysdeps/posix/readv.c (__readv): Likewise.
+ * sysdeps/posix/writev.c (__writev): Likewise.
+ * sysdeps/unix/sysv/linux/readv.c: Include <sys/uio.h>.
+ (__readv): Likewise.
+ * sysdeps/unix/sysv/linux/writev.c: Include <sys/uio.h>.
+ (__writev): Likewise.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * include/regex.h (__re_compile_fastmap): Add attribute_hidden.
+ (__regcomp): Add libc_hidden_proto.
+ (__regexec): Likewise.
+ (__regfree): Likewise.
+ * posix/regcomp.c (__regcomp): Add libc_hidden_def.
+ (__regfree): Likewise.
+ * posix/regexec.c (__regexec): Likewise.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * include/utmp.h (__updwtmp): Add libc_hidden_proto.
+ (__getutent): Likewise.
+ (__getutid): Likewise.
+ (__getutline): Likewise.
+ (__pututline): Likewise.
+ (__getutent_r): Likewise.
+ (__getutid_r): Likewise.
+ (__getutline_r): Likewise.
+ (__utmpname): Add attribute_hidden.
+ (__setutent): Likewise.
+ (__endutent): Likewise.
+ * login/getutent.c (__getutent): Add libc_hidden_def.
+ * login/getutent_r.c (__getutent_r): Likewise.
+ (__pututline): Likewise.
+ * login/getutid.c (__getutid): Likewise.
+ * login/getutid_r.c (__getutid_r): Likewise.
+ * login/getutline.c (__getutline): Likewise.
+ * login/getutline_r.c (__getutline_r): Likewise.
+ * login/updwtmp.c (__updwtmp): Likewise.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * include/dirent.h (__opendir): Always add attribute_hidden.
+ (__fdopendir): Likewise.
+ (__closedir): Likewise.
+ (__readdir): Likewise.
+ (__readdir64): Add libc_hidden_proto.
+ * sysdeps/mach/hurd/readdir64.c (__readdir64): Add libc_hidden_def.
+ * sysdeps/unix/sysv/linux/i386/readdir64.c (__readdir64): Likewise.
+ * sysdeps/unix/sysv/linux/readdir64.c (__readdir64): Likewise.
+ * sysdeps/unix/sysv/linux/wordsize-64/readdir.c (__GI___readdir64):
+ New alias.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * include/aliases.h (__getaliasbyname_r): Add attribute_hidden.
+ * include/netdb.h (__gethostbyaddr_r): Likewise.
+ (__gethostbyname_r): Likewise.
+ (__gethostbyname2_r): Likewise.
+ (__getnetbyaddr_r): Likewise.
+ (__getnetbyname_r): Likewise.
+ (__getservbyname_r): Likewise.
+ (__getservbyport_r): Likewise.
+ (__getprotobyname_r): Likewise.
+ (__getprotobynumber_r): Likewise.
+ (__getnetgrent_r): Likewise.
+ * include/rpc/netdb.h (__getrpcbyname_r): Likewise.
+ (__getrpcbynumber_r): Likewise.
+ * nss/getXXbyYY.c (INTERNAL (REENTRANT_NAME)): Likewise.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * include/stdio.h (__fcloseall): Add attribute_hidden.
+ (__getline): Likewise.
+ (__path_search): Likewise.
+ (__gen_tempname): Likewise.
+ (__libc_message): Likewise.
+ (__flockfile): Likewise.
+ (__funlockfile): Likewise.
+ (__fxprintf): Likewise.
+ (__fxprintf_nocancel): Likewise.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * include/gshadow.h (__fgetsgent_r): Add attribute_hidden.
+ (__sgetsgent_r): Likewise.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * include/sys/statfs.h (__fstatfs): Add attribute_hidden.
+ (__statfs64): Likewise.
+ (__fstatfs64): Likewise.
+ * include/sys/statvfs.h (__statvfs64): Likewise.
+ (__fstatvfs64): Likewise.
+ * sysdeps/unix/sysv/linux/pathconf.h (__statfs_link_max): Likewise.
+ (__statfs_filesize_max): Likewise.
+ (__statfs_symlinks): Likewise.
+ (__statfs_chown_restricted): Likewise.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * include/time.h (__tzstring): Add attribute_hidden.
+ (__tzfile_read): Likewise.
+ (__tzfile_compute): Likewise.
+ (__tzfile_default): Likewise.
+ (__tzset_parse_tz): Likewise.
+ (__offtime): Likewise.
+ (__asctime_r): Likewise.
+ (__tzset): Likewise.
+ (__tz_convert): Likewise.
+ (__getdate_r): Likewise.
+ (__getclktck): Likewise.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * nscd/nscd-client.h (__nscd_get_map_ref): Add attribute_hidden.
+ (__nscd_unmap): Likewise.
+ (__nscd_cache_search): Likewise.
+ (__nscd_get_nl_timestamp): Likewise.
+ (__nscd_getpwnam_r): Likewise.
+ (__nscd_getpwuid_r): Likewise.
+ (__nscd_getgrnam_r): Likewise.
+ (__nscd_getgrgid_r): Likewise.
+ (__nscd_gethostbyname_r): Likewise.
+ (__nscd_gethostbyname2_r): Likewise.
+ (__nscd_gethostbyaddr_r): Likewise.
+ (__nscd_getai): Likewise.
+ (__nscd_getgrouplist): Likewise.
+ (__nscd_getservbyname_r): Likewise.
+ (__nscd_getservbyport_r): Likewise.
+ (__nscd_innetgr): Likewise.
+ (__nscd_setnetgrent): Likewise.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * include/gmp.h: Declare internal functions only if _ISOMAC is
+ undefined.
+ (__mpn_extract_double): Add attribute_hidden.
+ (__mpn_extract_long_double): Likewise.
+ (__mpn_extract_float128): Likewise.
+ (__mpn_construct_float): Likewise.
+ (__mpn_construct_double): Likewise.
+ (__mpn_construct_long_double): Likewise.
+ (__mpn_construct_float128): Likewise.
+ (mpn_add_1): Likewise.
+ (mpn_addmul_1): Likewise.
+ (mpn_add_n): Likewise.
+ (mpn_cmp): Likewise.
+ (mpn_divrem): Likewise.
+ (mpn_lshift): Likewise.
+ (mpn_mul): Likewise.
+ (mpn_mul_1): Likewise.
+ (mpn_rshift): Likewise.
+ (mpn_sub_1): Likewise.
+ (mpn_submul_1): Likewise.
+ (mpn_sub_n): Likewise.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * include/wchar.h (__wcsnlen): Add attribute_hidden.
+ (__wcscat): Likewise.
+ (__btowc): Likewise.
+ (__wcrtomb): Likewise.
+ (__mbsrtowcs): Likewise.
+ (__wcsrtombs): Likewise.
+ (__mbsnrtowcs): Likewise.
+ (__wcsnrtombs): Likewise.
+ (__wcsncpy): Likewise.
+ (__wcpncpy): Likewise.
+ (__wmemcpy): Likewise.
+ (__wmempcpy): Likewise.
+ (__wmemmove): Likewise.
+ (__wcschrnul): Likewise.
+ (__vfwscanf): Likewise.
+ (__vswprintf): Likewise.
+ (__fwprintf): Likewise.
+ (__vfwprintf): Likewise.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * include/grp.h (__fgetgrent_r): Add attribute_hidden.
+ (__getgrgid_r): Likewise.
+ (__getgrnam_r): Likewise.
+ * include/pwd.h (__getpwuid_r): Likewise.
+ (__getpwnam_r): Likewise.
+ (__fgetpwent_r): Likewise.
+ * include/shadow.h (__getspnam_r): Likewise.
+ (__sgetspent_r): Likewise.
+ (__fgetspent_r): Likewise.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * include/unistd.h (__access): Add attribute_hidden.
+ (__lseek64): Likewise.
+ (__libc_pread64): Likewise.
+ (__pipe2): Likewise.
+ (__sleep): Likewise.
+ (__chdir): Likewise.
+ (__fchdir): Likewise.
+ (__getcwd): Likewise.
+ (__rmdir): Likewise.
+ (__execvpe): Likewise.
+ (__execve): Likewise.
+ (__setsid): Likewise.
+ (__getuid): Likewise.
+ (__geteuid): Likewise.
+ (__getgid): Likewise.
+ (__getegid): Likewise.
+ (__getgroups): Likewise.
+ (__group_member): Likewise.
+ (__ttyname_r): Likewise.
+ (__isatty): Likewise.
+ (__readlink): Likewise.
+ (__unlink): Likewise.
+ (__gethostname): Likewise.
+ (__profil): Likewise.
+ (__getdtablesize): Likewise.
+ (__brk): Likewise.
+ (__ftruncate): Likewise.
+ (__ftruncate64): Likewise.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * argp/argp-fmtstream.c: Include <argp-fmtstream.h>.
+ * argp/argp-fs-xinl.c: Likewise.
+ * argp/argp-help.c: Include <argp.h> and <argp-fmtstream.h>.
+ * argp/argp-parse.c: Include <argp.h>.
+ * argp/argp-xinl.c: Likewise.
+ * include/argp-fmtstream.h: New file.
+ * include/argp.h (__argp_error): Add attribute_hidden.
+ (__argp_failure): Likewise.
+ (__argp_input): Likewise.
+ (__argp_state_help): Likewise.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * include/wchar.h (____wcstof_l_internal): New prototype.
+ (____wcstod_l_internal): Likewise.
+ (____wcstold_l_internal): Likewise.
+ (____wcstol_l_internal): Likewise.
+ (____wcstoul_l_internal): Likewise.
+ (____wcstoll_l_internal): Likewise.
+ (____wcstoull_l_internal): Likewise.
+ (____wcstof128_l_internal): Likewise.
+ * sysdeps/ieee754/float128/wcstof128.c
+ (____wcstof128_l_internal): Removed.
+ * sysdeps/ieee754/float128/wcstof128_l.c
+ (____wcstof128_l_internal): Likewise.
+ * wcsmbs/wcstod.c (____wcstod_l_internal): Likewise.
+ * wcsmbs/wcstod_l.c (____wcstod_l_internal): Likewise.
+ * wcsmbs/wcstof.c (____wcstof_l_internal): Likewise.
+ * wcsmbs/wcstof_l.c (____wcstof_l_internal): Likewise.
+ * wcsmbs/wcstol_l.c (____wcstol_l_internal): Likewise.
+ * wcsmbs/wcstold.c (____wcstold_l_internal): Likewise.
+ * wcsmbs/wcstold_l.c (____wcstold_l_internal): Likewise.
+ * wcsmbs/wcstoll_l.c (____wcstoll_l_internal): Likewise.
+ * wcsmbs/wcstoul_l.c (____wcstoul_l_internal): Likewise.
+ * wcsmbs/wcstoull_l.c (____wcstoull_l_internal): Likewise.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * sysdeps/unix/sysv/linux/fstatvfs.c: Include "internal_statvfs.h"
+ instead of <sys/statvfs.h>.
+ (__internal_statvfs): Removed.
+ * sysdeps/unix/sysv/linux/fstatvfs64.c Include "internal_statvfs.h"
+ instead of <sys/statvfs.h>.
+ (__internal_statvfs64): Removed.
+ * sysdeps/unix/sysv/linux/internal_statvfs.c: Include
+ "internal_statvfs.h" instead of <sys/statvfs.h>.
+ * sysdeps/unix/sysv/linux/internal_statvfs.h: New file.
+ * sysdeps/unix/sysv/linux/statvfs.c Include "internal_statvfs.h"
+ instead of <sys/statvfs.h>.
+ (__internal_statvfs): Removed.
+ * sysdeps/unix/sysv/linux/statvfs64.c Include "internal_statvfs.h"
+ instead of <sys/statvfs.h>.
+ (__internal_statvfs64): Removed.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * iconv/gconv_int.h (__gconv_open): Add attribute_hidden.
+ (__gconv_close): Likewise.
+ (__gconv): Likewise.
+ (__gconv_find_transform): Likewise.
+ (__gconv_lookup_cache): Likewise.
+ (__gconv_compare_alias_cache): Likewise.
+ (__gconv_load_cache): Likewise.
+ (__gconv_get_path): Likewise.
+ (__gconv_close_transform): Likewise.
+ (__gconv_release_cache): Likewise.
+ (__gconv_find_shlib): Likewise.
+ (__gconv_release_shlib): Likewise.
+ (__gconv_get_builtin_trans): Likewise.
+ (__gconv_compare_alias): Likewise.
+ * include/dlfcn.h (_dlerror_run): Likewise.
+ * include/stdio.h (__fortify_fail_abort): Likewise.
+ * include/time.h (__tz_compute): Likewise.
+ (__strptime_internal): Likewise.
+ * intl/gettextP.h (_nl_find_domain): Likewise.
+ (_nl_load_domain): Likewise.
+ (_nl_find_msg): Likewise.
+ * intl/plural-exp.h (FREE_EXPRESSION): Likewise.
+ (EXTRACT_PLURAL_EXPRESSION): Likewise.
+ * locale/coll-lookup.h (__collidx_table_lookup): Likewise.
+ * resolv/gai_misc.h (__gai_enqueue_request): Likewise.
+ (__gai_find_request): Likewise.
+ (__gai_remove_request): Likewise.
+ (__gai_notify): Likewise.
+ (__gai_notify_only): Likewise.
+ * sysdeps/generic/aio_misc.h (__aio_sigqueue): Likewise.
+ * sysdeps/generic/ldsodefs.h (_dl_fini): Likewise.
+ (_dl_non_dynamic_init): Likewise.
+ (_dl_aux_init): Likewise.
+ * sysdeps/i386/machine-gmon.h (mcount_internal): Likewise.
+ * sysdeps/unix/sysv/linux/i386/olddirent.h (__old_getdents64):
+ Likewise.
+ * wcsmbs/wcsmbsload.h (__wcsmbs_load_conv): Likewise.
+ (__wcsmbs_clone_conv): Likewise.
+ (__wcsmbs_named_conv): Likewise.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * include/stdlib.h (__random): Add attribute_hidden.
+ (__random_r): Likewise.
+ (__srandom_r): Likewise.
+ (__initstate_r): Likewise.
+ (__setstate_r): Likewise.
+ (__erand48_r): Likewise.
+ (__nrand48_r): Likewise.
+ (__jrand48_r): Likewise.
+ (__srand48_r): Likewise.
+ (__seed48_r): Likewise.
+ (__lcong48_r): Likewise.
+ (__drand48_iterate): Likewise.
+ (__setenv): Likewise.
+ (__unsetenv): Likewise.
+ (__clearenv): Likewise.
+ (__ptsname_r): Likewise.
+ (__posix_openpt): Likewise.
+ (__add_to_environ): Likewise.
+ (__realpath): Add libc_hidden_proto.
+ (__ecvt_r): Likewise.
+ (__fcvt_r): Likewise.
+ (__qecvt_r): Likewise.
+ (__qfcvt_r): Likewise.
+ * misc/efgcvt_r.c (cvt_symbol_1): Add libc_hidden_def (local).
+ * stdlib/canonicalize.c (__realpath): Add libc_hidden_def.
+
+2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * include/stdlib.h (__ptsname_internal): Add attribute_hidden.
+ * include/time.h (__mktime_internal): Likewise.
+ * libio/iolibio.h (__fopen_internal): Likewise.
+
+2017-10-01 John David Anglin <danglin@gcc.gnu.org>
+
+ * sysdeps/unix/sysv/linux/hppa/getcontext.S (__getcontext): Save return
+ pointer in frame.
+ * sysdeps/unix/sysv/linux/hppa/setcontext.S (__setcontext): Likewise.
+ Correct offset used to restore PIC register.
+
+2017-09-30 John David Anglin <danglin@gcc.gnu.org>
+
+ [BZ libc/22165]
+ * sysdeps/unix/sysv/linux/hppa/getcontext.S (__getcontext): Use PIC
+ code to load address of __getcontext_ret when generating PIC code.
+
+2017-09-30 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elf/Makefile (tests-static-internal): Add
+ tst-tls1-static-non-pie.
+ (LDFLAGS-tst-tls1-static-non-pie): New.
+ * elf/tst-tls1-static-non-pie.c: New file.
+
+2017-09-29 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/ieee754/dbl-64/s_asinh.c: Include <libm-alias-double.h>.
+ (asinh): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/s_cbrt.c: Include <libm-alias-double.h>.
+ (cbrt): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/s_copysign.c: Include
+ <libm-alias-double.h>.
+ (copysign): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/s_erf.c: Include <libm-alias-double.h>.
+ (erf): Define using libm_alias_double.
+ (erfc): Likewise.
+ * sysdeps/ieee754/dbl-64/s_expm1.c: Include <libm-alias-double.h>.
+ (expm1): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/s_fabs.c: Include <libm-alias-double.h>.
+ (fabs): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/s_fromfp.c (fromfp): Define using
+ libm_alias_double.
+ * sysdeps/ieee754/dbl-64/s_fromfp_main.c: Include
+ <libm-alias-double.h>.
+ * sysdeps/ieee754/dbl-64/s_fromfpx.c (fromfpx): Define using
+ libm_alias_double.
+ * sysdeps/ieee754/dbl-64/s_getpayload.c: Include
+ <libm-alias-double.h>.
+ (getpayload): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/s_llrint.c: Include
+ <libm-alias-double.h>.
+ (llrint): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/s_lrint.c: Include <libm-alias-double.h>.
+ (lrint): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/s_nextup.c: Include
+ <libm-alias-double.h>.
+ (nextup): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/s_roundeven.c: Include
+ <libm-alias-double.h>.
+ (roundeven): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/s_setpayload.c (setpayload): Define using
+ libm_alias_double.
+ * sysdeps/ieee754/dbl-64/s_setpayload_main.c: Include
+ <libm-alias-double.h>.
+ * sysdeps/ieee754/dbl-64/s_setpayloadsig.c (setpayloadsig): Define
+ using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/s_sin.c: Include <libm-alias-double.h>.
+ (cos): Define using libm_alias_double.
+ (sin): Likewise.
+ * sysdeps/ieee754/dbl-64/s_sincos.c: Include
+ <libm-alias-double.h>.
+ (sincos): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/s_tanh.c: Include <libm-alias-double.h>.
+ (tanh): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/s_totalorder.c: Include
+ <libm-alias-double.h>.
+ (totalorder): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/s_totalordermag.c: Include
+ <libm-alias-double.h>.
+ (totalordermag): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/s_ufromfp.c (ufromfp): Define using
+ libm_alias_double.
+ * sysdeps/ieee754/dbl-64/s_ufromfpx.c (ufromfpx): Define using
+ libm_alias_double.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_getpayload.c: Include
+ <libm-alias-double.h>.
+ (getpayload): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_roundeven.c: Include
+ <libm-alias-double.h>.
+ (roundeven): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_setpayload_main.c: Include
+ <libm-alias-double.h>.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_totalorder.c: Include
+ <libm-alias-double.h>.
+ (totalorder): Define using libm_alias_double.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_totalordermag.c: Include
+ <libm-alias-double.h>.
+ (totalordermag): Define using libm_alias_double.
+ * sysdeps/ieee754/ldbl-opt/s_copysign.c (copysignl): Only define
+ libc compat symbol here.
+ * sysdeps/ieee754/ldbl-opt/s_asinh.c: Remove file.
+ * sysdeps/ieee754/ldbl-opt/s_cbrt.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/s_erf.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/s_expm1.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/s_fabs.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/s_llrint.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/s_lrint.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/s_sin.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/s_sincos.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/s_tanh.c: Likewise.
+
+2017-09-29 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/arm/dl-machine.h (elf_machine_load_address): Use
+ _dl_relocate_static_pie instead of _dl_start to compute load
+ address in static PIE. Return 0 if _DYNAMIC is undefined for
+ static executable.
+
+2017-09-29 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/mips/dl-machine.h (elf_machine_dynamic): Return 0 if
+ _DYNAMIC is undefined for static executable.
+
+2017-09-29 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/arm/start.S (_start): Check PIC instead of SHARED.
+
+2017-09-29 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/x86_64/fpu/libm-test-ulps: Update.
+
+2017-09-29 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * sysdeps/ieee754/dbl-64/e_lgamma_r.c
+ (__ieee754_lgamma_r): Use fabs rather than __fabs.
+ * sysdeps/ieee754/dbl-64/e_log10.c (__ieee754_log10): Likewise.
+ * sysdeps/ieee754/dbl-64/e_log2.c (__ieee754_log2): Likewise.
+ * sysdeps/ieee754/flt-32/e_lgammaf_r.c
+ (__ieee754_lgammaf_r): Use fabsf rather than __fabsf.
+ * sysdeps/ieee754/flt-32/e_log10f.c (__ieee754_log10f): Likewise.
+ * sysdeps/ieee754/flt-32/e_log2f.c (__ieee754_log2f): Likewise.
+ * sysdeps/ieee754/ldbl-128/e_lgammal_r.c
+ (__ieee754_lgammal_r): Use fabsl rather than __fabsl.
+ * sysdeps/ieee754/ldbl-128/e_log10l.c (__ieee754_log10l): Likewise.
+ * sysdeps/ieee754/ldbl-128/e_log2l.c (__ieee754_log2l): Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_lgammal_r.c
+ (__ieee754_lgammal_r): Use fabsl rather than __fabsl.
+ * sysdeps/ieee754/ldbl-128ibm/e_log10l.c (__ieee754_log10l): Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_log2l.c (__ieee754_log2l): Likewise.
+ * sysdeps/powerpc/nofpu/Makefile: Add -fno-builtin-fabsl for BZ #29253.
+
+2017-09-29 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * math/bits/cmathcalls.h (cimag): Remove inline.
+ (creal): Remove inline.
+ (conj): Remove inline.
+
+2017-09-29 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * math/Makefile (type-float-routines): Add e_powf_log2_data.
+ * sysdeps/ieee754/flt-32/e_powf.c: New implementation.
+ * sysdeps/ieee754/flt-32/e_powf_log2_data.c: New file.
+ * sysdeps/ieee754/flt-32/math_config.h (__powf_log2_data): Define.
+ (issignalingf_inline): Likewise.
+ (POWF_LOG2_TABLE_BITS): Likewise.
+ (POWF_LOG2_POLY_ORDER): Likewise.
+ (POWF_SCALE_BITS): Likewise.
+ (POWF_SCALE): Likewise.
+ * sysdeps/i386/fpu/e_powf_log2_data.c: New file.
+ * sysdeps/ia64/fpu/e_powf_log2_data.c: New file.
+ * sysdeps/m68k/m680x0/fpu/e_powf_log2_data.c: New file.
+
+2017-09-29 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * math/Makefile (type-float-routines): Add e_log2f_data.
+ * sysdeps/ieee754/flt-32/e_log2f.c: New implementation.
+ * sysdeps/ieee754/flt-32/e_log2f_data.c: New file.
+ * sysdeps/ieee754/flt-32/math_config.h (__log2f_data): Define.
+ (LOG2F_TABLE_BITS, LOG2F_POLY_ORDER): Define.
+ * sysdeps/i386/fpu/e_log2f_data.c: New file.
+ * sysdeps/ia64/fpu/e_log2f_data.c: New file.
+ * sysdeps/m68k/m680x0/fpu/e_log2f_data.c: New file.
+
+2017-09-29 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * math/Makefile (type-float-routines): Add e_logf_data.
+ * sysdeps/ieee754/flt-32/e_logf.c: New implementation.
+ * sysdeps/ieee754/flt-32/e_logf_data.c: New file.
+ * sysdeps/ieee754/flt-32/math_config.h (__logf_data): Define.
+ (LOGF_TABLE_BITS, LOGF_POLY_ORDER): Define.
+ * sysdeps/i386/fpu/e_logf_data.c: New file.
+ * sysdeps/ia64/fpu/e_logf_data.c: New file.
+ * sysdeps/m68k/m680x0/fpu/e_logf_data.c: New file.
+
+2017-09-28 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/i386/dl-machine.h (elf_machine_load_address): Allow
+ undefined _DYNAMIC in PIE libc.a.
+ * sysdeps/x86_64/dl-machine.h (elf_machine_load_address):
+ Likewse.
+
+2017-09-28 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * sysdeps/alpha/fpu/bits/mathinline.h: Delete file.
+ * sysdeps/ia64/fpu/bits/mathinline.h: Delete file.
+ * sysdeps/m68k/coldfire/fpu/bits/mathinline.h: Delete file.
+ * sysdeps/m68k/m680x0/fpu/bits/mathinline.h: (__signbitf): Remove.
+ (__signbit): Remove.
+ (__signbitl): Remove.
+ * sysdeps/powerpc/bits/mathinline.h (__signbitf): Remove.
+ (__signbit): Remove.
+ (__signbitl): Remove.
+ * sysdeps/s390/fpu/bits/mathinline.h: (__signbitf): Remove.
+ (__signbit): Remove.
+ (__signbitl): Remove.
+ * sysdeps/sparc/fpu/bits/mathinline.h (__signbitf): Remove.
+ (__signbit): Remove.
+ (__signbitl): Remove.
+ * sysdeps/tile/bits/mathinline.h: Delete file.
+ * sysdeps/x86/fpu/bits/mathinline.h (__signbitf): Remove.
+ (__signbit): Remove.
+ (__signbitl): Remove.
+
+2017-09-28 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * math/math.h: Improve handling of C99 isgreater macros.
+ * sysdeps/alpha/fpu/bits/mathinline.h: Remove isgreater macros.
+ * sysdeps/m68k/m680x0/fpu/bits/mathinline.h: Likewise.
+ * sysdeps/powerpc/bits/mathinline.h: Likewise.
+ * sysdeps/sparc/fpu/bits/mathinline.h: Likewise.
+ * sysdeps/x86/fpu/bits/mathinline.h: Likewise.
+
+2017-09-28 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * sysdeps/aarch64/libm-test-ulps: Update.
+
+2017-09-28 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #22225]
+ * sysdeps/ieee754/dbl-64/s_nearbyint.c (__nearbyint): Use
+ math_opt_barrier on argument when doing arithmetic on it.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c (__nearbyint):
+ Likewise. Use math_force_eval not math_opt_barrier after
+ arithmetic.
+ * sysdeps/ieee754/flt-32/s_nearbyintf.c (__nearbyintf): Use
+ math_opt_barrier on argument when doing arithmetic on it.
+ * sysdeps/ieee754/ldbl-128/s_nearbyintl.c (__nearbyintl):
+ Likewise.
+
+2017-09-27 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/unix/sysv/linux/ifaddrs.c (__getifaddrs): Add
+ libc_hidden_def.
+ (__freeifaddrs): Likewise.
+
+2017-09-27 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * include/dirent.h (__dirfd): New declaration.
+ * dirent/dirfd.c (dirfd): Rename to __dirfd, and redefine as weak
+ alias.
+ * sysdeps/posix/dirfd/dirfd.c (dirfd): Likewise.
+ * sysdeps/mach/hurd/dirfd.c (dirfd): Likewise.
+ * io/ftw.c (open_dir_stream, ftw_dir): Use __dirfd instead of dirfd.
+ * include/unistd.h (__revoke): New declaration.
+ * misc/revoke.c (revoke): Rename to __revoke, and redefine as weak
+ alias.
+ * sysdeps/mach/hurd/revoke.c (revoke): Likewise.
+ * sysdeps/unix/bsd/unlockpt.c (unlockpt): Use __revoke instead of
+ revoke.
+ * include/dirent.h (__seekdir): New declaration.
+ * sysdeps/mach/hurd/seekdir.c (seekdir): Rename to __seekdir and
+ redefine as weak alias.
+ * sysdeps/mach/hurd/rewinddir.c (__rewinddir): Use __seekdir instead
+ of seekdir.
+ * include/ifaddrs.h (__getifaddrs, __freeifaddrs): New declarations,
+ and use libc_hidden_def on them.
+ * inet/ifaddrs.c (__getifaddrs, __freeifaddrs): Use libc_hidden_def on
+ them.
+ * sysdeps/gnu/ifaddrs.c (__getifaddrs, __freeifaddrs): Likewise.
+ * inet/check_pf.c (__check_pf): Use __getifaddrs and __freeifaddrs
+ instead of getifaddrs and freeifaddrs.
+
+2017-09-26 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * dlfcn/modatexit.c (foo): Remove __dso_handle check.
+ * dlfcn/modcxaatexit.c: Include <dso_handle.h>.
+ (__dso_handle): Remove declaration.
+ * dlfcn/tstatexit.c (__dso_handle): Removed.
+ (main): Don't check __dso_handle.
+ * dlfcn/tstcxaatexit.c (__dso_handle): Removed.
+ (main): Don't check __dso_handle.
+ * include/dso_handle.h: New file.
+ * malloc/mtrace.c: Include <dso_handle.h>.
+ (mtrace): Pass __dso_handle directly.
+ * nptl/pthread_atfork.c: Include <dso_handle.h>.
+ (__dso_handle): Remove declaration.
+ (__pthread_atfork): Pass __dso_handle directly.
+ * nptl/tst-atfork2mod.c: Include <dso_handle.h>.
+ (__dso_handle): Removed.
+ * posix/wordexp-test.c: Include <dso_handle.h>.
+ (__dso_handle): Remove declaration.
+ (__app_register_atfork): Pass __dso_handle directly.
+ * stdlib/at_quick_exit.c: Include <dso_handle.h>.
+ (__dso_handle): Remove declaration.
+ (at_quick_exit): Pass __dso_handle directly.
+ * stdlib/atexit.c: Include <dso_handle.h>.
+ (__dso_handle): Remove declaration.
+ (atexit): Pass __dso_handle directly.
+ * stdlib/tst-tls-atexit-lib.c: Include <dso_handle.h>.
+ (__dso_handle): Removed.
+
+2017-09-26 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/make-syscalls.sh: Use __ifunc to define symbols
+ using VDSO.
+
+2017-09-26 Alexey Makhalov <amakhalov@vmware.com>
+
+ * elf/dl-tunables.c (do_tunable_update_val): Range checking fix.
+ * scripts/gen-tunables.awk: Set unspecified minval and/or maxval
+ values to correct default value for given type.
+
+2017-09-26 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #22101]
+ * elf/Makefile (tests): Add tst-debug1.
+ ($(objpfx)tst-debug1): New.
+ ($(objpfx)tst-debug1.out): Likewise.
+ ($(objpfx)tst-debug1mod1.so): Likewise.
+ * elf/dl-load.c (_dl_map_object_from_fd): Skip PT_DYNAMIC segment
+ with p_filesz == 0.
+ * elf/tst-debug1.c: New file.
+
+2017-09-26 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/sparc/sparc-ifunc.h [!__ASSEMBLER__] (sparc_libm_ifunc):
+ Define using __ifunc.
+
+2017-09-26 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
+
+ * sysdeps/powerpc/fpu/libm-test-ulps: Regenerate expf() and
+ exp2f() values.
+
+2017-09-26 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #22156]
+ * sysdeps/ia64/stackinfo.h (DEFAULT_STACK_PERMS): Likewise.
+
+2017-09-26 Florian Weimer <fweimer@redhat.com>
+
+ * resolv/Makefile (tests-internal): Fix typo in comment.
+
+2017-09-26 Florian Weimer <fweimer@redhat.com>
+
+ * resolv/nss_dns/dns-host.c: Fix typo in comment.
+
+2017-09-25 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * lib/malloc/scratch_buffer.h (struct scratch_buffer):
+ Use an union instead of a max_align_t array for __space,
+ so that __space is the same size on all platforms.
+ * malloc/scratch_buffer_grow_preserve.c
+ (__libc_scratch_buffer_grow_preserve): Likewise.
+
+ [BZ #22183]
+ * include/gnu-versions.h (_GNU_GLOB_INTERFACE_VERSION): Increase
+ version to 2.
+ * posix/Makefile (routines): Add glob-lstat-compat and
+ glob64-lstat-compat.
+ * posix/Versions (GLIBC_2.27, glob, glob64): Add symbol version.
+ * posix/glob-lstat-compat.c: New file.
+ * posix/glob64-lstat-compat.c: Likewise.
+ * posix/tst-glob_lstat_compat.c: Likewise.
+ * sysdeps/unix/sysv/linux/glob-lstat-compat.c: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/glob-lstat-compat.c: Likewise.
+ * sysdeps/unix/sysv/linux/glob64-lstat-compat.c: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/glob64-lstat-compat.c:
+ Likewise.
+ * sysdeps/unix/sysv/linux/alpha/glob.c: Remove file.
+ * sysdeps/unix/sysv/linux/s390/s390-32/glob64.c: Likewise.
+ * posix/glob.c (glob_lstat): New function.
+ (glob): Rename to __glob and add versioned symbol to 2.27.
+ (glob_in_dir): Use glob_lstat.
+ * posix/glob64.c (glob64): Add GLOB_ATTRIBUTE.
+ * sysdeps/unix/sysv/linux/arm/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/glob.c (glob): Add versioned symbol for
+ 2.27.
+ * sysdeps/unix/sysv/linux/glob64.c (glob64): Likewise.
+ * sysdeps/unix/sysv/linux/oldglob.c (GLOB_NO_LSTAT): Define.
+ * sysdeps/unix/sysv/linux/alpha/oldglob.c (__old_glob): Do not use
+ gl_lstat on glob call.
+ * sysdeps/unix/sysv/linux/aarch64/libc.abilist: Add GLIBC_2.27 glob
+ and glob64 symbols.
+ * sysdeps/unix/sysv/linux/alpha/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/hppa/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/i386/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/ia64/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/microblaze/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/nios2/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist:
+ Likewise.
+ * sysdeps/unix/linux/powerpc/powerpc32/nofpu/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sh/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Likewise.
+
+2017-09-25 H.J. Lu <hongjiu.lu@intel.com>
+
+ * configure.ac (AS): Require binutils 2.25 or later.
+ * configure: Regenerated.
+
+2017-09-25 Paul Pluzhnikov <ppluzhnikov@google.com>
+
+ [BZ #22207]
+ * stdlib/test-atexit-race-common.c (do_test): Minimize required
+ VM size.
+
+2017-09-25 DJ Delorie <dj@redhat.com>
+
+ [BZ #22161]
+ * nscd/netgroupcache.c (addinnetgrX): Release read lock after
+ resetting timeout.
+
+2017-09-25 Stefan Liebler <stli@linux.vnet.ibm.com>
+
+ * sysdeps/ieee754/dbl-64/sincos32.h
+ [SINCCOS32_H]: Remove define.
+ [SINCOS32_H]: Define.
+
+2017-09-25 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * math/Versions (expf): New libm symbol at GLIBC_2.27.
+ (exp2f): Likewise.
+ * math/w_exp2f.c: New file.
+ * math/w_expf.c: New file.
+ * math/w_exp2f_compat.c (__exp2f_compat): For compat symbol only.
+ * math/w_expf_compat.c (__expf_compat): Likewise.
+ * sysdeps/ia64/fpu/e_exp2f.S: Add versioned symbols.
+ * sysdeps/ia64/fpu/e_expf.S: Likewise.
+ * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Update.
+ * sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/arm/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/libm-le.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/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/tile/tilegx/tilegx32/libm.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
+
+2017-09-25 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * math/Makefile (type-float-routines): Add math_errf and e_exp2f_data.
+ * sysdeps/aarch64/fpu/math_private.h (TOINT_INTRINSICS): Define.
+ (roundtoint, converttoint): Likewise.
+ * sysdeps/ieee754/flt-32/e_expf.c: New implementation.
+ * sysdeps/ieee754/flt-32/e_exp2f.c: New implementation.
+ * sysdeps/ieee754/flt-32/e_exp2f_data.c: New file.
+ * sysdeps/ieee754/flt-32/math_config.h: New file.
+ * sysdeps/ieee754/flt-32/math_errf.c: New file.
+ * sysdeps/ieee754/flt-32/t_exp2f.h: Remove.
+ * sysdeps/i386/fpu/e_exp2f_data.c: New file.
+ * sysdeps/i386/fpu/math_errf.c: New file.
+ * sysdeps/ia64/fpu/e_exp2f_data.c: New file.
+ * sysdeps/ia64/fpu/math_errf.c: New file.
+ * sysdeps/m68k/m680x0/fpu/e_exp2f_data.c: New file.
+ * sysdeps/m68k/m680x0/fpu/math_errf.c: New file.
+
+2017-09-24 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * sysdeps/mach/hurd/dl-sysdep.c (check_no_hidden): New macro.
+ (__open, __close, __libc_read, __libc_write, __writev, __libc_lseek64,
+ __mmap, __fxstat64, __xstat64, __access, __access_noerrno, __getpid,
+ __getcwd, __sbrk, __strtoul_internal, _exit, abort): Use check_no_hidden
+ to make sure that these symbols are defined.
+ * sysdeps/mach/hurd/bits/socket.h: Include <bits/wordsize.h> instead
+ of <limits.h>
+ (__need_NULL): Do not define.
+ (__ss_aligntype): Use __WORDSIZE instead of ULONG_MAX to determine
+ alignment.
+ [!__USE_MISC] (pseudo_AF_XTP, pseudo_AF_RTIP, pseudo_AF_PIP,
+ CMGROUP_MAX, cmsgcred): Do not define.
+ (CMSG_FIRSTHDR, __cmsg_nxthdr): Use (struct cmsghdr *) 0 instead of
+ NULL.
+ * bits/socket.h: Likewise.
+ * sysdeps/unix/clock_gettime.c (realtime_gettime, __clock_gettime): Use
+ __gettimeofday instead of gettimeofday.
+ * sysdeps/unix/clock_settime.c (__clock_settime): Use __settimeofday
+ instead of settimeofday.
+
+2017-09-22 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/ieee754/flt-32/s_asinhf.c: Include <libm-alias-float.h>.
+ (asinhf): Define using libm_alias_float.
+ * sysdeps/ieee754/flt-32/s_atanf.c: Include <libm-alias-float.h>.
+ (atanf): Define using libm_alias_float.
+ * sysdeps/ieee754/flt-32/s_cbrtf.c: Include <libm-alias-float.h>.
+ (cbrtf): Define using libm_alias_float.
+ * sysdeps/ieee754/flt-32/s_ceilf.c: Include <libm-alias-float.h>.
+ (ceilf): Define using libm_alias_float.
+ * sysdeps/ieee754/flt-32/s_copysignf.c: Include
+ <libm-alias-float.h>.
+ (copysignf): Define using libm_alias_float.
+ * sysdeps/ieee754/flt-32/s_cosf.c: Include <libm-alias-float.h>.
+ (cosf): Define using libm_alias_float.
+ * sysdeps/ieee754/flt-32/s_erff.c: Include <libm-alias-float.h>.
+ (erff): Define using libm_alias_float.
+ (erfcf): Likewise.
+ * sysdeps/ieee754/flt-32/s_expm1f.c: Include <libm-alias-float.h>.
+ (expm1f): Define using libm_alias_float.
+ * sysdeps/ieee754/flt-32/s_fabsf.c: Include <libm-alias-float.h>.
+ (fabsf): Define using libm_alias_float.
+ * sysdeps/ieee754/flt-32/s_floorf.c: Include <libm-alias-float.h>.
+ (floorf): Define using libm_alias_float.
+ * sysdeps/ieee754/flt-32/s_frexpf.c: Include <libm-alias-float.h>.
+ (frexpf): Define using libm_alias_float.
+ * sysdeps/ieee754/flt-32/s_fromfpf.c (fromfpf): Define using
+ libm_alias_float.
+ * sysdeps/ieee754/flt-32/s_fromfpf_main.c: Include
+ <libm-alias-float.h>.
+ * sysdeps/ieee754/flt-32/s_fromfpxf.c (fromfpxf): Define using
+ libm_alias_float.
+ * sysdeps/ieee754/flt-32/s_getpayloadf.c: Include
+ <libm-alias-float.h>.
+ (getpayloadf): Define using libm_alias_float.
+ * sysdeps/ieee754/flt-32/s_llrintf.c: Include
+ <libm-alias-float.h>.
+ (llrintf): Define using libm_alias_float.
+ * sysdeps/ieee754/flt-32/s_llroundf.c: Include
+ <libm-alias-float.h>.
+ (llroundf): Define using libm_alias_float.
+ * sysdeps/ieee754/flt-32/s_logbf.c: Include <libm-alias-float.h>.
+ (logbf): Define using libm_alias_float.
+ * sysdeps/ieee754/flt-32/s_lrintf.c: Include <libm-alias-float.h>.
+ (lrintf): Define using libm_alias_float.
+ * sysdeps/ieee754/flt-32/s_lroundf.c: Include <libm-alias-float.h>.
+ (lroundf): Define using libm_alias_float.
+ * sysdeps/ieee754/flt-32/s_modff.c: Include <libm-alias-float.h>.
+ (modff): Define using libm_alias_float.
+ * sysdeps/ieee754/flt-32/s_nearbyintf.c: Include
+ <libm-alias-float.h>.
+ (nearbyintf): Define using libm_alias_float.
+ * sysdeps/ieee754/flt-32/s_nextafterf.c: Include
+ <libm-alias-float.h>.
+ (nextafterf): Define using libm_alias_float.
+ * sysdeps/ieee754/flt-32/s_nextupf.c: Include
+ <libm-alias-float.h>.
+ (nextupf): Define using libm_alias_float.
+ * sysdeps/ieee754/flt-32/s_remquof.c: Include
+ <libm-alias-float.h>.
+ (remquof): Define using libm_alias_float.
+ * sysdeps/ieee754/flt-32/s_rintf.c: Include <libm-alias-float.h>.
+ (rintf): Define using libm_alias_float.
+ * sysdeps/ieee754/flt-32/s_roundevenf.c: Include
+ <libm-alias-float.h>.
+ (roundevenf): Define using libm_alias_float.
+ * sysdeps/ieee754/flt-32/s_roundf.c: Include <libm-alias-float.h>.
+ (roundf): Define using libm_alias_float.
+ * sysdeps/ieee754/flt-32/s_setpayloadf.c (setpayloadf): Define
+ using libm_alias_float.
+ * sysdeps/ieee754/flt-32/s_setpayloadf_main.c: Include
+ <libm-alias-float.h>.
+ * sysdeps/ieee754/flt-32/s_setpayloadsigf.c (setpayloadsigf):
+ Define using libm_alias_float.
+ * sysdeps/ieee754/flt-32/s_sincosf.c: Include
+ <libm-alias-float.h>.
+ (sincosf): Define using libm_alias_float.
+ * sysdeps/ieee754/flt-32/s_sinf.c: Include <libm-alias-float.h>.
+ (sinf): Define using libm_alias_float.
+ * sysdeps/ieee754/flt-32/s_tanf.c: Include <libm-alias-float.h>.
+ (tanf): Define using libm_alias_float.
+ * sysdeps/ieee754/flt-32/s_tanhf.c: Include <libm-alias-float.h>.
+ (tanhf): Define using libm_alias_float.
+ * sysdeps/ieee754/flt-32/s_totalorderf.c: Include
+ <libm-alias-float.h>.
+ (totalorderf): Define using libm_alias_float.
+ * sysdeps/ieee754/flt-32/s_totalordermagf.c: Include
+ <libm-alias-float.h>.
+ (totalordermagf): Define using libm_alias_float.
+ * sysdeps/ieee754/flt-32/s_truncf.c: Include <libm-alias-float.h>.
+ (truncf): Define using libm_alias_float.
+ * sysdeps/ieee754/flt-32/s_ufromfpf.c (ufromfpf): Define using
+ libm_alias_float.
+ * sysdeps/ieee754/flt-32/s_ufromfpxf.c (ufromfpxf): Define using
+ libm_alias_float.
+
+2017-09-22 Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
+
+ [BZ #22146]
+ math/math.h: Let fpclassify use the builtin in C++ mode, even
+ when optimazing for size.
+
+2017-09-22 Joseph Myers <joseph@codesourcery.com>
+
+ * csu/Makefile (generated): Do not add version-info.h.
+ (before-compile): Likewise.
+ (all-Banner-files): Remove variable.
+ ($(objpfx)version-info.h): Remove rule.
+ * csu/version.c (banner): Do not include "version-info.h".
+ * libidn/Banner: Remove.
+ * manual/contrib.texi (Simon Josefsson): New entry.
+
+2017-09-21 Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
+
+ * sysdeps/ieee754/ldbl-128/e_lgammal_r.c (__ieee754_lgammal_r):
+ Remove conditionals on LDBL_MANT_DIG.
+ * sysdeps/ieee754/ldbl-128ibm/e_lgammal_r.c
+ (__ieee754_lgammal_r): Likewise.
+
+2017-09-21 Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
+
+ * sysdeps/ieee754/ldbl-128ibm/e_expl.c: Remove definitions of
+ _Float128 and L().
+ * sysdeps/ieee754/ldbl-128ibm/e_j0l.c: Remove definitions of
+ _Float128 and L(). Replace _Float128 with long double and L(x)
+ with xL, throughout the file.
+ * sysdeps/ieee754/ldbl-128ibm/e_j1l.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_lgammal_r.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_cbrtl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/t_expl.h: Likewise.
+
+2017-09-21 Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
+
+ * sysdeps/ieee754/ldbl-128ibm/e_expl.c: Include tables from
+ sysdeps/ieee754/ldbl-128ibm.
+ * sysdeps/ieee754/ldbl-128ibm/e_j0l.c: Copy contents from the
+ equivalent implementation in sysdeps/ieee754/ldbl-128/ instead
+ of including it. Keep _Float128 and L() intact. These will be
+ reviewed by a separate patch.
+ * sysdeps/ieee754/ldbl-128ibm/e_j1l.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_lgammal_r.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_cbrtl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/t_expl.h: Likewise.
+
+2017-09-21 Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
+
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite.c
+ (__finitef128): Define to __redirect___finitef128.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf.c
+ (__isinff128): Define to __redirect___isinff128.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan.c
+ (__isnanf128): Define to __redirect___isnanf128.
+
+2017-09-21 Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
+
+ * sysdeps/powerpc/powerpc64le/Makefile
+ (CFLAGS-tst-strtod-nan-locale.c): New variable.
+ (CFLAGS-tst-wcstod-nan-locale.c): New variable.
+
+2017-09-21 Paul Pluzhnikov <ppluzhnikov@google.com>
+ Carlos O'Donell <carlos@redhat.com>
+
+ [BZ #22180]
+ * stdlib/Makefile (tests): Add test-dlclose-exit-race.
+ * stdlib/test-dlclose-exit-race.c: New file.
+ * stdlib/test-dlclose-exit-race-helper.c: New file.
+ * stdlib/exit.c (__run_exit_handlers): Mark slot as free.
+
+2017-09-21 Joseph Myers <joseph@codesourcery.com>
+
+ * crypt/Banner: Remove file.
+ * nptl/Banner: Likewise.
+ * resolv/Banner: Likewise.
+ * soft-fp/Banner: Likewise.
+ * nptl/Makefile ($(objpfx)banner.h): Remove rule.
+ ($(objpfx)version.d): Remove dependency on banner.h.
+ ($(objpfx)version.os): Likewise.
+ * nptl/version.c (banner): Do not include banner.h.
+ * manual/contrib.texi: Update entries for Richard Henderson, Jakub
+ Jelinek and BIND code.
+
+2017-09-20 Paul Pluzhnikov <ppluzhnikov@google.com>
+ Carlos O'Donell <carlos@redhat.com>
+
+ * support/xdlfcn.h: New file.
+ * support/xdlfcn.c: New file.
+ * support/Makefile (libsupport-routines): Add xdlfcn.
+ * stdlib/tst-tls-atexit.c: Use xdlopen, xdlsym, xdlclose.
+
+2017-09-20 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #20142]
+ * sysdeps/x86_64/fpu/multiarch/Makefile (libm-sysdep_routines):
+ Add s_trunc-c, s_truncf-c, s_trunc-sse4_1 and s_truncf-sse4_1.
+ * sysdeps/x86_64/fpu/multiarch/s_trunc-c.c: New file.
+ * sysdeps/x86_64/fpu/multiarch/s_trunc-sse4_1.S: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/s_trunc.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/s_truncf-c.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/s_truncf-sse4_1.S: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/s_truncf.c: Likewise.
+
+2017-09-20 Paul Pluzhnikov <ppluzhnikov@google.com>
+ Ricky Zhou <rickyz@google.com>
+ Anoop V Chakkalakkal <anoop.vijayan@in.ibm.com>
+
+ [BZ #14333]
+ * stdlib/cxa_atexit.c (__internal_atexit): Use __exit_funcs_lock.
+ Remove atomics.
+ (__new_exitfn): Fail registration when we finished at_exit processing.
+ * stdlib/cxa_finalize.c (__cxa_finalize): Likewise.
+ * stdlib/on_exit.c (__on_exit): Likewise.
+ * stdlib/exit.c (__exit_funcs_done): New variable.
+ (__run_exit_handlers): Use __exit_funcs_lock.
+ * stdlib/exit.h (__exit_funcs_lock, __exit_funcs_done): New
+ declarations.
+ * stdlib/Makefile (test-atexit-race, test-quick_at_exit-race)
+ (test-cxa_atexit-race, test-on_exit-race): New tests.
+ * stdlib/test-atexit-race-common.c: New file.
+ * stdlib/test-atexit-race.c: New file.
+ * stdlib/test-at_quick_exit-race.c: New file.
+ * stdlib/test-cxa_atexit-race.c: New file.
+ * stdlib/test-on_exit-race.c: New file.
+
+2017-09-20 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * benchtests/Makefile: Add exp2f and log2f benchmarks.
+ * benchtests/exp2f-inputs: Copy of expf-inputs.
+ * benchtests/log2f-inputs: Copy of logf-inputs.
+
+2017-09-19 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/fexecve.c (fexecve) [__NR_execveat]:
+ Explicitly take address of first element of array arguments in
+ call to INLINE_SYSCALL.
+
+2017-09-19 Andreas Schwab <schwab@suse.de>
+
+ [BZ #22134]
+ * sysdeps/unix/sysv/linux/fexecve.c (fexecve) [__NR_execveat]: Try
+ execveat first.
+ [!__ASSUME_EXECVEAT]: Fall back to /proc if execveat is
+ unimplemented.
+ * sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_EXECVEAT)
+ [__LINUX_KERNEL_VERSION >= 0x031300]: Define.
+ * sysdeps/unix/sysv/linux/alpha/kernel-features.h
+ (__ASSUME_EXECVEAT) [__LINUX_KERNEL_VERSION < 0x040200]: Undef.
+ * sysdeps/unix/sysv/linux/hppa/kernel-features.h
+ (__ASSUME_EXECVEAT) [__LINUX_KERNEL_VERSION < 0x040000]: Undef.
+ * sysdeps/unix/sysv/linux/microblaze/kernel-features.h
+ (__ASSUME_EXECVEAT) [__LINUX_KERNEL_VERSION < 0x040000]: Undef.
+ * posix/Makefile (tests): Add tst-fexecve.
+ * posix/tst-fexecve.c: New file.
+
+2017-09-19 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * benchtests/Makefile: Add logf benchmark.
+ * benchtests/logf-inputs: Add reduced trace from wrf_r.
+
+2017-09-19 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * benchtests/Makefile: Add expf benchmark.
+ * benchtests/expf-inputs: Add reduced trace from wrf_r.
+
+2017-09-19 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * csu/Makefile: Add -funwind-tables to libc-start.c.
+ * debug/Makefile: Add -funwind-tables to backtrace.c.
+ * sysdeps/aarch64/Makefile: Remove CFLAGS-backtrace.c.
+ * sysdeps/arm/Makefile: Likewise.
+ * sysdeps/i386/Makefile: Likewise.
+ * sysdeps/m68k/Makefile: Likewise.
+ * sysdeps/mips/Makefile: Likewise.
+ * sysdeps/nios2/Makefile: Likewise.
+ * sysdeps/sh/Makefile: Likewise.
+ * sysdeps/sparc/Makefile: Likewise.
+
+2017-09-19 Joseph Myers <joseph@codesourcery.com>
+
+ * benchtests/Makefile (bench-math): Add trunc and truncf.
+ (CFLAGS-bench-trunc.c): New variable.
+ (CFLAGS-bench-truncf.c): Likewise.
+ * benchtests/trunc-inputs: New file.
+ * benchtests/truncf-inputs: Likewise.
+
+2017-09-19 Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>
+
+ * sysdeps/powerpc/powerpc64/power8/memset.S: Avoid misaligned stores.
+
+2017-09-18 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/ieee754/ldbl-opt/w_exp10l_compat.c [LIBM_SVID_COMPAT &&
+ !LONG_DOUBLE_COMPAT (libm, GLIBC_2_1)] (weak_alias): Undefine and
+ redefine.
+ [LIBM_SVID_COMPAT && !LONG_DOUBLE_COMPAT (libm, GLIBC_2_1)]
+ (exp10l): Define as weak alias.
+ * sysdeps/ieee754/ldbl-opt/w_remainderl_compat.c [LIBM_SVID_COMPAT
+ && !LONG_DOUBLE_COMPAT (libm, GLIBC_2_0)] (weak_alias): Undefine
+ and redefine.
+ [LIBM_SVID_COMPAT && !LONG_DOUBLE_COMPAT (libm, GLIBC_2_0)]
+ (remainderl): Define as weak alias.
+
+ * math/s_fmal.c: Include <libm-alias-ldouble.h>.
+ (fmal): Define using libm_alias_ldouble.
+ * math/w_acoshl_compat.c: Include <libm-alias-ldouble.h>.
+ (acoshl): Define using libm_alias_ldouble.
+ * math/w_acosl_compat.c: Include <libm-alias-ldouble.h>.
+ (acosl): Define using libm_alias_ldouble.
+ * math/w_asinl_compat.c: Include <libm-alias-ldouble.h>.
+ (asinl): Define using libm_alias_ldouble.
+ * math/w_atan2l_compat.c: Include <libm-alias-ldouble.h>.
+ (atan2l): Define using libm_alias_ldouble.
+ * math/w_atanhl_compat.c: Include <libm-alias-ldouble.h>.
+ (atanhl): Define using libm_alias_ldouble.
+ * math/w_coshl_compat.c: Include <libm-alias-ldouble.h>.
+ (coshl): Define using libm_alias_ldouble.
+ * math/w_exp10l_compat.c: Include <libm-alias-ldouble.h>.
+ (exp10l): Define using libm_alias_ldouble.
+ * math/w_exp2l_compat.c: Include <libm-alias-ldouble.h>.
+ (exp2l): Define using libm_alias_ldouble.
+ * math/w_expl_compat.c: Include <libm-alias-ldouble.h>.
+ (expl): Define using libm_alias_ldouble.
+ * math/w_fmodl_compat.c: Include <libm-alias-ldouble.h>.
+ (fmodl): Define using libm_alias_ldouble.
+ * math/w_hypotl_compat.c: Include <libm-alias-ldouble.h>.
+ (hypotl): Define using libm_alias_ldouble.
+ * math/w_j0l_compat.c: Include <libm-alias-ldouble.h>.
+ (j0l): Define using libm_alias_ldouble.
+ (y0l): Likewise.
+ * math/w_j1l_compat.c: Include <libm-alias-ldouble.h>.
+ (j1l): Define using libm_alias_ldouble.
+ (y1l): Likewise.
+ * math/w_jnl_compat.c: Include <libm-alias-ldouble.h>.
+ (jnl): Define using libm_alias_ldouble.
+ (ynl): Likewise.
+ * math/w_log10l_compat.c: Include <libm-alias-ldouble.h>.
+ (log10l): Define using libm_alias_ldouble.
+ * math/w_log2l_compat.c: Include <libm-alias-ldouble.h>.
+ (log2l): Define using libm_alias_ldouble.
+ * math/w_logl_compat.c: Include <libm-alias-ldouble.h>.
+ (logl): Define using libm_alias_ldouble.
+ * math/w_powl_compat.c: Include <libm-alias-ldouble.h>.
+ (powl): Define using libm_alias_ldouble.
+ * math/w_remainderl_compat.c: Include <libm-alias-ldouble.h>.
+ (remainderl): Define using libm_alias_ldouble.
+ * math/w_sinhl_compat.c: Include <libm-alias-ldouble.h>.
+ (sinhl): Define using libm_alias_ldouble.
+ * math/w_sqrtl_compat.c: Include <libm-alias-ldouble.h>.
+ (sqrtl): Define using libm_alias_ldouble.
+ * math/w_tgammal_compat.c: Include <libm-alias-ldouble.h>.
+ (tgammal): Define using libm_alias_ldouble.
+ * sysdeps/ieee754/ldbl-opt/w_exp10l_compat.c [LIBM_SVID_COMPAT]
+ (exp10l): Do not use long_double_symbol here.
+ * sysdeps/ieee754/ldbl-opt/w_remainderl_compat.c
+ [LIBM_SVID_COMPAT] (remainderl): Likewise.
+ * sysdeps/ieee754/ldbl-opt/s_fmal.c: Remove.
+ * sysdeps/ieee754/ldbl-opt/w_acoshl_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_acosl_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_asinl_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_atan2l_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_atanhl_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_coshl_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_expl_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_fmodl_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_hypotl_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_j0l_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_j1l_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_jnl_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_log10l_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_log2l_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_logl_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_powl_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_sinhl_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_sqrtl_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_tgammal_compat.c: Likewise.
+
+2017-09-18 Wang Boshi <wangboshi@huawei.com> (tiny change)
+
+ * sysdeps/aarch64/start.S: Use MOVL instead of literal pools.
+ * sysdeps/aarch64/sysdep.h (MOVL): Add MOVL macro.
+
+2017-09-17 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * io/read.c (read): Add libc_hidden_weak.
+ * sysdeps/mach/hurd/read.c (read): Likewise.
+ * io/write.c (write): Likewise.
+ * sysdeps/mach/hurd/write.c (write): Likewise.
+ * io/pread64.c (__pread64): Likewise.
+ * sysdeps/mach/hurd/pread64.c (__pread64): Likewise.
+ * posix/pread64.c (__pread64): Add libc_hidden_def.
+
+2017-09-16 Siddhesh Poyarekar <siddhesh@sourceware.org>
+
+ * benchtests/scripts/compare_strings.py: New option -g.
+ (draw_graph): Print a message that a graph is being generated.
+ (process_results): Generate graph only if -g is passed.
+ (main): Process option -g.
+
+ * benchtests/scripts/compare_strings.py (process_results):
+ Better spacing for output.
+
+ * benchtests/scripts/compare_strings.py: Use argparse.
+ * benchtests/README: Document existence of compare_strings.py.
+
+2017-09-15 Joseph Myers <joseph@codesourcery.com>
+
+ * math/s_fma.c: Include <libm-alias-double.h>.
+ (fma): Define using libm_alias_double.
+ * math/s_nextafter.c: Include <libm-alias-double.h>.
+ (nextafter): Define using libm_alias_double.
+ * math/w_acos_compat.c: Include <libm-alias-double.h>.
+ (acos): Define using libm_alias_double.
+ * math/w_acosh_compat.c: Include <libm-alias-double.h>.
+ (aocsh): Define using libm_alias_double.
+ * math/w_asin_compat.c: Include <libm-alias-double.h>.
+ (asin): Define using libm_alias_double.
+ * math/w_atan2_compat.c: Include <libm-alias-double.h>.
+ (atan2): Define using libm_alias_double.
+ * math/w_atanh_compat.c: Include <libm-alias-double.h>.
+ (atanh): Define using libm_alias_double.
+ * math/w_cosh_compat.c: Include <libm-alias-double.h>.
+ (cosh): Define using libm_alias_double.
+ * math/w_exp10_compat.c: Include <libm-alias-double.h>.
+ (exp10): Define using libm_alias_double.
+ * math/w_exp2_compat.c: Include <libm-alias-double.h>.
+ (exp2): Define using libm_alias_double.
+ * math/w_exp_compat.c: Include <libm-alias-double.h>.
+ (exp): Define using libm_alias_double.
+ * math/w_fmod_compat.c: Include <libm-alias-double.h>.
+ (fmod): Define using libm_alias_double.
+ * math/w_hypot_compat.c: Include <libm-alias-double.h>.
+ (hypot): Define using libm_alias_double.
+ * math/w_j0_compat.c: Include <libm-alias-double.h>.
+ (j0): Define using libm_alias_double.
+ (y0): Likewise.
+ * math/w_j1_compat.c: Include <libm-alias-double.h>.
+ (j1): Define using libm_alias_double.
+ (y1): Likewise.
+ * math/w_jn_compat.c: Include <libm-alias-double.h>.
+ (jn): Define using libm_alias_double.
+ (yn): Likewise.
+ * math/w_log10_compat.c: Include <libm-alias-double.h>.
+ (log10): Define using libm_alias_double.
+ * math/w_log2_compat.c: Include <libm-alias-double.h>.
+ (log2): Define using libm_alias_double.
+ * math/w_log_compat.c: Include <libm-alias-double.h>.
+ (log): Define using libm_alias_double.
+ * math/w_pow_compat.c: Include <libm-alias-double.h>.
+ (pow): Define using libm_alias_double.
+ * math/w_remainder_compat.c: Include <libm-alias-double.h>.
+ (remainder): Define using libm_alias_double.
+ * math/w_sinh_compat.c: Include <libm-alias-double.h>.
+ (sinh): Define using libm_alias_double.
+ * math/w_sqrt_compat.c: Include <libm-alias-double.h>.
+ (sqrt): Define using libm_alias_double.
+ * math/w_tgamma_compat.c: Include <libm-alias-double.h>.
+ (tgamma): Define using libm_alias_double.
+ * sysdeps/ieee754/ldbl-opt/s_nextafter.c [LONG_DOUBLE_COMPAT(libm,
+ GLIBC_2_0)] (nextafterl): Do not define compat symbol here.
+ * sysdeps/ieee754/ldbl-opt/w_exp10_compat.c
+ [LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)] (exp10l): Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_remainder_compat.c
+ [LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)] (remainderl): Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_acos_compat.c: Remove.
+ * sysdeps/ieee754/ldbl-opt/w_acosh_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_asin_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_atan2_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_atanh_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_cosh_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_exp_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_fmod_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_hypot_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_j0_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_j1_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_jn_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_log10_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_log2_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_log_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_pow_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_sinh_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_sqrt_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_tgamma_compat.c: Likewise.
+
+ * math/e_acoshl.c: Remove.
+ * math/e_acosl.c: Likewise.
+ * math/e_asinl.c: Likewise.
+ * math/e_atan2l.c: Likewise.
+ * math/e_atanhl.c: Likewise.
+ * math/e_coshl.c: Likewise.
+ * math/e_expl.c: Likewise.
+ * math/e_fmodl.c: Likewise.
+ * math/e_gammal_r.c: Likewise.
+ * math/e_hypotl.c: Likewise.
+ * math/e_j0l.c: Likewise.
+ * math/e_j1l.c: Likewise.
+ * math/e_jnl.c: Likewise.
+ * math/e_lgammal_r.c: Likewise.
+ * math/e_log10l.c: Likewise.
+ * math/e_log2l.c: Likewise.
+ * math/e_logl.c: Likewise.
+ * math/e_powl.c: Likewise.
+ * math/e_rem_pio2l.c: Likewise.
+ * math/e_sinhl.c: Likewise.
+ * math/e_sqrtf128.c: Likewise.
+ * math/e_sqrtl.c: Likewise.
+ * math/k_cosl.c: Likewise.
+ * math/k_sinl.c: Likewise.
+ * math/k_tanl.c: Likewise.
+ * math/s_asinhl.c: Likewise.
+ * math/s_atanl.c: Likewise.
+ * math/s_cbrtl.c: Likewise.
+ * math/s_erfl.c: Likewise.
+ * math/s_expm1l.c: Likewise.
+ * math/s_log1pl.c: Likewise.
+ * math/s_tanhl.c: Likewise.
+
+2017-09-15 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
+
+ [BZ #21745]
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile:
+ [$(subdir) = math] (sysdep_calls): New variable. Has the
+ previous contents of sysdep_routines, but re-sorted..
+ [$(subdir) = math] (sysdep_routines): Re-use the contents from
+ sysdep_calls.
+ [$(subdir) = math] (libm-sysdep_routines): Remove the functions
+ defined in sysdep_calls and replace by the respective m_* names.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-ppc64.S:
+ (compat_symbol): Undefine to avoid duplicated compat symbols in
+ libc.
+
+2017-09-15 Joseph Myers <joseph@codesourcery.com>
+
+ * math/s_fmaf.c: Include <libm-alias-float.h>.
+ (fmaf): Define using libm_alias_float.
+ * math/w_acosf_compat.c: Include <libm-alias-float.h>.
+ (acosf): Define using libm_alias_float.
+ * math/w_acoshf_compat.c: Include <libm-alias-float.h>.
+ (acoshf): Define using libm_alias_float.
+ * math/w_asinf_compat.c: Include <libm-alias-float.h>.
+ (asinf): Define using libm_alias_float.
+ * math/w_atan2f_compat.c: Include <libm-alias-float.h>.
+ (atan2f): Define using libm_alias_float.
+ * math/w_atanhf_compat.c: Include <libm-alias-float.h>.
+ (atanhf): Define using libm_alias_float.
+ * math/w_coshf_compat.c: Include <libm-alias-float.h>.
+ (coshf): Define using libm_alias_float.
+ * math/w_exp10f_compat.c: Include <libm-alias-float.h>.
+ (exp10f): Define using libm_alias_float.
+ * math/w_fmodf_compat.c: Include <libm-alias-float.h>.
+ (fmodf): Define using libm_alias_float.
+ * math/w_hypotf_compat.c: Include <libm-alias-float.h>.
+ (hypotf): Define using libm_alias_float.
+ * math/w_j0f_compat.c: Include <libm-alias-float.h>.
+ (j0f): Define using libm_alias_float.
+ (y0f): Likewise.
+ * math/w_j1f_compat.c: Include <libm-alias-float.h>.
+ (j1f): Define using libm_alias_float.
+ (y1f): Likewise.
+ * math/w_jnf_compat.c: Include <libm-alias-float.h>.
+ (jnf): Define using libm_alias_float.
+ (ynf): Likewise.
+ * math/w_log10f_compat.c: Include <libm-alias-float.h>.
+ (log10f): Define using libm_alias_float.
+ * math/w_log2f_compat.c: Include <libm-alias-float.h>.
+ (log2f): Define using libm_alias_float.
+ * math/w_logf_compat.c: Include <libm-alias-float.h>.
+ (logf): Define using libm_alias_float.
+ * math/w_powf_compat.c: Include <libm-alias-float.h>.
+ (powf): Define using libm_alias_float.
+ * math/w_remainderf_compat.c: Include <libm-alias-float.h>.
+ (remainderf): Define using libm_alias_float.
+ * math/w_sinhf_compat.c: Include <libm-alias-float.h>.
+ (sinhf): Define using libm_alias_float.
+ * math/w_sqrtf_compat.c: Include <libm-alias-float.h>.
+ (sqrtf): Define using libm_alias_float.
+ * math/w_tgammaf_compat.c: Include <libm-alias-float.h>.
+ (tgammaf): Define using libm_alias_float.
+
+2017-09-14 Joseph Myers <joseph@codesourcery.com>
+
+ * include/math.h (roundeven): Change hidden_proto call to
+ __roundeven.
+ * math/w_j0_compat.c (j0): Rename to __j0 and define as weak
+ alias.
+ [NO_LONG_DOUBLE] (__j0l): New strong alias.
+ (y0): Rename to __y0 and define as weak alias.
+ [NO_LONG_DOUBLE] (__y0l): New strong alias.
+ * math/w_j0f_compat.c (j0f): Rename to __j0f and define as weak
+ alias.
+ (y0f): Rename to __y0f and define as weak alias.
+ * math/w_j1_compat.c (j1): Rename to __j1 and define as weak
+ alias.
+ [NO_LONG_DOUBLE] (__j1l): New strong alias.
+ (y1): Rename to __y1 and define as weak alias.
+ [NO_LONG_DOUBLE] (__y1l): New strong alias.
+ * math/w_j1f_compat.c (j1f): Rename to __j1f and define as weak
+ alias.
+ (y1f): Rename to __y1f and define as weak alias.
+ * math/w_jn_compat.c (jn): Rename to __jn and define as weak
+ alias.
+ [NO_LONG_DOUBLE] (__jnl): New strong alias.
+ (yn): Rename to __yn and define as weak alias.
+ [NO_LONG_DOUBLE] (__ynl): New strong alias.
+ * math/w_jnf_compat.c (jnf): Rename to __jnf and define as weak
+ alias.
+ (ynf): Rename to __ynf and define as weak alias.
+ * sysdeps/ieee754/dbl-64/s_fromfp.c (FUNC): Define to __fromfp.
+ (fromfp): Define as weak alias.
+ [NO_LONG_DOUBLE] (__fromfpl): New strong alias.
+ * sysdeps/ieee754/dbl-64/s_fromfpx.c (FUNC): Define to __fromfpx.
+ (fromfpx): Define as weak alias.
+ [NO_LONG_DOUBLE] (__fromfpxl): New strong alias.
+ * sysdeps/ieee754/dbl-64/s_getpayload.c (getpayload): Rename to
+ __getpayload and define as weak alias.
+ [NO_LONG_DOUBLE] (__getpayloadl): New strong alias.
+ * sysdeps/ieee754/dbl-64/s_roundeven.c (roundeven): Rename to
+ __roundeven and define as weak alias.
+ [NO_LONG_DOUBLE] (__roundevenl): New strong alias.
+ * sysdeps/ieee754/dbl-64/s_setpayload.c (FUNC): Define to
+ __setpayload.
+ (setpayload): Define as weak alias.
+ [NO_LONG_DOUBLE] (__setpayloadl): New strong alias.
+ * sysdeps/ieee754/dbl-64/s_setpayloadsig.c (FUNC): Define to
+ __setpayloadsig.
+ (setpayloadsig): Define as weak alias.
+ [NO_LONG_DOUBLE] (__setpayloadsigl): New strong alias.
+ * sysdeps/ieee754/dbl-64/s_totalorder.c (totalorder): Rename to
+ __totalorder and define as weak alias.
+ [NO_LONG_DOUBLE] (__totalorderl): New strong alias.
+ * sysdeps/ieee754/dbl-64/s_totalordermag.c (totalordermag): Rename
+ to __totalordermag and define as weak alias.
+ [NO_LONG_DOUBLE] (__totalordermagl): New strong alias.
+ * sysdeps/ieee754/dbl-64/s_ufromfp.c (FUNC): Define to __ufromfp.
+ (ufromfp): Define as weak alias.
+ [NO_LONG_DOUBLE] (__ufromfpl): New strong alias.
+ * sysdeps/ieee754/dbl-64/s_ufromfpx.c (FUNC): Define to
+ __ufromfpx.
+ (ufromfpx): Define as weak alias.
+ [NO_LONG_DOUBLE] (__ufromfpxl): New strong alias.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_getpayload.c (getpayload):
+ Rename to __getpayload and define as weak alias.
+ [NO_LONG_DOUBLE] (__getpayloadl): New strong alias.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_roundeven.c (roundeven):
+ Rename to __roundeven and define as weak alias.
+ [NO_LONG_DOUBLE] (__roundevenl): New strong alias.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_totalorder.c (totalorder):
+ Rename to __totalorder and define as weak alias.
+ [NO_LONG_DOUBLE] (__totalorderl): New strong alias.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_totalordermag.c
+ (totalordermag): Rename to __totalordermag and define as weak
+ alias.
+ [NO_LONG_DOUBLE] (__totalordermagl): New strong alias.
+ * sysdeps/ieee754/float128/float128_private.h (__getpayloadl): New
+ macro.
+ (__roundevenl): Likewise.
+ (__totalorderl): Likewise.
+ (__totalordermagl): Likewise
+ * sysdeps/ieee754/float128/s_fromfpf128.c (FUNC): Define to
+ __fromfpf128.
+ (fromfpf128): Define as weak alias.
+ * sysdeps/ieee754/float128/s_fromfpxf128.c (FUNC): Define to
+ __fromfpxf128.
+ (fromfpxf128): Define as weak alias.
+ * sysdeps/ieee754/float128/s_setpayloadf128.c (FUNC): Define to
+ __setpayloadf128.
+ (setpayloadf128): Define as weak alias.
+ * sysdeps/ieee754/float128/s_setpayloadsigf128.c (FUNC): Define to
+ __setpayloadsigf128.
+ (setpayloadsigf128): Define as weak alias.
+ * sysdeps/ieee754/float128/s_ufromfpf128.c (FUNC): Define to
+ __ufromfpf128.
+ (ufromfpf128): Define as weak alias.
+ * sysdeps/ieee754/float128/s_ufromfpxf128.c (FUNC): Define to
+ __ufromfpxf128.
+ (ufromfpxf128): Define as weak alias.
+ * sysdeps/ieee754/flt-32/s_fromfpf.c (FUNC): Define to __fromfpf.
+ (fromfpf): Define as weak alias.
+ * sysdeps/ieee754/flt-32/s_fromfpxf.c (FUNC): Define to
+ __fromfpxf.
+ (fromfpxf): Define as weak alias.
+ * sysdeps/ieee754/flt-32/s_getpayloadf.c (getpayloadf): Rename to
+ __getpayloadf and define as weak alias.
+ * sysdeps/ieee754/flt-32/s_roundevenf.c (roundevenf): Rename to
+ __roundevenf and define as weak alias.
+ * sysdeps/ieee754/flt-32/s_setpayloadf.c (FUNC): Define to
+ __setpayloadf.
+ (setpayloadf): Define as weak alias.
+ * sysdeps/ieee754/flt-32/s_setpayloadsigf.c (FUNC): Define to
+ __setpayloadsigf.
+ (setpayloadsigf): Define as weak alias.
+ * sysdeps/ieee754/flt-32/s_totalorderf.c (totalorderf): Rename to
+ __totalorderf and define as weak alias.
+ * sysdeps/ieee754/flt-32/s_totalordermagf.c (totalordermagf):
+ Rename to __totalordermagf and define as weak alias.
+ * sysdeps/ieee754/flt-32/s_ufromfpf.c (FUNC): Define to
+ __ufromfpf.
+ (ufromfpf): Define as weak alias.
+ * sysdeps/ieee754/flt-32/s_ufromfpxf.c (FUNC): Define to
+ __ufromfpxf.
+ (ufromfpxf): Define as weak alias.
+ * sysdeps/ieee754/ldbl-128/s_fromfpl.c (FUNC): Define to
+ __fromfpl.
+ (fromfpl): Define as weak alias.
+ * sysdeps/ieee754/ldbl-128/s_fromfpxl.c (FUNC): Define to
+ __fromfpxl.
+ (fromfpxl): Define as weak alias.
+ * sysdeps/ieee754/ldbl-128/s_getpayloadl.c (getpayloadl): Rename
+ to __getpayloadl and define as weak alias.
+ * sysdeps/ieee754/ldbl-128/s_roundevenl.c (roundevenl): Rename to
+ __roundevenl and define as weak alias.
+ * sysdeps/ieee754/ldbl-128/s_setpayloadl.c (FUNC): Define to
+ __setpayloadl.
+ (setpayloadl): Define as weak alias.
+ * sysdeps/ieee754/ldbl-128/s_setpayloadsigl.c (FUNC): Define to
+ __setpayloadsigl.
+ (setpayloadsigl): Define as weak alias.
+ * sysdeps/ieee754/ldbl-128/s_totalorderl.c (totalorderl): Rename
+ to __totalorderl and define as weak alias.
+ * sysdeps/ieee754/ldbl-128/s_totalordermagl.c (totalordermagl):
+ Rename to __totalordermagl and define as weak alias.
+ * sysdeps/ieee754/ldbl-128/s_ufromfpl.c (FUNC): Define to
+ __ufromfpl.
+ (ufromfpl): Define as weak alias.
+ * sysdeps/ieee754/ldbl-128/s_ufromfpxl.c (FUNC): Define to
+ __ufromfpxl.
+ (ufromfpxl): Define as weak alias.
+ * sysdeps/ieee754/ldbl-128ibm/s_fromfpl.c (FUNC): Define to
+ __fromfpl.
+ (fromfpl): Define as weak alias.
+ * sysdeps/ieee754/ldbl-128ibm/s_fromfpxl.c (FUNC): Define to
+ __fromfpxl.
+ (fromfpxl): Define as weak alias.
+ * sysdeps/ieee754/ldbl-128ibm/s_getpayloadl.c (getpayloadl):
+ Rename to __getpayloadl and define as weak alias.
+ * sysdeps/ieee754/ldbl-128ibm/s_roundevenl.c (roundevenl): Rename
+ to __roundevenl and define as weak alias. Call __roundeven
+ instead of roundeven.
+ * sysdeps/ieee754/ldbl-128ibm/s_setpayloadl.c (FUNC): Define to
+ __setpayloadl.
+ (setpayloadl): Define as weak alias.
+ * sysdeps/ieee754/ldbl-128ibm/s_setpayloadsigl.c (FUNC): Define to
+ __setpayloadsigl.
+ (setpayloadsigl): Define as weak alias.
+ * sysdeps/ieee754/ldbl-128ibm/s_totalorderl.c (totalorderl):
+ Rename to __totalorderl and define as weak alias.
+ * sysdeps/ieee754/ldbl-128ibm/s_totalordermagl.c (totalordermagl):
+ Rename to __totalordermagl and define as weak alias.
+ * sysdeps/ieee754/ldbl-128ibm/s_ufromfpl.c (FUNC): Define to
+ __ufromfpl.
+ (ufromfpl): Define as weak alias.
+ * sysdeps/ieee754/ldbl-128ibm/s_ufromfpxl.c (FUNC): Define to
+ __ufromfpxl.
+ (ufromfpxl): Define as weak alias.
+ * sysdeps/ieee754/ldbl-96/s_fromfpl.c (FUNC): Define to
+ __fromfpl.
+ (fromfpl): Define as weak alias.
+ * sysdeps/ieee754/ldbl-96/s_fromfpxl.c (FUNC): Define to
+ __fromfpxl.
+ (fromfpxl): Define as weak alias.
+ * sysdeps/ieee754/ldbl-96/s_getpayloadl.c (getpayloadl): Rename to
+ __getpayloadl and define as weak alias.
+ * sysdeps/ieee754/ldbl-96/s_roundevenl.c (roundevenl): Rename to
+ __roundevenl and define as weak alias.
+ * sysdeps/ieee754/ldbl-96/s_setpayloadl.c (FUNC): Define to
+ __setpayloadl.
+ (setpayloadl): Define as weak alias.
+ * sysdeps/ieee754/ldbl-96/s_setpayloadsigl.c (FUNC): Define to
+ __setpayloadsigl.
+ (setpayloadsigl): Define as weak alias.
+ * sysdeps/ieee754/ldbl-96/s_totalorderl.c (totalorderl): Rename to
+ __totalorderl and define as weak alias.
+ * sysdeps/ieee754/ldbl-96/s_totalordermagl.c (totalordermagl):
+ Rename to __totalordermagl and define as weak alias.
+ * sysdeps/ieee754/ldbl-96/s_ufromfpl.c (FUNC): Define to
+ __ufromfpl.
+ (ufromfpl): Define as weak alias.
+ * sysdeps/ieee754/ldbl-96/s_ufromfpxl.c (FUNC): Define to
+ __ufromfpxl.
+ (ufromfpxl): Define as weak alias.
+
+2017-09-14 Siddhesh Poyarekar <siddhesh@sourceware.org>
+
+ * benchtests/bench-string.h (realloc_bufs): New function.
+ (test_init): Call it.
+ * benchtests/bench-memset-large.c (do_test): Likewise.
+ * benchtests/bench-memset.c (do_test): Likewise.
+
+ * benchtests/bench-memset-large.c: Print output in JSON
+ format.
+ * benchtests/bench-memset.c: Likewise.
+
+2017-09-14 Mike FABIAN <mfabian@redhat.com>
+
+ [BZ #21084]
+ * benchtests/strcoll-inputs/filelist#en_US.UTF-8: Add IBM858 and ibm858.c.
+ * iconvdata/Makefile: Add IBM858.
+ * iconvdata/gconv-modules: Likewise.
+ * iconvdata/tst-tables.sh: Likewise.
+ * iconvdata/ibm858.c: New file.
+ * localedata/charmaps/IBM858: Likewise.
+
+2017-09-14 Akhilesh Kumar <akhilesh.k@samsung.com>
+
+ [BZ #22023]
+ * locales/niu_NZ (LC_TIME): copy "niu_NU".
+ * locales/niu_NZ (LC_MESSAGES): copy "niu_NU".
+
+2017-09-14 Mike FABIAN <mfabian@redhat.com>
+
+ [BZ #22112]
+ * localedata/locales/az_AZ(LC_TELEPHONE): Fix int_select
+ and add tel_int_fmt.
+
+2017-09-14 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/generic/libm-alias-float128.h: New file.
+ * sysdeps/generic/math-type-macros-float128.h: Include
+ <libm-alias-float128.h>.
+ [!declare_mgen_alias] (declare_mgen_alias): Define macro.
+
+2017-09-13 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/generic/libm-alias-ldouble.h: New file.
+ * sysdeps/ieee754/ldbl-opt/libm-alias-ldouble.h: Likewise.
+ * sysdeps/ieee754/ldbl-opt/math-type-macros-ldouble.h: Remove.
+ * sysdeps/generic/math-type-macros-ldouble.h: Include
+ <libm-alias-ldouble.h>.
+ [!declare_mgen_alias] (declare_mgen_alias): Define to use
+ libm_alias_ldouble.
+
+2017-09-13 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * sysdeps/ieee754/dbl-64/w_exp_compat.c: Move to...
+ * math/w_exp_compat.c: ... here.
+ * sysdeps/ieee754/flt-32/w_expf_compat.c: Move to...
+ * math/w_expf_compat.c: ... here.
+ * sysdeps/ieee754/ldbl-128/w_expl_compat.c: Move to...
+ * math/w_expl_compat.c: ... here.
+ * sysdeps/ieee754/ldbl-128ibm/w_expl_compat.c: Remove.
+ * sysdeps/ieee754/ldbl-96/w_expl_compat.c: Remove.
+ * sysdeps/ieee754/ldbl-opt/w_exp_compat.c: Use the new path.
+ * sysdeps/ieee754/ldbl-opt/w_expl_compat.c: Likewise.
+
+2017-09-13 Joseph Myers <joseph@codesourcery.com>
+
+ * math/w_scalbln_template.c (strong_alias): Do not undefine and
+ redefine.
+ * sysdeps/ieee754/ldbl-opt/s_ldexp.c (declare_mgen_alias): Remove
+ macro.
+ (ldexpl): Only define as compat symbol for libc, not libm.
+ (scalbnl): Define as compat symbol for libc here.
+ * sysdeps/ieee754/ldbl-opt/s_ldexpl.c (declare_mgen_alias): Only
+ define for [IS_IN (libc)].
+ (__ldexpl_2): Remove alias.
+ (ldexpl): Only define with long_double_symbol if [IS_IN (libc)].
+ (scalbnl): Likewise. Use __wrap_scalbnl not __ldexpl_2 as base
+ name in long_double_symbol call.
+ * sysdeps/ieee754/ldbl-opt/s_log1p.c: Remove file.
+ * sysdeps/ieee754/ldbl-opt/s_scalbln.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/s_scalbn.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_log1p.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_scalbln.c (declare_mgen_alias):
+ Remove macro.
+ [IS_IN (libc) && LONG_DOUBLE_COMPAT (libc, GLIBC_2_1)] (scalblnl):
+ Define as compat symbol.
+
+2017-09-13 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/unix/sysv/linux/s390/s390-32/oldglob.c: New file.
+ * sysdeps/unix/sysv/linux/alpha/Makefile
+ [$(subdir) = csu] (sysdep_routines): Remove rule.
+
+2017-09-13 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/generic/libm-alias-double.h: New file.
+ * sysdeps/ieee754/ldbl-opt/libm-alias-double.h: Likewise.
+ * sysdeps/generic/math-type-macros-double.h: Include
+ <libm-alias-double.h>.
+ [declare_mgen_alias] (declare_mgen_alias): Define to use
+ libm_alias_double.
+ * sysdeps/generic/math-type-macros.h [!M_LIBM_NEED_COMPAT]
+ (M_LIBM_NEED_COMPAT): Remove macro.
+ [!M_LIBM_NEED_COMPAT] (declare_mgen_libm_compat): Likewise.
+ * sysdeps/ieee754/ldbl-opt/math-type-macros-double.h: Remove.
+ * math/cabs_template.c [M_LIBM_NEED_COMPAT]: Remove conditional
+ code.
+ * math/carg_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+ * math/cimag_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+ * math/conj_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+ * math/creal_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+ * math/s_cacos_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+ * math/s_cacosh_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+ * math/s_casin_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+ * math/s_casinh_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+ * math/s_catan_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+ * math/s_catanh_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+ * math/s_ccos_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+ * math/s_ccosh_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+ * math/s_cexp_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+ * math/s_clog10_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+ * math/s_clog_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+ * math/s_cpow_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+ * math/s_cproj_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+ * math/s_csin_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+ * math/s_csinh_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+ * math/s_csqrt_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+ * math/s_ctan_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+ * math/s_ctanh_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+ * math/s_fdim_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+ * math/s_fmax_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+ * math/s_fmin_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+ * math/s_nan_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+ * math/w_ilogb_template.c [M_LIBM_NEED_COMPAT]: Likewise.
+ * sysdeps/ieee754/ldbl-opt/s_clog10.c: New file.
+ * sysdeps/ieee754/ldbl-opt/s_ldexp.c (M_LIBM_NEED_COMPAT): Remove
+ macro.
+ (declare_mgen_alias): New macro.
+ * sysdeps/ieee754/ldbl-opt/w_log1p.c: New file.
+ * sysdeps/ieee754/ldbl-opt/w_scalbln.c: Likewise.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim-vis3.c
+ (M_LIBM_NEED_COMPAT): Remove macro.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.c
+ [HAVE_AS_VIS3_SUPPORT]: Include <math_ldbl_opt.h> and
+ <first-versions.h>.
+ [HAVE_AS_VIS3_SUPPORT && LONG_DOUBLE_COMPAT (libm,
+ FIRST_VERSION_libm_fdiml)]: Define fdiml as compat symbol.
+
+2017-09-12 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/generic/math-type-macros.h [!declare_mgen_alias_2]
+ (declare_mgen_alias_2): Remove.
+ * sysdeps/generic/math-type-macros-double.h
+ [NO_LONG_DOUBLE && !declare_mgen_alias_2] (declare_mgen_alias_2):
+ Likewise.
+ * math/s_ldexp_template.c (M_SUF (__wrap_scalbn)): Define strong
+ alias.
+ (ldexp): Define with declare_mgen_alias.
+ (scalbn): Likewise.
+
+2017-09-12 Steve Ellcey <sellcey@cavium.com>
+
+ * grp/initgroups.c: Include config.h.
+ (DEFAULT_CONFIG): New macro.
+ (internal_getgrouplist): Use DEFAULT_CONFIG.
+ * nscd/initgrcache.c (addinitgroupsX): Likewise.
+ * nss/nsswitch.c (__nss_disable_nscd): Likewise.
+ (DEFAULT_DEFCONFIG): New macro.
+ (__nss_database_lookup): Use DEFAULT_DEFCONFIG.
+ * nss/grp-lookup.c: Include config.h
+ (DEFAULT_CONFIG): Set definition based on LINK_OBSOLETE_NSL.
+ * nss/pwd-lookup.c (DEFAULT_CONFIG): Likewise.
+ * nss/spwd-lookup.c (DEFAULT_CONFIG): Likewise.
+ * manual/nss.texi: Update default values section.
+
+2017-09-12 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #21967]
+ * sysdeps/x86/cpu-features.h (bit_arch_MathVec_Prefer_No_AVX512):
+ New.
+ (index_arch_MathVec_Prefer_No_AVX512): Likewise.
+ * sysdeps/x86/cpu-tunables.c (TUNABLE_CALLBACK (set_hwcaps)):
+ Handle MathVec_Prefer_No_AVX512.
+ * sysdeps/x86_64/fpu/multiarch/ifunc-mathvec-avx512.h
+ (IFUNC_SELECTOR): Return AVX2 version if MathVec_Prefer_No_AVX512
+ is set.
+
+2017-09-12 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * posix/sched_primax.c (__sched_get_priority_max): Add
+ libc_hidden_def.
+ * posix/sched_primin.c (__sched_get_priority_min): Likewise.
+ * sysdeps/mach/hurd/mmap.c (__mmap): Likewise.
+ * sysdeps/mach/hurd/mmap64.c (__mmap64): Likewise.
+ * sysdeps/mach/hurd/mprotect.c (__mprotect): Likewise.
+ * sysdeps/mach/hurd/munmap.c (__munmap): Likewise.
+ * sysdeps/mach/hurd/dl-sysdep.c (__GI___getpid,
+ __GI___strtoul_internal, __GI_____strtoul_internal, __GI___chk_fail,
+ __GI___fortify_fail, __GI___assert_fail, __GI___assert_perror_fail):
+ Add aliases.
+
+2017-09-11 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/generic/libm-alias-float.h: New file.
+ * sysdeps/generic/math-type-macros-float.h: Include
+ <libm-alias-float.h>.
+ [!declare_mgen_alias] (declare_mgen_alias): Define macro.
+
+2017-09-11 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #22093]
+ * sysdeps/x86/cpu-features.c (init_cpu_features): Initialize
+ GLRO(dl_hwcap) to HWCAP_X86_64 for x86-64.
+ * sysdeps/x86/dl-hwcap.h (HWCAP_COUNT): Updated.
+ (HWCAP_IMPORTANT): Likewise.
+ (HWCAP_X86_64): New enum.
+ (HWCAP_X86_AVX512_1): Updated.
+ * sysdeps/x86/dl-procinfo.c (_dl_x86_hwcap_flags): Add "x86_64".
+ * sysdeps/x86_64/Makefile (tests): Add tst-x86_64-1.
+ (modules-names): Add x86_64/tst-x86_64mod-1.
+ (LDFLAGS-tst-x86_64mod-1.so): New.
+ ($(objpfx)tst-x86_64-1): Likewise.
+ ($(objpfx)x86_64/tst-x86_64mod-1.os): Likewise.
+ (tst-x86_64-1-clean): Likewise.
+ * sysdeps/x86_64/tst-x86_64-1.c: New file.
+ * sysdeps/x86_64/tst-x86_64mod-1.c: Likewise.
+
+2017-09-11 Siddhesh Poyarekar <siddhesh@sourceware.org>
+
+ * po/sv.po: Update translations.
+ * po/fr.po: Likewise.
+
+2017-09-10 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * sunrpc/tst-udp-timeout.c (test_udp_server): Increase timeout to 2.5
+ seconds.
+ * sunrpc/tst-udp-nonblocking.c (do_test): Increase timeout to 0.75
+ seconds.
+ * elf/rtld-Rules: Fix $(error) use.
+
+2017-09-09 Mike FABIAN <mfabian@redhat.com>
+
+ [BZ #14925]
+ * libio/tst-widetext.input: Change “Bengali†to “Banglaâ€.
+ * locale/iso-639.def: Change “Bengali†to “Banglaâ€.
+ * localedata/locales/bn_BD: “Bengali†was still used in some
+ comments. Change it to “Banglaâ€.
+
+2017-09-08 Markus Trippelsdorf <markus@trippelsdorf.de>
+
+ * sysdeps/x86_64/fpu/libm-test-ulps: Update for AMD Ryzen.
+
+2017-09-08 Steve Ellcey <sellcey@cavium.com>
+
+ * manual/tunables.texi (glibc.tune.cpu): Add thunderx2t99 and
+ thunderx2t99p1 to list of cpu names.
+ * sysdeps/unix/sysv/linux/aarch64/cpu-features.c (cpu_list):
+ Add thunderx2t99 and thunderx2t99p1 entries to cpu_list.
+
+2017-09-08 Steve Ellcey <sellcey@cavium.com>
+
+ * sysdeps/unix/sysv/linux/aarch64/cpu-features.c (get_midr_from_mcpu):
+ Use strcmp instead of tunable_is_name.
+
+2017-09-08 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/bits/fcntl-linux.h [__USE_GNU]
+ (F_GET_RW_HINT): New macro.
+ [__USE_GNU] (F_SET_RW_HINT): Likewise.
+ [__USE_GNU] (F_GET_FILE_RW_HINT): Likewise.
+ [__USE_GNU] (F_SET_FILE_RW_HINT): Likewise.
+ [__USE_GNU] (RWF_WRITE_LIFE_NOT_SET): Likewise.
+ [__USE_GNU] (RWH_WRITE_LIFE_NONE): Likewise.
+ [__USE_GNU] (RWH_WRITE_LIFE_SHORT): Likewise.
+ [__USE_GNU] (RWH_WRITE_LIFE_MEDIUM): Likewise.
+ [__USE_GNU] (RWH_WRITE_LIFE_LONG): Likewise.
+ [__USE_GNU] (RWH_WRITE_LIFE_EXTREME): Likewise.
+
+ * sysdeps/unix/sysv/linux/bits/fcntl-linux.h [__USE_GNU]
+ (F_ADD_SEALS): New macro.
+ [__USE_GNU] (F_GET_SEALS): Likewise.
+ [__USE_GNU] (F_SEAL_SEAL): Likewise.
+ [__USE_GNU] (F_SEAL_SHRINK): Likewise.
+ [__USE_GNU] (F_SEAL_GROW): Likewise.
+ [__USE_GNU] (F_SEAL_WRITE): Likewise.
+
+2017-09-08 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * posix/glob_internal.h (GLOBPAT_NONE, GLOBPAT_SPECIAL)
+ (GLOBPAT_BACKSLASH, GLOBPAT_BRACKET): New constants.
+ * posix/glob_internal.h (__glob_pattern_type):
+ * posix/glob.c (glob):
+ * posix/glob_pattern_p.c (__glob_pattern_p):
+ Use them.
+
+ * sysdeps/unix/sysv/linux/arm/glob64.c: Remove file.
+ * sysdeps/unix/sysv/linux/i386/glob64.c: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/glob64.c: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/n64/glob64.c: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/n64/globfree64.c: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/glob64.c: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/glob64.c: Likewise.
+ * sysdeps/unix/sysv/linux/wordsize-64/glob64.c: Likewise.
+ * sysdeps/unix/sysv/linux/wordsize-64/globfree64.c: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/x32/glob.c: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/x32/globfree.c: Likewise.
+ * sysdeps/wordsize-64/glob.c: Likewise.
+ * sysdeps/wordsize-64/glob64.c: Likewise.
+ * sysdeps/wordsize-64/globfree.c: Likewise.
+ * sysdeps/wordsize-64/globfree64.c: Likewise.
+ * sysdeps/unix/sysv/linux/glob.c: New file.
+ * sysdeps/unix/sysv/linux/glob64.c: Likewise.
+ * sysdeps/unix/sysv/linux/globfree.c: Likewise.
+ * sysdeps/unix/sysv/linux/globfree64.c: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/glob64.c: Likewise.
+ * sysdeps/unix/sysv/linux/oldglob.c [SHLIB_COMPAT]: Also
+ adds !GLOB_NO_OLD_VERSION as an extra condition.
+ * sysdeps/unix/sysv/linux/i386/alphasort64.c: Include olddirent.h
+ using relative path instead of absolute one.
+ * sysdeps/unix/sysv/linux/i386/getdents64.c: Likewise.
+ * sysdeps/unix/sysv/linux/i386/readdir64.c: Likewise.
+ * sysdeps/unix/sysv/linux/i386/readdir64_r.c: Likewise.
+ * sysdeps/unix/sysv/linux/i386/versionsort64.c: Likewise.
+ * sysdeps/unix/sysv/linux/i386/olddirent.h: Move to ...
+ * sysdeps/unix/sysv/linux//olddirent.h: ... here.
+
+ [BZ #1062]
+ * posix/glob.c (GET_LOGIN_NAME_MAX): Remove.
+ (glob): Use the same scratch buffer for both getlogin_r and
+ getpwnam_r. Don’t require preallocation of the login name. This
+ simplifies storage allocation, and corrects the handling of
+ long login names.
+
+ [BZ #1062]
+ * posix/glob.c (glob): Port recent patches to platforms
+ lacking getpwnam_r.
+ (glob): Fix longstanding misuse of errno after getpwnam_r, which
+ returns an error number rather than setting errno.
+
+ * include/scratch_buffer.h (scratch_buffer): Use a C99 align method
+ instead of GCC extension.
+ * malloc/scratch_buffer_grow.c [!_LIBC]: Include libc-config.h.
+ * malloc/scratch_buffer_grow_preserve.c [!_LIBC]: Likewise.
+ * malloc/scratch_buffer_set_array_size.c [!_LIBC]: Likewise.
+
+ [BZ #866]
+ [BZ #1062]
+ * posix/Makefile (tests): Remove bug-glob1 and tst-glob_symlinks.
+ * posix/bug-glob1.c: Remove file.
+ * posix/tst-glob_symlinks.c: New file.
+ * posix/glob.c (__lstat64): New macro.
+ (is_dir): New function.
+ (glob, glob_in_dir): Match symlinks even if they are dangling.
+ (link_stat, link_exists_p): Remove. All uses removed.
+
+ [BZ #1062]
+ [BZ #19971]
+ * posix/glob.c (struct readdir_result): Remove skip_entry member.
+ (readdir_result_skip_entry, D_INO_TO_RESULT): Remove.
+ All uses removed.
+
+ [BZ #1062]
+ CVE-2017-15671
+ * posix/Makefile (routines): Add globfree, globfree64, and
+ glob_pattern_p.
+ * posix/flexmember.h: New file.
+ * posix/glob_internal.h: Likewise.
+ * posix/glob_pattern_p.c: Likewise.
+ * posix/globfree.c: Likewise.
+ * posix/globfree64.c: Likewise.
+ * sysdeps/gnu/globfree64.c: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/globfree.c: Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/n64/globfree64.c: Likewise.
+ * sysdeps/unix/sysv/linux/oldglob.c: Likewise.
+ * sysdeps/unix/sysv/linux/wordsize-64/globfree64.c: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/x32/globfree.c: Likewise.
+ * sysdeps/wordsize-64/globfree.c: Likewise.
+ * sysdeps/wordsize-64/globfree64.c: Likewise.
+ * posix/glob.c (HAVE_CONFIG_H): Use !_LIBC instead.
+ [NDEBUG): Remove comments.
+ (GLOB_ONLY_P, _AMIGA, VMS): Remove define.
+ (dirent_type): New type. Use uint_fast8_t not
+ uint8_t, as C99 does not require uint8_t.
+ (DT_UNKNOWN, DT_DIR, DT_LNK): New macros.
+ (struct readdir_result): Use dirent_type. Do not define skip_entry
+ unless it is needed; this saves a byte on platforms lacking d_ino.
+ (readdir_result_type, readdir_result_skip_entry):
+ New functions, replacing ...
+ (readdir_result_might_be_symlink, readdir_result_might_be_dir):
+ these functions, which were removed. This makes the callers
+ easier to read. All callers changed.
+ (D_INO_TO_RESULT): Now empty if there is no d_ino.
+ (size_add_wrapv, glob_use_alloca): New static functions.
+ (glob, glob_in_dir): Check for size_t overflow in several places,
+ and fix some size_t checks that were not quite right.
+ Remove old code using SHELL since Bash no longer
+ uses this.
+ (glob, prefix_array): Separate MS code better.
+ (glob_in_dir): Remove old Amiga and VMS code.
+ (globfree, __glob_pattern_type, __glob_pattern_p): Move to
+ separate files.
+ (glob_in_dir): Do not rely on undefined behavior in accessing
+ struct members beyond their bounds. Use a flexible array member
+ instead
+ (link_stat): Rename from link_exists2_p and return -1/0 instead of
+ 0/1. Caller changed.
+ (glob): Fix memory leaks.
+ * posix/glob64 (globfree64): Move to separate file.
+ * sysdeps/gnu/glob64.c (NO_GLOB_PATTERN_P): Remove define.
+ (globfree64): Remove hidden alias.
+ * sysdeps/unix/sysv/linux/Makefile (sysdeps_routines): Add
+ oldglob.
+ * sysdeps/unix/sysv/linux/alpha/glob.c (__new_globfree): Move to
+ separate file.
+ * sysdeps/unix/sysv/linux/i386/glob64.c (NO_GLOB_PATTERN_P): Remove
+ define.
+ Move compat code to separate file.
+ * sysdeps/wordsize-64/glob.c (globfree): Move definitions to
+ separate file.
+
+2017-09-07 H.J. Lu <hongjiu.lu@intel.com>
+
+ * resolv/tst-resolv-qtypes.c (domain): Changed to
+ "const char domain[] =".
+
+2017-09-07 Joseph Myers <joseph@codesourcery.com>
+
+ * scripts/build-many-glibcs.py (Context.checkout): Default MPFR
+ version to 3.1.6.
+
+ * sysdeps/gnu/netinet/tcp.h (TCP_ULP): New macro.
+ (TCP_MD5SIG_EXT): Likewise.
+ (TCP_MD5SIG_FLAG_PREFIX): Likewise.
+ (struct tcp_md5sig): Replace __tcpm_pad1 by tcpm_flags and
+ tcpm_prefixlen. Rename __tcpm_pad2 to __tcpm_pad.
+
+ * sysdeps/unix/sysv/linux/bits/socket.h (SOL_TLS): New macro.
+
+2017-09-07 Mike FABIAN <mfabian@redhat.com>
+
+ * localedata/locales/om_ET (LC_TIME): use ASCII for better readability.
+
+2017-09-07 Akhilesh Kumar <akhilesh.k@samsung.com>
+
+ [BZ #22100]
+ * localedata/locales/om_KE (LC_TIME): copy "om_ET".
+
+2017-09-07 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * hurd/get-host.c (_hurd_get_host_config): Also check that more == 0
+ before assuming that the file is empty. Avoid testing buffer content
+ when nread == 0.
+
+2017-09-06 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ [BZ #18858]
+ * sysdeps/i386/i686/multiarch/strncpy.c (_HAVE_STRING_ARCH_strncpy):
+ Remove define.
+ * sysdeps/x86_64/multiarch/stpcpy.c (_HAVE_STRING_ARCH_stpcpy):
+ Likewise.
+ * sysdeps/x86_64/multiarch/strcspn.c (_HAVE_STRING_ARCH_strcspn):
+ Likewise.
+ * sysdeps/x86_64/multiarch/strncat.c (_HAVE_STRING_ARCH_strncat):
+ Likewise.
+ * sysdeps/x86_64/multiarch/strncpy.c (_HAVE_STRING_ARCH_strncpy):
+ Likewise.
+ * sysdeps/x86_64/multiarch/strpbrk.c (_HAVE_STRING_ARCH_strpbrk):
+ Likewise.
+ * sysdeps/x86_64/multiarch/strspn.c (_HAVE_STRING_ARCH_strspn):
+ Likewise.
+
+2017-09-06 Florian Weimer <fweimer@redhat.com>
+
+ * malloc/dynarray_emplace_enlarge.c
+ (__libc_dynarray_emplace_enlarge): Add missing else.
+
+2017-09-06 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #22096]
+ * resolv/resolv_conf.c (__resolv_conf_attach): Do not free conf in
+ case of failure to obtain the global conf object.
+
+2017-09-06 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #22095]
+ * resolv/res_init.c (res_vinit_1): Avoid memory leak in case of
+ dynarray allocation failure.
+
+2017-09-06 Florian Weimer <fweimer@redhat.com>
+
+ Remove dead PTR IPv4-to-IPv6 mapping code from nss_dns.
+ * resolv/nss_dns/dns-host.c (getanswer_r): Remove dead code.
+ * resolv/tst-res_use_inet6.c (response_ptr_v4, response_ptr_v6):
+ New functions.
+ (response): Call them. Add 'p', '6' flag processing.
+ (test_reverse): New function.
+ (test_get2_any): Call it.
+ (test_no_inet6): Add 'p' test.
+ (test_inet6): Likewise.
+
+2017-09-06 Florian Weimer <fweimer@redhat.com>
+
+ Enhance tst-res_use_inet6 to test IPv4-to-IPv6 address mapping.
+ * resolv/tst-res_use_inet6.c (response): Process flags embedded in
+ the QNAME.
+ (test_gai): Adjust query names. Add additional tests.
+ (test_get2_any, test_get2_no_inet6, test_get2_inet6): Split from
+ test_get2. Adjust query names. Add additional tests.
+ (test_no_inet6): New function, extracted from threadfunc.
+ (threadfunc): Call test_get2_any, test_get2_inet6, test_no_inet6.
+ Add additional tests.
+
+2017-09-06 Mike FABIAN <mfabian@redhat.com>
+
+ [BZ #22070]
+ * localedata/unicode-gen/utf8_gen.py: Set the width for
+ characters with Prepended_Concatenation_Mark property to 1
+ * localedata/charmaps/UTF-8: Updated using the improved script.
+
+2017-09-06 Mike FABIAN <mfabian@redhat.com>
+
+ [BZ #21750]
+ * localedata/unicode-gen/utf8_gen.py: Improve the script to
+ use the range notation for all ranges of neighbouring characters
+ with the same width.
+
+2017-09-05 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/generic/math-type-macros-double.h: Include
+ <math-svid-compat.h>.
+ (__USE_WRAPPER_TEMPLATE): Define to !LIBM_SVID_COMPAT.
+ * sysdeps/generic/math-type-macros-float.h: Include
+ <math-svid-compat.h>.
+ (__USE_WRAPPER_TEMPLATE): Define to !LIBM_SVID_COMPAT.
+ * sysdeps/generic/math-type-macros-ldouble.h: Include
+ <math-svid-compat.h>.
+ (__USE_WRAPPER_TEMPLATE): Define to !LIBM_SVID_COMPAT.
+ * math/lgamma-compat.h (BUILD_LGAMMA): Include LIBM_SVID_COMPAT
+ condition.
+ * math/w_acos_compat.c: Condition contents on [LIBM_SVID_COMPAT].
+ * math/w_acosf_compat.c: Likewise.
+ * math/w_acosh_compat.c: Likewise.
+ * math/w_acoshf_compat.c: Likewise.
+ * math/w_acoshl_compat.c: Likewise.
+ * math/w_acosl_compat.c: Likewise.
+ * math/w_asin_compat.c: Likewise.
+ * math/w_asinf_compat.c: Likewise.
+ * math/w_asinl_compat.c: Likewise.
+ * math/w_atan2_compat.c: Likewise.
+ * math/w_atan2f_compat.c: Likewise.
+ * math/w_atan2l_compat.c: Likewise.
+ * math/w_atanh_compat.c: Likewise.
+ * math/w_atanhf_compat.c: Likewise.
+ * math/w_atanhl_compat.c: Likewise.
+ * math/w_cosh_compat.c: Likewise.
+ * math/w_coshf_compat.c: Likewise.
+ * math/w_coshl_compat.c: Likewise.
+ * math/w_exp10_compat.c: Likewise.
+ * math/w_exp10f_compat.c: Likewise.
+ * math/w_exp10l_compat.c: Likewise.
+ * math/w_exp2_compat.c: Likewise.
+ * math/w_exp2f_compat.c: Likewise.
+ * math/w_exp2l_compat.c: Likewise.
+ * math/w_fmod_compat.c: Likewise.
+ * math/w_fmodf_compat.c: Likewise.
+ * math/w_fmodl_compat.c: Likewise.
+ * math/w_hypot_compat.c: Likewise.
+ * math/w_hypotf_compat.c: Likewise.
+ * math/w_hypotl_compat.c: Likewise.
+ * math/w_j0_compat.c: Likewise.
+ * math/w_j0f_compat.c: Likewise.
+ * math/w_j0l_compat.c: Likewise.
+ * math/w_j1_compat.c: Likewise.
+ * math/w_j1f_compat.c: Likewise.
+ * math/w_j1l_compat.c: Likewise.
+ * math/w_jn_compat.c: Likewise.
+ * math/w_jnf_compat.c: Likewise.
+ * math/w_jnl_compat.c: Likewise.
+ * math/w_lgamma_r_compat.c: Likewise.
+ * math/w_lgammaf_r_compat.c: Likewise.
+ * math/w_lgammal_r_compat.c: Likewise.
+ * math/w_log10_compat.c: Likewise.
+ * math/w_log10f_compat.c: Likewise.
+ * math/w_log10l_compat.c: Likewise.
+ * math/w_log2_compat.c: Likewise.
+ * math/w_log2f_compat.c: Likewise.
+ * math/w_log2l_compat.c: Likewise.
+ * math/w_log_compat.c: Likewise.
+ * math/w_logf_compat.c: Likewise.
+ * math/w_logl_compat.c: Likewise.
+ * math/w_pow_compat.c: Likewise.
+ * math/w_powf_compat.c: Likewise.
+ * math/w_powl_compat.c: Likewise.
+ * math/w_remainder_compat.c: Likewise.
+ * math/w_remainderf_compat.c: Likewise.
+ * math/w_remainderl_compat.c: Likewise.
+ * math/w_sinh_compat.c: Likewise.
+ * math/w_sinhf_compat.c: Likewise.
+ * math/w_sinhl_compat.c: Likewise.
+ * math/w_sqrt_compat.c: Likewise.
+ * math/w_sqrtf_compat.c: Likewise.
+ * math/w_sqrtl_compat.c: Likewise.
+ * math/w_tgamma_compat.c: Likewise.
+ * math/w_tgammaf_compat.c: Likewise.
+ * math/w_tgammal_compat.c: Likewise.
+ * math/w_scalb_compat.c (sysv_scalb): Condition definition on
+ [LIBM_SVID_COMPAT].
+ (__scalb): Condition call to sysv_scalb on [LIBM_SVID_COMPAT].
+ * math/w_scalbf_compat.c (sysv_scalbf): Condition definition on
+ [LIBM_SVID_COMPAT].
+ (__scalbf): Condition call to sysv_scalbf on [LIBM_SVID_COMPAT].
+ * math/w_scalbl_compat.c (sysv_scalbl): Condition definition on
+ [LIBM_SVID_COMPAT].
+ (__scalbl): Condition call to sysv_scalbl on [LIBM_SVID_COMPAT].
+ * sysdeps/i386/fpu/w_sqrt.c: New file.
+ * sysdeps/ia64/fpu/w_acos.c: Likewise.
+ * sysdeps/ia64/fpu/w_acosf.c: Likewise.
+ * sysdeps/ia64/fpu/w_acosh.c: Likewise.
+ * sysdeps/ia64/fpu/w_acoshf.c: Likewise.
+ * sysdeps/ia64/fpu/w_acoshl.c: Likewise.
+ * sysdeps/ia64/fpu/w_acosl.c: Likewise.
+ * sysdeps/ia64/fpu/w_asin.c: Likewise.
+ * sysdeps/ia64/fpu/w_asinf.c: Likewise.
+ * sysdeps/ia64/fpu/w_asinl.c: Likewise.
+ * sysdeps/ia64/fpu/w_atan2.c: Likewise.
+ * sysdeps/ia64/fpu/w_atan2f.c: Likewise.
+ * sysdeps/ia64/fpu/w_atan2l.c: Likewise.
+ * sysdeps/ia64/fpu/w_atanh.c: Likewise.
+ * sysdeps/ia64/fpu/w_atanhf.c: Likewise.
+ * sysdeps/ia64/fpu/w_atanhl.c: Likewise.
+ * sysdeps/ia64/fpu/w_cosh.c: Likewise.
+ * sysdeps/ia64/fpu/w_coshf.c: Likewise.
+ * sysdeps/ia64/fpu/w_coshl.c: Likewise.
+ * sysdeps/ia64/fpu/w_exp.c: Likewise.
+ * sysdeps/ia64/fpu/w_exp10.c: Likewise.
+ * sysdeps/ia64/fpu/w_exp10f.c: Likewise.
+ * sysdeps/ia64/fpu/w_exp10l.c: Likewise.
+ * sysdeps/ia64/fpu/w_exp2.c: Likewise.
+ * sysdeps/ia64/fpu/w_exp2f.c: Likewise.
+ * sysdeps/ia64/fpu/w_exp2l.c: Likewise.
+ * sysdeps/ia64/fpu/w_expf.c: Likewise.
+ * sysdeps/ia64/fpu/w_expl.c: Likewise.
+ * sysdeps/ia64/fpu/w_fmod.c: Likewise.
+ * sysdeps/ia64/fpu/w_fmodf.c: Likewise.
+ * sysdeps/ia64/fpu/w_fmodl.c: Likewise.
+ * sysdeps/ia64/fpu/w_hypot.c: Likewise.
+ * sysdeps/ia64/fpu/w_hypotf.c: Likewise.
+ * sysdeps/ia64/fpu/w_hypotl.c: Likewise.
+ * sysdeps/ia64/fpu/w_lgamma_r.c: Likewise.
+ * sysdeps/ia64/fpu/w_lgammaf_r.c: Likewise.
+ * sysdeps/ia64/fpu/w_lgammal_r.c: Likewise.
+ * sysdeps/ia64/fpu/w_log.c: Likewise.
+ * sysdeps/ia64/fpu/w_log10.c: Likewise.
+ * sysdeps/ia64/fpu/w_log10f.c: Likewise.
+ * sysdeps/ia64/fpu/w_log10l.c: Likewise.
+ * sysdeps/ia64/fpu/w_log2.c: Likewise.
+ * sysdeps/ia64/fpu/w_log2f.c: Likewise.
+ * sysdeps/ia64/fpu/w_log2l.c: Likewise.
+ * sysdeps/ia64/fpu/w_logf.c: Likewise.
+ * sysdeps/ia64/fpu/w_logl.c: Likewise.
+ * sysdeps/ia64/fpu/w_pow.c: Likewise.
+ * sysdeps/ia64/fpu/w_powf.c: Likewise.
+ * sysdeps/ia64/fpu/w_powl.c: Likewise.
+ * sysdeps/ia64/fpu/w_remainder.c: Likewise.
+ * sysdeps/ia64/fpu/w_remainderf.c: Likewise.
+ * sysdeps/ia64/fpu/w_remainderl.c: Likewise.
+ * sysdeps/ia64/fpu/w_sinh.c: Likewise.
+ * sysdeps/ia64/fpu/w_sinhf.c: Likewise.
+ * sysdeps/ia64/fpu/w_sinhl.c: Likewise.
+ * sysdeps/ia64/fpu/w_sqrt.c: Likewise.
+ * sysdeps/ia64/fpu/w_sqrtf.c: Likewise.
+ * sysdeps/ia64/fpu/w_sqrtl.c: Likewise.
+ * sysdeps/ia64/fpu/w_tgamma.c: Likewise.
+ * sysdeps/ia64/fpu/w_tgammaf.c: Likewise.
+ * sysdeps/ia64/fpu/w_tgammal.c: Likewise.
+ * sysdeps/ieee754/dbl-64/w_exp_compat.c: Condition contents on
+ [LIBM_SVID_COMPAT].
+ * sysdeps/ieee754/flt-32/w_expf_compat.c: Likewise.
+ * sysdeps/ieee754/k_standard.c: Likewise.
+ * sysdeps/ieee754/k_standardf.c: Likewise.
+ * sysdeps/ieee754/k_standardl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/w_expl_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/w_expl_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/w_expl_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-64-128/w_expl_compat.c: Condition
+ long_double_symbol call on [LIBM_SVID_COMPAT].
+ * sysdeps/ieee754/ldbl-opt/w_acoshl_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_acosl_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_asinl_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_atan2l_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_atanhl_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_coshl_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_fmodl_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_hypotl_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_j0l_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_j1l_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_jnl_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_lgammal_r_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_log10l_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_log2l_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_logl_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_powl_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_remainderl_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_sinhl_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_sqrtl_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_tgammal_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-opt/w_exp10l_compat.c: Condition
+ long_double_symbol and compat_symbol calls on [LIBM_SVID_COMPAT].
+
+2017-09-05 Steve Ellcey <sellcey@cavium.com>
+
+ * include/shlib-compat.h (TEST_COMPAT): New Macro.
+ * malloc/tst-mallocstate.c: Convert from test-skeleton
+ to test-driver. Ifdef code using TEST_COMPAT macro.
+ * math/test-matherr-2.c: Ifdef test using TEST_COMPAT macro.
+ * math/test-matherr.c: Likewise.
+
+2017-09-05 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #22086]
+ * debug/pcprofiledump.c (main): Use byte-swapped mask when
+ comparing word with byte-swapped constant.
+
+2017-09-05 Chris Leonard <cjlhomeaddress@gmail.com>
+
+ [BZ #20498]
+ * locale/iso-639.def: add Miskito.
+ * localedata/SUPPORTED: Add miq_NI/UTF-8.
+ * localedata/locales/miq_NI: New file.
+
+2017-09-04 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * include/sys/stat.h (__chmod): Add libc_hidden_proto.
+ (__mkdir): Likewise.
+ * io/chmod.c (__chmod): Add libc_hidden_def.
+ * io/mkdir.c (__mkdir): Likewise.
+ * sysdeps/mach/hurd/chmod.c (__chmod): Likewise.
+ * sysdeps/mach/hurd/mkdir.c (__mkdir): Likewise.
+ * sysdeps/unix/sysv/linux/generic/chmod.c (__chmod): Likewise.
+ * sysdeps/unix/sysv/linux/generic/mkdir.c (__mkdir): Likewise.
+
+2017-09-04 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/syscall-names.list: Update kernel
+ version to 4.13.
+
+ [BZ #22082]
+ * math/bits/math-finite.h (exp10): Redirect if [__GLIBC_USE
+ (IEC_60559_FUNCS_EXT)], not [__USE_GNU].
+
+2017-09-04 Florian Weimer <fweimer@redhat.com>
+
+ * math/math.h: Issue warning if log is defined.
+
+2017-09-04 Joseph Myers <joseph@codesourcery.com>
+
+ * scripts/build-many-glibcs.py (Context.checkout): Default Linux
+ kernel version to 4.13.
+
+2017-09-03 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * sysdeps/generic/sigsetops.h: Remove spurious #endif.
+ (__sigismember, __sigaddset, __sigdelset): Fix referencing set
+ parameter.
+ * sysdeps/mach/hurd/bits/socket.h: Include <sys/types.h> instead of
+ just <bits/types.h>.
+ * sysdeps/posix/preadv2.c: Use off_t instead of OFF_T.
+ * sysdeps/posix/preadv64v2.c: Use off64_t instead of OFF_T.
+ * sysdeps/posix/pwritev2.c: Use off_t instead of OFF_T.
+ * sysdeps/posix/pwritev64v2.c: Use off64_t instead of OFF_T.
+ * misc/preadv2.c: Include <errno.h>.
+ * misc/preadv64v2.c: Include <errno.h>.
+ * misc/pwritev2.c: Include <errno.h>.
+ * misc/pwritev64v2.c: Include <errno.h>.
+ * sysdeps/posix/preadv2.c: Include <errno.h>.
+ * sysdeps/posix/preadv64v2.c: Include <errno.h>.
+ Fix <unistd.h> inclusion.
+ * sysdeps/posix/pwritev2.c: Include <errno.h>.
+ * sysdeps/posix/pwritev64v2.c: Include <errno.h>.
+ * sysdeps/mach/hurd/dl-sysdep.c (__access_noerrno, __sbrk,
+ __strtoul_internal): New functions.
+ * sysdeps/posix/pause.c: Include <sigsetops.h>.
+ * sysdeps/posix/system.c: Include <sigsetops.h>.
+ * sysdeps/mach/hurd/i386/Makefile
+ [$(subdir) = csu] (sysdep_routines): New rule: divdi3 object.
+ [$(subdir) = csu] (sysdep-only-routines): Likewise.
+ [$(subdir) = csu] (CFLAGS-divdi3.c): Likewise.
+ * sysdeps/x86/fpu/include/bits/fenv.h [NO_HIDDEN]: Redirect
+ __feraiseexcept_renamed to feraiseexcept instead of
+ __GI_feraiseexcept.
+ * sysdeps/mach/hurd/i386/Implies: Add mach/hurd/x86.
+ * sysdeps/mach/hurd/x86/dl-sysdep.c: New file.
+ * misc/tst-preadvwritev2-common.c (RWF_HIPRI, RWF_DSYNC, RWF_SYNC,
+ RWF_NOWAIT): Define to 0 if undefined already.
+ (do_test_with_invalid_flags): Set invalid_flag to 2 if RWF_SUPPORTED
+ boils down to 0.
+ * resolv/tst-resolv-res_init-skeleton.c (run_res_init)
+ [!CLONE_NEWUTS]: Fail as unsupported if hostname is not NULL.
+
+2017-09-01 Joseph Myers <joseph@codesourcery.com>
+
+ * manual/math.texi (pow10): Do not document.
+ (pow10f): Likewise.
+ (pow10l): Likewise.
+ * math/bits/mathcalls.h [__USE_GNU] (pow10): Do not declare.
+ * math/bits/math-finite.h [__USE_GNU] (pow10): Likewise.
+ * math/libm-test-exp10.inc (pow10_test): Remove.
+ (do_test): Do not call pow10.
+ * math/w_exp10_compat.c (pow10): Make into compat symbol.
+ [NO_LONG_DOUBLE] (pow10l): Likewise.
+ * math/w_exp10f_compat.c (pow10f): Likewise.
+ * math/w_exp10l_compat.c (pow10l): Likewise.
+ * sysdeps/ia64/fpu/e_exp10.S: Include <shlib-compat.h>.
+ (pow10): Make into compat symbol.
+ * sysdeps/ia64/fpu/e_exp10f.S: Include <shlib-compat.h>.
+ (pow10f): Make into compat symbol.
+ * sysdeps/ia64/fpu/e_exp10l.S: Include <shlib-compat.h>.
+ (pow10l): Make into compat symbol.
+ * sysdeps/ieee754/ldbl-opt/Makefile (libnldbl-calls): Remove
+ pow10.
+ (CFLAGS-nldbl-pow10.c): Remove variable..
+ * sysdeps/ieee754/ldbl-opt/nldbl-pow10.c: Remove file.
+ * sysdeps/ieee754/ldbl-opt/w_exp10_compat.c (pow10l): Condition on
+ [SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_27)].
+ * sysdeps/ieee754/ldbl-opt/w_exp10l_compat.c (compat_symbol):
+ Undefine and redefine.
+ (pow10l): Make into compat symbol.
+ * sysdeps/aarch64/libm-test-ulps: Remove pow10 ulps.
+ * sysdeps/alpha/fpu/libm-test-ulps: Likewise.
+ * sysdeps/arm/libm-test-ulps: Likewise.
+ * sysdeps/hppa/fpu/libm-test-ulps: Likewise.
+ * sysdeps/i386/fpu/libm-test-ulps: Likewise.
+ * sysdeps/i386/i686/fpu/multiarch/libm-test-ulps: Likewise.
+ * sysdeps/microblaze/libm-test-ulps: Likewise.
+ * sysdeps/mips/mips32/libm-test-ulps: Likewise.
+ * sysdeps/mips/mips64/libm-test-ulps: Likewise.
+ * sysdeps/nios2/libm-test-ulps: Likewise.
+ * sysdeps/powerpc/fpu/libm-test-ulps: Likewise.
+ * sysdeps/powerpc/nofpu/libm-test-ulps: Likewise.
+ * sysdeps/s390/fpu/libm-test-ulps: Likewise.
+ * sysdeps/sh/libm-test-ulps: Likewise.
+ * sysdeps/sparc/fpu/libm-test-ulps: Likewise.
+ * sysdeps/tile/libm-test-ulps: Likewise.
+ * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
+
+2017-09-01 Paul Pluzhnikov <ppluzhnikov@google.com>
+
+ * stdlib/tst-atexit-common.c (crumbs): Ensure correct size.
+
+2017-09-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ * posix/tst-regex.c (do_test): Replace "../ChangeLog.8" with
+ "../ChangeLog.old/ChangeLog.8".
+ * posix/tst-regex2.c (do_test): Replace "../ChangeLog.14" with
+ "../ChangeLog.old/ChangeLog.14".
+
+2017-09-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ * manual/contrib.texi: Credit Ulrich Drepper for the POSIX
+ Threads Library.
+
+2017-09-01 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/gentempfd.c: Include <string.h>.
+
+2017-09-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ * csu/version.c (banner): Remove "by Roland McGrath et al.".
+ * nptl/Banner: Remove "by Ulrich Drepper et al.".
+
+2017-09-01 Paul Pluzhnikov <ppluzhnikov@google.com>
+
+ * stdlib/tst-atexit-common.c (do_test): Test support for at least
+ 32 atexit handlers.
+
+2017-09-01 Zack Weinberg <zackw@panix.com>
+
+ * math/math.h (HUGE_VAL): Improve commentary.
+
+2017-09-01 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+ Andreas Schwab <schwab@suse.de>
+
+ [BZ #21530]
+ * include/stdio.h (__gen_tempfd): New function.
+ * stdio-common/Makefile (routines): Add gentempfd.
+ * stdio-common/gentempfd.c: New file.
+ * sysdeps/unix/sysv/linux/gentempfd.c: Likewise.
+ * stdio-common/tmpfile.c (tmpfile): First try to use a system specific
+ unnamed file first.
+
+2017-09-01 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #21915]
+ [BZ #21922]
+ * sysdeps/posix/getaddrinfo.c (gethosts): Look at NSS function
+ result to determine success or failure, not the errno value.
+ * nss/Makefile (tests): Add tst-nss-files-hosts-erange.
+ (tst-nss-files-hosts-erange): Link with -ldl.
+ * nss/tst-nss-files-hosts-erange.c: New file.
+ * nss/tst-resolv-basic.c (response): Handle nodata.example.
+ (do_test): Add NO_DATA tests.
+ * resolv/tst-resolv-basic.c (test_nodata_nxdomain): New function.
+ (do_test): Call it.
+
+2017-09-01 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #21922]
+ * sysdeps/posix/getaddrinfo.c (gaih_inet): Report EAI_NODATA error
+ coming from gethostbyname2_r.
+
+2017-09-01 Florian Weimer <fweimer@redhat.com>
+
+ * support/namespace.h (struct support_chroot_configuration): Add
+ hosts, host_conf.
+ (struct support_chroot): Add path_hosts, path_host_conf.
+ * support/support_chroot.c (write_file): New function.
+ (support_chroot_create): Call it to process /etc/resolv.conf,
+ /etc/hosts, /etc/host.conf.
+ (support_chroot_free): Update.
+
+2017-09-01 Florian Weimer <fweimer@redhat.com>
+
+ * sysdeps/posix/getaddrinfo.c (gaih_inet): Only use h_errno if
+ status indicates it is set.
+
+2017-09-01 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #20532]
+ * sysdeps/posix/getaddrinfo.c (gaih_inet): Make reporting of NSS
+ function lookup failures more reliable.
+
+2017-09-01 Florian Weimer <fweimer@redhat.com>
+
+ * sysdeps/posix/getaddrinfo.c (gethosts): Use h_errno directly.
+ (getcanonname): Likewise.
+ (gaih_inet): Likewise.
+
+2017-09-01 Florian Weimer <fweimer@redhat.com>
+
+ * sysdeps/posix/getaddrinfo.c (gethosts): Use errno directly.
+ (getcanonname): Likewise.
+ (gaih_inet): Likewise.
+
+2017-08-31 Steve Ellcey <sellcey@cavium.com>
+ Richard Henderson <rth@twiddle.net>
+
+ * sysdeps/aarch64/fpu/s_llrint.c (OREG_SIZE): New macro.
+ * sysdeps/aarch64/fpu/s_llround.c (OREG_SIZE): Likewise.
+ * sysdeps/aarch64/fpu/s_llrintf.c (OREGS, IREGS): Remove.
+ (IREG_SIZE, OREG_SIZE): New macros.
+ * sysdeps/aarch64/fpu/s_llroundf.c: (OREGS, IREGS): Remove.
+ (IREG_SIZE, OREG_SIZE): New macros.
+ * sysdeps/aarch64/fpu/s_lrintf.c (IREGS): Remove.
+ (IREG_SIZE): New macro.
+ * sysdeps/aarch64/fpu/s_lroundf.c (IREGS): Remove.
+ (IREG_SIZE): New macro.
+ * sysdeps/aarch64/fpu/s_lrint.c (get-rounding-mode.h, stdint.h):
+ New includes.
+ (IREG_SIZE, OREG_SIZE): Initialize if not already set.
+ (OREGS, IREGS): Set based on IREG_SIZE and OREG_SIZE.
+ (__CONCATX): Handle exceptions correctly on large values that may
+ set FE_INVALID.
+ * sysdeps/aarch64/fpu/s_lround.c (IREG_SIZE, OREG_SIZE):
+ Initialize if not already set.
+ (OREGS, IREGS): Set based on IREG_SIZE and OREG_SIZE.
+
+2017-08-31 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/generic/not-cancel.h (NO_CANCELLATION): Remove macro.
+ * sysdeps/unix/sysv/linux/aarch64/sysdep-cancel.h (NO_CANCELLATION):
+ Likewise.
+ * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (NO_CANCELLATION):
+ Likewise.
+ * sysdeps/unix/sysv/linux/arm/sysdep-cancel.h (NO_CANCELLATION):
+ Likewise.
+ * sysdeps/unix/sysv/linux/hppa/sysdep-cancel.h (NO_CANCELLATION):
+ Likewise.
+ * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (NO_CANCELLATION):
+ Likewise.
+ * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (NO_CANCELLATION):
+ Likewise.
+ * sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h (NO_CANCELLATION):
+ Likewise.
+ * sysdeps/unix/sysv/linux/microblaze/sysdep-cancel.h
+ (NO_CANCELLATION): Likewise.
+ * sysdeps/unix/sysv/linux/mips/sysdep-cancel.h (NO_CANCELLATION):
+ Likewise.
+ * sysdeps/unix/sysv/linux/nios2/sysdep-cancel.h (NO_CANCELLATION):
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/sysdep-cancel.h (NO_CANCELLATION):
+ Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h
+ (NO_CANCELLATION): Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
+ (NO_CANCELLATION): Likewise.
+ * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (NO_CANCELLATION):
+ Likewise
+ * sysdeps/unix/sysv/linux/sparc/sysdep-cancel.h (NO_CANCELLATION):
+ Likewise.
+ * sysdeps/unix/sysv/linux/tile/sysdep-cancel.h (NO_CANCELLATION):
+ Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (NO_CANCELLATION):
+ Likewise.
+ * sysdeps/unix/sysv/linux/not-cancel.h (__fcntl_nocancel): Add
+ hidden prototype.
+ * sysdeps/unix/sysv/linux/fcntl.c (__fcntl_nocancel): Define only
+ for !IS_IN (rtld) and remove NO_CANCELLATION usage.
+
+2017-08-31 Steve Ellcey <sellcey@cavium.com>
+
+ * sysdeps/aarch64/dl-irel.h: (elf_ifunc_invoke): Change argument type
+ in resolver call.
+
+2017-08-31 Florian Weimer <fweimer@redhat.com>
+
+ * include/libc-symbols.h (internal_function): Remove.
+
+2017-08-31 Florian Weimer <fweimer@redhat.com>
+
+ * stdlib/fmtmsg.c (internal_addseverity): Remove
+ internal_function.
+
+2017-08-31 Florian Weimer <fweimer@redhat.com>
+
+ * stdio-common/printf_fp.c (group_number): Remove
+ internal_function.
+ * stdio-common/vfprintf.c (buffered_vfprintf): Likewise.
+
+2017-08-31 Florian Weimer <fweimer@redhat.com>
+
+ * posix/fnmatch.c (internal_function): Remove definition.
+ * posix/fnmatch_loop.c (FCT, EXT, END): Remove internal_function.
+ * posix/regcomp.c (peek_token, init_word_char)
+ (duplicate_node_closure, fetch_token, peek_token)
+ (peek_token_bracket, build_range_exp, build_collating_symbol):
+ Likewise.
+ * posix/regex_internal.c (re_string_construct_common)
+ (create_ci_newstate, create_cd_newstate, re_string_allocate)
+ (re_string_construct, re_string_realloc_buffers, build_wcs_buffer)
+ (build_wcs_upper_buffer, re_string_skip_chars, build_upper_buffer)
+ (re_string_translate_buffer, re_string_reconstruct)
+ (re_string_peek_byte_case, re_string_fetch_byte_case)
+ (re_string_destruct, re_string_context_at, re_node_set_alloc)
+ (re_node_set_init_1, re_node_set_init_2, re_node_set_init_copy)
+ (re_node_set_add_intersect, re_node_set_init_union)
+ (re_node_set_merge, re_node_set_insert, re_node_set_insert_last)
+ (re_node_set_compare, re_node_set_contains, re_node_set_remove_at)
+ (re_dfa_add_node, calc_state_hash, re_acquire_state)
+ (re_acquire_state_context): Likewise.
+ * posix/regex_internal.h (internal_function): Remove definition.
+ (re_string_realloc_buffers, build_wcs_buffer)
+ (build_wcs_upper_buffer, build_upper_buffer)
+ (re_string_translate_buffer, re_string_context_at)
+ (re_string_char_size_at, re_string_wchar_at)
+ (re_string_elem_size_at): Likewise.
+ * posix/regexec.c (match_ctx_init, match_ctx_clean)
+ (match_ctx_free, match_ctx_add_entry, search_cur_bkref_entry)
+ (match_ctx_add_subtop, match_ctx_add_sublast, sift_ctx_init)
+ (re_search_internal, re_search_2_stub, re_search_stub)
+ (re_copy_regs, prune_impossible_nodes, check_matching)
+ (check_halt_state_context, update_regs, push_fail_stack, set_regs)
+ (free_fail_stack_return, sift_states_iter_mb)
+ (sift_states_backward, build_sifted_states)
+ (update_cur_sifted_state, add_epsilon_src_nodes, check_dst_limits)
+ (check_dst_limits_calc_pos_1, check_dst_limits_calc_pos)
+ (check_subexp_limits, sift_states_bkref, merge_state_array)
+ (find_recover_state, transit_state, merge_state_with_log)
+ (check_subexp_matching_top, transit_state_sb, transit_state_sb)
+ (transit_state_mb, transit_state_bkref, get_subexp)
+ (get_subexp_sub, find_subexp_node, check_arrival)
+ (check_arrival_add_next_nodes, check_arrival_expand_ecl)
+ (check_arrival_expand_ecl_sub, expand_bkref_cache, build_trtable)
+ (check_node_accept_bytes, find_collation_sequence_value)
+ (group_nodes_into_DFAstates, check_node_accept, extend_buffers)
+ (acquire_init_state_context, check_halt_node_context)
+ (proceed_next_node, pop_fail_stack, clean_state_log_if_needed)
+ (sub_epsilon_src_nodes): Likewise.
+ * posix/spawn_int.h (__spawn_valid_fd): Likewise.
+ * posix/spawn_valid_fd (__spawn_valid_fd): Likewise.
+ * posix/wordexp.c (parse_dollars, parse_backtick, parse_dquote)
+ (eval_expr, w_addmem, w_addstr, w_addword, parse_backslash)
+ (parse_qtd_backslash, parse_tilde, do_parse_glob, parse_glob)
+ (parse_squote, eval_expr_val, eval_expr_multdiv, parse_arith)
+ (exec_comm_child, exec_comm, parse_comm, parse_param): Likewise.
+ * sysdeps/posix/ttyname.c (getttyname): Likewise.
+ * sysdeps/posix/ttyname_r.c (getttyname_r): Likewise.
+ * sysdeps/unix/sysv/linux/preadv.c (__atomic_preadv_replacement)
+ (PREADV): Likewise.
+ * sysdeps/unix/sysv/linux/preadv64.c (__atomic_preadv64_replacement)
+ (PREADV): Likewise.
+ * sysdeps/unix/sysv/linux/pwritev.c (__atomic_pwritev_replacement)
+ (PWRITEV): Likewise.
+ * sysdeps/unix/sysv/linux/pwritev64.c (__atomic_pwritev64_replacement)
+ (PWRITEV): Likewise.
+ * sysdeps/unix/sysv/linux/ttyname.c (getttyname): Likewise.
+ * sysdeps/unix/sysv/linux/ttyname_r.c (getttyname_r): Likewise.
+
+2017-08-31 Florian Weimer <fweimer@redhat.com>
+
+ * nptl/allocatestack.c (change_stack_perm, __deallocate_stack)
+ (setxid_mark_thread, setxid_unmark_thread, setxid_signal_thread):
+ Remove internal_function.
+ * nptl/cancellation.c (__pthread_disable_asynccancel): Likewise.
+ * nptl/libc_pthread_init.c (__libc_pthread_init): Likewise.
+ * nptl/pthreadP.h (__find_in_stack_list, __free_tcb)
+ (__deallocate_stack, __libc_pthread_init)
+ (__pthread_mutex_cond_lock, __pthread_mutex_cond_lock_adjust)
+ (__pthread_mutex_unlock_usercnt, __pthread_disable_asynccancel)
+ (__libc_disable_asynccancel, __librt_disable_asynccancel):
+ Likewise.
+ * nptl/pthread_create.c (__find_in_stack_list, __free_tcb): Likewise.
+ * nptl/pthread_mutex_cond_lock.c (__pthread_mutex_lock): Likewise.
+ * nptl/pthread_mutex_lock.c (__pthread_mutex_cond_lock_adjust):
+ Likewise.
+ * nptl/pthread_mutex_unlock.c (__pthread_mutex_unlock_full)
+ (__pthread_mutex_unlock_usercnt): Likewise.
+
+2017-08-31 Florian Weimer <fweimer@redhat.com>
+
+ * io/fts.c (fts_alloc, fts_build, fts_lfree, fts_load)
+ (fts_maxarglen, fts_padjust, fts_palloc, fts_sort, fts_stat)
+ (fts_safe_changedir): Remove internal_function.
+ * io/ftw.c (internal_function): Remove definition.
+ (ftw_dir, process_entry, ftw_startup): Remove internal_function.
+
+2017-08-31 Florian Weimer <fweimer@redhat.com>
+
+ * inet/deadline.c (__deadline_current_time)
+ (__deadline_from_timeval, __deadline_to_ms): Remove
+ internal_function.
+ * inet/getnameinfo.c (nrl_domainname): Likewise.
+ * inet/getnetgrent_r.c (__internal_setnetgrent_reuse): Likewise.
+ * inet/inet6_option.c (add_pad): Likewise.
+ * inet/net-internal.h (__deadline_current_time)
+ (__deadline_from_timeval, __deadline_to_ms): Likewise.
+ * inet/rcmd.c (__checkhost_sa, __icheckuser): Likewise.
+ * sysdeps/mach/hurd/if_index.c (__protocol_available): Likewise.
+ * sysdeps/unix/sysv/linux/ifaddrs.c (map_newlink): Likewise.
+
+2017-08-31 Joseph Myers <joseph@codesourcery.com>
+
+ * math/math.h [__USE_ISOC99] (NAN): Define directly here. Do not
+ include <bits/nan.h>.
+ * math/Makefile (headers): Remove bits/nan.h.
+ * bits/nan.h: Remove.
+ * sysdeps/ieee754/bits/nan.h: Likewise.
+ * sysdeps/mips/bits/nan.h: Likewise.
+
+ * math/math.h [__USE_ISOC99] (INFINITY): Define directly here. Do
+ not include <bits/inf.h>.
+ * math/Makefile (headers): Remove bits/inf.h.
+ * bits/inf.h: Remove.
+ * sysdeps/ieee754/bits/inf.h: Likewise.
+
+ * math/math.h: Do not include bits/huge_val.h, bits/huge_valf.h,
+ bits/huge_vall.h or bits/huge_val_flt128.h.
+ (HUGE_VAL): Define directly here.
+ [__USE_ISOC99] (HUGE_VALF): Likewise.
+ [__USE_ISOC99] (HUGE_VALL): Likewise.
+ [__HAVE_FLOAT128 && __GLIBC_USE (IEC_60559_TYPES_EXT)]
+ (HUGE_VAL_F128): Likewise.
+ * math/Makefile (headers): Remove bits/huge_val.h,
+ bits/huge_valf.h, bits/huge_vall.h and bits/huge_val_flt128.h.
+ * bits/huge_val.h: Remove.
+ * bits/huge_val_flt128.h: Likewise.
+ * bits/huge_valf.h: Likewise.
+ * bits/huge_vall.h: Likewise.
+ * sysdeps/ia64/bits/huge_vall.h: Likewise.
+ * sysdeps/ieee754/bits/huge_val.h: Likewise.
+ * sysdeps/ieee754/bits/huge_valf.h: Likewise.
+ * sysdeps/m68k/m680x0/bits/huge_vall.h: Likewise.
+ * sysdeps/sh/bits/huge_val.h: Likewise.
+ * sysdeps/sparc/bits/huge_vall.h: Likewise.
+ * sysdeps/x86/bits/huge_vall.h: Likewise.
+
+2017-08-31 Florian Weimer <fweimer@redhat.com>
+
+ * elf/dl-addr-obj.c (_dl_addr_inside_object): Remove
+ internal_function.
+ * elf/dl-cache.c (_dl_cache_libcmp, _dl_load_cache_lookup):
+ Likewise.
+ * elf/dl-debug.c (_dl_debug_initialize): Likewise.
+ * elf/dl-deps.c (_dl_build_local_scope, _dl_map_object_deps): Likewise.
+ * elf/dl-environ.c (_dl_next_ld_env_entry): Likewise.
+ * elf/dl-execstack.c (_dl_make_stack_executable): Likewise.
+ * elf/dl-fini.c (_dl_sort_fini): Likewise.
+ * elf/dl-hwcaps.c (_dl_important_hwcaps): Likewise.
+ * elf/dl-libc.c (dlerror_run): Likewise.
+ * elf/dl-load.c (add_name_to_object, decompose_rpath)
+ (_dl_init_paths, _dl_map_object, _dl_rtld_di_serinfo): Likewise.
+ * elf/dl-lookup.c (add_dependency, _dl_debug_bindings)
+ (_dl_lookup_symbol_x, _dl_setup_hash, _dl_debug_bindings):
+ Likewise.
+ * elf/dl-misc.c (_dl_sysdep_read_whole_file, _dl_name_match_p)
+ (_dl_higher_prime_number, _dl_strtoul): Likewise.
+ * elf/dl-object.c (_dl_add_to_namespace_list, _dl_new_object): Likewise.
+ * elf/dl-profile.c (_dl_start_profile): Likewise.
+ * elf/dl-reloc.c (_dl_try_allocate_static_tls)
+ (_dl_allocate_static_tls, _dl_protect_relro, _dl_reloc_bad_type):
+ Likewise.
+ * elf/dl-support.c (_dl_aux_init, _dl_non_dynamic_init): Likewise.
+ * elf/dl-sym.c (_dl_tls_symaddr, do_sym): Likewise.
+ * elf/dl-sysdep.c (_dl_sysdep_start_cleanup, _dl_show_auxv): Likewise.
+ * elf/dl-tls.c (_dl_next_tls_modid, _dl_count_modids)
+ (_dl_determine_tlsoffset, allocate_dtv, _dl_get_tls_static_info)
+ (_dl_allocate_tls_storage): Likewise.
+ * elf/dl-version.c (match_symbol, _dl_check_map_versions)
+ (_dl_check_all_versions): Likewise.
+ * elf/dynamic-link.h (_dl_try_allocate_static_tls): Likewise.
+ * elf/tlsdeschtab.h (_dl_make_tlsdesc_dynamic): Likewise.
+ * elf/tst-_dl_addr_inside_object.c (_dl_addr_inside_object): Likewise.
+ * sysdeps/aarch64/dl-tlsdesc.h (_dl_make_tlsdesc_dynamic): Likewise.
+ * sysdeps/aarch64/tlsdesc.c (_dl_unmap): Likewise.
+ * sysdeps/arm/dl-lookupcfg.h (_dl_unmap): Likewise.
+ * sysdeps/arm/dl-machine.h (elf_machine_load_address): Remove
+ internal_function from __dl_start.
+ * sysdeps/arm/dl-tlsdesc.h (_dl_unmap): Remove internal_function.
+ * sysdeps/generic/dl-cache.h (_dl_cache_libcmp): Likewise.
+ * sysdeps/generic/ldsodefs.h (_dl_name_match_p)
+ (_dl_higher_prime_number, _dl_strtoul, _dl_map_object)
+ (_dl_map_object_deps, _dl_setup_hash, _dl_rtld_di_serinfo)
+ (_dl_lookup_symbol_x, _dl_add_to_namespace_list, _dl_new_object)
+ (_dl_protect_relro, _dl_reloc_bad_type, _dl_check_all_versions)
+ (_dl_check_map_versions, _dl_sort_fini, _dl_debug_initialize)
+ (_dl_init_paths, _dl_start_profile, _dl_show_auxv)
+ (_dl_next_ld_env_entry, _dl_important_hwcaps)
+ (_dl_load_cache_lookup, _dl_sysdep_read_whole_file)
+ (_dl_sysdep_start_cleanup, _dl_next_tls_modid, _dl_count_modids)
+ (_dl_determine_tlsoffset, _dl_get_tls_static_info)
+ (_dl_allocate_static_tls, _dl_allocate_tls_storage)
+ (_dl_addr_inside_object, _dl_non_dynamic_init, _dl_aux_init):
+ Likewise.
+ (struct rtld_global_ro): Remove internal_function from the
+ _dl_lookup_symbol_x member.
+ (_dl_symbol_value): Remove. No longer defined anywhere.
+ * sysdeps/i386/dl-lookupcfg.h (_dl_unmap): Remove
+ internal_function.
+ * sysdeps/i386/dl-tlsdesc.h (_dl_make_tlsdesc_dynamic): Likewise.
+ * sysdeps/i386/tlsdesc.c (_dl_unmap): Likewise.
+ * sysdeps/mach/hurd/dl-sysdep.c (_dl_show_auxv): Likewise.
+ * sysdeps/nios2/dl-init.c (_dl_nios2_get_gp_value): Likewise.
+ * sysdeps/tile/dl-lookupcfg.h (_dl_unmap): Likewise.
+ * sysdeps/tile/dl-machine.h (_dl_after_load): Likewise.
+ * sysdeps/tile/dl-runtime.c (_dl_after_load, _dl_unmap): Likewise.
+ * sysdeps/unix/sysv/linux/dl-vdso.c (_dl_vdso_vsym): Likewise.
+ * sysdeps/unix/sysv/linux/dl-vdso.h (_dl_vdso_vsym): Likewise.
+ * sysdeps/x86_64/dl-lookupcfg.h (_dl_unmap): Likewise.
+ * sysdeps/x86_64/dl-tlsdesc.h (_dl_make_tlsdesc_dynamic): Likewise.
+ * sysdeps/x86_64/tlsdesc.c (_dl_unmap): Likewise.
+
+2017-08-31 Florian Weimer <fweimer@redhat.com>
+
+ * gmon/gmon.c (write_hist, write_call_graph, write_bb_counts):
+ Remove internal_function.
+ * sysdeps/arm/machine-gmon.h (mcount_internal, _MCOUNT_DECL):
+ Likewise.
+ * sysdeps/sparc/machine-gmon.h (mcount_internal, _MCOUNT_DECL):
+ Likewise.
+
+2017-08-31 Florian Weimer <fweimer@redhat.com>
+
+ * dlfcn/dlerror.c (_dlerror_run): Remove internal_function.
+ * elf/dl-sym.c (_dl_vsym, _dl_sym): Likewise.
+ * include/dlfcn.h (_dl_sym, _dl_vsym, _dlerror_run): Likewise.
+
+2017-08-31 Florian Weimer <fweimer@redhat.com>
+
+ * resolv/gai_misc.c (__gai_find_request, __gai_remove_request)
+ (__gai_enqueue_request): Remove internal_function.
+ * resolv/gai_misc.h (__gai_enqueue_request, __gai_find_request)
+ (__gai_remove_request, __gai_notify, __gai_notify_only)
+ (__gai_sigqueue): Likewise.
+ * resolv/gai_notify.c (__gai_notify_only, __gai_notify): Likewise.
+ * resolv/gai_sigqueue.c (__gai_sigqueue): Likewise.
+ * resolv/inet_ntop.c (inet_ntop4, inet_ntop6): Likewise.
+ * sysdeps/unix/sysv/linux/gai_sigqueue.c (__gai_sigqueue):
+ Likewise.
+
+2017-08-31 Florian Weimer <fweimer@redhat.com>
+
+ * dirent/scandir-tail.c (SCANDIR_TAIL): Remove internal_function.
+ * include/dirent.h (__opendirat, __getdents, __getdents64)
+ (__alloc_dir, __scandir_tail, __scandir64_tail): Likewise.
+ * sysdeps/posix/opendir.c (__opendirat, __alloc_dir): Likewise.
+ * sysdeps/mach/hurd/opendir.c (__opendirat): Likewise.
+ * sysdeps/unix/sysv/linux/i386/olddirent.h (__old_getdents64):
+ Likewise.
+ * sysdeps/unix/sysv/linux/getdents.c (__GETDENTS): Likewise.
+
+2017-08-31 Florian Weimer <fweimer@redhat.com>
+
+ * sysdeps/unix/sysv/linux/getcwd.c (generic_getcwd): Remove
+ internal_function.
+ (GETCWD_RETURN_TYPE): Likewise.
+
+2017-08-31 Florian Weimer <fweimer@redhat.com>
+
+ * include/time.h (__tz_compute, __strptime_internal): Remove
+ internal_function.
+ * time/strptime_l.c (__strptime_internal): Likewise.
+ * time/tzset.c (compute_change, update_vars, __tz_compute): Likewise.
+
+2017-08-31 Florian Weimer <fweimer@redhat.com>
+
+ * iconv/gconv.c (__gconv): Remove internal_function.
+ * iconv/gconv_builtin.c (__gconv_get_builtin_trans): Likewise.
+ * iconv/gconv_cache.c (__gconv_load_cache, find_module_idx)
+ (find_module, __gconv_compare_alias_cache, __gconv_lookup_cache)
+ (__gconv_release_cache): Likewise.
+ * iconv/gconv_close.c (__gconv_close): Likewise.
+ * iconv/gconv_conf.c (detect_conflict, insert_module, add_module)
+ (read_conf_file, __gconv_get_path): Likewise.
+ * iconv/gconv_db.c (derivation_lookup, add_derivation)
+ (__gconv_release_step, gen_steps, increment_counter)
+ (find_derivation, __gconv_compare_alias, __gconv_find_transform)
+ (__gconv_close_transform, free_modules_db): Likewise.
+ * iconv/gconv_dl.c (__gconv_find_shlib, __gconv_release_shlib):
+ Likewise.
+ * iconv/gconv_int.h (__gconv_open, __gconv_close, __gconv)
+ (__gconv_find_transform, __gconv_lookup_cache)
+ (__gconv_release_step, __gconv_load_cache, __gconv_get_path)
+ (__gconv_close_transform, __gconv_release_cache)
+ (__gconv_loaded_object, __gconv_release_shlib)
+ (__gconv_compare_alias): Likewise.
+ * iconv/gconv_open.c (__gconv_open): Likewise.
+ * iconv/iconv_prog.c (print_known_names, add_known_names): Likewise.
+ * iconv/iconvconfig.c (add_module): Likewise.
+ * intl/dcigettext.c (plural_lookup, guess_category_value)
+ (category_to_name, get_output_charset, _nl_find_msg): Likewise.
+ * intl/eval-plural.h (plural_eval): Likewise.
+ * intl/finddomain.c (_nl_find_domain): Likewise.
+ * intl/gettextP.h (_nl_unload_domain, _nl_find_domain)
+ (_nl_load_domain, _nl_find_msg): Likewise.
+ (internal_function): Remove definition.
+ * intl/loadinfo.h (internal_function): Likewise.
+ * intl/loadmsgcat.c (_nl_load_domain, _nl_unload_domain): Remove
+ internal_function.
+ * intl/localealias.c (internal_function): Remove definition.
+ (read_alias_file): Remove internal_function.
+ * intl/plural-exp.c (EXTRACT_PLURAL_EXPRESSION): Likewise.
+ * intl/plural-exp.h (internal_function): Remove definition.
+ (FREE_EXPRESSION, EXTRACT_PLURAL_EXPRESSION): Remove
+ internal_function.
+ * intl/plural.c: Regenerate.
+ * intl/plural.y (FREE_EXPRESSION): Remove internal_function.
+ * locale/coll-lookup.c (__collidx_table_lookup)
+ (__collseq_table_lookup): Likewise.
+ * locale/coll-lookup.h (__collidx_table_lookup)
+ (__collseq_table_lookup): Likewise.
+ * locale/findlocale.c (_nl_find_locale, _nl_remove_locale): Likewise.
+ * locale/loadarchive.c (_nl_load_locale_from_archive): Likewise.
+ * locale/loadlocale.c (_nl_intern_locale_data, _nl_load_locale)
+ (_nl_unload_locale): Likewise.
+ * locale/localeinfo.h (struct __locale_data): Remove
+ internal_function from cleanup member.
+ (_nl_find_locale, _nl_load_locale, _nl_unload_locale)
+ (_nl_remove_locale, _nl_load_locale_from_archive)
+ (_nl_intern_locale_data, _nl_get_era_entry, _nl_select_era_entry)
+ (_nl_get_alt_digit, _nl_get_walt_digit, _nl_parse_alt_digit)
+ (_nl_cleanup_time): Remove internal_function.
+ * time/alt_digit.c (_nl_get_alt_digit, _nl_get_walt_digit)
+ (_nl_parse_alt_digit): Likewise.
+ * time/era.c (_nl_init_era_entries, _nl_get_era_entry)
+ (_nl_select_era_entry): Likewise.
+ * time/lc-time-cleanup.c (_nl_cleanup_time): Likewise.
+ * wcsmbs/wcsmbsload.c (__wcsmbs_load_conv, __wcsmbs_clone_conv)
+ (__wcsmbs_named_conv, _nl_cleanup_ctype): Likewise.
+ * wcsmbs/wcsmbsload.h (__wcsmbs_load_conv, __wcsmbs_clone_conv)
+ (__wcsmbs_named_conv, _nl_cleanup_ctype): Likewise.
+
+2017-08-31 Florian Weimer <fweimer@redhat.com>
+
+ * rt/aio_sigqueue.c (__aio_sigqueue): Remove internal_function.
+ * sysdeps/generic/aio_misc.h (__aio_sigqueue): Likewise.
+ * sysdeps/pthread/aio_misc.c (__aio_free_request, __aio_find_req)
+ (__aio_find_req_fd, __aio_remove_request, __aio_enqueue_request):
+ Likewise.
+ * sysdeps/pthread/aio_misc.h (__aio_enqueue_request)
+ (__aio_find_req, __aio_find_req_fd, __aio_free_request)
+ (__aio_notify, __aio_notify_only, __aio_sigqueue): Likewise.
+ * sysdeps/pthread/aio_notify.c (__aio_notify_only, __aio_notify):
+ Likewise.
+ * sysdeps/unix/sysv/linux/aio_sigqueue.c (__aio_sigqueue): Likewise.
+
+2017-08-31 Florian Weimer <fweimer@redhat.com>
+
+ * misc/getttyent.c (skip, value): Remove internal_function.
+ * misc/syslog.c (openlog_internal): Likewise.
+ * misc/tsearch.c (trecurse, tdestroy_recurse): Likewise.
+
+2017-08-31 Florian Weimer <fweimer@redhat.com>
+
+ * include/nss.h (__nss_valid_field, __nss_valid_list_field)
+ (__nss_rewrite_field): Remove internal_function.
+ * nscd/nscd_getgr_r.c (nscd_getgr_r): Likewise.
+ * nscd/nscd_gethst_r.c (nscd_gethst_r): Likewise.
+ * nscd/nscd_getpw_r.c (nscd_getpw_r): Likewise.
+ * nss/nsswitch.c (nss_parse_file, nss_getline)
+ (nss_parse_service_list, nss_new_service): Likewise.
+ * nss/rewrite_field.c (__nss_rewrite_field): Likewise.
+ * nss/valid_field.c (__nss_valid_field): Likewise.
+ * nss/valid_list_field.c (__nss_valid_list_field): Likewise.
+
+2017-08-31 Florian Weimer <fweimer@redhat.com>
+
+ * malloc/arena.c (__malloc_fork_lock_parent)
+ (__malloc_fork_unlock_parent, __malloc_fork_unlock_child)
+ (next_env_entry, new_heap, heap_trim, arena_get2): Remove
+ internal_function from defintions.
+ * malloc/hooks.c (mem2mem_check, mem2chunk_check): Likewise.
+ * malloc/malloc-internal.h (__malloc_fork_lock_parent)
+ (__malloc_fork_unlock_parent, __malloc_fork_unlock_child): Remove
+ internal_function from declarations.
+ * malloc/malloc.c (internal_function): Do not define.
+ (mem2mem_check): Remove internal_function from declaration.
+ (munmap_chunk, mremap_chunk): Remove internal_function.
+ * malloc/mtrace.c (tr_where): Likewise.
+
+2017-08-31 Florian Weimer <fweimer@redhat.com>
+
+ * include/rpc/pmap_clnt.h (__get_socket): Remove
+ internal_function.
+ * sunrpc/auth_des.c (synchronize): Likewise.
+ * sunrpc/auth_unix.c (marshal_new_auth): Likewise.
+ * sunrpc/clnt_perr.c (auth_errmsg): Likewise.
+ * sunrpc/des_impl.c (des_encrypt, des_set_key): Likewise.
+ * sunrpc/key_call.c (key_call_keyenvoy, key_call_socket)
+ (key_call): Likewise.
+ * sunrpc/pm_getport.c (__get_socket): Likewise.
+ * sunrpc/pmap_rmt.c (getbroadcastnets): Likewise.
+ * sunrpc/svc_unix.c (makefd_xprt): Likewise.
+ * sunrpc/svc_tcp.c (makefd_xprt): Likewise.
+ * sunrpc/svcauth_des.c (cache_init, cache_spot, cache_ref)
+ (invalidate): Likewise.
+ * sunrpc/xcrypt.c (hexval, hex2bin, bin2hex): Likewise.
+ * sunrpc/xdr_rec.c (fix_buf_size, skip_input_bytes, flush_out)
+ (set_input_fragment, get_input_bytes): Likewise.
+
+2017-08-31 Florian Weimer <fweimer@redhat.com>
+
+ * malloc/malloc.c (_int_free): Remove locked variable and related
+ asserts.
+
+2017-08-31 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #22051]
+ * Makerules (build-module-helper-objlist): Filter out
+ $(elf-objpfx)sofini.os.
+ (build-shlib-objlist): Append $(elf-objpfx)sofini.os if it is
+ needed.
+
+2017-08-31 Florian Weimer <fweimer@redhat.com>
+
+ * libio/fcloseall.c: Assume weak_alias is defined.
+ * libio/feof.c: Likewise.
+ * libio/fileno.c: Likewise.
+ * libio/fileops.c: Assume _LIBC, errno, __set_errno are defined.
+ (_POSIX_SOURCE, open, lseek, read, write): Remove macro
+ definitions.
+ (_IO_file_open): Call __open directly.
+ (_IO_new_file_sync): Assume ESPIPE is defined.
+ (_IO_file_seekoff_maybe_mmap): Call __read directly.
+ (_IO_new_file_write): Call __write directly.
+ * libio/ftello.c (__ftello): Assume EIO, EOVERFLOW are defined.
+ * libio/ftello64.c (__ftello64): Assume EIO is defined.
+ * libio/genops.c: Assume _LIBC is defined.
+ (save_for_backup): Remove internal_function.
+ * libio/getc.c: Assume weak_alias is defined.
+ * libio/getwc.c: Likewise.
+ * libio/iofclose.c: Assume _LIBC is defined.
+ * libio/iofdopen.c: Likewise.
+ (_IO_fcntl): Remove macro definition.
+ (_IO_new_fdopen): Assume F_GETFL, F_SETFL, O_ACCMODE are defined.
+ Call __fcntl directly.
+ * libio/iofflush.c: Assume weak_alias is defined.
+ * libio/iofgetpos.c (_IO_new_fgetpos): Assume EIO, EOVERFLOW are
+ defined.
+ * libio/iofgetpos64.c (_IO_new_fgetpos64): Assume EIO is defined.
+ * libio/iofgets.c: Likewise.
+ * libio/iofopen.c: Assume _LIBC is defined.
+ * libio/iofopen64.c: Assume _LIBC, weak_alias are defined.
+ * libio/iofputs.c: Assume weak_alias is defined.
+ * libio/iofread.c: Likewise.
+ * libio/iofsetpos.c (_IO_new_fsetpos): Assume EIO is defined.
+ * libio/iofsetpos64.c (_IO_new_fsetpos64): Likewise.
+ * libio/ioftell.c: Assume weak_alias is defined.
+ (_IO_ftell): Assume EIO, EOVERFLOW are defined.
+ * libio/iofwide.c: Assume _LIBC is defined.
+ (_IO_fwide): Drop SHARED conditional because it is implied by
+ SHLIB_COMPAT.
+ * libio/iofwrite.c: Assume weak_alias is defined.
+ * libio/iogetdelim.c: Likewise.
+ * libio/iogets.c: Assume _LIBC, weak_alias are defined.
+ * libio/iogetwline.c (wmemcpy): Remove macro definition.
+ (_IO_getwline): Call __wmemcpy directly.
+ * libio/iopopen.c: Assume _LIBC is defined.
+ (_POSIX_SOURCE, _IO_fork, _IO_dup2, _IO_waitpid, _IO_execl)
+ (_IO_close): Remove macro definitions.
+ (_IO_new_proc_open): Call __fork, __dup2, __close_nocancel, execl,
+ _exit directly.
+ (_IO_new_proc_close): Call __close_nocancel, __waitpid_nocancel
+ directly.
+ * libio/ioputs.c: Assume weak_alias is defined.
+ * libio/ioseekoff.c: Assume errno, __set_errno are defined.
+ * libio/iosetbuffer.c: Assume weak_alias is defined.
+ * libio/iosetvbuf.c: Likewise.
+ * libio/ioungetc.c: Likewise.
+ * libio/libioP.h: Assume _LIBC, __GLIBC__, libc_hidden_proto,
+ libc_hidden_def, libc_hidden_weak, NULL are defined.
+ (mmap, munmap, ftruncate, OS_FSTAT): Remove macro definitions.
+ * libio/oldfilepos.c: Assume _LIBC, errno, __set_errno are
+ defined.
+ (_POSIX_SOURCE, open, lseek, read, write): Remove macro
+ definitions.
+ (_IO_old_file_init_internal): Drop SHARED conditional because it
+ is implied by SHLIB_COMPAT.
+ (_IO_old_file_fopen): Call __open directly.
+ (_IO_old_file_sync): Assume ESPIPE is defined.
+ (_IO_old_file_write): Call __write directly.
+ * libio/oldfdopen.c (_IO_fcntl): Remove macro definition.
+ (_IO_old_fdopen): Assume F_GETFL, O_ACCMODE, F_SETFL are defined.
+ Call __fcntl directly.
+ * libio/oldiofgetpos.c: Assume weak_alias is defined.
+ (_IO_old_fgetpos): Assume EIO is defined.
+ * libio/oldiofgetpos64.c: Assume weak_alias is defined.
+ (_IO_old_fgetpos64): Assume EIO is defined.
+ * libio/oldiofsetpos.c: Assume weak_alias is defined.
+ (_IO_old_fsetpos): Assume EIO is defined.
+ * libio/oldiofsetpos64.c: Assume weak_alias is defined.
+ (_IO_old_fsetpos64): Assume EIO is defined.
+ * libio/oldiopopen.c: Assume _LIBC is defined.
+ (_POSIX_SOURCE, _IO_fork, _IO_dup2, _IO_waitpid, _IO_execl)
+ (_IO_close): Remove macro definitions.
+ (_IO_old_proc_open): Call __pipe, __close, __dup2, execl, _exit
+ directly.
+ (_IO_old_proc_close): Call __close, __waitpid directly.
+ * libio/put.c: Assume weak_alias is defined.
+ * libio/stdfiles.c: Assume _LIBC is defined.
+ * libio/stdio.c: Likewise.
+ * libio/wfileops.c: Likewise.
+ (_IO_wfile_sync): Assume ESPIPE is defined.
+ * libio/wgenops.c: Assume _LIBC is defined.
+ (save_for_wbackup): Remove internal_function.
+
+2017-08-31 Florian Weimer <fweimer@redhat.com>
+
+ * malloc/malloc.c (top_check): Change return type to void. Remove
+ internal_function.
+ * malloc/hooks.c (top_check): Likewise.
+ (malloc_check, realloc_check, memalign_check): Adjust.
+
+2017-08-30 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #21457]
+ * sysdeps/arm/sys/ucontext.h: Do not include <bits/sigcontext.h>.
+ * sysdeps/generic/sys/ucontext.h: Add comment about use of struct
+ sigcontext and namespace requirements.
+ * sysdeps/i386/sys/ucontext.h: Do not include <bits/sigcontext.h>.
+ * sysdeps/m68k/sys/ucontext.h: Likewise.
+ * sysdeps/mips/sys/ucontext.h: Likewise. Include <bits/types.h>.
+ * sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h: Do not include
+ <bits/sigcontext.h>.
+ (__ctx): Define earlier.
+ (mcontext_t): Define structure contents rather than using struct
+ sigcontext.
+ * sysdeps/unix/sysv/linux/aarch64/ucontext_i.sym (oEXTENSION): Use
+ __glibc_reserved1 instead of __reserved.
+ * sysdeps/unix/sysv/linux/alpha/sys/ucontext.h: Do not include
+ <bits/sigcontext.h>.
+ (__ctx): Define earlier.
+ (mcontext_t): Define structure contents rather than using struct
+ sigcontext.
+ * sysdeps/unix/sysv/linux/alpha/ucontext-offsets.sym: Use
+ mcontext_t instead of struct sigcontext.
+ * sysdeps/unix/sysv/linux/arm/sys/ucontext.h: Do not include
+ <bits/sigcontext.h>.
+ (__ctx): Define earlier.
+ (mcontext_t): Define structure contents rather than using struct
+ sigcontext.
+ * sysdeps/unix/sysv/linux/hppa/sys/ucontext.h: Do not include
+ <bits/sigcontext.h>.
+ (__ctx): Define earlier.
+ (mcontext_t): Define structure contents rather than using struct
+ sigcontext.
+ * sysdeps/unix/sysv/linux/ia64/makecontext.c (__makecontext): Use
+ mcontext_t instead of struct sigcontext.
+ * sysdeps/unix/sysv/linux/ia64/sigcontext-offsets.sym: Use
+ mcontext_t instead of struct sigcontext.
+ * sysdeps/unix/sysv/linux/ia64/sys/ucontext.h: Do not include
+ <bits/sigcontext.h>.
+ (__ctx): New macro.
+ (struct __ia64_fpreg_mcontext): New type.
+ (mcontext_t): Define structure contents rather than using struct
+ sigcontext.
+ (_SC_GR0_OFFSET): Use mcontext_t instead of struct sigcontext.
+ (uc_sigmask): Define using __ctx.
+ (uc_stack): Likewise.
+ * sysdeps/unix/sysv/linux/ia64/sys/procfs.h: Include
+ <bits/sigcontext.h>.
+ * sysdeps/unix/sysv/linux/ia64/sys/ptrace.h: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/sys/ucontext.h: Do not include
+ <bits/sigcontext.h>.
+ * sysdeps/unix/sysv/linux/microblaze/sys/ucontext.h: New file.
+ * sysdeps/unix/sysv/linux/mips/sys/ucontext.h: Do not include
+ <bits/sigcontext.h>.
+ * sysdeps/unix/sysv/linux/nios2/sys/ucontext.h: Do not include
+ <bits/sigcontext.h>.
+ * sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h: Do not include
+ <bits/sigcontext.h>.
+ * sysdeps/unix/sysv/linux/s390/sys/ucontext.h: Do not include
+ <bits/sigcontext.h>.
+ * sysdeps/unix/sysv/linux/sh/sys/ucontext.h: Do not include
+ <bits/sigcontext.h>.
+ * sysdeps/unix/sysv/linux/sparc/sys/ucontext.h: Do not include
+ <bits/sigcontext.h>.
+ * sysdeps/unix/sysv/linux/tile/sys/ucontext.h: Do not include
+ <bits/sigcontext.h>.
+ (__ctx): Define earlier.
+ (mcontext_t): Define structure contents rather than using struct
+ sigcontext.
+ * sysdeps/unix/sysv/linux/x86/sys/ucontext.h: Do not include
+ <bits/sigcontext.h>. Include <bits/types.h>.
+ * conform/Makefile (test-xfail-XPG42/signal.h/conform): Remove.
+ (test-xfail-XPG42/sys/wait.h/conform): Likewise.
+ (test-xfail-XPG42/ucontext.h/conform): Likewise.
+ (test-xfail-UNIX98/signal.h/conform): Likewise.
+ (test-xfail-UNIX98/sys/wait.h/conform): Likewise.
+ (test-xfail-UNIX98/ucontext.h/conform): Likewise.
+ (test-xfail-XOPEN2K/signal.h/conform): Likewise.
+ (test-xfail-XOPEN2K/sys/wait.h/conform): Likewise.
+ (test-xfail-XOPEN2K/ucontext.h/conform): Likewise.
+ (test-xfail-POSIX2008/signal.h/conform): Likewise.
+ (test-xfail-POSIX2008/sys/wait.h/conform): Likewise.
+ (test-xfail-XOPEN2K8/signal.h/conform): Likewise.
+ (test-xfail-XOPEN2K8/sys/wait.h/conform): Likewise.
+
+2017-08-30 Florian Weimer <fweimer@redhat.com>
+
+ * malloc/dynarray_emplace_enlarge.c
+ (__libc_dynarray_emplace_enlarge): Set errno on overflow.
+ * malloc/dynarray_resize.c (__libc_dynarray_resize): Likewise.
+ * malloc/tst-dynarray.c (test_long_overflow): New function.
+ (do_test): Call it.
+
+2017-08-30 Florian Weimer <fweimer@redhat.com>
+
+ * malloc/malloc.c (ARENA_CORRUPTION_BIT, arena_is_corrupt)
+ (set_arena_corrupt): Remove definitions.
+ (mtrim): Do not check for corrupt arena.
+ * malloc/arena.c (arena_lock, reused_arena, arena_get_retry):
+ Likewise.
+
+2017-08-30 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #21754]
+ * malloc/arena.c (TUNABLE_CALLBACK set_mallopt_check): Do not set
+ check_action.
+ (ptmalloc_init): Do not set or use check_action.
+ * malloc/hooks.c (malloc_check_get_size, realloc_check): Adjust
+ call to malloc_printerr. Remove return statement.
+ (free_check): Likewise. Remove arena unlock.
+ (top_check): Update comment. Adjust call to malloc_printerr.
+ Remove heap repair code.
+ * malloc/malloc.c (unlink): Adjust calls to malloc_printerr.
+ (DEFAULT_CHECK_ACTION, check_action): Remove definitions.
+ (sysmalloc): Adjust call to malloc_printerr.
+ (munmap_chunk, __libc_realloc): Likewise. Remove return
+ statement.
+ (_int_malloc, int_realloc): Likewise. Remove errstr variable.
+ Remove errout label and corresponding gotos.
+ (_int_free): Likewise. Remove arena unlock.
+ (do_set_mallopt_check): Do not set check_action.
+ (malloc_printerr): Adjust parameter list. Do not mark arena as
+ corrupt.
+ * manual/memory.texi (Malloc Tunable Parameters): Remove TODO
+ comment.
+ * manual/probes.texi (Memory Allocation Probes): Remove
+ memory_mallopt_check_action.
+
+2017-08-30 Steve Ellcey <sellcey@cavium.com>
+
+ * sysdeps/unix/sysv/linux/aarch64/makecontext.c (__makecontext):
+ Use pointer to uint64_t instead of long int for sp.
+
+2017-08-30 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #21754]
+ * malloc/malloc.c (malloc_printerr): Always terminate the process,
+ without printing a backtrace. Do not leak any information in the
+ error message.
+ * manual/memory.texi (Heap Consistency Checking): Update.
+ * manual/tunables.texi (Memory Allocation Tunables): Likewise.
+
+2017-08-30 Florian Weimer <fweimer@redhat.com>
+
+ Do not scale NPTL tests with available number of CPUs.
+ * nptl/tst-cond16.c (count): Set to constant value of 8.
+ * nptl/tst-cond18.c (count): Likewise.
+
+2017-08-29 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #22035]
+ * sysdeps/m68k/m680x0/fpu/bits/mathinline.h (__inline_functions):
+ Define to take a second argument that is a macro that
+ concatentates a suffix, not the suffix itself.
+ (__CONCAT_d): New macro.
+ (__CONCAT_f): Likewise.
+ (__CONCAT_l): Likewise.
+
+2017-08-29 Paul Pluzhnikov <ppluzhnikov@google.com>
+
+ * stdlib/tst-atexit-common.c (do_test): Test handler inheritance
+ by child.
+
+2017-08-29 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+ Aurelien Jarno <aurelien@aurel32.net>
+ Maciej W. Rozycki <macro@imgtec.com>
+
+ [BZ #21956]
+ * sysdeps/unix/sysv/linux/mips/mips32/mips16/Makefile
+ [subdir = misc] (sysdep_routines): Remove `mips16-syscall5',
+ `mips16-syscall6' and `mips16-syscall7'.
+ (CFLAGS-mips16-syscall5.c, CFLAGS-mips16-syscall6.c)
+ (CFLAGS-mips16-syscall7.c): Remove.
+ * sysdeps/unix/sysv/linux/mips/mips32/mips16/Versions (libc):
+ Remove `__mips16_syscall5', `__mips16_syscall6' and
+ `__mips16_syscall7'.
+ * sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall0.c
+ (__mips16_syscall0): Rename `__mips16_syscall_return' to
+ `__mips_syscall_return'.
+ * sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall1.c
+ (__mips16_syscall1): Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall2.c
+ (__mips16_syscall2): Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall3.c
+ (__mips16_syscall3): Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall4.c
+ (__mips16_syscall4): Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall5.c:
+ Remove.
+ * sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall6.c:
+ Remove.
+ * sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall7.c:
+ Remove.
+ * sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall.h
+ (__mips16_syscall5): Expand to `__mips_syscall5' rather than
+ `__mips16_syscall5'. Remove prototype.
+ (__mips16_syscall6): Expand to `__mips_syscall6' rather than
+ `__mips16_syscall6'. Remove prototype.
+ (__mips16_syscall7): Expand to `__mips_syscall7' rather than
+ `__mips16_syscall7'. Remove prototype.
+ (__nomips16, __mips16_syscall_return): Move to...
+ * sysdeps/unix/sysv/linux/mips/mips32/sysdep.h
+ (__nomips16, __mips_syscall_return): ... here.
+ [__mips16] (INTERNAL_SYSCALL_NCS): Rename
+ `__mips16_syscall_return' to `__mips_syscall_return'.
+ [__mips16] (INTERNAL_SYSCALL_MIPS16): Pass `number' to
+ `internal_syscall##nr'.
+ [!__mips16] (INTERNAL_SYSCALL): Pass `SYS_ify (name)' to
+ `internal_syscall##nr'.
+ (FORCE_FRAME_POINTER): Remove.
+ (__mips_syscall5): New prototype.
+ (internal_syscall5): Rewrite to call `__mips_syscall5'.
+ (__mips_syscall6): New prototype.
+ (internal_syscall6): Rewrite to call `__mips_syscall6'.
+ (__mips_syscall7): New prototype.
+ (internal_syscall7): Rewrite to call `__mips_syscall7'.
+ * sysdeps/unix/sysv/linux/mips/mips32/mips-syscall5.S: New file.
+ * sysdeps/unix/sysv/linux/mips/mips32/mips-syscall6.S: New file.
+ * sysdeps/unix/sysv/linux/mips/mips32/mips-syscall7.S: New file.
+ * sysdeps/unix/sysv/linux/mips/mips32/Makefile [subdir = misc]
+ (sysdep_routines): Add libc-do-syscall.
+ * sysdeps/unix/sysv/linux/mips/mips32/Versions (libc): Add
+ `__mips_syscall5', `__mips_syscall6' and `__mips_syscall7'.
+
+2017-08-29 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ [BZ #21672]
+ * nptl/allocatestack.c [_STACK_GROWS_DOWN] (setup_stack_prot):
+ Set to use !NEED_SEPARATE_REGISTER_STACK as well.
+ (advise_stack_range): New function.
+ * nptl/pthread_create.c (START_THREAD_DEFN): Move logic to mark
+ stack non required to advise_stack_range at allocatestack.c
+
+2017-08-29 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * sysdeps/unix/sysv/linux/aarch64/sys/procfs.h: Use __uint64_t.
+
+2017-08-29 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #22026]
+ * iconv/gconv_db.c (gen_steps): Decrement step_cnt after resetting
+ __end_fct. Mangle __end_fct after setting it to NULL.
+ * iconv/Makefile (tests): Add tst-gconv-init-failure.
+ (modules-names, modules-names-tests): Add
+ tst-gconv-init-failure-mod.
+ (gconv-modules): New target.
+ (tst-gconv-init-failure-mod.so): Link against libsupport.
+ (tst-gconv-init-failure): Depend on gconv-modules,
+ tst-gconv-init-failure-mod.so.
+ * iconv/tst-gconv-init-failure-mod.c: New file.
+ * iconv/tst-gconv-init-failure.c: Likewise.
+ * iconv/test-gconv-modules: Likewise.
+
+2017-08-29 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #22025]
+ * iconv/gconv_db.c (free_derivation): Remove redundant
+ parentheses.
+ (gen_steps): Unconditionally mangle __btowc_fct after
+ initialization.
+ (increment_counter): Likewise. Do not call init_fct for internal
+ modules.
+
+2017-08-29 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #22028]
+ * math/math.h [__FINITE_MATH_ONLY__ && __FINITE_MATH_ONLY__ > 0]
+ (_MSUF_): Remove macro.
+ [__FINITE_MATH_ONLY__ && __FINITE_MATH_ONLY__ > 0] (_MSUFTO_):
+ Likewise.
+ [__FINITE_MATH_ONLY__ && __FINITE_MATH_ONLY__ > 0]
+ (__REDIRFROM_X): New macro.
+ [__FINITE_MATH_ONLY__ && __FINITE_MATH_ONLY__ > 0] (__REDIRTO_X):
+ Likewise.
+ * math/bits/math-finite.h (__REDIRFROM_X): Remove macro.
+ (__REDIRTO_X): Likewise.
+ (__MATH_REDIRCALL): Do not pass _MSUF_ or _MSUFTO_ macro
+ arguments.
+ (__MATH_REDIRCALL_2): Likewise.
+ (__MATH_REDIRCALL_INTERNAL): Likewise.
+ (__REDIRFROM (lgamma, , _MSUF_)): Likewise.
+ (__REDIRFROM (gamma, , _MSUF_)): Likweise.
+ (__REDIRFROM (__gamma, _r_finite, _MSUF_)): Likewise.
+ (__REDIRFROM (tgamma, , _MSUF_)): Likewise.
+ * math/test-finite-macros.c: New file.
+ * math/Makefile (tests): Add test-finite-macros.
+ (CFLAGS-test-finite-macros.c): New variable.
+
+2017-08-29 Patsy Franklin <pfrankli@redhat.com>
+ Jeff Law <law@redhat.com>
+
+ [BZ #22025]
+ Mangle NULL pointers in iconv/gconv.
+ * iconv/gconv_cache.c (find_module): Demangle init_fct before
+ checking for NULL. Mangle __btowc_fct if init_fct is non-NULL.
+ * iconv/gconv_db.c (free_derivation): Check that __shlib_handle
+ is non-NULL before demangling the end_fct. Check for NULL
+ end_fct after demangling.
+ (__gconv_release_step): Demangle the end_fct before checking
+ it for NULL. Remove assert on __shlibc_handle != NULL.
+ (gen_steps): Don't check btowc_fct for NULL before mangling.
+ Demangle init_fct before checking for NULL.
+ (increment_counter): Likewise.
+ * gconv_dl.c (__gconv_find_shlib): Don't check init_fct or
+ end_fct for NULL before mangling.
+ * wcsmbs/btowc.c (__btowc): Demangle btowc_fct before checking
+ for NULL.
+
+2017-08-29 Akhilesh Kumar <akhilesh.k@samsung.com>
+
+ [BZ #21971]
+ * locale/iso-639.def: add Morisyen.
+
+2017-08-28 Gabriel F. T. Gomes <gftg@linux.vnet.ibm.com>
+
+ [BZ #21930]
+ * math/math.h [defined __cplusplus && defined __SUPPORT_SNAN__]
+ (iszero): New C++ implementation that does not use
+ fpclassify/__MATH_TG/__builtin_types_compatible_p, when
+ signaling nans are enabled, since __builtin_types_compatible_p
+ is a C-only feature.
+ * math/test-math-iszero.cc: When __HAVE_DISTINCT_FLOAT128 is
+ defined, include ieee754_float128.h for access to the union and
+ member ieee854_float128.ieee.
+ [__HAVE_DISTINCT_FLOAT128] (do_test): Call check_float128.
+ [__HAVE_DISTINCT_FLOAT128] (check_float128): New function.
+ * sysdeps/powerpc/powerpc64le/Makefile [subdir == math]
+ (CXXFLAGS-test-math-iszero.cc): Add -mfloat128 to the build
+ options of test-math-zero on powerpc64le.
+
+2017-08-28 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86_64/fpu/multiarch/e_expf.c (__redirect_ieee754_expf):
+ Change double to float.
+
+2017-08-28 Joseph Myers <joseph@codesourcery.com>
+
+ * math/math-svid-compat.h [!__ASSEMBLER__]: Make code
+ unconditional.
+ * sysdeps/ieee754/s_lib_version.c [!defined SHARED]: Remove
+ conditional code; define contents only for [LIBM_SVID_COMPAT].
+
+2017-08-28 Florian Weimer <fweimer@redhat.com>
+
+ * sysdeps/unix/sysv/linux/aarch64/Makefile (abi-lp64-options)
+ (abi-lp64_be-options): Remove.
+ * sysdeps/unix/sysv/linux/arm/Makefile (abi-soft-options)
+ (abi-hard-options): Likewise.
+ * sysdeps/unix/sysv/linux/mips/Makefile(abi-o32_soft-options)
+ (abi-o32_hard-options, abi-o32_soft_2008-options)
+ (abi-o32_hard_2008-options, abi-n32_soft-options)
+ (abi-n32_hard-options, abi-n32_soft_2008-options)
+ (abi-n32_hard_2008-options, abi-n64_soft-options)
+ (abi-n64_hard-options, abi-n64_soft_2008-options)
+ (abi-n64_hard_2008-options): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/Makefile (abi-32-options)
+ (abi-64-v1-options, abi-64-v2-options): Likewise.
+ * sysdeps/unix/sysv/linux/s390/Makefile (abi-32-options)
+ (abi-64-options): Likewise.
+ * sysdeps/unix/sysv/linux/sparc/Makefile (abi-32-options)
+ (abi-64-options): Likewise.
+ * sysdeps/unix/sysv/linux/tile/tilegx/Makefile (abi-32-options)
+ (abi-64-options): Likewise.
+ * sysdeps/unix/sysv/linux/x86/Makefile (abi-32-options)
+ (abi-64-options, abi-x32-options): Likewise.
+
+2017-08-28 Florian Weimer <fweimer@redhat.com>
+
+ Store supported list of SYS_* system calls in the source tree.
+ * sysdeps/unix/sysv/linux/Makefile [$(subdir) = misc]
+ (bits/syscall.h): Generate from list file.
+ [$(subdir) = misc] (before-compile): Add bits/syscall.h.
+ [$(subdir) = misc] (tests): Add tst-syscall-list.
+ [$(subdir) = misc] (tests-special): Add tst-syscall-list.out
+ [$(subdir) = misc] (tst-syscall-list-macros.list)
+ [$(subdir) = misc] (tst-syscall-list-nr.list)
+ (tst-syscall-list-sys.list): Helper targets for new
+ tst-syscall-list test.
+ [$(subdir) = misc] (tst-syscall-list.out): Run test script
+ tst-syscall-list.sh.
+ [$(subdir) = misc] (bits/syscall%h, bits/syscall%d): Remove
+ target. Do not include bits/syscall.d.
+ [$(subdir) = misc] (generated): Do not update.
+ * sysdeps/unix/sysv/linux/syscall-names.list: New file.
+ * sysdeps/unix/sysv/linux/gen-syscall-h.awk: Likewise.
+ * sysdeps/unix/sysv/linux/filter-nr-syscalls.awk: Likewise.
+ * sysdeps/unix/sysv/linux/tst-syscall-list.sh: Likewise.
+
+2017-08-27 Paul Pluzhnikov <ppluzhnikov@google.com>
+
+ * stdlib/Makefile (tst-atexit, tst-at_quick_exit): New tests.
+ (tst-cxa_atexit, tst-on_exit): Likewise.
+ * stdlib/Makefile (tests): Add tst-atexit, tst-at_quick_exit,
+ tst-cxa_atexit, and tst-on_exit.
+ * stdlib/tst-atexit-common.c: New file.
+ * stdlib/tst-atexit.c: New file.
+ * stdlib/tst-at_quick_exit.c: New file.
+ * stdlib/tst-cxa_atexit.c: New file.
+ * stdlib/tst-on_exit.c: New file.
+
+2017-08-27 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * sysdeps/mach/hurd/bits/sysmacros.h: New file.
+ * mach/stack_chk_fail_local.c: New file.
+ * hurd/stack_chk_fail_local.c: New file.
+ * mach/Machrules ($(interface-library)-routines): Add
+ stack_chk_fail_local.
+ * mach/Makefile (CFLAGS-mach_init.o, CFLAGS-RPC_vm_statistics.o,
+ CFLAGS-RPC_vm_map.o, CFLAGS-RPC_vm_protect.o,
+ CFLAGS-RPC_i386_set_gdt.o, CFLAGS-RPC_i386_set_ldt.o,
+ CFLAGS-RPC_task_get_special_port.o): Add $(no-stack-protector).
+ * hurd/Makefile (CFLAGS-hurdstartup.o,
+ CFLAGS-RPC_exec_startup_get_info.o): Add $(no-stack-protector).
+
+2017-08-25 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86/cpu-features.h [__ASSEMBLER__]
+ (index_cpu_*, index_arch_*): Removed.
+
+2017-08-25 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * sysdeps/unix/sysv/linux/aarch64/sys/procfs.h (elf_greg_t):
+ Use uint64_t instead of unsigned long.
+
+2017-08-25 Joseph Myers <joseph@codesourcery.com>
+
+ * math/tgmath.h [__HAVE_FLOAT128]: Change conditional to
+ [__HAVE_DISTINCT_FLOAT128].
+
+ * math/math.h (_MSUFTO_): Define and undefine for each inclusion
+ of <bits/math-finite.h>.
+ (__MATH_DECLARING_LDOUBLE): Do not define and undefine for each
+ inclusion of <bits/math-finite.h>.
+ * math/bits/math-finite.h (__REDIRTO_X): Do not define
+ conditionally on [__MATH_DECLARING_LDOUBLE && defined
+ __NO_LONG_DOUBLE_MATH].
+ (__MATH_REDIRCALL): Use _MSUFTO_ in __REDIRTO call.
+ (__MATH_REDIRCALL_2): Likewise.
+ (__MATH_REDIRCALL_INTERNAL): Likewise.
+ (__REDIRFROM (lgamma, , _MSUF_)): Likewise.
+ (__REDIRFROM (gamma, , _MSUF_)): Likewise.
+ (__REDIRFROM (tgamma, , _MSUF_)): Likewise.
+
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/w_sqrt_compat-power5.S:
+ Remove file.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/w_sqrt_compat-ppc32.S:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/w_sqrt_compat.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/w_sqrtf_compat-power5.S:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/w_sqrtf_compat-ppc32.S:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/w_sqrtf_compat.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/w_sqrt_compat.S: Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/w_sqrtf_compat.S: Likewise.
+ * sysdeps/powerpc/powerpc32/power5/fpu/w_sqrt_compat.S: Likewise.
+ * sysdeps/powerpc/powerpc32/power5/fpu/w_sqrtf_compat.S: Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/Makefile
+ (libm-sysdep-routines): Remove w_sqrt_compat-power5,
+ w_sqrt_compat-ppc32, w_sqrtf_compat-power5 and
+ w_sqrtf_compat-ppc32.
+
+2017-08-24 Gabriel F. T. Gomes <gftg@linux.vnet.ibm.com>
+
+ * math/math.h [defined __cplusplus] (issignaling): In the long
+ double case, call __issignalingl only if __NO_LONG_DOUBLE_MATH
+ is not defined. Call __issignaling, otherwise.
+
+2017-08-24 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/unix/make-syscalls.sh: Remove cancellable tagging for
+ syscall definitions and replace __builtin_expect with __glibc_likely.
+ * sysdeps/unix/syscall-template.S: Update comment about cancellable
+ syscall.
+ (SYSCALL_CANCELLABLE): Removedefinition
+ * sysdeps/unix/sysv/linux/aarch64/sysdep-cancel.h (PSEUDO): Remove
+ definition.
+ (PSEUDO_END): Likewise.
+ [IS_IN (libpthread)] (CENABLE): Likewise.
+ [IS_IN (libpthread)] (CDISABLE): Likewise.
+ [IS_IN (libc)] (CENABLE): Likewise.
+ [IS_IN (libc)] (CENABLE): Likewise.
+ [IS_IN (librt)] (CDISABLE): Likewise.
+ [IS_IN (librt)] (CDISABLE): Likewise.
+ [__ASSEMBLER__] (SINGLE_THREAD_P): Likewise.
+ * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (PSEUDO): Remove
+ definition.
+ (PSEUDO_END): Likewise.
+ [IS_IN (libpthread)] (__local_enable_asynccancel): Likewise.
+ [IS_IN (libpthread)] (__local_disable_asynccancel): Likewise.
+ [IS_IN (libc)] (__local_enable_asynccancel): Likewise.
+ [IS_IN (libc)] (__local_enable_asynccancel): Likewise.
+ [IS_IN (librt)] (__local_disable_asynccancel): Likewise.
+ [IS_IN (librt)] (__local_disable_asynccancel): Likewise.
+ (CENABLE): Likewise.
+ (CDISABLE): Likewise.
+ [__ASSEMBLER__] (SINGLE_THREAD_P): Likewise.
+ * sysdeps/unix/sysv/linux/arm/sysdep-cancel.h (PSEUDO): Remove
+ defintion.
+ (PSEUDO_END): Likewise.
+ [IS_IN (libpthread)] (CENABLE): Likewise.
+ [IS_IN (libpthread)] (CDISABLE): Likewise.
+ [IS_IN (libc)] (CENABLE): Likewise.
+ [IS_IN (libc)] (CENABLE): Likewise.
+ [IS_IN (librt)] (CDISABLE): Likewise.
+ [IS_IN (librt)] (CDISABLE): Likewise.
+ [__ASSEMBLER__] (SINGLE_THREAD_P): Likewise.
+ * sysdeps/unix/sysv/linux/hppa/sysdep-cancel.h (PSEUDO): Remove
+ definition.
+ (PSEUDO_END): Likewise.
+ [IS_IN (libpthread)] (CENABLE): Likewise.
+ [IS_IN (libpthread)] (CDISABLE): Likewise.
+ [IS_IN (libc)] (CENABLE): Likewise.
+ [IS_IN (libc)] (CENABLE): Likewise.
+ [IS_IN (librt)] (CDISABLE): Likewise.
+ [IS_IN (librt)] (CDISABLE): Likewise.
+ [__ASSEMBLER__] (SINGLE_THREAD_P): Likewise.
+ * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (PSEUDO): Remove
+ definition.
+ (PSEUDO_END): Likewise.
+ [IS_IN (libpthread)] (CENABLE): Likewise.
+ [IS_IN (libpthread)] (CDISABLE): Likewise.
+ [IS_IN (libc)] (CENABLE): Likewise.
+ [IS_IN (libc)] (CENABLE): Likewise.
+ [IS_IN (librt)] (CDISABLE): Likewise.
+ [IS_IN (librt)] (CDISABLE): Likewise.
+ [__ASSEMBLER__] (SINGLE_THREAD_P): Likewise.
+ * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (PSEUDO): Remove
+ definition.
+ (PSEUDO_END): Likewise.
+ [IS_IN (libpthread)] (CENABLE): Likewise.
+ [IS_IN (libpthread)] (CDISABLE): Likewise.
+ [IS_IN (libc)] (CENABLE): Likewise.
+ [IS_IN (libc)] (CENABLE): Likewise.
+ [IS_IN (librt)] (CDISABLE): Likewise.
+ [IS_IN (librt)] (CDISABLE): Likewise.
+ [__ASSEMBLER__] (SINGLE_THREAD_P): Likewise.
+ * sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h (PSEUDO): Remove
+ definition.
+ (PSEUDO_END): Likewise.
+ [IS_IN (libpthread)] (CENABLE): Likewise.
+ [IS_IN (libpthread)] (CDISABLE): Likewise.
+ [IS_IN (libc)] (CENABLE): Likewise.
+ [IS_IN (libc)] (CENABLE): Likewise.
+ [IS_IN (librt)] (CDISABLE): Likewise.
+ [IS_IN (librt)] (CDISABLE): Likewise.
+ [__ASSEMBLER__] (SINGLE_THREAD_P): Likewise.
+ * sysdeps/unix/sysv/linux/microblaze/sysdep-cancel.h (PSEUDO): Remove
+ definition.
+ (PSEUDO_END): Likewise.
+ [IS_IN (libpthread)] (CENABLE): Likewise.
+ [IS_IN (libpthread)] (CDISABLE): Likewise.
+ [IS_IN (libc)] (CENABLE): Likewise.
+ [IS_IN (libc)] (CENABLE): Likewise.
+ [IS_IN (librt)] (CDISABLE): Likewise.
+ [IS_IN (librt)] (CDISABLE): Likewise.
+ [__ASSEMBLER__] (SINGLE_THREAD_P): Likewise.
+ * sysdeps/unix/sysv/linux/mips/mips64/sysdep-cancel.h (PSEUDO):
+ Remove definition.
+ (PSEUDO_END): Likewise.
+ [IS_IN (libpthread)] (CENABLE): Likewise.
+ [IS_IN (libpthread)] (CDISABLE): Likewise.
+ [IS_IN (libc)] (CENABLE): Likewise.
+ [IS_IN (libc)] (CENABLE): Likewise.
+ [IS_IN (librt)] (CDISABLE): Likewise.
+ [IS_IN (librt)] (CDISABLE): Likewise.
+ (SINGLE_THREAD_P): Likewise.
+ * sysdeps/unix/sysv/linux/mips/sysdep-cancel.h (PSEUDO): Remove
+ definition.
+ (PSEUDO_END): Likewise.
+ [IS_IN (libpthread)] (CENABLE): Likewise.
+ [IS_IN (libpthread)] (CDISABLE): Likewise.
+ [IS_IN (libc)] (CENABLE): Likewise.
+ [IS_IN (libc)] (CENABLE): Likewise.
+ [IS_IN (librt)] (CDISABLE): Likewise.
+ [IS_IN (librt)] (CDISABLE): Likewise.
+ [__ASSEMBLER__] (SINGLE_THREAD_P): Likewise.
+ * sysdeps/unix/sysv/linux/nios2/sysdep-cancel.h (PSEUDO): Remove
+ definition.
+ (PSEUDO_END): Likewise.
+ [IS_IN (libpthread)] (CENABLE): Likewise.
+ [IS_IN (libpthread)] (CDISABLE): Likewise.
+ [IS_IN (libc)] (CENABLE): Likewise.
+ [IS_IN (libc)] (CENABLE): Likewise.
+ [IS_IN (librt)] (CDISABLE): Likewise.
+ [IS_IN (librt)] (CDISABLE): Likewise.
+ [__ASSEMBLER__] (SINGLE_THREAD_P): Likewise.
+ * sysdeps/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Remove file.
+ * sysdeps/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/sysdep-cancel.h: New file.
+ * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO): Remove
+ definition.
+ (PSEUDO_END): Likewise.
+ [IS_IN (libpthread)] (CENABLE): Likewise.
+ [IS_IN (libpthread)] (CDISABLE): Likewise.
+ [IS_IN (libc)] (CENABLE): Likewise.
+ [IS_IN (libc)] (CENABLE): Likewise.
+ [IS_IN (librt)] (CDISABLE): Likewise.
+ [IS_IN (librt)] (CDISABLE): Likewise.
+ [__ASSEMBLER__] (SINGLE_THREAD_P): Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO): Remove
+ definition.
+ (PSEUDO_END): Likewise.
+ [IS_IN (libpthread)] (CENABLE): Likewise.
+ [IS_IN (libpthread)] (CDISABLE): Likewise.
+ [IS_IN (libc)] (CENABLE): Likewise.
+ [IS_IN (libc)] (CENABLE): Likewise.
+ [IS_IN (librt)] (CDISABLE): Likewise.
+ [IS_IN (librt)] (CDISABLE): Likewise.
+ [__ASSEMBLER__] (SINGLE_THREAD_P): Likewise.
+ * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (PSEUDO): Remove
+ definition.
+ (PSEUDO_END): Likewise.
+ [IS_IN (libpthread)] (CENABLE): Likewise.
+ [IS_IN (libpthread)] (CDISABLE): Likewise.
+ [IS_IN (libc)] (CENABLE): Likewise.
+ [IS_IN (libc)] (CENABLE): Likewise.
+ [IS_IN (librt)] (CDISABLE): Likewise.
+ [IS_IN (librt)] (CDISABLE): Likewise.
+ [__ASSEMBLER__] (SINGLE_THREAD_P): Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Remove file.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sysdep-cancel.h: New file.
+ * sysdeps/unix/sysv/linux/tile/sysdep-cancel.h (PSEUDO): Remove
+ definition.
+ (PSEUDO_END): Likewise.
+ [IS_IN (libpthread)] (CENABLE): Likewise.
+ [IS_IN (libpthread)] (CDISABLE): Likewise.
+ [IS_IN (libc)] (CENABLE): Likewise.
+ [IS_IN (libc)] (CENABLE): Likewise.
+ [IS_IN (librt)] (CDISABLE): Likewise.
+ [IS_IN (librt)] (CDISABLE): Likewise.
+ [__ASSEMBLER__] (SINGLE_THREAD_P): Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (PSEUDO): Remove
+ definition.
+ (PSEUDO_END): Likewise.
+ [IS_IN (libpthread)] (CENABLE): Likewise.
+ [IS_IN (libpthread)] (CDISABLE): Likewise.
+ [IS_IN (libc)] (CENABLE): Likewise.
+ [IS_IN (libc)] (CENABLE): Likewise.
+ [IS_IN (librt)] (CDISABLE): Likewise.
+ [IS_IN (librt)] (CDISABLE): Likewise.
+ [__ASSEMBLER__] (SINGLE_THREAD_P): Likewise.
+
+2017-08-24 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * sysdeps/ieee754/dbl-64/Makefile: Don't override CFLAGS.
+
+2017-08-23 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86_64/fpu/libm-test-ulps: Regenerated.
+
+2017-08-23 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #21982]
+ * string/stratcliff.c (do_test): Declare size, nchars, inner,
+ middle and outer with size_t instead of int. Repleace %d and
+ %Zd with %zu in printf. Update "MAX (0, nchars - 128)" and
+ "MAX (outer, nchars - 64)" to support unsigned outer and
+ nchars. Also exit loop when outer == 0.
+
+2017-08-23 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * include/fcntl.h (__fcntl_nocancel): Remove definition.
+ * include/signal.h (__sigsuspend_nocancel): Likewise.
+ * include/time.h (__nanosleep_nocancel): Likewise.
+ * sysdeps/generic/not-cancel.h (__fcntl_nocancel): New macro.
+ * login/utmp_file.c: Include non cancellable syscall header.
+ * sysdeps/unix/sysv/linux/not-cancel.h (__fcntl_nocancel): New
+ prototype.
+
+2017-08-23 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86_64/fpu/svml_d_sincos8_core.S: Replace AVX512F
+ .byte sequences with AVX512F instructions.
+ * sysdeps/x86_64/fpu/svml_d_wrapper_impl.h: Likewise.
+ * sysdeps/x86_64/fpu/svml_s_sincosf16_core.S: Likewise.
+ * sysdeps/x86_64/fpu/svml_s_wrapper_impl.h: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_sincos8_core_avx512.S:
+ Likewise.
+ * sysdeps/x86_64/fpu/multiarch/svml_s_sincosf16_core_avx512.S:
+ Likewise.
+
+2017-08-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
+ Steve Ellcey <sellcey@cavium.com>
+
+ * sysdeps/aarch64/dl-tlsdesc.S (_dl_tlsdesc_dynamic):
+ Use PTR_REG macro in cmp instruction.
+
+2017-08-22 Gabriel F. T. Gomes <gftg@linux.vnet.ibm.com>
+
+ * include/libc-symbols.h: [!defined HAVE_GCC_IFUNC] (__ifunc):
+ Change the return type of the ifunc resolver to match the return
+ type of the target function.
+
+2017-08-22 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/unix/sysv/linux/x86_64/syscalls.list (pread64): Remove.
+ (preadv64): Likewise.
+ (pwrite64(: Likewise.
+ (pwritev64): Likewise.
+
+ * sysdeps/unix/sysv/linux/x86_64/sysdep.h
+ (INTERNAL_SYSCALL_NCS_TYPES): Remove define.
+ (LOAD_ARGS_0): Likewise.
+ (LOAD_ARGS_1): Likewise.
+ (LOAD_ARGS_2): Likewise.
+ (LOAD_ARGS_3): Likewise.
+ (LOAD_ARGS_4): Likewise.
+ (LOAD_ARGS_5): Likewise.
+ (LOAD_ARGS_6): Likewise.
+ (LOAD_REGS_0): Likewise.
+ (LOAD_REGS_1): Likewise.
+ (LOAD_REGS_2): Likewise.
+ (LOAD_REGS_3): Likewise.
+ (LOAD_REGS_4): Likewise.
+ (LOAD_REGS_5): Likewise.
+ (LOAD_REGS_6): Likewise.
+ (ASM_ARGS_0): Likewise.
+ (ASM_ARGS_1): Likewise.
+ (ASM_ARGS_2): Likewise.
+ (ASM_ARGS_3): Likewise.
+ (ASM_ARGS_4): Likewise.
+ (ASM_ARGS_5): Likewise.
+ (ASM_ARGS_6): Likewise.
+ (LOAD_ARGS_TYPES_1): Likewise.
+ (LOAD_ARGS_TYPES_2): Likewise.
+ (LOAD_ARGS_TYPES_3): Likewise.
+ (LOAD_ARGS_TYPES_4): Likewise.
+ (LOAD_ARGS_TYPES_5): Likewise.
+ (LOAD_ARGS_TYPES_6): Likewise.
+ (LOAD_REGS_TYPES_1): Likewise.
+ (LOAD_REGS_TYPES_2): Likewise.
+ (LOAD_REGS_TYPES_3): Likewise.
+ (LOAD_REGS_TYPES_4): Likewise.
+ (LOAD_REGS_TYPES_5): Likewise.
+ (LOAD_REGS_TYPES_6): Likewise.
+ (TYPEFY): New define.
+ (ARGIFY): Likewise.
+ (internal_syscall0): Likewise.
+ (internal_syscall1): Likewise.
+ (internal_syscall2): Likewise.
+ (internal_syscall3): Likewise.
+ (internal_syscall4): Likewise.
+ (internal_syscall5): Likewise.
+ (internal_syscall6): Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/x32/times.c
+ (INTERNAL_SYSCALL_NCS): Remove define.
+ (internal_syscall1): Add define.
+
+2017-08-22 Gabriel F. T. Gomes <gftg@linux.vnet.ibm.com>
+
+ * math/w_remainder_compat.c: Remove duplicate inclusion of
+ math-svid-compat.h.
+ * math/w_remainderf_compat.c: Likewise.
+ * math/w_remainderl_compat.c: Likewise.
+
+2017-08-22 Gabriel F. T. Gomes <gftg@linux.vnet.ibm.com>
+
+ * sysdeps/powerpc/fpu/libm-test-ulps: Update.
+
+2017-08-22 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #21684]
+ * math/tgmath.h (__floating_type): Simplify definitions.
+ (__real_integer_type): New macro.
+ (__complex_integer_type): Likewise.
+ (__expr_is_real): Likewise.
+ (__tgmath_real_type_sub): Update comment to describe handling of
+ complex types.
+ (__tgmath_complex_type_sub): New macro.
+ (__tgmath_complex_type): Likewise.
+ [__HAVE_FLOAT128 && __GLIBC_USE (IEC_60559_TYPES_EXT)]
+ (__TGMATH_CF128): Use __expr_is_real.
+ (__TGMATH_UNARY_REAL_IMAG): Use __tgmath_complex_type and
+ __expr_is_real.
+ (__TGMATH_BINARY_REAL_IMAG): Likewise.
+ (__TGMATH_UNARY_REAL_IMAG_RET_REAL): Use __expr_is_real.
+ * math/gen-tgmath-tests.py (Type.create_type): Create complex
+ integer types.
+
+2017-08-22 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/generic/not-cancel.h (sigsuspend_not_cancel): Remove
+ macro.
+ * sysdeps/mach/hurd/sigsuspend.c (sigsuspend_not_cancel): Remove
+ alias.
+ * sysdeps/unix/sysv/linux/not-cancel.h (sigsuspend_not_cancel):
+ Likewise.
+
+ * nptl/pthread_mutex_timedlock.c (__pthread_mutex_timedlock): Replace
+ nanosleep_not_cancel with __nanosleep_nocancel.
+ * sysdeps/generic/not-cancel.h (nanosleep_not_cancel): Remove macro.
+ (__nanosleep_nocancel): New macro.
+ * sysdeps/unix/sysv/linux/nanosleep.c (__nanosleep_nocancel): New
+ function.
+ * sysdeps/unix/sysv/linux/not-cancel.h (nanosleep_not_cancel): Remove
+ macro.
+ (__nanosleep_nocancel): New prototype.
+
+ * nptl/pthread_mutex_lock.c (__pthread_mutex_lock_full): Replace
+ pause_not_cancel with __pause_nocancel.
+ * sysdeps/generic/not-cancel.h (pause_not_cancel): Remove macro.
+ (__pause_nocancel): New macro.
+ * sysdeps/unix/sysv/linux/not-cancel.h (pause_not_cancel): Remove
+ macro.
+ (__pause_nocancel): New prototype.
+ * sysdeps/unix/sysv/linux/pause.c (__pause_nocancel): New function.
+
+2017-08-22 Martin Sebor <msebor@redhat.com>
+
+ * include/libc-symbols.h (__ifunc_resolver): Declare resolver
+ to return a pointer to the same type as the target function.
+
+2017-08-22 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ [BZ #21986]
+ * include/printf.h (__printf_fphex): Add attribute_hidden.
+ (__guess_grouping): New prototype.
+ * stdio-common/printf_fp.c (__guess_grouping): Removed.
+ * stdio-common/reg-printf.c (__register_printf_specifier): Add
+ libc_hidden_proto and libc_hidden_def.
+ * stdlib/strfmon_l.c (__guess_grouping): Removed.
+ (__vstrfmon_l): Remove the third argument passed to
+ __guess_grouping.
+
+2017-08-22 Gabriel F. T. Gomes <gftg@linux.vnet.ibm.com>
+
+ * math/math.h [defined __cplusplus] (issignaling): Provide a C++
+ definition for issignaling that does not rely on __MATH_TG,
+ since __MATH_TG uses __builtin_types_compatible_p, which is only
+ available in C mode.
+ (CFLAGS-test-math-issignaling.cc): New variable.
+ * math/Makefile [CXX] (tests): Add test-math-issignaling.
+ * math/test-math-issignaling.cc: New test for C++ implementation
+ of type-generic issignaling.
+ * sysdeps/powerpc/powerpc64le/Makefile [subdir == math]
+ (CXXFLAGS-test-math-issignaling.cc): Add -mfloat128 to the build
+ options of test-math-issignaling on powerpc64le.
+
+2017-08-22 H.J. Lu <hongjiu.lu@intel.com>
+
+ * include/libc-symbols.h (__hidden_proto_hiddenattr): New for
+ building libc.a.
+ (hidden_proto): Likewise.
+ (hidden_tls_proto): Likewise.
+ (__hidden_proto): Likewise.
+
+2017-08-22 Florian Weimer <fweimer@redhat.com>
+
+ math: Statically link tests of internal functionality.
+ * math/Makefile (tests): Remove atest-exp, atest-sincos,
+ atest-exp2.
+ (tests-static): Add atest-exp, atest-sincos, atest-exp2.
+ (gmp-objs): Remove assignment.
+ (atest-exp, atest-sincos, atest-exp2): Remove targets.
+
+2017-08-22 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #21987]
+ * sysdeps/unix/sysv/linux/sparc/bits/long-double.h: Remove file
+ and copy to ...
+ * sysdeps/unix/sysv/linux/sparc/sparc32/bits/long-double.h:
+ ... here.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/bits/long-double.h:
+ ... and here.
+
+ * assert/Makefile [$(have-cxx-thread_local)]: Move conditional
+ variable definitions above inclusion of ../Rules.
+
+2017-08-21 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/ieee754/k_standard.c (__kernel_standard): Add default
+ case calling __builtin_unreachable.
+
+2017-08-21 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * libio/ioopen.c (_IO_waitpid): Replace waitpid_not_cancel with
+ __waitpid_nocancel.
+ * sysdeps/generic/not-cancel.h (waitpid_not_cancel): Remove macro.
+ (__waitpid_nocancel): New macro.
+ * sysdeps/unix/sysv/linux/not-cancel.h (waitpid_not_cancel): Remove
+ macro.
+ (__waitpid_nocancel): Replace macro with a function.
+ * sysdeps/unix/sysv/linux/waitpid.c (__waitpid_nocancel): New
+ function.
+
+ * login/utmp_file.c (timeout_handler): Replace fcntl_not_cancel with
+ __fcntl_nocancel.
+ * sysdeps/generic/not-cancel.h (fcntl_not_cancel): Remove macro.
+ * sysdeps/unix/sysv/linux/not-cancel.h (fcntl_not_cancel): Likewise.
+
+ * gmon/gmon.c (write_hist): Replace writev_not_cancel_no_status with
+ __writev_nocancel_nostatus.
+ (write_call_graph): Likewise.
+ (write_bb_counts): Likewise.
+ * resolv/herror.c (herror): Likewise.
+ * sysdeps/generic/not-cancel.h (writev_not_cancel_no_status): Remove
+ macro.
+ (__writev_nocancel_nostatus): New macro.
+ * sysdeps/unix/sysv/linux/not-cancel.h (writev_not_cancel_no_status):
+ Remove macro.
+ (__writev_nocancel_nostatus): New function.
+
+2017-08-21 Joseph Myers <joseph@codesourcery.com>
+
+ Revert:
+ 2017-08-21 H.J. Lu <hongjiu.lu@intel.com>
+
+ * include/libc-symbols.h (__hidden_proto_hiddenattr): New for
+ building libc.a.
+ (hidden_proto): Likewise.
+ (hidden_tls_proto): Likewise.
+ (__hidden_proto): Likewise.
+
+ [BZ #21973]
+ * sysdeps/sparc/sparc32/fpu/w_sqrt_compat.S: Remove file.
+ * sysdeps/sparc/sparc32/fpu/w_sqrtf_compat.S: Likewise.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/w_sqrt_compat-vis3.S:
+ Likewise.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/w_sqrt_compat.S:
+ Likewise.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/w_sqrtf_compat-vis3.S:
+ Likewise.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/w_sqrtf_compat.S:
+ Likewise.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/w_sqrt_compat.S : Likewise.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/w_sqrtf_compat.S: Likewise.
+ * sysdeps/sparc/sparc64/fpu/w_sqrt_compat.S: Likewise.
+ * sysdeps/sparc/sparc64/fpu/w_sqrtf_compat.S: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Add
+ GLIBC_2.0 sqrtl symbol.
+
+ * math/math.h [__USE_MISC] (_LIB_VERSION_TYPE): Remove.
+ [__USE_MISC] (_LIB_VERSION): Likewise.
+ [__USE_MISC] (struct exception): Likewise.
+ [__USE_MISC] (matherr): Likewise.
+ [__USE_MISC] (DOMAIN): Likewise.
+ [__USE_MISC] (SING): Likewise.
+ [__USE_MISC] (OVERFLOW): Likewise.
+ [__USE_MISC] (UNDERFLOW): Likewise.
+ [__USE_MISC] (TLOSS): Likewise.
+ [__USE_MISC] (PLOSS): Likewise.
+ [__USE_MISC] (HUGE): Likewise.
+ [__USE_XOPEN] (MAXFLOAT): Define even if [__USE_MISC].
+ * math/math-svid-compat.h: New file.
+ * conform/linknamespace.pl (@whitelist): Remove matherr, matherrf
+ and matherrl.
+ * include/math.h [!_ISOMAC] (__matherr): Remove.
+ * manual/arith.texi (FP Exceptions): Do not document matherr.
+ * math/Makefile (tests): Change test-matherr to test-matherr-3.
+ (tests-internal): New variable.
+ (install-lib): Do not add libieee.a.
+ (non-lib.a): Likewise.
+ (extra-objs): Do not add libieee.a and ieee-math.o.
+ (CPPFLAGS-s_lib_version.c): Remove variable.
+ ($(objpfx)libieee.a): Remove rule.
+ ($(addprefix $(objpfx), $(tests-internal)): Depend on $(libm).
+ * math/ieee-math.c: Remove.
+ * math/libm-test-support.c (matherr): Remove.
+ * math/test-matherr.c: Use <support/test-driver.c>. Add copyright
+ and license notices. Include <math-svid-compat.h> and
+ <shlib-compat.h>.
+ (matherr): Undefine as macro. Use compat_symbol_reference.
+ (_LIB_VERSION): Likewise.
+ * math/test-matherr-2.c: New file.
+ * math/test-matherr-3.c: Likewise.
+ * sysdeps/generic/math_private.h (__kernel_standard): Remove
+ declaration.
+ (__kernel_standard_f): Likewise.
+ (__kernel_standard_l): Likewise.
+ * sysdeps/ieee754/s_lib_version.c: Do not include <math.h> or
+ <math_private.h>. Include <math-svid-compat.h>.
+ (_LIB_VERSION): Undefine as macro.
+ (_LIB_VERSION_INTERNAL): Always initialize to _POSIX_. Define
+ only if [LIBM_SVID_COMPAT || !defined SHARED]. If
+ [LIBM_SVID_COMPAT], use compat_symbol.
+ * sysdeps/ieee754/s_matherr.c: Do not include <math.h> or
+ <math_private.h>. Include <math-svid-compat.h>.
+ (matherr): Undefine as macro.
+ (__matherr): Define only if [LIBM_SVID_COMPAT]. Use
+ compat_symbol.
+ * sysdeps/ia64/fpu/libm_error.c: Include <math-svid-compat.h>.
+ [_LIBC && LIBM_SVID_COMPAT] (matherrf): Use
+ compat_symbol_reference.
+ [_LIBC && LIBM_SVID_COMPAT] (matherrl): Likewise.
+ [_LIBC && !LIBM_SVID_COMPAT] (matherrf): Define as macro.
+ [_LIBC && !LIBM_SVID_COMPAT] (matherrl): Likewise.
+ * sysdeps/ia64/fpu/libm_support.h: Include <math-svid-compat.h>.
+ (MATHERR_D): Remove declaration.
+ [!_LIBC] (_LIB_VERSION_TYPE): Likewise
+ [!LIBM_BUILD] (_LIB_VERSIONIMF): Likewise.
+ [LIBM_BUILD] (pmatherrf): Likewise.
+ [LIBM_BUILD] (pmatherr): Likewise.
+ [LIBM_BUILD] (pmatherrl): Likewise.
+ (DOMAIN): Likewise.
+ (SING): Likewise.
+ (OVERFLOW): Likewise.
+ (UNDERFLOW): Likewise.
+ (TLOSS): Likewise.
+ (PLOSS): Likewise.
+ * sysdeps/ia64/fpu/s_matherrf.c: Include <math-svid-compat.h>.
+ (__matherrf): Define only if [LIBM_SVID_COMPAT]. Use
+ compat_symbol.
+ * sysdeps/ia64/fpu/s_matherrl.c: Include <math-svid-compat.h>.
+ (__matherrl): Define only if [LIBM_SVID_COMPAT]. Use
+ compat_symbol.
+ * math/lgamma-compat.h: Include <math-svid-compat.h>.
+ * math/w_acos_compat.c: Likewise.
+ * math/w_acosf_compat.c: Likewise.
+ * math/w_acosh_compat.c: Likewise.
+ * math/w_acoshf_compat.c: Likewise.
+ * math/w_acoshl_compat.c: Likewise.
+ * math/w_acosl_compat.c: Likewise.
+ * math/w_asin_compat.c: Likewise.
+ * math/w_asinf_compat.c: Likewise.
+ * math/w_asinl_compat.c: Likewise.
+ * math/w_atan2_compat.c: Likewise.
+ * math/w_atan2f_compat.c: Likewise.
+ * math/w_atan2l_compat.c: Likewise.
+ * math/w_atanh_compat.c: Likewise.
+ * math/w_atanhf_compat.c: Likewise.
+ * math/w_atanhl_compat.c: Likewise.
+ * math/w_cosh_compat.c: Likewise.
+ * math/w_coshf_compat.c: Likewise.
+ * math/w_coshl_compat.c: Likewise.
+ * math/w_exp10_compat.c: Likewise.
+ * math/w_exp10f_compat.c: Likewise.
+ * math/w_exp10l_compat.c: Likewise.
+ * math/w_exp2_compat.c: Likewise.
+ * math/w_exp2f_compat.c: Likewise.
+ * math/w_exp2l_compat.c: Likewise.
+ * math/w_fmod_compat.c: Likewise.
+ * math/w_fmodf_compat.c: Likewise.
+ * math/w_fmodl_compat.c: Likewise.
+ * math/w_hypot_compat.c: Likewise.
+ * math/w_hypotf_compat.c: Likewise.
+ * math/w_hypotl_compat.c: Likewise.
+ * math/w_j0_compat.c: Likewise.
+ * math/w_j0f_compat.c: Likewise.
+ * math/w_j0l_compat.c: Likewise.
+ * math/w_j1_compat.c: Likewise.
+ * math/w_j1f_compat.c: Likewise.
+ * math/w_j1l_compat.c: Likewise.
+ * math/w_jn_compat.c: Likewise.
+ * math/w_jnf_compat.c: Likewise.
+ * math/w_jnl_compat.c: Likewise.
+ * math/w_lgamma_main.c: Likewise.
+ * math/w_lgamma_r_compat.c: Likewise.
+ * math/w_lgammaf_main.c: Likewise.
+ * math/w_lgammaf_r_compat.c: Likewise.
+ * math/w_lgammal_main.c: Likewise.
+ * math/w_lgammal_r_compat.c: Likewise.
+ * math/w_log10_compat.c: Likewise.
+ * math/w_log10f_compat.c: Likewise.
+ * math/w_log10l_compat.c: Likewise.
+ * math/w_log2_compat.c: Likewise.
+ * math/w_log2f_compat.c: Likewise.
+ * math/w_log2l_compat.c: Likewise.
+ * math/w_log_compat.c: Likewise.
+ * math/w_logf_compat.c: Likewise.
+ * math/w_logl_compat.c: Likewise.
+ * math/w_pow_compat.c: Likewise.
+ * math/w_powf_compat.c: Likewise.
+ * math/w_powl_compat.c: Likewise.
+ * math/w_remainder_compat.c: Likewise.
+ * math/w_remainderf_compat.c: Likewise.
+ * math/w_remainderl_compat.c: Likewise.
+ * math/w_scalb_compat.c: Likewise.
+ * math/w_scalbf_compat.c: Likewise.
+ * math/w_scalbl_compat.c: Likewise.
+ * math/w_sinh_compat.c: Likewise.
+ * math/w_sinhf_compat.c: Likewise.
+ * math/w_sinhl_compat.c: Likewise.
+ * math/w_sqrt_compat.c: Likewise.
+ * math/w_sqrtf_compat.c: Likewise.
+ * math/w_sqrtl_compat.c: Likewise.
+ * math/w_tgamma_compat.c: Likewise.
+ * math/w_tgammaf_compat.c: Likewise.
+ * math/w_tgammal_compat.c: Likewise.
+ * sysdeps/ieee754/dbl-64/w_exp_compat.c: Likewise.
+ * sysdeps/ieee754/flt-32/w_expf_compat.c: Likewise.
+ * sysdeps/ieee754/k_standard.c: Likewise.
+ * sysdeps/ieee754/k_standardf.c: Likewise.
+ * sysdeps/ieee754/k_standardl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/w_expl_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/w_expl_compat.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/w_expl_compat.c: Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/w_sqrt_compat.S: Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/w_sqrtf_compat.S: Likewise.
+ * sysdeps/powerpc/powerpc32/power5/fpu/w_sqrt_compat.S: Likewise.
+ * sysdeps/powerpc/powerpc32/power5/fpu/w_sqrtf_compat.S: Likewise.
+ * sysdeps/sparc/sparc32/fpu/w_sqrt_compat.S: Likewise.
+ * sysdeps/sparc/sparc32/fpu/w_sqrtf_compat.S: Likewise.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/w_sqrt_compat-vis3.S:
+ Likewise.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/w_sqrtf_compat-vis3.S:
+ Likewise.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/w_sqrt_compat.S: Likewise.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/w_sqrtf_compat.S: Likewise.
+ * sysdeps/sparc/sparc64/fpu/w_sqrt_compat.S: Likewise.
+ * sysdeps/sparc/sparc64/fpu/w_sqrtf_compat.S: Likewise.
+
+2017-08-21 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #21864]
+ Do not compile benchmark helper objects with -DMODULE_NAME=libc.
+ * benchtests/Makefile (others-extras): Set to $(bench-extra-objs).
+ Move before inclusion of ../Rules.
+
+2017-08-21 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #21972]
+ * assert/assert.h (assert): Use static_cast (bool) for C++.
+ Use the ternary operator in the warning branch for GNU C.
+ * assert/Makefile (tests): Add tst-assert-c++, tst-assert-g++.
+ (CFLAGS-tst-assert-c++.o): Compile in C++11 mode.
+ (CFLAGS-tst-assert-g++.o): Compile in GnU C++11 mode.
+ (LDLIBS-tst-assert-c++, LDLIBS-tst-assert-g++): Link with libstdc++.
+ * assert/tst-assert-c++.cc, assert/tst-assert-g++.cc: New files.
+
+2017-08-21 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * sysdeps/unix/sysv/linux/x86_64/init-first.c
+ (__syscall_clock_gettime): Add attribute_hidden.
+ * sysdeps/unix/sysv/linux/x86_64/makecontext.c
+ (__start_context): Likewise.
+
+2017-08-21 H.J. Lu <hongjiu.lu@intel.com>
+
+ * include/libc-symbols.h (__hidden_proto_hiddenattr): New for
+ building libc.a.
+ (hidden_proto): Likewise.
+ (hidden_tls_proto): Likewise.
+ (__hidden_proto): Likewise.
+
+2017-08-21 H.J. Lu <hongjiu.lu@intel.com>
+
+ * include/libc-symbols.h (attribute_hidden): Enable hidden
+ visibility in libc.a compiled with PIE.
+
+2017-08-21 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * sysdeps/unix/sysv/linux/x86/libc-vdso.h (VDSO_SYMBOL(getcpu)):
+ Add attribute_hidden.
+
+2017-08-21 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #21864]
+ * Makerules (all-nonlib): Add $(others-extras).
+ * catgets/Makefile (others-extras): New.
+ * elf/Makefile (others-extras): Likewise.
+ * nss/Makefile (others-extras): Likewise.
+
+2017-08-21 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * csu/libc-start.c (__libc_multiple_libcs): Removed.
+ * elf/dl-open.c: Include <libc-internal.h>.
+ (__libc_multiple_libcs): Removed.
+ * elf/dl-sysdep.c: Include <libc-internal.h> instead of
+ <hp-timing.h>.
+ * include/libc-internal.h (__libc_multiple_libcs): New.
+ * misc/sbrk.c: Include <libc-internal.h>.
+ (__libc_multiple_libcs): Removed.
+
+2017-08-21 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * grp/initgroups.c (__nss_group_database): Removed.
+ (__nss_initgroups_database): Likewise.
+ * nscd/gai.c (__nss_hosts_database): Likewise.
+ * nss/XXX-lookup.c (DATABASE_NAME_SYMBOL): Likewise.
+ * posix/tst-rfc3484-2.c (__nss_hosts_database): Likewise.
+ * posix/tst-rfc3484-3.c (__nss_hosts_database): Likewise.
+ * posix/tst-rfc3484.c (__nss_hosts_database): Likewise.
+ * sysdeps/posix/getaddrinfo.c (__nss_hosts_database): Likewise.
+ * nss/getXXent.c (INTERNAL (REENTRANT_GETNAME)): Add
+ attribute_hidden.
+ * nss/nsswitch.c (__nss_database_custom): Define only if
+ USE_NSCD is defined.
+ (__nss_configure_lookup): Use __nss_database_custom only if
+ USE_NSCD is defined.
+ * nss/nsswitch.h (__nss_database_custom): Declare only if
+ USE_NSCD is defined. Add attribute_hidden.
+ (__nss_setent): Add attribute_hidden.
+ (__nss_endent): Likewise.
+ (__nss_getent_r): Likewise.
+ (__nss_getent): Likewise.
+ (DEFINE_DATABASE): Declare __nss_##arg##_database.
+
+2017-08-20 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * sysdeps/unix/sysv/linux/i386/glob64.c (__old_glob64): Add
+ libc_hidden_proto and libc_hidden_def.
+
+2017-08-20 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * sysdeps/unix/sysv/linux/i386/olddirent.h (__old_readdir64):
+ Add libc_hidden_proto.
+ * sysdeps/unix/sysv/linux/i386/readdir64.c (__old_readdir64):
+ Add libc_hidden_def.
+
+2017-08-20 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #21974]
+ * gmon/Makefile (routines): Remove bb_init_func and
+ bb_exit_func.
+ (elide-routines.os): Removed.
+ * gmon/bb_exit_func.c: Likewise.
+ * gmon/bb_init_func.c: Likewise.
+ * include/sys/gmon.h (__bb): Likewise.
+ (__bb_init_func): Likewise.
+ (__bb_exit_func): Likewise.
+ * sysdeps/alpha/bb_init_func.S: Likewise.
+
+2017-08-20 H.J. Lu <hongjiu.lu@intel.com>
+
+ * debug/longjmp_chk.c (____longjmp_chk): Moved to ...
+ * include/setjmp.h (____longjmp_chk): Here. Add
+ attribute_hidden.
+
+2017-08-19 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * sysdeps/x86_64/multiarch/strcspn-c.c (STRCSPN_SSE2): Add
+ attribute_hidden.
+ (__strspn_sse2): Likewise.
+
+2017-08-18 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/generic/not-cancel.h (close_not_cancel): Remove macro.
+ (close_not_cancel_no_status): Likewise.
+ (__close_nocancel): New macro.
+ (__close_nocancel_nostatus): Likewise.
+ * sysdeps/unix/sysv/linux/not-cancel.h (__close_nocancel): Remove
+ macro.
+ (close_not_cancel): Likewise.
+ (close_not_cancel_no_status): Likewise.
+ (__close_nocancel): New prototype.
+ (__close_nocancel_nostatus): New function.
+ * sysdeps/unix/sysv/linux/close.c (__close_nocancel): New function.
+ * catgets/open_catalog.c (__open_catalog): Replace
+ close_not_cancel{_no_status) with __close_nocancel{_nostatus}.
+ * gmon/gmon.c (write_gmon): Likewise.
+ * iconv/gconv_cache.c (__gconv_load_cache): Likewise.
+ * intl/loadmsgcat.c (close): Likewise.
+ * io/ftw.c (open_dir_stream): Likewise.
+ (ftw_startup): Likewise.
+ * libio/fileops.c (_IO_file_open): Likewise.
+ (_IO_file_close_mmap): Likewise.
+ (_IO_file_close): Likewise.
+ * libio/iopopen.c (_IO_dup2): Likewise.
+ * locale/loadarchive.c (_nl_load_locale_from_archive): Likewise.
+ * locale/loadlocale.c (_nl_load_locale): Likewise.
+ * login/utmp_file.c (pututline_file): Likewise.
+ (endutent_file): Likewise.
+ * misc/daemon.c (daemon): Likewise.
+ * nscd/nscd_getai.c (__nscd_getai): Likewise.
+ * nscd/nscd_getgr_r.c (nscd_getgr_r): Likewise.
+ * nscd/nscd_gethst_r.c (nscd_gethst_r): Likewise.
+ * nscd/nscd_getpw_r.c (nscd_getpw_r): Likewise.
+ * nscd/nscd_getserv_r.c (nscd_getserv_r): Likewise.
+ * nscd/nscd_helper.c (open_socket): Likewise.
+ (__nscd_open_socket): Likewise.
+ * nscd/nscd_initgroups.c (__nscd_getgrouplist): Likewise.
+ * nscd/nscd_netgroup.c (__nscd_setnetgrent): Likewise.
+ (__nscd_innetgr): Likewise.
+ * nss/nss_db/db-open.c (internal_setent): Likewise.
+ * resolv/res-close.c (__res_iclose): Likewise.
+ * sunrpc/pm_getmaps.c (pmap_getmaps): Likewise.
+ * sysdeps/posix/closedir.c (__closedir): Likewise.
+ * sysdeps/posix/getaddrinfo.c (getaddrinfo): Likewise.
+ * sysdeps/posix/getcwd.c (__getcwd): Likewise.
+ * sysdeps/posix/opendir.c (tryopen_o_directory): Likewise.
+ (opendir_tail): Likewise.
+ * sysdeps/posix/spawni.c (__spawni_child): Likewise.
+ * sysdeps/unix/sysv/linux/check_native.c (__check_native): Likewise.
+ * sysdeps/unix/sysv/linux/check_pf.c (__check_pf): Likewise.
+ * sysdeps/unix/sysv/linux/fips-private.h (fips_enabled_p): Likewise.
+ * sysdeps/unix/sysv/linux/gethostid.c (sethostid): Likewise.
+ (gethostid): Likewise.
+ * sysdeps/unix/sysv/linux/getloadavg.c (getloadavg): Likewise.
+ * sysdeps/unix/sysv/linux/getlogin_r.c (__getlogin_r_loginuid):
+ Likewise.
+ * sysdeps/unix/sysv/linux/getsysstats.c (__get_nprocs): Likewise.
+ * sysdeps/unix/sysv/linux/grantpt.c (close_all_fds): Likewise.
+ * sysdeps/unix/sysv/linux/i386/smp.h (is_smp_system): Likewise.
+ * sysdeps/unix/sysv/linux/ia64/has_cpuclock.c (has_cpuclock):
+ Likewise.
+ * sysdeps/unix/sysv/linux/if_index.c (__if_nametoindex): Likewise.
+ * sysdeps/unix/sysv/linux/libc_fatal.c (backtrace_and_maps): Likewise.
+ * sysdeps/unix/sysv/linux/malloc-sysdep.h (check_may_shrink_heap):
+ Likewise.
+ * sysdeps/unix/sysv/linux/mq_notify.c (init_mq_netlink): Likewise.
+ * sysdeps/unix/sysv/linux/pthread_getname.c (pthread_getname_np):
+ Likewise.
+ * sysdeps/unix/sysv/linux/pthread_setname.c (pthread_setname_np):
+ Likewise.
+ * sysdeps/unix/sysv/linux/spawni.c (__spawni_child): Likewise.
+ * sysdeps/unix/sysv/linux/sysconf.c (__sysconf): Likewise.
+ * sysdeps/unix/sysv/linux/Versions (libc) [GLIBC_PRIVATE]: Add
+ __close_nocancel.
+
+ * sysdeps/generic/not-cancel.h (openat_not_cancel): Remove macro.
+ (openat_not_cancel_3): Likewise.
+ (openat64_not_cancel_3): Likewise).
+ (openat_not_cancel_3): Likewise).
+ * sysdeps/unix/sysv/linux/not-cancel.h (openat_not_cancel): Remove
+ macro.
+ (openat_not_cancel_3): Likewise.
+ (openat64_not_cancel): Likewise.
+ (openat64_not_cancel_3): Likewise.
+ * sysdeps/unix/sysv/linux/openat.c (__openat_nocancel): New function.
+ * sysdeps/unix/sysv/linux/openat64.c (__openat64_nocancel): Likewise.
+ * io/ftw.c (open_dir_stream): Replace openat{64}_not_cancel{_3} with
+ __open{64}_nocancel.
+ * sysdeps/mach/hurd/opendir.c (__opendirat): Likewise.
+ * sysdeps/posix/getcwd.c (__getcwd): Likewise.
+ * sysdeps/posix/opendir.c (__opendirat): Likewise.
+
+2017-08-18 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #18822]
+ * include/argz.h (__argz_create_sep): New function prototype.
+ (__argz_append): Likewise.
+ (__argz_add): Likewise.
+ (__argz_add_sep): Likewise.
+ (__argz_delete): Likewise.
+ (__argz_insert): Likewise.
+ (__argz_replace): Likewise.
+ * string/argz.h (__argz_create_sep): Removed.
+ (__argz_append): Likewise.
+ (__argz_add): Likewise.
+ (__argz_add_sep): Likewise.
+ (__argz_delete): Likewise.
+ (__argz_insert): Likewise.
+ (__argz_replace): Likewise.
+
+2017-08-18 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elf/elf.h (NT_GNU_PROPERTY_TYPE_0): New.
+ (NOTE_GNU_PROPERTY_SECTION_NAME): Likewise.
+ (GNU_PROPERTY_STACK_SIZE): Likewie.
+ (GNU_PROPERTY_NO_COPY_ON_PROTECTED): Likewie.
+ (GNU_PROPERTY_LOPROC): Likewise.
+ (GNU_PROPERTY_HIPROC): Likewise.
+ (GNU_PROPERTY_LOUSER): Likewise.
+ (GNU_PROPERTY_HIUSER): Likewise.
+ (GNU_PROPERTY_X86_ISA_1_USED): Likwise.
+ (GNU_PROPERTY_X86_ISA_1_NEEDED): Likwise.
+ (GNU_PROPERTY_X86_FEATURE_1_AND): Likwise.
+ (GNU_PROPERTY_X86_ISA_1_486): Likwise.
+ (GNU_PROPERTY_X86_ISA_1_586): Likwise.
+ (GNU_PROPERTY_X86_ISA_1_686): Likwise.
+ (GNU_PROPERTY_X86_ISA_1_SSE): Likwise.
+ (GNU_PROPERTY_X86_ISA_1_SSE2): Likwise.
+ (GNU_PROPERTY_X86_ISA_1_SSE3): Likwise.
+ (GNU_PROPERTY_X86_ISA_1_SSSE3): Likwise.
+ (GNU_PROPERTY_X86_ISA_1_SSE4_1): Likwise.
+ (GNU_PROPERTY_X86_ISA_1_SSE4_2): Likwise.
+ (GNU_PROPERTY_X86_ISA_1_AVX): Likwise.
+ (GNU_PROPERTY_X86_ISA_1_AVX2): Likwise.
+ (GNU_PROPERTY_X86_ISA_1_AVX512F): Likwise.
+ (GNU_PROPERTY_X86_ISA_1_AVX512CD): Likwise.
+ (GNU_PROPERTY_X86_ISA_1_AVX512ER): Likwise.
+ (GNU_PROPERTY_X86_ISA_1_AVX512PF): Likwise.
+ (GNU_PROPERTY_X86_ISA_1_AVX512VL): Likwise.
+ (GNU_PROPERTY_X86_ISA_1_AVX512DQ): Likwise.
+ (GNU_PROPERTY_X86_ISA_1_AVX512BW): Likwise.
+ (GNU_PROPERTY_X86_FEATURE_1_IBT): Likwise.
+ (GNU_PROPERTY_X86_FEATURE_1_SHSTK): Likwise.
+
+2017-08-18 Gabriel F. T. Gomes <gftg@linux.vnet.ibm.com>
+
+ * misc/sys/cdefs.h (__HAVE_GENERIC_SELECTION): Define to 0, if
+ in C++ mode.
+
+2017-08-18 Gabriel F. T. Gomes <gftg@linux.vnet.ibm.com>
+
+ [BZ #21930]
+ * math/math.h (isinf): Check if in C or C++ mode before using
+ __builtin_types_compatible_p, since this is a C mode feature.
+
+2017-08-18 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/generic/not-cancel.h (write_not_cancel): Remove macro.
+ (__write_nocancel): New macro.
+ * sysdeps/unix/sysv/linux/not-cancel.h (__write_nocancel):
+ Rewrite as a function prototype.
+ (write_not_cancel): Remove macro.
+ * sysdeps/unix/sysv/linux/write.c (__write_nocancel): New function.
+ * gmon/gmon.c (ERR): Replace write_not_cancel with __write_nocancel.
+ (write_gmon): Likewise.
+ * libio/fileops.c (_IO_new_file_write): Likewise.
+ * login/utmp_file.c (pututline_file): Likewise.
+ (updwtmp_file): Likewise.
+ * stdio-common/psiginfo.c (psiginfo): Likewise.
+ * sysdeps/posix/spawni.c (__spawni_child): Likewise.
+ * sysdeps/unix/sysv/linux/gethostid.c (sethostid): Likewise.
+ * sysdeps/unix/sysv/linux/libc_fatal.c (backtrace_and_maps):
+ Likewise.
+ * sysdeps/unix/sysv/linux/pthread_setname.c (pthread_setname_np):
+ Likewise.
+
+ * sysdeps/generic/not-cancel.h (read_not_cancel): Remove macro.
+ (__read_nocancel): New macro.
+ * sysdeps/unix/sysv/linux/Versions (libc) [GLIBC_PRIVATE]: Add
+ __read_nocancel.
+ * sysdeps/unix/sysv/linux/not-cancel.h (__read_nocancel): Remove
+ macro.
+ (__read_nocancel): New prototype.
+ * sysdeps/unix/sysv/linux/read.c (__read_nocancel): New function.
+ * catgets/open_catalog.c (__open_catalog): Replace read_not_cancel
+ with __read_nocancel.
+ * intl/loadmsgcat.c (read): Likewise.
+ * libio/fileops.c (_IO_file_read): Likewise.
+ * locale/loadlocale.c (_nl_load_locale): Likewise.
+ * login/utmp_file.c (getutent_r_file): Likewise.
+ (internal_getut_r): Likewise.
+ (getutline_r_file): Likewise.
+ * sysdeps/unix/sysv/linux/fips-private.h (fips_enable_p): Likewise.
+ * sysdeps/unix/sysv/linux/gethostid.c (gethostid): Likewise.
+ * sysdeps/unix/sysv/linux/getloadavg.c (getloadavg): Likewise.
+ * sysdeps/unix/sysv/linux/getlogin_r.c (__getlogin_r_loginuid):
+ Likewise.
+ * sysdeps/unix/sysv/linux/getsysstats.c (next_line): Likewise.
+ * sysdeps/unix/sysv/linux/i386/smp.h (is_smp_system): Likewise.
+ * sysdeps/unix/sysv/linux/ia64/has_cpuclock.c (has_cpuclock):
+ Likewise.
+ * sysdeps/unix/sysv/linux/libc_fatal.c (backtrace_and_maps):
+ Likewise.
+ * sysdeps/unix/sysv/linux/malloc-sysdep.h (check_may_shrink_heap):
+ Likewise.
+ * sysdeps/unix/sysv/linux/pthread_getname.c (pthread_getname_np):
+ Likewise.
+ * sysdeps/unix/sysv/linux/sysconf.c (__sysconf): Likewise.
+
+2017-08-18 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #21966]
+ * sysdeps/x86_64/fpu/multiarch/ifunc-mathvec-avx2.h
+ (IFUNC_SELECTOR): Don't use the AVX2 version if FMA isn't
+ usable.
+
+2017-08-17 DJ Delorie <dj@redhat.com>
+
+ * bug17079.c: Update to new test harness.
+ * test-digits-dots.c: Likewise.
+ * test-netdb.c: Likewise.
+ * tst-field.c: Likewise.
+ * tst-nss-getpwent.c: Likewise.
+ * tst-nss-static.c: Likewise.
+ * tst-nss-test1.c: Likewise.
+ * tst-nss-test2.c: Likewise.
+ * tst-nss-test3.c: Likewise.
+ * tst-nss-test4.c: Likewise.
+ * tst-nss-test5.c: Likewise.
+
+2017-08-17 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/generic/not-cancel.h (open_not_cancel): Remove macro.
+ (open_not_cancel_2): Likewise.
+ (open_nocancel): New macro.
+ (open64_nocancel): Likewise.
+ * sysdeps/unix/sysv/linux/not-cancel.h (open_not_cancel): Remove macro.
+ (open_not_cancel_2): Likewise.
+ (__open_nocancel): New prototype.
+ (__open64_nocancel): Likewise.
+ * sysdeps/unix/sysv/linux/Versions (libc) [GLIBC_PRIVATE]: Add
+ __open_nocancel.
+ * sysdeps/unix/sysv/linux/open.c (__open_nocancel): New function.
+ * sysdeps/unix/sysv/linux/open64.c (__open64_nocancel): Likewise.
+ * catgets/open_catalog.c (__open_catalog): Replace open_not_cancel{_2}
+ with __open_nocancel.
+ * csu/check_fds.c (check_one_fd): Likewise.
+ * gmon/gmon.c (write_gmon): Likewise.
+ * iconv/gconv_cache.c (__gconv_load_cached): Likewise.
+ * intl/loadmsgcat.c (open): Likewise.
+ * libio/fileops.c (_IO_file_open): Likewise.
+ * locale/loadarchive.c (_nl_load_locale_from_archive): Likewise.
+ * locale/loadlocale.c (_nl_load_locale): Likewise.
+ * login/utmp_file.c (setutent_file): Likewise.
+ * misc/daemon.c (daemon): Likewise.
+ * nss/nss_db/db-open.c (internal_setent): Likewise.
+ * sysdeps/mach/hurd/opendir.c (__opendirat): Likewise.
+ * sysdeps/posix/libc_fatal.c (__libc_message): Likewise.
+ * sysdeps/posix/opendir.c (tryopen_o_directory): Likewise.
+ (__opendir): Likewise.
+ * sysdeps/posix/spawni.c (__spawni_child): Likewise.
+ * sysdeps/unix/sysv/linux/fips-private.h (fips_enable_p): Likewise.
+ * sysdeps/unix/sysv/linux/gethostid.c (sethostid): Likewise.
+ (gethostid): Likewise.
+ * sysdeps/unix/sysv/linux/getloadavg.c (getloadavg): Likewise.
+ * sysdeps/unix/sysv/linux/getlogin_r.c (__getlogin_r_loginuid):
+ Likewise.
+ * sysdeps/unix/sysv/linux/getsysstats.c (__get_nprocs): Likewise.
+ * sysdeps/unix/sysv/linux/grantpt.c (__close_all_fds): Likewise.
+ * sysdeps/unix/sysv/linux/i386/smp.h (is_smp_system): Likewise.
+ * sysdeps/unix/sysv/linux/ia64/has_cpuclock.c (has_cpuclock):
+ Likewise.
+ * sysdeps/unix/sysv/linux/libc_fatal.c (backtrace_and_maps):
+ Likewise.
+ * sysdeps/unix/sysv/linux/malloc-sysdep.h (check_may_shrink_heap):
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/get_clockfreq.c (__get_clockfreq):
+ Likewise.
+ * sysdeps/unix/sysv/linux/pthread_getname.c (pthread_getname_np):
+ Likewise.
+ * sysdeps/unix/sysv/linux/pthread_setname.c (pthread_setname_np):
+ Likewise.
+ * sysdeps/unix/sysv/linux/spawni.c (__spawni_child): Likewise.
+ * sysdeps/unix/sysv/linux/sysconf.c (__sysconf): Likewise.
+
+2017-08-17 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * benchtests/bench-skeleton.c (main): Add support for
+ latency benchmarking.
+ * benchtests/scripts/bench.py: Add support for latency benchmarking.
+
+2017-08-17 H.J. Lu <hongjiu.lu@intel.com>
+
+ * Makeconfig (+link-pie-before-libc): Add CRT-* hook to override
+ the startup object.
+
+2017-08-17 Florian Weimer <fweimer@redhat.com>
+
+ * include/sys/socket.h (__opensock): Remove internal_function.
+ * socket/opensock.c (__opensock): Likewise.
+ * sysdeps/unix/sysv/linux/opensock.c (__opensock): Likewise.
+
+2017-08-16 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #21944]
+ * signal/bits/types/__sigval_t.h: New file.
+ * signal/Makefile (headers): Add bits/types/__sigval_t.h.
+ * signal/bits/types/sigval_t.h: Include <bits/types/__sigval_t.h>
+ and define sigval_t using __sigval_t.
+ * include/bits/types/__sigval_t.h: New file.
+ * bits/types/sigevent_t.h: Include <bits/types/__sigval_t.h>
+ instead of <bits/types/__sigval_t.h>.
+ (struct sigevent): Use __sigval_t instead of sigval_t.
+ * bits/types/siginfo_t.h: Include <bits/types/__sigval_t.h>
+ instead of <bits/types/__sigval_t.h>.
+ (siginfo_t): Use __sigval_t instead of sigval_t.
+ * sysdeps/unix/sysv/linux/bits/types/sigevent_t.h: Include
+ <bits/types/__sigval_t.h> instead of <bits/types/__sigval_t.h>.
+ (struct sigevent): Use __sigval_t instead of sigval_t.
+ * sysdeps/unix/sysv/linux/bits/types/siginfo_t.h: Include
+ <bits/types/__sigval_t.h> instead of <bits/types/__sigval_t.h>.
+ (siginfo_t): Use __sigval_t instead of sigval_t.
+ * signal/signal.h [__USE_MISC]: Include <bits/types/sigval_t.h>.
+
+2017-08-16 H.J. Lu <hongjiu.lu@intel.com>
+
+ * NEWS: Remove "[Add new features here]" for 2.27.
+
+2017-08-16 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/sh/localplt.data: Allow abort in
+ libc.so.
+
+2017-08-16 H.J. Lu <hongjiu.lu@intel.com>
+
+ * NEWS: Mention x86-64 FMA optimization.
+
+2017-08-16 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #21912]
+ * sysdeps/x86_64/fpu/multiarch/Makefile (libm-sysdep_routines):
+ Add e_expf-fma.
+ * sysdeps/x86_64/fpu/multiarch/e_expf-fma.S: New file.
+ * sysdeps/x86_64/fpu/multiarch/e_expf.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/ifunc-fma.h: Likewise.
+
+2017-08-16 Andreas Schwab <schwab@suse.de>
+
+ [BZ #16750]
+ CVE-2009-5064
+ * elf/ldd.bash.in: Never run file directly.
+
+2017-08-15 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #21955]
+ * sysdeps/x86_64/fpu/e_expf.S (L(SP_RANGE)): Aligned to 8 bytes.
+ (L(SP_INF_0)): Likewise.
+
+2017-08-15 Florian Weimer <fweimer@redhat.com>
+
+ * gmon/Makefile (tests-special): Add tst-gmon-prof only if
+ run-built-tests.
+
+2017-08-15 Florian Weimer <fweimer@redhat.com>
+
+ Remove BROKEN_THREAD_SIGNALS support for LinuxThreads.
+ * sysdeps/pthread/aio_misc.c (__aio_enqueue_request): Remove
+ BROKEN_THREAD_SIGNALS code.
+ * sysdeps/ppthread/aio_misc.h (struct waitlist, struct
+ request_list): Remove caller_pid member used for
+ BROKEN_THREAD_SIGNALS.
+ [BROKEN_THREAD_SIGNALS] (__aio_notify_only): Remove declaration.
+ * sysdeps/pthread/aio_notify.c (__aio_notify_only, __aio_notify):
+ Remove BROKEN_THREAD_SIGNALS support.
+ * sysdeps/pthread/aio_suspend.c (aio_suspend): Likewise.
+ * sysdeps/pthread/lio_listio.c (lio_listio_internal): Likewise.
+
+2017-08-15 Florian Weimer <fweimer@redhat.com>
+
+ * gmon/Makefile (tests): Add tst-gmon.
+ (CFLAGS-tst-gmon.c, LDFLAGS-tst-gmon, CRT-tst-gmon, tst-gmon-ENV):
+ Set.
+ (tests-special): Add tst-gmon-prof.out.
+ (tst-gmon.out): Depend on clean-tst-gmon-data.
+ (clean-tst-gmon-data, tst-gmon-gprof.out): New targets.
+ * gmon/tst-gmon.c, gmon/tst-gmon-gprof.sh: New files.
+ * Makeconfig (+link-before-libc): Add CRT-* hook to override the
+ startup object.
+ * aclocal.m4 (GPROF): Set and substitute.
+ * config.amke.in (GPROF): Set.
+ * configure: Regenerate.
+
+2017-08-15 Gustavo Romero <gromero@linux.vnet.ibm.com>
+
+ * elf/elf.h A (NT_PPC_TAR): New macro.
+ (NT_PPC_PPR): Likewise.
+ (NT_PPC_DSCR): Likewise.
+ (NT_PPC_EBB): Likewise.
+ (NT_PPC_PMU): Likewise.
+ (NT_PPC_TM_CGPR): Likewise.
+ (NT_PPC_TM_CFPR): Likewise.
+ (NT_PPC_TM_CVMX): Likewise.
+ (NT_PPC_TM_CVSX): Likewise.
+ (NT_PPC_TM_SPR): Likewise.
+ (NT_PPC_TM_CTAR): Likewise.
+ (NT_PPC_TM_CPPR): Likewise.
+ (NT_PPC_TM_CDSCR): Likewise.
+
+2017-08-15 Florian Weimer <fweimer@redhat.com>
+
+ * sysdeps/i386/machine-gmon.h (mcount_internal): Declare with
+ regparm (2) instead of internal_function.
+ (_MCOUNT_DECL): Adjust.
+
+2017-08-15 Stefan Liebler <stli@linux.vnet.ibm.com>
+
+ * sysdeps/s390/dl-procinfo.c (_dl_s390_cap_flags): Add z14.
+ * sysdeps/s390/dl-procinfo.h (_DL_PLATFORMS_COUNT): Increased.
+
+2017-08-14 Joseph Myers <joseph@codesourcery.com>
+
+ * conform/data/sys/wait.h-data (si_value): Do not expect for
+ XPG42.
+
+2017-08-14 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #21962]
+ NSS: Create stubs for accidentally exported lookup functions.
+ * grp/initgroups.c (__nss_group_lookup, __nss_lookup_function):
+ Remove declaration.
+ * inet/ether_hton.c (__nss_ethers_lookup): Likewise.
+ (ether_hostton): Call __nss_ethers_lookup2 instead.
+ * inet/ether_ntoh.c (__nss_ethers_lookup): Remove declaration.
+ (ether_ntohost): Call __nss_ethers_lookup2 instead.
+ * inet/getnetgrent_r.c (__nss_netgroup_lookup): Remove declaration.
+ (setup): Call __nss_netgroup_lookup2 instead.
+ * nss/Makefile (routines): Add compat-lookup.
+ * nss/Versions (GLIBC_2.27): Add symbol version.
+ * nss/XXX-lookup (DB_LOOKUP_FCT): Remove declaration. Now provided by <nsswitch.h>.
+ (DB_COMPAT_FCT): Remove.
+ * nss/compat-lookup.c: New file.
+ * nss/nsswitch.h: Generate __nss_*_lookup2 function prototypes
+ from databases.def.
+ * nss/service-lookup.c (NO_COMPAT): Remove definition.
+ * sunrpc/netname.c (__nss_publickey_lookup): Remove declaration.
+ (netname2user): Call __nss_publickey_lookup2 instead.
+ * sunrpc/publickey.c (__nss_publickey_lookup): Remove declaration.
+ (getpublickey, getsecretkey): Call __nss_publickey_lookup2
+ instead.
+
+2017-08-14 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+ Sergei Trofimovich <slyfox@inbox.ru>
+
+ [BZ #21908]
+ * sysdeps/unix/sysv/linux/m68k/mmap_internal.h (MMAP2_PAGE_SHIFT):
+ Rename to MMAP2_PAGE_UNIT.
+ * sysdeps/unix/sysv/linux/mmap.c: Include mmap_internal iff
+ __OFF_T_MATCHES_OFF64_T is not defined.
+ * sysdeps/unix/sysv/linux/mmap_internal.h (page_unit): Declare as
+ uint64_t.
+ (MMAP2_PAGE_UNIT) [MMAP2_PAGE_UNIT == -1]: Redefine to page_unit.
+ (page_unit) [MMAP2_PAGE_UNIT != -1]: Remove definition.
+
+2017-08-14 Florian Weimer <fweimer@redhat.com>
+
+ i386: Do not set internal_function.
+ * config.h.in (USE_REGPARMS, internal_function): Remove.
+ * sysdeps/i386/configure.ac (USE_REGPARMS): Likewise.
+ * sysdeps/i386/configure (USE_REGPARMS): Likewise.
+
+2017-08-14 Florian Weimer <fweimer@redhat.com>
+
+ * elf/dl-init.c (_dl_init): Remove internal_function.
+ * sysdeps/generic/ldsodefs.h (_dl_init): Likewise.
+ * sysdeps/i386/dl-machine.h (RTLD_START): Adjust call to _dl_init.
+
+2017-08-14 Florian Weimer <fweimer@redhat.com>
+
+ * elf/rtld.c (_dl_start): Remove internal_function.
+ * sysdeps/i386/dl-machine.h (RTLD_START): Adjust call to
+ _dl_start.
+
+2017-08-14 Florian Weimer <fweimer@redhat.com>
+
+ * elf/dl-fini.c (_dl_fini): Remove internal_function
+ * sysdeps/generic/ldsodefs.h (_dl_fini): Likewise.
+
+2017-08-14 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86/cpu-features.h (bit_cpu_IBT): New.
+ (bit_cpu_SHSTK): Likewise.
+ (index_cpu_IBT): Likewise.
+ (index_cpu_SHSTK): Likewise.
+ (reg_IBT): Likewise.
+ (reg_SHSTK): Likewise.
+ * sysdeps/x86/cpu-tunables.c (TUNABLE_CALLBACK (set_hwcaps)):
+ Handle index_cpu_IBT and index_cpu_SHSTK.
+
+2017-08-14 Mike FABIAN <mfabian@redhat.com>
+
+ [BZ #19982]
+ * po/fr.po: Fix spelling mistake.
+
+2017-08-13 Florian Weimer <fweimer@redhat.com>
+
+ * elf/dl-addr.c (_dl_addr): Remove internal_function.
+ * elf/dl-error-skeleton.c (_dl_signal_error, _dl_signal_cerror)
+ (_dl_catch_error, _dl_receive_error): Likewise.
+ * elf/dl-open.c (_dl_find_dso_for_object): Likewise.
+ * elf/dl-tls.c (_dl_allocate_tls_init, _dl_allocate_tls)
+ (_dl_deallocate_tls): Likewise.
+ * include/dlfcn.h (_dl_addr): Likewise.
+ * sysdeps/generic/ldsodefs.h (_dl_signal_error, _dl_signal_cerror)
+ (_dl_catch_error, _dl_receive_error, _dl_find_dso_for_object)
+ (_dl_allocate_tls_init, _dl_allocate_tls, _dl_deallocate_tls):
+ Likewise.
+
+2017-08-13 Florian Weimer <fweimer@redhat.com>
+
+ * include/stdlib.h: (__strtof_nan, __strtod_nan, __strtold_nan)
+ (__wcstof_nan, __wcstod_nan, __wcstold_nan): Remove
+ internal_function.
+ * stdlib/sttod_nan_main.c (STRTOD_NAN): Likewise.
+
+2017-08-13 Florian Weimer <fweimer@redhat.com>
+
+ * elf/dl-support.c (_dl_make_stack_executable_hook): Remove
+ internal_function.
+ * nptl/allocatestack.c (__make_stacks_executable): Likewise.
+ * nptl/pthreadP.h (__make_stacks_executable): Likewise.
+ * sysdeps/generic/ldsodefs.h (_rtld_global): Remove
+ internal_function from _dl_make_stack_executable_hook member.
+ (_dl_make_stack_executable): Remove internal_function.
+ * sysdeps/mach/hurd/dl-execstack.c (_dl_make_stack_executable):
+ Likewise.
+ * sysdeps/unix/sysv/linux/dl-execstack.c
+ (_dl_make_stack_executable): Likewise.
+
+2017-08-13 Florian Weimer <fweimer@redhat.com>
+
+ * sysdeps/unix/sysv/linux/netlinkaccess.h
+ (__netlink_assert_response): Remove internal_function.
+ * sysdeps/unix/sysv/linux/netlink_assert_response.c
+ (__netlink_assert_response): Likewise.
+
+2017-08-13 Florian Weimer <fweimer@redhat.com>
+
+ * include/rpc/pmap_clnt.h (__libc_rpc_getport): Remove
+ internal_function.
+ * sunrpoc/pm_getport.c (__libc_rpc_getport): Likewise.
+
+2017-08-13 Florian Weimer <fweimer@redhat.com>
+
+ * grp/grp-merge.h (__copy_grp, __merge_grp): Remove
+ internal_function.
+ * grp/grp-merge.c (__copy_grp, __merge_grp): Likewise.
+ * inet/netgroup.h (__internal_setnetgrent)
+ (__internal_endnetgrent,__internal_getnetgrent_r): Likewise.
+ * inet/getnetgrent_r.c (__internal_setnetgrent)
+ (__internal_endnetgrent,__internal_getnetgrent_r): Likewise.
+ * nss/XXX-lookup.c (DB_LOOKUP_FCT, DB_COMPAT_FCT): Likewise.
+ * nss/getXXbyYY_r.c (DB_LOOKUP_FCT): Likewise.
+ * nss/getXXent_r.c (DB_LOOKUP_FCT): Likewise.
+ * nss/nsswitch.h (db_lookup_function): Likewise.
+
+2017-08-13 Florian Weimer <fweimer@redhat.com>
+
+ * debug/fortify_fail.c (__fortify_fail, __fortify_fail_abort):
+ Remove internal_function.
+ * include/stdio.h (__fortify_fail, __fortify_fail_abort): Likewise.
+ * sysdeps/mach/hurd/i386/____longjmp_chk.S (CALL_FAIL): Pass
+ message argument on the stack.
+ * sysdeps/unix/sysv/linux/i386/____longjmp_chk.S (CALL_FAIL):
+ Likeweise.
+
+2017-08-12 Mike FABIAN <mfabian@redhat.com>
+
+ Adapt test case data to the changes in the thousands
+ separators.
+
+ [BZ #20756]
+ * localedata/tst-langinfo.sh: Adapt test case data.
+ * stdlib/tst-strfmon_l.c: Likewise.
+ * stdlib/tst-strtod4.c: Likewise.
+ * stdlib/tst-strtod5i.c: Likewise.
+
+2017-08-11 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #21242]
+ * assert/assert.h [__GNUC__ && !__STRICT_ANSI__] (assert):
+ Suppress pedantic warning resulting from statement expression.
+ (__ASSERT_FUNCTION): Add missing __extension__.
+
+2017-08-11 Siddhesh Poyarekar <siddhesh@sourceware.org>
+
+ * benchtests/bench-memmove-large.c: Print output in JSON
+ format.
+ * benchtests/bench-memmove.c: Likewise.
+
+ * benchtests/bench-memccpy.c (do_one_test): Remove checks.
+ * benchtests/bench-memchr.c (do_one_test): Likewise.
+ * benchtests/bench-memcpy-large.c (do_one_test): Likewise.
+ * benchtests/bench-memcpy.c (do_one_test): Likewise.
+ * benchtests/bench-memmove-large.c (do_one_test): Likewise.
+ * benchtests/bench-memmove.c (do_one_test): Likewise.
+ * benchtests/bench-memset-large.c (do_one_test): Likewise.
+ * benchtests/bench-memset.c (do_one_test): Likewise.
+ * benchtests/bench-string.h (test_init): Remove memsets.
+
+2017-08-10 Rical Jasan <ricaljasan@pacific.net>
+
+ * manual/lang.texi
+ (Computing the Width of an Integer Data Type): Rename section to
+ "Width of an Integer Type". Remove inaccurate statement regarding
+ lack of C language facilities for determining width of integer
+ types, and reorder content to improve flow and context of
+ discussion.
+
+2017-08-10 Rical Jasan <ricaljasan@pacific.net>
+
+ * lang.texi (va_copy): Change standard from ISO to C99.
+ (__va_copy): Add standard and header annotation.
+ Update description for clarity of origins and current use.
+
+2017-08-10 Gabriel F. T. Gomes <gftg@linux.vnet.ibm.com>
+
+ [BZ #21941]
+ * sysdeps/powerpc/fpu/math_private.h (__ieee754_sqrtf128): Since
+ xssqrtqp requires operands to be in Vector Registers
+ (Altivec/VMX), replace the register constraint 'wq' with 'v'.
+ * sysdeps/powerpc/powerpc64le/power9/fpu/e_sqrtf128.c
+ (__ieee754_sqrtf128): Likewise.
+
+2017-08-10 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * sysdeps/aarch64/memcmp.S (memcmp):
+ Rewrite of optimized memcmp.
+
+2017-08-10 Florian Weimer <fweimer@redhat.com>
+
+ Introduce ld.so exceptions.
+ * sysdeps/generic/ldsodefs.h (struct dl_exception): Define.
+ (_dl_exception_create, _dl_exception_create_format)
+ (_dl_exception_free, _dl_signal_exception, _dl_signal_cexception)
+ (_dl_catch_exception): Declare.
+ (_dl_catch_error): Update comment.
+ * elf/dl-error-skeleton.c (struct catch): Replace objname,
+ errstring, malloced members with exception member.
+ (_dl_out_of_memory): Remove.
+ (fatal_error): New function, extracted from _dl_signal_error.
+ (_dl_signal_exception, _dl_signal_cexception): New functions.
+ (_dl_signal_error): Call _dl_exception_create to allocate an
+ exception object.
+ (_dl_catch_exception): New function, based on _dl_catch_error.
+ (_dl_catch_error): Implement using _dl_catch_exception.
+ * elf/dl-exception.c: New file.
+ * elf/Makefile (dl-routines): Add dl-exception.
+ (elide-routines.os): Likewise.
+ * elf/Version (ld/GLIBC_PRIVATE): Add _dl_exception_create,
+ _dl_exception_create_format, _dl_exception_free.
+ * elf/dl-deps.c (_dl_map_object_deps): Use _dl_catch_exception and
+ _dl_signal_exception.
+ * elf/dl-lookup.c (make_string): Remove.
+ (_dl_lookup_symbol_x): Use _dl_exception_create_format,
+ _dl_signal_cexception, _dl_exception_free.
+ * elf/dl-open.c (_dl_open): Use _dl_catch_exception and
+ _dl_signal_exception.
+ * elf/dl-sym.c (do_sym): Likewise.
+ * elf/dl-version.c (make_string): Remove.
+ (match_symbol): Use _dl_exception_create_format,
+ _dl_signal_cexception, _dl_exception_free.
+ (_dl_check_map_versions): Likewise.
+ * sysdeps/generic/localplt.data (ld.so): Add _dl_signal_exception,
+ _dl_catch_exception.
+ * sysdeps/unix/sysv/linux/aarch64/localplt.data (ld.so): Likewise.
+ * sysdeps/unix/sysv/linux/alpha/localplt.data (ld.so): Likewise.
+ * sysdeps/unix/sysv/linux/arm/localplt.data (ld.so): Likewise.
+ * sysdeps/unix/sysv/linux/hppa/localplt.data (ld.so): Likewise.
+ * sysdeps/unix/sysv/linux/i386/localplt.data (ld.so): Likewise.
+ * sysdeps/unix/sysv/linux/ia64/localplt.data (ld.so): Likewise.
+ * sysdeps/unix/sysv/linux/m68k/localplt.data (ld.so): Likewise.
+ * sysdeps/unix/sysv/linux/microblaze/localplt.data (ld.so):
+ Likewise.
+ * sysdeps/unix/sysv/linux/nios2/localplt.data (ld.so): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/localplt.data
+ (ld.so): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/localplt.data
+ (ld.so): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/localplt.data (ld.so):
+ Likewise.
+ * sysdeps/unix/sysv/linux/s390/localplt.data (ld.so): Likewise.
+ * sysdeps/unix/sysv/linux/sh/localplt.data (ld.so): Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/localplt.data (ld.so):
+ Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data (ld.so):
+ Likewise.
+ * sysdeps/x86_64/localplt.data (ld.so): Likewise.
+
+2017-08-10 Florian Weimer <fweimer@redhat.com>
+
+ * inet/net-internal.h (__inet6_scopeid_pton): Remove
+ attribute_hidden, internal_function.
+ * inet/inet6_scopeid_pton.c (__inet6_scopeid_pton): Remove
+ internal_function.
+
+2017-08-10 Florian Weimer <fweimer@redhat.com>
+
+ * malloc/malloc.c (get_max_fast): Reimplement as an inline
+ function which calls __builtin_unreachable.
+
+2017-08-10 Mike FABIAN <mfabian@redhat.com>
+
+ * stdlib/tst-strfmon_l.c: Fix test cases to agree with the changes in
+ Indian monetary formatting
+ * stdlib/Makefile: Adapt list of locales needed for the tst-strfmon_l.c
+ test cases.
+
+2017-08-09 Dmitry V. Levin <ldv@altlinux.org>
+
+ * sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h (enum __ptrace_request):
+ Fix typo in comment.
+
+ [BZ #21928]
+ * sysdeps/unix/sysv/linux/sys/ptrace.h (enum __ptrace_flags,
+ PTRACE_SEIZE_DEVEL): Remove.
+ * sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h: Likewise.
+ * sysdeps/unix/sysv/linux/ia64/sys/ptrace.h: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h: Likewise.
+ * sysdeps/unix/sysv/linux/s390/sys/ptrace.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sys/ptrace.h: Likewise.
+
+2017-08-09 Joseph Myers <joseph@codesourcery.com>
+
+ * posix/bits/types.h (__qaddr_t): Remove.
+
+ [BZ #21457]
+ * sysdeps/arm/sys/ucontext.h (__ctx): Move undefine further down.
+ (ucontext_t): Use __ctx with uc_flags. Rename uc_filler to
+ __glibc_reserved1.
+ * sysdeps/generic/sys/ucontext.h (__ctx): New macro.
+ (ucontext_t): Use __ctx with uc_flags.
+ * sysdeps/i386/sys/ucontext.h (__ctx): Move undefine further down.
+ (__ctxt): Likewise.
+ (ucontext_t): Use __ctx with uc_flags. Rename uc_filler to
+ __glibc_reserved1.
+ * sysdeps/m68k/sys/ucontext.h (__ctx): Move undefine further down.
+ (ucontext_t): Use __ctx with uc_flags. Rename uc_filler to
+ __glibc_reserved1.
+ * sysdeps/mips/sys/ucontext.h (__ctx): Move undefine further down.
+ (ucontext_t): Use __ctx with uc_flags. Rename uc_filler to
+ __glibc_reserved1.
+ * sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h (__ctx): New
+ macro.
+ (ucontext_t): Use __ctx with uc_flags.
+ * sysdeps/unix/sysv/linux/alpha/sys/ucontext.h (__ctx): New macro.
+ (ucontext_t): Use __ctx with uc_flags.
+ * sysdeps/unix/sysv/linux/arm/sys/ucontext.h (__ctx): New macro.
+ (ucontext_t): Use __ctx with uc_flags and uc_regspace.
+ * sysdeps/unix/sysv/linux/hppa/sys/ucontext.h (__ctx): New macro.
+ (ucontext_t): Use __ctx with uc_flags.
+ * sysdeps/unix/sysv/linux/m68k/sys/ucontext.h (__ctx): Move
+ undefine further down.
+ (ucontext_t): Use __ctx with uc_flags. Rename uc_filler to
+ __glibc_reserved1.
+ * sysdeps/unix/sysv/linux/mips/sys/ucontext.h (__ctx): Move
+ undefine further down.
+ (ucontext_t): Use __ctx with uc_flags.
+ * sysdeps/unix/sysv/linux/nios2/sys/ucontext.h (__ctx): Move
+ undefine further down.
+ (ucontext_t): Use __ctx with uc_flags.
+ * sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h (ucontext_t): Use
+ __ctx with uc_flags, uc_regs_ptr, uc_regs and uc_reg_space.
+ Rename uc_pad to __glibc_reserved1.
+ * sysdeps/unix/sysv/linux/s390/sys/ucontext.h (__ctx): Move
+ undefine further down.
+ (ucontext_t): Use __ctx with uc_flags.
+ * sysdeps/unix/sysv/linux/sh/sys/ucontext.h (__ctx): Move undefine
+ further down.
+ (ucontext_t): Use __ctx with uc_flags.
+ * sysdeps/unix/sysv/linux/sparc/sys/ucontext.h (ucontext_t): Use
+ __ctx with uc_flags.
+ * sysdeps/unix/sysv/linux/tile/sys/ucontext.h (__ctx): New macro.
+ (ucontext_t): Use __ctx with uc_flags.
+ * sysdeps/unix/sysv/linux/x86/sys/ucontext.h (ucontext_t): Use
+ __ctx with uc_flags.
+
+2017-08-09 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #21932]
+ * nss/getXXbyYY_r.c (REENTRANT_NAME): Call __resolv_context_put
+ before early return.
+
+2017-08-09 Andreas Schwab <schwab@suse.de>
+
+ [BZ #21041]
+ * sysdeps/unix/sysv/linux/s390/pt-longjmp.c: Update reference to
+ renamed alias.
+
+ [BZ #21041]
+ * nptl/Makefile (tests) [$(build-shared) = yes]: Add
+ tst-compat-forwarder.
+ (modules-names): Add tst-compat-forwarder-mod.
+ ($(objpfx)tst-compat-forwarder): Depend on
+ $(objpfx)tst-compat-forwarder-mod.so.
+ * nptl/tst-compat-forwarder.c: New file.
+ * nptl/tst-compat-forwarder-mod.c: New file.
+
+2017-08-09 Siddhesh Poyarekar <siddhesh@sourceware.org>
+
+ * sysdeps/aarch64/multiarch/memcpy_falkor.S: Fix code style in
+ comments.
+
+ * manual/tunables.texi (Tunable glibc.tune.cpu): Add falkor.
+ * sysdeps/aarch64/multiarch/Makefile (sysdep_routines): Add
+ memcpy_falkor.
+ * sysdeps/aarch64/multiarch/ifunc-impl-list.c (MAX_IFUNC):
+ Bump.
+ (__libc_ifunc_impl_list): Add __memcpy_falkor.
+ * sysdeps/aarch64/multiarch/memcpy.c: Likewise.
+ * sysdeps/aarch64/multiarch/memcpy_falkor.S: New file.
+ * sysdeps/unix/sysv/linux/aarch64/cpu-features.c (cpu_list):
+ Add falkor.
+ * sysdeps/unix/sysv/linux/aarch64/cpu-features.h (IS_FALKOR):
+ New macro.
+
+2017-08-08 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ [BZ #759]
+ * manual/setjmp.texi (getcontex): Document uc_stack value
+ compatibility differences.
+
+2017-08-08 Joseph Myers <joseph@codesourcery.com>
+
+ * malloc/mcheck.c (old_free_hook): Use void * instead of __ptr_t.
+ (old_malloc_hook): Likewise.
+ (old_memalign_hook): Likewise.
+ (old_realloc_hook): Likewise.
+ (struct hdr): Likewise.
+ (flood): Likewise.
+ (freehook): Likewise.
+ (mallochook): Likewise.
+ (memalignhook): Likewise.
+ (reallochook): Likewise.
+ (mprobe): Likewise.
+ * malloc/mtrace.c (mallwatch): Likewise.
+ (tr_old_free_hook): Likewise.
+ (tr_old_malloc_hook): Likewise.
+ (tr_old_realloc_hook): Likewise.
+ (tr_old_memalign_hook): Likewise.
+ (tr_where): Likewise.
+ (lock_and_info): Likewise.
+ (tr_freehook): Likewise.
+ (tr_mallochook): Likewise.
+ (tr_reallochook): Likewise.
+ (tr_memalignhook): Likewise.
+ * misc/err.h [!__GNUC_VA_LIST] (__gnuc_va_list): Likewise.
+ * misc/mmap.c (__mmap): Likewise.
+ * misc/mmap64.c (__mmap64): Likewise.
+ * misc/mprotect.c (__mprotect): Likewise.
+ * misc/msync.c (msync): Likewise.
+ * misc/munmap.c (__munmap): Likewise.
+ * posix/posix_madvise.c (posix_madvise): Likewise.
+ * socket/send.c (__send): Likewise.
+ * socket/sendto.c (__sendto): Likewise.
+ * socket/setsockopt.c (__setsockopt): Likewise.
+ * string/memcmp.c (__ptr_t): Remove macro.
+ (MEMCMP): Use void * instead of ptr_t.
+ * string/memrchr.c (__ptr_t): Remove macro.
+ (__memrchr): Use void * instead of ptr_t.
+ * sysdeps/mach/hurd/dl-sysdep.c (__mmap): Likewise.
+ * sysdeps/mach/hurd/mmap.c (__mmap): Likewise.
+ * sysdeps/mach/hurd/mmap64.c (__mmap64): Likewise.
+ * sysdeps/mach/mprotect.c (__mprotect): Likewise.
+ * sysdeps/mach/msync.c (msync): Likewise.
+ * sysdeps/mach/munmap.c (__munmap): Likewise.
+ * sysdeps/mips/bits/setjmp.h (struct __jmp_buf_internal_tag):
+ Likewise.
+ * sysdeps/posix/getcwd.c (__getcwd): Likewise.
+ * sysdeps/powerpc/powerpc32/memset.S (memset): Likewise.
+ * sysdeps/powerpc/powerpc32/power4/memcpy.S (memcpy): Likewise.
+ * sysdeps/powerpc/powerpc32/power4/memset.S (memset): Likewise.
+ * sysdeps/powerpc/powerpc32/power6/memcpy.S (memcpy): Likewise.
+ * sysdeps/powerpc/powerpc32/power6/memset.S (memset): Likewise.
+ * sysdeps/powerpc/powerpc32/power7/memcpy.S (memcpy): Likewise.
+ * sysdeps/powerpc/powerpc32/power7/mempcpy.S (__mempcpy):
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power7/memset.S (memset): Likewise.
+ * sysdeps/powerpc/powerpc64/memcpy.S (memcpy): Likewise.
+ * sysdeps/powerpc/powerpc64/memset.S (memset): Likewise.
+ * sysdeps/powerpc/powerpc64/power4/memcpy.S (memcpy): Likewise.
+ * sysdeps/powerpc/powerpc64/power4/memset.S (memset): Likewise.
+ * sysdeps/powerpc/powerpc64/power6/memcpy.S (memcpy): Likewise.
+ * sysdeps/powerpc/powerpc64/power6/memset.S (memset): Likewise.
+ * sysdeps/powerpc/powerpc64/power7/memcpy.S (memcpy): Likewise.
+ * sysdeps/powerpc/powerpc64/power7/mempcpy.S (__mempcpy):
+ Likewise.
+ * sysdeps/powerpc/powerpc64/power7/memset.S (memset): Likewise.
+ * sysdeps/powerpc/powerpc64/power8/memset.S (memset): Likewise.
+ * sysdeps/tile/memcmp.c (__ptr_t): Remove macro.
+ (MEMCMP): Use void * instead of ptr_t.
+ * sysdeps/unix/sysv/linux/alpha/oldglob.c (old_glob_t): Likewise.
+ * sysdeps/unix/sysv/linux/mmap.c (__mmap): Likewise.
+
+2017-08-08 Florian Weimer <fweimer@redhat.com>
+
+ * sysdeps/posix/getaddrinfo.c (gaih_inet): Remove unreachable
+ return statement.
+
+2017-08-08 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #21913]
+ * csu/libc-tls.c: Include <startup.h> first.
+ (__libc_setup_tls): Call _startup_fatal instead of __libc_fatal.
+ * elf/dl-tunables.c: Include <startup.h> first.
+ * include/libc-symbols.h (BUILD_PIE_DEFAULT): New.
+ * sysdeps/generic/startup.h: New file.
+ * sysdeps/unix/sysv/linux/i386/startup.h: Likewise.
+ * sysdeps/unix/sysv/linux/i386/brk.c [BUILD_PIE_DEFAULT != 0]
+ (I386_USE_SYSENTER): New. Defined to 0.
+
+2017-08-08 Andreas Schwab <schwab@suse.de>
+
+ [BZ #21041]
+ * nptl/pt-longjmp.c (longjmp, siglongjmp): Don't use IFUNC resolver.
+ * nptl/pt-system.c (system): Likewise.
+
+2017-08-07 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ [BZ #21780]
+ * sysdeps/posix/preadv2.c (preadv2): Use ENOTSUP instead of
+ EOPNOTSUPP.
+ * sysdeps/posix/preadv64v2.c (preadv64v2): Likewise.
+ * sysdeps/posix/pwritev2.c (pwritev2): Likewise.
+ * sysdeps/posix/pwritev64v2.c (pwritev64v2): Likewise.
+ * sysdeps/unix/sysv/linux/preadv2.c (preadv2): Likewise.
+ * sysdeps/unix/sysv/linux/preadv64v2.c (preadv64v2): Likewise.
+ * sysdeps/unix/sysv/linux/pwritev2.c (pwritev2): Likewise.
+ * sysdeps/unix/sysv/linux/pwritev64v2.c (pwritev64v2): Likewise.
+
+2017-08-07 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #21899]
+ * bits/sigaction.h (struct sigaction): Define sa_handler and
+ sa_sigaction using union also for [__USE_XOPEN_EXTENDED].
+ (SA_ONSTACK): Change [__USE_UNIX98] condition to
+ [__USE_XOPEN_EXTENDED].
+ (SA_RESTART): Likewise.
+ (SA_NODEFER): Likewise.
+ (SA_RESETHAND): Likewise.
+ * sysdeps/unix/sysv/linux/alpha/bits/sigaction.h
+ (struct sigaction): Define sa_handler and sa_sigaction using union
+ also for [__USE_XOPEN_EXTENDED].
+ (SA_ONSTACK): Change [__USE_UNIX98] condition to
+ [__USE_XOPEN_EXTENDED].
+ (SA_RESTART): Likewise.
+ (SA_NODEFER): Likewise.
+ (SA_RESETHAND): Likewise.
+ * sysdeps/unix/sysv/linux/bits/sigaction.h
+ (struct sigaction): Define sa_handler and sa_sigaction using union
+ also for [__USE_XOPEN_EXTENDED].
+ (SA_ONSTACK): Change [__USE_UNIX98] condition to
+ [__USE_XOPEN_EXTENDED].
+ (SA_RESTART): Likewise.
+ (SA_NODEFER): Likewise.
+ (SA_RESETHAND): Likewise.
+ * sysdeps/unix/sysv/linux/hppa/bits/sigaction.h
+ (struct sigaction): Define sa_handler and sa_sigaction using union
+ also for [__USE_XOPEN_EXTENDED].
+ (SA_ONSTACK): Change [__USE_UNIX98] condition to
+ [__USE_XOPEN_EXTENDED].
+ (SA_RESTART): Likewise.
+ (SA_NODEFER): Likewise.
+ (SA_RESETHAND): Likewise.
+ * sysdeps/unix/sysv/linux/ia64/bits/sigaction.h
+ (struct sigaction): Define sa_handler and sa_sigaction using union
+ also for [__USE_XOPEN_EXTENDED].
+ (SA_ONSTACK): Change [__USE_UNIX98] condition to
+ [__USE_XOPEN_EXTENDED].
+ (SA_RESTART): Likewise.
+ (SA_NODEFER): Likewise.
+ (SA_RESETHAND): Likewise.
+ * sysdeps/unix/sysv/linux/mips/bits/sigaction.h
+ (struct sigaction): Define sa_handler and sa_sigaction using union
+ also for [__USE_XOPEN_EXTENDED].
+ (SA_ONSTACK): Change [__USE_UNIX98] condition to
+ [__USE_XOPEN_EXTENDED].
+ (SA_RESTART): Likewise.
+ (SA_NODEFER): Likewise.
+ (SA_RESETHAND): Likewise.
+ * sysdeps/unix/sysv/linux/s390/bits/sigaction.h
+ (struct sigaction): Define sa_handler and sa_sigaction using union
+ also for [__USE_XOPEN_EXTENDED].
+ (SA_ONSTACK): Change [__USE_UNIX98] condition to
+ [__USE_XOPEN_EXTENDED].
+ (SA_RESTART): Likewise.
+ (SA_NODEFER): Likewise.
+ (SA_RESETHAND): Likewise.
+ * sysdeps/unix/sysv/linux/sparc/bits/sigaction.h
+ (struct sigaction): Define sa_handler and sa_sigaction using union
+ also for [__USE_XOPEN_EXTENDED].
+ (SA_ONSTACK): Change [__USE_UNIX98] condition to
+ [__USE_XOPEN_EXTENDED].
+ (SA_RESTART): Likewise.
+ (SA_NODEFER): Likewise. Define directly rather than as alias.
+ (SA_RESETHAND): Likewise.
+ (SA_INTERRUPT): Define only for [__USE_MISC].
+ (SA_NOMASK): Define as alias of SA_NODEFER, only for [__USE_MISC].
+ (SA_ONESHOT): Define as alias of SA_RESETHAND, only for
+ [__USE_MISC].
+ (SA_STACK): Define only for [__USE_MISC].
+ * sysdeps/unix/sysv/linux/tile/bits/sigaction.h
+ (struct sigaction): Define sa_handler and sa_sigaction using union
+ also for [__USE_XOPEN_EXTENDED].
+ (SA_ONSTACK): Change [__USE_UNIX98] condition to
+ [__USE_XOPEN_EXTENDED].
+ (SA_RESTART): Likewise.
+ (SA_NODEFER): Likewise.
+ (SA_RESETHAND): Likewise.
+ (SA_NOPTRACE): Define only for [__USE_MISC].
+
+ * catgets/catgets.c (catgets): Use uintN_t instead of u_intN_t.
+ * catgets/catgetsinfo.h (struct catalog_obj): Likewise.
+ (struct catalog_info): Likewise.
+ * inet/htontest.c (lo): Likewise.
+ (foo): Likewise.
+ * inet/inet_lnaof.c (inet_lnaof): Likewise.
+ * inet/inet_net.c (inet_network): Likewise.
+ * inet/inet_netof.c (inet_netof): Likewise.
+ * inet/rcmd.c (__ivaliduser): Likewise.
+ (iruserok): Likewise.
+ * locale/loadlocale.c (_nl_intern_locale_data): Likewise.
+ * locale/programs/locale-spec.c (locale_special): Likewise.
+ * nis/nis_findserv.c (struct findserv_req): Likewise.
+ (__nis_findfastest_with_timeout): Likewise.
+ * nss/test-netdb.c (test_network): Likewise.
+ * resolv/inet_neta.c (inet_neta): Likewise.
+ * resolv/ns_date.c (ns_datetosecs): Likewise.
+ (SECS_PER_DAY): Likewise.
+ * resolv/nss_dns/dns-network.c (_nss_dns_getnetbyaddr_r):
+ Likewise.
+ * resolv/res_comp.c (__putlong): Likewise.
+ (__putshort): Likewise.
+ (_getlong): Likewise.
+ (_getshort): Likewise.
+ * resolv/res_debug.c (p_time): Likewise.
+ (precsize_ntoa): Likewise.
+ (precsize_aton): Likewise.
+ (latlon2ul): Likewise.
+ (loc_aton): Likewise.
+ (loc_ntoa): Likewise.
+ * resolv/res_hconf.c (struct netaddr): Likewise.
+ (_res_hconf_reorder_addrs): Likewise.
+ * sunrpc/clnt_tcp.c (clnttcp_call): Likewise.
+ (clnttcp_control): Likewise.
+ * sunrpc/clnt_udp.c (clntudp_call): Likewise.
+ (clntudp_control): Likewise.
+ * sunrpc/clnt_unix.c (clntunix_call): Likewise.
+ (clntunix_control): Likewise.
+ * sunrpc/pmap_rmt.c (clnt_broadcast): Likewise.
+ * sunrpc/rpc/auth.h (union des_block): Likewise.
+ * sunrpc/tst-udp-nonblocking.c (do_test): Likewise.
+ * sunrpc/xdr_rec.c (struct rec_strm): Likewise.
+ (xdrrec_create): Likewise.
+ (xdrrec_endofrecord): Likewise.
+ (flush_out): Likewise.
+ * sunrpc/xdr_stdio.c (xdrstdio_getlong): Likewise.
+ (xdrstdio_putlong): Likewise.
+ * sysdeps/unix/sysv/linux/errqueue.h (struct sock_extended_err):
+ Likewise.
+
+ * misc/sys/cdefs.h (__long_double_t): Remove.
+ * stdio-common/printf_fp.c (__printf_fp_l): Use long double
+ instead of __long_double_t,
+ * stdlib/strfmon_l.c (__vstrfmon_l): Likewise.
+
+2017-08-07 Siddhesh Poyarekar <siddhesh@sourceware.org>
+
+ * benchtests/scripts/compare_strings.py: Avoid display error when
+ running on a text terminal.
+
+ * benchtests/scripts/compare_strings.py (main): Add an
+ optional -base option.
+ (process_results): New argument base_func.
+
+ * benchtests/bench-memcpy.c (test_main): Use TEST_NAME instead of
+ hardcoding memcpy.
+ * benchtests/bench-memcpy-large.c (test_name): Likewise.
+ * benchtests/bench-memcpy-random.c (test_name): Likewise.
+
+2017-08-07 Andreas Schwab <schwab@suse.de>
+
+ * elf/Makefile ($(objpfx)tst-pathopt.out): Redirect output to target.
+ * grp/Makefile ($(objpfx)tst_fgetgrent.out): Likewise.
+ * intl/Makefile ($(objpfx)tst-gettext.out)
+ ($(objpfx)tst-translit.out, $(objpfx)tst-gettext2.out)
+ ($(objpfx)tst-gettext4.out, $(objpfx)tst-gettext6.out): Likewise.
+ * libio/Makefile ($(objpfx)test-freopen.out): Likewise.
+ * malloc/Makefile ($(objpfx)tst-mtrace.out): Likewise.
+ * nptl/Makefile ($(objpfx)tst-tls6.out): Likewise.
+ * posix/Makefile ($(objpfx)globtest.out)
+ ($(objpfx)wordexp-tst.out, $(objpfx)tst-getconf.out): Likewise.
+ * stdio-common/Makefile ($(objpfx)tst-unbputc.out)
+ ($(objpfx)tst-printf.out): Likewise.
+ * stdlib/Makefile ($(objpfx)tst-fmtmsg.out)
+ ($(objpfx)tst-setcontext3.out): Likewise.
+
+2017-08-07 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86_64/fpu/multiarch/Makefile (libm-sysdep_routines):
+ Add e_exp-fma, e_log-fma, e_pow-fma, s_atan-fma, e_asin-fma,
+ e_atan2-fma, s_sin-fma, s_tan-fma, mplog-fma, mpa-fma,
+ slowexp-fma, slowpow-fma, sincos32-fma, doasin-fma, dosincos-fma,
+ halfulp-fma, mpexp-fma, mpatan2-fma, mpatan-fma, mpsqrt-fma,
+ and mptan-fma.
+ (CFLAGS-doasin-fma.c): New.
+ (CFLAGS-dosincos-fma.c): Likewise.
+ (CFLAGS-e_asin-fma.c): Likewise.
+ (CFLAGS-e_atan2-fma.c): Likewise.
+ (CFLAGS-e_exp-fma.c): Likewise.
+ (CFLAGS-e_log-fma.c): Likewise.
+ (CFLAGS-e_pow-fma.c): Likewise.
+ (CFLAGS-halfulp-fma.c): Likewise.
+ (CFLAGS-mpa-fma.c): Likewise.
+ (CFLAGS-mpatan-fma.c): Likewise.
+ (CFLAGS-mpatan2-fma.c): Likewise.
+ (CFLAGS-mpexp-fma.c): Likewise.
+ (CFLAGS-mplog-fma.c): Likewise.
+ (CFLAGS-mpsqrt-fma.c): Likewise.
+ (CFLAGS-mptan-fma.c): Likewise.
+ (CFLAGS-s_atan-fma.c): Likewise.
+ (CFLAGS-sincos32-fma.c): Likewise.
+ (CFLAGS-slowexp-fma.c): Likewise.
+ (CFLAGS-slowpow-fma.c): Likewise.
+ (CFLAGS-s_sin-fma.c): Likewise.
+ (CFLAGS-s_tan-fma.c): Likewise.
+ * sysdeps/x86_64/fpu/multiarch/doasin-fma.c: New file.
+ * sysdeps/x86_64/fpu/multiarch/dosincos-fma.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/e_asin-fma.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/e_atan2-fma.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/e_exp-fma.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/e_log-fma.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/e_pow-fma.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/halfulp-fma.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/ifunc-avx-fma4.h: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/ifunc-fma4.h: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/mpa-fma.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/mpatan-fma.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/mpatan2-fma.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/mpexp-fma.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/mplog-fma.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/mpsqrt-fma.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/mptan-fma.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/s_atan-fma.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/s_sin-fma.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/s_tan-fma.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/sincos32-fma.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/slowexp-fma.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/slowpow-fma.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/e_asin.c: Rewrite.
+ * sysdeps/x86_64/fpu/multiarch/e_atan2.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/e_exp.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/e_log.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/e_pow.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/s_atan.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/s_sin.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/s_tan.c: Likewise.
+
+2017-08-04 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/generic/math_private.h (__EXPR_FLT128): Remove macro.
+ (min_of_type_f): New macro.
+ (min_of_type_): Likewise.
+ (min_of_type_l): Likewise.
+ (min_of_type_f128): Likewise.
+ (min_of_type): Define using __MATH_TG and taking an expression
+ argument.
+ (math_check_force_underflow): Pass expression instead of type to
+ min_of_type.
+ (math_check_force_underflow_nonneg): Likewise.
+
+2017-08-04 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86/cpu-features.h [__ASSEMBLER__]
+ (LOAD_RTLD_GLOBAL_RO_RDX, HAS_FEATURE, LOAD_FUNC_GOT_EAX,
+ HAS_CPU_FEATURE, HAS_ARCH_FEATURE): Removed.
+
+2017-08-04 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/i386/i686/multiarch/Makefile (sysdep_routines): Add
+ bcopy-ia32, bzero-ia32, rawmemchr-ia32 memchr-ia32,
+ memcmp-ia32, memcpy-ia32, memmove-ia32, mempcpy-ia32,
+ memset-ia32, strcat-ia32, strchr-ia32, strrchr-ia32,
+ strcpy-ia32, strcmp-ia32, strcspn-ia32, strpbrk-ia32,
+ strspn-ia32, strlen-ia32, stpcpy-ia32, stpncpy-ia32,
+ memcpy_chk-nonshared, mempcpy_chk-nonshared,
+ memmove_chk-nonshared and memset_chk-nonshared
+ * sysdeps/i386/i686/multiarch/bcopy-ia32.S: New file.
+ * sysdeps/i386/i686/multiarch/bcopy.c: Likewise.
+ * sysdeps/i386/i686/multiarch/bzero-ia32.S: Likewise.
+ * sysdeps/i386/i686/multiarch/bzero.c: Likewise.
+ * sysdeps/i386/i686/multiarch/ifunc-memmove.h: Likewise.
+ * sysdeps/i386/i686/multiarch/ifunc-memset.h: Likewise.
+ * sysdeps/i386/i686/multiarch/ifunc-sse2-bsf.h: Likewise.
+ * sysdeps/i386/i686/multiarch/ifunc-sse2-ssse3.h: Likewise.
+ * sysdeps/i386/i686/multiarch/ifunc-sse2.h: Likewise.
+ * sysdeps/i386/i686/multiarch/ifunc-sse4_2.h: Likewise.
+ * sysdeps/i386/i686/multiarch/ifunc-ssse3-sse4_2.h: Likewise.
+ * sysdeps/i386/i686/multiarch/memchr-ia32.S: Likewise.
+ * sysdeps/i386/i686/multiarch/memchr.c: Likewise.
+ * sysdeps/i386/i686/multiarch/memcmp-ia32.S: Likewise.
+ * sysdeps/i386/i686/multiarch/memcmp.c: Likewise.
+ * sysdeps/i386/i686/multiarch/memcpy-ia32.S: Likewise.
+ * sysdeps/i386/i686/multiarch/memcpy.c: Likewise.
+ * sysdeps/i386/i686/multiarch/memcpy_chk-nonshared.S: Likewise.
+ * sysdeps/i386/i686/multiarch/memcpy_chk.c: Likewise.
+ * sysdeps/i386/i686/multiarch/memmove-ia32.S: Likewise.
+ * sysdeps/i386/i686/multiarch/memmove.c: Likewise.
+ * sysdeps/i386/i686/multiarch/memmove_chk-nonshared.S: Likewise.
+ * sysdeps/i386/i686/multiarch/memmove_chk.c: Likewise.
+ * sysdeps/i386/i686/multiarch/mempcpy-ia32.S: Likewise.
+ * sysdeps/i386/i686/multiarch/mempcpy.c: Likewise.
+ * sysdeps/i386/i686/multiarch/mempcpy_chk-nonshared.S: Likewise.
+ * sysdeps/i386/i686/multiarch/mempcpy_chk.c: Likewise.
+ * sysdeps/i386/i686/multiarch/memrchr.c: Likewise.
+ * sysdeps/i386/i686/multiarch/memset-ia32.S: Likewise.
+ * sysdeps/i386/i686/multiarch/memset.c: Likewise.
+ * sysdeps/i386/i686/multiarch/memset_chk-nonshared.S: Likewise.
+ * sysdeps/i386/i686/multiarch/rawmemchr-ia32.S: Likewise.
+ * sysdeps/i386/i686/multiarch/rawmemchr.c: Likewise.
+ * sysdeps/i386/i686/multiarch/stpcpy-ia32.S: Likewise.
+ * sysdeps/i386/i686/multiarch/stpcpy-ia32.S: Likewise.
+ * sysdeps/i386/i686/multiarch/stpcpy.c: Likewise.
+ * sysdeps/i386/i686/multiarch/stpncpy-ia32.S: Likewise.
+ * sysdeps/i386/i686/multiarch/stpncpy.c: Likewise.
+ * sysdeps/i386/i686/multiarch/strcasecmp.c: Likewise.
+ * sysdeps/i386/i686/multiarch/strcasecmp_l.c: Likewise.
+ * sysdeps/i386/i686/multiarch/strcat-ia32.S: Likewise.
+ * sysdeps/i386/i686/multiarch/strcat.c: Likewise.
+ * sysdeps/i386/i686/multiarch/strchr-ia32.S: Likewise.
+ * sysdeps/i386/i686/multiarch/strchr.c: Likewise.
+ * sysdeps/i386/i686/multiarch/strcmp-ia32.S: Likewise.
+ * sysdeps/i386/i686/multiarch/strcmp.c: Likewise.
+ * sysdeps/i386/i686/multiarch/strcpy-ia32.S: Likewise.
+ * sysdeps/i386/i686/multiarch/strcpy.c: Likewise.
+ * sysdeps/i386/i686/multiarch/strcspn-ia32.S: Likewise.
+ * sysdeps/i386/i686/multiarch/strcspn.c: Likewise.
+ * sysdeps/i386/i686/multiarch/strlen-ia32.S: Likewise.
+ * sysdeps/i386/i686/multiarch/strlen.c: Likewise.
+ * sysdeps/i386/i686/multiarch/strncase.c: Likewise.
+ * sysdeps/i386/i686/multiarch/strncase_l.c: Likewise.
+ * sysdeps/i386/i686/multiarch/strncat.c: Likewise.
+ * sysdeps/i386/i686/multiarch/strncmp.c: Likewise.
+ * sysdeps/i386/i686/multiarch/strncpy.c: Likewise.
+ * sysdeps/i386/i686/multiarch/strnlen.c: Likewise.
+ * sysdeps/i386/i686/multiarch/strpbrk-ia32.S: Likewise.
+ * sysdeps/i386/i686/multiarch/strpbrk.c: Likewise.
+ * sysdeps/i386/i686/multiarch/strrchr-ia32.S: Likewise.
+ * sysdeps/i386/i686/multiarch/strrchr.c: Likewise.
+ * sysdeps/i386/i686/multiarch/strspn-ia32.S: Likewise.
+ * sysdeps/i386/i686/multiarch/strspn.c: Likewise.
+ * sysdeps/i386/i686/multiarch/wcschr.c: Likewise.
+ * sysdeps/i386/i686/multiarch/wcscmp.c: Likewise.
+ * sysdeps/i386/i686/multiarch/wcscpy.c: Likewise.
+ * sysdeps/i386/i686/multiarch/wcslen.c: Likewise.
+ * sysdeps/i386/i686/multiarch/wcsrchr.c: Likewise.
+ * sysdeps/i386/i686/multiarch/wmemcmp.c: Likewise.
+ * sysdeps/i386/i686/multiarch/bcopy.S: Removed.
+ * sysdeps/i386/i686/multiarch/bzero.S: Likewise.
+ * sysdeps/i386/i686/multiarch/memchr.S: Likewise.
+ * sysdeps/i386/i686/multiarch/memcmp.S: Likewise.
+ * sysdeps/i386/i686/multiarch/memcpy.S: Likewise.
+ * sysdeps/i386/i686/multiarch/memcpy_chk.S: Likewise.
+ * sysdeps/i386/i686/multiarch/memmove.S: Likewise.
+ * sysdeps/i386/i686/multiarch/memmove_chk.S: Likewise.
+ * sysdeps/i386/i686/multiarch/mempcpy.S: Likewise.
+ * sysdeps/i386/i686/multiarch/mempcpy_chk.S: Likewise.
+ * sysdeps/i386/i686/multiarch/memrchr.S: Likewise.
+ * sysdeps/i386/i686/multiarch/memset.S: Likewise.
+ * sysdeps/i386/i686/multiarch/memset_chk.S: Likewise.
+ * sysdeps/i386/i686/multiarch/rawmemchr.S: Likewise.
+ * sysdeps/i386/i686/multiarch/stpcpy.S: Likewise.
+ * sysdeps/i386/i686/multiarch/stpncpy.S: Likewise.
+ * sysdeps/i386/i686/multiarch/strcasecmp.S: Likewise.
+ * sysdeps/i386/i686/multiarch/strcasecmp_l.S: Likewise.
+ * sysdeps/i386/i686/multiarch/strcat.S: Likewise.
+ * sysdeps/i386/i686/multiarch/strcmp.S: Likewise.
+ * sysdeps/i386/i686/multiarch/strcpy.S: Likewise.
+ * sysdeps/i386/i686/multiarch/strcspn.S: Likewise.
+ * sysdeps/i386/i686/multiarch/strlen.S: Likewise.
+ * sysdeps/i386/i686/multiarch/strncase.S: Likewise.
+ * sysdeps/i386/i686/multiarch/strncase_l.S: Likewise.
+ * sysdeps/i386/i686/multiarch/strncat.S: Likewise.
+ * sysdeps/i386/i686/multiarch/strncmp.S: Likewise.
+ * sysdeps/i386/i686/multiarch/strncpy.S: Likewise.
+ * sysdeps/i386/i686/multiarch/strnlen.S: Likewise.
+ * sysdeps/i386/i686/multiarch/strpbrk.S: Likewise.
+ * sysdeps/i386/i686/multiarch/strrchr.S: Likewise.
+ * sysdeps/i386/i686/multiarch/strspn.S: Likewise.
+ * sysdeps/i386/i686/multiarch/wcschr.S: Likewise.
+ * sysdeps/i386/i686/multiarch/wcscmp.S: Likewise.
+ * sysdeps/i386/i686/multiarch/wcscpy.S: Likewise.
+ * sysdeps/i386/i686/multiarch/wcslen.S: Likewise.
+ * sysdeps/i386/i686/multiarch/wcsrchr.S: Likewise.
+ * sysdeps/i386/i686/multiarch/wmemcmp.S: Likewise.
+
+2017-08-04 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86_64/fpu/multiarch/Makefile (libmvec-sysdep_routines)
+ Add svml_d_cos2_core-sse2, svml_d_cos4_core-sse,
+ svml_d_cos8_core-avx2, svml_d_exp2_core-sse2,
+ svml_d_exp4_core-sse, svml_d_exp8_core-avx2,
+ svml_d_log2_core-sse2, svml_d_log4_core-sse,
+ svml_d_log8_core-avx2, svml_d_pow2_core-sse2,
+ svml_d_pow4_core-sse, svml_d_pow8_core-avx2
+ svml_d_sin2_core-sse2, svml_d_sin4_core-sse,
+ svml_d_sin8_core-avx2, svml_d_sincos2_core-sse2,
+ svml_d_sincos4_core-sse, svml_d_sincos8_core-avx2,
+ svml_s_cosf16_core-avx2, svml_s_cosf4_core-sse2,
+ svml_s_cosf8_core-sse, svml_s_expf16_core-avx2,
+ svml_s_expf4_core-sse2, svml_s_expf8_core-sse,
+ svml_s_logf16_core-avx2, svml_s_logf4_core-sse2,
+ svml_s_logf8_core-sse, svml_s_powf16_core-avx2,
+ svml_s_powf4_core-sse2, svml_s_powf8_core-sse,
+ svml_s_sincosf16_core-avx2, svml_s_sincosf4_core-sse2,
+ svml_s_sincosf8_core-sse, svml_s_sinf16_core-avx2,
+ svml_s_sinf4_core-sse2 and svml_s_sinf8_core-sse.
+ * sysdeps/x86_64/fpu/multiarch/ifunc-mathvec-avx2.h: New file.
+ * sysdeps/x86_64/fpu/multiarch/ifunc-mathvec-avx512.h: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/ifunc-mathvec-sse4_1.h: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_cos2_core.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_cos4_core.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_cos8_core.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_log2_core.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_log4_core.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_log8_core.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_sin2_core.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_sin4_core.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_sin8_core.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_sincos2_core.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_sincos4_core.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_sincos8_core.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_cosf16_core.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_cosf4_core.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_cosf8_core.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_expf16_core.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_expf4_core.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_expf8_core.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_logf16_core.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_logf4_core.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_logf8_core.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_powf16_core.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_powf4_core.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_powf8_core.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_sincosf16_core.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_sincosf4_core.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_sincosf8_core.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_sinf16_core.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_sinf4_core.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_sinf8_core.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_cos2_core.S: Renamed to
+ ...
+ * sysdeps/x86_64/fpu/multiarch/svml_d_cos2_core-sse2.S: This.
+ Don't include <sysdep.h> nor <init-arch.h>.
+ (_ZGVbN2v_cos): Removed.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_cos4_core.S: Renamed to
+ ...
+ * sysdeps/x86_64/fpu/multiarch/svml_d_cos4_core-sse.S: This.
+ Don't include <sysdep.h> nor <init-arch.h>.
+ (_ZGVdN4v_cos): Removed.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_cos8_core.S: Renamed to
+ ...
+ * sysdeps/x86_64/fpu/multiarch/svml_d_cos8_core-avx2.S: This.
+ Don't include <sysdep.h> nor <init-arch.h>.
+ (_ZGVeN8v_cos): Removed.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core.S: Renamed to
+ ...
+ * sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core-sse2.S: This.
+ Don't include <sysdep.h> nor <init-arch.h>.
+ (_ZGVbN2v_exp): Removed.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core.S: Renamed to
+ ...
+ * sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core-sse.S: This.
+ Don't include <sysdep.h> nor <init-arch.h>.
+ (_ZGVdN4v_exp): Removed.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core.S: Renamed to
+ ...
+ * sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core-avx2.S: This.
+ Don't include <sysdep.h> nor <init-arch.h>.
+ (_ZGVeN8v_exp): Removed.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_log2_core.S: Renamed to
+ ...
+ * sysdeps/x86_64/fpu/multiarch/svml_d_log2_core-sse2.S: This.
+ Don't include <sysdep.h> nor <init-arch.h>.
+ (_ZGVbN2v_log): Removed.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_log4_core.S: Renamed to
+ ...
+ * sysdeps/x86_64/fpu/multiarch/svml_d_log4_core-sse.S: This.
+ Don't include <sysdep.h> nor <init-arch.h>.
+ (_ZGVdN4v_log): Removed.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_log8_core.S: Renamed to
+ ...
+ * sysdeps/x86_64/fpu/multiarch/svml_d_log8_core-avx2.S: This.
+ Don't include <sysdep.h> nor <init-arch.h>.
+ (_ZGVeN8v_log): Removed.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core.S: Renamed to
+ ...
+ * sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core-sse2.S: This.
+ Don't include <sysdep.h> nor <init-arch.h>.
+ (_ZGVbN2vv_pow): Removed.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core.S: Renamed to
+ ...
+ * sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core-sse.S: This.
+ Don't include <sysdep.h> nor <init-arch.h>.
+ (_ZGVdN4vv_pow): Removed.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core.S: Renamed to
+ ...
+ * sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core-avx2.S: This.
+ Don't include <sysdep.h> nor <init-arch.h>.
+ (_ZGVeN8vv_pow): Removed.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_sin2_core.S: Renamed to
+ ...
+ * sysdeps/x86_64/fpu/multiarch/svml_d_sin2_core-sse2.S: This.
+ Don't include <sysdep.h> nor <init-arch.h>.
+ (_ZGVbN2v_sin): Removed.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_sin4_core.S: Renamed to
+ ...
+ * sysdeps/x86_64/fpu/multiarch/svml_d_sin4_core-sse.S: This.
+ Don't include <sysdep.h> nor <init-arch.h>.
+ (_ZGVbN4v_sin): Removed.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_sin8_core.S: Renamed to
+ ...
+ * sysdeps/x86_64/fpu/multiarch/svml_d_sin8_core-avx2.S: This.
+ Don't include <sysdep.h> nor <init-arch.h>.
+ (_ZGVbN8v_sin): Removed.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_sincos2_core.S: Renamed to
+ ...
+ * sysdeps/x86_64/fpu/multiarch/svml_d_sincos2_core-sse2.S: This.
+ Don't include <sysdep.h> nor <init-arch.h>.
+ (_ZGVbN2vvv_sincos): Removed.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_sincos4_core.S: Renamed to
+ ...
+ * sysdeps/x86_64/fpu/multiarch/svml_d_sincos4_core-sse.S: This.
+ Don't include <sysdep.h> nor <init-arch.h>.
+ (_ZGVdN4vvv_sincos): Removed.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_sincos8_core.S: Renamed to
+ ...
+ * sysdeps/x86_64/fpu/multiarch/svml_d_sincos8_core-avx2.S: This.
+ Don't include <sysdep.h> nor <init-arch.h>.
+ (_ZGVeN8vvv_sincos): Removed.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_cosf16_core.S: Renamed to
+ ...
+ * sysdeps/x86_64/fpu/multiarch/svml_d_cosf16_core-avx2.S: This.
+ Don't include <sysdep.h> nor <init-arch.h>.
+ (_ZGVeN16v_cosf): Removed.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_cosf4_core.S: Renamed to
+ ...
+ * sysdeps/x86_64/fpu/multiarch/svml_d_cosf4_core-sse2.S: This.
+ Don't include <sysdep.h> nor <init-arch.h>.
+ (_ZGVbN4v_cosf): Removed.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_cosf8_core.S: Renamed to
+ ...
+ * sysdeps/x86_64/fpu/multiarch/svml_d_cosf8_core-sse.S: This.
+ Don't include <sysdep.h> nor <init-arch.h>.
+ (_ZGVdN8v_cosf): Removed.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_expf16_core.S: Renamed to
+ ...
+ * sysdeps/x86_64/fpu/multiarch/svml_d_expf16_core-avx2.S: This.
+ Don't include <sysdep.h> nor <init-arch.h>.
+ (_ZGVeN16v_expf): Removed.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_expf4_core.S: Renamed to
+ ...
+ * sysdeps/x86_64/fpu/multiarch/svml_d_expf4_core-sse2.S: This.
+ Don't include <sysdep.h> nor <init-arch.h>.
+ (_ZGVbN4v_expf): Removed.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_expf8_core.S: Renamed to
+ ...
+ * sysdeps/x86_64/fpu/multiarch/svml_d_expf8_core-sse.S: This.
+ Don't include <sysdep.h> nor <init-arch.h>.
+ (_ZGVdN8v_expf): Removed.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_logf16_core.S: Renamed to
+ ...
+ * sysdeps/x86_64/fpu/multiarch/svml_d_logf16_core-avx2.S: This.
+ Don't include <sysdep.h> nor <init-arch.h>.
+ (_ZGVeN16v_logf): Removed.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_logf4_core.S: Renamed to
+ ...
+ * sysdeps/x86_64/fpu/multiarch/svml_d_logf4_core-sse2.S: This.
+ Don't include <sysdep.h> nor <init-arch.h>.
+ (_ZGVbN4v_logf): Removed.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_logf8_core.S: Renamed to
+ ...
+ * sysdeps/x86_64/fpu/multiarch/svml_d_logf8_core-sse.S: This.
+ Don't include <sysdep.h> nor <init-arch.h>.
+ (_ZGVdN8v_logf): Removed.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_powf16_core.S: Renamed to
+ ...
+ * sysdeps/x86_64/fpu/multiarch/svml_d_powf16_core-avx2.S: This.
+ Don't include <sysdep.h> nor <init-arch.h>.
+ (_ZGVeN16vv_powf): Removed.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_powf4_core.S: Renamed to
+ ...
+ * sysdeps/x86_64/fpu/multiarch/svml_d_powf4_core-sse2.S: This.
+ Don't include <sysdep.h> nor <init-arch.h>.
+ (_ZGVbN4vv_powf): Removed.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_powf8_core.S: Renamed to
+ ...
+ * sysdeps/x86_64/fpu/multiarch/svml_d_powf8_core-sse.S: This.
+ Don't include <sysdep.h> nor <init-arch.h>.
+ (_ZGVdN8vv_powf): Removed.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_sincosf16_core.S: Renamed to
+ ...
+ * sysdeps/x86_64/fpu/multiarch/svml_d_sincosf16_core-avx2.S: This.
+ Don't include <sysdep.h> nor <init-arch.h>.
+ (_ZGVeN16vvv_sincosf): Removed.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_sincosf4_core.S: Renamed to
+ ...
+ * sysdeps/x86_64/fpu/multiarch/svml_d_sincosf4_core-sse2.S: This.
+ Don't include <sysdep.h> nor <init-arch.h>.
+ (_ZGVbN4vvv_sincosf): Removed.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_sincosf8_core.S: Renamed to
+ ...
+ * sysdeps/x86_64/fpu/multiarch/svml_d_sincosf8_core-sse.S: This.
+ Don't include <sysdep.h> nor <init-arch.h>.
+ (_ZGVdN8vvv_sincosf): Removed.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_sinf16_core.S: Renamed to
+ ...
+ * sysdeps/x86_64/fpu/multiarch/svml_d_sinf16_core-avx2.S: This.
+ Don't include <sysdep.h> nor <init-arch.h>.
+ (_ZGVeN16v_sinf): Removed.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_sinf4_core.S: Renamed to
+ ...
+ * sysdeps/x86_64/fpu/multiarch/svml_d_sinf4_core-sse2.S: This.
+ Don't include <sysdep.h> nor <init-arch.h>.
+ (_ZGVbN4v_sinf): Removed.
+ * sysdeps/x86_64/fpu/multiarch/svml_d_sinf8_core.S: Renamed to
+ ...
+ * sysdeps/x86_64/fpu/multiarch/svml_d_sinf8_core-sse.S: This.
+ Don't include <sysdep.h> nor <init-arch.h>.
+ (_ZGVdN8v_sinf): Removed.
+
+2017-08-04 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86_64/fpu/multiarch/Makefile (libm-sysdep_routines):
+ Add s_ceil-sse4_1, s_ceilf-sse4_1, s_floor-sse4_1,
+ s_floorf-sse4_1, s_nearbyint-sse4_1, s_nearbyintf-sse4_1,
+ s_rint-sse4_1 and s_rintf-sse4_1.
+ * sysdeps/x86_64/fpu/multiarch/ifunc-sse4_1.h: New file.
+ * sysdeps/x86_64/fpu/multiarch/s_ceil.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/s_ceilf.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/s_floor.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/s_floorf.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/s_nearbyint.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/s_nearbyintf.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/s_rint.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/s_rintf.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/s_ceil.S: Renamed to ...
+ * sysdeps/x86_64/fpu/multiarch/s_ceil-sse4_1.S: This. Don't
+ include <machine/asm.h> nor <init-arch.h>. Include <sysdep.h>.
+ (__ceil): Removed.
+ * sysdeps/x86_64/fpu/multiarch/s_ceilf.S: Renamed to ...
+ * sysdeps/x86_64/fpu/multiarch/s_ceilf-sse4_1.S: This. Don't
+ include <machine/asm.h> nor <init-arch.h>. Include <sysdep.h>.
+ (__ceilf): Removed.
+ * sysdeps/x86_64/fpu/multiarch/s_floor.S: Renamed to ...
+ * sysdeps/x86_64/fpu/multiarch/s_floor-sse4_1.S: This. Don't
+ include <machine/asm.h> nor <init-arch.h>. Include <sysdep.h>.
+ (__floor): Removed.
+ * sysdeps/x86_64/fpu/multiarch/s_floorf.S: Renamed to ...
+ * sysdeps/x86_64/fpu/multiarch/s_floorf-sse4_1.S: This. Don't
+ include <machine/asm.h> nor <init-arch.h>. Include <sysdep.h>.
+ (__floorf): Removed.
+ * sysdeps/x86_64/fpu/multiarch/s_nearbyint.S: Renamed to ...
+ * sysdeps/x86_64/fpu/multiarch/s_nearbyint-sse4_1.S: This. Don't
+ include <machine/asm.h> nor <init-arch.h>. Include <sysdep.h>.
+ (__nearbyint): Removed.
+ * sysdeps/x86_64/fpu/multiarch/s_nearbyintf.S: Renamed to ...
+ * sysdeps/x86_64/fpu/multiarch/s_nearbyintf-sse4_1.S: This. Don't
+ include <machine/asm.h> nor <init-arch.h>. Include <sysdep.h>.
+ (__nearbyintf): Removed.
+ * sysdeps/x86_64/fpu/multiarch/s_rint.S: Renamed to ...
+ * sysdeps/x86_64/fpu/multiarch/s_rint-sse4_1.S: This. Don't
+ include <machine/asm.h> nor <init-arch.h>. Include <sysdep.h>.
+ (__rint): Removed.
+ * sysdeps/x86_64/fpu/multiarch/s_rintf.S: Renamed to ...
+ * sysdeps/x86_64/fpu/multiarch/s_rintf-sse4_1.S: This. Don't
+ include <machine/asm.h> nor <init-arch.h>. Include <sysdep.h>.
+ (__rintf): Removed.
+
+2017-08-04 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/i386/start.S (_start): Check Check PIC instead of
+ SHARED. Avoid dynamic relocation against main in static PIE.
+
+2017-08-04 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #21815]
+ * elf/Makefile (CFLAGS-tst-prelink.c): New.
+ (LDFLAGS-tst-prelink): Likewise.
+
+2017-08-04 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/unix/sysv/linux/i386/sysdep.h (I386_USE_SYSENTER):
+ Define to I386_USE_SYSENTER to 0 or 1 if not defined.
+ (ENTER_KERNEL): Check if I386_USE_SYSENTER is 1 and check PIC.
+ (INTERNAL_SYSCALL_MAIN_INLINE): Likewise.
+ (INTERNAL_SYSCALL_NCS): Likewise.
+ (LOADARGS_1): Likewise.
+ (LOADARGS_5): Likewise.
+ (RESTOREARGS_1): Likewise.
+ (RESTOREARGS_5): Likewise.
+
+2017-08-04 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86_64/memmove.S (MEMCPY_SYMBOL): Don't check SHARED.
+ (MEMPCPY_SYMBOL): Likewise.
+ * sysdeps/x86_64/multiarch/ifunc-impl-list.c
+ (__libc_ifunc_impl_list): Test memcpy and mempcpy in libc.a.
+ * sysdeps/x86_64/multiarch/memcpy-ssse3-back.S: Also include
+ in libc.a.
+ * sysdeps/x86_64/multiarch/memcpy-ssse3.S: Likewise.
+ * sysdeps/x86_64/multiarch/memmove-avx512-no-vzeroupper.S:
+ Likewise.
+ * sysdeps/x86_64/multiarch/memcpy.c: Also include in libc.a.
+ (__hidden_ver1): Don't use in libc.a.
+ * sysdeps/x86_64/multiarch/memmove-sse2-unaligned-erms.S
+ (__mempcpy): Don't create a weak alias in libc.a.
+ * sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S: Support
+ libc.a.
+ * sysdeps/x86_64/multiarch/mempcpy.c: Also include in libc.a.
+ (__hidden_ver1): Don't use in libc.a.
+
+2017-08-04 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config.make.in (have-insert): New.
+ * configure.ac (libc_cv_insert): New. Set to yes if linker
+ supports INSERT in linker script.
+ (AC_SUBST(libc_cv_insert): New.
+ * configure: Regenerated.
+ * sysdeps/x86_64/Makefile (tests): Add tst-split-dynreloc only
+ if $(have-insert) == yes.
+
+2017-08-04 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elf/Makefile (tests): Add vismain only if
+ $(have-protected-data) == yes.
+ (tests-pie): Likewise.
+
+2017-08-04 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #21871]
+ * sysdeps/x86/cpu-features.c (init_cpu_features): Set
+ bit_arch_Use_dl_runtime_resolve_opt only with AVX512F.
+
+2017-08-04 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #21790]
+ * sysdeps/i386/i586/memset.S
+ (__memset_zero_constant_len_parameter): Removed.
+ * sysdeps/i386/i686/memset.S
+ (__memset_zero_constant_len_parameter): Likewise.
+ * sysdeps/i386/i686/multiarch/memset_chk.S
+ (__memset_zero_constant_len_parameter): Likewise.
+ * sysdeps/x86_64/memset.S (__memset_zero_constant_len_parameter):
+ Likewise.
+
+2017-08-03 Aurelien Jarno <aurelien@aurel32.net>
+
+ * stdlib/getentropy.c (getentropy): Change return type to int.
+
+2017-08-03 Aurelien Jarno <aurelien@aurel32.net>
+
+ * sysdeps/i386/i686/fpu/multiarch/libm-test-ulps: Regenerated.
+
+2017-08-03 Joseph Myers <joseph@codesourcery.com>
+
+ * math/s_nextafter.c (__nextafter): Use uintN_t instead of
+ u_intN_t.
+ * math/s_nexttowardf.c (__nexttowardf): Likewise.
+ * sysdeps/generic/math_private.h (ieee_double_shape_type):
+ Likewise.
+ (ieee_float_shape_type): Likewise.
+ * sysdeps/i386/fpu/s_fpclassifyl.c (__fpclassifyl): Likewise.
+ * sysdeps/i386/fpu/s_isnanl.c (__isnanl): Likewise.
+ * sysdeps/i386/fpu/s_nextafterl.c (__nextafterl): Likewise.
+ * sysdeps/i386/fpu/s_nexttoward.c (__nexttoward): Likewise.
+ * sysdeps/i386/fpu/s_nexttowardf.c (__nexttowardf): Likewise.
+ * sysdeps/ieee754/dbl-64/e_acosh.c (__ieee754_acosh): Likewise.
+ * sysdeps/ieee754/dbl-64/e_cosh.c (__ieee754_cosh): Likewise.
+ * sysdeps/ieee754/dbl-64/e_fmod.c (__ieee754_fmod): Likewise.
+ * sysdeps/ieee754/dbl-64/e_gamma_r.c (__ieee754_gamma_r):
+ Likewise.
+ * sysdeps/ieee754/dbl-64/e_hypot.c (__ieee754_hypot): Likewise.
+ * sysdeps/ieee754/dbl-64/e_jn.c (__ieee754_jn): Likewise.
+ (__ieee754_yn): Likewise.
+ * sysdeps/ieee754/dbl-64/e_log10.c (__ieee754_log10): Likewise.
+ * sysdeps/ieee754/dbl-64/e_log2.c (__ieee754_log2): Likewise.
+ * sysdeps/ieee754/dbl-64/e_rem_pio2.c (__ieee754_rem_pio2):
+ Likewise.
+ * sysdeps/ieee754/dbl-64/e_sinh.c (__ieee754_sinh): Likewise.
+ * sysdeps/ieee754/dbl-64/s_ceil.c (__ceil): Likewise.
+ * sysdeps/ieee754/dbl-64/s_copysign.c (__copysign): Likewise.
+ * sysdeps/ieee754/dbl-64/s_erf.c (__erf): Likewise.
+ (__erfc): Likewise.
+ * sysdeps/ieee754/dbl-64/s_expm1.c (__expm1): Likewise.
+ * sysdeps/ieee754/dbl-64/s_finite.c (FINITE): Likewise.
+ * sysdeps/ieee754/dbl-64/s_floor.c (__floor): Likewise.
+ * sysdeps/ieee754/dbl-64/s_fpclassify.c (__fpclassify): Likewise.
+ * sysdeps/ieee754/dbl-64/s_isnan.c (__isnan): Likewise.
+ * sysdeps/ieee754/dbl-64/s_issignaling.c (__issignaling):
+ Likewise.
+ * sysdeps/ieee754/dbl-64/s_llrint.c (__llrint): Likewise.
+ * sysdeps/ieee754/dbl-64/s_llround.c (__llround): Likewise.
+ * sysdeps/ieee754/dbl-64/s_lrint.c (__lrint): Likewise.
+ * sysdeps/ieee754/dbl-64/s_lround.c (__lround): Likewise.
+ * sysdeps/ieee754/dbl-64/s_modf.c (__modf): Likewise.
+ * sysdeps/ieee754/dbl-64/s_nextup.c (__nextup): Likewise.
+ * sysdeps/ieee754/dbl-64/s_remquo.c (__remquo): Likewise.
+ * sysdeps/ieee754/dbl-64/s_round.c (__round): Likewise.
+ * sysdeps/ieee754/dbl-64/s_trunc.c (__trunc): Likewise.
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_issignaling.c
+ (__issignaling): Likewise.
+ * sysdeps/ieee754/flt-32/e_atan2f.c (__ieee754_atan2f): Likewise.
+ * sysdeps/ieee754/flt-32/e_fmodf.c (__ieee754_fmodf): Likewise.
+ * sysdeps/ieee754/flt-32/e_gammaf_r.c (__ieee754_gammaf_r):
+ Likewise.
+ * sysdeps/ieee754/flt-32/e_jnf.c (__ieee754_ynf): Likewise.
+ * sysdeps/ieee754/flt-32/e_log10f.c (__ieee754_log10f): Likewise.
+ * sysdeps/ieee754/flt-32/e_powf.c (__ieee754_powf): Likewise.
+ * sysdeps/ieee754/flt-32/e_rem_pio2f.c (__ieee754_rem_pio2f):
+ Likewise.
+ * sysdeps/ieee754/flt-32/e_remainderf.c (__ieee754_remainderf):
+ Likewise.
+ * sysdeps/ieee754/flt-32/e_sqrtf.c (__ieee754_sqrtf): Likewise.
+ * sysdeps/ieee754/flt-32/s_ceilf.c (__ceilf): Likewise.
+ * sysdeps/ieee754/flt-32/s_copysignf.c (__copysignf): Likewise.
+ * sysdeps/ieee754/flt-32/s_erff.c (__erff): Likewise.
+ (__erfcf): Likewise.
+ * sysdeps/ieee754/flt-32/s_expm1f.c (__expm1f): Likewise.
+ * sysdeps/ieee754/flt-32/s_finitef.c (FINITEF): Likewise.
+ * sysdeps/ieee754/flt-32/s_floorf.c (__floorf): Likewise.
+ * sysdeps/ieee754/flt-32/s_fpclassifyf.c (__fpclassifyf):
+ Likewise.
+ * sysdeps/ieee754/flt-32/s_isnanf.c (__isnanf): Likewise.
+ * sysdeps/ieee754/flt-32/s_issignalingf.c (__issignalingf):
+ Likewise.
+ * sysdeps/ieee754/flt-32/s_llrintf.c (__llrintf): Likewise.
+ * sysdeps/ieee754/flt-32/s_llroundf.c (__llroundf): Likewise.
+ * sysdeps/ieee754/flt-32/s_lrintf.c (__lrintf): Likewise.
+ * sysdeps/ieee754/flt-32/s_lroundf.c (__lroundf): Likewise.
+ * sysdeps/ieee754/flt-32/s_modff.c (__modff): Likewise.
+ * sysdeps/ieee754/flt-32/s_remquof.c (__remquof): Likewise.
+ * sysdeps/ieee754/flt-32/s_roundf.c (__roundf): Likewise.
+ * sysdeps/ieee754/ldbl-128/e_acoshl.c (__ieee754_acoshl):
+ Likewise.
+ * sysdeps/ieee754/ldbl-128/e_atan2l.c (__ieee754_atan2l):
+ Likewise.
+ * sysdeps/ieee754/ldbl-128/e_atanhl.c (__ieee754_atanhl):
+ Likewise.
+ * sysdeps/ieee754/ldbl-128/e_fmodl.c (__ieee754_fmodl): Likewise.
+ * sysdeps/ieee754/ldbl-128/e_gammal_r.c (__ieee754_gammal_r):
+ Likewise.
+ * sysdeps/ieee754/ldbl-128/e_hypotl.c (__ieee754_hypotl):
+ Likewise.
+ * sysdeps/ieee754/ldbl-128/e_jnl.c (__ieee754_jnl): Likewise.
+ (__ieee754_ynl): Likewise.
+ * sysdeps/ieee754/ldbl-128/e_powl.c (__ieee754_powl): Likewise.
+ * sysdeps/ieee754/ldbl-128/e_rem_pio2l.c (__ieee754_rem_pio2l):
+ Likewise.
+ * sysdeps/ieee754/ldbl-128/e_remainderl.c (__ieee754_remainderl):
+ Likewise.
+ * sysdeps/ieee754/ldbl-128/e_sinhl.c (__ieee754_sinhl): Likewise.
+ * sysdeps/ieee754/ldbl-128/k_cosl.c (__kernel_cosl): Likewise.
+ * sysdeps/ieee754/ldbl-128/k_sincosl.c (__kernel_sincosl):
+ Likewise.
+ * sysdeps/ieee754/ldbl-128/k_sinl.c (__kernel_sinl): Likewise.
+ * sysdeps/ieee754/ldbl-128/s_ceill.c (__ceill): Likewise.
+ * sysdeps/ieee754/ldbl-128/s_copysignl.c (__copysignl): Likewise.
+ * sysdeps/ieee754/ldbl-128/s_erfl.c (__erfcl): Likewise.
+ * sysdeps/ieee754/ldbl-128/s_fabsl.c (__fabsl): Likewise.
+ * sysdeps/ieee754/ldbl-128/s_finitel.c (__finitel): Likewise.
+ * sysdeps/ieee754/ldbl-128/s_floorl.c (__floorl): Likewise.
+ * sysdeps/ieee754/ldbl-128/s_fpclassifyl.c (__fpclassifyl):
+ Likewise.
+ * sysdeps/ieee754/ldbl-128/s_frexpl.c (__frexpl): Likewise.
+ * sysdeps/ieee754/ldbl-128/s_isnanl.c (__isnanl): Likewise.
+ * sysdeps/ieee754/ldbl-128/s_issignalingl.c (__issignalingl):
+ Likewise.
+ * sysdeps/ieee754/ldbl-128/s_llrintl.c (__llrintl): Likewise.
+ * sysdeps/ieee754/ldbl-128/s_llroundl.c (__llroundl): Likewise.
+ * sysdeps/ieee754/ldbl-128/s_lrintl.c (__lrintl): Likewise.
+ * sysdeps/ieee754/ldbl-128/s_lroundl.c (__lroundl): Likewise.
+ * sysdeps/ieee754/ldbl-128/s_modfl.c (__modfl): Likewise.
+ * sysdeps/ieee754/ldbl-128/s_nearbyintl.c (__nearbyintl):
+ Likewise.
+ * sysdeps/ieee754/ldbl-128/s_nextafterl.c (__nextafterl):
+ Likewise.
+ * sysdeps/ieee754/ldbl-128/s_nexttoward.c (__nexttoward):
+ Likewise.
+ * sysdeps/ieee754/ldbl-128/s_nexttowardf.c (__nexttowardf):
+ Likewise.
+ * sysdeps/ieee754/ldbl-128/s_nextupl.c (__nextupl): Likewise.
+ * sysdeps/ieee754/ldbl-128/s_remquol.c (__remquol): Likewise.
+ * sysdeps/ieee754/ldbl-128/s_rintl.c (__rintl): Likewise.
+ * sysdeps/ieee754/ldbl-128/s_roundl.c (__roundl): Likewise.
+ * sysdeps/ieee754/ldbl-128/s_tanhl.c (__tanhl): Likewise.
+ * sysdeps/ieee754/ldbl-128/s_truncl.c (__truncl): Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_fmodl.c (__ieee754_fmodl):
+ Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c (__ieee754_gammal_r):
+ Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_powl.c (__ieee754_powl): Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_rem_pio2l.c (__ieee754_rem_pio2l):
+ Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_remainderl.c
+ (__ieee754_remainderl): Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/k_cosl.c (__kernel_cosl): Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/k_sinl.c (__kernel_sinl): Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_fabsl.c (__fabsl): Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_fpclassifyl.c (___fpclassifyl):
+ Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_modfl.c (__modfl): Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_nexttowardf.c (__nexttowardf):
+ Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_remquol.c (__remquol): Likewise.
+ * sysdeps/ieee754/ldbl-96/e_acoshl.c (__ieee754_acoshl): Likewise.
+ * sysdeps/ieee754/ldbl-96/e_asinl.c (__ieee754_asinl): Likewise.
+ * sysdeps/ieee754/ldbl-96/e_atanhl.c (__ieee754_atanhl): Likewise.
+ * sysdeps/ieee754/ldbl-96/e_coshl.c (__ieee754_coshl): Likewise.
+ * sysdeps/ieee754/ldbl-96/e_gammal_r.c (__ieee754_gammal_r):
+ Likewise.
+ * sysdeps/ieee754/ldbl-96/e_hypotl.c (__ieee754_hypotl): Likewise.
+ * sysdeps/ieee754/ldbl-96/e_j0l.c (__ieee754_j0l): Likewise.
+ (__ieee754_y0l): Likewise.
+ (pzero): Likewise.
+ (qzero): Likewise.
+ * sysdeps/ieee754/ldbl-96/e_j1l.c (__ieee754_j1l): Likewise.
+ (__ieee754_y1l): Likewise.
+ (pone): Likewise.
+ (qone): Likewise.
+ * sysdeps/ieee754/ldbl-96/e_jnl.c (__ieee754_jnl): Likewise.
+ (__ieee754_ynl): Likewise.
+ * sysdeps/ieee754/ldbl-96/e_lgammal_r.c (sin_pi): Likewise.
+ (__ieee754_lgammal_r): Likewise.
+ * sysdeps/ieee754/ldbl-96/e_rem_pio2l.c (__ieee754_rem_pio2l):
+ Likewise.
+ * sysdeps/ieee754/ldbl-96/e_sinhl.c (__ieee754_sinhl): Likewise.
+ * sysdeps/ieee754/ldbl-96/s_copysignl.c (__copysignl): Likewise.
+ * sysdeps/ieee754/ldbl-96/s_erfl.c (__erfl): Likewise.
+ (__erfcl): Likewise.
+ * sysdeps/ieee754/ldbl-96/s_frexpl.c (__frexpl): Likewise.
+ * sysdeps/ieee754/ldbl-96/s_issignalingl.c (__issignalingl):
+ Likewise.
+ * sysdeps/ieee754/ldbl-96/s_llrintl.c (__llrintl): Likewise.
+ * sysdeps/ieee754/ldbl-96/s_llroundl.c (__llroundl): Likewise.
+ * sysdeps/ieee754/ldbl-96/s_lrintl.c (__lrintl): Likewise.
+ * sysdeps/ieee754/ldbl-96/s_lroundl.c (__lroundl): Likewise.
+ * sysdeps/ieee754/ldbl-96/s_modfl.c (__modfl): Likewise.
+ * sysdeps/ieee754/ldbl-96/s_nexttoward.c (__nexttoward): Likewise.
+ * sysdeps/ieee754/ldbl-96/s_nexttowardf.c (__nexttowardf):
+ Likewise.
+ * sysdeps/ieee754/ldbl-96/s_nextupl.c (__nextupl): Likewise.
+ * sysdeps/ieee754/ldbl-96/s_remquol.c (__remquol): Likewise.
+ * sysdeps/ieee754/ldbl-96/s_roundl.c (__roundl): Likewise.
+ * sysdeps/ieee754/ldbl-96/s_tanhl.c (__tanhl): Likewise.
+ * sysdeps/ieee754/ldbl-opt/s_nexttowardfd.c (__nldbl_nexttowardf):
+ Likewise.
+ * sysdeps/m68k/m680x0/fpu/e_pow.c (s(__ieee754_pow)): Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_fpclassifyl.c (__fpclassifyl):
+ Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_llrint.c (__llrint): Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_llrintf.c (__llrintf): Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_llrintl.c (__llrintl): Likewise.
+ * sysdeps/m68k/m680x0/fpu/s_nextafterl.c (__nextafterl): Likewise.
+ * sysdeps/x86/fpu/powl_helper.c (__powl_helper): Likewise.
+
+2017-08-03 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #21885]
+ * sysdeps/posix/getaddrinfo.c (gethosts): Release resolver context
+ on memory allocation failure.
+
+2017-08-03 Alan Modra <amodra@gmail.com>
+
+ * sysdeps/powerpc/mod-tlsopt-powerpc.c: Extract from
+ tst-tlsopt-powerpc.c with function name change and no test harness.
+ * sysdeps/powerpc/tst-tlsopt-powerpc.c: Remove body of test.
+ Call tls_get_addr_opt_test.
+ * sysdeps/powerpc/Makefile (LDFLAGS-tst-tlsopt-powerpc): Don't define.
+ (modules-names): Add mod-tlsopt-powerpc.
+ (mod-tlsopt-powerpc.so-no-z-defs): Define.
+ (tst-tlsopt-powerpc): Depend on .so.
+ * sysdeps/powerpc/powerpc64/tls-macros.h (__TLS_GET_ADDR): Don't
+ define. Expand use in TLS_GD and TLS_LD.
+
+2017-08-02 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * sysdeps/mach/hurd/enbl-secure.c (__libc_init_secure): Define
+ function.
+ * sysdeps/posix/shm_open.c: Include <pthread.h>.
+
+2017-08-02 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #21686]
+ * math/tgmath.h (__TGMATH_BINARY_REAL_ONLY): Add arguments before
+ comparing size with that of double.
+ (__TGMATH_BINARY_REAL_STD_ONLY): Likewise.
+ (__TGMATH_BINARY_REAL_RET_ONLY): Likewise.
+ (__TGMATH_TERNARY_FIRST_SECOND_REAL_ONLY): Likewise.
+ (__TGMATH_TERNARY_REAL_ONLY): Likewise.
+ (__TGMATH_BINARY_REAL_IMAG): Likewise.
+ * math/gen-tgmath-tests.py (Type.init_types): Create __int128 and
+ unsigned __int128 types.
+
+2017-08-02 Steve Ellcey <sellcey@cavium.com>
+
+ * localedata/Makefile (CFLAGS-tst_iswalnum.c, CFLAGS-tst_iswalpha.c
+ CFLAGS-tst_iswcntrl.c, CFLAGS-tst_iswdigit.c, CFLAGS-tst_iswgraph.c,
+ CFLAGS-tst_iswlower.c, CFLAGS-tst_iswprint.c, CFLAGS-tst_iswpunct.c,
+ CFLAGS-tst_iswspace.c, CFLAGS-tst_iswupper.c, CFLAGS-tst_iswxdigit.c,
+ CFLAGS-tst_towlower.c, CFLAGS-tst_towupper.c): Remove.
+
+2017-08-02 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86_64/start.S (_start): Check PIC instead of SHARED.
+
+2017-08-02 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/i386/i686/multiarch/memcmp-sse4.S: Check PIC instead
+ of SHARED.
+ * sysdeps/i386/i686/multiarch/memcpy-sse2-unaligned.S: Likewise.
+ * sysdeps/i386/i686/multiarch/memcpy-ssse3-rep.S: Likewise.
+ * sysdeps/i386/i686/multiarch/memcpy-ssse3.S: Likewise.
+ * sysdeps/i386/i686/multiarch/memset-sse2-rep.S: Likewise.
+ * sysdeps/i386/i686/multiarch/memset-sse2.S: Likewise.
+ * sysdeps/i386/i686/multiarch/strcat-sse2.S: Likewise.
+ * sysdeps/i386/i686/multiarch/strcpy-sse2.S: Likewise.
+
+2017-08-02 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #21685]
+ * math/tgmath.h (__tgmath_real_type): Use unary + on potentially
+ bit-field expressions passed to sizeof or typeof.
+ [__HAVE_FLOAT128 && __GLIBC_USE (IEC_60559_TYPES_EXT)]
+ (__TGMATH_F128): Likewise.
+ [__HAVE_FLOAT128 && __GLIBC_USE (IEC_60559_TYPES_EXT)]
+ (__TGMATH_CF128): Likewise.
+ (__TGMATH_UNARY_REAL_ONLY): Likewise.
+ (__TGMATH_UNARY_REAL_RET_ONLY): Likewise.
+ (__TGMATH_BINARY_FIRST_REAL_ONLY): Likewise.
+ (__TGMATH_BINARY_FIRST_REAL_STD_ONLY): Likewise.
+ (__TGMATH_BINARY_REAL_ONLY): Likewise.
+ (__TGMATH_BINARY_REAL_STD_ONLY): Likewise.
+ (__TGMATH_BINARY_REAL_RET_ONLY): Likewise.
+ (__TGMATH_TERNARY_FIRST_SECOND_REAL_ONLY): Likewise.
+ (__TGMATH_TERNARY_REAL_ONLY): Likewise.
+ (__TGMATH_TERNARY_FIRST_REAL_RET_ONLY): Likewise.
+ (__TGMATH_UNARY_REAL_IMAG): Likewise.
+ (__TGMATH_UNARY_IMAG): Likewise.
+ (__TGMATH_UNARY_REAL_IMAG_RET_REAL): Likewise.
+ (__TGMATH_BINARY_REAL_IMAG): Likewise.
+ * math/gen-tgmath-tests.py (Type.init_types): Create bit_field
+ type.
+ (define_vars_for_type): Handle bit_field type specially.
+ (Tests.__init__): Declare structure with bit-field element.
+
+2017-08-02 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #21791]
+ * sysdeps/i386/i686/multiarch/memcpy-sse2-unaligned.S
+ (MEMCPY_CHK): Define only if SHARED is defined.
+ * sysdeps/i386/i686/multiarch/memcpy-ssse3-rep.S (MEMCPY_CHK):
+ Likewise.
+ * sysdeps/i386/i686/multiarch/memcpy-ssse3.S (MEMCPY_CHK):
+ Likewise.
+
+See ChangeLog.18 for earlier changes.
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 <roland@churchy.gnu.ai.mit.edu>
Sun Jan 14 01:01:10 1996 Ulrich Drepper <drepper@ipd.info.uni-karlsruhe.de>
- * 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 <drepper@cygnus.com>
Define __USE_POSIX199309.
* posix/unistd.h: Declare fdatasync only if __USE_POSIX199309.
* time/time.c: Declare nanosleep only if __USE_POSIX199309.
- Patches by Rüdiger Helsch <rh@unifix.de>.
+ Patches by Rüdiger Helsch <rh@unifix.de>.
* locale/locale.h: Add declaration of newlocale and freelocale.
@@ -5519,7 +5519,7 @@ Thu Sep 26 14:40:10 1996 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/posix/pathconf.c: Pass descriptor for just opened file
to fpathconf.
- Reported by Martin von Loewis <martin@mira.isdn.cs.tu-berlin.de>.
+ Reported by Martin von Löwis <martin@mira.isdn.cs.tu-berlin.de>.
Thu Sep 26 04:02:43 1996 Ulrich Drepper <drepper@cygnus.com>
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 <zack@rabi.phys.columbia.edu>.
* stdlib/strtod.c: Handle numbers like 0.0e10000 correctly which
- produce ±0.0. Reported by Joe Keane <jgk@jgk.org>.
+ produce ±0.0. Reported by Joe Keane <jgk@jgk.org>.
* 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 <kettenis@phys.uva.nl>.
+ Patch by ir. Mark M. Kettenis <kettenis@phys.uva.nl>.
1997-08-11 23:55 Ulrich Drepper <drepper@cygnus.com>
@@ -5401,7 +5401,7 @@
1997-06-30 14:49 H.J. Lu <hjl@gnu.ai.mit.edu>
- From Ralf Baechle <ralf@informatik.uni-koblenz.de> on
+ From Ralf Bächle <ralf@informatik.uni-koblenz.de> 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 <drepper@cygnus.com>
* login/login.c (tty_name): Use newly allocated buffer.
- Patch by Jaakko Hyvätti <jaakko.hyvatti@iki.fi>.
+ Patch by Jaakko Hyvätti <jaakko.hyvatti@iki.fi>.
* time/asctime.c: Never translate week and month name according
to LC_TIME. Patch by Paul Eggert <eggert@twinsun.com>.
@@ -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-François Bignolles <bignolle@ecoledoc.ibp.fr>.
+ Patches by Jean-François Bignolles <bignolle@ecoledoc.ibp.fr>.
* 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 <martin@mira.isdn.cs.tu-berlin.de>.
+ Suggested by Martin von Löwis <martin@mira.isdn.cs.tu-berlin.de>.
* 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` <F.Potorti@cnuce.cnr.it>.
+ Based on suggestions by Francesco Potortì <F.Potorti@cnuce.cnr.it>.
1998-04-05 Philip Blundell <Philip.Blundell@pobox.com>
@@ -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` <F.Potorti@cnuce.cnr.it>.
+ Reported by Francesco Potortì <F.Potorti@cnuce.cnr.it>.
1998-03-30 13:28 Ulrich Drepper <drepper@cygnus.com>
@@ -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 <kettenis@hall.phys.uva.nl>
+1998-03-06 11:48 Mark M. Kettenis <kettenis@hall.phys.uva.nl>
* elf/rtld.c (process_dl_debug): Fix typo: "DL_DEBUG" ->
"LD_DEBUG".
@@ -8314,7 +8314,7 @@
1998-02-27 Ulrich Drepper <drepper@cygnus.com>
* misc/efgcvt_r.c (APPEND): Handle printing of 0.0 correctly.
- Reported by Göran Uddeborg <goeran@uddeborg.pp.se>.
+ Reported by Göran Uddeborg <goeran@uddeborg.pp.se>.
* misc/tst-efgcvt.c (ecvt_tests): Add new test case for reported
bug.
@@ -8322,7 +8322,7 @@
1998-02-25 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* manual/arith.texi (Old-style number conversion): Correct
- typo. Reported by Göran Uddeborg <goeran@uddeborg.pp.se>.
+ typo. Reported by Göran Uddeborg <goeran@uddeborg.pp.se>.
1998-02-27 Ulrich Drepper <drepper@cygnus.com>
@@ -12044,7 +12044,7 @@
* libio/stdio.h: Correct comment of sys_nerr/sys_errlist.
-1997-11-25 Paul Eggert <eggert@shade.twinsun.com>
+1997-11-25 Paul Eggert <eggert@twinsun.com>
* 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 <aj@arthur.rhein-neckar.de>
- Patche by Ralf Baechle <ralf@gnu.org>:
+ Patche by Ralf Bächle <ralf@gnu.org>:
* sysdeps/mips/sys/regdef.h: New file, enhanced versions of
deleted linux specific files.
@@ -1098,7 +1098,7 @@
1998-12-30 Andreas Jaeger <aj@arthur.rhein-neckar.de>
- Patches by Ralf Baechle <ralf@gnu.org>:
+ Patches by Ralf Bächle <ralf@gnu.org>:
* 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 <aj@arthur.rhein-neckar.de>
- Patches by Ralf Baechle <ralf@gnu.org> for Linux/MIPS:
+ Patches by Ralf Bächle <ralf@gnu.org> for Linux/MIPS:
* sysdeps/unix/sysv/linux/mips/syscalls.list: Add ipc, change
pread/pwrite and llseek calls.
@@ -2213,7 +2213,7 @@
<asm/signal.h> and add needed symbols from <asm/signal.h>; bring
in sync with linux specific version.
- Patches by Ralf Baechle <ralf@uni-koblenz.de> for mips-linux:
+ Patches by Ralf Bächle <ralf@uni-koblenz.de> 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 <ralf@uni-koblenz.de>.
+ Reported by Ralf Bächle <ralf@uni-koblenz.de>.
1998-11-10 H.J. Lu <hjl@gnu.org>
@@ -4060,7 +4060,7 @@
* sysdeps/unix/sysv/linux/bits/fcntl.h: Add dummy definition of
O_LARGEFILE back.
-1998-10-16 Paul Eggert <eggert@shade.twinsun.com>
+1998-10-16 Paul Eggert <eggert@twinsun.com>
* time/mktime.c: Some systems require <unistd.h> to be
included before <time.h> 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 <eggert@shade.twinsun.com>
+1998-09-24 Paul Eggert <eggert@twinsun.com>
* 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 <digitalfreak@lingonborough.com>
+2017-07-21 Rafał Lużyński <digitalfreak@lingonborough.com>
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 <digitalfreak@lingonborough.com>
+2017-07-21 Rafał Lużyński <digitalfreak@lingonborough.com>
[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 <digitalfreak@lingonborough.com>
+2017-07-06 Rafał Lużyński <digitalfreak@lingonborough.com>
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 <digitalfreak@lingonborough.com>
+2017-06-30 Rafał Lużyński <digitalfreak@lingonborough.com>
* 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 <digitalfreak@lingonborough.com>
+2017-06-16 Rafał Lużyński <digitalfreak@lingonborough.com>
[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 <digitalfreak@lingonborough.com>
+2017-06-22 Rafał Lużyński <digitalfreak@lingonborough.com>
* locales/fur_IT (day, abday): reworded "Miarcus" to "Miercus"
and abbreviated "Mia" to "Mie".
-2017-06-13 Rafal Luzynski <digitalfreak@lingonborough.com>
+2017-06-13 Rafał Lużyński <digitalfreak@lingonborough.com>
[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 <digitalfreak@lingonborough.com>
+2017-06-13 Rafał Lużyński <digitalfreak@lingonborough.com>
* localedata/locales/mag_IN (abday, day): Consistently use
uppercase hexadecimal in <Uxxxx> notation.
@@ -3021,13 +3021,13 @@
* locales/zh_SG: Likewise.
* locales/zh_TW: Likewise.
-2016-04-13 Matthias Wallnoefer <matthias.wallnoefer@lugbz.org>
+2016-04-13 Matthias Wallnöfer <matthias.wallnoefer@lugbz.org>
* 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 <matthias.wallnoefer@lugbz.org>
+2016-04-13 Matthias Wallnöfer <matthias.wallnoefer@lugbz.org>
* 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 <przemub@yahoo.pl>.
+ Contributed by Przemysław Buczkowski <przemub@yahoo.pl>.
* 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 <pasky@ucw.cz>
+2012-06-20 Petr Baudiš <pasky@ucw.cz>
* locales/mag_IN: Fix comment character.
* locales/tr_CY (LC_TIME): Remove redundant first_weekday
and first_workday.
-2012-06-04 Petr Baudis <pasky@ucw.cz>
+2012-06-04 Petr Baudiš <pasky@ucw.cz>
[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 <pasky@ucw.cz>
+2012-04-04 Petr Baudiš <pasky@ucw.cz>
[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 <nicolo.chieffo@gmail.com>.
+ Patch by Nicolò Chieffo <nicolo.chieffo@gmail.com>.
* 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 <pclouds@gmail.com>.
+ Patch by Nguyá»…n Thái Ngá»c Duy <pclouds@gmail.com>.
[BZ #428]
* locales/te_IN: Several fixes.
@@ -9717,7 +9717,7 @@
2001-07-31 Ulrich Drepper <drepper@redhat.com>
* locales/tr_TR: Define missing fields and remove FIXME comments.
- Patch by Nilg~n Belma Bug~ner <nilgun@fide.org>.
+ Patch by Nilgün Belma Bugüner <nilgun@fide.org>.
2001-07-19 Jakub Jelinek <jakub@redhat.com>
@@ -11911,7 +11911,7 @@
1999-12-19 Ulrich Drepper <drepper@cygnus.com>
* locales/POSIX: Fix collation order of <SI> and add a few missing
- symbols. Patch by Miloslav Trmac <mitr@volny.cz>.
+ symbols. Patch by Miloslav TrmaÄ <mitr@volny.cz>.
* 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 <jakub@redhat.com>
diff --git a/INSTALL b/INSTALL
index 781cb8415b..392537cc5c 100644
--- a/INSTALL
+++ b/INSTALL
@@ -90,6 +90,22 @@ if 'CFLAGS' is specified it must enable optimization. For example:
library will still be usable, but functionality may be lost--for
example, you can't build a shared libc with old binutils.
+'--with-nonshared-cflags=CFLAGS'
+ Use additional compiler flags CFLAGS to build the parts of the
+ library which are always statically linked into applications and
+ libraries even with shared linking (that is, the object files
+ contained in 'lib*_nonshared.a' libraries). The build process will
+ automatically use the appropriate flags, but this option can be
+ used to set additional flags required for building applications and
+ libraries, to match local policy. For example, if such a policy
+ requires that all code linked into applications must be built with
+ source fortification,
+ '--with-nonshared-cflags=-Wp,-D_FORTIFY_SOURCE=2' will make sure
+ that the objects in 'libc_nonshared.a' are compiled with this flag
+ (although this will not affect the generated code in this
+ particular case and potentially change debugging information and
+ metadata only).
+
'--disable-shared'
Don't build shared libraries even if it is possible. Not all
systems support shared libraries; you need ELF support and
@@ -160,10 +176,10 @@ if 'CFLAGS' is specified it must enable optimization. For example:
protection.
'--enable-bind-now'
- Disable lazy binding for installed shared objects. This provides
- additional security hardening because it enables full RELRO and a
- read-only global offset table (GOT), at the cost of slightly
- increased program load times.
+ Disable lazy binding for installed shared objects and programs.
+ This provides additional security hardening because it enables full
+ RELRO and a read-only global offset table (GOT), at the cost of
+ slightly increased program load times.
'--enable-pt_chown'
The file 'pt_chown' is a helper binary for 'grantpt' (*note
@@ -211,7 +227,10 @@ if 'CFLAGS' is specified it must enable optimization. For example:
By default, libnsl is only built as shared library for backward
compatibility and the NSS modules libnss_compat, libnss_nis and
libnss_nisplus are not built at all. Use this option to enable
- libnsl with all depending NSS modules and header files.
+ libnsl with all depending NSS modules and header files. For
+ architectures and ABIs that have been added after version 2.28 of
+ the GNU C Library this option is not available, and the libnsl
+ compatibility library is not built.
'--disable-crypt'
Do not install the passphrase-hashing library 'libcrypt' or the
@@ -296,38 +315,6 @@ You can specify 'stop-on-test-failure=y' when running 'make check' to
make the test run stop and exit with an error status immediately when a
failure occurs.
- The GNU C Library pretty printers come with their own set of scripts
-for testing, which run together with the rest of the testsuite through
-'make check'. These scripts require the following tools to run
-successfully:
-
- * Python 2.7/3.4 or later
-
- Python is required for running the printers' test scripts. As of
- release time, Python 3.6 is the newest verified to work to test the
- pretty printers.
-
- * PExpect 4.0
-
- The printer tests drive GDB through test programs and compare its
- output to the printers'. PExpect is used to capture the output of
- GDB, and should be compatible with the Python version in your
- system. As of release time PExpect 4.3 is the newest verified to
- work to test the pretty printers.
-
- * GDB 7.8 or later with support for Python 2.7/3.4 or later
-
- GDB itself needs to be configured with Python support in order to
- 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.0.1 is the newest verified to work to test
- the pretty printers.
-
-If these tools are absent, the printer tests will report themselves as
-'UNSUPPORTED'. Notice that some of the printer tests require the GNU C
-Library to be compiled with debugging symbols.
-
To format the 'GNU C Library Reference Manual' for printing, type
'make dvi'. You need a working TeX installation to do this. The
distribution builds the on-line formatted version of the manual, as Info
@@ -424,13 +411,33 @@ a pseudoterminal so it can be used by the calling process. If you are
using a Linux kernel with the 'devpts' filesystem enabled and mounted at
'/dev/pts', you don't need this program.
- After installation you might want to configure the timezone and
-locale installation of your system. The GNU C Library comes with a
-locale database which gets configured with 'localedef'. For example, to
-set up a German locale with name 'de_DE', simply issue the command
-'localedef -i de_DE -f ISO-8859-1 de_DE'. To configure all locales that
+ After installation you should configure the timezone and install
+locales for your system. The time zone configuration ensures that your
+system time matches the time for your current timezone. The locales
+ensure that the display of information on your system matches the
+expectations of your language and geographic region.
+
+ The GNU C Library is able to use two kinds of localization
+information sources, the first is a locale database named
+'locale-archive' which is generally installed as
+'/usr/lib/locale/locale-archive'. The locale archive has the benefit of
+taking up less space and being very fast to load, but only if you plan
+to install sixty or more locales. If you plan to install one or two
+locales you can instead install individual locales into their self-named
+directories e.g. '/usr/lib/locale/en_US.utf8'. For example to install
+the German locale using the character set for UTF-8 with name 'de_DE'
+into the locale archive issue the command 'localedef -i de_DE -f UTF-8
+de_DE', and to install just the one locale issue the command 'localedef
+--no-archive -i de_DE -f UTF-8 de_DE'. To configure all locales that
are supported by the GNU C Library, you can issue from your build
-directory the command 'make localedata/install-locales'.
+directory the command 'make localedata/install-locales' to install all
+locales into the locale archive or 'make
+localedata/install-locale-files' to install all locales as files in the
+default configured locale installation directory (derived from
+'--prefix' or '--localedir'). To install into an alternative system
+root use 'DESTDIR' e.g. 'make localedata/install-locale-files
+DESTDIR=/opt/glibc', but note that this does not change the configured
+prefix.
To configure the locally used timezone, set the 'TZ' environment
variable. The script 'tzselect' helps you to select the right value.
@@ -452,19 +459,14 @@ build the GNU C Library:
As of relase time, GNU 'make' 4.2.1 is the newest verified to work
to build the GNU C Library.
- * GCC 4.9 or newer
+ * GCC 6.2 or newer
- GCC 4.9 or higher is required. In general it is recommended to use
+ 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.1.1 is the newest compiler
+ better code. As of release time, GCC 9.1.1 is the newest compiler
verified to work to build the GNU C Library.
- For PowerPC 64-bits little-endian (powerpc64le), GCC 6.2 or higher
- is required. This compiler version is the first to provide the
- features required for building the GNU C Library with support for
- '_Float128'.
-
For multi-arch support it is recommended to use a GCC which has
been built with support for GNU indirect functions. This ensures
that correct debugging information is generated for functions
@@ -493,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
@@ -507,15 +509,15 @@ 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.4 is the
+ subdirectory. As of release time, 'bison' version 3.0.5 is the
newest verified to work to build the GNU C Library.
* Perl 5
- Perl is not required, but it is used if present to test the
- installation. We may decide to use it elsewhere in the future. As
- of release time 'perl' version 5.28.0 is the newest verified to
- work to build the GNU C Library.
+ 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.2 is the newest verified to work
+ to build the GNU C Library.
* GNU 'sed' 3.02 or newer
@@ -523,6 +525,34 @@ build the GNU C Library:
work with any version of 'sed'. As of release time, 'sed' version
4.5 is the newest verified to work to 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.4 is the newest verified to work for building and
+ testing the GNU C Library.
+
+ * PExpect 4.0
+
+ The pretty printer tests drive GDB through test programs and
+ compare its output to the printers'. PExpect is used to capture
+ the output of GDB, and should be compatible with the Python version
+ in your system. As of release time PExpect 4.3 is the newest
+ verified to work to test the pretty printers.
+
+ * GDB 7.8 or later with support for Python 2.7/3.4 or later
+
+ GDB itself needs to be configured with Python support in order to
+ 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.3 is the newest verified to work to test the
+ pretty printers.
+
+ Unless Python, PExpect and GDB with Python support are present, the
+ printer tests will report themselves as 'UNSUPPORTED'. Notice that
+ some of the printer tests require the GNU C Library to be compiled
+ with debugging symbols.
+
If you change any of the 'configure.ac' files you will also need
* GNU 'autoconf' 2.69 (exactly)
@@ -613,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 <http://www.gnu.org/software/libc/bugs.html>.
+Do this at <https://www.gnu.org/software/libc/bugs.html>.
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 <http://www.gnu.org/licenses/> to obtain a copy.
+see <https://www.gnu.org/licenses/> 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 <moshier@na-net.ornl.gov>
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
diff --git a/Makeconfig b/Makeconfig
index 608ffe648c..6d8e24fcc3 100644
--- a/Makeconfig
+++ b/Makeconfig
@@ -1,4 +1,4 @@
-# Copyright (C) 1991-2018 Free Software Foundation, Inc.
+# Copyright (C) 1991-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
# 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
@@ -398,6 +395,8 @@ endif
# test modules.
ifeq ($(bind-now),yes)
LDFLAGS-lib.so += -Wl,-z,now
+# Extra flags for dynamically linked non-test main programs.
+link-extra-flags += -Wl,-z,now
endif
# Command to run after every final link (executable or shared object).
@@ -413,7 +412,7 @@ link-extra-libs-tests = $(libsupport)
# Command for linking PIE programs with the C library.
ifndef +link-pie
-+link-pie-before-libc = $(CC) $(if $($(@F)-no-pie),$(no-pie-ldflag),-pie) \
++link-pie-before-libc = $(if $($(@F)-no-pie),$(no-pie-ldflag),-pie) \
-Wl,-O1 -nostdlib -nostartfiles -o $@ \
$(sysdep-LDFLAGS) $(LDFLAGS) $(LDFLAGS-$(@F)) \
$(combreloc-LDFLAGS) $(relro-LDFLAGS) $(hashstyle-LDFLAGS) \
@@ -426,23 +425,24 @@ ifndef +link-pie
$(link-extra-libs)
+link-pie-after-libc = $(+postctorS) $(+postinit)
define +link-pie
-$(+link-pie-before-libc) $(rtld-LDFLAGS) $(link-libc) $(+link-pie-after-libc)
+$(CC) $(link-libc-rpath-link) $(+link-pie-before-libc) $(rtld-LDFLAGS) \
+ $(link-extra-flags) $(link-libc) $(+link-pie-after-libc)
$(call after-link,$@)
endef
define +link-pie-tests
-$(+link-pie-before-libc) $(rtld-tests-LDFLAGS) $(link-libc-tests) \
- $(+link-pie-after-libc)
+$(CC) $(+link-pie-before-libc) $(rtld-tests-LDFLAGS) $(link-libc-tests) \
+ $(+link-pie-after-libc)
$(call after-link,$@)
endef
define +link-pie-printers-tests
-$(+link-pie-before-libc) $(built-rtld-LDFLAGS) $(link-libc-printers-tests) \
- $(+link-pie-after-libc)
+$(CC) $(+link-pie-before-libc) $(built-rtld-LDFLAGS) \
+ $(link-libc-printers-tests) $(+link-pie-after-libc)
$(call after-link,$@)
endef
endif
# Command for statically linking programs with the C library.
ifndef +link-static
-+link-static-before-libc = $(CC) -nostdlib -nostartfiles -static -o $@ \
++link-static-before-libc = -nostdlib -nostartfiles -static -o $@ \
$(if $($(@F)-no-pie),$(no-pie-ldflag),$(default-pie-ldflag)) \
$(sysdep-LDFLAGS) $(LDFLAGS) $(LDFLAGS-$(@F)) \
$(firstword $(CRT-$(@F)) $(csu-objpfx)$(real-static-start-installed-name)) \
@@ -454,11 +454,13 @@ ifndef +link-static
$(link-extra-libs-static)
+link-static-after-libc = $(+postctorT) $(+postinit)
define +link-static
-$(+link-static-before-libc) $(link-libc-static) $(+link-static-after-libc)
+$(CC) $(+link-static-before-libc) $(link-extra-flags) $(link-libc-static) \
+ $(+link-static-after-libc)
$(call after-link,$@)
endef
define +link-static-tests
-$(+link-static-before-libc) $(link-libc-static-tests) $(+link-static-after-libc)
+$(CC) $(+link-static-before-libc) $(link-libc-static-tests) \
+ $(+link-static-after-libc)
$(call after-link,$@)
endef
endif
@@ -473,7 +475,7 @@ ifeq (yes,$(build-pie-default))
+link-tests = $(+link-pie-tests)
+link-printers-tests = $(+link-pie-printers-tests)
else # not build-pie-default
-+link-before-libc = $(CC) -nostdlib -nostartfiles -o $@ \
++link-before-libc = -nostdlib -nostartfiles -o $@ \
$(sysdep-LDFLAGS) $(LDFLAGS) $(LDFLAGS-$(@F)) \
$(combreloc-LDFLAGS) $(relro-LDFLAGS) $(hashstyle-LDFLAGS) \
$(firstword $(CRT-$(@F)) $(csu-objpfx)$(start-installed-name)) \
@@ -485,16 +487,17 @@ else # not build-pie-default
$(link-extra-libs)
+link-after-libc = $(+postctor) $(+postinit)
define +link
-$(+link-before-libc) $(rtld-LDFLAGS) $(link-libc) $(+link-after-libc)
+$(CC) $(link-libc-rpath-link) $(+link-before-libc) $(rtld-LDFLAGS) \
+ $(link-extra-flags) $(link-libc) $(+link-after-libc)
$(call after-link,$@)
endef
define +link-tests
-$(+link-before-libc) $(rtld-tests-LDFLAGS) $(link-libc-tests) \
+$(CC) $(+link-before-libc) $(rtld-tests-LDFLAGS) $(link-libc-tests) \
$(+link-after-libc)
$(call after-link,$@)
endef
define +link-printers-tests
-$(+link-before-libc) $(built-rtld-LDFLAGS) $(link-libc-printers-tests) \
+$(CC) $(+link-before-libc) $(built-rtld-LDFLAGS) $(link-libc-printers-tests) \
$(+link-after-libc)
$(call after-link,$@)
endef
@@ -546,6 +549,15 @@ ifeq (yes,$(build-shared))
link-libc-rpath = -Wl,-rpath=$(rpath-link)
link-libc-rpath-link = -Wl,-rpath-link=$(rpath-link)
+# For programs which are not tests, $(link-libc-rpath-link) is added
+# directly in $(+link), $(+link-pie) above, so that -Wl,-rpath-link
+# comes before the expansion of LDLIBS-* and affects libraries added
+# there. For shared objects, -Wl,-rpath-link is added via
+# $(build-shlib-helper) and $(build-module-helper) in Makerules (also
+# before the expansion of LDLIBS-* variables).
+
+# Tests use -Wl,-rpath instead of -Wl,-rpath-link for
+# build-hardcoded-path-in-tests.
ifeq (yes,$(build-hardcoded-path-in-tests))
link-libc-tests-rpath-link = $(link-libc-rpath)
else
@@ -554,9 +566,9 @@ 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)
-link-libc = $(link-libc-rpath-link) $(link-libc-before-gnulib) $(gnulib)
+ -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)
link-libc-tests = $(link-libc-tests-rpath-link) \
@@ -831,8 +843,10 @@ endif
# disable any optimization that assume default rounding mode.
+math-flags = -frounding-math
-# Build libc/libm using -fno-math-errno, but run testsuite with -fmath-errno.
-+extra-math-flags = $(if $(filter libnldbl nonlib testsuite,$(in-module)),-fmath-errno,-fno-math-errno)
+# Logically only "libnldbl", "nonlib" and "testsuite" should be using
+# -fno-math-errno. However due to GCC bug #88576, only "libm" can use
+# -fno-math-errno.
++extra-math-flags = $(if $(filter libm,$(in-module)),-fno-math-errno,-fmath-errno)
# We might want to compile with some stack-protection flag.
ifneq ($(stack-protector),)
@@ -902,9 +916,6 @@ endif # $(+cflags) == ""
$(+stack-protector)
+gcc-nowarn := -w
-# Don't duplicate options if we inherited variables from the parent.
-+cflags := $(sort $(+cflags))
-
# Each sysdeps directory can contain header files that both will be
# used to compile and will be installed. Each can also contain an
# include/ subdirectory, whose header files will be used to compile
@@ -1038,7 +1049,7 @@ object-suffixes-for-libc += .oS
# Must build the routines as PIC, though, because they can end up in (users')
# shared objects. We don't want to use CFLAGS-os because users may, for
# example, make that processor-specific.
-CFLAGS-.oS = $(CFLAGS-.o) $(PIC-ccflag)
+CFLAGS-.oS = $(CFLAGS-.o) $(PIC-ccflag) $(extra-nonshared-cflags)
CPPFLAGS-.oS = $(CPPFLAGS-.o) -DPIC -DLIBC_NONSHARED=1
libtype.oS = lib%_nonshared.a
endif
@@ -1047,7 +1058,7 @@ endif
ifndef ASFLAGS
ASFLAGS := $(filter -g% -fdebug-prefix-map=%,$(CFLAGS))
endif
-ASFLAGS += -Werror=undef $(ASFLAGS-config) $(asflags-cpu)
+override ASFLAGS += -Werror=undef $(ASFLAGS-config) $(asflags-cpu)
ifndef BUILD_CC
BUILD_CC = $(CC)
@@ -1160,6 +1171,61 @@ $(common-objpfx)dl-tunable-list.stmp: \
touch $@
endif
+# Generate version maps, but wait until sysdep-subdirs is known
+ifeq ($(sysd-sorted-done),t)
+ifeq ($(build-shared),yes)
+-include $(common-objpfx)sysd-versions
+-include $(common-objpfx)Versions.mk
+$(addprefix $(common-objpfx),$(version-maps)): $(common-objpfx)sysd-versions
+common-generated += $(version-maps)
+postclean-generated += sysd-versions Versions.all abi-versions.h \
+ Versions.def Versions.v.i Versions.v Versions.mk
+
+ifndef avoid-generated
+ifneq ($(sysd-versions-subdirs),$(sorted-subdirs) $(config-sysdirs))
+sysd-versions-force = FORCE
+FORCE:
+endif
+
+$(common-objpfx)Versions.def: $(..)scripts/versionlist.awk \
+ $(common-objpfx)Versions.v
+ LC_ALL=C $(AWK) -f $^ > $@T
+ mv -f $@T $@
+
+$(common-objpfx)Versions.all: $(..)scripts/firstversions.awk \
+ $(common-objpfx)soversions.i \
+ $(common-objpfx)Versions.def
+ { while read which lib version setname; do \
+ test x"$$which" = xDEFAULT || continue; \
+ test -z "$$setname" || echo "$$lib : $$setname"; \
+ done < $(word 2,$^); \
+ cat $(word 3,$^); \
+ } | LC_ALL=C $(AWK) -f $< > $@T
+ mv -f $@T $@
+$(common-objpfx)Versions.mk: $(..)scripts/haveversions.awk \
+ $(common-objpfx)Versions.all
+ $(AWK) -f $^ > $@T
+ mv -f $@T $@
+# See %.v/%.v.i implicit rules in Makeconfig.
+$(common-objpfx)Versions.v.i: $(wildcard $(subdirs:%=$(..)%/Versions)) \
+ $(wildcard $(sysdirs:%=%/Versions)) \
+ $(sysd-versions-force)
+$(common-objpfx)sysd-versions: $(common-objpfx)versions.stmp
+$(common-objpfx)versions.stmp: $(common-objpfx)Versions.all \
+ $(common-objpfx)Versions.v \
+ $(..)scripts/versions.awk
+ ( echo 'sysd-versions-subdirs = $(subdirs) $(config-sysdirs)' ; \
+ cat $(word 2,$^) \
+ | LC_ALL=C $(AWK) -v buildroot=$(common-objpfx) -v defsfile=$< \
+ -v move_if_change='$(move-if-change)' \
+ -f $(word 3,$^); \
+ ) > $(common-objpfx)sysd-versionsT
+ mv -f $(common-objpfx)sysd-versionsT $(common-objpfx)sysd-versions
+ touch $@
+endif # avoid-generated
+endif # $(build-shared) = yes
+endif # sysd-sorted-done
+
# The name under which the run-time dynamic linker is installed.
# We are currently going for the convention that `/lib/ld.so.1'
# names the SVR4/ELF ABI-compliant dynamic linker.
@@ -1198,9 +1264,9 @@ else
libsupport = $(common-objpfx)support/libsupport.a
endif
-# These are the subdirectories containing the library source. The order
-# is more or less arbitrary. The sorting step will take care of the
-# dependencies.
+# This is a partial list of subdirectories containing the library source.
+# The order is more or less arbitrary. The sorting step will take care of the
+# dependencies and generate sorted-subdirs dynamically.
all-subdirs = csu assert ctype locale intl catgets math setjmp signal \
stdlib stdio-common libio malloc string wcsmbs time dirent \
grp pwd posix io termios resource misc socket sysvipc gmon \
diff --git a/Makefile b/Makefile
index d3f25a525a..b43226c35a 100644
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1991-2018 Free Software Foundation, Inc.
+# Copyright (C) 1991-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
# 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)
@@ -137,6 +146,7 @@ GCONV_PATH="$${builddir}/iconvdata"
usage () {
echo "usage: $$0 [--tool=strace] PROGRAM [ARGUMENTS...]" 2>&1
echo " $$0 --tool=valgrind PROGRAM [ARGUMENTS...]" 2>&1
+ exit 1
}
toolname=default
@@ -171,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
;;
@@ -181,12 +196,209 @@ endef
# the current libc build for testing.
$(common-objpfx)testrun.sh: $(common-objpfx)config.make \
$(..)Makeconfig $(..)Makefile
- $(file >$@T, $(testrun-script))
+ $(file >$@T,$(testrun-script))
chmod a+x $@T
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] <program>
+
+ Or: $$0 [OPTIONS] -- <program> [<args>]...
+
+ where <program> is the path to the program being tested,
+ and <args> 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 <<EOF
+set environment C -E -x c-header
+set auto-load safe-path $${BUILD_DIR}/nptl_db:\$$debugdir:\$$datadir/auto-load
+set libthread-db-search-path $${BUILD_DIR}/nptl_db
+__ENVVARS__
+__SYMBOLSFILE__
+break _dl_start_user
+run --library-path $(rpath-link):$${BUILD_DIR}/nptl_db \
+__COMMANDLINE__ __DIRECT__
+__BREAKPOINTS__
+EOF
+}
+
+# Generate the commands file for gdb initialization
+template | sed \
+ -e "s|__ENVVARS__|$$ENVVARSCMD|" \
+ -e "s|__SYMBOLSFILE__|$$SYMBOLSFILE|" \
+ -e "s|__COMMANDLINE__|$$COMMANDLINE|" \
+ -e "s|__DIRECT__|$$DIRECT|" \
+ -e "s|__BREAKPOINTS__|$$BREAKPOINTS|" \
+ > $$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
@@ -330,8 +542,13 @@ $(objpfx)check-installed-headers-cxx.out: \
"$(CXX) $(filter-out -std=%,$(CXXFLAGS)) -D_ISOMAC $(+includes)" \
$(headers) > $@; \
$(evaluate-test)
-endif
-endif
+endif # $(CXX)
+
+tests-special += $(objpfx)check-wrapper-headers.out
+$(objpfx)check-wrapper-headers.out: scripts/check-wrapper-headers.py $(headers)
+ $(PYTHON) $< --root=. --subdir=. $(headers) \
+ --generated $(common-generated) > $@; $(evaluate-test)
+endif # $(headers)
define summarize-tests
@egrep -v '^(PASS|XFAIL):' $(objpfx)$1 || true
@@ -340,6 +557,72 @@ define summarize-tests
@! egrep -q -v '^(X?PASS|XFAIL|UNSUPPORTED):' $(objpfx)$1
endef
+# The intention here is to do ONE install of our build into the
+# testroot.pristine/ directory, then rsync (internal to
+# support/test-container) that to testroot.root/ at the start of each
+# test. That way we can promise each test a "clean" install, without
+# having to do the install for each test.
+#
+# In addition, we have to copy some files (which we build) into this
+# root in addition to what glibc installs. For example, many tests
+# require additional programs including /bin/sh, /bin/true, and
+# /bin/echo, all of which we build below to limit library dependencies
+# to just those things in glibc and language support libraries which
+# we also copy into the into the rootfs. To determine what language
+# support libraries we need we build a "test" program in either C or
+# (if available) C++ just so we can copy in any shared objects
+# (which we do not build) that GCC-compiled programs depend on.
+
+
+ifeq (,$(CXX))
+LINKS_DSO_PROGRAM = links-dso-program-c
+else
+LINKS_DSO_PROGRAM = links-dso-program
+endif
+
+$(tests-container) $(addsuffix /tests,$(subdirs)) : \
+ $(objpfx)testroot.pristine/install.stamp
+$(objpfx)testroot.pristine/install.stamp :
+ test -d $(objpfx)testroot.pristine || \
+ mkdir $(objpfx)testroot.pristine
+ # We need a working /bin/sh for some of the tests.
+ test -d $(objpfx)testroot.pristine/bin || \
+ mkdir $(objpfx)testroot.pristine/bin
+ cp $(objpfx)support/shell-container $(objpfx)testroot.pristine/bin/sh
+ cp $(objpfx)support/echo-container $(objpfx)testroot.pristine/bin/echo
+ cp $(objpfx)support/true-container $(objpfx)testroot.pristine/bin/true
+ifeq ($(run-built-tests),yes)
+ # Copy these DSOs first so we can overwrite them with our own.
+ for dso in `$(test-wrapper-env) LD_TRACE_LOADED_OBJECTS=1 \
+ $(rtld-prefix) \
+ $(objpfx)testroot.pristine/bin/sh \
+ | 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
+ for dso in `$(test-wrapper-env) LD_TRACE_LOADED_OBJECTS=1 \
+ $(rtld-prefix) \
+ $(objpfx)support/$(LINKS_DSO_PROGRAM) \
+ | 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 \
+ INSTALL_UNCOMPRESSED=yes subdirs='$(sorted-subdirs)'
+ rm -f $(symbolic-link-list)
+ touch $(objpfx)testroot.pristine/install.stamp
+
tests-special-notdir = $(patsubst $(objpfx)%, %, $(tests-special))
tests: $(tests-special)
$(..)scripts/merge-test-results.sh -s $(objpfx) "" \
@@ -434,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..3b043bce01
--- /dev/null
+++ b/Makefile.help
@@ -0,0 +1,42 @@
+# 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; if not, see
+# <https://www.gnu.org/licenses/>.
+
+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 a10a0b4d70..23fb5dbf0f 100644
--- a/Makerules
+++ b/Makerules
@@ -1,4 +1,4 @@
-# Copyright (C) 1991-2018 Free Software Foundation, Inc.
+# Copyright (C) 1991-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
# Common rules for making the GNU C library. This file is included
@@ -232,42 +232,26 @@ ifdef gen-py-const-headers
py-const-files := $(patsubst %.pysym,%.py,$(gen-py-const-headers))
py-const-dir := $(objpfx)
py-const := $(addprefix $(py-const-dir),$(py-const-files))
-py-const-script := $(..)scripts/gen-py-const.awk
+py-const-script := $(..)scripts/gen-as-const.py
-# This is a hack we use to generate .py files with constants for Python
-# pretty printers. It works the same way as gen-as-const.
-# See scripts/gen-py-const.awk for details on how the awk | gcc mechanism
-# works.
+# This is a hack we use to generate .py files with constants for
+# Python code.
#
-# $@.tmp and $@.tmp2 are temporary files we use to store the partial contents
-# of the target file. We do this instead of just writing on $@ because, if the
-# build process terminates prematurely, re-running Make wouldn't run this rule
-# since Make would see that the target file already exists (despite it being
-# incomplete).
+# $@.tmp is a temporary file we use to store the partial contents of
+# the target file. We do this instead of just writing on $@ because,
+# if the build process terminates prematurely, re-running Make
+# wouldn't run this rule since Make would see that the target file
+# already exists (despite it being incomplete).
#
-# The sed line replaces "@name@SOME_NAME@value@SOME_VALUE@" strings from the
-# output of 'gcc -S' with "SOME_NAME = SOME_VALUE" strings.
-# The '-n' option, combined with the '/p' command, makes sed output only the
-# modified lines instead of the whole input file. The output is redirected
-# to a .py file; we'll import it in the pretty printers file to read
-# the constants generated by gen-py-const.awk.
-# The regex has two capturing groups, for SOME_NAME and SOME_VALUE
-# respectively. Notice SOME_VALUE may be prepended by a special character,
-# depending on the assembly syntax (e.g. immediates are prefixed by a '$'
-# in AT&T x86, and by a '#' in ARM). We discard it using a complemented set
-# before the second capturing group.
+# The output is redirected to a .py file; we'll import it in the main
+# Python code to read the constants generated by gen-as-const.py.
$(py-const): $(py-const-dir)%.py: %.pysym $(py-const-script) \
$(common-before-compile)
$(make-target-directory)
- $(AWK) -f $(py-const-script) $< \
- | $(CC) -S -o $@.tmp $(CFLAGS) $(CPPFLAGS) -x c -
- echo '# GENERATED FILE\n' > $@.tmp2
- echo '# Constant definitions for pretty printers.' >> $@.tmp2
- echo '# See gen-py-const.awk for details.\n' >> $@.tmp2
- sed -n -r 's/^.*@name@([^@]+)@value@[^[:xdigit:]Xx-]*([[:xdigit:]Xx-]+)@.*/\1 = \2/p' \
- $@.tmp >> $@.tmp2
- mv -f $@.tmp2 $@
- rm -f $@.tmp
+ $(PYTHON) $(py-const-script) --python \
+ --cc="$(CC) $(CFLAGS) $(CPPFLAGS)" $< \
+ > $@.tmp
+ mv -f $@.tmp $@
generated += $(py-const)
endif # gen-py-const-headers
@@ -282,15 +266,12 @@ ifdef gen-as-const-headers
# may include <tcb-offsets.h>. Target header files can check if
# GEN_AS_CONST_HEADERS is defined to avoid circular dependency which
# may lead to build hang on a many-core machine.
-$(common-objpfx)%.h $(common-objpfx)%.h.d: $(..)scripts/gen-as-const.awk \
+$(common-objpfx)%.h $(common-objpfx)%.h.d: $(..)scripts/gen-as-const.py \
%.sym $(common-before-compile)
- $(AWK) -f $< $(filter %.sym,$^) \
- | $(CC) -S -o $(@:.h.d=.h)T3 $(CFLAGS) $(CPPFLAGS) \
- -DGEN_AS_CONST_HEADERS -x c - \
- -MD -MP -MF $(@:.h=.h.d)T -MT '$(@:.h=.h.d) $(@:.h.d=.h)'
- sed -n 's/^.*@@@name@@@\([^@]*\)@@@value@@@[^0-9Xxa-fA-F-]*\([0-9Xxa-fA-F-][0-9Xxa-fA-F-]*\).*@@@end@@@.*$$/#define \1 \2/p' \
- $(@:.h.d=.h)T3 > $(@:.h.d=.h)T
- rm -f $(@:.h.d=.h)T3
+ $(PYTHON) $< --cc="$(CC) $(CFLAGS) $(CPPFLAGS) -DGEN_AS_CONST_HEADERS \
+ -MD -MP -MF $(@:.h=.h.d)T \
+ -MT '$(@:.h=.h.d) $(@:.h.d=.h)'" \
+ $(filter %.sym,$^) > $(@:.h.d=.h)T
sed $(sed-remove-objpfx) $(sed-remove-dotdot) \
$(@:.h=.h.d)T > $(@:.h=.h.d)T2
rm -f $(@:.h=.h.d)T
@@ -301,11 +282,10 @@ before-compile += $(gen-as-const-headers:%.sym=$(common-objpfx)%.h)
tests-internal += $(gen-as-const-headers:%.sym=test-as-const-%)
generated += $(gen-as-const-headers:%.sym=test-as-const-%.c)
-$(objpfx)test-as-const-%.c: $(..)scripts/gen-as-const.awk $(..)Makerules \
+$(objpfx)test-as-const-%.c: $(..)scripts/gen-as-const.py $(..)Makerules \
%.sym $(common-objpfx)%.h
($(AWK) '{ sub(/^/, "asconst_", $$2); print; }' $(filter %.h,$^); \
- $(AWK) -v test=1 -f $< $(filter %.sym,$^); \
- echo '#include "$(..)test-skeleton.c"') > $@T
+ $(PYTHON) $< --test $(filter %.sym,$^)) > $@T
mv -f $@T $@
endif
@@ -446,56 +426,6 @@ object-suffixes-left := $(all-object-suffixes)
include $(o-iterator)
endif
-# Generate version maps, but wait until sysdep-subdirs is known
-ifeq ($(sysd-sorted-done),t)
-ifeq ($(build-shared),yes)
--include $(common-objpfx)sysd-versions
-$(addprefix $(common-objpfx),$(version-maps)): $(common-objpfx)sysd-versions
-common-generated += $(version-maps)
-postclean-generated += sysd-versions Versions.all abi-versions.h \
- Versions.def Versions.v.i Versions.v
-
-ifndef avoid-generated
-ifneq ($(sysd-versions-subdirs),$(sorted-subdirs) $(config-sysdirs))
-sysd-versions-force = FORCE
-FORCE:
-endif
-
-$(common-objpfx)Versions.def: $(..)scripts/versionlist.awk \
- $(common-objpfx)Versions.v
- LC_ALL=C $(AWK) -f $^ > $@T
- mv -f $@T $@
-
-$(common-objpfx)Versions.all: $(..)scripts/firstversions.awk \
- $(common-objpfx)soversions.i \
- $(common-objpfx)Versions.def
- { while read which lib version setname; do \
- test x"$$which" = xDEFAULT || continue; \
- test -z "$$setname" || echo "$$lib : $$setname"; \
- done < $(word 2,$^); \
- cat $(word 3,$^); \
- } | LC_ALL=C $(AWK) -f $< > $@T
- mv -f $@T $@
-# See %.v/%.v.i implicit rules in Makeconfig.
-$(common-objpfx)Versions.v.i: $(wildcard $(subdirs:%=$(..)%/Versions)) \
- $(wildcard $(sysdirs:%=%/Versions)) \
- $(sysd-versions-force)
-$(common-objpfx)sysd-versions: $(common-objpfx)versions.stmp
-$(common-objpfx)versions.stmp: $(common-objpfx)Versions.all \
- $(common-objpfx)Versions.v \
- $(..)scripts/versions.awk
- ( echo 'sysd-versions-subdirs = $(subdirs) $(config-sysdirs)' ; \
- cat $(word 2,$^) \
- | LC_ALL=C $(AWK) -v buildroot=$(common-objpfx) -v defsfile=$< \
- -v move_if_change='$(move-if-change)' \
- -f $(word 3,$^); \
- ) > $(common-objpfx)sysd-versionsT
- mv -f $(common-objpfx)sysd-versionsT $(common-objpfx)sysd-versions
- touch $@
-endif # avoid-generated
-endif # $(build-shared) = yes
-endif # sysd-sorted-done
-
# Generate .dT files as we compile.
compile-mkdep-flags = -MD -MP -MF $@.dt -MT $@
compile-command.S = $(compile.S) $(OUTPUT_OPTION) $(compile-mkdep-flags)
@@ -583,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
@@ -1369,7 +1299,8 @@ xcheck: xtests
# The only difference between MODULE_NAME=testsuite and MODULE_NAME=nonlib is
# that almost all internal declarations from config.h, libc-symbols.h, and
# include/*.h are not available to 'testsuite' code, but are to 'nonlib' code.
-all-testsuite := $(strip $(tests) $(xtests) $(test-srcs) $(test-extras))
+all-testsuite := $(strip $(tests) $(xtests) $(test-srcs) $(test-extras) \
+ $(tests-container))
ifneq (,$(all-testsuite))
cpp-srcs-left = $(all-testsuite)
lib := testsuite
@@ -1397,14 +1328,6 @@ ifeq ($(build-shared),yes)
LC_ALL=C $(OBJDUMP) --dynamic-syms $< > $@T
mv -f $@T $@
-# A sysdeps/.../Makefile can set abilist-pattern to something like
-# %-foo.abilist to look for libc-foo.abilist instead of libc.abilist.
-# This makes sense if multiple ABIs can be most cleanly supported by a
-# configuration without using separate sysdeps directories for each.
-ifdef abilist-pattern
-vpath $(abilist-pattern) $(+sysdep_dirs)
-endif
-
vpath %.abilist $(+sysdep_dirs)
# The .PRECIOUS rule prevents the files built by an implicit rule whose
@@ -1414,16 +1337,6 @@ vpath %.abilist $(+sysdep_dirs)
.PRECIOUS: %.symlist
generated += $(extra-libs:=.symlist)
-ifdef abilist-pattern
-$(objpfx)check-abi-%.out: $(common-objpfx)config.make $(abilist-pattern) \
- $(objpfx)%.symlist
- $(check-abi-pattern); \
- $(evaluate-test)
-$(objpfx)check-abi-%.out: $(common-objpfx)config.make $(abilist-pattern) \
- $(common-objpfx)%.symlist
- $(check-abi-pattern); \
- $(evaluate-test)
-endif
$(objpfx)check-abi-%.out: $(common-objpfx)config.make %.abilist \
$(objpfx)%.symlist
$(check-abi); \
@@ -1432,32 +1345,14 @@ $(objpfx)check-abi-%.out: $(common-objpfx)config.make %.abilist \
$(common-objpfx)%.symlist
$(check-abi); \
$(evaluate-test)
-define check-abi-pattern
- diff -p -U 0 $(filter $(abilist-pattern),$^) $(filter %.symlist,$^) \
- > $@
-endef
define check-abi
diff -p -U 0 $(filter %.abilist,$^) $(filter %.symlist,$^) > $@
endef
-ifdef abilist-pattern
-update-abi-%: $(objpfx)%.symlist $(abilist-pattern)
- $(update-abi-pattern)
-update-abi-%: $(common-objpfx)%.symlist $(abilist-pattern)
- $(update-abi-pattern)
-endif
update-abi-%: $(objpfx)%.symlist %.abilist
$(update-abi)
update-abi-%: $(common-objpfx)%.symlist %.abilist
$(update-abi)
-define update-abi-pattern
-@if cmp -s $^ 2> /dev/null; \
- then \
- echo '+++ $(filter $(abilist-pattern),$^) is unchanged'; \
- else cp -f $^; \
- echo '*** Now check $(filter $(abilist-pattern),$^) changes for correctness ***'; \
- fi
-endef
define update-abi
@if cmp -s $^ 2> /dev/null; \
then \
@@ -1467,26 +1362,13 @@ define update-abi
fi
endef
-# Patch all .abilist files for one DSO. The find command locates
-# abilist files for all architectures. The regular expression in the
-# find invocation is needed to separate libc.abilist and
-# libcrypt.abilist, for example. It assumes that abilist-pattern, if
-# set, is of the form "%-SUFFIX", and not "%SUFFIX", that is, there is
-# a non-alphanumeric seperator between the pattern and the suffix
-# added. The abilist files in /generic/ are filtered out because
-# these are expected to remain empty.
+# Patch all .abilist files for one DSO. The find command locates abilist
+# files for all architectures. The abilist files in /generic/ are
+# filtered out because these are expected to remain empty.
define update-all-abi
$(SHELL) $(..)scripts/update-abilist.sh $^ \
- $$(find $(..)sysdeps \
- -regextype posix-egrep -regex '.*/$*([^a-z0-9].*)?\.abilist$$' \
- \! -regex '.*/generic/.*')
+ $$(find $(..)sysdeps -name '$*.abilist' \! -path '*/generic/*')
endef
-ifdef abilist-pattern
-update-all-abi-%: $(abilist-pattern) $(objpfx)%.symlist
- $(update-all-abi)
-update-all-abi-%: $(abilist-pattern) $(common-objpfx)%.symlist
- $(update-all-abi)
-endif
update-all-abi-%: %.abilist $(objpfx)%.symlist
$(update-all-abi)
update-all-abi-%: %.abilist $(common-objpfx)%.symlist
diff --git a/NEWS b/NEWS
index 154ab22d7c..5a2d0a5b8b 100644
--- a/NEWS
+++ b/NEWS
@@ -1,10 +1,592 @@
GNU C Library NEWS -- history of user-visible changes.
-Copyright (C) 1992-2018 Free Software Foundation, Inc.
+Copyright (C) 1992-2019 Free Software Foundation, Inc.
See the end for copying conditions.
Please send GNU C library bug reports via <https://sourceware.org/bugzilla/>
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 <math.h> functions that round their results to a narrower type now
+ have corresponding type-generic macros in <tgmath.h>, 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 gettimeofday function will no longer report information about a
+ system-wide time zone, expect for aarch64, powerpc, and x86 on Linux
+ which still uses the vDSO symbol (when available).
+
+ 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
+ will always receive a 'struct timezone' whose tz_minuteswest and
+ tz_dsttime fields are zero.
+
+* 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 it has been removed from <time.h> header. This function
+ has been deprecated in favor of clock_settime.
+
+* 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.
+
+ Note that 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 also cease to make
+ settimeofday available to newly linked binaries after there is a
+ replacement for Linux's time-zone-like offset API.
+
+* The obsolete functions ftime has been deprecated and will be removed from
+ a future version of glibc. Application should use clock_gettime instead.
+
+* The sparc*-*linux-gnu configurations targeting v7 or order architecture
+ are no longer supported. For v8 only implementations with native CAS
+ instruction are still supported (such as LEON).
+
+* 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.
+
+Changes to build and runtime requirements:
+
+ [Add changes to build and runtime requirements here]
+
+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:
+
+ [The release manager will add the list generated by
+ scripts/list-fixed-bugs.py just before the release.]
+
+
+Version 2.30
+
+Major new features:
+
+* Unicode 12.1.0 Support: Character encoding, character type info, and
+ transliteration tables are all updated to Unicode 12.1.0, using
+ generator scripts contributed by Mike FABIAN (Red Hat).
+
+* The dynamic linker accepts the --preload argument to preload shared
+ objects, in addition to the LD_PRELOAD environment variable.
+
+* The twalk_r function has been added. It is similar to the existing
+ twalk function, but it passes an additional caller-supplied argument
+ to the callback function.
+
+* On Linux, the getdents64, gettid, and tgkill functions have been added.
+
+* Minguo (Republic of China) calendar support has been added as an
+ alternative calendar for the following locales: zh_TW, cmn_TW, hak_TW,
+ nan_TW, lzh_TW.
+
+* The entry for the new Japanese era has been added for ja_JP locale.
+
+* Memory allocation functions malloc, calloc, realloc, reallocarray, valloc,
+ pvalloc, memalign, and posix_memalign fail now with total object size
+ larger than PTRDIFF_MAX. This is to avoid potential undefined behavior with
+ pointer subtraction within the allocated object, where results might
+ overflow the ptrdiff_t type.
+
+* The dynamic linker no longer refuses to load objects which reference
+ versioned symbols whose implementation has moved to a different soname
+ since the object has been linked. The old error message, symbol
+ FUNCTION-NAME, version SYMBOL-VERSION not defined in file DSO-NAME with
+ link time reference, is gone.
+
+* Add new POSIX-proposed pthread_cond_clockwait, pthread_mutex_clocklock,
+ pthread_rwlock_clockrdlock, pthread_rwlock_clockwrlock and sem_clockwait
+ functions. These behave similarly to their "timed" equivalents, but also
+ accept a clockid_t parameter to determine which clock their timeout should
+ be measured against. All functions allow waiting against CLOCK_MONOTONIC
+ and CLOCK_REALTIME. The decision of which clock to be used is made at the
+ time of the wait (unlike with pthread_condattr_setclock, which requires
+ the clock choice at initialization time).
+
+* On AArch64 the GNU IFUNC resolver call ABI changed: old resolvers still
+ work, new resolvers can use a second argument which can be extended in
+ the future, currently it contains the AT_HWCAP2 value.
+
+Deprecated and removed features, and other changes affecting compatibility:
+
+* The copy_file_range function fails with ENOSYS if the kernel does not
+ support the system call of the same name. Previously, user space
+ emulation was performed, but its behavior did not match the kernel
+ behavior, which was deemed too confusing. Applications which use the
+ copy_file_range function can no longer rely on glibc to provide a fallback
+ on kernels that do not support the copy_file_range system call, and if
+ this function returns ENOSYS, they will need to use their own fallback.
+ Support for copy_file_range for most architectures was added in version
+ 4.5 of the mainline Linux kernel.
+
+* The functions clock_gettime, clock_getres, clock_settime,
+ clock_getcpuclockid, clock_nanosleep were removed from the librt library
+ for new applications (on architectures which had them). Instead, the
+ definitions in libc will be used automatically, which have been available
+ since glibc 2.17.
+
+* The obsolete and never-implemented XSI STREAMS header files <stropts.h>
+ and <sys/stropts.h> have been removed.
+
+* Support for the "inet6" option in /etc/resolv.conf and the RES_USE_INET6
+ resolver flag (deprecated in glibc 2.25) have been removed.
+
+* The obsolete RES_INSECURE1 and RES_INSECURE2 option flags for the DNS stub
+ resolver have been removed from <resolv.h>.
+
+* With --enable-bind-now, installed programs are now linked with the
+ BIND_NOW flag.
+
+* Support for the PowerPC SPE ISA extension (powerpc-*-*gnuspe*
+ configurations) has been removed, following the deprecation of this
+ subarchitecture in version 8 of GCC, and its removal in version 9.
+
+* On 32-bit Arm, support for the port-based I/O emulation and the <sys/io.h>
+ header have been removed.
+
+* The Linux-specific <sys/sysctl.h> header and the sysctl function have been
+ deprecated and will be removed from a future version of glibc.
+ Application should directly access /proc instead. For obtaining random
+ bits, the getentropy function can be used.
+
+Changes to build and runtime requirements:
+
+* GCC 6.2 or later is required to build the GNU C Library.
+
+ Older GCC versions and non-GNU compilers are still supported when
+ compiling programs that use the GNU C Library.
+
+Security related changes:
+
+ CVE-2019-7309: x86-64 memcmp used signed Jcc instructions to check
+ size. For x86-64, memcmp on an object size larger than SSIZE_MAX
+ has undefined behavior. On x32, the size_t argument may be passed
+ in the lower 32 bits of the 64-bit RDX register with non-zero upper
+ 32 bits. When it happened with the sign bit of RDX register set,
+ memcmp gave the wrong result since it treated the size argument as
+ zero. Reported by H.J. Lu.
+
+ CVE-2019-9169: Attempted case-insensitive regular-expression match
+ via proceed_next_node in posix/regexec.c leads to heap-based buffer
+ over-read. Reported by Hongxu Chen.
+
+The following bugs are resolved with this 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
+
+Major new features:
+
+* The getcpu wrapper function has been added, which returns the currently
+ used CPU and NUMA node. This function is Linux-specific.
+
+* A new convenience target has been added for distribution maintainers
+ to build and install all locales as directories with files. The new
+ target is run by issuing the following command in your build tree:
+ 'make localedata/install-locale-files', with an optional DESTDIR
+ to set the install root if you wish to install into a non-default
+ configured location.
+
+* Optimized generic exp, exp2, log, log2, pow, sinf, cosf, sincosf and tanf.
+
+* The reallocarray function is now declared under _DEFAULT_SOURCE, not just
+ for _GNU_SOURCE, to match BSD environments.
+
+* For powercp64le ABI, Transactional Lock Elision is now enabled iff kernel
+ indicates that it will abort the transaction prior to entering the kernel
+ (PPC_FEATURE2_HTM_NOSC on hwcap2). On older kernels the transaction is
+ suspended, and this caused some undefined side-effects issues by aborting
+ transactions manually. Glibc avoided it by abort transactions manually on
+ each syscall, but it lead to performance issues on newer kernels where the
+ HTM state is saved and restore lazily (the state being saved even when the
+ process actually does not use HTM).
+
+* The functions posix_spawn_file_actions_addchdir_np and
+ posix_spawn_file_actions_addfchdir_np have been added, enabling
+ posix_spawn and posix_spawnp to run the new process in a different
+ directory. These functions are GNU extensions. The function
+ posix_spawn_file_actions_addchdir_np is similar to the Solaris function
+ of the same name.
+
+* The popen and system do not run atfork handlers anymore (BZ#17490).
+ Although it is a possible POSIX violation, the POSIX rationale in
+ pthread_atfork documentation regarding atfork handlers is to handle
+ inconsistent mutex state after a fork call in a multi-threaded process.
+ In both popen and system there is no direct access to user-defined mutexes.
+
+* Support for the C-SKY ABIV2 running on Linux has been added. This port
+ requires at least binutils-2.32, gcc-9.0, and linux-4.20. Two ABIs are
+ supported:
+ - C-SKY ABIV2 soft-float little-endian
+ - C-SKY ABIV2 hard-float little-endian
+
+* strftime's default formatting of a locale's alternative year (%Ey)
+ has been changed to zero-pad the year to a minimum of two digits,
+ like "%y". This improves the display of Japanese era years during
+ the first nine years of a new era, and is expected to be harmless
+ for all other locales (only Japanese locales regularly have
+ alternative year numbers less than 10). Zero-padding can be
+ overridden with the '_' or '-' flags (which are GNU extensions).
+
+* As a GNU extension, the '_' and '-' flags can now be applied to
+ "%EY" to control how the year number is formatted; they have the
+ same effect that they would on "%Ey".
+
+Deprecated and removed features, and other changes affecting compatibility:
+
+* The glibc.tune tunable namespace has been renamed to glibc.cpu and the
+ tunable glibc.tune.cpu has been renamed to glibc.cpu.name.
+
+* The type of the pr_uid and pr_gid members of struct elf_prpsinfo, defined
+ in <sys/procfs.h>, has been corrected to match the type actually used by
+ the Linux kernel. This affects the size and layout of that structure on
+ MicroBlaze, MIPS (n64 ABI only), Nios II and RISC-V.
+
+* For the MIPS n32 ABI, the type of the pr_sigpend and pr_sighold members of
+ struct elf_prstatus, and the pr_flag member of struct elf_prpsinfo,
+ defined in <sys/procfs.h>, has been corrected to match the type actually
+ used by the Linux kernel. This affects the size and layout of those
+ structures.
+
+* An archaic GNU extension to scanf, under which '%as', '%aS', and '%a[...]'
+ meant to scan a string and allocate space for it with malloc, is now
+ restricted to programs compiled in C89 or C++98 mode with _GNU_SOURCE
+ defined. This extension conflicts with C99's use of '%a' to scan a
+ hexadecimal floating-point number, which is now available to programs
+ compiled as C99 or C++11 or higher, regardless of _GNU_SOURCE.
+
+ POSIX.1-2008 includes the feature of allocating a buffer for string input
+ with malloc, using the modifier letter 'm' instead. Programs using
+ '%as', '%aS', or '%a[...]' with the old GNU meaning should change to
+ '%ms', '%mS', or '%m[...]' respectively. Programs that wish to use the
+ C99 '%a' no longer need to avoid _GNU_SOURCE.
+
+ GCC's -Wformat warnings can detect most uses of this extension, as long
+ as all functions that call vscanf, vfscanf, or vsscanf are annotated with
+ __attribute__ ((format (scanf, ...))).
+
+Changes to build and runtime requirements:
+
+* Python 3.4 or later is required to build the GNU C Library.
+
+* On most architectures, GCC 5 or later is required to build the GNU C
+ Library. (On powerpc64le, GCC 6.2 or later is still required, as before.)
+
+ Older GCC versions and non-GNU compilers are still supported when
+ compiling programs that use the GNU C Library.
+
+Security related changes:
+
+ CVE-2018-19591: A file descriptor leak in if_nametoindex can lead to a
+ denial of service due to resource exhaustion when processing getaddrinfo
+ calls with crafted host names. Reported by Guido Vranken.
+
+ CVE-2019-6488: On x32, the size_t parameter may be passed in the lower
+ 32 bits of a 64-bit register with with non-zero upper 32 bit. When it
+ happened, accessing the 32-bit size_t value as the full 64-bit register
+ in the assembly string/memory functions would cause a buffer overflow.
+ Reported by H.J. Lu.
+
+ CVE-2016-10739: The getaddrinfo function could successfully parse IPv4
+ addresses with arbitrary trailing characters, potentially leading to data
+ or command injection issues in applications.
+
+The following bugs are resolved with this release:
+
+ [10425] localedata: it_IT/it_CH: LC_TIME format is wrong
+ [10496] localedata: 12h time representation in multiple locales faulty
+ [10797] localedata: it_IT locale numeric does not have a separator for
+ thousands
+ [11319] libc: dprintf doesn't handle errors properly
+ [16346] time: mktime: potentially unsafe use of localtime_offset
+ [17248] build: glibc should not sort CFLAGS (support gcc plugins and
+ --param options)
+ [17405] libc: Implement posix_spawn_file_actions_addchdir_np,
+ posix_spawn_file_actions_addfchdir_np
+ [17426] localedata: Indian locales: set the correct date format
+ [17490] stdio: popen should not invoke atfork handlers
+ [17783] libc: TIOCSER_TEMT conditions inconsistent
+ [18040] regex: use-after-free in regexec/get_subexp
+ [18093] libc: Corrupted aux-cache causes ldconfig to segfault
+ [20018] network: getaddrinfo should reject IP addresses with trailing
+ characters (CVE-2016-10739)
+ [20209] localedata: Spelling mistake for Sunday in Greenlandic kl_GL
+ [20271] libc: Missing "\n" in __libc_fatal calls
+ [20480] dynamic-link: Patch: ifunc not executable, crashes sudo qemu
+ [20544] libc: RFE: atexit, __cxa_atexit, on_exit should assert function
+ pointer argument is non-NULL
+ [21037] stdio: open_memstream and freopen
+ [21286] libc: bits/siginfo.h is missing enum definition for TRAP_HWBKPT
+ [21716] time: Crash in glibc's mktime in low-memory situations
+ [22834] stdio: Subprocess forked by popen may crash in Linux when
+ multithreads call popen
+ [22927] network: crash in vn_gai_enqueue_request if requests_tail was NULL
+ and pthread_create fails.
+ [23032] hurd: sysdeps/htl/pt-barrier-init.c:39: bad call to memcmp ?
+ [23125] libc: riscv64: endless loop when throwing an exception from a
+ constructor
+ [23275] nptl: Race in pthread_mutex_lock while promoting to
+ PTHREAD_MUTEX_ELISION_NP.
+ [23400] libc: stdlib/test-bz22786.c creates temporary files in glibc
+ source tree
+ [23479] math: [mips] bits/fenv.h should not define some macros for soft-
+ float
+ [23490] libc: sysdeps/unix/sysv/linux/x86/tst-cet-property-2.c:49: off by
+ one error
+ [23497] libc: readdir64@GLIBC_2.1 cannot parse the kernel directory stream
+ [23509] dynamic-link: CET enabled glibc is incompatible with the older
+ linker
+ [23520] nscd: nscd: Use-after-free in addgetnetgrentX and its callers
+ [23521] nss: get_next_alias nss_files file stream leak
+ [23538] nptl: Hang in pthread_cond_broadcast
+ [23562] libc: Wrong type for si_band in Linux-specific siginfo_t
+ [23578] regex: Invalid memory access if regex pattern contains NUL byte
+ [23579] libc: Errors misreported in preadv2
+ [23597] build: support/test-container.c doesn't work with different
+ filesystems
+ [23603] time: mktime signed integer overflow on large timestamps
+ [23606] libc: Missing ENDBR32 in sysdeps/i386/start.S
+ [23614] libc: powerpc: missing CFI register information in __mpn_*
+ functions
+ [23637] string: Generic strstr/strcasestr fails with huge needles
+ [23640] libc: no way to easily clear FD_CLOEXEC in
+ posix_spawn_file_actions_adddup2()
+ [23649] libc: [microblaze/mips/nios2/riscv] sys/procfs.h pr_uid, pr_gid
+ have wrong type
+ [23656] libc: [mips n32] sys/procfs.h pr_sigpend, pr_sighold, pr_flag have
+ wrong type
+ [23679] libc: gethostid: Missing NULL check for gethostbyname_r result
+ [23689] libc: Bug in documentation for rusage.ru_ixrss in
+ bits/types/struct_rusage.h
+ [23690] dynamic-link: Segfault in _dl_profile_fixup with a high number of
+ threads
+ [23707] dynamic-link: Missing unwind info in sysdeps/powerpc/powerpc32/dl-
+ start.S
+ [23709] string: glibc 2.25 lacks sse2 optimized strstr()
+ [23716] dynamic-link: _dl_runtime_resolve_shstk isn't selected properly
+ [23717] libc: glibc: stdlib/tst-setcontext9 test suite failure on
+ powerpc64le
+ [23724] localedata: Albanian date formats are incorrect
+ [23735] math: libnldbl_nonshared.a references internal libm symbols
+ [23740] localedata: kl_GL: Month names and date formats need update
+ [23744] regex: regex refactorings to remove BE, avoid duplication
+ [23745] time: mktime fix for Gnulib + coreutils
+ [23758] time: Improve the width of alternate representation for year in
+ strftime
+ [23783] libc: [mips] Missing CMSPAR bits/termios.h
+ [23789] time: mktime does not set errno on failure
+ [23791] localedata: Wrong monetary format for ca_ES locale
+ [23793] locale: c32rtomb and mbrtoc32 should not alias wcrtomb and mbrtowc
+ [23794] locale: c16rtomb does not handle surrogate pairs
+ [23821] libc: si_band in siginfo_t has wrong type long int on sparc64
+ [23822] math: ia64 static libm.a is missing exp2f, log2f and powf symbols
+ [23836] time: time/tst-mktime2 test failure on Arm (32-bit)
+ [23848] libc: [sparc] Some socket syscalls wrongly assumed to be present
+ [23861] nptl: rdlock stalls indefinitely on an unlocked pthread rwlock
+ [23862] libc: [sh] missing kernel-features.h undefines
+ [23864] libc: [riscv] missing kernel-features.h undefines
+ [23867] libc: [arm/microblaze] __ASSUME_MLOCK2 incorrect
+ [23907] malloc: Incorrect double-free malloc tcache check disregards
+ tcache size
+ [23913] libc: off-by-one in function maybe_script_execute in
+ sysdeps/posix/spawni.c
+ [23915] libc: [arm] __ASSUME_COPY_FILE_RANGE incorrect
+ [23923] locale: Add --no-hard-links option to localedef
+ [23927] network: Linux if_nametoindex() does not close descriptor
+ (CVE-2018-19591)
+ [23961] math: powf can overflow to inf without setting errno in non-
+ nearest rounding mode
+ [23967] libc: [2.28 Regression]: New sigaction implementation breaks m68k
+ [23972] libc: __old_getdents64 uses wrong d_off value on overflow
+ [23993] libc: glibc 2.29 doesn't build with gcc 4.9
+ [23995] localedata: Remove execution flags from localedata/locales/bi_VU
+ [24011] localedata: Fixed small type in comment for locale bs_BA
+ [24018] libc: gettext() may return NULL
+ [24022] build: riscv build failure with Linux kernel 4.20-rc7
+ [24023] build: [2.29 Regression] FAIL: elf/check-localplt
+ [24024] string: strerror() might set errno to ENOMEM due to -fno-math-
+ error
+ [24027] malloc: glibc: realloc() ncopies 32-bit integer overflow
+ [24034] libc: tst-cancel21-static fails with SIGBUS on pre-ARMv7 when
+ using GCC 8
+ [24046] localedata: en_US locale doesn't define date_fmt
+ [24063] manual: @var{errno} should be @code{errno}
+ [24066] soft-fp: Inconsistent _FP_W_TYPE_SIZE check
+ [24088] libc: VSCR field is not being correctly read in ucontext_t on
+ ppc64le
+ [24096] time: Specifying '_' or '-' flag for "%EY" does not produce the
+ expected result
+ [24097] string: Can't use 64-bit register for size_t in assembly codes for
+ x32 (CVE-2019-6488)
+ [24110] hurd: SS_DISABLE never set in stack_t value returned by
+ sigaltstack
+ [24112] network: Do not send DNS queries for non-host names (where all
+ answers will be rejected)
+ [24130] libc: alpha __remqu corrupts $f3 register
+
+
Version 2.28
Major new features:
@@ -3717,7 +4299,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 <http://sources.redhat.com/bugzilla/> for the details of each bug.
+ Visit <https://sourceware.org/bugzilla/> for the details of each bug.
* As of this release, GCC 4 can be used to compile the C Library.
@@ -3732,7 +4314,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 <http://sources.redhat.com/bugzilla/> for the details of each bug.
+ Visit <https://sourceware.org/bugzilla/> for the details of each bug.
Version 2.3.4
@@ -5151,7 +5733,7 @@ Version 1.04
----------------------------------------------------------------------
Copyright information:
-Copyright (C) 1992-2018 Free Software Foundation, Inc.
+Copyright (C) 1992-2019 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 27a9fd47f3..31c5da0405 100644
--- a/README
+++ b/README
@@ -25,6 +25,7 @@ The GNU C Library supports these configurations for using Linux kernels:
aarch64*-*-linux-gnu
alpha*-*-linux-gnu
arm-*-linux-gnueabi
+ csky-*-linux-gnuabiv2
hppa-*-linux-gnu
i[4567]86-*-linux-gnu
x86_64-*-linux-gnu Can build either x86_64 or x32
@@ -43,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
@@ -59,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 706c8a749d..8dbac56ce6 100644
--- a/Rules
+++ b/Rules
@@ -1,4 +1,4 @@
-# Copyright (C) 1991-2018 Free Software Foundation, Inc.
+# Copyright (C) 1991-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
# Rules for making a subdirectory in the GNU C library.
@@ -82,7 +82,8 @@ $(common-objpfx)dummy.c:
common-generated += dummy.o dummy.c
ifneq "$(headers)" ""
-# Special test of all the installed headers in this directory.
+# Test that all of the headers installed by this directory can be compiled
+# in isolation.
tests-special += $(objpfx)check-installed-headers-c.out
libof-check-installed-headers-c := testsuite
$(objpfx)check-installed-headers-c.out: \
@@ -93,6 +94,8 @@ $(objpfx)check-installed-headers-c.out: \
$(evaluate-test)
ifneq "$(CXX)" ""
+# If a C++ compiler is available, also test that they can be compiled
+# in isolation as C++.
tests-special += $(objpfx)check-installed-headers-cxx.out
libof-check-installed-headers-cxx := testsuite
$(objpfx)check-installed-headers-cxx.out: \
@@ -101,8 +104,27 @@ $(objpfx)check-installed-headers-cxx.out: \
"$(CXX) $(filter-out -std=%,$(CXXFLAGS)) -D_ISOMAC $(+includes)" \
$(headers) > $@; \
$(evaluate-test)
-endif
-endif
+endif # $(CXX)
+
+# Test that a wrapper header exists in include/ for each non-sysdeps header.
+# This script does not need $(py-env).
+tests-special += $(objpfx)check-wrapper-headers.out
+$(objpfx)check-wrapper-headers.out: \
+ $(..)scripts/check-wrapper-headers.py $(headers)
+ $(PYTHON) $< --root=$(..) --subdir=$(subdir) $(headers) > $@; \
+ $(evaluate-test)
+
+# Test that none of the headers installed by this directory use certain
+# obsolete constructs (e.g. legacy BSD typedefs superseded by stdint.h).
+# This script does not need $(py-env).
+tests-special += $(objpfx)check-obsolete-constructs.out
+libof-check-obsolete-constructs := testsuite
+$(objpfx)check-obsolete-constructs.out: \
+ $(..)scripts/check-obsolete-constructs.py $(headers)
+ $(PYTHON) $^ > $@ 2>&1; \
+ $(evaluate-test)
+
+endif # $(headers)
# This makes all the auxiliary and test programs.
@@ -114,11 +136,6 @@ tests-printers-programs := $(addprefix $(objpfx),$(tests-printers))
# .out files with the output of running the pretty printer tests.
tests-printers-out := $(patsubst %,$(objpfx)%.out,$(tests-printers))
-ifndef PYTHON
-# Mark tests-printers tests as unsupported if we don't have PYTHON.
-tests-unsupported += $(tests-printers)
-endif
-
ifeq ($(build-programs),yes)
others: $(addprefix $(objpfx),$(others) $(sysdep-others) $(extra-objs))
else
@@ -130,12 +147,14 @@ others: $(py-const)
ifeq ($(run-built-tests),no)
tests: $(addprefix $(objpfx),$(filter-out $(tests-unsupported), \
- $(tests) $(tests-internal)) \
+ $(tests) $(tests-internal) \
+ $(tests-container)) \
$(test-srcs)) $(tests-special) \
$(tests-printers-programs)
xtests: tests $(xtests-special)
else
tests: $(tests:%=$(objpfx)%.out) $(tests-internal:%=$(objpfx)%.out) \
+ $(tests-container:%=$(objpfx)%.out) \
$(tests-special) $(tests-printers-out)
xtests: tests $(xtests:%=$(objpfx)%.out) $(xtests-special)
endif
@@ -145,7 +164,8 @@ xtests-special-notdir = $(patsubst $(objpfx)%, %, $(xtests-special))
ifeq ($(run-built-tests),no)
tests-expected =
else
-tests-expected = $(tests) $(tests-internal) $(tests-printers)
+tests-expected = $(tests) $(tests-internal) $(tests-printers) \
+ $(tests-container)
endif
tests:
$(..)scripts/merge-test-results.sh -s $(objpfx) $(subdir) \
@@ -158,7 +178,8 @@ xtests:
ifeq ($(build-programs),yes)
binaries-all-notests = $(others) $(sysdep-others)
-binaries-all-tests = $(tests) $(tests-internal) $(xtests) $(test-srcs)
+binaries-all-tests = $(tests) $(tests-internal) $(xtests) $(test-srcs) \
+ $(tests-container)
binaries-all = $(binaries-all-notests) $(binaries-all-tests)
binaries-static-notests = $(others-static)
binaries-static-tests = $(tests-static) $(xtests-static)
@@ -248,6 +269,17 @@ $(objpfx)%.out: /dev/null $(objpfx)% # Make it 2nd arg for canned sequence.
$(make-test-out) > $@; \
$(evaluate-test)
+
+# Any tests that require an isolated container (filesystem, network
+# and pid namespaces) in which to run, should be added to
+# tests-container.
+$(tests-container:%=$(objpfx)%.out): $(objpfx)%.out : $(if $(wildcard $(objpfx)%.files),$(objpfx)%.files,/dev/null) $(objpfx)%
+ $(test-wrapper-env) $(run-program-env) $(run-via-rtld-prefix) \
+ $(common-objpfx)support/test-container env $(run-program-env) $($*-ENV) \
+ $(host-test-program-cmd) $($*-ARGS) > $@; \
+ $(evaluate-test)
+
+
# tests-unsupported lists tests that we will not try to build at all in
# this configuration. Note this runs every time because it does not
# actually create its target. The dependency on Makefile is meant to
@@ -262,7 +294,6 @@ endif
endif # tests
-ifdef PYTHON
ifneq "$(strip $(tests-printers))" ""
# Static pattern rule for building the test programs for the pretty printers.
@@ -285,7 +316,6 @@ $(tests-printers-out): $(objpfx)%.out: $(objpfx)% %.py %.c $(pretty-printers) \
$(PYTHON) $*.py $*.c $(objpfx)$* $(pretty-printers) > $@; \
$(evaluate-test)
endif
-endif
.PHONY: distclean realclean subdir_distclean subdir_realclean \
diff --git a/argp/Makefile b/argp/Makefile
index 6e4799c220..c97e4c307c 100644
--- a/argp/Makefile
+++ b/argp/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1997-2018 Free Software Foundation, Inc.
+# Copyright (C) 1997-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
# Makefile for argp.
@@ -22,11 +22,12 @@ subdir := argp
include ../Makeconfig
-headers = argp.h
+headers = argp.h bits/argp-ldbl.h
routines = $(addprefix argp-, ba fmtstream fs-xinl help parse pv \
pvh xinl eexst)
-tests = argp-test tst-argp1 bug-argp1 tst-argp2 bug-argp2
+tests = argp-test tst-argp1 bug-argp1 tst-argp2 bug-argp2 \
+ tst-ldbl-argp
CFLAGS-argp-help.c += $(uses-callbacks) -fexceptions
CFLAGS-argp-parse.c += $(uses-callbacks)
diff --git a/argp/argp-ba.c b/argp/argp-ba.c
index a831e078ef..441a264128 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.ai.mit.edu>.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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 aed3fcf04f..50c9b028e6 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.ai.mit.edu>.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
diff --git a/argp/argp-fmtstream.c b/argp/argp-fmtstream.c
index e43a0c7cf1..1fff85cba0 100644
--- a/argp/argp-fmtstream.c
+++ b/argp/argp-fmtstream.c
@@ -1,5 +1,5 @@
/* Word-wrapping and line-truncating streams
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.ai.mit.edu>.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This package emulates glibc `line_wrap_stream' semantics for systems that
don't have that. */
@@ -42,7 +42,6 @@
#ifdef _LIBC
# include <wchar.h>
# include <libio/libioP.h>
-# define __vsnprintf(s, l, f, a) _IO_vsnprintf (s, l, f, a)
#endif
#define INIT_BUF_SIZE 200
@@ -149,9 +148,11 @@ __argp_fmtstream_update (argp_fmtstream_t fs)
size_t i;
for (i = 0; i < pad; i++)
{
+#ifdef _LIBC
if (_IO_fwide (fs->stream, 0) > 0)
putwc_unlocked (L' ', fs->stream);
else
+#endif
putc_unlocked (' ', fs->stream);
}
}
@@ -312,9 +313,11 @@ __argp_fmtstream_update (argp_fmtstream_t fs)
*nl++ = ' ';
else
for (i = 0; i < fs->wmargin; ++i)
+#ifdef _LIBC
if (_IO_fwide (fs->stream, 0) > 0)
putwc_unlocked (L' ', fs->stream);
else
+#endif
putc_unlocked (' ', fs->stream);
/* Copy the tail of the original buffer into the current buffer
@@ -409,7 +412,7 @@ __argp_fmtstream_printf (struct argp_fmtstream *fs, const char *fmt, ...)
va_start (args, fmt);
avail = fs->end - fs->p;
- out = __vsnprintf (fs->p, avail, fmt, args);
+ out = __vsnprintf_internal (fs->p, avail, fmt, args, 0);
va_end (args);
if ((size_t) out >= avail)
size_guess = out + 1;
diff --git a/argp/argp-fmtstream.h b/argp/argp-fmtstream.h
index dcedc21da0..47a48e6cda 100644
--- a/argp/argp-fmtstream.h
+++ b/argp/argp-fmtstream.h
@@ -1,5 +1,5 @@
/* Word-wrapping and line-truncating streams.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.ai.mit.edu>.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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 cceb1c349a..38187c342f 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.ai.mit.edu>.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
diff --git a/argp/argp-help.c b/argp/argp-help.c
index 2b6b0775d6..85f5792bfe 100644
--- a/argp/argp-help.c
+++ b/argp/argp-help.c
@@ -1,5 +1,5 @@
/* Hierarchial argument parsing help output
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.ai.mit.edu>.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _GNU_SOURCE
# define _GNU_SOURCE 1
@@ -1540,7 +1540,7 @@ argp_doc (const struct argp *argp, const struct argp_state *state,
}
/* Output a usage message for ARGP to STREAM. If called from
- argp_state_help, STATE is the relevent parsing state. FLAGS are from the
+ argp_state_help, STATE is the relevant parsing state. FLAGS are from the
set ARGP_HELP_*. NAME is what to use wherever a `program name' is
needed. */
static void
@@ -1750,7 +1750,8 @@ weak_alias (__argp_state_help, argp_state_help)
by the program name and `:', to stderr, and followed by a `Try ... --help'
message, then exit (1). */
void
-__argp_error (const struct argp_state *state, const char *fmt, ...)
+__argp_error_internal (const struct argp_state *state, const char *fmt,
+ va_list ap, unsigned int mode_flags)
{
if (!state || !(state->flags & ARGP_NO_ERRS))
{
@@ -1758,18 +1759,14 @@ __argp_error (const struct argp_state *state, const char *fmt, ...)
if (stream)
{
- va_list ap;
-
#if _LIBC || (HAVE_FLOCKFILE && HAVE_FUNLOCKFILE)
__flockfile (stream);
#endif
- va_start (ap, fmt);
-
#ifdef _LIBC
char *buf;
- if (_IO_vasprintf (&buf, fmt, ap) < 0)
+ if (__vasprintf_internal (&buf, fmt, ap, mode_flags) < 0)
buf = NULL;
__fxprintf (stream, "%s: %s\n",
@@ -1789,14 +1786,20 @@ __argp_error (const struct argp_state *state, const char *fmt, ...)
__argp_state_help (state, stream, ARGP_HELP_STD_ERR);
- va_end (ap);
-
#if _LIBC || (HAVE_FLOCKFILE && HAVE_FUNLOCKFILE)
__funlockfile (stream);
#endif
}
}
}
+void
+__argp_error (const struct argp_state *state, const char *fmt, ...)
+{
+ va_list ap;
+ va_start (ap, fmt);
+ __argp_error_internal (state, fmt, ap, 0);
+ va_end (ap);
+}
#ifdef weak_alias
weak_alias (__argp_error, argp_error)
#endif
@@ -1810,8 +1813,9 @@ weak_alias (__argp_error, argp_error)
*parsing errors*, and the former is for other problems that occur during
parsing but don't reflect a (syntactic) problem with the input. */
void
-__argp_failure (const struct argp_state *state, int status, int errnum,
- const char *fmt, ...)
+__argp_failure_internal (const struct argp_state *state, int status,
+ int errnum, const char *fmt, va_list ap,
+ unsigned int mode_flags)
{
if (!state || !(state->flags & ARGP_NO_ERRS))
{
@@ -1833,13 +1837,10 @@ __argp_failure (const struct argp_state *state, int status, int errnum,
if (fmt)
{
- va_list ap;
-
- va_start (ap, fmt);
#ifdef _LIBC
char *buf;
- if (_IO_vasprintf (&buf, fmt, ap) < 0)
+ if (__vasprintf_internal (&buf, fmt, ap, mode_flags) < 0)
buf = NULL;
__fxprintf (stream, ": %s", buf);
@@ -1851,8 +1852,6 @@ __argp_failure (const struct argp_state *state, int status, int errnum,
vfprintf (stream, fmt, ap);
#endif
-
- va_end (ap);
}
if (errnum)
@@ -1873,9 +1872,11 @@ __argp_failure (const struct argp_state *state, int status, int errnum,
#endif
}
+#ifdef _LIBC
if (_IO_fwide (stream, 0) > 0)
putwc_unlocked (L'\n', stream);
else
+#endif
putc_unlocked ('\n', stream);
#if _LIBC || (HAVE_FLOCKFILE && HAVE_FUNLOCKFILE)
@@ -1887,6 +1888,15 @@ __argp_failure (const struct argp_state *state, int status, int errnum,
}
}
}
+void
+__argp_failure (const struct argp_state *state, int status, int errnum,
+ const char *fmt, ...)
+{
+ va_list ap;
+ va_start (ap, fmt);
+ __argp_failure_internal (state, status, errnum, fmt, ap, 0);
+ va_end (ap);
+}
#ifdef weak_alias
weak_alias (__argp_failure, argp_failure)
#endif
diff --git a/argp/argp-namefrob.h b/argp/argp-namefrob.h
index 5588fe172a..b3c0bbd267 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.ai.mit.edu>.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if !_LIBC
/* This code is written for inclusion in gnu-libc, and uses names in the
@@ -98,8 +98,6 @@
#define __strerror_r strerror_r
#undef __strndup
#define __strndup strndup
-#undef __vsnprintf
-#define __vsnprintf vsnprintf
#if defined(HAVE_DECL_CLEARERR_UNLOCKED) && !HAVE_DECL_CLEARERR_UNLOCKED
# define clearerr_unlocked(x) clearerr (x)
diff --git a/argp/argp-parse.c b/argp/argp-parse.c
index 36fadcfa32..56a0247e54 100644
--- a/argp/argp-parse.c
+++ b/argp/argp-parse.c
@@ -1,5 +1,5 @@
/* Hierarchial argument parsing, layered over getopt
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.ai.mit.edu>.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
#include <config.h>
diff --git a/argp/argp-pv.c b/argp/argp-pv.c
index 49dc3b5e28..6c06173265 100644
--- a/argp/argp-pv.c
+++ b/argp/argp-pv.c
@@ -1,5 +1,5 @@
/* Default definition for ARGP_PROGRAM_VERSION.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.ai.mit.edu>.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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 8c166ad9be..3218571f8c 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.ai.mit.edu>.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
#include <config.h>
diff --git a/argp/argp-test.c b/argp/argp-test.c
index 87256235b3..6cbb1710e2 100644
--- a/argp/argp-test.c
+++ b/argp/argp-test.c
@@ -1,5 +1,5 @@
/* Test program for argp argument parser
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.ai.mit.edu>.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
#include <config.h>
@@ -123,7 +123,7 @@ static const char doc[] = "Test program for argp."
static void
popt (int key, char *arg)
{
- char buf[10];
+ char buf[12];
if (isprint (key))
sprintf (buf, "%c", key);
else
diff --git a/argp/argp-xinl.c b/argp/argp-xinl.c
index 14b8e3866b..419e12f625 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.ai.mit.edu>.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
diff --git a/argp/argp.h b/argp/argp.h
index 0f2583340f..07adec1895 100644
--- a/argp/argp.h
+++ b/argp/argp.h
@@ -1,5 +1,5 @@
/* Hierarchial argument parsing, layered over getopt.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.ai.mit.edu>.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _ARGP_H
#define _ARGP_H
@@ -554,6 +554,10 @@ __NTH (__option_is_end (const struct argp_option *__opt))
# endif
#endif /* Use extern inlines. */
+#ifdef __LDBL_COMPAT
+# include <bits/argp-ldbl.h>
+#endif
+
__END_DECLS
#endif /* argp.h */
diff --git a/argp/bits/argp-ldbl.h b/argp/bits/argp-ldbl.h
new file mode 100644
index 0000000000..3b7e4e797b
--- /dev/null
+++ b/argp/bits/argp-ldbl.h
@@ -0,0 +1,24 @@
+/* Redirections for argp functions for -mlong-double-64.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _ARGP_H
+# error "Never include <bits/argp-ldbl.h> directly; use <argp.h> instead."
+#endif
+
+__LDBL_REDIR_DECL (argp_error)
+__LDBL_REDIR_DECL (argp_failure)
diff --git a/argp/tst-argp1.c b/argp/tst-argp1.c
index 259c440a52..68897586e5 100644
--- a/argp/tst-argp1.c
+++ b/argp/tst-argp1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <argp.h>
diff --git a/argp/tst-argp2.c b/argp/tst-argp2.c
index 9f9d36eb8b..fdba498d19 100644
--- a/argp/tst-argp2.c
+++ b/argp/tst-argp2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <argp.h>
diff --git a/argp/tst-ldbl-argp.c b/argp/tst-ldbl-argp.c
new file mode 100644
index 0000000000..3c09485388
--- /dev/null
+++ b/argp/tst-ldbl-argp.c
@@ -0,0 +1,102 @@
+/* Testing of long double conversions in argp.h functions.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <argp.h>
+#include <string.h>
+
+#include <support/capture_subprocess.h>
+#include <support/check.h>
+
+static const struct argp_option
+options[] =
+{
+ { "error", 'e', "format", OPTION_ARG_OPTIONAL,
+ "Run argp_error function with a format string", 0 },
+ { "failure", 'f', "format", OPTION_ARG_OPTIONAL,
+ "Run argp_failure function with a format string", 0 },
+ { NULL, 0, NULL, 0, NULL }
+};
+
+static error_t
+parser (int key, char *arg, struct argp_state *state)
+{
+ switch (key)
+ {
+ case 'e':
+ argp_error (state, "%Lf%f%Lf%f", (long double) -1, (double) -2,
+ (long double) -3, (double) -4);
+ break;
+ case 'f':
+ argp_failure (state, 0, 0, "%Lf%f%Lf%f", (long double) -1,
+ (double) -2, (long double) -3, (double) -4);
+ break;
+ default:
+ return ARGP_ERR_UNKNOWN;
+ }
+ return 0;
+}
+
+static struct argp
+argp =
+{
+ options, parser
+};
+
+int argc = 2;
+char *argv[3] = { (char *) "test-argp", NULL, NULL };
+
+static void
+do_test_call (void)
+{
+ int remaining;
+ argp_parse (&argp, argc, argv, 0, &remaining, NULL);
+}
+
+static int
+do_one_test (const char *expected)
+{
+ struct support_capture_subprocess result;
+ result = support_capture_subprocess ((void *) &do_test_call, NULL);
+
+ TEST_COMPARE_STRING (result.err.buffer, expected);
+
+ return 0;
+}
+
+static int
+do_test (void)
+{
+ const char *param_error = "--error";
+ const char *expected_error =
+ "test-argp: -1.000000-2.000000-3.000000-4.000000\n"
+ "Try `test-argp --help' or `test-argp --usage' for more information.\n";
+
+ const char *param_failure = "--failure";
+ const char *expected_failure =
+ "test-argp: -1.000000-2.000000-3.000000-4.000000\n";
+
+ argv[1] = (char *) param_error;
+ do_one_test (expected_error);
+
+ argv[1] = (char *) param_failure;
+ do_one_test (expected_failure);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/assert/Makefile b/assert/Makefile
index e2141e1200..3f95d4ace2 100644
--- a/assert/Makefile
+++ b/assert/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1991-2018 Free Software Foundation, Inc.
+# Copyright (C) 1991-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
# Sub-makefile for assert portion of the library.
diff --git a/assert/__assert.c b/assert/__assert.c
index c18bbc1a12..c118e75d84 100644
--- a/assert/__assert.c
+++ b/assert/__assert.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* We have to see the prototype. */
#undef NDEBUG
diff --git a/assert/assert-perr.c b/assert/assert-perr.c
index 4b4fe883fd..e8330ecc8c 100644
--- a/assert/assert-perr.c
+++ b/assert/assert-perr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <libintl.h>
diff --git a/assert/assert.c b/assert/assert.c
index 8ed691bd32..28312f9975 100644
--- a/assert/assert.c
+++ b/assert/assert.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <atomic.h>
diff --git a/assert/assert.h b/assert/assert.h
index 5468c16c2c..06b4faf4f1 100644
--- a/assert/assert.h
+++ b/assert/assert.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* ISO C99 Standard: 7.2 Diagnostics <assert.h>
diff --git a/assert/tst-assert-c++.cc b/assert/tst-assert-c++.cc
index fa83c5dc37..c01fc8bd25 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+/* Undefine NDEBUG to ensure the build system e.g. CFLAGS/CXXFLAGS
+ does not disable the asserts we want to test. */
+#undef NDEBUG
#include <assert.h>
/* 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 d5a07252db..eb24013ae0 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <tst-assert-c++.cc>
diff --git a/benchtests/Makefile b/benchtests/Makefile
index bcd6a9c26d..8de84182cb 100644
--- a/benchtests/Makefile
+++ b/benchtests/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2018 Free Software Foundation, Inc.
+# Copyright (C) 2013-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
# Makefile for benchmark tests. The only useful target here is `bench`.
# Add benchmark functions in alphabetical order.
@@ -24,7 +24,7 @@ include ../Makeconfig
bench-math := acos acosh asin asinh atan atanh cos cosh exp exp2 log log2 \
modf pow rint sin sincos sinh sqrt tan tanh fmin fmax fminf \
fmaxf powf trunc truncf expf exp2f logf log2f sincosf sinf \
- cosf
+ cosf isnan isinf isfinite hypot logb logbf
bench-pthread := pthread_once thread_create
@@ -37,7 +37,7 @@ bench := $(foreach B,$(filter bench-%,${BENCHSET}), ${${B}})
endif
# String function benchmarks.
-string-benchset := bcopy bzero memccpy memchr memcmp memcpy memmem memmove \
+string-benchset := memccpy memchr memcmp memcpy memmem memmove \
mempcpy memset rawmemchr stpcpy stpncpy strcasecmp strcasestr \
strcat strchr strchrnul strcmp strcpy strcspn strlen \
strncasecmp strncat strncmp strncpy strnlen strpbrk strrchr \
@@ -88,9 +88,12 @@ CFLAGS-bench-fmax.c += -fno-builtin
CFLAGS-bench-fmaxf.c += -fno-builtin
CFLAGS-bench-trunc.c += -fno-builtin
CFLAGS-bench-truncf.c += -fno-builtin
+CFLAGS-bench-isnan.c += -fsignaling-nans
+CFLAGS-bench-isinf.c += -fsignaling-nans
+CFLAGS-bench-isfinite.c += -fsignaling-nans
ifeq (${BENCHSET},)
-bench-malloc := malloc-thread
+bench-malloc := malloc-thread malloc-simple
else
bench-malloc := $(filter malloc-%,${BENCHSET})
endif
@@ -98,7 +101,7 @@ endif
$(addprefix $(objpfx)bench-,$(bench-math)): $(libm)
$(addprefix $(objpfx)bench-,$(math-benchset)): $(libm)
$(addprefix $(objpfx)bench-,$(bench-pthread)): $(shared-thread-library)
-$(objpfx)bench-malloc-thread: $(shared-thread-library)
+$(addprefix $(objpfx)bench-,$(bench-malloc)): $(shared-thread-library)
@@ -120,17 +123,17 @@ binaries-bench := $(addprefix $(objpfx)bench-,$(bench))
binaries-benchset := $(addprefix $(objpfx)bench-,$(benchset))
binaries-bench-malloc := $(addprefix $(objpfx)bench-,$(bench-malloc))
-# The default duration: 10 seconds.
+# The default duration: 1 seconds.
ifndef BENCH_DURATION
-BENCH_DURATION := 10
+BENCH_DURATION := 1
endif
CPPFLAGS-nonlib += -DDURATION=$(BENCH_DURATION) -D_ISOMAC
-# Use clock_gettime to measure performance of functions. The default is to use
-# HP_TIMING if it is available.
-ifdef USE_CLOCK_GETTIME
-CPPFLAGS-nonlib += -DUSE_CLOCK_GETTIME
+# On x86 processors, use RDTSCP, instead of RDTSC, to measure performance
+# of functions. All x86 processors since 2010 support RDTSCP instruction.
+ifdef USE_RDTSCP
+CPPFLAGS-nonlib += -DUSE_RDTSCP
endif
DETAILED_OPT :=
@@ -165,7 +168,7 @@ bench-clean:
ifneq ($(strip ${BENCHSET}),)
VALIDBENCHSETNAMES := bench-pthread bench-math bench-string string-benchset \
wcsmbs-benchset stdlib-benchset stdio-common-benchset math-benchset \
- malloc-thread
+ malloc-thread malloc-simple
INVALIDBENCHSETNAMES := $(filter-out ${VALIDBENCHSETNAMES},${BENCHSET})
ifneq (${INVALIDBENCHSETNAMES},)
$(info The following values in BENCHSET are invalid: ${INVALIDBENCHSETNAMES})
@@ -174,14 +177,7 @@ $(error Invalid BENCHSET value)
endif
endif
-# Define the bench target only if the target has a usable python installation.
-ifdef PYTHON
bench: bench-build bench-set bench-func bench-malloc
-else
-bench:
- @echo "The bench target needs python to run."
- @exit 1
-endif
# Target to only build the benchmark without running it. We generate locales
# only if we're building natively.
@@ -201,10 +197,18 @@ bench-set: $(binaries-benchset)
bench-malloc: $(binaries-bench-malloc)
for run in $^; do \
+ echo "$${run}"; \
+ if [ `basename $${run}` = "bench-malloc-thread" ]; then \
for thr in 1 8 16 32; do \
echo "Running $${run} $${thr}"; \
- $(run-bench) $${thr} > $${run}-$${thr}.out; \
- done;\
+ $(run-bench) $${thr} > $${run}-$${thr}.out; \
+ done;\
+ else \
+ for thr in 8 16 32 64 128 256 512 1024 2048 4096; do \
+ echo "Running $${run} $${thr}"; \
+ $(run-bench) $${thr} > $${run}-$${thr}.out; \
+ done;\
+ fi;\
done
# Build and execute the benchmark functions. This target generates JSON
@@ -235,13 +239,21 @@ bench-func: $(binaries-bench)
scripts/benchout.schema.json; \
fi
-$(timing-type) $(binaries-bench) $(binaries-benchset) \
- $(binaries-bench-malloc): %: %.o $(objpfx)json-lib.o \
+ifeq ($(bind-now),yes)
+link-bench-bind-now = -Wl,-z,now
+endif
+
+bench-link-targets = $(timing-type) $(binaries-bench) $(binaries-benchset) \
+ $(binaries-bench-malloc)
+
+$(bench-link-targets): %: %.o $(objpfx)json-lib.o \
$(link-extra-libs-tests) \
$(sort $(filter $(common-objpfx)lib%,$(link-libc))) \
$(addprefix $(csu-objpfx),start.o) $(+preinit) $(+postinit)
$(+link-tests)
+$(bench-link-targets): LDFLAGS += $(link-bench-bind-now)
+
$(objpfx)bench-%.c: %-inputs $(bench-deps)
{ if [ -n "$($*-INCLUDE)" ]; then \
cat $($*-INCLUDE); \
diff --git a/benchtests/README b/benchtests/README
index 4ddff794d1..c4f03fd872 100644
--- a/benchtests/README
+++ b/benchtests/README
@@ -27,12 +27,16 @@ BENCH_DURATION.
The benchmark suite does function call measurements using architecture-specific
high precision timing instructions whenever available. When such support is
-not available, it uses clock_gettime (CLOCK_PROCESS_CPUTIME_ID). One can force
-the benchmark to use clock_gettime by invoking make as follows:
+not available, it uses clock_gettime (CLOCK_MONOTONIC).
- $ make USE_CLOCK_GETTIME=1 bench
+On x86 processors, RDTSCP instruction provides more precise timing data
+than RDTSC instruction. All x86 processors since 2010 support RDTSCP
+instruction. One can force the benchmark to use RDTSCP by invoking make
+as follows:
-Again, one must run `make bench-clean' before changing the measurement method.
+ $ make USE_RDTSCP=1 bench
+
+One must run `make bench-clean' before changing the measurement method.
Running benchmarks on another target:
====================================
diff --git a/benchtests/bench-bcopy.c b/benchtests/bench-bcopy.c
deleted file mode 100644
index 09f923585f..0000000000
--- a/benchtests/bench-bcopy.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Measure bcopy functions.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#define TEST_BCOPY
-#include "bench-memmove.c"
diff --git a/benchtests/bench-bzero.c b/benchtests/bench-bzero.c
deleted file mode 100644
index 70a2e05806..0000000000
--- a/benchtests/bench-bzero.c
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Measure bzero functions.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-#define TEST_BZERO
-#include "bench-memset.c"
diff --git a/benchtests/bench-malloc-simple.c b/benchtests/bench-malloc-simple.c
new file mode 100644
index 0000000000..f4fcd92c56
--- /dev/null
+++ b/benchtests/bench-malloc-simple.c
@@ -0,0 +1,185 @@
+/* Benchmark malloc and free functions.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <pthread.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <malloc.h>
+#include <sys/resource.h>
+#include "bench-timing.h"
+#include "json-lib.h"
+
+/* Benchmark the malloc/free performance of a varying number of blocks of a
+ given size. This enables performance tracking of the t-cache and fastbins.
+ It tests 3 different scenarios: single-threaded using main arena,
+ multi-threaded using thread-arena, and main arena with SINGLE_THREAD_P
+ false. */
+
+#define NUM_ITERS 200000
+#define NUM_ALLOCS 4
+#define MAX_ALLOCS 1600
+
+typedef struct
+{
+ size_t iters;
+ size_t size;
+ int n;
+ timing_t elapsed;
+} malloc_args;
+
+static void
+do_benchmark (malloc_args *args, int **arr)
+{
+ timing_t start, stop;
+ size_t iters = args->iters;
+ size_t size = args->size;
+ int n = args->n;
+
+ TIMING_NOW (start);
+
+ for (int j = 0; j < iters; j++)
+ {
+ for (int i = 0; i < n; i++)
+ arr[i] = malloc (size);
+
+ for (int i = 0; i < n; i++)
+ free (arr[i]);
+ }
+
+ TIMING_NOW (stop);
+
+ TIMING_DIFF (args->elapsed, start, stop);
+}
+
+static malloc_args tests[3][NUM_ALLOCS];
+static int allocs[NUM_ALLOCS] = { 25, 100, 400, MAX_ALLOCS };
+
+static void *
+thread_test (void *p)
+{
+ int **arr = (int**)p;
+
+ /* Run benchmark multi-threaded. */
+ for (int i = 0; i < NUM_ALLOCS; i++)
+ do_benchmark (&tests[2][i], arr);
+
+ return p;
+}
+
+void
+bench (unsigned long size)
+{
+ size_t iters = NUM_ITERS;
+ int **arr = (int**) malloc (MAX_ALLOCS * sizeof (void*));
+
+ for (int t = 0; t < 3; t++)
+ for (int i = 0; i < NUM_ALLOCS; i++)
+ {
+ tests[t][i].n = allocs[i];
+ tests[t][i].size = size;
+ tests[t][i].iters = iters / allocs[i];
+
+ /* Do a quick warmup run. */
+ if (t == 0)
+ do_benchmark (&tests[0][i], arr);
+ }
+
+ /* Run benchmark single threaded in main_arena. */
+ for (int i = 0; i < NUM_ALLOCS; i++)
+ do_benchmark (&tests[0][i], arr);
+
+ /* Run benchmark in a thread_arena. */
+ pthread_t t;
+ pthread_create (&t, NULL, thread_test, (void*)arr);
+ pthread_join (t, NULL);
+
+ /* Repeat benchmark in main_arena with SINGLE_THREAD_P == false. */
+ for (int i = 0; i < NUM_ALLOCS; i++)
+ do_benchmark (&tests[1][i], arr);
+
+ free (arr);
+
+ json_ctx_t json_ctx;
+
+ json_init (&json_ctx, 0, stdout);
+
+ json_document_begin (&json_ctx);
+
+ json_attr_string (&json_ctx, "timing_type", TIMING_TYPE);
+
+ json_attr_object_begin (&json_ctx, "functions");
+
+ json_attr_object_begin (&json_ctx, "malloc");
+
+ char s[100];
+ double iters2 = iters;
+
+ json_attr_object_begin (&json_ctx, "");
+ json_attr_double (&json_ctx, "malloc_block_size", size);
+
+ struct rusage usage;
+ getrusage (RUSAGE_SELF, &usage);
+ json_attr_double (&json_ctx, "max_rss", usage.ru_maxrss);
+
+ for (int i = 0; i < NUM_ALLOCS; i++)
+ {
+ sprintf (s, "main_arena_st_allocs_%04d_time", allocs[i]);
+ json_attr_double (&json_ctx, s, tests[0][i].elapsed / iters2);
+ }
+
+ for (int i = 0; i < NUM_ALLOCS; i++)
+ {
+ sprintf (s, "main_arena_mt_allocs_%04d_time", allocs[i]);
+ json_attr_double (&json_ctx, s, tests[1][i].elapsed / iters2);
+ }
+
+ for (int i = 0; i < NUM_ALLOCS; i++)
+ {
+ sprintf (s, "thread_arena__allocs_%04d_time", allocs[i]);
+ json_attr_double (&json_ctx, s, tests[2][i].elapsed / iters2);
+ }
+
+ json_attr_object_end (&json_ctx);
+
+ json_attr_object_end (&json_ctx);
+
+ json_attr_object_end (&json_ctx);
+
+ json_document_end (&json_ctx);
+}
+
+static void usage (const char *name)
+{
+ fprintf (stderr, "%s: <alloc_size>\n", name);
+ exit (1);
+}
+
+int
+main (int argc, char **argv)
+{
+ long val = 16;
+ if (argc == 2)
+ val = strtol (argv[1], NULL, 0);
+
+ if (argc > 2 || val <= 0)
+ usage (argv[0]);
+
+ bench (val);
+
+ return 0;
+}
diff --git a/benchtests/bench-malloc-thread.c b/benchtests/bench-malloc-thread.c
index 430cb0d7c0..500390866e 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <math.h>
@@ -31,7 +31,7 @@
#include "json-lib.h"
/* Benchmark duration in seconds. */
-#define BENCHMARK_DURATION 60
+#define BENCHMARK_DURATION 10
#define RAND_SEED 88
#ifndef NUM_THREADS
@@ -225,7 +225,6 @@ main (int argc, char **argv)
{
timing_t cur;
size_t iters = 0, num_threads = 1;
- unsigned long res;
json_ctx_t json_ctx;
double d_total_s, d_total_i;
struct sigaction act;
@@ -261,10 +260,6 @@ main (int argc, char **argv)
json_attr_object_begin (&json_ctx, "");
- TIMING_INIT (res);
-
- (void) res;
-
memset (&act, 0, sizeof (act));
act.sa_handler = &alarm_handler;
diff --git a/benchtests/bench-math-inlines.c b/benchtests/bench-math-inlines.c
index 3750ee5f62..9042608fde 100644
--- a/benchtests/bench-math-inlines.c
+++ b/benchtests/bench-math-inlines.c
@@ -1,5 +1,5 @@
/* Measure math inline functions.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define SIZE 1024
#define TEST_MAIN
@@ -220,7 +220,7 @@ static void
do_one_test (json_ctx_t *json_ctx, proto_t test_fn, volatile double *arr,
size_t len, const char *testname)
{
- size_t iters = 500;
+ size_t iters = 2048;
timing_t start, stop, cur;
json_attr_object_begin (json_ctx, testname);
diff --git a/benchtests/bench-memccpy.c b/benchtests/bench-memccpy.c
index c7424130d6..8576fd5151 100644
--- a/benchtests/bench-memccpy.c
+++ b/benchtests/bench-memccpy.c
@@ -1,5 +1,5 @@
/* Measure memccpy functions.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,34 +14,14 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_MAIN
#define TEST_NAME "memccpy"
#include "bench-string.h"
-void *simple_memccpy (void *, const void *, int, size_t);
-void *stupid_memccpy (void *, const void *, int, size_t);
-
-IMPL (stupid_memccpy, 0)
-IMPL (simple_memccpy, 0)
-IMPL (memccpy, 1)
-
-void *
-simple_memccpy (void *dst, const void *src, int c, size_t n)
-{
- const char *s = src;
- char *d = dst;
-
- while (n-- > 0)
- if ((*d++ = *s++) == (char) c)
- return d;
-
- return NULL;
-}
-
void *
-stupid_memccpy (void *dst, const void *src, int c, size_t n)
+generic_memccpy (void *dst, const void *src, int c, size_t n)
{
void *p = memchr (src, c, n);
@@ -52,13 +32,16 @@ stupid_memccpy (void *dst, const void *src, int c, size_t n)
return NULL;
}
+IMPL (memccpy, 1)
+IMPL (generic_memccpy, 0)
+
typedef void *(*proto_t) (void *, const void *, int c, size_t);
static void
do_one_test (impl_t *impl, void *dst, const void *src, int c, size_t len,
size_t n)
{
- size_t i, iters = INNER_LOOP_ITERS;
+ size_t i, iters = INNER_LOOP_ITERS_LARGE;
timing_t start, stop, cur;
TIMING_NOW (start);
diff --git a/benchtests/bench-memchr.c b/benchtests/bench-memchr.c
index 2603cdca99..cb9c0d3548 100644
--- a/benchtests/bench-memchr.c
+++ b/benchtests/bench-memchr.c
@@ -1,5 +1,5 @@
/* Measure memchr functions.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,14 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef WIDE
-# define CHAR char
# define SMALL_CHAR 127
#else
-# include <wchar.h>
-# define CHAR wchar_t
# define SMALL_CHAR 1273
#endif /* WIDE */
@@ -35,10 +32,8 @@
# include "bench-string.h"
# ifndef WIDE
-# define MEMCHR memchr
# define SIMPLE_MEMCHR simple_memchr
# else
-# define MEMCHR wmemchr
# define SIMPLE_MEMCHR simple_wmemchr
# endif /* WIDE */
@@ -61,7 +56,7 @@ SIMPLE_MEMCHR (const CHAR *s, int c, size_t n)
static void
do_one_test (impl_t *impl, const CHAR *s, int c, size_t n)
{
- size_t i, iters = INNER_LOOP_ITERS;
+ size_t i, iters = INNER_LOOP_ITERS_LARGE;
timing_t start, stop, cur;
TIMING_NOW (start);
diff --git a/benchtests/bench-memcmp.c b/benchtests/bench-memcmp.c
index 69ed9c958b..6a5f976658 100644
--- a/benchtests/bench-memcmp.c
+++ b/benchtests/bench-memcmp.c
@@ -1,5 +1,5 @@
/* Measure memcmp functions.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_MAIN
#ifdef WIDE
@@ -24,17 +24,8 @@
#endif
#include "bench-string.h"
#ifdef WIDE
-# include <inttypes.h>
-# include <wchar.h>
-# define MEMCMP wmemcmp
-# define MEMCPY wmemcpy
# define SIMPLE_MEMCMP simple_wmemcmp
-# define CHAR wchar_t
-# define UCHAR wchar_t
-# define CHARBYTES 4
-# define CHAR__MIN WCHAR_MIN
-# define CHAR__MAX WCHAR_MAX
int
simple_wmemcmp (const wchar_t *s1, const wchar_t *s2, size_t n)
{
@@ -49,15 +40,7 @@ simple_wmemcmp (const wchar_t *s1, const wchar_t *s2, size_t n)
#else
# include <limits.h>
-# define MEMCMP memcmp
-# define MEMCPY memcpy
# define SIMPLE_MEMCMP simple_memcmp
-# define CHAR char
-# define MAX_CHAR 255
-# define UCHAR unsigned char
-# define CHARBYTES 1
-# define CHAR__MIN CHAR_MIN
-# define CHAR__MAX CHAR_MAX
int
simple_memcmp (const char *s1, const char *s2, size_t n)
@@ -80,7 +63,7 @@ static void
do_one_test (json_ctx_t *json_ctx, impl_t *impl, const CHAR *s1,
const CHAR *s2, size_t len, int exp_result)
{
- size_t i, iters = INNER_LOOP_ITERS;
+ size_t i, iters = INNER_LOOP_ITERS8;
timing_t start, stop, cur;
TIMING_NOW (start);
@@ -125,14 +108,14 @@ do_test (json_ctx_t *json_ctx, size_t align1, size_t align2, size_t len,
s2 = (CHAR *) (buf2 + align2);
for (i = 0; i < len; i++)
- s1[i] = s2[i] = 1 + (23 << ((CHARBYTES - 1) * 8)) * i % CHAR__MAX;
+ s1[i] = s2[i] = 1 + (23 << ((CHARBYTES - 1) * 8)) * i % MAX_CHAR;
s1[len] = align1;
s2[len] = align2;
s2[len - 1] -= exp_result;
do_one_test (json_ctx, impl, s1, s2, len, exp_result);
- realloc_bufs ();
+ alloc_bufs ();
}
json_array_end (json_ctx);
diff --git a/benchtests/bench-memcpy-large.c b/benchtests/bench-memcpy-large.c
index 9e0ddb20fb..84b16906c4 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef MEMCPY_RESULT
# define MEMCPY_RESULT(dst, len) dst
diff --git a/benchtests/bench-memcpy-random.c b/benchtests/bench-memcpy-random.c
index d4717f0290..87865228fd 100644
--- a/benchtests/bench-memcpy-random.c
+++ b/benchtests/bench-memcpy-random.c
@@ -1,5 +1,5 @@
/* Measure memcpy performance.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define MIN_PAGE_SIZE 131072
#define TEST_MAIN
@@ -101,7 +101,7 @@ do_one_test (json_ctx_t *json_ctx, impl_t *impl, char *dst, char *src,
copy_t *copy, size_t n)
{
timing_t start, stop, cur;
- size_t iters = INNER_LOOP_ITERS * 20;
+ size_t iters = INNER_LOOP_ITERS_MEDIUM;
TIMING_NOW (start);
for (int i = 0; i < iters; ++i)
diff --git a/benchtests/bench-memcpy-walk.c b/benchtests/bench-memcpy-walk.c
index 2771f56b1f..f665c7c184 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This microbenchmark measures the throughput of memcpy for various sizes from
1 byte to 32MiB, doubling every iteration and then misaligning by 0-15
@@ -103,12 +103,8 @@ test_main (void)
json_array_begin (&json_ctx, "results");
for (size_t i = START_SIZE; i <= MIN_PAGE_SIZE; i <<= 1)
{
- /* Test length alignments from 0-16 bytes. */
- for (int j = 0; j < 8; j++)
- {
- do_test (&json_ctx, i + j);
- do_test (&json_ctx, i + 16 - j);
- }
+ do_test (&json_ctx, i);
+ do_test (&json_ctx, i + 1);
}
json_array_end (&json_ctx);
diff --git a/benchtests/bench-memcpy.c b/benchtests/bench-memcpy.c
index 6a52a1b0a0..d1eff661ce 100644
--- a/benchtests/bench-memcpy.c
+++ b/benchtests/bench-memcpy.c
@@ -1,5 +1,5 @@
/* Measure memcpy functions.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef MEMCPY_RESULT
# define MEMCPY_RESULT(dst, len) dst
@@ -23,32 +23,16 @@
# define TEST_NAME "memcpy"
# include "bench-string.h"
-char *simple_memcpy (char *, const char *, size_t);
-char *builtin_memcpy (char *, const char *, size_t);
+void *generic_memcpy (void *, const void *, size_t);
-IMPL (simple_memcpy, 0)
-IMPL (builtin_memcpy, 0)
IMPL (memcpy, 1)
+IMPL (generic_memcpy, 0)
-char *
-simple_memcpy (char *dst, const char *src, size_t n)
-{
- char *ret = dst;
- while (n--)
- *dst++ = *src++;
- return ret;
-}
-
-char *
-builtin_memcpy (char *dst, const char *src, size_t n)
-{
- return __builtin_memcpy (dst, src, n);
-}
#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,
@@ -170,3 +154,9 @@ test_main (void)
}
#include <support/test-driver.c>
+
+#define libc_hidden_builtin_def(X)
+#undef MEMCPY
+#define MEMCPY generic_memcpy
+#include <string/memcpy.c>
+#include <string/wordcopy.c>
diff --git a/benchtests/bench-memmem.c b/benchtests/bench-memmem.c
index eb8df767b4..176e6ec419 100644
--- a/benchtests/bench-memmem.c
+++ b/benchtests/bench-memmem.c
@@ -1,5 +1,5 @@
/* Measure memmem functions.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,27 +14,56 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_MAIN
#define TEST_NAME "memmem"
#define BUF1PAGES 20
-#define ITERATIONS 500
+#define ITERATIONS 100
#include "bench-string.h"
typedef char *(*proto_t) (const void *, size_t, const void *, size_t);
-void *simple_memmem (const void *, size_t, const void *, size_t);
-IMPL (simple_memmem, 0)
-IMPL (memmem, 1)
+void *
+basic_memmem (const void *haystack, size_t hs_len, const void *needle,
+ size_t ne_len)
+{
+ const char *hs = haystack;
+ const char *ne = needle;
+
+ if (ne_len == 0)
+ return (void *)hs;
+ int i;
+ int c = ne[0];
+ const char *end = hs + hs_len - ne_len;
+
+ for ( ; hs <= end; hs++)
+ {
+ if (hs[0] != c)
+ continue;
+ for (i = ne_len - 1; i != 0; i--)
+ if (hs[i] != ne[i])
+ break;
+ if (i == 0)
+ return (void *)hs;
+ }
+
+ return NULL;
+}
+
+#define RETURN_TYPE void *
+#define AVAILABLE(h, h_l, j, n_l) ((j) <= (h_l) - (n_l))
+#define FASTSEARCH(S,C,N) (void*) memchr ((void *)(S), (C), (N))
+#include "../string/str-two-way.h"
void *
-simple_memmem (const void *haystack, size_t haystack_len, const void *needle,
- size_t needle_len)
+twoway_memmem (const void *haystack_start, size_t haystack_len,
+ const void *needle_start, size_t needle_len)
{
- const char *begin;
- const char *const last_possible
- = (const char *) haystack + haystack_len - needle_len;
+ /* Abstract memory is considered to be an array of 'unsigned char' values,
+ not an array of 'char' values. See ISO C 99 section 6.2.6.1. */
+ const unsigned char *haystack = (const unsigned char *) haystack_start;
+ const unsigned char *needle = (const unsigned char *) needle_start;
if (needle_len == 0)
/* The first occurrence of the empty string is deemed to occur at
@@ -46,21 +75,37 @@ simple_memmem (const void *haystack, size_t haystack_len, const void *needle,
if (__glibc_unlikely (haystack_len < needle_len))
return NULL;
- for (begin = (const char *) haystack; begin <= last_possible; ++begin)
- if (begin[0] == ((const char *) needle)[0] &&
- !memcmp ((const void *) &begin[1],
- (const void *) ((const char *) needle + 1),
- needle_len - 1))
- return (void *) begin;
-
- return NULL;
+ /* Use optimizations in memchr when possible, to reduce the search
+ size of haystack using a linear algorithm with a smaller
+ coefficient. However, avoid memchr for long needles, since we
+ can often achieve sublinear performance. */
+ if (needle_len < LONG_NEEDLE_THRESHOLD)
+ {
+ haystack = memchr (haystack, *needle, haystack_len);
+ if (!haystack || __builtin_expect (needle_len == 1, 0))
+ return (void *) haystack;
+ haystack_len -= haystack - (const unsigned char *) haystack_start;
+ if (haystack_len < needle_len)
+ return NULL;
+ /* Check whether we have a match. This improves performance since we
+ avoid the initialization overhead of the two-way algorithm. */
+ if (memcmp (haystack, needle, needle_len) == 0)
+ return (void *) haystack;
+ return two_way_short_needle (haystack, haystack_len, needle, needle_len);
+ }
+ else
+ return two_way_long_needle (haystack, haystack_len, needle, needle_len);
}
+IMPL (memmem, 1)
+IMPL (twoway_memmem, 0)
+IMPL (basic_memmem, 0)
+
static void
do_one_test (impl_t *impl, const void *haystack, size_t haystack_len,
const void *needle, size_t needle_len, const void *expected)
{
- size_t i, iters = INNER_LOOP_ITERS;
+ size_t i, iters = INNER_LOOP_ITERS_SMALL;
timing_t start, stop, cur;
TIMING_NOW (start);
diff --git a/benchtests/bench-memmove-large.c b/benchtests/bench-memmove-large.c
index 958151a6b4..d29613ad86 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define BASE_PAGE_SIZE (1024 * 1024)
#define START_SIZE (4 * 1024)
@@ -30,8 +30,8 @@ IMPL (memmove, 1)
typedef char *(*proto_t) (char *, const char *, size_t);
static void
-do_one_test (json_ctx_t *json_ctx, impl_t *impl, char *dst, char *src, const
- char *orig_src, size_t len)
+do_one_test (json_ctx_t *json_ctx, impl_t *impl, char *dst, char *src,
+ size_t len)
{
size_t i, iters = 16;
timing_t start, stop, cur;
@@ -62,7 +62,7 @@ do_test (json_ctx_t *json_ctx, size_t align1, size_t align2, size_t len)
if (align2 + len >= page_size)
return;
- s1 = (char *) (buf1 + align1);
+ s1 = (char *) (buf2 + align1);
s2 = (char *) (buf2 + align2);
for (i = 0, j = 1; i < len; i++, j += 23)
@@ -75,7 +75,7 @@ do_test (json_ctx_t *json_ctx, size_t align1, size_t align2, size_t len)
json_array_begin (json_ctx, "timings");
FOR_EACH_IMPL (impl, 0)
- do_one_test (json_ctx, impl, s2, (char *) (buf2 + align1), s1, len);
+ do_one_test (json_ctx, impl, s2, s1, len);
json_array_end (json_ctx);
json_element_object_end (json_ctx);
diff --git a/benchtests/bench-memmove-walk.c b/benchtests/bench-memmove-walk.c
index 80a7d62d4d..7f19cbae2c 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This microbenchmark measures the throughput of memmove for various sizes from
1 byte to 32MiB, doubling every iteration and then misaligning by 0-15
@@ -107,23 +107,15 @@ test_main (void)
/* Non-overlapping buffers. */
for (size_t i = START_SIZE; i <= MIN_PAGE_SIZE; i <<= 1)
{
- /* Test length alignments from 0-16 bytes. */
- for (int j = 0; j < 8; j++)
- {
- do_test (&json_ctx, i + j, false);
- do_test (&json_ctx, i + 16 - j, false);
- }
+ do_test (&json_ctx, i, false);
+ do_test (&json_ctx, i + 1, false);
}
/* Overlapping buffers. */
for (size_t i = START_SIZE; i <= MIN_PAGE_SIZE; i <<= 1)
{
- /* Test length alignments from 0-16 bytes. */
- for (int j = 0; j < 8; j++)
- {
- do_test (&json_ctx, i + j, true);
- do_test (&json_ctx, i + 16 - j, true);
- }
+ do_test (&json_ctx, i, true);
+ do_test (&json_ctx, i + 1, true);
}
json_array_end (&json_ctx);
diff --git a/benchtests/bench-memmove.c b/benchtests/bench-memmove.c
index 93de671981..7e8688b497 100644
--- a/benchtests/bench-memmove.c
+++ b/benchtests/bench-memmove.c
@@ -1,5 +1,5 @@
/* Measure memmove functions.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,59 +14,23 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_MAIN
-#ifdef TEST_BCOPY
-# define TEST_NAME "bcopy"
-#else
-# define TEST_NAME "memmove"
-#endif
+#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);
-#ifdef TEST_BCOPY
-typedef void (*proto_t) (const char *, char *, size_t);
-void simple_bcopy (const char *, char *, size_t);
+typedef void *(*proto_t) (void *, const void *, size_t);
-IMPL (simple_bcopy, 0)
-IMPL (bcopy, 1)
-
-void
-simple_bcopy (const char *src, char *dst, size_t n)
-{
- simple_memmove (dst, src, n);
-}
-#else
-typedef char *(*proto_t) (char *, const char *, size_t);
-
-IMPL (simple_memmove, 0)
IMPL (memmove, 1)
-#endif
-
-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, const
- char *orig_src, size_t len)
+do_one_test (json_ctx_t *json_ctx, impl_t *impl, char *dst, char *src,
+ size_t len)
{
size_t i, iters = INNER_LOOP_ITERS;
timing_t start, stop, cur;
@@ -74,11 +38,7 @@ do_one_test (json_ctx_t *json_ctx, impl_t *impl, char *dst, char *src, const
TIMING_NOW (start);
for (i = 0; i < iters; ++i)
{
-#ifdef TEST_BCOPY
- CALL (impl, src, dst, len);
-#else
CALL (impl, dst, src, len);
-#endif
}
TIMING_NOW (stop);
@@ -101,7 +61,7 @@ do_test (json_ctx_t *json_ctx, size_t align1, size_t align2, size_t len)
if (align2 + len >= page_size)
return;
- s1 = (char *) (buf1 + align1);
+ s1 = (char *) (buf2 + align1);
s2 = (char *) (buf2 + align2);
for (i = 0, j = 1; i < len; i++, j += 23)
@@ -114,7 +74,7 @@ do_test (json_ctx_t *json_ctx, size_t align1, size_t align2, size_t len)
json_array_begin (json_ctx, "timings");
FOR_EACH_IMPL (impl, 0)
- do_one_test (json_ctx, impl, s2, (char *) (buf2 + align1), s1, len);
+ do_one_test (json_ctx, impl, s2, s1, len);
json_array_end (json_ctx);
json_element_object_end (json_ctx);
@@ -187,3 +147,9 @@ test_main (void)
}
#include <support/test-driver.c>
+
+#define libc_hidden_builtin_def(X)
+#undef MEMMOVE
+#define MEMMOVE generic_memmove
+#include <string/memmove.c>
+#include <string/wordcopy.c>
diff --git a/benchtests/bench-mempcpy.c b/benchtests/bench-mempcpy.c
index bb76881b5e..86e53bab42 100644
--- a/benchtests/bench-mempcpy.c
+++ b/benchtests/bench-mempcpy.c
@@ -1,5 +1,5 @@
/* Measure mempcpy functions.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,24 +14,20 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define MEMCPY_RESULT(dst, len) (dst) + (len)
#define TEST_MAIN
#define TEST_NAME "mempcpy"
#include "bench-string.h"
-char *simple_mempcpy (char *, const char *, size_t);
-
-IMPL (simple_mempcpy, 0)
-IMPL (mempcpy, 1)
-
char *
-simple_mempcpy (char *dst, const char *src, size_t n)
+generic_mempcpy (char *dst, const char *src, size_t n)
{
- while (n--)
- *dst++ = *src++;
- return dst;
+ return memcpy (dst, src, n) + n;
}
+IMPL (mempcpy, 1)
+IMPL (generic_mempcpy, 0)
+
#include "bench-memcpy.c"
diff --git a/benchtests/bench-memrchr.c b/benchtests/bench-memrchr.c
index 91bca8bad5..1fb66168c0 100644
--- a/benchtests/bench-memrchr.c
+++ b/benchtests/bench-memrchr.c
@@ -1,5 +1,5 @@
/* Measure memrchr functions.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_MAIN
#define TEST_NAME "memrchr"
diff --git a/benchtests/bench-memset-large.c b/benchtests/bench-memset-large.c
index 248289108b..4ec5464383 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,48 +14,23 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#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 MEMSET memset
-# define CHAR char
-# define SIMPLE_MEMSET simple_memset
-# define MEMCMP memcmp
-#else
-# include <wchar.h>
-# define MEMSET wmemset
-# define CHAR wchar_t
-# define SIMPLE_MEMSET simple_wmemset
-# define MEMCMP wmemcmp
-#endif /* WIDE */
-
#include <assert.h>
#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,
@@ -92,7 +67,7 @@ do_test (json_ctx_t *json_ctx, size_t align, int c, size_t len)
FOR_EACH_IMPL (impl, 0)
{
do_one_test (json_ctx, impl, (CHAR *) (buf1) + align, c, len);
- realloc_bufs ();
+ alloc_bufs ();
}
json_array_end (json_ctx);
@@ -140,3 +115,11 @@ test_main (void)
}
#include <support/test-driver.c>
+
+#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 <string/memset.c>
diff --git a/benchtests/bench-memset-walk.c b/benchtests/bench-memset-walk.c
index 4dcb1529cf..d1cfdcf8d9 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,49 +14,23 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#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 MEMSET memset
-# define CHAR char
-# define SIMPLE_MEMSET simple_memset
-# define MEMCMP memcmp
-#else
-# include <wchar.h>
-# define MEMSET wmemset
-# define CHAR wchar_t
-# define SIMPLE_MEMSET simple_wmemset
-# define MEMCMP wmemcmp
-#endif /* WIDE */
-
#include <assert.h>
#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,
@@ -88,7 +62,7 @@ do_test (json_ctx_t *json_ctx, int c, size_t len)
{
do_one_test (json_ctx, impl, (CHAR *) buf1,
(CHAR *) buf1 + MIN_PAGE_SIZE - len, c, len);
- realloc_bufs ();
+ alloc_bufs ();
}
json_array_end (json_ctx);
@@ -119,13 +93,16 @@ test_main (void)
json_array_begin (&json_ctx, "results");
for (i = START_SIZE; i <= MIN_PAGE_SIZE; i <<= 1)
- /* Test length alignments from 0-16 bytes. */
- for (int j = 0; j < i && j < 16; j++)
- do_test (&json_ctx, 65, i + j);
+ {
+ do_test (&json_ctx, 65, i);
+ do_test (&json_ctx, 65, i + 1);
+ }
for (i = START_SIZE; i <= MIN_PAGE_SIZE; i <<= 1)
- for (int j = 0; j < i && j < 16; j++)
- do_test (&json_ctx, 0, i + j);
+ {
+ do_test (&json_ctx, 0, i);
+ do_test (&json_ctx, 0, i + 1);
+ }
json_array_end (&json_ctx);
json_attr_object_end (&json_ctx);
@@ -136,3 +113,11 @@ test_main (void)
}
#include <support/test-driver.c>
+
+#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 <string/memset.c>
diff --git a/benchtests/bench-memset.c b/benchtests/bench-memset.c
index 0ae201d4a5..f7961699a0 100644
--- a/benchtests/bench-memset.c
+++ b/benchtests/bench-memset.c
@@ -1,5 +1,5 @@
/* Measure memset functions.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,86 +14,30 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_MAIN
-#ifdef TEST_BZERO
-# define TEST_NAME "bzero"
-#else
-# ifndef WIDE
-# define TEST_NAME "memset"
-# else
-# define TEST_NAME "wmemset"
-# endif /* WIDE */
-#endif /* !TEST_BZERO */
-#define MIN_PAGE_SIZE 131072
-#include "bench-string.h"
-
#ifndef WIDE
-# define MEMSET memset
-# define CHAR char
-# define SIMPLE_MEMSET simple_memset
-# define MEMCMP memcmp
+# define TEST_NAME "memset"
#else
-# include <wchar.h>
-# define MEMSET wmemset
-# define CHAR wchar_t
-# define SIMPLE_MEMSET simple_wmemset
-# define MEMCMP wmemcmp
+# 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 TEST_BZERO
-typedef void (*proto_t) (char *, size_t);
-void simple_bzero (char *, size_t);
-void builtin_bzero (char *, size_t);
-
-IMPL (simple_bzero, 0)
-IMPL (builtin_bzero, 0)
-IMPL (bzero, 1)
-
-void
-simple_bzero (char *s, size_t n)
-{
- SIMPLE_MEMSET (s, 0, n);
-}
-
-void
-builtin_bzero (char *s, size_t n)
-{
- __builtin_bzero (s, n);
-}
+#ifdef WIDE
+CHAR *generic_wmemset (CHAR *, CHAR, size_t);
#else
-typedef CHAR *(*proto_t) (CHAR *, int, size_t);
+void *generic_memset (void *, int, size_t);
+#endif
-IMPL (SIMPLE_MEMSET, 0)
-# ifndef WIDE
-char *builtin_memset (char *, int, size_t);
-IMPL (builtin_memset, 0)
-# endif /* !WIDE */
-IMPL (MEMSET, 1)
+typedef void *(*proto_t) (void *, int, size_t);
-# ifndef WIDE
-char *
-builtin_memset (char *s, int c, size_t n)
-{
- return __builtin_memset (s, c, n);
-}
-# endif /* !WIDE */
-#endif /* !TEST_BZERO */
-
-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,
@@ -105,11 +49,7 @@ do_one_test (json_ctx_t *json_ctx, impl_t *impl, CHAR *s,
TIMING_NOW (start);
for (i = 0; i < iters; ++i)
{
-#ifdef TEST_BZERO
- CALL (impl, s, n);
-#else
CALL (impl, s, c, n);
-#endif /* !TEST_BZERO */
}
TIMING_NOW (stop);
@@ -134,7 +74,7 @@ do_test (json_ctx_t *json_ctx, size_t align, int c, size_t len)
FOR_EACH_IMPL (impl, 0)
{
do_one_test (json_ctx, impl, (CHAR *) (buf1) + align, c, len);
- realloc_bufs ();
+ alloc_bufs ();
}
json_array_end (json_ctx);
@@ -166,9 +106,7 @@ test_main (void)
json_array_begin (&json_ctx, "results");
-#ifndef TEST_BZERO
for (c = -65; c <= 130; c += 65)
-#endif
{
for (i = 0; i < 18; ++i)
do_test (&json_ctx, 0, c, 1 << i);
@@ -203,3 +141,16 @@ test_main (void)
}
#include <support/test-driver.c>
+
+#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 <string/memset.c>
+#else
+# define WMEMSET generic_wmemset
+# include <wcsmbs/wmemset.c>
+#endif
diff --git a/benchtests/bench-rawmemchr.c b/benchtests/bench-rawmemchr.c
index 8664fe5107..d45a2b815d 100644
--- a/benchtests/bench-rawmemchr.c
+++ b/benchtests/bench-rawmemchr.c
@@ -1,5 +1,5 @@
/* Measure memchr functions.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,33 +14,32 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
+#include <stdint.h>
#define TEST_MAIN
#define TEST_NAME "rawmemchr"
#include "bench-string.h"
typedef char *(*proto_t) (const char *, int);
-char *simple_rawmemchr (const char *, int);
-
-IMPL (simple_rawmemchr, 0)
-IMPL (rawmemchr, 1)
char *
-simple_rawmemchr (const char *s, int c)
+generic_rawmemchr (const char *s, int c)
{
- while (1)
- if (*s++ == (char) c)
- return (char *) s - 1;
- return NULL;
+ if (c != 0)
+ return memchr (s, c, PTRDIFF_MAX);
+ return (char *)s + strlen (s);
}
+IMPL (rawmemchr, 1)
+IMPL (generic_rawmemchr, 0)
+
static void
do_one_test (impl_t *impl, const char *s, int c, char *exp_res)
{
- size_t i, iters = INNER_LOOP_ITERS;
+ size_t i, iters = INNER_LOOP_ITERS_LARGE * 4;
timing_t start, stop, cur;
char *res = CALL (impl, s, c);
if (res != exp_res)
diff --git a/benchtests/bench-skeleton.c b/benchtests/bench-skeleton.c
index 666212a64f..574f4453e6 100644
--- a/benchtests/bench-skeleton.c
+++ b/benchtests/bench-skeleton.c
@@ -1,5 +1,5 @@
/* Skeleton for benchmark programs.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <stdint.h>
@@ -29,9 +29,9 @@
#include "bench-util.c"
#define TIMESPEC_AFTER(a, b) \
- (((a).tv_sec == (b).tv_sec) ? \
- ((a).tv_nsec > (b).tv_nsec) : \
- ((a).tv_sec > (b).tv_sec))
+ (((a).tv_sec == (b).tv_sec) \
+ ? ((a).tv_nsec > (b).tv_nsec) \
+ : ((a).tv_sec > (b).tv_sec))
int
main (int argc, char **argv)
{
@@ -48,14 +48,11 @@ main (int argc, char **argv)
memset (&runtime, 0, sizeof (runtime));
- unsigned long iters, res;
+ unsigned long iters = 1000;
#ifdef BENCH_INIT
BENCH_INIT ();
#endif
- TIMING_INIT (res);
-
- iters = 1000 * res;
json_init (&json_ctx, 2, stdout);
@@ -144,6 +141,8 @@ main (int argc, char **argv)
if (is_bench)
{
+ json_attr_double (&json_ctx, "duration", throughput + latency);
+ json_attr_double (&json_ctx, "iterations", 2 * d_total_i);
json_attr_double (&json_ctx, "reciprocal-throughput",
throughput / d_total_i);
json_attr_double (&json_ctx, "latency", latency / d_total_i);
diff --git a/benchtests/bench-stpcpy.c b/benchtests/bench-stpcpy.c
index 490cf88414..24af63388b 100644
--- a/benchtests/bench-stpcpy.c
+++ b/benchtests/bench-stpcpy.c
@@ -1,5 +1,5 @@
/* Measure stpcpy functions.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define STRCPY_RESULT(dst, len) ((dst) + (len))
#define TEST_MAIN
@@ -22,30 +22,18 @@
# define TEST_NAME "stpcpy"
#else
# define TEST_NAME "wcpcpy"
+# define generic_stpcpy generic_wcpcpy
#endif /* WIDE */
#include "bench-string.h"
-#ifndef WIDE
-# define CHAR char
-# define SIMPLE_STPCPY simple_stpcpy
-# define STPCPY stpcpy
-#else
-# include <wchar.h>
-# define CHAR wchar_t
-# define SIMPLE_STPCPY simple_wcpcpy
-# define STPCPY wcpcpy
-#endif /* WIDE */
-
-CHAR *SIMPLE_STPCPY (CHAR *, const CHAR *);
-
-IMPL (SIMPLE_STPCPY, 0)
-IMPL (STPCPY, 1)
CHAR *
-SIMPLE_STPCPY (CHAR *dst, const CHAR *src)
+generic_stpcpy (CHAR *dst, const CHAR *src)
{
- while ((*dst++ = *src++) != '\0');
- return dst - 1;
+ size_t len = STRLEN (src);
+ return (CHAR *) MEMCPY (dst, src, len + 1) + len;
}
-#undef CHAR
+IMPL (STPCPY, 1)
+IMPL (generic_stpcpy, 0)
+
#include "bench-strcpy.c"
diff --git a/benchtests/bench-stpcpy_chk.c b/benchtests/bench-stpcpy_chk.c
index c0f9e26fd8..6ae0f3dc22 100644
--- a/benchtests/bench-stpcpy_chk.c
+++ b/benchtests/bench-stpcpy_chk.c
@@ -1,5 +1,5 @@
/* Measure stpcpy checking functions.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define STRCPY_RESULT(dst, len) ((dst) + (len))
#define TEST_MAIN
diff --git a/benchtests/bench-stpncpy.c b/benchtests/bench-stpncpy.c
index 488ed42db2..a45c79a7c5 100644
--- a/benchtests/bench-stpncpy.c
+++ b/benchtests/bench-stpncpy.c
@@ -1,5 +1,5 @@
/* Measure stpncpy functions.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define STRNCPY_RESULT(dst, len, n) ((dst) + ((len) > (n) ? (n) : (len)))
#define TEST_MAIN
@@ -22,57 +22,22 @@
# define TEST_NAME "stpncpy"
#else
# define TEST_NAME "wcpncpy"
+# define generic_stpncpy generic_wcpncpy
#endif /* WIDE */
#include "bench-string.h"
-#ifndef WIDE
-# define CHAR char
-# define SIMPLE_STPNCPY simple_stpncpy
-# define STUPID_STPNCPY stupid_stpncpy
-# define STPNCPY stpncpy
-# define STRNLEN strnlen
-#else
-# include <wchar.h>
-# define CHAR wchar_t
-# define SIMPLE_STPNCPY simple_wcpncpy
-# define STUPID_STPNCPY stupid_wcpncpy
-# define STPNCPY wcpncpy
-# define STRNLEN wcsnlen
-#endif /* WIDE */
-
-CHAR *SIMPLE_STPNCPY (CHAR *, const CHAR *, size_t);
-CHAR *STUPID_STPNCPY (CHAR *, const CHAR *, size_t);
-
-IMPL (STUPID_STPNCPY, 0)
-IMPL (SIMPLE_STPNCPY, 0)
-IMPL (STPNCPY, 1)
-
-CHAR *
-SIMPLE_STPNCPY (CHAR *dst, const CHAR *src, size_t n)
-{
- while (n--)
- if ((*dst++ = *src++) == '\0')
- {
- size_t i;
-
- for (i = 0; i < n; ++i)
- dst[i] = '\0';
- return dst - 1;
- }
- return dst;
-}
CHAR *
-STUPID_STPNCPY (CHAR *dst, const CHAR *src, size_t n)
+generic_stpncpy (CHAR *dst, const CHAR *src, size_t n)
{
size_t nc = STRNLEN (src, n);
- size_t i;
-
- for (i = 0; i < nc; ++i)
- dst[i] = src[i];
- for (; i < n; ++i)
- dst[i] = '\0';
- return dst + nc;
+ MEMCPY (dst, src, nc);
+ dst += nc;
+ if (nc == n)
+ return dst;
+ return MEMSET (dst, 0, n - nc);
}
-#undef CHAR
+IMPL (STPNCPY, 1)
+IMPL (generic_stpncpy, 0)
+
#include "bench-strncpy.c"
diff --git a/benchtests/bench-strcasecmp.c b/benchtests/bench-strcasecmp.c
index fa545b9f32..51bf2c870c 100644
--- a/benchtests/bench-strcasecmp.c
+++ b/benchtests/bench-strcasecmp.c
@@ -1,5 +1,5 @@
/* Measure strcasecmp functions.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#define TEST_MAIN
@@ -23,9 +23,7 @@
typedef int (*proto_t) (const char *, const char *);
static int simple_strcasecmp (const char *, const char *);
-static int stupid_strcasecmp (const char *, const char *);
-IMPL (stupid_strcasecmp, 0)
IMPL (simple_strcasecmp, 0)
IMPL (strcasecmp, 1)
@@ -41,24 +39,6 @@ simple_strcasecmp (const char *s1, const char *s2)
return ret;
}
-static int
-stupid_strcasecmp (const char *s1, const char *s2)
-{
- size_t ns1 = strlen (s1) + 1, ns2 = strlen (s2) + 1;
- size_t n = ns1 < ns2 ? ns1 : ns2;
- int ret = 0;
-
- while (n--)
- {
- if ((ret = ((unsigned char) tolower (*s1)
- - (unsigned char) tolower (*s2))) != 0)
- break;
- ++s1;
- ++s2;
- }
- return ret;
-}
-
static void
do_one_test (impl_t *impl, const char *s1, const char *s2, int exp_result)
{
diff --git a/benchtests/bench-strcasestr.c b/benchtests/bench-strcasestr.c
index 4337e0c18d..a7342b0efe 100644
--- a/benchtests/bench-strcasestr.c
+++ b/benchtests/bench-strcasestr.c
@@ -1,5 +1,5 @@
/* Measure strcasestr functions.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_MAIN
#define TEST_NAME "strcasestr"
@@ -27,33 +27,8 @@
#define __strnlen strnlen
#include "../string/strcasestr.c"
-
-static char *
-stupid_strcasestr (const char *s1, const char *s2)
-{
- ssize_t s1len = strlen (s1);
- ssize_t s2len = strlen (s2);
-
- if (s2len > s1len)
- return NULL;
-
- for (ssize_t i = 0; i <= s1len - s2len; ++i)
- {
- size_t j;
- for (j = 0; j < s2len; ++j)
- if (tolower (s1[i + j]) != tolower (s2[j]))
- break;
- if (j == s2len)
- return (char *) s1 + i;
- }
-
- return NULL;
-}
-
-
typedef char *(*proto_t) (const char *, const char *);
-IMPL (stupid_strcasestr, 0)
IMPL (simple_strcasestr, 0)
IMPL (strcasestr, 1)
@@ -61,7 +36,7 @@ IMPL (strcasestr, 1)
static void
do_one_test (impl_t *impl, const char *s1, const char *s2, char *exp_result)
{
- size_t i, iters = INNER_LOOP_ITERS;
+ size_t i, iters = INNER_LOOP_ITERS_SMALL;
timing_t start, stop, cur;
TIMING_NOW (start);
diff --git a/benchtests/bench-strcat.c b/benchtests/bench-strcat.c
index 9930188e31..bec2be2d6e 100644
--- a/benchtests/bench-strcat.c
+++ b/benchtests/bench-strcat.c
@@ -1,5 +1,5 @@
/* Measure strcat functions.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,58 +14,44 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_MAIN
#ifndef WIDE
# define TEST_NAME "strcat"
#else
# define TEST_NAME "wcscat"
+# define generic_strcat generic_wcscat
#endif /* WIDE */
#include "bench-string.h"
+#define BIG_CHAR MAX_CHAR
+
#ifndef WIDE
-# define STRCAT strcat
-# define CHAR char
# define sfmt "s"
-# define SIMPLE_STRCAT simple_strcat
-# define STRLEN strlen
-# define STRCMP strcmp
-# define BIG_CHAR CHAR_MAX
# define SMALL_CHAR 127
#else
-# include <wchar.h>
-# define STRCAT wcscat
-# define CHAR wchar_t
# define sfmt "ls"
-# define SIMPLE_STRCAT simple_wcscat
-# define STRLEN wcslen
-# define STRCMP wcscmp
-# define BIG_CHAR WCHAR_MAX
# define SMALL_CHAR 1273
#endif /* WIDE */
typedef CHAR *(*proto_t) (CHAR *, const CHAR *);
-CHAR *SIMPLE_STRCAT (CHAR *, const CHAR *);
-
-IMPL (SIMPLE_STRCAT, 0)
-IMPL (STRCAT, 1)
CHAR *
-SIMPLE_STRCAT (CHAR *dst, const CHAR *src)
+generic_strcat (CHAR *dst, const CHAR *src)
{
- CHAR *ret = dst;
- while (*dst++ != '\0');
- --dst;
- while ((*dst++ = *src++) != '\0');
- return ret;
+ STRCPY (dst + STRLEN (dst), src);
+ return dst;
}
+IMPL (STRCAT, 1)
+IMPL (generic_strcat, 0)
+
static void
do_one_test (impl_t *impl, CHAR *dst, const CHAR *src)
{
- size_t k = STRLEN (dst), i, iters = INNER_LOOP_ITERS;
+ size_t k = STRLEN (dst), i, iters = INNER_LOOP_ITERS_LARGE;
timing_t start, stop, cur;
if (CALL (impl, dst, src) != dst)
diff --git a/benchtests/bench-strchr.c b/benchtests/bench-strchr.c
index 56d58fcd51..e82e1484e7 100644
--- a/benchtests/bench-strchr.c
+++ b/benchtests/bench-strchr.c
@@ -1,5 +1,5 @@
/* Measure STRCHR functions.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_MAIN
#ifndef WIDE
@@ -32,35 +32,24 @@
#endif /* WIDE */
#include "bench-string.h"
+#define BIG_CHAR MAX_CHAR
+
#ifndef WIDE
# ifdef USE_FOR_STRCHRNUL
+# undef STRCHR
# define STRCHR strchrnul
-# define stupid_STRCHR stupid_STRCHRNUL
# define simple_STRCHR simple_STRCHRNUL
-# else
-# define STRCHR strchr
# endif /* !USE_FOR_STRCHRNUL */
-# define STRLEN strlen
-# define CHAR char
-# define BIG_CHAR CHAR_MAX
# define MIDDLE_CHAR 127
# define SMALL_CHAR 23
-# define UCHAR unsigned char
#else
-# include <wchar.h>
# ifdef USE_FOR_STRCHRNUL
+# undef STRCHR
# define STRCHR wcschrnul
-# define stupid_STRCHR stupid_WCSCHRNUL
# define simple_STRCHR simple_WCSCHRNUL
-# else
-# define STRCHR wcschr
# endif /* !USE_FOR_STRCHRNUL */
-# define STRLEN wcslen
-# define CHAR wchar_t
-# define BIG_CHAR WCHAR_MAX
# define MIDDLE_CHAR 1121
# define SMALL_CHAR 851
-# define UCHAR wchar_t
#endif /* WIDE */
#ifdef USE_FOR_STRCHRNUL
@@ -81,25 +70,13 @@ simple_STRCHR (const CHAR *s, int c)
return (CHAR *) s;
}
-CHAR *
-stupid_STRCHR (const CHAR *s, int c)
-{
- size_t n = STRLEN (s) + 1;
-
- while (n--)
- if (*s++ == (CHAR) c)
- return (CHAR *) s - 1;
- return NULLRET ((CHAR *) s - 1);
-}
-
-IMPL (stupid_STRCHR, 0)
IMPL (simple_STRCHR, 0)
IMPL (STRCHR, 1)
static void
do_one_test (impl_t *impl, const CHAR *s, int c, const CHAR *exp_res)
{
- size_t i, iters = INNER_LOOP_ITERS;
+ size_t i, iters = INNER_LOOP_ITERS_LARGE;
timing_t start, stop, cur;
TIMING_NOW (start);
diff --git a/benchtests/bench-strchrnul.c b/benchtests/bench-strchrnul.c
index 714a6e6b92..a0c1c28104 100644
--- a/benchtests/bench-strchrnul.c
+++ b/benchtests/bench-strchrnul.c
@@ -1,5 +1,5 @@
/* Measure strchrnul function.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define USE_FOR_STRCHRNUL 1
#include "bench-strchr.c"
diff --git a/benchtests/bench-strcmp.c b/benchtests/bench-strcmp.c
index 325cfc5a48..581c410b03 100644
--- a/benchtests/bench-strcmp.c
+++ b/benchtests/bench-strcmp.c
@@ -1,5 +1,5 @@
/* Measure strcmp and wcscmp functions.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_MAIN
#ifdef WIDE
@@ -25,24 +25,11 @@
#include "bench-string.h"
#ifdef WIDE
-# include <wchar.h>
-
# define L(str) L##str
-# define STRCMP wcscmp
-# define STRCPY wcscpy
-# define STRLEN wcslen
-# define MEMCPY wmemcpy
# define SIMPLE_STRCMP simple_wcscmp
-# define STUPID_STRCMP stupid_wcscmp
-# define CHAR wchar_t
-# define UCHAR wchar_t
-# define CHARBYTES 4
# define CHARBYTESLOG 2
-# define CHARALIGN __alignof__ (CHAR)
# define MIDCHAR 0x7fffffff
# define LARGECHAR 0xfffffffe
-# define CHAR__MAX WCHAR_MAX
-# define CHAR__MIN WCHAR_MIN
/* Wcscmp uses signed semantics for comparison, not unsigned */
/* Avoid using substraction since possible overflow */
@@ -63,44 +50,14 @@ simple_wcscmp (const wchar_t *s1, const wchar_t *s2)
return c1 < c2 ? -1 : 1;
}
-int
-stupid_wcscmp (const wchar_t *s1, const wchar_t *s2)
-{
- size_t ns1 = wcslen (s1) + 1;
- size_t ns2 = wcslen (s2) + 1;
- size_t n = ns1 < ns2 ? ns1 : ns2;
- int ret = 0;
-
- wchar_t c1, c2;
-
- while (n--) {
- c1 = *s1++;
- c2 = *s2++;
- if ((ret = c1 < c2 ? -1 : c1 == c2 ? 0 : 1) != 0)
- break;
- }
- return ret;
-}
-
#else
# include <limits.h>
# define L(str) str
-# define STRCMP strcmp
-# define STRCPY strcpy
-# define STRLEN strlen
-# define MEMCPY memcpy
# define SIMPLE_STRCMP simple_strcmp
-# define STUPID_STRCMP stupid_strcmp
-# define CHAR char
-# define UCHAR unsigned char
-# define CHARBYTES 1
# define CHARBYTESLOG 0
-# define CHARALIGN 1
# define MIDCHAR 0x7f
# define LARGECHAR 0xfe
-# define CHAR__MAX CHAR_MAX
-# define CHAR__MIN CHAR_MIN
/* Strcmp uses unsigned semantics for comparison. */
int
@@ -112,26 +69,12 @@ simple_strcmp (const char *s1, const char *s2)
return ret;
}
-int
-stupid_strcmp (const char *s1, const char *s2)
-{
- size_t ns1 = strlen (s1) + 1;
- size_t ns2 = strlen (s2) + 1;
- size_t n = ns1 < ns2 ? ns1 : ns2;
- int ret = 0;
-
- while (n--)
- if ((ret = *(unsigned char *) s1++ - *(unsigned char *) s2++) != 0)
- break;
- return ret;
-}
#endif
# include "json-lib.h"
typedef int (*proto_t) (const CHAR *, const CHAR *);
-IMPL (STUPID_STRCMP, 1)
IMPL (SIMPLE_STRCMP, 1)
IMPL (STRCMP, 1)
@@ -140,7 +83,7 @@ do_one_test (json_ctx_t *json_ctx, impl_t *impl,
const CHAR *s1, const CHAR *s2,
int exp_result)
{
- size_t i, iters = INNER_LOOP_ITERS;
+ size_t i, iters = INNER_LOOP_ITERS8;
timing_t start, stop, cur;
TIMING_NOW (start);
diff --git a/benchtests/bench-strcoll.c b/benchtests/bench-strcoll.c
index ac7f32fc6a..3104af7dbe 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <fcntl.h>
diff --git a/benchtests/bench-strcpy.c b/benchtests/bench-strcpy.c
index c0435a895c..052a6bd5ca 100644
--- a/benchtests/bench-strcpy.c
+++ b/benchtests/bench-strcpy.c
@@ -1,5 +1,5 @@
/* Measure strcpy functions.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,27 +14,16 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+
+#define BIG_CHAR MAX_CHAR
#ifdef WIDE
-# include <wchar.h>
-# define CHAR wchar_t
-# define UCHAR wchar_t
# define sfmt "ls"
-# define BIG_CHAR WCHAR_MAX
# define SMALL_CHAR 1273
-# define STRCMP wcscmp
-# define MEMCMP wmemcmp
-# define MEMSET wmemset
#else
-# define CHAR char
-# define UCHAR unsigned char
# define sfmt "s"
-# define BIG_CHAR CHAR_MAX
# define SMALL_CHAR 127
-# define STRCMP strcmp
-# define MEMCMP memcmp
-# define MEMSET memset
#endif
#ifndef STRCPY_RESULT
@@ -44,28 +33,19 @@
# define TEST_NAME "strcpy"
# else
# define TEST_NAME "wcscpy"
+# define generic_strcpy generic_wcscpy
# endif
-# include "bench-string.h"
-# ifndef WIDE
-# define SIMPLE_STRCPY simple_strcpy
-# define STRCPY strcpy
-# else
-# define SIMPLE_STRCPY simple_wcscpy
-# define STRCPY wcscpy
-# endif
-
-CHAR *SIMPLE_STRCPY (CHAR *, const CHAR *);
-
-IMPL (SIMPLE_STRCPY, 0)
-IMPL (STRCPY, 1)
+#include "bench-string.h"
CHAR *
-SIMPLE_STRCPY (CHAR *dst, const CHAR *src)
+generic_strcpy (CHAR *dst, const CHAR *src)
{
- CHAR *ret = dst;
- while ((*dst++ = *src++) != '\0');
- return ret;
+ return MEMCPY (dst, src, STRLEN (src) + 1);
}
+
+IMPL (STRCPY, 1)
+IMPL (generic_strcpy, 0)
+
#endif
typedef CHAR *(*proto_t) (CHAR *, const CHAR *);
@@ -115,11 +95,11 @@ do_test (size_t align1, size_t align2, size_t len, int max_char)
but in wchar_ts, in bytes it will equal to align * (sizeof (wchar_t))
len for wcschr here isn't in bytes but it's number of wchar_t symbols. */
align1 &= 7;
- if ((align1 + len) * sizeof(CHAR) >= page_size)
+ if ((align1 + len) * sizeof (CHAR) >= page_size)
return;
align2 &= 7;
- if ((align2 + len) * sizeof(CHAR) >= page_size)
+ if ((align2 + len) * sizeof (CHAR) >= page_size)
return;
s1 = (CHAR *) (buf1) + align1;
@@ -129,7 +109,8 @@ do_test (size_t align1, size_t align2, size_t len, int max_char)
s1[i] = 32 + 23 * i % (max_char - 32);
s1[len] = 0;
- printf ("Length %4zd, alignments in bytes %2zd/%2zd:", len, align1 * sizeof(CHAR), align2 * sizeof(CHAR));
+ printf ("Length %4zd, alignments in bytes %2zd/%2zd:", len,
+ align1 * sizeof (CHAR), align2 * sizeof (CHAR));
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, s2, s1, len);
diff --git a/benchtests/bench-strcpy_chk.c b/benchtests/bench-strcpy_chk.c
index 953b5d6356..d6b7fd51d5 100644
--- a/benchtests/bench-strcpy_chk.c
+++ b/benchtests/bench-strcpy_chk.c
@@ -1,5 +1,5 @@
/* Measure __strcpy_chk functions.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef STRCPY_RESULT
# define STRCPY_RESULT(dst, len) dst
@@ -77,7 +77,7 @@ do_one_test (impl_t *impl, char *dst, const char *src,
size_t len, size_t dlen)
{
char *res;
- size_t i, iters = INNER_LOOP_ITERS;
+ size_t i, iters = INNER_LOOP_ITERS8;
timing_t start, stop, cur;
if (dlen <= len)
diff --git a/benchtests/bench-strcspn.c b/benchtests/bench-strcspn.c
index 9b9f7035a9..49404e4766 100644
--- a/benchtests/bench-strcspn.c
+++ b/benchtests/bench-strcspn.c
@@ -1,5 +1,5 @@
/* Measure strcspn functions.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define STRPBRK_RESULT(s, pos) (pos)
#define RES_TYPE size_t
@@ -27,25 +27,14 @@
#include "bench-string.h"
#ifndef WIDE
-# define STRCSPN strcspn
-# define CHAR char
# define SIMPLE_STRCSPN simple_strcspn
-# define STUPID_STRCSPN stupid_strcspn
-# define STRLEN strlen
#else
-# include <wchar.h>
-# define STRCSPN wcscspn
-# define CHAR wchar_t
# define SIMPLE_STRCSPN simple_wcscspn
-# define STUPID_STRCSPN stupid_wcscspn
-# define STRLEN wcslen
#endif /* WIDE */
typedef size_t (*proto_t) (const CHAR *, const CHAR *);
size_t SIMPLE_STRCSPN (const CHAR *, const CHAR *);
-size_t STUPID_STRCSPN (const CHAR *, const CHAR *);
-IMPL (STUPID_STRCSPN, 0)
IMPL (SIMPLE_STRCSPN, 0)
IMPL (STRCSPN, 1)
@@ -62,19 +51,4 @@ SIMPLE_STRCSPN (const CHAR *s, const CHAR *rej)
return s - str - 1;
}
-size_t
-STUPID_STRCSPN (const CHAR *s, const CHAR *rej)
-{
- size_t ns = STRLEN (s), nrej = STRLEN (rej);
- size_t i, j;
-
- for (i = 0; i < ns; ++i)
- for (j = 0; j < nrej; ++j)
- if (s[i] == rej[j])
- return i;
- return i;
-}
-
-#undef CHAR
-#undef STRLEN
#include "bench-strpbrk.c"
diff --git a/benchtests/bench-string.h b/benchtests/bench-string.h
index 94aaafdaf2..94e323710d 100644
--- a/benchtests/bench-string.h
+++ b/benchtests/bench-string.h
@@ -1,5 +1,5 @@
/* Measure string and memory functions.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <getopt.h>
#include <sys/cdefs.h>
@@ -65,6 +65,56 @@ extern impl_t __start_impls[], __stop_impls[];
# define GLRO(x) _##x
# include "bench-timing.h"
+# ifndef WIDE
+# define CHAR char
+# define UCHAR unsigned char
+# define CHARBYTES 1
+# define MAX_CHAR CHAR_MAX
+# define MEMCHR memchr
+# define MEMCMP memcmp
+# define MEMCPY memcpy
+# define MEMSET memset
+# define STRCAT strcat
+# define STRLEN strlen
+# define STRCMP strcmp
+# define STRCHR strchr
+# define STRCPY strcpy
+# define STRNLEN strnlen
+# define STRCSPN strcspn
+# define STRNCAT strncat
+# define STRNCMP strncmp
+# define STRNCPY strncpy
+# define STRPBRK strpbrk
+# define STRRCHR strrchr
+# define STRSPN strspn
+# define STPCPY stpcpy
+# define STPNCPY stpncpy
+# else
+# include <wchar.h>
+# define CHAR wchar_t
+# define UCHAR wchar_t
+# define CHARBYTES 4
+# define MAX_CHAR WCHAR_MAX
+# define MEMCHR wmemchr
+# define MEMCMP wmemcmp
+# define MEMCPY wmemcpy
+# define MEMSET wmemset
+# define STRCAT wcscat
+# define STRLEN wcslen
+# define STRCMP wcscmp
+# define STRCHR wcschr
+# define STRCPY wcscpy
+# define STRNLEN wcsnlen
+# define STRCSPN wcscspn
+# define STRNCAT wcsncat
+# define STRNCMP wcsncmp
+# define STRNCPY wcsncpy
+# define STRPBRK wcspbrk
+# define STRRCHR wcsrchr
+# define STRSPN wcsspn
+# define STPCPY wcpcpy
+# define STPNCPY wcpncpy
+# endif /* WIDE */
# define TEST_FUNCTION test_main
# ifndef TIMEOUT
@@ -74,12 +124,14 @@ extern impl_t __start_impls[], __stop_impls[];
# define OPT_RANDOM 10001
# define OPT_SEED 10002
-# define INNER_LOOP_ITERS 64
+# define INNER_LOOP_ITERS 8192
+# define INNER_LOOP_ITERS8 32768
+# define INNER_LOOP_ITERS_LARGE 131072
+# define INNER_LOOP_ITERS_MEDIUM 2048
+# define INNER_LOOP_ITERS_SMALL 256
-unsigned char *buf1, *buf2;
int ret, do_srandom;
unsigned int seed;
-size_t page_size;
# ifndef ITERATIONS
size_t iterations = 100000;
@@ -108,7 +160,7 @@ cmdline_process_function (int c)
case OPT_RANDOM:
{
int fdr = open ("/dev/urandom", O_RDONLY);
- if (fdr < 0 || read (fdr, &seed, sizeof(seed)) != sizeof (seed))
+ if (fdr < 0 || read (fdr, &seed, sizeof (seed)) != sizeof (seed))
seed = time (NULL);
if (fdr >= 0)
close (fdr);
@@ -182,47 +234,57 @@ static impl_t *impl_array;
# define BUF1PAGES 1
# endif
+unsigned char *buf1, *buf2;
+static size_t buf1_size, buf2_size, page_size;
+
static void
-alloc_bufs (void)
+init_sizes (void)
{
page_size = 2 * getpagesize ();
# ifdef MIN_PAGE_SIZE
if (page_size < MIN_PAGE_SIZE)
page_size = MIN_PAGE_SIZE;
# endif
- buf1 = mmap (0, (BUF1PAGES + 1) * page_size, PROT_READ | PROT_WRITE,
- MAP_PRIVATE | MAP_ANON, -1, 0);
- if (buf1 == MAP_FAILED)
- error (EXIT_FAILURE, errno, "mmap failed for buf1");
- if (mprotect (buf1 + BUF1PAGES * page_size, page_size, PROT_NONE))
- error (EXIT_FAILURE, errno, "mprotect failed for buf1");
- buf2 = mmap (0, 2 * page_size, PROT_READ | PROT_WRITE,
- MAP_PRIVATE | MAP_ANON, -1, 0);
- if (buf2 == MAP_FAILED)
- error (EXIT_FAILURE, errno, "mmap failed for buf2");
- if (mprotect (buf2 + page_size, page_size, PROT_NONE))
- error (EXIT_FAILURE, errno, "mprotect failed for buf2");
+
+ buf1_size = BUF1PAGES * page_size;
+ buf2_size = page_size;
}
static void
-__attribute__ ((unused))
-realloc_bufs (void)
+exit_error (const char *id, const char *func)
{
- int ret = 0;
+ error (EXIT_FAILURE, errno, "%s: %s failed", id, func);
+}
- if (buf1)
- ret = munmap (buf1, (BUF1PAGES + 1) * page_size);
+/* Allocate a buffer of size SIZE with a guard page at the end. */
+static void
+alloc_buf (const char *id, size_t size, unsigned char **retbuf)
+{
+ size_t alloc_size = size + page_size;
- if (ret != 0)
- error (EXIT_FAILURE, errno, "munmap failed for buf1");
+ if (*retbuf != NULL)
+ {
+ int ret = munmap (*retbuf, alloc_size);
+ if (ret != 0)
+ exit_error (id, "munmap");
+ }
- if (buf2)
- ret = munmap (buf2, 2 * page_size);
+ unsigned char *buf = mmap (0, alloc_size, PROT_READ | PROT_WRITE,
+ MAP_PRIVATE | MAP_ANON, -1, 0);
- if (ret != 0)
- error (EXIT_FAILURE, errno, "munmap failed for buf2");
+ if (buf == MAP_FAILED)
+ exit_error (id, "mmap");
+ if (mprotect (buf + size, page_size, PROT_NONE))
+ exit_error (id, "mprotect");
- alloc_bufs ();
+ *retbuf = buf;
+}
+
+static void
+alloc_bufs (void)
+{
+ alloc_buf ("buf1", buf1_size, &buf1);
+ alloc_buf ("buf2", buf2_size, &buf2);
}
static void
@@ -234,6 +296,7 @@ test_init (void)
/ sizeof func_list[0]));
# endif
+ init_sizes ();
alloc_bufs ();
if (do_srandom)
diff --git a/benchtests/bench-strlen.c b/benchtests/bench-strlen.c
index 215b5bb6e1..70beaac455 100644
--- a/benchtests/bench-strlen.c
+++ b/benchtests/bench-strlen.c
@@ -1,5 +1,5 @@
/* Measure STRLEN functions.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,55 +14,41 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_MAIN
#ifndef WIDE
# define TEST_NAME "strlen"
#else
# define TEST_NAME "wcslen"
+# define generic_strlen generic_wcslen
+# define memchr_strlen wcschr_wcslen
#endif
#include "bench-string.h"
-#ifndef WIDE
-# define STRLEN strlen
-# define CHAR char
-# define MAX_CHAR CHAR_MAX
-#else
-# include <wchar.h>
-# define STRLEN wcslen
-# define CHAR wchar_t
-# define MAX_CHAR WCHAR_MAX
-#endif
+#include "json-lib.h"
typedef size_t (*proto_t) (const CHAR *);
-size_t
-simple_STRLEN (const CHAR *s)
-{
- const CHAR *p;
+size_t generic_strlen (const CHAR *);
+size_t memchr_strlen (const CHAR *);
- for (p = s; *p; ++p);
- return p - s;
-}
+IMPL (memchr_strlen, 0)
+IMPL (generic_strlen, 0)
-#ifndef WIDE
size_t
-builtin_strlen (const CHAR *p)
+memchr_strlen (const CHAR *p)
{
- return __builtin_strlen (p);
+ return (const CHAR *)MEMCHR (p, 0, PTRDIFF_MAX) - p;
}
-IMPL (builtin_strlen, 0)
-#endif
-IMPL (simple_STRLEN, 0)
IMPL (STRLEN, 1)
static void
-do_one_test (impl_t *impl, const CHAR *s, size_t exp_len)
+do_one_test (json_ctx_t *json_ctx, impl_t *impl, const CHAR *s, size_t exp_len)
{
- size_t len = CALL (impl, s), i, iters = INNER_LOOP_ITERS;
+ size_t len = CALL (impl, s), i, iters = INNER_LOOP_ITERS_LARGE;
timing_t start, stop, cur;
if (len != exp_len)
@@ -82,61 +68,95 @@ do_one_test (impl_t *impl, const CHAR *s, size_t exp_len)
TIMING_DIFF (cur, start, stop);
- TIMING_PRINT_MEAN ((double) cur, (double) iters);
+ json_element_double (json_ctx, (double) cur / (double) iters);
}
static void
-do_test (size_t align, size_t len)
+do_test (json_ctx_t *json_ctx, size_t align, size_t len)
{
size_t i;
align &= 63;
- if (align + sizeof(CHAR) * len >= page_size)
+ if (align + sizeof (CHAR) * len >= page_size)
return;
- CHAR *buf = (CHAR *) (buf1);
-
- for (i = 0; i < len; ++i)
- buf[align + i] = 1 + 11111 * i % MAX_CHAR;
- buf[align + len] = 0;
+ json_element_object_begin (json_ctx);
+ json_attr_uint (json_ctx, "length", len);
+ json_attr_uint (json_ctx, "alignment", align);
+ json_array_begin (json_ctx, "timings");
- printf ("Length %4zd, alignment %2zd:", len, align);
FOR_EACH_IMPL (impl, 0)
- do_one_test (impl, (CHAR *) (buf + align), len);
+ {
+ CHAR *buf = (CHAR *) (buf1);
+
+ for (i = 0; i < len; ++i)
+ buf[align + i] = 1 + 11111 * i % MAX_CHAR;
+ buf[align + len] = 0;
- putchar ('\n');
+ do_one_test (json_ctx, impl, (CHAR *) (buf + align), len);
+ alloc_bufs ();
+ }
+
+ json_array_end (json_ctx);
+ json_element_object_end (json_ctx);
}
int
test_main (void)
{
+ json_ctx_t json_ctx;
size_t i;
test_init ();
- printf ("%20s", "");
+ json_init (&json_ctx, 0, stdout);
+
+ json_document_begin (&json_ctx);
+ json_attr_string (&json_ctx, "timing_type", TIMING_TYPE);
+
+ json_attr_object_begin (&json_ctx, "functions");
+ json_attr_object_begin (&json_ctx, TEST_NAME);
+ json_attr_string (&json_ctx, "bench-variant", "");
+
+ json_array_begin (&json_ctx, "ifuncs");
FOR_EACH_IMPL (impl, 0)
- printf ("\t%s", impl->name);
- putchar ('\n');
+ json_element_string (&json_ctx, impl->name);
+ json_array_end (&json_ctx);
+ json_array_begin (&json_ctx, "results");
/* Checking with only 4 * N alignments for wcslen, other alignments are wrong for wchar_t type arrays*/
for (i = 1; i < 8; ++i)
{
- do_test (sizeof(CHAR) * i, i);
- do_test (0, i);
+ do_test (&json_ctx, sizeof (CHAR) * i, i);
+ do_test (&json_ctx, 0, i);
}
for (i = 2; i <= 12; ++i)
{
- do_test (0, 1 << i);
- do_test (sizeof(CHAR) * 7, 1 << i);
- do_test (sizeof(CHAR) * i, 1 << i);
- do_test (sizeof(CHAR) * i, (size_t)((1 << i) / 1.5));
+ do_test (&json_ctx, 0, 1 << i);
+ do_test (&json_ctx, sizeof (CHAR) * 7, 1 << i);
+ do_test (&json_ctx, sizeof (CHAR) * i, 1 << i);
+ do_test (&json_ctx, sizeof (CHAR) * i, (size_t)((1 << i) / 1.5));
}
+ json_array_end (&json_ctx);
+ json_attr_object_end (&json_ctx);
+ json_attr_object_end (&json_ctx);
+ json_document_end (&json_ctx);
+
return ret;
}
#include <support/test-driver.c>
+
+#define libc_hidden_builtin_def(X)
+#ifndef WIDE
+# undef STRLEN
+# define STRLEN generic_strlen
+# include <string/strlen.c>
+#else
+# define WCSLEN generic_strlen
+# include <wcsmbs/wcslen.c>
+#endif
diff --git a/benchtests/bench-strncasecmp.c b/benchtests/bench-strncasecmp.c
index 37eb082323..c2db4270eb 100644
--- a/benchtests/bench-strncasecmp.c
+++ b/benchtests/bench-strncasecmp.c
@@ -1,5 +1,5 @@
/* Measure strncasecmp functions.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#define TEST_MAIN
@@ -23,9 +23,7 @@
typedef int (*proto_t) (const char *, const char *, size_t);
static int simple_strncasecmp (const char *, const char *, size_t);
-static int stupid_strncasecmp (const char *, const char *, size_t);
-IMPL (stupid_strncasecmp, 0)
IMPL (simple_strncasecmp, 0)
IMPL (strncasecmp, 1)
@@ -48,27 +46,6 @@ simple_strncasecmp (const char *s1, const char *s2, size_t n)
return ret;
}
-static int
-stupid_strncasecmp (const char *s1, const char *s2, size_t max)
-{
- size_t ns1 = strlen (s1) + 1;
- size_t ns2 = strlen (s2) + 1;
- size_t n = ns1 < ns2 ? ns1 : ns2;
- if (n > max)
- n = max;
- int ret = 0;
-
- while (n--)
- {
- if ((ret = ((unsigned char) tolower (*s1)
- - (unsigned char) tolower (*s2))) != 0)
- break;
- ++s1;
- ++s2;
- }
- return ret;
-}
-
static void
do_one_test (impl_t *impl, const char *s1, const char *s2, size_t n,
int exp_result)
diff --git a/benchtests/bench-strncat.c b/benchtests/bench-strncat.c
index a47f0db286..21a811fd8a 100644
--- a/benchtests/bench-strncat.c
+++ b/benchtests/bench-strncat.c
@@ -1,5 +1,5 @@
/* Measure strncat functions.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,61 +14,44 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_MAIN
#ifndef WIDE
# define TEST_NAME "strncat"
#else
# define TEST_NAME "wcsncat"
+# define generic_strncat generic_wcsncat
#endif /* WIDE */
#include "bench-string.h"
+#define BIG_CHAR MAX_CHAR
+
#ifndef WIDE
-# define STRNCAT strncat
-# define CHAR char
-# define SIMPLE_STRNCAT simple_strncat
-# define STUPID_STRNCAT stupid_strncat
-# define STRLEN strlen
-# define MEMCMP memcmp
-# define BIG_CHAR CHAR_MAX
# define SMALL_CHAR 127
#else
-# include <wchar.h>
-# define STRNCAT wcsncat
-# define CHAR wchar_t
-# define SIMPLE_STRNCAT simple_wcsncat
-# define STUPID_STRNCAT stupid_wcsncat
-# define STRLEN wcslen
-# define MEMCMP wmemcmp
-# define BIG_CHAR WCHAR_MAX
# define SMALL_CHAR 1273
#endif /* WIDE */
typedef CHAR *(*proto_t) (CHAR *, const CHAR *, size_t);
-CHAR *STUPID_STRNCAT (CHAR *, const CHAR *, size_t);
-CHAR *SIMPLE_STRNCAT (CHAR *, const CHAR *, size_t);
-
-IMPL (STUPID_STRNCAT, 0)
-IMPL (STRNCAT, 2)
CHAR *
-STUPID_STRNCAT (CHAR *dst, const CHAR *src, size_t n)
+generic_strncat (CHAR *dst, const CHAR *src, size_t n)
{
- CHAR *ret = dst;
- while (*dst++ != '\0');
- --dst;
- while (n--)
- if ((*dst++ = *src++) == '\0')
- return ret;
- *dst = '\0';
- return ret;
+ CHAR *end = dst + STRLEN (dst);
+ n = STRNLEN (src, n);
+ end[n] = 0;
+ MEMCPY (end, src, n);
+ return dst;
}
+IMPL (STRNCAT, 2)
+IMPL (generic_strncat, 0)
+
static void
do_one_test (impl_t *impl, CHAR *dst, const CHAR *src, size_t n)
{
- size_t k = STRLEN (dst), i, iters = INNER_LOOP_ITERS;
+ size_t k = STRLEN (dst), i, iters = INNER_LOOP_ITERS8;
timing_t start, stop, cur;
if (CALL (impl, dst, src, n) != dst)
diff --git a/benchtests/bench-strncmp.c b/benchtests/bench-strncmp.c
index 97dc39069d..316b01cc46 100644
--- a/benchtests/bench-strncmp.c
+++ b/benchtests/bench-strncmp.c
@@ -1,5 +1,5 @@
/* Measure strncmp functions.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_MAIN
#ifdef WIDE
@@ -26,14 +26,8 @@
#include "json-lib.h"
#ifdef WIDE
-# include <wchar.h>
-
# define L(str) L##str
-# define STRNCMP wcsncmp
# define SIMPLE_STRNCMP simple_wcsncmp
-# define STUPID_STRNCMP stupid_wcsncmp
-# define CHAR wchar_t
-# define CHARBYTES 4
/* Wcsncmp uses signed semantics for comparison, not unsigned.
Avoid using substraction since possible overflow. */
@@ -52,32 +46,9 @@ simple_wcsncmp (const CHAR *s1, const CHAR *s2, size_t n)
return 0;
}
-int
-stupid_wcsncmp (const CHAR *s1, const CHAR *s2, size_t n)
-{
- wchar_t c1, c2;
- size_t ns1 = wcsnlen (s1, n) + 1, ns2 = wcsnlen (s2, n) + 1;
-
- n = ns1 < n ? ns1 : n;
- n = ns2 < n ? ns2 : n;
-
- while (n--)
- {
- c1 = *s1++;
- c2 = *s2++;
- if (c1 != c2)
- return c1 > c2 ? 1 : -1;
- }
- return 0;
-}
-
#else
# define L(str) str
-# define STRNCMP strncmp
# define SIMPLE_STRNCMP simple_strncmp
-# define STUPID_STRNCMP stupid_strncmp
-# define CHAR char
-# define CHARBYTES 1
/* Strncmp uses unsigned semantics for comparison. */
int
@@ -90,23 +61,10 @@ simple_strncmp (const char *s1, const char *s2, size_t n)
return ret;
}
-int
-stupid_strncmp (const char *s1, const char *s2, size_t n)
-{
- size_t ns1 = strnlen (s1, n) + 1, ns2 = strnlen (s2, n) + 1;
- int ret = 0;
-
- n = ns1 < n ? ns1 : n;
- n = ns2 < n ? ns2 : n;
- while (n-- && (ret = *(unsigned char *) s1++ - *(unsigned char *) s2++) == 0);
- return ret;
-}
-
#endif /* !WIDE */
typedef int (*proto_t) (const CHAR *, const CHAR *, size_t);
-IMPL (STUPID_STRNCMP, 0)
IMPL (SIMPLE_STRNCMP, 0)
IMPL (STRNCMP, 1)
@@ -115,7 +73,7 @@ static void
do_one_test (json_ctx_t *json_ctx, impl_t *impl, const CHAR *s1, const CHAR
*s2, size_t n, int exp_result)
{
- size_t i, iters = INNER_LOOP_ITERS;
+ size_t i, iters = INNER_LOOP_ITERS8;
timing_t start, stop, cur;
TIMING_NOW (start);
@@ -150,7 +108,7 @@ do_test_limit (json_ctx_t *json_ctx, size_t align1, size_t align2, size_t len,
FOR_EACH_IMPL (impl, 0)
{
- realloc_bufs ();
+ alloc_bufs ();
s1 = (CHAR *) (buf1 + page_size - n * CHARBYTES);
s2 = (CHAR *) (buf2 + page_size - n * CHARBYTES);
@@ -207,7 +165,7 @@ do_test (json_ctx_t *json_ctx, size_t align1, size_t align2, size_t len, size_t
FOR_EACH_IMPL (impl, 0)
{
- realloc_bufs ();
+ alloc_bufs ();
s1 = (CHAR *) (buf1 + align1);
s2 = (CHAR *) (buf2 + align2);
diff --git a/benchtests/bench-strncpy.c b/benchtests/bench-strncpy.c
index 62daef6b84..44b78c057b 100644
--- a/benchtests/bench-strncpy.c
+++ b/benchtests/bench-strncpy.c
@@ -1,5 +1,5 @@
/* Measure strncpy functions.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,28 +14,16 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+
+#define BIG_CHAR MAX_CHAR
#ifdef WIDE
-# include <wchar.h>
-# define CHAR wchar_t
-# define UCHAR wchar_t
-# define BIG_CHAR WCHAR_MAX
# define SMALL_CHAR 1273
-# define MEMCMP wmemcmp
-# define MEMSET wmemset
-# define STRNLEN wcsnlen
#else
-# define CHAR char
-# define UCHAR unsigned char
-# define BIG_CHAR CHAR_MAX
# define SMALL_CHAR 127
-# define MEMCMP memcmp
-# define MEMSET memset
-# define STRNLEN strnlen
#endif /* !WIDE */
-
#ifndef STRNCPY_RESULT
# define STRNCPY_RESULT(dst, len, n) dst
# define TEST_MAIN
@@ -43,51 +31,22 @@
# define TEST_NAME "strncpy"
# else
# define TEST_NAME "wcsncpy"
+# define generic_strncpy generic_wcsncpy
# endif /* WIDE */
# include "bench-string.h"
-# ifndef WIDE
-# define SIMPLE_STRNCPY simple_strncpy
-# define STUPID_STRNCPY stupid_strncpy
-# define STRNCPY strncpy
-# else
-# define SIMPLE_STRNCPY simple_wcsncpy
-# define STUPID_STRNCPY stupid_wcsncpy
-# define STRNCPY wcsncpy
-# endif /* WIDE */
-
-CHAR *SIMPLE_STRNCPY (CHAR *, const CHAR *, size_t);
-CHAR *STUPID_STRNCPY (CHAR *, const CHAR *, size_t);
-
-IMPL (STUPID_STRNCPY, 0)
-IMPL (SIMPLE_STRNCPY, 0)
-IMPL (STRNCPY, 1)
CHAR *
-SIMPLE_STRNCPY (CHAR *dst, const CHAR *src, size_t n)
+generic_strncpy (CHAR *dst, const CHAR *src, size_t n)
{
- CHAR *ret = dst;
- while (n--)
- if ((*dst++ = *src++) == '\0')
- {
- while (n--)
- *dst++ = '\0';
- return ret;
- }
- return ret;
+ size_t nc = STRNLEN (src, n);
+ if (nc != n)
+ MEMSET (dst + nc, 0, n - nc);
+ return MEMCPY (dst, src, nc);
}
-CHAR *
-STUPID_STRNCPY (CHAR *dst, const CHAR *src, size_t n)
-{
- size_t nc = STRNLEN (src, n);
- size_t i;
+IMPL (STRNCPY, 1)
+IMPL (generic_strncpy, 0)
- for (i = 0; i < nc; ++i)
- dst[i] = src[i];
- for (; i < n; ++i)
- dst[i] = '\0';
- return dst;
-}
#endif /* !STRNCPY_RESULT */
typedef CHAR *(*proto_t) (CHAR *, const CHAR *, size_t);
@@ -95,7 +54,7 @@ typedef CHAR *(*proto_t) (CHAR *, const CHAR *, size_t);
static void
do_one_test (impl_t *impl, CHAR *dst, const CHAR *src, size_t len, size_t n)
{
- size_t i, iters = INNER_LOOP_ITERS;
+ size_t i, iters = INNER_LOOP_ITERS_LARGE * (4 / CHARBYTES);
timing_t start, stop, cur;
if (CALL (impl, dst, src, n) != STRNCPY_RESULT (dst, len, n))
diff --git a/benchtests/bench-strnlen.c b/benchtests/bench-strnlen.c
index 5c10a16e90..fbe7c0e850 100644
--- a/benchtests/bench-strnlen.c
+++ b/benchtests/bench-strnlen.c
@@ -1,5 +1,5 @@
/* Measure strlen functions.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,50 +14,44 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_MAIN
#ifndef WIDE
# define TEST_NAME "strnlen"
#else
# define TEST_NAME "wcsnlen"
+# define generic_strnlen generic_wcsnlen
+# define memchr_strnlen wcschr_wcsnlen
#endif /* WIDE */
#include "bench-string.h"
+#define BIG_CHAR MAX_CHAR
+
#ifndef WIDE
-# define STRNLEN strnlen
-# define CHAR char
-# define BIG_CHAR CHAR_MAX
# define MIDDLE_CHAR 127
-# define SIMPLE_STRNLEN simple_strnlen
#else
-# include <wchar.h>
-# define STRNLEN wcsnlen
-# define CHAR wchar_t
-# define BIG_CHAR WCHAR_MAX
# define MIDDLE_CHAR 1121
-# define SIMPLE_STRNLEN simple_wcsnlen
#endif /* WIDE */
typedef size_t (*proto_t) (const CHAR *, size_t);
-size_t SIMPLE_STRNLEN (const CHAR *, size_t);
-
-IMPL (SIMPLE_STRNLEN, 0)
-IMPL (STRNLEN, 1)
+size_t generic_strnlen (const CHAR *, size_t);
size_t
-SIMPLE_STRNLEN (const CHAR *s, size_t maxlen)
+memchr_strnlen (const CHAR *s, size_t maxlen)
{
- size_t i;
-
- for (i = 0; i < maxlen && s[i]; ++i);
- return i;
+ const CHAR *s1 = MEMCHR (s, 0, maxlen);
+ return (s1 == NULL) ? maxlen : s1 - s;
}
+IMPL (STRNLEN, 1)
+IMPL (memchr_strnlen, 0)
+IMPL (generic_strnlen, 0)
+
static void
do_one_test (impl_t *impl, const CHAR *s, size_t maxlen, size_t exp_len)
{
- size_t len = CALL (impl, s, maxlen), i, iters = INNER_LOOP_ITERS;
+ size_t len = CALL (impl, s, maxlen), i, iters = INNER_LOOP_ITERS_LARGE;
timing_t start, stop, cur;
if (len != exp_len)
@@ -151,3 +145,13 @@ test_main (void)
}
#include <support/test-driver.c>
+
+#define libc_hidden_def(X)
+#ifndef WIDE
+# undef STRNLEN
+# define STRNLEN generic_strnlen
+# include <string/strnlen.c>
+#else
+# define WCSNLEN generic_strnlen
+# include <wcsmbs/wcsnlen.c>
+#endif
diff --git a/benchtests/bench-strpbrk.c b/benchtests/bench-strpbrk.c
index 4217699376..ef96c521b6 100644
--- a/benchtests/bench-strpbrk.c
+++ b/benchtests/bench-strpbrk.c
@@ -1,5 +1,5 @@
/* Measure strpbrk functions.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,20 +14,13 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+
+#define BIG_CHAR MAX_CHAR
#ifndef WIDE
-# define CHAR char
-# define STRLEN strlen
-# define STRCHR strchr
-# define BIG_CHAR CHAR_MAX
# define SMALL_CHAR 127
#else
-# include <wchar.h>
-# define CHAR wchar_t
-# define STRLEN wcslen
-# define STRCHR wcschr
-# define BIG_CHAR WCHAR_MAX
# define SMALL_CHAR 1273
#endif /* WIDE */
@@ -43,21 +36,14 @@
# include "bench-string.h"
# ifndef WIDE
-# define STRPBRK strpbrk
# define SIMPLE_STRPBRK simple_strpbrk
-# define STUPID_STRPBRK stupid_strpbrk
# else
-# include <wchar.h>
-# define STRPBRK wcspbrk
# define SIMPLE_STRPBRK simple_wcspbrk
-# define STUPID_STRPBRK stupid_wcspbrk
# endif /* WIDE */
typedef CHAR *(*proto_t) (const CHAR *, const CHAR *);
CHAR *SIMPLE_STRPBRK (const CHAR *, const CHAR *);
-CHAR *STUPID_STRPBRK (const CHAR *, const CHAR *);
-IMPL (STUPID_STRPBRK, 0)
IMPL (SIMPLE_STRPBRK, 0)
IMPL (STRPBRK, 1)
@@ -74,25 +60,13 @@ SIMPLE_STRPBRK (const CHAR *s, const CHAR *rej)
return NULL;
}
-CHAR *
-STUPID_STRPBRK (const CHAR *s, const CHAR *rej)
-{
- size_t ns = STRLEN (s), nrej = STRLEN (rej);
- size_t i, j;
-
- for (i = 0; i < ns; ++i)
- for (j = 0; j < nrej; ++j)
- if (s[i] == rej[j])
- return (CHAR *) s + i;
- return NULL;
-}
#endif /* !STRPBRK_RESULT */
static void
do_one_test (impl_t *impl, const CHAR *s, const CHAR *rej, RES_TYPE exp_res)
{
RES_TYPE res = CALL (impl, s, rej);
- size_t i, iters = INNER_LOOP_ITERS;
+ size_t i, iters = INNER_LOOP_ITERS_MEDIUM;
timing_t start, stop, cur;
if (res != exp_res)
diff --git a/benchtests/bench-strrchr.c b/benchtests/bench-strrchr.c
index 029ea184e8..f4d5fa0e9a 100644
--- a/benchtests/bench-strrchr.c
+++ b/benchtests/bench-strrchr.c
@@ -1,5 +1,5 @@
/* Measure STRCHR functions.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_MAIN
#ifdef WIDE
@@ -24,20 +24,13 @@
#endif
#include "bench-string.h"
+#define BIG_CHAR MAX_CHAR
+
#ifdef WIDE
-# include <wchar.h>
# define SIMPLE_STRRCHR simple_wcsrchr
-# define STRRCHR wcsrchr
-# define CHAR wchar_t
-# define UCHAR wchar_t
-# define BIG_CHAR WCHAR_MAX
# define SMALL_CHAR 1273
#else
# define SIMPLE_STRRCHR simple_strrchr
-# define STRRCHR strrchr
-# define CHAR char
-# define UCHAR unsigned char
-# define BIG_CHAR CHAR_MAX
# define SMALL_CHAR 127
#endif
@@ -63,7 +56,7 @@ static void
do_one_test (impl_t *impl, const CHAR *s, int c, CHAR *exp_res)
{
CHAR *res = CALL (impl, s, c);
- size_t i, iters = INNER_LOOP_ITERS;
+ size_t i, iters = INNER_LOOP_ITERS8;
timing_t start, stop, cur;
if (res != exp_res)
diff --git a/benchtests/bench-strsep.c b/benchtests/bench-strsep.c
index 20c8c0469e..04152e329e 100644
--- a/benchtests/bench-strsep.c
+++ b/benchtests/bench-strsep.c
@@ -1,5 +1,5 @@
/* Measure strsep functions.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_MAIN
#define TEST_NAME "strsep"
@@ -103,7 +103,7 @@ IMPL (oldstrsep, 2)
static void
do_one_test (impl_t * impl, const char *s1, const char *s2)
{
- size_t i, iters = INNER_LOOP_ITERS;
+ size_t i, iters = INNER_LOOP_ITERS_SMALL;
timing_t start, stop, cur;
TIMING_NOW (start);
diff --git a/benchtests/bench-strspn.c b/benchtests/bench-strspn.c
index 35afdd467c..fae3366598 100644
--- a/benchtests/bench-strspn.c
+++ b/benchtests/bench-strspn.c
@@ -1,5 +1,5 @@
/* Measure strspn functions.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_MAIN
#ifndef WIDE
@@ -24,32 +24,19 @@
#endif /* WIDE */
#include "bench-string.h"
+#define BIG_CHAR MAX_CHAR
+
#ifndef WIDE
-# define STRSPN strspn
-# define CHAR char
# define SIMPLE_STRSPN simple_strspn
-# define STUPID_STRSPN stupid_strspn
-# define STRLEN strlen
-# define STRCHR strchr
-# define BIG_CHAR CHAR_MAX
# define SMALL_CHAR 127
#else
-# include <wchar.h>
-# define STRSPN wcsspn
-# define CHAR wchar_t
# define SIMPLE_STRSPN simple_wcsspn
-# define STUPID_STRSPN stupid_wcsspn
-# define STRLEN wcslen
-# define STRCHR wcschr
-# define BIG_CHAR WCHAR_MAX
# define SMALL_CHAR 1273
#endif /* WIDE */
typedef size_t (*proto_t) (const CHAR *, const CHAR *);
size_t SIMPLE_STRSPN (const CHAR *, const CHAR *);
-size_t STUPID_STRSPN (const CHAR *, const CHAR *);
-IMPL (STUPID_STRSPN, 0)
IMPL (SIMPLE_STRSPN, 0)
IMPL (STRSPN, 1)
@@ -70,27 +57,10 @@ SIMPLE_STRSPN (const CHAR *s, const CHAR *acc)
return s - str - 1;
}
-size_t
-STUPID_STRSPN (const CHAR *s, const CHAR *acc)
-{
- size_t ns = STRLEN (s), nacc = STRLEN (acc);
- size_t i, j;
-
- for (i = 0; i < ns; ++i)
- {
- for (j = 0; j < nacc; ++j)
- if (s[i] == acc[j])
- break;
- if (j == nacc)
- return i;
- }
- return i;
-}
-
static void
do_one_test (impl_t *impl, const CHAR *s, const CHAR *acc, size_t exp_res)
{
- size_t res = CALL (impl, s, acc), i, iters = INNER_LOOP_ITERS;
+ size_t res = CALL (impl, s, acc), i, iters = INNER_LOOP_ITERS_MEDIUM;
timing_t start, stop, cur;
if (res != exp_res)
diff --git a/benchtests/bench-strstr.c b/benchtests/bench-strstr.c
index a31294e3c9..63ff1b419f 100644
--- a/benchtests/bench-strstr.c
+++ b/benchtests/bench-strstr.c
@@ -1,5 +1,5 @@
/* Measure strstr functions.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,65 +14,143 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define MIN_PAGE_SIZE 131072
#define TEST_MAIN
#define TEST_NAME "strstr"
#include "bench-string.h"
-
-#define STRSTR simple_strstr
-#define libc_hidden_builtin_def(X)
-#define __strnlen strnlen
-#include "../string/strstr.c"
-
-
+static const char input[] =
+"This manual is written with the assumption that you are at least "
+"somewhat familiar with the C programming language and basic programming "
+"concepts. Specifically, familiarity with ISO standard C (*note ISO "
+"C::), rather than “traditional†pre-ISO C dialects, is assumed.\n"
+
+" The GNU C Library includes several “header filesâ€, each of which "
+"provides definitions and declarations for a group of related facilities; "
+"this information is used by the C compiler when processing your program. "
+"For example, the header file ‘stdio.h’ declares facilities for "
+"performing input and output, and the header file ‘string.h’ declares "
+"string processing utilities. The organization of this manual generally "
+"follows the same division as the header files.\n"
+
+" If you are reading this manual for the first time, you should read "
+"all of the introductory material and skim the remaining chapters. There "
+"are a _lot_ of functions in the GNU C Library and it’s not realistic to "
+"expect that you will be able to remember exactly _how_ to use each and "
+"every one of them. It’s more important to become generally familiar "
+"with the kinds of facilities that the library provides, so that when you "
+"are writing your programs you can recognize _when_ to make use of "
+"library functions, and _where_ in this manual you can find more specific "
+"information about them.\n";
+
+/* Simple yet efficient strstr - for needles < 32 bytes it is 2-4 times
+ faster than the optimized twoway_strstr. */
static char *
-stupid_strstr (const char *s1, const char *s2)
+basic_strstr (const char *s1, const char *s2)
{
- ssize_t s1len = strlen (s1);
- ssize_t s2len = strlen (s2);
+ size_t i;
+ int c = s2[0];
- if (s2len > s1len)
- return NULL;
+ if (c == 0)
+ return (char*)s1;
- for (ssize_t i = 0; i <= s1len - s2len; ++i)
+ for ( ; s1[0] != '\0'; s1++)
{
- size_t j;
- for (j = 0; j < s2len; ++j)
- if (s1[i + j] != s2[j])
+ if (s1[0] != c)
+ continue;
+ for (i = 1; s2[i] != 0; i++)
+ if (s1[i] != s2[i])
break;
- if (j == s2len)
- return (char *) s1 + i;
+ if (s2[i] == '\0')
+ return (char*)s1;
}
return NULL;
}
+#define RETURN_TYPE char *
+#define AVAILABLE(h, h_l, j, n_l) \
+ (((j) + (n_l) <= (h_l)) \
+ || ((h_l) += __strnlen ((void*)((h) + (h_l)), (n_l) + 512), \
+ (j) + (n_l) <= (h_l)))
+#define CHECK_EOL (1)
+#define RET0_IF_0(a) if (!a) goto ret0
+#define FASTSEARCH(S,C,N) (void*) strchr ((void*)(S), (C))
+#define LONG_NEEDLE_THRESHOLD 32U
+#define __strnlen strnlen
+#include "string/str-two-way.h"
+
+/* Optimized Two-way implementation from GLIBC 2.29. */
+static char *
+twoway_strstr (const char *haystack, const char *needle)
+{
+ size_t needle_len; /* Length of NEEDLE. */
+ size_t haystack_len; /* Known minimum length of HAYSTACK. */
+
+ /* Handle empty NEEDLE special case. */
+ if (needle[0] == '\0')
+ return (char *) haystack;
+
+ /* Skip until we find the first matching char from NEEDLE. */
+ haystack = strchr (haystack, needle[0]);
+ if (haystack == NULL || needle[1] == '\0')
+ return (char *) haystack;
+
+ /* Ensure HAYSTACK length is at least as long as NEEDLE length.
+ Since a match may occur early on in a huge HAYSTACK, use strnlen
+ and read ahead a few cachelines for improved performance. */
+ needle_len = strlen (needle);
+ haystack_len = __strnlen (haystack, needle_len + 256);
+ if (haystack_len < needle_len)
+ return NULL;
+
+ /* Check whether we have a match. This improves performance since we avoid
+ the initialization overhead of the two-way algorithm. */
+ if (memcmp (haystack, needle, needle_len) == 0)
+ return (char *) haystack;
+
+ /* Perform the search. Abstract memory is considered to be an array
+ of 'unsigned char' values, not an array of 'char' values. See
+ ISO C 99 section 6.2.6.1. */
+ if (needle_len < LONG_NEEDLE_THRESHOLD)
+ return two_way_short_needle ((const unsigned char *) haystack,
+ haystack_len,
+ (const unsigned char *) needle, needle_len);
+ return two_way_long_needle ((const unsigned char *) haystack, haystack_len,
+ (const unsigned char *) needle, needle_len);
+}
typedef char *(*proto_t) (const char *, const char *);
-IMPL (stupid_strstr, 0)
-IMPL (simple_strstr, 0)
IMPL (strstr, 1)
-
+IMPL (twoway_strstr, 0)
+IMPL (basic_strstr, 0)
static void
do_one_test (impl_t *impl, const char *s1, const char *s2, char *exp_result)
{
- size_t i, iters = INNER_LOOP_ITERS;
+ size_t i, iters = INNER_LOOP_ITERS_SMALL / 8;
timing_t start, stop, cur;
+ char *res;
TIMING_NOW (start);
for (i = 0; i < iters; ++i)
- {
- CALL (impl, s1, s2);
- }
+ res = CALL (impl, s1, s2);
TIMING_NOW (stop);
TIMING_DIFF (cur, start, stop);
TIMING_PRINT_MEAN ((double) cur, (double) iters);
+
+ if (res != exp_result)
+ {
+ error (0, 0, "Wrong result in function %s %s %s", impl->name,
+ (res == NULL) ? "(null)" : res,
+ (exp_result == NULL) ? "(null)" : exp_result);
+ ret = 1;
+ }
}
@@ -83,36 +161,42 @@ do_test (size_t align1, size_t align2, size_t len1, size_t len2,
char *s1 = (char *) (buf1 + align1);
char *s2 = (char *) (buf2 + align2);
- static const char d[] = "1234567890abcdef";
-#define dl (sizeof (d) - 1)
- char *ss2 = s2;
- for (size_t l = len2; l > 0; l = l > dl ? l - dl : 0)
- {
- size_t t = l > dl ? dl : l;
- ss2 = mempcpy (ss2, d, t);
- }
- s2[len2] = '\0';
+ size_t size = sizeof (input) - 1;
+ size_t pos = (len1 + len2) % size;
- if (fail)
+ char *ss2 = s2;
+ for (size_t l = len2; l > 0; l = l > size ? l - size : 0)
{
- char *ss1 = s1;
- for (size_t l = len1; l > 0; l = l > dl ? l - dl : 0)
+ size_t t = l > size ? size : l;
+ if (pos + t <= size)
+ ss2 = mempcpy (ss2, input + pos, t);
+ else
{
- size_t t = l > dl ? dl : l;
- memcpy (ss1, d, t);
- ++ss1[len2 > 7 ? 7 : len2 - 1];
- ss1 += t;
+ ss2 = mempcpy (ss2, input + pos, size - pos);
+ ss2 = mempcpy (ss2, input, t - (size - pos));
}
}
- else
+ s2[len2] = '\0';
+
+ char *ss1 = s1;
+ for (size_t l = len1; l > 0; l = l > size ? l - size : 0)
{
- memset (s1, '0', len1);
- memcpy (s1 + len1 - len2, s2, len2);
+ size_t t = l > size ? size : l;
+ memcpy (ss1, input, t);
+ ss1 += t;
}
+
+ if (!fail)
+ memcpy (s1 + len1 - len2, s2, len2);
s1[len1] = '\0';
- printf ("Length %4zd/%zd, alignment %2zd/%2zd, %s:",
- len1, len2, align1, align2, fail ? "fail" : "found");
+ /* Remove any accidental matches except for the last if !fail. */
+ for (ss1 = basic_strstr (s1, s2); ss1; ss1 = basic_strstr (ss1 + 1, s2))
+ if (fail || ss1 != s1 + len1 - len2)
+ ++ss1[len2 / 2];
+
+ printf ("Length %4zd/%3zd, alignment %2zd/%2zd, %s:",
+ len1, len2, align1, align2, fail ? "fail " : "found");
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, s1, s2, fail ? NULL : s1 + len1 - len2);
@@ -120,6 +204,81 @@ do_test (size_t align1, size_t align2, size_t len1, size_t len2,
putchar ('\n');
}
+/* Test needles which exhibit worst-case performance. This shows that
+ basic_strstr is quadratic and thus unsuitable for large needles.
+ On the other hand Two-way and skip table implementations are linear with
+ increasing needle sizes. The slowest cases of the two implementations are
+ within a factor of 2 on several different microarchitectures. */
+
+static void
+test_hard_needle (size_t ne_len, size_t hs_len)
+{
+ char *ne = (char *) buf1;
+ char *hs = (char *) buf2;
+
+ /* Hard needle for strstr algorithm using skip table. This results in many
+ memcmp calls comparing most of the needle. */
+ {
+ memset (ne, 'a', ne_len);
+ ne[ne_len] = '\0';
+ ne[ne_len - 14] = 'b';
+
+ memset (hs, 'a', hs_len);
+ for (size_t i = ne_len; i <= hs_len; i += ne_len)
+ {
+ hs[i-5] = 'b';
+ hs[i-62] = 'b';
+ }
+
+ printf ("Length %4zd/%3zd, complex needle 1:", hs_len, ne_len);
+
+ FOR_EACH_IMPL (impl, 0)
+ do_one_test (impl, hs, ne, NULL);
+ putchar ('\n');
+ }
+
+ /* 2nd hard needle for strstr algorithm using skip table. This results in
+ many memcmp calls comparing most of the needle. */
+ {
+ memset (ne, 'a', ne_len);
+ ne[ne_len] = '\0';
+ ne[ne_len - 6] = 'b';
+
+ memset (hs, 'a', hs_len);
+ for (size_t i = ne_len; i <= hs_len; i += ne_len)
+ {
+ hs[i-5] = 'b';
+ hs[i-6] = 'b';
+ }
+
+ printf ("Length %4zd/%3zd, complex needle 2:", hs_len, ne_len);
+
+ FOR_EACH_IMPL (impl, 0)
+ do_one_test (impl, hs, ne, NULL);
+ putchar ('\n');
+ }
+
+ /* Hard needle for Two-way algorithm - the random input causes a large number
+ of branch mispredictions which significantly reduces performance on modern
+ micro architectures. */
+ {
+ for (int i = 0; i < hs_len; i++)
+ hs[i] = (rand () & 255) > 155 ? 'a' : 'b';
+ hs[hs_len] = 0;
+
+ memset (ne, 'a', ne_len);
+ ne[ne_len-2] = 'b';
+ ne[0] = 'b';
+ ne[ne_len] = 0;
+
+ printf ("Length %4zd/%3zd, complex needle 3:", hs_len, ne_len);
+
+ FOR_EACH_IMPL (impl, 0)
+ do_one_test (impl, hs, ne, NULL);
+ putchar ('\n');
+ }
+}
+
static int
test_main (void)
{
@@ -130,48 +289,23 @@ test_main (void)
printf ("\t%s", impl->name);
putchar ('\n');
- for (size_t klen = 2; klen < 32; ++klen)
- for (size_t hlen = 2 * klen; hlen < 16 * klen; hlen += klen)
+ for (size_t hlen = 64; hlen <= 256; hlen += 32)
+ for (size_t klen = 1; klen <= 16; klen++)
{
- do_test (0, 0, hlen, klen, 0);
- do_test (0, 0, hlen, klen, 1);
- do_test (0, 3, hlen, klen, 0);
- do_test (0, 3, hlen, klen, 1);
- do_test (0, 9, hlen, klen, 0);
+ do_test (1, 3, hlen, klen, 0);
do_test (0, 9, hlen, klen, 1);
- do_test (0, 15, hlen, klen, 0);
- do_test (0, 15, hlen, klen, 1);
-
- do_test (3, 0, hlen, klen, 0);
- do_test (3, 0, hlen, klen, 1);
- do_test (3, 3, hlen, klen, 0);
- do_test (3, 3, hlen, klen, 1);
- do_test (3, 9, hlen, klen, 0);
- do_test (3, 9, hlen, klen, 1);
- do_test (3, 15, hlen, klen, 0);
- do_test (3, 15, hlen, klen, 1);
-
- do_test (9, 0, hlen, klen, 0);
- do_test (9, 0, hlen, klen, 1);
- do_test (9, 3, hlen, klen, 0);
- do_test (9, 3, hlen, klen, 1);
- do_test (9, 9, hlen, klen, 0);
- do_test (9, 9, hlen, klen, 1);
- do_test (9, 15, hlen, klen, 0);
- do_test (9, 15, hlen, klen, 1);
-
- do_test (15, 0, hlen, klen, 0);
- do_test (15, 0, hlen, klen, 1);
- do_test (15, 3, hlen, klen, 0);
- do_test (15, 3, hlen, klen, 1);
- do_test (15, 9, hlen, klen, 0);
- do_test (15, 9, hlen, klen, 1);
- do_test (15, 15, hlen, klen, 0);
- do_test (15, 15, hlen, klen, 1);
}
- do_test (0, 0, page_size - 1, 16, 0);
- do_test (0, 0, page_size - 1, 16, 1);
+ for (size_t hlen = 256; hlen <= 65536; hlen *= 2)
+ for (size_t klen = 16; klen <= 256; klen *= 2)
+ {
+ do_test (1, 11, hlen, klen, 0);
+ do_test (14, 5, hlen, klen, 1);
+ }
+
+ test_hard_needle (64, 65536);
+ test_hard_needle (256, 65536);
+ test_hard_needle (1024, 65536);
return ret;
}
diff --git a/benchtests/bench-strtod.c b/benchtests/bench-strtod.c
index e66f31a2c7..2dc697bb90 100644
--- a/benchtests/bench-strtod.c
+++ b/benchtests/bench-strtod.c
@@ -1,5 +1,5 @@
/* Measure strtod implementation.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_MAIN
#define TEST_NAME "strtod"
@@ -24,7 +24,7 @@
#include "bench-timing.h"
#undef INNER_LOOP_ITERS
-#define INNER_LOOP_ITERS 65536
+#define INNER_LOOP_ITERS 131072
static const char *inputs[] =
{
@@ -89,9 +89,6 @@ int
do_bench (void)
{
const size_t iters = INNER_LOOP_ITERS;
- timing_t res __attribute__ ((unused));
-
- TIMING_INIT (res);
for (size_t i = 0; inputs[i] != NULL; ++i)
{
@@ -114,7 +111,4 @@ do_bench (void)
#define TEST_FUNCTION do_bench ()
-/* On slower platforms this test needs more than the default 2 seconds. */
-#define TIMEOUT 10
-
#include "../test-skeleton.c"
diff --git a/benchtests/bench-strtok.c b/benchtests/bench-strtok.c
index ba8c2dcc56..1d89b5c856 100644
--- a/benchtests/bench-strtok.c
+++ b/benchtests/bench-strtok.c
@@ -1,5 +1,5 @@
/* Measure strtok functions.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_MAIN
#define TEST_NAME "strtok"
@@ -60,7 +60,7 @@ IMPL (strtok, 1)
static void
do_one_test (impl_t * impl, const char *s1, const char *s2)
{
- size_t i, iters = INNER_LOOP_ITERS;
+ size_t i, iters = INNER_LOOP_ITERS_SMALL;
timing_t start, stop, cur;
TIMING_NOW (start);
for (i = 0; i < iters; ++i)
diff --git a/benchtests/bench-timing-type.c b/benchtests/bench-timing-type.c
index a44eca12ec..354d4fbf90 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "bench-timing.h"
#include <stdio.h>
diff --git a/benchtests/bench-timing.h b/benchtests/bench-timing.h
index 96cde1e8be..26db7b00cb 100644
--- a/benchtests/bench-timing.h
+++ b/benchtests/bench-timing.h
@@ -1,5 +1,5 @@
/* Define timing macros.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,53 +14,23 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#undef attribute_hidden
#define attribute_hidden
+#define __clock_gettime clock_gettime
#include <hp-timing.h>
#include <stdint.h>
-#if HP_TIMING_AVAIL && !defined USE_CLOCK_GETTIME
-# define GL(x) _##x
-# define GLRO(x) _##x
+#define GL(x) _##x
+#define GLRO(x) _##x
typedef hp_timing_t timing_t;
-# define TIMING_TYPE "hp_timing"
+#define TIMING_TYPE "hp_timing"
-# define TIMING_INIT(res) ({ (res) = 1; })
-
-# define TIMING_NOW(var) HP_TIMING_NOW (var)
-# define TIMING_DIFF(diff, start, end) HP_TIMING_DIFF ((diff), (start), (end))
-# define TIMING_ACCUM(sum, diff) HP_TIMING_ACCUM_NT ((sum), (diff))
-
-#else
-
-#include <time.h>
-typedef uint64_t timing_t;
-
-# define TIMING_TYPE "clock_gettime"
-
-/* Measure the resolution of the clock so we can scale the number of
- benchmark iterations by this value. */
-# define TIMING_INIT(res) \
-({ \
- struct timespec start; \
- clock_getres (CLOCK_PROCESS_CPUTIME_ID, &start); \
- (res) = start.tv_nsec; \
-})
-
-# define TIMING_NOW(var) \
-({ \
- struct timespec tv; \
- clock_gettime (CLOCK_PROCESS_CPUTIME_ID, &tv); \
- (var) = (uint64_t) (tv.tv_nsec + (uint64_t) 1000000000 * tv.tv_sec); \
-})
-
-# define TIMING_DIFF(diff, start, end) (diff) = (end) - (start)
-# define TIMING_ACCUM(sum, diff) (sum) += (diff)
-
-#endif
+#define TIMING_NOW(var) HP_TIMING_NOW (var)
+#define TIMING_DIFF(diff, start, end) HP_TIMING_DIFF ((diff), (start), (end))
+#define TIMING_ACCUM(sum, diff) HP_TIMING_ACCUM_NT ((sum), (diff))
#define TIMING_PRINT_MEAN(d_total_s, d_iters) \
printf ("\t%g", (d_total_s) / (d_iters))
diff --git a/benchtests/bench-util.c b/benchtests/bench-util.c
index ff9ccfbf84..a768868281 100644
--- a/benchtests/bench-util.c
+++ b/benchtests/bench-util.c
@@ -1,5 +1,5 @@
/* Benchmark utility functions.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
static volatile unsigned int dontoptimize = 0;
diff --git a/benchtests/bench-util.h b/benchtests/bench-util.h
index ac0c6e1118..2d32877068 100644
--- a/benchtests/bench-util.h
+++ b/benchtests/bench-util.h
@@ -1,5 +1,5 @@
/* Benchmark utility functions.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef START_ITER
diff --git a/benchtests/bench-wcpcpy.c b/benchtests/bench-wcpcpy.c
index f03c563179..65fb83e9d5 100644
--- a/benchtests/bench-wcpcpy.c
+++ b/benchtests/bench-wcpcpy.c
@@ -1,5 +1,5 @@
/* Measure wcpcpy functions.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define WIDE 1
#include "bench-stpcpy.c"
diff --git a/benchtests/bench-wcpncpy.c b/benchtests/bench-wcpncpy.c
index 8ff992c88d..ef39f9dca4 100644
--- a/benchtests/bench-wcpncpy.c
+++ b/benchtests/bench-wcpncpy.c
@@ -1,5 +1,5 @@
/* Measure wcpncpy functions.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define WIDE 1
#include "bench-stpncpy.c"
diff --git a/benchtests/bench-wcscat.c b/benchtests/bench-wcscat.c
index 553efae2e2..39de7bfa63 100644
--- a/benchtests/bench-wcscat.c
+++ b/benchtests/bench-wcscat.c
@@ -1,5 +1,5 @@
/* Measure wcscat functions.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define WIDE 1
#include "bench-strcat.c"
diff --git a/benchtests/bench-wcschr.c b/benchtests/bench-wcschr.c
index 31c668d3c4..38a1ba3953 100644
--- a/benchtests/bench-wcschr.c
+++ b/benchtests/bench-wcschr.c
@@ -1,5 +1,5 @@
/* Measure wcschr functions.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define WIDE 1
#include "bench-strchr.c"
diff --git a/benchtests/bench-wcschrnul.c b/benchtests/bench-wcschrnul.c
index 5034a6d2f2..f2f599a2bf 100644
--- a/benchtests/bench-wcschrnul.c
+++ b/benchtests/bench-wcschrnul.c
@@ -1,5 +1,5 @@
/* Measure wcschrnul functions.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define WIDE 1
#include "bench-strchrnul.c"
diff --git a/benchtests/bench-wcscmp.c b/benchtests/bench-wcscmp.c
index e83fdcdd3f..9e8b15927e 100644
--- a/benchtests/bench-wcscmp.c
+++ b/benchtests/bench-wcscmp.c
@@ -1,5 +1,5 @@
/* Measure wcscmp functions.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define WIDE 1
#include "bench-strcmp.c"
diff --git a/benchtests/bench-wcscpy.c b/benchtests/bench-wcscpy.c
index f1b3eacf63..9f28d69e3d 100644
--- a/benchtests/bench-wcscpy.c
+++ b/benchtests/bench-wcscpy.c
@@ -1,5 +1,5 @@
/* Measure wcscpy functions.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define WIDE 1
#include "bench-strcpy.c"
diff --git a/benchtests/bench-wcscspn.c b/benchtests/bench-wcscspn.c
index c5e81219ef..b6a3c701bc 100644
--- a/benchtests/bench-wcscspn.c
+++ b/benchtests/bench-wcscspn.c
@@ -1,5 +1,5 @@
/* Measure wcscspn functions.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define WIDE 1
#include "bench-strcspn.c"
diff --git a/benchtests/bench-wcslen.c b/benchtests/bench-wcslen.c
index 986bdbf5d0..47a7832045 100644
--- a/benchtests/bench-wcslen.c
+++ b/benchtests/bench-wcslen.c
@@ -1,5 +1,5 @@
/* Measure wcslen functions.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define WIDE 1
#include "bench-strlen.c"
diff --git a/benchtests/bench-wcsncat.c b/benchtests/bench-wcsncat.c
index 09bfbd4c10..ba33773cd9 100644
--- a/benchtests/bench-wcsncat.c
+++ b/benchtests/bench-wcsncat.c
@@ -1,5 +1,5 @@
/* Measure wcsncat functions.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define WIDE 1
#include "bench-strncat.c"
diff --git a/benchtests/bench-wcsncmp.c b/benchtests/bench-wcsncmp.c
index 25e337aeb9..4bd5a0488f 100644
--- a/benchtests/bench-wcsncmp.c
+++ b/benchtests/bench-wcsncmp.c
@@ -1,5 +1,5 @@
/* Measure wcsncmp functions.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define WIDE 1
#include "bench-strncmp.c"
diff --git a/benchtests/bench-wcsncpy.c b/benchtests/bench-wcsncpy.c
index 30e293526b..2ba1ac965f 100644
--- a/benchtests/bench-wcsncpy.c
+++ b/benchtests/bench-wcsncpy.c
@@ -1,5 +1,5 @@
/* Measure wcsncpy functions.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define WIDE 1
#include "bench-strncpy.c"
diff --git a/benchtests/bench-wcsnlen.c b/benchtests/bench-wcsnlen.c
index 69762e8f57..ba8e6d6d10 100644
--- a/benchtests/bench-wcsnlen.c
+++ b/benchtests/bench-wcsnlen.c
@@ -1,5 +1,5 @@
/* Measure wcsnlen functions.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,8 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define WIDE 1
+#define __wmemchr wmemchr
#include "bench-strnlen.c"
diff --git a/benchtests/bench-wcspbrk.c b/benchtests/bench-wcspbrk.c
index c777294710..96210adb5d 100644
--- a/benchtests/bench-wcspbrk.c
+++ b/benchtests/bench-wcspbrk.c
@@ -1,5 +1,5 @@
/* Measure wcspbrk functions.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define WIDE 1
#include "bench-strpbrk.c"
diff --git a/benchtests/bench-wcsrchr.c b/benchtests/bench-wcsrchr.c
index 733f732e74..1414c5dde1 100644
--- a/benchtests/bench-wcsrchr.c
+++ b/benchtests/bench-wcsrchr.c
@@ -1,5 +1,5 @@
/* Measure wcsrchr functions.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define WIDE 1
#include "bench-strrchr.c"
diff --git a/benchtests/bench-wcsspn.c b/benchtests/bench-wcsspn.c
index 4a749b3691..6ed9f11dde 100644
--- a/benchtests/bench-wcsspn.c
+++ b/benchtests/bench-wcsspn.c
@@ -1,5 +1,5 @@
/* Measure wcsspn functions.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define WIDE 1
#include "bench-strspn.c"
diff --git a/benchtests/bench-wmemchr.c b/benchtests/bench-wmemchr.c
index 318dac58be..f500b4e40a 100644
--- a/benchtests/bench-wmemchr.c
+++ b/benchtests/bench-wmemchr.c
@@ -1,5 +1,5 @@
/* Measure wmemchr functions.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define WIDE 1
#include "bench-memchr.c"
diff --git a/benchtests/bench-wmemcmp.c b/benchtests/bench-wmemcmp.c
index e885177a36..485ce6270f 100644
--- a/benchtests/bench-wmemcmp.c
+++ b/benchtests/bench-wmemcmp.c
@@ -1,5 +1,5 @@
/* Measure wmemcmp functions.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define WIDE 1
#include "bench-memcmp.c"
diff --git a/benchtests/bench-wmemset.c b/benchtests/bench-wmemset.c
index 151e1fd50d..1e22e5e10b 100644
--- a/benchtests/bench-wmemset.c
+++ b/benchtests/bench-wmemset.c
@@ -1,5 +1,5 @@
/* Measure wmemset functions.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define WIDE 1
#include "bench-memset.c"
diff --git a/benchtests/hypot-inputs b/benchtests/hypot-inputs
new file mode 100644
index 0000000000..e987e5dd1b
--- /dev/null
+++ b/benchtests/hypot-inputs
@@ -0,0 +1,16 @@
+## includes: math.h
+## args: double:double
+## ret: double
+
+## name: overflow
+0x3.ffffffffffffcp-1024, 0x8p-152
+## name: higher_two500
+0x1.000002027941dp+500, 0x1.0000000000001p+500
+## name: subnormal
+0x0.fffffffffffffp-1022, 0x0.fffffffffffffp-1022
+## name: less_two500
+0x1.fffffffffffffp-501, 0x1.fffffffffffffp-501
+
+## name: default
+3.0 , 4.0
+5.0 , 4.0
diff --git a/benchtests/isfinite-inputs b/benchtests/isfinite-inputs
new file mode 100644
index 0000000000..35a887c9df
--- /dev/null
+++ b/benchtests/isfinite-inputs
@@ -0,0 +1,21 @@
+## includes: math.h
+## args: double
+## ret: int
+0.9
+2.3
+3.7
+3.9
+4.0
+4.7
+5.9
+0x1.000000cf4a2a1p0
+0x1.0000010b239a8p0
+0x1.00000162a932ap0
+0x1.000002d452a11p0
+0x1.000005bc7d86cp0
+## name: INF
+__builtin_inf ()
+-__builtin_inf ()
+## name: NAN
+__builtin_nan ("")
+__builtin_nans ("")
diff --git a/benchtests/isinf-inputs b/benchtests/isinf-inputs
new file mode 100644
index 0000000000..35a887c9df
--- /dev/null
+++ b/benchtests/isinf-inputs
@@ -0,0 +1,21 @@
+## includes: math.h
+## args: double
+## ret: int
+0.9
+2.3
+3.7
+3.9
+4.0
+4.7
+5.9
+0x1.000000cf4a2a1p0
+0x1.0000010b239a8p0
+0x1.00000162a932ap0
+0x1.000002d452a11p0
+0x1.000005bc7d86cp0
+## name: INF
+__builtin_inf ()
+-__builtin_inf ()
+## name: NAN
+__builtin_nan ("")
+__builtin_nans ("")
diff --git a/benchtests/isnan-inputs b/benchtests/isnan-inputs
new file mode 100644
index 0000000000..35a887c9df
--- /dev/null
+++ b/benchtests/isnan-inputs
@@ -0,0 +1,21 @@
+## includes: math.h
+## args: double
+## ret: int
+0.9
+2.3
+3.7
+3.9
+4.0
+4.7
+5.9
+0x1.000000cf4a2a1p0
+0x1.0000010b239a8p0
+0x1.00000162a932ap0
+0x1.000002d452a11p0
+0x1.000005bc7d86cp0
+## name: INF
+__builtin_inf ()
+-__builtin_inf ()
+## name: NAN
+__builtin_nan ("")
+__builtin_nans ("")
diff --git a/benchtests/json-lib.c b/benchtests/json-lib.c
index 2e44a2be8a..c1e063af4e 100644
--- a/benchtests/json-lib.c
+++ b/benchtests/json-lib.c
@@ -1,5 +1,5 @@
/* Simple library for printing JSON data.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/benchtests/json-lib.h b/benchtests/json-lib.h
index e1c870c594..f1d1740e95 100644
--- a/benchtests/json-lib.h
+++ b/benchtests/json-lib.h
@@ -1,5 +1,5 @@
/* Simple library for printing JSON data.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef __JSON_LIB_H__
#define __JSON_LIB_H__
diff --git a/benchtests/logb-inputs b/benchtests/logb-inputs
new file mode 100644
index 0000000000..ab3b161696
--- /dev/null
+++ b/benchtests/logb-inputs
@@ -0,0 +1,11 @@
+## args: double
+## ret: double
+## includes: math.h
+
+## name: subnormal
+0x0.0000000000001p-1022
+0x0.fffffffffffffp-1022
+
+## name: normal
+1.0
+1024.0
diff --git a/benchtests/logbf-inputs b/benchtests/logbf-inputs
new file mode 100644
index 0000000000..c97fa17842
--- /dev/null
+++ b/benchtests/logbf-inputs
@@ -0,0 +1,11 @@
+## args: double
+## ret: double
+## includes: math.h
+
+## name: subnormal
+0x1p-149
+0x1.fffff8p-128
+
+## name: normal
+1.0
+1024.0
diff --git a/benchtests/pthread_once-source.c b/benchtests/pthread_once-source.c
index 9ceee4bb98..b50b83f21a 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
static pthread_once_t once = PTHREAD_ONCE_INIT;
diff --git a/benchtests/scripts/bench.py b/benchtests/scripts/bench.py
index 806aba6c90..4b266323de 100755
--- a/benchtests/scripts/bench.py
+++ b/benchtests/scripts/bench.py
@@ -1,5 +1,5 @@
#!/usr/bin/python
-# Copyright (C) 2014-2018 Free Software Foundation, Inc.
+# Copyright (C) 2014-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
@@ -14,7 +14,7 @@
#
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
"""Benchmark program generator script
diff --git a/benchtests/scripts/benchout.schema.json b/benchtests/scripts/benchout.schema.json
index 0eca21b6bd..8cfd606497 100644
--- a/benchtests/scripts/benchout.schema.json
+++ b/benchtests/scripts/benchout.schema.json
@@ -23,6 +23,10 @@
"max": {"type": "number"},
"min": {"type": "number"},
"mean": {"type": "number"},
+ "latency": {"type": "number"},
+ "min-throughput": {"type": "number"},
+ "max-throughput": {"type": "number"},
+ "reciprocal-throughput": {"type": "number"},
"timings": {
"type": "array",
"items": {"type": "number"}
diff --git a/benchtests/scripts/compare_bench.py b/benchtests/scripts/compare_bench.py
index 88e8911d81..d9058e97f3 100755
--- a/benchtests/scripts/compare_bench.py
+++ b/benchtests/scripts/compare_bench.py
@@ -1,5 +1,5 @@
#!/usr/bin/python
-# Copyright (C) 2015-2018 Free Software Foundation, Inc.
+# Copyright (C) 2015-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
@@ -14,7 +14,7 @@
#
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
"""Compare two benchmark results
Given two benchmark result files and a threshold, this script compares the
@@ -42,17 +42,26 @@ def do_compare(func, var, tl1, tl2, par, threshold):
threshold: The threshold for differences, beyond which the script should
print a warning.
"""
- d = abs(tl2[par] - tl1[par]) * 100 / tl1[str(par)]
+ try:
+ v1 = tl1[str(par)]
+ v2 = tl2[str(par)]
+ d = abs(v2 - v1) * 100 / v1
+ except KeyError:
+ sys.stderr.write('%s(%s)[%s]: stat does not exist\n' % (func, var, par))
+ return
+ except ZeroDivisionError:
+ return
+
if d > threshold:
- if tl1[par] > tl2[par]:
+ if v1 > v2:
ind = '+++'
else:
ind = '---'
print('%s %s(%s)[%s]: (%.2lf%%) from %g to %g' %
- (ind, func, var, par, d, tl1[par], tl2[par]))
+ (ind, func, var, par, d, v1, v2))
-def compare_runs(pts1, pts2, threshold):
+def compare_runs(pts1, pts2, threshold, stats):
"""Compare two benchmark runs
Args:
@@ -70,14 +79,14 @@ def compare_runs(pts1, pts2, threshold):
# Compare the consolidated numbers
# do_compare(func, var, tl1, tl2, 'max', threshold)
- do_compare(func, var, tl1, tl2, 'min', threshold)
- do_compare(func, var, tl1, tl2, 'mean', threshold)
+ for stat in stats.split():
+ do_compare(func, var, tl1, tl2, stat, threshold)
# Skip over to the next variant or function if there is no detailed
# timing info for the function variant.
if 'timings' not in pts1['functions'][func][var].keys() or \
'timings' not in pts2['functions'][func][var].keys():
- return
+ continue
# If two lists do not have the same length then it is likely that
# the performance characteristics of the function have changed.
@@ -125,7 +134,7 @@ def plot_graphs(bench1, bench2):
# No point trying to print a graph if there are no detailed
# timings.
if u'timings' not in bench1['functions'][func][var].keys():
- print('Skipping graph for %s(%s)' % (func, var))
+ sys.stderr.write('Skipping graph for %s(%s)\n' % (func, var))
continue
pylab.clf()
@@ -149,10 +158,10 @@ def plot_graphs(bench1, bench2):
filename = "%s-%s.png" % (func, var)
else:
filename = "%s.png" % func
- print('Writing out %s' % filename)
+ sys.stderr.write('Writing out %s' % filename)
pylab.savefig(filename)
-def main(bench1, bench2, schema, threshold):
+def main(bench1, bench2, schema, threshold, stats):
bench1 = bench.parse_bench(bench1, schema)
bench2 = bench.parse_bench(bench2, schema)
@@ -161,7 +170,7 @@ def main(bench1, bench2, schema, threshold):
bench.compress_timings(bench1)
bench.compress_timings(bench2)
- compare_runs(bench1, bench2, threshold)
+ compare_runs(bench1, bench2, threshold, stats)
if __name__ == '__main__':
@@ -175,8 +184,9 @@ if __name__ == '__main__':
parser.add_argument('--schema',
default=os.path.join(os.path.dirname(os.path.realpath(__file__)),'benchout.schema.json'),
help='JSON file to validate source/dest files (default: %(default)s)')
- parser.add_argument('--threshold', default=10.0, help='Only print those with equal or higher threshold (default: %(default)s)')
+ parser.add_argument('--threshold', default=10.0, type=float, help='Only print those with equal or higher threshold (default: %(default)s)')
+ parser.add_argument('--stats', default='min mean', type=str, help='Only consider values from the statistics specified as a space separated list (default: %(default)s)')
args = parser.parse_args()
- main(args.bench1, args.bench2, args.schema, args.threshold)
+ main(args.bench1, args.bench2, args.schema, args.threshold, args.stats)
diff --git a/benchtests/scripts/compare_strings.py b/benchtests/scripts/compare_strings.py
index e3ad8ff058..4ea54eda4d 100755
--- a/benchtests/scripts/compare_strings.py
+++ b/benchtests/scripts/compare_strings.py
@@ -1,5 +1,5 @@
#!/usr/bin/python
-# Copyright (C) 2017-2018 Free Software Foundation, Inc.
+# Copyright (C) 2017-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
@@ -14,7 +14,7 @@
#
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
"""Compare results of string functions
Given a string benchmark result file, print a table with comparisons with a
@@ -29,6 +29,7 @@ import os
import json
import pylab
import argparse
+import traceback
try:
import jsonschema as validator
@@ -45,8 +46,8 @@ def parse_file(filename, schema_filename):
bench = json.load(benchfile)
validator.validate(bench, schema)
return bench
- except FileNotFoundError:
- sys.stderr.write('Invalid input file %s.\n' % filename)
+ except:
+ print(traceback.format_exc(limit=1))
sys.exit(os.EX_NOINPUT)
def draw_graph(f, v, ifuncs, results):
diff --git a/benchtests/scripts/import_bench.py b/benchtests/scripts/import_bench.py
index 602b3f954d..61250022f0 100644
--- a/benchtests/scripts/import_bench.py
+++ b/benchtests/scripts/import_bench.py
@@ -1,5 +1,5 @@
#!/usr/bin/python
-# Copyright (C) 2015-2018 Free Software Foundation, Inc.
+# Copyright (C) 2015-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
@@ -14,7 +14,7 @@
#
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
"""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..b346d9be69
--- /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 Free Software 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
+# <https://www.gnu.org/licenses/>.
+"""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 6147f05bec..8bce00ade6 100755
--- a/benchtests/scripts/validate_benchout.py
+++ b/benchtests/scripts/validate_benchout.py
@@ -1,5 +1,5 @@
#!/usr/bin/python
-# Copyright (C) 2014-2018 Free Software Foundation, Inc.
+# Copyright (C) 2014-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
@@ -14,7 +14,7 @@
#
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
"""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 2e32c84b3a..ddced59b1d 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <unistd.h>
diff --git a/bits/byteswap.h b/bits/byteswap.h
index 23974e9083..e88b807b43 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if !defined _BYTESWAP_H && !defined _NETINET_IN_H && !defined _ENDIAN_H
# error "Never use <bits/byteswap.h> directly; include <byteswap.h> instead."
diff --git a/bits/confname.h b/bits/confname.h
index 59d3172198..524d8ab326 100644
--- a/bits/confname.h
+++ b/bits/confname.h
@@ -1,5 +1,5 @@
/* `sysconf', `pathconf', and `confstr' NAME values. Generic version.
- Copyright (C) 1993-2018 Free Software Foundation, Inc.
+ Copyright (C) 1993-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _UNISTD_H
# error "Never use <bits/confname.h> directly; include <unistd.h> instead."
diff --git a/bits/dirent.h b/bits/dirent.h
index d775540a13..a924dccc30 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DIRENT_H
# error "Never use <bits/dirent.h> directly; include <dirent.h> instead."
diff --git a/bits/dirent_ext.h b/bits/dirent_ext.h
new file mode 100644
index 0000000000..de4d2a695f
--- /dev/null
+++ b/bits/dirent_ext.h
@@ -0,0 +1,21 @@
+/* System-specific extensions of <dirent.h>, generic version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _DIRENT_H
+# error "Never include <bits/dirent_ext.h> directly; use <dirent.h> instead."
+#endif
diff --git a/bits/dlfcn.h b/bits/dlfcn.h
index b0b129b66b..552e53b1b5 100644
--- a/bits/dlfcn.h
+++ b/bits/dlfcn.h
@@ -1,5 +1,5 @@
/* System dependent definitions for run-time dynamic loading.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DLFCN_H
# error "Never use <bits/dlfcn.h> directly; include <dlfcn.h> instead."
diff --git a/bits/environments.h b/bits/environments.h
index 22ea9f0bda..0a9ab15696 100644
--- a/bits/environments.h
+++ b/bits/environments.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _UNISTD_H
# error "Never include this file directly. Use <unistd.h> instead"
diff --git a/bits/errno.h b/bits/errno.h
index 36c09f3f3c..ab67c33b75 100644
--- a/bits/errno.h
+++ b/bits/errno.h
@@ -1,5 +1,5 @@
/* Error constants. Generic version.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file defines the errno constants. */
diff --git a/bits/fcntl.h b/bits/fcntl.h
index 671c9e6877..a4636cb371 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FCNTL_H
#error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
diff --git a/bits/fenv.h b/bits/fenv.h
index 2dbf2abd16..1b168b9434 100644
--- a/bits/fenv.h
+++ b/bits/fenv.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FENV_H
# error "Never use <bits/fenv.h> directly; include <fenv.h> 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 1d8958a193..985afbb994 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_FLOATN_COMMON_H
#define _BITS_FLOATN_COMMON_H
diff --git a/bits/floatn.h b/bits/floatn.h
index 7baf9acbdf..92eee68b19 100644
--- a/bits/floatn.h
+++ b/bits/floatn.h
@@ -1,5 +1,5 @@
/* Macros to control TS 18661-3 glibc features.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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 7eed671829..e66307ea8a 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MATH_H
# error "Never use <bits/flt-eval-method.h> directly; include <math.h> instead."
diff --git a/bits/fp-fast.h b/bits/fp-fast.h
index 459facc2a8..3e238964ae 100644
--- a/bits/fp-fast.h
+++ b/bits/fp-fast.h
@@ -1,5 +1,5 @@
/* Define FP_FAST_* macros.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MATH_H
# error "Never use <bits/fp-fast.h> directly; include <math.h> instead."
diff --git a/bits/fp-logb.h b/bits/fp-logb.h
index 8b70a10148..2be9721140 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MATH_H
# error "Never use <bits/fp-logb.h> directly; include <math.h> instead."
diff --git a/bits/hwcap.h b/bits/hwcap.h
index 555b3bc359..3bc50b20e3 100644
--- a/bits/hwcap.h
+++ b/bits/hwcap.h
@@ -1,5 +1,5 @@
/* Defines for bits in AT_HWCAP.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_AUXV_H
# error "Never include <bits/hwcap.h> directly; use <sys/auxv.h> instead."
diff --git a/bits/in.h b/bits/in.h
index 1e854fddfb..a2d65f9b3c 100644
--- a/bits/in.h
+++ b/bits/in.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Generic version. */
diff --git a/bits/indirect-return.h b/bits/indirect-return.h
index 47f6f15a6e..64bbb5054e 100644
--- a/bits/indirect-return.h
+++ b/bits/indirect-return.h
@@ -1,5 +1,5 @@
/* Definition of __INDIRECT_RETURN. Generic version.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _UCONTEXT_H
# error "Never include <bits/indirect-return.h> directly; use <ucontext.h> instead."
diff --git a/bits/ioctl-types.h b/bits/ioctl-types.h
index 471d240e63..9804a6effc 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_IOCTL_H
# error "Never use <bits/ioctl-types.h> directly; include <sys/ioctl.h> instead."
diff --git a/bits/ipc.h b/bits/ipc.h
index ce341bb963..0e40b58ce7 100644
--- a/bits/ipc.h
+++ b/bits/ipc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_IPC_H
# error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
diff --git a/bits/ipctypes.h b/bits/ipctypes.h
index 1238801680..a3b38ba212 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* Never include <bits/ipctypes.h> directly.
diff --git a/bits/iscanonical.h b/bits/iscanonical.h
index 56934af96c..a609921586 100644
--- a/bits/iscanonical.h
+++ b/bits/iscanonical.h
@@ -1,5 +1,5 @@
/* Define iscanonical macro.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MATH_H
# error "Never use <bits/iscanonical.h> directly; include <math.h> instead."
diff --git a/bits/libc-header-start.h b/bits/libc-header-start.h
index b4a429b83c..787ecd6f2a 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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 520b4bbe43..60217c0d0e 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MATH_H
# error "Never include <bits/libm-simd-decl-stubs.h> directly;\
diff --git a/bits/long-double.h b/bits/long-double.h
index 33b8dfc454..8bfafe028a 100644
--- a/bits/long-double.h
+++ b/bits/long-double.h
@@ -1,5 +1,5 @@
/* Properties of long double type.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This header is included by <sys/cdefs.h>.
diff --git a/bits/math-vector.h b/bits/math-vector.h
index 318d3eba1f..42214d71bf 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MATH_H
# error "Never include <bits/math-vector.h> directly;\
diff --git a/bits/mathdef.h b/bits/mathdef.h
index 8fbf7e6cbc..930c1aae4a 100644
--- a/bits/mathdef.h
+++ b/bits/mathdef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _COMPLEX_H
# error "Never use <bits/mathdef.h> directly; include <complex.h> instead"
diff --git a/bits/mman.h b/bits/mman.h
index e41b84b6dc..189d3444d4 100644
--- a/bits/mman.h
+++ b/bits/mman.h
@@ -1,5 +1,5 @@
/* Definitions for BSD-style memory management.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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 5521569895..708062c291 100644
--- a/bits/mqueue.h
+++ b/bits/mqueue.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MQUEUE_H
# error "Never use <bits/mqueue.h> directly; include <mqueue.h> instead."
diff --git a/bits/msq.h b/bits/msq.h
index 2204aa0a2e..2d7c4c9e36 100644
--- a/bits/msq.h
+++ b/bits/msq.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_MSG_H
#error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
diff --git a/bits/netdb.h b/bits/netdb.h
index dcac8543d9..290b7bb1d9 100644
--- a/bits/netdb.h
+++ b/bits/netdb.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _NETDB_H
# error "Never include <bits/netdb.h> directly; use <netdb.h> instead."
diff --git a/bits/param.h b/bits/param.h
index 3e81803669..700760de09 100644
--- a/bits/param.h
+++ b/bits/param.h
@@ -1,5 +1,5 @@
/* Old-style Unix parameters and limits. Stub version.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_PARAM_H
# error "Never use <bits/param.h> directly; include <sys/param.h> instead."
diff --git a/bits/poll.h b/bits/poll.h
index 22ef926a4b..7db3683ae4 100644
--- a/bits/poll.h
+++ b/bits/poll.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_POLL_H
# error "Never use <bits/poll.h> directly; include <sys/poll.h> instead."
diff --git a/bits/resource.h b/bits/resource.h
index 7693d20fed..16baac348f 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_RESOURCE_H
# error "Never use <bits/resource.h> directly; include <sys/resource.h> instead."
diff --git a/bits/sched.h b/bits/sched.h
index bdd94c969d..1598db52a9 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_SCHED_H
#define _BITS_SCHED_H 1
diff --git a/bits/select.h b/bits/select.h
index 371c5c15cd..e378b09581 100644
--- a/bits/select.h
+++ b/bits/select.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_SELECT_H
# error "Never use <bits/select.h> directly; include <sys/select.h> instead."
diff --git a/bits/sem.h b/bits/sem.h
index 232555a4af..10eac91bd0 100644
--- a/bits/sem.h
+++ b/bits/sem.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_SEM_H
# error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
diff --git a/bits/shm.h b/bits/shm.h
index b739090105..63f141147e 100644
--- a/bits/shm.h
+++ b/bits/shm.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_SHM_H
# error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
diff --git a/bits/sigaction.h b/bits/sigaction.h
index 7797017c29..ebfb369a63 100644
--- a/bits/sigaction.h
+++ b/bits/sigaction.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_SIGACTION_H
#define _BITS_SIGACTION_H 1
diff --git a/bits/sigcontext.h b/bits/sigcontext.h
index 5d4a7f5e73..28d325678e 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_SIGCONTEXT_H
#define _BITS_SIGCONTEXT_H 1
diff --git a/bits/sigevent-consts.h b/bits/sigevent-consts.h
index 4cf9f6c0d3..e376a1e28e 100644
--- a/bits/sigevent-consts.h
+++ b/bits/sigevent-consts.h
@@ -1,5 +1,5 @@
/* sigevent constants. Stub version.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_SIGEVENT_CONSTS_H
#define _BITS_SIGEVENT_CONSTS_H 1
diff --git a/bits/siginfo-consts.h b/bits/siginfo-consts.h
index 7464c1882b..ebc3c35a2f 100644
--- a/bits/siginfo-consts.h
+++ b/bits/siginfo-consts.h
@@ -1,5 +1,5 @@
/* siginfo_t constants. Stub version.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_SIGINFO_CONSTS_H
#define _BITS_SIGINFO_CONSTS_H 1
diff --git a/bits/signal_ext.h b/bits/signal_ext.h
new file mode 100644
index 0000000000..74ab174251
--- /dev/null
+++ b/bits/signal_ext.h
@@ -0,0 +1,21 @@
+/* System-specific extensions of <signal.h>, generic version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SIGNAL_H
+# error "Never include <bits/signal_ext.h> directly; use <signal.h> instead."
+#endif
diff --git a/bits/signum-generic.h b/bits/signum-generic.h
index 8f1044a144..908d8cbb50 100644
--- a/bits/signum-generic.h
+++ b/bits/signum-generic.h
@@ -1,5 +1,5 @@
/* Signal number constants. Generic template.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_SIGNUM_GENERIC_H
#define _BITS_SIGNUM_GENERIC_H 1
diff --git a/bits/signum.h b/bits/signum.h
index bd9fe29cff..48306d8801 100644
--- a/bits/signum.h
+++ b/bits/signum.h
@@ -1,5 +1,5 @@
/* Signal number constants. Generic version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_SIGNUM_H
#define _BITS_SIGNUM_H 1
diff --git a/bits/sigstack.h b/bits/sigstack.h
index d3bcbd48e6..6ef8fdac60 100644
--- a/bits/sigstack.h
+++ b/bits/sigstack.h
@@ -1,5 +1,5 @@
/* sigstack, sigaltstack definitions.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_SIGSTACK_H
#define _BITS_SIGSTACK_H 1
diff --git a/bits/sigthread.h b/bits/sigthread.h
index 004d8837a3..698b4b3815 100644
--- a/bits/sigthread.h
+++ b/bits/sigthread.h
@@ -1,5 +1,5 @@
/* Signal handling function for threaded programs. Generic version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_SIGTHREAD_H
#define _BITS_SIGTHREAD_H 1
diff --git a/bits/sockaddr.h b/bits/sockaddr.h
index edf36c2855..b9b064ce55 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* Never include this file directly; use <sys/socket.h> instead.
diff --git a/bits/socket.h b/bits/socket.h
index 725798882e..6fbaa1c008 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#ifndef __BITS_SOCKET_H
#define __BITS_SOCKET_H 1
diff --git a/bits/ss_flags.h b/bits/ss_flags.h
index d54c711228..95c8fef508 100644
--- a/bits/ss_flags.h
+++ b/bits/ss_flags.h
@@ -1,5 +1,5 @@
/* ss_flags values for stack_t.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_SS_FLAGS_H
#define _BITS_SS_FLAGS_H 1
diff --git a/bits/stat.h b/bits/stat.h
index 0330f9ad27..eb6a2eac33 100644
--- a/bits/stat.h
+++ b/bits/stat.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if !defined _SYS_STAT_H && !defined _FCNTL_H
# error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
diff --git a/bits/statfs.h b/bits/statfs.h
index 5dc7cd6830..bcdae5f704 100644
--- a/bits/statfs.h
+++ b/bits/statfs.h
@@ -1,5 +1,5 @@
/* Definition of `struct statfs', information about a filesystem.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_STATFS_H
# error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead."
diff --git a/bits/statvfs.h b/bits/statvfs.h
index d223dc70be..6dc1048482 100644
--- a/bits/statvfs.h
+++ b/bits/statvfs.h
@@ -1,5 +1,5 @@
/* Definition of `struct statvfs', information about a filesystem.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_STATVFS_H
# error "Never include <bits/statvfs.h> directly; use <sys/statvfs.h> instead."
diff --git a/bits/stdint-intn.h b/bits/stdint-intn.h
index de1ffcceeb..8b6e92c20b 100644
--- a/bits/stdint-intn.h
+++ b/bits/stdint-intn.h
@@ -1,5 +1,5 @@
/* Define intN_t types.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_STDINT_INTN_H
#define _BITS_STDINT_INTN_H 1
diff --git a/bits/stdint-uintn.h b/bits/stdint-uintn.h
index 350b65b266..d187eef6d6 100644
--- a/bits/stdint-uintn.h
+++ b/bits/stdint-uintn.h
@@ -1,5 +1,5 @@
/* Define uintN_t types.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_STDINT_UINTN_H
#define _BITS_STDINT_UINTN_H 1
diff --git a/bits/stdlib-bsearch.h b/bits/stdlib-bsearch.h
index d83239a3af..c0ebaa1614 100644
--- a/bits/stdlib-bsearch.h
+++ b/bits/stdlib-bsearch.h
@@ -1,5 +1,5 @@
/* Perform binary search - inline version.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
__extern_inline void *
bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size,
diff --git a/bits/stropts.h b/bits/stropts.h
deleted file mode 100644
index 8410b6c3ce..0000000000
--- a/bits/stropts.h
+++ /dev/null
@@ -1,230 +0,0 @@
-/* Copyright (C) 1998-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _STROPTS_H
-# error "Never include <bits/stropts.h> directly; use <stropts.h> instead."
-#endif
-
-#ifndef _BITS_STROPTS_H
-#define _BITS_STROPTS_H 1
-
-#include <bits/types.h>
-
-/* Macros used as `request' argument to `ioctl'. */
-#define __SID ('S' << 8)
-
-#define I_NREAD (__SID | 1) /* Counts the number of data bytes in the data
- block in the first message. */
-#define I_PUSH (__SID | 2) /* Push STREAMS module onto top of the current
- STREAM, just below the STREAM head. */
-#define I_POP (__SID | 3) /* Remove STREAMS module from just below the
- STREAM head. */
-#define I_LOOK (__SID | 4) /* Retrieve the name of the module just below
- the STREAM head and place it in a character
- string. */
-#define I_FLUSH (__SID | 5) /* Flush all input and/or output. */
-#define I_SRDOPT (__SID | 6) /* Sets the read mode. */
-#define I_GRDOPT (__SID | 7) /* Returns the current read mode setting. */
-#define I_STR (__SID | 8) /* Construct an internal STREAMS `ioctl'
- message and send that message downstream. */
-#define I_SETSIG (__SID | 9) /* Inform the STREAM head that the process
- wants the SIGPOLL signal issued. */
-#define I_GETSIG (__SID |10) /* Return the events for which the calling
- process is currently registered to be sent
- a SIGPOLL signal. */
-#define I_FIND (__SID |11) /* Compares the names of all modules currently
- present in the STREAM to the name pointed to
- by `arg'. */
-#define I_LINK (__SID |12) /* Connect two STREAMs. */
-#define I_UNLINK (__SID |13) /* Disconnects the two STREAMs. */
-#define I_PEEK (__SID |15) /* Allows a process to retrieve the information
- in the first message on the STREAM head read
- queue without taking the message off the
- queue. */
-#define I_FDINSERT (__SID |16) /* Create a message from the specified
- buffer(s), adds information about another
- STREAM, and send the message downstream. */
-#define I_SENDFD (__SID |17) /* Requests the STREAM associated with `fildes'
- to send a message, containing a file
- pointer, to the STREAM head at the other end
- of a STREAMS pipe. */
-#define I_RECVFD (__SID |14) /* Non-EFT definition. */
-#define I_SWROPT (__SID |19) /* Set the write mode. */
-#define I_GWROPT (__SID |20) /* Return the current write mode setting. */
-#define I_LIST (__SID |21) /* List all the module names on the STREAM, up
- to and including the topmost driver name. */
-#define I_PLINK (__SID |22) /* Connect two STREAMs with a persistent
- link. */
-#define I_PUNLINK (__SID |23) /* Disconnect the two STREAMs that were
- connected with a persistent link. */
-#define I_FLUSHBAND (__SID |28) /* Flush only band specified. */
-#define I_CKBAND (__SID |29) /* Check if the message of a given priority
- band exists on the STREAM head read
- queue. */
-#define I_GETBAND (__SID |30) /* Return the priority band of the first
- message on the STREAM head read queue. */
-#define I_ATMARK (__SID |31) /* See if the current message on the STREAM
- head read queue is "marked" by some module
- downstream. */
-#define I_SETCLTIME (__SID |32) /* Set the time the STREAM head will delay when
- a STREAM is closing and there is data on
- the write queues. */
-#define I_GETCLTIME (__SID |33) /* Get current value for closing timeout. */
-#define I_CANPUT (__SID |34) /* Check if a certain band is writable. */
-
-
-/* Used in `I_LOOK' request. */
-#define FMNAMESZ 8 /* compatibility w/UnixWare/Solaris. */
-
-/* Flush options. */
-#define FLUSHR 0x01 /* Flush read queues. */
-#define FLUSHW 0x02 /* Flush write queues. */
-#define FLUSHRW 0x03 /* Flush read and write queues. */
-#ifdef __USE_GNU
-# define FLUSHBAND 0x04 /* Flush only specified band. */
-#endif
-
-/* Possible arguments for `I_SETSIG'. */
-#define S_INPUT 0x0001 /* A message, other than a high-priority
- message, has arrived. */
-#define S_HIPRI 0x0002 /* A high-priority message is present. */
-#define S_OUTPUT 0x0004 /* The write queue for normal data is no longer
- full. */
-#define S_MSG 0x0008 /* A STREAMS signal message that contains the
- SIGPOLL signal reaches the front of the
- STREAM head read queue. */
-#define S_ERROR 0x0010 /* Notification of an error condition. */
-#define S_HANGUP 0x0020 /* Notification of a hangup. */
-#define S_RDNORM 0x0040 /* A normal message has arrived. */
-#define S_WRNORM S_OUTPUT
-#define S_RDBAND 0x0080 /* A message with a non-zero priority has
- arrived. */
-#define S_WRBAND 0x0100 /* The write queue for a non-zero priority
- band is no longer full. */
-#define S_BANDURG 0x0200 /* When used in conjunction with S_RDBAND,
- SIGURG is generated instead of SIGPOLL when
- a priority message reaches the front of the
- STREAM head read queue. */
-
-/* Option for `I_PEEK'. */
-#define RS_HIPRI 0x01 /* Only look for high-priority messages. */
-
-/* Options for `I_SRDOPT'. */
-#define RNORM 0x0000 /* Byte-STREAM mode, the default. */
-#define RMSGD 0x0001 /* Message-discard mode. */
-#define RMSGN 0x0002 /* Message-nondiscard mode. */
-#define RPROTDAT 0x0004 /* Deliver the control part of a message as
- data. */
-#define RPROTDIS 0x0008 /* Discard the control part of a message,
- delivering any data part. */
-#define RPROTNORM 0x0010 /* Fail `read' with EBADMSG if a message
- containing a control part is at the front
- of the STREAM head read queue. */
-#ifdef __USE_GNU
-# define RPROTMASK 0x001C /* The RPROT bits */
-#endif
-
-/* Possible mode for `I_SWROPT'. */
-#define SNDZERO 0x001 /* Send a zero-length message downstream when a
- `write' of 0 bytes occurs. */
-#ifdef __USE_GNU
-# define SNDPIPE 0x002 /* Send SIGPIPE on write and putmsg if
- sd_werror is set. */
-#endif
-
-/* Arguments for `I_ATMARK'. */
-#define ANYMARK 0x01 /* Check if the message is marked. */
-#define LASTMARK 0x02 /* Check if the message is the last one marked
- on the queue. */
-
-/* Argument for `I_UNLINK'. */
-#ifdef __USE_GNU
-# define MUXID_ALL (-1) /* Unlink all STREAMs linked to the STREAM
- associated with `fildes'. */
-#endif
-
-
-/* Macros for `getmsg', `getpmsg', `putmsg' and `putpmsg'. */
-#define MSG_HIPRI 0x01 /* Send/receive high priority message. */
-#define MSG_ANY 0x02 /* Receive any message. */
-#define MSG_BAND 0x04 /* Receive message from specified band. */
-
-/* Values returned by getmsg and getpmsg */
-#define MORECTL 1 /* More control information is left in
- message. */
-#define MOREDATA 2 /* More data is left in message. */
-
-
-/* Structure used for the I_FLUSHBAND ioctl on streams. */
-struct bandinfo
- {
- unsigned char bi_pri;
- int bi_flag;
- };
-
-struct strbuf
- {
- int maxlen; /* Maximum buffer length. */
- int len; /* Length of data. */
- char *buf; /* Pointer to buffer. */
- };
-
-struct strpeek
- {
- struct strbuf ctlbuf;
- struct strbuf databuf;
- t_uscalar_t flags; /* UnixWare/Solaris compatibility. */
- };
-
-struct strfdinsert
- {
- struct strbuf ctlbuf;
- struct strbuf databuf;
- t_uscalar_t flags; /* UnixWare/Solaris compatibility. */
- int fildes;
- int offset;
- };
-
-struct strioctl
- {
- int ic_cmd;
- int ic_timout;
- int ic_len;
- char *ic_dp;
- };
-
-struct strrecvfd
- {
- int fd;
- uid_t uid;
- gid_t gid;
- char __fill[8]; /* UnixWare/Solaris compatibility */
- };
-
-
-struct str_mlist
- {
- char l_name[FMNAMESZ + 1];
- };
-
-struct str_list
- {
- int sl_nmods;
- struct str_mlist *sl_modlist;
- };
-
-#endif /* bits/stropts.h */
diff --git a/bits/sys_errlist.h b/bits/sys_errlist.h
index 5dc7385ee5..84804288dd 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _STDIO_H
# error "Never include <bits/sys_errlist.h> directly; use <stdio.h> instead."
diff --git a/bits/syslog-path.h b/bits/syslog-path.h
index b569190cf4..ec8fb9f360 100644
--- a/bits/syslog-path.h
+++ b/bits/syslog-path.h
@@ -1,5 +1,5 @@
/* <bits/syslog-path.h> -- _PATH_LOG definition
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_SYSLOG_H
# error "Never include this file directly. Use <sys/syslog.h> instead"
diff --git a/bits/sysmacros.h b/bits/sysmacros.h
index ea8d562c0a..b913057e0d 100644
--- a/bits/sysmacros.h
+++ b/bits/sysmacros.h
@@ -1,5 +1,5 @@
/* Definitions of macros to access `dev_t' values.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_SYSMACROS_H
#define _BITS_SYSMACROS_H 1
diff --git a/bits/termios.h b/bits/termios.h
index c6d572bbc3..c061e52967 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1993-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _TERMIOS_H
# error "Never include <bits/termios.h> directly; use <termios.h> instead."
diff --git a/bits/time.h b/bits/time.h
index e253a04261..e8652326b7 100644
--- a/bits/time.h
+++ b/bits/time.h
@@ -1,5 +1,5 @@
/* System-dependent timing definitions. Generic version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* Never include this file directly; use <time.h> instead.
diff --git a/bits/time64.h b/bits/time64.h
new file mode 100644
index 0000000000..dd6f43f9fc
--- /dev/null
+++ b/bits/time64.h
@@ -0,0 +1,36 @@
+/* bits/time64.h -- underlying types for __time64_t. Generic version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _BITS_TYPES_H
+# error "Never include <bits/time64.h> directly; use <sys/types.h> instead."
+#endif
+
+#ifndef _BITS_TIME64_H
+#define _BITS_TIME64_H 1
+
+/* Define __TIME64_T_TYPE so that it is always a 64-bit type. */
+
+#if __TIMESIZE == 64
+/* If we already have 64-bit time type then use it. */
+# define __TIME64_T_TYPE __TIME_T_TYPE
+#else
+/* Define a 64-bit time type alongsize the 32-bit one. */
+# define __TIME64_T_TYPE __SQUAD_TYPE
+#endif
+
+#endif /* bits/time64.h */
diff --git a/bits/timesize.h b/bits/timesize.h
new file mode 100644
index 0000000000..b718349bf5
--- /dev/null
+++ b/bits/timesize.h
@@ -0,0 +1,22 @@
+/* Bit size of the time_t type at glibc build time, general case.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <bits/wordsize.h>
+
+/* Size in bits of the 'time_t' type of the default ABI. */
+#define __TIMESIZE __WORDSIZE
diff --git a/bits/types/error_t.h b/bits/types/error_t.h
index 8ea7a8149e..96a47d4c90 100644
--- a/bits/types/error_t.h
+++ b/bits/types/error_t.h
@@ -1,5 +1,5 @@
/* Define error_t.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef __error_t_defined
# define __error_t_defined 1
diff --git a/bits/types/stack_t.h b/bits/types/stack_t.h
index d57f94c211..488795d29d 100644
--- a/bits/types/stack_t.h
+++ b/bits/types/stack_t.h
@@ -1,5 +1,5 @@
/* Define stack_t.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#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 2f24d426fb..704b5a67e6 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_TYPES_STRUCT_SCHED_PARAM
#define _BITS_TYPES_STRUCT_SCHED_PARAM 1
diff --git a/bits/typesizes.h b/bits/typesizes.h
index 85eacf2518..ae6eff5fc5 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_TYPES_H
# error "Never include <bits/typesizes.h> directly; use <sys/types.h> 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 2ce92351a9..00e75c622d 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if !defined _NETINET_IN_H && !defined _ENDIAN_H
# error "Never use <bits/uintn-identity.h> directly; include <netinet/in.h> or <endian.h> instead."
diff --git a/bits/uio-ext.h b/bits/uio-ext.h
index d5aa06fd08..48fb0f79aa 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_UIO_EXT_H
#define _BITS_UIO_EXT_H 1
diff --git a/bits/uio_lim.h b/bits/uio_lim.h
index c6603db49e..353b469308 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_UIO_LIM_H
#define _BITS_UIO_LIM_H 1
diff --git a/bits/unistd_ext.h b/bits/unistd_ext.h
new file mode 100644
index 0000000000..3ff4e74c95
--- /dev/null
+++ b/bits/unistd_ext.h
@@ -0,0 +1,21 @@
+/* System-specific extensions of <unistd.h>, generic version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _UNISTD_H
+# error "Never include <bits/unistd_ext.h> directly; use <unistd.h> instead."
+#endif
diff --git a/bits/utmp.h b/bits/utmp.h
index 6e8695fbf0..922866c0fb 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-2018 Free Software Foundation, Inc.
+/* The `struct utmp' type, describing entries in the utmp file.
+ Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _UTMP_H
# error "Never include <bits/utmp.h> directly; use <utmp.h> instead."
#endif
#include <paths.h>
-#include <time.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <bits/wordsize.h>
-#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 5e8cfcebb2..56921a8623 100644
--- a/bits/utsname.h
+++ b/bits/utsname.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_UTSNAME_H
# error "Never include <bits/utsname.h> directly; use <sys/utsname.h> instead."
diff --git a/bits/waitflags.h b/bits/waitflags.h
index b6092dd779..2a8b143830 100644
--- a/bits/waitflags.h
+++ b/bits/waitflags.h
@@ -1,5 +1,5 @@
/* Definitions of flag bits for `waitpid' et al.
- Copyright (C) 1992-2018 Free Software Foundation, Inc.
+ Copyright (C) 1992-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if !defined _SYS_WAIT_H && !defined _STDLIB_H
# error "Never include <bits/waitflags.h> directly; use <sys/wait.h> instead."
diff --git a/bits/waitstatus.h b/bits/waitstatus.h
index a1c232612c..f4f3b1f781 100644
--- a/bits/waitstatus.h
+++ b/bits/waitstatus.h
@@ -1,5 +1,5 @@
/* Definitions of status bits for `wait' et al.
- Copyright (C) 1992-2018 Free Software Foundation, Inc.
+ Copyright (C) 1992-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if !defined _SYS_WAIT_H && !defined _STDLIB_H
# error "Never include <bits/waitstatus.h> directly; use <sys/wait.h> instead."
diff --git a/bits/wchar.h b/bits/wchar.h
index 5fa6ccd4af..2fd88c60eb 100644
--- a/bits/wchar.h
+++ b/bits/wchar.h
@@ -1,5 +1,5 @@
/* wchar_t type related definitions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_WCHAR_H
#define _BITS_WCHAR_H 1
diff --git a/bits/xtitypes.h b/bits/xtitypes.h
deleted file mode 100644
index 1b5c8ace40..0000000000
--- a/bits/xtitypes.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* bits/xtitypes.h -- Define some types used by <bits/stropts.h>. Generic.
- Copyright (C) 2002-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _STROPTS_H
-# error "Never include <bits/xtitypes.h> directly; use <stropts.h> instead."
-#endif
-
-#ifndef _BITS_XTITYPES_H
-#define _BITS_XTITYPES_H 1
-
-#include <bits/types.h>
-
-/* This type is used by some structs in <bits/stropts.h>. */
-typedef __SLONGWORD_TYPE __t_scalar_t;
-typedef __ULONGWORD_TYPE __t_uscalar_t;
-
-
-#endif /* bits/xtitypes.h */
diff --git a/catgets/Makefile b/catgets/Makefile
index 36f6a226c3..c08d89ace2 100644
--- a/catgets/Makefile
+++ b/catgets/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
# Makefile for catgets.
diff --git a/catgets/catgets.c b/catgets/catgets.c
index ab203517b8..07f7325833 100644
--- a/catgets/catgets.c
+++ b/catgets/catgets.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper, <drepper@gnu.org>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <locale.h>
diff --git a/catgets/catgetsinfo.h b/catgets/catgetsinfo.h
index 648042e783..d04c3b7f97 100644
--- a/catgets/catgetsinfo.h
+++ b/catgets/catgetsinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
diff --git a/catgets/gencat.c b/catgets/gencat.c
index 3dd6858b31..31156625b8 100644
--- a/catgets/gencat.c
+++ b/catgets/gencat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#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\
-"), "2018");
+"), "2019");
fprintf (stream, gettext ("Written by %s.\n"), "Ulrich Drepper");
}
@@ -1196,7 +1196,9 @@ normalize_line (const char *fname, size_t line, iconv_t cd, wchar_t *string,
++rp;
}
else
- /* Simply ignore the backslash character. */;
+ {
+ /* Simply ignore the backslash character. */
+ }
break;
}
}
@@ -1268,7 +1270,7 @@ read_old (struct catalog *catalog, const char *file_name)
Insert it at the right position. */
struct message_list *newp;
- newp = (struct message_list *) xmalloc (sizeof(*newp));
+ newp = (struct message_list *) xmalloc (sizeof (*newp));
newp->number = old_cat_obj.name_ptr[cnt * 3 + 1];
newp->message =
&old_cat_obj.strings[old_cat_obj.name_ptr[cnt * 3 + 2]];
diff --git a/catgets/nl_types.h b/catgets/nl_types.h
index 41f0c626cf..7d71e6c0e0 100644
--- a/catgets/nl_types.h
+++ b/catgets/nl_types.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _NL_TYPES_H
#define _NL_TYPES_H 1
diff --git a/catgets/open_catalog.c b/catgets/open_catalog.c
index 4ffd75933f..5acca1399d 100644
--- a/catgets/open_catalog.c
+++ b/catgets/open_catalog.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper, <drepper@gnu.org>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <byteswap.h>
#include <endian.h>
diff --git a/catgets/test-gencat.sh b/catgets/test-gencat.sh
index ad0b75b84d..aa0326e046 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-2018 Free Software Foundation, Inc.
+# Copyright (C) 2000-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
@@ -15,7 +15,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
set -e
diff --git a/catgets/xopen-msg.awk b/catgets/xopen-msg.awk
index bab0f6b4ef..9b95501087 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-2018 Free Software Foundation, Inc.
+# Copyright (C) 2012-2019 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 <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
#
#
# The first directive in the .msg should be the definition of the
diff --git a/config.h.in b/config.h.in
index 141db213a9..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
@@ -62,9 +59,18 @@
/* Define if assembler supports AVX512DQ. */
#undef HAVE_AVX512DQ_ASM_SUPPORT
+/* Define if assembler supports z10 zarch instructions as default on S390. */
+#undef HAVE_S390_MIN_Z10_ZARCH_ASM_SUPPORT
+
/* Define if assembler supports z196 zarch instructions as default on S390. */
#undef HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT
+/* Define if assembler supports z13 zarch instructions as default on S390. */
+#undef HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+
+/* Define if assembler supports arch13 zarch instruction as default on S390. */
+#undef HAVE_S390_MIN_ARCH13_ZARCH_ASM_SUPPORT
+
/* Define if assembler supports vector instructions on S390. */
#undef HAVE_S390_VX_ASM_SUPPORT
@@ -72,6 +78,9 @@
on S390. */
#undef HAVE_S390_VX_GCC_SUPPORT
+/* Define if assembler supports arch13 instructions on S390. */
+#undef HAVE_S390_ARCH13_ASM_SUPPORT
+
/* Define if assembler supports Intel MPX. */
#undef HAVE_MPX_SUPPORT
@@ -100,6 +109,12 @@
/* AArch64 big endian ABI */
#undef HAVE_AARCH64_BE
+/* C-SKY ABI version. */
+#undef CSKYABI
+
+/* C-SKY floating-point ABI. */
+#undef CSKY_HARD_FLOAT
+
/* RISC-V integer ABI for ld.so. */
#undef RISCV_ABI_XLEN
diff --git a/config.make.in b/config.make.in
index d9891b2cd8..2fed3da773 100644
--- a/config.make.in
+++ b/config.make.in
@@ -10,6 +10,7 @@ prefix = @prefix@
exec_prefix = @exec_prefix@
datadir = @datadir@
libdir = @libdir@
+bindir = @bindir@
slibdir = @libc_cv_slibdir@
rtlddir = @libc_cv_rtlddir@
complocaledir = @libc_cv_complocaledir@
@@ -75,6 +76,7 @@ use-default-link = @use_default_link@
output-format = @libc_cv_output_format@
have-cxx-thread_local = @libc_cv_cxx_thread_local@
have-loop-to-function = @libc_cv_cc_loop_to_function@
+have-textrel_ifunc = @libc_cv_textrel_ifunc@
multi-arch = @multi_arch@
@@ -110,6 +112,7 @@ BUILD_CC = @BUILD_CC@
CFLAGS = @CFLAGS@
CPPFLAGS-config = @CPPFLAGS@
CPPUNDEFS = @CPPUNDEFS@
+extra-nonshared-cflags = @extra_nonshared_cflags@
ASFLAGS-config = @ASFLAGS_config@
AR = @AR@
NM = @NM@
diff --git a/configure b/configure
index fde57d63fe..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
@@ -664,6 +664,7 @@ INSTALL_PROGRAM
sysnames
submachine
multi_arch
+libc_cv_textrel_ifunc
no_stack_protector
stack_protector
libc_cv_ssp
@@ -684,6 +685,7 @@ force_install
bindnow
hardcoded_path_in_tests
enable_timezone_tools
+extra_nonshared_cflags
use_default_link
sysheaders
ac_ct_CXX
@@ -762,6 +764,7 @@ with_binutils
with_selinux
with_headers
with_default_link
+with_nonshared_cflags
enable_sanity_checks
enable_shared
enable_profile
@@ -1482,6 +1485,8 @@ Optional Packages:
--with-headers=PATH location of system headers to use (for example
/usr/src/linux/include) [default=compiler default]
--with-default-link do not use explicit linker scripts
+ --with-nonshared-cflags=CFLAGS
+ build nonshared libraries with additional CFLAGS
--with-cpu=CPU select code for CPU variant
Some influential environment variables:
@@ -1500,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 <https://sourceware.org/bugzilla/>.
-GNU C Library home page: <http://www.gnu.org/software/glibc/>.
+GNU C Library home page: <https://www.gnu.org/software/glibc/>.
General help using GNU software: <http://www.gnu.org/gethelp/>.
_ACEOF
ac_status=$?
@@ -2160,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
@@ -3339,6 +3344,16 @@ else
fi
+
+# Check whether --with-nonshared-cflags was given.
+if test "${with_nonshared_cflags+set}" = set; then :
+ withval=$with_nonshared_cflags; extra_nonshared_cflags=$withval
+else
+ extra_nonshared_cflags=
+fi
+
+
+
# Check whether --enable-sanity-checks was given.
if test "${enable_sanity_checks+set}" = set; then :
enableval=$enable_sanity_checks; enable_sanity=$enableval
@@ -3762,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
@@ -4038,6 +4074,52 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_gcc_indirect_function" >&5
$as_echo "$libc_cv_gcc_indirect_function" >&6; }
+# Check if linker supports textrel relocation with ifunc (used on elf/tests).
+# Note that it relies on libc_cv_ld_gnu_indirect_function test above.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker supports textrels along with ifunc" >&5
+$as_echo_n "checking whether the linker supports textrels along with ifunc... " >&6; }
+if ${libc_cv_textrel_ifunc+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat > conftest.S <<EOF
+.type foo,%gnu_indirect_function
+foo:
+.globl _start
+_start:
+.globl __start
+__start:
+.data
+#ifdef _LP64
+.quad foo
+#else
+.long foo
+#endif
+.text
+.globl address
+address:
+#ifdef _LP64
+.quad address
+#else
+.long address
+#endif
+EOF
+libc_cv_textrel_ifunc=no
+if test $libc_cv_ld_gnu_indirect_function = yes; then
+ if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -nostartfiles -nostdlib $no_ssp -pie -o conftest conftest.S'
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then
+ libc_cv_textrel_ifunc=yes
+ fi
+fi
+rm -f conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_textrel_ifunc" >&5
+$as_echo "$libc_cv_textrel_ifunc" >&6; }
+
+
# Check if gcc warns about alias for function with incompatible types.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler warns about alias for function with incompatible types" >&5
$as_echo_n "checking if compiler warns about alias for function with incompatible types... " >&6; }
@@ -5058,7 +5140,7 @@ int
main ()
{
-#if !defined __GNUC__ || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 9)
+#if !defined __GNUC__ || __GNUC__ < 6 || (__GNUC__ == 6 && __GNUC_MINOR__ < 2)
#error insufficient compiler
#endif
;
@@ -5283,20 +5365,31 @@ fi
test -n "$PYTHON_PROG" && break
done
-test -n "$PYTHON_PROG" || PYTHON_PROG="no"
-
-case "x$PYTHON_PROG" in
-xno|x|x:) PYTHON_PROG=no ;;
-*) ;;
-esac
-if test "x$PYTHON_PROG" = xno; then
- aux_missing="$aux_missing python"
+if test -z "$PYTHON_PROG"; then
+ ac_verc_fail=yes
else
- PYTHON="$PYTHON_PROG -B"
+ # Found it, now check the version.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking version of $PYTHON_PROG" >&5
+$as_echo_n "checking version of $PYTHON_PROG... " >&6; }
+ ac_prog_version=`$PYTHON_PROG --version 2>&1 | sed -n 's/^.*Python \([0-9][0-9.]*\).*$/\1/p'`
+ case $ac_prog_version in
+ '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
+ 3.[4-9]*|3.[1-9][0-9]*|[4-9].*|[1-9][0-9]*)
+ ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
+ *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
+ esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5
+$as_echo "$ac_prog_version" >&6; }
+fi
+if test $ac_verc_fail = yes; then
+ critic_missing="$critic_missing python"
fi
+PYTHON="$PYTHON_PROG -B"
+
+
test -n "$critic_missing" && as_fn_error $? "
*** These critical programs are missing or too old:$critic_missing
*** Check the INSTALL file for required versions." "$LINENO" 5
@@ -6722,6 +6815,8 @@ if test x"$libc_cv_ld_gnu_indirect_function" = xyes; then
$as_echo "#define HAVE_IFUNC 1" >>confdefs.h
fi
+config_vars="$config_vars
+have-ifunc = $libc_cv_ld_gnu_indirect_function"
if test x"$libc_cv_gcc_indirect_function" = xyes; then
$as_echo "#define HAVE_GCC_IFUNC 1" >>confdefs.h
@@ -7399,7 +7494,7 @@ Configuration commands:
$config_commands
Report bugs to <https://sourceware.org/bugzilla/>.
-GNU C Library home page: <http://www.gnu.org/software/glibc/>.
+GNU C Library home page: <https://www.gnu.org/software/glibc/>.
General help using GNU software: <http://www.gnu.org/gethelp/>."
_ACEOF
diff --git a/configure.ac b/configure.ac
index 014e09a5d5..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"],
@@ -154,6 +155,14 @@ AC_ARG_WITH([default-link],
[use_default_link=$withval],
[use_default_link=default])
+dnl Additional build flags injection.
+AC_ARG_WITH([nonshared-cflags],
+ AC_HELP_STRING([--with-nonshared-cflags=CFLAGS],
+ [build nonshared libraries with additional CFLAGS]),
+ [extra_nonshared_cflags=$withval],
+ [extra_nonshared_cflags=])
+AC_SUBST(extra_nonshared_cflags)
+
AC_ARG_ENABLE([sanity-checks],
AC_HELP_STRING([--disable-sanity-checks],
[really do not use threads (should not be used except in special situations) @<:@default=yes@:>@]),
@@ -464,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
@@ -663,6 +679,41 @@ if ${CC-cc} -c conftest.c -o conftest.o 1>&AS_MESSAGE_LOG_FD \
fi
rm -f conftest*])
+# Check if linker supports textrel relocation with ifunc (used on elf/tests).
+# Note that it relies on libc_cv_ld_gnu_indirect_function test above.
+AC_CACHE_CHECK([whether the linker supports textrels along with ifunc],
+ libc_cv_textrel_ifunc, [dnl
+cat > conftest.S <<EOF
+.type foo,%gnu_indirect_function
+foo:
+.globl _start
+_start:
+.globl __start
+__start:
+.data
+#ifdef _LP64
+.quad foo
+#else
+.long foo
+#endif
+.text
+.globl address
+address:
+#ifdef _LP64
+.quad address
+#else
+.long address
+#endif
+EOF
+libc_cv_textrel_ifunc=no
+if test $libc_cv_ld_gnu_indirect_function = yes; then
+ if AC_TRY_COMMAND(${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -nostartfiles -nostdlib $no_ssp -pie -o conftest conftest.S); then
+ libc_cv_textrel_ifunc=yes
+ fi
+fi
+rm -f conftest*])
+AC_SUBST(libc_cv_textrel_ifunc)
+
# Check if gcc warns about alias for function with incompatible types.
AC_CACHE_CHECK([if compiler warns about alias for function with incompatible types],
libc_cv_gcc_incompatible_alias, [dnl
@@ -974,7 +1025,7 @@ AC_CHECK_PROG_VER(BISON, bison, --version,
AC_CACHE_CHECK([if $CC is sufficient to build libc], libc_cv_compiler_ok, [
AC_TRY_COMPILE([], [
-#if !defined __GNUC__ || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 9)
+#if !defined __GNUC__ || __GNUC__ < 6 || (__GNUC__ == 6 && __GNUC_MINOR__ < 2)
#error insufficient compiler
#endif],
[libc_cv_compiler_ok=yes],
@@ -1007,18 +1058,12 @@ else
fi
# Check for python3 if available, or else python.
-AC_CHECK_PROGS(PYTHON_PROG, python3 python,no)
-case "x$PYTHON_PROG" in
-xno|x|x:) PYTHON_PROG=no ;;
-*) ;;
-esac
-
-if test "x$PYTHON_PROG" = xno; then
- aux_missing="$aux_missing python"
-else
- PYTHON="$PYTHON_PROG -B"
- AC_SUBST(PYTHON)
-fi
+AC_CHECK_PROG_VER(PYTHON_PROG, python3 python, --version,
+ [Python \([0-9][0-9.]*\)],
+ [3.[4-9]*|3.[1-9][0-9]*|[4-9].*|[1-9][0-9]*],
+ critic_missing="$critic_missing python")
+PYTHON="$PYTHON_PROG -B"
+AC_SUBST(PYTHON)
test -n "$critic_missing" && AC_MSG_ERROR([
*** These critical programs are missing or too old:$critic_missing
@@ -1767,6 +1812,7 @@ AC_SUBST(libc_cv_gcc_unwind_find_fde)
if test x"$libc_cv_ld_gnu_indirect_function" = xyes; then
AC_DEFINE(HAVE_IFUNC)
fi
+LIBC_CONFIG_VAR([have-ifunc], [$libc_cv_ld_gnu_indirect_function])
if test x"$libc_cv_gcc_indirect_function" = xyes; then
AC_DEFINE(HAVE_GCC_IFUNC)
diff --git a/conform/GlibcConform.pm b/conform/GlibcConform.pm
deleted file mode 100644
index ba9c7e822f..0000000000
--- a/conform/GlibcConform.pm
+++ /dev/null
@@ -1,74 +0,0 @@
-#!/usr/bin/perl
-
-# Shared code for glibc conformance tests.
-
-# Copyright (C) 2014-2018 Free Software 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
-# <http://www.gnu.org/licenses/>.
-
-package GlibcConform;
-require Exporter;
-@ISA = qw(Exporter);
-@EXPORT = qw(%CFLAGS list_exported_functions);
-
-# Compiler options for each standard.
-$CFLAGS{"ISO"} = "-ansi";
-$CFLAGS{"ISO99"} = "-std=c99";
-$CFLAGS{"ISO11"} = "-std=c11";
-$CFLAGS{"POSIX"} = "-D_POSIX_C_SOURCE=199506L -ansi";
-$CFLAGS{"XPG4"} = "-ansi -D_XOPEN_SOURCE";
-$CFLAGS{"XPG42"} = "-ansi -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED";
-$CFLAGS{"UNIX98"} = "-ansi -D_XOPEN_SOURCE=500";
-$CFLAGS{"XOPEN2K"} = "-std=c99 -D_XOPEN_SOURCE=600";
-$CFLAGS{"XOPEN2K8"} = "-std=c99 -D_XOPEN_SOURCE=700";
-$CFLAGS{"POSIX2008"} = "-std=c99 -D_POSIX_C_SOURCE=200809L";
-
-# Return a list of functions exported by a header, empty if an include
-# of the header does not compile.
-sub list_exported_functions {
- my ($cc, $standard, $header, $tmpdir) = @_;
- my ($cc_all) = "$cc -D_ISOMAC $CFLAGS{$standard}";
- my ($tmpfile) = "$tmpdir/list-$$.c";
- my ($auxfile) = "$tmpdir/list-$$.c.aux";
- my ($ret);
- my (%res) = ();
- open (TMPFILE, ">$tmpfile") || die ("open $tmpfile: $!\n");
- print TMPFILE "#include <$header>\n";
- close (TMPFILE) || die ("close $tmpfile: $!\n");
- $ret = system "$cc_all -c $tmpfile -o /dev/null -aux-info $auxfile > /dev/null";
- unlink ($tmpfile) || die ("unlink $tmpfile: $!\n");
- if ($ret != 0) {
- return;
- }
- open (AUXFILE, "<$auxfile") || die ("open $auxfile: $!\n");
- while (<AUXFILE>) {
- s|/\*.*?\*/||g;
- if (/^\s*$/) {
- next;
- }
- # The word before a '(' that isn't '(*' is the function name
- # before the argument list (not fully general, but sufficient for
- # -aux-info output on standard headers).
- if (/(\w+)\s*\([^*]/) {
- $res{$1} = 1;
- } else {
- die ("couldn't parse -aux-info output: $_\n");
- }
- }
- close (AUXFILE) || die ("close $auxfile: $!\n");
- unlink ($auxfile) || die ("unlink $auxfile: $!\n");
- return sort keys %res;
-}
diff --git a/conform/Makefile b/conform/Makefile
index d43093171b..2456e1b87f 100644
--- a/conform/Makefile
+++ b/conform/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
+# Copyright (C) 1999-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
# Sub-makefile for conform portion of the library.
@@ -52,44 +52,44 @@ conformtest-headers-XPG4 := $(conformtest-headers-ISO) cpio.h dirent.h \
sys/wait.h tar.h termios.h ulimit.h unistd.h \
utime.h varargs.h wordexp.h
# Missing XPG42 expectations for: re_comp.h regexp.h wchar.h.
-# XPG42 includes XTI, but xti.h is outside the scope of these tests.
+# XPG42 includes XTI and STREAMS, but those are not implemented by glibc.
conformtest-headers-XPG42 := $(conformtest-headers-XPG4) arpa/inet.h fmtmsg.h \
libgen.h ndbm.h netdb.h netinet/in.h poll.h \
- strings.h stropts.h sys/mman.h sys/resource.h \
+ strings.h sys/mman.h sys/resource.h \
sys/socket.h sys/statvfs.h sys/time.h sys/timeb.h \
sys/uio.h sys/un.h syslog.h ucontext.h utmpx.h
# Missing UNIX98 expectations for: inttypes.h re_comp.h regexp.h.
# The online UNIX98 includes XCURSES, but curses.h, term.h and
# unctrl.h are outside the scope of these tests. It also includes
-# XTI, but xti.h is outside the scope of these tests.
+# XTI and STREAMS, but those are not implemented by glibc.
conformtest-headers-UNIX98 := $(conformtest-headers-POSIX) arpa/inet.h cpio.h \
dlfcn.h fmtmsg.h ftw.h iconv.h iso646.h \
langinfo.h libgen.h monetary.h ndbm.h netdb.h \
netinet/in.h nl_types.h poll.h search.h \
- strings.h stropts.h sys/ipc.h sys/msg.h \
+ strings.h sys/ipc.h sys/msg.h \
sys/resource.h sys/sem.h sys/shm.h sys/socket.h \
sys/statvfs.h sys/time.h sys/timeb.h sys/uio.h \
sys/un.h syslog.h ucontext.h ulimit.h utmpx.h \
varargs.h wchar.h wctype.h
-# Missing XOPEN2K expectations for: trace.h.
+# Missing XOPEN2K expectations for: trace.h, stropts.h.
conformtest-headers-XOPEN2K := $(conformtest-headers-POSIX) arpa/inet.h \
complex.h cpio.h dlfcn.h fenv.h fmtmsg.h ftw.h \
iconv.h inttypes.h iso646.h langinfo.h \
libgen.h monetary.h ndbm.h net/if.h netdb.h \
netinet/in.h netinet/tcp.h nl_types.h poll.h \
search.h spawn.h stdbool.h stdint.h strings.h \
- stropts.h sys/ipc.h sys/msg.h sys/resource.h \
+ sys/ipc.h sys/msg.h sys/resource.h \
sys/select.h sys/sem.h sys/shm.h sys/socket.h \
sys/statvfs.h sys/time.h sys/timeb.h sys/uio.h \
sys/un.h syslog.h tgmath.h ucontext.h ulimit.h \
utmpx.h wchar.h wctype.h
-# Missing POSIX2008 expectations for: trace.h.
+# Missing POSIX2008 expectations for: trace.h, stropts.h.
conformtest-headers-POSIX2008 := $(conformtest-headers-POSIX) arpa/inet.h \
complex.h cpio.h dlfcn.h fenv.h iconv.h \
inttypes.h iso646.h langinfo.h monetary.h \
net/if.h netdb.h netinet/in.h netinet/tcp.h \
nl_types.h poll.h spawn.h stdbool.h stdint.h \
- strings.h stropts.h sys/select.h \
+ strings.h sys/select.h \
sys/socket.h sys/statvfs.h sys/un.h tgmath.h \
wchar.h wctype.h
# Missing XOPEN2K8 expectations for: trace.h.
@@ -172,20 +172,19 @@ else
conformtest-cross = --cross
endif
$(conformtest-header-tests): $(objpfx)%/conform.out: \
- conformtest.pl $(conformtest-headers-data)
+ conformtest.py $(conformtest-headers-data)
(set -e; std_hdr=$*; std=$${std_hdr%%/*}; hdr=$${std_hdr#*/}; \
- mkdir -p $(@D)/scratch; \
- $(PERL) -I. conformtest.pl --tmpdir=$(@D)/scratch --cc='$(CC)' \
- --flags='$(conformtest-cc-flags)' --standard=$$std \
- --headers=$$hdr $(conformtest-xfail) $(conformtest-cross) \
- > $@); \
+ mkdir -p $(@D); \
+ $(PYTHON) $< --cc='$(CC)' --flags='$(conformtest-cc-flags)' \
+ --standard=$$std --header=$$hdr $(conformtest-xfail) \
+ $(conformtest-cross) \
+ > $@ 2>&1); \
$(evaluate-test)
-$(linknamespace-symlists-tests): $(objpfx)symlist-%: list-header-symbols.pl
- $(PERL) -I. -w $< --tmpdir=$(objpfx) --cc='$(CC)' \
- --flags='$(conformtest-cc-flags)' --standard=$* \
- --headers="$(strip $(conformtest-headers-$*))" \
- > $@ 2> $@.err; \
+$(linknamespace-symlists-tests): $(objpfx)symlist-%: list-header-symbols.py
+ $(PYTHON) $< --cc='$(CC)' --flags='$(conformtest-cc-flags)' \
+ --standard=$* --headers="$(strip $(conformtest-headers-$*))" \
+ > $@ 2> $@.err; \
$(evaluate-test)
linknamespace-libs-isoc = $(common-objpfx)libc.a $(common-objpfx)math/libm.a
@@ -219,17 +218,16 @@ $(linknamespace-symlist-stdlibs-tests): $(objpfx)symlist-stdlibs-%: \
$(evaluate-test)
$(linknamespace-header-tests): $(objpfx)%/linknamespace.out: \
- linknamespace.pl \
+ linknamespace.py \
$(linknamespace-symlists-tests) \
$(linknamespace-symlist-stdlibs-tests)
(set -e; std_hdr=$*; std=$${std_hdr%%/*}; hdr=$${std_hdr#*/}; \
- mkdir -p $(@D)/scratch; \
- $(PERL) -I. -w $< --tmpdir=$(@D)/scratch --cc='$(CC)' \
- --flags='$(conformtest-cc-flags)' --standard=$$std \
- --stdsyms=$(objpfx)symlist-$$std --header=$$hdr \
- --libsyms=$(objpfx)symlist-stdlibs-$$std \
- --readelf='$(READELF)' \
- > $@ 2>&1); \
+ mkdir -p $(@D); \
+ $(PYTHON) $< --cc='$(CC)' --flags='$(conformtest-cc-flags)' \
+ --standard=$$std --stdsyms=$(objpfx)symlist-$$std \
+ --header=$$hdr --libsyms=$(objpfx)symlist-stdlibs-$$std \
+ --readelf='$(READELF)' \
+ > $@ 2>&1); \
$(evaluate-test)
# Pre-standard C feature no longer supported by GCC (obsoleted in
diff --git a/conform/check-header-lists.sh b/conform/check-header-lists.sh
index 4553c53827..5254361c9c 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-2018 Free Software Foundation, Inc.
+# Copyright (C) 2014-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
@@ -15,7 +15,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
set -e
diff --git a/conform/conformtest.pl b/conform/conformtest.pl
deleted file mode 100644
index a4ef756105..0000000000
--- a/conform/conformtest.pl
+++ /dev/null
@@ -1,898 +0,0 @@
-#!/usr/bin/perl
-
-use GlibcConform;
-use Getopt::Long;
-use POSIX;
-
-$standard = "XOPEN2K8";
-$CC = "gcc";
-$tmpdir = "/tmp";
-$cross = "";
-$xfail_str = "";
-GetOptions ('headers=s' => \@headers, 'standard=s' => \$standard,
- 'flags=s' => \$flags, 'cc=s' => \$CC, 'tmpdir=s' => \$tmpdir,
- 'cross' => \$cross, 'xfail=s' => \$xfail_str);
-@headers = split(/,/,join(',',@headers));
-
-# List of the headers we are testing.
-if (@headers == ()) {
- @headers = ("wordexp.h", "wctype.h", "wchar.h", "varargs.h", "utmpx.h",
- "utime.h", "unistd.h", "ulimit.h", "ucontext.h", "uchar.h",
- "time.h", "tgmath.h", "termios.h", "tar.h", "sys/wait.h",
- "sys/utsname.h", "sys/un.h", "sys/uio.h", "sys/types.h",
- "sys/times.h", "sys/timeb.h", "sys/time.h", "sys/statvfs.h",
- "sys/stat.h", "sys/socket.h", "sys/shm.h", "sys/sem.h",
- "sys/select.h", "sys/resource.h", "sys/msg.h", "sys/mman.h",
- "sys/ipc.h", "syslog.h", "stropts.h", "strings.h", "string.h",
- "stdnoreturn.h", "stdlib.h", "stdio.h", "stdint.h", "stddef.h",
- "stdbool.h", "stdarg.h", "stdalign.h", "spawn.h", "signal.h",
- "setjmp.h", "semaphore.h", "search.h", "sched.h", "regex.h",
- "pwd.h", "pthread.h", "poll.h", "nl_types.h", "netinet/tcp.h",
- "netinet/in.h", "net/if.h", "netdb.h", "ndbm.h", "mqueue.h",
- "monetary.h", "math.h", "locale.h", "libgen.h", "limits.h",
- "langinfo.h", "iso646.h", "inttypes.h", "iconv.h", "grp.h",
- "glob.h", "ftw.h", "fnmatch.h", "fmtmsg.h", "float.h", "fenv.h",
- "fcntl.h", "errno.h", "dlfcn.h", "dirent.h", "ctype.h", "cpio.h",
- "complex.h", "assert.h", "arpa/inet.h", "aio.h");
-}
-
-$CFLAGS_namespace = "$flags -fno-builtin $CFLAGS{$standard} -D_ISOMAC";
-$CFLAGS = "$CFLAGS_namespace '-D__attribute__(x)='";
-
-# Check standard name for validity.
-die "unknown standard \"$standard\"" if ($CFLAGS{$standard} eq "");
-
-# if ($standard ne "XOPEN2K8" && $standard ne "POSIX2008") {
-# # Some headers need a bit more attention. At least with XPG7
-# # all headers should be self-contained.
-# $mustprepend{'inttypes.h'} = "#include <stddef.h>\n";
-# $mustprepend{'glob.h'} = "#include <sys/types.h>\n";
-# $mustprepend{'grp.h'} = "#include <sys/types.h>\n";
-# $mustprepend{'regex.h'} = "#include <sys/types.h>\n";
-# $mustprepend{'pwd.h'} = "#include <sys/types.h>\n";
-# $mustprepend{'sched.h'} = "#include <sys/types.h>\n";
-# $mustprepend{'signal.h'} = "#include <pthread.h>\n#include <sys/types.h>\n";
-# $mustprepend{'stdio.h'} = "#include <sys/types.h>\n";
-# $mustprepend{'sys/stat.h'} = "#include <sys/types.h>\n";
-# $mustprepend{'wchar.h'} = "#include <stdarg.h>\n";
-# $mustprepend{'wordexp.h'} = "#include <stddef.h>\n";
-# }
-
-# These are the ISO C90 keywords.
-@keywords = ('auto', 'break', 'case', 'char', 'const', 'continue', 'default',
- 'do', 'double', 'else', 'enum', 'extern', 'float', 'for', 'goto',
- 'if', 'int', 'long', 'register', 'return',
- 'short', 'signed', 'sizeof', 'static', 'struct', 'switch',
- 'typedef', 'union', 'unsigned', 'void', 'volatile', 'while');
-if ($CFLAGS{$standard} =~ /-std=(c99|c1x)/) {
- push (@keywords, 'inline', 'restrict');
-}
-
-# Make a hash table from this information.
-while ($#keywords >= 0) {
- $iskeyword{pop (@keywords)} = 1;
-}
-
-$verbose = 1;
-
-$total = 0;
-$skipped = 0;
-$errors = 0;
-$xerrors = 0;
-
-sub note_error {
- my($xfail) = @_;
- if ($xfail) {
- $xerrors++;
- printf ("Ignoring this failure.\n");
- } else {
- $errors++;
- }
-}
-
-
-sub poorfnmatch {
- my($pattern, $string) = @_;
- my($strlen) = length ($string);
- my($res);
-
- if (substr ($pattern, 0, 1) eq '*') {
- my($patlen) = length ($pattern) - 1;
- $res = ($strlen >= $patlen
- && substr ($pattern, -$patlen, $patlen) eq substr ($string, -$patlen, $patlen));
- } elsif (substr ($pattern, -1, 1) eq '*') {
- if (substr ($pattern, -2, 1) eq ']') {
- my($patlen) = index ($pattern, '[');
- my($range) = substr ($pattern, $patlen + 1, -2);
- $res = ($strlen > $patlen
- && substr ($pattern, 0, $patlen) eq substr ($string, 0, $patlen)
- && index ($range, substr ($string, $patlen, 1)) != -1);
- } else {
- my($patlen) = length ($pattern) - 1;
- $res = ($strlen >= $patlen
- && substr ($pattern, 0, $patlen) eq substr ($string, 0, $patlen));
- }
- } else {
- $res = $pattern eq $string;
- }
- return $res;
-}
-
-
-sub compiletest
-{
- my($fnamebase, $msg, $errmsg, $skip, $optional, $xfail) = @_;
- my($result) = $skip;
- my($printlog) = 0;
-
- ++$total;
- printf (" $msg...");
-
- if ($skip != 0) {
- ++$skipped;
- printf (" SKIP\n");
- } else {
- $ret = system "$CC $CFLAGS -c $fnamebase.c -o $fnamebase.o > $fnamebase.out 2>&1";
- if ($ret != 0) {
- if ($optional != 0) {
- printf (" $errmsg\n");
- $result = 1;
- } else {
- printf (" FAIL\n");
- if ($verbose != 0) {
- printf (" $errmsg Compiler message:\n");
- $printlog = 1;
- }
- note_error($xfail);
- $result = 1;
- }
- } else {
- printf (" OK\n");
- if ($verbose > 1 && -s "$fnamebase.out") {
- # We print all warnings issued.
- $printlog = 1;
- }
- }
- if ($printlog != 0) {
- printf (" " . "-" x 71 . "\n");
- open (MESSAGE, "< $fnamebase.out");
- while (<MESSAGE>) {
- printf (" %s", $_);
- }
- close (MESSAGE);
- printf (" " . "-" x 71 . "\n");
- }
- }
- unlink "$fnamebase.c";
- unlink "$fnamebase.o";
- unlink "$fnamebase.out";
-
- $result;
-}
-
-
-sub runtest
-{
- my($fnamebase, $msg, $errmsg, $skip, $xfail) = @_;
- my($result) = $skip;
- my($printlog) = 0;
-
- ++$total;
- printf (" $msg...");
-
- if ($skip != 0) {
- ++$skipped;
- printf (" SKIP\n");
- } else {
- $ret = system "$CC $CFLAGS -o $fnamebase $fnamebase.c > $fnamebase.out 2>&1";
- if ($ret != 0) {
- printf (" FAIL\n");
- if ($verbose != 0) {
- printf (" $errmsg Compiler message:\n");
- $printlog = 1;
- }
- note_error($xfail);
- $result = 1;
- } elsif ($cross) {
- printf (" SKIP\n");
- } else {
- # Now run the program. If the exit code is not zero something is wrong.
- $result = system "$fnamebase > $fnamebase.out2 2>&1";
- if ($result == 0) {
- printf (" OK\n");
- if ($verbose > 1 && -s "$fnamebase.out") {
- # We print all warnings issued.
- $printlog = 1;
- system "cat $fnamebase.out2 >> $fnamebase.out";
- }
- } else {
- printf (" FAIL\n");
- note_error($xfail);
- $printlog = 1;
- unlink "$fnamebase.out";
- rename "$fnamebase.out2", "$fnamebase.out";
- }
- }
- if ($printlog != 0) {
- printf (" " . "-" x 71 . "\n");
- open (MESSAGE, "< $fnamebase.out");
- while (<MESSAGE>) {
- printf (" %s", $_);
- }
- close (MESSAGE);
- printf (" " . "-" x 71 . "\n");
- }
- }
- unlink "$fnamebase";
- unlink "$fnamebase.c";
- unlink "$fnamebase.o";
- unlink "$fnamebase.out";
- unlink "$fnamebase.out2";
-
- $result;
-}
-
-
-sub newtoken {
- my($token, @allow) = @_;
- my($idx);
-
- return if ($token =~ /^[0-9_]/ || $iskeyword{$token});
-
- for ($idx = 0; $idx <= $#allow; ++$idx) {
- return if (poorfnmatch ($allow[$idx], $token));
- }
-
- $errors{$token} = 1;
-}
-
-
-sub removetoken {
- my($token) = @_;
- my($idx);
-
- return if ($token =~ /^[0-9_]/ || $iskeyword{$token});
-
- if (exists $errors{$token}) {
- undef $errors{$token};
- }
-}
-
-
-sub checknamespace {
- my($h, $fnamebase, @allow) = @_;
-
- ++$total;
-
- # Generate a program to get the contents of this header.
- open (TESTFILE, ">$fnamebase.c");
- print TESTFILE "#include <$h>\n";
- close (TESTFILE);
-
- undef %errors;
- open (CONTENT, "$CC $CFLAGS_namespace -E $fnamebase.c -P -Wp,-dN | sed -e '/^# [1-9]/d' -e '/^[[:space:]]*\$/d' |");
- loop: while (<CONTENT>) {
- chop;
- if (/^#define (.*)/) {
- newtoken ($1, @allow);
- } elsif (/^#undef (.*)/) {
- removetoken ($1);
- } else {
- # We have to tokenize the line.
- my($str) = $_;
-
- $str =~ s/"[^"]*"//g;
- foreach $token (split(/[^a-zA-Z0-9_]/, $str)) {
- if ($token ne "") {
- newtoken ($token, @allow);
- }
- }
- }
- }
- close (CONTENT);
- unlink "$fnamebase.c";
- $realerror = 0;
- if ($#errors != 0) {
- # Sort the output list so it's easier to compare results with diff.
- foreach $f (sort keys(%errors)) {
- if ($errors{$f} == 1) {
- if ($realerror == 0) {
- printf ("FAIL\n " . "-" x 72 . "\n");
- $realerror = 1;
- ++$errors;
- }
- printf (" Namespace violation: \"%s\"\n", $f);
- }
- }
- printf (" " . "-" x 72 . "\n") if ($realerror != 0);
- }
-
- if ($realerror == 0) {
- printf ("OK\n");
- }
-}
-
-
-while ($#headers >= 0) {
- my($h) = pop (@headers);
- my($hf) = $h;
- $hf =~ s|/|-|;
- my($fnamebase) = "$tmpdir/$hf-test";
- my($missing) = 1;
- my(@allow) = ();
- my(@allowheader) = ();
- my(%seenheader) = ();
- my($prepend) = $mustprepend{$h};
- my($test_exist) = 1;
-
- printf ("Testing <$h>\n");
- printf ("----------" . "-" x length ($h) . "\n");
-
- open (CONTROL, "$CC -E -D$standard -std=c99 -x c data/$h-data |");
- control: while (<CONTROL>) {
- chop;
- next control if (/^#/);
- next control if (/^[ ]*$/);
-
- if ($test_exist) {
- $test_exist = 0;
- # Generate a program to test for the availability of this header.
- open (TESTFILE, ">$fnamebase.c");
- print TESTFILE "$prepend";
- print TESTFILE "#include <$h>\n";
- close (TESTFILE);
-
- $missing = compiletest ($fnamebase, "Checking whether <$h> is available",
- "Header <$h> not available", 0, 0, 0);
- printf ("\n");
- last control if ($missing);
- }
-
- my($xfail) = 0;
- if (/^xfail-/) {
- s/^xfail-//;
- $xfail = 1;
- } elsif (/^xfail\[([^\]]*)\]-/) {
- my($xfail_cond) = $1;
- s/^xfail\[([^\]]*)\]-//;
- # "xfail[cond]-" or "xfail[cond1|cond2|...]-" means a failure of
- # the test is allowed if any of the listed conditions are in the
- # --xfail command-line option argument.
- if ($xfail_str =~ /\b($xfail_cond)\b/) {
- $xfail = 1;
- }
- }
- my($optional) = 0;
- if (/^optional-/) {
- s/^optional-//;
- $optional = 1;
- }
- if (/^element *(\{([^}]*)\}|([^{ ]*)) *(\{([^}]*)\}|([^{ ]*)) *([A-Za-z0-9_]*) *(.*)/) {
- my($struct) = "$2$3";
- my($type) = "$5$6";
- my($member) = "$7";
- my($rest) = "$8";
- my($res) = $missing;
-
- # Remember that this name is allowed.
- push @allow, $member;
-
- # Generate a program to test for the availability of this member.
- open (TESTFILE, ">$fnamebase.c");
- print TESTFILE "$prepend";
- print TESTFILE "#include <$h>\n";
- print TESTFILE "$struct a;\n";
- print TESTFILE "$struct b;\n";
- print TESTFILE "extern void xyzzy (__typeof__ (&b.$member), __typeof__ (&a.$member), unsigned);\n";
- print TESTFILE "void foobarbaz (void) {\n";
- print TESTFILE " xyzzy (&a.$member, &b.$member, sizeof (a.$member));\n";
- print TESTFILE "}\n";
- close (TESTFILE);
-
- $res = compiletest ($fnamebase, "Testing for member $member",
- ($optional
- ? "NOT AVAILABLE."
- : "Member \"$member\" not available."), $res,
- $optional, $xfail);
-
- if ($res == 0 || $missing != 0 || !$optional) {
- # Test the types of the members.
- open (TESTFILE, ">$fnamebase.c");
- print TESTFILE "$prepend";
- print TESTFILE "#include <$h>\n";
- print TESTFILE "$struct a;\n";
- print TESTFILE "extern $type b$rest;\n";
- print TESTFILE "extern __typeof__ (a.$member) b;\n";
- close (TESTFILE);
-
- compiletest ($fnamebase, "Testing for type of member $member",
- "Member \"$member\" does not have the correct type.",
- $res, 0, $xfail);
- }
- } elsif (/^(macro|constant|macro-constant|macro-int-constant) +([a-zA-Z0-9_]*) *(?:{([^}]*)} *)?(?:([>=<!]+) ([A-Za-z0-9_\\'-]*))?/) {
- my($symbol_type) = $1;
- my($symbol) = $2;
- my($type) = $3;
- my($op) = $4;
- my($value) = $5;
- my($res) = $missing;
- my($mres) = $missing;
- my($cres) = $missing;
-
- # Remember that this name is allowed.
- push @allow, $symbol;
-
- if ($symbol_type =~ /macro/) {
- # Generate a program to test for availability of this macro.
- open (TESTFILE, ">$fnamebase.c");
- print TESTFILE "$prepend";
- print TESTFILE "#include <$h>\n";
- print TESTFILE "#ifndef $symbol\n";
- print TESTFILE "# error \"Macro $symbol not defined\"\n";
- print TESTFILE "#endif\n";
- close (TESTFILE);
-
- $mres = compiletest ($fnamebase, "Test availability of macro $symbol",
- ($optional
- ? "NOT PRESENT"
- : "Macro \"$symbol\" is not available."), $res,
- $optional, $xfail);
- }
-
- if ($symbol_type =~ /constant/) {
- # Generate a program to test for the availability of this constant.
- open (TESTFILE, ">$fnamebase.c");
- print TESTFILE "$prepend";
- print TESTFILE "#include <$h>\n";
- print TESTFILE "__typeof__ ($symbol) a = $symbol;\n";
- close (TESTFILE);
-
- $cres = compiletest ($fnamebase, "Testing for constant $symbol",
- ($optional
- ? "NOT PRESENT"
- : "Constant \"$symbol\" not available."), $res,
- $optional, $xfail);
- }
-
- $res = $res || $mres || $cres;
-
- if ($symbol_type eq "macro-int-constant" && ($res == 0 || !$optional)) {
- # Test that the symbol is usable in #if.
- open (TESTFILE, ">$fnamebase.c");
- print TESTFILE "$prepend";
- print TESTFILE "#include <$h>\n";
- print TESTFILE "#if $symbol < 0\n";
- print TESTFILE "# define conformtest_negative 1\n";
- my($s) = "0";
- for (my $i = 0; $i < 63; $i++) {
- print TESTFILE "# if $symbol & (1LL << $i)\n";
- print TESTFILE "# define conformtest_bit_$i 0LL\n";
- print TESTFILE "# else\n";
- print TESTFILE "# define conformtest_bit_$i (1LL << $i)\n";
- print TESTFILE "# endif\n";
- $s .= "|conformtest_bit_$i";
- }
- print TESTFILE "# define conformtest_value ~($s)\n";
- print TESTFILE "#else\n";
- print TESTFILE "# define conformtest_negative 0\n";
- $s = "0";
- for (my $i = 0; $i < 64; $i++) {
- print TESTFILE "# if $symbol & (1ULL << $i)\n";
- print TESTFILE "# define conformtest_bit_$i (1ULL << $i)\n";
- print TESTFILE "# else\n";
- print TESTFILE "# define conformtest_bit_$i 0ULL\n";
- print TESTFILE "# endif\n";
- $s .= "|conformtest_bit_$i";
- }
- print TESTFILE "# define conformtest_value ($s)\n";
- print TESTFILE "#endif\n";
- print TESTFILE "_Static_assert ((($symbol < 0) == conformtest_negative) && ($symbol == conformtest_value), \"value match inside and outside #if\");\n";
- close (TESTFILE);
-
- compiletest ($fnamebase, "Testing for #if usability of symbol $symbol",
- "Symbol \"$symbol\" not usable in #if.", $res, 0, $xfail);
- }
-
- if (defined ($type) && ($res == 0 || !$optional)) {
- # Test the type of the symbol.
- open (TESTFILE, ">$fnamebase.c");
- print TESTFILE "$prepend";
- print TESTFILE "#include <$h>\n";
- if ($type =~ /^promoted:/) {
- $type =~ s/^promoted://;
- print TESTFILE "__typeof__ (($type) 0 + ($type) 0) a;\n";
- } else {
- print TESTFILE "__typeof__ (($type) 0) a;\n";
- }
- print TESTFILE "extern __typeof__ ($symbol) a;\n";
- close (TESTFILE);
-
- compiletest ($fnamebase, "Testing for type of symbol $symbol",
- "Symbol \"$symbol\" does not have the correct type.",
- $res, 0, $xfail);
- }
-
- if (defined ($op) && ($res == 0 || !$optional)) {
- # Generate a program to test for the value of this symbol.
- open (TESTFILE, ">$fnamebase.c");
- print TESTFILE "$prepend";
- print TESTFILE "#include <$h>\n";
- print TESTFILE "_Static_assert ($symbol $op $value, \"value constraint\");\n";
- close (TESTFILE);
-
- $res = compiletest ($fnamebase, "Testing for value of symbol $symbol",
- "Symbol \"$symbol\" has not the right value.",
- $res, 0, $xfail);
- }
- } elsif (/^symbol *([a-zA-Z0-9_]*) *([A-Za-z0-9_-]*)?/) {
- my($symbol) = $1;
- my($value) = $2;
- my($res) = $missing;
-
- # Remember that this name is allowed.
- push @allow, $symbol;
-
- # Generate a program to test for the availability of this constant.
- open (TESTFILE, ">$fnamebase.c");
- print TESTFILE "$prepend";
- print TESTFILE "#include <$h>\n";
- print TESTFILE "void foobarbaz (void) {\n";
- print TESTFILE "__typeof__ ($symbol) a = $symbol;\n";
- print TESTFILE "}\n";
- close (TESTFILE);
-
- $res = compiletest ($fnamebase, "Testing for symbol $symbol",
- "Symbol \"$symbol\" not available.", $res, 0, $xfail);
-
- if ($value ne "") {
- # Generate a program to test for the value of this constant.
- open (TESTFILE, ">$fnamebase.c");
- print TESTFILE "$prepend";
- print TESTFILE "#include <$h>\n";
- print TESTFILE "int main (void) { return $symbol != $value; }\n";
- close (TESTFILE);
-
- $res = runtest ($fnamebase, "Testing for value of symbol $symbol",
- "Symbol \"$symbol\" has not the right value.", $res,
- $xfail);
- }
- } elsif (/^type *(\{([^}]*)|([a-zA-Z0-9_]*))/) {
- my($type) = "$2$3";
- my($maybe_opaque) = 0;
-
- # Remember that this name is allowed.
- if ($type =~ /^struct *(.*)/) {
- push @allow, $1;
- } elsif ($type =~ /^union *(.*)/) {
- push @allow, $1;
- } else {
- push @allow, $type;
- $maybe_opaque = 1;
- }
-
- # Generate a program to test for the availability of this type.
- open (TESTFILE, ">$fnamebase.c");
- print TESTFILE "$prepend";
- print TESTFILE "#include <$h>\n";
- if ($maybe_opaque == 1) {
- print TESTFILE "$type *a;\n";
- } else {
- print TESTFILE "$type a;\n";
- }
- close (TESTFILE);
-
- compiletest ($fnamebase, "Testing for type $type",
- ($optional
- ? "NOT AVAILABLE"
- : "Type \"$type\" not available."), $missing, $optional,
- $xfail);
- } elsif (/^tag *(\{([^}]*)|([a-zA-Z0-9_]*))/) {
- my($type) = "$2$3";
-
- # Remember that this name is allowed.
- if ($type =~ /^struct *(.*)/) {
- push @allow, $1;
- } elsif ($type =~ /^union *(.*)/) {
- push @allow, $1;
- } else {
- push @allow, $type;
- }
-
- # Generate a program to test for the availability of this type.
- open (TESTFILE, ">$fnamebase.c");
- print TESTFILE "$prepend";
- print TESTFILE "#include <$h>\n";
- print TESTFILE "$type;\n";
- close (TESTFILE);
-
- compiletest ($fnamebase, "Testing for type $type",
- "Type \"$type\" not available.", $missing, 0, $xfail);
- } elsif (/^function *(\{([^}]*)\}|([a-zA-Z0-9_]*)) [(][*]([a-zA-Z0-9_]*) ([(].*[)])/) {
- my($rettype) = "$2$3";
- my($fname) = "$4";
- my($args) = "$5";
- my($res) = $missing;
-
- # Remember that this name is allowed.
- push @allow, $fname;
-
- # Generate a program to test for availability of this function.
- open (TESTFILE, ">$fnamebase.c");
- print TESTFILE "$prepend";
- print TESTFILE "#include <$h>\n";
- # print TESTFILE "#undef $fname\n";
- print TESTFILE "$rettype (*(*foobarbaz) $args = $fname;\n";
- close (TESTFILE);
-
- $res = compiletest ($fnamebase, "Test availability of function $fname",
- ($optional
- ? "NOT AVAILABLE"
- : "Function \"$fname\" is not available."), $res,
- $optional, $xfail);
-
- if ($res == 0 || $missing == 1 || !$optional) {
- # Generate a program to test for the type of this function.
- open (TESTFILE, ">$fnamebase.c");
- print TESTFILE "$prepend";
- print TESTFILE "#include <$h>\n";
- # print TESTFILE "#undef $fname\n";
- print TESTFILE "extern $rettype (*(*foobarbaz) $args;\n";
- print TESTFILE "extern __typeof__ (&$fname) foobarbaz;\n";
- close (TESTFILE);
-
- compiletest ($fnamebase, "Test for type of function $fname",
- "Function \"$fname\" has incorrect type.", $res, 0,
- $xfail);
- }
- } elsif (/^function *(\{([^}]*)\}|([a-zA-Z0-9_]*)) ([a-zA-Z0-9_]*) ([(].*[)])/) {
- my($rettype) = "$2$3";
- my($fname) = "$4";
- my($args) = "$5";
- my($res) = $missing;
-
- # Remember that this name is allowed.
- push @allow, $fname;
-
- # Generate a program to test for availability of this function.
- open (TESTFILE, ">$fnamebase.c");
- print TESTFILE "$prepend";
- print TESTFILE "#include <$h>\n";
- # print TESTFILE "#undef $fname\n";
- print TESTFILE "$rettype (*foobarbaz) $args = $fname;\n";
- close (TESTFILE);
-
- $res = compiletest ($fnamebase, "Test availability of function $fname",
- ($optional
- ? "NOT AVAILABLE"
- : "Function \"$fname\" is not available."), $res,
- $optional, $xfail);
-
- if ($res == 0 || $missing != 0 || !$optional) {
- # Generate a program to test for the type of this function.
- open (TESTFILE, ">$fnamebase.c");
- print TESTFILE "$prepend";
- print TESTFILE "#include <$h>\n";
- # print TESTFILE "#undef $fname\n";
- print TESTFILE "extern $rettype (*foobarbaz) $args;\n";
- print TESTFILE "extern __typeof__ (&$fname) foobarbaz;\n";
- close (TESTFILE);
-
- compiletest ($fnamebase, "Test for type of function $fname",
- "Function \"$fname\" has incorrect type.", $res, 0,
- $xfail);
- }
- } elsif (/^variable *(\{([^}]*)\}|([a-zA-Z0-9_]*)) ([a-zA-Z0-9_]*) *(.*)/) {
- my($type) = "$2$3";
- my($vname) = "$4";
- my($rest) = "$5";
- my($res) = $missing;
-
- # Remember that this name is allowed.
- push @allow, $vname;
-
- # Generate a program to test for availability of this function.
- open (TESTFILE, ">$fnamebase.c");
- print TESTFILE "$prepend";
- print TESTFILE "#include <$h>\n";
- # print TESTFILE "#undef $fname\n";
- print TESTFILE "typedef $type xyzzy$rest;\n";
- print TESTFILE "$xyzzy *foobarbaz = &$vname;\n";
- close (TESTFILE);
-
- $res = compiletest ($fnamebase, "Test availability of variable $vname",
- "Variable \"$vname\" is not available.", $res, 0,
- $xfail);
-
- # Generate a program to test for the type of this function.
- open (TESTFILE, ">$fnamebase.c");
- print TESTFILE "$prepend";
- print TESTFILE "#include <$h>\n";
- # print TESTFILE "#undef $fname\n";
- print TESTFILE "extern $type $vname$rest;\n";
- close (TESTFILE);
-
- compiletest ($fnamebase, "Test for type of variable $fname",
- "Variable \"$vname\" has incorrect type.", $res, 0, $xfail);
- } elsif (/^macro-function *(\{([^}]*)\}|([a-zA-Z0-9_]*)) ([a-zA-Z0-9_]*) ([(].*[)])/) {
- my($rettype) = "$2$3";
- my($fname) = "$4";
- my($args) = "$5";
- my($res) = $missing;
-
- # Remember that this name is allowed.
- push @allow, $fname;
-
- # Generate a program to test for availability of this function.
- open (TESTFILE, ">$fnamebase.c");
- print TESTFILE "$prepend";
- print TESTFILE "#include <$h>\n";
- print TESTFILE "#ifndef $fname\n";
- print TESTFILE "$rettype (*foobarbaz) $args = $fname;\n";
- print TESTFILE "#endif\n";
- close (TESTFILE);
-
- $res = compiletest ($fnamebase, "Test availability of macro $fname",
- "Function \"$fname\" is not available.", $res, 0,
- $xfail);
-
- # Generate a program to test for the type of this function.
- open (TESTFILE, ">$fnamebase.c");
- print TESTFILE "$prepend";
- print TESTFILE "#include <$h>\n";
- print TESTFILE "#ifndef $fname\n";
- print TESTFILE "extern $rettype (*foobarbaz) $args;\n";
- print TESTFILE "extern __typeof__ (&$fname) foobarbaz;\n";
- print TESTFILE "#endif\n";
- close (TESTFILE);
-
- compiletest ($fnamebase, "Test for type of macro $fname",
- "Function \"$fname\" has incorrect type.", $res, 0, $xfail);
- } elsif (/^macro-str *([^ ]*) *(\".*\")/) {
- # The above regex doesn't handle a \" in a string.
- my($macro) = "$1";
- my($string) = "$2";
- my($res) = $missing;
-
- # Remember that this name is allowed.
- push @allow, $macro;
-
- # Generate a program to test for availability of this macro.
- open (TESTFILE, ">$fnamebase.c");
- print TESTFILE "$prepend";
- print TESTFILE "#include <$h>\n";
- print TESTFILE "#ifndef $macro\n";
- print TESTFILE "# error \"Macro $macro not defined\"\n";
- print TESTFILE "#endif\n";
- close (TESTFILE);
-
- compiletest ($fnamebase, "Test availability of macro $macro",
- "Macro \"$macro\" is not available.", $missing, 0, $xfail);
-
- # Generate a program to test for the value of this macro.
- open (TESTFILE, ">$fnamebase.c");
- print TESTFILE "$prepend";
- print TESTFILE "#include <$h>\n";
- # We can't include <string.h> here.
- print TESTFILE "extern int (strcmp)(const char *, const char *);\n";
- print TESTFILE "int main (void) { return (strcmp) ($macro, $string) != 0;}\n";
- close (TESTFILE);
-
- $res = runtest ($fnamebase, "Testing for value of macro $macro",
- "Macro \"$macro\" has not the right value.", $res,
- $xfail);
- } elsif (/^allow-header *(.*)/) {
- my($pattern) = $1;
- if ($seenheader{$pattern} != 1) {
- push @allowheader, $pattern;
- $seenheader{$pattern} = 1;
- }
- next control;
- } elsif (/^allow *(.*)/) {
- my($pattern) = $1;
- push @allow, $pattern;
- next control;
- } else {
- # printf ("line is `%s'\n", $_);
- next control;
- }
-
- printf ("\n");
- }
- close (CONTROL);
-
- # Read the data files for the header files which are allowed to be included.
- while ($#allowheader >= 0) {
- my($ah) = pop @allowheader;
-
- open (ALLOW, "$CC -E -D$standard -x c data/$ah-data |");
- acontrol: while (<ALLOW>) {
- chop;
- next acontrol if (/^#/);
- next acontrol if (/^[ ]*$/);
-
- s/^xfail(\[([^\]]*)\])?-//;
- s/^optional-//;
- if (/^element *(\{([^}]*)\}|([^ ]*)) *(\{([^}]*)\}|([^ ]*)) *([A-Za-z0-9_]*) *(.*)/) {
- push @allow, $7;
- } elsif (/^(macro|constant|macro-constant|macro-int-constant) +([a-zA-Z0-9_]*) *(?:{([^}]*)} *)?(?:([>=<!]+) ([A-Za-z0-9_-]*))?/) {
- push @allow, $2;
- } elsif (/^(type|tag) *(\{([^}]*)|([a-zA-Z0-9_]*))/) {
- my($type) = "$3$4";
-
- # Remember that this name is allowed.
- if ($type =~ /^struct *(.*)/) {
- push @allow, $1;
- } elsif ($type =~ /^union *(.*)/) {
- push @allow, $1;
- } else {
- push @allow, $type;
- }
- } elsif (/^function *(\{([^}]*)\}|([a-zA-Z0-9_]*)) [(][*]([a-zA-Z0-9_]*) ([(].*[)])/) {
- push @allow, $4;
- } elsif (/^function *(\{([^}]*)\}|([a-zA-Z0-9_]*)) ([a-zA-Z0-9_]*) ([(].*[)])/) {
- push @allow, $4;
- } elsif (/^variable *(\{([^}]*)\}|([a-zA-Z0-9_]*)) ([a-zA-Z0-9_]*)/) {
- push @allow, $4;
- } elsif (/^macro-function *(\{([^}]*)\}|([a-zA-Z0-9_]*)) ([a-zA-Z0-9_]*) ([(].*[)])/) {
- push @allow, $4;
- } elsif (/^symbol *([a-zA-Z0-9_]*) *([A-Za-z0-9_-]*)?/) {
- push @allow, $1;
- } elsif (/^allow-header *(.*)/) {
- if ($seenheader{$1} != 1) {
- push @allowheader, $1;
- $seenheader{$1} = 1;
- }
- } elsif (/^allow *(.*)/) {
- push @allow, $1;
- }
- }
- close (ALLOW);
- }
-
- if ($test_exist) {
- printf (" Not defined\n");
- } else {
- # Now check the namespace.
- printf (" Checking the namespace of \"%s\"... ", $h);
- if ($missing) {
- ++$skipped;
- printf ("SKIP\n");
- } else {
- checknamespace ($h, $fnamebase, @allow);
- }
- }
-
- printf ("\n\n");
-}
-
-printf "-" x 76 . "\n";
-printf (" Total number of tests : %4d\n", $total);
-
-printf (" Number of failed tests : %4d (", $errors);
-$percent = ($errors * 100) / $total;
-if ($errors > 0 && $percent < 1.0) {
- printf (" <1%%)\n");
-} else {
- printf ("%3d%%)\n", $percent);
-}
-
-printf (" Number of xfailed tests : %4d (", $xerrors);
-$percent = ($xerrors * 100) / $total;
-if ($xerrors > 0 && $percent < 1.0) {
- printf (" <1%%)\n");
-} else {
- printf ("%3d%%)\n", $percent);
-}
-
-printf (" Number of skipped tests : %4d (", $skipped);
-$percent = ($skipped * 100) / $total;
-if ($skipped > 0 && $percent < 1.0) {
- printf (" <1%%)\n");
-} else {
- printf ("%3d%%)\n", $percent);
-}
-
-exit $errors != 0;
-# Local Variables:
-# perl-indent-level: 2
-# End:
diff --git a/conform/conformtest.py b/conform/conformtest.py
new file mode 100644
index 0000000000..0c3f70f431
--- /dev/null
+++ b/conform/conformtest.py
@@ -0,0 +1,734 @@
+#!/usr/bin/python3
+# Check header contents against the given standard.
+# Copyright (C) 2018-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
+# <https://www.gnu.org/licenses/>.
+
+import argparse
+import fnmatch
+import os.path
+import re
+import subprocess
+import sys
+import tempfile
+
+import glibcconform
+
+
+class CompileSubTest(object):
+ """A compilation subtest."""
+
+ def __init__(self, name, text):
+ """Initialize a CompileSubTest object."""
+ self.run_early = False
+ self.name = name
+ self.text = text
+
+ def run(self, header_tests):
+ """Run a compilation subtest."""
+ header_tests.compile_test(self.name, self.text)
+
+
+class ExecuteSubTest(object):
+ """An execution subtest."""
+
+ def __init__(self, name, text):
+ """Initialize an ExecuteSubTest object."""
+ self.run_early = False
+ self.name = name
+ self.text = text
+
+ def run(self, header_tests):
+ """Run an execution subtest."""
+ header_tests.execute_test(self.name, self.text)
+
+
+class ElementTest(object):
+ """Test for an element of a structure or union type."""
+
+ def __init__(self, dummy, type_name, member_type, member_name, *rest):
+ """Initialize an ElementTest object."""
+ self.type_name = type_name
+ self.member_type = member_type
+ self.member_name = member_name
+ self.rest = ' '.join(rest)
+ self.allow_name = self.member_name
+
+ def gen_subtests(self):
+ """Generate subtests for an ElementTest."""
+ text = ('%(type_name)s a_%(num)d;\n'
+ '%(type_name)s b_%(num)d;\n'
+ 'extern void xyzzy_%(num)d '
+ '(__typeof__ (&b_%(num)d.%(member_name)s), '
+ '__typeof__ (&a_%(num)d.%(member_name)s), unsigned);\n'
+ 'void foobarbaz_%(num)d (void) {\n'
+ 'xyzzy_%(num)d (&a_%(num)d.%(member_name)s, '
+ '&b_%(num)d.%(member_name)s, '
+ 'sizeof (a_%(num)d.%(member_name)s));\n'
+ '}\n'
+ % vars(self))
+ self.subtests.append(CompileSubTest(
+ 'Availability of member %s' % self.member_name,
+ text))
+ text = ('%(type_name)s a2_%(num)d;\n'
+ 'extern %(member_type)s b2_%(num)d%(rest)s;\n'
+ 'extern __typeof__ (a2_%(num)d.%(member_name)s) b2_%(num)d;\n'
+ % vars(self))
+ self.subtests.append(CompileSubTest(
+ 'Type of member %s' % self.member_name,
+ text))
+
+
+class ConstantTest(object):
+ """Test for a macro or constant."""
+
+ def __init__(self, symbol_type, symbol, extra1=None, extra2=None,
+ extra3=None):
+ """Initialize a ConstantTest object."""
+ self.symbol_type = symbol_type
+ self.symbol = symbol
+ # A comparison operation may be specified without a type.
+ if extra2 is not None and extra3 is None:
+ self.c_type = None
+ self.op = extra1
+ self.value = extra2
+ else:
+ self.c_type = extra1
+ self.op = extra2
+ self.value = extra3
+ self.allow_name = self.symbol
+
+ def gen_subtests(self):
+ """Generate subtests for a ConstantTest."""
+ if 'macro' in self.symbol_type:
+ text = ('#ifndef %(symbol)s\n'
+ '# error "Macro %(symbol)s not defined"\n'
+ '#endif\n'
+ % vars(self))
+ self.subtests.append(CompileSubTest(
+ 'Availability of macro %s' % self.symbol,
+ text))
+ if 'constant' in self.symbol_type:
+ text = ('__typeof__ (%(symbol)s) a_%(num)d = %(symbol)s;\n'
+ % vars(self))
+ self.subtests.append(CompileSubTest(
+ 'Availability of constant %s' % self.symbol,
+ text))
+ if self.symbol_type == 'macro-int-constant':
+ sym_bits_def_neg = ''.join(
+ '# if %s & (1LL << %d)\n'
+ '# define conformtest_%d_bit_%d 0LL\n'
+ '# else\n'
+ '# define conformtest_%d_bit_%d (1LL << %d)\n'
+ '# endif\n'
+ % (self.symbol, i, self.num, i, self.num, i, i)
+ for i in range(63))
+ sym_bits_or_neg = '|'.join('conformtest_%d_bit_%d' % (self.num, i)
+ for i in range(63))
+ sym_bits_def_pos = ''.join(
+ '# if %s & (1ULL << %d)\n'
+ '# define conformtest_%d_bit_%d (1ULL << %d)\n'
+ '# else\n'
+ '# define conformtest_%d_bit_%d 0ULL\n'
+ '# endif\n'
+ % (self.symbol, i, self.num, i, i, self.num, i)
+ for i in range(64))
+ sym_bits_or_pos = '|'.join('conformtest_%d_bit_%d' % (self.num, i)
+ for i in range(64))
+ text = ('#if %s < 0\n'
+ '# define conformtest_%d_negative 1\n'
+ '%s'
+ '# define conformtest_%d_value ~(%s)\n'
+ '#else\n'
+ '# define conformtest_%d_negative 0\n'
+ '%s'
+ '# define conformtest_%d_value (%s)\n'
+ '#endif\n'
+ '_Static_assert (((%s < 0) == conformtest_%d_negative) '
+ '&& (%s == conformtest_%d_value), '
+ '"value match inside and outside #if");\n'
+ % (self.symbol, self.num, sym_bits_def_neg, self.num,
+ sym_bits_or_neg, self.num, sym_bits_def_pos, self.num,
+ sym_bits_or_pos, self.symbol, self.num, self.symbol,
+ self.num))
+ self.subtests.append(CompileSubTest(
+ '#if usability of symbol %s'% self.symbol,
+ text))
+ if self.c_type is not None:
+ if self.c_type.startswith('promoted:'):
+ c_type = self.c_type[len('promoted:'):]
+ text = ('__typeof__ ((%s) 0 + (%s) 0) a2_%d;\n'
+ % (c_type, c_type, self.num))
+ else:
+ text = '__typeof__ ((%s) 0) a2_%d;\n' % (self.c_type, self.num)
+ text += 'extern __typeof__ (%s) a2_%d;\n' % (self.symbol, self.num)
+ self.subtests.append(CompileSubTest(
+ 'Type of symbol %s' % self.symbol,
+ text))
+ if self.op is not None:
+ text = ('_Static_assert (%(symbol)s %(op)s %(value)s, '
+ '"value constraint");\n'
+ % vars(self))
+ self.subtests.append(CompileSubTest(
+ 'Value of symbol %s' % self.symbol,
+ text))
+
+
+class SymbolTest(object):
+ """Test for a symbol (not a compile-time constant)."""
+
+ def __init__(self, dummy, symbol, value=None):
+ """Initialize a SymbolTest object."""
+ self.symbol = symbol
+ self.value = value
+ self.allow_name = self.symbol
+
+ def gen_subtests(self):
+ """Generate subtests for a SymbolTest."""
+ text = ('void foobarbaz_%(num)d (void) {\n'
+ '__typeof__ (%(symbol)s) a_%(num)d = %(symbol)s;\n'
+ '}\n'
+ % vars(self))
+ self.subtests.append(CompileSubTest(
+ 'Availability of symbol %s' % self.symbol,
+ text))
+ if self.value is not None:
+ text = ('int main (void) { return %(symbol)s != %(symbol)s; }\n'
+ % vars(self))
+ self.subtests.append(ExecuteSubTest(
+ 'Value of symbol %s' % self.symbol,
+ text))
+
+
+class TypeTest(object):
+ """Test for a type name."""
+
+ def __init__(self, dummy, type_name):
+ """Initialize a TypeTest object."""
+ self.type_name = type_name
+ if type_name.startswith('struct '):
+ self.allow_name = type_name[len('struct '):]
+ self.maybe_opaque = False
+ elif type_name.startswith('union '):
+ self.allow_name = type_name[len('union '):]
+ self.maybe_opaque = False
+ else:
+ self.allow_name = type_name
+ self.maybe_opaque = True
+
+ def gen_subtests(self):
+ """Generate subtests for a TypeTest."""
+ text = ('%s %sa_%d;\n'
+ % (self.type_name, '*' if self.maybe_opaque else '', self.num))
+ self.subtests.append(CompileSubTest(
+ 'Availability of type %s' % self.type_name,
+ text))
+
+
+class TagTest(object):
+ """Test for a tag name."""
+
+ def __init__(self, dummy, type_name):
+ """Initialize a TagTest object."""
+ self.type_name = type_name
+ if type_name.startswith('struct '):
+ self.allow_name = type_name[len('struct '):]
+ elif type_name.startswith('union '):
+ self.allow_name = type_name[len('union '):]
+ else:
+ raise ValueError('unexpected kind of tag: %s' % type_name)
+
+ def gen_subtests(self):
+ """Generate subtests for a TagTest."""
+ # If the tag is not declared, these function prototypes have
+ # incompatible types.
+ text = ('void foo_%(num)d (%(type_name)s *);\n'
+ 'void foo_%(num)d (%(type_name)s *);\n'
+ % vars(self))
+ self.subtests.append(CompileSubTest(
+ 'Availability of tag %s' % self.type_name,
+ text))
+
+
+class FunctionTest(object):
+ """Test for a function."""
+
+ def __init__(self, dummy, return_type, function_name, *args):
+ """Initialize a FunctionTest object."""
+ self.function_name_full = function_name
+ self.args = ' '.join(args)
+ if function_name.startswith('(*'):
+ # Function returning a pointer to function.
+ self.return_type = '%s (*' % return_type
+ self.function_name = function_name[len('(*'):]
+ else:
+ self.return_type = return_type
+ self.function_name = function_name
+ self.allow_name = self.function_name
+
+ def gen_subtests(self):
+ """Generate subtests for a FunctionTest."""
+ text = ('%(return_type)s (*foobarbaz_%(num)d) %(args)s '
+ '= %(function_name)s;\n'
+ % vars(self))
+ self.subtests.append(CompileSubTest(
+ 'Availability of function %s' % self.function_name,
+ text))
+ text = ('extern %(return_type)s (*foobarbaz2_%(num)d) %(args)s;\n'
+ 'extern __typeof__ (&%(function_name)s) foobarbaz2_%(num)d;\n'
+ % vars(self))
+ self.subtests.append(CompileSubTest(
+ 'Type of function %s' % self.function_name,
+ text))
+
+
+class VariableTest(object):
+ """Test for a variable."""
+
+ def __init__(self, dummy, var_type, var_name, *rest):
+ """Initialize a VariableTest object."""
+ self.var_type = var_type
+ self.var_name = var_name
+ self.rest = ' '.join(rest)
+ self.allow_name = var_name
+
+ def gen_subtests(self):
+ """Generate subtests for a VariableTest."""
+ text = ('typedef %(var_type)s xyzzy_%(num)d%(rest)s;\n'
+ 'xyzzy_%(num)d *foobarbaz_%(num)d = &%(var_name)s;\n'
+ % vars(self))
+ self.subtests.append(CompileSubTest(
+ 'Availability of variable %s' % self.var_name,
+ text))
+ text = ('extern %(var_type)s %(var_name)s%(rest)s;\n'
+ % vars(self))
+ self.subtests.append(CompileSubTest(
+ 'Type of variable %s' % self.var_name,
+ text))
+
+
+class MacroFunctionTest(object):
+ """Test for a possibly macro-only function."""
+
+ def __init__(self, dummy, return_type, function_name, *args):
+ """Initialize a MacroFunctionTest object."""
+ self.return_type = return_type
+ self.function_name = function_name
+ self.args = ' '.join(args)
+ self.allow_name = function_name
+
+ def gen_subtests(self):
+ """Generate subtests for a MacroFunctionTest."""
+ text = ('#ifndef %(function_name)s\n'
+ '%(return_type)s (*foobarbaz_%(num)d) %(args)s '
+ '= %(function_name)s;\n'
+ '#endif\n'
+ % vars(self))
+ self.subtests.append(CompileSubTest(
+ 'Availability of macro %s' % self.function_name,
+ text))
+ text = ('#ifndef %(function_name)s\n'
+ 'extern %(return_type)s (*foobarbaz2_%(num)d) %(args)s;\n'
+ 'extern __typeof__ (&%(function_name)s) foobarbaz2_%(num)d;\n'
+ '#endif\n'
+ % vars(self))
+ self.subtests.append(CompileSubTest(
+ 'Type of macro %s' % self.function_name,
+ text))
+
+
+class MacroStrTest(object):
+ """Test for a string-valued macro."""
+
+ def __init__(self, dummy, macro_name, value):
+ """Initialize a MacroStrTest object."""
+ self.macro_name = macro_name
+ self.value = value
+ self.allow_name = macro_name
+
+ def gen_subtests(self):
+ """Generate subtests for a MacroStrTest."""
+ text = ('#ifndef %(macro_name)s\n'
+ '# error "Macro %(macro_name)s not defined"\n'
+ '#endif\n'
+ % vars(self))
+ self.subtests.append(CompileSubTest(
+ 'Availability of macro %s' % self.macro_name,
+ text))
+ # We can't include <string.h> here.
+ text = ('extern int (strcmp)(const char *, const char *);\n'
+ 'int main (void) { return (strcmp) (%(macro_name)s, '
+ '%(value)s) != 0; }\n'
+ % vars(self))
+ self.subtests.append(ExecuteSubTest(
+ 'Value of macro %s' % self.macro_name,
+ text))
+
+
+class HeaderTests(object):
+ """The set of tests run for a header."""
+
+ def __init__(self, header, standard, cc, flags, cross, xfail):
+ """Initialize a HeaderTests object."""
+ self.header = header
+ self.standard = standard
+ self.cc = cc
+ self.flags = flags
+ self.cross = cross
+ self.xfail_str = xfail
+ self.cflags_namespace = ('%s -fno-builtin %s -D_ISOMAC'
+ % (flags, glibcconform.CFLAGS[standard]))
+ # When compiling the conformance test programs, use of
+ # __attribute__ in headers is disabled because of attributes
+ # that affect the types of functions as seen by typeof.
+ self.cflags = "%s '-D__attribute__(x)='" % self.cflags_namespace
+ self.tests = []
+ self.allow = set()
+ self.allow_fnmatch = set()
+ self.headers_handled = set()
+ self.num_tests = 0
+ self.total = 0
+ self.skipped = 0
+ self.errors = 0
+ self.xerrors = 0
+
+ def add_allow(self, name, pattern_ok):
+ """Add an identifier as an allowed token for this header.
+
+ If pattern_ok, fnmatch patterns are OK as well as
+ identifiers.
+
+ """
+ if re.fullmatch(r'[A-Za-z_][A-Za-z0-9_]*', name):
+ self.allow.add(name)
+ elif pattern_ok:
+ self.allow_fnmatch.add(name)
+ else:
+ raise ValueError('bad identifier: %s' % name)
+
+ def check_token(self, bad_tokens, token):
+ """Check whether an identifier token is allowed, and record it in
+ bad_tokens if not.
+
+ """
+ if token.startswith('_'):
+ return
+ if token in glibcconform.KEYWORDS[self.standard]:
+ return
+ if token in self.allow:
+ return
+ for pattern in self.allow_fnmatch:
+ if fnmatch.fnmatch(token, pattern):
+ return
+ bad_tokens.add(token)
+
+ def handle_test_line(self, line, allow):
+ """Handle a single line in the test data.
+
+ If allow is true, the header is one specified in allow-header
+ and so tests are marked as allowed for namespace purposes but
+ otherwise ignored.
+
+ """
+ orig_line = line
+ xfail = False
+ if line.startswith('xfail-'):
+ xfail = True
+ line = line[len('xfail-'):]
+ else:
+ match = re.match(r'xfail\[(.*?)\]-(.*)', line)
+ if match:
+ xfail_cond = match.group(1)
+ line = match.group(2)
+ # "xfail[cond]-" or "xfail[cond1|cond2|...]-" means a
+ # failure of the test is allowed if any of the listed
+ # conditions are in the --xfail command-line option
+ # argument.
+ if self.xfail_str and re.search(r'\b(%s)\b' % xfail_cond,
+ self.xfail_str):
+ xfail = True
+ optional = False
+ if line.startswith('optional-'):
+ optional = True
+ line = line[len('optional-'):]
+ # Tokens in test data are space-separated, except for {...}
+ # tokens that may contain spaces.
+ tokens = []
+ while line:
+ match = re.match(r'\{(.*?)\}(.*)', line)
+ if match:
+ tokens.append(match.group(1))
+ line = match.group(2)
+ else:
+ match = re.match(r'([^ ]*)(.*)', line)
+ tokens.append(match.group(1))
+ line = match.group(2)
+ line = line.strip()
+ if tokens[0] == 'allow-header':
+ if len(tokens) != 2 or xfail or optional:
+ raise ValueError('bad allow-header line: %s' % orig_line)
+ if tokens[1] not in self.headers_handled:
+ self.load_tests(tokens[1], True)
+ return
+ if tokens[0] == 'allow':
+ if len(tokens) != 2 or xfail or optional:
+ raise ValueError('bad allow line: %s' % orig_line)
+ self.add_allow(tokens[1], True)
+ return
+ test_classes = {'element': ElementTest,
+ 'macro': ConstantTest,
+ 'constant': ConstantTest,
+ 'macro-constant': ConstantTest,
+ 'macro-int-constant': ConstantTest,
+ 'symbol': SymbolTest,
+ 'type': TypeTest,
+ 'tag': TagTest,
+ 'function': FunctionTest,
+ 'variable': VariableTest,
+ 'macro-function': MacroFunctionTest,
+ 'macro-str': MacroStrTest}
+ test = test_classes[tokens[0]](*tokens)
+ test.xfail = xfail
+ test.optional = optional
+ test.num = self.num_tests
+ test.subtests = []
+ self.num_tests += 1
+ self.add_allow(test.allow_name, False)
+ if not allow:
+ test.gen_subtests()
+ self.tests.append(test)
+
+ def load_tests(self, header, allow):
+ """Load tests of a header.
+
+ If allow is true, the header is one specified in allow-header
+ and so tests are marked as allowed for namespace purposes but
+ otherwise ignored.
+
+ """
+ self.headers_handled.add(header)
+ header_s = header.replace('/', '_')
+ temp_file = os.path.join(self.temp_dir, 'header-data-%s' % header_s)
+ cmd = ('%s -E -D%s -std=c99 -x c data/%s-data > %s'
+ % (self.cc, self.standard, header, temp_file))
+ subprocess.check_call(cmd, shell=True)
+ with open(temp_file, 'r') as tests:
+ for line in tests:
+ line = line.strip()
+ if line == '' or line.startswith('#'):
+ continue
+ self.handle_test_line(line, allow)
+
+ def note_error(self, name, xfail):
+ """Note a failing test."""
+ if xfail:
+ print('XFAIL: %s' % name)
+ self.xerrors += 1
+ else:
+ print('FAIL: %s' % name)
+ self.errors += 1
+ sys.stdout.flush()
+
+ def note_skip(self, name):
+ """Note a skipped test."""
+ print('SKIP: %s' % name)
+ self.skipped += 1
+ sys.stdout.flush()
+
+ def compile_test(self, name, text):
+ """Run a compilation test; return True if it passes."""
+ self.total += 1
+ if self.group_ignore:
+ return False
+ optional = self.group_optional
+ self.group_optional = False
+ if self.group_skip:
+ self.note_skip(name)
+ return False
+ c_file = os.path.join(self.temp_dir, 'test.c')
+ o_file = os.path.join(self.temp_dir, 'test.o')
+ with open(c_file, 'w') as c_file_out:
+ c_file_out.write('#include <%s>\n%s' % (self.header, text))
+ cmd = ('%s %s -c %s -o %s' % (self.cc, self.cflags, c_file, o_file))
+ try:
+ subprocess.check_call(cmd, shell=True)
+ except subprocess.CalledProcessError:
+ if optional:
+ print('MISSING: %s' % name)
+ sys.stdout.flush()
+ self.group_ignore = True
+ else:
+ self.note_error(name, self.group_xfail)
+ self.group_skip = True
+ return False
+ print('PASS: %s' % name)
+ sys.stdout.flush()
+ return True
+
+ def execute_test(self, name, text):
+ """Run an execution test."""
+ self.total += 1
+ if self.group_ignore:
+ return False
+ if self.group_skip:
+ self.note_skip(name)
+ return
+ c_file = os.path.join(self.temp_dir, 'test.c')
+ exe_file = os.path.join(self.temp_dir, 'test')
+ with open(c_file, 'w') as c_file_out:
+ c_file_out.write('#include <%s>\n%s' % (self.header, text))
+ cmd = ('%s %s %s -o %s' % (self.cc, self.cflags, c_file, exe_file))
+ try:
+ subprocess.check_call(cmd, shell=True)
+ except subprocess.CalledProcessError:
+ self.note_error(name, self.group_xfail)
+ return
+ if self.cross:
+ self.note_skip(name)
+ return
+ try:
+ subprocess.check_call(exe_file, shell=True)
+ except subprocess.CalledProcessError:
+ self.note_error(name, self.group_xfail)
+ return
+ print('PASS: %s' % name)
+ sys.stdout.flush()
+
+ def check_namespace(self, name):
+ """Check the namespace of a header."""
+ c_file = os.path.join(self.temp_dir, 'namespace.c')
+ out_file = os.path.join(self.temp_dir, 'namespace-out')
+ with open(c_file, 'w') as c_file_out:
+ c_file_out.write('#include <%s>\n' % self.header)
+ cmd = ('%s %s -E %s -P -Wp,-dN > %s'
+ % (self.cc, self.cflags_namespace, c_file, out_file))
+ subprocess.check_call(cmd, shell=True)
+ bad_tokens = set()
+ with open(out_file, 'r') as content:
+ for line in content:
+ line = line.strip()
+ if not line:
+ continue
+ if re.match(r'# [1-9]', line):
+ continue
+ match = re.match(r'#define (.*)', line)
+ if match:
+ self.check_token(bad_tokens, match.group(1))
+ continue
+ match = re.match(r'#undef (.*)', line)
+ if match:
+ bad_tokens.discard(match.group(1))
+ continue
+ # Tokenize the line and check identifiers found. The
+ # handling of strings does not allow for escaped
+ # quotes, no allowance is made for character
+ # constants, and hex floats may be wrongly split into
+ # tokens including identifiers, but this is sufficient
+ # in practice and matches the old perl script.
+ line = re.sub(r'"[^"]*"', '', line)
+ line = line.strip()
+ for token in re.split(r'[^A-Za-z0-9_]+', line):
+ if re.match(r'[A-Za-z_]', token):
+ self.check_token(bad_tokens, token)
+ if bad_tokens:
+ for token in sorted(bad_tokens):
+ print(' Namespace violation: "%s"' % token)
+ self.note_error(name, False)
+ else:
+ print('PASS: %s' % name)
+ sys.stdout.flush()
+
+ def run(self):
+ """Load and run tests of a header."""
+ with tempfile.TemporaryDirectory() as self.temp_dir:
+ self.load_tests(self.header, False)
+ self.group_optional = False
+ self.group_xfail = False
+ self.group_ignore = False
+ self.group_skip = False
+ available = self.compile_test('Availability of <%s>' % self.header,
+ '')
+ if available:
+ # As an optimization, try running all non-optional,
+ # non-XFAILed compilation tests in a single execution
+ # of the compiler.
+ combined_list = []
+ for test in self.tests:
+ if not test.optional and not test.xfail:
+ for subtest in test.subtests:
+ if isinstance(subtest, CompileSubTest):
+ combined_list.append(subtest.text)
+ subtest.run_early = True
+ combined_ok = self.compile_test('Combined <%s> test'
+ % self.header,
+ '\n'.join(combined_list))
+ # Now run the other tests, or all tests if the
+ # combined test failed.
+ for test in self.tests:
+ # A test may run more than one subtest. If the
+ # initial subtest for an optional symbol fails,
+ # others are not run at all; if the initial
+ # subtest for an optional symbol succeeds, others
+ # are run and are not considered optional; if the
+ # initial subtest for a required symbol fails,
+ # others are skipped.
+ self.group_optional = test.optional
+ self.group_xfail = test.xfail
+ self.group_ignore = False
+ self.group_skip = False
+ for subtest in test.subtests:
+ if combined_ok and subtest.run_early:
+ self.total += 1
+ print('PASSCOMBINED: %s' % subtest.name)
+ sys.stdout.flush()
+ else:
+ subtest.run(self)
+ namespace_name = 'Namespace of <%s>' % self.header
+ if available:
+ self.check_namespace(namespace_name)
+ else:
+ self.note_skip(namespace_name)
+ print('-' * 76)
+ print(' Total number of tests : %4d' % self.total)
+ print(' Number of failed tests : %4d' % self.errors)
+ print(' Number of xfailed tests : %4d' % self.xerrors)
+ print(' Number of skipped tests : %4d' % self.skipped)
+ sys.exit(1 if self.errors else 0)
+
+
+def main():
+ """The main entry point."""
+ parser = argparse.ArgumentParser(description='Check header contents.')
+ parser.add_argument('--header', metavar='HEADER',
+ help='name of header')
+ parser.add_argument('--standard', metavar='STD',
+ help='standard to use when processing header')
+ parser.add_argument('--cc', metavar='CC',
+ help='C compiler to use')
+ parser.add_argument('--flags', metavar='CFLAGS',
+ help='Compiler flags to use with CC')
+ parser.add_argument('--cross', action='store_true',
+ help='Do not run compiled test programs')
+ parser.add_argument('--xfail', metavar='COND',
+ help='Name of condition for XFAILs')
+ args = parser.parse_args()
+ tests = HeaderTests(args.header, args.standard, args.cc, args.flags,
+ args.cross, args.xfail)
+ tests.run()
+
+
+if __name__ == '__main__':
+ main()
diff --git a/conform/data/arpa/inet.h-data b/conform/data/arpa/inet.h-data
index d4ab6bb72a..040b8212c7 100644
--- a/conform/data/arpa/inet.h-data
+++ b/conform/data/arpa/inet.h-data
@@ -11,19 +11,19 @@ macro INET_ADDRSTRLEN
macro INET6_ADDRSTRLEN
// The following can be declared as functions, defined as macros or both:
-function uint32_t htonl (uint32_t);
-function uint16_t htons (uint16_t);
-function uint32_t ntohl (uint32_t);
-function uint16_t htons (uint16_t);
+function uint32_t htonl (uint32_t)
+function uint16_t htons (uint16_t)
+function uint32_t ntohl (uint32_t)
+function uint16_t htons (uint16_t)
-function in_addr_t inet_addr (const char*);
-function in_addr_t inet_lnaof (struct in_addr);
-function {struct in_addr} inet_makeaddr (in_addr_t, in_addr_t);
-function in_addr_t inet_netof (struct in_addr);
-function in_addr_t inet_network (const char *);
-function {char*} inet_ntoa (struct in_addr);
-function {const char*} inet_ntop (int, const void*, char*, socklen_t);
-function int inet_pton (int, const char*, void*);
+function in_addr_t inet_addr (const char*)
+function in_addr_t inet_lnaof (struct in_addr)
+function {struct in_addr} inet_makeaddr (in_addr_t, in_addr_t)
+function in_addr_t inet_netof (struct in_addr)
+function in_addr_t inet_network (const char *)
+function {char*} inet_ntoa (struct in_addr)
+function {const char*} inet_ntop (int, const void*, char*, socklen_t)
+function int inet_pton (int, const char*, void*)
allow-header netinet/in.h
allow-header inttypes.h
diff --git a/conform/data/fcntl.h-data b/conform/data/fcntl.h-data
index 2d5827f6ec..ffa4a351fb 100644
--- a/conform/data/fcntl.h-data
+++ b/conform/data/fcntl.h-data
@@ -119,7 +119,7 @@ constant AT_SYMLINK_NOFOLLOW
constant AT_SYMLINK_FOLLOW
constant AT_REMOVEDIR
-function int openat(int, const char*, int, ...)
+function int openat (int, const char*, int, ...)
#endif
#if !defined POSIX
diff --git a/conform/data/signal.h-data b/conform/data/signal.h-data
index 11e54adb04..674e5793db 100644
--- a/conform/data/signal.h-data
+++ b/conform/data/signal.h-data
@@ -172,7 +172,8 @@ element siginfo_t pid_t si_pid
element siginfo_t uid_t si_uid
element siginfo_t {void*} si_addr
element siginfo_t int si_status
-element siginfo_t long si_band
+// Bug 23821: si_band has type int on sparc64.
+xfail[sparc64-linux]-element siginfo_t long si_band
# endif
# ifndef XPG42
element siginfo_t {union sigval} si_value
diff --git a/conform/data/spawn.h-data b/conform/data/spawn.h-data
index de4aaa7fe2..be69922669 100644
--- a/conform/data/spawn.h-data
+++ b/conform/data/spawn.h-data
@@ -34,8 +34,8 @@ function int posix_spawn_file_actions_adddup2 (posix_spawn_file_actions_t*, int,
function int posix_spawn_file_actions_addopen (posix_spawn_file_actions_t*, int, const char *, int, mode_t)
function int posix_spawn_file_actions_destroy (posix_spawn_file_actions_t*)
function int posix_spawn_file_actions_init (posix_spawn_file_actions_t*)
-function int posix_spawn (pid_t*, const char*, const posix_spawn_file_actions_t*, const posix_spawnattr_t*, char *const[], char *const[]);
-function int posix_spawnp (pid_t*, const char*, const posix_spawn_file_actions_t*, const posix_spawnattr_t*, char *const[], char *const[]);
+function int posix_spawn (pid_t*, const char*, const posix_spawn_file_actions_t*, const posix_spawnattr_t*, char *const[], char *const[])
+function int posix_spawnp (pid_t*, const char*, const posix_spawn_file_actions_t*, const posix_spawnattr_t*, char *const[], char *const[])
allow-header sched.h
allow-header signal.h
diff --git a/conform/data/stropts.h-data b/conform/data/stropts.h-data
deleted file mode 100644
index c4b1343411..0000000000
--- a/conform/data/stropts.h-data
+++ /dev/null
@@ -1,140 +0,0 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG4
-type {struct bandinfo}
-
-element {struct bandinfo} {unsigned char} bi_pri
-element {struct bandinfo} int bi_flag
-
-type {struct strpeek}
-
-element {struct strpeek} {struct strbuf} ctlbuf
-element {struct strpeek} {struct strbuf} databuf
-element {struct strpeek} t_uscalar_t flags
-
-type {struct strbuf}
-
-element {struct strbuf} int maxlen
-element {struct strbuf} int len
-element {struct strbuf} {char*} buf
-
-type {struct strfdinsert}
-
-element {struct strfdinsert} {struct strbuf} ctlbuf
-element {struct strfdinsert} {struct strbuf} databuf
-element {struct strfdinsert} t_uscalar_t flags
-element {struct strfdinsert} int fildes
-element {struct strfdinsert} int offset
-
-type {struct strioctl}
-
-element {struct strioctl} int ic_cmd
-element {struct strioctl} int ic_timout
-element {struct strioctl} int ic_len
-element {struct strioctl} {char*} ic_dp
-
-type {struct strrecvfd}
-
-element {struct strrecvfd} int fd
-element {struct strrecvfd} uid_t uid
-element {struct strrecvfd} gid_t gid
-
-type uid_t
-type gid_t
-
-type t_uscalar_t
-
-type {struct str_list}
-
-element {struct str_list} int sl_nmods
-element {struct str_list} {struct str_mlist*} sl_modlist
-
-type {struct str_mlist}
-
-element {struct str_mlist} char l_name [FMNAMESZ+1]
-
-macro I_PUSH
-macro I_POP
-macro I_LOOK
-macro FMNAMESZ
-macro I_FLUSH
-macro FLUSHR
-macro FLUSHW
-macro FLUSHRW
-macro I_FLUSHBAND
-macro I_SETSIG
-macro S_RDNORM
-macro S_RDBAND
-macro S_INPUT
-macro S_HIPRI
-macro S_OUTPUT
-macro S_WRNORM
-macro S_WRBAND
-macro S_MSG
-macro S_ERROR
-macro S_HANGUP
-macro S_BANDURG
-macro I_GETSIG
-macro I_FIND
-macro I_PEEK
-macro RS_HIPRI
-macro I_SRDOPT
-macro RNORM
-macro RMSGD
-macro RMSGN
-macro RPROTNORM
-macro RPROTDAT
-macro RPROTDIS
-macro I_GRDOPT
-macro I_NREAD
-macro I_FDINSERT
-macro I_STR
-macro I_SWROPT
-macro SNDZERO
-macro I_GWROPT
-macro I_SENDFD
-macro I_RECVFD
-macro I_LIST
-macro I_ATMARK
-macro ANYMARK
-macro LASTMARK
-macro I_CKBAND
-macro I_GETBAND
-macro I_CANPUT
-macro I_SETCLTIME
-macro I_GETCLTIME
-macro I_LINK
-macro I_UNLINK
-macro I_PLINK
-macro I_PUNLINK
-
-macro MSG_ANY
-macro MSG_BAND
-macro MSG_HIPRI
-macro MORECTL
-macro MOREDATA
-
-function int isastream (int)
-function int getmsg (int, struct strbuf*, struct strbuf*, int*)
-function int getpmsg (int, struct strbuf*, struct strbuf*, int*, int*)
-// Bug 14362: wrong type for ioctl.
-xfail-function int ioctl (int, int, ...)
-function int putmsg (int, const struct strbuf*, const struct strbuf*, int)
-function int putpmsg (int, const struct strbuf*, const struct strbuf*, int, int)
-function int fattach (int, const char*)
-function int fdetach (const char*)
-
-allow-header unistd.h
-
-allow bi_*
-allow ic_*
-allow l_*
-allow sl_*
-allow str_*
-allow FLUSH*
-allow I_*
-allow M_*
-allow MUXID_R*
-allow S_*
-allow SND*
-allow STR*
-allow *_t
-#endif
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/data/sys/wait.h-data b/conform/data/sys/wait.h-data
index ed3869b34f..c0761424da 100644
--- a/conform/data/sys/wait.h-data
+++ b/conform/data/sys/wait.h-data
@@ -46,7 +46,8 @@ element siginfo_t pid_t si_pid
element siginfo_t uid_t si_uid
element siginfo_t {void*} si_addr
element siginfo_t int si_status
-element siginfo_t long si_band
+// Bug 23821: si_band has type int on sparc64.
+xfail[sparc64-linux]-element siginfo_t long si_band
# ifndef XPG42
element siginfo_t {union sigval} si_value
# endif
diff --git a/conform/data/termios.h-data b/conform/data/termios.h-data
index 9aec2f5a17..bb2092bb6f 100644
--- a/conform/data/termios.h-data
+++ b/conform/data/termios.h-data
@@ -13,7 +13,7 @@ element {struct termios} tcflag_t c_iflag
element {struct termios} tcflag_t c_oflag
element {struct termios} tcflag_t c_cflag
element {struct termios} tcflag_t c_lflag
-element {struct termios} cc_t c_cc[NCCS]
+element {struct termios} cc_t c_cc [NCCS]
constant NCCS
diff --git a/conform/data/wchar.h-data b/conform/data/wchar.h-data
index 0beae8957d..e414651a33 100644
--- a/conform/data/wchar.h-data
+++ b/conform/data/wchar.h-data
@@ -77,8 +77,8 @@ function {wchar_t*} wcpncpy (wchar_t*, const wchar_t*, size_t)
# endif
function size_t wcrtomb (char*, wchar_t, mbstate_t*)
# if defined XOPEN2K8 || defined POSIX2008
-function int wcscasecmp(const wchar_t*, const wchar_t*)
-function int wcscasecmp_l(const wchar_t*, const wchar_t*, locale_t)
+function int wcscasecmp (const wchar_t*, const wchar_t*)
+function int wcscasecmp_l (const wchar_t*, const wchar_t*, locale_t)
# endif
function {wchar_t*} wcscat (wchar_t*, const wchar_t*)
function {wchar_t*} wcschr (const wchar_t*, wchar_t)
diff --git a/conform/glibcconform.py b/conform/glibcconform.py
new file mode 100644
index 0000000000..2d9e558b71
--- /dev/null
+++ b/conform/glibcconform.py
@@ -0,0 +1,94 @@
+#!/usr/bin/python
+# Shared code for glibc conformance tests.
+# Copyright (C) 2018-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
+# <https://www.gnu.org/licenses/>.
+
+import os.path
+import re
+import subprocess
+import tempfile
+
+
+# Compiler options for each standard.
+CFLAGS = {'ISO': '-ansi',
+ 'ISO99': '-std=c99',
+ 'ISO11': '-std=c11',
+ 'POSIX': '-D_POSIX_C_SOURCE=199506L -ansi',
+ 'XPG4': '-ansi -D_XOPEN_SOURCE',
+ 'XPG42': '-ansi -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED',
+ 'UNIX98': '-ansi -D_XOPEN_SOURCE=500',
+ 'XOPEN2K': '-std=c99 -D_XOPEN_SOURCE=600',
+ 'XOPEN2K8': '-std=c99 -D_XOPEN_SOURCE=700',
+ 'POSIX2008': '-std=c99 -D_POSIX_C_SOURCE=200809L'}
+
+# ISO C90 keywords.
+KEYWORDS_C90 = {'auto', 'break', 'case', 'char', 'const', 'continue',
+ 'default', 'do', 'double', 'else', 'enum', 'extern', 'float',
+ 'for', 'goto', 'if', 'int', 'long', 'register', 'return',
+ 'short', 'signed', 'sizeof', 'static', 'struct', 'switch',
+ 'typedef', 'union', 'unsigned', 'void', 'volatile', 'while'}
+
+# ISO C99 keywords.
+KEYWORDS_C99 = KEYWORDS_C90 | {'inline', 'restrict'}
+
+# Keywords for each standard.
+KEYWORDS = {'ISO': KEYWORDS_C90,
+ 'ISO99': KEYWORDS_C99,
+ 'ISO11': KEYWORDS_C99,
+ 'POSIX': KEYWORDS_C90,
+ 'XPG4': KEYWORDS_C90,
+ 'XPG42': KEYWORDS_C90,
+ 'UNIX98': KEYWORDS_C90,
+ 'XOPEN2K': KEYWORDS_C99,
+ 'XOPEN2K8': KEYWORDS_C99,
+ 'POSIX2008': KEYWORDS_C99}
+
+
+def list_exported_functions(cc, standard, header):
+ """Return the set of functions exported by a header, empty if an
+ include of the header does not compile.
+
+ """
+ cc_all = '%s -D_ISOMAC %s' % (cc, CFLAGS[standard])
+ with tempfile.TemporaryDirectory() as temp_dir:
+ c_file_name = os.path.join(temp_dir, 'test.c')
+ aux_file_name = os.path.join(temp_dir, 'test.c.aux')
+ with open(c_file_name, 'w') as c_file:
+ c_file.write('#include <%s>\n' % header)
+ fns = set()
+ cmd = ('%s -c %s -o /dev/null -aux-info %s'
+ % (cc_all, c_file_name, aux_file_name))
+ try:
+ subprocess.check_call(cmd, shell=True)
+ except subprocess.CalledProcessError:
+ return fns
+ with open(aux_file_name, 'r') as aux_file:
+ for line in aux_file:
+ line = re.sub(r'/\*.*?\*/', '', line)
+ line = line.strip()
+ if line:
+ # The word before a '(' that isn't '(*' is the
+ # function name before the argument list (not
+ # fully general, but sufficient for -aux-info
+ # output on standard headers).
+ m = re.search(r'([A-Za-z0-9_]+) *\([^*]', line)
+ if m:
+ fns.add(m.group(1))
+ else:
+ raise ValueError("couldn't parse -aux-info output: %s"
+ % line)
+ return fns
diff --git a/conform/linknamespace.pl b/conform/linknamespace.pl
deleted file mode 100644
index 3fc6aca621..0000000000
--- a/conform/linknamespace.pl
+++ /dev/null
@@ -1,233 +0,0 @@
-#!/usr/bin/perl
-
-# 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-2018 Free Software 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
-# <http://www.gnu.org/licenses/>.
-
-use GlibcConform;
-use Getopt::Long;
-
-GetOptions ('header=s' => \$header, 'standard=s' => \$standard,
- 'flags=s' => \$flags, 'cc=s' => \$CC, 'tmpdir=s' => \$tmpdir,
- 'stdsyms=s' => \$stdsyms_file, 'libsyms=s' => \$libsyms_file,
- 'readelf=s' => \$READELF);
-
-# Load the list of symbols that are OK.
-%stdsyms = ();
-open (STDSYMS, "<$stdsyms_file") || die ("open $stdsyms_file: $!\n");
-while (<STDSYMS>) {
- chomp;
- $stdsyms{$_} = 1;
-}
-close (STDSYMS) || die ("close $stdsyms_file: $!\n");
-
-# The following whitelisted symbols are also allowed for now.
-#
-# * Bug 17576: stdin, stdout, stderr only reserved with external
-# linkage when stdio.h included (and possibly not then), not
-# generally.
-#
-# * Bug 18442: re_syntax_options wrongly brought in by regcomp and
-# used by re_comp.
-#
-@whitelist = qw(stdin stdout stderr re_syntax_options);
-foreach my $sym (@whitelist) {
- $stdsyms{$sym} = 1;
-}
-
-# Return information about GLOBAL and WEAK symbols listed in readelf
-# -s output.
-sub list_syms {
- my ($syms_file) = @_;
- open (SYMS, "<$syms_file") || die ("open $syms_file: $!\n");
- my ($file) = $syms_file;
- my (@ret) = ();
- while (<SYMS>) {
- chomp;
- if (/^File: (.*)/) {
- $file = $1;
- $file =~ s|^.*/||;
- next;
- }
- s/^\s*//;
- # Architecture-specific st_other bits appear inside [] and disrupt
- # the format of readelf output.
- s/\[.*?\]//;
- my (@fields) = split (/\s+/, $_);
- if (@fields < 8) {
- next;
- }
- my ($bind) = $fields[4];
- my ($ndx) = $fields[6];
- my ($sym) = $fields[7];
- if ($bind ne "GLOBAL" && $bind ne "WEAK") {
- next;
- }
- if ($sym !~ /^\w+$/) {
- next;
- }
- push (@ret, [$file, $sym, $bind, $ndx ne "UND"]);
- }
- close (SYMS) || die ("close $syms_file: $!\n");
- return @ret;
-}
-
-# Load information about GLOBAL and WEAK symbols defined or used in
-# the standard libraries.
-# Symbols from a given object, except for weak defined symbols.
-%seen_syms = ();
-# Strong undefined symbols from a given object.
-%strong_undef_syms = ();
-# Objects defining a given symbol (strongly or weakly).
-%sym_objs = ();
-@sym_data = list_syms ($libsyms_file);
-foreach my $sym (@sym_data) {
- my ($file, $name, $bind, $defined) = @$sym;
- if ($defined) {
- if (!defined ($sym_objs{$name})) {
- $sym_objs{$name} = [];
- }
- push (@{$sym_objs{$name}}, $file);
- }
- if ($bind eq "GLOBAL" || !$defined) {
- if (!defined ($seen_syms{$file})) {
- $seen_syms{$file} = [];
- }
- push (@{$seen_syms{$file}}, $name);
- }
- if ($bind eq "GLOBAL" && !$defined) {
- if (!defined ($strong_undef_syms{$file})) {
- $strong_undef_syms{$file} = [];
- }
- push (@{$strong_undef_syms{$file}}, $name);
- }
-}
-
-# Determine what ELF-level symbols are brought in by use of C-level
-# symbols declared in the given header.
-#
-# The rules followed are heuristic and so may produce false positives
-# and false negatives.
-#
-# * All undefined symbols are considered of signficance, but it is
-# possible that (a) any standard library definition is weak, so can be
-# overridden by the user's definition, and (b) the symbol is only used
-# conditionally and not if the program is limited to standard
-# functionality.
-#
-# * If a symbol reference is only brought in by the user using a data
-# symbol rather than a function from the standard library, this will
-# not be detected.
-#
-# * If a symbol reference is only brought in by crt*.o or libgcc, this
-# will not be detected.
-#
-# * If a symbol reference is only brought in through __builtin_foo in
-# a standard macro being compiled to call foo, this will not be
-# detected.
-#
-# * Header inclusions should be compiled several times with different
-# options such as -O2, -D_FORTIFY_SOURCE and -D_FILE_OFFSET_BITS=64 to
-# find out what symbols are undefined from such a compilation; this is
-# not yet implemented.
-#
-# * This script finds symbols referenced through use of macros on the
-# basis that if a macro calls an internal function, that function must
-# also be declared in the header. However, the header might also
-# declare implementation-namespace functions that are not called by
-# any standard macro in the header, resulting in false positives for
-# any symbols brought in only through use of those
-# implementation-namespace functions.
-#
-# * Namespace issues can apply for dynamic linking as well as static
-# linking, when a call is from one shared library to another or uses a
-# PLT entry for a call within a shared library; such issues are only
-# detected by this script if the same namespace issue applies for
-# static linking.
-
-@c_syms = list_exported_functions ("$CC $flags", $standard, $header, $tmpdir);
-$cincfile = "$tmpdir/undef-$$.c";
-$cincfile_o = "$tmpdir/undef-$$.o";
-$cincfile_sym = "$tmpdir/undef-$$.sym";
-open (CINCFILE, ">$cincfile") || die ("open $cincfile: $!\n");
-print CINCFILE "#include <$header>\n";
-foreach my $sym (sort @c_syms) {
- print CINCFILE "void *__glibc_test_$sym = (void *) &$sym;\n";
-}
-close CINCFILE || die ("close $cincfile: $!\n");
-system ("$CC $flags -D_ISOMAC $CFLAGS{$standard} -c $cincfile -o $cincfile_o")
- && die ("compiling failed\n");
-system ("LC_ALL=C $READELF -W -s $cincfile_o > $cincfile_sym")
- && die ("readelf failed\n");
-@elf_syms = list_syms ($cincfile_sym);
-unlink ($cincfile) || die ("unlink $cincfile: $!\n");
-unlink ($cincfile_o) || die ("unlink $cincfile_o: $!\n");
-unlink ($cincfile_sym) || die ("unlink $cincfile_sym: $!\n");
-
-%seen_where = ();
-%files_seen = ();
-%all_undef = ();
-%current_undef = ();
-foreach my $sym (@elf_syms) {
- my ($file, $name, $bind, $defined) = @$sym;
- if ($bind eq "GLOBAL" && !$defined) {
- $seen_where{$name} = "[initial] $name";
- $all_undef{$name} = "[initial] $name";
- $current_undef{$name} = "[initial] $name";
- }
-}
-
-while (%current_undef) {
- %new_undef = ();
- foreach my $sym (sort keys %current_undef) {
- foreach my $file (@{$sym_objs{$sym}}) {
- if (defined ($files_seen{$file})) {
- next;
- }
- $files_seen{$file} = 1;
- foreach my $ssym (@{$seen_syms{$file}}) {
- if (!defined ($seen_where{$ssym})) {
- $seen_where{$ssym} = "$current_undef{$sym} -> [$file] $ssym";
- }
- }
- foreach my $usym (@{$strong_undef_syms{$file}}) {
- if (!defined ($all_undef{$usym})) {
- $all_undef{$usym} = "$current_undef{$sym} -> [$file] $usym";
- $new_undef{$usym} = "$current_undef{$sym} -> [$file] $usym";
- }
- }
- }
- }
- %current_undef = %new_undef;
-}
-
-$ret = 0;
-foreach my $sym (sort keys %seen_where) {
- if ($sym =~ /^_/) {
- next;
- }
- if (defined ($stdsyms{$sym})) {
- next;
- }
- print "$seen_where{$sym}\n";
- $ret = 1;
-}
-
-exit $ret;
diff --git a/conform/linknamespace.py b/conform/linknamespace.py
new file mode 100644
index 0000000000..9f5febf5d0
--- /dev/null
+++ b/conform/linknamespace.py
@@ -0,0 +1,217 @@
+#!/usr/bin/python
+# 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.
+# 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
+# <https://www.gnu.org/licenses/>.
+
+import argparse
+from collections import defaultdict
+import os.path
+import re
+import subprocess
+import sys
+import tempfile
+
+import glibcconform
+
+# The following whitelisted symbols are also allowed for now.
+#
+# * Bug 17576: stdin, stdout, stderr only reserved with external
+# linkage when stdio.h included (and possibly not then), not
+# generally.
+#
+# * Bug 18442: re_syntax_options wrongly brought in by regcomp and
+# used by re_comp.
+#
+WHITELIST = {'stdin', 'stdout', 'stderr', 're_syntax_options'}
+
+
+def list_syms(filename):
+ """Return information about GLOBAL and WEAK symbols listed in readelf
+ -s output."""
+ ret = []
+ cur_file = filename
+ with open(filename, 'r') as syms_file:
+ for line in syms_file:
+ line = line.rstrip()
+ if line.startswith('File: '):
+ cur_file = line[len('File: '):]
+ cur_file = cur_file.split('/')[-1]
+ continue
+ # Architecture-specific st_other bits appear inside [] and
+ # disrupt the format of readelf output.
+ line = re.sub(r'\[.*?\]', '', line)
+ fields = line.split()
+ if len(fields) < 8:
+ continue
+ bind = fields[4]
+ ndx = fields[6]
+ sym = fields[7]
+ if bind not in ('GLOBAL', 'WEAK'):
+ continue
+ if not re.fullmatch('[A-Za-z0-9_]+', sym):
+ continue
+ ret.append((cur_file, sym, bind, ndx != 'UND'))
+ return ret
+
+
+def main():
+ """The main entry point."""
+ parser = argparse.ArgumentParser(description='Check link-time namespace.')
+ parser.add_argument('--header', metavar='HEADER',
+ help='name of header')
+ parser.add_argument('--standard', metavar='STD',
+ help='standard to use when processing header')
+ parser.add_argument('--cc', metavar='CC',
+ help='C compiler to use')
+ parser.add_argument('--flags', metavar='CFLAGS',
+ help='Compiler flags to use with CC')
+ parser.add_argument('--stdsyms', metavar='FILE',
+ help='File with list of standard symbols')
+ parser.add_argument('--libsyms', metavar='FILE',
+ help='File with symbol information from libraries')
+ parser.add_argument('--readelf', metavar='READELF',
+ help='readelf program to use')
+ args = parser.parse_args()
+
+ # Load the list of symbols that are OK.
+ stdsyms = set()
+ with open(args.stdsyms, 'r') as stdsyms_file:
+ for line in stdsyms_file:
+ stdsyms.add(line.rstrip())
+ stdsyms |= WHITELIST
+
+ # Load information about GLOBAL and WEAK symbols defined or used
+ # in the standard libraries.
+ # Symbols from a given object, except for weak defined symbols.
+ seen_syms = defaultdict(list)
+ # Strong undefined symbols from a given object.
+ strong_undef_syms = defaultdict(list)
+ # Objects defining a given symbol (strongly or weakly).
+ sym_objs = defaultdict(list)
+ for file, name, bind, defined in list_syms(args.libsyms):
+ if defined:
+ sym_objs[name].append(file)
+ if bind == 'GLOBAL' or not defined:
+ seen_syms[file].append(name)
+ if bind == 'GLOBAL' and not defined:
+ strong_undef_syms[file].append(name)
+
+ # Determine what ELF-level symbols are brought in by use of C-level
+ # symbols declared in the given header.
+ #
+ # The rules followed are heuristic and so may produce false
+ # positives and false negatives.
+ #
+ # * All undefined symbols are considered of signficance, but it is
+ # possible that (a) any standard library definition is weak, so
+ # can be overridden by the user's definition, and (b) the symbol
+ # is only used conditionally and not if the program is limited to
+ # standard functionality.
+ #
+ # * If a symbol reference is only brought in by the user using a
+ # data symbol rather than a function from the standard library,
+ # this will not be detected.
+ #
+ # * If a symbol reference is only brought in by crt*.o or libgcc,
+ # this will not be detected.
+ #
+ # * If a symbol reference is only brought in through __builtin_foo
+ # in a standard macro being compiled to call foo, this will not be
+ # detected.
+ #
+ # * Header inclusions should be compiled several times with
+ # different options such as -O2, -D_FORTIFY_SOURCE and
+ # -D_FILE_OFFSET_BITS=64 to find out what symbols are undefined
+ # from such a compilation; this is not yet implemented.
+ #
+ # * This script finds symbols referenced through use of macros on
+ # the basis that if a macro calls an internal function, that
+ # function must also be declared in the header. However, the
+ # header might also declare implementation-namespace functions
+ # that are not called by any standard macro in the header,
+ # resulting in false positives for any symbols brought in only
+ # through use of those implementation-namespace functions.
+ #
+ # * Namespace issues can apply for dynamic linking as well as
+ # static linking, when a call is from one shared library to
+ # another or uses a PLT entry for a call within a shared library;
+ # such issues are only detected by this script if the same
+ # namespace issue applies for static linking.
+ seen_where = {}
+ files_seen = set()
+ all_undef = {}
+ current_undef = {}
+ compiler = '%s %s' % (args.cc, args.flags)
+ c_syms = glibcconform.list_exported_functions(compiler, args.standard,
+ args.header)
+ with tempfile.TemporaryDirectory() as temp_dir:
+ cincfile_name = os.path.join(temp_dir, 'undef.c')
+ cincfile_o_name = os.path.join(temp_dir, 'undef.o')
+ cincfile_sym_name = os.path.join(temp_dir, 'undef.sym')
+ cincfile_text = ('#include <%s>\n%s\n'
+ % (args.header,
+ '\n'.join('void *__glibc_test_%s = (void *) &%s;'
+ % (sym, sym) for sym in sorted(c_syms))))
+ with open(cincfile_name, 'w') as cincfile:
+ cincfile.write(cincfile_text)
+ cmd = ('%s %s -D_ISOMAC %s -c %s -o %s'
+ % (args.cc, args.flags, glibcconform.CFLAGS[args.standard],
+ cincfile_name, cincfile_o_name))
+ subprocess.check_call(cmd, shell=True)
+ cmd = ('LC_ALL=C %s -W -s %s > %s'
+ % (args.readelf, cincfile_o_name, cincfile_sym_name))
+ subprocess.check_call(cmd, shell=True)
+ for file, name, bind, defined in list_syms(cincfile_sym_name):
+ if bind == 'GLOBAL' and not defined:
+ sym_text = '[initial] %s' % name
+ seen_where[name] = sym_text
+ all_undef[name] = sym_text
+ current_undef[name] = sym_text
+
+ while current_undef:
+ new_undef = {}
+ for sym, cu_sym in sorted(current_undef.items()):
+ for file in sym_objs[sym]:
+ if file in files_seen:
+ continue
+ files_seen.add(file)
+ for ssym in seen_syms[file]:
+ if ssym not in seen_where:
+ seen_where[ssym] = ('%s -> [%s] %s'
+ % (cu_sym, file, ssym))
+ for usym in strong_undef_syms[file]:
+ if usym not in all_undef:
+ usym_text = '%s -> [%s] %s' % (cu_sym, file, usym)
+ all_undef[usym] = usym_text
+ new_undef[usym] = usym_text
+ current_undef = new_undef
+
+ ret = 0
+ for sym in sorted(seen_where):
+ if sym.startswith('_'):
+ continue
+ if sym in stdsyms:
+ continue
+ print(seen_where[sym])
+ ret = 1
+ sys.exit(ret)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/conform/list-header-symbols.pl b/conform/list-header-symbols.pl
deleted file mode 100644
index 0db61bfe86..0000000000
--- a/conform/list-header-symbols.pl
+++ /dev/null
@@ -1,83 +0,0 @@
-#!/usr/bin/perl
-
-# Print a list of symbols exported by some headers that would
-# otherwise be in the user's namespace.
-
-# Copyright (C) 2014-2018 Free Software 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
-# <http://www.gnu.org/licenses/>.
-
-use GlibcConform;
-use Getopt::Long;
-
-GetOptions ('headers=s' => \$headers, 'standard=s' => \$standard,
- 'flags=s' => \$flags, 'cc=s' => \$CC, 'tmpdir=s' => \$tmpdir);
-@headers = split (/\s+/, $headers);
-
-# Extra symbols possibly not found through -aux-info but still
-# reserved by the standard: either data symbols, or symbols where the
-# standard leaves unspecified whether the identifier is a macro or
-# defined with external linkage.
-$extra_syms{"ISO"} = ["errno", "setjmp", "va_end"];
-$extra_syms{"ISO99"} = ["errno", "math_errhandling", "setjmp", "va_end"];
-# stdatomic.h not yet covered by conformance tests; as per DR#419, all
-# the generic functions there or may not be defined with external
-# linkage (but are reserved in any case).
-$extra_syms{"ISO11"} = ["errno", "math_errhandling", "setjmp", "va_end"];
-# The following lists may not be exhaustive.
-$extra_syms{"POSIX"} = ["errno", "setjmp", "va_end", "environ", "sigsetjmp",
- "optarg", "optind", "opterr", "optopt", "tzname"];
-$extra_syms{"XPG4"} = ["errno", "setjmp", "va_end", "environ", "signgam",
- "loc1", "loc2", "locs", "sigsetjmp", "optarg",
- "optind", "opterr", "optopt", "daylight", "timezone",
- "tzname"];
-$extra_syms{"XPG42"} = ["errno", "setjmp", "va_end", "environ", "signgam",
- "loc1", "loc2", "locs", "sigsetjmp", "optarg",
- "optind", "opterr", "optopt", "daylight", "timezone",
- "tzname", "getdate_err", "h_errno"];
-$extra_syms{"UNIX98"} = ["errno", "setjmp", "va_end", "environ", "signgam",
- "loc1", "loc2", "locs", "sigsetjmp", "optarg",
- "optind", "opterr", "optopt", "daylight", "timezone",
- "tzname", "getdate_err", "h_errno"];
-$extra_syms{"XOPEN2K"} = ["errno", "setjmp", "va_end", "environ", "signgam",
- "sigsetjmp", "optarg", "optind", "opterr", "optopt",
- "daylight", "timezone", "tzname", "getdate_err",
- "h_errno", "in6addr_any", "in6addr_loopback"];
-$extra_syms{"XOPEN2K8"} = ["errno", "setjmp", "va_end", "environ", "signgam",
- "sigsetjmp", "optarg", "optind", "opterr", "optopt",
- "daylight", "timezone", "tzname", "getdate_err",
- "in6addr_any", "in6addr_loopback"];
-$extra_syms{"POSIX2008"} = ["errno", "setjmp", "va_end", "environ",
- "sigsetjmp", "optarg", "optind", "opterr", "optopt",
- "tzname", "in6addr_any", "in6addr_loopback"];
-
-%user_syms = ();
-
-foreach my $header (@headers) {
- @syms = list_exported_functions ("$CC $flags", $standard, $header, $tmpdir);
- foreach my $sym (@syms) {
- if ($sym !~ /^_/) {
- $user_syms{$sym} = 1;
- }
- }
-}
-foreach my $sym (@{$extra_syms{$standard}}) {
- $user_syms{$sym} = 1;
-}
-
-foreach my $sym (sort keys %user_syms) {
- print "$sym\n";
-}
diff --git a/conform/list-header-symbols.py b/conform/list-header-symbols.py
new file mode 100644
index 0000000000..fa869ec642
--- /dev/null
+++ b/conform/list-header-symbols.py
@@ -0,0 +1,76 @@
+#!/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.
+# 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
+# <https://www.gnu.org/licenses/>.
+
+import argparse
+
+import glibcconform
+
+# Extra symbols possibly not found through -aux-info but still
+# reserved by the standard: either data symbols, or symbols where the
+# standard leaves unspecified whether the identifier is a macro or
+# defined with external linkage.
+EXTRA_SYMS = {}
+EXTRA_SYMS['ISO'] = {'errno', 'setjmp', 'va_end'}
+EXTRA_SYMS['ISO99'] = EXTRA_SYMS['ISO'] | {'math_errhandling'}
+# stdatomic.h not yet covered by conformance tests; as per DR#419, all
+# the generic functions there or may not be defined with external
+# linkage (but are reserved in any case).
+EXTRA_SYMS['ISO11'] = EXTRA_SYMS['ISO99']
+# The following lists may not be exhaustive.
+EXTRA_SYMS['POSIX'] = (EXTRA_SYMS['ISO']
+ | {'environ', 'sigsetjmp', 'optarg', 'optind', 'opterr',
+ 'optopt', 'tzname'})
+EXTRA_SYMS['XPG4'] = (EXTRA_SYMS['POSIX']
+ | {'signgam', 'loc1', 'loc2', 'locs', 'daylight',
+ 'timezone'})
+EXTRA_SYMS['XPG42'] = EXTRA_SYMS['XPG4'] | {'getdate_err', 'h_errno'}
+EXTRA_SYMS['UNIX98'] = EXTRA_SYMS['XPG42']
+EXTRA_SYMS['XOPEN2K'] = (EXTRA_SYMS['POSIX']
+ | {'signgam', 'daylight', 'timezone', 'getdate_err',
+ 'h_errno', 'in6addr_any', 'in6addr_loopback'})
+EXTRA_SYMS['POSIX2008'] = (EXTRA_SYMS['POSIX']
+ | {'in6addr_any', 'in6addr_loopback'})
+EXTRA_SYMS['XOPEN2K8'] = (EXTRA_SYMS['POSIX2008']
+ | {'signgam', 'daylight', 'timezone', 'getdate_err'})
+
+
+def main():
+ """The main entry point."""
+ parser = argparse.ArgumentParser(description='List exported symbols.')
+ parser.add_argument('--headers', metavar='HEADERS',
+ help='list of headers')
+ parser.add_argument('--standard', metavar='STD',
+ help='standard to use when processing headers')
+ parser.add_argument('--cc', metavar='CC',
+ help='C compiler to use')
+ parser.add_argument('--flags', metavar='CFLAGS',
+ help='Compiler flags to use with CC')
+ args = parser.parse_args()
+ fns = set()
+ compiler = '%s %s' % (args.cc, args.flags)
+ for header in args.headers.split():
+ fns |= glibcconform.list_exported_functions(compiler, args.standard,
+ header)
+ fns |= EXTRA_SYMS[args.standard]
+ print('\n'.join(sorted(fn for fn in fns if not fn.startswith('_'))))
+
+
+if __name__ == '__main__':
+ main()
diff --git a/crypt/Makefile b/crypt/Makefile
index 3811b6e298..a6adfffde8 100644
--- a/crypt/Makefile
+++ b/crypt/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
# Sub-makefile for crypt() portion of the library.
diff --git a/crypt/badsalttest.c b/crypt/badsalttest.c
index 3e57cdd3b8..f8ea0377e1 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <unistd.h>
@@ -84,6 +84,5 @@ do_test (void)
return result;
}
-#define TIMEOUT 5
#define TEST_FUNCTION do_test ()
#include "../test-skeleton.c"
diff --git a/crypt/crypt-entry.c b/crypt/crypt-entry.c
index 4e95f74878..a3b0d14a47 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-2018 Free Software Foundation, Inc.
+ * Copyright (C) 1991-2019 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
- * <http://www.gnu.org/licenses/>.
+ * <https://www.gnu.org/licenses/>.
*
* crypt entry points
*
diff --git a/crypt/crypt-private.h b/crypt/crypt-private.h
index 6a54002f03..25b1e8f5bb 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-2018 Free Software Foundation, Inc.
+ * Copyright (C) 1991-2019 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
- * <http://www.gnu.org/licenses/>.
+ * <https://www.gnu.org/licenses/>.
*
* @(#)crypt-private.h 1.4 12/20/96
*/
diff --git a/crypt/crypt.c b/crypt/crypt.c
index 0e5c430b71..b0080fd3fb 100644
--- a/crypt/crypt.c
+++ b/crypt/crypt.c
@@ -1,7 +1,7 @@
/*
* UFC-crypt: ultra fast crypt(3) implementation
*
- * Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ * Copyright (C) 1991-2019 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 <http://www.gnu.org/licenses/>.
+ * see <https://www.gnu.org/licenses/>.
*
* @(#)crypt.c 2.25 12/20/96
*
diff --git a/crypt/crypt.h b/crypt/crypt.h
index ebe8607452..c92651cd3d 100644
--- a/crypt/crypt.h
+++ b/crypt/crypt.h
@@ -1,7 +1,7 @@
/*
* UFC-crypt: ultra fast crypt(3) implementation
*
- * Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ * Copyright (C) 1991-2019 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
- * <http://www.gnu.org/licenses/>.
+ * <https://www.gnu.org/licenses/>.
*
* @(#)crypt.h 1.5 12/20/96
*
diff --git a/crypt/crypt_util.c b/crypt/crypt_util.c
index fbfc783751..81c8e9e30a 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-2018 Free Software Foundation, Inc.
+ * Copyright (C) 1991-2019 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 <http://www.gnu.org/licenses/>.
+ * see <https://www.gnu.org/licenses/>.
*
* @(#)crypt_util.c 2.56 12/20/96
*
diff --git a/crypt/md5-crypt.c b/crypt/md5-crypt.c
index 3cf02ff74c..5044b0c272 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
diff --git a/crypt/md5.c b/crypt/md5.c
index 5d7ac76e4a..884f67306a 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995. */
@@ -116,8 +116,8 @@ md5_finish_ctx (struct md5_ctx *ctx, void *resbuf)
/* Put the 64-bit file length in *bits* at the end of the buffer. */
ctx->buffer32[(bytes + pad) / 4] = SWAP (ctx->total[0] << 3);
- ctx->buffer32[(bytes + pad + 4) / 4] = SWAP ((ctx->total[1] << 3) |
- (ctx->total[0] >> 29));
+ ctx->buffer32[(bytes + pad + 4) / 4] = SWAP ((ctx->total[1] << 3)
+ | (ctx->total[0] >> 29));
/* Process last bytes. */
__md5_process_block (ctx->buffer, bytes + pad + 8, ctx);
diff --git a/crypt/md5.h b/crypt/md5.h
index 57959bef03..6000bdd540 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MD5_H
#define _MD5_H 1
diff --git a/crypt/md5test-giant.c b/crypt/md5test-giant.c
index dc5a2db151..1f800b3ffd 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <stdint.h>
#include <stdio.h>
diff --git a/crypt/sha256-crypt.c b/crypt/sha256-crypt.c
index d1fed1d6a6..78fa8432cf 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
diff --git a/crypt/sha256.c b/crypt/sha256.c
index 15b04086cb..0cd6e86399 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Written by Ulrich Drepper <drepper@redhat.com>, 2007. */
@@ -125,8 +125,8 @@ __sha256_finish_ctx (struct sha256_ctx *ctx, void *resbuf)
ctx->buffer64[(bytes + pad) / 8] = SWAP64 (ctx->total64 << 3);
#else
ctx->buffer32[(bytes + pad + 4) / 4] = SWAP (ctx->total[TOTAL64_low] << 3);
- ctx->buffer32[(bytes + pad) / 4] = SWAP ((ctx->total[TOTAL64_high] << 3) |
- (ctx->total[TOTAL64_low] >> 29));
+ ctx->buffer32[(bytes + pad) / 4] = SWAP ((ctx->total[TOTAL64_high] << 3)
+ | (ctx->total[TOTAL64_low] >> 29));
#endif
/* Process last bytes. */
diff --git a/crypt/sha256.h b/crypt/sha256.h
index bf81870b6d..9c9d116f50 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SHA256_H
#define _SHA256_H 1
diff --git a/crypt/sha256c-test.c b/crypt/sha256c-test.c
index 357f0d8b7e..58aec07dae 100644
--- a/crypt/sha256c-test.c
+++ b/crypt/sha256c-test.c
@@ -57,6 +57,5 @@ do_test (void)
return result;
}
-#define TIMEOUT 6
#define TEST_FUNCTION do_test ()
#include "../test-skeleton.c"
diff --git a/crypt/sha512-crypt.c b/crypt/sha512-crypt.c
index bd099cd0e0..63d1dad736 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
diff --git a/crypt/sha512.c b/crypt/sha512.c
index ab2c7f1fbb..7d4ac56298 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Written by Ulrich Drepper <drepper@redhat.com>, 2007. */
@@ -149,8 +149,8 @@ __sha512_finish_ctx (struct sha512_ctx *ctx, void *resbuf)
/* Put the 128-bit file length in *bits* at the end of the buffer. */
ctx->buffer64[(bytes + pad + 8) / 8] = SWAP (ctx->total[TOTAL128_low] << 3);
- ctx->buffer64[(bytes + pad) / 8] = SWAP ((ctx->total[TOTAL128_high] << 3) |
- (ctx->total[TOTAL128_low] >> 61));
+ ctx->buffer64[(bytes + pad) / 8] = SWAP ((ctx->total[TOTAL128_high] << 3)
+ | (ctx->total[TOTAL128_low] >> 61));
/* Process last bytes. */
__sha512_process_block (ctx->buffer, bytes + pad + 16, ctx);
diff --git a/crypt/sha512.h b/crypt/sha512.h
index 7b27aad2d2..11c7b5fe83 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SHA512_H
#define _SHA512_H 1
diff --git a/crypt/ufc-crypt.h b/crypt/ufc-crypt.h
index 500156ee51..98cfc44080 100644
--- a/crypt/ufc-crypt.h
+++ b/crypt/ufc-crypt.h
@@ -1,5 +1,5 @@
/* Types for UFC-crypt.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/crypt/ufc.c b/crypt/ufc.c
index 3b119f1128..cc849d3d2c 100644
--- a/crypt/ufc.c
+++ b/crypt/ufc.c
@@ -1,7 +1,7 @@
/*
* UFC-crypt: ultra fast crypt(3) implementation
*
- * Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ * Copyright (C) 1991-2019 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 <http://www.gnu.org/licenses/>.
+ * see <https://www.gnu.org/licenses/>.
*
* @(#)ufc.c 2.7 9/10/96
*
diff --git a/csu/Makefile b/csu/Makefile
index 88fc77662e..74ed111155 100644
--- a/csu/Makefile
+++ b/csu/Makefile
@@ -1,5 +1,5 @@
# Makefile for csu code for GNU C library.
-# Copyright (C) 1995-2018 Free Software Foundation, Inc.
+# Copyright (C) 1995-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
@@ -14,7 +14,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
# 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 5d0ca7803d..c9613eda6e 100644
--- a/csu/abi-note.S
+++ b/csu/abi-note.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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 ad1763b398..5ecf28982a 100644
--- a/csu/check_fds.c
+++ b/csu/check_fds.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/csu/dso_handle.c b/csu/dso_handle.c
index d8e32fe1b1..cb01bb1e52 100644
--- a/csu/dso_handle.c
+++ b/csu/dso_handle.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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 da59b2c77b..6112dca379 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
diff --git a/csu/errno-loc.c b/csu/errno-loc.c
index 2fe3608d16..d14ab81d0c 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <tls.h>
diff --git a/csu/errno.c b/csu/errno.c
index e762d02a66..d56624e5e8 100644
--- a/csu/errno.c
+++ b/csu/errno.c
@@ -1,5 +1,5 @@
/* Definition of `errno' variable. Canonical version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <tls.h>
diff --git a/csu/gmon-start.c b/csu/gmon-start.c
index 6a130890a9..9e427342df 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <sys/gmon.h>
diff --git a/csu/init-first.c b/csu/init-first.c
index 289373f9d8..e0f489ee6d 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <stdio.h>
diff --git a/csu/init.c b/csu/init.c
index c2f978f3da..2d352800bf 100644
--- a/csu/init.c
+++ b/csu/init.c
@@ -1,5 +1,5 @@
/* Special startup support.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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 494132368f..e9e8e44fe5 100644
--- a/csu/libc-start.c
+++ b/csu/libc-start.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <stdlib.h>
@@ -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 28a79441cd..f9e5437d43 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <startup.h>
#include <errno.h>
@@ -23,7 +23,7 @@
#include <unistd.h>
#include <stdio.h>
#include <sys/param.h>
-
+#include <array_length.h>
#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 70729fb4dc..07501a0e73 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if ENABLE_STATIC_PIE
#include <ldsodefs.h>
diff --git a/csu/version.c b/csu/version.c
index 287838d065..6fc3ad6794 100644
--- a/csu/version.c
+++ b/csu/version.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "version.h"
#include <tls.h>
@@ -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) 2018 Free Software Foundation, Inc.\n\
+Copyright (C) 2019 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 e3ccf31d38..9fd96df75c 100644
--- a/ctype/Makefile
+++ b/ctype/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1991-2018 Free Software Foundation, Inc.
+# Copyright (C) 1991-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
# Sub-makefile for ctype portion of the library.
diff --git a/ctype/ctype-c99.c b/ctype/ctype-c99.c
index 396ed4570f..4834a6604f 100644
--- a/ctype/ctype-c99.c
+++ b/ctype/ctype-c99.c
@@ -1,5 +1,5 @@
/* External function version of isblank.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __NO_CTYPE
#include <ctype.h>
diff --git a/ctype/ctype-c99_l.c b/ctype/ctype-c99_l.c
index b4bfc22114..046501cf76 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __NO_CTYPE
#include <ctype.h>
diff --git a/ctype/ctype-extn.c b/ctype/ctype-extn.c
index 0689f22f32..ae6d5a29f9 100644
--- a/ctype/ctype-extn.c
+++ b/ctype/ctype-extn.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __NO_CTYPE
#include <ctype.h>
diff --git a/ctype/ctype-info.c b/ctype/ctype-info.c
index bc4b846317..4501f5c819 100644
--- a/ctype/ctype-info.c
+++ b/ctype/ctype-info.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define CTYPE_EXTERN_INLINE /* Define real functions for accessors. */
#include <ctype.h>
diff --git a/ctype/ctype.c b/ctype/ctype.c
index 6cb8000771..6c5da6bad6 100644
--- a/ctype/ctype.c
+++ b/ctype/ctype.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __NO_CTYPE
#include <ctype.h>
diff --git a/ctype/ctype.h b/ctype/ctype.h
index 0e0936ac95..d17f727cf0 100644
--- a/ctype/ctype.h
+++ b/ctype/ctype.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* ISO C99 Standard 7.4: Character handling <ctype.h>
@@ -36,7 +36,7 @@ __BEGIN_DECLS
endian). We define the bit value interpretations here dependent on the
machine's byte order. */
-# include <endian.h>
+# include <bits/endian.h>
# 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 e5da90e95e..be821d49fc 100644
--- a/ctype/ctype_l.c
+++ b/ctype/ctype_l.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __NO_CTYPE
#include <ctype.h>
diff --git a/ctype/isctype.c b/ctype/isctype.c
index 6fe1d1c6c3..ac0a44db48 100644
--- a/ctype/isctype.c
+++ b/ctype/isctype.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
diff --git a/ctype/test_ctype.c b/ctype/test_ctype.c
index 8bbde45f3d..9ac3505101 100644
--- a/ctype/test_ctype.c
+++ b/ctype/test_ctype.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <limits.h>
#include <ctype.h>
diff --git a/debug/Makefile b/debug/Makefile
index 506cebc3c4..76bd5b5c72 100644
--- a/debug/Makefile
+++ b/debug/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1998-2018 Free Software Foundation, Inc.
+# Copyright (C) 1998-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
# Sub-makefile for debug portion of the library.
@@ -45,7 +45,7 @@ routines = backtrace backtracesyms backtracesymsfd noophooks \
gethostname_chk getdomainname_chk wcrtomb_chk mbsnrtowcs_chk \
wcsnrtombs_chk mbsrtowcs_chk wcsrtombs_chk mbstowcs_chk \
wcstombs_chk asprintf_chk vasprintf_chk dprintf_chk \
- vdprintf_chk obprintf_chk \
+ vdprintf_chk obprintf_chk vobprintf_chk \
longjmp_chk ____longjmp_chk \
fdelt_chk poll_chk ppoll_chk \
explicit_bzero_chk \
diff --git a/debug/asprintf_chk.c b/debug/asprintf_chk.c
index 9cd4143f2e..6c4301b9c4 100644
--- a/debug/asprintf_chk.c
+++ b/debug/asprintf_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -13,24 +13,26 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#include <libioP.h>
#include <stdarg.h>
-#include <stdio.h>
+#include <libio/libioP.h>
/* Write formatted output from FORMAT to a string which is
allocated with malloc and stored in *STRING_PTR. */
int
-__asprintf_chk (char **result_ptr, int flags, const char *format, ...)
+__asprintf_chk (char **result_ptr, int flag, const char *format, ...)
{
- va_list arg;
- int done;
+ /* For flag > 0 (i.e. __USE_FORTIFY_LEVEL > 1) request that %n
+ can only come from read-only format strings. */
+ unsigned int mode = (flag > 0) ? PRINTF_FORTIFY : 0;
+ va_list ap;
+ int ret;
- va_start (arg, format);
- done = __vasprintf_chk (result_ptr, flags, format, arg);
- va_end (arg);
+ va_start (ap, format);
+ ret = __vasprintf_internal (result_ptr, format, ap, mode);
+ va_end (ap);
- return done;
+ return ret;
}
diff --git a/debug/backtrace.c b/debug/backtrace.c
index d423cc053a..8da4b8996d 100644
--- a/debug/backtrace.c
+++ b/debug/backtrace.c
@@ -1,5 +1,5 @@
/* Return backtrace of current program state.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libc-lock.h>
#include <dlfcn.h>
diff --git a/debug/backtracesyms.c b/debug/backtracesyms.c
index 45873e4bbc..9d434974a9 100644
--- a/debug/backtracesyms.c
+++ b/debug/backtracesyms.c
@@ -1,5 +1,5 @@
/* Return list with names for address in backtrace.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <execinfo.h>
diff --git a/debug/backtracesymsfd.c b/debug/backtracesymsfd.c
index 7604d68847..ddd374ce20 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <execinfo.h>
#include <string.h>
diff --git a/debug/catchsegv.sh b/debug/catchsegv.sh
index d1f60c4532..9b5f9951a6 100755
--- a/debug/catchsegv.sh
+++ b/debug/catchsegv.sh
@@ -1,5 +1,5 @@
#!/bin/sh
-# Copyright (C) 1998-2018 Free Software Foundation, Inc.
+# Copyright (C) 1998-2019 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
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) 2018 Free Software Foundation, Inc.
+ echo 'Copyright (C) 2019 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 65ce942c4c..8861c4ea4e 100644
--- a/debug/chk_fail.c
+++ b/debug/chk_fail.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
diff --git a/debug/confstr_chk.c b/debug/confstr_chk.c
index c23163ec6b..e9bb4c22b1 100644
--- a/debug/confstr_chk.c
+++ b/debug/confstr_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@readhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
diff --git a/debug/dprintf_chk.c b/debug/dprintf_chk.c
index df3867c61c..58e52abcf4 100644
--- a/debug/dprintf_chk.c
+++ b/debug/dprintf_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -13,23 +13,25 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#include <libioP.h>
#include <stdarg.h>
-#include <stdio.h>
+#include <libio/libioP.h>
/* Write formatted output to D, according to the format string FORMAT. */
int
-__dprintf_chk (int d, int flags, const char *format, ...)
+__dprintf_chk (int d, int flag, const char *format, ...)
{
- va_list arg;
- int done;
+ /* For flag > 0 (i.e. __USE_FORTIFY_LEVEL > 1) request that %n
+ can only come from read-only format strings. */
+ unsigned int mode = (flag > 0) ? PRINTF_FORTIFY : 0;
+ va_list ap;
+ int ret;
- va_start (arg, format);
- done = __vdprintf_chk (d, flags, format, arg);
- va_end (arg);
+ va_start (ap, format);
+ ret = __vdprintf_internal (d, format, ap, mode);
+ va_end (ap);
- return done;
+ return ret;
}
diff --git a/debug/execinfo.h b/debug/execinfo.h
index 40a43325a4..0f935a9624 100644
--- a/debug/execinfo.h
+++ b/debug/execinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _EXECINFO_H
#define _EXECINFO_H 1
diff --git a/debug/explicit_bzero_chk.c b/debug/explicit_bzero_chk.c
index fb13a7f4b6..668fde2855 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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 258baf9c78..1047a1ec3e 100644
--- a/debug/fdelt_chk.c
+++ b/debug/fdelt_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* 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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/select.h>
diff --git a/debug/fgets_chk.c b/debug/fgets_chk.c
index f3548c7d61..d9d63fb4f1 100644
--- a/debug/fgets_chk.c
+++ b/debug/fgets_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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 924634c17b..08ee2d0218 100644
--- a/debug/fgets_u_chk.c
+++ b/debug/fgets_u_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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 2380059f0f..234e02327c 100644
--- a/debug/fgetws_chk.c
+++ b/debug/fgetws_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libioP.h"
#include <wchar.h>
diff --git a/debug/fgetws_u_chk.c b/debug/fgetws_u_chk.c
index 8147eb1e36..bde1e6d154 100644
--- a/debug/fgetws_u_chk.c
+++ b/debug/fgetws_u_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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 ef6a39d151..4ef1bd3d74 100644
--- a/debug/fortify_fail.c
+++ b/debug/fortify_fail.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
-#include <stdlib.h>
-#include <stdbool.h>
-
-
-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] : "<unknown>"));
-}
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 cff4438afb..6f7805f147 100644
--- a/debug/fprintf_chk.c
+++ b/debug/fprintf_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -13,32 +13,26 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdarg.h>
-#include <stdio.h>
-#include "../libio/libioP.h"
+#include <libio/libioP.h>
/* Write formatted output to FP from the format string FORMAT. */
int
___fprintf_chk (FILE *fp, int flag, const char *format, ...)
{
+ /* For flag > 0 (i.e. __USE_FORTIFY_LEVEL > 1) request that %n
+ can only come from read-only format strings. */
+ unsigned int mode = (flag > 0) ? PRINTF_FORTIFY : 0;
va_list ap;
- int done;
-
- _IO_acquire_lock_clear_flags2 (fp);
- if (flag > 0)
- fp->_flags2 |= _IO_FLAGS2_FORTIFY;
+ int ret;
va_start (ap, format);
- done = vfprintf (fp, format, ap);
+ ret = __vfprintf_internal (fp, format, ap, mode);
va_end (ap);
- if (flag > 0)
- fp->_flags2 &= ~_IO_FLAGS2_FORTIFY;
- _IO_release_lock (fp);
-
- return done;
+ return ret;
}
ldbl_strong_alias (___fprintf_chk, __fprintf_chk)
diff --git a/debug/fread_chk.c b/debug/fread_chk.c
index b0cb061d0d..2a098d0d36 100644
--- a/debug/fread_chk.c
+++ b/debug/fread_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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 b3061f9745..50dbf70ccb 100644
--- a/debug/fread_u_chk.c
+++ b/debug/fread_u_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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 aeb83077da..6d5b75eaf8 100644
--- a/debug/fwprintf_chk.c
+++ b/debug/fwprintf_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -13,31 +13,25 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdarg.h>
-#include <wchar.h>
-#include "../libio/libioP.h"
+#include <libio/libioP.h>
/* Write formatted output to FP from the format string FORMAT. */
int
__fwprintf_chk (FILE *fp, int flag, const wchar_t *format, ...)
{
+ /* For flag > 0 (i.e. __USE_FORTIFY_LEVEL > 1) request that %n
+ can only come from read-only format strings. */
+ unsigned int mode = (flag > 0) ? PRINTF_FORTIFY : 0;
va_list ap;
- int done;
-
- _IO_acquire_lock_clear_flags2 (fp);
- if (flag > 0)
- fp->_flags2 |= _IO_FLAGS2_FORTIFY;
+ int ret;
va_start (ap, format);
- done = _IO_vfwprintf (fp, format, ap);
+ ret = __vfwprintf_internal (fp, format, ap, mode);
va_end (ap);
- if (flag > 0)
- fp->_flags2 &= ~_IO_FLAGS2_FORTIFY;
- _IO_release_lock (fp);
-
- return done;
+ return ret;
}
diff --git a/debug/getcwd_chk.c b/debug/getcwd_chk.c
index 7a932eb444..2f4f153d12 100644
--- a/debug/getcwd_chk.c
+++ b/debug/getcwd_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/debug/getdomainname_chk.c b/debug/getdomainname_chk.c
index 70b60b3ddb..ef38289130 100644
--- a/debug/getdomainname_chk.c
+++ b/debug/getdomainname_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
diff --git a/debug/getgroups_chk.c b/debug/getgroups_chk.c
index 878c3f2569..cbe377eaee 100644
--- a/debug/getgroups_chk.c
+++ b/debug/getgroups_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/debug/gethostname_chk.c b/debug/gethostname_chk.c
index 2d6856a55c..27dbc8d377 100644
--- a/debug/gethostname_chk.c
+++ b/debug/gethostname_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
diff --git a/debug/gets_chk.c b/debug/gets_chk.c
index 2b1416b295..3f9012dd09 100644
--- a/debug/gets_chk.c
+++ b/debug/gets_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
As a special exception, if you link the code in this file with
files compiled with a GNU compiler to produce an executable,
@@ -37,8 +37,8 @@ __gets_chk (char *buf, size_t size)
if (size == 0)
__chk_fail ();
- _IO_acquire_lock (_IO_stdin);
- ch = _IO_getc_unlocked (_IO_stdin);
+ _IO_acquire_lock (stdin);
+ ch = _IO_getc_unlocked (stdin);
if (ch == EOF)
{
retval = NULL;
@@ -51,24 +51,24 @@ __gets_chk (char *buf, size_t size)
/* This is very tricky since a file descriptor may be in the
non-blocking mode. The error flag doesn't mean much in this
case. We return an error only when there is a new error. */
- int old_error = _IO_stdin->_flags & _IO_ERR_SEEN;
- _IO_stdin->_flags &= ~_IO_ERR_SEEN;
+ int old_error = stdin->_flags & _IO_ERR_SEEN;
+ stdin->_flags &= ~_IO_ERR_SEEN;
buf[0] = (char) ch;
- count = _IO_getline (_IO_stdin, buf + 1, size - 1, '\n', 0) + 1;
- if (_IO_stdin->_flags & _IO_ERR_SEEN)
+ count = _IO_getline (stdin, buf + 1, size - 1, '\n', 0) + 1;
+ if (stdin->_flags & _IO_ERR_SEEN)
{
retval = NULL;
goto unlock_return;
}
else
- _IO_stdin->_flags |= old_error;
+ stdin->_flags |= old_error;
}
if (count >= size)
__chk_fail ();
buf[count] = 0;
retval = buf;
unlock_return:
- _IO_release_lock (_IO_stdin);
+ _IO_release_lock (stdin);
return retval;
}
diff --git a/debug/getwd_chk.c b/debug/getwd_chk.c
index 16630080d5..57cea01769 100644
--- a/debug/getwd_chk.c
+++ b/debug/getwd_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/debug/longjmp_chk.c b/debug/longjmp_chk.c
index 2c8611300c..cf7af539a7 100644
--- a/debug/longjmp_chk.c
+++ b/debug/longjmp_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <setjmpP.h>
diff --git a/debug/mbsnrtowcs_chk.c b/debug/mbsnrtowcs_chk.c
index 85b0bdea9e..b07902aeec 100644
--- a/debug/mbsnrtowcs_chk.c
+++ b/debug/mbsnrtowcs_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <locale.h>
#include <wchar.h>
diff --git a/debug/mbsrtowcs_chk.c b/debug/mbsrtowcs_chk.c
index b5be6245bc..7a98a04a56 100644
--- a/debug/mbsrtowcs_chk.c
+++ b/debug/mbsrtowcs_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <locale.h>
#include <wchar.h>
diff --git a/debug/mbstowcs_chk.c b/debug/mbstowcs_chk.c
index c9b75596dd..53a12768aa 100644
--- a/debug/mbstowcs_chk.c
+++ b/debug/mbstowcs_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <locale.h>
#include <string.h>
diff --git a/debug/memcpy_chk.c b/debug/memcpy_chk.c
index b9a440890d..2831e30a7f 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <memcopy.h>
diff --git a/debug/memmove_chk.c b/debug/memmove_chk.c
index 4e73dea3af..db959a725b 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <memcopy.h>
diff --git a/debug/mempcpy_chk.c b/debug/mempcpy_chk.c
index 6af7bfb902..1740e65fd2 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <memcopy.h>
diff --git a/debug/memset_chk.c b/debug/memset_chk.c
index 7ebff2b614..4bd17c36f3 100644
--- a/debug/memset_chk.c
+++ b/debug/memset_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <memcopy.h>
diff --git a/debug/noophooks.c b/debug/noophooks.c
index b79358691b..71efe3621c 100644
--- a/debug/noophooks.c
+++ b/debug/noophooks.c
@@ -1,5 +1,5 @@
/* Noop hooks for the instrumenting functions.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libc-internal.h>
diff --git a/debug/obprintf_chk.c b/debug/obprintf_chk.c
index 3ac5a3cd4f..7536437fed 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
@@ -15,101 +15,25 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-
-#include <stdlib.h>
-#include <libioP.h>
-#include "../libio/strfile.h"
-#include <assert.h>
-#include <string.h>
-#include <errno.h>
-#include <obstack.h>
+#include <libio/libioP.h>
#include <stdarg.h>
-#include <stdio_ext.h>
-
-
-struct _IO_obstack_file
-{
- struct _IO_FILE_plus file;
- struct obstack *obstack;
-};
-
-extern const struct _IO_jump_t _IO_obstack_jumps libio_vtable attribute_hidden;
-
-int
-__obstack_vprintf_chk (struct obstack *obstack, int flags, const char *format,
- va_list args)
-{
- struct obstack_FILE
- {
- struct _IO_obstack_file ofile;
- } new_f;
- int result;
- int size;
- int room;
-
-#ifdef _IO_MTSAFE_IO
- new_f.ofile.file.file._lock = NULL;
-#endif
-
- _IO_no_init (&new_f.ofile.file.file, _IO_USER_LOCK, -1, NULL, NULL);
- _IO_JUMPS (&new_f.ofile.file) = &_IO_obstack_jumps;
- room = obstack_room (obstack);
- size = obstack_object_size (obstack) + room;
- if (size == 0)
- {
- /* We have to handle the allocation a bit different since the
- `_IO_str_init_static' function would handle a size of zero
- different from what we expect. */
-
- /* Get more memory. */
- obstack_make_room (obstack, 64);
-
- /* Recompute how much room we have. */
- room = obstack_room (obstack);
- size = room;
-
- assert (size != 0);
- }
-
- _IO_str_init_static_internal ((struct _IO_strfile_ *) &new_f.ofile,
- obstack_base (obstack),
- size, obstack_next_free (obstack));
- /* Now allocate the rest of the current chunk. */
- assert (size == (new_f.ofile.file.file._IO_write_end
- - new_f.ofile.file.file._IO_write_base));
- assert (new_f.ofile.file.file._IO_write_ptr
- == (new_f.ofile.file.file._IO_write_base
- + obstack_object_size (obstack)));
- obstack_blank_fast (obstack, room);
-
- new_f.ofile.obstack = obstack;
-
- /* For flags > 0 (i.e. __USE_FORTIFY_LEVEL > 1) request that %n
- can only come from read-only format strings. */
- if (flags > 0)
- new_f.ofile.file.file._flags2 |= _IO_FLAGS2_FORTIFY;
-
- result = _IO_vfprintf (&new_f.ofile.file.file, format, args);
-
- /* Shrink the buffer to the space we really currently need. */
- obstack_blank_fast (obstack, (new_f.ofile.file.file._IO_write_ptr
- - new_f.ofile.file.file._IO_write_end));
-
- return result;
-}
-libc_hidden_def (__obstack_vprintf_chk)
int
-__obstack_printf_chk (struct obstack *obstack, int flags, const char *format,
+__obstack_printf_chk (struct obstack *obstack, int flag, const char *format,
...)
{
- int result;
+ /* For flag > 0 (i.e. __USE_FORTIFY_LEVEL > 1) request that %n
+ can only come from read-only format strings. */
+ unsigned int mode = (flag > 0) ? PRINTF_FORTIFY : 0;
va_list ap;
+ int ret;
+
va_start (ap, format);
- result = __obstack_vprintf_chk (obstack, flags, format, ap);
+ ret = __obstack_vprintf_internal (obstack, format, ap, mode);
va_end (ap);
- return result;
+
+ return ret;
}
diff --git a/debug/pcprofile.c b/debug/pcprofile.c
index 10cbdb6885..bb44d85c5d 100644
--- a/debug/pcprofile.c
+++ b/debug/pcprofile.c
@@ -1,5 +1,5 @@
/* Profile PC and write result to FIFO.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/debug/pcprofiledump.c b/debug/pcprofiledump.c
index 1e1af31eec..d1da7fbf09 100644
--- a/debug/pcprofiledump.c
+++ b/debug/pcprofiledump.c
@@ -1,5 +1,5 @@
/* Dump information generated by PC profiling.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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\
-"), "2018");
+"), "2019");
fprintf (stream, gettext ("Written by %s.\n"), "Ulrich Drepper");
}
diff --git a/debug/poll_chk.c b/debug/poll_chk.c
index 1852786db4..da857e5d2e 100644
--- a/debug/poll_chk.c
+++ b/debug/poll_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/poll.h>
diff --git a/debug/ppoll_chk.c b/debug/ppoll_chk.c
index 7121eebabb..9489674fb0 100644
--- a/debug/ppoll_chk.c
+++ b/debug/ppoll_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/poll.h>
diff --git a/debug/pread64_chk.c b/debug/pread64_chk.c
index cc22b51f49..cab680857c 100644
--- a/debug/pread64_chk.c
+++ b/debug/pread64_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <sys/param.h>
diff --git a/debug/pread_chk.c b/debug/pread_chk.c
index a268bbe105..6e2cf96c00 100644
--- a/debug/pread_chk.c
+++ b/debug/pread_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <sys/param.h>
diff --git a/debug/printf_chk.c b/debug/printf_chk.c
index 426dc78386..49fe39a336 100644
--- a/debug/printf_chk.c
+++ b/debug/printf_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -13,32 +13,26 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdarg.h>
-#include <stdio.h>
-#include "../libio/libioP.h"
+#include <libio/libioP.h>
/* Write formatted output to stdout from the format string FORMAT. */
int
___printf_chk (int flag, const char *format, ...)
{
+ /* For flag > 0 (i.e. __USE_FORTIFY_LEVEL > 1) request that %n
+ can only come from read-only format strings. */
+ unsigned int mode = (flag > 0) ? PRINTF_FORTIFY : 0;
va_list ap;
- int done;
-
- _IO_acquire_lock_clear_flags2 (stdout);
- if (flag > 0)
- stdout->_flags2 |= _IO_FLAGS2_FORTIFY;
+ int ret;
va_start (ap, format);
- done = vfprintf (stdout, format, ap);
+ ret = __vfprintf_internal (stdout, format, ap, mode);
va_end (ap);
- if (flag > 0)
- stdout->_flags2 &= ~_IO_FLAGS2_FORTIFY;
- _IO_release_lock (stdout);
-
- return done;
+ return ret;
}
ldbl_strong_alias (___printf_chk, __printf_chk)
diff --git a/debug/read_chk.c b/debug/read_chk.c
index 4a8c42e329..306bba74e8 100644
--- a/debug/read_chk.c
+++ b/debug/read_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <sys/param.h>
diff --git a/debug/readlink_chk.c b/debug/readlink_chk.c
index c44d1d8c37..fb5bcbd8f1 100644
--- a/debug/readlink_chk.c
+++ b/debug/readlink_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <sys/param.h>
@@ -29,9 +29,5 @@ __readlink_chk (const char *path, void *buf, size_t len, size_t buflen)
if (len > buflen)
__chk_fail ();
-#ifdef HAVE_INLINED_SYSCALLS
- return INLINE_SYSCALL (readlink, 3, path, buf, len);
-#else
return __readlink (path, buf, len);
-#endif
}
diff --git a/debug/readlinkat_chk.c b/debug/readlinkat_chk.c
index 7ebe48c7aa..9f8a202ec5 100644
--- a/debug/readlinkat_chk.c
+++ b/debug/readlinkat_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2006-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <sys/param.h>
diff --git a/debug/readonly-area.c b/debug/readonly-area.c
index 4a52dae8a9..429d575d59 100644
--- a/debug/readonly-area.c
+++ b/debug/readonly-area.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
diff --git a/debug/realpath_chk.c b/debug/realpath_chk.c
index 09732bd24d..c820c1a704 100644
--- a/debug/realpath_chk.c
+++ b/debug/realpath_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <limits.h>
#include <stdlib.h>
diff --git a/debug/recv_chk.c b/debug/recv_chk.c
index 6921cdc3c6..55b0dbade9 100644
--- a/debug/recv_chk.c
+++ b/debug/recv_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/param.h>
#include <sys/socket.h>
diff --git a/debug/recvfrom_chk.c b/debug/recvfrom_chk.c
index 7fd16b1366..56e24ad34e 100644
--- a/debug/recvfrom_chk.c
+++ b/debug/recvfrom_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/param.h>
#include <sys/socket.h>
diff --git a/debug/segfault.c b/debug/segfault.c
index e1945b5846..69f0634e70 100644
--- a/debug/segfault.c
+++ b/debug/segfault.c
@@ -1,5 +1,5 @@
/* Catch segmentation faults and print backtrace.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <alloca.h>
#include <ctype.h>
@@ -35,6 +35,10 @@
passed up by the signal handler. */
#include <sigcontextinfo.h>
+#ifdef SA_SIGINFO
+# define SIGCONTEXT siginfo_t *info, void *
+#endif
+
/* Get code to possibly dump the content of all registers. */
#include <register-dump.h>
@@ -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 cddba37109..13d18104e5 100644
--- a/debug/snprintf_chk.c
+++ b/debug/snprintf_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -13,27 +13,31 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#include <libioP.h>
#include <stdarg.h>
-#include <stdio.h>
+#include <libio/libioP.h>
/* Write formatted output into S, according to the format
string FORMAT, writing no more than MAXLEN characters. */
-/* VARARGS5 */
int
-___snprintf_chk (char *s, size_t maxlen, int flags, size_t slen,
+___snprintf_chk (char *s, size_t maxlen, int flag, size_t slen,
const char *format, ...)
{
- va_list arg;
- int done;
+ if (__glibc_unlikely (slen < maxlen))
+ __chk_fail ();
- va_start (arg, format);
- done = __vsnprintf_chk (s, maxlen, flags, slen, format, arg);
- va_end (arg);
+ /* For flag > 0 (i.e. __USE_FORTIFY_LEVEL > 1) request that %n
+ can only come from read-only format strings. */
+ unsigned int mode = (flag > 0) ? PRINTF_FORTIFY : 0;
+ va_list ap;
+ int ret;
- return done;
+ va_start (ap, format);
+ ret = __vsnprintf_internal (s, maxlen, format, ap, mode);
+ va_end (ap);
+
+ return ret;
}
ldbl_strong_alias (___snprintf_chk, __snprintf_chk)
diff --git a/debug/sprintf_chk.c b/debug/sprintf_chk.c
index 78214563dd..7c7931cf82 100644
--- a/debug/sprintf_chk.c
+++ b/debug/sprintf_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -13,24 +13,33 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#include <libioP.h>
#include <stdarg.h>
-#include <stdio.h>
+#include <libio/libioP.h>
+
/* Write formatted output into S, according to the format string FORMAT. */
-/* VARARGS4 */
int
-___sprintf_chk (char *s, int flags, size_t slen, const char *format, ...)
+___sprintf_chk (char *s, int flag, size_t slen, const char *format, ...)
{
- va_list arg;
- int done;
+ /* For flag > 0 (i.e. __USE_FORTIFY_LEVEL > 1) request that %n
+ can only come from read-only format strings. */
+ unsigned int mode = (flag > 0) ? PRINTF_FORTIFY : 0;
+ va_list ap;
+ int ret;
+
+ /* Regardless of the value of flag, let __vsprintf_internal know that
+ this is a call from *printf_chk. */
+ mode |= PRINTF_CHK;
+
+ if (slen == 0)
+ __chk_fail ();
- va_start (arg, format);
- done = __vsprintf_chk (s, flags, slen, format, arg);
- va_end (arg);
+ va_start (ap, format);
+ ret = __vsprintf_internal (s, slen, format, ap, mode);
+ va_end (ap);
- return done;
+ return ret;
}
ldbl_strong_alias (___sprintf_chk, __sprintf_chk)
diff --git a/debug/stack_chk_fail.c b/debug/stack_chk_fail.c
index d0b903c7e8..56b87c748b 100644
--- a/debug/stack_chk_fail.c
+++ b/debug/stack_chk_fail.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
-#include <stdlib.h>
-#include <stdbool.h>
-
-
-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 f389e8538c..74b924509f 100644
--- a/debug/stack_chk_fail_local.c
+++ b/debug/stack_chk_fail_local.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/cdefs.h>
diff --git a/debug/stpcpy_chk.c b/debug/stpcpy_chk.c
index ace08cfe48..9dc76bd1f2 100644
--- a/debug/stpcpy_chk.c
+++ b/debug/stpcpy_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
diff --git a/debug/stpncpy_chk.c b/debug/stpncpy_chk.c
index 9e4cac4479..4247dd2e96 100644
--- a/debug/stpncpy_chk.c
+++ b/debug/stpncpy_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This is almost copied from strncpy.c, written by Torbjorn Granlund. */
diff --git a/debug/strcat_chk.c b/debug/strcat_chk.c
index 396addc1db..9abe296d3c 100644
--- a/debug/strcat_chk.c
+++ b/debug/strcat_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <memcopy.h>
diff --git a/debug/strcpy_chk.c b/debug/strcpy_chk.c
index a8572091d9..3ac4d50cc6 100644
--- a/debug/strcpy_chk.c
+++ b/debug/strcpy_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <string.h>
diff --git a/debug/strncat_chk.c b/debug/strncat_chk.c
index c5283e58b3..56feb83d17 100644
--- a/debug/strncat_chk.c
+++ b/debug/strncat_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/debug/strncpy_chk.c b/debug/strncpy_chk.c
index bd44af9e01..a7a864aa5a 100644
--- a/debug/strncpy_chk.c
+++ b/debug/strncpy_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <memcopy.h>
diff --git a/debug/swprintf_chk.c b/debug/swprintf_chk.c
index 35887e48e2..036f5bd6da 100644
--- a/debug/swprintf_chk.c
+++ b/debug/swprintf_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -13,23 +13,30 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdarg.h>
-#include <wchar.h>
+#include <libio/libioP.h>
-/* Write formatted output into S, according to the format string FORMAT. */
-/* VARARGS5 */
+
+/* Write formatted output into S, according to the format string FORMAT,
+ writing no more than MAXLEN characters. */
int
-__swprintf_chk (wchar_t *s, size_t n, int flag, size_t s_len,
+__swprintf_chk (wchar_t *s, size_t maxlen, int flag, size_t slen,
const wchar_t *format, ...)
{
- va_list arg;
- int done;
+ if (__glibc_unlikely (slen < maxlen))
+ __chk_fail ();
+
+ /* For flag > 0 (i.e. __USE_FORTIFY_LEVEL > 1) request that %n
+ can only come from read-only format strings. */
+ unsigned int mode = (flag > 0) ? PRINTF_FORTIFY : 0;
+ va_list ap;
+ int ret;
- va_start (arg, format);
- done = __vswprintf_chk (s, n, flag, s_len, format, arg);
- va_end (arg);
+ va_start (ap, format);
+ ret = __vswprintf_internal (s, maxlen, format, ap, mode);
+ va_end (ap);
- return done;
+ return ret;
}
diff --git a/debug/test-stpcpy_chk.c b/debug/test-stpcpy_chk.c
index 32c9d1e8d8..98f1dfef60 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#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 da3d903488..31c701c715 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef STRCPY_RESULT
# define STRCPY_RESULT(dst, len) dst
diff --git a/debug/tst-backtrace.h b/debug/tst-backtrace.h
index beb57a7521..1cb4179fe4 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdbool.h>
#include <stdio.h>
diff --git a/debug/tst-backtrace2.c b/debug/tst-backtrace2.c
index 3724664015..2b9c85d846 100644
--- a/debug/tst-backtrace2.c
+++ b/debug/tst-backtrace2.c
@@ -1,5 +1,5 @@
/* Test backtrace and backtrace_symbols.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <execinfo.h>
#include <search.h>
diff --git a/debug/tst-backtrace3.c b/debug/tst-backtrace3.c
index cb98b288d2..667fd059a6 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <execinfo.h>
#include <search.h>
diff --git a/debug/tst-backtrace4.c b/debug/tst-backtrace4.c
index 643c7c93fe..efbcd3c134 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-2018 Free Software Foundation, Inc.
+ 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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <execinfo.h>
#include <search.h>
diff --git a/debug/tst-backtrace5.c b/debug/tst-backtrace5.c
index 0e6fb1a024..9886b9b214 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-2018 Free Software Foundation, Inc.
+ 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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <execinfo.h>
#include <search.h>
@@ -69,17 +69,18 @@ handle_signal (int signum)
FAIL ();
return;
}
- /* Do not check name for signal trampoline. */
- i = 2;
- if (!match (symbols[i++], "read"))
+
+ /* Do not check name for signal trampoline or cancellable syscall
+ wrappers (__syscall_cancel*). */
+ for (; i < n - 1; i++)
+ if (match (symbols[i], "read"))
+ break;
+ if (i == n - 1)
{
- /* Perhaps symbols[2] is __kernel_vsyscall? */
- if (!match (symbols[i++], "read"))
- {
- FAIL ();
- return;
- }
+ FAIL ();
+ return;
}
+
for (; i < n - 1; i++)
if (!match (symbols[i], "fn"))
{
diff --git a/debug/tst-backtrace6.c b/debug/tst-backtrace6.c
index 6bd3758126..f131d1bc65 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <signal.h>
diff --git a/debug/tst-chk1.c b/debug/tst-chk1.c
index ca2b524b2f..bae5d4c277 100644
--- a/debug/tst-chk1.c
+++ b/debug/tst-chk1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file tests gets. Force it to be declared. */
#include <features.h>
diff --git a/debug/tst-longjmp_chk3.c b/debug/tst-longjmp_chk3.c
index 8e9859e365..a397299054 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <setjmp.h>
#include <signal.h>
diff --git a/debug/tst-ssp-1.c b/debug/tst-ssp-1.c
index da85ab00d0..44060a4a04 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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 8bbb3bb220..4a932d5858 100644
--- a/debug/ttyname_r_chk.c
+++ b/debug/ttyname_r_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
diff --git a/debug/vasprintf_chk.c b/debug/vasprintf_chk.c
index 48b4741651..4fe3d0d104 100644
--- a/debug/vasprintf_chk.c
+++ b/debug/vasprintf_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
As a special exception, if you link the code in this file with
files compiled with a GNU compiler to produce an executable,
@@ -24,72 +24,14 @@
This exception applies to code released by its copyright holders
in files containing the exception. */
-#include <malloc.h>
-#include <string.h>
-#include <stdio.h>
-#include <stdio_ext.h>
-#include "../libio/libioP.h"
-#include "../libio/strfile.h"
+#include <libio/libioP.h>
int
-__vasprintf_chk (char **result_ptr, int flags, const char *format,
- va_list args)
+__vasprintf_chk (char **result_ptr, int flag, const char *format, va_list ap)
{
- /* Initial size of the buffer to be used. Will be doubled each time an
- overflow occurs. */
- const size_t init_string_size = 100;
- char *string;
- _IO_strfile sf;
- int ret;
- size_t needed;
- size_t allocated;
- /* No need to clear the memory here (unlike for open_memstream) since
- we know we will never seek on the stream. */
- string = (char *) malloc (init_string_size);
- if (string == NULL)
- return -1;
-#ifdef _IO_MTSAFE_IO
- sf._sbf._f._lock = NULL;
-#endif
- _IO_no_init (&sf._sbf._f, _IO_USER_LOCK, -1, NULL, NULL);
- _IO_JUMPS (&sf._sbf) = &_IO_str_jumps;
- _IO_str_init_static_internal (&sf, string, init_string_size, string);
- sf._sbf._f._flags &= ~_IO_USER_BUF;
- sf._s._allocate_buffer_unused = (_IO_alloc_type) malloc;
- sf._s._free_buffer_unused = (_IO_free_type) free;
-
- /* For flags > 0 (i.e. __USE_FORTIFY_LEVEL > 1) request that %n
+ /* For flag > 0 (i.e. __USE_FORTIFY_LEVEL > 1) request that %n
can only come from read-only format strings. */
- if (flags > 0)
- sf._sbf._f._flags2 |= _IO_FLAGS2_FORTIFY;
+ unsigned int mode = (flag > 0) ? PRINTF_FORTIFY : 0;
- ret = _IO_vfprintf (&sf._sbf._f, format, args);
- if (ret < 0)
- {
- free (sf._sbf._f._IO_buf_base);
- return ret;
- }
- /* Only use realloc if the size we need is of the same (binary)
- order of magnitude then the memory we allocated. */
- needed = sf._sbf._f._IO_write_ptr - sf._sbf._f._IO_write_base + 1;
- allocated = sf._sbf._f._IO_write_end - sf._sbf._f._IO_write_base;
- if ((allocated >> 1) <= needed)
- *result_ptr = (char *) realloc (sf._sbf._f._IO_buf_base, needed);
- else
- {
- *result_ptr = (char *) malloc (needed);
- if (*result_ptr != NULL)
- {
- memcpy (*result_ptr, sf._sbf._f._IO_buf_base, needed - 1);
- free (sf._sbf._f._IO_buf_base);
- }
- else
- /* We have no choice, use the buffer we already have. */
- *result_ptr = (char *) realloc (sf._sbf._f._IO_buf_base, needed);
- }
- if (*result_ptr == NULL)
- *result_ptr = sf._sbf._f._IO_buf_base;
- (*result_ptr)[needed - 1] = '\0';
- return ret;
+ return __vasprintf_internal (result_ptr, format, ap, mode);
}
-libc_hidden_def (__vasprintf_chk)
diff --git a/debug/vdprintf_chk.c b/debug/vdprintf_chk.c
index bc713b4962..84d94c6d5b 100644
--- a/debug/vdprintf_chk.c
+++ b/debug/vdprintf_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
As a special exception, if you link the code in this file with
files compiled with a GNU compiler to produce an executable,
@@ -24,41 +24,14 @@
This exception applies to code released by its copyright holders
in files containing the exception. */
-#include <libioP.h>
-#include <stdio_ext.h>
+#include <libio/libioP.h>
int
-__vdprintf_chk (int d, int flags, const char *format, va_list arg)
+__vdprintf_chk (int d, int flag, const char *format, va_list ap)
{
- struct _IO_FILE_plus tmpfil;
- struct _IO_wide_data wd;
- int done;
-
-#ifdef _IO_MTSAFE_IO
- tmpfil.file._lock = NULL;
-#endif
- _IO_no_init (&tmpfil.file, _IO_USER_LOCK, 0, &wd, &_IO_wfile_jumps);
- _IO_JUMPS (&tmpfil) = &_IO_file_jumps;
- _IO_new_file_init_internal (&tmpfil);
- if (_IO_file_attach (&tmpfil.file, d) == NULL)
- {
- _IO_un_link (&tmpfil);
- return EOF;
- }
- tmpfil.file._flags |= _IO_DELETE_DONT_CLOSE;
-
- _IO_mask_flags (&tmpfil.file, _IO_NO_READS,
- _IO_NO_READS+_IO_NO_WRITES+_IO_IS_APPENDING);
-
- /* For flags > 0 (i.e. __USE_FORTIFY_LEVEL > 1) request that %n
+ /* For flag > 0 (i.e. __USE_FORTIFY_LEVEL > 1) request that %n
can only come from read-only format strings. */
- if (flags > 0)
- tmpfil.file._flags2 |= _IO_FLAGS2_FORTIFY;
-
- done = _IO_vfprintf (&tmpfil.file, format, arg);
-
- _IO_FINISH (&tmpfil.file);
+ unsigned int mode = (flag > 0) ? PRINTF_FORTIFY : 0;
- return done;
+ return __vdprintf_internal (d, format, ap, mode);
}
-libc_hidden_def (__vdprintf_chk)
diff --git a/debug/vfprintf_chk.c b/debug/vfprintf_chk.c
index 5babbf611e..e9753ad020 100644
--- a/debug/vfprintf_chk.c
+++ b/debug/vfprintf_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -13,30 +13,19 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#include <stdarg.h>
-#include <stdio.h>
-#include "../libio/libioP.h"
+#include <libio/libioP.h>
/* Write formatted output to FP from the format string FORMAT. */
int
___vfprintf_chk (FILE *fp, int flag, const char *format, va_list ap)
{
- int done;
+ /* For flag > 0 (i.e. __USE_FORTIFY_LEVEL > 1) request that %n
+ can only come from read-only format strings. */
+ unsigned int mode = (flag > 0) ? PRINTF_FORTIFY : 0;
- _IO_acquire_lock_clear_flags2 (fp);
- if (flag > 0)
- fp->_flags2 |= _IO_FLAGS2_FORTIFY;
-
- done = vfprintf (fp, format, ap);
-
- if (flag > 0)
- fp->_flags2 &= ~_IO_FLAGS2_FORTIFY;
- _IO_release_lock (fp);
-
- return done;
+ return __vfprintf_internal (fp, format, ap, mode);
}
-ldbl_hidden_def (___vfprintf_chk, __vfprintf_chk)
ldbl_strong_alias (___vfprintf_chk, __vfprintf_chk)
diff --git a/debug/vfwprintf_chk.c b/debug/vfwprintf_chk.c
index 1ffd18cbd2..f8ac939ba9 100644
--- a/debug/vfwprintf_chk.c
+++ b/debug/vfwprintf_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -13,29 +13,18 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#include <stdarg.h>
-#include <wchar.h>
-#include "../libio/libioP.h"
+#include <libio/libioP.h>
/* Write formatted output to FP from the format string FORMAT. */
int
__vfwprintf_chk (FILE *fp, int flag, const wchar_t *format, va_list ap)
{
- int done;
+ /* For flag > 0 (i.e. __USE_FORTIFY_LEVEL > 1) request that %n
+ can only come from read-only format strings. */
+ unsigned int mode = (flag > 0) ? PRINTF_FORTIFY : 0;
- _IO_acquire_lock_clear_flags2 (fp);
- if (flag > 0)
- fp->_flags2 |= _IO_FLAGS2_FORTIFY;
-
- done = _IO_vfwprintf (fp, format, ap);
-
- if (flag > 0)
- fp->_flags2 &= ~_IO_FLAGS2_FORTIFY;
- _IO_release_lock (fp);
-
- return done;
+ return __vfwprintf_internal (fp, format, ap, mode);
}
-libc_hidden_def (__vfwprintf_chk)
diff --git a/debug/vobprintf_chk.c b/debug/vobprintf_chk.c
new file mode 100644
index 0000000000..362ecf5f5a
--- /dev/null
+++ b/debug/vobprintf_chk.c
@@ -0,0 +1,31 @@
+/* Print output of stream to given obstack.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <libio/libioP.h>
+
+
+int
+__obstack_vprintf_chk (struct obstack *obstack, int flag, const char *format,
+ va_list ap)
+{
+ /* For flag > 0 (i.e. __USE_FORTIFY_LEVEL > 1) request that %n
+ can only come from read-only format strings. */
+ unsigned int mode = (flag > 0) ? PRINTF_FORTIFY : 0;
+
+ return __obstack_vprintf_internal (obstack, format, ap, mode);
+}
diff --git a/debug/vprintf_chk.c b/debug/vprintf_chk.c
index b3b2c53df2..5072179bd9 100644
--- a/debug/vprintf_chk.c
+++ b/debug/vprintf_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -13,29 +13,19 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#include <stdarg.h>
-#include <stdio.h>
-#include "../libio/libioP.h"
+#include <libio/libioP.h>
/* Write formatted output to stdout from the format string FORMAT. */
int
___vprintf_chk (int flag, const char *format, va_list ap)
{
- int done;
+ /* For flag > 0 (i.e. __USE_FORTIFY_LEVEL > 1) request that %n
+ can only come from read-only format strings. */
+ unsigned int mode = (flag > 0) ? PRINTF_FORTIFY : 0;
- _IO_acquire_lock_clear_flags2 (stdout);
- if (flag > 0)
- stdout->_flags2 |= _IO_FLAGS2_FORTIFY;
-
- done = vfprintf (stdout, format, ap);
-
- if (flag > 0)
- stdout->_flags2 &= ~_IO_FLAGS2_FORTIFY;
- _IO_release_lock (stdout);
-
- return done;
+ return __vfprintf_internal (stdout, format, ap, mode);
}
ldbl_strong_alias (___vprintf_chk, __vprintf_chk)
diff --git a/debug/vsnprintf_chk.c b/debug/vsnprintf_chk.c
index d20d0fbd93..948e841cdb 100644
--- a/debug/vsnprintf_chk.c
+++ b/debug/vsnprintf_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -13,58 +13,24 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#include <stdarg.h>
-#include <stdio.h>
-#include "../libio/libioP.h"
-#include "../libio/strfile.h"
+#include <libio/libioP.h>
-extern const struct _IO_jump_t _IO_strn_jumps libio_vtable attribute_hidden;
/* Write formatted output into S, according to the format
string FORMAT, writing no more than MAXLEN characters. */
-/* VARARGS5 */
int
-___vsnprintf_chk (char *s, size_t maxlen, int flags, size_t slen,
- const char *format, va_list args)
+___vsnprintf_chk (char *s, size_t maxlen, int flag, size_t slen,
+ const char *format, va_list ap)
{
- /* XXX Maybe for less strict version do not fail immediately.
- Though, maxlen is supposed to be the size of buffer pointed
- to by s, so a conforming program can't pass such maxlen
- to *snprintf. */
if (__glibc_unlikely (slen < maxlen))
__chk_fail ();
- _IO_strnfile sf;
- int ret;
-#ifdef _IO_MTSAFE_IO
- sf.f._sbf._f._lock = NULL;
-#endif
-
- /* We need to handle the special case where MAXLEN is 0. Use the
- overflow buffer right from the start. */
- if (maxlen == 0)
- {
- s = sf.overflow_buf;
- maxlen = sizeof (sf.overflow_buf);
- }
-
- _IO_no_init (&sf.f._sbf._f, _IO_USER_LOCK, -1, NULL, NULL);
- _IO_JUMPS (&sf.f._sbf) = &_IO_strn_jumps;
- s[0] = '\0';
-
- /* For flags > 0 (i.e. __USE_FORTIFY_LEVEL > 1) request that %n
+ /* For flag > 0 (i.e. __USE_FORTIFY_LEVEL > 1) request that %n
can only come from read-only format strings. */
- if (flags > 0)
- sf.f._sbf._f._flags2 |= _IO_FLAGS2_FORTIFY;
-
- _IO_str_init_static_internal (&sf.f, s, maxlen - 1, s);
- ret = _IO_vfprintf (&sf.f._sbf._f, format, args);
+ unsigned int mode = (flag > 0) ? PRINTF_FORTIFY : 0;
- if (sf.f._sbf._f._IO_buf_base != sf.overflow_buf)
- *sf.f._sbf._f._IO_write_ptr = '\0';
- return ret;
+ return __vsnprintf_internal (s, maxlen, format, ap, mode);
}
-ldbl_hidden_def (___vsnprintf_chk, __vsnprintf_chk)
ldbl_strong_alias (___vsnprintf_chk, __vsnprintf_chk)
diff --git a/debug/vsprintf_chk.c b/debug/vsprintf_chk.c
index 9a443bb699..9b99a413b4 100644
--- a/debug/vsprintf_chk.c
+++ b/debug/vsprintf_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -13,77 +13,26 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <stdarg.h>
-#include <stdio.h>
-#include "../libio/libioP.h"
-#include "../libio/strfile.h"
-
-
-static int _IO_str_chk_overflow (FILE *fp, int c) __THROW;
-
-static int
-_IO_str_chk_overflow (FILE *fp, int c)
-{
- /* When we come to here this means the user supplied buffer is
- filled. */
- __chk_fail ();
-}
-
-
-static const struct _IO_jump_t _IO_str_chk_jumps libio_vtable =
-{
- JUMP_INIT_DUMMY,
- JUMP_INIT(finish, _IO_str_finish),
- JUMP_INIT(overflow, _IO_str_chk_overflow),
- JUMP_INIT(underflow, _IO_str_underflow),
- JUMP_INIT(uflow, _IO_default_uflow),
- JUMP_INIT(pbackfail, _IO_str_pbackfail),
- JUMP_INIT(xsputn, _IO_default_xsputn),
- JUMP_INIT(xsgetn, _IO_default_xsgetn),
- JUMP_INIT(seekoff, _IO_str_seekoff),
- JUMP_INIT(seekpos, _IO_default_seekpos),
- JUMP_INIT(setbuf, _IO_default_setbuf),
- JUMP_INIT(sync, _IO_default_sync),
- JUMP_INIT(doallocate, _IO_default_doallocate),
- JUMP_INIT(read, _IO_default_read),
- JUMP_INIT(write, _IO_default_write),
- JUMP_INIT(seek, _IO_default_seek),
- JUMP_INIT(close, _IO_default_close),
- JUMP_INIT(stat, _IO_default_stat),
- JUMP_INIT(showmanyc, _IO_default_showmanyc),
- JUMP_INIT(imbue, _IO_default_imbue)
-};
+ <https://www.gnu.org/licenses/>. */
+#include <libio/libioP.h>
int
-___vsprintf_chk (char *s, int flags, size_t slen, const char *format,
- va_list args)
+___vsprintf_chk (char *s, int flag, size_t slen, const char *format,
+ va_list ap)
{
- _IO_strfile f;
- int ret;
-#ifdef _IO_MTSAFE_IO
- f._sbf._f._lock = NULL;
-#endif
+ /* For flag > 0 (i.e. __USE_FORTIFY_LEVEL > 1) request that %n
+ can only come from read-only format strings. */
+ unsigned int mode = (flag > 0) ? PRINTF_FORTIFY : 0;
+
+ /* Regardless of the value of flag, let __vsprintf_internal know that
+ this is a call from *printf_chk. */
+ mode |= PRINTF_CHK;
if (slen == 0)
__chk_fail ();
- _IO_no_init (&f._sbf._f, _IO_USER_LOCK, -1, NULL, NULL);
- _IO_JUMPS (&f._sbf) = &_IO_str_chk_jumps;
- s[0] = '\0';
- _IO_str_init_static_internal (&f, s, slen - 1, s);
-
- /* For flags > 0 (i.e. __USE_FORTIFY_LEVEL > 1) request that %n
- can only come from read-only format strings. */
- if (flags > 0)
- f._sbf._f._flags2 |= _IO_FLAGS2_FORTIFY;
-
- ret = _IO_vfprintf (&f._sbf._f, format, args);
-
- *f._sbf._f._IO_write_ptr = '\0';
- return ret;
+ return __vsprintf_internal (s, slen, format, ap, mode);
}
ldbl_hidden_def (___vsprintf_chk, __vsprintf_chk)
ldbl_strong_alias (___vsprintf_chk, __vsprintf_chk)
diff --git a/debug/vswprintf_chk.c b/debug/vswprintf_chk.c
index c6a7edcacd..0b66964ff4 100644
--- a/debug/vswprintf_chk.c
+++ b/debug/vswprintf_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -13,62 +13,23 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#include <stdarg.h>
-#include <wchar.h>
-#include "../libio/libioP.h"
-#include "../libio/strfile.h"
+#include <libio/libioP.h>
/* Write formatted output into S, according to the format
string FORMAT, writing no more than MAXLEN characters. */
-/* VARARGS5 */
int
-__vswprintf_chk (wchar_t *s, size_t maxlen, int flags, size_t slen,
- const wchar_t *format, va_list args)
+__vswprintf_chk (wchar_t *s, size_t maxlen, int flag, size_t slen,
+ const wchar_t *format, va_list ap)
{
- /* XXX Maybe for less strict version do not fail immediately.
- Though, maxlen is supposed to be the size of buffer pointed
- to by s, so a conforming program can't pass such maxlen
- to *snprintf. */
if (__glibc_unlikely (slen < maxlen))
__chk_fail ();
- _IO_wstrnfile sf;
- struct _IO_wide_data wd;
- int ret;
-#ifdef _IO_MTSAFE_IO
- sf.f._sbf._f._lock = NULL;
-#endif
-
- /* We need to handle the special case where MAXLEN is 0. Use the
- overflow buffer right from the start. */
- if (__glibc_unlikely (maxlen == 0))
- /* Since we have to write at least the terminating L'\0' a buffer
- length of zero always makes the function fail. */
- return -1;
-
- _IO_no_init (&sf.f._sbf._f, _IO_USER_LOCK, 0, &wd, &_IO_wstrn_jumps);
- _IO_fwide (&sf.f._sbf._f, 1);
- s[0] = L'\0';
-
- /* For flags > 0 (i.e. __USE_FORTIFY_LEVEL > 1) request that %n
+ /* For flag > 0 (i.e. __USE_FORTIFY_LEVEL > 1) request that %n
can only come from read-only format strings. */
- if (flags > 0)
- sf.f._sbf._f._flags2 |= _IO_FLAGS2_FORTIFY;
-
- _IO_wstr_init_static (&sf.f._sbf._f, s, maxlen - 1, s);
- ret = _IO_vfwprintf ((FILE *) &sf.f._sbf, format, args);
-
- if (sf.f._sbf._f._wide_data->_IO_buf_base == sf.overflow_buf)
- /* ISO C99 requires swprintf/vswprintf to return an error if the
- output does not fit int he provided buffer. */
- return -1;
-
- /* Terminate the string. */
- *sf.f._sbf._f._wide_data->_IO_write_ptr = '\0';
+ unsigned int mode = (flag > 0) ? PRINTF_FORTIFY : 0;
- return ret;
+ return __vswprintf_internal (s, maxlen, format, ap, mode);
}
-libc_hidden_def (__vswprintf_chk)
diff --git a/debug/vwprintf_chk.c b/debug/vwprintf_chk.c
index 51b67c159d..c95bf13e6c 100644
--- a/debug/vwprintf_chk.c
+++ b/debug/vwprintf_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -13,29 +13,18 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#include <stdarg.h>
-#include <stdio.h>
-#include <wchar.h>
-#include "../libio/libioP.h"
+#include <libio/libioP.h>
/* Write formatted output to stdout from the format string FORMAT. */
int
__vwprintf_chk (int flag, const wchar_t *format, va_list ap)
{
- int done;
+ /* For flag > 0 (i.e. __USE_FORTIFY_LEVEL > 1) request that %n
+ can only come from read-only format strings. */
+ unsigned int mode = (flag > 0) ? PRINTF_FORTIFY : 0;
- _IO_acquire_lock_clear_flags2 (stdout);
- if (flag > 0)
- stdout->_flags2 |= _IO_FLAGS2_FORTIFY;
-
- done = _IO_vfwprintf (stdout, format, ap);
-
- if (flag > 0)
- stdout->_flags2 &= ~_IO_FLAGS2_FORTIFY;
- _IO_release_lock (stdout);
-
- return done;
+ return __vfwprintf_internal (stdout, format, ap, mode);
}
diff --git a/debug/warning-nop.c b/debug/warning-nop.c
index 6221ded4b6..19f859b228 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/cdefs.h>
diff --git a/debug/wcpcpy_chk.c b/debug/wcpcpy_chk.c
index 41e00dc6e7..874386010d 100644
--- a/debug/wcpcpy_chk.c
+++ b/debug/wcpcpy_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <wchar.h>
diff --git a/debug/wcpncpy_chk.c b/debug/wcpncpy_chk.c
index 971f8c1bb9..500a847f96 100644
--- a/debug/wcpncpy_chk.c
+++ b/debug/wcpncpy_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <wchar.h>
diff --git a/debug/wcrtomb_chk.c b/debug/wcrtomb_chk.c
index bff1a26886..682ae28870 100644
--- a/debug/wcrtomb_chk.c
+++ b/debug/wcrtomb_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <langinfo.h>
#include <locale.h>
diff --git a/debug/wcscat_chk.c b/debug/wcscat_chk.c
index d1f3b865d0..de76e6484f 100644
--- a/debug/wcscat_chk.c
+++ b/debug/wcscat_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <wchar.h>
diff --git a/debug/wcscpy_chk.c b/debug/wcscpy_chk.c
index 11f31e5285..643b60e888 100644
--- a/debug/wcscpy_chk.c
+++ b/debug/wcscpy_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <wchar.h>
diff --git a/debug/wcsncat_chk.c b/debug/wcsncat_chk.c
index 99b4d778d2..aa9ac418f8 100644
--- a/debug/wcsncat_chk.c
+++ b/debug/wcsncat_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <wchar.h>
diff --git a/debug/wcsncpy_chk.c b/debug/wcsncpy_chk.c
index 06b758805f..4e1f3e6d1d 100644
--- a/debug/wcsncpy_chk.c
+++ b/debug/wcsncpy_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <wchar.h>
diff --git a/debug/wcsnrtombs_chk.c b/debug/wcsnrtombs_chk.c
index 11affe3aab..70a5109f0e 100644
--- a/debug/wcsnrtombs_chk.c
+++ b/debug/wcsnrtombs_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <locale.h>
#include <wchar.h>
diff --git a/debug/wcsrtombs_chk.c b/debug/wcsrtombs_chk.c
index 8e72d4bf1e..bd50f481c4 100644
--- a/debug/wcsrtombs_chk.c
+++ b/debug/wcsrtombs_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <locale.h>
#include <wchar.h>
diff --git a/debug/wcstombs_chk.c b/debug/wcstombs_chk.c
index 8bb056b3aa..d7120f1fe3 100644
--- a/debug/wcstombs_chk.c
+++ b/debug/wcstombs_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <locale.h>
#include <string.h>
diff --git a/debug/wctomb_chk.c b/debug/wctomb_chk.c
index d8e193daf1..5d73ce3127 100644
--- a/debug/wctomb_chk.c
+++ b/debug/wctomb_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <locale.h>
#include <stdlib.h>
diff --git a/debug/wmemcpy_chk.c b/debug/wmemcpy_chk.c
index 9cfdcbab16..0d8b44e638 100644
--- a/debug/wmemcpy_chk.c
+++ b/debug/wmemcpy_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <wchar.h>
#include <string.h>
diff --git a/debug/wmemmove_chk.c b/debug/wmemmove_chk.c
index 8875add1d7..5df65f2964 100644
--- a/debug/wmemmove_chk.c
+++ b/debug/wmemmove_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <wchar.h>
#include <string.h>
diff --git a/debug/wmempcpy_chk.c b/debug/wmempcpy_chk.c
index d10b729256..7fd8964d30 100644
--- a/debug/wmempcpy_chk.c
+++ b/debug/wmempcpy_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <wchar.h>
#include <string.h>
diff --git a/debug/wmemset_chk.c b/debug/wmemset_chk.c
index ef8dcb3e66..eaef750734 100644
--- a/debug/wmemset_chk.c
+++ b/debug/wmemset_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <wchar.h>
diff --git a/debug/wprintf_chk.c b/debug/wprintf_chk.c
index 17023b6bb4..ba97e5a5c9 100644
--- a/debug/wprintf_chk.c
+++ b/debug/wprintf_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -13,32 +13,25 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdarg.h>
-#include <stdio.h>
-#include <wchar.h>
-#include "../libio/libioP.h"
+#include <libio/libioP.h>
/* Write formatted output to stdout from the format string FORMAT. */
int
__wprintf_chk (int flag, const wchar_t *format, ...)
{
+ /* For flag > 0 (i.e. __USE_FORTIFY_LEVEL > 1) request that %n
+ can only come from read-only format strings. */
+ unsigned int mode = (flag > 0) ? PRINTF_FORTIFY : 0;
va_list ap;
- int done;
-
- _IO_acquire_lock_clear_flags2 (stdout);
- if (flag > 0)
- stdout->_flags2 |= _IO_FLAGS2_FORTIFY;
+ int ret;
va_start (ap, format);
- done = _IO_vfwprintf (stdout, format, ap);
+ ret = __vfwprintf_internal (stdout, format, ap, mode);
va_end (ap);
- if (flag > 0)
- stdout->_flags2 &= ~_IO_FLAGS2_FORTIFY;
- _IO_release_lock (stdout);
-
- return done;
+ return ret;
}
diff --git a/debug/xtrace.sh b/debug/xtrace.sh
index 877ec319cb..10571ecd4b 100755
--- a/debug/xtrace.sh
+++ b/debug/xtrace.sh
@@ -1,5 +1,5 @@
#! @BASH@
-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
+# Copyright (C) 1999-2019 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# Contributed by Ulrich Drepper <drepper@gnu.org>, 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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
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.
-" "2018"
+" "2019"
printf $"Written by %s.
" "Ulrich Drepper"
exit 0
diff --git a/dirent/Makefile b/dirent/Makefile
index 25cd63a78d..4683b57c02 100644
--- a/dirent/Makefile
+++ b/dirent/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1991-2018 Free Software Foundation, Inc.
+# Copyright (C) 1991-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
# Sub-makefile for dirent portion of the library.
@@ -22,7 +22,7 @@ subdir := dirent
include ../Makeconfig
-headers := dirent.h bits/dirent.h
+headers := dirent.h bits/dirent.h bits/dirent_ext.h
routines := opendir closedir readdir readdir_r rewinddir \
seekdir telldir scandir alphasort versionsort \
getdents getdents64 dirfd readdir64 readdir64_r scandir64 \
diff --git a/dirent/alphasort.c b/dirent/alphasort.c
index 6b2a70770d..6e7383f66f 100644
--- a/dirent/alphasort.c
+++ b/dirent/alphasort.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dirent.h>
diff --git a/dirent/alphasort64.c b/dirent/alphasort64.c
index b822333fca..da1ef28029 100644
--- a/dirent/alphasort64.c
+++ b/dirent/alphasort64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define alphasort __no_alphasort_decl
#include <dirent.h>
diff --git a/dirent/closedir.c b/dirent/closedir.c
index ac0126cdfa..2a07f5d359 100644
--- a/dirent/closedir.c
+++ b/dirent/closedir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/dirent/dirent.h b/dirent/dirent.h
index 03018b235c..3f5a64f7ee 100644
--- a/dirent/dirent.h
+++ b/dirent/dirent.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* POSIX Standard: 5.1.2 Directory Operations <dirent.h>
@@ -86,8 +86,8 @@ typedef __ino64_t ino64_t;
# ifdef _DIRENT_HAVE_D_RECLEN
# define _D_ALLOC_NAMLEN(d) (((char *) (d) + (d)->d_reclen) - &(d)->d_name[0])
# else
-# define _D_ALLOC_NAMLEN(d) (sizeof (d)->d_name > 1 ? sizeof (d)->d_name : \
- _D_EXACT_NAMLEN (d) + 1)
+# define _D_ALLOC_NAMLEN(d) (sizeof (d)->d_name > 1 ? sizeof (d)->d_name \
+ : _D_EXACT_NAMLEN (d) + 1)
# endif
#endif
@@ -401,4 +401,6 @@ extern int versionsort64 (const struct dirent64 **__e1,
__END_DECLS
+#include <bits/dirent_ext.h>
+
#endif /* dirent.h */
diff --git a/dirent/dirfd.c b/dirent/dirfd.c
index 8e59cfa928..294854b839 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dirent.h>
#include <dirstream.h>
diff --git a/dirent/fdopendir.c b/dirent/fdopendir.c
index 9f0c7cd50b..0f66018cf9 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/dirent/getdents.c b/dirent/getdents.c
index 63da1c42f5..c9ef1d6449 100644
--- a/dirent/getdents.c
+++ b/dirent/getdents.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <errno.h>
diff --git a/dirent/getdents64.c b/dirent/getdents64.c
index 19361f363c..54267bd6fa 100644
--- a/dirent/getdents64.c
+++ b/dirent/getdents64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <errno.h>
diff --git a/dirent/list.c b/dirent/list.c
index 803b85abf1..a6122ebec0 100644
--- a/dirent/list.c
+++ b/dirent/list.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/dirent/opendir-tst1.c b/dirent/opendir-tst1.c
index 81ce31774f..44fe4e22ea 100644
--- a/dirent/opendir-tst1.c
+++ b/dirent/opendir-tst1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dirent.h>
#include <errno.h>
diff --git a/dirent/opendir.c b/dirent/opendir.c
index b922ca63d8..abedeaac56 100644
--- a/dirent/opendir.c
+++ b/dirent/opendir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/dirent/readdir.c b/dirent/readdir.c
index c053fd85fe..4346718edb 100644
--- a/dirent/readdir.c
+++ b/dirent/readdir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/dirent/readdir64.c b/dirent/readdir64.c
index daa6b86256..6524e10727 100644
--- a/dirent/readdir64.c
+++ b/dirent/readdir64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/dirent/readdir64_r.c b/dirent/readdir64_r.c
index 50b83bfe01..4df20f1748 100644
--- a/dirent/readdir64_r.c
+++ b/dirent/readdir64_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/dirent/readdir_r.c b/dirent/readdir_r.c
index 39339f9cf4..1d325512aa 100644
--- a/dirent/readdir_r.c
+++ b/dirent/readdir_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/dirent/rewinddir.c b/dirent/rewinddir.c
index 30acd37909..f6c952dc8f 100644
--- a/dirent/rewinddir.c
+++ b/dirent/rewinddir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/dirent/scandir-cancel.c b/dirent/scandir-cancel.c
index 65dee6e156..f56ec163bc 100644
--- a/dirent/scandir-cancel.c
+++ b/dirent/scandir-cancel.c
@@ -1,5 +1,5 @@
/* Cancellation handler used in scandir* implementations.
- Copyright (C) 1992-2018 Free Software Foundation, Inc.
+ Copyright (C) 1992-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dirent.h>
diff --git a/dirent/scandir-tail-common.c b/dirent/scandir-tail-common.c
index f89cf77b56..7fa330503a 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 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <errno.h>
diff --git a/dirent/scandir-tail.c b/dirent/scandir-tail.c
index 7395dc4a26..6c47ce939f 100644
--- a/dirent/scandir-tail.c
+++ b/dirent/scandir-tail.c
@@ -1,5 +1,5 @@
/* Logic guts of scandir*.
- Copyright (C) 1992-2018 Free Software Foundation, Inc.
+ Copyright (C) 1992-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dirent.h>
diff --git a/dirent/scandir.c b/dirent/scandir.c
index 6d8352dc9c..390d54f885 100644
--- a/dirent/scandir.c
+++ b/dirent/scandir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dirent.h>
diff --git a/dirent/scandir64-tail.c b/dirent/scandir64-tail.c
index 4e873d47d6..0ba2c34daf 100644
--- a/dirent/scandir64-tail.c
+++ b/dirent/scandir64-tail.c
@@ -1,5 +1,5 @@
/* Logic guts of scandir*64.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dirent.h>
diff --git a/dirent/scandir64.c b/dirent/scandir64.c
index 6bdd4628ad..bf0fbf8989 100644
--- a/dirent/scandir64.c
+++ b/dirent/scandir64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define scandir __no_scandir_decl
#include <dirent.h>
diff --git a/dirent/scandirat.c b/dirent/scandirat.c
index 8dad1e8a21..97ffe6b8d4 100644
--- a/dirent/scandirat.c
+++ b/dirent/scandirat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dirent.h>
diff --git a/dirent/scandirat64.c b/dirent/scandirat64.c
index 7e5e209cdf..d37ce3decd 100644
--- a/dirent/scandirat64.c
+++ b/dirent/scandirat64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define scandirat __no_scandirat_decl
#include <dirent.h>
diff --git a/dirent/seekdir.c b/dirent/seekdir.c
index 653a34e295..fafc8ce61c 100644
--- a/dirent/seekdir.c
+++ b/dirent/seekdir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <errno.h>
diff --git a/dirent/telldir.c b/dirent/telldir.c
index 5f82b7fbe4..f47d27d3fe 100644
--- a/dirent/telldir.c
+++ b/dirent/telldir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/types.h>
diff --git a/dirent/tst-fdopendir.c b/dirent/tst-fdopendir.c
index 89bdca9086..6321af1daa 100644
--- a/dirent/tst-fdopendir.c
+++ b/dirent/tst-fdopendir.c
@@ -123,6 +123,5 @@ do_test (void)
return 0;
}
-#define TIMEOUT 6
#define TEST_FUNCTION do_test ()
#include "../test-skeleton.c"
diff --git a/dirent/tst-scandir.c b/dirent/tst-scandir.c
index 5473242de4..b15f97ece9 100644
--- a/dirent/tst-scandir.c
+++ b/dirent/tst-scandir.c
@@ -1,5 +1,5 @@
/* Basic test for scandir function.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdbool.h>
#include <dirent.h>
diff --git a/dirent/versionsort.c b/dirent/versionsort.c
index ca38c2dc03..dd601b75c5 100644
--- a/dirent/versionsort.c
+++ b/dirent/versionsort.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dirent.h>
diff --git a/dirent/versionsort64.c b/dirent/versionsort64.c
index 8f47e609d0..2c49325127 100644
--- a/dirent/versionsort64.c
+++ b/dirent/versionsort64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define versionsort __no_versionsort_decl
#include <dirent.h>
diff --git a/dlfcn/Makefile b/dlfcn/Makefile
index 34f9923334..749bb79b91 100644
--- a/dlfcn/Makefile
+++ b/dlfcn/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1995-2018 Free Software Foundation, Inc.
+# Copyright (C) 1995-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
subdir := dlfcn
diff --git a/dlfcn/bug-dl-leaf-lib-cb.c b/dlfcn/bug-dl-leaf-lib-cb.c
index 5e3bb073b4..ec20761d55 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Mike Frysinger <vapier@gentoo.org>
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
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 016a393df2..ac927eba91 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Mike Frysinger <vapier@gentoo.org>
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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 f8745b810e..5eec7564ea 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Mike Frysinger <vapier@gentoo.org>
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_FUNCTION lib_main ()
extern int lib_main (void);
diff --git a/dlfcn/dladdr.c b/dlfcn/dladdr.c
index 97f811f801..b5c119d7a6 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <ldsodefs.h>
diff --git a/dlfcn/dladdr1.c b/dlfcn/dladdr1.c
index 9b39d487ff..63e78ff525 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <ldsodefs.h>
diff --git a/dlfcn/dlclose.c b/dlfcn/dlclose.c
index 6afe6c8af2..600623d0b2 100644
--- a/dlfcn/dlclose.c
+++ b/dlfcn/dlclose.c
@@ -1,5 +1,5 @@
/* Close a handle opened by `dlopen'.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <ldsodefs.h>
diff --git a/dlfcn/dlerror.c b/dlfcn/dlerror.c
index 33574faab6..723a62228e 100644
--- a/dlfcn/dlerror.c
+++ b/dlfcn/dlerror.c
@@ -1,5 +1,5 @@
/* Return error detail for failing <dlfcn.h> functions.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <libintl.h>
@@ -72,9 +72,16 @@ __dlerror (void)
__libc_once (once, init);
/* Get error string. */
- result = (struct dl_action_result *) __libc_getspecific (key);
- if (result == NULL)
- result = &last_result;
+ if (static_buf != NULL)
+ result = static_buf;
+ else
+ {
+ /* init () has been run and we don't use the static buffer.
+ So we have a valid key. */
+ result = (struct dl_action_result *) __libc_getspecific (key);
+ if (result == NULL)
+ result = &last_result;
+ }
/* Test whether we already returned the string. */
if (result->returned != 0)
@@ -198,7 +205,10 @@ check_free (struct dl_action_result *rec)
Dl_info info;
if (_dl_addr (check_free, &info, &map, NULL) != 0 && map->l_ns == 0)
#endif
- free ((char *) rec->errstring);
+ {
+ free ((char *) rec->errstring);
+ rec->errstring = NULL;
+ }
}
}
@@ -227,13 +237,19 @@ free_key_mem (void *mem)
void
__dlerror_main_freeres (void)
{
- void *mem;
/* Free the global memory if used. */
check_free (&last_result);
- /* Free the TSD memory if used. */
- mem = __libc_getspecific (key);
- if (mem != NULL)
- free_key_mem (mem);
+
+ if (__libc_once_get (once) && static_buf == NULL)
+ {
+ /* init () has been run and we don't use the static buffer.
+ So we have a valid key. */
+ void *mem;
+ /* Free the TSD memory if used. */
+ mem = __libc_getspecific (key);
+ if (mem != NULL)
+ free_key_mem (mem);
+ }
}
struct dlfcn_hook *_dlfcn_hook __attribute__((nocommon));
diff --git a/dlfcn/dlfcn.c b/dlfcn/dlfcn.c
index 7f83cd2f06..86b48a345b 100644
--- a/dlfcn/dlfcn.c
+++ b/dlfcn/dlfcn.c
@@ -1,5 +1,5 @@
/* Load a shared object at run time.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
diff --git a/dlfcn/dlfcn.h b/dlfcn/dlfcn.h
index 0921fd724c..ebd3c457e3 100644
--- a/dlfcn/dlfcn.h
+++ b/dlfcn/dlfcn.h
@@ -1,5 +1,5 @@
/* User functions for run-time dynamic loading.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DLFCN_H
#define _DLFCN_H 1
@@ -180,7 +180,19 @@ typedef struct
{
size_t dls_size; /* Size in bytes of the whole buffer. */
unsigned int dls_cnt; /* Number of elements in `dls_serpath'. */
+# if __GNUC_PREREQ (3, 0)
+ /* The zero-length array avoids an unwanted array subscript check by
+ the compiler, while the surrounding anonymous union preserves the
+ historic size of the type. At the time of writing, GNU C does
+ not support structs with flexible array members in unions. */
+ __extension__ union
+ {
+ Dl_serpath dls_serpath[0]; /* Actually longer, dls_cnt elements. */
+ Dl_serpath __dls_serpath_pad[1];
+ };
+# else
Dl_serpath dls_serpath[1]; /* Actually longer, dls_cnt elements. */
+# endif
} Dl_serinfo;
#endif /* __USE_GNU */
diff --git a/dlfcn/dlfreeres.c b/dlfcn/dlfreeres.c
index 4004db0edb..c9171f554e 100644
--- a/dlfcn/dlfreeres.c
+++ b/dlfcn/dlfreeres.c
@@ -1,5 +1,5 @@
/* Clean up allocated libdl memory on demand.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <set-hooks.h>
#include <libc-symbols.h>
diff --git a/dlfcn/dlinfo.c b/dlfcn/dlinfo.c
index 964572cc67..97515a16d9 100644
--- a/dlfcn/dlinfo.c
+++ b/dlfcn/dlinfo.c
@@ -1,5 +1,5 @@
/* dlinfo -- Get information from the dynamic linker.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <link.h>
@@ -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 87ba290464..978eb3a068 100644
--- a/dlfcn/dlmopen.c
+++ b/dlfcn/dlmopen.c
@@ -1,5 +1,5 @@
/* Load a shared object at run time.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <errno.h>
diff --git a/dlfcn/dlopen.c b/dlfcn/dlopen.c
index 95bc62b6b5..17a5144d16 100644
--- a/dlfcn/dlopen.c
+++ b/dlfcn/dlopen.c
@@ -1,5 +1,5 @@
/* Load a shared object at run time.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <libintl.h>
diff --git a/dlfcn/dlopenold.c b/dlfcn/dlopenold.c
index d3b6a6cff5..288278c6b4 100644
--- a/dlfcn/dlopenold.c
+++ b/dlfcn/dlopenold.c
@@ -1,5 +1,5 @@
/* Load a shared object at run time.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stddef.h>
diff --git a/dlfcn/dlsym.c b/dlfcn/dlsym.c
index 285abaaa4e..1a2ffb2d5d 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stddef.h>
diff --git a/dlfcn/dlvsym.c b/dlfcn/dlvsym.c
index 7fac2e4461..ed49bf7fb7 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stddef.h>
diff --git a/dlfcn/errmsg1.c b/dlfcn/errmsg1.c
index 961296a2b2..ddb0bac14b 100644
--- a/dlfcn/errmsg1.c
+++ b/dlfcn/errmsg1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stdio.h>
diff --git a/dlfcn/errmsg1mod.c b/dlfcn/errmsg1mod.c
index a9ce0735f3..bf664d5fdd 100644
--- a/dlfcn/errmsg1mod.c
+++ b/dlfcn/errmsg1mod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
extern int bar (void);
extern int foo (void);
diff --git a/dlfcn/glreflib1.c b/dlfcn/glreflib1.c
index 1a444e413a..0550350678 100644
--- a/dlfcn/glreflib1.c
+++ b/dlfcn/glreflib1.c
@@ -1,5 +1,5 @@
/* Test for dependency tracking added by relocations.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
extern int ref1 (void);
int
diff --git a/dlfcn/glreflib2.c b/dlfcn/glreflib2.c
index aade6dcd80..c3ef2dbe76 100644
--- a/dlfcn/glreflib2.c
+++ b/dlfcn/glreflib2.c
@@ -1,5 +1,5 @@
/* Test for dependency tracking added by relocations.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
extern int ref1 (void);
diff --git a/dlfcn/glrefmain.c b/dlfcn/glrefmain.c
index f0a3995f79..7c56d8e8b0 100644
--- a/dlfcn/glrefmain.c
+++ b/dlfcn/glrefmain.c
@@ -1,5 +1,5 @@
/* Test for dependency tracking added by relocations.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <error.h>
diff --git a/dlfcn/modatexit.c b/dlfcn/modatexit.c
index b424ac7546..09916f301a 100644
--- a/dlfcn/modatexit.c
+++ b/dlfcn/modatexit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
diff --git a/dlfcn/modcxaatexit.c b/dlfcn/modcxaatexit.c
index d72ce9860b..ec6fa71dc0 100644
--- a/dlfcn/modcxaatexit.c
+++ b/dlfcn/modcxaatexit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
diff --git a/dlfcn/modstatic3.c b/dlfcn/modstatic3.c
index b9a1224872..34282c1b4a 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
unsigned int foo;
diff --git a/dlfcn/modstatic5.c b/dlfcn/modstatic5.c
index 13de8e7666..3486c4b4bf 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
diff --git a/dlfcn/tst-dladdr.c b/dlfcn/tst-dladdr.c
index 186c9cf54e..6eac71045b 100644
--- a/dlfcn/tst-dladdr.c
+++ b/dlfcn/tst-dladdr.c
@@ -1,5 +1,5 @@
/* Test for dladdr.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Volkmar Sieh <vs@caldera.de> and Andreas Jaeger <aj@suse.de>.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <errno.h>
diff --git a/dlfcn/tst-dlinfo.c b/dlfcn/tst-dlinfo.c
index 34aab1256b..db8689a7d7 100644
--- a/dlfcn/tst-dlinfo.c
+++ b/dlfcn/tst-dlinfo.c
@@ -1,5 +1,5 @@
/* Test for dlinfo.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stdio.h>
diff --git a/dlfcn/tst-rec-dlopen.c b/dlfcn/tst-rec-dlopen.c
index 20dc23850e..ed9ff43dcb 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
diff --git a/dlfcn/tstatexit.c b/dlfcn/tstatexit.c
index e1d93df54d..dce432647e 100644
--- a/dlfcn/tstatexit.c
+++ b/dlfcn/tstatexit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stdio.h>
diff --git a/dlfcn/tstcxaatexit.c b/dlfcn/tstcxaatexit.c
index 64ce29ef91..2e358a3008 100644
--- a/dlfcn/tstcxaatexit.c
+++ b/dlfcn/tstcxaatexit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stdio.h>
diff --git a/dlfcn/tststatic3.c b/dlfcn/tststatic3.c
index cf90be8a49..507ccf7b02 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stddef.h>
diff --git a/dlfcn/tststatic4.c b/dlfcn/tststatic4.c
index e91b91b817..7e5a231f30 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stddef.h>
diff --git a/dlfcn/tststatic5.c b/dlfcn/tststatic5.c
index 10cb0bd535..1e90d7f6c2 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stddef.h>
diff --git a/elf/Makefile b/elf/Makefile
index cd0771307f..72a5aa88b1 100644
--- a/elf/Makefile
+++ b/elf/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1995-2018 Free Software Foundation, Inc.
+# Copyright (C) 1995-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
# 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.
@@ -125,6 +131,7 @@ install-others += $(inst_auditdir)/sotruss-lib.so
install-bin-script += sotruss
generated += sotruss
libof-sotruss-lib = extramodules
+LDFLAGS-sotruss-lib.so += $(z-now-$(bind-now))
$(objpfx)sotruss-lib.so: $(objpfx)sotruss-lib.os
$(build-module-asneeded)
$(objpfx)sotruss-lib.so: $(common-objpfx)libc.so $(objpfx)ld.so \
@@ -155,6 +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 := tst-tls9 tst-leaks1 \
tst-array1 tst-array2 tst-array3 tst-array4 tst-array5 \
tst-auxv
@@ -181,21 +191,23 @@ 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-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-dlopen-tlsmodid \
+ tst-dlopen-self tst-auditmany tst-initfinilazyfail tst-dlopenfail
# 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
-ifeq ($(build-hardcoded-path-in-tests),yes)
-tests += tst-dlopen-aout
-tst-dlopen-aout-no-pie = yes
-endif
+ tst-ptrguard1 tst-stackguard1 tst-libc_dlvsym \
+ tst-create_format1
+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)
@@ -259,7 +271,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 \
@@ -273,7 +302,18 @@ modules-names = testobj1 testobj2 testobj3 testobj4 testobj5 testobj6 \
tst-latepthreadmod $(tst-tls-many-dynamic-modules) \
tst-nodelete-dlclose-dso tst-nodelete-dlclose-plugin \
tst-main1mod tst-libc_dlvsym-dso tst-absolute-sym-lib \
- tst-absolute-zero-lib tst-big-note-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-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
+# 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%,\
+ $(modules-names))
ifeq (yes,$(have-mtls-dialect-gnu2))
tests += tst-gnu2-tls1
@@ -298,8 +338,9 @@ test-xfail-tst-protected1b = yes
endif
ifeq (yesyes,$(have-fpie)$(build-shared))
modules-names += tst-piemod1
-tests += tst-pie1 tst-pie2
-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
@@ -309,33 +350,40 @@ endif
modules-execstack-yes = tst-execstack-mod
extra-test-objs += $(addsuffix .os,$(strip $(modules-names)))
-# filtmod1.so has a special rule
-modules-names-nobuild := filtmod1
+# filtmod1.so, tst-big-note-lib.so have special rules.
+modules-names-nobuild := filtmod1 tst-big-note-lib
tests += $(tests-static)
-ifneq (no,$(multi-arch))
+ifeq (yes,$(have-ifunc))
tests-ifuncstatic := ifuncmain1static ifuncmain1picstatic \
ifuncmain2static ifuncmain2picstatic \
ifuncmain4static ifuncmain4picstatic \
ifuncmain5static ifuncmain5picstatic \
- ifuncmain7static ifuncmain7picstatic
+ ifuncmain7static ifuncmain7picstatic \
+ ifuncmain9static ifuncmain9picstatic
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 \
ifuncmain1staticpic \
ifuncmain2 ifuncmain2pic ifuncmain3 ifuncmain4 \
ifuncmain5 ifuncmain5pic ifuncmain5staticpic \
- ifuncmain7 ifuncmain7pic
+ ifuncmain7 ifuncmain7pic \
+ ifuncmain9 ifuncmain9pic
ifunc-test-modules = ifuncdep1 ifuncdep1pic ifuncdep2 ifuncdep2pic \
ifuncdep5 ifuncdep5pic
extra-test-objs += $(ifunc-test-modules:=.o)
test-internal-extras += $(ifunc-test-modules)
ifeq (yes,$(have-fpie))
ifunc-pie-tests = ifuncmain1pie ifuncmain1vispie ifuncmain1staticpie \
- ifuncmain5pie ifuncmain6pie ifuncmain7pie
+ ifuncmain5pie ifuncmain6pie ifuncmain7pie ifuncmain9pie
+ifeq (yes,$(have-textrel_ifunc))
+ifunc-pie-tests += tst-ifunc-textrel
+endif
tests-internal += $(ifunc-pie-tests)
tests-pie += $(ifunc-pie-tests)
endif
@@ -345,7 +393,8 @@ endif
ifeq (yes,$(build-shared))
ifeq ($(run-built-tests),yes)
-tests-special += $(objpfx)tst-pathopt.out $(objpfx)tst-rtld-load-self.out
+tests-special += $(objpfx)tst-pathopt.out $(objpfx)tst-rtld-load-self.out \
+ $(objpfx)tst-rtld-preload.out
endif
tests-special += $(objpfx)check-textrel.out $(objpfx)check-execstack.out \
$(objpfx)check-localplt.out $(objpfx)check-initfini.out
@@ -658,20 +707,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
@@ -806,7 +855,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
@@ -855,7 +904,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
@@ -874,6 +923,15 @@ $(objpfx)tst-rtld-load-self.out: tst-rtld-load-self.sh $(objpfx)ld.so
$(SHELL) $^ '$(test-wrapper)' '$(test-wrapper-env)' > $@; \
$(evaluate-test)
+tst-rtld-preload-OBJS = $(subst $(empty) ,:,$(strip $(preloadtest-preloads:=.so)))
+$(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)' \
+ '$(rpath-link)' '$(tst-rtld-preload-OBJS)' > $@; \
+ $(evaluate-test)
+
$(objpfx)initfirst: $(libdl)
$(objpfx)initfirst.out: $(objpfx)firstobj.so
@@ -1004,7 +1062,7 @@ $(objpfx)tst-execstack: $(libdl)
$(objpfx)tst-execstack.out: $(objpfx)tst-execstack-mod.so
CPPFLAGS-tst-execstack.c += -DUSE_PTHREADS=0
LDFLAGS-tst-execstack = -Wl,-z,noexecstack
-LDFLAGS-tst-execstack-mod = -Wl,-z,execstack
+LDFLAGS-tst-execstack-mod.so = -Wl,-z,execstack
$(objpfx)tst-execstack-needed: $(objpfx)tst-execstack-mod.so
LDFLAGS-tst-execstack-needed = -Wl,-z,noexecstack
@@ -1014,8 +1072,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 $^ > $@; \
@@ -1056,6 +1114,8 @@ CFLAGS-tst-pie2.c += $(pie-ccflag)
$(objpfx)tst-piemod1.so: $(libsupport)
$(objpfx)tst-pie1: $(objpfx)tst-piemod1.so
+$(objpfx)tst-dlopen-pie: $(libdl)
+$(objpfx)tst-dlopen-pie.out: $(objpfx)tst-pie1
ifeq (yes,$(build-shared))
# NB: Please keep cet-built-dso in sysdeps/x86/Makefile in sync with
@@ -1211,8 +1271,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"
@@ -1239,7 +1299,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)
@@ -1256,6 +1331,8 @@ CFLAGS-ifuncmain5staticpic.c += $(pic-ccflag)
CFLAGS-ifuncdep5pic.c += $(pic-ccflag)
CFLAGS-ifuncmain7pic.c += $(pic-ccflag)
CFLAGS-ifuncmain7picstatic.c += $(pic-ccflag)
+CFLAGS-ifuncmain9pic.c += $(pic-ccflag)
+CFLAGS-ifuncmain9picstatic.c += $(pic-ccflag)
LDFLAGS-ifuncmain3 = -Wl,-export-dynamic
@@ -1265,6 +1342,8 @@ CFLAGS-ifuncmain1staticpie.c += $(pie-ccflag)
CFLAGS-ifuncmain5pie.c += $(pie-ccflag)
CFLAGS-ifuncmain6pie.c += $(pie-ccflag)
CFLAGS-ifuncmain7pie.c += $(pie-ccflag)
+CFLAGS-ifuncmain9pie.c += $(pie-ccflag)
+CFLAGS-tst-ifunc-textrel.c += $(pic-ccflag)
$(objpfx)ifuncmain1pie: $(objpfx)ifuncmod1.so
$(objpfx)ifuncmain1staticpie: $(objpfx)ifuncdep1pic.o
@@ -1293,6 +1372,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
+( $(objpfx)ld.so --verify --library-path $(objpfx) $^ \
+ && LD_TRACE_LOADED_OBJECTS=1 $(objpfx)ld.so --library-path $(objpfx) $^ \
+ && LD_TRACE_LOADED_OBJECTS=1 LD_DEBUG=unused \
+ $(objpfx)ld.so --library-path $(objpfx) $^ \
+) > $@; $(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
@@ -1326,10 +1420,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\"
@@ -1372,6 +1466,40 @@ tst-audit12-ENV = LD_AUDIT=$(objpfx)tst-auditmod12.so
$(objpfx)tst-audit12mod1.so: $(objpfx)tst-audit12mod2.so
LDFLAGS-tst-audit12mod2.so = -Wl,--version-script=tst-audit12mod2.map
+$(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 \
+ -Wl,-soname,tst-sonamemove-runmod1.so
+LDFLAGS-tst-sonamemove-runmod1.so = -Wl,--no-as-needed \
+ -Wl,--version-script=tst-sonamemove-runmod1.map \
+ -Wl,-soname,tst-sonamemove-runmod1.so
+LDFLAGS-tst-sonamemove-runmod2.so = \
+ -Wl,--version-script=tst-sonamemove-runmod2.map \
+ -Wl,-soname,tst-sonamemove-runmod2.so
+$(objpfx)tst-sonamemove-runmod1.so: $(objpfx)tst-sonamemove-runmod2.so
+# Link against the link module, but depend on the run-time modules
+# for execution.
+$(objpfx)tst-sonamemove-link: $(objpfx)tst-sonamemove-linkmod1.so
+$(objpfx)tst-sonamemove-link.out: \
+ $(objpfx)tst-sonamemove-runmod1.so \
+ $(objpfx)tst-sonamemove-runmod2.so
+$(objpfx)tst-sonamemove-dlopen: $(libdl)
+$(objpfx)tst-sonamemove-dlopen.out: \
+ $(objpfx)tst-sonamemove-runmod1.so \
+ $(objpfx)tst-sonamemove-runmod2.so
+
# Override -z defs, so that we can reference an undefined symbol.
# Force lazy binding for the same reason.
LDFLAGS-tst-latepthreadmod.so = \
@@ -1484,3 +1612,80 @@ tst-libc_dlvsym-static-ENV = \
$(objpfx)tst-libc_dlvsym-static.out: $(objpfx)tst-libc_dlvsym-dso.so
$(objpfx)tst-big-note: $(objpfx)tst-big-note-lib.so
+# Avoid creating an ABI tag note, which may come before the
+# artificial, large note in tst-big-note-lib.o and invalidate the
+# test.
+$(objpfx)tst-big-note-lib.so: $(objpfx)tst-big-note-lib.o
+ $(LINK.o) -shared -o $@ $(LDFLAGS.so) $<
+
+$(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-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
diff --git a/elf/cache.c b/elf/cache.c
index e63979da7d..50e5c228fb 100644
--- a/elf/cache.c
+++ b/elf/cache.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <error.h>
@@ -199,6 +199,11 @@ print_cache (const char *cache_name)
}
else
{
+ /* Check for corruption, avoiding overflow. */
+ if ((cache_size - sizeof (struct cache_file)) / sizeof (struct file_entry)
+ < cache->nlibs)
+ error (EXIT_FAILURE, 0, _("File is not a cache file.\n"));
+
size_t offset = ALIGN_CACHE (sizeof (struct cache_file)
+ (cache->nlibs
* sizeof (struct file_entry)));
@@ -206,8 +211,8 @@ print_cache (const char *cache_name)
cache_data = (const char *) &cache->libs[cache->nlibs];
/* Check for a new cache embedded in the old format. */
- if (cache_size >
- (offset + sizeof (struct cache_file_new)))
+ if (cache_size
+ > (offset + sizeof (struct cache_file_new)))
{
cache_new = (struct cache_file_new *) ((void *)cache + offset);
@@ -707,9 +712,9 @@ load_aux_cache (const char *aux_cache_name)
if (aux_cache == MAP_FAILED
|| aux_cache_size < sizeof (struct aux_cache_file)
|| memcmp (aux_cache->magic, AUX_CACHEMAGIC, sizeof AUX_CACHEMAGIC - 1)
- || aux_cache_size != (sizeof(struct aux_cache_file) +
- aux_cache->nlibs * sizeof(struct aux_cache_file_entry) +
- aux_cache->len_strings))
+ || aux_cache_size != (sizeof (struct aux_cache_file)
+ + aux_cache->nlibs * sizeof (struct aux_cache_file_entry)
+ + aux_cache->len_strings))
{
close (fd);
init_aux_cache ();
diff --git a/elf/chroot_canon.c b/elf/chroot_canon.c
index ecc41ae48c..bb8ee022f1 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include <string.h>
diff --git a/elf/dl-addr-obj.c b/elf/dl-addr-obj.c
index db84415a69..3ae2e4efd2 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <link.h>
#include <elf.h>
diff --git a/elf/dl-addr.c b/elf/dl-addr.c
index e6c7d02094..e48795871b 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stddef.h>
@@ -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 6ee5153ff9..b0685ac6a4 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <unistd.h>
@@ -204,7 +204,10 @@ _dl_load_cache_lookup (const char *name)
- only the new format
The following checks if the cache contains any of these formats. */
if (file != MAP_FAILED && cachesize > sizeof *cache
- && memcmp (file, CACHEMAGIC, sizeof CACHEMAGIC - 1) == 0)
+ && memcmp (file, CACHEMAGIC, sizeof CACHEMAGIC - 1) == 0
+ /* Check for corruption, avoiding overflow. */
+ && ((cachesize - sizeof *cache) / sizeof (struct file_entry)
+ >= ((struct cache_file *) file)->nlibs))
{
size_t offset;
/* Looks ok. */
diff --git a/elf/dl-close.c b/elf/dl-close.c
index ecd6729704..df1df6fb29 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <dlfcn.h>
@@ -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;
}
@@ -774,7 +784,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 +829,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 70f14b04cd..bdb162151e 100644
--- a/elf/dl-conflict.c
+++ b/elf/dl-conflict.c
@@ -1,5 +1,5 @@
/* Resolve conflicts against already prelinked libraries.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <libintl.h>
diff --git a/elf/dl-debug.c b/elf/dl-debug.c
index 14d1125fe6..4b995f2cb8 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ldsodefs.h>
diff --git a/elf/dl-deps.c b/elf/dl-deps.c
index 9d9b1ba7f2..c29b9888b0 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <atomic.h>
#include <assert.h>
diff --git a/elf/dl-dst.h b/elf/dl-dst.h
index 859032be0d..adb3785283 100644
--- a/elf/dl-dst.h
+++ b/elf/dl-dst.h
@@ -1,5 +1,5 @@
/* Handling of dynamic sring tokens.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "trusted-dirs.h"
diff --git a/elf/dl-environ.c b/elf/dl-environ.c
index b20045b870..bbf6f21861 100644
--- a/elf/dl-environ.c
+++ b/elf/dl-environ.c
@@ -1,5 +1,5 @@
/* Environment handling for dynamic loader.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <stdlib.h>
diff --git a/elf/dl-error-minimal.c b/elf/dl-error-minimal.c
index 583f2f574a..b9c5796d7b 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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 d5f418ab18..7caf28f0fd 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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 272bee762b..56e6b61cdd 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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 1c63e4a3a6..a2e269e9a7 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ldsodefs.h>
#include <limits.h>
@@ -23,6 +23,7 @@
#include <stdint.h>
#include <string.h>
#include <unistd.h>
+#include <_itoa.h>
/* This message we return as a last resort. We define the string in a
variable since we have to avoid freeing it and so have to enable
@@ -111,6 +112,21 @@ _dl_exception_create_format (struct dl_exception *exception, const char *objname
case 's':
length += strlen (va_arg (ap, const char *));
break;
+ /* Recognize the l modifier. It is only important on some
+ platforms where long and int have a different size. We
+ can use the same code for size_t. */
+ case 'l':
+ case 'z':
+ if (p[1] == 'x')
+ {
+ length += LONG_WIDTH / 4;
+ ++p;
+ break;
+ }
+ /* Fall through. */
+ case 'x':
+ length += INT_WIDTH / 4;
+ break;
default:
/* Assumed to be '%'. */
++length;
@@ -167,6 +183,32 @@ _dl_exception_create_format (struct dl_exception *exception, const char *objname
*wptr = '%';
++wptr;
break;
+ case 'x':
+ {
+ unsigned long int num = va_arg (ap, unsigned int);
+ char *start = wptr;
+ wptr += INT_WIDTH / 4;
+ char *cp = _itoa (num, wptr, 16, 0);
+ /* Pad to the full width with 0. */
+ while (cp != start)
+ *--cp = '0';
+ }
+ break;
+ case 'l':
+ case 'z':
+ if (p[1] == 'x')
+ {
+ unsigned long int num = va_arg (ap, unsigned long int);
+ char *start = wptr;
+ wptr += LONG_WIDTH / 4;
+ char *cp = _itoa (num, wptr, 16, 0);
+ /* Pad to the full width with 0. */
+ while (cp != start)
+ *--cp = '0';
+ ++p;
+ break;
+ }
+ /* FALLTHROUGH */
default:
_dl_fatal_printf ("Fatal error:"
" invalid format in exception string\n");
diff --git a/elf/dl-execstack.c b/elf/dl-execstack.c
index baea092904..6e9d67b3d5 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ldsodefs.h>
#include <errno.h>
diff --git a/elf/dl-fini.c b/elf/dl-fini.c
index 3cfc262400..70e7346304 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <string.h>
@@ -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 027c5029eb..146b54feb8 100644
--- a/elf/dl-fptr.c
+++ b/elf/dl-fptr.c
@@ -1,5 +1,5 @@
/* Manage function descriptors. Generic version.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libintl.h>
#include <unistd.h>
diff --git a/elf/dl-hwcaps.c b/elf/dl-hwcaps.c
index 23482a88a1..167b54e053 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <elf.h>
@@ -140,7 +140,7 @@ _dl_important_hwcaps (const char *platform, size_t platform_len, size_t *sz,
string and bit like you can ignore an OS-supplied HWCAP bit. */
hwcap_mask |= (uint64_t) mask << _DL_FIRST_EXTRA;
#if HAVE_TUNABLES
- TUNABLE_SET (glibc, tune, hwcap_mask, uint64_t, hwcap_mask);
+ TUNABLE_SET (glibc, cpu, hwcap_mask, uint64_t, hwcap_mask);
#else
GLRO(dl_hwcap_mask) = hwcap_mask;
#endif
diff --git a/elf/dl-hwcaps.h b/elf/dl-hwcaps.h
index 17f0da4c73..e6f07cc6ad 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,12 +14,12 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <elf/dl-tunables.h>
#if HAVE_TUNABLES
-# define GET_HWCAP_MASK() TUNABLE_GET (glibc, tune, hwcap_mask, uint64_t, NULL)
+# define GET_HWCAP_MASK() TUNABLE_GET (glibc, cpu, hwcap_mask, uint64_t, NULL)
#else
# ifdef SHARED
# define GET_HWCAP_MASK() GLRO(dl_hwcap_mask)
diff --git a/elf/dl-init.c b/elf/dl-init.c
index 3e72fa3013..3721bca81e 100644
--- a/elf/dl-init.c
+++ b/elf/dl-init.c
@@ -1,5 +1,5 @@
/* Run initializers for newly loaded objects.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <ldsodefs.h>
diff --git a/elf/dl-iteratephdr.c b/elf/dl-iteratephdr.c
index 48d3649053..3e4cad08cf 100644
--- a/elf/dl-iteratephdr.c
+++ b/elf/dl-iteratephdr.c
@@ -1,5 +1,5 @@
/* Get loaded objects program headers.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <ldsodefs.h>
diff --git a/elf/dl-libc.c b/elf/dl-libc.c
index fc01f5514d..e34ae3249b 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Zack Weinberg <zack@rabi.columbia.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stdlib.h>
diff --git a/elf/dl-load.c b/elf/dl-load.c
index c51e4b3718..6cdd11e6b0 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <elf.h>
#include <errno.h>
@@ -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
@@ -947,21 +957,6 @@ _dl_map_object_from_fd (const char *name, const char *origname, int fd,
/* This is the ELF header. We read it in `open_verify'. */
header = (void *) fbp->buf;
-#ifndef MAP_ANON
-# define MAP_ANON 0
- if (_dl_zerofd == -1)
- {
- _dl_zerofd = _dl_sysdep_open_zero_fill ();
- if (_dl_zerofd == -1)
- {
- free (realname);
- __close_nocancel (fd);
- _dl_signal_error (errno, NULL, NULL,
- N_("cannot open zero fill device"));
- }
- }
-#endif
-
/* Signal that we are going to add new objects. */
if (r->r_state == RT_CONSISTENT)
{
@@ -978,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;
}
@@ -1020,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;
@@ -1123,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:
@@ -1173,6 +1163,10 @@ _dl_map_object_from_fd (const char *name, const char *origname, int fd,
goto call_lose;
}
+ /* dlopen of an executable is not valid because it is not possible
+ to perform proper relocations, handle static TLS, or run the
+ ELF constructors. For PIE, the check needs the dynamic
+ section, so there is another check below. */
if (__glibc_unlikely (type != ET_DYN)
&& __glibc_unlikely ((mode & __RTLD_OPENEXEC) == 0))
{
@@ -1209,9 +1203,11 @@ _dl_map_object_from_fd (const char *name, const char *origname, int fd,
elf_get_dynamic_info (l, NULL);
/* Make sure we are not dlopen'ing an object that has the
- DF_1_NOOPEN flag set. */
- if (__glibc_unlikely (l->l_flags_1 & DF_1_NOOPEN)
- && (mode & __RTLD_DLOPEN))
+ DF_1_NOOPEN flag set, or a PIE object. */
+ if ((__glibc_unlikely (l->l_flags_1 & DF_1_NOOPEN)
+ && (mode & __RTLD_DLOPEN))
+ || (__glibc_unlikely (l->l_flags_1 & DF_1_PIE)
+ && __glibc_unlikely ((mode & __RTLD_OPENEXEC) == 0)))
{
/* We are not supposed to load this object. Free all resources. */
_dl_unmap_segments (l);
@@ -1222,7 +1218,11 @@ _dl_map_object_from_fd (const char *name, const char *origname, int fd,
if (l->l_phdr_allocated)
free ((void *) l->l_phdr);
- errstring = N_("shared object cannot be dlopen()ed");
+ if (l->l_flags_1 & DF_1_PIE)
+ errstring
+ = N_("cannot dynamically load position-independent executable");
+ else
+ errstring = N_("shared object cannot be dlopen()ed");
goto call_lose;
}
@@ -1374,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
@@ -1391,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;
@@ -1500,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;
@@ -1581,15 +1592,15 @@ open_verify (const char *name, int fd,
const Elf32_Word *magp = (const void *) ehdr->e_ident;
if (*magp !=
#if BYTE_ORDER == LITTLE_ENDIAN
- ((ELFMAG0 << (EI_MAG0 * 8)) |
- (ELFMAG1 << (EI_MAG1 * 8)) |
- (ELFMAG2 << (EI_MAG2 * 8)) |
- (ELFMAG3 << (EI_MAG3 * 8)))
+ ((ELFMAG0 << (EI_MAG0 * 8))
+ | (ELFMAG1 << (EI_MAG1 * 8))
+ | (ELFMAG2 << (EI_MAG2 * 8))
+ | (ELFMAG3 << (EI_MAG3 * 8)))
#else
- ((ELFMAG0 << (EI_MAG3 * 8)) |
- (ELFMAG1 << (EI_MAG2 * 8)) |
- (ELFMAG2 << (EI_MAG1 * 8)) |
- (ELFMAG3 << (EI_MAG0 * 8)))
+ ((ELFMAG0 << (EI_MAG3 * 8))
+ | (ELFMAG1 << (EI_MAG2 * 8))
+ | (ELFMAG2 << (EI_MAG1 * 8))
+ | (ELFMAG3 << (EI_MAG0 * 8)))
#endif
)
errstring = N_("invalid ELF header");
@@ -1641,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");
@@ -1664,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;
@@ -1682,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);
@@ -1715,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;
@@ -1727,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)
{
@@ -1982,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 66ea2e9237..a1f7b35346 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DL_LOAD_H
#define _DL_LOAD_H 1
@@ -83,7 +83,7 @@ struct loadcmd
/* This is a subroutine of _dl_map_segments. It should be called for each
load command, some time after L->l_addr has been set correctly. It is
responsible for setting up the l_text_end and l_phdr fields. */
-static void __always_inline
+static __always_inline void
_dl_postprocess_loadcmd (struct link_map *l, const ElfW(Ehdr) *header,
const struct loadcmd *c)
{
diff --git a/elf/dl-lookup.c b/elf/dl-lookup.c
index 68ecc6179f..759b45a2c9 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <alloca.h>
#include <libintl.h>
@@ -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:
@@ -536,11 +566,7 @@ do_lookup_x (const char *undef_name, uint_fast32_t new_hash,
}
skip:
- /* If this current map is the one mentioned in the verneed entry
- and we have not found a weak entry, it is a bug. */
- if (symidx == STN_UNDEF && version != NULL && version->filename != NULL
- && __glibc_unlikely (_dl_name_match_p (version->filename, map)))
- return -1;
+ ;
}
while (++i < n);
@@ -572,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
@@ -682,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;
}
@@ -716,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
@@ -796,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))
@@ -810,34 +858,10 @@ _dl_lookup_symbol_x (const char *undef_name, struct link_map *undef_map,
/* Search the relevant loaded objects for a definition. */
for (size_t start = i; *scope != NULL; start = 0, ++scope)
- {
- int res = do_lookup_x (undef_name, new_hash, &old_hash, *ref,
- &current_value, *scope, start, version, flags,
- skip_map, type_class, undef_map);
- if (res > 0)
- break;
-
- if (__glibc_unlikely (res < 0) && skip_map == NULL)
- {
- /* Oh, oh. The file named in the relocation entry does not
- contain the needed symbol. This code is never reached
- for unversioned lookups. */
- assert (version != NULL);
- const char *reference_name = undef_map ? undef_map->l_name : "";
- struct dl_exception exception;
- /* XXX We cannot translate the message. */
- _dl_exception_create_format
- (&exception, DSO_FILENAME (reference_name),
- "symbol %s version %s not defined in file %s"
- " with link time reference%s",
- undef_name, version->name, version->filename,
- res == -2 ? " (no version symbols)" : "");
- _dl_signal_cexception (0, &exception, N_("relocation error"));
- _dl_exception_free (&exception);
- *ref = NULL;
- return 0;
- }
- }
+ if (do_lookup_x (undef_name, new_hash, &old_hash, *ref,
+ &current_value, *scope, start, version, flags,
+ skip_map, type_class, undef_map) != 0)
+ break;
if (__glibc_unlikely (current_value.s == NULL))
{
@@ -937,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++;
@@ -955,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 84d7f9d11b..1b31264348 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#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 084076a283..46cfb922bf 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dl-load.h>
diff --git a/elf/dl-minimal.c b/elf/dl-minimal.c
index 25ceded6fe..7461eef195 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <limits.h>
diff --git a/elf/dl-misc.c b/elf/dl-misc.c
index 2eb81eeb02..7f39982b3a 100644
--- a/elf/dl-misc.c
+++ b/elf/dl-misc.c
@@ -1,5 +1,5 @@
/* Miscellaneous support functions for dynamic linker
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <fcntl.h>
diff --git a/elf/dl-object.c b/elf/dl-object.c
index b37bcc1295..225e2ccf8a 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <string.h>
@@ -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 f6c8ef1043..5a1c5b5326 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <dlfcn.h>
@@ -33,6 +33,7 @@
#include <stap-probe.h>
#include <atomic.h>
#include <libc-internal.h>
+#include <array_length.h>
#include <dl-dst.h>
#include <dl-prop.h>
@@ -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;
}
@@ -329,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];
@@ -358,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
@@ -366,133 +688,48 @@ dl_open_worker (void *a)
_dl_relocate_object (l, l->l_scope, reloc_mode, 0);
}
- /* 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)
@@ -502,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
@@ -524,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[])
@@ -592,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))
{
@@ -610,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 02026969b0..840679c66c 100644
--- a/elf/dl-origin.c
+++ b/elf/dl-origin.c
@@ -1,5 +1,5 @@
/* Find path of executable.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include <string.h>
diff --git a/elf/dl-profile.c b/elf/dl-profile.c
index bac3718c11..d243a15cf9 100644
--- a/elf/dl-profile.c
+++ b/elf/dl-profile.c
@@ -1,5 +1,5 @@
/* Profiling of shared libraries.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
diff --git a/elf/dl-profstub.c b/elf/dl-profstub.c
index 98ba07ef02..647c3f581b 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <elf.h>
diff --git a/elf/dl-reloc-static-pie.c b/elf/dl-reloc-static-pie.c
index ab1ce0eacc..8a4c838bd6 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if ENABLE_STATIC_PIE
#include <unistd.h>
diff --git a/elf/dl-reloc.c b/elf/dl-reloc.c
index 053916eeae..7f201fe184 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <libintl.h>
@@ -200,17 +200,6 @@ _dl_relocate_object (struct link_map *l, struct r_scope_elem *scope[],
newp->start = PTR_ALIGN_DOWN (ph->p_vaddr, GLRO(dl_pagesize))
+ (caddr_t) l->l_addr;
- if (__mprotect (newp->start, newp->len, PROT_READ|PROT_WRITE) < 0)
- {
- errstring = N_("cannot make segment writable for relocation");
- call_error:
- _dl_signal_error (errno, l->l_name, NULL, errstring);
- }
-
-#if (PF_R | PF_W | PF_X) == 7 && (PROT_READ | PROT_WRITE | PROT_EXEC) == 7
- newp->prot = (PF_TO_PROT
- >> ((ph->p_flags & (PF_R | PF_W | PF_X)) * 4)) & 0xf;
-#else
newp->prot = 0;
if (ph->p_flags & PF_R)
newp->prot |= PROT_READ;
@@ -218,7 +207,14 @@ _dl_relocate_object (struct link_map *l, struct r_scope_elem *scope[],
newp->prot |= PROT_WRITE;
if (ph->p_flags & PF_X)
newp->prot |= PROT_EXEC;
-#endif
+
+ if (__mprotect (newp->start, newp->len, newp->prot|PROT_WRITE) < 0)
+ {
+ errstring = N_("cannot make segment writable for relocation");
+ call_error:
+ _dl_signal_error (errno, l->l_name, NULL, errstring);
+ }
+
newp->next = textrels;
textrels = newp;
}
@@ -248,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 63bbc89776..8457862ba7 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define IN_DL_RUNTIME 1 /* This can be tested in dl-machine.h. */
@@ -183,10 +183,36 @@ _dl_profile_fixup (
/* This is the address in the array where we store the result of previous
relocations. */
struct reloc_result *reloc_result = &l->l_reloc_result[reloc_index];
- DL_FIXUP_VALUE_TYPE *resultp = &reloc_result->addr;
- DL_FIXUP_VALUE_TYPE value = *resultp;
- if (DL_FIXUP_VALUE_CODE_ADDR (value) == 0)
+ /* CONCURRENCY NOTES:
+
+ Multiple threads may be calling the same PLT sequence and with
+ LD_AUDIT enabled they will be calling into _dl_profile_fixup to
+ update the reloc_result with the result of the lazy resolution.
+ The reloc_result guard variable is reloc_init, and we use
+ acquire/release loads and store to it to ensure that the results of
+ the structure are consistent with the loaded value of the guard.
+ This does not fix all of the data races that occur when two or more
+ threads read reloc_result->reloc_init with a value of zero and read
+ and write to that reloc_result concurrently. The expectation is
+ generally that while this is a data race it works because the
+ threads write the same values. Until the data races are fixed
+ there is a potential for problems to arise from these data races.
+ The reloc result updates should happen in parallel but there should
+ be an atomic RMW which does the final update to the real result
+ entry (see bug 23790).
+
+ The following code uses reloc_result->init set to 0 to indicate if it is
+ the first time this object is being relocated, otherwise 1 which
+ indicates the object has already been relocated.
+
+ Reading/Writing from/to reloc_result->reloc_init must not happen
+ before previous writes to reloc_result complete as they could
+ end-up with an incomplete struct. */
+ DL_FIXUP_VALUE_TYPE value;
+ unsigned int init = atomic_load_acquire (&reloc_result->init);
+
+ if (init == 0)
{
/* This is the first time we have to relocate this object. */
const ElfW(Sym) *const symtab
@@ -299,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)
@@ -346,19 +375,31 @@ _dl_profile_fixup (
/* Store the result for later runs. */
if (__glibc_likely (! GLRO(dl_bind_not)))
- *resultp = value;
+ {
+ reloc_result->addr = value;
+ /* Guarantee all previous writes complete before
+ init is updated. See CONCURRENCY NOTES earlier */
+ atomic_store_release (&reloc_result->init, 1);
+ }
+ init = 1;
}
+ else
+ value = reloc_result->addr;
/* By default we do not call the pltexit function. */
long int framesize = -1;
+
#ifdef SHARED
/* Auditing checkpoint: report the PLT entering and allow the
auditors to change the value. */
- if (DL_FIXUP_VALUE_CODE_ADDR (value) != 0 && GLRO(dl_naudit) > 0
+ if (GLRO(dl_naudit) > 0
/* Don't do anything if no auditor wants to intercept this call. */
&& (reloc_result->enterexit & LA_SYMB_NOPLTENTER) == 0)
{
+ /* Sanity check: DL_FIXUP_VALUE_CODE_ADDR (value) should have been
+ initialized earlier in this function or in another thread. */
+ assert (DL_FIXUP_VALUE_CODE_ADDR (value) != 0);
ElfW(Sym) *defsym = ((ElfW(Sym) *) D_PTR (reloc_result->bound,
l_info[DT_SYMTAB])
+ reloc_result->boundndx);
@@ -383,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)
@@ -466,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 2775412f31..f4ba0898df 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include <ldsodefs.h>
diff --git a/elf/dl-sort-maps.c b/elf/dl-sort-maps.c
index b2a01ede62..2374f953e6 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ldsodefs.h>
diff --git a/elf/dl-support.c b/elf/dl-support.c
index b5f10d5aa5..5526d5ee6e 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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. */
@@ -129,11 +129,6 @@ void *_dl_random;
#include <dl-procruntime.c>
#include <dl-procinfo.c>
-/* Initial value of the CPU clock. */
-#ifndef HP_TIMING_NONAVAIL
-hp_timing_t _dl_cpuclock_offset;
-#endif
-
void (*_dl_init_static_tls) (struct link_map *) = &_dl_nothread_init_static_tls;
size_t _dl_pagesize = EXEC_PAGESIZE;
@@ -314,9 +309,6 @@ _dl_non_dynamic_init (void)
_dl_main_map.l_phdr = GL(dl_phdr);
_dl_main_map.l_phnum = GL(dl_phnum);
- if (HP_SMALL_TIMING_AVAIL)
- HP_TIMING_NOW (_dl_cpuclock_offset);
-
_dl_verbose = *(getenv ("LD_WARN") ?: "") == '\0' ? 0 : 1;
/* Set up the data structures for the system-supplied DSO early,
diff --git a/elf/dl-sym.c b/elf/dl-sym.c
index 189628adc0..3933194ad0 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <stddef.h>
@@ -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 7f1ccc2516..e4da01e708 100644
--- a/elf/dl-symaddr.c
+++ b/elf/dl-symaddr.c
@@ -1,5 +1,5 @@
/* Get the symbol address. Generic version.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ldsodefs.h>
#include <dl-fptr.h>
diff --git a/elf/dl-sysdep-open.h b/elf/dl-sysdep-open.h
index dbe9299b95..b656b5809e 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DL_SYSDEP_OPEN_H
#define _DL_SYSDEP_OPEN_H 1
diff --git a/elf/dl-sysdep.c b/elf/dl-sysdep.c
index 998c5d52bc..a81f7605a7 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* We conditionalize the whole of this file rather than simply eliding it
from the static build, because other sysdeps/ versions of this file
@@ -277,38 +277,46 @@ _dl_show_auxv (void)
{
static const struct
{
- const char label[17];
+ const char label[22];
enum { unknown = 0, dec, hex, str, ignore } form : 8;
} auxvars[] =
{
- [AT_EXECFD - 2] = { "EXECFD: ", dec },
- [AT_EXECFN - 2] = { "EXECFN: ", str },
- [AT_PHDR - 2] = { "PHDR: 0x", hex },
- [AT_PHENT - 2] = { "PHENT: ", dec },
- [AT_PHNUM - 2] = { "PHNUM: ", dec },
- [AT_PAGESZ - 2] = { "PAGESZ: ", dec },
- [AT_BASE - 2] = { "BASE: 0x", hex },
- [AT_FLAGS - 2] = { "FLAGS: 0x", hex },
- [AT_ENTRY - 2] = { "ENTRY: 0x", hex },
- [AT_NOTELF - 2] = { "NOTELF: ", hex },
- [AT_UID - 2] = { "UID: ", dec },
- [AT_EUID - 2] = { "EUID: ", dec },
- [AT_GID - 2] = { "GID: ", dec },
- [AT_EGID - 2] = { "EGID: ", dec },
- [AT_PLATFORM - 2] = { "PLATFORM: ", str },
- [AT_HWCAP - 2] = { "HWCAP: ", hex },
- [AT_CLKTCK - 2] = { "CLKTCK: ", dec },
- [AT_FPUCW - 2] = { "FPUCW: ", hex },
- [AT_DCACHEBSIZE - 2] = { "DCACHEBSIZE: 0x", hex },
- [AT_ICACHEBSIZE - 2] = { "ICACHEBSIZE: 0x", hex },
- [AT_UCACHEBSIZE - 2] = { "UCACHEBSIZE: 0x", hex },
+ [AT_EXECFD - 2] = { "EXECFD: ", dec },
+ [AT_EXECFN - 2] = { "EXECFN: ", str },
+ [AT_PHDR - 2] = { "PHDR: 0x", hex },
+ [AT_PHENT - 2] = { "PHENT: ", dec },
+ [AT_PHNUM - 2] = { "PHNUM: ", dec },
+ [AT_PAGESZ - 2] = { "PAGESZ: ", dec },
+ [AT_BASE - 2] = { "BASE: 0x", hex },
+ [AT_FLAGS - 2] = { "FLAGS: 0x", hex },
+ [AT_ENTRY - 2] = { "ENTRY: 0x", hex },
+ [AT_NOTELF - 2] = { "NOTELF: ", hex },
+ [AT_UID - 2] = { "UID: ", dec },
+ [AT_EUID - 2] = { "EUID: ", dec },
+ [AT_GID - 2] = { "GID: ", dec },
+ [AT_EGID - 2] = { "EGID: ", dec },
+ [AT_PLATFORM - 2] = { "PLATFORM: ", str },
+ [AT_HWCAP - 2] = { "HWCAP: ", hex },
+ [AT_CLKTCK - 2] = { "CLKTCK: ", dec },
+ [AT_FPUCW - 2] = { "FPUCW: ", hex },
+ [AT_DCACHEBSIZE - 2] = { "DCACHEBSIZE: 0x", hex },
+ [AT_ICACHEBSIZE - 2] = { "ICACHEBSIZE: 0x", hex },
+ [AT_UCACHEBSIZE - 2] = { "UCACHEBSIZE: 0x", hex },
[AT_IGNOREPPC - 2] = { "IGNOREPPC", ignore },
- [AT_SECURE - 2] = { "SECURE: ", dec },
- [AT_BASE_PLATFORM - 2] = { "BASE_PLATFORM:", str },
- [AT_SYSINFO - 2] = { "SYSINFO: 0x", hex },
- [AT_SYSINFO_EHDR - 2] = { "SYSINFO_EHDR: 0x", hex },
- [AT_RANDOM - 2] = { "RANDOM: 0x", hex },
- [AT_HWCAP2 - 2] = { "HWCAP2: 0x", hex },
+ [AT_SECURE - 2] = { "SECURE: ", dec },
+ [AT_BASE_PLATFORM - 2] = { "BASE_PLATFORM: ", str },
+ [AT_SYSINFO - 2] = { "SYSINFO: 0x", hex },
+ [AT_SYSINFO_EHDR - 2] = { "SYSINFO_EHDR: 0x", hex },
+ [AT_RANDOM - 2] = { "RANDOM: 0x", hex },
+ [AT_HWCAP2 - 2] = { "HWCAP2: 0x", hex },
+ [AT_L1I_CACHESIZE - 2] = { "L1I_CACHESIZE: ", dec },
+ [AT_L1I_CACHEGEOMETRY - 2] = { "L1I_CACHEGEOMETRY: 0x", hex },
+ [AT_L1D_CACHESIZE - 2] = { "L1D_CACHESIZE: ", dec },
+ [AT_L1D_CACHEGEOMETRY - 2] = { "L1D_CACHEGEOMETRY: 0x", hex },
+ [AT_L2_CACHESIZE - 2] = { "L2_CACHESIZE: ", dec },
+ [AT_L2_CACHEGEOMETRY - 2] = { "L2_CACHEGEOMETRY: 0x", hex },
+ [AT_L3_CACHESIZE - 2] = { "L3_CACHESIZE: ", dec },
+ [AT_L3_CACHEGEOMETRY - 2] = { "L3_CACHEGEOMETRY: 0x", hex },
};
unsigned int idx = (unsigned int) (av->a_type - 2);
@@ -320,12 +328,9 @@ _dl_show_auxv (void)
assert (AT_NULL == 0);
assert (AT_IGNORE == 1);
- if (av->a_type == AT_HWCAP || av->a_type == AT_HWCAP2)
- {
- /* These are handled in a special way per platform. */
- if (_dl_procinfo (av->a_type, av->a_un.a_val) == 0)
- continue;
- }
+ /* Some entries are handled in a special way per platform. */
+ if (_dl_procinfo (av->a_type, av->a_un.a_val) == 0)
+ continue;
if (idx < sizeof (auxvars) / sizeof (auxvars[0])
&& auxvars[idx].form != unknown)
diff --git a/elf/dl-tls.c b/elf/dl-tls.c
index c87caf13d6..65d3520220 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
@@ -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 884a0b04d0..430f017377 100644
--- a/elf/dl-tunable-types.h
+++ b/elf/dl-tunable-types.h
@@ -1,6 +1,6 @@
/* Tunable type information.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _TUNABLE_TYPES_H_
# define _TUNABLE_TYPES_H_
diff --git a/elf/dl-tunables.c b/elf/dl-tunables.c
index 4c9d36e398..e625ac1a7d 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <startup.h>
#include <stdint.h>
@@ -272,8 +272,7 @@ parse_tunables (char *tunestr, char *valstring)
for setuid binaries. We use the special version of access() to avoid
setting ERRNO, which is a TLS variable since TLS has not yet been set
up. */
-static inline void
-__always_inline
+static __always_inline void
maybe_enable_malloc_check (void)
{
tunable_id_t id = TUNABLE_ENUM_NAME (glibc, malloc, check);
diff --git a/elf/dl-tunables.h b/elf/dl-tunables.h
index 928b30dde9..ccdeff73af 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _TUNABLES_H_
#define _TUNABLES_H_
@@ -113,8 +113,7 @@ rtld_hidden_proto (__tunable_get_val)
# define TUNABLES_FRONTEND_yes TUNABLES_FRONTEND_valstring
/* Compare two name strings, bounded by the name hardcoded in glibc. */
-static inline bool
-__always_inline
+static __always_inline bool
tunable_is_name (const char *orig, const char *envname)
{
for (;*orig != '\0' && *envname != '\0'; envname++, orig++)
diff --git a/elf/dl-tunables.list b/elf/dl-tunables.list
index 1f8ecb8437..c8595e4379 100644
--- a/elf/dl-tunables.list
+++ b/elf/dl-tunables.list
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2018 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
# Allowed attributes for tunables:
#
@@ -85,8 +85,13 @@ glibc {
tcache_unsorted_limit {
type: SIZE_T
}
+ mxfast {
+ type: SIZE_T
+ minval: 0
+ security_level: SXID_IGNORE
+ }
}
- tune {
+ cpu {
hwcap_mask {
type: UINT_64
env_alias: LD_HWCAP_MASK
diff --git a/elf/dl-unmap-segments.h b/elf/dl-unmap-segments.h
index 3294326425..69ffdf7fc5 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DL_UNMAP_SEGMENTS_H
#define _DL_UNMAP_SEGMENTS_H 1
diff --git a/elf/dl-version.c b/elf/dl-version.c
index 7860cc817e..d862067a4f 100644
--- a/elf/dl-version.c
+++ b/elf/dl-version.c
@@ -1,5 +1,5 @@
/* Handle symbol and library versioning.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <elf.h>
#include <errno.h>
diff --git a/elf/dl-writev.h b/elf/dl-writev.h
index e8d0057e30..43c51e7c5e 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/uio.h>
#include <ldsodefs.h>
diff --git a/elf/do-rel.h b/elf/do-rel.h
index 19cb5d236e..5c3ea340e6 100644
--- a/elf/do-rel.h
+++ b/elf/do-rel.h
@@ -1,5 +1,5 @@
/* Do relocations for ELF dynamic linking.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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 9e9d5a3b28..5d9ef492ac 100644
--- a/elf/dynamic-link.h
+++ b/elf/dynamic-link.h
@@ -1,5 +1,5 @@
/* Inline functions for dynamic linking.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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 7e2b072a7f..f69fb7a452 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _ELF_H
#define _ELF_H 1
@@ -360,8 +360,9 @@ typedef struct
#define EM_RISCV 243 /* RISC-V */
#define EM_BPF 247 /* Linux BPF -- in-kernel virtual machine */
+#define EM_CSKY 252 /* C-SKY */
-#define EM_NUM 248
+#define EM_NUM 253
/* Old spellings/synonyms. */
@@ -808,6 +809,16 @@ typedef struct
#define NT_ARM_SYSTEM_CALL 0x404 /* ARM system call number */
#define NT_ARM_SVE 0x405 /* ARM Scalable Vector Extension
registers */
+#define NT_ARM_PAC_MASK 0x406 /* ARM pointer authentication
+ code masks. */
+#define NT_ARM_PACA_KEYS 0x407 /* ARM pointer authentication
+ address keys. */
+#define NT_ARM_PACG_KEYS 0x408 /* ARM pointer authentication
+ generic key. */
+#define NT_VMCOREDD 0x700 /* Vmcore Device Dump Note. */
+#define NT_MIPS_DSP 0x800 /* MIPS DSP ASE registers. */
+#define NT_MIPS_FP_MODE 0x801 /* MIPS floating-point mode. */
+#define NT_MIPS_MSA 0x802 /* MIPS SIMD registers. */
/* Legal values for the note segment descriptor types for object files. */
@@ -983,6 +994,9 @@ typedef struct
#define DF_1_SINGLETON 0x02000000 /* Singleton symbols are used. */
#define DF_1_STUB 0x04000000
#define DF_1_PIE 0x08000000
+#define DF_1_KMOD 0x10000000
+#define DF_1_WEAKFILTER 0x20000000
+#define DF_1_NOCOMMON 0x40000000
/* Flags for the feature selection in DT_FEATURE_1. */
#define DTF_1_PARINIT 0x00000001
@@ -1214,6 +1228,9 @@ typedef struct
#define AT_L3_CACHESIZE 46
#define AT_L3_CACHEGEOMETRY 47
+#define AT_MINSIGSTKSZ 51 /* Stack needed for signal delivery
+ (AArch64). */
+
/* Note section contents. Each entry in the note section begins with
a header of a fixed form. */
@@ -1698,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. */
@@ -1945,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. */
@@ -2847,6 +2867,13 @@ enum
#define R_AARCH64_TLSDESC 1031 /* TLS Descriptor. */
#define R_AARCH64_IRELATIVE 1032 /* STT_GNU_IFUNC relocation. */
+/* AArch64 specific values for the Dyn d_tag field. */
+#define DT_AARCH64_VARIANT_PCS (DT_LOPROC + 5)
+#define DT_AARCH64_NUM 6
+
+/* AArch64 specific values for the st_other field. */
+#define STO_AARCH64_VARIANT_PCS 0x80
+
/* ARM relocs. */
#define R_ARM_NONE 0 /* No reloc */
@@ -3015,6 +3042,81 @@ enum
/* Keep this the last entry. */
#define R_ARM_NUM 256
+/* C-SKY */
+#define R_CKCORE_NONE 0 /* no reloc */
+#define R_CKCORE_ADDR32 1 /* direct 32 bit (S + A) */
+#define R_CKCORE_PCRELIMM8BY4 2 /* disp ((S + A - P) >> 2) & 0xff */
+#define R_CKCORE_PCRELIMM11BY2 3 /* disp ((S + A - P) >> 1) & 0x7ff */
+#define R_CKCORE_PCREL32 5 /* 32-bit rel (S + A - P) */
+#define R_CKCORE_PCRELJSR_IMM11BY2 6 /* disp ((S + A - P) >>1) & 0x7ff */
+#define R_CKCORE_RELATIVE 9 /* 32 bit adjust program base(B + A)*/
+#define R_CKCORE_COPY 10 /* 32 bit adjust by program base */
+#define R_CKCORE_GLOB_DAT 11 /* off between got and sym (S) */
+#define R_CKCORE_JUMP_SLOT 12 /* PLT entry (S) */
+#define R_CKCORE_GOTOFF 13 /* offset to GOT (S + A - GOT) */
+#define R_CKCORE_GOTPC 14 /* PC offset to GOT (GOT + A - P) */
+#define R_CKCORE_GOT32 15 /* 32 bit GOT entry (G) */
+#define R_CKCORE_PLT32 16 /* 32 bit PLT entry (G) */
+#define R_CKCORE_ADDRGOT 17 /* GOT entry in GLOB_DAT (GOT + G) */
+#define R_CKCORE_ADDRPLT 18 /* PLT entry in GLOB_DAT (GOT + G) */
+#define R_CKCORE_PCREL_IMM26BY2 19 /* ((S + A - P) >> 1) & 0x3ffffff */
+#define R_CKCORE_PCREL_IMM16BY2 20 /* disp ((S + A - P) >> 1) & 0xffff */
+#define R_CKCORE_PCREL_IMM16BY4 21 /* disp ((S + A - P) >> 2) & 0xffff */
+#define R_CKCORE_PCREL_IMM10BY2 22 /* disp ((S + A - P) >> 1) & 0x3ff */
+#define R_CKCORE_PCREL_IMM10BY4 23 /* disp ((S + A - P) >> 2) & 0x3ff */
+#define R_CKCORE_ADDR_HI16 24 /* high & low 16 bit ADDR */
+ /* ((S + A) >> 16) & 0xffff */
+#define R_CKCORE_ADDR_LO16 25 /* (S + A) & 0xffff */
+#define R_CKCORE_GOTPC_HI16 26 /* high & low 16 bit GOTPC */
+ /* ((GOT + A - P) >> 16) & 0xffff */
+#define R_CKCORE_GOTPC_LO16 27 /* (GOT + A - P) & 0xffff */
+#define R_CKCORE_GOTOFF_HI16 28 /* high & low 16 bit GOTOFF */
+ /* ((S + A - GOT) >> 16) & 0xffff */
+#define R_CKCORE_GOTOFF_LO16 29 /* (S + A - GOT) & 0xffff */
+#define R_CKCORE_GOT12 30 /* 12 bit disp GOT entry (G) */
+#define R_CKCORE_GOT_HI16 31 /* high & low 16 bit GOT */
+ /* (G >> 16) & 0xffff */
+#define R_CKCORE_GOT_LO16 32 /* (G & 0xffff) */
+#define R_CKCORE_PLT12 33 /* 12 bit disp PLT entry (G) */
+#define R_CKCORE_PLT_HI16 34 /* high & low 16 bit PLT */
+ /* (G >> 16) & 0xffff */
+#define R_CKCORE_PLT_LO16 35 /* G & 0xffff */
+#define R_CKCORE_ADDRGOT_HI16 36 /* high & low 16 bit ADDRGOT */
+ /* (GOT + G * 4) & 0xffff */
+#define R_CKCORE_ADDRGOT_LO16 37 /* (GOT + G * 4) & 0xffff */
+#define R_CKCORE_ADDRPLT_HI16 38 /* high & low 16 bit ADDRPLT */
+ /* ((GOT + G * 4) >> 16) & 0xFFFF */
+#define R_CKCORE_ADDRPLT_LO16 39 /* (GOT+G*4) & 0xffff */
+#define R_CKCORE_PCREL_JSR_IMM26BY2 40 /* disp ((S+A-P) >>1) & x3ffffff */
+#define R_CKCORE_TOFFSET_LO16 41 /* (S+A-BTEXT) & 0xffff */
+#define R_CKCORE_DOFFSET_LO16 42 /* (S+A-BTEXT) & 0xffff */
+#define R_CKCORE_PCREL_IMM18BY2 43 /* disp ((S+A-P) >>1) & 0x3ffff */
+#define R_CKCORE_DOFFSET_IMM18 44 /* disp (S+A-BDATA) & 0x3ffff */
+#define R_CKCORE_DOFFSET_IMM18BY2 45 /* disp ((S+A-BDATA)>>1) & 0x3ffff */
+#define R_CKCORE_DOFFSET_IMM18BY4 46 /* disp ((S+A-BDATA)>>2) & 0x3ffff */
+#define R_CKCORE_GOT_IMM18BY4 48 /* disp (G >> 2) */
+#define R_CKCORE_PLT_IMM18BY4 49 /* disp (G >> 2) */
+#define R_CKCORE_PCREL_IMM7BY4 50 /* disp ((S+A-P) >>2) & 0x7f */
+#define R_CKCORE_TLS_LE32 51 /* 32 bit offset to TLS block */
+#define R_CKCORE_TLS_IE32 52
+#define R_CKCORE_TLS_GD32 53
+#define R_CKCORE_TLS_LDM32 54
+#define R_CKCORE_TLS_LDO32 55
+#define R_CKCORE_TLS_DTPMOD32 56
+#define R_CKCORE_TLS_DTPOFF32 57
+#define R_CKCORE_TLS_TPOFF32 58
+
+/* C-SKY elf header definition. */
+#define EF_CSKY_ABIMASK 0XF0000000
+#define EF_CSKY_OTHER 0X0FFF0000
+#define EF_CSKY_PROCESSOR 0X0000FFFF
+
+#define EF_CSKY_ABIV1 0X10000000
+#define EF_CSKY_ABIV2 0X20000000
+
+/* C-SKY attributes section. */
+#define SHT_CSKY_ATTRIBUTES (SHT_LOPROC + 1)
+
/* IA-64 specific declarations. */
/* Processor specific flags for the Ehdr e_flags field. */
diff --git a/elf/enbl-secure.c b/elf/enbl-secure.c
index f03750cbdd..984c40f38f 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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 4b1ea7c407..ea4e304bef 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file is included multiple times and therefore lacks a header
file inclusion guard. */
@@ -49,8 +49,8 @@ elf_get_dynamic_info (struct link_map *l, ElfW(Dyn) *temp)
{
if ((d_tag_utype) dyn->d_tag < DT_NUM)
info[dyn->d_tag] = dyn;
- else if (dyn->d_tag >= DT_LOPROC &&
- dyn->d_tag < DT_LOPROC + DT_THISPROCNUM)
+ else if (dyn->d_tag >= DT_LOPROC
+ && dyn->d_tag < DT_LOPROC + DT_THISPROCNUM)
{
/* This does not violate the array bounds of l->l_info, but
gcc 4.6 on sparc somehow does not see this. */
@@ -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
new file mode 100644
index 0000000000..1f49386332
--- /dev/null
+++ b/elf/ifuncmain9.c
@@ -0,0 +1,107 @@
+/* Test for IFUNC handling with local definitions.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+/* This test is based on gcc.dg/attr-ifunc-4.c. */
+
+#include <config.h>
+
+#ifdef HAVE_GCC_IFUNC
+
+# include <stdbool.h>
+# include <stdio.h>
+
+/* Do not use the test framework, so that the process setup is not
+ disturbed. */
+
+static volatile int implementation_called;
+static volatile int resolver_called;
+
+/* Just a random constant, to check that we called the right
+ function. */
+enum { random_constant = 0x3a88d66d };
+
+static int
+implementation (void)
+{
+ ++implementation_called;
+ return random_constant;
+}
+
+static __typeof__ (implementation) *
+resolver (void)
+{
+ ++resolver_called;
+ return implementation;
+}
+
+static int magic (void) __attribute__ ((ifunc ("resolver")));
+
+int
+main (void)
+{
+ bool errors = false;
+
+ if (implementation_called != 0)
+ {
+ printf ("error: initial value of implementation_called is not zero:"
+ " %d\n", implementation_called);
+ errors = true;
+ }
+
+ /* This can be zero if the reference is bound lazily. */
+ printf ("info: initial value of resolver_called: %d\n", resolver_called);
+
+ int magic_value = magic ();
+ if (magic_value != random_constant)
+ {
+ printf ("error: invalid magic value: 0x%x\n", magic_value);
+ errors = true;
+ }
+
+ printf ("info: resolver_called value: %d\n", resolver_called);
+ if (resolver_called == 0)
+ {
+ /* In theory, the resolver could be called multiple times if
+ several relocations are needed. */
+ puts ("error: invalid resolver_called value (must not be zero)");
+ errors = true;
+ }
+
+ printf ("info: implementation_called value: %d\n", implementation_called);
+ if (implementation_called != 1)
+ {
+ puts ("error: invalid implementation_called value (must be 1)");
+ errors = true;
+ }
+
+ return errors;
+}
+
+#else /* !HAVE_GCC_IFUNC */
+
+# include <support/check.h>
+
+static int
+do_test (void)
+{
+ FAIL_UNSUPPORTED ("GCC does not support the ifunc attribute");
+ return 1; /* Not reachable. */
+}
+
+# include <support/test-driver.c>
+#endif
diff --git a/elf/ifuncmain9pic.c b/elf/ifuncmain9pic.c
new file mode 100644
index 0000000000..6151a45e88
--- /dev/null
+++ b/elf/ifuncmain9pic.c
@@ -0,0 +1 @@
+#include "ifuncmain9.c"
diff --git a/elf/ifuncmain9picstatic.c b/elf/ifuncmain9picstatic.c
new file mode 100644
index 0000000000..6151a45e88
--- /dev/null
+++ b/elf/ifuncmain9picstatic.c
@@ -0,0 +1 @@
+#include "ifuncmain9.c"
diff --git a/elf/ifuncmain9pie.c b/elf/ifuncmain9pie.c
new file mode 100644
index 0000000000..6151a45e88
--- /dev/null
+++ b/elf/ifuncmain9pie.c
@@ -0,0 +1 @@
+#include "ifuncmain9.c"
diff --git a/elf/ifuncmain9static.c b/elf/ifuncmain9static.c
new file mode 100644
index 0000000000..6151a45e88
--- /dev/null
+++ b/elf/ifuncmain9static.c
@@ -0,0 +1 @@
+#include "ifuncmain9.c"
diff --git a/elf/interp.c b/elf/interp.c
index 9cd50c7291..dd704f2244 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <runtime-linker.h>
diff --git a/elf/ldconfig.c b/elf/ldconfig.c
index fbdd814edf..62bbe77a88 100644
--- a/elf/ldconfig.c
+++ b/elf/ldconfig.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#define PROCINFO_CLASS static
#include <alloca.h>
@@ -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\
-"), "2018");
+"), "2019");
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;
@@ -1228,6 +1229,7 @@ parse_conf_include (const char *config_file, unsigned int lineno,
case GLOB_NOSPACE:
errno = ENOMEM;
+ /* Fall through. */
case GLOB_ABORTED:
if (opt_verbose)
error (0, errno, _("%s:%u: cannot read directory %s"),
diff --git a/elf/ldd.bash.in b/elf/ldd.bash.in
index 14f9787d1a..6162004818 100644
--- a/elf/ldd.bash.in
+++ b/elf/ldd.bash.in
@@ -1,5 +1,5 @@
#! @BASH@
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-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
@@ -14,7 +14,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
# 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.
-" "2018"
+" "2019"
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 c67a50dd8e..0d64a3bc2c 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LINK_H
#define _LINK_H 1
diff --git a/elf/pldd-xx.c b/elf/pldd-xx.c
index 2823dea662..699c569a7d 100644
--- a/elf/pldd-xx.c
+++ b/elf/pldd-xx.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define E(name) E_(name, CLASS)
#define E_(name, cl) E__(name, cl)
@@ -23,10 +23,6 @@
#define EW_(e, w, t) EW__(e, w, _##t)
#define EW__(e, w, t) e##w##t
-#define pldd_assert(name, exp) \
- typedef int __assert_##name[((exp) != 0) - 1]
-
-
struct E(link_map)
{
EW(Addr) l_addr;
@@ -39,12 +35,12 @@ struct E(link_map)
EW(Addr) l_libname;
};
#if CLASS == __ELF_NATIVE_CLASS
-pldd_assert (l_addr, (offsetof (struct link_map, l_addr)
- == offsetof (struct E(link_map), l_addr)));
-pldd_assert (l_name, (offsetof (struct link_map, l_name)
- == offsetof (struct E(link_map), l_name)));
-pldd_assert (l_next, (offsetof (struct link_map, l_next)
- == offsetof (struct E(link_map), l_next)));
+_Static_assert (offsetof (struct link_map, l_addr)
+ == offsetof (struct E(link_map), l_addr), "l_addr");
+_Static_assert (offsetof (struct link_map, l_name)
+ == offsetof (struct E(link_map), l_name), "l_name");
+_Static_assert (offsetof (struct link_map, l_next)
+ == offsetof (struct E(link_map), l_next), "l_next");
#endif
@@ -54,10 +50,10 @@ struct E(libname_list)
EW(Addr) next;
};
#if CLASS == __ELF_NATIVE_CLASS
-pldd_assert (name, (offsetof (struct libname_list, name)
- == offsetof (struct E(libname_list), name)));
-pldd_assert (next, (offsetof (struct libname_list, next)
- == offsetof (struct E(libname_list), next)));
+_Static_assert (offsetof (struct libname_list, name)
+ == offsetof (struct E(libname_list), name), "name");
+_Static_assert (offsetof (struct libname_list, next)
+ == offsetof (struct E(libname_list), next), "next");
#endif
struct E(r_debug)
@@ -69,16 +65,17 @@ struct E(r_debug)
EW(Addr) r_map;
};
#if CLASS == __ELF_NATIVE_CLASS
-pldd_assert (r_version, (offsetof (struct r_debug, r_version)
- == offsetof (struct E(r_debug), r_version)));
-pldd_assert (r_map, (offsetof (struct r_debug, r_map)
- == offsetof (struct E(r_debug), r_map)));
+_Static_assert (offsetof (struct r_debug, r_version)
+ == offsetof (struct E(r_debug), r_version), "r_version");
+_Static_assert (offsetof (struct r_debug, r_map)
+ == offsetof (struct E(r_debug), r_map), "r_map");
#endif
static int
-E(find_maps) (pid_t pid, void *auxv, size_t auxv_size)
+E(find_maps) (const char *exe, int memfd, pid_t pid, void *auxv,
+ size_t auxv_size)
{
EW(Addr) phdr = 0;
unsigned int phnum = 0;
@@ -104,12 +101,9 @@ E(find_maps) (pid_t pid, void *auxv, size_t auxv_size)
if (phdr == 0 || phnum == 0 || phent == 0)
error (EXIT_FAILURE, 0, gettext ("cannot find program header of process"));
- EW(Phdr) *p = alloca (phnum * phent);
- if (pread64 (memfd, p, phnum * phent, phdr) != phnum * phent)
- {
- error (0, 0, gettext ("cannot read program header"));
- return EXIT_FAILURE;
- }
+ EW(Phdr) *p = xmalloc (phnum * phent);
+ if (pread (memfd, p, phnum * phent, phdr) != phnum * phent)
+ error (EXIT_FAILURE, 0, gettext ("cannot read program header"));
/* Determine the load offset. We need this for interpreting the
other program header entries so we do this in a separate loop.
@@ -129,24 +123,18 @@ E(find_maps) (pid_t pid, void *auxv, size_t auxv_size)
if (p[i].p_type == PT_DYNAMIC)
{
EW(Dyn) *dyn = xmalloc (p[i].p_filesz);
- if (pread64 (memfd, dyn, p[i].p_filesz, offset + p[i].p_vaddr)
+ if (pread (memfd, dyn, p[i].p_filesz, offset + p[i].p_vaddr)
!= p[i].p_filesz)
- {
- error (0, 0, gettext ("cannot read dynamic section"));
- return EXIT_FAILURE;
- }
+ error (EXIT_FAILURE, 0, gettext ("cannot read dynamic section"));
/* Search for the DT_DEBUG entry. */
for (unsigned int j = 0; j < p[i].p_filesz / sizeof (EW(Dyn)); ++j)
if (dyn[j].d_tag == DT_DEBUG && dyn[j].d_un.d_ptr != 0)
{
struct E(r_debug) r;
- if (pread64 (memfd, &r, sizeof (r), dyn[j].d_un.d_ptr)
+ if (pread (memfd, &r, sizeof (r), dyn[j].d_un.d_ptr)
!= sizeof (r))
- {
- error (0, 0, gettext ("cannot read r_debug"));
- return EXIT_FAILURE;
- }
+ error (EXIT_FAILURE, 0, gettext ("cannot read r_debug"));
if (r.r_map != 0)
{
@@ -160,13 +148,10 @@ E(find_maps) (pid_t pid, void *auxv, size_t auxv_size)
}
else if (p[i].p_type == PT_INTERP)
{
- interp = alloca (p[i].p_filesz);
- if (pread64 (memfd, interp, p[i].p_filesz, offset + p[i].p_vaddr)
+ interp = xmalloc (p[i].p_filesz);
+ if (pread (memfd, interp, p[i].p_filesz, offset + p[i].p_vaddr)
!= p[i].p_filesz)
- {
- error (0, 0, gettext ("cannot read program interpreter"));
- return EXIT_FAILURE;
- }
+ error (EXIT_FAILURE, 0, gettext ("cannot read program interpreter"));
}
if (list == 0)
@@ -174,14 +159,16 @@ E(find_maps) (pid_t pid, void *auxv, size_t auxv_size)
if (interp == NULL)
{
// XXX check whether the executable itself is the loader
- return EXIT_FAILURE;
+ exit (EXIT_FAILURE);
}
// XXX perhaps try finding ld.so and _r_debug in it
-
- return EXIT_FAILURE;
+ exit (EXIT_FAILURE);
}
+ free (p);
+ free (interp);
+
/* Print the PID and program name first. */
printf ("%lu:\t%s\n", (unsigned long int) pid, exe);
@@ -192,47 +179,27 @@ E(find_maps) (pid_t pid, void *auxv, size_t auxv_size)
do
{
struct E(link_map) m;
- if (pread64 (memfd, &m, sizeof (m), list) != sizeof (m))
- {
- error (0, 0, gettext ("cannot read link map"));
- status = EXIT_FAILURE;
- goto out;
- }
+ if (pread (memfd, &m, sizeof (m), list) != sizeof (m))
+ error (EXIT_FAILURE, 0, gettext ("cannot read link map"));
EW(Addr) name_offset = m.l_name;
- again:
while (1)
{
- ssize_t n = pread64 (memfd, tmpbuf.data, tmpbuf.length, name_offset);
+ ssize_t n = pread (memfd, tmpbuf.data, tmpbuf.length, name_offset);
if (n == -1)
- {
- error (0, 0, gettext ("cannot read object name"));
- status = EXIT_FAILURE;
- goto out;
- }
+ error (EXIT_FAILURE, 0, gettext ("cannot read object name"));
if (memchr (tmpbuf.data, '\0', n) != NULL)
break;
if (!scratch_buffer_grow (&tmpbuf))
- {
- error (0, 0, gettext ("cannot allocate buffer for object name"));
- status = EXIT_FAILURE;
- goto out;
- }
+ error (EXIT_FAILURE, 0,
+ gettext ("cannot allocate buffer for object name"));
}
- if (((char *)tmpbuf.data)[0] == '\0' && name_offset == m.l_name
- && m.l_libname != 0)
- {
- /* Try the l_libname element. */
- struct E(libname_list) ln;
- if (pread64 (memfd, &ln, sizeof (ln), m.l_libname) == sizeof (ln))
- {
- name_offset = ln.name;
- goto again;
- }
- }
+ /* The m.l_name and m.l_libname.name for loader linkmap points to same
+ values (since BZ#387 fix). Trying to use l_libname name as the
+ shared object name might lead to an infinite loop (BZ#18035). */
/* Skip over the executable. */
if (((char *)tmpbuf.data)[0] != '\0')
@@ -242,7 +209,6 @@ E(find_maps) (pid_t pid, void *auxv, size_t auxv_size)
}
while (list != 0);
- out:
scratch_buffer_free (&tmpbuf);
return status;
}
diff --git a/elf/pldd.c b/elf/pldd.c
index b8106fdc33..45350ad2b7 100644
--- a/elf/pldd.c
+++ b/elf/pldd.c
@@ -1,5 +1,5 @@
/* List dynamic shared objects linked into given process.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
@@ -15,25 +15,19 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+
+#define _FILE_OFFSET_BITS 64
-#include <alloca.h>
#include <argp.h>
-#include <assert.h>
#include <dirent.h>
-#include <elf.h>
-#include <errno.h>
#include <error.h>
#include <fcntl.h>
#include <libintl.h>
-#include <link.h>
-#include <stddef.h>
#include <stdio.h>
#include <stdlib.h>
-#include <string.h>
#include <unistd.h>
#include <sys/ptrace.h>
-#include <sys/stat.h>
#include <sys/wait.h>
#include <scratch_buffer.h>
@@ -76,14 +70,9 @@ static struct argp argp =
options, parse_opt, args_doc, doc, NULL, more_help, NULL
};
-// File descriptor of /proc/*/mem file.
-static int memfd;
-
-/* Name of the executable */
-static char *exe;
/* Local functions. */
-static int get_process_info (int dfd, long int pid);
+static int get_process_info (const char *exe, int dfd, long int pid);
static void wait_for_ptrace_stop (long int pid);
@@ -102,8 +91,10 @@ main (int argc, char *argv[])
return 1;
}
- assert (sizeof (pid_t) == sizeof (int)
- || sizeof (pid_t) == sizeof (long int));
+ _Static_assert (sizeof (pid_t) == sizeof (int)
+ || sizeof (pid_t) == sizeof (long int),
+ "sizeof (pid_t) != sizeof (int) or sizeof (long int)");
+
char *endp;
errno = 0;
long int pid = strtol (argv[remaining], &endp, 10);
@@ -119,25 +110,24 @@ main (int argc, char *argv[])
if (dfd == -1)
error (EXIT_FAILURE, errno, gettext ("cannot open %s"), buf);
- struct scratch_buffer exebuf;
- scratch_buffer_init (&exebuf);
+ /* Name of the executable */
+ struct scratch_buffer exe;
+ scratch_buffer_init (&exe);
ssize_t nexe;
while ((nexe = readlinkat (dfd, "exe",
- exebuf.data, exebuf.length)) == exebuf.length)
+ exe.data, exe.length)) == exe.length)
{
- if (!scratch_buffer_grow (&exebuf))
+ if (!scratch_buffer_grow (&exe))
{
nexe = -1;
break;
}
}
if (nexe == -1)
- exe = (char *) "<program name undetermined>";
+ /* Default stack allocation is at least 1024. */
+ snprintf (exe.data, exe.length, "<program name undetermined>");
else
- {
- exe = exebuf.data;
- exe[nexe] = '\0';
- }
+ ((char*)exe.data)[nexe] = '\0';
/* Stop all threads since otherwise the list of loaded modules might
change while we are reading it. */
@@ -155,8 +145,8 @@ main (int argc, char *argv[])
error (EXIT_FAILURE, errno, gettext ("cannot prepare reading %s/task"),
buf);
- struct dirent64 *d;
- while ((d = readdir64 (dir)) != NULL)
+ struct dirent *d;
+ while ((d = readdir (dir)) != NULL)
{
if (! isdigit (d->d_name[0]))
continue;
@@ -182,7 +172,7 @@ main (int argc, char *argv[])
wait_for_ptrace_stop (tid);
- struct thread_list *newp = alloca (sizeof (*newp));
+ struct thread_list *newp = xmalloc (sizeof (*newp));
newp->tid = tid;
newp->next = thread_list;
thread_list = newp;
@@ -190,17 +180,22 @@ main (int argc, char *argv[])
closedir (dir);
- int status = get_process_info (dfd, pid);
+ if (thread_list == NULL)
+ error (EXIT_FAILURE, 0, gettext ("no valid %s/task entries"), buf);
+
+ int status = get_process_info (exe.data, dfd, pid);
- assert (thread_list != NULL);
do
{
ptrace (PTRACE_DETACH, thread_list->tid, NULL, NULL);
+ struct thread_list *prev = thread_list;
thread_list = thread_list->next;
+ free (prev);
}
while (thread_list != NULL);
close (dfd);
+ scratch_buffer_free (&exe);
return status;
}
@@ -269,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\
-"), "2018");
+"), "2019");
fprintf (stream, gettext ("Written by %s.\n"), "Ulrich Drepper");
}
@@ -281,9 +276,10 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\
static int
-get_process_info (int dfd, long int pid)
+get_process_info (const char *exe, int dfd, long int pid)
{
- memfd = openat (dfd, "mem", O_RDONLY);
+ /* File descriptor of /proc/<pid>/mem file. */
+ int memfd = openat (dfd, "mem", O_RDONLY);
if (memfd == -1)
goto no_info;
@@ -333,9 +329,9 @@ get_process_info (int dfd, long int pid)
int retval;
if (e_ident[EI_CLASS] == ELFCLASS32)
- retval = find_maps32 (pid, auxv, auxv_size);
+ retval = find_maps32 (exe, memfd, pid, auxv, auxv_size);
else
- retval = find_maps64 (pid, auxv, auxv_size);
+ retval = find_maps64 (exe, memfd, pid, auxv, auxv_size);
free (auxv);
close (memfd);
diff --git a/elf/readelflib.c b/elf/readelflib.c
index 5a1e2dc2df..499cccbcfc 100644
--- a/elf/readelflib.c
+++ b/elf/readelflib.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 1999 and
Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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"));
@@ -164,10 +157,10 @@ process_elf_file (const char *file_name, const char *lib, int *flag,
if (size == 0)
break;
- *osversion = (abi_note [4] << 24) |
- ((abi_note [5] & 0xff) << 16) |
- ((abi_note [6] & 0xff) << 8) |
- (abi_note [7] & 0xff);
+ *osversion = ((abi_note [4] << 24)
+ | ((abi_note [5] & 0xff) << 16)
+ | ((abi_note [6] & 0xff) << 8)
+ | (abi_note [7] & 0xff));
}
break;
@@ -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 573c01476c..0f3fd38346 100644
--- a/elf/readlib.c
+++ b/elf/readlib.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 1999 and
Jakub Jelinek <jakub@redhat.com>, 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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
/* 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 6fd9494ba3..6d8b5bb04d 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-2018 Free Software Foundation, Inc.
+# Copyright (C) 2002-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
@@ -15,7 +15,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
# 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 1b0c74739f..dd8fc5e6c6 100644
--- a/elf/rtld.c
+++ b/elf/rtld.c
@@ -1,5 +1,5 @@
/* Run time dynamic linker.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <dlfcn.h>
@@ -46,6 +46,49 @@
#include <assert.h>
+/* Only enables rtld profiling for architectures which provides non generic
+ hp-timing support. The generic support requires either syscall
+ (clock_gettime), which will incur in extra overhead on loading time.
+ Using vDSO is also an option, but it will require extra support on loader
+ to setup the vDSO pointer before its usage. */
+#if HP_TIMING_INLINE
+# define RLTD_TIMING_DECLARE(var, classifier,...) \
+ classifier hp_timing_t var __VA_ARGS__
+# define RTLD_TIMING_VAR(var) RLTD_TIMING_DECLARE (var, )
+# define RTLD_TIMING_SET(var, value) (var) = (value)
+# define RTLD_TIMING_REF(var) &(var)
+
+static inline void
+rtld_timer_start (hp_timing_t *var)
+{
+ HP_TIMING_NOW (*var);
+}
+
+static inline void
+rtld_timer_stop (hp_timing_t *var, hp_timing_t start)
+{
+ hp_timing_t stop;
+ HP_TIMING_NOW (stop);
+ HP_TIMING_DIFF (*var, start, stop);
+}
+
+static inline void
+rtld_timer_accum (hp_timing_t *sum, hp_timing_t start)
+{
+ hp_timing_t stop;
+ rtld_timer_stop (&stop, start);
+ HP_TIMING_ACCUM_NT(*sum, stop);
+}
+#else
+# define RLTD_TIMING_DECLARE(var, classifier...)
+# define RTLD_TIMING_SET(var, value)
+# define RTLD_TIMING_VAR(var)
+# define RTLD_TIMING_REF(var) 0
+# define rtld_timer_start(var)
+# define rtld_timer_stop(var, start)
+# define rtld_timer_accum(sum, start)
+#endif
+
/* Avoid PLT use for our local calls at startup. */
extern __typeof (__mempcpy) __mempcpy attribute_hidden;
@@ -62,7 +105,7 @@ static void print_missing_version (int errcode, const char *objname,
const char *errsting);
/* Print the various times we collected. */
-static void print_statistics (hp_timing_t *total_timep);
+static void print_statistics (const hp_timing_t *total_timep);
/* Add audit objects. */
static void process_dl_audit (char *str);
@@ -303,11 +346,9 @@ static struct libname_list _dl_rtld_libname;
static struct libname_list _dl_rtld_libname2;
/* Variable for statistics. */
-#ifndef HP_TIMING_NONAVAIL
-static hp_timing_t relocate_time;
-static hp_timing_t load_time attribute_relro;
-static hp_timing_t start_time attribute_relro;
-#endif
+RLTD_TIMING_DECLARE (relocate_time, static);
+RLTD_TIMING_DECLARE (load_time, static, attribute_relro);
+RLTD_TIMING_DECLARE (start_time, static, attribute_relro);
/* Additional definitions needed by TLS initialization. */
#ifdef TLS_INIT_HELPER
@@ -335,9 +376,7 @@ static ElfW(Addr) _dl_start_final (void *arg);
struct dl_start_final_info
{
struct link_map l;
-#if !defined HP_TIMING_NONAVAIL && HP_TIMING_INLINE
- hp_timing_t start_time;
-#endif
+ RTLD_TIMING_VAR (start_time);
};
static ElfW(Addr) _dl_start_final (void *arg,
struct dl_start_final_info *info);
@@ -371,16 +410,11 @@ _dl_start_final (void *arg, struct dl_start_final_info *info)
{
ElfW(Addr) start_addr;
- if (HP_SMALL_TIMING_AVAIL)
- {
- /* If it hasn't happen yet record the startup time. */
- if (! HP_TIMING_INLINE)
- HP_TIMING_NOW (start_time);
-#if !defined DONT_USE_BOOTSTRAP_MAP && !defined HP_TIMING_NONAVAIL
- else
- start_time = info->start_time;
+ /* If it hasn't happen yet record the startup time. */
+ rtld_timer_start (&start_time);
+#if !defined DONT_USE_BOOTSTRAP_MAP
+ RTLD_TIMING_SET (start_time, info->start_time);
#endif
- }
/* Transfer data about ourselves to the permanent link_map structure. */
#ifndef DONT_USE_BOOTSTRAP_MAP
@@ -403,8 +437,6 @@ _dl_start_final (void *arg, struct dl_start_final_info *info)
# endif
#endif
- HP_TIMING_NOW (GL(dl_cpuclock_offset));
-
/* Initialize the stack end variable. */
__libc_stack_end = __builtin_frame_address (0);
@@ -414,27 +446,11 @@ _dl_start_final (void *arg, struct dl_start_final_info *info)
entry point on the same stack we entered on. */
start_addr = _dl_sysdep_start (arg, &dl_main);
-#ifndef HP_TIMING_NONAVAIL
- hp_timing_t rtld_total_time;
- if (HP_SMALL_TIMING_AVAIL)
- {
- hp_timing_t end_time;
-
- /* Get the current time. */
- HP_TIMING_NOW (end_time);
-
- /* Compute the difference. */
- HP_TIMING_DIFF (rtld_total_time, start_time, end_time);
- }
-#endif
-
if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_STATISTICS))
{
-#ifndef HP_TIMING_NONAVAIL
- print_statistics (&rtld_total_time);
-#else
- print_statistics (NULL);
-#endif
+ RTLD_TIMING_VAR (rtld_total_time);
+ rtld_timer_stop (&rtld_total_time, start_time);
+ print_statistics (RTLD_TIMING_REF(rtld_total_time));
}
return start_addr;
@@ -459,11 +475,10 @@ _dl_start (void *arg)
#define RESOLVE_MAP(sym, version, flags) BOOTSTRAP_MAP
#include "dynamic-link.h"
- if (HP_TIMING_INLINE && HP_SMALL_TIMING_AVAIL)
#ifdef DONT_USE_BOOTSTRAP_MAP
- HP_TIMING_NOW (start_time);
+ rtld_timer_start (&start_time);
#else
- HP_TIMING_NOW (info.start_time);
+ rtld_timer_start (&info.start_time);
#endif
/* Partly clean the `bootstrap_map' structure up. Don't use
@@ -826,15 +841,18 @@ static const char *library_path attribute_relro;
static const char *preloadlist attribute_relro;
/* Nonzero if information about versions has to be printed. */
static int version_info attribute_relro;
+/* The preload list passed as a command argument. */
+static const char *preloadarg attribute_relro;
/* The LD_PRELOAD environment variable gives list of libraries
separated by white space or colons that are loaded before the
executable's dependencies and prepended to the global scope list.
(If the binary is running setuid all elements containing a '/' are
ignored since it is insecure.) Return the number of preloads
- performed. */
+ performed. Ditto for --preload command argument. */
unsigned int
-handle_ld_preload (const char *preloadlist, struct link_map *main_map)
+handle_preload_list (const char *preloadlist, struct link_map *main_map,
+ const char *where)
{
unsigned int npreloads = 0;
const char *p = preloadlist;
@@ -858,11 +876,210 @@ handle_ld_preload (const char *preloadlist, struct link_map *main_map)
++p;
if (dso_name_valid_for_suid (fname))
- npreloads += do_preload (fname, main_map, "LD_PRELOAD");
+ npreloads += do_preload (fname, main_map, where);
}
return npreloads;
}
+/* Called if the audit DSO cannot be used: if it does not have the
+ appropriate interfaces, or it expects a more recent version library
+ version than what the dynamic linker provides. */
+static void
+unload_audit_module (struct link_map *map, int original_tls_idx)
+{
+#ifndef NDEBUG
+ Lmid_t ns = map->l_ns;
+#endif
+ _dl_close (map);
+
+ /* Make sure the namespace has been cleared entirely. */
+ assert (GL(dl_ns)[ns]._ns_loaded == NULL);
+ assert (GL(dl_ns)[ns]._ns_nloaded == 0);
+
+ GL(dl_tls_max_dtv_idx) = original_tls_idx;
+}
+
+/* Called to print an error message if loading of an audit module
+ failed. */
+static void
+report_audit_module_load_error (const char *name, const char *err_str,
+ bool malloced)
+{
+ _dl_error_printf ("\
+ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
+ name, err_str);
+ if (malloced)
+ free ((char *) err_str);
+}
+
+/* Load one audit module. */
+static void
+load_audit_module (const char *name, struct audit_ifaces **last_audit)
+{
+ int original_tls_idx = GL(dl_tls_max_dtv_idx);
+
+ struct dlmopen_args dlmargs;
+ dlmargs.fname = name;
+ dlmargs.map = NULL;
+
+ const char *objname;
+ const char *err_str = NULL;
+ bool malloced;
+ _dl_catch_error (&objname, &err_str, &malloced, dlmopen_doit, &dlmargs);
+ if (__glibc_unlikely (err_str != NULL))
+ {
+ report_audit_module_load_error (name, err_str, malloced);
+ return;
+ }
+
+ struct lookup_args largs;
+ largs.name = "la_version";
+ largs.map = dlmargs.map;
+ _dl_catch_error (&objname, &err_str, &malloced, lookup_doit, &largs);
+ if (__glibc_likely (err_str != NULL))
+ {
+ unload_audit_module (dlmargs.map, original_tls_idx);
+ report_audit_module_load_error (name, err_str, malloced);
+ return;
+ }
+
+ unsigned int (*laversion) (unsigned int) = largs.result;
+
+ /* A null symbol indicates that something is very wrong with the
+ loaded object because defined symbols are supposed to have a
+ valid, non-null address. */
+ assert (laversion != NULL);
+
+ unsigned int lav = laversion (LAV_CURRENT);
+ if (lav == 0)
+ {
+ /* Only print an error message if debugging because this can
+ happen deliberately. */
+ if (GLRO(dl_debug_mask) & DL_DEBUG_FILES)
+ _dl_debug_printf ("\
+file=%s [%lu]; audit interface function la_version returned zero; ignored.\n",
+ dlmargs.map->l_name, dlmargs.map->l_ns);
+ unload_audit_module (dlmargs.map, original_tls_idx);
+ return;
+ }
+
+ if (lav > LAV_CURRENT)
+ {
+ _dl_debug_printf ("\
+ERROR: audit interface '%s' requires version %d (maximum supported version %d); ignored.\n",
+ name, lav, LAV_CURRENT);
+ unload_audit_module (dlmargs.map, original_tls_idx);
+ return;
+ }
+
+ enum { naudit_ifaces = 8 };
+ union
+ {
+ struct audit_ifaces ifaces;
+ void (*fptr[naudit_ifaces]) (void);
+ } *newp = malloc (sizeof (*newp));
+ if (newp == NULL)
+ _dl_fatal_printf ("Out of memory while loading audit modules\n");
+
+ /* Names of the auditing interfaces. All in one
+ long string. */
+ static const char audit_iface_names[] =
+ "la_activity\0"
+ "la_objsearch\0"
+ "la_objopen\0"
+ "la_preinit\0"
+#if __ELF_NATIVE_CLASS == 32
+ "la_symbind32\0"
+#elif __ELF_NATIVE_CLASS == 64
+ "la_symbind64\0"
+#else
+# error "__ELF_NATIVE_CLASS must be defined"
+#endif
+#define STRING(s) __STRING (s)
+ "la_" STRING (ARCH_LA_PLTENTER) "\0"
+ "la_" STRING (ARCH_LA_PLTEXIT) "\0"
+ "la_objclose\0";
+ unsigned int cnt = 0;
+ const char *cp = audit_iface_names;
+ do
+ {
+ largs.name = cp;
+ _dl_catch_error (&objname, &err_str, &malloced, lookup_doit, &largs);
+
+ /* Store the pointer. */
+ if (err_str == NULL && largs.result != NULL)
+ newp->fptr[cnt] = largs.result;
+ else
+ newp->fptr[cnt] = NULL;
+ ++cnt;
+
+ cp = rawmemchr (cp, '\0') + 1;
+ }
+ while (*cp != '\0');
+ assert (cnt == naudit_ifaces);
+
+ /* Now append the new auditing interface to the list. */
+ newp->ifaces.next = NULL;
+ if (*last_audit == NULL)
+ *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. */
+ dlmargs.map->l_auditing = 1;
+}
+
+/* Notify the the audit modules that the object MAP has already been
+ loaded. */
+static void
+notify_audit_modules_of_loaded_object (struct link_map *map)
+{
+ struct audit_ifaces *afct = GLRO(dl_audit);
+ for (unsigned int cnt = 0; cnt < GLRO(dl_naudit); ++cnt)
+ {
+ if (afct->objopen != NULL)
+ {
+ 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;
+ }
+}
+
+/* Load all audit modules. */
+static void
+load_audit_modules (struct link_map *main_map)
+{
+ struct audit_ifaces *last_audit = NULL;
+ struct audit_list_iter al_iter;
+ audit_list_iter_init (&al_iter);
+
+ while (true)
+ {
+ const char *name = audit_list_iter_next (&al_iter);
+ if (name == NULL)
+ break;
+ load_audit_module (name, &last_audit);
+ }
+
+ /* Notify audit modules of the initially loaded modules (the main
+ program and the dynamic linker itself). */
+ if (GLRO(dl_naudit) > 0)
+ {
+ notify_audit_modules_of_loaded_object (main_map);
+ notify_audit_modules_of_loaded_object (&GL(dl_rtld_map));
+ }
+}
+
static void
dl_main (const ElfW(Phdr) *phdr,
ElfW(Word) phnum,
@@ -878,11 +1095,6 @@ dl_main (const ElfW(Phdr) *phdr,
unsigned int i;
bool prelinked = false;
bool rtld_is_main = false;
-#ifndef HP_TIMING_NONAVAIL
- hp_timing_t start;
- hp_timing_t stop;
- hp_timing_t diff;
-#endif
void *tcbp = NULL;
GL(dl_init_static_tls) = &_dl_nothread_init_static_tls;
@@ -978,6 +1190,13 @@ dl_main (const ElfW(Phdr) *phdr,
_dl_argc -= 2;
_dl_argv += 2;
}
+ else if (! strcmp (_dl_argv[1], "--preload") && _dl_argc > 2)
+ {
+ preloadarg = _dl_argv[2];
+ _dl_skip_args += 2;
+ _dl_argc -= 2;
+ _dl_argv += 2;
+ }
else
break;
@@ -1006,7 +1225,8 @@ of this helper program; chances are you did not intend to run this program.\n\
variable LD_LIBRARY_PATH\n\
--inhibit-rpath LIST ignore RUNPATH and RPATH information in object names\n\
in LIST\n\
- --audit LIST use objects named in LIST as auditors\n");
+ --audit LIST use objects named in LIST as auditors\n\
+ --preload LIST preload objects named in LIST\n");
++_dl_skip_args;
--_dl_argc;
@@ -1050,12 +1270,11 @@ of this helper program; chances are you did not intend to run this program.\n\
}
else
{
- HP_TIMING_NOW (start);
+ RTLD_TIMING_VAR (start);
+ rtld_timer_start (&start);
_dl_map_object (NULL, rtld_progname, lt_executable, 0,
__RTLD_OPENEXEC, LM_ID_BASE);
- HP_TIMING_NOW (stop);
-
- HP_TIMING_DIFF (load_time, start, stop);
+ rtld_timer_stop (&load_time, start);
}
/* Now the map for the main executable is available. */
@@ -1395,10 +1614,6 @@ ERROR: '%s': cannot process note segment.\n", _dl_argv[0]);
if (__glibc_unlikely (audit_list != NULL)
|| __glibc_unlikely (audit_list_string != NULL))
{
- struct audit_ifaces *last_audit = NULL;
- struct audit_list_iter al_iter;
- audit_list_iter_init (&al_iter);
-
/* Since we start using the auditing DSOs right away we need to
initialize the data structures now. */
tcbp = init_tls ();
@@ -1410,164 +1625,7 @@ ERROR: '%s': cannot process note segment.\n", _dl_argv[0]);
security_init ();
need_security_init = false;
- while (true)
- {
- const char *name = audit_list_iter_next (&al_iter);
- if (name == NULL)
- break;
-
- int tls_idx = GL(dl_tls_max_dtv_idx);
-
- /* Now it is time to determine the layout of the static TLS
- block and allocate it for the initial thread. Note that we
- always allocate the static block, we never defer it even if
- no DF_STATIC_TLS bit is set. The reason is that we know
- glibc will use the static model. */
- struct dlmopen_args dlmargs;
- dlmargs.fname = name;
- dlmargs.map = NULL;
-
- const char *objname;
- const char *err_str = NULL;
- bool malloced;
- (void) _dl_catch_error (&objname, &err_str, &malloced, dlmopen_doit,
- &dlmargs);
- if (__glibc_unlikely (err_str != NULL))
- {
- not_loaded:
- _dl_error_printf ("\
-ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
- name, err_str);
- if (malloced)
- free ((char *) err_str);
- }
- else
- {
- struct lookup_args largs;
- largs.name = "la_version";
- largs.map = dlmargs.map;
-
- /* Check whether the interface version matches. */
- (void) _dl_catch_error (&objname, &err_str, &malloced,
- lookup_doit, &largs);
-
- unsigned int (*laversion) (unsigned int);
- unsigned int lav;
- if (err_str == NULL
- && (laversion = largs.result) != NULL
- && (lav = laversion (LAV_CURRENT)) > 0
- && lav <= LAV_CURRENT)
- {
- /* Allocate structure for the callback function pointers.
- This call can never fail. */
- union
- {
- struct audit_ifaces ifaces;
-#define naudit_ifaces 8
- void (*fptr[naudit_ifaces]) (void);
- } *newp = malloc (sizeof (*newp));
-
- /* Names of the auditing interfaces. All in one
- long string. */
- static const char audit_iface_names[] =
- "la_activity\0"
- "la_objsearch\0"
- "la_objopen\0"
- "la_preinit\0"
-#if __ELF_NATIVE_CLASS == 32
- "la_symbind32\0"
-#elif __ELF_NATIVE_CLASS == 64
- "la_symbind64\0"
-#else
-# error "__ELF_NATIVE_CLASS must be defined"
-#endif
-#define STRING(s) __STRING (s)
- "la_" STRING (ARCH_LA_PLTENTER) "\0"
- "la_" STRING (ARCH_LA_PLTEXIT) "\0"
- "la_objclose\0";
- unsigned int cnt = 0;
- const char *cp = audit_iface_names;
- do
- {
- largs.name = cp;
- (void) _dl_catch_error (&objname, &err_str, &malloced,
- lookup_doit, &largs);
-
- /* 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);
- }
- else
- newp->fptr[cnt] = NULL;
- ++cnt;
-
- cp = (char *) rawmemchr (cp, '\0') + 1;
- }
- while (*cp != '\0');
- assert (cnt == naudit_ifaces);
-
- /* Now append the new auditing interface to the list. */
- newp->ifaces.next = NULL;
- if (last_audit == NULL)
- last_audit = GLRO(dl_audit) = &newp->ifaces;
- else
- last_audit = last_audit->next = &newp->ifaces;
- ++GLRO(dl_naudit);
-
- /* Mark the DSO as being used for auditing. */
- dlmargs.map->l_auditing = 1;
- }
- else
- {
- /* We cannot use the DSO, it does not have the
- appropriate interfaces or it expects something
- more recent. */
-#ifndef NDEBUG
- Lmid_t ns = dlmargs.map->l_ns;
-#endif
- _dl_close (dlmargs.map);
-
- /* Make sure the namespace has been cleared entirely. */
- assert (GL(dl_ns)[ns]._ns_loaded == NULL);
- assert (GL(dl_ns)[ns]._ns_nloaded == 0);
-
- GL(dl_tls_max_dtv_idx) = tls_idx;
- goto not_loaded;
- }
- }
- }
-
- /* If we have any auditing modules, announce that we already
- have two objects loaded. */
- if (__glibc_unlikely (GLRO(dl_naudit) > 0))
- {
- struct link_map *ls[2] = { main_map, &GL(dl_rtld_map) };
-
- for (unsigned int outer = 0; outer < 2; ++outer)
- {
- struct audit_ifaces *afct = GLRO(dl_audit);
- for (unsigned int cnt = 0; cnt < GLRO(dl_naudit); ++cnt)
- {
- if (afct->objopen != NULL)
- {
- ls[outer]->l_audit[cnt].bindflags
- = afct->objopen (ls[outer], LM_ID_BASE,
- &ls[outer]->l_audit[cnt].cookie);
-
- ls[outer]->l_audit_any_plt
- |= ls[outer]->l_audit[cnt].bindflags != 0;
- }
-
- afct = afct->next;
- }
- }
- }
+ load_audit_modules (main_map);
}
/* Keep track of the currently loaded modules to count how many
@@ -1604,7 +1662,8 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
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;
}
@@ -1619,11 +1678,18 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
if (__glibc_unlikely (preloadlist != NULL))
{
- HP_TIMING_NOW (start);
- npreloads += handle_ld_preload (preloadlist, main_map);
- HP_TIMING_NOW (stop);
- HP_TIMING_DIFF (diff, start, stop);
- HP_TIMING_ACCUM_NT (load_time, diff);
+ RTLD_TIMING_VAR (start);
+ rtld_timer_start (&start);
+ npreloads += handle_preload_list (preloadlist, main_map, "LD_PRELOAD");
+ rtld_timer_accum (&load_time, start);
+ }
+
+ if (__glibc_unlikely (preloadarg != NULL))
+ {
+ RTLD_TIMING_VAR (start);
+ rtld_timer_start (&start);
+ npreloads += handle_preload_list (preloadarg, main_map, "--preload");
+ rtld_timer_accum (&load_time, start);
}
/* There usually is no ld.so.preload file, it should only be used
@@ -1683,7 +1749,8 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
file[file_size - 1] = '\0';
}
- HP_TIMING_NOW (start);
+ RTLD_TIMING_VAR (start);
+ rtld_timer_start (&start);
if (file != problem)
{
@@ -1701,9 +1768,7 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
npreloads += do_preload (p, main_map, preload_file);
}
- HP_TIMING_NOW (stop);
- HP_TIMING_DIFF (diff, start, stop);
- HP_TIMING_ACCUM_NT (load_time, diff);
+ rtld_timer_accum (&load_time, start);
/* We don't need the file anymore. */
__munmap (file, file_size);
@@ -1727,11 +1792,12 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
/* Load all the libraries specified by DT_NEEDED entries. If LD_PRELOAD
specified some libraries to load, these are inserted before the actual
dependencies in the executable's searchlist for symbol resolution. */
- HP_TIMING_NOW (start);
- _dl_map_object_deps (main_map, preloads, npreloads, mode == trace, 0);
- HP_TIMING_NOW (stop);
- HP_TIMING_DIFF (diff, start, stop);
- HP_TIMING_ACCUM_NT (load_time, diff);
+ {
+ RTLD_TIMING_VAR (start);
+ rtld_timer_start (&start);
+ _dl_map_object_deps (main_map, preloads, npreloads, mode == trace, 0);
+ rtld_timer_accum (&load_time, start);
+ }
/* Mark all objects as being in the global scope. */
for (i = main_map->l_searchlist.r_nlist; i > 0; )
@@ -2052,8 +2118,8 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
liblist = (ElfW(Lib) *)
main_map->l_info[ADDRIDX (DT_GNU_LIBLIST)]->d_un.d_ptr;
liblistend = (ElfW(Lib) *)
- ((char *) liblist +
- main_map->l_info[VALIDX (DT_GNU_LIBLISTSZ)]->d_un.d_val);
+ ((char *) liblist
+ + main_map->l_info[VALIDX (DT_GNU_LIBLISTSZ)]->d_un.d_val);
r_list = main_map->l_searchlist.r_list;
r_listend = r_list + main_map->l_searchlist.r_nlist;
@@ -2124,12 +2190,10 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
if (main_map->l_info [ADDRIDX (DT_GNU_CONFLICT)] != NULL)
{
ElfW(Rela) *conflict, *conflictend;
-#ifndef HP_TIMING_NONAVAIL
- hp_timing_t start;
- hp_timing_t stop;
-#endif
- HP_TIMING_NOW (start);
+ RTLD_TIMING_VAR (start);
+ rtld_timer_start (&start);
+
assert (main_map->l_info [VALIDX (DT_GNU_CONFLICTSZ)] != NULL);
conflict = (ElfW(Rela) *)
main_map->l_info [ADDRIDX (DT_GNU_CONFLICT)]->d_un.d_ptr;
@@ -2137,8 +2201,8 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
((char *) conflict
+ main_map->l_info [VALIDX (DT_GNU_CONFLICTSZ)]->d_un.d_val);
_dl_resolve_conflicts (main_map, conflict, conflictend);
- HP_TIMING_NOW (stop);
- HP_TIMING_DIFF (relocate_time, start, stop);
+
+ rtld_timer_stop (&relocate_time, start);
}
@@ -2151,7 +2215,7 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
/* 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
@@ -2166,15 +2230,12 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
know that because it is self-contained). */
int consider_profiling = GLRO(dl_profile) != NULL;
-#ifndef HP_TIMING_NONAVAIL
- hp_timing_t start;
- hp_timing_t stop;
-#endif
/* If we are profiling we also must do lazy reloaction. */
GLRO(dl_lazy) |= consider_profiling;
- HP_TIMING_NOW (start);
+ RTLD_TIMING_VAR (start);
+ rtld_timer_start (&start);
unsigned i = main_map->l_searchlist.r_nlist;
while (i-- > 0)
{
@@ -2199,11 +2260,9 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
/* 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);
}
- HP_TIMING_NOW (stop);
-
- HP_TIMING_DIFF (relocate_time, start, stop);
+ rtld_timer_stop (&relocate_time, start);
/* Now enable profiling if needed. Like the previous call,
this has to go here because the calls it makes should use the
@@ -2246,19 +2305,14 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
re-relocation, we might call a user-supplied function
(e.g. calloc from _dl_relocate_object) that uses TLS data. */
-#ifndef HP_TIMING_NONAVAIL
- hp_timing_t start;
- hp_timing_t stop;
- hp_timing_t add;
-#endif
+ RTLD_TIMING_VAR (start);
+ rtld_timer_start (&start);
- HP_TIMING_NOW (start);
/* Mark the link map as not yet relocated again. */
GL(dl_rtld_map).l_relocated = 0;
_dl_relocate_object (&GL(dl_rtld_map), main_map->l_scope, 0, 0);
- HP_TIMING_NOW (stop);
- HP_TIMING_DIFF (add, start, stop);
- HP_TIMING_ACCUM_NT (relocate_time, add);
+
+ rtld_timer_accum (&relocate_time, start);
}
/* Do any necessary cleanups for the startup OS interface code.
@@ -2280,7 +2334,8 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
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;
}
@@ -2690,44 +2745,51 @@ process_envvars (enum mode *modep)
}
}
+#if HP_TIMING_INLINE
+static void
+print_statistics_item (const char *title, hp_timing_t time,
+ hp_timing_t total)
+{
+ char cycles[HP_TIMING_PRINT_SIZE];
+ HP_TIMING_PRINT (cycles, sizeof (cycles), time);
+
+ char relative[3 * sizeof (hp_timing_t) + 2];
+ char *cp = _itoa ((1000ULL * time) / total, relative + sizeof (relative),
+ 10, 0);
+ /* Sets the decimal point. */
+ char *wp = relative;
+ switch (relative + sizeof (relative) - cp)
+ {
+ case 3:
+ *wp++ = *cp++;
+ /* Fall through. */
+ case 2:
+ *wp++ = *cp++;
+ /* Fall through. */
+ case 1:
+ *wp++ = '.';
+ *wp++ = *cp++;
+ }
+ *wp = '\0';
+ _dl_debug_printf ("%s: %s cycles (%s%%)\n", title, cycles, relative);
+}
+#endif
/* Print the various times we collected. */
static void
__attribute ((noinline))
-print_statistics (hp_timing_t *rtld_total_timep)
+print_statistics (const hp_timing_t *rtld_total_timep)
{
-#ifndef HP_TIMING_NONAVAIL
- char buf[200];
- char *cp;
- char *wp;
-
- /* Total time rtld used. */
- if (HP_SMALL_TIMING_AVAIL)
- {
- HP_TIMING_PRINT (buf, sizeof (buf), *rtld_total_timep);
- _dl_debug_printf ("\nruntime linker statistics:\n"
- " total startup time in dynamic loader: %s\n", buf);
-
- /* Print relocation statistics. */
- char pbuf[30];
- HP_TIMING_PRINT (buf, sizeof (buf), relocate_time);
- cp = _itoa ((1000ULL * relocate_time) / *rtld_total_timep,
- pbuf + sizeof (pbuf), 10, 0);
- wp = pbuf;
- switch (pbuf + sizeof (pbuf) - cp)
- {
- case 3:
- *wp++ = *cp++;
- case 2:
- *wp++ = *cp++;
- case 1:
- *wp++ = '.';
- *wp++ = *cp++;
- }
- *wp = '\0';
- _dl_debug_printf ("\
- time needed for relocation: %s (%s%%)\n", buf, pbuf);
- }
+#if HP_TIMING_INLINE
+ {
+ char cycles[HP_TIMING_PRINT_SIZE];
+ HP_TIMING_PRINT (cycles, sizeof (cycles), *rtld_total_timep);
+ _dl_debug_printf ("\nruntime linker statistics:\n"
+ " total startup time in dynamic loader: %s cycles\n",
+ cycles);
+ print_statistics_item (" time needed for relocation",
+ relocate_time, *rtld_total_timep);
+ }
#endif
unsigned long int num_relative_relocations = 0;
@@ -2768,29 +2830,8 @@ print_statistics (hp_timing_t *rtld_total_timep)
GL(dl_num_cache_relocations),
num_relative_relocations);
-#ifndef HP_TIMING_NONAVAIL
- /* Time spend while loading the object and the dependencies. */
- if (HP_SMALL_TIMING_AVAIL)
- {
- char pbuf[30];
- HP_TIMING_PRINT (buf, sizeof (buf), load_time);
- cp = _itoa ((1000ULL * load_time) / *rtld_total_timep,
- pbuf + sizeof (pbuf), 10, 0);
- wp = pbuf;
- switch (pbuf + sizeof (pbuf) - cp)
- {
- case 3:
- *wp++ = *cp++;
- case 2:
- *wp++ = *cp++;
- case 1:
- *wp++ = '.';
- *wp++ = *cp++;
- }
- *wp = '\0';
- _dl_debug_printf ("\
- time needed to load objects: %s (%s%%)\n",
- buf, pbuf);
- }
+#if HP_TIMING_INLINE
+ print_statistics_item (" time needed to load objects",
+ load_time, *rtld_total_timep);
#endif
}
diff --git a/elf/setup-vdso.h b/elf/setup-vdso.h
index 34b1d5e8c3..62785b98db 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
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 3d3b7e0525..6fa4241c48 100644
--- a/elf/sln.c
+++ b/elf/sln.c
@@ -1,5 +1,5 @@
/* `sln' program to create symbolic links between files.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <error.h>
#include <errno.h>
diff --git a/elf/sotruss-lib.c b/elf/sotruss-lib.c
index f0a7e55599..c55d422ccb 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <error.h>
#include <fcntl.h>
diff --git a/elf/sotruss.sh b/elf/sotruss.sh
index 0231dc9935..86c961832a 100755
--- a/elf/sotruss.sh
+++ b/elf/sotruss.sh
@@ -1,5 +1,5 @@
#! @BASH@
-# Copyright (C) 2011-2018 Free Software Foundation, Inc.
+# 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
@@ -14,7 +14,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
# 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.
-" "2018"
+" "2019"
printf $"Written by %s.\n" "Ulrich Drepper"
exit 0
;;
diff --git a/elf/sprof.c b/elf/sprof.c
index ebd39cb581..7e4225ca86 100644
--- a/elf/sprof.c
+++ b/elf/sprof.c
@@ -1,5 +1,5 @@
/* Read and display shared object profiling data.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <argp.h>
#include <dlfcn.h>
@@ -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
-//<http://www.gnu.org/software/libc/bugs.html>.\n");
+//<https://www.gnu.org/software/libc/bugs.html>.\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\
"),
- "2018");
+ "2019");
fprintf (stream, gettext ("Written by %s.\n"), "Ulrich Drepper");
}
@@ -1354,8 +1354,8 @@ generate_call_graph (struct profdata *profdata)
? sortsym[runp->idx]->ticks * tick_unit : 0.0),
0.0, /* FIXME: what's time for the children, recursive */
runp->count, sortsym[cnt]->calls,
- (runp->idx != (size_t) -1l ?
- sortsym[runp->idx]->name : "<UNKNOWN>"));
+ (runp->idx != (size_t) -1l
+ ? sortsym[runp->idx]->name : "<UNKNOWN>"));
if (runp->idx != (size_t) -1l)
printf (" [%Zd]", runp->idx);
diff --git a/elf/static-stubs.c b/elf/static-stubs.c
index 0d3ea2f971..991ffa069e 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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 fea9eefe72..01111f7992 100644
--- a/elf/tlsdeschtab.h
+++ b/elf/tlsdeschtab.h
@@ -1,5 +1,5 @@
/* Hash table for TLS descriptors.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Alexandre Oliva <aoliva@redhat.com>
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#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 ee525489d2..df74e22294 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
diff --git a/elf/tst-absolute-sym-lib.c b/elf/tst-absolute-sym-lib.c
index 912cb0048a..2493d76ca5 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 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
extern char absolute;
diff --git a/elf/tst-absolute-sym-lib.lds b/elf/tst-absolute-sym-lib.lds
index d4a4128514..e71d53e2a3 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 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
"absolute" = 0x55aa;
diff --git a/elf/tst-absolute-sym.c b/elf/tst-absolute-sym.c
index 111491d159..4af1554929 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 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/check.h>
#include <support/support.h>
diff --git a/elf/tst-absolute-zero-lib.c b/elf/tst-absolute-zero-lib.c
index fba2af0bc5..72d08be393 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 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
extern char absolute;
diff --git a/elf/tst-absolute-zero.c b/elf/tst-absolute-zero.c
index 6b998ba69e..57e6f79319 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 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/check.h>
#include <support/support.h>
diff --git a/elf/tst-align.c b/elf/tst-align.c
index d3ff89e0b4..5e8af45622 100644
--- a/elf/tst-align.c
+++ b/elf/tst-align.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stdio.h>
diff --git a/elf/tst-align2.c b/elf/tst-align2.c
index 9f254fa8a5..d7c6b3e996 100644
--- a/elf/tst-align2.c
+++ b/elf/tst-align2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdbool.h>
diff --git a/elf/tst-alignmod.c b/elf/tst-alignmod.c
index fc06018066..ccceb5ecbe 100644
--- a/elf/tst-alignmod.c
+++ b/elf/tst-alignmod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <tst-stack-align.h>
diff --git a/elf/tst-alignmod2.c b/elf/tst-alignmod2.c
index 02e332f59a..4e45f83b95 100644
--- a/elf/tst-alignmod2.c
+++ b/elf/tst-alignmod2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdbool.h>
#include <stdio.h>
diff --git a/elf/tst-audit11.c b/elf/tst-audit11.c
index 2aa9b55ccf..9a4bebd227 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stdio.h>
diff --git a/elf/tst-audit11mod1.c b/elf/tst-audit11mod1.c
index 04dce643a0..8d24e5eafb 100644
--- a/elf/tst-audit11mod1.c
+++ b/elf/tst-audit11mod1.c
@@ -1,5 +1,5 @@
/* DSO directly opened by tst-audit11.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
extern int f2 (void);
int
diff --git a/elf/tst-audit11mod2.c b/elf/tst-audit11mod2.c
index 0fa2d2b932..444cc6c7c8 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
int
f2 (void)
diff --git a/elf/tst-audit11mod2.map b/elf/tst-audit11mod2.map
index a27af6aeed..7b35c88769 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
V1 {
global: f2;
diff --git a/elf/tst-audit12.c b/elf/tst-audit12.c
index 3ee3f14219..1320c0d4ad 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stdio.h>
diff --git a/elf/tst-audit12mod1.c b/elf/tst-audit12mod1.c
index 1510cda41a..884c9801b1 100644
--- a/elf/tst-audit12mod1.c
+++ b/elf/tst-audit12mod1.c
@@ -1,5 +1,5 @@
/* DSO directly opened by tst-audit12.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
extern int f2 (void);
int
diff --git a/elf/tst-audit12mod2.c b/elf/tst-audit12mod2.c
index d3729d276c..cea9f898e5 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
int
f2 (void)
diff --git a/elf/tst-audit12mod2.map b/elf/tst-audit12mod2.map
index 006f3622c3..eeaca9a598 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
V1 {
global: f2;
diff --git a/elf/tst-audit12mod3.c b/elf/tst-audit12mod3.c
index 9fddec9c0e..82d7501ec8 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
int
f2 (void)
diff --git a/elf/tst-audit13.c b/elf/tst-audit13.c
new file mode 100644
index 0000000000..08d6d0c550
--- /dev/null
+++ b/elf/tst-audit13.c
@@ -0,0 +1,28 @@
+/* Check for invalid audit version (BZ#24122).
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdio.h>
+
+static int
+do_test (void)
+{
+ puts ("plt call");
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/elf/tst-audit13mod1.c b/elf/tst-audit13mod1.c
new file mode 100644
index 0000000000..312f9a4a09
--- /dev/null
+++ b/elf/tst-audit13mod1.c
@@ -0,0 +1,93 @@
+/* Check for invalid audit version (BZ#24122).
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <link.h>
+#include <stdlib.h>
+
+unsigned int
+la_version (unsigned int version)
+{
+ /* The audit specification says that a version of 0 or a version
+ greater than any version supported by the dynamic loader shall
+ cause the module to be ignored. */
+ return 0;
+}
+
+void
+la_activity (uintptr_t *cookie, unsigned int flag)
+{
+ exit (EXIT_FAILURE);
+}
+
+char *
+la_objsearch (const char *name, uintptr_t *cookie, unsigned int flag)
+{
+ exit (EXIT_FAILURE);
+}
+
+unsigned int
+la_objopen (struct link_map *map, Lmid_t lmid, uintptr_t * cookie)
+{
+ exit (EXIT_FAILURE);
+}
+
+void
+la_preinit (uintptr_t * cookie)
+{
+ exit (EXIT_FAILURE);
+}
+
+uintptr_t
+#if __ELF_NATIVE_CLASS == 32
+la_symbind32 (Elf32_Sym *sym, unsigned int ndx, uintptr_t *refcook,
+ uintptr_t *defcook, unsigned int *flags, const char *symname)
+#else
+la_symbind64 (Elf64_Sym *sym, unsigned int ndx, uintptr_t *refcook,
+ uintptr_t *defcook, unsigned int *flags, const char *symname)
+#endif
+{
+ exit (EXIT_FAILURE);
+}
+
+unsigned int
+la_objclose (uintptr_t * cookie)
+{
+ exit (EXIT_FAILURE);
+}
+
+#include <tst-audit.h>
+#if (!defined (pltenter) || !defined (pltexit) || !defined (La_regs) \
+ || !defined (La_retval) || !defined (int_retval))
+# error "architecture specific code needed in sysdeps/CPU/tst-audit.h"
+#endif
+
+ElfW(Addr)
+pltenter (ElfW(Sym) *sym, unsigned int ndx, uintptr_t *refcook,
+ uintptr_t *defcook, La_regs *regs, unsigned int *flags,
+ const char *symname, long int *framesizep)
+{
+ exit (EXIT_FAILURE);
+}
+
+unsigned int
+pltexit (ElfW(Sym) *sym, unsigned int ndx, uintptr_t *refcook,
+ uintptr_t *defcook, const La_regs *inregs, La_retval *outregs,
+ const char *symname)
+{
+ exit (EXIT_FAILURE);
+}
diff --git a/elf/tst-auditmany.c b/elf/tst-auditmany.c
new file mode 100644
index 0000000000..9d68105b9e
--- /dev/null
+++ b/elf/tst-auditmany.c
@@ -0,0 +1,26 @@
+/* Check cookie initialization for many auditors. Main program.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+/* 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..d1d89e0843
--- /dev/null
+++ b/elf/tst-auditmanymod.h
@@ -0,0 +1,64 @@
+/* Check cookie initialization for many auditors. Auditor template.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+/* The macro MOD must be defined to the number of this auditor (an
+ integer) before including this file. */
+
+#include <link.h>
+#include <stdio.h>
+#include <unistd.h>
+
+/* 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/elf/tst-auditmanymod1.c b/elf/tst-auditmanymod1.c
new file mode 100644
index 0000000000..c7de49d446
--- /dev/null
+++ b/elf/tst-auditmanymod1.c
@@ -0,0 +1,20 @@
+/* Check cookie initialization for many auditors. Auditor 1.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#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..4254f022a1
--- /dev/null
+++ b/elf/tst-auditmanymod2.c
@@ -0,0 +1,20 @@
+/* Check cookie initialization for many auditors. Auditor 2.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#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..ee90f4eb3a
--- /dev/null
+++ b/elf/tst-auditmanymod3.c
@@ -0,0 +1,20 @@
+/* Check cookie initialization for many auditors. Auditor 3.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#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..6379fa1d55
--- /dev/null
+++ b/elf/tst-auditmanymod4.c
@@ -0,0 +1,20 @@
+/* Check cookie initialization for many auditors. Auditor 4.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#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..17c0f617aa
--- /dev/null
+++ b/elf/tst-auditmanymod5.c
@@ -0,0 +1,20 @@
+/* Check cookie initialization for many auditors. Auditor 5.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#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..86bc6801a4
--- /dev/null
+++ b/elf/tst-auditmanymod6.c
@@ -0,0 +1,20 @@
+/* Check cookie initialization for many auditors. Auditor 6.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#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..92b0bf6006
--- /dev/null
+++ b/elf/tst-auditmanymod7.c
@@ -0,0 +1,20 @@
+/* Check cookie initialization for many auditors. Auditor 7.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#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..d42f884d2f
--- /dev/null
+++ b/elf/tst-auditmanymod8.c
@@ -0,0 +1,20 @@
+/* Check cookie initialization for many auditors. Auditor 8.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#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..6bee81d69c
--- /dev/null
+++ b/elf/tst-auditmanymod9.c
@@ -0,0 +1,20 @@
+/* Check cookie initialization for many auditors. Auditor 9.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#define MOD 9
+#include "tst-auditmanymod.h"
diff --git a/elf/tst-auditmod11.c b/elf/tst-auditmod11.c
index 81f63b4a4b..f7c9002c85 100644
--- a/elf/tst-auditmod11.c
+++ b/elf/tst-auditmod11.c
@@ -1,5 +1,5 @@
/* Audit module for tst-audit11.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <link.h>
#include <stdio.h>
diff --git a/elf/tst-auditmod12.c b/elf/tst-auditmod12.c
index 94f4d738c1..216b7e53d8 100644
--- a/elf/tst-auditmod12.c
+++ b/elf/tst-auditmod12.c
@@ -1,5 +1,5 @@
/* Audit module for tst-audit12.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <link.h>
#include <stdio.h>
diff --git a/elf/tst-auxv.c b/elf/tst-auxv.c
index cdb65f039e..cd1c47e46f 100644
--- a/elf/tst-auxv.c
+++ b/elf/tst-auxv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2013-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <elf.h>
#include <errno.h>
diff --git a/elf/tst-big-note-lib.S b/elf/tst-big-note-lib.S
index 6b514a03cc..2762a8f1f4 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 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,13 +14,19 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This creates a .so with 8MiB PT_NOTE segment.
On a typical Linux system with 8MiB "ulimit -s", that was enough
to trigger stack overflow in open_verify. */
+#define NOTE_SIZE 8*1024*1024
+
.pushsection .note.big,"a"
-.balign 4
-.fill 8*1024*1024, 1, 0
+ .balign 4
+ .long 5 /* n_namesz. Length of "GLIBC". */
+ .long NOTE_SIZE /* n_descsz. */
+ .long 0 /* n_type. */
+ .ascii "GLIBC\0\0\0" /* Name and alignment to four bytes. */
+ .fill NOTE_SIZE, 1, 0
.popsection
diff --git a/elf/tst-big-note.c b/elf/tst-big-note.c
index fcd2b0ed82..2aab0edaa9 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 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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
new file mode 100644
index 0000000000..10cab4954a
--- /dev/null
+++ b/elf/tst-create_format1.c
@@ -0,0 +1,103 @@
+/* Check _dl_exception_create_format.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ldsodefs.h>
+#include <array_length.h>
+
+#include <support/check.h>
+#include <support/xunistd.h>
+#include <support/capture_subprocess.h>
+
+#define TEST(es, objn, fmt, ...) \
+ ({ \
+ struct dl_exception exception; \
+ _dl_exception_create_format (&exception, objn, fmt, __VA_ARGS__); \
+ TEST_COMPARE_STRING (exception.objname, objn == NULL ? "" : objn); \
+ TEST_COMPARE_STRING (exception.errstring, es); \
+ _dl_exception_free (&exception); \
+ })
+
+static void
+do_test_invalid_conversion (void *closure)
+{
+ TEST ("(null)", NULL, "%p", NULL);
+}
+
+/* Exit status after abnormal termination. */
+static int invalid_status;
+
+static void
+init_invalid_status (void)
+{
+ pid_t pid = xfork ();
+ if (pid == 0)
+ _exit (127);
+ xwaitpid (pid, &invalid_status, 0);
+ if (WIFEXITED (invalid_status))
+ invalid_status = WEXITSTATUS (invalid_status);
+}
+
+static int
+do_test (void)
+{
+ init_invalid_status ();
+
+ TEST ("test", NULL, "%s", "test");
+ TEST ("test-test", NULL, "%s-test", "test");
+ TEST ("test", "test", "%s", "test");
+ TEST ("test-test", "test", "%s-test", "test");
+
+ TEST ("test%", NULL, "%s%%", "test");
+ TEST ("test%-test", NULL, "%s%%-test", "test");
+ TEST ("test%", "test", "%s%%", "test");
+ TEST ("test%-test", "test", "%s%%-test", "test");
+
+ TEST ("0000007b", NULL, "%x", 123);
+ TEST ("0000007b-test", NULL, "%x-test", 123);
+ TEST ("0000007b", "test", "%x", 123);
+ TEST ("0000007b-test", "test", "%x-test", 123);
+
+#define TEST_LONG(es, objn, fmt, ...) \
+ ({ \
+ if (sizeof (int) == sizeof (long int)) \
+ TEST (es, objn, fmt, __VA_ARGS__); \
+ else \
+ TEST ("ffffffff" es, objn, fmt, __VA_ARGS__); \
+ })
+
+ TEST_LONG ("fffffffd", NULL, "%lx", (long int)~2ul);
+ TEST_LONG ("fffffffd-test", NULL, "%lx-test", (long int)~2ul);
+ TEST_LONG ("fffffffd", "test", "%lx", (long int)~2ul);
+ TEST_LONG ("fffffffd-test", "test", "%lx-test", (long int)~2ul);
+
+ TEST_LONG ("fffffffe", NULL, "%zx", (size_t)~1ul);
+ TEST_LONG ("fffffffe-test", NULL, "%zx-test", (size_t)~1ul);
+ TEST_LONG ("fffffffe", "test", "%zx", (size_t)~1ul);
+ TEST_LONG ("fffffffe-test", "test", "%zx-test", (size_t)~1ul);
+
+ struct support_capture_subprocess result;
+ result = support_capture_subprocess (do_test_invalid_conversion, NULL);
+ support_capture_subprocess_check (&result, "dl-exception",
+ invalid_status, sc_allow_stderr);
+ TEST_COMPARE_STRING (result.err.buffer,
+ "Fatal error: invalid format in exception string\n");
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/elf/tst-debug1.c b/elf/tst-debug1.c
index 6d3d8baf05..144c19b7e0 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stdio.h>
diff --git a/elf/tst-dl-iter-static.c b/elf/tst-dl-iter-static.c
index 4df1edd191..15dcefd83b 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <link.h>
diff --git a/elf/tst-dlmodcount.c b/elf/tst-dlmodcount.c
index 062530637c..2e30c7d0a8 100644
--- a/elf/tst-dlmodcount.c
+++ b/elf/tst-dlmodcount.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Mosberger <davidm@hpl.hp.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <link.h>
#include <stddef.h>
diff --git a/elf/tst-dlopen-aout.c b/elf/tst-dlopen-aout.c
deleted file mode 100644
index 9038e2096a..0000000000
--- a/elf/tst-dlopen-aout.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/* Test case for BZ #16634.
-
- Verify that incorrectly dlopen()ing an executable without
- __RTLD_OPENEXEC does not cause assertion in ld.so.
-
- Copyright (C) 2014-2018 Free Software 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
- <http://www.gnu.org/licenses/>.
-
- Note: this test currently only fails when glibc is configured with
- --enable-hardcoded-path-in-tests. */
-
-#include <assert.h>
-#include <dlfcn.h>
-#include <stdio.h>
-#include <pthread.h>
-
-__thread int x;
-
-void *
-fn (void *p)
-{
- return p;
-}
-
-static int
-do_test (int argc, char *argv[])
-{
- int j;
-
- for (j = 0; j < 100; ++j)
- {
- pthread_t thr;
- void *p;
- int rc;
-
- p = dlopen (argv[0], RTLD_LAZY);
- if (p != NULL)
- {
- fprintf (stderr, "dlopen unexpectedly succeeded\n");
- return 1;
- }
- rc = pthread_create (&thr, NULL, fn, NULL);
- assert (rc == 0);
-
- rc = pthread_join (thr, NULL);
- assert (rc == 0);
- }
-
- return 0;
-}
-
-#define TEST_FUNCTION_ARGV do_test
-#include <support/test-driver.c>
diff --git a/elf/tst-dlopen-nodelete-reloc-mod1.c b/elf/tst-dlopen-nodelete-reloc-mod1.c
new file mode 100644
index 0000000000..397d60a2d5
--- /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 Free Software 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
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdbool.h>
+#include <stdio.h>
+#include <unistd.h>
+
+/* 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/elf/tst-dlopen-nodelete-reloc-mod10.c b/elf/tst-dlopen-nodelete-reloc-mod10.c
new file mode 100644
index 0000000000..30748b73ec
--- /dev/null
+++ b/elf/tst-dlopen-nodelete-reloc-mod10.c
@@ -0,0 +1,41 @@
+/* Helper module to load tst-dlopen-nodelete-reloc-mod11.so.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <dlfcn.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <unistd.h>
+
+static void *handle;
+
+static void __attribute__ ((constructor))
+init (void)
+{
+ 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);
+}
diff --git a/elf/tst-dlopen-nodelete-reloc-mod11.cc b/elf/tst-dlopen-nodelete-reloc-mod11.cc
new file mode 100644
index 0000000000..48c910403e
--- /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 Free Software 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
+ <https://www.gnu.org/licenses/>. */
+
+#include "tst-dlopen-nodelete-reloc.h"
+
+#include <stdbool.h>
+#include <stdio.h>
+#include <unistd.h>
+
+/* 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..5c093fd02d
--- /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 Free Software 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
+ <https://www.gnu.org/licenses/>. */
+
+#include "tst-dlopen-nodelete-reloc.h"
+
+#include <stdbool.h>
+#include <stdio.h>
+#include <unistd.h>
+
+/* 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..caf4fd1cc9
--- /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 Free Software 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
+ <https://www.gnu.org/licenses/>. */
+
+#include "tst-dlopen-nodelete-reloc.h"
+
+#include <stdbool.h>
+#include <stdio.h>
+#include <unistd.h>
+
+/* 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..5d338481a3
--- /dev/null
+++ b/elf/tst-dlopen-nodelete-reloc-mod13.h
@@ -0,0 +1,24 @@
+/* Inline function which produces a unique symbol.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+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..e67621a2a2
--- /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 Free Software 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
+ <https://www.gnu.org/licenses/>. */
+
+#include "tst-dlopen-nodelete-reloc.h"
+
+#include <stdbool.h>
+#include <stdio.h>
+#include <unistd.h>
+
+/* 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..ead362bfdb
--- /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 Free Software 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
+ <https://www.gnu.org/licenses/>. */
+
+#include "tst-dlopen-nodelete-reloc.h"
+
+#include <stdbool.h>
+#include <stdio.h>
+#include <unistd.h>
+
+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/elf/tst-dlopen-nodelete-reloc-mod16.c b/elf/tst-dlopen-nodelete-reloc-mod16.c
new file mode 100644
index 0000000000..fa2ed1461b
--- /dev/null
+++ b/elf/tst-dlopen-nodelete-reloc-mod16.c
@@ -0,0 +1,27 @@
+/* Object with an undefined symbol to trigger a relocation failure.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+/* The reference to undefined_mod16 triggers a relocation failure. */
+
+extern int undefined_mod16;
+
+int
+global_function_mod16 (void)
+{
+ 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..426562edd9
--- /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 Free Software 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
+ <https://www.gnu.org/licenses/>. */
+
+/* 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..81ea8e5af2
--- /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 Free Software 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
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdbool.h>
+#include <stdio.h>
+#include <unistd.h>
+
+/* 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..d33f4ec763
--- /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 Free Software 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
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdbool.h>
+#include <stdio.h>
+#include <unistd.h>
+
+/* 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..7e6633aebb
--- /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 Free Software 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
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdbool.h>
+#include <stdio.h>
+#include <unistd.h>
+
+/* 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..22aa16f855
--- /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 Free Software 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
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdbool.h>
+#include <stdio.h>
+#include <unistd.h>
+
+/* 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..180f5b5842
--- /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 Free Software 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
+ <https://www.gnu.org/licenses/>. */
+
+#include "tst-dlopen-nodelete-reloc.h"
+
+#include <stdbool.h>
+#include <stdio.h>
+#include <unistd.h>
+
+/* 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..c85e7c991b
--- /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 Free Software 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
+ <https://www.gnu.org/licenses/>. */
+
+#include "tst-dlopen-nodelete-reloc.h"
+
+#include <stdbool.h>
+#include <stdio.h>
+#include <unistd.h>
+
+/* 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/elf/tst-dlopen-nodelete-reloc-mod8.c b/elf/tst-dlopen-nodelete-reloc-mod8.c
new file mode 100644
index 0000000000..ebb1c35fab
--- /dev/null
+++ b/elf/tst-dlopen-nodelete-reloc-mod8.c
@@ -0,0 +1,41 @@
+/* Helper module to load tst-dlopen-nodelete-reloc-mod9.so.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <dlfcn.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <unistd.h>
+
+static void *handle;
+
+static void __attribute__ ((constructor))
+init (void)
+{
+ handle = dlopen ("tst-dlopen-nodelete-reloc-mod9.so", RTLD_NOW);
+ if (handle == NULL)
+ {
+ printf ("error: dlopen in module 8: %s\n", dlerror ());
+ _exit (1);
+ }
+}
+
+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..06fb49cdf7
--- /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 Free Software 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
+ <https://www.gnu.org/licenses/>. */
+
+#include "tst-dlopen-nodelete-reloc.h"
+
+#include <stdbool.h>
+#include <stdio.h>
+#include <unistd.h>
+
+/* 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..291ac9eb83
--- /dev/null
+++ b/elf/tst-dlopen-nodelete-reloc.c
@@ -0,0 +1,179 @@
+/* Test interactions of dlopen, NODELETE, and relocations.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+/* 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 <stdio.h>
+#include <string.h>
+#include <stdbool.h>
+#include <support/check.h>
+#include <support/xdlfcn.h>
+
+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 <support/test-driver.c>
diff --git a/elf/tst-dlopen-nodelete-reloc.h b/elf/tst-dlopen-nodelete-reloc.h
new file mode 100644
index 0000000000..8844de6226
--- /dev/null
+++ b/elf/tst-dlopen-nodelete-reloc.h
@@ -0,0 +1,35 @@
+/* Template to produce unique symbols.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+/* 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 <int modid>
+struct unique_symbol
+{
+ static int value;
+};
+
+template <int modid>
+int unique_symbol<modid>::value;
diff --git a/elf/tst-dlopen-pie.c b/elf/tst-dlopen-pie.c
new file mode 100644
index 0000000000..2179322a94
--- /dev/null
+++ b/elf/tst-dlopen-pie.c
@@ -0,0 +1,49 @@
+/* dlopen test for PIE objects.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+/* This test attempts to open the (otherwise unrelated) PIE test
+ program elf/tst-pie1 and expects the attempt to fail. */
+
+#include <dlfcn.h>
+#include <stddef.h>
+#include <string.h>
+#include <support/check.h>
+#include <support/support.h>
+
+static void
+test_mode (int mode)
+{
+ char *pie_path = xasprintf ("%s/elf/tst-pie1", support_objdir_root);
+ if (dlopen (pie_path, mode) != NULL)
+ FAIL_EXIT1 ("dlopen succeeded unexpectedly (%d)", mode);
+ const char *message = dlerror ();
+ const char *expected
+ = "cannot dynamically load position-independent executable";
+ if (strstr (message, expected) == NULL)
+ FAIL_EXIT1 ("unexpected error message (mode %d): %s", mode, message);
+}
+
+static int
+do_test (void)
+{
+ test_mode (RTLD_LAZY);
+ test_mode (RTLD_NOW);
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/elf/tst-dlopen-self-container.c b/elf/tst-dlopen-self-container.c
new file mode 100644
index 0000000000..b1db238dec
--- /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-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
+ <https://www.gnu.org/licenses/>. */
+
+#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..855bccc5b5
--- /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-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
+ <https://www.gnu.org/licenses/>. */
+
+#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..310f1b09d4
--- /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-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <dlfcn.h>
+#include <stdlib.h>
+#include <string.h>
+#include <support/check.h>
+
+/* 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 <support/test-driver.c>
diff --git a/elf/tst-dlopen-tlsmodid-container.c b/elf/tst-dlopen-tlsmodid-container.c
new file mode 100644
index 0000000000..7cf82bc13f
--- /dev/null
+++ b/elf/tst-dlopen-tlsmodid-container.c
@@ -0,0 +1,39 @@
+/* Test case for BZ #16634. Container version.
+ Copyright (C) 2014-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
+ <https://www.gnu.org/licenses/>. */
+
+/* This test uses the iconv program as the test binary. */
+
+#include <stdlib.h>
+#include <support/support.h>
+
+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);
+}
+
+#define TST_DLOPEN_TLSMODID_PATH iconv_path
+#include "tst-dlopen-tlsmodid.h"
diff --git a/elf/tst-dlopen-tlsmodid-pie.c b/elf/tst-dlopen-tlsmodid-pie.c
new file mode 100644
index 0000000000..db1176b12c
--- /dev/null
+++ b/elf/tst-dlopen-tlsmodid-pie.c
@@ -0,0 +1,20 @@
+/* Test case for BZ #16634. PIE version.
+ Copyright (C) 2014-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
+ <http://www.gnu.org/licenses/>. */
+
+#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..165edcb552
--- /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-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
+ <https://www.gnu.org/licenses/>. */
+
+#define TST_DLOPEN_TLSMODID_PATH "tst-dlopen-self"
+#include "tst-dlopen-tlsmodid.h"
diff --git a/elf/tst-dlopen-tlsmodid.h b/elf/tst-dlopen-tlsmodid.h
new file mode 100644
index 0000000000..c747cb1491
--- /dev/null
+++ b/elf/tst-dlopen-tlsmodid.h
@@ -0,0 +1,87 @@
+/* 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, and that it
+ actually results in an error.
+
+ Copyright (C) 2014-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
+ <https://www.gnu.org/licenses/>. */
+
+/* Before including this file, the macro TST_DLOPEN_TLSMODID_PATH must
+ be defined, to specify the path used for the open operation. */
+
+#include <dlfcn.h>
+#include <pthread.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <support/check.h>
+#include <support/support.h>
+#include <support/xthread.h>
+
+__thread int x;
+
+void *
+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[])
+{
+ int j;
+
+ for (j = 0; j < 100; ++j)
+ {
+ pthread_t thr;
+
+ 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. */
+ thr = xpthread_create (NULL, fn, NULL);
+ xpthread_join (thr);
+ }
+
+ check_dlopen_failure ();
+
+ return 0;
+}
+
+#define TEST_FUNCTION_ARGV do_test
+#include <support/test-driver.c>
diff --git a/elf/tst-dlopenfail.c b/elf/tst-dlopenfail.c
new file mode 100644
index 0000000000..ce3140c899
--- /dev/null
+++ b/elf/tst-dlopenfail.c
@@ -0,0 +1,79 @@
+/* Test dlopen rollback after failures involving NODELETE objects (bug 20839).
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <dlfcn.h>
+#include <errno.h>
+#include <gnu/lib-names.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <string.h>
+#include <support/check.h>
+#include <support/xdlfcn.h>
+
+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 <support/test-driver.c>
diff --git a/elf/tst-dlopenfaillinkmod.c b/elf/tst-dlopenfaillinkmod.c
new file mode 100644
index 0000000000..3b14b02bc9
--- /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 Free Software 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
+ <https://www.gnu.org/licenses/>. */
diff --git a/elf/tst-dlopenfailmod1.c b/elf/tst-dlopenfailmod1.c
new file mode 100644
index 0000000000..6ef4882989
--- /dev/null
+++ b/elf/tst-dlopenfailmod1.c
@@ -0,0 +1,36 @@
+/* Module which depends on two modules: one NODELETE, one missing.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+/* Note: Due to the missing second module, this object cannot be
+ loaded at run time. */
+
+#include <pthread.h>
+#include <stdio.h>
+#include <unistd.h>
+
+/* 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..7d600386c1
--- /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 Free Software 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
+ <https://www.gnu.org/licenses/>. */
+
+#include <pthread.h>
+#include <stdio.h>
+
+/* 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-dlopenrpath.c b/elf/tst-dlopenrpath.c
index c1cf86fb51..1259f8494f 100644
--- a/elf/tst-dlopenrpath.c
+++ b/elf/tst-dlopenrpath.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <errno.h>
diff --git a/elf/tst-dlopenrpathmod.c b/elf/tst-dlopenrpathmod.c
index 3a29d84676..082b789400 100644
--- a/elf/tst-dlopenrpathmod.c
+++ b/elf/tst-dlopenrpathmod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stdio.h>
diff --git a/elf/tst-dlsym-error.c b/elf/tst-dlsym-error.c
index b4094c760a..5dbe868b7a 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <gnu/lib-names.h>
diff --git a/elf/tst-env-setuid-tunables.c b/elf/tst-env-setuid-tunables.c
index d7c4f0d574..45c4ac7d0e 100644
--- a/elf/tst-env-setuid-tunables.c
+++ b/elf/tst-env-setuid-tunables.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2017-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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 183a6dd133..535376d133 100644
--- a/elf/tst-env-setuid.c
+++ b/elf/tst-env-setuid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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..2670bd1a94
--- /dev/null
+++ b/elf/tst-finilazyfailmod.c
@@ -0,0 +1,27 @@
+/* Helper module for tst-initfinilazyfail: lazy binding failure in destructor.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+/* 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 e6f98e64be..a0137b9831 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
diff --git a/elf/tst-gnu2-tls1mod.c b/elf/tst-gnu2-tls1mod.c
index 190b9ad1c9..9873e89c17 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
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..d767c1f1c1
--- /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 Free Software 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
+ <https://www.gnu.org/licenses/>. */
+
+/* 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..3389de273f
--- /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 Free Software 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
+ <https://www.gnu.org/licenses/>. */
+
+/* The construct below is expected to produce an IRELATIVE relocation
+ with an IFUNC resolver that crashes. ldd should not performs such
+ relocations. */
+
+#include <config.h>
+
+#ifdef HAVE_GCC_IFUNC
+
+# include <stddef.h>
+
+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
new file mode 100644
index 0000000000..369de15036
--- /dev/null
+++ b/elf/tst-ifunc-textrel.c
@@ -0,0 +1,45 @@
+/* Check DT_TEXTREL/DF_TEXTREL support with ifunc.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdint.h>
+
+/* Force a text relocation in the object. */
+static const uintptr_t
+address __attribute__((section(".text"))) = (uintptr_t) &address;
+
+static uintptr_t
+foo_impl (void)
+{
+ return address;
+}
+
+void *
+__attribute__((noinline))
+foo (void)
+{
+ return (void*) foo_impl;
+}
+__asm__ (".type foo, %gnu_indirect_function");
+
+static int
+do_test (void)
+{
+ return (uintptr_t) foo () != 0 ? 0 : 1;
+}
+
+#include <support/test-driver.c>
diff --git a/elf/tst-initfinilazyfail.c b/elf/tst-initfinilazyfail.c
new file mode 100644
index 0000000000..9b4a3d0c0f
--- /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 Free Software 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
+ <https://www.gnu.org/licenses/>. */
+
+#include <dlfcn.h>
+#include <string.h>
+#include <support/capture_subprocess.h>
+#include <support/check.h>
+#include <support/xdlfcn.h>
+
+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 <support/test-driver.c>
diff --git a/elf/tst-initlazyfailmod.c b/elf/tst-initlazyfailmod.c
new file mode 100644
index 0000000000..36348b58d6
--- /dev/null
+++ b/elf/tst-initlazyfailmod.c
@@ -0,0 +1,27 @@
+/* Helper module for tst-initfinilazyfail: lazy binding failure in constructor.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+/* 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 612bfc5814..7c780e5bad 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <signal.h>
diff --git a/elf/tst-latepthreadmod.c b/elf/tst-latepthreadmod.c
index c41b1be7ce..54669a8f05 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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 fedc2d7b03..518fb45c0e 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-2018 Free Software Foundation, Inc.
+# Copyright (C) 2000-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
@@ -15,7 +15,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
set -ex
diff --git a/elf/tst-ldconfig-bad-aux-cache.c b/elf/tst-ldconfig-bad-aux-cache.c
new file mode 100644
index 0000000000..d48d3f0e93
--- /dev/null
+++ b/elf/tst-ldconfig-bad-aux-cache.c
@@ -0,0 +1,112 @@
+/* Test ldconfig does not segfault when aux-cache is corrupted (Bug 18093).
+ 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 <https://www.gnu.org/licenses/>. */
+
+/* This test does the following:
+ Run ldconfig to create the caches.
+ Corrupt the caches.
+ Run ldconfig again.
+ At each step we verify that ldconfig does not crash. */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <errno.h>
+#include <sys/wait.h>
+#include <ftw.h>
+#include <stdint.h>
+
+#include <support/capture_subprocess.h>
+#include <support/check.h>
+#include <support/support.h>
+#include <support/xunistd.h>
+
+#include <dirent.h>
+
+static int
+display_info (const char *fpath, const struct stat *sb,
+ int tflag, struct FTW *ftwbuf)
+{
+ printf ("info: %-3s %2d %7jd %-40s %d %s\n",
+ (tflag == FTW_D) ? "d" : (tflag == FTW_DNR) ? "dnr" :
+ (tflag == FTW_DP) ? "dp" : (tflag == FTW_F) ? "f" :
+ (tflag == FTW_NS) ? "ns" : (tflag == FTW_SL) ? "sl" :
+ (tflag == FTW_SLN) ? "sln" : "???",
+ ftwbuf->level, (intmax_t) sb->st_size,
+ fpath, ftwbuf->base, fpath + ftwbuf->base);
+ /* To tell nftw to continue. */
+ 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.
+ We want ldconfig not to crash, and it should be able to do so by
+ computing the expected size of the file (bug 18093). */
+static int
+do_test (void)
+{
+ char *prog = xasprintf ("%s/ldconfig", support_install_rootsbindir);
+ char *args[] = { prog, NULL };
+ const char *path = "/var/cache/ldconfig/aux-cache";
+ struct stat64 fs;
+ long int size, new_size, i;
+
+ /* Create the needed directories. */
+ xmkdirp ("/var/cache/ldconfig", 0777);
+
+ /* 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--)
+ {
+ 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);
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/elf/tst-ldconfig-bad-aux-cache.root/etc/ld.so.conf b/elf/tst-ldconfig-bad-aux-cache.root/etc/ld.so.conf
new file mode 100644
index 0000000000..e1e74dbda2
--- /dev/null
+++ b/elf/tst-ldconfig-bad-aux-cache.root/etc/ld.so.conf
@@ -0,0 +1,2 @@
+# This file was created to suppress a warning from ldconfig:
+# /sbin/ldconfig: Warning: ignoring configuration file that cannot be opened: /etc/ld.so.conf: No such file or directory
diff --git a/elf/tst-ldconfig-bad-aux-cache.root/postclean.req b/elf/tst-ldconfig-bad-aux-cache.root/postclean.req
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/elf/tst-ldconfig-bad-aux-cache.root/postclean.req
diff --git a/elf/tst-libc_dlvsym-dso.c b/elf/tst-libc_dlvsym-dso.c
index d74c1ead61..d4464daee9 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 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "tst-libc_dlvsym.h"
diff --git a/elf/tst-libc_dlvsym-static.c b/elf/tst-libc_dlvsym-static.c
index 955f28d754..3bcc5ff1d7 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 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xdlfcn.h>
diff --git a/elf/tst-libc_dlvsym.c b/elf/tst-libc_dlvsym.c
index 864db4ee6a..bb430cca6b 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 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "tst-libc_dlvsym.h"
diff --git a/elf/tst-libc_dlvsym.h b/elf/tst-libc_dlvsym.h
index 6b1d8d5b3a..36f831028c 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 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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 d0f2592e67..8860cd249c 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <pthread.h>
diff --git a/elf/tst-main1.c b/elf/tst-main1.c
index ab0eaea01b..e7907b5563 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This is empty. */
diff --git a/elf/tst-main1mod.c b/elf/tst-main1mod.c
index a40f628c22..6a660b19cc 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
static int
do_test (void)
diff --git a/elf/tst-nodelete-dlclose-dso.c b/elf/tst-nodelete-dlclose-dso.c
index 7936239c87..0f976d2944 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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 077275a2b8..739a332fc9 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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 90ba7c7260..8e6c07540c 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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 7c65024255..56c87e3d29 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
int foo_var = 42;
diff --git a/elf/tst-nodelete-opened.c b/elf/tst-nodelete-opened.c
index 322ead2122..6d7aa247e2 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stdio.h>
diff --git a/elf/tst-noload.c b/elf/tst-noload.c
index 70609e0416..806a39b622 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stdio.h>
diff --git a/elf/tst-null-argv-lib.c b/elf/tst-null-argv-lib.c
index 9264601642..4afb952c72 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
void
foo (void)
diff --git a/elf/tst-null-argv.c b/elf/tst-null-argv.c
index 53ba6dd005..b29dee3276 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
extern void foo (void);
diff --git a/elf/tst-pathopt.sh b/elf/tst-pathopt.sh
index 0a9d67fd45..2ffe7695d7 100755
--- a/elf/tst-pathopt.sh
+++ b/elf/tst-pathopt.sh
@@ -1,6 +1,6 @@
#!/bin/sh
# Test lookup path optimization.
-# Copyright (C) 2000-2018 Free Software Foundation, Inc.
+# Copyright (C) 2000-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
@@ -15,7 +15,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
set -e
diff --git a/elf/tst-pie2.c b/elf/tst-pie2.c
index 9dded6e4d5..736a5d8fbe 100644
--- a/elf/tst-pie2.c
+++ b/elf/tst-pie2.c
@@ -1,6 +1,6 @@
/* Test case for BZ #16381
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
diff --git a/elf/tst-pldd.c b/elf/tst-pldd.c
new file mode 100644
index 0000000000..afe43f91c8
--- /dev/null
+++ b/elf/tst-pldd.c
@@ -0,0 +1,168 @@
+/* Basic tests for pldd program.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <stdint.h>
+#include <stdbool.h>
+
+#include <array_length.h>
+#include <gnu/lib-names.h>
+
+#include <support/subprocess.h>
+#include <support/capture_subprocess.h>
+#include <support/check.h>
+#include <support/support.h>
+#include <support/xptrace.h>
+#include <support/xunistd.h>
+#include <sys/mman.h>
+#include <errno.h>
+#include <signal.h>
+
+static void
+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). */
+
+static bool
+in_str_list (const char *libname, const char *const strlist[])
+{
+ for (const char *const *str = strlist; *str != NULL; str++)
+ if (strcmp (libname, *str) == 0)
+ return true;
+ return false;
+}
+
+static int
+do_test (void)
+{
+ /* Check if our subprocess can be debugged with ptrace. */
+ {
+ int ptrace_scope = support_ptrace_scope ();
+ if (ptrace_scope >= 2)
+ FAIL_UNSUPPORTED ("/proc/sys/kernel/yama/ptrace_scope >= 2");
+ }
+
+ pid_t *target_pid_ptr = (pid_t *) xmmap (NULL, sizeof (pid_t),
+ PROT_READ | PROT_WRITE,
+ MAP_SHARED | MAP_ANONYMOUS, -1);
+
+ /* 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. */
+ {
+ pid_t pid;
+ char buffer[512];
+#define STRINPUT(size) "%" # size "s"
+
+ FILE *out = fmemopen (pldd.out.buffer, pldd.out.length, "r");
+ TEST_VERIFY (out != NULL);
+
+ /* First line is in the form of <pid>: <full path of executable> */
+ TEST_COMPARE (fscanf (out, "%u: " STRINPUT (512), &pid, buffer), 2);
+
+ 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. */
+ bool interpreter_found = false, libc_found = false;
+ while (fgets (buffer, array_length (buffer), out) != NULL)
+ {
+ /* Ignore vDSO. */
+ if (buffer[0] != '/')
+ continue;
+
+ /* Remove newline so baseline (buffer) can compare against the
+ LD_SO and LIBC_SO macros unmodified. */
+ if (buffer[strlen(buffer)-1] == '\n')
+ buffer[strlen(buffer)-1] = '\0';
+
+ const char *libname = basename (buffer);
+
+ /* It checks for default names in case of build configure with
+ --enable-hardcoded-path-in-tests (BZ #24506). */
+ if (in_str_list (libname,
+ (const char *const []) { "ld.so", LD_SO, NULL }))
+ {
+ TEST_COMPARE (interpreter_found, false);
+ interpreter_found = true;
+ continue;
+ }
+
+ if (in_str_list (libname,
+ (const char *const []) { "libc.so", LIBC_SO, NULL }))
+ {
+ TEST_COMPARE (libc_found, false);
+ libc_found = true;
+ continue;
+ }
+ }
+ TEST_COMPARE (interpreter_found, true);
+ TEST_COMPARE (libc_found, true);
+
+ fclose (out);
+ }
+
+ support_capture_subprocess_free (&pldd);
+ 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;
+}
+
+#include <support/test-driver.c>
diff --git a/elf/tst-prelink.c b/elf/tst-prelink.c
index 9065a8412b..a24f5a8d66 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
diff --git a/elf/tst-protected1a.c b/elf/tst-protected1a.c
index afaf2d5635..59f525f164 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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 b53345591c..dc86708ef2 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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 0639091074..3ba9d65dcc 100644
--- a/elf/tst-protected1mod.h
+++ b/elf/tst-protected1mod.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2015-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Prototypes for the functions in the DSOs. */
extern int protected1;
diff --git a/elf/tst-protected1moda.c b/elf/tst-protected1moda.c
index c6cf79f8ff..24302f7b5b 100644
--- a/elf/tst-protected1moda.c
+++ b/elf/tst-protected1moda.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2015-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "tst-protected1mod.h"
diff --git a/elf/tst-protected1modb.c b/elf/tst-protected1modb.c
index 7343410692..3a2601d6cb 100644
--- a/elf/tst-protected1modb.c
+++ b/elf/tst-protected1modb.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2015-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include "tst-protected1mod.h"
diff --git a/elf/tst-ptrguard1.c b/elf/tst-ptrguard1.c
index 78b78b8523..7a085b413c 100644
--- a/elf/tst-ptrguard1.c
+++ b/elf/tst-ptrguard1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2013-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdbool.h>
diff --git a/elf/tst-rtld-load-self.sh b/elf/tst-rtld-load-self.sh
index b33f6fc441..eef5861d5e 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-2018 Free Software Foundation, Inc.
+# Copyright (C) 2012-2019 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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
set -e
diff --git a/elf/tst-rtld-preload.sh b/elf/tst-rtld-preload.sh
new file mode 100755
index 0000000000..6d420d420c
--- /dev/null
+++ b/elf/tst-rtld-preload.sh
@@ -0,0 +1,38 @@
+#!/bin/sh
+# Test --preload argument ld.so.
+# 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; if not, see
+# <https://www.gnu.org/licenses/>.
+
+set -e
+
+rtld=$1
+test_program=$2
+test_wrapper=$3
+test_wrapper_env=$4
+run_program_env=$5
+library_path=$6
+preload=$7
+
+echo "# [${test_wrapper}] [$rtld] [--library-path] [$library_path]" \
+ "[--preload] [$preload] [$test_program]"
+${test_wrapper_env} \
+${run_program_env} \
+${test_wrapper} $rtld --library-path "$library_path" \
+ --preload "$preload" $test_program 2>&1 && rc=0 || rc=$?
+echo "# exit status $rc"
+
+exit $rc
diff --git a/elf/tst-sonamemove-dlopen.c b/elf/tst-sonamemove-dlopen.c
new file mode 100644
index 0000000000..9a10102915
--- /dev/null
+++ b/elf/tst-sonamemove-dlopen.c
@@ -0,0 +1,35 @@
+/* Check that a moved versioned symbol can be found using dlsym, dlvsym.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stddef.h>
+#include <support/check.h>
+#include <support/xdlfcn.h>
+
+static int
+do_test (void)
+{
+ /* tst-sonamemove-runmod1.so does not define moved_function, but it
+ depends on tst-sonamemove-runmod2.so, which does. */
+ void *handle = xdlopen ("tst-sonamemove-runmod1.so", RTLD_NOW);
+ TEST_VERIFY (xdlsym (handle, "moved_function") != NULL);
+ TEST_VERIFY (xdlvsym (handle, "moved_function", "SONAME_MOVE") != NULL);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/elf/tst-sonamemove-link.c b/elf/tst-sonamemove-link.c
new file mode 100644
index 0000000000..98f149a950
--- /dev/null
+++ b/elf/tst-sonamemove-link.c
@@ -0,0 +1,41 @@
+/* Check that a versioned symbol can move from one library to another.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+/* At link time, moved_function is bound to the symbol version
+ SONAME_MOVE in tst-sonamemove-runmod1.so, using the
+ tst-sonamemove-linkmod1.so stub object.
+
+ At run time, the process loads the real tst-sonamemove-runmod1.so,
+ which depends on tst-sonamemove-runmod2.so.
+ tst-sonamemove-runmod1.so does not define moved_function, but
+ tst-sonamemove-runmod2.so does.
+
+ The net effect is that the versioned symbol
+ moved_function@SONAME_MOVE moved from the soname
+ tst-sonamemove-linkmod1.so at link time to the soname
+ tst-sonamemove-linkmod2.so at run time. */
+void moved_function (void);
+
+static int
+do_test (void)
+{
+ moved_function ();
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/elf/tst-sonamemove-linkmod1.c b/elf/tst-sonamemove-linkmod1.c
new file mode 100644
index 0000000000..b68e3985b4
--- /dev/null
+++ b/elf/tst-sonamemove-linkmod1.c
@@ -0,0 +1,25 @@
+/* Link interface for (lack of) soname matching in versioned symbol refs.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+/* This function moved from tst-sonamemove-runmod1.so. This module is
+ intended for linking only, to simulate an old application which was
+ linked against an older version of the library. */
+void
+moved_function (void)
+{
+}
diff --git a/elf/tst-sonamemove-linkmod1.map b/elf/tst-sonamemove-linkmod1.map
new file mode 100644
index 0000000000..8fe5904018
--- /dev/null
+++ b/elf/tst-sonamemove-linkmod1.map
@@ -0,0 +1,3 @@
+SONAME_MOVE {
+ global: moved_function;
+};
diff --git a/elf/tst-sonamemove-runmod1.c b/elf/tst-sonamemove-runmod1.c
new file mode 100644
index 0000000000..058e8b4bcf
--- /dev/null
+++ b/elf/tst-sonamemove-runmod1.c
@@ -0,0 +1,23 @@
+/* Run-time module whose moved_function moved to a library dependency.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+/* Dummy function to add the required symbol version. */
+void
+other_function (void)
+{
+}
diff --git a/elf/tst-sonamemove-runmod1.map b/elf/tst-sonamemove-runmod1.map
new file mode 100644
index 0000000000..2ea81c6e6f
--- /dev/null
+++ b/elf/tst-sonamemove-runmod1.map
@@ -0,0 +1,3 @@
+SONAME_MOVE {
+ global: other_function;
+};
diff --git a/elf/tst-sonamemove-runmod2.c b/elf/tst-sonamemove-runmod2.c
new file mode 100644
index 0000000000..6427a79a11
--- /dev/null
+++ b/elf/tst-sonamemove-runmod2.c
@@ -0,0 +1,24 @@
+/* Run-time module with the actual implementation of moved_function.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+/* In the test scenario, this function was originally in
+ tst-sonamemove-runmod1.so. */
+void
+moved_function (void)
+{
+}
diff --git a/elf/tst-sonamemove-runmod2.map b/elf/tst-sonamemove-runmod2.map
new file mode 100644
index 0000000000..8fe5904018
--- /dev/null
+++ b/elf/tst-sonamemove-runmod2.map
@@ -0,0 +1,3 @@
+SONAME_MOVE {
+ global: moved_function;
+};
diff --git a/elf/tst-stackguard1.c b/elf/tst-stackguard1.c
index 8479d8c422..756ca9d83b 100644
--- a/elf/tst-stackguard1.c
+++ b/elf/tst-stackguard1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <getopt.h>
diff --git a/elf/tst-tls-manydynamic.c b/elf/tst-tls-manydynamic.c
index 185395c3cd..9b2111efee 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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 fa211b6213..2cf4aff49c 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#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 94adbde4e5..47c5fb90ca 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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 30dffbb598..c6cd1f077e 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
#include <stdio.h>
diff --git a/elf/tst-tlsalign.c b/elf/tst-tlsalign.c
index f16ab6080f..4ad301568f 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
#include <stdio.h>
diff --git a/elf/tst-unwind-ctor-lib.c b/elf/tst-unwind-ctor-lib.c
new file mode 100644
index 0000000000..e9b95c4a18
--- /dev/null
+++ b/elf/tst-unwind-ctor-lib.c
@@ -0,0 +1,42 @@
+/* Unit test for _Unwind_Backtrace in a shared object constructor.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <unwind.h>
+#include <unistd.h>
+
+static _Unwind_Reason_Code
+callback (struct _Unwind_Context *ctx, void *arg)
+{
+ return _URC_NO_REASON;
+}
+
+static void
+__attribute__ ((constructor))
+do_unwind (void)
+{
+ /* Arrange for this test to be killed if _Unwind_Backtrace runs into an
+ endless loop. We cannot use the test driver since the test needs to
+ run in a constructor. */
+ alarm (20);
+ _Unwind_Backtrace (callback, 0);
+}
+
+void
+dummy (void)
+{
+}
diff --git a/elf/tst-unwind-ctor.c b/elf/tst-unwind-ctor.c
new file mode 100644
index 0000000000..2016f720d2
--- /dev/null
+++ b/elf/tst-unwind-ctor.c
@@ -0,0 +1,27 @@
+/* Unit test for _Unwind_Backtrace in a shared object constructor.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+extern void dummy (void);
+
+int
+main (void)
+{
+ /* Just call a dummy function in the shared library. The actual test
+ runs in its constructor. */
+ dummy ();
+}
diff --git a/elf/tst-unwind-main.c b/elf/tst-unwind-main.c
new file mode 100644
index 0000000000..92159a43e4
--- /dev/null
+++ b/elf/tst-unwind-main.c
@@ -0,0 +1,60 @@
+/* Test unwinding through main.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <unwind.h>
+#include <unistd.h>
+#include <support/test-driver.h>
+
+#if USE_PTHREADS
+# include <pthread.h>
+# include <error.h>
+#endif
+
+static _Unwind_Reason_Code
+callback (struct _Unwind_Context *ctx, void *arg)
+{
+ return _URC_NO_REASON;
+}
+
+static void *
+func (void *a)
+{
+ /* Arrange for this test to be killed if _Unwind_Backtrace runs into an
+ endless loop. We cannot use the test driver because the complete
+ call chain needs to be compiled with -funwind-tables so that
+ _Unwind_Backtrace is able to reach the start routine. */
+ alarm (DEFAULT_TIMEOUT);
+ _Unwind_Backtrace (callback, 0);
+ return a;
+}
+
+int
+main (void)
+{
+#if USE_PTHREADS
+ pthread_t thr;
+ int rc = pthread_create (&thr, NULL, &func, NULL);
+ if (rc)
+ error (1, rc, "pthread_create");
+ rc = pthread_join (thr, NULL);
+ if (rc)
+ error (1, rc, "pthread_join");
+#else
+ func (NULL);
+#endif
+}
diff --git a/elf/vismain.c b/elf/vismain.c
index e62118c5d4..9782d5cf2c 100644
--- a/elf/vismain.c
+++ b/elf/vismain.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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 7a62b54771..72a0c16473 100644
--- a/elf/vismod1.c
+++ b/elf/vismod1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "vismod.h"
diff --git a/elf/vismod2.c b/elf/vismod2.c
index 962b7c95f6..f412661cc9 100644
--- a/elf/vismod2.c
+++ b/elf/vismod2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include "vismod.h"
diff --git a/elf/vismod3.c b/elf/vismod3.c
index ba427ea9df..5c729260b9 100644
--- a/elf/vismod3.c
+++ b/elf/vismod3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "vismod.h"
diff --git a/gmon/Makefile b/gmon/Makefile
index d94593c9d8..9800b942a3 100644
--- a/gmon/Makefile
+++ b/gmon/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1995-2018 Free Software Foundation, Inc.
+# Copyright (C) 1995-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
# 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 f0d138ca34..02b813ab93 100644
--- a/gmon/profil.c
+++ b/gmon/profil.c
@@ -1,5 +1,5 @@
/* Low-level statistical profiling support function. Stub version.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <unistd.h>
diff --git a/gmon/sprofil.c b/gmon/sprofil.c
index 2f8dc23066..03027896fc 100644
--- a/gmon/sprofil.c
+++ b/gmon/sprofil.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 Free Software Foundation, Inc.
Contributed by David Mosberger-Tang <davidm@hpl.hp.com>.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
diff --git a/gmon/sys/gmon_out.h b/gmon/sys/gmon_out.h
index de21d5559a..e259776b6e 100644
--- a/gmon/sys/gmon_out.h
+++ b/gmon/sys/gmon_out.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Mosberger <davidm@cs.arizona.edu>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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 b993a658c5..11795164c5 100644
--- a/gmon/sys/profil.h
+++ b/gmon/sys/profil.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _PROFIL_H
#define _PROFIL_H 1
diff --git a/gmon/tst-gmon-gprof.sh b/gmon/tst-gmon-gprof.sh
index 1afec48b0b..b668d9d183 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-2018 Free Software Foundation, Inc.
+# Copyright (C) 2017-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
@@ -15,7 +15,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
LC_ALL=C
export LC_ALL
diff --git a/gmon/tst-gmon-static-gprof.sh b/gmon/tst-gmon-static-gprof.sh
index 34dd952bf3..8c962e1a39 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-2018 Free Software Foundation, Inc.
+# Copyright (C) 2017-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
@@ -15,7 +15,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
LC_ALL=C
export LC_ALL
diff --git a/gmon/tst-gmon.c b/gmon/tst-gmon.c
index ea2e55f608..fb96b9a5f5 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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 ac4d1c3f18..c079feaaa0 100644
--- a/gmon/tst-sprofil.c
+++ b/gmon/tst-sprofil.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Mosberger-Tang <davidm@hpl.hp.com>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdio.h>
diff --git a/gnulib/Makefile b/gnulib/Makefile
index c23b649ff5..0979fbd6bb 100644
--- a/gnulib/Makefile
+++ b/gnulib/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1991-2018 Free Software Foundation, Inc.
+# Copyright (C) 1991-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
subdir := gnulib
diff --git a/gnulib/tst-gcc.c b/gnulib/tst-gcc.c
index b1cda8e504..4da0331e67 100644
--- a/gnulib/tst-gcc.c
+++ b/gnulib/tst-gcc.c
@@ -1,5 +1,5 @@
/* Test program for the gcc interface.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
diff --git a/grp/Makefile b/grp/Makefile
index d72fee5f6b..9477cc67de 100644
--- a/grp/Makefile
+++ b/grp/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1991-2018 Free Software Foundation, Inc.
+# Copyright (C) 1991-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
# Sub-makefile for grp portion of the library.
diff --git a/grp/fgetgrent.c b/grp/fgetgrent.c
index 80f96fbba2..42a654e428 100644
--- a/grp/fgetgrent.c
+++ b/grp/fgetgrent.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <grp.h>
diff --git a/grp/fgetgrent_r.c b/grp/fgetgrent_r.c
index 6793fa1ca6..1c037cfac6 100644
--- a/grp/fgetgrent_r.c
+++ b/grp/fgetgrent_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <errno.h>
diff --git a/grp/getgrent.c b/grp/getgrent.c
index de950484bd..12ee06ea26 100644
--- a/grp/getgrent.c
+++ b/grp/getgrent.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <grp.h>
diff --git a/grp/getgrent_r.c b/grp/getgrent_r.c
index 52a844eedd..3318bfb488 100644
--- a/grp/getgrent_r.c
+++ b/grp/getgrent_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <grp.h>
diff --git a/grp/getgrgid.c b/grp/getgrgid.c
index 9d86919ec6..cdd095e5d6 100644
--- a/grp/getgrgid.c
+++ b/grp/getgrgid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <grp.h>
diff --git a/grp/getgrgid_r.c b/grp/getgrgid_r.c
index f212738e83..0d3a9f7810 100644
--- a/grp/getgrgid_r.c
+++ b/grp/getgrgid_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <grp.h>
diff --git a/grp/getgrnam.c b/grp/getgrnam.c
index eaab12c4b4..45d75b4680 100644
--- a/grp/getgrnam.c
+++ b/grp/getgrnam.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <grp.h>
diff --git a/grp/getgrnam_r.c b/grp/getgrnam_r.c
index f54b63ce94..8469ccb34c 100644
--- a/grp/getgrnam_r.c
+++ b/grp/getgrnam_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <grp.h>
diff --git a/grp/grp-merge.c b/grp/grp-merge.c
index 24898b05d0..34c4469148 100644
--- a/grp/grp-merge.c
+++ b/grp/grp-merge.c
@@ -1,5 +1,5 @@
/* Group merging implementation.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdlib.h>
diff --git a/grp/grp-merge.h b/grp/grp-merge.h
index 1539c6f6d1..dc7836567c 100644
--- a/grp/grp-merge.h
+++ b/grp/grp-merge.h
@@ -1,5 +1,5 @@
/* Group merging implementation.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _GRP_MERGE_H
#define _GRP_MERGE_H 1
diff --git a/grp/grp.h b/grp/grp.h
index 432a147ebe..3f559188b7 100644
--- a/grp/grp.h
+++ b/grp/grp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* POSIX Standard: 9.2.1 Group Database Access <grp.h>
diff --git a/grp/initgroups.c b/grp/initgroups.c
index f056fbf5aa..426a7d9d73 100644
--- a/grp/initgroups.c
+++ b/grp/initgroups.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1989, 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1989, 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
@@ -79,12 +79,12 @@ internal_getgrouplist (const char *user, gid_t group, long int *size,
if (__nss_initgroups_database == NULL)
{
- if (__nss_database_lookup ("initgroups", NULL, "",
- &__nss_initgroups_database) < 0)
+ if (__nss_database_lookup2 ("initgroups", NULL, "",
+ &__nss_initgroups_database) < 0)
{
if (__nss_group_database == NULL)
- no_more = __nss_database_lookup ("group", NULL, DEFAULT_CONFIG,
- &__nss_group_database);
+ no_more = __nss_database_lookup2 ("group", NULL, DEFAULT_CONFIG,
+ &__nss_group_database);
__nss_initgroups_database = __nss_group_database;
}
@@ -128,7 +128,7 @@ internal_getgrouplist (const char *user, gid_t group, long int *size,
/* This is really only for debugging. */
if (NSS_STATUS_TRYAGAIN > status || status > NSS_STATUS_RETURN)
- __libc_fatal ("illegal status in internal_getgrouplist");
+ __libc_fatal ("Illegal status in internal_getgrouplist.\n");
/* For compatibility reason we will continue to look for more
entries using the next service even though data has already
diff --git a/grp/putgrent.c b/grp/putgrent.c
index 810dc8d24c..33c8dd7e09 100644
--- a/grp/putgrent.c
+++ b/grp/putgrent.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <nss.h>
diff --git a/grp/setgroups.c b/grp/setgroups.c
index 0c57bef6af..e07fa66da4 100644
--- a/grp/setgroups.c
+++ b/grp/setgroups.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/types.h>
diff --git a/grp/tst-putgrent.c b/grp/tst-putgrent.c
index 6a75a0e0d7..0e16884db6 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <grp.h>
diff --git a/grp/tst_fgetgrent.c b/grp/tst_fgetgrent.c
index d612445fed..d52b5fe34c 100644
--- a/grp/tst_fgetgrent.c
+++ b/grp/tst_fgetgrent.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@arthur.rhein-neckar.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <grp.h>
#include <stdio.h>
diff --git a/grp/tst_fgetgrent.sh b/grp/tst_fgetgrent.sh
index d878293786..78570854c5 100644
--- a/grp/tst_fgetgrent.sh
+++ b/grp/tst_fgetgrent.sh
@@ -1,5 +1,5 @@
#!/bin/sh
-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
+# Copyright (C) 1999-2019 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# Contributed by Andreas Jaeger <aj@arthur.rhein-neckar.de>, 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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
set -e
diff --git a/gshadow/Makefile b/gshadow/Makefile
index e10a57f416..8787cd3bfc 100644
--- a/gshadow/Makefile
+++ b/gshadow/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2018 Free Software Foundation, Inc.
+# Copyright (C) 2009-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
# Makefile for gshadow.
diff --git a/gshadow/fgetsgent.c b/gshadow/fgetsgent.c
index 4b4af524c7..4e0b98bf1d 100644
--- a/gshadow/fgetsgent.c
+++ b/gshadow/fgetsgent.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <libc-lock.h>
diff --git a/gshadow/fgetsgent_r.c b/gshadow/fgetsgent_r.c
index 13a5b181cb..70a411758f 100644
--- a/gshadow/fgetsgent_r.c
+++ b/gshadow/fgetsgent_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <errno.h>
@@ -61,11 +61,11 @@ __fgetsgent_r (FILE *stream, struct sgrp *resbuf, char *buffer, size_t buflen,
/* Skip leading blanks. */
while (isspace (*p))
++p;
- } while (*p == '\0' || *p == '#' || /* Ignore empty and comment lines. */
+ } while (*p == '\0' || *p == '#' /* Ignore empty and comment lines. */
/* Parse the line. If it is invalid, loop to
get the next line of the file to parse. */
- ! parse_line (buffer, (void *) resbuf, (void *) buffer, buflen,
- &errno));
+ || ! parse_line (buffer, (void *) resbuf, (void *) buffer, buflen,
+ &errno));
_IO_funlockfile (stream);
diff --git a/gshadow/getsgent.c b/gshadow/getsgent.c
index 54eebd6ca0..e05bb9d8cf 100644
--- a/gshadow/getsgent.c
+++ b/gshadow/getsgent.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <gshadow.h>
diff --git a/gshadow/getsgent_r.c b/gshadow/getsgent_r.c
index 82f6671456..7fdfb17707 100644
--- a/gshadow/getsgent_r.c
+++ b/gshadow/getsgent_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <gshadow.h>
diff --git a/gshadow/getsgnam.c b/gshadow/getsgnam.c
index e9decf9549..fa7ac5cc25 100644
--- a/gshadow/getsgnam.c
+++ b/gshadow/getsgnam.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <gshadow.h>
diff --git a/gshadow/getsgnam_r.c b/gshadow/getsgnam_r.c
index 5c88ee7b56..de778baf78 100644
--- a/gshadow/getsgnam_r.c
+++ b/gshadow/getsgnam_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <gshadow.h>
diff --git a/gshadow/gshadow.h b/gshadow/gshadow.h
index 4d9709bcf0..f9c6935cde 100644
--- a/gshadow/gshadow.h
+++ b/gshadow/gshadow.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Declaration of types and functions for shadow group suite. */
diff --git a/gshadow/putsgent.c b/gshadow/putsgent.c
index 262aea2891..587e90e79e 100644
--- a/gshadow/putsgent.c
+++ b/gshadow/putsgent.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdbool.h>
diff --git a/gshadow/sgetsgent.c b/gshadow/sgetsgent.c
index b9a0390e9a..1853634d9b 100644
--- a/gshadow/sgetsgent.c
+++ b/gshadow/sgetsgent.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <libc-lock.h>
diff --git a/gshadow/sgetsgent_r.c b/gshadow/sgetsgent_r.c
index 9d120a88a8..3bc77910d3 100644
--- a/gshadow/sgetsgent_r.c
+++ b/gshadow/sgetsgent_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <errno.h>
diff --git a/gshadow/tst-putsgent.c b/gshadow/tst-putsgent.c
index 424b66e896..666a9d1210 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <gshadow.h>
diff --git a/hesiod/Makefile b/hesiod/Makefile
index 1fdcccccec..1337910d93 100644
--- a/hesiod/Makefile
+++ b/hesiod/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1997-2018 Free Software Foundation, Inc.
+# Copyright (C) 1997-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
# Sub-makefile for hesiod portion of the library.
diff --git a/hesiod/hesiod.c b/hesiod/hesiod.c
index a93e13b348..bfb95633e3 100644
--- a/hesiod/hesiod.c
+++ b/hesiod/hesiod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* Copyright (c) 1996,1999 by Internet Software Consortium.
diff --git a/hesiod/hesiod.h b/hesiod/hesiod.h
index 4088a159e2..e62d75aa29 100644
--- a/hesiod/hesiod.h
+++ b/hesiod/hesiod.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* Copyright (c) 1996,1999 by Internet Software Consortium.
diff --git a/hesiod/hesiod_p.h b/hesiod/hesiod_p.h
index 8156205654..1564742c2c 100644
--- a/hesiod/hesiod_p.h
+++ b/hesiod/hesiod_p.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* 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 c06e849c71..b0fc7300b0 100644
--- a/hesiod/nss_hesiod/hesiod-grp.c
+++ b/hesiod/nss_hesiod/hesiod-grp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Mark Kettenis <kettenis@phys.uva.nl>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <errno.h>
diff --git a/hesiod/nss_hesiod/hesiod-proto.c b/hesiod/nss_hesiod/hesiod-proto.c
index cf8813fe80..a4af636026 100644
--- a/hesiod/nss_hesiod/hesiod-proto.c
+++ b/hesiod/nss_hesiod/hesiod-proto.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Mark Kettenis <kettenis@phys.uva.nl>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <hesiod.h>
diff --git a/hesiod/nss_hesiod/hesiod-pwd.c b/hesiod/nss_hesiod/hesiod-pwd.c
index a6f433479d..3badd00014 100644
--- a/hesiod/nss_hesiod/hesiod-pwd.c
+++ b/hesiod/nss_hesiod/hesiod-pwd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Mark Kettenis <kettenis@phys.uva.nl>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <hesiod.h>
diff --git a/hesiod/nss_hesiod/hesiod-service.c b/hesiod/nss_hesiod/hesiod-service.c
index bfaffcf28a..6ff309a2b9 100644
--- a/hesiod/nss_hesiod/hesiod-service.c
+++ b/hesiod/nss_hesiod/hesiod-service.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Mark Kettenis <kettenis@phys.uva.nl>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <hesiod.h>
diff --git a/htl/Makefile b/htl/Makefile
index 11c21df4d3..d8f7886790 100644
--- a/htl/Makefile
+++ b/htl/Makefile
@@ -1,5 +1,5 @@
#
-# Copyright (C) 1994-2018 Free Software Foundation, Inc.
+# Copyright (C) 1994-2019 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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
subdir := htl
diff --git a/htl/Versions b/htl/Versions
index 6a63a1b8a1..c5a616da10 100644
--- a/htl/Versions
+++ b/htl/Versions
@@ -150,6 +150,8 @@ libpthread {
__cthread_keycreate;
__cthread_getspecific;
__cthread_setspecific;
+ __pthread_getspecific;
+ __pthread_setspecific;
__pthread_getattr_np;
__pthread_attr_getstack;
}
diff --git a/htl/alloca_cutoff.c b/htl/alloca_cutoff.c
index 3b8e3144c4..466790bfa7 100644
--- a/htl/alloca_cutoff.c
+++ b/htl/alloca_cutoff.c
@@ -1,5 +1,5 @@
/* Allocate a new thread structure.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <alloca.h>
diff --git a/htl/cthreads-compat.c b/htl/cthreads-compat.c
index 6b2db646fc..896b82f491 100644
--- a/htl/cthreads-compat.c
+++ b/htl/cthreads-compat.c
@@ -1,5 +1,5 @@
/* Compatibility routines for cthreads.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <pthreadP.h>
diff --git a/htl/forward.c b/htl/forward.c
index cb36ae2cb7..17f5704cf3 100644
--- a/htl/forward.c
+++ b/htl/forward.c
@@ -1,5 +1,5 @@
/* Libc stubs for pthread functions. Hurd pthread version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <dlfcn.h>
diff --git a/htl/libc_pthread_init.c b/htl/libc_pthread_init.c
index b6e96827a5..dfb1fcf081 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <pthread-functions.h>
diff --git a/htl/lockfile.c b/htl/lockfile.c
index 1d0ab88b13..dbd5d47f0a 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <cthreads.h>
#include <pthread.h> /* Must come before <stdio.h>! */
diff --git a/htl/pt-alloc.c b/htl/pt-alloc.c
index f87829fe78..c641cc84d0 100644
--- a/htl/pt-alloc.c
+++ b/htl/pt-alloc.c
@@ -1,5 +1,5 @@
/* Allocate a new thread structure.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
diff --git a/htl/pt-cancel.c b/htl/pt-cancel.c
index 3ee8d8d7c6..2f399d037b 100644
--- a/htl/pt-cancel.c
+++ b/htl/pt-cancel.c
@@ -1,5 +1,5 @@
/* Cancel a thread.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
diff --git a/htl/pt-cleanup.c b/htl/pt-cleanup.c
index 1b860c7bf7..ebaf335faa 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
diff --git a/htl/pt-create.c b/htl/pt-create.c
index a555c2f062..e35a5b1d9f 100644
--- a/htl/pt-create.c
+++ b/htl/pt-create.c
@@ -1,5 +1,5 @@
/* Thread creation.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
diff --git a/htl/pt-dealloc.c b/htl/pt-dealloc.c
index c9a82aa1b9..dd58e3355b 100644
--- a/htl/pt-dealloc.c
+++ b/htl/pt-dealloc.c
@@ -1,5 +1,5 @@
/* Deallocate a thread structure.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <pthread.h>
diff --git a/htl/pt-detach.c b/htl/pt-detach.c
index 40082c507f..5cbc186388 100644
--- a/htl/pt-detach.c
+++ b/htl/pt-detach.c
@@ -1,5 +1,5 @@
/* Detach a thread.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/htl/pt-exit.c b/htl/pt-exit.c
index cb62f474fa..a3d3ca9ae5 100644
--- a/htl/pt-exit.c
+++ b/htl/pt-exit.c
@@ -1,5 +1,5 @@
/* Thread termination.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
diff --git a/htl/pt-getattr.c b/htl/pt-getattr.c
index 571630c015..e2fbcca3b9 100644
--- a/htl/pt-getattr.c
+++ b/htl/pt-getattr.c
@@ -1,5 +1,5 @@
/* Thread attributes retrieval.
- Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
@@ -38,9 +38,9 @@ __pthread_getattr_np (pthread_t thread, pthread_attr_t *attr)
are not supported yet, so fill them with our default values. */
*attr = __pthread_default_attr;
- attr->__stackaddr = pthread->stackaddr +
- ((pthread->guardsize + __vm_page_size - 1)
- / __vm_page_size * __vm_page_size);
+ attr->__stackaddr = (pthread->stackaddr
+ + ((pthread->guardsize + __vm_page_size - 1)
+ / __vm_page_size * __vm_page_size));
attr->__stacksize = pthread->stacksize;
attr->__guardsize = pthread->guardsize;
attr->__detachstate = (pthread->state == PTHREAD_DETACHED
diff --git a/htl/pt-initialize.c b/htl/pt-initialize.c
index 3e530f4b72..f295510100 100644
--- a/htl/pt-initialize.c
+++ b/htl/pt-initialize.c
@@ -1,5 +1,5 @@
/* Initialize pthreads library.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <string.h>
diff --git a/htl/pt-internal.h b/htl/pt-internal.h
index a764fa283f..830473903c 100644
--- a/htl/pt-internal.h
+++ b/htl/pt-internal.h
@@ -1,5 +1,5 @@
/* Internal defenitions for pthreads library.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _PT_INTERNAL_H
#define _PT_INTERNAL_H 1
diff --git a/htl/pt-join.c b/htl/pt-join.c
index befa0da5bc..33603482a6 100644
--- a/htl/pt-join.c
+++ b/htl/pt-join.c
@@ -1,5 +1,5 @@
/* Wait for thread termination.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/htl/pt-self.c b/htl/pt-self.c
index 0e224a1630..90fa5e9bd2 100644
--- a/htl/pt-self.c
+++ b/htl/pt-self.c
@@ -1,5 +1,5 @@
/* Get calling thread's ID.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
diff --git a/htl/pt-setcancelstate.c b/htl/pt-setcancelstate.c
index b42b0eca7c..f1b57a91cf 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
diff --git a/htl/pt-setcanceltype.c b/htl/pt-setcanceltype.c
index 95332acc44..32109b25c9 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
diff --git a/htl/pt-sigmask.c b/htl/pt-sigmask.c
index aa73533186..11646f11c2 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <signal.h>
diff --git a/htl/pt-spin-inlines.c b/htl/pt-spin-inlines.c
index 5de82bd556..54ccdc9664 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* <bits/types/__pthread_spinlock_t.h> 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 116a3076dd..370ce0d06f 100644
--- a/htl/pt-testcancel.c
+++ b/htl/pt-testcancel.c
@@ -1,5 +1,5 @@
/* Add an explicit cancelation point.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
diff --git a/htl/pt-yield.c b/htl/pt-yield.c
index 1d2fabb52d..3e2c38c401 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <sched.h>
diff --git a/htl/tests/test-1.c b/htl/tests/test-1.c
index 67c1e0a552..97a3c94c3e 100644
--- a/htl/tests/test-1.c
+++ b/htl/tests/test-1.c
@@ -1,5 +1,5 @@
/* Test mutexes.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _GNU_SOURCE
diff --git a/htl/tests/test-10.c b/htl/tests/test-10.c
index 4fa2acb2f5..a52d3093ea 100644
--- a/htl/tests/test-10.c
+++ b/htl/tests/test-10.c
@@ -1,5 +1,5 @@
/* Test error checking mutexes.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _GNU_SOURCE
diff --git a/htl/tests/test-11.c b/htl/tests/test-11.c
index 8cce67b11b..5e5c0bf798 100644
--- a/htl/tests/test-11.c
+++ b/htl/tests/test-11.c
@@ -1,5 +1,5 @@
/* Test rwlocks.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _GNU_SOURCE
diff --git a/htl/tests/test-12.c b/htl/tests/test-12.c
index 1a01bb574a..fbb10fb4d1 100644
--- a/htl/tests/test-12.c
+++ b/htl/tests/test-12.c
@@ -1,5 +1,5 @@
/* Test concurrency level.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _GNU_SOURCE
diff --git a/htl/tests/test-13.c b/htl/tests/test-13.c
index aa3b84312e..3b6aee2bdd 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _GNU_SOURCE
diff --git a/htl/tests/test-14.c b/htl/tests/test-14.c
index 8ccb862622..f5014aa209 100644
--- a/htl/tests/test-14.c
+++ b/htl/tests/test-14.c
@@ -1,5 +1,5 @@
/* Test pthread_mutex_timedlock.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _GNU_SOURCE
diff --git a/htl/tests/test-15.c b/htl/tests/test-15.c
index 75df363372..86c7b7a1a1 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _GNU_SOURCE
diff --git a/htl/tests/test-16.c b/htl/tests/test-16.c
index 985de23c94..98e64241fd 100644
--- a/htl/tests/test-16.c
+++ b/htl/tests/test-16.c
@@ -1,5 +1,5 @@
/* Test pthread_kill.c.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _GNU_SOURCE
diff --git a/htl/tests/test-17.c b/htl/tests/test-17.c
index ef525612ee..4be9193370 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _GNU_SOURCE 1
diff --git a/htl/tests/test-2.c b/htl/tests/test-2.c
index c976ec46cd..2dda4bf608 100644
--- a/htl/tests/test-2.c
+++ b/htl/tests/test-2.c
@@ -1,5 +1,5 @@
/* Test detachability.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _GNU_SOURCE
diff --git a/htl/tests/test-3.c b/htl/tests/test-3.c
index 7e04f6e31f..8fa8cd8848 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _GNU_SOURCE
diff --git a/htl/tests/test-4.c b/htl/tests/test-4.c
index e6e06aacf4..6d88de0101 100644
--- a/htl/tests/test-4.c
+++ b/htl/tests/test-4.c
@@ -1,5 +1,5 @@
/* Test the stack guard.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _GNU_SOURCE
diff --git a/htl/tests/test-5.c b/htl/tests/test-5.c
index c2fea43ece..caa49ef0cd 100644
--- a/htl/tests/test-5.c
+++ b/htl/tests/test-5.c
@@ -1,5 +1,5 @@
/* Test signals.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _GNU_SOURCE
diff --git a/htl/tests/test-6.c b/htl/tests/test-6.c
index b6b4572631..38fcdb4e04 100644
--- a/htl/tests/test-6.c
+++ b/htl/tests/test-6.c
@@ -1,5 +1,5 @@
/* Test barriers.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _GNU_SOURCE
diff --git a/htl/tests/test-7.c b/htl/tests/test-7.c
index 7daabca318..a38f10c48b 100644
--- a/htl/tests/test-7.c
+++ b/htl/tests/test-7.c
@@ -1,5 +1,5 @@
/* Test Thread-Specific Data.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _GNU_SOURCE
diff --git a/htl/tests/test-8.c b/htl/tests/test-8.c
index 7e7a5cb25f..24b2bdb39a 100644
--- a/htl/tests/test-8.c
+++ b/htl/tests/test-8.c
@@ -1,5 +1,5 @@
/* Test pthread_once.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _GNU_SOURCE
diff --git a/htl/tests/test-9.c b/htl/tests/test-9.c
index ac86c5d7db..64ac2c2bd8 100644
--- a/htl/tests/test-9.c
+++ b/htl/tests/test-9.c
@@ -1,5 +1,5 @@
/* Test recursive mutexes.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _GNU_SOURCE
diff --git a/htl/tests/test-__pthread_destroy_specific-skip.c b/htl/tests/test-__pthread_destroy_specific-skip.c
index 608f62facf..e3ca85934d 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _GNU_SOURCE
diff --git a/hurd/Makefile b/hurd/Makefile
index a41737f497..91d14660d9 100644
--- a/hurd/Makefile
+++ b/hurd/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1991-2018 Free Software Foundation, Inc.
+# Copyright (C) 1991-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
subdir := hurd
@@ -33,8 +33,9 @@ user-interfaces := $(addprefix hurd/,\
process process_request \
msg msg_reply msg_request \
exec exec_startup crash interrupt \
- fs fsys io term tioctl socket ifsock \
- login password pfinet \
+ 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 af6a0e45de..b6508e03c6 100644
--- a/hurd/Versions
+++ b/hurd/Versions
@@ -136,6 +136,10 @@ libc {
__hurd_threadvar_location;
_hurd_userlink_link; _hurd_userlink_unlink; _hurd_userlink_clear;
}
+ GLIBC_2.29 {
+ # "quasi-internal" functions
+ _hurd_port_move;
+ }
HURD_CTHREADS_0.3 {
# weak refs to libthreads functions that libc calls iff libthreads in use
diff --git a/hurd/alloc-fd.c b/hurd/alloc-fd.c
index 19775bf964..096946e9cf 100644
--- a/hurd/alloc-fd.c
+++ b/hurd/alloc-fd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd.h>
#include <hurd/fd.h>
diff --git a/hurd/catch-exc.c b/hurd/catch-exc.c
index 8d3cb7d798..82a81f8265 100644
--- a/hurd/catch-exc.c
+++ b/hurd/catch-exc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <mach/exc_server.h>
#include <hurd/signal.h>
diff --git a/hurd/catch-signal.c b/hurd/catch-signal.c
index 56ce86532d..3169604777 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd/signal.h>
#include <hurd/sigpreempt.h>
diff --git a/hurd/compat-20.c b/hurd/compat-20.c
index 86401819d1..f525c05197 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd.h>
diff --git a/hurd/ctty-input.c b/hurd/ctty-input.c
index ec4092b855..95f067a16c 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd.h>
#include <hurd/signal.h>
@@ -44,8 +44,8 @@ _hurd_ctty_input (io_t port, io_t ctty, error_t (*rpc) (io_t))
{
struct hurd_sigstate *ss = _hurd_self_sigstate ();
__spin_lock (&ss->lock);
- if (__sigismember (&ss->blocked, SIGTTIN) ||
- ss->actions[SIGTTIN].sa_handler == SIG_IGN)
+ if (__sigismember (&ss->blocked, SIGTTIN)
+ || ss->actions[SIGTTIN].sa_handler == SIG_IGN)
/* We are blocking or ignoring SIGTTIN. Just fail. */
err = EIO;
__spin_unlock (&ss->lock);
diff --git a/hurd/ctty-output.c b/hurd/ctty-output.c
index 12fdf78159..d77c35ad6f 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd.h>
#include <hurd/signal.h>
@@ -38,8 +38,8 @@ _hurd_ctty_output (io_t port, io_t ctty, error_t (*rpc) (io_t))
SIGTTOU. We redo this check at the top of the loop in case
the signal handler changed the state. */
__spin_lock (&ss->lock);
- if (__sigismember (&ss->blocked, SIGTTOU) ||
- ss->actions[SIGTTOU].sa_handler == SIG_IGN)
+ if (__sigismember (&ss->blocked, SIGTTOU)
+ || ss->actions[SIGTTOU].sa_handler == SIG_IGN)
err = EIO;
else
err = 0;
diff --git a/hurd/dtable.c b/hurd/dtable.c
index 5c204676f8..44f8123a7c 100644
--- a/hurd/dtable.c
+++ b/hurd/dtable.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd.h>
#include <hurd/term.h>
@@ -266,24 +266,24 @@ reauth_dtable (void)
__spin_lock (&d->port.lock);
/* Reauthenticate the descriptor's port. */
- if (d->port.port != MACH_PORT_NULL &&
- ! __io_reauthenticate (d->port.port,
- ref, MACH_MSG_TYPE_MAKE_SEND) &&
- ! __USEPORT (AUTH, __auth_user_authenticate
- (port,
- ref, MACH_MSG_TYPE_MAKE_SEND,
- &new)))
+ if (d->port.port != MACH_PORT_NULL
+ && ! __io_reauthenticate (d->port.port,
+ ref, MACH_MSG_TYPE_MAKE_SEND)
+ && ! __USEPORT (AUTH, __auth_user_authenticate
+ (port,
+ ref, MACH_MSG_TYPE_MAKE_SEND,
+ &new)))
{
/* Replace the port in the descriptor cell
with the newly reauthenticated port. */
- if (d->ctty.port != MACH_PORT_NULL &&
- ! __io_reauthenticate (d->ctty.port,
- ref, MACH_MSG_TYPE_MAKE_SEND) &&
- ! __USEPORT (AUTH, __auth_user_authenticate
- (port,
- ref, MACH_MSG_TYPE_MAKE_SEND,
- &newctty)))
+ if (d->ctty.port != MACH_PORT_NULL
+ && ! __io_reauthenticate (d->ctty.port,
+ ref, MACH_MSG_TYPE_MAKE_SEND)
+ && ! __USEPORT (AUTH, __auth_user_authenticate
+ (port,
+ ref, MACH_MSG_TYPE_MAKE_SEND,
+ &newctty)))
_hurd_port_set (&d->ctty, newctty);
_hurd_port_locked_set (&d->port, new);
diff --git a/hurd/exc2signal.c b/hurd/exc2signal.c
index 10aa1ca4cf..59cd53a489 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd.h>
#include <hurd/signal.h>
diff --git a/hurd/fchroot.c b/hurd/fchroot.c
index ea97a1b388..a4e0ce1dfa 100644
--- a/hurd/fchroot.c
+++ b/hurd/fchroot.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
diff --git a/hurd/fcntl-internal.h b/hurd/fcntl-internal.h
index d795e4089c..aebc9e9c73 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
diff --git a/hurd/fd-close.c b/hurd/fd-close.c
index d5bd0ffbc2..d06e80a4b8 100644
--- a/hurd/fd-close.c
+++ b/hurd/fd-close.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd/fd.h>
diff --git a/hurd/fd-read.c b/hurd/fd-read.c
index ba3fce818b..05dbe0620c 100644
--- a/hurd/fd-read.c
+++ b/hurd/fd-read.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/hurd/fd-write.c b/hurd/fd-write.c
index 699f23d7e6..d86faab016 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1993-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/hurd/fopenport.c b/hurd/fopenport.c
index edb12b83f4..9701424aa9 100644
--- a/hurd/fopenport.c
+++ b/hurd/fopenport.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd.h>
#include <stdio.h>
diff --git a/hurd/get-host.c b/hurd/get-host.c
index 2001fc5a86..5b72bc9c0f 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fcntl.h>
#include <hurd.h>
diff --git a/hurd/getdport.c b/hurd/getdport.c
index 337c6a47ba..b626c34316 100644
--- a/hurd/getdport.c
+++ b/hurd/getdport.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd.h>
@@ -41,8 +41,8 @@ __getdport (int fd)
return MACH_PORT_NULL;
}
- if (fd < 0 || (unsigned int) fd > _hurd_init_dtablesize ||
- _hurd_init_dtable[fd] == MACH_PORT_NULL)
+ if (fd < 0 || (unsigned int) fd > _hurd_init_dtablesize
+ || _hurd_init_dtable[fd] == MACH_PORT_NULL)
{
errno = EBADF;
return MACH_PORT_NULL;
diff --git a/hurd/geteuids.c b/hurd/geteuids.c
index bf8d576238..91ed592be3 100644
--- a/hurd/geteuids.c
+++ b/hurd/geteuids.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd.h>
#include <hurd/id.h>
diff --git a/hurd/getumask.c b/hurd/getumask.c
index 5d68662e51..df68e63499 100644
--- a/hurd/getumask.c
+++ b/hurd/getumask.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd.h>
diff --git a/hurd/hurd-raise.c b/hurd/hurd-raise.c
index 9fe5541311..75d997acb8 100644
--- a/hurd/hurd-raise.c
+++ b/hurd/hurd-raise.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd.h>
#include <hurd/signal.h>
diff --git a/hurd/hurd.h b/hurd/hurd.h
index d3c868928b..ff7700a6c7 100644
--- a/hurd/hurd.h
+++ b/hurd/hurd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _HURD_H
diff --git a/hurd/hurd/fd.h b/hurd/hurd/fd.h
index af5fdcf759..d2983e751d 100644
--- a/hurd/hurd/fd.h
+++ b/hurd/hurd/fd.h
@@ -1,5 +1,5 @@
/* File descriptors.
- Copyright (C) 1993-2018 Free Software Foundation, Inc.
+ Copyright (C) 1993-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _HURD_FD_H
diff --git a/hurd/hurd/id.h b/hurd/hurd/id.h
index 38988bfe72..8492a50357 100644
--- a/hurd/hurd/id.h
+++ b/hurd/hurd/id.h
@@ -1,5 +1,5 @@
/* User and group IDs.
- Copyright (C) 1993-2018 Free Software Foundation, Inc.
+ Copyright (C) 1993-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _HURD_ID_H
diff --git a/hurd/hurd/ioctl.h b/hurd/hurd/ioctl.h
index ae74898255..c45a31cb17 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1993-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _HURD_IOCTL_H
#define _HURD_IOCTL_H 1
diff --git a/hurd/hurd/lookup.h b/hurd/hurd/lookup.h
index d0fa87b3d6..7485dfe60b 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _HURD_LOOKUP_H
#define _HURD_LOOKUP_H 1
diff --git a/hurd/hurd/port.h b/hurd/hurd/port.h
index 0779578d03..b656870724 100644
--- a/hurd/hurd/port.h
+++ b/hurd/hurd/port.h
@@ -1,5 +1,5 @@
/* Lightweight user references for ports.
- Copyright (C) 1993-2018 Free Software Foundation, Inc.
+ Copyright (C) 1993-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _HURD_PORT_H
@@ -127,6 +127,31 @@ _hurd_port_get (struct hurd_port *port,
#endif
+/* Relocate LINK to NEW_LINK.
+ To be used when e.g. reallocating a link array. */
+
+extern void
+_hurd_port_move (struct hurd_port *port,
+ struct hurd_userlink *new_link,
+ struct hurd_userlink *link);
+
+#if defined __USE_EXTERN_INLINES && defined _LIBC
+# if IS_IN (libc)
+_HURD_PORT_H_EXTERN_INLINE void
+_hurd_port_move (struct hurd_port *port,
+ struct hurd_userlink *new_link,
+ struct hurd_userlink *link)
+{
+ HURD_CRITICAL_BEGIN;
+ __spin_lock (&port->lock);
+ _hurd_userlink_move (new_link, link);
+ __spin_unlock (&port->lock);
+ HURD_CRITICAL_END;
+}
+# endif
+#endif
+
+
/* Free a reference gotten with `USED_PORT = _hurd_port_get (PORT, LINK);' */
extern void
diff --git a/hurd/hurd/resource.h b/hurd/hurd/resource.h
index eb93110799..965043969b 100644
--- a/hurd/hurd/resource.h
+++ b/hurd/hurd/resource.h
@@ -1,5 +1,5 @@
/* Resource limits for the Hurd.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _HURD_RESOURCE_H
#define _HURD_RESOURCE_H
diff --git a/hurd/hurd/signal.h b/hurd/hurd/signal.h
index f84c4ef485..3670a91a00 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1993-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _HURD_SIGNAL_H
@@ -168,7 +168,12 @@ extern int _hurd_core_limit;
A critical section is a section of code which cannot safely be interrupted
to run a signal handler; for example, code that holds any lock cannot be
interrupted lest the signal handler try to take the same lock and
- deadlock result. */
+ deadlock result.
+
+ As a consequence, a critical section will see its RPCs return EINTR, even if
+ SA_RESTART is set! In that case, the critical section should be left, so
+ that the handler can run, and the whole critical section be tried again, to
+ avoid unexpectingly exposing EINTR to the application. */
extern void *_hurd_critical_section_lock (void);
@@ -379,8 +384,8 @@ extern mach_msg_timeout_t _hurd_interrupted_rpc_timeout;
__mach_port_deallocate (__mach_task_self (), msgport); \
if ((dealloc_refport) && refport != MACH_PORT_NULL) \
__mach_port_deallocate (__mach_task_self (), refport); \
- } while (__err == MACH_SEND_INVALID_DEST || \
- __err == MIG_SERVER_DIED); \
+ } while (__err == MACH_SEND_INVALID_DEST \
+ || __err == MIG_SERVER_DIED); \
__err; \
})
diff --git a/hurd/hurd/sigpreempt.h b/hurd/hurd/sigpreempt.h
index a1df82e2c6..f318ecbd18 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _HURD_SIGPREEMPT_H
@@ -51,8 +51,8 @@ struct hurd_signal_preemptor
};
#define HURD_PREEMPT_SIGNAL_P(preemptor, signo, sigcode) \
- (((preemptor)->signals & sigmask (signo)) && \
- (sigcode) >= (preemptor)->first && (sigcode) <= (preemptor)->last)
+ (((preemptor)->signals & sigmask (signo)) \
+ && (sigcode) >= (preemptor)->first && (sigcode) <= (preemptor)->last)
/* Signal preemptors applying to all threads; locked by _hurd_siglock. */
diff --git a/hurd/hurd/threadvar.h b/hurd/hurd/threadvar.h
index 414e452db5..e3bb8db0c1 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _HURD_THREADVAR_H
#define _HURD_THREADVAR_H
diff --git a/hurd/hurd/userlink.h b/hurd/hurd/userlink.h
index f9362557cb..f466c7149b 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _HURD_USERLINK_H
@@ -142,6 +142,30 @@ _hurd_userlink_unlink (struct hurd_userlink *link)
# endif
#endif
+/* Relocate LINK to NEW_LINK.
+ To be used when e.g. reallocating a link array. */
+
+extern void _hurd_userlink_move (struct hurd_userlink *new_link,
+ struct hurd_userlink *link);
+
+#if defined __USE_EXTERN_INLINES && defined _LIBC
+# if IS_IN (libc)
+_HURD_USERLINK_H_EXTERN_INLINE void
+_hurd_userlink_move (struct hurd_userlink *new_link,
+ struct hurd_userlink *link)
+{
+ *new_link = *link;
+
+ if (new_link->resource.next != NULL)
+ new_link->resource.next->resource.prevp = &new_link->resource.next;
+ *new_link->resource.prevp = new_link;
+
+ if (new_link->thread.next != NULL)
+ new_link->thread.next->thread.prevp = &new_link->thread.next;
+ *new_link->thread.prevp = new_link;
+}
+# endif
+#endif
/* Clear all users from *CHAINP. Call this when the resource *CHAINP
protects is changing. If the return value is nonzero, no users are on
diff --git a/hurd/hurd/xattr.h b/hurd/hurd/xattr.h
index e9690831bb..18bc5d65bb 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _HURD_XATTR_H
#define _HURD_XATTR_H 1
diff --git a/hurd/hurdauth.c b/hurd/hurdauth.c
index 1a7e67ea0e..6c9324a5c9 100644
--- a/hurd/hurdauth.c
+++ b/hurd/hurdauth.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd.h>
#include <hurd/msg_server.h>
diff --git a/hurd/hurdchdir.c b/hurd/hurdchdir.c
index 1adc9895e3..b35214c4ea 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/hurd/hurdexec.c b/hurd/hurdexec.c
index 732c9ec34b..4e36d92f2e 100644
--- a/hurd/hurdexec.c
+++ b/hurd/hurdexec.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/hurd/hurdfault.c b/hurd/hurdfault.c
index 39a4522811..e9956a8d21 100644
--- a/hurd/hurdfault.c
+++ b/hurd/hurdfault.c
@@ -1,5 +1,5 @@
/* Handle faults in the signal thread.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd.h>
#include <hurd/signal.h>
@@ -52,8 +52,8 @@ _hurdsig_fault_catch_exception_raise (mach_port_t port,
int signo;
struct hurd_signal_detail d;
- if (port != forward_sigexc ||
- thread != _hurd_msgport_thread || task != __mach_task_self ())
+ if (port != forward_sigexc
+ || thread != _hurd_msgport_thread || task != __mach_task_self ())
return EPERM; /* Strange bogosity. */
d.exc = exception;
diff --git a/hurd/hurdfault.h b/hurd/hurdfault.h
index 04ae3903c3..b684243658 100644
--- a/hurd/hurdfault.h
+++ b/hurd/hurdfault.h
@@ -1,5 +1,5 @@
/* Declarations for handling faults in the signal thread.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _HURD_FAULT_H
#define _HURD_FAULT_H
diff --git a/hurd/hurdfchdir.c b/hurd/hurdfchdir.c
index cde753cc68..35f155a6b0 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/hurd/hurdhost.h b/hurd/hurdhost.h
index f2b3e68331..1f576a3ef4 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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 71b50df1eb..6eba34c960 100644
--- a/hurd/hurdid.c
+++ b/hurd/hurdid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd.h>
#include <hurd/id.h>
diff --git a/hurd/hurdinit.c b/hurd/hurdinit.c
index 6af1ddf610..93251197c7 100644
--- a/hurd/hurdinit.c
+++ b/hurd/hurdinit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/stat.h>
#include <stdlib.h>
@@ -100,10 +100,12 @@ _hurd_init (int flags, char **argv,
portarraysize * sizeof (mach_port_t));
if (flags & EXEC_SECURE)
- /* XXX if secure exec, elide environment variables
- which the library uses and could be security holes.
- CORESERVER, COREFILE
- */ ;
+ {
+ /* XXX if secure exec, elide environment variables
+ which the library uses and could be security holes.
+ CORESERVER, COREFILE
+ */
+ }
/* Call other things which want to do some initialization. These are not
on the __libc_subinit hook because things there like to be able to
@@ -198,10 +200,10 @@ _hurd_setproc (process_t procserver)
/* Tell the proc server where our args and environment are. */
if (err = __proc_set_arg_locations (procserver,
- _hide_arguments ? 0 :
- (vm_address_t) __libc_argv,
- _hide_environment ? 0 :
- (vm_address_t) __environ))
+ _hide_arguments ? 0
+ : (vm_address_t) __libc_argv,
+ _hide_environment ? 0
+ : (vm_address_t) __environ))
return err;
/* Those calls worked, so the port looks good. */
diff --git a/hurd/hurdioctl.c b/hurd/hurdioctl.c
index 5b05b3bfff..d706e49c27 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd.h>
#include <hurd/fd.h>
@@ -78,16 +78,16 @@ fioctl (int fd,
break;
case FIONBIO:
- err = HURD_DPORT_USE (fd, (*arg ?
- __io_set_some_openmodes :
- __io_clear_some_openmodes)
+ err = HURD_DPORT_USE (fd, (*arg
+ ? __io_set_some_openmodes
+ : __io_clear_some_openmodes)
(port, O_NONBLOCK));
break;
case FIOASYNC:
- err = HURD_DPORT_USE (fd, (*arg ?
- __io_set_some_openmodes :
- __io_clear_some_openmodes)
+ err = HURD_DPORT_USE (fd, (*arg
+ ? __io_set_some_openmodes
+ : __io_clear_some_openmodes)
(port, O_ASYNC));
break;
diff --git a/hurd/hurdkill.c b/hurd/hurdkill.c
index d1e28df5aa..157da3f6a9 100644
--- a/hurd/hurdkill.c
+++ b/hurd/hurdkill.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/types.h>
@@ -40,8 +40,8 @@ _hurd_sig_post (pid_t pid, int sig, mach_port_t arg_refport)
err = HURD_MSGPORT_RPC (__proc_getmsgport (proc, pid, &msgport),
(refport = arg_refport, 0), 0,
/* If no message port we cannot send signals. */
- msgport == MACH_PORT_NULL ? EPERM :
- __msg_sig_post (msgport, sig, 0, refport));
+ msgport == MACH_PORT_NULL ? EPERM
+ : __msg_sig_post (msgport, sig, 0, refport));
if (! err)
delivered = 1;
}
diff --git a/hurd/hurdlock.c b/hurd/hurdlock.c
index 382e9f2aa9..f8aa293e61 100644
--- a/hurd/hurdlock.c
+++ b/hurd/hurdlock.c
@@ -1,5 +1,5 @@
/* Hurd helpers for lowlevellocks.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "hurdlock.h"
#include <hurd.h>
@@ -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 4a8f416a1a..0de76ea97b 100644
--- a/hurd/hurdlock.h
+++ b/hurd/hurdlock.h
@@ -1,5 +1,5 @@
/* Low-level lock implementation. High-level Hurd helpers.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _HURD_LOCK_H
#define _HURD_LOCK_H 1
diff --git a/hurd/hurdlookup.c b/hurd/hurdlookup.c
index a642c49002..0007aaad7b 100644
--- a/hurd/hurdlookup.c
+++ b/hurd/hurdlookup.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd.h>
#include <hurd/lookup.h>
@@ -268,8 +268,8 @@ __file_name_lookup_under (file_t startdir,
error_t use_init_port (int which, error_t (*operate) (mach_port_t))
{
- return (which == INIT_PORT_CWDIR ? (*operate) (startdir) :
- _hurd_ports_use (which, operate));
+ return (which == INIT_PORT_CWDIR ? (*operate) (startdir)
+ : _hurd_ports_use (which, operate));
}
err = __hurd_file_name_lookup (&use_init_port, &__getdport, 0,
diff --git a/hurd/hurdmsg.c b/hurd/hurdmsg.c
index 63e5e81b87..02b04f28ab 100644
--- a/hurd/hurdmsg.c
+++ b/hurd/hurdmsg.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd.h>
#include <hurd/msg_server.h>
diff --git a/hurd/hurdpid.c b/hurd/hurdpid.c
index 33659cc1ba..b8cc0b3c67 100644
--- a/hurd/hurdpid.c
+++ b/hurd/hurdpid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd.h>
#include <lowlevellock.h>
diff --git a/hurd/hurdports.c b/hurd/hurdports.c
index 410beab292..a7152a208c 100644
--- a/hurd/hurdports.c
+++ b/hurd/hurdports.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd.h>
#include <hurd/port.h>
diff --git a/hurd/hurdprio.c b/hurd/hurdprio.c
index 3783fe9397..67af350e92 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd.h>
#include <hurd/resource.h>
diff --git a/hurd/hurdrlimit.c b/hurd/hurdrlimit.c
index 231a9a4f51..abfa4ed356 100644
--- a/hurd/hurdrlimit.c
+++ b/hurd/hurdrlimit.c
@@ -1,5 +1,5 @@
/* Resource limits.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd.h>
#include <cthreads.h>
diff --git a/hurd/hurdselect.c b/hurd/hurdselect.c
index 74f176d79d..6a174bc88a 100644
--- a/hurd/hurdselect.c
+++ b/hurd/hurdselect.c
@@ -1,5 +1,5 @@
/* Guts of both `select' and `poll' for Hurd.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#include <sys/time.h>
#include <sys/types.h>
#include <sys/poll.h>
#include <hurd.h>
#include <hurd/fd.h>
+#include <hurd/io_request.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <stdint.h>
+#include <limits.h>
+#include <time.h>
/* 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,49 +376,64 @@ _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 &&
- msg.head.msgh_size >= sizeof msg.error &&
- !(msg.head.msgh_bits & MACH_MSGH_BITS_COMPLEX) &&
+ 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
- msg.error.err_type.word == inttype.word
+ && msg.error.err_type.word == inttype.word
#endif
)
{
/* This is a properly formatted message so far.
See if it is a success or a failure. */
- if (msg.error.err == EINTR &&
- msg.head.msgh_size == sizeof msg.error)
+ if (msg.error.err == EINTR
+ && msg.head.msgh_size == sizeof msg.error)
{
/* EINTR response; poll for further responses
and then return quickly. */
err = EINTR;
goto poll;
}
- if (msg.error.err ||
- msg.head.msgh_size != sizeof msg.success ||
+ /* Keep in mind msg.success.result can be 0 if a timeout
+ occurred. */
+ if (msg.error.err
#ifdef MACH_MSG_TYPE_BIT
- msg.success.result_type.word != inttype.word ||
+ || 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 aa82f63413..ebe0308c74 100644
--- a/hurd/hurdsig.c
+++ b/hurd/hurdsig.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
@@ -57,7 +57,7 @@ unsigned long int __hurd_sigthread_stack_end;
struct hurd_sigstate *_hurd_sigstates;
/* Timeout for RPC's after interrupt_operation. */
-mach_msg_timeout_t _hurd_interrupted_rpc_timeout = 3000;
+mach_msg_timeout_t _hurd_interrupted_rpc_timeout = 60000;
static void
default_sigaction (struct sigaction actions[NSIG])
@@ -92,6 +92,7 @@ _hurd_thread_sigstate (thread_t thread)
__sigemptyset (&ss->blocked);
__sigemptyset (&ss->pending);
memset (&ss->sigaltstack, 0, sizeof (ss->sigaltstack));
+ ss->sigaltstack.ss_flags |= SS_DISABLE;
ss->preemptors = NULL;
ss->suspended = MACH_PORT_NULL;
ss->intr_port = MACH_PORT_NULL;
@@ -292,6 +293,7 @@ _hurdsig_abort_rpcs (struct hurd_sigstate *ss, int signo, int sigthread,
struct machine_thread_all_state *state, int *state_change,
void (*reply) (void))
{
+ extern const void _hurd_intr_rpc_msg_about_to;
extern const void _hurd_intr_rpc_msg_in_trap;
mach_port_t rcv_port = MACH_PORT_NULL;
mach_port_t intr_port;
@@ -307,7 +309,8 @@ _hurdsig_abort_rpcs (struct hurd_sigstate *ss, int signo, int sigthread,
receive completes immediately or aborts. */
abort_thread (ss, state, reply);
- if (state->basic.PC < (natural_t) &_hurd_intr_rpc_msg_in_trap)
+ if (state->basic.PC >= (natural_t) &_hurd_intr_rpc_msg_about_to
+ && state->basic.PC < (natural_t) &_hurd_intr_rpc_msg_in_trap)
{
/* The thread is about to do the RPC, but hasn't yet entered
mach_msg. Mutate the thread's state so it knows not to try
@@ -318,11 +321,11 @@ _hurdsig_abort_rpcs (struct hurd_sigstate *ss, int signo, int sigthread,
state->basic.SYSRETURN = MACH_SEND_INTERRUPTED;
*state_change = 1;
}
- else if (state->basic.PC == (natural_t) &_hurd_intr_rpc_msg_in_trap &&
+ else if (state->basic.PC == (natural_t) &_hurd_intr_rpc_msg_in_trap
/* The thread was blocked in the system call. After thread_abort,
the return value register indicates what state the RPC was in
when interrupted. */
- state->basic.SYSRETURN == MACH_RCV_INTERRUPTED)
+ && state->basic.SYSRETURN == MACH_RCV_INTERRUPTED)
{
/* The RPC request message was sent and the thread was waiting for
the reply message; now the message receive has been aborted, so
@@ -459,8 +462,8 @@ sigset_t _hurdsig_preempted_set;
weak_alias (_hurdsig_preemptors, _hurdsig_preempters)
/* Mask of stop signals. */
-#define STOPSIGS (sigmask (SIGTTIN) | sigmask (SIGTTOU) | \
- sigmask (SIGSTOP) | sigmask (SIGTSTP))
+#define STOPSIGS (sigmask (SIGTTIN) | sigmask (SIGTTOU) \
+ | sigmask (SIGSTOP) | sigmask (SIGTSTP))
/* Deliver a signal. SS is not locked. */
void
@@ -535,8 +538,8 @@ _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 (threads[i] != _hurd_msgport_thread
+ && (act != handle || threads[i] != ss->thread))
{
err = __thread_resume (threads[i]);
assert_perror (err);
@@ -712,9 +715,9 @@ _hurd_internal_post_signal (struct hurd_sigstate *ss,
}
}
- if (_hurd_orphaned && act == stop &&
- (__sigmask (signo) & (__sigmask (SIGTTIN) | __sigmask (SIGTTOU) |
- __sigmask (SIGTSTP))))
+ if (_hurd_orphaned && act == stop
+ && (__sigmask (signo) & (__sigmask (SIGTTIN) | __sigmask (SIGTTOU)
+ | __sigmask (SIGTSTP))))
{
/* If we would ordinarily stop for a job control signal, but we are
orphaned so noone would ever notice and continue us again, we just
@@ -725,9 +728,9 @@ _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 (act != ignore /* Signals ignored now are forgotten now. */
+ && __sigismember (&ss->blocked, signo)
+ || (signo != SIGKILL && _hurd_stopped))
{
mark_pending ();
act = ignore;
@@ -1365,10 +1368,10 @@ reauth_proc (mach_port_t new)
ref = __mach_reply_port ();
if (! HURD_PORT_USE (&_hurd_ports[INIT_PORT_PROC],
__proc_reauthenticate (port, ref,
- MACH_MSG_TYPE_MAKE_SEND) ||
- __auth_user_authenticate (new, ref,
- MACH_MSG_TYPE_MAKE_SEND,
- &ignore))
+ MACH_MSG_TYPE_MAKE_SEND)
+ || __auth_user_authenticate (new, ref,
+ MACH_MSG_TYPE_MAKE_SEND,
+ &ignore))
&& ignore != MACH_PORT_NULL)
__mach_port_deallocate (__mach_task_self (), ignore);
__mach_port_destroy (__mach_task_self (), ref);
diff --git a/hurd/hurdsock.c b/hurd/hurdsock.c
index bb98a6b745..9efd89316c 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd.h>
#include <sys/socket.h>
diff --git a/hurd/hurdsocket.h b/hurd/hurdsocket.h
index dab74febce..277f512785 100644
--- a/hurd/hurdsocket.h
+++ b/hurd/hurdsocket.h
@@ -1,5 +1,5 @@
/* Hurd-specific socket functions
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _HURD_HURDSOCKET_H
#define _HURD_HURDSOCKET_H
diff --git a/hurd/hurdstartup.c b/hurd/hurdstartup.c
index b148125c96..c0a78b3a82 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdlib.h>
@@ -127,9 +127,9 @@ _hurd_startup (void **argptr, void (*main) (intptr_t *data))
pointers and fill them in. We allocate the space for the
environment pointers immediately after the argv pointers because
the ELF ABI will expect it. */
- argcptr = __alloca (sizeof (intptr_t) +
- (argc + 1 + envc + 1) * sizeof (char *) +
- sizeof (struct hurd_startup_data));
+ argcptr = __alloca (sizeof (intptr_t)
+ + (argc + 1 + envc + 1) * sizeof (char *)
+ + sizeof (struct hurd_startup_data));
*argcptr = argc;
argv = (void *) (argcptr + 1);
__argz_extract (args, argslen, argv);
diff --git a/hurd/hurdstartup.h b/hurd/hurdstartup.h
index 64d12e19ba..9001e5660b 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _HURDSTARTUP_H
#define _HURDSTARTUP_H 1
diff --git a/hurd/intern-fd.c b/hurd/intern-fd.c
index 3b00824cc1..48a9821c87 100644
--- a/hurd/intern-fd.c
+++ b/hurd/intern-fd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd.h>
#include <hurd/fd.h>
diff --git a/hurd/intr-msg.c b/hurd/intr-msg.c
index 2f83ac6ce7..ee53d3a1de 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <mach.h>
#include <mach/mig_errors.h>
@@ -114,23 +114,10 @@ _hurd_intr_rpc_mach_msg (mach_msg_header_t *msg,
message:
- /* XXX
- At all points here (once SS->intr_port is set), the signal thread
- thinks we are "about to enter the syscall", and might mutate our
- return-value register. This is bogus.
- */
-
- if (ss->cancel)
- {
- /* We have been cancelled. Don't do an RPC at all. */
- ss->intr_port = MACH_PORT_NULL;
- ss->cancel = 0;
- return EINTR;
- }
-
/* Note that the signal trampoline code might modify our OPTION! */
err = INTR_MSG_TRAP (msg, option, send_size,
- rcv_size, rcv_name, timeout, notify);
+ rcv_size, rcv_name, timeout, notify,
+ &ss->cancel, &ss->intr_port);
switch (err)
{
@@ -141,7 +128,7 @@ _hurd_intr_rpc_mach_msg (mach_msg_header_t *msg,
else
/* The operation was supposedly interrupted, but still has
not returned. Declare it interrupted. */
- goto interrupted;
+ goto dead;
case MACH_SEND_INTERRUPTED: /* RPC didn't get out. */
if (!(option & MACH_SEND_MSG))
@@ -324,17 +311,21 @@ _hurd_intr_rpc_mach_msg (mach_msg_header_t *msg,
timeout = user_timeout;
goto message;
}
- /* FALLTHROUGH */
+ err = EINTR;
+
+ /* The EINTR return indicates cancellation, so clear the flag. */
+ ss->cancel = 0;
+ break;
case MACH_RCV_PORT_DIED:
/* Server didn't respond to interrupt_operation,
so the signal thread destroyed the reply port. */
/* FALLTHROUGH */
- interrupted:
- err = EINTR;
+ dead:
+ err = EIEIO;
- /* The EINTR return indicates cancellation, so clear the flag. */
+ /* The EIEIO return indicates cancellation, so clear the flag. */
ss->cancel = 0;
break;
@@ -371,12 +362,12 @@ _hurd_intr_rpc_mach_msg (mach_msg_header_t *msg,
1, TRUE, FALSE, FALSE, 0 } };
#endif
- if (m->reply.RetCode == EINTR &&
- m->header.msgh_size == sizeof m->reply &&
+ if (m->reply.RetCode == EINTR
+ && m->header.msgh_size == sizeof m->reply
#ifdef MACH_MSG_TYPE_BIT
- m->check.type == check.i &&
+ && m->check.type == check.i
#endif
- !(m->header.msgh_bits & MACH_MSGH_BITS_COMPLEX))
+ && !(m->header.msgh_bits & MACH_MSGH_BITS_COMPLEX))
{
/* It is indeed EINTR. Is the interrupt for us? */
if (ss->intr_port != MACH_PORT_NULL)
diff --git a/hurd/intr-rpc.defs b/hurd/intr-rpc.defs
index c48443dd6f..eb3586b7b6 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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 5e7937b7cb..dfc51af008 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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 5a8bf6fe06..a520eab75d 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <setjmp.h>
#include <mach/thread_status.h>
diff --git a/hurd/lookup-at.c b/hurd/lookup-at.c
index deddc2264c..1dd64cc350 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd.h>
#include <hurd/lookup.h>
@@ -28,6 +28,9 @@ __file_name_lookup_at (int fd, int at_flags,
{
error_t err;
file_t result;
+ int empty = at_flags & AT_EMPTY_PATH;
+
+ at_flags &= ~AT_EMPTY_PATH;
err = __hurd_at_flags (&at_flags, &flags);
if (err)
@@ -36,11 +39,28 @@ __file_name_lookup_at (int fd, int at_flags,
if (fd == AT_FDCWD || file_name[0] == '/')
return __file_name_lookup (file_name, flags, mode);
+ if (empty != 0 && file_name[0] == '\0')
+ {
+ enum retry_type doretry;
+ char retryname[1024]; /* XXX string_t LOSES! */
+
+ err = HURD_DPORT_USE (fd, __dir_lookup (port, "", flags, mode,
+ &doretry, retryname,
+ &result));
+
+ if (! err)
+ err = __hurd_file_name_lookup_retry (&_hurd_ports_use, &__getdport,
+ NULL, doretry, retryname,
+ flags, mode, &result);
+
+ return err ? (__hurd_dfail (fd, err), MACH_PORT_NULL) : result;
+ }
+
file_t startdir;
error_t use_init_port (int which, error_t (*operate) (mach_port_t))
{
- return (which == INIT_PORT_CWDIR ? (*operate) (startdir) :
- _hurd_ports_use (which, operate));
+ return (which == INIT_PORT_CWDIR ? (*operate) (startdir)
+ : _hurd_ports_use (which, operate));
}
err = HURD_DPORT_USE (fd, (startdir = port,
@@ -69,8 +89,8 @@ __file_name_split_at (int fd, const char *file_name, char **name)
file_t startdir;
error_t use_init_port (int which, error_t (*operate) (mach_port_t))
{
- return (which == INIT_PORT_CWDIR ? (*operate) (startdir) :
- _hurd_ports_use (which, operate));
+ return (which == INIT_PORT_CWDIR ? (*operate) (startdir)
+ : _hurd_ports_use (which, operate));
}
err = HURD_DPORT_USE (fd, (startdir = port,
@@ -94,8 +114,8 @@ __directory_name_split_at (int fd, const char *directory_name, char **name)
file_t startdir;
error_t use_init_port (int which, error_t (*operate) (mach_port_t))
{
- return (which == INIT_PORT_CWDIR ? (*operate) (startdir) :
- _hurd_ports_use (which, operate));
+ return (which == INIT_PORT_CWDIR ? (*operate) (startdir)
+ : _hurd_ports_use (which, operate));
}
err = HURD_DPORT_USE (fd, (startdir = port,
diff --git a/hurd/lookup-retry.c b/hurd/lookup-retry.c
index b596848624..6a21f2ef12 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1992-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd.h>
#include <hurd/lookup.h>
@@ -25,6 +25,7 @@
#include <string.h>
#include <_itoa.h>
#include <eloop-threshold.h>
+#include <unistd.h>
/* Translate the error from dir_lookup into the error the user sees. */
static inline error_t
@@ -59,6 +60,7 @@ __hurd_file_name_lookup_retry (error_t (*use_init_port)
error_t err;
char *file_name;
int nloops;
+ file_t lastdir = MACH_PORT_NULL;
error_t lookup_op (file_t startdir)
{
@@ -107,21 +109,22 @@ __hurd_file_name_lookup_retry (error_t (*use_init_port)
{
case FS_RETRY_REAUTH:
if (err = reauthenticate (*result))
- return err;
+ goto out;
/* Fall through. */
case FS_RETRY_NORMAL:
if (nloops++ >= __eloop_threshold ())
{
__mach_port_deallocate (__mach_task_self (), *result);
- return ELOOP;
+ err = ELOOP;
+ goto out;
}
/* An empty RETRYNAME indicates we have the final port. */
- if (retryname[0] == '\0' &&
+ if (retryname[0] == '\0'
/* If reauth'd, we must do one more retry on "" to give the new
translator a chance to make a new port for us. */
- doretry == FS_RETRY_NORMAL)
+ && doretry == FS_RETRY_NORMAL)
{
if (flags & O_NOFOLLOW)
{
@@ -180,7 +183,7 @@ __hurd_file_name_lookup_retry (error_t (*use_init_port)
if (err)
__mach_port_deallocate (__mach_task_self (), *result);
- return err;
+ goto out;
}
startdir = *result;
@@ -195,7 +198,10 @@ __hurd_file_name_lookup_retry (error_t (*use_init_port)
if (*result != MACH_PORT_NULL)
__mach_port_deallocate (__mach_task_self (), *result);
if (nloops++ >= __eloop_threshold ())
- return ELOOP;
+ {
+ err = ELOOP;
+ goto out;
+ }
file_name = &retryname[1];
break;
@@ -207,14 +213,15 @@ __hurd_file_name_lookup_retry (error_t (*use_init_port)
int save = errno;
errno = 0;
fd = (int) __strtoul_internal (&retryname[3], &end, 10, 0);
- if (end == NULL || errno || /* Malformed number. */
+ if (end == NULL || errno /* Malformed number. */
/* Check for excess text after the number. A slash
is valid; it ends the component. Anything else
does not name a numeric file descriptor. */
- (*end != '/' && *end != '\0'))
+ || (*end != '/' && *end != '\0'))
{
errno = save;
- return ENOENT;
+ err = ENOENT;
+ goto out;
}
if (! get_dtable_port)
err = EGRATUITOUS;
@@ -232,9 +239,12 @@ __hurd_file_name_lookup_retry (error_t (*use_init_port)
}
errno = save;
if (err)
- return err;
+ goto out;
if (*end == '\0')
- return 0;
+ {
+ err = 0;
+ goto out;
+ }
else
{
/* Do a normal retry on the remaining components. */
@@ -248,10 +258,10 @@ __hurd_file_name_lookup_retry (error_t (*use_init_port)
break;
case 'm':
- if (retryname[1] == 'a' && retryname[2] == 'c' &&
- retryname[3] == 'h' && retryname[4] == 't' &&
- retryname[5] == 'y' && retryname[6] == 'p' &&
- retryname[7] == 'e')
+ if (retryname[1] == 'a' && retryname[2] == 'c'
+ && retryname[3] == 'h' && retryname[4] == 't'
+ && retryname[5] == 'y' && retryname[6] == 'p'
+ && retryname[7] == 'e')
{
error_t err;
struct host_basic_info hostinfo;
@@ -261,9 +271,12 @@ __hurd_file_name_lookup_retry (error_t (*use_init_port)
if (err = __host_info (__mach_host_self (), HOST_BASIC_INFO,
(integer_t *) &hostinfo,
&hostinfocnt))
- return err;
+ goto out;
if (hostinfocnt != HOST_BASIC_INFO_COUNT)
- return EGRATUITOUS;
+ {
+ err = EGRATUITOUS;
+ goto out;
+ }
p = _itoa (hostinfo.cpu_subtype, &retryname[8], 10, 0);
*--p = '/';
p = _itoa (hostinfo.cpu_type, &retryname[8], 10, 0);
@@ -299,10 +312,11 @@ __hurd_file_name_lookup_retry (error_t (*use_init_port)
}
case '\0':
- return opentty (result);
+ err = opentty (result);
+ goto out;
case '/':
if (err = opentty (&startdir))
- return err;
+ goto out;
strcpy (retryname, &retryname[4]);
break;
default:
@@ -312,14 +326,48 @@ __hurd_file_name_lookup_retry (error_t (*use_init_port)
goto bad_magic;
break;
+ case 'p':
+ if (retryname[1] == 'i' && retryname[2] == 'd'
+ && (retryname[3] == '/' || retryname[3] == 0))
+ {
+ char *p, buf[1024]; /* XXX */
+ size_t len;
+ p = _itoa (__getpid (), &buf[sizeof buf], 10, 0);
+ len = &buf[sizeof buf] - p;
+ memcpy (buf, p, len);
+ strcpy (buf + len, &retryname[3]);
+ strcpy (retryname, buf);
+
+ /* Do a normal retry on the remaining components. */
+ __mach_port_mod_refs (__mach_task_self (), lastdir,
+ MACH_PORT_RIGHT_SEND, 1);
+ startdir = lastdir;
+ file_name = retryname;
+ }
+ else
+ goto bad_magic;
+ break;
+
default:
bad_magic:
- return EGRATUITOUS;
+ err = EGRATUITOUS;
+ goto out;
}
break;
default:
- return EGRATUITOUS;
+ err = EGRATUITOUS;
+ goto out;
+ }
+
+ if (MACH_PORT_VALID (*result) && *result != lastdir)
+ {
+ if (MACH_PORT_VALID (lastdir))
+ __mach_port_deallocate (__mach_task_self (), lastdir);
+
+ lastdir = *result;
+ __mach_port_mod_refs (__mach_task_self (), lastdir,
+ MACH_PORT_RIGHT_SEND, 1);
}
if (startdir != MACH_PORT_NULL)
@@ -332,6 +380,10 @@ __hurd_file_name_lookup_retry (error_t (*use_init_port)
err = (*use_init_port) (dirport, &lookup_op);
} while (! err);
+out:
+ if (MACH_PORT_VALID (lastdir))
+ __mach_port_deallocate (__mach_task_self (), lastdir);
+
return err;
}
weak_alias (__hurd_file_name_lookup_retry, hurd_file_name_lookup_retry)
diff --git a/hurd/msgportdemux.c b/hurd/msgportdemux.c
index 370cf4fb81..b57a97c36a 100644
--- a/hurd/msgportdemux.c
+++ b/hurd/msgportdemux.c
@@ -1,5 +1,5 @@
/* Demux messages sent on the signal port.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd.h>
#include <hurd/signal.h>
@@ -46,8 +46,8 @@ msgport_server (mach_msg_header_t *inp,
if ((*d->demux) (inp, outp))
return 1;
- return (_S_exc_server (inp, outp) ||
- _S_msg_server (inp, outp));
+ return (_S_exc_server (inp, outp)
+ || _S_msg_server (inp, outp));
}
/* This is the code that the signal thread runs. */
diff --git a/hurd/new-fd.c b/hurd/new-fd.c
index eab03471bf..868fb291a9 100644
--- a/hurd/new-fd.c
+++ b/hurd/new-fd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd/fd.h>
#include <stdlib.h>
diff --git a/hurd/openport.c b/hurd/openport.c
index 308e19a4ad..344f361430 100644
--- a/hurd/openport.c
+++ b/hurd/openport.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd.h>
#include <hurd/fd.h>
diff --git a/hurd/path-lookup.c b/hurd/path-lookup.c
index 5607d5809c..0a44ec4f24 100644
--- a/hurd/path-lookup.c
+++ b/hurd/path-lookup.c
@@ -1,5 +1,5 @@
/* Filename lookup using a search path
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.ai.mit.edu>
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <hurd.h>
diff --git a/hurd/pid2task.c b/hurd/pid2task.c
index fd3ca02f3f..4e72fbc86f 100644
--- a/hurd/pid2task.c
+++ b/hurd/pid2task.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd.h>
diff --git a/hurd/port-cleanup.c b/hurd/port-cleanup.c
index fe22b458cc..b43b79383d 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <mach.h>
#include <hurd/port.h>
diff --git a/hurd/port2fd.c b/hurd/port2fd.c
index 858a409f4a..ab825bebd3 100644
--- a/hurd/port2fd.c
+++ b/hurd/port2fd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd.h>
#include <hurd/fd.h>
@@ -34,8 +34,9 @@ _hurd_port2fd (struct hurd_fd *d, io_t dport, int flags)
if (!(flags & O_IGNORE_CTTY))
__USEPORT (CTTYID,
({
- if (port != MACH_PORT_NULL && /* Do we have a ctty? */
- ! __term_getctty (dport, &cttyid)) /* Could this be it? */
+ if (port != MACH_PORT_NULL /* Do we have a ctty? */
+ && ! __term_getctty (dport, &cttyid))
+ /* Could this be it? */
{
__mach_port_deallocate (__mach_task_self (), cttyid);
/* This port is capable of being a controlling tty.
diff --git a/hurd/ports-get.c b/hurd/ports-get.c
index 648f029ed8..25ce29bfc8 100644
--- a/hurd/ports-get.c
+++ b/hurd/ports-get.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd.h>
diff --git a/hurd/ports-set.c b/hurd/ports-set.c
index 9ecd69cc39..f05bcd4cba 100644
--- a/hurd/ports-set.c
+++ b/hurd/ports-set.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd.h>
diff --git a/hurd/preempt-sig.c b/hurd/preempt-sig.c
index c31e85e53d..84a2870f46 100644
--- a/hurd/preempt-sig.c
+++ b/hurd/preempt-sig.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd/sigpreempt.h>
#include <hurd/signal.h>
diff --git a/hurd/privports.c b/hurd/privports.c
index 68121e77f0..4bebb4e8ee 100644
--- a/hurd/privports.c
+++ b/hurd/privports.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd.h>
diff --git a/hurd/report-wait.c b/hurd/report-wait.c
index db63fbe844..9fe2a29075 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd.h>
#include <hurd/signal.h>
diff --git a/hurd/set-host.c b/hurd/set-host.c
index 6e20d15d4b..d3b62c616a 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fcntl.h>
#include <hurd.h>
diff --git a/hurd/setauth.c b/hurd/setauth.c
index 025be580e1..2e78660516 100644
--- a/hurd/setauth.c
+++ b/hurd/setauth.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd.h>
#include <hurd/port.h>
@@ -67,12 +67,12 @@ _hurd_setauth (auth_t new)
mach_port_t new;
ref = __mach_reply_port ();
if (! __io_reauthenticate (_hurd_init_dtable[d],
- ref, MACH_MSG_TYPE_MAKE_SEND) &&
- ! HURD_PORT_USE (&_hurd_ports[INIT_PORT_AUTH],
- __auth_user_authenticate
- (port,
- ref, MACH_MSG_TYPE_MAKE_SEND,
- &new)))
+ ref, MACH_MSG_TYPE_MAKE_SEND)
+ && ! HURD_PORT_USE (&_hurd_ports[INIT_PORT_AUTH],
+ __auth_user_authenticate
+ (port,
+ ref, MACH_MSG_TYPE_MAKE_SEND,
+ &new)))
{
__mach_port_deallocate (__mach_task_self (),
_hurd_init_dtable[d]);
@@ -84,20 +84,20 @@ _hurd_setauth (auth_t new)
ref = __mach_reply_port ();
if (__USEPORT (CRDIR,
! __io_reauthenticate (port,
- ref, MACH_MSG_TYPE_MAKE_SEND) &&
- ! __auth_user_authenticate (new,
- ref, MACH_MSG_TYPE_MAKE_SEND,
- &newport)))
+ ref, MACH_MSG_TYPE_MAKE_SEND)
+ && ! __auth_user_authenticate (new,
+ ref, MACH_MSG_TYPE_MAKE_SEND,
+ &newport)))
_hurd_port_set (&_hurd_ports[INIT_PORT_CRDIR], newport);
__mach_port_destroy (__mach_task_self (), ref);
ref = __mach_reply_port ();
if (__USEPORT (CWDIR,
! __io_reauthenticate (port,
- ref, MACH_MSG_TYPE_MAKE_SEND) &&
- ! __auth_user_authenticate (new,
- ref, MACH_MSG_TYPE_MAKE_SEND,
- &newport)))
+ ref, MACH_MSG_TYPE_MAKE_SEND)
+ && ! __auth_user_authenticate (new,
+ ref, MACH_MSG_TYPE_MAKE_SEND,
+ &newport)))
_hurd_port_set (&_hurd_ports[INIT_PORT_CWDIR], newport);
__mach_port_destroy (__mach_task_self (), ref);
diff --git a/hurd/seteuids.c b/hurd/seteuids.c
index edfa4c2195..1afd3a7db7 100644
--- a/hurd/seteuids.c
+++ b/hurd/seteuids.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd.h>
#include <hurd/id.h>
diff --git a/hurd/siginfo.c b/hurd/siginfo.c
index 75e02d5282..7b080e1449 100644
--- a/hurd/siginfo.c
+++ b/hurd/siginfo.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd/signal.h>
#include <stdio.h>
diff --git a/hurd/sigunwind.c b/hurd/sigunwind.c
index 40e0f679f7..80626eeffe 100644
--- a/hurd/sigunwind.c
+++ b/hurd/sigunwind.c
@@ -1,5 +1,5 @@
/* longjmp cleanup function for unwinding past signal handlers.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd.h>
#include <thread_state.h>
diff --git a/hurd/task2pid.c b/hurd/task2pid.c
index 265cb88326..da9fd6a148 100644
--- a/hurd/task2pid.c
+++ b/hurd/task2pid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd.h>
diff --git a/hurd/thread-cancel.c b/hurd/thread-cancel.c
index c70b814dda..b137f0e4d3 100644
--- a/hurd/thread-cancel.c
+++ b/hurd/thread-cancel.c
@@ -1,5 +1,5 @@
/* Thread cancellation support.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd/signal.h>
#include <hurd/interrupt.h>
diff --git a/hurd/thread-self.c b/hurd/thread-self.c
index d6d96617f1..39950bc366 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd/signal.h>
diff --git a/hurd/trampoline.c b/hurd/trampoline.c
index 9bc278215a..ee8906bc5b 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd.h>
#include <mach/thread_status.h>
diff --git a/hurd/vpprintf.c b/hurd/vpprintf.c
index 76cd31f922..09e4df11a3 100644
--- a/hurd/vpprintf.c
+++ b/hurd/vpprintf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdarg.h>
#include <stdio.h>
@@ -53,7 +53,7 @@ vpprintf (io_t port, const char *format, va_list arg)
_IO_cookie_init (&temp_f.cfile, _IO_NO_READS,
(void *) port, (cookie_io_functions_t) { write: do_write });
- done = _IO_vfprintf (&temp_f.cfile.__fp.file, format, arg);
+ done = __vfprintf_internal (&temp_f.cfile.__fp.file, format, arg, 0);
return done;
}
diff --git a/hurd/xattr.c b/hurd/xattr.c
index 23d9fcb691..7f7c6ed6d0 100644
--- a/hurd/xattr.c
+++ b/hurd/xattr.c
@@ -1,5 +1,5 @@
/* Support for *xattr interfaces on GNU/Hurd.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd.h>
#include <hurd/xattr.h>
diff --git a/iconv/Makefile b/iconv/Makefile
index d71319b39e..b7a8f5e0d4 100644
--- a/iconv/Makefile
+++ b/iconv/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1997-2018 Free Software Foundation, Inc.
+# Copyright (C) 1997-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
# Makefile for iconv.
@@ -43,7 +43,8 @@ CFLAGS-charmap.c += -DCHARMAP_PATH='"$(i18ndir)/charmaps"' \
CFLAGS-linereader.c += -DNO_TRANSLITERATION
CFLAGS-simple-hash.c += -I../locale
-tests = tst-iconv1 tst-iconv2 tst-iconv3 tst-iconv4 tst-iconv5 tst-iconv6
+tests = tst-iconv1 tst-iconv2 tst-iconv3 tst-iconv4 tst-iconv5 tst-iconv6 \
+ tst-iconv7 tst-iconv-mt
others = iconv_prog iconvconfig
install-others-programs = $(inst_bindir)/iconv
@@ -67,6 +68,8 @@ endif
$(objpfx)gconv-modules: test-gconv-modules
cp $< $@
+$(objpfx)tst-iconv-mt: $(shared-thread-library)
+
ifeq (yes,$(build-shared))
tests += tst-gconv-init-failure
modules-names += tst-gconv-init-failure-mod
diff --git a/iconv/dummy-repertoire.c b/iconv/dummy-repertoire.c
index 6309eaacb2..ddb427c6c4 100644
--- a/iconv/dummy-repertoire.c
+++ b/iconv/dummy-repertoire.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconv/gconv.c b/iconv/gconv.c
index 2612a4f52b..06c8d77d6f 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <dlfcn.h>
diff --git a/iconv/gconv.h b/iconv/gconv.h
index e53f4dba0e..0e689d4c58 100644
--- a/iconv/gconv.h
+++ b/iconv/gconv.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This header provides no interface for a user to the internals of
the gconv implementation in the libc. Therefore there is no use
@@ -86,6 +86,8 @@ struct __gconv_step
struct __gconv_loaded_object *__shlib_handle;
const char *__modname;
+ /* For internal use by glibc. (Accesses to this member must occur
+ when the internal __gconv_lock mutex is acquired). */
int __counter;
char *__from_name;
@@ -142,13 +144,4 @@ typedef struct __gconv_info
__extension__ struct __gconv_step_data __data[0];
} *__gconv_t;
-/* Transliteration using the locale's data. */
-extern int __gconv_transliterate (struct __gconv_step *step,
- struct __gconv_step_data *step_data,
- const unsigned char *inbufstart,
- const unsigned char **inbufp,
- const unsigned char *inbufend,
- unsigned char **outbufstart,
- size_t *irreversible);
-
#endif /* gconv.h */
diff --git a/iconv/gconv_builtin.c b/iconv/gconv_builtin.c
index 57dc80f36f..ff08b18515 100644
--- a/iconv/gconv_builtin.c
+++ b/iconv/gconv_builtin.c
@@ -1,5 +1,5 @@
/* Table for builtin transformation mapping.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <endian.h>
#include <limits.h>
diff --git a/iconv/gconv_builtin.h b/iconv/gconv_builtin.h
index b8bed3e866..0339ddb350 100644
--- a/iconv/gconv_builtin.h
+++ b/iconv/gconv_builtin.h
@@ -1,5 +1,5 @@
/* Builtin transformations.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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 0b114aa2db..197a33be2e 100644
--- a/iconv/gconv_cache.c
+++ b/iconv/gconv_cache.c
@@ -1,5 +1,5 @@
/* Cache handling for iconv modules.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <errno.h>
diff --git a/iconv/gconv_charset.h b/iconv/gconv_charset.h
index 123e2a62ce..6fbfc34bd8 100644
--- a/iconv/gconv_charset.h
+++ b/iconv/gconv_charset.h
@@ -1,5 +1,5 @@
/* Charset name normalization.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <locale.h>
diff --git a/iconv/gconv_close.c b/iconv/gconv_close.c
index 7fbe657bb9..fe913fc219 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
diff --git a/iconv/gconv_conf.c b/iconv/gconv_conf.c
index f173cde71b..23658dd633 100644
--- a/iconv/gconv_conf.c
+++ b/iconv/gconv_conf.c
@@ -1,5 +1,5 @@
/* Handle configuration data.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <ctype.h>
@@ -38,6 +38,13 @@
/* This is the default path where we look for module lists. */
static const char default_gconv_path[] = GCONV_PATH;
+/* Type to represent search path. */
+struct path_elem
+{
+ const char *name;
+ size_t len;
+};
+
/* The path elements, as determined by the __gconv_get_path function.
All path elements end in a slash. */
struct path_elem *__gconv_path_elem;
@@ -419,119 +426,115 @@ read_conf_file (const char *filename, const char *directory, size_t dir_len,
}
-/* Determine the directories we are looking for data in. */
-void
+/* Determine the directories we are looking for data in. This function should
+ only be called from __gconv_read_conf. */
+static void
__gconv_get_path (void)
{
struct path_elem *result;
- __libc_lock_define_initialized (static, lock);
-
- __libc_lock_lock (lock);
- /* Make sure there wasn't a second thread doing it already. */
- result = (struct path_elem *) __gconv_path_elem;
- if (result == NULL)
+ /* This function is only ever called when __gconv_path_elem is NULL. */
+ result = __gconv_path_elem;
+ assert (result == NULL);
+
+ /* Determine the complete path first. */
+ char *gconv_path;
+ size_t gconv_path_len;
+ char *elem;
+ char *oldp;
+ char *cp;
+ int nelems;
+ char *cwd;
+ size_t cwdlen;
+
+ if (__gconv_path_envvar == NULL)
{
- /* Determine the complete path first. */
- char *gconv_path;
- size_t gconv_path_len;
- char *elem;
- char *oldp;
- char *cp;
- int nelems;
- char *cwd;
- size_t cwdlen;
-
- if (__gconv_path_envvar == NULL)
- {
- /* No user-defined path. Make a modifiable copy of the
- default path. */
- gconv_path = strdupa (default_gconv_path);
- gconv_path_len = sizeof (default_gconv_path);
- cwd = NULL;
- cwdlen = 0;
- }
- else
- {
- /* Append the default path to the user-defined path. */
- size_t user_len = strlen (__gconv_path_envvar);
-
- gconv_path_len = user_len + 1 + sizeof (default_gconv_path);
- gconv_path = alloca (gconv_path_len);
- __mempcpy (__mempcpy (__mempcpy (gconv_path, __gconv_path_envvar,
- user_len),
- ":", 1),
- default_gconv_path, sizeof (default_gconv_path));
- cwd = __getcwd (NULL, 0);
- cwdlen = __glibc_unlikely (cwd == NULL) ? 0 : strlen (cwd);
- }
- assert (default_gconv_path[0] == '/');
-
- /* In a first pass we calculate the number of elements. */
- oldp = NULL;
- cp = strchr (gconv_path, ':');
- nelems = 1;
- while (cp != NULL)
- {
- if (cp != oldp + 1)
- ++nelems;
- oldp = cp;
- cp = strchr (cp + 1, ':');
- }
-
- /* Allocate the memory for the result. */
- result = (struct path_elem *) malloc ((nelems + 1)
- * sizeof (struct path_elem)
- + gconv_path_len + nelems
- + (nelems - 1) * (cwdlen + 1));
- if (result != NULL)
- {
- char *strspace = (char *) &result[nelems + 1];
- int n = 0;
-
- /* Separate the individual parts. */
- __gconv_max_path_elem_len = 0;
- elem = __strtok_r (gconv_path, ":", &gconv_path);
- assert (elem != NULL);
- do
- {
- result[n].name = strspace;
- if (elem[0] != '/')
- {
- assert (cwd != NULL);
- strspace = __mempcpy (strspace, cwd, cwdlen);
- *strspace++ = '/';
- }
- strspace = __stpcpy (strspace, elem);
- if (strspace[-1] != '/')
- *strspace++ = '/';
-
- result[n].len = strspace - result[n].name;
- if (result[n].len > __gconv_max_path_elem_len)
- __gconv_max_path_elem_len = result[n].len;
-
- *strspace++ = '\0';
- ++n;
- }
- while ((elem = __strtok_r (NULL, ":", &gconv_path)) != NULL);
-
- result[n].name = NULL;
- result[n].len = 0;
- }
+ /* No user-defined path. Make a modifiable copy of the
+ default path. */
+ gconv_path = strdupa (default_gconv_path);
+ gconv_path_len = sizeof (default_gconv_path);
+ cwd = NULL;
+ cwdlen = 0;
+ }
+ else
+ {
+ /* Append the default path to the user-defined path. */
+ size_t user_len = strlen (__gconv_path_envvar);
+
+ gconv_path_len = user_len + 1 + sizeof (default_gconv_path);
+ gconv_path = alloca (gconv_path_len);
+ __mempcpy (__mempcpy (__mempcpy (gconv_path, __gconv_path_envvar,
+ user_len),
+ ":", 1),
+ default_gconv_path, sizeof (default_gconv_path));
+ cwd = __getcwd (NULL, 0);
+ cwdlen = __glibc_unlikely (cwd == NULL) ? 0 : strlen (cwd);
+ }
+ assert (default_gconv_path[0] == '/');
- __gconv_path_elem = result ?: (struct path_elem *) &empty_path_elem;
+ /* In a first pass we calculate the number of elements. */
+ oldp = NULL;
+ cp = strchr (gconv_path, ':');
+ nelems = 1;
+ while (cp != NULL)
+ {
+ if (cp != oldp + 1)
+ ++nelems;
+ oldp = cp;
+ cp = strchr (cp + 1, ':');
+ }
- free (cwd);
+ /* Allocate the memory for the result. */
+ result = malloc ((nelems + 1)
+ * sizeof (struct path_elem)
+ + gconv_path_len + nelems
+ + (nelems - 1) * (cwdlen + 1));
+ if (result != NULL)
+ {
+ char *strspace = (char *) &result[nelems + 1];
+ int n = 0;
+
+ /* Separate the individual parts. */
+ __gconv_max_path_elem_len = 0;
+ elem = __strtok_r (gconv_path, ":", &gconv_path);
+ assert (elem != NULL);
+ do
+ {
+ result[n].name = strspace;
+ if (elem[0] != '/')
+ {
+ assert (cwd != NULL);
+ strspace = __mempcpy (strspace, cwd, cwdlen);
+ *strspace++ = '/';
+ }
+ strspace = __stpcpy (strspace, elem);
+ if (strspace[-1] != '/')
+ *strspace++ = '/';
+
+ result[n].len = strspace - result[n].name;
+ if (result[n].len > __gconv_max_path_elem_len)
+ __gconv_max_path_elem_len = result[n].len;
+
+ *strspace++ = '\0';
+ ++n;
+ }
+ while ((elem = __strtok_r (NULL, ":", &gconv_path)) != NULL);
+
+ result[n].name = NULL;
+ result[n].len = 0;
}
- __libc_lock_unlock (lock);
+ __gconv_path_elem = result ?: (struct path_elem *) &empty_path_elem;
+
+ free (cwd);
}
/* Read all configuration files found in the user-specified and the default
- path. */
-void
-attribute_hidden
+ path. This function should only be called once during the program's
+ lifetime. It disregards locking and synchronization because its only
+ caller, __gconv_load_conf, handles this. */
+static void
__gconv_read_conf (void)
{
void *modules = NULL;
@@ -549,8 +552,7 @@ __gconv_read_conf (void)
#ifndef STATIC_GCONV
/* Find out where we have to look. */
- if (__gconv_path_elem == NULL)
- __gconv_get_path ();
+ __gconv_get_path ();
for (cnt = 0; __gconv_path_elem[cnt].name != NULL; ++cnt)
{
@@ -602,6 +604,20 @@ __gconv_read_conf (void)
}
+/* This "once" variable is used to do a one-time load of the configuration. */
+__libc_once_define (static, once);
+
+
+/* Read all configuration files found in the user-specified and the default
+ path, but do it only "once" using __gconv_read_conf to do the actual
+ work. This is the function that must be called when reading iconv
+ configuration. */
+void
+__gconv_load_conf (void)
+{
+ __libc_once (once, __gconv_read_conf);
+}
+
/* Free all resources if necessary. */
libc_freeres_fn (free_mem)
diff --git a/iconv/gconv_db.c b/iconv/gconv_db.c
index 66e095d8c7..861a142068 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <limits.h>
@@ -687,10 +687,6 @@ find_derivation (const char *toset, const char *toset_expand,
}
-/* Control of initialization. */
-__libc_once_define (static, once);
-
-
static const char *
do_lookup_alias (const char *name)
{
@@ -709,7 +705,7 @@ __gconv_compare_alias (const char *name1, const char *name2)
int result;
/* Ensure that the configuration data is read. */
- __libc_once (once, __gconv_read_conf);
+ __gconv_load_conf ();
if (__gconv_compare_alias_cache (name1, name2, &result) != 0)
result = strcmp (do_lookup_alias (name1) ?: name1,
@@ -729,7 +725,7 @@ __gconv_find_transform (const char *toset, const char *fromset,
int result;
/* Ensure that the configuration data is read. */
- __libc_once (once, __gconv_read_conf);
+ __gconv_load_conf ();
/* Acquire the lock. */
__libc_lock_lock (__gconv_lock);
diff --git a/iconv/gconv_dl.c b/iconv/gconv_dl.c
index de00e1319d..3bb732e766 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <dlfcn.h>
@@ -149,15 +149,10 @@ __gconv_find_shlib (const char *name)
return found;
}
-
-/* This is very ugly but the tsearch functions provide no way to pass
- information to the walker function. So we use a global variable.
- It is MT safe since we use a lock. */
-static struct __gconv_loaded_object *release_handle;
-
static void
-do_release_shlib (void *nodep, VISIT value, int level)
+do_release_shlib (const void *nodep, VISIT value, void *closure)
{
+ struct __gconv_loaded_object *release_handle = closure;
struct __gconv_loaded_object *obj = *(struct __gconv_loaded_object **) nodep;
if (value != preorder && value != leaf)
@@ -184,13 +179,10 @@ do_release_shlib (void *nodep, VISIT value, int level)
void
__gconv_release_shlib (struct __gconv_loaded_object *handle)
{
- /* Urgh, this is ugly but we have no other possibility. */
- release_handle = handle;
-
/* Process all entries. Please note that we also visit entries
with release counts <= 0. This way we can finally unload them
if necessary. */
- __twalk (loaded, (__action_fn_t) do_release_shlib);
+ __twalk_r (loaded, do_release_shlib, handle);
}
@@ -224,9 +216,9 @@ do_print (const void *nodep, VISIT value, int level)
struct __gconv_loaded_object *obj = *(struct __gconv_loaded_object **) nodep;
printf ("%10s: \"%s\", %d\n",
- value == leaf ? "leaf" :
- value == preorder ? "preorder" :
- value == postorder ? "postorder" : "endorder",
+ value == leaf ? "leaf"
+ : value == preorder ? "preorder"
+ : value == postorder ? "postorder" : "endorder",
obj->name, obj->counter);
}
diff --git a/iconv/gconv_int.h b/iconv/gconv_int.h
index 3742557cae..c5783ef550 100644
--- a/iconv/gconv_int.h
+++ b/iconv/gconv_int.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _GCONV_INT_H
#define _GCONV_INT_H 1
@@ -28,19 +28,6 @@
__BEGIN_DECLS
-/* Type to represent search path. */
-struct path_elem
-{
- const char *name;
- size_t len;
-};
-
-/* Variable with search path for `gconv' implementation. */
-extern struct path_elem *__gconv_path_elem attribute_hidden;
-/* Maximum length of a single path element. */
-extern size_t __gconv_max_path_elem_len attribute_hidden;
-
-
/* Structure for alias definition. Simply two strings. */
struct gconv_alias
{
@@ -49,10 +36,6 @@ struct gconv_alias
};
-/* How many character should be converted in one call? */
-#define GCONV_NCHAR_GOAL 8160
-
-
/* Structure describing one loaded shared object. This normally are
objects to perform conversation but as a special case the db shared
object is also handled. */
@@ -111,7 +94,6 @@ enum
extern void *__gconv_alias_db attribute_hidden;
/* Array with available modules. */
-extern size_t __gconv_nmodules;
extern struct gconv_module *__gconv_modules_db attribute_hidden;
/* Value of the GCONV_PATH environment variable. */
@@ -196,8 +178,8 @@ extern int __gconv_compare_alias_cache (const char *name1, const char *name2,
extern void __gconv_release_step (struct __gconv_step *step)
attribute_hidden;
-/* Read all the configuration data and cache it. */
-extern void __gconv_read_conf (void) attribute_hidden;
+/* Read all the configuration data and cache it if not done so already. */
+extern void __gconv_load_conf (void) attribute_hidden;
/* Try to read module cache file. */
extern int __gconv_load_cache (void) attribute_hidden;
@@ -211,9 +193,6 @@ extern struct gconv_module *__gconv_get_modules_db (void);
/* Retrieve pointer to internal alias database. */
extern void *__gconv_get_alias_db (void);
-/* Determine the directories we are looking in. */
-extern void __gconv_get_path (void) attribute_hidden;
-
/* Comparison function to search alias. */
extern int __gconv_alias_compare (const void *p1, const void *p2)
attribute_hidden;
@@ -244,6 +223,14 @@ extern void __gconv_get_builtin_trans (const char *name,
struct __gconv_step *step)
attribute_hidden;
+/* Transliteration using the locale's data. */
+extern int __gconv_transliterate (struct __gconv_step *step,
+ struct __gconv_step_data *step_data,
+ const unsigned char *inbufstart,
+ const unsigned char **inbufp,
+ const unsigned char *inbufend,
+ unsigned char **outbufstart,
+ size_t *irreversible);
libc_hidden_proto (__gconv_transliterate)
/* If NAME is an codeset alias expand it. */
diff --git a/iconv/gconv_open.c b/iconv/gconv_open.c
index f739561f6e..eeeed57082 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <locale.h>
@@ -26,6 +26,10 @@
#include <gconv_int.h>
+/* How many character should be converted in one call? */
+#define GCONV_NCHAR_GOAL 8160
+
+
int
__gconv_open (const char *toset, const char *fromset, __gconv_t *handle,
int flags)
diff --git a/iconv/gconv_simple.c b/iconv/gconv_simple.c
index 506c92caf2..2ef75caf9d 100644
--- a/iconv/gconv_simple.c
+++ b/iconv/gconv_simple.c
@@ -1,5 +1,5 @@
/* Simple transformations functions.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <byteswap.h>
#include <dlfcn.h>
@@ -76,7 +76,7 @@ __attribute ((always_inline))
internal_ucs4_loop (struct __gconv_step *step,
struct __gconv_step_data *step_data,
const unsigned char **inptrp, const unsigned char *inend,
- unsigned char **outptrp, unsigned char *outend,
+ unsigned char **outptrp, const unsigned char *outend,
size_t *irreversible)
{
const unsigned char *inptr = *inptrp;
@@ -120,7 +120,8 @@ internal_ucs4_loop_unaligned (struct __gconv_step *step,
struct __gconv_step_data *step_data,
const unsigned char **inptrp,
const unsigned char *inend,
- unsigned char **outptrp, unsigned char *outend,
+ unsigned char **outptrp,
+ const unsigned char *outend,
size_t *irreversible)
{
const unsigned char *inptr = *inptrp;
@@ -169,7 +170,8 @@ internal_ucs4_loop_single (struct __gconv_step *step,
struct __gconv_step_data *step_data,
const unsigned char **inptrp,
const unsigned char *inend,
- unsigned char **outptrp, unsigned char *outend,
+ unsigned char **outptrp,
+ const unsigned char *outend,
size_t *irreversible)
{
mbstate_t *state = step_data->__statep;
@@ -231,7 +233,7 @@ __attribute ((always_inline))
ucs4_internal_loop (struct __gconv_step *step,
struct __gconv_step_data *step_data,
const unsigned char **inptrp, const unsigned char *inend,
- unsigned char **outptrp, unsigned char *outend,
+ unsigned char **outptrp, const unsigned char *outend,
size_t *irreversible)
{
int flags = step_data->__flags;
@@ -298,7 +300,8 @@ ucs4_internal_loop_unaligned (struct __gconv_step *step,
struct __gconv_step_data *step_data,
const unsigned char **inptrp,
const unsigned char *inend,
- unsigned char **outptrp, unsigned char *outend,
+ unsigned char **outptrp,
+ const unsigned char *outend,
size_t *irreversible)
{
int flags = step_data->__flags;
@@ -368,7 +371,8 @@ ucs4_internal_loop_single (struct __gconv_step *step,
struct __gconv_step_data *step_data,
const unsigned char **inptrp,
const unsigned char *inend,
- unsigned char **outptrp, unsigned char *outend,
+ unsigned char **outptrp,
+ const unsigned char *outend,
size_t *irreversible)
{
mbstate_t *state = step_data->__statep;
@@ -443,7 +447,7 @@ __attribute ((always_inline))
internal_ucs4le_loop (struct __gconv_step *step,
struct __gconv_step_data *step_data,
const unsigned char **inptrp, const unsigned char *inend,
- unsigned char **outptrp, unsigned char *outend,
+ unsigned char **outptrp, const unsigned char *outend,
size_t *irreversible)
{
const unsigned char *inptr = *inptrp;
@@ -488,7 +492,8 @@ internal_ucs4le_loop_unaligned (struct __gconv_step *step,
struct __gconv_step_data *step_data,
const unsigned char **inptrp,
const unsigned char *inend,
- unsigned char **outptrp, unsigned char *outend,
+ unsigned char **outptrp,
+ const unsigned char *outend,
size_t *irreversible)
{
const unsigned char *inptr = *inptrp;
@@ -540,7 +545,8 @@ internal_ucs4le_loop_single (struct __gconv_step *step,
struct __gconv_step_data *step_data,
const unsigned char **inptrp,
const unsigned char *inend,
- unsigned char **outptrp, unsigned char *outend,
+ unsigned char **outptrp,
+ const unsigned char *outend,
size_t *irreversible)
{
mbstate_t *state = step_data->__statep;
@@ -601,7 +607,7 @@ __attribute ((always_inline))
ucs4le_internal_loop (struct __gconv_step *step,
struct __gconv_step_data *step_data,
const unsigned char **inptrp, const unsigned char *inend,
- unsigned char **outptrp, unsigned char *outend,
+ unsigned char **outptrp, const unsigned char *outend,
size_t *irreversible)
{
int flags = step_data->__flags;
@@ -671,7 +677,8 @@ ucs4le_internal_loop_unaligned (struct __gconv_step *step,
struct __gconv_step_data *step_data,
const unsigned char **inptrp,
const unsigned char *inend,
- unsigned char **outptrp, unsigned char *outend,
+ unsigned char **outptrp,
+ const unsigned char *outend,
size_t *irreversible)
{
int flags = step_data->__flags;
@@ -745,7 +752,8 @@ ucs4le_internal_loop_single (struct __gconv_step *step,
struct __gconv_step_data *step_data,
const unsigned char **inptrp,
const unsigned char *inend,
- unsigned char **outptrp, unsigned char *outend,
+ unsigned char **outptrp,
+ const unsigned char *outend,
size_t *irreversible)
{
mbstate_t *state = step_data->__statep;
diff --git a/iconv/gconv_trans.c b/iconv/gconv_trans.c
index d20ae66384..6113009766 100644
--- a/iconv/gconv_trans.c
+++ b/iconv/gconv_trans.c
@@ -1,5 +1,5 @@
/* Transliteration using the locale's data.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <dlfcn.h>
diff --git a/iconv/iconv.c b/iconv/iconv.c
index c3e472a9c8..737b4cec36 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h> /* for NULL */
#include <errno.h>
diff --git a/iconv/iconv.h b/iconv/iconv.h
index 63d78336ad..1273bdc962 100644
--- a/iconv/iconv.h
+++ b/iconv/iconv.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _ICONV_H
#define _ICONV_H 1
diff --git a/iconv/iconv_charmap.c b/iconv/iconv_charmap.c
index 65894199db..5e3e2f3847 100644
--- a/iconv/iconv_charmap.c
+++ b/iconv/iconv_charmap.c
@@ -1,5 +1,5 @@
/* Convert using charmaps and possibly iconv().
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
diff --git a/iconv/iconv_close.c b/iconv/iconv_close.c
index 6d34b360d2..c8a4189da9 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <iconv.h>
diff --git a/iconv/iconv_open.c b/iconv/iconv_open.c
index 9f5c32c020..018af29559 100644
--- a/iconv/iconv_open.c
+++ b/iconv/iconv_open.c
@@ -1,5 +1,5 @@
/* Get descriptor for character set conversion.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <alloca.h>
#include <errno.h>
diff --git a/iconv/iconv_prog.c b/iconv/iconv_prog.c
index 52e9d3f3dd..c3660ea998 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <argp.h>
#include <assert.h>
@@ -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\
-"), "2018");
+"), "2019");
fprintf (stream, gettext ("Written by %s.\n"), "Ulrich Drepper");
}
diff --git a/iconv/iconv_prog.h b/iconv/iconv_prog.h
index 3273ad6125..33e5ea01ef 100644
--- a/iconv/iconv_prog.h
+++ b/iconv/iconv_prog.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _ICONV_PROG_H
#define _ICONV_PROG_H 1
diff --git a/iconv/iconvconfig.c b/iconv/iconvconfig.c
index d5e8e71423..ad7300ef58 100644
--- a/iconv/iconvconfig.c
+++ b/iconv/iconvconfig.c
@@ -1,5 +1,5 @@
/* Generate fastloading iconv module configuration files.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <argp.h>
#include <assert.h>
@@ -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\
-"), "2018");
+"), "2019");
fprintf (stream, gettext ("Written by %s.\n"), "Ulrich Drepper");
}
@@ -1079,9 +1079,9 @@ write_output (void)
/* Create the hashing table. We know how many strings we have.
Creating a perfect hash table is not reasonable here. Therefore
- we use open hashing and a table size which is the next prime 40%
+ we use open hashing and a table size which is the next prime 50%
larger than the number of strings. */
- hash_size = next_prime (nnames * 1.4);
+ hash_size = next_prime (nnames + (nnames >> 1));
hash_table = (struct hash_entry *) xcalloc (hash_size,
sizeof (struct hash_entry));
/* Fill the hash table. */
diff --git a/iconv/iconvconfig.h b/iconv/iconvconfig.h
index 2f39f08a80..d4c9c1ad54 100644
--- a/iconv/iconvconfig.h
+++ b/iconv/iconvconfig.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconv/loop.c b/iconv/loop.c
index d571b593c7..2a97b71dfe 100644
--- a/iconv/loop.c
+++ b/iconv/loop.c
@@ -1,5 +1,5 @@
/* Conversion loop frame work.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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
@@ -49,7 +49,7 @@
#include <assert.h>
#include <endian.h>
-#include <gconv.h>
+#include <iconv/gconv_int.h>
#include <stdint.h>
#include <string.h>
#include <wchar.h>
diff --git a/iconv/skeleton.c b/iconv/skeleton.c
index fa79930523..4fe70df2fa 100644
--- a/iconv/skeleton.c
+++ b/iconv/skeleton.c
@@ -1,5 +1,5 @@
/* Skeleton for a conversion module.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file can be included to provide definitions of several things
many modules have in common. It can be customized using the following
@@ -83,6 +83,11 @@
RESET_INPUT_BUFFER If the input character sets allow this the macro
can be defined to reset the input buffer pointers
to cover only those characters up to the error.
+ Note that if the conversion has skipped over
+ irreversible characters (due to
+ __GCONV_IGNORE_ERRORS) there is no longer a direct
+ correspondence between input and output pointers,
+ and this macro is not called.
FUNCTION_NAME if not set the conversion function is named `gconv'.
@@ -133,7 +138,7 @@
*/
#include <assert.h>
-#include <gconv.h>
+#include <iconv/gconv_int.h>
#include <string.h>
#define __need_size_t
#define __need_NULL
@@ -597,6 +602,12 @@ FUNCTION_NAME (struct __gconv_step *step, struct __gconv_step_data *data,
inptr = *inptrp;
/* The outbuf buffer is empty. */
outstart = outbuf;
+#ifdef RESET_INPUT_BUFFER
+ /* Remember how many irreversible characters were skipped before
+ this round. */
+ size_t loop_irreversible
+ = lirreversible + (irreversible ? *irreversible : 0);
+#endif
#ifdef SAVE_RESET_STATE
SAVE_RESET_STATE (1);
@@ -671,8 +682,16 @@ FUNCTION_NAME (struct __gconv_step *step, struct __gconv_step_data *data,
if (__glibc_unlikely (outerr != outbuf))
{
#ifdef RESET_INPUT_BUFFER
- RESET_INPUT_BUFFER;
-#else
+ /* RESET_INPUT_BUFFER can only work when there were
+ no new irreversible characters skipped during
+ this round. */
+ if (loop_irreversible
+ == lirreversible + (irreversible ? *irreversible : 0))
+ {
+ RESET_INPUT_BUFFER;
+ goto done_reset;
+ }
+#endif
/* We have a problem in one of the functions below.
Undo the conversion upto the error point. */
size_t nstatus __attribute__ ((unused));
@@ -682,9 +701,9 @@ FUNCTION_NAME (struct __gconv_step *step, struct __gconv_step_data *data,
outbuf = outstart;
/* Restore the state. */
-# ifdef SAVE_RESET_STATE
+#ifdef SAVE_RESET_STATE
SAVE_RESET_STATE (0);
-# endif
+#endif
if (__glibc_likely (!unaligned))
{
@@ -701,7 +720,7 @@ FUNCTION_NAME (struct __gconv_step *step, struct __gconv_step_data *data,
lirreversiblep
EXTRA_LOOP_ARGS);
}
-# if POSSIBLY_UNALIGNED
+#if POSSIBLY_UNALIGNED
else
{
if (FROM_DIRECTION)
@@ -720,7 +739,7 @@ FUNCTION_NAME (struct __gconv_step *step, struct __gconv_step_data *data,
lirreversiblep
EXTRA_LOOP_ARGS);
}
-# endif
+#endif
/* We must run out of output buffer space in this
rerun. */
@@ -731,9 +750,11 @@ FUNCTION_NAME (struct __gconv_step *step, struct __gconv_step_data *data,
the invocation counter. */
if (__glibc_unlikely (outbuf == outstart))
--data->__invocation_counter;
-#endif /* reset input buffer */
}
+#ifdef RESET_INPUT_BUFFER
+ done_reset:
+#endif
/* Change the status. */
status = result;
}
diff --git a/iconv/strtab.c b/iconv/strtab.c
index f49aaf2c7d..97c39ab538 100644
--- a/iconv/strtab.c
+++ b/iconv/strtab.c
@@ -1,5 +1,5 @@
/* C string table handling.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
Written by Ulrich Drepper <drepper@redhat.com>, 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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
diff --git a/iconv/test-gconv-modules b/iconv/test-gconv-modules
index 081158b8ca..2062f16170 100644
--- a/iconv/test-gconv-modules
+++ b/iconv/test-gconv-modules
@@ -1,5 +1,5 @@
# Test modules for gconv.
-# Copyright (C) 2017-2018 Free Software Foundation, Inc.
+# Copyright (C) 2017-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
@@ -14,7 +14,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
# 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 565057ef78..c0e7d9ef2f 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <gconv.h>
diff --git a/iconv/tst-gconv-init-failure.c b/iconv/tst-gconv-init-failure.c
index 6ea5b7f501..5096de496b 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <iconv.h>
diff --git a/iconv/tst-iconv-mt.c b/iconv/tst-iconv-mt.c
new file mode 100644
index 0000000000..e2c1098c8c
--- /dev/null
+++ b/iconv/tst-iconv-mt.c
@@ -0,0 +1,142 @@
+/* Test that iconv works in a multi-threaded program.
+ Copyright (C) 2017-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
+ <https://www.gnu.org/licenses/>. */
+
+/* This test runs several worker threads that perform the following three
+ steps in staggered synchronization with each other:
+ 1. initialization (iconv_open)
+ 2. conversion (iconv)
+ 3. cleanup (iconv_close)
+ Having several threads synchronously (using pthread_barrier_*) perform
+ these routines exercises iconv code that handles concurrent attempts to
+ initialize and/or read global iconv state (namely configuration). */
+
+#include <iconv.h>
+#include <stdio.h>
+#include <string.h>
+
+#include <support/support.h>
+#include <support/xthread.h>
+#include <support/check.h>
+
+#define TCOUNT 16
+_Static_assert (TCOUNT %2 == 0,
+ "thread count must be even, since we need two groups.");
+
+
+#define CONV_INPUT "Hello, iconv!"
+
+
+pthread_barrier_t sync;
+pthread_barrier_t sync_half_pool;
+
+
+/* Execute iconv_open, iconv and iconv_close in a synchronized way in
+ conjunction with other sibling worker threads. If any step fails, print
+ an error to stdout and return NULL to the main thread to indicate the
+ error. */
+static void *
+worker (void * arg)
+{
+ long int tidx = (long int) arg;
+
+ iconv_t cd;
+
+ char ascii[] = CONV_INPUT;
+ char *inbufpos = ascii;
+ size_t inbytesleft = sizeof (CONV_INPUT);
+
+ char *utf8 = xcalloc (sizeof (CONV_INPUT), 1);
+ char *outbufpos = utf8;
+ size_t outbytesleft = sizeof (CONV_INPUT);
+
+ if (tidx < TCOUNT/2)
+ /* The first half of the worker thread pool synchronize together here,
+ then call iconv_open immediately after. */
+ xpthread_barrier_wait (&sync_half_pool);
+ else
+ /* The second half wait for the first half to finish iconv_open and
+ continue to the next barrier (before the call to iconv below). */
+ xpthread_barrier_wait (&sync);
+
+ /* The above block of code staggers all subsequent pthread_barrier_wait
+ calls in a way that ensures a high chance of encountering these
+ combinations of concurrent iconv usage:
+ 1) concurrent calls to iconv_open,
+ 2) concurrent calls to iconv_open *and* iconv,
+ 3) concurrent calls to iconv,
+ 4) concurrent calls to iconv *and* iconv_close,
+ 5) concurrent calls to iconv_close. */
+
+ cd = iconv_open ("UTF8", "ASCII");
+ TEST_VERIFY_EXIT (cd != (iconv_t) -1);
+
+ xpthread_barrier_wait (&sync);
+
+ TEST_VERIFY_EXIT (iconv (cd, &inbufpos, &inbytesleft, &outbufpos,
+ &outbytesleft)
+ != (size_t) -1);
+
+ *outbufpos = '\0';
+
+ xpthread_barrier_wait (&sync);
+
+ TEST_VERIFY_EXIT (iconv_close (cd) == 0);
+
+ /* The next conditional barrier wait is needed because we staggered the
+ threads into two groups in the beginning and at this point, the second
+ half of worker threads are waiting for the first half to finish
+ iconv_close before they can executing the same: */
+ if (tidx < TCOUNT/2)
+ xpthread_barrier_wait (&sync);
+
+ if (strncmp (utf8, CONV_INPUT, sizeof CONV_INPUT))
+ {
+ printf ("FAIL: thread %lx: invalid conversion output from iconv\n", tidx);
+ pthread_exit ((void *) (long int) 1);
+ }
+
+ pthread_exit (NULL);
+}
+
+
+static int
+do_test (void)
+{
+ pthread_t thread[TCOUNT];
+ void * worker_output;
+ int i;
+
+ xpthread_barrier_init (&sync, NULL, TCOUNT);
+ xpthread_barrier_init (&sync_half_pool, NULL, TCOUNT/2);
+
+ for (i = 0; i < TCOUNT; i++)
+ thread[i] = xpthread_create (NULL, worker, (void *) (long int) i);
+
+ for (i = 0; i < TCOUNT; i++)
+ {
+ worker_output = xpthread_join (thread[i]);
+ TEST_VERIFY_EXIT (worker_output == NULL);
+ }
+
+ xpthread_barrier_destroy (&sync);
+ xpthread_barrier_destroy (&sync_half_pool);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/iconv/tst-iconv2.c b/iconv/tst-iconv2.c
index 00712a8985..97376627c5 100644
--- a/iconv/tst-iconv2.c
+++ b/iconv/tst-iconv2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <iconv.h>
diff --git a/iconv/tst-iconv5.c b/iconv/tst-iconv5.c
index 92ccb246f9..15fd5d3ae2 100644
--- a/iconv/tst-iconv5.c
+++ b/iconv/tst-iconv5.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by GOTO Masanori <gotom@debian.or.jp>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <iconv.h>
#include <string.h>
diff --git a/iconv/tst-iconv6.c b/iconv/tst-iconv6.c
index 4cda02551d..9a0bb9f4a3 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <errno.h>
diff --git a/iconv/tst-iconv7.c b/iconv/tst-iconv7.c
new file mode 100644
index 0000000000..735d5b439e
--- /dev/null
+++ b/iconv/tst-iconv7.c
@@ -0,0 +1,55 @@
+/* Test iconv buffer handling with the IGNORE error handler.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+/* Derived from BZ #18830 */
+#include <errno.h>
+#include <iconv.h>
+#include <stdio.h>
+#include <support/check.h>
+
+static int
+do_test (void)
+{
+ /* This conversion needs two steps, from ASCII to INTERNAL to ASCII. */
+ iconv_t cd = iconv_open ("ASCII//IGNORE", "ASCII");
+ TEST_VERIFY_EXIT (cd != (iconv_t) -1);
+
+ /* Convert some irreversible sequence, enough to trigger an overflow of
+ the output buffer before the irreversible character in the second
+ step, but after going past the irreversible character in the first
+ step. */
+ char input[4 + 4] = { '0', '1', '2', '3', '4', '5', '\266', '7' };
+ char *inptr = input;
+ size_t insize = sizeof (input);
+ char output[4];
+ char *outptr = output;
+ size_t outsize = sizeof (output);
+
+ /* The conversion should fail. */
+ TEST_VERIFY (iconv (cd, &inptr, &insize, &outptr, &outsize) == (size_t) -1);
+ TEST_VERIFY (errno == E2BIG);
+ /* The conversion should not consume more than it was able to store in
+ the output buffer. */
+ TEST_COMPARE (inptr - input, sizeof (output) - outsize);
+
+ TEST_VERIFY_EXIT (iconv_close (cd) != -1);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/iconvdata/8bit-gap.c b/iconvdata/8bit-gap.c
index 9e949dd7ec..337c1c7d45 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stdint.h>
diff --git a/iconvdata/8bit-generic.c b/iconvdata/8bit-generic.c
index 8110b30178..c195ee8dfb 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stdint.h>
diff --git a/iconvdata/Makefile b/iconvdata/Makefile
index 06e161d9b8..763ef05389 100644
--- a/iconvdata/Makefile
+++ b/iconvdata/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1997-2018 Free Software Foundation, Inc.
+# Copyright (C) 1997-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
# Makefile for iconv data and code.
diff --git a/iconvdata/TESTS b/iconvdata/TESTS
index 80027bbcd6..2644a3d261 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-2018 Free Software Foundation, Inc.
+# Copyright (C) 1998-2019 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
# Each line consists of at least four entries:
# 1. input file name.
diff --git a/iconvdata/TESTS2 b/iconvdata/TESTS2
index eb4139c724..ab8d112c80 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-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2019 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# Contributed by Bruno Haible <haible@clisp.cons.org>, 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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
# 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 86e2ac9dc7..f748bb4085 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <gconv.h>
diff --git a/iconvdata/armscii-8.c b/iconvdata/armscii-8.c
index 5a9c85365f..3d97dd78cf 100644
--- a/iconvdata/armscii-8.c
+++ b/iconvdata/armscii-8.c
@@ -1,5 +1,5 @@
/* Conversion to and from ARMSCII-8
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stdint.h>
diff --git a/iconvdata/asmo_449.c b/iconvdata/asmo_449.c
index bc02463f6e..21ebe2dd93 100644
--- a/iconvdata/asmo_449.c
+++ b/iconvdata/asmo_449.c
@@ -1,5 +1,5 @@
/* Conversion from and to ASMO_449.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/big5.c b/iconvdata/big5.c
index 0ffcbb1414..f9bc7109eb 100644
--- a/iconvdata/big5.c
+++ b/iconvdata/big5.c
@@ -1,5 +1,5 @@
/* Mapping tables for Big5 handling.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <gconv.h>
diff --git a/iconvdata/big5hkscs.c b/iconvdata/big5hkscs.c
index e54a58ae20..87022ed49a 100644
--- a/iconvdata/big5hkscs.c
+++ b/iconvdata/big5hkscs.c
@@ -1,5 +1,5 @@
/* Mapping tables for Big5-HKSCS handling.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
Modified for Big5-HKSCS by Roger So <spacehunt@e-fever.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <gconv.h>
diff --git a/iconvdata/brf.c b/iconvdata/brf.c
index e8b02c29fc..9011554ede 100644
--- a/iconvdata/brf.c
+++ b/iconvdata/brf.c
@@ -1,5 +1,5 @@
/* Conversion from and to BRF.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Samuel Thibault <samuel.thibault@ens-lyon.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/bug-iconv10.c b/iconvdata/bug-iconv10.c
index 5af2efb99c..50d0d8c3d3 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <iconv.h>
#include <locale.h>
diff --git a/iconvdata/bug-iconv11.c b/iconvdata/bug-iconv11.c
index 67fe4fc925..ba584ee658 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <iconv.h>
#include <stdio.h>
diff --git a/iconvdata/bug-iconv12.c b/iconvdata/bug-iconv12.c
index a5df4d94b0..3af555f100 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
diff --git a/iconvdata/bug-iconv3.c b/iconvdata/bug-iconv3.c
index d338198a54..3d81498977 100644
--- a/iconvdata/bug-iconv3.c
+++ b/iconvdata/bug-iconv3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <iconv.h>
diff --git a/iconvdata/bug-iconv8.c b/iconvdata/bug-iconv8.c
index b91dc1d1f2..e32d891b5c 100644
--- a/iconvdata/bug-iconv8.c
+++ b/iconvdata/bug-iconv8.c
@@ -16,9 +16,9 @@ do_test (void)
size_t ret;
inbuf = in;
- inbytesleft = sizeof(in) - 1;
+ inbytesleft = sizeof (in) - 1;
outbuf = out;
- outbytesleft = sizeof(out);
+ outbytesleft = sizeof (out);
cd = iconv_open("utf-8", "cp932");
ret = iconv(cd, &inbuf, &inbytesleft, &outbuf, &outbytesleft);
diff --git a/iconvdata/cns11643.c b/iconvdata/cns11643.c
index 7ac251f3ea..4dafe22420 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/cns11643.h b/iconvdata/cns11643.h
index 77e29a8f90..9d4b1253c5 100644
--- a/iconvdata/cns11643.h
+++ b/iconvdata/cns11643.h
@@ -1,5 +1,5 @@
/* Access functions for CNS 11643 handling.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
@@ -220,7 +220,8 @@ ucs4_to_cns11643 (uint32_t wch, unsigned char *s, size_t avail)
cp = __cns11643l1_from_ucs4_tab12[ch - 0x4e00];
if (cp[0] != '\0')
break;
- /* FALLTHROUGH. Let's try the other planes. */
+ /* Let's try the other planes. */
+ /* Fall through. */
case 0x3400 ... 0x4dff:
case 0x9f9d ... 0x9fa5:
/* Let's try the other planes. */
diff --git a/iconvdata/cns11643l1.c b/iconvdata/cns11643l1.c
index a86861c8aa..c46fe69c35 100644
--- a/iconvdata/cns11643l1.c
+++ b/iconvdata/cns11643l1.c
@@ -1,5 +1,5 @@
/* Mapping tables for CNS 11643, plane 1 handling.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/cns11643l1.h b/iconvdata/cns11643l1.h
index 1225e9a0bf..d8b9740bf9 100644
--- a/iconvdata/cns11643l1.h
+++ b/iconvdata/cns11643l1.h
@@ -1,5 +1,5 @@
/* Access functions for CNS 11643, plane 1 handling.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
#include <gconv.h>
diff --git a/iconvdata/cns11643l2.h b/iconvdata/cns11643l2.h
index 9d2d0fcd1a..b55a9d1d76 100644
--- a/iconvdata/cns11643l2.h
+++ b/iconvdata/cns11643l2.h
@@ -1,5 +1,5 @@
/* Access functions for CNS 11643, plane 2 handling.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
#include <gconv.h>
diff --git a/iconvdata/cp10007.c b/iconvdata/cp10007.c
index 307efc8bd7..a54bb2c6b2 100644
--- a/iconvdata/cp10007.c
+++ b/iconvdata/cp10007.c
@@ -1,5 +1,5 @@
/* Conversion from and to CP10007 (MS MacCyrillic).
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/cp1125.c b/iconvdata/cp1125.c
index edcb50ef84..efd69bb4ad 100644
--- a/iconvdata/cp1125.c
+++ b/iconvdata/cp1125.c
@@ -1,5 +1,5 @@
/* Conversion from and to CP1125.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/cp1250.c b/iconvdata/cp1250.c
index 08535a7080..955eabca33 100644
--- a/iconvdata/cp1250.c
+++ b/iconvdata/cp1250.c
@@ -1,5 +1,5 @@
/* Conversion from and to CP1250.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/cp1251.c b/iconvdata/cp1251.c
index 303d472d1b..298ab50e9c 100644
--- a/iconvdata/cp1251.c
+++ b/iconvdata/cp1251.c
@@ -1,5 +1,5 @@
/* Conversion from and to CP1251.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/cp1252.c b/iconvdata/cp1252.c
index 3c8879b91e..d454cc1b04 100644
--- a/iconvdata/cp1252.c
+++ b/iconvdata/cp1252.c
@@ -1,5 +1,5 @@
/* Conversion from and to CP1252.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/cp1253.c b/iconvdata/cp1253.c
index f6417c9370..f7190e9b95 100644
--- a/iconvdata/cp1253.c
+++ b/iconvdata/cp1253.c
@@ -1,5 +1,5 @@
/* Conversion from and to CP1253.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/cp1254.c b/iconvdata/cp1254.c
index 2cc81e54b4..54d24444d8 100644
--- a/iconvdata/cp1254.c
+++ b/iconvdata/cp1254.c
@@ -1,5 +1,5 @@
/* Conversion from and to CP1254.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/cp1255.c b/iconvdata/cp1255.c
index 1e56bdb903..1f0d9d0e08 100644
--- a/iconvdata/cp1255.c
+++ b/iconvdata/cp1255.c
@@ -1,5 +1,5 @@
/* Conversion from and to CP1255.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998,
and Bruno Haible <haible@clisp.cons.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stdint.h>
diff --git a/iconvdata/cp1256.c b/iconvdata/cp1256.c
index 91a313cc54..e92e707e83 100644
--- a/iconvdata/cp1256.c
+++ b/iconvdata/cp1256.c
@@ -1,5 +1,5 @@
/* Conversion from and to CP1256.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/cp1257.c b/iconvdata/cp1257.c
index c6b8e086a4..59fa379960 100644
--- a/iconvdata/cp1257.c
+++ b/iconvdata/cp1257.c
@@ -1,5 +1,5 @@
/* Conversion from and to CP1257.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/cp1258.c b/iconvdata/cp1258.c
index c7d3d6882d..38fb9ebb8d 100644
--- a/iconvdata/cp1258.c
+++ b/iconvdata/cp1258.c
@@ -1,5 +1,5 @@
/* Conversion from and to CP1258.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998,
and Bruno Haible <haible@clisp.cons.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stdint.h>
diff --git a/iconvdata/cp737.c b/iconvdata/cp737.c
index 83402e2cdd..942243fd45 100644
--- a/iconvdata/cp737.c
+++ b/iconvdata/cp737.c
@@ -1,5 +1,5 @@
/* Conversion from and to CP737.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/cp737.h b/iconvdata/cp737.h
index f29093a90f..2a29065a45 100644
--- a/iconvdata/cp737.h
+++ b/iconvdata/cp737.h
@@ -1,5 +1,5 @@
/* Mapping table for CP737.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/cp770.c b/iconvdata/cp770.c
index a9e334f361..6927fb0c1b 100644
--- a/iconvdata/cp770.c
+++ b/iconvdata/cp770.c
@@ -1,5 +1,5 @@
/* Conversion from and to CP770.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/cp771.c b/iconvdata/cp771.c
index 118ed1844a..7a6827adcb 100644
--- a/iconvdata/cp771.c
+++ b/iconvdata/cp771.c
@@ -1,5 +1,5 @@
/* Conversion from and to CP771.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/cp772.c b/iconvdata/cp772.c
index 293912ba15..b7e6df2522 100644
--- a/iconvdata/cp772.c
+++ b/iconvdata/cp772.c
@@ -1,5 +1,5 @@
/* Conversion from and to CP772.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/cp773.c b/iconvdata/cp773.c
index 424e7553b2..be9a187e7f 100644
--- a/iconvdata/cp773.c
+++ b/iconvdata/cp773.c
@@ -1,5 +1,5 @@
/* Conversion from and to CP773.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/cp774.c b/iconvdata/cp774.c
index 9902b4dba9..638f840e27 100644
--- a/iconvdata/cp774.c
+++ b/iconvdata/cp774.c
@@ -1,5 +1,5 @@
/* Conversion from and to CP774.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/cp775.c b/iconvdata/cp775.c
index 0a539105bb..ad4d16aef1 100644
--- a/iconvdata/cp775.c
+++ b/iconvdata/cp775.c
@@ -1,5 +1,5 @@
/* Conversion from and to CP775.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/cp775.h b/iconvdata/cp775.h
index 6bad71b626..6ff7a1911b 100644
--- a/iconvdata/cp775.h
+++ b/iconvdata/cp775.h
@@ -1,5 +1,5 @@
/* Mapping table for CP775.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/cp932.c b/iconvdata/cp932.c
index 00c8824143..3ea7ad4fa6 100644
--- a/iconvdata/cp932.c
+++ b/iconvdata/cp932.c
@@ -1,5 +1,5 @@
/* Mapping tables for CP932 handling.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by MORIYAMA Masayuki <msyk@mtg.biglobe.ne.jp>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stdint.h>
diff --git a/iconvdata/csn_369103.c b/iconvdata/csn_369103.c
index 49b90d729e..cec7bc7e87 100644
--- a/iconvdata/csn_369103.c
+++ b/iconvdata/csn_369103.c
@@ -1,5 +1,5 @@
/* Conversion from and to CSN_369103.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/cwi.c b/iconvdata/cwi.c
index 3b3ec96b4e..786ffdd8cd 100644
--- a/iconvdata/cwi.c
+++ b/iconvdata/cwi.c
@@ -1,5 +1,5 @@
/* Conversion from and to CWI.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/dec-mcs.c b/iconvdata/dec-mcs.c
index 53feb1aa59..1d0ceb34b5 100644
--- a/iconvdata/dec-mcs.c
+++ b/iconvdata/dec-mcs.c
@@ -1,5 +1,5 @@
/* Conversion from and to DEC-MCS.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ebcdic-at-de-a.c b/iconvdata/ebcdic-at-de-a.c
index 5ffdaf6191..f90160c61d 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ebcdic-at-de.c b/iconvdata/ebcdic-at-de.c
index c670f87ccc..b807d8c6b8 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ebcdic-ca-fr.c b/iconvdata/ebcdic-ca-fr.c
index 4fdf71d209..b652e39e80 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ebcdic-dk-no-a.c b/iconvdata/ebcdic-dk-no-a.c
index d3585b8d34..33da883f76 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ebcdic-dk-no.c b/iconvdata/ebcdic-dk-no.c
index caf60c869e..c0d03e0158 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ebcdic-es-a.c b/iconvdata/ebcdic-es-a.c
index efef1b85ad..b25e54017d 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ebcdic-es-s.c b/iconvdata/ebcdic-es-s.c
index 66d17f04d6..795870103b 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ebcdic-es.c b/iconvdata/ebcdic-es.c
index 306f7dddfa..fab198d2da 100644
--- a/iconvdata/ebcdic-es.c
+++ b/iconvdata/ebcdic-es.c
@@ -1,5 +1,5 @@
/* Conversion from and to EBCDIC-ES.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ebcdic-fi-se-a.c b/iconvdata/ebcdic-fi-se-a.c
index 53f5278ad8..863cdafa1b 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ebcdic-fi-se.c b/iconvdata/ebcdic-fi-se.c
index f1d7661860..5754d6993d 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ebcdic-fr.c b/iconvdata/ebcdic-fr.c
index dbc881f562..3ea8184dac 100644
--- a/iconvdata/ebcdic-fr.c
+++ b/iconvdata/ebcdic-fr.c
@@ -1,5 +1,5 @@
/* Conversion from and to EBCDIC-FR.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ebcdic-is-friss.c b/iconvdata/ebcdic-is-friss.c
index 3ee21a7168..bdc326cc60 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ebcdic-it.c b/iconvdata/ebcdic-it.c
index c96e590844..619d71ea3c 100644
--- a/iconvdata/ebcdic-it.c
+++ b/iconvdata/ebcdic-it.c
@@ -1,5 +1,5 @@
/* Conversion from and to EBCDIC-IT.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ebcdic-pt.c b/iconvdata/ebcdic-pt.c
index 33684f01ab..90b6cc5ce7 100644
--- a/iconvdata/ebcdic-pt.c
+++ b/iconvdata/ebcdic-pt.c
@@ -1,5 +1,5 @@
/* Conversion from and to EBCDIC-PT.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ebcdic-uk.c b/iconvdata/ebcdic-uk.c
index 00f7a7d97e..463ff5020f 100644
--- a/iconvdata/ebcdic-uk.c
+++ b/iconvdata/ebcdic-uk.c
@@ -1,5 +1,5 @@
/* Conversion from and to EBCDIC-UK.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ebcdic-us.c b/iconvdata/ebcdic-us.c
index f6f30e9550..4e1978c34a 100644
--- a/iconvdata/ebcdic-us.c
+++ b/iconvdata/ebcdic-us.c
@@ -1,5 +1,5 @@
/* Conversion from and to EBCDIC-US.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ecma-cyrillic.c b/iconvdata/ecma-cyrillic.c
index 9eda1ac612..13f413c113 100644
--- a/iconvdata/ecma-cyrillic.c
+++ b/iconvdata/ecma-cyrillic.c
@@ -1,5 +1,5 @@
/* Conversion from and to ECMA-CYRILLIC.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/euc-cn.c b/iconvdata/euc-cn.c
index b252eb6d0c..48250b2d1d 100644
--- a/iconvdata/euc-cn.c
+++ b/iconvdata/euc-cn.c
@@ -1,5 +1,5 @@
/* Mapping tables for EUC-CN handling.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <gb2312.h>
diff --git a/iconvdata/euc-jisx0213.c b/iconvdata/euc-jisx0213.c
index f4e8f6c5ee..45ceee4342 100644
--- a/iconvdata/euc-jisx0213.c
+++ b/iconvdata/euc-jisx0213.c
@@ -1,5 +1,5 @@
/* Conversion from and to EUC-JISX0213.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Bruno Haible <bruno@clisp.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stdint.h>
diff --git a/iconvdata/euc-jp-ms.c b/iconvdata/euc-jp-ms.c
index bba584036b..3c364ea356 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by MORIYAMA Masayuki <msyk@mtg.biglobe.ne.jp>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stdint.h>
diff --git a/iconvdata/euc-jp.c b/iconvdata/euc-jp.c
index 3b37ae48ed..6a7e6f3276 100644
--- a/iconvdata/euc-jp.c
+++ b/iconvdata/euc-jp.c
@@ -1,5 +1,5 @@
/* Mapping tables for EUC-JP handling.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stdint.h>
diff --git a/iconvdata/euc-kr.c b/iconvdata/euc-kr.c
index 73e02817a0..379414c426 100644
--- a/iconvdata/euc-kr.c
+++ b/iconvdata/euc-kr.c
@@ -1,5 +1,5 @@
/* Mapping tables for EUC-KR handling.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jungshik Shin <jshin@pantheon.yale.edu>
and Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stdint.h>
diff --git a/iconvdata/euc-tw.c b/iconvdata/euc-tw.c
index c7a8eb3c6f..960db5f0ad 100644
--- a/iconvdata/euc-tw.c
+++ b/iconvdata/euc-tw.c
@@ -1,5 +1,5 @@
/* Mapping tables for EUC-TW handling.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stdint.h>
diff --git a/iconvdata/gb18030.c b/iconvdata/gb18030.c
index 400c547d32..50fbecbf18 100644
--- a/iconvdata/gb18030.c
+++ b/iconvdata/gb18030.c
@@ -1,5 +1,5 @@
/* Mapping tables for GBK handling.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Sean Chen <seanc@turbolinux.com.cn>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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 64c53f19f2..4fe9ff9abf 100644
--- a/iconvdata/gb2312.c
+++ b/iconvdata/gb2312.c
@@ -1,5 +1,5 @@
/* GB 2312 conversion tables.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/gb2312.h b/iconvdata/gb2312.h
index 9685abee20..1b56703b89 100644
--- a/iconvdata/gb2312.h
+++ b/iconvdata/gb2312.h
@@ -1,5 +1,5 @@
/* Access functions for GB2312 conversion.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _GB2312_H
#define _GB2312_H 1
diff --git a/iconvdata/gbbig5.c b/iconvdata/gbbig5.c
index a7c3941a1c..a61c0795b3 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <gconv.h>
diff --git a/iconvdata/gbgbk.c b/iconvdata/gbgbk.c
index 88ee9b6e74..45e5efac15 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <gconv.h>
diff --git a/iconvdata/gbk.c b/iconvdata/gbk.c
index 9215e0fd53..8a23ce17eb 100644
--- a/iconvdata/gbk.c
+++ b/iconvdata/gbk.c
@@ -1,5 +1,5 @@
/* Mapping tables for GBK handling.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Sean Chen <sean.chen@turbolinux.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <gconv.h>
diff --git a/iconvdata/gconv-modules b/iconvdata/gconv-modules
index 81687c1619..50e9828b7c 100644
--- a/iconvdata/gconv-modules
+++ b/iconvdata/gconv-modules
@@ -1,5 +1,5 @@
# GNU libc iconv configuration.
-# Copyright (C) 1997-2018 Free Software Foundation, Inc.
+# Copyright (C) 1997-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
@@ -14,7 +14,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
# All lines contain the following information:
diff --git a/iconvdata/georgian-academy.c b/iconvdata/georgian-academy.c
index 2531b23901..63a1dca41f 100644
--- a/iconvdata/georgian-academy.c
+++ b/iconvdata/georgian-academy.c
@@ -1,5 +1,5 @@
/* Conversion from and to GEORGIAN-ACADEMY.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/georgian-ps.c b/iconvdata/georgian-ps.c
index 3981be0df2..bec717070e 100644
--- a/iconvdata/georgian-ps.c
+++ b/iconvdata/georgian-ps.c
@@ -1,5 +1,5 @@
/* Conversion from and to GEORGIAN-PS.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/gost_19768-74.c b/iconvdata/gost_19768-74.c
index 2c9806b67c..3c805b044b 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/greek-ccitt.c b/iconvdata/greek-ccitt.c
index 555c6b488b..46500e042c 100644
--- a/iconvdata/greek-ccitt.c
+++ b/iconvdata/greek-ccitt.c
@@ -1,5 +1,5 @@
/* Conversion from and to GREEK-CCITT.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/greek7-old.c b/iconvdata/greek7-old.c
index c2075c722d..9b76a2579d 100644
--- a/iconvdata/greek7-old.c
+++ b/iconvdata/greek7-old.c
@@ -1,5 +1,5 @@
/* Conversion from and to GREEK7-OLD.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/greek7.c b/iconvdata/greek7.c
index b42ff5d244..c0fd0830d0 100644
--- a/iconvdata/greek7.c
+++ b/iconvdata/greek7.c
@@ -1,5 +1,5 @@
/* Conversion from and to GREEK7.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/hp-greek8.c b/iconvdata/hp-greek8.c
index 65e23036d8..23173914ac 100644
--- a/iconvdata/hp-greek8.c
+++ b/iconvdata/hp-greek8.c
@@ -1,5 +1,5 @@
/* Conversion from and to HP-GREEK8.
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/hp-roman8.c b/iconvdata/hp-roman8.c
index 75e34dbab3..883e131800 100644
--- a/iconvdata/hp-roman8.c
+++ b/iconvdata/hp-roman8.c
@@ -1,5 +1,5 @@
/* Conversion from and to HP-ROMAN8.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/hp-roman9.c b/iconvdata/hp-roman9.c
index 0bea7a5178..d00696071a 100644
--- a/iconvdata/hp-roman9.c
+++ b/iconvdata/hp-roman9.c
@@ -1,5 +1,5 @@
/* Conversion from and to HP-ROMAN9.
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/hp-thai8.c b/iconvdata/hp-thai8.c
index 67f797ed86..54efee7eff 100644
--- a/iconvdata/hp-thai8.c
+++ b/iconvdata/hp-thai8.c
@@ -1,5 +1,5 @@
/* Conversion from and to HP-THAI8.
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/hp-turkish8.c b/iconvdata/hp-turkish8.c
index ee727df745..feb42de4d1 100644
--- a/iconvdata/hp-turkish8.c
+++ b/iconvdata/hp-turkish8.c
@@ -1,5 +1,5 @@
/* Conversion from and to HP-TURKISH8.
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm037.c b/iconvdata/ibm037.c
index 0e6ad67323..79f75c130b 100644
--- a/iconvdata/ibm037.c
+++ b/iconvdata/ibm037.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM037.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm038.c b/iconvdata/ibm038.c
index 3ad40a3f54..4f81a96c77 100644
--- a/iconvdata/ibm038.c
+++ b/iconvdata/ibm038.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM038.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1004.c b/iconvdata/ibm1004.c
index 9e5a3a6fbb..7a4fecf313 100644
--- a/iconvdata/ibm1004.c
+++ b/iconvdata/ibm1004.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM1004.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1008.c b/iconvdata/ibm1008.c
index dc782464cc..684488289b 100644
--- a/iconvdata/ibm1008.c
+++ b/iconvdata/ibm1008.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM1008.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1008.h b/iconvdata/ibm1008.h
index 5e624be9b2..2ea96f3193 100644
--- a/iconvdata/ibm1008.h
+++ b/iconvdata/ibm1008.h
@@ -1,5 +1,5 @@
/* Tables for conversion from and to IBM1008.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1008_420.c b/iconvdata/ibm1008_420.c
index 8ba91df3c3..a3eefdf869 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <gconv.h>
diff --git a/iconvdata/ibm1025.c b/iconvdata/ibm1025.c
index 7614b0eb7c..2043097a2b 100644
--- a/iconvdata/ibm1025.c
+++ b/iconvdata/ibm1025.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM1025.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jiro SEKIBA <sekiba@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1025.h b/iconvdata/ibm1025.h
index 3bf0712f54..8292133977 100644
--- a/iconvdata/ibm1025.h
+++ b/iconvdata/ibm1025.h
@@ -1,5 +1,5 @@
/* Mapping table for IBM1025.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jiro SEKIBA <sekiba@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1026.c b/iconvdata/ibm1026.c
index 67c0fd2876..e18f0bad79 100644
--- a/iconvdata/ibm1026.c
+++ b/iconvdata/ibm1026.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM1026.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1046.c b/iconvdata/ibm1046.c
index 71889f8e49..95236f6d4b 100644
--- a/iconvdata/ibm1046.c
+++ b/iconvdata/ibm1046.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM1046.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@yamato.ibm.co.jp>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1046.h b/iconvdata/ibm1046.h
index 6ac337392f..11d3b3961e 100644
--- a/iconvdata/ibm1046.h
+++ b/iconvdata/ibm1046.h
@@ -1,5 +1,5 @@
/* Tables for conversion from and to IBM1046.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@yamato.ibm.co.jp>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1047.c b/iconvdata/ibm1047.c
index bf8ea282c1..11171717ea 100644
--- a/iconvdata/ibm1047.c
+++ b/iconvdata/ibm1047.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM1047.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1097.c b/iconvdata/ibm1097.c
index 3b5c904e66..6b3094f4cc 100644
--- a/iconvdata/ibm1097.c
+++ b/iconvdata/ibm1097.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM1097.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1097.h b/iconvdata/ibm1097.h
index 462e684f8d..b8b284eb49 100644
--- a/iconvdata/ibm1097.h
+++ b/iconvdata/ibm1097.h
@@ -1,5 +1,5 @@
/* Tables for conversion from and to IBM1097.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1112.c b/iconvdata/ibm1112.c
index 0754766894..c26992f0ab 100644
--- a/iconvdata/ibm1112.c
+++ b/iconvdata/ibm1112.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM1112.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1112.h b/iconvdata/ibm1112.h
index 9b9f8c9362..41f2289dbc 100644
--- a/iconvdata/ibm1112.h
+++ b/iconvdata/ibm1112.h
@@ -1,5 +1,5 @@
/* Tables for conversion from and to IBM1112.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1122.c b/iconvdata/ibm1122.c
index b51240edcb..2e02288912 100644
--- a/iconvdata/ibm1122.c
+++ b/iconvdata/ibm1122.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM1122.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jiro SEKIBA <sekiba@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1122.h b/iconvdata/ibm1122.h
index fc28f4e5c5..9f6b62acbd 100644
--- a/iconvdata/ibm1122.h
+++ b/iconvdata/ibm1122.h
@@ -1,5 +1,5 @@
/* Mapping table for IBM1122.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jiro SEKIBA <sekiba@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1123.c b/iconvdata/ibm1123.c
index fc44284fda..7b3d256e45 100644
--- a/iconvdata/ibm1123.c
+++ b/iconvdata/ibm1123.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM1123.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1123.h b/iconvdata/ibm1123.h
index 81046dc333..91465926cd 100644
--- a/iconvdata/ibm1123.h
+++ b/iconvdata/ibm1123.h
@@ -1,5 +1,5 @@
/* Tables for conversion from and to IBM1123.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1124.c b/iconvdata/ibm1124.c
index 26084d7d4f..e699fb21e7 100644
--- a/iconvdata/ibm1124.c
+++ b/iconvdata/ibm1124.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM1124.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1124.h b/iconvdata/ibm1124.h
index 4fca325bf5..4c06fdfc64 100644
--- a/iconvdata/ibm1124.h
+++ b/iconvdata/ibm1124.h
@@ -1,5 +1,5 @@
/* Conversion from and to IBM1124.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1129.c b/iconvdata/ibm1129.c
index 84a0a6d5db..ee13aafbb9 100644
--- a/iconvdata/ibm1129.c
+++ b/iconvdata/ibm1129.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM1129.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1129.h b/iconvdata/ibm1129.h
index d707defb5f..cd0ed01cfb 100644
--- a/iconvdata/ibm1129.h
+++ b/iconvdata/ibm1129.h
@@ -1,5 +1,5 @@
/* Conversion from and to IBM1129.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1130.c b/iconvdata/ibm1130.c
index 2f4231f153..d8985ae951 100644
--- a/iconvdata/ibm1130.c
+++ b/iconvdata/ibm1130.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM1130.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1130.h b/iconvdata/ibm1130.h
index 594b3069f6..16ad9d025f 100644
--- a/iconvdata/ibm1130.h
+++ b/iconvdata/ibm1130.h
@@ -1,5 +1,5 @@
/* Tables for conversion from and to IBM1130.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1132.c b/iconvdata/ibm1132.c
index e062c86c81..b049a421d3 100644
--- a/iconvdata/ibm1132.c
+++ b/iconvdata/ibm1132.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM1132.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1132.h b/iconvdata/ibm1132.h
index 395261846d..c48107e622 100644
--- a/iconvdata/ibm1132.h
+++ b/iconvdata/ibm1132.h
@@ -1,5 +1,5 @@
/* Mapping table for IBM1132.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1133.c b/iconvdata/ibm1133.c
index f4fe9f042d..a143573ecf 100644
--- a/iconvdata/ibm1133.c
+++ b/iconvdata/ibm1133.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM1133.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1133.h b/iconvdata/ibm1133.h
index 8a636d2459..0a2bbf8f84 100644
--- a/iconvdata/ibm1133.h
+++ b/iconvdata/ibm1133.h
@@ -1,5 +1,5 @@
/* Mapping table for IBM1133.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1137.c b/iconvdata/ibm1137.c
index fbda98483c..97ba758db4 100644
--- a/iconvdata/ibm1137.c
+++ b/iconvdata/ibm1137.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM1137.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jiro SEKIBA <sekiba@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1137.h b/iconvdata/ibm1137.h
index 286244cdf0..7ef6f07177 100644
--- a/iconvdata/ibm1137.h
+++ b/iconvdata/ibm1137.h
@@ -1,5 +1,5 @@
/* Mapping table for IBM1137.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jiro SEKIBA <sekiba@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1140.c b/iconvdata/ibm1140.c
index 0035ed1fa4..1f97364743 100644
--- a/iconvdata/ibm1140.c
+++ b/iconvdata/ibm1140.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM1140.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1140.h b/iconvdata/ibm1140.h
index c6872d07be..78c84cf5d9 100644
--- a/iconvdata/ibm1140.h
+++ b/iconvdata/ibm1140.h
@@ -1,5 +1,5 @@
/* Tables for conversion from and to IBM1140.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1141.c b/iconvdata/ibm1141.c
index 265d67466c..8250398f35 100644
--- a/iconvdata/ibm1141.c
+++ b/iconvdata/ibm1141.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM1141.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1141.h b/iconvdata/ibm1141.h
index 69fa1bf578..ed1c0dac20 100644
--- a/iconvdata/ibm1141.h
+++ b/iconvdata/ibm1141.h
@@ -1,5 +1,5 @@
/* Tables for conversion from and to IBM1141.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1142.c b/iconvdata/ibm1142.c
index fa6d6be54a..102c35a20a 100644
--- a/iconvdata/ibm1142.c
+++ b/iconvdata/ibm1142.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM1142.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1142.h b/iconvdata/ibm1142.h
index e063818264..e929b44155 100644
--- a/iconvdata/ibm1142.h
+++ b/iconvdata/ibm1142.h
@@ -1,5 +1,5 @@
/* Tables for conversion from and to IBM1142.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1143.c b/iconvdata/ibm1143.c
index 6d457741e8..2de0716685 100644
--- a/iconvdata/ibm1143.c
+++ b/iconvdata/ibm1143.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM1143.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1143.h b/iconvdata/ibm1143.h
index c06e517b98..425bcfd942 100644
--- a/iconvdata/ibm1143.h
+++ b/iconvdata/ibm1143.h
@@ -1,5 +1,5 @@
/* Tables for conversion from and to IBM1143.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1144.c b/iconvdata/ibm1144.c
index 84fa513bf5..9eb1c505de 100644
--- a/iconvdata/ibm1144.c
+++ b/iconvdata/ibm1144.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM1144.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1144.h b/iconvdata/ibm1144.h
index 1b9aac4b8e..705406033b 100644
--- a/iconvdata/ibm1144.h
+++ b/iconvdata/ibm1144.h
@@ -1,5 +1,5 @@
/* Tables for conversion from and to IBM1144.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1145.c b/iconvdata/ibm1145.c
index f01c637a43..0a5c30fffe 100644
--- a/iconvdata/ibm1145.c
+++ b/iconvdata/ibm1145.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM1145.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1145.h b/iconvdata/ibm1145.h
index 5d7e0d0ba3..77bccdd919 100644
--- a/iconvdata/ibm1145.h
+++ b/iconvdata/ibm1145.h
@@ -1,5 +1,5 @@
/* Tables for conversion from and to IBM1145.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1146.c b/iconvdata/ibm1146.c
index ae33c9ce75..d0e8359eda 100644
--- a/iconvdata/ibm1146.c
+++ b/iconvdata/ibm1146.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM1146.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1146.h b/iconvdata/ibm1146.h
index 5b172f9c12..856b73e6be 100644
--- a/iconvdata/ibm1146.h
+++ b/iconvdata/ibm1146.h
@@ -1,5 +1,5 @@
/* Tables for conversion from and to IBM1146.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1147.c b/iconvdata/ibm1147.c
index eef4d6dbca..62e52f0758 100644
--- a/iconvdata/ibm1147.c
+++ b/iconvdata/ibm1147.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM1147.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1147.h b/iconvdata/ibm1147.h
index 2dfe25f186..47138497bf 100644
--- a/iconvdata/ibm1147.h
+++ b/iconvdata/ibm1147.h
@@ -1,5 +1,5 @@
/* Tables for conversion from and to IBM1147.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1148.c b/iconvdata/ibm1148.c
index 5855e75eb6..436d5cf82c 100644
--- a/iconvdata/ibm1148.c
+++ b/iconvdata/ibm1148.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM1148.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1148.h b/iconvdata/ibm1148.h
index 4aff15804d..25b5961370 100644
--- a/iconvdata/ibm1148.h
+++ b/iconvdata/ibm1148.h
@@ -1,5 +1,5 @@
/* Tables for conversion from and to IBM1148.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1149.c b/iconvdata/ibm1149.c
index db5906fadb..911e26f4b3 100644
--- a/iconvdata/ibm1149.c
+++ b/iconvdata/ibm1149.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM1149.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1149.h b/iconvdata/ibm1149.h
index 1fe94d985e..ec8a820a82 100644
--- a/iconvdata/ibm1149.h
+++ b/iconvdata/ibm1149.h
@@ -1,5 +1,5 @@
/* Tables for conversion from and to IBM1149.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1153.c b/iconvdata/ibm1153.c
index d8b72c7101..38e303d200 100644
--- a/iconvdata/ibm1153.c
+++ b/iconvdata/ibm1153.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM1153.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jiro SEKIBA <sekiba@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1153.h b/iconvdata/ibm1153.h
index 6b459154cb..345fbab3b1 100644
--- a/iconvdata/ibm1153.h
+++ b/iconvdata/ibm1153.h
@@ -1,5 +1,5 @@
/* Mapping table for IBM1153.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jiro SEKIBA <sekiba@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1154.c b/iconvdata/ibm1154.c
index ee28ea1703..e1b07e2dce 100644
--- a/iconvdata/ibm1154.c
+++ b/iconvdata/ibm1154.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM1154.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jiro SEKIBA <sekiba@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1154.h b/iconvdata/ibm1154.h
index bfd5872960..e7611d4483 100644
--- a/iconvdata/ibm1154.h
+++ b/iconvdata/ibm1154.h
@@ -1,5 +1,5 @@
/* Mapping table for IBM1154.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jiro SEKIBA <sekiba@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1155.c b/iconvdata/ibm1155.c
index 62271c8660..d977a42648 100644
--- a/iconvdata/ibm1155.c
+++ b/iconvdata/ibm1155.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM1155.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jiro SEKIBA <sekiba@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1155.h b/iconvdata/ibm1155.h
index b655661d82..3fa2dbba1d 100644
--- a/iconvdata/ibm1155.h
+++ b/iconvdata/ibm1155.h
@@ -1,5 +1,5 @@
/* Mapping table for IBM1155.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jiro SEKIBA <sekiba@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1156.c b/iconvdata/ibm1156.c
index 82c8c4c6b4..fbad52c4bf 100644
--- a/iconvdata/ibm1156.c
+++ b/iconvdata/ibm1156.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM1156.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jiro SEKIBA <sekiba@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1156.h b/iconvdata/ibm1156.h
index b9bf44159b..fbe2d2c703 100644
--- a/iconvdata/ibm1156.h
+++ b/iconvdata/ibm1156.h
@@ -1,5 +1,5 @@
/* Mapping table for IBM1156.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jiro SEKIBA <sekiba@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1157.c b/iconvdata/ibm1157.c
index d2d41d78c4..40a73759b9 100644
--- a/iconvdata/ibm1157.c
+++ b/iconvdata/ibm1157.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM1157.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jiro SEKIBA <sekiba@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1157.h b/iconvdata/ibm1157.h
index 13687e1ae1..0d2714b972 100644
--- a/iconvdata/ibm1157.h
+++ b/iconvdata/ibm1157.h
@@ -1,5 +1,5 @@
/* Mapping table for IBM1157.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jiro SEKIBA <sekiba@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1158.c b/iconvdata/ibm1158.c
index 34fb2f1690..a067d357cc 100644
--- a/iconvdata/ibm1158.c
+++ b/iconvdata/ibm1158.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM1158.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jiro SEKIBA <sekiba@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1158.h b/iconvdata/ibm1158.h
index 0cc742d4d9..05cca42dd6 100644
--- a/iconvdata/ibm1158.h
+++ b/iconvdata/ibm1158.h
@@ -1,5 +1,5 @@
/* Mapping table for IBM1158.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jiro SEKIBA <sekiba@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1160.c b/iconvdata/ibm1160.c
index bcc447cd15..78dbef197b 100644
--- a/iconvdata/ibm1160.c
+++ b/iconvdata/ibm1160.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM1160.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1160.h b/iconvdata/ibm1160.h
index e09f2b62e9..614103a264 100644
--- a/iconvdata/ibm1160.h
+++ b/iconvdata/ibm1160.h
@@ -1,5 +1,5 @@
/* Mapping table for IBM1160.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1161.c b/iconvdata/ibm1161.c
index 434fc7681e..51c667fd3a 100644
--- a/iconvdata/ibm1161.c
+++ b/iconvdata/ibm1161.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM1161.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1161.h b/iconvdata/ibm1161.h
index 4f8494c63b..573e420dea 100644
--- a/iconvdata/ibm1161.h
+++ b/iconvdata/ibm1161.h
@@ -1,5 +1,5 @@
/* Mapping table for IBM1161.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1162.c b/iconvdata/ibm1162.c
index f67f77c711..a3062650df 100644
--- a/iconvdata/ibm1162.c
+++ b/iconvdata/ibm1162.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM1162.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1162.h b/iconvdata/ibm1162.h
index a267b80465..765dd161bc 100644
--- a/iconvdata/ibm1162.h
+++ b/iconvdata/ibm1162.h
@@ -1,5 +1,5 @@
/* Mapping table for IBM1162.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1163.c b/iconvdata/ibm1163.c
index e8b9f3d311..dc030ab631 100644
--- a/iconvdata/ibm1163.c
+++ b/iconvdata/ibm1163.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM1163.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1163.h b/iconvdata/ibm1163.h
index eceb1a3d59..7bc7012e94 100644
--- a/iconvdata/ibm1163.h
+++ b/iconvdata/ibm1163.h
@@ -1,5 +1,5 @@
/* Mapping table for IBM1163.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1164.c b/iconvdata/ibm1164.c
index 3e98b78756..e1bfe9dfb0 100644
--- a/iconvdata/ibm1164.c
+++ b/iconvdata/ibm1164.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM1164.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1164.h b/iconvdata/ibm1164.h
index e70ceef448..fe2dc98c38 100644
--- a/iconvdata/ibm1164.h
+++ b/iconvdata/ibm1164.h
@@ -1,5 +1,5 @@
/* Mapping table for IBM1164.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1166.c b/iconvdata/ibm1166.c
index 77ae228454..ef977ec6c8 100644
--- a/iconvdata/ibm1166.c
+++ b/iconvdata/ibm1166.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM1166.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1166.h b/iconvdata/ibm1166.h
index c564e95d29..29faff2ea3 100644
--- a/iconvdata/ibm1166.h
+++ b/iconvdata/ibm1166.h
@@ -1,5 +1,5 @@
/* Tables for conversion from and to IBM1166.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1167.c b/iconvdata/ibm1167.c
index b8337d6c2b..16726b3e49 100644
--- a/iconvdata/ibm1167.c
+++ b/iconvdata/ibm1167.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM1167.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1167.h b/iconvdata/ibm1167.h
index cf871291e3..b433e7b640 100644
--- a/iconvdata/ibm1167.h
+++ b/iconvdata/ibm1167.h
@@ -1,5 +1,5 @@
/* Tables for conversion from and to IBM1167.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm12712.c b/iconvdata/ibm12712.c
index ff5242f537..aa1db102fc 100644
--- a/iconvdata/ibm12712.c
+++ b/iconvdata/ibm12712.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM12712.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm12712.h b/iconvdata/ibm12712.h
index 8d8e5b80fc..c0095fdd34 100644
--- a/iconvdata/ibm12712.h
+++ b/iconvdata/ibm12712.h
@@ -1,5 +1,5 @@
/* Tables for conversion from and to IBM12712.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm1364.c b/iconvdata/ibm1364.c
index 517fe60813..6d83997545 100644
--- a/iconvdata/ibm1364.c
+++ b/iconvdata/ibm1364.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM1364.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stdint.h>
diff --git a/iconvdata/ibm1364.h b/iconvdata/ibm1364.h
index ef2d32b885..4a9980b51d 100644
--- a/iconvdata/ibm1364.h
+++ b/iconvdata/ibm1364.h
@@ -1,5 +1,5 @@
/* Tables for conversion from and to IBM1364.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _IBM1364_H
diff --git a/iconvdata/ibm1371.c b/iconvdata/ibm1371.c
index a79f7bcef0..0470170a41 100644
--- a/iconvdata/ibm1371.c
+++ b/iconvdata/ibm1371.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM1371.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define DATA_HEADER "ibm1371.h"
#define CHARSET_NAME "IBM1371//"
diff --git a/iconvdata/ibm1371.h b/iconvdata/ibm1371.h
index 0a749aa730..83bbf1fe31 100644
--- a/iconvdata/ibm1371.h
+++ b/iconvdata/ibm1371.h
@@ -1,5 +1,5 @@
/* Tables for conversion from and to IBM1371.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _IBM1371_H
diff --git a/iconvdata/ibm1388.c b/iconvdata/ibm1388.c
index acaf643db1..7980650d41 100644
--- a/iconvdata/ibm1388.c
+++ b/iconvdata/ibm1388.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM1388.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define DATA_HEADER "ibm1388.h"
#define CHARSET_NAME "IBM1388//"
diff --git a/iconvdata/ibm1388.h b/iconvdata/ibm1388.h
index 0911cffef5..041d062df7 100644
--- a/iconvdata/ibm1388.h
+++ b/iconvdata/ibm1388.h
@@ -1,5 +1,5 @@
/* Tables for conversion from and to IBM1388.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _IBM1388_H
diff --git a/iconvdata/ibm1390.c b/iconvdata/ibm1390.c
index e08ff93b5c..ab92e8e978 100644
--- a/iconvdata/ibm1390.c
+++ b/iconvdata/ibm1390.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM1390.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define DATA_HEADER "ibm1390.h"
#define CHARSET_NAME "IBM1390//"
diff --git a/iconvdata/ibm1390.h b/iconvdata/ibm1390.h
index 88dac12684..74d3a01318 100644
--- a/iconvdata/ibm1390.h
+++ b/iconvdata/ibm1390.h
@@ -1,5 +1,5 @@
/* Tables for conversion from and to IBM1390.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _IBM1390_H
#define _IBM1390_H 1
diff --git a/iconvdata/ibm1399.c b/iconvdata/ibm1399.c
index 4179946d4b..06e1b5e720 100644
--- a/iconvdata/ibm1399.c
+++ b/iconvdata/ibm1399.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM1399.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define DATA_HEADER "ibm1399.h"
#define CHARSET_NAME "IBM1399//"
diff --git a/iconvdata/ibm1399.h b/iconvdata/ibm1399.h
index d2887708e7..5d84a76a95 100644
--- a/iconvdata/ibm1399.h
+++ b/iconvdata/ibm1399.h
@@ -1,5 +1,5 @@
/* Tables for conversion from and to IBM1399.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _IBM1399_H
#define _IBM1399_H 1
diff --git a/iconvdata/ibm16804.c b/iconvdata/ibm16804.c
index 22a73645ff..0b85c87a10 100644
--- a/iconvdata/ibm16804.c
+++ b/iconvdata/ibm16804.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM16804.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm16804.h b/iconvdata/ibm16804.h
index cb9ea8b7e1..5dae77b890 100644
--- a/iconvdata/ibm16804.h
+++ b/iconvdata/ibm16804.h
@@ -1,5 +1,5 @@
/* Tables for conversion from and to IBM16804.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm256.c b/iconvdata/ibm256.c
index e772f18d0e..ff162177f3 100644
--- a/iconvdata/ibm256.c
+++ b/iconvdata/ibm256.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM256.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm273.c b/iconvdata/ibm273.c
index 132c06f0eb..138d7b59cd 100644
--- a/iconvdata/ibm273.c
+++ b/iconvdata/ibm273.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM273.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm274.c b/iconvdata/ibm274.c
index 52b446506e..a5bf26d86d 100644
--- a/iconvdata/ibm274.c
+++ b/iconvdata/ibm274.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM274.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm275.c b/iconvdata/ibm275.c
index efc73b7e1c..d2619a43c0 100644
--- a/iconvdata/ibm275.c
+++ b/iconvdata/ibm275.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM275.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm277.c b/iconvdata/ibm277.c
index f93ca2acb8..0689bcae1f 100644
--- a/iconvdata/ibm277.c
+++ b/iconvdata/ibm277.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM277.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm278.c b/iconvdata/ibm278.c
index 4263000760..c42eb4974e 100644
--- a/iconvdata/ibm278.c
+++ b/iconvdata/ibm278.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM278.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm280.c b/iconvdata/ibm280.c
index 3efddd7dec..c330d1ef4a 100644
--- a/iconvdata/ibm280.c
+++ b/iconvdata/ibm280.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM280.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm281.c b/iconvdata/ibm281.c
index 467363e776..e11f5aca2e 100644
--- a/iconvdata/ibm281.c
+++ b/iconvdata/ibm281.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM281.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm284.c b/iconvdata/ibm284.c
index 57dab27d0c..c1469237cd 100644
--- a/iconvdata/ibm284.c
+++ b/iconvdata/ibm284.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM284.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm285.c b/iconvdata/ibm285.c
index 1b555552e3..b12cd3abe0 100644
--- a/iconvdata/ibm285.c
+++ b/iconvdata/ibm285.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM285.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm290.c b/iconvdata/ibm290.c
index 53e0e182d0..9a4f07176d 100644
--- a/iconvdata/ibm290.c
+++ b/iconvdata/ibm290.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM290.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm297.c b/iconvdata/ibm297.c
index f355659afd..36da867247 100644
--- a/iconvdata/ibm297.c
+++ b/iconvdata/ibm297.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM297.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm420.c b/iconvdata/ibm420.c
index 4b46e58aa2..e01f40fdad 100644
--- a/iconvdata/ibm420.c
+++ b/iconvdata/ibm420.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM420.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm423.c b/iconvdata/ibm423.c
index 960e6601f2..4b19bf24d9 100644
--- a/iconvdata/ibm423.c
+++ b/iconvdata/ibm423.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM423.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm424.c b/iconvdata/ibm424.c
index 9af3a17180..6cf8921e51 100644
--- a/iconvdata/ibm424.c
+++ b/iconvdata/ibm424.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM424.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm437.c b/iconvdata/ibm437.c
index 6c08bfd40f..58ff073b93 100644
--- a/iconvdata/ibm437.c
+++ b/iconvdata/ibm437.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM437.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm4517.c b/iconvdata/ibm4517.c
index 16264f2788..80b91026ec 100644
--- a/iconvdata/ibm4517.c
+++ b/iconvdata/ibm4517.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM4517.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm4517.h b/iconvdata/ibm4517.h
index acbf0da31d..f6e878f223 100644
--- a/iconvdata/ibm4517.h
+++ b/iconvdata/ibm4517.h
@@ -1,5 +1,5 @@
/* Tables for conversion from and to IBM4517.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm4899.c b/iconvdata/ibm4899.c
index 2588b93a21..b3d5a7ebd7 100644
--- a/iconvdata/ibm4899.c
+++ b/iconvdata/ibm4899.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM4899.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm4899.h b/iconvdata/ibm4899.h
index 21d62cfc15..2ca43b71f9 100644
--- a/iconvdata/ibm4899.h
+++ b/iconvdata/ibm4899.h
@@ -1,5 +1,5 @@
/* Tables for conversion from and to IBM4899.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm4909.c b/iconvdata/ibm4909.c
index 6e3fba9f95..852ed2f926 100644
--- a/iconvdata/ibm4909.c
+++ b/iconvdata/ibm4909.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM4909.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm4909.h b/iconvdata/ibm4909.h
index f8fb1bfca1..6d7f04ecbc 100644
--- a/iconvdata/ibm4909.h
+++ b/iconvdata/ibm4909.h
@@ -1,5 +1,5 @@
/* Tables for conversion from and to IBM4909.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm4971.c b/iconvdata/ibm4971.c
index 0aed13d9e1..98bde87290 100644
--- a/iconvdata/ibm4971.c
+++ b/iconvdata/ibm4971.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM4971.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm4971.h b/iconvdata/ibm4971.h
index 020ecde8c4..d116c1703c 100644
--- a/iconvdata/ibm4971.h
+++ b/iconvdata/ibm4971.h
@@ -1,5 +1,5 @@
/* Tables for conversion from and to IBM4971.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm500.c b/iconvdata/ibm500.c
index 98dcd35dcc..d5afa75956 100644
--- a/iconvdata/ibm500.c
+++ b/iconvdata/ibm500.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM500.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm5347.c b/iconvdata/ibm5347.c
index 8a78e73ac0..3b6d044ee0 100644
--- a/iconvdata/ibm5347.c
+++ b/iconvdata/ibm5347.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM5347.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm5347.h b/iconvdata/ibm5347.h
index 6a2f8d5342..02d88f448d 100644
--- a/iconvdata/ibm5347.h
+++ b/iconvdata/ibm5347.h
@@ -1,5 +1,5 @@
/* Tables for conversion from and to IBM5347.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm803.c b/iconvdata/ibm803.c
index 966f3f1eca..df3546f90d 100644
--- a/iconvdata/ibm803.c
+++ b/iconvdata/ibm803.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM803.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm803.h b/iconvdata/ibm803.h
index 390b7d76f6..dfa825c0fc 100644
--- a/iconvdata/ibm803.h
+++ b/iconvdata/ibm803.h
@@ -1,5 +1,5 @@
/* Tables for conversion from and to IBM803.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm850.c b/iconvdata/ibm850.c
index 13b54dbd4a..fa68b73360 100644
--- a/iconvdata/ibm850.c
+++ b/iconvdata/ibm850.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM850.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm851.c b/iconvdata/ibm851.c
index 90bf262a8d..938f0a9b70 100644
--- a/iconvdata/ibm851.c
+++ b/iconvdata/ibm851.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM851.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm852.c b/iconvdata/ibm852.c
index a092237334..6e7921f4c7 100644
--- a/iconvdata/ibm852.c
+++ b/iconvdata/ibm852.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM852.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm855.c b/iconvdata/ibm855.c
index 148d1d0ed9..bc1d0b8b1d 100644
--- a/iconvdata/ibm855.c
+++ b/iconvdata/ibm855.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM855.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm856.c b/iconvdata/ibm856.c
index b2bec84422..11a63287c7 100644
--- a/iconvdata/ibm856.c
+++ b/iconvdata/ibm856.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM856.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@yamato.ibm.co.jp>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm856.h b/iconvdata/ibm856.h
index dc66b6956e..b6d36f7dca 100644
--- a/iconvdata/ibm856.h
+++ b/iconvdata/ibm856.h
@@ -1,5 +1,5 @@
/* Tables for conversion from and to IBM856.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@yamato.ibm.co.jp>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm857.c b/iconvdata/ibm857.c
index 029afc0c36..8d19268684 100644
--- a/iconvdata/ibm857.c
+++ b/iconvdata/ibm857.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM857.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm858.c b/iconvdata/ibm858.c
index bd374ce1fc..ce962f0f2c 100644
--- a/iconvdata/ibm858.c
+++ b/iconvdata/ibm858.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM858.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm860.c b/iconvdata/ibm860.c
index fe0d090b33..eddb78bb49 100644
--- a/iconvdata/ibm860.c
+++ b/iconvdata/ibm860.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM860.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm861.c b/iconvdata/ibm861.c
index e7243bf459..98d43cc8ff 100644
--- a/iconvdata/ibm861.c
+++ b/iconvdata/ibm861.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM861.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm862.c b/iconvdata/ibm862.c
index f30c5466e5..f8d0877026 100644
--- a/iconvdata/ibm862.c
+++ b/iconvdata/ibm862.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM862.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm863.c b/iconvdata/ibm863.c
index 45f3c9eccb..d7eeb93d95 100644
--- a/iconvdata/ibm863.c
+++ b/iconvdata/ibm863.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM863.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm864.c b/iconvdata/ibm864.c
index 6655bebed8..d484920576 100644
--- a/iconvdata/ibm864.c
+++ b/iconvdata/ibm864.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM864.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm865.c b/iconvdata/ibm865.c
index 5702adedb7..6e148ce499 100644
--- a/iconvdata/ibm865.c
+++ b/iconvdata/ibm865.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM865.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm866.c b/iconvdata/ibm866.c
index 3fab77ade5..ff1601583c 100644
--- a/iconvdata/ibm866.c
+++ b/iconvdata/ibm866.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM866.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm866nav.c b/iconvdata/ibm866nav.c
index b9bcd65ef5..22d9b2d8ff 100644
--- a/iconvdata/ibm866nav.c
+++ b/iconvdata/ibm866nav.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM866NAV.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm868.c b/iconvdata/ibm868.c
index 9f6f3ca686..023f71503b 100644
--- a/iconvdata/ibm868.c
+++ b/iconvdata/ibm868.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM868.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm869.c b/iconvdata/ibm869.c
index 1efe219f9a..6d6be51b9e 100644
--- a/iconvdata/ibm869.c
+++ b/iconvdata/ibm869.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM869.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm870.c b/iconvdata/ibm870.c
index 3130e71424..3fc8de3b9b 100644
--- a/iconvdata/ibm870.c
+++ b/iconvdata/ibm870.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM870.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm871.c b/iconvdata/ibm871.c
index 69e2a7c0ac..86efa67e21 100644
--- a/iconvdata/ibm871.c
+++ b/iconvdata/ibm871.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM871.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm874.c b/iconvdata/ibm874.c
index 7158d7f4c0..b25b23e6b8 100644
--- a/iconvdata/ibm874.c
+++ b/iconvdata/ibm874.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM874.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm875.c b/iconvdata/ibm875.c
index 55c691f52b..9afb979f68 100644
--- a/iconvdata/ibm875.c
+++ b/iconvdata/ibm875.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM875.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm880.c b/iconvdata/ibm880.c
index c9a5b59f2f..e58638e0ba 100644
--- a/iconvdata/ibm880.c
+++ b/iconvdata/ibm880.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM880.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm891.c b/iconvdata/ibm891.c
index 94d3e92add..5f71b57f43 100644
--- a/iconvdata/ibm891.c
+++ b/iconvdata/ibm891.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM891.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm901.c b/iconvdata/ibm901.c
index a04a3ba75d..981fef040c 100644
--- a/iconvdata/ibm901.c
+++ b/iconvdata/ibm901.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM901.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm901.h b/iconvdata/ibm901.h
index 2152ba3900..b9d43d7a13 100644
--- a/iconvdata/ibm901.h
+++ b/iconvdata/ibm901.h
@@ -1,5 +1,5 @@
/* Tables for conversion from and to IBM901.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm902.c b/iconvdata/ibm902.c
index e1abc94a64..8a146313b9 100644
--- a/iconvdata/ibm902.c
+++ b/iconvdata/ibm902.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM902.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm902.h b/iconvdata/ibm902.h
index c3ac6e7f98..59a244a726 100644
--- a/iconvdata/ibm902.h
+++ b/iconvdata/ibm902.h
@@ -1,5 +1,5 @@
/* Tables for conversion from and to IBM902.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm903.c b/iconvdata/ibm903.c
index 7fb9217e5b..16527bae69 100644
--- a/iconvdata/ibm903.c
+++ b/iconvdata/ibm903.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM903.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm9030.c b/iconvdata/ibm9030.c
index deb1d5520a..d55f111f2b 100644
--- a/iconvdata/ibm9030.c
+++ b/iconvdata/ibm9030.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM9030.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm9030.h b/iconvdata/ibm9030.h
index 2e1317141c..7b3944d1fb 100644
--- a/iconvdata/ibm9030.h
+++ b/iconvdata/ibm9030.h
@@ -1,5 +1,5 @@
/* Tables for conversion from and to IBM9030.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm904.c b/iconvdata/ibm904.c
index 3d8513ba68..6271c9b40e 100644
--- a/iconvdata/ibm904.c
+++ b/iconvdata/ibm904.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM904.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm905.c b/iconvdata/ibm905.c
index 2a548e9332..6ffba22d8c 100644
--- a/iconvdata/ibm905.c
+++ b/iconvdata/ibm905.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM905.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm9066.c b/iconvdata/ibm9066.c
index 915d5227cc..2979dd9615 100644
--- a/iconvdata/ibm9066.c
+++ b/iconvdata/ibm9066.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM9066.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm9066.h b/iconvdata/ibm9066.h
index 9b925f2608..6472063cef 100644
--- a/iconvdata/ibm9066.h
+++ b/iconvdata/ibm9066.h
@@ -1,5 +1,5 @@
/* Tables for conversion from and to IBM9066.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm918.c b/iconvdata/ibm918.c
index 81ae737a4e..4f795638c6 100644
--- a/iconvdata/ibm918.c
+++ b/iconvdata/ibm918.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM918.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm921.c b/iconvdata/ibm921.c
index 75688d6f39..3d86e1cf87 100644
--- a/iconvdata/ibm921.c
+++ b/iconvdata/ibm921.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM921.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm921.h b/iconvdata/ibm921.h
index 8a1939758d..6d458f1366 100644
--- a/iconvdata/ibm921.h
+++ b/iconvdata/ibm921.h
@@ -1,5 +1,5 @@
/* Tables for conversion from and to IBM921.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm922.c b/iconvdata/ibm922.c
index 0a546c3adc..6a26bcc0a9 100644
--- a/iconvdata/ibm922.c
+++ b/iconvdata/ibm922.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM922.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm922.h b/iconvdata/ibm922.h
index bc286447d3..a050f86aa3 100644
--- a/iconvdata/ibm922.h
+++ b/iconvdata/ibm922.h
@@ -1,5 +1,5 @@
/* Tables for conversion from and to IBM922.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm930.c b/iconvdata/ibm930.c
index 2d6b9e0762..6b6f89abb5 100644
--- a/iconvdata/ibm930.c
+++ b/iconvdata/ibm930.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM930.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@yamato.ibm.co.jp>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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 91a30c3f95..3501e7e9c5 100644
--- a/iconvdata/ibm930.h
+++ b/iconvdata/ibm930.h
@@ -1,5 +1,5 @@
/* Tables for conversion from and to IBM930.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@yamato.ibm.co.jp>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _IBM930_H
#define _IBM930_H 1
diff --git a/iconvdata/ibm932.c b/iconvdata/ibm932.c
index d7dc7a5458..6d878d2930 100644
--- a/iconvdata/ibm932.c
+++ b/iconvdata/ibm932.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM932.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stdint.h>
diff --git a/iconvdata/ibm932.h b/iconvdata/ibm932.h
index d46a607f1c..33b8db8e26 100644
--- a/iconvdata/ibm932.h
+++ b/iconvdata/ibm932.h
@@ -1,5 +1,5 @@
/* Tables for conversion from and to IBM932.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _IBM932_H
#define _IBM932_H 1
diff --git a/iconvdata/ibm933.c b/iconvdata/ibm933.c
index a426e8e008..08ffd30332 100644
--- a/iconvdata/ibm933.c
+++ b/iconvdata/ibm933.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM933.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@yamato.ibm.co.jp>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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 0d653a1ecb..594eaaeffe 100644
--- a/iconvdata/ibm933.h
+++ b/iconvdata/ibm933.h
@@ -1,5 +1,5 @@
/* Tables for conversion from and to IBM933.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@yamato.ibm.co.jp>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _IBM933_H
#define _IBM933_H 1
diff --git a/iconvdata/ibm935.c b/iconvdata/ibm935.c
index 856e7d7732..451b7b971b 100644
--- a/iconvdata/ibm935.c
+++ b/iconvdata/ibm935.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM935
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@yamato.ibm.co.jp>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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 0a37713f61..f30f5d3043 100644
--- a/iconvdata/ibm935.h
+++ b/iconvdata/ibm935.h
@@ -1,5 +1,5 @@
/* Tables for conversion from and to IBM935
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@yamato.ibm.co.jp>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _IBM935_H
#define _IBM935_H 1
diff --git a/iconvdata/ibm937.c b/iconvdata/ibm937.c
index 349bf2814e..bb0fabf075 100644
--- a/iconvdata/ibm937.c
+++ b/iconvdata/ibm937.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM937.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@yamato.ibm.co.jp>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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 6590e8b496..974ed52a91 100644
--- a/iconvdata/ibm937.h
+++ b/iconvdata/ibm937.h
@@ -1,5 +1,5 @@
/* Tables for conversion from and to IBM937.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _IBM937_H
#define _IBM937_H 1
diff --git a/iconvdata/ibm939.c b/iconvdata/ibm939.c
index 0e44e91875..e158ebe9d4 100644
--- a/iconvdata/ibm939.c
+++ b/iconvdata/ibm939.c
@@ -1,5 +1,5 @@
/* Conversion to and from IBM939.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@yamato.ibm.co.jp>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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 b32bb67abb..8a16be4206 100644
--- a/iconvdata/ibm939.h
+++ b/iconvdata/ibm939.h
@@ -1,5 +1,5 @@
/* Tables for conversion to and from IBM939.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@yamato.ibm.co.jp>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _IBM939_H
#define _IBM939_H 1
diff --git a/iconvdata/ibm943.c b/iconvdata/ibm943.c
index 0a5691f451..a84036b801 100644
--- a/iconvdata/ibm943.c
+++ b/iconvdata/ibm943.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM943.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stdint.h>
diff --git a/iconvdata/ibm943.h b/iconvdata/ibm943.h
index d1898e9ce7..afcd48f6d8 100644
--- a/iconvdata/ibm943.h
+++ b/iconvdata/ibm943.h
@@ -1,5 +1,5 @@
/* Tables for conversion from and to IBM943.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _IBM943_H
#define _IBM943_H 1
diff --git a/iconvdata/ibm9448.c b/iconvdata/ibm9448.c
index 09544aa3b0..14650d36b4 100644
--- a/iconvdata/ibm9448.c
+++ b/iconvdata/ibm9448.c
@@ -1,5 +1,5 @@
/* Conversion from and to IBM9448.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ibm9448.h b/iconvdata/ibm9448.h
index fff93e42ae..fe59ec955f 100644
--- a/iconvdata/ibm9448.h
+++ b/iconvdata/ibm9448.h
@@ -1,5 +1,5 @@
/* Tables for conversion from and to IBM9448.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@jp.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/iec_p27-1.c b/iconvdata/iec_p27-1.c
index fe1457c88f..01c4b5d5b2 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/inis-8.c b/iconvdata/inis-8.c
index 3d79e99bb7..01cea59feb 100644
--- a/iconvdata/inis-8.c
+++ b/iconvdata/inis-8.c
@@ -1,5 +1,5 @@
/* Conversion from and to INIS-8.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/inis-cyrillic.c b/iconvdata/inis-cyrillic.c
index cf4d5f44b3..6a2fd0687d 100644
--- a/iconvdata/inis-cyrillic.c
+++ b/iconvdata/inis-cyrillic.c
@@ -1,5 +1,5 @@
/* Conversion from and to INIS-CYRILLIC.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/inis.c b/iconvdata/inis.c
index ccf4633196..7fa449419a 100644
--- a/iconvdata/inis.c
+++ b/iconvdata/inis.c
@@ -1,5 +1,5 @@
/* Conversion from and to INIS.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/isiri-3342.c b/iconvdata/isiri-3342.c
index ee9b6d9b8f..95449d0c41 100644
--- a/iconvdata/isiri-3342.c
+++ b/iconvdata/isiri-3342.c
@@ -1,5 +1,5 @@
/* Conversion from and to ISIRI-3342.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/iso-2022-cn-ext.c b/iconvdata/iso-2022-cn-ext.c
index c21a7187b4..2d97f28c2b 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <gconv.h>
diff --git a/iconvdata/iso-2022-cn.c b/iconvdata/iso-2022-cn.c
index dce128ebfb..5bbc3246f2 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <gconv.h>
diff --git a/iconvdata/iso-2022-jp-3.c b/iconvdata/iso-2022-jp-3.c
index de259580c3..d9adbe57f7 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998,
and Bruno Haible <bruno@clisp.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <dlfcn.h>
diff --git a/iconvdata/iso-2022-jp.c b/iconvdata/iso-2022-jp.c
index 80602202ea..18d226e619 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <dlfcn.h>
diff --git a/iconvdata/iso-2022-kr.c b/iconvdata/iso-2022-kr.c
index b3b8a9b356..e470f9d426 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <gconv.h>
diff --git a/iconvdata/iso-ir-165.c b/iconvdata/iso-ir-165.c
index bfe8e71edb..52299f3095 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "iso-ir-165.h"
diff --git a/iconvdata/iso-ir-165.h b/iconvdata/iso-ir-165.h
index 1b76835501..cd83dd1f2b 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#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 53966b9062..3c9f61acc9 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/iso-ir-209.c b/iconvdata/iso-ir-209.c
index 1d460d011a..f4ad7c9b3a 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/iso646.c b/iconvdata/iso646.c
index 1d3ac6a5f9..b049beb376 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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 38c3c3bc10..9894888703 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stdint.h>
diff --git a/iconvdata/iso8859-10.c b/iconvdata/iso8859-10.c
index 81261ca794..9371d2f5e3 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Get the conversion table. */
#include <stdint.h>
diff --git a/iconvdata/iso8859-11.c b/iconvdata/iso8859-11.c
index 636728143b..0ea7ed3811 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Get the conversion table. */
#include <stdint.h>
diff --git a/iconvdata/iso8859-13.c b/iconvdata/iso8859-13.c
index ce646afbe0..4952e93dfc 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Get the conversion table. */
#include <stdint.h>
diff --git a/iconvdata/iso8859-14.c b/iconvdata/iso8859-14.c
index fd621a40d7..0aecb137d0 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Get the conversion table. */
#include <stdint.h>
diff --git a/iconvdata/iso8859-15.c b/iconvdata/iso8859-15.c
index 470c1ce2c3..619427718d 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Get the conversion table. */
#include <stdint.h>
diff --git a/iconvdata/iso8859-16.c b/iconvdata/iso8859-16.c
index 80daec85f5..0db4db11de 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/iso8859-2.c b/iconvdata/iso8859-2.c
index 6bf57217d7..3f63e42922 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Get the conversion table. */
#include <stdint.h>
diff --git a/iconvdata/iso8859-3.c b/iconvdata/iso8859-3.c
index 3d54560031..3cc8c5b5ea 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Get the conversion table. */
#include <stdint.h>
diff --git a/iconvdata/iso8859-4.c b/iconvdata/iso8859-4.c
index 7d5d22bc06..ef52d13997 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Get the conversion table. */
#include <stdint.h>
diff --git a/iconvdata/iso8859-5.c b/iconvdata/iso8859-5.c
index d7a95bf018..424a27e760 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Get the conversion table. */
#include <stdint.h>
diff --git a/iconvdata/iso8859-6.c b/iconvdata/iso8859-6.c
index 725415a85f..e27b8ee8e0 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Get the conversion table. */
#include <stdint.h>
diff --git a/iconvdata/iso8859-7.c b/iconvdata/iso8859-7.c
index 43be6f5fc3..ed983eeb1d 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Get the conversion table. */
#include <stdint.h>
diff --git a/iconvdata/iso8859-8.c b/iconvdata/iso8859-8.c
index f2e7b6f41f..529eee7d4f 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Get the conversion table. */
#include <stdint.h>
diff --git a/iconvdata/iso8859-9.c b/iconvdata/iso8859-9.c
index 8679b6ec13..592de51e8c 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Get the conversion table. */
#include <stdint.h>
diff --git a/iconvdata/iso8859-9e.c b/iconvdata/iso8859-9e.c
index fafa3d35f5..8856b0d1bc 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/iso_10367-box.c b/iconvdata/iso_10367-box.c
index d2c9d6615c..0bf079938e 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/iso_11548-1.c b/iconvdata/iso_11548-1.c
index 884f752046..ab83d34fc7 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997,
Samuel Thibault <samuel.thibault@ens-lyon.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stdint.h>
diff --git a/iconvdata/iso_2033.c b/iconvdata/iso_2033.c
index 27ae417982..85174699f5 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/iso_5427-ext.c b/iconvdata/iso_5427-ext.c
index 9f535b7c73..b558a5603c 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/iso_5427.c b/iconvdata/iso_5427.c
index 5b0d0d3c18..9d3d739dfa 100644
--- a/iconvdata/iso_5427.c
+++ b/iconvdata/iso_5427.c
@@ -1,5 +1,5 @@
/* Conversion from and to ISO_5427.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/iso_5428.c b/iconvdata/iso_5428.c
index fee534082c..c81a5a420c 100644
--- a/iconvdata/iso_5428.c
+++ b/iconvdata/iso_5428.c
@@ -1,5 +1,5 @@
/* Conversion from and to ISO_5428.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/iso_6937-2.c b/iconvdata/iso_6937-2.c
index 6594c8a282..f59ef99cc2 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stdint.h>
diff --git a/iconvdata/iso_6937.c b/iconvdata/iso_6937.c
index 96320ccc8e..856e0bbc5d 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stdint.h>
diff --git a/iconvdata/jis0201.c b/iconvdata/jis0201.c
index 104620dbbc..ae3c4ee789 100644
--- a/iconvdata/jis0201.c
+++ b/iconvdata/jis0201.c
@@ -1,5 +1,5 @@
/* Mapping tables for JIS0201 handling.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/jis0201.h b/iconvdata/jis0201.h
index c336cae144..1aad944a5d 100644
--- a/iconvdata/jis0201.h
+++ b/iconvdata/jis0201.h
@@ -1,5 +1,5 @@
/* Access functions for JISX0201 conversion.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _JIS0201_H
#define _JIS0201_H 1
diff --git a/iconvdata/jis0208.c b/iconvdata/jis0208.c
index 836a477907..b8b0ba4004 100644
--- a/iconvdata/jis0208.c
+++ b/iconvdata/jis0208.c
@@ -1,5 +1,5 @@
/* Mapping tables for JIS0208 handling.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/jis0208.h b/iconvdata/jis0208.h
index a71a88f34e..6507b34d1d 100644
--- a/iconvdata/jis0208.h
+++ b/iconvdata/jis0208.h
@@ -1,5 +1,5 @@
/* Access functions for JISX0208 conversion.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _JIS0208_H
#define _JIS0208_H 1
diff --git a/iconvdata/jis0212.c b/iconvdata/jis0212.c
index 16ec64d1dd..f1215f16d9 100644
--- a/iconvdata/jis0212.c
+++ b/iconvdata/jis0212.c
@@ -1,5 +1,5 @@
/* Mapping tables for JIS0212 handling.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/jis0212.h b/iconvdata/jis0212.h
index f3d1861a25..ae5a28930a 100644
--- a/iconvdata/jis0212.h
+++ b/iconvdata/jis0212.h
@@ -1,5 +1,5 @@
/* Access functions for JISX0212 conversion.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _JIS0212_H
#define _JIS0212_H 1
diff --git a/iconvdata/jisx0213.c b/iconvdata/jisx0213.c
index 13afef6db3..b150f69ef0 100644
--- a/iconvdata/jisx0213.c
+++ b/iconvdata/jisx0213.c
@@ -1,5 +1,5 @@
/* Mapping tables for JISX0213 character set.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Bruno Haible <bruno@clisp.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/jisx0213.h b/iconvdata/jisx0213.h
index 2962182245..aea9db0f75 100644
--- a/iconvdata/jisx0213.h
+++ b/iconvdata/jisx0213.h
@@ -1,5 +1,5 @@
/* Functions for JISX0213 conversion.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Bruno Haible <bruno@clisp.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _JISX0213_H
#define _JISX0213_H 1
diff --git a/iconvdata/johab.c b/iconvdata/johab.c
index 351003357f..559d3c3cd4 100644
--- a/iconvdata/johab.c
+++ b/iconvdata/johab.c
@@ -1,5 +1,5 @@
/* Mapping tables for JOHAB handling.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jungshik Shin <jshin@pantheon.yale.edu>
and Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stdint.h>
diff --git a/iconvdata/koi-8.c b/iconvdata/koi-8.c
index d09459cc8c..419c7e078d 100644
--- a/iconvdata/koi-8.c
+++ b/iconvdata/koi-8.c
@@ -1,5 +1,5 @@
/* Conversion from and to KOI-8.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Get the conversion table. */
#include <stdint.h>
diff --git a/iconvdata/koi8-r.c b/iconvdata/koi8-r.c
index 57b6e92bad..1eec9739c9 100644
--- a/iconvdata/koi8-r.c
+++ b/iconvdata/koi8-r.c
@@ -1,5 +1,5 @@
/* Conversion from and to KOI8-R.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/koi8-ru.c b/iconvdata/koi8-ru.c
index 2397d3afb7..bcfaef9c5d 100644
--- a/iconvdata/koi8-ru.c
+++ b/iconvdata/koi8-ru.c
@@ -1,5 +1,5 @@
/* Conversion from and to KOI8-RU.
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/koi8-t.c b/iconvdata/koi8-t.c
index 94b25950fd..ab1ac3b60f 100644
--- a/iconvdata/koi8-t.c
+++ b/iconvdata/koi8-t.c
@@ -1,5 +1,5 @@
/* Conversion from and to KOI8-T.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/koi8-u.c b/iconvdata/koi8-u.c
index dc93e940d0..a1da170c4d 100644
--- a/iconvdata/koi8-u.c
+++ b/iconvdata/koi8-u.c
@@ -1,5 +1,5 @@
/* Conversion from and to KOI8-U.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/ksc5601.c b/iconvdata/ksc5601.c
index 332e8fc62b..92ba5241c0 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jungshik Shin <jshin@pantheon.yale.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
#include "ksc5601.h"
diff --git a/iconvdata/ksc5601.h b/iconvdata/ksc5601.h
index 5588d3a14b..5582cc8deb 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _KSC5601_H
#define _KSC5601_H 1
diff --git a/iconvdata/latin-greek-1.c b/iconvdata/latin-greek-1.c
index 6b2665e5c1..4344379099 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Specify the conversion table. */
#define TABLES <latin-greek-1.h>
diff --git a/iconvdata/latin-greek.c b/iconvdata/latin-greek.c
index 7d4f7001c9..53dd607305 100644
--- a/iconvdata/latin-greek.c
+++ b/iconvdata/latin-greek.c
@@ -1,5 +1,5 @@
/* Conversion from and to LATIN-GREEK.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Specify the conversion table. */
#define TABLES <latin-greek.h>
diff --git a/iconvdata/mac-centraleurope.c b/iconvdata/mac-centraleurope.c
index 558194dc9a..be16663aec 100644
--- a/iconvdata/mac-centraleurope.c
+++ b/iconvdata/mac-centraleurope.c
@@ -1,5 +1,5 @@
/* Conversion from and to MAC-CENTRALEUROPE.
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/mac-is.c b/iconvdata/mac-is.c
index c46234d5ab..a62063dcac 100644
--- a/iconvdata/mac-is.c
+++ b/iconvdata/mac-is.c
@@ -1,5 +1,5 @@
/* Conversion from and to MAC-IS.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/mac-sami.c b/iconvdata/mac-sami.c
index 6853fed15c..b0a216d6a7 100644
--- a/iconvdata/mac-sami.c
+++ b/iconvdata/mac-sami.c
@@ -1,5 +1,5 @@
/* Conversion from and to MAC-SAMI.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/mac-uk.c b/iconvdata/mac-uk.c
index d06e7da170..1de6e31551 100644
--- a/iconvdata/mac-uk.c
+++ b/iconvdata/mac-uk.c
@@ -1,5 +1,5 @@
/* Conversion from and to MAC-UK.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/macintosh.c b/iconvdata/macintosh.c
index c8e9c20ad1..9237ead9b3 100644
--- a/iconvdata/macintosh.c
+++ b/iconvdata/macintosh.c
@@ -1,5 +1,5 @@
/* Conversion from and to MACINTOSH.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/mik.c b/iconvdata/mik.c
index 988d81e647..9c596580e6 100644
--- a/iconvdata/mik.c
+++ b/iconvdata/mik.c
@@ -1,5 +1,5 @@
/* Conversion from and to MIK.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Alexander Shopov <ash@contact.bg>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/nats-dano.c b/iconvdata/nats-dano.c
index 9d912aa96e..b71ed83445 100644
--- a/iconvdata/nats-dano.c
+++ b/iconvdata/nats-dano.c
@@ -1,5 +1,5 @@
/* Conversion from and to NATS-DANO.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/nats-sefi.c b/iconvdata/nats-sefi.c
index 226e87ec30..ed728ac6fe 100644
--- a/iconvdata/nats-sefi.c
+++ b/iconvdata/nats-sefi.c
@@ -1,5 +1,5 @@
/* Conversion from and to NATS-SEFI.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/pt154.c b/iconvdata/pt154.c
index b2777f87e7..fe131ef7db 100644
--- a/iconvdata/pt154.c
+++ b/iconvdata/pt154.c
@@ -1,5 +1,5 @@
/* Conversion from and to PT154.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/rk1048.c b/iconvdata/rk1048.c
index e8313d832a..388b2c60e7 100644
--- a/iconvdata/rk1048.c
+++ b/iconvdata/rk1048.c
@@ -1,5 +1,5 @@
/* Conversion from and to RK1048.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/run-iconv-test.sh b/iconvdata/run-iconv-test.sh
index a4d9300f3b..61b48a223b 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-2018 Free Software Foundation, Inc.
+# Copyright (C) 1998-2019 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
set -e
diff --git a/iconvdata/sami-ws2.c b/iconvdata/sami-ws2.c
index 2ddd0072cc..f9c2399526 100644
--- a/iconvdata/sami-ws2.c
+++ b/iconvdata/sami-ws2.c
@@ -1,5 +1,5 @@
/* Conversion from and to SAMI-WS2.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/shift_jisx0213.c b/iconvdata/shift_jisx0213.c
index 8876adc7d0..8093c0fd9e 100644
--- a/iconvdata/shift_jisx0213.c
+++ b/iconvdata/shift_jisx0213.c
@@ -1,5 +1,5 @@
/* Conversion from and to Shift_JISX0213.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Bruno Haible <bruno@clisp.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stdint.h>
diff --git a/iconvdata/sjis.c b/iconvdata/sjis.c
index 8b2b3b480c..4f172d680e 100644
--- a/iconvdata/sjis.c
+++ b/iconvdata/sjis.c
@@ -1,5 +1,5 @@
/* Mapping tables for SJIS handling.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stdint.h>
diff --git a/iconvdata/t.61.c b/iconvdata/t.61.c
index c764151d5b..a3ede29c81 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <gconv.h>
diff --git a/iconvdata/tcvn5712-1.c b/iconvdata/tcvn5712-1.c
index 25dc8e0d52..fb8de837cd 100644
--- a/iconvdata/tcvn5712-1.c
+++ b/iconvdata/tcvn5712-1.c
@@ -1,5 +1,5 @@
/* Conversion to and from TCVN5712-1.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stdint.h>
diff --git a/iconvdata/tis-620.c b/iconvdata/tis-620.c
index 6a8b3d606f..d6be9aa4b6 100644
--- a/iconvdata/tis-620.c
+++ b/iconvdata/tis-620.c
@@ -1,5 +1,5 @@
/* Conversion from and to TIS-620.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/iconvdata/tscii.c b/iconvdata/tscii.c
index 6f464e4cf1..a8e3317138 100644
--- a/iconvdata/tscii.c
+++ b/iconvdata/tscii.c
@@ -1,5 +1,5 @@
/* Conversion from and to TSCII.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Bruno Haible <bruno@clisp.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stdint.h>
diff --git a/iconvdata/tst-e2big.c b/iconvdata/tst-e2big.c
index 95251bad01..5a07d3f7d3 100644
--- a/iconvdata/tst-e2big.c
+++ b/iconvdata/tst-e2big.c
@@ -1,5 +1,5 @@
/* Test for a tricky E2BIG situation.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Bruno Haible <bruno@clisp.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <alloca.h>
#include <errno.h>
diff --git a/iconvdata/tst-loading.c b/iconvdata/tst-loading.c
index dda119a1ff..67f3d1be42 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <iconv.h>
#include <mcheck.h>
diff --git a/iconvdata/tst-table-charmap.sh b/iconvdata/tst-table-charmap.sh
index b842e312f1..dcc4ec91cf 100755
--- a/iconvdata/tst-table-charmap.sh
+++ b/iconvdata/tst-table-charmap.sh
@@ -1,5 +1,5 @@
#!/bin/sh
-# Copyright (C) 2000-2018 Free Software Foundation, Inc.
+# Copyright (C) 2000-2019 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# Contributed by Bruno Haible <haible@clisp.cons.org>, 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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
# 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 d936166e8e..72fd62eb2c 100644
--- a/iconvdata/tst-table-from.c
+++ b/iconvdata/tst-table-from.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Bruno Haible <haible@clisp.cons.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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 ceb8712f70..37140fb579 100644
--- a/iconvdata/tst-table-to.c
+++ b/iconvdata/tst-table-to.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Bruno Haible <haible@clisp.cons.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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 89551c1d1f..4bef94b701 100755
--- a/iconvdata/tst-table.sh
+++ b/iconvdata/tst-table.sh
@@ -1,5 +1,5 @@
#!/bin/sh
-# Copyright (C) 2000-2018 Free Software Foundation, Inc.
+# Copyright (C) 2000-2019 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# Contributed by Bruno Haible <haible@clisp.cons.org>, 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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
# 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 2ba74f80c6..b374861b0b 100755
--- a/iconvdata/tst-tables.sh
+++ b/iconvdata/tst-tables.sh
@@ -1,5 +1,5 @@
#!/bin/sh
-# Copyright (C) 2000-2018 Free Software Foundation, Inc.
+# Copyright (C) 2000-2019 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# Contributed by Bruno Haible <haible@clisp.cons.org>, 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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
# 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 10f54b1c07..ff7832c526 100644
--- a/iconvdata/uhc.c
+++ b/iconvdata/uhc.c
@@ -1,5 +1,5 @@
/* Mapping tables for UHC handling.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jungshik Shin <jshin@pantheon.yale.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stdint.h>
diff --git a/iconvdata/unicode.c b/iconvdata/unicode.c
index d0db423909..735016790b 100644
--- a/iconvdata/unicode.c
+++ b/iconvdata/unicode.c
@@ -1,5 +1,5 @@
/* Conversion module for Unicode
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <byteswap.h>
#include <dlfcn.h>
diff --git a/iconvdata/utf-16.c b/iconvdata/utf-16.c
index ed5f5b2f1f..aa8d25f98c 100644
--- a/iconvdata/utf-16.c
+++ b/iconvdata/utf-16.c
@@ -1,5 +1,5 @@
/* Conversion module for UTF-16.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <byteswap.h>
#include <dlfcn.h>
diff --git a/iconvdata/utf-32.c b/iconvdata/utf-32.c
index 7ed0e9bdec..14abc8f9ca 100644
--- a/iconvdata/utf-32.c
+++ b/iconvdata/utf-32.c
@@ -1,5 +1,5 @@
/* Conversion module for UTF-32.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <byteswap.h>
#include <dlfcn.h>
diff --git a/iconvdata/utf-7.c b/iconvdata/utf-7.c
index a9c6824c89..0911706764 100644
--- a/iconvdata/utf-7.c
+++ b/iconvdata/utf-7.c
@@ -1,5 +1,5 @@
/* Conversion module for UTF-7.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Bruno Haible <haible@clisp.cons.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 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 ebc6e15f15..cbdb6daea3 100644
--- a/iconvdata/viscii.c
+++ b/iconvdata/viscii.c
@@ -1,5 +1,5 @@
/* Conversion from and to VISCII.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/include/alloc_buffer.h b/include/alloc_buffer.h
index e69ed66c8e..f1efe2f9ff 100644
--- a/include/alloc_buffer.h
+++ b/include/alloc_buffer.h
@@ -1,5 +1,5 @@
/* Allocation from a fixed-size buffer.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Allocation buffers are used to carve out sub-allocations from a
larger allocation. Their primary application is in writing NSS
@@ -183,7 +183,7 @@ alloc_buffer_add_byte (struct alloc_buffer *buf, unsigned char b)
NULL is returned if there is not enough room, and the buffer is
marked as failed, or if the buffer has already failed.
(Zero-length allocations from an empty buffer which has not yet
- failed succeed.) */
+ failed succeed.) The buffer contents is not modified. */
static inline __attribute__ ((nonnull (1))) void *
alloc_buffer_alloc_bytes (struct alloc_buffer *buf, size_t length)
{
@@ -300,11 +300,32 @@ __alloc_buffer_next (struct alloc_buffer *buf, size_t align)
/* Like alloc_buffer_alloc, but do not advance the pointer beyond the
object (so a subseqent call to alloc_buffer_next or
alloc_buffer_alloc returns the same pointer). Note that the buffer
- is still aligned according to the requirements of TYPE. The effect
- of this function is similar to allocating a zero-length array from
- the buffer. */
+ is still aligned according to the requirements of TYPE, potentially
+ consuming buffer space. The effect of this function is similar to
+ allocating a zero-length array from the buffer.
+
+ It is possible to use the return pointer to write to the buffer and
+ consume the written bytes using alloc_buffer_alloc_bytes (which
+ does not change the buffer contents), but the calling code needs to
+ perform manual length checks using alloc_buffer_size. For example,
+ to read as many int32_t values that are available in the input file
+ and can fit into the remaining buffer space, you can use this:
+
+ int32_t array = alloc_buffer_next (buf, int32_t);
+ size_t ret = fread (array, sizeof (int32_t),
+ alloc_buffer_size (buf) / sizeof (int32_t), fp);
+ if (ferror (fp))
+ handle_error ();
+ alloc_buffer_alloc_array (buf, int32_t, ret);
+
+ The alloc_buffer_alloc_array call makes the actually-used part of
+ the buffer permanent. The remaining part of the buffer (not filled
+ with data from the file) can be used for something else.
+
+ This manual length checking can easily introduce errors, so this
+ coding style is not recommended. */
#define alloc_buffer_next(buf, type) \
- ((const type *) __alloc_buffer_next \
+ ((type *) __alloc_buffer_next \
(buf, __alloc_buffer_assert_align (__alignof__ (type))))
/* Internal function. Allocate an array. */
diff --git a/include/allocate_once.h b/include/allocate_once.h
index 26902dde7c..6dfd70d8b3 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 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _ALLOCATE_ONCE_H
#define _ALLOCATE_ONCE_H
diff --git a/include/ar.h b/include/ar.h
new file mode 100644
index 0000000000..400167a53c
--- /dev/null
+++ b/include/ar.h
@@ -0,0 +1 @@
+#include <misc/ar.h>
diff --git a/include/argp.h b/include/argp.h
index 6cf8782060..7077471d99 100644
--- a/include/argp.h
+++ b/include/argp.h
@@ -1,6 +1,17 @@
#ifndef _ARGP_H
#include <argp/argp.h>
+/* Prototypes for internal argp.h functions. */
+#include <stdarg.h>
+void
+__argp_error_internal (const struct argp_state *state, const char *fmt,
+ va_list ap, unsigned int mode_flags);
+
+void
+__argp_failure_internal (const struct argp_state *state, int status,
+ int errnum, const char *fmt, va_list ap,
+ unsigned int mode_flags);
+
#ifndef _ISOMAC
extern __typeof (__argp_error) __argp_error attribute_hidden;
extern __typeof (__argp_failure) __argp_failure attribute_hidden;
diff --git a/include/arpa/inet.h b/include/arpa/inet.h
index c3f28f2baa..19aec74275 100644
--- a/include/arpa/inet.h
+++ b/include/arpa/inet.h
@@ -1,10 +1,10 @@
#include <inet/arpa/inet.h>
#ifndef _ISOMAC
-extern int __inet_aton (const char *__cp, struct in_addr *__inp);
-libc_hidden_proto (__inet_aton)
+/* Variant of inet_aton which rejects trailing garbage. */
+extern int __inet_aton_exact (const char *__cp, struct in_addr *__inp);
+libc_hidden_proto (__inet_aton_exact)
-libc_hidden_proto (inet_aton)
libc_hidden_proto (inet_ntop)
libc_hidden_proto (inet_pton)
extern __typeof (inet_pton) __inet_pton;
diff --git a/include/array_length.h b/include/array_length.h
index 94bf2b2d4d..a3e8adbaf5 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _ARRAY_LENGTH_H
#define _ARRAY_LENGTH_H
@@ -22,12 +22,12 @@
/* array_length (VAR) is the number of elements in the array VAR. VAR
must evaluate to an array, not a pointer. */
#define array_length(var) \
- __extension__ ({ \
- _Static_assert (!__builtin_types_compatible_p \
- (__typeof (var), __typeof (&(var)[0])), \
- "argument must be an array"); \
- sizeof (var) / sizeof ((var)[0]); \
- })
+ (sizeof (var) / sizeof ((var)[0]) \
+ + 0 * sizeof (struct { \
+ _Static_assert (!__builtin_types_compatible_p \
+ (__typeof (var), __typeof (&(var)[0])), \
+ "argument must be an array"); \
+ }))
/* array_end (VAR) is a pointer one past the end of the array VAR.
VAR must evaluate to an array, not a pointer. */
diff --git a/include/atomic.h b/include/atomic.h
index 6af07dba58..f8647a6717 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _ATOMIC_H
#define _ATOMIC_H 1
diff --git a/include/bits/argp-ldbl.h b/include/bits/argp-ldbl.h
new file mode 100644
index 0000000000..7c1a343d1b
--- /dev/null
+++ b/include/bits/argp-ldbl.h
@@ -0,0 +1 @@
+#include <argp/bits/argp-ldbl.h>
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 <string/bits/endian.h>
diff --git a/include/bits/err-ldbl.h b/include/bits/err-ldbl.h
new file mode 100644
index 0000000000..aa04305eae
--- /dev/null
+++ b/include/bits/err-ldbl.h
@@ -0,0 +1 @@
+#include <misc/bits/err-ldbl.h>
diff --git a/include/bits/error-ldbl.h b/include/bits/error-ldbl.h
new file mode 100644
index 0000000000..84b2646867
--- /dev/null
+++ b/include/bits/error-ldbl.h
@@ -0,0 +1 @@
+#include <misc/bits/error-ldbl.h>
diff --git a/include/bits/monetary-ldbl.h b/include/bits/monetary-ldbl.h
new file mode 100644
index 0000000000..6b6713ffc1
--- /dev/null
+++ b/include/bits/monetary-ldbl.h
@@ -0,0 +1 @@
+#include <stdlib/bits/monetary-ldbl.h>
diff --git a/include/bits/mqueue2.h b/include/bits/mqueue2.h
new file mode 100644
index 0000000000..2d5c231181
--- /dev/null
+++ b/include/bits/mqueue2.h
@@ -0,0 +1 @@
+#include <rt/bits/mqueue2.h>
diff --git a/include/bits/printf-ldbl.h b/include/bits/printf-ldbl.h
new file mode 100644
index 0000000000..10d534b9b3
--- /dev/null
+++ b/include/bits/printf-ldbl.h
@@ -0,0 +1 @@
+#include <stdio-common/bits/printf-ldbl.h>
diff --git a/include/bits/statx-generic.h b/include/bits/statx-generic.h
new file mode 100644
index 0000000000..21674721b6
--- /dev/null
+++ b/include/bits/statx-generic.h
@@ -0,0 +1 @@
+#include <io/bits/statx-generic.h>
diff --git a/include/bits/stdio-ldbl.h b/include/bits/stdio-ldbl.h
new file mode 100644
index 0000000000..1f7d3ce1c6
--- /dev/null
+++ b/include/bits/stdio-ldbl.h
@@ -0,0 +1 @@
+#include <libio/bits/stdio-ldbl.h>
diff --git a/include/bits/stdio.h b/include/bits/stdio.h
new file mode 100644
index 0000000000..55c51eadeb
--- /dev/null
+++ b/include/bits/stdio.h
@@ -0,0 +1 @@
+#include <libio/bits/stdio.h>
diff --git a/include/bits/stdio2.h b/include/bits/stdio2.h
new file mode 100644
index 0000000000..6d7cf4306f
--- /dev/null
+++ b/include/bits/stdio2.h
@@ -0,0 +1 @@
+#include <libio/bits/stdio2.h>
diff --git a/include/bits/stdlib-ldbl.h b/include/bits/stdlib-ldbl.h
new file mode 100644
index 0000000000..62509494a3
--- /dev/null
+++ b/include/bits/stdlib-ldbl.h
@@ -0,0 +1 @@
+#include <stdlib/bits/stdlib-ldbl.h>
diff --git a/include/bits/syslog-ldbl.h b/include/bits/syslog-ldbl.h
new file mode 100644
index 0000000000..e86815632b
--- /dev/null
+++ b/include/bits/syslog-ldbl.h
@@ -0,0 +1 @@
+#include <misc/bits/syslog-ldbl.h>
diff --git a/include/bits/types/struct_statx.h b/include/bits/types/struct_statx.h
new file mode 100644
index 0000000000..82add6484f
--- /dev/null
+++ b/include/bits/types/struct_statx.h
@@ -0,0 +1 @@
+#include <io/bits/types/struct_statx.h>
diff --git a/include/bits/types/struct_statx_timestamp.h b/include/bits/types/struct_statx_timestamp.h
new file mode 100644
index 0000000000..9fbedd5749
--- /dev/null
+++ b/include/bits/types/struct_statx_timestamp.h
@@ -0,0 +1 @@
+#include <io/bits/types/struct_statx_timestamp.h>
diff --git a/include/bits/wchar-ldbl.h b/include/bits/wchar-ldbl.h
new file mode 100644
index 0000000000..29baa2f4d5
--- /dev/null
+++ b/include/bits/wchar-ldbl.h
@@ -0,0 +1 @@
+#include <wcsmbs/bits/wchar-ldbl.h>
diff --git a/include/bits/xopen_lim.h b/include/bits/xopen_lim.h
index d14b633a57..757a5c6064 100644
--- a/include/bits/xopen_lim.h
+++ b/include/bits/xopen_lim.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* Never include this file directly; use <limits.h> instead.
diff --git a/include/dirent.h b/include/dirent.h
index 400835eefe..2b1cdcf8bd 100644
--- a/include/dirent.h
+++ b/include/dirent.h
@@ -35,10 +35,13 @@ extern __ssize_t __getdirentries (int __fd, char *__restrict __buf,
size_t __nbytes,
__off_t *__restrict __basep)
__THROW __nonnull ((2, 4));
-extern __ssize_t __getdents (int __fd, char *__buf, size_t __nbytes)
- attribute_hidden;
-extern __ssize_t __getdents64 (int __fd, char *__buf, size_t __nbytes)
+
+/* 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);
+libc_hidden_proto (__getdents64)
+
extern int __alphasort64 (const struct dirent64 **a, const struct dirent64 **b)
__attribute_pure__;
extern int __versionsort64 (const struct dirent64 **a,
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/elf.h b/include/elf.h
index ab76aafb1e..14ed67ff67 100644
--- a/include/elf.h
+++ b/include/elf.h
@@ -23,7 +23,7 @@
# endif
# define DT_1_SUPPORTED_MASK \
(DF_1_NOW | DF_1_NODELETE | DF_1_INITFIRST | DF_1_NOOPEN \
- | DF_1_ORIGIN | DF_1_NODEFLIB)
+ | DF_1_ORIGIN | DF_1_NODEFLIB | DF_1_PIE)
#endif /* !_ISOMAC */
#endif /* elf.h */
diff --git a/include/err.h b/include/err.h
index 382855938e..7c05cd1dbb 100644
--- a/include/err.h
+++ b/include/err.h
@@ -1,6 +1,15 @@
#ifndef _ERR_H
#include <misc/err.h>
+/* Prototypes for internal err.h functions. */
+void
+__vwarnx_internal (const char *format, __gnuc_va_list ap,
+ unsigned int mode_flags);
+
+void
+__vwarn_internal (const char *format, __gnuc_va_list ap,
+ unsigned int mode_flags);
+
# ifndef _ISOMAC
libc_hidden_proto (warn)
diff --git a/include/error.h b/include/error.h
index 70f3192fa6..9e96262fc5 100644
--- a/include/error.h
+++ b/include/error.h
@@ -1 +1,15 @@
+#ifndef _ERROR_H
#include <misc/error.h>
+
+#include <stdarg.h>
+
+void
+__error_internal (int status, int errnum, const char *message,
+ va_list args, unsigned int mode_flags);
+
+void
+__error_at_line_internal (int status, int errnum, const char *file_name,
+ unsigned int line_number, const char *message,
+ va_list args, unsigned int mode_flags);
+
+#endif
diff --git a/include/features.h b/include/features.h
index 5bed0a4996..3900016428 100644
--- a/include/features.h
+++ b/include/features.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#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,7 +140,9 @@
#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
/* Suppress kernel-name space pollution unless user expressedly asks
for it. */
@@ -194,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
@@ -215,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
@@ -401,6 +417,27 @@
# define __GLIBC_USE_DEPRECATED_GETS 1
#endif
+/* GNU formerly extended the scanf functions with modified format
+ specifiers %as, %aS, and %a[...] that allocate a buffer for the
+ input using malloc. This extension conflicts with ISO C99, which
+ defines %a as a standalone format specifier that reads a floating-
+ point number; moreover, POSIX.1-2008 provides the same feature
+ using the modifier letter 'm' instead (%ms, %mS, %m[...]).
+
+ We now follow C99 unless GNU extensions are active and the compiler
+ is specifically in C89 or C++98 mode (strict or not). For
+ instance, with GCC, -std=gnu11 will have C99-compliant scanf with
+ or without -D_GNU_SOURCE, but -std=c89 -D_GNU_SOURCE will have the
+ old extension. */
+#if (defined __USE_GNU \
+ && (defined __cplusplus \
+ ? (__cplusplus < 201103L && !defined __GXX_EXPERIMENTAL_CXX0X__) \
+ : (!defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L)))
+# define __GLIBC_USE_DEPRECATED_SCANF 1
+#else
+# define __GLIBC_USE_DEPRECATED_SCANF 0
+#endif
+
/* Get definitions of __STDC_* predefined macros, if the compiler has
not preincluded this header automatically. */
#include <stdc-predef.h>
@@ -417,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__ 28
+#define __GLIBC_MINOR__ 30
#define __GLIBC_PREREQ(maj, min) \
((__GLIBC__ << 16) + __GLIBC_MINOR__ >= ((maj) << 16) + (min))
diff --git a/include/fenv.h b/include/fenv.h
index 76679e1e18..0b32f80964 100644
--- a/include/fenv.h
+++ b/include/fenv.h
@@ -57,6 +57,96 @@ struct rm_ctx
# define FE_HAVE_ROUNDING_MODES 0
# endif
+/* When no floating-point exceptions are defined in <fenv.h>, make
+ feraiseexcept ignore its argument so that unconditional
+ feraiseexcept calls do not cause errors for undefined exceptions.
+ Define it to expand to a void expression so that any calls testing
+ the result of feraiseexcept do produce errors. */
+# if FE_ALL_EXCEPT == 0
+# define feraiseexcept(excepts) ((void) 0)
+# define __feraiseexcept(excepts) ((void) 0)
+# endif
+
+/* Similarly, most <fenv.h> functions have trivial implementations in
+ the absence of support for floating-point exceptions and rounding
+ modes. */
+
+# if !FE_HAVE_ROUNDING_MODES
+# if FE_ALL_EXCEPT == 0
+extern inline int
+fegetenv (fenv_t *__e)
+{
+ return 0;
+}
+
+extern inline int
+__fegetenv (fenv_t *__e)
+{
+ return 0;
+}
+
+extern inline int
+feholdexcept (fenv_t *__e)
+{
+ return 0;
+}
+
+extern inline int
+__feholdexcept (fenv_t *__e)
+{
+ return 0;
+}
+
+extern inline int
+fesetenv (const fenv_t *__e)
+{
+ return 0;
+}
+
+extern inline int
+__fesetenv (const fenv_t *__e)
+{
+ return 0;
+}
+
+extern inline int
+feupdateenv (const fenv_t *__e)
+{
+ return 0;
+}
+
+extern inline int
+__feupdateenv (const fenv_t *__e)
+{
+ return 0;
+}
+# endif
+
+extern inline int
+fegetround (void)
+{
+ return FE_TONEAREST;
+}
+
+extern inline int
+__fegetround (void)
+{
+ return FE_TONEAREST;
+}
+
+extern inline int
+fesetround (int __d)
+{
+ return 0;
+}
+
+extern inline int
+__fesetround (int __d)
+{
+ return 0;
+}
+# endif
+
#endif
#endif
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 <bits/libc-header-start.h>
-#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/fstab.h b/include/fstab.h
new file mode 100644
index 0000000000..314aa3e3b9
--- /dev/null
+++ b/include/fstab.h
@@ -0,0 +1 @@
+#include <misc/fstab.h>
diff --git a/include/fts.h b/include/fts.h
new file mode 100644
index 0000000000..145dce6779
--- /dev/null
+++ b/include/fts.h
@@ -0,0 +1 @@
+#include <io/fts.h>
diff --git a/include/gnu-versions.h b/include/gnu-versions.h
index 92514d4a2c..ec2466df6a 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _GNU_VERSIONS_H
#define _GNU_VERSIONS_H 1
diff --git a/include/gnu/libc-version.h b/include/gnu/libc-version.h
index a066ffcf27..32f0e5ed1b 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#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 b437611ccc..a9acd4e1b7 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _IFUNC_IMPL_LIST_H
#define _IFUNC_IMPL_LIST_H 1
diff --git a/include/inline-hashtab.h b/include/inline-hashtab.h
index ad73650ecc..8eabf9ccf1 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Alexandre Oliva <aoliva@redhat.com>
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef INLINE_HASHTAB_H
# define INLINE_HASHTAB_H 1
diff --git a/include/intprops.h b/include/intprops.h
new file mode 100644
index 0000000000..bc7e950a0e
--- /dev/null
+++ b/include/intprops.h
@@ -0,0 +1,579 @@
+/* intprops.h -- properties of integer types
+
+ Copyright (C) 2001-2019 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
+ by the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ This program 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 this program. If not, see <https://www.gnu.org/licenses/>. */
+
+/* Written by Paul Eggert. */
+
+#ifndef _GL_INTPROPS_H
+#define _GL_INTPROPS_H
+
+#include <limits.h>
+
+/* Return a value with the common real type of E and V and the value of V.
+ Do not evaluate E. */
+#define _GL_INT_CONVERT(e, v) ((1 ? 0 : (e)) + (v))
+
+/* Act like _GL_INT_CONVERT (E, -V) but work around a bug in IRIX 6.5 cc; see
+ <https://lists.gnu.org/r/bug-gnulib/2011-05/msg00406.html>. */
+#define _GL_INT_NEGATE_CONVERT(e, v) ((1 ? 0 : (e)) - (v))
+
+/* The extra casts in the following macros work around compiler bugs,
+ e.g., in Cray C 5.0.3.0. */
+
+/* True if the arithmetic type T is an integer type. bool counts as
+ an integer. */
+#define TYPE_IS_INTEGER(t) ((t) 1.5 == 1)
+
+/* True if the real type T is signed. */
+#define TYPE_SIGNED(t) (! ((t) 0 < (t) -1))
+
+/* Return 1 if the real expression E, after promotion, has a
+ signed or floating type. Do not evaluate E. */
+#define EXPR_SIGNED(e) (_GL_INT_NEGATE_CONVERT (e, 1) < 0)
+
+
+/* Minimum and maximum values for integer types and expressions. */
+
+/* The width in bits of the integer type or expression T.
+ Do not evaluate T.
+ Padding bits are not supported; this is checked at compile-time below. */
+#define TYPE_WIDTH(t) (sizeof (t) * CHAR_BIT)
+
+/* The maximum and minimum values for the integer type T. */
+#define TYPE_MINIMUM(t) ((t) ~ TYPE_MAXIMUM (t))
+#define TYPE_MAXIMUM(t) \
+ ((t) (! TYPE_SIGNED (t) \
+ ? (t) -1 \
+ : ((((t) 1 << (TYPE_WIDTH (t) - 2)) - 1) * 2 + 1)))
+
+/* The maximum and minimum values for the type of the expression E,
+ after integer promotion. E is not evaluated. */
+#define _GL_INT_MINIMUM(e) \
+ (EXPR_SIGNED (e) \
+ ? ~ _GL_SIGNED_INT_MAXIMUM (e) \
+ : _GL_INT_CONVERT (e, 0))
+#define _GL_INT_MAXIMUM(e) \
+ (EXPR_SIGNED (e) \
+ ? _GL_SIGNED_INT_MAXIMUM (e) \
+ : _GL_INT_NEGATE_CONVERT (e, 1))
+#define _GL_SIGNED_INT_MAXIMUM(e) \
+ (((_GL_INT_CONVERT (e, 1) << (TYPE_WIDTH ((e) + 0) - 2)) - 1) * 2 + 1)
+
+/* Work around OpenVMS incompatibility with C99. */
+#if !defined LLONG_MAX && defined __INT64_MAX
+# define LLONG_MAX __INT64_MAX
+# define LLONG_MIN __INT64_MIN
+#endif
+
+/* This include file assumes that signed types are two's complement without
+ padding bits; the above macros have undefined behavior otherwise.
+ If this is a problem for you, please let us know how to fix it for your host.
+ This assumption is tested by the intprops-tests module. */
+
+/* Does the __typeof__ keyword work? This could be done by
+ 'configure', but for now it's easier to do it by hand. */
+#if (2 <= __GNUC__ \
+ || (1210 <= __IBMC__ && defined __IBM__TYPEOF__) \
+ || (0x5110 <= __SUNPRO_C && !__STDC__))
+# define _GL_HAVE___TYPEOF__ 1
+#else
+# define _GL_HAVE___TYPEOF__ 0
+#endif
+
+/* Return 1 if the integer type or expression T might be signed. Return 0
+ if it is definitely unsigned. This macro does not evaluate its argument,
+ and expands to an integer constant expression. */
+#if _GL_HAVE___TYPEOF__
+# define _GL_SIGNED_TYPE_OR_EXPR(t) TYPE_SIGNED (__typeof__ (t))
+#else
+# define _GL_SIGNED_TYPE_OR_EXPR(t) 1
+#endif
+
+/* Bound on length of the string representing an unsigned integer
+ value representable in B bits. log10 (2.0) < 146/485. The
+ smallest value of B where this bound is not tight is 2621. */
+#define INT_BITS_STRLEN_BOUND(b) (((b) * 146 + 484) / 485)
+
+/* Bound on length of the string representing an integer type or expression T.
+ 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 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)) \
+ + _GL_SIGNED_TYPE_OR_EXPR (t))
+
+/* Bound on buffer size needed to represent an integer type or expression T,
+ including the terminating null. */
+#define INT_BUFSIZE_BOUND(t) (INT_STRLEN_BOUND (t) + 1)
+
+
+/* Range overflow checks.
+
+ The INT_<op>_RANGE_OVERFLOW macros return 1 if the corresponding C
+ operators might not yield numerically correct answers due to
+ arithmetic overflow. They do not rely on undefined or
+ implementation-defined behavior. Their implementations are simple
+ and straightforward, but they are a bit harder to use than the
+ INT_<op>_OVERFLOW macros described below.
+
+ Example usage:
+
+ long int i = ...;
+ long int j = ...;
+ if (INT_MULTIPLY_RANGE_OVERFLOW (i, j, LONG_MIN, LONG_MAX))
+ printf ("multiply would overflow");
+ else
+ printf ("product is %ld", i * j);
+
+ Restrictions on *_RANGE_OVERFLOW macros:
+
+ These macros do not check for all possible numerical problems or
+ undefined or unspecified behavior: they do not check for division
+ by zero, for bad shift counts, or for shifting negative numbers.
+
+ These macros may evaluate their arguments zero or multiple times,
+ so the arguments should not have side effects. The arithmetic
+ arguments (including the MIN and MAX arguments) must be of the same
+ integer type after the usual arithmetic conversions, and the type
+ must have minimum value MIN and maximum MAX. Unsigned types should
+ use a zero MIN of the proper type.
+
+ These macros are tuned for constant MIN and MAX. For commutative
+ operations such as A + B, they are also tuned for constant B. */
+
+/* Return 1 if A + B would overflow in [MIN,MAX] arithmetic.
+ See above for restrictions. */
+#define INT_ADD_RANGE_OVERFLOW(a, b, min, max) \
+ ((b) < 0 \
+ ? (a) < (min) - (b) \
+ : (max) - (b) < (a))
+
+/* Return 1 if A - B would overflow in [MIN,MAX] arithmetic.
+ See above for restrictions. */
+#define INT_SUBTRACT_RANGE_OVERFLOW(a, b, min, max) \
+ ((b) < 0 \
+ ? (max) + (b) < (a) \
+ : (a) < (min) + (b))
+
+/* Return 1 if - A would overflow in [MIN,MAX] arithmetic.
+ See above for restrictions. */
+#define INT_NEGATE_RANGE_OVERFLOW(a, min, max) \
+ ((min) < 0 \
+ ? (a) < - (max) \
+ : 0 < (a))
+
+/* Return 1 if A * B would overflow in [MIN,MAX] arithmetic.
+ See above for restrictions. Avoid && and || as they tickle
+ bugs in Sun C 5.11 2010/08/13 and other compilers; see
+ <https://lists.gnu.org/r/bug-gnulib/2011-05/msg00401.html>. */
+#define INT_MULTIPLY_RANGE_OVERFLOW(a, b, min, max) \
+ ((b) < 0 \
+ ? ((a) < 0 \
+ ? (a) < (max) / (b) \
+ : (b) == -1 \
+ ? 0 \
+ : (min) / (b) < (a)) \
+ : (b) == 0 \
+ ? 0 \
+ : ((a) < 0 \
+ ? (a) < (min) / (b) \
+ : (max) / (b) < (a)))
+
+/* Return 1 if A / B would overflow in [MIN,MAX] arithmetic.
+ See above for restrictions. Do not check for division by zero. */
+#define INT_DIVIDE_RANGE_OVERFLOW(a, b, min, max) \
+ ((min) < 0 && (b) == -1 && (a) < - (max))
+
+/* Return 1 if A % B would overflow in [MIN,MAX] arithmetic.
+ See above for restrictions. Do not check for division by zero.
+ Mathematically, % should never overflow, but on x86-like hosts
+ INT_MIN % -1 traps, and the C standard permits this, so treat this
+ as an overflow too. */
+#define INT_REMAINDER_RANGE_OVERFLOW(a, b, min, max) \
+ INT_DIVIDE_RANGE_OVERFLOW (a, b, min, max)
+
+/* Return 1 if A << B would overflow in [MIN,MAX] arithmetic.
+ See above for restrictions. Here, MIN and MAX are for A only, and B need
+ not be of the same type as the other arguments. The C standard says that
+ behavior is undefined for shifts unless 0 <= B < wordwidth, and that when
+ A is negative then A << B has undefined behavior and A >> B has
+ implementation-defined behavior, but do not check these other
+ restrictions. */
+#define INT_LEFT_SHIFT_RANGE_OVERFLOW(a, b, min, max) \
+ ((a) < 0 \
+ ? (a) < (min) >> (b) \
+ : (max) >> (b) < (a))
+
+/* 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_ADD_OVERFLOW 1
+#elif defined __has_builtin
+# define _GL_HAS_BUILTIN_ADD_OVERFLOW __has_builtin (__builtin_add_overflow)
+#else
+# define _GL_HAS_BUILTIN_ADD_OVERFLOW 0
+#endif
+
+/* True if __builtin_mul_overflow (A, B, P) works when P is non-null. */
+#ifdef __clang__
+/* Work around Clang bug <https://bugs.llvm.org/show_bug.cgi?id=16404>. */
+# 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
+ *_RANGE_OVERFLOW macros, except that they do not assume that operands
+ (e.g., A and B) have the same type as MIN and MAX. Instead, they assume
+ that the result (e.g., A + B) has that type. */
+#if _GL_HAS_BUILTIN_OVERFLOW_P
+# define _GL_ADD_OVERFLOW(a, b, min, max) \
+ __builtin_add_overflow_p (a, b, (__typeof__ ((a) + (b))) 0)
+# define _GL_SUBTRACT_OVERFLOW(a, b, min, max) \
+ __builtin_sub_overflow_p (a, b, (__typeof__ ((a) - (b))) 0)
+# define _GL_MULTIPLY_OVERFLOW(a, b, min, max) \
+ __builtin_mul_overflow_p (a, b, (__typeof__ ((a) * (b))) 0)
+#else
+# define _GL_ADD_OVERFLOW(a, b, min, max) \
+ ((min) < 0 ? INT_ADD_RANGE_OVERFLOW (a, b, min, max) \
+ : (a) < 0 ? (b) <= (a) + (b) \
+ : (b) < 0 ? (a) <= (a) + (b) \
+ : (a) + (b) < (b))
+# define _GL_SUBTRACT_OVERFLOW(a, b, min, max) \
+ ((min) < 0 ? INT_SUBTRACT_RANGE_OVERFLOW (a, b, min, max) \
+ : (a) < 0 ? 1 \
+ : (b) < 0 ? (a) - (b) <= (a) \
+ : (a) < (b))
+# define _GL_MULTIPLY_OVERFLOW(a, b, min, max) \
+ (((min) == 0 && (((a) < 0 && 0 < (b)) || ((b) < 0 && 0 < (a)))) \
+ || INT_MULTIPLY_RANGE_OVERFLOW (a, b, min, max))
+#endif
+#define _GL_DIVIDE_OVERFLOW(a, b, min, max) \
+ ((min) < 0 ? (b) == _GL_INT_NEGATE_CONVERT (min, 1) && (a) < - (max) \
+ : (a) < 0 ? (b) <= (a) + (b) - 1 \
+ : (b) < 0 && (a) + (b) <= (a))
+#define _GL_REMAINDER_OVERFLOW(a, b, min, max) \
+ ((min) < 0 ? (b) == _GL_INT_NEGATE_CONVERT (min, 1) && (a) < - (max) \
+ : (a) < 0 ? (a) % (b) != ((max) - (b) + 1) % (b) \
+ : (b) < 0 && ! _GL_UNSIGNED_NEG_MULTIPLE (a, b, max))
+
+/* Return a nonzero value if A is a mathematical multiple of B, where
+ A is unsigned, B is negative, and MAX is the maximum value of A's
+ type. A's type must be the same as (A % B)'s type. Normally (A %
+ -B == 0) suffices, but things get tricky if -B would overflow. */
+#define _GL_UNSIGNED_NEG_MULTIPLE(a, b, max) \
+ (((b) < -_GL_SIGNED_INT_MAXIMUM (b) \
+ ? (_GL_SIGNED_INT_MAXIMUM (b) == (max) \
+ ? (a) \
+ : (a) % (_GL_INT_CONVERT (a, _GL_SIGNED_INT_MAXIMUM (b)) + 1)) \
+ : (a) % - (b)) \
+ == 0)
+
+/* Check for integer overflow, and report low order bits of answer.
+
+ The INT_<op>_OVERFLOW macros return 1 if the corresponding C operators
+ might not yield numerically correct answers due to arithmetic overflow.
+ The INT_<op>_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.
+
+ Example usage, assuming A and B are long int:
+
+ if (INT_MULTIPLY_OVERFLOW (a, b))
+ printf ("result would overflow\n");
+ else
+ printf ("result is %ld (no overflow)\n", a * b);
+
+ Example usage with WRAPV flavor:
+
+ long int result;
+ bool overflow = INT_MULTIPLY_WRAPV (a, b, &result);
+ printf ("result is %ld (%s)\n", result,
+ overflow ? "after overflow" : "no overflow");
+
+ Restrictions on these macros:
+
+ These macros do not check for all possible numerical problems or
+ undefined or unspecified behavior: they do not check for division
+ by zero, for bad shift counts, or for shifting negative numbers.
+
+ These macros may evaluate their arguments zero or multiple times, so the
+ arguments should not have side effects.
+
+ The WRAPV macros are not constant expressions. They support only
+ +, 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 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. */
+
+#define INT_ADD_OVERFLOW(a, b) \
+ _GL_BINARY_OP_OVERFLOW (a, b, _GL_ADD_OVERFLOW)
+#define INT_SUBTRACT_OVERFLOW(a, b) \
+ _GL_BINARY_OP_OVERFLOW (a, b, _GL_SUBTRACT_OVERFLOW)
+#if _GL_HAS_BUILTIN_OVERFLOW_P
+# define INT_NEGATE_OVERFLOW(a) INT_SUBTRACT_OVERFLOW (0, a)
+#else
+# define INT_NEGATE_OVERFLOW(a) \
+ INT_NEGATE_RANGE_OVERFLOW (a, _GL_INT_MINIMUM (a), _GL_INT_MAXIMUM (a))
+#endif
+#define INT_MULTIPLY_OVERFLOW(a, b) \
+ _GL_BINARY_OP_OVERFLOW (a, b, _GL_MULTIPLY_OVERFLOW)
+#define INT_DIVIDE_OVERFLOW(a, b) \
+ _GL_BINARY_OP_OVERFLOW (a, b, _GL_DIVIDE_OVERFLOW)
+#define INT_REMAINDER_OVERFLOW(a, b) \
+ _GL_BINARY_OP_OVERFLOW (a, b, _GL_REMAINDER_OVERFLOW)
+#define INT_LEFT_SHIFT_OVERFLOW(a, b) \
+ INT_LEFT_SHIFT_RANGE_OVERFLOW (a, b, \
+ _GL_INT_MINIMUM (a), _GL_INT_MAXIMUM (a))
+
+/* Return 1 if the expression A <op> B would overflow,
+ where OP_RESULT_OVERFLOW (A, B, MIN, MAX) does the actual test,
+ assuming MIN and MAX are the minimum and maximum for the result type.
+ Arguments should be free of side effects. */
+#define _GL_BINARY_OP_OVERFLOW(a, b, op_result_overflow) \
+ op_result_overflow (a, b, \
+ _GL_INT_MINIMUM (_GL_INT_CONVERT (a, b)), \
+ _GL_INT_MAXIMUM (_GL_INT_CONVERT (a, b)))
+
+/* 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. */
+#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 compilers that
+ lack relevant builtins. */
+#if __GNUC__
+# define _GL__GENERIC_BOGUS 1
+#else
+# define _GL__GENERIC_BOGUS 0
+#endif
+
+/* Store the low-order bits of A <op> B into *R, where OP specifies
+ 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), \
+ 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
+/* Store the low-order bits of A <op> 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_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_WRAPV_SMALLISH (a, b, r, op, overflow, \
+ short int, SHRT_MIN, SHRT_MAX, \
+ unsigned short int, USHRT_MAX) \
+ : sizeof *(r) == sizeof (int) \
+ ? (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) \
+ ? (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) \
+ (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
+
+/* Store the low-order bits of A <op> B into *R, where the operation
+ is given by OP. Use the unsigned type UT for calculation to avoid
+ 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) \
+ (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))
+
+/* Return the low-order bits of A <op> B, where the operation is given
+ by OP. Use the unsigned type UT for calculation to avoid undefined
+ behavior on signed integer overflow, and convert the result to type T.
+ UT is at least as wide as T and is no narrower than unsigned int,
+ T is two's complement, and there is no padding or trap representations.
+ Assume that converting UT to T yields the low-order bits, as is
+ done in all known two's-complement C compilers. E.g., see:
+ https://gcc.gnu.org/onlinedocs/gcc/Integers-implementation.html
+
+ According to the C standard, converting UT to T yields an
+ implementation-defined result or signal for values outside T's
+ range. However, code that works around this theoretical problem
+ runs afoul of a compiler bug in Oracle Studio 12.3 x86. See:
+ https://lists.gnu.org/r/bug-gnulib/2017-04/msg00049.html
+ As the compiler bug is real, don't try to work around the
+ theoretical problem. */
+
+#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/inttypes.h b/include/inttypes.h
index 33219e2a9f..3a583c6c07 100644
--- a/include/inttypes.h
+++ b/include/inttypes.h
@@ -1,5 +1,5 @@
#ifndef _INTTYPES_H
-#include_next <inttypes.h>
+#include <stdlib/inttypes.h>
#ifndef _ISOMAC
libc_hidden_proto (strtoumax)
#endif
diff --git a/include/lastlog.h b/include/lastlog.h
new file mode 100644
index 0000000000..5c0ea0320e
--- /dev/null
+++ b/include/lastlog.h
@@ -0,0 +1 @@
+#include <login/lastlog.h>
diff --git a/include/libc-diag.h b/include/libc-diag.h
index 7631762786..d42311417e 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LIBC_DIAG_H
#define _LIBC_DIAG_H 1
diff --git a/include/libc-internal.h b/include/libc-internal.h
index 2167990c52..05b6b66830 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LIBC_INTERNAL
# define _LIBC_INTERNAL 1
@@ -36,9 +36,6 @@ libc_hidden_proto (__profile_frequency)
extern void __cyg_profile_func_enter (void *this_fn, void *call_site);
extern void __cyg_profile_func_exit (void *this_fn, void *call_site);
-/* Get frequency of the system processor. */
-extern hp_timing_t __get_clockfreq (void);
-
/* Free all allocated resources. */
extern void __libc_freeres (void);
libc_hidden_proto (__libc_freeres)
diff --git a/include/libc-pointer-arith.h b/include/libc-pointer-arith.h
index 1ee3362451..b32df719d1 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LIBC_POINTER_ARITH_H
#define _LIBC_POINTER_ARITH_H 1
diff --git a/include/libc-symbols.h b/include/libc-symbols.h
index 8b9273c13a..ac6fe33d23 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LIBC_SYMBOLS_H
#define _LIBC_SYMBOLS_H 1
@@ -125,6 +125,11 @@
# define ASM_LINE_SEP ;
#endif
+#ifndef __attribute_copy__
+/* Provide an empty definition when cdefs.h is not included. */
+# define __attribute_copy__(arg)
+#endif
+
#ifndef __ASSEMBLER__
/* GCC understands weak symbols and aliases; use its interface where
possible, instead of embedded assembly language. */
@@ -132,7 +137,8 @@
/* Define ALIASNAME as a strong alias for NAME. */
# define strong_alias(name, aliasname) _strong_alias(name, aliasname)
# define _strong_alias(name, aliasname) \
- extern __typeof (name) aliasname __attribute__ ((alias (#name)));
+ extern __typeof (name) aliasname __attribute__ ((alias (#name))) \
+ __attribute_copy__ (name);
/* This comes between the return type and function name in
a function definition to make that definition weak. */
@@ -143,14 +149,16 @@
If weak aliases are not available, this defines a strong alias. */
# define weak_alias(name, aliasname) _weak_alias (name, aliasname)
# define _weak_alias(name, aliasname) \
- extern __typeof (name) aliasname __attribute__ ((weak, alias (#name)));
+ extern __typeof (name) aliasname __attribute__ ((weak, alias (#name))) \
+ __attribute_copy__ (name);
/* Same as WEAK_ALIAS, but mark symbol as hidden. */
# define weak_hidden_alias(name, aliasname) \
_weak_hidden_alias (name, aliasname)
# define _weak_hidden_alias(name, aliasname) \
extern __typeof (name) aliasname \
- __attribute__ ((weak, alias (#name), __visibility__ ("hidden")));
+ __attribute__ ((weak, alias (#name), __visibility__ ("hidden"))) \
+ __attribute_copy__ (name);
/* Declare SYMBOL as weak undefined symbol (resolved to 0 if not defined). */
# define weak_extern(symbol) _weak_extern (weak symbol)
@@ -530,13 +538,19 @@ for linking")
# define __hidden_asmname1(prefix, name) __hidden_asmname2(prefix, name)
# define __hidden_asmname2(prefix, name) #prefix name
# define __hidden_ver1(local, internal, name) \
- extern __typeof (name) __EI_##name __asm__(__hidden_asmname (#internal)); \
- extern __typeof (name) __EI_##name \
- __attribute__((alias (__hidden_asmname (#local))))
+ __hidden_ver2 (, local, internal, name)
+# define __hidden_ver2(thread, local, internal, name) \
+ extern thread __typeof (name) __EI_##name \
+ __asm__(__hidden_asmname (#internal)); \
+ extern thread __typeof (name) __EI_##name \
+ __attribute__((alias (__hidden_asmname (#local)))) \
+ __attribute_copy__ (name)
# define hidden_ver(local, name) __hidden_ver1(local, __GI_##name, name);
# define hidden_data_ver(local, name) hidden_ver(local, name)
# define hidden_def(name) __hidden_ver1(__GI_##name, name, name);
# define hidden_data_def(name) hidden_def(name)
+# define hidden_tls_def(name) \
+ __hidden_ver2 (__thread, __GI_##name, name, name);
# define hidden_weak(name) \
__hidden_ver1(__GI_##name, name, name) __attribute__((weak));
# define hidden_data_weak(name) hidden_weak(name)
@@ -545,7 +559,8 @@ for linking")
# define __hidden_nolink1(local, internal, name, version) \
__hidden_nolink2 (local, internal, name, version)
# define __hidden_nolink2(local, internal, name, version) \
- extern __typeof (name) internal __attribute__ ((alias (#local))); \
+ extern __typeof (name) internal __attribute__ ((alias (#local))) \
+ __attribute_copy__ (name); \
__hidden_nolink3 (local, internal, #name "@" #version)
# define __hidden_nolink3(local, internal, vername) \
__asm__ (".symver " #internal ", " vername);
@@ -563,6 +578,7 @@ for linking")
# define hidden_weak(name) hidden_def (name)
# define hidden_ver(local, name) strong_alias (local, __GI_##name)
# define hidden_data_def(name) strong_data_alias (name, __GI_##name)
+# define hidden_tls_def(name) hidden_data_def (name)
# define hidden_data_weak(name) hidden_data_def (name)
# define hidden_data_ver(local, name) strong_data_alias (local, __GI_##name)
# define HIDDEN_JUMPTARGET(name) __GI_##name
@@ -592,6 +608,7 @@ for linking")
# define hidden_ver(local, name)
# define hidden_data_weak(name)
# define hidden_data_def(name)
+# define hidden_tls_def(name)
# define hidden_data_ver(local, name)
# define hidden_nolink(name, lib, version)
#endif
@@ -609,6 +626,7 @@ for linking")
# endif
# define libc_hidden_ver(local, name) hidden_ver (local, name)
# define libc_hidden_data_def(name) hidden_data_def (name)
+# define libc_hidden_tls_def(name) hidden_tls_def (name)
# define libc_hidden_data_weak(name) hidden_data_weak (name)
# define libc_hidden_data_ver(local, name) hidden_data_ver (local, name)
#else
@@ -618,6 +636,7 @@ for linking")
# define libc_hidden_weak(name)
# define libc_hidden_ver(local, name)
# define libc_hidden_data_def(name)
+# define libc_hidden_tls_def(name)
# define libc_hidden_data_weak(name)
# define libc_hidden_data_ver(local, name)
#endif
@@ -629,6 +648,7 @@ for linking")
# define rtld_hidden_weak(name) hidden_weak (name)
# define rtld_hidden_ver(local, name) hidden_ver (local, name)
# define rtld_hidden_data_def(name) hidden_data_def (name)
+# define rtld_hidden_tls_def(name) hidden_tls_def (name)
# define rtld_hidden_data_weak(name) hidden_data_weak (name)
# define rtld_hidden_data_ver(local, name) hidden_data_ver (local, name)
#else
@@ -638,6 +658,7 @@ for linking")
# define rtld_hidden_weak(name)
# define rtld_hidden_ver(local, name)
# define rtld_hidden_data_def(name)
+# define rtld_hidden_tls_def(name)
# define rtld_hidden_data_weak(name)
# define rtld_hidden_data_ver(local, name)
#endif
@@ -649,6 +670,7 @@ for linking")
# define libm_hidden_weak(name) hidden_weak (name)
# define libm_hidden_ver(local, name) hidden_ver (local, name)
# define libm_hidden_data_def(name) hidden_data_def (name)
+# define libm_hidden_tls_def(name) hidden_tls_def (name)
# define libm_hidden_data_weak(name) hidden_data_weak (name)
# define libm_hidden_data_ver(local, name) hidden_data_ver (local, name)
#else
@@ -658,6 +680,7 @@ for linking")
# define libm_hidden_weak(name)
# define libm_hidden_ver(local, name)
# define libm_hidden_data_def(name)
+# define libm_hidden_tls_def(name)
# define libm_hidden_data_weak(name)
# define libm_hidden_data_ver(local, name)
#endif
@@ -669,6 +692,7 @@ for linking")
# define libmvec_hidden_weak(name) hidden_weak (name)
# define libmvec_hidden_ver(local, name) hidden_ver (local, name)
# define libmvec_hidden_data_def(name) hidden_data_def (name)
+# define libmvec_hidden_tls_def(name) hidden_tls_def (name)
# define libmvec_hidden_data_weak(name) hidden_data_weak (name)
# define libmvec_hidden_data_ver(local, name) hidden_data_ver (local, name)
#else
@@ -678,6 +702,7 @@ for linking")
# define libmvec_hidden_weak(name)
# define libmvec_hidden_ver(local, name)
# define libmvec_hidden_data_def(name)
+# define libmvec_hidden_tls_def(name)
# define libmvec_hidden_data_weak(name)
# define libmvec_hidden_data_ver(local, name)
#endif
@@ -690,6 +715,7 @@ for linking")
# define libresolv_hidden_weak(name) hidden_weak (name)
# define libresolv_hidden_ver(local, name) hidden_ver (local, name)
# define libresolv_hidden_data_def(name) hidden_data_def (name)
+# define libresolv_hidden_tls_def(name) hidden_tls_def (name)
# define libresolv_hidden_data_weak(name) hidden_data_weak (name)
# define libresolv_hidden_data_ver(local, name) hidden_data_ver (local, name)
#else
@@ -699,6 +725,7 @@ for linking")
# define libresolv_hidden_weak(name)
# define libresolv_hidden_ver(local, name)
# define libresolv_hidden_data_def(name)
+# define libresolv_hidden_tls_def(name)
# define libresolv_hidden_data_weak(name)
# define libresolv_hidden_data_ver(local, name)
#endif
@@ -711,6 +738,7 @@ for linking")
# define librt_hidden_weak(name) hidden_weak (name)
# define librt_hidden_ver(local, name) hidden_ver (local, name)
# define librt_hidden_data_def(name) hidden_data_def (name)
+# define librt_hidden_tls_def(name) hidden_tls_def (name)
# define librt_hidden_data_weak(name) hidden_data_weak (name)
# define librt_hidden_data_ver(local, name) hidden_data_ver (local, name)
#else
@@ -720,6 +748,7 @@ for linking")
# define librt_hidden_weak(name)
# define librt_hidden_ver(local, name)
# define librt_hidden_data_def(name)
+# define librt_hidden_tls_def(name)
# define librt_hidden_data_weak(name)
# define librt_hidden_data_ver(local, name)
#endif
@@ -732,6 +761,7 @@ for linking")
# define libdl_hidden_weak(name) hidden_weak (name)
# define libdl_hidden_ver(local, name) hidden_ver (local, name)
# define libdl_hidden_data_def(name) hidden_data_def (name)
+# define libdl_hidden_tls_def(name) hidden_tls_def (name)
# define libdl_hidden_data_weak(name) hidden_data_weak (name)
# define libdl_hidden_data_ver(local, name) hidden_data_ver (local, name)
#else
@@ -741,6 +771,7 @@ for linking")
# define libdl_hidden_weak(name)
# define libdl_hidden_ver(local, name)
# define libdl_hidden_data_def(name)
+# define libdl_hidden_tls_def(name)
# define libdl_hidden_data_weak(name)
# define libdl_hidden_data_ver(local, name)
#endif
@@ -753,6 +784,7 @@ for linking")
# define libnss_files_hidden_weak(name) hidden_weak (name)
# define libnss_files_hidden_ver(local, name) hidden_ver (local, name)
# define libnss_files_hidden_data_def(name) hidden_data_def (name)
+# define libnss_files_hidden_tls_def(name) hidden_tls_def (name)
# define libnss_files_hidden_data_weak(name) hidden_data_weak (name)
# define libnss_files_hidden_data_ver(local, name) hidden_data_ver(local, name)
#else
@@ -762,6 +794,7 @@ for linking")
# define libnss_files_hidden_weak(name)
# define libnss_files_hidden_ver(local, name)
# define libnss_files_hidden_data_def(name)
+# define libnss_files_hidden_tls_def(name)
# define libnss_files_hidden_data_weak(name)
# define libnss_files_hidden_data_ver(local, name)
#endif
@@ -780,6 +813,7 @@ for linking")
# define libnsl_hidden_weak(name) hidden_weak (name)
# define libnsl_hidden_ver(local, name) hidden_ver (local, name)
# define libnsl_hidden_data_def(name) hidden_data_def (name)
+# define libnsl_hidden_tls_def(name) hidden_tls_def (name)
# define libnsl_hidden_data_weak(name) hidden_data_weak (name)
# define libnsl_hidden_data_ver(local, name) hidden_data_ver (local, name)
#else
@@ -789,6 +823,7 @@ for linking")
# define libnsl_hidden_weak(name)
# define libnsl_hidden_ver(local, name)
# define libnsl_hidden_data_def(name)
+# define libnsl_hidden_tls_def(name)
# define libnsl_hidden_data_weak(name)
# define libnsl_hidden_data_ver(local, name)
#endif
@@ -801,6 +836,7 @@ for linking")
# define libnss_nisplus_hidden_weak(name) hidden_weak (name)
# define libnss_nisplus_hidden_ver(local, name) hidden_ver (local, name)
# define libnss_nisplus_hidden_data_def(name) hidden_data_def (name)
+# define libnss_nisplus_hidden_tls_def(name) hidden_tls_def (name)
# define libnss_nisplus_hidden_data_weak(name) hidden_data_weak (name)
# define libnss_nisplus_hidden_data_ver(local, name) hidden_data_ver (local, name)
#else
@@ -810,6 +846,7 @@ for linking")
# define libnss_nisplus_hidden_weak(name)
# define libnss_nisplus_hidden_ver(local, name)
# define libnss_nisplus_hidden_data_def(name)
+# define libnss_nisplus_hidden_tls_def(name)
# define libnss_nisplus_hidden_data_weak(name)
# define libnss_nisplus_hidden_data_ver(local, name)
#endif
@@ -830,6 +867,7 @@ for linking")
# define libutil_hidden_weak(name) hidden_weak (name)
# define libutil_hidden_ver(local, name) hidden_ver (local, name)
# define libutil_hidden_data_def(name) hidden_data_def (name)
+# define libutil_hidden_tls_def(name) hidden_tls_def (name)
# define libutil_hidden_data_weak(name) hidden_data_weak (name)
# define libutil_hidden_data_ver(local, name) hidden_data_ver (local, name)
#else
@@ -839,6 +877,7 @@ for linking")
# define libutil_hidden_weak(name)
# define libutil_hidden_ver(local, name)
# define libutil_hidden_data_def(name)
+# define libutil_hidden_tls_def(name)
# define libutil_hidden_data_weak(name)
# define libutil_hidden_data_ver(local, name)
#endif
diff --git a/include/limits.h b/include/limits.h
index 2e4fa683b5..9415453406 100644
--- a/include/limits.h
+++ b/include/limits.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* ISO C99 Standard: 7.10/5.2.4.2.1 Sizes of integer types <limits.h>
@@ -142,7 +142,7 @@
/* The integer width macros are not defined by GCC's <limits.h> 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 5924594548..2acc836380 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#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 <link_map.h>
/* Collected information about own RPATH directories. */
@@ -216,6 +227,10 @@ struct link_map
unsigned int boundndx;
uint32_t enterexit;
unsigned int flags;
+ /* CONCURRENCY NOTE: This is used to guard the concurrent initialization
+ of the relocation result across multiple threads. See the more
+ detailed notes in elf/dl-runtime.c. */
+ unsigned int init;
} *l_reloc_result;
/* Pointer to the version information if available. */
@@ -321,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
+ <ldsodefs.h>. */
+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 bb78c2a2d9..3890b8e181 100644
--- a/include/list.h
+++ b/include/list.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LIST_H
#define _LIST_H 1
diff --git a/include/list_t.h b/include/list_t.h
index 7ca12a4b01..b4e5396dcc 100644
--- a/include/list_t.h
+++ b/include/list_t.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LIST_T_H
#define _LIST_T_H 1
diff --git a/include/loop_unroll.h b/include/loop_unroll.h
new file mode 100644
index 0000000000..d95dce482a
--- /dev/null
+++ b/include/loop_unroll.h
@@ -0,0 +1,78 @@
+/* Macro for explicit loop unrolling.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _LOOP_UNROLL_H
+#define _LOOP_UNROLL_H
+
+/* Loop unroll macro to be used for explicit force loop unrolling with a
+ configurable number of iterations. The idea is to make the loop unrolling
+ independent of whether the compiler is able to unroll through specific
+ optimizations options (-funroll-loops or -funroll-all-loops).
+
+ For instance, to implement strcpy with SRC being the source input and
+ DEST the destination buffer, it is expected the macro to be used in this
+ way:
+
+ #define ITERATION(index) \
+ ({ char c = *str++; *dest++ = c; c != '\0' })
+
+ while (1)
+ UNROLL_REPEAT (4, ITERATION)
+
+ The loop will be manually unrolled 4 times. Another option is to do
+ the index update after the tests:
+
+ #define ITERATION(index) \
+ ({ char c = *(str + index); *(dest + index) = c; c != '\0' })
+ #define UPDATE(n) \
+ str += n; dst += n
+
+ while (1)
+ UNROLL_REPEAT_UPDATE (4, ITERATION, UPDATE)
+
+ The loop will be manually unrolled 4 times and the SRC and DEST pointers
+ will be updated only after the last iteration.
+
+ Currently, both macros unroll the loop 8 times at maximum. */
+
+#define UNROLL_REPEAT_1(X) if (!X(0)) break;
+#define UNROLL_REPEAT_2(X) UNROLL_REPEAT_1 (X) if (!X (1)) break;
+#define UNROLL_REPEAT_3(X) UNROLL_REPEAT_2 (X) if (!X (2)) break;
+#define UNROLL_REPEAT_4(X) UNROLL_REPEAT_3 (X) if (!X (3)) break;
+#define UNROLL_REPEAT_5(X) UNROLL_REPEAT_4 (X) if (!X (4)) break;
+#define UNROLL_REPEAT_6(X) UNROLL_REPEAT_5 (X) if (!X (5)) break;
+#define UNROLL_REPEAT_7(X) UNROLL_REPEAT_6 (X) if (!X (6)) break;
+#define UNROLL_REPEAT_8(X) UNROLL_REPEAT_7 (X) if (!X (7)) break;
+
+#define UNROLL_EXPAND(...) __VA_ARGS__
+
+#define UNROLL_REPEAT__(N, X) UNROLL_EXPAND(UNROLL_REPEAT_ ## N) (X)
+#define UNROLL_REPEAT_(N, X) UNROLL_REPEAT__ (N, X)
+
+#define UNROLL_REPEAT(N, X) \
+ (void) ({ \
+ UNROLL_REPEAT_ (UNROLL_EXPAND(N), X); \
+ })
+
+#define UNROLL_REPEAT_UPDATE(N, X, U) \
+ (void) ({ \
+ UNROLL_REPEAT_ (UNROLL_EXPAND(N), X); \
+ UPDATE (N); \
+ })
+
+#endif
diff --git a/include/malloc.h b/include/malloc.h
index d4cd9a5ffc..70d32c7c84 100644
--- a/include/malloc.h
+++ b/include/malloc.h
@@ -9,8 +9,6 @@
/* Nonzero if the malloc is already initialized. */
extern int __malloc_initialized attribute_hidden;
-extern __typeof (__malloc_check_init) __malloc_check_init attribute_hidden;
-
struct malloc_state;
typedef struct malloc_state *mstate;
diff --git a/include/math-narrow-eval.h b/include/math-narrow-eval.h
index 4361aa06c0..5b39825d73 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MATH_NARROW_EVAL_H
#define _MATH_NARROW_EVAL_H 1
diff --git a/include/math.h b/include/math.h
index e21d34b868..a274f2bdfd 100644
--- a/include/math.h
+++ b/include/math.h
@@ -54,18 +54,113 @@ libm_hidden_proto (__expf128)
libm_hidden_proto (__expm1f128)
# endif
+#include <stdint.h>
+#include <nan-high-order-bit.h>
+
+/* 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. */
+# if ! __GNUC_PREREQ (7, 0)
+# include <ieee754_float128.h>
+extern inline int
+__isinff128 (_Float128 x)
+{
+ int64_t hx, lx;
+ GET_FLOAT128_WORDS64 (hx, lx, x);
+ lx |= (hx & 0x7fffffffffffffffLL) ^ 0x7fff000000000000LL;
+ lx |= -lx;
+ return ~(lx >> 63) & (hx >> 62);
+}
+# endif
+
+extern inline _Float128
+fabsf128 (_Float128 x)
+{
+ return __builtin_fabsf128 (x);
+}
+# endif
+
# if !(defined __FINITE_MATH_ONLY__ && __FINITE_MATH_ONLY__ > 0)
# ifndef NO_MATH_REDIRECT
-/* Declare sqrt for use within GLIBC. Compilers typically inline sqrt as a
- single instruction. Use an asm to avoid use of PLTs if it doesn't. */
-float (sqrtf) (float) asm ("__ieee754_sqrtf");
-double (sqrt) (double) asm ("__ieee754_sqrt");
-# ifndef __NO_LONG_DOUBLE_MATH
-long double (sqrtl) (long double) asm ("__ieee754_sqrtl");
+/* Declare some functions for use within GLIBC. Compilers typically
+ inline those functions as a single instruction. Use an asm to
+ avoid use of PLTs if it doesn't. */
+# define MATH_REDIRECT(FUNC, PREFIX, ARGS) \
+ float (FUNC ## f) (ARGS (float)) asm (PREFIX #FUNC "f"); \
+ double (FUNC) (ARGS (double)) asm (PREFIX #FUNC ); \
+ MATH_REDIRECT_LDBL (FUNC, PREFIX, ARGS) \
+ MATH_REDIRECT_F128 (FUNC, PREFIX, ARGS)
+# ifdef __NO_LONG_DOUBLE_MATH
+# define MATH_REDIRECT_LDBL(FUNC, PREFIX, ARGS)
+# else
+# define MATH_REDIRECT_LDBL(FUNC, PREFIX, ARGS) \
+ long double (FUNC ## l) (ARGS (long double)) asm (PREFIX #FUNC "l");
# endif
-# if __HAVE_DISTINCT_FLOAT128 > 0
-_Float128 (sqrtf128) (_Float128) asm ("__ieee754_sqrtf128");
+# if __HAVE_DISTINCT_FLOAT128
+# define MATH_REDIRECT_F128(FUNC, PREFIX, ARGS) \
+ _Float128 (FUNC ## f128) (ARGS (_Float128)) asm (PREFIX #FUNC "f128");
+# else
+# define MATH_REDIRECT_F128(FUNC, PREFIX, ARGS)
# endif
+# define MATH_REDIRECT_UNARY_ARGS(TYPE) TYPE
+# define MATH_REDIRECT_BINARY_ARGS(TYPE) TYPE, TYPE
+MATH_REDIRECT (sqrt, "__ieee754_", MATH_REDIRECT_UNARY_ARGS)
+MATH_REDIRECT (ceil, "__", MATH_REDIRECT_UNARY_ARGS)
+MATH_REDIRECT (floor, "__", MATH_REDIRECT_UNARY_ARGS)
+MATH_REDIRECT (rint, "__", MATH_REDIRECT_UNARY_ARGS)
+MATH_REDIRECT (trunc, "__", MATH_REDIRECT_UNARY_ARGS)
+MATH_REDIRECT (round, "__", MATH_REDIRECT_UNARY_ARGS)
+MATH_REDIRECT (copysign, "__", MATH_REDIRECT_BINARY_ARGS)
# endif
# endif
diff --git a/include/monetary.h b/include/monetary.h
index c130ed56a3..240925e87d 100644
--- a/include/monetary.h
+++ b/include/monetary.h
@@ -2,7 +2,19 @@
#ifndef _ISOMAC
#include <stdarg.h>
-extern ssize_t __vstrfmon_l (char *s, size_t maxsize, locale_t loc,
- const char *format, va_list ap)
- attribute_hidden;
+extern ssize_t
+__vstrfmon_l_internal (char *s, size_t maxsize, locale_t loc,
+ const char *format, va_list ap,
+ unsigned int flags)
+ attribute_hidden;
+
+/* Flags for __vstrfmon_l_internal.
+
+ STRFMON_LDBL_IS_DBL is a one-bit mask for the flags parameter that
+ indicates whether long double values are to be handled as having the
+ 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/netinet/icmp6.h b/include/netinet/icmp6.h
new file mode 100644
index 0000000000..fee15fc531
--- /dev/null
+++ b/include/netinet/icmp6.h
@@ -0,0 +1 @@
+#include <inet/netinet/icmp6.h>
diff --git a/include/netinet/igmp.h b/include/netinet/igmp.h
new file mode 100644
index 0000000000..63a9355f79
--- /dev/null
+++ b/include/netinet/igmp.h
@@ -0,0 +1 @@
+#include <inet/netinet/igmp.h>
diff --git a/include/netinet/ip6.h b/include/netinet/ip6.h
new file mode 100644
index 0000000000..262c7c2405
--- /dev/null
+++ b/include/netinet/ip6.h
@@ -0,0 +1 @@
+#include <inet/netinet/ip6.h>
diff --git a/include/programs/xmalloc.h b/include/programs/xmalloc.h
index 736b5250ea..fe956d22d8 100644
--- a/include/programs/xmalloc.h
+++ b/include/programs/xmalloc.h
@@ -1,5 +1,5 @@
/* Memory related definitions for program modules.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifndef _XMALLOC_H
#define _XMALLOC_H 1
diff --git a/include/random-bits.h b/include/random-bits.h
new file mode 100644
index 0000000000..d6c3406a24
--- /dev/null
+++ b/include/random-bits.h
@@ -0,0 +1,41 @@
+/* Fast pseudo-random bits based on clock_gettime.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _RANDOM_BITS_H
+# define _RANDOM_BITS_H
+
+#include <time.h>
+#include <stdint.h>
+
+/* Provides fast pseudo-random bits through clock_gettime. It has unspecified
+ starting time, nano-second accuracy, its randomness is significantly better
+ than gettimeofday, and for mostly architectures it is implemented through
+ vDSO instead of a syscall. Since the source is a system clock, the upper
+ bits will have less entropy. */
+static inline uint32_t
+random_bits (void)
+{
+ struct timespec tv;
+ __clock_gettime (CLOCK_MONOTONIC, &tv);
+ /* Shuffle the lower bits to minimize the clock bias. */
+ uint32_t ret = tv.tv_nsec ^ tv.tv_sec;
+ ret ^= (ret << 24) | (ret >> 8);
+ return ret;
+}
+
+#endif
diff --git a/include/re_comp.h b/include/re_comp.h
new file mode 100644
index 0000000000..130df7d956
--- /dev/null
+++ b/include/re_comp.h
@@ -0,0 +1 @@
+#include <posix/re_comp.h>
diff --git a/include/regexp.h b/include/regexp.h
new file mode 100644
index 0000000000..3155371b17
--- /dev/null
+++ b/include/regexp.h
@@ -0,0 +1 @@
+#include <misc/regexp.h>
diff --git a/include/rounding-mode.h b/include/rounding-mode.h
index b5f3fbb539..7489cc20df 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _ROUNDING_MODE_H
#define _ROUNDING_MODE_H 1
diff --git a/include/rpcsvc/bootparam.h b/include/rpcsvc/bootparam.h
new file mode 100644
index 0000000000..87e4eef218
--- /dev/null
+++ b/include/rpcsvc/bootparam.h
@@ -0,0 +1 @@
+#include <sunrpc/rpcsvc/bootparam.h>
diff --git a/include/rpcsvc/yp_prot.h b/include/rpcsvc/yp_prot.h
new file mode 100644
index 0000000000..ab1ca10a28
--- /dev/null
+++ b/include/rpcsvc/yp_prot.h
@@ -0,0 +1 @@
+#include <nis/rpcsvc/yp_prot.h>
diff --git a/include/sched.h b/include/sched.h
index b698f78666..4abc440176 100644
--- a/include/sched.h
+++ b/include/sched.h
@@ -26,5 +26,9 @@ libc_hidden_proto (__clone)
extern int __clone2 (int (*__fn) (void *__arg), void *__child_stack_base,
size_t __child_stack_size, int __flags, void *__arg, ...);
libc_hidden_proto (__clone2)
+/* NB: Can't use "__typeof__ (getcpu)" since getcpu is Linux specific
+ and Hurd doesn't have it. */
+extern int __getcpu (unsigned int *, unsigned int *);
+libc_hidden_proto (__getcpu)
#endif
#endif
diff --git a/include/scratch_buffer.h b/include/scratch_buffer.h
index 32552ee940..0482773acc 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SCRATCH_BUFFER_H
#define _SCRATCH_BUFFER_H
diff --git a/include/search.h b/include/search.h
index e17693022d..72fbc94476 100644
--- a/include/search.h
+++ b/include/search.h
@@ -23,6 +23,8 @@ extern void *__tdelete (const void *__key, void **__rootp,
libc_hidden_proto (__tdelete)
extern void __twalk (const void *__root, __action_fn_t action);
libc_hidden_proto (__twalk)
+extern __typeof__ (twalk_r) __twalk_r;
+libc_hidden_proto (__twalk_r)
extern void __tdestroy (void *__root, __free_fn_t freefct);
libc_hidden_proto (__tdestroy)
#endif
diff --git a/include/set-hooks.h b/include/set-hooks.h
index b3bd8b4092..f1225b01f6 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#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 <stddef.h>
# include <jmp_buf-macros.h>
-# 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 feacf35f03..fafb5268a6 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-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#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 a6c7a8adc3..4a0b1849da 100644
--- a/include/spawn.h
+++ b/include/spawn.h
@@ -1 +1,39 @@
+#ifndef _SPAWN_H
#include <posix/spawn.h>
+
+# ifndef _ISOMAC
+__typeof (posix_spawn) __posix_spawn;
+libc_hidden_proto (__posix_spawn)
+
+__typeof (posix_spawn_file_actions_addclose)
+ __posix_spawn_file_actions_addclose attribute_hidden;
+
+__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;
+
+__typeof (posix_spawn_file_actions_init) __posix_spawn_file_actions_init
+ attribute_hidden;
+
+__typeof (posix_spawnattr_init) __posix_spawnattr_init
+ attribute_hidden;
+
+__typeof (posix_spawnattr_destroy) __posix_spawnattr_destroy
+ attribute_hidden;
+
+__typeof (posix_spawnattr_setflags) __posix_spawnattr_setflags
+ attribute_hidden;
+
+__typeof (posix_spawnattr_setsigdefault) __posix_spawnattr_setsigdefault
+ attribute_hidden;
+
+__typeof (posix_spawnattr_setsigmask) __posix_spawnattr_setsigmask
+ attribute_hidden;
+
+# endif /* !_ISOMAC */
+#endif /* spawn.h */
diff --git a/include/stackinfo.h b/include/stackinfo.h
index b87e47f942..a2b81982be 100644
--- a/include/stackinfo.h
+++ b/include/stackinfo.h
@@ -1,5 +1,5 @@
/* Details about the machine's stack: wrapper header.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _INCLUDE_STACKINFO_H
#define _INCLUDE_STACKINFO_H 1
diff --git a/include/stap-probe.h b/include/stap-probe.h
index 95c93fdbbf..89d4f2114a 100644
--- a/include/stap-probe.h
+++ b/include/stap-probe.h
@@ -1,5 +1,5 @@
/* Macros for defining Systemtap <sys/sdt.h> static probe points.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _STAP_PROBE_H
#define _STAP_PROBE_H 1
#ifdef USE_STAP_PROBE
+# include <stap-probe-machine.h>
# include <sys/sdt.h>
/* Our code uses one macro LIBC_PROBE (name, n, arg1, ..., argn).
@@ -59,11 +60,11 @@
/* Evaluate all the arguments and verify that N matches their number. */
# define LIBC_PROBE(name, n, ...) STAP_PROBE##n (__VA_ARGS__)
-# define STAP_PROBE0()
-# define STAP_PROBE1(a1)
-# define STAP_PROBE2(a1, a2)
-# define STAP_PROBE3(a1, a2, a3)
-# define STAP_PROBE4(a1, a2, a3, a4)
+# define STAP_PROBE0() do {} while (0)
+# define STAP_PROBE1(a1) do {} while (0)
+# define STAP_PROBE2(a1, a2) do {} while (0)
+# define STAP_PROBE3(a1, a2, a3) do {} while (0)
+# define STAP_PROBE4(a1, a2, a3, a4) do {} while (0)
# else
# define LIBC_PROBE(name, n, ...) /* Nothing. */
diff --git a/include/stdc-predef.h b/include/stdc-predef.h
index c2ab78a2d4..a34d2ea2ba 100644
--- a/include/stdc-predef.h
+++ b/include/stdc-predef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _STDC_PREDEF_H
#define _STDC_PREDEF_H 1
diff --git a/include/stdint.h b/include/stdint.h
new file mode 100644
index 0000000000..7f428741d7
--- /dev/null
+++ b/include/stdint.h
@@ -0,0 +1 @@
+#include <stdlib/stdint.h>
diff --git a/include/stdio.h b/include/stdio.h
index 9162d4e247..bea2066cd1 100644
--- a/include/stdio.h
+++ b/include/stdio.h
@@ -14,9 +14,6 @@ extern int __snprintf (char *__restrict __s, size_t __maxlen,
const char *__restrict __format, ...)
__attribute__ ((__format__ (__printf__, 3, 4)));
libc_hidden_proto (__snprintf)
-extern int __vsnprintf (char *__restrict __s, size_t __maxlen,
- const char *__restrict __format, __gnuc_va_list __arg)
- __attribute__ ((__format__ (__printf__, 3, 0)));
extern int __vfscanf (FILE *__restrict __s,
const char *__restrict __format,
__gnuc_va_list __arg)
@@ -67,9 +64,19 @@ extern int __isoc99_vscanf (const char *__restrict __format,
extern int __isoc99_vsscanf (const char *__restrict __s,
const char *__restrict __format,
__gnuc_va_list __arg) __THROW;
+libc_hidden_proto (__isoc99_sscanf)
libc_hidden_proto (__isoc99_vsscanf)
libc_hidden_proto (__isoc99_vfscanf)
+/* Internal uses of sscanf should call the C99-compliant version.
+ 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)
+# undef sscanf
+# define sscanf __isoc99_sscanf
+# endif
+
/* Prototypes for compatibility functions. */
extern FILE *__new_tmpfile (void);
extern FILE *__old_tmpfile (void);
@@ -95,19 +102,16 @@ enum __libc_message_action
{
do_message = 0, /* Print message. */
do_abort = 1 << 0, /* Abort. */
- do_backtrace = 1 << 1 /* Backtrace. */
};
-/* Print out MESSAGE on the error output and abort. */
+/* Print out MESSAGE (which should end with a newline) on the error output
+ and abort. */
extern void __libc_fatal (const char *__message)
__attribute__ ((__noreturn__));
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;
@@ -126,6 +130,9 @@ extern int __fxprintf (FILE *__fp, const char *__fmt, ...)
__attribute__ ((__format__ (__printf__, 2, 3))) attribute_hidden;
extern int __fxprintf_nocancel (FILE *__fp, const char *__fmt, ...)
__attribute__ ((__format__ (__printf__, 2, 3))) attribute_hidden;
+int __vfxprintf (FILE *__fp, const char *__fmt, __gnuc_va_list,
+ unsigned int)
+ attribute_hidden;
/* Read the next line from FP into BUFFER, of LENGTH bytes. LINE will
include the line terminator and a NUL terminator. On success,
@@ -171,7 +178,6 @@ libc_hidden_proto (__dprintf)
libc_hidden_proto (fprintf)
libc_hidden_proto (vfprintf)
libc_hidden_proto (sprintf)
-libc_hidden_proto (sscanf)
libc_hidden_proto (fwrite)
libc_hidden_proto (perror)
libc_hidden_proto (remove)
@@ -216,11 +222,6 @@ libc_hidden_proto (__open_memstream)
libc_hidden_proto (__libc_fatal)
rtld_hidden_proto (__libc_fatal)
libc_hidden_proto (__vsprintf_chk)
-libc_hidden_proto (__vsnprintf_chk)
-libc_hidden_proto (__vfprintf_chk)
-libc_hidden_proto (__vasprintf_chk)
-libc_hidden_proto (__vdprintf_chk)
-libc_hidden_proto (__obstack_vprintf_chk)
extern FILE * __fmemopen (void *buf, size_t len, const char *mode);
libc_hidden_proto (__fmemopen)
@@ -256,6 +257,8 @@ __putc_unlocked (int __c, FILE *__stream)
extern __typeof (renameat) __renameat;
libc_hidden_proto (__renameat)
+extern __typeof (renameat2) __renameat2;
+libc_hidden_proto (__renameat2)
# endif /* not _ISOMAC */
#endif /* stdio.h */
diff --git a/include/stropts.h b/include/stropts.h
deleted file mode 100644
index 27ab60ac7f..0000000000
--- a/include/stropts.h
+++ /dev/null
@@ -1 +0,0 @@
-#include <streams/stropts.h>
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 <time.h>
+# include <signal.h>
+
+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
new file mode 100644
index 0000000000..6aa313d35d
--- /dev/null
+++ b/include/sys/random.h
@@ -0,0 +1,11 @@
+#ifndef _SYS_RANDOM_H
+#include <stdlib/sys/random.h>
+
+# 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 <sysvipc/sys/sem.h>
+#ifndef _SYS_SEM_H
+# include <sysvipc/sys/sem.h>
+
+# ifndef _ISOMAC
+
+__typeof__ (semtimedop) __semtimedop attribute_hidden;
+
+# endif
+#endif
diff --git a/include/sys/sysctl.h b/include/sys/sysctl.h
index 2a15e91354..fa102aa226 100644
--- a/include/sys/sysctl.h
+++ b/include/sys/sysctl.h
@@ -1,13 +1,3 @@
#ifndef _SYS_SYSCTL_H
#include_next <sys/sysctl.h>
-
-# ifndef _ISOMAC
-
-/* Read or write system parameters (Linux, FreeBSD specific). */
-extern int __sysctl (int *__name, int __nlen, void *__oldval,
- size_t *__oldlenp, void *__newval, size_t __newlen);
-libc_hidden_proto (__sysctl)
-
-
-# endif /* !_ISOMAC */
#endif /* _SYS_SYSCTL_H */
diff --git a/include/sys/syslog.h b/include/sys/syslog.h
index 3be3189ed1..89d3479ebc 100644
--- a/include/sys/syslog.h
+++ b/include/sys/syslog.h
@@ -1,11 +1,16 @@
+#ifndef _LIBC_SYS_SYSLOG_H
+#define _LIBC_SYS_SYSLOG_H 1
#include <misc/sys/syslog.h>
-
#ifndef _ISOMAC
+
libc_hidden_proto (syslog)
-libc_hidden_proto (vsyslog)
-extern void __vsyslog_chk (int __pri, int __flag, const char *__fmt,
- __gnuc_va_list __ap)
- __attribute__ ((__format__ (__printf__, 3, 0)));
-libc_hidden_proto (__vsyslog_chk)
-#endif
+/* __vsyslog_internal uses the same mode_flags bits as
+ __v*printf_internal; see libio/libioP.h. */
+extern void __vsyslog_internal (int pri, const char *fmt, __gnuc_va_list ap,
+ unsigned int mode_flags)
+ attribute_hidden
+ __attribute__ ((__format__ (__printf__, 2, 0)));
+
+#endif /* _ISOMAC */
+#endif /* syslog.h */
diff --git a/include/sys/sysmacros.h b/include/sys/sysmacros.h
index 3c2b9c2689..b02e73f68d 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 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _ISOMAC
# define __SYSMACROS_NEED_IMPLEMENTATION
diff --git a/include/sys/time.h b/include/sys/time.h
index 98f6b6b2cc..a461295c6a 100644
--- a/include/sys/time.h
+++ b/include/sys/time.h
@@ -1,5 +1,5 @@
/* Time function internal interfaces.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_TIME_H
# include <time/sys/time.h>
# ifndef _ISOMAC
extern int __gettimeofday (struct timeval *__tv,
- struct timezone *__tz);
-libc_hidden_proto (__gettimeofday)
-libc_hidden_proto (gettimeofday)
-extern int __settimeofday (const struct timeval *__tv,
- const struct timezone *__tz)
+ void *__tz);
+extern int __settimezone (const struct timezone *__tz)
attribute_hidden;
extern int __adjtime (const struct timeval *__delta,
struct timeval *__olddelta);
diff --git a/include/sys/ttychars.h b/include/sys/ttychars.h
new file mode 100644
index 0000000000..86cb77dd77
--- /dev/null
+++ b/include/sys/ttychars.h
@@ -0,0 +1 @@
+#include <termios/sys/ttychars.h>
diff --git a/include/sys/vfs.h b/include/sys/vfs.h
new file mode 100644
index 0000000000..95f311dbd6
--- /dev/null
+++ b/include/sys/vfs.h
@@ -0,0 +1 @@
+#include <io/sys/vfs.h>
diff --git a/include/time.h b/include/time.h
index 23d2580528..e5e8246eac 100644
--- a/include/time.h
+++ b/include/time.h
@@ -2,13 +2,17 @@
#include <time/time.h>
#ifndef _ISOMAC
+# include <bits/types/struct_timeval.h>
# include <bits/types/locale_t.h>
+# include <stdbool.h>
+# include <time/mktime-internal.h>
+# include <endian.h>
+# include <time-clockid.h>
extern __typeof (strftime_l) __strftime_l;
libc_hidden_proto (__strftime_l)
extern __typeof (strptime_l) __strptime_l;
-libc_hidden_proto (time)
libc_hidden_proto (asctime)
libc_hidden_proto (mktime)
libc_hidden_proto (timelocal)
@@ -16,20 +20,22 @@ libc_hidden_proto (localtime)
libc_hidden_proto (strftime)
libc_hidden_proto (strptime)
-extern __typeof (clock_getres) __clock_getres;
extern __typeof (clock_gettime) __clock_gettime;
libc_hidden_proto (__clock_gettime)
extern __typeof (clock_settime) __clock_settime;
+libc_hidden_proto (__clock_settime)
+
extern __typeof (clock_nanosleep) __clock_nanosleep;
-extern __typeof (clock_getcpuclockid) __clock_getcpuclockid;
+libc_hidden_proto (__clock_nanosleep);
+
+#ifdef __linux__
+extern __typeof (clock_adjtime) __clock_adjtime;
+libc_hidden_proto (__clock_adjtime);
+#endif
/* Now define the internal interfaces. */
struct tm;
-/* time_t variant for representing time zone data, independent of
- time_t. */
-typedef __int64_t internal_time_t;
-
/* Defined in mktime.c. */
extern const unsigned short int __mon_yday[2][13] attribute_hidden;
@@ -43,35 +49,157 @@ extern int __use_tzfile attribute_hidden;
extern void __tzfile_read (const char *file, size_t extra,
char **extrap) attribute_hidden;
-extern void __tzfile_compute (internal_time_t timer, int use_localtime,
+extern void __tzfile_compute (__time64_t timer, int use_localtime,
long int *leap_correct, int *leap_hit,
struct tm *tp) attribute_hidden;
extern void __tzfile_default (const char *std, const char *dst,
- long int stdoff, long int dstoff)
+ int stdoff, int dstoff)
attribute_hidden;
extern void __tzset_parse_tz (const char *tz) attribute_hidden;
-extern void __tz_compute (time_t timer, struct tm *tm, int use_localtime)
+extern void __tz_compute (__time64_t timer, struct tm *tm, int use_localtime)
__THROW attribute_hidden;
-/* Subroutine of `mktime'. Return the `time_t' representation of TP and
- normalize TP, given that a `struct tm *' maps to a `time_t' as performed
- by FUNC. Keep track of next guess for time_t offset in *OFFSET. */
-extern time_t __mktime_internal (struct tm *__tp,
- struct tm *(*__func) (const time_t *,
- struct tm *),
- time_t *__offset) attribute_hidden;
+#if __TIMESIZE == 64
+# define __timespec64 timespec
+#else
+/* The glibc Y2038-proof struct __timespec64 structure for a time value.
+ To keep things Posix-ish, we keep the nanoseconds field a 32-bit
+ signed long, but since the Linux field is a 64-bit signed int, we
+ pad our tv_nsec with a 32-bit unnamed bit-field padding.
+
+ As a general rule the Linux kernel is ignoring upper 32 bits of
+ tv_nsec field. */
+struct __timespec64
+{
+ __time64_t tv_sec; /* Seconds */
+# if BYTE_ORDER == BIG_ENDIAN
+ __int32_t :32; /* Padding */
+ __int32_t tv_nsec; /* Nanoseconds */
+# else
+ __int32_t tv_nsec; /* Nanoseconds */
+ __int32_t :32; /* Padding */
+# endif
+};
+#endif
+
+#if __TIMESIZE == 64
+# define __itimerspec64 itimerspec
+#else
+/* The glibc's internal representation of the struct itimerspec. */
+struct __itimerspec64
+{
+ struct __timespec64 it_interval;
+ struct __timespec64 it_value;
+};
+#endif
+
+#if __TIMESIZE == 64
+# define __ctime64 ctime
+#else
+extern char *__ctime64 (const __time64_t *__timer) __THROW;
+libc_hidden_proto (__ctime64)
+#endif
+
+#if __TIMESIZE == 64
+# define __ctime64_r ctime_r
+#else
+extern char *__ctime64_r (const __time64_t *__restrict __timer,
+ char *__restrict __buf) __THROW;
+libc_hidden_proto (__ctime64_r)
+#endif
+
+#if __TIMESIZE == 64
+# define __localtime64 localtime
+#else
+extern struct tm *__localtime64 (const __time64_t *__timer);
+libc_hidden_proto (__localtime64)
+#endif
+
extern struct tm *__localtime_r (const time_t *__timer,
struct tm *__tp) attribute_hidden;
+#if __TIMESIZE != 64
+extern struct tm *__localtime64_r (const __time64_t *__timer,
+ struct tm *__tp);
+libc_hidden_proto (__localtime64_r)
+
+extern __time64_t __mktime64 (struct tm *__tp) __THROW;
+libc_hidden_proto (__mktime64)
+#endif
extern struct tm *__gmtime_r (const time_t *__restrict __timer,
struct tm *__restrict __tp);
libc_hidden_proto (__gmtime_r)
-/* Compute the `struct tm' representation of *T,
+#if __TIMESIZE == 64
+# define __gmtime64 gmtime
+#else
+extern struct tm *__gmtime64 (const __time64_t *__timer);
+libc_hidden_proto (__gmtime64)
+
+extern struct tm *__gmtime64_r (const __time64_t *__restrict __timer,
+ struct tm *__restrict __tp);
+libc_hidden_proto (__gmtime64_r)
+
+extern __time64_t __timegm64 (struct tm *__tp) __THROW;
+libc_hidden_proto (__timegm64)
+#endif
+
+#if __TIMESIZE == 64
+# define __clock_settime64 __clock_settime
+#else
+extern int __clock_settime64 (clockid_t clock_id,
+ const struct __timespec64 *tp);
+libc_hidden_proto (__clock_settime64)
+#endif
+
+#if __TIMESIZE == 64
+# define __clock_getres64 __clock_getres
+#else
+extern int __clock_getres64 (clockid_t clock_id,
+ struct __timespec64 *tp);
+libc_hidden_proto (__clock_getres64);
+#endif
+
+#if __TIMESIZE == 64
+# define __utimensat64 __utimensat
+#else
+extern int __utimensat64 (int fd, const char *file,
+ const struct __timespec64 tsp[2], int flags);
+libc_hidden_proto (__utimensat64);
+#endif
+
+extern int __utimensat64_helper (int fd, const char *file,
+ const struct __timespec64 tsp[2], int flags);
+libc_hidden_proto (__utimensat64_helper);
+
+#if __TIMESIZE == 64
+# define __futimens64 __futimens
+#else
+extern int __futimens64 (int fd, const struct __timespec64 tsp[2]);
+libc_hidden_proto (__futimens64);
+#endif
+
+#if __TIMESIZE == 64
+# define __timer_gettime64 __timer_gettime
+#else
+extern int __timer_gettime64 (timer_t timerid, struct __itimerspec64 *value);
+libc_hidden_proto (__timer_gettime64);
+#endif
+
+#if __TIMESIZE == 64
+# define __timer_settime64 __timer_settime
+#else
+extern int __timer_settime64 (timer_t timerid, int flags,
+ const struct __itimerspec64 *value,
+ struct __itimerspec64 *ovalue);
+libc_hidden_proto (__timer_settime64);
+#endif
+
+/* Compute the `struct tm' representation of T,
offset OFFSET seconds east of UTC,
and store year, yday, mon, mday, wday, hour, min, sec into *TP.
Return nonzero if successful. */
-extern int __offtime (const time_t *__timer,
+extern int __offtime (__time64_t __timer,
long int __offset,
struct tm *__tp) attribute_hidden;
@@ -80,7 +208,7 @@ extern char *__asctime_r (const struct tm *__tp, char *__buf)
extern void __tzset (void) attribute_hidden;
/* Prototype for the internal function to get information based on TZ. */
-extern struct tm *__tz_convert (const time_t *timer, int use_localtime,
+extern struct tm *__tz_convert (__time64_t timer, int use_localtime,
struct tm *tp) attribute_hidden;
extern int __nanosleep (const struct timespec *__requested_time,
@@ -99,12 +227,105 @@ extern char * __strptime_internal (const char *rp, const char *fmt,
struct tm *tm, void *statep,
locale_t locparam) attribute_hidden;
+#if __TIMESIZE == 64
+# define __difftime64 __difftime
+#else
+extern double __difftime64 (__time64_t time1, __time64_t time0);
+libc_hidden_proto (__difftime64)
+#endif
+
extern double __difftime (time_t time1, time_t time0);
+#if __TIMESIZE == 64
+# define __clock_nanosleep_time64 __clock_nanosleep
+# define __clock_gettime64 __clock_gettime
+#else
+extern int __clock_nanosleep_time64 (clockid_t clock_id,
+ int flags, const struct __timespec64 *req,
+ struct __timespec64 *rem);
+libc_hidden_proto (__clock_nanosleep_time64)
+extern int __clock_gettime64 (clockid_t clock_id, struct __timespec64 *tp);
+libc_hidden_proto (__clock_gettime64)
+#endif
/* Use in the clock_* functions. Size of the field representing the
actual clock ID. */
#define CLOCK_IDFIELD_SIZE 3
+/* Check whether T fits in time_t. */
+static inline bool
+in_time_t_range (__time64_t t)
+{
+ time_t s = t;
+ return s == t;
+}
+
+/* Convert a known valid struct timeval into a struct __timespec64. */
+static inline struct __timespec64
+valid_timeval_to_timespec64 (const struct timeval tv)
+{
+ struct __timespec64 ts64;
+
+ ts64.tv_sec = tv.tv_sec;
+ ts64.tv_nsec = tv.tv_usec * 1000;
+
+ return ts64;
+}
+
+/* Convert a known valid struct timespec into a struct __timespec64. */
+static inline struct __timespec64
+valid_timespec_to_timespec64 (const struct timespec ts)
+{
+ struct __timespec64 ts64;
+
+ ts64.tv_sec = ts.tv_sec;
+ ts64.tv_nsec = ts.tv_nsec;
+
+ return ts64;
+}
+
+/* Convert a valid and within range of struct timespec, struct
+ __timespec64 into a struct timespec. */
+static inline struct timespec
+valid_timespec64_to_timespec (const struct __timespec64 ts64)
+{
+ struct timespec ts;
+
+ ts.tv_sec = (time_t) ts64.tv_sec;
+ ts.tv_nsec = ts64.tv_nsec;
+
+ return ts;
+}
+
+/* Convert a valid and within range of struct timeval struct
+ __timespec64 into a struct timeval. */
+static inline struct timeval
+valid_timespec64_to_timeval (const struct __timespec64 ts64)
+{
+ struct timeval tv;
+
+ tv.tv_sec = (time_t) ts64.tv_sec;
+ tv.tv_usec = ts64.tv_nsec / 1000;
+
+ return tv;
+}
+
+/* Check if a value is in the valid nanoseconds range. Return true if
+ it is, false otherwise. */
+static inline bool
+valid_nanoseconds (__syscall_slong_t ns)
+{
+ return __glibc_likely (0 <= ns && ns < 1000000000);
+}
+
+/* Helper function to get time in seconds, similar to time. */
+static inline time_t
+time_now (void)
+{
+ struct timespec ts;
+ __clock_gettime (TIME_CLOCK_GETTIME_CLOCKID, &ts);
+ return ts.tv_sec;
+}
#endif
+
#endif
diff --git a/include/unistd.h b/include/unistd.h
index a171b00326..f48da2c7a3 100644
--- a/include/unistd.h
+++ b/include/unistd.h
@@ -6,6 +6,8 @@
libc_hidden_proto (_exit, __noreturn__)
rtld_hidden_proto (_exit, __noreturn__)
libc_hidden_proto (alarm)
+extern size_t __confstr (int name, char *buf, size_t len);
+libc_hidden_proto (__confstr)
libc_hidden_proto (confstr)
libc_hidden_proto (execl)
libc_hidden_proto (execle)
@@ -23,7 +25,8 @@ libc_hidden_proto (tcgetpgrp)
libc_hidden_proto (readlinkat)
/* Now define the internal interfaces. */
-extern int __access (const char *__name, int __type) attribute_hidden;
+extern int __access (const char *__name, int __type);
+libc_hidden_proto (__access)
extern int __euidaccess (const char *__name, int __type);
extern int __faccessat (int __fd, const char *__file, int __type, int __flag);
extern int __faccessat_noerrno (int __fd, const char *__file, int __type,
@@ -73,7 +76,8 @@ extern int __lchown (const char *__file, __uid_t __owner,
__gid_t __group);
extern int __chdir (const char *__path) attribute_hidden;
extern int __fchdir (int __fd) attribute_hidden;
-extern char *__getcwd (char *__buf, size_t __size) attribute_hidden;
+extern char *__getcwd (char *__buf, size_t __size);
+libc_hidden_proto (__getcwd)
extern int __rmdir (const char *__path) attribute_hidden;
extern int __execvpe (const char *file, char *const argv[],
char *const envp[]) attribute_hidden;
diff --git a/include/values.h b/include/values.h
index 433e87c348..91a61ab02d 100644
--- a/include/values.h
+++ b/include/values.h
@@ -1,5 +1,5 @@
/* Old compatibility names for <limits.h> and <float.h> constants.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This interface is obsolete. New programs should use
<limits.h> and/or <float.h> instead of <values.h>. */
diff --git a/include/verify.h b/include/verify.h
new file mode 100644
index 0000000000..c3db0e3c72
--- /dev/null
+++ b/include/verify.h
@@ -0,0 +1,4 @@
+/* Gnulib <verify.h>, simplified by assuming GCC 4.6 or later. */
+#define verify(R) _Static_assert (R, "verify (" #R ")")
+
+#define assume(R) ((R) ? (void) 0 : __builtin_unreachable ())
diff --git a/include/wait.h b/include/wait.h
new file mode 100644
index 0000000000..ed3d08601e
--- /dev/null
+++ b/include/wait.h
@@ -0,0 +1 @@
+#include <posix/wait.h>
diff --git a/include/wchar.h b/include/wchar.h
index 1db0ac8278..c792b38943 100644
--- a/include/wchar.h
+++ b/include/wchar.h
@@ -114,8 +114,6 @@ libc_hidden_proto (fputws_unlocked)
libc_hidden_proto (putwc_unlocked)
libc_hidden_proto (putwc)
-libc_hidden_proto (vswscanf)
-
libc_hidden_proto (mbrtowc)
libc_hidden_proto (wcrtomb)
extern int __wcscmp (const wchar_t *__s1, const wchar_t *__s2)
@@ -143,6 +141,8 @@ libc_hidden_proto (wmemchr)
libc_hidden_proto (__wmemchr)
libc_hidden_proto (wmemset)
libc_hidden_proto (__wmemset)
+extern int __wmemcmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n)
+ __THROW __attribute_pure__;
/* Now define the internal interfaces. */
extern int __wcscasecmp (const wchar_t *__s1, const wchar_t *__s2)
@@ -180,6 +180,10 @@ extern size_t __wcsnrtombs (char *__restrict __dst,
size_t __nwc, size_t __len,
__mbstate_t *__restrict __ps)
attribute_hidden;
+extern wchar_t *__wcscpy (wchar_t *__restrict __dest,
+ const wchar_t *__restrict __src)
+ attribute_hidden __nonnull ((1, 2));
+libc_hidden_proto (__wcscpy)
extern wchar_t *__wcsncpy (wchar_t *__restrict __dest,
const wchar_t *__restrict __src, size_t __n);
extern wchar_t *__wcpcpy (wchar_t *__dest, const wchar_t *__src);
@@ -203,20 +207,10 @@ extern int __vfwscanf (__FILE *__restrict __s,
__gnuc_va_list __arg)
attribute_hidden
/* __attribute__ ((__format__ (__wscanf__, 2, 0)) */;
-extern int __vswprintf (wchar_t *__restrict __s, size_t __n,
- const wchar_t *__restrict __format,
- __gnuc_va_list __arg)
- attribute_hidden
- /* __attribute__ ((__format__ (__wprintf__, 3, 0))) */;
extern int __fwprintf (__FILE *__restrict __s,
const wchar_t *__restrict __format, ...)
attribute_hidden
/* __attribute__ ((__format__ (__wprintf__, 2, 3))) */;
-extern int __vfwprintf (__FILE *__restrict __s,
- const wchar_t *__restrict __format,
- __gnuc_va_list __arg)
- attribute_hidden
- /* __attribute__ ((__format__ (__wprintf__, 2, 0))) */;
extern int __vfwprintf_chk (FILE *__restrict __s, int __flag,
const wchar_t *__restrict __format,
__gnuc_va_list __arg)
@@ -226,8 +220,6 @@ extern int __vswprintf_chk (wchar_t *__restrict __s, size_t __n,
const wchar_t *__restrict __format,
__gnuc_va_list __arg)
/* __attribute__ ((__format__ (__wprintf__, 5, 0))) */;
-libc_hidden_proto (__vfwprintf_chk)
-libc_hidden_proto (__vswprintf_chk)
extern int __isoc99_fwscanf (__FILE *__restrict __stream,
const wchar_t *__restrict __format, ...);
@@ -243,11 +235,7 @@ extern int __isoc99_vwscanf (const wchar_t *__restrict __format,
extern int __isoc99_vswscanf (const wchar_t *__restrict __s,
const wchar_t *__restrict __format,
__gnuc_va_list __arg) __THROW;
-extern int __vswscanf (const wchar_t *__restrict __s,
- const wchar_t *__restrict __format,
- __gnuc_va_list __arg) __THROW;
libc_hidden_proto (__isoc99_vswscanf)
-libc_hidden_proto (__vswscanf)
libc_hidden_proto (__isoc99_vfwscanf)
/* Internal functions. */
diff --git a/inet/Makefile b/inet/Makefile
index 09f5ba78fc..33912340a2 100644
--- a/inet/Makefile
+++ b/inet/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1991-2018 Free Software Foundation, Inc.
+# Copyright (C) 1991-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
# Sub-makefile for inet portion of the library.
@@ -52,7 +52,7 @@ aux := check_pf check_native ifreq
tests := htontest test_ifindex tst-ntoa tst-ether_aton tst-network \
tst-gethnm test-ifaddrs bug-if1 test-inet6_opt tst-ether_line \
tst-getni1 tst-getni2 tst-inet6_rth tst-checks tst-checks-posix \
- tst-sockaddr test-hnto-types
+ tst-sockaddr test-hnto-types tst-if_index-long
# tst-deadline must be linked statically so that we can access
# internal functions.
@@ -112,4 +112,8 @@ ifeq ($(build-static-nss),yes)
CFLAGS += -DSTATIC_NSS
endif
+# The test uses dlopen indirectly and would otherwise load system
+# objects.
+tst-idna_name_classify-ENV = \
+ LD_LIBRARY_PATH=$(objpfx):$(common-objpfx):$(common-objpfx)elf
$(objpfx)tst-idna_name_classify.out: $(gen-locales)
diff --git a/inet/aliases.h b/inet/aliases.h
index ec44284f60..e57217bd08 100644
--- a/inet/aliases.h
+++ b/inet/aliases.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _ALIASES_H
#define _ALIASES_H 1
diff --git a/inet/arpa/inet.h b/inet/arpa/inet.h
index 731f1c5d29..e48baf1e9d 100644
--- a/inet/arpa/inet.h
+++ b/inet/arpa/inet.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _ARPA_INET_H
#define _ARPA_INET_H 1
diff --git a/inet/bug-if1.c b/inet/bug-if1.c
index 5a98e99cef..49cdfaa5f9 100644
--- a/inet/bug-if1.c
+++ b/inet/bug-if1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <limits.h>
diff --git a/inet/check_native.c b/inet/check_native.c
index 372f25882a..665ac9c290 100644
--- a/inet/check_native.c
+++ b/inet/check_native.c
@@ -1,5 +1,5 @@
/* Determine whether interfaces use native transport. Generic version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ifaddrs.h>
#include <stdint.h>
diff --git a/inet/check_pf.c b/inet/check_pf.c
index 4dc3125296..0cc033da4a 100644
--- a/inet/check_pf.c
+++ b/inet/check_pf.c
@@ -1,5 +1,5 @@
/* Determine protocol families for which interfaces exist. Generic version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ifaddrs.h>
#include <netdb.h>
diff --git a/inet/deadline.c b/inet/deadline.c
index c54005c3c1..541c16bd9a 100644
--- a/inet/deadline.c
+++ b/inet/deadline.c
@@ -1,5 +1,5 @@
/* Computing deadlines for timeouts.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <net-internal.h>
@@ -29,13 +29,7 @@ __deadline_current_time (void)
{
struct deadline_current_time result;
if (__clock_gettime (CLOCK_MONOTONIC, &result.current) != 0)
- {
- struct timeval current_tv;
- if (__gettimeofday (&current_tv, NULL) == 0)
- __libc_fatal ("Fatal error: gettimeofday system call failed\n");
- result.current.tv_sec = current_tv.tv_sec;
- result.current.tv_nsec = current_tv.tv_usec * 1000;
- }
+ __clock_gettime (CLOCK_REALTIME, &result.current);
assert (result.current.tv_sec >= 0);
return result;
}
diff --git a/inet/ether_aton.c b/inet/ether_aton.c
index 5c8df40c8d..e88c151aaa 100644
--- a/inet/ether_aton.c
+++ b/inet/ether_aton.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <netinet/ether.h>
diff --git a/inet/ether_aton_r.c b/inet/ether_aton_r.c
index 185d606d68..b1da9db62d 100644
--- a/inet/ether_aton_r.c
+++ b/inet/ether_aton_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <stdlib.h>
diff --git a/inet/ether_hton.c b/inet/ether_hton.c
index 37de9b8c4e..edabe73ab5 100644
--- a/inet/ether_hton.c
+++ b/inet/ether_hton.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <netinet/ether.h>
diff --git a/inet/ether_line.c b/inet/ether_line.c
index 4304f5a465..2b6ff934fd 100644
--- a/inet/ether_line.c
+++ b/inet/ether_line.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <stdlib.h>
diff --git a/inet/ether_ntoa.c b/inet/ether_ntoa.c
index 6dd5c3b5cb..e02dd21c4f 100644
--- a/inet/ether_ntoa.c
+++ b/inet/ether_ntoa.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <netinet/ether.h>
#include <netinet/if_ether.h>
diff --git a/inet/ether_ntoa_r.c b/inet/ether_ntoa_r.c
index 22fd7480bf..316e512737 100644
--- a/inet/ether_ntoa_r.c
+++ b/inet/ether_ntoa_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <netinet/ether.h>
diff --git a/inet/ether_ntoh.c b/inet/ether_ntoh.c
index 56366b961a..42db2fc060 100644
--- a/inet/ether_ntoh.c
+++ b/inet/ether_ntoh.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <netinet/ether.h>
diff --git a/inet/getaliasent.c b/inet/getaliasent.c
index 46dff533e5..4671e2f403 100644
--- a/inet/getaliasent.c
+++ b/inet/getaliasent.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <aliases.h>
diff --git a/inet/getaliasent_r.c b/inet/getaliasent_r.c
index df027973bf..4d27b4983c 100644
--- a/inet/getaliasent_r.c
+++ b/inet/getaliasent_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <aliases.h>
diff --git a/inet/getaliasname.c b/inet/getaliasname.c
index 60f29a8b2f..34662969be 100644
--- a/inet/getaliasname.c
+++ b/inet/getaliasname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <aliases.h>
diff --git a/inet/getaliasname_r.c b/inet/getaliasname_r.c
index 926a4433bf..ee5f4cd773 100644
--- a/inet/getaliasname_r.c
+++ b/inet/getaliasname_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <aliases.h>
diff --git a/inet/gethstbyad.c b/inet/gethstbyad.c
index d8557d9da9..593e943822 100644
--- a/inet/gethstbyad.c
+++ b/inet/gethstbyad.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <netdb.h>
diff --git a/inet/gethstbyad_r.c b/inet/gethstbyad_r.c
index e12f573678..d4c0311cc4 100644
--- a/inet/gethstbyad_r.c
+++ b/inet/gethstbyad_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <netdb.h>
#include <string.h>
diff --git a/inet/gethstbynm.c b/inet/gethstbynm.c
index a7a64d306d..362cd6e7bf 100644
--- a/inet/gethstbynm.c
+++ b/inet/gethstbynm.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <errno.h>
diff --git a/inet/gethstbynm2.c b/inet/gethstbynm2.c
index 7a452d2af8..8af0f00c85 100644
--- a/inet/gethstbynm2.c
+++ b/inet/gethstbynm2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <errno.h>
diff --git a/inet/gethstbynm2_r.c b/inet/gethstbynm2_r.c
index 9638e167a5..fc7a1795f4 100644
--- a/inet/gethstbynm2_r.c
+++ b/inet/gethstbynm2_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <errno.h>
diff --git a/inet/gethstbynm_r.c b/inet/gethstbynm_r.c
index b12fb3307f..da726c063a 100644
--- a/inet/gethstbynm_r.c
+++ b/inet/gethstbynm_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <errno.h>
diff --git a/inet/gethstent.c b/inet/gethstent.c
index 627f19dac4..746178759c 100644
--- a/inet/gethstent.c
+++ b/inet/gethstent.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <netdb.h>
diff --git a/inet/gethstent_r.c b/inet/gethstent_r.c
index 12dfab2dad..5bb4117cdf 100644
--- a/inet/gethstent_r.c
+++ b/inet/gethstent_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <netdb.h>
diff --git a/inet/getipv4sourcefilter.c b/inet/getipv4sourcefilter.c
index 2e46661cde..9067417fdf 100644
--- a/inet/getipv4sourcefilter.c
+++ b/inet/getipv4sourcefilter.c
@@ -1,5 +1,5 @@
/* Get source filter. Stub version.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdint.h>
diff --git a/inet/getnameinfo.c b/inet/getnameinfo.c
index 5d4978e383..a3ca162a9a 100644
--- a/inet/getnameinfo.c
+++ b/inet/getnameinfo.c
@@ -1,5 +1,5 @@
/* Convert socket address to string using Name Service Switch modules.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* The Inner Net License, Version 2.00
diff --git a/inet/getnetbyad.c b/inet/getnetbyad.c
index 981361b199..699387ce5b 100644
--- a/inet/getnetbyad.c
+++ b/inet/getnetbyad.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <netdb.h>
#include <stdint.h>
diff --git a/inet/getnetbyad_r.c b/inet/getnetbyad_r.c
index 53f1cb90c2..52ee4c167c 100644
--- a/inet/getnetbyad_r.c
+++ b/inet/getnetbyad_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <netdb.h>
#include <stdint.h>
diff --git a/inet/getnetbynm.c b/inet/getnetbynm.c
index 4a2ac86e33..d0b1ea034a 100644
--- a/inet/getnetbynm.c
+++ b/inet/getnetbynm.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <netdb.h>
diff --git a/inet/getnetbynm_r.c b/inet/getnetbynm_r.c
index 99d07e1dd9..f27cb6220b 100644
--- a/inet/getnetbynm_r.c
+++ b/inet/getnetbynm_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <netdb.h>
diff --git a/inet/getnetent.c b/inet/getnetent.c
index 9c0fce1e09..6333178f4b 100644
--- a/inet/getnetent.c
+++ b/inet/getnetent.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <netdb.h>
diff --git a/inet/getnetent_r.c b/inet/getnetent_r.c
index 807953f1a4..56519e46e7 100644
--- a/inet/getnetent_r.c
+++ b/inet/getnetent_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <netdb.h>
diff --git a/inet/getnetgrent.c b/inet/getnetgrent.c
index ee52924a45..077f92bb56 100644
--- a/inet/getnetgrent.c
+++ b/inet/getnetgrent.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <netdb.h>
diff --git a/inet/getnetgrent_r.c b/inet/getnetgrent_r.c
index dc0aa4f627..b8ab845ed7 100644
--- a/inet/getnetgrent_r.c
+++ b/inet/getnetgrent_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <atomic.h>
diff --git a/inet/getproto.c b/inet/getproto.c
index a89bcb6955..d7d5fb9bb0 100644
--- a/inet/getproto.c
+++ b/inet/getproto.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <netdb.h>
diff --git a/inet/getproto_r.c b/inet/getproto_r.c
index 69cb311473..d22dfb5573 100644
--- a/inet/getproto_r.c
+++ b/inet/getproto_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <netdb.h>
diff --git a/inet/getprtent.c b/inet/getprtent.c
index 8cc19e90db..dca17eb42a 100644
--- a/inet/getprtent.c
+++ b/inet/getprtent.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <netdb.h>
diff --git a/inet/getprtent_r.c b/inet/getprtent_r.c
index 38c2e5bdda..c9f08d7042 100644
--- a/inet/getprtent_r.c
+++ b/inet/getprtent_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <netdb.h>
diff --git a/inet/getprtname.c b/inet/getprtname.c
index 89e4db4fc7..e7d5f60032 100644
--- a/inet/getprtname.c
+++ b/inet/getprtname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <netdb.h>
diff --git a/inet/getprtname_r.c b/inet/getprtname_r.c
index 1bd9d6ee3a..3ff90053f8 100644
--- a/inet/getprtname_r.c
+++ b/inet/getprtname_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <netdb.h>
diff --git a/inet/getservent.c b/inet/getservent.c
index 71857c2617..5202481a94 100644
--- a/inet/getservent.c
+++ b/inet/getservent.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <netdb.h>
diff --git a/inet/getservent_r.c b/inet/getservent_r.c
index b22caf8030..0055183fea 100644
--- a/inet/getservent_r.c
+++ b/inet/getservent_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <netdb.h>
diff --git a/inet/getsourcefilter.c b/inet/getsourcefilter.c
index 405f13a610..ad4b97f798 100644
--- a/inet/getsourcefilter.c
+++ b/inet/getsourcefilter.c
@@ -1,5 +1,5 @@
/* Get source filter. Stub version.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <netinet/in.h>
diff --git a/inet/getsrvbynm.c b/inet/getsrvbynm.c
index 797aac3249..d2b3c7e3a9 100644
--- a/inet/getsrvbynm.c
+++ b/inet/getsrvbynm.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <netdb.h>
diff --git a/inet/getsrvbynm_r.c b/inet/getsrvbynm_r.c
index 8adc0eee12..b4df0b5800 100644
--- a/inet/getsrvbynm_r.c
+++ b/inet/getsrvbynm_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <netdb.h>
diff --git a/inet/getsrvbypt.c b/inet/getsrvbypt.c
index 588be44085..6528cf9a8f 100644
--- a/inet/getsrvbypt.c
+++ b/inet/getsrvbypt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <netdb.h>
diff --git a/inet/getsrvbypt_r.c b/inet/getsrvbypt_r.c
index 371120635d..c469cb8379 100644
--- a/inet/getsrvbypt_r.c
+++ b/inet/getsrvbypt_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <netdb.h>
diff --git a/inet/herrno-loc.c b/inet/herrno-loc.c
index df475b8f9e..a7c067ad96 100644
--- a/inet/herrno-loc.c
+++ b/inet/herrno-loc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <netdb.h>
#include <tls.h>
diff --git a/inet/herrno.c b/inet/herrno.c
index 20b983bc3c..6544007f8f 100644
--- a/inet/herrno.c
+++ b/inet/herrno.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <features.h>
#include <netdb.h>
diff --git a/inet/htonl.c b/inet/htonl.c
index fec533f693..6310b7a84d 100644
--- a/inet/htonl.c
+++ b/inet/htonl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
#include <netinet/in.h>
diff --git a/inet/htons.c b/inet/htons.c
index 4f7974de91..150281b348 100644
--- a/inet/htons.c
+++ b/inet/htons.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <netinet/in.h>
diff --git a/inet/htontest.c b/inet/htontest.c
index e819f2bf19..032512575a 100644
--- a/inet/htontest.c
+++ b/inet/htontest.c
@@ -1,5 +1,5 @@
/* Test hton/ntoh functions.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <endian.h>
#include <stdio.h>
diff --git a/inet/idna.c b/inet/idna.c
index c561bf2e9e..63680927bf 100644
--- a/inet/idna.c
+++ b/inet/idna.c
@@ -1,5 +1,5 @@
/* IDNA functions, forwarding to implementations in libidn2.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <allocate_once.h>
#include <dlfcn.h>
diff --git a/inet/idna_name_classify.c b/inet/idna_name_classify.c
index 3683e1133f..35acc3afc5 100644
--- a/inet/idna_name_classify.c
+++ b/inet/idna_name_classify.c
@@ -1,5 +1,5 @@
/* Classify a domain name for IDNA purposes.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <inet/net-internal.h>
diff --git a/inet/if_index.c b/inet/if_index.c
index f537d088e0..6eedebb72f 100644
--- a/inet/if_index.c
+++ b/inet/if_index.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <net/if.h>
#include <errno.h>
diff --git a/inet/ifaddrs.c b/inet/ifaddrs.c
index fe98508115..b86974e562 100644
--- a/inet/ifaddrs.c
+++ b/inet/ifaddrs.c
@@ -1,5 +1,5 @@
/* getifaddrs -- get names and addresses of all network interfaces
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ifaddrs.h>
#include <errno.h>
diff --git a/inet/ifaddrs.h b/inet/ifaddrs.h
index 799bf09209..f98e7f1c03 100644
--- a/inet/ifaddrs.h
+++ b/inet/ifaddrs.h
@@ -1,5 +1,5 @@
/* ifaddrs.h -- declarations for getting network interface addresses
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _IFADDRS_H
#define _IFADDRS_H 1
diff --git a/inet/ifreq.c b/inet/ifreq.c
index 37fdb6a881..fcbbbdd986 100644
--- a/inet/ifreq.c
+++ b/inet/ifreq.c
@@ -1,5 +1,5 @@
/* Collect network interface list. Stub version.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "ifreq.h"
diff --git a/inet/in6_addr.c b/inet/in6_addr.c
index a2269b8fd6..2b43b4896b 100644
--- a/inet/in6_addr.c
+++ b/inet/in6_addr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Philip Blundell <pjb27@cam.ac.uk>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <netinet/in.h>
diff --git a/inet/inet6_opt.c b/inet/inet6_opt.c
index 2f512d8fc5..7498960b1c 100644
--- a/inet/inet6_opt.c
+++ b/inet/inet6_opt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2006.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <netinet/in.h>
diff --git a/inet/inet6_option.c b/inet/inet6_option.c
index 806bf9c1f3..643ea3d3d0 100644
--- a/inet/inet6_option.c
+++ b/inet/inet6_option.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <string.h>
diff --git a/inet/inet6_rth.c b/inet/inet6_rth.c
index 7caafbc91b..c6b1efe38d 100644
--- a/inet/inet6_rth.c
+++ b/inet/inet6_rth.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2006.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <netinet/in.h>
diff --git a/inet/inet6_scopeid_pton.c b/inet/inet6_scopeid_pton.c
index b3c58e73de..b2b9d28aba 100644
--- a/inet/inet6_scopeid_pton.c
+++ b/inet/inet6_scopeid_pton.c
@@ -1,5 +1,5 @@
/* Convert an IPv6 scope ID from text to the internal representation.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <net-internal.h>
diff --git a/inet/inet_net.c b/inet/inet_net.c
index eeb9830d5e..d891ba2be0 100644
--- a/inet/inet_net.c
+++ b/inet/inet_net.c
@@ -27,7 +27,7 @@
* SUCH DAMAGE.
*/
-/* Copyright (C) 2013-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2013-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
@@ -42,7 +42,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <netinet/in.h>
diff --git a/inet/inet_ntoa.c b/inet/inet_ntoa.c
index 22308a16e0..c9148bcede 100644
--- a/inet/inet_ntoa.c
+++ b/inet/inet_ntoa.c
@@ -1,5 +1,5 @@
/* Convert Inet number to ASCII representation.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
diff --git a/inet/net-internal.h b/inet/net-internal.h
index 0ba6736aef..c774de2b78 100644
--- a/inet/net-internal.h
+++ b/inet/net-internal.h
@@ -1,5 +1,5 @@
/* Network-related functions for internal library use.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _NET_INTERNAL_H
#define _NET_INTERNAL_H 1
@@ -23,6 +23,7 @@
#include <stdbool.h>
#include <stdint.h>
#include <sys/time.h>
+#include <libc-diag.h>
int __inet6_scopeid_pton (const struct in6_addr *address,
const char *scope, uint32_t *result);
@@ -96,6 +97,16 @@ __deadline_is_infinite (struct deadline deadline)
return deadline.absolute.tv_nsec < 0;
}
+/* GCC 8.3 and 9.2 both incorrectly report total_deadline
+ * (from sunrpc/clnt_udp.c) as maybe-uninitialized when tv_sec is 8 bytes
+ * (64-bits) wide on 32-bit systems. We have to set -Wmaybe-uninitialized
+ * here as it won't fix the error in sunrpc/clnt_udp.c.
+ * A GCC bug has been filed here:
+ * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91691
+ */
+DIAG_PUSH_NEEDS_COMMENT;
+DIAG_IGNORE_NEEDS_COMMENT (9, "-Wmaybe-uninitialized");
+
/* Return true if the current time is at the deadline or past it. */
static inline bool
__deadline_elapsed (struct deadline_current_time current,
@@ -120,6 +131,8 @@ __deadline_first (struct deadline left, struct deadline right)
return right;
}
+DIAG_POP_NEEDS_COMMENT;
+
/* Add TV to the current time and return it. Returns a special
infinite absolute deadline on overflow. */
struct deadline __deadline_from_timeval (struct deadline_current_time,
diff --git a/inet/netgroup.h b/inet/netgroup.h
index e1109b9f1b..62076c3e29 100644
--- a/inet/netgroup.h
+++ b/inet/netgroup.h
@@ -1,5 +1,5 @@
/* Internal header for netgroup related functions.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _NETGROUP_H
#define _NETGROUP_H 1
diff --git a/inet/netinet/ether.h b/inet/netinet/ether.h
index 1d23e4a4c6..789037172d 100644
--- a/inet/netinet/ether.h
+++ b/inet/netinet/ether.h
@@ -1,5 +1,5 @@
/* Functions for storing Ethernet addresses in ASCII and mapping to hostnames.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _NETINET_ETHER_H
#define _NETINET_ETHER_H 1
diff --git a/inet/netinet/icmp6.h b/inet/netinet/icmp6.h
index a7100abf00..ad28671011 100644
--- a/inet/netinet/icmp6.h
+++ b/inet/netinet/icmp6.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _NETINET_ICMP6_H
#define _NETINET_ICMP6_H 1
diff --git a/inet/netinet/igmp.h b/inet/netinet/igmp.h
index 7a5b5249df..ab9ad87038 100644
--- a/inet/netinet/igmp.h
+++ b/inet/netinet/igmp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _NETINET_IGMP_H
#define _NETINET_IGMP_H 1
@@ -86,6 +86,7 @@ struct igmp {
#define IGMP_MTRACE_RESP 0x1e /* traceroute resp.(to sender)*/
#define IGMP_MTRACE 0x1f /* mcast traceroute messages */
+#define IGMP_MRDISC_ADV 0x30 /* From RFC4286. */
#define IGMP_MAX_HOST_REPORT_DELAY 10 /* max delay for response to */
/* query (in seconds) according */
diff --git a/inet/netinet/in.h b/inet/netinet/in.h
index 03a31b634c..148bc663fc 100644
--- a/inet/netinet/in.h
+++ b/inet/netinet/in.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _NETINET_IN_H
#define _NETINET_IN_H 1
@@ -204,6 +204,7 @@ enum
#define INADDR_UNSPEC_GROUP ((in_addr_t) 0xe0000000) /* 224.0.0.0 */
#define INADDR_ALLHOSTS_GROUP ((in_addr_t) 0xe0000001) /* 224.0.0.1 */
#define INADDR_ALLRTRS_GROUP ((in_addr_t) 0xe0000002) /* 224.0.0.2 */
+#define INADDR_ALLSNOOPERS_GROUP ((in_addr_t) 0xe000006a) /* 224.0.0.106 */
#define INADDR_MAX_LOCAL_GROUP ((in_addr_t) 0xe00000ff) /* 224.0.0.255 */
#if !__USE_KERNEL_IPV6_DEFS
@@ -241,10 +242,10 @@ struct sockaddr_in
struct in_addr sin_addr; /* Internet address. */
/* Pad to size of `struct sockaddr'. */
- unsigned char sin_zero[sizeof (struct sockaddr) -
- __SOCKADDR_COMMON_SIZE -
- sizeof (in_port_t) -
- sizeof (struct in_addr)];
+ unsigned char sin_zero[sizeof (struct sockaddr)
+ - __SOCKADDR_COMMON_SIZE
+ - sizeof (in_port_t)
+ - sizeof (struct in_addr)];
};
#if !__USE_KERNEL_IPV6_DEFS
diff --git a/inet/netinet/ip6.h b/inet/netinet/ip6.h
index 31422ff927..39d2ab1465 100644
--- a/inet/netinet/ip6.h
+++ b/inet/netinet/ip6.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _NETINET_IP6_H
#define _NETINET_IP6_H 1
diff --git a/inet/setipv4sourcefilter.c b/inet/setipv4sourcefilter.c
index 7e6bd49154..47f7948907 100644
--- a/inet/setipv4sourcefilter.c
+++ b/inet/setipv4sourcefilter.c
@@ -1,5 +1,5 @@
/* Set source filter. Stub version.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdint.h>
diff --git a/inet/setsourcefilter.c b/inet/setsourcefilter.c
index 85883cfb2f..fd87d35e92 100644
--- a/inet/setsourcefilter.c
+++ b/inet/setsourcefilter.c
@@ -1,5 +1,5 @@
/* Set source filter. Stub version.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdint.h>
diff --git a/inet/test-hnto-types.c b/inet/test-hnto-types.c
index 6220753228..3f25d133d6 100644
--- a/inet/test-hnto-types.c
+++ b/inet/test-hnto-types.c
@@ -1,5 +1,5 @@
/* Test netinet/in.h endian-conversion macros always return the correct type.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <netinet/in.h>
#include <stdint.h>
diff --git a/inet/test-ifaddrs.c b/inet/test-ifaddrs.c
index 5e31c51c01..9584552299 100644
--- a/inet/test-ifaddrs.c
+++ b/inet/test-ifaddrs.c
@@ -1,5 +1,5 @@
/* Test listing of network interface addresses.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdio.h>
diff --git a/inet/test_ifindex.c b/inet/test_ifindex.c
index b163637131..788c1479fd 100644
--- a/inet/test_ifindex.c
+++ b/inet/test_ifindex.c
@@ -1,5 +1,5 @@
/* Test interface name <-> index conversions.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Philip Blundell <Philip.Blundell@pobox.com>.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdio.h>
diff --git a/inet/tst-checks-posix.c b/inet/tst-checks-posix.c
index 243b4ca9d8..dbd0c674ee 100644
--- a/inet/tst-checks-posix.c
+++ b/inet/tst-checks-posix.c
@@ -1,5 +1,5 @@
/* Test IPv6 classification macros in POSIX mode.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Process tst-checks.c in POSIX mode. */
#undef _GNU_SOURCE
diff --git a/inet/tst-deadline.c b/inet/tst-deadline.c
index ff44a15605..cb4d560b8c 100644
--- a/inet/tst-deadline.c
+++ b/inet/tst-deadline.c
@@ -1,5 +1,5 @@
/* Tests for computing deadlines for timeouts.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <inet/net-internal.h>
#include <limits.h>
diff --git a/inet/tst-idna_name_classify.c b/inet/tst-idna_name_classify.c
index c4a2c91329..9e06533680 100644
--- a/inet/tst-idna_name_classify.c
+++ b/inet/tst-idna_name_classify.c
@@ -1,5 +1,5 @@
/* Test IDNA name classification.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <inet/net-internal.h>
#include <locale.h>
diff --git a/inet/tst-if_index-long.c b/inet/tst-if_index-long.c
new file mode 100644
index 0000000000..ecb478ad49
--- /dev/null
+++ b/inet/tst-if_index-long.c
@@ -0,0 +1,61 @@
+/* Check for descriptor leak in if_nametoindex with a long interface name.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+/* This test checks for a descriptor leak in case of a long interface
+ name (CVE-2018-19591, bug 23927). */
+
+#include <errno.h>
+#include <net/if.h>
+#include <netdb.h>
+#include <string.h>
+#include <support/check.h>
+#include <support/descriptors.h>
+#include <support/support.h>
+
+static int
+do_test (void)
+{
+ struct support_descriptors *descrs = support_descriptors_list ();
+
+ /* Prepare a name which is just as long as required for trigging the
+ bug. */
+ char name[IFNAMSIZ + 1];
+ memset (name, 'A', IFNAMSIZ);
+ name[IFNAMSIZ] = '\0';
+ TEST_COMPARE (strlen (name), IFNAMSIZ);
+ struct ifreq ifr;
+ TEST_COMPARE (strlen (name), sizeof (ifr.ifr_name));
+
+ /* Test directly via if_nametoindex. */
+ TEST_COMPARE (if_nametoindex (name), 0);
+ TEST_COMPARE (errno, ENODEV);
+ support_descriptors_check (descrs);
+
+ /* Same test via getaddrinfo. */
+ char *host = xasprintf ("fea0::%%%s", name);
+ struct addrinfo hints = { .ai_flags = AI_NUMERICHOST, };
+ struct addrinfo *ai;
+ TEST_COMPARE (getaddrinfo (host, NULL, &hints, &ai), EAI_NONAME);
+ support_descriptors_check (descrs);
+
+ support_descriptors_free (descrs);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/inet/tst-inet6_scopeid_pton.c b/inet/tst-inet6_scopeid_pton.c
index 61d4b24d09..4fa40e166a 100644
--- a/inet/tst-inet6_scopeid_pton.c
+++ b/inet/tst-inet6_scopeid_pton.c
@@ -1,5 +1,5 @@
/* Tests for __inet6_scopeid_pton and IPv6 scopes in getaddrinfo.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <arpa/inet.h>
#include <inttypes.h>
diff --git a/inet/tst-network.c b/inet/tst-network.c
index 96eb873197..4533348d3b 100644
--- a/inet/tst-network.c
+++ b/inet/tst-network.c
@@ -1,5 +1,5 @@
/* Test for inet_network.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdint.h>
diff --git a/inet/tst-sockaddr.c b/inet/tst-sockaddr.c
index 8e497d9506..47f8d45224 100644
--- a/inet/tst-sockaddr.c
+++ b/inet/tst-sockaddr.c
@@ -1,5 +1,5 @@
/* Tests for socket address type definitions.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <netinet/in.h>
#include <stdbool.h>
diff --git a/intl/Makefile b/intl/Makefile
index 672edf1b38..94e0a30a47 100644
--- a/intl/Makefile
+++ b/intl/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1995-2018 Free Software Foundation, Inc.
+# Copyright (C) 1995-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
# Makefile for intl subdirectory: message handling code from GNU gettext.
diff --git a/intl/bindtextdom.c b/intl/bindtextdom.c
index 7880d6bdaf..e339b0fa28 100644
--- a/intl/bindtextdom.c
+++ b/intl/bindtextdom.c
@@ -1,5 +1,5 @@
/* Implementation of the bindtextdomain(3) function
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 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 by
@@ -12,7 +12,7 @@
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
diff --git a/intl/dcgettext.c b/intl/dcgettext.c
index 4a31351810..d8894ab9b4 100644
--- a/intl/dcgettext.c
+++ b/intl/dcgettext.c
@@ -1,5 +1,5 @@
/* Implementation of the dcgettext(3) function.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 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 by
@@ -12,7 +12,7 @@
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
diff --git a/intl/dcigettext.c b/intl/dcigettext.c
index 2a50369948..09e3dca256 100644
--- a/intl/dcigettext.c
+++ b/intl/dcigettext.c
@@ -1,5 +1,5 @@
/* Implementation of the internal dcigettext function.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 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 by
@@ -12,7 +12,7 @@
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Tell glibc's <string.h> to provide a prototype for mempcpy().
This must come before <config.h> because <config.h> may include
@@ -360,8 +360,7 @@ static const char *guess_category_value (int category,
#ifdef _LIBC
# include "../locale/localeinfo.h"
-# define category_to_name(category) \
- _nl_category_names.str + _nl_category_name_idxs[category]
+# define category_to_name(category) _nl_category_names_get (category)
#else
static const char *category_to_name (int category);
#endif
@@ -631,7 +630,7 @@ DCIGETTEXT (const char *domainname, const char *msgid1, const char *msgid2,
int ret = __asprintf (&xdirname, "%s/%s", cwd, dirname);
free (cwd);
if (ret < 0)
- return NULL;
+ goto return_untranslated;
dirname = xdirname;
}
#ifndef IN_LIBGLOCALE
diff --git a/intl/dcngettext.c b/intl/dcngettext.c
index 8542064fbc..f85a1fdc77 100644
--- a/intl/dcngettext.c
+++ b/intl/dcngettext.c
@@ -1,5 +1,5 @@
/* Implementation of the dcngettext(3) function.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 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 by
@@ -12,7 +12,7 @@
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
diff --git a/intl/dgettext.c b/intl/dgettext.c
index 59fa940420..6fda4986fb 100644
--- a/intl/dgettext.c
+++ b/intl/dgettext.c
@@ -1,5 +1,5 @@
/* Implementation of the dgettext(3) function.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 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 by
@@ -12,7 +12,7 @@
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
diff --git a/intl/dngettext.c b/intl/dngettext.c
index 8ca40c60fe..7d86f2ba19 100644
--- a/intl/dngettext.c
+++ b/intl/dngettext.c
@@ -1,5 +1,5 @@
/* Implementation of the dngettext(3) function.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 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 by
@@ -12,7 +12,7 @@
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
diff --git a/intl/eval-plural.h b/intl/eval-plural.h
index baac50359b..eb9cd41475 100644
--- a/intl/eval-plural.h
+++ b/intl/eval-plural.h
@@ -1,5 +1,5 @@
/* Plural expression evaluation.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 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 by
@@ -12,7 +12,7 @@
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#ifndef STATIC
#define STATIC static
diff --git a/intl/explodename.c b/intl/explodename.c
index 79a334bc80..bb7755b2d3 100644
--- a/intl/explodename.c
+++ b/intl/explodename.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
This program is free software: you can redistribute it and/or modify
@@ -12,7 +12,7 @@
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
diff --git a/intl/finddomain.c b/intl/finddomain.c
index 4f8b4b4d3a..f0d5679660 100644
--- a/intl/finddomain.c
+++ b/intl/finddomain.c
@@ -1,5 +1,5 @@
/* Handle list of needed message catalogs
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 Free Software Foundation, Inc.
Written by Ulrich Drepper <drepper@gnu.org>, 1995.
This program is free software: you can redistribute it and/or modify
@@ -13,7 +13,7 @@
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
diff --git a/intl/gettext.c b/intl/gettext.c
index 220ec8557f..9abf92250f 100644
--- a/intl/gettext.c
+++ b/intl/gettext.c
@@ -1,5 +1,5 @@
/* Implementation of gettext(3) function.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 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 by
@@ -12,7 +12,7 @@
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
diff --git a/intl/gettextP.h b/intl/gettextP.h
index 32ce3d1029..fd74047e2b 100644
--- a/intl/gettextP.h
+++ b/intl/gettextP.h
@@ -1,5 +1,5 @@
/* Header describing internals of libintl library.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 Free Software Foundation, Inc.
Written by Ulrich Drepper <drepper@cygnus.com>, 1995.
This program is free software: you can redistribute it and/or modify
@@ -13,7 +13,7 @@
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#ifndef _GETTEXTP_H
#define _GETTEXTP_H
diff --git a/intl/gmo.h b/intl/gmo.h
index bc520a029f..79c8ab4e54 100644
--- a/intl/gmo.h
+++ b/intl/gmo.h
@@ -1,5 +1,5 @@
/* Description of GNU message catalog format: general file layout.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 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 by
@@ -12,7 +12,7 @@
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#ifndef _GETTEXT_H
#define _GETTEXT_H 1
diff --git a/intl/hash-string.c b/intl/hash-string.c
index 111d5a0538..8c6e43f26a 100644
--- a/intl/hash-string.c
+++ b/intl/hash-string.c
@@ -1,5 +1,5 @@
/* Implements a string hashing function.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
diff --git a/intl/hash-string.h b/intl/hash-string.h
index c41ebd09c1..91da73c992 100644
--- a/intl/hash-string.h
+++ b/intl/hash-string.h
@@ -1,5 +1,5 @@
/* Description of GNU message catalog format: string hashing function.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 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 by
@@ -12,7 +12,7 @@
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* @@ end of prolog @@ */
diff --git a/intl/l10nflist.c b/intl/l10nflist.c
index f67e9d6f30..67c05884be 100644
--- a/intl/l10nflist.c
+++ b/intl/l10nflist.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
This program is free software: you can redistribute it and/or modify
@@ -12,7 +12,7 @@
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Tell glibc's <string.h> to provide a prototype for stpcpy().
This must come before <config.h> because <config.h> may include
diff --git a/intl/libintl.h b/intl/libintl.h
index c1a4ae2e87..5bc91f81d2 100644
--- a/intl/libintl.h
+++ b/intl/libintl.h
@@ -1,5 +1,5 @@
/* Message catalogs for internationalization.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
This file is derived from the file libgettext.h in the GNU gettext package.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LIBINTL_H
#define _LIBINTL_H 1
diff --git a/intl/loadinfo.h b/intl/loadinfo.h
index b559a32e77..522afcb20b 100644
--- a/intl/loadinfo.h
+++ b/intl/loadinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
@@ -13,7 +13,7 @@
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#ifndef _LOADINFO_H
#define _LOADINFO_H 1
diff --git a/intl/loadmsgcat.c b/intl/loadmsgcat.c
index f666cb3c8d..c535889c91 100644
--- a/intl/loadmsgcat.c
+++ b/intl/loadmsgcat.c
@@ -1,5 +1,5 @@
/* Load needed message catalogs.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 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 by
@@ -12,7 +12,7 @@
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Tell glibc's <string.h> to provide a prototype for mempcpy().
This must come before <config.h> because <config.h> may include
diff --git a/intl/locale.alias b/intl/locale.alias
index b47b154c9f..af3193daa1 100644
--- a/intl/locale.alias
+++ b/intl/locale.alias
@@ -1,5 +1,5 @@
# Locale name alias data base.
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2019 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 <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
# The format of this file is the same as for the corresponding file of
# the X Window System, which normally can be found in
diff --git a/intl/localealias.c b/intl/localealias.c
index 09e7894002..6eb42673d7 100644
--- a/intl/localealias.c
+++ b/intl/localealias.c
@@ -1,5 +1,5 @@
/* Handle aliases for locale names.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 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 by
@@ -12,7 +12,7 @@
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* Tell glibc's <string.h> to provide a prototype for mempcpy().
This must come before <config.h> because <config.h> may include
diff --git a/intl/ngettext.c b/intl/ngettext.c
index bf7c10def8..de40cb76e9 100644
--- a/intl/ngettext.c
+++ b/intl/ngettext.c
@@ -1,5 +1,5 @@
/* Implementation of ngettext(3) function.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 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 by
@@ -12,7 +12,7 @@
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
diff --git a/intl/plural-exp.c b/intl/plural-exp.c
index 8a9b2e52d6..7ca976a44b 100644
--- a/intl/plural-exp.c
+++ b/intl/plural-exp.c
@@ -1,5 +1,5 @@
/* Expression parsing for plural form selection.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
Written by Ulrich Drepper <drepper@cygnus.com>, 2000.
This program is free software: you can redistribute it and/or modify
@@ -13,7 +13,7 @@
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
diff --git a/intl/plural-exp.h b/intl/plural-exp.h
index 3ac5e23ee0..875e60c3c9 100644
--- a/intl/plural-exp.h
+++ b/intl/plural-exp.h
@@ -1,5 +1,5 @@
/* Expression parsing and evaluation for plural form selection.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
Written by Ulrich Drepper <drepper@cygnus.com>, 2000.
This program is free software: you can redistribute it and/or modify
@@ -13,7 +13,7 @@
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#ifndef _PLURAL_EXP_H
#define _PLURAL_EXP_H
diff --git a/intl/plural.y b/intl/plural.y
index 4bb95af5a7..142cee5889 100644
--- a/intl/plural.y
+++ b/intl/plural.y
@@ -1,6 +1,6 @@
%{
/* Expression parsing for plural form selection.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
Written by Ulrich Drepper <drepper@cygnus.com>, 2000.
This program is free software: you can redistribute it and/or modify
@@ -14,7 +14,7 @@
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* For bison < 2.0, the bison generated parser uses alloca. AIX 3 forces us
to put this declaration at the beginning of the file. The declaration in
diff --git a/intl/po2test.awk b/intl/po2test.awk
index 76b4120df9..b2df1e7db7 100644
--- a/intl/po2test.awk
+++ b/intl/po2test.awk
@@ -1,5 +1,5 @@
# po2test.awk - Convert Uniforum style .po file to C code for testing.
-# Copyright (C) 2012-2018 Free Software Foundation, Inc.
+# Copyright (C) 2012-2019 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 <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
#
# Output current message (in msg) as argument of the INPUT or OUTPUT macro,
diff --git a/intl/textdomain.c b/intl/textdomain.c
index bba3fd1d4e..cc06364a06 100644
--- a/intl/textdomain.c
+++ b/intl/textdomain.c
@@ -1,5 +1,5 @@
/* Implementation of the textdomain(3) function.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 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 by
@@ -12,7 +12,7 @@
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
diff --git a/intl/tst-codeset.c b/intl/tst-codeset.c
index e71382aeee..ae0c61fbac 100644
--- a/intl/tst-codeset.c
+++ b/intl/tst-codeset.c
@@ -1,5 +1,5 @@
/* Test of bind_textdomain_codeset.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Bruno Haible <haible@clisp.cons.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libintl.h>
#include <locale.h>
diff --git a/intl/tst-gettext.c b/intl/tst-gettext.c
index c61dc6e9e2..c611de4ca9 100644
--- a/intl/tst-gettext.c
+++ b/intl/tst-gettext.c
@@ -1,5 +1,5 @@
/* Test of the gettext functions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libintl.h>
#include <locale.h>
diff --git a/intl/tst-gettext.sh b/intl/tst-gettext.sh
index 0c65583149..44c1d6dd33 100755
--- a/intl/tst-gettext.sh
+++ b/intl/tst-gettext.sh
@@ -1,6 +1,6 @@
#!/bin/sh
# Test of gettext functions.
-# Copyright (C) 2000-2018 Free Software Foundation, Inc.
+# Copyright (C) 2000-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
@@ -15,7 +15,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
set -e
diff --git a/intl/tst-gettext2.c b/intl/tst-gettext2.c
index 957820d747..4b34cb6fac 100644
--- a/intl/tst-gettext2.c
+++ b/intl/tst-gettext2.c
@@ -1,5 +1,5 @@
/* Test of the gettext functions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de> and
Andreas Jaeger <aj@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <locale.h>
diff --git a/intl/tst-gettext2.sh b/intl/tst-gettext2.sh
index bb11cbfaec..41d06c0220 100644
--- a/intl/tst-gettext2.sh
+++ b/intl/tst-gettext2.sh
@@ -1,6 +1,6 @@
#!/bin/sh
# Test of gettext functions.
-# Copyright (C) 2000-2018 Free Software Foundation, Inc.
+# Copyright (C) 2000-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
@@ -15,7 +15,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
set -e
diff --git a/intl/tst-gettext3.c b/intl/tst-gettext3.c
index 2434f11272..a8888e1902 100644
--- a/intl/tst-gettext3.c
+++ b/intl/tst-gettext3.c
@@ -1,6 +1,6 @@
/* Test that the gettext() results come out in the correct encoding for
locales that differ only in their encoding.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Bruno Haible <bruno@clisp.org>, 2001, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libintl.h>
#include <locale.h>
diff --git a/intl/tst-gettext4.c b/intl/tst-gettext4.c
index 8b6b6a2bc5..3adfdfe4e8 100644
--- a/intl/tst-gettext4.c
+++ b/intl/tst-gettext4.c
@@ -1,6 +1,6 @@
/* Test that gettext() in multithreaded applications works correctly if
different threads operate in different locales with the same encoding.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Bruno Haible <bruno@clisp.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libintl.h>
#include <locale.h>
diff --git a/intl/tst-gettext4.sh b/intl/tst-gettext4.sh
index 3dd01bd0b2..6ff76e1869 100755
--- a/intl/tst-gettext4.sh
+++ b/intl/tst-gettext4.sh
@@ -1,7 +1,7 @@
#!/bin/sh
# Test that gettext() in multithreaded applications works correctly if
# different threads operate in different locales with the same encoding.
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
set -e
diff --git a/intl/tst-gettext5.c b/intl/tst-gettext5.c
index ff8e5ff308..41065fe363 100644
--- a/intl/tst-gettext5.c
+++ b/intl/tst-gettext5.c
@@ -1,7 +1,7 @@
/* Test that gettext() in multithreaded applications works correctly if
different threads operate in different locales referring to the same
catalog file but with different encodings.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Bruno Haible <bruno@clisp.org>, 2005.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libintl.h>
#include <locale.h>
diff --git a/intl/tst-gettext6.c b/intl/tst-gettext6.c
index 17be2ba1b2..f0362282f2 100644
--- a/intl/tst-gettext6.c
+++ b/intl/tst-gettext6.c
@@ -1,5 +1,5 @@
/* Test that gettext() in multithreaded applications works correctly.
- Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ Copyright (C) 2008-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 2008.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libintl.h>
#include <locale.h>
diff --git a/intl/tst-gettext6.sh b/intl/tst-gettext6.sh
index a8ebd681ee..4a9c0df028 100644
--- a/intl/tst-gettext6.sh
+++ b/intl/tst-gettext6.sh
@@ -1,6 +1,6 @@
#!/bin/sh
# Test that gettext() in multithreaded applications works correctly.
-# Copyright (C) 2008-2018 Free Software Foundation, Inc.
+# Copyright (C) 2008-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
@@ -15,7 +15,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
set -e
diff --git a/intl/tst-ngettext.c b/intl/tst-ngettext.c
index da9ca232ef..81ef6651b9 100644
--- a/intl/tst-ngettext.c
+++ b/intl/tst-ngettext.c
@@ -1,5 +1,5 @@
/* Test of the ngettext functions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <langinfo.h>
#include <libintl.h>
diff --git a/intl/tst-translit.c b/intl/tst-translit.c
index 65789d61a9..10e84d67fc 100644
--- a/intl/tst-translit.c
+++ b/intl/tst-translit.c
@@ -1,5 +1,5 @@
/* Test of translitation in the gettext functions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libintl.h>
#include <locale.h>
diff --git a/intl/tst-translit.sh b/intl/tst-translit.sh
index b4cc29d076..1b0742887f 100755
--- a/intl/tst-translit.sh
+++ b/intl/tst-translit.sh
@@ -1,6 +1,6 @@
#!/bin/sh
# Test of transliteration in gettext functions.
-# Copyright (C) 2000-2018 Free Software Foundation, Inc.
+# Copyright (C) 2000-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
@@ -15,7 +15,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
set -e
diff --git a/io/Makefile b/io/Makefile
index ec5c6d7a2f..2c42ce27b9 100644
--- a/io/Makefile
+++ b/io/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1992-2018 Free Software Foundation, Inc.
+# Copyright (C) 1992-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
# Sub-makefile for I/O portion of the library.
@@ -25,7 +25,9 @@ include ../Makeconfig
headers := sys/stat.h bits/stat.h sys/statfs.h bits/statfs.h sys/vfs.h \
sys/statvfs.h bits/statvfs.h fcntl.h sys/fcntl.h bits/fcntl.h \
poll.h sys/poll.h bits/poll.h bits/fcntl2.h bits/poll2.h \
- bits/statx.h utime.h ftw.h fts.h sys/sendfile.h
+ bits/statx.h bits/statx-generic.h bits/types/struct_statx.h \
+ bits/types/struct_statx_timestamp.h \
+ utime.h ftw.h fts.h sys/sendfile.h
routines := \
utime \
@@ -71,12 +73,8 @@ tests := test-utime test-stat test-stat2 test-lfs tst-getcwd \
tst-mknodat tst-mkfifoat tst-ttyname_r bug-ftw5 \
tst-posix_fallocate tst-posix_fallocate64 \
tst-fts tst-fts-lfs tst-open-tmpfile \
- tst-copy_file_range tst-getcwd-abspath \
-
-# This test includes the compat implementation of copy_file_range,
-# which uses internal, unexported libc functions.
-tests-static += tst-copy_file_range-compat
-tests-internal += tst-copy_file_range-compat
+ tst-copy_file_range tst-getcwd-abspath tst-lockf \
+ tst-ftw-lnk
# Likewise for statx, but we do not need static linking here.
tests-internal += tst-statx
diff --git a/io/access.c b/io/access.c
index 7130264ed7..9106a9f842 100644
--- a/io/access.c
+++ b/io/access.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
@@ -39,6 +39,7 @@ __access (const char *file, int type)
__set_errno (ENOSYS);
return -1;
}
+libc_hidden_def (__access)
stub_warning (access)
weak_alias (__access, access)
diff --git a/io/bits/fcntl2.h b/io/bits/fcntl2.h
index 38a18b27a1..99f20154a8 100644
--- a/io/bits/fcntl2.h
+++ b/io/bits/fcntl2.h
@@ -1,5 +1,5 @@
/* Checking macros for fcntl functions.
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FCNTL_H
# error "Never include <bits/fcntl2.h> directly; use <fcntl.h> instead."
diff --git a/io/bits/poll2.h b/io/bits/poll2.h
index 7e8406b87d..d7a10b9d59 100644
--- a/io/bits/poll2.h
+++ b/io/bits/poll2.h
@@ -1,5 +1,5 @@
/* Checking macros for poll functions.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_POLL_H
# error "Never include <bits/poll2.h> directly; use <sys/poll.h> instead."
diff --git a/io/bits/statx-generic.h b/io/bits/statx-generic.h
new file mode 100644
index 0000000000..44ae42d34b
--- /dev/null
+++ b/io/bits/statx-generic.h
@@ -0,0 +1,60 @@
+/* Generic statx-related definitions and declarations.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+/* This interface is based on <linux/stat.h> in Linux. */
+
+#ifndef _SYS_STAT_H
+# error Never include <bits/statx-generic.h> directly, include <sys/stat.h> instead.
+#endif
+
+#include <bits/types/struct_statx_timestamp.h>
+#include <bits/types/struct_statx.h>
+
+#ifndef STATX_TYPE
+# define STATX_TYPE 0x0001U
+# define STATX_MODE 0x0002U
+# define STATX_NLINK 0x0004U
+# define STATX_UID 0x0008U
+# define STATX_GID 0x0010U
+# define STATX_ATIME 0x0020U
+# define STATX_MTIME 0x0040U
+# define STATX_CTIME 0x0080U
+# define STATX_INO 0x0100U
+# define STATX_SIZE 0x0200U
+# define STATX_BLOCKS 0x0400U
+# define STATX_BASIC_STATS 0x07ffU
+# define STATX_ALL 0x0fffU
+# define STATX_BTIME 0x0800U
+# define STATX__RESERVED 0x80000000U
+
+# define STATX_ATTR_COMPRESSED 0x0004
+# define STATX_ATTR_IMMUTABLE 0x0010
+# define STATX_ATTR_APPEND 0x0020
+# define STATX_ATTR_NODUMP 0x0040
+# define STATX_ATTR_ENCRYPTED 0x0800
+# define STATX_ATTR_AUTOMOUNT 0x1000
+#endif /* !STATX_TYPE */
+
+__BEGIN_DECLS
+
+/* Fill *BUF with information about PATH in DIRFD. */
+int statx (int __dirfd, const char *__restrict __path, int __flags,
+ unsigned int __mask, struct statx *__restrict __buf)
+ __THROW __nonnull ((2, 5));
+
+__END_DECLS
diff --git a/io/bits/statx.h b/io/bits/statx.h
index e31254e361..7df10f328d 100644
--- a/io/bits/statx.h
+++ b/io/bits/statx.h
@@ -1,5 +1,5 @@
-/* statx-related definitions and declarations.
- Copyright (C) 2018 Free Software Foundation, Inc.
+/* statx-related definitions and declarations. Generic version.
+ Copyright (C) 2018-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
@@ -14,78 +14,13 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This interface is based on <linux/stat.h> in Linux. */
#ifndef _SYS_STAT_H
-# error Never include <bits/stat.x.h> directly, include <sys/stat.h> instead.
+# error Never include <bits/statx.h> directly, include <sys/stat.h> instead.
#endif
-struct statx_timestamp
-{
- __int64_t tv_sec;
- __uint32_t tv_nsec;
- __int32_t __statx_timestamp_pad1[1];
-};
-
-/* Warning: The kernel may add additional fields to this struct in the
- future. Only use this struct for calling the statx function, not
- for storing data. (Expansion will be controlled by the mask
- argument of the statx function.) */
-struct statx
-{
- __uint32_t stx_mask;
- __uint32_t stx_blksize;
- __uint64_t stx_attributes;
- __uint32_t stx_nlink;
- __uint32_t stx_uid;
- __uint32_t stx_gid;
- __uint16_t stx_mode;
- __uint16_t __statx_pad1[1];
- __uint64_t stx_ino;
- __uint64_t stx_size;
- __uint64_t stx_blocks;
- __uint64_t stx_attributes_mask;
- struct statx_timestamp stx_atime;
- struct statx_timestamp stx_btime;
- struct statx_timestamp stx_ctime;
- struct statx_timestamp stx_mtime;
- __uint32_t stx_rdev_major;
- __uint32_t stx_rdev_minor;
- __uint32_t stx_dev_major;
- __uint32_t stx_dev_minor;
- __uint64_t __statx_pad2[14];
-};
-
-#define STATX_TYPE 0x0001U
-#define STATX_MODE 0x0002U
-#define STATX_NLINK 0x0004U
-#define STATX_UID 0x0008U
-#define STATX_GID 0x0010U
-#define STATX_ATIME 0x0020U
-#define STATX_MTIME 0x0040U
-#define STATX_CTIME 0x0080U
-#define STATX_INO 0x0100U
-#define STATX_SIZE 0x0200U
-#define STATX_BLOCKS 0x0400U
-#define STATX_BASIC_STATS 0x07ffU
-#define STATX_ALL 0x0fffU
-#define STATX_BTIME 0x0800U
-#define STATX__RESERVED 0x80000000U
-
-#define STATX_ATTR_COMPRESSED 0x0004
-#define STATX_ATTR_IMMUTABLE 0x0010
-#define STATX_ATTR_APPEND 0x0020
-#define STATX_ATTR_NODUMP 0x0040
-#define STATX_ATTR_ENCRYPTED 0x0800
-#define STATX_ATTR_AUTOMOUNT 0x1000
-
-__BEGIN_DECLS
-
-/* Fill *BUF with information about PATH in DIRFD. */
-int statx (int __dirfd, const char *__restrict __path, int __flags,
- unsigned int __mask, struct statx *__restrict __buf)
- __THROW __nonnull ((2, 5));
-
-__END_DECLS
+/* Use the generic definitions. */
+#include <bits/statx-generic.h>
diff --git a/io/bits/types/struct_statx.h b/io/bits/types/struct_statx.h
new file mode 100644
index 0000000000..d042372a1b
--- /dev/null
+++ b/io/bits/types/struct_statx.h
@@ -0,0 +1,55 @@
+/* Definition of the generic version of struct statx.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_STAT_H
+# error Never include <bits/types/struct_statx.h> directly, include <sys/stat.h> instead.
+#endif
+
+#ifndef __statx_defined
+#define __statx_defined 1
+
+/* Warning: The kernel may add additional fields to this struct in the
+ future. Only use this struct for calling the statx function, not
+ for storing data. (Expansion will be controlled by the mask
+ argument of the statx function.) */
+struct statx
+{
+ __uint32_t stx_mask;
+ __uint32_t stx_blksize;
+ __uint64_t stx_attributes;
+ __uint32_t stx_nlink;
+ __uint32_t stx_uid;
+ __uint32_t stx_gid;
+ __uint16_t stx_mode;
+ __uint16_t __statx_pad1[1];
+ __uint64_t stx_ino;
+ __uint64_t stx_size;
+ __uint64_t stx_blocks;
+ __uint64_t stx_attributes_mask;
+ struct statx_timestamp stx_atime;
+ struct statx_timestamp stx_btime;
+ struct statx_timestamp stx_ctime;
+ struct statx_timestamp stx_mtime;
+ __uint32_t stx_rdev_major;
+ __uint32_t stx_rdev_minor;
+ __uint32_t stx_dev_major;
+ __uint32_t stx_dev_minor;
+ __uint64_t __statx_pad2[14];
+};
+
+#endif /* __statx_defined */
diff --git a/io/bits/types/struct_statx_timestamp.h b/io/bits/types/struct_statx_timestamp.h
new file mode 100644
index 0000000000..c1691065e8
--- /dev/null
+++ b/io/bits/types/struct_statx_timestamp.h
@@ -0,0 +1,33 @@
+/* Definition of the generic version of struct statx_timestamp.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_STAT_H
+# error Never include <bits/types/struct_statx_timestamp.h> directly, include <sys/stat.h> instead.
+#endif
+
+#ifndef __statx_timestamp_defined
+#define __statx_timestamp_defined 1
+
+struct statx_timestamp
+{
+ __int64_t tv_sec;
+ __uint32_t tv_nsec;
+ __int32_t __statx_timestamp_pad1[1];
+};
+
+#endif /* __statx_timestamp_defined */
diff --git a/io/bug-ftw1.c b/io/bug-ftw1.c
index 30a2b6bfc7..abc13f2c52 100644
--- a/io/bug-ftw1.c
+++ b/io/bug-ftw1.c
@@ -1,5 +1,5 @@
/* Test for ftw function searching in root directory.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ftw.h>
#include <mcheck.h>
diff --git a/io/bug-ftw2.c b/io/bug-ftw2.c
index f0911e914f..31d2091a27 100644
--- a/io/bug-ftw2.c
+++ b/io/bug-ftw2.c
@@ -1,5 +1,5 @@
/* Test for ftw function searching in current directory.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ftw.h>
#include <mcheck.h>
diff --git a/io/bug-ftw4.c b/io/bug-ftw4.c
index db8d1ecd3d..1cb5e514a9 100644
--- a/io/bug-ftw4.c
+++ b/io/bug-ftw4.c
@@ -1,5 +1,5 @@
/* Test if ftw function doesn't leak fds.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fcntl.h>
#include <ftw.h>
diff --git a/io/chdir.c b/io/chdir.c
index d30499207d..1532da05aa 100644
--- a/io/chdir.c
+++ b/io/chdir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/io/chmod.c b/io/chmod.c
index 407a80c219..cbed51d14a 100644
--- a/io/chmod.c
+++ b/io/chmod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/io/chown.c b/io/chown.c
index 655d7eaced..4c50c4dab7 100644
--- a/io/chown.c
+++ b/io/chown.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/io/close.c b/io/close.c
index 3f9dbdb9c3..2c55db92f5 100644
--- a/io/close.c
+++ b/io/close.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/io/copy_file_range-compat.c b/io/copy_file_range-compat.c
deleted file mode 100644
index 4ab22cad19..0000000000
--- a/io/copy_file_range-compat.c
+++ /dev/null
@@ -1,160 +0,0 @@
-/* Emulation of copy_file_range.
- Copyright (C) 2017-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-/* The following macros should be defined before including this
- file:
-
- COPY_FILE_RANGE_DECL Declaration specifiers for the function below.
- COPY_FILE_RANGE Name of the function to define. */
-
-#include <errno.h>
-#include <fcntl.h>
-#include <inttypes.h>
-#include <limits.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <unistd.h>
-
-COPY_FILE_RANGE_DECL
-ssize_t
-COPY_FILE_RANGE (int infd, __off64_t *pinoff,
- int outfd, __off64_t *poutoff,
- size_t length, unsigned int flags)
-{
- if (flags != 0)
- {
- __set_errno (EINVAL);
- return -1;
- }
-
- {
- struct stat64 instat;
- struct stat64 outstat;
- if (fstat64 (infd, &instat) != 0 || fstat64 (outfd, &outstat) != 0)
- return -1;
- if (S_ISDIR (instat.st_mode) || S_ISDIR (outstat.st_mode))
- {
- __set_errno (EISDIR);
- return -1;
- }
- if (!S_ISREG (instat.st_mode) || !S_ISREG (outstat.st_mode))
- {
- /* We need a regular input file so that the we can seek
- backwards in case of a write failure. */
- __set_errno (EINVAL);
- return -1;
- }
- if (instat.st_dev != outstat.st_dev)
- {
- /* Cross-device copies are not supported. */
- __set_errno (EXDEV);
- return -1;
- }
- }
-
- /* The output descriptor must not have O_APPEND set. */
- {
- int flags = __fcntl (outfd, F_GETFL);
- if (flags & O_APPEND)
- {
- __set_errno (EBADF);
- return -1;
- }
- }
-
- /* Avoid an overflow in the result. */
- if (length > SSIZE_MAX)
- length = SSIZE_MAX;
-
- /* Main copying loop. The buffer size is arbitrary and is a
- trade-off between stack size consumption, cache usage, and
- amortization of system call overhead. */
- size_t copied = 0;
- char buf[8192];
- while (length > 0)
- {
- size_t to_read = length;
- if (to_read > sizeof (buf))
- to_read = sizeof (buf);
-
- /* Fill the buffer. */
- ssize_t read_count;
- if (pinoff == NULL)
- read_count = read (infd, buf, to_read);
- else
- read_count = __libc_pread64 (infd, buf, to_read, *pinoff);
- if (read_count == 0)
- /* End of file reached prematurely. */
- return copied;
- if (read_count < 0)
- {
- if (copied > 0)
- /* Report the number of bytes copied so far. */
- return copied;
- return -1;
- }
- if (pinoff != NULL)
- *pinoff += read_count;
-
- /* Write the buffer part which was read to the destination. */
- char *end = buf + read_count;
- for (char *p = buf; p < end; )
- {
- ssize_t write_count;
- if (poutoff == NULL)
- write_count = write (outfd, p, end - p);
- else
- write_count = __libc_pwrite64 (outfd, p, end - p, *poutoff);
- if (write_count < 0)
- {
- /* Adjust the input read position to match what we have
- written, so that the caller can pick up after the
- error. */
- size_t written = p - buf;
- /* NB: This needs to be signed so that we can form the
- negative value below. */
- ssize_t overread = read_count - written;
- if (pinoff == NULL)
- {
- if (overread > 0)
- {
- /* We are on an error recovery path, so we
- cannot deal with failure here. */
- int save_errno = errno;
- (void) __libc_lseek64 (infd, -overread, SEEK_CUR);
- __set_errno (save_errno);
- }
- }
- else /* pinoff != NULL */
- *pinoff -= overread;
-
- if (copied + written > 0)
- /* Report the number of bytes copied so far. */
- return copied + written;
- return -1;
- }
- p += write_count;
- if (poutoff != NULL)
- *poutoff += write_count;
- } /* Write loop. */
-
- copied += read_count;
- length -= read_count;
- }
- return copied;
-}
diff --git a/io/copy_file_range.c b/io/copy_file_range.c
index 98bff8bd26..2065ee153f 100644
--- a/io/copy_file_range.c
+++ b/io/copy_file_range.c
@@ -1,5 +1,5 @@
-/* Generic implementation of copy_file_range.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+/* Stub implementation of copy_file_range.
+ Copyright (C) 2017-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
@@ -14,9 +14,17 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#define COPY_FILE_RANGE_DECL
-#define COPY_FILE_RANGE copy_file_range
+#include <errno.h>
+#include <unistd.h>
-#include <io/copy_file_range-compat.c>
+ssize_t
+copy_file_range (int infd, __off64_t *pinoff,
+ int outfd, __off64_t *poutoff,
+ size_t length, unsigned int flags)
+{
+ __set_errno (ENOSYS);
+ return -1;
+}
+stub_warning (copy_file_range)
diff --git a/io/creat.c b/io/creat.c
index 21ee56ebc9..8e4f0cf2c4 100644
--- a/io/creat.c
+++ b/io/creat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fcntl.h>
#include <sys/types.h>
@@ -27,6 +27,3 @@ creat (const char *file, mode_t mode)
{
return __open (file, O_WRONLY|O_CREAT|O_TRUNC, mode);
}
-
-/* __open handles cancellation. */
-LIBC_CANCEL_HANDLED ();
diff --git a/io/creat64.c b/io/creat64.c
index f515b654ae..5f81d9fe11 100644
--- a/io/creat64.c
+++ b/io/creat64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fcntl.h>
#include <sys/types.h>
diff --git a/io/dup.c b/io/dup.c
index 77f40b0256..e4b5f851e9 100644
--- a/io/dup.c
+++ b/io/dup.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/io/dup2.c b/io/dup2.c
index a3a99e7dcf..573765ff1b 100644
--- a/io/dup2.c
+++ b/io/dup2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/io/dup3.c b/io/dup3.c
index 590ec0150d..81deff5059 100644
--- a/io/dup3.c
+++ b/io/dup3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/io/euidaccess.c b/io/euidaccess.c
index 7138b22575..b7165f42fb 100644
--- a/io/euidaccess.c
+++ b/io/euidaccess.c
@@ -1,5 +1,5 @@
/* Test for access to FILE using effective UID and GID. Stub version.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/io/faccessat.c b/io/faccessat.c
index e307b1360f..72b2e169f6 100644
--- a/io/faccessat.c
+++ b/io/faccessat.c
@@ -1,5 +1,5 @@
/* Test for access to file, relative to open directory. Stub version.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/io/fchdir.c b/io/fchdir.c
index 4726e1b154..d4bc840663 100644
--- a/io/fchdir.c
+++ b/io/fchdir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/io/fchmod.c b/io/fchmod.c
index 75bf5b7b97..814ed73993 100644
--- a/io/fchmod.c
+++ b/io/fchmod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/io/fchmodat.c b/io/fchmodat.c
index 271d415409..61c33f2591 100644
--- a/io/fchmodat.c
+++ b/io/fchmodat.c
@@ -1,5 +1,5 @@
/* Change the protections of file relative to open directory. Stub version.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/io/fchown.c b/io/fchown.c
index f6ae6d0123..48cd05bf2f 100644
--- a/io/fchown.c
+++ b/io/fchown.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/io/fchownat.c b/io/fchownat.c
index 4cd03b813b..2d5f454fc1 100644
--- a/io/fchownat.c
+++ b/io/fchownat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/io/fcntl.c b/io/fcntl.c
index d8a01a7d52..602c76436b 100644
--- a/io/fcntl.c
+++ b/io/fcntl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/io/fcntl.h b/io/fcntl.h
index 6b0e9fa1fa..1ccc040946 100644
--- a/io/fcntl.h
+++ b/io/fcntl.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* POSIX Standard: 6.5 File Control Operations <fcntl.h>
@@ -161,6 +161,7 @@ typedef __pid_t pid_t;
# define AT_STATX_SYNC_AS_STAT 0x0000
# define AT_STATX_FORCE_SYNC 0x2000
# define AT_STATX_DONT_SYNC 0x4000
+# define AT_RECURSIVE 0x8000 /* Apply to the entire subtree. */
# endif
# define AT_EACCESS 0x200 /* Test access permitted for
effective IDs, not real IDs. */
diff --git a/io/fcntl64.c b/io/fcntl64.c
index f4e6809abc..2c8b594184 100644
--- a/io/fcntl64.c
+++ b/io/fcntl64.c
@@ -1,5 +1,5 @@
/* Manipulate file descriptor. Stub LFS version.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/io/flock.c b/io/flock.c
index 8e578d54ab..ed9450c6a5 100644
--- a/io/flock.c
+++ b/io/flock.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/file.h>
diff --git a/io/fstat.c b/io/fstat.c
index 1cb59f3a59..0afec08fc6 100644
--- a/io/fstat.c
+++ b/io/fstat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/stat.h>
diff --git a/io/fstat64.c b/io/fstat64.c
index 0f4de02cee..3fe218a086 100644
--- a/io/fstat64.c
+++ b/io/fstat64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/stat.h>
diff --git a/io/fstatat.c b/io/fstatat.c
index 3a7ba20076..4bf7ac2c78 100644
--- a/io/fstatat.c
+++ b/io/fstatat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/stat.h>
diff --git a/io/fstatat64.c b/io/fstatat64.c
index f4f46a9574..d9747bfd59 100644
--- a/io/fstatat64.c
+++ b/io/fstatat64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/stat.h>
diff --git a/io/fstatfs.c b/io/fstatfs.c
index a1c7c5a0d1..b6a9addbf5 100644
--- a/io/fstatfs.c
+++ b/io/fstatfs.c
@@ -1,5 +1,5 @@
/* Return information about the filesystem on which FD resides.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/statfs.h>
diff --git a/io/fstatfs64.c b/io/fstatfs64.c
index 3f4d889368..62dc69f408 100644
--- a/io/fstatfs64.c
+++ b/io/fstatfs64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/statfs.h>
diff --git a/io/fstatvfs.c b/io/fstatvfs.c
index 26b4a5086e..9326666cae 100644
--- a/io/fstatvfs.c
+++ b/io/fstatvfs.c
@@ -1,5 +1,5 @@
/* Return information about the filesystem on which FD resides.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/statvfs.h>
diff --git a/io/fstatvfs64.c b/io/fstatvfs64.c
index f44f18a615..cbd73ff5d6 100644
--- a/io/fstatvfs64.c
+++ b/io/fstatvfs64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/statvfs.h>
diff --git a/io/fts.c b/io/fts.c
index ad9d333f45..9a1ee5ed26 100644
--- a/io/fts.c
+++ b/io/fts.c
@@ -1,5 +1,5 @@
/* File tree traversal functions.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*-
* Copyright (c) 1990, 1993, 1994
diff --git a/io/fts.h b/io/fts.h
index 71dc53958b..0024ac7dca 100644
--- a/io/fts.h
+++ b/io/fts.h
@@ -1,5 +1,5 @@
/* File tree traversal functions declarations.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* Copyright (c) 1989, 1993
diff --git a/io/fts64.c b/io/fts64.c
index 539110c1a0..42b970db86 100644
--- a/io/fts64.c
+++ b/io/fts64.c
@@ -1,5 +1,5 @@
/* File tree traversal functions LFS version.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define FTS_OPEN fts64_open
#define FTS_CLOSE fts64_close
diff --git a/io/ftw.c b/io/ftw.c
index f6ecbe7d90..98f8a828cc 100644
--- a/io/ftw.c
+++ b/io/ftw.c
@@ -1,5 +1,5 @@
/* File tree walker functions.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
@@ -423,10 +423,12 @@ process_entry (struct ftw_data *data, struct dir_data *dir, const char *name,
result = -1;
else if (data->flags & FTW_PHYS)
flag = FTW_NS;
- else if (d_type == DT_LNK)
- flag = FTW_SLN;
else
{
+ /* Old code left ST undefined for dangling DT_LNK without
+ FTW_PHYS set; a clarification at the POSIX level suggests
+ it should contain information about the link (ala lstat).
+ We do our best to fill in what data we can. */
if (dir->streamfd != -1)
statres = FXSTATAT (_STAT_VER, dir->streamfd, name, &st,
AT_SYMLINK_NOFOLLOW);
diff --git a/io/ftw.h b/io/ftw.h
index 9679acb9bd..640118078f 100644
--- a/io/ftw.h
+++ b/io/ftw.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* X/Open Portability Guide 4.2: ftw.h
diff --git a/io/ftw64.c b/io/ftw64.c
index 1f6bcdfff7..f6395364d4 100644
--- a/io/ftw64.c
+++ b/io/ftw64.c
@@ -1,5 +1,5 @@
/* File tree walker functions. LFS version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define FTW_NAME ftw64
#define NFTW_NAME nftw64
diff --git a/io/ftwtest-sh b/io/ftwtest-sh
index 822d4903f6..9f539cd42f 100644
--- a/io/ftwtest-sh
+++ b/io/ftwtest-sh
@@ -1,6 +1,6 @@
#!/bin/sh
# Test for nftw(3).
-# Copyright (C) 1997-2018 Free Software Foundation, Inc.
+# Copyright (C) 1997-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
@@ -15,7 +15,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
set -e
diff --git a/io/futimens.c b/io/futimens.c
index fb170ffc3c..3babb977f8 100644
--- a/io/futimens.c
+++ b/io/futimens.c
@@ -1,5 +1,5 @@
/* Change access and modification times of open file. Stub version.
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/io/fxstat.c b/io/fxstat.c
index f7cb8f9dd2..150aa5a88b 100644
--- a/io/fxstat.c
+++ b/io/fxstat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/io/fxstat64.c b/io/fxstat64.c
index 4d899a6990..6e6f82caec 100644
--- a/io/fxstat64.c
+++ b/io/fxstat64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/io/fxstatat.c b/io/fxstatat.c
index 7f793e1453..9592f9d14d 100644
--- a/io/fxstatat.c
+++ b/io/fxstatat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/io/fxstatat64.c b/io/fxstatat64.c
index 41104a8ee0..c9399cc477 100644
--- a/io/fxstatat64.c
+++ b/io/fxstatat64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/io/getcwd.c b/io/getcwd.c
index e6b8b6e6e5..98e8cc164a 100644
--- a/io/getcwd.c
+++ b/io/getcwd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
@@ -32,6 +32,7 @@ __getcwd (char *buf, size_t size)
__set_errno (ENOSYS);
return NULL;
}
+libc_hidden_def (__getcwd)
weak_alias (__getcwd, getcwd)
stub_warning (__getcwd)
diff --git a/io/getdirname.c b/io/getdirname.c
index 8456b3e085..849f3e7354 100644
--- a/io/getdirname.c
+++ b/io/getdirname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <include/sys/stat.h>
diff --git a/io/getwd.c b/io/getwd.c
index e5c4dd32c6..d9852f14a4 100644
--- a/io/getwd.c
+++ b/io/getwd.c
@@ -1,5 +1,5 @@
/* Obsolete function to get current working directory.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <limits.h>
diff --git a/io/isatty.c b/io/isatty.c
index 3d28276a1d..ace97cca80 100644
--- a/io/isatty.c
+++ b/io/isatty.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/io/lchmod.c b/io/lchmod.c
index bdf3232b37..f1a80a8f3c 100644
--- a/io/lchmod.c
+++ b/io/lchmod.c
@@ -1,5 +1,5 @@
/* lchmod -- Change the protections of a file or symbolic link. Stub version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/stat.h>
diff --git a/io/lchown.c b/io/lchown.c
index 0b564702f7..498e659b57 100644
--- a/io/lchown.c
+++ b/io/lchown.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/io/link.c b/io/link.c
index 82e2048cfb..041e9d0e09 100644
--- a/io/link.c
+++ b/io/link.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/io/linkat.c b/io/linkat.c
index 8d7b1267dd..8f81a0dfce 100644
--- a/io/linkat.c
+++ b/io/linkat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/io/lockf.c b/io/lockf.c
index 68a799d54c..8cc83dcc0b 100644
--- a/io/lockf.c
+++ b/io/lockf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -13,36 +13,28 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-/* We need to avoid the header declaration of lockf64, because
- the types don't match lockf and then the compiler will
- complain about the mismatch when we do the alias below. */
-#define lockf64 __renamed_lockf64
+#ifndef __OFF_T_MATCHES_OFF64_T
-#include <fcntl.h>
-
-#undef lockf64
-
-#include <sys/types.h>
#include <unistd.h>
+#include <fcntl.h>
#include <errno.h>
-#include <string.h>
/* lockf is a simplified interface to fcntl's locking facilities. */
-
int
lockf (int fd, int cmd, off_t len)
{
- struct flock fl;
-
- memset ((char *) &fl, '\0', sizeof (fl));
-
/* lockf is always relative to the current file position. */
- fl.l_whence = SEEK_CUR;
- fl.l_start = 0;
- fl.l_len = len;
+ struct flock fl = {
+ .l_type = F_WRLCK,
+ .l_whence = SEEK_CUR,
+ .l_len = len
+ };
+ /* lockf() is a cancellation point but so is fcntl() if F_SETLKW is
+ used. Therefore we don't have to care about cancellation here,
+ the fcntl() function will take care of it. */
switch (cmd)
{
case F_TEST:
@@ -55,31 +47,15 @@ lockf (int fd, int cmd, off_t len)
return 0;
__set_errno (EACCES);
return -1;
-
case F_ULOCK:
fl.l_type = F_UNLCK;
- cmd = F_SETLK;
- break;
+ return __fcntl (fd, F_SETLK, &fl);
case F_LOCK:
- fl.l_type = F_WRLCK;
- cmd = F_SETLKW;
- break;
+ return __fcntl (fd, F_SETLKW, &fl);
case F_TLOCK:
- fl.l_type = F_WRLCK;
- cmd = F_SETLK;
- break;
-
- default:
- __set_errno (EINVAL);
- return -1;
+ return __fcntl (fd, F_SETLK, &fl);
}
-
- /* lockf() is a cancellation point but so is fcntl() if F_SETLKW is
- used. Therefore we don't have to care about cancellation here,
- the fcntl() function will take care of it. */
- return __fcntl (fd, cmd, &fl);
+ __set_errno (EINVAL);
+ return -1;
}
-
-#ifdef __OFF_T_MATCHES_OFF64_T
-weak_alias (lockf, lockf64)
#endif
diff --git a/io/lockf64.c b/io/lockf64.c
index 334b8d3180..fcbca33ae3 100644
--- a/io/lockf64.c
+++ b/io/lockf64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -13,71 +13,50 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#include <sys/types.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
-#include <string.h>
-
-/* lockf.c defines lockf64 as an alias if __OFF_T_MATCHES_OFF64_T. */
-#ifndef __OFF_T_MATCHES_OFF64_T
/* lockf is a simplified interface to fcntl's locking facilities. */
-
int
-lockf64 (int fd, int cmd, off64_t len64)
+__lockf64 (int fd, int cmd, off64_t len64)
{
- struct flock fl;
- off_t len = (off_t) len64;
-
- if (len64 != (off64_t) len)
- {
- /* We can't represent the length. */
- __set_errno (EOVERFLOW);
- return -1;
- }
-
- memset ((char *) &fl, '\0', sizeof (fl));
-
/* lockf is always relative to the current file position. */
- fl.l_whence = SEEK_CUR;
- fl.l_start = 0;
- fl.l_len = len;
-
+ struct flock64 fl64 = {
+ .l_type = F_WRLCK,
+ .l_whence = SEEK_CUR,
+ .l_len = len64,
+ };
+
+ /* lockf() is a cancellation point but so is fcntl() if F_SETLKW is
+ used. Therefore we don't have to care about cancellation here,
+ the fcntl() function will take care of it. */
switch (cmd)
{
case F_TEST:
/* Test the lock: return 0 if FD is unlocked or locked by this process;
return -1, set errno to EACCES, if another process holds the lock. */
- fl.l_type = F_RDLCK;
- if (__fcntl (fd, F_GETLK, &fl) < 0)
+ fl64.l_type = F_RDLCK;
+ if (__fcntl (fd, F_GETLK64, &fl64) < 0)
return -1;
- if (fl.l_type == F_UNLCK || fl.l_pid == __getpid ())
- return 0;
+ if (fl64.l_type == F_UNLCK || fl64.l_pid == __getpid ())
+ return 0;
__set_errno (EACCES);
return -1;
-
case F_ULOCK:
- fl.l_type = F_UNLCK;
- cmd = F_SETLK;
- break;
+ fl64.l_type = F_UNLCK;
+ return __fcntl64 (fd, F_SETLK64, &fl64);
case F_LOCK:
- fl.l_type = F_WRLCK;
- cmd = F_SETLKW;
- break;
+ return __fcntl64 (fd, F_SETLKW64, &fl64);
case F_TLOCK:
- fl.l_type = F_WRLCK;
- cmd = F_SETLK;
- break;
-
- default:
- __set_errno (EINVAL);
- return -1;
+ return __fcntl64 (fd, F_SETLK64, &fl64);
}
-
- return __fcntl (fd, cmd, &fl);
+ __set_errno (EINVAL);
+ return -1;
}
-
+weak_alias (__lockf64, lockf64)
+#ifdef __OFF_T_MATCHES_OFF64_T
+weak_alias (lockf64, lockf)
#endif
diff --git a/io/lseek.c b/io/lseek.c
index cb702c3e87..581e198ce7 100644
--- a/io/lseek.c
+++ b/io/lseek.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/io/lseek64.c b/io/lseek64.c
index 2c756ef36e..c278e3c4fd 100644
--- a/io/lseek64.c
+++ b/io/lseek64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/io/lstat.c b/io/lstat.c
index c26688f48f..48929b0237 100644
--- a/io/lstat.c
+++ b/io/lstat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/stat.h>
diff --git a/io/lstat64.c b/io/lstat64.c
index c3eb7a76f5..56db4e5018 100644
--- a/io/lstat64.c
+++ b/io/lstat64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/stat.h>
diff --git a/io/lxstat.c b/io/lxstat.c
index 69f976c33e..f14684ffa2 100644
--- a/io/lxstat.c
+++ b/io/lxstat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/stat.h>
diff --git a/io/lxstat64.c b/io/lxstat64.c
index 3298806e2e..c91d1ed8bd 100644
--- a/io/lxstat64.c
+++ b/io/lxstat64.c
@@ -1,5 +1,5 @@
/* lxstat64 -- get file metadata, not following symlinks. Stub version.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/io/mkdir.c b/io/mkdir.c
index 2b43cab26a..bdeaf1a10a 100644
--- a/io/mkdir.c
+++ b/io/mkdir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/io/mkdirat.c b/io/mkdirat.c
index bfee3e9a63..63058bdc97 100644
--- a/io/mkdirat.c
+++ b/io/mkdirat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/io/mkfifo.c b/io/mkfifo.c
index c2796ab2fa..345275a4d0 100644
--- a/io/mkfifo.c
+++ b/io/mkfifo.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/io/mkfifoat.c b/io/mkfifoat.c
index 3bfff5b402..0132f22122 100644
--- a/io/mkfifoat.c
+++ b/io/mkfifoat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/io/mknod.c b/io/mknod.c
index fcbfd919fb..92902bbae5 100644
--- a/io/mknod.c
+++ b/io/mknod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
diff --git a/io/mknodat.c b/io/mknodat.c
index 2707972b7f..9019573ef0 100644
--- a/io/mknodat.c
+++ b/io/mknodat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
diff --git a/io/open.c b/io/open.c
index bcdd650f27..294dcdfc70 100644
--- a/io/open.c
+++ b/io/open.c
@@ -1,5 +1,5 @@
/* Open a file by name. Stub version.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/io/open64.c b/io/open64.c
index 0d14f0c6a7..45deedf3ab 100644
--- a/io/open64.c
+++ b/io/open64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/io/open64_2.c b/io/open64_2.c
index 3f1e9c29da..68f52b8bde 100644
--- a/io/open64_2.c
+++ b/io/open64_2.c
@@ -1,5 +1,5 @@
/* _FORTIFY_SOURCE wrapper for open64.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fcntl.h>
#include <stdio.h>
diff --git a/io/open_2.c b/io/open_2.c
index 7513132977..6014a35fe4 100644
--- a/io/open_2.c
+++ b/io/open_2.c
@@ -1,5 +1,5 @@
/* _FORTIFY_SOURCE wrapper for open.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fcntl.h>
#include <stdio.h>
diff --git a/io/openat.c b/io/openat.c
index c4571f7d7d..92fcacb818 100644
--- a/io/openat.c
+++ b/io/openat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/io/openat64.c b/io/openat64.c
index 81dd615ce4..ec9f65245f 100644
--- a/io/openat64.c
+++ b/io/openat64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/io/openat64_2.c b/io/openat64_2.c
index 4a62963e33..38a06ce194 100644
--- a/io/openat64_2.c
+++ b/io/openat64_2.c
@@ -1,5 +1,5 @@
/* _FORTIFY_SOURCE wrapper for openat64.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fcntl.h>
#include <stdio.h>
diff --git a/io/openat_2.c b/io/openat_2.c
index 41883df80b..b76bb49bb3 100644
--- a/io/openat_2.c
+++ b/io/openat_2.c
@@ -1,5 +1,5 @@
/* _FORTIFY_SOURCE wrapper for openat.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fcntl.h>
#include <stdio.h>
diff --git a/io/pipe.c b/io/pipe.c
index 8694934053..9542aefbbf 100644
--- a/io/pipe.c
+++ b/io/pipe.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/io/pipe2.c b/io/pipe2.c
index 0eee916481..a9eefe4585 100644
--- a/io/pipe2.c
+++ b/io/pipe2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/io/poll.c b/io/poll.c
index dfdce0f783..a0b2997a41 100644
--- a/io/poll.c
+++ b/io/poll.c
@@ -1,5 +1,5 @@
/* Poll (or wait) for file descriptor I/O availability. Stub version.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/poll.h>
#include <errno.h>
diff --git a/io/posix_fadvise.c b/io/posix_fadvise.c
index f7b6ea01f3..5b671f0873 100644
--- a/io/posix_fadvise.c
+++ b/io/posix_fadvise.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/io/posix_fadvise64.c b/io/posix_fadvise64.c
index 842cdf4e83..baf7d3290c 100644
--- a/io/posix_fadvise64.c
+++ b/io/posix_fadvise64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/io/posix_fallocate.c b/io/posix_fallocate.c
index da858f8030..e2b31c4a50 100644
--- a/io/posix_fallocate.c
+++ b/io/posix_fallocate.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/io/posix_fallocate64.c b/io/posix_fallocate64.c
index da24c2ca3f..95ecae1d43 100644
--- a/io/posix_fallocate64.c
+++ b/io/posix_fallocate64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/io/ppoll.c b/io/ppoll.c
index ec26b99fee..6d156a8a46 100644
--- a/io/ppoll.c
+++ b/io/ppoll.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2006.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <limits.h>
@@ -22,6 +22,7 @@
#include <stddef.h> /* For NULL. */
#include <sys/poll.h>
#include <sysdep-cancel.h>
+#include <time.h>
int
@@ -33,8 +34,7 @@ ppoll (struct pollfd *fds, nfds_t nfds, const struct timespec *timeout,
/* poll uses a simple millisecond value. Convert it. */
if (timeout != NULL)
{
- if (timeout->tv_sec < 0
- || timeout->tv_nsec < 0 || timeout->tv_nsec >= 1000000000)
+ if (timeout->tv_sec < 0 || ! valid_nanoseconds (timeout->tv_nsec))
{
__set_errno (EINVAL);
return -1;
@@ -70,7 +70,5 @@ ppoll (struct pollfd *fds, nfds_t nfds, const struct timespec *timeout,
}
#ifndef ppoll
-/* __poll handles cancellation. */
-LIBC_CANCEL_HANDLED ();
libc_hidden_def (ppoll);
#endif
diff --git a/io/pwd.c b/io/pwd.c
index 2e06dec03e..2ae01ceedb 100644
--- a/io/pwd.c
+++ b/io/pwd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <mcheck.h>
#include <stdio.h>
diff --git a/io/read.c b/io/read.c
index 6b8876952c..259f21e3c2 100644
--- a/io/read.c
+++ b/io/read.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/io/readlink.c b/io/readlink.c
index c390405841..cf2a9dfe90 100644
--- a/io/readlink.c
+++ b/io/readlink.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/io/readlinkat.c b/io/readlinkat.c
index 9f9cd227cf..c6fdbbd3cc 100644
--- a/io/readlinkat.c
+++ b/io/readlinkat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/io/rmdir.c b/io/rmdir.c
index b5db6bee9a..d68a3e3d5b 100644
--- a/io/rmdir.c
+++ b/io/rmdir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/io/sendfile.c b/io/sendfile.c
index 97b579d484..a1261798c7 100644
--- a/io/sendfile.c
+++ b/io/sendfile.c
@@ -1,5 +1,5 @@
/* sendfile -- copy data directly from one file descriptor to another
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/sendfile.h>
#include <errno.h>
diff --git a/io/sendfile64.c b/io/sendfile64.c
index d3fff65dd6..20ddc7a722 100644
--- a/io/sendfile64.c
+++ b/io/sendfile64.c
@@ -1,5 +1,5 @@
/* sendfile -- copy data directly from one file descriptor to another
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/sendfile.h>
#include <errno.h>
diff --git a/io/stat.c b/io/stat.c
index ec53868b63..dbd094167e 100644
--- a/io/stat.c
+++ b/io/stat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/stat.h>
diff --git a/io/stat64.c b/io/stat64.c
index 5020551c0f..1bc2a3dd73 100644
--- a/io/stat64.c
+++ b/io/stat64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/stat.h>
diff --git a/io/statfs.c b/io/statfs.c
index c1996180fc..3755919d05 100644
--- a/io/statfs.c
+++ b/io/statfs.c
@@ -1,5 +1,5 @@
/* statfs -- Return information about the filesystem on which FILE resides.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/statfs.h>
diff --git a/io/statfs64.c b/io/statfs64.c
index 17121aea65..a8ff3cba46 100644
--- a/io/statfs64.c
+++ b/io/statfs64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/statfs.h>
diff --git a/io/statvfs.c b/io/statvfs.c
index 1b6b7bf6fd..aa9062c6ab 100644
--- a/io/statvfs.c
+++ b/io/statvfs.c
@@ -1,5 +1,5 @@
/* Return information about the filesystem on which FILE resides.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/statvfs.h>
diff --git a/io/statvfs64.c b/io/statvfs64.c
index bba8de658f..ea99092e7d 100644
--- a/io/statvfs64.c
+++ b/io/statvfs64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/statvfs.h>
diff --git a/io/statx.c b/io/statx.c
index 0b90cd00d1..dcc9110641 100644
--- a/io/statx.c
+++ b/io/statx.c
@@ -1,5 +1,5 @@
/* Generic statx implementation.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/stat.h>
diff --git a/io/statx_generic.c b/io/statx_generic.c
index df327f8c52..6416bc8251 100644
--- a/io/statx_generic.c
+++ b/io/statx_generic.c
@@ -1,5 +1,5 @@
/* Generic implementation of statx based on fstatat64.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,13 +14,20 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
+#include <string.h>
#include <sys/stat.h>
#include <sys/sysmacros.h>
+/* Obtain the original definition of struct statx. */
+#undef __statx_defined
+#define statx original_statx
+#include <bits/types/struct_statx.h>
+#undef statx
+
static inline struct statx_timestamp
statx_convert_timestamp (struct timespec tv)
{
@@ -57,7 +64,7 @@ statx_generic (int fd, const char *path, int flags,
/* The interface is defined in such a way that unused (padding)
fields have to be cleared. STATX_BASIC_STATS corresponds to the
data which is available via fstatat64. */
- *buf = (struct statx)
+ struct original_statx obuf =
{
.stx_mask = STATX_BASIC_STATS,
.stx_blksize = st.st_blksize,
@@ -76,6 +83,8 @@ statx_generic (int fd, const char *path, int flags,
.stx_dev_major = major (st.st_dev),
.stx_dev_minor = minor (st.st_dev),
};
+ _Static_assert (sizeof (*buf) >= sizeof (obuf), "struct statx size");
+ memcpy (buf, &obuf, sizeof (obuf));
return 0;
}
diff --git a/io/symlink.c b/io/symlink.c
index f15a92a51a..4e5cebea91 100644
--- a/io/symlink.c
+++ b/io/symlink.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/io/symlinkat.c b/io/symlinkat.c
index 4a149292b9..3f72898d61 100644
--- a/io/symlinkat.c
+++ b/io/symlinkat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/io/sys/poll.h b/io/sys/poll.h
index 68f68ca412..9d2e44da73 100644
--- a/io/sys/poll.h
+++ b/io/sys/poll.h
@@ -1,5 +1,5 @@
/* Compatibility definitions for System V `poll' interface.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_POLL_H
#define _SYS_POLL_H 1
diff --git a/io/sys/sendfile.h b/io/sys/sendfile.h
index 75b9d3238b..e9b1482ede 100644
--- a/io/sys/sendfile.h
+++ b/io/sys/sendfile.h
@@ -1,5 +1,5 @@
/* sendfile -- copy data directly from one file descriptor to another
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_SENDFILE_H
#define _SYS_SENDFILE_H 1
diff --git a/io/sys/stat.h b/io/sys/stat.h
index 762c8538ba..9cfe9caf6f 100644
--- a/io/sys/stat.h
+++ b/io/sys/stat.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* POSIX Standard: 5.6 File Characteristics <sys/stat.h>
diff --git a/io/sys/statfs.h b/io/sys/statfs.h
index 1bd0513bc6..a032f34eec 100644
--- a/io/sys/statfs.h
+++ b/io/sys/statfs.h
@@ -1,5 +1,5 @@
/* Definitions for getting information about a filesystem.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_STATFS_H
#define _SYS_STATFS_H 1
diff --git a/io/sys/statvfs.h b/io/sys/statvfs.h
index b33bdab898..27e5ca1919 100644
--- a/io/sys/statvfs.h
+++ b/io/sys/statvfs.h
@@ -1,5 +1,5 @@
/* Definitions for getting information about a filesystem.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_STATVFS_H
#define _SYS_STATVFS_H 1
diff --git a/io/test-lfs.c b/io/test-lfs.c
index f7721a5995..9e7d22a289 100644
--- a/io/test-lfs.c
+++ b/io/test-lfs.c
@@ -1,5 +1,5 @@
/* Some basic tests for LFS.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <stdlib.h>
@@ -25,6 +25,7 @@
#include <error.h>
#include <errno.h>
#include <sys/resource.h>
+#include <support/check.h>
/* Prototype for our test function. */
extern void do_prepare (int argc, char *argv[]);
@@ -33,9 +34,6 @@ extern int do_test (int argc, char *argv[]);
/* We have a preparation function. */
#define PREPARE do_prepare
-/* We might need a bit longer timeout. */
-#define TIMEOUT 20 /* sec */
-
/* This defines the `main' function and some more. */
#include <test-skeleton.c>
@@ -70,6 +68,8 @@ do_prepare (int argc, char *argv[])
else
error (EXIT_FAILURE, errno, "cannot create temporary file");
}
+ if (!support_descriptor_supports_holes (fd))
+ FAIL_UNSUPPORTED ("File %s does not support holes", name);
add_temp_file (name);
if (getrlimit64 (RLIMIT_FSIZE, &rlim) != 0)
diff --git a/io/test-stat.c b/io/test-stat.c
index 841759c17a..0d7fee3b0c 100644
--- a/io/test-stat.c
+++ b/io/test-stat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Maciej W. Rozycki <macro@ds2.pg.gda.pl>, 2000.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* We need to define:
#define _FILE_OFFSET_BITS 64
diff --git a/io/test-stat2.c b/io/test-stat2.c
index 35550ab201..fb8ba7cc77 100644
--- a/io/test-stat2.c
+++ b/io/test-stat2.c
@@ -1,5 +1,5 @@
/* Test consistence of results of stat and stat64.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdint.h>
diff --git a/io/test-utime.c b/io/test-utime.c
index 0ab778e374..649327f7ec 100644
--- a/io/test-utime.c
+++ b/io/test-utime.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fcntl.h>
#include <stdint.h>
diff --git a/io/tst-copy_file_range-compat.c b/io/tst-copy_file_range-compat.c
deleted file mode 100644
index 00c109a74d..0000000000
--- a/io/tst-copy_file_range-compat.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Test the fallback implementation of copy_file_range.
- Copyright (C) 2017-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-/* Get the declaration of the official copy_of_range function. */
-#include <unistd.h>
-
-/* Compile a local version of copy_file_range. */
-#define COPY_FILE_RANGE_DECL static
-#define COPY_FILE_RANGE copy_file_range_compat
-#include <io/copy_file_range-compat.c>
-
-/* Re-use the test, but run it against copy_file_range_compat defined
- above. */
-#define copy_file_range copy_file_range_compat
-#include "tst-copy_file_range.c"
diff --git a/io/tst-copy_file_range.c b/io/tst-copy_file_range.c
index 3d531a1937..0cf0674193 100644
--- a/io/tst-copy_file_range.c
+++ b/io/tst-copy_file_range.c
@@ -1,5 +1,5 @@
/* Tests for copy_file_range.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,28 +14,21 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <array_length.h>
#include <errno.h>
#include <fcntl.h>
#include <inttypes.h>
-#include <libgen.h>
-#include <poll.h>
-#include <sched.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <support/check.h>
-#include <support/namespace.h>
#include <support/support.h>
#include <support/temp_file.h>
#include <support/test-driver.h>
#include <support/xunistd.h>
-#ifdef CLONE_NEWNS
-# include <sys/mount.h>
-#endif
/* Boolean flags which indicate whether to use pointers with explicit
output flags. */
@@ -49,10 +42,6 @@ static int infd;
static char *outfile;
static int outfd;
-/* Like the above, but on a different file system. xdevfile can be
- NULL if no suitable file system has been found. */
-static char *xdevfile;
-
/* Input and output offsets. Set according to do_inoff and do_outoff
before the test. The offsets themselves are always set to
zero. */
@@ -61,13 +50,10 @@ static off64_t *pinoff;
static off64_t outoff;
static off64_t *poutoff;
-/* These are a collection of copy sizes used in tests. The selection
- takes into account that the fallback implementation uses an
- internal buffer of 8192 bytes. */
+/* These are a collection of copy sizes used in tests. */
enum { maximum_size = 99999 };
static const int typical_sizes[] =
- { 0, 1, 2, 3, 1024, 2048, 4096, 8191, 8192, 8193, 16383, 16384, 16385,
- maximum_size };
+ { 0, 1, 2, 3, 1024, 2048, 4096, 8191, 8192, 8193, maximum_size };
/* The random contents of this array can be used as a pattern to check
for correct write operations. */
@@ -76,101 +62,6 @@ static unsigned char random_data[maximum_size];
/* The size chosen by the test harness. */
static int current_size;
-/* Maximum writable file offset. Updated by find_maximum_offset
- below. */
-static off64_t maximum_offset;
-
-/* Error code when crossing the offset. */
-static int maximum_offset_errno;
-
-/* If true: Writes which cross the limit will fail. If false: Writes
- which cross the limit will result in a partial write. */
-static bool maximum_offset_hard_limit;
-
-/* Fills maximum_offset etc. above. Truncates outfd as a side
- effect. */
-static void
-find_maximum_offset (void)
-{
- xftruncate (outfd, 0);
- if (maximum_offset != 0)
- return;
-
- uint64_t upper = -1;
- upper >>= 1; /* Maximum of off64_t. */
- TEST_VERIFY ((off64_t) upper > 0);
- TEST_VERIFY ((off64_t) (upper + 1) < 0);
- if (lseek64 (outfd, upper, SEEK_SET) >= 0)
- {
- if (write (outfd, "", 1) == 1)
- FAIL_EXIT1 ("created a file larger than the off64_t range");
- }
-
- uint64_t lower = 1024 * 1024; /* A reasonable minimum file size. */
- /* Loop invariant: writing at lower succeeds, writing at upper fails. */
- while (lower + 1 < upper)
- {
- uint64_t middle = (lower + upper) / 2;
- if (test_verbose > 0)
- printf ("info: %s: remaining test range %" PRIu64 " .. %" PRIu64
- ", probe at %" PRIu64 "\n", __func__, lower, upper, middle);
- xftruncate (outfd, 0);
- if (lseek64 (outfd, middle, SEEK_SET) >= 0
- && write (outfd, "", 1) == 1)
- lower = middle;
- else
- upper = middle;
- }
- TEST_VERIFY (lower + 1 == upper);
- maximum_offset = lower;
- printf ("info: maximum writable file offset: %" PRIu64 " (%" PRIx64 ")\n",
- lower, lower);
-
- /* Check that writing at the valid offset actually works. */
- xftruncate (outfd, 0);
- xlseek (outfd, lower, SEEK_SET);
- TEST_COMPARE (write (outfd, "", 1), 1);
-
- /* Cross the boundary with a two-byte write. This can either result
- in a short write, or a failure. */
- xlseek (outfd, lower, SEEK_SET);
- ssize_t ret = write (outfd, " ", 2);
- if (ret < 0)
- {
- maximum_offset_errno = errno;
- maximum_offset_hard_limit = true;
- }
- else
- maximum_offset_hard_limit = false;
-
- /* Check that writing at the next offset actually fails. This also
- obtains the expected errno value. */
- xftruncate (outfd, 0);
- const char *action;
- if (lseek64 (outfd, lower + 1, SEEK_SET) != 0)
- {
- if (write (outfd, "", 1) != -1)
- FAIL_EXIT1 ("write to impossible offset %" PRIu64 " succeeded",
- lower + 1);
- action = "writing";
- int errno_copy = errno;
- if (maximum_offset_hard_limit)
- TEST_COMPARE (errno_copy, maximum_offset_errno);
- else
- maximum_offset_errno = errno_copy;
- }
- else
- {
- action = "seeking";
- maximum_offset_errno = errno;
- }
- printf ("info: %s out of range fails with %m (%d)\n",
- action, maximum_offset_errno);
-
- xftruncate (outfd, 0);
- xlseek (outfd, 0, SEEK_SET);
-}
-
/* Perform a copy of a file. */
static void
simple_file_copy (void)
@@ -247,390 +138,6 @@ simple_file_copy (void)
free (bytes);
}
-/* Test that reading from a pipe willfails. */
-static void
-pipe_as_source (void)
-{
- int pipefds[2];
- xpipe (pipefds);
-
- for (int length = 0; length < 2; ++length)
- {
- if (test_verbose > 0)
- printf ("info: %s: length=%d\n", __func__, length);
-
- /* Make sure that there is something to copy in the pipe. */
- xwrite (pipefds[1], "@", 1);
-
- TEST_COMPARE (copy_file_range (pipefds[0], pinoff, outfd, poutoff,
- length, 0), -1);
- /* Linux 4.10 and later return EINVAL. Older kernels return
- EXDEV. */
- TEST_VERIFY (errno == EINVAL || errno == EXDEV);
- TEST_COMPARE (inoff, 0);
- TEST_COMPARE (outoff, 0);
- TEST_COMPARE (xlseek (outfd, 0, SEEK_CUR), 0);
-
- /* Make sure that nothing was read. */
- char buf = 'A';
- TEST_COMPARE (read (pipefds[0], &buf, 1), 1);
- TEST_COMPARE (buf, '@');
- }
-
- xclose (pipefds[0]);
- xclose (pipefds[1]);
-}
-
-/* Test that writing to a pipe fails. */
-static void
-pipe_as_destination (void)
-{
- /* Make sure that there is something to read in the input file. */
- xwrite (infd, "abc", 3);
- xlseek (infd, 0, SEEK_SET);
-
- int pipefds[2];
- xpipe (pipefds);
-
- for (int length = 0; length < 2; ++length)
- {
- if (test_verbose > 0)
- printf ("info: %s: length=%d\n", __func__, length);
-
- TEST_COMPARE (copy_file_range (infd, pinoff, pipefds[1], poutoff,
- length, 0), -1);
- /* Linux 4.10 and later return EINVAL. Older kernels return
- EXDEV. */
- TEST_VERIFY (errno == EINVAL || errno == EXDEV);
- TEST_COMPARE (inoff, 0);
- TEST_COMPARE (outoff, 0);
- TEST_COMPARE (xlseek (infd, 0, SEEK_CUR), 0);
-
- /* Make sure that nothing was written. */
- struct pollfd pollfd = { .fd = pipefds[0], .events = POLLIN, };
- TEST_COMPARE (poll (&pollfd, 1, 0), 0);
- }
-
- xclose (pipefds[0]);
- xclose (pipefds[1]);
-}
-
-/* Test a write failure after (potentially) writing some bytes.
- Failure occurs near the start of the buffer. */
-static void
-delayed_write_failure_beginning (void)
-{
- /* We need to write something to provoke the error. */
- if (current_size == 0)
- return;
- xwrite (infd, random_data, sizeof (random_data));
- xlseek (infd, 0, SEEK_SET);
-
- /* Write failure near the start. The actual error code varies among
- file systems. */
- find_maximum_offset ();
- off64_t where = maximum_offset;
-
- if (current_size == 1)
- ++where;
- outoff = where;
- if (do_outoff)
- xlseek (outfd, 1, SEEK_SET);
- else
- xlseek (outfd, where, SEEK_SET);
- if (maximum_offset_hard_limit || where > maximum_offset)
- {
- TEST_COMPARE (copy_file_range (infd, pinoff, outfd, poutoff,
- sizeof (random_data), 0), -1);
- TEST_COMPARE (errno, maximum_offset_errno);
- TEST_COMPARE (xlseek (infd, 0, SEEK_CUR), 0);
- TEST_COMPARE (inoff, 0);
- if (do_outoff)
- TEST_COMPARE (xlseek (outfd, 0, SEEK_CUR), 1);
- else
- TEST_COMPARE (xlseek (outfd, 0, SEEK_CUR), where);
- TEST_COMPARE (outoff, where);
- struct stat64 st;
- xfstat (outfd, &st);
- TEST_COMPARE (st.st_size, 0);
- }
- else
- {
- /* The offset is not a hard limit. This means we write one
- byte. */
- TEST_COMPARE (copy_file_range (infd, pinoff, outfd, poutoff,
- sizeof (random_data), 0), 1);
- if (do_inoff)
- {
- TEST_COMPARE (inoff, 1);
- TEST_COMPARE (xlseek (infd, 0, SEEK_CUR), 0);
- }
- else
- {
- TEST_COMPARE (xlseek (infd, 0, SEEK_CUR), 1);
- TEST_COMPARE (inoff, 0);
- }
- if (do_outoff)
- {
- TEST_COMPARE (xlseek (outfd, 0, SEEK_CUR), 1);
- TEST_COMPARE (outoff, where + 1);
- }
- else
- {
- TEST_COMPARE (xlseek (outfd, 0, SEEK_CUR), where + 1);
- TEST_COMPARE (outoff, where);
- }
- struct stat64 st;
- xfstat (outfd, &st);
- TEST_COMPARE (st.st_size, where + 1);
- }
-}
-
-/* Test a write failure after (potentially) writing some bytes.
- Failure occurs near the end of the buffer. */
-static void
-delayed_write_failure_end (void)
-{
- if (current_size <= 1)
- /* This would be same as the first test because there is not
- enough data to write to make a difference. */
- return;
- xwrite (infd, random_data, sizeof (random_data));
- xlseek (infd, 0, SEEK_SET);
-
- find_maximum_offset ();
- off64_t where = maximum_offset - current_size + 1;
- if (current_size == sizeof (random_data))
- /* Otherwise we do not reach the non-writable byte. */
- ++where;
- outoff = where;
- if (do_outoff)
- xlseek (outfd, 1, SEEK_SET);
- else
- xlseek (outfd, where, SEEK_SET);
- ssize_t ret = copy_file_range (infd, pinoff, outfd, poutoff,
- sizeof (random_data), 0);
- if (ret < 0)
- {
- TEST_COMPARE (ret, -1);
- TEST_COMPARE (errno, maximum_offset_errno);
- struct stat64 st;
- xfstat (outfd, &st);
- TEST_COMPARE (st.st_size, 0);
- }
- else
- {
- /* The first copy succeeded. This happens in the emulation
- because the internal buffer of limited size does not
- necessarily cross the off64_t boundary on the first write
- operation. */
- if (test_verbose > 0)
- printf ("info: copy_file_range (%zu) returned %zd\n",
- sizeof (random_data), ret);
- TEST_VERIFY (ret > 0);
- TEST_VERIFY (ret < maximum_size);
- struct stat64 st;
- xfstat (outfd, &st);
- TEST_COMPARE (st.st_size, where + ret);
- if (do_inoff)
- {
- TEST_COMPARE (inoff, ret);
- TEST_COMPARE (xlseek (infd, 0, SEEK_CUR), 0);
- }
- else
- TEST_COMPARE (xlseek (infd, 0, SEEK_CUR), ret);
-
- char *buffer = xmalloc (ret);
- TEST_COMPARE (pread64 (outfd, buffer, ret, where), ret);
- TEST_VERIFY (memcmp (buffer, random_data, ret) == 0);
- free (buffer);
-
- /* The second copy fails. */
- TEST_COMPARE (copy_file_range (infd, pinoff, outfd, poutoff,
- sizeof (random_data), 0), -1);
- TEST_COMPARE (errno, maximum_offset_errno);
- }
-}
-
-/* Test a write failure across devices. */
-static void
-cross_device_failure (void)
-{
- if (xdevfile == NULL)
- /* Subtest not supported due to missing cross-device file. */
- return;
-
- /* We need something to write. */
- xwrite (infd, random_data, sizeof (random_data));
- xlseek (infd, 0, SEEK_SET);
-
- int xdevfd = xopen (xdevfile, O_RDWR | O_LARGEFILE, 0);
- TEST_COMPARE (copy_file_range (infd, pinoff, xdevfd, poutoff,
- current_size, 0), -1);
- TEST_COMPARE (errno, EXDEV);
- TEST_COMPARE (xlseek (infd, 0, SEEK_CUR), 0);
- struct stat64 st;
- xfstat (xdevfd, &st);
- TEST_COMPARE (st.st_size, 0);
-
- xclose (xdevfd);
-}
-
-/* Try to exercise ENOSPC behavior with a tempfs file system (so that
- we do not have to fill up a regular file system to get the error).
- This function runs in a subprocess, so that we do not change the
- mount namespace of the actual test process. */
-static void
-enospc_failure_1 (void *closure)
-{
-#ifdef CLONE_NEWNS
- support_become_root ();
-
- /* Make sure that we do not alter the file system mounts of the
- parents. */
- if (! support_enter_mount_namespace ())
- {
- printf ("warning: ENOSPC test skipped\n");
- return;
- }
-
- char *mountpoint = closure;
- if (mount ("none", mountpoint, "tmpfs", MS_NODEV | MS_NOEXEC,
- "size=500k") != 0)
- {
- printf ("warning: could not mount tmpfs at %s: %m\n", mountpoint);
- return;
- }
-
- /* The source file must reside on the same file system. */
- char *intmpfsfile = xasprintf ("%s/%s", mountpoint, "in");
- int intmpfsfd = xopen (intmpfsfile, O_RDWR | O_CREAT | O_LARGEFILE, 0600);
- xwrite (intmpfsfd, random_data, sizeof (random_data));
- xlseek (intmpfsfd, 1, SEEK_SET);
- inoff = 1;
-
- char *outtmpfsfile = xasprintf ("%s/%s", mountpoint, "out");
- int outtmpfsfd = xopen (outtmpfsfile, O_RDWR | O_CREAT | O_LARGEFILE, 0600);
-
- /* Fill the file with data until ENOSPC is reached. */
- while (true)
- {
- ssize_t ret = write (outtmpfsfd, random_data, sizeof (random_data));
- if (ret < 0 && errno != ENOSPC)
- FAIL_EXIT1 ("write to %s: %m", outtmpfsfile);
- if (ret < sizeof (random_data))
- break;
- }
- TEST_COMPARE (write (outtmpfsfd, "", 1), -1);
- TEST_COMPARE (errno, ENOSPC);
- off64_t maxsize = xlseek (outtmpfsfd, 0, SEEK_CUR);
- TEST_VERIFY_EXIT (maxsize > sizeof (random_data));
-
- /* Constructed the expected file contents. */
- char *expected = xmalloc (maxsize);
- TEST_COMPARE (pread64 (outtmpfsfd, expected, maxsize, 0), maxsize);
- /* Go back a little, so some bytes can be written. */
- enum { offset = 20000 };
- TEST_VERIFY_EXIT (offset < maxsize);
- TEST_VERIFY_EXIT (offset < sizeof (random_data));
- memcpy (expected + maxsize - offset, random_data + 1, offset);
-
- if (do_outoff)
- {
- outoff = maxsize - offset;
- xlseek (outtmpfsfd, 2, SEEK_SET);
- }
- else
- xlseek (outtmpfsfd, -offset, SEEK_CUR);
-
- /* First call is expected to succeed because we made room for some
- bytes. */
- TEST_COMPARE (copy_file_range (intmpfsfd, pinoff, outtmpfsfd, poutoff,
- maximum_size, 0), offset);
- if (do_inoff)
- {
- TEST_COMPARE (inoff, 1 + offset);
- TEST_COMPARE (xlseek (intmpfsfd, 0, SEEK_CUR), 1);
- }
- else
- TEST_COMPARE (xlseek (intmpfsfd, 0, SEEK_CUR), 1 + offset);
- if (do_outoff)
- {
- TEST_COMPARE (outoff, maxsize);
- TEST_COMPARE (xlseek (outtmpfsfd, 0, SEEK_CUR), 2);
- }
- else
- TEST_COMPARE (xlseek (outtmpfsfd, 0, SEEK_CUR), maxsize);
- struct stat64 st;
- xfstat (outtmpfsfd, &st);
- TEST_COMPARE (st.st_size, maxsize);
- char *actual = xmalloc (st.st_size);
- TEST_COMPARE (pread64 (outtmpfsfd, actual, st.st_size, 0), st.st_size);
- TEST_VERIFY (memcmp (expected, actual, maxsize) == 0);
-
- /* Second call should fail with ENOSPC. */
- TEST_COMPARE (copy_file_range (intmpfsfd, pinoff, outtmpfsfd, poutoff,
- maximum_size, 0), -1);
- TEST_COMPARE (errno, ENOSPC);
-
- /* Offsets should be unchanged. */
- if (do_inoff)
- {
- TEST_COMPARE (inoff, 1 + offset);
- TEST_COMPARE (xlseek (intmpfsfd, 0, SEEK_CUR), 1);
- }
- else
- TEST_COMPARE (xlseek (intmpfsfd, 0, SEEK_CUR), 1 + offset);
- if (do_outoff)
- {
- TEST_COMPARE (outoff, maxsize);
- TEST_COMPARE (xlseek (outtmpfsfd, 0, SEEK_CUR), 2);
- }
- else
- TEST_COMPARE (xlseek (outtmpfsfd, 0, SEEK_CUR), maxsize);
- TEST_COMPARE (xlseek (outtmpfsfd, 0, SEEK_END), maxsize);
- TEST_COMPARE (pread64 (outtmpfsfd, actual, maxsize, 0), maxsize);
- TEST_VERIFY (memcmp (expected, actual, maxsize) == 0);
-
- free (actual);
- free (expected);
-
- xclose (intmpfsfd);
- xclose (outtmpfsfd);
- free (intmpfsfile);
- free (outtmpfsfile);
-
-#else /* !CLONE_NEWNS */
- puts ("warning: ENOSPC test skipped (no mount namespaces)");
-#endif
-}
-
-/* Call enospc_failure_1 in a subprocess. */
-static void
-enospc_failure (void)
-{
- char *mountpoint
- = support_create_temp_directory ("tst-copy_file_range-enospc-");
- support_isolate_in_subprocess (enospc_failure_1, mountpoint);
- free (mountpoint);
-}
-
-/* The target file descriptor must have O_APPEND enabled. */
-static void
-oappend_failure (void)
-{
- /* Add data, to make sure we do not fail because there is
- insufficient input data. */
- xwrite (infd, random_data, current_size);
- xlseek (infd, 0, SEEK_SET);
-
- xclose (outfd);
- outfd = xopen (outfile, O_RDWR | O_APPEND, 0);
- TEST_COMPARE (copy_file_range (infd, pinoff, outfd, poutoff,
- current_size, 0), -1);
- TEST_COMPARE (errno, EBADF);
-}
-
/* Test that a short input file results in a shortened copy. */
static void
short_copy (void)
@@ -721,14 +228,6 @@ struct test_case
static struct test_case tests[] =
{
{ "simple_file_copy", simple_file_copy, .sizes = true },
- { "pipe_as_source", pipe_as_source, },
- { "pipe_as_destination", pipe_as_destination, },
- { "delayed_write_failure_beginning", delayed_write_failure_beginning,
- .sizes = true },
- { "delayed_write_failure_end", delayed_write_failure_end, .sizes = true },
- { "cross_device_failure", cross_device_failure, .sizes = true },
- { "enospc_failure", enospc_failure, },
- { "oappend_failure", oappend_failure, .sizes = true },
{ "short_copy", short_copy, .sizes = true },
};
@@ -739,53 +238,18 @@ do_test (void)
*p = rand () >> 24;
infd = create_temp_file ("tst-copy_file_range-in-", &infile);
- xclose (create_temp_file ("tst-copy_file_range-out-", &outfile));
-
- /* Try to find a different directory from the default input/output
- file. */
+ outfd = create_temp_file ("tst-copy_file_range-out-", &outfile);
{
- struct stat64 instat;
- xfstat (infd, &instat);
- static const char *const candidates[] =
- { NULL, "/var/tmp", "/dev/shm" };
- for (const char *const *c = candidates; c < array_end (candidates); ++c)
- {
- const char *path = *c;
- char *to_free = NULL;
- if (path == NULL)
- {
- to_free = xreadlink ("/proc/self/exe");
- path = dirname (to_free);
- }
-
- struct stat64 cstat;
- xstat (path, &cstat);
- if (cstat.st_dev == instat.st_dev)
- {
- free (to_free);
- continue;
- }
-
- printf ("info: using alternate temporary files directory: %s\n", path);
- xdevfile = xasprintf ("%s/tst-copy_file_range-xdev-XXXXXX", path);
- free (to_free);
- break;
- }
- if (xdevfile != NULL)
+ ssize_t ret = copy_file_range (infd, NULL, outfd, NULL, 0, 0);
+ if (ret != 0)
{
- int xdevfd = mkstemp (xdevfile);
- if (xdevfd < 0)
- FAIL_EXIT1 ("mkstemp (\"%s\"): %m", xdevfile);
- struct stat64 xdevst;
- xfstat (xdevfd, &xdevst);
- TEST_VERIFY (xdevst.st_dev != instat.st_dev);
- add_temp_file (xdevfile);
- xclose (xdevfd);
+ if (errno == ENOSYS)
+ FAIL_UNSUPPORTED ("copy_file_range is not support on this system");
+ FAIL_EXIT1 ("copy_file_range probing call: %m");
}
- else
- puts ("warning: no alternate directory on different file system found");
}
xclose (infd);
+ xclose (outfd);
for (do_inoff = 0; do_inoff < 2; ++do_inoff)
for (do_outoff = 0; do_outoff < 2; ++do_outoff)
@@ -827,7 +291,6 @@ do_test (void)
free (infile);
free (outfile);
- free (xdevfile);
return 0;
}
diff --git a/io/tst-fcntl.c b/io/tst-fcntl.c
index 272f4a2c2d..29810dfdb2 100644
--- a/io/tst-fcntl.c
+++ b/io/tst-fcntl.c
@@ -1,5 +1,5 @@
/* Tests for fcntl.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/io/tst-fts.c b/io/tst-fts.c
index 7848da9a1a..dd40c6aaaf 100644
--- a/io/tst-fts.c
+++ b/io/tst-fts.c
@@ -1,5 +1,5 @@
/* Simple test for some fts functions.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <sys/stat.h>
diff --git a/io/tst-ftw-lnk.c b/io/tst-ftw-lnk.c
new file mode 100644
index 0000000000..ff68778619
--- /dev/null
+++ b/io/tst-ftw-lnk.c
@@ -0,0 +1,239 @@
+/* Test for ftw function related to symbolic links for BZ #23501
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <ftw.h>
+#include <stdio.h>
+#include <string.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <errno.h>
+
+#include <support/support.h>
+#include <support/check.h>
+
+#define TSTDIR "tst-ftw-lnk.d"
+
+static void
+un (const char *file)
+{
+ struct stat st;
+ /* Does the file exist? */
+ if (lstat (file, &st) < 0
+ && errno == ENOENT)
+ return;
+
+ /* If so, try to remove it. */
+ if (unlink (file) < 0)
+ FAIL_EXIT1 ("Unable to unlink %s", file);
+}
+
+static void
+debug_cb (const char *which, const char *fpath,
+ const struct stat *sb, int typeflags)
+{
+ const char *sb_type = "???";
+ const char *ftw_type = "???";
+
+ /* Coding style here is intentionally "wrong" to increase readability. */
+ if (S_ISREG (sb->st_mode)) sb_type = "REG";
+ if (S_ISDIR (sb->st_mode)) sb_type = "DIR";
+ if (S_ISLNK (sb->st_mode)) sb_type = "LNK";
+
+ if (typeflags == FTW_F) ftw_type = "F";
+ if (typeflags == FTW_D) ftw_type = "D";
+ if (typeflags == FTW_DNR) ftw_type = "DNR";
+ if (typeflags == FTW_DP) ftw_type = "DP";
+ if (typeflags == FTW_NS) ftw_type = "NS";
+ if (typeflags == FTW_SL) ftw_type = "SL";
+ if (typeflags == FTW_SLN) ftw_type = "SLN";
+
+ printf ("%s %5d %-3s %-3s %s\n", which, (int)(sb->st_ino % 100000), sb_type, ftw_type, fpath);
+}
+
+int good_cb = 0;
+#define EXPECTED_GOOD 12
+
+/* See if the stat buffer SB refers to the file AS_FNAME. */
+static void
+check_same_stats (const struct stat *sb, const char *as_fname)
+{
+ struct stat as;
+ if (lstat (as_fname, &as) < 0)
+ FAIL_EXIT1 ("unable to stat %s for comparison", as_fname);
+
+ if (as.st_mode == sb->st_mode
+ && as.st_ino == sb->st_ino
+ && as.st_size == sb->st_size)
+ good_cb ++;
+ else
+ printf ("statbuf data doesn't match %s\n", as_fname);
+}
+
+static int
+callback_phys (const char *fpath, const struct stat *sb, int typeflags, struct FTW *ftwbuf)
+{
+ debug_cb ("P", fpath, sb, typeflags);
+
+ /* This callback is for when the FTW_PHYS flag is set. The results
+ should reflect the physical filesystem entry, not what it might
+ point to. */
+
+ /* link1-bad is a dangling symlink, but we're reporting on the link
+ anyway (ala lstat ()). */
+ if (strcmp (fpath, "./link1-bad") == 0)
+ {
+ if (S_ISLNK (sb->st_mode) && typeflags == FTW_SL)
+ good_cb ++;
+ else
+ printf ("link1-bad had wrong phys stats\n");
+
+ check_same_stats (sb, "link1-bad");
+ }
+
+ /* link2-ok is a regular non-dangling symlink. */
+ if (strcmp (fpath, "./link2-ok") == 0)
+ {
+ if (S_ISLNK (sb->st_mode) && typeflags == FTW_SL)
+ good_cb ++;
+ else
+ printf ("link2-ok had wrong phys stats\n");
+
+ check_same_stats (sb, "link2-ok");
+ }
+
+ /* This is the file link2-ok points to. */
+ if (strcmp (fpath, "./link2-tgt") == 0)
+ {
+ if (S_ISREG (sb->st_mode) && typeflags == FTW_F)
+ good_cb ++;
+ else
+ printf ("link2-tgt had wrong phys stats\n");
+
+ check_same_stats (sb, "link2-tgt");
+ }
+
+ return 0;
+}
+
+static int
+callback_log (const char *fpath, const struct stat *sb, int typeflags, struct FTW *ftwbuf)
+{
+ debug_cb ("L", fpath, sb, typeflags);
+
+ /* This callback is for when the FTW_PHYS flags is NOT set. The
+ results should reflect the logical file, i.e. symlinks should be
+ followed. */
+
+ /* We would normally report what link1-bad links to, but link1-bad
+ is a dangling symlink. This is an exception to FTW_PHYS in that
+ we report FTW_SLN (dangling symlink) but the stat data is
+ correctly set to the link itself (ala lstat ()). */
+ if (strcmp (fpath, "./link1-bad") == 0)
+ {
+ if (S_ISLNK (sb->st_mode) && typeflags == FTW_SLN)
+ good_cb ++;
+ else
+ printf ("link1-bad had wrong logical stats\n");
+
+ check_same_stats (sb, "link1-bad");
+ }
+
+ /* link2-ok points to link2-tgt, so we expect data reflecting
+ link2-tgt (ala stat ()). */
+ if (strcmp (fpath, "./link2-ok") == 0)
+ {
+ if (S_ISREG (sb->st_mode) && typeflags == FTW_F)
+ good_cb ++;
+ else
+ printf ("link2-ok had wrong logical stats\n");
+
+ check_same_stats (sb, "link2-tgt");
+ }
+
+ /* This is the file link2-ok points to. */
+ if (strcmp (fpath, "./link2-tgt") == 0)
+ {
+ if (S_ISREG (sb->st_mode) && typeflags == FTW_F)
+ good_cb ++;
+ else
+ printf ("link2-tgt had wrong logical stats\n");
+
+ check_same_stats (sb, "link2-tgt");
+ }
+
+ return 0;
+}
+
+static int
+do_test (void)
+{
+ struct stat st;
+
+ if (chdir (support_objdir_root) < 0)
+ FAIL_EXIT1 ("cannot chdir to objdir root");
+
+ if (chdir ("io") < 0)
+ FAIL_EXIT1 ("cannot chdir to objdir/io subdir");
+
+ if (stat (TSTDIR, &st) >= 0)
+ {
+ /* Directory does exist, delete any potential conflicts. */
+ if (chdir (TSTDIR) < 0)
+ FAIL_EXIT1 ("cannot chdir to %s\n", TSTDIR);
+ un ("link1-bad");
+ un ("link1-tgt");
+ un ("link2-ok");
+ un ("link2-tgt");
+ }
+ else
+ {
+ /* Directory does not exist, create it. */
+ mkdir (TSTDIR, 0777);
+ if (chdir (TSTDIR) < 0)
+ FAIL_EXIT1 ("cannot chdir to %s\n", TSTDIR);
+ }
+
+ /* At this point, we're inside our test directory, and need to
+ prepare it. */
+
+ if (symlink ("link1-tgt", "link1-bad") < 0)
+ FAIL_EXIT1 ("symlink link1-bad failed");
+ if (symlink ("link2-tgt", "link2-ok") < 0)
+ FAIL_EXIT1 ("symlink link2-ok failed");
+ if (open ("link2-tgt", O_RDWR|O_CREAT, 0777) < 0)
+ FAIL_EXIT1 ("create of link2-tgt failed");
+
+ /* Now we run the tests. */
+
+ nftw (".", callback_phys, 10, FTW_PHYS);
+ nftw (".", callback_log, 10, 0);
+
+ /* Did we see the expected number of correct callbacks? */
+
+ if (good_cb != EXPECTED_GOOD)
+ {
+ FAIL_EXIT1 ("Saw %d good callbacks, expected %d\n",
+ good_cb, EXPECTED_GOOD);
+ }
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/io/tst-getcwd-abspath.c b/io/tst-getcwd-abspath.c
index 3a3636f2ed..15c680b392 100644
--- a/io/tst-getcwd-abspath.c
+++ b/io/tst-getcwd-abspath.c
@@ -1,6 +1,6 @@
/* BZ #22679 getcwd(3) should not succeed without returning an absolute path.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
diff --git a/io/tst-getcwd.c b/io/tst-getcwd.c
index 8e7a11eb0d..7b74e76fa8 100644
--- a/io/tst-getcwd.c
+++ b/io/tst-getcwd.c
@@ -1,5 +1,5 @@
/* Test of getcwd function.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdio.h>
diff --git a/io/tst-lockf.c b/io/tst-lockf.c
new file mode 100644
index 0000000000..655865fb91
--- /dev/null
+++ b/io/tst-lockf.c
@@ -0,0 +1,138 @@
+/* Test POSIX lock on an open file (lockf).
+ Copyright (C) 2019 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 the Free Software Foundation; either version 2
+ of the License, or (at your option) any later version.
+
+ This program 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 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 <https://www.gnu.org/licenses/>.
+*/
+
+#include <unistd.h>
+#include <stdint.h>
+#include <errno.h>
+#include <stdio.h>
+
+#include <support/temp_file.h>
+#include <support/capture_subprocess.h>
+#include <support/check.h>
+
+static char *temp_filename;
+static int temp_fd;
+
+static void
+do_prepare (int argc, char **argv)
+{
+ temp_fd = create_temp_file ("tst-lockfd.", &temp_filename);
+ TEST_VERIFY_EXIT (temp_fd != -1);
+}
+#define PREPARE do_prepare
+
+static void
+do_test_child_lockf (void *closure)
+{
+ /* Check if parent has [0, 1024) locked. */
+ TEST_COMPARE (lseek (temp_fd, 0, SEEK_SET), 0);
+ TEST_COMPARE (lockf (temp_fd, F_TLOCK, 1024), -1);
+ TEST_COMPARE (errno, EAGAIN);
+ TEST_COMPARE (lockf (temp_fd, F_TEST, 1024), -1);
+ TEST_COMPARE (errno, EACCES);
+ /* Also Check if parent has last 1024 bytes locked. */
+ TEST_COMPARE (lseek (temp_fd, INT32_MAX-1024, SEEK_SET), INT32_MAX-1024);
+ TEST_COMPARE (lockf (temp_fd, F_TEST, 1024), -1);
+
+ /* And try to lock [1024, 2048). */
+ TEST_COMPARE (lseek (temp_fd, 1024, SEEK_SET), 1024);
+ TEST_COMPARE (lockf (temp_fd, F_LOCK, 1024), 0);
+
+ /* Check if non-LFS interface cap access to 32-bif off_t. */
+ TEST_COMPARE (lseek64 (temp_fd, (off64_t)INT32_MAX, SEEK_SET),
+ (off64_t)INT32_MAX);
+ TEST_COMPARE (lockf64 (temp_fd, F_TEST, 1024), 0);
+}
+
+static void
+do_test_child_lockf64 (void *closure)
+{
+ /* Check if parent has [0, 1024) locked. */
+ TEST_COMPARE (lseek64 (temp_fd, 0, SEEK_SET), 0);
+ TEST_COMPARE (lockf64 (temp_fd, F_TLOCK, 1024), -1);
+ TEST_COMPARE (errno, EAGAIN);
+ TEST_COMPARE (lockf64 (temp_fd, F_TEST, 1024), -1);
+ TEST_COMPARE (errno, EACCES);
+ /* Also Check if parent has last 1024 bytes locked. */
+ TEST_COMPARE (lseek64 (temp_fd, INT32_MAX-1024, SEEK_SET), INT32_MAX-1024);
+ TEST_COMPARE (lockf64 (temp_fd, F_TEST, 1024), -1);
+
+ /* And try to lock [1024, 2048). */
+ TEST_COMPARE (lseek64 (temp_fd, 1024, SEEK_SET), 1024);
+ TEST_COMPARE (lockf64 (temp_fd, F_LOCK, 1024), 0);
+
+ /* And also [INT32_MAX, INT32_MAX+1024). */
+ {
+ off64_t off = (off64_t)INT32_MAX;
+ TEST_COMPARE (lseek64 (temp_fd, off, SEEK_SET), off);
+ TEST_COMPARE (lockf64 (temp_fd, F_LOCK, 1024), 0);
+ }
+
+ /* Check if [INT32_MAX+1024, INT64_MAX) is locked. */
+ {
+ off64_t off = (off64_t)INT32_MAX+1024;
+ TEST_COMPARE (lseek64 (temp_fd, off, SEEK_SET), off);
+ TEST_COMPARE (lockf64 (temp_fd, F_TLOCK, 1024), -1);
+ TEST_COMPARE (errno, EAGAIN);
+ TEST_COMPARE (lockf64 (temp_fd, F_TEST, 1024), -1);
+ TEST_COMPARE (errno, EACCES);
+ }
+}
+
+static int
+do_test (void)
+{
+ /* Basic tests to check if a lock can be obtained and checked. */
+ TEST_COMPARE (lockf (temp_fd, F_LOCK, 1024), 0);
+ TEST_COMPARE (lockf (temp_fd, F_LOCK, INT32_MAX), 0);
+ TEST_COMPARE (lockf (temp_fd, F_TLOCK, 1024), 0);
+ TEST_COMPARE (lockf (temp_fd, F_TEST, 1024), 0);
+ TEST_COMPARE (lseek (temp_fd, 1024, SEEK_SET), 1024);
+ TEST_COMPARE (lockf (temp_fd, F_ULOCK, 1024), 0);
+ /* Parent process should have ([0, 1024), [2048, INT32_MAX)) ranges locked. */
+
+ {
+ struct support_capture_subprocess result;
+ result = support_capture_subprocess (do_test_child_lockf, NULL);
+ support_capture_subprocess_check (&result, "lockf", 0, sc_allow_none);
+ }
+
+ if (sizeof (off_t) != sizeof (off64_t))
+ {
+ /* Check if previously locked regions with LFS symbol. */
+ TEST_COMPARE (lseek (temp_fd, 0, SEEK_SET), 0);
+ TEST_COMPARE (lockf64 (temp_fd, F_LOCK, 1024), 0);
+ TEST_COMPARE (lockf64 (temp_fd, F_TLOCK, 1024), 0);
+ TEST_COMPARE (lockf64 (temp_fd, F_TEST, 1024), 0);
+ /* Lock region [INT32_MAX+1024, INT64_MAX). */
+ off64_t off = (off64_t)INT32_MAX + 1024;
+ TEST_COMPARE (lseek64 (temp_fd, off, SEEK_SET), off);
+ TEST_COMPARE (lockf64 (temp_fd, F_LOCK, 1024), 0);
+ /* Parent process should have ([0, 1024), [2048, INT32_MAX),
+ [INT32_MAX+1024, INT64_MAX)) ranges locked. */
+
+ {
+ struct support_capture_subprocess result;
+ result = support_capture_subprocess (do_test_child_lockf64, NULL);
+ support_capture_subprocess_check (&result, "lockf", 0, sc_allow_none);
+ }
+ }
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/io/tst-open-tmpfile.c b/io/tst-open-tmpfile.c
index 592b5a020b..bef8d2f95b 100644
--- a/io/tst-open-tmpfile.c
+++ b/io/tst-open-tmpfile.c
@@ -1,5 +1,5 @@
/* Test open and openat with O_TMPFILE.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This test verifies that open and openat work as expected, i.e. they
create a deleted file with the requested file mode. */
diff --git a/io/tst-posix_fallocate-common.c b/io/tst-posix_fallocate-common.c
index 43ed9442d4..1887cdfe19 100644
--- a/io/tst-posix_fallocate-common.c
+++ b/io/tst-posix_fallocate-common.c
@@ -1,5 +1,5 @@
/* Common posix_fallocate tests definitions.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fcntl.h>
#include <limits.h>
diff --git a/io/tst-posix_fallocate.c b/io/tst-posix_fallocate.c
index 1497ae23c1..4357c0c173 100644
--- a/io/tst-posix_fallocate.c
+++ b/io/tst-posix_fallocate.c
@@ -1,5 +1,5 @@
/* Basic posix_fallocate tests.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "tst-posix_fallocate-common.c"
diff --git a/io/tst-posix_fallocate64.c b/io/tst-posix_fallocate64.c
index f88e335d8f..993c90c93c 100644
--- a/io/tst-posix_fallocate64.c
+++ b/io/tst-posix_fallocate64.c
@@ -1,5 +1,5 @@
/* Basic posix_fallocate tests (with _FILE_OFFSET_BITS).
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _FILE_OFFSET_BITS 64
#include "tst-posix_fallocate-common.c"
diff --git a/io/tst-statx.c b/io/tst-statx.c
index 61bf31d177..974845a808 100644
--- a/io/tst-statx.c
+++ b/io/tst-statx.c
@@ -1,5 +1,5 @@
/* Basic test of statx system call.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdbool.h>
diff --git a/io/ttyname.c b/io/ttyname.c
index 7ba359ead8..d0c26ed2f0 100644
--- a/io/ttyname.c
+++ b/io/ttyname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/io/ttyname_r.c b/io/ttyname_r.c
index 709174656a..01fc60fd5f 100644
--- a/io/ttyname_r.c
+++ b/io/ttyname_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/io/umask.c b/io/umask.c
index 824e7a52a5..d04bc2bbd7 100644
--- a/io/umask.c
+++ b/io/umask.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/stat.h>
#include <errno.h>
diff --git a/io/unlink.c b/io/unlink.c
index b7104efa4d..b4878ea5c6 100644
--- a/io/unlink.c
+++ b/io/unlink.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/io/unlinkat.c b/io/unlinkat.c
index 5a192bed39..070c51a5a2 100644
--- a/io/unlinkat.c
+++ b/io/unlinkat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/io/utime.c b/io/utime.c
index 3f3c03c92d..02d4b206bc 100644
--- a/io/utime.c
+++ b/io/utime.c
@@ -1,5 +1,5 @@
/* utime -- change access and modification times of file. Stub version.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/io/utime.h b/io/utime.h
index 8409ba4ddc..2ce7d026ac 100644
--- a/io/utime.h
+++ b/io/utime.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* POSIX Standard: 5.6.6 Set File Access and Modification Times <utime.h>
diff --git a/io/utimensat.c b/io/utimensat.c
index 6b67a52e9e..e6c107782e 100644
--- a/io/utimensat.c
+++ b/io/utimensat.c
@@ -1,5 +1,5 @@
/* Change access and modification times of open file. Stub version.
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/stat.h>
diff --git a/io/write.c b/io/write.c
index aec88765dc..07cbf65c8e 100644
--- a/io/write.c
+++ b/io/write.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <errno.h>
diff --git a/io/xmknod.c b/io/xmknod.c
index fb6f70ace0..76d1b27274 100644
--- a/io/xmknod.c
+++ b/io/xmknod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/types.h>
diff --git a/io/xmknodat.c b/io/xmknodat.c
index 8f4fc7241e..184f6614b7 100644
--- a/io/xmknodat.c
+++ b/io/xmknodat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/io/xstat.c b/io/xstat.c
index 07245a3850..4f9597b6d8 100644
--- a/io/xstat.c
+++ b/io/xstat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/stat.h>
diff --git a/io/xstat64.c b/io/xstat64.c
index 99003ea090..107c0532b7 100644
--- a/io/xstat64.c
+++ b/io/xstat64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/stat.h>
diff --git a/libio/Makefile b/libio/Makefile
index cab0eae946..2ed440ffa3 100644
--- a/libio/Makefile
+++ b/libio/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1995-2018 Free Software Foundation, Inc.
+# Copyright (C) 1995-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
# Specific makefile for libio.
@@ -59,12 +59,14 @@ tests = tst_swprintf tst_wprintf tst_swscanf tst_wscanf tst_getwc tst_putwc \
tst-mmap-eofsync tst-mmap-fflushsync bug-mmap-fflush \
tst-mmap2-eofsync tst-mmap-offend bug-fopena+ bug-wfflush \
bug-ungetc2 bug-ftell bug-ungetc3 bug-ungetc4 tst-fopenloc2 \
- tst-memstream1 tst-memstream2 tst-memstream3 \
- tst-wmemstream1 tst-wmemstream2 tst-wmemstream3 \
+ tst-memstream1 tst-memstream2 tst-memstream3 tst-memstream4 \
+ tst-wmemstream1 tst-wmemstream2 tst-wmemstream3 tst-wmemstream4 \
bug-memstream1 bug-wmemstream1 \
tst-setvbuf1 tst-popen1 tst-fgetwc bug-wsetpos tst-fseek \
tst-fwrite-error tst-ftell-partial-wide tst-ftell-active-handler \
- tst-ftell-append tst-fputws tst-bz22415 tst-fgetc-after-eof
+ tst-ftell-append tst-fputws tst-bz22415 tst-fgetc-after-eof \
+ tst-sprintf-ub tst-sprintf-chk-ub tst-bz24051 tst-bz24153 \
+ tst-wfile-sync
tests-internal = tst-vtables tst-vtables-interposed tst-readline
@@ -72,6 +74,9 @@ ifeq (yes,$(build-shared))
# Add test-fopenloc only if shared library is enabled since it depends on
# shared localedata objects.
tests += tst-fopenloc
+# Add tst-bz24228 only if shared library is enabled since it can never meet its
+# objective with static linking because the relevant code just is not there.
+tests += tst-bz24228
endif
test-srcs = test-freopen
@@ -152,11 +157,18 @@ CFLAGS-oldtmpfile.c += -fexceptions
CFLAGS-tst_putwc.c += -DOBJPFX=\"$(objpfx)\"
+# These test cases intentionally use overlapping arguments
+CFLAGS-tst-sprintf-ub.c += -Wno-restrict
+CFLAGS-tst-sprintf-chk-ub.c += -Wno-restrict
+
+LDFLAGS-tst-bz24228 = -Wl,--version-script=tst-bz24228.map
+
tst_wprintf2-ARGS = "Some Text"
test-fmemopen-ENV = MALLOC_TRACE=$(objpfx)test-fmemopen.mtrace
tst-fopenloc-ENV = MALLOC_TRACE=$(objpfx)tst-fopenloc.mtrace
tst-bz22415-ENV = MALLOC_TRACE=$(objpfx)tst-bz22415.mtrace
+tst-bz24228-ENV = MALLOC_TRACE=$(objpfx)tst-bz24228.mtrace
generated += test-fmemopen.mtrace test-fmemopen.check
generated += tst-fopenloc.mtrace tst-fopenloc.check
@@ -165,6 +177,7 @@ generated += tst-bz22415.mtrace tst-bz22415.check
aux := fileops genops stdfiles stdio strops
ifeq ($(build-shared),yes)
+generated += tst-bz24228.mtrace tst-bz24228.check
aux += oldfileops oldstdfiles
endif
@@ -179,7 +192,8 @@ tests-special += $(objpfx)test-freopen.out $(objpfx)test-fmemopen-mem.out \
ifeq (yes,$(build-shared))
# Run tst-fopenloc-cmp.out and tst-openloc-mem.out only if shared
# library is enabled since they depend on tst-fopenloc.out.
-tests-special += $(objpfx)tst-fopenloc-cmp.out $(objpfx)tst-fopenloc-mem.out
+tests-special += $(objpfx)tst-fopenloc-cmp.out $(objpfx)tst-fopenloc-mem.out \
+ $(objpfx)tst-bz24228-mem.out
endif
endif
@@ -207,6 +221,7 @@ $(objpfx)tst-ungetwc1.out: $(gen-locales)
$(objpfx)tst-ungetwc2.out: $(gen-locales)
$(objpfx)tst-widetext.out: $(gen-locales)
$(objpfx)tst_wprintf2.out: $(gen-locales)
+$(objpfx)tst-wfile-sync.out: $(gen-locales)
endif
$(objpfx)test-freopen.out: test-freopen.sh $(objpfx)test-freopen
@@ -230,3 +245,7 @@ $(objpfx)tst-fopenloc-mem.out: $(objpfx)tst-fopenloc.out
$(objpfx)tst-bz22415-mem.out: $(objpfx)tst-bz22415.out
$(common-objpfx)malloc/mtrace $(objpfx)tst-bz22415.mtrace > $@; \
$(evaluate-test)
+
+$(objpfx)tst-bz24228-mem.out: $(objpfx)tst-bz24228.out
+ $(common-objpfx)malloc/mtrace $(objpfx)tst-bz24228.mtrace > $@; \
+ $(evaluate-test)
diff --git a/libio/__fbufsize.c b/libio/__fbufsize.c
index e4e53f6abc..154cf24de2 100644
--- a/libio/__fbufsize.c
+++ b/libio/__fbufsize.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio_ext.h>
diff --git a/libio/__flbf.c b/libio/__flbf.c
index e2f386bee6..11244eafb5 100644
--- a/libio/__flbf.c
+++ b/libio/__flbf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio_ext.h>
diff --git a/libio/__fpending.c b/libio/__fpending.c
index 17039c10bf..9703481e96 100644
--- a/libio/__fpending.c
+++ b/libio/__fpending.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio_ext.h>
diff --git a/libio/__fpurge.c b/libio/__fpurge.c
index b104448571..0eb4f6eb5f 100644
--- a/libio/__fpurge.c
+++ b/libio/__fpurge.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio_ext.h>
#include "libioP.h"
diff --git a/libio/__freadable.c b/libio/__freadable.c
index 93022c3626..8262c4d610 100644
--- a/libio/__freadable.c
+++ b/libio/__freadable.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio_ext.h>
diff --git a/libio/__freading.c b/libio/__freading.c
index c4b9a4dac1..5e9471a7c5 100644
--- a/libio/__freading.c
+++ b/libio/__freading.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio_ext.h>
diff --git a/libio/__fsetlocking.c b/libio/__fsetlocking.c
index 39f6dba561..85ea1302f8 100644
--- a/libio/__fsetlocking.c
+++ b/libio/__fsetlocking.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio_ext.h>
diff --git a/libio/__fwritable.c b/libio/__fwritable.c
index dc34ae9801..1aa20477d6 100644
--- a/libio/__fwritable.c
+++ b/libio/__fwritable.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio_ext.h>
diff --git a/libio/__fwriting.c b/libio/__fwriting.c
index e84881515f..04ff08c29b 100644
--- a/libio/__fwriting.c
+++ b/libio/__fwriting.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio_ext.h>
diff --git a/libio/bits/stdio-ldbl.h b/libio/bits/stdio-ldbl.h
index 99d9bcc233..2f01a98384 100644
--- a/libio/bits/stdio-ldbl.h
+++ b/libio/bits/stdio-ldbl.h
@@ -1,5 +1,5 @@
/* -mlong-double-64 compatibility mode for stdio functions.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _STDIO_H
# error "Never include <bits/stdio-ldbl.h> directly; use <stdio.h> instead."
@@ -26,9 +26,7 @@ __LDBL_REDIR_DECL (sprintf)
__LDBL_REDIR_DECL (vfprintf)
__LDBL_REDIR_DECL (vprintf)
__LDBL_REDIR_DECL (vsprintf)
-#if defined __USE_ISOC99 && !defined __USE_GNU \
- && !defined __REDIRECT \
- && (defined __STRICT_ANSI__ || defined __USE_XOPEN2K)
+#if !__GLIBC_USE (DEPRECATED_SCANF)
__LDBL_REDIR1_DECL (fscanf, __nldbl___isoc99_fscanf)
__LDBL_REDIR1_DECL (scanf, __nldbl___isoc99_scanf)
__LDBL_REDIR1_DECL (sscanf, __nldbl___isoc99_sscanf)
@@ -44,8 +42,7 @@ __LDBL_REDIR_DECL (vsnprintf)
#endif
#ifdef __USE_ISOC99
-# if !defined __USE_GNU && !defined __REDIRECT \
- && (defined __STRICT_ANSI__ || defined __USE_XOPEN2K)
+# if !__GLIBC_USE (DEPRECATED_SCANF)
__LDBL_REDIR1_DECL (vfscanf, __nldbl___isoc99_vfscanf)
__LDBL_REDIR1_DECL (vscanf, __nldbl___isoc99_vscanf)
__LDBL_REDIR1_DECL (vsscanf, __nldbl___isoc99_vsscanf)
diff --git a/libio/bits/stdio.h b/libio/bits/stdio.h
index 4ab919031f..e7fa62bfb7 100644
--- a/libio/bits/stdio.h
+++ b/libio/bits/stdio.h
@@ -1,5 +1,5 @@
/* Optimizing macros and inline functions for stdio functions.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_STDIO_H
#define _BITS_STDIO_H 1
diff --git a/libio/bits/stdio2.h b/libio/bits/stdio2.h
index 11651506a6..a24188d93e 100644
--- a/libio/bits/stdio2.h
+++ b/libio/bits/stdio2.h
@@ -1,5 +1,5 @@
/* Checking macros for stdio functions.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_STDIO2_H
#define _BITS_STDIO2_H 1
diff --git a/libio/bits/types/cookie_io_functions_t.h b/libio/bits/types/cookie_io_functions_t.h
index a6d9d39a47..30dd583c38 100644
--- a/libio/bits/types/cookie_io_functions_t.h
+++ b/libio/bits/types/cookie_io_functions_t.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef __cookie_io_functions_t_defined
#define __cookie_io_functions_t_defined 1
diff --git a/libio/bits/types/struct_FILE.h b/libio/bits/types/struct_FILE.h
index 359f949453..2802ce6e69 100644
--- a/libio/bits/types/struct_FILE.h
+++ b/libio/bits/types/struct_FILE.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef __struct_FILE_defined
#define __struct_FILE_defined 1
diff --git a/libio/bug-ungetc4.c b/libio/bug-ungetc4.c
index 9fbad11f26..22c89a6a0c 100644
--- a/libio/bug-ungetc4.c
+++ b/libio/bug-ungetc4.c
@@ -1,5 +1,5 @@
/* Test program for ungetc/fseekpos interaction.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
diff --git a/libio/clearerr.c b/libio/clearerr.c
index 77ac552fac..77dc953b0f 100644
--- a/libio/clearerr.c
+++ b/libio/clearerr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libioP.h"
#include "stdio.h"
diff --git a/libio/clearerr_u.c b/libio/clearerr_u.c
index 0b696b97f7..6b9f8f767c 100644
--- a/libio/clearerr_u.c
+++ b/libio/clearerr_u.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libioP.h"
#include "stdio.h"
diff --git a/libio/fcloseall.c b/libio/fcloseall.c
index 4a3fd94cf7..8756af31fb 100644
--- a/libio/fcloseall.c
+++ b/libio/fcloseall.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/feof.c b/libio/feof.c
index cf9b7eee42..dc46e9227b 100644
--- a/libio/feof.c
+++ b/libio/feof.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/feof_u.c b/libio/feof_u.c
index 3033efb064..872fa1b5b9 100644
--- a/libio/feof_u.c
+++ b/libio/feof_u.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/ferror.c b/libio/ferror.c
index 4b5122b6af..90a7d33adb 100644
--- a/libio/ferror.c
+++ b/libio/ferror.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/ferror_u.c b/libio/ferror_u.c
index fddf505438..709fbc7b64 100644
--- a/libio/ferror_u.c
+++ b/libio/ferror_u.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/filedoalloc.c b/libio/filedoalloc.c
index 190c009172..a786125ba6 100644
--- a/libio/filedoalloc.c
+++ b/libio/filedoalloc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/fileno.c b/libio/fileno.c
index f49c588a96..ad21afad43 100644
--- a/libio/fileno.c
+++ b/libio/fileno.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/fileops.c b/libio/fileops.c
index c9c5cbcc3c..f81646d99c 100644
--- a/libio/fileops.c
+++ b/libio/fileops.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Per Bothner <bothner@cygnus.com>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
As a special exception, if you link the code in this file with
files compiled with a GNU compiler to produce an executable,
@@ -331,26 +331,19 @@ _IO_new_file_fopen (FILE *fp, const char *filename, const char *mode,
cc = fp->_codecvt = &fp->_wide_data->_codecvt;
- /* The functions are always the same. */
- *cc = __libio_codecvt;
+ cc->__cd_in.step = fcts.towc;
- cc->__cd_in.__cd.__nsteps = fcts.towc_nsteps;
- cc->__cd_in.__cd.__steps = fcts.towc;
+ cc->__cd_in.step_data.__invocation_counter = 0;
+ cc->__cd_in.step_data.__internal_use = 1;
+ cc->__cd_in.step_data.__flags = __GCONV_IS_LAST;
+ cc->__cd_in.step_data.__statep = &result->_wide_data->_IO_state;
- cc->__cd_in.__cd.__data[0].__invocation_counter = 0;
- cc->__cd_in.__cd.__data[0].__internal_use = 1;
- cc->__cd_in.__cd.__data[0].__flags = __GCONV_IS_LAST;
- cc->__cd_in.__cd.__data[0].__statep = &result->_wide_data->_IO_state;
+ cc->__cd_out.step = fcts.tomb;
- cc->__cd_out.__cd.__nsteps = fcts.tomb_nsteps;
- cc->__cd_out.__cd.__steps = fcts.tomb;
-
- cc->__cd_out.__cd.__data[0].__invocation_counter = 0;
- cc->__cd_out.__cd.__data[0].__internal_use = 1;
- cc->__cd_out.__cd.__data[0].__flags
- = __GCONV_IS_LAST | __GCONV_TRANSLIT;
- cc->__cd_out.__cd.__data[0].__statep =
- &result->_wide_data->_IO_state;
+ cc->__cd_out.step_data.__invocation_counter = 0;
+ cc->__cd_out.step_data.__internal_use = 1;
+ cc->__cd_out.step_data.__flags = __GCONV_IS_LAST | __GCONV_TRANSLIT;
+ cc->__cd_out.step_data.__statep = &result->_wide_data->_IO_state;
/* From now on use the wide character callback functions. */
_IO_JUMPS_FILE_plus (fp) = fp->_wide_data->_wide_vtable;
@@ -501,13 +494,13 @@ _IO_new_file_underflow (FILE *fp)
traditional Unix systems did this for stdout. stderr better
not be line buffered. So we do just that here
explicitly. --drepper */
- _IO_acquire_lock (_IO_stdout);
+ _IO_acquire_lock (stdout);
- if ((_IO_stdout->_flags & (_IO_LINKED | _IO_NO_WRITES | _IO_LINE_BUF))
+ if ((stdout->_flags & (_IO_LINKED | _IO_NO_WRITES | _IO_LINE_BUF))
== (_IO_LINKED | _IO_LINE_BUF))
- _IO_OVERFLOW (_IO_stdout, EOF);
+ _IO_OVERFLOW (stdout, EOF);
- _IO_release_lock (_IO_stdout);
+ _IO_release_lock (stdout);
}
_IO_switch_to_get_mode (fp);
diff --git a/libio/fmemopen.c b/libio/fmemopen.c
index 319dba83cb..f9d3584551 100644
--- a/libio/fmemopen.c
+++ b/libio/fmemopen.c
@@ -1,5 +1,5 @@
/* fmemopen implementation.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* fmemopen() from 2.22 and forward works as defined by POSIX. It also
provides an older symbol, version 2.2.5, that behaves different regarding
diff --git a/libio/fputc.c b/libio/fputc.c
index 1e743eb74c..9567718214 100644
--- a/libio/fputc.c
+++ b/libio/fputc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/fputc_u.c b/libio/fputc_u.c
index a0a03cbda4..6ee67cfd9f 100644
--- a/libio/fputc_u.c
+++ b/libio/fputc_u.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/fputwc.c b/libio/fputwc.c
index be2baf98fd..3102fea113 100644
--- a/libio/fputwc.c
+++ b/libio/fputwc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/fputwc_u.c b/libio/fputwc_u.c
index 3bcd997848..05bef4ad77 100644
--- a/libio/fputwc_u.c
+++ b/libio/fputwc_u.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/freopen.c b/libio/freopen.c
index abf19e96f1..e30f7caf3d 100644
--- a/libio/freopen.c
+++ b/libio/freopen.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
As a special exception, if you link the code in this file with
files compiled with a GNU compiler to produce an executable,
@@ -24,28 +24,34 @@
This exception applies to code released by its copyright holders
in files containing the exception. */
-#include "libioP.h"
-#include "stdio.h"
+#include <stdio.h>
#include <fcntl.h>
#include <stdlib.h>
#include <unistd.h>
-#include <shlib-compat.h>
+#include <libioP.h>
#include <fd_to_filename.h>
-
-#include <kernel-features.h>
+#include <shlib-compat.h>
FILE *
freopen (const char *filename, const char *mode, FILE *fp)
{
- FILE *result;
+ FILE *result = NULL;
+ char fdfilename[FD_TO_FILENAME_SIZE];
+
CHECK_FILE (fp, NULL);
- if (!(fp->_flags & _IO_IS_FILEBUF))
- return NULL;
+
_IO_acquire_lock (fp);
+ /* First flush the stream (failure should be ignored). */
+ _IO_SYNC (fp);
+
+ if (!(fp->_flags & _IO_IS_FILEBUF))
+ goto end;
+
int fd = _IO_fileno (fp);
- const char *gfilename = (filename == NULL && fd >= 0
- ? fd_to_filename (fd) : filename);
+ const char *gfilename
+ = filename != NULL ? filename : fd_to_filename (fd, fdfilename);
+
fp->_flags2 |= _IO_FLAGS2_NOCLOSE;
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
if (&_IO_stdin_used == NULL)
@@ -56,7 +62,7 @@ freopen (const char *filename, const char *mode, FILE *fp)
to the old libio may be passed into shared C library and wind
up here. */
_IO_old_file_close_it (fp);
- _IO_JUMPS_FILE_plus (fp) = &_IO_old_file_jumps;
+ _IO_JUMPS_FUNC_UPDATE (fp, &_IO_old_file_jumps);
result = _IO_old_file_fopen (fp, gfilename, mode);
}
else
@@ -101,9 +107,6 @@ freopen (const char *filename, const char *mode, FILE *fp)
__close (fd);
end:
- if (filename == NULL)
- free ((char *) gfilename);
-
_IO_release_lock (fp);
return result;
}
diff --git a/libio/freopen64.c b/libio/freopen64.c
index ea7ebd3da4..3c596894c3 100644
--- a/libio/freopen64.c
+++ b/libio/freopen64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
As a special exception, if you link the code in this file with
files compiled with a GNU compiler to produce an executable,
@@ -24,27 +24,33 @@
This exception applies to code released by its copyright holders
in files containing the exception. */
-#include "libioP.h"
-#include "stdio.h"
+#include <stdio.h>
#include <fcntl.h>
#include <stdlib.h>
#include <unistd.h>
+#include <libioP.h>
#include <fd_to_filename.h>
-#include <kernel-features.h>
-
FILE *
freopen64 (const char *filename, const char *mode, FILE *fp)
{
- FILE *result;
+ FILE *result = NULL;
+ char fdfilename[FD_TO_FILENAME_SIZE];
+
CHECK_FILE (fp, NULL);
- if (!(fp->_flags & _IO_IS_FILEBUF))
- return NULL;
+
_IO_acquire_lock (fp);
+ /* First flush the stream (failure should be ignored). */
+ _IO_SYNC (fp);
+
+ if (!(fp->_flags & _IO_IS_FILEBUF))
+ goto end;
+
int fd = _IO_fileno (fp);
- const char *gfilename = (filename == NULL && fd >= 0
- ? fd_to_filename (fd) : filename);
+ const char *gfilename
+ = filename != NULL ? filename : fd_to_filename (fd, fdfilename);
+
fp->_flags2 |= _IO_FLAGS2_NOCLOSE;
_IO_file_close_it (fp);
_IO_JUMPS_FILE_plus (fp) = &_IO_file_jumps;
@@ -84,8 +90,6 @@ freopen64 (const char *filename, const char *mode, FILE *fp)
__close (fd);
end:
- if (filename == NULL)
- free ((char *) gfilename);
_IO_release_lock (fp);
return result;
}
diff --git a/libio/fseek.c b/libio/fseek.c
index 0865321f55..70a589d458 100644
--- a/libio/fseek.c
+++ b/libio/fseek.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/fseeko.c b/libio/fseeko.c
index 4d086c15d8..8efb9ec415 100644
--- a/libio/fseeko.c
+++ b/libio/fseeko.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/fseeko64.c b/libio/fseeko64.c
index 1d9bb190a6..f749a97b82 100644
--- a/libio/fseeko64.c
+++ b/libio/fseeko64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/ftello.c b/libio/ftello.c
index 5a3caf4ad9..8437e9ed6a 100644
--- a/libio/ftello.c
+++ b/libio/ftello.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/ftello64.c b/libio/ftello64.c
index d5546e1fb0..449c17193b 100644
--- a/libio/ftello64.c
+++ b/libio/ftello64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/fwide.c b/libio/fwide.c
index 3e105592cd..5fac5064df 100644
--- a/libio/fwide.c
+++ b/libio/fwide.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/fwprintf.c b/libio/fwprintf.c
index fab63a8716..fa3266eae9 100644
--- a/libio/fwprintf.c
+++ b/libio/fwprintf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libioP.h>
#include <stdarg.h>
@@ -30,7 +30,7 @@ __fwprintf (FILE *stream, const wchar_t *format, ...)
int done;
va_start (arg, format);
- done = __vfwprintf (stream, format, arg);
+ done = __vfwprintf_internal (stream, format, arg, 0);
va_end (arg);
return done;
diff --git a/libio/fwscanf.c b/libio/fwscanf.c
index ce4b35d31d..5c62bda78d 100644
--- a/libio/fwscanf.c
+++ b/libio/fwscanf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -13,7 +13,12 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+
+/* This file defines one of the deprecated scanf variants. */
+#include <features.h>
+#undef __GLIBC_USE_DEPRECATED_SCANF
+#define __GLIBC_USE_DEPRECATED_SCANF 1
#include <libioP.h>
#include <stdarg.h>
diff --git a/libio/genops.c b/libio/genops.c
index 2fec221b99..f871e7751b 100644
--- a/libio/genops.c
+++ b/libio/genops.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
As a special exception, if you link the code in this file with
files compiled with a GNU compiler to produce an executable,
@@ -789,9 +789,16 @@ _IO_unbuffer_all (void)
for (fp = (FILE *) _IO_list_all; fp; fp = fp->_chain)
{
+ int legacy = 0;
+
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
+ if (__glibc_unlikely (_IO_vtable_offset (fp) != 0))
+ legacy = 1;
+#endif
+
if (! (fp->_flags & _IO_UNBUFFERED)
/* Iff stream is un-orientated, it wasn't used. */
- && fp->_mode != 0)
+ && (legacy || fp->_mode != 0))
{
#ifdef _IO_MTSAFE_IO
int cnt;
@@ -805,7 +812,7 @@ _IO_unbuffer_all (void)
__sched_yield ();
#endif
- if (! dealloc_buffers && !(fp->_flags & _IO_USER_BUF))
+ if (! legacy && ! dealloc_buffers && !(fp->_flags & _IO_USER_BUF))
{
fp->_flags |= _IO_USER_BUF;
@@ -816,7 +823,7 @@ _IO_unbuffer_all (void)
_IO_SETBUF (fp, NULL, 0);
- if (fp->_mode > 0)
+ if (! legacy && fp->_mode > 0)
_IO_wsetb (fp, NULL, NULL, 0);
#ifdef _IO_MTSAFE_IO
@@ -827,7 +834,8 @@ _IO_unbuffer_all (void)
/* Make sure that never again the wide char functions can be
used. */
- fp->_mode = -1;
+ if (! legacy)
+ fp->_mode = -1;
}
#ifdef _IO_MTSAFE_IO
diff --git a/libio/getc.c b/libio/getc.c
index dd925232d5..43af50821f 100644
--- a/libio/getc.c
+++ b/libio/getc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/getc_u.c b/libio/getc_u.c
index ce2bb88849..c864511042 100644
--- a/libio/getc_u.c
+++ b/libio/getc_u.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/getchar.c b/libio/getchar.c
index 0e3f4153c8..857c506772 100644
--- a/libio/getchar.c
+++ b/libio/getchar.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
As a special exception, if you link the code in this file with
files compiled with a GNU compiler to produce an executable,
@@ -33,11 +33,11 @@ int
getchar (void)
{
int result;
- if (!_IO_need_lock (_IO_stdin))
- return _IO_getc_unlocked (_IO_stdin);
- _IO_acquire_lock (_IO_stdin);
- result = _IO_getc_unlocked (_IO_stdin);
- _IO_release_lock (_IO_stdin);
+ if (!_IO_need_lock (stdin))
+ return _IO_getc_unlocked (stdin);
+ _IO_acquire_lock (stdin);
+ result = _IO_getc_unlocked (stdin);
+ _IO_release_lock (stdin);
return result;
}
diff --git a/libio/getchar_u.c b/libio/getchar_u.c
index 4a0499dc69..e28dad57a9 100644
--- a/libio/getchar_u.c
+++ b/libio/getchar_u.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
As a special exception, if you link the code in this file with
files compiled with a GNU compiler to produce an executable,
@@ -32,5 +32,5 @@
int
getchar_unlocked (void)
{
- return _IO_getc_unlocked (_IO_stdin);
+ return _IO_getc_unlocked (stdin);
}
diff --git a/libio/getwc.c b/libio/getwc.c
index f660c93a75..ee89138c76 100644
--- a/libio/getwc.c
+++ b/libio/getwc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/getwc_u.c b/libio/getwc_u.c
index 57ebad958e..73af1b43a0 100644
--- a/libio/getwc_u.c
+++ b/libio/getwc_u.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/getwchar.c b/libio/getwchar.c
index f58a8a62b7..87bbf2d9e4 100644
--- a/libio/getwchar.c
+++ b/libio/getwchar.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
As a special exception, if you link the code in this file with
files compiled with a GNU compiler to produce an executable,
@@ -33,8 +33,8 @@ wint_t
getwchar (void)
{
wint_t result;
- _IO_acquire_lock (_IO_stdin);
- result = _IO_getwc_unlocked (_IO_stdin);
- _IO_release_lock (_IO_stdin);
+ _IO_acquire_lock (stdin);
+ result = _IO_getwc_unlocked (stdin);
+ _IO_release_lock (stdin);
return result;
}
diff --git a/libio/getwchar_u.c b/libio/getwchar_u.c
index d10acf1329..d7c2ea15da 100644
--- a/libio/getwchar_u.c
+++ b/libio/getwchar_u.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
As a special exception, if you link the code in this file with
files compiled with a GNU compiler to produce an executable,
@@ -32,5 +32,5 @@
wint_t
getwchar_unlocked (void)
{
- return _IO_getwc_unlocked (_IO_stdin);
+ return _IO_getwc_unlocked (stdin);
}
diff --git a/libio/iofclose.c b/libio/iofclose.c
index 7a8b89f9f5..3c648d6c13 100644
--- a/libio/iofclose.c
+++ b/libio/iofclose.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
As a special exception, if you link the code in this file with
files compiled with a GNU compiler to produce an executable,
@@ -62,8 +62,8 @@ _IO_new_fclose (FILE *fp)
struct _IO_codecvt *cc = fp->_codecvt;
__libc_lock_lock (__gconv_lock);
- __gconv_release_step (cc->__cd_in.__cd.__steps);
- __gconv_release_step (cc->__cd_out.__cd.__steps);
+ __gconv_release_step (cc->__cd_in.step);
+ __gconv_release_step (cc->__cd_out.step);
__libc_lock_unlock (__gconv_lock);
}
else
@@ -71,12 +71,7 @@ _IO_new_fclose (FILE *fp)
if (_IO_have_backup (fp))
_IO_free_backup_area (fp);
}
- if (fp != _IO_stdin && fp != _IO_stdout && fp != _IO_stderr)
- {
- fp->_flags = 0;
- free(fp);
- }
-
+ _IO_deallocate_file (fp);
return status;
}
diff --git a/libio/iofdopen.c b/libio/iofdopen.c
index 1f20eacb25..a6ee05f7dc 100644
--- a/libio/iofdopen.c
+++ b/libio/iofdopen.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/iofflush.c b/libio/iofflush.c
index 5f3a3246a9..403385ec49 100644
--- a/libio/iofflush.c
+++ b/libio/iofflush.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/iofflush_u.c b/libio/iofflush_u.c
index aff264a0b3..9afd3d49bf 100644
--- a/libio/iofflush_u.c
+++ b/libio/iofflush_u.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/iofgetpos.c b/libio/iofgetpos.c
index 8177326c9c..06ac51bb34 100644
--- a/libio/iofgetpos.c
+++ b/libio/iofgetpos.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
As a special exception, if you link the code in this file with
files compiled with a GNU compiler to produce an executable,
@@ -70,8 +70,7 @@ _IO_new_fgetpos (FILE *fp, __fpos_t *posp)
else
{
posp->__pos = pos;
- if (fp->_mode > 0
- && (*fp->_codecvt->__codecvt_do_encoding) (fp->_codecvt) < 0)
+ if (fp->_mode > 0 && __libio_codecvt_encoding (fp->_codecvt) < 0)
/* This is a stateful encoding, safe the state. */
posp->__state = fp->_wide_data->_IO_state;
}
diff --git a/libio/iofgetpos64.c b/libio/iofgetpos64.c
index 0ec5413197..d3a5a08c9d 100644
--- a/libio/iofgetpos64.c
+++ b/libio/iofgetpos64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
As a special exception, if you link the code in this file with
files compiled with a GNU compiler to produce an executable,
@@ -54,8 +54,7 @@ _IO_new_fgetpos64 (FILE *fp, __fpos64_t *posp)
else
{
posp->__pos = pos;
- if (fp->_mode > 0
- && (*fp->_codecvt->__codecvt_do_encoding) (fp->_codecvt) < 0)
+ if (fp->_mode > 0 && __libio_codecvt_encoding (fp->_codecvt) < 0)
/* This is a stateful encoding, safe the state. */
posp->__state = fp->_wide_data->_IO_state;
}
diff --git a/libio/iofgets.c b/libio/iofgets.c
index 68177dbe22..d57e42c091 100644
--- a/libio/iofgets.c
+++ b/libio/iofgets.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/iofgets_u.c b/libio/iofgets_u.c
index 9d33a37621..cdb1b25202 100644
--- a/libio/iofgets_u.c
+++ b/libio/iofgets_u.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/iofgetws.c b/libio/iofgetws.c
index 292a161757..8803c8a33c 100644
--- a/libio/iofgetws.c
+++ b/libio/iofgetws.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/iofgetws_u.c b/libio/iofgetws_u.c
index 46431a278b..8f3145c708 100644
--- a/libio/iofgetws_u.c
+++ b/libio/iofgetws_u.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/iofopen.c b/libio/iofopen.c
index ed3e8b853c..383ae4ad6f 100644
--- a/libio/iofopen.c
+++ b/libio/iofopen.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/iofopen64.c b/libio/iofopen64.c
index e3c7c29903..c1df3f3c0a 100644
--- a/libio/iofopen64.c
+++ b/libio/iofopen64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/iofopncook.c b/libio/iofopncook.c
index 43a87fe4be..66ae10b346 100644
--- a/libio/iofopncook.c
+++ b/libio/iofopncook.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/iofputs.c b/libio/iofputs.c
index 96c7e8d329..fffc80e0ec 100644
--- a/libio/iofputs.c
+++ b/libio/iofputs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/iofputs_u.c b/libio/iofputs_u.c
index 94309b48a2..c9e7a4d1e9 100644
--- a/libio/iofputs_u.c
+++ b/libio/iofputs_u.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/iofputws.c b/libio/iofputws.c
index 70b1f064d2..ac68f02a1b 100644
--- a/libio/iofputws.c
+++ b/libio/iofputws.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/iofputws_u.c b/libio/iofputws_u.c
index 7d035751c7..829309a7fc 100644
--- a/libio/iofputws_u.c
+++ b/libio/iofputws_u.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/iofread.c b/libio/iofread.c
index 5ed05e9dbe..d80b43944f 100644
--- a/libio/iofread.c
+++ b/libio/iofread.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/iofread_u.c b/libio/iofread_u.c
index 2c3baf99f3..75bda9aa0b 100644
--- a/libio/iofread_u.c
+++ b/libio/iofread_u.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/iofsetpos.c b/libio/iofsetpos.c
index da48b27c3b..f71a4baf62 100644
--- a/libio/iofsetpos.c
+++ b/libio/iofsetpos.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
As a special exception, if you link the code in this file with
files compiled with a GNU compiler to produce an executable,
@@ -58,8 +58,7 @@ _IO_new_fsetpos (FILE *fp, const __fpos_t *posp)
else
{
result = 0;
- if (fp->_mode > 0
- && (*fp->_codecvt->__codecvt_do_encoding) (fp->_codecvt) < 0)
+ if (fp->_mode > 0 && __libio_codecvt_encoding (fp->_codecvt) < 0)
/* This is a stateful encoding, restore the state. */
fp->_wide_data->_IO_state = posp->__state;
}
diff --git a/libio/iofsetpos64.c b/libio/iofsetpos64.c
index 29da981488..0182332d22 100644
--- a/libio/iofsetpos64.c
+++ b/libio/iofsetpos64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
As a special exception, if you link the code in this file with
files compiled with a GNU compiler to produce an executable,
@@ -48,8 +48,7 @@ _IO_new_fsetpos64 (FILE *fp, const fpos64_t *posp)
else
{
result = 0;
- if (fp->_mode > 0
- && (*fp->_codecvt->__codecvt_do_encoding) (fp->_codecvt) < 0)
+ if (fp->_mode > 0 && __libio_codecvt_encoding (fp->_codecvt) < 0)
/* This is a stateful encoding, safe the state. */
fp->_wide_data->_IO_state = posp->__state;
}
diff --git a/libio/ioftell.c b/libio/ioftell.c
index 571a648788..7ab3123054 100644
--- a/libio/ioftell.c
+++ b/libio/ioftell.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/iofwide.c b/libio/iofwide.c
index d8ec66428e..3acebba07d 100644
--- a/libio/iofwide.c
+++ b/libio/iofwide.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
As a special exception, if you link the code in this file with
files compiled with a GNU compiler to produce an executable,
@@ -39,44 +39,6 @@
#include <sysdep.h>
-/* Prototypes of libio's codecvt functions. */
-static enum __codecvt_result do_out (struct _IO_codecvt *codecvt,
- __mbstate_t *statep,
- const wchar_t *from_start,
- const wchar_t *from_end,
- const wchar_t **from_stop, char *to_start,
- char *to_end, char **to_stop);
-static enum __codecvt_result do_unshift (struct _IO_codecvt *codecvt,
- __mbstate_t *statep, char *to_start,
- char *to_end, char **to_stop);
-static enum __codecvt_result do_in (struct _IO_codecvt *codecvt,
- __mbstate_t *statep,
- const char *from_start,
- const char *from_end,
- const char **from_stop, wchar_t *to_start,
- wchar_t *to_end, wchar_t **to_stop);
-static int do_encoding (struct _IO_codecvt *codecvt);
-static int do_length (struct _IO_codecvt *codecvt, __mbstate_t *statep,
- const char *from_start,
- const char *from_end, size_t max);
-static int do_max_length (struct _IO_codecvt *codecvt);
-static int do_always_noconv (struct _IO_codecvt *codecvt);
-
-
-/* The functions used in `codecvt' for libio are always the same. */
-const struct _IO_codecvt __libio_codecvt =
-{
- .__codecvt_destr = NULL, /* Destructor, never used. */
- .__codecvt_do_out = do_out,
- .__codecvt_do_unshift = do_unshift,
- .__codecvt_do_in = do_in,
- .__codecvt_do_encoding = do_encoding,
- .__codecvt_do_always_noconv = do_always_noconv,
- .__codecvt_do_length = do_length,
- .__codecvt_do_max_length = do_max_length
-};
-
-
/* Return orientation of stream. If mode is nonzero try to change
the orientation first. */
#undef _IO_fwide
@@ -87,8 +49,7 @@ _IO_fwide (FILE *fp, int mode)
mode = mode < 0 ? -1 : (mode == 0 ? 0 : 1);
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
- if (__builtin_expect (&_IO_stdin_used == NULL, 0)
- && (fp == _IO_stdin || fp == _IO_stdout || fp == _IO_stderr))
+ if (__glibc_unlikely (&_IO_stdin_used == NULL) && _IO_legacy_file (fp))
/* This is for a stream in the glibc 2.0 format. */
return -1;
#endif
@@ -119,25 +80,19 @@ _IO_fwide (FILE *fp, int mode)
assert (fcts.towc_nsteps == 1);
assert (fcts.tomb_nsteps == 1);
- /* The functions are always the same. */
- *cc = __libio_codecvt;
-
- cc->__cd_in.__cd.__nsteps = fcts.towc_nsteps;
- cc->__cd_in.__cd.__steps = fcts.towc;
+ cc->__cd_in.step = fcts.towc;
- cc->__cd_in.__cd.__data[0].__invocation_counter = 0;
- cc->__cd_in.__cd.__data[0].__internal_use = 1;
- cc->__cd_in.__cd.__data[0].__flags = __GCONV_IS_LAST;
- cc->__cd_in.__cd.__data[0].__statep = &fp->_wide_data->_IO_state;
+ cc->__cd_in.step_data.__invocation_counter = 0;
+ cc->__cd_in.step_data.__internal_use = 1;
+ cc->__cd_in.step_data.__flags = __GCONV_IS_LAST;
+ cc->__cd_in.step_data.__statep = &fp->_wide_data->_IO_state;
- cc->__cd_out.__cd.__nsteps = fcts.tomb_nsteps;
- cc->__cd_out.__cd.__steps = fcts.tomb;
+ cc->__cd_out.step = fcts.tomb;
- cc->__cd_out.__cd.__data[0].__invocation_counter = 0;
- cc->__cd_out.__cd.__data[0].__internal_use = 1;
- cc->__cd_out.__cd.__data[0].__flags
- = __GCONV_IS_LAST | __GCONV_TRANSLIT;
- cc->__cd_out.__cd.__data[0].__statep = &fp->_wide_data->_IO_state;
+ cc->__cd_out.step_data.__invocation_counter = 0;
+ cc->__cd_out.step_data.__internal_use = 1;
+ cc->__cd_out.step_data.__flags = __GCONV_IS_LAST | __GCONV_TRANSLIT;
+ cc->__cd_out.step_data.__statep = &fp->_wide_data->_IO_state;
}
/* From now on use the wide character callback functions. */
@@ -151,22 +106,22 @@ _IO_fwide (FILE *fp, int mode)
}
-static enum __codecvt_result
-do_out (struct _IO_codecvt *codecvt, __mbstate_t *statep,
- const wchar_t *from_start, const wchar_t *from_end,
- const wchar_t **from_stop, char *to_start, char *to_end,
- char **to_stop)
+enum __codecvt_result
+__libio_codecvt_out (struct _IO_codecvt *codecvt, __mbstate_t *statep,
+ const wchar_t *from_start, const wchar_t *from_end,
+ const wchar_t **from_stop, char *to_start, char *to_end,
+ char **to_stop)
{
enum __codecvt_result result;
- struct __gconv_step *gs = codecvt->__cd_out.__cd.__steps;
+ struct __gconv_step *gs = codecvt->__cd_out.step;
int status;
size_t dummy;
const unsigned char *from_start_copy = (unsigned char *) from_start;
- codecvt->__cd_out.__cd.__data[0].__outbuf = (unsigned char *) to_start;
- codecvt->__cd_out.__cd.__data[0].__outbufend = (unsigned char *) to_end;
- codecvt->__cd_out.__cd.__data[0].__statep = statep;
+ codecvt->__cd_out.step_data.__outbuf = (unsigned char *) to_start;
+ codecvt->__cd_out.step_data.__outbufend = (unsigned char *) to_end;
+ codecvt->__cd_out.step_data.__statep = statep;
__gconv_fct fct = gs->__fct;
#ifdef PTR_DEMANGLE
@@ -175,12 +130,12 @@ do_out (struct _IO_codecvt *codecvt, __mbstate_t *statep,
#endif
status = DL_CALL_FCT (fct,
- (gs, codecvt->__cd_out.__cd.__data, &from_start_copy,
+ (gs, &codecvt->__cd_out.step_data, &from_start_copy,
(const unsigned char *) from_end, NULL,
&dummy, 0, 0));
*from_stop = (wchar_t *) from_start_copy;
- *to_stop = (char *) codecvt->__cd_out.__cd.__data[0].__outbuf;
+ *to_stop = (char *) codecvt->__cd_out.step_data.__outbuf;
switch (status)
{
@@ -203,68 +158,22 @@ do_out (struct _IO_codecvt *codecvt, __mbstate_t *statep,
}
-static enum __codecvt_result
-do_unshift (struct _IO_codecvt *codecvt, __mbstate_t *statep,
- char *to_start, char *to_end, char **to_stop)
+enum __codecvt_result
+__libio_codecvt_in (struct _IO_codecvt *codecvt, __mbstate_t *statep,
+ const char *from_start, const char *from_end,
+ const char **from_stop,
+ wchar_t *to_start, wchar_t *to_end, wchar_t **to_stop)
{
enum __codecvt_result result;
- struct __gconv_step *gs = codecvt->__cd_out.__cd.__steps;
- int status;
- size_t dummy;
-
- codecvt->__cd_out.__cd.__data[0].__outbuf = (unsigned char *) to_start;
- codecvt->__cd_out.__cd.__data[0].__outbufend = (unsigned char *) to_end;
- codecvt->__cd_out.__cd.__data[0].__statep = statep;
-
- __gconv_fct fct = gs->__fct;
-#ifdef PTR_DEMANGLE
- if (gs->__shlib_handle != NULL)
- PTR_DEMANGLE (fct);
-#endif
-
- status = DL_CALL_FCT (fct,
- (gs, codecvt->__cd_out.__cd.__data, NULL, NULL,
- NULL, &dummy, 1, 0));
-
- *to_stop = (char *) codecvt->__cd_out.__cd.__data[0].__outbuf;
-
- switch (status)
- {
- case __GCONV_OK:
- case __GCONV_EMPTY_INPUT:
- result = __codecvt_ok;
- break;
-
- case __GCONV_FULL_OUTPUT:
- case __GCONV_INCOMPLETE_INPUT:
- result = __codecvt_partial;
- break;
-
- default:
- result = __codecvt_error;
- break;
- }
-
- return result;
-}
-
-
-static enum __codecvt_result
-do_in (struct _IO_codecvt *codecvt, __mbstate_t *statep,
- const char *from_start, const char *from_end, const char **from_stop,
- wchar_t *to_start, wchar_t *to_end, wchar_t **to_stop)
-{
- enum __codecvt_result result;
-
- struct __gconv_step *gs = codecvt->__cd_in.__cd.__steps;
+ struct __gconv_step *gs = codecvt->__cd_in.step;
int status;
size_t dummy;
const unsigned char *from_start_copy = (unsigned char *) from_start;
- codecvt->__cd_in.__cd.__data[0].__outbuf = (unsigned char *) to_start;
- codecvt->__cd_in.__cd.__data[0].__outbufend = (unsigned char *) to_end;
- codecvt->__cd_in.__cd.__data[0].__statep = statep;
+ codecvt->__cd_in.step_data.__outbuf = (unsigned char *) to_start;
+ codecvt->__cd_in.step_data.__outbufend = (unsigned char *) to_end;
+ codecvt->__cd_in.step_data.__statep = statep;
__gconv_fct fct = gs->__fct;
#ifdef PTR_DEMANGLE
@@ -273,12 +182,12 @@ do_in (struct _IO_codecvt *codecvt, __mbstate_t *statep,
#endif
status = DL_CALL_FCT (fct,
- (gs, codecvt->__cd_in.__cd.__data, &from_start_copy,
+ (gs, &codecvt->__cd_in.step_data, &from_start_copy,
(const unsigned char *) from_end, NULL,
&dummy, 0, 0));
*from_stop = (const char *) from_start_copy;
- *to_stop = (wchar_t *) codecvt->__cd_in.__cd.__data[0].__outbuf;
+ *to_stop = (wchar_t *) codecvt->__cd_in.step_data.__outbuf;
switch (status)
{
@@ -301,43 +210,37 @@ do_in (struct _IO_codecvt *codecvt, __mbstate_t *statep,
}
-static int
-do_encoding (struct _IO_codecvt *codecvt)
+int
+__libio_codecvt_encoding (struct _IO_codecvt *codecvt)
{
/* See whether the encoding is stateful. */
- if (codecvt->__cd_in.__cd.__steps[0].__stateful)
+ if (codecvt->__cd_in.step->__stateful)
return -1;
/* Fortunately not. Now determine the input bytes for the conversion
necessary for each wide character. */
- if (codecvt->__cd_in.__cd.__steps[0].__min_needed_from
- != codecvt->__cd_in.__cd.__steps[0].__max_needed_from)
+ if (codecvt->__cd_in.step->__min_needed_from
+ != codecvt->__cd_in.step->__max_needed_from)
/* Not a constant value. */
return 0;
- return codecvt->__cd_in.__cd.__steps[0].__min_needed_from;
-}
-
-
-static int
-do_always_noconv (struct _IO_codecvt *codecvt)
-{
- return 0;
+ return codecvt->__cd_in.step->__min_needed_from;
}
-static int
-do_length (struct _IO_codecvt *codecvt, __mbstate_t *statep,
- const char *from_start, const char *from_end, size_t max)
+int
+__libio_codecvt_length (struct _IO_codecvt *codecvt, __mbstate_t *statep,
+ const char *from_start, const char *from_end,
+ size_t max)
{
int result;
const unsigned char *cp = (const unsigned char *) from_start;
wchar_t to_buf[max];
- struct __gconv_step *gs = codecvt->__cd_in.__cd.__steps;
+ struct __gconv_step *gs = codecvt->__cd_in.step;
size_t dummy;
- codecvt->__cd_in.__cd.__data[0].__outbuf = (unsigned char *) to_buf;
- codecvt->__cd_in.__cd.__data[0].__outbufend = (unsigned char *) &to_buf[max];
- codecvt->__cd_in.__cd.__data[0].__statep = statep;
+ codecvt->__cd_in.step_data.__outbuf = (unsigned char *) to_buf;
+ codecvt->__cd_in.step_data.__outbufend = (unsigned char *) &to_buf[max];
+ codecvt->__cd_in.step_data.__statep = statep;
__gconv_fct fct = gs->__fct;
#ifdef PTR_DEMANGLE
@@ -346,7 +249,7 @@ do_length (struct _IO_codecvt *codecvt, __mbstate_t *statep,
#endif
DL_CALL_FCT (fct,
- (gs, codecvt->__cd_in.__cd.__data, &cp,
+ (gs, &codecvt->__cd_in.step_data, &cp,
(const unsigned char *) from_end, NULL,
&dummy, 0, 0));
@@ -354,10 +257,3 @@ do_length (struct _IO_codecvt *codecvt, __mbstate_t *statep,
return result;
}
-
-
-static int
-do_max_length (struct _IO_codecvt *codecvt)
-{
- return codecvt->__cd_in.__cd.__steps[0].__max_needed_from;
-}
diff --git a/libio/iofwrite.c b/libio/iofwrite.c
index 800341b7da..daf68c7164 100644
--- a/libio/iofwrite.c
+++ b/libio/iofwrite.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/iofwrite_u.c b/libio/iofwrite_u.c
index 71ac6266c0..2534f14144 100644
--- a/libio/iofwrite_u.c
+++ b/libio/iofwrite_u.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/iogetdelim.c b/libio/iogetdelim.c
index 4f3ce5ed62..c27ce12a9e 100644
--- a/libio/iogetdelim.c
+++ b/libio/iogetdelim.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/iogetline.c b/libio/iogetline.c
index 8deeacee08..1d50fb1cd7 100644
--- a/libio/iogetline.c
+++ b/libio/iogetline.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/iogets.c b/libio/iogets.c
index c2223e6ecc..41467d72f3 100644
--- a/libio/iogets.c
+++ b/libio/iogets.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
As a special exception, if you link the code in this file with
files compiled with a GNU compiler to produce an executable,
@@ -34,8 +34,8 @@ _IO_gets (char *buf)
int ch;
char *retval;
- _IO_acquire_lock (_IO_stdin);
- ch = _IO_getc_unlocked (_IO_stdin);
+ _IO_acquire_lock (stdin);
+ ch = _IO_getc_unlocked (stdin);
if (ch == EOF)
{
retval = NULL;
@@ -48,22 +48,22 @@ _IO_gets (char *buf)
/* This is very tricky since a file descriptor may be in the
non-blocking mode. The error flag doesn't mean much in this
case. We return an error only when there is a new error. */
- int old_error = _IO_stdin->_flags & _IO_ERR_SEEN;
- _IO_stdin->_flags &= ~_IO_ERR_SEEN;
+ int old_error = stdin->_flags & _IO_ERR_SEEN;
+ stdin->_flags &= ~_IO_ERR_SEEN;
buf[0] = (char) ch;
- count = _IO_getline (_IO_stdin, buf + 1, INT_MAX, '\n', 0) + 1;
- if (_IO_stdin->_flags & _IO_ERR_SEEN)
+ count = _IO_getline (stdin, buf + 1, INT_MAX, '\n', 0) + 1;
+ if (stdin->_flags & _IO_ERR_SEEN)
{
retval = NULL;
goto unlock_return;
}
else
- _IO_stdin->_flags |= old_error;
+ stdin->_flags |= old_error;
}
buf[count] = 0;
retval = buf;
unlock_return:
- _IO_release_lock (_IO_stdin);
+ _IO_release_lock (stdin);
return retval;
}
diff --git a/libio/iogetwline.c b/libio/iogetwline.c
index d69be5a979..167329c1b6 100644
--- a/libio/iogetwline.c
+++ b/libio/iogetwline.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/iolibio.h b/libio/iolibio.h
index 6c94fe6d62..9561833655 100644
--- a/libio/iolibio.h
+++ b/libio/iolibio.h
@@ -51,23 +51,13 @@ extern int _IO_sscanf (const char*, const char*, ...) __THROW;
extern int _IO_sprintf (char *, const char*, ...) __THROW;
extern int _IO_ungetc (int, FILE*) __THROW;
extern int _IO_vsscanf (const char *, const char *, __gnuc_va_list) __THROW;
-extern int _IO_vsprintf (char*, const char*, __gnuc_va_list) __THROW;
-libc_hidden_proto (_IO_vsprintf)
-extern int _IO_vswprintf (wchar_t*, size_t, const wchar_t*, __gnuc_va_list)
- __THROW;
-struct obstack;
-extern int _IO_obstack_vprintf (struct obstack *, const char *, __gnuc_va_list)
- __THROW;
-extern int _IO_obstack_printf (struct obstack *, const char *, ...) __THROW;
#define _IO_clearerr(FP) ((FP)->_flags &= ~(_IO_ERR_SEEN|_IO_EOF_SEEN))
#define _IO_fseek(__fp, __offset, __whence) \
(_IO_seekoff_unlocked (__fp, __offset, __whence, _IOS_INPUT|_IOS_OUTPUT) \
== _IO_pos_BAD ? EOF : 0)
#define _IO_rewind(FILE) \
(void) _IO_seekoff_unlocked (FILE, 0, 0, _IOS_INPUT|_IOS_OUTPUT)
-#define _IO_vprintf(FORMAT, ARGS) \
- _IO_vfprintf (_IO_stdout, FORMAT, ARGS)
#define _IO_freopen(FILENAME, MODE, FP) \
(_IO_file_close_it (FP), \
_IO_file_fopen (FP, FILENAME, MODE, 1))
diff --git a/libio/iopadn.c b/libio/iopadn.c
index 3e6e69aa89..3ccd61fcf2 100644
--- a/libio/iopadn.c
+++ b/libio/iopadn.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/iopopen.c b/libio/iopopen.c
index 2eff45b4c8..22d53a88ef 100644
--- a/libio/iopopen.c
+++ b/libio/iopopen.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Per Bothner <bothner@cygnus.com>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
As a special exception, if you link the code in this file with
files compiled with a GNU compiler to produce an executable,
@@ -34,7 +34,8 @@
#include <not-cancel.h>
#include <sys/types.h>
#include <sys/wait.h>
-#include <kernel-features.h>
+#include <spawn.h>
+#include <paths.h>
struct _IO_proc_file
{
@@ -59,13 +60,60 @@ unlock (void *not_used)
}
#endif
+/* POSIX states popen shall ensure that any streams from previous popen()
+ calls that remain open in the parent process should be closed in the new
+ child process.
+ To avoid a race-condition between checking which file descriptors need to
+ be close (by transversing the proc_file_chain list) and the insertion of a
+ new one after a successful posix_spawn this function should be called
+ with proc_file_chain_lock acquired. */
+static bool
+spawn_process (posix_spawn_file_actions_t *fa, FILE *fp, const char *command,
+ int do_cloexec, int pipe_fds[2], int parent_end, int child_end,
+ int child_pipe_fd)
+{
+
+ for (struct _IO_proc_file *p = proc_file_chain; p; p = p->next)
+ {
+ int fd = _IO_fileno ((FILE *) p);
+
+ /* If any stream from previous popen() calls has fileno
+ child_pipe_fd, it has been already closed by the adddup2 action
+ above. */
+ if (fd != child_pipe_fd
+ && __posix_spawn_file_actions_addclose (fa, fd) != 0)
+ return false;
+ }
+
+ if (__posix_spawn (&((_IO_proc_file *) fp)->pid, _PATH_BSHELL, fa, 0,
+ (char *const[]){ (char*) "sh", (char*) "-c",
+ (char *) command, NULL }, __environ) != 0)
+ return false;
+
+ __close_nocancel (pipe_fds[child_end]);
+
+ if (!do_cloexec)
+ /* Undo the effects of the pipe2 call which set the
+ close-on-exec flag. */
+ __fcntl (pipe_fds[parent_end], F_SETFD, 0);
+
+ _IO_fileno (fp) = pipe_fds[parent_end];
+
+ ((_IO_proc_file *) fp)->next = proc_file_chain;
+ proc_file_chain = (_IO_proc_file *) fp;
+
+ return true;
+}
+
FILE *
_IO_new_proc_open (FILE *fp, const char *command, const char *mode)
{
int read_or_write;
+ /* These are indexes for pipe_fds. */
int parent_end, child_end;
int pipe_fds[2];
- pid_t child_pid;
+ int child_pipe_fd;
+ bool spawn_ok;
int do_read = 0;
int do_write = 0;
@@ -108,72 +156,62 @@ _IO_new_proc_open (FILE *fp, const char *command, const char *mode)
if (do_read)
{
- parent_end = pipe_fds[0];
- child_end = pipe_fds[1];
+ parent_end = 0;
+ child_end = 1;
read_or_write = _IO_NO_WRITES;
+ child_pipe_fd = 1;
}
else
{
- parent_end = pipe_fds[1];
- child_end = pipe_fds[0];
+ parent_end = 1;
+ child_end = 0;
read_or_write = _IO_NO_READS;
+ child_pipe_fd = 0;
}
- ((_IO_proc_file *) fp)->pid = child_pid = __fork ();
- if (child_pid == 0)
- {
- int child_std_end = do_read ? 1 : 0;
- struct _IO_proc_file *p;
-
- if (child_end != child_std_end)
- __dup2 (child_end, child_std_end);
- else
- /* The descriptor is already the one we will use. But it must
- not be marked close-on-exec. Undo the effects. */
- __fcntl (child_end, F_SETFD, 0);
- /* POSIX.2: "popen() shall ensure that any streams from previous
- popen() calls that remain open in the parent process are closed
- in the new child process." */
- for (p = proc_file_chain; p; p = p->next)
- {
- int fd = _IO_fileno ((FILE *) p);
+ posix_spawn_file_actions_t fa;
+ /* posix_spawn_file_actions_init does not fail. */
+ __posix_spawn_file_actions_init (&fa);
- /* If any stream from previous popen() calls has fileno
- child_std_end, it has been already closed by the dup2 syscall
- above. */
- if (fd != child_std_end)
- __close_nocancel (fd);
- }
-
- execl ("/bin/sh", "sh", "-c", command, (char *) 0);
- _exit (127);
- }
- __close_nocancel (child_end);
- if (child_pid < 0)
+ /* The descriptor is already the one the child will use. In this case
+ it must be moved to another one otherwise, there is no safe way to
+ remove the close-on-exec flag in the child without creating a FD leak
+ race in the parent. */
+ if (pipe_fds[child_end] == child_pipe_fd)
{
- __close_nocancel (parent_end);
- return NULL;
+ int tmp = __fcntl (child_pipe_fd, F_DUPFD_CLOEXEC, 0);
+ if (tmp < 0)
+ goto spawn_failure;
+ __close_nocancel (pipe_fds[child_end]);
+ pipe_fds[child_end] = tmp;
}
- if (!do_cloexec)
- /* Undo the effects of the pipe2 call which set the
- close-on-exec flag. */
- __fcntl (parent_end, F_SETFD, 0);
+ if (__posix_spawn_file_actions_adddup2 (&fa, pipe_fds[child_end],
+ child_pipe_fd) != 0)
+ goto spawn_failure;
- _IO_fileno (fp) = parent_end;
-
- /* Link into proc_file_chain. */
#ifdef _IO_MTSAFE_IO
_IO_cleanup_region_start_noarg (unlock);
_IO_lock_lock (proc_file_chain_lock);
#endif
- ((_IO_proc_file *) fp)->next = proc_file_chain;
- proc_file_chain = (_IO_proc_file *) fp;
+ spawn_ok = spawn_process (&fa, fp, command, do_cloexec, pipe_fds,
+ parent_end, child_end, child_pipe_fd);
#ifdef _IO_MTSAFE_IO
_IO_lock_unlock (proc_file_chain_lock);
_IO_cleanup_region_end (0);
#endif
+ __posix_spawn_file_actions_destroy (&fa);
+
+ if (!spawn_ok)
+ {
+ spawn_failure:
+ __close_nocancel (pipe_fds[child_end]);
+ __close_nocancel (pipe_fds[parent_end]);
+ __set_errno (ENOMEM);
+ return NULL;
+ }
+
_IO_mask_flags (fp, read_or_write, _IO_NO_READS|_IO_NO_WRITES);
return fp;
}
diff --git a/libio/ioputs.c b/libio/ioputs.c
index c9967c3883..2291da7e46 100644
--- a/libio/ioputs.c
+++ b/libio/ioputs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
As a special exception, if you link the code in this file with
files compiled with a GNU compiler to produce an executable,
@@ -33,15 +33,15 @@ _IO_puts (const char *str)
{
int result = EOF;
size_t len = strlen (str);
- _IO_acquire_lock (_IO_stdout);
+ _IO_acquire_lock (stdout);
- if ((_IO_vtable_offset (_IO_stdout) != 0
- || _IO_fwide (_IO_stdout, -1) == -1)
- && _IO_sputn (_IO_stdout, str, len) == len
- && _IO_putc_unlocked ('\n', _IO_stdout) != EOF)
+ if ((_IO_vtable_offset (stdout) != 0
+ || _IO_fwide (stdout, -1) == -1)
+ && _IO_sputn (stdout, str, len) == len
+ && _IO_putc_unlocked ('\n', stdout) != EOF)
result = MIN (INT_MAX, len + 1);
- _IO_release_lock (_IO_stdout);
+ _IO_release_lock (stdout);
return result;
}
diff --git a/libio/ioseekoff.c b/libio/ioseekoff.c
index 773cdc672d..c7b04ee99b 100644
--- a/libio/ioseekoff.c
+++ b/libio/ioseekoff.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/ioseekpos.c b/libio/ioseekpos.c
index 5e8b0ff2cc..5b51a7e43b 100644
--- a/libio/ioseekpos.c
+++ b/libio/ioseekpos.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/iosetbuffer.c b/libio/iosetbuffer.c
index 0419db3113..16abaa03c7 100644
--- a/libio/iosetbuffer.c
+++ b/libio/iosetbuffer.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/iosetvbuf.c b/libio/iosetvbuf.c
index a35d866d82..58939b010c 100644
--- a/libio/iosetvbuf.c
+++ b/libio/iosetvbuf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/ioungetc.c b/libio/ioungetc.c
index 59ebb06177..246f9d440f 100644
--- a/libio/ioungetc.c
+++ b/libio/ioungetc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/ioungetwc.c b/libio/ioungetwc.c
index 5f882f9436..f4642dc49e 100644
--- a/libio/ioungetwc.c
+++ b/libio/ioungetwc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/iovdprintf.c b/libio/iovdprintf.c
index 78a3a2bd15..e95b6531fd 100644
--- a/libio/iovdprintf.c
+++ b/libio/iovdprintf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
As a special exception, if you link the code in this file with
files compiled with a GNU compiler to produce an executable,
@@ -28,7 +28,8 @@
#include <stdio_ext.h>
int
-_IO_vdprintf (int d, const char *format, va_list arg)
+__vdprintf_internal (int d, const char *format, va_list arg,
+ unsigned int mode_flags)
{
struct _IO_FILE_plus tmpfil;
struct _IO_wide_data wd;
@@ -50,7 +51,7 @@ _IO_vdprintf (int d, const char *format, va_list arg)
_IO_mask_flags (&tmpfil.file, _IO_NO_READS,
_IO_NO_READS+_IO_NO_WRITES+_IO_IS_APPENDING);
- done = _IO_vfprintf (&tmpfil.file, format, arg);
+ done = __vfprintf_internal (&tmpfil.file, format, arg, mode_flags);
if (done != EOF && _IO_do_flush (&tmpfil.file) == EOF)
done = EOF;
@@ -59,4 +60,10 @@ _IO_vdprintf (int d, const char *format, va_list arg)
return done;
}
-ldbl_weak_alias (_IO_vdprintf, vdprintf)
+
+int
+__vdprintf (int d, const char *format, va_list arg)
+{
+ return __vdprintf_internal (d, format, arg, 0);
+}
+ldbl_weak_alias (__vdprintf, vdprintf)
diff --git a/libio/iovsprintf.c b/libio/iovsprintf.c
index 4def251701..f9fb8f05b0 100644
--- a/libio/iovsprintf.c
+++ b/libio/iovsprintf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
As a special exception, if you link the code in this file with
files compiled with a GNU compiler to produce an executable,
@@ -27,8 +27,48 @@
#include "libioP.h"
#include "strfile.h"
+static int __THROW
+_IO_str_chk_overflow (FILE *fp, int c)
+{
+ /* If we get here, the user-supplied buffer would be overrun by
+ further output. */
+ __chk_fail ();
+}
+
+static const struct _IO_jump_t _IO_str_chk_jumps libio_vtable =
+{
+ JUMP_INIT_DUMMY,
+ JUMP_INIT(finish, _IO_str_finish),
+ JUMP_INIT(overflow, _IO_str_chk_overflow),
+ JUMP_INIT(underflow, _IO_str_underflow),
+ JUMP_INIT(uflow, _IO_default_uflow),
+ JUMP_INIT(pbackfail, _IO_str_pbackfail),
+ JUMP_INIT(xsputn, _IO_default_xsputn),
+ JUMP_INIT(xsgetn, _IO_default_xsgetn),
+ JUMP_INIT(seekoff, _IO_str_seekoff),
+ JUMP_INIT(seekpos, _IO_default_seekpos),
+ JUMP_INIT(setbuf, _IO_default_setbuf),
+ JUMP_INIT(sync, _IO_default_sync),
+ JUMP_INIT(doallocate, _IO_default_doallocate),
+ JUMP_INIT(read, _IO_default_read),
+ JUMP_INIT(write, _IO_default_write),
+ JUMP_INIT(seek, _IO_default_seek),
+ JUMP_INIT(close, _IO_default_close),
+ JUMP_INIT(stat, _IO_default_stat),
+ JUMP_INIT(showmanyc, _IO_default_showmanyc),
+ JUMP_INIT(imbue, _IO_default_imbue)
+};
+
+/* This function is called by regular vsprintf with maxlen set to -1,
+ and by vsprintf_chk with maxlen set to the size of the output
+ string. In the former case, _IO_str_chk_overflow will never be
+ called; in the latter case it will crash the program if the buffer
+ overflows. */
+
int
-__IO_vsprintf (char *string, const char *format, va_list args)
+__vsprintf_internal (char *string, size_t maxlen,
+ const char *format, va_list args,
+ unsigned int mode_flags)
{
_IO_strfile sf;
int ret;
@@ -37,13 +77,33 @@ __IO_vsprintf (char *string, const char *format, va_list args)
sf._sbf._f._lock = NULL;
#endif
_IO_no_init (&sf._sbf._f, _IO_USER_LOCK, -1, NULL, NULL);
- _IO_JUMPS (&sf._sbf) = &_IO_str_jumps;
- _IO_str_init_static_internal (&sf, string, -1, string);
- ret = _IO_vfprintf (&sf._sbf._f, format, args);
- _IO_putc_unlocked ('\0', &sf._sbf._f);
+ /* When called from fortified sprintf/vsprintf, erase the destination
+ buffer and try to detect overflows. When called from regular
+ sprintf/vsprintf, do not erase the destination buffer, because
+ known user code relies on this behavior (even though its undefined
+ by ISO C), nor try to detect overflows. */
+ if ((mode_flags & PRINTF_CHK) != 0)
+ {
+ _IO_JUMPS (&sf._sbf) = &_IO_str_chk_jumps;
+ string[0] = '\0';
+ }
+ else
+ _IO_JUMPS (&sf._sbf) = &_IO_str_jumps;
+ _IO_str_init_static_internal (&sf, string,
+ (maxlen == -1) ? -1 : maxlen - 1,
+ string);
+
+ ret = __vfprintf_internal (&sf._sbf._f, format, args, mode_flags);
+
+ *sf._sbf._f._IO_write_ptr = '\0';
return ret;
}
-ldbl_hidden_def (__IO_vsprintf, _IO_vsprintf)
-ldbl_strong_alias (__IO_vsprintf, _IO_vsprintf)
-ldbl_weak_alias (__IO_vsprintf, vsprintf)
+int
+__vsprintf (char *string, const char *format, va_list args)
+{
+ return __vsprintf_internal (string, -1, format, args, 0);
+}
+
+ldbl_strong_alias (__vsprintf, _IO_vsprintf)
+ldbl_weak_alias (__vsprintf, vsprintf)
diff --git a/libio/iovsscanf.c b/libio/iovsscanf.c
index e56ab8bd7d..3550ae46e1 100644
--- a/libio/iovsscanf.c
+++ b/libio/iovsscanf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
As a special exception, if you link the code in this file with
files compiled with a GNU compiler to produce an executable,
@@ -24,22 +24,19 @@
This exception applies to code released by its copyright holders
in files containing the exception. */
-#include "libioP.h"
+/* This file defines one of the deprecated scanf variants. */
+#include <features.h>
+#undef __GLIBC_USE_DEPRECATED_SCANF
+#define __GLIBC_USE_DEPRECATED_SCANF 1
+
#include "strfile.h"
int
_IO_vsscanf (const char *string, const char *format, va_list args)
{
- int ret;
_IO_strfile sf;
-#ifdef _IO_MTSAFE_IO
- sf._sbf._f._lock = NULL;
-#endif
- _IO_no_init (&sf._sbf._f, _IO_USER_LOCK, -1, NULL, NULL);
- _IO_JUMPS (&sf._sbf) = &_IO_str_jumps;
- _IO_str_init_static_internal (&sf, (char*)string, 0, NULL);
- ret = _IO_vfscanf (&sf._sbf._f, format, args, NULL);
- return ret;
+ FILE *f = _IO_strfile_read (&sf, string);
+ return __vfscanf_internal (f, format, args, 0);
}
ldbl_weak_alias (_IO_vsscanf, __vsscanf)
ldbl_weak_alias (_IO_vsscanf, vsscanf)
diff --git a/libio/iovswscanf.c b/libio/iovswscanf.c
index 5bd1c88412..3876ce7e30 100644
--- a/libio/iovswscanf.c
+++ b/libio/iovswscanf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
As a special exception, if you link the code in this file with
files compiled with a GNU compiler to produce an executable,
@@ -24,25 +24,20 @@
This exception applies to code released by its copyright holders
in files containing the exception. */
-#include "libioP.h"
-#include "strfile.h"
+/* This file defines one of the deprecated scanf variants. */
+#include <features.h>
+#undef __GLIBC_USE_DEPRECATED_SCANF
+#define __GLIBC_USE_DEPRECATED_SCANF 1
+
#include <wchar.h>
+#include "strfile.h"
int
__vswscanf (const wchar_t *string, const wchar_t *format, va_list args)
{
- int ret;
_IO_strfile sf;
struct _IO_wide_data wd;
-#ifdef _IO_MTSAFE_IO
- sf._sbf._f._lock = NULL;
-#endif
- _IO_no_init (&sf._sbf._f, _IO_USER_LOCK, 0, &wd, &_IO_wstr_jumps);
- _IO_fwide (&sf._sbf._f, 1);
- _IO_wstr_init_static (&sf._sbf._f, (wchar_t *)string, 0, NULL);
- ret = _IO_vfwscanf ((FILE *) &sf._sbf, format, args, NULL);
- return ret;
+ FILE *f = _IO_strfile_readw (&sf, &wd, string);
+ return __vfwscanf_internal (f, format, args, 0);
}
-libc_hidden_def (__vswscanf)
-ldbl_hidden_def (__vswscanf, vswscanf)
ldbl_weak_alias (__vswscanf, vswscanf)
diff --git a/libio/iowpadn.c b/libio/iowpadn.c
index 47f74f20c4..f6990956e5 100644
--- a/libio/iowpadn.c
+++ b/libio/iowpadn.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/libc_fatal.c b/libio/libc_fatal.c
index a3ce928f97..a217f3e9fd 100644
--- a/libio/libc_fatal.c
+++ b/libio/libc_fatal.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
diff --git a/libio/libio.h b/libio/libio.h
index 00f9169613..3be2fe81f6 100644
--- a/libio/libio.h
+++ b/libio/libio.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Per Bothner <bothner@cygnus.com>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
As a special exception, if you link the code in this file with
files compiled with a GNU compiler to produce an executable,
@@ -48,14 +48,10 @@
#include <bits/types/wint_t.h>
#include <gconv.h>
-typedef union
+typedef struct
{
- struct __gconv_info __cd;
- struct
- {
- struct __gconv_info __cd;
- struct __gconv_step_data __data;
- } __combined;
+ struct __gconv_step *step;
+ struct __gconv_step_data step_data;
} _IO_iconv_t;
#include <shlib-compat.h>
@@ -90,9 +86,7 @@ typedef union
/* Bits for the _flags2 field. */
#define _IO_FLAGS2_MMAP 1
#define _IO_FLAGS2_NOTCANCEL 2
-#define _IO_FLAGS2_FORTIFY 4
#define _IO_FLAGS2_USER_WBUF 8
-#define _IO_FLAGS2_SCANF_STD 16
#define _IO_FLAGS2_NOCLOSE 32
#define _IO_FLAGS2_CLOEXEC 64
#define _IO_FLAGS2_NEED_LOCK 128
@@ -118,40 +112,8 @@ struct _IO_marker {
int _pos;
};
-/* This is the structure from the libstdc++ codecvt class. */
-enum __codecvt_result
-{
- __codecvt_ok,
- __codecvt_partial,
- __codecvt_error,
- __codecvt_noconv
-};
-
-/* The order of the elements in the following struct must match the order
- of the virtual functions in the libstdc++ codecvt class. */
struct _IO_codecvt
{
- void (*__codecvt_destr) (struct _IO_codecvt *);
- enum __codecvt_result (*__codecvt_do_out) (struct _IO_codecvt *,
- __mbstate_t *,
- const wchar_t *,
- const wchar_t *,
- const wchar_t **, char *,
- char *, char **);
- enum __codecvt_result (*__codecvt_do_unshift) (struct _IO_codecvt *,
- __mbstate_t *, char *,
- char *, char **);
- enum __codecvt_result (*__codecvt_do_in) (struct _IO_codecvt *,
- __mbstate_t *,
- const char *, const char *,
- const char **, wchar_t *,
- wchar_t *, wchar_t **);
- int (*__codecvt_do_encoding) (struct _IO_codecvt *);
- int (*__codecvt_do_always_noconv) (struct _IO_codecvt *);
- int (*__codecvt_do_length) (struct _IO_codecvt *, __mbstate_t *,
- const char *, const char *, size_t);
- int (*__codecvt_do_max_length) (struct _IO_codecvt *);
-
_IO_iconv_t __cd_in;
_IO_iconv_t __cd_out;
};
@@ -187,9 +149,6 @@ struct _IO_FILE_plus;
extern struct _IO_FILE_plus _IO_2_1_stdin_;
extern struct _IO_FILE_plus _IO_2_1_stdout_;
extern struct _IO_FILE_plus _IO_2_1_stderr_;
-extern FILE *_IO_stdin attribute_hidden;
-extern FILE *_IO_stdout attribute_hidden;
-extern FILE *_IO_stderr attribute_hidden;
struct _IO_cookie_file;
@@ -242,7 +201,7 @@ extern int _IO_ftrylockfile (FILE *) __THROW;
#define _IO_peekc(_fp) _IO_peekc_unlocked (_fp)
#define _IO_flockfile(_fp) /**/
-#define _IO_funlockfile(_fp) /**/
+#define _IO_funlockfile(_fp) ((void) 0)
#define _IO_ftrylockfile(_fp) /**/
#ifndef _IO_cleanup_region_start
#define _IO_cleanup_region_start(_fct, _fp) /**/
@@ -256,8 +215,6 @@ extern int _IO_ftrylockfile (FILE *) __THROW;
extern int _IO_vfscanf (FILE * __restrict, const char * __restrict,
__gnuc_va_list, int *__restrict);
-extern int _IO_vfprintf (FILE *__restrict, const char *__restrict,
- __gnuc_va_list);
extern __ssize_t _IO_padn (FILE *, int, __ssize_t);
extern size_t _IO_sgetn (FILE *, void *, size_t);
@@ -299,14 +256,11 @@ weak_extern (_IO_stdin_used);
extern int _IO_vfwscanf (FILE * __restrict, const wchar_t * __restrict,
__gnuc_va_list, int *__restrict);
-extern int _IO_vfwprintf (FILE *__restrict, const wchar_t *__restrict,
- __gnuc_va_list);
extern __ssize_t _IO_wpadn (FILE *, wint_t, __ssize_t);
extern void _IO_free_wbackup_area (FILE *) __THROW;
#ifdef __LDBL_COMPAT
__LDBL_REDIR_DECL (_IO_vfscanf)
-__LDBL_REDIR_DECL (_IO_vfprintf)
#endif
libc_hidden_proto (__overflow)
@@ -320,8 +274,6 @@ libc_hidden_proto (_IO_free_wbackup_area)
libc_hidden_proto (_IO_padn)
libc_hidden_proto (_IO_putc)
libc_hidden_proto (_IO_sgetn)
-libc_hidden_proto (_IO_vfprintf)
-libc_hidden_proto (_IO_vfscanf)
#ifdef _IO_MTSAFE_IO
# undef _IO_peekc
diff --git a/libio/libioP.h b/libio/libioP.h
index df2633d858..3787605cfb 100644
--- a/libio/libioP.h
+++ b/libio/libioP.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
As a special exception, if you link the code in this file with
files compiled with a GNU compiler to produce an executable,
@@ -108,9 +108,14 @@
(IO_validate_vtable \
(*(struct _IO_jump_t **) ((void *) &_IO_JUMPS_FILE_plus (THIS) \
+ (THIS)->_vtable_offset)))
+# define _IO_JUMPS_FUNC_UPDATE(THIS, VTABLE) \
+ (*(const struct _IO_jump_t **) ((void *) &_IO_JUMPS_FILE_plus (THIS) \
+ + (THIS)->_vtable_offset) = (VTABLE))
# define _IO_vtable_offset(THIS) (THIS)->_vtable_offset
#else
# define _IO_JUMPS_FUNC(THIS) (IO_validate_vtable (_IO_JUMPS_FILE_plus (THIS)))
+# define _IO_JUMPS_FUNC_UPDATE(THIS, VTABLE) \
+ (_IO_JUMPS_FILE_plus (THIS) = (VTABLE))
# define _IO_vtable_offset(THIS) 0
#endif
#define _IO_WIDE_JUMPS_FUNC(THIS) _IO_WIDE_JUMPS(THIS)
@@ -476,7 +481,6 @@ extern const struct _IO_jump_t _IO_streambuf_jumps;
extern const struct _IO_jump_t _IO_old_proc_jumps attribute_hidden;
extern const struct _IO_jump_t _IO_str_jumps attribute_hidden;
extern const struct _IO_jump_t _IO_wstr_jumps attribute_hidden;
-extern const struct _IO_codecvt __libio_codecvt attribute_hidden;
extern int _IO_do_write (FILE *, const char *, size_t);
libc_hidden_proto (_IO_do_write)
extern int _IO_new_do_write (FILE *, const char *, size_t);
@@ -658,12 +662,72 @@ extern off64_t _IO_wstr_seekoff (FILE *, off64_t, int, int)
extern wint_t _IO_wstr_pbackfail (FILE *, wint_t) __THROW;
extern void _IO_wstr_finish (FILE *, int) __THROW;
-extern int _IO_vasprintf (char **result_ptr, const char *format,
- va_list args) __THROW;
-extern int _IO_vdprintf (int d, const char *format, va_list arg);
-extern int _IO_vsnprintf (char *string, size_t maxlen,
- const char *format, va_list args) __THROW;
-
+/* Internal versions of v*printf that take an additional flags
+ parameter. */
+extern int __vfprintf_internal (FILE *fp, const char *format, va_list ap,
+ unsigned int mode_flags)
+ attribute_hidden;
+extern int __vfwprintf_internal (FILE *fp, const wchar_t *format, va_list ap,
+ unsigned int mode_flags)
+ attribute_hidden;
+
+extern int __vasprintf_internal (char **result_ptr, const char *format,
+ va_list ap, unsigned int mode_flags)
+ attribute_hidden;
+extern int __vdprintf_internal (int d, const char *format, va_list ap,
+ unsigned int mode_flags)
+ attribute_hidden;
+extern int __obstack_vprintf_internal (struct obstack *ob, const char *fmt,
+ va_list ap, unsigned int mode_flags)
+ attribute_hidden;
+
+/* Note: __vsprintf_internal, unlike vsprintf, does take a maxlen argument,
+ because it's called by both vsprintf and vsprintf_chk. If maxlen is
+ not set to -1, overrunning the buffer will cause a prompt crash.
+ This is the behavior of ordinary (v)sprintf functions, thus they call
+ __vsprintf_internal with that argument set to -1. */
+extern int __vsprintf_internal (char *string, size_t maxlen,
+ const char *format, va_list ap,
+ unsigned int mode_flags)
+ attribute_hidden;
+
+extern int __vsnprintf_internal (char *string, size_t maxlen,
+ const char *format, va_list ap,
+ unsigned int mode_flags)
+ attribute_hidden;
+extern int __vswprintf_internal (wchar_t *string, size_t maxlen,
+ const wchar_t *format, va_list ap,
+ unsigned int mode_flags)
+ attribute_hidden;
+
+/* Flags for __v*printf_internal.
+
+ PRINTF_LDBL_IS_DBL indicates whether long double values are to be
+ handled as having the same format as double, in which case the flag
+ should be set to one, or as another format, otherwise.
+
+ PRINTF_FORTIFY, when set to one, indicates that fortification checks
+ are to be performed in input parameters. This is used by the
+ __*printf_chk functions, which are used when _FORTIFY_SOURCE is
+ defined to 1 or 2. Otherwise, such checks are ignored.
+
+ PRINTF_CHK indicates, to the internal function being called, that the
+ call is originated from one of the __*printf_chk functions.
+
+ PRINTF_LDBL_USES_FLOAT128 is used on platforms where the long double
+ format used to be different from the IEC 60559 double format *and*
+ also different from the Quadruple 128-bits IEC 60559 format (such as
+ the IBM Extended Precision format on powerpc or the 80-bits IEC 60559
+ format on x86), but was later converted to the Quadruple 128-bits IEC
+ 60559 format, which is the same format that the _Float128 always has
+ (hence the `USES_FLOAT128' suffix in the name of the flag). When set
+ to one, this macro indicates that long double values are to be
+ handled as having this new format. Otherwise, they should be handled
+ as the previous format on that platform. */
+#define PRINTF_LDBL_IS_DBL 0x0001
+#define PRINTF_FORTIFY 0x0002
+#define PRINTF_CHK 0x0004
+#define PRINTF_LDBL_USES_FLOAT128 0x0008
extern size_t _IO_getline (FILE *,char *, size_t, int, int);
libc_hidden_proto (_IO_getline)
@@ -704,6 +768,40 @@ extern off64_t _IO_seekpos_unlocked (FILE *, off64_t, int)
#endif /* _G_HAVE_MMAP */
+/* Flags for __vfscanf_internal and __vfwscanf_internal.
+
+ SCANF_LDBL_IS_DBL indicates whether long double values are to be
+ handled as having the same format as double, in which case the flag
+ should be set to one, or as another format, otherwise.
+
+ SCANF_ISOC99_A, when set to one, indicates that the ISO C99 or POSIX
+ behavior of the scanf functions is to be used, i.e. automatic
+ allocation for input strings with %as, %aS and %a[, a GNU extension,
+ is disabled. This is the behavior that the __isoc99_scanf family of
+ functions use. When the flag is set to zero, automatic allocation is
+ enabled.
+
+ SCANF_LDBL_USES_FLOAT128 is used on platforms where the long double
+ format used to be different from the IEC 60559 double format *and*
+ also different from the Quadruple 128-bits IEC 60559 format (such as
+ the IBM Extended Precision format on powerpc or the 80-bits IEC 60559
+ format on x86), but was later converted to the Quadruple 128-bits IEC
+ 60559 format, which is the same format that the _Float128 always has
+ (hence the `USES_FLOAT128' suffix in the name of the flag). When set
+ to one, this macros indicates that long double values are to be
+ handled as having this new format. Otherwise, they should be handled
+ as the previous format on that platform. */
+#define SCANF_LDBL_IS_DBL 0x0001
+#define SCANF_ISOC99_A 0x0002
+#define SCANF_LDBL_USES_FLOAT128 0x0004
+
+extern int __vfscanf_internal (FILE *fp, const char *format, va_list argp,
+ unsigned int flags)
+ attribute_hidden;
+extern int __vfwscanf_internal (FILE *fp, const wchar_t *format, va_list argp,
+ unsigned int flags)
+ attribute_hidden;
+
extern int _IO_vscanf (const char *, va_list) __THROW;
#ifdef _IO_MTSAFE_IO
@@ -735,16 +833,44 @@ extern int _IO_vscanf (const char *, va_list) __THROW;
# endif
#endif
-extern struct _IO_fake_stdiobuf _IO_stdin_buf, _IO_stdout_buf, _IO_stderr_buf;
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
+/* See oldstdfiles.c. These are the old stream variables. */
+extern struct _IO_FILE_plus _IO_stdin_;
+extern struct _IO_FILE_plus _IO_stdout_;
+extern struct _IO_FILE_plus _IO_stderr_;
+
+static inline bool
+_IO_legacy_file (FILE *fp)
+{
+ return fp == (FILE *) &_IO_stdin_ || fp == (FILE *) &_IO_stdout_
+ || fp == (FILE *) &_IO_stderr_;
+}
+#endif
+
+/* Deallocate a stream if it is heap-allocated. Preallocated
+ stdin/stdout/stderr streams are not deallocated. */
+static inline void
+_IO_deallocate_file (FILE *fp)
+{
+ /* The current stream variables. */
+ if (fp == (FILE *) &_IO_2_1_stdin_ || fp == (FILE *) &_IO_2_1_stdout_
+ || fp == (FILE *) &_IO_2_1_stderr_)
+ return;
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
+ if (_IO_legacy_file (fp))
+ return;
+#endif
+ free (fp);
+}
#ifdef IO_DEBUG
-# define CHECK_FILE(FILE, RET) do { \
- if ((FILE) == NULL || \
- ((FILE)->_flags & _IO_MAGIC_MASK) != _IO_MAGIC) \
- { \
- __set_errno (EINVAL); \
- return RET; \
- } \
+# define CHECK_FILE(FILE, RET) do { \
+ if ((FILE) == NULL \
+ || ((FILE)->_flags & _IO_MAGIC_MASK) != _IO_MAGIC) \
+ { \
+ __set_errno (EINVAL); \
+ return RET; \
+ } \
} while (0)
#else
# define CHECK_FILE(FILE, RET) do { } while (0)
@@ -759,27 +885,10 @@ _IO_acquire_lock_fct (FILE **p)
_IO_funlockfile (fp);
}
-static inline void
-__attribute__ ((__always_inline__))
-_IO_acquire_lock_clear_flags2_fct (FILE **p)
-{
- FILE *fp = *p;
- fp->_flags2 &= ~(_IO_FLAGS2_FORTIFY | _IO_FLAGS2_SCANF_STD);
- if ((fp->_flags & _IO_USER_LOCK) == 0)
- _IO_funlockfile (fp);
-}
-
#if !defined _IO_MTSAFE_IO && IS_IN (libc)
# define _IO_acquire_lock(_fp) \
- do { \
- FILE *_IO_acquire_lock_file = NULL
-# define _IO_acquire_lock_clear_flags2(_fp) \
- do { \
- FILE *_IO_acquire_lock_file = (_fp)
+ do {
# define _IO_release_lock(_fp) \
- if (_IO_acquire_lock_file != NULL) \
- _IO_acquire_lock_file->_flags2 &= ~(_IO_FLAGS2_FORTIFY \
- | _IO_FLAGS2_SCANF_STD); \
} while (0)
#endif
@@ -839,4 +948,32 @@ IO_validate_vtable (const struct _IO_jump_t *vtable)
return vtable;
}
+/* Character set conversion. */
+
+enum __codecvt_result
+{
+ __codecvt_ok,
+ __codecvt_partial,
+ __codecvt_error,
+ __codecvt_noconv
+};
+
+enum __codecvt_result __libio_codecvt_out (struct _IO_codecvt *,
+ __mbstate_t *,
+ const wchar_t *,
+ const wchar_t *,
+ const wchar_t **, char *,
+ char *, char **)
+ attribute_hidden;
+enum __codecvt_result __libio_codecvt_in (struct _IO_codecvt *,
+ __mbstate_t *,
+ const char *, const char *,
+ const char **, wchar_t *,
+ wchar_t *, wchar_t **)
+ attribute_hidden;
+int __libio_codecvt_encoding (struct _IO_codecvt *) attribute_hidden;
+int __libio_codecvt_length (struct _IO_codecvt *, __mbstate_t *,
+ const char *, const char *, size_t)
+ attribute_hidden;
+
#endif /* libioP.h. */
diff --git a/libio/memstream.c b/libio/memstream.c
index b5eaa5476c..8edbd194ca 100644
--- a/libio/memstream.c
+++ b/libio/memstream.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libioP.h"
#include "strfile.h"
diff --git a/libio/obprintf.c b/libio/obprintf.c
index a74f9467a2..29a243056e 100644
--- a/libio/obprintf.c
+++ b/libio/obprintf.c
@@ -1,5 +1,5 @@
/* Print output of stream to given obstack.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
@@ -117,7 +117,8 @@ const struct _IO_jump_t _IO_obstack_jumps libio_vtable attribute_hidden =
int
-_IO_obstack_vprintf (struct obstack *obstack, const char *format, va_list args)
+__obstack_vprintf_internal (struct obstack *obstack, const char *format,
+ va_list args, unsigned int mode_flags)
{
struct obstack_FILE
{
@@ -164,7 +165,8 @@ _IO_obstack_vprintf (struct obstack *obstack, const char *format, va_list args)
new_f.ofile.obstack = obstack;
- result = _IO_vfprintf (&new_f.ofile.file.file, format, args);
+ result = __vfprintf_internal (&new_f.ofile.file.file, format, args,
+ mode_flags);
/* Shrink the buffer to the space we really currently need. */
obstack_blank_fast (obstack, (new_f.ofile.file.file._IO_write_ptr
@@ -172,17 +174,22 @@ _IO_obstack_vprintf (struct obstack *obstack, const char *format, va_list args)
return result;
}
-ldbl_weak_alias (_IO_obstack_vprintf, obstack_vprintf)
+int
+__obstack_vprintf (struct obstack *obstack, const char *format, va_list ap)
+{
+ return __obstack_vprintf_internal (obstack, format, ap, 0);
+}
+ldbl_weak_alias (__obstack_vprintf, obstack_vprintf)
int
-_IO_obstack_printf (struct obstack *obstack, const char *format, ...)
+__obstack_printf (struct obstack *obstack, const char *format, ...)
{
int result;
va_list ap;
va_start (ap, format);
- result = _IO_obstack_vprintf (obstack, format, ap);
+ result = __obstack_vprintf_internal (obstack, format, ap, 0);
va_end (ap);
return result;
}
-ldbl_weak_alias (_IO_obstack_printf, obstack_printf)
+ldbl_weak_alias (__obstack_printf, obstack_printf)
diff --git a/libio/oldfileops.c b/libio/oldfileops.c
index 5e60c8c168..83e77b094a 100644
--- a/libio/oldfileops.c
+++ b/libio/oldfileops.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Per Bothner <bothner@cygnus.com>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
As a special exception, if you link the code in this file with
files compiled with a GNU compiler to produce an executable,
@@ -109,10 +109,7 @@ _IO_old_file_init_internal (struct _IO_FILE_plus *fp)
- (int) sizeof (struct _IO_FILE_complete));
fp->file._fileno = -1;
- if (__builtin_expect (&_IO_stdin_used != NULL, 1)
- || (fp != (struct _IO_FILE_plus *) _IO_stdin
- && fp != (struct _IO_FILE_plus *) _IO_stdout
- && fp != (struct _IO_FILE_plus *) _IO_stderr))
+ if (&_IO_stdin_used != NULL || !_IO_legacy_file ((FILE *) fp))
/* The object is dynamically allocated and large enough. Initialize
the _mode element as well. */
((struct _IO_FILE_complete *) fp)->_mode = -1;
diff --git a/libio/oldfmemopen.c b/libio/oldfmemopen.c
index d7f0db3423..b56554f6d8 100644
--- a/libio/oldfmemopen.c
+++ b/libio/oldfmemopen.c
@@ -1,5 +1,5 @@
/* Fmemopen implementation.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Hanno Mueller, kontakt@hanno.de, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* fmemopen() - "my" version of a string stream
diff --git a/libio/oldiofclose.c b/libio/oldiofclose.c
index f414502fe0..b71f4064a2 100644
--- a/libio/oldiofclose.c
+++ b/libio/oldiofclose.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
As a special exception, if you link the code in this file with
files compiled with a GNU compiler to produce an executable,
@@ -58,12 +58,7 @@ _IO_old_fclose (FILE *fp)
_IO_FINISH (fp);
if (_IO_have_backup (fp))
_IO_free_backup_area (fp);
- if (fp != _IO_stdin && fp != _IO_stdout && fp != _IO_stderr)
- {
- fp->_flags = 0;
- free(fp);
- }
-
+ _IO_deallocate_file (fp);
return status;
}
diff --git a/libio/oldiofdopen.c b/libio/oldiofdopen.c
index cec6642fc4..3dc4bc50ae 100644
--- a/libio/oldiofdopen.c
+++ b/libio/oldiofdopen.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/oldiofgetpos.c b/libio/oldiofgetpos.c
index bf3753f86c..9dcef38fb2 100644
--- a/libio/oldiofgetpos.c
+++ b/libio/oldiofgetpos.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/oldiofgetpos64.c b/libio/oldiofgetpos64.c
index e542dbfd52..89e468ab29 100644
--- a/libio/oldiofgetpos64.c
+++ b/libio/oldiofgetpos64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/oldiofopen.c b/libio/oldiofopen.c
index f0a67104fb..ea8d29a981 100644
--- a/libio/oldiofopen.c
+++ b/libio/oldiofopen.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/oldiofsetpos.c b/libio/oldiofsetpos.c
index 6e80522b4a..ee1c7780ad 100644
--- a/libio/oldiofsetpos.c
+++ b/libio/oldiofsetpos.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/oldiofsetpos64.c b/libio/oldiofsetpos64.c
index c00931fdba..de833c6ed1 100644
--- a/libio/oldiofsetpos64.c
+++ b/libio/oldiofsetpos64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/oldiopopen.c b/libio/oldiopopen.c
index e47965db0a..fe92bcaf8d 100644
--- a/libio/oldiopopen.c
+++ b/libio/oldiopopen.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Per Bothner <bothner@cygnus.com>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/oldpclose.c b/libio/oldpclose.c
index 5934861980..7c8da467d7 100644
--- a/libio/oldpclose.c
+++ b/libio/oldpclose.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/oldstdfiles.c b/libio/oldstdfiles.c
index f3dda89004..95c041a632 100644
--- a/libio/oldstdfiles.c
+++ b/libio/oldstdfiles.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
As a special exception, if you link the code in this file with
files compiled with a GNU compiler to produce an executable,
@@ -27,11 +27,8 @@
#include <shlib-compat.h>
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
-/* This file provides definitions of _IO_stdin, _IO_stdout, and _IO_stderr
- for C code. Compare stdstreams.cc.
- (The difference is that here the vtable field is set to 0,
- so the objects defined are not valid C++ objects. On the other
- hand, we don't need a C++ compiler to build this file.) */
+/* This file provides legacy definitions of _IO_stdin_, _IO_stdout_,
+ and _IO_stderr_. See stdfiles.c for the current definitions. */
#define _IO_USE_OLD_IO_FILE
#include "libioP.h"
@@ -78,15 +75,19 @@ _IO_check_libio (void)
if (&_IO_stdin_used == NULL)
{
/* We are using the old one. */
- _IO_stdin = stdin = (FILE *) &_IO_stdin_;
- _IO_stdout = stdout = (FILE *) &_IO_stdout_;
- _IO_stderr = stderr = (FILE *) &_IO_stderr_;
+ stdin = (FILE *) &_IO_stdin_;
+ stdout = (FILE *) &_IO_stdout_;
+ stderr = (FILE *) &_IO_stderr_;
_IO_list_all = &_IO_stderr_;
- _IO_stdin->_vtable_offset = _IO_stdout->_vtable_offset =
- _IO_stderr->_vtable_offset = stdin->_vtable_offset =
- stdout->_vtable_offset = stderr->_vtable_offset =
+ stdin->_vtable_offset = stdout->_vtable_offset
+ = stderr->_vtable_offset =
((int) sizeof (struct _IO_FILE)
- (int) sizeof (struct _IO_FILE_complete));
+
+ if (_IO_stdin_.vtable != &_IO_old_file_jumps
+ || _IO_stdout_.vtable != &_IO_old_file_jumps
+ || _IO_stderr_.vtable != &_IO_old_file_jumps)
+ IO_set_accept_foreign_vtables (&_IO_vtable_check);
}
}
diff --git a/libio/oldtmpfile.c b/libio/oldtmpfile.c
index f3a266bced..109a610136 100644
--- a/libio/oldtmpfile.c
+++ b/libio/oldtmpfile.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <shlib-compat.h>
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
diff --git a/libio/pclose.c b/libio/pclose.c
index be7b330ce7..5d0c7f1cb9 100644
--- a/libio/pclose.c
+++ b/libio/pclose.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/peekc.c b/libio/peekc.c
index 7de76a7cea..6ee2635d40 100644
--- a/libio/peekc.c
+++ b/libio/peekc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/putc.c b/libio/putc.c
index 13570f579b..8a8f4054fe 100644
--- a/libio/putc.c
+++ b/libio/putc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libioP.h"
#include "stdio.h"
diff --git a/libio/putc_u.c b/libio/putc_u.c
index 33431fb205..43915d3a76 100644
--- a/libio/putc_u.c
+++ b/libio/putc_u.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libioP.h"
#include "stdio.h"
diff --git a/libio/putchar.c b/libio/putchar.c
index 5286fdccba..1bd6929936 100644
--- a/libio/putchar.c
+++ b/libio/putchar.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libioP.h"
#include "stdio.h"
@@ -24,9 +24,9 @@ int
putchar (int c)
{
int result;
- _IO_acquire_lock (_IO_stdout);
- result = _IO_putc_unlocked (c, _IO_stdout);
- _IO_release_lock (_IO_stdout);
+ _IO_acquire_lock (stdout);
+ result = _IO_putc_unlocked (c, stdout);
+ _IO_release_lock (stdout);
return result;
}
diff --git a/libio/putchar_u.c b/libio/putchar_u.c
index 869e034809..0870f22c49 100644
--- a/libio/putchar_u.c
+++ b/libio/putchar_u.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libioP.h"
#include "stdio.h"
@@ -23,6 +23,6 @@
int
putchar_unlocked (int c)
{
- CHECK_FILE (_IO_stdout, EOF);
- return _IO_putc_unlocked (c, _IO_stdout);
+ CHECK_FILE (stdout, EOF);
+ return _IO_putc_unlocked (c, stdout);
}
diff --git a/libio/putwc.c b/libio/putwc.c
index f74346f3dc..15c9851c45 100644
--- a/libio/putwc.c
+++ b/libio/putwc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libioP.h"
#include <wchar.h>
diff --git a/libio/putwc_u.c b/libio/putwc_u.c
index e73421f692..a65b21f3b8 100644
--- a/libio/putwc_u.c
+++ b/libio/putwc_u.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libioP.h"
#include <wchar.h>
diff --git a/libio/putwchar.c b/libio/putwchar.c
index 44d4bb84e9..6f3329d8a7 100644
--- a/libio/putwchar.c
+++ b/libio/putwchar.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libioP.h"
#include <wchar.h>
@@ -22,8 +22,8 @@ wint_t
putwchar (wchar_t wc)
{
wint_t result;
- _IO_acquire_lock (_IO_stdout);
- result = _IO_putwc_unlocked (wc, _IO_stdout);
- _IO_release_lock (_IO_stdout);
+ _IO_acquire_lock (stdout);
+ result = _IO_putwc_unlocked (wc, stdout);
+ _IO_release_lock (stdout);
return result;
}
diff --git a/libio/putwchar_u.c b/libio/putwchar_u.c
index 45cf705d6d..7060f9f317 100644
--- a/libio/putwchar_u.c
+++ b/libio/putwchar_u.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libioP.h"
#include <wchar.h>
@@ -21,6 +21,6 @@
wint_t
putwchar_unlocked (wchar_t wc)
{
- CHECK_FILE (_IO_stdout, WEOF);
- return _IO_putwc_unlocked (wc, _IO_stdout);
+ CHECK_FILE (stdout, WEOF);
+ return _IO_putwc_unlocked (wc, stdout);
}
diff --git a/libio/readline.c b/libio/readline.c
index 3372ba2999..fa390fdab1 100644
--- a/libio/readline.c
+++ b/libio/readline.c
@@ -1,5 +1,5 @@
/* fgets with ERANGE error reporting and size_t buffer length.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
diff --git a/libio/rewind.c b/libio/rewind.c
index bfb73f1cd7..96384d8978 100644
--- a/libio/rewind.c
+++ b/libio/rewind.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/setbuf.c b/libio/setbuf.c
index fa65e26ef0..6deba1f142 100644
--- a/libio/setbuf.c
+++ b/libio/setbuf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/setlinebuf.c b/libio/setlinebuf.c
index a6035b808d..1bb4151876 100644
--- a/libio/setlinebuf.c
+++ b/libio/setlinebuf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/stdfiles.c b/libio/stdfiles.c
index 8d96f0b65c..73996da80d 100644
--- a/libio/stdfiles.c
+++ b/libio/stdfiles.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
As a special exception, if you link the code in this file with
files compiled with a GNU compiler to produce an executable,
@@ -25,11 +25,10 @@
in files containing the exception. */
-/* This file provides definitions of _IO_stdin, _IO_stdout, and _IO_stderr
- for C code. Compare stdstreams.cc.
- (The difference is that here the vtable field is set to 0,
- so the objects defined are not valid C++ objects. On the other
- hand, we don't need a C++ compiler to build this file.) */
+/* This file provides definitions of _IO_2_1_stdin_, _IO_2_1_stdout_,
+ and _IO_2_1_stderr_, the default values of stdin, stdout, stderr.
+ See oldstdfiles.c for glibc 2.0 legacy definitions without wide
+ character support. */
#include "libioP.h"
diff --git a/libio/stdio.c b/libio/stdio.c
index 1b7a1bc2e0..df972fb4d6 100644
--- a/libio/stdio.c
+++ b/libio/stdio.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
As a special exception, if you link the code in this file with
files compiled with a GNU compiler to produce an executable,
@@ -33,14 +33,3 @@
FILE *stdin = (FILE *) &_IO_2_1_stdin_;
FILE *stdout = (FILE *) &_IO_2_1_stdout_;
FILE *stderr = (FILE *) &_IO_2_1_stderr_;
-
-#undef _IO_stdin
-#undef _IO_stdout
-#undef _IO_stderr
-#define AL(name) AL2 (name, _IO_##name)
-#define AL2(name, al) \
- extern __typeof (name) al __attribute__ ((alias (#name), \
- visibility ("hidden")))
-AL(stdin);
-AL(stdout);
-AL(stderr);
diff --git a/libio/stdio.h b/libio/stdio.h
index 739e08610d..1abce9b3f1 100644
--- a/libio/stdio.h
+++ b/libio/stdio.h
@@ -1,5 +1,5 @@
/* Define ISO C stdio on top of C++ iostreams.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* ISO C99 Standard: 7.19 Input/output <stdio.h>
@@ -399,13 +399,11 @@ extern int scanf (const char *__restrict __format, ...) __wur;
extern int sscanf (const char *__restrict __s,
const char *__restrict __format, ...) __THROW;
-#if defined __USE_ISOC99 && !defined __USE_GNU \
- && (!defined __LDBL_COMPAT || !defined __REDIRECT) \
- && (defined __STRICT_ANSI__ || defined __USE_XOPEN2K)
+/* For historical reasons, the C99-compliant versions of the scanf
+ functions are at alternative names. When __LDBL_COMPAT is in
+ effect, this is handled in bits/stdio-ldbl.h. */
+#if !__GLIBC_USE (DEPRECATED_SCANF) && !defined __LDBL_COMPAT
# ifdef __REDIRECT
-/* For strict ISO C99 or POSIX compliance disallow %as, %aS and %a[
- GNU extension which conflicts with valid %a followed by letter
- s, S or [. */
extern int __REDIRECT (fscanf, (FILE *__restrict __stream,
const char *__restrict __format, ...),
__isoc99_fscanf) __wur;
@@ -447,13 +445,9 @@ extern int vsscanf (const char *__restrict __s,
const char *__restrict __format, __gnuc_va_list __arg)
__THROW __attribute__ ((__format__ (__scanf__, 2, 0)));
-# if !defined __USE_GNU \
- && (!defined __LDBL_COMPAT || !defined __REDIRECT) \
- && (defined __STRICT_ANSI__ || defined __USE_XOPEN2K)
-# ifdef __REDIRECT
-/* For strict ISO C99 or POSIX compliance disallow %as, %aS and %a[
- GNU extension which conflicts with valid %a followed by letter
- s, S or [. */
+/* Same redirection as above for the v*scanf family. */
+# if !__GLIBC_USE (DEPRECATED_SCANF)
+# if defined __REDIRECT && !defined __LDBL_COMPAT
extern int __REDIRECT (vfscanf,
(FILE *__restrict __s,
const char *__restrict __format, __gnuc_va_list __arg),
@@ -467,7 +461,7 @@ extern int __REDIRECT_NTH (vsscanf,
const char *__restrict __format,
__gnuc_va_list __arg), __isoc99_vsscanf)
__attribute__ ((__format__ (__scanf__, 2, 0)));
-# else
+# elif !defined __REDIRECT
extern int __isoc99_vfscanf (FILE *__restrict __s,
const char *__restrict __format,
__gnuc_va_list __arg) __wur;
diff --git a/libio/strfile.h b/libio/strfile.h
index 75caac2af5..974d6dd2be 100644
--- a/libio/strfile.h
+++ b/libio/strfile.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
As a special exception, if you link the code in this file with
files compiled with a GNU compiler to produce an executable,
@@ -24,7 +24,9 @@
This exception applies to code released by its copyright holders
in files containing the exception. */
-#include <stdio.h>
+#ifndef STRFILE_H_
+#define STRFILE_H_
+
#include "libioP.h"
typedef void *(*_IO_alloc_type) (size_t);
@@ -80,3 +82,32 @@ typedef struct
} _IO_wstrnfile;
extern const struct _IO_jump_t _IO_wstrn_jumps attribute_hidden;
+
+/* Initialize an _IO_strfile SF to read from narrow string STRING, and
+ return the corresponding FILE object. It is not necessary to fclose
+ the FILE when it is no longer needed. */
+static inline FILE *
+_IO_strfile_read (_IO_strfile *sf, const char *string)
+{
+ sf->_sbf._f._lock = NULL;
+ _IO_no_init (&sf->_sbf._f, _IO_USER_LOCK, -1, NULL, NULL);
+ _IO_JUMPS (&sf->_sbf) = &_IO_str_jumps;
+ _IO_str_init_static_internal (sf, (char*)string, 0, NULL);
+ return &sf->_sbf._f;
+}
+
+/* Initialize an _IO_strfile SF and _IO_wide_data WD to read from wide
+ string STRING, and return the corresponding FILE object. It is not
+ necessary to fclose the FILE when it is no longer needed. */
+static inline FILE *
+_IO_strfile_readw (_IO_strfile *sf, struct _IO_wide_data *wd,
+ const wchar_t *string)
+{
+ sf->_sbf._f._lock = NULL;
+ _IO_no_init (&sf->_sbf._f, _IO_USER_LOCK, 0, wd, &_IO_wstr_jumps);
+ _IO_fwide (&sf->_sbf._f, 1);
+ _IO_wstr_init_static (&sf->_sbf._f, (wchar_t *)string, 0, NULL);
+ return &sf->_sbf._f;
+}
+
+#endif /* strfile.h. */
diff --git a/libio/strops.c b/libio/strops.c
index df8268b7ab..4ac168cb4d 100644
--- a/libio/strops.c
+++ b/libio/strops.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/swprintf.c b/libio/swprintf.c
index 10f722d035..c85fb93ae7 100644
--- a/libio/swprintf.c
+++ b/libio/swprintf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libioP.h>
#include <stdarg.h>
@@ -28,7 +28,7 @@ __swprintf (wchar_t *s, size_t n, const wchar_t *format, ...)
int done;
va_start (arg, format);
- done = __vswprintf (s, n, format, arg);
+ done = __vswprintf_internal (s, n, format, arg, 0);
va_end (arg);
return done;
diff --git a/libio/swscanf.c b/libio/swscanf.c
index c8686bcbaf..e82f7598e3 100644
--- a/libio/swscanf.c
+++ b/libio/swscanf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -13,22 +13,29 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+
+/* This file defines one of the deprecated scanf variants. */
+#include <features.h>
+#undef __GLIBC_USE_DEPRECATED_SCANF
+#define __GLIBC_USE_DEPRECATED_SCANF 1
-#include <libioP.h>
#include <stdarg.h>
-#include <wchar.h>
+#include "strfile.h"
/* Read formatted input from S, according to the format string FORMAT. */
-/* VARARGS2 */
+
int
__swscanf (const wchar_t *s, const wchar_t *format, ...)
{
va_list arg;
int done;
+ _IO_strfile sf;
+ struct _IO_wide_data wd;
+ FILE *f = _IO_strfile_readw (&sf, &wd, s);
va_start (arg, format);
- done = __vswscanf (s, format, arg);
+ done = __vfwscanf_internal (f, format, arg, 0);
va_end (arg);
return done;
diff --git a/libio/test-fmemopen.c b/libio/test-fmemopen.c
index fbc9f51a62..2fdf51f778 100644
--- a/libio/test-fmemopen.c
+++ b/libio/test-fmemopen.c
@@ -1,5 +1,5 @@
/* Test for fmemopen implementation.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Hanno Mueller, kontakt@hanno.de, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
static char buffer[] = "foobar";
diff --git a/libio/test-freopen.c b/libio/test-freopen.c
index 2e274f4899..4a4a08fe8a 100644
--- a/libio/test-freopen.c
+++ b/libio/test-freopen.c
@@ -1,5 +1,5 @@
/* Test for freopen implementation.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <mcheck.h>
#include <stdio.h>
diff --git a/libio/test-freopen.sh b/libio/test-freopen.sh
index 190a7a4dfe..2a2a8b4d1e 100755
--- a/libio/test-freopen.sh
+++ b/libio/test-freopen.sh
@@ -1,6 +1,6 @@
#!/bin/sh
# Test of freopen.
-# Copyright (C) 2000-2018 Free Software Foundation, Inc.
+# Copyright (C) 2000-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
@@ -15,7 +15,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
set -e
diff --git a/libio/tst-atime.c b/libio/tst-atime.c
index 31ca59fec5..3e131eee4c 100644
--- a/libio/tst-atime.c
+++ b/libio/tst-atime.c
@@ -10,7 +10,6 @@
static int do_test (void);
#define TEST_FUNCTION do_test ()
-#define TIMEOUT 5
#include <test-skeleton.c>
diff --git a/libio/tst-bz22415.c b/libio/tst-bz22415.c
index dd163997c3..3388b79354 100644
--- a/libio/tst-bz22415.c
+++ b/libio/tst-bz22415.c
@@ -1,6 +1,6 @@
/* Check static buffer handling with setvbuf (BZ #22415)
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
diff --git a/libio/tst-bz24051.c b/libio/tst-bz24051.c
new file mode 100644
index 0000000000..6f7e73e62d
--- /dev/null
+++ b/libio/tst-bz24051.c
@@ -0,0 +1,81 @@
+/* Test that assigning to stdout redirects puts, putchar, etc (BZ#24051)
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+
+/* Prevent putchar -> _IO_putc inline expansion. */
+#define __NO_INLINE__
+#pragma GCC optimize("O0")
+
+#include <stdio.h>
+#include <string.h>
+#include <wchar.h>
+
+#include <array_length.h>
+#include <support/check.h>
+#include <support/temp_file.h>
+#include <support/test-driver.h>
+
+#undef putchar
+#undef putwchar
+
+static int
+do_test_narrow (void)
+{
+ char buf[100];
+ int fd = create_temp_file ("tst-bz24051", NULL);
+ stdout = fdopen (fd, "w+");
+ TEST_VERIFY_EXIT (stdout != NULL);
+
+ printf ("ab%s", "cd");
+ putchar ('e');
+ putchar_unlocked ('f');
+ puts ("ghi");
+
+ rewind (stdout);
+ TEST_VERIFY_EXIT (fgets (buf, sizeof (buf), stdout) != NULL);
+ TEST_VERIFY (strcmp (buf, "abcdefghi\n") == 0);
+
+ return 0;
+}
+
+static int
+do_test_wide (void)
+{
+ wchar_t buf[100];
+ int fd = create_temp_file ("tst-bz24051w", NULL);
+ stdout = fdopen (fd, "w+");
+ TEST_VERIFY_EXIT (stdout != NULL);
+
+ wprintf (L"ab%ls", L"cd");
+ putwchar (L'e');
+ putwchar_unlocked (L'f');
+
+ rewind (stdout);
+ TEST_VERIFY_EXIT (fgetws (buf, array_length (buf), stdout) != NULL);
+ TEST_VERIFY (wcscmp (buf, L"abcdef") == 0);
+
+ return 0;
+}
+
+static int
+do_test (void)
+{
+ return do_test_narrow () + do_test_wide ();
+}
+
+#include <support/test-driver.c>
diff --git a/libio/tst-bz24153.c b/libio/tst-bz24153.c
new file mode 100644
index 0000000000..dc897f7b93
--- /dev/null
+++ b/libio/tst-bz24153.c
@@ -0,0 +1,114 @@
+/* Test that assigning to stdin redirects input (bug 24153).
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+/* Prevent getchar -> getc inline expansion. */
+#define __NO_INLINE__
+#pragma GCC optimize ("O0")
+
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <support/check.h>
+#include <support/temp_file.h>
+#include <support/xstdio.h>
+#include <support/xunistd.h>
+#include <wchar.h>
+
+static int
+call_vscanf (const char *format, ...)
+{
+ va_list ap;
+ va_start (ap, format);
+ int ret = vscanf (format, ap);
+ va_end (ap);
+ return ret;
+}
+
+static int
+call_vwscanf (const wchar_t *format, ...)
+{
+ va_list ap;
+ va_start (ap, format);
+ int ret = vwscanf (format, ap);
+ va_end (ap);
+ return ret;
+}
+
+static void
+narrow (const char *path)
+{
+ FILE *old_stdin = stdin;
+ stdin = xfopen (path, "r");
+
+ TEST_COMPARE (getchar (), 'a');
+ TEST_COMPARE (getchar_unlocked (), 'b');
+ char ch = 1;
+ TEST_COMPARE (scanf ("%c", &ch), 1);
+ TEST_COMPARE (ch, 'c');
+ TEST_COMPARE (call_vscanf ("%c", &ch), 1);
+ TEST_COMPARE (ch, 'd');
+ char buf[8];
+ memset (buf, 'X', sizeof (buf));
+
+ /* Legacy interface. */
+ extern char *gets (char *);
+ TEST_VERIFY (gets (buf) == buf);
+ TEST_COMPARE_BLOB (buf, sizeof (buf), "ef\0XXXXX", sizeof (buf));
+
+ fclose (stdin);
+ stdin = old_stdin;
+}
+
+static void
+wide (const char *path)
+{
+ FILE *old_stdin = stdin;
+ stdin = xfopen (path, "r");
+
+ TEST_COMPARE (getwchar (), L'a');
+ TEST_COMPARE (getwchar_unlocked (), L'b');
+ wchar_t ch = 1;
+ TEST_COMPARE (wscanf (L"%lc", &ch), 1);
+ TEST_COMPARE (ch, L'c');
+ TEST_COMPARE (call_vwscanf (L"%lc", &ch), 1);
+ TEST_COMPARE (ch, L'd');
+
+ fclose (stdin);
+ stdin = old_stdin;
+}
+
+static int
+do_test (void)
+{
+ char *path;
+ {
+ int fd = create_temp_file ("tst-bz24153-", &path);
+ TEST_VERIFY_EXIT (fd >= 0);
+ xwrite (fd, "abcdef", strlen ("abcdef"));
+ xclose (fd);
+ }
+
+ narrow (path);
+ wide (path);
+
+ free (path);
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/libio/tst-bz24228.c b/libio/tst-bz24228.c
new file mode 100644
index 0000000000..6a74500d47
--- /dev/null
+++ b/libio/tst-bz24228.c
@@ -0,0 +1,29 @@
+/* BZ #24228 check for memory corruption in legacy libio
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <mcheck.h>
+#include <support/test-driver.h>
+
+static int
+do_test (void)
+{
+ mtrace ();
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/libio/tst-bz24228.map b/libio/tst-bz24228.map
new file mode 100644
index 0000000000..4383e0817d
--- /dev/null
+++ b/libio/tst-bz24228.map
@@ -0,0 +1,5 @@
+# Hide the symbol from libc.so.6 to switch to the libio/oldfileops.c
+# implementation when it is available for the architecture.
+{
+ local: _IO_stdin_used;
+};
diff --git a/libio/tst-fopenloc.c b/libio/tst-fopenloc.c
index 59f63d27fc..797540da04 100644
--- a/libio/tst-fopenloc.c
+++ b/libio/tst-fopenloc.c
@@ -1,5 +1,5 @@
/* Test for ,ccs= handling in fopen.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <locale.h>
@@ -25,14 +25,11 @@
#include <string.h>
#include <wchar.h>
#include <sys/resource.h>
+#include <support/support.h>
+#include <support/xstdio.h>
static const char inputfile[] = "../iconvdata/testdata/ISO-8859-1";
-static int do_test(void);
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
-
static int
do_bz17916 (void)
{
@@ -66,14 +63,9 @@ do_test (void)
mtrace ();
- setlocale (LC_ALL, "de_DE.UTF-8");
+ xsetlocale (LC_ALL, "de_DE.UTF-8");
- fp = fopen (inputfile, "r,ccs=ISO-8859-1");
- if (fp == NULL)
- {
- printf ("cannot open \"%s\": %s\n", inputfile, strerror (errno));
- exit (1);
- }
+ fp = xfopen (inputfile, "r,ccs=ISO-8859-1");
while (! feof_unlocked (fp))
{
@@ -85,7 +77,9 @@ do_test (void)
fputws (buf, stdout);
}
- fclose (fp);
+ xfclose (fp);
return do_bz17916 ();
}
+
+#include <support/test-driver.c>
diff --git a/libio/tst-fputws.c b/libio/tst-fputws.c
index 7ee5762c83..ab3dad6a4c 100644
--- a/libio/tst-fputws.c
+++ b/libio/tst-fputws.c
@@ -1,5 +1,5 @@
/* Test that we can write a multibyte character to an unbuffered stream.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <locale.h>
#include <stdio.h>
diff --git a/libio/tst-freopen.c b/libio/tst-freopen.c
index 772aef29a0..882e883dfd 100644
--- a/libio/tst-freopen.c
+++ b/libio/tst-freopen.c
@@ -1,5 +1,5 @@
/* Test freopen with mmap stdio.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
diff --git a/libio/tst-fseek.c b/libio/tst-fseek.c
index 7831527593..8be2f39dca 100644
--- a/libio/tst-fseek.c
+++ b/libio/tst-fseek.c
@@ -1,5 +1,5 @@
/* Verify that fseek/ftell combination works for wide chars.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
diff --git a/libio/tst-ftell-active-handler.c b/libio/tst-ftell-active-handler.c
index 7840d5d73e..dec419ebfc 100644
--- a/libio/tst-ftell-active-handler.c
+++ b/libio/tst-ftell-active-handler.c
@@ -1,6 +1,6 @@
/* Verify that ftell returns the correct value at various points before and
after the handler on which it is called becomes active.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
diff --git a/libio/tst-ftell-append.c b/libio/tst-ftell-append.c
index 07a2f234d2..f4c7677983 100644
--- a/libio/tst-ftell-append.c
+++ b/libio/tst-ftell-append.c
@@ -1,6 +1,6 @@
/* Verify that ftell returns the correct value after a read and a write on a
file opened in a+ mode.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
diff --git a/libio/tst-ftell-partial-wide.c b/libio/tst-ftell-partial-wide.c
index 5b2f8af0f9..8a54a282a4 100644
--- a/libio/tst-ftell-partial-wide.c
+++ b/libio/tst-ftell-partial-wide.c
@@ -1,6 +1,6 @@
/* Verify that ftell does not go into an infinite loop when a conversion fails
due to insufficient space in the buffer.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <wchar.h>
#include <stdio.h>
diff --git a/libio/tst-fwrite-error.c b/libio/tst-fwrite-error.c
index a8d91d9160..611901d66c 100644
--- a/libio/tst-fwrite-error.c
+++ b/libio/tst-fwrite-error.c
@@ -1,5 +1,5 @@
/* Test of fwrite() function, adapted from gnulib-tests in grep.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/libio/tst-memstream.h b/libio/tst-memstream.h
new file mode 100644
index 0000000000..ebe8fcf356
--- /dev/null
+++ b/libio/tst-memstream.h
@@ -0,0 +1,68 @@
+/* Common definitions for open_memstream tests.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <mcheck.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdarg.h>
+#include <errno.h>
+
+#include <support/check.h>
+
+#ifdef TEST_WCHAR
+# include <wchar.h>
+
+/* Straighforward implementation so tst-memstream3 could use check
+ fwrite on open_memstream. */
+static size_t __attribute__ ((used))
+fwwrite (const void *ptr, size_t size, size_t nmemb, FILE *arq)
+{
+ const wchar_t *wcs = (const wchar_t*) (ptr);
+ for (size_t s = 0; s < size; s++)
+ {
+ for (size_t n = 0; n < nmemb; n++)
+ if (fputwc (wcs[n], arq) == WEOF)
+ return n;
+ }
+ return size * nmemb;
+}
+
+# define CHAR_T wchar_t
+# define W(o) L##o
+# define OPEN_MEMSTREAM open_wmemstream
+# define PRINTF wprintf
+# define FWRITE fwwrite
+# define FPUTC fputwc
+# define FPUTS fputws
+# define STRCMP wcscmp
+# define STRLEN wcslen
+#else
+# define CHAR_T char
+# define W(o) o
+# define OPEN_MEMSTREAM open_memstream
+# define PRINTF printf
+# define FWRITE fwrite
+# define FPUTC fputc
+# define FPUTS fputs
+# define STRCMP strcmp
+# define STRLEN strlen
+#endif
+
+#define S(s) S1 (s)
+#define S1(s) #s
diff --git a/libio/tst-memstream3.c b/libio/tst-memstream3.c
index bb3300dc57..386cef4b22 100644
--- a/libio/tst-memstream3.c
+++ b/libio/tst-memstream3.c
@@ -1,5 +1,5 @@
/* Test for open_memstream implementation.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <mcheck.h>
#include <stdio.h>
diff --git a/libio/tst-memstream4.c b/libio/tst-memstream4.c
new file mode 100644
index 0000000000..56c4ccf0ba
--- /dev/null
+++ b/libio/tst-memstream4.c
@@ -0,0 +1,64 @@
+/* Test for open_memstream BZ #21037.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include "tst-memstream.h"
+
+static void
+mcheck_abort (enum mcheck_status ev)
+{
+ printf ("mecheck failed with status %d\n", (int) ev);
+ exit (1);
+}
+
+static int
+do_test (void)
+{
+ mcheck_pedantic (mcheck_abort);
+
+ /* Check if freopen proper fflush the stream. */
+ {
+ CHAR_T old[] = W("old");
+ CHAR_T *buf = old;
+ size_t size;
+
+ FILE *fp = OPEN_MEMSTREAM (&buf, &size);
+ TEST_VERIFY_EXIT (fp != NULL);
+
+ FPUTS (W("new"), fp);
+ /* The stream buffer pointer should be updated with only a fflush or
+ fclose. */
+ TEST_COMPARE (STRCMP (buf, old), 0);
+
+ /* The old stream should be fflush the stream, even for an invalid
+ streams. */
+ FILE *nfp = freopen ("invalid-file", "r", fp);
+ TEST_VERIFY_EXIT (nfp == NULL);
+
+ TEST_VERIFY (STRCMP (buf, W("new")) == 0);
+ TEST_COMPARE_BLOB (buf, STRLEN (buf) * sizeof (CHAR_T),
+ W("new"), STRLEN (W("new")) * sizeof (CHAR_T));
+
+ TEST_COMPARE (fclose (fp), 0);
+
+ free (buf);
+ }
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/libio/tst-mmap-setvbuf.c b/libio/tst-mmap-setvbuf.c
index dcbc62e057..87a3d44ea0 100644
--- a/libio/tst-mmap-setvbuf.c
+++ b/libio/tst-mmap-setvbuf.c
@@ -1,5 +1,5 @@
/* Test setvbuf on readonly fopen (using mmap stdio).
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
diff --git a/libio/tst-readline.c b/libio/tst-readline.c
index 9322ef68da..95c5ba9c80 100644
--- a/libio/tst-readline.c
+++ b/libio/tst-readline.c
@@ -1,5 +1,5 @@
/* Test the __libc_readline_unlocked function.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Exercise __libc_readline_unlocked with various combinations of line
lengths, stdio buffer sizes, and line read buffer sizes. */
@@ -232,5 +232,6 @@ do_test (void)
return 0;
}
+#define TIMEOUT 100
#define PREPARE prepare
#include <support/test-driver.c>
diff --git a/libio/tst-sprintf-chk-ub.c b/libio/tst-sprintf-chk-ub.c
new file mode 100644
index 0000000000..77ec64229a
--- /dev/null
+++ b/libio/tst-sprintf-chk-ub.c
@@ -0,0 +1,2 @@
+#define _FORTIFY_SOURCE 2
+#include <tst-sprintf-ub.c>
diff --git a/libio/tst-sprintf-ub.c b/libio/tst-sprintf-ub.c
new file mode 100644
index 0000000000..b68a3352c3
--- /dev/null
+++ b/libio/tst-sprintf-ub.c
@@ -0,0 +1,102 @@
+/* Test the sprintf (buf, "%s", buf) does not override buf.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdarg.h>
+#include <stdio.h>
+#include <string.h>
+
+#include <support/check.h>
+
+enum
+{
+ FUNCTION_FIRST,
+ FUNCTION_SPRINTF = FUNCTION_FIRST,
+ FUNCTION_SNPRINF,
+ FUNCTION_VSPRINTF,
+ FUNCTION_VSNPRINTF,
+ FUNCTION_LAST
+};
+
+static void
+do_one_test (int function, char *buf, ...)
+{
+ va_list args;
+ char *arg;
+
+ /* Expected results for fortified and non-fortified sprintf. */
+#if defined _FORTIFY_SOURCE && _FORTIFY_SOURCE > 1
+ const char *expected = "CD";
+#else
+ const char *expected = "ABCD";
+#endif
+
+ va_start (args, buf);
+ arg = va_arg (args, char *);
+ va_end (args);
+
+ switch (function)
+ {
+ /* The regular sprintf and vsprintf functions do not override the
+ destination buffer, even if source and destination overlap. */
+ case FUNCTION_SPRINTF:
+ sprintf (buf, "%sCD", buf);
+ TEST_COMPARE_STRING (buf, expected);
+ break;
+ case FUNCTION_VSPRINTF:
+ va_start (args, buf);
+ vsprintf (arg, "%sCD", args);
+ TEST_COMPARE_STRING (arg, expected);
+ va_end (args);
+ break;
+ /* On the other hand, snprint and vsnprint override overlapping
+ source and destination buffers. */
+ case FUNCTION_SNPRINF:
+ snprintf (buf, 3, "%sCD", buf);
+ TEST_COMPARE_STRING (buf, "CD");
+ break;
+ case FUNCTION_VSNPRINTF:
+ va_start (args, buf);
+ vsnprintf (arg, 3, "%sCD", args);
+ TEST_COMPARE_STRING (arg, "CD");
+ va_end (args);
+ break;
+ default:
+ support_record_failure ();
+ }
+}
+
+static int
+do_test (void)
+{
+ char buf[8];
+ int i;
+
+ /* For each function in the enum do:
+ - reset the buffer to the initial state "AB";
+ - call the function with buffer as source and destination;
+ - check for the desired behavior. */
+ for (i = FUNCTION_FIRST; i < FUNCTION_LAST; i++)
+ {
+ strncpy (buf, "AB", 3);
+ do_one_test (i, buf, buf);
+ }
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/libio/tst-vtables-common.c b/libio/tst-vtables-common.c
index 5e31012069..bedd030563 100644
--- a/libio/tst-vtables-common.c
+++ b/libio/tst-vtables-common.c
@@ -1,5 +1,5 @@
/* Test for libio vtables and their validation. Common code.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This test provides some coverage for how various stdio functions
use the vtables in FILE * objects. The focus is mostly on which
@@ -380,21 +380,6 @@ without_compatibility_fflush (void *closure)
_exit (1);
}
-/* Exit status after abnormal termination. */
-static int termination_status;
-
-static void
-init_termination_status (void)
-{
- pid_t pid = xfork ();
- if (pid == 0)
- abort ();
- xwaitpid (pid, &termination_status, 0);
-
- TEST_VERIFY (WIFSIGNALED (termination_status));
- TEST_COMPARE (WTERMSIG (termination_status), SIGABRT);
-}
-
static void
check_for_termination (const char *name, void (*callback) (void *))
{
@@ -404,7 +389,7 @@ check_for_termination (const char *name, void (*callback) (void *))
shared->calls = 0;
struct support_capture_subprocess proc
= support_capture_subprocess (callback, NULL);
- support_capture_subprocess_check (&proc, name, termination_status,
+ support_capture_subprocess_check (&proc, name, -SIGABRT,
sc_allow_stderr);
const char *message
= "Fatal error: glibc detected an invalid stdio handle\n";
@@ -491,7 +476,6 @@ run_tests (bool initially_disabled)
shared = support_shared_allocate (sizeof (*shared));
shared->initially_disabled = initially_disabled;
- init_termination_status ();
if (initially_disabled)
{
diff --git a/libio/tst-vtables-interposed.c b/libio/tst-vtables-interposed.c
index aaa5a84e0a..e727d5067e 100644
--- a/libio/tst-vtables-interposed.c
+++ b/libio/tst-vtables-interposed.c
@@ -1,5 +1,5 @@
/* Test for libio vtables and their validation. Enabled through interposition.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "tst-vtables-common.c"
diff --git a/libio/tst-vtables.c b/libio/tst-vtables.c
index c31a552f61..90221b5bb8 100644
--- a/libio/tst-vtables.c
+++ b/libio/tst-vtables.c
@@ -1,5 +1,5 @@
/* Test for libio vtables and their validation. Initially disabled case.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "tst-vtables-common.c"
diff --git a/libio/tst-wfile-sync.c b/libio/tst-wfile-sync.c
new file mode 100644
index 0000000000..d6be59f105
--- /dev/null
+++ b/libio/tst-wfile-sync.c
@@ -0,0 +1,39 @@
+/* Test that _IO_wfile_sync does not crash (bug 20568).
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <locale.h>
+#include <stdio.h>
+#include <wchar.h>
+#include <support/check.h>
+#include <support/xunistd.h>
+
+static int
+do_test (void)
+{
+ TEST_VERIFY_EXIT (setlocale (LC_ALL, "de_DE.UTF-8") != NULL);
+ /* Fill the stdio buffer and advance the read pointer. */
+ TEST_VERIFY_EXIT (fgetwc (stdin) != WEOF);
+ /* This calls _IO_wfile_sync, it should not crash. */
+ TEST_VERIFY_EXIT (setvbuf (stdin, NULL, _IONBF, 0) == 0);
+ /* Verify that the external file offset has been synchronized. */
+ TEST_COMPARE (xlseek (0, 0, SEEK_CUR), 1);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/libio/tst-wfile-sync.input b/libio/tst-wfile-sync.input
new file mode 100644
index 0000000000..12d0958f7a
--- /dev/null
+++ b/libio/tst-wfile-sync.input
@@ -0,0 +1 @@
+This is a test of _IO_wfile_sync.
diff --git a/libio/tst-widetext.c b/libio/tst-widetext.c
index 82eb217b31..9826c356fa 100644
--- a/libio/tst-widetext.c
+++ b/libio/tst-widetext.c
@@ -1,6 +1,6 @@
/* Test program for the wide character stream functions handling larger
amounts of text.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <iconv.h>
diff --git a/libio/tst-wmemstream3.c b/libio/tst-wmemstream3.c
index f24f0facc6..1bf9330f63 100644
--- a/libio/tst-wmemstream3.c
+++ b/libio/tst-wmemstream3.c
@@ -1,5 +1,5 @@
/* Test for open_memstream implementation.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <wchar.h>
diff --git a/libio/tst-wmemstream4.c b/libio/tst-wmemstream4.c
new file mode 100644
index 0000000000..48926445dc
--- /dev/null
+++ b/libio/tst-wmemstream4.c
@@ -0,0 +1,20 @@
+/* Test for open_wmemstream BZ #21037.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#define TEST_WCHAR
+#include <libio/tst-memstream4.c>
diff --git a/libio/tst_getwc.c b/libio/tst_getwc.c
index f37c7ae9e3..620929bd3c 100644
--- a/libio/tst_getwc.c
+++ b/libio/tst_getwc.c
@@ -1,5 +1,5 @@
/* Simple test of getwc in the C locale.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <wchar.h>
diff --git a/libio/tst_putwc.c b/libio/tst_putwc.c
index 18765601ed..fc990e9759 100644
--- a/libio/tst_putwc.c
+++ b/libio/tst_putwc.c
@@ -1,5 +1,5 @@
/* Simple test of putwc in the C locale.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <error.h>
diff --git a/libio/vasprintf.c b/libio/vasprintf.c
index 6c35d2b108..751ca8cbcf 100644
--- a/libio/vasprintf.c
+++ b/libio/vasprintf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
As a special exception, if you link the code in this file with
files compiled with a GNU compiler to produce an executable,
@@ -24,15 +24,13 @@
This exception applies to code released by its copyright holders
in files containing the exception. */
-#include <malloc.h>
#include <string.h>
-#include "libioP.h"
-#include "stdio.h"
-#include <stdio_ext.h>
-#include "strfile.h"
+#include <stdlib.h>
+#include <strfile.h>
int
-_IO_vasprintf (char **result_ptr, const char *format, va_list args)
+__vasprintf_internal (char **result_ptr, const char *format, va_list args,
+ unsigned int mode_flags)
{
/* Initial size of the buffer to be used. Will be doubled each time an
overflow occurs. */
@@ -56,7 +54,7 @@ _IO_vasprintf (char **result_ptr, const char *format, va_list args)
sf._sbf._f._flags &= ~_IO_USER_BUF;
sf._s._allocate_buffer_unused = (_IO_alloc_type) malloc;
sf._s._free_buffer_unused = (_IO_free_type) free;
- ret = _IO_vfprintf (&sf._sbf._f, format, args);
+ ret = __vfprintf_internal (&sf._sbf._f, format, args, mode_flags);
if (ret < 0)
{
free (sf._sbf._f._IO_buf_base);
@@ -85,4 +83,10 @@ _IO_vasprintf (char **result_ptr, const char *format, va_list args)
(*result_ptr)[needed - 1] = '\0';
return ret;
}
-ldbl_weak_alias (_IO_vasprintf, vasprintf)
+
+int
+__vasprintf (char **result_ptr, const char *format, va_list args)
+{
+ return __vasprintf_internal (result_ptr, format, args, 0);
+}
+ldbl_weak_alias (__vasprintf, vasprintf)
diff --git a/libio/vscanf.c b/libio/vscanf.c
index 9c27122c27..7ba7e6bc89 100644
--- a/libio/vscanf.c
+++ b/libio/vscanf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
As a special exception, if you link the code in this file with
files compiled with a GNU compiler to produce an executable,
@@ -24,6 +24,11 @@
This exception applies to code released by its copyright holders
in files containing the exception. */
+/* This file defines one of the deprecated scanf variants. */
+#include <features.h>
+#undef __GLIBC_USE_DEPRECATED_SCANF
+#define __GLIBC_USE_DEPRECATED_SCANF 1
+
#include "libioP.h"
#include "stdio.h"
@@ -32,6 +37,6 @@
int
_IO_vscanf (const char *format, va_list args)
{
- return _IO_vfscanf (_IO_stdin, format, args, NULL);
+ return __vfscanf_internal (stdin, format, args, 0);
}
ldbl_weak_alias (_IO_vscanf, vscanf)
diff --git a/libio/vsnprintf.c b/libio/vsnprintf.c
index 39b5500528..594dffc670 100644
--- a/libio/vsnprintf.c
+++ b/libio/vsnprintf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
As a special exception, if you link the code in this file with
files compiled with a GNU compiler to produce an executable,
@@ -90,8 +90,8 @@ const struct _IO_jump_t _IO_strn_jumps libio_vtable attribute_hidden =
int
-_IO_vsnprintf (char *string, size_t maxlen, const char *format,
- va_list args)
+__vsnprintf_internal (char *string, size_t maxlen, const char *format,
+ va_list args, unsigned int mode_flags)
{
_IO_strnfile sf;
int ret;
@@ -111,11 +111,17 @@ _IO_vsnprintf (char *string, size_t maxlen, const char *format,
_IO_JUMPS (&sf.f._sbf) = &_IO_strn_jumps;
string[0] = '\0';
_IO_str_init_static_internal (&sf.f, string, maxlen - 1, string);
- ret = _IO_vfprintf (&sf.f._sbf._f, format, args);
+ ret = __vfprintf_internal (&sf.f._sbf._f, format, args, mode_flags);
if (sf.f._sbf._f._IO_buf_base != sf.overflow_buf)
*sf.f._sbf._f._IO_write_ptr = '\0';
return ret;
}
-ldbl_weak_alias (_IO_vsnprintf, __vsnprintf)
-ldbl_weak_alias (_IO_vsnprintf, vsnprintf)
+
+int
+___vsnprintf (char *string, size_t maxlen, const char *format, va_list args)
+{
+ return __vsnprintf_internal (string, maxlen, format, args, 0);
+}
+ldbl_weak_alias (___vsnprintf, __vsnprintf)
+ldbl_weak_alias (___vsnprintf, vsnprintf)
diff --git a/libio/vswprintf.c b/libio/vswprintf.c
index bcc473d115..ee24878445 100644
--- a/libio/vswprintf.c
+++ b/libio/vswprintf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
As a special exception, if you link the code in this file with
files compiled with a GNU compiler to produce an executable,
@@ -89,8 +89,8 @@ const struct _IO_jump_t _IO_wstrn_jumps libio_vtable attribute_hidden =
int
-_IO_vswprintf (wchar_t *string, size_t maxlen, const wchar_t *format,
- va_list args)
+__vswprintf_internal (wchar_t *string, size_t maxlen, const wchar_t *format,
+ va_list args, unsigned int mode_flags)
{
_IO_wstrnfile sf;
int ret;
@@ -108,7 +108,7 @@ _IO_vswprintf (wchar_t *string, size_t maxlen, const wchar_t *format,
_IO_fwide (&sf.f._sbf._f, 1);
string[0] = L'\0';
_IO_wstr_init_static (&sf.f._sbf._f, string, maxlen - 1, string);
- ret = _IO_vfwprintf ((FILE *) &sf.f._sbf, format, args);
+ ret = __vfwprintf_internal ((FILE *) &sf.f._sbf, format, args, mode_flags);
if (sf.f._sbf._f._wide_data->_IO_buf_base == sf.overflow_buf)
/* ISO C99 requires swprintf/vswprintf to return an error if the
@@ -120,5 +120,11 @@ _IO_vswprintf (wchar_t *string, size_t maxlen, const wchar_t *format,
return ret;
}
-weak_alias (_IO_vswprintf, __vswprintf)
-ldbl_weak_alias (_IO_vswprintf, vswprintf)
+
+int
+__vswprintf (wchar_t *string, size_t maxlen, const wchar_t *format,
+ va_list args)
+{
+ return __vswprintf_internal (string, maxlen, format, args, 0);
+}
+ldbl_weak_alias (__vswprintf, vswprintf)
diff --git a/libio/vtables.c b/libio/vtables.c
index 9df75668c8..65e943bf50 100644
--- a/libio/vtables.c
+++ b/libio/vtables.c
@@ -1,5 +1,5 @@
/* libio vtable validation.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <libioP.h>
diff --git a/libio/vwprintf.c b/libio/vwprintf.c
index 72ebfec92d..c89753fa08 100644
--- a/libio/vwprintf.c
+++ b/libio/vwprintf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libioP.h>
#include <stdarg.h>
@@ -25,6 +25,6 @@
int
__vwprintf (const wchar_t *format, __gnuc_va_list arg)
{
- return __vfwprintf (stdout, format, arg);
+ return __vfwprintf_internal (stdout, format, arg, 0);
}
ldbl_strong_alias (__vwprintf, vwprintf)
diff --git a/libio/vwscanf.c b/libio/vwscanf.c
index 0d5f558758..617920bb2f 100644
--- a/libio/vwscanf.c
+++ b/libio/vwscanf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
As a special exception, if you link the code in this file with
files compiled with a GNU compiler to produce an executable,
@@ -24,12 +24,17 @@
This exception applies to code released by its copyright holders
in files containing the exception. */
+/* This file defines one of the deprecated scanf variants. */
+#include <features.h>
+#undef __GLIBC_USE_DEPRECATED_SCANF
+#define __GLIBC_USE_DEPRECATED_SCANF 1
+
#include "libioP.h"
#include <wchar.h>
int
__vwscanf (const wchar_t *format, va_list args)
{
- return _IO_vfwscanf (_IO_stdin, format, args, NULL);
+ return __vfwscanf_internal (stdin, format, args, 0);
}
ldbl_strong_alias (__vwscanf, vwscanf)
diff --git a/libio/wfiledoalloc.c b/libio/wfiledoalloc.c
index c3f4ba8cd4..c97dff91a3 100644
--- a/libio/wfiledoalloc.c
+++ b/libio/wfiledoalloc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/wfileops.c b/libio/wfileops.c
index 63cb687652..82a9a59d5e 100644
--- a/libio/wfileops.c
+++ b/libio/wfileops.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Ulrich Drepper <drepper@cygnus.com>.
Based on the single byte version by Per Bothner <bothner@cygnus.com>.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
As a special exception, if you link the code in this file with
files compiled with a GNU compiler to produce an executable,
@@ -72,11 +72,11 @@ _IO_wdo_write (FILE *fp, const wchar_t *data, size_t to_do)
}
/* Now convert from the internal format into the external buffer. */
- result = (*cc->__codecvt_do_out) (cc, &fp->_wide_data->_IO_state,
- data, data + to_do, &new_data,
- write_ptr,
- buf_end,
- &write_ptr);
+ result = __libio_codecvt_out (cc, &fp->_wide_data->_IO_state,
+ data, data + to_do, &new_data,
+ write_ptr,
+ buf_end,
+ &write_ptr);
/* Write out what we produced so far. */
if (_IO_new_do_write (fp, write_base, write_ptr - write_base) == EOF)
@@ -140,12 +140,12 @@ _IO_wfile_underflow (FILE *fp)
fp->_wide_data->_IO_last_state = fp->_wide_data->_IO_state;
fp->_wide_data->_IO_read_base = fp->_wide_data->_IO_read_ptr =
fp->_wide_data->_IO_buf_base;
- status = (*cd->__codecvt_do_in) (cd, &fp->_wide_data->_IO_state,
- fp->_IO_read_ptr, fp->_IO_read_end,
- &read_stop,
- fp->_wide_data->_IO_read_ptr,
- fp->_wide_data->_IO_buf_end,
- &fp->_wide_data->_IO_read_end);
+ status = __libio_codecvt_in (cd, &fp->_wide_data->_IO_state,
+ fp->_IO_read_ptr, fp->_IO_read_end,
+ &read_stop,
+ fp->_wide_data->_IO_read_ptr,
+ fp->_wide_data->_IO_buf_end,
+ &fp->_wide_data->_IO_read_end);
fp->_IO_read_base = fp->_IO_read_ptr;
fp->_IO_read_ptr = (char *) read_stop;
@@ -208,13 +208,13 @@ _IO_wfile_underflow (FILE *fp)
traditional Unix systems did this for stdout. stderr better
not be line buffered. So we do just that here
explicitly. --drepper */
- _IO_acquire_lock (_IO_stdout);
+ _IO_acquire_lock (stdout);
- if ((_IO_stdout->_flags & (_IO_LINKED | _IO_NO_WRITES | _IO_LINE_BUF))
+ if ((stdout->_flags & (_IO_LINKED | _IO_NO_WRITES | _IO_LINE_BUF))
== (_IO_LINKED | _IO_LINE_BUF))
- _IO_OVERFLOW (_IO_stdout, EOF);
+ _IO_OVERFLOW (stdout, EOF);
- _IO_release_lock (_IO_stdout);
+ _IO_release_lock (stdout);
}
_IO_switch_to_get_mode (fp);
@@ -266,11 +266,11 @@ _IO_wfile_underflow (FILE *fp)
naccbuf += to_copy;
from = accbuf;
}
- status = (*cd->__codecvt_do_in) (cd, &fp->_wide_data->_IO_state,
- from, to, &read_ptr_copy,
- fp->_wide_data->_IO_read_end,
- fp->_wide_data->_IO_buf_end,
- &fp->_wide_data->_IO_read_end);
+ status = __libio_codecvt_in (cd, &fp->_wide_data->_IO_state,
+ from, to, &read_ptr_copy,
+ fp->_wide_data->_IO_read_end,
+ fp->_wide_data->_IO_buf_end,
+ &fp->_wide_data->_IO_read_end);
if (__glibc_unlikely (naccbuf != 0))
fp->_IO_read_ptr += MAX (0, read_ptr_copy - &accbuf[naccbuf - to_copy]);
@@ -372,12 +372,12 @@ _IO_wfile_underflow_mmap (FILE *fp)
fp->_wide_data->_IO_last_state = fp->_wide_data->_IO_state;
fp->_wide_data->_IO_read_base = fp->_wide_data->_IO_read_ptr =
fp->_wide_data->_IO_buf_base;
- (*cd->__codecvt_do_in) (cd, &fp->_wide_data->_IO_state,
- fp->_IO_read_ptr, fp->_IO_read_end,
- &read_stop,
- fp->_wide_data->_IO_read_ptr,
- fp->_wide_data->_IO_buf_end,
- &fp->_wide_data->_IO_read_end);
+ __libio_codecvt_in (cd, &fp->_wide_data->_IO_state,
+ fp->_IO_read_ptr, fp->_IO_read_end,
+ &read_stop,
+ fp->_wide_data->_IO_read_ptr,
+ fp->_wide_data->_IO_buf_end,
+ &fp->_wide_data->_IO_read_end);
fp->_IO_read_ptr = (char *) read_stop;
@@ -495,7 +495,7 @@ _IO_wfile_sync (FILE *fp)
struct _IO_codecvt *cv = fp->_codecvt;
off64_t new_pos;
- int clen = (*cv->__codecvt_do_encoding) (cv);
+ int clen = __libio_codecvt_encoding (cv);
if (clen > 0)
/* It is easy, a fixed number of input bytes are used for each
@@ -508,11 +508,12 @@ _IO_wfile_sync (FILE *fp)
generate the wide characters up to the current reading
position. */
int nread;
-
+ size_t wnread = (fp->_wide_data->_IO_read_ptr
+ - fp->_wide_data->_IO_read_base);
fp->_wide_data->_IO_state = fp->_wide_data->_IO_last_state;
- nread = (*cv->__codecvt_do_length) (cv, &fp->_wide_data->_IO_state,
- fp->_IO_read_base,
- fp->_IO_read_end, delta);
+ nread = __libio_codecvt_length (cv, &fp->_wide_data->_IO_state,
+ fp->_IO_read_base,
+ fp->_IO_read_end, wnread);
fp->_IO_read_ptr = fp->_IO_read_base + nread;
delta = -(fp->_IO_read_end - fp->_IO_read_base - nread);
}
@@ -547,7 +548,7 @@ adjust_wide_data (FILE *fp, bool do_convert)
{
struct _IO_codecvt *cv = fp->_codecvt;
- int clen = (*cv->__codecvt_do_encoding) (cv);
+ int clen = __libio_codecvt_encoding (cv);
/* Take the easy way out for constant length encodings if we don't need to
convert. */
@@ -564,12 +565,12 @@ adjust_wide_data (FILE *fp, bool do_convert)
{
fp->_wide_data->_IO_last_state = fp->_wide_data->_IO_state;
- status = (*cv->__codecvt_do_in) (cv, &fp->_wide_data->_IO_state,
- fp->_IO_read_base, fp->_IO_read_ptr,
- &read_stop,
- fp->_wide_data->_IO_read_base,
- fp->_wide_data->_IO_buf_end,
- &fp->_wide_data->_IO_read_end);
+ status = __libio_codecvt_in (cv, &fp->_wide_data->_IO_state,
+ fp->_IO_read_base, fp->_IO_read_ptr,
+ &read_stop,
+ fp->_wide_data->_IO_read_base,
+ fp->_wide_data->_IO_buf_end,
+ &fp->_wide_data->_IO_read_end);
/* Should we return EILSEQ? */
if (__glibc_unlikely (status == __codecvt_error))
@@ -647,7 +648,7 @@ do_ftell_wide (FILE *fp)
}
struct _IO_codecvt *cv = fp->_codecvt;
- int clen = (*cv->__codecvt_do_encoding) (cv);
+ int clen = __libio_codecvt_encoding (cv);
if (!unflushed_writes)
{
@@ -662,9 +663,9 @@ do_ftell_wide (FILE *fp)
size_t delta = wide_read_ptr - wide_read_base;
__mbstate_t state = fp->_wide_data->_IO_last_state;
- nread = (*cv->__codecvt_do_length) (cv, &state,
- fp->_IO_read_base,
- fp->_IO_read_end, delta);
+ nread = __libio_codecvt_length (cv, &state,
+ fp->_IO_read_base,
+ fp->_IO_read_end, delta);
offset -= fp->_IO_read_end - fp->_IO_read_base - nread;
}
}
@@ -687,9 +688,8 @@ do_ftell_wide (FILE *fp)
enum __codecvt_result status;
__mbstate_t state = fp->_wide_data->_IO_last_state;
- status = (*cv->__codecvt_do_out) (cv, &state,
- in, in + delta, &in,
- out, out + outsize, &outstop);
+ status = __libio_codecvt_out (cv, &state, in, in + delta, &in,
+ out, out + outsize, &outstop);
/* We don't check for __codecvt_partial because it can be
returned on one of two conditions: either the output
@@ -800,7 +800,7 @@ _IO_wfile_seekoff (FILE *fp, off64_t offset, int dir, int mode)
find out which position in the external buffer corresponds to
the current position in the internal buffer. */
cv = fp->_codecvt;
- clen = (*cv->__codecvt_do_encoding) (cv);
+ clen = __libio_codecvt_encoding (cv);
if (mode != 0 || !was_writing)
{
@@ -818,10 +818,10 @@ _IO_wfile_seekoff (FILE *fp, off64_t offset, int dir, int mode)
delta = (fp->_wide_data->_IO_read_ptr
- fp->_wide_data->_IO_read_base);
fp->_wide_data->_IO_state = fp->_wide_data->_IO_last_state;
- nread = (*cv->__codecvt_do_length) (cv,
- &fp->_wide_data->_IO_state,
- fp->_IO_read_base,
- fp->_IO_read_end, delta);
+ nread = __libio_codecvt_length (cv,
+ &fp->_wide_data->_IO_state,
+ fp->_IO_read_base,
+ fp->_IO_read_end, delta);
fp->_IO_read_ptr = fp->_IO_read_base + nread;
fp->_wide_data->_IO_read_end = fp->_wide_data->_IO_read_ptr;
offset -= fp->_IO_read_end - fp->_IO_read_base - nread;
diff --git a/libio/wgenops.c b/libio/wgenops.c
index 884d72deba..1067bbc516 100644
--- a/libio/wgenops.c
+++ b/libio/wgenops.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Ulrich Drepper <drepper@cygnus.com>.
Based on the single byte version by Per Bothner <bothner@cygnus.com>.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
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/libio/wmemstream.c b/libio/wmemstream.c
index c92d2da4b2..dc40eff49b 100644
--- a/libio/wmemstream.c
+++ b/libio/wmemstream.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libioP.h"
#include "strfile.h"
diff --git a/libio/wprintf.c b/libio/wprintf.c
index 5945f651fc..1818c6e5e8 100644
--- a/libio/wprintf.c
+++ b/libio/wprintf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libioP.h>
#include <stdarg.h>
@@ -29,7 +29,7 @@ __wprintf (const wchar_t *format, ...)
int done;
va_start (arg, format);
- done = __vfwprintf (stdout, format, arg);
+ done = __vfwprintf_internal (stdout, format, arg, 0);
va_end (arg);
return done;
diff --git a/libio/wscanf.c b/libio/wscanf.c
index c8cdad0acd..540fbc9016 100644
--- a/libio/wscanf.c
+++ b/libio/wscanf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -13,7 +13,12 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+
+/* This file defines one of the deprecated scanf variants. */
+#include <features.h>
+#undef __GLIBC_USE_DEPRECATED_SCANF
+#define __GLIBC_USE_DEPRECATED_SCANF 1
#include <libioP.h>
#include <stdarg.h>
@@ -30,7 +35,7 @@ __wscanf (const wchar_t *format, ...)
int done;
va_start (arg, format);
- done = _IO_vfwscanf (stdin, format, arg, NULL);
+ done = __vfwscanf_internal (stdin, format, arg, 0);
va_end (arg);
return done;
diff --git a/libio/wstrops.c b/libio/wstrops.c
index 6626f2f711..a68fbe9643 100644
--- a/libio/wstrops.c
+++ b/libio/wstrops.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
As a special exception, if you link the code in this file with
files compiled with a GNU compiler to produce an executable,
@@ -256,8 +256,8 @@ _IO_wstr_seekoff (FILE *fp, off64_t offset, int dir, int mode)
if (mode == 0 && (fp->_flags & _IO_TIED_PUT_GET))
mode = (fp->_flags & _IO_CURRENTLY_PUTTING ? _IOS_OUTPUT : _IOS_INPUT);
- bool was_writing = (fp->_wide_data->_IO_write_ptr >
- fp->_wide_data->_IO_write_base
+ bool was_writing = ((fp->_wide_data->_IO_write_ptr
+ > fp->_wide_data->_IO_write_base)
|| _IO_in_put_mode (fp));
if (was_writing)
_IO_wstr_switch_to_get_mode (fp);
diff --git a/locale/C-address.c b/locale/C-address.c
index f2a77fb826..54120bb888 100644
--- a/locale/C-address.c
+++ b/locale/C-address.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <endian.h>
diff --git a/locale/C-collate.c b/locale/C-collate.c
index dcf264b9cb..69cc53bee9 100644
--- a/locale/C-collate.c
+++ b/locale/C-collate.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <endian.h>
#include <stdint.h>
diff --git a/locale/C-ctype.c b/locale/C-ctype.c
index 9397a1ec22..59525b90c7 100644
--- a/locale/C-ctype.c
+++ b/locale/C-ctype.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "localeinfo.h"
#include <endian.h>
diff --git a/locale/C-identification.c b/locale/C-identification.c
index d9f663af11..f50458679b 100644
--- a/locale/C-identification.c
+++ b/locale/C-identification.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <endian.h>
diff --git a/locale/C-measurement.c b/locale/C-measurement.c
index 92064d7361..c5f3ef9978 100644
--- a/locale/C-measurement.c
+++ b/locale/C-measurement.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <endian.h>
diff --git a/locale/C-messages.c b/locale/C-messages.c
index 915c20c01e..8e490fa8ed 100644
--- a/locale/C-messages.c
+++ b/locale/C-messages.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "localeinfo.h"
diff --git a/locale/C-monetary.c b/locale/C-monetary.c
index e241551e47..4b2078872b 100644
--- a/locale/C-monetary.c
+++ b/locale/C-monetary.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "localeinfo.h"
diff --git a/locale/C-name.c b/locale/C-name.c
index 304ee8b1a3..51ad4bb49c 100644
--- a/locale/C-name.c
+++ b/locale/C-name.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <endian.h>
diff --git a/locale/C-numeric.c b/locale/C-numeric.c
index bd67866b10..7b81a4e967 100644
--- a/locale/C-numeric.c
+++ b/locale/C-numeric.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "localeinfo.h"
diff --git a/locale/C-paper.c b/locale/C-paper.c
index 50e0d6ccfc..8f029b7585 100644
--- a/locale/C-paper.c
+++ b/locale/C-paper.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <endian.h>
diff --git a/locale/C-telephone.c b/locale/C-telephone.c
index 9498b2043f..08ebfc3142 100644
--- a/locale/C-telephone.c
+++ b/locale/C-telephone.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <endian.h>
diff --git a/locale/C-time.c b/locale/C-time.c
index e2b3b17258..0a03ce8370 100644
--- a/locale/C-time.c
+++ b/locale/C-time.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
#include "localeinfo.h"
diff --git a/locale/C-translit.h b/locale/C-translit.h
deleted file mode 100644
index c0f1fdbd4f..0000000000
--- a/locale/C-translit.h
+++ /dev/null
@@ -1,836 +0,0 @@
-#include <stdint.h>
-#define NTRANSLIT 1353
-static const uint32_t translit_from_idx[] =
-{
- 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22,
- 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46,
- 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70,
- 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94,
- 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118,
- 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142,
- 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166,
- 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190,
- 192, 194, 196, 198, 200, 202, 204, 206, 208, 210, 212, 214,
- 216, 218, 220, 222, 224, 226, 228, 230, 232, 234, 236, 238,
- 240, 242, 244, 246, 248, 250, 252, 254, 256, 258, 260, 262,
- 264, 266, 268, 270, 272, 274, 276, 278, 280, 282, 284, 286,
- 288, 290, 292, 294, 296, 298, 300, 302, 304, 306, 308, 310,
- 312, 314, 316, 318, 320, 322, 324, 326, 328, 330, 332, 334,
- 336, 338, 340, 342, 344, 346, 348, 350, 352, 354, 356, 358,
- 360, 362, 364, 366, 368, 370, 372, 374, 376, 378, 380, 382,
- 384, 386, 388, 390, 392, 394, 396, 398, 400, 402, 404, 406,
- 408, 410, 412, 414, 416, 418, 420, 422, 424, 426, 428, 430,
- 432, 434, 436, 438, 440, 442, 444, 446, 448, 450, 452, 454,
- 456, 458, 460, 462, 464, 466, 468, 470, 472, 474, 476, 478,
- 480, 482, 484, 486, 488, 490, 492, 494, 496, 498, 500, 502,
- 504, 506, 508, 510, 512, 514, 516, 518, 520, 522, 524, 526,
- 528, 530, 532, 534, 536, 538, 540, 542, 544, 546, 548, 550,
- 552, 554, 556, 558, 560, 562, 564, 566, 568, 570, 572, 574,
- 576, 578, 580, 582, 584, 586, 588, 590, 592, 594, 596, 598,
- 600, 602, 604, 606, 608, 610, 612, 614, 616, 618, 620, 622,
- 624, 626, 628, 630, 632, 634, 636, 638, 640, 642, 644, 646,
- 648, 650, 652, 654, 656, 658, 660, 662, 664, 666, 668, 670,
- 672, 674, 676, 678, 680, 682, 684, 686, 688, 690, 692, 694,
- 696, 698, 700, 702, 704, 706, 708, 710, 712, 714, 716, 718,
- 720, 722, 724, 726, 728, 730, 732, 734, 736, 738, 740, 742,
- 744, 746, 748, 750, 752, 754, 756, 758, 760, 762, 764, 766,
- 768, 770, 772, 774, 776, 778, 780, 782, 784, 786, 788, 790,
- 792, 794, 796, 798, 800, 802, 804, 806, 808, 810, 812, 814,
- 816, 818, 820, 822, 824, 826, 828, 830, 832, 834, 836, 838,
- 840, 842, 844, 846, 848, 850, 852, 854, 856, 858, 860, 862,
- 864, 866, 868, 870, 872, 874, 876, 878, 880, 882, 884, 886,
- 888, 890, 892, 894, 896, 898, 900, 902, 904, 906, 908, 910,
- 912, 914, 916, 918, 920, 922, 924, 926, 928, 930, 932, 934,
- 936, 938, 940, 942, 944, 946, 948, 950, 952, 954, 956, 958,
- 960, 962, 964, 966, 968, 970, 972, 974, 976, 978, 980, 982,
- 984, 986, 988, 990, 992, 994, 996, 998, 1000, 1002, 1004, 1006,
- 1008, 1010, 1012, 1014, 1016, 1018, 1020, 1022, 1024, 1026, 1028, 1030,
- 1032, 1034, 1036, 1038, 1040, 1042, 1044, 1046, 1048, 1050, 1052, 1054,
- 1056, 1058, 1060, 1062, 1064, 1066, 1068, 1070, 1072, 1074, 1076, 1078,
- 1080, 1082, 1084, 1086, 1088, 1090, 1092, 1094, 1096, 1098, 1100, 1102,
- 1104, 1106, 1108, 1110, 1112, 1114, 1116, 1118, 1120, 1122, 1124, 1126,
- 1128, 1130, 1132, 1134, 1136, 1138, 1140, 1142, 1144, 1146, 1148, 1150,
- 1152, 1154, 1156, 1158, 1160, 1162, 1164, 1166, 1168, 1170, 1172, 1174,
- 1176, 1178, 1180, 1182, 1184, 1186, 1188, 1190, 1192, 1194, 1196, 1198,
- 1200, 1202, 1204, 1206, 1208, 1210, 1212, 1214, 1216, 1218, 1220, 1222,
- 1224, 1226, 1228, 1230, 1232, 1234, 1236, 1238, 1240, 1242, 1244, 1246,
- 1248, 1250, 1252, 1254, 1256, 1258, 1260, 1262, 1264, 1266, 1268, 1270,
- 1272, 1274, 1276, 1278, 1280, 1282, 1284, 1286, 1288, 1290, 1292, 1294,
- 1296, 1298, 1300, 1302, 1304, 1306, 1308, 1310, 1312, 1314, 1316, 1318,
- 1320, 1322, 1324, 1326, 1328, 1330, 1332, 1334, 1336, 1338, 1340, 1342,
- 1344, 1346, 1348, 1350, 1352, 1354, 1356, 1358, 1360, 1362, 1364, 1366,
- 1368, 1370, 1372, 1374, 1376, 1378, 1380, 1382, 1384, 1386, 1388, 1390,
- 1392, 1394, 1396, 1398, 1400, 1402, 1404, 1406, 1408, 1410, 1412, 1414,
- 1416, 1418, 1420, 1422, 1424, 1426, 1428, 1430, 1432, 1434, 1436, 1438,
- 1440, 1442, 1444, 1446, 1448, 1450, 1452, 1454, 1456, 1458, 1460, 1462,
- 1464, 1466, 1468, 1470, 1472, 1474, 1476, 1478, 1480, 1482, 1484, 1486,
- 1488, 1490, 1492, 1494, 1496, 1498, 1500, 1502, 1504, 1506, 1508, 1510,
- 1512, 1514, 1516, 1518, 1520, 1522, 1524, 1526, 1528, 1530, 1532, 1534,
- 1536, 1538, 1540, 1542, 1544, 1546, 1548, 1550, 1552, 1554, 1556, 1558,
- 1560, 1562, 1564, 1566, 1568, 1570, 1572, 1574, 1576, 1578, 1580, 1582,
- 1584, 1586, 1588, 1590, 1592, 1594, 1596, 1598, 1600, 1602, 1604, 1606,
- 1608, 1610, 1612, 1614, 1616, 1618, 1620, 1622, 1624, 1626, 1628, 1630,
- 1632, 1634, 1636, 1638, 1640, 1642, 1644, 1646, 1648, 1650, 1652, 1654,
- 1656, 1658, 1660, 1662, 1664, 1666, 1668, 1670, 1672, 1674, 1676, 1678,
- 1680, 1682, 1684, 1686, 1688, 1690, 1692, 1694, 1696, 1698, 1700, 1702,
- 1704, 1706, 1708, 1710, 1712, 1714, 1716, 1718, 1720, 1722, 1724, 1726,
- 1728, 1730, 1732, 1734, 1736, 1738, 1740, 1742, 1744, 1746, 1748, 1750,
- 1752, 1754, 1756, 1758, 1760, 1762, 1764, 1766, 1768, 1770, 1772, 1774,
- 1776, 1778, 1780, 1782, 1784, 1786, 1788, 1790, 1792, 1794, 1796, 1798,
- 1800, 1802, 1804, 1806, 1808, 1810, 1812, 1814, 1816, 1818, 1820, 1822,
- 1824, 1826, 1828, 1830, 1832, 1834, 1836, 1838, 1840, 1842, 1844, 1846,
- 1848, 1850, 1852, 1854, 1856, 1858, 1860, 1862, 1864, 1866, 1868, 1870,
- 1872, 1874, 1876, 1878, 1880, 1882, 1884, 1886, 1888, 1890, 1892, 1894,
- 1896, 1898, 1900, 1902, 1904, 1906, 1908, 1910, 1912, 1914, 1916, 1918,
- 1920, 1922, 1924, 1926, 1928, 1930, 1932, 1934, 1936, 1938, 1940, 1942,
- 1944, 1946, 1948, 1950, 1952, 1954, 1956, 1958, 1960, 1962, 1964, 1966,
- 1968, 1970, 1972, 1974, 1976, 1978, 1980, 1982, 1984, 1986, 1988, 1990,
- 1992, 1994, 1996, 1998, 2000, 2002, 2004, 2006, 2008, 2010, 2012, 2014,
- 2016, 2018, 2020, 2022, 2024, 2026, 2028, 2030, 2032, 2034, 2036, 2038,
- 2040, 2042, 2044, 2046, 2048, 2050, 2052, 2054, 2056, 2058, 2060, 2062,
- 2064, 2066, 2068, 2070, 2072, 2074, 2076, 2078, 2080, 2082, 2084, 2086,
- 2088, 2090, 2092, 2094, 2096, 2098, 2100, 2102, 2104, 2106, 2108, 2110,
- 2112, 2114, 2116, 2118, 2120, 2122, 2124, 2126, 2128, 2130, 2132, 2134,
- 2136, 2138, 2140, 2142, 2144, 2146, 2148, 2150, 2152, 2154, 2156, 2158,
- 2160, 2162, 2164, 2166, 2168, 2170, 2172, 2174, 2176, 2178, 2180, 2182,
- 2184, 2186, 2188, 2190, 2192, 2194, 2196, 2198, 2200, 2202, 2204, 2206,
- 2208, 2210, 2212, 2214, 2216, 2218, 2220, 2222, 2224, 2226, 2228, 2230,
- 2232, 2234, 2236, 2238, 2240, 2242, 2244, 2246, 2248, 2250, 2252, 2254,
- 2256, 2258, 2260, 2262, 2264, 2266, 2268, 2270, 2272, 2274, 2276, 2278,
- 2280, 2282, 2284, 2286, 2288, 2290, 2292, 2294, 2296, 2298, 2300, 2302,
- 2304, 2306, 2308, 2310, 2312, 2314, 2316, 2318, 2320, 2322, 2324, 2326,
- 2328, 2330, 2332, 2334, 2336, 2338, 2340, 2342, 2344, 2346, 2348, 2350,
- 2352, 2354, 2356, 2358, 2360, 2362, 2364, 2366, 2368, 2370, 2372, 2374,
- 2376, 2378, 2380, 2382, 2384, 2386, 2388, 2390, 2392, 2394, 2396, 2398,
- 2400, 2402, 2404, 2406, 2408, 2410, 2412, 2414, 2416, 2418, 2420, 2422,
- 2424, 2426, 2428, 2430, 2432, 2434, 2436, 2438, 2440, 2442, 2444, 2446,
- 2448, 2450, 2452, 2454, 2456, 2458, 2460, 2462, 2464, 2466, 2468, 2470,
- 2472, 2474, 2476, 2478, 2480, 2482, 2484, 2486, 2488, 2490, 2492, 2494,
- 2496, 2498, 2500, 2502, 2504, 2506, 2508, 2510, 2512, 2514, 2516, 2518,
- 2520, 2522, 2524, 2526, 2528, 2530, 2532, 2534, 2536, 2538, 2540, 2542,
- 2544, 2546, 2548, 2550, 2552, 2554, 2556, 2558, 2560, 2562, 2564, 2566,
- 2568, 2570, 2572, 2574, 2576, 2578, 2580, 2582, 2584, 2586, 2588, 2590,
- 2592, 2594, 2596, 2598, 2600, 2602, 2604, 2606, 2608, 2610, 2612, 2614,
- 2616, 2618, 2620, 2622, 2624, 2626, 2628, 2630, 2632, 2634, 2636, 2638,
- 2640, 2642, 2644, 2646, 2648, 2650, 2652, 2654, 2656, 2658, 2660, 2662,
- 2664, 2666, 2668, 2670, 2672, 2674, 2676, 2678, 2680, 2682, 2684, 2686,
- 2688, 2690, 2692, 2694, 2696, 2698, 2700, 2702, 2704
-};
-static const wchar_t translit_from_tbl[] =
- L"\x00a0" L"\0" L"\x00a9" L"\0" L"\x00ab" L"\0" L"\x00ad" L"\0" L"\x00ae"
- L"\0" L"\x00b5" L"\0" L"\x00b8" L"\0" L"\x00bb" L"\0" L"\x00bc" L"\0"
- L"\x00bd" L"\0" L"\x00be" L"\0" L"\x00c6" L"\0" L"\x00d7" L"\0" L"\x00df"
- L"\0" L"\x00e6" L"\0" L"\x0132" L"\0" L"\x0133" L"\0" L"\x0149" L"\0"
- L"\x0152" L"\0" L"\x0153" L"\0" L"\x017f" L"\0" L"\x01c7" L"\0" L"\x01c8"
- L"\0" L"\x01c9" L"\0" L"\x01ca" L"\0" L"\x01cb" L"\0" L"\x01cc" L"\0"
- L"\x01f1" L"\0" L"\x01f2" L"\0" L"\x01f3" L"\0" L"\x02bc" L"\0" L"\x02c6"
- L"\0" L"\x02c8" L"\0" L"\x02cb" L"\0" L"\x02cd" L"\0" L"\x02d0" L"\0"
- L"\x02dc" L"\0" L"\x2002" L"\0" L"\x2003" L"\0" L"\x2004" L"\0" L"\x2005"
- L"\0" L"\x2006" L"\0" L"\x2008" L"\0" L"\x2009" L"\0" L"\x200a" L"\0"
- L"\x200b" L"\0" L"\x2010" L"\0" L"\x2011" L"\0" L"\x2012" L"\0" L"\x2013"
- L"\0" L"\x2014" L"\0" L"\x2015" L"\0" L"\x2018" L"\0" L"\x2019" L"\0"
- L"\x201a" L"\0" L"\x201b" L"\0" L"\x201c" L"\0" L"\x201d" L"\0" L"\x201e"
- L"\0" L"\x201f" L"\0" L"\x2020" L"\0" L"\x2022" L"\0" L"\x2024" L"\0"
- L"\x2025" L"\0" L"\x2026" L"\0" L"\x202f" L"\0" L"\x2035" L"\0" L"\x2036"
- L"\0" L"\x2037" L"\0" L"\x2039" L"\0" L"\x203a" L"\0" L"\x203c" L"\0"
- L"\x2044" L"\0" L"\x2047" L"\0" L"\x2048" L"\0" L"\x2049" L"\0" L"\x205f"
- L"\0" L"\x2060" L"\0" L"\x2061" L"\0" L"\x2062" L"\0" L"\x2063" L"\0"
- L"\x20a1" L"\0" L"\x20a8" L"\0" L"\x20ac" L"\0" L"\x20b9" L"\0" L"\x2100"
- L"\0" L"\x2101" L"\0" L"\x2102" L"\0" L"\x2105" L"\0" L"\x2106" L"\0"
- L"\x210a" L"\0" L"\x210b" L"\0" L"\x210c" L"\0" L"\x210d" L"\0" L"\x210e"
- L"\0" L"\x2110" L"\0" L"\x2111" L"\0" L"\x2112" L"\0" L"\x2113" L"\0"
- L"\x2115" L"\0" L"\x2116" L"\0" L"\x2119" L"\0" L"\x211a" L"\0" L"\x211b"
- L"\0" L"\x211c" L"\0" L"\x211d" L"\0" L"\x2121" L"\0" L"\x2122" L"\0"
- L"\x2124" L"\0" L"\x2126" L"\0" L"\x2128" L"\0" L"\x212c" L"\0" L"\x212d"
- L"\0" L"\x212e" L"\0" L"\x212f" L"\0" L"\x2130" L"\0" L"\x2131" L"\0"
- L"\x2133" L"\0" L"\x2134" L"\0" L"\x2139" L"\0" L"\x2145" L"\0" L"\x2146"
- L"\0" L"\x2147" L"\0" L"\x2148" L"\0" L"\x2149" L"\0" L"\x2153" L"\0"
- L"\x2154" L"\0" L"\x2155" L"\0" L"\x2156" L"\0" L"\x2157" L"\0" L"\x2158"
- L"\0" L"\x2159" L"\0" L"\x215a" L"\0" L"\x215b" L"\0" L"\x215c" L"\0"
- L"\x215d" L"\0" L"\x215e" L"\0" L"\x215f" L"\0" L"\x2160" L"\0" L"\x2161"
- L"\0" L"\x2162" L"\0" L"\x2163" L"\0" L"\x2164" L"\0" L"\x2165" L"\0"
- L"\x2166" L"\0" L"\x2167" L"\0" L"\x2168" L"\0" L"\x2169" L"\0" L"\x216a"
- L"\0" L"\x216b" L"\0" L"\x216c" L"\0" L"\x216d" L"\0" L"\x216e" L"\0"
- L"\x216f" L"\0" L"\x2170" L"\0" L"\x2171" L"\0" L"\x2172" L"\0" L"\x2173"
- L"\0" L"\x2174" L"\0" L"\x2175" L"\0" L"\x2176" L"\0" L"\x2177" L"\0"
- L"\x2178" L"\0" L"\x2179" L"\0" L"\x217a" L"\0" L"\x217b" L"\0" L"\x217c"
- L"\0" L"\x217d" L"\0" L"\x217e" L"\0" L"\x217f" L"\0" L"\x2190" L"\0"
- L"\x2192" L"\0" L"\x2194" L"\0" L"\x21d0" L"\0" L"\x21d2" L"\0" L"\x21d4"
- L"\0" L"\x2212" L"\0" L"\x2215" L"\0" L"\x2216" L"\0" L"\x2217" L"\0"
- L"\x2223" L"\0" L"\x2236" L"\0" L"\x223c" L"\0" L"\x2264" L"\0" L"\x2265"
- L"\0" L"\x226a" L"\0" L"\x226b" L"\0" L"\x22d8" L"\0" L"\x22d9" L"\0"
- L"\x2400" L"\0" L"\x2401" L"\0" L"\x2402" L"\0" L"\x2403" L"\0" L"\x2404"
- L"\0" L"\x2405" L"\0" L"\x2406" L"\0" L"\x2407" L"\0" L"\x2408" L"\0"
- L"\x2409" L"\0" L"\x240a" L"\0" L"\x240b" L"\0" L"\x240c" L"\0" L"\x240d"
- L"\0" L"\x240e" L"\0" L"\x240f" L"\0" L"\x2410" L"\0" L"\x2411" L"\0"
- L"\x2412" L"\0" L"\x2413" L"\0" L"\x2414" L"\0" L"\x2415" L"\0" L"\x2416"
- L"\0" L"\x2417" L"\0" L"\x2418" L"\0" L"\x2419" L"\0" L"\x241a" L"\0"
- L"\x241b" L"\0" L"\x241c" L"\0" L"\x241d" L"\0" L"\x241e" L"\0" L"\x241f"
- L"\0" L"\x2420" L"\0" L"\x2421" L"\0" L"\x2423" L"\0" L"\x2424" L"\0"
- L"\x2460" L"\0" L"\x2461" L"\0" L"\x2462" L"\0" L"\x2463" L"\0" L"\x2464"
- L"\0" L"\x2465" L"\0" L"\x2466" L"\0" L"\x2467" L"\0" L"\x2468" L"\0"
- L"\x2469" L"\0" L"\x246a" L"\0" L"\x246b" L"\0" L"\x246c" L"\0" L"\x246d"
- L"\0" L"\x246e" L"\0" L"\x246f" L"\0" L"\x2470" L"\0" L"\x2471" L"\0"
- L"\x2472" L"\0" L"\x2473" L"\0" L"\x2474" L"\0" L"\x2475" L"\0" L"\x2476"
- L"\0" L"\x2477" L"\0" L"\x2478" L"\0" L"\x2479" L"\0" L"\x247a" L"\0"
- L"\x247b" L"\0" L"\x247c" L"\0" L"\x247d" L"\0" L"\x247e" L"\0" L"\x247f"
- L"\0" L"\x2480" L"\0" L"\x2481" L"\0" L"\x2482" L"\0" L"\x2483" L"\0"
- L"\x2484" L"\0" L"\x2485" L"\0" L"\x2486" L"\0" L"\x2487" L"\0" L"\x2488"
- L"\0" L"\x2489" L"\0" L"\x248a" L"\0" L"\x248b" L"\0" L"\x248c" L"\0"
- L"\x248d" L"\0" L"\x248e" L"\0" L"\x248f" L"\0" L"\x2490" L"\0" L"\x2491"
- L"\0" L"\x2492" L"\0" L"\x2493" L"\0" L"\x2494" L"\0" L"\x2495" L"\0"
- L"\x2496" L"\0" L"\x2497" L"\0" L"\x2498" L"\0" L"\x2499" L"\0" L"\x249a"
- L"\0" L"\x249b" L"\0" L"\x249c" L"\0" L"\x249d" L"\0" L"\x249e" L"\0"
- L"\x249f" L"\0" L"\x24a0" L"\0" L"\x24a1" L"\0" L"\x24a2" L"\0" L"\x24a3"
- L"\0" L"\x24a4" L"\0" L"\x24a5" L"\0" L"\x24a6" L"\0" L"\x24a7" L"\0"
- L"\x24a8" L"\0" L"\x24a9" L"\0" L"\x24aa" L"\0" L"\x24ab" L"\0" L"\x24ac"
- L"\0" L"\x24ad" L"\0" L"\x24ae" L"\0" L"\x24af" L"\0" L"\x24b0" L"\0"
- L"\x24b1" L"\0" L"\x24b2" L"\0" L"\x24b3" L"\0" L"\x24b4" L"\0" L"\x24b5"
- L"\0" L"\x24b6" L"\0" L"\x24b7" L"\0" L"\x24b8" L"\0" L"\x24b9" L"\0"
- L"\x24ba" L"\0" L"\x24bb" L"\0" L"\x24bc" L"\0" L"\x24bd" L"\0" L"\x24be"
- L"\0" L"\x24bf" L"\0" L"\x24c0" L"\0" L"\x24c1" L"\0" L"\x24c2" L"\0"
- L"\x24c3" L"\0" L"\x24c4" L"\0" L"\x24c5" L"\0" L"\x24c6" L"\0" L"\x24c7"
- L"\0" L"\x24c8" L"\0" L"\x24c9" L"\0" L"\x24ca" L"\0" L"\x24cb" L"\0"
- L"\x24cc" L"\0" L"\x24cd" L"\0" L"\x24ce" L"\0" L"\x24cf" L"\0" L"\x24d0"
- L"\0" L"\x24d1" L"\0" L"\x24d2" L"\0" L"\x24d3" L"\0" L"\x24d4" L"\0"
- L"\x24d5" L"\0" L"\x24d6" L"\0" L"\x24d7" L"\0" L"\x24d8" L"\0" L"\x24d9"
- L"\0" L"\x24da" L"\0" L"\x24db" L"\0" L"\x24dc" L"\0" L"\x24dd" L"\0"
- L"\x24de" L"\0" L"\x24df" L"\0" L"\x24e0" L"\0" L"\x24e1" L"\0" L"\x24e2"
- L"\0" L"\x24e3" L"\0" L"\x24e4" L"\0" L"\x24e5" L"\0" L"\x24e6" L"\0"
- L"\x24e7" L"\0" L"\x24e8" L"\0" L"\x24e9" L"\0" L"\x24ea" L"\0" L"\x2500"
- L"\0" L"\x2502" L"\0" L"\x250c" L"\0" L"\x2510" L"\0" L"\x2514" L"\0"
- L"\x2518" L"\0" L"\x251c" L"\0" L"\x2524" L"\0" L"\x252c" L"\0" L"\x2534"
- L"\0" L"\x253c" L"\0" L"\x25e6" L"\0" L"\x2a74" L"\0" L"\x2a75" L"\0"
- L"\x2a76" L"\0" L"\x3000" L"\0" L"\x30a0" L"\0" L"\x3251" L"\0" L"\x3252"
- L"\0" L"\x3253" L"\0" L"\x3254" L"\0" L"\x3255" L"\0" L"\x3256" L"\0"
- L"\x3257" L"\0" L"\x3258" L"\0" L"\x3259" L"\0" L"\x325a" L"\0" L"\x325b"
- L"\0" L"\x325c" L"\0" L"\x325d" L"\0" L"\x325e" L"\0" L"\x325f" L"\0"
- L"\x32b1" L"\0" L"\x32b2" L"\0" L"\x32b3" L"\0" L"\x32b4" L"\0" L"\x32b5"
- L"\0" L"\x32b6" L"\0" L"\x32b7" L"\0" L"\x32b8" L"\0" L"\x32b9" L"\0"
- L"\x32ba" L"\0" L"\x32bb" L"\0" L"\x32bc" L"\0" L"\x32bd" L"\0" L"\x32be"
- L"\0" L"\x32bf" L"\0" L"\x3371" L"\0" L"\x3372" L"\0" L"\x3373" L"\0"
- L"\x3374" L"\0" L"\x3375" L"\0" L"\x3376" L"\0" L"\x3380" L"\0" L"\x3381"
- L"\0" L"\x3382" L"\0" L"\x3383" L"\0" L"\x3384" L"\0" L"\x3385" L"\0"
- L"\x3386" L"\0" L"\x3387" L"\0" L"\x3388" L"\0" L"\x3389" L"\0" L"\x338a"
- L"\0" L"\x338b" L"\0" L"\x338c" L"\0" L"\x338d" L"\0" L"\x338e" L"\0"
- L"\x338f" L"\0" L"\x3390" L"\0" L"\x3391" L"\0" L"\x3392" L"\0" L"\x3393"
- L"\0" L"\x3394" L"\0" L"\x3395" L"\0" L"\x3396" L"\0" L"\x3397" L"\0"
- L"\x3398" L"\0" L"\x3399" L"\0" L"\x339a" L"\0" L"\x339b" L"\0" L"\x339c"
- L"\0" L"\x339d" L"\0" L"\x339e" L"\0" L"\x339f" L"\0" L"\x33a0" L"\0"
- L"\x33a1" L"\0" L"\x33a2" L"\0" L"\x33a3" L"\0" L"\x33a4" L"\0" L"\x33a5"
- L"\0" L"\x33a6" L"\0" L"\x33a7" L"\0" L"\x33a8" L"\0" L"\x33a9" L"\0"
- L"\x33aa" L"\0" L"\x33ab" L"\0" L"\x33ac" L"\0" L"\x33ad" L"\0" L"\x33ae"
- L"\0" L"\x33af" L"\0" L"\x33b0" L"\0" L"\x33b1" L"\0" L"\x33b2" L"\0"
- L"\x33b3" L"\0" L"\x33b4" L"\0" L"\x33b5" L"\0" L"\x33b6" L"\0" L"\x33b7"
- L"\0" L"\x33b8" L"\0" L"\x33b9" L"\0" L"\x33ba" L"\0" L"\x33bb" L"\0"
- L"\x33bc" L"\0" L"\x33bd" L"\0" L"\x33be" L"\0" L"\x33bf" L"\0" L"\x33c2"
- L"\0" L"\x33c3" L"\0" L"\x33c4" L"\0" L"\x33c5" L"\0" L"\x33c6" L"\0"
- L"\x33c7" L"\0" L"\x33c8" L"\0" L"\x33c9" L"\0" L"\x33ca" L"\0" L"\x33cb"
- L"\0" L"\x33cc" L"\0" L"\x33cd" L"\0" L"\x33ce" L"\0" L"\x33cf" L"\0"
- L"\x33d0" L"\0" L"\x33d1" L"\0" L"\x33d2" L"\0" L"\x33d3" L"\0" L"\x33d4"
- L"\0" L"\x33d5" L"\0" L"\x33d6" L"\0" L"\x33d7" L"\0" L"\x33d8" L"\0"
- L"\x33d9" L"\0" L"\x33da" L"\0" L"\x33db" L"\0" L"\x33dc" L"\0" L"\x33dd"
- L"\0" L"\xfb00" L"\0" L"\xfb01" L"\0" L"\xfb02" L"\0" L"\xfb03" L"\0"
- L"\xfb04" L"\0" L"\xfb06" L"\0" L"\xfb29" L"\0" L"\xfe00" L"\0" L"\xfe01"
- L"\0" L"\xfe02" L"\0" L"\xfe03" L"\0" L"\xfe04" L"\0" L"\xfe05" L"\0"
- L"\xfe06" L"\0" L"\xfe07" L"\0" L"\xfe08" L"\0" L"\xfe09" L"\0" L"\xfe0a"
- L"\0" L"\xfe0b" L"\0" L"\xfe0c" L"\0" L"\xfe0d" L"\0" L"\xfe0e" L"\0"
- L"\xfe0f" L"\0" L"\xfe4d" L"\0" L"\xfe4e" L"\0" L"\xfe4f" L"\0" L"\xfe50"
- L"\0" L"\xfe52" L"\0" L"\xfe54" L"\0" L"\xfe55" L"\0" L"\xfe56" L"\0"
- L"\xfe57" L"\0" L"\xfe59" L"\0" L"\xfe5a" L"\0" L"\xfe5b" L"\0" L"\xfe5c"
- L"\0" L"\xfe5f" L"\0" L"\xfe60" L"\0" L"\xfe61" L"\0" L"\xfe62" L"\0"
- L"\xfe63" L"\0" L"\xfe64" L"\0" L"\xfe65" L"\0" L"\xfe66" L"\0" L"\xfe68"
- L"\0" L"\xfe69" L"\0" L"\xfe6a" L"\0" L"\xfe6b" L"\0" L"\xfeff" L"\0"
- L"\xff01" L"\0" L"\xff02" L"\0" L"\xff03" L"\0" L"\xff04" L"\0" L"\xff05"
- L"\0" L"\xff06" L"\0" L"\xff07" L"\0" L"\xff08" L"\0" L"\xff09" L"\0"
- L"\xff0a" L"\0" L"\xff0b" L"\0" L"\xff0c" L"\0" L"\xff0d" L"\0" L"\xff0e"
- L"\0" L"\xff0f" L"\0" L"\xff10" L"\0" L"\xff11" L"\0" L"\xff12" L"\0"
- L"\xff13" L"\0" L"\xff14" L"\0" L"\xff15" L"\0" L"\xff16" L"\0" L"\xff17"
- L"\0" L"\xff18" L"\0" L"\xff19" L"\0" L"\xff1a" L"\0" L"\xff1b" L"\0"
- L"\xff1c" L"\0" L"\xff1d" L"\0" L"\xff1e" L"\0" L"\xff1f" L"\0" L"\xff20"
- L"\0" L"\xff21" L"\0" L"\xff22" L"\0" L"\xff23" L"\0" L"\xff24" L"\0"
- L"\xff25" L"\0" L"\xff26" L"\0" L"\xff27" L"\0" L"\xff28" L"\0" L"\xff29"
- L"\0" L"\xff2a" L"\0" L"\xff2b" L"\0" L"\xff2c" L"\0" L"\xff2d" L"\0"
- L"\xff2e" L"\0" L"\xff2f" L"\0" L"\xff30" L"\0" L"\xff31" L"\0" L"\xff32"
- L"\0" L"\xff33" L"\0" L"\xff34" L"\0" L"\xff35" L"\0" L"\xff36" L"\0"
- L"\xff37" L"\0" L"\xff38" L"\0" L"\xff39" L"\0" L"\xff3a" L"\0" L"\xff3b"
- L"\0" L"\xff3c" L"\0" L"\xff3d" L"\0" L"\xff3e" L"\0" L"\xff3f" L"\0"
- L"\xff40" L"\0" L"\xff41" L"\0" L"\xff42" L"\0" L"\xff43" L"\0" L"\xff44"
- L"\0" L"\xff45" L"\0" L"\xff46" L"\0" L"\xff47" L"\0" L"\xff48" L"\0"
- L"\xff49" L"\0" L"\xff4a" L"\0" L"\xff4b" L"\0" L"\xff4c" L"\0" L"\xff4d"
- L"\0" L"\xff4e" L"\0" L"\xff4f" L"\0" L"\xff50" L"\0" L"\xff51" L"\0"
- L"\xff52" L"\0" L"\xff53" L"\0" L"\xff54" L"\0" L"\xff55" L"\0" L"\xff56"
- L"\0" L"\xff57" L"\0" L"\xff58" L"\0" L"\xff59" L"\0" L"\xff5a" L"\0"
- L"\xff5b" L"\0" L"\xff5c" L"\0" L"\xff5d" L"\0" L"\xff5e" L"\0"
- L"\x0001d400" L"\0" L"\x0001d401" L"\0" L"\x0001d402" L"\0" L"\x0001d403"
- L"\0" L"\x0001d404" L"\0" L"\x0001d405" L"\0" L"\x0001d406" L"\0"
- L"\x0001d407" L"\0" L"\x0001d408" L"\0" L"\x0001d409" L"\0" L"\x0001d40a"
- L"\0" L"\x0001d40b" L"\0" L"\x0001d40c" L"\0" L"\x0001d40d" L"\0"
- L"\x0001d40e" L"\0" L"\x0001d40f" L"\0" L"\x0001d410" L"\0" L"\x0001d411"
- L"\0" L"\x0001d412" L"\0" L"\x0001d413" L"\0" L"\x0001d414" L"\0"
- L"\x0001d415" L"\0" L"\x0001d416" L"\0" L"\x0001d417" L"\0" L"\x0001d418"
- L"\0" L"\x0001d419" L"\0" L"\x0001d41a" L"\0" L"\x0001d41b" L"\0"
- L"\x0001d41c" L"\0" L"\x0001d41d" L"\0" L"\x0001d41e" L"\0" L"\x0001d41f"
- L"\0" L"\x0001d420" L"\0" L"\x0001d421" L"\0" L"\x0001d422" L"\0"
- L"\x0001d423" L"\0" L"\x0001d424" L"\0" L"\x0001d425" L"\0" L"\x0001d426"
- L"\0" L"\x0001d427" L"\0" L"\x0001d428" L"\0" L"\x0001d429" L"\0"
- L"\x0001d42a" L"\0" L"\x0001d42b" L"\0" L"\x0001d42c" L"\0" L"\x0001d42d"
- L"\0" L"\x0001d42e" L"\0" L"\x0001d42f" L"\0" L"\x0001d430" L"\0"
- L"\x0001d431" L"\0" L"\x0001d432" L"\0" L"\x0001d433" L"\0" L"\x0001d434"
- L"\0" L"\x0001d435" L"\0" L"\x0001d436" L"\0" L"\x0001d437" L"\0"
- L"\x0001d438" L"\0" L"\x0001d439" L"\0" L"\x0001d43a" L"\0" L"\x0001d43b"
- L"\0" L"\x0001d43c" L"\0" L"\x0001d43d" L"\0" L"\x0001d43e" L"\0"
- L"\x0001d43f" L"\0" L"\x0001d440" L"\0" L"\x0001d441" L"\0" L"\x0001d442"
- L"\0" L"\x0001d443" L"\0" L"\x0001d444" L"\0" L"\x0001d445" L"\0"
- L"\x0001d446" L"\0" L"\x0001d447" L"\0" L"\x0001d448" L"\0" L"\x0001d449"
- L"\0" L"\x0001d44a" L"\0" L"\x0001d44b" L"\0" L"\x0001d44c" L"\0"
- L"\x0001d44d" L"\0" L"\x0001d44e" L"\0" L"\x0001d44f" L"\0" L"\x0001d450"
- L"\0" L"\x0001d451" L"\0" L"\x0001d452" L"\0" L"\x0001d453" L"\0"
- L"\x0001d454" L"\0" L"\x0001d456" L"\0" L"\x0001d457" L"\0" L"\x0001d458"
- L"\0" L"\x0001d459" L"\0" L"\x0001d45a" L"\0" L"\x0001d45b" L"\0"
- L"\x0001d45c" L"\0" L"\x0001d45d" L"\0" L"\x0001d45e" L"\0" L"\x0001d45f"
- L"\0" L"\x0001d460" L"\0" L"\x0001d461" L"\0" L"\x0001d462" L"\0"
- L"\x0001d463" L"\0" L"\x0001d464" L"\0" L"\x0001d465" L"\0" L"\x0001d466"
- L"\0" L"\x0001d467" L"\0" L"\x0001d468" L"\0" L"\x0001d469" L"\0"
- L"\x0001d46a" L"\0" L"\x0001d46b" L"\0" L"\x0001d46c" L"\0" L"\x0001d46d"
- L"\0" L"\x0001d46e" L"\0" L"\x0001d46f" L"\0" L"\x0001d470" L"\0"
- L"\x0001d471" L"\0" L"\x0001d472" L"\0" L"\x0001d473" L"\0" L"\x0001d474"
- L"\0" L"\x0001d475" L"\0" L"\x0001d476" L"\0" L"\x0001d477" L"\0"
- L"\x0001d478" L"\0" L"\x0001d479" L"\0" L"\x0001d47a" L"\0" L"\x0001d47b"
- L"\0" L"\x0001d47c" L"\0" L"\x0001d47d" L"\0" L"\x0001d47e" L"\0"
- L"\x0001d47f" L"\0" L"\x0001d480" L"\0" L"\x0001d481" L"\0" L"\x0001d482"
- L"\0" L"\x0001d483" L"\0" L"\x0001d484" L"\0" L"\x0001d485" L"\0"
- L"\x0001d486" L"\0" L"\x0001d487" L"\0" L"\x0001d488" L"\0" L"\x0001d489"
- L"\0" L"\x0001d48a" L"\0" L"\x0001d48b" L"\0" L"\x0001d48c" L"\0"
- L"\x0001d48d" L"\0" L"\x0001d48e" L"\0" L"\x0001d48f" L"\0" L"\x0001d490"
- L"\0" L"\x0001d491" L"\0" L"\x0001d492" L"\0" L"\x0001d493" L"\0"
- L"\x0001d494" L"\0" L"\x0001d495" L"\0" L"\x0001d496" L"\0" L"\x0001d497"
- L"\0" L"\x0001d498" L"\0" L"\x0001d499" L"\0" L"\x0001d49a" L"\0"
- L"\x0001d49b" L"\0" L"\x0001d49c" L"\0" L"\x0001d49e" L"\0" L"\x0001d49f"
- L"\0" L"\x0001d4a2" L"\0" L"\x0001d4a5" L"\0" L"\x0001d4a6" L"\0"
- L"\x0001d4a9" L"\0" L"\x0001d4aa" L"\0" L"\x0001d4ab" L"\0" L"\x0001d4ac"
- L"\0" L"\x0001d4ae" L"\0" L"\x0001d4af" L"\0" L"\x0001d4b0" L"\0"
- L"\x0001d4b1" L"\0" L"\x0001d4b2" L"\0" L"\x0001d4b3" L"\0" L"\x0001d4b4"
- L"\0" L"\x0001d4b5" L"\0" L"\x0001d4b6" L"\0" L"\x0001d4b7" L"\0"
- L"\x0001d4b8" L"\0" L"\x0001d4b9" L"\0" L"\x0001d4bb" L"\0" L"\x0001d4bd"
- L"\0" L"\x0001d4be" L"\0" L"\x0001d4bf" L"\0" L"\x0001d4c0" L"\0"
- L"\x0001d4c2" L"\0" L"\x0001d4c3" L"\0" L"\x0001d4c5" L"\0" L"\x0001d4c6"
- L"\0" L"\x0001d4c7" L"\0" L"\x0001d4c8" L"\0" L"\x0001d4c9" L"\0"
- L"\x0001d4ca" L"\0" L"\x0001d4cb" L"\0" L"\x0001d4cc" L"\0" L"\x0001d4cd"
- L"\0" L"\x0001d4ce" L"\0" L"\x0001d4cf" L"\0" L"\x0001d4d0" L"\0"
- L"\x0001d4d1" L"\0" L"\x0001d4d2" L"\0" L"\x0001d4d3" L"\0" L"\x0001d4d4"
- L"\0" L"\x0001d4d5" L"\0" L"\x0001d4d6" L"\0" L"\x0001d4d7" L"\0"
- L"\x0001d4d8" L"\0" L"\x0001d4d9" L"\0" L"\x0001d4da" L"\0" L"\x0001d4db"
- L"\0" L"\x0001d4dc" L"\0" L"\x0001d4dd" L"\0" L"\x0001d4de" L"\0"
- L"\x0001d4df" L"\0" L"\x0001d4e0" L"\0" L"\x0001d4e1" L"\0" L"\x0001d4e2"
- L"\0" L"\x0001d4e3" L"\0" L"\x0001d4e4" L"\0" L"\x0001d4e5" L"\0"
- L"\x0001d4e6" L"\0" L"\x0001d4e7" L"\0" L"\x0001d4e8" L"\0" L"\x0001d4e9"
- L"\0" L"\x0001d4ea" L"\0" L"\x0001d4eb" L"\0" L"\x0001d4ec" L"\0"
- L"\x0001d4ed" L"\0" L"\x0001d4ee" L"\0" L"\x0001d4ef" L"\0" L"\x0001d4f0"
- L"\0" L"\x0001d4f1" L"\0" L"\x0001d4f2" L"\0" L"\x0001d4f3" L"\0"
- L"\x0001d4f4" L"\0" L"\x0001d4f5" L"\0" L"\x0001d4f6" L"\0" L"\x0001d4f7"
- L"\0" L"\x0001d4f8" L"\0" L"\x0001d4f9" L"\0" L"\x0001d4fa" L"\0"
- L"\x0001d4fb" L"\0" L"\x0001d4fc" L"\0" L"\x0001d4fd" L"\0" L"\x0001d4fe"
- L"\0" L"\x0001d4ff" L"\0" L"\x0001d500" L"\0" L"\x0001d501" L"\0"
- L"\x0001d502" L"\0" L"\x0001d503" L"\0" L"\x0001d504" L"\0" L"\x0001d505"
- L"\0" L"\x0001d507" L"\0" L"\x0001d508" L"\0" L"\x0001d509" L"\0"
- L"\x0001d50a" L"\0" L"\x0001d50d" L"\0" L"\x0001d50e" L"\0" L"\x0001d50f"
- L"\0" L"\x0001d510" L"\0" L"\x0001d511" L"\0" L"\x0001d512" L"\0"
- L"\x0001d513" L"\0" L"\x0001d514" L"\0" L"\x0001d516" L"\0" L"\x0001d517"
- L"\0" L"\x0001d518" L"\0" L"\x0001d519" L"\0" L"\x0001d51a" L"\0"
- L"\x0001d51b" L"\0" L"\x0001d51c" L"\0" L"\x0001d51e" L"\0" L"\x0001d51f"
- L"\0" L"\x0001d520" L"\0" L"\x0001d521" L"\0" L"\x0001d522" L"\0"
- L"\x0001d523" L"\0" L"\x0001d524" L"\0" L"\x0001d525" L"\0" L"\x0001d526"
- L"\0" L"\x0001d527" L"\0" L"\x0001d528" L"\0" L"\x0001d529" L"\0"
- L"\x0001d52a" L"\0" L"\x0001d52b" L"\0" L"\x0001d52c" L"\0" L"\x0001d52d"
- L"\0" L"\x0001d52e" L"\0" L"\x0001d52f" L"\0" L"\x0001d530" L"\0"
- L"\x0001d531" L"\0" L"\x0001d532" L"\0" L"\x0001d533" L"\0" L"\x0001d534"
- L"\0" L"\x0001d535" L"\0" L"\x0001d536" L"\0" L"\x0001d537" L"\0"
- L"\x0001d538" L"\0" L"\x0001d539" L"\0" L"\x0001d53b" L"\0" L"\x0001d53c"
- L"\0" L"\x0001d53d" L"\0" L"\x0001d53e" L"\0" L"\x0001d540" L"\0"
- L"\x0001d541" L"\0" L"\x0001d542" L"\0" L"\x0001d543" L"\0" L"\x0001d544"
- L"\0" L"\x0001d546" L"\0" L"\x0001d54a" L"\0" L"\x0001d54b" L"\0"
- L"\x0001d54c" L"\0" L"\x0001d54d" L"\0" L"\x0001d54e" L"\0" L"\x0001d54f"
- L"\0" L"\x0001d550" L"\0" L"\x0001d552" L"\0" L"\x0001d553" L"\0"
- L"\x0001d554" L"\0" L"\x0001d555" L"\0" L"\x0001d556" L"\0" L"\x0001d557"
- L"\0" L"\x0001d558" L"\0" L"\x0001d559" L"\0" L"\x0001d55a" L"\0"
- L"\x0001d55b" L"\0" L"\x0001d55c" L"\0" L"\x0001d55d" L"\0" L"\x0001d55e"
- L"\0" L"\x0001d55f" L"\0" L"\x0001d560" L"\0" L"\x0001d561" L"\0"
- L"\x0001d562" L"\0" L"\x0001d563" L"\0" L"\x0001d564" L"\0" L"\x0001d565"
- L"\0" L"\x0001d566" L"\0" L"\x0001d567" L"\0" L"\x0001d568" L"\0"
- L"\x0001d569" L"\0" L"\x0001d56a" L"\0" L"\x0001d56b" L"\0" L"\x0001d56c"
- L"\0" L"\x0001d56d" L"\0" L"\x0001d56e" L"\0" L"\x0001d56f" L"\0"
- L"\x0001d570" L"\0" L"\x0001d571" L"\0" L"\x0001d572" L"\0" L"\x0001d573"
- L"\0" L"\x0001d574" L"\0" L"\x0001d575" L"\0" L"\x0001d576" L"\0"
- L"\x0001d577" L"\0" L"\x0001d578" L"\0" L"\x0001d579" L"\0" L"\x0001d57a"
- L"\0" L"\x0001d57b" L"\0" L"\x0001d57c" L"\0" L"\x0001d57d" L"\0"
- L"\x0001d57e" L"\0" L"\x0001d57f" L"\0" L"\x0001d580" L"\0" L"\x0001d581"
- L"\0" L"\x0001d582" L"\0" L"\x0001d583" L"\0" L"\x0001d584" L"\0"
- L"\x0001d585" L"\0" L"\x0001d586" L"\0" L"\x0001d587" L"\0" L"\x0001d588"
- L"\0" L"\x0001d589" L"\0" L"\x0001d58a" L"\0" L"\x0001d58b" L"\0"
- L"\x0001d58c" L"\0" L"\x0001d58d" L"\0" L"\x0001d58e" L"\0" L"\x0001d58f"
- L"\0" L"\x0001d590" L"\0" L"\x0001d591" L"\0" L"\x0001d592" L"\0"
- L"\x0001d593" L"\0" L"\x0001d594" L"\0" L"\x0001d595" L"\0" L"\x0001d596"
- L"\0" L"\x0001d597" L"\0" L"\x0001d598" L"\0" L"\x0001d599" L"\0"
- L"\x0001d59a" L"\0" L"\x0001d59b" L"\0" L"\x0001d59c" L"\0" L"\x0001d59d"
- L"\0" L"\x0001d59e" L"\0" L"\x0001d59f" L"\0" L"\x0001d5a0" L"\0"
- L"\x0001d5a1" L"\0" L"\x0001d5a2" L"\0" L"\x0001d5a3" L"\0" L"\x0001d5a4"
- L"\0" L"\x0001d5a5" L"\0" L"\x0001d5a6" L"\0" L"\x0001d5a7" L"\0"
- L"\x0001d5a8" L"\0" L"\x0001d5a9" L"\0" L"\x0001d5aa" L"\0" L"\x0001d5ab"
- L"\0" L"\x0001d5ac" L"\0" L"\x0001d5ad" L"\0" L"\x0001d5ae" L"\0"
- L"\x0001d5af" L"\0" L"\x0001d5b0" L"\0" L"\x0001d5b1" L"\0" L"\x0001d5b2"
- L"\0" L"\x0001d5b3" L"\0" L"\x0001d5b4" L"\0" L"\x0001d5b5" L"\0"
- L"\x0001d5b6" L"\0" L"\x0001d5b7" L"\0" L"\x0001d5b8" L"\0" L"\x0001d5b9"
- L"\0" L"\x0001d5ba" L"\0" L"\x0001d5bb" L"\0" L"\x0001d5bc" L"\0"
- L"\x0001d5bd" L"\0" L"\x0001d5be" L"\0" L"\x0001d5bf" L"\0" L"\x0001d5c0"
- L"\0" L"\x0001d5c1" L"\0" L"\x0001d5c2" L"\0" L"\x0001d5c3" L"\0"
- L"\x0001d5c4" L"\0" L"\x0001d5c5" L"\0" L"\x0001d5c6" L"\0" L"\x0001d5c7"
- L"\0" L"\x0001d5c8" L"\0" L"\x0001d5c9" L"\0" L"\x0001d5ca" L"\0"
- L"\x0001d5cb" L"\0" L"\x0001d5cc" L"\0" L"\x0001d5cd" L"\0" L"\x0001d5ce"
- L"\0" L"\x0001d5cf" L"\0" L"\x0001d5d0" L"\0" L"\x0001d5d1" L"\0"
- L"\x0001d5d2" L"\0" L"\x0001d5d3" L"\0" L"\x0001d5d4" L"\0" L"\x0001d5d5"
- L"\0" L"\x0001d5d6" L"\0" L"\x0001d5d7" L"\0" L"\x0001d5d8" L"\0"
- L"\x0001d5d9" L"\0" L"\x0001d5da" L"\0" L"\x0001d5db" L"\0" L"\x0001d5dc"
- L"\0" L"\x0001d5dd" L"\0" L"\x0001d5de" L"\0" L"\x0001d5df" L"\0"
- L"\x0001d5e0" L"\0" L"\x0001d5e1" L"\0" L"\x0001d5e2" L"\0" L"\x0001d5e3"
- L"\0" L"\x0001d5e4" L"\0" L"\x0001d5e5" L"\0" L"\x0001d5e6" L"\0"
- L"\x0001d5e7" L"\0" L"\x0001d5e8" L"\0" L"\x0001d5e9" L"\0" L"\x0001d5ea"
- L"\0" L"\x0001d5eb" L"\0" L"\x0001d5ec" L"\0" L"\x0001d5ed" L"\0"
- L"\x0001d5ee" L"\0" L"\x0001d5ef" L"\0" L"\x0001d5f0" L"\0" L"\x0001d5f1"
- L"\0" L"\x0001d5f2" L"\0" L"\x0001d5f3" L"\0" L"\x0001d5f4" L"\0"
- L"\x0001d5f5" L"\0" L"\x0001d5f6" L"\0" L"\x0001d5f7" L"\0" L"\x0001d5f8"
- L"\0" L"\x0001d5f9" L"\0" L"\x0001d5fa" L"\0" L"\x0001d5fb" L"\0"
- L"\x0001d5fc" L"\0" L"\x0001d5fd" L"\0" L"\x0001d5fe" L"\0" L"\x0001d5ff"
- L"\0" L"\x0001d600" L"\0" L"\x0001d601" L"\0" L"\x0001d602" L"\0"
- L"\x0001d603" L"\0" L"\x0001d604" L"\0" L"\x0001d605" L"\0" L"\x0001d606"
- L"\0" L"\x0001d607" L"\0" L"\x0001d608" L"\0" L"\x0001d609" L"\0"
- L"\x0001d60a" L"\0" L"\x0001d60b" L"\0" L"\x0001d60c" L"\0" L"\x0001d60d"
- L"\0" L"\x0001d60e" L"\0" L"\x0001d60f" L"\0" L"\x0001d610" L"\0"
- L"\x0001d611" L"\0" L"\x0001d612" L"\0" L"\x0001d613" L"\0" L"\x0001d614"
- L"\0" L"\x0001d615" L"\0" L"\x0001d616" L"\0" L"\x0001d617" L"\0"
- L"\x0001d618" L"\0" L"\x0001d619" L"\0" L"\x0001d61a" L"\0" L"\x0001d61b"
- L"\0" L"\x0001d61c" L"\0" L"\x0001d61d" L"\0" L"\x0001d61e" L"\0"
- L"\x0001d61f" L"\0" L"\x0001d620" L"\0" L"\x0001d621" L"\0" L"\x0001d622"
- L"\0" L"\x0001d623" L"\0" L"\x0001d624" L"\0" L"\x0001d625" L"\0"
- L"\x0001d626" L"\0" L"\x0001d627" L"\0" L"\x0001d628" L"\0" L"\x0001d629"
- L"\0" L"\x0001d62a" L"\0" L"\x0001d62b" L"\0" L"\x0001d62c" L"\0"
- L"\x0001d62d" L"\0" L"\x0001d62e" L"\0" L"\x0001d62f" L"\0" L"\x0001d630"
- L"\0" L"\x0001d631" L"\0" L"\x0001d632" L"\0" L"\x0001d633" L"\0"
- L"\x0001d634" L"\0" L"\x0001d635" L"\0" L"\x0001d636" L"\0" L"\x0001d637"
- L"\0" L"\x0001d638" L"\0" L"\x0001d639" L"\0" L"\x0001d63a" L"\0"
- L"\x0001d63b" L"\0" L"\x0001d63c" L"\0" L"\x0001d63d" L"\0" L"\x0001d63e"
- L"\0" L"\x0001d63f" L"\0" L"\x0001d640" L"\0" L"\x0001d641" L"\0"
- L"\x0001d642" L"\0" L"\x0001d643" L"\0" L"\x0001d644" L"\0" L"\x0001d645"
- L"\0" L"\x0001d646" L"\0" L"\x0001d647" L"\0" L"\x0001d648" L"\0"
- L"\x0001d649" L"\0" L"\x0001d64a" L"\0" L"\x0001d64b" L"\0" L"\x0001d64c"
- L"\0" L"\x0001d64d" L"\0" L"\x0001d64e" L"\0" L"\x0001d64f" L"\0"
- L"\x0001d650" L"\0" L"\x0001d651" L"\0" L"\x0001d652" L"\0" L"\x0001d653"
- L"\0" L"\x0001d654" L"\0" L"\x0001d655" L"\0" L"\x0001d656" L"\0"
- L"\x0001d657" L"\0" L"\x0001d658" L"\0" L"\x0001d659" L"\0" L"\x0001d65a"
- L"\0" L"\x0001d65b" L"\0" L"\x0001d65c" L"\0" L"\x0001d65d" L"\0"
- L"\x0001d65e" L"\0" L"\x0001d65f" L"\0" L"\x0001d660" L"\0" L"\x0001d661"
- L"\0" L"\x0001d662" L"\0" L"\x0001d663" L"\0" L"\x0001d664" L"\0"
- L"\x0001d665" L"\0" L"\x0001d666" L"\0" L"\x0001d667" L"\0" L"\x0001d668"
- L"\0" L"\x0001d669" L"\0" L"\x0001d66a" L"\0" L"\x0001d66b" L"\0"
- L"\x0001d66c" L"\0" L"\x0001d66d" L"\0" L"\x0001d66e" L"\0" L"\x0001d66f"
- L"\0" L"\x0001d670" L"\0" L"\x0001d671" L"\0" L"\x0001d672" L"\0"
- L"\x0001d673" L"\0" L"\x0001d674" L"\0" L"\x0001d675" L"\0" L"\x0001d676"
- L"\0" L"\x0001d677" L"\0" L"\x0001d678" L"\0" L"\x0001d679" L"\0"
- L"\x0001d67a" L"\0" L"\x0001d67b" L"\0" L"\x0001d67c" L"\0" L"\x0001d67d"
- L"\0" L"\x0001d67e" L"\0" L"\x0001d67f" L"\0" L"\x0001d680" L"\0"
- L"\x0001d681" L"\0" L"\x0001d682" L"\0" L"\x0001d683" L"\0" L"\x0001d684"
- L"\0" L"\x0001d685" L"\0" L"\x0001d686" L"\0" L"\x0001d687" L"\0"
- L"\x0001d688" L"\0" L"\x0001d689" L"\0" L"\x0001d68a" L"\0" L"\x0001d68b"
- L"\0" L"\x0001d68c" L"\0" L"\x0001d68d" L"\0" L"\x0001d68e" L"\0"
- L"\x0001d68f" L"\0" L"\x0001d690" L"\0" L"\x0001d691" L"\0" L"\x0001d692"
- L"\0" L"\x0001d693" L"\0" L"\x0001d694" L"\0" L"\x0001d695" L"\0"
- L"\x0001d696" L"\0" L"\x0001d697" L"\0" L"\x0001d698" L"\0" L"\x0001d699"
- L"\0" L"\x0001d69a" L"\0" L"\x0001d69b" L"\0" L"\x0001d69c" L"\0"
- L"\x0001d69d" L"\0" L"\x0001d69e" L"\0" L"\x0001d69f" L"\0" L"\x0001d6a0"
- L"\0" L"\x0001d6a1" L"\0" L"\x0001d6a2" L"\0" L"\x0001d6a3" L"\0"
- L"\x0001d7ce" L"\0" L"\x0001d7cf" L"\0" L"\x0001d7d0" L"\0" L"\x0001d7d1"
- L"\0" L"\x0001d7d2" L"\0" L"\x0001d7d3" L"\0" L"\x0001d7d4" L"\0"
- L"\x0001d7d5" L"\0" L"\x0001d7d6" L"\0" L"\x0001d7d7" L"\0" L"\x0001d7d8"
- L"\0" L"\x0001d7d9" L"\0" L"\x0001d7da" L"\0" L"\x0001d7db" L"\0"
- L"\x0001d7dc" L"\0" L"\x0001d7dd" L"\0" L"\x0001d7de" L"\0" L"\x0001d7df"
- L"\0" L"\x0001d7e0" L"\0" L"\x0001d7e1" L"\0" L"\x0001d7e2" L"\0"
- L"\x0001d7e3" L"\0" L"\x0001d7e4" L"\0" L"\x0001d7e5" L"\0" L"\x0001d7e6"
- L"\0" L"\x0001d7e7" L"\0" L"\x0001d7e8" L"\0" L"\x0001d7e9" L"\0"
- L"\x0001d7ea" L"\0" L"\x0001d7eb" L"\0" L"\x0001d7ec" L"\0" L"\x0001d7ed"
- L"\0" L"\x0001d7ee" L"\0" L"\x0001d7ef" L"\0" L"\x0001d7f0" L"\0"
- L"\x0001d7f1" L"\0" L"\x0001d7f2" L"\0" L"\x0001d7f3" L"\0" L"\x0001d7f4"
- L"\0" L"\x0001d7f5" L"\0" L"\x0001d7f6" L"\0" L"\x0001d7f7" L"\0"
- L"\x0001d7f8" L"\0" L"\x0001d7f9" L"\0" L"\x0001d7fa" L"\0" L"\x0001d7fb"
- L"\0" L"\x0001d7fc" L"\0" L"\x0001d7fd" L"\0" L"\x0001d7fe" L"\0"
- L"\x0001d7ff";
-static const uint32_t translit_to_idx[] =
-{
- 0, 3, 8, 12, 15, 20, 23, 26, 30, 37, 44, 51,
- 55, 58, 62, 66, 70, 74, 78, 82, 86, 89, 93, 97,
- 101, 105, 109, 113, 117, 121, 125, 128, 131, 134, 137, 140,
- 143, 146, 149, 152, 155, 158, 161, 164, 167, 170, 172, 175,
- 178, 181, 184, 188, 191, 194, 197, 200, 203, 206, 209, 213,
- 216, 219, 222, 225, 229, 234, 237, 240, 244, 249, 252, 255,
- 259, 262, 266, 270, 274, 277, 279, 281, 283, 285, 289, 293,
- 298, 303, 308, 313, 316, 321, 326, 329, 332, 335, 338, 341,
- 344, 347, 350, 353, 356, 360, 363, 366, 369, 372, 375, 380,
- 386, 389, 394, 397, 400, 403, 406, 409, 412, 415, 418, 421,
- 424, 427, 430, 433, 436, 439, 446, 453, 460, 467, 474, 481,
- 488, 495, 502, 509, 516, 523, 528, 531, 535, 540, 544, 547,
- 551, 556, 562, 566, 569, 573, 578, 581, 584, 587, 590, 593,
- 597, 602, 606, 609, 613, 618, 624, 628, 631, 635, 640, 643,
- 646, 649, 652, 656, 660, 665, 669, 673, 678, 681, 684, 687,
- 690, 693, 696, 699, 703, 707, 711, 715, 720, 725, 730, 735,
- 740, 745, 750, 755, 760, 765, 769, 773, 777, 781, 785, 789,
- 793, 797, 802, 807, 812, 817, 822, 827, 832, 837, 842, 846,
- 851, 856, 860, 864, 868, 872, 876, 881, 884, 888, 893, 898,
- 903, 908, 913, 918, 923, 928, 933, 939, 945, 951, 957, 963,
- 969, 975, 981, 987, 993, 999, 1004, 1009, 1014, 1019, 1024, 1029,
- 1034, 1039, 1044, 1050, 1056, 1062, 1068, 1074, 1080, 1086, 1092, 1098,
- 1104, 1110, 1114, 1118, 1122, 1126, 1130, 1134, 1138, 1142, 1146, 1151,
- 1156, 1161, 1166, 1171, 1176, 1181, 1186, 1191, 1196, 1201, 1206, 1211,
- 1216, 1221, 1226, 1231, 1236, 1241, 1246, 1251, 1256, 1261, 1266, 1271,
- 1276, 1281, 1286, 1291, 1296, 1301, 1306, 1311, 1316, 1321, 1326, 1331,
- 1336, 1341, 1346, 1351, 1356, 1361, 1366, 1371, 1376, 1381, 1386, 1391,
- 1396, 1401, 1406, 1411, 1416, 1421, 1426, 1431, 1436, 1441, 1446, 1451,
- 1456, 1461, 1466, 1471, 1476, 1481, 1486, 1491, 1496, 1501, 1506, 1511,
- 1516, 1521, 1526, 1531, 1536, 1541, 1546, 1551, 1556, 1561, 1566, 1571,
- 1576, 1581, 1586, 1591, 1596, 1599, 1602, 1605, 1608, 1611, 1614, 1617,
- 1620, 1623, 1626, 1629, 1632, 1637, 1641, 1646, 1649, 1652, 1658, 1664,
- 1670, 1676, 1682, 1688, 1694, 1700, 1706, 1712, 1718, 1724, 1730, 1736,
- 1742, 1748, 1754, 1760, 1766, 1772, 1778, 1784, 1790, 1796, 1802, 1808,
- 1814, 1820, 1826, 1832, 1837, 1841, 1845, 1850, 1854, 1858, 1862, 1866,
- 1870, 1874, 1878, 1882, 1886, 1890, 1895, 1901, 1905, 1909, 1913, 1917,
- 1921, 1925, 1929, 1934, 1939, 1944, 1949, 1953, 1957, 1961, 1965, 1969,
- 1973, 1977, 1981, 1985, 1989, 1995, 2001, 2006, 2012, 2018, 2024, 2029,
- 2035, 2040, 2047, 2051, 2056, 2061, 2066, 2071, 2078, 2087, 2091, 2095,
- 2099, 2103, 2107, 2111, 2115, 2119, 2123, 2127, 2131, 2135, 2139, 2143,
- 2147, 2151, 2157, 2161, 2165, 2169, 2175, 2180, 2184, 2188, 2192, 2196,
- 2200, 2204, 2208, 2212, 2216, 2220, 2225, 2229, 2233, 2238, 2243, 2247,
- 2253, 2258, 2262, 2266, 2270, 2274, 2278, 2282, 2286, 2291, 2296, 2300,
- 2303, 2305, 2307, 2309, 2311, 2313, 2315, 2317, 2319, 2321, 2323, 2325,
- 2327, 2329, 2331, 2333, 2335, 2338, 2341, 2344, 2347, 2350, 2353, 2356,
- 2359, 2362, 2365, 2368, 2371, 2374, 2377, 2380, 2383, 2386, 2389, 2392,
- 2395, 2398, 2401, 2404, 2407, 2410, 2412, 2415, 2418, 2421, 2424, 2427,
- 2430, 2433, 2436, 2439, 2442, 2445, 2448, 2451, 2454, 2457, 2460, 2463,
- 2466, 2469, 2472, 2475, 2478, 2481, 2484, 2487, 2490, 2493, 2496, 2499,
- 2502, 2505, 2508, 2511, 2514, 2517, 2520, 2523, 2526, 2529, 2532, 2535,
- 2538, 2541, 2544, 2547, 2550, 2553, 2556, 2559, 2562, 2565, 2568, 2571,
- 2574, 2577, 2580, 2583, 2586, 2589, 2592, 2595, 2598, 2601, 2604, 2607,
- 2610, 2613, 2616, 2619, 2622, 2625, 2628, 2631, 2634, 2637, 2640, 2643,
- 2646, 2649, 2652, 2655, 2658, 2661, 2664, 2667, 2670, 2673, 2676, 2679,
- 2682, 2685, 2688, 2691, 2694, 2697, 2700, 2703, 2706, 2709, 2712, 2715,
- 2718, 2721, 2724, 2727, 2730, 2733, 2736, 2739, 2742, 2745, 2748, 2751,
- 2754, 2757, 2760, 2763, 2766, 2769, 2772, 2775, 2778, 2781, 2784, 2787,
- 2790, 2793, 2796, 2799, 2802, 2805, 2808, 2811, 2814, 2817, 2820, 2823,
- 2826, 2829, 2832, 2835, 2838, 2841, 2844, 2847, 2850, 2853, 2856, 2859,
- 2862, 2865, 2868, 2871, 2874, 2877, 2880, 2883, 2886, 2889, 2892, 2895,
- 2898, 2901, 2904, 2907, 2910, 2913, 2916, 2919, 2922, 2925, 2928, 2931,
- 2934, 2937, 2940, 2943, 2946, 2949, 2952, 2955, 2958, 2961, 2964, 2967,
- 2970, 2973, 2976, 2979, 2982, 2985, 2988, 2991, 2994, 2997, 3000, 3003,
- 3006, 3009, 3012, 3015, 3018, 3021, 3024, 3027, 3030, 3033, 3036, 3039,
- 3042, 3045, 3048, 3051, 3054, 3057, 3060, 3063, 3066, 3069, 3072, 3075,
- 3078, 3081, 3084, 3087, 3090, 3093, 3096, 3099, 3102, 3105, 3108, 3111,
- 3114, 3117, 3120, 3123, 3126, 3129, 3132, 3135, 3138, 3141, 3144, 3147,
- 3150, 3153, 3156, 3159, 3162, 3165, 3168, 3171, 3174, 3177, 3180, 3183,
- 3186, 3189, 3192, 3195, 3198, 3201, 3204, 3207, 3210, 3213, 3216, 3219,
- 3222, 3225, 3228, 3231, 3234, 3237, 3240, 3243, 3246, 3249, 3252, 3255,
- 3258, 3261, 3264, 3267, 3270, 3273, 3276, 3279, 3282, 3285, 3288, 3291,
- 3294, 3297, 3300, 3303, 3306, 3309, 3312, 3315, 3318, 3321, 3324, 3327,
- 3330, 3333, 3336, 3339, 3342, 3345, 3348, 3351, 3354, 3357, 3360, 3363,
- 3366, 3369, 3372, 3375, 3378, 3381, 3384, 3387, 3390, 3393, 3396, 3399,
- 3402, 3405, 3408, 3411, 3414, 3417, 3420, 3423, 3426, 3429, 3432, 3435,
- 3438, 3441, 3444, 3447, 3450, 3453, 3456, 3459, 3462, 3465, 3468, 3471,
- 3474, 3477, 3480, 3483, 3486, 3489, 3492, 3495, 3498, 3501, 3504, 3507,
- 3510, 3513, 3516, 3519, 3522, 3525, 3528, 3531, 3534, 3537, 3540, 3543,
- 3546, 3549, 3552, 3555, 3558, 3561, 3564, 3567, 3570, 3573, 3576, 3579,
- 3582, 3585, 3588, 3591, 3594, 3597, 3600, 3603, 3606, 3609, 3612, 3615,
- 3618, 3621, 3624, 3627, 3630, 3633, 3636, 3639, 3642, 3645, 3648, 3651,
- 3654, 3657, 3660, 3663, 3666, 3669, 3672, 3675, 3678, 3681, 3684, 3687,
- 3690, 3693, 3696, 3699, 3702, 3705, 3708, 3711, 3714, 3717, 3720, 3723,
- 3726, 3729, 3732, 3735, 3738, 3741, 3744, 3747, 3750, 3753, 3756, 3759,
- 3762, 3765, 3768, 3771, 3774, 3777, 3780, 3783, 3786, 3789, 3792, 3795,
- 3798, 3801, 3804, 3807, 3810, 3813, 3816, 3819, 3822, 3825, 3828, 3831,
- 3834, 3837, 3840, 3843, 3846, 3849, 3852, 3855, 3858, 3861, 3864, 3867,
- 3870, 3873, 3876, 3879, 3882, 3885, 3888, 3891, 3894, 3897, 3900, 3903,
- 3906, 3909, 3912, 3915, 3918, 3921, 3924, 3927, 3930, 3933, 3936, 3939,
- 3942, 3945, 3948, 3951, 3954, 3957, 3960, 3963, 3966, 3969, 3972, 3975,
- 3978, 3981, 3984, 3987, 3990, 3993, 3996, 3999, 4002, 4005, 4008, 4011,
- 4014, 4017, 4020, 4023, 4026, 4029, 4032, 4035, 4038, 4041, 4044, 4047,
- 4050, 4053, 4056, 4059, 4062, 4065, 4068, 4071, 4074, 4077, 4080, 4083,
- 4086, 4089, 4092, 4095, 4098, 4101, 4104, 4107, 4110, 4113, 4116, 4119,
- 4122, 4125, 4128, 4131, 4134, 4137, 4140, 4143, 4146, 4149, 4152, 4155,
- 4158, 4161, 4164, 4167, 4170, 4173, 4176, 4179, 4182, 4185, 4188, 4191,
- 4194, 4197, 4200, 4203, 4206, 4209, 4212, 4215, 4218, 4221, 4224, 4227,
- 4230, 4233, 4236, 4239, 4242, 4245, 4248, 4251, 4254, 4257, 4260, 4263,
- 4266, 4269, 4272, 4275, 4278, 4281, 4284, 4287, 4290, 4293, 4296, 4299,
- 4302, 4305, 4308, 4311, 4314, 4317, 4320, 4323, 4326, 4329, 4332, 4335,
- 4338, 4341, 4344, 4347, 4350, 4353, 4356, 4359, 4362, 4365, 4368, 4371,
- 4374, 4377, 4380, 4383, 4386, 4389, 4392, 4395, 4398, 4401, 4404, 4407,
- 4410, 4413, 4416, 4419, 4422, 4425, 4428, 4431, 4434, 4437, 4440, 4443,
- 4446, 4449, 4452, 4455, 4458, 4461, 4464, 4467, 4470, 4473, 4476, 4479,
- 4482, 4485, 4488, 4491, 4494, 4497, 4500, 4503, 4506, 4509, 4512, 4515,
- 4518, 4521, 4524, 4527, 4530, 4533, 4536, 4539, 4542, 4545, 4548, 4551,
- 4554, 4557, 4560, 4563, 4566, 4569, 4572, 4575, 4578, 4581, 4584, 4587,
- 4590, 4593, 4596, 4599, 4602, 4605, 4608, 4611, 4614, 4617, 4620, 4623,
- 4626, 4629, 4632, 4635, 4638, 4641, 4644, 4647, 4650, 4653, 4656, 4659,
- 4662, 4665, 4668, 4671, 4674, 4677, 4680, 4683, 4686, 4689, 4692, 4695,
- 4698, 4701, 4704, 4707, 4710, 4713, 4716, 4719, 4722, 4725, 4728, 4731,
- 4734, 4737, 4740, 4743, 4746, 4749, 4752, 4755, 4758, 4761, 4764, 4767,
- 4770, 4773, 4776, 4779, 4782, 4785, 4788, 4791, 4794
-};
-static const wchar_t translit_to_tbl[] =
- L" \0" L"\0" L"(C)\0" L"\0" L"<<\0" L"\0" L"-\0" L"\0" L"(R)\0" L"\0" L"u\0"
- L"\0" L",\0" L"\0" L">>\0" L"\0" L" 1/4 \0" L"\0" L" 1/2 \0" L"\0"
- L" 3/4 \0" L"\0" L"AE\0" L"\0" L"x\0" L"\0" L"ss\0" L"\0" L"ae\0" L"\0"
- L"IJ\0" L"\0" L"ij\0" L"\0" L"'n\0" L"\0" L"OE\0" L"\0" L"oe\0" L"\0" L"s\0"
- L"\0" L"LJ\0" L"\0" L"Lj\0" L"\0" L"lj\0" L"\0" L"NJ\0" L"\0" L"Nj\0" L"\0"
- L"nj\0" L"\0" L"DZ\0" L"\0" L"Dz\0" L"\0" L"dz\0" L"\0" L"'\0" L"\0" L"^\0"
- L"\0" L"'\0" L"\0" L"`\0" L"\0" L"_\0" L"\0" L":\0" L"\0" L"~\0" L"\0"
- L" \0" L"\0" L" \0" L"\0" L" \0" L"\0" L" \0" L"\0" L" \0" L"\0" L" \0"
- L"\0" L" \0" L"\0" L" \0" L"\0" L"\0" L"\0" L"-\0" L"\0" L"-\0" L"\0" L"-\0"
- L"\0" L"-\0" L"\0" L"--\0" L"\0" L"-\0" L"\0" L"'\0" L"\0" L"'\0" L"\0"
- L",\0" L"\0" L"'\0" L"\0" L"\"\0" L"\0" L"\"\0" L"\0" L",,\0" L"\0" L"\"\0"
- L"\0" L"+\0" L"\0" L"o\0" L"\0" L".\0" L"\0" L"..\0" L"\0" L"...\0" L"\0"
- L" \0" L"\0" L"`\0" L"\0" L"``\0" L"\0" L"```\0" L"\0" L"<\0" L"\0" L">\0"
- L"\0" L"!!\0" L"\0" L"/\0" L"\0" L"??\0" L"\0" L"?!\0" L"\0" L"!?\0" L"\0"
- L" \0" L"\0" L"\0" L"\0" L"\0" L"\0" L"\0" L"\0" L"\0" L"\0" L"C=\0" L"\0"
- L"Rs\0" L"\0" L"EUR\0" L"\0" L"INR\0" L"\0" L"a/c\0" L"\0" L"a/s\0" L"\0"
- L"C\0" L"\0" L"c/o\0" L"\0" L"c/u\0" L"\0" L"g\0" L"\0" L"H\0" L"\0" L"H\0"
- L"\0" L"H\0" L"\0" L"h\0" L"\0" L"I\0" L"\0" L"I\0" L"\0" L"L\0" L"\0"
- L"l\0" L"\0" L"N\0" L"\0" L"No\0" L"\0" L"P\0" L"\0" L"Q\0" L"\0" L"R\0"
- L"\0" L"R\0" L"\0" L"R\0" L"\0" L"TEL\0" L"\0" L"(TM)\0" L"\0" L"Z\0" L"\0"
- L"Ohm\0" L"\0" L"Z\0" L"\0" L"B\0" L"\0" L"C\0" L"\0" L"e\0" L"\0" L"e\0"
- L"\0" L"E\0" L"\0" L"F\0" L"\0" L"M\0" L"\0" L"o\0" L"\0" L"i\0" L"\0"
- L"D\0" L"\0" L"d\0" L"\0" L"e\0" L"\0" L"i\0" L"\0" L"j\0" L"\0" L" 1/3 \0"
- L"\0" L" 2/3 \0" L"\0" L" 1/5 \0" L"\0" L" 2/5 \0" L"\0" L" 3/5 \0" L"\0"
- L" 4/5 \0" L"\0" L" 1/6 \0" L"\0" L" 5/6 \0" L"\0" L" 1/8 \0" L"\0"
- L" 3/8 \0" L"\0" L" 5/8 \0" L"\0" L" 7/8 \0" L"\0" L" 1/\0" L"\0" L"I\0"
- L"\0" L"II\0" L"\0" L"III\0" L"\0" L"IV\0" L"\0" L"V\0" L"\0" L"VI\0" L"\0"
- L"VII\0" L"\0" L"VIII\0" L"\0" L"IX\0" L"\0" L"X\0" L"\0" L"XI\0" L"\0"
- L"XII\0" L"\0" L"L\0" L"\0" L"C\0" L"\0" L"D\0" L"\0" L"M\0" L"\0" L"i\0"
- L"\0" L"ii\0" L"\0" L"iii\0" L"\0" L"iv\0" L"\0" L"v\0" L"\0" L"vi\0" L"\0"
- L"vii\0" L"\0" L"viii\0" L"\0" L"ix\0" L"\0" L"x\0" L"\0" L"xi\0" L"\0"
- L"xii\0" L"\0" L"l\0" L"\0" L"c\0" L"\0" L"d\0" L"\0" L"m\0" L"\0" L"<-\0"
- L"\0" L"->\0" L"\0" L"<->\0" L"\0" L"<=\0" L"\0" L"=>\0" L"\0" L"<=>\0"
- L"\0" L"-\0" L"\0" L"/\0" L"\0" L"\\\0" L"\0" L"*\0" L"\0" L"|\0" L"\0"
- L":\0" L"\0" L"~\0" L"\0" L"<=\0" L"\0" L">=\0" L"\0" L"<<\0" L"\0" L">>\0"
- L"\0" L"<<<\0" L"\0" L">>>\0" L"\0" L"NUL\0" L"\0" L"SOH\0" L"\0" L"STX\0"
- L"\0" L"ETX\0" L"\0" L"EOT\0" L"\0" L"ENQ\0" L"\0" L"ACK\0" L"\0" L"BEL\0"
- L"\0" L"BS\0" L"\0" L"HT\0" L"\0" L"LF\0" L"\0" L"VT\0" L"\0" L"FF\0" L"\0"
- L"CR\0" L"\0" L"SO\0" L"\0" L"SI\0" L"\0" L"DLE\0" L"\0" L"DC1\0" L"\0"
- L"DC2\0" L"\0" L"DC3\0" L"\0" L"DC4\0" L"\0" L"NAK\0" L"\0" L"SYN\0" L"\0"
- L"ETB\0" L"\0" L"CAN\0" L"\0" L"EM\0" L"\0" L"SUB\0" L"\0" L"ESC\0" L"\0"
- L"FS\0" L"\0" L"GS\0" L"\0" L"RS\0" L"\0" L"US\0" L"\0" L"SP\0" L"\0"
- L"DEL\0" L"\0" L"_\0" L"\0" L"NL\0" L"\0" L"(1)\0" L"\0" L"(2)\0" L"\0"
- L"(3)\0" L"\0" L"(4)\0" L"\0" L"(5)\0" L"\0" L"(6)\0" L"\0" L"(7)\0" L"\0"
- L"(8)\0" L"\0" L"(9)\0" L"\0" L"(10)\0" L"\0" L"(11)\0" L"\0" L"(12)\0"
- L"\0" L"(13)\0" L"\0" L"(14)\0" L"\0" L"(15)\0" L"\0" L"(16)\0" L"\0"
- L"(17)\0" L"\0" L"(18)\0" L"\0" L"(19)\0" L"\0" L"(20)\0" L"\0" L"(1)\0"
- L"\0" L"(2)\0" L"\0" L"(3)\0" L"\0" L"(4)\0" L"\0" L"(5)\0" L"\0" L"(6)\0"
- L"\0" L"(7)\0" L"\0" L"(8)\0" L"\0" L"(9)\0" L"\0" L"(10)\0" L"\0" L"(11)\0"
- L"\0" L"(12)\0" L"\0" L"(13)\0" L"\0" L"(14)\0" L"\0" L"(15)\0" L"\0"
- L"(16)\0" L"\0" L"(17)\0" L"\0" L"(18)\0" L"\0" L"(19)\0" L"\0" L"(20)\0"
- L"\0" L"1.\0" L"\0" L"2.\0" L"\0" L"3.\0" L"\0" L"4.\0" L"\0" L"5.\0" L"\0"
- L"6.\0" L"\0" L"7.\0" L"\0" L"8.\0" L"\0" L"9.\0" L"\0" L"10.\0" L"\0"
- L"11.\0" L"\0" L"12.\0" L"\0" L"13.\0" L"\0" L"14.\0" L"\0" L"15.\0" L"\0"
- L"16.\0" L"\0" L"17.\0" L"\0" L"18.\0" L"\0" L"19.\0" L"\0" L"20.\0" L"\0"
- L"(a)\0" L"\0" L"(b)\0" L"\0" L"(c)\0" L"\0" L"(d)\0" L"\0" L"(e)\0" L"\0"
- L"(f)\0" L"\0" L"(g)\0" L"\0" L"(h)\0" L"\0" L"(i)\0" L"\0" L"(j)\0" L"\0"
- L"(k)\0" L"\0" L"(l)\0" L"\0" L"(m)\0" L"\0" L"(n)\0" L"\0" L"(o)\0" L"\0"
- L"(p)\0" L"\0" L"(q)\0" L"\0" L"(r)\0" L"\0" L"(s)\0" L"\0" L"(t)\0" L"\0"
- L"(u)\0" L"\0" L"(v)\0" L"\0" L"(w)\0" L"\0" L"(x)\0" L"\0" L"(y)\0" L"\0"
- L"(z)\0" L"\0" L"(A)\0" L"\0" L"(B)\0" L"\0" L"(C)\0" L"\0" L"(D)\0" L"\0"
- L"(E)\0" L"\0" L"(F)\0" L"\0" L"(G)\0" L"\0" L"(H)\0" L"\0" L"(I)\0" L"\0"
- L"(J)\0" L"\0" L"(K)\0" L"\0" L"(L)\0" L"\0" L"(M)\0" L"\0" L"(N)\0" L"\0"
- L"(O)\0" L"\0" L"(P)\0" L"\0" L"(Q)\0" L"\0" L"(R)\0" L"\0" L"(S)\0" L"\0"
- L"(T)\0" L"\0" L"(U)\0" L"\0" L"(V)\0" L"\0" L"(W)\0" L"\0" L"(X)\0" L"\0"
- L"(Y)\0" L"\0" L"(Z)\0" L"\0" L"(a)\0" L"\0" L"(b)\0" L"\0" L"(c)\0" L"\0"
- L"(d)\0" L"\0" L"(e)\0" L"\0" L"(f)\0" L"\0" L"(g)\0" L"\0" L"(h)\0" L"\0"
- L"(i)\0" L"\0" L"(j)\0" L"\0" L"(k)\0" L"\0" L"(l)\0" L"\0" L"(m)\0" L"\0"
- L"(n)\0" L"\0" L"(o)\0" L"\0" L"(p)\0" L"\0" L"(q)\0" L"\0" L"(r)\0" L"\0"
- L"(s)\0" L"\0" L"(t)\0" L"\0" L"(u)\0" L"\0" L"(v)\0" L"\0" L"(w)\0" L"\0"
- L"(x)\0" L"\0" L"(y)\0" L"\0" L"(z)\0" L"\0" L"(0)\0" L"\0" L"-\0" L"\0"
- L"|\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0"
- L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"o\0" L"\0"
- L"::=\0" L"\0" L"==\0" L"\0" L"===\0" L"\0" L" \0" L"\0" L"=\0" L"\0"
- L"(21)\0" L"\0" L"(22)\0" L"\0" L"(23)\0" L"\0" L"(24)\0" L"\0" L"(25)\0"
- L"\0" L"(26)\0" L"\0" L"(27)\0" L"\0" L"(28)\0" L"\0" L"(29)\0" L"\0"
- L"(30)\0" L"\0" L"(31)\0" L"\0" L"(32)\0" L"\0" L"(33)\0" L"\0" L"(34)\0"
- L"\0" L"(35)\0" L"\0" L"(36)\0" L"\0" L"(37)\0" L"\0" L"(38)\0" L"\0"
- L"(39)\0" L"\0" L"(40)\0" L"\0" L"(41)\0" L"\0" L"(42)\0" L"\0" L"(43)\0"
- L"\0" L"(44)\0" L"\0" L"(45)\0" L"\0" L"(46)\0" L"\0" L"(47)\0" L"\0"
- L"(48)\0" L"\0" L"(49)\0" L"\0" L"(50)\0" L"\0" L"hPa\0" L"\0" L"da\0" L"\0"
- L"AU\0" L"\0" L"bar\0" L"\0" L"oV\0" L"\0" L"pc\0" L"\0" L"pA\0" L"\0"
- L"nA\0" L"\0" L"uA\0" L"\0" L"mA\0" L"\0" L"kA\0" L"\0" L"KB\0" L"\0"
- L"MB\0" L"\0" L"GB\0" L"\0" L"cal\0" L"\0" L"kcal\0" L"\0" L"pF\0" L"\0"
- L"nF\0" L"\0" L"uF\0" L"\0" L"ug\0" L"\0" L"mg\0" L"\0" L"kg\0" L"\0"
- L"Hz\0" L"\0" L"kHz\0" L"\0" L"MHz\0" L"\0" L"GHz\0" L"\0" L"THz\0" L"\0"
- L"ul\0" L"\0" L"ml\0" L"\0" L"dl\0" L"\0" L"kl\0" L"\0" L"fm\0" L"\0"
- L"nm\0" L"\0" L"um\0" L"\0" L"mm\0" L"\0" L"cm\0" L"\0" L"km\0" L"\0"
- L"mm^2\0" L"\0" L"cm^2\0" L"\0" L"m^2\0" L"\0" L"km^2\0" L"\0" L"mm^3\0"
- L"\0" L"cm^3\0" L"\0" L"m^3\0" L"\0" L"km^3\0" L"\0" L"m/s\0" L"\0"
- L"m/s^2\0" L"\0" L"Pa\0" L"\0" L"kPa\0" L"\0" L"MPa\0" L"\0" L"GPa\0" L"\0"
- L"rad\0" L"\0" L"rad/s\0" L"\0" L"rad/s^2\0" L"\0" L"ps\0" L"\0" L"ns\0"
- L"\0" L"us\0" L"\0" L"ms\0" L"\0" L"pV\0" L"\0" L"nV\0" L"\0" L"uV\0" L"\0"
- L"mV\0" L"\0" L"kV\0" L"\0" L"MV\0" L"\0" L"pW\0" L"\0" L"nW\0" L"\0"
- L"uW\0" L"\0" L"mW\0" L"\0" L"kW\0" L"\0" L"MW\0" L"\0" L"a.m.\0" L"\0"
- L"Bq\0" L"\0" L"cc\0" L"\0" L"cd\0" L"\0" L"C/kg\0" L"\0" L"Co.\0" L"\0"
- L"dB\0" L"\0" L"Gy\0" L"\0" L"ha\0" L"\0" L"HP\0" L"\0" L"in\0" L"\0"
- L"KK\0" L"\0" L"KM\0" L"\0" L"kt\0" L"\0" L"lm\0" L"\0" L"ln\0" L"\0"
- L"log\0" L"\0" L"lx\0" L"\0" L"mb\0" L"\0" L"mil\0" L"\0" L"mol\0" L"\0"
- L"PH\0" L"\0" L"p.m.\0" L"\0" L"PPM\0" L"\0" L"PR\0" L"\0" L"sr\0" L"\0"
- L"Sv\0" L"\0" L"Wb\0" L"\0" L"ff\0" L"\0" L"fi\0" L"\0" L"fl\0" L"\0"
- L"ffi\0" L"\0" L"ffl\0" L"\0" L"st\0" L"\0" L"+\0" L"\0" L"\0" L"\0" L"\0"
- L"\0" L"\0" L"\0" L"\0" L"\0" L"\0" L"\0" L"\0" L"\0" L"\0" L"\0" L"\0"
- L"\0" L"\0" L"\0" L"\0" L"\0" L"\0" L"\0" L"\0" L"\0" L"\0" L"\0" L"\0"
- L"\0" L"\0" L"\0" L"\0" L"\0" L"_\0" L"\0" L"_\0" L"\0" L"_\0" L"\0" L",\0"
- L"\0" L".\0" L"\0" L";\0" L"\0" L":\0" L"\0" L"?\0" L"\0" L"!\0" L"\0"
- L"(\0" L"\0" L")\0" L"\0" L"{\0" L"\0" L"}\0" L"\0" L"#\0" L"\0" L"&\0"
- L"\0" L"*\0" L"\0" L"+\0" L"\0" L"-\0" L"\0" L"<\0" L"\0" L">\0" L"\0"
- L"=\0" L"\0" L"\\\0" L"\0" L"$\0" L"\0" L"%\0" L"\0" L"@\0" L"\0" L"\0"
- L"\0" L"!\0" L"\0" L"\"\0" L"\0" L"#\0" L"\0" L"$\0" L"\0" L"%\0" L"\0"
- L"&\0" L"\0" L"'\0" L"\0" L"(\0" L"\0" L")\0" L"\0" L"*\0" L"\0" L"+\0"
- L"\0" L",\0" L"\0" L"-\0" L"\0" L".\0" L"\0" L"/\0" L"\0" L"0\0" L"\0"
- L"1\0" L"\0" L"2\0" L"\0" L"3\0" L"\0" L"4\0" L"\0" L"5\0" L"\0" L"6\0"
- L"\0" L"7\0" L"\0" L"8\0" L"\0" L"9\0" L"\0" L":\0" L"\0" L";\0" L"\0"
- L"<\0" L"\0" L"=\0" L"\0" L">\0" L"\0" L"?\0" L"\0" L"@\0" L"\0" L"A\0"
- L"\0" L"B\0" L"\0" L"C\0" L"\0" L"D\0" L"\0" L"E\0" L"\0" L"F\0" L"\0"
- L"G\0" L"\0" L"H\0" L"\0" L"I\0" L"\0" L"J\0" L"\0" L"K\0" L"\0" L"L\0"
- L"\0" L"M\0" L"\0" L"N\0" L"\0" L"O\0" L"\0" L"P\0" L"\0" L"Q\0" L"\0"
- L"R\0" L"\0" L"S\0" L"\0" L"T\0" L"\0" L"U\0" L"\0" L"V\0" L"\0" L"W\0"
- L"\0" L"X\0" L"\0" L"Y\0" L"\0" L"Z\0" L"\0" L"[\0" L"\0" L"\\\0" L"\0"
- L"]\0" L"\0" L"^\0" L"\0" L"_\0" L"\0" L"`\0" L"\0" L"a\0" L"\0" L"b\0"
- L"\0" L"c\0" L"\0" L"d\0" L"\0" L"e\0" L"\0" L"f\0" L"\0" L"g\0" L"\0"
- L"h\0" L"\0" L"i\0" L"\0" L"j\0" L"\0" L"k\0" L"\0" L"l\0" L"\0" L"m\0"
- L"\0" L"n\0" L"\0" L"o\0" L"\0" L"p\0" L"\0" L"q\0" L"\0" L"r\0" L"\0"
- L"s\0" L"\0" L"t\0" L"\0" L"u\0" L"\0" L"v\0" L"\0" L"w\0" L"\0" L"x\0"
- L"\0" L"y\0" L"\0" L"z\0" L"\0" L"{\0" L"\0" L"|\0" L"\0" L"}\0" L"\0"
- L"~\0" L"\0" L"A\0" L"\0" L"B\0" L"\0" L"C\0" L"\0" L"D\0" L"\0" L"E\0"
- L"\0" L"F\0" L"\0" L"G\0" L"\0" L"H\0" L"\0" L"I\0" L"\0" L"J\0" L"\0"
- L"K\0" L"\0" L"L\0" L"\0" L"M\0" L"\0" L"N\0" L"\0" L"O\0" L"\0" L"P\0"
- L"\0" L"Q\0" L"\0" L"R\0" L"\0" L"S\0" L"\0" L"T\0" L"\0" L"U\0" L"\0"
- L"V\0" L"\0" L"W\0" L"\0" L"X\0" L"\0" L"Y\0" L"\0" L"Z\0" L"\0" L"a\0"
- L"\0" L"b\0" L"\0" L"c\0" L"\0" L"d\0" L"\0" L"e\0" L"\0" L"f\0" L"\0"
- L"g\0" L"\0" L"h\0" L"\0" L"i\0" L"\0" L"j\0" L"\0" L"k\0" L"\0" L"l\0"
- L"\0" L"m\0" L"\0" L"n\0" L"\0" L"o\0" L"\0" L"p\0" L"\0" L"q\0" L"\0"
- L"r\0" L"\0" L"s\0" L"\0" L"t\0" L"\0" L"u\0" L"\0" L"v\0" L"\0" L"w\0"
- L"\0" L"x\0" L"\0" L"y\0" L"\0" L"z\0" L"\0" L"A\0" L"\0" L"B\0" L"\0"
- L"C\0" L"\0" L"D\0" L"\0" L"E\0" L"\0" L"F\0" L"\0" L"G\0" L"\0" L"H\0"
- L"\0" L"I\0" L"\0" L"J\0" L"\0" L"K\0" L"\0" L"L\0" L"\0" L"M\0" L"\0"
- L"N\0" L"\0" L"O\0" L"\0" L"P\0" L"\0" L"Q\0" L"\0" L"R\0" L"\0" L"S\0"
- L"\0" L"T\0" L"\0" L"U\0" L"\0" L"V\0" L"\0" L"W\0" L"\0" L"X\0" L"\0"
- L"Y\0" L"\0" L"Z\0" L"\0" L"a\0" L"\0" L"b\0" L"\0" L"c\0" L"\0" L"d\0"
- L"\0" L"e\0" L"\0" L"f\0" L"\0" L"g\0" L"\0" L"i\0" L"\0" L"j\0" L"\0"
- L"k\0" L"\0" L"l\0" L"\0" L"m\0" L"\0" L"n\0" L"\0" L"o\0" L"\0" L"p\0"
- L"\0" L"q\0" L"\0" L"r\0" L"\0" L"s\0" L"\0" L"t\0" L"\0" L"u\0" L"\0"
- L"v\0" L"\0" L"w\0" L"\0" L"x\0" L"\0" L"y\0" L"\0" L"z\0" L"\0" L"A\0"
- L"\0" L"B\0" L"\0" L"C\0" L"\0" L"D\0" L"\0" L"E\0" L"\0" L"F\0" L"\0"
- L"G\0" L"\0" L"H\0" L"\0" L"I\0" L"\0" L"J\0" L"\0" L"K\0" L"\0" L"L\0"
- L"\0" L"M\0" L"\0" L"N\0" L"\0" L"O\0" L"\0" L"P\0" L"\0" L"Q\0" L"\0"
- L"R\0" L"\0" L"S\0" L"\0" L"T\0" L"\0" L"U\0" L"\0" L"V\0" L"\0" L"W\0"
- L"\0" L"X\0" L"\0" L"Y\0" L"\0" L"Z\0" L"\0" L"a\0" L"\0" L"b\0" L"\0"
- L"c\0" L"\0" L"d\0" L"\0" L"e\0" L"\0" L"f\0" L"\0" L"g\0" L"\0" L"h\0"
- L"\0" L"i\0" L"\0" L"j\0" L"\0" L"k\0" L"\0" L"l\0" L"\0" L"m\0" L"\0"
- L"n\0" L"\0" L"o\0" L"\0" L"p\0" L"\0" L"q\0" L"\0" L"r\0" L"\0" L"s\0"
- L"\0" L"t\0" L"\0" L"u\0" L"\0" L"v\0" L"\0" L"w\0" L"\0" L"x\0" L"\0"
- L"y\0" L"\0" L"z\0" L"\0" L"A\0" L"\0" L"C\0" L"\0" L"D\0" L"\0" L"G\0"
- L"\0" L"J\0" L"\0" L"K\0" L"\0" L"N\0" L"\0" L"O\0" L"\0" L"P\0" L"\0"
- L"Q\0" L"\0" L"S\0" L"\0" L"T\0" L"\0" L"U\0" L"\0" L"V\0" L"\0" L"W\0"
- L"\0" L"X\0" L"\0" L"Y\0" L"\0" L"Z\0" L"\0" L"a\0" L"\0" L"b\0" L"\0"
- L"c\0" L"\0" L"d\0" L"\0" L"f\0" L"\0" L"h\0" L"\0" L"i\0" L"\0" L"j\0"
- L"\0" L"k\0" L"\0" L"m\0" L"\0" L"n\0" L"\0" L"p\0" L"\0" L"q\0" L"\0"
- L"r\0" L"\0" L"s\0" L"\0" L"t\0" L"\0" L"u\0" L"\0" L"v\0" L"\0" L"w\0"
- L"\0" L"x\0" L"\0" L"y\0" L"\0" L"z\0" L"\0" L"A\0" L"\0" L"B\0" L"\0"
- L"C\0" L"\0" L"D\0" L"\0" L"E\0" L"\0" L"F\0" L"\0" L"G\0" L"\0" L"H\0"
- L"\0" L"I\0" L"\0" L"J\0" L"\0" L"K\0" L"\0" L"L\0" L"\0" L"M\0" L"\0"
- L"N\0" L"\0" L"O\0" L"\0" L"P\0" L"\0" L"Q\0" L"\0" L"R\0" L"\0" L"S\0"
- L"\0" L"T\0" L"\0" L"U\0" L"\0" L"V\0" L"\0" L"W\0" L"\0" L"X\0" L"\0"
- L"Y\0" L"\0" L"Z\0" L"\0" L"a\0" L"\0" L"b\0" L"\0" L"c\0" L"\0" L"d\0"
- L"\0" L"e\0" L"\0" L"f\0" L"\0" L"g\0" L"\0" L"h\0" L"\0" L"i\0" L"\0"
- L"j\0" L"\0" L"k\0" L"\0" L"l\0" L"\0" L"m\0" L"\0" L"n\0" L"\0" L"o\0"
- L"\0" L"p\0" L"\0" L"q\0" L"\0" L"r\0" L"\0" L"s\0" L"\0" L"t\0" L"\0"
- L"u\0" L"\0" L"v\0" L"\0" L"w\0" L"\0" L"x\0" L"\0" L"y\0" L"\0" L"z\0"
- L"\0" L"A\0" L"\0" L"B\0" L"\0" L"D\0" L"\0" L"E\0" L"\0" L"F\0" L"\0"
- L"G\0" L"\0" L"J\0" L"\0" L"K\0" L"\0" L"L\0" L"\0" L"M\0" L"\0" L"N\0"
- L"\0" L"O\0" L"\0" L"P\0" L"\0" L"Q\0" L"\0" L"S\0" L"\0" L"T\0" L"\0"
- L"U\0" L"\0" L"V\0" L"\0" L"W\0" L"\0" L"X\0" L"\0" L"Y\0" L"\0" L"a\0"
- L"\0" L"b\0" L"\0" L"c\0" L"\0" L"d\0" L"\0" L"e\0" L"\0" L"f\0" L"\0"
- L"g\0" L"\0" L"h\0" L"\0" L"i\0" L"\0" L"j\0" L"\0" L"k\0" L"\0" L"l\0"
- L"\0" L"m\0" L"\0" L"n\0" L"\0" L"o\0" L"\0" L"p\0" L"\0" L"q\0" L"\0"
- L"r\0" L"\0" L"s\0" L"\0" L"t\0" L"\0" L"u\0" L"\0" L"v\0" L"\0" L"w\0"
- L"\0" L"x\0" L"\0" L"y\0" L"\0" L"z\0" L"\0" L"A\0" L"\0" L"B\0" L"\0"
- L"D\0" L"\0" L"E\0" L"\0" L"F\0" L"\0" L"G\0" L"\0" L"I\0" L"\0" L"J\0"
- L"\0" L"K\0" L"\0" L"L\0" L"\0" L"M\0" L"\0" L"O\0" L"\0" L"S\0" L"\0"
- L"T\0" L"\0" L"U\0" L"\0" L"V\0" L"\0" L"W\0" L"\0" L"X\0" L"\0" L"Y\0"
- L"\0" L"a\0" L"\0" L"b\0" L"\0" L"c\0" L"\0" L"d\0" L"\0" L"e\0" L"\0"
- L"f\0" L"\0" L"g\0" L"\0" L"h\0" L"\0" L"i\0" L"\0" L"j\0" L"\0" L"k\0"
- L"\0" L"l\0" L"\0" L"m\0" L"\0" L"n\0" L"\0" L"o\0" L"\0" L"p\0" L"\0"
- L"q\0" L"\0" L"r\0" L"\0" L"s\0" L"\0" L"t\0" L"\0" L"u\0" L"\0" L"v\0"
- L"\0" L"w\0" L"\0" L"x\0" L"\0" L"y\0" L"\0" L"z\0" L"\0" L"A\0" L"\0"
- L"B\0" L"\0" L"C\0" L"\0" L"D\0" L"\0" L"E\0" L"\0" L"F\0" L"\0" L"G\0"
- L"\0" L"H\0" L"\0" L"I\0" L"\0" L"J\0" L"\0" L"K\0" L"\0" L"L\0" L"\0"
- L"M\0" L"\0" L"N\0" L"\0" L"O\0" L"\0" L"P\0" L"\0" L"Q\0" L"\0" L"R\0"
- L"\0" L"S\0" L"\0" L"T\0" L"\0" L"U\0" L"\0" L"V\0" L"\0" L"W\0" L"\0"
- L"X\0" L"\0" L"Y\0" L"\0" L"Z\0" L"\0" L"a\0" L"\0" L"b\0" L"\0" L"c\0"
- L"\0" L"d\0" L"\0" L"e\0" L"\0" L"f\0" L"\0" L"g\0" L"\0" L"h\0" L"\0"
- L"i\0" L"\0" L"j\0" L"\0" L"k\0" L"\0" L"l\0" L"\0" L"m\0" L"\0" L"n\0"
- L"\0" L"o\0" L"\0" L"p\0" L"\0" L"q\0" L"\0" L"r\0" L"\0" L"s\0" L"\0"
- L"t\0" L"\0" L"u\0" L"\0" L"v\0" L"\0" L"w\0" L"\0" L"x\0" L"\0" L"y\0"
- L"\0" L"z\0" L"\0" L"A\0" L"\0" L"B\0" L"\0" L"C\0" L"\0" L"D\0" L"\0"
- L"E\0" L"\0" L"F\0" L"\0" L"G\0" L"\0" L"H\0" L"\0" L"I\0" L"\0" L"J\0"
- L"\0" L"K\0" L"\0" L"L\0" L"\0" L"M\0" L"\0" L"N\0" L"\0" L"O\0" L"\0"
- L"P\0" L"\0" L"Q\0" L"\0" L"R\0" L"\0" L"S\0" L"\0" L"T\0" L"\0" L"U\0"
- L"\0" L"V\0" L"\0" L"W\0" L"\0" L"X\0" L"\0" L"Y\0" L"\0" L"Z\0" L"\0"
- L"a\0" L"\0" L"b\0" L"\0" L"c\0" L"\0" L"d\0" L"\0" L"e\0" L"\0" L"f\0"
- L"\0" L"g\0" L"\0" L"h\0" L"\0" L"i\0" L"\0" L"j\0" L"\0" L"k\0" L"\0"
- L"l\0" L"\0" L"m\0" L"\0" L"n\0" L"\0" L"o\0" L"\0" L"p\0" L"\0" L"q\0"
- L"\0" L"r\0" L"\0" L"s\0" L"\0" L"t\0" L"\0" L"u\0" L"\0" L"v\0" L"\0"
- L"w\0" L"\0" L"x\0" L"\0" L"y\0" L"\0" L"z\0" L"\0" L"A\0" L"\0" L"B\0"
- L"\0" L"C\0" L"\0" L"D\0" L"\0" L"E\0" L"\0" L"F\0" L"\0" L"G\0" L"\0"
- L"H\0" L"\0" L"I\0" L"\0" L"J\0" L"\0" L"K\0" L"\0" L"L\0" L"\0" L"M\0"
- L"\0" L"N\0" L"\0" L"O\0" L"\0" L"P\0" L"\0" L"Q\0" L"\0" L"R\0" L"\0"
- L"S\0" L"\0" L"T\0" L"\0" L"U\0" L"\0" L"V\0" L"\0" L"W\0" L"\0" L"X\0"
- L"\0" L"Y\0" L"\0" L"Z\0" L"\0" L"a\0" L"\0" L"b\0" L"\0" L"c\0" L"\0"
- L"d\0" L"\0" L"e\0" L"\0" L"f\0" L"\0" L"g\0" L"\0" L"h\0" L"\0" L"i\0"
- L"\0" L"j\0" L"\0" L"k\0" L"\0" L"l\0" L"\0" L"m\0" L"\0" L"n\0" L"\0"
- L"o\0" L"\0" L"p\0" L"\0" L"q\0" L"\0" L"r\0" L"\0" L"s\0" L"\0" L"t\0"
- L"\0" L"u\0" L"\0" L"v\0" L"\0" L"w\0" L"\0" L"x\0" L"\0" L"y\0" L"\0"
- L"z\0" L"\0" L"A\0" L"\0" L"B\0" L"\0" L"C\0" L"\0" L"D\0" L"\0" L"E\0"
- L"\0" L"F\0" L"\0" L"G\0" L"\0" L"H\0" L"\0" L"I\0" L"\0" L"J\0" L"\0"
- L"K\0" L"\0" L"L\0" L"\0" L"M\0" L"\0" L"N\0" L"\0" L"O\0" L"\0" L"P\0"
- L"\0" L"Q\0" L"\0" L"R\0" L"\0" L"S\0" L"\0" L"T\0" L"\0" L"U\0" L"\0"
- L"V\0" L"\0" L"W\0" L"\0" L"X\0" L"\0" L"Y\0" L"\0" L"Z\0" L"\0" L"a\0"
- L"\0" L"b\0" L"\0" L"c\0" L"\0" L"d\0" L"\0" L"e\0" L"\0" L"f\0" L"\0"
- L"g\0" L"\0" L"h\0" L"\0" L"i\0" L"\0" L"j\0" L"\0" L"k\0" L"\0" L"l\0"
- L"\0" L"m\0" L"\0" L"n\0" L"\0" L"o\0" L"\0" L"p\0" L"\0" L"q\0" L"\0"
- L"r\0" L"\0" L"s\0" L"\0" L"t\0" L"\0" L"u\0" L"\0" L"v\0" L"\0" L"w\0"
- L"\0" L"x\0" L"\0" L"y\0" L"\0" L"z\0" L"\0" L"A\0" L"\0" L"B\0" L"\0"
- L"C\0" L"\0" L"D\0" L"\0" L"E\0" L"\0" L"F\0" L"\0" L"G\0" L"\0" L"H\0"
- L"\0" L"I\0" L"\0" L"J\0" L"\0" L"K\0" L"\0" L"L\0" L"\0" L"M\0" L"\0"
- L"N\0" L"\0" L"O\0" L"\0" L"P\0" L"\0" L"Q\0" L"\0" L"R\0" L"\0" L"S\0"
- L"\0" L"T\0" L"\0" L"U\0" L"\0" L"V\0" L"\0" L"W\0" L"\0" L"X\0" L"\0"
- L"Y\0" L"\0" L"Z\0" L"\0" L"a\0" L"\0" L"b\0" L"\0" L"c\0" L"\0" L"d\0"
- L"\0" L"e\0" L"\0" L"f\0" L"\0" L"g\0" L"\0" L"h\0" L"\0" L"i\0" L"\0"
- L"j\0" L"\0" L"k\0" L"\0" L"l\0" L"\0" L"m\0" L"\0" L"n\0" L"\0" L"o\0"
- L"\0" L"p\0" L"\0" L"q\0" L"\0" L"r\0" L"\0" L"s\0" L"\0" L"t\0" L"\0"
- L"u\0" L"\0" L"v\0" L"\0" L"w\0" L"\0" L"x\0" L"\0" L"y\0" L"\0" L"z\0"
- L"\0" L"A\0" L"\0" L"B\0" L"\0" L"C\0" L"\0" L"D\0" L"\0" L"E\0" L"\0"
- L"F\0" L"\0" L"G\0" L"\0" L"H\0" L"\0" L"I\0" L"\0" L"J\0" L"\0" L"K\0"
- L"\0" L"L\0" L"\0" L"M\0" L"\0" L"N\0" L"\0" L"O\0" L"\0" L"P\0" L"\0"
- L"Q\0" L"\0" L"R\0" L"\0" L"S\0" L"\0" L"T\0" L"\0" L"U\0" L"\0" L"V\0"
- L"\0" L"W\0" L"\0" L"X\0" L"\0" L"Y\0" L"\0" L"Z\0" L"\0" L"a\0" L"\0"
- L"b\0" L"\0" L"c\0" L"\0" L"d\0" L"\0" L"e\0" L"\0" L"f\0" L"\0" L"g\0"
- L"\0" L"h\0" L"\0" L"i\0" L"\0" L"j\0" L"\0" L"k\0" L"\0" L"l\0" L"\0"
- L"m\0" L"\0" L"n\0" L"\0" L"o\0" L"\0" L"p\0" L"\0" L"q\0" L"\0" L"r\0"
- L"\0" L"s\0" L"\0" L"t\0" L"\0" L"u\0" L"\0" L"v\0" L"\0" L"w\0" L"\0"
- L"x\0" L"\0" L"y\0" L"\0" L"z\0" L"\0" L"0\0" L"\0" L"1\0" L"\0" L"2\0"
- L"\0" L"3\0" L"\0" L"4\0" L"\0" L"5\0" L"\0" L"6\0" L"\0" L"7\0" L"\0"
- L"8\0" L"\0" L"9\0" L"\0" L"0\0" L"\0" L"1\0" L"\0" L"2\0" L"\0" L"3\0"
- L"\0" L"4\0" L"\0" L"5\0" L"\0" L"6\0" L"\0" L"7\0" L"\0" L"8\0" L"\0"
- L"9\0" L"\0" L"0\0" L"\0" L"1\0" L"\0" L"2\0" L"\0" L"3\0" L"\0" L"4\0"
- L"\0" L"5\0" L"\0" L"6\0" L"\0" L"7\0" L"\0" L"8\0" L"\0" L"9\0" L"\0"
- L"0\0" L"\0" L"1\0" L"\0" L"2\0" L"\0" L"3\0" L"\0" L"4\0" L"\0" L"5\0"
- L"\0" L"6\0" L"\0" L"7\0" L"\0" L"8\0" L"\0" L"9\0" L"\0" L"0\0" L"\0"
- L"1\0" L"\0" L"2\0" L"\0" L"3\0" L"\0" L"4\0" L"\0" L"5\0" L"\0" L"6\0"
- L"\0" L"7\0" L"\0" L"8\0" L"\0" L"9\0";
diff --git a/locale/C-translit.h.in b/locale/C-translit.h.in
index e27f39e8fe..5a3cf482e0 100644
--- a/locale/C-translit.h.in
+++ b/locale/C-translit.h.in
@@ -1,1374 +1,1678 @@
-/* Transliteration for the C locale. -*-C-*-
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2000.
+# Transliteration for the C locale. -*-C-*-
+# Copyright (C) 2000-2019 Free Software Foundation, Inc.
+# This file is part of the GNU C Library.
+# Contributed by Ulrich Drepper <drepper@redhat.com>, 2000.
+#
+# 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
+# <https://www.gnu.org/licenses/>.
- 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 entries here have to be sorted relative to the input string.
- 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
- <http://www.gnu.org/licenses/>. */
-
-/* The entries here have to be sorted relative to the input string. */
-
-"\x00a0" " " /* <U00A0> NO-BREAK SPACE */
-"\x00a9" "(C)" /* <U00A9> COPYRIGHT SIGN */
-"\x00ab" "<<" /* <U00AB> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */
-"\x00ad" "-" /* <U00AD> SOFT HYPHEN */
-"\x00ae" "(R)" /* <U00AE> REGISTERED SIGN */
-"\x00b5" "u" /* <U00B5> MICRO SIGN */
-"\x00b8" "," /* <U00B8> CEDILLA */
-"\x00bb" ">>" /* <U00BB> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK */
-"\x00bc" " 1/4 " /* <U00BC> VULGAR FRACTION ONE QUARTER */
-"\x00bd" " 1/2 " /* <U00BD> VULGAR FRACTION ONE HALF */
-"\x00be" " 3/4 " /* <U00BE> VULGAR FRACTION THREE QUARTERS */
-"\x00c6" "AE" /* <U00C6> LATIN CAPITAL LETTER AE */
-"\x00d7" "x" /* <U00D7> MULTIPLICATION SIGN */
-"\x00df" "ss" /* <U00DF> LATIN SMALL LETTER SHARP S */
-"\x00e6" "ae" /* <U00E6> LATIN SMALL LETTER AE */
-"\x0132" "IJ" /* <U0132> LATIN CAPITAL LIGATURE IJ */
-"\x0133" "ij" /* <U0133> LATIN SMALL LIGATURE IJ */
-"\x0149" "'n" /* <U0149> LATIN SMALL LETTER N PRECEDED BY APOSTROPHE */
-"\x0152" "OE" /* <U0152> LATIN CAPITAL LIGATURE OE */
-"\x0153" "oe" /* <U0153> LATIN SMALL LIGATURE OE */
-"\x017f" "s" /* <U017F> LATIN SMALL LETTER LONG S */
-"\x01c7" "LJ" /* <U01C7> LATIN CAPITAL LETTER LJ */
-"\x01c8" "Lj" /* <U01C8> LATIN CAPITAL LETTER L WITH SMALL LETTER J */
-"\x01c9" "lj" /* <U01C9> LATIN SMALL LETTER LJ */
-"\x01ca" "NJ" /* <U01CA> LATIN CAPITAL LETTER NJ */
-"\x01cb" "Nj" /* <U01CB> LATIN CAPITAL LETTER N WITH SMALL LETTER J */
-"\x01cc" "nj" /* <U01CC> LATIN SMALL LETTER NJ */
-"\x01f1" "DZ" /* <U01F1> LATIN CAPITAL LETTER DZ */
-"\x01f2" "Dz" /* <U01F2> LATIN CAPITAL LETTER D WITH SMALL LETTER Z */
-"\x01f3" "dz" /* <U01F3> LATIN SMALL LETTER DZ */
-"\x02bc" "'" /* <U02BC> MODIFIER LETTER APOSTROPHE */
-"\x02c6" "^" /* <U02C6> MODIFIER LETTER CIRCUMFLEX ACCENT */
-"\x02c8" "'" /* <U02C8> MODIFIER LETTER VERTICAL LINE */
-"\x02cb" "`" /* <U02CB> MODIFIER LETTER GRAVE ACCENT */
-"\x02cd" "_" /* <U02CD> MODIFIER LETTER LOW MACRON */
-"\x02d0" ":" /* <U02D0> MODIFIER LETTER TRIANGULAR COLON */
-"\x02dc" "~" /* <U02DC> SMALL TILDE */
-"\x2002" " " /* <U2002> EN SPACE */
-"\x2003" " " /* <U2003> EM SPACE */
-"\x2004" " " /* <U2004> THREE-PER-EM SPACE */
-"\x2005" " " /* <U2005> FOUR-PER-EM SPACE */
-"\x2006" " " /* <U2006> SIX-PER-EM SPACE */
-"\x2008" " " /* <U2008> PUNCTUATION SPACE */
-"\x2009" " " /* <U2009> THIN SPACE */
-"\x200a" " " /* <U200A> HAIR SPACE */
-"\x200b" "" /* <U200B> ZERO WIDTH SPACE */
-"\x2010" "-" /* <U2010> HYPHEN */
-"\x2011" "-" /* <U2011> NON-BREAKING HYPHEN */
-"\x2012" "-" /* <U2012> FIGURE DASH */
-"\x2013" "-" /* <U2013> EN DASH */
-"\x2014" "--" /* <U2014> EM DASH */
-"\x2015" "-" /* <U2015> HORIZONTAL BAR */
-"\x2018" "'" /* <U2018> LEFT SINGLE QUOTATION MARK */
-"\x2019" "'" /* <U2019> RIGHT SINGLE QUOTATION MARK */
-"\x201a" "," /* <U201A> SINGLE LOW-9 QUOTATION MARK */
-"\x201b" "'" /* <U201B> SINGLE HIGH-REVERSED-9 QUOTATION MARK */
-"\x201c" "\"" /* <U201C> LEFT DOUBLE QUOTATION MARK */
-"\x201d" "\"" /* <U201D> RIGHT DOUBLE QUOTATION MARK */
-"\x201e" ",," /* <U201E> DOUBLE LOW-9 QUOTATION MARK */
-"\x201f" "\"" /* <U201F> DOUBLE HIGH-REVERSED-9 QUOTATION MARK */
-"\x2020" "+" /* <U2020> DAGGER */
-"\x2022" "o" /* <U2022> BULLET */
-"\x2024" "." /* <U2024> ONE DOT LEADER */
-"\x2025" ".." /* <U2025> TWO DOT LEADER */
-"\x2026" "..." /* <U2026> HORIZONTAL ELLIPSIS */
-"\x202f" " " /* <U202F> NARROW NO-BREAK SPACE */
-"\x2035" "`" /* <U2035> REVERSED PRIME */
-"\x2036" "``" /* <U2036> REVERSED DOUBLE PRIME */
-"\x2037" "```" /* <U2037> REVERSED TRIPLE PRIME */
-"\x2039" "<" /* <U2039> SINGLE LEFT-POINTING ANGLE QUOTATION MARK */
-"\x203a" ">" /* <U203A> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK */
-"\x203c" "!!" /* <U203C> DOUBLE EXCLAMATION MARK */
-"\x2044" "/" /* <U2044> FRACTION SLASH */
-"\x2047" "??" /* <U2047> DOUBLE QUESTION MARK */
-"\x2048" "?!" /* <U2048> QUESTION EXCLAMATION MARK */
-"\x2049" "!?" /* <U2049> EXCLAMATION QUESTION MARK */
-"\x205f" " " /* <U205F> MEDIUM MATHEMATICAL SPACE */
-"\x2060" "" /* <U2060> WORD JOINER */
-"\x2061" "" /* <U2061> FUNCTION APPLICATION */
-"\x2062" "" /* <U2062> INVISIBLE TIMES */
-"\x2063" "" /* <U2063> INVISIBLE SEPARATOR */
-"\x20a1" "C=" /* <U20A1> COLON SIGN */
-"\x20a8" "Rs" /* <U20A8> RUPEE SIGN */
-"\x20ac" "EUR" /* <U20AC> EURO SIGN */
-"\x20b9" "INR" /* <U20B9> INDIAN RUPEE SIGN */
-"\x2100" "a/c" /* <U2100> ACCOUNT OF */
-"\x2101" "a/s" /* <U2101> ADDRESSED TO THE SUBJECT */
-"\x2102" "C" /* <U2102> DOUBLE-STRUCK CAPITAL C */
-"\x2105" "c/o" /* <U2105> CARE OF */
-"\x2106" "c/u" /* <U2106> CADA UNA */
-"\x210a" "g" /* <U210A> SCRIPT SMALL G */
-"\x210b" "H" /* <U210B> SCRIPT CAPITAL H */
-"\x210c" "H" /* <U210C> BLACK-LETTER CAPITAL H */
-"\x210d" "H" /* <U210D> DOUBLE-STRUCK CAPITAL H */
-"\x210e" "h" /* <U210E> PLANCK CONSTANT */
-"\x2110" "I" /* <U2110> SCRIPT CAPITAL I */
-"\x2111" "I" /* <U2111> BLACK-LETTER CAPITAL I */
-"\x2112" "L" /* <U2112> SCRIPT CAPITAL L */
-"\x2113" "l" /* <U2113> SCRIPT SMALL L */
-"\x2115" "N" /* <U2115> DOUBLE-STRUCK CAPITAL N */
-"\x2116" "No" /* <U2116> NUMERO SIGN */
-"\x2119" "P" /* <U2119> DOUBLE-STRUCK CAPITAL P */
-"\x211a" "Q" /* <U211A> DOUBLE-STRUCK CAPITAL Q */
-"\x211b" "R" /* <U211B> SCRIPT CAPITAL R */
-"\x211c" "R" /* <U211C> BLACK-LETTER CAPITAL R */
-"\x211d" "R" /* <U211D> DOUBLE-STRUCK CAPITAL R */
-"\x2121" "TEL" /* <U2121> TELEPHONE SIGN */
-"\x2122" "(TM)" /* <U2122> TRADE MARK SIGN */
-"\x2124" "Z" /* <U2124> DOUBLE-STRUCK CAPITAL Z */
-"\x2126" "Ohm" /* <U2126> OHM SIGN */
-"\x2128" "Z" /* <U2128> BLACK-LETTER CAPITAL Z */
-"\x212c" "B" /* <U212C> SCRIPT CAPITAL B */
-"\x212d" "C" /* <U212D> BLACK-LETTER CAPITAL C */
-"\x212e" "e" /* <U212E> ESTIMATED SYMBOL */
-"\x212f" "e" /* <U212F> SCRIPT SMALL E */
-"\x2130" "E" /* <U2130> SCRIPT CAPITAL E */
-"\x2131" "F" /* <U2131> SCRIPT CAPITAL F */
-"\x2133" "M" /* <U2133> SCRIPT CAPITAL M */
-"\x2134" "o" /* <U2134> SCRIPT SMALL O */
-"\x2139" "i" /* <U2139> INFORMATION SOURCE */
-"\x2145" "D" /* <U2145> DOUBLE-STRUCK ITALIC CAPITAL D */
-"\x2146" "d" /* <U2146> DOUBLE-STRUCK ITALIC SMALL D */
-"\x2147" "e" /* <U2147> DOUBLE-STRUCK ITALIC SMALL E */
-"\x2148" "i" /* <U2148> DOUBLE-STRUCK ITALIC SMALL I */
-"\x2149" "j" /* <U2149> DOUBLE-STRUCK ITALIC SMALL J */
-"\x2153" " 1/3 " /* <U2153> VULGAR FRACTION ONE THIRD */
-"\x2154" " 2/3 " /* <U2154> VULGAR FRACTION TWO THIRDS */
-"\x2155" " 1/5 " /* <U2155> VULGAR FRACTION ONE FIFTH */
-"\x2156" " 2/5 " /* <U2156> VULGAR FRACTION TWO FIFTHS */
-"\x2157" " 3/5 " /* <U2157> VULGAR FRACTION THREE FIFTHS */
-"\x2158" " 4/5 " /* <U2158> VULGAR FRACTION FOUR FIFTHS */
-"\x2159" " 1/6 " /* <U2159> VULGAR FRACTION ONE SIXTH */
-"\x215a" " 5/6 " /* <U215A> VULGAR FRACTION FIVE SIXTHS */
-"\x215b" " 1/8 " /* <U215B> VULGAR FRACTION ONE EIGHTH */
-"\x215c" " 3/8 " /* <U215C> VULGAR FRACTION THREE EIGHTHS */
-"\x215d" " 5/8 " /* <U215D> VULGAR FRACTION FIVE EIGHTHS */
-"\x215e" " 7/8 " /* <U215E> VULGAR FRACTION SEVEN EIGHTHS */
-"\x215f" " 1/" /* <U215F> FRACTION NUMERATOR ONE */
-"\x2160" "I" /* <U2160> ROMAN NUMERAL ONE */
-"\x2161" "II" /* <U2161> ROMAN NUMERAL TWO */
-"\x2162" "III" /* <U2162> ROMAN NUMERAL THREE */
-"\x2163" "IV" /* <U2163> ROMAN NUMERAL FOUR */
-"\x2164" "V" /* <U2164> ROMAN NUMERAL FIVE */
-"\x2165" "VI" /* <U2165> ROMAN NUMERAL SIX */
-"\x2166" "VII" /* <U2166> ROMAN NUMERAL SEVEN */
-"\x2167" "VIII" /* <U2167> ROMAN NUMERAL EIGHT */
-"\x2168" "IX" /* <U2168> ROMAN NUMERAL NINE */
-"\x2169" "X" /* <U2169> ROMAN NUMERAL TEN */
-"\x216a" "XI" /* <U216A> ROMAN NUMERAL ELEVEN */
-"\x216b" "XII" /* <U216B> ROMAN NUMERAL TWELVE */
-"\x216c" "L" /* <U216C> ROMAN NUMERAL FIFTY */
-"\x216d" "C" /* <U216D> ROMAN NUMERAL ONE HUNDRED */
-"\x216e" "D" /* <U216E> ROMAN NUMERAL FIVE HUNDRED */
-"\x216f" "M" /* <U216F> ROMAN NUMERAL ONE THOUSAND */
-"\x2170" "i" /* <U2170> SMALL ROMAN NUMERAL ONE */
-"\x2171" "ii" /* <U2171> SMALL ROMAN NUMERAL TWO */
-"\x2172" "iii" /* <U2172> SMALL ROMAN NUMERAL THREE */
-"\x2173" "iv" /* <U2173> SMALL ROMAN NUMERAL FOUR */
-"\x2174" "v" /* <U2174> SMALL ROMAN NUMERAL FIVE */
-"\x2175" "vi" /* <U2175> SMALL ROMAN NUMERAL SIX */
-"\x2176" "vii" /* <U2176> SMALL ROMAN NUMERAL SEVEN */
-"\x2177" "viii" /* <U2177> SMALL ROMAN NUMERAL EIGHT */
-"\x2178" "ix" /* <U2178> SMALL ROMAN NUMERAL NINE */
-"\x2179" "x" /* <U2179> SMALL ROMAN NUMERAL TEN */
-"\x217a" "xi" /* <U217A> SMALL ROMAN NUMERAL ELEVEN */
-"\x217b" "xii" /* <U217B> SMALL ROMAN NUMERAL TWELVE */
-"\x217c" "l" /* <U217C> SMALL ROMAN NUMERAL FIFTY */
-"\x217d" "c" /* <U217D> SMALL ROMAN NUMERAL ONE HUNDRED */
-"\x217e" "d" /* <U217E> SMALL ROMAN NUMERAL FIVE HUNDRED */
-"\x217f" "m" /* <U217F> SMALL ROMAN NUMERAL ONE THOUSAND */
-"\x2190" "<-" /* <U2190> LEFTWARDS ARROW */
-"\x2192" "->" /* <U2192> RIGHTWARDS ARROW */
-"\x2194" "<->" /* <U2194> LEFT RIGHT ARROW */
-"\x21d0" "<=" /* <U21D0> LEFTWARDS DOUBLE ARROW */
-"\x21d2" "=>" /* <U21D2> RIGHTWARDS DOUBLE ARROW */
-"\x21d4" "<=>" /* <U21D4> LEFT RIGHT DOUBLE ARROW */
-"\x2212" "-" /* <U2212> MINUS SIGN */
-"\x2215" "/" /* <U2215> DIVISION SLASH */
-"\x2216" "\\" /* <U2216> SET MINUS */
-"\x2217" "*" /* <U2217> ASTERISK OPERATOR */
-"\x2223" "|" /* <U2223> DIVIDES */
-"\x2236" ":" /* <U2236> RATIO */
-"\x223c" "~" /* <U223C> TILDE OPERATOR */
-"\x2264" "<=" /* <U2264> LESS-THAN OR EQUAL TO */
-"\x2265" ">=" /* <U2265> GREATER-THAN OR EQUAL TO */
-"\x226a" "<<" /* <U226A> MUCH LESS-THAN */
-"\x226b" ">>" /* <U226B> MUCH GREATER-THAN */
-"\x22d8" "<<<" /* <U22D8> VERY MUCH LESS-THAN */
-"\x22d9" ">>>" /* <U22D9> VERY MUCH GREATER-THAN */
-"\x2400" "NUL" /* <U2400> SYMBOL FOR NULL */
-"\x2401" "SOH" /* <U2401> SYMBOL FOR START OF HEADING */
-"\x2402" "STX" /* <U2402> SYMBOL FOR START OF TEXT */
-"\x2403" "ETX" /* <U2403> SYMBOL FOR END OF TEXT */
-"\x2404" "EOT" /* <U2404> SYMBOL FOR END OF TRANSMISSION */
-"\x2405" "ENQ" /* <U2405> SYMBOL FOR ENQUIRY */
-"\x2406" "ACK" /* <U2406> SYMBOL FOR ACKNOWLEDGE */
-"\x2407" "BEL" /* <U2407> SYMBOL FOR BELL */
-"\x2408" "BS" /* <U2408> SYMBOL FOR BACKSPACE */
-"\x2409" "HT" /* <U2409> SYMBOL FOR HORIZONTAL TABULATION */
-"\x240a" "LF" /* <U240A> SYMBOL FOR LINE FEED */
-"\x240b" "VT" /* <U240B> SYMBOL FOR VERTICAL TABULATION */
-"\x240c" "FF" /* <U240C> SYMBOL FOR FORM FEED */
-"\x240d" "CR" /* <U240D> SYMBOL FOR CARRIAGE RETURN */
-"\x240e" "SO" /* <U240E> SYMBOL FOR SHIFT OUT */
-"\x240f" "SI" /* <U240F> SYMBOL FOR SHIFT IN */
-"\x2410" "DLE" /* <U2410> SYMBOL FOR DATA LINK ESCAPE */
-"\x2411" "DC1" /* <U2411> SYMBOL FOR DEVICE CONTROL ONE */
-"\x2412" "DC2" /* <U2412> SYMBOL FOR DEVICE CONTROL TWO */
-"\x2413" "DC3" /* <U2413> SYMBOL FOR DEVICE CONTROL THREE */
-"\x2414" "DC4" /* <U2414> SYMBOL FOR DEVICE CONTROL FOUR */
-"\x2415" "NAK" /* <U2415> SYMBOL FOR NEGATIVE ACKNOWLEDGE */
-"\x2416" "SYN" /* <U2416> SYMBOL FOR SYNCHRONOUS IDLE */
-"\x2417" "ETB" /* <U2417> SYMBOL FOR END OF TRANSMISSION BLOCK */
-"\x2418" "CAN" /* <U2418> SYMBOL FOR CANCEL */
-"\x2419" "EM" /* <U2419> SYMBOL FOR END OF MEDIUM */
-"\x241a" "SUB" /* <U241A> SYMBOL FOR SUBSTITUTE */
-"\x241b" "ESC" /* <U241B> SYMBOL FOR ESCAPE */
-"\x241c" "FS" /* <U241C> SYMBOL FOR FILE SEPARATOR */
-"\x241d" "GS" /* <U241D> SYMBOL FOR GROUP SEPARATOR */
-"\x241e" "RS" /* <U241E> SYMBOL FOR RECORD SEPARATOR */
-"\x241f" "US" /* <U241F> SYMBOL FOR UNIT SEPARATOR */
-"\x2420" "SP" /* <U2420> SYMBOL FOR SPACE */
-"\x2421" "DEL" /* <U2421> SYMBOL FOR DELETE */
-"\x2423" "_" /* <U2423> OPEN BOX */
-"\x2424" "NL" /* <U2424> SYMBOL FOR NEWLINE */
-"\x2460" "(1)" /* <U2460> CIRCLED DIGIT ONE */
-"\x2461" "(2)" /* <U2461> CIRCLED DIGIT TWO */
-"\x2462" "(3)" /* <U2462> CIRCLED DIGIT THREE */
-"\x2463" "(4)" /* <U2463> CIRCLED DIGIT FOUR */
-"\x2464" "(5)" /* <U2464> CIRCLED DIGIT FIVE */
-"\x2465" "(6)" /* <U2465> CIRCLED DIGIT SIX */
-"\x2466" "(7)" /* <U2466> CIRCLED DIGIT SEVEN */
-"\x2467" "(8)" /* <U2467> CIRCLED DIGIT EIGHT */
-"\x2468" "(9)" /* <U2468> CIRCLED DIGIT NINE */
-"\x2469" "(10)" /* <U2469> CIRCLED NUMBER TEN */
-"\x246a" "(11)" /* <U246A> CIRCLED NUMBER ELEVEN */
-"\x246b" "(12)" /* <U246B> CIRCLED NUMBER TWELVE */
-"\x246c" "(13)" /* <U246C> CIRCLED NUMBER THIRTEEN */
-"\x246d" "(14)" /* <U246D> CIRCLED NUMBER FOURTEEN */
-"\x246e" "(15)" /* <U246E> CIRCLED NUMBER FIFTEEN */
-"\x246f" "(16)" /* <U246F> CIRCLED NUMBER SIXTEEN */
-"\x2470" "(17)" /* <U2470> CIRCLED NUMBER SEVENTEEN */
-"\x2471" "(18)" /* <U2471> CIRCLED NUMBER EIGHTEEN */
-"\x2472" "(19)" /* <U2472> CIRCLED NUMBER NINETEEN */
-"\x2473" "(20)" /* <U2473> CIRCLED NUMBER TWENTY */
-"\x2474" "(1)" /* <U2474> PARENTHESIZED DIGIT ONE */
-"\x2475" "(2)" /* <U2475> PARENTHESIZED DIGIT TWO */
-"\x2476" "(3)" /* <U2476> PARENTHESIZED DIGIT THREE */
-"\x2477" "(4)" /* <U2477> PARENTHESIZED DIGIT FOUR */
-"\x2478" "(5)" /* <U2478> PARENTHESIZED DIGIT FIVE */
-"\x2479" "(6)" /* <U2479> PARENTHESIZED DIGIT SIX */
-"\x247a" "(7)" /* <U247A> PARENTHESIZED DIGIT SEVEN */
-"\x247b" "(8)" /* <U247B> PARENTHESIZED DIGIT EIGHT */
-"\x247c" "(9)" /* <U247C> PARENTHESIZED DIGIT NINE */
-"\x247d" "(10)" /* <U247D> PARENTHESIZED NUMBER TEN */
-"\x247e" "(11)" /* <U247E> PARENTHESIZED NUMBER ELEVEN */
-"\x247f" "(12)" /* <U247F> PARENTHESIZED NUMBER TWELVE */
-"\x2480" "(13)" /* <U2480> PARENTHESIZED NUMBER THIRTEEN */
-"\x2481" "(14)" /* <U2481> PARENTHESIZED NUMBER FOURTEEN */
-"\x2482" "(15)" /* <U2482> PARENTHESIZED NUMBER FIFTEEN */
-"\x2483" "(16)" /* <U2483> PARENTHESIZED NUMBER SIXTEEN */
-"\x2484" "(17)" /* <U2484> PARENTHESIZED NUMBER SEVENTEEN */
-"\x2485" "(18)" /* <U2485> PARENTHESIZED NUMBER EIGHTEEN */
-"\x2486" "(19)" /* <U2486> PARENTHESIZED NUMBER NINETEEN */
-"\x2487" "(20)" /* <U2487> PARENTHESIZED NUMBER TWENTY */
-"\x2488" "1." /* <U2488> DIGIT ONE FULL STOP */
-"\x2489" "2." /* <U2489> DIGIT TWO FULL STOP */
-"\x248a" "3." /* <U248A> DIGIT THREE FULL STOP */
-"\x248b" "4." /* <U248B> DIGIT FOUR FULL STOP */
-"\x248c" "5." /* <U248C> DIGIT FIVE FULL STOP */
-"\x248d" "6." /* <U248D> DIGIT SIX FULL STOP */
-"\x248e" "7." /* <U248E> DIGIT SEVEN FULL STOP */
-"\x248f" "8." /* <U248F> DIGIT EIGHT FULL STOP */
-"\x2490" "9." /* <U2490> DIGIT NINE FULL STOP */
-"\x2491" "10." /* <U2491> NUMBER TEN FULL STOP */
-"\x2492" "11." /* <U2492> NUMBER ELEVEN FULL STOP */
-"\x2493" "12." /* <U2493> NUMBER TWELVE FULL STOP */
-"\x2494" "13." /* <U2494> NUMBER THIRTEEN FULL STOP */
-"\x2495" "14." /* <U2495> NUMBER FOURTEEN FULL STOP */
-"\x2496" "15." /* <U2496> NUMBER FIFTEEN FULL STOP */
-"\x2497" "16." /* <U2497> NUMBER SIXTEEN FULL STOP */
-"\x2498" "17." /* <U2498> NUMBER SEVENTEEN FULL STOP */
-"\x2499" "18." /* <U2499> NUMBER EIGHTEEN FULL STOP */
-"\x249a" "19." /* <U249A> NUMBER NINETEEN FULL STOP */
-"\x249b" "20." /* <U249B> NUMBER TWENTY FULL STOP */
-"\x249c" "(a)" /* <U249C> PARENTHESIZED LATIN SMALL LETTER A */
-"\x249d" "(b)" /* <U249D> PARENTHESIZED LATIN SMALL LETTER B */
-"\x249e" "(c)" /* <U249E> PARENTHESIZED LATIN SMALL LETTER C */
-"\x249f" "(d)" /* <U249F> PARENTHESIZED LATIN SMALL LETTER D */
-"\x24a0" "(e)" /* <U24A0> PARENTHESIZED LATIN SMALL LETTER E */
-"\x24a1" "(f)" /* <U24A1> PARENTHESIZED LATIN SMALL LETTER F */
-"\x24a2" "(g)" /* <U24A2> PARENTHESIZED LATIN SMALL LETTER G */
-"\x24a3" "(h)" /* <U24A3> PARENTHESIZED LATIN SMALL LETTER H */
-"\x24a4" "(i)" /* <U24A4> PARENTHESIZED LATIN SMALL LETTER I */
-"\x24a5" "(j)" /* <U24A5> PARENTHESIZED LATIN SMALL LETTER J */
-"\x24a6" "(k)" /* <U24A6> PARENTHESIZED LATIN SMALL LETTER K */
-"\x24a7" "(l)" /* <U24A7> PARENTHESIZED LATIN SMALL LETTER L */
-"\x24a8" "(m)" /* <U24A8> PARENTHESIZED LATIN SMALL LETTER M */
-"\x24a9" "(n)" /* <U24A9> PARENTHESIZED LATIN SMALL LETTER N */
-"\x24aa" "(o)" /* <U24AA> PARENTHESIZED LATIN SMALL LETTER O */
-"\x24ab" "(p)" /* <U24AB> PARENTHESIZED LATIN SMALL LETTER P */
-"\x24ac" "(q)" /* <U24AC> PARENTHESIZED LATIN SMALL LETTER Q */
-"\x24ad" "(r)" /* <U24AD> PARENTHESIZED LATIN SMALL LETTER R */
-"\x24ae" "(s)" /* <U24AE> PARENTHESIZED LATIN SMALL LETTER S */
-"\x24af" "(t)" /* <U24AF> PARENTHESIZED LATIN SMALL LETTER T */
-"\x24b0" "(u)" /* <U24B0> PARENTHESIZED LATIN SMALL LETTER U */
-"\x24b1" "(v)" /* <U24B1> PARENTHESIZED LATIN SMALL LETTER V */
-"\x24b2" "(w)" /* <U24B2> PARENTHESIZED LATIN SMALL LETTER W */
-"\x24b3" "(x)" /* <U24B3> PARENTHESIZED LATIN SMALL LETTER X */
-"\x24b4" "(y)" /* <U24B4> PARENTHESIZED LATIN SMALL LETTER Y */
-"\x24b5" "(z)" /* <U24B5> PARENTHESIZED LATIN SMALL LETTER Z */
-"\x24b6" "(A)" /* <U24B6> CIRCLED LATIN CAPITAL LETTER A */
-"\x24b7" "(B)" /* <U24B7> CIRCLED LATIN CAPITAL LETTER B */
-"\x24b8" "(C)" /* <U24B8> CIRCLED LATIN CAPITAL LETTER C */
-"\x24b9" "(D)" /* <U24B9> CIRCLED LATIN CAPITAL LETTER D */
-"\x24ba" "(E)" /* <U24BA> CIRCLED LATIN CAPITAL LETTER E */
-"\x24bb" "(F)" /* <U24BB> CIRCLED LATIN CAPITAL LETTER F */
-"\x24bc" "(G)" /* <U24BC> CIRCLED LATIN CAPITAL LETTER G */
-"\x24bd" "(H)" /* <U24BD> CIRCLED LATIN CAPITAL LETTER H */
-"\x24be" "(I)" /* <U24BE> CIRCLED LATIN CAPITAL LETTER I */
-"\x24bf" "(J)" /* <U24BF> CIRCLED LATIN CAPITAL LETTER J */
-"\x24c0" "(K)" /* <U24C0> CIRCLED LATIN CAPITAL LETTER K */
-"\x24c1" "(L)" /* <U24C1> CIRCLED LATIN CAPITAL LETTER L */
-"\x24c2" "(M)" /* <U24C2> CIRCLED LATIN CAPITAL LETTER M */
-"\x24c3" "(N)" /* <U24C3> CIRCLED LATIN CAPITAL LETTER N */
-"\x24c4" "(O)" /* <U24C4> CIRCLED LATIN CAPITAL LETTER O */
-"\x24c5" "(P)" /* <U24C5> CIRCLED LATIN CAPITAL LETTER P */
-"\x24c6" "(Q)" /* <U24C6> CIRCLED LATIN CAPITAL LETTER Q */
-"\x24c7" "(R)" /* <U24C7> CIRCLED LATIN CAPITAL LETTER R */
-"\x24c8" "(S)" /* <U24C8> CIRCLED LATIN CAPITAL LETTER S */
-"\x24c9" "(T)" /* <U24C9> CIRCLED LATIN CAPITAL LETTER T */
-"\x24ca" "(U)" /* <U24CA> CIRCLED LATIN CAPITAL LETTER U */
-"\x24cb" "(V)" /* <U24CB> CIRCLED LATIN CAPITAL LETTER V */
-"\x24cc" "(W)" /* <U24CC> CIRCLED LATIN CAPITAL LETTER W */
-"\x24cd" "(X)" /* <U24CD> CIRCLED LATIN CAPITAL LETTER X */
-"\x24ce" "(Y)" /* <U24CE> CIRCLED LATIN CAPITAL LETTER Y */
-"\x24cf" "(Z)" /* <U24CF> CIRCLED LATIN CAPITAL LETTER Z */
-"\x24d0" "(a)" /* <U24D0> CIRCLED LATIN SMALL LETTER A */
-"\x24d1" "(b)" /* <U24D1> CIRCLED LATIN SMALL LETTER B */
-"\x24d2" "(c)" /* <U24D2> CIRCLED LATIN SMALL LETTER C */
-"\x24d3" "(d)" /* <U24D3> CIRCLED LATIN SMALL LETTER D */
-"\x24d4" "(e)" /* <U24D4> CIRCLED LATIN SMALL LETTER E */
-"\x24d5" "(f)" /* <U24D5> CIRCLED LATIN SMALL LETTER F */
-"\x24d6" "(g)" /* <U24D6> CIRCLED LATIN SMALL LETTER G */
-"\x24d7" "(h)" /* <U24D7> CIRCLED LATIN SMALL LETTER H */
-"\x24d8" "(i)" /* <U24D8> CIRCLED LATIN SMALL LETTER I */
-"\x24d9" "(j)" /* <U24D9> CIRCLED LATIN SMALL LETTER J */
-"\x24da" "(k)" /* <U24DA> CIRCLED LATIN SMALL LETTER K */
-"\x24db" "(l)" /* <U24DB> CIRCLED LATIN SMALL LETTER L */
-"\x24dc" "(m)" /* <U24DC> CIRCLED LATIN SMALL LETTER M */
-"\x24dd" "(n)" /* <U24DD> CIRCLED LATIN SMALL LETTER N */
-"\x24de" "(o)" /* <U24DE> CIRCLED LATIN SMALL LETTER O */
-"\x24df" "(p)" /* <U24DF> CIRCLED LATIN SMALL LETTER P */
-"\x24e0" "(q)" /* <U24E0> CIRCLED LATIN SMALL LETTER Q */
-"\x24e1" "(r)" /* <U24E1> CIRCLED LATIN SMALL LETTER R */
-"\x24e2" "(s)" /* <U24E2> CIRCLED LATIN SMALL LETTER S */
-"\x24e3" "(t)" /* <U24E3> CIRCLED LATIN SMALL LETTER T */
-"\x24e4" "(u)" /* <U24E4> CIRCLED LATIN SMALL LETTER U */
-"\x24e5" "(v)" /* <U24E5> CIRCLED LATIN SMALL LETTER V */
-"\x24e6" "(w)" /* <U24E6> CIRCLED LATIN SMALL LETTER W */
-"\x24e7" "(x)" /* <U24E7> CIRCLED LATIN SMALL LETTER X */
-"\x24e8" "(y)" /* <U24E8> CIRCLED LATIN SMALL LETTER Y */
-"\x24e9" "(z)" /* <U24E9> CIRCLED LATIN SMALL LETTER Z */
-"\x24ea" "(0)" /* <U24EA> CIRCLED DIGIT ZERO */
-"\x2500" "-" /* <U2500> BOX DRAWINGS LIGHT HORIZONTAL */
-"\x2502" "|" /* <U2502> BOX DRAWINGS LIGHT VERTICAL */
-"\x250c" "+" /* <U250C> BOX DRAWINGS LIGHT DOWN AND RIGHT */
-"\x2510" "+" /* <U2510> BOX DRAWINGS LIGHT DOWN AND LEFT */
-"\x2514" "+" /* <U2514> BOX DRAWINGS LIGHT UP AND RIGHT */
-"\x2518" "+" /* <U2518> BOX DRAWINGS LIGHT UP AND LEFT */
-"\x251c" "+" /* <U251C> BOX DRAWINGS LIGHT VERTICAL AND RIGHT */
-"\x2524" "+" /* <U2524> BOX DRAWINGS LIGHT VERTICAL AND LEFT */
-"\x252c" "+" /* <U252C> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL */
-"\x2534" "+" /* <U2534> BOX DRAWINGS LIGHT UP AND HORIZONTAL */
-"\x253c" "+" /* <U253C> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL */
-"\x25e6" "o" /* <U25E6> WHITE BULLET */
-"\x2a74" "::=" /* <U2A74> DOUBLE COLON EQUAL */
-"\x2a75" "==" /* <U2A75> TWO CONSECUTIVE EQUALS SIGNS */
-"\x2a76" "===" /* <U2A76> THREE CONSECUTIVE EQUALS SIGNS */
-"\x3000" " " /* <U3000> IDEOGRAPHIC SPACE */
-"\x30a0" "=" /* <U30A0> KATAKANA-HIRAGANA DOUBLE HYPHEN */
-"\x3251" "(21)" /* <U3251> CIRCLED NUMBER TWENTY ONE */
-"\x3252" "(22)" /* <U3252> CIRCLED NUMBER TWENTY TWO */
-"\x3253" "(23)" /* <U3253> CIRCLED NUMBER TWENTY THREE */
-"\x3254" "(24)" /* <U3254> CIRCLED NUMBER TWENTY FOUR */
-"\x3255" "(25)" /* <U3255> CIRCLED NUMBER TWENTY FIVE */
-"\x3256" "(26)" /* <U3256> CIRCLED NUMBER TWENTY SIX */
-"\x3257" "(27)" /* <U3257> CIRCLED NUMBER TWENTY SEVEN */
-"\x3258" "(28)" /* <U3258> CIRCLED NUMBER TWENTY EIGHT */
-"\x3259" "(29)" /* <U3259> CIRCLED NUMBER TWENTY NINE */
-"\x325a" "(30)" /* <U325A> CIRCLED NUMBER THIRTY */
-"\x325b" "(31)" /* <U325B> CIRCLED NUMBER THIRTY ONE */
-"\x325c" "(32)" /* <U325C> CIRCLED NUMBER THIRTY TWO */
-"\x325d" "(33)" /* <U325D> CIRCLED NUMBER THIRTY THREE */
-"\x325e" "(34)" /* <U325E> CIRCLED NUMBER THIRTY FOUR */
-"\x325f" "(35)" /* <U325F> CIRCLED NUMBER THIRTY FIVE */
-"\x32b1" "(36)" /* <U32B1> CIRCLED NUMBER THIRTY SIX */
-"\x32b2" "(37)" /* <U32B2> CIRCLED NUMBER THIRTY SEVEN */
-"\x32b3" "(38)" /* <U32B3> CIRCLED NUMBER THIRTY EIGHT */
-"\x32b4" "(39)" /* <U32B4> CIRCLED NUMBER THIRTY NINE */
-"\x32b5" "(40)" /* <U32B5> CIRCLED NUMBER FORTY */
-"\x32b6" "(41)" /* <U32B6> CIRCLED NUMBER FORTY ONE */
-"\x32b7" "(42)" /* <U32B7> CIRCLED NUMBER FORTY TWO */
-"\x32b8" "(43)" /* <U32B8> CIRCLED NUMBER FORTY THREE */
-"\x32b9" "(44)" /* <U32B9> CIRCLED NUMBER FORTY FOUR */
-"\x32ba" "(45)" /* <U32BA> CIRCLED NUMBER FORTY FIVE */
-"\x32bb" "(46)" /* <U32BB> CIRCLED NUMBER FORTY SIX */
-"\x32bc" "(47)" /* <U32BC> CIRCLED NUMBER FORTY SEVEN */
-"\x32bd" "(48)" /* <U32BD> CIRCLED NUMBER FORTY EIGHT */
-"\x32be" "(49)" /* <U32BE> CIRCLED NUMBER FORTY NINE */
-"\x32bf" "(50)" /* <U32BF> CIRCLED NUMBER FIFTY */
-"\x3371" "hPa" /* <U3371> SQUARE HPA */
-"\x3372" "da" /* <U3372> SQUARE DA */
-"\x3373" "AU" /* <U3373> SQUARE AU */
-"\x3374" "bar" /* <U3374> SQUARE BAR */
-"\x3375" "oV" /* <U3375> SQUARE OV */
-"\x3376" "pc" /* <U3376> SQUARE PC */
-"\x3380" "pA" /* <U3380> SQUARE PA AMPS */
-"\x3381" "nA" /* <U3381> SQUARE NA */
-"\x3382" "uA" /* <U3382> SQUARE MU A */
-"\x3383" "mA" /* <U3383> SQUARE MA */
-"\x3384" "kA" /* <U3384> SQUARE KA */
-"\x3385" "KB" /* <U3385> SQUARE KB */
-"\x3386" "MB" /* <U3386> SQUARE MB */
-"\x3387" "GB" /* <U3387> SQUARE GB */
-"\x3388" "cal" /* <U3388> SQUARE CAL */
-"\x3389" "kcal" /* <U3389> SQUARE KCAL */
-"\x338a" "pF" /* <U338A> SQUARE PF */
-"\x338b" "nF" /* <U338B> SQUARE NF */
-"\x338c" "uF" /* <U338C> SQUARE MU F */
-"\x338d" "ug" /* <U338D> SQUARE MU G */
-"\x338e" "mg" /* <U338E> SQUARE MG */
-"\x338f" "kg" /* <U338F> SQUARE KG */
-"\x3390" "Hz" /* <U3390> SQUARE HZ */
-"\x3391" "kHz" /* <U3391> SQUARE KHZ */
-"\x3392" "MHz" /* <U3392> SQUARE MHZ */
-"\x3393" "GHz" /* <U3393> SQUARE GHZ */
-"\x3394" "THz" /* <U3394> SQUARE THZ */
-"\x3395" "ul" /* <U3395> SQUARE MU L */
-"\x3396" "ml" /* <U3396> SQUARE ML */
-"\x3397" "dl" /* <U3397> SQUARE DL */
-"\x3398" "kl" /* <U3398> SQUARE KL */
-"\x3399" "fm" /* <U3399> SQUARE FM */
-"\x339a" "nm" /* <U339A> SQUARE NM */
-"\x339b" "um" /* <U339B> SQUARE MU M */
-"\x339c" "mm" /* <U339C> SQUARE MM */
-"\x339d" "cm" /* <U339D> SQUARE CM */
-"\x339e" "km" /* <U339E> SQUARE KM */
-"\x339f" "mm^2" /* <U339F> SQUARE MM SQUARED */
-"\x33a0" "cm^2" /* <U33A0> SQUARE CM SQUARED */
-"\x33a1" "m^2" /* <U33A1> SQUARE M SQUARED */
-"\x33a2" "km^2" /* <U33A2> SQUARE KM SQUARED */
-"\x33a3" "mm^3" /* <U33A3> SQUARE MM CUBED */
-"\x33a4" "cm^3" /* <U33A4> SQUARE CM CUBED */
-"\x33a5" "m^3" /* <U33A5> SQUARE M CUBED */
-"\x33a6" "km^3" /* <U33A6> SQUARE KM CUBED */
-"\x33a7" "m/s" /* <U33A7> SQUARE M OVER S */
-"\x33a8" "m/s^2" /* <U33A8> SQUARE M OVER S SQUARED */
-"\x33a9" "Pa" /* <U33A9> SQUARE PA */
-"\x33aa" "kPa" /* <U33AA> SQUARE KPA */
-"\x33ab" "MPa" /* <U33AB> SQUARE MPA */
-"\x33ac" "GPa" /* <U33AC> SQUARE GPA */
-"\x33ad" "rad" /* <U33AD> SQUARE RAD */
-"\x33ae" "rad/s" /* <U33AE> SQUARE RAD OVER S */
-"\x33af" "rad/s^2" /* <U33AF> SQUARE RAD OVER S SQUARED */
-"\x33b0" "ps" /* <U33B0> SQUARE PS */
-"\x33b1" "ns" /* <U33B1> SQUARE NS */
-"\x33b2" "us" /* <U33B2> SQUARE MU S */
-"\x33b3" "ms" /* <U33B3> SQUARE MS */
-"\x33b4" "pV" /* <U33B4> SQUARE PV */
-"\x33b5" "nV" /* <U33B5> SQUARE NV */
-"\x33b6" "uV" /* <U33B6> SQUARE MU V */
-"\x33b7" "mV" /* <U33B7> SQUARE MV */
-"\x33b8" "kV" /* <U33B8> SQUARE KV */
-"\x33b9" "MV" /* <U33B9> SQUARE MV MEGA */
-"\x33ba" "pW" /* <U33BA> SQUARE PW */
-"\x33bb" "nW" /* <U33BB> SQUARE NW */
-"\x33bc" "uW" /* <U33BC> SQUARE MU W */
-"\x33bd" "mW" /* <U33BD> SQUARE MW */
-"\x33be" "kW" /* <U33BE> SQUARE KW */
-"\x33bf" "MW" /* <U33BF> SQUARE MW MEGA */
-"\x33c2" "a.m." /* <U33C2> SQUARE AM */
-"\x33c3" "Bq" /* <U33C3> SQUARE BQ */
-"\x33c4" "cc" /* <U33C4> SQUARE CC */
-"\x33c5" "cd" /* <U33C5> SQUARE CD */
-"\x33c6" "C/kg" /* <U33C6> SQUARE C OVER KG */
-"\x33c7" "Co." /* <U33C7> SQUARE CO */
-"\x33c8" "dB" /* <U33C8> SQUARE DB */
-"\x33c9" "Gy" /* <U33C9> SQUARE GY */
-"\x33ca" "ha" /* <U33CA> SQUARE HA */
-"\x33cb" "HP" /* <U33CB> SQUARE HP */
-"\x33cc" "in" /* <U33CC> SQUARE IN */
-"\x33cd" "KK" /* <U33CD> SQUARE KK */
-"\x33ce" "KM" /* <U33CE> SQUARE KM CAPITAL */
-"\x33cf" "kt" /* <U33CF> SQUARE KT */
-"\x33d0" "lm" /* <U33D0> SQUARE LM */
-"\x33d1" "ln" /* <U33D1> SQUARE LN */
-"\x33d2" "log" /* <U33D2> SQUARE LOG */
-"\x33d3" "lx" /* <U33D3> SQUARE LX */
-"\x33d4" "mb" /* <U33D4> SQUARE MB SMALL */
-"\x33d5" "mil" /* <U33D5> SQUARE MIL */
-"\x33d6" "mol" /* <U33D6> SQUARE MOL */
-"\x33d7" "PH" /* <U33D7> SQUARE PH */
-"\x33d8" "p.m." /* <U33D8> SQUARE PM */
-"\x33d9" "PPM" /* <U33D9> SQUARE PPM */
-"\x33da" "PR" /* <U33DA> SQUARE PR */
-"\x33db" "sr" /* <U33DB> SQUARE SR */
-"\x33dc" "Sv" /* <U33DC> SQUARE SV */
-"\x33dd" "Wb" /* <U33DD> SQUARE WB */
-"\xfb00" "ff" /* <UFB00> LATIN SMALL LIGATURE FF */
-"\xfb01" "fi" /* <UFB01> LATIN SMALL LIGATURE FI */
-"\xfb02" "fl" /* <UFB02> LATIN SMALL LIGATURE FL */
-"\xfb03" "ffi" /* <UFB03> LATIN SMALL LIGATURE FFI */
-"\xfb04" "ffl" /* <UFB04> LATIN SMALL LIGATURE FFL */
-"\xfb06" "st" /* <UFB06> LATIN SMALL LIGATURE ST */
-"\xfb29" "+" /* <UFB29> HEBREW LETTER ALTERNATIVE PLUS SIGN */
-"\xfe00" "" /* VARIATION SELECTOR-1 */
-"\xfe01" "" /* VARIATION SELECTOR-2 */
-"\xfe02" "" /* VARIATION SELECTOR-3 */
-"\xfe03" "" /* VARIATION SELECTOR-4 */
-"\xfe04" "" /* VARIATION SELECTOR-5 */
-"\xfe05" "" /* VARIATION SELECTOR-6 */
-"\xfe06" "" /* VARIATION SELECTOR-7 */
-"\xfe07" "" /* VARIATION SELECTOR-8 */
-"\xfe08" "" /* VARIATION SELECTOR-9 */
-"\xfe09" "" /* VARIATION SELECTOR-10 */
-"\xfe0a" "" /* VARIATION SELECTOR-11 */
-"\xfe0b" "" /* VARIATION SELECTOR-12 */
-"\xfe0c" "" /* VARIATION SELECTOR-13 */
-"\xfe0d" "" /* VARIATION SELECTOR-14 */
-"\xfe0e" "" /* VARIATION SELECTOR-15 */
-"\xfe0f" "" /* VARIATION SELECTOR-16 */
-"\xfe4d" "_" /* <UFE4D> DASHED LOW LINE */
-"\xfe4e" "_" /* <UFE4E> CENTRELINE LOW LINE */
-"\xfe4f" "_" /* <UFE4F> WAVY LOW LINE */
-"\xfe50" "," /* <UFE50> SMALL COMMA */
-"\xfe52" "." /* <UFE52> SMALL FULL STOP */
-"\xfe54" ";" /* <UFE54> SMALL SEMICOLON */
-"\xfe55" ":" /* <UFE55> SMALL COLON */
-"\xfe56" "?" /* <UFE56> SMALL QUESTION MARK */
-"\xfe57" "!" /* <UFE57> SMALL EXCLAMATION MARK */
-"\xfe59" "(" /* <UFE59> SMALL LEFT PARENTHESIS */
-"\xfe5a" ")" /* <UFE5A> SMALL RIGHT PARENTHESIS */
-"\xfe5b" "{" /* <UFE5B> SMALL LEFT CURLY BRACKET */
-"\xfe5c" "}" /* <UFE5C> SMALL RIGHT CURLY BRACKET */
-"\xfe5f" "#" /* <UFE5F> SMALL NUMBER SIGN */
-"\xfe60" "&" /* <UFE60> SMALL AMPERSAND */
-"\xfe61" "*" /* <UFE61> SMALL ASTERISK */
-"\xfe62" "+" /* <UFE62> SMALL PLUS SIGN */
-"\xfe63" "-" /* <UFE63> SMALL HYPHEN-MINUS */
-"\xfe64" "<" /* <UFE64> SMALL LESS-THAN SIGN */
-"\xfe65" ">" /* <UFE65> SMALL GREATER-THAN SIGN */
-"\xfe66" "=" /* <UFE66> SMALL EQUALS SIGN */
-"\xfe68" "\\" /* <UFE68> SMALL REVERSE SOLIDUS */
-"\xfe69" "$" /* <UFE69> SMALL DOLLAR SIGN */
-"\xfe6a" "%" /* <UFE6A> SMALL PERCENT SIGN */
-"\xfe6b" "@" /* <UFE6B> SMALL COMMERCIAL AT */
-"\xfeff" "" /* <UFEFF> ZERO WIDTH NO-BREAK SPACE */
-"\xff01" "!" /* <UFF01> FULLWIDTH EXCLAMATION MARK */
-"\xff02" "\"" /* <UFF02> FULLWIDTH QUOTATION MARK */
-"\xff03" "#" /* <UFF03> FULLWIDTH NUMBER SIGN */
-"\xff04" "$" /* <UFF04> FULLWIDTH DOLLAR SIGN */
-"\xff05" "%" /* <UFF05> FULLWIDTH PERCENT SIGN */
-"\xff06" "&" /* <UFF06> FULLWIDTH AMPERSAND */
-"\xff07" "'" /* <UFF07> FULLWIDTH APOSTROPHE */
-"\xff08" "(" /* <UFF08> FULLWIDTH LEFT PARENTHESIS */
-"\xff09" ")" /* <UFF09> FULLWIDTH RIGHT PARENTHESIS */
-"\xff0a" "*" /* <UFF0A> FULLWIDTH ASTERISK */
-"\xff0b" "+" /* <UFF0B> FULLWIDTH PLUS SIGN */
-"\xff0c" "," /* <UFF0C> FULLWIDTH COMMA */
-"\xff0d" "-" /* <UFF0D> FULLWIDTH HYPHEN-MINUS */
-"\xff0e" "." /* <UFF0E> FULLWIDTH FULL STOP */
-"\xff0f" "/" /* <UFF0F> FULLWIDTH SOLIDUS */
-"\xff10" "0" /* <UFF10> FULLWIDTH DIGIT ZERO */
-"\xff11" "1" /* <UFF11> FULLWIDTH DIGIT ONE */
-"\xff12" "2" /* <UFF12> FULLWIDTH DIGIT TWO */
-"\xff13" "3" /* <UFF13> FULLWIDTH DIGIT THREE */
-"\xff14" "4" /* <UFF14> FULLWIDTH DIGIT FOUR */
-"\xff15" "5" /* <UFF15> FULLWIDTH DIGIT FIVE */
-"\xff16" "6" /* <UFF16> FULLWIDTH DIGIT SIX */
-"\xff17" "7" /* <UFF17> FULLWIDTH DIGIT SEVEN */
-"\xff18" "8" /* <UFF18> FULLWIDTH DIGIT EIGHT */
-"\xff19" "9" /* <UFF19> FULLWIDTH DIGIT NINE */
-"\xff1a" ":" /* <UFF1A> FULLWIDTH COLON */
-"\xff1b" ";" /* <UFF1B> FULLWIDTH SEMICOLON */
-"\xff1c" "<" /* <UFF1C> FULLWIDTH LESS-THAN SIGN */
-"\xff1d" "=" /* <UFF1D> FULLWIDTH EQUALS SIGN */
-"\xff1e" ">" /* <UFF1E> FULLWIDTH GREATER-THAN SIGN */
-"\xff1f" "?" /* <UFF1F> FULLWIDTH QUESTION MARK */
-"\xff20" "@" /* <UFF20> FULLWIDTH COMMERCIAL AT */
-"\xff21" "A" /* <UFF21> FULLWIDTH LATIN CAPITAL LETTER A */
-"\xff22" "B" /* <UFF22> FULLWIDTH LATIN CAPITAL LETTER B */
-"\xff23" "C" /* <UFF23> FULLWIDTH LATIN CAPITAL LETTER C */
-"\xff24" "D" /* <UFF24> FULLWIDTH LATIN CAPITAL LETTER D */
-"\xff25" "E" /* <UFF25> FULLWIDTH LATIN CAPITAL LETTER E */
-"\xff26" "F" /* <UFF26> FULLWIDTH LATIN CAPITAL LETTER F */
-"\xff27" "G" /* <UFF27> FULLWIDTH LATIN CAPITAL LETTER G */
-"\xff28" "H" /* <UFF28> FULLWIDTH LATIN CAPITAL LETTER H */
-"\xff29" "I" /* <UFF29> FULLWIDTH LATIN CAPITAL LETTER I */
-"\xff2a" "J" /* <UFF2A> FULLWIDTH LATIN CAPITAL LETTER J */
-"\xff2b" "K" /* <UFF2B> FULLWIDTH LATIN CAPITAL LETTER K */
-"\xff2c" "L" /* <UFF2C> FULLWIDTH LATIN CAPITAL LETTER L */
-"\xff2d" "M" /* <UFF2D> FULLWIDTH LATIN CAPITAL LETTER M */
-"\xff2e" "N" /* <UFF2E> FULLWIDTH LATIN CAPITAL LETTER N */
-"\xff2f" "O" /* <UFF2F> FULLWIDTH LATIN CAPITAL LETTER O */
-"\xff30" "P" /* <UFF30> FULLWIDTH LATIN CAPITAL LETTER P */
-"\xff31" "Q" /* <UFF31> FULLWIDTH LATIN CAPITAL LETTER Q */
-"\xff32" "R" /* <UFF32> FULLWIDTH LATIN CAPITAL LETTER R */
-"\xff33" "S" /* <UFF33> FULLWIDTH LATIN CAPITAL LETTER S */
-"\xff34" "T" /* <UFF34> FULLWIDTH LATIN CAPITAL LETTER T */
-"\xff35" "U" /* <UFF35> FULLWIDTH LATIN CAPITAL LETTER U */
-"\xff36" "V" /* <UFF36> FULLWIDTH LATIN CAPITAL LETTER V */
-"\xff37" "W" /* <UFF37> FULLWIDTH LATIN CAPITAL LETTER W */
-"\xff38" "X" /* <UFF38> FULLWIDTH LATIN CAPITAL LETTER X */
-"\xff39" "Y" /* <UFF39> FULLWIDTH LATIN CAPITAL LETTER Y */
-"\xff3a" "Z" /* <UFF3A> FULLWIDTH LATIN CAPITAL LETTER Z */
-"\xff3b" "[" /* <UFF3B> FULLWIDTH LEFT SQUARE BRACKET */
-"\xff3c" "\\" /* <UFF3C> FULLWIDTH REVERSE SOLIDUS */
-"\xff3d" "]" /* <UFF3D> FULLWIDTH RIGHT SQUARE BRACKET */
-"\xff3e" "^" /* <UFF3E> FULLWIDTH CIRCUMFLEX ACCENT */
-"\xff3f" "_" /* <UFF3F> FULLWIDTH LOW LINE */
-"\xff40" "`" /* <UFF40> FULLWIDTH GRAVE ACCENT */
-"\xff41" "a" /* <UFF41> FULLWIDTH LATIN SMALL LETTER A */
-"\xff42" "b" /* <UFF42> FULLWIDTH LATIN SMALL LETTER B */
-"\xff43" "c" /* <UFF43> FULLWIDTH LATIN SMALL LETTER C */
-"\xff44" "d" /* <UFF44> FULLWIDTH LATIN SMALL LETTER D */
-"\xff45" "e" /* <UFF45> FULLWIDTH LATIN SMALL LETTER E */
-"\xff46" "f" /* <UFF46> FULLWIDTH LATIN SMALL LETTER F */
-"\xff47" "g" /* <UFF47> FULLWIDTH LATIN SMALL LETTER G */
-"\xff48" "h" /* <UFF48> FULLWIDTH LATIN SMALL LETTER H */
-"\xff49" "i" /* <UFF49> FULLWIDTH LATIN SMALL LETTER I */
-"\xff4a" "j" /* <UFF4A> FULLWIDTH LATIN SMALL LETTER J */
-"\xff4b" "k" /* <UFF4B> FULLWIDTH LATIN SMALL LETTER K */
-"\xff4c" "l" /* <UFF4C> FULLWIDTH LATIN SMALL LETTER L */
-"\xff4d" "m" /* <UFF4D> FULLWIDTH LATIN SMALL LETTER M */
-"\xff4e" "n" /* <UFF4E> FULLWIDTH LATIN SMALL LETTER N */
-"\xff4f" "o" /* <UFF4F> FULLWIDTH LATIN SMALL LETTER O */
-"\xff50" "p" /* <UFF50> FULLWIDTH LATIN SMALL LETTER P */
-"\xff51" "q" /* <UFF51> FULLWIDTH LATIN SMALL LETTER Q */
-"\xff52" "r" /* <UFF52> FULLWIDTH LATIN SMALL LETTER R */
-"\xff53" "s" /* <UFF53> FULLWIDTH LATIN SMALL LETTER S */
-"\xff54" "t" /* <UFF54> FULLWIDTH LATIN SMALL LETTER T */
-"\xff55" "u" /* <UFF55> FULLWIDTH LATIN SMALL LETTER U */
-"\xff56" "v" /* <UFF56> FULLWIDTH LATIN SMALL LETTER V */
-"\xff57" "w" /* <UFF57> FULLWIDTH LATIN SMALL LETTER W */
-"\xff58" "x" /* <UFF58> FULLWIDTH LATIN SMALL LETTER X */
-"\xff59" "y" /* <UFF59> FULLWIDTH LATIN SMALL LETTER Y */
-"\xff5a" "z" /* <UFF5A> FULLWIDTH LATIN SMALL LETTER Z */
-"\xff5b" "{" /* <UFF5B> FULLWIDTH LEFT CURLY BRACKET */
-"\xff5c" "|" /* <UFF5C> FULLWIDTH VERTICAL LINE */
-"\xff5d" "}" /* <UFF5D> FULLWIDTH RIGHT CURLY BRACKET */
-"\xff5e" "~" /* <UFF5E> FULLWIDTH TILDE */
-"\x0001d400" "A" /* <U0001D400> MATHEMATICAL BOLD CAPITAL A */
-"\x0001d401" "B" /* <U0001D401> MATHEMATICAL BOLD CAPITAL B */
-"\x0001d402" "C" /* <U0001D402> MATHEMATICAL BOLD CAPITAL C */
-"\x0001d403" "D" /* <U0001D403> MATHEMATICAL BOLD CAPITAL D */
-"\x0001d404" "E" /* <U0001D404> MATHEMATICAL BOLD CAPITAL E */
-"\x0001d405" "F" /* <U0001D405> MATHEMATICAL BOLD CAPITAL F */
-"\x0001d406" "G" /* <U0001D406> MATHEMATICAL BOLD CAPITAL G */
-"\x0001d407" "H" /* <U0001D407> MATHEMATICAL BOLD CAPITAL H */
-"\x0001d408" "I" /* <U0001D408> MATHEMATICAL BOLD CAPITAL I */
-"\x0001d409" "J" /* <U0001D409> MATHEMATICAL BOLD CAPITAL J */
-"\x0001d40a" "K" /* <U0001D40A> MATHEMATICAL BOLD CAPITAL K */
-"\x0001d40b" "L" /* <U0001D40B> MATHEMATICAL BOLD CAPITAL L */
-"\x0001d40c" "M" /* <U0001D40C> MATHEMATICAL BOLD CAPITAL M */
-"\x0001d40d" "N" /* <U0001D40D> MATHEMATICAL BOLD CAPITAL N */
-"\x0001d40e" "O" /* <U0001D40E> MATHEMATICAL BOLD CAPITAL O */
-"\x0001d40f" "P" /* <U0001D40F> MATHEMATICAL BOLD CAPITAL P */
-"\x0001d410" "Q" /* <U0001D410> MATHEMATICAL BOLD CAPITAL Q */
-"\x0001d411" "R" /* <U0001D411> MATHEMATICAL BOLD CAPITAL R */
-"\x0001d412" "S" /* <U0001D412> MATHEMATICAL BOLD CAPITAL S */
-"\x0001d413" "T" /* <U0001D413> MATHEMATICAL BOLD CAPITAL T */
-"\x0001d414" "U" /* <U0001D414> MATHEMATICAL BOLD CAPITAL U */
-"\x0001d415" "V" /* <U0001D415> MATHEMATICAL BOLD CAPITAL V */
-"\x0001d416" "W" /* <U0001D416> MATHEMATICAL BOLD CAPITAL W */
-"\x0001d417" "X" /* <U0001D417> MATHEMATICAL BOLD CAPITAL X */
-"\x0001d418" "Y" /* <U0001D418> MATHEMATICAL BOLD CAPITAL Y */
-"\x0001d419" "Z" /* <U0001D419> MATHEMATICAL BOLD CAPITAL Z */
-"\x0001d41a" "a" /* <U0001D41A> MATHEMATICAL BOLD SMALL A */
-"\x0001d41b" "b" /* <U0001D41B> MATHEMATICAL BOLD SMALL B */
-"\x0001d41c" "c" /* <U0001D41C> MATHEMATICAL BOLD SMALL C */
-"\x0001d41d" "d" /* <U0001D41D> MATHEMATICAL BOLD SMALL D */
-"\x0001d41e" "e" /* <U0001D41E> MATHEMATICAL BOLD SMALL E */
-"\x0001d41f" "f" /* <U0001D41F> MATHEMATICAL BOLD SMALL F */
-"\x0001d420" "g" /* <U0001D420> MATHEMATICAL BOLD SMALL G */
-"\x0001d421" "h" /* <U0001D421> MATHEMATICAL BOLD SMALL H */
-"\x0001d422" "i" /* <U0001D422> MATHEMATICAL BOLD SMALL I */
-"\x0001d423" "j" /* <U0001D423> MATHEMATICAL BOLD SMALL J */
-"\x0001d424" "k" /* <U0001D424> MATHEMATICAL BOLD SMALL K */
-"\x0001d425" "l" /* <U0001D425> MATHEMATICAL BOLD SMALL L */
-"\x0001d426" "m" /* <U0001D426> MATHEMATICAL BOLD SMALL M */
-"\x0001d427" "n" /* <U0001D427> MATHEMATICAL BOLD SMALL N */
-"\x0001d428" "o" /* <U0001D428> MATHEMATICAL BOLD SMALL O */
-"\x0001d429" "p" /* <U0001D429> MATHEMATICAL BOLD SMALL P */
-"\x0001d42a" "q" /* <U0001D42A> MATHEMATICAL BOLD SMALL Q */
-"\x0001d42b" "r" /* <U0001D42B> MATHEMATICAL BOLD SMALL R */
-"\x0001d42c" "s" /* <U0001D42C> MATHEMATICAL BOLD SMALL S */
-"\x0001d42d" "t" /* <U0001D42D> MATHEMATICAL BOLD SMALL T */
-"\x0001d42e" "u" /* <U0001D42E> MATHEMATICAL BOLD SMALL U */
-"\x0001d42f" "v" /* <U0001D42F> MATHEMATICAL BOLD SMALL V */
-"\x0001d430" "w" /* <U0001D430> MATHEMATICAL BOLD SMALL W */
-"\x0001d431" "x" /* <U0001D431> MATHEMATICAL BOLD SMALL X */
-"\x0001d432" "y" /* <U0001D432> MATHEMATICAL BOLD SMALL Y */
-"\x0001d433" "z" /* <U0001D433> MATHEMATICAL BOLD SMALL Z */
-"\x0001d434" "A" /* <U0001D434> MATHEMATICAL ITALIC CAPITAL A */
-"\x0001d435" "B" /* <U0001D435> MATHEMATICAL ITALIC CAPITAL B */
-"\x0001d436" "C" /* <U0001D436> MATHEMATICAL ITALIC CAPITAL C */
-"\x0001d437" "D" /* <U0001D437> MATHEMATICAL ITALIC CAPITAL D */
-"\x0001d438" "E" /* <U0001D438> MATHEMATICAL ITALIC CAPITAL E */
-"\x0001d439" "F" /* <U0001D439> MATHEMATICAL ITALIC CAPITAL F */
-"\x0001d43a" "G" /* <U0001D43A> MATHEMATICAL ITALIC CAPITAL G */
-"\x0001d43b" "H" /* <U0001D43B> MATHEMATICAL ITALIC CAPITAL H */
-"\x0001d43c" "I" /* <U0001D43C> MATHEMATICAL ITALIC CAPITAL I */
-"\x0001d43d" "J" /* <U0001D43D> MATHEMATICAL ITALIC CAPITAL J */
-"\x0001d43e" "K" /* <U0001D43E> MATHEMATICAL ITALIC CAPITAL K */
-"\x0001d43f" "L" /* <U0001D43F> MATHEMATICAL ITALIC CAPITAL L */
-"\x0001d440" "M" /* <U0001D440> MATHEMATICAL ITALIC CAPITAL M */
-"\x0001d441" "N" /* <U0001D441> MATHEMATICAL ITALIC CAPITAL N */
-"\x0001d442" "O" /* <U0001D442> MATHEMATICAL ITALIC CAPITAL O */
-"\x0001d443" "P" /* <U0001D443> MATHEMATICAL ITALIC CAPITAL P */
-"\x0001d444" "Q" /* <U0001D444> MATHEMATICAL ITALIC CAPITAL Q */
-"\x0001d445" "R" /* <U0001D445> MATHEMATICAL ITALIC CAPITAL R */
-"\x0001d446" "S" /* <U0001D446> MATHEMATICAL ITALIC CAPITAL S */
-"\x0001d447" "T" /* <U0001D447> MATHEMATICAL ITALIC CAPITAL T */
-"\x0001d448" "U" /* <U0001D448> MATHEMATICAL ITALIC CAPITAL U */
-"\x0001d449" "V" /* <U0001D449> MATHEMATICAL ITALIC CAPITAL V */
-"\x0001d44a" "W" /* <U0001D44A> MATHEMATICAL ITALIC CAPITAL W */
-"\x0001d44b" "X" /* <U0001D44B> MATHEMATICAL ITALIC CAPITAL X */
-"\x0001d44c" "Y" /* <U0001D44C> MATHEMATICAL ITALIC CAPITAL Y */
-"\x0001d44d" "Z" /* <U0001D44D> MATHEMATICAL ITALIC CAPITAL Z */
-"\x0001d44e" "a" /* <U0001D44E> MATHEMATICAL ITALIC SMALL A */
-"\x0001d44f" "b" /* <U0001D44F> MATHEMATICAL ITALIC SMALL B */
-"\x0001d450" "c" /* <U0001D450> MATHEMATICAL ITALIC SMALL C */
-"\x0001d451" "d" /* <U0001D451> MATHEMATICAL ITALIC SMALL D */
-"\x0001d452" "e" /* <U0001D452> MATHEMATICAL ITALIC SMALL E */
-"\x0001d453" "f" /* <U0001D453> MATHEMATICAL ITALIC SMALL F */
-"\x0001d454" "g" /* <U0001D454> MATHEMATICAL ITALIC SMALL G */
-"\x0001d456" "i" /* <U0001D456> MATHEMATICAL ITALIC SMALL I */
-"\x0001d457" "j" /* <U0001D457> MATHEMATICAL ITALIC SMALL J */
-"\x0001d458" "k" /* <U0001D458> MATHEMATICAL ITALIC SMALL K */
-"\x0001d459" "l" /* <U0001D459> MATHEMATICAL ITALIC SMALL L */
-"\x0001d45a" "m" /* <U0001D45A> MATHEMATICAL ITALIC SMALL M */
-"\x0001d45b" "n" /* <U0001D45B> MATHEMATICAL ITALIC SMALL N */
-"\x0001d45c" "o" /* <U0001D45C> MATHEMATICAL ITALIC SMALL O */
-"\x0001d45d" "p" /* <U0001D45D> MATHEMATICAL ITALIC SMALL P */
-"\x0001d45e" "q" /* <U0001D45E> MATHEMATICAL ITALIC SMALL Q */
-"\x0001d45f" "r" /* <U0001D45F> MATHEMATICAL ITALIC SMALL R */
-"\x0001d460" "s" /* <U0001D460> MATHEMATICAL ITALIC SMALL S */
-"\x0001d461" "t" /* <U0001D461> MATHEMATICAL ITALIC SMALL T */
-"\x0001d462" "u" /* <U0001D462> MATHEMATICAL ITALIC SMALL U */
-"\x0001d463" "v" /* <U0001D463> MATHEMATICAL ITALIC SMALL V */
-"\x0001d464" "w" /* <U0001D464> MATHEMATICAL ITALIC SMALL W */
-"\x0001d465" "x" /* <U0001D465> MATHEMATICAL ITALIC SMALL X */
-"\x0001d466" "y" /* <U0001D466> MATHEMATICAL ITALIC SMALL Y */
-"\x0001d467" "z" /* <U0001D467> MATHEMATICAL ITALIC SMALL Z */
-"\x0001d468" "A" /* <U0001D468> MATHEMATICAL BOLD ITALIC CAPITAL A */
-"\x0001d469" "B" /* <U0001D469> MATHEMATICAL BOLD ITALIC CAPITAL B */
-"\x0001d46a" "C" /* <U0001D46A> MATHEMATICAL BOLD ITALIC CAPITAL C */
-"\x0001d46b" "D" /* <U0001D46B> MATHEMATICAL BOLD ITALIC CAPITAL D */
-"\x0001d46c" "E" /* <U0001D46C> MATHEMATICAL BOLD ITALIC CAPITAL E */
-"\x0001d46d" "F" /* <U0001D46D> MATHEMATICAL BOLD ITALIC CAPITAL F */
-"\x0001d46e" "G" /* <U0001D46E> MATHEMATICAL BOLD ITALIC CAPITAL G */
-"\x0001d46f" "H" /* <U0001D46F> MATHEMATICAL BOLD ITALIC CAPITAL H */
-"\x0001d470" "I" /* <U0001D470> MATHEMATICAL BOLD ITALIC CAPITAL I */
-"\x0001d471" "J" /* <U0001D471> MATHEMATICAL BOLD ITALIC CAPITAL J */
-"\x0001d472" "K" /* <U0001D472> MATHEMATICAL BOLD ITALIC CAPITAL K */
-"\x0001d473" "L" /* <U0001D473> MATHEMATICAL BOLD ITALIC CAPITAL L */
-"\x0001d474" "M" /* <U0001D474> MATHEMATICAL BOLD ITALIC CAPITAL M */
-"\x0001d475" "N" /* <U0001D475> MATHEMATICAL BOLD ITALIC CAPITAL N */
-"\x0001d476" "O" /* <U0001D476> MATHEMATICAL BOLD ITALIC CAPITAL O */
-"\x0001d477" "P" /* <U0001D477> MATHEMATICAL BOLD ITALIC CAPITAL P */
-"\x0001d478" "Q" /* <U0001D478> MATHEMATICAL BOLD ITALIC CAPITAL Q */
-"\x0001d479" "R" /* <U0001D479> MATHEMATICAL BOLD ITALIC CAPITAL R */
-"\x0001d47a" "S" /* <U0001D47A> MATHEMATICAL BOLD ITALIC CAPITAL S */
-"\x0001d47b" "T" /* <U0001D47B> MATHEMATICAL BOLD ITALIC CAPITAL T */
-"\x0001d47c" "U" /* <U0001D47C> MATHEMATICAL BOLD ITALIC CAPITAL U */
-"\x0001d47d" "V" /* <U0001D47D> MATHEMATICAL BOLD ITALIC CAPITAL V */
-"\x0001d47e" "W" /* <U0001D47E> MATHEMATICAL BOLD ITALIC CAPITAL W */
-"\x0001d47f" "X" /* <U0001D47F> MATHEMATICAL BOLD ITALIC CAPITAL X */
-"\x0001d480" "Y" /* <U0001D480> MATHEMATICAL BOLD ITALIC CAPITAL Y */
-"\x0001d481" "Z" /* <U0001D481> MATHEMATICAL BOLD ITALIC CAPITAL Z */
-"\x0001d482" "a" /* <U0001D482> MATHEMATICAL BOLD ITALIC SMALL A */
-"\x0001d483" "b" /* <U0001D483> MATHEMATICAL BOLD ITALIC SMALL B */
-"\x0001d484" "c" /* <U0001D484> MATHEMATICAL BOLD ITALIC SMALL C */
-"\x0001d485" "d" /* <U0001D485> MATHEMATICAL BOLD ITALIC SMALL D */
-"\x0001d486" "e" /* <U0001D486> MATHEMATICAL BOLD ITALIC SMALL E */
-"\x0001d487" "f" /* <U0001D487> MATHEMATICAL BOLD ITALIC SMALL F */
-"\x0001d488" "g" /* <U0001D488> MATHEMATICAL BOLD ITALIC SMALL G */
-"\x0001d489" "h" /* <U0001D489> MATHEMATICAL BOLD ITALIC SMALL H */
-"\x0001d48a" "i" /* <U0001D48A> MATHEMATICAL BOLD ITALIC SMALL I */
-"\x0001d48b" "j" /* <U0001D48B> MATHEMATICAL BOLD ITALIC SMALL J */
-"\x0001d48c" "k" /* <U0001D48C> MATHEMATICAL BOLD ITALIC SMALL K */
-"\x0001d48d" "l" /* <U0001D48D> MATHEMATICAL BOLD ITALIC SMALL L */
-"\x0001d48e" "m" /* <U0001D48E> MATHEMATICAL BOLD ITALIC SMALL M */
-"\x0001d48f" "n" /* <U0001D48F> MATHEMATICAL BOLD ITALIC SMALL N */
-"\x0001d490" "o" /* <U0001D490> MATHEMATICAL BOLD ITALIC SMALL O */
-"\x0001d491" "p" /* <U0001D491> MATHEMATICAL BOLD ITALIC SMALL P */
-"\x0001d492" "q" /* <U0001D492> MATHEMATICAL BOLD ITALIC SMALL Q */
-"\x0001d493" "r" /* <U0001D493> MATHEMATICAL BOLD ITALIC SMALL R */
-"\x0001d494" "s" /* <U0001D494> MATHEMATICAL BOLD ITALIC SMALL S */
-"\x0001d495" "t" /* <U0001D495> MATHEMATICAL BOLD ITALIC SMALL T */
-"\x0001d496" "u" /* <U0001D496> MATHEMATICAL BOLD ITALIC SMALL U */
-"\x0001d497" "v" /* <U0001D497> MATHEMATICAL BOLD ITALIC SMALL V */
-"\x0001d498" "w" /* <U0001D498> MATHEMATICAL BOLD ITALIC SMALL W */
-"\x0001d499" "x" /* <U0001D499> MATHEMATICAL BOLD ITALIC SMALL X */
-"\x0001d49a" "y" /* <U0001D49A> MATHEMATICAL BOLD ITALIC SMALL Y */
-"\x0001d49b" "z" /* <U0001D49B> MATHEMATICAL BOLD ITALIC SMALL Z */
-"\x0001d49c" "A" /* <U0001D49C> MATHEMATICAL SCRIPT CAPITAL A */
-"\x0001d49e" "C" /* <U0001D49E> MATHEMATICAL SCRIPT CAPITAL C */
-"\x0001d49f" "D" /* <U0001D49F> MATHEMATICAL SCRIPT CAPITAL D */
-"\x0001d4a2" "G" /* <U0001D4A2> MATHEMATICAL SCRIPT CAPITAL G */
-"\x0001d4a5" "J" /* <U0001D4A5> MATHEMATICAL SCRIPT CAPITAL J */
-"\x0001d4a6" "K" /* <U0001D4A6> MATHEMATICAL SCRIPT CAPITAL K */
-"\x0001d4a9" "N" /* <U0001D4A9> MATHEMATICAL SCRIPT CAPITAL N */
-"\x0001d4aa" "O" /* <U0001D4AA> MATHEMATICAL SCRIPT CAPITAL O */
-"\x0001d4ab" "P" /* <U0001D4AB> MATHEMATICAL SCRIPT CAPITAL P */
-"\x0001d4ac" "Q" /* <U0001D4AC> MATHEMATICAL SCRIPT CAPITAL Q */
-"\x0001d4ae" "S" /* <U0001D4AE> MATHEMATICAL SCRIPT CAPITAL S */
-"\x0001d4af" "T" /* <U0001D4AF> MATHEMATICAL SCRIPT CAPITAL T */
-"\x0001d4b0" "U" /* <U0001D4B0> MATHEMATICAL SCRIPT CAPITAL U */
-"\x0001d4b1" "V" /* <U0001D4B1> MATHEMATICAL SCRIPT CAPITAL V */
-"\x0001d4b2" "W" /* <U0001D4B2> MATHEMATICAL SCRIPT CAPITAL W */
-"\x0001d4b3" "X" /* <U0001D4B3> MATHEMATICAL SCRIPT CAPITAL X */
-"\x0001d4b4" "Y" /* <U0001D4B4> MATHEMATICAL SCRIPT CAPITAL Y */
-"\x0001d4b5" "Z" /* <U0001D4B5> MATHEMATICAL SCRIPT CAPITAL Z */
-"\x0001d4b6" "a" /* <U0001D4B6> MATHEMATICAL SCRIPT SMALL A */
-"\x0001d4b7" "b" /* <U0001D4B7> MATHEMATICAL SCRIPT SMALL B */
-"\x0001d4b8" "c" /* <U0001D4B8> MATHEMATICAL SCRIPT SMALL C */
-"\x0001d4b9" "d" /* <U0001D4B9> MATHEMATICAL SCRIPT SMALL D */
-"\x0001d4bb" "f" /* <U0001D4BB> MATHEMATICAL SCRIPT SMALL F */
-"\x0001d4bd" "h" /* <U0001D4BD> MATHEMATICAL SCRIPT SMALL H */
-"\x0001d4be" "i" /* <U0001D4BE> MATHEMATICAL SCRIPT SMALL I */
-"\x0001d4bf" "j" /* <U0001D4BF> MATHEMATICAL SCRIPT SMALL J */
-"\x0001d4c0" "k" /* <U0001D4C0> MATHEMATICAL SCRIPT SMALL K */
-"\x0001d4c2" "m" /* <U0001D4C2> MATHEMATICAL SCRIPT SMALL M */
-"\x0001d4c3" "n" /* <U0001D4C3> MATHEMATICAL SCRIPT SMALL N */
-"\x0001d4c5" "p" /* <U0001D4C5> MATHEMATICAL SCRIPT SMALL P */
-"\x0001d4c6" "q" /* <U0001D4C6> MATHEMATICAL SCRIPT SMALL Q */
-"\x0001d4c7" "r" /* <U0001D4C7> MATHEMATICAL SCRIPT SMALL R */
-"\x0001d4c8" "s" /* <U0001D4C8> MATHEMATICAL SCRIPT SMALL S */
-"\x0001d4c9" "t" /* <U0001D4C9> MATHEMATICAL SCRIPT SMALL T */
-"\x0001d4ca" "u" /* <U0001D4CA> MATHEMATICAL SCRIPT SMALL U */
-"\x0001d4cb" "v" /* <U0001D4CB> MATHEMATICAL SCRIPT SMALL V */
-"\x0001d4cc" "w" /* <U0001D4CC> MATHEMATICAL SCRIPT SMALL W */
-"\x0001d4cd" "x" /* <U0001D4CD> MATHEMATICAL SCRIPT SMALL X */
-"\x0001d4ce" "y" /* <U0001D4CE> MATHEMATICAL SCRIPT SMALL Y */
-"\x0001d4cf" "z" /* <U0001D4CF> MATHEMATICAL SCRIPT SMALL Z */
-"\x0001d4d0" "A" /* <U0001D4D0> MATHEMATICAL BOLD SCRIPT CAPITAL A */
-"\x0001d4d1" "B" /* <U0001D4D1> MATHEMATICAL BOLD SCRIPT CAPITAL B */
-"\x0001d4d2" "C" /* <U0001D4D2> MATHEMATICAL BOLD SCRIPT CAPITAL C */
-"\x0001d4d3" "D" /* <U0001D4D3> MATHEMATICAL BOLD SCRIPT CAPITAL D */
-"\x0001d4d4" "E" /* <U0001D4D4> MATHEMATICAL BOLD SCRIPT CAPITAL E */
-"\x0001d4d5" "F" /* <U0001D4D5> MATHEMATICAL BOLD SCRIPT CAPITAL F */
-"\x0001d4d6" "G" /* <U0001D4D6> MATHEMATICAL BOLD SCRIPT CAPITAL G */
-"\x0001d4d7" "H" /* <U0001D4D7> MATHEMATICAL BOLD SCRIPT CAPITAL H */
-"\x0001d4d8" "I" /* <U0001D4D8> MATHEMATICAL BOLD SCRIPT CAPITAL I */
-"\x0001d4d9" "J" /* <U0001D4D9> MATHEMATICAL BOLD SCRIPT CAPITAL J */
-"\x0001d4da" "K" /* <U0001D4DA> MATHEMATICAL BOLD SCRIPT CAPITAL K */
-"\x0001d4db" "L" /* <U0001D4DB> MATHEMATICAL BOLD SCRIPT CAPITAL L */
-"\x0001d4dc" "M" /* <U0001D4DC> MATHEMATICAL BOLD SCRIPT CAPITAL M */
-"\x0001d4dd" "N" /* <U0001D4DD> MATHEMATICAL BOLD SCRIPT CAPITAL N */
-"\x0001d4de" "O" /* <U0001D4DE> MATHEMATICAL BOLD SCRIPT CAPITAL O */
-"\x0001d4df" "P" /* <U0001D4DF> MATHEMATICAL BOLD SCRIPT CAPITAL P */
-"\x0001d4e0" "Q" /* <U0001D4E0> MATHEMATICAL BOLD SCRIPT CAPITAL Q */
-"\x0001d4e1" "R" /* <U0001D4E1> MATHEMATICAL BOLD SCRIPT CAPITAL R */
-"\x0001d4e2" "S" /* <U0001D4E2> MATHEMATICAL BOLD SCRIPT CAPITAL S */
-"\x0001d4e3" "T" /* <U0001D4E3> MATHEMATICAL BOLD SCRIPT CAPITAL T */
-"\x0001d4e4" "U" /* <U0001D4E4> MATHEMATICAL BOLD SCRIPT CAPITAL U */
-"\x0001d4e5" "V" /* <U0001D4E5> MATHEMATICAL BOLD SCRIPT CAPITAL V */
-"\x0001d4e6" "W" /* <U0001D4E6> MATHEMATICAL BOLD SCRIPT CAPITAL W */
-"\x0001d4e7" "X" /* <U0001D4E7> MATHEMATICAL BOLD SCRIPT CAPITAL X */
-"\x0001d4e8" "Y" /* <U0001D4E8> MATHEMATICAL BOLD SCRIPT CAPITAL Y */
-"\x0001d4e9" "Z" /* <U0001D4E9> MATHEMATICAL BOLD SCRIPT CAPITAL Z */
-"\x0001d4ea" "a" /* <U0001D4EA> MATHEMATICAL BOLD SCRIPT SMALL A */
-"\x0001d4eb" "b" /* <U0001D4EB> MATHEMATICAL BOLD SCRIPT SMALL B */
-"\x0001d4ec" "c" /* <U0001D4EC> MATHEMATICAL BOLD SCRIPT SMALL C */
-"\x0001d4ed" "d" /* <U0001D4ED> MATHEMATICAL BOLD SCRIPT SMALL D */
-"\x0001d4ee" "e" /* <U0001D4EE> MATHEMATICAL BOLD SCRIPT SMALL E */
-"\x0001d4ef" "f" /* <U0001D4EF> MATHEMATICAL BOLD SCRIPT SMALL F */
-"\x0001d4f0" "g" /* <U0001D4F0> MATHEMATICAL BOLD SCRIPT SMALL G */
-"\x0001d4f1" "h" /* <U0001D4F1> MATHEMATICAL BOLD SCRIPT SMALL H */
-"\x0001d4f2" "i" /* <U0001D4F2> MATHEMATICAL BOLD SCRIPT SMALL I */
-"\x0001d4f3" "j" /* <U0001D4F3> MATHEMATICAL BOLD SCRIPT SMALL J */
-"\x0001d4f4" "k" /* <U0001D4F4> MATHEMATICAL BOLD SCRIPT SMALL K */
-"\x0001d4f5" "l" /* <U0001D4F5> MATHEMATICAL BOLD SCRIPT SMALL L */
-"\x0001d4f6" "m" /* <U0001D4F6> MATHEMATICAL BOLD SCRIPT SMALL M */
-"\x0001d4f7" "n" /* <U0001D4F7> MATHEMATICAL BOLD SCRIPT SMALL N */
-"\x0001d4f8" "o" /* <U0001D4F8> MATHEMATICAL BOLD SCRIPT SMALL O */
-"\x0001d4f9" "p" /* <U0001D4F9> MATHEMATICAL BOLD SCRIPT SMALL P */
-"\x0001d4fa" "q" /* <U0001D4FA> MATHEMATICAL BOLD SCRIPT SMALL Q */
-"\x0001d4fb" "r" /* <U0001D4FB> MATHEMATICAL BOLD SCRIPT SMALL R */
-"\x0001d4fc" "s" /* <U0001D4FC> MATHEMATICAL BOLD SCRIPT SMALL S */
-"\x0001d4fd" "t" /* <U0001D4FD> MATHEMATICAL BOLD SCRIPT SMALL T */
-"\x0001d4fe" "u" /* <U0001D4FE> MATHEMATICAL BOLD SCRIPT SMALL U */
-"\x0001d4ff" "v" /* <U0001D4FF> MATHEMATICAL BOLD SCRIPT SMALL V */
-"\x0001d500" "w" /* <U0001D500> MATHEMATICAL BOLD SCRIPT SMALL W */
-"\x0001d501" "x" /* <U0001D501> MATHEMATICAL BOLD SCRIPT SMALL X */
-"\x0001d502" "y" /* <U0001D502> MATHEMATICAL BOLD SCRIPT SMALL Y */
-"\x0001d503" "z" /* <U0001D503> MATHEMATICAL BOLD SCRIPT SMALL Z */
-"\x0001d504" "A" /* <U0001D504> MATHEMATICAL FRAKTUR CAPITAL A */
-"\x0001d505" "B" /* <U0001D505> MATHEMATICAL FRAKTUR CAPITAL B */
-"\x0001d507" "D" /* <U0001D507> MATHEMATICAL FRAKTUR CAPITAL D */
-"\x0001d508" "E" /* <U0001D508> MATHEMATICAL FRAKTUR CAPITAL E */
-"\x0001d509" "F" /* <U0001D509> MATHEMATICAL FRAKTUR CAPITAL F */
-"\x0001d50a" "G" /* <U0001D50A> MATHEMATICAL FRAKTUR CAPITAL G */
-"\x0001d50d" "J" /* <U0001D50D> MATHEMATICAL FRAKTUR CAPITAL J */
-"\x0001d50e" "K" /* <U0001D50E> MATHEMATICAL FRAKTUR CAPITAL K */
-"\x0001d50f" "L" /* <U0001D50F> MATHEMATICAL FRAKTUR CAPITAL L */
-"\x0001d510" "M" /* <U0001D510> MATHEMATICAL FRAKTUR CAPITAL M */
-"\x0001d511" "N" /* <U0001D511> MATHEMATICAL FRAKTUR CAPITAL N */
-"\x0001d512" "O" /* <U0001D512> MATHEMATICAL FRAKTUR CAPITAL O */
-"\x0001d513" "P" /* <U0001D513> MATHEMATICAL FRAKTUR CAPITAL P */
-"\x0001d514" "Q" /* <U0001D514> MATHEMATICAL FRAKTUR CAPITAL Q */
-"\x0001d516" "S" /* <U0001D516> MATHEMATICAL FRAKTUR CAPITAL S */
-"\x0001d517" "T" /* <U0001D517> MATHEMATICAL FRAKTUR CAPITAL T */
-"\x0001d518" "U" /* <U0001D518> MATHEMATICAL FRAKTUR CAPITAL U */
-"\x0001d519" "V" /* <U0001D519> MATHEMATICAL FRAKTUR CAPITAL V */
-"\x0001d51a" "W" /* <U0001D51A> MATHEMATICAL FRAKTUR CAPITAL W */
-"\x0001d51b" "X" /* <U0001D51B> MATHEMATICAL FRAKTUR CAPITAL X */
-"\x0001d51c" "Y" /* <U0001D51C> MATHEMATICAL FRAKTUR CAPITAL Y */
-"\x0001d51e" "a" /* <U0001D51E> MATHEMATICAL FRAKTUR SMALL A */
-"\x0001d51f" "b" /* <U0001D51F> MATHEMATICAL FRAKTUR SMALL B */
-"\x0001d520" "c" /* <U0001D520> MATHEMATICAL FRAKTUR SMALL C */
-"\x0001d521" "d" /* <U0001D521> MATHEMATICAL FRAKTUR SMALL D */
-"\x0001d522" "e" /* <U0001D522> MATHEMATICAL FRAKTUR SMALL E */
-"\x0001d523" "f" /* <U0001D523> MATHEMATICAL FRAKTUR SMALL F */
-"\x0001d524" "g" /* <U0001D524> MATHEMATICAL FRAKTUR SMALL G */
-"\x0001d525" "h" /* <U0001D525> MATHEMATICAL FRAKTUR SMALL H */
-"\x0001d526" "i" /* <U0001D526> MATHEMATICAL FRAKTUR SMALL I */
-"\x0001d527" "j" /* <U0001D527> MATHEMATICAL FRAKTUR SMALL J */
-"\x0001d528" "k" /* <U0001D528> MATHEMATICAL FRAKTUR SMALL K */
-"\x0001d529" "l" /* <U0001D529> MATHEMATICAL FRAKTUR SMALL L */
-"\x0001d52a" "m" /* <U0001D52A> MATHEMATICAL FRAKTUR SMALL M */
-"\x0001d52b" "n" /* <U0001D52B> MATHEMATICAL FRAKTUR SMALL N */
-"\x0001d52c" "o" /* <U0001D52C> MATHEMATICAL FRAKTUR SMALL O */
-"\x0001d52d" "p" /* <U0001D52D> MATHEMATICAL FRAKTUR SMALL P */
-"\x0001d52e" "q" /* <U0001D52E> MATHEMATICAL FRAKTUR SMALL Q */
-"\x0001d52f" "r" /* <U0001D52F> MATHEMATICAL FRAKTUR SMALL R */
-"\x0001d530" "s" /* <U0001D530> MATHEMATICAL FRAKTUR SMALL S */
-"\x0001d531" "t" /* <U0001D531> MATHEMATICAL FRAKTUR SMALL T */
-"\x0001d532" "u" /* <U0001D532> MATHEMATICAL FRAKTUR SMALL U */
-"\x0001d533" "v" /* <U0001D533> MATHEMATICAL FRAKTUR SMALL V */
-"\x0001d534" "w" /* <U0001D534> MATHEMATICAL FRAKTUR SMALL W */
-"\x0001d535" "x" /* <U0001D535> MATHEMATICAL FRAKTUR SMALL X */
-"\x0001d536" "y" /* <U0001D536> MATHEMATICAL FRAKTUR SMALL Y */
-"\x0001d537" "z" /* <U0001D537> MATHEMATICAL FRAKTUR SMALL Z */
-"\x0001d538" "A" /* <U0001D538> MATHEMATICAL DOUBLE-STRUCK CAPITAL A */
-"\x0001d539" "B" /* <U0001D539> MATHEMATICAL DOUBLE-STRUCK CAPITAL B */
-"\x0001d53b" "D" /* <U0001D53B> MATHEMATICAL DOUBLE-STRUCK CAPITAL D */
-"\x0001d53c" "E" /* <U0001D53C> MATHEMATICAL DOUBLE-STRUCK CAPITAL E */
-"\x0001d53d" "F" /* <U0001D53D> MATHEMATICAL DOUBLE-STRUCK CAPITAL F */
-"\x0001d53e" "G" /* <U0001D53E> MATHEMATICAL DOUBLE-STRUCK CAPITAL G */
-"\x0001d540" "I" /* <U0001D540> MATHEMATICAL DOUBLE-STRUCK CAPITAL I */
-"\x0001d541" "J" /* <U0001D541> MATHEMATICAL DOUBLE-STRUCK CAPITAL J */
-"\x0001d542" "K" /* <U0001D542> MATHEMATICAL DOUBLE-STRUCK CAPITAL K */
-"\x0001d543" "L" /* <U0001D543> MATHEMATICAL DOUBLE-STRUCK CAPITAL L */
-"\x0001d544" "M" /* <U0001D544> MATHEMATICAL DOUBLE-STRUCK CAPITAL M */
-"\x0001d546" "O" /* <U0001D546> MATHEMATICAL DOUBLE-STRUCK CAPITAL O */
-"\x0001d54a" "S" /* <U0001D54A> MATHEMATICAL DOUBLE-STRUCK CAPITAL S */
-"\x0001d54b" "T" /* <U0001D54B> MATHEMATICAL DOUBLE-STRUCK CAPITAL T */
-"\x0001d54c" "U" /* <U0001D54C> MATHEMATICAL DOUBLE-STRUCK CAPITAL U */
-"\x0001d54d" "V" /* <U0001D54D> MATHEMATICAL DOUBLE-STRUCK CAPITAL V */
-"\x0001d54e" "W" /* <U0001D54E> MATHEMATICAL DOUBLE-STRUCK CAPITAL W */
-"\x0001d54f" "X" /* <U0001D54F> MATHEMATICAL DOUBLE-STRUCK CAPITAL X */
-"\x0001d550" "Y" /* <U0001D550> MATHEMATICAL DOUBLE-STRUCK CAPITAL Y */
-"\x0001d552" "a" /* <U0001D552> MATHEMATICAL DOUBLE-STRUCK SMALL A */
-"\x0001d553" "b" /* <U0001D553> MATHEMATICAL DOUBLE-STRUCK SMALL B */
-"\x0001d554" "c" /* <U0001D554> MATHEMATICAL DOUBLE-STRUCK SMALL C */
-"\x0001d555" "d" /* <U0001D555> MATHEMATICAL DOUBLE-STRUCK SMALL D */
-"\x0001d556" "e" /* <U0001D556> MATHEMATICAL DOUBLE-STRUCK SMALL E */
-"\x0001d557" "f" /* <U0001D557> MATHEMATICAL DOUBLE-STRUCK SMALL F */
-"\x0001d558" "g" /* <U0001D558> MATHEMATICAL DOUBLE-STRUCK SMALL G */
-"\x0001d559" "h" /* <U0001D559> MATHEMATICAL DOUBLE-STRUCK SMALL H */
-"\x0001d55a" "i" /* <U0001D55A> MATHEMATICAL DOUBLE-STRUCK SMALL I */
-"\x0001d55b" "j" /* <U0001D55B> MATHEMATICAL DOUBLE-STRUCK SMALL J */
-"\x0001d55c" "k" /* <U0001D55C> MATHEMATICAL DOUBLE-STRUCK SMALL K */
-"\x0001d55d" "l" /* <U0001D55D> MATHEMATICAL DOUBLE-STRUCK SMALL L */
-"\x0001d55e" "m" /* <U0001D55E> MATHEMATICAL DOUBLE-STRUCK SMALL M */
-"\x0001d55f" "n" /* <U0001D55F> MATHEMATICAL DOUBLE-STRUCK SMALL N */
-"\x0001d560" "o" /* <U0001D560> MATHEMATICAL DOUBLE-STRUCK SMALL O */
-"\x0001d561" "p" /* <U0001D561> MATHEMATICAL DOUBLE-STRUCK SMALL P */
-"\x0001d562" "q" /* <U0001D562> MATHEMATICAL DOUBLE-STRUCK SMALL Q */
-"\x0001d563" "r" /* <U0001D563> MATHEMATICAL DOUBLE-STRUCK SMALL R */
-"\x0001d564" "s" /* <U0001D564> MATHEMATICAL DOUBLE-STRUCK SMALL S */
-"\x0001d565" "t" /* <U0001D565> MATHEMATICAL DOUBLE-STRUCK SMALL T */
-"\x0001d566" "u" /* <U0001D566> MATHEMATICAL DOUBLE-STRUCK SMALL U */
-"\x0001d567" "v" /* <U0001D567> MATHEMATICAL DOUBLE-STRUCK SMALL V */
-"\x0001d568" "w" /* <U0001D568> MATHEMATICAL DOUBLE-STRUCK SMALL W */
-"\x0001d569" "x" /* <U0001D569> MATHEMATICAL DOUBLE-STRUCK SMALL X */
-"\x0001d56a" "y" /* <U0001D56A> MATHEMATICAL DOUBLE-STRUCK SMALL Y */
-"\x0001d56b" "z" /* <U0001D56B> MATHEMATICAL DOUBLE-STRUCK SMALL Z */
-"\x0001d56c" "A" /* <U0001D56C> MATHEMATICAL BOLD FRAKTUR CAPITAL A */
-"\x0001d56d" "B" /* <U0001D56D> MATHEMATICAL BOLD FRAKTUR CAPITAL B */
-"\x0001d56e" "C" /* <U0001D56E> MATHEMATICAL BOLD FRAKTUR CAPITAL C */
-"\x0001d56f" "D" /* <U0001D56F> MATHEMATICAL BOLD FRAKTUR CAPITAL D */
-"\x0001d570" "E" /* <U0001D570> MATHEMATICAL BOLD FRAKTUR CAPITAL E */
-"\x0001d571" "F" /* <U0001D571> MATHEMATICAL BOLD FRAKTUR CAPITAL F */
-"\x0001d572" "G" /* <U0001D572> MATHEMATICAL BOLD FRAKTUR CAPITAL G */
-"\x0001d573" "H" /* <U0001D573> MATHEMATICAL BOLD FRAKTUR CAPITAL H */
-"\x0001d574" "I" /* <U0001D574> MATHEMATICAL BOLD FRAKTUR CAPITAL I */
-"\x0001d575" "J" /* <U0001D575> MATHEMATICAL BOLD FRAKTUR CAPITAL J */
-"\x0001d576" "K" /* <U0001D576> MATHEMATICAL BOLD FRAKTUR CAPITAL K */
-"\x0001d577" "L" /* <U0001D577> MATHEMATICAL BOLD FRAKTUR CAPITAL L */
-"\x0001d578" "M" /* <U0001D578> MATHEMATICAL BOLD FRAKTUR CAPITAL M */
-"\x0001d579" "N" /* <U0001D579> MATHEMATICAL BOLD FRAKTUR CAPITAL N */
-"\x0001d57a" "O" /* <U0001D57A> MATHEMATICAL BOLD FRAKTUR CAPITAL O */
-"\x0001d57b" "P" /* <U0001D57B> MATHEMATICAL BOLD FRAKTUR CAPITAL P */
-"\x0001d57c" "Q" /* <U0001D57C> MATHEMATICAL BOLD FRAKTUR CAPITAL Q */
-"\x0001d57d" "R" /* <U0001D57D> MATHEMATICAL BOLD FRAKTUR CAPITAL R */
-"\x0001d57e" "S" /* <U0001D57E> MATHEMATICAL BOLD FRAKTUR CAPITAL S */
-"\x0001d57f" "T" /* <U0001D57F> MATHEMATICAL BOLD FRAKTUR CAPITAL T */
-"\x0001d580" "U" /* <U0001D580> MATHEMATICAL BOLD FRAKTUR CAPITAL U */
-"\x0001d581" "V" /* <U0001D581> MATHEMATICAL BOLD FRAKTUR CAPITAL V */
-"\x0001d582" "W" /* <U0001D582> MATHEMATICAL BOLD FRAKTUR CAPITAL W */
-"\x0001d583" "X" /* <U0001D583> MATHEMATICAL BOLD FRAKTUR CAPITAL X */
-"\x0001d584" "Y" /* <U0001D584> MATHEMATICAL BOLD FRAKTUR CAPITAL Y */
-"\x0001d585" "Z" /* <U0001D585> MATHEMATICAL BOLD FRAKTUR CAPITAL Z */
-"\x0001d586" "a" /* <U0001D586> MATHEMATICAL BOLD FRAKTUR SMALL A */
-"\x0001d587" "b" /* <U0001D587> MATHEMATICAL BOLD FRAKTUR SMALL B */
-"\x0001d588" "c" /* <U0001D588> MATHEMATICAL BOLD FRAKTUR SMALL C */
-"\x0001d589" "d" /* <U0001D589> MATHEMATICAL BOLD FRAKTUR SMALL D */
-"\x0001d58a" "e" /* <U0001D58A> MATHEMATICAL BOLD FRAKTUR SMALL E */
-"\x0001d58b" "f" /* <U0001D58B> MATHEMATICAL BOLD FRAKTUR SMALL F */
-"\x0001d58c" "g" /* <U0001D58C> MATHEMATICAL BOLD FRAKTUR SMALL G */
-"\x0001d58d" "h" /* <U0001D58D> MATHEMATICAL BOLD FRAKTUR SMALL H */
-"\x0001d58e" "i" /* <U0001D58E> MATHEMATICAL BOLD FRAKTUR SMALL I */
-"\x0001d58f" "j" /* <U0001D58F> MATHEMATICAL BOLD FRAKTUR SMALL J */
-"\x0001d590" "k" /* <U0001D590> MATHEMATICAL BOLD FRAKTUR SMALL K */
-"\x0001d591" "l" /* <U0001D591> MATHEMATICAL BOLD FRAKTUR SMALL L */
-"\x0001d592" "m" /* <U0001D592> MATHEMATICAL BOLD FRAKTUR SMALL M */
-"\x0001d593" "n" /* <U0001D593> MATHEMATICAL BOLD FRAKTUR SMALL N */
-"\x0001d594" "o" /* <U0001D594> MATHEMATICAL BOLD FRAKTUR SMALL O */
-"\x0001d595" "p" /* <U0001D595> MATHEMATICAL BOLD FRAKTUR SMALL P */
-"\x0001d596" "q" /* <U0001D596> MATHEMATICAL BOLD FRAKTUR SMALL Q */
-"\x0001d597" "r" /* <U0001D597> MATHEMATICAL BOLD FRAKTUR SMALL R */
-"\x0001d598" "s" /* <U0001D598> MATHEMATICAL BOLD FRAKTUR SMALL S */
-"\x0001d599" "t" /* <U0001D599> MATHEMATICAL BOLD FRAKTUR SMALL T */
-"\x0001d59a" "u" /* <U0001D59A> MATHEMATICAL BOLD FRAKTUR SMALL U */
-"\x0001d59b" "v" /* <U0001D59B> MATHEMATICAL BOLD FRAKTUR SMALL V */
-"\x0001d59c" "w" /* <U0001D59C> MATHEMATICAL BOLD FRAKTUR SMALL W */
-"\x0001d59d" "x" /* <U0001D59D> MATHEMATICAL BOLD FRAKTUR SMALL X */
-"\x0001d59e" "y" /* <U0001D59E> MATHEMATICAL BOLD FRAKTUR SMALL Y */
-"\x0001d59f" "z" /* <U0001D59F> MATHEMATICAL BOLD FRAKTUR SMALL Z */
-"\x0001d5a0" "A" /* <U0001D5A0> MATHEMATICAL SANS-SERIF CAPITAL A */
-"\x0001d5a1" "B" /* <U0001D5A1> MATHEMATICAL SANS-SERIF CAPITAL B */
-"\x0001d5a2" "C" /* <U0001D5A2> MATHEMATICAL SANS-SERIF CAPITAL C */
-"\x0001d5a3" "D" /* <U0001D5A3> MATHEMATICAL SANS-SERIF CAPITAL D */
-"\x0001d5a4" "E" /* <U0001D5A4> MATHEMATICAL SANS-SERIF CAPITAL E */
-"\x0001d5a5" "F" /* <U0001D5A5> MATHEMATICAL SANS-SERIF CAPITAL F */
-"\x0001d5a6" "G" /* <U0001D5A6> MATHEMATICAL SANS-SERIF CAPITAL G */
-"\x0001d5a7" "H" /* <U0001D5A7> MATHEMATICAL SANS-SERIF CAPITAL H */
-"\x0001d5a8" "I" /* <U0001D5A8> MATHEMATICAL SANS-SERIF CAPITAL I */
-"\x0001d5a9" "J" /* <U0001D5A9> MATHEMATICAL SANS-SERIF CAPITAL J */
-"\x0001d5aa" "K" /* <U0001D5AA> MATHEMATICAL SANS-SERIF CAPITAL K */
-"\x0001d5ab" "L" /* <U0001D5AB> MATHEMATICAL SANS-SERIF CAPITAL L */
-"\x0001d5ac" "M" /* <U0001D5AC> MATHEMATICAL SANS-SERIF CAPITAL M */
-"\x0001d5ad" "N" /* <U0001D5AD> MATHEMATICAL SANS-SERIF CAPITAL N */
-"\x0001d5ae" "O" /* <U0001D5AE> MATHEMATICAL SANS-SERIF CAPITAL O */
-"\x0001d5af" "P" /* <U0001D5AF> MATHEMATICAL SANS-SERIF CAPITAL P */
-"\x0001d5b0" "Q" /* <U0001D5B0> MATHEMATICAL SANS-SERIF CAPITAL Q */
-"\x0001d5b1" "R" /* <U0001D5B1> MATHEMATICAL SANS-SERIF CAPITAL R */
-"\x0001d5b2" "S" /* <U0001D5B2> MATHEMATICAL SANS-SERIF CAPITAL S */
-"\x0001d5b3" "T" /* <U0001D5B3> MATHEMATICAL SANS-SERIF CAPITAL T */
-"\x0001d5b4" "U" /* <U0001D5B4> MATHEMATICAL SANS-SERIF CAPITAL U */
-"\x0001d5b5" "V" /* <U0001D5B5> MATHEMATICAL SANS-SERIF CAPITAL V */
-"\x0001d5b6" "W" /* <U0001D5B6> MATHEMATICAL SANS-SERIF CAPITAL W */
-"\x0001d5b7" "X" /* <U0001D5B7> MATHEMATICAL SANS-SERIF CAPITAL X */
-"\x0001d5b8" "Y" /* <U0001D5B8> MATHEMATICAL SANS-SERIF CAPITAL Y */
-"\x0001d5b9" "Z" /* <U0001D5B9> MATHEMATICAL SANS-SERIF CAPITAL Z */
-"\x0001d5ba" "a" /* <U0001D5BA> MATHEMATICAL SANS-SERIF SMALL A */
-"\x0001d5bb" "b" /* <U0001D5BB> MATHEMATICAL SANS-SERIF SMALL B */
-"\x0001d5bc" "c" /* <U0001D5BC> MATHEMATICAL SANS-SERIF SMALL C */
-"\x0001d5bd" "d" /* <U0001D5BD> MATHEMATICAL SANS-SERIF SMALL D */
-"\x0001d5be" "e" /* <U0001D5BE> MATHEMATICAL SANS-SERIF SMALL E */
-"\x0001d5bf" "f" /* <U0001D5BF> MATHEMATICAL SANS-SERIF SMALL F */
-"\x0001d5c0" "g" /* <U0001D5C0> MATHEMATICAL SANS-SERIF SMALL G */
-"\x0001d5c1" "h" /* <U0001D5C1> MATHEMATICAL SANS-SERIF SMALL H */
-"\x0001d5c2" "i" /* <U0001D5C2> MATHEMATICAL SANS-SERIF SMALL I */
-"\x0001d5c3" "j" /* <U0001D5C3> MATHEMATICAL SANS-SERIF SMALL J */
-"\x0001d5c4" "k" /* <U0001D5C4> MATHEMATICAL SANS-SERIF SMALL K */
-"\x0001d5c5" "l" /* <U0001D5C5> MATHEMATICAL SANS-SERIF SMALL L */
-"\x0001d5c6" "m" /* <U0001D5C6> MATHEMATICAL SANS-SERIF SMALL M */
-"\x0001d5c7" "n" /* <U0001D5C7> MATHEMATICAL SANS-SERIF SMALL N */
-"\x0001d5c8" "o" /* <U0001D5C8> MATHEMATICAL SANS-SERIF SMALL O */
-"\x0001d5c9" "p" /* <U0001D5C9> MATHEMATICAL SANS-SERIF SMALL P */
-"\x0001d5ca" "q" /* <U0001D5CA> MATHEMATICAL SANS-SERIF SMALL Q */
-"\x0001d5cb" "r" /* <U0001D5CB> MATHEMATICAL SANS-SERIF SMALL R */
-"\x0001d5cc" "s" /* <U0001D5CC> MATHEMATICAL SANS-SERIF SMALL S */
-"\x0001d5cd" "t" /* <U0001D5CD> MATHEMATICAL SANS-SERIF SMALL T */
-"\x0001d5ce" "u" /* <U0001D5CE> MATHEMATICAL SANS-SERIF SMALL U */
-"\x0001d5cf" "v" /* <U0001D5CF> MATHEMATICAL SANS-SERIF SMALL V */
-"\x0001d5d0" "w" /* <U0001D5D0> MATHEMATICAL SANS-SERIF SMALL W */
-"\x0001d5d1" "x" /* <U0001D5D1> MATHEMATICAL SANS-SERIF SMALL X */
-"\x0001d5d2" "y" /* <U0001D5D2> MATHEMATICAL SANS-SERIF SMALL Y */
-"\x0001d5d3" "z" /* <U0001D5D3> MATHEMATICAL SANS-SERIF SMALL Z */
-"\x0001d5d4" "A" /* <U0001D5D4> MATHEMATICAL SANS-SERIF BOLD CAPITAL A */
-"\x0001d5d5" "B" /* <U0001D5D5> MATHEMATICAL SANS-SERIF BOLD CAPITAL B */
-"\x0001d5d6" "C" /* <U0001D5D6> MATHEMATICAL SANS-SERIF BOLD CAPITAL C */
-"\x0001d5d7" "D" /* <U0001D5D7> MATHEMATICAL SANS-SERIF BOLD CAPITAL D */
-"\x0001d5d8" "E" /* <U0001D5D8> MATHEMATICAL SANS-SERIF BOLD CAPITAL E */
-"\x0001d5d9" "F" /* <U0001D5D9> MATHEMATICAL SANS-SERIF BOLD CAPITAL F */
-"\x0001d5da" "G" /* <U0001D5DA> MATHEMATICAL SANS-SERIF BOLD CAPITAL G */
-"\x0001d5db" "H" /* <U0001D5DB> MATHEMATICAL SANS-SERIF BOLD CAPITAL H */
-"\x0001d5dc" "I" /* <U0001D5DC> MATHEMATICAL SANS-SERIF BOLD CAPITAL I */
-"\x0001d5dd" "J" /* <U0001D5DD> MATHEMATICAL SANS-SERIF BOLD CAPITAL J */
-"\x0001d5de" "K" /* <U0001D5DE> MATHEMATICAL SANS-SERIF BOLD CAPITAL K */
-"\x0001d5df" "L" /* <U0001D5DF> MATHEMATICAL SANS-SERIF BOLD CAPITAL L */
-"\x0001d5e0" "M" /* <U0001D5E0> MATHEMATICAL SANS-SERIF BOLD CAPITAL M */
-"\x0001d5e1" "N" /* <U0001D5E1> MATHEMATICAL SANS-SERIF BOLD CAPITAL N */
-"\x0001d5e2" "O" /* <U0001D5E2> MATHEMATICAL SANS-SERIF BOLD CAPITAL O */
-"\x0001d5e3" "P" /* <U0001D5E3> MATHEMATICAL SANS-SERIF BOLD CAPITAL P */
-"\x0001d5e4" "Q" /* <U0001D5E4> MATHEMATICAL SANS-SERIF BOLD CAPITAL Q */
-"\x0001d5e5" "R" /* <U0001D5E5> MATHEMATICAL SANS-SERIF BOLD CAPITAL R */
-"\x0001d5e6" "S" /* <U0001D5E6> MATHEMATICAL SANS-SERIF BOLD CAPITAL S */
-"\x0001d5e7" "T" /* <U0001D5E7> MATHEMATICAL SANS-SERIF BOLD CAPITAL T */
-"\x0001d5e8" "U" /* <U0001D5E8> MATHEMATICAL SANS-SERIF BOLD CAPITAL U */
-"\x0001d5e9" "V" /* <U0001D5E9> MATHEMATICAL SANS-SERIF BOLD CAPITAL V */
-"\x0001d5ea" "W" /* <U0001D5EA> MATHEMATICAL SANS-SERIF BOLD CAPITAL W */
-"\x0001d5eb" "X" /* <U0001D5EB> MATHEMATICAL SANS-SERIF BOLD CAPITAL X */
-"\x0001d5ec" "Y" /* <U0001D5EC> MATHEMATICAL SANS-SERIF BOLD CAPITAL Y */
-"\x0001d5ed" "Z" /* <U0001D5ED> MATHEMATICAL SANS-SERIF BOLD CAPITAL Z */
-"\x0001d5ee" "a" /* <U0001D5EE> MATHEMATICAL SANS-SERIF BOLD SMALL A */
-"\x0001d5ef" "b" /* <U0001D5EF> MATHEMATICAL SANS-SERIF BOLD SMALL B */
-"\x0001d5f0" "c" /* <U0001D5F0> MATHEMATICAL SANS-SERIF BOLD SMALL C */
-"\x0001d5f1" "d" /* <U0001D5F1> MATHEMATICAL SANS-SERIF BOLD SMALL D */
-"\x0001d5f2" "e" /* <U0001D5F2> MATHEMATICAL SANS-SERIF BOLD SMALL E */
-"\x0001d5f3" "f" /* <U0001D5F3> MATHEMATICAL SANS-SERIF BOLD SMALL F */
-"\x0001d5f4" "g" /* <U0001D5F4> MATHEMATICAL SANS-SERIF BOLD SMALL G */
-"\x0001d5f5" "h" /* <U0001D5F5> MATHEMATICAL SANS-SERIF BOLD SMALL H */
-"\x0001d5f6" "i" /* <U0001D5F6> MATHEMATICAL SANS-SERIF BOLD SMALL I */
-"\x0001d5f7" "j" /* <U0001D5F7> MATHEMATICAL SANS-SERIF BOLD SMALL J */
-"\x0001d5f8" "k" /* <U0001D5F8> MATHEMATICAL SANS-SERIF BOLD SMALL K */
-"\x0001d5f9" "l" /* <U0001D5F9> MATHEMATICAL SANS-SERIF BOLD SMALL L */
-"\x0001d5fa" "m" /* <U0001D5FA> MATHEMATICAL SANS-SERIF BOLD SMALL M */
-"\x0001d5fb" "n" /* <U0001D5FB> MATHEMATICAL SANS-SERIF BOLD SMALL N */
-"\x0001d5fc" "o" /* <U0001D5FC> MATHEMATICAL SANS-SERIF BOLD SMALL O */
-"\x0001d5fd" "p" /* <U0001D5FD> MATHEMATICAL SANS-SERIF BOLD SMALL P */
-"\x0001d5fe" "q" /* <U0001D5FE> MATHEMATICAL SANS-SERIF BOLD SMALL Q */
-"\x0001d5ff" "r" /* <U0001D5FF> MATHEMATICAL SANS-SERIF BOLD SMALL R */
-"\x0001d600" "s" /* <U0001D600> MATHEMATICAL SANS-SERIF BOLD SMALL S */
-"\x0001d601" "t" /* <U0001D601> MATHEMATICAL SANS-SERIF BOLD SMALL T */
-"\x0001d602" "u" /* <U0001D602> MATHEMATICAL SANS-SERIF BOLD SMALL U */
-"\x0001d603" "v" /* <U0001D603> MATHEMATICAL SANS-SERIF BOLD SMALL V */
-"\x0001d604" "w" /* <U0001D604> MATHEMATICAL SANS-SERIF BOLD SMALL W */
-"\x0001d605" "x" /* <U0001D605> MATHEMATICAL SANS-SERIF BOLD SMALL X */
-"\x0001d606" "y" /* <U0001D606> MATHEMATICAL SANS-SERIF BOLD SMALL Y */
-"\x0001d607" "z" /* <U0001D607> MATHEMATICAL SANS-SERIF BOLD SMALL Z */
-"\x0001d608" "A" /* <U0001D608> MATHEMATICAL SANS-SERIF ITALIC CAPITAL A */
-"\x0001d609" "B" /* <U0001D609> MATHEMATICAL SANS-SERIF ITALIC CAPITAL B */
-"\x0001d60a" "C" /* <U0001D60A> MATHEMATICAL SANS-SERIF ITALIC CAPITAL C */
-"\x0001d60b" "D" /* <U0001D60B> MATHEMATICAL SANS-SERIF ITALIC CAPITAL D */
-"\x0001d60c" "E" /* <U0001D60C> MATHEMATICAL SANS-SERIF ITALIC CAPITAL E */
-"\x0001d60d" "F" /* <U0001D60D> MATHEMATICAL SANS-SERIF ITALIC CAPITAL F */
-"\x0001d60e" "G" /* <U0001D60E> MATHEMATICAL SANS-SERIF ITALIC CAPITAL G */
-"\x0001d60f" "H" /* <U0001D60F> MATHEMATICAL SANS-SERIF ITALIC CAPITAL H */
-"\x0001d610" "I" /* <U0001D610> MATHEMATICAL SANS-SERIF ITALIC CAPITAL I */
-"\x0001d611" "J" /* <U0001D611> MATHEMATICAL SANS-SERIF ITALIC CAPITAL J */
-"\x0001d612" "K" /* <U0001D612> MATHEMATICAL SANS-SERIF ITALIC CAPITAL K */
-"\x0001d613" "L" /* <U0001D613> MATHEMATICAL SANS-SERIF ITALIC CAPITAL L */
-"\x0001d614" "M" /* <U0001D614> MATHEMATICAL SANS-SERIF ITALIC CAPITAL M */
-"\x0001d615" "N" /* <U0001D615> MATHEMATICAL SANS-SERIF ITALIC CAPITAL N */
-"\x0001d616" "O" /* <U0001D616> MATHEMATICAL SANS-SERIF ITALIC CAPITAL O */
-"\x0001d617" "P" /* <U0001D617> MATHEMATICAL SANS-SERIF ITALIC CAPITAL P */
-"\x0001d618" "Q" /* <U0001D618> MATHEMATICAL SANS-SERIF ITALIC CAPITAL Q */
-"\x0001d619" "R" /* <U0001D619> MATHEMATICAL SANS-SERIF ITALIC CAPITAL R */
-"\x0001d61a" "S" /* <U0001D61A> MATHEMATICAL SANS-SERIF ITALIC CAPITAL S */
-"\x0001d61b" "T" /* <U0001D61B> MATHEMATICAL SANS-SERIF ITALIC CAPITAL T */
-"\x0001d61c" "U" /* <U0001D61C> MATHEMATICAL SANS-SERIF ITALIC CAPITAL U */
-"\x0001d61d" "V" /* <U0001D61D> MATHEMATICAL SANS-SERIF ITALIC CAPITAL V */
-"\x0001d61e" "W" /* <U0001D61E> MATHEMATICAL SANS-SERIF ITALIC CAPITAL W */
-"\x0001d61f" "X" /* <U0001D61F> MATHEMATICAL SANS-SERIF ITALIC CAPITAL X */
-"\x0001d620" "Y" /* <U0001D620> MATHEMATICAL SANS-SERIF ITALIC CAPITAL Y */
-"\x0001d621" "Z" /* <U0001D621> MATHEMATICAL SANS-SERIF ITALIC CAPITAL Z */
-"\x0001d622" "a" /* <U0001D622> MATHEMATICAL SANS-SERIF ITALIC SMALL A */
-"\x0001d623" "b" /* <U0001D623> MATHEMATICAL SANS-SERIF ITALIC SMALL B */
-"\x0001d624" "c" /* <U0001D624> MATHEMATICAL SANS-SERIF ITALIC SMALL C */
-"\x0001d625" "d" /* <U0001D625> MATHEMATICAL SANS-SERIF ITALIC SMALL D */
-"\x0001d626" "e" /* <U0001D626> MATHEMATICAL SANS-SERIF ITALIC SMALL E */
-"\x0001d627" "f" /* <U0001D627> MATHEMATICAL SANS-SERIF ITALIC SMALL F */
-"\x0001d628" "g" /* <U0001D628> MATHEMATICAL SANS-SERIF ITALIC SMALL G */
-"\x0001d629" "h" /* <U0001D629> MATHEMATICAL SANS-SERIF ITALIC SMALL H */
-"\x0001d62a" "i" /* <U0001D62A> MATHEMATICAL SANS-SERIF ITALIC SMALL I */
-"\x0001d62b" "j" /* <U0001D62B> MATHEMATICAL SANS-SERIF ITALIC SMALL J */
-"\x0001d62c" "k" /* <U0001D62C> MATHEMATICAL SANS-SERIF ITALIC SMALL K */
-"\x0001d62d" "l" /* <U0001D62D> MATHEMATICAL SANS-SERIF ITALIC SMALL L */
-"\x0001d62e" "m" /* <U0001D62E> MATHEMATICAL SANS-SERIF ITALIC SMALL M */
-"\x0001d62f" "n" /* <U0001D62F> MATHEMATICAL SANS-SERIF ITALIC SMALL N */
-"\x0001d630" "o" /* <U0001D630> MATHEMATICAL SANS-SERIF ITALIC SMALL O */
-"\x0001d631" "p" /* <U0001D631> MATHEMATICAL SANS-SERIF ITALIC SMALL P */
-"\x0001d632" "q" /* <U0001D632> MATHEMATICAL SANS-SERIF ITALIC SMALL Q */
-"\x0001d633" "r" /* <U0001D633> MATHEMATICAL SANS-SERIF ITALIC SMALL R */
-"\x0001d634" "s" /* <U0001D634> MATHEMATICAL SANS-SERIF ITALIC SMALL S */
-"\x0001d635" "t" /* <U0001D635> MATHEMATICAL SANS-SERIF ITALIC SMALL T */
-"\x0001d636" "u" /* <U0001D636> MATHEMATICAL SANS-SERIF ITALIC SMALL U */
-"\x0001d637" "v" /* <U0001D637> MATHEMATICAL SANS-SERIF ITALIC SMALL V */
-"\x0001d638" "w" /* <U0001D638> MATHEMATICAL SANS-SERIF ITALIC SMALL W */
-"\x0001d639" "x" /* <U0001D639> MATHEMATICAL SANS-SERIF ITALIC SMALL X */
-"\x0001d63a" "y" /* <U0001D63A> MATHEMATICAL SANS-SERIF ITALIC SMALL Y */
-"\x0001d63b" "z" /* <U0001D63B> MATHEMATICAL SANS-SERIF ITALIC SMALL Z */
-"\x0001d63c" "A" /* <U0001D63C> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A */
-"\x0001d63d" "B" /* <U0001D63D> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL B */
-"\x0001d63e" "C" /* <U0001D63E> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL C */
-"\x0001d63f" "D" /* <U0001D63F> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL D */
-"\x0001d640" "E" /* <U0001D640> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL E */
-"\x0001d641" "F" /* <U0001D641> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL F */
-"\x0001d642" "G" /* <U0001D642> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL G */
-"\x0001d643" "H" /* <U0001D643> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL H */
-"\x0001d644" "I" /* <U0001D644> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL I */
-"\x0001d645" "J" /* <U0001D645> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL J */
-"\x0001d646" "K" /* <U0001D646> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL K */
-"\x0001d647" "L" /* <U0001D647> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL L */
-"\x0001d648" "M" /* <U0001D648> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL M */
-"\x0001d649" "N" /* <U0001D649> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL N */
-"\x0001d64a" "O" /* <U0001D64A> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL O */
-"\x0001d64b" "P" /* <U0001D64B> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL P */
-"\x0001d64c" "Q" /* <U0001D64C> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Q */
-"\x0001d64d" "R" /* <U0001D64D> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL R */
-"\x0001d64e" "S" /* <U0001D64E> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL S */
-"\x0001d64f" "T" /* <U0001D64F> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL T */
-"\x0001d650" "U" /* <U0001D650> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL U */
-"\x0001d651" "V" /* <U0001D651> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL V */
-"\x0001d652" "W" /* <U0001D652> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL W */
-"\x0001d653" "X" /* <U0001D653> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL X */
-"\x0001d654" "Y" /* <U0001D654> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Y */
-"\x0001d655" "Z" /* <U0001D655> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Z */
-"\x0001d656" "a" /* <U0001D656> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL A */
-"\x0001d657" "b" /* <U0001D657> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL B */
-"\x0001d658" "c" /* <U0001D658> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL C */
-"\x0001d659" "d" /* <U0001D659> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL D */
-"\x0001d65a" "e" /* <U0001D65A> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL E */
-"\x0001d65b" "f" /* <U0001D65B> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL F */
-"\x0001d65c" "g" /* <U0001D65C> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL G */
-"\x0001d65d" "h" /* <U0001D65D> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL H */
-"\x0001d65e" "i" /* <U0001D65E> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL I */
-"\x0001d65f" "j" /* <U0001D65F> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL J */
-"\x0001d660" "k" /* <U0001D660> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL K */
-"\x0001d661" "l" /* <U0001D661> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL L */
-"\x0001d662" "m" /* <U0001D662> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL M */
-"\x0001d663" "n" /* <U0001D663> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL N */
-"\x0001d664" "o" /* <U0001D664> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL O */
-"\x0001d665" "p" /* <U0001D665> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL P */
-"\x0001d666" "q" /* <U0001D666> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Q */
-"\x0001d667" "r" /* <U0001D667> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL R */
-"\x0001d668" "s" /* <U0001D668> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL S */
-"\x0001d669" "t" /* <U0001D669> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL T */
-"\x0001d66a" "u" /* <U0001D66A> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL U */
-"\x0001d66b" "v" /* <U0001D66B> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL V */
-"\x0001d66c" "w" /* <U0001D66C> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL W */
-"\x0001d66d" "x" /* <U0001D66D> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL X */
-"\x0001d66e" "y" /* <U0001D66E> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Y */
-"\x0001d66f" "z" /* <U0001D66F> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Z */
-"\x0001d670" "A" /* <U0001D670> MATHEMATICAL MONOSPACE CAPITAL A */
-"\x0001d671" "B" /* <U0001D671> MATHEMATICAL MONOSPACE CAPITAL B */
-"\x0001d672" "C" /* <U0001D672> MATHEMATICAL MONOSPACE CAPITAL C */
-"\x0001d673" "D" /* <U0001D673> MATHEMATICAL MONOSPACE CAPITAL D */
-"\x0001d674" "E" /* <U0001D674> MATHEMATICAL MONOSPACE CAPITAL E */
-"\x0001d675" "F" /* <U0001D675> MATHEMATICAL MONOSPACE CAPITAL F */
-"\x0001d676" "G" /* <U0001D676> MATHEMATICAL MONOSPACE CAPITAL G */
-"\x0001d677" "H" /* <U0001D677> MATHEMATICAL MONOSPACE CAPITAL H */
-"\x0001d678" "I" /* <U0001D678> MATHEMATICAL MONOSPACE CAPITAL I */
-"\x0001d679" "J" /* <U0001D679> MATHEMATICAL MONOSPACE CAPITAL J */
-"\x0001d67a" "K" /* <U0001D67A> MATHEMATICAL MONOSPACE CAPITAL K */
-"\x0001d67b" "L" /* <U0001D67B> MATHEMATICAL MONOSPACE CAPITAL L */
-"\x0001d67c" "M" /* <U0001D67C> MATHEMATICAL MONOSPACE CAPITAL M */
-"\x0001d67d" "N" /* <U0001D67D> MATHEMATICAL MONOSPACE CAPITAL N */
-"\x0001d67e" "O" /* <U0001D67E> MATHEMATICAL MONOSPACE CAPITAL O */
-"\x0001d67f" "P" /* <U0001D67F> MATHEMATICAL MONOSPACE CAPITAL P */
-"\x0001d680" "Q" /* <U0001D680> MATHEMATICAL MONOSPACE CAPITAL Q */
-"\x0001d681" "R" /* <U0001D681> MATHEMATICAL MONOSPACE CAPITAL R */
-"\x0001d682" "S" /* <U0001D682> MATHEMATICAL MONOSPACE CAPITAL S */
-"\x0001d683" "T" /* <U0001D683> MATHEMATICAL MONOSPACE CAPITAL T */
-"\x0001d684" "U" /* <U0001D684> MATHEMATICAL MONOSPACE CAPITAL U */
-"\x0001d685" "V" /* <U0001D685> MATHEMATICAL MONOSPACE CAPITAL V */
-"\x0001d686" "W" /* <U0001D686> MATHEMATICAL MONOSPACE CAPITAL W */
-"\x0001d687" "X" /* <U0001D687> MATHEMATICAL MONOSPACE CAPITAL X */
-"\x0001d688" "Y" /* <U0001D688> MATHEMATICAL MONOSPACE CAPITAL Y */
-"\x0001d689" "Z" /* <U0001D689> MATHEMATICAL MONOSPACE CAPITAL Z */
-"\x0001d68a" "a" /* <U0001D68A> MATHEMATICAL MONOSPACE SMALL A */
-"\x0001d68b" "b" /* <U0001D68B> MATHEMATICAL MONOSPACE SMALL B */
-"\x0001d68c" "c" /* <U0001D68C> MATHEMATICAL MONOSPACE SMALL C */
-"\x0001d68d" "d" /* <U0001D68D> MATHEMATICAL MONOSPACE SMALL D */
-"\x0001d68e" "e" /* <U0001D68E> MATHEMATICAL MONOSPACE SMALL E */
-"\x0001d68f" "f" /* <U0001D68F> MATHEMATICAL MONOSPACE SMALL F */
-"\x0001d690" "g" /* <U0001D690> MATHEMATICAL MONOSPACE SMALL G */
-"\x0001d691" "h" /* <U0001D691> MATHEMATICAL MONOSPACE SMALL H */
-"\x0001d692" "i" /* <U0001D692> MATHEMATICAL MONOSPACE SMALL I */
-"\x0001d693" "j" /* <U0001D693> MATHEMATICAL MONOSPACE SMALL J */
-"\x0001d694" "k" /* <U0001D694> MATHEMATICAL MONOSPACE SMALL K */
-"\x0001d695" "l" /* <U0001D695> MATHEMATICAL MONOSPACE SMALL L */
-"\x0001d696" "m" /* <U0001D696> MATHEMATICAL MONOSPACE SMALL M */
-"\x0001d697" "n" /* <U0001D697> MATHEMATICAL MONOSPACE SMALL N */
-"\x0001d698" "o" /* <U0001D698> MATHEMATICAL MONOSPACE SMALL O */
-"\x0001d699" "p" /* <U0001D699> MATHEMATICAL MONOSPACE SMALL P */
-"\x0001d69a" "q" /* <U0001D69A> MATHEMATICAL MONOSPACE SMALL Q */
-"\x0001d69b" "r" /* <U0001D69B> MATHEMATICAL MONOSPACE SMALL R */
-"\x0001d69c" "s" /* <U0001D69C> MATHEMATICAL MONOSPACE SMALL S */
-"\x0001d69d" "t" /* <U0001D69D> MATHEMATICAL MONOSPACE SMALL T */
-"\x0001d69e" "u" /* <U0001D69E> MATHEMATICAL MONOSPACE SMALL U */
-"\x0001d69f" "v" /* <U0001D69F> MATHEMATICAL MONOSPACE SMALL V */
-"\x0001d6a0" "w" /* <U0001D6A0> MATHEMATICAL MONOSPACE SMALL W */
-"\x0001d6a1" "x" /* <U0001D6A1> MATHEMATICAL MONOSPACE SMALL X */
-"\x0001d6a2" "y" /* <U0001D6A2> MATHEMATICAL MONOSPACE SMALL Y */
-"\x0001d6a3" "z" /* <U0001D6A3> MATHEMATICAL MONOSPACE SMALL Z */
-"\x0001d7ce" "0" /* <U0001D7CE> MATHEMATICAL BOLD DIGIT ZERO */
-"\x0001d7cf" "1" /* <U0001D7CF> MATHEMATICAL BOLD DIGIT ONE */
-"\x0001d7d0" "2" /* <U0001D7D0> MATHEMATICAL BOLD DIGIT TWO */
-"\x0001d7d1" "3" /* <U0001D7D1> MATHEMATICAL BOLD DIGIT THREE */
-"\x0001d7d2" "4" /* <U0001D7D2> MATHEMATICAL BOLD DIGIT FOUR */
-"\x0001d7d3" "5" /* <U0001D7D3> MATHEMATICAL BOLD DIGIT FIVE */
-"\x0001d7d4" "6" /* <U0001D7D4> MATHEMATICAL BOLD DIGIT SIX */
-"\x0001d7d5" "7" /* <U0001D7D5> MATHEMATICAL BOLD DIGIT SEVEN */
-"\x0001d7d6" "8" /* <U0001D7D6> MATHEMATICAL BOLD DIGIT EIGHT */
-"\x0001d7d7" "9" /* <U0001D7D7> MATHEMATICAL BOLD DIGIT NINE */
-"\x0001d7d8" "0" /* <U0001D7D8> MATHEMATICAL DOUBLE-STRUCK DIGIT ZERO */
-"\x0001d7d9" "1" /* <U0001D7D9> MATHEMATICAL DOUBLE-STRUCK DIGIT ONE */
-"\x0001d7da" "2" /* <U0001D7DA> MATHEMATICAL DOUBLE-STRUCK DIGIT TWO */
-"\x0001d7db" "3" /* <U0001D7DB> MATHEMATICAL DOUBLE-STRUCK DIGIT THREE */
-"\x0001d7dc" "4" /* <U0001D7DC> MATHEMATICAL DOUBLE-STRUCK DIGIT FOUR */
-"\x0001d7dd" "5" /* <U0001D7DD> MATHEMATICAL DOUBLE-STRUCK DIGIT FIVE */
-"\x0001d7de" "6" /* <U0001D7DE> MATHEMATICAL DOUBLE-STRUCK DIGIT SIX */
-"\x0001d7df" "7" /* <U0001D7DF> MATHEMATICAL DOUBLE-STRUCK DIGIT SEVEN */
-"\x0001d7e0" "8" /* <U0001D7E0> MATHEMATICAL DOUBLE-STRUCK DIGIT EIGHT */
-"\x0001d7e1" "9" /* <U0001D7E1> MATHEMATICAL DOUBLE-STRUCK DIGIT NINE */
-"\x0001d7e2" "0" /* <U0001D7E2> MATHEMATICAL SANS-SERIF DIGIT ZERO */
-"\x0001d7e3" "1" /* <U0001D7E3> MATHEMATICAL SANS-SERIF DIGIT ONE */
-"\x0001d7e4" "2" /* <U0001D7E4> MATHEMATICAL SANS-SERIF DIGIT TWO */
-"\x0001d7e5" "3" /* <U0001D7E5> MATHEMATICAL SANS-SERIF DIGIT THREE */
-"\x0001d7e6" "4" /* <U0001D7E6> MATHEMATICAL SANS-SERIF DIGIT FOUR */
-"\x0001d7e7" "5" /* <U0001D7E7> MATHEMATICAL SANS-SERIF DIGIT FIVE */
-"\x0001d7e8" "6" /* <U0001D7E8> MATHEMATICAL SANS-SERIF DIGIT SIX */
-"\x0001d7e9" "7" /* <U0001D7E9> MATHEMATICAL SANS-SERIF DIGIT SEVEN */
-"\x0001d7ea" "8" /* <U0001D7EA> MATHEMATICAL SANS-SERIF DIGIT EIGHT */
-"\x0001d7eb" "9" /* <U0001D7EB> MATHEMATICAL SANS-SERIF DIGIT NINE */
-"\x0001d7ec" "0" /* <U0001D7EC> MATHEMATICAL SANS-SERIF BOLD DIGIT ZERO */
-"\x0001d7ed" "1" /* <U0001D7ED> MATHEMATICAL SANS-SERIF BOLD DIGIT ONE */
-"\x0001d7ee" "2" /* <U0001D7EE> MATHEMATICAL SANS-SERIF BOLD DIGIT TWO */
-"\x0001d7ef" "3" /* <U0001D7EF> MATHEMATICAL SANS-SERIF BOLD DIGIT THREE */
-"\x0001d7f0" "4" /* <U0001D7F0> MATHEMATICAL SANS-SERIF BOLD DIGIT FOUR */
-"\x0001d7f1" "5" /* <U0001D7F1> MATHEMATICAL SANS-SERIF BOLD DIGIT FIVE */
-"\x0001d7f2" "6" /* <U0001D7F2> MATHEMATICAL SANS-SERIF BOLD DIGIT SIX */
-"\x0001d7f3" "7" /* <U0001D7F3> MATHEMATICAL SANS-SERIF BOLD DIGIT SEVEN */
-"\x0001d7f4" "8" /* <U0001D7F4> MATHEMATICAL SANS-SERIF BOLD DIGIT EIGHT */
-"\x0001d7f5" "9" /* <U0001D7F5> MATHEMATICAL SANS-SERIF BOLD DIGIT NINE */
-"\x0001d7f6" "0" /* <U0001D7F6> MATHEMATICAL MONOSPACE DIGIT ZERO */
-"\x0001d7f7" "1" /* <U0001D7F7> MATHEMATICAL MONOSPACE DIGIT ONE */
-"\x0001d7f8" "2" /* <U0001D7F8> MATHEMATICAL MONOSPACE DIGIT TWO */
-"\x0001d7f9" "3" /* <U0001D7F9> MATHEMATICAL MONOSPACE DIGIT THREE */
-"\x0001d7fa" "4" /* <U0001D7FA> MATHEMATICAL MONOSPACE DIGIT FOUR */
-"\x0001d7fb" "5" /* <U0001D7FB> MATHEMATICAL MONOSPACE DIGIT FIVE */
-"\x0001d7fc" "6" /* <U0001D7FC> MATHEMATICAL MONOSPACE DIGIT SIX */
-"\x0001d7fd" "7" /* <U0001D7FD> MATHEMATICAL MONOSPACE DIGIT SEVEN */
-"\x0001d7fe" "8" /* <U0001D7FE> MATHEMATICAL MONOSPACE DIGIT EIGHT */
-"\x0001d7ff" "9" /* <U0001D7FF> MATHEMATICAL MONOSPACE DIGIT NINE */
+"\x00a0" " " # <U00A0> NO-BREAK SPACE
+"\x00a9" "(C)" # <U00A9> COPYRIGHT SIGN
+"\x00ab" "<<" # <U00AB> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+"\x00ad" "-" # <U00AD> SOFT HYPHEN
+"\x00ae" "(R)" # <U00AE> REGISTERED SIGN
+"\x00b5" "u" # <U00B5> MICRO SIGN
+"\x00b8" "," # <U00B8> CEDILLA
+"\x00bb" ">>" # <U00BB> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+"\x00bc" " 1/4 " # <U00BC> VULGAR FRACTION ONE QUARTER
+"\x00bd" " 1/2 " # <U00BD> VULGAR FRACTION ONE HALF
+"\x00be" " 3/4 " # <U00BE> VULGAR FRACTION THREE QUARTERS
+"\x00c6" "AE" # <U00C6> LATIN CAPITAL LETTER AE
+"\x00d7" "x" # <U00D7> MULTIPLICATION SIGN
+"\x00df" "ss" # <U00DF> LATIN SMALL LETTER SHARP S
+"\x00e6" "ae" # <U00E6> LATIN SMALL LETTER AE
+"\x0132" "IJ" # <U0132> LATIN CAPITAL LIGATURE IJ
+"\x0133" "ij" # <U0133> LATIN SMALL LIGATURE IJ
+"\x0149" "'n" # <U0149> LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
+"\x0152" "OE" # <U0152> LATIN CAPITAL LIGATURE OE
+"\x0153" "oe" # <U0153> LATIN SMALL LIGATURE OE
+"\x017f" "s" # <U017F> LATIN SMALL LETTER LONG S
+"\x01c7" "LJ" # <U01C7> LATIN CAPITAL LETTER LJ
+"\x01c8" "Lj" # <U01C8> LATIN CAPITAL LETTER L WITH SMALL LETTER J
+"\x01c9" "lj" # <U01C9> LATIN SMALL LETTER LJ
+"\x01ca" "NJ" # <U01CA> LATIN CAPITAL LETTER NJ
+"\x01cb" "Nj" # <U01CB> LATIN CAPITAL LETTER N WITH SMALL LETTER J
+"\x01cc" "nj" # <U01CC> LATIN SMALL LETTER NJ
+"\x01f1" "DZ" # <U01F1> LATIN CAPITAL LETTER DZ
+"\x01f2" "Dz" # <U01F2> LATIN CAPITAL LETTER D WITH SMALL LETTER Z
+"\x01f3" "dz" # <U01F3> LATIN SMALL LETTER DZ
+"\x02bc" "'" # <U02BC> MODIFIER LETTER APOSTROPHE
+"\x02c6" "^" # <U02C6> MODIFIER LETTER CIRCUMFLEX ACCENT
+"\x02c8" "'" # <U02C8> MODIFIER LETTER VERTICAL LINE
+"\x02cb" "`" # <U02CB> MODIFIER LETTER GRAVE ACCENT
+"\x02cd" "_" # <U02CD> MODIFIER LETTER LOW MACRON
+"\x02d0" ":" # <U02D0> MODIFIER LETTER TRIANGULAR COLON
+"\x02dc" "~" # <U02DC> SMALL TILDE
+"\x0370" "H" # <U0370> GREEK CAPITAL LETTER HETA
+"\x0371" "h" # <U0371> GREEK SMALL LETTER HETA
+"\x0372" "SS" # <U0372> GREEK CAPITAL LETTER ARCHAIC SAMPI
+"\x0373" "ss" # <U0373> GREEK SMALL LETTER ARCHAIC SAMPI
+"\x0374" "#" # <U0374> GREEK NUMERAL SIGN
+"\x0375" "#`" # <U0375> GREEK LOWER NUMERAL SIGN
+"\x0376" "W" # <U0376> GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA
+"\x0377" "w" # <U0377> GREEK SMALL LETTER PAMPHYLIAN DIGAMMA
+"\x037a" "i" # <U037A> GREEK YPOGEGRAMMENI
+"\x037b" "s" # <U037B> GREEK SMALL REVERSED LUNATE SIGMA SYMBOL
+"\x037c" "s" # <U037C> GREEK SMALL DOTTED LUNATE SIGMA SYMBOL
+"\x037d" "s" # <U037D> GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
+"\x037e" "?" # <U037E> GREEK QUESTION MARK
+"\x037f" "J" # <U037F> GREEK CAPITAL LETTER YOT
+"\x0384" "`" # <U0384> GREEK TONOS
+"\x0385" "`" # <U0385> GREEK DIALYTIKA TONOS
+"\x0386" "A" # <U0386> GREEK CAPITAL LETTER ALPHA WITH TONOS
+"\x0387" ";" # <U0387> GREEK ANO TELEIA
+"\x0388" "E" # <U0388> GREEK CAPITAL LETTER EPSILON WITH TONOS
+"\x0389" "I" # <U0389> GREEK CAPITAL LETTER ETA WITH TONOS
+"\x038a" "I" # <U038A> GREEK CAPITAL LETTER IOTA WITH TONOS
+"\x038c" "O" # <U038C> GREEK CAPITAL LETTER OMICRON WITH TONOS
+"\x038e" "Y" # <U038E> GREEK CAPITAL LETTER UPSILON WITH TONOS
+"\x038f" "O" # <U038F> GREEK CAPITAL LETTER OMEGA WITH TONOS
+"\x0390" "I" # <U0390> GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+"\x0391" "A" # <U0391> GREEK CAPITAL LETTER ALPHA
+"\x0392" "V" # <U0392> GREEK CAPITAL LETTER BETA
+"\x0393" "G" # <U0393> GREEK CAPITAL LETTER GAMMA
+"\x0394" "D" # <U0394> GREEK CAPITAL LETTER DELTA
+"\x0395" "E" # <U0395> GREEK CAPITAL LETTER EPSILON
+"\x0396" "Z" # <U0396> GREEK CAPITAL LETTER ZETA
+"\x0397" "I" # <U0397> GREEK CAPITAL LETTER ETA
+"\x0398" "TH" # <U0398> GREEK CAPITAL LETTER THETA
+"\x0399" "I" # <U0399> GREEK CAPITAL LETTER IOTA
+"\x039a" "K" # <U039A> GREEK CAPITAL LETTER KAPPA
+"\x039b" "L" # <U039B> GREEK CAPITAL LETTER LAMDA
+"\x039c" "M" # <U039C> GREEK CAPITAL LETTER MU
+"\x039d" "N" # <U039D> GREEK CAPITAL LETTER NU
+"\x039e" "X" # <U039E> GREEK CAPITAL LETTER XI
+"\x039f" "O" # <U039F> GREEK CAPITAL LETTER OMICRON
+"\x03a0" "P" # <U03A0> GREEK CAPITAL LETTER PI
+"\x03a1" "R" # <U03A1> GREEK CAPITAL LETTER RHO
+"\x03a3" "S" # <U03A3> GREEK CAPITAL LETTER SIGMA
+"\x03a4" "T" # <U03A4> GREEK CAPITAL LETTER TAU
+"\x03a5" "Y" # <U03A5> GREEK CAPITAL LETTER UPSILON
+"\x03a6" "F" # <U03A6> GREEK CAPITAL LETTER PHI
+"\x03a7" "CH" # <U03A7> GREEK CAPITAL LETTER CHI
+"\x03a8" "PS" # <U03A8> GREEK CAPITAL LETTER PSI
+"\x03a9" "O" # <U03A9> GREEK CAPITAL LETTER OMEGA
+"\x03aa" "I" # <U03AA> GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+"\x03ab" "Y" # <U03AB> GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+"\x03ac" "a" # <U03AC> GREEK SMALL LETTER ALPHA WITH TONOS
+"\x03ad" "e" # <U03AD> GREEK SMALL LETTER EPSILON WITH TONOS
+"\x03ae" "i" # <U03AE> GREEK SMALL LETTER ETA WITH TONOS
+"\x03af" "i" # <U03AF> GREEK SMALL LETTER IOTA WITH TONOS
+"\x03b0" "y" # <U03B0> GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+"\x03b1" "a" # <U03B1> GREEK SMALL LETTER ALPHA
+"\x03b2" "v" # <U03B2> GREEK SMALL LETTER BETA
+"\x03b3" "g" # <U03B3> GREEK SMALL LETTER GAMMA
+"\x03b4" "d" # <U03B4> GREEK SMALL LETTER DELTA
+"\x03b5" "e" # <U03B5> GREEK SMALL LETTER EPSILON
+"\x03b6" "z" # <U03B6> GREEK SMALL LETTER ZETA
+"\x03b7" "i" # <U03B7> GREEK SMALL LETTER ETA
+"\x03b8" "th" # <U03B8> GREEK SMALL LETTER THETA
+"\x03b9" "i" # <U03B9> GREEK SMALL LETTER IOTA
+"\x03ba" "k" # <U03BA> GREEK SMALL LETTER KAPPA
+"\x03bb" "l" # <U03BB> GREEK SMALL LETTER LAMDA
+"\x03bc" "m" # <U03BC> GREEK SMALL LETTER MU
+"\x03bd" "n" # <U03BD> GREEK SMALL LETTER NU
+"\x03be" "x" # <U03BE> GREEK SMALL LETTER XI
+"\x03bf" "o" # <U03BF> GREEK SMALL LETTER OMICRON
+"\x03c0" "p" # <U03C0> GREEK SMALL LETTER PI
+"\x03c1" "r" # <U03C1> GREEK SMALL LETTER RHO
+"\x03c2" "s" # <U03C2> GREEK SMALL LETTER FINAL SIGMA
+"\x03c3" "s" # <U03C3> GREEK SMALL LETTER SIGMA
+"\x03c4" "t" # <U03C4> GREEK SMALL LETTER TAU
+"\x03c5" "y" # <U03C5> GREEK SMALL LETTER UPSILON
+"\x03c6" "f" # <U03C6> GREEK SMALL LETTER PHI
+"\x03c7" "ch" # <U03C7> GREEK SMALL LETTER CHI
+"\x03c8" "ps" # <U03C8> GREEK SMALL LETTER PSI
+"\x03c9" "o" # <U03C9> GREEK SMALL LETTER OMEGA
+"\x03ca" "i" # <U03CA> GREEK SMALL LETTER IOTA WITH DIALYTIKA
+"\x03cb" "y" # <U03CB> GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+"\x03cc" "o" # <U03CC> GREEK SMALL LETTER OMICRON WITH TONOS
+"\x03cd" "y" # <U03CD> GREEK SMALL LETTER UPSILON WITH TONOS
+"\x03ce" "o" # <U03CE> GREEK SMALL LETTER OMEGA WITH TONOS
+"\x03cf" "&" # <U03CF> GREEK CAPITAL KAI SYMBOL
+"\x03d0" "b" # <U03D0> GREEK BETA SYMBOL
+"\x03d1" "th" # <U03D1> GREEK THETA SYMBOL
+"\x03d2" "Y`" # <U03D2> GREEK UPSILON WITH HOOK SYMBOL
+"\x03d3" "Y`" # <U03D3> GREEK UPSILON WITH ACUTE AND HOOK SYMBOL
+"\x03d4" "Y`" # <U03D4> GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL
+"\x03d5" "f" # <U03D5> GREEK PHI SYMBOL
+"\x03d6" "p" # <U03D6> GREEK PI SYMBOL
+"\x03d7" "&" # <U03D7> GREEK KAI SYMBOL
+"\x03d8" "Q" # <U03D8> GREEK LETTER ARCHAIC KOPPA
+"\x03d9" "q" # <U03D9> GREEK SMALL LETTER ARCHAIC KOPPA
+"\x03da" "6" # <U03DA> GREEK LETTER STIGMA
+"\x03db" "6" # <U03DB> GREEK SMALL LETTER STIGMA
+"\x03dc" "W" # <U03DC> GREEK LETTER DIGAMMA
+"\x03dd" "w" # <U03DD> GREEK SMALL LETTER DIGAMMA
+"\x03de" "90" # <U03DE> GREEK LETTER KOPPA
+"\x03df" "90" # <U03DF> GREEK SMALL LETTER KOPPA
+"\x03e0" "900" # <U03E0> GREEK LETTER SAMPI
+"\x03e1" "900" # <U03E1> GREEK SMALL LETTER SAMPI
+"\x03e2" "SH" # <U03E2> COPTIC CAPITAL LETTER SHEI
+"\x03e3" "sh" # <U03E3> COPTIC SMALL LETTER SHEI
+"\x03e4" "F" # <U03E4> COPTIC CAPITAL LETTER FEI
+"\x03e5" "f" # <U03E5> COPTIC SMALL LETTER FEI
+"\x03e6" "KH" # <U03E6> COPTIC CAPITAL LETTER KHEI
+"\x03e7" "kh" # <U03E7> COPTIC SMALL LETTER KHEI
+"\x03e8" "H" # <U03E8> COPTIC CAPITAL LETTER HORI
+"\x03e9" "h" # <U03E9> COPTIC SMALL LETTER HORI
+"\x03ea" "DJ" # <U03EA> COPTIC CAPITAL LETTER GANGIA
+"\x03eb" "dj" # <U03EB> COPTIC SMALL LETTER GANGIA
+"\x03ec" "GJ" # <U03EC> COPTIC CAPITAL LETTER SHIMA
+"\x03ed" "gj" # <U03ED> COPTIC SMALL LETTER SHIMA
+"\x03ee" "TI" # <U03EE> COPTIC CAPITAL LETTER DEI
+"\x03ef" "ti" # <U03EF> COPTIC SMALL LETTER DEI
+"\x03f0" "k" # <U03F0> GREEK KAPPA SYMBOL
+"\x03f1" "r" # <U03F1> GREEK RHO SYMBOL
+"\x03f2" "s" # <U03F2> GREEK LUNATE SIGMA SYMBOL
+"\x03f3" "j" # <U03F3> GREEK LETTER YOT
+"\x03f4" "TH" # <U03F4> GREEK CAPITAL THETA SYMBOL
+"\x03f5" "e" # <U03F5> GREEK LUNATE EPSILON SYMBOL
+"\x03f6" "e" # <U03F6> GREEK REVERSED LUNATE EPSILON SYMBOL
+"\x03f7" "SH" # <U03F7> GREEK CAPITAL LETTER SHO
+"\x03f8" "sh" # <U03F8> GREEK SMALL LETTER SHO
+"\x03f9" "S" # <U03F9> GREEK CAPITAL LUNATE SIGMA SYMBOL
+"\x03fa" "S" # <U03FA> GREEK CAPITAL LETTER SAN
+"\x03fb" "s" # <U03FB> GREEK SMALL LETTER SAN
+"\x03fc" "r" # <U03FC> GREEK RHO WITH STROKE SYMBOL
+"\x03fd" "S" # <U03FD> GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL
+"\x03fe" "S" # <U03FE> GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL
+"\x03ff" "S" # <U03FF> GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL
+"\x0401" "YO" # <U0401> CYRILLIC CAPITAL LETTER IO
+"\x0402" "DJ" # <U0402> CYRILLIC CAPITAL LETTER DJE
+"\x0403" "G`" # <U0403> CYRILLIC CAPITAL LETTER GJE
+"\x0404" "YE" # <U0404> CYRILLIC CAPITAL LETTER UKRAINIAN IE
+"\x0405" "Z`" # <U0405> CYRILLIC CAPITAL LETTER DZE
+"\x0406" "I" # <U0406> CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+"\x0407" "YI" # <U0407> CYRILLIC CAPITAL LETTER YI
+"\x0408" "J" # <U0408> CYRILLIC CAPITAL LETTER JE
+"\x0409" "L`" # <U0409> CYRILLIC CAPITAL LETTER LJE
+"\x040a" "N`" # <U040A> CYRILLIC CAPITAL LETTER NJE
+"\x040b" "TSH" # <U040B> CYRILLIC CAPITAL LETTER TSHE
+"\x040c" "K`" # <U040C> CYRILLIC CAPITAL LETTER KJE
+"\x040e" "U`" # <U040E> CYRILLIC CAPITAL LETTER SHORT U
+"\x040f" "DH" # <U040F> CYRILLIC CAPITAL LETTER DZHE
+"\x0410" "A" # <U0410> CYRILLIC CAPITAL LETTER A
+"\x0411" "B" # <U0411> CYRILLIC CAPITAL LETTER BE
+"\x0412" "V" # <U0412> CYRILLIC CAPITAL LETTER VE
+"\x0413" "G" # <U0413> CYRILLIC CAPITAL LETTER GHE
+"\x0414" "D" # <U0414> CYRILLIC CAPITAL LETTER DE
+"\x0415" "E" # <U0415> CYRILLIC CAPITAL LETTER IE
+"\x0416" "ZH" # <U0416> CYRILLIC CAPITAL LETTER ZHE
+"\x0417" "Z" # <U0417> CYRILLIC CAPITAL LETTER ZE
+"\x0418" "I" # <U0418> CYRILLIC CAPITAL LETTER I
+"\x0419" "J" # <U0419> CYRILLIC CAPITAL LETTER SHORT I
+"\x041a" "K" # <U041A> CYRILLIC CAPITAL LETTER KA
+"\x041b" "L" # <U041B> CYRILLIC CAPITAL LETTER EL
+"\x041c" "M" # <U041C> CYRILLIC CAPITAL LETTER EM
+"\x041d" "N" # <U041D> CYRILLIC CAPITAL LETTER EN
+"\x041e" "O" # <U041E> CYRILLIC CAPITAL LETTER O
+"\x041f" "P" # <U041F> CYRILLIC CAPITAL LETTER PE
+"\x0420" "R" # <U0420> CYRILLIC CAPITAL LETTER ER
+"\x0421" "S" # <U0421> CYRILLIC CAPITAL LETTER ES
+"\x0422" "T" # <U0422> CYRILLIC CAPITAL LETTER TE
+"\x0423" "U" # <U0423> CYRILLIC CAPITAL LETTER U
+"\x0424" "F" # <U0424> CYRILLIC CAPITAL LETTER EF
+"\x0425" "X" # <U0425> CYRILLIC CAPITAL LETTER HA
+"\x0426" "CZ" # <U0426> CYRILLIC CAPITAL LETTER TSE
+"\x0427" "CH" # <U0427> CYRILLIC CAPITAL LETTER CHE
+"\x0428" "SH" # <U0428> CYRILLIC CAPITAL LETTER SHA
+"\x0429" "SHH" # <U0429> CYRILLIC CAPITAL LETTER SHCHA
+"\x042a" "A`" # <U042A> CYRILLIC CAPITAL LETTER HARD SIGN
+"\x042b" "Y`" # <U042B> CYRILLIC CAPITAL LETTER YERU
+"\x042c" "`" # <U042C> CYRILLIC CAPITAL LETTER SOFT SIGN
+"\x042d" "E`" # <U042D> CYRILLIC CAPITAL LETTER E
+"\x042e" "YU" # <U042E> CYRILLIC CAPITAL LETTER YU
+"\x042f" "YA" # <U042F> CYRILLIC CAPITAL LETTER YA
+"\x0430" "a" # <U0430> CYRILLIC SMALL LETTER A
+"\x0431" "b" # <U0431> CYRILLIC SMALL LETTER BE
+"\x0432" "v" # <U0432> CYRILLIC SMALL LETTER VE
+"\x0433" "g" # <U0433> CYRILLIC SMALL LETTER GHE
+"\x0434" "d" # <U0434> CYRILLIC SMALL LETTER DE
+"\x0435" "e" # <U0435> CYRILLIC SMALL LETTER IE
+"\x0436" "zh" # <U0436> CYRILLIC SMALL LETTER ZHE
+"\x0437" "z" # <U0437> CYRILLIC SMALL LETTER ZE
+"\x0438" "i" # <U0438> CYRILLIC SMALL LETTER I
+"\x0439" "j" # <U0439> CYRILLIC SMALL LETTER SHORT I
+"\x043a" "k" # <U043A> CYRILLIC SMALL LETTER KA
+"\x043b" "l" # <U043B> CYRILLIC SMALL LETTER EL
+"\x043c" "m" # <U043C> CYRILLIC SMALL LETTER EM
+"\x043d" "n" # <U043D> CYRILLIC SMALL LETTER EN
+"\x043e" "o" # <U043E> CYRILLIC SMALL LETTER O
+"\x043f" "p" # <U043F> CYRILLIC SMALL LETTER PE
+"\x0440" "r" # <U0440> CYRILLIC SMALL LETTER ER
+"\x0441" "s" # <U0441> CYRILLIC SMALL LETTER ES
+"\x0442" "t" # <U0442> CYRILLIC SMALL LETTER TE
+"\x0443" "u" # <U0443> CYRILLIC SMALL LETTER U
+"\x0444" "f" # <U0444> CYRILLIC SMALL LETTER EF
+"\x0445" "x" # <U0445> CYRILLIC SMALL LETTER HA
+"\x0446" "cz" # <U0446> CYRILLIC SMALL LETTER TSE
+"\x0447" "ch" # <U0447> CYRILLIC SMALL LETTER CHE
+"\x0448" "sh" # <U0448> CYRILLIC SMALL LETTER SHA
+"\x0449" "shh" # <U0449> CYRILLIC SMALL LETTER SHCHA
+"\x044a" "``" # <U044A> CYRILLIC SMALL LETTER HARD SIGN
+"\x044b" "y`" # <U044B> CYRILLIC SMALL LETTER YERU
+"\x044c" "`" # <U044C> CYRILLIC SMALL LETTER SOFT SIGN
+"\x044d" "e`" # <U044D> CYRILLIC SMALL LETTER E
+"\x044e" "yu" # <U044E> CYRILLIC SMALL LETTER YU
+"\x044f" "ya" # <U044F> CYRILLIC SMALL LETTER YA
+"\x0451" "yo" # <U0451> CYRILLIC SMALL LETTER IO
+"\x0452" "dj" # <U0452> CYRILLIC SMALL LETTER DJE
+"\x0453" "g`" # <U0453> CYRILLIC SMALL LETTER GJE
+"\x0454" "ye" # <U0454> CYRILLIC SMALL LETTER UKRAINIAN IE
+"\x0455" "z`" # <U0455> CYRILLIC SMALL LETTER DZE
+"\x0456" "i" # <U0456> CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+"\x0457" "yi" # <U0457> CYRILLIC SMALL LETTER YI
+"\x0458" "j" # <U0458> CYRILLIC SMALL LETTER JE
+"\x0459" "l`" # <U0459> CYRILLIC SMALL LETTER LJE
+"\x045a" "n`" # <U045A> CYRILLIC SMALL LETTER NJE
+"\x045b" "tsh" # <U045B> CYRILLIC SMALL LETTER TSHE
+"\x045c" "k`" # <U045C> CYRILLIC SMALL LETTER KJE
+"\x045e" "u`" # <U045E> CYRILLIC SMALL LETTER SHORT U
+"\x045f" "dh" # <U045F> CYRILLIC SMALL LETTER DZHE
+"\x046a" "O`" # <U046A> CYRILLIC CAPITAL LETTER BIG YUS
+"\x046b" "o`" # <U046B> CYRILLIC SMALL LETTER BIG YUS
+"\x0472" "FH" # <U0472> CYRILLIC CAPITAL LETTER FITA
+"\x0473" "fh" # <U0473> CYRILLIC SMALL LETTER FITA
+"\x0474" "YH" # <U0474> CYRILLIC CAPITAL LETTER IZHITSA
+"\x0475" "yh" # <U0475> CYRILLIC SMALL LETTER IZHITSA
+"\x048c" "E`" # <U048C> CYRILLIC CAPITAL LETTER SEMISOFT SIGN
+"\x048d" "e`" # <U048D> CYRILLIC SMALL LETTER SEMISOFT SIGN
+"\x0490" "G`" # <U0490> CYRILLIC CAPITAL LETTER GHE WITH UPTURN
+"\x0491" "g`" # <U0491> CYRILLIC SMALL LETTER GHE WITH UPTURN
+"\x0492" "GH" # <U0492> CYRILLIC CAPITAL LETTER GHE WITH STROKE
+"\x0493" "gh" # <U0493> CYRILLIC SMALL LETTER GHE WITH STROKE
+"\x0494" "GH" # <U0494> CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK
+"\x0495" "gh" # <U0495> CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK
+"\x0496" "ZH`" # <U0496> CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER
+"\x0497" "zh`" # <U0497> CYRILLIC SMALL LETTER ZHE WITH DESCENDER
+"\x049a" "K`" # <U049A> CYRILLIC CAPITAL LETTER KA WITH DESCENDER
+"\x049b" "k`" # <U049B> CYRILLIC SMALL LETTER KA WITH DESCENDER
+"\x049e" "K`" # <U049E> CYRILLIC CAPITAL LETTER KA WITH STROKE
+"\x049f" "k`" # <U049F> CYRILLIC SMALL LETTER KA WITH STROKE
+"\x04a2" "N`" # <U04A2> CYRILLIC CAPITAL LETTER EN WITH DESCENDER
+"\x04a3" "n`" # <U04A3> CYRILLIC SMALL LETTER EN WITH DESCENDER
+"\x04a4" "NG" # <U04A4> CYRILLIC CAPITAL LIGATURE EN GHE
+"\x04a5" "ng" # <U04A5> CYRILLIC SMALL LIGATURE EN GHE
+"\x04a6" "P`" # <U04A6> CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK
+"\x04a7" "p`" # <U04A7> CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK
+"\x04a8" "O`" # <U04A8> CYRILLIC CAPITAL LETTER ABKHASIAN HA
+"\x04a9" "o`" # <U04A9> CYRILLIC SMALL LETTER ABKHASIAN HA
+"\x04aa" "C`" # <U04AA> CYRILLIC CAPITAL LETTER ES WITH DESCENDER
+"\x04ab" "C`" # <U04AB> CYRILLIC SMALL LETTER ES WITH DESCENDER
+"\x04ac" "T`" # <U04AC> CYRILLIC CAPITAL LETTER TE WITH DESCENDER
+"\x04ad" "t`" # <U04AD> CYRILLIC SMALL LETTER TE WITH DESCENDER
+"\x04ae" "U" # <U04AE> CYRILLIC CAPITAL LETTER STRAIGHT U
+"\x04af" "u" # <U04AF> CYRILLIC SMALL LETTER STRAIGHT U
+"\x04b2" "H`" # <U04B2> CYRILLIC CAPITAL LETTER HA WITH DESCENDER
+"\x04b3" "h`" # <U04B3> CYRILLIC SMALL LETTER HA WITH DESCENDER
+"\x04b4" "TCZ" # <U04B4> CYRILLIC CAPITAL LIGATURE TE TSE
+"\x04b5" "tcz" # <U04B5> CYRILLIC SMALL LIGATURE TE TSE
+"\x04ba" "SH`" # <U04BA> CYRILLIC CAPITAL LETTER SHHA
+"\x04bb" "sh`" # <U04BB> CYRILLIC SMALL LETTER SHHA
+"\x04bc" "CH`" # <U04BC> CYRILLIC CAPITAL LETTER ABKHASIAN CHE
+"\x04bd" "ch`" # <U04BD> CYRILLIC SMALL LETTER ABKHASIAN CHE
+"\x04be" "CH`" # <U04BE> CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER
+"\x04bf" "ch`" # <U04BF> CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER
+"\x04c0" "i" # <U04C0> CYRILLIC LETTER PALOCHKA
+"\x04c1" "ZH`" # <U04C1> CYRILLIC CAPITAL LETTER ZHE WITH BREVE
+"\x04c2" "zh`" # <U04C2> CYRILLIC SMALL LETTER ZHE WITH BREVE
+"\x04cb" "CH`" # <U04CB> CYRILLIC CAPITAL LETTER KHAKASSIAN CHE
+"\x04cc" "ch`" # <U04CC> CYRILLIC SMALL LETTER KHAKASSIAN CHE
+"\x04d0" "A`" # <U04D0> CYRILLIC CAPITAL LETTER A WITH BREVE
+"\x04d1" "a`" # <U04D1> CYRILLIC SMALL LETTER A WITH BREVE
+"\x04d2" "A`" # <U04D2> CYRILLIC CAPITAL LETTER A WITH DIAERESIS
+"\x04d3" "a`" # <U04D3> CYRILLIC SMALL LETTER A WITH DIAERESIS
+"\x04d6" "E`" # <U04D6> CYRILLIC CAPITAL LETTER IE WITH BREVE
+"\x04d7" "e`" # <U04D7> CYRILLIC SMALL LETTER IE WITH BREVE
+"\x04d8" "A`" # <U04D8> CYRILLIC CAPITAL LETTER SCHWA
+"\x04d9" "a`" # <U04D9> CYRILLIC SMALL LETTER SCHWA
+"\x04dc" "ZH`" # <U04DC> CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
+"\x04dd" "zh`" # <U04DD> CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
+"\x04de" "Z`" # <U04DE> CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
+"\x04df" "z`" # <U04DF> CYRILLIC SMALL LETTER ZE WITH DIAERESIS
+"\x04e0" "Z`" # <U04E0> CYRILLIC CAPITAL LETTER ABKHASIAN DZE
+"\x04e1" "z`" # <U04E1> CYRILLIC SMALL LETTER ABKHASIAN DZE
+"\x04e4" "I`" # <U04E4> CYRILLIC CAPITAL LETTER I WITH DIAERESIS
+"\x04e5" "i`" # <U04E5> CYRILLIC SMALL LETTER I WITH DIAERESIS
+"\x04e6" "O`" # <U04E6> CYRILLIC CAPITAL LETTER O WITH DIAERESIS
+"\x04e7" "o`" # <U04E7> CYRILLIC SMALL LETTER O WITH DIAERESIS
+"\x04e8" "O`" # <U04E8> CYRILLIC CAPITAL LETTER BARRED O
+"\x04e9" "o`" # <U04E9> CYRILLIC SMALL LETTER BARRED O
+"\x04f0" "U`" # <U04F0> CYRILLIC CAPITAL LETTER U WITH DIAERESIS
+"\x04f1" "u`" # <U04F1> CYRILLIC SMALL LETTER U WITH DIAERESIS
+"\x04f2" "U`" # <U04F2> CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
+"\x04f3" "u`" # <U04F3> CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
+"\x04f4" "CH`" # <U04F4> CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
+"\x04f5" "ch`" # <U04F5> CYRILLIC SMALL LETTER CHE WITH DIAERESIS
+"\x04f8" "Y`" # <U04F8> CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
+"\x04f9" "y`" # <U04F9> CYRILLIC SMALL LETTER YERU WITH DIAERESIS
+"\x2002" " " # <U2002> EN SPACE
+"\x2003" " " # <U2003> EM SPACE
+"\x2004" " " # <U2004> THREE-PER-EM SPACE
+"\x2005" " " # <U2005> FOUR-PER-EM SPACE
+"\x2006" " " # <U2006> SIX-PER-EM SPACE
+"\x2008" " " # <U2008> PUNCTUATION SPACE
+"\x2009" " " # <U2009> THIN SPACE
+"\x200a" " " # <U200A> HAIR SPACE
+"\x200b" "" # <U200B> ZERO WIDTH SPACE
+"\x2010" "-" # <U2010> HYPHEN
+"\x2011" "-" # <U2011> NON-BREAKING HYPHEN
+"\x2012" "-" # <U2012> FIGURE DASH
+"\x2013" "-" # <U2013> EN DASH
+"\x2014" "--" # <U2014> EM DASH
+"\x2015" "-" # <U2015> HORIZONTAL BAR
+"\x2018" "'" # <U2018> LEFT SINGLE QUOTATION MARK
+"\x2019" "'" # <U2019> RIGHT SINGLE QUOTATION MARK
+"\x201a" "," # <U201A> SINGLE LOW-9 QUOTATION MARK
+"\x201b" "'" # <U201B> SINGLE HIGH-REVERSED-9 QUOTATION MARK
+"\x201c" "\"" # <U201C> LEFT DOUBLE QUOTATION MARK
+"\x201d" "\"" # <U201D> RIGHT DOUBLE QUOTATION MARK
+"\x201e" ",," # <U201E> DOUBLE LOW-9 QUOTATION MARK
+"\x201f" "\"" # <U201F> DOUBLE HIGH-REVERSED-9 QUOTATION MARK
+"\x2020" "+" # <U2020> DAGGER
+"\x2022" "o" # <U2022> BULLET
+"\x2024" "." # <U2024> ONE DOT LEADER
+"\x2025" ".." # <U2025> TWO DOT LEADER
+"\x2026" "..." # <U2026> HORIZONTAL ELLIPSIS
+"\x202f" " " # <U202F> NARROW NO-BREAK SPACE
+"\x2035" "`" # <U2035> REVERSED PRIME
+"\x2036" "``" # <U2036> REVERSED DOUBLE PRIME
+"\x2037" "```" # <U2037> REVERSED TRIPLE PRIME
+"\x2039" "<" # <U2039> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+"\x203a" ">" # <U203A> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+"\x203c" "!!" # <U203C> DOUBLE EXCLAMATION MARK
+"\x2044" "/" # <U2044> FRACTION SLASH
+"\x2047" "??" # <U2047> DOUBLE QUESTION MARK
+"\x2048" "?!" # <U2048> QUESTION EXCLAMATION MARK
+"\x2049" "!?" # <U2049> EXCLAMATION QUESTION MARK
+"\x205f" " " # <U205F> MEDIUM MATHEMATICAL SPACE
+"\x2060" "" # <U2060> WORD JOINER
+"\x2061" "" # <U2061> FUNCTION APPLICATION
+"\x2062" "" # <U2062> INVISIBLE TIMES
+"\x2063" "" # <U2063> INVISIBLE SEPARATOR
+"\x20a1" "C=" # <U20A1> COLON SIGN
+"\x20a8" "Rs" # <U20A8> RUPEE SIGN
+"\x20ac" "EUR" # <U20AC> EURO SIGN
+"\x20b9" "INR" # <U20B9> INDIAN RUPEE SIGN
+"\x2100" "a/c" # <U2100> ACCOUNT OF
+"\x2101" "a/s" # <U2101> ADDRESSED TO THE SUBJECT
+"\x2102" "C" # <U2102> DOUBLE-STRUCK CAPITAL C
+"\x2105" "c/o" # <U2105> CARE OF
+"\x2106" "c/u" # <U2106> CADA UNA
+"\x210a" "g" # <U210A> SCRIPT SMALL G
+"\x210b" "H" # <U210B> SCRIPT CAPITAL H
+"\x210c" "H" # <U210C> BLACK-LETTER CAPITAL H
+"\x210d" "H" # <U210D> DOUBLE-STRUCK CAPITAL H
+"\x210e" "h" # <U210E> PLANCK CONSTANT
+"\x2110" "I" # <U2110> SCRIPT CAPITAL I
+"\x2111" "I" # <U2111> BLACK-LETTER CAPITAL I
+"\x2112" "L" # <U2112> SCRIPT CAPITAL L
+"\x2113" "l" # <U2113> SCRIPT SMALL L
+"\x2115" "N" # <U2115> DOUBLE-STRUCK CAPITAL N
+"\x2116" "No" # <U2116> NUMERO SIGN
+"\x2119" "P" # <U2119> DOUBLE-STRUCK CAPITAL P
+"\x211a" "Q" # <U211A> DOUBLE-STRUCK CAPITAL Q
+"\x211b" "R" # <U211B> SCRIPT CAPITAL R
+"\x211c" "R" # <U211C> BLACK-LETTER CAPITAL R
+"\x211d" "R" # <U211D> DOUBLE-STRUCK CAPITAL R
+"\x2121" "TEL" # <U2121> TELEPHONE SIGN
+"\x2122" "(TM)" # <U2122> TRADE MARK SIGN
+"\x2124" "Z" # <U2124> DOUBLE-STRUCK CAPITAL Z
+"\x2126" "Ohm" # <U2126> OHM SIGN
+"\x2128" "Z" # <U2128> BLACK-LETTER CAPITAL Z
+"\x212c" "B" # <U212C> SCRIPT CAPITAL B
+"\x212d" "C" # <U212D> BLACK-LETTER CAPITAL C
+"\x212e" "e" # <U212E> ESTIMATED SYMBOL
+"\x212f" "e" # <U212F> SCRIPT SMALL E
+"\x2130" "E" # <U2130> SCRIPT CAPITAL E
+"\x2131" "F" # <U2131> SCRIPT CAPITAL F
+"\x2133" "M" # <U2133> SCRIPT CAPITAL M
+"\x2134" "o" # <U2134> SCRIPT SMALL O
+"\x2139" "i" # <U2139> INFORMATION SOURCE
+"\x2145" "D" # <U2145> DOUBLE-STRUCK ITALIC CAPITAL D
+"\x2146" "d" # <U2146> DOUBLE-STRUCK ITALIC SMALL D
+"\x2147" "e" # <U2147> DOUBLE-STRUCK ITALIC SMALL E
+"\x2148" "i" # <U2148> DOUBLE-STRUCK ITALIC SMALL I
+"\x2149" "j" # <U2149> DOUBLE-STRUCK ITALIC SMALL J
+"\x2153" " 1/3 " # <U2153> VULGAR FRACTION ONE THIRD
+"\x2154" " 2/3 " # <U2154> VULGAR FRACTION TWO THIRDS
+"\x2155" " 1/5 " # <U2155> VULGAR FRACTION ONE FIFTH
+"\x2156" " 2/5 " # <U2156> VULGAR FRACTION TWO FIFTHS
+"\x2157" " 3/5 " # <U2157> VULGAR FRACTION THREE FIFTHS
+"\x2158" " 4/5 " # <U2158> VULGAR FRACTION FOUR FIFTHS
+"\x2159" " 1/6 " # <U2159> VULGAR FRACTION ONE SIXTH
+"\x215a" " 5/6 " # <U215A> VULGAR FRACTION FIVE SIXTHS
+"\x215b" " 1/8 " # <U215B> VULGAR FRACTION ONE EIGHTH
+"\x215c" " 3/8 " # <U215C> VULGAR FRACTION THREE EIGHTHS
+"\x215d" " 5/8 " # <U215D> VULGAR FRACTION FIVE EIGHTHS
+"\x215e" " 7/8 " # <U215E> VULGAR FRACTION SEVEN EIGHTHS
+"\x215f" " 1/" # <U215F> FRACTION NUMERATOR ONE
+"\x2160" "I" # <U2160> ROMAN NUMERAL ONE
+"\x2161" "II" # <U2161> ROMAN NUMERAL TWO
+"\x2162" "III" # <U2162> ROMAN NUMERAL THREE
+"\x2163" "IV" # <U2163> ROMAN NUMERAL FOUR
+"\x2164" "V" # <U2164> ROMAN NUMERAL FIVE
+"\x2165" "VI" # <U2165> ROMAN NUMERAL SIX
+"\x2166" "VII" # <U2166> ROMAN NUMERAL SEVEN
+"\x2167" "VIII" # <U2167> ROMAN NUMERAL EIGHT
+"\x2168" "IX" # <U2168> ROMAN NUMERAL NINE
+"\x2169" "X" # <U2169> ROMAN NUMERAL TEN
+"\x216a" "XI" # <U216A> ROMAN NUMERAL ELEVEN
+"\x216b" "XII" # <U216B> ROMAN NUMERAL TWELVE
+"\x216c" "L" # <U216C> ROMAN NUMERAL FIFTY
+"\x216d" "C" # <U216D> ROMAN NUMERAL ONE HUNDRED
+"\x216e" "D" # <U216E> ROMAN NUMERAL FIVE HUNDRED
+"\x216f" "M" # <U216F> ROMAN NUMERAL ONE THOUSAND
+"\x2170" "i" # <U2170> SMALL ROMAN NUMERAL ONE
+"\x2171" "ii" # <U2171> SMALL ROMAN NUMERAL TWO
+"\x2172" "iii" # <U2172> SMALL ROMAN NUMERAL THREE
+"\x2173" "iv" # <U2173> SMALL ROMAN NUMERAL FOUR
+"\x2174" "v" # <U2174> SMALL ROMAN NUMERAL FIVE
+"\x2175" "vi" # <U2175> SMALL ROMAN NUMERAL SIX
+"\x2176" "vii" # <U2176> SMALL ROMAN NUMERAL SEVEN
+"\x2177" "viii" # <U2177> SMALL ROMAN NUMERAL EIGHT
+"\x2178" "ix" # <U2178> SMALL ROMAN NUMERAL NINE
+"\x2179" "x" # <U2179> SMALL ROMAN NUMERAL TEN
+"\x217a" "xi" # <U217A> SMALL ROMAN NUMERAL ELEVEN
+"\x217b" "xii" # <U217B> SMALL ROMAN NUMERAL TWELVE
+"\x217c" "l" # <U217C> SMALL ROMAN NUMERAL FIFTY
+"\x217d" "c" # <U217D> SMALL ROMAN NUMERAL ONE HUNDRED
+"\x217e" "d" # <U217E> SMALL ROMAN NUMERAL FIVE HUNDRED
+"\x217f" "m" # <U217F> SMALL ROMAN NUMERAL ONE THOUSAND
+"\x2190" "<-" # <U2190> LEFTWARDS ARROW
+"\x2192" "->" # <U2192> RIGHTWARDS ARROW
+"\x2194" "<->" # <U2194> LEFT RIGHT ARROW
+"\x21d0" "<=" # <U21D0> LEFTWARDS DOUBLE ARROW
+"\x21d2" "=>" # <U21D2> RIGHTWARDS DOUBLE ARROW
+"\x21d4" "<=>" # <U21D4> LEFT RIGHT DOUBLE ARROW
+"\x2212" "-" # <U2212> MINUS SIGN
+"\x2215" "/" # <U2215> DIVISION SLASH
+"\x2216" "\\" # <U2216> SET MINUS
+"\x2217" "*" # <U2217> ASTERISK OPERATOR
+"\x2223" "|" # <U2223> DIVIDES
+"\x2236" ":" # <U2236> RATIO
+"\x223c" "~" # <U223C> TILDE OPERATOR
+"\x2264" "<=" # <U2264> LESS-THAN OR EQUAL TO
+"\x2265" ">=" # <U2265> GREATER-THAN OR EQUAL TO
+"\x226a" "<<" # <U226A> MUCH LESS-THAN
+"\x226b" ">>" # <U226B> MUCH GREATER-THAN
+"\x22d8" "<<<" # <U22D8> VERY MUCH LESS-THAN
+"\x22d9" ">>>" # <U22D9> VERY MUCH GREATER-THAN
+"\x2400" "NUL" # <U2400> SYMBOL FOR NULL
+"\x2401" "SOH" # <U2401> SYMBOL FOR START OF HEADING
+"\x2402" "STX" # <U2402> SYMBOL FOR START OF TEXT
+"\x2403" "ETX" # <U2403> SYMBOL FOR END OF TEXT
+"\x2404" "EOT" # <U2404> SYMBOL FOR END OF TRANSMISSION
+"\x2405" "ENQ" # <U2405> SYMBOL FOR ENQUIRY
+"\x2406" "ACK" # <U2406> SYMBOL FOR ACKNOWLEDGE
+"\x2407" "BEL" # <U2407> SYMBOL FOR BELL
+"\x2408" "BS" # <U2408> SYMBOL FOR BACKSPACE
+"\x2409" "HT" # <U2409> SYMBOL FOR HORIZONTAL TABULATION
+"\x240a" "LF" # <U240A> SYMBOL FOR LINE FEED
+"\x240b" "VT" # <U240B> SYMBOL FOR VERTICAL TABULATION
+"\x240c" "FF" # <U240C> SYMBOL FOR FORM FEED
+"\x240d" "CR" # <U240D> SYMBOL FOR CARRIAGE RETURN
+"\x240e" "SO" # <U240E> SYMBOL FOR SHIFT OUT
+"\x240f" "SI" # <U240F> SYMBOL FOR SHIFT IN
+"\x2410" "DLE" # <U2410> SYMBOL FOR DATA LINK ESCAPE
+"\x2411" "DC1" # <U2411> SYMBOL FOR DEVICE CONTROL ONE
+"\x2412" "DC2" # <U2412> SYMBOL FOR DEVICE CONTROL TWO
+"\x2413" "DC3" # <U2413> SYMBOL FOR DEVICE CONTROL THREE
+"\x2414" "DC4" # <U2414> SYMBOL FOR DEVICE CONTROL FOUR
+"\x2415" "NAK" # <U2415> SYMBOL FOR NEGATIVE ACKNOWLEDGE
+"\x2416" "SYN" # <U2416> SYMBOL FOR SYNCHRONOUS IDLE
+"\x2417" "ETB" # <U2417> SYMBOL FOR END OF TRANSMISSION BLOCK
+"\x2418" "CAN" # <U2418> SYMBOL FOR CANCEL
+"\x2419" "EM" # <U2419> SYMBOL FOR END OF MEDIUM
+"\x241a" "SUB" # <U241A> SYMBOL FOR SUBSTITUTE
+"\x241b" "ESC" # <U241B> SYMBOL FOR ESCAPE
+"\x241c" "FS" # <U241C> SYMBOL FOR FILE SEPARATOR
+"\x241d" "GS" # <U241D> SYMBOL FOR GROUP SEPARATOR
+"\x241e" "RS" # <U241E> SYMBOL FOR RECORD SEPARATOR
+"\x241f" "US" # <U241F> SYMBOL FOR UNIT SEPARATOR
+"\x2420" "SP" # <U2420> SYMBOL FOR SPACE
+"\x2421" "DEL" # <U2421> SYMBOL FOR DELETE
+"\x2423" "_" # <U2423> OPEN BOX
+"\x2424" "NL" # <U2424> SYMBOL FOR NEWLINE
+"\x2460" "(1)" # <U2460> CIRCLED DIGIT ONE
+"\x2461" "(2)" # <U2461> CIRCLED DIGIT TWO
+"\x2462" "(3)" # <U2462> CIRCLED DIGIT THREE
+"\x2463" "(4)" # <U2463> CIRCLED DIGIT FOUR
+"\x2464" "(5)" # <U2464> CIRCLED DIGIT FIVE
+"\x2465" "(6)" # <U2465> CIRCLED DIGIT SIX
+"\x2466" "(7)" # <U2466> CIRCLED DIGIT SEVEN
+"\x2467" "(8)" # <U2467> CIRCLED DIGIT EIGHT
+"\x2468" "(9)" # <U2468> CIRCLED DIGIT NINE
+"\x2469" "(10)" # <U2469> CIRCLED NUMBER TEN
+"\x246a" "(11)" # <U246A> CIRCLED NUMBER ELEVEN
+"\x246b" "(12)" # <U246B> CIRCLED NUMBER TWELVE
+"\x246c" "(13)" # <U246C> CIRCLED NUMBER THIRTEEN
+"\x246d" "(14)" # <U246D> CIRCLED NUMBER FOURTEEN
+"\x246e" "(15)" # <U246E> CIRCLED NUMBER FIFTEEN
+"\x246f" "(16)" # <U246F> CIRCLED NUMBER SIXTEEN
+"\x2470" "(17)" # <U2470> CIRCLED NUMBER SEVENTEEN
+"\x2471" "(18)" # <U2471> CIRCLED NUMBER EIGHTEEN
+"\x2472" "(19)" # <U2472> CIRCLED NUMBER NINETEEN
+"\x2473" "(20)" # <U2473> CIRCLED NUMBER TWENTY
+"\x2474" "(1)" # <U2474> PARENTHESIZED DIGIT ONE
+"\x2475" "(2)" # <U2475> PARENTHESIZED DIGIT TWO
+"\x2476" "(3)" # <U2476> PARENTHESIZED DIGIT THREE
+"\x2477" "(4)" # <U2477> PARENTHESIZED DIGIT FOUR
+"\x2478" "(5)" # <U2478> PARENTHESIZED DIGIT FIVE
+"\x2479" "(6)" # <U2479> PARENTHESIZED DIGIT SIX
+"\x247a" "(7)" # <U247A> PARENTHESIZED DIGIT SEVEN
+"\x247b" "(8)" # <U247B> PARENTHESIZED DIGIT EIGHT
+"\x247c" "(9)" # <U247C> PARENTHESIZED DIGIT NINE
+"\x247d" "(10)" # <U247D> PARENTHESIZED NUMBER TEN
+"\x247e" "(11)" # <U247E> PARENTHESIZED NUMBER ELEVEN
+"\x247f" "(12)" # <U247F> PARENTHESIZED NUMBER TWELVE
+"\x2480" "(13)" # <U2480> PARENTHESIZED NUMBER THIRTEEN
+"\x2481" "(14)" # <U2481> PARENTHESIZED NUMBER FOURTEEN
+"\x2482" "(15)" # <U2482> PARENTHESIZED NUMBER FIFTEEN
+"\x2483" "(16)" # <U2483> PARENTHESIZED NUMBER SIXTEEN
+"\x2484" "(17)" # <U2484> PARENTHESIZED NUMBER SEVENTEEN
+"\x2485" "(18)" # <U2485> PARENTHESIZED NUMBER EIGHTEEN
+"\x2486" "(19)" # <U2486> PARENTHESIZED NUMBER NINETEEN
+"\x2487" "(20)" # <U2487> PARENTHESIZED NUMBER TWENTY
+"\x2488" "1." # <U2488> DIGIT ONE FULL STOP
+"\x2489" "2." # <U2489> DIGIT TWO FULL STOP
+"\x248a" "3." # <U248A> DIGIT THREE FULL STOP
+"\x248b" "4." # <U248B> DIGIT FOUR FULL STOP
+"\x248c" "5." # <U248C> DIGIT FIVE FULL STOP
+"\x248d" "6." # <U248D> DIGIT SIX FULL STOP
+"\x248e" "7." # <U248E> DIGIT SEVEN FULL STOP
+"\x248f" "8." # <U248F> DIGIT EIGHT FULL STOP
+"\x2490" "9." # <U2490> DIGIT NINE FULL STOP
+"\x2491" "10." # <U2491> NUMBER TEN FULL STOP
+"\x2492" "11." # <U2492> NUMBER ELEVEN FULL STOP
+"\x2493" "12." # <U2493> NUMBER TWELVE FULL STOP
+"\x2494" "13." # <U2494> NUMBER THIRTEEN FULL STOP
+"\x2495" "14." # <U2495> NUMBER FOURTEEN FULL STOP
+"\x2496" "15." # <U2496> NUMBER FIFTEEN FULL STOP
+"\x2497" "16." # <U2497> NUMBER SIXTEEN FULL STOP
+"\x2498" "17." # <U2498> NUMBER SEVENTEEN FULL STOP
+"\x2499" "18." # <U2499> NUMBER EIGHTEEN FULL STOP
+"\x249a" "19." # <U249A> NUMBER NINETEEN FULL STOP
+"\x249b" "20." # <U249B> NUMBER TWENTY FULL STOP
+"\x249c" "(a)" # <U249C> PARENTHESIZED LATIN SMALL LETTER A
+"\x249d" "(b)" # <U249D> PARENTHESIZED LATIN SMALL LETTER B
+"\x249e" "(c)" # <U249E> PARENTHESIZED LATIN SMALL LETTER C
+"\x249f" "(d)" # <U249F> PARENTHESIZED LATIN SMALL LETTER D
+"\x24a0" "(e)" # <U24A0> PARENTHESIZED LATIN SMALL LETTER E
+"\x24a1" "(f)" # <U24A1> PARENTHESIZED LATIN SMALL LETTER F
+"\x24a2" "(g)" # <U24A2> PARENTHESIZED LATIN SMALL LETTER G
+"\x24a3" "(h)" # <U24A3> PARENTHESIZED LATIN SMALL LETTER H
+"\x24a4" "(i)" # <U24A4> PARENTHESIZED LATIN SMALL LETTER I
+"\x24a5" "(j)" # <U24A5> PARENTHESIZED LATIN SMALL LETTER J
+"\x24a6" "(k)" # <U24A6> PARENTHESIZED LATIN SMALL LETTER K
+"\x24a7" "(l)" # <U24A7> PARENTHESIZED LATIN SMALL LETTER L
+"\x24a8" "(m)" # <U24A8> PARENTHESIZED LATIN SMALL LETTER M
+"\x24a9" "(n)" # <U24A9> PARENTHESIZED LATIN SMALL LETTER N
+"\x24aa" "(o)" # <U24AA> PARENTHESIZED LATIN SMALL LETTER O
+"\x24ab" "(p)" # <U24AB> PARENTHESIZED LATIN SMALL LETTER P
+"\x24ac" "(q)" # <U24AC> PARENTHESIZED LATIN SMALL LETTER Q
+"\x24ad" "(r)" # <U24AD> PARENTHESIZED LATIN SMALL LETTER R
+"\x24ae" "(s)" # <U24AE> PARENTHESIZED LATIN SMALL LETTER S
+"\x24af" "(t)" # <U24AF> PARENTHESIZED LATIN SMALL LETTER T
+"\x24b0" "(u)" # <U24B0> PARENTHESIZED LATIN SMALL LETTER U
+"\x24b1" "(v)" # <U24B1> PARENTHESIZED LATIN SMALL LETTER V
+"\x24b2" "(w)" # <U24B2> PARENTHESIZED LATIN SMALL LETTER W
+"\x24b3" "(x)" # <U24B3> PARENTHESIZED LATIN SMALL LETTER X
+"\x24b4" "(y)" # <U24B4> PARENTHESIZED LATIN SMALL LETTER Y
+"\x24b5" "(z)" # <U24B5> PARENTHESIZED LATIN SMALL LETTER Z
+"\x24b6" "(A)" # <U24B6> CIRCLED LATIN CAPITAL LETTER A
+"\x24b7" "(B)" # <U24B7> CIRCLED LATIN CAPITAL LETTER B
+"\x24b8" "(C)" # <U24B8> CIRCLED LATIN CAPITAL LETTER C
+"\x24b9" "(D)" # <U24B9> CIRCLED LATIN CAPITAL LETTER D
+"\x24ba" "(E)" # <U24BA> CIRCLED LATIN CAPITAL LETTER E
+"\x24bb" "(F)" # <U24BB> CIRCLED LATIN CAPITAL LETTER F
+"\x24bc" "(G)" # <U24BC> CIRCLED LATIN CAPITAL LETTER G
+"\x24bd" "(H)" # <U24BD> CIRCLED LATIN CAPITAL LETTER H
+"\x24be" "(I)" # <U24BE> CIRCLED LATIN CAPITAL LETTER I
+"\x24bf" "(J)" # <U24BF> CIRCLED LATIN CAPITAL LETTER J
+"\x24c0" "(K)" # <U24C0> CIRCLED LATIN CAPITAL LETTER K
+"\x24c1" "(L)" # <U24C1> CIRCLED LATIN CAPITAL LETTER L
+"\x24c2" "(M)" # <U24C2> CIRCLED LATIN CAPITAL LETTER M
+"\x24c3" "(N)" # <U24C3> CIRCLED LATIN CAPITAL LETTER N
+"\x24c4" "(O)" # <U24C4> CIRCLED LATIN CAPITAL LETTER O
+"\x24c5" "(P)" # <U24C5> CIRCLED LATIN CAPITAL LETTER P
+"\x24c6" "(Q)" # <U24C6> CIRCLED LATIN CAPITAL LETTER Q
+"\x24c7" "(R)" # <U24C7> CIRCLED LATIN CAPITAL LETTER R
+"\x24c8" "(S)" # <U24C8> CIRCLED LATIN CAPITAL LETTER S
+"\x24c9" "(T)" # <U24C9> CIRCLED LATIN CAPITAL LETTER T
+"\x24ca" "(U)" # <U24CA> CIRCLED LATIN CAPITAL LETTER U
+"\x24cb" "(V)" # <U24CB> CIRCLED LATIN CAPITAL LETTER V
+"\x24cc" "(W)" # <U24CC> CIRCLED LATIN CAPITAL LETTER W
+"\x24cd" "(X)" # <U24CD> CIRCLED LATIN CAPITAL LETTER X
+"\x24ce" "(Y)" # <U24CE> CIRCLED LATIN CAPITAL LETTER Y
+"\x24cf" "(Z)" # <U24CF> CIRCLED LATIN CAPITAL LETTER Z
+"\x24d0" "(a)" # <U24D0> CIRCLED LATIN SMALL LETTER A
+"\x24d1" "(b)" # <U24D1> CIRCLED LATIN SMALL LETTER B
+"\x24d2" "(c)" # <U24D2> CIRCLED LATIN SMALL LETTER C
+"\x24d3" "(d)" # <U24D3> CIRCLED LATIN SMALL LETTER D
+"\x24d4" "(e)" # <U24D4> CIRCLED LATIN SMALL LETTER E
+"\x24d5" "(f)" # <U24D5> CIRCLED LATIN SMALL LETTER F
+"\x24d6" "(g)" # <U24D6> CIRCLED LATIN SMALL LETTER G
+"\x24d7" "(h)" # <U24D7> CIRCLED LATIN SMALL LETTER H
+"\x24d8" "(i)" # <U24D8> CIRCLED LATIN SMALL LETTER I
+"\x24d9" "(j)" # <U24D9> CIRCLED LATIN SMALL LETTER J
+"\x24da" "(k)" # <U24DA> CIRCLED LATIN SMALL LETTER K
+"\x24db" "(l)" # <U24DB> CIRCLED LATIN SMALL LETTER L
+"\x24dc" "(m)" # <U24DC> CIRCLED LATIN SMALL LETTER M
+"\x24dd" "(n)" # <U24DD> CIRCLED LATIN SMALL LETTER N
+"\x24de" "(o)" # <U24DE> CIRCLED LATIN SMALL LETTER O
+"\x24df" "(p)" # <U24DF> CIRCLED LATIN SMALL LETTER P
+"\x24e0" "(q)" # <U24E0> CIRCLED LATIN SMALL LETTER Q
+"\x24e1" "(r)" # <U24E1> CIRCLED LATIN SMALL LETTER R
+"\x24e2" "(s)" # <U24E2> CIRCLED LATIN SMALL LETTER S
+"\x24e3" "(t)" # <U24E3> CIRCLED LATIN SMALL LETTER T
+"\x24e4" "(u)" # <U24E4> CIRCLED LATIN SMALL LETTER U
+"\x24e5" "(v)" # <U24E5> CIRCLED LATIN SMALL LETTER V
+"\x24e6" "(w)" # <U24E6> CIRCLED LATIN SMALL LETTER W
+"\x24e7" "(x)" # <U24E7> CIRCLED LATIN SMALL LETTER X
+"\x24e8" "(y)" # <U24E8> CIRCLED LATIN SMALL LETTER Y
+"\x24e9" "(z)" # <U24E9> CIRCLED LATIN SMALL LETTER Z
+"\x24ea" "(0)" # <U24EA> CIRCLED DIGIT ZERO
+"\x2500" "-" # <U2500> BOX DRAWINGS LIGHT HORIZONTAL
+"\x2502" "|" # <U2502> BOX DRAWINGS LIGHT VERTICAL
+"\x250c" "+" # <U250C> BOX DRAWINGS LIGHT DOWN AND RIGHT
+"\x2510" "+" # <U2510> BOX DRAWINGS LIGHT DOWN AND LEFT
+"\x2514" "+" # <U2514> BOX DRAWINGS LIGHT UP AND RIGHT
+"\x2518" "+" # <U2518> BOX DRAWINGS LIGHT UP AND LEFT
+"\x251c" "+" # <U251C> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+"\x2524" "+" # <U2524> BOX DRAWINGS LIGHT VERTICAL AND LEFT
+"\x252c" "+" # <U252C> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+"\x2534" "+" # <U2534> BOX DRAWINGS LIGHT UP AND HORIZONTAL
+"\x253c" "+" # <U253C> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+"\x25e6" "o" # <U25E6> WHITE BULLET
+"\x2a74" "::=" # <U2A74> DOUBLE COLON EQUAL
+"\x2a75" "==" # <U2A75> TWO CONSECUTIVE EQUALS SIGNS
+"\x2a76" "===" # <U2A76> THREE CONSECUTIVE EQUALS SIGNS
+"\x3000" " " # <U3000> IDEOGRAPHIC SPACE
+"\x30a0" "=" # <U30A0> KATAKANA-HIRAGANA DOUBLE HYPHEN
+"\x3251" "(21)" # <U3251> CIRCLED NUMBER TWENTY ONE
+"\x3252" "(22)" # <U3252> CIRCLED NUMBER TWENTY TWO
+"\x3253" "(23)" # <U3253> CIRCLED NUMBER TWENTY THREE
+"\x3254" "(24)" # <U3254> CIRCLED NUMBER TWENTY FOUR
+"\x3255" "(25)" # <U3255> CIRCLED NUMBER TWENTY FIVE
+"\x3256" "(26)" # <U3256> CIRCLED NUMBER TWENTY SIX
+"\x3257" "(27)" # <U3257> CIRCLED NUMBER TWENTY SEVEN
+"\x3258" "(28)" # <U3258> CIRCLED NUMBER TWENTY EIGHT
+"\x3259" "(29)" # <U3259> CIRCLED NUMBER TWENTY NINE
+"\x325a" "(30)" # <U325A> CIRCLED NUMBER THIRTY
+"\x325b" "(31)" # <U325B> CIRCLED NUMBER THIRTY ONE
+"\x325c" "(32)" # <U325C> CIRCLED NUMBER THIRTY TWO
+"\x325d" "(33)" # <U325D> CIRCLED NUMBER THIRTY THREE
+"\x325e" "(34)" # <U325E> CIRCLED NUMBER THIRTY FOUR
+"\x325f" "(35)" # <U325F> CIRCLED NUMBER THIRTY FIVE
+"\x32b1" "(36)" # <U32B1> CIRCLED NUMBER THIRTY SIX
+"\x32b2" "(37)" # <U32B2> CIRCLED NUMBER THIRTY SEVEN
+"\x32b3" "(38)" # <U32B3> CIRCLED NUMBER THIRTY EIGHT
+"\x32b4" "(39)" # <U32B4> CIRCLED NUMBER THIRTY NINE
+"\x32b5" "(40)" # <U32B5> CIRCLED NUMBER FORTY
+"\x32b6" "(41)" # <U32B6> CIRCLED NUMBER FORTY ONE
+"\x32b7" "(42)" # <U32B7> CIRCLED NUMBER FORTY TWO
+"\x32b8" "(43)" # <U32B8> CIRCLED NUMBER FORTY THREE
+"\x32b9" "(44)" # <U32B9> CIRCLED NUMBER FORTY FOUR
+"\x32ba" "(45)" # <U32BA> CIRCLED NUMBER FORTY FIVE
+"\x32bb" "(46)" # <U32BB> CIRCLED NUMBER FORTY SIX
+"\x32bc" "(47)" # <U32BC> CIRCLED NUMBER FORTY SEVEN
+"\x32bd" "(48)" # <U32BD> CIRCLED NUMBER FORTY EIGHT
+"\x32be" "(49)" # <U32BE> CIRCLED NUMBER FORTY NINE
+"\x32bf" "(50)" # <U32BF> CIRCLED NUMBER FIFTY
+"\x3371" "hPa" # <U3371> SQUARE HPA
+"\x3372" "da" # <U3372> SQUARE DA
+"\x3373" "AU" # <U3373> SQUARE AU
+"\x3374" "bar" # <U3374> SQUARE BAR
+"\x3375" "oV" # <U3375> SQUARE OV
+"\x3376" "pc" # <U3376> SQUARE PC
+"\x3380" "pA" # <U3380> SQUARE PA AMPS
+"\x3381" "nA" # <U3381> SQUARE NA
+"\x3382" "uA" # <U3382> SQUARE MU A
+"\x3383" "mA" # <U3383> SQUARE MA
+"\x3384" "kA" # <U3384> SQUARE KA
+"\x3385" "KB" # <U3385> SQUARE KB
+"\x3386" "MB" # <U3386> SQUARE MB
+"\x3387" "GB" # <U3387> SQUARE GB
+"\x3388" "cal" # <U3388> SQUARE CAL
+"\x3389" "kcal" # <U3389> SQUARE KCAL
+"\x338a" "pF" # <U338A> SQUARE PF
+"\x338b" "nF" # <U338B> SQUARE NF
+"\x338c" "uF" # <U338C> SQUARE MU F
+"\x338d" "ug" # <U338D> SQUARE MU G
+"\x338e" "mg" # <U338E> SQUARE MG
+"\x338f" "kg" # <U338F> SQUARE KG
+"\x3390" "Hz" # <U3390> SQUARE HZ
+"\x3391" "kHz" # <U3391> SQUARE KHZ
+"\x3392" "MHz" # <U3392> SQUARE MHZ
+"\x3393" "GHz" # <U3393> SQUARE GHZ
+"\x3394" "THz" # <U3394> SQUARE THZ
+"\x3395" "ul" # <U3395> SQUARE MU L
+"\x3396" "ml" # <U3396> SQUARE ML
+"\x3397" "dl" # <U3397> SQUARE DL
+"\x3398" "kl" # <U3398> SQUARE KL
+"\x3399" "fm" # <U3399> SQUARE FM
+"\x339a" "nm" # <U339A> SQUARE NM
+"\x339b" "um" # <U339B> SQUARE MU M
+"\x339c" "mm" # <U339C> SQUARE MM
+"\x339d" "cm" # <U339D> SQUARE CM
+"\x339e" "km" # <U339E> SQUARE KM
+"\x339f" "mm^2" # <U339F> SQUARE MM SQUARED
+"\x33a0" "cm^2" # <U33A0> SQUARE CM SQUARED
+"\x33a1" "m^2" # <U33A1> SQUARE M SQUARED
+"\x33a2" "km^2" # <U33A2> SQUARE KM SQUARED
+"\x33a3" "mm^3" # <U33A3> SQUARE MM CUBED
+"\x33a4" "cm^3" # <U33A4> SQUARE CM CUBED
+"\x33a5" "m^3" # <U33A5> SQUARE M CUBED
+"\x33a6" "km^3" # <U33A6> SQUARE KM CUBED
+"\x33a7" "m/s" # <U33A7> SQUARE M OVER S
+"\x33a8" "m/s^2" # <U33A8> SQUARE M OVER S SQUARED
+"\x33a9" "Pa" # <U33A9> SQUARE PA
+"\x33aa" "kPa" # <U33AA> SQUARE KPA
+"\x33ab" "MPa" # <U33AB> SQUARE MPA
+"\x33ac" "GPa" # <U33AC> SQUARE GPA
+"\x33ad" "rad" # <U33AD> SQUARE RAD
+"\x33ae" "rad/s" # <U33AE> SQUARE RAD OVER S
+"\x33af" "rad/s^2" # <U33AF> SQUARE RAD OVER S SQUARED
+"\x33b0" "ps" # <U33B0> SQUARE PS
+"\x33b1" "ns" # <U33B1> SQUARE NS
+"\x33b2" "us" # <U33B2> SQUARE MU S
+"\x33b3" "ms" # <U33B3> SQUARE MS
+"\x33b4" "pV" # <U33B4> SQUARE PV
+"\x33b5" "nV" # <U33B5> SQUARE NV
+"\x33b6" "uV" # <U33B6> SQUARE MU V
+"\x33b7" "mV" # <U33B7> SQUARE MV
+"\x33b8" "kV" # <U33B8> SQUARE KV
+"\x33b9" "MV" # <U33B9> SQUARE MV MEGA
+"\x33ba" "pW" # <U33BA> SQUARE PW
+"\x33bb" "nW" # <U33BB> SQUARE NW
+"\x33bc" "uW" # <U33BC> SQUARE MU W
+"\x33bd" "mW" # <U33BD> SQUARE MW
+"\x33be" "kW" # <U33BE> SQUARE KW
+"\x33bf" "MW" # <U33BF> SQUARE MW MEGA
+"\x33c2" "a.m." # <U33C2> SQUARE AM
+"\x33c3" "Bq" # <U33C3> SQUARE BQ
+"\x33c4" "cc" # <U33C4> SQUARE CC
+"\x33c5" "cd" # <U33C5> SQUARE CD
+"\x33c6" "C/kg" # <U33C6> SQUARE C OVER KG
+"\x33c7" "Co." # <U33C7> SQUARE CO
+"\x33c8" "dB" # <U33C8> SQUARE DB
+"\x33c9" "Gy" # <U33C9> SQUARE GY
+"\x33ca" "ha" # <U33CA> SQUARE HA
+"\x33cb" "HP" # <U33CB> SQUARE HP
+"\x33cc" "in" # <U33CC> SQUARE IN
+"\x33cd" "KK" # <U33CD> SQUARE KK
+"\x33ce" "KM" # <U33CE> SQUARE KM CAPITAL
+"\x33cf" "kt" # <U33CF> SQUARE KT
+"\x33d0" "lm" # <U33D0> SQUARE LM
+"\x33d1" "ln" # <U33D1> SQUARE LN
+"\x33d2" "log" # <U33D2> SQUARE LOG
+"\x33d3" "lx" # <U33D3> SQUARE LX
+"\x33d4" "mb" # <U33D4> SQUARE MB SMALL
+"\x33d5" "mil" # <U33D5> SQUARE MIL
+"\x33d6" "mol" # <U33D6> SQUARE MOL
+"\x33d7" "PH" # <U33D7> SQUARE PH
+"\x33d8" "p.m." # <U33D8> SQUARE PM
+"\x33d9" "PPM" # <U33D9> SQUARE PPM
+"\x33da" "PR" # <U33DA> SQUARE PR
+"\x33db" "sr" # <U33DB> SQUARE SR
+"\x33dc" "Sv" # <U33DC> SQUARE SV
+"\x33dd" "Wb" # <U33DD> SQUARE WB
+"\xfb00" "ff" # <UFB00> LATIN SMALL LIGATURE FF
+"\xfb01" "fi" # <UFB01> LATIN SMALL LIGATURE FI
+"\xfb02" "fl" # <UFB02> LATIN SMALL LIGATURE FL
+"\xfb03" "ffi" # <UFB03> LATIN SMALL LIGATURE FFI
+"\xfb04" "ffl" # <UFB04> LATIN SMALL LIGATURE FFL
+"\xfb06" "st" # <UFB06> LATIN SMALL LIGATURE ST
+"\xfb29" "+" # <UFB29> HEBREW LETTER ALTERNATIVE PLUS SIGN
+"\xfe00" "" # VARIATION SELECTOR-1
+"\xfe01" "" # VARIATION SELECTOR-2
+"\xfe02" "" # VARIATION SELECTOR-3
+"\xfe03" "" # VARIATION SELECTOR-4
+"\xfe04" "" # VARIATION SELECTOR-5
+"\xfe05" "" # VARIATION SELECTOR-6
+"\xfe06" "" # VARIATION SELECTOR-7
+"\xfe07" "" # VARIATION SELECTOR-8
+"\xfe08" "" # VARIATION SELECTOR-9
+"\xfe09" "" # VARIATION SELECTOR-10
+"\xfe0a" "" # VARIATION SELECTOR-11
+"\xfe0b" "" # VARIATION SELECTOR-12
+"\xfe0c" "" # VARIATION SELECTOR-13
+"\xfe0d" "" # VARIATION SELECTOR-14
+"\xfe0e" "" # VARIATION SELECTOR-15
+"\xfe0f" "" # VARIATION SELECTOR-16
+"\xfe4d" "_" # <UFE4D> DASHED LOW LINE
+"\xfe4e" "_" # <UFE4E> CENTRELINE LOW LINE
+"\xfe4f" "_" # <UFE4F> WAVY LOW LINE
+"\xfe50" "," # <UFE50> SMALL COMMA
+"\xfe52" "." # <UFE52> SMALL FULL STOP
+"\xfe54" ";" # <UFE54> SMALL SEMICOLON
+"\xfe55" ":" # <UFE55> SMALL COLON
+"\xfe56" "?" # <UFE56> SMALL QUESTION MARK
+"\xfe57" "!" # <UFE57> SMALL EXCLAMATION MARK
+"\xfe59" "(" # <UFE59> SMALL LEFT PARENTHESIS
+"\xfe5a" ")" # <UFE5A> SMALL RIGHT PARENTHESIS
+"\xfe5b" "{" # <UFE5B> SMALL LEFT CURLY BRACKET
+"\xfe5c" "}" # <UFE5C> SMALL RIGHT CURLY BRACKET
+"\xfe5f" "#" # <UFE5F> SMALL NUMBER SIGN
+"\xfe60" "&" # <UFE60> SMALL AMPERSAND
+"\xfe61" "*" # <UFE61> SMALL ASTERISK
+"\xfe62" "+" # <UFE62> SMALL PLUS SIGN
+"\xfe63" "-" # <UFE63> SMALL HYPHEN-MINUS
+"\xfe64" "<" # <UFE64> SMALL LESS-THAN SIGN
+"\xfe65" ">" # <UFE65> SMALL GREATER-THAN SIGN
+"\xfe66" "=" # <UFE66> SMALL EQUALS SIGN
+"\xfe68" "\\" # <UFE68> SMALL REVERSE SOLIDUS
+"\xfe69" "$" # <UFE69> SMALL DOLLAR SIGN
+"\xfe6a" "%" # <UFE6A> SMALL PERCENT SIGN
+"\xfe6b" "@" # <UFE6B> SMALL COMMERCIAL AT
+"\xfeff" "" # <UFEFF> ZERO WIDTH NO-BREAK SPACE
+"\xff01" "!" # <UFF01> FULLWIDTH EXCLAMATION MARK
+"\xff02" "\"" # <UFF02> FULLWIDTH QUOTATION MARK
+"\xff03" "#" # <UFF03> FULLWIDTH NUMBER SIGN
+"\xff04" "$" # <UFF04> FULLWIDTH DOLLAR SIGN
+"\xff05" "%" # <UFF05> FULLWIDTH PERCENT SIGN
+"\xff06" "&" # <UFF06> FULLWIDTH AMPERSAND
+"\xff07" "'" # <UFF07> FULLWIDTH APOSTROPHE
+"\xff08" "(" # <UFF08> FULLWIDTH LEFT PARENTHESIS
+"\xff09" ")" # <UFF09> FULLWIDTH RIGHT PARENTHESIS
+"\xff0a" "*" # <UFF0A> FULLWIDTH ASTERISK
+"\xff0b" "+" # <UFF0B> FULLWIDTH PLUS SIGN
+"\xff0c" "," # <UFF0C> FULLWIDTH COMMA
+"\xff0d" "-" # <UFF0D> FULLWIDTH HYPHEN-MINUS
+"\xff0e" "." # <UFF0E> FULLWIDTH FULL STOP
+"\xff0f" "/" # <UFF0F> FULLWIDTH SOLIDUS
+"\xff10" "0" # <UFF10> FULLWIDTH DIGIT ZERO
+"\xff11" "1" # <UFF11> FULLWIDTH DIGIT ONE
+"\xff12" "2" # <UFF12> FULLWIDTH DIGIT TWO
+"\xff13" "3" # <UFF13> FULLWIDTH DIGIT THREE
+"\xff14" "4" # <UFF14> FULLWIDTH DIGIT FOUR
+"\xff15" "5" # <UFF15> FULLWIDTH DIGIT FIVE
+"\xff16" "6" # <UFF16> FULLWIDTH DIGIT SIX
+"\xff17" "7" # <UFF17> FULLWIDTH DIGIT SEVEN
+"\xff18" "8" # <UFF18> FULLWIDTH DIGIT EIGHT
+"\xff19" "9" # <UFF19> FULLWIDTH DIGIT NINE
+"\xff1a" ":" # <UFF1A> FULLWIDTH COLON
+"\xff1b" ";" # <UFF1B> FULLWIDTH SEMICOLON
+"\xff1c" "<" # <UFF1C> FULLWIDTH LESS-THAN SIGN
+"\xff1d" "=" # <UFF1D> FULLWIDTH EQUALS SIGN
+"\xff1e" ">" # <UFF1E> FULLWIDTH GREATER-THAN SIGN
+"\xff1f" "?" # <UFF1F> FULLWIDTH QUESTION MARK
+"\xff20" "@" # <UFF20> FULLWIDTH COMMERCIAL AT
+"\xff21" "A" # <UFF21> FULLWIDTH LATIN CAPITAL LETTER A
+"\xff22" "B" # <UFF22> FULLWIDTH LATIN CAPITAL LETTER B
+"\xff23" "C" # <UFF23> FULLWIDTH LATIN CAPITAL LETTER C
+"\xff24" "D" # <UFF24> FULLWIDTH LATIN CAPITAL LETTER D
+"\xff25" "E" # <UFF25> FULLWIDTH LATIN CAPITAL LETTER E
+"\xff26" "F" # <UFF26> FULLWIDTH LATIN CAPITAL LETTER F
+"\xff27" "G" # <UFF27> FULLWIDTH LATIN CAPITAL LETTER G
+"\xff28" "H" # <UFF28> FULLWIDTH LATIN CAPITAL LETTER H
+"\xff29" "I" # <UFF29> FULLWIDTH LATIN CAPITAL LETTER I
+"\xff2a" "J" # <UFF2A> FULLWIDTH LATIN CAPITAL LETTER J
+"\xff2b" "K" # <UFF2B> FULLWIDTH LATIN CAPITAL LETTER K
+"\xff2c" "L" # <UFF2C> FULLWIDTH LATIN CAPITAL LETTER L
+"\xff2d" "M" # <UFF2D> FULLWIDTH LATIN CAPITAL LETTER M
+"\xff2e" "N" # <UFF2E> FULLWIDTH LATIN CAPITAL LETTER N
+"\xff2f" "O" # <UFF2F> FULLWIDTH LATIN CAPITAL LETTER O
+"\xff30" "P" # <UFF30> FULLWIDTH LATIN CAPITAL LETTER P
+"\xff31" "Q" # <UFF31> FULLWIDTH LATIN CAPITAL LETTER Q
+"\xff32" "R" # <UFF32> FULLWIDTH LATIN CAPITAL LETTER R
+"\xff33" "S" # <UFF33> FULLWIDTH LATIN CAPITAL LETTER S
+"\xff34" "T" # <UFF34> FULLWIDTH LATIN CAPITAL LETTER T
+"\xff35" "U" # <UFF35> FULLWIDTH LATIN CAPITAL LETTER U
+"\xff36" "V" # <UFF36> FULLWIDTH LATIN CAPITAL LETTER V
+"\xff37" "W" # <UFF37> FULLWIDTH LATIN CAPITAL LETTER W
+"\xff38" "X" # <UFF38> FULLWIDTH LATIN CAPITAL LETTER X
+"\xff39" "Y" # <UFF39> FULLWIDTH LATIN CAPITAL LETTER Y
+"\xff3a" "Z" # <UFF3A> FULLWIDTH LATIN CAPITAL LETTER Z
+"\xff3b" "[" # <UFF3B> FULLWIDTH LEFT SQUARE BRACKET
+"\xff3c" "\\" # <UFF3C> FULLWIDTH REVERSE SOLIDUS
+"\xff3d" "]" # <UFF3D> FULLWIDTH RIGHT SQUARE BRACKET
+"\xff3e" "^" # <UFF3E> FULLWIDTH CIRCUMFLEX ACCENT
+"\xff3f" "_" # <UFF3F> FULLWIDTH LOW LINE
+"\xff40" "`" # <UFF40> FULLWIDTH GRAVE ACCENT
+"\xff41" "a" # <UFF41> FULLWIDTH LATIN SMALL LETTER A
+"\xff42" "b" # <UFF42> FULLWIDTH LATIN SMALL LETTER B
+"\xff43" "c" # <UFF43> FULLWIDTH LATIN SMALL LETTER C
+"\xff44" "d" # <UFF44> FULLWIDTH LATIN SMALL LETTER D
+"\xff45" "e" # <UFF45> FULLWIDTH LATIN SMALL LETTER E
+"\xff46" "f" # <UFF46> FULLWIDTH LATIN SMALL LETTER F
+"\xff47" "g" # <UFF47> FULLWIDTH LATIN SMALL LETTER G
+"\xff48" "h" # <UFF48> FULLWIDTH LATIN SMALL LETTER H
+"\xff49" "i" # <UFF49> FULLWIDTH LATIN SMALL LETTER I
+"\xff4a" "j" # <UFF4A> FULLWIDTH LATIN SMALL LETTER J
+"\xff4b" "k" # <UFF4B> FULLWIDTH LATIN SMALL LETTER K
+"\xff4c" "l" # <UFF4C> FULLWIDTH LATIN SMALL LETTER L
+"\xff4d" "m" # <UFF4D> FULLWIDTH LATIN SMALL LETTER M
+"\xff4e" "n" # <UFF4E> FULLWIDTH LATIN SMALL LETTER N
+"\xff4f" "o" # <UFF4F> FULLWIDTH LATIN SMALL LETTER O
+"\xff50" "p" # <UFF50> FULLWIDTH LATIN SMALL LETTER P
+"\xff51" "q" # <UFF51> FULLWIDTH LATIN SMALL LETTER Q
+"\xff52" "r" # <UFF52> FULLWIDTH LATIN SMALL LETTER R
+"\xff53" "s" # <UFF53> FULLWIDTH LATIN SMALL LETTER S
+"\xff54" "t" # <UFF54> FULLWIDTH LATIN SMALL LETTER T
+"\xff55" "u" # <UFF55> FULLWIDTH LATIN SMALL LETTER U
+"\xff56" "v" # <UFF56> FULLWIDTH LATIN SMALL LETTER V
+"\xff57" "w" # <UFF57> FULLWIDTH LATIN SMALL LETTER W
+"\xff58" "x" # <UFF58> FULLWIDTH LATIN SMALL LETTER X
+"\xff59" "y" # <UFF59> FULLWIDTH LATIN SMALL LETTER Y
+"\xff5a" "z" # <UFF5A> FULLWIDTH LATIN SMALL LETTER Z
+"\xff5b" "{" # <UFF5B> FULLWIDTH LEFT CURLY BRACKET
+"\xff5c" "|" # <UFF5C> FULLWIDTH VERTICAL LINE
+"\xff5d" "}" # <UFF5D> FULLWIDTH RIGHT CURLY BRACKET
+"\xff5e" "~" # <UFF5E> FULLWIDTH TILDE
+"\x0001d400" "A" # <U0001D400> MATHEMATICAL BOLD CAPITAL A
+"\x0001d401" "B" # <U0001D401> MATHEMATICAL BOLD CAPITAL B
+"\x0001d402" "C" # <U0001D402> MATHEMATICAL BOLD CAPITAL C
+"\x0001d403" "D" # <U0001D403> MATHEMATICAL BOLD CAPITAL D
+"\x0001d404" "E" # <U0001D404> MATHEMATICAL BOLD CAPITAL E
+"\x0001d405" "F" # <U0001D405> MATHEMATICAL BOLD CAPITAL F
+"\x0001d406" "G" # <U0001D406> MATHEMATICAL BOLD CAPITAL G
+"\x0001d407" "H" # <U0001D407> MATHEMATICAL BOLD CAPITAL H
+"\x0001d408" "I" # <U0001D408> MATHEMATICAL BOLD CAPITAL I
+"\x0001d409" "J" # <U0001D409> MATHEMATICAL BOLD CAPITAL J
+"\x0001d40a" "K" # <U0001D40A> MATHEMATICAL BOLD CAPITAL K
+"\x0001d40b" "L" # <U0001D40B> MATHEMATICAL BOLD CAPITAL L
+"\x0001d40c" "M" # <U0001D40C> MATHEMATICAL BOLD CAPITAL M
+"\x0001d40d" "N" # <U0001D40D> MATHEMATICAL BOLD CAPITAL N
+"\x0001d40e" "O" # <U0001D40E> MATHEMATICAL BOLD CAPITAL O
+"\x0001d40f" "P" # <U0001D40F> MATHEMATICAL BOLD CAPITAL P
+"\x0001d410" "Q" # <U0001D410> MATHEMATICAL BOLD CAPITAL Q
+"\x0001d411" "R" # <U0001D411> MATHEMATICAL BOLD CAPITAL R
+"\x0001d412" "S" # <U0001D412> MATHEMATICAL BOLD CAPITAL S
+"\x0001d413" "T" # <U0001D413> MATHEMATICAL BOLD CAPITAL T
+"\x0001d414" "U" # <U0001D414> MATHEMATICAL BOLD CAPITAL U
+"\x0001d415" "V" # <U0001D415> MATHEMATICAL BOLD CAPITAL V
+"\x0001d416" "W" # <U0001D416> MATHEMATICAL BOLD CAPITAL W
+"\x0001d417" "X" # <U0001D417> MATHEMATICAL BOLD CAPITAL X
+"\x0001d418" "Y" # <U0001D418> MATHEMATICAL BOLD CAPITAL Y
+"\x0001d419" "Z" # <U0001D419> MATHEMATICAL BOLD CAPITAL Z
+"\x0001d41a" "a" # <U0001D41A> MATHEMATICAL BOLD SMALL A
+"\x0001d41b" "b" # <U0001D41B> MATHEMATICAL BOLD SMALL B
+"\x0001d41c" "c" # <U0001D41C> MATHEMATICAL BOLD SMALL C
+"\x0001d41d" "d" # <U0001D41D> MATHEMATICAL BOLD SMALL D
+"\x0001d41e" "e" # <U0001D41E> MATHEMATICAL BOLD SMALL E
+"\x0001d41f" "f" # <U0001D41F> MATHEMATICAL BOLD SMALL F
+"\x0001d420" "g" # <U0001D420> MATHEMATICAL BOLD SMALL G
+"\x0001d421" "h" # <U0001D421> MATHEMATICAL BOLD SMALL H
+"\x0001d422" "i" # <U0001D422> MATHEMATICAL BOLD SMALL I
+"\x0001d423" "j" # <U0001D423> MATHEMATICAL BOLD SMALL J
+"\x0001d424" "k" # <U0001D424> MATHEMATICAL BOLD SMALL K
+"\x0001d425" "l" # <U0001D425> MATHEMATICAL BOLD SMALL L
+"\x0001d426" "m" # <U0001D426> MATHEMATICAL BOLD SMALL M
+"\x0001d427" "n" # <U0001D427> MATHEMATICAL BOLD SMALL N
+"\x0001d428" "o" # <U0001D428> MATHEMATICAL BOLD SMALL O
+"\x0001d429" "p" # <U0001D429> MATHEMATICAL BOLD SMALL P
+"\x0001d42a" "q" # <U0001D42A> MATHEMATICAL BOLD SMALL Q
+"\x0001d42b" "r" # <U0001D42B> MATHEMATICAL BOLD SMALL R
+"\x0001d42c" "s" # <U0001D42C> MATHEMATICAL BOLD SMALL S
+"\x0001d42d" "t" # <U0001D42D> MATHEMATICAL BOLD SMALL T
+"\x0001d42e" "u" # <U0001D42E> MATHEMATICAL BOLD SMALL U
+"\x0001d42f" "v" # <U0001D42F> MATHEMATICAL BOLD SMALL V
+"\x0001d430" "w" # <U0001D430> MATHEMATICAL BOLD SMALL W
+"\x0001d431" "x" # <U0001D431> MATHEMATICAL BOLD SMALL X
+"\x0001d432" "y" # <U0001D432> MATHEMATICAL BOLD SMALL Y
+"\x0001d433" "z" # <U0001D433> MATHEMATICAL BOLD SMALL Z
+"\x0001d434" "A" # <U0001D434> MATHEMATICAL ITALIC CAPITAL A
+"\x0001d435" "B" # <U0001D435> MATHEMATICAL ITALIC CAPITAL B
+"\x0001d436" "C" # <U0001D436> MATHEMATICAL ITALIC CAPITAL C
+"\x0001d437" "D" # <U0001D437> MATHEMATICAL ITALIC CAPITAL D
+"\x0001d438" "E" # <U0001D438> MATHEMATICAL ITALIC CAPITAL E
+"\x0001d439" "F" # <U0001D439> MATHEMATICAL ITALIC CAPITAL F
+"\x0001d43a" "G" # <U0001D43A> MATHEMATICAL ITALIC CAPITAL G
+"\x0001d43b" "H" # <U0001D43B> MATHEMATICAL ITALIC CAPITAL H
+"\x0001d43c" "I" # <U0001D43C> MATHEMATICAL ITALIC CAPITAL I
+"\x0001d43d" "J" # <U0001D43D> MATHEMATICAL ITALIC CAPITAL J
+"\x0001d43e" "K" # <U0001D43E> MATHEMATICAL ITALIC CAPITAL K
+"\x0001d43f" "L" # <U0001D43F> MATHEMATICAL ITALIC CAPITAL L
+"\x0001d440" "M" # <U0001D440> MATHEMATICAL ITALIC CAPITAL M
+"\x0001d441" "N" # <U0001D441> MATHEMATICAL ITALIC CAPITAL N
+"\x0001d442" "O" # <U0001D442> MATHEMATICAL ITALIC CAPITAL O
+"\x0001d443" "P" # <U0001D443> MATHEMATICAL ITALIC CAPITAL P
+"\x0001d444" "Q" # <U0001D444> MATHEMATICAL ITALIC CAPITAL Q
+"\x0001d445" "R" # <U0001D445> MATHEMATICAL ITALIC CAPITAL R
+"\x0001d446" "S" # <U0001D446> MATHEMATICAL ITALIC CAPITAL S
+"\x0001d447" "T" # <U0001D447> MATHEMATICAL ITALIC CAPITAL T
+"\x0001d448" "U" # <U0001D448> MATHEMATICAL ITALIC CAPITAL U
+"\x0001d449" "V" # <U0001D449> MATHEMATICAL ITALIC CAPITAL V
+"\x0001d44a" "W" # <U0001D44A> MATHEMATICAL ITALIC CAPITAL W
+"\x0001d44b" "X" # <U0001D44B> MATHEMATICAL ITALIC CAPITAL X
+"\x0001d44c" "Y" # <U0001D44C> MATHEMATICAL ITALIC CAPITAL Y
+"\x0001d44d" "Z" # <U0001D44D> MATHEMATICAL ITALIC CAPITAL Z
+"\x0001d44e" "a" # <U0001D44E> MATHEMATICAL ITALIC SMALL A
+"\x0001d44f" "b" # <U0001D44F> MATHEMATICAL ITALIC SMALL B
+"\x0001d450" "c" # <U0001D450> MATHEMATICAL ITALIC SMALL C
+"\x0001d451" "d" # <U0001D451> MATHEMATICAL ITALIC SMALL D
+"\x0001d452" "e" # <U0001D452> MATHEMATICAL ITALIC SMALL E
+"\x0001d453" "f" # <U0001D453> MATHEMATICAL ITALIC SMALL F
+"\x0001d454" "g" # <U0001D454> MATHEMATICAL ITALIC SMALL G
+"\x0001d456" "i" # <U0001D456> MATHEMATICAL ITALIC SMALL I
+"\x0001d457" "j" # <U0001D457> MATHEMATICAL ITALIC SMALL J
+"\x0001d458" "k" # <U0001D458> MATHEMATICAL ITALIC SMALL K
+"\x0001d459" "l" # <U0001D459> MATHEMATICAL ITALIC SMALL L
+"\x0001d45a" "m" # <U0001D45A> MATHEMATICAL ITALIC SMALL M
+"\x0001d45b" "n" # <U0001D45B> MATHEMATICAL ITALIC SMALL N
+"\x0001d45c" "o" # <U0001D45C> MATHEMATICAL ITALIC SMALL O
+"\x0001d45d" "p" # <U0001D45D> MATHEMATICAL ITALIC SMALL P
+"\x0001d45e" "q" # <U0001D45E> MATHEMATICAL ITALIC SMALL Q
+"\x0001d45f" "r" # <U0001D45F> MATHEMATICAL ITALIC SMALL R
+"\x0001d460" "s" # <U0001D460> MATHEMATICAL ITALIC SMALL S
+"\x0001d461" "t" # <U0001D461> MATHEMATICAL ITALIC SMALL T
+"\x0001d462" "u" # <U0001D462> MATHEMATICAL ITALIC SMALL U
+"\x0001d463" "v" # <U0001D463> MATHEMATICAL ITALIC SMALL V
+"\x0001d464" "w" # <U0001D464> MATHEMATICAL ITALIC SMALL W
+"\x0001d465" "x" # <U0001D465> MATHEMATICAL ITALIC SMALL X
+"\x0001d466" "y" # <U0001D466> MATHEMATICAL ITALIC SMALL Y
+"\x0001d467" "z" # <U0001D467> MATHEMATICAL ITALIC SMALL Z
+"\x0001d468" "A" # <U0001D468> MATHEMATICAL BOLD ITALIC CAPITAL A
+"\x0001d469" "B" # <U0001D469> MATHEMATICAL BOLD ITALIC CAPITAL B
+"\x0001d46a" "C" # <U0001D46A> MATHEMATICAL BOLD ITALIC CAPITAL C
+"\x0001d46b" "D" # <U0001D46B> MATHEMATICAL BOLD ITALIC CAPITAL D
+"\x0001d46c" "E" # <U0001D46C> MATHEMATICAL BOLD ITALIC CAPITAL E
+"\x0001d46d" "F" # <U0001D46D> MATHEMATICAL BOLD ITALIC CAPITAL F
+"\x0001d46e" "G" # <U0001D46E> MATHEMATICAL BOLD ITALIC CAPITAL G
+"\x0001d46f" "H" # <U0001D46F> MATHEMATICAL BOLD ITALIC CAPITAL H
+"\x0001d470" "I" # <U0001D470> MATHEMATICAL BOLD ITALIC CAPITAL I
+"\x0001d471" "J" # <U0001D471> MATHEMATICAL BOLD ITALIC CAPITAL J
+"\x0001d472" "K" # <U0001D472> MATHEMATICAL BOLD ITALIC CAPITAL K
+"\x0001d473" "L" # <U0001D473> MATHEMATICAL BOLD ITALIC CAPITAL L
+"\x0001d474" "M" # <U0001D474> MATHEMATICAL BOLD ITALIC CAPITAL M
+"\x0001d475" "N" # <U0001D475> MATHEMATICAL BOLD ITALIC CAPITAL N
+"\x0001d476" "O" # <U0001D476> MATHEMATICAL BOLD ITALIC CAPITAL O
+"\x0001d477" "P" # <U0001D477> MATHEMATICAL BOLD ITALIC CAPITAL P
+"\x0001d478" "Q" # <U0001D478> MATHEMATICAL BOLD ITALIC CAPITAL Q
+"\x0001d479" "R" # <U0001D479> MATHEMATICAL BOLD ITALIC CAPITAL R
+"\x0001d47a" "S" # <U0001D47A> MATHEMATICAL BOLD ITALIC CAPITAL S
+"\x0001d47b" "T" # <U0001D47B> MATHEMATICAL BOLD ITALIC CAPITAL T
+"\x0001d47c" "U" # <U0001D47C> MATHEMATICAL BOLD ITALIC CAPITAL U
+"\x0001d47d" "V" # <U0001D47D> MATHEMATICAL BOLD ITALIC CAPITAL V
+"\x0001d47e" "W" # <U0001D47E> MATHEMATICAL BOLD ITALIC CAPITAL W
+"\x0001d47f" "X" # <U0001D47F> MATHEMATICAL BOLD ITALIC CAPITAL X
+"\x0001d480" "Y" # <U0001D480> MATHEMATICAL BOLD ITALIC CAPITAL Y
+"\x0001d481" "Z" # <U0001D481> MATHEMATICAL BOLD ITALIC CAPITAL Z
+"\x0001d482" "a" # <U0001D482> MATHEMATICAL BOLD ITALIC SMALL A
+"\x0001d483" "b" # <U0001D483> MATHEMATICAL BOLD ITALIC SMALL B
+"\x0001d484" "c" # <U0001D484> MATHEMATICAL BOLD ITALIC SMALL C
+"\x0001d485" "d" # <U0001D485> MATHEMATICAL BOLD ITALIC SMALL D
+"\x0001d486" "e" # <U0001D486> MATHEMATICAL BOLD ITALIC SMALL E
+"\x0001d487" "f" # <U0001D487> MATHEMATICAL BOLD ITALIC SMALL F
+"\x0001d488" "g" # <U0001D488> MATHEMATICAL BOLD ITALIC SMALL G
+"\x0001d489" "h" # <U0001D489> MATHEMATICAL BOLD ITALIC SMALL H
+"\x0001d48a" "i" # <U0001D48A> MATHEMATICAL BOLD ITALIC SMALL I
+"\x0001d48b" "j" # <U0001D48B> MATHEMATICAL BOLD ITALIC SMALL J
+"\x0001d48c" "k" # <U0001D48C> MATHEMATICAL BOLD ITALIC SMALL K
+"\x0001d48d" "l" # <U0001D48D> MATHEMATICAL BOLD ITALIC SMALL L
+"\x0001d48e" "m" # <U0001D48E> MATHEMATICAL BOLD ITALIC SMALL M
+"\x0001d48f" "n" # <U0001D48F> MATHEMATICAL BOLD ITALIC SMALL N
+"\x0001d490" "o" # <U0001D490> MATHEMATICAL BOLD ITALIC SMALL O
+"\x0001d491" "p" # <U0001D491> MATHEMATICAL BOLD ITALIC SMALL P
+"\x0001d492" "q" # <U0001D492> MATHEMATICAL BOLD ITALIC SMALL Q
+"\x0001d493" "r" # <U0001D493> MATHEMATICAL BOLD ITALIC SMALL R
+"\x0001d494" "s" # <U0001D494> MATHEMATICAL BOLD ITALIC SMALL S
+"\x0001d495" "t" # <U0001D495> MATHEMATICAL BOLD ITALIC SMALL T
+"\x0001d496" "u" # <U0001D496> MATHEMATICAL BOLD ITALIC SMALL U
+"\x0001d497" "v" # <U0001D497> MATHEMATICAL BOLD ITALIC SMALL V
+"\x0001d498" "w" # <U0001D498> MATHEMATICAL BOLD ITALIC SMALL W
+"\x0001d499" "x" # <U0001D499> MATHEMATICAL BOLD ITALIC SMALL X
+"\x0001d49a" "y" # <U0001D49A> MATHEMATICAL BOLD ITALIC SMALL Y
+"\x0001d49b" "z" # <U0001D49B> MATHEMATICAL BOLD ITALIC SMALL Z
+"\x0001d49c" "A" # <U0001D49C> MATHEMATICAL SCRIPT CAPITAL A
+"\x0001d49e" "C" # <U0001D49E> MATHEMATICAL SCRIPT CAPITAL C
+"\x0001d49f" "D" # <U0001D49F> MATHEMATICAL SCRIPT CAPITAL D
+"\x0001d4a2" "G" # <U0001D4A2> MATHEMATICAL SCRIPT CAPITAL G
+"\x0001d4a5" "J" # <U0001D4A5> MATHEMATICAL SCRIPT CAPITAL J
+"\x0001d4a6" "K" # <U0001D4A6> MATHEMATICAL SCRIPT CAPITAL K
+"\x0001d4a9" "N" # <U0001D4A9> MATHEMATICAL SCRIPT CAPITAL N
+"\x0001d4aa" "O" # <U0001D4AA> MATHEMATICAL SCRIPT CAPITAL O
+"\x0001d4ab" "P" # <U0001D4AB> MATHEMATICAL SCRIPT CAPITAL P
+"\x0001d4ac" "Q" # <U0001D4AC> MATHEMATICAL SCRIPT CAPITAL Q
+"\x0001d4ae" "S" # <U0001D4AE> MATHEMATICAL SCRIPT CAPITAL S
+"\x0001d4af" "T" # <U0001D4AF> MATHEMATICAL SCRIPT CAPITAL T
+"\x0001d4b0" "U" # <U0001D4B0> MATHEMATICAL SCRIPT CAPITAL U
+"\x0001d4b1" "V" # <U0001D4B1> MATHEMATICAL SCRIPT CAPITAL V
+"\x0001d4b2" "W" # <U0001D4B2> MATHEMATICAL SCRIPT CAPITAL W
+"\x0001d4b3" "X" # <U0001D4B3> MATHEMATICAL SCRIPT CAPITAL X
+"\x0001d4b4" "Y" # <U0001D4B4> MATHEMATICAL SCRIPT CAPITAL Y
+"\x0001d4b5" "Z" # <U0001D4B5> MATHEMATICAL SCRIPT CAPITAL Z
+"\x0001d4b6" "a" # <U0001D4B6> MATHEMATICAL SCRIPT SMALL A
+"\x0001d4b7" "b" # <U0001D4B7> MATHEMATICAL SCRIPT SMALL B
+"\x0001d4b8" "c" # <U0001D4B8> MATHEMATICAL SCRIPT SMALL C
+"\x0001d4b9" "d" # <U0001D4B9> MATHEMATICAL SCRIPT SMALL D
+"\x0001d4bb" "f" # <U0001D4BB> MATHEMATICAL SCRIPT SMALL F
+"\x0001d4bd" "h" # <U0001D4BD> MATHEMATICAL SCRIPT SMALL H
+"\x0001d4be" "i" # <U0001D4BE> MATHEMATICAL SCRIPT SMALL I
+"\x0001d4bf" "j" # <U0001D4BF> MATHEMATICAL SCRIPT SMALL J
+"\x0001d4c0" "k" # <U0001D4C0> MATHEMATICAL SCRIPT SMALL K
+"\x0001d4c2" "m" # <U0001D4C2> MATHEMATICAL SCRIPT SMALL M
+"\x0001d4c3" "n" # <U0001D4C3> MATHEMATICAL SCRIPT SMALL N
+"\x0001d4c5" "p" # <U0001D4C5> MATHEMATICAL SCRIPT SMALL P
+"\x0001d4c6" "q" # <U0001D4C6> MATHEMATICAL SCRIPT SMALL Q
+"\x0001d4c7" "r" # <U0001D4C7> MATHEMATICAL SCRIPT SMALL R
+"\x0001d4c8" "s" # <U0001D4C8> MATHEMATICAL SCRIPT SMALL S
+"\x0001d4c9" "t" # <U0001D4C9> MATHEMATICAL SCRIPT SMALL T
+"\x0001d4ca" "u" # <U0001D4CA> MATHEMATICAL SCRIPT SMALL U
+"\x0001d4cb" "v" # <U0001D4CB> MATHEMATICAL SCRIPT SMALL V
+"\x0001d4cc" "w" # <U0001D4CC> MATHEMATICAL SCRIPT SMALL W
+"\x0001d4cd" "x" # <U0001D4CD> MATHEMATICAL SCRIPT SMALL X
+"\x0001d4ce" "y" # <U0001D4CE> MATHEMATICAL SCRIPT SMALL Y
+"\x0001d4cf" "z" # <U0001D4CF> MATHEMATICAL SCRIPT SMALL Z
+"\x0001d4d0" "A" # <U0001D4D0> MATHEMATICAL BOLD SCRIPT CAPITAL A
+"\x0001d4d1" "B" # <U0001D4D1> MATHEMATICAL BOLD SCRIPT CAPITAL B
+"\x0001d4d2" "C" # <U0001D4D2> MATHEMATICAL BOLD SCRIPT CAPITAL C
+"\x0001d4d3" "D" # <U0001D4D3> MATHEMATICAL BOLD SCRIPT CAPITAL D
+"\x0001d4d4" "E" # <U0001D4D4> MATHEMATICAL BOLD SCRIPT CAPITAL E
+"\x0001d4d5" "F" # <U0001D4D5> MATHEMATICAL BOLD SCRIPT CAPITAL F
+"\x0001d4d6" "G" # <U0001D4D6> MATHEMATICAL BOLD SCRIPT CAPITAL G
+"\x0001d4d7" "H" # <U0001D4D7> MATHEMATICAL BOLD SCRIPT CAPITAL H
+"\x0001d4d8" "I" # <U0001D4D8> MATHEMATICAL BOLD SCRIPT CAPITAL I
+"\x0001d4d9" "J" # <U0001D4D9> MATHEMATICAL BOLD SCRIPT CAPITAL J
+"\x0001d4da" "K" # <U0001D4DA> MATHEMATICAL BOLD SCRIPT CAPITAL K
+"\x0001d4db" "L" # <U0001D4DB> MATHEMATICAL BOLD SCRIPT CAPITAL L
+"\x0001d4dc" "M" # <U0001D4DC> MATHEMATICAL BOLD SCRIPT CAPITAL M
+"\x0001d4dd" "N" # <U0001D4DD> MATHEMATICAL BOLD SCRIPT CAPITAL N
+"\x0001d4de" "O" # <U0001D4DE> MATHEMATICAL BOLD SCRIPT CAPITAL O
+"\x0001d4df" "P" # <U0001D4DF> MATHEMATICAL BOLD SCRIPT CAPITAL P
+"\x0001d4e0" "Q" # <U0001D4E0> MATHEMATICAL BOLD SCRIPT CAPITAL Q
+"\x0001d4e1" "R" # <U0001D4E1> MATHEMATICAL BOLD SCRIPT CAPITAL R
+"\x0001d4e2" "S" # <U0001D4E2> MATHEMATICAL BOLD SCRIPT CAPITAL S
+"\x0001d4e3" "T" # <U0001D4E3> MATHEMATICAL BOLD SCRIPT CAPITAL T
+"\x0001d4e4" "U" # <U0001D4E4> MATHEMATICAL BOLD SCRIPT CAPITAL U
+"\x0001d4e5" "V" # <U0001D4E5> MATHEMATICAL BOLD SCRIPT CAPITAL V
+"\x0001d4e6" "W" # <U0001D4E6> MATHEMATICAL BOLD SCRIPT CAPITAL W
+"\x0001d4e7" "X" # <U0001D4E7> MATHEMATICAL BOLD SCRIPT CAPITAL X
+"\x0001d4e8" "Y" # <U0001D4E8> MATHEMATICAL BOLD SCRIPT CAPITAL Y
+"\x0001d4e9" "Z" # <U0001D4E9> MATHEMATICAL BOLD SCRIPT CAPITAL Z
+"\x0001d4ea" "a" # <U0001D4EA> MATHEMATICAL BOLD SCRIPT SMALL A
+"\x0001d4eb" "b" # <U0001D4EB> MATHEMATICAL BOLD SCRIPT SMALL B
+"\x0001d4ec" "c" # <U0001D4EC> MATHEMATICAL BOLD SCRIPT SMALL C
+"\x0001d4ed" "d" # <U0001D4ED> MATHEMATICAL BOLD SCRIPT SMALL D
+"\x0001d4ee" "e" # <U0001D4EE> MATHEMATICAL BOLD SCRIPT SMALL E
+"\x0001d4ef" "f" # <U0001D4EF> MATHEMATICAL BOLD SCRIPT SMALL F
+"\x0001d4f0" "g" # <U0001D4F0> MATHEMATICAL BOLD SCRIPT SMALL G
+"\x0001d4f1" "h" # <U0001D4F1> MATHEMATICAL BOLD SCRIPT SMALL H
+"\x0001d4f2" "i" # <U0001D4F2> MATHEMATICAL BOLD SCRIPT SMALL I
+"\x0001d4f3" "j" # <U0001D4F3> MATHEMATICAL BOLD SCRIPT SMALL J
+"\x0001d4f4" "k" # <U0001D4F4> MATHEMATICAL BOLD SCRIPT SMALL K
+"\x0001d4f5" "l" # <U0001D4F5> MATHEMATICAL BOLD SCRIPT SMALL L
+"\x0001d4f6" "m" # <U0001D4F6> MATHEMATICAL BOLD SCRIPT SMALL M
+"\x0001d4f7" "n" # <U0001D4F7> MATHEMATICAL BOLD SCRIPT SMALL N
+"\x0001d4f8" "o" # <U0001D4F8> MATHEMATICAL BOLD SCRIPT SMALL O
+"\x0001d4f9" "p" # <U0001D4F9> MATHEMATICAL BOLD SCRIPT SMALL P
+"\x0001d4fa" "q" # <U0001D4FA> MATHEMATICAL BOLD SCRIPT SMALL Q
+"\x0001d4fb" "r" # <U0001D4FB> MATHEMATICAL BOLD SCRIPT SMALL R
+"\x0001d4fc" "s" # <U0001D4FC> MATHEMATICAL BOLD SCRIPT SMALL S
+"\x0001d4fd" "t" # <U0001D4FD> MATHEMATICAL BOLD SCRIPT SMALL T
+"\x0001d4fe" "u" # <U0001D4FE> MATHEMATICAL BOLD SCRIPT SMALL U
+"\x0001d4ff" "v" # <U0001D4FF> MATHEMATICAL BOLD SCRIPT SMALL V
+"\x0001d500" "w" # <U0001D500> MATHEMATICAL BOLD SCRIPT SMALL W
+"\x0001d501" "x" # <U0001D501> MATHEMATICAL BOLD SCRIPT SMALL X
+"\x0001d502" "y" # <U0001D502> MATHEMATICAL BOLD SCRIPT SMALL Y
+"\x0001d503" "z" # <U0001D503> MATHEMATICAL BOLD SCRIPT SMALL Z
+"\x0001d504" "A" # <U0001D504> MATHEMATICAL FRAKTUR CAPITAL A
+"\x0001d505" "B" # <U0001D505> MATHEMATICAL FRAKTUR CAPITAL B
+"\x0001d507" "D" # <U0001D507> MATHEMATICAL FRAKTUR CAPITAL D
+"\x0001d508" "E" # <U0001D508> MATHEMATICAL FRAKTUR CAPITAL E
+"\x0001d509" "F" # <U0001D509> MATHEMATICAL FRAKTUR CAPITAL F
+"\x0001d50a" "G" # <U0001D50A> MATHEMATICAL FRAKTUR CAPITAL G
+"\x0001d50d" "J" # <U0001D50D> MATHEMATICAL FRAKTUR CAPITAL J
+"\x0001d50e" "K" # <U0001D50E> MATHEMATICAL FRAKTUR CAPITAL K
+"\x0001d50f" "L" # <U0001D50F> MATHEMATICAL FRAKTUR CAPITAL L
+"\x0001d510" "M" # <U0001D510> MATHEMATICAL FRAKTUR CAPITAL M
+"\x0001d511" "N" # <U0001D511> MATHEMATICAL FRAKTUR CAPITAL N
+"\x0001d512" "O" # <U0001D512> MATHEMATICAL FRAKTUR CAPITAL O
+"\x0001d513" "P" # <U0001D513> MATHEMATICAL FRAKTUR CAPITAL P
+"\x0001d514" "Q" # <U0001D514> MATHEMATICAL FRAKTUR CAPITAL Q
+"\x0001d516" "S" # <U0001D516> MATHEMATICAL FRAKTUR CAPITAL S
+"\x0001d517" "T" # <U0001D517> MATHEMATICAL FRAKTUR CAPITAL T
+"\x0001d518" "U" # <U0001D518> MATHEMATICAL FRAKTUR CAPITAL U
+"\x0001d519" "V" # <U0001D519> MATHEMATICAL FRAKTUR CAPITAL V
+"\x0001d51a" "W" # <U0001D51A> MATHEMATICAL FRAKTUR CAPITAL W
+"\x0001d51b" "X" # <U0001D51B> MATHEMATICAL FRAKTUR CAPITAL X
+"\x0001d51c" "Y" # <U0001D51C> MATHEMATICAL FRAKTUR CAPITAL Y
+"\x0001d51e" "a" # <U0001D51E> MATHEMATICAL FRAKTUR SMALL A
+"\x0001d51f" "b" # <U0001D51F> MATHEMATICAL FRAKTUR SMALL B
+"\x0001d520" "c" # <U0001D520> MATHEMATICAL FRAKTUR SMALL C
+"\x0001d521" "d" # <U0001D521> MATHEMATICAL FRAKTUR SMALL D
+"\x0001d522" "e" # <U0001D522> MATHEMATICAL FRAKTUR SMALL E
+"\x0001d523" "f" # <U0001D523> MATHEMATICAL FRAKTUR SMALL F
+"\x0001d524" "g" # <U0001D524> MATHEMATICAL FRAKTUR SMALL G
+"\x0001d525" "h" # <U0001D525> MATHEMATICAL FRAKTUR SMALL H
+"\x0001d526" "i" # <U0001D526> MATHEMATICAL FRAKTUR SMALL I
+"\x0001d527" "j" # <U0001D527> MATHEMATICAL FRAKTUR SMALL J
+"\x0001d528" "k" # <U0001D528> MATHEMATICAL FRAKTUR SMALL K
+"\x0001d529" "l" # <U0001D529> MATHEMATICAL FRAKTUR SMALL L
+"\x0001d52a" "m" # <U0001D52A> MATHEMATICAL FRAKTUR SMALL M
+"\x0001d52b" "n" # <U0001D52B> MATHEMATICAL FRAKTUR SMALL N
+"\x0001d52c" "o" # <U0001D52C> MATHEMATICAL FRAKTUR SMALL O
+"\x0001d52d" "p" # <U0001D52D> MATHEMATICAL FRAKTUR SMALL P
+"\x0001d52e" "q" # <U0001D52E> MATHEMATICAL FRAKTUR SMALL Q
+"\x0001d52f" "r" # <U0001D52F> MATHEMATICAL FRAKTUR SMALL R
+"\x0001d530" "s" # <U0001D530> MATHEMATICAL FRAKTUR SMALL S
+"\x0001d531" "t" # <U0001D531> MATHEMATICAL FRAKTUR SMALL T
+"\x0001d532" "u" # <U0001D532> MATHEMATICAL FRAKTUR SMALL U
+"\x0001d533" "v" # <U0001D533> MATHEMATICAL FRAKTUR SMALL V
+"\x0001d534" "w" # <U0001D534> MATHEMATICAL FRAKTUR SMALL W
+"\x0001d535" "x" # <U0001D535> MATHEMATICAL FRAKTUR SMALL X
+"\x0001d536" "y" # <U0001D536> MATHEMATICAL FRAKTUR SMALL Y
+"\x0001d537" "z" # <U0001D537> MATHEMATICAL FRAKTUR SMALL Z
+"\x0001d538" "A" # <U0001D538> MATHEMATICAL DOUBLE-STRUCK CAPITAL A
+"\x0001d539" "B" # <U0001D539> MATHEMATICAL DOUBLE-STRUCK CAPITAL B
+"\x0001d53b" "D" # <U0001D53B> MATHEMATICAL DOUBLE-STRUCK CAPITAL D
+"\x0001d53c" "E" # <U0001D53C> MATHEMATICAL DOUBLE-STRUCK CAPITAL E
+"\x0001d53d" "F" # <U0001D53D> MATHEMATICAL DOUBLE-STRUCK CAPITAL F
+"\x0001d53e" "G" # <U0001D53E> MATHEMATICAL DOUBLE-STRUCK CAPITAL G
+"\x0001d540" "I" # <U0001D540> MATHEMATICAL DOUBLE-STRUCK CAPITAL I
+"\x0001d541" "J" # <U0001D541> MATHEMATICAL DOUBLE-STRUCK CAPITAL J
+"\x0001d542" "K" # <U0001D542> MATHEMATICAL DOUBLE-STRUCK CAPITAL K
+"\x0001d543" "L" # <U0001D543> MATHEMATICAL DOUBLE-STRUCK CAPITAL L
+"\x0001d544" "M" # <U0001D544> MATHEMATICAL DOUBLE-STRUCK CAPITAL M
+"\x0001d546" "O" # <U0001D546> MATHEMATICAL DOUBLE-STRUCK CAPITAL O
+"\x0001d54a" "S" # <U0001D54A> MATHEMATICAL DOUBLE-STRUCK CAPITAL S
+"\x0001d54b" "T" # <U0001D54B> MATHEMATICAL DOUBLE-STRUCK CAPITAL T
+"\x0001d54c" "U" # <U0001D54C> MATHEMATICAL DOUBLE-STRUCK CAPITAL U
+"\x0001d54d" "V" # <U0001D54D> MATHEMATICAL DOUBLE-STRUCK CAPITAL V
+"\x0001d54e" "W" # <U0001D54E> MATHEMATICAL DOUBLE-STRUCK CAPITAL W
+"\x0001d54f" "X" # <U0001D54F> MATHEMATICAL DOUBLE-STRUCK CAPITAL X
+"\x0001d550" "Y" # <U0001D550> MATHEMATICAL DOUBLE-STRUCK CAPITAL Y
+"\x0001d552" "a" # <U0001D552> MATHEMATICAL DOUBLE-STRUCK SMALL A
+"\x0001d553" "b" # <U0001D553> MATHEMATICAL DOUBLE-STRUCK SMALL B
+"\x0001d554" "c" # <U0001D554> MATHEMATICAL DOUBLE-STRUCK SMALL C
+"\x0001d555" "d" # <U0001D555> MATHEMATICAL DOUBLE-STRUCK SMALL D
+"\x0001d556" "e" # <U0001D556> MATHEMATICAL DOUBLE-STRUCK SMALL E
+"\x0001d557" "f" # <U0001D557> MATHEMATICAL DOUBLE-STRUCK SMALL F
+"\x0001d558" "g" # <U0001D558> MATHEMATICAL DOUBLE-STRUCK SMALL G
+"\x0001d559" "h" # <U0001D559> MATHEMATICAL DOUBLE-STRUCK SMALL H
+"\x0001d55a" "i" # <U0001D55A> MATHEMATICAL DOUBLE-STRUCK SMALL I
+"\x0001d55b" "j" # <U0001D55B> MATHEMATICAL DOUBLE-STRUCK SMALL J
+"\x0001d55c" "k" # <U0001D55C> MATHEMATICAL DOUBLE-STRUCK SMALL K
+"\x0001d55d" "l" # <U0001D55D> MATHEMATICAL DOUBLE-STRUCK SMALL L
+"\x0001d55e" "m" # <U0001D55E> MATHEMATICAL DOUBLE-STRUCK SMALL M
+"\x0001d55f" "n" # <U0001D55F> MATHEMATICAL DOUBLE-STRUCK SMALL N
+"\x0001d560" "o" # <U0001D560> MATHEMATICAL DOUBLE-STRUCK SMALL O
+"\x0001d561" "p" # <U0001D561> MATHEMATICAL DOUBLE-STRUCK SMALL P
+"\x0001d562" "q" # <U0001D562> MATHEMATICAL DOUBLE-STRUCK SMALL Q
+"\x0001d563" "r" # <U0001D563> MATHEMATICAL DOUBLE-STRUCK SMALL R
+"\x0001d564" "s" # <U0001D564> MATHEMATICAL DOUBLE-STRUCK SMALL S
+"\x0001d565" "t" # <U0001D565> MATHEMATICAL DOUBLE-STRUCK SMALL T
+"\x0001d566" "u" # <U0001D566> MATHEMATICAL DOUBLE-STRUCK SMALL U
+"\x0001d567" "v" # <U0001D567> MATHEMATICAL DOUBLE-STRUCK SMALL V
+"\x0001d568" "w" # <U0001D568> MATHEMATICAL DOUBLE-STRUCK SMALL W
+"\x0001d569" "x" # <U0001D569> MATHEMATICAL DOUBLE-STRUCK SMALL X
+"\x0001d56a" "y" # <U0001D56A> MATHEMATICAL DOUBLE-STRUCK SMALL Y
+"\x0001d56b" "z" # <U0001D56B> MATHEMATICAL DOUBLE-STRUCK SMALL Z
+"\x0001d56c" "A" # <U0001D56C> MATHEMATICAL BOLD FRAKTUR CAPITAL A
+"\x0001d56d" "B" # <U0001D56D> MATHEMATICAL BOLD FRAKTUR CAPITAL B
+"\x0001d56e" "C" # <U0001D56E> MATHEMATICAL BOLD FRAKTUR CAPITAL C
+"\x0001d56f" "D" # <U0001D56F> MATHEMATICAL BOLD FRAKTUR CAPITAL D
+"\x0001d570" "E" # <U0001D570> MATHEMATICAL BOLD FRAKTUR CAPITAL E
+"\x0001d571" "F" # <U0001D571> MATHEMATICAL BOLD FRAKTUR CAPITAL F
+"\x0001d572" "G" # <U0001D572> MATHEMATICAL BOLD FRAKTUR CAPITAL G
+"\x0001d573" "H" # <U0001D573> MATHEMATICAL BOLD FRAKTUR CAPITAL H
+"\x0001d574" "I" # <U0001D574> MATHEMATICAL BOLD FRAKTUR CAPITAL I
+"\x0001d575" "J" # <U0001D575> MATHEMATICAL BOLD FRAKTUR CAPITAL J
+"\x0001d576" "K" # <U0001D576> MATHEMATICAL BOLD FRAKTUR CAPITAL K
+"\x0001d577" "L" # <U0001D577> MATHEMATICAL BOLD FRAKTUR CAPITAL L
+"\x0001d578" "M" # <U0001D578> MATHEMATICAL BOLD FRAKTUR CAPITAL M
+"\x0001d579" "N" # <U0001D579> MATHEMATICAL BOLD FRAKTUR CAPITAL N
+"\x0001d57a" "O" # <U0001D57A> MATHEMATICAL BOLD FRAKTUR CAPITAL O
+"\x0001d57b" "P" # <U0001D57B> MATHEMATICAL BOLD FRAKTUR CAPITAL P
+"\x0001d57c" "Q" # <U0001D57C> MATHEMATICAL BOLD FRAKTUR CAPITAL Q
+"\x0001d57d" "R" # <U0001D57D> MATHEMATICAL BOLD FRAKTUR CAPITAL R
+"\x0001d57e" "S" # <U0001D57E> MATHEMATICAL BOLD FRAKTUR CAPITAL S
+"\x0001d57f" "T" # <U0001D57F> MATHEMATICAL BOLD FRAKTUR CAPITAL T
+"\x0001d580" "U" # <U0001D580> MATHEMATICAL BOLD FRAKTUR CAPITAL U
+"\x0001d581" "V" # <U0001D581> MATHEMATICAL BOLD FRAKTUR CAPITAL V
+"\x0001d582" "W" # <U0001D582> MATHEMATICAL BOLD FRAKTUR CAPITAL W
+"\x0001d583" "X" # <U0001D583> MATHEMATICAL BOLD FRAKTUR CAPITAL X
+"\x0001d584" "Y" # <U0001D584> MATHEMATICAL BOLD FRAKTUR CAPITAL Y
+"\x0001d585" "Z" # <U0001D585> MATHEMATICAL BOLD FRAKTUR CAPITAL Z
+"\x0001d586" "a" # <U0001D586> MATHEMATICAL BOLD FRAKTUR SMALL A
+"\x0001d587" "b" # <U0001D587> MATHEMATICAL BOLD FRAKTUR SMALL B
+"\x0001d588" "c" # <U0001D588> MATHEMATICAL BOLD FRAKTUR SMALL C
+"\x0001d589" "d" # <U0001D589> MATHEMATICAL BOLD FRAKTUR SMALL D
+"\x0001d58a" "e" # <U0001D58A> MATHEMATICAL BOLD FRAKTUR SMALL E
+"\x0001d58b" "f" # <U0001D58B> MATHEMATICAL BOLD FRAKTUR SMALL F
+"\x0001d58c" "g" # <U0001D58C> MATHEMATICAL BOLD FRAKTUR SMALL G
+"\x0001d58d" "h" # <U0001D58D> MATHEMATICAL BOLD FRAKTUR SMALL H
+"\x0001d58e" "i" # <U0001D58E> MATHEMATICAL BOLD FRAKTUR SMALL I
+"\x0001d58f" "j" # <U0001D58F> MATHEMATICAL BOLD FRAKTUR SMALL J
+"\x0001d590" "k" # <U0001D590> MATHEMATICAL BOLD FRAKTUR SMALL K
+"\x0001d591" "l" # <U0001D591> MATHEMATICAL BOLD FRAKTUR SMALL L
+"\x0001d592" "m" # <U0001D592> MATHEMATICAL BOLD FRAKTUR SMALL M
+"\x0001d593" "n" # <U0001D593> MATHEMATICAL BOLD FRAKTUR SMALL N
+"\x0001d594" "o" # <U0001D594> MATHEMATICAL BOLD FRAKTUR SMALL O
+"\x0001d595" "p" # <U0001D595> MATHEMATICAL BOLD FRAKTUR SMALL P
+"\x0001d596" "q" # <U0001D596> MATHEMATICAL BOLD FRAKTUR SMALL Q
+"\x0001d597" "r" # <U0001D597> MATHEMATICAL BOLD FRAKTUR SMALL R
+"\x0001d598" "s" # <U0001D598> MATHEMATICAL BOLD FRAKTUR SMALL S
+"\x0001d599" "t" # <U0001D599> MATHEMATICAL BOLD FRAKTUR SMALL T
+"\x0001d59a" "u" # <U0001D59A> MATHEMATICAL BOLD FRAKTUR SMALL U
+"\x0001d59b" "v" # <U0001D59B> MATHEMATICAL BOLD FRAKTUR SMALL V
+"\x0001d59c" "w" # <U0001D59C> MATHEMATICAL BOLD FRAKTUR SMALL W
+"\x0001d59d" "x" # <U0001D59D> MATHEMATICAL BOLD FRAKTUR SMALL X
+"\x0001d59e" "y" # <U0001D59E> MATHEMATICAL BOLD FRAKTUR SMALL Y
+"\x0001d59f" "z" # <U0001D59F> MATHEMATICAL BOLD FRAKTUR SMALL Z
+"\x0001d5a0" "A" # <U0001D5A0> MATHEMATICAL SANS-SERIF CAPITAL A
+"\x0001d5a1" "B" # <U0001D5A1> MATHEMATICAL SANS-SERIF CAPITAL B
+"\x0001d5a2" "C" # <U0001D5A2> MATHEMATICAL SANS-SERIF CAPITAL C
+"\x0001d5a3" "D" # <U0001D5A3> MATHEMATICAL SANS-SERIF CAPITAL D
+"\x0001d5a4" "E" # <U0001D5A4> MATHEMATICAL SANS-SERIF CAPITAL E
+"\x0001d5a5" "F" # <U0001D5A5> MATHEMATICAL SANS-SERIF CAPITAL F
+"\x0001d5a6" "G" # <U0001D5A6> MATHEMATICAL SANS-SERIF CAPITAL G
+"\x0001d5a7" "H" # <U0001D5A7> MATHEMATICAL SANS-SERIF CAPITAL H
+"\x0001d5a8" "I" # <U0001D5A8> MATHEMATICAL SANS-SERIF CAPITAL I
+"\x0001d5a9" "J" # <U0001D5A9> MATHEMATICAL SANS-SERIF CAPITAL J
+"\x0001d5aa" "K" # <U0001D5AA> MATHEMATICAL SANS-SERIF CAPITAL K
+"\x0001d5ab" "L" # <U0001D5AB> MATHEMATICAL SANS-SERIF CAPITAL L
+"\x0001d5ac" "M" # <U0001D5AC> MATHEMATICAL SANS-SERIF CAPITAL M
+"\x0001d5ad" "N" # <U0001D5AD> MATHEMATICAL SANS-SERIF CAPITAL N
+"\x0001d5ae" "O" # <U0001D5AE> MATHEMATICAL SANS-SERIF CAPITAL O
+"\x0001d5af" "P" # <U0001D5AF> MATHEMATICAL SANS-SERIF CAPITAL P
+"\x0001d5b0" "Q" # <U0001D5B0> MATHEMATICAL SANS-SERIF CAPITAL Q
+"\x0001d5b1" "R" # <U0001D5B1> MATHEMATICAL SANS-SERIF CAPITAL R
+"\x0001d5b2" "S" # <U0001D5B2> MATHEMATICAL SANS-SERIF CAPITAL S
+"\x0001d5b3" "T" # <U0001D5B3> MATHEMATICAL SANS-SERIF CAPITAL T
+"\x0001d5b4" "U" # <U0001D5B4> MATHEMATICAL SANS-SERIF CAPITAL U
+"\x0001d5b5" "V" # <U0001D5B5> MATHEMATICAL SANS-SERIF CAPITAL V
+"\x0001d5b6" "W" # <U0001D5B6> MATHEMATICAL SANS-SERIF CAPITAL W
+"\x0001d5b7" "X" # <U0001D5B7> MATHEMATICAL SANS-SERIF CAPITAL X
+"\x0001d5b8" "Y" # <U0001D5B8> MATHEMATICAL SANS-SERIF CAPITAL Y
+"\x0001d5b9" "Z" # <U0001D5B9> MATHEMATICAL SANS-SERIF CAPITAL Z
+"\x0001d5ba" "a" # <U0001D5BA> MATHEMATICAL SANS-SERIF SMALL A
+"\x0001d5bb" "b" # <U0001D5BB> MATHEMATICAL SANS-SERIF SMALL B
+"\x0001d5bc" "c" # <U0001D5BC> MATHEMATICAL SANS-SERIF SMALL C
+"\x0001d5bd" "d" # <U0001D5BD> MATHEMATICAL SANS-SERIF SMALL D
+"\x0001d5be" "e" # <U0001D5BE> MATHEMATICAL SANS-SERIF SMALL E
+"\x0001d5bf" "f" # <U0001D5BF> MATHEMATICAL SANS-SERIF SMALL F
+"\x0001d5c0" "g" # <U0001D5C0> MATHEMATICAL SANS-SERIF SMALL G
+"\x0001d5c1" "h" # <U0001D5C1> MATHEMATICAL SANS-SERIF SMALL H
+"\x0001d5c2" "i" # <U0001D5C2> MATHEMATICAL SANS-SERIF SMALL I
+"\x0001d5c3" "j" # <U0001D5C3> MATHEMATICAL SANS-SERIF SMALL J
+"\x0001d5c4" "k" # <U0001D5C4> MATHEMATICAL SANS-SERIF SMALL K
+"\x0001d5c5" "l" # <U0001D5C5> MATHEMATICAL SANS-SERIF SMALL L
+"\x0001d5c6" "m" # <U0001D5C6> MATHEMATICAL SANS-SERIF SMALL M
+"\x0001d5c7" "n" # <U0001D5C7> MATHEMATICAL SANS-SERIF SMALL N
+"\x0001d5c8" "o" # <U0001D5C8> MATHEMATICAL SANS-SERIF SMALL O
+"\x0001d5c9" "p" # <U0001D5C9> MATHEMATICAL SANS-SERIF SMALL P
+"\x0001d5ca" "q" # <U0001D5CA> MATHEMATICAL SANS-SERIF SMALL Q
+"\x0001d5cb" "r" # <U0001D5CB> MATHEMATICAL SANS-SERIF SMALL R
+"\x0001d5cc" "s" # <U0001D5CC> MATHEMATICAL SANS-SERIF SMALL S
+"\x0001d5cd" "t" # <U0001D5CD> MATHEMATICAL SANS-SERIF SMALL T
+"\x0001d5ce" "u" # <U0001D5CE> MATHEMATICAL SANS-SERIF SMALL U
+"\x0001d5cf" "v" # <U0001D5CF> MATHEMATICAL SANS-SERIF SMALL V
+"\x0001d5d0" "w" # <U0001D5D0> MATHEMATICAL SANS-SERIF SMALL W
+"\x0001d5d1" "x" # <U0001D5D1> MATHEMATICAL SANS-SERIF SMALL X
+"\x0001d5d2" "y" # <U0001D5D2> MATHEMATICAL SANS-SERIF SMALL Y
+"\x0001d5d3" "z" # <U0001D5D3> MATHEMATICAL SANS-SERIF SMALL Z
+"\x0001d5d4" "A" # <U0001D5D4> MATHEMATICAL SANS-SERIF BOLD CAPITAL A
+"\x0001d5d5" "B" # <U0001D5D5> MATHEMATICAL SANS-SERIF BOLD CAPITAL B
+"\x0001d5d6" "C" # <U0001D5D6> MATHEMATICAL SANS-SERIF BOLD CAPITAL C
+"\x0001d5d7" "D" # <U0001D5D7> MATHEMATICAL SANS-SERIF BOLD CAPITAL D
+"\x0001d5d8" "E" # <U0001D5D8> MATHEMATICAL SANS-SERIF BOLD CAPITAL E
+"\x0001d5d9" "F" # <U0001D5D9> MATHEMATICAL SANS-SERIF BOLD CAPITAL F
+"\x0001d5da" "G" # <U0001D5DA> MATHEMATICAL SANS-SERIF BOLD CAPITAL G
+"\x0001d5db" "H" # <U0001D5DB> MATHEMATICAL SANS-SERIF BOLD CAPITAL H
+"\x0001d5dc" "I" # <U0001D5DC> MATHEMATICAL SANS-SERIF BOLD CAPITAL I
+"\x0001d5dd" "J" # <U0001D5DD> MATHEMATICAL SANS-SERIF BOLD CAPITAL J
+"\x0001d5de" "K" # <U0001D5DE> MATHEMATICAL SANS-SERIF BOLD CAPITAL K
+"\x0001d5df" "L" # <U0001D5DF> MATHEMATICAL SANS-SERIF BOLD CAPITAL L
+"\x0001d5e0" "M" # <U0001D5E0> MATHEMATICAL SANS-SERIF BOLD CAPITAL M
+"\x0001d5e1" "N" # <U0001D5E1> MATHEMATICAL SANS-SERIF BOLD CAPITAL N
+"\x0001d5e2" "O" # <U0001D5E2> MATHEMATICAL SANS-SERIF BOLD CAPITAL O
+"\x0001d5e3" "P" # <U0001D5E3> MATHEMATICAL SANS-SERIF BOLD CAPITAL P
+"\x0001d5e4" "Q" # <U0001D5E4> MATHEMATICAL SANS-SERIF BOLD CAPITAL Q
+"\x0001d5e5" "R" # <U0001D5E5> MATHEMATICAL SANS-SERIF BOLD CAPITAL R
+"\x0001d5e6" "S" # <U0001D5E6> MATHEMATICAL SANS-SERIF BOLD CAPITAL S
+"\x0001d5e7" "T" # <U0001D5E7> MATHEMATICAL SANS-SERIF BOLD CAPITAL T
+"\x0001d5e8" "U" # <U0001D5E8> MATHEMATICAL SANS-SERIF BOLD CAPITAL U
+"\x0001d5e9" "V" # <U0001D5E9> MATHEMATICAL SANS-SERIF BOLD CAPITAL V
+"\x0001d5ea" "W" # <U0001D5EA> MATHEMATICAL SANS-SERIF BOLD CAPITAL W
+"\x0001d5eb" "X" # <U0001D5EB> MATHEMATICAL SANS-SERIF BOLD CAPITAL X
+"\x0001d5ec" "Y" # <U0001D5EC> MATHEMATICAL SANS-SERIF BOLD CAPITAL Y
+"\x0001d5ed" "Z" # <U0001D5ED> MATHEMATICAL SANS-SERIF BOLD CAPITAL Z
+"\x0001d5ee" "a" # <U0001D5EE> MATHEMATICAL SANS-SERIF BOLD SMALL A
+"\x0001d5ef" "b" # <U0001D5EF> MATHEMATICAL SANS-SERIF BOLD SMALL B
+"\x0001d5f0" "c" # <U0001D5F0> MATHEMATICAL SANS-SERIF BOLD SMALL C
+"\x0001d5f1" "d" # <U0001D5F1> MATHEMATICAL SANS-SERIF BOLD SMALL D
+"\x0001d5f2" "e" # <U0001D5F2> MATHEMATICAL SANS-SERIF BOLD SMALL E
+"\x0001d5f3" "f" # <U0001D5F3> MATHEMATICAL SANS-SERIF BOLD SMALL F
+"\x0001d5f4" "g" # <U0001D5F4> MATHEMATICAL SANS-SERIF BOLD SMALL G
+"\x0001d5f5" "h" # <U0001D5F5> MATHEMATICAL SANS-SERIF BOLD SMALL H
+"\x0001d5f6" "i" # <U0001D5F6> MATHEMATICAL SANS-SERIF BOLD SMALL I
+"\x0001d5f7" "j" # <U0001D5F7> MATHEMATICAL SANS-SERIF BOLD SMALL J
+"\x0001d5f8" "k" # <U0001D5F8> MATHEMATICAL SANS-SERIF BOLD SMALL K
+"\x0001d5f9" "l" # <U0001D5F9> MATHEMATICAL SANS-SERIF BOLD SMALL L
+"\x0001d5fa" "m" # <U0001D5FA> MATHEMATICAL SANS-SERIF BOLD SMALL M
+"\x0001d5fb" "n" # <U0001D5FB> MATHEMATICAL SANS-SERIF BOLD SMALL N
+"\x0001d5fc" "o" # <U0001D5FC> MATHEMATICAL SANS-SERIF BOLD SMALL O
+"\x0001d5fd" "p" # <U0001D5FD> MATHEMATICAL SANS-SERIF BOLD SMALL P
+"\x0001d5fe" "q" # <U0001D5FE> MATHEMATICAL SANS-SERIF BOLD SMALL Q
+"\x0001d5ff" "r" # <U0001D5FF> MATHEMATICAL SANS-SERIF BOLD SMALL R
+"\x0001d600" "s" # <U0001D600> MATHEMATICAL SANS-SERIF BOLD SMALL S
+"\x0001d601" "t" # <U0001D601> MATHEMATICAL SANS-SERIF BOLD SMALL T
+"\x0001d602" "u" # <U0001D602> MATHEMATICAL SANS-SERIF BOLD SMALL U
+"\x0001d603" "v" # <U0001D603> MATHEMATICAL SANS-SERIF BOLD SMALL V
+"\x0001d604" "w" # <U0001D604> MATHEMATICAL SANS-SERIF BOLD SMALL W
+"\x0001d605" "x" # <U0001D605> MATHEMATICAL SANS-SERIF BOLD SMALL X
+"\x0001d606" "y" # <U0001D606> MATHEMATICAL SANS-SERIF BOLD SMALL Y
+"\x0001d607" "z" # <U0001D607> MATHEMATICAL SANS-SERIF BOLD SMALL Z
+"\x0001d608" "A" # <U0001D608> MATHEMATICAL SANS-SERIF ITALIC CAPITAL A
+"\x0001d609" "B" # <U0001D609> MATHEMATICAL SANS-SERIF ITALIC CAPITAL B
+"\x0001d60a" "C" # <U0001D60A> MATHEMATICAL SANS-SERIF ITALIC CAPITAL C
+"\x0001d60b" "D" # <U0001D60B> MATHEMATICAL SANS-SERIF ITALIC CAPITAL D
+"\x0001d60c" "E" # <U0001D60C> MATHEMATICAL SANS-SERIF ITALIC CAPITAL E
+"\x0001d60d" "F" # <U0001D60D> MATHEMATICAL SANS-SERIF ITALIC CAPITAL F
+"\x0001d60e" "G" # <U0001D60E> MATHEMATICAL SANS-SERIF ITALIC CAPITAL G
+"\x0001d60f" "H" # <U0001D60F> MATHEMATICAL SANS-SERIF ITALIC CAPITAL H
+"\x0001d610" "I" # <U0001D610> MATHEMATICAL SANS-SERIF ITALIC CAPITAL I
+"\x0001d611" "J" # <U0001D611> MATHEMATICAL SANS-SERIF ITALIC CAPITAL J
+"\x0001d612" "K" # <U0001D612> MATHEMATICAL SANS-SERIF ITALIC CAPITAL K
+"\x0001d613" "L" # <U0001D613> MATHEMATICAL SANS-SERIF ITALIC CAPITAL L
+"\x0001d614" "M" # <U0001D614> MATHEMATICAL SANS-SERIF ITALIC CAPITAL M
+"\x0001d615" "N" # <U0001D615> MATHEMATICAL SANS-SERIF ITALIC CAPITAL N
+"\x0001d616" "O" # <U0001D616> MATHEMATICAL SANS-SERIF ITALIC CAPITAL O
+"\x0001d617" "P" # <U0001D617> MATHEMATICAL SANS-SERIF ITALIC CAPITAL P
+"\x0001d618" "Q" # <U0001D618> MATHEMATICAL SANS-SERIF ITALIC CAPITAL Q
+"\x0001d619" "R" # <U0001D619> MATHEMATICAL SANS-SERIF ITALIC CAPITAL R
+"\x0001d61a" "S" # <U0001D61A> MATHEMATICAL SANS-SERIF ITALIC CAPITAL S
+"\x0001d61b" "T" # <U0001D61B> MATHEMATICAL SANS-SERIF ITALIC CAPITAL T
+"\x0001d61c" "U" # <U0001D61C> MATHEMATICAL SANS-SERIF ITALIC CAPITAL U
+"\x0001d61d" "V" # <U0001D61D> MATHEMATICAL SANS-SERIF ITALIC CAPITAL V
+"\x0001d61e" "W" # <U0001D61E> MATHEMATICAL SANS-SERIF ITALIC CAPITAL W
+"\x0001d61f" "X" # <U0001D61F> MATHEMATICAL SANS-SERIF ITALIC CAPITAL X
+"\x0001d620" "Y" # <U0001D620> MATHEMATICAL SANS-SERIF ITALIC CAPITAL Y
+"\x0001d621" "Z" # <U0001D621> MATHEMATICAL SANS-SERIF ITALIC CAPITAL Z
+"\x0001d622" "a" # <U0001D622> MATHEMATICAL SANS-SERIF ITALIC SMALL A
+"\x0001d623" "b" # <U0001D623> MATHEMATICAL SANS-SERIF ITALIC SMALL B
+"\x0001d624" "c" # <U0001D624> MATHEMATICAL SANS-SERIF ITALIC SMALL C
+"\x0001d625" "d" # <U0001D625> MATHEMATICAL SANS-SERIF ITALIC SMALL D
+"\x0001d626" "e" # <U0001D626> MATHEMATICAL SANS-SERIF ITALIC SMALL E
+"\x0001d627" "f" # <U0001D627> MATHEMATICAL SANS-SERIF ITALIC SMALL F
+"\x0001d628" "g" # <U0001D628> MATHEMATICAL SANS-SERIF ITALIC SMALL G
+"\x0001d629" "h" # <U0001D629> MATHEMATICAL SANS-SERIF ITALIC SMALL H
+"\x0001d62a" "i" # <U0001D62A> MATHEMATICAL SANS-SERIF ITALIC SMALL I
+"\x0001d62b" "j" # <U0001D62B> MATHEMATICAL SANS-SERIF ITALIC SMALL J
+"\x0001d62c" "k" # <U0001D62C> MATHEMATICAL SANS-SERIF ITALIC SMALL K
+"\x0001d62d" "l" # <U0001D62D> MATHEMATICAL SANS-SERIF ITALIC SMALL L
+"\x0001d62e" "m" # <U0001D62E> MATHEMATICAL SANS-SERIF ITALIC SMALL M
+"\x0001d62f" "n" # <U0001D62F> MATHEMATICAL SANS-SERIF ITALIC SMALL N
+"\x0001d630" "o" # <U0001D630> MATHEMATICAL SANS-SERIF ITALIC SMALL O
+"\x0001d631" "p" # <U0001D631> MATHEMATICAL SANS-SERIF ITALIC SMALL P
+"\x0001d632" "q" # <U0001D632> MATHEMATICAL SANS-SERIF ITALIC SMALL Q
+"\x0001d633" "r" # <U0001D633> MATHEMATICAL SANS-SERIF ITALIC SMALL R
+"\x0001d634" "s" # <U0001D634> MATHEMATICAL SANS-SERIF ITALIC SMALL S
+"\x0001d635" "t" # <U0001D635> MATHEMATICAL SANS-SERIF ITALIC SMALL T
+"\x0001d636" "u" # <U0001D636> MATHEMATICAL SANS-SERIF ITALIC SMALL U
+"\x0001d637" "v" # <U0001D637> MATHEMATICAL SANS-SERIF ITALIC SMALL V
+"\x0001d638" "w" # <U0001D638> MATHEMATICAL SANS-SERIF ITALIC SMALL W
+"\x0001d639" "x" # <U0001D639> MATHEMATICAL SANS-SERIF ITALIC SMALL X
+"\x0001d63a" "y" # <U0001D63A> MATHEMATICAL SANS-SERIF ITALIC SMALL Y
+"\x0001d63b" "z" # <U0001D63B> MATHEMATICAL SANS-SERIF ITALIC SMALL Z
+"\x0001d63c" "A" # <U0001D63C> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A
+"\x0001d63d" "B" # <U0001D63D> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL B
+"\x0001d63e" "C" # <U0001D63E> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL C
+"\x0001d63f" "D" # <U0001D63F> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL D
+"\x0001d640" "E" # <U0001D640> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL E
+"\x0001d641" "F" # <U0001D641> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL F
+"\x0001d642" "G" # <U0001D642> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL G
+"\x0001d643" "H" # <U0001D643> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL H
+"\x0001d644" "I" # <U0001D644> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL I
+"\x0001d645" "J" # <U0001D645> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL J
+"\x0001d646" "K" # <U0001D646> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL K
+"\x0001d647" "L" # <U0001D647> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL L
+"\x0001d648" "M" # <U0001D648> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL M
+"\x0001d649" "N" # <U0001D649> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL N
+"\x0001d64a" "O" # <U0001D64A> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL O
+"\x0001d64b" "P" # <U0001D64B> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL P
+"\x0001d64c" "Q" # <U0001D64C> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Q
+"\x0001d64d" "R" # <U0001D64D> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL R
+"\x0001d64e" "S" # <U0001D64E> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL S
+"\x0001d64f" "T" # <U0001D64F> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL T
+"\x0001d650" "U" # <U0001D650> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL U
+"\x0001d651" "V" # <U0001D651> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL V
+"\x0001d652" "W" # <U0001D652> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL W
+"\x0001d653" "X" # <U0001D653> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL X
+"\x0001d654" "Y" # <U0001D654> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Y
+"\x0001d655" "Z" # <U0001D655> MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Z
+"\x0001d656" "a" # <U0001D656> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL A
+"\x0001d657" "b" # <U0001D657> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL B
+"\x0001d658" "c" # <U0001D658> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL C
+"\x0001d659" "d" # <U0001D659> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL D
+"\x0001d65a" "e" # <U0001D65A> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL E
+"\x0001d65b" "f" # <U0001D65B> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL F
+"\x0001d65c" "g" # <U0001D65C> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL G
+"\x0001d65d" "h" # <U0001D65D> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL H
+"\x0001d65e" "i" # <U0001D65E> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL I
+"\x0001d65f" "j" # <U0001D65F> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL J
+"\x0001d660" "k" # <U0001D660> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL K
+"\x0001d661" "l" # <U0001D661> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL L
+"\x0001d662" "m" # <U0001D662> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL M
+"\x0001d663" "n" # <U0001D663> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL N
+"\x0001d664" "o" # <U0001D664> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL O
+"\x0001d665" "p" # <U0001D665> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL P
+"\x0001d666" "q" # <U0001D666> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Q
+"\x0001d667" "r" # <U0001D667> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL R
+"\x0001d668" "s" # <U0001D668> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL S
+"\x0001d669" "t" # <U0001D669> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL T
+"\x0001d66a" "u" # <U0001D66A> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL U
+"\x0001d66b" "v" # <U0001D66B> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL V
+"\x0001d66c" "w" # <U0001D66C> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL W
+"\x0001d66d" "x" # <U0001D66D> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL X
+"\x0001d66e" "y" # <U0001D66E> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Y
+"\x0001d66f" "z" # <U0001D66F> MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Z
+"\x0001d670" "A" # <U0001D670> MATHEMATICAL MONOSPACE CAPITAL A
+"\x0001d671" "B" # <U0001D671> MATHEMATICAL MONOSPACE CAPITAL B
+"\x0001d672" "C" # <U0001D672> MATHEMATICAL MONOSPACE CAPITAL C
+"\x0001d673" "D" # <U0001D673> MATHEMATICAL MONOSPACE CAPITAL D
+"\x0001d674" "E" # <U0001D674> MATHEMATICAL MONOSPACE CAPITAL E
+"\x0001d675" "F" # <U0001D675> MATHEMATICAL MONOSPACE CAPITAL F
+"\x0001d676" "G" # <U0001D676> MATHEMATICAL MONOSPACE CAPITAL G
+"\x0001d677" "H" # <U0001D677> MATHEMATICAL MONOSPACE CAPITAL H
+"\x0001d678" "I" # <U0001D678> MATHEMATICAL MONOSPACE CAPITAL I
+"\x0001d679" "J" # <U0001D679> MATHEMATICAL MONOSPACE CAPITAL J
+"\x0001d67a" "K" # <U0001D67A> MATHEMATICAL MONOSPACE CAPITAL K
+"\x0001d67b" "L" # <U0001D67B> MATHEMATICAL MONOSPACE CAPITAL L
+"\x0001d67c" "M" # <U0001D67C> MATHEMATICAL MONOSPACE CAPITAL M
+"\x0001d67d" "N" # <U0001D67D> MATHEMATICAL MONOSPACE CAPITAL N
+"\x0001d67e" "O" # <U0001D67E> MATHEMATICAL MONOSPACE CAPITAL O
+"\x0001d67f" "P" # <U0001D67F> MATHEMATICAL MONOSPACE CAPITAL P
+"\x0001d680" "Q" # <U0001D680> MATHEMATICAL MONOSPACE CAPITAL Q
+"\x0001d681" "R" # <U0001D681> MATHEMATICAL MONOSPACE CAPITAL R
+"\x0001d682" "S" # <U0001D682> MATHEMATICAL MONOSPACE CAPITAL S
+"\x0001d683" "T" # <U0001D683> MATHEMATICAL MONOSPACE CAPITAL T
+"\x0001d684" "U" # <U0001D684> MATHEMATICAL MONOSPACE CAPITAL U
+"\x0001d685" "V" # <U0001D685> MATHEMATICAL MONOSPACE CAPITAL V
+"\x0001d686" "W" # <U0001D686> MATHEMATICAL MONOSPACE CAPITAL W
+"\x0001d687" "X" # <U0001D687> MATHEMATICAL MONOSPACE CAPITAL X
+"\x0001d688" "Y" # <U0001D688> MATHEMATICAL MONOSPACE CAPITAL Y
+"\x0001d689" "Z" # <U0001D689> MATHEMATICAL MONOSPACE CAPITAL Z
+"\x0001d68a" "a" # <U0001D68A> MATHEMATICAL MONOSPACE SMALL A
+"\x0001d68b" "b" # <U0001D68B> MATHEMATICAL MONOSPACE SMALL B
+"\x0001d68c" "c" # <U0001D68C> MATHEMATICAL MONOSPACE SMALL C
+"\x0001d68d" "d" # <U0001D68D> MATHEMATICAL MONOSPACE SMALL D
+"\x0001d68e" "e" # <U0001D68E> MATHEMATICAL MONOSPACE SMALL E
+"\x0001d68f" "f" # <U0001D68F> MATHEMATICAL MONOSPACE SMALL F
+"\x0001d690" "g" # <U0001D690> MATHEMATICAL MONOSPACE SMALL G
+"\x0001d691" "h" # <U0001D691> MATHEMATICAL MONOSPACE SMALL H
+"\x0001d692" "i" # <U0001D692> MATHEMATICAL MONOSPACE SMALL I
+"\x0001d693" "j" # <U0001D693> MATHEMATICAL MONOSPACE SMALL J
+"\x0001d694" "k" # <U0001D694> MATHEMATICAL MONOSPACE SMALL K
+"\x0001d695" "l" # <U0001D695> MATHEMATICAL MONOSPACE SMALL L
+"\x0001d696" "m" # <U0001D696> MATHEMATICAL MONOSPACE SMALL M
+"\x0001d697" "n" # <U0001D697> MATHEMATICAL MONOSPACE SMALL N
+"\x0001d698" "o" # <U0001D698> MATHEMATICAL MONOSPACE SMALL O
+"\x0001d699" "p" # <U0001D699> MATHEMATICAL MONOSPACE SMALL P
+"\x0001d69a" "q" # <U0001D69A> MATHEMATICAL MONOSPACE SMALL Q
+"\x0001d69b" "r" # <U0001D69B> MATHEMATICAL MONOSPACE SMALL R
+"\x0001d69c" "s" # <U0001D69C> MATHEMATICAL MONOSPACE SMALL S
+"\x0001d69d" "t" # <U0001D69D> MATHEMATICAL MONOSPACE SMALL T
+"\x0001d69e" "u" # <U0001D69E> MATHEMATICAL MONOSPACE SMALL U
+"\x0001d69f" "v" # <U0001D69F> MATHEMATICAL MONOSPACE SMALL V
+"\x0001d6a0" "w" # <U0001D6A0> MATHEMATICAL MONOSPACE SMALL W
+"\x0001d6a1" "x" # <U0001D6A1> MATHEMATICAL MONOSPACE SMALL X
+"\x0001d6a2" "y" # <U0001D6A2> MATHEMATICAL MONOSPACE SMALL Y
+"\x0001d6a3" "z" # <U0001D6A3> MATHEMATICAL MONOSPACE SMALL Z
+"\x0001d7ce" "0" # <U0001D7CE> MATHEMATICAL BOLD DIGIT ZERO
+"\x0001d7cf" "1" # <U0001D7CF> MATHEMATICAL BOLD DIGIT ONE
+"\x0001d7d0" "2" # <U0001D7D0> MATHEMATICAL BOLD DIGIT TWO
+"\x0001d7d1" "3" # <U0001D7D1> MATHEMATICAL BOLD DIGIT THREE
+"\x0001d7d2" "4" # <U0001D7D2> MATHEMATICAL BOLD DIGIT FOUR
+"\x0001d7d3" "5" # <U0001D7D3> MATHEMATICAL BOLD DIGIT FIVE
+"\x0001d7d4" "6" # <U0001D7D4> MATHEMATICAL BOLD DIGIT SIX
+"\x0001d7d5" "7" # <U0001D7D5> MATHEMATICAL BOLD DIGIT SEVEN
+"\x0001d7d6" "8" # <U0001D7D6> MATHEMATICAL BOLD DIGIT EIGHT
+"\x0001d7d7" "9" # <U0001D7D7> MATHEMATICAL BOLD DIGIT NINE
+"\x0001d7d8" "0" # <U0001D7D8> MATHEMATICAL DOUBLE-STRUCK DIGIT ZERO
+"\x0001d7d9" "1" # <U0001D7D9> MATHEMATICAL DOUBLE-STRUCK DIGIT ONE
+"\x0001d7da" "2" # <U0001D7DA> MATHEMATICAL DOUBLE-STRUCK DIGIT TWO
+"\x0001d7db" "3" # <U0001D7DB> MATHEMATICAL DOUBLE-STRUCK DIGIT THREE
+"\x0001d7dc" "4" # <U0001D7DC> MATHEMATICAL DOUBLE-STRUCK DIGIT FOUR
+"\x0001d7dd" "5" # <U0001D7DD> MATHEMATICAL DOUBLE-STRUCK DIGIT FIVE
+"\x0001d7de" "6" # <U0001D7DE> MATHEMATICAL DOUBLE-STRUCK DIGIT SIX
+"\x0001d7df" "7" # <U0001D7DF> MATHEMATICAL DOUBLE-STRUCK DIGIT SEVEN
+"\x0001d7e0" "8" # <U0001D7E0> MATHEMATICAL DOUBLE-STRUCK DIGIT EIGHT
+"\x0001d7e1" "9" # <U0001D7E1> MATHEMATICAL DOUBLE-STRUCK DIGIT NINE
+"\x0001d7e2" "0" # <U0001D7E2> MATHEMATICAL SANS-SERIF DIGIT ZERO
+"\x0001d7e3" "1" # <U0001D7E3> MATHEMATICAL SANS-SERIF DIGIT ONE
+"\x0001d7e4" "2" # <U0001D7E4> MATHEMATICAL SANS-SERIF DIGIT TWO
+"\x0001d7e5" "3" # <U0001D7E5> MATHEMATICAL SANS-SERIF DIGIT THREE
+"\x0001d7e6" "4" # <U0001D7E6> MATHEMATICAL SANS-SERIF DIGIT FOUR
+"\x0001d7e7" "5" # <U0001D7E7> MATHEMATICAL SANS-SERIF DIGIT FIVE
+"\x0001d7e8" "6" # <U0001D7E8> MATHEMATICAL SANS-SERIF DIGIT SIX
+"\x0001d7e9" "7" # <U0001D7E9> MATHEMATICAL SANS-SERIF DIGIT SEVEN
+"\x0001d7ea" "8" # <U0001D7EA> MATHEMATICAL SANS-SERIF DIGIT EIGHT
+"\x0001d7eb" "9" # <U0001D7EB> MATHEMATICAL SANS-SERIF DIGIT NINE
+"\x0001d7ec" "0" # <U0001D7EC> MATHEMATICAL SANS-SERIF BOLD DIGIT ZERO
+"\x0001d7ed" "1" # <U0001D7ED> MATHEMATICAL SANS-SERIF BOLD DIGIT ONE
+"\x0001d7ee" "2" # <U0001D7EE> MATHEMATICAL SANS-SERIF BOLD DIGIT TWO
+"\x0001d7ef" "3" # <U0001D7EF> MATHEMATICAL SANS-SERIF BOLD DIGIT THREE
+"\x0001d7f0" "4" # <U0001D7F0> MATHEMATICAL SANS-SERIF BOLD DIGIT FOUR
+"\x0001d7f1" "5" # <U0001D7F1> MATHEMATICAL SANS-SERIF BOLD DIGIT FIVE
+"\x0001d7f2" "6" # <U0001D7F2> MATHEMATICAL SANS-SERIF BOLD DIGIT SIX
+"\x0001d7f3" "7" # <U0001D7F3> MATHEMATICAL SANS-SERIF BOLD DIGIT SEVEN
+"\x0001d7f4" "8" # <U0001D7F4> MATHEMATICAL SANS-SERIF BOLD DIGIT EIGHT
+"\x0001d7f5" "9" # <U0001D7F5> MATHEMATICAL SANS-SERIF BOLD DIGIT NINE
+"\x0001d7f6" "0" # <U0001D7F6> MATHEMATICAL MONOSPACE DIGIT ZERO
+"\x0001d7f7" "1" # <U0001D7F7> MATHEMATICAL MONOSPACE DIGIT ONE
+"\x0001d7f8" "2" # <U0001D7F8> MATHEMATICAL MONOSPACE DIGIT TWO
+"\x0001d7f9" "3" # <U0001D7F9> MATHEMATICAL MONOSPACE DIGIT THREE
+"\x0001d7fa" "4" # <U0001D7FA> MATHEMATICAL MONOSPACE DIGIT FOUR
+"\x0001d7fb" "5" # <U0001D7FB> MATHEMATICAL MONOSPACE DIGIT FIVE
+"\x0001d7fc" "6" # <U0001D7FC> MATHEMATICAL MONOSPACE DIGIT SIX
+"\x0001d7fd" "7" # <U0001D7FD> MATHEMATICAL MONOSPACE DIGIT SEVEN
+"\x0001d7fe" "8" # <U0001D7FE> MATHEMATICAL MONOSPACE DIGIT EIGHT
+"\x0001d7ff" "9" # <U0001D7FF> MATHEMATICAL MONOSPACE DIGIT NINE
diff --git a/locale/Makefile b/locale/Makefile
index fd9972279b..1a19b6fa99 100644
--- a/locale/Makefile
+++ b/locale/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1991-2018 Free Software Foundation, Inc.
+# Copyright (C) 1991-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
# Makefile for locales.
@@ -37,6 +37,8 @@ others = localedef locale
install-bin = localedef locale
extra-objs = $(localedef-modules:=.o) $(localedef-aux:=.o) \
$(locale-modules:=.o) $(lib-modules:=.o)
+generated += C-translit.h
+before-compile += $(objpfx)C-translit.h
extra-libs = libBrokenLocale
extra-libs-others = $(extra-libs)
@@ -60,6 +62,10 @@ lib-modules := charmap-dir simple-hash xmalloc xstrdup \
GPERF = gperf
GPERFFLAGS = -acCgopt -k1,2,5,9,$$ -L ANSI-C
+ifeq ($(run-built-tests),yes)
+tests-special += $(objpfx)tst-locale-locpath.out
+endif
+
include ../Rules
CFLAGS-md5.c += -I../crypt
@@ -74,8 +80,9 @@ $(objpfx)localedef: $(localedef-aux:%=$(objpfx)%.o)
$(objpfx)locale: $(locale-modules:%=$(objpfx)%.o)
$(objpfx)localedef $(objpfx)locale: $(lib-modules:%=$(objpfx)%.o)
-C-translit.h: C-translit.h.in gen-translit.pl
- $(PERL) gen-translit.pl < $< > $@.tmp
+$(objpfx)C-translit.h: C-translit.h.in gen-translit.py
+ $(make-target-directory)
+ $(PYTHON) gen-translit.py < $< > $@.tmp
mv -f $@.tmp $@
# The path to the compiled binary locale archive or compiled locales,
@@ -104,3 +111,7 @@ cpp-srcs-left := $(localedef-modules) $(localedef-aux) $(locale-modules) \
$(lib-modules)
lib := locale-programs
include $(patsubst %,$(..)libof-iterator.mk,$(cpp-srcs-left))
+
+$(objpfx)tst-locale-locpath.out : tst-locale-locpath.sh $(objpfx)locale
+ $(SHELL) $< '$(common-objpfx)' '$(test-wrapper-env)' '$(run-program-env)' > $@; \
+ $(evaluate-test)
diff --git a/locale/bits/locale.h b/locale/bits/locale.h
index 3a3d921902..49791fbd3b 100644
--- a/locale/bits/locale.h
+++ b/locale/bits/locale.h
@@ -1,5 +1,5 @@
/* Definition of locale category symbol values.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if !defined _LOCALE_H && !defined _LANGINFO_H
# error "Never use <bits/locale.h> directly; include <locale.h> instead."
diff --git a/locale/bits/types/__locale_t.h b/locale/bits/types/__locale_t.h
index a6cccf6337..2769f3327f 100644
--- a/locale/bits/types/__locale_t.h
+++ b/locale/bits/types/__locale_t.h
@@ -1,5 +1,5 @@
/* Definition of struct __locale_struct and __locale_t.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_TYPES___LOCALE_T_H
#define _BITS_TYPES___LOCALE_T_H 1
diff --git a/locale/bits/types/locale_t.h b/locale/bits/types/locale_t.h
index 6a7aad2851..f9a1bd08c6 100644
--- a/locale/bits/types/locale_t.h
+++ b/locale/bits/types/locale_t.h
@@ -1,5 +1,5 @@
/* Definition of locale_t.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_TYPES_LOCALE_T_H
#define _BITS_TYPES_LOCALE_T_H 1
diff --git a/locale/broken_cur_max.c b/locale/broken_cur_max.c
index 36ce6e7f4f..9963a76687 100644
--- a/locale/broken_cur_max.c
+++ b/locale/broken_cur_max.c
@@ -1,6 +1,6 @@
/* Return number of characters in multibyte representation for current
character set.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <langinfo.h>
#include <locale.h>
diff --git a/locale/categories.def b/locale/categories.def
index 56c5f88f6e..6fe3ace922 100644
--- a/locale/categories.def
+++ b/locale/categories.def
@@ -1,5 +1,5 @@
/* Definition of all available locale categories and their items. -*- C -*-
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* These definitions are used by the locale-related files in the C library
and the programs `localedef' and `locale'.
diff --git a/locale/coll-lookup.c b/locale/coll-lookup.c
index 0d2c401878..5cb33a7f12 100644
--- a/locale/coll-lookup.c
+++ b/locale/coll-lookup.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Bruno Haible <haible@clisp.cons.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/locale/coll-lookup.h b/locale/coll-lookup.h
index f83934c83b..fea49a42c0 100644
--- a/locale/coll-lookup.h
+++ b/locale/coll-lookup.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Bruno Haible <haible@clisp.cons.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/locale/duplocale.c b/locale/duplocale.c
index 9965042fcd..714dda2134 100644
--- a/locale/duplocale.c
+++ b/locale/duplocale.c
@@ -1,5 +1,5 @@
/* Duplicate handle for selection of locales.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <locale.h>
#include <libc-lock.h>
diff --git a/locale/elem-hash.h b/locale/elem-hash.h
index 11571f4ef9..48d4945aab 100644
--- a/locale/elem-hash.h
+++ b/locale/elem-hash.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Ulrich Drepper, <drepper@cygnus.com>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* The hashing function used for the table with collation symbols. */
diff --git a/locale/findlocale.c b/locale/findlocale.c
index 872cadb5b9..972a4a205c 100644
--- a/locale/findlocale.c
+++ b/locale/findlocale.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
@@ -118,8 +118,7 @@ _nl_find_locale (const char *locale_path, size_t locale_path_len,
variables. */
cloc_name = getenv ("LC_ALL");
if (!name_present (cloc_name))
- cloc_name = getenv (_nl_category_names.str
- + _nl_category_name_idxs[category]);
+ cloc_name = getenv (_nl_category_names_get (category));
if (!name_present (cloc_name))
cloc_name = getenv ("LANG");
if (!name_present (cloc_name))
@@ -207,8 +206,7 @@ _nl_find_locale (const char *locale_path, size_t locale_path_len,
locale_path, locale_path_len, mask,
language, territory, codeset,
normalized_codeset, modifier,
- _nl_category_names.str
- + _nl_category_name_idxs[category], 0);
+ _nl_category_names_get (category), 0);
if (locale_file == NULL)
{
@@ -218,8 +216,7 @@ _nl_find_locale (const char *locale_path, size_t locale_path_len,
locale_path, locale_path_len, mask,
language, territory, codeset,
normalized_codeset, modifier,
- _nl_category_names.str
- + _nl_category_name_idxs[category], 1);
+ _nl_category_names_get (category), 1);
if (locale_file == NULL)
/* This means we are out of core. */
return NULL;
diff --git a/locale/freelocale.c b/locale/freelocale.c
index 338e5193f0..7c8dcee951 100644
--- a/locale/freelocale.c
+++ b/locale/freelocale.c
@@ -1,5 +1,5 @@
/* Free data allocated by a call to setlocale_r
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <locale.h>
#include <stdlib.h>
diff --git a/locale/gen-translit.pl b/locale/gen-translit.pl
deleted file mode 100644
index 30d3f2f195..0000000000
--- a/locale/gen-translit.pl
+++ /dev/null
@@ -1,144 +0,0 @@
-#!/usr/bin/perl -w
-open F, "cat C-translit.h.in | gcc -E - |" || die "Cannot preprocess input file";
-
-
-sub cstrlen {
- my($str) = @_;
- my($len) = length($str);
- my($cnt);
- my($res) = 0;
-
- for ($cnt = 0; $cnt < $len; ++$cnt) {
- if (substr($str, $cnt, 1) eq '\\') {
- # Recognize the escape sequence.
- if (substr($str, $cnt + 1, 1) eq 'x') {
- my($inner);
- for ($inner = $cnt + 2; $inner < $len && $inner < $cnt + 10; ++$inner) {
- my($ch) = substr($str, $inner, 1);
- next if (($ch ge '0' && $ch le '9')
- || ($ch ge 'a' && $ch le 'f')
- || ($ch ge 'A' && $ch le 'F'));
- last;
- }
- $cnt = $inner;
- ++$res;
- } else {
- die "invalid input" if ($cnt + 1 >= $len);
- ++$res;
- ++$cnt;
- }
- } else {
- ++$res;
- }
- }
-
- return $res;
-}
-
-while (<F>) {
- next if (/^#/);
- next if (/^[ ]*$/);
- chop;
-
- if (/"([^\"]*)"[ ]*"(.*)"/) {
- my($from) = $1;
- my($to) = $2;
- my($fromlen) = cstrlen($from);
- my($tolen) = cstrlen($to);
-
- push(@froms, $from);
- push(@fromlens, $fromlen);
- push(@tos, $to);
- push(@tolens, $tolen);
- }
-}
-
-printf "#include <stdint.h>\n";
-
-printf "#define NTRANSLIT %d\n", $#froms + 1;
-
-printf "static const uint32_t translit_from_idx[] =\n{\n ";
-$col = 2;
-$total = 0;
-for ($cnt = 0; $cnt <= $#fromlens; ++$cnt) {
- if ($cnt != 0) {
- if ($col + 7 >= 79) {
- printf(",\n ");
- $col = 2;
- } else {
- printf(", ");
- $col += 2;
- }
- }
- printf("%4d", $total);
- $total += $fromlens[$cnt] + 1;
- $col += 4;
-}
-printf("\n};\n");
-
-printf "static const wchar_t translit_from_tbl[] =\n ";
-$col = 1;
-for ($cnt = 0; $cnt <= $#froms; ++$cnt) {
- if ($cnt != 0) {
- if ($col + 6 >= 79) {
- printf("\n ");
- $col = 1;
- }
- printf(" L\"\\0\"");
- $col += 6;
- }
- if ($col > 2 && $col + length($froms[$cnt]) + 4 >= 79) {
- printf("\n ");
- $col = 2;
- } else {
- printf(" ");
- ++$col;
- }
- printf("L\"$froms[$cnt]\"");
- $col += length($froms[$cnt]) + 3;
-}
-printf(";\n");
-
-printf "static const uint32_t translit_to_idx[] =\n{\n ";
-$col = 2;
-$total = 0;
-for ($cnt = 0; $cnt <= $#tolens; ++$cnt) {
- if ($cnt != 0) {
- if ($col + 7 >= 79) {
- printf(",\n ");
- $col = 2;
- } else {
- printf(", ");
- $col += 2;
- }
- }
- printf("%4d", $total);
- $total += $tolens[$cnt] + 2;
- $col += 4;
-}
-printf("\n};\n");
-
-printf "static const wchar_t translit_to_tbl[] =\n ";
-$col = 1;
-for ($cnt = 0; $cnt <= $#tos; ++$cnt) {
- if ($cnt != 0) {
- if ($col + 6 >= 79) {
- printf("\n ");
- $col = 1;
- }
- printf(" L\"\\0\"");
- $col += 6;
- }
- if ($col > 2 && $col + length($tos[$cnt]) + 6 >= 79) {
- printf("\n ");
- $col = 2;
- } else {
- printf(" ");
- ++$col;
- }
- printf("%s", "L\"$tos[$cnt]\\0\"");
- $col += length($tos[$cnt]) + 5;
-}
-printf(";\n");
-
-exit 0;
diff --git a/locale/gen-translit.py b/locale/gen-translit.py
new file mode 100644
index 0000000000..7cd030b2ec
--- /dev/null
+++ b/locale/gen-translit.py
@@ -0,0 +1,177 @@
+#!/usr/bin/python3
+# Generate the locale/C-translit.h file.
+# Copyright (C) 2018-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
+# <https://www.gnu.org/licenses/>.
+
+import re
+import sys
+
+
+class StringLiteral:
+ "Source of a string literal and its decomposition into code points."
+ def __init__(self, s):
+ # States:
+ # 0 regular character sequence
+ # 1 backslash seen
+ # 2 in hexadecimal escape sequence
+ state = 0
+ result = []
+ for ch in s:
+ if state == 0:
+ if ch == '\\':
+ state = 1
+ else:
+ result.append(ord(ch))
+ elif state == 1:
+ if ch in "\\\"":
+ result.append(ord(ch))
+ state = 0
+ elif ch == 'x':
+ state = 2
+ result.append(0)
+ else:
+ raise ValueError("invalid character {!r} in {!r}".format(
+ ch, s))
+ elif state == 2:
+ if ch in "0123456789abcdefABCDEF":
+ result[-1] = result[-1] * 16 + int(ch, 16)
+ else:
+ if ch == '\\':
+ state = 1
+ else:
+ state = 0
+ if state == 1:
+ raise ValueError("trailing backslash in {!r}".format(s))
+
+ self.source = s
+ self.decoded = tuple(result)
+
+
+class Translit:
+ "Pair of transliteration and source."
+
+ __RE_TRANSLIT = re.compile(
+ r'^"((?:[^"\\]|\\x[0-9a-fA-F])+)"\s+'
+ r'"((?:[^"\\]|\\["\\])*)"\s*(?:#.*)?$')
+
+ def __init__(self, line):
+ match = self.__RE_TRANSLIT.match(line)
+ if not match:
+ raise IOError("invalid line {}: {!r}".format(
+ lineno + 1, line))
+ codepoints, replacement = match.groups()
+ self.codepoints = StringLiteral(codepoints)
+ self.replacement = StringLiteral(replacement)
+
+
+# List of Translit objects.
+translits = []
+
+# Read transliterations from standard input.
+for lineno, line in enumerate(sys.stdin):
+ line = line.strip()
+ # Skip empty lines and comments.
+ if (not line) or line[0] == '#':
+ continue
+ translit = Translit(line)
+ # Check ordering of codepoints.
+ if translits \
+ and translit.codepoints.decoded <= translits[-1].codepoints.decoded:
+ raise IOError("unexpected codepoint {!r} on line {}: {!r}".format(
+ translit.codeponts.decoded, lineno + 1, line))
+ translits.append(translit)
+
+# Generate the C sources.
+write = sys.stdout.write
+write("#include <stdint.h>\n")
+write("#define NTRANSLIT {}\n".format(len(translits)))
+
+write("static const uint32_t translit_from_idx[] =\n{\n ")
+col = 2
+total = 0
+for translit in translits:
+ if total > 0:
+ if col + 7 >= 79:
+ write(",\n ")
+ col = 2
+ else:
+ write(", ")
+ col += 2
+ write("{:4}".format(total))
+ total += len(translit.codepoints.decoded) + 1
+ col += 4
+write("\n};\n")
+
+write("static const wchar_t translit_from_tbl[] =\n ")
+col = 1
+first = True
+for translit in translits:
+ if first:
+ first = False
+ else:
+ if col + 6 >= 79:
+ write("\n ")
+ col = 1
+ write(" L\"\\0\"")
+ col += 6
+ if col > 2 and col + len(translit.codepoints.source) + 4 >= 79:
+ write("\n ")
+ col = 2
+ else:
+ write(" ")
+ col += 1
+ write("L\"{}\"".format(translit.codepoints.source))
+ col += len(translit.codepoints.source) + 3
+write(";\n")
+
+write("static const uint32_t translit_to_idx[] =\n{\n ")
+col = 2
+total = 0
+for translit in translits:
+ if total > 0:
+ if col + 7 >= 79:
+ write(",\n ")
+ col = 2
+ else:
+ write(", ")
+ col += 2
+ write("{:4}".format(total))
+ total += len(translit.replacement.decoded) + 2
+ col += 4
+write("\n};\n")
+
+write("static const wchar_t translit_to_tbl[] =\n ")
+col = 1
+first = True
+for translit in translits:
+ if first:
+ first = False
+ else:
+ if col + 6 >= 79:
+ write("\n ")
+ col = 1
+ write(" L\"\\0\"")
+ col += 6
+ if col > 2 and col + len(translit.replacement.source) + 6 >= 79:
+ write("\n ")
+ col = 2
+ else:
+ write(" ")
+ col += 1
+ write("L\"{}\\0\"".format(translit.replacement.source))
+ col += len(translit.replacement.source) + 5
+write(";\n")
diff --git a/locale/global-locale.c b/locale/global-locale.c
index 6cdc41f527..d8598f9d1a 100644
--- a/locale/global-locale.c
+++ b/locale/global-locale.c
@@ -1,5 +1,5 @@
/* Locale object representing the global locale controlled by setlocale.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <locale.h>
#include "localeinfo.h"
diff --git a/locale/hashval.h b/locale/hashval.h
index 4f486aaa16..9d7dacc47c 100644
--- a/locale/hashval.h
+++ b/locale/hashval.h
@@ -1,5 +1,5 @@
/* Implement simple hashing table with string based keys.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, October 1994.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef hashval_t
# define hashval_t unsigned long int
diff --git a/locale/indigits.h b/locale/indigits.h
index 6be69ce123..b6c8767ffc 100644
--- a/locale/indigits.h
+++ b/locale/indigits.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <langinfo.h>
diff --git a/locale/indigitswc.h b/locale/indigitswc.h
index a0bb026a28..bdf1e96c68 100644
--- a/locale/indigitswc.h
+++ b/locale/indigitswc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <langinfo.h>
diff --git a/locale/iso-3166.def b/locale/iso-3166.def
index 52997b4bf0..3f3c82d4ba 100644
--- a/locale/iso-3166.def
+++ b/locale/iso-3166.def
@@ -3,7 +3,7 @@
* This is used in ld-address.c (address_finish).
*
* If you find something missing or wrong, please go to the URL
- * http://www.gnu.org/software/libc/bugs.html and follow
+ * https://www.gnu.org/software/libc/bugs.html and follow
* instructions there to file a bug report.
*/
DEFINE_COUNTRY_CODE ("AALAND ISLANDS", AX, ALA, 248)
diff --git a/locale/iso-4217.def b/locale/iso-4217.def
index 84cebb97da..6b24e5726b 100644
--- a/locale/iso-4217.def
+++ b/locale/iso-4217.def
@@ -3,7 +3,7 @@
* This is used in monetary.c(monetary_check).
*
* If you find something missing or wrong, please go to the URL
- * http://www.gnu.org/software/libc/bugs.html and follow
+ * https://www.gnu.org/software/libc/bugs.html and follow
* instructions there to file a bug report.
*
* !!! The list has to be sorted !!!
diff --git a/locale/iso-639.def b/locale/iso-639.def
index 4d0b493c7c..926aebada0 100644
--- a/locale/iso-639.def
+++ b/locale/iso-639.def
@@ -5,7 +5,7 @@
* Format is: ("English name", 639-1-code, 639-2/T-code, 639-2/B-code)
* For some languages which have no 639-2 code the 639-3 code is used.
* If you find something missing or wrong, please go to the URL
- * http://www.gnu.org/software/libc/bugs.html and follow
+ * https://www.gnu.org/software/libc/bugs.html and follow
* instructions there to file a bug report.
*/
@@ -333,6 +333,7 @@ DEFINE_LANGUAGE_CODE3 ("Miscellaneous languages", mis, mis)
DEFINE_LANGUAGE_CODE3 ("Mohawk", moh, moh)
DEFINE_LANGUAGE_CODE3 ("Moksha", mdf, mdf)
DEFINE_LANGUAGE_CODE ("Moldavian", mo, mol, mol)
+DEFINE_LANGUAGE_CODE3 ("Mon", mnw, mnw)
DEFINE_LANGUAGE_CODE3 ("Mon-Khmer (Other)", mkh, mkh)
DEFINE_LANGUAGE_CODE ("Mongolian", mn, mon, mon)
DEFINE_LANGUAGE_CODE3 ("Mongo", lol, lol)
diff --git a/locale/langinfo.h b/locale/langinfo.h
index a50cc9b568..dc9bd8b652 100644
--- a/locale/langinfo.h
+++ b/locale/langinfo.h
@@ -1,5 +1,5 @@
/* Access to locale-dependent parameters.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LANGINFO_H
#define _LANGINFO_H 1
diff --git a/locale/lc-address.c b/locale/lc-address.c
index 18480e0337..fa34673fb1 100644
--- a/locale/lc-address.c
+++ b/locale/lc-address.c
@@ -1,5 +1,5 @@
/* Define current locale data for LC_ADDRESS category.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "localeinfo.h"
diff --git a/locale/lc-collate.c b/locale/lc-collate.c
index c2b1c04442..5ea7165b6c 100644
--- a/locale/lc-collate.c
+++ b/locale/lc-collate.c
@@ -1,5 +1,5 @@
/* Define current locale data for LC_COLLATE category.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "localeinfo.h"
#include <endian.h>
diff --git a/locale/lc-ctype.c b/locale/lc-ctype.c
index 417db1a6b6..e875581e8c 100644
--- a/locale/lc-ctype.c
+++ b/locale/lc-ctype.c
@@ -1,5 +1,5 @@
/* Define current locale data for LC_CTYPE category.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "localeinfo.h"
#include <ctype.h>
diff --git a/locale/lc-identification.c b/locale/lc-identification.c
index 841553f866..666dbb68d6 100644
--- a/locale/lc-identification.c
+++ b/locale/lc-identification.c
@@ -1,5 +1,5 @@
/* Define current locale data for LC_IDENTIFICATION category.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "localeinfo.h"
diff --git a/locale/lc-measurement.c b/locale/lc-measurement.c
index 360ebc2c53..3fd29d4c0d 100644
--- a/locale/lc-measurement.c
+++ b/locale/lc-measurement.c
@@ -1,5 +1,5 @@
/* Define current locale data for LC_MEASUREMENT category.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "localeinfo.h"
diff --git a/locale/lc-messages.c b/locale/lc-messages.c
index f498c483db..2b6336aea5 100644
--- a/locale/lc-messages.c
+++ b/locale/lc-messages.c
@@ -1,5 +1,5 @@
/* Define current locale data for LC_MESSAGES category.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "localeinfo.h"
diff --git a/locale/lc-monetary.c b/locale/lc-monetary.c
index ec3f1a372b..b131149a97 100644
--- a/locale/lc-monetary.c
+++ b/locale/lc-monetary.c
@@ -1,5 +1,5 @@
/* Define current locale data for LC_MONETARY category.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "localeinfo.h"
diff --git a/locale/lc-name.c b/locale/lc-name.c
index b034152f30..ada2a3b6b4 100644
--- a/locale/lc-name.c
+++ b/locale/lc-name.c
@@ -1,5 +1,5 @@
/* Define current locale data for LC_NAME category.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "localeinfo.h"
diff --git a/locale/lc-numeric.c b/locale/lc-numeric.c
index 2ae7436f0f..e9199140ee 100644
--- a/locale/lc-numeric.c
+++ b/locale/lc-numeric.c
@@ -1,5 +1,5 @@
/* Define current locale data for LC_NUMERIC category.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "localeinfo.h"
diff --git a/locale/lc-paper.c b/locale/lc-paper.c
index bd3270a7d2..93651378de 100644
--- a/locale/lc-paper.c
+++ b/locale/lc-paper.c
@@ -1,5 +1,5 @@
/* Define current locale data for LC_PAPER category.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "localeinfo.h"
diff --git a/locale/lc-telephone.c b/locale/lc-telephone.c
index c29e1db607..3c9ada69c1 100644
--- a/locale/lc-telephone.c
+++ b/locale/lc-telephone.c
@@ -1,5 +1,5 @@
/* Define current locale data for LC_TELEPHONE category.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "localeinfo.h"
diff --git a/locale/lc-time.c b/locale/lc-time.c
index 537a3acfbe..a226c3972b 100644
--- a/locale/lc-time.c
+++ b/locale/lc-time.c
@@ -1,5 +1,5 @@
/* Define current locale data for LC_TIME category.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "localeinfo.h"
diff --git a/locale/loadarchive.c b/locale/loadarchive.c
index 516d30d8d1..b4a73d5c94 100644
--- a/locale/loadarchive.c
+++ b/locale/loadarchive.c
@@ -1,5 +1,5 @@
/* Code to load locale data from the locale archive file.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <locale.h>
#include <stddef.h>
@@ -274,7 +274,7 @@ _nl_load_locale_from_archive (int category, const char **namep)
+ head->namehash_offset);
/* Avoid division by 0 if the file is corrupted. */
- if (__glibc_unlikely (head->namehash_size == 0))
+ if (__glibc_unlikely (head->namehash_size <= 2))
goto close_and_out;
idx = hval % head->namehash_size;
diff --git a/locale/loadlocale.c b/locale/loadlocale.c
index 15f93bec80..1076c1a4cf 100644
--- a/locale/loadlocale.c
+++ b/locale/loadlocale.c
@@ -1,5 +1,5 @@
/* Functions to read locale data files.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
@@ -199,8 +199,7 @@ _nl_load_locale (struct loaded_l10nfile *file, int category)
newp = (char *) alloca (filenamelen
+ 5 + _nl_category_name_sizes[category] + 1);
__mempcpy (__mempcpy (__mempcpy (newp, file->filename, filenamelen),
- "/SYS_", 5),
- _nl_category_names.str + _nl_category_name_idxs[category],
+ "/SYS_", 5), _nl_category_names_get (category),
_nl_category_name_sizes[category] + 1);
fd = __open_nocancel (newp, O_RDONLY | O_CLOEXEC);
diff --git a/locale/locale.h b/locale/locale.h
index 88781df998..6ffcbe7cc1 100644
--- a/locale/locale.h
+++ b/locale/locale.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* ISO C99 Standard: 7.11 Localization <locale.h>
diff --git a/locale/localeconv.c b/locale/localeconv.c
index 5ee879e7b7..94c813c676 100644
--- a/locale/localeconv.c
+++ b/locale/localeconv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <locale.h>
#include "localeinfo.h"
diff --git a/locale/localeinfo.h b/locale/localeinfo.h
index 68822a6319..40db571f07 100644
--- a/locale/localeinfo.h
+++ b/locale/localeinfo.h
@@ -1,5 +1,5 @@
/* Declarations for internal libc locale interfaces
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LOCALEINFO_H
#define _LOCALEINFO_H 1
@@ -183,23 +183,29 @@ enum
#define _ISCTYPE(c, desc) \
(((((const uint32_t *) (desc)) - 8)[(c) >> 5] >> ((c) & 0x1f)) & 1)
-/* Category name handling variables. */
+/* Category name handling variables. Concatenate all the strings in a
+ single object to minimize relocations. Individual strings can be
+ accessed using _nl_category_names. */
#define CATNAMEMF(line) CATNAMEMF1 (line)
#define CATNAMEMF1(line) str##line
-extern const union catnamestr_t
+extern const struct catnamestr_t
{
- struct
- {
#define DEFINE_CATEGORY(category, category_name, items, a) \
- char CATNAMEMF (__LINE__)[sizeof (category_name)];
+ char CATNAMEMF (__LINE__)[sizeof (category_name)];
#include "categories.def"
#undef DEFINE_CATEGORY
- };
- char str[0];
} _nl_category_names attribute_hidden;
extern const uint8_t _nl_category_name_idxs[__LC_LAST] attribute_hidden;
extern const uint8_t _nl_category_name_sizes[__LC_LAST] attribute_hidden;
+/* Return the name of the category INDEX, which must be nonnegative
+ and less than _LC_LAST. */
+static inline const char *
+_nl_category_names_get (int index)
+{
+ return (const char *) &_nl_category_names + _nl_category_name_idxs[index];
+}
+
/* Name of the standard locales. */
extern const char _nl_C_name[] attribute_hidden;
extern const char _nl_POSIX_name[] attribute_hidden;
diff --git a/locale/localename.c b/locale/localename.c
index 15148b6d82..b0f563a9bc 100644
--- a/locale/localename.c
+++ b/locale/localename.c
@@ -1,5 +1,5 @@
/* current locale setting names
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "localeinfo.h"
diff --git a/locale/locarchive.h b/locale/locarchive.h
index 2ca068bad6..8f9e32a173 100644
--- a/locale/locarchive.h
+++ b/locale/locarchive.h
@@ -1,5 +1,5 @@
/* Definitions for locale archive handling.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LOCARCHIVE_H
#define _LOCARCHIVE_H 1
diff --git a/locale/mb_cur_max.c b/locale/mb_cur_max.c
index 5cc99df055..91f0781c4e 100644
--- a/locale/mb_cur_max.c
+++ b/locale/mb_cur_max.c
@@ -1,6 +1,6 @@
/* Return number of characters in multibyte representation for current
character set.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <langinfo.h>
#include <locale.h>
diff --git a/locale/newlocale.c b/locale/newlocale.c
index 2737a4fc22..bbd20fe747 100644
--- a/locale/newlocale.c
+++ b/locale/newlocale.c
@@ -1,5 +1,5 @@
/* Return a reference to locale information record.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <argz.h>
#include <libc-lock.h>
@@ -131,8 +131,7 @@ __newlocale (int category_mask, const char *locale, locale_t base)
for (cnt = 0; cnt < __LC_LAST; ++cnt)
if (cnt != LC_ALL
&& (size_t) (cp - np) == _nl_category_name_sizes[cnt]
- && memcmp (np, (_nl_category_names.str
- + _nl_category_name_idxs[cnt]), cp - np) == 0)
+ && memcmp (np, (_nl_category_names_get (cnt)), cp - np) == 0)
break;
if (cnt == __LC_LAST)
diff --git a/locale/nl_langinfo.c b/locale/nl_langinfo.c
index bf868648cd..8137fd8bf1 100644
--- a/locale/nl_langinfo.c
+++ b/locale/nl_langinfo.c
@@ -1,5 +1,5 @@
/* User interface for extracting locale-dependent parameters.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <langinfo.h>
#include <locale.h>
diff --git a/locale/nl_langinfo_l.c b/locale/nl_langinfo_l.c
index 62b3bd2817..61ab5ed450 100644
--- a/locale/nl_langinfo_l.c
+++ b/locale/nl_langinfo_l.c
@@ -1,5 +1,5 @@
/* User interface for extracting locale-dependent parameters.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <langinfo.h>
#include <locale.h>
diff --git a/locale/outdigits.h b/locale/outdigits.h
index 757078e202..d9646a8f91 100644
--- a/locale/outdigits.h
+++ b/locale/outdigits.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <langinfo.h>
diff --git a/locale/outdigitswc.h b/locale/outdigitswc.h
index c3036a6a51..0a8ce4eba9 100644
--- a/locale/outdigitswc.h
+++ b/locale/outdigitswc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <langinfo.h>
diff --git a/locale/programs/3level.h b/locale/programs/3level.h
index 836dba5d5d..b78236fb03 100644
--- a/locale/programs/3level.h
+++ b/locale/programs/3level.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Bruno Haible <haible@clisp.cons.org>, 2000.
@@ -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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/locale/programs/charmap-dir.c b/locale/programs/charmap-dir.c
index 34a8d32c92..6cb074e430 100644
--- a/locale/programs/charmap-dir.c
+++ b/locale/programs/charmap-dir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 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
@@ -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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <dirent.h>
#include <errno.h>
diff --git a/locale/programs/charmap-dir.h b/locale/programs/charmap-dir.h
index 95a7d1f88c..df75081ddc 100644
--- a/locale/programs/charmap-dir.h
+++ b/locale/programs/charmap-dir.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 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
@@ -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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifndef _CHARMAP_DIR_H
#define _CHARMAP_DIR_H 1
diff --git a/locale/programs/charmap-kw.gperf b/locale/programs/charmap-kw.gperf
index 4c9512a02a..ed634e28e7 100644
--- a/locale/programs/charmap-kw.gperf
+++ b/locale/programs/charmap-kw.gperf
@@ -1,5 +1,5 @@
%{
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper, <drepper@gnu.org>.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU General Public License
along with this program; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/locale/programs/charmap-kw.h b/locale/programs/charmap-kw.h
index 0b3ed749fa..2f0ac00543 100644
--- a/locale/programs/charmap-kw.h
+++ b/locale/programs/charmap-kw.h
@@ -1,4 +1,4 @@
-/* ANSI-C code produced by gperf version 3.0.4 */
+/* ANSI-C code produced by gperf version 3.1 */
/* Command-line: gperf -acCgopt -k'1,2,5,9,$' -L ANSI-C -N charmap_hash charmap-kw.gperf */
#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
@@ -25,12 +25,12 @@
&& ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
&& ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
/* The character set is not based on ISO-646. */
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
+#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gperf@gnu.org>."
#endif
#line 1 "charmap-kw.gperf"
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper, <drepper@gnu.org>.
@@ -46,7 +46,7 @@
You should have received a copy of the GNU General Public License
along with this program; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
@@ -69,7 +69,7 @@ inline
#endif
#endif
static unsigned int
-hash (register const char *str, register unsigned int len)
+hash (register const char *str, register size_t len)
{
static const unsigned char asso_values[] =
{
@@ -100,7 +100,7 @@ hash (register const char *str, register unsigned int len)
36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
36, 36, 36, 36, 36, 36
};
- register int hval = len;
+ register unsigned int hval = len;
switch (hval)
{
@@ -125,14 +125,8 @@ hash (register const char *str, register unsigned int len)
return hval + asso_values[(unsigned char)str[len - 1]];
}
-#ifdef __GNUC__
-__inline
-#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
-__attribute__ ((__gnu_inline__))
-#endif
-#endif
const struct keyword_t *
-charmap_hash (register const char *str, register unsigned int len)
+charmap_hash (register const char *str, register size_t len)
{
static const struct keyword_t wordlist[] =
{
@@ -181,9 +175,9 @@ charmap_hash (register const char *str, register unsigned int len)
if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
{
- register int key = hash (str, len);
+ register unsigned int key = hash (str, len);
- if (key <= MAX_HASH_VALUE && key >= 0)
+ if (key <= MAX_HASH_VALUE)
{
register const char *s = wordlist[key].name;
diff --git a/locale/programs/charmap.c b/locale/programs/charmap.c
index 2d54dd3c02..ce1238c78d 100644
--- a/locale/programs/charmap.c
+++ b/locale/programs/charmap.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
@@ -713,6 +713,7 @@ only WIDTH definitions are allowed to follow the CHARMAP definition"));
state = 95;
continue;
}
+ /* Fall through. */
case 96:
if (nowtok != tok_number)
diff --git a/locale/programs/charmap.h b/locale/programs/charmap.h
index 66a4385eef..55ac4b5644 100644
--- a/locale/programs/charmap.h
+++ b/locale/programs/charmap.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifndef _CHARMAP_H
#define _CHARMAP_H
@@ -60,7 +60,7 @@ struct charseq
const char *name;
uint32_t ucs4;
int nbytes;
- unsigned char bytes[0];
+ unsigned char bytes[];
};
diff --git a/locale/programs/config.h b/locale/programs/config.h
index 9956cd8446..31fae36d09 100644
--- a/locale/programs/config.h
+++ b/locale/programs/config.h
@@ -1,5 +1,5 @@
/* Configuration for localedef program.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1995.
@@ -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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifndef _LD_CONFIG_H
#define _LD_CONFIG_H 1
diff --git a/locale/programs/ld-address.c b/locale/programs/ld-address.c
index 3972bb1969..9bc9f5bc11 100644
--- a/locale/programs/ld-address.c
+++ b/locale/programs/ld-address.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@@ -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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
diff --git a/locale/programs/ld-collate.c b/locale/programs/ld-collate.c
index d2eebcfdbb..a584b8e176 100644
--- a/locale/programs/ld-collate.c
+++ b/locale/programs/ld-collate.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
@@ -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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
@@ -2401,8 +2401,8 @@ collate_output (struct localedef_t *locale, const struct charmap_t *charmap,
runp = runp->next;
}
- /* Add 40% and find the next prime number. */
- elem_size = next_prime (elem_size * 1.4);
+ /* Add 50% and find the next prime number. */
+ elem_size = next_prime (elem_size + (elem_size >> 1));
/* Allocate the table. Each entry consists of two words: the hash
value and an index in a secondary table which provides the index
diff --git a/locale/programs/ld-ctype.c b/locale/programs/ld-ctype.c
index f791e6b7e9..a1d094d921 100644
--- a/locale/programs/ld-ctype.c
+++ b/locale/programs/ld-ctype.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
@@ -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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
@@ -842,8 +842,6 @@ no input digits defined and none of the standard names in the charmap"));
for (cnt = 0; cnt < 10; ++cnt)
if (ctype->mboutdigits[cnt] == NULL)
{
- static struct charseq replace[2];
-
if (!warned)
{
record_error (0, 0, _("\
@@ -851,10 +849,12 @@ not all characters used in `outdigit' are available in the charmap"));
warned = 1;
}
- replace[0].nbytes = 1;
- replace[0].bytes[0] = '?';
- replace[0].bytes[1] = '\0';
- ctype->mboutdigits[cnt] = &replace[0];
+ static const struct charseq replace =
+ {
+ .nbytes = 1,
+ .bytes = "?",
+ };
+ ctype->mboutdigits[cnt] = (struct charseq *) &replace;
}
warned = 0;
@@ -1396,7 +1396,8 @@ charclass_symbolic_ellipsis (struct linereader *ldfile,
(int) (now->val.str.lenmb - (cp - last_str)),
from);
- get_character (now, charmap, repertoire, &seq, &wch);
+ if (get_character (now, charmap, repertoire, &seq, &wch))
+ goto invalid_range;
if (seq != NULL && seq->nbytes == 1)
/* Yep, we can store information about this byte sequence. */
@@ -3148,11 +3149,12 @@ set_class_defaults (struct locale_ctype_t *ctype,
the keywords `upper', `lower', `alpha', `digit', `xdigit' and `punct',
shall belong to this character class." [P1003.2, 2.5.2.1] */
{
- unsigned long int mask = BIT (tok_upper) | BIT (tok_lower) |
- BIT (tok_alpha) | BIT (tok_digit) | BIT (tok_xdigit) | BIT (tok_punct);
- unsigned long int maskw = BITw (tok_upper) | BITw (tok_lower) |
- BITw (tok_alpha) | BITw (tok_digit) | BITw (tok_xdigit) |
- BITw (tok_punct);
+ unsigned long int mask = BIT (tok_upper) | BIT (tok_lower)
+ | BIT (tok_alpha) | BIT (tok_digit) | BIT (tok_xdigit)
+ | BIT (tok_punct);
+ unsigned long int maskw = BITw (tok_upper) | BITw (tok_lower)
+ | BITw (tok_alpha) | BITw (tok_digit) | BITw (tok_xdigit)
+ | BITw (tok_punct);
for (size_t cnt = 0; cnt < ctype->class_collection_act; ++cnt)
if ((ctype->class_collection[cnt] & maskw) != 0)
@@ -3169,11 +3171,12 @@ set_class_defaults (struct locale_ctype_t *ctype,
and the <space> character shall belong to this character class."
[P1003.2, 2.5.2.1] */
{
- unsigned long int mask = BIT (tok_upper) | BIT (tok_lower) |
- BIT (tok_alpha) | BIT (tok_digit) | BIT (tok_xdigit) | BIT (tok_punct);
- unsigned long int maskw = BITw (tok_upper) | BITw (tok_lower) |
- BITw (tok_alpha) | BITw (tok_digit) | BITw (tok_xdigit) |
- BITw (tok_punct);
+ unsigned long int mask = BIT (tok_upper) | BIT (tok_lower)
+ | BIT (tok_alpha) | BIT (tok_digit) | BIT (tok_xdigit)
+ | BIT (tok_punct);
+ unsigned long int maskw = BITw (tok_upper) | BITw (tok_lower)
+ | BITw (tok_alpha) | BITw (tok_digit) | BITw (tok_xdigit)
+ | BITw (tok_punct);
struct charseq *seq;
for (size_t cnt = 0; cnt < ctype->class_collection_act; ++cnt)
diff --git a/locale/programs/ld-identification.c b/locale/programs/ld-identification.c
index df0257b6c0..c1a382d441 100644
--- a/locale/programs/ld-identification.c
+++ b/locale/programs/ld-identification.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@@ -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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
diff --git a/locale/programs/ld-measurement.c b/locale/programs/ld-measurement.c
index 4d76c716f4..7129ae0395 100644
--- a/locale/programs/ld-measurement.c
+++ b/locale/programs/ld-measurement.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@@ -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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
diff --git a/locale/programs/ld-messages.c b/locale/programs/ld-messages.c
index 6e15571a0c..0aed790809 100644
--- a/locale/programs/ld-messages.c
+++ b/locale/programs/ld-messages.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
@@ -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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
diff --git a/locale/programs/ld-monetary.c b/locale/programs/ld-monetary.c
index f927534032..0a7a6b5d1c 100644
--- a/locale/programs/ld-monetary.c
+++ b/locale/programs/ld-monetary.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
@@ -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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
diff --git a/locale/programs/ld-name.c b/locale/programs/ld-name.c
index 21e2d0123d..cac10c12b3 100644
--- a/locale/programs/ld-name.c
+++ b/locale/programs/ld-name.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@@ -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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
diff --git a/locale/programs/ld-numeric.c b/locale/programs/ld-numeric.c
index 58d5c5a4bc..f5d95a7c80 100644
--- a/locale/programs/ld-numeric.c
+++ b/locale/programs/ld-numeric.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
@@ -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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
diff --git a/locale/programs/ld-paper.c b/locale/programs/ld-paper.c
index 6cbf4e990f..842faabc8b 100644
--- a/locale/programs/ld-paper.c
+++ b/locale/programs/ld-paper.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@@ -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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
diff --git a/locale/programs/ld-telephone.c b/locale/programs/ld-telephone.c
index f29f88a6e4..c800eb754b 100644
--- a/locale/programs/ld-telephone.c
+++ b/locale/programs/ld-telephone.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@@ -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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
diff --git a/locale/programs/ld-time.c b/locale/programs/ld-time.c
index a755792363..a1721e05c6 100644
--- a/locale/programs/ld-time.c
+++ b/locale/programs/ld-time.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
@@ -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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
diff --git a/locale/programs/linereader.c b/locale/programs/linereader.c
index 3525c8a43d..442de18d67 100644
--- a/locale/programs/linereader.c
+++ b/locale/programs/linereader.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
diff --git a/locale/programs/linereader.h b/locale/programs/linereader.h
index 24fedaed92..90976ee4e6 100644
--- a/locale/programs/linereader.h
+++ b/locale/programs/linereader.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper, <drepper@gnu.org>.
@@ -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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifndef _LINEREADER_H
#define _LINEREADER_H 1
@@ -29,7 +29,7 @@
#include "repertoire.h"
#include "record-status.h"
-typedef const struct keyword_t *(*kw_hash_fct_t) (const char *, unsigned int);
+typedef const struct keyword_t *(*kw_hash_fct_t) (const char *, size_t);
struct charset_t;
struct localedef_t;
diff --git a/locale/programs/locale-spec.c b/locale/programs/locale-spec.c
index 01dfe1ed60..15ac975288 100644
--- a/locale/programs/locale-spec.c
+++ b/locale/programs/locale-spec.c
@@ -1,5 +1,5 @@
/* Handle special requests.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1996.
@@ -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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
diff --git a/locale/programs/locale.c b/locale/programs/locale.c
index 86941e4ef6..e07108d345 100644
--- a/locale/programs/locale.c
+++ b/locale/programs/locale.c
@@ -1,5 +1,5 @@
/* Implementation of the locale program according to POSIX 9945-2.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1995.
@@ -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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
@@ -173,6 +173,9 @@ static int write_archive_locales (void **all_datap, char *linebuf);
static void write_charmaps (void);
static void show_locale_vars (void);
static void show_info (const char *name);
+static void try_setlocale (int category, const char *category_name);
+static char *quote_string (const char *input);
+static void setlocale_diagnostics (void);
int
@@ -186,10 +189,8 @@ main (int argc, char *argv[])
/* Set locale. Do not set LC_ALL because the other categories must
not be affected (according to POSIX.2). */
- if (setlocale (LC_CTYPE, "") == NULL)
- error (0, errno, gettext ("Cannot set LC_CTYPE to default locale"));
- if (setlocale (LC_MESSAGES, "") == NULL)
- error (0, errno, gettext ("Cannot set LC_MESSAGES to default locale"));
+ try_setlocale (LC_CTYPE, "LC_CTYPE");
+ try_setlocale (LC_MESSAGES, "LC_MESSAGES");
/* Initialize the message catalog. */
textdomain (PACKAGE);
@@ -200,9 +201,8 @@ main (int argc, char *argv[])
/* `-a' requests the names of all available locales. */
if (do_all != 0)
{
- if (setlocale (LC_COLLATE, "") == NULL)
- error (0, errno,
- gettext ("Cannot set LC_COLLATE to default locale"));
+ setlocale_diagnostics ();
+ try_setlocale (LC_COLLATE, "LC_COLLATE");
write_locales ();
exit (EXIT_SUCCESS);
}
@@ -211,14 +211,15 @@ main (int argc, char *argv[])
used for the -f argument to localedef(1). */
if (do_charmaps != 0)
{
+ setlocale_diagnostics ();
write_charmaps ();
exit (EXIT_SUCCESS);
}
/* Specific information about the current locale are requested.
Change to this locale now. */
- if (setlocale (LC_ALL, "") == NULL)
- error (0, errno, gettext ("Cannot set LC_ALL to default locale"));
+ try_setlocale (LC_ALL, "LC_ALL");
+ setlocale_diagnostics ();
/* If no real argument is given we have to print the contents of the
current locale definition variables. These are LANG and the LC_*. */
@@ -293,7 +294,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\
-"), "2018");
+"), "2019");
fprintf (stream, gettext ("Written by %s.\n"), "Ulrich Drepper");
}
@@ -983,3 +984,121 @@ show_info (const char *name)
For testing and perhaps advanced use allow some more symbols. */
locale_special (name, show_category_name, show_keyword_name);
}
+
+/* Set to true by try_setlocale if setlocale fails. Used by
+ setlocale_diagnostics. */
+static bool setlocale_failed;
+
+/* Call setlocale, with non-fatal error reporting. */
+static void
+try_setlocale (int category, const char *category_name)
+{
+ if (setlocale (category, "") == NULL)
+ {
+ error (0, errno, gettext ("Cannot set %s to default locale"),
+ category_name);
+ setlocale_failed = true;
+ }
+}
+
+/* Return a quoted version of the passed string, or NULL on error. */
+static char *
+quote_string (const char *input)
+{
+ char *buffer;
+ size_t length;
+ FILE *stream = open_memstream (&buffer, &length);
+ if (stream == NULL)
+ return NULL;
+
+ while (true)
+ {
+ unsigned char ch = *input++;
+ if (ch == '\0')
+ break;
+
+ /* Use C backslash escapes for those control characters for
+ which they are defined. */
+ switch (ch)
+ {
+ case '\a':
+ putc_unlocked ('\\', stream);
+ putc_unlocked ('a', stream);
+ break;
+ case '\b':
+ putc_unlocked ('\\', stream);
+ putc_unlocked ('b', stream);
+ break;
+ case '\f':
+ putc_unlocked ('\\', stream);
+ putc_unlocked ('f', stream);
+ break;
+ case '\n':
+ putc_unlocked ('\\', stream);
+ putc_unlocked ('n', stream);
+ break;
+ case '\r':
+ putc_unlocked ('\\', stream);
+ putc_unlocked ('r', stream);
+ break;
+ case '\t':
+ putc_unlocked ('\\', stream);
+ putc_unlocked ('t', stream);
+ break;
+ case '\v':
+ putc_unlocked ('\\', stream);
+ putc_unlocked ('v', stream);
+ break;
+ case '\\':
+ case '\'':
+ case '\"':
+ putc_unlocked ('\\', stream);
+ putc_unlocked (ch, stream);
+ break;
+ default:
+ if (ch < ' ' || ch > '~')
+ /* Use octal sequences because they are fixed width,
+ unlike hexadecimal sequences. */
+ fprintf (stream, "\\%03o", ch);
+ else
+ putc_unlocked (ch, stream);
+ }
+ }
+
+ if (ferror (stream))
+ {
+ fclose (stream);
+ free (buffer);
+ return NULL;
+ }
+ if (fclose (stream) != 0)
+ {
+ free (buffer);
+ return NULL;
+ }
+
+ return buffer;
+}
+
+/* Print additional information if there was a setlocale error (during
+ try_setlocale). */
+static void
+setlocale_diagnostics (void)
+{
+ if (setlocale_failed)
+ {
+ const char *locpath = getenv ("LOCPATH");
+ if (locpath != NULL)
+ {
+ char *quoted = quote_string (locpath);
+ if (quoted != NULL)
+ fprintf (stderr,
+ gettext ("\
+warning: The LOCPATH variable is set to \"%s\"\n"),
+ quoted);
+ else
+ fputs ("warning: The LOCPATH variable is set\n", stderr);
+ free (quoted);
+ }
+ }
+}
diff --git a/locale/programs/localedef.c b/locale/programs/localedef.c
index d718d2e9f4..3dcf15fe6b 100644
--- a/locale/programs/localedef.c
+++ b/locale/programs/localedef.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1995.
@@ -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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
@@ -85,6 +85,9 @@ static bool replace_archive;
/* If true list archive content. */
static bool list_archive;
+/* If true create hard links to other locales (default). */
+bool hard_links = true;
+
/* Maximum number of retries when opening the locale archive. */
int max_locarchive_open_retry = 10;
@@ -105,6 +108,7 @@ void (*argp_program_version_hook) (FILE *, struct argp_state *) = print_version;
#define OPT_BIG_ENDIAN 401
#define OPT_NO_WARN 402
#define OPT_WARN 403
+#define OPT_NO_HARD_LINKS 404
/* Definitions of arguments for argp functions. */
static const struct argp_option options[] =
@@ -120,6 +124,8 @@ static const struct argp_option options[] =
{ NULL, 0, NULL, 0, N_("Output control:") },
{ "force", 'c', NULL, 0,
N_("Create output even if warning messages were issued") },
+ { "no-hard-links", OPT_NO_HARD_LINKS, NULL, 0,
+ N_("Do not create hard links between installed locales") },
{ "prefix", OPT_PREFIX, N_("PATH"), 0, N_("Optional output file prefix") },
{ "posix", OPT_POSIX, NULL, 0, N_("Strictly conform to POSIX") },
{ "quiet", OPT_QUIET, NULL, 0,
@@ -389,6 +395,10 @@ parse_opt (int key, char *arg, struct argp_state *state)
/* Enable the warnings. */
set_warnings (arg, true);
break;
+ case OPT_NO_HARD_LINKS:
+ /* Do not hard link to other locales. */
+ hard_links = false;
+ break;
case 'c':
force_output = 1;
break;
@@ -454,7 +464,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\
-"), "2018");
+"), "2019");
fprintf (stream, gettext ("Written by %s.\n"), "Ulrich Drepper");
}
diff --git a/locale/programs/localedef.h b/locale/programs/localedef.h
index 0083faceab..80da0b0f09 100644
--- a/locale/programs/localedef.h
+++ b/locale/programs/localedef.h
@@ -1,5 +1,5 @@
/* General definitions for localedef(1).
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifndef _LOCALEDEF_H
#define _LOCALEDEF_H 1
@@ -118,6 +118,7 @@ extern const char *repertoire_global;
extern int max_locarchive_open_retry;
extern bool no_archive;
extern const char *alias_file;
+extern bool hard_links;
/* Prototypes for a few program-wide used functions. */
diff --git a/locale/programs/locarchive.c b/locale/programs/locarchive.c
index ca332a345f..88e9ce1a12 100644
--- a/locale/programs/locarchive.c
+++ b/locale/programs/locarchive.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
@@ -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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
diff --git a/locale/programs/locfile-kw.gperf b/locale/programs/locfile-kw.gperf
index 6bf2f6018b..6fecb05b2a 100644
--- a/locale/programs/locfile-kw.gperf
+++ b/locale/programs/locfile-kw.gperf
@@ -1,5 +1,5 @@
%{
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 1996.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU General Public License
along with this program; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/locale/programs/locfile-kw.h b/locale/programs/locfile-kw.h
index d25cf992f2..3cb8a49046 100644
--- a/locale/programs/locfile-kw.h
+++ b/locale/programs/locfile-kw.h
@@ -1,4 +1,4 @@
-/* ANSI-C code produced by gperf version 3.0.4 */
+/* ANSI-C code produced by gperf version 3.1 */
/* Command-line: gperf -acCgopt -k'1,2,5,9,$' -L ANSI-C -N locfile_hash locfile-kw.gperf */
#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
@@ -25,12 +25,12 @@
&& ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
&& ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
/* The character set is not based on ISO-646. */
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
+#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gperf@gnu.org>."
#endif
#line 1 "locfile-kw.gperf"
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 1996.
@@ -46,7 +46,7 @@
You should have received a copy of the GNU General Public License
along with this program; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
@@ -69,7 +69,7 @@ inline
#endif
#endif
static unsigned int
-hash (register const char *str, register unsigned int len)
+hash (register const char *str, register size_t len)
{
static const unsigned short asso_values[] =
{
@@ -100,7 +100,7 @@ hash (register const char *str, register unsigned int len)
631, 631, 631, 631, 631, 631, 631, 631, 631, 631,
631, 631, 631, 631, 631, 631
};
- register int hval = len;
+ register unsigned int hval = len;
switch (hval)
{
@@ -125,14 +125,8 @@ hash (register const char *str, register unsigned int len)
return hval + asso_values[(unsigned char)str[len - 1]];
}
-#ifdef __GNUC__
-__inline
-#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
-__attribute__ ((__gnu_inline__))
-#endif
-#endif
const struct keyword_t *
-locfile_hash (register const char *str, register unsigned int len)
+locfile_hash (register const char *str, register size_t len)
{
static const struct keyword_t wordlist[] =
{
@@ -611,9 +605,9 @@ locfile_hash (register const char *str, register unsigned int len)
if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
{
- register int key = hash (str, len);
+ register unsigned int key = hash (str, len);
- if (key <= MAX_HASH_VALUE && key >= 0)
+ if (key <= MAX_HASH_VALUE)
{
register const char *s = wordlist[key].name;
diff --git a/locale/programs/locfile-token.h b/locale/programs/locfile-token.h
index e3cd18e5f0..069a304c43 100644
--- a/locale/programs/locfile-token.h
+++ b/locale/programs/locfile-token.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifndef _TOKEN_H
#define _TOKEN_H
diff --git a/locale/programs/locfile.c b/locale/programs/locfile.c
index 32e5f761f2..f719c496c0 100644
--- a/locale/programs/locfile.c
+++ b/locale/programs/locfile.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
@@ -702,7 +702,7 @@ write_locale_data (const char *output_path, int catidx, const char *category,
size_t cnt, step, maxiov;
int fd;
char *fname;
- const char **other_paths;
+ const char **other_paths = NULL;
uint32_t header[2];
size_t n_elem;
struct iovec vec[3];
@@ -827,9 +827,22 @@ failure while writing data for category `%s'"), category);
close (fd);
- /* Compare the file with the locale data files for the same category in
- other locales, and see if we can reuse it, to save disk space. */
- other_paths = siblings (output_path);
+ /* Compare the file with the locale data files for the same category
+ in other locales, and see if we can reuse it, to save disk space.
+ If the user specified --no-hard-links to localedef then hard_links
+ is false, other_paths remains NULL and we skip the optimization
+ below. The use of --no-hard-links is distribution specific since
+ some distros have post-processing hard-link steps and so doing this
+ here is a waste of time. Worse than a waste of time in rpm-based
+ distributions it can result in build determinism issues from
+ build-to-build since some files may get a hard link in one pass but
+ not in another (if the files happened to be created in parallel). */
+ if (hard_links)
+ other_paths = siblings (output_path);
+
+ /* If there are other paths, then walk the sibling paths looking for
+ files with the same content so we can hard link and reduce disk
+ space usage. */
if (other_paths != NULL)
{
struct stat64 fname_stat;
diff --git a/locale/programs/locfile.h b/locale/programs/locfile.h
index 89b347c72d..b24d95c562 100644
--- a/locale/programs/locfile.h
+++ b/locale/programs/locfile.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifndef _LOCFILE_H
#define _LOCFILE_H 1
diff --git a/locale/programs/record-status.c b/locale/programs/record-status.c
index 730679a795..c98794a628 100644
--- a/locale/programs/record-status.c
+++ b/locale/programs/record-status.c
@@ -1,5 +1,5 @@
/* Functions for recorded errors, warnings, and verbose messages.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
diff --git a/locale/programs/record-status.h b/locale/programs/record-status.h
index 7ea0b5be8f..b91d7dbaaa 100644
--- a/locale/programs/record-status.h
+++ b/locale/programs/record-status.h
@@ -1,5 +1,5 @@
/* General definitions for recording error and warning status.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifndef _RECORD_STATUS_H
#define _RECORD_STATUS_H 1
diff --git a/locale/programs/repertoire.c b/locale/programs/repertoire.c
index ac83988ebf..1918034172 100644
--- a/locale/programs/repertoire.c
+++ b/locale/programs/repertoire.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@@ -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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
@@ -37,7 +37,7 @@
/* Simple keyword hashing for the repertoiremap. */
static const struct keyword_t *repertoiremap_hash (const char *str,
- unsigned int len);
+ size_t len);
static void repertoire_new_char (struct linereader *lr, hash_table *ht,
hash_table *rt, struct obstack *ob,
uint32_t value, const char *from,
@@ -358,7 +358,7 @@ repertoire_compare (const void *p1, const void *p2)
static const struct keyword_t *
-repertoiremap_hash (const char *str, unsigned int len)
+repertoiremap_hash (const char *str, size_t len)
{
static const struct keyword_t wordlist[] =
{
diff --git a/locale/programs/repertoire.h b/locale/programs/repertoire.h
index 6a9c7b4257..d5317dc7b1 100644
--- a/locale/programs/repertoire.h
+++ b/locale/programs/repertoire.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@@ -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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifndef _REPERTOIREMAP_H
#define _REPERTOIREMAP_H 1
diff --git a/locale/programs/simple-hash.c b/locale/programs/simple-hash.c
index 66bb474deb..2188a94e10 100644
--- a/locale/programs/simple-hash.c
+++ b/locale/programs/simple-hash.c
@@ -1,5 +1,5 @@
/* Implement simple hashing table with string based keys.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, October 1994.
@@ -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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
diff --git a/locale/programs/simple-hash.h b/locale/programs/simple-hash.h
index ce55a70879..06bae4814b 100644
--- a/locale/programs/simple-hash.h
+++ b/locale/programs/simple-hash.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
@@ -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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifndef _SIMPLE_HASH_H
#define _SIMPLE_HASH_H
diff --git a/locale/programs/xmalloc.c b/locale/programs/xmalloc.c
index be1e43d920..9a80e3c9a1 100644
--- a/locale/programs/xmalloc.c
+++ b/locale/programs/xmalloc.c
@@ -1,5 +1,5 @@
/* xmalloc.c -- malloc with out of memory checking
- Copyright (C) 1990-2018 Free Software Foundation, Inc.
+ Copyright (C) 1990-2019 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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
#include <config.h>
diff --git a/locale/programs/xstrdup.c b/locale/programs/xstrdup.c
index 7331d6410f..b26b574d66 100644
--- a/locale/programs/xstrdup.c
+++ b/locale/programs/xstrdup.c
@@ -1,5 +1,5 @@
/* xstrdup.c -- copy a string with out of memory checking
- Copyright (C) 1990-2018 Free Software Foundation, Inc.
+ Copyright (C) 1990-2019 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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
diff --git a/locale/setlocale.c b/locale/setlocale.c
index e4de907e1f..a4a2c49b7a 100644
--- a/locale/setlocale.c
+++ b/locale/setlocale.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <alloca.h>
#include <argz.h>
@@ -65,20 +65,18 @@ static char *const _nl_current_used[] =
/* Define an array of category names (also the environment variable names). */
-const union catnamestr_t _nl_category_names attribute_hidden =
+const struct catnamestr_t _nl_category_names attribute_hidden =
{
- {
#define DEFINE_CATEGORY(category, category_name, items, a) \
- category_name,
+ category_name,
#include "categories.def"
#undef DEFINE_CATEGORY
- }
};
const uint8_t _nl_category_name_idxs[__LC_LAST] attribute_hidden =
{
#define DEFINE_CATEGORY(category, category_name, items, a) \
- [category] = offsetof (union catnamestr_t, CATNAMEMF (__LINE__)),
+ [category] = offsetof (struct catnamestr_t, CATNAMEMF (__LINE__)),
#include "categories.def"
#undef DEFINE_CATEGORY
};
@@ -148,9 +146,9 @@ new_composite_name (int category, const char *newnames[__LC_LAST])
for (i = 0; i < __LC_LAST; ++i)
if (i != LC_ALL)
{
- const char *name = (category == LC_ALL ? newnames[i] :
- category == i ? newnames[0] :
- _nl_global_locale.__names[i]);
+ const char *name = (category == LC_ALL ? newnames[i]
+ : category == i ? newnames[0]
+ : _nl_global_locale.__names[i]);
last_len = strlen (name);
cumlen += _nl_category_name_sizes[i] + 1 + last_len + 1;
if (same && name != newnames[0] && strcmp (name, newnames[0]) != 0)
@@ -177,10 +175,10 @@ new_composite_name (int category, const char *newnames[__LC_LAST])
if (i != LC_ALL)
{
/* Add "CATEGORY=NAME;" to the string. */
- const char *name = (category == LC_ALL ? newnames[i] :
- category == i ? newnames[0] :
- _nl_global_locale.__names[i]);
- p = __stpcpy (p, _nl_category_names.str + _nl_category_name_idxs[i]);
+ const char *name = (category == LC_ALL ? newnames[i]
+ : category == i ? newnames[0]
+ : _nl_global_locale.__names[i]);
+ p = __stpcpy (p, _nl_category_names_get (i));
*p++ = '=';
p = __stpcpy (p, name);
*p++ = ';';
@@ -298,8 +296,7 @@ setlocale (int category, const char *locale)
for (cnt = 0; cnt < __LC_LAST; ++cnt)
if (cnt != LC_ALL
&& (size_t) (cp - np) == _nl_category_name_sizes[cnt]
- && (memcmp (np, (_nl_category_names.str
- + _nl_category_name_idxs[cnt]), cp - np)
+ && (memcmp (np, (_nl_category_names_get (cnt)), cp - np)
== 0))
break;
diff --git a/locale/strlen-hash.h b/locale/strlen-hash.h
index 8973f188a0..59082c9057 100644
--- a/locale/strlen-hash.h
+++ b/locale/strlen-hash.h
@@ -1,5 +1,5 @@
/* Implements hashing function for string with known length.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
diff --git a/locale/tst-C-locale.c b/locale/tst-C-locale.c
index cee08822b1..ecc985fe9f 100644
--- a/locale/tst-C-locale.c
+++ b/locale/tst-C-locale.c
@@ -1,5 +1,5 @@
/* Tests of C and POSIX locale contents.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <langinfo.h>
diff --git a/locale/tst-locale-locpath.sh b/locale/tst-locale-locpath.sh
new file mode 100644
index 0000000000..f7c2fda605
--- /dev/null
+++ b/locale/tst-locale-locpath.sh
@@ -0,0 +1,83 @@
+#!/bin/sh
+# Test that locale prints LOCPATH on failure.
+# 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; if not, see
+# <https://www.gnu.org/licenses/>.
+
+set -ex
+
+common_objpfx=$1
+test_wrapper_env=$2
+run_program_env=$3
+
+LIBPATH="$common_objpfx"
+
+testroot="${common_objpfx}locale/tst-locale-locpath-directory"
+cleanup () {
+ rm -rf "$testroot"
+}
+trap cleanup 0
+
+rm -rf "$testroot"
+mkdir -p $testroot
+
+unset LANG
+
+${test_wrapper_env} \
+${run_program_env} LC_ALL=invalid-locale LOCPATH=does-not-exist \
+${common_objpfx}elf/ld.so --library-path "$LIBPATH" \
+ "${common_objpfx}locale/locale" \
+ > "$testroot/stdout" 2> "$testroot/stderr"
+
+echo "* standard error"
+cat "$testroot/stderr"
+echo "* standard output"
+cat "$testroot/stdout"
+
+cat > "$testroot/stderr-expected" <<EOF
+${common_objpfx}locale/locale: Cannot set LC_CTYPE to default locale: No such file or directory
+${common_objpfx}locale/locale: Cannot set LC_MESSAGES to default locale: No such file or directory
+${common_objpfx}locale/locale: Cannot set LC_ALL to default locale: No such file or directory
+warning: The LOCPATH variable is set to "does-not-exist"
+EOF
+
+cat > "$testroot/stdout-expected" <<EOF
+LANG=
+LC_CTYPE="invalid-locale"
+LC_NUMERIC="invalid-locale"
+LC_TIME="invalid-locale"
+LC_COLLATE="invalid-locale"
+LC_MONETARY="invalid-locale"
+LC_MESSAGES="invalid-locale"
+LC_PAPER="invalid-locale"
+LC_NAME="invalid-locale"
+LC_ADDRESS="invalid-locale"
+LC_TELEPHONE="invalid-locale"
+LC_MEASUREMENT="invalid-locale"
+LC_IDENTIFICATION="invalid-locale"
+LC_ALL=invalid-locale
+EOF
+
+errors=0
+if ! cmp -s "$testroot/stderr-expected" "$testroot/stderr" ; then
+ echo "error: standard error not correct"
+ errors=1
+fi
+if ! cmp -s "$testroot/stdout-expected" "$testroot/stdout" ; then
+ echo "error: standard output not correct"
+ errors=1
+fi
+exit $errors
diff --git a/locale/uselocale.c b/locale/uselocale.c
index 5ba77c5639..bc4baebe31 100644
--- a/locale/uselocale.c
+++ b/locale/uselocale.c
@@ -1,5 +1,5 @@
/* uselocale -- fetch and set the current per-thread locale
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <locale.h>
#include "localeinfo.h"
diff --git a/locale/weight.h b/locale/weight.h
index 6028d3595e..1569449c17 100644
--- a/locale/weight.h
+++ b/locale/weight.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Ulrich Drepper, <drepper@cygnus.com>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _WEIGHT_H_
#define _WEIGHT_H_ 1
diff --git a/locale/weightwc.h b/locale/weightwc.h
index 7ee335dc9a..7b4e342a0a 100644
--- a/locale/weightwc.h
+++ b/locale/weightwc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Ulrich Drepper, <drepper@cygnus.com>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _WEIGHTWC_H_
#define _WEIGHTWC_H_ 1
diff --git a/locale/xlocale.c b/locale/xlocale.c
index 8a52c48e58..91c473c25c 100644
--- a/locale/xlocale.c
+++ b/locale/xlocale.c
@@ -1,5 +1,5 @@
/* C locale object.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <locale.h>
#include "localeinfo.h"
diff --git a/localedata/Makefile b/localedata/Makefile
index 13c5423e0e..89ba404a76 100644
--- a/localedata/Makefile
+++ b/localedata/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
# Makefile for installing locale data source files.
@@ -156,7 +156,7 @@ tests = $(locale_test_suite) tst-digits tst-setlocale bug-iconv-trans \
tst-leaks tst-mbswcs1 tst-mbswcs2 tst-mbswcs3 tst-mbswcs4 tst-mbswcs5 \
tst-mbswcs6 tst-xlocale1 tst-xlocale2 bug-usesetlocale \
tst-strfmon1 tst-sscanf bug-setlocale1 tst-setlocale2 tst-setlocale3 \
- tst-wctype
+ tst-wctype tst-iconv-math-trans
tests-static = bug-setlocale1-static
tests += $(tests-static)
ifeq (yes,$(build-shared))
@@ -167,9 +167,17 @@ endif
endif
# Files to install.
+ifeq ($(INSTALL_UNCOMPRESSED),yes)
+# This option is for testing inside the testroot container, as the
+# container does not include a working gunzip program.
+install-others := $(addprefix $(inst_i18ndir)/, \
+ $(charmaps) \
+ $(locales))
+else
install-others := $(addprefix $(inst_i18ndir)/, \
$(addsuffix .gz, $(charmaps)) \
$(locales))
+endif
tests: $(objdir)/iconvdata/gconv-modules
@@ -245,6 +253,7 @@ LOCALES := \
nan_TW.UTF-8@latin \
nb_NO.ISO-8859-1 \
nb_NO.UTF-8 \
+ nl_NL.UTF-8 \
nn_NO.ISO-8859-1 \
om_KE.UTF-8 \
os_RU.UTF-8 \
@@ -278,16 +287,28 @@ LOCALES := \
$(NULL)
include ../gen-locales.mk
+
+$(objpfx)tst-iconv-math-trans.out: $(gen-locales)
endif
include ../Rules
+ifeq ($(INSTALL_UNCOMPRESSED),yes)
+# Install the charmap files as-is. This option is for testing inside
+# the testroot container, as the container does not include a working
+# gunzip program.
+$(inst_i18ndir)/charmaps/%: charmaps/% $(+force)
+ $(make-target-directory)
+ rm -f $@
+ $(INSTALL_DATA) $< $@
+else
# Install the charmap files in gzipped format.
$(inst_i18ndir)/charmaps/%.gz: charmaps/% $(+force)
$(make-target-directory)
rm -f $(@:.gz=) $@
$(INSTALL_DATA) $< $(@:.gz=)
gzip -9n $(@:.gz=)
+endif
# Install the locale source files in the appropriate directory.
$(inst_i18ndir)/locales/%: locales/% $(+force); $(do-install)
@@ -380,12 +401,18 @@ endif
include SUPPORTED
-INSTALL-SUPPORTED-LOCALES=$(addprefix install-, $(SUPPORTED-LOCALES))
+INSTALL-SUPPORTED-LOCALE-ARCHIVE=$(addprefix install-archive-, $(SUPPORTED-LOCALES))
+INSTALL-SUPPORTED-LOCALE-FILES=$(addprefix install-files-, $(SUPPORTED-LOCALES))
# Sometimes the whole collection of locale files should be installed.
LOCALEDEF=I18NPATH=. GCONV_PATH=$(common-objpfx)iconvdata LC_ALL=C \
$(rtld-prefix) $(common-objpfx)locale/localedef
-install-locales: $(INSTALL-SUPPORTED-LOCALES)
+install-locales: install-locale-archive
+
+# Create and install the locale-archive file.
+install-locale-archive: $(INSTALL-SUPPORTED-LOCALE-ARCHIVE)
+# Create and install the locales individually (no archive).
+install-locale-files: $(INSTALL-SUPPORTED-LOCALE-FILES)
install-locales-dir:
$(..)./scripts/mkinstalldirs $(inst_complocaledir)
@@ -393,11 +420,10 @@ install-locales-dir:
# The SHIFT_JIS and SHIFT_JISX0213 character maps are not ASCII compatible,
# therefore we have to use --no-warnings=ascii to disable the ASCII check.
# See localedata/gen-locale.sh for the same logic.
-$(INSTALL-SUPPORTED-LOCALES): install-locales-dir
- @locale=`echo $@ | sed -e 's/^install-//'`; \
+define build-one-locale
+ locale=`echo $@ | sed -e 's/^install-[a-z]*-//'`; \
charset=`echo $$locale | sed -e 's,.*/,,'`; \
locale=`echo $$locale | sed -e 's,/[^/]*,,'`; \
- flags="-c"; \
if [ "$$charset" = 'SHIFT_JIS' ] \
|| [ "$$charset" = 'SHIFT_JISX0213' ]; then \
flags="$$flags --no-warnings=ascii"; \
@@ -410,7 +436,16 @@ $(INSTALL-SUPPORTED-LOCALES): install-locales-dir
$(LOCALEDEF) $$flags --alias-file=../intl/locale.alias \
-i locales/$$input -f charmaps/$$charset \
$(addprefix --prefix=,$(install_root)) $$locale \
- && echo ' done'; \
+ && echo ' done';
+endef
+
+$(INSTALL-SUPPORTED-LOCALE-ARCHIVE): install-locales-dir
+ @flags="-c"; \
+ $(build-one-locale)
+
+$(INSTALL-SUPPORTED-LOCALE-FILES): install-locales-dir
+ @flags="-c --no-archive --no-hard-links"; \
+ $(build-one-locale)
tst-setlocale-ENV = LC_ALL=ja_JP.EUC-JP
tst-wctype-ENV = LC_ALL=ja_JP.EUC-JP
diff --git a/localedata/SUPPORTED b/localedata/SUPPORTED
index 05de4e3307..40b2ccee5a 100644
--- a/localedata/SUPPORTED
+++ b/localedata/SUPPORTED
@@ -327,6 +327,7 @@ mk_MK/ISO-8859-5 \
ml_IN/UTF-8 \
mn_MN/UTF-8 \
mni_IN/UTF-8 \
+mnw_MM/UTF-8 \
mr_IN/UTF-8 \
ms_MY.UTF-8/UTF-8 \
ms_MY/ISO-8859-1 \
diff --git a/localedata/charmaps/UTF-8 b/localedata/charmaps/UTF-8
index 1367aa46cf..e3d84d55c3 100644
--- a/localedata/charmaps/UTF-8
+++ b/localedata/charmaps/UTF-8
@@ -2818,6 +2818,7 @@ CHARMAP
<U0C6D> /xe0/xb1/xad TELUGU DIGIT SEVEN
<U0C6E> /xe0/xb1/xae TELUGU DIGIT EIGHT
<U0C6F> /xe0/xb1/xaf TELUGU DIGIT NINE
+<U0C77> /xe0/xb1/xb7 TELUGU SIGN SIDDHAM
<U0C78> /xe0/xb1/xb8 TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR
<U0C79> /xe0/xb1/xb9 TELUGU FRACTION DIGIT ONE FOR ODD POWERS OF FOUR
<U0C7A> /xe0/xb1/xba TELUGU FRACTION DIGIT TWO FOR ODD POWERS OF FOUR
@@ -3212,14 +3213,24 @@ CHARMAP
<U0E81> /xe0/xba/x81 LAO LETTER KO
<U0E82> /xe0/xba/x82 LAO LETTER KHO SUNG
<U0E84> /xe0/xba/x84 LAO LETTER KHO TAM
+<U0E86> /xe0/xba/x86 LAO LETTER PALI GHA
<U0E87> /xe0/xba/x87 LAO LETTER NGO
<U0E88> /xe0/xba/x88 LAO LETTER CO
+<U0E89> /xe0/xba/x89 LAO LETTER PALI CHA
<U0E8A> /xe0/xba/x8a LAO LETTER SO TAM
+<U0E8C> /xe0/xba/x8c LAO LETTER PALI JHA
<U0E8D> /xe0/xba/x8d LAO LETTER NYO
+<U0E8E> /xe0/xba/x8e LAO LETTER PALI NYA
+<U0E8F> /xe0/xba/x8f LAO LETTER PALI TTA
+<U0E90> /xe0/xba/x90 LAO LETTER PALI TTHA
+<U0E91> /xe0/xba/x91 LAO LETTER PALI DDA
+<U0E92> /xe0/xba/x92 LAO LETTER PALI DDHA
+<U0E93> /xe0/xba/x93 LAO LETTER PALI NNA
<U0E94> /xe0/xba/x94 LAO LETTER DO
<U0E95> /xe0/xba/x95 LAO LETTER TO
<U0E96> /xe0/xba/x96 LAO LETTER THO SUNG
<U0E97> /xe0/xba/x97 LAO LETTER THO TAM
+<U0E98> /xe0/xba/x98 LAO LETTER PALI DHA
<U0E99> /xe0/xba/x99 LAO LETTER NO
<U0E9A> /xe0/xba/x9a LAO LETTER BO
<U0E9B> /xe0/xba/x9b LAO LETTER PO
@@ -3227,13 +3238,17 @@ CHARMAP
<U0E9D> /xe0/xba/x9d LAO LETTER FO TAM
<U0E9E> /xe0/xba/x9e LAO LETTER PHO TAM
<U0E9F> /xe0/xba/x9f LAO LETTER FO SUNG
+<U0EA0> /xe0/xba/xa0 LAO LETTER PALI BHA
<U0EA1> /xe0/xba/xa1 LAO LETTER MO
<U0EA2> /xe0/xba/xa2 LAO LETTER YO
<U0EA3> /xe0/xba/xa3 LAO LETTER LO LING
<U0EA5> /xe0/xba/xa5 LAO LETTER LO LOOT
<U0EA7> /xe0/xba/xa7 LAO LETTER WO
+<U0EA8> /xe0/xba/xa8 LAO LETTER SANSKRIT SHA
+<U0EA9> /xe0/xba/xa9 LAO LETTER SANSKRIT SSA
<U0EAA> /xe0/xba/xaa LAO LETTER SO SUNG
<U0EAB> /xe0/xba/xab LAO LETTER HO SUNG
+<U0EAC> /xe0/xba/xac LAO LETTER PALI LLA
<U0EAD> /xe0/xba/xad LAO LETTER O
<U0EAE> /xe0/xba/xae LAO LETTER HO TAM
<U0EAF> /xe0/xba/xaf LAO ELLIPSIS
@@ -3247,6 +3262,7 @@ CHARMAP
<U0EB7> /xe0/xba/xb7 LAO VOWEL SIGN YY
<U0EB8> /xe0/xba/xb8 LAO VOWEL SIGN U
<U0EB9> /xe0/xba/xb9 LAO VOWEL SIGN UU
+<U0EBA> /xe0/xba/xba LAO SIGN PALI VIRAMA
<U0EBB> /xe0/xba/xbb LAO VOWEL SIGN MAI KON
<U0EBC> /xe0/xba/xbc LAO SEMIVOWEL SIGN LO
<U0EBD> /xe0/xba/xbd LAO SEMIVOWEL SIGN NYO
@@ -6505,6 +6521,7 @@ CHARMAP
<U1CF7> /xe1/xb3/xb7 VEDIC SIGN ATIKRAMA
<U1CF8> /xe1/xb3/xb8 VEDIC TONE RING ABOVE
<U1CF9> /xe1/xb3/xb9 VEDIC TONE DOUBLE RING ABOVE
+<U1CFA> /xe1/xb3/xba VEDIC SIGN DOUBLE ANUSVARA ANTARGOMUKHA
<U1D00> /xe1/xb4/x80 LATIN LETTER SMALL CAPITAL A
<U1D01> /xe1/xb4/x81 LATIN LETTER SMALL CAPITAL AE
<U1D02> /xe1/xb4/x82 LATIN SMALL LETTER TURNED AE
@@ -10174,6 +10191,7 @@ CHARMAP
<U2BC6> /xe2/xaf/x86 BLACK MEDIUM DOWN-POINTING TRIANGLE CENTRED
<U2BC7> /xe2/xaf/x87 BLACK MEDIUM LEFT-POINTING TRIANGLE CENTRED
<U2BC8> /xe2/xaf/x88 BLACK MEDIUM RIGHT-POINTING TRIANGLE CENTRED
+<U2BC9> /xe2/xaf/x89 NEPTUNE FORM TWO
<U2BCA> /xe2/xaf/x8a TOP HALF BLACK CIRCLE
<U2BCB> /xe2/xaf/x8b BOTTOM HALF BLACK CIRCLE
<U2BCC> /xe2/xaf/x8c LIGHT FOUR POINTED BLACK CUSP
@@ -10227,6 +10245,7 @@ CHARMAP
<U2BFC> /xe2/xaf/xbc DOUBLED SYMBOL
<U2BFD> /xe2/xaf/xbd PASSED SYMBOL
<U2BFE> /xe2/xaf/xbe REVERSED RIGHT ANGLE
+<U2BFF> /xe2/xaf/xbf HELLSCHREIBER PAUSE SYMBOL
<U2C00> /xe2/xb0/x80 GLAGOLITIC CAPITAL LETTER AZU
<U2C01> /xe2/xb0/x81 GLAGOLITIC CAPITAL LETTER BUKY
<U2C02> /xe2/xb0/x82 GLAGOLITIC CAPITAL LETTER VEDE
@@ -10765,6 +10784,7 @@ CHARMAP
<U2E4C> /xe2/xb9/x8c MEDIEVAL COMMA
<U2E4D> /xe2/xb9/x8d PARAGRAPHUS MARK
<U2E4E> /xe2/xb9/x8e PUNCTUS ELEVATUS MARK
+<U2E4F> /xe2/xb9/x8f CORNISH VERSE DIVIDER
<U2E80> /xe2/xba/x80 CJK RADICAL REPEAT
<U2E81> /xe2/xba/x81 CJK RADICAL CLIFF
<U2E82> /xe2/xba/x82 CJK RADICAL SECOND ONE
@@ -11845,6 +11865,7 @@ CHARMAP
<U32FC> /xe3/x8b/xbc CIRCLED KATAKANA WI
<U32FD> /xe3/x8b/xbd CIRCLED KATAKANA WE
<U32FE> /xe3/x8b/xbe CIRCLED KATAKANA WO
+<U32FF> /xe3/x8b/xbf SQUARE ERA NAME REIWA
<U3300> /xe3/x8c/x80 SQUARE APAATO
<U3301> /xe3/x8c/x81 SQUARE ARUHUA
<U3302> /xe3/x8c/x82 SQUARE ANPEA
@@ -14534,6 +14555,17 @@ CHARMAP
<UA7B7> /xea/x9e/xb7 LATIN SMALL LETTER OMEGA
<UA7B8> /xea/x9e/xb8 LATIN CAPITAL LETTER U WITH STROKE
<UA7B9> /xea/x9e/xb9 LATIN SMALL LETTER U WITH STROKE
+<UA7BA> /xea/x9e/xba LATIN CAPITAL LETTER GLOTTAL A
+<UA7BB> /xea/x9e/xbb LATIN SMALL LETTER GLOTTAL A
+<UA7BC> /xea/x9e/xbc LATIN CAPITAL LETTER GLOTTAL I
+<UA7BD> /xea/x9e/xbd LATIN SMALL LETTER GLOTTAL I
+<UA7BE> /xea/x9e/xbe LATIN CAPITAL LETTER GLOTTAL U
+<UA7BF> /xea/x9e/xbf LATIN SMALL LETTER GLOTTAL U
+<UA7C2> /xea/x9f/x82 LATIN CAPITAL LETTER ANGLICANA W
+<UA7C3> /xea/x9f/x83 LATIN SMALL LETTER ANGLICANA W
+<UA7C4> /xea/x9f/x84 LATIN CAPITAL LETTER C WITH PALATAL HOOK
+<UA7C5> /xea/x9f/x85 LATIN CAPITAL LETTER S WITH HOOK
+<UA7C6> /xea/x9f/x86 LATIN CAPITAL LETTER Z WITH PALATAL HOOK
<UA7F7> /xea/x9f/xb7 LATIN EPIGRAPHIC LETTER SIDEWAYS I
<UA7F8> /xea/x9f/xb8 MODIFIER LETTER CAPITAL H WITH STROKE
<UA7F9> /xea/x9f/xb9 MODIFIER LETTER SMALL LIGATURE OE
@@ -15299,6 +15331,8 @@ CHARMAP
<UAB63> /xea/xad/xa3 LATIN SMALL LETTER UO
<UAB64> /xea/xad/xa4 LATIN SMALL LETTER INVERTED ALPHA
<UAB65> /xea/xad/xa5 GREEK LETTER SMALL CAPITAL OMEGA
+<UAB66> /xea/xad/xa6 LATIN SMALL LETTER DZ DIGRAPH WITH RETROFLEX HOOK
+<UAB67> /xea/xad/xa7 LATIN SMALL LETTER TS DIGRAPH WITH RETROFLEX HOOK
<UAB70> /xea/xad/xb0 CHEROKEE SMALL LETTER A
<UAB71> /xea/xad/xb1 CHEROKEE SMALL LETTER E
<UAB72> /xea/xad/xb2 CHEROKEE SMALL LETTER I
@@ -30809,6 +30843,29 @@ CHARMAP
<U00010F57> /xf0/x90/xbd/x97 SOGDIAN PUNCTUATION CIRCLE WITH DOT
<U00010F58> /xf0/x90/xbd/x98 SOGDIAN PUNCTUATION TWO CIRCLES WITH DOTS
<U00010F59> /xf0/x90/xbd/x99 SOGDIAN PUNCTUATION HALF CIRCLE WITH DOT
+<U00010FE0> /xf0/x90/xbf/xa0 ELYMAIC LETTER ALEPH
+<U00010FE1> /xf0/x90/xbf/xa1 ELYMAIC LETTER BETH
+<U00010FE2> /xf0/x90/xbf/xa2 ELYMAIC LETTER GIMEL
+<U00010FE3> /xf0/x90/xbf/xa3 ELYMAIC LETTER DALETH
+<U00010FE4> /xf0/x90/xbf/xa4 ELYMAIC LETTER HE
+<U00010FE5> /xf0/x90/xbf/xa5 ELYMAIC LETTER WAW
+<U00010FE6> /xf0/x90/xbf/xa6 ELYMAIC LETTER ZAYIN
+<U00010FE7> /xf0/x90/xbf/xa7 ELYMAIC LETTER HETH
+<U00010FE8> /xf0/x90/xbf/xa8 ELYMAIC LETTER TETH
+<U00010FE9> /xf0/x90/xbf/xa9 ELYMAIC LETTER YODH
+<U00010FEA> /xf0/x90/xbf/xaa ELYMAIC LETTER KAPH
+<U00010FEB> /xf0/x90/xbf/xab ELYMAIC LETTER LAMEDH
+<U00010FEC> /xf0/x90/xbf/xac ELYMAIC LETTER MEM
+<U00010FED> /xf0/x90/xbf/xad ELYMAIC LETTER NUN
+<U00010FEE> /xf0/x90/xbf/xae ELYMAIC LETTER SAMEKH
+<U00010FEF> /xf0/x90/xbf/xaf ELYMAIC LETTER AYIN
+<U00010FF0> /xf0/x90/xbf/xb0 ELYMAIC LETTER PE
+<U00010FF1> /xf0/x90/xbf/xb1 ELYMAIC LETTER SADHE
+<U00010FF2> /xf0/x90/xbf/xb2 ELYMAIC LETTER QOPH
+<U00010FF3> /xf0/x90/xbf/xb3 ELYMAIC LETTER RESH
+<U00010FF4> /xf0/x90/xbf/xb4 ELYMAIC LETTER SHIN
+<U00010FF5> /xf0/x90/xbf/xb5 ELYMAIC LETTER TAW
+<U00010FF6> /xf0/x90/xbf/xb6 ELYMAIC LIGATURE ZAYIN-YODH
<U00011000> /xf0/x91/x80/x80 BRAHMI SIGN CANDRABINDU
<U00011001> /xf0/x91/x80/x81 BRAHMI SIGN ANUSVARA
<U00011002> /xf0/x91/x80/x82 BRAHMI SIGN VISARGA
@@ -31591,6 +31648,7 @@ CHARMAP
<U0001145B> /xf0/x91/x91/x9b NEWA PLACEHOLDER MARK
<U0001145D> /xf0/x91/x91/x9d NEWA INSERTION SIGN
<U0001145E> /xf0/x91/x91/x9e NEWA SANDHI MARK
+<U0001145F> /xf0/x91/x91/x9f NEWA LETTER VEDIC ANUSVARA
<U00011480> /xf0/x91/x92/x80 TIRHUTA ANJI
<U00011481> /xf0/x91/x92/x81 TIRHUTA LETTER A
<U00011482> /xf0/x91/x92/x82 TIRHUTA LETTER AA
@@ -31913,6 +31971,7 @@ CHARMAP
<U000116B5> /xf0/x91/x9a/xb5 TAKRI VOWEL SIGN AU
<U000116B6> /xf0/x91/x9a/xb6 TAKRI SIGN VIRAMA
<U000116B7> /xf0/x91/x9a/xb7 TAKRI SIGN NUKTA
+<U000116B8> /xf0/x91/x9a/xb8 TAKRI LETTER ARCHAIC KHA
<U000116C0> /xf0/x91/x9b/x80 TAKRI DIGIT ZERO
<U000116C1> /xf0/x91/x9b/x81 TAKRI DIGIT ONE
<U000116C2> /xf0/x91/x9b/x82 TAKRI DIGIT TWO
@@ -32125,6 +32184,71 @@ CHARMAP
<U000118F1> /xf0/x91/xa3/xb1 WARANG CITI NUMBER EIGHTY
<U000118F2> /xf0/x91/xa3/xb2 WARANG CITI NUMBER NINETY
<U000118FF> /xf0/x91/xa3/xbf WARANG CITI OM
+<U000119A0> /xf0/x91/xa6/xa0 NANDINAGARI LETTER A
+<U000119A1> /xf0/x91/xa6/xa1 NANDINAGARI LETTER AA
+<U000119A2> /xf0/x91/xa6/xa2 NANDINAGARI LETTER I
+<U000119A3> /xf0/x91/xa6/xa3 NANDINAGARI LETTER II
+<U000119A4> /xf0/x91/xa6/xa4 NANDINAGARI LETTER U
+<U000119A5> /xf0/x91/xa6/xa5 NANDINAGARI LETTER UU
+<U000119A6> /xf0/x91/xa6/xa6 NANDINAGARI LETTER VOCALIC R
+<U000119A7> /xf0/x91/xa6/xa7 NANDINAGARI LETTER VOCALIC RR
+<U000119AA> /xf0/x91/xa6/xaa NANDINAGARI LETTER E
+<U000119AB> /xf0/x91/xa6/xab NANDINAGARI LETTER AI
+<U000119AC> /xf0/x91/xa6/xac NANDINAGARI LETTER O
+<U000119AD> /xf0/x91/xa6/xad NANDINAGARI LETTER AU
+<U000119AE> /xf0/x91/xa6/xae NANDINAGARI LETTER KA
+<U000119AF> /xf0/x91/xa6/xaf NANDINAGARI LETTER KHA
+<U000119B0> /xf0/x91/xa6/xb0 NANDINAGARI LETTER GA
+<U000119B1> /xf0/x91/xa6/xb1 NANDINAGARI LETTER GHA
+<U000119B2> /xf0/x91/xa6/xb2 NANDINAGARI LETTER NGA
+<U000119B3> /xf0/x91/xa6/xb3 NANDINAGARI LETTER CA
+<U000119B4> /xf0/x91/xa6/xb4 NANDINAGARI LETTER CHA
+<U000119B5> /xf0/x91/xa6/xb5 NANDINAGARI LETTER JA
+<U000119B6> /xf0/x91/xa6/xb6 NANDINAGARI LETTER JHA
+<U000119B7> /xf0/x91/xa6/xb7 NANDINAGARI LETTER NYA
+<U000119B8> /xf0/x91/xa6/xb8 NANDINAGARI LETTER TTA
+<U000119B9> /xf0/x91/xa6/xb9 NANDINAGARI LETTER TTHA
+<U000119BA> /xf0/x91/xa6/xba NANDINAGARI LETTER DDA
+<U000119BB> /xf0/x91/xa6/xbb NANDINAGARI LETTER DDHA
+<U000119BC> /xf0/x91/xa6/xbc NANDINAGARI LETTER NNA
+<U000119BD> /xf0/x91/xa6/xbd NANDINAGARI LETTER TA
+<U000119BE> /xf0/x91/xa6/xbe NANDINAGARI LETTER THA
+<U000119BF> /xf0/x91/xa6/xbf NANDINAGARI LETTER DA
+<U000119C0> /xf0/x91/xa7/x80 NANDINAGARI LETTER DHA
+<U000119C1> /xf0/x91/xa7/x81 NANDINAGARI LETTER NA
+<U000119C2> /xf0/x91/xa7/x82 NANDINAGARI LETTER PA
+<U000119C3> /xf0/x91/xa7/x83 NANDINAGARI LETTER PHA
+<U000119C4> /xf0/x91/xa7/x84 NANDINAGARI LETTER BA
+<U000119C5> /xf0/x91/xa7/x85 NANDINAGARI LETTER BHA
+<U000119C6> /xf0/x91/xa7/x86 NANDINAGARI LETTER MA
+<U000119C7> /xf0/x91/xa7/x87 NANDINAGARI LETTER YA
+<U000119C8> /xf0/x91/xa7/x88 NANDINAGARI LETTER RA
+<U000119C9> /xf0/x91/xa7/x89 NANDINAGARI LETTER LA
+<U000119CA> /xf0/x91/xa7/x8a NANDINAGARI LETTER VA
+<U000119CB> /xf0/x91/xa7/x8b NANDINAGARI LETTER SHA
+<U000119CC> /xf0/x91/xa7/x8c NANDINAGARI LETTER SSA
+<U000119CD> /xf0/x91/xa7/x8d NANDINAGARI LETTER SA
+<U000119CE> /xf0/x91/xa7/x8e NANDINAGARI LETTER HA
+<U000119CF> /xf0/x91/xa7/x8f NANDINAGARI LETTER LLA
+<U000119D0> /xf0/x91/xa7/x90 NANDINAGARI LETTER RRA
+<U000119D1> /xf0/x91/xa7/x91 NANDINAGARI VOWEL SIGN AA
+<U000119D2> /xf0/x91/xa7/x92 NANDINAGARI VOWEL SIGN I
+<U000119D3> /xf0/x91/xa7/x93 NANDINAGARI VOWEL SIGN II
+<U000119D4> /xf0/x91/xa7/x94 NANDINAGARI VOWEL SIGN U
+<U000119D5> /xf0/x91/xa7/x95 NANDINAGARI VOWEL SIGN UU
+<U000119D6> /xf0/x91/xa7/x96 NANDINAGARI VOWEL SIGN VOCALIC R
+<U000119D7> /xf0/x91/xa7/x97 NANDINAGARI VOWEL SIGN VOCALIC RR
+<U000119DA> /xf0/x91/xa7/x9a NANDINAGARI VOWEL SIGN E
+<U000119DB> /xf0/x91/xa7/x9b NANDINAGARI VOWEL SIGN AI
+<U000119DC> /xf0/x91/xa7/x9c NANDINAGARI VOWEL SIGN O
+<U000119DD> /xf0/x91/xa7/x9d NANDINAGARI VOWEL SIGN AU
+<U000119DE> /xf0/x91/xa7/x9e NANDINAGARI SIGN ANUSVARA
+<U000119DF> /xf0/x91/xa7/x9f NANDINAGARI SIGN VISARGA
+<U000119E0> /xf0/x91/xa7/xa0 NANDINAGARI SIGN VIRAMA
+<U000119E1> /xf0/x91/xa7/xa1 NANDINAGARI SIGN AVAGRAHA
+<U000119E2> /xf0/x91/xa7/xa2 NANDINAGARI SIGN SIDDHAM
+<U000119E3> /xf0/x91/xa7/xa3 NANDINAGARI HEADSTROKE
+<U000119E4> /xf0/x91/xa7/xa4 NANDINAGARI VOWEL SIGN PRISHTHAMATRA E
<U00011A00> /xf0/x91/xa8/x80 ZANABAZAR SQUARE LETTER A
<U00011A01> /xf0/x91/xa8/x81 ZANABAZAR SQUARE VOWEL SIGN I
<U00011A02> /xf0/x91/xa8/x82 ZANABAZAR SQUARE VOWEL SIGN UE
@@ -32249,6 +32373,8 @@ CHARMAP
<U00011A81> /xf0/x91/xaa/x81 SOYOMBO LETTER SA
<U00011A82> /xf0/x91/xaa/x82 SOYOMBO LETTER HA
<U00011A83> /xf0/x91/xaa/x83 SOYOMBO LETTER KSSA
+<U00011A84> /xf0/x91/xaa/x84 SOYOMBO SIGN JIHVAMULIYA
+<U00011A85> /xf0/x91/xaa/x85 SOYOMBO SIGN UPADHMANIYA
<U00011A86> /xf0/x91/xaa/x86 SOYOMBO CLUSTER-INITIAL LETTER RA
<U00011A87> /xf0/x91/xaa/x87 SOYOMBO CLUSTER-INITIAL LETTER LA
<U00011A88> /xf0/x91/xaa/x88 SOYOMBO CLUSTER-INITIAL LETTER SHA
@@ -32663,6 +32789,57 @@ CHARMAP
<U00011EF6> /xf0/x91/xbb/xb6 MAKASAR VOWEL SIGN O
<U00011EF7> /xf0/x91/xbb/xb7 MAKASAR PASSIMBANG
<U00011EF8> /xf0/x91/xbb/xb8 MAKASAR END OF SECTION
+<U00011FC0> /xf0/x91/xbf/x80 TAMIL FRACTION ONE THREE-HUNDRED-AND-TWENTIETH
+<U00011FC1> /xf0/x91/xbf/x81 TAMIL FRACTION ONE ONE-HUNDRED-AND-SIXTIETH
+<U00011FC2> /xf0/x91/xbf/x82 TAMIL FRACTION ONE EIGHTIETH
+<U00011FC3> /xf0/x91/xbf/x83 TAMIL FRACTION ONE SIXTY-FOURTH
+<U00011FC4> /xf0/x91/xbf/x84 TAMIL FRACTION ONE FORTIETH
+<U00011FC5> /xf0/x91/xbf/x85 TAMIL FRACTION ONE THIRTY-SECOND
+<U00011FC6> /xf0/x91/xbf/x86 TAMIL FRACTION THREE EIGHTIETHS
+<U00011FC7> /xf0/x91/xbf/x87 TAMIL FRACTION THREE SIXTY-FOURTHS
+<U00011FC8> /xf0/x91/xbf/x88 TAMIL FRACTION ONE TWENTIETH
+<U00011FC9> /xf0/x91/xbf/x89 TAMIL FRACTION ONE SIXTEENTH-1
+<U00011FCA> /xf0/x91/xbf/x8a TAMIL FRACTION ONE SIXTEENTH-2
+<U00011FCB> /xf0/x91/xbf/x8b TAMIL FRACTION ONE TENTH
+<U00011FCC> /xf0/x91/xbf/x8c TAMIL FRACTION ONE EIGHTH
+<U00011FCD> /xf0/x91/xbf/x8d TAMIL FRACTION THREE TWENTIETHS
+<U00011FCE> /xf0/x91/xbf/x8e TAMIL FRACTION THREE SIXTEENTHS
+<U00011FCF> /xf0/x91/xbf/x8f TAMIL FRACTION ONE FIFTH
+<U00011FD0> /xf0/x91/xbf/x90 TAMIL FRACTION ONE QUARTER
+<U00011FD1> /xf0/x91/xbf/x91 TAMIL FRACTION ONE HALF-1
+<U00011FD2> /xf0/x91/xbf/x92 TAMIL FRACTION ONE HALF-2
+<U00011FD3> /xf0/x91/xbf/x93 TAMIL FRACTION THREE QUARTERS
+<U00011FD4> /xf0/x91/xbf/x94 TAMIL FRACTION DOWNSCALING FACTOR KIIZH
+<U00011FD5> /xf0/x91/xbf/x95 TAMIL SIGN NEL
+<U00011FD6> /xf0/x91/xbf/x96 TAMIL SIGN CEVITU
+<U00011FD7> /xf0/x91/xbf/x97 TAMIL SIGN AAZHAAKKU
+<U00011FD8> /xf0/x91/xbf/x98 TAMIL SIGN UZHAKKU
+<U00011FD9> /xf0/x91/xbf/x99 TAMIL SIGN MUUVUZHAKKU
+<U00011FDA> /xf0/x91/xbf/x9a TAMIL SIGN KURUNI
+<U00011FDB> /xf0/x91/xbf/x9b TAMIL SIGN PATHAKKU
+<U00011FDC> /xf0/x91/xbf/x9c TAMIL SIGN MUKKURUNI
+<U00011FDD> /xf0/x91/xbf/x9d TAMIL SIGN KAACU
+<U00011FDE> /xf0/x91/xbf/x9e TAMIL SIGN PANAM
+<U00011FDF> /xf0/x91/xbf/x9f TAMIL SIGN PON
+<U00011FE0> /xf0/x91/xbf/xa0 TAMIL SIGN VARAAKAN
+<U00011FE1> /xf0/x91/xbf/xa1 TAMIL SIGN PAARAM
+<U00011FE2> /xf0/x91/xbf/xa2 TAMIL SIGN KUZHI
+<U00011FE3> /xf0/x91/xbf/xa3 TAMIL SIGN VELI
+<U00011FE4> /xf0/x91/xbf/xa4 TAMIL WET CULTIVATION SIGN
+<U00011FE5> /xf0/x91/xbf/xa5 TAMIL DRY CULTIVATION SIGN
+<U00011FE6> /xf0/x91/xbf/xa6 TAMIL LAND SIGN
+<U00011FE7> /xf0/x91/xbf/xa7 TAMIL SALT PAN SIGN
+<U00011FE8> /xf0/x91/xbf/xa8 TAMIL TRADITIONAL CREDIT SIGN
+<U00011FE9> /xf0/x91/xbf/xa9 TAMIL TRADITIONAL NUMBER SIGN
+<U00011FEA> /xf0/x91/xbf/xaa TAMIL CURRENT SIGN
+<U00011FEB> /xf0/x91/xbf/xab TAMIL AND ODD SIGN
+<U00011FEC> /xf0/x91/xbf/xac TAMIL SPENT SIGN
+<U00011FED> /xf0/x91/xbf/xad TAMIL TOTAL SIGN
+<U00011FEE> /xf0/x91/xbf/xae TAMIL IN POSSESSION SIGN
+<U00011FEF> /xf0/x91/xbf/xaf TAMIL STARTING FROM SIGN
+<U00011FF0> /xf0/x91/xbf/xb0 TAMIL SIGN MUTHALIYA
+<U00011FF1> /xf0/x91/xbf/xb1 TAMIL SIGN VAKAIYARAA
+<U00011FFF> /xf0/x91/xbf/xbf TAMIL PUNCTUATION END OF TEXT
<U00012000> /xf0/x92/x80/x80 CUNEIFORM SIGN A
<U00012001> /xf0/x92/x80/x81 CUNEIFORM SIGN A TIMES A
<U00012002> /xf0/x92/x80/x82 CUNEIFORM SIGN A TIMES BAD
@@ -34968,6 +35145,15 @@ CHARMAP
<U0001342C> /xf0/x93/x90/xac EGYPTIAN HIEROGLYPH AA030
<U0001342D> /xf0/x93/x90/xad EGYPTIAN HIEROGLYPH AA031
<U0001342E> /xf0/x93/x90/xae EGYPTIAN HIEROGLYPH AA032
+<U00013430> /xf0/x93/x90/xb0 EGYPTIAN HIEROGLYPH VERTICAL JOINER
+<U00013431> /xf0/x93/x90/xb1 EGYPTIAN HIEROGLYPH HORIZONTAL JOINER
+<U00013432> /xf0/x93/x90/xb2 EGYPTIAN HIEROGLYPH INSERT AT TOP START
+<U00013433> /xf0/x93/x90/xb3 EGYPTIAN HIEROGLYPH INSERT AT BOTTOM START
+<U00013434> /xf0/x93/x90/xb4 EGYPTIAN HIEROGLYPH INSERT AT TOP END
+<U00013435> /xf0/x93/x90/xb5 EGYPTIAN HIEROGLYPH INSERT AT BOTTOM END
+<U00013436> /xf0/x93/x90/xb6 EGYPTIAN HIEROGLYPH OVERLAY MIDDLE
+<U00013437> /xf0/x93/x90/xb7 EGYPTIAN HIEROGLYPH BEGIN SEGMENT
+<U00013438> /xf0/x93/x90/xb8 EGYPTIAN HIEROGLYPH END SEGMENT
<U00014400> /xf0/x94/x90/x80 ANATOLIAN HIEROGLYPH A001
<U00014401> /xf0/x94/x90/x81 ANATOLIAN HIEROGLYPH A002
<U00014402> /xf0/x94/x90/x82 ANATOLIAN HIEROGLYPH A003
@@ -36486,6 +36672,13 @@ CHARMAP
<U00016F42> /xf0/x96/xbd/x82 MIAO LETTER WA
<U00016F43> /xf0/x96/xbd/x83 MIAO LETTER AH
<U00016F44> /xf0/x96/xbd/x84 MIAO LETTER HHA
+<U00016F45> /xf0/x96/xbd/x85 MIAO LETTER BRI
+<U00016F46> /xf0/x96/xbd/x86 MIAO LETTER SYI
+<U00016F47> /xf0/x96/xbd/x87 MIAO LETTER DZYI
+<U00016F48> /xf0/x96/xbd/x88 MIAO LETTER TE
+<U00016F49> /xf0/x96/xbd/x89 MIAO LETTER TSE
+<U00016F4A> /xf0/x96/xbd/x8a MIAO LETTER RTE
+<U00016F4F> /xf0/x96/xbd/x8f MIAO SIGN CONSONANT MODIFIER BAR
<U00016F50> /xf0/x96/xbd/x90 MIAO LETTER NASALIZATION
<U00016F51> /xf0/x96/xbd/x91 MIAO SIGN ASPIRATION
<U00016F52> /xf0/x96/xbd/x92 MIAO SIGN REFORMED VOICING
@@ -36533,6 +36726,15 @@ CHARMAP
<U00016F7C> /xf0/x96/xbd/xbc MIAO VOWEL SIGN OU
<U00016F7D> /xf0/x96/xbd/xbd MIAO VOWEL SIGN N
<U00016F7E> /xf0/x96/xbd/xbe MIAO VOWEL SIGN NG
+<U00016F7F> /xf0/x96/xbd/xbf MIAO VOWEL SIGN UOG
+<U00016F80> /xf0/x96/xbe/x80 MIAO VOWEL SIGN YUI
+<U00016F81> /xf0/x96/xbe/x81 MIAO VOWEL SIGN OG
+<U00016F82> /xf0/x96/xbe/x82 MIAO VOWEL SIGN OER
+<U00016F83> /xf0/x96/xbe/x83 MIAO VOWEL SIGN VW
+<U00016F84> /xf0/x96/xbe/x84 MIAO VOWEL SIGN IG
+<U00016F85> /xf0/x96/xbe/x85 MIAO VOWEL SIGN EA
+<U00016F86> /xf0/x96/xbe/x86 MIAO VOWEL SIGN IONG
+<U00016F87> /xf0/x96/xbe/x87 MIAO VOWEL SIGN UI
<U00016F8F> /xf0/x96/xbe/x8f MIAO TONE RIGHT
<U00016F90> /xf0/x96/xbe/x90 MIAO TONE TOP RIGHT
<U00016F91> /xf0/x96/xbe/x91 MIAO TONE ABOVE
@@ -36552,6 +36754,8 @@ CHARMAP
<U00016F9F> /xf0/x96/xbe/x9f MIAO LETTER REFORMED TONE-8
<U00016FE0> /xf0/x96/xbf/xa0 TANGUT ITERATION MARK
<U00016FE1> /xf0/x96/xbf/xa1 NUSHU ITERATION MARK
+<U00016FE2> /xf0/x96/xbf/xa2 OLD CHINESE HOOK MARK
+<U00016FE3> /xf0/x96/xbf/xa3 OLD CHINESE ITERATION MARK
<U00017000>..<U0001703F> /xf0/x97/x80/x80 <Tangut Ideograph>
<U00017040>..<U0001707F> /xf0/x97/x81/x80 <Tangut Ideograph>
<U00017080>..<U000170BF> /xf0/x97/x82/x80 <Tangut Ideograph>
@@ -36647,7 +36851,7 @@ CHARMAP
<U00018700>..<U0001873F> /xf0/x98/x9c/x80 <Tangut Ideograph>
<U00018740>..<U0001877F> /xf0/x98/x9d/x80 <Tangut Ideograph>
<U00018780>..<U000187BF> /xf0/x98/x9e/x80 <Tangut Ideograph>
-<U000187C0>..<U000187F1> /xf0/x98/x9f/x80 <Tangut Ideograph>
+<U000187C0>..<U000187F7> /xf0/x98/x9f/x80 <Tangut Ideograph>
<U00018800> /xf0/x98/xa0/x80 TANGUT COMPONENT-001
<U00018801> /xf0/x98/xa0/x81 TANGUT COMPONENT-002
<U00018802> /xf0/x98/xa0/x82 TANGUT COMPONENT-003
@@ -37690,6 +37894,13 @@ CHARMAP
<U0001B11C> /xf0/x9b/x84/x9c HENTAIGANA LETTER WO-7
<U0001B11D> /xf0/x9b/x84/x9d HENTAIGANA LETTER N-MU-MO-1
<U0001B11E> /xf0/x9b/x84/x9e HENTAIGANA LETTER N-MU-MO-2
+<U0001B150> /xf0/x9b/x85/x90 HIRAGANA LETTER SMALL WI
+<U0001B151> /xf0/x9b/x85/x91 HIRAGANA LETTER SMALL WE
+<U0001B152> /xf0/x9b/x85/x92 HIRAGANA LETTER SMALL WO
+<U0001B164> /xf0/x9b/x85/xa4 KATAKANA LETTER SMALL WI
+<U0001B165> /xf0/x9b/x85/xa5 KATAKANA LETTER SMALL WE
+<U0001B166> /xf0/x9b/x85/xa6 KATAKANA LETTER SMALL WO
+<U0001B167> /xf0/x9b/x85/xa7 KATAKANA LETTER SMALL N
<U0001B170> /xf0/x9b/x85/xb0 NUSHU CHARACTER-1B170
<U0001B171> /xf0/x9b/x85/xb1 NUSHU CHARACTER-1B171
<U0001B172> /xf0/x9b/x85/xb2 NUSHU CHARACTER-1B172
@@ -40618,6 +40829,136 @@ CHARMAP
<U0001E028> /xf0/x9e/x80/xa8 COMBINING GLAGOLITIC LETTER BIG YUS
<U0001E029> /xf0/x9e/x80/xa9 COMBINING GLAGOLITIC LETTER IOTATED BIG YUS
<U0001E02A> /xf0/x9e/x80/xaa COMBINING GLAGOLITIC LETTER FITA
+<U0001E100> /xf0/x9e/x84/x80 NYIAKENG PUACHUE HMONG LETTER MA
+<U0001E101> /xf0/x9e/x84/x81 NYIAKENG PUACHUE HMONG LETTER TSA
+<U0001E102> /xf0/x9e/x84/x82 NYIAKENG PUACHUE HMONG LETTER NTA
+<U0001E103> /xf0/x9e/x84/x83 NYIAKENG PUACHUE HMONG LETTER TA
+<U0001E104> /xf0/x9e/x84/x84 NYIAKENG PUACHUE HMONG LETTER HA
+<U0001E105> /xf0/x9e/x84/x85 NYIAKENG PUACHUE HMONG LETTER NA
+<U0001E106> /xf0/x9e/x84/x86 NYIAKENG PUACHUE HMONG LETTER XA
+<U0001E107> /xf0/x9e/x84/x87 NYIAKENG PUACHUE HMONG LETTER NKA
+<U0001E108> /xf0/x9e/x84/x88 NYIAKENG PUACHUE HMONG LETTER CA
+<U0001E109> /xf0/x9e/x84/x89 NYIAKENG PUACHUE HMONG LETTER LA
+<U0001E10A> /xf0/x9e/x84/x8a NYIAKENG PUACHUE HMONG LETTER SA
+<U0001E10B> /xf0/x9e/x84/x8b NYIAKENG PUACHUE HMONG LETTER ZA
+<U0001E10C> /xf0/x9e/x84/x8c NYIAKENG PUACHUE HMONG LETTER NCA
+<U0001E10D> /xf0/x9e/x84/x8d NYIAKENG PUACHUE HMONG LETTER NTSA
+<U0001E10E> /xf0/x9e/x84/x8e NYIAKENG PUACHUE HMONG LETTER KA
+<U0001E10F> /xf0/x9e/x84/x8f NYIAKENG PUACHUE HMONG LETTER DA
+<U0001E110> /xf0/x9e/x84/x90 NYIAKENG PUACHUE HMONG LETTER NYA
+<U0001E111> /xf0/x9e/x84/x91 NYIAKENG PUACHUE HMONG LETTER NRA
+<U0001E112> /xf0/x9e/x84/x92 NYIAKENG PUACHUE HMONG LETTER VA
+<U0001E113> /xf0/x9e/x84/x93 NYIAKENG PUACHUE HMONG LETTER NTXA
+<U0001E114> /xf0/x9e/x84/x94 NYIAKENG PUACHUE HMONG LETTER TXA
+<U0001E115> /xf0/x9e/x84/x95 NYIAKENG PUACHUE HMONG LETTER FA
+<U0001E116> /xf0/x9e/x84/x96 NYIAKENG PUACHUE HMONG LETTER RA
+<U0001E117> /xf0/x9e/x84/x97 NYIAKENG PUACHUE HMONG LETTER QA
+<U0001E118> /xf0/x9e/x84/x98 NYIAKENG PUACHUE HMONG LETTER YA
+<U0001E119> /xf0/x9e/x84/x99 NYIAKENG PUACHUE HMONG LETTER NQA
+<U0001E11A> /xf0/x9e/x84/x9a NYIAKENG PUACHUE HMONG LETTER PA
+<U0001E11B> /xf0/x9e/x84/x9b NYIAKENG PUACHUE HMONG LETTER XYA
+<U0001E11C> /xf0/x9e/x84/x9c NYIAKENG PUACHUE HMONG LETTER NPA
+<U0001E11D> /xf0/x9e/x84/x9d NYIAKENG PUACHUE HMONG LETTER DLA
+<U0001E11E> /xf0/x9e/x84/x9e NYIAKENG PUACHUE HMONG LETTER NPLA
+<U0001E11F> /xf0/x9e/x84/x9f NYIAKENG PUACHUE HMONG LETTER HAH
+<U0001E120> /xf0/x9e/x84/xa0 NYIAKENG PUACHUE HMONG LETTER MLA
+<U0001E121> /xf0/x9e/x84/xa1 NYIAKENG PUACHUE HMONG LETTER PLA
+<U0001E122> /xf0/x9e/x84/xa2 NYIAKENG PUACHUE HMONG LETTER GA
+<U0001E123> /xf0/x9e/x84/xa3 NYIAKENG PUACHUE HMONG LETTER RRA
+<U0001E124> /xf0/x9e/x84/xa4 NYIAKENG PUACHUE HMONG LETTER A
+<U0001E125> /xf0/x9e/x84/xa5 NYIAKENG PUACHUE HMONG LETTER AA
+<U0001E126> /xf0/x9e/x84/xa6 NYIAKENG PUACHUE HMONG LETTER I
+<U0001E127> /xf0/x9e/x84/xa7 NYIAKENG PUACHUE HMONG LETTER U
+<U0001E128> /xf0/x9e/x84/xa8 NYIAKENG PUACHUE HMONG LETTER O
+<U0001E129> /xf0/x9e/x84/xa9 NYIAKENG PUACHUE HMONG LETTER OO
+<U0001E12A> /xf0/x9e/x84/xaa NYIAKENG PUACHUE HMONG LETTER E
+<U0001E12B> /xf0/x9e/x84/xab NYIAKENG PUACHUE HMONG LETTER EE
+<U0001E12C> /xf0/x9e/x84/xac NYIAKENG PUACHUE HMONG LETTER W
+<U0001E130> /xf0/x9e/x84/xb0 NYIAKENG PUACHUE HMONG TONE-B
+<U0001E131> /xf0/x9e/x84/xb1 NYIAKENG PUACHUE HMONG TONE-M
+<U0001E132> /xf0/x9e/x84/xb2 NYIAKENG PUACHUE HMONG TONE-J
+<U0001E133> /xf0/x9e/x84/xb3 NYIAKENG PUACHUE HMONG TONE-V
+<U0001E134> /xf0/x9e/x84/xb4 NYIAKENG PUACHUE HMONG TONE-S
+<U0001E135> /xf0/x9e/x84/xb5 NYIAKENG PUACHUE HMONG TONE-G
+<U0001E136> /xf0/x9e/x84/xb6 NYIAKENG PUACHUE HMONG TONE-D
+<U0001E137> /xf0/x9e/x84/xb7 NYIAKENG PUACHUE HMONG SIGN FOR PERSON
+<U0001E138> /xf0/x9e/x84/xb8 NYIAKENG PUACHUE HMONG SIGN FOR THING
+<U0001E139> /xf0/x9e/x84/xb9 NYIAKENG PUACHUE HMONG SIGN FOR LOCATION
+<U0001E13A> /xf0/x9e/x84/xba NYIAKENG PUACHUE HMONG SIGN FOR ANIMAL
+<U0001E13B> /xf0/x9e/x84/xbb NYIAKENG PUACHUE HMONG SIGN FOR INVERTEBRATE
+<U0001E13C> /xf0/x9e/x84/xbc NYIAKENG PUACHUE HMONG SIGN XW XW
+<U0001E13D> /xf0/x9e/x84/xbd NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER
+<U0001E140> /xf0/x9e/x85/x80 NYIAKENG PUACHUE HMONG DIGIT ZERO
+<U0001E141> /xf0/x9e/x85/x81 NYIAKENG PUACHUE HMONG DIGIT ONE
+<U0001E142> /xf0/x9e/x85/x82 NYIAKENG PUACHUE HMONG DIGIT TWO
+<U0001E143> /xf0/x9e/x85/x83 NYIAKENG PUACHUE HMONG DIGIT THREE
+<U0001E144> /xf0/x9e/x85/x84 NYIAKENG PUACHUE HMONG DIGIT FOUR
+<U0001E145> /xf0/x9e/x85/x85 NYIAKENG PUACHUE HMONG DIGIT FIVE
+<U0001E146> /xf0/x9e/x85/x86 NYIAKENG PUACHUE HMONG DIGIT SIX
+<U0001E147> /xf0/x9e/x85/x87 NYIAKENG PUACHUE HMONG DIGIT SEVEN
+<U0001E148> /xf0/x9e/x85/x88 NYIAKENG PUACHUE HMONG DIGIT EIGHT
+<U0001E149> /xf0/x9e/x85/x89 NYIAKENG PUACHUE HMONG DIGIT NINE
+<U0001E14E> /xf0/x9e/x85/x8e NYIAKENG PUACHUE HMONG LOGOGRAM NYAJ
+<U0001E14F> /xf0/x9e/x85/x8f NYIAKENG PUACHUE HMONG CIRCLED CA
+<U0001E2C0> /xf0/x9e/x8b/x80 WANCHO LETTER AA
+<U0001E2C1> /xf0/x9e/x8b/x81 WANCHO LETTER A
+<U0001E2C2> /xf0/x9e/x8b/x82 WANCHO LETTER BA
+<U0001E2C3> /xf0/x9e/x8b/x83 WANCHO LETTER CA
+<U0001E2C4> /xf0/x9e/x8b/x84 WANCHO LETTER DA
+<U0001E2C5> /xf0/x9e/x8b/x85 WANCHO LETTER GA
+<U0001E2C6> /xf0/x9e/x8b/x86 WANCHO LETTER YA
+<U0001E2C7> /xf0/x9e/x8b/x87 WANCHO LETTER PHA
+<U0001E2C8> /xf0/x9e/x8b/x88 WANCHO LETTER LA
+<U0001E2C9> /xf0/x9e/x8b/x89 WANCHO LETTER NA
+<U0001E2CA> /xf0/x9e/x8b/x8a WANCHO LETTER PA
+<U0001E2CB> /xf0/x9e/x8b/x8b WANCHO LETTER TA
+<U0001E2CC> /xf0/x9e/x8b/x8c WANCHO LETTER THA
+<U0001E2CD> /xf0/x9e/x8b/x8d WANCHO LETTER FA
+<U0001E2CE> /xf0/x9e/x8b/x8e WANCHO LETTER SA
+<U0001E2CF> /xf0/x9e/x8b/x8f WANCHO LETTER SHA
+<U0001E2D0> /xf0/x9e/x8b/x90 WANCHO LETTER JA
+<U0001E2D1> /xf0/x9e/x8b/x91 WANCHO LETTER ZA
+<U0001E2D2> /xf0/x9e/x8b/x92 WANCHO LETTER WA
+<U0001E2D3> /xf0/x9e/x8b/x93 WANCHO LETTER VA
+<U0001E2D4> /xf0/x9e/x8b/x94 WANCHO LETTER KA
+<U0001E2D5> /xf0/x9e/x8b/x95 WANCHO LETTER O
+<U0001E2D6> /xf0/x9e/x8b/x96 WANCHO LETTER AU
+<U0001E2D7> /xf0/x9e/x8b/x97 WANCHO LETTER RA
+<U0001E2D8> /xf0/x9e/x8b/x98 WANCHO LETTER MA
+<U0001E2D9> /xf0/x9e/x8b/x99 WANCHO LETTER KHA
+<U0001E2DA> /xf0/x9e/x8b/x9a WANCHO LETTER HA
+<U0001E2DB> /xf0/x9e/x8b/x9b WANCHO LETTER E
+<U0001E2DC> /xf0/x9e/x8b/x9c WANCHO LETTER I
+<U0001E2DD> /xf0/x9e/x8b/x9d WANCHO LETTER NGA
+<U0001E2DE> /xf0/x9e/x8b/x9e WANCHO LETTER U
+<U0001E2DF> /xf0/x9e/x8b/x9f WANCHO LETTER LLHA
+<U0001E2E0> /xf0/x9e/x8b/xa0 WANCHO LETTER TSA
+<U0001E2E1> /xf0/x9e/x8b/xa1 WANCHO LETTER TRA
+<U0001E2E2> /xf0/x9e/x8b/xa2 WANCHO LETTER ONG
+<U0001E2E3> /xf0/x9e/x8b/xa3 WANCHO LETTER AANG
+<U0001E2E4> /xf0/x9e/x8b/xa4 WANCHO LETTER ANG
+<U0001E2E5> /xf0/x9e/x8b/xa5 WANCHO LETTER ING
+<U0001E2E6> /xf0/x9e/x8b/xa6 WANCHO LETTER ON
+<U0001E2E7> /xf0/x9e/x8b/xa7 WANCHO LETTER EN
+<U0001E2E8> /xf0/x9e/x8b/xa8 WANCHO LETTER AAN
+<U0001E2E9> /xf0/x9e/x8b/xa9 WANCHO LETTER NYA
+<U0001E2EA> /xf0/x9e/x8b/xaa WANCHO LETTER UEN
+<U0001E2EB> /xf0/x9e/x8b/xab WANCHO LETTER YIH
+<U0001E2EC> /xf0/x9e/x8b/xac WANCHO TONE TUP
+<U0001E2ED> /xf0/x9e/x8b/xad WANCHO TONE TUPNI
+<U0001E2EE> /xf0/x9e/x8b/xae WANCHO TONE KOI
+<U0001E2EF> /xf0/x9e/x8b/xaf WANCHO TONE KOINI
+<U0001E2F0> /xf0/x9e/x8b/xb0 WANCHO DIGIT ZERO
+<U0001E2F1> /xf0/x9e/x8b/xb1 WANCHO DIGIT ONE
+<U0001E2F2> /xf0/x9e/x8b/xb2 WANCHO DIGIT TWO
+<U0001E2F3> /xf0/x9e/x8b/xb3 WANCHO DIGIT THREE
+<U0001E2F4> /xf0/x9e/x8b/xb4 WANCHO DIGIT FOUR
+<U0001E2F5> /xf0/x9e/x8b/xb5 WANCHO DIGIT FIVE
+<U0001E2F6> /xf0/x9e/x8b/xb6 WANCHO DIGIT SIX
+<U0001E2F7> /xf0/x9e/x8b/xb7 WANCHO DIGIT SEVEN
+<U0001E2F8> /xf0/x9e/x8b/xb8 WANCHO DIGIT EIGHT
+<U0001E2F9> /xf0/x9e/x8b/xb9 WANCHO DIGIT NINE
+<U0001E2FF> /xf0/x9e/x8b/xbf WANCHO NGUN SIGN
<U0001E800> /xf0/x9e/xa0/x80 MENDE KIKAKUI SYLLABLE M001 KI
<U0001E801> /xf0/x9e/xa0/x81 MENDE KIKAKUI SYLLABLE M002 KA
<U0001E802> /xf0/x9e/xa0/x82 MENDE KIKAKUI SYLLABLE M003 KU
@@ -40906,6 +41247,7 @@ CHARMAP
<U0001E948> /xf0/x9e/xa5/x88 ADLAM CONSONANT MODIFIER
<U0001E949> /xf0/x9e/xa5/x89 ADLAM GEMINATE CONSONANT MODIFIER
<U0001E94A> /xf0/x9e/xa5/x8a ADLAM NUKTA
+<U0001E94B> /xf0/x9e/xa5/x8b ADLAM NASALIZATION MARK
<U0001E950> /xf0/x9e/xa5/x90 ADLAM DIGIT ZERO
<U0001E951> /xf0/x9e/xa5/x91 ADLAM DIGIT ONE
<U0001E952> /xf0/x9e/xa5/x92 ADLAM DIGIT TWO
@@ -40986,6 +41328,67 @@ CHARMAP
<U0001ECB2> /xf0/x9e/xb2/xb2 INDIC SIYAQ NUMBER ALTERNATE TWO
<U0001ECB3> /xf0/x9e/xb2/xb3 INDIC SIYAQ NUMBER ALTERNATE TEN THOUSAND
<U0001ECB4> /xf0/x9e/xb2/xb4 INDIC SIYAQ ALTERNATE LAKH MARK
+<U0001ED01> /xf0/x9e/xb4/x81 OTTOMAN SIYAQ NUMBER ONE
+<U0001ED02> /xf0/x9e/xb4/x82 OTTOMAN SIYAQ NUMBER TWO
+<U0001ED03> /xf0/x9e/xb4/x83 OTTOMAN SIYAQ NUMBER THREE
+<U0001ED04> /xf0/x9e/xb4/x84 OTTOMAN SIYAQ NUMBER FOUR
+<U0001ED05> /xf0/x9e/xb4/x85 OTTOMAN SIYAQ NUMBER FIVE
+<U0001ED06> /xf0/x9e/xb4/x86 OTTOMAN SIYAQ NUMBER SIX
+<U0001ED07> /xf0/x9e/xb4/x87 OTTOMAN SIYAQ NUMBER SEVEN
+<U0001ED08> /xf0/x9e/xb4/x88 OTTOMAN SIYAQ NUMBER EIGHT
+<U0001ED09> /xf0/x9e/xb4/x89 OTTOMAN SIYAQ NUMBER NINE
+<U0001ED0A> /xf0/x9e/xb4/x8a OTTOMAN SIYAQ NUMBER TEN
+<U0001ED0B> /xf0/x9e/xb4/x8b OTTOMAN SIYAQ NUMBER TWENTY
+<U0001ED0C> /xf0/x9e/xb4/x8c OTTOMAN SIYAQ NUMBER THIRTY
+<U0001ED0D> /xf0/x9e/xb4/x8d OTTOMAN SIYAQ NUMBER FORTY
+<U0001ED0E> /xf0/x9e/xb4/x8e OTTOMAN SIYAQ NUMBER FIFTY
+<U0001ED0F> /xf0/x9e/xb4/x8f OTTOMAN SIYAQ NUMBER SIXTY
+<U0001ED10> /xf0/x9e/xb4/x90 OTTOMAN SIYAQ NUMBER SEVENTY
+<U0001ED11> /xf0/x9e/xb4/x91 OTTOMAN SIYAQ NUMBER EIGHTY
+<U0001ED12> /xf0/x9e/xb4/x92 OTTOMAN SIYAQ NUMBER NINETY
+<U0001ED13> /xf0/x9e/xb4/x93 OTTOMAN SIYAQ NUMBER ONE HUNDRED
+<U0001ED14> /xf0/x9e/xb4/x94 OTTOMAN SIYAQ NUMBER TWO HUNDRED
+<U0001ED15> /xf0/x9e/xb4/x95 OTTOMAN SIYAQ NUMBER THREE HUNDRED
+<U0001ED16> /xf0/x9e/xb4/x96 OTTOMAN SIYAQ NUMBER FOUR HUNDRED
+<U0001ED17> /xf0/x9e/xb4/x97 OTTOMAN SIYAQ NUMBER FIVE HUNDRED
+<U0001ED18> /xf0/x9e/xb4/x98 OTTOMAN SIYAQ NUMBER SIX HUNDRED
+<U0001ED19> /xf0/x9e/xb4/x99 OTTOMAN SIYAQ NUMBER SEVEN HUNDRED
+<U0001ED1A> /xf0/x9e/xb4/x9a OTTOMAN SIYAQ NUMBER EIGHT HUNDRED
+<U0001ED1B> /xf0/x9e/xb4/x9b OTTOMAN SIYAQ NUMBER NINE HUNDRED
+<U0001ED1C> /xf0/x9e/xb4/x9c OTTOMAN SIYAQ NUMBER ONE THOUSAND
+<U0001ED1D> /xf0/x9e/xb4/x9d OTTOMAN SIYAQ NUMBER TWO THOUSAND
+<U0001ED1E> /xf0/x9e/xb4/x9e OTTOMAN SIYAQ NUMBER THREE THOUSAND
+<U0001ED1F> /xf0/x9e/xb4/x9f OTTOMAN SIYAQ NUMBER FOUR THOUSAND
+<U0001ED20> /xf0/x9e/xb4/xa0 OTTOMAN SIYAQ NUMBER FIVE THOUSAND
+<U0001ED21> /xf0/x9e/xb4/xa1 OTTOMAN SIYAQ NUMBER SIX THOUSAND
+<U0001ED22> /xf0/x9e/xb4/xa2 OTTOMAN SIYAQ NUMBER SEVEN THOUSAND
+<U0001ED23> /xf0/x9e/xb4/xa3 OTTOMAN SIYAQ NUMBER EIGHT THOUSAND
+<U0001ED24> /xf0/x9e/xb4/xa4 OTTOMAN SIYAQ NUMBER NINE THOUSAND
+<U0001ED25> /xf0/x9e/xb4/xa5 OTTOMAN SIYAQ NUMBER TEN THOUSAND
+<U0001ED26> /xf0/x9e/xb4/xa6 OTTOMAN SIYAQ NUMBER TWENTY THOUSAND
+<U0001ED27> /xf0/x9e/xb4/xa7 OTTOMAN SIYAQ NUMBER THIRTY THOUSAND
+<U0001ED28> /xf0/x9e/xb4/xa8 OTTOMAN SIYAQ NUMBER FORTY THOUSAND
+<U0001ED29> /xf0/x9e/xb4/xa9 OTTOMAN SIYAQ NUMBER FIFTY THOUSAND
+<U0001ED2A> /xf0/x9e/xb4/xaa OTTOMAN SIYAQ NUMBER SIXTY THOUSAND
+<U0001ED2B> /xf0/x9e/xb4/xab OTTOMAN SIYAQ NUMBER SEVENTY THOUSAND
+<U0001ED2C> /xf0/x9e/xb4/xac OTTOMAN SIYAQ NUMBER EIGHTY THOUSAND
+<U0001ED2D> /xf0/x9e/xb4/xad OTTOMAN SIYAQ NUMBER NINETY THOUSAND
+<U0001ED2E> /xf0/x9e/xb4/xae OTTOMAN SIYAQ MARRATAN
+<U0001ED2F> /xf0/x9e/xb4/xaf OTTOMAN SIYAQ ALTERNATE NUMBER TWO
+<U0001ED30> /xf0/x9e/xb4/xb0 OTTOMAN SIYAQ ALTERNATE NUMBER THREE
+<U0001ED31> /xf0/x9e/xb4/xb1 OTTOMAN SIYAQ ALTERNATE NUMBER FOUR
+<U0001ED32> /xf0/x9e/xb4/xb2 OTTOMAN SIYAQ ALTERNATE NUMBER FIVE
+<U0001ED33> /xf0/x9e/xb4/xb3 OTTOMAN SIYAQ ALTERNATE NUMBER SIX
+<U0001ED34> /xf0/x9e/xb4/xb4 OTTOMAN SIYAQ ALTERNATE NUMBER SEVEN
+<U0001ED35> /xf0/x9e/xb4/xb5 OTTOMAN SIYAQ ALTERNATE NUMBER EIGHT
+<U0001ED36> /xf0/x9e/xb4/xb6 OTTOMAN SIYAQ ALTERNATE NUMBER NINE
+<U0001ED37> /xf0/x9e/xb4/xb7 OTTOMAN SIYAQ ALTERNATE NUMBER TEN
+<U0001ED38> /xf0/x9e/xb4/xb8 OTTOMAN SIYAQ ALTERNATE NUMBER FOUR HUNDRED
+<U0001ED39> /xf0/x9e/xb4/xb9 OTTOMAN SIYAQ ALTERNATE NUMBER SIX HUNDRED
+<U0001ED3A> /xf0/x9e/xb4/xba OTTOMAN SIYAQ ALTERNATE NUMBER TWO THOUSAND
+<U0001ED3B> /xf0/x9e/xb4/xbb OTTOMAN SIYAQ ALTERNATE NUMBER TEN THOUSAND
+<U0001ED3C> /xf0/x9e/xb4/xbc OTTOMAN SIYAQ FRACTION ONE HALF
+<U0001ED3D> /xf0/x9e/xb4/xbd OTTOMAN SIYAQ FRACTION ONE SIXTH
<U0001EE00> /xf0/x9e/xb8/x80 ARABIC MATHEMATICAL ALEF
<U0001EE01> /xf0/x9e/xb8/x81 ARABIC MATHEMATICAL BEH
<U0001EE02> /xf0/x9e/xb8/x82 ARABIC MATHEMATICAL JEEM
@@ -41460,6 +41863,7 @@ CHARMAP
<U0001F169> /xf0/x9f/x85/xa9 NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
<U0001F16A> /xf0/x9f/x85/xaa RAISED MC SIGN
<U0001F16B> /xf0/x9f/x85/xab RAISED MD SIGN
+<U0001F16C> /xf0/x9f/x85/xac RAISED MR SIGN
<U0001F170> /xf0/x9f/x85/xb0 NEGATIVE SQUARED LATIN CAPITAL LETTER A
<U0001F171> /xf0/x9f/x85/xb1 NEGATIVE SQUARED LATIN CAPITAL LETTER B
<U0001F172> /xf0/x9f/x85/xb2 NEGATIVE SQUARED LATIN CAPITAL LETTER C
@@ -42592,6 +42996,7 @@ CHARMAP
<U0001F6D2> /xf0/x9f/x9b/x92 SHOPPING TROLLEY
<U0001F6D3> /xf0/x9f/x9b/x93 STUPA
<U0001F6D4> /xf0/x9f/x9b/x94 PAGODA
+<U0001F6D5> /xf0/x9f/x9b/x95 HINDU TEMPLE
<U0001F6E0> /xf0/x9f/x9b/xa0 HAMMER AND WRENCH
<U0001F6E1> /xf0/x9f/x9b/xa1 SHIELD
<U0001F6E2> /xf0/x9f/x9b/xa2 OIL DRUM
@@ -42615,6 +43020,7 @@ CHARMAP
<U0001F6F7> /xf0/x9f/x9b/xb7 SLED
<U0001F6F8> /xf0/x9f/x9b/xb8 FLYING SAUCER
<U0001F6F9> /xf0/x9f/x9b/xb9 SKATEBOARD
+<U0001F6FA> /xf0/x9f/x9b/xba AUTO RICKSHAW
<U0001F700> /xf0/x9f/x9c/x80 ALCHEMICAL SYMBOL FOR QUINTESSENCE
<U0001F701> /xf0/x9f/x9c/x81 ALCHEMICAL SYMBOL FOR AIR
<U0001F702> /xf0/x9f/x9c/x82 ALCHEMICAL SYMBOL FOR FIRE
@@ -42820,6 +43226,18 @@ CHARMAP
<U0001F7D6> /xf0/x9f/x9f/x96 NEGATIVE CIRCLED TRIANGLE
<U0001F7D7> /xf0/x9f/x9f/x97 CIRCLED SQUARE
<U0001F7D8> /xf0/x9f/x9f/x98 NEGATIVE CIRCLED SQUARE
+<U0001F7E0> /xf0/x9f/x9f/xa0 LARGE ORANGE CIRCLE
+<U0001F7E1> /xf0/x9f/x9f/xa1 LARGE YELLOW CIRCLE
+<U0001F7E2> /xf0/x9f/x9f/xa2 LARGE GREEN CIRCLE
+<U0001F7E3> /xf0/x9f/x9f/xa3 LARGE PURPLE CIRCLE
+<U0001F7E4> /xf0/x9f/x9f/xa4 LARGE BROWN CIRCLE
+<U0001F7E5> /xf0/x9f/x9f/xa5 LARGE RED SQUARE
+<U0001F7E6> /xf0/x9f/x9f/xa6 LARGE BLUE SQUARE
+<U0001F7E7> /xf0/x9f/x9f/xa7 LARGE ORANGE SQUARE
+<U0001F7E8> /xf0/x9f/x9f/xa8 LARGE YELLOW SQUARE
+<U0001F7E9> /xf0/x9f/x9f/xa9 LARGE GREEN SQUARE
+<U0001F7EA> /xf0/x9f/x9f/xaa LARGE PURPLE SQUARE
+<U0001F7EB> /xf0/x9f/x9f/xab LARGE BROWN SQUARE
<U0001F800> /xf0/x9f/xa0/x80 LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD
<U0001F801> /xf0/x9f/xa0/x81 UPWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD
<U0001F802> /xf0/x9f/xa0/x82 RIGHTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD
@@ -42980,6 +43398,9 @@ CHARMAP
<U0001F909> /xf0/x9f/xa4/x89 DOWNWARD FACING NOTCHED HOOK
<U0001F90A> /xf0/x9f/xa4/x8a DOWNWARD FACING HOOK WITH DOT
<U0001F90B> /xf0/x9f/xa4/x8b DOWNWARD FACING NOTCHED HOOK WITH DOT
+<U0001F90D> /xf0/x9f/xa4/x8d WHITE HEART
+<U0001F90E> /xf0/x9f/xa4/x8e BROWN HEART
+<U0001F90F> /xf0/x9f/xa4/x8f PINCHING HAND
<U0001F910> /xf0/x9f/xa4/x90 ZIPPER-MOUTH FACE
<U0001F911> /xf0/x9f/xa4/x91 MONEY-MOUTH FACE
<U0001F912> /xf0/x9f/xa4/x92 FACE WITH THERMOMETER
@@ -43027,6 +43448,7 @@ CHARMAP
<U0001F93C> /xf0/x9f/xa4/xbc WRESTLERS
<U0001F93D> /xf0/x9f/xa4/xbd WATER POLO
<U0001F93E> /xf0/x9f/xa4/xbe HANDBALL
+<U0001F93F> /xf0/x9f/xa4/xbf DIVING MASK
<U0001F940> /xf0/x9f/xa5/x80 WILTED FLOWER
<U0001F941> /xf0/x9f/xa5/x81 DRUM WITH DRUMSTICKS
<U0001F942> /xf0/x9f/xa5/x82 CLINKING GLASSES
@@ -43076,11 +43498,13 @@ CHARMAP
<U0001F96E> /xf0/x9f/xa5/xae MOON CAKE
<U0001F96F> /xf0/x9f/xa5/xaf BAGEL
<U0001F970> /xf0/x9f/xa5/xb0 SMILING FACE WITH SMILING EYES AND THREE HEARTS
+<U0001F971> /xf0/x9f/xa5/xb1 YAWNING FACE
<U0001F973> /xf0/x9f/xa5/xb3 FACE WITH PARTY HORN AND PARTY HAT
<U0001F974> /xf0/x9f/xa5/xb4 FACE WITH UNEVEN EYES AND WAVY MOUTH
<U0001F975> /xf0/x9f/xa5/xb5 OVERHEATED FACE
<U0001F976> /xf0/x9f/xa5/xb6 FREEZING FACE
<U0001F97A> /xf0/x9f/xa5/xba FACE WITH PLEADING EYES
+<U0001F97B> /xf0/x9f/xa5/xbb SARI
<U0001F97C> /xf0/x9f/xa5/xbc LAB COAT
<U0001F97D> /xf0/x9f/xa5/xbd GOGGLES
<U0001F97E> /xf0/x9f/xa5/xbe HIKING BOOT
@@ -43120,6 +43544,14 @@ CHARMAP
<U0001F9A0> /xf0/x9f/xa6/xa0 MICROBE
<U0001F9A1> /xf0/x9f/xa6/xa1 BADGER
<U0001F9A2> /xf0/x9f/xa6/xa2 SWAN
+<U0001F9A5> /xf0/x9f/xa6/xa5 SLOTH
+<U0001F9A6> /xf0/x9f/xa6/xa6 OTTER
+<U0001F9A7> /xf0/x9f/xa6/xa7 ORANGUTAN
+<U0001F9A8> /xf0/x9f/xa6/xa8 SKUNK
+<U0001F9A9> /xf0/x9f/xa6/xa9 FLAMINGO
+<U0001F9AA> /xf0/x9f/xa6/xaa OYSTER
+<U0001F9AE> /xf0/x9f/xa6/xae GUIDE DOG
+<U0001F9AF> /xf0/x9f/xa6/xaf PROBING CANE
<U0001F9B0> /xf0/x9f/xa6/xb0 EMOJI COMPONENT RED HAIR
<U0001F9B1> /xf0/x9f/xa6/xb1 EMOJI COMPONENT CURLY HAIR
<U0001F9B2> /xf0/x9f/xa6/xb2 EMOJI COMPONENT BALD
@@ -43130,9 +43562,26 @@ CHARMAP
<U0001F9B7> /xf0/x9f/xa6/xb7 TOOTH
<U0001F9B8> /xf0/x9f/xa6/xb8 SUPERHERO
<U0001F9B9> /xf0/x9f/xa6/xb9 SUPERVILLAIN
+<U0001F9BA> /xf0/x9f/xa6/xba SAFETY VEST
+<U0001F9BB> /xf0/x9f/xa6/xbb EAR WITH HEARING AID
+<U0001F9BC> /xf0/x9f/xa6/xbc MOTORIZED WHEELCHAIR
+<U0001F9BD> /xf0/x9f/xa6/xbd MANUAL WHEELCHAIR
+<U0001F9BE> /xf0/x9f/xa6/xbe MECHANICAL ARM
+<U0001F9BF> /xf0/x9f/xa6/xbf MECHANICAL LEG
<U0001F9C0> /xf0/x9f/xa7/x80 CHEESE WEDGE
<U0001F9C1> /xf0/x9f/xa7/x81 CUPCAKE
<U0001F9C2> /xf0/x9f/xa7/x82 SALT SHAKER
+<U0001F9C3> /xf0/x9f/xa7/x83 BEVERAGE BOX
+<U0001F9C4> /xf0/x9f/xa7/x84 GARLIC
+<U0001F9C5> /xf0/x9f/xa7/x85 ONION
+<U0001F9C6> /xf0/x9f/xa7/x86 FALAFEL
+<U0001F9C7> /xf0/x9f/xa7/x87 WAFFLE
+<U0001F9C8> /xf0/x9f/xa7/x88 BUTTER
+<U0001F9C9> /xf0/x9f/xa7/x89 MATE DRINK
+<U0001F9CA> /xf0/x9f/xa7/x8a ICE CUBE
+<U0001F9CD> /xf0/x9f/xa7/x8d STANDING PERSON
+<U0001F9CE> /xf0/x9f/xa7/x8e KNEELING PERSON
+<U0001F9CF> /xf0/x9f/xa7/x8f DEAF PERSON
<U0001F9D0> /xf0/x9f/xa7/x90 FACE WITH MONOCLE
<U0001F9D1> /xf0/x9f/xa7/x91 ADULT
<U0001F9D2> /xf0/x9f/xa7/x92 CHILD
@@ -43181,6 +43630,90 @@ CHARMAP
<U0001F9FD> /xf0/x9f/xa7/xbd SPONGE
<U0001F9FE> /xf0/x9f/xa7/xbe RECEIPT
<U0001F9FF> /xf0/x9f/xa7/xbf NAZAR AMULET
+<U0001FA00> /xf0/x9f/xa8/x80 NEUTRAL CHESS KING
+<U0001FA01> /xf0/x9f/xa8/x81 NEUTRAL CHESS QUEEN
+<U0001FA02> /xf0/x9f/xa8/x82 NEUTRAL CHESS ROOK
+<U0001FA03> /xf0/x9f/xa8/x83 NEUTRAL CHESS BISHOP
+<U0001FA04> /xf0/x9f/xa8/x84 NEUTRAL CHESS KNIGHT
+<U0001FA05> /xf0/x9f/xa8/x85 NEUTRAL CHESS PAWN
+<U0001FA06> /xf0/x9f/xa8/x86 WHITE CHESS KNIGHT ROTATED FORTY-FIVE DEGREES
+<U0001FA07> /xf0/x9f/xa8/x87 BLACK CHESS KNIGHT ROTATED FORTY-FIVE DEGREES
+<U0001FA08> /xf0/x9f/xa8/x88 NEUTRAL CHESS KNIGHT ROTATED FORTY-FIVE DEGREES
+<U0001FA09> /xf0/x9f/xa8/x89 WHITE CHESS KING ROTATED NINETY DEGREES
+<U0001FA0A> /xf0/x9f/xa8/x8a WHITE CHESS QUEEN ROTATED NINETY DEGREES
+<U0001FA0B> /xf0/x9f/xa8/x8b WHITE CHESS ROOK ROTATED NINETY DEGREES
+<U0001FA0C> /xf0/x9f/xa8/x8c WHITE CHESS BISHOP ROTATED NINETY DEGREES
+<U0001FA0D> /xf0/x9f/xa8/x8d WHITE CHESS KNIGHT ROTATED NINETY DEGREES
+<U0001FA0E> /xf0/x9f/xa8/x8e WHITE CHESS PAWN ROTATED NINETY DEGREES
+<U0001FA0F> /xf0/x9f/xa8/x8f BLACK CHESS KING ROTATED NINETY DEGREES
+<U0001FA10> /xf0/x9f/xa8/x90 BLACK CHESS QUEEN ROTATED NINETY DEGREES
+<U0001FA11> /xf0/x9f/xa8/x91 BLACK CHESS ROOK ROTATED NINETY DEGREES
+<U0001FA12> /xf0/x9f/xa8/x92 BLACK CHESS BISHOP ROTATED NINETY DEGREES
+<U0001FA13> /xf0/x9f/xa8/x93 BLACK CHESS KNIGHT ROTATED NINETY DEGREES
+<U0001FA14> /xf0/x9f/xa8/x94 BLACK CHESS PAWN ROTATED NINETY DEGREES
+<U0001FA15> /xf0/x9f/xa8/x95 NEUTRAL CHESS KING ROTATED NINETY DEGREES
+<U0001FA16> /xf0/x9f/xa8/x96 NEUTRAL CHESS QUEEN ROTATED NINETY DEGREES
+<U0001FA17> /xf0/x9f/xa8/x97 NEUTRAL CHESS ROOK ROTATED NINETY DEGREES
+<U0001FA18> /xf0/x9f/xa8/x98 NEUTRAL CHESS BISHOP ROTATED NINETY DEGREES
+<U0001FA19> /xf0/x9f/xa8/x99 NEUTRAL CHESS KNIGHT ROTATED NINETY DEGREES
+<U0001FA1A> /xf0/x9f/xa8/x9a NEUTRAL CHESS PAWN ROTATED NINETY DEGREES
+<U0001FA1B> /xf0/x9f/xa8/x9b WHITE CHESS KNIGHT ROTATED ONE HUNDRED THIRTY-FIVE DEGREES
+<U0001FA1C> /xf0/x9f/xa8/x9c BLACK CHESS KNIGHT ROTATED ONE HUNDRED THIRTY-FIVE DEGREES
+<U0001FA1D> /xf0/x9f/xa8/x9d NEUTRAL CHESS KNIGHT ROTATED ONE HUNDRED THIRTY-FIVE DEGREES
+<U0001FA1E> /xf0/x9f/xa8/x9e WHITE CHESS TURNED KING
+<U0001FA1F> /xf0/x9f/xa8/x9f WHITE CHESS TURNED QUEEN
+<U0001FA20> /xf0/x9f/xa8/xa0 WHITE CHESS TURNED ROOK
+<U0001FA21> /xf0/x9f/xa8/xa1 WHITE CHESS TURNED BISHOP
+<U0001FA22> /xf0/x9f/xa8/xa2 WHITE CHESS TURNED KNIGHT
+<U0001FA23> /xf0/x9f/xa8/xa3 WHITE CHESS TURNED PAWN
+<U0001FA24> /xf0/x9f/xa8/xa4 BLACK CHESS TURNED KING
+<U0001FA25> /xf0/x9f/xa8/xa5 BLACK CHESS TURNED QUEEN
+<U0001FA26> /xf0/x9f/xa8/xa6 BLACK CHESS TURNED ROOK
+<U0001FA27> /xf0/x9f/xa8/xa7 BLACK CHESS TURNED BISHOP
+<U0001FA28> /xf0/x9f/xa8/xa8 BLACK CHESS TURNED KNIGHT
+<U0001FA29> /xf0/x9f/xa8/xa9 BLACK CHESS TURNED PAWN
+<U0001FA2A> /xf0/x9f/xa8/xaa NEUTRAL CHESS TURNED KING
+<U0001FA2B> /xf0/x9f/xa8/xab NEUTRAL CHESS TURNED QUEEN
+<U0001FA2C> /xf0/x9f/xa8/xac NEUTRAL CHESS TURNED ROOK
+<U0001FA2D> /xf0/x9f/xa8/xad NEUTRAL CHESS TURNED BISHOP
+<U0001FA2E> /xf0/x9f/xa8/xae NEUTRAL CHESS TURNED KNIGHT
+<U0001FA2F> /xf0/x9f/xa8/xaf NEUTRAL CHESS TURNED PAWN
+<U0001FA30> /xf0/x9f/xa8/xb0 WHITE CHESS KNIGHT ROTATED TWO HUNDRED TWENTY-FIVE DEGREES
+<U0001FA31> /xf0/x9f/xa8/xb1 BLACK CHESS KNIGHT ROTATED TWO HUNDRED TWENTY-FIVE DEGREES
+<U0001FA32> /xf0/x9f/xa8/xb2 NEUTRAL CHESS KNIGHT ROTATED TWO HUNDRED TWENTY-FIVE DEGREES
+<U0001FA33> /xf0/x9f/xa8/xb3 WHITE CHESS KING ROTATED TWO HUNDRED SEVENTY DEGREES
+<U0001FA34> /xf0/x9f/xa8/xb4 WHITE CHESS QUEEN ROTATED TWO HUNDRED SEVENTY DEGREES
+<U0001FA35> /xf0/x9f/xa8/xb5 WHITE CHESS ROOK ROTATED TWO HUNDRED SEVENTY DEGREES
+<U0001FA36> /xf0/x9f/xa8/xb6 WHITE CHESS BISHOP ROTATED TWO HUNDRED SEVENTY DEGREES
+<U0001FA37> /xf0/x9f/xa8/xb7 WHITE CHESS KNIGHT ROTATED TWO HUNDRED SEVENTY DEGREES
+<U0001FA38> /xf0/x9f/xa8/xb8 WHITE CHESS PAWN ROTATED TWO HUNDRED SEVENTY DEGREES
+<U0001FA39> /xf0/x9f/xa8/xb9 BLACK CHESS KING ROTATED TWO HUNDRED SEVENTY DEGREES
+<U0001FA3A> /xf0/x9f/xa8/xba BLACK CHESS QUEEN ROTATED TWO HUNDRED SEVENTY DEGREES
+<U0001FA3B> /xf0/x9f/xa8/xbb BLACK CHESS ROOK ROTATED TWO HUNDRED SEVENTY DEGREES
+<U0001FA3C> /xf0/x9f/xa8/xbc BLACK CHESS BISHOP ROTATED TWO HUNDRED SEVENTY DEGREES
+<U0001FA3D> /xf0/x9f/xa8/xbd BLACK CHESS KNIGHT ROTATED TWO HUNDRED SEVENTY DEGREES
+<U0001FA3E> /xf0/x9f/xa8/xbe BLACK CHESS PAWN ROTATED TWO HUNDRED SEVENTY DEGREES
+<U0001FA3F> /xf0/x9f/xa8/xbf NEUTRAL CHESS KING ROTATED TWO HUNDRED SEVENTY DEGREES
+<U0001FA40> /xf0/x9f/xa9/x80 NEUTRAL CHESS QUEEN ROTATED TWO HUNDRED SEVENTY DEGREES
+<U0001FA41> /xf0/x9f/xa9/x81 NEUTRAL CHESS ROOK ROTATED TWO HUNDRED SEVENTY DEGREES
+<U0001FA42> /xf0/x9f/xa9/x82 NEUTRAL CHESS BISHOP ROTATED TWO HUNDRED SEVENTY DEGREES
+<U0001FA43> /xf0/x9f/xa9/x83 NEUTRAL CHESS KNIGHT ROTATED TWO HUNDRED SEVENTY DEGREES
+<U0001FA44> /xf0/x9f/xa9/x84 NEUTRAL CHESS PAWN ROTATED TWO HUNDRED SEVENTY DEGREES
+<U0001FA45> /xf0/x9f/xa9/x85 WHITE CHESS KNIGHT ROTATED THREE HUNDRED FIFTEEN DEGREES
+<U0001FA46> /xf0/x9f/xa9/x86 BLACK CHESS KNIGHT ROTATED THREE HUNDRED FIFTEEN DEGREES
+<U0001FA47> /xf0/x9f/xa9/x87 NEUTRAL CHESS KNIGHT ROTATED THREE HUNDRED FIFTEEN DEGREES
+<U0001FA48> /xf0/x9f/xa9/x88 WHITE CHESS EQUIHOPPER
+<U0001FA49> /xf0/x9f/xa9/x89 BLACK CHESS EQUIHOPPER
+<U0001FA4A> /xf0/x9f/xa9/x8a NEUTRAL CHESS EQUIHOPPER
+<U0001FA4B> /xf0/x9f/xa9/x8b WHITE CHESS EQUIHOPPER ROTATED NINETY DEGREES
+<U0001FA4C> /xf0/x9f/xa9/x8c BLACK CHESS EQUIHOPPER ROTATED NINETY DEGREES
+<U0001FA4D> /xf0/x9f/xa9/x8d NEUTRAL CHESS EQUIHOPPER ROTATED NINETY DEGREES
+<U0001FA4E> /xf0/x9f/xa9/x8e WHITE CHESS KNIGHT-QUEEN
+<U0001FA4F> /xf0/x9f/xa9/x8f WHITE CHESS KNIGHT-ROOK
+<U0001FA50> /xf0/x9f/xa9/x90 WHITE CHESS KNIGHT-BISHOP
+<U0001FA51> /xf0/x9f/xa9/x91 BLACK CHESS KNIGHT-QUEEN
+<U0001FA52> /xf0/x9f/xa9/x92 BLACK CHESS KNIGHT-ROOK
+<U0001FA53> /xf0/x9f/xa9/x93 BLACK CHESS KNIGHT-BISHOP
<U0001FA60> /xf0/x9f/xa9/xa0 XIANGQI RED GENERAL
<U0001FA61> /xf0/x9f/xa9/xa1 XIANGQI RED MANDARIN
<U0001FA62> /xf0/x9f/xa9/xa2 XIANGQI RED ELEPHANT
@@ -43195,6 +43728,22 @@ CHARMAP
<U0001FA6B> /xf0/x9f/xa9/xab XIANGQI BLACK CHARIOT
<U0001FA6C> /xf0/x9f/xa9/xac XIANGQI BLACK CANNON
<U0001FA6D> /xf0/x9f/xa9/xad XIANGQI BLACK SOLDIER
+<U0001FA70> /xf0/x9f/xa9/xb0 BALLET SHOES
+<U0001FA71> /xf0/x9f/xa9/xb1 ONE-PIECE SWIMSUIT
+<U0001FA72> /xf0/x9f/xa9/xb2 BRIEFS
+<U0001FA73> /xf0/x9f/xa9/xb3 SHORTS
+<U0001FA78> /xf0/x9f/xa9/xb8 DROP OF BLOOD
+<U0001FA79> /xf0/x9f/xa9/xb9 ADHESIVE BANDAGE
+<U0001FA7A> /xf0/x9f/xa9/xba STETHOSCOPE
+<U0001FA80> /xf0/x9f/xaa/x80 YO-YO
+<U0001FA81> /xf0/x9f/xaa/x81 KITE
+<U0001FA82> /xf0/x9f/xaa/x82 PARACHUTE
+<U0001FA90> /xf0/x9f/xaa/x90 RINGED PLANET
+<U0001FA91> /xf0/x9f/xaa/x91 CHAIR
+<U0001FA92> /xf0/x9f/xaa/x92 RAZOR
+<U0001FA93> /xf0/x9f/xaa/x93 AXE
+<U0001FA94> /xf0/x9f/xaa/x94 DIYA LAMP
+<U0001FA95> /xf0/x9f/xaa/x95 BANJO
<U00020000>..<U0002003F> /xf0/xa0/x80/x80 <CJK Ideograph Extension B>
<U00020040>..<U0002007F> /xf0/xa0/x81/x80 <CJK Ideograph Extension B>
<U00020080>..<U000200BF> /xf0/xa0/x82/x80 <CJK Ideograph Extension B>
@@ -47069,7 +47618,7 @@ CHARMAP
<U0010FFC0>..<U0010FFFD> /xf4/x8f/xbf/x80 <Plane 16 Private Use>
END CHARMAP
-% Character width according to Unicode 11.0.0.
+% Character width according to Unicode 12.1.0.
% - Default width is 1.
% - Double-width characters have width 2; generated from
% "grep '^[^;]*;[WF]' EastAsianWidth.txt"
@@ -47167,8 +47716,7 @@ WIDTH
<U0E34>...<U0E3A> 0
<U0E47>...<U0E4E> 0
<U0EB1> 0
-<U0EB4>...<U0EB9> 0
-<U0EBB>...<U0EBC> 0
+<U0EB4>...<U0EBC> 0
<U0EC8>...<U0ECD> 0
<U0F18>...<U0F19> 0
<U0F35> 0
@@ -47301,8 +47849,7 @@ WIDTH
<U3190>...<U31BA> 2
<U31C0>...<U31E3> 2
<U31F0>...<U321E> 2
-<U3220>...<U32FE> 2
-<U3300>...<U4DB5> 2
+<U3220>...<U4DB5> 2
<U4DC0>...<U9FEF> 2
<UA000>...<UA48C> 2
<UA490>...<UA4C6> 2
@@ -47323,7 +47870,7 @@ WIDTH
<UA980>...<UA982> 0
<UA9B3> 0
<UA9B6>...<UA9B9> 0
-<UA9BC> 0
+<UA9BC>...<UA9BD> 0
<UA9E5> 0
<UAA29>...<UAA2E> 0
<UAA31>...<UAA32> 0
@@ -47413,6 +47960,9 @@ WIDTH
<U00011727>...<U0001172B> 0
<U0001182F>...<U00011837> 0
<U00011839>...<U0001183A> 0
+<U000119D4>...<U000119D7> 0
+<U000119DA>...<U000119DB> 0
+<U000119E0> 0
<U00011A01>...<U00011A0A> 0
<U00011A33>...<U00011A38> 0
<U00011A3B>...<U00011A3E> 0
@@ -47437,13 +47987,17 @@ WIDTH
<U00011D95> 0
<U00011D97> 0
<U00011EF3>...<U00011EF4> 0
+<U00013430>...<U00013438> 0
<U00016AF0>...<U00016AF4> 0
<U00016B30>...<U00016B36> 0
+<U00016F4F> 0
<U00016F8F>...<U00016F92> 0
-<U00016FE0>...<U00016FE1> 2
-<U00017000>...<U000187F1> 2
+<U00016FE0>...<U00016FE3> 2
+<U00017000>...<U000187F7> 2
<U00018800>...<U00018AF2> 2
<U0001B000>...<U0001B11E> 2
+<U0001B150>...<U0001B152> 2
+<U0001B164>...<U0001B167> 2
<U0001B170>...<U0001B2FB> 2
<U0001BC9D>...<U0001BC9E> 0
<U0001BCA0>...<U0001BCA3> 0
@@ -47463,6 +48017,8 @@ WIDTH
<U0001E01B>...<U0001E021> 0
<U0001E023>...<U0001E024> 0
<U0001E026>...<U0001E02A> 0
+<U0001E130>...<U0001E136> 0
+<U0001E2EC>...<U0001E2EF> 0
<U0001E8D0>...<U0001E8D6> 0
<U0001E944>...<U0001E94A> 0
<U0001F004> 2
@@ -47495,16 +48051,20 @@ WIDTH
<U0001F680>...<U0001F6C5> 2
<U0001F6CC> 2
<U0001F6D0>...<U0001F6D2> 2
+<U0001F6D5> 2
<U0001F6EB>...<U0001F6EC> 2
-<U0001F6F4>...<U0001F6F9> 2
-<U0001F910>...<U0001F93E> 2
-<U0001F940>...<U0001F970> 2
+<U0001F6F4>...<U0001F6FA> 2
+<U0001F7E0>...<U0001F7EB> 2
+<U0001F90D>...<U0001F971> 2
<U0001F973>...<U0001F976> 2
-<U0001F97A> 2
-<U0001F97C>...<U0001F9A2> 2
-<U0001F9B0>...<U0001F9B9> 2
-<U0001F9C0>...<U0001F9C2> 2
-<U0001F9D0>...<U0001F9FF> 2
+<U0001F97A>...<U0001F9A2> 2
+<U0001F9A5>...<U0001F9AA> 2
+<U0001F9AE>...<U0001F9CA> 2
+<U0001F9CD>...<U0001F9FF> 2
+<U0001FA70>...<U0001FA73> 2
+<U0001FA78>...<U0001FA7A> 2
+<U0001FA80>...<U0001FA82> 2
+<U0001FA90>...<U0001FA95> 2
<U00020000>...<U0002A6D6> 2
<U0002A700>...<U0002B734> 2
<U0002B740>...<U0002B81D> 2
diff --git a/localedata/collate-test.c b/localedata/collate-test.c
index f6129a08c9..4dd64a60f9 100644
--- a/localedata/collate-test.c
+++ b/localedata/collate-test.c
@@ -1,5 +1,5 @@
/* Test collation function using real data.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <error.h>
diff --git a/localedata/dump-ctype.c b/localedata/dump-ctype.c
index 7f32021228..f33332ae9a 100644
--- a/localedata/dump-ctype.c
+++ b/localedata/dump-ctype.c
@@ -1,6 +1,6 @@
/* Dump the character classes and character maps of a locale to a bunch
of individual files which can be processed with diff, sed etc.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Bruno Haible <haible@clisp.cons.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Usage example:
$ dump-ctype de_DE.UTF-8
diff --git a/localedata/gen-locale.sh b/localedata/gen-locale.sh
index b91e42af13..98a43e1639 100644
--- a/localedata/gen-locale.sh
+++ b/localedata/gen-locale.sh
@@ -1,6 +1,6 @@
#!/bin/sh
# Generate test locale files.
-# Copyright (C) 2000-2018 Free Software Foundation, Inc.
+# Copyright (C) 2000-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
@@ -15,7 +15,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
set -e
diff --git a/localedata/locales/aa_DJ b/localedata/locales/aa_DJ
index fcb9af8abc..5e900ac66c 100644
--- a/localedata/locales/aa_DJ
+++ b/localedata/locales/aa_DJ
@@ -181,7 +181,7 @@ LC_TIME
%
% Abbreviated weekday names (%a)
%
-abday "aca";"etl";"tal";"arb";"kam";"gum";"sab"
+abday "Aca";"Etl";"Tal";"Arb";"Kam";"Gum";"Sab"
%
% Full weekday names (%A)
%
@@ -195,18 +195,18 @@ day "Acaada";/
%
% Abbreviated month names (%b)
%
-abmon "qun";"nah";"cig";"agd";"cax";"qas";"qad";"leq";"way";"dit";"xim";"kax"
+abmon "Qun";"Nah";"Cig";"Agd";"Cax";"Qas";"Qad";"Leq";"Way";"Dit";"Xim";"Kax"
%
% Full month names (%B)
%
mon "Qunxa Garablu";/
- "Kudo";/
+ "Naharsi Kudo";/
"Ciggilta Kudo";/
- "Agda Baxisso";/
+ "Agda Baxis";/
"Caxah Alsa";/
"Qasa Dirri";/
"Qado Dirri";/
- "Liiqen";/
+ "Leqeeni";/
"Waysu";/
"Diteli";/
"Ximoli";/
@@ -220,10 +220,10 @@ am_pm "saaku";"carra"
d_fmt "%d.%m.%Y"
%
% Appropriate time representation (%X)
-t_fmt "%l:%M:%S"
+t_fmt "%l:%M:%S %p"
%
% Appropriate AM/PM time representation (%r)
-t_fmt_ampm "%X %p"
+t_fmt_ampm "%l:%M:%S %p"
%
% Appropriate date and time representation (%c)
d_t_fmt "%a %d %b %Y %r %Z"
diff --git a/localedata/locales/aa_ER b/localedata/locales/aa_ER
index 1c6ce6b081..2d23b0f93c 100644
--- a/localedata/locales/aa_ER
+++ b/localedata/locales/aa_ER
@@ -176,11 +176,11 @@ abmon "Qun";/
mon "Qunxa Garablu";/
"Naharsi Kudo";/
"Ciggilta Kudo";/
- "Agda Baxisso";/
+ "Agda Baxis";/
"Caxah Alsa";/
"Qasa Dirri";/
"Qado Dirri";/
- "Leqeeni";/
+ "Liiqen";/
"Waysu";/
"Diteli";/
"Ximoli";/
@@ -194,10 +194,10 @@ am_pm "saaku";"carra"
d_fmt "%d//%m//%Y"
%
% Appropriate time representation (%X)
-t_fmt "%l:%M:%S"
+t_fmt "%l:%M:%S %p"
%
% Appropriate AM/PM time representation (%r)
-t_fmt_ampm "%X %p"
+t_fmt_ampm "%l:%M:%S %p"
%
% Appropriate date and time representation (%c)
d_t_fmt "%A, %B %e, %Y %r %Z"
diff --git a/localedata/locales/aa_ER@saaho b/localedata/locales/aa_ER@saaho
index ac1124ef48..728dcfb879 100644
--- a/localedata/locales/aa_ER@saaho
+++ b/localedata/locales/aa_ER@saaho
@@ -161,11 +161,11 @@ abmon "Qun";/
mon "Qunxa Garablu";/
"Naharsi Kudo";/
"Ciggilta Kudo";/
- "Agda Baxisso";/
+ "Agda Baxis";/
"Caxah Alsa";/
"Qasa Dirri";/
"Qado Dirri";/
- "Leqeeni";/
+ "Liiqen";/
"Waysu";/
"Diteli";/
"Ximoli";/
@@ -179,10 +179,10 @@ am_pm "saaku";"carra"
d_fmt "%d//%m//%Y"
%
% Appropriate time representation (%X)
-t_fmt "%l:%M:%S"
+t_fmt "%l:%M:%S %p"
%
% Appropriate AM/PM time representation (%r)
-t_fmt_ampm "%X %p"
+t_fmt_ampm "%l:%M:%S %p"
%
% Appropriate date and time representation (%c)
d_t_fmt "%A, %B %e, %Y %r %Z"
diff --git a/localedata/locales/aa_ET b/localedata/locales/aa_ET
index 770820d583..1bc7c4a7d9 100644
--- a/localedata/locales/aa_ET
+++ b/localedata/locales/aa_ET
@@ -161,7 +161,7 @@ day "Acaada";/
% Abbreviated month names (%b)
%
abmon "Qun";/
- "Kud";/
+ "Nah";/
"Cig";/
"Agd";/
"Cax";/
@@ -176,9 +176,9 @@ abmon "Qun";/
% Full month names (%B)
%
mon "Qunxa Garablu";/
- "Kudo";/
+ "Naharsi Kudo";/
"Ciggilta Kudo";/
- "Agda Baxisso";/
+ "Agda Baxis";/
"Caxah Alsa";/
"Qasa Dirri";/
"Qado Dirri";/
@@ -196,10 +196,10 @@ am_pm "saaku";"carra"
d_fmt "%d//%m//%Y"
%
% Appropriate time representation (%X)
-t_fmt "%l:%M:%S"
+t_fmt "%l:%M:%S %p"
%
% Appropriate AM/PM time representation (%r)
-t_fmt_ampm "%X %p"
+t_fmt_ampm "%l:%M:%S %p"
%
% Appropriate date and time representation (%c)
d_t_fmt "%A, %B %e, %Y %r %Z"
diff --git a/localedata/locales/am_ET b/localedata/locales/am_ET
index e5fe88a4cd..7846d6278c 100644
--- a/localedata/locales/am_ET
+++ b/localedata/locales/am_ET
@@ -1039,10 +1039,10 @@ am_pm "<U1321><U12CB><U1275>";/
d_fmt "%d//%m//%Y"
%
% Appropriate time representation (%X)
-t_fmt "%l:%M:%S"
+t_fmt "%l:%M:%S %p"
%
% Appropriate AM/PM time representation (%r)
-t_fmt_ampm "%X %p"
+t_fmt_ampm "%l:%M:%S %p"
%
% Appropriate date and time representation (%c)
% "%Aᣠ%B %e ቀን %Y %r %Z
diff --git a/localedata/locales/anp_IN b/localedata/locales/anp_IN
index 1142a133e9..eb3f35a19c 100644
--- a/localedata/locales/anp_IN
+++ b/localedata/locales/anp_IN
@@ -127,10 +127,10 @@ am_pm "<U092A><U0942><U0930><U094D><U0935><U093E><U0939><U094D><U0928>";/
d_t_fmt "%A %d %b %Y %I:%M:%S %p %Z"
%
% Appropriate date representation
-d_fmt "%A %d %b %Y"
+d_fmt "%-d//%-m//%y"
%
% Appropriate time representation
-t_fmt "%I:%M:%S %Z"
+t_fmt "%I:%M:%S %p %Z"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm "%I:%M:%S %p %Z"
diff --git a/localedata/locales/ar_AE b/localedata/locales/ar_AE
index be1caf4aab..3701909dd0 100644
--- a/localedata/locales/ar_AE
+++ b/localedata/locales/ar_AE
@@ -133,7 +133,7 @@ d_t_fmt "%d %b, %Y %Z %I:%M:%S %p"
d_fmt "%d %b, %Y"
%
% Appropriate time representation
-t_fmt "%Z %I:%M:%S "
+t_fmt "%Z %I:%M:%S %p"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm "%Z %I:%M:%S %p"
diff --git a/localedata/locales/ar_BH b/localedata/locales/ar_BH
index ff744dfc9d..94a6f8b746 100644
--- a/localedata/locales/ar_BH
+++ b/localedata/locales/ar_BH
@@ -137,7 +137,7 @@ d_t_fmt "%d %b, %Y %Z %I:%M:%S %p"
d_fmt "%d %b, %Y"
%
% Appropriate time representation
-t_fmt "%Z %I:%M:%S "
+t_fmt "%Z %I:%M:%S %p"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm "%Z %I:%M:%S %p"
diff --git a/localedata/locales/ar_DZ b/localedata/locales/ar_DZ
index 2b744fca28..420076cf72 100644
--- a/localedata/locales/ar_DZ
+++ b/localedata/locales/ar_DZ
@@ -142,7 +142,7 @@ d_t_fmt "%d %b, %Y %Z %I:%M:%S %p"
d_fmt "%d %b, %Y"
%
% Appropriate time representation
-t_fmt "%Z %I:%M:%S "
+t_fmt "%Z %I:%M:%S %p"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm "%Z %I:%M:%S %p"
diff --git a/localedata/locales/ar_EG b/localedata/locales/ar_EG
index c8cb3180bf..2ec46b10d2 100644
--- a/localedata/locales/ar_EG
+++ b/localedata/locales/ar_EG
@@ -140,7 +140,7 @@ d_t_fmt "%d %b, %Y %Z %I:%M:%S %p"
d_fmt "%d %b, %Y"
%
% Appropriate time representation
-t_fmt "%Z %I:%M:%S "
+t_fmt "%Z %I:%M:%S %p"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm "%Z %I:%M:%S %p"
diff --git a/localedata/locales/ar_IN b/localedata/locales/ar_IN
index 2803d91ae8..85116e5e9c 100644
--- a/localedata/locales/ar_IN
+++ b/localedata/locales/ar_IN
@@ -103,10 +103,10 @@ am_pm "<U0635>";"<U0645>"
d_t_fmt "%A %d %B %Y %I:%M:%S %p %Z"
%
% Appropriate date representation
-d_fmt "%A %d %B %Y"
+d_fmt "%-d//%-m//%y"
%
% Appropriate time representation
-t_fmt "%I:%M:%S %Z"
+t_fmt "%I:%M:%S %p %Z"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm "%I:%M:%S %p %Z"
diff --git a/localedata/locales/ar_IQ b/localedata/locales/ar_IQ
index 333871c4ad..2483b04167 100644
--- a/localedata/locales/ar_IQ
+++ b/localedata/locales/ar_IQ
@@ -142,7 +142,7 @@ d_t_fmt "%d %b, %Y %Z %I:%M:%S %p"
d_fmt "%d %b, %Y"
%
% Appropriate time representation
-t_fmt "%Z %I:%M:%S "
+t_fmt "%Z %I:%M:%S %p"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm "%Z %I:%M:%S %p"
diff --git a/localedata/locales/ar_JO b/localedata/locales/ar_JO
index 748515e0bc..5d532b4ac4 100644
--- a/localedata/locales/ar_JO
+++ b/localedata/locales/ar_JO
@@ -154,7 +154,7 @@ d_t_fmt "%d %b, %Y %Z %I:%M:%S %p"
d_fmt "%d %b, %Y"
%
% Appropriate time representation
-t_fmt "%Z %I:%M:%S "
+t_fmt "%Z %I:%M:%S %p"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm "%Z %I:%M:%S %p"
diff --git a/localedata/locales/ar_KW b/localedata/locales/ar_KW
index 617df5df89..bec97f3dad 100644
--- a/localedata/locales/ar_KW
+++ b/localedata/locales/ar_KW
@@ -136,7 +136,7 @@ d_t_fmt "%d %b, %Y %Z %I:%M:%S %p"
d_fmt "%d %b, %Y"
%
% Appropriate time representation
-t_fmt "%Z %I:%M:%S "
+t_fmt "%Z %I:%M:%S %p"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm "%Z %I:%M:%S %p"
diff --git a/localedata/locales/ar_LB b/localedata/locales/ar_LB
index 85a38c2a27..0c1405b37a 100644
--- a/localedata/locales/ar_LB
+++ b/localedata/locales/ar_LB
@@ -153,7 +153,7 @@ d_t_fmt "%d %b, %Y %Z %I:%M:%S %p"
d_fmt "%d %b, %Y"
%
% Appropriate time representation
-t_fmt "%Z %I:%M:%S "
+t_fmt "%Z %I:%M:%S %p"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm "%Z %I:%M:%S %p"
diff --git a/localedata/locales/ar_LY b/localedata/locales/ar_LY
index bcf04f0503..c6bbee43bc 100644
--- a/localedata/locales/ar_LY
+++ b/localedata/locales/ar_LY
@@ -136,7 +136,7 @@ d_t_fmt "%d %b, %Y %Z %I:%M:%S %p"
d_fmt "%d %b, %Y"
%
% Appropriate time representation
-t_fmt "%Z %I:%M:%S "
+t_fmt "%Z %I:%M:%S %p"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm "%Z %I:%M:%S %p"
diff --git a/localedata/locales/ar_MA b/localedata/locales/ar_MA
index 78e10ab415..88890f71e6 100644
--- a/localedata/locales/ar_MA
+++ b/localedata/locales/ar_MA
@@ -136,16 +136,16 @@ mon "<U064A><U0646><U0627><U064A><U0631>";/
am_pm "<U0635>";"<U0645>"
%
% Appropriate date and time representation
-d_t_fmt "%d %b, %Y %Z %I:%M:%S %p"
+d_t_fmt "%d %b, %Y %Z %H:%M:%S"
%
% Appropriate date representation
d_fmt "%d %b, %Y"
%
% Appropriate time representation
-t_fmt "%Z %I:%M:%S "
+t_fmt "%Z %H:%M:%S"
%
% Appropriate 12 h time representation (%r)
-t_fmt_ampm "%Z %I:%M:%S %p"
+t_fmt_ampm ""
week 7;19971130;1
first_weekday 7
first_workday 1
diff --git a/localedata/locales/ar_OM b/localedata/locales/ar_OM
index 950f60c680..00fae2b94e 100644
--- a/localedata/locales/ar_OM
+++ b/localedata/locales/ar_OM
@@ -136,7 +136,7 @@ d_t_fmt "%d %b, %Y %Z %I:%M:%S %p"
d_fmt "%d %b, %Y"
%
% Appropriate time representation
-t_fmt "%Z %I:%M:%S "
+t_fmt "%Z %I:%M:%S %p"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm "%Z %I:%M:%S %p"
diff --git a/localedata/locales/ar_QA b/localedata/locales/ar_QA
index f0f2e0cf19..cedfedcdf3 100644
--- a/localedata/locales/ar_QA
+++ b/localedata/locales/ar_QA
@@ -136,7 +136,7 @@ d_t_fmt "%d %b, %Y %Z %I:%M:%S %p"
d_fmt "%d %b, %Y"
%
% Appropriate time representation
-t_fmt "%Z %I:%M:%S "
+t_fmt "%Z %I:%M:%S %p"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm "%Z %I:%M:%S %p"
diff --git a/localedata/locales/ar_SD b/localedata/locales/ar_SD
index d5d89b1e6e..d8e9112d56 100644
--- a/localedata/locales/ar_SD
+++ b/localedata/locales/ar_SD
@@ -142,7 +142,7 @@ d_t_fmt "%d %b, %Y %Z %I:%M:%S %p"
d_fmt "%d %b, %Y"
%
% Appropriate time representation
-t_fmt "%Z %I:%M:%S "
+t_fmt "%Z %I:%M:%S %p"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm "%Z %I:%M:%S %p"
diff --git a/localedata/locales/ar_SS b/localedata/locales/ar_SS
index 24b859549d..cfd3ea45d0 100644
--- a/localedata/locales/ar_SS
+++ b/localedata/locales/ar_SS
@@ -141,7 +141,7 @@ d_t_fmt "%d %b, %Y %Z %I:%M:%S %p"
d_fmt "%d %b, %Y"
%
% Appropriate time representation
-t_fmt "%Z %I:%M:%S "
+t_fmt "%Z %I:%M:%S %p"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm "%Z %I:%M:%S %p"
diff --git a/localedata/locales/ar_SY b/localedata/locales/ar_SY
index 996df663f5..b786f685c6 100644
--- a/localedata/locales/ar_SY
+++ b/localedata/locales/ar_SY
@@ -153,7 +153,7 @@ d_t_fmt "%d %b, %Y %Z %I:%M:%S %p"
d_fmt "%d %b, %Y"
%
% Appropriate time representation
-t_fmt "%Z %I:%M:%S "
+t_fmt "%Z %I:%M:%S %p"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm "%Z %I:%M:%S %p"
diff --git a/localedata/locales/ar_TN b/localedata/locales/ar_TN
index e0033f9e38..d4daf2c9e9 100644
--- a/localedata/locales/ar_TN
+++ b/localedata/locales/ar_TN
@@ -142,7 +142,7 @@ d_t_fmt "%d %b, %Y %Z %I:%M:%S %p"
d_fmt "%d %b, %Y"
%
% Appropriate time representation
-t_fmt "%Z %I:%M:%S "
+t_fmt "%Z %I:%M:%S %p"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm "%Z %I:%M:%S %p"
diff --git a/localedata/locales/ar_YE b/localedata/locales/ar_YE
index ba4d9f95b0..a0ad9ca130 100644
--- a/localedata/locales/ar_YE
+++ b/localedata/locales/ar_YE
@@ -136,7 +136,7 @@ d_t_fmt "%d %b, %Y %Z %I:%M:%S %p"
d_fmt "%d %b, %Y"
%
% Appropriate time representation
-t_fmt "%Z %I:%M:%S "
+t_fmt "%Z %I:%M:%S %p"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm "%Z %I:%M:%S %p"
diff --git a/localedata/locales/az_AZ b/localedata/locales/az_AZ
index 6fe8839f25..3c0db0be3d 100644
--- a/localedata/locales/az_AZ
+++ b/localedata/locales/az_AZ
@@ -243,7 +243,7 @@ country_ab3 "AZE"
country_num 031
country_car "AZ"
% Azərbaycanca
-lang_name "az<U0259>rbaycan dili"
+lang_name "az<U0259>rbaycan"
lang_ab "az"
lang_term "aze"
lang_lib "aze"
diff --git a/localedata/locales/be_BY@latin b/localedata/locales/be_BY@latin
index 43b13cc278..fef339f624 100644
--- a/localedata/locales/be_BY@latin
+++ b/localedata/locales/be_BY@latin
@@ -156,7 +156,7 @@ country_ab2 "BY"
country_ab3 "BLR"
country_num 112
country_car "BY"
-lang_name "bie<U0142>aruskaja mova"
+lang_name "bie<U0142>aruskaja"
lang_ab "be"
lang_term "bel"
lang_lib "bel"
diff --git a/localedata/locales/ber_DZ b/localedata/locales/ber_DZ
index 79f3d289b1..4fa1bdfff9 100644
--- a/localedata/locales/ber_DZ
+++ b/localedata/locales/ber_DZ
@@ -8,7 +8,7 @@ escape_char /
% exempt you from the conditions of the license if your use would
% otherwise be governed by that license.
-% Amazigh Language Locale for Algeria (latin)
+% Berber Language Locale for Algeria (latin)
% Source:
% Contact: Pablo Saratxaga
% Email: <pablo@mandrakesoft.com>
@@ -20,14 +20,14 @@ escape_char /
% Users: general
LC_IDENTIFICATION
-title "Amazigh language locale for Algeria (latin)"
+title "Berber language locale for Algeria (latin)"
source ""
address ""
contact "Pablo Saratxaga"
email "pablo@mandrakesoft.com"
tel ""
fax ""
-language "Amazigh"
+language "Berber"
territory "Algeria"
revision "0.1"
date "2002-04-16"
@@ -253,14 +253,15 @@ LC_ADDRESS
% This is the ISO_IEC TR14652 Locale definition for the
% LC_ADDRESS
postal_fmt "%z%c%T%s%b%e%r"
+country_name "Lezzayer"
%country_post ""
country_ab2 "DZ"
country_ab3 "DZA"
country_num 012
%country_isbn ""
country_car "DZ"
-% ⵜⴰⵎⴰⵣⵉⵖⵜ
-lang_name "<U2D5C><U2D30><U2D4E><U2D30><U2D49><U2D56><U2D5C>"
+% Tamaziɣt
+lang_name "Tamazi<U0263>t"
%lang_ab
lang_term "ber"
lang_lib "ber"
diff --git a/localedata/locales/ber_MA b/localedata/locales/ber_MA
index b9bd64868c..5d19354ad6 100644
--- a/localedata/locales/ber_MA
+++ b/localedata/locales/ber_MA
@@ -8,7 +8,7 @@ escape_char /
% exempt you from the conditions of the license if your use would
% otherwise be governed by that license.
-% Amazigh Language Locale for Morocco (tifinagh)
+% Berber Language Locale for Morocco (tifinagh)
% Source:
% Contact: Pablo Saratxaga
% Email: <pablo@mandrakesoft.com>
@@ -20,14 +20,14 @@ escape_char /
% Users: general
LC_IDENTIFICATION
-title "Amazigh language locale for Morocco (tifinagh)"
+title "Berber language locale for Morocco (tifinagh)"
source ""
address ""
contact "Pablo Saratxaga"
email "pablo@mandrakesoft.com"
tel ""
fax ""
-language "Amazigh"
+language "Berber"
territory "Morocco"
revision "0.1"
date "2002-06-26"
@@ -204,6 +204,8 @@ LC_ADDRESS
% This is the ISO_IEC TR14652 Locale definition for the
% LC_ADDRESS
postal_fmt "%z%c%T%s%b%e%r"
+% https://en.wikipedia.org/wiki/Morocco ⵜⴰⴳâµâ´·âµ‰âµœ âµ âµâµŽâµ–ⵔⵉⴱ
+country_name "<U2D5C><U2D30><U2D33><U2D4D><U2D37><U2D49><U2D5C> <U2D4F> <U2D4D><U2D4E><U2D56><U2D54><U2D49><U2D31>"
%country_post ""
country_ab2 "MA"
country_ab3 "MAR"
@@ -211,7 +213,7 @@ country_num 504
%country_isbn ""
country_car "MA"
% ⵜⴰⵎⴰⵣⵉⵖⵜ
-lang_name "<U2D5C><U2D30><U2D4E><U2D30><U2D49><U2D56><U2D5C>"
+lang_name "<U2D5C><U2D30><U2D4E><U2D30><U2D63><U2D49><U2D56><U2D5C>"
% lang_ab
lang_term "ber"
lang_lib "ber"
diff --git a/localedata/locales/bg_BG b/localedata/locales/bg_BG
index 7a9cfa0a5d..f2136cdb16 100644
--- a/localedata/locales/bg_BG
+++ b/localedata/locales/bg_BG
@@ -276,7 +276,7 @@ d_t_fmt "%x (%a) %X %Z"
d_fmt "%e.%m.%Y"
t_fmt "%k:%M:%S"
am_pm "";""
-t_fmt_ampm "%l:%M:%S"
+t_fmt_ampm ""
%
week 7;19971130;4
first_weekday 2
diff --git a/localedata/locales/bhb_IN b/localedata/locales/bhb_IN
index 549974de2c..ed8cd6c8d5 100644
--- a/localedata/locales/bhb_IN
+++ b/localedata/locales/bhb_IN
@@ -108,10 +108,10 @@ am_pm "AM";"PM"
d_t_fmt "%A %d %b %Y %I:%M:%S %p %Z"
%
% Appropriate date representation
-d_fmt "%A %d %b %Y"
+d_fmt "%-d//%-m//%y"
%
% Appropriate time representation
-t_fmt "%I:%M:%S %Z"
+t_fmt "%I:%M:%S %p %Z"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm "%I:%M:%S %p %Z"
@@ -145,11 +145,13 @@ LC_ADDRESS
% This is the ISO_IEC TR14652 Locale definition for the LC_ADDRESS category
% generated by IBM Basic CountryPack Transformer.
postal_fmt "%z%c%T%s%b%e%r"
+country_name "<U092D><U093E><U0930><U0924>"
country_ab2 "IN"
country_ab3 "IND"
country_car "IND"
country_num 356
-lang_name "bhili"
+% भीली
+lang_name "<U092D><U0940><U0932><U0940>"
lang_ab ""
lang_term "bhb"
lang_lib "bhb"
diff --git a/localedata/locales/bho_IN b/localedata/locales/bho_IN
index 99a91c2553..9567d7cbb0 100644
--- a/localedata/locales/bho_IN
+++ b/localedata/locales/bho_IN
@@ -114,10 +114,10 @@ am_pm "<U092A><U0942><U0930><U094D><U0935><U093E><U0939><U094D><U0928>";/
d_t_fmt "%A %d %b %Y %I:%M:%S %p %Z"
%
% Appropriate date representation
-d_fmt "%A %d %b %Y"
+d_fmt "%-d//%-m//%y"
%
% Appropriate time representation
-t_fmt "%I:%M:%S %Z"
+t_fmt "%I:%M:%S %p %Z"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm "%I:%M:%S %p %Z"
@@ -147,6 +147,7 @@ END LC_NAME
LC_ADDRESS
postal_fmt "%z%c%T%s%b%e%r"
+country_name "<U092D><U093E><U0930><U0924>"
country_ab2 "IN"
country_ab3 "IND"
country_num 356
diff --git a/localedata/locales/bi_VU b/localedata/locales/bi_VU
index 88bf70a61b..15787b93f9 100755..100644
--- a/localedata/locales/bi_VU
+++ b/localedata/locales/bi_VU
@@ -102,7 +102,7 @@ d_t_fmt "%A %d %b %Y %I:%M:%S %p %Z"
d_fmt "%A %d %b %Y"
%
% Appropriate time representation
-t_fmt "%I:%M:%S %Z"
+t_fmt "%I:%M:%S %p %Z"
% Equivalent of AM PM
am_pm "AM";"PM"
%
diff --git a/localedata/locales/bn_BD b/localedata/locales/bn_BD
index 5a6f5e8316..214c805c83 100644
--- a/localedata/locales/bn_BD
+++ b/localedata/locales/bn_BD
@@ -136,8 +136,8 @@ mon "<U099C><U09BE><U09A8><U09C1><U09AF><U09BC><U09BE><U09B0><U09C0>";/
am_pm "<U09AA><U09C2><U09B0><U09CD><U09AC><U09BE><U09B9><U09CD><U09A3>";"<U0985><U09AA><U09B0><U09BE><U09B9><U09CD><U09A3>"
d_t_fmt "%A %d %b %Y %I:%M:%S %p %Z"
-d_fmt "%A %d %b %Y"
-t_fmt "%I:%M:%S %Z"
+d_fmt "%-d//%-m//%y"
+t_fmt "%I:%M:%S %p %Z"
t_fmt_ampm "%I:%M:%S %p %Z"
week 7;19971130;1
first_weekday 6
diff --git a/localedata/locales/bn_IN b/localedata/locales/bn_IN
index c515b39760..ad22b893d4 100644
--- a/localedata/locales/bn_IN
+++ b/localedata/locales/bn_IN
@@ -121,10 +121,10 @@ am_pm "<U09AA><U09C2><U09B0><U09CD><U09AC><U09BE><U09B9><U09CD><U09A3>";/
d_t_fmt "%A %d %b %Y %I:%M:%S %p %Z"
%
% Appropriate date representation
-d_fmt "%A %d %b %Y"
+d_fmt "%-d//%-m//%y"
%
% Appropriate time representation
-t_fmt "%I:%M:%S %Z"
+t_fmt "%I:%M:%S %p %Z"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm "%I:%M:%S %p %Z"
diff --git a/localedata/locales/bo_CN b/localedata/locales/bo_CN
index 90cbc7807b..9df91a1721 100644
--- a/localedata/locales/bo_CN
+++ b/localedata/locales/bo_CN
@@ -128,6 +128,7 @@ t_fmt_ampm "<U0F46><U0F74><U0F0B><U0F5A><U0F7C><U0F51>/
<U0025><U0070>"
week 7;19971130;1
+first_weekday 2
END LC_TIME
LC_MESSAGES
diff --git a/localedata/locales/br_FR@euro b/localedata/locales/br_FR@euro
index 5ea04787b2..251b50e6d7 100644
--- a/localedata/locales/br_FR@euro
+++ b/localedata/locales/br_FR@euro
@@ -18,7 +18,7 @@ escape_char /
LC_IDENTIFICATION
title "Breton locale for France with Euro"
source "Free Software Foundation, Inc."
-address "http:////www.gnu.org//software//libc//"
+address "https:////www.gnu.org//software//libc//"
email "bug-glibc-locales@gnu.org"
tel ""
fax ""
diff --git a/localedata/locales/brx_IN b/localedata/locales/brx_IN
index d9828c37fb..db775705ca 100644
--- a/localedata/locales/brx_IN
+++ b/localedata/locales/brx_IN
@@ -117,10 +117,10 @@ am_pm "<U092B><U0941><U0902>.";/
d_t_fmt "%A %d %b %Y %I:%M:%S %p %Z"
%
% Appropriate date representation
-d_fmt "%A %d %b %Y"
+d_fmt "%-m//%-d//%y"
%
% Appropriate time representation
-t_fmt "%I:%M:%S %Z"
+t_fmt "%I:%M:%S %p %Z"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm "%I:%M:%S %p %Z"
diff --git a/localedata/locales/bs_BA b/localedata/locales/bs_BA
index 3b18056881..b4460efb0b 100644
--- a/localedata/locales/bs_BA
+++ b/localedata/locales/bs_BA
@@ -160,7 +160,7 @@ lang_lib "bos"
END LC_ADDRESS
LC_TELEPHONE
-% FIXME (tel_int-fmt copied from en_DK)
+% FIXME (tel_int_fmt copied from en_DK)
tel_int_fmt "+%c %a %l"
int_prefix "387"
int_select "00"
diff --git a/localedata/locales/byn_ER b/localedata/locales/byn_ER
index 53ed9597de..608378d205 100644
--- a/localedata/locales/byn_ER
+++ b/localedata/locales/byn_ER
@@ -196,11 +196,11 @@ d_fmt "%d//%m//%Y"
%
% Appropriate time representation (%X)
%
-t_fmt "%l:%M:%S"
+t_fmt "%l:%M:%S %p"
%
% Appropriate AM/PM time representation (%r)
%
-t_fmt_ampm "%X %p"
+t_fmt_ampm "%l:%M:%S %p"
%
% Appropriate date and time representation (%c)
% "%Aᡠ%B %e ዮሠ%Y %r %Z
diff --git a/localedata/locales/ca_ES b/localedata/locales/ca_ES
index 5d8297823e..0ba74ccf33 100644
--- a/localedata/locales/ca_ES
+++ b/localedata/locales/ca_ES
@@ -77,9 +77,9 @@ positive_sign ""
negative_sign "-"
int_frac_digits 2
frac_digits 2
-p_cs_precedes 1
+p_cs_precedes 0
p_sep_by_space 1
-n_cs_precedes 1
+n_cs_precedes 0
n_sep_by_space 1
p_sign_posn 1
n_sign_posn 1
@@ -88,7 +88,7 @@ END LC_MONETARY
LC_NUMERIC
decimal_point ","
thousands_sep "."
-grouping 0;0
+grouping 3;3
END LC_NUMERIC
LC_TIME
diff --git a/localedata/locales/ca_ES@euro b/localedata/locales/ca_ES@euro
index 6541248eff..a6daa602ab 100644
--- a/localedata/locales/ca_ES@euro
+++ b/localedata/locales/ca_ES@euro
@@ -20,7 +20,7 @@ escape_char /
LC_IDENTIFICATION
title "Catalan locale for Catalonia with Euro"
source "Free Software Foundation, Inc."
-address "http:////www.gnu.org//software//libc//"
+address "https:////www.gnu.org//software//libc//"
contact ""
email "bug-glibc-locales@gnu.org"
tel ""
diff --git a/localedata/locales/chr_US b/localedata/locales/chr_US
index 290d1b2455..86868c02e9 100644
--- a/localedata/locales/chr_US
+++ b/localedata/locales/chr_US
@@ -113,7 +113,7 @@ END LC_NAME
LC_ADDRESS
postal_fmt "%a%N%f%N%d%N%b%N%h %s %e %r%N%T, %S %z%N%c%N"
-country_name "<U13A0><U13B9><U13F0><U13DF>"
+country_name "<U13CC><U13CA><U0020><U13A2><U13F3><U13BE><U13B5><U13CD><U13D4><U13C5><U0020><U13CD><U13A6><U13DA><U13A9>"
country_post "USA"
country_ab2 "US"
country_ab3 "USA"
diff --git a/localedata/locales/cmn_TW b/localedata/locales/cmn_TW
index cca7cc19af..9d9aca0f9e 100644
--- a/localedata/locales/cmn_TW
+++ b/localedata/locales/cmn_TW
@@ -119,6 +119,10 @@ am_pm "<U4E0A><U5348>";/
t_fmt_ampm "%p %I<U9EDE>%M<U5206>%S<U79D2>"
% %Y年 %b %-d號 %A %H:%M:%S %Z
date_fmt "%Y<U5E74> %b %-d<U865F> %A %H:%M:%S %Z"
+
+era "+:2:1913//01//01:+*:<U6C11><U570B>:%EC%Ey<U5E74>";/
+ "+:1:1912//01//01:1912//12//31:<U6C11><U570B>:%EC<U5143><U5E74>";/
+ "+:1:1911//12//31:-*:<U6C11><U524D>:%EC%Ey<U5E74>"
END LC_TIME
LC_NUMERIC
diff --git a/localedata/locales/crh_UA b/localedata/locales/crh_UA
index b2ac8c66d7..86281a27db 100644
--- a/localedata/locales/crh_UA
+++ b/localedata/locales/crh_UA
@@ -198,8 +198,8 @@ country_ab2 "UA"
country_ab3 "UKR"
country_num 804
country_car "UA"
-% Qırımtatarca
-lang_name "Q<U0131>r<U0131>mtatarca"
+% qırımtatar tili
+lang_name "q<U0131>r<U0131>mtatar tili"
lang_term "crh"
lang_lib "crh"
END LC_ADDRESS
diff --git a/localedata/locales/cs_CZ b/localedata/locales/cs_CZ
index 41fbd2be93..d629a21750 100644
--- a/localedata/locales/cs_CZ
+++ b/localedata/locales/cs_CZ
@@ -111,7 +111,7 @@ escape_char /
LC_IDENTIFICATION
title "Czech locale for the Czech Republic"
source "Free Software Foundation, Inc."
-address "http:////www.gnu.org//software//libc//"
+address "https:////www.gnu.org//software//libc//"
contact ""
email "bug-glibc-locales@gnu.org"
tel ""
@@ -367,7 +367,7 @@ d_fmt "%-d.%-m.%Y"
t_fmt "%H:%M:%S"
-t_fmt_ampm "%I:%M:%S"
+t_fmt_ampm ""
am_pm "";""
diff --git a/localedata/locales/csb_PL b/localedata/locales/csb_PL
index c8572f8fc5..662dcefa15 100644
--- a/localedata/locales/csb_PL
+++ b/localedata/locales/csb_PL
@@ -210,6 +210,7 @@ END LC_NAME
LC_ADDRESS
postal_fmt "%f%N%a%N%d%N%b%N%s %h %e %r%N%z %T%N%c%N"
+country_name "P<U00F2>lsk<U00F4>"
country_ab2 "PL"
country_ab3 "POL"
country_num 616
diff --git a/localedata/locales/de_BE@euro b/localedata/locales/de_BE@euro
index f25ebc1473..eb1466fdea 100644
--- a/localedata/locales/de_BE@euro
+++ b/localedata/locales/de_BE@euro
@@ -18,7 +18,7 @@ escape_char /
LC_IDENTIFICATION
title "German locale for Belgium with Euro"
source "Free Software Foundation, Inc."
-address "http:////www.gnu.org//software//libc//"
+address "https:////www.gnu.org//software//libc//"
contact ""
email "bug-glibc-locales@gnu.org"
tel ""
diff --git a/localedata/locales/de_CH b/localedata/locales/de_CH
index 2556488b92..2603bf18be 100644
--- a/localedata/locales/de_CH
+++ b/localedata/locales/de_CH
@@ -65,7 +65,7 @@ LC_MONETARY
int_curr_symbol "CHF "
currency_symbol "CHF"
mon_decimal_point "."
-mon_thousands_sep "'"
+mon_thousands_sep "<U2019>"
mon_grouping 3;3
positive_sign ""
negative_sign "-"
@@ -81,7 +81,7 @@ END LC_MONETARY
LC_NUMERIC
decimal_point "."
-thousands_sep "'"
+thousands_sep "<U2019>"
grouping 3;3
END LC_NUMERIC
diff --git a/localedata/locales/de_DE b/localedata/locales/de_DE
index eaa9f7ff8e..c7f06555dc 100644
--- a/localedata/locales/de_DE
+++ b/localedata/locales/de_DE
@@ -14,7 +14,7 @@ escape_char /
LC_IDENTIFICATION
title "German locale for Germany"
source "Free Software Foundation, Inc."
-address "http:////www.gnu.org//software//libc//"
+address "https:////www.gnu.org//software//libc//"
contact ""
email "bug-glibc-locales@gnu.org"
tel ""
diff --git a/localedata/locales/de_DE@euro b/localedata/locales/de_DE@euro
index 63a3ec9538..156caf2641 100644
--- a/localedata/locales/de_DE@euro
+++ b/localedata/locales/de_DE@euro
@@ -14,7 +14,7 @@ escape_char /
LC_IDENTIFICATION
title "German locale for Germany with Euro"
source "Free Software Foundation, Inc."
-address "http:////www.gnu.org//software//libc//"
+address "https:////www.gnu.org//software//libc//"
contact ""
email "bug-glibc-locales@gnu.org"
tel ""
diff --git a/localedata/locales/de_LU@euro b/localedata/locales/de_LU@euro
index 6b7548b9a9..419bb6691b 100644
--- a/localedata/locales/de_LU@euro
+++ b/localedata/locales/de_LU@euro
@@ -18,7 +18,7 @@ escape_char /
LC_IDENTIFICATION
title "German locale for Luxemburg with Euro"
source "Free Software Foundation, Inc."
-address "http:////www.gnu.org//software//libc//"
+address "https:////www.gnu.org//software//libc//"
contact ""
email "bug-glibc-locales@gnu.org"
tel ""
diff --git a/localedata/locales/doi_IN b/localedata/locales/doi_IN
index 0428ae50a9..1ff2a523aa 100644
--- a/localedata/locales/doi_IN
+++ b/localedata/locales/doi_IN
@@ -116,10 +116,10 @@ am_pm "<U0938><U091E><U0902>";/
d_t_fmt "%A %d %b %Y %I:%M:%S %p %Z"
%
% Appropriate date representation
-d_fmt "%A %d %b %Y"
+d_fmt "%-d//%-m//%y"
%
% Appropriate time representation
-t_fmt "%I:%M:%S %Z"
+t_fmt "%I:%M:%S %p %Z"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm "%I:%M:%S %p %Z"
@@ -156,6 +156,7 @@ END LC_NAME
LC_ADDRESS
postal_fmt "%z%c%T%s%b%e%r"
+country_name "<U092D><U093E><U0930><U0924>"
country_ab2 "IN"
country_ab3 "IND"
country_num 356
diff --git a/localedata/locales/dv_MV b/localedata/locales/dv_MV
index 0d7842f39f..ab78fa5ce3 100644
--- a/localedata/locales/dv_MV
+++ b/localedata/locales/dv_MV
@@ -182,9 +182,8 @@ country_ab2 "MV"
country_ab3 "MDV"
country_num 462
country_car "MV"
-% lang_name FIXME
-% Cannot represent Dhivehi in Thaana script
-% http://en.wikipedia.org/wiki/Maldivian_language
+% Þ‹Þ¨ÞˆÞ¬Þ€Þ¨
+lang_name "<U078B><U07A8><U0788><U07AC><U0780><U07A8>"
lang_ab "dv"
lang_term "div"
lang_lib "div"
diff --git a/localedata/locales/el_GR@euro b/localedata/locales/el_GR@euro
index c07d633ac1..3854d0582a 100644
--- a/localedata/locales/el_GR@euro
+++ b/localedata/locales/el_GR@euro
@@ -11,7 +11,7 @@ escape_char /
LC_IDENTIFICATION
title "Greek locale for Greece with Euro"
source "Free Software Foundation, Inc."
-address "http:////www.gnu.org//software//libc//"
+address "https:////www.gnu.org//software//libc//"
contact ""
email "bug-glibc-locales@gnu.org"
tel ""
diff --git a/localedata/locales/en_AG b/localedata/locales/en_AG
index f8cda866e0..0e63580f48 100644
--- a/localedata/locales/en_AG
+++ b/localedata/locales/en_AG
@@ -14,7 +14,7 @@ escape_char /
LC_IDENTIFICATION
title "English language locale for Antigua and Barbuda"
source "Free Software Foundation, Inc."
-address "http:////www.gnu.org//software//libc//"
+address "https:////www.gnu.org//software//libc//"
contact ""
email "bug-glibc-locales@gnu.org"
tel ""
diff --git a/localedata/locales/en_HK b/localedata/locales/en_HK
index 2caf8dec56..547c0a10d6 100644
--- a/localedata/locales/en_HK
+++ b/localedata/locales/en_HK
@@ -127,10 +127,10 @@ d_t_fmt "%A, %B %d, %Y %p%I:%M:%S %Z"
d_fmt "%A, %B %d, %Y"
%
% Appropriate time representation
-t_fmt "%I:%M:%S %Z"
+t_fmt "%I:%M:%S %p %Z"
%
% Appropriate 12 h time representation (%r)
-t_fmt_ampm "%p%I:%M:%S %Z"
+t_fmt_ampm "%I:%M:%S %p %Z"
%
week 7;19971130;1
END LC_TIME
diff --git a/localedata/locales/en_IE b/localedata/locales/en_IE
index 5138e2ac5a..09c42c7f6a 100644
--- a/localedata/locales/en_IE
+++ b/localedata/locales/en_IE
@@ -112,6 +112,7 @@ d_fmt "%d//%m//%y"
t_fmt "%T"
am_pm "";""
t_fmt_ampm ""
+first_weekday 2
week 7;19971130;4
END LC_TIME
diff --git a/localedata/locales/en_IE@euro b/localedata/locales/en_IE@euro
index 9bbc174b3b..1c68aa2611 100644
--- a/localedata/locales/en_IE@euro
+++ b/localedata/locales/en_IE@euro
@@ -18,7 +18,7 @@ escape_char /
LC_IDENTIFICATION
title "English locale for Ireland with Euro"
source "Free Software Foundation, Inc."
-address "http:////www.gnu.org//software//libc//"
+address "https:////www.gnu.org//software//libc//"
contact ""
email "bug-glibc-locales@gnu.org"
tel ""
diff --git a/localedata/locales/en_IL b/localedata/locales/en_IL
index 0d27a7631b..b28640c044 100644
--- a/localedata/locales/en_IL
+++ b/localedata/locales/en_IL
@@ -14,7 +14,7 @@ escape_char /
LC_IDENTIFICATION
title "English locale for Israel"
source "Free Software Foundation, Inc."
-address "http:////www.gnu.org//software//libc//"
+address "https:////www.gnu.org//software//libc//"
contact ""
email "bug-glibc-locales@gnu.org"
tel ""
diff --git a/localedata/locales/en_IN b/localedata/locales/en_IN
index c8afec9ec0..e932931f5d 100644
--- a/localedata/locales/en_IN
+++ b/localedata/locales/en_IN
@@ -104,11 +104,11 @@ am_pm "AM";"PM"
% Appropriate date and time representation
d_t_fmt "%A %d %B %Y %I:%M:%S %p %Z"
%
-% Appropriate date representation
-d_fmt "%A %d %B %Y"
+% Appropriate date representation (%x)
+d_fmt "%d//%m//%y"
%
% Appropriate time representation
-t_fmt "%I:%M:%S %Z"
+t_fmt "%I:%M:%S %p %Z"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm "%I:%M:%S %p %Z"
diff --git a/localedata/locales/en_PH b/localedata/locales/en_PH
index 074c9a5b22..e73fce98ff 100644
--- a/localedata/locales/en_PH
+++ b/localedata/locales/en_PH
@@ -130,7 +130,7 @@ d_t_fmt "%A, %d %B, %Y %I:%M:%S %p %Z"
d_fmt "%A, %d %B, %Y"
%
% Appropriate time representation
-t_fmt "%I:%M:%S %Z"
+t_fmt "%I:%M:%S %p %Z"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm "%I:%M:%S %p %Z"
diff --git a/localedata/locales/en_US b/localedata/locales/en_US
index 5e2b365659..e71abf5d5c 100644
--- a/localedata/locales/en_US
+++ b/localedata/locales/en_US
@@ -14,7 +14,7 @@ escape_char /
LC_IDENTIFICATION
title "English locale for the USA"
source "Free Software Foundation, Inc."
-address "http:////www.gnu.org//software//libc//"
+address "https:////www.gnu.org//software//libc//"
contact ""
email "bug-glibc-locales@gnu.org"
tel ""
@@ -117,6 +117,9 @@ t_fmt "%r"
% Appropriate AM/PM time representation (%r)
t_fmt_ampm "%I:%M:%S %p"
%
+% Appropriate date and time representation for date(1)
+date_fmt "%a %d %b %Y %r %Z"
+%
% Strings for AM/PM
%
am_pm "AM";"PM"
diff --git a/localedata/locales/eo b/localedata/locales/eo
index 33a81033e2..b2ad575800 100644
--- a/localedata/locales/eo
+++ b/localedata/locales/eo
@@ -206,7 +206,7 @@ END LC_NAME
LC_ADDRESS
postal_fmt "%f%N%a%N%d%N%b%N%s %h %e %r%N%%z %T%N%c%N"
-lang_name "Esperanto"
+lang_name "esperanto"
lang_ab "eo"
lang_term "epo"
END LC_ADDRESS
diff --git a/localedata/locales/es_CR b/localedata/locales/es_CR
index f76a096f99..b01401f99d 100644
--- a/localedata/locales/es_CR
+++ b/localedata/locales/es_CR
@@ -18,7 +18,7 @@ escape_char /
LC_IDENTIFICATION
title "Spanish locale for Costa Rica"
source "Free Software Foundation, Inc."
-address "http:////www.gnu.org//software//libc//"
+address "https:////www.gnu.org//software//libc//"
contact ""
email "bug-glibc-locales@gnu.org"
tel ""
diff --git a/localedata/locales/es_ES@euro b/localedata/locales/es_ES@euro
index 3a9ab628f7..322c035690 100644
--- a/localedata/locales/es_ES@euro
+++ b/localedata/locales/es_ES@euro
@@ -19,7 +19,7 @@ escape_char /
LC_IDENTIFICATION
title "Spanish locale for Spain with Euro"
source "Free Software Foundation, Inc."
-address "http:////www.gnu.org//software//libc//"
+address "https:////www.gnu.org//software//libc//"
contact ""
email "bug-glibc-locales@gnu.org"
tel ""
diff --git a/localedata/locales/es_NI b/localedata/locales/es_NI
index 162dde3f13..b5863317e2 100644
--- a/localedata/locales/es_NI
+++ b/localedata/locales/es_NI
@@ -18,7 +18,7 @@ escape_char /
LC_IDENTIFICATION
title "Spanish locale for Nicaragua"
source "Free Software Foundation, Inc."
-address "http:////www.gnu.org//software//libc//"
+address "https:////www.gnu.org//software//libc//"
contact ""
email "bug-glibc-locales@gnu.org"
tel ""
diff --git a/localedata/locales/es_PR b/localedata/locales/es_PR
index 0f4d363c84..850ee1e5d5 100644
--- a/localedata/locales/es_PR
+++ b/localedata/locales/es_PR
@@ -18,7 +18,7 @@ escape_char /
LC_IDENTIFICATION
title "Spanish locale for Puerto Rico"
source "Free Software Foundation, Inc."
-address "http:////www.gnu.org//software//libc//"
+address "https:////www.gnu.org//software//libc//"
contact ""
email "bug-glibc-locales@gnu.org"
tel ""
diff --git a/localedata/locales/eu_ES@euro b/localedata/locales/eu_ES@euro
index a71c0cc0d5..c4685f0cd2 100644
--- a/localedata/locales/eu_ES@euro
+++ b/localedata/locales/eu_ES@euro
@@ -19,7 +19,7 @@ escape_char /
LC_IDENTIFICATION
title "Basque language locale for Spain with Euro"
source "Free Software Foundation, Inc."
-address "http:////www.gnu.org//software//libc//"
+address "https:////www.gnu.org//software//libc//"
contact ""
email "bug-glibc-locales@gnu.org"
tel ""
diff --git a/localedata/locales/fi_FI@euro b/localedata/locales/fi_FI@euro
index f0590177a9..b9321876e9 100644
--- a/localedata/locales/fi_FI@euro
+++ b/localedata/locales/fi_FI@euro
@@ -19,7 +19,7 @@ escape_char /
LC_IDENTIFICATION
title "Finnish locale for Finland with Euro"
source "Free Software Foundation, Inc."
-address "http:////www.gnu.org//software//libc//"
+address "https:////www.gnu.org//software//libc//"
contact ""
email "bug-glibc-locales@gnu.org"
tel ""
diff --git a/localedata/locales/fr_BE@euro b/localedata/locales/fr_BE@euro
index 5c7b4ef3d6..5b180db684 100644
--- a/localedata/locales/fr_BE@euro
+++ b/localedata/locales/fr_BE@euro
@@ -18,7 +18,7 @@ escape_char /
LC_IDENTIFICATION
title "French locale for Belgium with Euro"
source "Free Software Foundation, Inc."
-address "http:////www.gnu.org//software//libc//"
+address "https:////www.gnu.org//software//libc//"
contact ""
email "bug-glibc-locales@gnu.org"
tel ""
diff --git a/localedata/locales/fr_FR@euro b/localedata/locales/fr_FR@euro
index 6583524672..6ffdab7572 100644
--- a/localedata/locales/fr_FR@euro
+++ b/localedata/locales/fr_FR@euro
@@ -18,7 +18,7 @@ escape_char /
LC_IDENTIFICATION
title "French locale for France with Euro"
source "Free Software Foundation, Inc."
-address "http:////www.gnu.org//software//libc//"
+address "https:////www.gnu.org//software//libc//"
email "bug-glibc-locales@gnu.org"
tel ""
fax ""
diff --git a/localedata/locales/fr_LU@euro b/localedata/locales/fr_LU@euro
index a25df4d6b8..888f808015 100644
--- a/localedata/locales/fr_LU@euro
+++ b/localedata/locales/fr_LU@euro
@@ -18,7 +18,7 @@ escape_char /
LC_IDENTIFICATION
title "French locale for Luxemburg with Euro"
source "Free Software Foundation, Inc."
-address "http:////www.gnu.org//software//libc//"
+address "https:////www.gnu.org//software//libc//"
contact ""
email "bug-glibc-locales@gnu.org"
tel ""
diff --git a/localedata/locales/fy_NL b/localedata/locales/fy_NL
index ba5a700a38..447ee3b6d5 100644
--- a/localedata/locales/fy_NL
+++ b/localedata/locales/fy_NL
@@ -17,7 +17,7 @@ escape_char /
LC_IDENTIFICATION
title "Frisian locale for the Netherlands"
source "Free Software Foundation, Inc."
-address "http:////www.gnu.org//software//libc//"
+address "https:////www.gnu.org//software//libc//"
contact ""
email "bug-glibc-locales@gnu.org"
tel ""
diff --git a/localedata/locales/ga_IE b/localedata/locales/ga_IE
index 782adbaa5c..f0ba1b0e32 100644
--- a/localedata/locales/ga_IE
+++ b/localedata/locales/ga_IE
@@ -119,6 +119,7 @@ d_fmt "%d.%m.%y"
t_fmt "%T"
am_pm "";""
t_fmt_ampm ""
+first_weekday 2
week 7;19971130;4
END LC_TIME
diff --git a/localedata/locales/ga_IE@euro b/localedata/locales/ga_IE@euro
index fbbb4d742b..b6b8e60f3b 100644
--- a/localedata/locales/ga_IE@euro
+++ b/localedata/locales/ga_IE@euro
@@ -18,7 +18,7 @@ escape_char /
LC_IDENTIFICATION
title "Irish locale for Ireland with Euro"
source "Free Software Foundation, Inc."
-address "http:////www.gnu.org//software//libc//"
+address "https:////www.gnu.org//software//libc//"
contact ""
email "bug-glibc-locales@gnu.org"
tel ""
diff --git a/localedata/locales/gez_ER b/localedata/locales/gez_ER
index 351c8e9fc7..261f9da0aa 100644
--- a/localedata/locales/gez_ER
+++ b/localedata/locales/gez_ER
@@ -192,11 +192,11 @@ d_fmt "%d//%m//%Y"
%
% Appropriate time representation (%X)
%
-t_fmt "%l:%M:%S"
+t_fmt "%l:%M:%S<U1361>%p"
%
% Appropriate AM/PM time representation (%r)
%
-t_fmt_ampm "%X<U1361>%p"
+t_fmt_ampm "%l:%M:%S<U1361>%p"
%
% Appropriate date and time representation (%c)
% "%Aá¥%Bá¡%eá¡áˆ˜á‹“áˆá‰µá¡%Yá¡%rá¡%Z"
diff --git a/localedata/locales/gez_ET b/localedata/locales/gez_ET
index ae38783827..bc8e0d392e 100644
--- a/localedata/locales/gez_ET
+++ b/localedata/locales/gez_ET
@@ -193,11 +193,11 @@ d_fmt "%d//%m//%Y"
%
% Appropriate time representation (%X)
%
-t_fmt "%l:%M:%S"
+t_fmt "%l:%M:%S<U1361>%p"
%
% Appropriate AM/PM time representation (%r)
%
-t_fmt_ampm "%X<U1361>%p"
+t_fmt_ampm "%l:%M:%S<U1361>%p"
%
% Appropriate date and time representation (%c)
% "%Aá¥%Bá¡%eá¡áˆ˜á‹“áˆá‰µá¡%Yá¡%rá¡%Z"
diff --git a/localedata/locales/gl_ES@euro b/localedata/locales/gl_ES@euro
index b2ba8acdfc..def9146240 100644
--- a/localedata/locales/gl_ES@euro
+++ b/localedata/locales/gl_ES@euro
@@ -19,7 +19,7 @@ escape_char /
LC_IDENTIFICATION
title "Galician locale for Spain with Euro"
source "Free Software Foundation, Inc."
-address "http:////www.gnu.org//software//libc//"
+address "https:////www.gnu.org//software//libc//"
contact ""
email "bug-glibc-locales@gnu.org"
tel ""
diff --git a/localedata/locales/gu_IN b/localedata/locales/gu_IN
index dd6ec63266..e80d551613 100644
--- a/localedata/locales/gu_IN
+++ b/localedata/locales/gu_IN
@@ -148,10 +148,10 @@ am_pm "<U0AB8><U0AB5><U0ABE><U0AB0><U0AC7>";/
d_t_fmt "%A %d %b %Y %I:%M:%S %p %Z"
%
% Appropriate date representation
-d_fmt "%A %d %b %Y"
+d_fmt "%-d//%-m//%y"
%
% Appropriate time representation
-t_fmt "%I:%M:%S %Z"
+t_fmt "%I:%M:%S %p %Z"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm "%I:%M:%S %p %Z"
diff --git a/localedata/locales/hak_TW b/localedata/locales/hak_TW
index f62937e91b..73b9678ec4 100644
--- a/localedata/locales/hak_TW
+++ b/localedata/locales/hak_TW
@@ -116,6 +116,10 @@ t_fmt_ampm "%p %I<U9EDE>%M<U5206>%S<U79D2>"
% %Yå¹´ %b %eæ—¥ %A %H:%M:%S %Z
date_fmt "%Y<U5E74> %b %e<U65E5> %A %H:%M:%S %Z"
week 7;19971130;1
+
+era "+:2:1913//01//01:+*:<U6C11><U570B>:%EC%Ey<U5E74>";/
+ "+:1:1912//01//01:1912//12//31:<U6C11><U570B>:%EC<U5143><U5E74>";/
+ "+:1:1911//12//31:-*:<U6C11><U524D>:%EC%Ey<U5E74>"
END LC_TIME
LC_NUMERIC
@@ -187,8 +191,8 @@ country_ab3 "TWN"
country_num 158
country_car "RC"
country_isbn 957
-% 漢語客家語
-lang_name "<U6F22><U8A9E><U5BA2><U5BB6><U8A9E>"
+% 客家語
+lang_name "<U5BA2><U5BB6><U8A71>"
lang_term "hak"
lang_lib "hak"
END LC_ADDRESS
diff --git a/localedata/locales/hi_IN b/localedata/locales/hi_IN
index 7091a3200e..a7614fbaa6 100644
--- a/localedata/locales/hi_IN
+++ b/localedata/locales/hi_IN
@@ -164,10 +164,10 @@ am_pm "<U092A><U0942><U0930><U094D><U0935><U093E><U0939><U094D><U0928>";/
d_t_fmt "%A %d %b %Y %I:%M:%S %p %Z"
%
% Appropriate date representation
-d_fmt "%A %d %b %Y"
+d_fmt "%-d//%-m//%y"
%
% Appropriate time representation
-t_fmt "%I:%M:%S %Z"
+t_fmt "%I:%M:%S %p %Z"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm "%I:%M:%S %p %Z"
diff --git a/localedata/locales/hif_FJ b/localedata/locales/hif_FJ
index 5433bb4a2a..bdf2600e41 100644
--- a/localedata/locales/hif_FJ
+++ b/localedata/locales/hif_FJ
@@ -96,13 +96,16 @@ mon "January";/
am_pm "Purvahan";"Aparaahna"
%
% Appropriate date and time representation
-d_t_fmt "%A %d %b %Y %I:%M:%S %Z"
+d_t_fmt "%A %d %b %Y %I:%M:%S %p"
+%
+% Appropriate date and time representation for date(1)
+date_fmt "%A %d %b %Y %I:%M:%S %p %Z"
%
% Appropriate date representation
d_fmt "%A %d %b %Y"
%
% Appropriate time representation
-t_fmt "%I:%M:%S %Z"
+t_fmt "%I:%M:%S %p %Z"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm "%I:%M:%S %p %Z"
@@ -176,7 +179,8 @@ country_car "FJI"
country_num 242
% https://en.wikipedia.org/wiki/ISO_3166-1_numeric
% https://en.wikipedia.org/wiki/Fiji_Hindi
-lang_name "Fiji Baat"
+% फ़िजी बात
+lang_name "<U0939><U093F><U0928><U094D><U0926><U0940>"
% iso-639-1
lang_ab ""
% iso-639-3
diff --git a/localedata/locales/hne_IN b/localedata/locales/hne_IN
index 7abec63630..b708de3356 100644
--- a/localedata/locales/hne_IN
+++ b/localedata/locales/hne_IN
@@ -114,10 +114,10 @@ am_pm "<U092C><U093F><U0939><U093F><U0928><U093F><U092F><U093E><U0901>";/
d_t_fmt "%A %d %b %Y %I:%M:%S %p %Z"
%
% Appropriate date representation
-d_fmt "%A %d %b %Y"
+d_fmt "%-d//%-m//%y"
%
% Appropriate time representation
-t_fmt "%I:%M:%S %Z"
+t_fmt "%I:%M:%S %p %Z"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm "%I:%M:%S %p %Z"
@@ -154,6 +154,7 @@ END LC_NAME
LC_ADDRESS
postal_fmt "%z%c%T%s%b%e%r"
+country_name "<U092D><U093E><U0930><U0924>"
country_ab2 "IN"
country_ab3 "IND"
country_num 356
diff --git a/localedata/locales/i18n_ctype b/localedata/locales/i18n_ctype
index 26400cbff1..269712b60f 100644
--- a/localedata/locales/i18n_ctype
+++ b/localedata/locales/i18n_ctype
@@ -13,10 +13,10 @@ comment_char %
% information, but with different transliterations, can include it
% directly.
-% Generated automatically by gen_unicode_ctype.py for Unicode 11.0.0.
+% Generated automatically by gen_unicode_ctype.py for Unicode 12.1.0.
LC_IDENTIFICATION
-title "Unicode 11.0.0 FDCC-set"
+title "Unicode 12.1.0 FDCC-set"
source "UnicodeData.txt, DerivedCoreProperties.txt"
address ""
contact ""
@@ -25,14 +25,14 @@ tel ""
fax ""
language ""
territory "Earth"
-revision "11.0.0"
-date "2018-06-20"
+revision "12.1.0"
+date "2019-05-08"
category "i18n:2012";LC_CTYPE
END LC_IDENTIFICATION
LC_CTYPE
% The following is the 14652 i18n fdcc-set LC_CTYPE category.
-% It covers Unicode version 11.0.0.
+% It covers Unicode version 12.1.0.
% The character classes and mapping tables were automatically
% generated using the gen_unicode_ctype.py program.
@@ -114,7 +114,8 @@ upper /
<UA766>;<UA768>;<UA76A>;<UA76C>;<UA76E>;<UA779>;<UA77B>;<UA77D>..<UA77E>;/
<UA780>;<UA782>;<UA784>;<UA786>;<UA78B>;<UA78D>;<UA790>;<UA792>;<UA796>;/
<UA798>;<UA79A>;<UA79C>;<UA79E>;<UA7A0>;<UA7A2>;<UA7A4>;<UA7A6>;<UA7A8>;/
- <UA7AA>..<UA7AE>;<UA7B0>..<UA7B4>;<UA7B6>;<UA7B8>;<UFF21>..<UFF3A>;/
+ <UA7AA>..<UA7AE>;<UA7B0>..<UA7B4>;<UA7B6>;<UA7B8>;<UA7BA>;<UA7BC>;/
+ <UA7BE>;<UA7C2>;<UA7C4>..<UA7C6>;<UFF21>..<UFF3A>;/
<U00010400>..<U00010427>;<U000104B0>..<U000104D3>;/
<U00010C80>..<U00010CB2>;<U000118A0>..<U000118BF>;/
<U00016E40>..<U00016E5F>;<U0001D400>..<U0001D419>;/
@@ -214,24 +215,25 @@ lower /
<UA76D>;<UA76F>..<UA778>;<UA77A>;<UA77C>;<UA77F>;<UA781>;<UA783>;<UA785>;/
<UA787>;<UA78C>;<UA78E>;<UA791>;<UA793>..<UA795>;<UA797>;<UA799>;<UA79B>;/
<UA79D>;<UA79F>;<UA7A1>;<UA7A3>;<UA7A5>;<UA7A7>;<UA7A9>;<UA7AF>;<UA7B5>;/
- <UA7B7>;<UA7B9>;<UA7F8>..<UA7FA>;<UAB30>..<UAB5A>;<UAB5C>..<UAB65>;/
- <UAB70>..<UABBF>;<UFB00>..<UFB06>;<UFB13>..<UFB17>;<UFF41>..<UFF5A>;/
- <U00010428>..<U0001044F>;<U000104D8>..<U000104FB>;/
- <U00010CC0>..<U00010CF2>;<U000118C0>..<U000118DF>;/
- <U00016E60>..<U00016E7F>;<U0001D41A>..<U0001D433>;/
- <U0001D44E>..<U0001D454>;<U0001D456>..<U0001D467>;/
- <U0001D482>..<U0001D49B>;<U0001D4B6>..<U0001D4B9>;<U0001D4BB>;/
- <U0001D4BD>..<U0001D4C3>;<U0001D4C5>..<U0001D4CF>;/
- <U0001D4EA>..<U0001D503>;<U0001D51E>..<U0001D537>;/
- <U0001D552>..<U0001D56B>;<U0001D586>..<U0001D59F>;/
- <U0001D5BA>..<U0001D5D3>;<U0001D5EE>..<U0001D607>;/
- <U0001D622>..<U0001D63B>;<U0001D656>..<U0001D66F>;/
- <U0001D68A>..<U0001D6A5>;<U0001D6C2>..<U0001D6DA>;/
- <U0001D6DC>..<U0001D6E1>;<U0001D6FC>..<U0001D714>;/
- <U0001D716>..<U0001D71B>;<U0001D736>..<U0001D74E>;/
- <U0001D750>..<U0001D755>;<U0001D770>..<U0001D788>;/
- <U0001D78A>..<U0001D78F>;<U0001D7AA>..<U0001D7C2>;/
- <U0001D7C4>..<U0001D7C9>;<U0001D7CB>;<U0001E922>..<U0001E943>
+ <UA7B7>;<UA7B9>;<UA7BB>;<UA7BD>;<UA7BF>;<UA7C3>;<UA7F8>..<UA7FA>;/
+ <UAB30>..<UAB5A>;<UAB5C>..<UAB67>;<UAB70>..<UABBF>;<UFB00>..<UFB06>;/
+ <UFB13>..<UFB17>;<UFF41>..<UFF5A>;<U00010428>..<U0001044F>;/
+ <U000104D8>..<U000104FB>;<U00010CC0>..<U00010CF2>;/
+ <U000118C0>..<U000118DF>;<U00016E60>..<U00016E7F>;/
+ <U0001D41A>..<U0001D433>;<U0001D44E>..<U0001D454>;/
+ <U0001D456>..<U0001D467>;<U0001D482>..<U0001D49B>;/
+ <U0001D4B6>..<U0001D4B9>;<U0001D4BB>;<U0001D4BD>..<U0001D4C3>;/
+ <U0001D4C5>..<U0001D4CF>;<U0001D4EA>..<U0001D503>;/
+ <U0001D51E>..<U0001D537>;<U0001D552>..<U0001D56B>;/
+ <U0001D586>..<U0001D59F>;<U0001D5BA>..<U0001D5D3>;/
+ <U0001D5EE>..<U0001D607>;<U0001D622>..<U0001D63B>;/
+ <U0001D656>..<U0001D66F>;<U0001D68A>..<U0001D6A5>;/
+ <U0001D6C2>..<U0001D6DA>;<U0001D6DC>..<U0001D6E1>;/
+ <U0001D6FC>..<U0001D714>;<U0001D716>..<U0001D71B>;/
+ <U0001D736>..<U0001D74E>;<U0001D750>..<U0001D755>;/
+ <U0001D770>..<U0001D788>;<U0001D78A>..<U0001D78F>;/
+ <U0001D7AA>..<U0001D7C2>;<U0001D7C4>..<U0001D7C9>;<U0001D7CB>;/
+ <U0001E922>..<U0001E943>
% The "alpha" class of the "i18n" FDCC-set is reflecting
% the recommendations in TR 10176 annex A
@@ -281,61 +283,58 @@ alpha /
<U0D85>..<U0D96>;<U0D9A>..<U0DB1>;<U0DB3>..<U0DBB>;<U0DBD>;/
<U0DC0>..<U0DC6>;<U0DCF>..<U0DD4>;<U0DD6>;<U0DD8>..<U0DDF>;/
<U0DE6>..<U0DEF>;<U0DF2>..<U0DF3>;<U0E01>..<U0E3A>;<U0E40>..<U0E46>;/
- <U0E4D>;<U0E50>..<U0E59>;<U0E81>..<U0E82>;<U0E84>;<U0E87>..<U0E88>;/
- <U0E8A>;<U0E8D>;<U0E94>..<U0E97>;<U0E99>..<U0E9F>;<U0EA1>..<U0EA3>;/
- <U0EA5>;<U0EA7>;<U0EAA>..<U0EAB>;<U0EAD>..<U0EB9>;<U0EBB>..<U0EBD>;/
+ <U0E4D>;<U0E50>..<U0E59>;<U0E81>..<U0E82>;<U0E84>;<U0E86>..<U0E8A>;/
+ <U0E8C>..<U0EA3>;<U0EA5>;<U0EA7>..<U0EB9>;<U0EBB>..<U0EBD>;/
<U0EC0>..<U0EC4>;<U0EC6>;<U0ECD>;<U0ED0>..<U0ED9>;<U0EDC>..<U0EDF>;/
<U0F00>;<U0F20>..<U0F29>;<U0F40>..<U0F47>;<U0F49>..<U0F6C>;/
<U0F71>..<U0F81>;<U0F88>..<U0F97>;<U0F99>..<U0FBC>;<U1000>..<U1036>;/
- <U1038>;<U103B>..<U1049>;<U1050>..<U1062>;<U1065>..<U1068>;/
- <U106E>..<U1086>;<U108E>;<U1090>..<U1099>;<U109C>..<U109D>;/
- <U10A0>..<U10C5>;<U10C7>;<U10CD>;<U10D0>..<U10FA>;<U10FC>..<U1248>;/
- <U124A>..<U124D>;<U1250>..<U1256>;<U1258>;<U125A>..<U125D>;/
- <U1260>..<U1288>;<U128A>..<U128D>;<U1290>..<U12B0>;<U12B2>..<U12B5>;/
- <U12B8>..<U12BE>;<U12C0>;<U12C2>..<U12C5>;<U12C8>..<U12D6>;/
- <U12D8>..<U1310>;<U1312>..<U1315>;<U1318>..<U135A>;<U135F>;/
- <U1380>..<U138F>;<U13A0>..<U13F5>;<U13F8>..<U13FD>;<U1401>..<U166C>;/
- <U166F>..<U167F>;<U1681>..<U169A>;<U16A0>..<U16EA>;<U16EE>..<U16F8>;/
- <U1700>..<U170C>;<U170E>..<U1713>;<U1720>..<U1733>;<U1740>..<U1753>;/
- <U1760>..<U176C>;<U176E>..<U1770>;<U1772>..<U1773>;<U1780>..<U17B3>;/
- <U17B6>..<U17C8>;<U17D7>;<U17DC>;<U17E0>..<U17E9>;<U1810>..<U1819>;/
- <U1820>..<U1878>;<U1880>..<U18AA>;<U18B0>..<U18F5>;<U1900>..<U191E>;/
- <U1920>..<U192B>;<U1930>..<U1938>;<U1946>..<U196D>;<U1970>..<U1974>;/
- <U1980>..<U19AB>;<U19B0>..<U19C9>;<U19D0>..<U19D9>;<U1A00>..<U1A1B>;/
- <U1A20>..<U1A5E>;<U1A61>..<U1A74>;<U1A80>..<U1A89>;<U1A90>..<U1A99>;/
- <U1AA7>;<U1B00>..<U1B33>;<U1B35>..<U1B43>;<U1B45>..<U1B4B>;/
- <U1B50>..<U1B59>;<U1B80>..<U1BA9>;<U1BAC>..<U1BE5>;<U1BE7>..<U1BF1>;/
- <U1C00>..<U1C35>;<U1C40>..<U1C49>;<U1C4D>..<U1C7D>;<U1C80>..<U1C88>;/
- <U1C90>..<U1CBA>;<U1CBD>..<U1CBF>;<U1CE9>..<U1CEC>;<U1CEE>..<U1CF3>;/
- <U1CF5>..<U1CF6>;<U1D00>..<U1DBF>;<U1DE7>..<U1DF4>;<U1E00>..<U1F15>;/
- <U1F18>..<U1F1D>;<U1F20>..<U1F45>;<U1F48>..<U1F4D>;<U1F50>..<U1F57>;/
- <U1F59>;<U1F5B>;<U1F5D>;<U1F5F>..<U1F7D>;<U1F80>..<U1FB4>;/
- <U1FB6>..<U1FBC>;<U1FBE>;<U1FC2>..<U1FC4>;<U1FC6>..<U1FCC>;/
- <U1FD0>..<U1FD3>;<U1FD6>..<U1FDB>;<U1FE0>..<U1FEC>;<U1FF2>..<U1FF4>;/
- <U1FF6>..<U1FFC>;<U2071>;<U207F>;<U2090>..<U209C>;<U2102>;<U2107>;/
- <U210A>..<U2113>;<U2115>;<U2119>..<U211D>;<U2124>;<U2126>;<U2128>;/
- <U212A>..<U212D>;<U212F>..<U2139>;<U213C>..<U213F>;<U2145>..<U2149>;/
- <U214E>;<U2160>..<U2188>;<U24B6>..<U24E9>;<U2C00>..<U2C2E>;/
- <U2C30>..<U2C5E>;<U2C60>..<U2CE4>;<U2CEB>..<U2CEE>;<U2CF2>..<U2CF3>;/
- <U2D00>..<U2D25>;<U2D27>;<U2D2D>;<U2D30>..<U2D67>;<U2D6F>;/
- <U2D80>..<U2D96>;<U2DA0>..<U2DA6>;<U2DA8>..<U2DAE>;<U2DB0>..<U2DB6>;/
- <U2DB8>..<U2DBE>;<U2DC0>..<U2DC6>;<U2DC8>..<U2DCE>;<U2DD0>..<U2DD6>;/
- <U2DD8>..<U2DDE>;<U2DE0>..<U2DFF>;<U2E2F>;<U3005>..<U3007>;/
- <U3021>..<U3029>;<U3031>..<U3035>;<U3038>..<U303C>;<U3041>..<U3096>;/
- <U309D>..<U309F>;<U30A1>..<U30FA>;<U30FC>..<U30FF>;<U3105>..<U312F>;/
- <U3131>..<U318E>;<U31A0>..<U31BA>;<U31F0>..<U31FF>;<U3400>..<U4DB5>;/
- <U4E00>..<U9FEF>;<UA000>..<UA48C>;<UA4D0>..<UA4FD>;<UA500>..<UA60C>;/
- <UA610>..<UA62B>;<UA640>..<UA66E>;<UA674>..<UA67B>;<UA67F>..<UA6EF>;/
- <UA717>..<UA71F>;<UA722>..<UA788>;<UA78B>..<UA7B9>;<UA7F7>..<UA801>;/
- <UA803>..<UA805>;<UA807>..<UA80A>;<UA80C>..<UA827>;<UA840>..<UA873>;/
- <UA880>..<UA8C3>;<UA8C5>;<UA8D0>..<UA8D9>;<UA8F2>..<UA8F7>;<UA8FB>;/
- <UA8FD>..<UA8FE>;<UA900>..<UA92A>;<UA930>..<UA952>;<UA960>..<UA97C>;/
- <UA980>..<UA9B2>;<UA9B4>..<UA9BF>;<UA9CF>..<UA9D9>;<UA9E0>..<UA9E4>;/
- <UA9E6>..<UA9FE>;<UAA00>..<UAA36>;<UAA40>..<UAA4D>;<UAA50>..<UAA59>;/
- <UAA60>..<UAA76>;<UAA7A>;<UAA7E>..<UAABE>;<UAAC0>;<UAAC2>;/
+ <U1038>;<U103B>..<U1049>;<U1050>..<U109D>;<U10A0>..<U10C5>;<U10C7>;/
+ <U10CD>;<U10D0>..<U10FA>;<U10FC>..<U1248>;<U124A>..<U124D>;/
+ <U1250>..<U1256>;<U1258>;<U125A>..<U125D>;<U1260>..<U1288>;/
+ <U128A>..<U128D>;<U1290>..<U12B0>;<U12B2>..<U12B5>;<U12B8>..<U12BE>;/
+ <U12C0>;<U12C2>..<U12C5>;<U12C8>..<U12D6>;<U12D8>..<U1310>;/
+ <U1312>..<U1315>;<U1318>..<U135A>;<U1380>..<U138F>;<U13A0>..<U13F5>;/
+ <U13F8>..<U13FD>;<U1401>..<U166C>;<U166F>..<U167F>;<U1681>..<U169A>;/
+ <U16A0>..<U16EA>;<U16EE>..<U16F8>;<U1700>..<U170C>;<U170E>..<U1713>;/
+ <U1720>..<U1733>;<U1740>..<U1753>;<U1760>..<U176C>;<U176E>..<U1770>;/
+ <U1772>..<U1773>;<U1780>..<U17B3>;<U17B6>..<U17C8>;<U17D7>;<U17DC>;/
+ <U17E0>..<U17E9>;<U1810>..<U1819>;<U1820>..<U1878>;<U1880>..<U18AA>;/
+ <U18B0>..<U18F5>;<U1900>..<U191E>;<U1920>..<U192B>;<U1930>..<U1938>;/
+ <U1946>..<U196D>;<U1970>..<U1974>;<U1980>..<U19AB>;<U19B0>..<U19C9>;/
+ <U19D0>..<U19D9>;<U1A00>..<U1A1B>;<U1A20>..<U1A5E>;<U1A61>..<U1A74>;/
+ <U1A80>..<U1A89>;<U1A90>..<U1A99>;<U1AA7>;<U1B00>..<U1B33>;/
+ <U1B35>..<U1B43>;<U1B45>..<U1B4B>;<U1B50>..<U1B59>;<U1B80>..<U1BA9>;/
+ <U1BAC>..<U1BE5>;<U1BE7>..<U1BF1>;<U1C00>..<U1C36>;<U1C40>..<U1C49>;/
+ <U1C4D>..<U1C7D>;<U1C80>..<U1C88>;<U1C90>..<U1CBA>;<U1CBD>..<U1CBF>;/
+ <U1CE9>..<U1CEC>;<U1CEE>..<U1CF3>;<U1CF5>..<U1CF6>;<U1CFA>;/
+ <U1D00>..<U1DBF>;<U1DE7>..<U1DF4>;<U1E00>..<U1F15>;<U1F18>..<U1F1D>;/
+ <U1F20>..<U1F45>;<U1F48>..<U1F4D>;<U1F50>..<U1F57>;<U1F59>;<U1F5B>;/
+ <U1F5D>;<U1F5F>..<U1F7D>;<U1F80>..<U1FB4>;<U1FB6>..<U1FBC>;<U1FBE>;/
+ <U1FC2>..<U1FC4>;<U1FC6>..<U1FCC>;<U1FD0>..<U1FD3>;<U1FD6>..<U1FDB>;/
+ <U1FE0>..<U1FEC>;<U1FF2>..<U1FF4>;<U1FF6>..<U1FFC>;<U2071>;<U207F>;/
+ <U2090>..<U209C>;<U2102>;<U2107>;<U210A>..<U2113>;<U2115>;/
+ <U2119>..<U211D>;<U2124>;<U2126>;<U2128>;<U212A>..<U212D>;/
+ <U212F>..<U2139>;<U213C>..<U213F>;<U2145>..<U2149>;<U214E>;/
+ <U2160>..<U2188>;<U24B6>..<U24E9>;<U2C00>..<U2C2E>;<U2C30>..<U2C5E>;/
+ <U2C60>..<U2CE4>;<U2CEB>..<U2CEE>;<U2CF2>..<U2CF3>;<U2D00>..<U2D25>;/
+ <U2D27>;<U2D2D>;<U2D30>..<U2D67>;<U2D6F>;<U2D80>..<U2D96>;/
+ <U2DA0>..<U2DA6>;<U2DA8>..<U2DAE>;<U2DB0>..<U2DB6>;<U2DB8>..<U2DBE>;/
+ <U2DC0>..<U2DC6>;<U2DC8>..<U2DCE>;<U2DD0>..<U2DD6>;<U2DD8>..<U2DDE>;/
+ <U2DE0>..<U2DFF>;<U2E2F>;<U3005>..<U3007>;<U3021>..<U3029>;/
+ <U3031>..<U3035>;<U3038>..<U303C>;<U3041>..<U3096>;<U309D>..<U309F>;/
+ <U30A1>..<U30FA>;<U30FC>..<U30FF>;<U3105>..<U312F>;<U3131>..<U318E>;/
+ <U31A0>..<U31BA>;<U31F0>..<U31FF>;<U3400>..<U4DB5>;<U4E00>..<U9FEF>;/
+ <UA000>..<UA48C>;<UA4D0>..<UA4FD>;<UA500>..<UA60C>;<UA610>..<UA62B>;/
+ <UA640>..<UA66E>;<UA674>..<UA67B>;<UA67F>..<UA6EF>;<UA717>..<UA71F>;/
+ <UA722>..<UA788>;<UA78B>..<UA7BF>;<UA7C2>..<UA7C6>;<UA7F7>..<UA805>;/
+ <UA807>..<UA827>;<UA840>..<UA873>;<UA880>..<UA8C3>;<UA8C5>;/
+ <UA8D0>..<UA8D9>;<UA8F2>..<UA8F7>;<UA8FB>;<UA8FD>..<UA92A>;/
+ <UA930>..<UA952>;<UA960>..<UA97C>;<UA980>..<UA9B2>;<UA9B4>..<UA9BF>;/
+ <UA9CF>..<UA9D9>;<UA9E0>..<UA9FE>;<UAA00>..<UAA36>;<UAA40>..<UAA4D>;/
+ <UAA50>..<UAA59>;<UAA60>..<UAA76>;<UAA7A>..<UAABE>;<UAAC0>;<UAAC2>;/
<UAADB>..<UAADD>;<UAAE0>..<UAAEF>;<UAAF2>..<UAAF5>;<UAB01>..<UAB06>;/
<UAB09>..<UAB0E>;<UAB11>..<UAB16>;<UAB20>..<UAB26>;<UAB28>..<UAB2E>;/
- <UAB30>..<UAB5A>;<UAB5C>..<UAB65>;<UAB70>..<UABEA>;<UABF0>..<UABF9>;/
+ <UAB30>..<UAB5A>;<UAB5C>..<UAB67>;<UAB70>..<UABEA>;<UABF0>..<UABF9>;/
<UAC00>..<UD7A3>;<UD7B0>..<UD7C6>;<UD7CB>..<UD7FB>;<UF900>..<UFA6D>;/
<UFA70>..<UFAD9>;<UFB00>..<UFB06>;<UFB13>..<UFB17>;<UFB1D>..<UFB28>;/
<UFB2A>..<UFB36>;<UFB38>..<UFB3C>;<UFB3E>;<UFB40>..<UFB41>;/
@@ -372,77 +371,82 @@ alpha /
<U00010C80>..<U00010CB2>;<U00010CC0>..<U00010CF2>;/
<U00010D00>..<U00010D27>;<U00010D30>..<U00010D39>;/
<U00010F00>..<U00010F1C>;<U00010F27>;<U00010F30>..<U00010F45>;/
- <U00011000>..<U00011045>;<U00011066>..<U0001106F>;/
- <U00011082>..<U000110B8>;<U000110D0>..<U000110E8>;/
- <U000110F0>..<U000110F9>;<U00011100>..<U00011132>;/
- <U00011136>..<U0001113F>;<U00011144>..<U00011146>;/
- <U00011150>..<U00011172>;<U00011176>;<U00011180>..<U000111BF>;/
- <U000111C1>..<U000111C4>;<U000111D0>..<U000111DA>;<U000111DC>;/
- <U00011200>..<U00011211>;<U00011213>..<U00011234>;<U00011237>;/
- <U0001123E>;<U00011280>..<U00011286>;<U00011288>;/
- <U0001128A>..<U0001128D>;<U0001128F>..<U0001129D>;/
- <U0001129F>..<U000112A8>;<U000112B0>..<U000112E8>;/
- <U000112F0>..<U000112F9>;<U00011300>..<U00011303>;/
- <U00011305>..<U0001130C>;<U0001130F>..<U00011310>;/
- <U00011313>..<U00011328>;<U0001132A>..<U00011330>;/
- <U00011332>..<U00011333>;<U00011335>..<U00011339>;/
- <U0001133D>..<U00011344>;<U00011347>..<U00011348>;/
- <U0001134B>..<U0001134C>;<U00011350>;<U00011357>;/
- <U0001135D>..<U00011363>;<U00011400>..<U00011441>;/
+ <U00010FE0>..<U00010FF6>;<U00011000>..<U00011045>;/
+ <U00011066>..<U0001106F>;<U00011082>..<U000110B8>;/
+ <U000110D0>..<U000110E8>;<U000110F0>..<U000110F9>;/
+ <U00011100>..<U00011132>;<U00011136>..<U0001113F>;/
+ <U00011144>..<U00011146>;<U00011150>..<U00011172>;<U00011176>;/
+ <U00011180>..<U000111BF>;<U000111C1>..<U000111C4>;/
+ <U000111D0>..<U000111DA>;<U000111DC>;<U00011200>..<U00011211>;/
+ <U00011213>..<U00011234>;<U00011237>;<U0001123E>;/
+ <U00011280>..<U00011286>;<U00011288>;<U0001128A>..<U0001128D>;/
+ <U0001128F>..<U0001129D>;<U0001129F>..<U000112A8>;/
+ <U000112B0>..<U000112E8>;<U000112F0>..<U000112F9>;/
+ <U00011300>..<U00011303>;<U00011305>..<U0001130C>;/
+ <U0001130F>..<U00011310>;<U00011313>..<U00011328>;/
+ <U0001132A>..<U00011330>;<U00011332>..<U00011333>;/
+ <U00011335>..<U00011339>;<U0001133D>..<U00011344>;/
+ <U00011347>..<U00011348>;<U0001134B>..<U0001134C>;<U00011350>;/
+ <U00011357>;<U0001135D>..<U00011363>;<U00011400>..<U00011441>;/
<U00011443>..<U00011445>;<U00011447>..<U0001144A>;/
- <U00011450>..<U00011459>;<U00011480>..<U000114C1>;/
+ <U00011450>..<U00011459>;<U0001145F>;<U00011480>..<U000114C1>;/
<U000114C4>..<U000114C5>;<U000114C7>;<U000114D0>..<U000114D9>;/
<U00011580>..<U000115B5>;<U000115B8>..<U000115BE>;/
<U000115D8>..<U000115DD>;<U00011600>..<U0001163E>;<U00011640>;/
<U00011644>;<U00011650>..<U00011659>;<U00011680>..<U000116B5>;/
- <U000116C0>..<U000116C9>;<U00011700>..<U0001171A>;/
+ <U000116B8>;<U000116C0>..<U000116C9>;<U00011700>..<U0001171A>;/
<U0001171D>..<U0001172A>;<U00011730>..<U00011739>;/
<U00011800>..<U00011838>;<U000118A0>..<U000118E9>;<U000118FF>;/
+ <U000119A0>..<U000119A7>;<U000119AA>..<U000119D7>;/
+ <U000119DA>..<U000119DF>;<U000119E1>;<U000119E3>..<U000119E4>;/
<U00011A00>..<U00011A32>;<U00011A35>..<U00011A3E>;/
- <U00011A50>..<U00011A83>;<U00011A86>..<U00011A97>;<U00011A9D>;/
- <U00011AC0>..<U00011AF8>;<U00011C00>..<U00011C08>;/
- <U00011C0A>..<U00011C36>;<U00011C38>..<U00011C3E>;<U00011C40>;/
- <U00011C50>..<U00011C59>;<U00011C72>..<U00011C8F>;/
- <U00011C92>..<U00011CA7>;<U00011CA9>..<U00011CB6>;/
- <U00011D00>..<U00011D06>;<U00011D08>..<U00011D09>;/
- <U00011D0B>..<U00011D36>;<U00011D3A>;<U00011D3C>..<U00011D3D>;/
- <U00011D3F>..<U00011D41>;<U00011D43>;<U00011D46>..<U00011D47>;/
- <U00011D50>..<U00011D59>;<U00011D60>..<U00011D65>;/
- <U00011D67>..<U00011D68>;<U00011D6A>..<U00011D8E>;/
- <U00011D90>..<U00011D91>;<U00011D93>..<U00011D96>;<U00011D98>;/
- <U00011DA0>..<U00011DA9>;<U00011EE0>..<U00011EF6>;/
- <U00012000>..<U00012399>;<U00012400>..<U0001246E>;/
- <U00012480>..<U00012543>;<U00013000>..<U0001342E>;/
- <U00014400>..<U00014646>;<U00016800>..<U00016A38>;/
- <U00016A40>..<U00016A5E>;<U00016A60>..<U00016A69>;/
- <U00016AD0>..<U00016AED>;<U00016B00>..<U00016B36>;/
- <U00016B40>..<U00016B43>;<U00016B50>..<U00016B59>;/
- <U00016B63>..<U00016B77>;<U00016B7D>..<U00016B8F>;/
- <U00016E40>..<U00016E7F>;<U00016F00>..<U00016F44>;/
- <U00016F50>..<U00016F7E>;<U00016F93>..<U00016F9F>;/
- <U00016FE0>..<U00016FE1>;<U00017000>..<U000187F1>;/
- <U00018800>..<U00018AF2>;<U0001B000>..<U0001B11E>;/
- <U0001B170>..<U0001B2FB>;<U0001BC00>..<U0001BC6A>;/
- <U0001BC70>..<U0001BC7C>;<U0001BC80>..<U0001BC88>;/
- <U0001BC90>..<U0001BC99>;<U0001BC9E>;<U0001D400>..<U0001D454>;/
- <U0001D456>..<U0001D49C>;<U0001D49E>..<U0001D49F>;<U0001D4A2>;/
- <U0001D4A5>..<U0001D4A6>;<U0001D4A9>..<U0001D4AC>;/
- <U0001D4AE>..<U0001D4B9>;<U0001D4BB>;<U0001D4BD>..<U0001D4C3>;/
- <U0001D4C5>..<U0001D505>;<U0001D507>..<U0001D50A>;/
- <U0001D50D>..<U0001D514>;<U0001D516>..<U0001D51C>;/
- <U0001D51E>..<U0001D539>;<U0001D53B>..<U0001D53E>;/
- <U0001D540>..<U0001D544>;<U0001D546>;<U0001D54A>..<U0001D550>;/
- <U0001D552>..<U0001D6A5>;<U0001D6A8>..<U0001D6C0>;/
- <U0001D6C2>..<U0001D6DA>;<U0001D6DC>..<U0001D6FA>;/
- <U0001D6FC>..<U0001D714>;<U0001D716>..<U0001D734>;/
- <U0001D736>..<U0001D74E>;<U0001D750>..<U0001D76E>;/
- <U0001D770>..<U0001D788>;<U0001D78A>..<U0001D7A8>;/
- <U0001D7AA>..<U0001D7C2>;<U0001D7C4>..<U0001D7CB>;/
- <U0001D7CE>..<U0001D7FF>;<U0001E000>..<U0001E006>;/
- <U0001E008>..<U0001E018>;<U0001E01B>..<U0001E021>;/
- <U0001E023>..<U0001E024>;<U0001E026>..<U0001E02A>;/
+ <U00011A50>..<U00011A97>;<U00011A9D>;<U00011AC0>..<U00011AF8>;/
+ <U00011C00>..<U00011C08>;<U00011C0A>..<U00011C36>;/
+ <U00011C38>..<U00011C3E>;<U00011C40>;<U00011C50>..<U00011C59>;/
+ <U00011C72>..<U00011C8F>;<U00011C92>..<U00011CA7>;/
+ <U00011CA9>..<U00011CB6>;<U00011D00>..<U00011D06>;/
+ <U00011D08>..<U00011D09>;<U00011D0B>..<U00011D36>;<U00011D3A>;/
+ <U00011D3C>..<U00011D3D>;<U00011D3F>..<U00011D41>;<U00011D43>;/
+ <U00011D46>..<U00011D47>;<U00011D50>..<U00011D59>;/
+ <U00011D60>..<U00011D65>;<U00011D67>..<U00011D68>;/
+ <U00011D6A>..<U00011D8E>;<U00011D90>..<U00011D91>;/
+ <U00011D93>..<U00011D96>;<U00011D98>;<U00011DA0>..<U00011DA9>;/
+ <U00011EE0>..<U00011EF6>;<U00012000>..<U00012399>;/
+ <U00012400>..<U0001246E>;<U00012480>..<U00012543>;/
+ <U00013000>..<U0001342E>;<U00014400>..<U00014646>;/
+ <U00016800>..<U00016A38>;<U00016A40>..<U00016A5E>;/
+ <U00016A60>..<U00016A69>;<U00016AD0>..<U00016AED>;/
+ <U00016B00>..<U00016B2F>;<U00016B40>..<U00016B43>;/
+ <U00016B50>..<U00016B59>;<U00016B63>..<U00016B77>;/
+ <U00016B7D>..<U00016B8F>;<U00016E40>..<U00016E7F>;/
+ <U00016F00>..<U00016F4A>;<U00016F4F>..<U00016F87>;/
+ <U00016F8F>..<U00016F9F>;<U00016FE0>..<U00016FE1>;<U00016FE3>;/
+ <U00017000>..<U000187F7>;<U00018800>..<U00018AF2>;/
+ <U0001B000>..<U0001B11E>;<U0001B150>..<U0001B152>;/
+ <U0001B164>..<U0001B167>;<U0001B170>..<U0001B2FB>;/
+ <U0001BC00>..<U0001BC6A>;<U0001BC70>..<U0001BC7C>;/
+ <U0001BC80>..<U0001BC88>;<U0001BC90>..<U0001BC99>;<U0001BC9E>;/
+ <U0001D400>..<U0001D454>;<U0001D456>..<U0001D49C>;/
+ <U0001D49E>..<U0001D49F>;<U0001D4A2>;<U0001D4A5>..<U0001D4A6>;/
+ <U0001D4A9>..<U0001D4AC>;<U0001D4AE>..<U0001D4B9>;<U0001D4BB>;/
+ <U0001D4BD>..<U0001D4C3>;<U0001D4C5>..<U0001D505>;/
+ <U0001D507>..<U0001D50A>;<U0001D50D>..<U0001D514>;/
+ <U0001D516>..<U0001D51C>;<U0001D51E>..<U0001D539>;/
+ <U0001D53B>..<U0001D53E>;<U0001D540>..<U0001D544>;<U0001D546>;/
+ <U0001D54A>..<U0001D550>;<U0001D552>..<U0001D6A5>;/
+ <U0001D6A8>..<U0001D6C0>;<U0001D6C2>..<U0001D6DA>;/
+ <U0001D6DC>..<U0001D6FA>;<U0001D6FC>..<U0001D714>;/
+ <U0001D716>..<U0001D734>;<U0001D736>..<U0001D74E>;/
+ <U0001D750>..<U0001D76E>;<U0001D770>..<U0001D788>;/
+ <U0001D78A>..<U0001D7A8>;<U0001D7AA>..<U0001D7C2>;/
+ <U0001D7C4>..<U0001D7CB>;<U0001D7CE>..<U0001D7FF>;/
+ <U0001E000>..<U0001E006>;<U0001E008>..<U0001E018>;/
+ <U0001E01B>..<U0001E021>;<U0001E023>..<U0001E024>;/
+ <U0001E026>..<U0001E02A>;<U0001E100>..<U0001E12C>;/
+ <U0001E137>..<U0001E13D>;<U0001E140>..<U0001E149>;<U0001E14E>;/
+ <U0001E2C0>..<U0001E2EB>;<U0001E2F0>..<U0001E2F9>;/
<U0001E800>..<U0001E8C4>;<U0001E900>..<U0001E943>;<U0001E947>;/
- <U0001E950>..<U0001E959>;<U0001EE00>..<U0001EE03>;/
+ <U0001E94B>;<U0001E950>..<U0001E959>;<U0001EE00>..<U0001EE03>;/
<U0001EE05>..<U0001EE1F>;<U0001EE21>..<U0001EE22>;<U0001EE24>;/
<U0001EE27>;<U0001EE29>..<U0001EE32>;<U0001EE34>..<U0001EE37>;/
<U0001EE39>;<U0001EE3B>;<U0001EE42>;<U0001EE47>;<U0001EE49>;<U0001EE4B>;/
@@ -494,51 +498,48 @@ punct /
<U09F2>..<U09FB>;<U09FD>..<U09FE>;<U0A3C>;<U0A4D>;<U0A76>;<U0ABC>;/
<U0ACD>;<U0AF0>..<U0AF1>;<U0AFD>..<U0AFF>;<U0B3C>;<U0B4D>;<U0B70>;/
<U0B72>..<U0B77>;<U0BCD>;<U0BF0>..<U0BFA>;<U0C04>;<U0C4D>;/
- <U0C78>..<U0C7F>;<U0C84>;<U0CBC>;<U0CCD>;<U0D3B>..<U0D3C>;<U0D4D>;/
+ <U0C77>..<U0C7F>;<U0C84>;<U0CBC>;<U0CCD>;<U0D3B>..<U0D3C>;<U0D4D>;/
<U0D4F>;<U0D58>..<U0D5E>;<U0D70>..<U0D79>;<U0DCA>;<U0DF4>;<U0E3F>;/
- <U0E47>..<U0E4C>;<U0E4E>..<U0E4F>;<U0E5A>..<U0E5B>;<U0EC8>..<U0ECC>;/
- <U0F01>..<U0F1F>;<U0F2A>..<U0F3F>;<U0F82>..<U0F87>;<U0FBE>..<U0FCC>;/
- <U0FCE>..<U0FDA>;<U1037>;<U1039>..<U103A>;<U104A>..<U104F>;/
- <U1063>..<U1064>;<U1069>..<U106D>;<U1087>..<U108D>;<U108F>;/
- <U109A>..<U109B>;<U109E>..<U109F>;<U10FB>;<U135D>..<U135E>;/
- <U1360>..<U137C>;<U1390>..<U1399>;<U1400>;<U166D>..<U166E>;/
- <U169B>..<U169C>;<U16EB>..<U16ED>;<U1714>;<U1734>..<U1736>;/
- <U17B4>..<U17B5>;<U17C9>..<U17D6>;<U17D8>..<U17DB>;<U17DD>;/
- <U17F0>..<U17F9>;<U1800>..<U180E>;<U1939>..<U193B>;<U1940>;/
- <U1944>..<U1945>;<U19DA>;<U19DE>..<U19FF>;<U1A1E>..<U1A1F>;<U1A60>;/
- <U1A75>..<U1A7C>;<U1A7F>;<U1AA0>..<U1AA6>;<U1AA8>..<U1AAD>;/
- <U1AB0>..<U1ABE>;<U1B34>;<U1B44>;<U1B5A>..<U1B7C>;<U1BAA>..<U1BAB>;/
- <U1BE6>;<U1BF2>..<U1BF3>;<U1BFC>..<U1BFF>;<U1C36>..<U1C37>;/
- <U1C3B>..<U1C3F>;<U1C7E>..<U1C7F>;<U1CC0>..<U1CC7>;<U1CD0>..<U1CE8>;/
- <U1CED>;<U1CF4>;<U1CF7>..<U1CF9>;<U1DC0>..<U1DE6>;<U1DF5>..<U1DF9>;/
- <U1DFB>..<U1DFF>;<U1FBD>;<U1FBF>..<U1FC1>;<U1FCD>..<U1FCF>;/
- <U1FDD>..<U1FDF>;<U1FED>..<U1FEF>;<U1FFD>..<U1FFE>;<U2007>;/
- <U200B>..<U2027>;<U202A>..<U205E>;<U2060>..<U2064>;<U2066>..<U2070>;/
- <U2074>..<U207E>;<U2080>..<U208E>;<U20A0>..<U20BF>;<U20D0>..<U20F0>;/
- <U2100>..<U2101>;<U2103>..<U2106>;<U2108>..<U2109>;<U2114>;/
- <U2116>..<U2118>;<U211E>..<U2123>;<U2125>;<U2127>;<U2129>;<U212E>;/
- <U213A>..<U213B>;<U2140>..<U2144>;<U214A>..<U214D>;<U214F>..<U215F>;/
- <U2189>..<U218B>;<U2190>..<U2426>;<U2440>..<U244A>;<U2460>..<U24B5>;/
- <U24EA>..<U2B73>;<U2B76>..<U2B95>;<U2B98>..<U2BC8>;<U2BCA>..<U2BFE>;/
- <U2CE5>..<U2CEA>;<U2CEF>..<U2CF1>;<U2CF9>..<U2CFF>;<U2D70>;<U2D7F>;/
- <U2E00>..<U2E2E>;<U2E30>..<U2E4E>;<U2E80>..<U2E99>;<U2E9B>..<U2EF3>;/
- <U2F00>..<U2FD5>;<U2FF0>..<U2FFB>;<U3001>..<U3004>;<U3008>..<U3020>;/
- <U302A>..<U3030>;<U3036>..<U3037>;<U303D>..<U303F>;<U3099>..<U309C>;/
- <U30A0>;<U30FB>;<U3190>..<U319F>;<U31C0>..<U31E3>;<U3200>..<U321E>;/
- <U3220>..<U32FE>;<U3300>..<U33FF>;<U4DC0>..<U4DFF>;<UA490>..<UA4C6>;/
+ <U0E47>..<U0E4C>;<U0E4E>..<U0E4F>;<U0E5A>..<U0E5B>;<U0EBA>;/
+ <U0EC8>..<U0ECC>;<U0F01>..<U0F1F>;<U0F2A>..<U0F3F>;<U0F82>..<U0F87>;/
+ <U0FBE>..<U0FCC>;<U0FCE>..<U0FDA>;<U1037>;<U1039>..<U103A>;/
+ <U104A>..<U104F>;<U109E>..<U109F>;<U10FB>;<U135D>..<U137C>;/
+ <U1390>..<U1399>;<U1400>;<U166D>..<U166E>;<U169B>..<U169C>;/
+ <U16EB>..<U16ED>;<U1714>;<U1734>..<U1736>;<U17B4>..<U17B5>;/
+ <U17C9>..<U17D6>;<U17D8>..<U17DB>;<U17DD>;<U17F0>..<U17F9>;/
+ <U1800>..<U180E>;<U1939>..<U193B>;<U1940>;<U1944>..<U1945>;<U19DA>;/
+ <U19DE>..<U19FF>;<U1A1E>..<U1A1F>;<U1A60>;<U1A75>..<U1A7C>;<U1A7F>;/
+ <U1AA0>..<U1AA6>;<U1AA8>..<U1AAD>;<U1AB0>..<U1ABE>;<U1B34>;<U1B44>;/
+ <U1B5A>..<U1B7C>;<U1BAA>..<U1BAB>;<U1BE6>;<U1BF2>..<U1BF3>;/
+ <U1BFC>..<U1BFF>;<U1C37>;<U1C3B>..<U1C3F>;<U1C7E>..<U1C7F>;/
+ <U1CC0>..<U1CC7>;<U1CD0>..<U1CE8>;<U1CED>;<U1CF4>;<U1CF7>..<U1CF9>;/
+ <U1DC0>..<U1DE6>;<U1DF5>..<U1DF9>;<U1DFB>..<U1DFF>;<U1FBD>;/
+ <U1FBF>..<U1FC1>;<U1FCD>..<U1FCF>;<U1FDD>..<U1FDF>;<U1FED>..<U1FEF>;/
+ <U1FFD>..<U1FFE>;<U2007>;<U200B>..<U2027>;<U202A>..<U205E>;/
+ <U2060>..<U2064>;<U2066>..<U2070>;<U2074>..<U207E>;<U2080>..<U208E>;/
+ <U20A0>..<U20BF>;<U20D0>..<U20F0>;<U2100>..<U2101>;<U2103>..<U2106>;/
+ <U2108>..<U2109>;<U2114>;<U2116>..<U2118>;<U211E>..<U2123>;<U2125>;/
+ <U2127>;<U2129>;<U212E>;<U213A>..<U213B>;<U2140>..<U2144>;/
+ <U214A>..<U214D>;<U214F>..<U215F>;<U2189>..<U218B>;<U2190>..<U2426>;/
+ <U2440>..<U244A>;<U2460>..<U24B5>;<U24EA>..<U2B73>;<U2B76>..<U2B95>;/
+ <U2B98>..<U2BFF>;<U2CE5>..<U2CEA>;<U2CEF>..<U2CF1>;<U2CF9>..<U2CFF>;/
+ <U2D70>;<U2D7F>;<U2E00>..<U2E2E>;<U2E30>..<U2E4F>;<U2E80>..<U2E99>;/
+ <U2E9B>..<U2EF3>;<U2F00>..<U2FD5>;<U2FF0>..<U2FFB>;<U3001>..<U3004>;/
+ <U3008>..<U3020>;<U302A>..<U3030>;<U3036>..<U3037>;<U303D>..<U303F>;/
+ <U3099>..<U309C>;<U30A0>;<U30FB>;<U3190>..<U319F>;<U31C0>..<U31E3>;/
+ <U3200>..<U321E>;<U3220>..<U33FF>;<U4DC0>..<U4DFF>;<UA490>..<UA4C6>;/
<UA4FE>..<UA4FF>;<UA60D>..<UA60F>;<UA66F>..<UA673>;<UA67C>..<UA67E>;/
<UA6F0>..<UA6F7>;<UA700>..<UA716>;<UA720>..<UA721>;<UA789>..<UA78A>;/
- <UA802>;<UA806>;<UA80B>;<UA828>..<UA82B>;<UA830>..<UA839>;/
- <UA874>..<UA877>;<UA8C4>;<UA8CE>..<UA8CF>;<UA8E0>..<UA8F1>;/
- <UA8F8>..<UA8FA>;<UA8FC>;<UA8FF>;<UA92B>..<UA92F>;<UA953>;<UA95F>;/
- <UA9B3>;<UA9C0>..<UA9CD>;<UA9DE>..<UA9DF>;<UA9E5>;<UAA5C>..<UAA5F>;/
- <UAA77>..<UAA79>;<UAA7B>..<UAA7D>;<UAABF>;<UAAC1>;<UAADE>..<UAADF>;/
- <UAAF0>..<UAAF1>;<UAAF6>;<UAB5B>;<UABEB>..<UABED>;<UE000>..<UF8FF>;/
- <UFB29>;<UFBB2>..<UFBC1>;<UFD3E>..<UFD3F>;<UFDFC>..<UFDFD>;/
- <UFE00>..<UFE19>;<UFE20>..<UFE52>;<UFE54>..<UFE66>;<UFE68>..<UFE6B>;/
- <UFEFF>;<UFF01>..<UFF0F>;<UFF1A>..<UFF20>;<UFF3B>..<UFF40>;/
- <UFF5B>..<UFF65>;<UFFE0>..<UFFE6>;<UFFE8>..<UFFEE>;<UFFF9>..<UFFFD>;/
- <U00010100>..<U00010102>;<U00010107>..<U00010133>;/
+ <UA806>;<UA828>..<UA82B>;<UA830>..<UA839>;<UA874>..<UA877>;<UA8C4>;/
+ <UA8CE>..<UA8CF>;<UA8E0>..<UA8F1>;<UA8F8>..<UA8FA>;<UA8FC>;/
+ <UA92B>..<UA92F>;<UA953>;<UA95F>;<UA9B3>;<UA9C0>..<UA9CD>;/
+ <UA9DE>..<UA9DF>;<UAA5C>..<UAA5F>;<UAA77>..<UAA79>;<UAABF>;<UAAC1>;/
+ <UAADE>..<UAADF>;<UAAF0>..<UAAF1>;<UAAF6>;<UAB5B>;<UABEB>..<UABED>;/
+ <UE000>..<UF8FF>;<UFB29>;<UFBB2>..<UFBC1>;<UFD3E>..<UFD3F>;/
+ <UFDFC>..<UFDFD>;<UFE00>..<UFE19>;<UFE20>..<UFE52>;<UFE54>..<UFE66>;/
+ <UFE68>..<UFE6B>;<UFEFF>;<UFF01>..<UFF0F>;<UFF1A>..<UFF20>;/
+ <UFF3B>..<UFF40>;<UFF5B>..<UFF65>;<UFFE0>..<UFFE6>;<UFFE8>..<UFFEE>;/
+ <UFFF9>..<UFFFD>;<U00010100>..<U00010102>;<U00010107>..<U00010133>;/
<U00010137>..<U0001013F>;<U00010175>..<U0001018E>;/
<U00010190>..<U0001019B>;<U000101A0>;<U000101D0>..<U000101FD>;/
<U000102E0>..<U000102FB>;<U00010320>..<U00010323>;<U0001039F>;/
@@ -567,44 +568,48 @@ punct /
<U000114C2>..<U000114C3>;<U000114C6>;<U000115BF>..<U000115D7>;/
<U0001163F>;<U00011641>..<U00011643>;<U00011660>..<U0001166C>;/
<U000116B6>..<U000116B7>;<U0001172B>;<U0001173A>..<U0001173F>;/
- <U00011839>..<U0001183B>;<U000118EA>..<U000118F2>;/
- <U00011A33>..<U00011A34>;<U00011A3F>..<U00011A47>;/
+ <U00011839>..<U0001183B>;<U000118EA>..<U000118F2>;<U000119E0>;/
+ <U000119E2>;<U00011A33>..<U00011A34>;<U00011A3F>..<U00011A47>;/
<U00011A98>..<U00011A9C>;<U00011A9E>..<U00011AA2>;<U00011C3F>;/
<U00011C41>..<U00011C45>;<U00011C5A>..<U00011C6C>;/
<U00011C70>..<U00011C71>;<U00011D42>;<U00011D44>..<U00011D45>;/
- <U00011D97>;<U00011EF7>..<U00011EF8>;<U00012470>..<U00012474>;/
+ <U00011D97>;<U00011EF7>..<U00011EF8>;<U00011FC0>..<U00011FF1>;/
+ <U00011FFF>;<U00012470>..<U00012474>;<U00013430>..<U00013438>;/
<U00016A6E>..<U00016A6F>;<U00016AF0>..<U00016AF5>;/
- <U00016B37>..<U00016B3F>;<U00016B44>..<U00016B45>;/
- <U00016B5B>..<U00016B61>;<U00016E80>..<U00016E9A>;/
- <U00016F8F>..<U00016F92>;<U0001BC9C>..<U0001BC9D>;/
- <U0001BC9F>..<U0001BCA3>;<U0001D000>..<U0001D0F5>;/
- <U0001D100>..<U0001D126>;<U0001D129>..<U0001D1E8>;/
- <U0001D200>..<U0001D245>;<U0001D2E0>..<U0001D2F3>;/
- <U0001D300>..<U0001D356>;<U0001D360>..<U0001D378>;<U0001D6C1>;/
- <U0001D6DB>;<U0001D6FB>;<U0001D715>;<U0001D735>;<U0001D74F>;<U0001D76F>;/
- <U0001D789>;<U0001D7A9>;<U0001D7C3>;<U0001D800>..<U0001DA8B>;/
- <U0001DA9B>..<U0001DA9F>;<U0001DAA1>..<U0001DAAF>;/
- <U0001E8C7>..<U0001E8D6>;<U0001E944>..<U0001E946>;/
- <U0001E948>..<U0001E94A>;<U0001E95E>..<U0001E95F>;/
- <U0001EC71>..<U0001ECB4>;<U0001EEF0>..<U0001EEF1>;/
+ <U00016B30>..<U00016B3F>;<U00016B44>..<U00016B45>;/
+ <U00016B5B>..<U00016B61>;<U00016E80>..<U00016E9A>;<U00016FE2>;/
+ <U0001BC9C>..<U0001BC9D>;<U0001BC9F>..<U0001BCA3>;/
+ <U0001D000>..<U0001D0F5>;<U0001D100>..<U0001D126>;/
+ <U0001D129>..<U0001D1E8>;<U0001D200>..<U0001D245>;/
+ <U0001D2E0>..<U0001D2F3>;<U0001D300>..<U0001D356>;/
+ <U0001D360>..<U0001D378>;<U0001D6C1>;<U0001D6DB>;<U0001D6FB>;<U0001D715>;/
+ <U0001D735>;<U0001D74F>;<U0001D76F>;<U0001D789>;<U0001D7A9>;<U0001D7C3>;/
+ <U0001D800>..<U0001DA8B>;<U0001DA9B>..<U0001DA9F>;/
+ <U0001DAA1>..<U0001DAAF>;<U0001E130>..<U0001E136>;<U0001E14F>;/
+ <U0001E2EC>..<U0001E2EF>;<U0001E2FF>;<U0001E8C7>..<U0001E8D6>;/
+ <U0001E944>..<U0001E946>;<U0001E948>..<U0001E94A>;/
+ <U0001E95E>..<U0001E95F>;<U0001EC71>..<U0001ECB4>;/
+ <U0001ED01>..<U0001ED3D>;<U0001EEF0>..<U0001EEF1>;/
<U0001F000>..<U0001F02B>;<U0001F030>..<U0001F093>;/
<U0001F0A0>..<U0001F0AE>;<U0001F0B1>..<U0001F0BF>;/
<U0001F0C1>..<U0001F0CF>;<U0001F0D1>..<U0001F0F5>;/
<U0001F100>..<U0001F10C>;<U0001F110>..<U0001F12F>;/
- <U0001F14A>..<U0001F14F>;<U0001F16A>..<U0001F16B>;/
+ <U0001F14A>..<U0001F14F>;<U0001F16A>..<U0001F16C>;/
<U0001F18A>..<U0001F1AC>;<U0001F1E6>..<U0001F202>;/
<U0001F210>..<U0001F23B>;<U0001F240>..<U0001F248>;/
<U0001F250>..<U0001F251>;<U0001F260>..<U0001F265>;/
- <U0001F300>..<U0001F6D4>;<U0001F6E0>..<U0001F6EC>;/
- <U0001F6F0>..<U0001F6F9>;<U0001F700>..<U0001F773>;/
- <U0001F780>..<U0001F7D8>;<U0001F800>..<U0001F80B>;/
- <U0001F810>..<U0001F847>;<U0001F850>..<U0001F859>;/
- <U0001F860>..<U0001F887>;<U0001F890>..<U0001F8AD>;/
- <U0001F900>..<U0001F90B>;<U0001F910>..<U0001F93E>;/
- <U0001F940>..<U0001F970>;<U0001F973>..<U0001F976>;<U0001F97A>;/
- <U0001F97C>..<U0001F9A2>;<U0001F9B0>..<U0001F9B9>;/
- <U0001F9C0>..<U0001F9C2>;<U0001F9D0>..<U0001F9FF>;/
- <U0001FA60>..<U0001FA6D>;<U000E0001>;<U000E0020>..<U000E007F>;/
+ <U0001F300>..<U0001F6D5>;<U0001F6E0>..<U0001F6EC>;/
+ <U0001F6F0>..<U0001F6FA>;<U0001F700>..<U0001F773>;/
+ <U0001F780>..<U0001F7D8>;<U0001F7E0>..<U0001F7EB>;/
+ <U0001F800>..<U0001F80B>;<U0001F810>..<U0001F847>;/
+ <U0001F850>..<U0001F859>;<U0001F860>..<U0001F887>;/
+ <U0001F890>..<U0001F8AD>;<U0001F900>..<U0001F90B>;/
+ <U0001F90D>..<U0001F971>;<U0001F973>..<U0001F976>;/
+ <U0001F97A>..<U0001F9A2>;<U0001F9A5>..<U0001F9AA>;/
+ <U0001F9AE>..<U0001F9CA>;<U0001F9CD>..<U0001FA53>;/
+ <U0001FA60>..<U0001FA6D>;<U0001FA70>..<U0001FA73>;/
+ <U0001FA78>..<U0001FA7A>;<U0001FA80>..<U0001FA82>;/
+ <U0001FA90>..<U0001FA95>;<U000E0001>;<U000E0020>..<U000E007F>;/
<U000E0100>..<U000E01EF>;<U000F0000>..<U000FFFFD>;/
<U00100000>..<U0010FFFD>
@@ -636,7 +641,7 @@ graph /
<U0BD0>;<U0BD7>;<U0BE6>..<U0BFA>;<U0C00>..<U0C0C>;<U0C0E>..<U0C10>;/
<U0C12>..<U0C28>;<U0C2A>..<U0C39>;<U0C3D>..<U0C44>;<U0C46>..<U0C48>;/
<U0C4A>..<U0C4D>;<U0C55>..<U0C56>;<U0C58>..<U0C5A>;<U0C60>..<U0C63>;/
- <U0C66>..<U0C6F>;<U0C78>..<U0C8C>;<U0C8E>..<U0C90>;<U0C92>..<U0CA8>;/
+ <U0C66>..<U0C6F>;<U0C77>..<U0C8C>;<U0C8E>..<U0C90>;<U0C92>..<U0CA8>;/
<U0CAA>..<U0CB3>;<U0CB5>..<U0CB9>;<U0CBC>..<U0CC4>;<U0CC6>..<U0CC8>;/
<U0CCA>..<U0CCD>;<U0CD5>..<U0CD6>;<U0CDE>;<U0CE0>..<U0CE3>;/
<U0CE6>..<U0CEF>;<U0CF1>..<U0CF2>;<U0D00>..<U0D03>;<U0D05>..<U0D0C>;/
@@ -645,50 +650,48 @@ graph /
<U0D9A>..<U0DB1>;<U0DB3>..<U0DBB>;<U0DBD>;<U0DC0>..<U0DC6>;<U0DCA>;/
<U0DCF>..<U0DD4>;<U0DD6>;<U0DD8>..<U0DDF>;<U0DE6>..<U0DEF>;/
<U0DF2>..<U0DF4>;<U0E01>..<U0E3A>;<U0E3F>..<U0E5B>;<U0E81>..<U0E82>;/
- <U0E84>;<U0E87>..<U0E88>;<U0E8A>;<U0E8D>;<U0E94>..<U0E97>;/
- <U0E99>..<U0E9F>;<U0EA1>..<U0EA3>;<U0EA5>;<U0EA7>;<U0EAA>..<U0EAB>;/
- <U0EAD>..<U0EB9>;<U0EBB>..<U0EBD>;<U0EC0>..<U0EC4>;<U0EC6>;/
- <U0EC8>..<U0ECD>;<U0ED0>..<U0ED9>;<U0EDC>..<U0EDF>;<U0F00>..<U0F47>;/
- <U0F49>..<U0F6C>;<U0F71>..<U0F97>;<U0F99>..<U0FBC>;<U0FBE>..<U0FCC>;/
- <U0FCE>..<U0FDA>;<U1000>..<U10C5>;<U10C7>;<U10CD>;<U10D0>..<U1248>;/
- <U124A>..<U124D>;<U1250>..<U1256>;<U1258>;<U125A>..<U125D>;/
- <U1260>..<U1288>;<U128A>..<U128D>;<U1290>..<U12B0>;<U12B2>..<U12B5>;/
- <U12B8>..<U12BE>;<U12C0>;<U12C2>..<U12C5>;<U12C8>..<U12D6>;/
- <U12D8>..<U1310>;<U1312>..<U1315>;<U1318>..<U135A>;<U135D>..<U137C>;/
- <U1380>..<U1399>;<U13A0>..<U13F5>;<U13F8>..<U13FD>;<U1400>..<U167F>;/
- <U1681>..<U169C>;<U16A0>..<U16F8>;<U1700>..<U170C>;<U170E>..<U1714>;/
- <U1720>..<U1736>;<U1740>..<U1753>;<U1760>..<U176C>;<U176E>..<U1770>;/
- <U1772>..<U1773>;<U1780>..<U17DD>;<U17E0>..<U17E9>;<U17F0>..<U17F9>;/
- <U1800>..<U180E>;<U1810>..<U1819>;<U1820>..<U1878>;<U1880>..<U18AA>;/
- <U18B0>..<U18F5>;<U1900>..<U191E>;<U1920>..<U192B>;<U1930>..<U193B>;/
- <U1940>;<U1944>..<U196D>;<U1970>..<U1974>;<U1980>..<U19AB>;/
- <U19B0>..<U19C9>;<U19D0>..<U19DA>;<U19DE>..<U1A1B>;<U1A1E>..<U1A5E>;/
- <U1A60>..<U1A7C>;<U1A7F>..<U1A89>;<U1A90>..<U1A99>;<U1AA0>..<U1AAD>;/
- <U1AB0>..<U1ABE>;<U1B00>..<U1B4B>;<U1B50>..<U1B7C>;<U1B80>..<U1BF3>;/
- <U1BFC>..<U1C37>;<U1C3B>..<U1C49>;<U1C4D>..<U1C88>;<U1C90>..<U1CBA>;/
- <U1CBD>..<U1CC7>;<U1CD0>..<U1CF9>;<U1D00>..<U1DF9>;<U1DFB>..<U1F15>;/
- <U1F18>..<U1F1D>;<U1F20>..<U1F45>;<U1F48>..<U1F4D>;<U1F50>..<U1F57>;/
- <U1F59>;<U1F5B>;<U1F5D>;<U1F5F>..<U1F7D>;<U1F80>..<U1FB4>;/
- <U1FB6>..<U1FC4>;<U1FC6>..<U1FD3>;<U1FD6>..<U1FDB>;<U1FDD>..<U1FEF>;/
- <U1FF2>..<U1FF4>;<U1FF6>..<U1FFE>;<U2007>;<U200B>..<U2027>;/
- <U202A>..<U205E>;<U2060>..<U2064>;<U2066>..<U2071>;<U2074>..<U208E>;/
- <U2090>..<U209C>;<U20A0>..<U20BF>;<U20D0>..<U20F0>;<U2100>..<U218B>;/
- <U2190>..<U2426>;<U2440>..<U244A>;<U2460>..<U2B73>;<U2B76>..<U2B95>;/
- <U2B98>..<U2BC8>;<U2BCA>..<U2BFE>;<U2C00>..<U2C2E>;<U2C30>..<U2C5E>;/
+ <U0E84>;<U0E86>..<U0E8A>;<U0E8C>..<U0EA3>;<U0EA5>;<U0EA7>..<U0EBD>;/
+ <U0EC0>..<U0EC4>;<U0EC6>;<U0EC8>..<U0ECD>;<U0ED0>..<U0ED9>;/
+ <U0EDC>..<U0EDF>;<U0F00>..<U0F47>;<U0F49>..<U0F6C>;<U0F71>..<U0F97>;/
+ <U0F99>..<U0FBC>;<U0FBE>..<U0FCC>;<U0FCE>..<U0FDA>;<U1000>..<U10C5>;/
+ <U10C7>;<U10CD>;<U10D0>..<U1248>;<U124A>..<U124D>;<U1250>..<U1256>;/
+ <U1258>;<U125A>..<U125D>;<U1260>..<U1288>;<U128A>..<U128D>;/
+ <U1290>..<U12B0>;<U12B2>..<U12B5>;<U12B8>..<U12BE>;<U12C0>;/
+ <U12C2>..<U12C5>;<U12C8>..<U12D6>;<U12D8>..<U1310>;<U1312>..<U1315>;/
+ <U1318>..<U135A>;<U135D>..<U137C>;<U1380>..<U1399>;<U13A0>..<U13F5>;/
+ <U13F8>..<U13FD>;<U1400>..<U167F>;<U1681>..<U169C>;<U16A0>..<U16F8>;/
+ <U1700>..<U170C>;<U170E>..<U1714>;<U1720>..<U1736>;<U1740>..<U1753>;/
+ <U1760>..<U176C>;<U176E>..<U1770>;<U1772>..<U1773>;<U1780>..<U17DD>;/
+ <U17E0>..<U17E9>;<U17F0>..<U17F9>;<U1800>..<U180E>;<U1810>..<U1819>;/
+ <U1820>..<U1878>;<U1880>..<U18AA>;<U18B0>..<U18F5>;<U1900>..<U191E>;/
+ <U1920>..<U192B>;<U1930>..<U193B>;<U1940>;<U1944>..<U196D>;/
+ <U1970>..<U1974>;<U1980>..<U19AB>;<U19B0>..<U19C9>;<U19D0>..<U19DA>;/
+ <U19DE>..<U1A1B>;<U1A1E>..<U1A5E>;<U1A60>..<U1A7C>;<U1A7F>..<U1A89>;/
+ <U1A90>..<U1A99>;<U1AA0>..<U1AAD>;<U1AB0>..<U1ABE>;<U1B00>..<U1B4B>;/
+ <U1B50>..<U1B7C>;<U1B80>..<U1BF3>;<U1BFC>..<U1C37>;<U1C3B>..<U1C49>;/
+ <U1C4D>..<U1C88>;<U1C90>..<U1CBA>;<U1CBD>..<U1CC7>;<U1CD0>..<U1CFA>;/
+ <U1D00>..<U1DF9>;<U1DFB>..<U1F15>;<U1F18>..<U1F1D>;<U1F20>..<U1F45>;/
+ <U1F48>..<U1F4D>;<U1F50>..<U1F57>;<U1F59>;<U1F5B>;<U1F5D>;/
+ <U1F5F>..<U1F7D>;<U1F80>..<U1FB4>;<U1FB6>..<U1FC4>;<U1FC6>..<U1FD3>;/
+ <U1FD6>..<U1FDB>;<U1FDD>..<U1FEF>;<U1FF2>..<U1FF4>;<U1FF6>..<U1FFE>;/
+ <U2007>;<U200B>..<U2027>;<U202A>..<U205E>;<U2060>..<U2064>;/
+ <U2066>..<U2071>;<U2074>..<U208E>;<U2090>..<U209C>;<U20A0>..<U20BF>;/
+ <U20D0>..<U20F0>;<U2100>..<U218B>;<U2190>..<U2426>;<U2440>..<U244A>;/
+ <U2460>..<U2B73>;<U2B76>..<U2B95>;<U2B98>..<U2C2E>;<U2C30>..<U2C5E>;/
<U2C60>..<U2CF3>;<U2CF9>..<U2D25>;<U2D27>;<U2D2D>;<U2D30>..<U2D67>;/
<U2D6F>..<U2D70>;<U2D7F>..<U2D96>;<U2DA0>..<U2DA6>;<U2DA8>..<U2DAE>;/
<U2DB0>..<U2DB6>;<U2DB8>..<U2DBE>;<U2DC0>..<U2DC6>;<U2DC8>..<U2DCE>;/
- <U2DD0>..<U2DD6>;<U2DD8>..<U2DDE>;<U2DE0>..<U2E4E>;<U2E80>..<U2E99>;/
+ <U2DD0>..<U2DD6>;<U2DD8>..<U2DDE>;<U2DE0>..<U2E4F>;<U2E80>..<U2E99>;/
<U2E9B>..<U2EF3>;<U2F00>..<U2FD5>;<U2FF0>..<U2FFB>;<U3001>..<U303F>;/
<U3041>..<U3096>;<U3099>..<U30FF>;<U3105>..<U312F>;<U3131>..<U318E>;/
- <U3190>..<U31BA>;<U31C0>..<U31E3>;<U31F0>..<U321E>;<U3220>..<U32FE>;/
- <U3300>..<U4DB5>;<U4DC0>..<U9FEF>;<UA000>..<UA48C>;<UA490>..<UA4C6>;/
- <UA4D0>..<UA62B>;<UA640>..<UA6F7>;<UA700>..<UA7B9>;<UA7F7>..<UA82B>;/
+ <U3190>..<U31BA>;<U31C0>..<U31E3>;<U31F0>..<U321E>;<U3220>..<U4DB5>;/
+ <U4DC0>..<U9FEF>;<UA000>..<UA48C>;<UA490>..<UA4C6>;<UA4D0>..<UA62B>;/
+ <UA640>..<UA6F7>;<UA700>..<UA7BF>;<UA7C2>..<UA7C6>;<UA7F7>..<UA82B>;/
<UA830>..<UA839>;<UA840>..<UA877>;<UA880>..<UA8C5>;<UA8CE>..<UA8D9>;/
<UA8E0>..<UA953>;<UA95F>..<UA97C>;<UA980>..<UA9CD>;<UA9CF>..<UA9D9>;/
<UA9DE>..<UA9FE>;<UAA00>..<UAA36>;<UAA40>..<UAA4D>;<UAA50>..<UAA59>;/
<UAA5C>..<UAAC2>;<UAADB>..<UAAF6>;<UAB01>..<UAB06>;<UAB09>..<UAB0E>;/
- <UAB11>..<UAB16>;<UAB20>..<UAB26>;<UAB28>..<UAB2E>;<UAB30>..<UAB65>;/
+ <UAB11>..<UAB16>;<UAB20>..<UAB26>;<UAB28>..<UAB2E>;<UAB30>..<UAB67>;/
<UAB70>..<UABED>;<UABF0>..<UABF9>;<UAC00>..<UD7A3>;<UD7B0>..<UD7C6>;/
<UD7CB>..<UD7FB>;<UE000>..<UFA6D>;<UFA70>..<UFAD9>;<UFB00>..<UFB06>;/
<UFB13>..<UFB17>;<UFB1D>..<UFB36>;<UFB38>..<UFB3C>;<UFB3E>;/
@@ -731,32 +734,33 @@ graph /
<U00010CC0>..<U00010CF2>;<U00010CFA>..<U00010D27>;/
<U00010D30>..<U00010D39>;<U00010E60>..<U00010E7E>;/
<U00010F00>..<U00010F27>;<U00010F30>..<U00010F59>;/
- <U00011000>..<U0001104D>;<U00011052>..<U0001106F>;/
- <U0001107F>..<U000110C1>;<U000110CD>;<U000110D0>..<U000110E8>;/
- <U000110F0>..<U000110F9>;<U00011100>..<U00011134>;/
- <U00011136>..<U00011146>;<U00011150>..<U00011176>;/
- <U00011180>..<U000111CD>;<U000111D0>..<U000111DF>;/
- <U000111E1>..<U000111F4>;<U00011200>..<U00011211>;/
- <U00011213>..<U0001123E>;<U00011280>..<U00011286>;<U00011288>;/
- <U0001128A>..<U0001128D>;<U0001128F>..<U0001129D>;/
- <U0001129F>..<U000112A9>;<U000112B0>..<U000112EA>;/
- <U000112F0>..<U000112F9>;<U00011300>..<U00011303>;/
- <U00011305>..<U0001130C>;<U0001130F>..<U00011310>;/
- <U00011313>..<U00011328>;<U0001132A>..<U00011330>;/
- <U00011332>..<U00011333>;<U00011335>..<U00011339>;/
- <U0001133B>..<U00011344>;<U00011347>..<U00011348>;/
- <U0001134B>..<U0001134D>;<U00011350>;<U00011357>;/
- <U0001135D>..<U00011363>;<U00011366>..<U0001136C>;/
+ <U00010FE0>..<U00010FF6>;<U00011000>..<U0001104D>;/
+ <U00011052>..<U0001106F>;<U0001107F>..<U000110C1>;<U000110CD>;/
+ <U000110D0>..<U000110E8>;<U000110F0>..<U000110F9>;/
+ <U00011100>..<U00011134>;<U00011136>..<U00011146>;/
+ <U00011150>..<U00011176>;<U00011180>..<U000111CD>;/
+ <U000111D0>..<U000111DF>;<U000111E1>..<U000111F4>;/
+ <U00011200>..<U00011211>;<U00011213>..<U0001123E>;/
+ <U00011280>..<U00011286>;<U00011288>;<U0001128A>..<U0001128D>;/
+ <U0001128F>..<U0001129D>;<U0001129F>..<U000112A9>;/
+ <U000112B0>..<U000112EA>;<U000112F0>..<U000112F9>;/
+ <U00011300>..<U00011303>;<U00011305>..<U0001130C>;/
+ <U0001130F>..<U00011310>;<U00011313>..<U00011328>;/
+ <U0001132A>..<U00011330>;<U00011332>..<U00011333>;/
+ <U00011335>..<U00011339>;<U0001133B>..<U00011344>;/
+ <U00011347>..<U00011348>;<U0001134B>..<U0001134D>;<U00011350>;/
+ <U00011357>;<U0001135D>..<U00011363>;<U00011366>..<U0001136C>;/
<U00011370>..<U00011374>;<U00011400>..<U00011459>;<U0001145B>;/
- <U0001145D>..<U0001145E>;<U00011480>..<U000114C7>;/
+ <U0001145D>..<U0001145F>;<U00011480>..<U000114C7>;/
<U000114D0>..<U000114D9>;<U00011580>..<U000115B5>;/
<U000115B8>..<U000115DD>;<U00011600>..<U00011644>;/
<U00011650>..<U00011659>;<U00011660>..<U0001166C>;/
- <U00011680>..<U000116B7>;<U000116C0>..<U000116C9>;/
+ <U00011680>..<U000116B8>;<U000116C0>..<U000116C9>;/
<U00011700>..<U0001171A>;<U0001171D>..<U0001172B>;/
<U00011730>..<U0001173F>;<U00011800>..<U0001183B>;/
- <U000118A0>..<U000118F2>;<U000118FF>;<U00011A00>..<U00011A47>;/
- <U00011A50>..<U00011A83>;<U00011A86>..<U00011AA2>;/
+ <U000118A0>..<U000118F2>;<U000118FF>;<U000119A0>..<U000119A7>;/
+ <U000119AA>..<U000119D7>;<U000119DA>..<U000119E4>;/
+ <U00011A00>..<U00011A47>;<U00011A50>..<U00011AA2>;/
<U00011AC0>..<U00011AF8>;<U00011C00>..<U00011C08>;/
<U00011C0A>..<U00011C36>;<U00011C38>..<U00011C45>;/
<U00011C50>..<U00011C6C>;<U00011C70>..<U00011C8F>;/
@@ -767,19 +771,21 @@ graph /
<U00011D60>..<U00011D65>;<U00011D67>..<U00011D68>;/
<U00011D6A>..<U00011D8E>;<U00011D90>..<U00011D91>;/
<U00011D93>..<U00011D98>;<U00011DA0>..<U00011DA9>;/
- <U00011EE0>..<U00011EF8>;<U00012000>..<U00012399>;/
- <U00012400>..<U0001246E>;<U00012470>..<U00012474>;/
- <U00012480>..<U00012543>;<U00013000>..<U0001342E>;/
+ <U00011EE0>..<U00011EF8>;<U00011FC0>..<U00011FF1>;/
+ <U00011FFF>..<U00012399>;<U00012400>..<U0001246E>;/
+ <U00012470>..<U00012474>;<U00012480>..<U00012543>;/
+ <U00013000>..<U0001342E>;<U00013430>..<U00013438>;/
<U00014400>..<U00014646>;<U00016800>..<U00016A38>;/
<U00016A40>..<U00016A5E>;<U00016A60>..<U00016A69>;/
<U00016A6E>..<U00016A6F>;<U00016AD0>..<U00016AED>;/
<U00016AF0>..<U00016AF5>;<U00016B00>..<U00016B45>;/
<U00016B50>..<U00016B59>;<U00016B5B>..<U00016B61>;/
<U00016B63>..<U00016B77>;<U00016B7D>..<U00016B8F>;/
- <U00016E40>..<U00016E9A>;<U00016F00>..<U00016F44>;/
- <U00016F50>..<U00016F7E>;<U00016F8F>..<U00016F9F>;/
- <U00016FE0>..<U00016FE1>;<U00017000>..<U000187F1>;/
+ <U00016E40>..<U00016E9A>;<U00016F00>..<U00016F4A>;/
+ <U00016F4F>..<U00016F87>;<U00016F8F>..<U00016F9F>;/
+ <U00016FE0>..<U00016FE3>;<U00017000>..<U000187F7>;/
<U00018800>..<U00018AF2>;<U0001B000>..<U0001B11E>;/
+ <U0001B150>..<U0001B152>;<U0001B164>..<U0001B167>;/
<U0001B170>..<U0001B2FB>;<U0001BC00>..<U0001BC6A>;/
<U0001BC70>..<U0001BC7C>;<U0001BC80>..<U0001BC88>;/
<U0001BC90>..<U0001BC99>;<U0001BC9C>..<U0001BCA3>;/
@@ -799,9 +805,12 @@ graph /
<U0001DAA1>..<U0001DAAF>;<U0001E000>..<U0001E006>;/
<U0001E008>..<U0001E018>;<U0001E01B>..<U0001E021>;/
<U0001E023>..<U0001E024>;<U0001E026>..<U0001E02A>;/
- <U0001E800>..<U0001E8C4>;<U0001E8C7>..<U0001E8D6>;/
- <U0001E900>..<U0001E94A>;<U0001E950>..<U0001E959>;/
- <U0001E95E>..<U0001E95F>;<U0001EC71>..<U0001ECB4>;/
+ <U0001E100>..<U0001E12C>;<U0001E130>..<U0001E13D>;/
+ <U0001E140>..<U0001E149>;<U0001E14E>..<U0001E14F>;/
+ <U0001E2C0>..<U0001E2F9>;<U0001E2FF>;<U0001E800>..<U0001E8C4>;/
+ <U0001E8C7>..<U0001E8D6>;<U0001E900>..<U0001E94B>;/
+ <U0001E950>..<U0001E959>;<U0001E95E>..<U0001E95F>;/
+ <U0001EC71>..<U0001ECB4>;<U0001ED01>..<U0001ED3D>;/
<U0001EE00>..<U0001EE03>;<U0001EE05>..<U0001EE1F>;/
<U0001EE21>..<U0001EE22>;<U0001EE24>;<U0001EE27>;/
<U0001EE29>..<U0001EE32>;<U0001EE34>..<U0001EE37>;<U0001EE39>;/
@@ -817,19 +826,21 @@ graph /
<U0001F030>..<U0001F093>;<U0001F0A0>..<U0001F0AE>;/
<U0001F0B1>..<U0001F0BF>;<U0001F0C1>..<U0001F0CF>;/
<U0001F0D1>..<U0001F0F5>;<U0001F100>..<U0001F10C>;/
- <U0001F110>..<U0001F16B>;<U0001F170>..<U0001F1AC>;/
+ <U0001F110>..<U0001F16C>;<U0001F170>..<U0001F1AC>;/
<U0001F1E6>..<U0001F202>;<U0001F210>..<U0001F23B>;/
<U0001F240>..<U0001F248>;<U0001F250>..<U0001F251>;/
- <U0001F260>..<U0001F265>;<U0001F300>..<U0001F6D4>;/
- <U0001F6E0>..<U0001F6EC>;<U0001F6F0>..<U0001F6F9>;/
+ <U0001F260>..<U0001F265>;<U0001F300>..<U0001F6D5>;/
+ <U0001F6E0>..<U0001F6EC>;<U0001F6F0>..<U0001F6FA>;/
<U0001F700>..<U0001F773>;<U0001F780>..<U0001F7D8>;/
- <U0001F800>..<U0001F80B>;<U0001F810>..<U0001F847>;/
- <U0001F850>..<U0001F859>;<U0001F860>..<U0001F887>;/
- <U0001F890>..<U0001F8AD>;<U0001F900>..<U0001F90B>;/
- <U0001F910>..<U0001F93E>;<U0001F940>..<U0001F970>;/
- <U0001F973>..<U0001F976>;<U0001F97A>;<U0001F97C>..<U0001F9A2>;/
- <U0001F9B0>..<U0001F9B9>;<U0001F9C0>..<U0001F9C2>;/
- <U0001F9D0>..<U0001F9FF>;<U0001FA60>..<U0001FA6D>;/
+ <U0001F7E0>..<U0001F7EB>;<U0001F800>..<U0001F80B>;/
+ <U0001F810>..<U0001F847>;<U0001F850>..<U0001F859>;/
+ <U0001F860>..<U0001F887>;<U0001F890>..<U0001F8AD>;/
+ <U0001F900>..<U0001F90B>;<U0001F90D>..<U0001F971>;/
+ <U0001F973>..<U0001F976>;<U0001F97A>..<U0001F9A2>;/
+ <U0001F9A5>..<U0001F9AA>;<U0001F9AE>..<U0001F9CA>;/
+ <U0001F9CD>..<U0001FA53>;<U0001FA60>..<U0001FA6D>;/
+ <U0001FA70>..<U0001FA73>;<U0001FA78>..<U0001FA7A>;/
+ <U0001FA80>..<U0001FA82>;<U0001FA90>..<U0001FA95>;/
<U00020000>..<U0002A6D6>;<U0002A700>..<U0002B734>;/
<U0002B740>..<U0002B81D>;<U0002B820>..<U0002CEA1>;/
<U0002CEB0>..<U0002EBE0>;<U0002F800>..<U0002FA1D>;<U000E0001>;/
@@ -864,7 +875,7 @@ print /
<U0BD0>;<U0BD7>;<U0BE6>..<U0BFA>;<U0C00>..<U0C0C>;<U0C0E>..<U0C10>;/
<U0C12>..<U0C28>;<U0C2A>..<U0C39>;<U0C3D>..<U0C44>;<U0C46>..<U0C48>;/
<U0C4A>..<U0C4D>;<U0C55>..<U0C56>;<U0C58>..<U0C5A>;<U0C60>..<U0C63>;/
- <U0C66>..<U0C6F>;<U0C78>..<U0C8C>;<U0C8E>..<U0C90>;<U0C92>..<U0CA8>;/
+ <U0C66>..<U0C6F>;<U0C77>..<U0C8C>;<U0C8E>..<U0C90>;<U0C92>..<U0CA8>;/
<U0CAA>..<U0CB3>;<U0CB5>..<U0CB9>;<U0CBC>..<U0CC4>;<U0CC6>..<U0CC8>;/
<U0CCA>..<U0CCD>;<U0CD5>..<U0CD6>;<U0CDE>;<U0CE0>..<U0CE3>;/
<U0CE6>..<U0CEF>;<U0CF1>..<U0CF2>;<U0D00>..<U0D03>;<U0D05>..<U0D0C>;/
@@ -873,50 +884,48 @@ print /
<U0D9A>..<U0DB1>;<U0DB3>..<U0DBB>;<U0DBD>;<U0DC0>..<U0DC6>;<U0DCA>;/
<U0DCF>..<U0DD4>;<U0DD6>;<U0DD8>..<U0DDF>;<U0DE6>..<U0DEF>;/
<U0DF2>..<U0DF4>;<U0E01>..<U0E3A>;<U0E3F>..<U0E5B>;<U0E81>..<U0E82>;/
- <U0E84>;<U0E87>..<U0E88>;<U0E8A>;<U0E8D>;<U0E94>..<U0E97>;/
- <U0E99>..<U0E9F>;<U0EA1>..<U0EA3>;<U0EA5>;<U0EA7>;<U0EAA>..<U0EAB>;/
- <U0EAD>..<U0EB9>;<U0EBB>..<U0EBD>;<U0EC0>..<U0EC4>;<U0EC6>;/
- <U0EC8>..<U0ECD>;<U0ED0>..<U0ED9>;<U0EDC>..<U0EDF>;<U0F00>..<U0F47>;/
- <U0F49>..<U0F6C>;<U0F71>..<U0F97>;<U0F99>..<U0FBC>;<U0FBE>..<U0FCC>;/
- <U0FCE>..<U0FDA>;<U1000>..<U10C5>;<U10C7>;<U10CD>;<U10D0>..<U1248>;/
- <U124A>..<U124D>;<U1250>..<U1256>;<U1258>;<U125A>..<U125D>;/
- <U1260>..<U1288>;<U128A>..<U128D>;<U1290>..<U12B0>;<U12B2>..<U12B5>;/
- <U12B8>..<U12BE>;<U12C0>;<U12C2>..<U12C5>;<U12C8>..<U12D6>;/
- <U12D8>..<U1310>;<U1312>..<U1315>;<U1318>..<U135A>;<U135D>..<U137C>;/
- <U1380>..<U1399>;<U13A0>..<U13F5>;<U13F8>..<U13FD>;<U1400>..<U169C>;/
- <U16A0>..<U16F8>;<U1700>..<U170C>;<U170E>..<U1714>;<U1720>..<U1736>;/
- <U1740>..<U1753>;<U1760>..<U176C>;<U176E>..<U1770>;<U1772>..<U1773>;/
- <U1780>..<U17DD>;<U17E0>..<U17E9>;<U17F0>..<U17F9>;<U1800>..<U180E>;/
- <U1810>..<U1819>;<U1820>..<U1878>;<U1880>..<U18AA>;<U18B0>..<U18F5>;/
- <U1900>..<U191E>;<U1920>..<U192B>;<U1930>..<U193B>;<U1940>;/
- <U1944>..<U196D>;<U1970>..<U1974>;<U1980>..<U19AB>;<U19B0>..<U19C9>;/
- <U19D0>..<U19DA>;<U19DE>..<U1A1B>;<U1A1E>..<U1A5E>;<U1A60>..<U1A7C>;/
- <U1A7F>..<U1A89>;<U1A90>..<U1A99>;<U1AA0>..<U1AAD>;<U1AB0>..<U1ABE>;/
- <U1B00>..<U1B4B>;<U1B50>..<U1B7C>;<U1B80>..<U1BF3>;<U1BFC>..<U1C37>;/
- <U1C3B>..<U1C49>;<U1C4D>..<U1C88>;<U1C90>..<U1CBA>;<U1CBD>..<U1CC7>;/
- <U1CD0>..<U1CF9>;<U1D00>..<U1DF9>;<U1DFB>..<U1F15>;<U1F18>..<U1F1D>;/
- <U1F20>..<U1F45>;<U1F48>..<U1F4D>;<U1F50>..<U1F57>;<U1F59>;<U1F5B>;/
- <U1F5D>;<U1F5F>..<U1F7D>;<U1F80>..<U1FB4>;<U1FB6>..<U1FC4>;/
- <U1FC6>..<U1FD3>;<U1FD6>..<U1FDB>;<U1FDD>..<U1FEF>;<U1FF2>..<U1FF4>;/
- <U1FF6>..<U1FFE>;<U2000>..<U2027>;<U202A>..<U2064>;<U2066>..<U2071>;/
- <U2074>..<U208E>;<U2090>..<U209C>;<U20A0>..<U20BF>;<U20D0>..<U20F0>;/
- <U2100>..<U218B>;<U2190>..<U2426>;<U2440>..<U244A>;<U2460>..<U2B73>;/
- <U2B76>..<U2B95>;<U2B98>..<U2BC8>;<U2BCA>..<U2BFE>;<U2C00>..<U2C2E>;/
+ <U0E84>;<U0E86>..<U0E8A>;<U0E8C>..<U0EA3>;<U0EA5>;<U0EA7>..<U0EBD>;/
+ <U0EC0>..<U0EC4>;<U0EC6>;<U0EC8>..<U0ECD>;<U0ED0>..<U0ED9>;/
+ <U0EDC>..<U0EDF>;<U0F00>..<U0F47>;<U0F49>..<U0F6C>;<U0F71>..<U0F97>;/
+ <U0F99>..<U0FBC>;<U0FBE>..<U0FCC>;<U0FCE>..<U0FDA>;<U1000>..<U10C5>;/
+ <U10C7>;<U10CD>;<U10D0>..<U1248>;<U124A>..<U124D>;<U1250>..<U1256>;/
+ <U1258>;<U125A>..<U125D>;<U1260>..<U1288>;<U128A>..<U128D>;/
+ <U1290>..<U12B0>;<U12B2>..<U12B5>;<U12B8>..<U12BE>;<U12C0>;/
+ <U12C2>..<U12C5>;<U12C8>..<U12D6>;<U12D8>..<U1310>;<U1312>..<U1315>;/
+ <U1318>..<U135A>;<U135D>..<U137C>;<U1380>..<U1399>;<U13A0>..<U13F5>;/
+ <U13F8>..<U13FD>;<U1400>..<U169C>;<U16A0>..<U16F8>;<U1700>..<U170C>;/
+ <U170E>..<U1714>;<U1720>..<U1736>;<U1740>..<U1753>;<U1760>..<U176C>;/
+ <U176E>..<U1770>;<U1772>..<U1773>;<U1780>..<U17DD>;<U17E0>..<U17E9>;/
+ <U17F0>..<U17F9>;<U1800>..<U180E>;<U1810>..<U1819>;<U1820>..<U1878>;/
+ <U1880>..<U18AA>;<U18B0>..<U18F5>;<U1900>..<U191E>;<U1920>..<U192B>;/
+ <U1930>..<U193B>;<U1940>;<U1944>..<U196D>;<U1970>..<U1974>;/
+ <U1980>..<U19AB>;<U19B0>..<U19C9>;<U19D0>..<U19DA>;<U19DE>..<U1A1B>;/
+ <U1A1E>..<U1A5E>;<U1A60>..<U1A7C>;<U1A7F>..<U1A89>;<U1A90>..<U1A99>;/
+ <U1AA0>..<U1AAD>;<U1AB0>..<U1ABE>;<U1B00>..<U1B4B>;<U1B50>..<U1B7C>;/
+ <U1B80>..<U1BF3>;<U1BFC>..<U1C37>;<U1C3B>..<U1C49>;<U1C4D>..<U1C88>;/
+ <U1C90>..<U1CBA>;<U1CBD>..<U1CC7>;<U1CD0>..<U1CFA>;<U1D00>..<U1DF9>;/
+ <U1DFB>..<U1F15>;<U1F18>..<U1F1D>;<U1F20>..<U1F45>;<U1F48>..<U1F4D>;/
+ <U1F50>..<U1F57>;<U1F59>;<U1F5B>;<U1F5D>;<U1F5F>..<U1F7D>;/
+ <U1F80>..<U1FB4>;<U1FB6>..<U1FC4>;<U1FC6>..<U1FD3>;<U1FD6>..<U1FDB>;/
+ <U1FDD>..<U1FEF>;<U1FF2>..<U1FF4>;<U1FF6>..<U1FFE>;<U2000>..<U2027>;/
+ <U202A>..<U2064>;<U2066>..<U2071>;<U2074>..<U208E>;<U2090>..<U209C>;/
+ <U20A0>..<U20BF>;<U20D0>..<U20F0>;<U2100>..<U218B>;<U2190>..<U2426>;/
+ <U2440>..<U244A>;<U2460>..<U2B73>;<U2B76>..<U2B95>;<U2B98>..<U2C2E>;/
<U2C30>..<U2C5E>;<U2C60>..<U2CF3>;<U2CF9>..<U2D25>;<U2D27>;<U2D2D>;/
<U2D30>..<U2D67>;<U2D6F>..<U2D70>;<U2D7F>..<U2D96>;<U2DA0>..<U2DA6>;/
<U2DA8>..<U2DAE>;<U2DB0>..<U2DB6>;<U2DB8>..<U2DBE>;<U2DC0>..<U2DC6>;/
- <U2DC8>..<U2DCE>;<U2DD0>..<U2DD6>;<U2DD8>..<U2DDE>;<U2DE0>..<U2E4E>;/
+ <U2DC8>..<U2DCE>;<U2DD0>..<U2DD6>;<U2DD8>..<U2DDE>;<U2DE0>..<U2E4F>;/
<U2E80>..<U2E99>;<U2E9B>..<U2EF3>;<U2F00>..<U2FD5>;<U2FF0>..<U2FFB>;/
<U3000>..<U303F>;<U3041>..<U3096>;<U3099>..<U30FF>;<U3105>..<U312F>;/
<U3131>..<U318E>;<U3190>..<U31BA>;<U31C0>..<U31E3>;<U31F0>..<U321E>;/
- <U3220>..<U32FE>;<U3300>..<U4DB5>;<U4DC0>..<U9FEF>;<UA000>..<UA48C>;/
- <UA490>..<UA4C6>;<UA4D0>..<UA62B>;<UA640>..<UA6F7>;<UA700>..<UA7B9>;/
+ <U3220>..<U4DB5>;<U4DC0>..<U9FEF>;<UA000>..<UA48C>;<UA490>..<UA4C6>;/
+ <UA4D0>..<UA62B>;<UA640>..<UA6F7>;<UA700>..<UA7BF>;<UA7C2>..<UA7C6>;/
<UA7F7>..<UA82B>;<UA830>..<UA839>;<UA840>..<UA877>;<UA880>..<UA8C5>;/
<UA8CE>..<UA8D9>;<UA8E0>..<UA953>;<UA95F>..<UA97C>;<UA980>..<UA9CD>;/
<UA9CF>..<UA9D9>;<UA9DE>..<UA9FE>;<UAA00>..<UAA36>;<UAA40>..<UAA4D>;/
<UAA50>..<UAA59>;<UAA5C>..<UAAC2>;<UAADB>..<UAAF6>;<UAB01>..<UAB06>;/
<UAB09>..<UAB0E>;<UAB11>..<UAB16>;<UAB20>..<UAB26>;<UAB28>..<UAB2E>;/
- <UAB30>..<UAB65>;<UAB70>..<UABED>;<UABF0>..<UABF9>;<UAC00>..<UD7A3>;/
+ <UAB30>..<UAB67>;<UAB70>..<UABED>;<UABF0>..<UABF9>;<UAC00>..<UD7A3>;/
<UD7B0>..<UD7C6>;<UD7CB>..<UD7FB>;<UE000>..<UFA6D>;<UFA70>..<UFAD9>;/
<UFB00>..<UFB06>;<UFB13>..<UFB17>;<UFB1D>..<UFB36>;<UFB38>..<UFB3C>;/
<UFB3E>;<UFB40>..<UFB41>;<UFB43>..<UFB44>;<UFB46>..<UFBC1>;/
@@ -958,32 +967,34 @@ print /
<U00010C80>..<U00010CB2>;<U00010CC0>..<U00010CF2>;/
<U00010CFA>..<U00010D27>;<U00010D30>..<U00010D39>;/
<U00010E60>..<U00010E7E>;<U00010F00>..<U00010F27>;/
- <U00010F30>..<U00010F59>;<U00011000>..<U0001104D>;/
- <U00011052>..<U0001106F>;<U0001107F>..<U000110C1>;<U000110CD>;/
- <U000110D0>..<U000110E8>;<U000110F0>..<U000110F9>;/
- <U00011100>..<U00011134>;<U00011136>..<U00011146>;/
- <U00011150>..<U00011176>;<U00011180>..<U000111CD>;/
- <U000111D0>..<U000111DF>;<U000111E1>..<U000111F4>;/
- <U00011200>..<U00011211>;<U00011213>..<U0001123E>;/
- <U00011280>..<U00011286>;<U00011288>;<U0001128A>..<U0001128D>;/
- <U0001128F>..<U0001129D>;<U0001129F>..<U000112A9>;/
- <U000112B0>..<U000112EA>;<U000112F0>..<U000112F9>;/
- <U00011300>..<U00011303>;<U00011305>..<U0001130C>;/
- <U0001130F>..<U00011310>;<U00011313>..<U00011328>;/
- <U0001132A>..<U00011330>;<U00011332>..<U00011333>;/
- <U00011335>..<U00011339>;<U0001133B>..<U00011344>;/
- <U00011347>..<U00011348>;<U0001134B>..<U0001134D>;<U00011350>;/
- <U00011357>;<U0001135D>..<U00011363>;<U00011366>..<U0001136C>;/
+ <U00010F30>..<U00010F59>;<U00010FE0>..<U00010FF6>;/
+ <U00011000>..<U0001104D>;<U00011052>..<U0001106F>;/
+ <U0001107F>..<U000110C1>;<U000110CD>;<U000110D0>..<U000110E8>;/
+ <U000110F0>..<U000110F9>;<U00011100>..<U00011134>;/
+ <U00011136>..<U00011146>;<U00011150>..<U00011176>;/
+ <U00011180>..<U000111CD>;<U000111D0>..<U000111DF>;/
+ <U000111E1>..<U000111F4>;<U00011200>..<U00011211>;/
+ <U00011213>..<U0001123E>;<U00011280>..<U00011286>;<U00011288>;/
+ <U0001128A>..<U0001128D>;<U0001128F>..<U0001129D>;/
+ <U0001129F>..<U000112A9>;<U000112B0>..<U000112EA>;/
+ <U000112F0>..<U000112F9>;<U00011300>..<U00011303>;/
+ <U00011305>..<U0001130C>;<U0001130F>..<U00011310>;/
+ <U00011313>..<U00011328>;<U0001132A>..<U00011330>;/
+ <U00011332>..<U00011333>;<U00011335>..<U00011339>;/
+ <U0001133B>..<U00011344>;<U00011347>..<U00011348>;/
+ <U0001134B>..<U0001134D>;<U00011350>;<U00011357>;/
+ <U0001135D>..<U00011363>;<U00011366>..<U0001136C>;/
<U00011370>..<U00011374>;<U00011400>..<U00011459>;<U0001145B>;/
- <U0001145D>..<U0001145E>;<U00011480>..<U000114C7>;/
+ <U0001145D>..<U0001145F>;<U00011480>..<U000114C7>;/
<U000114D0>..<U000114D9>;<U00011580>..<U000115B5>;/
<U000115B8>..<U000115DD>;<U00011600>..<U00011644>;/
<U00011650>..<U00011659>;<U00011660>..<U0001166C>;/
- <U00011680>..<U000116B7>;<U000116C0>..<U000116C9>;/
+ <U00011680>..<U000116B8>;<U000116C0>..<U000116C9>;/
<U00011700>..<U0001171A>;<U0001171D>..<U0001172B>;/
<U00011730>..<U0001173F>;<U00011800>..<U0001183B>;/
- <U000118A0>..<U000118F2>;<U000118FF>;<U00011A00>..<U00011A47>;/
- <U00011A50>..<U00011A83>;<U00011A86>..<U00011AA2>;/
+ <U000118A0>..<U000118F2>;<U000118FF>;<U000119A0>..<U000119A7>;/
+ <U000119AA>..<U000119D7>;<U000119DA>..<U000119E4>;/
+ <U00011A00>..<U00011A47>;<U00011A50>..<U00011AA2>;/
<U00011AC0>..<U00011AF8>;<U00011C00>..<U00011C08>;/
<U00011C0A>..<U00011C36>;<U00011C38>..<U00011C45>;/
<U00011C50>..<U00011C6C>;<U00011C70>..<U00011C8F>;/
@@ -994,19 +1005,21 @@ print /
<U00011D60>..<U00011D65>;<U00011D67>..<U00011D68>;/
<U00011D6A>..<U00011D8E>;<U00011D90>..<U00011D91>;/
<U00011D93>..<U00011D98>;<U00011DA0>..<U00011DA9>;/
- <U00011EE0>..<U00011EF8>;<U00012000>..<U00012399>;/
- <U00012400>..<U0001246E>;<U00012470>..<U00012474>;/
- <U00012480>..<U00012543>;<U00013000>..<U0001342E>;/
+ <U00011EE0>..<U00011EF8>;<U00011FC0>..<U00011FF1>;/
+ <U00011FFF>..<U00012399>;<U00012400>..<U0001246E>;/
+ <U00012470>..<U00012474>;<U00012480>..<U00012543>;/
+ <U00013000>..<U0001342E>;<U00013430>..<U00013438>;/
<U00014400>..<U00014646>;<U00016800>..<U00016A38>;/
<U00016A40>..<U00016A5E>;<U00016A60>..<U00016A69>;/
<U00016A6E>..<U00016A6F>;<U00016AD0>..<U00016AED>;/
<U00016AF0>..<U00016AF5>;<U00016B00>..<U00016B45>;/
<U00016B50>..<U00016B59>;<U00016B5B>..<U00016B61>;/
<U00016B63>..<U00016B77>;<U00016B7D>..<U00016B8F>;/
- <U00016E40>..<U00016E9A>;<U00016F00>..<U00016F44>;/
- <U00016F50>..<U00016F7E>;<U00016F8F>..<U00016F9F>;/
- <U00016FE0>..<U00016FE1>;<U00017000>..<U000187F1>;/
+ <U00016E40>..<U00016E9A>;<U00016F00>..<U00016F4A>;/
+ <U00016F4F>..<U00016F87>;<U00016F8F>..<U00016F9F>;/
+ <U00016FE0>..<U00016FE3>;<U00017000>..<U000187F7>;/
<U00018800>..<U00018AF2>;<U0001B000>..<U0001B11E>;/
+ <U0001B150>..<U0001B152>;<U0001B164>..<U0001B167>;/
<U0001B170>..<U0001B2FB>;<U0001BC00>..<U0001BC6A>;/
<U0001BC70>..<U0001BC7C>;<U0001BC80>..<U0001BC88>;/
<U0001BC90>..<U0001BC99>;<U0001BC9C>..<U0001BCA3>;/
@@ -1026,9 +1039,12 @@ print /
<U0001DAA1>..<U0001DAAF>;<U0001E000>..<U0001E006>;/
<U0001E008>..<U0001E018>;<U0001E01B>..<U0001E021>;/
<U0001E023>..<U0001E024>;<U0001E026>..<U0001E02A>;/
- <U0001E800>..<U0001E8C4>;<U0001E8C7>..<U0001E8D6>;/
- <U0001E900>..<U0001E94A>;<U0001E950>..<U0001E959>;/
- <U0001E95E>..<U0001E95F>;<U0001EC71>..<U0001ECB4>;/
+ <U0001E100>..<U0001E12C>;<U0001E130>..<U0001E13D>;/
+ <U0001E140>..<U0001E149>;<U0001E14E>..<U0001E14F>;/
+ <U0001E2C0>..<U0001E2F9>;<U0001E2FF>;<U0001E800>..<U0001E8C4>;/
+ <U0001E8C7>..<U0001E8D6>;<U0001E900>..<U0001E94B>;/
+ <U0001E950>..<U0001E959>;<U0001E95E>..<U0001E95F>;/
+ <U0001EC71>..<U0001ECB4>;<U0001ED01>..<U0001ED3D>;/
<U0001EE00>..<U0001EE03>;<U0001EE05>..<U0001EE1F>;/
<U0001EE21>..<U0001EE22>;<U0001EE24>;<U0001EE27>;/
<U0001EE29>..<U0001EE32>;<U0001EE34>..<U0001EE37>;<U0001EE39>;/
@@ -1044,19 +1060,21 @@ print /
<U0001F030>..<U0001F093>;<U0001F0A0>..<U0001F0AE>;/
<U0001F0B1>..<U0001F0BF>;<U0001F0C1>..<U0001F0CF>;/
<U0001F0D1>..<U0001F0F5>;<U0001F100>..<U0001F10C>;/
- <U0001F110>..<U0001F16B>;<U0001F170>..<U0001F1AC>;/
+ <U0001F110>..<U0001F16C>;<U0001F170>..<U0001F1AC>;/
<U0001F1E6>..<U0001F202>;<U0001F210>..<U0001F23B>;/
<U0001F240>..<U0001F248>;<U0001F250>..<U0001F251>;/
- <U0001F260>..<U0001F265>;<U0001F300>..<U0001F6D4>;/
- <U0001F6E0>..<U0001F6EC>;<U0001F6F0>..<U0001F6F9>;/
+ <U0001F260>..<U0001F265>;<U0001F300>..<U0001F6D5>;/
+ <U0001F6E0>..<U0001F6EC>;<U0001F6F0>..<U0001F6FA>;/
<U0001F700>..<U0001F773>;<U0001F780>..<U0001F7D8>;/
- <U0001F800>..<U0001F80B>;<U0001F810>..<U0001F847>;/
- <U0001F850>..<U0001F859>;<U0001F860>..<U0001F887>;/
- <U0001F890>..<U0001F8AD>;<U0001F900>..<U0001F90B>;/
- <U0001F910>..<U0001F93E>;<U0001F940>..<U0001F970>;/
- <U0001F973>..<U0001F976>;<U0001F97A>;<U0001F97C>..<U0001F9A2>;/
- <U0001F9B0>..<U0001F9B9>;<U0001F9C0>..<U0001F9C2>;/
- <U0001F9D0>..<U0001F9FF>;<U0001FA60>..<U0001FA6D>;/
+ <U0001F7E0>..<U0001F7EB>;<U0001F800>..<U0001F80B>;/
+ <U0001F810>..<U0001F847>;<U0001F850>..<U0001F859>;/
+ <U0001F860>..<U0001F887>;<U0001F890>..<U0001F8AD>;/
+ <U0001F900>..<U0001F90B>;<U0001F90D>..<U0001F971>;/
+ <U0001F973>..<U0001F976>;<U0001F97A>..<U0001F9A2>;/
+ <U0001F9A5>..<U0001F9AA>;<U0001F9AE>..<U0001F9CA>;/
+ <U0001F9CD>..<U0001FA53>;<U0001FA60>..<U0001FA6D>;/
+ <U0001FA70>..<U0001FA73>;<U0001FA78>..<U0001FA7A>;/
+ <U0001FA80>..<U0001FA82>;<U0001FA90>..<U0001FA95>;/
<U00020000>..<U0002A6D6>;<U0002A700>..<U0002B734>;/
<U0002B740>..<U0002B81D>;<U0002B820>..<U0002CEA1>;/
<U0002CEB0>..<U0002EBE0>;<U0002F800>..<U0002FA1D>;<U000E0001>;/
@@ -1131,355 +1149,356 @@ toupper /
(<U0265>,<UA78D>);(<U0266>,<UA7AA>);(<U0268>,<U0197>);(<U0269>,<U0196>);/
(<U026A>,<UA7AE>);(<U026B>,<U2C62>);(<U026C>,<UA7AD>);(<U026F>,<U019C>);/
(<U0271>,<U2C6E>);(<U0272>,<U019D>);(<U0275>,<U019F>);(<U027D>,<U2C64>);/
- (<U0280>,<U01A6>);(<U0283>,<U01A9>);(<U0287>,<UA7B1>);(<U0288>,<U01AE>);/
- (<U0289>,<U0244>);(<U028A>,<U01B1>);(<U028B>,<U01B2>);(<U028C>,<U0245>);/
- (<U0292>,<U01B7>);(<U029D>,<UA7B2>);(<U029E>,<UA7B0>);(<U0345>,<U0399>);/
- (<U0371>,<U0370>);(<U0373>,<U0372>);(<U0377>,<U0376>);(<U037B>,<U03FD>);/
- (<U037C>,<U03FE>);(<U037D>,<U03FF>);(<U03AC>,<U0386>);(<U03AD>,<U0388>);/
- (<U03AE>,<U0389>);(<U03AF>,<U038A>);(<U03B1>,<U0391>);(<U03B2>,<U0392>);/
- (<U03B3>,<U0393>);(<U03B4>,<U0394>);(<U03B5>,<U0395>);(<U03B6>,<U0396>);/
- (<U03B7>,<U0397>);(<U03B8>,<U0398>);(<U03B9>,<U0399>);(<U03BA>,<U039A>);/
- (<U03BB>,<U039B>);(<U03BC>,<U039C>);(<U03BD>,<U039D>);(<U03BE>,<U039E>);/
- (<U03BF>,<U039F>);(<U03C0>,<U03A0>);(<U03C1>,<U03A1>);(<U03C2>,<U03A3>);/
- (<U03C3>,<U03A3>);(<U03C4>,<U03A4>);(<U03C5>,<U03A5>);(<U03C6>,<U03A6>);/
- (<U03C7>,<U03A7>);(<U03C8>,<U03A8>);(<U03C9>,<U03A9>);(<U03CA>,<U03AA>);/
- (<U03CB>,<U03AB>);(<U03CC>,<U038C>);(<U03CD>,<U038E>);(<U03CE>,<U038F>);/
- (<U03D0>,<U0392>);(<U03D1>,<U0398>);(<U03D5>,<U03A6>);(<U03D6>,<U03A0>);/
- (<U03D7>,<U03CF>);(<U03D9>,<U03D8>);(<U03DB>,<U03DA>);(<U03DD>,<U03DC>);/
- (<U03DF>,<U03DE>);(<U03E1>,<U03E0>);(<U03E3>,<U03E2>);(<U03E5>,<U03E4>);/
- (<U03E7>,<U03E6>);(<U03E9>,<U03E8>);(<U03EB>,<U03EA>);(<U03ED>,<U03EC>);/
- (<U03EF>,<U03EE>);(<U03F0>,<U039A>);(<U03F1>,<U03A1>);(<U03F2>,<U03F9>);/
- (<U03F3>,<U037F>);(<U03F5>,<U0395>);(<U03F8>,<U03F7>);(<U03FB>,<U03FA>);/
- (<U0430>,<U0410>);(<U0431>,<U0411>);(<U0432>,<U0412>);(<U0433>,<U0413>);/
- (<U0434>,<U0414>);(<U0435>,<U0415>);(<U0436>,<U0416>);(<U0437>,<U0417>);/
- (<U0438>,<U0418>);(<U0439>,<U0419>);(<U043A>,<U041A>);(<U043B>,<U041B>);/
- (<U043C>,<U041C>);(<U043D>,<U041D>);(<U043E>,<U041E>);(<U043F>,<U041F>);/
- (<U0440>,<U0420>);(<U0441>,<U0421>);(<U0442>,<U0422>);(<U0443>,<U0423>);/
- (<U0444>,<U0424>);(<U0445>,<U0425>);(<U0446>,<U0426>);(<U0447>,<U0427>);/
- (<U0448>,<U0428>);(<U0449>,<U0429>);(<U044A>,<U042A>);(<U044B>,<U042B>);/
- (<U044C>,<U042C>);(<U044D>,<U042D>);(<U044E>,<U042E>);(<U044F>,<U042F>);/
- (<U0450>,<U0400>);(<U0451>,<U0401>);(<U0452>,<U0402>);(<U0453>,<U0403>);/
- (<U0454>,<U0404>);(<U0455>,<U0405>);(<U0456>,<U0406>);(<U0457>,<U0407>);/
- (<U0458>,<U0408>);(<U0459>,<U0409>);(<U045A>,<U040A>);(<U045B>,<U040B>);/
- (<U045C>,<U040C>);(<U045D>,<U040D>);(<U045E>,<U040E>);(<U045F>,<U040F>);/
- (<U0461>,<U0460>);(<U0463>,<U0462>);(<U0465>,<U0464>);(<U0467>,<U0466>);/
- (<U0469>,<U0468>);(<U046B>,<U046A>);(<U046D>,<U046C>);(<U046F>,<U046E>);/
- (<U0471>,<U0470>);(<U0473>,<U0472>);(<U0475>,<U0474>);(<U0477>,<U0476>);/
- (<U0479>,<U0478>);(<U047B>,<U047A>);(<U047D>,<U047C>);(<U047F>,<U047E>);/
- (<U0481>,<U0480>);(<U048B>,<U048A>);(<U048D>,<U048C>);(<U048F>,<U048E>);/
- (<U0491>,<U0490>);(<U0493>,<U0492>);(<U0495>,<U0494>);(<U0497>,<U0496>);/
- (<U0499>,<U0498>);(<U049B>,<U049A>);(<U049D>,<U049C>);(<U049F>,<U049E>);/
- (<U04A1>,<U04A0>);(<U04A3>,<U04A2>);(<U04A5>,<U04A4>);(<U04A7>,<U04A6>);/
- (<U04A9>,<U04A8>);(<U04AB>,<U04AA>);(<U04AD>,<U04AC>);(<U04AF>,<U04AE>);/
- (<U04B1>,<U04B0>);(<U04B3>,<U04B2>);(<U04B5>,<U04B4>);(<U04B7>,<U04B6>);/
- (<U04B9>,<U04B8>);(<U04BB>,<U04BA>);(<U04BD>,<U04BC>);(<U04BF>,<U04BE>);/
- (<U04C2>,<U04C1>);(<U04C4>,<U04C3>);(<U04C6>,<U04C5>);(<U04C8>,<U04C7>);/
- (<U04CA>,<U04C9>);(<U04CC>,<U04CB>);(<U04CE>,<U04CD>);(<U04CF>,<U04C0>);/
- (<U04D1>,<U04D0>);(<U04D3>,<U04D2>);(<U04D5>,<U04D4>);(<U04D7>,<U04D6>);/
- (<U04D9>,<U04D8>);(<U04DB>,<U04DA>);(<U04DD>,<U04DC>);(<U04DF>,<U04DE>);/
- (<U04E1>,<U04E0>);(<U04E3>,<U04E2>);(<U04E5>,<U04E4>);(<U04E7>,<U04E6>);/
- (<U04E9>,<U04E8>);(<U04EB>,<U04EA>);(<U04ED>,<U04EC>);(<U04EF>,<U04EE>);/
- (<U04F1>,<U04F0>);(<U04F3>,<U04F2>);(<U04F5>,<U04F4>);(<U04F7>,<U04F6>);/
- (<U04F9>,<U04F8>);(<U04FB>,<U04FA>);(<U04FD>,<U04FC>);(<U04FF>,<U04FE>);/
- (<U0501>,<U0500>);(<U0503>,<U0502>);(<U0505>,<U0504>);(<U0507>,<U0506>);/
- (<U0509>,<U0508>);(<U050B>,<U050A>);(<U050D>,<U050C>);(<U050F>,<U050E>);/
- (<U0511>,<U0510>);(<U0513>,<U0512>);(<U0515>,<U0514>);(<U0517>,<U0516>);/
- (<U0519>,<U0518>);(<U051B>,<U051A>);(<U051D>,<U051C>);(<U051F>,<U051E>);/
- (<U0521>,<U0520>);(<U0523>,<U0522>);(<U0525>,<U0524>);(<U0527>,<U0526>);/
- (<U0529>,<U0528>);(<U052B>,<U052A>);(<U052D>,<U052C>);(<U052F>,<U052E>);/
- (<U0561>,<U0531>);(<U0562>,<U0532>);(<U0563>,<U0533>);(<U0564>,<U0534>);/
- (<U0565>,<U0535>);(<U0566>,<U0536>);(<U0567>,<U0537>);(<U0568>,<U0538>);/
- (<U0569>,<U0539>);(<U056A>,<U053A>);(<U056B>,<U053B>);(<U056C>,<U053C>);/
- (<U056D>,<U053D>);(<U056E>,<U053E>);(<U056F>,<U053F>);(<U0570>,<U0540>);/
- (<U0571>,<U0541>);(<U0572>,<U0542>);(<U0573>,<U0543>);(<U0574>,<U0544>);/
- (<U0575>,<U0545>);(<U0576>,<U0546>);(<U0577>,<U0547>);(<U0578>,<U0548>);/
- (<U0579>,<U0549>);(<U057A>,<U054A>);(<U057B>,<U054B>);(<U057C>,<U054C>);/
- (<U057D>,<U054D>);(<U057E>,<U054E>);(<U057F>,<U054F>);(<U0580>,<U0550>);/
- (<U0581>,<U0551>);(<U0582>,<U0552>);(<U0583>,<U0553>);(<U0584>,<U0554>);/
- (<U0585>,<U0555>);(<U0586>,<U0556>);(<U10D0>,<U1C90>);(<U10D1>,<U1C91>);/
- (<U10D2>,<U1C92>);(<U10D3>,<U1C93>);(<U10D4>,<U1C94>);(<U10D5>,<U1C95>);/
- (<U10D6>,<U1C96>);(<U10D7>,<U1C97>);(<U10D8>,<U1C98>);(<U10D9>,<U1C99>);/
- (<U10DA>,<U1C9A>);(<U10DB>,<U1C9B>);(<U10DC>,<U1C9C>);(<U10DD>,<U1C9D>);/
- (<U10DE>,<U1C9E>);(<U10DF>,<U1C9F>);(<U10E0>,<U1CA0>);(<U10E1>,<U1CA1>);/
- (<U10E2>,<U1CA2>);(<U10E3>,<U1CA3>);(<U10E4>,<U1CA4>);(<U10E5>,<U1CA5>);/
- (<U10E6>,<U1CA6>);(<U10E7>,<U1CA7>);(<U10E8>,<U1CA8>);(<U10E9>,<U1CA9>);/
- (<U10EA>,<U1CAA>);(<U10EB>,<U1CAB>);(<U10EC>,<U1CAC>);(<U10ED>,<U1CAD>);/
- (<U10EE>,<U1CAE>);(<U10EF>,<U1CAF>);(<U10F0>,<U1CB0>);(<U10F1>,<U1CB1>);/
- (<U10F2>,<U1CB2>);(<U10F3>,<U1CB3>);(<U10F4>,<U1CB4>);(<U10F5>,<U1CB5>);/
- (<U10F6>,<U1CB6>);(<U10F7>,<U1CB7>);(<U10F8>,<U1CB8>);(<U10F9>,<U1CB9>);/
- (<U10FA>,<U1CBA>);(<U10FD>,<U1CBD>);(<U10FE>,<U1CBE>);(<U10FF>,<U1CBF>);/
- (<U13F8>,<U13F0>);(<U13F9>,<U13F1>);(<U13FA>,<U13F2>);(<U13FB>,<U13F3>);/
- (<U13FC>,<U13F4>);(<U13FD>,<U13F5>);(<U1C80>,<U0412>);(<U1C81>,<U0414>);/
- (<U1C82>,<U041E>);(<U1C83>,<U0421>);(<U1C84>,<U0422>);(<U1C85>,<U0422>);/
- (<U1C86>,<U042A>);(<U1C87>,<U0462>);(<U1C88>,<UA64A>);(<U1D79>,<UA77D>);/
- (<U1D7D>,<U2C63>);(<U1E01>,<U1E00>);(<U1E03>,<U1E02>);(<U1E05>,<U1E04>);/
- (<U1E07>,<U1E06>);(<U1E09>,<U1E08>);(<U1E0B>,<U1E0A>);(<U1E0D>,<U1E0C>);/
- (<U1E0F>,<U1E0E>);(<U1E11>,<U1E10>);(<U1E13>,<U1E12>);(<U1E15>,<U1E14>);/
- (<U1E17>,<U1E16>);(<U1E19>,<U1E18>);(<U1E1B>,<U1E1A>);(<U1E1D>,<U1E1C>);/
- (<U1E1F>,<U1E1E>);(<U1E21>,<U1E20>);(<U1E23>,<U1E22>);(<U1E25>,<U1E24>);/
- (<U1E27>,<U1E26>);(<U1E29>,<U1E28>);(<U1E2B>,<U1E2A>);(<U1E2D>,<U1E2C>);/
- (<U1E2F>,<U1E2E>);(<U1E31>,<U1E30>);(<U1E33>,<U1E32>);(<U1E35>,<U1E34>);/
- (<U1E37>,<U1E36>);(<U1E39>,<U1E38>);(<U1E3B>,<U1E3A>);(<U1E3D>,<U1E3C>);/
- (<U1E3F>,<U1E3E>);(<U1E41>,<U1E40>);(<U1E43>,<U1E42>);(<U1E45>,<U1E44>);/
- (<U1E47>,<U1E46>);(<U1E49>,<U1E48>);(<U1E4B>,<U1E4A>);(<U1E4D>,<U1E4C>);/
- (<U1E4F>,<U1E4E>);(<U1E51>,<U1E50>);(<U1E53>,<U1E52>);(<U1E55>,<U1E54>);/
- (<U1E57>,<U1E56>);(<U1E59>,<U1E58>);(<U1E5B>,<U1E5A>);(<U1E5D>,<U1E5C>);/
- (<U1E5F>,<U1E5E>);(<U1E61>,<U1E60>);(<U1E63>,<U1E62>);(<U1E65>,<U1E64>);/
- (<U1E67>,<U1E66>);(<U1E69>,<U1E68>);(<U1E6B>,<U1E6A>);(<U1E6D>,<U1E6C>);/
- (<U1E6F>,<U1E6E>);(<U1E71>,<U1E70>);(<U1E73>,<U1E72>);(<U1E75>,<U1E74>);/
- (<U1E77>,<U1E76>);(<U1E79>,<U1E78>);(<U1E7B>,<U1E7A>);(<U1E7D>,<U1E7C>);/
- (<U1E7F>,<U1E7E>);(<U1E81>,<U1E80>);(<U1E83>,<U1E82>);(<U1E85>,<U1E84>);/
- (<U1E87>,<U1E86>);(<U1E89>,<U1E88>);(<U1E8B>,<U1E8A>);(<U1E8D>,<U1E8C>);/
- (<U1E8F>,<U1E8E>);(<U1E91>,<U1E90>);(<U1E93>,<U1E92>);(<U1E95>,<U1E94>);/
- (<U1E9B>,<U1E60>);(<U1EA1>,<U1EA0>);(<U1EA3>,<U1EA2>);(<U1EA5>,<U1EA4>);/
- (<U1EA7>,<U1EA6>);(<U1EA9>,<U1EA8>);(<U1EAB>,<U1EAA>);(<U1EAD>,<U1EAC>);/
- (<U1EAF>,<U1EAE>);(<U1EB1>,<U1EB0>);(<U1EB3>,<U1EB2>);(<U1EB5>,<U1EB4>);/
- (<U1EB7>,<U1EB6>);(<U1EB9>,<U1EB8>);(<U1EBB>,<U1EBA>);(<U1EBD>,<U1EBC>);/
- (<U1EBF>,<U1EBE>);(<U1EC1>,<U1EC0>);(<U1EC3>,<U1EC2>);(<U1EC5>,<U1EC4>);/
- (<U1EC7>,<U1EC6>);(<U1EC9>,<U1EC8>);(<U1ECB>,<U1ECA>);(<U1ECD>,<U1ECC>);/
- (<U1ECF>,<U1ECE>);(<U1ED1>,<U1ED0>);(<U1ED3>,<U1ED2>);(<U1ED5>,<U1ED4>);/
- (<U1ED7>,<U1ED6>);(<U1ED9>,<U1ED8>);(<U1EDB>,<U1EDA>);(<U1EDD>,<U1EDC>);/
- (<U1EDF>,<U1EDE>);(<U1EE1>,<U1EE0>);(<U1EE3>,<U1EE2>);(<U1EE5>,<U1EE4>);/
- (<U1EE7>,<U1EE6>);(<U1EE9>,<U1EE8>);(<U1EEB>,<U1EEA>);(<U1EED>,<U1EEC>);/
- (<U1EEF>,<U1EEE>);(<U1EF1>,<U1EF0>);(<U1EF3>,<U1EF2>);(<U1EF5>,<U1EF4>);/
- (<U1EF7>,<U1EF6>);(<U1EF9>,<U1EF8>);(<U1EFB>,<U1EFA>);(<U1EFD>,<U1EFC>);/
- (<U1EFF>,<U1EFE>);(<U1F00>,<U1F08>);(<U1F01>,<U1F09>);(<U1F02>,<U1F0A>);/
- (<U1F03>,<U1F0B>);(<U1F04>,<U1F0C>);(<U1F05>,<U1F0D>);(<U1F06>,<U1F0E>);/
- (<U1F07>,<U1F0F>);(<U1F10>,<U1F18>);(<U1F11>,<U1F19>);(<U1F12>,<U1F1A>);/
- (<U1F13>,<U1F1B>);(<U1F14>,<U1F1C>);(<U1F15>,<U1F1D>);(<U1F20>,<U1F28>);/
- (<U1F21>,<U1F29>);(<U1F22>,<U1F2A>);(<U1F23>,<U1F2B>);(<U1F24>,<U1F2C>);/
- (<U1F25>,<U1F2D>);(<U1F26>,<U1F2E>);(<U1F27>,<U1F2F>);(<U1F30>,<U1F38>);/
- (<U1F31>,<U1F39>);(<U1F32>,<U1F3A>);(<U1F33>,<U1F3B>);(<U1F34>,<U1F3C>);/
- (<U1F35>,<U1F3D>);(<U1F36>,<U1F3E>);(<U1F37>,<U1F3F>);(<U1F40>,<U1F48>);/
- (<U1F41>,<U1F49>);(<U1F42>,<U1F4A>);(<U1F43>,<U1F4B>);(<U1F44>,<U1F4C>);/
- (<U1F45>,<U1F4D>);(<U1F51>,<U1F59>);(<U1F53>,<U1F5B>);(<U1F55>,<U1F5D>);/
- (<U1F57>,<U1F5F>);(<U1F60>,<U1F68>);(<U1F61>,<U1F69>);(<U1F62>,<U1F6A>);/
- (<U1F63>,<U1F6B>);(<U1F64>,<U1F6C>);(<U1F65>,<U1F6D>);(<U1F66>,<U1F6E>);/
- (<U1F67>,<U1F6F>);(<U1F70>,<U1FBA>);(<U1F71>,<U1FBB>);(<U1F72>,<U1FC8>);/
- (<U1F73>,<U1FC9>);(<U1F74>,<U1FCA>);(<U1F75>,<U1FCB>);(<U1F76>,<U1FDA>);/
- (<U1F77>,<U1FDB>);(<U1F78>,<U1FF8>);(<U1F79>,<U1FF9>);(<U1F7A>,<U1FEA>);/
- (<U1F7B>,<U1FEB>);(<U1F7C>,<U1FFA>);(<U1F7D>,<U1FFB>);(<U1F80>,<U1F88>);/
- (<U1F81>,<U1F89>);(<U1F82>,<U1F8A>);(<U1F83>,<U1F8B>);(<U1F84>,<U1F8C>);/
- (<U1F85>,<U1F8D>);(<U1F86>,<U1F8E>);(<U1F87>,<U1F8F>);(<U1F90>,<U1F98>);/
- (<U1F91>,<U1F99>);(<U1F92>,<U1F9A>);(<U1F93>,<U1F9B>);(<U1F94>,<U1F9C>);/
- (<U1F95>,<U1F9D>);(<U1F96>,<U1F9E>);(<U1F97>,<U1F9F>);(<U1FA0>,<U1FA8>);/
- (<U1FA1>,<U1FA9>);(<U1FA2>,<U1FAA>);(<U1FA3>,<U1FAB>);(<U1FA4>,<U1FAC>);/
- (<U1FA5>,<U1FAD>);(<U1FA6>,<U1FAE>);(<U1FA7>,<U1FAF>);(<U1FB0>,<U1FB8>);/
- (<U1FB1>,<U1FB9>);(<U1FB3>,<U1FBC>);(<U1FBE>,<U0399>);(<U1FC3>,<U1FCC>);/
- (<U1FD0>,<U1FD8>);(<U1FD1>,<U1FD9>);(<U1FE0>,<U1FE8>);(<U1FE1>,<U1FE9>);/
- (<U1FE5>,<U1FEC>);(<U1FF3>,<U1FFC>);(<U214E>,<U2132>);(<U2170>,<U2160>);/
- (<U2171>,<U2161>);(<U2172>,<U2162>);(<U2173>,<U2163>);(<U2174>,<U2164>);/
- (<U2175>,<U2165>);(<U2176>,<U2166>);(<U2177>,<U2167>);(<U2178>,<U2168>);/
- (<U2179>,<U2169>);(<U217A>,<U216A>);(<U217B>,<U216B>);(<U217C>,<U216C>);/
- (<U217D>,<U216D>);(<U217E>,<U216E>);(<U217F>,<U216F>);(<U2184>,<U2183>);/
- (<U24D0>,<U24B6>);(<U24D1>,<U24B7>);(<U24D2>,<U24B8>);(<U24D3>,<U24B9>);/
- (<U24D4>,<U24BA>);(<U24D5>,<U24BB>);(<U24D6>,<U24BC>);(<U24D7>,<U24BD>);/
- (<U24D8>,<U24BE>);(<U24D9>,<U24BF>);(<U24DA>,<U24C0>);(<U24DB>,<U24C1>);/
- (<U24DC>,<U24C2>);(<U24DD>,<U24C3>);(<U24DE>,<U24C4>);(<U24DF>,<U24C5>);/
- (<U24E0>,<U24C6>);(<U24E1>,<U24C7>);(<U24E2>,<U24C8>);(<U24E3>,<U24C9>);/
- (<U24E4>,<U24CA>);(<U24E5>,<U24CB>);(<U24E6>,<U24CC>);(<U24E7>,<U24CD>);/
- (<U24E8>,<U24CE>);(<U24E9>,<U24CF>);(<U2C30>,<U2C00>);(<U2C31>,<U2C01>);/
- (<U2C32>,<U2C02>);(<U2C33>,<U2C03>);(<U2C34>,<U2C04>);(<U2C35>,<U2C05>);/
- (<U2C36>,<U2C06>);(<U2C37>,<U2C07>);(<U2C38>,<U2C08>);(<U2C39>,<U2C09>);/
- (<U2C3A>,<U2C0A>);(<U2C3B>,<U2C0B>);(<U2C3C>,<U2C0C>);(<U2C3D>,<U2C0D>);/
- (<U2C3E>,<U2C0E>);(<U2C3F>,<U2C0F>);(<U2C40>,<U2C10>);(<U2C41>,<U2C11>);/
- (<U2C42>,<U2C12>);(<U2C43>,<U2C13>);(<U2C44>,<U2C14>);(<U2C45>,<U2C15>);/
- (<U2C46>,<U2C16>);(<U2C47>,<U2C17>);(<U2C48>,<U2C18>);(<U2C49>,<U2C19>);/
- (<U2C4A>,<U2C1A>);(<U2C4B>,<U2C1B>);(<U2C4C>,<U2C1C>);(<U2C4D>,<U2C1D>);/
- (<U2C4E>,<U2C1E>);(<U2C4F>,<U2C1F>);(<U2C50>,<U2C20>);(<U2C51>,<U2C21>);/
- (<U2C52>,<U2C22>);(<U2C53>,<U2C23>);(<U2C54>,<U2C24>);(<U2C55>,<U2C25>);/
- (<U2C56>,<U2C26>);(<U2C57>,<U2C27>);(<U2C58>,<U2C28>);(<U2C59>,<U2C29>);/
- (<U2C5A>,<U2C2A>);(<U2C5B>,<U2C2B>);(<U2C5C>,<U2C2C>);(<U2C5D>,<U2C2D>);/
- (<U2C5E>,<U2C2E>);(<U2C61>,<U2C60>);(<U2C65>,<U023A>);(<U2C66>,<U023E>);/
- (<U2C68>,<U2C67>);(<U2C6A>,<U2C69>);(<U2C6C>,<U2C6B>);(<U2C73>,<U2C72>);/
- (<U2C76>,<U2C75>);(<U2C81>,<U2C80>);(<U2C83>,<U2C82>);(<U2C85>,<U2C84>);/
- (<U2C87>,<U2C86>);(<U2C89>,<U2C88>);(<U2C8B>,<U2C8A>);(<U2C8D>,<U2C8C>);/
- (<U2C8F>,<U2C8E>);(<U2C91>,<U2C90>);(<U2C93>,<U2C92>);(<U2C95>,<U2C94>);/
- (<U2C97>,<U2C96>);(<U2C99>,<U2C98>);(<U2C9B>,<U2C9A>);(<U2C9D>,<U2C9C>);/
- (<U2C9F>,<U2C9E>);(<U2CA1>,<U2CA0>);(<U2CA3>,<U2CA2>);(<U2CA5>,<U2CA4>);/
- (<U2CA7>,<U2CA6>);(<U2CA9>,<U2CA8>);(<U2CAB>,<U2CAA>);(<U2CAD>,<U2CAC>);/
- (<U2CAF>,<U2CAE>);(<U2CB1>,<U2CB0>);(<U2CB3>,<U2CB2>);(<U2CB5>,<U2CB4>);/
- (<U2CB7>,<U2CB6>);(<U2CB9>,<U2CB8>);(<U2CBB>,<U2CBA>);(<U2CBD>,<U2CBC>);/
- (<U2CBF>,<U2CBE>);(<U2CC1>,<U2CC0>);(<U2CC3>,<U2CC2>);(<U2CC5>,<U2CC4>);/
- (<U2CC7>,<U2CC6>);(<U2CC9>,<U2CC8>);(<U2CCB>,<U2CCA>);(<U2CCD>,<U2CCC>);/
- (<U2CCF>,<U2CCE>);(<U2CD1>,<U2CD0>);(<U2CD3>,<U2CD2>);(<U2CD5>,<U2CD4>);/
- (<U2CD7>,<U2CD6>);(<U2CD9>,<U2CD8>);(<U2CDB>,<U2CDA>);(<U2CDD>,<U2CDC>);/
- (<U2CDF>,<U2CDE>);(<U2CE1>,<U2CE0>);(<U2CE3>,<U2CE2>);(<U2CEC>,<U2CEB>);/
- (<U2CEE>,<U2CED>);(<U2CF3>,<U2CF2>);(<U2D00>,<U10A0>);(<U2D01>,<U10A1>);/
- (<U2D02>,<U10A2>);(<U2D03>,<U10A3>);(<U2D04>,<U10A4>);(<U2D05>,<U10A5>);/
- (<U2D06>,<U10A6>);(<U2D07>,<U10A7>);(<U2D08>,<U10A8>);(<U2D09>,<U10A9>);/
- (<U2D0A>,<U10AA>);(<U2D0B>,<U10AB>);(<U2D0C>,<U10AC>);(<U2D0D>,<U10AD>);/
- (<U2D0E>,<U10AE>);(<U2D0F>,<U10AF>);(<U2D10>,<U10B0>);(<U2D11>,<U10B1>);/
- (<U2D12>,<U10B2>);(<U2D13>,<U10B3>);(<U2D14>,<U10B4>);(<U2D15>,<U10B5>);/
- (<U2D16>,<U10B6>);(<U2D17>,<U10B7>);(<U2D18>,<U10B8>);(<U2D19>,<U10B9>);/
- (<U2D1A>,<U10BA>);(<U2D1B>,<U10BB>);(<U2D1C>,<U10BC>);(<U2D1D>,<U10BD>);/
- (<U2D1E>,<U10BE>);(<U2D1F>,<U10BF>);(<U2D20>,<U10C0>);(<U2D21>,<U10C1>);/
- (<U2D22>,<U10C2>);(<U2D23>,<U10C3>);(<U2D24>,<U10C4>);(<U2D25>,<U10C5>);/
- (<U2D27>,<U10C7>);(<U2D2D>,<U10CD>);(<UA641>,<UA640>);(<UA643>,<UA642>);/
- (<UA645>,<UA644>);(<UA647>,<UA646>);(<UA649>,<UA648>);(<UA64B>,<UA64A>);/
- (<UA64D>,<UA64C>);(<UA64F>,<UA64E>);(<UA651>,<UA650>);(<UA653>,<UA652>);/
- (<UA655>,<UA654>);(<UA657>,<UA656>);(<UA659>,<UA658>);(<UA65B>,<UA65A>);/
- (<UA65D>,<UA65C>);(<UA65F>,<UA65E>);(<UA661>,<UA660>);(<UA663>,<UA662>);/
- (<UA665>,<UA664>);(<UA667>,<UA666>);(<UA669>,<UA668>);(<UA66B>,<UA66A>);/
- (<UA66D>,<UA66C>);(<UA681>,<UA680>);(<UA683>,<UA682>);(<UA685>,<UA684>);/
- (<UA687>,<UA686>);(<UA689>,<UA688>);(<UA68B>,<UA68A>);(<UA68D>,<UA68C>);/
- (<UA68F>,<UA68E>);(<UA691>,<UA690>);(<UA693>,<UA692>);(<UA695>,<UA694>);/
- (<UA697>,<UA696>);(<UA699>,<UA698>);(<UA69B>,<UA69A>);(<UA723>,<UA722>);/
- (<UA725>,<UA724>);(<UA727>,<UA726>);(<UA729>,<UA728>);(<UA72B>,<UA72A>);/
- (<UA72D>,<UA72C>);(<UA72F>,<UA72E>);(<UA733>,<UA732>);(<UA735>,<UA734>);/
- (<UA737>,<UA736>);(<UA739>,<UA738>);(<UA73B>,<UA73A>);(<UA73D>,<UA73C>);/
- (<UA73F>,<UA73E>);(<UA741>,<UA740>);(<UA743>,<UA742>);(<UA745>,<UA744>);/
- (<UA747>,<UA746>);(<UA749>,<UA748>);(<UA74B>,<UA74A>);(<UA74D>,<UA74C>);/
- (<UA74F>,<UA74E>);(<UA751>,<UA750>);(<UA753>,<UA752>);(<UA755>,<UA754>);/
- (<UA757>,<UA756>);(<UA759>,<UA758>);(<UA75B>,<UA75A>);(<UA75D>,<UA75C>);/
- (<UA75F>,<UA75E>);(<UA761>,<UA760>);(<UA763>,<UA762>);(<UA765>,<UA764>);/
- (<UA767>,<UA766>);(<UA769>,<UA768>);(<UA76B>,<UA76A>);(<UA76D>,<UA76C>);/
- (<UA76F>,<UA76E>);(<UA77A>,<UA779>);(<UA77C>,<UA77B>);(<UA77F>,<UA77E>);/
- (<UA781>,<UA780>);(<UA783>,<UA782>);(<UA785>,<UA784>);(<UA787>,<UA786>);/
- (<UA78C>,<UA78B>);(<UA791>,<UA790>);(<UA793>,<UA792>);(<UA797>,<UA796>);/
- (<UA799>,<UA798>);(<UA79B>,<UA79A>);(<UA79D>,<UA79C>);(<UA79F>,<UA79E>);/
- (<UA7A1>,<UA7A0>);(<UA7A3>,<UA7A2>);(<UA7A5>,<UA7A4>);(<UA7A7>,<UA7A6>);/
- (<UA7A9>,<UA7A8>);(<UA7B5>,<UA7B4>);(<UA7B7>,<UA7B6>);(<UA7B9>,<UA7B8>);/
- (<UAB53>,<UA7B3>);(<UAB70>,<U13A0>);(<UAB71>,<U13A1>);(<UAB72>,<U13A2>);/
- (<UAB73>,<U13A3>);(<UAB74>,<U13A4>);(<UAB75>,<U13A5>);(<UAB76>,<U13A6>);/
- (<UAB77>,<U13A7>);(<UAB78>,<U13A8>);(<UAB79>,<U13A9>);(<UAB7A>,<U13AA>);/
- (<UAB7B>,<U13AB>);(<UAB7C>,<U13AC>);(<UAB7D>,<U13AD>);(<UAB7E>,<U13AE>);/
- (<UAB7F>,<U13AF>);(<UAB80>,<U13B0>);(<UAB81>,<U13B1>);(<UAB82>,<U13B2>);/
- (<UAB83>,<U13B3>);(<UAB84>,<U13B4>);(<UAB85>,<U13B5>);(<UAB86>,<U13B6>);/
- (<UAB87>,<U13B7>);(<UAB88>,<U13B8>);(<UAB89>,<U13B9>);(<UAB8A>,<U13BA>);/
- (<UAB8B>,<U13BB>);(<UAB8C>,<U13BC>);(<UAB8D>,<U13BD>);(<UAB8E>,<U13BE>);/
- (<UAB8F>,<U13BF>);(<UAB90>,<U13C0>);(<UAB91>,<U13C1>);(<UAB92>,<U13C2>);/
- (<UAB93>,<U13C3>);(<UAB94>,<U13C4>);(<UAB95>,<U13C5>);(<UAB96>,<U13C6>);/
- (<UAB97>,<U13C7>);(<UAB98>,<U13C8>);(<UAB99>,<U13C9>);(<UAB9A>,<U13CA>);/
- (<UAB9B>,<U13CB>);(<UAB9C>,<U13CC>);(<UAB9D>,<U13CD>);(<UAB9E>,<U13CE>);/
- (<UAB9F>,<U13CF>);(<UABA0>,<U13D0>);(<UABA1>,<U13D1>);(<UABA2>,<U13D2>);/
- (<UABA3>,<U13D3>);(<UABA4>,<U13D4>);(<UABA5>,<U13D5>);(<UABA6>,<U13D6>);/
- (<UABA7>,<U13D7>);(<UABA8>,<U13D8>);(<UABA9>,<U13D9>);(<UABAA>,<U13DA>);/
- (<UABAB>,<U13DB>);(<UABAC>,<U13DC>);(<UABAD>,<U13DD>);(<UABAE>,<U13DE>);/
- (<UABAF>,<U13DF>);(<UABB0>,<U13E0>);(<UABB1>,<U13E1>);(<UABB2>,<U13E2>);/
- (<UABB3>,<U13E3>);(<UABB4>,<U13E4>);(<UABB5>,<U13E5>);(<UABB6>,<U13E6>);/
- (<UABB7>,<U13E7>);(<UABB8>,<U13E8>);(<UABB9>,<U13E9>);(<UABBA>,<U13EA>);/
- (<UABBB>,<U13EB>);(<UABBC>,<U13EC>);(<UABBD>,<U13ED>);(<UABBE>,<U13EE>);/
- (<UABBF>,<U13EF>);(<UFF41>,<UFF21>);(<UFF42>,<UFF22>);(<UFF43>,<UFF23>);/
- (<UFF44>,<UFF24>);(<UFF45>,<UFF25>);(<UFF46>,<UFF26>);(<UFF47>,<UFF27>);/
- (<UFF48>,<UFF28>);(<UFF49>,<UFF29>);(<UFF4A>,<UFF2A>);(<UFF4B>,<UFF2B>);/
- (<UFF4C>,<UFF2C>);(<UFF4D>,<UFF2D>);(<UFF4E>,<UFF2E>);(<UFF4F>,<UFF2F>);/
- (<UFF50>,<UFF30>);(<UFF51>,<UFF31>);(<UFF52>,<UFF32>);(<UFF53>,<UFF33>);/
- (<UFF54>,<UFF34>);(<UFF55>,<UFF35>);(<UFF56>,<UFF36>);(<UFF57>,<UFF37>);/
- (<UFF58>,<UFF38>);(<UFF59>,<UFF39>);(<UFF5A>,<UFF3A>);/
- (<U00010428>,<U00010400>);(<U00010429>,<U00010401>);/
- (<U0001042A>,<U00010402>);(<U0001042B>,<U00010403>);/
- (<U0001042C>,<U00010404>);(<U0001042D>,<U00010405>);/
- (<U0001042E>,<U00010406>);(<U0001042F>,<U00010407>);/
- (<U00010430>,<U00010408>);(<U00010431>,<U00010409>);/
- (<U00010432>,<U0001040A>);(<U00010433>,<U0001040B>);/
- (<U00010434>,<U0001040C>);(<U00010435>,<U0001040D>);/
- (<U00010436>,<U0001040E>);(<U00010437>,<U0001040F>);/
- (<U00010438>,<U00010410>);(<U00010439>,<U00010411>);/
- (<U0001043A>,<U00010412>);(<U0001043B>,<U00010413>);/
- (<U0001043C>,<U00010414>);(<U0001043D>,<U00010415>);/
- (<U0001043E>,<U00010416>);(<U0001043F>,<U00010417>);/
- (<U00010440>,<U00010418>);(<U00010441>,<U00010419>);/
- (<U00010442>,<U0001041A>);(<U00010443>,<U0001041B>);/
- (<U00010444>,<U0001041C>);(<U00010445>,<U0001041D>);/
- (<U00010446>,<U0001041E>);(<U00010447>,<U0001041F>);/
- (<U00010448>,<U00010420>);(<U00010449>,<U00010421>);/
- (<U0001044A>,<U00010422>);(<U0001044B>,<U00010423>);/
- (<U0001044C>,<U00010424>);(<U0001044D>,<U00010425>);/
- (<U0001044E>,<U00010426>);(<U0001044F>,<U00010427>);/
- (<U000104D8>,<U000104B0>);(<U000104D9>,<U000104B1>);/
- (<U000104DA>,<U000104B2>);(<U000104DB>,<U000104B3>);/
- (<U000104DC>,<U000104B4>);(<U000104DD>,<U000104B5>);/
- (<U000104DE>,<U000104B6>);(<U000104DF>,<U000104B7>);/
- (<U000104E0>,<U000104B8>);(<U000104E1>,<U000104B9>);/
- (<U000104E2>,<U000104BA>);(<U000104E3>,<U000104BB>);/
- (<U000104E4>,<U000104BC>);(<U000104E5>,<U000104BD>);/
- (<U000104E6>,<U000104BE>);(<U000104E7>,<U000104BF>);/
- (<U000104E8>,<U000104C0>);(<U000104E9>,<U000104C1>);/
- (<U000104EA>,<U000104C2>);(<U000104EB>,<U000104C3>);/
- (<U000104EC>,<U000104C4>);(<U000104ED>,<U000104C5>);/
- (<U000104EE>,<U000104C6>);(<U000104EF>,<U000104C7>);/
- (<U000104F0>,<U000104C8>);(<U000104F1>,<U000104C9>);/
- (<U000104F2>,<U000104CA>);(<U000104F3>,<U000104CB>);/
- (<U000104F4>,<U000104CC>);(<U000104F5>,<U000104CD>);/
- (<U000104F6>,<U000104CE>);(<U000104F7>,<U000104CF>);/
- (<U000104F8>,<U000104D0>);(<U000104F9>,<U000104D1>);/
- (<U000104FA>,<U000104D2>);(<U000104FB>,<U000104D3>);/
- (<U00010CC0>,<U00010C80>);(<U00010CC1>,<U00010C81>);/
- (<U00010CC2>,<U00010C82>);(<U00010CC3>,<U00010C83>);/
- (<U00010CC4>,<U00010C84>);(<U00010CC5>,<U00010C85>);/
- (<U00010CC6>,<U00010C86>);(<U00010CC7>,<U00010C87>);/
- (<U00010CC8>,<U00010C88>);(<U00010CC9>,<U00010C89>);/
- (<U00010CCA>,<U00010C8A>);(<U00010CCB>,<U00010C8B>);/
- (<U00010CCC>,<U00010C8C>);(<U00010CCD>,<U00010C8D>);/
- (<U00010CCE>,<U00010C8E>);(<U00010CCF>,<U00010C8F>);/
- (<U00010CD0>,<U00010C90>);(<U00010CD1>,<U00010C91>);/
- (<U00010CD2>,<U00010C92>);(<U00010CD3>,<U00010C93>);/
- (<U00010CD4>,<U00010C94>);(<U00010CD5>,<U00010C95>);/
- (<U00010CD6>,<U00010C96>);(<U00010CD7>,<U00010C97>);/
- (<U00010CD8>,<U00010C98>);(<U00010CD9>,<U00010C99>);/
- (<U00010CDA>,<U00010C9A>);(<U00010CDB>,<U00010C9B>);/
- (<U00010CDC>,<U00010C9C>);(<U00010CDD>,<U00010C9D>);/
- (<U00010CDE>,<U00010C9E>);(<U00010CDF>,<U00010C9F>);/
- (<U00010CE0>,<U00010CA0>);(<U00010CE1>,<U00010CA1>);/
- (<U00010CE2>,<U00010CA2>);(<U00010CE3>,<U00010CA3>);/
- (<U00010CE4>,<U00010CA4>);(<U00010CE5>,<U00010CA5>);/
- (<U00010CE6>,<U00010CA6>);(<U00010CE7>,<U00010CA7>);/
- (<U00010CE8>,<U00010CA8>);(<U00010CE9>,<U00010CA9>);/
- (<U00010CEA>,<U00010CAA>);(<U00010CEB>,<U00010CAB>);/
- (<U00010CEC>,<U00010CAC>);(<U00010CED>,<U00010CAD>);/
- (<U00010CEE>,<U00010CAE>);(<U00010CEF>,<U00010CAF>);/
- (<U00010CF0>,<U00010CB0>);(<U00010CF1>,<U00010CB1>);/
- (<U00010CF2>,<U00010CB2>);(<U000118C0>,<U000118A0>);/
- (<U000118C1>,<U000118A1>);(<U000118C2>,<U000118A2>);/
- (<U000118C3>,<U000118A3>);(<U000118C4>,<U000118A4>);/
- (<U000118C5>,<U000118A5>);(<U000118C6>,<U000118A6>);/
- (<U000118C7>,<U000118A7>);(<U000118C8>,<U000118A8>);/
- (<U000118C9>,<U000118A9>);(<U000118CA>,<U000118AA>);/
- (<U000118CB>,<U000118AB>);(<U000118CC>,<U000118AC>);/
- (<U000118CD>,<U000118AD>);(<U000118CE>,<U000118AE>);/
- (<U000118CF>,<U000118AF>);(<U000118D0>,<U000118B0>);/
- (<U000118D1>,<U000118B1>);(<U000118D2>,<U000118B2>);/
- (<U000118D3>,<U000118B3>);(<U000118D4>,<U000118B4>);/
- (<U000118D5>,<U000118B5>);(<U000118D6>,<U000118B6>);/
- (<U000118D7>,<U000118B7>);(<U000118D8>,<U000118B8>);/
- (<U000118D9>,<U000118B9>);(<U000118DA>,<U000118BA>);/
- (<U000118DB>,<U000118BB>);(<U000118DC>,<U000118BC>);/
- (<U000118DD>,<U000118BD>);(<U000118DE>,<U000118BE>);/
- (<U000118DF>,<U000118BF>);(<U00016E60>,<U00016E40>);/
- (<U00016E61>,<U00016E41>);(<U00016E62>,<U00016E42>);/
- (<U00016E63>,<U00016E43>);(<U00016E64>,<U00016E44>);/
- (<U00016E65>,<U00016E45>);(<U00016E66>,<U00016E46>);/
- (<U00016E67>,<U00016E47>);(<U00016E68>,<U00016E48>);/
- (<U00016E69>,<U00016E49>);(<U00016E6A>,<U00016E4A>);/
- (<U00016E6B>,<U00016E4B>);(<U00016E6C>,<U00016E4C>);/
- (<U00016E6D>,<U00016E4D>);(<U00016E6E>,<U00016E4E>);/
- (<U00016E6F>,<U00016E4F>);(<U00016E70>,<U00016E50>);/
- (<U00016E71>,<U00016E51>);(<U00016E72>,<U00016E52>);/
- (<U00016E73>,<U00016E53>);(<U00016E74>,<U00016E54>);/
- (<U00016E75>,<U00016E55>);(<U00016E76>,<U00016E56>);/
- (<U00016E77>,<U00016E57>);(<U00016E78>,<U00016E58>);/
- (<U00016E79>,<U00016E59>);(<U00016E7A>,<U00016E5A>);/
- (<U00016E7B>,<U00016E5B>);(<U00016E7C>,<U00016E5C>);/
- (<U00016E7D>,<U00016E5D>);(<U00016E7E>,<U00016E5E>);/
- (<U00016E7F>,<U00016E5F>);(<U0001E922>,<U0001E900>);/
- (<U0001E923>,<U0001E901>);(<U0001E924>,<U0001E902>);/
- (<U0001E925>,<U0001E903>);(<U0001E926>,<U0001E904>);/
- (<U0001E927>,<U0001E905>);(<U0001E928>,<U0001E906>);/
- (<U0001E929>,<U0001E907>);(<U0001E92A>,<U0001E908>);/
- (<U0001E92B>,<U0001E909>);(<U0001E92C>,<U0001E90A>);/
- (<U0001E92D>,<U0001E90B>);(<U0001E92E>,<U0001E90C>);/
- (<U0001E92F>,<U0001E90D>);(<U0001E930>,<U0001E90E>);/
- (<U0001E931>,<U0001E90F>);(<U0001E932>,<U0001E910>);/
- (<U0001E933>,<U0001E911>);(<U0001E934>,<U0001E912>);/
- (<U0001E935>,<U0001E913>);(<U0001E936>,<U0001E914>);/
- (<U0001E937>,<U0001E915>);(<U0001E938>,<U0001E916>);/
- (<U0001E939>,<U0001E917>);(<U0001E93A>,<U0001E918>);/
- (<U0001E93B>,<U0001E919>);(<U0001E93C>,<U0001E91A>);/
- (<U0001E93D>,<U0001E91B>);(<U0001E93E>,<U0001E91C>);/
- (<U0001E93F>,<U0001E91D>);(<U0001E940>,<U0001E91E>);/
- (<U0001E941>,<U0001E91F>);(<U0001E942>,<U0001E920>);/
- (<U0001E943>,<U0001E921>)
+ (<U0280>,<U01A6>);(<U0282>,<UA7C5>);(<U0283>,<U01A9>);(<U0287>,<UA7B1>);/
+ (<U0288>,<U01AE>);(<U0289>,<U0244>);(<U028A>,<U01B1>);(<U028B>,<U01B2>);/
+ (<U028C>,<U0245>);(<U0292>,<U01B7>);(<U029D>,<UA7B2>);(<U029E>,<UA7B0>);/
+ (<U0345>,<U0399>);(<U0371>,<U0370>);(<U0373>,<U0372>);(<U0377>,<U0376>);/
+ (<U037B>,<U03FD>);(<U037C>,<U03FE>);(<U037D>,<U03FF>);(<U03AC>,<U0386>);/
+ (<U03AD>,<U0388>);(<U03AE>,<U0389>);(<U03AF>,<U038A>);(<U03B1>,<U0391>);/
+ (<U03B2>,<U0392>);(<U03B3>,<U0393>);(<U03B4>,<U0394>);(<U03B5>,<U0395>);/
+ (<U03B6>,<U0396>);(<U03B7>,<U0397>);(<U03B8>,<U0398>);(<U03B9>,<U0399>);/
+ (<U03BA>,<U039A>);(<U03BB>,<U039B>);(<U03BC>,<U039C>);(<U03BD>,<U039D>);/
+ (<U03BE>,<U039E>);(<U03BF>,<U039F>);(<U03C0>,<U03A0>);(<U03C1>,<U03A1>);/
+ (<U03C2>,<U03A3>);(<U03C3>,<U03A3>);(<U03C4>,<U03A4>);(<U03C5>,<U03A5>);/
+ (<U03C6>,<U03A6>);(<U03C7>,<U03A7>);(<U03C8>,<U03A8>);(<U03C9>,<U03A9>);/
+ (<U03CA>,<U03AA>);(<U03CB>,<U03AB>);(<U03CC>,<U038C>);(<U03CD>,<U038E>);/
+ (<U03CE>,<U038F>);(<U03D0>,<U0392>);(<U03D1>,<U0398>);(<U03D5>,<U03A6>);/
+ (<U03D6>,<U03A0>);(<U03D7>,<U03CF>);(<U03D9>,<U03D8>);(<U03DB>,<U03DA>);/
+ (<U03DD>,<U03DC>);(<U03DF>,<U03DE>);(<U03E1>,<U03E0>);(<U03E3>,<U03E2>);/
+ (<U03E5>,<U03E4>);(<U03E7>,<U03E6>);(<U03E9>,<U03E8>);(<U03EB>,<U03EA>);/
+ (<U03ED>,<U03EC>);(<U03EF>,<U03EE>);(<U03F0>,<U039A>);(<U03F1>,<U03A1>);/
+ (<U03F2>,<U03F9>);(<U03F3>,<U037F>);(<U03F5>,<U0395>);(<U03F8>,<U03F7>);/
+ (<U03FB>,<U03FA>);(<U0430>,<U0410>);(<U0431>,<U0411>);(<U0432>,<U0412>);/
+ (<U0433>,<U0413>);(<U0434>,<U0414>);(<U0435>,<U0415>);(<U0436>,<U0416>);/
+ (<U0437>,<U0417>);(<U0438>,<U0418>);(<U0439>,<U0419>);(<U043A>,<U041A>);/
+ (<U043B>,<U041B>);(<U043C>,<U041C>);(<U043D>,<U041D>);(<U043E>,<U041E>);/
+ (<U043F>,<U041F>);(<U0440>,<U0420>);(<U0441>,<U0421>);(<U0442>,<U0422>);/
+ (<U0443>,<U0423>);(<U0444>,<U0424>);(<U0445>,<U0425>);(<U0446>,<U0426>);/
+ (<U0447>,<U0427>);(<U0448>,<U0428>);(<U0449>,<U0429>);(<U044A>,<U042A>);/
+ (<U044B>,<U042B>);(<U044C>,<U042C>);(<U044D>,<U042D>);(<U044E>,<U042E>);/
+ (<U044F>,<U042F>);(<U0450>,<U0400>);(<U0451>,<U0401>);(<U0452>,<U0402>);/
+ (<U0453>,<U0403>);(<U0454>,<U0404>);(<U0455>,<U0405>);(<U0456>,<U0406>);/
+ (<U0457>,<U0407>);(<U0458>,<U0408>);(<U0459>,<U0409>);(<U045A>,<U040A>);/
+ (<U045B>,<U040B>);(<U045C>,<U040C>);(<U045D>,<U040D>);(<U045E>,<U040E>);/
+ (<U045F>,<U040F>);(<U0461>,<U0460>);(<U0463>,<U0462>);(<U0465>,<U0464>);/
+ (<U0467>,<U0466>);(<U0469>,<U0468>);(<U046B>,<U046A>);(<U046D>,<U046C>);/
+ (<U046F>,<U046E>);(<U0471>,<U0470>);(<U0473>,<U0472>);(<U0475>,<U0474>);/
+ (<U0477>,<U0476>);(<U0479>,<U0478>);(<U047B>,<U047A>);(<U047D>,<U047C>);/
+ (<U047F>,<U047E>);(<U0481>,<U0480>);(<U048B>,<U048A>);(<U048D>,<U048C>);/
+ (<U048F>,<U048E>);(<U0491>,<U0490>);(<U0493>,<U0492>);(<U0495>,<U0494>);/
+ (<U0497>,<U0496>);(<U0499>,<U0498>);(<U049B>,<U049A>);(<U049D>,<U049C>);/
+ (<U049F>,<U049E>);(<U04A1>,<U04A0>);(<U04A3>,<U04A2>);(<U04A5>,<U04A4>);/
+ (<U04A7>,<U04A6>);(<U04A9>,<U04A8>);(<U04AB>,<U04AA>);(<U04AD>,<U04AC>);/
+ (<U04AF>,<U04AE>);(<U04B1>,<U04B0>);(<U04B3>,<U04B2>);(<U04B5>,<U04B4>);/
+ (<U04B7>,<U04B6>);(<U04B9>,<U04B8>);(<U04BB>,<U04BA>);(<U04BD>,<U04BC>);/
+ (<U04BF>,<U04BE>);(<U04C2>,<U04C1>);(<U04C4>,<U04C3>);(<U04C6>,<U04C5>);/
+ (<U04C8>,<U04C7>);(<U04CA>,<U04C9>);(<U04CC>,<U04CB>);(<U04CE>,<U04CD>);/
+ (<U04CF>,<U04C0>);(<U04D1>,<U04D0>);(<U04D3>,<U04D2>);(<U04D5>,<U04D4>);/
+ (<U04D7>,<U04D6>);(<U04D9>,<U04D8>);(<U04DB>,<U04DA>);(<U04DD>,<U04DC>);/
+ (<U04DF>,<U04DE>);(<U04E1>,<U04E0>);(<U04E3>,<U04E2>);(<U04E5>,<U04E4>);/
+ (<U04E7>,<U04E6>);(<U04E9>,<U04E8>);(<U04EB>,<U04EA>);(<U04ED>,<U04EC>);/
+ (<U04EF>,<U04EE>);(<U04F1>,<U04F0>);(<U04F3>,<U04F2>);(<U04F5>,<U04F4>);/
+ (<U04F7>,<U04F6>);(<U04F9>,<U04F8>);(<U04FB>,<U04FA>);(<U04FD>,<U04FC>);/
+ (<U04FF>,<U04FE>);(<U0501>,<U0500>);(<U0503>,<U0502>);(<U0505>,<U0504>);/
+ (<U0507>,<U0506>);(<U0509>,<U0508>);(<U050B>,<U050A>);(<U050D>,<U050C>);/
+ (<U050F>,<U050E>);(<U0511>,<U0510>);(<U0513>,<U0512>);(<U0515>,<U0514>);/
+ (<U0517>,<U0516>);(<U0519>,<U0518>);(<U051B>,<U051A>);(<U051D>,<U051C>);/
+ (<U051F>,<U051E>);(<U0521>,<U0520>);(<U0523>,<U0522>);(<U0525>,<U0524>);/
+ (<U0527>,<U0526>);(<U0529>,<U0528>);(<U052B>,<U052A>);(<U052D>,<U052C>);/
+ (<U052F>,<U052E>);(<U0561>,<U0531>);(<U0562>,<U0532>);(<U0563>,<U0533>);/
+ (<U0564>,<U0534>);(<U0565>,<U0535>);(<U0566>,<U0536>);(<U0567>,<U0537>);/
+ (<U0568>,<U0538>);(<U0569>,<U0539>);(<U056A>,<U053A>);(<U056B>,<U053B>);/
+ (<U056C>,<U053C>);(<U056D>,<U053D>);(<U056E>,<U053E>);(<U056F>,<U053F>);/
+ (<U0570>,<U0540>);(<U0571>,<U0541>);(<U0572>,<U0542>);(<U0573>,<U0543>);/
+ (<U0574>,<U0544>);(<U0575>,<U0545>);(<U0576>,<U0546>);(<U0577>,<U0547>);/
+ (<U0578>,<U0548>);(<U0579>,<U0549>);(<U057A>,<U054A>);(<U057B>,<U054B>);/
+ (<U057C>,<U054C>);(<U057D>,<U054D>);(<U057E>,<U054E>);(<U057F>,<U054F>);/
+ (<U0580>,<U0550>);(<U0581>,<U0551>);(<U0582>,<U0552>);(<U0583>,<U0553>);/
+ (<U0584>,<U0554>);(<U0585>,<U0555>);(<U0586>,<U0556>);(<U10D0>,<U1C90>);/
+ (<U10D1>,<U1C91>);(<U10D2>,<U1C92>);(<U10D3>,<U1C93>);(<U10D4>,<U1C94>);/
+ (<U10D5>,<U1C95>);(<U10D6>,<U1C96>);(<U10D7>,<U1C97>);(<U10D8>,<U1C98>);/
+ (<U10D9>,<U1C99>);(<U10DA>,<U1C9A>);(<U10DB>,<U1C9B>);(<U10DC>,<U1C9C>);/
+ (<U10DD>,<U1C9D>);(<U10DE>,<U1C9E>);(<U10DF>,<U1C9F>);(<U10E0>,<U1CA0>);/
+ (<U10E1>,<U1CA1>);(<U10E2>,<U1CA2>);(<U10E3>,<U1CA3>);(<U10E4>,<U1CA4>);/
+ (<U10E5>,<U1CA5>);(<U10E6>,<U1CA6>);(<U10E7>,<U1CA7>);(<U10E8>,<U1CA8>);/
+ (<U10E9>,<U1CA9>);(<U10EA>,<U1CAA>);(<U10EB>,<U1CAB>);(<U10EC>,<U1CAC>);/
+ (<U10ED>,<U1CAD>);(<U10EE>,<U1CAE>);(<U10EF>,<U1CAF>);(<U10F0>,<U1CB0>);/
+ (<U10F1>,<U1CB1>);(<U10F2>,<U1CB2>);(<U10F3>,<U1CB3>);(<U10F4>,<U1CB4>);/
+ (<U10F5>,<U1CB5>);(<U10F6>,<U1CB6>);(<U10F7>,<U1CB7>);(<U10F8>,<U1CB8>);/
+ (<U10F9>,<U1CB9>);(<U10FA>,<U1CBA>);(<U10FD>,<U1CBD>);(<U10FE>,<U1CBE>);/
+ (<U10FF>,<U1CBF>);(<U13F8>,<U13F0>);(<U13F9>,<U13F1>);(<U13FA>,<U13F2>);/
+ (<U13FB>,<U13F3>);(<U13FC>,<U13F4>);(<U13FD>,<U13F5>);(<U1C80>,<U0412>);/
+ (<U1C81>,<U0414>);(<U1C82>,<U041E>);(<U1C83>,<U0421>);(<U1C84>,<U0422>);/
+ (<U1C85>,<U0422>);(<U1C86>,<U042A>);(<U1C87>,<U0462>);(<U1C88>,<UA64A>);/
+ (<U1D79>,<UA77D>);(<U1D7D>,<U2C63>);(<U1D8E>,<UA7C6>);(<U1E01>,<U1E00>);/
+ (<U1E03>,<U1E02>);(<U1E05>,<U1E04>);(<U1E07>,<U1E06>);(<U1E09>,<U1E08>);/
+ (<U1E0B>,<U1E0A>);(<U1E0D>,<U1E0C>);(<U1E0F>,<U1E0E>);(<U1E11>,<U1E10>);/
+ (<U1E13>,<U1E12>);(<U1E15>,<U1E14>);(<U1E17>,<U1E16>);(<U1E19>,<U1E18>);/
+ (<U1E1B>,<U1E1A>);(<U1E1D>,<U1E1C>);(<U1E1F>,<U1E1E>);(<U1E21>,<U1E20>);/
+ (<U1E23>,<U1E22>);(<U1E25>,<U1E24>);(<U1E27>,<U1E26>);(<U1E29>,<U1E28>);/
+ (<U1E2B>,<U1E2A>);(<U1E2D>,<U1E2C>);(<U1E2F>,<U1E2E>);(<U1E31>,<U1E30>);/
+ (<U1E33>,<U1E32>);(<U1E35>,<U1E34>);(<U1E37>,<U1E36>);(<U1E39>,<U1E38>);/
+ (<U1E3B>,<U1E3A>);(<U1E3D>,<U1E3C>);(<U1E3F>,<U1E3E>);(<U1E41>,<U1E40>);/
+ (<U1E43>,<U1E42>);(<U1E45>,<U1E44>);(<U1E47>,<U1E46>);(<U1E49>,<U1E48>);/
+ (<U1E4B>,<U1E4A>);(<U1E4D>,<U1E4C>);(<U1E4F>,<U1E4E>);(<U1E51>,<U1E50>);/
+ (<U1E53>,<U1E52>);(<U1E55>,<U1E54>);(<U1E57>,<U1E56>);(<U1E59>,<U1E58>);/
+ (<U1E5B>,<U1E5A>);(<U1E5D>,<U1E5C>);(<U1E5F>,<U1E5E>);(<U1E61>,<U1E60>);/
+ (<U1E63>,<U1E62>);(<U1E65>,<U1E64>);(<U1E67>,<U1E66>);(<U1E69>,<U1E68>);/
+ (<U1E6B>,<U1E6A>);(<U1E6D>,<U1E6C>);(<U1E6F>,<U1E6E>);(<U1E71>,<U1E70>);/
+ (<U1E73>,<U1E72>);(<U1E75>,<U1E74>);(<U1E77>,<U1E76>);(<U1E79>,<U1E78>);/
+ (<U1E7B>,<U1E7A>);(<U1E7D>,<U1E7C>);(<U1E7F>,<U1E7E>);(<U1E81>,<U1E80>);/
+ (<U1E83>,<U1E82>);(<U1E85>,<U1E84>);(<U1E87>,<U1E86>);(<U1E89>,<U1E88>);/
+ (<U1E8B>,<U1E8A>);(<U1E8D>,<U1E8C>);(<U1E8F>,<U1E8E>);(<U1E91>,<U1E90>);/
+ (<U1E93>,<U1E92>);(<U1E95>,<U1E94>);(<U1E9B>,<U1E60>);(<U1EA1>,<U1EA0>);/
+ (<U1EA3>,<U1EA2>);(<U1EA5>,<U1EA4>);(<U1EA7>,<U1EA6>);(<U1EA9>,<U1EA8>);/
+ (<U1EAB>,<U1EAA>);(<U1EAD>,<U1EAC>);(<U1EAF>,<U1EAE>);(<U1EB1>,<U1EB0>);/
+ (<U1EB3>,<U1EB2>);(<U1EB5>,<U1EB4>);(<U1EB7>,<U1EB6>);(<U1EB9>,<U1EB8>);/
+ (<U1EBB>,<U1EBA>);(<U1EBD>,<U1EBC>);(<U1EBF>,<U1EBE>);(<U1EC1>,<U1EC0>);/
+ (<U1EC3>,<U1EC2>);(<U1EC5>,<U1EC4>);(<U1EC7>,<U1EC6>);(<U1EC9>,<U1EC8>);/
+ (<U1ECB>,<U1ECA>);(<U1ECD>,<U1ECC>);(<U1ECF>,<U1ECE>);(<U1ED1>,<U1ED0>);/
+ (<U1ED3>,<U1ED2>);(<U1ED5>,<U1ED4>);(<U1ED7>,<U1ED6>);(<U1ED9>,<U1ED8>);/
+ (<U1EDB>,<U1EDA>);(<U1EDD>,<U1EDC>);(<U1EDF>,<U1EDE>);(<U1EE1>,<U1EE0>);/
+ (<U1EE3>,<U1EE2>);(<U1EE5>,<U1EE4>);(<U1EE7>,<U1EE6>);(<U1EE9>,<U1EE8>);/
+ (<U1EEB>,<U1EEA>);(<U1EED>,<U1EEC>);(<U1EEF>,<U1EEE>);(<U1EF1>,<U1EF0>);/
+ (<U1EF3>,<U1EF2>);(<U1EF5>,<U1EF4>);(<U1EF7>,<U1EF6>);(<U1EF9>,<U1EF8>);/
+ (<U1EFB>,<U1EFA>);(<U1EFD>,<U1EFC>);(<U1EFF>,<U1EFE>);(<U1F00>,<U1F08>);/
+ (<U1F01>,<U1F09>);(<U1F02>,<U1F0A>);(<U1F03>,<U1F0B>);(<U1F04>,<U1F0C>);/
+ (<U1F05>,<U1F0D>);(<U1F06>,<U1F0E>);(<U1F07>,<U1F0F>);(<U1F10>,<U1F18>);/
+ (<U1F11>,<U1F19>);(<U1F12>,<U1F1A>);(<U1F13>,<U1F1B>);(<U1F14>,<U1F1C>);/
+ (<U1F15>,<U1F1D>);(<U1F20>,<U1F28>);(<U1F21>,<U1F29>);(<U1F22>,<U1F2A>);/
+ (<U1F23>,<U1F2B>);(<U1F24>,<U1F2C>);(<U1F25>,<U1F2D>);(<U1F26>,<U1F2E>);/
+ (<U1F27>,<U1F2F>);(<U1F30>,<U1F38>);(<U1F31>,<U1F39>);(<U1F32>,<U1F3A>);/
+ (<U1F33>,<U1F3B>);(<U1F34>,<U1F3C>);(<U1F35>,<U1F3D>);(<U1F36>,<U1F3E>);/
+ (<U1F37>,<U1F3F>);(<U1F40>,<U1F48>);(<U1F41>,<U1F49>);(<U1F42>,<U1F4A>);/
+ (<U1F43>,<U1F4B>);(<U1F44>,<U1F4C>);(<U1F45>,<U1F4D>);(<U1F51>,<U1F59>);/
+ (<U1F53>,<U1F5B>);(<U1F55>,<U1F5D>);(<U1F57>,<U1F5F>);(<U1F60>,<U1F68>);/
+ (<U1F61>,<U1F69>);(<U1F62>,<U1F6A>);(<U1F63>,<U1F6B>);(<U1F64>,<U1F6C>);/
+ (<U1F65>,<U1F6D>);(<U1F66>,<U1F6E>);(<U1F67>,<U1F6F>);(<U1F70>,<U1FBA>);/
+ (<U1F71>,<U1FBB>);(<U1F72>,<U1FC8>);(<U1F73>,<U1FC9>);(<U1F74>,<U1FCA>);/
+ (<U1F75>,<U1FCB>);(<U1F76>,<U1FDA>);(<U1F77>,<U1FDB>);(<U1F78>,<U1FF8>);/
+ (<U1F79>,<U1FF9>);(<U1F7A>,<U1FEA>);(<U1F7B>,<U1FEB>);(<U1F7C>,<U1FFA>);/
+ (<U1F7D>,<U1FFB>);(<U1F80>,<U1F88>);(<U1F81>,<U1F89>);(<U1F82>,<U1F8A>);/
+ (<U1F83>,<U1F8B>);(<U1F84>,<U1F8C>);(<U1F85>,<U1F8D>);(<U1F86>,<U1F8E>);/
+ (<U1F87>,<U1F8F>);(<U1F90>,<U1F98>);(<U1F91>,<U1F99>);(<U1F92>,<U1F9A>);/
+ (<U1F93>,<U1F9B>);(<U1F94>,<U1F9C>);(<U1F95>,<U1F9D>);(<U1F96>,<U1F9E>);/
+ (<U1F97>,<U1F9F>);(<U1FA0>,<U1FA8>);(<U1FA1>,<U1FA9>);(<U1FA2>,<U1FAA>);/
+ (<U1FA3>,<U1FAB>);(<U1FA4>,<U1FAC>);(<U1FA5>,<U1FAD>);(<U1FA6>,<U1FAE>);/
+ (<U1FA7>,<U1FAF>);(<U1FB0>,<U1FB8>);(<U1FB1>,<U1FB9>);(<U1FB3>,<U1FBC>);/
+ (<U1FBE>,<U0399>);(<U1FC3>,<U1FCC>);(<U1FD0>,<U1FD8>);(<U1FD1>,<U1FD9>);/
+ (<U1FE0>,<U1FE8>);(<U1FE1>,<U1FE9>);(<U1FE5>,<U1FEC>);(<U1FF3>,<U1FFC>);/
+ (<U214E>,<U2132>);(<U2170>,<U2160>);(<U2171>,<U2161>);(<U2172>,<U2162>);/
+ (<U2173>,<U2163>);(<U2174>,<U2164>);(<U2175>,<U2165>);(<U2176>,<U2166>);/
+ (<U2177>,<U2167>);(<U2178>,<U2168>);(<U2179>,<U2169>);(<U217A>,<U216A>);/
+ (<U217B>,<U216B>);(<U217C>,<U216C>);(<U217D>,<U216D>);(<U217E>,<U216E>);/
+ (<U217F>,<U216F>);(<U2184>,<U2183>);(<U24D0>,<U24B6>);(<U24D1>,<U24B7>);/
+ (<U24D2>,<U24B8>);(<U24D3>,<U24B9>);(<U24D4>,<U24BA>);(<U24D5>,<U24BB>);/
+ (<U24D6>,<U24BC>);(<U24D7>,<U24BD>);(<U24D8>,<U24BE>);(<U24D9>,<U24BF>);/
+ (<U24DA>,<U24C0>);(<U24DB>,<U24C1>);(<U24DC>,<U24C2>);(<U24DD>,<U24C3>);/
+ (<U24DE>,<U24C4>);(<U24DF>,<U24C5>);(<U24E0>,<U24C6>);(<U24E1>,<U24C7>);/
+ (<U24E2>,<U24C8>);(<U24E3>,<U24C9>);(<U24E4>,<U24CA>);(<U24E5>,<U24CB>);/
+ (<U24E6>,<U24CC>);(<U24E7>,<U24CD>);(<U24E8>,<U24CE>);(<U24E9>,<U24CF>);/
+ (<U2C30>,<U2C00>);(<U2C31>,<U2C01>);(<U2C32>,<U2C02>);(<U2C33>,<U2C03>);/
+ (<U2C34>,<U2C04>);(<U2C35>,<U2C05>);(<U2C36>,<U2C06>);(<U2C37>,<U2C07>);/
+ (<U2C38>,<U2C08>);(<U2C39>,<U2C09>);(<U2C3A>,<U2C0A>);(<U2C3B>,<U2C0B>);/
+ (<U2C3C>,<U2C0C>);(<U2C3D>,<U2C0D>);(<U2C3E>,<U2C0E>);(<U2C3F>,<U2C0F>);/
+ (<U2C40>,<U2C10>);(<U2C41>,<U2C11>);(<U2C42>,<U2C12>);(<U2C43>,<U2C13>);/
+ (<U2C44>,<U2C14>);(<U2C45>,<U2C15>);(<U2C46>,<U2C16>);(<U2C47>,<U2C17>);/
+ (<U2C48>,<U2C18>);(<U2C49>,<U2C19>);(<U2C4A>,<U2C1A>);(<U2C4B>,<U2C1B>);/
+ (<U2C4C>,<U2C1C>);(<U2C4D>,<U2C1D>);(<U2C4E>,<U2C1E>);(<U2C4F>,<U2C1F>);/
+ (<U2C50>,<U2C20>);(<U2C51>,<U2C21>);(<U2C52>,<U2C22>);(<U2C53>,<U2C23>);/
+ (<U2C54>,<U2C24>);(<U2C55>,<U2C25>);(<U2C56>,<U2C26>);(<U2C57>,<U2C27>);/
+ (<U2C58>,<U2C28>);(<U2C59>,<U2C29>);(<U2C5A>,<U2C2A>);(<U2C5B>,<U2C2B>);/
+ (<U2C5C>,<U2C2C>);(<U2C5D>,<U2C2D>);(<U2C5E>,<U2C2E>);(<U2C61>,<U2C60>);/
+ (<U2C65>,<U023A>);(<U2C66>,<U023E>);(<U2C68>,<U2C67>);(<U2C6A>,<U2C69>);/
+ (<U2C6C>,<U2C6B>);(<U2C73>,<U2C72>);(<U2C76>,<U2C75>);(<U2C81>,<U2C80>);/
+ (<U2C83>,<U2C82>);(<U2C85>,<U2C84>);(<U2C87>,<U2C86>);(<U2C89>,<U2C88>);/
+ (<U2C8B>,<U2C8A>);(<U2C8D>,<U2C8C>);(<U2C8F>,<U2C8E>);(<U2C91>,<U2C90>);/
+ (<U2C93>,<U2C92>);(<U2C95>,<U2C94>);(<U2C97>,<U2C96>);(<U2C99>,<U2C98>);/
+ (<U2C9B>,<U2C9A>);(<U2C9D>,<U2C9C>);(<U2C9F>,<U2C9E>);(<U2CA1>,<U2CA0>);/
+ (<U2CA3>,<U2CA2>);(<U2CA5>,<U2CA4>);(<U2CA7>,<U2CA6>);(<U2CA9>,<U2CA8>);/
+ (<U2CAB>,<U2CAA>);(<U2CAD>,<U2CAC>);(<U2CAF>,<U2CAE>);(<U2CB1>,<U2CB0>);/
+ (<U2CB3>,<U2CB2>);(<U2CB5>,<U2CB4>);(<U2CB7>,<U2CB6>);(<U2CB9>,<U2CB8>);/
+ (<U2CBB>,<U2CBA>);(<U2CBD>,<U2CBC>);(<U2CBF>,<U2CBE>);(<U2CC1>,<U2CC0>);/
+ (<U2CC3>,<U2CC2>);(<U2CC5>,<U2CC4>);(<U2CC7>,<U2CC6>);(<U2CC9>,<U2CC8>);/
+ (<U2CCB>,<U2CCA>);(<U2CCD>,<U2CCC>);(<U2CCF>,<U2CCE>);(<U2CD1>,<U2CD0>);/
+ (<U2CD3>,<U2CD2>);(<U2CD5>,<U2CD4>);(<U2CD7>,<U2CD6>);(<U2CD9>,<U2CD8>);/
+ (<U2CDB>,<U2CDA>);(<U2CDD>,<U2CDC>);(<U2CDF>,<U2CDE>);(<U2CE1>,<U2CE0>);/
+ (<U2CE3>,<U2CE2>);(<U2CEC>,<U2CEB>);(<U2CEE>,<U2CED>);(<U2CF3>,<U2CF2>);/
+ (<U2D00>,<U10A0>);(<U2D01>,<U10A1>);(<U2D02>,<U10A2>);(<U2D03>,<U10A3>);/
+ (<U2D04>,<U10A4>);(<U2D05>,<U10A5>);(<U2D06>,<U10A6>);(<U2D07>,<U10A7>);/
+ (<U2D08>,<U10A8>);(<U2D09>,<U10A9>);(<U2D0A>,<U10AA>);(<U2D0B>,<U10AB>);/
+ (<U2D0C>,<U10AC>);(<U2D0D>,<U10AD>);(<U2D0E>,<U10AE>);(<U2D0F>,<U10AF>);/
+ (<U2D10>,<U10B0>);(<U2D11>,<U10B1>);(<U2D12>,<U10B2>);(<U2D13>,<U10B3>);/
+ (<U2D14>,<U10B4>);(<U2D15>,<U10B5>);(<U2D16>,<U10B6>);(<U2D17>,<U10B7>);/
+ (<U2D18>,<U10B8>);(<U2D19>,<U10B9>);(<U2D1A>,<U10BA>);(<U2D1B>,<U10BB>);/
+ (<U2D1C>,<U10BC>);(<U2D1D>,<U10BD>);(<U2D1E>,<U10BE>);(<U2D1F>,<U10BF>);/
+ (<U2D20>,<U10C0>);(<U2D21>,<U10C1>);(<U2D22>,<U10C2>);(<U2D23>,<U10C3>);/
+ (<U2D24>,<U10C4>);(<U2D25>,<U10C5>);(<U2D27>,<U10C7>);(<U2D2D>,<U10CD>);/
+ (<UA641>,<UA640>);(<UA643>,<UA642>);(<UA645>,<UA644>);(<UA647>,<UA646>);/
+ (<UA649>,<UA648>);(<UA64B>,<UA64A>);(<UA64D>,<UA64C>);(<UA64F>,<UA64E>);/
+ (<UA651>,<UA650>);(<UA653>,<UA652>);(<UA655>,<UA654>);(<UA657>,<UA656>);/
+ (<UA659>,<UA658>);(<UA65B>,<UA65A>);(<UA65D>,<UA65C>);(<UA65F>,<UA65E>);/
+ (<UA661>,<UA660>);(<UA663>,<UA662>);(<UA665>,<UA664>);(<UA667>,<UA666>);/
+ (<UA669>,<UA668>);(<UA66B>,<UA66A>);(<UA66D>,<UA66C>);(<UA681>,<UA680>);/
+ (<UA683>,<UA682>);(<UA685>,<UA684>);(<UA687>,<UA686>);(<UA689>,<UA688>);/
+ (<UA68B>,<UA68A>);(<UA68D>,<UA68C>);(<UA68F>,<UA68E>);(<UA691>,<UA690>);/
+ (<UA693>,<UA692>);(<UA695>,<UA694>);(<UA697>,<UA696>);(<UA699>,<UA698>);/
+ (<UA69B>,<UA69A>);(<UA723>,<UA722>);(<UA725>,<UA724>);(<UA727>,<UA726>);/
+ (<UA729>,<UA728>);(<UA72B>,<UA72A>);(<UA72D>,<UA72C>);(<UA72F>,<UA72E>);/
+ (<UA733>,<UA732>);(<UA735>,<UA734>);(<UA737>,<UA736>);(<UA739>,<UA738>);/
+ (<UA73B>,<UA73A>);(<UA73D>,<UA73C>);(<UA73F>,<UA73E>);(<UA741>,<UA740>);/
+ (<UA743>,<UA742>);(<UA745>,<UA744>);(<UA747>,<UA746>);(<UA749>,<UA748>);/
+ (<UA74B>,<UA74A>);(<UA74D>,<UA74C>);(<UA74F>,<UA74E>);(<UA751>,<UA750>);/
+ (<UA753>,<UA752>);(<UA755>,<UA754>);(<UA757>,<UA756>);(<UA759>,<UA758>);/
+ (<UA75B>,<UA75A>);(<UA75D>,<UA75C>);(<UA75F>,<UA75E>);(<UA761>,<UA760>);/
+ (<UA763>,<UA762>);(<UA765>,<UA764>);(<UA767>,<UA766>);(<UA769>,<UA768>);/
+ (<UA76B>,<UA76A>);(<UA76D>,<UA76C>);(<UA76F>,<UA76E>);(<UA77A>,<UA779>);/
+ (<UA77C>,<UA77B>);(<UA77F>,<UA77E>);(<UA781>,<UA780>);(<UA783>,<UA782>);/
+ (<UA785>,<UA784>);(<UA787>,<UA786>);(<UA78C>,<UA78B>);(<UA791>,<UA790>);/
+ (<UA793>,<UA792>);(<UA794>,<UA7C4>);(<UA797>,<UA796>);(<UA799>,<UA798>);/
+ (<UA79B>,<UA79A>);(<UA79D>,<UA79C>);(<UA79F>,<UA79E>);(<UA7A1>,<UA7A0>);/
+ (<UA7A3>,<UA7A2>);(<UA7A5>,<UA7A4>);(<UA7A7>,<UA7A6>);(<UA7A9>,<UA7A8>);/
+ (<UA7B5>,<UA7B4>);(<UA7B7>,<UA7B6>);(<UA7B9>,<UA7B8>);(<UA7BB>,<UA7BA>);/
+ (<UA7BD>,<UA7BC>);(<UA7BF>,<UA7BE>);(<UA7C3>,<UA7C2>);(<UAB53>,<UA7B3>);/
+ (<UAB70>,<U13A0>);(<UAB71>,<U13A1>);(<UAB72>,<U13A2>);(<UAB73>,<U13A3>);/
+ (<UAB74>,<U13A4>);(<UAB75>,<U13A5>);(<UAB76>,<U13A6>);(<UAB77>,<U13A7>);/
+ (<UAB78>,<U13A8>);(<UAB79>,<U13A9>);(<UAB7A>,<U13AA>);(<UAB7B>,<U13AB>);/
+ (<UAB7C>,<U13AC>);(<UAB7D>,<U13AD>);(<UAB7E>,<U13AE>);(<UAB7F>,<U13AF>);/
+ (<UAB80>,<U13B0>);(<UAB81>,<U13B1>);(<UAB82>,<U13B2>);(<UAB83>,<U13B3>);/
+ (<UAB84>,<U13B4>);(<UAB85>,<U13B5>);(<UAB86>,<U13B6>);(<UAB87>,<U13B7>);/
+ (<UAB88>,<U13B8>);(<UAB89>,<U13B9>);(<UAB8A>,<U13BA>);(<UAB8B>,<U13BB>);/
+ (<UAB8C>,<U13BC>);(<UAB8D>,<U13BD>);(<UAB8E>,<U13BE>);(<UAB8F>,<U13BF>);/
+ (<UAB90>,<U13C0>);(<UAB91>,<U13C1>);(<UAB92>,<U13C2>);(<UAB93>,<U13C3>);/
+ (<UAB94>,<U13C4>);(<UAB95>,<U13C5>);(<UAB96>,<U13C6>);(<UAB97>,<U13C7>);/
+ (<UAB98>,<U13C8>);(<UAB99>,<U13C9>);(<UAB9A>,<U13CA>);(<UAB9B>,<U13CB>);/
+ (<UAB9C>,<U13CC>);(<UAB9D>,<U13CD>);(<UAB9E>,<U13CE>);(<UAB9F>,<U13CF>);/
+ (<UABA0>,<U13D0>);(<UABA1>,<U13D1>);(<UABA2>,<U13D2>);(<UABA3>,<U13D3>);/
+ (<UABA4>,<U13D4>);(<UABA5>,<U13D5>);(<UABA6>,<U13D6>);(<UABA7>,<U13D7>);/
+ (<UABA8>,<U13D8>);(<UABA9>,<U13D9>);(<UABAA>,<U13DA>);(<UABAB>,<U13DB>);/
+ (<UABAC>,<U13DC>);(<UABAD>,<U13DD>);(<UABAE>,<U13DE>);(<UABAF>,<U13DF>);/
+ (<UABB0>,<U13E0>);(<UABB1>,<U13E1>);(<UABB2>,<U13E2>);(<UABB3>,<U13E3>);/
+ (<UABB4>,<U13E4>);(<UABB5>,<U13E5>);(<UABB6>,<U13E6>);(<UABB7>,<U13E7>);/
+ (<UABB8>,<U13E8>);(<UABB9>,<U13E9>);(<UABBA>,<U13EA>);(<UABBB>,<U13EB>);/
+ (<UABBC>,<U13EC>);(<UABBD>,<U13ED>);(<UABBE>,<U13EE>);(<UABBF>,<U13EF>);/
+ (<UFF41>,<UFF21>);(<UFF42>,<UFF22>);(<UFF43>,<UFF23>);(<UFF44>,<UFF24>);/
+ (<UFF45>,<UFF25>);(<UFF46>,<UFF26>);(<UFF47>,<UFF27>);(<UFF48>,<UFF28>);/
+ (<UFF49>,<UFF29>);(<UFF4A>,<UFF2A>);(<UFF4B>,<UFF2B>);(<UFF4C>,<UFF2C>);/
+ (<UFF4D>,<UFF2D>);(<UFF4E>,<UFF2E>);(<UFF4F>,<UFF2F>);(<UFF50>,<UFF30>);/
+ (<UFF51>,<UFF31>);(<UFF52>,<UFF32>);(<UFF53>,<UFF33>);(<UFF54>,<UFF34>);/
+ (<UFF55>,<UFF35>);(<UFF56>,<UFF36>);(<UFF57>,<UFF37>);(<UFF58>,<UFF38>);/
+ (<UFF59>,<UFF39>);(<UFF5A>,<UFF3A>);(<U00010428>,<U00010400>);/
+ (<U00010429>,<U00010401>);(<U0001042A>,<U00010402>);/
+ (<U0001042B>,<U00010403>);(<U0001042C>,<U00010404>);/
+ (<U0001042D>,<U00010405>);(<U0001042E>,<U00010406>);/
+ (<U0001042F>,<U00010407>);(<U00010430>,<U00010408>);/
+ (<U00010431>,<U00010409>);(<U00010432>,<U0001040A>);/
+ (<U00010433>,<U0001040B>);(<U00010434>,<U0001040C>);/
+ (<U00010435>,<U0001040D>);(<U00010436>,<U0001040E>);/
+ (<U00010437>,<U0001040F>);(<U00010438>,<U00010410>);/
+ (<U00010439>,<U00010411>);(<U0001043A>,<U00010412>);/
+ (<U0001043B>,<U00010413>);(<U0001043C>,<U00010414>);/
+ (<U0001043D>,<U00010415>);(<U0001043E>,<U00010416>);/
+ (<U0001043F>,<U00010417>);(<U00010440>,<U00010418>);/
+ (<U00010441>,<U00010419>);(<U00010442>,<U0001041A>);/
+ (<U00010443>,<U0001041B>);(<U00010444>,<U0001041C>);/
+ (<U00010445>,<U0001041D>);(<U00010446>,<U0001041E>);/
+ (<U00010447>,<U0001041F>);(<U00010448>,<U00010420>);/
+ (<U00010449>,<U00010421>);(<U0001044A>,<U00010422>);/
+ (<U0001044B>,<U00010423>);(<U0001044C>,<U00010424>);/
+ (<U0001044D>,<U00010425>);(<U0001044E>,<U00010426>);/
+ (<U0001044F>,<U00010427>);(<U000104D8>,<U000104B0>);/
+ (<U000104D9>,<U000104B1>);(<U000104DA>,<U000104B2>);/
+ (<U000104DB>,<U000104B3>);(<U000104DC>,<U000104B4>);/
+ (<U000104DD>,<U000104B5>);(<U000104DE>,<U000104B6>);/
+ (<U000104DF>,<U000104B7>);(<U000104E0>,<U000104B8>);/
+ (<U000104E1>,<U000104B9>);(<U000104E2>,<U000104BA>);/
+ (<U000104E3>,<U000104BB>);(<U000104E4>,<U000104BC>);/
+ (<U000104E5>,<U000104BD>);(<U000104E6>,<U000104BE>);/
+ (<U000104E7>,<U000104BF>);(<U000104E8>,<U000104C0>);/
+ (<U000104E9>,<U000104C1>);(<U000104EA>,<U000104C2>);/
+ (<U000104EB>,<U000104C3>);(<U000104EC>,<U000104C4>);/
+ (<U000104ED>,<U000104C5>);(<U000104EE>,<U000104C6>);/
+ (<U000104EF>,<U000104C7>);(<U000104F0>,<U000104C8>);/
+ (<U000104F1>,<U000104C9>);(<U000104F2>,<U000104CA>);/
+ (<U000104F3>,<U000104CB>);(<U000104F4>,<U000104CC>);/
+ (<U000104F5>,<U000104CD>);(<U000104F6>,<U000104CE>);/
+ (<U000104F7>,<U000104CF>);(<U000104F8>,<U000104D0>);/
+ (<U000104F9>,<U000104D1>);(<U000104FA>,<U000104D2>);/
+ (<U000104FB>,<U000104D3>);(<U00010CC0>,<U00010C80>);/
+ (<U00010CC1>,<U00010C81>);(<U00010CC2>,<U00010C82>);/
+ (<U00010CC3>,<U00010C83>);(<U00010CC4>,<U00010C84>);/
+ (<U00010CC5>,<U00010C85>);(<U00010CC6>,<U00010C86>);/
+ (<U00010CC7>,<U00010C87>);(<U00010CC8>,<U00010C88>);/
+ (<U00010CC9>,<U00010C89>);(<U00010CCA>,<U00010C8A>);/
+ (<U00010CCB>,<U00010C8B>);(<U00010CCC>,<U00010C8C>);/
+ (<U00010CCD>,<U00010C8D>);(<U00010CCE>,<U00010C8E>);/
+ (<U00010CCF>,<U00010C8F>);(<U00010CD0>,<U00010C90>);/
+ (<U00010CD1>,<U00010C91>);(<U00010CD2>,<U00010C92>);/
+ (<U00010CD3>,<U00010C93>);(<U00010CD4>,<U00010C94>);/
+ (<U00010CD5>,<U00010C95>);(<U00010CD6>,<U00010C96>);/
+ (<U00010CD7>,<U00010C97>);(<U00010CD8>,<U00010C98>);/
+ (<U00010CD9>,<U00010C99>);(<U00010CDA>,<U00010C9A>);/
+ (<U00010CDB>,<U00010C9B>);(<U00010CDC>,<U00010C9C>);/
+ (<U00010CDD>,<U00010C9D>);(<U00010CDE>,<U00010C9E>);/
+ (<U00010CDF>,<U00010C9F>);(<U00010CE0>,<U00010CA0>);/
+ (<U00010CE1>,<U00010CA1>);(<U00010CE2>,<U00010CA2>);/
+ (<U00010CE3>,<U00010CA3>);(<U00010CE4>,<U00010CA4>);/
+ (<U00010CE5>,<U00010CA5>);(<U00010CE6>,<U00010CA6>);/
+ (<U00010CE7>,<U00010CA7>);(<U00010CE8>,<U00010CA8>);/
+ (<U00010CE9>,<U00010CA9>);(<U00010CEA>,<U00010CAA>);/
+ (<U00010CEB>,<U00010CAB>);(<U00010CEC>,<U00010CAC>);/
+ (<U00010CED>,<U00010CAD>);(<U00010CEE>,<U00010CAE>);/
+ (<U00010CEF>,<U00010CAF>);(<U00010CF0>,<U00010CB0>);/
+ (<U00010CF1>,<U00010CB1>);(<U00010CF2>,<U00010CB2>);/
+ (<U000118C0>,<U000118A0>);(<U000118C1>,<U000118A1>);/
+ (<U000118C2>,<U000118A2>);(<U000118C3>,<U000118A3>);/
+ (<U000118C4>,<U000118A4>);(<U000118C5>,<U000118A5>);/
+ (<U000118C6>,<U000118A6>);(<U000118C7>,<U000118A7>);/
+ (<U000118C8>,<U000118A8>);(<U000118C9>,<U000118A9>);/
+ (<U000118CA>,<U000118AA>);(<U000118CB>,<U000118AB>);/
+ (<U000118CC>,<U000118AC>);(<U000118CD>,<U000118AD>);/
+ (<U000118CE>,<U000118AE>);(<U000118CF>,<U000118AF>);/
+ (<U000118D0>,<U000118B0>);(<U000118D1>,<U000118B1>);/
+ (<U000118D2>,<U000118B2>);(<U000118D3>,<U000118B3>);/
+ (<U000118D4>,<U000118B4>);(<U000118D5>,<U000118B5>);/
+ (<U000118D6>,<U000118B6>);(<U000118D7>,<U000118B7>);/
+ (<U000118D8>,<U000118B8>);(<U000118D9>,<U000118B9>);/
+ (<U000118DA>,<U000118BA>);(<U000118DB>,<U000118BB>);/
+ (<U000118DC>,<U000118BC>);(<U000118DD>,<U000118BD>);/
+ (<U000118DE>,<U000118BE>);(<U000118DF>,<U000118BF>);/
+ (<U00016E60>,<U00016E40>);(<U00016E61>,<U00016E41>);/
+ (<U00016E62>,<U00016E42>);(<U00016E63>,<U00016E43>);/
+ (<U00016E64>,<U00016E44>);(<U00016E65>,<U00016E45>);/
+ (<U00016E66>,<U00016E46>);(<U00016E67>,<U00016E47>);/
+ (<U00016E68>,<U00016E48>);(<U00016E69>,<U00016E49>);/
+ (<U00016E6A>,<U00016E4A>);(<U00016E6B>,<U00016E4B>);/
+ (<U00016E6C>,<U00016E4C>);(<U00016E6D>,<U00016E4D>);/
+ (<U00016E6E>,<U00016E4E>);(<U00016E6F>,<U00016E4F>);/
+ (<U00016E70>,<U00016E50>);(<U00016E71>,<U00016E51>);/
+ (<U00016E72>,<U00016E52>);(<U00016E73>,<U00016E53>);/
+ (<U00016E74>,<U00016E54>);(<U00016E75>,<U00016E55>);/
+ (<U00016E76>,<U00016E56>);(<U00016E77>,<U00016E57>);/
+ (<U00016E78>,<U00016E58>);(<U00016E79>,<U00016E59>);/
+ (<U00016E7A>,<U00016E5A>);(<U00016E7B>,<U00016E5B>);/
+ (<U00016E7C>,<U00016E5C>);(<U00016E7D>,<U00016E5D>);/
+ (<U00016E7E>,<U00016E5E>);(<U00016E7F>,<U00016E5F>);/
+ (<U0001E922>,<U0001E900>);(<U0001E923>,<U0001E901>);/
+ (<U0001E924>,<U0001E902>);(<U0001E925>,<U0001E903>);/
+ (<U0001E926>,<U0001E904>);(<U0001E927>,<U0001E905>);/
+ (<U0001E928>,<U0001E906>);(<U0001E929>,<U0001E907>);/
+ (<U0001E92A>,<U0001E908>);(<U0001E92B>,<U0001E909>);/
+ (<U0001E92C>,<U0001E90A>);(<U0001E92D>,<U0001E90B>);/
+ (<U0001E92E>,<U0001E90C>);(<U0001E92F>,<U0001E90D>);/
+ (<U0001E930>,<U0001E90E>);(<U0001E931>,<U0001E90F>);/
+ (<U0001E932>,<U0001E910>);(<U0001E933>,<U0001E911>);/
+ (<U0001E934>,<U0001E912>);(<U0001E935>,<U0001E913>);/
+ (<U0001E936>,<U0001E914>);(<U0001E937>,<U0001E915>);/
+ (<U0001E938>,<U0001E916>);(<U0001E939>,<U0001E917>);/
+ (<U0001E93A>,<U0001E918>);(<U0001E93B>,<U0001E919>);/
+ (<U0001E93C>,<U0001E91A>);(<U0001E93D>,<U0001E91B>);/
+ (<U0001E93E>,<U0001E91C>);(<U0001E93F>,<U0001E91D>);/
+ (<U0001E940>,<U0001E91E>);(<U0001E941>,<U0001E91F>);/
+ (<U0001E942>,<U0001E920>);(<U0001E943>,<U0001E921>)
tolower /
(<U0041>,<U0061>);(<U0042>,<U0062>);(<U0043>,<U0063>);(<U0044>,<U0064>);/
@@ -1765,125 +1784,127 @@ tolower /
(<UA7AA>,<U0266>);(<UA7AB>,<U025C>);(<UA7AC>,<U0261>);(<UA7AD>,<U026C>);/
(<UA7AE>,<U026A>);(<UA7B0>,<U029E>);(<UA7B1>,<U0287>);(<UA7B2>,<U029D>);/
(<UA7B3>,<UAB53>);(<UA7B4>,<UA7B5>);(<UA7B6>,<UA7B7>);(<UA7B8>,<UA7B9>);/
- (<UFF21>,<UFF41>);(<UFF22>,<UFF42>);(<UFF23>,<UFF43>);(<UFF24>,<UFF44>);/
- (<UFF25>,<UFF45>);(<UFF26>,<UFF46>);(<UFF27>,<UFF47>);(<UFF28>,<UFF48>);/
- (<UFF29>,<UFF49>);(<UFF2A>,<UFF4A>);(<UFF2B>,<UFF4B>);(<UFF2C>,<UFF4C>);/
- (<UFF2D>,<UFF4D>);(<UFF2E>,<UFF4E>);(<UFF2F>,<UFF4F>);(<UFF30>,<UFF50>);/
- (<UFF31>,<UFF51>);(<UFF32>,<UFF52>);(<UFF33>,<UFF53>);(<UFF34>,<UFF54>);/
- (<UFF35>,<UFF55>);(<UFF36>,<UFF56>);(<UFF37>,<UFF57>);(<UFF38>,<UFF58>);/
- (<UFF39>,<UFF59>);(<UFF3A>,<UFF5A>);(<U00010400>,<U00010428>);/
- (<U00010401>,<U00010429>);(<U00010402>,<U0001042A>);/
- (<U00010403>,<U0001042B>);(<U00010404>,<U0001042C>);/
- (<U00010405>,<U0001042D>);(<U00010406>,<U0001042E>);/
- (<U00010407>,<U0001042F>);(<U00010408>,<U00010430>);/
- (<U00010409>,<U00010431>);(<U0001040A>,<U00010432>);/
- (<U0001040B>,<U00010433>);(<U0001040C>,<U00010434>);/
- (<U0001040D>,<U00010435>);(<U0001040E>,<U00010436>);/
- (<U0001040F>,<U00010437>);(<U00010410>,<U00010438>);/
- (<U00010411>,<U00010439>);(<U00010412>,<U0001043A>);/
- (<U00010413>,<U0001043B>);(<U00010414>,<U0001043C>);/
- (<U00010415>,<U0001043D>);(<U00010416>,<U0001043E>);/
- (<U00010417>,<U0001043F>);(<U00010418>,<U00010440>);/
- (<U00010419>,<U00010441>);(<U0001041A>,<U00010442>);/
- (<U0001041B>,<U00010443>);(<U0001041C>,<U00010444>);/
- (<U0001041D>,<U00010445>);(<U0001041E>,<U00010446>);/
- (<U0001041F>,<U00010447>);(<U00010420>,<U00010448>);/
- (<U00010421>,<U00010449>);(<U00010422>,<U0001044A>);/
- (<U00010423>,<U0001044B>);(<U00010424>,<U0001044C>);/
- (<U00010425>,<U0001044D>);(<U00010426>,<U0001044E>);/
- (<U00010427>,<U0001044F>);(<U000104B0>,<U000104D8>);/
- (<U000104B1>,<U000104D9>);(<U000104B2>,<U000104DA>);/
- (<U000104B3>,<U000104DB>);(<U000104B4>,<U000104DC>);/
- (<U000104B5>,<U000104DD>);(<U000104B6>,<U000104DE>);/
- (<U000104B7>,<U000104DF>);(<U000104B8>,<U000104E0>);/
- (<U000104B9>,<U000104E1>);(<U000104BA>,<U000104E2>);/
- (<U000104BB>,<U000104E3>);(<U000104BC>,<U000104E4>);/
- (<U000104BD>,<U000104E5>);(<U000104BE>,<U000104E6>);/
- (<U000104BF>,<U000104E7>);(<U000104C0>,<U000104E8>);/
- (<U000104C1>,<U000104E9>);(<U000104C2>,<U000104EA>);/
- (<U000104C3>,<U000104EB>);(<U000104C4>,<U000104EC>);/
- (<U000104C5>,<U000104ED>);(<U000104C6>,<U000104EE>);/
- (<U000104C7>,<U000104EF>);(<U000104C8>,<U000104F0>);/
- (<U000104C9>,<U000104F1>);(<U000104CA>,<U000104F2>);/
- (<U000104CB>,<U000104F3>);(<U000104CC>,<U000104F4>);/
- (<U000104CD>,<U000104F5>);(<U000104CE>,<U000104F6>);/
- (<U000104CF>,<U000104F7>);(<U000104D0>,<U000104F8>);/
- (<U000104D1>,<U000104F9>);(<U000104D2>,<U000104FA>);/
- (<U000104D3>,<U000104FB>);(<U00010C80>,<U00010CC0>);/
- (<U00010C81>,<U00010CC1>);(<U00010C82>,<U00010CC2>);/
- (<U00010C83>,<U00010CC3>);(<U00010C84>,<U00010CC4>);/
- (<U00010C85>,<U00010CC5>);(<U00010C86>,<U00010CC6>);/
- (<U00010C87>,<U00010CC7>);(<U00010C88>,<U00010CC8>);/
- (<U00010C89>,<U00010CC9>);(<U00010C8A>,<U00010CCA>);/
- (<U00010C8B>,<U00010CCB>);(<U00010C8C>,<U00010CCC>);/
- (<U00010C8D>,<U00010CCD>);(<U00010C8E>,<U00010CCE>);/
- (<U00010C8F>,<U00010CCF>);(<U00010C90>,<U00010CD0>);/
- (<U00010C91>,<U00010CD1>);(<U00010C92>,<U00010CD2>);/
- (<U00010C93>,<U00010CD3>);(<U00010C94>,<U00010CD4>);/
- (<U00010C95>,<U00010CD5>);(<U00010C96>,<U00010CD6>);/
- (<U00010C97>,<U00010CD7>);(<U00010C98>,<U00010CD8>);/
- (<U00010C99>,<U00010CD9>);(<U00010C9A>,<U00010CDA>);/
- (<U00010C9B>,<U00010CDB>);(<U00010C9C>,<U00010CDC>);/
- (<U00010C9D>,<U00010CDD>);(<U00010C9E>,<U00010CDE>);/
- (<U00010C9F>,<U00010CDF>);(<U00010CA0>,<U00010CE0>);/
- (<U00010CA1>,<U00010CE1>);(<U00010CA2>,<U00010CE2>);/
- (<U00010CA3>,<U00010CE3>);(<U00010CA4>,<U00010CE4>);/
- (<U00010CA5>,<U00010CE5>);(<U00010CA6>,<U00010CE6>);/
- (<U00010CA7>,<U00010CE7>);(<U00010CA8>,<U00010CE8>);/
- (<U00010CA9>,<U00010CE9>);(<U00010CAA>,<U00010CEA>);/
- (<U00010CAB>,<U00010CEB>);(<U00010CAC>,<U00010CEC>);/
- (<U00010CAD>,<U00010CED>);(<U00010CAE>,<U00010CEE>);/
- (<U00010CAF>,<U00010CEF>);(<U00010CB0>,<U00010CF0>);/
- (<U00010CB1>,<U00010CF1>);(<U00010CB2>,<U00010CF2>);/
- (<U000118A0>,<U000118C0>);(<U000118A1>,<U000118C1>);/
- (<U000118A2>,<U000118C2>);(<U000118A3>,<U000118C3>);/
- (<U000118A4>,<U000118C4>);(<U000118A5>,<U000118C5>);/
- (<U000118A6>,<U000118C6>);(<U000118A7>,<U000118C7>);/
- (<U000118A8>,<U000118C8>);(<U000118A9>,<U000118C9>);/
- (<U000118AA>,<U000118CA>);(<U000118AB>,<U000118CB>);/
- (<U000118AC>,<U000118CC>);(<U000118AD>,<U000118CD>);/
- (<U000118AE>,<U000118CE>);(<U000118AF>,<U000118CF>);/
- (<U000118B0>,<U000118D0>);(<U000118B1>,<U000118D1>);/
- (<U000118B2>,<U000118D2>);(<U000118B3>,<U000118D3>);/
- (<U000118B4>,<U000118D4>);(<U000118B5>,<U000118D5>);/
- (<U000118B6>,<U000118D6>);(<U000118B7>,<U000118D7>);/
- (<U000118B8>,<U000118D8>);(<U000118B9>,<U000118D9>);/
- (<U000118BA>,<U000118DA>);(<U000118BB>,<U000118DB>);/
- (<U000118BC>,<U000118DC>);(<U000118BD>,<U000118DD>);/
- (<U000118BE>,<U000118DE>);(<U000118BF>,<U000118DF>);/
- (<U00016E40>,<U00016E60>);(<U00016E41>,<U00016E61>);/
- (<U00016E42>,<U00016E62>);(<U00016E43>,<U00016E63>);/
- (<U00016E44>,<U00016E64>);(<U00016E45>,<U00016E65>);/
- (<U00016E46>,<U00016E66>);(<U00016E47>,<U00016E67>);/
- (<U00016E48>,<U00016E68>);(<U00016E49>,<U00016E69>);/
- (<U00016E4A>,<U00016E6A>);(<U00016E4B>,<U00016E6B>);/
- (<U00016E4C>,<U00016E6C>);(<U00016E4D>,<U00016E6D>);/
- (<U00016E4E>,<U00016E6E>);(<U00016E4F>,<U00016E6F>);/
- (<U00016E50>,<U00016E70>);(<U00016E51>,<U00016E71>);/
- (<U00016E52>,<U00016E72>);(<U00016E53>,<U00016E73>);/
- (<U00016E54>,<U00016E74>);(<U00016E55>,<U00016E75>);/
- (<U00016E56>,<U00016E76>);(<U00016E57>,<U00016E77>);/
- (<U00016E58>,<U00016E78>);(<U00016E59>,<U00016E79>);/
- (<U00016E5A>,<U00016E7A>);(<U00016E5B>,<U00016E7B>);/
- (<U00016E5C>,<U00016E7C>);(<U00016E5D>,<U00016E7D>);/
- (<U00016E5E>,<U00016E7E>);(<U00016E5F>,<U00016E7F>);/
- (<U0001E900>,<U0001E922>);(<U0001E901>,<U0001E923>);/
- (<U0001E902>,<U0001E924>);(<U0001E903>,<U0001E925>);/
- (<U0001E904>,<U0001E926>);(<U0001E905>,<U0001E927>);/
- (<U0001E906>,<U0001E928>);(<U0001E907>,<U0001E929>);/
- (<U0001E908>,<U0001E92A>);(<U0001E909>,<U0001E92B>);/
- (<U0001E90A>,<U0001E92C>);(<U0001E90B>,<U0001E92D>);/
- (<U0001E90C>,<U0001E92E>);(<U0001E90D>,<U0001E92F>);/
- (<U0001E90E>,<U0001E930>);(<U0001E90F>,<U0001E931>);/
- (<U0001E910>,<U0001E932>);(<U0001E911>,<U0001E933>);/
- (<U0001E912>,<U0001E934>);(<U0001E913>,<U0001E935>);/
- (<U0001E914>,<U0001E936>);(<U0001E915>,<U0001E937>);/
- (<U0001E916>,<U0001E938>);(<U0001E917>,<U0001E939>);/
- (<U0001E918>,<U0001E93A>);(<U0001E919>,<U0001E93B>);/
- (<U0001E91A>,<U0001E93C>);(<U0001E91B>,<U0001E93D>);/
- (<U0001E91C>,<U0001E93E>);(<U0001E91D>,<U0001E93F>);/
- (<U0001E91E>,<U0001E940>);(<U0001E91F>,<U0001E941>);/
- (<U0001E920>,<U0001E942>);(<U0001E921>,<U0001E943>)
+ (<UA7BA>,<UA7BB>);(<UA7BC>,<UA7BD>);(<UA7BE>,<UA7BF>);(<UA7C2>,<UA7C3>);/
+ (<UA7C4>,<UA794>);(<UA7C5>,<U0282>);(<UA7C6>,<U1D8E>);(<UFF21>,<UFF41>);/
+ (<UFF22>,<UFF42>);(<UFF23>,<UFF43>);(<UFF24>,<UFF44>);(<UFF25>,<UFF45>);/
+ (<UFF26>,<UFF46>);(<UFF27>,<UFF47>);(<UFF28>,<UFF48>);(<UFF29>,<UFF49>);/
+ (<UFF2A>,<UFF4A>);(<UFF2B>,<UFF4B>);(<UFF2C>,<UFF4C>);(<UFF2D>,<UFF4D>);/
+ (<UFF2E>,<UFF4E>);(<UFF2F>,<UFF4F>);(<UFF30>,<UFF50>);(<UFF31>,<UFF51>);/
+ (<UFF32>,<UFF52>);(<UFF33>,<UFF53>);(<UFF34>,<UFF54>);(<UFF35>,<UFF55>);/
+ (<UFF36>,<UFF56>);(<UFF37>,<UFF57>);(<UFF38>,<UFF58>);(<UFF39>,<UFF59>);/
+ (<UFF3A>,<UFF5A>);(<U00010400>,<U00010428>);(<U00010401>,<U00010429>);/
+ (<U00010402>,<U0001042A>);(<U00010403>,<U0001042B>);/
+ (<U00010404>,<U0001042C>);(<U00010405>,<U0001042D>);/
+ (<U00010406>,<U0001042E>);(<U00010407>,<U0001042F>);/
+ (<U00010408>,<U00010430>);(<U00010409>,<U00010431>);/
+ (<U0001040A>,<U00010432>);(<U0001040B>,<U00010433>);/
+ (<U0001040C>,<U00010434>);(<U0001040D>,<U00010435>);/
+ (<U0001040E>,<U00010436>);(<U0001040F>,<U00010437>);/
+ (<U00010410>,<U00010438>);(<U00010411>,<U00010439>);/
+ (<U00010412>,<U0001043A>);(<U00010413>,<U0001043B>);/
+ (<U00010414>,<U0001043C>);(<U00010415>,<U0001043D>);/
+ (<U00010416>,<U0001043E>);(<U00010417>,<U0001043F>);/
+ (<U00010418>,<U00010440>);(<U00010419>,<U00010441>);/
+ (<U0001041A>,<U00010442>);(<U0001041B>,<U00010443>);/
+ (<U0001041C>,<U00010444>);(<U0001041D>,<U00010445>);/
+ (<U0001041E>,<U00010446>);(<U0001041F>,<U00010447>);/
+ (<U00010420>,<U00010448>);(<U00010421>,<U00010449>);/
+ (<U00010422>,<U0001044A>);(<U00010423>,<U0001044B>);/
+ (<U00010424>,<U0001044C>);(<U00010425>,<U0001044D>);/
+ (<U00010426>,<U0001044E>);(<U00010427>,<U0001044F>);/
+ (<U000104B0>,<U000104D8>);(<U000104B1>,<U000104D9>);/
+ (<U000104B2>,<U000104DA>);(<U000104B3>,<U000104DB>);/
+ (<U000104B4>,<U000104DC>);(<U000104B5>,<U000104DD>);/
+ (<U000104B6>,<U000104DE>);(<U000104B7>,<U000104DF>);/
+ (<U000104B8>,<U000104E0>);(<U000104B9>,<U000104E1>);/
+ (<U000104BA>,<U000104E2>);(<U000104BB>,<U000104E3>);/
+ (<U000104BC>,<U000104E4>);(<U000104BD>,<U000104E5>);/
+ (<U000104BE>,<U000104E6>);(<U000104BF>,<U000104E7>);/
+ (<U000104C0>,<U000104E8>);(<U000104C1>,<U000104E9>);/
+ (<U000104C2>,<U000104EA>);(<U000104C3>,<U000104EB>);/
+ (<U000104C4>,<U000104EC>);(<U000104C5>,<U000104ED>);/
+ (<U000104C6>,<U000104EE>);(<U000104C7>,<U000104EF>);/
+ (<U000104C8>,<U000104F0>);(<U000104C9>,<U000104F1>);/
+ (<U000104CA>,<U000104F2>);(<U000104CB>,<U000104F3>);/
+ (<U000104CC>,<U000104F4>);(<U000104CD>,<U000104F5>);/
+ (<U000104CE>,<U000104F6>);(<U000104CF>,<U000104F7>);/
+ (<U000104D0>,<U000104F8>);(<U000104D1>,<U000104F9>);/
+ (<U000104D2>,<U000104FA>);(<U000104D3>,<U000104FB>);/
+ (<U00010C80>,<U00010CC0>);(<U00010C81>,<U00010CC1>);/
+ (<U00010C82>,<U00010CC2>);(<U00010C83>,<U00010CC3>);/
+ (<U00010C84>,<U00010CC4>);(<U00010C85>,<U00010CC5>);/
+ (<U00010C86>,<U00010CC6>);(<U00010C87>,<U00010CC7>);/
+ (<U00010C88>,<U00010CC8>);(<U00010C89>,<U00010CC9>);/
+ (<U00010C8A>,<U00010CCA>);(<U00010C8B>,<U00010CCB>);/
+ (<U00010C8C>,<U00010CCC>);(<U00010C8D>,<U00010CCD>);/
+ (<U00010C8E>,<U00010CCE>);(<U00010C8F>,<U00010CCF>);/
+ (<U00010C90>,<U00010CD0>);(<U00010C91>,<U00010CD1>);/
+ (<U00010C92>,<U00010CD2>);(<U00010C93>,<U00010CD3>);/
+ (<U00010C94>,<U00010CD4>);(<U00010C95>,<U00010CD5>);/
+ (<U00010C96>,<U00010CD6>);(<U00010C97>,<U00010CD7>);/
+ (<U00010C98>,<U00010CD8>);(<U00010C99>,<U00010CD9>);/
+ (<U00010C9A>,<U00010CDA>);(<U00010C9B>,<U00010CDB>);/
+ (<U00010C9C>,<U00010CDC>);(<U00010C9D>,<U00010CDD>);/
+ (<U00010C9E>,<U00010CDE>);(<U00010C9F>,<U00010CDF>);/
+ (<U00010CA0>,<U00010CE0>);(<U00010CA1>,<U00010CE1>);/
+ (<U00010CA2>,<U00010CE2>);(<U00010CA3>,<U00010CE3>);/
+ (<U00010CA4>,<U00010CE4>);(<U00010CA5>,<U00010CE5>);/
+ (<U00010CA6>,<U00010CE6>);(<U00010CA7>,<U00010CE7>);/
+ (<U00010CA8>,<U00010CE8>);(<U00010CA9>,<U00010CE9>);/
+ (<U00010CAA>,<U00010CEA>);(<U00010CAB>,<U00010CEB>);/
+ (<U00010CAC>,<U00010CEC>);(<U00010CAD>,<U00010CED>);/
+ (<U00010CAE>,<U00010CEE>);(<U00010CAF>,<U00010CEF>);/
+ (<U00010CB0>,<U00010CF0>);(<U00010CB1>,<U00010CF1>);/
+ (<U00010CB2>,<U00010CF2>);(<U000118A0>,<U000118C0>);/
+ (<U000118A1>,<U000118C1>);(<U000118A2>,<U000118C2>);/
+ (<U000118A3>,<U000118C3>);(<U000118A4>,<U000118C4>);/
+ (<U000118A5>,<U000118C5>);(<U000118A6>,<U000118C6>);/
+ (<U000118A7>,<U000118C7>);(<U000118A8>,<U000118C8>);/
+ (<U000118A9>,<U000118C9>);(<U000118AA>,<U000118CA>);/
+ (<U000118AB>,<U000118CB>);(<U000118AC>,<U000118CC>);/
+ (<U000118AD>,<U000118CD>);(<U000118AE>,<U000118CE>);/
+ (<U000118AF>,<U000118CF>);(<U000118B0>,<U000118D0>);/
+ (<U000118B1>,<U000118D1>);(<U000118B2>,<U000118D2>);/
+ (<U000118B3>,<U000118D3>);(<U000118B4>,<U000118D4>);/
+ (<U000118B5>,<U000118D5>);(<U000118B6>,<U000118D6>);/
+ (<U000118B7>,<U000118D7>);(<U000118B8>,<U000118D8>);/
+ (<U000118B9>,<U000118D9>);(<U000118BA>,<U000118DA>);/
+ (<U000118BB>,<U000118DB>);(<U000118BC>,<U000118DC>);/
+ (<U000118BD>,<U000118DD>);(<U000118BE>,<U000118DE>);/
+ (<U000118BF>,<U000118DF>);(<U00016E40>,<U00016E60>);/
+ (<U00016E41>,<U00016E61>);(<U00016E42>,<U00016E62>);/
+ (<U00016E43>,<U00016E63>);(<U00016E44>,<U00016E64>);/
+ (<U00016E45>,<U00016E65>);(<U00016E46>,<U00016E66>);/
+ (<U00016E47>,<U00016E67>);(<U00016E48>,<U00016E68>);/
+ (<U00016E49>,<U00016E69>);(<U00016E4A>,<U00016E6A>);/
+ (<U00016E4B>,<U00016E6B>);(<U00016E4C>,<U00016E6C>);/
+ (<U00016E4D>,<U00016E6D>);(<U00016E4E>,<U00016E6E>);/
+ (<U00016E4F>,<U00016E6F>);(<U00016E50>,<U00016E70>);/
+ (<U00016E51>,<U00016E71>);(<U00016E52>,<U00016E72>);/
+ (<U00016E53>,<U00016E73>);(<U00016E54>,<U00016E74>);/
+ (<U00016E55>,<U00016E75>);(<U00016E56>,<U00016E76>);/
+ (<U00016E57>,<U00016E77>);(<U00016E58>,<U00016E78>);/
+ (<U00016E59>,<U00016E79>);(<U00016E5A>,<U00016E7A>);/
+ (<U00016E5B>,<U00016E7B>);(<U00016E5C>,<U00016E7C>);/
+ (<U00016E5D>,<U00016E7D>);(<U00016E5E>,<U00016E7E>);/
+ (<U00016E5F>,<U00016E7F>);(<U0001E900>,<U0001E922>);/
+ (<U0001E901>,<U0001E923>);(<U0001E902>,<U0001E924>);/
+ (<U0001E903>,<U0001E925>);(<U0001E904>,<U0001E926>);/
+ (<U0001E905>,<U0001E927>);(<U0001E906>,<U0001E928>);/
+ (<U0001E907>,<U0001E929>);(<U0001E908>,<U0001E92A>);/
+ (<U0001E909>,<U0001E92B>);(<U0001E90A>,<U0001E92C>);/
+ (<U0001E90B>,<U0001E92D>);(<U0001E90C>,<U0001E92E>);/
+ (<U0001E90D>,<U0001E92F>);(<U0001E90E>,<U0001E930>);/
+ (<U0001E90F>,<U0001E931>);(<U0001E910>,<U0001E932>);/
+ (<U0001E911>,<U0001E933>);(<U0001E912>,<U0001E934>);/
+ (<U0001E913>,<U0001E935>);(<U0001E914>,<U0001E936>);/
+ (<U0001E915>,<U0001E937>);(<U0001E916>,<U0001E938>);/
+ (<U0001E917>,<U0001E939>);(<U0001E918>,<U0001E93A>);/
+ (<U0001E919>,<U0001E93B>);(<U0001E91A>,<U0001E93C>);/
+ (<U0001E91B>,<U0001E93D>);(<U0001E91C>,<U0001E93E>);/
+ (<U0001E91D>,<U0001E93F>);(<U0001E91E>,<U0001E940>);/
+ (<U0001E91F>,<U0001E941>);(<U0001E920>,<U0001E942>);/
+ (<U0001E921>,<U0001E943>)
map "totitle"; /
(<U0061>,<U0041>);(<U0062>,<U0042>);(<U0063>,<U0043>);(<U0064>,<U0044>);/
@@ -1944,231 +1965,233 @@ map "totitle"; /
(<U0265>,<UA78D>);(<U0266>,<UA7AA>);(<U0268>,<U0197>);(<U0269>,<U0196>);/
(<U026A>,<UA7AE>);(<U026B>,<U2C62>);(<U026C>,<UA7AD>);(<U026F>,<U019C>);/
(<U0271>,<U2C6E>);(<U0272>,<U019D>);(<U0275>,<U019F>);(<U027D>,<U2C64>);/
- (<U0280>,<U01A6>);(<U0283>,<U01A9>);(<U0287>,<UA7B1>);(<U0288>,<U01AE>);/
- (<U0289>,<U0244>);(<U028A>,<U01B1>);(<U028B>,<U01B2>);(<U028C>,<U0245>);/
- (<U0292>,<U01B7>);(<U029D>,<UA7B2>);(<U029E>,<UA7B0>);(<U0345>,<U0399>);/
- (<U0371>,<U0370>);(<U0373>,<U0372>);(<U0377>,<U0376>);(<U037B>,<U03FD>);/
- (<U037C>,<U03FE>);(<U037D>,<U03FF>);(<U03AC>,<U0386>);(<U03AD>,<U0388>);/
- (<U03AE>,<U0389>);(<U03AF>,<U038A>);(<U03B1>,<U0391>);(<U03B2>,<U0392>);/
- (<U03B3>,<U0393>);(<U03B4>,<U0394>);(<U03B5>,<U0395>);(<U03B6>,<U0396>);/
- (<U03B7>,<U0397>);(<U03B8>,<U0398>);(<U03B9>,<U0399>);(<U03BA>,<U039A>);/
- (<U03BB>,<U039B>);(<U03BC>,<U039C>);(<U03BD>,<U039D>);(<U03BE>,<U039E>);/
- (<U03BF>,<U039F>);(<U03C0>,<U03A0>);(<U03C1>,<U03A1>);(<U03C2>,<U03A3>);/
- (<U03C3>,<U03A3>);(<U03C4>,<U03A4>);(<U03C5>,<U03A5>);(<U03C6>,<U03A6>);/
- (<U03C7>,<U03A7>);(<U03C8>,<U03A8>);(<U03C9>,<U03A9>);(<U03CA>,<U03AA>);/
- (<U03CB>,<U03AB>);(<U03CC>,<U038C>);(<U03CD>,<U038E>);(<U03CE>,<U038F>);/
- (<U03D0>,<U0392>);(<U03D1>,<U0398>);(<U03D5>,<U03A6>);(<U03D6>,<U03A0>);/
- (<U03D7>,<U03CF>);(<U03D9>,<U03D8>);(<U03DB>,<U03DA>);(<U03DD>,<U03DC>);/
- (<U03DF>,<U03DE>);(<U03E1>,<U03E0>);(<U03E3>,<U03E2>);(<U03E5>,<U03E4>);/
- (<U03E7>,<U03E6>);(<U03E9>,<U03E8>);(<U03EB>,<U03EA>);(<U03ED>,<U03EC>);/
- (<U03EF>,<U03EE>);(<U03F0>,<U039A>);(<U03F1>,<U03A1>);(<U03F2>,<U03F9>);/
- (<U03F3>,<U037F>);(<U03F5>,<U0395>);(<U03F8>,<U03F7>);(<U03FB>,<U03FA>);/
- (<U0430>,<U0410>);(<U0431>,<U0411>);(<U0432>,<U0412>);(<U0433>,<U0413>);/
- (<U0434>,<U0414>);(<U0435>,<U0415>);(<U0436>,<U0416>);(<U0437>,<U0417>);/
- (<U0438>,<U0418>);(<U0439>,<U0419>);(<U043A>,<U041A>);(<U043B>,<U041B>);/
- (<U043C>,<U041C>);(<U043D>,<U041D>);(<U043E>,<U041E>);(<U043F>,<U041F>);/
- (<U0440>,<U0420>);(<U0441>,<U0421>);(<U0442>,<U0422>);(<U0443>,<U0423>);/
- (<U0444>,<U0424>);(<U0445>,<U0425>);(<U0446>,<U0426>);(<U0447>,<U0427>);/
- (<U0448>,<U0428>);(<U0449>,<U0429>);(<U044A>,<U042A>);(<U044B>,<U042B>);/
- (<U044C>,<U042C>);(<U044D>,<U042D>);(<U044E>,<U042E>);(<U044F>,<U042F>);/
- (<U0450>,<U0400>);(<U0451>,<U0401>);(<U0452>,<U0402>);(<U0453>,<U0403>);/
- (<U0454>,<U0404>);(<U0455>,<U0405>);(<U0456>,<U0406>);(<U0457>,<U0407>);/
- (<U0458>,<U0408>);(<U0459>,<U0409>);(<U045A>,<U040A>);(<U045B>,<U040B>);/
- (<U045C>,<U040C>);(<U045D>,<U040D>);(<U045E>,<U040E>);(<U045F>,<U040F>);/
- (<U0461>,<U0460>);(<U0463>,<U0462>);(<U0465>,<U0464>);(<U0467>,<U0466>);/
- (<U0469>,<U0468>);(<U046B>,<U046A>);(<U046D>,<U046C>);(<U046F>,<U046E>);/
- (<U0471>,<U0470>);(<U0473>,<U0472>);(<U0475>,<U0474>);(<U0477>,<U0476>);/
- (<U0479>,<U0478>);(<U047B>,<U047A>);(<U047D>,<U047C>);(<U047F>,<U047E>);/
- (<U0481>,<U0480>);(<U048B>,<U048A>);(<U048D>,<U048C>);(<U048F>,<U048E>);/
- (<U0491>,<U0490>);(<U0493>,<U0492>);(<U0495>,<U0494>);(<U0497>,<U0496>);/
- (<U0499>,<U0498>);(<U049B>,<U049A>);(<U049D>,<U049C>);(<U049F>,<U049E>);/
- (<U04A1>,<U04A0>);(<U04A3>,<U04A2>);(<U04A5>,<U04A4>);(<U04A7>,<U04A6>);/
- (<U04A9>,<U04A8>);(<U04AB>,<U04AA>);(<U04AD>,<U04AC>);(<U04AF>,<U04AE>);/
- (<U04B1>,<U04B0>);(<U04B3>,<U04B2>);(<U04B5>,<U04B4>);(<U04B7>,<U04B6>);/
- (<U04B9>,<U04B8>);(<U04BB>,<U04BA>);(<U04BD>,<U04BC>);(<U04BF>,<U04BE>);/
- (<U04C2>,<U04C1>);(<U04C4>,<U04C3>);(<U04C6>,<U04C5>);(<U04C8>,<U04C7>);/
- (<U04CA>,<U04C9>);(<U04CC>,<U04CB>);(<U04CE>,<U04CD>);(<U04CF>,<U04C0>);/
- (<U04D1>,<U04D0>);(<U04D3>,<U04D2>);(<U04D5>,<U04D4>);(<U04D7>,<U04D6>);/
- (<U04D9>,<U04D8>);(<U04DB>,<U04DA>);(<U04DD>,<U04DC>);(<U04DF>,<U04DE>);/
- (<U04E1>,<U04E0>);(<U04E3>,<U04E2>);(<U04E5>,<U04E4>);(<U04E7>,<U04E6>);/
- (<U04E9>,<U04E8>);(<U04EB>,<U04EA>);(<U04ED>,<U04EC>);(<U04EF>,<U04EE>);/
- (<U04F1>,<U04F0>);(<U04F3>,<U04F2>);(<U04F5>,<U04F4>);(<U04F7>,<U04F6>);/
- (<U04F9>,<U04F8>);(<U04FB>,<U04FA>);(<U04FD>,<U04FC>);(<U04FF>,<U04FE>);/
- (<U0501>,<U0500>);(<U0503>,<U0502>);(<U0505>,<U0504>);(<U0507>,<U0506>);/
- (<U0509>,<U0508>);(<U050B>,<U050A>);(<U050D>,<U050C>);(<U050F>,<U050E>);/
- (<U0511>,<U0510>);(<U0513>,<U0512>);(<U0515>,<U0514>);(<U0517>,<U0516>);/
- (<U0519>,<U0518>);(<U051B>,<U051A>);(<U051D>,<U051C>);(<U051F>,<U051E>);/
- (<U0521>,<U0520>);(<U0523>,<U0522>);(<U0525>,<U0524>);(<U0527>,<U0526>);/
- (<U0529>,<U0528>);(<U052B>,<U052A>);(<U052D>,<U052C>);(<U052F>,<U052E>);/
- (<U0561>,<U0531>);(<U0562>,<U0532>);(<U0563>,<U0533>);(<U0564>,<U0534>);/
- (<U0565>,<U0535>);(<U0566>,<U0536>);(<U0567>,<U0537>);(<U0568>,<U0538>);/
- (<U0569>,<U0539>);(<U056A>,<U053A>);(<U056B>,<U053B>);(<U056C>,<U053C>);/
- (<U056D>,<U053D>);(<U056E>,<U053E>);(<U056F>,<U053F>);(<U0570>,<U0540>);/
- (<U0571>,<U0541>);(<U0572>,<U0542>);(<U0573>,<U0543>);(<U0574>,<U0544>);/
- (<U0575>,<U0545>);(<U0576>,<U0546>);(<U0577>,<U0547>);(<U0578>,<U0548>);/
- (<U0579>,<U0549>);(<U057A>,<U054A>);(<U057B>,<U054B>);(<U057C>,<U054C>);/
- (<U057D>,<U054D>);(<U057E>,<U054E>);(<U057F>,<U054F>);(<U0580>,<U0550>);/
- (<U0581>,<U0551>);(<U0582>,<U0552>);(<U0583>,<U0553>);(<U0584>,<U0554>);/
- (<U0585>,<U0555>);(<U0586>,<U0556>);(<U13F8>,<U13F0>);(<U13F9>,<U13F1>);/
- (<U13FA>,<U13F2>);(<U13FB>,<U13F3>);(<U13FC>,<U13F4>);(<U13FD>,<U13F5>);/
- (<U1C80>,<U0412>);(<U1C81>,<U0414>);(<U1C82>,<U041E>);(<U1C83>,<U0421>);/
- (<U1C84>,<U0422>);(<U1C85>,<U0422>);(<U1C86>,<U042A>);(<U1C87>,<U0462>);/
- (<U1C88>,<UA64A>);(<U1D79>,<UA77D>);(<U1D7D>,<U2C63>);(<U1E01>,<U1E00>);/
- (<U1E03>,<U1E02>);(<U1E05>,<U1E04>);(<U1E07>,<U1E06>);(<U1E09>,<U1E08>);/
- (<U1E0B>,<U1E0A>);(<U1E0D>,<U1E0C>);(<U1E0F>,<U1E0E>);(<U1E11>,<U1E10>);/
- (<U1E13>,<U1E12>);(<U1E15>,<U1E14>);(<U1E17>,<U1E16>);(<U1E19>,<U1E18>);/
- (<U1E1B>,<U1E1A>);(<U1E1D>,<U1E1C>);(<U1E1F>,<U1E1E>);(<U1E21>,<U1E20>);/
- (<U1E23>,<U1E22>);(<U1E25>,<U1E24>);(<U1E27>,<U1E26>);(<U1E29>,<U1E28>);/
- (<U1E2B>,<U1E2A>);(<U1E2D>,<U1E2C>);(<U1E2F>,<U1E2E>);(<U1E31>,<U1E30>);/
- (<U1E33>,<U1E32>);(<U1E35>,<U1E34>);(<U1E37>,<U1E36>);(<U1E39>,<U1E38>);/
- (<U1E3B>,<U1E3A>);(<U1E3D>,<U1E3C>);(<U1E3F>,<U1E3E>);(<U1E41>,<U1E40>);/
- (<U1E43>,<U1E42>);(<U1E45>,<U1E44>);(<U1E47>,<U1E46>);(<U1E49>,<U1E48>);/
- (<U1E4B>,<U1E4A>);(<U1E4D>,<U1E4C>);(<U1E4F>,<U1E4E>);(<U1E51>,<U1E50>);/
- (<U1E53>,<U1E52>);(<U1E55>,<U1E54>);(<U1E57>,<U1E56>);(<U1E59>,<U1E58>);/
- (<U1E5B>,<U1E5A>);(<U1E5D>,<U1E5C>);(<U1E5F>,<U1E5E>);(<U1E61>,<U1E60>);/
- (<U1E63>,<U1E62>);(<U1E65>,<U1E64>);(<U1E67>,<U1E66>);(<U1E69>,<U1E68>);/
- (<U1E6B>,<U1E6A>);(<U1E6D>,<U1E6C>);(<U1E6F>,<U1E6E>);(<U1E71>,<U1E70>);/
- (<U1E73>,<U1E72>);(<U1E75>,<U1E74>);(<U1E77>,<U1E76>);(<U1E79>,<U1E78>);/
- (<U1E7B>,<U1E7A>);(<U1E7D>,<U1E7C>);(<U1E7F>,<U1E7E>);(<U1E81>,<U1E80>);/
- (<U1E83>,<U1E82>);(<U1E85>,<U1E84>);(<U1E87>,<U1E86>);(<U1E89>,<U1E88>);/
- (<U1E8B>,<U1E8A>);(<U1E8D>,<U1E8C>);(<U1E8F>,<U1E8E>);(<U1E91>,<U1E90>);/
- (<U1E93>,<U1E92>);(<U1E95>,<U1E94>);(<U1E9B>,<U1E60>);(<U1EA1>,<U1EA0>);/
- (<U1EA3>,<U1EA2>);(<U1EA5>,<U1EA4>);(<U1EA7>,<U1EA6>);(<U1EA9>,<U1EA8>);/
- (<U1EAB>,<U1EAA>);(<U1EAD>,<U1EAC>);(<U1EAF>,<U1EAE>);(<U1EB1>,<U1EB0>);/
- (<U1EB3>,<U1EB2>);(<U1EB5>,<U1EB4>);(<U1EB7>,<U1EB6>);(<U1EB9>,<U1EB8>);/
- (<U1EBB>,<U1EBA>);(<U1EBD>,<U1EBC>);(<U1EBF>,<U1EBE>);(<U1EC1>,<U1EC0>);/
- (<U1EC3>,<U1EC2>);(<U1EC5>,<U1EC4>);(<U1EC7>,<U1EC6>);(<U1EC9>,<U1EC8>);/
- (<U1ECB>,<U1ECA>);(<U1ECD>,<U1ECC>);(<U1ECF>,<U1ECE>);(<U1ED1>,<U1ED0>);/
- (<U1ED3>,<U1ED2>);(<U1ED5>,<U1ED4>);(<U1ED7>,<U1ED6>);(<U1ED9>,<U1ED8>);/
- (<U1EDB>,<U1EDA>);(<U1EDD>,<U1EDC>);(<U1EDF>,<U1EDE>);(<U1EE1>,<U1EE0>);/
- (<U1EE3>,<U1EE2>);(<U1EE5>,<U1EE4>);(<U1EE7>,<U1EE6>);(<U1EE9>,<U1EE8>);/
- (<U1EEB>,<U1EEA>);(<U1EED>,<U1EEC>);(<U1EEF>,<U1EEE>);(<U1EF1>,<U1EF0>);/
- (<U1EF3>,<U1EF2>);(<U1EF5>,<U1EF4>);(<U1EF7>,<U1EF6>);(<U1EF9>,<U1EF8>);/
- (<U1EFB>,<U1EFA>);(<U1EFD>,<U1EFC>);(<U1EFF>,<U1EFE>);(<U1F00>,<U1F08>);/
- (<U1F01>,<U1F09>);(<U1F02>,<U1F0A>);(<U1F03>,<U1F0B>);(<U1F04>,<U1F0C>);/
- (<U1F05>,<U1F0D>);(<U1F06>,<U1F0E>);(<U1F07>,<U1F0F>);(<U1F10>,<U1F18>);/
- (<U1F11>,<U1F19>);(<U1F12>,<U1F1A>);(<U1F13>,<U1F1B>);(<U1F14>,<U1F1C>);/
- (<U1F15>,<U1F1D>);(<U1F20>,<U1F28>);(<U1F21>,<U1F29>);(<U1F22>,<U1F2A>);/
- (<U1F23>,<U1F2B>);(<U1F24>,<U1F2C>);(<U1F25>,<U1F2D>);(<U1F26>,<U1F2E>);/
- (<U1F27>,<U1F2F>);(<U1F30>,<U1F38>);(<U1F31>,<U1F39>);(<U1F32>,<U1F3A>);/
- (<U1F33>,<U1F3B>);(<U1F34>,<U1F3C>);(<U1F35>,<U1F3D>);(<U1F36>,<U1F3E>);/
- (<U1F37>,<U1F3F>);(<U1F40>,<U1F48>);(<U1F41>,<U1F49>);(<U1F42>,<U1F4A>);/
- (<U1F43>,<U1F4B>);(<U1F44>,<U1F4C>);(<U1F45>,<U1F4D>);(<U1F51>,<U1F59>);/
- (<U1F53>,<U1F5B>);(<U1F55>,<U1F5D>);(<U1F57>,<U1F5F>);(<U1F60>,<U1F68>);/
- (<U1F61>,<U1F69>);(<U1F62>,<U1F6A>);(<U1F63>,<U1F6B>);(<U1F64>,<U1F6C>);/
- (<U1F65>,<U1F6D>);(<U1F66>,<U1F6E>);(<U1F67>,<U1F6F>);(<U1F70>,<U1FBA>);/
- (<U1F71>,<U1FBB>);(<U1F72>,<U1FC8>);(<U1F73>,<U1FC9>);(<U1F74>,<U1FCA>);/
- (<U1F75>,<U1FCB>);(<U1F76>,<U1FDA>);(<U1F77>,<U1FDB>);(<U1F78>,<U1FF8>);/
- (<U1F79>,<U1FF9>);(<U1F7A>,<U1FEA>);(<U1F7B>,<U1FEB>);(<U1F7C>,<U1FFA>);/
- (<U1F7D>,<U1FFB>);(<U1F80>,<U1F88>);(<U1F81>,<U1F89>);(<U1F82>,<U1F8A>);/
- (<U1F83>,<U1F8B>);(<U1F84>,<U1F8C>);(<U1F85>,<U1F8D>);(<U1F86>,<U1F8E>);/
- (<U1F87>,<U1F8F>);(<U1F90>,<U1F98>);(<U1F91>,<U1F99>);(<U1F92>,<U1F9A>);/
- (<U1F93>,<U1F9B>);(<U1F94>,<U1F9C>);(<U1F95>,<U1F9D>);(<U1F96>,<U1F9E>);/
- (<U1F97>,<U1F9F>);(<U1FA0>,<U1FA8>);(<U1FA1>,<U1FA9>);(<U1FA2>,<U1FAA>);/
- (<U1FA3>,<U1FAB>);(<U1FA4>,<U1FAC>);(<U1FA5>,<U1FAD>);(<U1FA6>,<U1FAE>);/
- (<U1FA7>,<U1FAF>);(<U1FB0>,<U1FB8>);(<U1FB1>,<U1FB9>);(<U1FB3>,<U1FBC>);/
- (<U1FBE>,<U0399>);(<U1FC3>,<U1FCC>);(<U1FD0>,<U1FD8>);(<U1FD1>,<U1FD9>);/
- (<U1FE0>,<U1FE8>);(<U1FE1>,<U1FE9>);(<U1FE5>,<U1FEC>);(<U1FF3>,<U1FFC>);/
- (<U214E>,<U2132>);(<U2170>,<U2160>);(<U2171>,<U2161>);(<U2172>,<U2162>);/
- (<U2173>,<U2163>);(<U2174>,<U2164>);(<U2175>,<U2165>);(<U2176>,<U2166>);/
- (<U2177>,<U2167>);(<U2178>,<U2168>);(<U2179>,<U2169>);(<U217A>,<U216A>);/
- (<U217B>,<U216B>);(<U217C>,<U216C>);(<U217D>,<U216D>);(<U217E>,<U216E>);/
- (<U217F>,<U216F>);(<U2184>,<U2183>);(<U24D0>,<U24B6>);(<U24D1>,<U24B7>);/
- (<U24D2>,<U24B8>);(<U24D3>,<U24B9>);(<U24D4>,<U24BA>);(<U24D5>,<U24BB>);/
- (<U24D6>,<U24BC>);(<U24D7>,<U24BD>);(<U24D8>,<U24BE>);(<U24D9>,<U24BF>);/
- (<U24DA>,<U24C0>);(<U24DB>,<U24C1>);(<U24DC>,<U24C2>);(<U24DD>,<U24C3>);/
- (<U24DE>,<U24C4>);(<U24DF>,<U24C5>);(<U24E0>,<U24C6>);(<U24E1>,<U24C7>);/
- (<U24E2>,<U24C8>);(<U24E3>,<U24C9>);(<U24E4>,<U24CA>);(<U24E5>,<U24CB>);/
- (<U24E6>,<U24CC>);(<U24E7>,<U24CD>);(<U24E8>,<U24CE>);(<U24E9>,<U24CF>);/
- (<U2C30>,<U2C00>);(<U2C31>,<U2C01>);(<U2C32>,<U2C02>);(<U2C33>,<U2C03>);/
- (<U2C34>,<U2C04>);(<U2C35>,<U2C05>);(<U2C36>,<U2C06>);(<U2C37>,<U2C07>);/
- (<U2C38>,<U2C08>);(<U2C39>,<U2C09>);(<U2C3A>,<U2C0A>);(<U2C3B>,<U2C0B>);/
- (<U2C3C>,<U2C0C>);(<U2C3D>,<U2C0D>);(<U2C3E>,<U2C0E>);(<U2C3F>,<U2C0F>);/
- (<U2C40>,<U2C10>);(<U2C41>,<U2C11>);(<U2C42>,<U2C12>);(<U2C43>,<U2C13>);/
- (<U2C44>,<U2C14>);(<U2C45>,<U2C15>);(<U2C46>,<U2C16>);(<U2C47>,<U2C17>);/
- (<U2C48>,<U2C18>);(<U2C49>,<U2C19>);(<U2C4A>,<U2C1A>);(<U2C4B>,<U2C1B>);/
- (<U2C4C>,<U2C1C>);(<U2C4D>,<U2C1D>);(<U2C4E>,<U2C1E>);(<U2C4F>,<U2C1F>);/
- (<U2C50>,<U2C20>);(<U2C51>,<U2C21>);(<U2C52>,<U2C22>);(<U2C53>,<U2C23>);/
- (<U2C54>,<U2C24>);(<U2C55>,<U2C25>);(<U2C56>,<U2C26>);(<U2C57>,<U2C27>);/
- (<U2C58>,<U2C28>);(<U2C59>,<U2C29>);(<U2C5A>,<U2C2A>);(<U2C5B>,<U2C2B>);/
- (<U2C5C>,<U2C2C>);(<U2C5D>,<U2C2D>);(<U2C5E>,<U2C2E>);(<U2C61>,<U2C60>);/
- (<U2C65>,<U023A>);(<U2C66>,<U023E>);(<U2C68>,<U2C67>);(<U2C6A>,<U2C69>);/
- (<U2C6C>,<U2C6B>);(<U2C73>,<U2C72>);(<U2C76>,<U2C75>);(<U2C81>,<U2C80>);/
- (<U2C83>,<U2C82>);(<U2C85>,<U2C84>);(<U2C87>,<U2C86>);(<U2C89>,<U2C88>);/
- (<U2C8B>,<U2C8A>);(<U2C8D>,<U2C8C>);(<U2C8F>,<U2C8E>);(<U2C91>,<U2C90>);/
- (<U2C93>,<U2C92>);(<U2C95>,<U2C94>);(<U2C97>,<U2C96>);(<U2C99>,<U2C98>);/
- (<U2C9B>,<U2C9A>);(<U2C9D>,<U2C9C>);(<U2C9F>,<U2C9E>);(<U2CA1>,<U2CA0>);/
- (<U2CA3>,<U2CA2>);(<U2CA5>,<U2CA4>);(<U2CA7>,<U2CA6>);(<U2CA9>,<U2CA8>);/
- (<U2CAB>,<U2CAA>);(<U2CAD>,<U2CAC>);(<U2CAF>,<U2CAE>);(<U2CB1>,<U2CB0>);/
- (<U2CB3>,<U2CB2>);(<U2CB5>,<U2CB4>);(<U2CB7>,<U2CB6>);(<U2CB9>,<U2CB8>);/
- (<U2CBB>,<U2CBA>);(<U2CBD>,<U2CBC>);(<U2CBF>,<U2CBE>);(<U2CC1>,<U2CC0>);/
- (<U2CC3>,<U2CC2>);(<U2CC5>,<U2CC4>);(<U2CC7>,<U2CC6>);(<U2CC9>,<U2CC8>);/
- (<U2CCB>,<U2CCA>);(<U2CCD>,<U2CCC>);(<U2CCF>,<U2CCE>);(<U2CD1>,<U2CD0>);/
- (<U2CD3>,<U2CD2>);(<U2CD5>,<U2CD4>);(<U2CD7>,<U2CD6>);(<U2CD9>,<U2CD8>);/
- (<U2CDB>,<U2CDA>);(<U2CDD>,<U2CDC>);(<U2CDF>,<U2CDE>);(<U2CE1>,<U2CE0>);/
- (<U2CE3>,<U2CE2>);(<U2CEC>,<U2CEB>);(<U2CEE>,<U2CED>);(<U2CF3>,<U2CF2>);/
- (<U2D00>,<U10A0>);(<U2D01>,<U10A1>);(<U2D02>,<U10A2>);(<U2D03>,<U10A3>);/
- (<U2D04>,<U10A4>);(<U2D05>,<U10A5>);(<U2D06>,<U10A6>);(<U2D07>,<U10A7>);/
- (<U2D08>,<U10A8>);(<U2D09>,<U10A9>);(<U2D0A>,<U10AA>);(<U2D0B>,<U10AB>);/
- (<U2D0C>,<U10AC>);(<U2D0D>,<U10AD>);(<U2D0E>,<U10AE>);(<U2D0F>,<U10AF>);/
- (<U2D10>,<U10B0>);(<U2D11>,<U10B1>);(<U2D12>,<U10B2>);(<U2D13>,<U10B3>);/
- (<U2D14>,<U10B4>);(<U2D15>,<U10B5>);(<U2D16>,<U10B6>);(<U2D17>,<U10B7>);/
- (<U2D18>,<U10B8>);(<U2D19>,<U10B9>);(<U2D1A>,<U10BA>);(<U2D1B>,<U10BB>);/
- (<U2D1C>,<U10BC>);(<U2D1D>,<U10BD>);(<U2D1E>,<U10BE>);(<U2D1F>,<U10BF>);/
- (<U2D20>,<U10C0>);(<U2D21>,<U10C1>);(<U2D22>,<U10C2>);(<U2D23>,<U10C3>);/
- (<U2D24>,<U10C4>);(<U2D25>,<U10C5>);(<U2D27>,<U10C7>);(<U2D2D>,<U10CD>);/
- (<UA641>,<UA640>);(<UA643>,<UA642>);(<UA645>,<UA644>);(<UA647>,<UA646>);/
- (<UA649>,<UA648>);(<UA64B>,<UA64A>);(<UA64D>,<UA64C>);(<UA64F>,<UA64E>);/
- (<UA651>,<UA650>);(<UA653>,<UA652>);(<UA655>,<UA654>);(<UA657>,<UA656>);/
- (<UA659>,<UA658>);(<UA65B>,<UA65A>);(<UA65D>,<UA65C>);(<UA65F>,<UA65E>);/
- (<UA661>,<UA660>);(<UA663>,<UA662>);(<UA665>,<UA664>);(<UA667>,<UA666>);/
- (<UA669>,<UA668>);(<UA66B>,<UA66A>);(<UA66D>,<UA66C>);(<UA681>,<UA680>);/
- (<UA683>,<UA682>);(<UA685>,<UA684>);(<UA687>,<UA686>);(<UA689>,<UA688>);/
- (<UA68B>,<UA68A>);(<UA68D>,<UA68C>);(<UA68F>,<UA68E>);(<UA691>,<UA690>);/
- (<UA693>,<UA692>);(<UA695>,<UA694>);(<UA697>,<UA696>);(<UA699>,<UA698>);/
- (<UA69B>,<UA69A>);(<UA723>,<UA722>);(<UA725>,<UA724>);(<UA727>,<UA726>);/
- (<UA729>,<UA728>);(<UA72B>,<UA72A>);(<UA72D>,<UA72C>);(<UA72F>,<UA72E>);/
- (<UA733>,<UA732>);(<UA735>,<UA734>);(<UA737>,<UA736>);(<UA739>,<UA738>);/
- (<UA73B>,<UA73A>);(<UA73D>,<UA73C>);(<UA73F>,<UA73E>);(<UA741>,<UA740>);/
- (<UA743>,<UA742>);(<UA745>,<UA744>);(<UA747>,<UA746>);(<UA749>,<UA748>);/
- (<UA74B>,<UA74A>);(<UA74D>,<UA74C>);(<UA74F>,<UA74E>);(<UA751>,<UA750>);/
- (<UA753>,<UA752>);(<UA755>,<UA754>);(<UA757>,<UA756>);(<UA759>,<UA758>);/
- (<UA75B>,<UA75A>);(<UA75D>,<UA75C>);(<UA75F>,<UA75E>);(<UA761>,<UA760>);/
- (<UA763>,<UA762>);(<UA765>,<UA764>);(<UA767>,<UA766>);(<UA769>,<UA768>);/
- (<UA76B>,<UA76A>);(<UA76D>,<UA76C>);(<UA76F>,<UA76E>);(<UA77A>,<UA779>);/
- (<UA77C>,<UA77B>);(<UA77F>,<UA77E>);(<UA781>,<UA780>);(<UA783>,<UA782>);/
- (<UA785>,<UA784>);(<UA787>,<UA786>);(<UA78C>,<UA78B>);(<UA791>,<UA790>);/
- (<UA793>,<UA792>);(<UA797>,<UA796>);(<UA799>,<UA798>);(<UA79B>,<UA79A>);/
- (<UA79D>,<UA79C>);(<UA79F>,<UA79E>);(<UA7A1>,<UA7A0>);(<UA7A3>,<UA7A2>);/
- (<UA7A5>,<UA7A4>);(<UA7A7>,<UA7A6>);(<UA7A9>,<UA7A8>);(<UA7B5>,<UA7B4>);/
- (<UA7B7>,<UA7B6>);(<UA7B9>,<UA7B8>);(<UAB53>,<UA7B3>);(<UAB70>,<U13A0>);/
- (<UAB71>,<U13A1>);(<UAB72>,<U13A2>);(<UAB73>,<U13A3>);(<UAB74>,<U13A4>);/
- (<UAB75>,<U13A5>);(<UAB76>,<U13A6>);(<UAB77>,<U13A7>);(<UAB78>,<U13A8>);/
- (<UAB79>,<U13A9>);(<UAB7A>,<U13AA>);(<UAB7B>,<U13AB>);(<UAB7C>,<U13AC>);/
- (<UAB7D>,<U13AD>);(<UAB7E>,<U13AE>);(<UAB7F>,<U13AF>);(<UAB80>,<U13B0>);/
- (<UAB81>,<U13B1>);(<UAB82>,<U13B2>);(<UAB83>,<U13B3>);(<UAB84>,<U13B4>);/
- (<UAB85>,<U13B5>);(<UAB86>,<U13B6>);(<UAB87>,<U13B7>);(<UAB88>,<U13B8>);/
- (<UAB89>,<U13B9>);(<UAB8A>,<U13BA>);(<UAB8B>,<U13BB>);(<UAB8C>,<U13BC>);/
- (<UAB8D>,<U13BD>);(<UAB8E>,<U13BE>);(<UAB8F>,<U13BF>);(<UAB90>,<U13C0>);/
- (<UAB91>,<U13C1>);(<UAB92>,<U13C2>);(<UAB93>,<U13C3>);(<UAB94>,<U13C4>);/
- (<UAB95>,<U13C5>);(<UAB96>,<U13C6>);(<UAB97>,<U13C7>);(<UAB98>,<U13C8>);/
- (<UAB99>,<U13C9>);(<UAB9A>,<U13CA>);(<UAB9B>,<U13CB>);(<UAB9C>,<U13CC>);/
- (<UAB9D>,<U13CD>);(<UAB9E>,<U13CE>);(<UAB9F>,<U13CF>);(<UABA0>,<U13D0>);/
- (<UABA1>,<U13D1>);(<UABA2>,<U13D2>);(<UABA3>,<U13D3>);(<UABA4>,<U13D4>);/
- (<UABA5>,<U13D5>);(<UABA6>,<U13D6>);(<UABA7>,<U13D7>);(<UABA8>,<U13D8>);/
- (<UABA9>,<U13D9>);(<UABAA>,<U13DA>);(<UABAB>,<U13DB>);(<UABAC>,<U13DC>);/
- (<UABAD>,<U13DD>);(<UABAE>,<U13DE>);(<UABAF>,<U13DF>);(<UABB0>,<U13E0>);/
- (<UABB1>,<U13E1>);(<UABB2>,<U13E2>);(<UABB3>,<U13E3>);(<UABB4>,<U13E4>);/
- (<UABB5>,<U13E5>);(<UABB6>,<U13E6>);(<UABB7>,<U13E7>);(<UABB8>,<U13E8>);/
- (<UABB9>,<U13E9>);(<UABBA>,<U13EA>);(<UABBB>,<U13EB>);(<UABBC>,<U13EC>);/
- (<UABBD>,<U13ED>);(<UABBE>,<U13EE>);(<UABBF>,<U13EF>);(<UFF41>,<UFF21>);/
- (<UFF42>,<UFF22>);(<UFF43>,<UFF23>);(<UFF44>,<UFF24>);(<UFF45>,<UFF25>);/
- (<UFF46>,<UFF26>);(<UFF47>,<UFF27>);(<UFF48>,<UFF28>);(<UFF49>,<UFF29>);/
- (<UFF4A>,<UFF2A>);(<UFF4B>,<UFF2B>);(<UFF4C>,<UFF2C>);(<UFF4D>,<UFF2D>);/
- (<UFF4E>,<UFF2E>);(<UFF4F>,<UFF2F>);(<UFF50>,<UFF30>);(<UFF51>,<UFF31>);/
- (<UFF52>,<UFF32>);(<UFF53>,<UFF33>);(<UFF54>,<UFF34>);(<UFF55>,<UFF35>);/
- (<UFF56>,<UFF36>);(<UFF57>,<UFF37>);(<UFF58>,<UFF38>);(<UFF59>,<UFF39>);/
- (<UFF5A>,<UFF3A>);(<U00010428>,<U00010400>);(<U00010429>,<U00010401>);/
+ (<U0280>,<U01A6>);(<U0282>,<UA7C5>);(<U0283>,<U01A9>);(<U0287>,<UA7B1>);/
+ (<U0288>,<U01AE>);(<U0289>,<U0244>);(<U028A>,<U01B1>);(<U028B>,<U01B2>);/
+ (<U028C>,<U0245>);(<U0292>,<U01B7>);(<U029D>,<UA7B2>);(<U029E>,<UA7B0>);/
+ (<U0345>,<U0399>);(<U0371>,<U0370>);(<U0373>,<U0372>);(<U0377>,<U0376>);/
+ (<U037B>,<U03FD>);(<U037C>,<U03FE>);(<U037D>,<U03FF>);(<U03AC>,<U0386>);/
+ (<U03AD>,<U0388>);(<U03AE>,<U0389>);(<U03AF>,<U038A>);(<U03B1>,<U0391>);/
+ (<U03B2>,<U0392>);(<U03B3>,<U0393>);(<U03B4>,<U0394>);(<U03B5>,<U0395>);/
+ (<U03B6>,<U0396>);(<U03B7>,<U0397>);(<U03B8>,<U0398>);(<U03B9>,<U0399>);/
+ (<U03BA>,<U039A>);(<U03BB>,<U039B>);(<U03BC>,<U039C>);(<U03BD>,<U039D>);/
+ (<U03BE>,<U039E>);(<U03BF>,<U039F>);(<U03C0>,<U03A0>);(<U03C1>,<U03A1>);/
+ (<U03C2>,<U03A3>);(<U03C3>,<U03A3>);(<U03C4>,<U03A4>);(<U03C5>,<U03A5>);/
+ (<U03C6>,<U03A6>);(<U03C7>,<U03A7>);(<U03C8>,<U03A8>);(<U03C9>,<U03A9>);/
+ (<U03CA>,<U03AA>);(<U03CB>,<U03AB>);(<U03CC>,<U038C>);(<U03CD>,<U038E>);/
+ (<U03CE>,<U038F>);(<U03D0>,<U0392>);(<U03D1>,<U0398>);(<U03D5>,<U03A6>);/
+ (<U03D6>,<U03A0>);(<U03D7>,<U03CF>);(<U03D9>,<U03D8>);(<U03DB>,<U03DA>);/
+ (<U03DD>,<U03DC>);(<U03DF>,<U03DE>);(<U03E1>,<U03E0>);(<U03E3>,<U03E2>);/
+ (<U03E5>,<U03E4>);(<U03E7>,<U03E6>);(<U03E9>,<U03E8>);(<U03EB>,<U03EA>);/
+ (<U03ED>,<U03EC>);(<U03EF>,<U03EE>);(<U03F0>,<U039A>);(<U03F1>,<U03A1>);/
+ (<U03F2>,<U03F9>);(<U03F3>,<U037F>);(<U03F5>,<U0395>);(<U03F8>,<U03F7>);/
+ (<U03FB>,<U03FA>);(<U0430>,<U0410>);(<U0431>,<U0411>);(<U0432>,<U0412>);/
+ (<U0433>,<U0413>);(<U0434>,<U0414>);(<U0435>,<U0415>);(<U0436>,<U0416>);/
+ (<U0437>,<U0417>);(<U0438>,<U0418>);(<U0439>,<U0419>);(<U043A>,<U041A>);/
+ (<U043B>,<U041B>);(<U043C>,<U041C>);(<U043D>,<U041D>);(<U043E>,<U041E>);/
+ (<U043F>,<U041F>);(<U0440>,<U0420>);(<U0441>,<U0421>);(<U0442>,<U0422>);/
+ (<U0443>,<U0423>);(<U0444>,<U0424>);(<U0445>,<U0425>);(<U0446>,<U0426>);/
+ (<U0447>,<U0427>);(<U0448>,<U0428>);(<U0449>,<U0429>);(<U044A>,<U042A>);/
+ (<U044B>,<U042B>);(<U044C>,<U042C>);(<U044D>,<U042D>);(<U044E>,<U042E>);/
+ (<U044F>,<U042F>);(<U0450>,<U0400>);(<U0451>,<U0401>);(<U0452>,<U0402>);/
+ (<U0453>,<U0403>);(<U0454>,<U0404>);(<U0455>,<U0405>);(<U0456>,<U0406>);/
+ (<U0457>,<U0407>);(<U0458>,<U0408>);(<U0459>,<U0409>);(<U045A>,<U040A>);/
+ (<U045B>,<U040B>);(<U045C>,<U040C>);(<U045D>,<U040D>);(<U045E>,<U040E>);/
+ (<U045F>,<U040F>);(<U0461>,<U0460>);(<U0463>,<U0462>);(<U0465>,<U0464>);/
+ (<U0467>,<U0466>);(<U0469>,<U0468>);(<U046B>,<U046A>);(<U046D>,<U046C>);/
+ (<U046F>,<U046E>);(<U0471>,<U0470>);(<U0473>,<U0472>);(<U0475>,<U0474>);/
+ (<U0477>,<U0476>);(<U0479>,<U0478>);(<U047B>,<U047A>);(<U047D>,<U047C>);/
+ (<U047F>,<U047E>);(<U0481>,<U0480>);(<U048B>,<U048A>);(<U048D>,<U048C>);/
+ (<U048F>,<U048E>);(<U0491>,<U0490>);(<U0493>,<U0492>);(<U0495>,<U0494>);/
+ (<U0497>,<U0496>);(<U0499>,<U0498>);(<U049B>,<U049A>);(<U049D>,<U049C>);/
+ (<U049F>,<U049E>);(<U04A1>,<U04A0>);(<U04A3>,<U04A2>);(<U04A5>,<U04A4>);/
+ (<U04A7>,<U04A6>);(<U04A9>,<U04A8>);(<U04AB>,<U04AA>);(<U04AD>,<U04AC>);/
+ (<U04AF>,<U04AE>);(<U04B1>,<U04B0>);(<U04B3>,<U04B2>);(<U04B5>,<U04B4>);/
+ (<U04B7>,<U04B6>);(<U04B9>,<U04B8>);(<U04BB>,<U04BA>);(<U04BD>,<U04BC>);/
+ (<U04BF>,<U04BE>);(<U04C2>,<U04C1>);(<U04C4>,<U04C3>);(<U04C6>,<U04C5>);/
+ (<U04C8>,<U04C7>);(<U04CA>,<U04C9>);(<U04CC>,<U04CB>);(<U04CE>,<U04CD>);/
+ (<U04CF>,<U04C0>);(<U04D1>,<U04D0>);(<U04D3>,<U04D2>);(<U04D5>,<U04D4>);/
+ (<U04D7>,<U04D6>);(<U04D9>,<U04D8>);(<U04DB>,<U04DA>);(<U04DD>,<U04DC>);/
+ (<U04DF>,<U04DE>);(<U04E1>,<U04E0>);(<U04E3>,<U04E2>);(<U04E5>,<U04E4>);/
+ (<U04E7>,<U04E6>);(<U04E9>,<U04E8>);(<U04EB>,<U04EA>);(<U04ED>,<U04EC>);/
+ (<U04EF>,<U04EE>);(<U04F1>,<U04F0>);(<U04F3>,<U04F2>);(<U04F5>,<U04F4>);/
+ (<U04F7>,<U04F6>);(<U04F9>,<U04F8>);(<U04FB>,<U04FA>);(<U04FD>,<U04FC>);/
+ (<U04FF>,<U04FE>);(<U0501>,<U0500>);(<U0503>,<U0502>);(<U0505>,<U0504>);/
+ (<U0507>,<U0506>);(<U0509>,<U0508>);(<U050B>,<U050A>);(<U050D>,<U050C>);/
+ (<U050F>,<U050E>);(<U0511>,<U0510>);(<U0513>,<U0512>);(<U0515>,<U0514>);/
+ (<U0517>,<U0516>);(<U0519>,<U0518>);(<U051B>,<U051A>);(<U051D>,<U051C>);/
+ (<U051F>,<U051E>);(<U0521>,<U0520>);(<U0523>,<U0522>);(<U0525>,<U0524>);/
+ (<U0527>,<U0526>);(<U0529>,<U0528>);(<U052B>,<U052A>);(<U052D>,<U052C>);/
+ (<U052F>,<U052E>);(<U0561>,<U0531>);(<U0562>,<U0532>);(<U0563>,<U0533>);/
+ (<U0564>,<U0534>);(<U0565>,<U0535>);(<U0566>,<U0536>);(<U0567>,<U0537>);/
+ (<U0568>,<U0538>);(<U0569>,<U0539>);(<U056A>,<U053A>);(<U056B>,<U053B>);/
+ (<U056C>,<U053C>);(<U056D>,<U053D>);(<U056E>,<U053E>);(<U056F>,<U053F>);/
+ (<U0570>,<U0540>);(<U0571>,<U0541>);(<U0572>,<U0542>);(<U0573>,<U0543>);/
+ (<U0574>,<U0544>);(<U0575>,<U0545>);(<U0576>,<U0546>);(<U0577>,<U0547>);/
+ (<U0578>,<U0548>);(<U0579>,<U0549>);(<U057A>,<U054A>);(<U057B>,<U054B>);/
+ (<U057C>,<U054C>);(<U057D>,<U054D>);(<U057E>,<U054E>);(<U057F>,<U054F>);/
+ (<U0580>,<U0550>);(<U0581>,<U0551>);(<U0582>,<U0552>);(<U0583>,<U0553>);/
+ (<U0584>,<U0554>);(<U0585>,<U0555>);(<U0586>,<U0556>);(<U13F8>,<U13F0>);/
+ (<U13F9>,<U13F1>);(<U13FA>,<U13F2>);(<U13FB>,<U13F3>);(<U13FC>,<U13F4>);/
+ (<U13FD>,<U13F5>);(<U1C80>,<U0412>);(<U1C81>,<U0414>);(<U1C82>,<U041E>);/
+ (<U1C83>,<U0421>);(<U1C84>,<U0422>);(<U1C85>,<U0422>);(<U1C86>,<U042A>);/
+ (<U1C87>,<U0462>);(<U1C88>,<UA64A>);(<U1D79>,<UA77D>);(<U1D7D>,<U2C63>);/
+ (<U1D8E>,<UA7C6>);(<U1E01>,<U1E00>);(<U1E03>,<U1E02>);(<U1E05>,<U1E04>);/
+ (<U1E07>,<U1E06>);(<U1E09>,<U1E08>);(<U1E0B>,<U1E0A>);(<U1E0D>,<U1E0C>);/
+ (<U1E0F>,<U1E0E>);(<U1E11>,<U1E10>);(<U1E13>,<U1E12>);(<U1E15>,<U1E14>);/
+ (<U1E17>,<U1E16>);(<U1E19>,<U1E18>);(<U1E1B>,<U1E1A>);(<U1E1D>,<U1E1C>);/
+ (<U1E1F>,<U1E1E>);(<U1E21>,<U1E20>);(<U1E23>,<U1E22>);(<U1E25>,<U1E24>);/
+ (<U1E27>,<U1E26>);(<U1E29>,<U1E28>);(<U1E2B>,<U1E2A>);(<U1E2D>,<U1E2C>);/
+ (<U1E2F>,<U1E2E>);(<U1E31>,<U1E30>);(<U1E33>,<U1E32>);(<U1E35>,<U1E34>);/
+ (<U1E37>,<U1E36>);(<U1E39>,<U1E38>);(<U1E3B>,<U1E3A>);(<U1E3D>,<U1E3C>);/
+ (<U1E3F>,<U1E3E>);(<U1E41>,<U1E40>);(<U1E43>,<U1E42>);(<U1E45>,<U1E44>);/
+ (<U1E47>,<U1E46>);(<U1E49>,<U1E48>);(<U1E4B>,<U1E4A>);(<U1E4D>,<U1E4C>);/
+ (<U1E4F>,<U1E4E>);(<U1E51>,<U1E50>);(<U1E53>,<U1E52>);(<U1E55>,<U1E54>);/
+ (<U1E57>,<U1E56>);(<U1E59>,<U1E58>);(<U1E5B>,<U1E5A>);(<U1E5D>,<U1E5C>);/
+ (<U1E5F>,<U1E5E>);(<U1E61>,<U1E60>);(<U1E63>,<U1E62>);(<U1E65>,<U1E64>);/
+ (<U1E67>,<U1E66>);(<U1E69>,<U1E68>);(<U1E6B>,<U1E6A>);(<U1E6D>,<U1E6C>);/
+ (<U1E6F>,<U1E6E>);(<U1E71>,<U1E70>);(<U1E73>,<U1E72>);(<U1E75>,<U1E74>);/
+ (<U1E77>,<U1E76>);(<U1E79>,<U1E78>);(<U1E7B>,<U1E7A>);(<U1E7D>,<U1E7C>);/
+ (<U1E7F>,<U1E7E>);(<U1E81>,<U1E80>);(<U1E83>,<U1E82>);(<U1E85>,<U1E84>);/
+ (<U1E87>,<U1E86>);(<U1E89>,<U1E88>);(<U1E8B>,<U1E8A>);(<U1E8D>,<U1E8C>);/
+ (<U1E8F>,<U1E8E>);(<U1E91>,<U1E90>);(<U1E93>,<U1E92>);(<U1E95>,<U1E94>);/
+ (<U1E9B>,<U1E60>);(<U1EA1>,<U1EA0>);(<U1EA3>,<U1EA2>);(<U1EA5>,<U1EA4>);/
+ (<U1EA7>,<U1EA6>);(<U1EA9>,<U1EA8>);(<U1EAB>,<U1EAA>);(<U1EAD>,<U1EAC>);/
+ (<U1EAF>,<U1EAE>);(<U1EB1>,<U1EB0>);(<U1EB3>,<U1EB2>);(<U1EB5>,<U1EB4>);/
+ (<U1EB7>,<U1EB6>);(<U1EB9>,<U1EB8>);(<U1EBB>,<U1EBA>);(<U1EBD>,<U1EBC>);/
+ (<U1EBF>,<U1EBE>);(<U1EC1>,<U1EC0>);(<U1EC3>,<U1EC2>);(<U1EC5>,<U1EC4>);/
+ (<U1EC7>,<U1EC6>);(<U1EC9>,<U1EC8>);(<U1ECB>,<U1ECA>);(<U1ECD>,<U1ECC>);/
+ (<U1ECF>,<U1ECE>);(<U1ED1>,<U1ED0>);(<U1ED3>,<U1ED2>);(<U1ED5>,<U1ED4>);/
+ (<U1ED7>,<U1ED6>);(<U1ED9>,<U1ED8>);(<U1EDB>,<U1EDA>);(<U1EDD>,<U1EDC>);/
+ (<U1EDF>,<U1EDE>);(<U1EE1>,<U1EE0>);(<U1EE3>,<U1EE2>);(<U1EE5>,<U1EE4>);/
+ (<U1EE7>,<U1EE6>);(<U1EE9>,<U1EE8>);(<U1EEB>,<U1EEA>);(<U1EED>,<U1EEC>);/
+ (<U1EEF>,<U1EEE>);(<U1EF1>,<U1EF0>);(<U1EF3>,<U1EF2>);(<U1EF5>,<U1EF4>);/
+ (<U1EF7>,<U1EF6>);(<U1EF9>,<U1EF8>);(<U1EFB>,<U1EFA>);(<U1EFD>,<U1EFC>);/
+ (<U1EFF>,<U1EFE>);(<U1F00>,<U1F08>);(<U1F01>,<U1F09>);(<U1F02>,<U1F0A>);/
+ (<U1F03>,<U1F0B>);(<U1F04>,<U1F0C>);(<U1F05>,<U1F0D>);(<U1F06>,<U1F0E>);/
+ (<U1F07>,<U1F0F>);(<U1F10>,<U1F18>);(<U1F11>,<U1F19>);(<U1F12>,<U1F1A>);/
+ (<U1F13>,<U1F1B>);(<U1F14>,<U1F1C>);(<U1F15>,<U1F1D>);(<U1F20>,<U1F28>);/
+ (<U1F21>,<U1F29>);(<U1F22>,<U1F2A>);(<U1F23>,<U1F2B>);(<U1F24>,<U1F2C>);/
+ (<U1F25>,<U1F2D>);(<U1F26>,<U1F2E>);(<U1F27>,<U1F2F>);(<U1F30>,<U1F38>);/
+ (<U1F31>,<U1F39>);(<U1F32>,<U1F3A>);(<U1F33>,<U1F3B>);(<U1F34>,<U1F3C>);/
+ (<U1F35>,<U1F3D>);(<U1F36>,<U1F3E>);(<U1F37>,<U1F3F>);(<U1F40>,<U1F48>);/
+ (<U1F41>,<U1F49>);(<U1F42>,<U1F4A>);(<U1F43>,<U1F4B>);(<U1F44>,<U1F4C>);/
+ (<U1F45>,<U1F4D>);(<U1F51>,<U1F59>);(<U1F53>,<U1F5B>);(<U1F55>,<U1F5D>);/
+ (<U1F57>,<U1F5F>);(<U1F60>,<U1F68>);(<U1F61>,<U1F69>);(<U1F62>,<U1F6A>);/
+ (<U1F63>,<U1F6B>);(<U1F64>,<U1F6C>);(<U1F65>,<U1F6D>);(<U1F66>,<U1F6E>);/
+ (<U1F67>,<U1F6F>);(<U1F70>,<U1FBA>);(<U1F71>,<U1FBB>);(<U1F72>,<U1FC8>);/
+ (<U1F73>,<U1FC9>);(<U1F74>,<U1FCA>);(<U1F75>,<U1FCB>);(<U1F76>,<U1FDA>);/
+ (<U1F77>,<U1FDB>);(<U1F78>,<U1FF8>);(<U1F79>,<U1FF9>);(<U1F7A>,<U1FEA>);/
+ (<U1F7B>,<U1FEB>);(<U1F7C>,<U1FFA>);(<U1F7D>,<U1FFB>);(<U1F80>,<U1F88>);/
+ (<U1F81>,<U1F89>);(<U1F82>,<U1F8A>);(<U1F83>,<U1F8B>);(<U1F84>,<U1F8C>);/
+ (<U1F85>,<U1F8D>);(<U1F86>,<U1F8E>);(<U1F87>,<U1F8F>);(<U1F90>,<U1F98>);/
+ (<U1F91>,<U1F99>);(<U1F92>,<U1F9A>);(<U1F93>,<U1F9B>);(<U1F94>,<U1F9C>);/
+ (<U1F95>,<U1F9D>);(<U1F96>,<U1F9E>);(<U1F97>,<U1F9F>);(<U1FA0>,<U1FA8>);/
+ (<U1FA1>,<U1FA9>);(<U1FA2>,<U1FAA>);(<U1FA3>,<U1FAB>);(<U1FA4>,<U1FAC>);/
+ (<U1FA5>,<U1FAD>);(<U1FA6>,<U1FAE>);(<U1FA7>,<U1FAF>);(<U1FB0>,<U1FB8>);/
+ (<U1FB1>,<U1FB9>);(<U1FB3>,<U1FBC>);(<U1FBE>,<U0399>);(<U1FC3>,<U1FCC>);/
+ (<U1FD0>,<U1FD8>);(<U1FD1>,<U1FD9>);(<U1FE0>,<U1FE8>);(<U1FE1>,<U1FE9>);/
+ (<U1FE5>,<U1FEC>);(<U1FF3>,<U1FFC>);(<U214E>,<U2132>);(<U2170>,<U2160>);/
+ (<U2171>,<U2161>);(<U2172>,<U2162>);(<U2173>,<U2163>);(<U2174>,<U2164>);/
+ (<U2175>,<U2165>);(<U2176>,<U2166>);(<U2177>,<U2167>);(<U2178>,<U2168>);/
+ (<U2179>,<U2169>);(<U217A>,<U216A>);(<U217B>,<U216B>);(<U217C>,<U216C>);/
+ (<U217D>,<U216D>);(<U217E>,<U216E>);(<U217F>,<U216F>);(<U2184>,<U2183>);/
+ (<U24D0>,<U24B6>);(<U24D1>,<U24B7>);(<U24D2>,<U24B8>);(<U24D3>,<U24B9>);/
+ (<U24D4>,<U24BA>);(<U24D5>,<U24BB>);(<U24D6>,<U24BC>);(<U24D7>,<U24BD>);/
+ (<U24D8>,<U24BE>);(<U24D9>,<U24BF>);(<U24DA>,<U24C0>);(<U24DB>,<U24C1>);/
+ (<U24DC>,<U24C2>);(<U24DD>,<U24C3>);(<U24DE>,<U24C4>);(<U24DF>,<U24C5>);/
+ (<U24E0>,<U24C6>);(<U24E1>,<U24C7>);(<U24E2>,<U24C8>);(<U24E3>,<U24C9>);/
+ (<U24E4>,<U24CA>);(<U24E5>,<U24CB>);(<U24E6>,<U24CC>);(<U24E7>,<U24CD>);/
+ (<U24E8>,<U24CE>);(<U24E9>,<U24CF>);(<U2C30>,<U2C00>);(<U2C31>,<U2C01>);/
+ (<U2C32>,<U2C02>);(<U2C33>,<U2C03>);(<U2C34>,<U2C04>);(<U2C35>,<U2C05>);/
+ (<U2C36>,<U2C06>);(<U2C37>,<U2C07>);(<U2C38>,<U2C08>);(<U2C39>,<U2C09>);/
+ (<U2C3A>,<U2C0A>);(<U2C3B>,<U2C0B>);(<U2C3C>,<U2C0C>);(<U2C3D>,<U2C0D>);/
+ (<U2C3E>,<U2C0E>);(<U2C3F>,<U2C0F>);(<U2C40>,<U2C10>);(<U2C41>,<U2C11>);/
+ (<U2C42>,<U2C12>);(<U2C43>,<U2C13>);(<U2C44>,<U2C14>);(<U2C45>,<U2C15>);/
+ (<U2C46>,<U2C16>);(<U2C47>,<U2C17>);(<U2C48>,<U2C18>);(<U2C49>,<U2C19>);/
+ (<U2C4A>,<U2C1A>);(<U2C4B>,<U2C1B>);(<U2C4C>,<U2C1C>);(<U2C4D>,<U2C1D>);/
+ (<U2C4E>,<U2C1E>);(<U2C4F>,<U2C1F>);(<U2C50>,<U2C20>);(<U2C51>,<U2C21>);/
+ (<U2C52>,<U2C22>);(<U2C53>,<U2C23>);(<U2C54>,<U2C24>);(<U2C55>,<U2C25>);/
+ (<U2C56>,<U2C26>);(<U2C57>,<U2C27>);(<U2C58>,<U2C28>);(<U2C59>,<U2C29>);/
+ (<U2C5A>,<U2C2A>);(<U2C5B>,<U2C2B>);(<U2C5C>,<U2C2C>);(<U2C5D>,<U2C2D>);/
+ (<U2C5E>,<U2C2E>);(<U2C61>,<U2C60>);(<U2C65>,<U023A>);(<U2C66>,<U023E>);/
+ (<U2C68>,<U2C67>);(<U2C6A>,<U2C69>);(<U2C6C>,<U2C6B>);(<U2C73>,<U2C72>);/
+ (<U2C76>,<U2C75>);(<U2C81>,<U2C80>);(<U2C83>,<U2C82>);(<U2C85>,<U2C84>);/
+ (<U2C87>,<U2C86>);(<U2C89>,<U2C88>);(<U2C8B>,<U2C8A>);(<U2C8D>,<U2C8C>);/
+ (<U2C8F>,<U2C8E>);(<U2C91>,<U2C90>);(<U2C93>,<U2C92>);(<U2C95>,<U2C94>);/
+ (<U2C97>,<U2C96>);(<U2C99>,<U2C98>);(<U2C9B>,<U2C9A>);(<U2C9D>,<U2C9C>);/
+ (<U2C9F>,<U2C9E>);(<U2CA1>,<U2CA0>);(<U2CA3>,<U2CA2>);(<U2CA5>,<U2CA4>);/
+ (<U2CA7>,<U2CA6>);(<U2CA9>,<U2CA8>);(<U2CAB>,<U2CAA>);(<U2CAD>,<U2CAC>);/
+ (<U2CAF>,<U2CAE>);(<U2CB1>,<U2CB0>);(<U2CB3>,<U2CB2>);(<U2CB5>,<U2CB4>);/
+ (<U2CB7>,<U2CB6>);(<U2CB9>,<U2CB8>);(<U2CBB>,<U2CBA>);(<U2CBD>,<U2CBC>);/
+ (<U2CBF>,<U2CBE>);(<U2CC1>,<U2CC0>);(<U2CC3>,<U2CC2>);(<U2CC5>,<U2CC4>);/
+ (<U2CC7>,<U2CC6>);(<U2CC9>,<U2CC8>);(<U2CCB>,<U2CCA>);(<U2CCD>,<U2CCC>);/
+ (<U2CCF>,<U2CCE>);(<U2CD1>,<U2CD0>);(<U2CD3>,<U2CD2>);(<U2CD5>,<U2CD4>);/
+ (<U2CD7>,<U2CD6>);(<U2CD9>,<U2CD8>);(<U2CDB>,<U2CDA>);(<U2CDD>,<U2CDC>);/
+ (<U2CDF>,<U2CDE>);(<U2CE1>,<U2CE0>);(<U2CE3>,<U2CE2>);(<U2CEC>,<U2CEB>);/
+ (<U2CEE>,<U2CED>);(<U2CF3>,<U2CF2>);(<U2D00>,<U10A0>);(<U2D01>,<U10A1>);/
+ (<U2D02>,<U10A2>);(<U2D03>,<U10A3>);(<U2D04>,<U10A4>);(<U2D05>,<U10A5>);/
+ (<U2D06>,<U10A6>);(<U2D07>,<U10A7>);(<U2D08>,<U10A8>);(<U2D09>,<U10A9>);/
+ (<U2D0A>,<U10AA>);(<U2D0B>,<U10AB>);(<U2D0C>,<U10AC>);(<U2D0D>,<U10AD>);/
+ (<U2D0E>,<U10AE>);(<U2D0F>,<U10AF>);(<U2D10>,<U10B0>);(<U2D11>,<U10B1>);/
+ (<U2D12>,<U10B2>);(<U2D13>,<U10B3>);(<U2D14>,<U10B4>);(<U2D15>,<U10B5>);/
+ (<U2D16>,<U10B6>);(<U2D17>,<U10B7>);(<U2D18>,<U10B8>);(<U2D19>,<U10B9>);/
+ (<U2D1A>,<U10BA>);(<U2D1B>,<U10BB>);(<U2D1C>,<U10BC>);(<U2D1D>,<U10BD>);/
+ (<U2D1E>,<U10BE>);(<U2D1F>,<U10BF>);(<U2D20>,<U10C0>);(<U2D21>,<U10C1>);/
+ (<U2D22>,<U10C2>);(<U2D23>,<U10C3>);(<U2D24>,<U10C4>);(<U2D25>,<U10C5>);/
+ (<U2D27>,<U10C7>);(<U2D2D>,<U10CD>);(<UA641>,<UA640>);(<UA643>,<UA642>);/
+ (<UA645>,<UA644>);(<UA647>,<UA646>);(<UA649>,<UA648>);(<UA64B>,<UA64A>);/
+ (<UA64D>,<UA64C>);(<UA64F>,<UA64E>);(<UA651>,<UA650>);(<UA653>,<UA652>);/
+ (<UA655>,<UA654>);(<UA657>,<UA656>);(<UA659>,<UA658>);(<UA65B>,<UA65A>);/
+ (<UA65D>,<UA65C>);(<UA65F>,<UA65E>);(<UA661>,<UA660>);(<UA663>,<UA662>);/
+ (<UA665>,<UA664>);(<UA667>,<UA666>);(<UA669>,<UA668>);(<UA66B>,<UA66A>);/
+ (<UA66D>,<UA66C>);(<UA681>,<UA680>);(<UA683>,<UA682>);(<UA685>,<UA684>);/
+ (<UA687>,<UA686>);(<UA689>,<UA688>);(<UA68B>,<UA68A>);(<UA68D>,<UA68C>);/
+ (<UA68F>,<UA68E>);(<UA691>,<UA690>);(<UA693>,<UA692>);(<UA695>,<UA694>);/
+ (<UA697>,<UA696>);(<UA699>,<UA698>);(<UA69B>,<UA69A>);(<UA723>,<UA722>);/
+ (<UA725>,<UA724>);(<UA727>,<UA726>);(<UA729>,<UA728>);(<UA72B>,<UA72A>);/
+ (<UA72D>,<UA72C>);(<UA72F>,<UA72E>);(<UA733>,<UA732>);(<UA735>,<UA734>);/
+ (<UA737>,<UA736>);(<UA739>,<UA738>);(<UA73B>,<UA73A>);(<UA73D>,<UA73C>);/
+ (<UA73F>,<UA73E>);(<UA741>,<UA740>);(<UA743>,<UA742>);(<UA745>,<UA744>);/
+ (<UA747>,<UA746>);(<UA749>,<UA748>);(<UA74B>,<UA74A>);(<UA74D>,<UA74C>);/
+ (<UA74F>,<UA74E>);(<UA751>,<UA750>);(<UA753>,<UA752>);(<UA755>,<UA754>);/
+ (<UA757>,<UA756>);(<UA759>,<UA758>);(<UA75B>,<UA75A>);(<UA75D>,<UA75C>);/
+ (<UA75F>,<UA75E>);(<UA761>,<UA760>);(<UA763>,<UA762>);(<UA765>,<UA764>);/
+ (<UA767>,<UA766>);(<UA769>,<UA768>);(<UA76B>,<UA76A>);(<UA76D>,<UA76C>);/
+ (<UA76F>,<UA76E>);(<UA77A>,<UA779>);(<UA77C>,<UA77B>);(<UA77F>,<UA77E>);/
+ (<UA781>,<UA780>);(<UA783>,<UA782>);(<UA785>,<UA784>);(<UA787>,<UA786>);/
+ (<UA78C>,<UA78B>);(<UA791>,<UA790>);(<UA793>,<UA792>);(<UA794>,<UA7C4>);/
+ (<UA797>,<UA796>);(<UA799>,<UA798>);(<UA79B>,<UA79A>);(<UA79D>,<UA79C>);/
+ (<UA79F>,<UA79E>);(<UA7A1>,<UA7A0>);(<UA7A3>,<UA7A2>);(<UA7A5>,<UA7A4>);/
+ (<UA7A7>,<UA7A6>);(<UA7A9>,<UA7A8>);(<UA7B5>,<UA7B4>);(<UA7B7>,<UA7B6>);/
+ (<UA7B9>,<UA7B8>);(<UA7BB>,<UA7BA>);(<UA7BD>,<UA7BC>);(<UA7BF>,<UA7BE>);/
+ (<UA7C3>,<UA7C2>);(<UAB53>,<UA7B3>);(<UAB70>,<U13A0>);(<UAB71>,<U13A1>);/
+ (<UAB72>,<U13A2>);(<UAB73>,<U13A3>);(<UAB74>,<U13A4>);(<UAB75>,<U13A5>);/
+ (<UAB76>,<U13A6>);(<UAB77>,<U13A7>);(<UAB78>,<U13A8>);(<UAB79>,<U13A9>);/
+ (<UAB7A>,<U13AA>);(<UAB7B>,<U13AB>);(<UAB7C>,<U13AC>);(<UAB7D>,<U13AD>);/
+ (<UAB7E>,<U13AE>);(<UAB7F>,<U13AF>);(<UAB80>,<U13B0>);(<UAB81>,<U13B1>);/
+ (<UAB82>,<U13B2>);(<UAB83>,<U13B3>);(<UAB84>,<U13B4>);(<UAB85>,<U13B5>);/
+ (<UAB86>,<U13B6>);(<UAB87>,<U13B7>);(<UAB88>,<U13B8>);(<UAB89>,<U13B9>);/
+ (<UAB8A>,<U13BA>);(<UAB8B>,<U13BB>);(<UAB8C>,<U13BC>);(<UAB8D>,<U13BD>);/
+ (<UAB8E>,<U13BE>);(<UAB8F>,<U13BF>);(<UAB90>,<U13C0>);(<UAB91>,<U13C1>);/
+ (<UAB92>,<U13C2>);(<UAB93>,<U13C3>);(<UAB94>,<U13C4>);(<UAB95>,<U13C5>);/
+ (<UAB96>,<U13C6>);(<UAB97>,<U13C7>);(<UAB98>,<U13C8>);(<UAB99>,<U13C9>);/
+ (<UAB9A>,<U13CA>);(<UAB9B>,<U13CB>);(<UAB9C>,<U13CC>);(<UAB9D>,<U13CD>);/
+ (<UAB9E>,<U13CE>);(<UAB9F>,<U13CF>);(<UABA0>,<U13D0>);(<UABA1>,<U13D1>);/
+ (<UABA2>,<U13D2>);(<UABA3>,<U13D3>);(<UABA4>,<U13D4>);(<UABA5>,<U13D5>);/
+ (<UABA6>,<U13D6>);(<UABA7>,<U13D7>);(<UABA8>,<U13D8>);(<UABA9>,<U13D9>);/
+ (<UABAA>,<U13DA>);(<UABAB>,<U13DB>);(<UABAC>,<U13DC>);(<UABAD>,<U13DD>);/
+ (<UABAE>,<U13DE>);(<UABAF>,<U13DF>);(<UABB0>,<U13E0>);(<UABB1>,<U13E1>);/
+ (<UABB2>,<U13E2>);(<UABB3>,<U13E3>);(<UABB4>,<U13E4>);(<UABB5>,<U13E5>);/
+ (<UABB6>,<U13E6>);(<UABB7>,<U13E7>);(<UABB8>,<U13E8>);(<UABB9>,<U13E9>);/
+ (<UABBA>,<U13EA>);(<UABBB>,<U13EB>);(<UABBC>,<U13EC>);(<UABBD>,<U13ED>);/
+ (<UABBE>,<U13EE>);(<UABBF>,<U13EF>);(<UFF41>,<UFF21>);(<UFF42>,<UFF22>);/
+ (<UFF43>,<UFF23>);(<UFF44>,<UFF24>);(<UFF45>,<UFF25>);(<UFF46>,<UFF26>);/
+ (<UFF47>,<UFF27>);(<UFF48>,<UFF28>);(<UFF49>,<UFF29>);(<UFF4A>,<UFF2A>);/
+ (<UFF4B>,<UFF2B>);(<UFF4C>,<UFF2C>);(<UFF4D>,<UFF2D>);(<UFF4E>,<UFF2E>);/
+ (<UFF4F>,<UFF2F>);(<UFF50>,<UFF30>);(<UFF51>,<UFF31>);(<UFF52>,<UFF32>);/
+ (<UFF53>,<UFF33>);(<UFF54>,<UFF34>);(<UFF55>,<UFF35>);(<UFF56>,<UFF36>);/
+ (<UFF57>,<UFF37>);(<UFF58>,<UFF38>);(<UFF59>,<UFF39>);(<UFF5A>,<UFF3A>);/
+ (<U00010428>,<U00010400>);(<U00010429>,<U00010401>);/
(<U0001042A>,<U00010402>);(<U0001042B>,<U00010403>);/
(<U0001042C>,<U00010404>);(<U0001042D>,<U00010405>);/
(<U0001042E>,<U00010406>);(<U0001042F>,<U00010407>);/
@@ -2307,66 +2330,68 @@ class "combining"; /
<U0D00>..<U0D03>;<U0D3B>..<U0D3C>;<U0D3E>..<U0D44>;<U0D46>..<U0D48>;/
<U0D4A>..<U0D4D>;<U0D57>;<U0D62>..<U0D63>;<U0D82>..<U0D83>;<U0DCA>;/
<U0DCF>..<U0DD4>;<U0DD6>;<U0DD8>..<U0DDF>;<U0DF2>..<U0DF3>;<U0E31>;/
- <U0E34>..<U0E3A>;<U0E47>..<U0E4E>;<U0EB1>;<U0EB4>..<U0EB9>;/
- <U0EBB>..<U0EBC>;<U0EC8>..<U0ECD>;<U0F18>..<U0F19>;<U0F35>;<U0F37>;/
- <U0F39>;<U0F3E>..<U0F3F>;<U0F71>..<U0F84>;<U0F86>..<U0F87>;/
- <U0F8D>..<U0F97>;<U0F99>..<U0FBC>;<U0FC6>;<U102B>..<U103E>;/
- <U1056>..<U1059>;<U105E>..<U1060>;<U1062>..<U1064>;<U1067>..<U106D>;/
- <U1071>..<U1074>;<U1082>..<U108D>;<U108F>;<U109A>..<U109D>;/
- <U135D>..<U135F>;<U1712>..<U1714>;<U1732>..<U1734>;<U1752>..<U1753>;/
- <U1772>..<U1773>;<U17B4>..<U17D3>;<U17DD>;<U180B>..<U180D>;/
- <U1885>..<U1886>;<U18A9>;<U1920>..<U192B>;<U1930>..<U193B>;/
- <U1A17>..<U1A1B>;<U1A55>..<U1A5E>;<U1A60>..<U1A7C>;<U1A7F>;/
- <U1AB0>..<U1ABE>;<U1B00>..<U1B04>;<U1B34>..<U1B44>;<U1B6B>..<U1B73>;/
- <U1B80>..<U1B82>;<U1BA1>..<U1BAD>;<U1BE6>..<U1BF3>;<U1C24>..<U1C37>;/
- <U1CD0>..<U1CD2>;<U1CD4>..<U1CE8>;<U1CED>;<U1CF2>..<U1CF4>;/
- <U1CF7>..<U1CF9>;<U1DC0>..<U1DF9>;<U1DFB>..<U1DFF>;<U20D0>..<U20F0>;/
- <U2CEF>..<U2CF1>;<U2D7F>;<U2DE0>..<U2DFF>;<U302A>..<U302F>;/
- <U3099>..<U309A>;<UA66F>..<UA672>;<UA674>..<UA67D>;<UA69E>..<UA69F>;/
- <UA6F0>..<UA6F1>;<UA802>;<UA806>;<UA80B>;<UA823>..<UA827>;/
- <UA880>..<UA881>;<UA8B4>..<UA8C5>;<UA8E0>..<UA8F1>;<UA8FF>;/
- <UA926>..<UA92D>;<UA947>..<UA953>;<UA980>..<UA983>;<UA9B3>..<UA9C0>;/
- <UA9E5>;<UAA29>..<UAA36>;<UAA43>;<UAA4C>..<UAA4D>;<UAA7B>..<UAA7D>;/
- <UAAB0>;<UAAB2>..<UAAB4>;<UAAB7>..<UAAB8>;<UAABE>..<UAABF>;<UAAC1>;/
- <UAAEB>..<UAAEF>;<UAAF5>..<UAAF6>;<UABE3>..<UABEA>;<UABEC>..<UABED>;/
- <UFB1E>;<UFE00>..<UFE0F>;<UFE20>..<UFE2F>;<U000101FD>;<U000102E0>;/
- <U00010376>..<U0001037A>;<U00010A01>..<U00010A03>;/
- <U00010A05>..<U00010A06>;<U00010A0C>..<U00010A0F>;/
- <U00010A38>..<U00010A3A>;<U00010A3F>;<U00010AE5>..<U00010AE6>;/
- <U00010D24>..<U00010D27>;<U00010F46>..<U00010F50>;/
- <U00011000>..<U00011002>;<U00011038>..<U00011046>;/
- <U0001107F>..<U00011082>;<U000110B0>..<U000110BA>;/
- <U00011100>..<U00011102>;<U00011127>..<U00011134>;/
- <U00011145>..<U00011146>;<U00011173>;<U00011180>..<U00011182>;/
- <U000111B3>..<U000111C0>;<U000111C9>..<U000111CC>;/
- <U0001122C>..<U00011237>;<U0001123E>;<U000112DF>..<U000112EA>;/
- <U00011300>..<U00011303>;<U0001133B>..<U0001133C>;/
- <U0001133E>..<U00011344>;<U00011347>..<U00011348>;/
- <U0001134B>..<U0001134D>;<U00011357>;<U00011362>..<U00011363>;/
- <U00011366>..<U0001136C>;<U00011370>..<U00011374>;/
- <U00011435>..<U00011446>;<U0001145E>;<U000114B0>..<U000114C3>;/
- <U000115AF>..<U000115B5>;<U000115B8>..<U000115C0>;/
- <U000115DC>..<U000115DD>;<U00011630>..<U00011640>;/
- <U000116AB>..<U000116B7>;<U0001171D>..<U0001172B>;/
- <U0001182C>..<U0001183A>;<U00011A01>..<U00011A0A>;/
- <U00011A33>..<U00011A39>;<U00011A3B>..<U00011A3E>;<U00011A47>;/
- <U00011A51>..<U00011A5B>;<U00011A8A>..<U00011A99>;/
- <U00011C2F>..<U00011C36>;<U00011C38>..<U00011C3F>;/
- <U00011C92>..<U00011CA7>;<U00011CA9>..<U00011CB6>;/
- <U00011D31>..<U00011D36>;<U00011D3A>;<U00011D3C>..<U00011D3D>;/
- <U00011D3F>..<U00011D45>;<U00011D47>;<U00011D8A>..<U00011D8E>;/
- <U00011D90>..<U00011D91>;<U00011D93>..<U00011D97>;/
- <U00011EF3>..<U00011EF6>;<U00016AF0>..<U00016AF4>;/
- <U00016B30>..<U00016B36>;<U00016F51>..<U00016F7E>;/
- <U00016F8F>..<U00016F92>;<U0001BC9D>..<U0001BC9E>;/
- <U0001D165>..<U0001D169>;<U0001D16D>..<U0001D172>;/
- <U0001D17B>..<U0001D182>;<U0001D185>..<U0001D18B>;/
- <U0001D1AA>..<U0001D1AD>;<U0001D242>..<U0001D244>;/
- <U0001DA00>..<U0001DA36>;<U0001DA3B>..<U0001DA6C>;<U0001DA75>;/
- <U0001DA84>;<U0001DA9B>..<U0001DA9F>;<U0001DAA1>..<U0001DAAF>;/
+ <U0E34>..<U0E3A>;<U0E47>..<U0E4E>;<U0EB1>;<U0EB4>..<U0EBC>;/
+ <U0EC8>..<U0ECD>;<U0F18>..<U0F19>;<U0F35>;<U0F37>;<U0F39>;/
+ <U0F3E>..<U0F3F>;<U0F71>..<U0F84>;<U0F86>..<U0F87>;<U0F8D>..<U0F97>;/
+ <U0F99>..<U0FBC>;<U0FC6>;<U102B>..<U103E>;<U1056>..<U1059>;/
+ <U105E>..<U1060>;<U1062>..<U1064>;<U1067>..<U106D>;<U1071>..<U1074>;/
+ <U1082>..<U108D>;<U108F>;<U109A>..<U109D>;<U135D>..<U135F>;/
+ <U1712>..<U1714>;<U1732>..<U1734>;<U1752>..<U1753>;<U1772>..<U1773>;/
+ <U17B4>..<U17D3>;<U17DD>;<U180B>..<U180D>;<U1885>..<U1886>;<U18A9>;/
+ <U1920>..<U192B>;<U1930>..<U193B>;<U1A17>..<U1A1B>;<U1A55>..<U1A5E>;/
+ <U1A60>..<U1A7C>;<U1A7F>;<U1AB0>..<U1ABE>;<U1B00>..<U1B04>;/
+ <U1B34>..<U1B44>;<U1B6B>..<U1B73>;<U1B80>..<U1B82>;<U1BA1>..<U1BAD>;/
+ <U1BE6>..<U1BF3>;<U1C24>..<U1C37>;<U1CD0>..<U1CD2>;<U1CD4>..<U1CE8>;/
+ <U1CED>;<U1CF4>;<U1CF7>..<U1CF9>;<U1DC0>..<U1DF9>;<U1DFB>..<U1DFF>;/
+ <U20D0>..<U20F0>;<U2CEF>..<U2CF1>;<U2D7F>;<U2DE0>..<U2DFF>;/
+ <U302A>..<U302F>;<U3099>..<U309A>;<UA66F>..<UA672>;<UA674>..<UA67D>;/
+ <UA69E>..<UA69F>;<UA6F0>..<UA6F1>;<UA802>;<UA806>;<UA80B>;/
+ <UA823>..<UA827>;<UA880>..<UA881>;<UA8B4>..<UA8C5>;<UA8E0>..<UA8F1>;/
+ <UA8FF>;<UA926>..<UA92D>;<UA947>..<UA953>;<UA980>..<UA983>;/
+ <UA9B3>..<UA9C0>;<UA9E5>;<UAA29>..<UAA36>;<UAA43>;<UAA4C>..<UAA4D>;/
+ <UAA7B>..<UAA7D>;<UAAB0>;<UAAB2>..<UAAB4>;<UAAB7>..<UAAB8>;/
+ <UAABE>..<UAABF>;<UAAC1>;<UAAEB>..<UAAEF>;<UAAF5>..<UAAF6>;/
+ <UABE3>..<UABEA>;<UABEC>..<UABED>;<UFB1E>;<UFE00>..<UFE0F>;/
+ <UFE20>..<UFE2F>;<U000101FD>;<U000102E0>;<U00010376>..<U0001037A>;/
+ <U00010A01>..<U00010A03>;<U00010A05>..<U00010A06>;/
+ <U00010A0C>..<U00010A0F>;<U00010A38>..<U00010A3A>;<U00010A3F>;/
+ <U00010AE5>..<U00010AE6>;<U00010D24>..<U00010D27>;/
+ <U00010F46>..<U00010F50>;<U00011000>..<U00011002>;/
+ <U00011038>..<U00011046>;<U0001107F>..<U00011082>;/
+ <U000110B0>..<U000110BA>;<U00011100>..<U00011102>;/
+ <U00011127>..<U00011134>;<U00011145>..<U00011146>;<U00011173>;/
+ <U00011180>..<U00011182>;<U000111B3>..<U000111C0>;/
+ <U000111C9>..<U000111CC>;<U0001122C>..<U00011237>;<U0001123E>;/
+ <U000112DF>..<U000112EA>;<U00011300>..<U00011303>;/
+ <U0001133B>..<U0001133C>;<U0001133E>..<U00011344>;/
+ <U00011347>..<U00011348>;<U0001134B>..<U0001134D>;<U00011357>;/
+ <U00011362>..<U00011363>;<U00011366>..<U0001136C>;/
+ <U00011370>..<U00011374>;<U00011435>..<U00011446>;<U0001145E>;/
+ <U000114B0>..<U000114C3>;<U000115AF>..<U000115B5>;/
+ <U000115B8>..<U000115C0>;<U000115DC>..<U000115DD>;/
+ <U00011630>..<U00011640>;<U000116AB>..<U000116B7>;/
+ <U0001171D>..<U0001172B>;<U0001182C>..<U0001183A>;/
+ <U000119D1>..<U000119D7>;<U000119DA>..<U000119E0>;<U000119E4>;/
+ <U00011A01>..<U00011A0A>;<U00011A33>..<U00011A39>;/
+ <U00011A3B>..<U00011A3E>;<U00011A47>;<U00011A51>..<U00011A5B>;/
+ <U00011A8A>..<U00011A99>;<U00011C2F>..<U00011C36>;/
+ <U00011C38>..<U00011C3F>;<U00011C92>..<U00011CA7>;/
+ <U00011CA9>..<U00011CB6>;<U00011D31>..<U00011D36>;<U00011D3A>;/
+ <U00011D3C>..<U00011D3D>;<U00011D3F>..<U00011D45>;<U00011D47>;/
+ <U00011D8A>..<U00011D8E>;<U00011D90>..<U00011D91>;/
+ <U00011D93>..<U00011D97>;<U00011EF3>..<U00011EF6>;/
+ <U00016AF0>..<U00016AF4>;<U00016B30>..<U00016B36>;<U00016F4F>;/
+ <U00016F51>..<U00016F87>;<U00016F8F>..<U00016F92>;/
+ <U0001BC9D>..<U0001BC9E>;<U0001D165>..<U0001D169>;/
+ <U0001D16D>..<U0001D172>;<U0001D17B>..<U0001D182>;/
+ <U0001D185>..<U0001D18B>;<U0001D1AA>..<U0001D1AD>;/
+ <U0001D242>..<U0001D244>;<U0001DA00>..<U0001DA36>;/
+ <U0001DA3B>..<U0001DA6C>;<U0001DA75>;<U0001DA84>;/
+ <U0001DA9B>..<U0001DA9F>;<U0001DAA1>..<U0001DAAF>;/
<U0001E000>..<U0001E006>;<U0001E008>..<U0001E018>;/
<U0001E01B>..<U0001E021>;<U0001E023>..<U0001E024>;/
- <U0001E026>..<U0001E02A>;<U0001E8D0>..<U0001E8D6>;/
+ <U0001E026>..<U0001E02A>;<U0001E130>..<U0001E136>;/
+ <U0001E2EC>..<U0001E2EF>;<U0001E8D0>..<U0001E8D6>;/
<U0001E944>..<U0001E94A>;<U000E0100>..<U000E01EF>
% The "combining_level3" class reflects ISO/IEC 10646-1 annex B.2
@@ -2391,18 +2416,18 @@ class "combining_level3"; /
<U0D46>..<U0D48>;<U0D4A>..<U0D4D>;<U0D57>;<U0D62>..<U0D63>;/
<U0D82>..<U0D83>;<U0DCA>;<U0DCF>..<U0DD4>;<U0DD6>;<U0DD8>..<U0DDF>;/
<U0DF2>..<U0DF3>;<U0E31>;<U0E34>..<U0E3A>;<U0E47>..<U0E4E>;<U0EB1>;/
- <U0EB4>..<U0EB9>;<U0EBB>..<U0EBC>;<U0EC8>..<U0ECD>;<U0F3E>..<U0F3F>;/
- <U0F71>..<U0F81>;<U0F84>;<U0F8D>..<U0F97>;<U0F99>..<U0FBC>;/
- <U102B>..<U103E>;<U1056>..<U1059>;<U105E>..<U1060>;<U1062>..<U1064>;/
- <U1067>..<U106D>;<U1071>..<U1074>;<U1082>..<U108C>;<U108F>;/
- <U109A>..<U109D>;<U1712>..<U1714>;<U1732>..<U1734>;<U1752>..<U1753>;/
- <U1772>..<U1773>;<U17B4>..<U17D3>;<U180B>..<U180D>;<U1885>..<U1886>;/
- <U1920>..<U192B>;<U1930>..<U1938>;<U1A19>..<U1A1B>;<U1A55>..<U1A5E>;/
- <U1A60>..<U1A74>;<U1ABE>;<U1B00>..<U1B04>;<U1B34>..<U1B44>;/
- <U1B80>..<U1B82>;<U1BA1>..<U1BAD>;<U1BE6>..<U1BF3>;<U1C24>..<U1C37>;/
- <U1CD4>;<U1CE1>..<U1CE8>;<U1CF2>..<U1CF3>;<U1CF7>;<U20D2>..<U20D3>;/
- <U20D8>..<U20DA>;<U20DD>..<U20E0>;<U20E2>..<U20E6>;<U20EA>..<U20EB>;/
- <U2D7F>;<U3099>..<U309A>;<UA670>..<UA672>;<UA802>;<UA806>;<UA80B>;/
+ <U0EB4>..<U0EBC>;<U0EC8>..<U0ECD>;<U0F3E>..<U0F3F>;<U0F71>..<U0F81>;/
+ <U0F84>;<U0F8D>..<U0F97>;<U0F99>..<U0FBC>;<U102B>..<U103E>;/
+ <U1056>..<U1059>;<U105E>..<U1060>;<U1062>..<U1064>;<U1067>..<U106D>;/
+ <U1071>..<U1074>;<U1082>..<U108C>;<U108F>;<U109A>..<U109D>;/
+ <U1712>..<U1714>;<U1732>..<U1734>;<U1752>..<U1753>;<U1772>..<U1773>;/
+ <U17B4>..<U17D3>;<U180B>..<U180D>;<U1885>..<U1886>;<U1920>..<U192B>;/
+ <U1930>..<U1938>;<U1A19>..<U1A1B>;<U1A55>..<U1A5E>;<U1A60>..<U1A74>;/
+ <U1ABE>;<U1B00>..<U1B04>;<U1B34>..<U1B44>;<U1B80>..<U1B82>;/
+ <U1BA1>..<U1BAD>;<U1BE6>..<U1BF3>;<U1C24>..<U1C37>;<U1CD4>;/
+ <U1CE1>..<U1CE8>;<U1CF7>;<U20D2>..<U20D3>;<U20D8>..<U20DA>;/
+ <U20DD>..<U20E0>;<U20E2>..<U20E6>;<U20EA>..<U20EB>;<U2D7F>;/
+ <U3099>..<U309A>;<UA670>..<UA672>;<UA802>;<UA806>;<UA80B>;/
<UA823>..<UA827>;<UA880>..<UA881>;<UA8B4>..<UA8C5>;<UA8FF>;/
<UA926>..<UA92A>;<UA947>..<UA953>;<UA980>..<UA983>;<UA9B3>..<UA9C0>;/
<UA9E5>;<UAA29>..<UAA36>;<UAA43>;<UAA4C>..<UAA4D>;<UAA7B>..<UAA7D>;/
@@ -2422,6 +2447,7 @@ class "combining_level3"; /
<U000115B8>..<U000115C0>;<U000115DC>..<U000115DD>;/
<U00011630>..<U00011640>;<U000116AB>..<U000116B7>;/
<U0001171D>..<U0001172B>;<U0001182C>..<U0001183A>;/
+ <U000119D1>..<U000119D7>;<U000119DA>..<U000119E0>;<U000119E4>;/
<U00011A01>..<U00011A0A>;<U00011A33>..<U00011A39>;/
<U00011A3B>..<U00011A3E>;<U00011A47>;<U00011A51>..<U00011A5B>;/
<U00011A8A>..<U00011A99>;<U00011C2F>..<U00011C36>;/
@@ -2430,7 +2456,7 @@ class "combining_level3"; /
<U00011D3C>..<U00011D3D>;<U00011D3F>..<U00011D45>;<U00011D47>;/
<U00011D8A>..<U00011D8E>;<U00011D90>..<U00011D91>;/
<U00011D93>..<U00011D97>;<U00011EF3>..<U00011EF6>;/
- <U00016AF0>..<U00016AF4>;<U00016F51>..<U00016F7E>;/
+ <U00016AF0>..<U00016AF4>;<U00016F4F>;<U00016F51>..<U00016F87>;/
<U00016F8F>..<U00016F92>;<U0001BC9D>..<U0001BC9E>;/
<U0001D167>..<U0001D169>;<U0001DA00>..<U0001DA36>;/
<U0001DA3B>..<U0001DA6C>;<U0001DA75>;<U0001DA84>;/
diff --git a/localedata/locales/ia_FR b/localedata/locales/ia_FR
index f3fbf213a3..4ce7c7fe4a 100644
--- a/localedata/locales/ia_FR
+++ b/localedata/locales/ia_FR
@@ -127,7 +127,7 @@ country_ab3 "FRA"
country_num 250
country_isbn "979-10"
country_car "F"
-lang_name "Interlingua"
+lang_name "interlingua"
lang_ab "ia"
lang_term "ina"
lang_lib "ina"
diff --git a/localedata/locales/id_ID b/localedata/locales/id_ID
index 3ddd8d07da..92ff81df23 100644
--- a/localedata/locales/id_ID
+++ b/localedata/locales/id_ID
@@ -155,7 +155,7 @@ country_ab2 "ID"
country_ab3 "IDN"
country_num 360
country_car "RI"
-lang_name "Bahasa Indonesia"
+lang_name "Indonesia"
lang_ab "id"
lang_term "ind"
lang_lib "ind"
diff --git a/localedata/locales/ig_NG b/localedata/locales/ig_NG
index bddd2ccde5..113294a0f5 100644
--- a/localedata/locales/ig_NG
+++ b/localedata/locales/ig_NG
@@ -321,11 +321,11 @@ LC_ADDRESS
% "end of line
postal_fmt "%f%N%a%N%d%N%b%N%s %h %e %r%N%z %T%N%c%N"
-% Country name in Igbo - "Nigeria"
-country_name "Nigeria"
+% Country name in Igbo - "Naịjịrịa"
+country_name "Na<U1ECB>j<U1ECB>r<U1ECB>a"
-% Language name in Igbo - "Igbo"
-lang_name "Igbo"
+% Language name in Igbo - "Asụsụ Igbo"
+lang_name "As<U1EE5>s<U1EE5> Igbo"
% CEPT MAILCODES are suggested
% Alternatively use the code found on your countries postal item tracking number
diff --git a/localedata/locales/it_CH b/localedata/locales/it_CH
index 821cfa8549..6d85e1b110 100644
--- a/localedata/locales/it_CH
+++ b/localedata/locales/it_CH
@@ -62,9 +62,7 @@ copy "de_CH"
END LC_MONETARY
LC_NUMERIC
-decimal_point ","
-thousands_sep "'"
-grouping 3;3
+copy "de_CH"
END LC_NUMERIC
LC_TIME
@@ -97,12 +95,12 @@ mon "gennaio";/
"ottobre";/
"novembre";/
"dicembre"
-d_t_fmt "%a %d %b %Y %T %Z"
-d_fmt "%d. %m. %y"
+d_t_fmt "%a %-d %b %Y, %T"
+d_fmt "%d.%m.%Y"
t_fmt "%T"
am_pm "";""
t_fmt_ampm ""
-date_fmt "%a %e %b %Y, %H.%M.%S, %Z"
+date_fmt "%a %-d %b %Y, %T, %Z"
week 7;19971130;4
first_weekday 2
END LC_TIME
diff --git a/localedata/locales/it_IT b/localedata/locales/it_IT
index 56140ddde9..8a10545de0 100644
--- a/localedata/locales/it_IT
+++ b/localedata/locales/it_IT
@@ -88,8 +88,8 @@ END LC_MONETARY
LC_NUMERIC
decimal_point ","
-thousands_sep ""
-grouping 0;0
+thousands_sep "."
+grouping 3;3
END LC_NUMERIC
LC_TIME
@@ -122,12 +122,12 @@ mon "gennaio";/
"ottobre";/
"novembre";/
"dicembre"
-d_t_fmt "%a %d %b %Y %T %Z"
+d_t_fmt "%a %-d %b %Y, %T"
d_fmt "%d//%m//%Y"
t_fmt "%T"
am_pm "";""
t_fmt_ampm ""
-date_fmt "%a %e %b %Y, %H.%M.%S, %Z"
+date_fmt "%a %-d %b %Y, %T, %Z"
week 7;19971130;4
first_weekday 2
END LC_TIME
diff --git a/localedata/locales/it_IT@euro b/localedata/locales/it_IT@euro
index cf281c959e..99080a80e4 100644
--- a/localedata/locales/it_IT@euro
+++ b/localedata/locales/it_IT@euro
@@ -18,7 +18,7 @@ escape_char /
LC_IDENTIFICATION
title "Italian locale for Italy with Euro"
source "Free Software Foundation, Inc."
-address "http:////www.gnu.org//software//libc//"
+address "https:////www.gnu.org//software//libc//"
contact ""
email "bug-glibc-locales@gnu.org"
tel ""
diff --git a/localedata/locales/ja_JP b/localedata/locales/ja_JP
index 1fd2fee44b..c727997b6b 100644
--- a/localedata/locales/ja_JP
+++ b/localedata/locales/ja_JP
@@ -14946,12 +14946,32 @@ am_pm "<U5348><U524D>";"<U5348><U5F8C>"
t_fmt_ampm "%p%I<U6642>%M<U5206>%S<U79D2>"
-era "+:2:1990//01//01:+*:<U5E73><U6210>:%EC%Ey<U5E74>";/
+% The era names are laid out in groups of 2 to account for the desire
+% to avoid using '1' for the first era year. Instead of '1' we use
+% <U5143> or <GAN> as the first era year.
+%
+% The following dates and their names are recorded below in descending
+% date order (note that <U5E74> or <NEN> follows each date).
+% <REIWA> -> <HEISEI> -> <SHOWA> -> <TAISHO> -> <MEIJI> -> <AD> -> <BC>
+%
+% Each string is an era description segment with the format:
+% "direction:offset:start_date:end_date:era_name:era_format"
+%
+% Note:
+% - The '+*' entry in end_date means "forever going forward"
+% - The '-*' entry in end_date means "forever going backwards" counting up.
+% - Negative year number in start_date is prior to AD 1 (BC) counting up.
+% - The last entry <U7D00><U5143><U524D> in era_name means BC.
+% - The second-to-last entry <U897F><U66A6> in era_name means AD.
+%
+era "+:2:2020//01//01:+*:<U4EE4><U548C>:%EC%Ey<U5E74>";/
+ "+:1:2019//05//01:2019//12//31:<U4EE4><U548C>:%EC<U5143><U5E74>";/
+ "+:2:1990//01//01:2019//04//30:<U5E73><U6210>:%EC%Ey<U5E74>";/
"+:1:1989//01//08:1989//12//31:<U5E73><U6210>:%EC<U5143><U5E74>";/
"+:2:1927//01//01:1989//01//07:<U662D><U548C>:%EC%Ey<U5E74>";/
"+:1:1926//12//25:1926//12//31:<U662D><U548C>:%EC<U5143><U5E74>";/
"+:2:1913//01//01:1926//12//24:<U5927><U6B63>:%EC%Ey<U5E74>";/
- "+:2:1912//07//30:1912//12//31:<U5927><U6B63>:%EC<U5143><U5E74>";/
+ "+:1:1912//07//30:1912//12//31:<U5927><U6B63>:%EC<U5143><U5E74>";/
"+:6:1873//01//01:1912//07//29:<U660E><U6CBB>:%EC%Ey<U5E74>";/
"+:1:0001//01//01:1872//12//31:<U897F><U66A6>:%EC%Ey<U5E74>";/
"+:1:-0001//12//31:-*:<U7D00><U5143><U524D>:%EC%Ey<U5E74>"
diff --git a/localedata/locales/kab_DZ b/localedata/locales/kab_DZ
index a165f53f01..ef572357c2 100644
--- a/localedata/locales/kab_DZ
+++ b/localedata/locales/kab_DZ
@@ -154,7 +154,7 @@ END LC_NAME
LC_ADDRESS
postal_fmt "%f%N%a%N%d%N%b%N%s %h %e %r%N%z %T%N%c%N"
-country_name "Zzayer"
+country_name "Lezzayer"
country_ab2 "DZ"
country_ab3 "DZA"
country_num 012
diff --git a/localedata/locales/kl_GL b/localedata/locales/kl_GL
index 5ab14a31aa..986d25242c 100644
--- a/localedata/locales/kl_GL
+++ b/localedata/locales/kl_GL
@@ -70,11 +70,11 @@ copy "da_DK"
END LC_NUMERIC
LC_TIME
-abday "sab";"ata";/
+abday "sap";"ata";/
"mar";"pin";/
"sis";"tal";/
"arf"
-day "sabaat";/
+day "sapaat";/
"ataasinngorneq";/
"marlunngorneq";/
"pingasunngorneq";/
@@ -87,20 +87,32 @@ abmon "jan";"feb";/
"jul";"aug";/
"sep";"okt";/
"nov";"dec"
-mon "januari";/
- "februari";/
- "martsi";/
- "aprili";/
- "maji";/
- "juni";/
- "juli";/
- "augustusi";/
- "septemberi";/
- "oktoberi";/
- "novemberi";/
- "decemberi"
-d_t_fmt "%a %d %b %Y %T %Z"
-d_fmt "%d %b %Y"
+alt_mon "januaari";/
+ "februaari";/
+ "marsi";/
+ "apriili";/
+ "maaji";/
+ "juuni";/
+ "juuli";/
+ "aggusti";/
+ "septembari";/
+ "oktobari";/
+ "novembari";/
+ "decembari"
+mon "januaarip";/
+ "februaarip";/
+ "marsip";/
+ "apriilip";/
+ "maajip";/
+ "juunip";/
+ "juulip";/
+ "aggustip";/
+ "septembarip";/
+ "oktobarip";/
+ "novembarip";/
+ "decembarip"
+d_t_fmt "%a %b %d %Y %T %Z"
+d_fmt "%b %d %Y"
t_fmt "%T"
am_pm "";""
t_fmt_ampm ""
diff --git a/localedata/locales/kn_IN b/localedata/locales/kn_IN
index 84d67e4110..4b3b5cff75 100644
--- a/localedata/locales/kn_IN
+++ b/localedata/locales/kn_IN
@@ -151,10 +151,10 @@ am_pm "<U0CAA><U0CC2><U0CB0><U0CCD><U0CB5><U0CBE><U0CB9><U0CCD><U0CA8>";/
d_t_fmt "%A %d %b %Y %I:%M:%S %p %Z"
%
% Appropriate date representation
-d_fmt "%A %d %b %Y"
+d_fmt "%-d//%-m//%y"
%
% Appropriate time representation
-t_fmt "%I:%M:%S %Z"
+t_fmt "%I:%M:%S %p %Z"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm "%I:%M:%S %p %Z"
diff --git a/localedata/locales/kok_IN b/localedata/locales/kok_IN
index bb6c0d8900..ed0090ae76 100644
--- a/localedata/locales/kok_IN
+++ b/localedata/locales/kok_IN
@@ -114,10 +114,10 @@ am_pm "<U092E>.<U092A><U0942>.";/
d_t_fmt "%A %d %b %Y %I:%M:%S %p %Z"
%
% Appropriate date representation
-d_fmt "%A %d %b %Y"
+d_fmt "%-d-%-m-%y"
%
% Appropriate time representation
-t_fmt "%I:%M:%S %Z"
+t_fmt "%I:%M:%S %p %Z"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm "%I:%M:%S %p %Z"
diff --git a/localedata/locales/ks_IN b/localedata/locales/ks_IN
index 6992a55368..35f3056251 100644
--- a/localedata/locales/ks_IN
+++ b/localedata/locales/ks_IN
@@ -124,10 +124,10 @@ am_pm "<U062F><U0648><U067E><U06BE><U0631><U0628><U0631><U0648><U0646><U06BE>";/
d_t_fmt "%A %d %b %Y %I:%M:%S %p %Z"
%
% Appropriate date representation
-d_fmt "%A %d %b %Y"
+d_fmt "%-m//%-d//%y"
%
% Appropriate time representation
-t_fmt "%I:%M:%S %Z"
+t_fmt "%I:%M:%S %p %Z"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm "%I:%M:%S %p %Z"
@@ -167,7 +167,7 @@ LC_ADDRESS
% This is the ISO_IEC TR14652 Locale definition for the LC_ADDRESS category
% generated by IBM Basic CountryPack Transformer.
postal_fmt "%z%c%T%s%b%e%r"
-country_name "<U06C1><U0650><U0646><U065B><U062F><U0648><U0633><U062A><U0627><U0646>"
+country_name "<U06C1><U0650><U0646><U062F><U0648><U0633><U062A><U0627><U0646>"
country_ab2 "IN"
country_ab3 "IND"
country_num 356
diff --git a/localedata/locales/ks_IN@devanagari b/localedata/locales/ks_IN@devanagari
index 8328493dae..3273affedd 100644
--- a/localedata/locales/ks_IN@devanagari
+++ b/localedata/locales/ks_IN@devanagari
@@ -116,10 +116,10 @@ am_pm "<U092A><U0942><U0930><U094D><U0935><U093E><U0939><U094D><U0928>";/
d_t_fmt "%A %d %b %Y %I:%M:%S %p %Z"
%
% Appropriate date representation
-d_fmt "%A %d %b %Y"
+d_fmt "%-m//%-d//%y"
%
% Appropriate time representation
-t_fmt "%I:%M:%S %Z"
+t_fmt "%I:%M:%S %p %Z"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm "%I:%M:%S %p %Z"
diff --git a/localedata/locales/ku_TR b/localedata/locales/ku_TR
index 595cdb14bc..f6a8925608 100644
--- a/localedata/locales/ku_TR
+++ b/localedata/locales/ku_TR
@@ -182,14 +182,14 @@ END LC_NAME
LC_ADDRESS
postal_fmt "%f%N%a%N%d%N%b%N%s %h %e %r%N%z %T%N%c%N"
% TODO
-country_name "Turkey"
+country_name "Tirkiye"
country_post "TR"
country_ab2 "TR"
country_ab3 "TUR"
country_num 792
country_isbn 975
country_car "TR"
-lang_name "kurdi"
+lang_name "kurd<U00EE>"
lang_ab "ku"
lang_term "kur"
lang_lib "kur"
diff --git a/localedata/locales/lzh_TW b/localedata/locales/lzh_TW
index 9654463d42..4740418a83 100644
--- a/localedata/locales/lzh_TW
+++ b/localedata/locales/lzh_TW
@@ -150,6 +150,10 @@ alt_digits "<U3007>";/
"<U5345><U4E00>"
%
week 7;19971130;1
+
+era "+:2:1913//01//01:+*:<U6C11><U570B>:%EC%Ey<U5E74>";/
+ "+:1:1912//01//01:1912//12//31:<U6C11><U570B>:%EC<U5143><U5E74>";/
+ "+:1:1911//12//31:-*:<U6C11><U524D>:%EC%Ey<U5E74>"
END LC_TIME
LC_NUMERIC
diff --git a/localedata/locales/mag_IN b/localedata/locales/mag_IN
index b8f65f70e2..d721824966 100644
--- a/localedata/locales/mag_IN
+++ b/localedata/locales/mag_IN
@@ -115,10 +115,10 @@ am_pm "<U092A><U0942><U0930><U094D><U0935><U093E><U0939><U094D><U0928>";/
d_t_fmt "%A %d %b %Y %I:%M:%S %p %Z"
%
% Appropriate date representation
-d_fmt "%A %d %b %Y"
+d_fmt "%-d//%-m//%y"
%
% Appropriate time representation
-t_fmt "%I:%M:%S %Z"
+t_fmt "%I:%M:%S %p %Z"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm "%I:%M:%S %p %Z"
@@ -152,6 +152,7 @@ END LC_NAME
LC_ADDRESS
postal_fmt "%z%c%T%s%b%e%r"
+country_name "<U092D><U093E><U0930><U0924>"
country_ab2 "IN"
country_ab3 "IND"
country_num 356
diff --git a/localedata/locales/mai_IN b/localedata/locales/mai_IN
index 34e993b154..50ba5aa434 100644
--- a/localedata/locales/mai_IN
+++ b/localedata/locales/mai_IN
@@ -117,10 +117,10 @@ am_pm "<U092A><U0942><U0930><U094D><U0935><U093E><U0939><U094D><U0928>";/
d_t_fmt "%A %d %b %Y %I:%M:%S %p %Z"
%
% Appropriate date representation
-d_fmt "%A %d %b %Y"
+d_fmt "%-d//%-m//%y"
%
% Appropriate time representation
-t_fmt "%I:%M:%S %Z"
+t_fmt "%I:%M:%S %p %Z"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm "%I:%M:%S %p %Z"
diff --git a/localedata/locales/mfe_MU b/localedata/locales/mfe_MU
index 7415e9250f..7fabc5f80d 100644
--- a/localedata/locales/mfe_MU
+++ b/localedata/locales/mfe_MU
@@ -170,7 +170,7 @@ END LC_NAME
LC_ADDRESS
postal_fmt "%f%N%h%s%N%T"
-country_name "Mauritius"
+country_name "Moris"
country_ab2 "MU"
country_ab3 "MUS"
country_num 480
diff --git a/localedata/locales/mhr_RU b/localedata/locales/mhr_RU
index 85ac21b35a..02bec3e9ae 100644
--- a/localedata/locales/mhr_RU
+++ b/localedata/locales/mhr_RU
@@ -159,6 +159,8 @@ country_ab2 "RU"
country_ab3 "RUS"
country_num 643
country_car "RUS"
+% марий йылме
+lang_name "<U043C><U0430><U0440><U0438><U0439> <U0439><U044B><U043B><U043C><U0435>"
lang_term "mhr"
lang_lib "mhr"
END LC_ADDRESS
diff --git a/localedata/locales/mi_NZ b/localedata/locales/mi_NZ
index 782f02359c..d08bc24942 100644
--- a/localedata/locales/mi_NZ
+++ b/localedata/locales/mi_NZ
@@ -157,7 +157,7 @@ country_ab2 "NZ"
country_ab3 "NZL"
country_num 554
country_car "NZ"
-lang_name "Te Reo"
+lang_name "M<U0101>ori"
lang_ab "mi"
lang_term "mri"
lang_lib "mao"
diff --git a/localedata/locales/mjw_IN b/localedata/locales/mjw_IN
index a9557f05d7..5c7629f704 100644
--- a/localedata/locales/mjw_IN
+++ b/localedata/locales/mjw_IN
@@ -89,10 +89,10 @@ am_pm "AM";"PM"
d_t_fmt "%A %d %B %Y %I:%M:%S %p %Z"
% Appropriate date representation
-d_fmt "%A %d %B %Y"
+d_fmt "%-d//%-m//%y"
% Appropriate time representation
-t_fmt "%I:%M:%S %Z"
+t_fmt "%I:%M:%S %p %Z"
% Appropriate 12 h time representation (%r)
t_fmt_ampm "%I:%M:%S %p %Z"
diff --git a/localedata/locales/ml_IN b/localedata/locales/ml_IN
index 2e6cfe52ca..2857a97554 100644
--- a/localedata/locales/ml_IN
+++ b/localedata/locales/ml_IN
@@ -295,10 +295,10 @@ am_pm "<U0D30><U0D3E><U0D35><U0D3F><U0D32><U0D46>";"<U0D35><U0D48><U0D15><U0
d_t_fmt "%A %d %B %Y %I:%M:%S %p %Z"
%
% Appropriate date representation
-d_fmt "%A %d %B %Y"
+d_fmt "%-d//%-m//%y"
%
% Appropriate time representation
-t_fmt "%I:%M:%S %Z"
+t_fmt "%I:%M:%S %p %Z"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm "%I:%M:%S %p %Z"
diff --git a/localedata/locales/mni_IN b/localedata/locales/mni_IN
index 3a84c54cef..831eff0910 100644
--- a/localedata/locales/mni_IN
+++ b/localedata/locales/mni_IN
@@ -116,10 +116,10 @@ am_pm "<U098F>.<U09AE>.";/
d_t_fmt "%A %d %b %Y %I:%M:%S %p %Z"
%
% Appropriate date representation
-d_fmt "%A %d %b %Y"
+d_fmt "%-d//%-m//%y"
%
% Appropriate time representation
-t_fmt "%I:%M:%S %Z"
+t_fmt "%I:%M:%S %p %Z"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm "%I:%M:%S %p %Z"
diff --git a/localedata/locales/mnw_MM b/localedata/locales/mnw_MM
new file mode 100644
index 0000000000..2f089cdbeb
--- /dev/null
+++ b/localedata/locales/mnw_MM
@@ -0,0 +1,287 @@
+comment_char %
+escape_char /
+
+
+% This file is part of the GNU C Library and contains locale data.
+% The Free Software Foundation does not claim any copyright interest
+% in the locale data contained in this file. The foregoing does not
+% affect the license of the GNU C Library as a whole. It does not
+% exempt you from the conditions of the license if your use would
+% otherwise be governed by that license.
+
+LC_IDENTIFICATION
+title "Mon language locale for Myanmar"
+source "Mon Localization Team https:////facebook.com//groups//monlocalization"
+address "Mawlamyine, Mon State, Myanmar"
+contact "Talachan Mon"
+email "talachanmon@gmail.com"
+tel ""
+fax ""
+language "Mon"
+territory "Myanmar"
+revision "1"
+date "2019-10-27"
+
+category "i18n:2012";LC_IDENTIFICATION
+category "i18n:2012";LC_CTYPE
+category "i18n:2012";LC_COLLATE
+category "i18n:2012";LC_TIME
+category "i18n:2012";LC_NUMERIC
+category "i18n:2012";LC_MONETARY
+category "i18n:2012";LC_PAPER
+category "i18n:2012";LC_MEASUREMENT
+category "i18n:2012";LC_MESSAGES
+category "i18n:2012";LC_NAME
+category "i18n:2012";LC_ADDRESS
+category "i18n:2012";LC_TELEPHONE
+END LC_IDENTIFICATION
+
+LC_CTYPE
+copy "i18n"
+outdigit <U1040>..<U1049>
+map to_inpunct; /
+(<U0030>,<U1040>); /
+(<U0031>,<U1041>); /
+(<U0032>,<U1042>); /
+(<U0033>,<U1043>); /
+(<U0034>,<U1044>); /
+(<U0035>,<U1045>); /
+(<U0036>,<U1046>); /
+(<U0037>,<U1047>); /
+(<U0038>,<U1048>); /
+(<U0039>,<U1049>);
+END LC_CTYPE
+
+LC_COLLATE
+copy "iso14651_t1"
+END LC_COLLATE
+
+LC_TIME
+% ဂျာန်နျူအာရဳ, á€á€¾á€±á€á€ºá€—ြူအာရဳ, မာá€á€ºá€á€»á€º, အေပြေယ်လ်, မေ, ဂျုန်, ဂျူလာášá€º, အá€á€ºá€‚ါá€á€º, သိပ်á€á€®á€—ာ, အံက်á€á€á€ºá€—ာ, နá€á€ºá€á€«á€™á€ºá€—ာ, ဒဳသီဗာ
+mon "<U1002><U103B><U102C><U1014><U103A><U1014><U103B><U1030><U1021><U102C><U101B><U1033>";/
+ "<U101D><U103E><U1031><U101D><U103A><U1017><U103C><U1030><U1021><U102C><U101B><U1033>";/
+ "<U1019><U102C><U1010><U103A><U1001><U103B><U103A>";/
+ "<U1021><U1031><U1015><U103C><U1031><U101A><U103A><U101C><U103A>";/
+ "<U1019><U1031>";/
+ "<U1002><U103B><U102F><U1014><U103A>";/
+ "<U1002><U103B><U1030><U101C><U102C><U105A><U103A>";/
+ "<U1021><U101D><U103A><U1002><U102B><U1010><U103A>";/
+ "<U101E><U102D><U1015><U103A><U1010><U102E><U1017><U102C>";/
+ "<U1021><U1036><U1000><U103A><U1010><U101D><U103A><U1017><U102C>";/
+ "<U1014><U101D><U103A><U101D><U102B><U1019><U103A><U1017><U102C>";/
+ "<U1012><U1033><U101E><U102E><U1017><U102C>"
+% ဂျာန်, á€á€¾á€±á€á€º, မာá€á€º, အေ, မေ, ဂျုန်, ဂျူ, အá€á€º, သိပ်, အံက်, နá€á€º, ဒဳ
+abmon "<U1002><U103B><U102C><U1014><U103A>";/
+ "<U101D><U103E><U1031><U101D><U103A>";/
+ "<U1019><U102C><U1010><U103A>";/
+ "<U1021><U1031>";/
+ "<U1019><U1031>";/
+ "<U1002><U103B><U102F><U1014><U103A>";/
+ "<U1002><U103B><U1030>";/
+ "<U1021><U101D><U103A>";/
+ "<U101E><U102D><U1015><U103A>";/
+ "<U1021><U1036><U1000><U103A>";/
+ "<U1014><U101D><U103A>";/
+ "<U1012><U1033>"
+% အဒိုá€á€º, စန်, အášá€¬, ဗုဒ္ဓá€á€«, ဗြဴဗ္á€á€­, သိုက်, သ္ášá€­á€žá€á€º
+day "<U1021><U1012><U102D><U102F><U1010><U103A>";/
+ "<U1005><U1014><U103A>";/
+ "<U1021><U105A><U102C>";/
+ "<U1017><U102F><U1012><U1039><U1013><U101D><U102B>";/
+ "<U1017><U103C><U1034><U1017><U1039><U1010><U102D>";/
+ "<U101E><U102D><U102F><U1000><U103A>";/
+ "<U101E><U1039><U105A><U102D><U101E><U101D><U103A>"
+% ဒိုá€á€º, စန်, ášá€¬, á€á€«, á€á€­, သိုက်, သá€á€º
+abday "<U1012><U102D><U102F><U1010><U103A>";/
+ "<U1005><U1014><U103A>";/
+ "<U105A><U102C>";/
+ "<U101D><U102B>";/
+ "<U1010><U102D>";/
+ "<U101E><U102D><U102F><U1000><U103A>";/
+ "<U101E><U101D><U103A>"
+week 7;19971130;1
+d_t_fmt "%OC%Oy %b %Od %A %OI:%OM:%OS %Op %Z"
+d_fmt "%OC%Oy %b %Od %A"
+t_fmt "%OI:%OM:%OS %p"
+% ဂယး, á€á€¹ášá€²á€…ေášá€º
+am_pm "<U1002><U101A><U1038>";"<U1010><U1039><U105A><U1032><U1005><U1031><U105A><U103A>"
+t_fmt_ampm "%OI:%OM:%OS %p"
+% á€á€, á€á, á€á‚, á€áƒ, á€á„, á€á…, á€á†, á€á‡, á€áˆ, á€á‰, áá€, áá, áá‚, ááƒ, áá„, áá…, áá†, áá‡, ááˆ, áá‰, á‚á€, á‚á, á‚á‚, á‚áƒ, á‚á„, á‚á…, á‚á†, á‚á‡, á‚áˆ, á‚á‰, áƒá€, áƒá, áƒá‚, áƒáƒ, áƒá„, áƒá…, áƒá†, áƒá‡, áƒáˆ, áƒá‰, á„á€, á„á, á„á‚, á„áƒ, á„á„, á„á…, á„á†, á„á‡, á„áˆ, á„á‰, á…á€, á…á, á…á‚, á…áƒ, á…á„, á…á…, á…á†, á…á‡, á…áˆ, á…á‰, á†á€, á†á, á†á‚, á†áƒ, á†á„, á†á…, á†á†, á†á‡, á†áˆ, á†á‰, á‡á€, á‡á, á‡á‚, á‡áƒ, á‡á„, á‡á…, á‡á†, á‡á‡, á‡áˆ, á‡á‰, áˆá€, áˆá, áˆá‚, áˆáƒ, áˆá„, áˆá…, áˆá†, áˆá‡, áˆáˆ, áˆá‰, á‰á€, á‰á, á‰á‚, á‰áƒ, á‰á„, á‰á…, á‰á†, á‰á‡, á‰áˆ, á‰á‰
+alt_digits "<U1040><U1040>";/
+ "<U1040><U1041>";/
+ "<U1040><U1042>";/
+ "<U1040><U1043>";/
+ "<U1040><U1044>";/
+ "<U1040><U1045>";/
+ "<U1040><U1046>";/
+ "<U1040><U1047>";/
+ "<U1040><U1048>";/
+ "<U1040><U1049>";/
+ "<U1041><U1040>";/
+ "<U1041><U1041>";/
+ "<U1041><U1042>";/
+ "<U1041><U1043>";/
+ "<U1041><U1044>";/
+ "<U1041><U1045>";/
+ "<U1041><U1046>";/
+ "<U1041><U1047>";/
+ "<U1041><U1048>";/
+ "<U1041><U1049>";/
+ "<U1042><U1040>";/
+ "<U1042><U1041>";/
+ "<U1042><U1042>";/
+ "<U1042><U1043>";/
+ "<U1042><U1044>";/
+ "<U1042><U1045>";/
+ "<U1042><U1046>";/
+ "<U1042><U1047>";/
+ "<U1042><U1048>";/
+ "<U1042><U1049>";/
+ "<U1043><U1040>";/
+ "<U1043><U1041>";/
+ "<U1043><U1042>";/
+ "<U1043><U1043>";/
+ "<U1043><U1044>";/
+ "<U1043><U1045>";/
+ "<U1043><U1046>";/
+ "<U1043><U1047>";/
+ "<U1043><U1048>";/
+ "<U1043><U1049>";/
+ "<U1044><U1040>";/
+ "<U1044><U1041>";/
+ "<U1044><U1042>";/
+ "<U1044><U1043>";/
+ "<U1044><U1044>";/
+ "<U1044><U1045>";/
+ "<U1044><U1046>";/
+ "<U1044><U1047>";/
+ "<U1044><U1048>";/
+ "<U1044><U1049>";/
+ "<U1045><U1040>";/
+ "<U1045><U1041>";/
+ "<U1045><U1042>";/
+ "<U1045><U1043>";/
+ "<U1045><U1044>";/
+ "<U1045><U1045>";/
+ "<U1045><U1046>";/
+ "<U1045><U1047>";/
+ "<U1045><U1048>";/
+ "<U1045><U1049>";/
+ "<U1046><U1040>";/
+ "<U1046><U1041>";/
+ "<U1046><U1042>";/
+ "<U1046><U1043>";/
+ "<U1046><U1044>";/
+ "<U1046><U1045>";/
+ "<U1046><U1046>";/
+ "<U1046><U1047>";/
+ "<U1046><U1048>";/
+ "<U1046><U1049>";/
+ "<U1047><U1040>";/
+ "<U1047><U1041>";/
+ "<U1047><U1042>";/
+ "<U1047><U1043>";/
+ "<U1047><U1044>";/
+ "<U1047><U1045>";/
+ "<U1047><U1046>";/
+ "<U1047><U1047>";/
+ "<U1047><U1048>";/
+ "<U1047><U1049>";/
+ "<U1048><U1040>";/
+ "<U1048><U1041>";/
+ "<U1048><U1042>";/
+ "<U1048><U1043>";/
+ "<U1048><U1044>";/
+ "<U1048><U1045>";/
+ "<U1048><U1046>";/
+ "<U1048><U1047>";/
+ "<U1048><U1048>";/
+ "<U1048><U1049>";/
+ "<U1049><U1040>";/
+ "<U1049><U1041>";/
+ "<U1049><U1042>";/
+ "<U1049><U1043>";/
+ "<U1049><U1044>";/
+ "<U1049><U1045>";/
+ "<U1049><U1046>";/
+ "<U1049><U1047>";/
+ "<U1049><U1048>";/
+ "<U1049><U1049>"
+END LC_TIME
+
+LC_NUMERIC
+decimal_point "."
+thousands_sep ","
+grouping 3
+END LC_NUMERIC
+
+LC_MONETARY
+currency_symbol "K"
+int_curr_symbol "MMK "
+positive_sign ""
+negative_sign "-"
+mon_decimal_point "."
+mon_thousands_sep ","
+mon_grouping 3
+frac_digits 2
+int_frac_digits 2
+p_cs_precedes 0
+p_sep_by_space 0
+n_cs_precedes 0
+n_sep_by_space 0
+p_sign_posn 1
+n_sign_posn 1
+END LC_MONETARY
+
+LC_PAPER
+copy "i18n"
+END LC_PAPER
+
+LC_MEASUREMENT
+copy "i18n"
+END LC_MEASUREMENT
+
+LC_MESSAGES
+% ^[+1yYယ]
+yesexpr "^[+1yY<U101A>]"
+% ^[-0nNဟ]
+noexpr "^[-0nN<U101F>]"
+% ယွံ
+yesstr "<U101A><U103D><U1036>"
+% ဟွံ
+nostr "<U101F><U103D><U1036>"
+END LC_MESSAGES
+
+LC_NAME
+name_fmt "%p%t%g%t%m%t%f"
+name_gen ""
+% မိ
+name_miss "<U1019><U102D>"
+% နာဲ
+name_mr "<U1014><U102C><U1032>"
+% မိ
+name_mrs "<U1019><U102D>"
+% မိ
+name_ms "<U1019><U102D>"
+END LC_NAME
+
+LC_ADDRESS
+postal_fmt "%a%N%d%N%f%N%b%N%h%t%r%t%e%t%s%N%T%t%z%N%c%N"
+% ဗáŸá€¬
+country_name "<U1017><U105F><U102C>"
+country_post "Myanmar"
+country_ab2 "MM"
+country_ab3 "MMR"
+country_num 104
+country_car "MYA"
+country_isbn 99971
+% မန်
+lang_name "<U1019><U1014><U103A>"
+lang_ab ""
+lang_term "mnw"
+lang_lib "mnw"
+END LC_ADDRESS
+
+LC_TELEPHONE
+copy "my_MM"
+END LC_TELEPHONE
diff --git a/localedata/locales/mr_IN b/localedata/locales/mr_IN
index c8d4e4b84e..fc75268a33 100644
--- a/localedata/locales/mr_IN
+++ b/localedata/locales/mr_IN
@@ -191,10 +191,10 @@ am_pm "<U092E>.<U092A><U0942>.";/
d_t_fmt "%A %d %b %Y %I:%M:%S %p %Z"
%
% Appropriate date representation
-d_fmt "%A %d %b %Y"
+d_fmt "%-d//%-m//%y"
%
% Appropriate time representation
-t_fmt "%I:%M:%S %Z"
+t_fmt "%I:%M:%S %p %Z"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm "%I:%M:%S %p %Z"
diff --git a/localedata/locales/ms_MY b/localedata/locales/ms_MY
index 66b5dd98e9..f49d0c18a6 100644
--- a/localedata/locales/ms_MY
+++ b/localedata/locales/ms_MY
@@ -138,7 +138,7 @@ d_t_fmt "%A %d %b %Y %I:%M:%S %p %Z"
d_fmt "%A %d %b %Y"
%
% Appropriate time representation
-t_fmt "%I:%M:%S %Z"
+t_fmt "%I:%M:%S %p %Z"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm "%I:%M:%S %p %Z"
@@ -184,7 +184,7 @@ country_ab3 "MYS"
country_num 458
country_car "MAL"
% Bahasa Melayu
-lang_name "Bahasa Melayu"
+lang_name "Melayu"
lang_ab "ms"
lang_term "msa"
lang_lib "may"
diff --git a/localedata/locales/mt_MT b/localedata/locales/mt_MT
index a6ab7b1dad..b56b6baab4 100644
--- a/localedata/locales/mt_MT
+++ b/localedata/locales/mt_MT
@@ -212,16 +212,16 @@ mon "Jannar";/
am_pm "";""
%
% Appropriate date and time representation
-d_t_fmt "%A, %d ta %b, %Y %I:%M:%S %p %Z"
+d_t_fmt "%A, %d ta %b, %Y %H:%M:%S %Z"
%
% Appropriate date representation
d_fmt "%A, %d ta %b, %Y"
%
% Appropriate time representation
-t_fmt "%I:%M:%S %Z"
+t_fmt "%H:%M:%S %Z"
%
% Appropriate 12 h time representation (%r)
-t_fmt_ampm "%I:%M:%S %p %Z"
+t_fmt_ampm ""
week 7;19971130;1
END LC_TIME
diff --git a/localedata/locales/my_MM b/localedata/locales/my_MM
index d612e5305a..8463632238 100644
--- a/localedata/locales/my_MM
+++ b/localedata/locales/my_MM
@@ -309,7 +309,8 @@ country_ab2 "MM"
country_num 104
country_car "MYA"
lang_ab "my"
-lang_name "<U1017><U1019><U102C>"
+% မြန်မာ
+lang_name "<U1019><U103C><U1014><U103A><U1019><U102C>"
lang_term "mya"
lang_lib "bur"
END LC_ADDRESS
diff --git a/localedata/locales/nan_TW b/localedata/locales/nan_TW
index f5bc5d1642..0c2a56f4ca 100644
--- a/localedata/locales/nan_TW
+++ b/localedata/locales/nan_TW
@@ -117,6 +117,10 @@ t_fmt_ampm "%p %I<U9EDE>%M<U5206>%S<U79D2>"
% %Yå¹´ %b %eæ—¥ %A %H:%M:%S %Z
date_fmt "%Y<U5E74> %b %e<U65E5> %A %H:%M:%S %Z"
week 7;19971130;1
+
+era "+:2:1913//01//01:+*:<U6C11><U570B>:%EC%Ey<U5E74>";/
+ "+:1:1912//01//01:1912//12//31:<U6C11><U570B>:%EC<U5143><U5E74>";/
+ "+:1:1911//12//31:-*:<U6C11><U524D>:%EC%Ey<U5E74>"
END LC_TIME
LC_NUMERIC
@@ -188,8 +192,8 @@ country_ab3 "TWN"
country_num 158
country_car "RC"
country_isbn 957
-% 漢語閩å—語
-lang_name "<U6F22><U8A9E><U95A9><U5357><U8A9E>"
+% é–©å—語
+lang_name "<U95A9><U5357><U8A9E>"
lang_term "nan"
lang_lib "nan"
END LC_ADDRESS
diff --git a/localedata/locales/nan_TW@latin b/localedata/locales/nan_TW@latin
index d4579a4cdf..104f4152a9 100644
--- a/localedata/locales/nan_TW@latin
+++ b/localedata/locales/nan_TW@latin
@@ -165,8 +165,8 @@ country_ab3 "TWN"
country_num 158
country_car "RC"
country_isbn 957
-%lang_name "Bân-lâm-gú, HÅ-ló-oÄ“"
-lang_name "B<U00E2>n-l<U00E2>m-g<U00FA>, H<U014D>-l<U00F3>-o<U0113>"
+%lang_name "Bân-lâm-gú"
+lang_name "B<U00E2>n-l<U00E2>m-g<U00FA>"
lang_term "nan"
lang_lib "nan"
END LC_ADDRESS
diff --git a/localedata/locales/nds_DE b/localedata/locales/nds_DE
index 232f9e4455..d6200b7972 100644
--- a/localedata/locales/nds_DE
+++ b/localedata/locales/nds_DE
@@ -45,7 +45,7 @@ country_ab3 "DEU"
country_car "D"
country_num 276
country_isbn "3"
-lang_name "Neddersassisch"
+lang_name "Neddersass<U2019>sch"
%lang_ab
lang_term "nds"
lang_lib "nds"
diff --git a/localedata/locales/nds_NL b/localedata/locales/nds_NL
index 8c8bebd935..9fd50fb625 100644
--- a/localedata/locales/nds_NL
+++ b/localedata/locales/nds_NL
@@ -44,7 +44,7 @@ country_ab3 "NLD"
country_car "NL"
country_num 528
country_isbn "3"
-lang_name "Neddersassisch"
+lang_name "Neddersass<U2019>sch"
%lang_ab
lang_term "nds"
lang_lib "nds"
diff --git a/localedata/locales/ne_NP b/localedata/locales/ne_NP
index b4c0eeab80..eb80eabbd8 100644
--- a/localedata/locales/ne_NP
+++ b/localedata/locales/ne_NP
@@ -127,7 +127,7 @@ mon "<U091C><U0928><U0935><U0930><U0940>";/
am_pm "<U092A><U0942><U0930><U094D><U0935><U093E><U0939><U094D><U0928>";/
"<U0905><U092A><U0930><U093E><U0939><U094D><U0928>"
d_t_fmt "%Y %B %d %I:%M:%S %p"
-d_fmt "%Y %B %d %A"
+d_fmt "%y//%-m//%-d"
t_fmt "%H:%M:%S"
t_fmt_ampm "%I:%M:%S %p"
week 7;19971130;1
diff --git a/localedata/locales/nhn_MX b/localedata/locales/nhn_MX
index 88a89765e8..2dbfcb3c65 100644
--- a/localedata/locales/nhn_MX
+++ b/localedata/locales/nhn_MX
@@ -133,11 +133,12 @@ END LC_NAME
LC_ADDRESS
postal_fmt "%f%N%a%N%d%N%b%N%s %h %e %r%N%z %T%N%c%N"
+country_name "Mexihco"
country_ab2 "MX"
country_ab3 "MEX"
country_num 484
country_car "MEX"
-lang_name "Tlaxcala-Puebla Nahuatl"
+lang_name "Tlahco n<U0101>huatlaht<U014D>lli"
lang_term "nhn"
lang_lib "nhn"
END LC_ADDRESS
diff --git a/localedata/locales/niu_NU b/localedata/locales/niu_NU
index 553c5d9edc..387e109109 100644
--- a/localedata/locales/niu_NU
+++ b/localedata/locales/niu_NU
@@ -163,10 +163,12 @@ END LC_NAME
LC_ADDRESS
postal_fmt "%f%N%a%N%d%N%b%N%s %h %e %r%N%z %T%N%c%N"
+country_name "Niu<U0113>"
country_post "NU"
country_ab2 "NU"
country_ab3 "NIU"
country_num 570
+lang_name "ko e vagahau Niu<U0113>"
lang_term "niu"
lang_lib "niu"
END LC_ADDRESS
diff --git a/localedata/locales/niu_NZ b/localedata/locales/niu_NZ
index 560101b447..2eba7d2630 100644
--- a/localedata/locales/niu_NZ
+++ b/localedata/locales/niu_NZ
@@ -99,6 +99,7 @@ country_ab2 "NZ"
country_ab3 "NZL"
country_num 554
country_car "NZ"
+lang_name "ko e vagahau Niu<U0113>"
lang_term "niu"
lang_lib "niu"
END LC_ADDRESS
diff --git a/localedata/locales/nl_AW b/localedata/locales/nl_AW
index 57e8e69580..af2cc64761 100644
--- a/localedata/locales/nl_AW
+++ b/localedata/locales/nl_AW
@@ -14,7 +14,7 @@ escape_char /
LC_IDENTIFICATION
title "Dutch language locale for Aruba"
source "Free Software Foundation, Inc."
-address "http:////www.gnu.org//software//libc//"
+address "https:////www.gnu.org//software//libc//"
contact ""
email "bug-glibc-locales@gnu.org"
tel ""
@@ -50,7 +50,7 @@ LC_MONETARY
int_curr_symbol "AWG "
currency_symbol "Afl."
mon_decimal_point ","
-mon_thousands_sep "<U202F>"
+mon_thousands_sep "."
mon_grouping 3;3
positive_sign ""
negative_sign "-"
@@ -59,9 +59,9 @@ frac_digits 2
p_cs_precedes 1
p_sep_by_space 1
n_cs_precedes 1
-n_sep_by_space 1
+n_sep_by_space 2
p_sign_posn 1
-n_sign_posn 2
+n_sign_posn 4
END LC_MONETARY
LC_NUMERIC
diff --git a/localedata/locales/nl_BE b/localedata/locales/nl_BE
index 4179886f8d..6232998847 100644
--- a/localedata/locales/nl_BE
+++ b/localedata/locales/nl_BE
@@ -121,7 +121,7 @@ copy "fr_BE"
END LC_MEASUREMENT
LC_NAME
-name_fmt "%d%t%g%t%m%t%f"
+copy "nl_NL"
END LC_NAME
LC_ADDRESS
diff --git a/localedata/locales/nl_BE@euro b/localedata/locales/nl_BE@euro
index 10627586a9..73d6b69402 100644
--- a/localedata/locales/nl_BE@euro
+++ b/localedata/locales/nl_BE@euro
@@ -18,7 +18,7 @@ escape_char /
LC_IDENTIFICATION
title "Dutch locale for Belgium with Euro"
source "Free Software Foundation, Inc."
-address "http:////www.gnu.org//software//libc//"
+address "https:////www.gnu.org//software//libc//"
contact ""
email "bug-glibc-locales@gnu.org"
tel ""
diff --git a/localedata/locales/nl_NL b/localedata/locales/nl_NL
index 1ab3277aa0..185c2099ec 100644
--- a/localedata/locales/nl_NL
+++ b/localedata/locales/nl_NL
@@ -74,7 +74,7 @@ LC_MONETARY
int_curr_symbol "EUR "
currency_symbol "<U20AC>"
mon_decimal_point ","
-mon_thousands_sep "<U202F>"
+mon_thousands_sep "."
mon_grouping 3;3
positive_sign ""
negative_sign "-"
@@ -83,15 +83,15 @@ frac_digits 2
p_cs_precedes 1
p_sep_by_space 1
n_cs_precedes 1
-n_sep_by_space 1
+n_sep_by_space 2
p_sign_posn 1
-n_sign_posn 2
+n_sign_posn 4
END LC_MONETARY
LC_NUMERIC
decimal_point ","
-thousands_sep ""
-grouping 0;0
+thousands_sep "."
+grouping 3;3
END LC_NUMERIC
LC_TIME
@@ -150,6 +150,11 @@ END LC_MEASUREMENT
LC_NAME
name_fmt "%d%t%g%t%m%t%f"
+name_gen "heer of mevrouw"
+name_mr "heer"
+name_mrs "mevrouw"
+name_miss "mevrouw"
+name_ms "mevrouw"
END LC_NAME
LC_ADDRESS
diff --git a/localedata/locales/nl_NL@euro b/localedata/locales/nl_NL@euro
index 8f298a279d..832e6d67ab 100644
--- a/localedata/locales/nl_NL@euro
+++ b/localedata/locales/nl_NL@euro
@@ -18,7 +18,7 @@ escape_char /
LC_IDENTIFICATION
title "Dutch locale for the Netherlands with Euro"
source "Free Software Foundation, Inc."
-address "http:////www.gnu.org//software//libc//"
+address "https:////www.gnu.org//software//libc//"
contact ""
email "bug-glibc-locales@gnu.org"
tel ""
diff --git a/localedata/locales/nr_ZA b/localedata/locales/nr_ZA
index 7de6420a6b..f64434fadb 100644
--- a/localedata/locales/nr_ZA
+++ b/localedata/locales/nr_ZA
@@ -225,7 +225,7 @@ country_car "ZA"
country_num 710
% Language name in Southern Ndebele
-lang_name "IsiNdebele"
+lang_name "isiNdebele"
% ISO 639 two and three letter language names
% see http://www.loc.gov/standards/iso639-2/englangn.html
diff --git a/localedata/locales/oc_FR b/localedata/locales/oc_FR
index 707927ee26..a106f8d1c1 100644
--- a/localedata/locales/oc_FR
+++ b/localedata/locales/oc_FR
@@ -44,7 +44,7 @@ country_ab3 "FRA"
country_num 250
country_isbn "979-10"
country_car "F"
-lang_name "Occitan"
+lang_name "occitan"
lang_ab "oc"
lang_term "oci"
lang_lib "oci"
diff --git a/localedata/locales/om_ET b/localedata/locales/om_ET
index dcef30e385..881b43fb17 100644
--- a/localedata/locales/om_ET
+++ b/localedata/locales/om_ET
@@ -208,10 +208,10 @@ am_pm "WD";"WB"
d_fmt "%d//%m//%Y"
%
% Appropriate time representation (%X)
-t_fmt "%l:%M:%S"
+t_fmt "%l:%M:%S %p"
%
% Appropriate AM/PM time representation (%r)
-t_fmt_ampm "%X %p"
+t_fmt_ampm "%l:%M:%S %p"
%
% Appropriate date and time representation (%c)
d_t_fmt "%A, %B %e, %Y %r %Z"
diff --git a/localedata/locales/or_IN b/localedata/locales/or_IN
index ef28b58895..2e4975e7b7 100644
--- a/localedata/locales/or_IN
+++ b/localedata/locales/or_IN
@@ -20,7 +20,7 @@ contact ""
email "bug-glibc@gnu.org"
tel ""
fax ""
-language "Oriya"
+language "Odia"
territory "India"
revision "1.0"
date "2006-05-25"
diff --git a/localedata/locales/pa_IN b/localedata/locales/pa_IN
index 354ac2819f..a1ef516251 100644
--- a/localedata/locales/pa_IN
+++ b/localedata/locales/pa_IN
@@ -143,10 +143,10 @@ am_pm "<U0A38><U0A35><U0A47><U0A30><U0A47>";/
d_t_fmt "%A %d %b %Y %I:%M:%S %p %Z"
%
% Appropriate date representation
-d_fmt "%A %d %b %Y"
+d_fmt "%-d//%-m//%y"
%
% Appropriate time representation
-t_fmt "%I:%M:%S %Z"
+t_fmt "%I:%M:%S %p %Z"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm "%I:%M:%S %p %Z"
diff --git a/localedata/locales/pa_PK b/localedata/locales/pa_PK
index 1f49bdc90d..0a584114b8 100644
--- a/localedata/locales/pa_PK
+++ b/localedata/locales/pa_PK
@@ -173,7 +173,7 @@ END LC_NAME
LC_ADDRESS
% FIXME
postal_fmt "%a%N%f%N%d%N%b%N%h %s %e %r%N%T %z%N%c%N"
-country_name "<U0A2A><U0A3E><U0A15><U0A3F><U0A38><U0A24><U0A3E><U0A28>"
+country_name "<U067E><U06A9><U0633><U062A><U0627><U0646>"
country_ab2 "PK"
country_ab3 "PAK"
country_num 586
diff --git a/localedata/locales/ps_AF b/localedata/locales/ps_AF
index 66f560ef44..23dc86dcf1 100644
--- a/localedata/locales/ps_AF
+++ b/localedata/locales/ps_AF
@@ -308,8 +308,7 @@ END LC_NAME
LC_ADDRESS
postal_fmt "%a%N%f%N%d%N%b%N%s %h %e %r%N%C-%z %T%N%c%N"
-country_name "<U0627><U0641><U063A><U0627><U0646>/
-<U0633><U062A><U0627><U0646>"
+country_name "<U0627><U0641><U063A><U0627><U0646><U0633><U062A><U0627><U0646>"
country_post "AF"
country_ab2 "AF"
country_ab3 "AFG"
diff --git a/localedata/locales/pt_PT@euro b/localedata/locales/pt_PT@euro
index 3ca18ee02e..e36369ff41 100644
--- a/localedata/locales/pt_PT@euro
+++ b/localedata/locales/pt_PT@euro
@@ -18,7 +18,7 @@ escape_char /
LC_IDENTIFICATION
title "Portuguese locale for Portugal with Euro"
source "Free Software Foundation, Inc."
-address "http:////www.gnu.org//software//libc//"
+address "https:////www.gnu.org//software//libc//"
contact ""
email "bug-glibc-locales@gnu.org"
tel ""
diff --git a/localedata/locales/quz_PE b/localedata/locales/quz_PE
index f6b1956b93..9ed890cbb0 100644
--- a/localedata/locales/quz_PE
+++ b/localedata/locales/quz_PE
@@ -10,7 +10,7 @@ escape_char /
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
-% Quechua (Cusco-Collao) language locale for Peru
+% Cusco Quechua language locale for Peru
%
% Prepared and contributed to glibc by Chris Leonard <cjl@sugarlabs.org>
% and Amos Batto
@@ -25,14 +25,14 @@ escape_char /
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
LC_IDENTIFICATION
-title "Quechua (Cusco-Collao) locale for Peru"
+title "Cusco Quechua locale for Peru"
source "Sugar Labs // OLPC"
address ""
contact "sugarlabs.org"
email "libc-alpha@sourceware.org"
tel ""
fax ""
-language "Quechua (Cusco-Collao)"
+language "Cusco Quechua"
territory "Peru"
revision "1.0"
date "2013-08-24"
@@ -144,7 +144,7 @@ country_ab2 "PE"
country_ab3 "PER"
country_num 604
country_car "PE"
-lang_name "Quechua (Cusco)"
+lang_name "Qusqu runasimi"
lang_term "quz"
lang_lib "quz"
END LC_ADDRESS
diff --git a/localedata/locales/raj_IN b/localedata/locales/raj_IN
index ece080223e..c5beb5e798 100644
--- a/localedata/locales/raj_IN
+++ b/localedata/locales/raj_IN
@@ -126,10 +126,10 @@ am_pm "<U092A><U0942><U0930><U094D><U0935><U093E><U0939><U094D><U0928>";/
d_t_fmt "%A %d %b %Y %I:%M:%S %p %Z"
%
% Appropriate date representation
-d_fmt "%A %d %b %Y"
+d_fmt "%-d//%-m//%y"
%
% Appropriate time representation
-t_fmt "%I:%M:%S %Z"
+t_fmt "%I:%M:%S %p %Z"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm "%I:%M:%S %p %Z"
@@ -158,7 +158,16 @@ name_ms "<U0915><U0941><U092E><U093E><U0930>"
END LC_NAME
LC_ADDRESS
-copy "hi_IN"
+postal_fmt "%z%c%T%s%b%e%r"
+country_name "<U092D><U093E><U0930><U0924>"
+country_ab2 "IN"
+country_ab3 "IND"
+country_num 356
+country_car "IND"
+% राजसà¥à¤¥à¤¾à¤¨à¥€
+lang_name "<U0930><U093E><U091C><U0938><U094D><U0925><U093E><U0928><U0940>"
+lang_term "raj"
+lang_lib "raj"
END LC_ADDRESS
LC_TELEPHONE
diff --git a/localedata/locales/ru_UA b/localedata/locales/ru_UA
index 381370cb05..fa1eb5b999 100644
--- a/localedata/locales/ru_UA
+++ b/localedata/locales/ru_UA
@@ -83,75 +83,7 @@ grouping 3;3
END LC_NUMERIC
LC_TIME
-day "<U0412><U043E><U0441><U043A><U0440><U0435><U0441><U0435><U043D><U044C><U0435>";/
- "<U041F><U043E><U043D><U0435><U0434><U0435><U043B><U044C><U043D><U0438><U043A>";/
- "<U0412><U0442><U043E><U0440><U043D><U0438><U043A>";/
- "<U0421><U0440><U0435><U0434><U0430>";/
- "<U0427><U0435><U0442><U0432><U0435><U0440><U0433>";/
- "<U041F><U044F><U0442><U043D><U0438><U0446><U0430>";/
- "<U0421><U0443><U0431><U0431><U043E><U0442><U0430>"
-abday "<U0412><U0441><U043A>";/
- "<U041F><U043D><U0434>";/
- "<U0412><U0442><U043E>";/
- "<U0421><U0440><U0434>";/
- "<U0427><U0442><U0432>";/
- "<U041F><U0442><U043D>";/
- "<U0421><U0443><U0431>"
-alt_mon "<U042F><U043D><U0432><U0430><U0440><U044C>";/
- "<U0424><U0435><U0432><U0440><U0430><U043B><U044C>";/
- "<U041C><U0430><U0440><U0442>";/
- "<U0410><U043F><U0440><U0435><U043B><U044C>";/
- "<U041C><U0430><U0439>";/
- "<U0418><U044E><U043D><U044C>";/
- "<U0418><U044E><U043B><U044C>";/
- "<U0410><U0432><U0433><U0443><U0441><U0442>";/
- "<U0421><U0435><U043D><U0442><U044F><U0431><U0440><U044C>";/
- "<U041E><U043A><U0442><U044F><U0431><U0440><U044C>";/
- "<U041D><U043E><U044F><U0431><U0440><U044C>";/
- "<U0414><U0435><U043A><U0430><U0431><U0440><U044C>"
-mon "<U044F><U043D><U0432><U0430><U0440><U044F>";/
- "<U0444><U0435><U0432><U0440><U0430><U043B><U044F>";/
- "<U043C><U0430><U0440><U0442><U0430>";/
- "<U0430><U043F><U0440><U0435><U043B><U044F>";/
- "<U043C><U0430><U044F>";/
- "<U0438><U044E><U043D><U044F>";/
- "<U0438><U044E><U043B><U044F>";/
- "<U0430><U0432><U0433><U0443><U0441><U0442><U0430>";/
- "<U0441><U0435><U043D><U0442><U044F><U0431><U0440><U044F>";/
- "<U043E><U043A><U0442><U044F><U0431><U0440><U044F>";/
- "<U043D><U043E><U044F><U0431><U0440><U044F>";/
- "<U0434><U0435><U043A><U0430><U0431><U0440><U044F>"
-ab_alt_mon "<U042F><U043D><U0432>";/
- "<U0424><U0435><U0432>";/
- "<U041C><U0430><U0440>";/
- "<U0410><U043F><U0440>";/
- "<U041C><U0430><U0439>";/
- "<U0418><U044E><U043D>";/
- "<U0418><U044E><U043B>";/
- "<U0410><U0432><U0433>";/
- "<U0421><U0435><U043D>";/
- "<U041E><U043A><U0442>";/
- "<U041D><U043E><U044F>";/
- "<U0414><U0435><U043A>"
-abmon "<U044F><U043D><U0432>";/
- "<U0444><U0435><U0432>";/
- "<U043C><U0430><U0440>";/
- "<U0430><U043F><U0440>";/
- "<U043C><U0430><U044F>";/
- "<U0438><U044E><U043D>";/
- "<U0438><U044E><U043B>";/
- "<U0430><U0432><U0433>";/
- "<U0441><U0435><U043D>";/
- "<U043E><U043A><U0442>";/
- "<U043D><U043E><U044F>";/
- "<U0434><U0435><U043A>"
-d_t_fmt "%a %d %b %Y %T"
-d_fmt "%d.%m.%Y"
-t_fmt "%T"
-am_pm "";""
-t_fmt_ampm ""
-week 7;19971130;1
-first_weekday 2
+copy "ru_RU"
END LC_TIME
LC_PAPER
diff --git a/localedata/locales/rw_RW b/localedata/locales/rw_RW
index e0bc763c5a..31cb4673df 100644
--- a/localedata/locales/rw_RW
+++ b/localedata/locales/rw_RW
@@ -132,7 +132,7 @@ END LC_NAME
LC_ADDRESS
postal_fmt "%f%N%a%N%d%N%b%N%s %h %e %r%N%z %T%N%c%N"
-country_name "Rwanda"
+country_name "U Rwanda"
country_ab2 "RW"
country_ab3 "RWA"
country_num 646
diff --git a/localedata/locales/sa_IN b/localedata/locales/sa_IN
index a8e7d6a56c..362294af5a 100644
--- a/localedata/locales/sa_IN
+++ b/localedata/locales/sa_IN
@@ -152,10 +152,10 @@ am_pm "<U092A><U0942><U0930><U094D><U0935><U093E><U0939><U094D><U0928>";/
d_t_fmt "%A %d %b %Y %I:%M:%S %p %Z"
%
% Appropriate date representation
-d_fmt "%A %d %b %Y"
+d_fmt "%-d-%m-%y"
%
% Appropriate time representation
-t_fmt "%I:%M:%S %Z"
+t_fmt "%I:%M:%S %p %Z"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm "%I:%M:%S %p %Z"
diff --git a/localedata/locales/sah_RU b/localedata/locales/sah_RU
index 80f67219c3..2b5a4b7bd6 100644
--- a/localedata/locales/sah_RU
+++ b/localedata/locales/sah_RU
@@ -1,7 +1,7 @@
escape_char /
comment_char %
-% Yakut (Sakha) locale for Russian Federation
+% Sakha (Yakut) locale for Russian Federation
% Source: Valery Timiriliyev
% Email: timiriliyev@gmail.com
% Tel:
@@ -13,14 +13,14 @@ comment_char %
% Users: general
LC_IDENTIFICATION
-title "Yakut (Sakha) locale for Russian Federation"
+title "Sakha (Yakut) locale for Russian Federation"
source "Valery Timiriliyev"
address ""
contact "Valery Timiriliyev"
email "timiriliyev@gmail.com"
tel ""
fax ""
-language "Yakut"
+language "Sakha"
territory "Russian Federation"
revision "1.1.0"
date "2018-07-06"
@@ -264,11 +264,11 @@ END LC_NAME
LC_ADDRESS
postal_fmt "%f%N%a%N%d%N%b%N%s %h %e %r%N%z %T%N%c%N"
-% РоÑÑиÑ
-country_name "<U0420><U043E><U0441><U0441><U0438><U044F>"
+% ÐраÑÑыыйа
+country_name "<U0410><U0440><U0430><U0441><U0441><U044B><U044B><U0439><U0430>"
-% Саха тыла
-lang_name "<U0421><U0430><U0445><U0430> <U0442><U044B><U043B><U0430>"
+% Ñаха тыла
+lang_name "<U0441><U0430><U0445><U0430><U0020><U0442><U044B><U043B><U0430>"
% UN Geneve 1949:68 Distinguishing signs of vehicles in international traffic
% RUS
diff --git a/localedata/locales/sat_IN b/localedata/locales/sat_IN
index 134eb8a572..10610e65f3 100644
--- a/localedata/locales/sat_IN
+++ b/localedata/locales/sat_IN
@@ -116,10 +116,10 @@ am_pm "AM";"PM"
d_t_fmt "%A %d %b %Y %I:%M:%S %p %Z"
%
% Appropriate date representation
-d_fmt "%A %d %b %Y"
+d_fmt "%-d//%-m//%y"
%
% Appropriate time representation
-t_fmt "%I:%M:%S %Z"
+t_fmt "%I:%M:%S %p %Z"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm "%I:%M:%S %p %Z"
@@ -158,12 +158,13 @@ END LC_NAME
LC_ADDRESS
postal_fmt "%z%c%T%s%b%e%r"
+country_name "<U1C65><U1C64><U1C67><U1C5A><U1C5B>"
country_ab2 "IN"
country_ab3 "IND"
country_num 356
country_car "IND"
-% SatÄr
-lang_name "Sat<U0101>r"
+% ᱥᱟᱱᱛᱟᱲᱤ
+lang_name "<U1C65><U1C5F><U1C71><U1C5B><U1C5F><U1C72><U1C64>"
lang_term "sat"
lang_lib "sat"
END LC_ADDRESS
diff --git a/localedata/locales/sc_IT b/localedata/locales/sc_IT
index 1488744575..32626404d2 100644
--- a/localedata/locales/sc_IT
+++ b/localedata/locales/sc_IT
@@ -144,7 +144,7 @@ country_ab3 "ITA"
country_num 380
country_isbn "978-88,979-12"
country_car "I"
-lang_name "Sardu"
+lang_name "sardu"
lang_ab "sc"
lang_term "srd"
lang_lib "srd"
diff --git a/localedata/locales/sd_IN b/localedata/locales/sd_IN
index 66aa0e254c..b2ed5f800b 100644
--- a/localedata/locales/sd_IN
+++ b/localedata/locales/sd_IN
@@ -124,10 +124,10 @@ am_pm "AM";"PM"
d_t_fmt "%A %d %b %Y %I:%M:%S %p %Z"
%
% Appropriate date representation
-d_fmt "%A %d %b %Y"
+d_fmt "%-d//%-m//%y"
%
% Appropriate time representation
-t_fmt "%I:%M:%S %Z"
+t_fmt "%I:%M:%S %p %Z"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm "%I:%M:%S %p %Z"
@@ -164,12 +164,14 @@ LC_ADDRESS
% This is the ISO_IEC TR14652 Locale definition for the LC_ADDRESS category
% generated by IBM Basic CountryPack Transformer.
postal_fmt "%z%c%T%s%b%e%r"
-% https://sd.wikipedia.org/wiki/%DA%80%D8%A7%D8%B1%D8%AA : "ڀارت"
-country_name "<U0680><U0627><U0631><U062A>"
+% From cldr: انڊيا
+country_name "<U0627><U0646><U068A><U064A><U0627>"
country_ab2 "IN"
country_ab3 "IND"
country_num 356
country_car "IND"
+% سنڌي
+lang_name "<U0633><U0646><U068C><U064A>"
lang_ab "sd"
lang_term "snd"
lang_lib "snd"
diff --git a/localedata/locales/sd_IN@devanagari b/localedata/locales/sd_IN@devanagari
index b1ce87df93..b24a171e1b 100644
--- a/localedata/locales/sd_IN@devanagari
+++ b/localedata/locales/sd_IN@devanagari
@@ -121,10 +121,10 @@ am_pm "<U092E>.<U092A><U0942>.";/
d_t_fmt "%A %d %b %Y %I:%M:%S %p %Z"
%
% Appropriate date representation
-d_fmt "%A %d %b %Y"
+d_fmt "%-d//%-m//%y"
%
% Appropriate time representation
-t_fmt "%I:%M:%S %Z"
+t_fmt "%I:%M:%S %p %Z"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm "%I:%M:%S %p %Z"
@@ -167,6 +167,8 @@ country_ab2 "IN"
country_ab3 "IND"
country_num 356
country_car "IND"
+% सिनà¥à¤§à¥€
+lang_name "<U0938><U093F><U0928><U094D><U0927><U0940>"
lang_ab "sd"
lang_term "snd"
lang_lib "snd"
diff --git a/localedata/locales/shn_MM b/localedata/locales/shn_MM
index 4212c50ec5..a837f5fb39 100644
--- a/localedata/locales/shn_MM
+++ b/localedata/locales/shn_MM
@@ -281,7 +281,8 @@ END LC_NAME
LC_ADDRESS
postal_fmt "%a%N%d%N%f%N%b%N%h%t%r%t%e%t%s%N%T%t%z%N%c%N"
-country_name "<U1019><U1062><U107C><U103A><U1088>"
+% https://shn.wikipedia.org/wiki/%E1%80%99%E1%80%AD%E1%80%B0%E1%80%84%E1%80%BA%E1%80%B8%E1%80%99%E1%81%A2%E1%81%BC%E1%80%BA%E1%82%88 မိူင်းမá¢á¼á€ºá‚ˆ
+country_name "<U1019><U102D><U1030><U1004><U103A><U1038><U1019><U1062><U107C><U103A><U1088>"
country_post "Myanmar"
country_ab2 "MM"
country_num 104
diff --git a/localedata/locales/shs_CA b/localedata/locales/shs_CA
index a5b675a316..ab48d600ef 100644
--- a/localedata/locales/shs_CA
+++ b/localedata/locales/shs_CA
@@ -8,7 +8,7 @@ escape_char /
% exempt you from the conditions of the license if your use would
% otherwise be governed by that license.
-% Secwepemctsin (Shuswap) language locale for Canada
+% Shuswap language locale for Canada
% sorting according to CAN/CSA-Z243.4.1-1992
% Source: Neskie Manuel
% Address: 745 Ska-Hiish Dr
@@ -25,14 +25,14 @@ escape_char /
% Users: general
LC_IDENTIFICATION
-title "Secwepemctsin locale for Canada"
+title "Shuswap locale for Canada"
source "Neskie Manuel"
address "745 Ska-Hiish Dr, Chase BC V0E 1M3"
contact ""
email "bug-glibc-locales@gnu.org"
tel ""
fax ""
-language "Secwepemctsin"
+language "Shuswap"
territory "Canada"
revision "1.0"
date "2008-01-15"
@@ -155,7 +155,7 @@ country_ab2 "CA"
country_ab3 "CAN"
country_num 124
country_car "CDN"
-lang_name "Secwepemctsin"
+lang_name "Secwepemcts<U00ED>n"
lang_term "shs"
lang_lib "shs"
END LC_ADDRESS
diff --git a/localedata/locales/sid_ET b/localedata/locales/sid_ET
index ce67a7ad54..fd564453af 100644
--- a/localedata/locales/sid_ET
+++ b/localedata/locales/sid_ET
@@ -202,11 +202,11 @@ d_fmt "%d//%m//%Y"
%
% Appropriate time representation (%X)
%
-t_fmt "%l:%M:%S"
+t_fmt "%l:%M:%S %p"
%
% Appropriate AM/PM time representation (%r)
%
-t_fmt_ampm "%X %p"
+t_fmt_ampm "%l:%M:%S %p"
%
% Appropriate date and time representation (%c)
%
diff --git a/localedata/locales/sk_SK b/localedata/locales/sk_SK
index 94e6e12bb2..b923741cbe 100644
--- a/localedata/locales/sk_SK
+++ b/localedata/locales/sk_SK
@@ -172,7 +172,7 @@ d_fmt "%d.%m.%Y"
t_fmt "%H:%M:%S"
-t_fmt_ampm "%I:%M:%S"
+t_fmt_ampm ""
am_pm "";""
diff --git a/localedata/locales/sm_WS b/localedata/locales/sm_WS
index 6058fbdc38..2823005c06 100644
--- a/localedata/locales/sm_WS
+++ b/localedata/locales/sm_WS
@@ -159,7 +159,7 @@ END LC_NAME
LC_ADDRESS
postal_fmt "%a%N%f%N%d%N%b%N%h %s %e %r%N%T, %S %z%N%c%N"
-country_name "Samoa"
+country_name "S<U0101>moa"
country_post "%a %N %f %N %d %N %b %N %h %s %e %/
r %N %T, %c %N"
% http://laendercode.net/en/2-letter-list.html
diff --git a/localedata/locales/so_DJ b/localedata/locales/so_DJ
index 3fd5cc030d..a21297731e 100644
--- a/localedata/locales/so_DJ
+++ b/localedata/locales/so_DJ
@@ -202,11 +202,11 @@ d_fmt "%d.%m.%Y"
%
% Appropriate time representation (%X)
%
-t_fmt "%l:%M:%S"
+t_fmt "%l:%M:%S %p"
%
% Appropriate AM/PM time representation (%r)
%
-t_fmt_ampm "%X %p"
+t_fmt_ampm "%l:%M:%S %p"
%
% Appropriate date and time representation (%c)
%
diff --git a/localedata/locales/so_ET b/localedata/locales/so_ET
index 4da4f15726..2f8fe420cc 100644
--- a/localedata/locales/so_ET
+++ b/localedata/locales/so_ET
@@ -199,11 +199,11 @@ d_fmt "%d//%m//%Y"
%
% Appropriate time representation (%X)
%
-t_fmt "%l:%M:%S"
+t_fmt "%l:%M:%S %p"
%
% Appropriate AM/PM time representation (%r)
%
-t_fmt_ampm "%X %p"
+t_fmt_ampm "%l:%M:%S %p"
%
% Appropriate date and time representation (%c)
%
diff --git a/localedata/locales/so_KE b/localedata/locales/so_KE
index d434f37cbe..18ef57adbe 100644
--- a/localedata/locales/so_KE
+++ b/localedata/locales/so_KE
@@ -199,19 +199,19 @@ d_fmt "%d//%m//%Y"
%
% Appropriate time representation (%X)
%
-t_fmt "%l:%M:%S"
+t_fmt "%T"
%
% Appropriate AM/PM time representation (%r)
%
-t_fmt_ampm "%X %p"
+t_fmt_ampm ""
%
% Appropriate date and time representation (%c)
%
-d_t_fmt "%A, %B %e, %Y %r %Z"
+d_t_fmt "%A, %B %e, %Y %X %Z"
%
% Appropriate date representation (date(1))
%
-date_fmt "%A, %B %e, %r %Z %Y"
+date_fmt "%A, %B %e, %X %Z %Y"
%
week 7;19971130;1
END LC_TIME
diff --git a/localedata/locales/so_SO b/localedata/locales/so_SO
index 713bf79608..b0a935ee71 100644
--- a/localedata/locales/so_SO
+++ b/localedata/locales/so_SO
@@ -247,11 +247,11 @@ d_fmt "%d//%m//%Y"
%
% Appropriate time representation (%X)
%
-t_fmt "%l:%M:%S"
+t_fmt "%l:%M:%S %p"
%
% Appropriate AM/PM time representation (%r)
%
-t_fmt_ampm "%X %p"
+t_fmt_ampm "%l:%M:%S %p"
%
% Appropriate date and time representation (%c)
%
diff --git a/localedata/locales/sq_AL b/localedata/locales/sq_AL
index b16a459c56..30b7d8160a 100644
--- a/localedata/locales/sq_AL
+++ b/localedata/locales/sq_AL
@@ -289,16 +289,19 @@ mon "janar";/
am_pm "PD";"MD"
%
% Appropriate date and time representation
-d_t_fmt "%Y-%b-%d %I.%M.%S.%p %Z"
+d_t_fmt "%a %-d %b %Y %I:%M:%S.%p"
+%
+% Appropriate date and time representation for date(1)
+date_fmt "%a %-d %b %Y %I:%M:%S.%p %Z"
%
% Appropriate date representation
-d_fmt "%Y-%b-%d"
+d_fmt "%-d.%-m.%y"
%
% Appropriate time representation
-t_fmt "%I.%M.%S. %Z"
+t_fmt "%I:%M:%S.%p %Z"
%
% Appropriate 12 h time representation (%r)
-t_fmt_ampm "%I.%M.%S.%p %Z"
+t_fmt_ampm "%I:%M:%S.%p %Z"
week 7;19971130;1
first_weekday 2
END LC_TIME
diff --git a/localedata/locales/ss_ZA b/localedata/locales/ss_ZA
index 7532a1940b..8e08a85f46 100644
--- a/localedata/locales/ss_ZA
+++ b/localedata/locales/ss_ZA
@@ -228,7 +228,7 @@ country_car "ZA"
% country_isbn ""
% Language name in Swati
-lang_name "SiSwati"
+lang_name "siSwati"
% ISO 639 two and three letter language names
% see http://www.loc.gov/standards/iso639-2/englangn.html
diff --git a/localedata/locales/sv_FI@euro b/localedata/locales/sv_FI@euro
index eecd06e03c..ef534aed87 100644
--- a/localedata/locales/sv_FI@euro
+++ b/localedata/locales/sv_FI@euro
@@ -18,7 +18,7 @@ escape_char /
LC_IDENTIFICATION
title "Swedish locale for Finland with Euro"
source "Free Software Foundation, Inc."
-address "http:////www.gnu.org//software//libc//"
+address "https:////www.gnu.org//software//libc//"
contact ""
email "bug-glibc-locales@gnu.org"
tel ""
diff --git a/localedata/locales/szl_PL b/localedata/locales/szl_PL
index 8d5de2112e..33db4c4ef5 100644
--- a/localedata/locales/szl_PL
+++ b/localedata/locales/szl_PL
@@ -132,34 +132,46 @@ END LC_NUMERIC
LC_TIME
abday "niy";"py<U0144>";/
- "wt<U014F>";"str";/
- "szt";"pj<U014D>";/
+ "wto";"str";/
+ "szt";"pi<U014D>";/
"sob"
day "niydziela";/
- "py<U0144>dzi<U014F>ek";/
- "wt<U014F>rek";/
- "strz<U014F>da";/
+ "py<U0144>dzia<U0142>ek";/
+ "wtorek";/
+ "strzoda";/
"sztwortek";/
- "pj<U014D>ntek";/
- "sob<U014F>ta"
+ "pi<U014D>ntek";/
+ "sobota"
abmon "sty";"lut";/
- "mer";"kwj";/
+ "mar";"kwi";/
"moj";"czy";/
- "lip";"siy";/
+ "lip";"sie";/
"wrz";"pa<U017A>";/
"lis";"gru"
-mon "styczy<U0144>";/
+alt_mon "styczy<U0144>";/
"luty";/
- "merc";/
- "kwjeciy<U0144>";/
+ "marzec";/
+ "kwieciy<U0144>";/
"moj";/
- "czyrwjy<U0144>";/
- "lipjy<U0144>";/
- "siyrpjy<U0144>";/
+ "czyrwiec";/
+ "lipiec";/
+ "sierpiy<U0144>";/
"wrzesiy<U0144>";/
"pa<U017A>dziernik";/
"listopad";/
"grudziy<U0144>"
+mon "stycznia";/
+ "lutego";/
+ "marca";/
+ "kwietnia";/
+ "moja";/
+ "czyrwca";/
+ "lipca";/
+ "sierpnia";/
+ "wrze<U015B>nia";/
+ "pa<U017A>dziernika";/
+ "listopada";/
+ "grudnia"
d_t_fmt "%a, %-d %b %Y, %T"
d_fmt "%d.%m.%Y"
t_fmt "%T"
@@ -188,6 +200,7 @@ END LC_NAME
LC_ADDRESS
postal_fmt "%f%N%a%N%d%N%b%N%s %h %e %r%N%z %T%N%c%N"
+country_name "Polska"
country_ab2 "PL"
country_ab3 "POL"
country_num 616
diff --git a/localedata/locales/ta_IN b/localedata/locales/ta_IN
index b163822c82..5e40629ff1 100644
--- a/localedata/locales/ta_IN
+++ b/localedata/locales/ta_IN
@@ -127,16 +127,16 @@ mon "<U0B9C><U0BA9><U0BB5><U0BB0><U0BBF>";"<U0BAA><U0BBF><U0BAA><U0BCD><
am_pm "<U0B95><U0BBE><U0BB2><U0BC8>";"<U0BAE><U0BBE><U0BB2><U0BC8>"
%
% Appropriate date and time representation
-d_t_fmt "%A %d %B %Y %I:%M:%S %p %Z"
+d_t_fmt "%A %d %B %Y %p %I:%M:%S %Z"
%
% Appropriate date representation
-d_fmt "%A %d %B %Y"
+d_fmt "%-d//%-m//%y"
%
% Appropriate time representation
-t_fmt "%I:%M:%S %Z"
+t_fmt "%p %I:%M:%S %Z"
%
% Appropriate 12 h time representation (%r)
-t_fmt_ampm "%I:%M:%S %p %Z"
+t_fmt_ampm "%p %I:%M:%S %Z"
%
week 7;19971130;1
END LC_TIME
diff --git a/localedata/locales/ta_LK b/localedata/locales/ta_LK
index b62ecfd9a2..ca5c1165c2 100644
--- a/localedata/locales/ta_LK
+++ b/localedata/locales/ta_LK
@@ -85,10 +85,10 @@ mon "<U0B9C><U0BA9><U0BB5><U0BB0><U0BBF>";"<U0BAA><U0BBF><U0BAA><U0BCD><
"<U0B9A><U0BC6><U0BAA><U0BCD><U0B9F><U0BAE><U0BCD><U0BAA><U0BB0><U0BCD>";"<U0B85><U0B95><U0BCD><U0B9F><U0BCB><U0BAA><U0BB0><U0BCD>";/
"<U0BA8><U0BB5><U0BAE><U0BCD><U0BAA><U0BB0><U0BCD>";"<U0B9F><U0BBF><U0B9A><U0BAE><U0BCD><U0BAA><U0BB0><U0BCD>"
am_pm "<U0B95><U0BBE><U0BB2><U0BC8>";"<U0BAE><U0BBE><U0BB2><U0BC8>"
-d_t_fmt "%A %d %B %Y %I:%M:%S %p %Z"
-d_fmt "%A %d %B %Y"
-t_fmt "%I:%M:%S %Z"
-t_fmt_ampm "%I:%M:%S %p %Z"
+d_t_fmt "%A %d %B %Y %H:%M:%S %Z"
+d_fmt "%-d//%-m//%y"
+t_fmt "%H:%M:%S %Z"
+t_fmt_ampm ""
week 7;19971130;1
first_weekday 2
diff --git a/localedata/locales/tcy_IN b/localedata/locales/tcy_IN
index 455b1dd73d..a356801352 100644
--- a/localedata/locales/tcy_IN
+++ b/localedata/locales/tcy_IN
@@ -127,10 +127,10 @@ am_pm "<U0C95><U0CBE><U0C82><U0CA1><U0CC6>";/
d_t_fmt "%A %d %b %Y %I:%M:%S %p %Z"
%
% Appropriate date representation
-d_fmt "%A %d %b %Y"
+d_fmt "%-d//%-m//%y"
%
% Appropriate time representation
-t_fmt "%I:%M:%S %Z"
+t_fmt "%I:%M:%S %p %Z"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm "%I:%M:%S %p %Z"
diff --git a/localedata/locales/te_IN b/localedata/locales/te_IN
index fb5bb21b09..82ebc2f0d1 100644
--- a/localedata/locales/te_IN
+++ b/localedata/locales/te_IN
@@ -132,7 +132,7 @@ am_pm "<U0C09>.";"<U0C38><U0C3E>."
d_t_fmt "%B %d %A %Y %p%I.%M.%S %Z"
%
% Appropriate date representation
-d_fmt "%B %d %A %Y"
+d_fmt "%d-%m-%y"
%
% Appropriate time representation
t_fmt "%p%I.%M.%S %Z"
@@ -177,7 +177,7 @@ LC_ADDRESS
% generated by IBM Basic CountryPack Transformer.
postal_fmt "%a%N%d%N%f%N%r%t%e%N%h%t%b%N%s%t%N%T%t%z%N%S%N%c"
-country_name "<U0C2D><U0C3E><U0C30><U0C24> <U0C26><U0C47><U0C36><U0C02>"
+country_name "<U0C2D><U0C3E><U0C30><U0C24><U0C26><U0C47><U0C36><U0C02>"
country_ab2 "IN"
country_ab3 "IND"
country_num 356
diff --git a/localedata/locales/tg_TJ b/localedata/locales/tg_TJ
index 35dfca4574..6d1e4d8ab3 100644
--- a/localedata/locales/tg_TJ
+++ b/localedata/locales/tg_TJ
@@ -222,6 +222,8 @@ country_ab2 "TJ"
country_ab3 "TJK"
country_num 762
country_car "TJ"
+% тоҷикӣ
+lang_name "<U0442><U043E><U04B7><U0438><U043A><U04E3>"
lang_ab "tg"
lang_term "tgk"
lang_lib "tgk"
diff --git a/localedata/locales/the_NP b/localedata/locales/the_NP
index 993e62fbfc..681e94e484 100644
--- a/localedata/locales/the_NP
+++ b/localedata/locales/the_NP
@@ -121,7 +121,7 @@ d_t_fmt "%A %d %b %Y %I:%M:%S %p %Z"
d_fmt "%A %d %b %Y"
%
% Appropriate time representation
-t_fmt "%I:%M:%S %Z"
+t_fmt "%I:%M:%S %p %Z"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm "%I:%M:%S %p %Z"
@@ -162,10 +162,14 @@ LC_ADDRESS
postal_fmt "%z%c%T%s%b%e%r"
lang_term "the"
lang_lib "the"
+% नेपाल
+country_name "<U0928><U0947><U092A><U093E><U0932>"
country_ab2 "NP"
country_ab3 "NPL"
country_num 524
country_car "NEP"
+% थारà¥
+lang_name "<U0925><U093E><U0930><U0941>"
END LC_ADDRESS
diff --git a/localedata/locales/ti_ER b/localedata/locales/ti_ER
index 77b9666c5e..890bbb6d3c 100644
--- a/localedata/locales/ti_ER
+++ b/localedata/locales/ti_ER
@@ -239,11 +239,11 @@ d_fmt "%d//%m//%Y"
%
% Appropriate time representation (%X)
%
-t_fmt "%l:%M:%S"
+t_fmt "%l:%M:%S %p"
%
% Appropriate AM/PM time representation (%r)
%
-t_fmt_ampm "%X %p"
+t_fmt_ampm "%l:%M:%S %p"
%
% Appropriate date and time representation (%c)
% "%Aá¡ %B %e መዓáˆá‰² %Y %r %Z
diff --git a/localedata/locales/ti_ET b/localedata/locales/ti_ET
index 6c387604e9..e7c8ec362b 100644
--- a/localedata/locales/ti_ET
+++ b/localedata/locales/ti_ET
@@ -1040,11 +1040,11 @@ d_fmt "%d//%m//%Y"
%
% Appropriate time representation (%X)
%
-t_fmt "%l:%M:%S"
+t_fmt "%l:%M:%S %p"
%
% Appropriate AM/PM time representation (%r)
%
-t_fmt_ampm "%X %p"
+t_fmt_ampm "%l:%M:%S %p"
%
% Appropriate date and time representation (%c)
% "%Aᣠ%B %e መዓáˆá‰² %Y %r %Z
diff --git a/localedata/locales/tig_ER b/localedata/locales/tig_ER
index d6afaf147d..403a919580 100644
--- a/localedata/locales/tig_ER
+++ b/localedata/locales/tig_ER
@@ -196,11 +196,11 @@ d_fmt "%d//%m//%Y"
%
% Appropriate time representation (%X)
%
-t_fmt "%l:%M:%S"
+t_fmt "%l:%M:%S %p"
%
% Appropriate AM/PM time representation (%r)
%
-t_fmt_ampm "%X %p"
+t_fmt_ampm "%l:%M:%S %p"
%
% Appropriate date and time representation (%c)
% "%Aᡠ%B %e ዮሠ%Y %r %Z
diff --git a/localedata/locales/tk_TM b/localedata/locales/tk_TM
index 410afaf6c7..e29ae20408 100644
--- a/localedata/locales/tk_TM
+++ b/localedata/locales/tk_TM
@@ -399,7 +399,7 @@ country_num 795
country_ab2 "TM"
country_ab3 "TKM"
% Türkmençe
-lang_name "t<U00FC>rkmen<U00E7>e"
+lang_name "t<U00FC>rkmen dili"
lang_term "tuk"
lang_lib "tuk"
lang_ab "tk"
diff --git a/localedata/locales/tl_PH b/localedata/locales/tl_PH
index 40fd71d960..03b8350749 100644
--- a/localedata/locales/tl_PH
+++ b/localedata/locales/tl_PH
@@ -138,6 +138,7 @@ country_ab2 "PH"
country_ab3 "PHL"
country_num 608
country_car "RP"
+lang_name "Tagalog"
lang_ab "tl"
lang_term "tgl"
lang_lib "tgl"
diff --git a/localedata/locales/to_TO b/localedata/locales/to_TO
index 7abe8685df..acb5ce655c 100644
--- a/localedata/locales/to_TO
+++ b/localedata/locales/to_TO
@@ -91,7 +91,6 @@ abday "S<U0101>p";/
"Fal";/
"Tok"
% Equivalent of AM PM
-% hengihengi, efiafi
am_pm "hengihengi";"efiafi"
%
@@ -102,10 +101,9 @@ d_t_fmt "%A %d %b %Y %I:%M:%S %p %Z"
d_fmt "%A %d %b %Y"
%
% Appropriate time representation
-t_fmt "%I:%M:%S %Z"
+t_fmt "%I:%M:%S %p %Z"
%
% Appropriate 12 h time representation (%r)
-% %I:%M:%S %p %Z
t_fmt_ampm "%I:%M:%S %p %Z"
END LC_TIME
%
@@ -169,7 +167,7 @@ country_ab3 "TON"
country_car "TON"
country_num 776
% Tongan
-lang_name "Tonga<U000A>"
+lang_name "lea fakatonga"
% https://en.wikipedia.org/wiki/Tongan_language
lang_ab "to"
lang_term "ton"
diff --git a/localedata/locales/tpi_PG b/localedata/locales/tpi_PG
index 3315c27633..885481974c 100644
--- a/localedata/locales/tpi_PG
+++ b/localedata/locales/tpi_PG
@@ -172,7 +172,8 @@ END LC_NAME
LC_ADDRESS
% http://www.addressexamples.com/papua-new-guinea-address-format/
postal_fmt "%a%s%z%C"
-country_name "Papua New Guinea"
+% https://tpi.wikipedia.org/wiki/Papua_Niugini
+country_name "Papua Niugini"
country_post ""
country_ab2 "PG"
country_ab3 "PNG"
@@ -180,7 +181,7 @@ country_car "PNG"
% https://en.wikipedia.org/wiki/ISO_3166-1_numeric
country_num 598
% Tok Pisin
-lang_name "Tok Pisin"
+lang_name "Tok Pisin"
% https://en.wikipedia.org/wiki/Tok_Pisin
lang_ab ""
lang_term "tpi"
diff --git a/localedata/locales/tr_CY b/localedata/locales/tr_CY
index 63c3712813..072270bc4d 100644
--- a/localedata/locales/tr_CY
+++ b/localedata/locales/tr_CY
@@ -20,7 +20,7 @@ escape_char /
LC_IDENTIFICATION
title "Turkish language locale for Cyprus"
source "Free Software Foundation, Inc."
-address "http:////www.gnu.org//software//libc//"
+address "https:////www.gnu.org//software//libc//"
contact ""
email "bug-glibc-locales@gnu.org"
tel ""
diff --git a/localedata/locales/tr_TR b/localedata/locales/tr_TR
index f7c13ddf4b..52cb6c8676 100644
--- a/localedata/locales/tr_TR
+++ b/localedata/locales/tr_TR
@@ -43,7 +43,7 @@ fax ""
language "Turkish"
territory "Turkey"
revision "1.0"
-date "2018-06-20"
+date "2019-05-08"
category "i18n:2012";LC_IDENTIFICATION
category "i18n:2012";LC_CTYPE
@@ -127,7 +127,7 @@ END LC_COLLATE
LC_CTYPE
% The following is the 14652 i18n fdcc-set LC_CTYPE category.
-% It covers Unicode version 11.0.0.
+% It covers Unicode version 12.1.0.
% The character classes and mapping tables were automatically
% generated using the gen_unicode_ctype.py program.
@@ -209,7 +209,8 @@ upper /
<UA766>;<UA768>;<UA76A>;<UA76C>;<UA76E>;<UA779>;<UA77B>;<UA77D>..<UA77E>;/
<UA780>;<UA782>;<UA784>;<UA786>;<UA78B>;<UA78D>;<UA790>;<UA792>;<UA796>;/
<UA798>;<UA79A>;<UA79C>;<UA79E>;<UA7A0>;<UA7A2>;<UA7A4>;<UA7A6>;<UA7A8>;/
- <UA7AA>..<UA7AE>;<UA7B0>..<UA7B4>;<UA7B6>;<UA7B8>;<UFF21>..<UFF3A>;/
+ <UA7AA>..<UA7AE>;<UA7B0>..<UA7B4>;<UA7B6>;<UA7B8>;<UA7BA>;<UA7BC>;/
+ <UA7BE>;<UA7C2>;<UA7C4>..<UA7C6>;<UFF21>..<UFF3A>;/
<U00010400>..<U00010427>;<U000104B0>..<U000104D3>;/
<U00010C80>..<U00010CB2>;<U000118A0>..<U000118BF>;/
<U00016E40>..<U00016E5F>;<U0001D400>..<U0001D419>;/
@@ -309,24 +310,25 @@ lower /
<UA76D>;<UA76F>..<UA778>;<UA77A>;<UA77C>;<UA77F>;<UA781>;<UA783>;<UA785>;/
<UA787>;<UA78C>;<UA78E>;<UA791>;<UA793>..<UA795>;<UA797>;<UA799>;<UA79B>;/
<UA79D>;<UA79F>;<UA7A1>;<UA7A3>;<UA7A5>;<UA7A7>;<UA7A9>;<UA7AF>;<UA7B5>;/
- <UA7B7>;<UA7B9>;<UA7F8>..<UA7FA>;<UAB30>..<UAB5A>;<UAB5C>..<UAB65>;/
- <UAB70>..<UABBF>;<UFB00>..<UFB06>;<UFB13>..<UFB17>;<UFF41>..<UFF5A>;/
- <U00010428>..<U0001044F>;<U000104D8>..<U000104FB>;/
- <U00010CC0>..<U00010CF2>;<U000118C0>..<U000118DF>;/
- <U00016E60>..<U00016E7F>;<U0001D41A>..<U0001D433>;/
- <U0001D44E>..<U0001D454>;<U0001D456>..<U0001D467>;/
- <U0001D482>..<U0001D49B>;<U0001D4B6>..<U0001D4B9>;<U0001D4BB>;/
- <U0001D4BD>..<U0001D4C3>;<U0001D4C5>..<U0001D4CF>;/
- <U0001D4EA>..<U0001D503>;<U0001D51E>..<U0001D537>;/
- <U0001D552>..<U0001D56B>;<U0001D586>..<U0001D59F>;/
- <U0001D5BA>..<U0001D5D3>;<U0001D5EE>..<U0001D607>;/
- <U0001D622>..<U0001D63B>;<U0001D656>..<U0001D66F>;/
- <U0001D68A>..<U0001D6A5>;<U0001D6C2>..<U0001D6DA>;/
- <U0001D6DC>..<U0001D6E1>;<U0001D6FC>..<U0001D714>;/
- <U0001D716>..<U0001D71B>;<U0001D736>..<U0001D74E>;/
- <U0001D750>..<U0001D755>;<U0001D770>..<U0001D788>;/
- <U0001D78A>..<U0001D78F>;<U0001D7AA>..<U0001D7C2>;/
- <U0001D7C4>..<U0001D7C9>;<U0001D7CB>;<U0001E922>..<U0001E943>
+ <UA7B7>;<UA7B9>;<UA7BB>;<UA7BD>;<UA7BF>;<UA7C3>;<UA7F8>..<UA7FA>;/
+ <UAB30>..<UAB5A>;<UAB5C>..<UAB67>;<UAB70>..<UABBF>;<UFB00>..<UFB06>;/
+ <UFB13>..<UFB17>;<UFF41>..<UFF5A>;<U00010428>..<U0001044F>;/
+ <U000104D8>..<U000104FB>;<U00010CC0>..<U00010CF2>;/
+ <U000118C0>..<U000118DF>;<U00016E60>..<U00016E7F>;/
+ <U0001D41A>..<U0001D433>;<U0001D44E>..<U0001D454>;/
+ <U0001D456>..<U0001D467>;<U0001D482>..<U0001D49B>;/
+ <U0001D4B6>..<U0001D4B9>;<U0001D4BB>;<U0001D4BD>..<U0001D4C3>;/
+ <U0001D4C5>..<U0001D4CF>;<U0001D4EA>..<U0001D503>;/
+ <U0001D51E>..<U0001D537>;<U0001D552>..<U0001D56B>;/
+ <U0001D586>..<U0001D59F>;<U0001D5BA>..<U0001D5D3>;/
+ <U0001D5EE>..<U0001D607>;<U0001D622>..<U0001D63B>;/
+ <U0001D656>..<U0001D66F>;<U0001D68A>..<U0001D6A5>;/
+ <U0001D6C2>..<U0001D6DA>;<U0001D6DC>..<U0001D6E1>;/
+ <U0001D6FC>..<U0001D714>;<U0001D716>..<U0001D71B>;/
+ <U0001D736>..<U0001D74E>;<U0001D750>..<U0001D755>;/
+ <U0001D770>..<U0001D788>;<U0001D78A>..<U0001D78F>;/
+ <U0001D7AA>..<U0001D7C2>;<U0001D7C4>..<U0001D7C9>;<U0001D7CB>;/
+ <U0001E922>..<U0001E943>
% The "alpha" class of the "i18n" FDCC-set is reflecting
% the recommendations in TR 10176 annex A
@@ -376,61 +378,58 @@ alpha /
<U0D85>..<U0D96>;<U0D9A>..<U0DB1>;<U0DB3>..<U0DBB>;<U0DBD>;/
<U0DC0>..<U0DC6>;<U0DCF>..<U0DD4>;<U0DD6>;<U0DD8>..<U0DDF>;/
<U0DE6>..<U0DEF>;<U0DF2>..<U0DF3>;<U0E01>..<U0E3A>;<U0E40>..<U0E46>;/
- <U0E4D>;<U0E50>..<U0E59>;<U0E81>..<U0E82>;<U0E84>;<U0E87>..<U0E88>;/
- <U0E8A>;<U0E8D>;<U0E94>..<U0E97>;<U0E99>..<U0E9F>;<U0EA1>..<U0EA3>;/
- <U0EA5>;<U0EA7>;<U0EAA>..<U0EAB>;<U0EAD>..<U0EB9>;<U0EBB>..<U0EBD>;/
+ <U0E4D>;<U0E50>..<U0E59>;<U0E81>..<U0E82>;<U0E84>;<U0E86>..<U0E8A>;/
+ <U0E8C>..<U0EA3>;<U0EA5>;<U0EA7>..<U0EB9>;<U0EBB>..<U0EBD>;/
<U0EC0>..<U0EC4>;<U0EC6>;<U0ECD>;<U0ED0>..<U0ED9>;<U0EDC>..<U0EDF>;/
<U0F00>;<U0F20>..<U0F29>;<U0F40>..<U0F47>;<U0F49>..<U0F6C>;/
<U0F71>..<U0F81>;<U0F88>..<U0F97>;<U0F99>..<U0FBC>;<U1000>..<U1036>;/
- <U1038>;<U103B>..<U1049>;<U1050>..<U1062>;<U1065>..<U1068>;/
- <U106E>..<U1086>;<U108E>;<U1090>..<U1099>;<U109C>..<U109D>;/
- <U10A0>..<U10C5>;<U10C7>;<U10CD>;<U10D0>..<U10FA>;<U10FC>..<U1248>;/
- <U124A>..<U124D>;<U1250>..<U1256>;<U1258>;<U125A>..<U125D>;/
- <U1260>..<U1288>;<U128A>..<U128D>;<U1290>..<U12B0>;<U12B2>..<U12B5>;/
- <U12B8>..<U12BE>;<U12C0>;<U12C2>..<U12C5>;<U12C8>..<U12D6>;/
- <U12D8>..<U1310>;<U1312>..<U1315>;<U1318>..<U135A>;<U135F>;/
- <U1380>..<U138F>;<U13A0>..<U13F5>;<U13F8>..<U13FD>;<U1401>..<U166C>;/
- <U166F>..<U167F>;<U1681>..<U169A>;<U16A0>..<U16EA>;<U16EE>..<U16F8>;/
- <U1700>..<U170C>;<U170E>..<U1713>;<U1720>..<U1733>;<U1740>..<U1753>;/
- <U1760>..<U176C>;<U176E>..<U1770>;<U1772>..<U1773>;<U1780>..<U17B3>;/
- <U17B6>..<U17C8>;<U17D7>;<U17DC>;<U17E0>..<U17E9>;<U1810>..<U1819>;/
- <U1820>..<U1878>;<U1880>..<U18AA>;<U18B0>..<U18F5>;<U1900>..<U191E>;/
- <U1920>..<U192B>;<U1930>..<U1938>;<U1946>..<U196D>;<U1970>..<U1974>;/
- <U1980>..<U19AB>;<U19B0>..<U19C9>;<U19D0>..<U19D9>;<U1A00>..<U1A1B>;/
- <U1A20>..<U1A5E>;<U1A61>..<U1A74>;<U1A80>..<U1A89>;<U1A90>..<U1A99>;/
- <U1AA7>;<U1B00>..<U1B33>;<U1B35>..<U1B43>;<U1B45>..<U1B4B>;/
- <U1B50>..<U1B59>;<U1B80>..<U1BA9>;<U1BAC>..<U1BE5>;<U1BE7>..<U1BF1>;/
- <U1C00>..<U1C35>;<U1C40>..<U1C49>;<U1C4D>..<U1C7D>;<U1C80>..<U1C88>;/
- <U1C90>..<U1CBA>;<U1CBD>..<U1CBF>;<U1CE9>..<U1CEC>;<U1CEE>..<U1CF3>;/
- <U1CF5>..<U1CF6>;<U1D00>..<U1DBF>;<U1DE7>..<U1DF4>;<U1E00>..<U1F15>;/
- <U1F18>..<U1F1D>;<U1F20>..<U1F45>;<U1F48>..<U1F4D>;<U1F50>..<U1F57>;/
- <U1F59>;<U1F5B>;<U1F5D>;<U1F5F>..<U1F7D>;<U1F80>..<U1FB4>;/
- <U1FB6>..<U1FBC>;<U1FBE>;<U1FC2>..<U1FC4>;<U1FC6>..<U1FCC>;/
- <U1FD0>..<U1FD3>;<U1FD6>..<U1FDB>;<U1FE0>..<U1FEC>;<U1FF2>..<U1FF4>;/
- <U1FF6>..<U1FFC>;<U2071>;<U207F>;<U2090>..<U209C>;<U2102>;<U2107>;/
- <U210A>..<U2113>;<U2115>;<U2119>..<U211D>;<U2124>;<U2126>;<U2128>;/
- <U212A>..<U212D>;<U212F>..<U2139>;<U213C>..<U213F>;<U2145>..<U2149>;/
- <U214E>;<U2160>..<U2188>;<U24B6>..<U24E9>;<U2C00>..<U2C2E>;/
- <U2C30>..<U2C5E>;<U2C60>..<U2CE4>;<U2CEB>..<U2CEE>;<U2CF2>..<U2CF3>;/
- <U2D00>..<U2D25>;<U2D27>;<U2D2D>;<U2D30>..<U2D67>;<U2D6F>;/
- <U2D80>..<U2D96>;<U2DA0>..<U2DA6>;<U2DA8>..<U2DAE>;<U2DB0>..<U2DB6>;/
- <U2DB8>..<U2DBE>;<U2DC0>..<U2DC6>;<U2DC8>..<U2DCE>;<U2DD0>..<U2DD6>;/
- <U2DD8>..<U2DDE>;<U2DE0>..<U2DFF>;<U2E2F>;<U3005>..<U3007>;/
- <U3021>..<U3029>;<U3031>..<U3035>;<U3038>..<U303C>;<U3041>..<U3096>;/
- <U309D>..<U309F>;<U30A1>..<U30FA>;<U30FC>..<U30FF>;<U3105>..<U312F>;/
- <U3131>..<U318E>;<U31A0>..<U31BA>;<U31F0>..<U31FF>;<U3400>..<U4DB5>;/
- <U4E00>..<U9FEF>;<UA000>..<UA48C>;<UA4D0>..<UA4FD>;<UA500>..<UA60C>;/
- <UA610>..<UA62B>;<UA640>..<UA66E>;<UA674>..<UA67B>;<UA67F>..<UA6EF>;/
- <UA717>..<UA71F>;<UA722>..<UA788>;<UA78B>..<UA7B9>;<UA7F7>..<UA801>;/
- <UA803>..<UA805>;<UA807>..<UA80A>;<UA80C>..<UA827>;<UA840>..<UA873>;/
- <UA880>..<UA8C3>;<UA8C5>;<UA8D0>..<UA8D9>;<UA8F2>..<UA8F7>;<UA8FB>;/
- <UA8FD>..<UA8FE>;<UA900>..<UA92A>;<UA930>..<UA952>;<UA960>..<UA97C>;/
- <UA980>..<UA9B2>;<UA9B4>..<UA9BF>;<UA9CF>..<UA9D9>;<UA9E0>..<UA9E4>;/
- <UA9E6>..<UA9FE>;<UAA00>..<UAA36>;<UAA40>..<UAA4D>;<UAA50>..<UAA59>;/
- <UAA60>..<UAA76>;<UAA7A>;<UAA7E>..<UAABE>;<UAAC0>;<UAAC2>;/
+ <U1038>;<U103B>..<U1049>;<U1050>..<U109D>;<U10A0>..<U10C5>;<U10C7>;/
+ <U10CD>;<U10D0>..<U10FA>;<U10FC>..<U1248>;<U124A>..<U124D>;/
+ <U1250>..<U1256>;<U1258>;<U125A>..<U125D>;<U1260>..<U1288>;/
+ <U128A>..<U128D>;<U1290>..<U12B0>;<U12B2>..<U12B5>;<U12B8>..<U12BE>;/
+ <U12C0>;<U12C2>..<U12C5>;<U12C8>..<U12D6>;<U12D8>..<U1310>;/
+ <U1312>..<U1315>;<U1318>..<U135A>;<U1380>..<U138F>;<U13A0>..<U13F5>;/
+ <U13F8>..<U13FD>;<U1401>..<U166C>;<U166F>..<U167F>;<U1681>..<U169A>;/
+ <U16A0>..<U16EA>;<U16EE>..<U16F8>;<U1700>..<U170C>;<U170E>..<U1713>;/
+ <U1720>..<U1733>;<U1740>..<U1753>;<U1760>..<U176C>;<U176E>..<U1770>;/
+ <U1772>..<U1773>;<U1780>..<U17B3>;<U17B6>..<U17C8>;<U17D7>;<U17DC>;/
+ <U17E0>..<U17E9>;<U1810>..<U1819>;<U1820>..<U1878>;<U1880>..<U18AA>;/
+ <U18B0>..<U18F5>;<U1900>..<U191E>;<U1920>..<U192B>;<U1930>..<U1938>;/
+ <U1946>..<U196D>;<U1970>..<U1974>;<U1980>..<U19AB>;<U19B0>..<U19C9>;/
+ <U19D0>..<U19D9>;<U1A00>..<U1A1B>;<U1A20>..<U1A5E>;<U1A61>..<U1A74>;/
+ <U1A80>..<U1A89>;<U1A90>..<U1A99>;<U1AA7>;<U1B00>..<U1B33>;/
+ <U1B35>..<U1B43>;<U1B45>..<U1B4B>;<U1B50>..<U1B59>;<U1B80>..<U1BA9>;/
+ <U1BAC>..<U1BE5>;<U1BE7>..<U1BF1>;<U1C00>..<U1C36>;<U1C40>..<U1C49>;/
+ <U1C4D>..<U1C7D>;<U1C80>..<U1C88>;<U1C90>..<U1CBA>;<U1CBD>..<U1CBF>;/
+ <U1CE9>..<U1CEC>;<U1CEE>..<U1CF3>;<U1CF5>..<U1CF6>;<U1CFA>;/
+ <U1D00>..<U1DBF>;<U1DE7>..<U1DF4>;<U1E00>..<U1F15>;<U1F18>..<U1F1D>;/
+ <U1F20>..<U1F45>;<U1F48>..<U1F4D>;<U1F50>..<U1F57>;<U1F59>;<U1F5B>;/
+ <U1F5D>;<U1F5F>..<U1F7D>;<U1F80>..<U1FB4>;<U1FB6>..<U1FBC>;<U1FBE>;/
+ <U1FC2>..<U1FC4>;<U1FC6>..<U1FCC>;<U1FD0>..<U1FD3>;<U1FD6>..<U1FDB>;/
+ <U1FE0>..<U1FEC>;<U1FF2>..<U1FF4>;<U1FF6>..<U1FFC>;<U2071>;<U207F>;/
+ <U2090>..<U209C>;<U2102>;<U2107>;<U210A>..<U2113>;<U2115>;/
+ <U2119>..<U211D>;<U2124>;<U2126>;<U2128>;<U212A>..<U212D>;/
+ <U212F>..<U2139>;<U213C>..<U213F>;<U2145>..<U2149>;<U214E>;/
+ <U2160>..<U2188>;<U24B6>..<U24E9>;<U2C00>..<U2C2E>;<U2C30>..<U2C5E>;/
+ <U2C60>..<U2CE4>;<U2CEB>..<U2CEE>;<U2CF2>..<U2CF3>;<U2D00>..<U2D25>;/
+ <U2D27>;<U2D2D>;<U2D30>..<U2D67>;<U2D6F>;<U2D80>..<U2D96>;/
+ <U2DA0>..<U2DA6>;<U2DA8>..<U2DAE>;<U2DB0>..<U2DB6>;<U2DB8>..<U2DBE>;/
+ <U2DC0>..<U2DC6>;<U2DC8>..<U2DCE>;<U2DD0>..<U2DD6>;<U2DD8>..<U2DDE>;/
+ <U2DE0>..<U2DFF>;<U2E2F>;<U3005>..<U3007>;<U3021>..<U3029>;/
+ <U3031>..<U3035>;<U3038>..<U303C>;<U3041>..<U3096>;<U309D>..<U309F>;/
+ <U30A1>..<U30FA>;<U30FC>..<U30FF>;<U3105>..<U312F>;<U3131>..<U318E>;/
+ <U31A0>..<U31BA>;<U31F0>..<U31FF>;<U3400>..<U4DB5>;<U4E00>..<U9FEF>;/
+ <UA000>..<UA48C>;<UA4D0>..<UA4FD>;<UA500>..<UA60C>;<UA610>..<UA62B>;/
+ <UA640>..<UA66E>;<UA674>..<UA67B>;<UA67F>..<UA6EF>;<UA717>..<UA71F>;/
+ <UA722>..<UA788>;<UA78B>..<UA7BF>;<UA7C2>..<UA7C6>;<UA7F7>..<UA805>;/
+ <UA807>..<UA827>;<UA840>..<UA873>;<UA880>..<UA8C3>;<UA8C5>;/
+ <UA8D0>..<UA8D9>;<UA8F2>..<UA8F7>;<UA8FB>;<UA8FD>..<UA92A>;/
+ <UA930>..<UA952>;<UA960>..<UA97C>;<UA980>..<UA9B2>;<UA9B4>..<UA9BF>;/
+ <UA9CF>..<UA9D9>;<UA9E0>..<UA9FE>;<UAA00>..<UAA36>;<UAA40>..<UAA4D>;/
+ <UAA50>..<UAA59>;<UAA60>..<UAA76>;<UAA7A>..<UAABE>;<UAAC0>;<UAAC2>;/
<UAADB>..<UAADD>;<UAAE0>..<UAAEF>;<UAAF2>..<UAAF5>;<UAB01>..<UAB06>;/
<UAB09>..<UAB0E>;<UAB11>..<UAB16>;<UAB20>..<UAB26>;<UAB28>..<UAB2E>;/
- <UAB30>..<UAB5A>;<UAB5C>..<UAB65>;<UAB70>..<UABEA>;<UABF0>..<UABF9>;/
+ <UAB30>..<UAB5A>;<UAB5C>..<UAB67>;<UAB70>..<UABEA>;<UABF0>..<UABF9>;/
<UAC00>..<UD7A3>;<UD7B0>..<UD7C6>;<UD7CB>..<UD7FB>;<UF900>..<UFA6D>;/
<UFA70>..<UFAD9>;<UFB00>..<UFB06>;<UFB13>..<UFB17>;<UFB1D>..<UFB28>;/
<UFB2A>..<UFB36>;<UFB38>..<UFB3C>;<UFB3E>;<UFB40>..<UFB41>;/
@@ -467,77 +466,82 @@ alpha /
<U00010C80>..<U00010CB2>;<U00010CC0>..<U00010CF2>;/
<U00010D00>..<U00010D27>;<U00010D30>..<U00010D39>;/
<U00010F00>..<U00010F1C>;<U00010F27>;<U00010F30>..<U00010F45>;/
- <U00011000>..<U00011045>;<U00011066>..<U0001106F>;/
- <U00011082>..<U000110B8>;<U000110D0>..<U000110E8>;/
- <U000110F0>..<U000110F9>;<U00011100>..<U00011132>;/
- <U00011136>..<U0001113F>;<U00011144>..<U00011146>;/
- <U00011150>..<U00011172>;<U00011176>;<U00011180>..<U000111BF>;/
- <U000111C1>..<U000111C4>;<U000111D0>..<U000111DA>;<U000111DC>;/
- <U00011200>..<U00011211>;<U00011213>..<U00011234>;<U00011237>;/
- <U0001123E>;<U00011280>..<U00011286>;<U00011288>;/
- <U0001128A>..<U0001128D>;<U0001128F>..<U0001129D>;/
- <U0001129F>..<U000112A8>;<U000112B0>..<U000112E8>;/
- <U000112F0>..<U000112F9>;<U00011300>..<U00011303>;/
- <U00011305>..<U0001130C>;<U0001130F>..<U00011310>;/
- <U00011313>..<U00011328>;<U0001132A>..<U00011330>;/
- <U00011332>..<U00011333>;<U00011335>..<U00011339>;/
- <U0001133D>..<U00011344>;<U00011347>..<U00011348>;/
- <U0001134B>..<U0001134C>;<U00011350>;<U00011357>;/
- <U0001135D>..<U00011363>;<U00011400>..<U00011441>;/
+ <U00010FE0>..<U00010FF6>;<U00011000>..<U00011045>;/
+ <U00011066>..<U0001106F>;<U00011082>..<U000110B8>;/
+ <U000110D0>..<U000110E8>;<U000110F0>..<U000110F9>;/
+ <U00011100>..<U00011132>;<U00011136>..<U0001113F>;/
+ <U00011144>..<U00011146>;<U00011150>..<U00011172>;<U00011176>;/
+ <U00011180>..<U000111BF>;<U000111C1>..<U000111C4>;/
+ <U000111D0>..<U000111DA>;<U000111DC>;<U00011200>..<U00011211>;/
+ <U00011213>..<U00011234>;<U00011237>;<U0001123E>;/
+ <U00011280>..<U00011286>;<U00011288>;<U0001128A>..<U0001128D>;/
+ <U0001128F>..<U0001129D>;<U0001129F>..<U000112A8>;/
+ <U000112B0>..<U000112E8>;<U000112F0>..<U000112F9>;/
+ <U00011300>..<U00011303>;<U00011305>..<U0001130C>;/
+ <U0001130F>..<U00011310>;<U00011313>..<U00011328>;/
+ <U0001132A>..<U00011330>;<U00011332>..<U00011333>;/
+ <U00011335>..<U00011339>;<U0001133D>..<U00011344>;/
+ <U00011347>..<U00011348>;<U0001134B>..<U0001134C>;<U00011350>;/
+ <U00011357>;<U0001135D>..<U00011363>;<U00011400>..<U00011441>;/
<U00011443>..<U00011445>;<U00011447>..<U0001144A>;/
- <U00011450>..<U00011459>;<U00011480>..<U000114C1>;/
+ <U00011450>..<U00011459>;<U0001145F>;<U00011480>..<U000114C1>;/
<U000114C4>..<U000114C5>;<U000114C7>;<U000114D0>..<U000114D9>;/
<U00011580>..<U000115B5>;<U000115B8>..<U000115BE>;/
<U000115D8>..<U000115DD>;<U00011600>..<U0001163E>;<U00011640>;/
<U00011644>;<U00011650>..<U00011659>;<U00011680>..<U000116B5>;/
- <U000116C0>..<U000116C9>;<U00011700>..<U0001171A>;/
+ <U000116B8>;<U000116C0>..<U000116C9>;<U00011700>..<U0001171A>;/
<U0001171D>..<U0001172A>;<U00011730>..<U00011739>;/
<U00011800>..<U00011838>;<U000118A0>..<U000118E9>;<U000118FF>;/
+ <U000119A0>..<U000119A7>;<U000119AA>..<U000119D7>;/
+ <U000119DA>..<U000119DF>;<U000119E1>;<U000119E3>..<U000119E4>;/
<U00011A00>..<U00011A32>;<U00011A35>..<U00011A3E>;/
- <U00011A50>..<U00011A83>;<U00011A86>..<U00011A97>;<U00011A9D>;/
- <U00011AC0>..<U00011AF8>;<U00011C00>..<U00011C08>;/
- <U00011C0A>..<U00011C36>;<U00011C38>..<U00011C3E>;<U00011C40>;/
- <U00011C50>..<U00011C59>;<U00011C72>..<U00011C8F>;/
- <U00011C92>..<U00011CA7>;<U00011CA9>..<U00011CB6>;/
- <U00011D00>..<U00011D06>;<U00011D08>..<U00011D09>;/
- <U00011D0B>..<U00011D36>;<U00011D3A>;<U00011D3C>..<U00011D3D>;/
- <U00011D3F>..<U00011D41>;<U00011D43>;<U00011D46>..<U00011D47>;/
- <U00011D50>..<U00011D59>;<U00011D60>..<U00011D65>;/
- <U00011D67>..<U00011D68>;<U00011D6A>..<U00011D8E>;/
- <U00011D90>..<U00011D91>;<U00011D93>..<U00011D96>;<U00011D98>;/
- <U00011DA0>..<U00011DA9>;<U00011EE0>..<U00011EF6>;/
- <U00012000>..<U00012399>;<U00012400>..<U0001246E>;/
- <U00012480>..<U00012543>;<U00013000>..<U0001342E>;/
- <U00014400>..<U00014646>;<U00016800>..<U00016A38>;/
- <U00016A40>..<U00016A5E>;<U00016A60>..<U00016A69>;/
- <U00016AD0>..<U00016AED>;<U00016B00>..<U00016B36>;/
- <U00016B40>..<U00016B43>;<U00016B50>..<U00016B59>;/
- <U00016B63>..<U00016B77>;<U00016B7D>..<U00016B8F>;/
- <U00016E40>..<U00016E7F>;<U00016F00>..<U00016F44>;/
- <U00016F50>..<U00016F7E>;<U00016F93>..<U00016F9F>;/
- <U00016FE0>..<U00016FE1>;<U00017000>..<U000187F1>;/
- <U00018800>..<U00018AF2>;<U0001B000>..<U0001B11E>;/
- <U0001B170>..<U0001B2FB>;<U0001BC00>..<U0001BC6A>;/
- <U0001BC70>..<U0001BC7C>;<U0001BC80>..<U0001BC88>;/
- <U0001BC90>..<U0001BC99>;<U0001BC9E>;<U0001D400>..<U0001D454>;/
- <U0001D456>..<U0001D49C>;<U0001D49E>..<U0001D49F>;<U0001D4A2>;/
- <U0001D4A5>..<U0001D4A6>;<U0001D4A9>..<U0001D4AC>;/
- <U0001D4AE>..<U0001D4B9>;<U0001D4BB>;<U0001D4BD>..<U0001D4C3>;/
- <U0001D4C5>..<U0001D505>;<U0001D507>..<U0001D50A>;/
- <U0001D50D>..<U0001D514>;<U0001D516>..<U0001D51C>;/
- <U0001D51E>..<U0001D539>;<U0001D53B>..<U0001D53E>;/
- <U0001D540>..<U0001D544>;<U0001D546>;<U0001D54A>..<U0001D550>;/
- <U0001D552>..<U0001D6A5>;<U0001D6A8>..<U0001D6C0>;/
- <U0001D6C2>..<U0001D6DA>;<U0001D6DC>..<U0001D6FA>;/
- <U0001D6FC>..<U0001D714>;<U0001D716>..<U0001D734>;/
- <U0001D736>..<U0001D74E>;<U0001D750>..<U0001D76E>;/
- <U0001D770>..<U0001D788>;<U0001D78A>..<U0001D7A8>;/
- <U0001D7AA>..<U0001D7C2>;<U0001D7C4>..<U0001D7CB>;/
- <U0001D7CE>..<U0001D7FF>;<U0001E000>..<U0001E006>;/
- <U0001E008>..<U0001E018>;<U0001E01B>..<U0001E021>;/
- <U0001E023>..<U0001E024>;<U0001E026>..<U0001E02A>;/
+ <U00011A50>..<U00011A97>;<U00011A9D>;<U00011AC0>..<U00011AF8>;/
+ <U00011C00>..<U00011C08>;<U00011C0A>..<U00011C36>;/
+ <U00011C38>..<U00011C3E>;<U00011C40>;<U00011C50>..<U00011C59>;/
+ <U00011C72>..<U00011C8F>;<U00011C92>..<U00011CA7>;/
+ <U00011CA9>..<U00011CB6>;<U00011D00>..<U00011D06>;/
+ <U00011D08>..<U00011D09>;<U00011D0B>..<U00011D36>;<U00011D3A>;/
+ <U00011D3C>..<U00011D3D>;<U00011D3F>..<U00011D41>;<U00011D43>;/
+ <U00011D46>..<U00011D47>;<U00011D50>..<U00011D59>;/
+ <U00011D60>..<U00011D65>;<U00011D67>..<U00011D68>;/
+ <U00011D6A>..<U00011D8E>;<U00011D90>..<U00011D91>;/
+ <U00011D93>..<U00011D96>;<U00011D98>;<U00011DA0>..<U00011DA9>;/
+ <U00011EE0>..<U00011EF6>;<U00012000>..<U00012399>;/
+ <U00012400>..<U0001246E>;<U00012480>..<U00012543>;/
+ <U00013000>..<U0001342E>;<U00014400>..<U00014646>;/
+ <U00016800>..<U00016A38>;<U00016A40>..<U00016A5E>;/
+ <U00016A60>..<U00016A69>;<U00016AD0>..<U00016AED>;/
+ <U00016B00>..<U00016B2F>;<U00016B40>..<U00016B43>;/
+ <U00016B50>..<U00016B59>;<U00016B63>..<U00016B77>;/
+ <U00016B7D>..<U00016B8F>;<U00016E40>..<U00016E7F>;/
+ <U00016F00>..<U00016F4A>;<U00016F4F>..<U00016F87>;/
+ <U00016F8F>..<U00016F9F>;<U00016FE0>..<U00016FE1>;<U00016FE3>;/
+ <U00017000>..<U000187F7>;<U00018800>..<U00018AF2>;/
+ <U0001B000>..<U0001B11E>;<U0001B150>..<U0001B152>;/
+ <U0001B164>..<U0001B167>;<U0001B170>..<U0001B2FB>;/
+ <U0001BC00>..<U0001BC6A>;<U0001BC70>..<U0001BC7C>;/
+ <U0001BC80>..<U0001BC88>;<U0001BC90>..<U0001BC99>;<U0001BC9E>;/
+ <U0001D400>..<U0001D454>;<U0001D456>..<U0001D49C>;/
+ <U0001D49E>..<U0001D49F>;<U0001D4A2>;<U0001D4A5>..<U0001D4A6>;/
+ <U0001D4A9>..<U0001D4AC>;<U0001D4AE>..<U0001D4B9>;<U0001D4BB>;/
+ <U0001D4BD>..<U0001D4C3>;<U0001D4C5>..<U0001D505>;/
+ <U0001D507>..<U0001D50A>;<U0001D50D>..<U0001D514>;/
+ <U0001D516>..<U0001D51C>;<U0001D51E>..<U0001D539>;/
+ <U0001D53B>..<U0001D53E>;<U0001D540>..<U0001D544>;<U0001D546>;/
+ <U0001D54A>..<U0001D550>;<U0001D552>..<U0001D6A5>;/
+ <U0001D6A8>..<U0001D6C0>;<U0001D6C2>..<U0001D6DA>;/
+ <U0001D6DC>..<U0001D6FA>;<U0001D6FC>..<U0001D714>;/
+ <U0001D716>..<U0001D734>;<U0001D736>..<U0001D74E>;/
+ <U0001D750>..<U0001D76E>;<U0001D770>..<U0001D788>;/
+ <U0001D78A>..<U0001D7A8>;<U0001D7AA>..<U0001D7C2>;/
+ <U0001D7C4>..<U0001D7CB>;<U0001D7CE>..<U0001D7FF>;/
+ <U0001E000>..<U0001E006>;<U0001E008>..<U0001E018>;/
+ <U0001E01B>..<U0001E021>;<U0001E023>..<U0001E024>;/
+ <U0001E026>..<U0001E02A>;<U0001E100>..<U0001E12C>;/
+ <U0001E137>..<U0001E13D>;<U0001E140>..<U0001E149>;<U0001E14E>;/
+ <U0001E2C0>..<U0001E2EB>;<U0001E2F0>..<U0001E2F9>;/
<U0001E800>..<U0001E8C4>;<U0001E900>..<U0001E943>;<U0001E947>;/
- <U0001E950>..<U0001E959>;<U0001EE00>..<U0001EE03>;/
+ <U0001E94B>;<U0001E950>..<U0001E959>;<U0001EE00>..<U0001EE03>;/
<U0001EE05>..<U0001EE1F>;<U0001EE21>..<U0001EE22>;<U0001EE24>;/
<U0001EE27>;<U0001EE29>..<U0001EE32>;<U0001EE34>..<U0001EE37>;/
<U0001EE39>;<U0001EE3B>;<U0001EE42>;<U0001EE47>;<U0001EE49>;<U0001EE4B>;/
@@ -589,51 +593,48 @@ punct /
<U09F2>..<U09FB>;<U09FD>..<U09FE>;<U0A3C>;<U0A4D>;<U0A76>;<U0ABC>;/
<U0ACD>;<U0AF0>..<U0AF1>;<U0AFD>..<U0AFF>;<U0B3C>;<U0B4D>;<U0B70>;/
<U0B72>..<U0B77>;<U0BCD>;<U0BF0>..<U0BFA>;<U0C04>;<U0C4D>;/
- <U0C78>..<U0C7F>;<U0C84>;<U0CBC>;<U0CCD>;<U0D3B>..<U0D3C>;<U0D4D>;/
+ <U0C77>..<U0C7F>;<U0C84>;<U0CBC>;<U0CCD>;<U0D3B>..<U0D3C>;<U0D4D>;/
<U0D4F>;<U0D58>..<U0D5E>;<U0D70>..<U0D79>;<U0DCA>;<U0DF4>;<U0E3F>;/
- <U0E47>..<U0E4C>;<U0E4E>..<U0E4F>;<U0E5A>..<U0E5B>;<U0EC8>..<U0ECC>;/
- <U0F01>..<U0F1F>;<U0F2A>..<U0F3F>;<U0F82>..<U0F87>;<U0FBE>..<U0FCC>;/
- <U0FCE>..<U0FDA>;<U1037>;<U1039>..<U103A>;<U104A>..<U104F>;/
- <U1063>..<U1064>;<U1069>..<U106D>;<U1087>..<U108D>;<U108F>;/
- <U109A>..<U109B>;<U109E>..<U109F>;<U10FB>;<U135D>..<U135E>;/
- <U1360>..<U137C>;<U1390>..<U1399>;<U1400>;<U166D>..<U166E>;/
- <U169B>..<U169C>;<U16EB>..<U16ED>;<U1714>;<U1734>..<U1736>;/
- <U17B4>..<U17B5>;<U17C9>..<U17D6>;<U17D8>..<U17DB>;<U17DD>;/
- <U17F0>..<U17F9>;<U1800>..<U180E>;<U1939>..<U193B>;<U1940>;/
- <U1944>..<U1945>;<U19DA>;<U19DE>..<U19FF>;<U1A1E>..<U1A1F>;<U1A60>;/
- <U1A75>..<U1A7C>;<U1A7F>;<U1AA0>..<U1AA6>;<U1AA8>..<U1AAD>;/
- <U1AB0>..<U1ABE>;<U1B34>;<U1B44>;<U1B5A>..<U1B7C>;<U1BAA>..<U1BAB>;/
- <U1BE6>;<U1BF2>..<U1BF3>;<U1BFC>..<U1BFF>;<U1C36>..<U1C37>;/
- <U1C3B>..<U1C3F>;<U1C7E>..<U1C7F>;<U1CC0>..<U1CC7>;<U1CD0>..<U1CE8>;/
- <U1CED>;<U1CF4>;<U1CF7>..<U1CF9>;<U1DC0>..<U1DE6>;<U1DF5>..<U1DF9>;/
- <U1DFB>..<U1DFF>;<U1FBD>;<U1FBF>..<U1FC1>;<U1FCD>..<U1FCF>;/
- <U1FDD>..<U1FDF>;<U1FED>..<U1FEF>;<U1FFD>..<U1FFE>;<U2007>;/
- <U200B>..<U2027>;<U202A>..<U205E>;<U2060>..<U2064>;<U2066>..<U2070>;/
- <U2074>..<U207E>;<U2080>..<U208E>;<U20A0>..<U20BF>;<U20D0>..<U20F0>;/
- <U2100>..<U2101>;<U2103>..<U2106>;<U2108>..<U2109>;<U2114>;/
- <U2116>..<U2118>;<U211E>..<U2123>;<U2125>;<U2127>;<U2129>;<U212E>;/
- <U213A>..<U213B>;<U2140>..<U2144>;<U214A>..<U214D>;<U214F>..<U215F>;/
- <U2189>..<U218B>;<U2190>..<U2426>;<U2440>..<U244A>;<U2460>..<U24B5>;/
- <U24EA>..<U2B73>;<U2B76>..<U2B95>;<U2B98>..<U2BC8>;<U2BCA>..<U2BFE>;/
- <U2CE5>..<U2CEA>;<U2CEF>..<U2CF1>;<U2CF9>..<U2CFF>;<U2D70>;<U2D7F>;/
- <U2E00>..<U2E2E>;<U2E30>..<U2E4E>;<U2E80>..<U2E99>;<U2E9B>..<U2EF3>;/
- <U2F00>..<U2FD5>;<U2FF0>..<U2FFB>;<U3001>..<U3004>;<U3008>..<U3020>;/
- <U302A>..<U3030>;<U3036>..<U3037>;<U303D>..<U303F>;<U3099>..<U309C>;/
- <U30A0>;<U30FB>;<U3190>..<U319F>;<U31C0>..<U31E3>;<U3200>..<U321E>;/
- <U3220>..<U32FE>;<U3300>..<U33FF>;<U4DC0>..<U4DFF>;<UA490>..<UA4C6>;/
+ <U0E47>..<U0E4C>;<U0E4E>..<U0E4F>;<U0E5A>..<U0E5B>;<U0EBA>;/
+ <U0EC8>..<U0ECC>;<U0F01>..<U0F1F>;<U0F2A>..<U0F3F>;<U0F82>..<U0F87>;/
+ <U0FBE>..<U0FCC>;<U0FCE>..<U0FDA>;<U1037>;<U1039>..<U103A>;/
+ <U104A>..<U104F>;<U109E>..<U109F>;<U10FB>;<U135D>..<U137C>;/
+ <U1390>..<U1399>;<U1400>;<U166D>..<U166E>;<U169B>..<U169C>;/
+ <U16EB>..<U16ED>;<U1714>;<U1734>..<U1736>;<U17B4>..<U17B5>;/
+ <U17C9>..<U17D6>;<U17D8>..<U17DB>;<U17DD>;<U17F0>..<U17F9>;/
+ <U1800>..<U180E>;<U1939>..<U193B>;<U1940>;<U1944>..<U1945>;<U19DA>;/
+ <U19DE>..<U19FF>;<U1A1E>..<U1A1F>;<U1A60>;<U1A75>..<U1A7C>;<U1A7F>;/
+ <U1AA0>..<U1AA6>;<U1AA8>..<U1AAD>;<U1AB0>..<U1ABE>;<U1B34>;<U1B44>;/
+ <U1B5A>..<U1B7C>;<U1BAA>..<U1BAB>;<U1BE6>;<U1BF2>..<U1BF3>;/
+ <U1BFC>..<U1BFF>;<U1C37>;<U1C3B>..<U1C3F>;<U1C7E>..<U1C7F>;/
+ <U1CC0>..<U1CC7>;<U1CD0>..<U1CE8>;<U1CED>;<U1CF4>;<U1CF7>..<U1CF9>;/
+ <U1DC0>..<U1DE6>;<U1DF5>..<U1DF9>;<U1DFB>..<U1DFF>;<U1FBD>;/
+ <U1FBF>..<U1FC1>;<U1FCD>..<U1FCF>;<U1FDD>..<U1FDF>;<U1FED>..<U1FEF>;/
+ <U1FFD>..<U1FFE>;<U2007>;<U200B>..<U2027>;<U202A>..<U205E>;/
+ <U2060>..<U2064>;<U2066>..<U2070>;<U2074>..<U207E>;<U2080>..<U208E>;/
+ <U20A0>..<U20BF>;<U20D0>..<U20F0>;<U2100>..<U2101>;<U2103>..<U2106>;/
+ <U2108>..<U2109>;<U2114>;<U2116>..<U2118>;<U211E>..<U2123>;<U2125>;/
+ <U2127>;<U2129>;<U212E>;<U213A>..<U213B>;<U2140>..<U2144>;/
+ <U214A>..<U214D>;<U214F>..<U215F>;<U2189>..<U218B>;<U2190>..<U2426>;/
+ <U2440>..<U244A>;<U2460>..<U24B5>;<U24EA>..<U2B73>;<U2B76>..<U2B95>;/
+ <U2B98>..<U2BFF>;<U2CE5>..<U2CEA>;<U2CEF>..<U2CF1>;<U2CF9>..<U2CFF>;/
+ <U2D70>;<U2D7F>;<U2E00>..<U2E2E>;<U2E30>..<U2E4F>;<U2E80>..<U2E99>;/
+ <U2E9B>..<U2EF3>;<U2F00>..<U2FD5>;<U2FF0>..<U2FFB>;<U3001>..<U3004>;/
+ <U3008>..<U3020>;<U302A>..<U3030>;<U3036>..<U3037>;<U303D>..<U303F>;/
+ <U3099>..<U309C>;<U30A0>;<U30FB>;<U3190>..<U319F>;<U31C0>..<U31E3>;/
+ <U3200>..<U321E>;<U3220>..<U33FF>;<U4DC0>..<U4DFF>;<UA490>..<UA4C6>;/
<UA4FE>..<UA4FF>;<UA60D>..<UA60F>;<UA66F>..<UA673>;<UA67C>..<UA67E>;/
<UA6F0>..<UA6F7>;<UA700>..<UA716>;<UA720>..<UA721>;<UA789>..<UA78A>;/
- <UA802>;<UA806>;<UA80B>;<UA828>..<UA82B>;<UA830>..<UA839>;/
- <UA874>..<UA877>;<UA8C4>;<UA8CE>..<UA8CF>;<UA8E0>..<UA8F1>;/
- <UA8F8>..<UA8FA>;<UA8FC>;<UA8FF>;<UA92B>..<UA92F>;<UA953>;<UA95F>;/
- <UA9B3>;<UA9C0>..<UA9CD>;<UA9DE>..<UA9DF>;<UA9E5>;<UAA5C>..<UAA5F>;/
- <UAA77>..<UAA79>;<UAA7B>..<UAA7D>;<UAABF>;<UAAC1>;<UAADE>..<UAADF>;/
- <UAAF0>..<UAAF1>;<UAAF6>;<UAB5B>;<UABEB>..<UABED>;<UE000>..<UF8FF>;/
- <UFB29>;<UFBB2>..<UFBC1>;<UFD3E>..<UFD3F>;<UFDFC>..<UFDFD>;/
- <UFE00>..<UFE19>;<UFE20>..<UFE52>;<UFE54>..<UFE66>;<UFE68>..<UFE6B>;/
- <UFEFF>;<UFF01>..<UFF0F>;<UFF1A>..<UFF20>;<UFF3B>..<UFF40>;/
- <UFF5B>..<UFF65>;<UFFE0>..<UFFE6>;<UFFE8>..<UFFEE>;<UFFF9>..<UFFFD>;/
- <U00010100>..<U00010102>;<U00010107>..<U00010133>;/
+ <UA806>;<UA828>..<UA82B>;<UA830>..<UA839>;<UA874>..<UA877>;<UA8C4>;/
+ <UA8CE>..<UA8CF>;<UA8E0>..<UA8F1>;<UA8F8>..<UA8FA>;<UA8FC>;/
+ <UA92B>..<UA92F>;<UA953>;<UA95F>;<UA9B3>;<UA9C0>..<UA9CD>;/
+ <UA9DE>..<UA9DF>;<UAA5C>..<UAA5F>;<UAA77>..<UAA79>;<UAABF>;<UAAC1>;/
+ <UAADE>..<UAADF>;<UAAF0>..<UAAF1>;<UAAF6>;<UAB5B>;<UABEB>..<UABED>;/
+ <UE000>..<UF8FF>;<UFB29>;<UFBB2>..<UFBC1>;<UFD3E>..<UFD3F>;/
+ <UFDFC>..<UFDFD>;<UFE00>..<UFE19>;<UFE20>..<UFE52>;<UFE54>..<UFE66>;/
+ <UFE68>..<UFE6B>;<UFEFF>;<UFF01>..<UFF0F>;<UFF1A>..<UFF20>;/
+ <UFF3B>..<UFF40>;<UFF5B>..<UFF65>;<UFFE0>..<UFFE6>;<UFFE8>..<UFFEE>;/
+ <UFFF9>..<UFFFD>;<U00010100>..<U00010102>;<U00010107>..<U00010133>;/
<U00010137>..<U0001013F>;<U00010175>..<U0001018E>;/
<U00010190>..<U0001019B>;<U000101A0>;<U000101D0>..<U000101FD>;/
<U000102E0>..<U000102FB>;<U00010320>..<U00010323>;<U0001039F>;/
@@ -662,44 +663,48 @@ punct /
<U000114C2>..<U000114C3>;<U000114C6>;<U000115BF>..<U000115D7>;/
<U0001163F>;<U00011641>..<U00011643>;<U00011660>..<U0001166C>;/
<U000116B6>..<U000116B7>;<U0001172B>;<U0001173A>..<U0001173F>;/
- <U00011839>..<U0001183B>;<U000118EA>..<U000118F2>;/
- <U00011A33>..<U00011A34>;<U00011A3F>..<U00011A47>;/
+ <U00011839>..<U0001183B>;<U000118EA>..<U000118F2>;<U000119E0>;/
+ <U000119E2>;<U00011A33>..<U00011A34>;<U00011A3F>..<U00011A47>;/
<U00011A98>..<U00011A9C>;<U00011A9E>..<U00011AA2>;<U00011C3F>;/
<U00011C41>..<U00011C45>;<U00011C5A>..<U00011C6C>;/
<U00011C70>..<U00011C71>;<U00011D42>;<U00011D44>..<U00011D45>;/
- <U00011D97>;<U00011EF7>..<U00011EF8>;<U00012470>..<U00012474>;/
+ <U00011D97>;<U00011EF7>..<U00011EF8>;<U00011FC0>..<U00011FF1>;/
+ <U00011FFF>;<U00012470>..<U00012474>;<U00013430>..<U00013438>;/
<U00016A6E>..<U00016A6F>;<U00016AF0>..<U00016AF5>;/
- <U00016B37>..<U00016B3F>;<U00016B44>..<U00016B45>;/
- <U00016B5B>..<U00016B61>;<U00016E80>..<U00016E9A>;/
- <U00016F8F>..<U00016F92>;<U0001BC9C>..<U0001BC9D>;/
- <U0001BC9F>..<U0001BCA3>;<U0001D000>..<U0001D0F5>;/
- <U0001D100>..<U0001D126>;<U0001D129>..<U0001D1E8>;/
- <U0001D200>..<U0001D245>;<U0001D2E0>..<U0001D2F3>;/
- <U0001D300>..<U0001D356>;<U0001D360>..<U0001D378>;<U0001D6C1>;/
- <U0001D6DB>;<U0001D6FB>;<U0001D715>;<U0001D735>;<U0001D74F>;<U0001D76F>;/
- <U0001D789>;<U0001D7A9>;<U0001D7C3>;<U0001D800>..<U0001DA8B>;/
- <U0001DA9B>..<U0001DA9F>;<U0001DAA1>..<U0001DAAF>;/
- <U0001E8C7>..<U0001E8D6>;<U0001E944>..<U0001E946>;/
- <U0001E948>..<U0001E94A>;<U0001E95E>..<U0001E95F>;/
- <U0001EC71>..<U0001ECB4>;<U0001EEF0>..<U0001EEF1>;/
+ <U00016B30>..<U00016B3F>;<U00016B44>..<U00016B45>;/
+ <U00016B5B>..<U00016B61>;<U00016E80>..<U00016E9A>;<U00016FE2>;/
+ <U0001BC9C>..<U0001BC9D>;<U0001BC9F>..<U0001BCA3>;/
+ <U0001D000>..<U0001D0F5>;<U0001D100>..<U0001D126>;/
+ <U0001D129>..<U0001D1E8>;<U0001D200>..<U0001D245>;/
+ <U0001D2E0>..<U0001D2F3>;<U0001D300>..<U0001D356>;/
+ <U0001D360>..<U0001D378>;<U0001D6C1>;<U0001D6DB>;<U0001D6FB>;<U0001D715>;/
+ <U0001D735>;<U0001D74F>;<U0001D76F>;<U0001D789>;<U0001D7A9>;<U0001D7C3>;/
+ <U0001D800>..<U0001DA8B>;<U0001DA9B>..<U0001DA9F>;/
+ <U0001DAA1>..<U0001DAAF>;<U0001E130>..<U0001E136>;<U0001E14F>;/
+ <U0001E2EC>..<U0001E2EF>;<U0001E2FF>;<U0001E8C7>..<U0001E8D6>;/
+ <U0001E944>..<U0001E946>;<U0001E948>..<U0001E94A>;/
+ <U0001E95E>..<U0001E95F>;<U0001EC71>..<U0001ECB4>;/
+ <U0001ED01>..<U0001ED3D>;<U0001EEF0>..<U0001EEF1>;/
<U0001F000>..<U0001F02B>;<U0001F030>..<U0001F093>;/
<U0001F0A0>..<U0001F0AE>;<U0001F0B1>..<U0001F0BF>;/
<U0001F0C1>..<U0001F0CF>;<U0001F0D1>..<U0001F0F5>;/
<U0001F100>..<U0001F10C>;<U0001F110>..<U0001F12F>;/
- <U0001F14A>..<U0001F14F>;<U0001F16A>..<U0001F16B>;/
+ <U0001F14A>..<U0001F14F>;<U0001F16A>..<U0001F16C>;/
<U0001F18A>..<U0001F1AC>;<U0001F1E6>..<U0001F202>;/
<U0001F210>..<U0001F23B>;<U0001F240>..<U0001F248>;/
<U0001F250>..<U0001F251>;<U0001F260>..<U0001F265>;/
- <U0001F300>..<U0001F6D4>;<U0001F6E0>..<U0001F6EC>;/
- <U0001F6F0>..<U0001F6F9>;<U0001F700>..<U0001F773>;/
- <U0001F780>..<U0001F7D8>;<U0001F800>..<U0001F80B>;/
- <U0001F810>..<U0001F847>;<U0001F850>..<U0001F859>;/
- <U0001F860>..<U0001F887>;<U0001F890>..<U0001F8AD>;/
- <U0001F900>..<U0001F90B>;<U0001F910>..<U0001F93E>;/
- <U0001F940>..<U0001F970>;<U0001F973>..<U0001F976>;<U0001F97A>;/
- <U0001F97C>..<U0001F9A2>;<U0001F9B0>..<U0001F9B9>;/
- <U0001F9C0>..<U0001F9C2>;<U0001F9D0>..<U0001F9FF>;/
- <U0001FA60>..<U0001FA6D>;<U000E0001>;<U000E0020>..<U000E007F>;/
+ <U0001F300>..<U0001F6D5>;<U0001F6E0>..<U0001F6EC>;/
+ <U0001F6F0>..<U0001F6FA>;<U0001F700>..<U0001F773>;/
+ <U0001F780>..<U0001F7D8>;<U0001F7E0>..<U0001F7EB>;/
+ <U0001F800>..<U0001F80B>;<U0001F810>..<U0001F847>;/
+ <U0001F850>..<U0001F859>;<U0001F860>..<U0001F887>;/
+ <U0001F890>..<U0001F8AD>;<U0001F900>..<U0001F90B>;/
+ <U0001F90D>..<U0001F971>;<U0001F973>..<U0001F976>;/
+ <U0001F97A>..<U0001F9A2>;<U0001F9A5>..<U0001F9AA>;/
+ <U0001F9AE>..<U0001F9CA>;<U0001F9CD>..<U0001FA53>;/
+ <U0001FA60>..<U0001FA6D>;<U0001FA70>..<U0001FA73>;/
+ <U0001FA78>..<U0001FA7A>;<U0001FA80>..<U0001FA82>;/
+ <U0001FA90>..<U0001FA95>;<U000E0001>;<U000E0020>..<U000E007F>;/
<U000E0100>..<U000E01EF>;<U000F0000>..<U000FFFFD>;/
<U00100000>..<U0010FFFD>
@@ -731,7 +736,7 @@ graph /
<U0BD0>;<U0BD7>;<U0BE6>..<U0BFA>;<U0C00>..<U0C0C>;<U0C0E>..<U0C10>;/
<U0C12>..<U0C28>;<U0C2A>..<U0C39>;<U0C3D>..<U0C44>;<U0C46>..<U0C48>;/
<U0C4A>..<U0C4D>;<U0C55>..<U0C56>;<U0C58>..<U0C5A>;<U0C60>..<U0C63>;/
- <U0C66>..<U0C6F>;<U0C78>..<U0C8C>;<U0C8E>..<U0C90>;<U0C92>..<U0CA8>;/
+ <U0C66>..<U0C6F>;<U0C77>..<U0C8C>;<U0C8E>..<U0C90>;<U0C92>..<U0CA8>;/
<U0CAA>..<U0CB3>;<U0CB5>..<U0CB9>;<U0CBC>..<U0CC4>;<U0CC6>..<U0CC8>;/
<U0CCA>..<U0CCD>;<U0CD5>..<U0CD6>;<U0CDE>;<U0CE0>..<U0CE3>;/
<U0CE6>..<U0CEF>;<U0CF1>..<U0CF2>;<U0D00>..<U0D03>;<U0D05>..<U0D0C>;/
@@ -740,50 +745,48 @@ graph /
<U0D9A>..<U0DB1>;<U0DB3>..<U0DBB>;<U0DBD>;<U0DC0>..<U0DC6>;<U0DCA>;/
<U0DCF>..<U0DD4>;<U0DD6>;<U0DD8>..<U0DDF>;<U0DE6>..<U0DEF>;/
<U0DF2>..<U0DF4>;<U0E01>..<U0E3A>;<U0E3F>..<U0E5B>;<U0E81>..<U0E82>;/
- <U0E84>;<U0E87>..<U0E88>;<U0E8A>;<U0E8D>;<U0E94>..<U0E97>;/
- <U0E99>..<U0E9F>;<U0EA1>..<U0EA3>;<U0EA5>;<U0EA7>;<U0EAA>..<U0EAB>;/
- <U0EAD>..<U0EB9>;<U0EBB>..<U0EBD>;<U0EC0>..<U0EC4>;<U0EC6>;/
- <U0EC8>..<U0ECD>;<U0ED0>..<U0ED9>;<U0EDC>..<U0EDF>;<U0F00>..<U0F47>;/
- <U0F49>..<U0F6C>;<U0F71>..<U0F97>;<U0F99>..<U0FBC>;<U0FBE>..<U0FCC>;/
- <U0FCE>..<U0FDA>;<U1000>..<U10C5>;<U10C7>;<U10CD>;<U10D0>..<U1248>;/
- <U124A>..<U124D>;<U1250>..<U1256>;<U1258>;<U125A>..<U125D>;/
- <U1260>..<U1288>;<U128A>..<U128D>;<U1290>..<U12B0>;<U12B2>..<U12B5>;/
- <U12B8>..<U12BE>;<U12C0>;<U12C2>..<U12C5>;<U12C8>..<U12D6>;/
- <U12D8>..<U1310>;<U1312>..<U1315>;<U1318>..<U135A>;<U135D>..<U137C>;/
- <U1380>..<U1399>;<U13A0>..<U13F5>;<U13F8>..<U13FD>;<U1400>..<U167F>;/
- <U1681>..<U169C>;<U16A0>..<U16F8>;<U1700>..<U170C>;<U170E>..<U1714>;/
- <U1720>..<U1736>;<U1740>..<U1753>;<U1760>..<U176C>;<U176E>..<U1770>;/
- <U1772>..<U1773>;<U1780>..<U17DD>;<U17E0>..<U17E9>;<U17F0>..<U17F9>;/
- <U1800>..<U180E>;<U1810>..<U1819>;<U1820>..<U1878>;<U1880>..<U18AA>;/
- <U18B0>..<U18F5>;<U1900>..<U191E>;<U1920>..<U192B>;<U1930>..<U193B>;/
- <U1940>;<U1944>..<U196D>;<U1970>..<U1974>;<U1980>..<U19AB>;/
- <U19B0>..<U19C9>;<U19D0>..<U19DA>;<U19DE>..<U1A1B>;<U1A1E>..<U1A5E>;/
- <U1A60>..<U1A7C>;<U1A7F>..<U1A89>;<U1A90>..<U1A99>;<U1AA0>..<U1AAD>;/
- <U1AB0>..<U1ABE>;<U1B00>..<U1B4B>;<U1B50>..<U1B7C>;<U1B80>..<U1BF3>;/
- <U1BFC>..<U1C37>;<U1C3B>..<U1C49>;<U1C4D>..<U1C88>;<U1C90>..<U1CBA>;/
- <U1CBD>..<U1CC7>;<U1CD0>..<U1CF9>;<U1D00>..<U1DF9>;<U1DFB>..<U1F15>;/
- <U1F18>..<U1F1D>;<U1F20>..<U1F45>;<U1F48>..<U1F4D>;<U1F50>..<U1F57>;/
- <U1F59>;<U1F5B>;<U1F5D>;<U1F5F>..<U1F7D>;<U1F80>..<U1FB4>;/
- <U1FB6>..<U1FC4>;<U1FC6>..<U1FD3>;<U1FD6>..<U1FDB>;<U1FDD>..<U1FEF>;/
- <U1FF2>..<U1FF4>;<U1FF6>..<U1FFE>;<U2007>;<U200B>..<U2027>;/
- <U202A>..<U205E>;<U2060>..<U2064>;<U2066>..<U2071>;<U2074>..<U208E>;/
- <U2090>..<U209C>;<U20A0>..<U20BF>;<U20D0>..<U20F0>;<U2100>..<U218B>;/
- <U2190>..<U2426>;<U2440>..<U244A>;<U2460>..<U2B73>;<U2B76>..<U2B95>;/
- <U2B98>..<U2BC8>;<U2BCA>..<U2BFE>;<U2C00>..<U2C2E>;<U2C30>..<U2C5E>;/
+ <U0E84>;<U0E86>..<U0E8A>;<U0E8C>..<U0EA3>;<U0EA5>;<U0EA7>..<U0EBD>;/
+ <U0EC0>..<U0EC4>;<U0EC6>;<U0EC8>..<U0ECD>;<U0ED0>..<U0ED9>;/
+ <U0EDC>..<U0EDF>;<U0F00>..<U0F47>;<U0F49>..<U0F6C>;<U0F71>..<U0F97>;/
+ <U0F99>..<U0FBC>;<U0FBE>..<U0FCC>;<U0FCE>..<U0FDA>;<U1000>..<U10C5>;/
+ <U10C7>;<U10CD>;<U10D0>..<U1248>;<U124A>..<U124D>;<U1250>..<U1256>;/
+ <U1258>;<U125A>..<U125D>;<U1260>..<U1288>;<U128A>..<U128D>;/
+ <U1290>..<U12B0>;<U12B2>..<U12B5>;<U12B8>..<U12BE>;<U12C0>;/
+ <U12C2>..<U12C5>;<U12C8>..<U12D6>;<U12D8>..<U1310>;<U1312>..<U1315>;/
+ <U1318>..<U135A>;<U135D>..<U137C>;<U1380>..<U1399>;<U13A0>..<U13F5>;/
+ <U13F8>..<U13FD>;<U1400>..<U167F>;<U1681>..<U169C>;<U16A0>..<U16F8>;/
+ <U1700>..<U170C>;<U170E>..<U1714>;<U1720>..<U1736>;<U1740>..<U1753>;/
+ <U1760>..<U176C>;<U176E>..<U1770>;<U1772>..<U1773>;<U1780>..<U17DD>;/
+ <U17E0>..<U17E9>;<U17F0>..<U17F9>;<U1800>..<U180E>;<U1810>..<U1819>;/
+ <U1820>..<U1878>;<U1880>..<U18AA>;<U18B0>..<U18F5>;<U1900>..<U191E>;/
+ <U1920>..<U192B>;<U1930>..<U193B>;<U1940>;<U1944>..<U196D>;/
+ <U1970>..<U1974>;<U1980>..<U19AB>;<U19B0>..<U19C9>;<U19D0>..<U19DA>;/
+ <U19DE>..<U1A1B>;<U1A1E>..<U1A5E>;<U1A60>..<U1A7C>;<U1A7F>..<U1A89>;/
+ <U1A90>..<U1A99>;<U1AA0>..<U1AAD>;<U1AB0>..<U1ABE>;<U1B00>..<U1B4B>;/
+ <U1B50>..<U1B7C>;<U1B80>..<U1BF3>;<U1BFC>..<U1C37>;<U1C3B>..<U1C49>;/
+ <U1C4D>..<U1C88>;<U1C90>..<U1CBA>;<U1CBD>..<U1CC7>;<U1CD0>..<U1CFA>;/
+ <U1D00>..<U1DF9>;<U1DFB>..<U1F15>;<U1F18>..<U1F1D>;<U1F20>..<U1F45>;/
+ <U1F48>..<U1F4D>;<U1F50>..<U1F57>;<U1F59>;<U1F5B>;<U1F5D>;/
+ <U1F5F>..<U1F7D>;<U1F80>..<U1FB4>;<U1FB6>..<U1FC4>;<U1FC6>..<U1FD3>;/
+ <U1FD6>..<U1FDB>;<U1FDD>..<U1FEF>;<U1FF2>..<U1FF4>;<U1FF6>..<U1FFE>;/
+ <U2007>;<U200B>..<U2027>;<U202A>..<U205E>;<U2060>..<U2064>;/
+ <U2066>..<U2071>;<U2074>..<U208E>;<U2090>..<U209C>;<U20A0>..<U20BF>;/
+ <U20D0>..<U20F0>;<U2100>..<U218B>;<U2190>..<U2426>;<U2440>..<U244A>;/
+ <U2460>..<U2B73>;<U2B76>..<U2B95>;<U2B98>..<U2C2E>;<U2C30>..<U2C5E>;/
<U2C60>..<U2CF3>;<U2CF9>..<U2D25>;<U2D27>;<U2D2D>;<U2D30>..<U2D67>;/
<U2D6F>..<U2D70>;<U2D7F>..<U2D96>;<U2DA0>..<U2DA6>;<U2DA8>..<U2DAE>;/
<U2DB0>..<U2DB6>;<U2DB8>..<U2DBE>;<U2DC0>..<U2DC6>;<U2DC8>..<U2DCE>;/
- <U2DD0>..<U2DD6>;<U2DD8>..<U2DDE>;<U2DE0>..<U2E4E>;<U2E80>..<U2E99>;/
+ <U2DD0>..<U2DD6>;<U2DD8>..<U2DDE>;<U2DE0>..<U2E4F>;<U2E80>..<U2E99>;/
<U2E9B>..<U2EF3>;<U2F00>..<U2FD5>;<U2FF0>..<U2FFB>;<U3001>..<U303F>;/
<U3041>..<U3096>;<U3099>..<U30FF>;<U3105>..<U312F>;<U3131>..<U318E>;/
- <U3190>..<U31BA>;<U31C0>..<U31E3>;<U31F0>..<U321E>;<U3220>..<U32FE>;/
- <U3300>..<U4DB5>;<U4DC0>..<U9FEF>;<UA000>..<UA48C>;<UA490>..<UA4C6>;/
- <UA4D0>..<UA62B>;<UA640>..<UA6F7>;<UA700>..<UA7B9>;<UA7F7>..<UA82B>;/
+ <U3190>..<U31BA>;<U31C0>..<U31E3>;<U31F0>..<U321E>;<U3220>..<U4DB5>;/
+ <U4DC0>..<U9FEF>;<UA000>..<UA48C>;<UA490>..<UA4C6>;<UA4D0>..<UA62B>;/
+ <UA640>..<UA6F7>;<UA700>..<UA7BF>;<UA7C2>..<UA7C6>;<UA7F7>..<UA82B>;/
<UA830>..<UA839>;<UA840>..<UA877>;<UA880>..<UA8C5>;<UA8CE>..<UA8D9>;/
<UA8E0>..<UA953>;<UA95F>..<UA97C>;<UA980>..<UA9CD>;<UA9CF>..<UA9D9>;/
<UA9DE>..<UA9FE>;<UAA00>..<UAA36>;<UAA40>..<UAA4D>;<UAA50>..<UAA59>;/
<UAA5C>..<UAAC2>;<UAADB>..<UAAF6>;<UAB01>..<UAB06>;<UAB09>..<UAB0E>;/
- <UAB11>..<UAB16>;<UAB20>..<UAB26>;<UAB28>..<UAB2E>;<UAB30>..<UAB65>;/
+ <UAB11>..<UAB16>;<UAB20>..<UAB26>;<UAB28>..<UAB2E>;<UAB30>..<UAB67>;/
<UAB70>..<UABED>;<UABF0>..<UABF9>;<UAC00>..<UD7A3>;<UD7B0>..<UD7C6>;/
<UD7CB>..<UD7FB>;<UE000>..<UFA6D>;<UFA70>..<UFAD9>;<UFB00>..<UFB06>;/
<UFB13>..<UFB17>;<UFB1D>..<UFB36>;<UFB38>..<UFB3C>;<UFB3E>;/
@@ -826,32 +829,33 @@ graph /
<U00010CC0>..<U00010CF2>;<U00010CFA>..<U00010D27>;/
<U00010D30>..<U00010D39>;<U00010E60>..<U00010E7E>;/
<U00010F00>..<U00010F27>;<U00010F30>..<U00010F59>;/
- <U00011000>..<U0001104D>;<U00011052>..<U0001106F>;/
- <U0001107F>..<U000110C1>;<U000110CD>;<U000110D0>..<U000110E8>;/
- <U000110F0>..<U000110F9>;<U00011100>..<U00011134>;/
- <U00011136>..<U00011146>;<U00011150>..<U00011176>;/
- <U00011180>..<U000111CD>;<U000111D0>..<U000111DF>;/
- <U000111E1>..<U000111F4>;<U00011200>..<U00011211>;/
- <U00011213>..<U0001123E>;<U00011280>..<U00011286>;<U00011288>;/
- <U0001128A>..<U0001128D>;<U0001128F>..<U0001129D>;/
- <U0001129F>..<U000112A9>;<U000112B0>..<U000112EA>;/
- <U000112F0>..<U000112F9>;<U00011300>..<U00011303>;/
- <U00011305>..<U0001130C>;<U0001130F>..<U00011310>;/
- <U00011313>..<U00011328>;<U0001132A>..<U00011330>;/
- <U00011332>..<U00011333>;<U00011335>..<U00011339>;/
- <U0001133B>..<U00011344>;<U00011347>..<U00011348>;/
- <U0001134B>..<U0001134D>;<U00011350>;<U00011357>;/
- <U0001135D>..<U00011363>;<U00011366>..<U0001136C>;/
+ <U00010FE0>..<U00010FF6>;<U00011000>..<U0001104D>;/
+ <U00011052>..<U0001106F>;<U0001107F>..<U000110C1>;<U000110CD>;/
+ <U000110D0>..<U000110E8>;<U000110F0>..<U000110F9>;/
+ <U00011100>..<U00011134>;<U00011136>..<U00011146>;/
+ <U00011150>..<U00011176>;<U00011180>..<U000111CD>;/
+ <U000111D0>..<U000111DF>;<U000111E1>..<U000111F4>;/
+ <U00011200>..<U00011211>;<U00011213>..<U0001123E>;/
+ <U00011280>..<U00011286>;<U00011288>;<U0001128A>..<U0001128D>;/
+ <U0001128F>..<U0001129D>;<U0001129F>..<U000112A9>;/
+ <U000112B0>..<U000112EA>;<U000112F0>..<U000112F9>;/
+ <U00011300>..<U00011303>;<U00011305>..<U0001130C>;/
+ <U0001130F>..<U00011310>;<U00011313>..<U00011328>;/
+ <U0001132A>..<U00011330>;<U00011332>..<U00011333>;/
+ <U00011335>..<U00011339>;<U0001133B>..<U00011344>;/
+ <U00011347>..<U00011348>;<U0001134B>..<U0001134D>;<U00011350>;/
+ <U00011357>;<U0001135D>..<U00011363>;<U00011366>..<U0001136C>;/
<U00011370>..<U00011374>;<U00011400>..<U00011459>;<U0001145B>;/
- <U0001145D>..<U0001145E>;<U00011480>..<U000114C7>;/
+ <U0001145D>..<U0001145F>;<U00011480>..<U000114C7>;/
<U000114D0>..<U000114D9>;<U00011580>..<U000115B5>;/
<U000115B8>..<U000115DD>;<U00011600>..<U00011644>;/
<U00011650>..<U00011659>;<U00011660>..<U0001166C>;/
- <U00011680>..<U000116B7>;<U000116C0>..<U000116C9>;/
+ <U00011680>..<U000116B8>;<U000116C0>..<U000116C9>;/
<U00011700>..<U0001171A>;<U0001171D>..<U0001172B>;/
<U00011730>..<U0001173F>;<U00011800>..<U0001183B>;/
- <U000118A0>..<U000118F2>;<U000118FF>;<U00011A00>..<U00011A47>;/
- <U00011A50>..<U00011A83>;<U00011A86>..<U00011AA2>;/
+ <U000118A0>..<U000118F2>;<U000118FF>;<U000119A0>..<U000119A7>;/
+ <U000119AA>..<U000119D7>;<U000119DA>..<U000119E4>;/
+ <U00011A00>..<U00011A47>;<U00011A50>..<U00011AA2>;/
<U00011AC0>..<U00011AF8>;<U00011C00>..<U00011C08>;/
<U00011C0A>..<U00011C36>;<U00011C38>..<U00011C45>;/
<U00011C50>..<U00011C6C>;<U00011C70>..<U00011C8F>;/
@@ -862,19 +866,21 @@ graph /
<U00011D60>..<U00011D65>;<U00011D67>..<U00011D68>;/
<U00011D6A>..<U00011D8E>;<U00011D90>..<U00011D91>;/
<U00011D93>..<U00011D98>;<U00011DA0>..<U00011DA9>;/
- <U00011EE0>..<U00011EF8>;<U00012000>..<U00012399>;/
- <U00012400>..<U0001246E>;<U00012470>..<U00012474>;/
- <U00012480>..<U00012543>;<U00013000>..<U0001342E>;/
+ <U00011EE0>..<U00011EF8>;<U00011FC0>..<U00011FF1>;/
+ <U00011FFF>..<U00012399>;<U00012400>..<U0001246E>;/
+ <U00012470>..<U00012474>;<U00012480>..<U00012543>;/
+ <U00013000>..<U0001342E>;<U00013430>..<U00013438>;/
<U00014400>..<U00014646>;<U00016800>..<U00016A38>;/
<U00016A40>..<U00016A5E>;<U00016A60>..<U00016A69>;/
<U00016A6E>..<U00016A6F>;<U00016AD0>..<U00016AED>;/
<U00016AF0>..<U00016AF5>;<U00016B00>..<U00016B45>;/
<U00016B50>..<U00016B59>;<U00016B5B>..<U00016B61>;/
<U00016B63>..<U00016B77>;<U00016B7D>..<U00016B8F>;/
- <U00016E40>..<U00016E9A>;<U00016F00>..<U00016F44>;/
- <U00016F50>..<U00016F7E>;<U00016F8F>..<U00016F9F>;/
- <U00016FE0>..<U00016FE1>;<U00017000>..<U000187F1>;/
+ <U00016E40>..<U00016E9A>;<U00016F00>..<U00016F4A>;/
+ <U00016F4F>..<U00016F87>;<U00016F8F>..<U00016F9F>;/
+ <U00016FE0>..<U00016FE3>;<U00017000>..<U000187F7>;/
<U00018800>..<U00018AF2>;<U0001B000>..<U0001B11E>;/
+ <U0001B150>..<U0001B152>;<U0001B164>..<U0001B167>;/
<U0001B170>..<U0001B2FB>;<U0001BC00>..<U0001BC6A>;/
<U0001BC70>..<U0001BC7C>;<U0001BC80>..<U0001BC88>;/
<U0001BC90>..<U0001BC99>;<U0001BC9C>..<U0001BCA3>;/
@@ -894,9 +900,12 @@ graph /
<U0001DAA1>..<U0001DAAF>;<U0001E000>..<U0001E006>;/
<U0001E008>..<U0001E018>;<U0001E01B>..<U0001E021>;/
<U0001E023>..<U0001E024>;<U0001E026>..<U0001E02A>;/
- <U0001E800>..<U0001E8C4>;<U0001E8C7>..<U0001E8D6>;/
- <U0001E900>..<U0001E94A>;<U0001E950>..<U0001E959>;/
- <U0001E95E>..<U0001E95F>;<U0001EC71>..<U0001ECB4>;/
+ <U0001E100>..<U0001E12C>;<U0001E130>..<U0001E13D>;/
+ <U0001E140>..<U0001E149>;<U0001E14E>..<U0001E14F>;/
+ <U0001E2C0>..<U0001E2F9>;<U0001E2FF>;<U0001E800>..<U0001E8C4>;/
+ <U0001E8C7>..<U0001E8D6>;<U0001E900>..<U0001E94B>;/
+ <U0001E950>..<U0001E959>;<U0001E95E>..<U0001E95F>;/
+ <U0001EC71>..<U0001ECB4>;<U0001ED01>..<U0001ED3D>;/
<U0001EE00>..<U0001EE03>;<U0001EE05>..<U0001EE1F>;/
<U0001EE21>..<U0001EE22>;<U0001EE24>;<U0001EE27>;/
<U0001EE29>..<U0001EE32>;<U0001EE34>..<U0001EE37>;<U0001EE39>;/
@@ -912,19 +921,21 @@ graph /
<U0001F030>..<U0001F093>;<U0001F0A0>..<U0001F0AE>;/
<U0001F0B1>..<U0001F0BF>;<U0001F0C1>..<U0001F0CF>;/
<U0001F0D1>..<U0001F0F5>;<U0001F100>..<U0001F10C>;/
- <U0001F110>..<U0001F16B>;<U0001F170>..<U0001F1AC>;/
+ <U0001F110>..<U0001F16C>;<U0001F170>..<U0001F1AC>;/
<U0001F1E6>..<U0001F202>;<U0001F210>..<U0001F23B>;/
<U0001F240>..<U0001F248>;<U0001F250>..<U0001F251>;/
- <U0001F260>..<U0001F265>;<U0001F300>..<U0001F6D4>;/
- <U0001F6E0>..<U0001F6EC>;<U0001F6F0>..<U0001F6F9>;/
+ <U0001F260>..<U0001F265>;<U0001F300>..<U0001F6D5>;/
+ <U0001F6E0>..<U0001F6EC>;<U0001F6F0>..<U0001F6FA>;/
<U0001F700>..<U0001F773>;<U0001F780>..<U0001F7D8>;/
- <U0001F800>..<U0001F80B>;<U0001F810>..<U0001F847>;/
- <U0001F850>..<U0001F859>;<U0001F860>..<U0001F887>;/
- <U0001F890>..<U0001F8AD>;<U0001F900>..<U0001F90B>;/
- <U0001F910>..<U0001F93E>;<U0001F940>..<U0001F970>;/
- <U0001F973>..<U0001F976>;<U0001F97A>;<U0001F97C>..<U0001F9A2>;/
- <U0001F9B0>..<U0001F9B9>;<U0001F9C0>..<U0001F9C2>;/
- <U0001F9D0>..<U0001F9FF>;<U0001FA60>..<U0001FA6D>;/
+ <U0001F7E0>..<U0001F7EB>;<U0001F800>..<U0001F80B>;/
+ <U0001F810>..<U0001F847>;<U0001F850>..<U0001F859>;/
+ <U0001F860>..<U0001F887>;<U0001F890>..<U0001F8AD>;/
+ <U0001F900>..<U0001F90B>;<U0001F90D>..<U0001F971>;/
+ <U0001F973>..<U0001F976>;<U0001F97A>..<U0001F9A2>;/
+ <U0001F9A5>..<U0001F9AA>;<U0001F9AE>..<U0001F9CA>;/
+ <U0001F9CD>..<U0001FA53>;<U0001FA60>..<U0001FA6D>;/
+ <U0001FA70>..<U0001FA73>;<U0001FA78>..<U0001FA7A>;/
+ <U0001FA80>..<U0001FA82>;<U0001FA90>..<U0001FA95>;/
<U00020000>..<U0002A6D6>;<U0002A700>..<U0002B734>;/
<U0002B740>..<U0002B81D>;<U0002B820>..<U0002CEA1>;/
<U0002CEB0>..<U0002EBE0>;<U0002F800>..<U0002FA1D>;<U000E0001>;/
@@ -959,7 +970,7 @@ print /
<U0BD0>;<U0BD7>;<U0BE6>..<U0BFA>;<U0C00>..<U0C0C>;<U0C0E>..<U0C10>;/
<U0C12>..<U0C28>;<U0C2A>..<U0C39>;<U0C3D>..<U0C44>;<U0C46>..<U0C48>;/
<U0C4A>..<U0C4D>;<U0C55>..<U0C56>;<U0C58>..<U0C5A>;<U0C60>..<U0C63>;/
- <U0C66>..<U0C6F>;<U0C78>..<U0C8C>;<U0C8E>..<U0C90>;<U0C92>..<U0CA8>;/
+ <U0C66>..<U0C6F>;<U0C77>..<U0C8C>;<U0C8E>..<U0C90>;<U0C92>..<U0CA8>;/
<U0CAA>..<U0CB3>;<U0CB5>..<U0CB9>;<U0CBC>..<U0CC4>;<U0CC6>..<U0CC8>;/
<U0CCA>..<U0CCD>;<U0CD5>..<U0CD6>;<U0CDE>;<U0CE0>..<U0CE3>;/
<U0CE6>..<U0CEF>;<U0CF1>..<U0CF2>;<U0D00>..<U0D03>;<U0D05>..<U0D0C>;/
@@ -968,50 +979,48 @@ print /
<U0D9A>..<U0DB1>;<U0DB3>..<U0DBB>;<U0DBD>;<U0DC0>..<U0DC6>;<U0DCA>;/
<U0DCF>..<U0DD4>;<U0DD6>;<U0DD8>..<U0DDF>;<U0DE6>..<U0DEF>;/
<U0DF2>..<U0DF4>;<U0E01>..<U0E3A>;<U0E3F>..<U0E5B>;<U0E81>..<U0E82>;/
- <U0E84>;<U0E87>..<U0E88>;<U0E8A>;<U0E8D>;<U0E94>..<U0E97>;/
- <U0E99>..<U0E9F>;<U0EA1>..<U0EA3>;<U0EA5>;<U0EA7>;<U0EAA>..<U0EAB>;/
- <U0EAD>..<U0EB9>;<U0EBB>..<U0EBD>;<U0EC0>..<U0EC4>;<U0EC6>;/
- <U0EC8>..<U0ECD>;<U0ED0>..<U0ED9>;<U0EDC>..<U0EDF>;<U0F00>..<U0F47>;/
- <U0F49>..<U0F6C>;<U0F71>..<U0F97>;<U0F99>..<U0FBC>;<U0FBE>..<U0FCC>;/
- <U0FCE>..<U0FDA>;<U1000>..<U10C5>;<U10C7>;<U10CD>;<U10D0>..<U1248>;/
- <U124A>..<U124D>;<U1250>..<U1256>;<U1258>;<U125A>..<U125D>;/
- <U1260>..<U1288>;<U128A>..<U128D>;<U1290>..<U12B0>;<U12B2>..<U12B5>;/
- <U12B8>..<U12BE>;<U12C0>;<U12C2>..<U12C5>;<U12C8>..<U12D6>;/
- <U12D8>..<U1310>;<U1312>..<U1315>;<U1318>..<U135A>;<U135D>..<U137C>;/
- <U1380>..<U1399>;<U13A0>..<U13F5>;<U13F8>..<U13FD>;<U1400>..<U169C>;/
- <U16A0>..<U16F8>;<U1700>..<U170C>;<U170E>..<U1714>;<U1720>..<U1736>;/
- <U1740>..<U1753>;<U1760>..<U176C>;<U176E>..<U1770>;<U1772>..<U1773>;/
- <U1780>..<U17DD>;<U17E0>..<U17E9>;<U17F0>..<U17F9>;<U1800>..<U180E>;/
- <U1810>..<U1819>;<U1820>..<U1878>;<U1880>..<U18AA>;<U18B0>..<U18F5>;/
- <U1900>..<U191E>;<U1920>..<U192B>;<U1930>..<U193B>;<U1940>;/
- <U1944>..<U196D>;<U1970>..<U1974>;<U1980>..<U19AB>;<U19B0>..<U19C9>;/
- <U19D0>..<U19DA>;<U19DE>..<U1A1B>;<U1A1E>..<U1A5E>;<U1A60>..<U1A7C>;/
- <U1A7F>..<U1A89>;<U1A90>..<U1A99>;<U1AA0>..<U1AAD>;<U1AB0>..<U1ABE>;/
- <U1B00>..<U1B4B>;<U1B50>..<U1B7C>;<U1B80>..<U1BF3>;<U1BFC>..<U1C37>;/
- <U1C3B>..<U1C49>;<U1C4D>..<U1C88>;<U1C90>..<U1CBA>;<U1CBD>..<U1CC7>;/
- <U1CD0>..<U1CF9>;<U1D00>..<U1DF9>;<U1DFB>..<U1F15>;<U1F18>..<U1F1D>;/
- <U1F20>..<U1F45>;<U1F48>..<U1F4D>;<U1F50>..<U1F57>;<U1F59>;<U1F5B>;/
- <U1F5D>;<U1F5F>..<U1F7D>;<U1F80>..<U1FB4>;<U1FB6>..<U1FC4>;/
- <U1FC6>..<U1FD3>;<U1FD6>..<U1FDB>;<U1FDD>..<U1FEF>;<U1FF2>..<U1FF4>;/
- <U1FF6>..<U1FFE>;<U2000>..<U2027>;<U202A>..<U2064>;<U2066>..<U2071>;/
- <U2074>..<U208E>;<U2090>..<U209C>;<U20A0>..<U20BF>;<U20D0>..<U20F0>;/
- <U2100>..<U218B>;<U2190>..<U2426>;<U2440>..<U244A>;<U2460>..<U2B73>;/
- <U2B76>..<U2B95>;<U2B98>..<U2BC8>;<U2BCA>..<U2BFE>;<U2C00>..<U2C2E>;/
+ <U0E84>;<U0E86>..<U0E8A>;<U0E8C>..<U0EA3>;<U0EA5>;<U0EA7>..<U0EBD>;/
+ <U0EC0>..<U0EC4>;<U0EC6>;<U0EC8>..<U0ECD>;<U0ED0>..<U0ED9>;/
+ <U0EDC>..<U0EDF>;<U0F00>..<U0F47>;<U0F49>..<U0F6C>;<U0F71>..<U0F97>;/
+ <U0F99>..<U0FBC>;<U0FBE>..<U0FCC>;<U0FCE>..<U0FDA>;<U1000>..<U10C5>;/
+ <U10C7>;<U10CD>;<U10D0>..<U1248>;<U124A>..<U124D>;<U1250>..<U1256>;/
+ <U1258>;<U125A>..<U125D>;<U1260>..<U1288>;<U128A>..<U128D>;/
+ <U1290>..<U12B0>;<U12B2>..<U12B5>;<U12B8>..<U12BE>;<U12C0>;/
+ <U12C2>..<U12C5>;<U12C8>..<U12D6>;<U12D8>..<U1310>;<U1312>..<U1315>;/
+ <U1318>..<U135A>;<U135D>..<U137C>;<U1380>..<U1399>;<U13A0>..<U13F5>;/
+ <U13F8>..<U13FD>;<U1400>..<U169C>;<U16A0>..<U16F8>;<U1700>..<U170C>;/
+ <U170E>..<U1714>;<U1720>..<U1736>;<U1740>..<U1753>;<U1760>..<U176C>;/
+ <U176E>..<U1770>;<U1772>..<U1773>;<U1780>..<U17DD>;<U17E0>..<U17E9>;/
+ <U17F0>..<U17F9>;<U1800>..<U180E>;<U1810>..<U1819>;<U1820>..<U1878>;/
+ <U1880>..<U18AA>;<U18B0>..<U18F5>;<U1900>..<U191E>;<U1920>..<U192B>;/
+ <U1930>..<U193B>;<U1940>;<U1944>..<U196D>;<U1970>..<U1974>;/
+ <U1980>..<U19AB>;<U19B0>..<U19C9>;<U19D0>..<U19DA>;<U19DE>..<U1A1B>;/
+ <U1A1E>..<U1A5E>;<U1A60>..<U1A7C>;<U1A7F>..<U1A89>;<U1A90>..<U1A99>;/
+ <U1AA0>..<U1AAD>;<U1AB0>..<U1ABE>;<U1B00>..<U1B4B>;<U1B50>..<U1B7C>;/
+ <U1B80>..<U1BF3>;<U1BFC>..<U1C37>;<U1C3B>..<U1C49>;<U1C4D>..<U1C88>;/
+ <U1C90>..<U1CBA>;<U1CBD>..<U1CC7>;<U1CD0>..<U1CFA>;<U1D00>..<U1DF9>;/
+ <U1DFB>..<U1F15>;<U1F18>..<U1F1D>;<U1F20>..<U1F45>;<U1F48>..<U1F4D>;/
+ <U1F50>..<U1F57>;<U1F59>;<U1F5B>;<U1F5D>;<U1F5F>..<U1F7D>;/
+ <U1F80>..<U1FB4>;<U1FB6>..<U1FC4>;<U1FC6>..<U1FD3>;<U1FD6>..<U1FDB>;/
+ <U1FDD>..<U1FEF>;<U1FF2>..<U1FF4>;<U1FF6>..<U1FFE>;<U2000>..<U2027>;/
+ <U202A>..<U2064>;<U2066>..<U2071>;<U2074>..<U208E>;<U2090>..<U209C>;/
+ <U20A0>..<U20BF>;<U20D0>..<U20F0>;<U2100>..<U218B>;<U2190>..<U2426>;/
+ <U2440>..<U244A>;<U2460>..<U2B73>;<U2B76>..<U2B95>;<U2B98>..<U2C2E>;/
<U2C30>..<U2C5E>;<U2C60>..<U2CF3>;<U2CF9>..<U2D25>;<U2D27>;<U2D2D>;/
<U2D30>..<U2D67>;<U2D6F>..<U2D70>;<U2D7F>..<U2D96>;<U2DA0>..<U2DA6>;/
<U2DA8>..<U2DAE>;<U2DB0>..<U2DB6>;<U2DB8>..<U2DBE>;<U2DC0>..<U2DC6>;/
- <U2DC8>..<U2DCE>;<U2DD0>..<U2DD6>;<U2DD8>..<U2DDE>;<U2DE0>..<U2E4E>;/
+ <U2DC8>..<U2DCE>;<U2DD0>..<U2DD6>;<U2DD8>..<U2DDE>;<U2DE0>..<U2E4F>;/
<U2E80>..<U2E99>;<U2E9B>..<U2EF3>;<U2F00>..<U2FD5>;<U2FF0>..<U2FFB>;/
<U3000>..<U303F>;<U3041>..<U3096>;<U3099>..<U30FF>;<U3105>..<U312F>;/
<U3131>..<U318E>;<U3190>..<U31BA>;<U31C0>..<U31E3>;<U31F0>..<U321E>;/
- <U3220>..<U32FE>;<U3300>..<U4DB5>;<U4DC0>..<U9FEF>;<UA000>..<UA48C>;/
- <UA490>..<UA4C6>;<UA4D0>..<UA62B>;<UA640>..<UA6F7>;<UA700>..<UA7B9>;/
+ <U3220>..<U4DB5>;<U4DC0>..<U9FEF>;<UA000>..<UA48C>;<UA490>..<UA4C6>;/
+ <UA4D0>..<UA62B>;<UA640>..<UA6F7>;<UA700>..<UA7BF>;<UA7C2>..<UA7C6>;/
<UA7F7>..<UA82B>;<UA830>..<UA839>;<UA840>..<UA877>;<UA880>..<UA8C5>;/
<UA8CE>..<UA8D9>;<UA8E0>..<UA953>;<UA95F>..<UA97C>;<UA980>..<UA9CD>;/
<UA9CF>..<UA9D9>;<UA9DE>..<UA9FE>;<UAA00>..<UAA36>;<UAA40>..<UAA4D>;/
<UAA50>..<UAA59>;<UAA5C>..<UAAC2>;<UAADB>..<UAAF6>;<UAB01>..<UAB06>;/
<UAB09>..<UAB0E>;<UAB11>..<UAB16>;<UAB20>..<UAB26>;<UAB28>..<UAB2E>;/
- <UAB30>..<UAB65>;<UAB70>..<UABED>;<UABF0>..<UABF9>;<UAC00>..<UD7A3>;/
+ <UAB30>..<UAB67>;<UAB70>..<UABED>;<UABF0>..<UABF9>;<UAC00>..<UD7A3>;/
<UD7B0>..<UD7C6>;<UD7CB>..<UD7FB>;<UE000>..<UFA6D>;<UFA70>..<UFAD9>;/
<UFB00>..<UFB06>;<UFB13>..<UFB17>;<UFB1D>..<UFB36>;<UFB38>..<UFB3C>;/
<UFB3E>;<UFB40>..<UFB41>;<UFB43>..<UFB44>;<UFB46>..<UFBC1>;/
@@ -1053,32 +1062,34 @@ print /
<U00010C80>..<U00010CB2>;<U00010CC0>..<U00010CF2>;/
<U00010CFA>..<U00010D27>;<U00010D30>..<U00010D39>;/
<U00010E60>..<U00010E7E>;<U00010F00>..<U00010F27>;/
- <U00010F30>..<U00010F59>;<U00011000>..<U0001104D>;/
- <U00011052>..<U0001106F>;<U0001107F>..<U000110C1>;<U000110CD>;/
- <U000110D0>..<U000110E8>;<U000110F0>..<U000110F9>;/
- <U00011100>..<U00011134>;<U00011136>..<U00011146>;/
- <U00011150>..<U00011176>;<U00011180>..<U000111CD>;/
- <U000111D0>..<U000111DF>;<U000111E1>..<U000111F4>;/
- <U00011200>..<U00011211>;<U00011213>..<U0001123E>;/
- <U00011280>..<U00011286>;<U00011288>;<U0001128A>..<U0001128D>;/
- <U0001128F>..<U0001129D>;<U0001129F>..<U000112A9>;/
- <U000112B0>..<U000112EA>;<U000112F0>..<U000112F9>;/
- <U00011300>..<U00011303>;<U00011305>..<U0001130C>;/
- <U0001130F>..<U00011310>;<U00011313>..<U00011328>;/
- <U0001132A>..<U00011330>;<U00011332>..<U00011333>;/
- <U00011335>..<U00011339>;<U0001133B>..<U00011344>;/
- <U00011347>..<U00011348>;<U0001134B>..<U0001134D>;<U00011350>;/
- <U00011357>;<U0001135D>..<U00011363>;<U00011366>..<U0001136C>;/
+ <U00010F30>..<U00010F59>;<U00010FE0>..<U00010FF6>;/
+ <U00011000>..<U0001104D>;<U00011052>..<U0001106F>;/
+ <U0001107F>..<U000110C1>;<U000110CD>;<U000110D0>..<U000110E8>;/
+ <U000110F0>..<U000110F9>;<U00011100>..<U00011134>;/
+ <U00011136>..<U00011146>;<U00011150>..<U00011176>;/
+ <U00011180>..<U000111CD>;<U000111D0>..<U000111DF>;/
+ <U000111E1>..<U000111F4>;<U00011200>..<U00011211>;/
+ <U00011213>..<U0001123E>;<U00011280>..<U00011286>;<U00011288>;/
+ <U0001128A>..<U0001128D>;<U0001128F>..<U0001129D>;/
+ <U0001129F>..<U000112A9>;<U000112B0>..<U000112EA>;/
+ <U000112F0>..<U000112F9>;<U00011300>..<U00011303>;/
+ <U00011305>..<U0001130C>;<U0001130F>..<U00011310>;/
+ <U00011313>..<U00011328>;<U0001132A>..<U00011330>;/
+ <U00011332>..<U00011333>;<U00011335>..<U00011339>;/
+ <U0001133B>..<U00011344>;<U00011347>..<U00011348>;/
+ <U0001134B>..<U0001134D>;<U00011350>;<U00011357>;/
+ <U0001135D>..<U00011363>;<U00011366>..<U0001136C>;/
<U00011370>..<U00011374>;<U00011400>..<U00011459>;<U0001145B>;/
- <U0001145D>..<U0001145E>;<U00011480>..<U000114C7>;/
+ <U0001145D>..<U0001145F>;<U00011480>..<U000114C7>;/
<U000114D0>..<U000114D9>;<U00011580>..<U000115B5>;/
<U000115B8>..<U000115DD>;<U00011600>..<U00011644>;/
<U00011650>..<U00011659>;<U00011660>..<U0001166C>;/
- <U00011680>..<U000116B7>;<U000116C0>..<U000116C9>;/
+ <U00011680>..<U000116B8>;<U000116C0>..<U000116C9>;/
<U00011700>..<U0001171A>;<U0001171D>..<U0001172B>;/
<U00011730>..<U0001173F>;<U00011800>..<U0001183B>;/
- <U000118A0>..<U000118F2>;<U000118FF>;<U00011A00>..<U00011A47>;/
- <U00011A50>..<U00011A83>;<U00011A86>..<U00011AA2>;/
+ <U000118A0>..<U000118F2>;<U000118FF>;<U000119A0>..<U000119A7>;/
+ <U000119AA>..<U000119D7>;<U000119DA>..<U000119E4>;/
+ <U00011A00>..<U00011A47>;<U00011A50>..<U00011AA2>;/
<U00011AC0>..<U00011AF8>;<U00011C00>..<U00011C08>;/
<U00011C0A>..<U00011C36>;<U00011C38>..<U00011C45>;/
<U00011C50>..<U00011C6C>;<U00011C70>..<U00011C8F>;/
@@ -1089,19 +1100,21 @@ print /
<U00011D60>..<U00011D65>;<U00011D67>..<U00011D68>;/
<U00011D6A>..<U00011D8E>;<U00011D90>..<U00011D91>;/
<U00011D93>..<U00011D98>;<U00011DA0>..<U00011DA9>;/
- <U00011EE0>..<U00011EF8>;<U00012000>..<U00012399>;/
- <U00012400>..<U0001246E>;<U00012470>..<U00012474>;/
- <U00012480>..<U00012543>;<U00013000>..<U0001342E>;/
+ <U00011EE0>..<U00011EF8>;<U00011FC0>..<U00011FF1>;/
+ <U00011FFF>..<U00012399>;<U00012400>..<U0001246E>;/
+ <U00012470>..<U00012474>;<U00012480>..<U00012543>;/
+ <U00013000>..<U0001342E>;<U00013430>..<U00013438>;/
<U00014400>..<U00014646>;<U00016800>..<U00016A38>;/
<U00016A40>..<U00016A5E>;<U00016A60>..<U00016A69>;/
<U00016A6E>..<U00016A6F>;<U00016AD0>..<U00016AED>;/
<U00016AF0>..<U00016AF5>;<U00016B00>..<U00016B45>;/
<U00016B50>..<U00016B59>;<U00016B5B>..<U00016B61>;/
<U00016B63>..<U00016B77>;<U00016B7D>..<U00016B8F>;/
- <U00016E40>..<U00016E9A>;<U00016F00>..<U00016F44>;/
- <U00016F50>..<U00016F7E>;<U00016F8F>..<U00016F9F>;/
- <U00016FE0>..<U00016FE1>;<U00017000>..<U000187F1>;/
+ <U00016E40>..<U00016E9A>;<U00016F00>..<U00016F4A>;/
+ <U00016F4F>..<U00016F87>;<U00016F8F>..<U00016F9F>;/
+ <U00016FE0>..<U00016FE3>;<U00017000>..<U000187F7>;/
<U00018800>..<U00018AF2>;<U0001B000>..<U0001B11E>;/
+ <U0001B150>..<U0001B152>;<U0001B164>..<U0001B167>;/
<U0001B170>..<U0001B2FB>;<U0001BC00>..<U0001BC6A>;/
<U0001BC70>..<U0001BC7C>;<U0001BC80>..<U0001BC88>;/
<U0001BC90>..<U0001BC99>;<U0001BC9C>..<U0001BCA3>;/
@@ -1121,9 +1134,12 @@ print /
<U0001DAA1>..<U0001DAAF>;<U0001E000>..<U0001E006>;/
<U0001E008>..<U0001E018>;<U0001E01B>..<U0001E021>;/
<U0001E023>..<U0001E024>;<U0001E026>..<U0001E02A>;/
- <U0001E800>..<U0001E8C4>;<U0001E8C7>..<U0001E8D6>;/
- <U0001E900>..<U0001E94A>;<U0001E950>..<U0001E959>;/
- <U0001E95E>..<U0001E95F>;<U0001EC71>..<U0001ECB4>;/
+ <U0001E100>..<U0001E12C>;<U0001E130>..<U0001E13D>;/
+ <U0001E140>..<U0001E149>;<U0001E14E>..<U0001E14F>;/
+ <U0001E2C0>..<U0001E2F9>;<U0001E2FF>;<U0001E800>..<U0001E8C4>;/
+ <U0001E8C7>..<U0001E8D6>;<U0001E900>..<U0001E94B>;/
+ <U0001E950>..<U0001E959>;<U0001E95E>..<U0001E95F>;/
+ <U0001EC71>..<U0001ECB4>;<U0001ED01>..<U0001ED3D>;/
<U0001EE00>..<U0001EE03>;<U0001EE05>..<U0001EE1F>;/
<U0001EE21>..<U0001EE22>;<U0001EE24>;<U0001EE27>;/
<U0001EE29>..<U0001EE32>;<U0001EE34>..<U0001EE37>;<U0001EE39>;/
@@ -1139,19 +1155,21 @@ print /
<U0001F030>..<U0001F093>;<U0001F0A0>..<U0001F0AE>;/
<U0001F0B1>..<U0001F0BF>;<U0001F0C1>..<U0001F0CF>;/
<U0001F0D1>..<U0001F0F5>;<U0001F100>..<U0001F10C>;/
- <U0001F110>..<U0001F16B>;<U0001F170>..<U0001F1AC>;/
+ <U0001F110>..<U0001F16C>;<U0001F170>..<U0001F1AC>;/
<U0001F1E6>..<U0001F202>;<U0001F210>..<U0001F23B>;/
<U0001F240>..<U0001F248>;<U0001F250>..<U0001F251>;/
- <U0001F260>..<U0001F265>;<U0001F300>..<U0001F6D4>;/
- <U0001F6E0>..<U0001F6EC>;<U0001F6F0>..<U0001F6F9>;/
+ <U0001F260>..<U0001F265>;<U0001F300>..<U0001F6D5>;/
+ <U0001F6E0>..<U0001F6EC>;<U0001F6F0>..<U0001F6FA>;/
<U0001F700>..<U0001F773>;<U0001F780>..<U0001F7D8>;/
- <U0001F800>..<U0001F80B>;<U0001F810>..<U0001F847>;/
- <U0001F850>..<U0001F859>;<U0001F860>..<U0001F887>;/
- <U0001F890>..<U0001F8AD>;<U0001F900>..<U0001F90B>;/
- <U0001F910>..<U0001F93E>;<U0001F940>..<U0001F970>;/
- <U0001F973>..<U0001F976>;<U0001F97A>;<U0001F97C>..<U0001F9A2>;/
- <U0001F9B0>..<U0001F9B9>;<U0001F9C0>..<U0001F9C2>;/
- <U0001F9D0>..<U0001F9FF>;<U0001FA60>..<U0001FA6D>;/
+ <U0001F7E0>..<U0001F7EB>;<U0001F800>..<U0001F80B>;/
+ <U0001F810>..<U0001F847>;<U0001F850>..<U0001F859>;/
+ <U0001F860>..<U0001F887>;<U0001F890>..<U0001F8AD>;/
+ <U0001F900>..<U0001F90B>;<U0001F90D>..<U0001F971>;/
+ <U0001F973>..<U0001F976>;<U0001F97A>..<U0001F9A2>;/
+ <U0001F9A5>..<U0001F9AA>;<U0001F9AE>..<U0001F9CA>;/
+ <U0001F9CD>..<U0001FA53>;<U0001FA60>..<U0001FA6D>;/
+ <U0001FA70>..<U0001FA73>;<U0001FA78>..<U0001FA7A>;/
+ <U0001FA80>..<U0001FA82>;<U0001FA90>..<U0001FA95>;/
<U00020000>..<U0002A6D6>;<U0002A700>..<U0002B734>;/
<U0002B740>..<U0002B81D>;<U0002B820>..<U0002CEA1>;/
<U0002CEB0>..<U0002EBE0>;<U0002F800>..<U0002FA1D>;<U000E0001>;/
@@ -1227,355 +1245,356 @@ toupper /
(<U0265>,<UA78D>);(<U0266>,<UA7AA>);(<U0268>,<U0197>);(<U0269>,<U0196>);/
(<U026A>,<UA7AE>);(<U026B>,<U2C62>);(<U026C>,<UA7AD>);(<U026F>,<U019C>);/
(<U0271>,<U2C6E>);(<U0272>,<U019D>);(<U0275>,<U019F>);(<U027D>,<U2C64>);/
- (<U0280>,<U01A6>);(<U0283>,<U01A9>);(<U0287>,<UA7B1>);(<U0288>,<U01AE>);/
- (<U0289>,<U0244>);(<U028A>,<U01B1>);(<U028B>,<U01B2>);(<U028C>,<U0245>);/
- (<U0292>,<U01B7>);(<U029D>,<UA7B2>);(<U029E>,<UA7B0>);(<U0345>,<U0399>);/
- (<U0371>,<U0370>);(<U0373>,<U0372>);(<U0377>,<U0376>);(<U037B>,<U03FD>);/
- (<U037C>,<U03FE>);(<U037D>,<U03FF>);(<U03AC>,<U0386>);(<U03AD>,<U0388>);/
- (<U03AE>,<U0389>);(<U03AF>,<U038A>);(<U03B1>,<U0391>);(<U03B2>,<U0392>);/
- (<U03B3>,<U0393>);(<U03B4>,<U0394>);(<U03B5>,<U0395>);(<U03B6>,<U0396>);/
- (<U03B7>,<U0397>);(<U03B8>,<U0398>);(<U03B9>,<U0399>);(<U03BA>,<U039A>);/
- (<U03BB>,<U039B>);(<U03BC>,<U039C>);(<U03BD>,<U039D>);(<U03BE>,<U039E>);/
- (<U03BF>,<U039F>);(<U03C0>,<U03A0>);(<U03C1>,<U03A1>);(<U03C2>,<U03A3>);/
- (<U03C3>,<U03A3>);(<U03C4>,<U03A4>);(<U03C5>,<U03A5>);(<U03C6>,<U03A6>);/
- (<U03C7>,<U03A7>);(<U03C8>,<U03A8>);(<U03C9>,<U03A9>);(<U03CA>,<U03AA>);/
- (<U03CB>,<U03AB>);(<U03CC>,<U038C>);(<U03CD>,<U038E>);(<U03CE>,<U038F>);/
- (<U03D0>,<U0392>);(<U03D1>,<U0398>);(<U03D5>,<U03A6>);(<U03D6>,<U03A0>);/
- (<U03D7>,<U03CF>);(<U03D9>,<U03D8>);(<U03DB>,<U03DA>);(<U03DD>,<U03DC>);/
- (<U03DF>,<U03DE>);(<U03E1>,<U03E0>);(<U03E3>,<U03E2>);(<U03E5>,<U03E4>);/
- (<U03E7>,<U03E6>);(<U03E9>,<U03E8>);(<U03EB>,<U03EA>);(<U03ED>,<U03EC>);/
- (<U03EF>,<U03EE>);(<U03F0>,<U039A>);(<U03F1>,<U03A1>);(<U03F2>,<U03F9>);/
- (<U03F3>,<U037F>);(<U03F5>,<U0395>);(<U03F8>,<U03F7>);(<U03FB>,<U03FA>);/
- (<U0430>,<U0410>);(<U0431>,<U0411>);(<U0432>,<U0412>);(<U0433>,<U0413>);/
- (<U0434>,<U0414>);(<U0435>,<U0415>);(<U0436>,<U0416>);(<U0437>,<U0417>);/
- (<U0438>,<U0418>);(<U0439>,<U0419>);(<U043A>,<U041A>);(<U043B>,<U041B>);/
- (<U043C>,<U041C>);(<U043D>,<U041D>);(<U043E>,<U041E>);(<U043F>,<U041F>);/
- (<U0440>,<U0420>);(<U0441>,<U0421>);(<U0442>,<U0422>);(<U0443>,<U0423>);/
- (<U0444>,<U0424>);(<U0445>,<U0425>);(<U0446>,<U0426>);(<U0447>,<U0427>);/
- (<U0448>,<U0428>);(<U0449>,<U0429>);(<U044A>,<U042A>);(<U044B>,<U042B>);/
- (<U044C>,<U042C>);(<U044D>,<U042D>);(<U044E>,<U042E>);(<U044F>,<U042F>);/
- (<U0450>,<U0400>);(<U0451>,<U0401>);(<U0452>,<U0402>);(<U0453>,<U0403>);/
- (<U0454>,<U0404>);(<U0455>,<U0405>);(<U0456>,<U0406>);(<U0457>,<U0407>);/
- (<U0458>,<U0408>);(<U0459>,<U0409>);(<U045A>,<U040A>);(<U045B>,<U040B>);/
- (<U045C>,<U040C>);(<U045D>,<U040D>);(<U045E>,<U040E>);(<U045F>,<U040F>);/
- (<U0461>,<U0460>);(<U0463>,<U0462>);(<U0465>,<U0464>);(<U0467>,<U0466>);/
- (<U0469>,<U0468>);(<U046B>,<U046A>);(<U046D>,<U046C>);(<U046F>,<U046E>);/
- (<U0471>,<U0470>);(<U0473>,<U0472>);(<U0475>,<U0474>);(<U0477>,<U0476>);/
- (<U0479>,<U0478>);(<U047B>,<U047A>);(<U047D>,<U047C>);(<U047F>,<U047E>);/
- (<U0481>,<U0480>);(<U048B>,<U048A>);(<U048D>,<U048C>);(<U048F>,<U048E>);/
- (<U0491>,<U0490>);(<U0493>,<U0492>);(<U0495>,<U0494>);(<U0497>,<U0496>);/
- (<U0499>,<U0498>);(<U049B>,<U049A>);(<U049D>,<U049C>);(<U049F>,<U049E>);/
- (<U04A1>,<U04A0>);(<U04A3>,<U04A2>);(<U04A5>,<U04A4>);(<U04A7>,<U04A6>);/
- (<U04A9>,<U04A8>);(<U04AB>,<U04AA>);(<U04AD>,<U04AC>);(<U04AF>,<U04AE>);/
- (<U04B1>,<U04B0>);(<U04B3>,<U04B2>);(<U04B5>,<U04B4>);(<U04B7>,<U04B6>);/
- (<U04B9>,<U04B8>);(<U04BB>,<U04BA>);(<U04BD>,<U04BC>);(<U04BF>,<U04BE>);/
- (<U04C2>,<U04C1>);(<U04C4>,<U04C3>);(<U04C6>,<U04C5>);(<U04C8>,<U04C7>);/
- (<U04CA>,<U04C9>);(<U04CC>,<U04CB>);(<U04CE>,<U04CD>);(<U04CF>,<U04C0>);/
- (<U04D1>,<U04D0>);(<U04D3>,<U04D2>);(<U04D5>,<U04D4>);(<U04D7>,<U04D6>);/
- (<U04D9>,<U04D8>);(<U04DB>,<U04DA>);(<U04DD>,<U04DC>);(<U04DF>,<U04DE>);/
- (<U04E1>,<U04E0>);(<U04E3>,<U04E2>);(<U04E5>,<U04E4>);(<U04E7>,<U04E6>);/
- (<U04E9>,<U04E8>);(<U04EB>,<U04EA>);(<U04ED>,<U04EC>);(<U04EF>,<U04EE>);/
- (<U04F1>,<U04F0>);(<U04F3>,<U04F2>);(<U04F5>,<U04F4>);(<U04F7>,<U04F6>);/
- (<U04F9>,<U04F8>);(<U04FB>,<U04FA>);(<U04FD>,<U04FC>);(<U04FF>,<U04FE>);/
- (<U0501>,<U0500>);(<U0503>,<U0502>);(<U0505>,<U0504>);(<U0507>,<U0506>);/
- (<U0509>,<U0508>);(<U050B>,<U050A>);(<U050D>,<U050C>);(<U050F>,<U050E>);/
- (<U0511>,<U0510>);(<U0513>,<U0512>);(<U0515>,<U0514>);(<U0517>,<U0516>);/
- (<U0519>,<U0518>);(<U051B>,<U051A>);(<U051D>,<U051C>);(<U051F>,<U051E>);/
- (<U0521>,<U0520>);(<U0523>,<U0522>);(<U0525>,<U0524>);(<U0527>,<U0526>);/
- (<U0529>,<U0528>);(<U052B>,<U052A>);(<U052D>,<U052C>);(<U052F>,<U052E>);/
- (<U0561>,<U0531>);(<U0562>,<U0532>);(<U0563>,<U0533>);(<U0564>,<U0534>);/
- (<U0565>,<U0535>);(<U0566>,<U0536>);(<U0567>,<U0537>);(<U0568>,<U0538>);/
- (<U0569>,<U0539>);(<U056A>,<U053A>);(<U056B>,<U053B>);(<U056C>,<U053C>);/
- (<U056D>,<U053D>);(<U056E>,<U053E>);(<U056F>,<U053F>);(<U0570>,<U0540>);/
- (<U0571>,<U0541>);(<U0572>,<U0542>);(<U0573>,<U0543>);(<U0574>,<U0544>);/
- (<U0575>,<U0545>);(<U0576>,<U0546>);(<U0577>,<U0547>);(<U0578>,<U0548>);/
- (<U0579>,<U0549>);(<U057A>,<U054A>);(<U057B>,<U054B>);(<U057C>,<U054C>);/
- (<U057D>,<U054D>);(<U057E>,<U054E>);(<U057F>,<U054F>);(<U0580>,<U0550>);/
- (<U0581>,<U0551>);(<U0582>,<U0552>);(<U0583>,<U0553>);(<U0584>,<U0554>);/
- (<U0585>,<U0555>);(<U0586>,<U0556>);(<U10D0>,<U1C90>);(<U10D1>,<U1C91>);/
- (<U10D2>,<U1C92>);(<U10D3>,<U1C93>);(<U10D4>,<U1C94>);(<U10D5>,<U1C95>);/
- (<U10D6>,<U1C96>);(<U10D7>,<U1C97>);(<U10D8>,<U1C98>);(<U10D9>,<U1C99>);/
- (<U10DA>,<U1C9A>);(<U10DB>,<U1C9B>);(<U10DC>,<U1C9C>);(<U10DD>,<U1C9D>);/
- (<U10DE>,<U1C9E>);(<U10DF>,<U1C9F>);(<U10E0>,<U1CA0>);(<U10E1>,<U1CA1>);/
- (<U10E2>,<U1CA2>);(<U10E3>,<U1CA3>);(<U10E4>,<U1CA4>);(<U10E5>,<U1CA5>);/
- (<U10E6>,<U1CA6>);(<U10E7>,<U1CA7>);(<U10E8>,<U1CA8>);(<U10E9>,<U1CA9>);/
- (<U10EA>,<U1CAA>);(<U10EB>,<U1CAB>);(<U10EC>,<U1CAC>);(<U10ED>,<U1CAD>);/
- (<U10EE>,<U1CAE>);(<U10EF>,<U1CAF>);(<U10F0>,<U1CB0>);(<U10F1>,<U1CB1>);/
- (<U10F2>,<U1CB2>);(<U10F3>,<U1CB3>);(<U10F4>,<U1CB4>);(<U10F5>,<U1CB5>);/
- (<U10F6>,<U1CB6>);(<U10F7>,<U1CB7>);(<U10F8>,<U1CB8>);(<U10F9>,<U1CB9>);/
- (<U10FA>,<U1CBA>);(<U10FD>,<U1CBD>);(<U10FE>,<U1CBE>);(<U10FF>,<U1CBF>);/
- (<U13F8>,<U13F0>);(<U13F9>,<U13F1>);(<U13FA>,<U13F2>);(<U13FB>,<U13F3>);/
- (<U13FC>,<U13F4>);(<U13FD>,<U13F5>);(<U1C80>,<U0412>);(<U1C81>,<U0414>);/
- (<U1C82>,<U041E>);(<U1C83>,<U0421>);(<U1C84>,<U0422>);(<U1C85>,<U0422>);/
- (<U1C86>,<U042A>);(<U1C87>,<U0462>);(<U1C88>,<UA64A>);(<U1D79>,<UA77D>);/
- (<U1D7D>,<U2C63>);(<U1E01>,<U1E00>);(<U1E03>,<U1E02>);(<U1E05>,<U1E04>);/
- (<U1E07>,<U1E06>);(<U1E09>,<U1E08>);(<U1E0B>,<U1E0A>);(<U1E0D>,<U1E0C>);/
- (<U1E0F>,<U1E0E>);(<U1E11>,<U1E10>);(<U1E13>,<U1E12>);(<U1E15>,<U1E14>);/
- (<U1E17>,<U1E16>);(<U1E19>,<U1E18>);(<U1E1B>,<U1E1A>);(<U1E1D>,<U1E1C>);/
- (<U1E1F>,<U1E1E>);(<U1E21>,<U1E20>);(<U1E23>,<U1E22>);(<U1E25>,<U1E24>);/
- (<U1E27>,<U1E26>);(<U1E29>,<U1E28>);(<U1E2B>,<U1E2A>);(<U1E2D>,<U1E2C>);/
- (<U1E2F>,<U1E2E>);(<U1E31>,<U1E30>);(<U1E33>,<U1E32>);(<U1E35>,<U1E34>);/
- (<U1E37>,<U1E36>);(<U1E39>,<U1E38>);(<U1E3B>,<U1E3A>);(<U1E3D>,<U1E3C>);/
- (<U1E3F>,<U1E3E>);(<U1E41>,<U1E40>);(<U1E43>,<U1E42>);(<U1E45>,<U1E44>);/
- (<U1E47>,<U1E46>);(<U1E49>,<U1E48>);(<U1E4B>,<U1E4A>);(<U1E4D>,<U1E4C>);/
- (<U1E4F>,<U1E4E>);(<U1E51>,<U1E50>);(<U1E53>,<U1E52>);(<U1E55>,<U1E54>);/
- (<U1E57>,<U1E56>);(<U1E59>,<U1E58>);(<U1E5B>,<U1E5A>);(<U1E5D>,<U1E5C>);/
- (<U1E5F>,<U1E5E>);(<U1E61>,<U1E60>);(<U1E63>,<U1E62>);(<U1E65>,<U1E64>);/
- (<U1E67>,<U1E66>);(<U1E69>,<U1E68>);(<U1E6B>,<U1E6A>);(<U1E6D>,<U1E6C>);/
- (<U1E6F>,<U1E6E>);(<U1E71>,<U1E70>);(<U1E73>,<U1E72>);(<U1E75>,<U1E74>);/
- (<U1E77>,<U1E76>);(<U1E79>,<U1E78>);(<U1E7B>,<U1E7A>);(<U1E7D>,<U1E7C>);/
- (<U1E7F>,<U1E7E>);(<U1E81>,<U1E80>);(<U1E83>,<U1E82>);(<U1E85>,<U1E84>);/
- (<U1E87>,<U1E86>);(<U1E89>,<U1E88>);(<U1E8B>,<U1E8A>);(<U1E8D>,<U1E8C>);/
- (<U1E8F>,<U1E8E>);(<U1E91>,<U1E90>);(<U1E93>,<U1E92>);(<U1E95>,<U1E94>);/
- (<U1E9B>,<U1E60>);(<U1EA1>,<U1EA0>);(<U1EA3>,<U1EA2>);(<U1EA5>,<U1EA4>);/
- (<U1EA7>,<U1EA6>);(<U1EA9>,<U1EA8>);(<U1EAB>,<U1EAA>);(<U1EAD>,<U1EAC>);/
- (<U1EAF>,<U1EAE>);(<U1EB1>,<U1EB0>);(<U1EB3>,<U1EB2>);(<U1EB5>,<U1EB4>);/
- (<U1EB7>,<U1EB6>);(<U1EB9>,<U1EB8>);(<U1EBB>,<U1EBA>);(<U1EBD>,<U1EBC>);/
- (<U1EBF>,<U1EBE>);(<U1EC1>,<U1EC0>);(<U1EC3>,<U1EC2>);(<U1EC5>,<U1EC4>);/
- (<U1EC7>,<U1EC6>);(<U1EC9>,<U1EC8>);(<U1ECB>,<U1ECA>);(<U1ECD>,<U1ECC>);/
- (<U1ECF>,<U1ECE>);(<U1ED1>,<U1ED0>);(<U1ED3>,<U1ED2>);(<U1ED5>,<U1ED4>);/
- (<U1ED7>,<U1ED6>);(<U1ED9>,<U1ED8>);(<U1EDB>,<U1EDA>);(<U1EDD>,<U1EDC>);/
- (<U1EDF>,<U1EDE>);(<U1EE1>,<U1EE0>);(<U1EE3>,<U1EE2>);(<U1EE5>,<U1EE4>);/
- (<U1EE7>,<U1EE6>);(<U1EE9>,<U1EE8>);(<U1EEB>,<U1EEA>);(<U1EED>,<U1EEC>);/
- (<U1EEF>,<U1EEE>);(<U1EF1>,<U1EF0>);(<U1EF3>,<U1EF2>);(<U1EF5>,<U1EF4>);/
- (<U1EF7>,<U1EF6>);(<U1EF9>,<U1EF8>);(<U1EFB>,<U1EFA>);(<U1EFD>,<U1EFC>);/
- (<U1EFF>,<U1EFE>);(<U1F00>,<U1F08>);(<U1F01>,<U1F09>);(<U1F02>,<U1F0A>);/
- (<U1F03>,<U1F0B>);(<U1F04>,<U1F0C>);(<U1F05>,<U1F0D>);(<U1F06>,<U1F0E>);/
- (<U1F07>,<U1F0F>);(<U1F10>,<U1F18>);(<U1F11>,<U1F19>);(<U1F12>,<U1F1A>);/
- (<U1F13>,<U1F1B>);(<U1F14>,<U1F1C>);(<U1F15>,<U1F1D>);(<U1F20>,<U1F28>);/
- (<U1F21>,<U1F29>);(<U1F22>,<U1F2A>);(<U1F23>,<U1F2B>);(<U1F24>,<U1F2C>);/
- (<U1F25>,<U1F2D>);(<U1F26>,<U1F2E>);(<U1F27>,<U1F2F>);(<U1F30>,<U1F38>);/
- (<U1F31>,<U1F39>);(<U1F32>,<U1F3A>);(<U1F33>,<U1F3B>);(<U1F34>,<U1F3C>);/
- (<U1F35>,<U1F3D>);(<U1F36>,<U1F3E>);(<U1F37>,<U1F3F>);(<U1F40>,<U1F48>);/
- (<U1F41>,<U1F49>);(<U1F42>,<U1F4A>);(<U1F43>,<U1F4B>);(<U1F44>,<U1F4C>);/
- (<U1F45>,<U1F4D>);(<U1F51>,<U1F59>);(<U1F53>,<U1F5B>);(<U1F55>,<U1F5D>);/
- (<U1F57>,<U1F5F>);(<U1F60>,<U1F68>);(<U1F61>,<U1F69>);(<U1F62>,<U1F6A>);/
- (<U1F63>,<U1F6B>);(<U1F64>,<U1F6C>);(<U1F65>,<U1F6D>);(<U1F66>,<U1F6E>);/
- (<U1F67>,<U1F6F>);(<U1F70>,<U1FBA>);(<U1F71>,<U1FBB>);(<U1F72>,<U1FC8>);/
- (<U1F73>,<U1FC9>);(<U1F74>,<U1FCA>);(<U1F75>,<U1FCB>);(<U1F76>,<U1FDA>);/
- (<U1F77>,<U1FDB>);(<U1F78>,<U1FF8>);(<U1F79>,<U1FF9>);(<U1F7A>,<U1FEA>);/
- (<U1F7B>,<U1FEB>);(<U1F7C>,<U1FFA>);(<U1F7D>,<U1FFB>);(<U1F80>,<U1F88>);/
- (<U1F81>,<U1F89>);(<U1F82>,<U1F8A>);(<U1F83>,<U1F8B>);(<U1F84>,<U1F8C>);/
- (<U1F85>,<U1F8D>);(<U1F86>,<U1F8E>);(<U1F87>,<U1F8F>);(<U1F90>,<U1F98>);/
- (<U1F91>,<U1F99>);(<U1F92>,<U1F9A>);(<U1F93>,<U1F9B>);(<U1F94>,<U1F9C>);/
- (<U1F95>,<U1F9D>);(<U1F96>,<U1F9E>);(<U1F97>,<U1F9F>);(<U1FA0>,<U1FA8>);/
- (<U1FA1>,<U1FA9>);(<U1FA2>,<U1FAA>);(<U1FA3>,<U1FAB>);(<U1FA4>,<U1FAC>);/
- (<U1FA5>,<U1FAD>);(<U1FA6>,<U1FAE>);(<U1FA7>,<U1FAF>);(<U1FB0>,<U1FB8>);/
- (<U1FB1>,<U1FB9>);(<U1FB3>,<U1FBC>);(<U1FBE>,<U0399>);(<U1FC3>,<U1FCC>);/
- (<U1FD0>,<U1FD8>);(<U1FD1>,<U1FD9>);(<U1FE0>,<U1FE8>);(<U1FE1>,<U1FE9>);/
- (<U1FE5>,<U1FEC>);(<U1FF3>,<U1FFC>);(<U214E>,<U2132>);(<U2170>,<U2160>);/
- (<U2171>,<U2161>);(<U2172>,<U2162>);(<U2173>,<U2163>);(<U2174>,<U2164>);/
- (<U2175>,<U2165>);(<U2176>,<U2166>);(<U2177>,<U2167>);(<U2178>,<U2168>);/
- (<U2179>,<U2169>);(<U217A>,<U216A>);(<U217B>,<U216B>);(<U217C>,<U216C>);/
- (<U217D>,<U216D>);(<U217E>,<U216E>);(<U217F>,<U216F>);(<U2184>,<U2183>);/
- (<U24D0>,<U24B6>);(<U24D1>,<U24B7>);(<U24D2>,<U24B8>);(<U24D3>,<U24B9>);/
- (<U24D4>,<U24BA>);(<U24D5>,<U24BB>);(<U24D6>,<U24BC>);(<U24D7>,<U24BD>);/
- (<U24D8>,<U24BE>);(<U24D9>,<U24BF>);(<U24DA>,<U24C0>);(<U24DB>,<U24C1>);/
- (<U24DC>,<U24C2>);(<U24DD>,<U24C3>);(<U24DE>,<U24C4>);(<U24DF>,<U24C5>);/
- (<U24E0>,<U24C6>);(<U24E1>,<U24C7>);(<U24E2>,<U24C8>);(<U24E3>,<U24C9>);/
- (<U24E4>,<U24CA>);(<U24E5>,<U24CB>);(<U24E6>,<U24CC>);(<U24E7>,<U24CD>);/
- (<U24E8>,<U24CE>);(<U24E9>,<U24CF>);(<U2C30>,<U2C00>);(<U2C31>,<U2C01>);/
- (<U2C32>,<U2C02>);(<U2C33>,<U2C03>);(<U2C34>,<U2C04>);(<U2C35>,<U2C05>);/
- (<U2C36>,<U2C06>);(<U2C37>,<U2C07>);(<U2C38>,<U2C08>);(<U2C39>,<U2C09>);/
- (<U2C3A>,<U2C0A>);(<U2C3B>,<U2C0B>);(<U2C3C>,<U2C0C>);(<U2C3D>,<U2C0D>);/
- (<U2C3E>,<U2C0E>);(<U2C3F>,<U2C0F>);(<U2C40>,<U2C10>);(<U2C41>,<U2C11>);/
- (<U2C42>,<U2C12>);(<U2C43>,<U2C13>);(<U2C44>,<U2C14>);(<U2C45>,<U2C15>);/
- (<U2C46>,<U2C16>);(<U2C47>,<U2C17>);(<U2C48>,<U2C18>);(<U2C49>,<U2C19>);/
- (<U2C4A>,<U2C1A>);(<U2C4B>,<U2C1B>);(<U2C4C>,<U2C1C>);(<U2C4D>,<U2C1D>);/
- (<U2C4E>,<U2C1E>);(<U2C4F>,<U2C1F>);(<U2C50>,<U2C20>);(<U2C51>,<U2C21>);/
- (<U2C52>,<U2C22>);(<U2C53>,<U2C23>);(<U2C54>,<U2C24>);(<U2C55>,<U2C25>);/
- (<U2C56>,<U2C26>);(<U2C57>,<U2C27>);(<U2C58>,<U2C28>);(<U2C59>,<U2C29>);/
- (<U2C5A>,<U2C2A>);(<U2C5B>,<U2C2B>);(<U2C5C>,<U2C2C>);(<U2C5D>,<U2C2D>);/
- (<U2C5E>,<U2C2E>);(<U2C61>,<U2C60>);(<U2C65>,<U023A>);(<U2C66>,<U023E>);/
- (<U2C68>,<U2C67>);(<U2C6A>,<U2C69>);(<U2C6C>,<U2C6B>);(<U2C73>,<U2C72>);/
- (<U2C76>,<U2C75>);(<U2C81>,<U2C80>);(<U2C83>,<U2C82>);(<U2C85>,<U2C84>);/
- (<U2C87>,<U2C86>);(<U2C89>,<U2C88>);(<U2C8B>,<U2C8A>);(<U2C8D>,<U2C8C>);/
- (<U2C8F>,<U2C8E>);(<U2C91>,<U2C90>);(<U2C93>,<U2C92>);(<U2C95>,<U2C94>);/
- (<U2C97>,<U2C96>);(<U2C99>,<U2C98>);(<U2C9B>,<U2C9A>);(<U2C9D>,<U2C9C>);/
- (<U2C9F>,<U2C9E>);(<U2CA1>,<U2CA0>);(<U2CA3>,<U2CA2>);(<U2CA5>,<U2CA4>);/
- (<U2CA7>,<U2CA6>);(<U2CA9>,<U2CA8>);(<U2CAB>,<U2CAA>);(<U2CAD>,<U2CAC>);/
- (<U2CAF>,<U2CAE>);(<U2CB1>,<U2CB0>);(<U2CB3>,<U2CB2>);(<U2CB5>,<U2CB4>);/
- (<U2CB7>,<U2CB6>);(<U2CB9>,<U2CB8>);(<U2CBB>,<U2CBA>);(<U2CBD>,<U2CBC>);/
- (<U2CBF>,<U2CBE>);(<U2CC1>,<U2CC0>);(<U2CC3>,<U2CC2>);(<U2CC5>,<U2CC4>);/
- (<U2CC7>,<U2CC6>);(<U2CC9>,<U2CC8>);(<U2CCB>,<U2CCA>);(<U2CCD>,<U2CCC>);/
- (<U2CCF>,<U2CCE>);(<U2CD1>,<U2CD0>);(<U2CD3>,<U2CD2>);(<U2CD5>,<U2CD4>);/
- (<U2CD7>,<U2CD6>);(<U2CD9>,<U2CD8>);(<U2CDB>,<U2CDA>);(<U2CDD>,<U2CDC>);/
- (<U2CDF>,<U2CDE>);(<U2CE1>,<U2CE0>);(<U2CE3>,<U2CE2>);(<U2CEC>,<U2CEB>);/
- (<U2CEE>,<U2CED>);(<U2CF3>,<U2CF2>);(<U2D00>,<U10A0>);(<U2D01>,<U10A1>);/
- (<U2D02>,<U10A2>);(<U2D03>,<U10A3>);(<U2D04>,<U10A4>);(<U2D05>,<U10A5>);/
- (<U2D06>,<U10A6>);(<U2D07>,<U10A7>);(<U2D08>,<U10A8>);(<U2D09>,<U10A9>);/
- (<U2D0A>,<U10AA>);(<U2D0B>,<U10AB>);(<U2D0C>,<U10AC>);(<U2D0D>,<U10AD>);/
- (<U2D0E>,<U10AE>);(<U2D0F>,<U10AF>);(<U2D10>,<U10B0>);(<U2D11>,<U10B1>);/
- (<U2D12>,<U10B2>);(<U2D13>,<U10B3>);(<U2D14>,<U10B4>);(<U2D15>,<U10B5>);/
- (<U2D16>,<U10B6>);(<U2D17>,<U10B7>);(<U2D18>,<U10B8>);(<U2D19>,<U10B9>);/
- (<U2D1A>,<U10BA>);(<U2D1B>,<U10BB>);(<U2D1C>,<U10BC>);(<U2D1D>,<U10BD>);/
- (<U2D1E>,<U10BE>);(<U2D1F>,<U10BF>);(<U2D20>,<U10C0>);(<U2D21>,<U10C1>);/
- (<U2D22>,<U10C2>);(<U2D23>,<U10C3>);(<U2D24>,<U10C4>);(<U2D25>,<U10C5>);/
- (<U2D27>,<U10C7>);(<U2D2D>,<U10CD>);(<UA641>,<UA640>);(<UA643>,<UA642>);/
- (<UA645>,<UA644>);(<UA647>,<UA646>);(<UA649>,<UA648>);(<UA64B>,<UA64A>);/
- (<UA64D>,<UA64C>);(<UA64F>,<UA64E>);(<UA651>,<UA650>);(<UA653>,<UA652>);/
- (<UA655>,<UA654>);(<UA657>,<UA656>);(<UA659>,<UA658>);(<UA65B>,<UA65A>);/
- (<UA65D>,<UA65C>);(<UA65F>,<UA65E>);(<UA661>,<UA660>);(<UA663>,<UA662>);/
- (<UA665>,<UA664>);(<UA667>,<UA666>);(<UA669>,<UA668>);(<UA66B>,<UA66A>);/
- (<UA66D>,<UA66C>);(<UA681>,<UA680>);(<UA683>,<UA682>);(<UA685>,<UA684>);/
- (<UA687>,<UA686>);(<UA689>,<UA688>);(<UA68B>,<UA68A>);(<UA68D>,<UA68C>);/
- (<UA68F>,<UA68E>);(<UA691>,<UA690>);(<UA693>,<UA692>);(<UA695>,<UA694>);/
- (<UA697>,<UA696>);(<UA699>,<UA698>);(<UA69B>,<UA69A>);(<UA723>,<UA722>);/
- (<UA725>,<UA724>);(<UA727>,<UA726>);(<UA729>,<UA728>);(<UA72B>,<UA72A>);/
- (<UA72D>,<UA72C>);(<UA72F>,<UA72E>);(<UA733>,<UA732>);(<UA735>,<UA734>);/
- (<UA737>,<UA736>);(<UA739>,<UA738>);(<UA73B>,<UA73A>);(<UA73D>,<UA73C>);/
- (<UA73F>,<UA73E>);(<UA741>,<UA740>);(<UA743>,<UA742>);(<UA745>,<UA744>);/
- (<UA747>,<UA746>);(<UA749>,<UA748>);(<UA74B>,<UA74A>);(<UA74D>,<UA74C>);/
- (<UA74F>,<UA74E>);(<UA751>,<UA750>);(<UA753>,<UA752>);(<UA755>,<UA754>);/
- (<UA757>,<UA756>);(<UA759>,<UA758>);(<UA75B>,<UA75A>);(<UA75D>,<UA75C>);/
- (<UA75F>,<UA75E>);(<UA761>,<UA760>);(<UA763>,<UA762>);(<UA765>,<UA764>);/
- (<UA767>,<UA766>);(<UA769>,<UA768>);(<UA76B>,<UA76A>);(<UA76D>,<UA76C>);/
- (<UA76F>,<UA76E>);(<UA77A>,<UA779>);(<UA77C>,<UA77B>);(<UA77F>,<UA77E>);/
- (<UA781>,<UA780>);(<UA783>,<UA782>);(<UA785>,<UA784>);(<UA787>,<UA786>);/
- (<UA78C>,<UA78B>);(<UA791>,<UA790>);(<UA793>,<UA792>);(<UA797>,<UA796>);/
- (<UA799>,<UA798>);(<UA79B>,<UA79A>);(<UA79D>,<UA79C>);(<UA79F>,<UA79E>);/
- (<UA7A1>,<UA7A0>);(<UA7A3>,<UA7A2>);(<UA7A5>,<UA7A4>);(<UA7A7>,<UA7A6>);/
- (<UA7A9>,<UA7A8>);(<UA7B5>,<UA7B4>);(<UA7B7>,<UA7B6>);(<UA7B9>,<UA7B8>);/
- (<UAB53>,<UA7B3>);(<UAB70>,<U13A0>);(<UAB71>,<U13A1>);(<UAB72>,<U13A2>);/
- (<UAB73>,<U13A3>);(<UAB74>,<U13A4>);(<UAB75>,<U13A5>);(<UAB76>,<U13A6>);/
- (<UAB77>,<U13A7>);(<UAB78>,<U13A8>);(<UAB79>,<U13A9>);(<UAB7A>,<U13AA>);/
- (<UAB7B>,<U13AB>);(<UAB7C>,<U13AC>);(<UAB7D>,<U13AD>);(<UAB7E>,<U13AE>);/
- (<UAB7F>,<U13AF>);(<UAB80>,<U13B0>);(<UAB81>,<U13B1>);(<UAB82>,<U13B2>);/
- (<UAB83>,<U13B3>);(<UAB84>,<U13B4>);(<UAB85>,<U13B5>);(<UAB86>,<U13B6>);/
- (<UAB87>,<U13B7>);(<UAB88>,<U13B8>);(<UAB89>,<U13B9>);(<UAB8A>,<U13BA>);/
- (<UAB8B>,<U13BB>);(<UAB8C>,<U13BC>);(<UAB8D>,<U13BD>);(<UAB8E>,<U13BE>);/
- (<UAB8F>,<U13BF>);(<UAB90>,<U13C0>);(<UAB91>,<U13C1>);(<UAB92>,<U13C2>);/
- (<UAB93>,<U13C3>);(<UAB94>,<U13C4>);(<UAB95>,<U13C5>);(<UAB96>,<U13C6>);/
- (<UAB97>,<U13C7>);(<UAB98>,<U13C8>);(<UAB99>,<U13C9>);(<UAB9A>,<U13CA>);/
- (<UAB9B>,<U13CB>);(<UAB9C>,<U13CC>);(<UAB9D>,<U13CD>);(<UAB9E>,<U13CE>);/
- (<UAB9F>,<U13CF>);(<UABA0>,<U13D0>);(<UABA1>,<U13D1>);(<UABA2>,<U13D2>);/
- (<UABA3>,<U13D3>);(<UABA4>,<U13D4>);(<UABA5>,<U13D5>);(<UABA6>,<U13D6>);/
- (<UABA7>,<U13D7>);(<UABA8>,<U13D8>);(<UABA9>,<U13D9>);(<UABAA>,<U13DA>);/
- (<UABAB>,<U13DB>);(<UABAC>,<U13DC>);(<UABAD>,<U13DD>);(<UABAE>,<U13DE>);/
- (<UABAF>,<U13DF>);(<UABB0>,<U13E0>);(<UABB1>,<U13E1>);(<UABB2>,<U13E2>);/
- (<UABB3>,<U13E3>);(<UABB4>,<U13E4>);(<UABB5>,<U13E5>);(<UABB6>,<U13E6>);/
- (<UABB7>,<U13E7>);(<UABB8>,<U13E8>);(<UABB9>,<U13E9>);(<UABBA>,<U13EA>);/
- (<UABBB>,<U13EB>);(<UABBC>,<U13EC>);(<UABBD>,<U13ED>);(<UABBE>,<U13EE>);/
- (<UABBF>,<U13EF>);(<UFF41>,<UFF21>);(<UFF42>,<UFF22>);(<UFF43>,<UFF23>);/
- (<UFF44>,<UFF24>);(<UFF45>,<UFF25>);(<UFF46>,<UFF26>);(<UFF47>,<UFF27>);/
- (<UFF48>,<UFF28>);(<UFF49>,<UFF29>);(<UFF4A>,<UFF2A>);(<UFF4B>,<UFF2B>);/
- (<UFF4C>,<UFF2C>);(<UFF4D>,<UFF2D>);(<UFF4E>,<UFF2E>);(<UFF4F>,<UFF2F>);/
- (<UFF50>,<UFF30>);(<UFF51>,<UFF31>);(<UFF52>,<UFF32>);(<UFF53>,<UFF33>);/
- (<UFF54>,<UFF34>);(<UFF55>,<UFF35>);(<UFF56>,<UFF36>);(<UFF57>,<UFF37>);/
- (<UFF58>,<UFF38>);(<UFF59>,<UFF39>);(<UFF5A>,<UFF3A>);/
- (<U00010428>,<U00010400>);(<U00010429>,<U00010401>);/
- (<U0001042A>,<U00010402>);(<U0001042B>,<U00010403>);/
- (<U0001042C>,<U00010404>);(<U0001042D>,<U00010405>);/
- (<U0001042E>,<U00010406>);(<U0001042F>,<U00010407>);/
- (<U00010430>,<U00010408>);(<U00010431>,<U00010409>);/
- (<U00010432>,<U0001040A>);(<U00010433>,<U0001040B>);/
- (<U00010434>,<U0001040C>);(<U00010435>,<U0001040D>);/
- (<U00010436>,<U0001040E>);(<U00010437>,<U0001040F>);/
- (<U00010438>,<U00010410>);(<U00010439>,<U00010411>);/
- (<U0001043A>,<U00010412>);(<U0001043B>,<U00010413>);/
- (<U0001043C>,<U00010414>);(<U0001043D>,<U00010415>);/
- (<U0001043E>,<U00010416>);(<U0001043F>,<U00010417>);/
- (<U00010440>,<U00010418>);(<U00010441>,<U00010419>);/
- (<U00010442>,<U0001041A>);(<U00010443>,<U0001041B>);/
- (<U00010444>,<U0001041C>);(<U00010445>,<U0001041D>);/
- (<U00010446>,<U0001041E>);(<U00010447>,<U0001041F>);/
- (<U00010448>,<U00010420>);(<U00010449>,<U00010421>);/
- (<U0001044A>,<U00010422>);(<U0001044B>,<U00010423>);/
- (<U0001044C>,<U00010424>);(<U0001044D>,<U00010425>);/
- (<U0001044E>,<U00010426>);(<U0001044F>,<U00010427>);/
- (<U000104D8>,<U000104B0>);(<U000104D9>,<U000104B1>);/
- (<U000104DA>,<U000104B2>);(<U000104DB>,<U000104B3>);/
- (<U000104DC>,<U000104B4>);(<U000104DD>,<U000104B5>);/
- (<U000104DE>,<U000104B6>);(<U000104DF>,<U000104B7>);/
- (<U000104E0>,<U000104B8>);(<U000104E1>,<U000104B9>);/
- (<U000104E2>,<U000104BA>);(<U000104E3>,<U000104BB>);/
- (<U000104E4>,<U000104BC>);(<U000104E5>,<U000104BD>);/
- (<U000104E6>,<U000104BE>);(<U000104E7>,<U000104BF>);/
- (<U000104E8>,<U000104C0>);(<U000104E9>,<U000104C1>);/
- (<U000104EA>,<U000104C2>);(<U000104EB>,<U000104C3>);/
- (<U000104EC>,<U000104C4>);(<U000104ED>,<U000104C5>);/
- (<U000104EE>,<U000104C6>);(<U000104EF>,<U000104C7>);/
- (<U000104F0>,<U000104C8>);(<U000104F1>,<U000104C9>);/
- (<U000104F2>,<U000104CA>);(<U000104F3>,<U000104CB>);/
- (<U000104F4>,<U000104CC>);(<U000104F5>,<U000104CD>);/
- (<U000104F6>,<U000104CE>);(<U000104F7>,<U000104CF>);/
- (<U000104F8>,<U000104D0>);(<U000104F9>,<U000104D1>);/
- (<U000104FA>,<U000104D2>);(<U000104FB>,<U000104D3>);/
- (<U00010CC0>,<U00010C80>);(<U00010CC1>,<U00010C81>);/
- (<U00010CC2>,<U00010C82>);(<U00010CC3>,<U00010C83>);/
- (<U00010CC4>,<U00010C84>);(<U00010CC5>,<U00010C85>);/
- (<U00010CC6>,<U00010C86>);(<U00010CC7>,<U00010C87>);/
- (<U00010CC8>,<U00010C88>);(<U00010CC9>,<U00010C89>);/
- (<U00010CCA>,<U00010C8A>);(<U00010CCB>,<U00010C8B>);/
- (<U00010CCC>,<U00010C8C>);(<U00010CCD>,<U00010C8D>);/
- (<U00010CCE>,<U00010C8E>);(<U00010CCF>,<U00010C8F>);/
- (<U00010CD0>,<U00010C90>);(<U00010CD1>,<U00010C91>);/
- (<U00010CD2>,<U00010C92>);(<U00010CD3>,<U00010C93>);/
- (<U00010CD4>,<U00010C94>);(<U00010CD5>,<U00010C95>);/
- (<U00010CD6>,<U00010C96>);(<U00010CD7>,<U00010C97>);/
- (<U00010CD8>,<U00010C98>);(<U00010CD9>,<U00010C99>);/
- (<U00010CDA>,<U00010C9A>);(<U00010CDB>,<U00010C9B>);/
- (<U00010CDC>,<U00010C9C>);(<U00010CDD>,<U00010C9D>);/
- (<U00010CDE>,<U00010C9E>);(<U00010CDF>,<U00010C9F>);/
- (<U00010CE0>,<U00010CA0>);(<U00010CE1>,<U00010CA1>);/
- (<U00010CE2>,<U00010CA2>);(<U00010CE3>,<U00010CA3>);/
- (<U00010CE4>,<U00010CA4>);(<U00010CE5>,<U00010CA5>);/
- (<U00010CE6>,<U00010CA6>);(<U00010CE7>,<U00010CA7>);/
- (<U00010CE8>,<U00010CA8>);(<U00010CE9>,<U00010CA9>);/
- (<U00010CEA>,<U00010CAA>);(<U00010CEB>,<U00010CAB>);/
- (<U00010CEC>,<U00010CAC>);(<U00010CED>,<U00010CAD>);/
- (<U00010CEE>,<U00010CAE>);(<U00010CEF>,<U00010CAF>);/
- (<U00010CF0>,<U00010CB0>);(<U00010CF1>,<U00010CB1>);/
- (<U00010CF2>,<U00010CB2>);(<U000118C0>,<U000118A0>);/
- (<U000118C1>,<U000118A1>);(<U000118C2>,<U000118A2>);/
- (<U000118C3>,<U000118A3>);(<U000118C4>,<U000118A4>);/
- (<U000118C5>,<U000118A5>);(<U000118C6>,<U000118A6>);/
- (<U000118C7>,<U000118A7>);(<U000118C8>,<U000118A8>);/
- (<U000118C9>,<U000118A9>);(<U000118CA>,<U000118AA>);/
- (<U000118CB>,<U000118AB>);(<U000118CC>,<U000118AC>);/
- (<U000118CD>,<U000118AD>);(<U000118CE>,<U000118AE>);/
- (<U000118CF>,<U000118AF>);(<U000118D0>,<U000118B0>);/
- (<U000118D1>,<U000118B1>);(<U000118D2>,<U000118B2>);/
- (<U000118D3>,<U000118B3>);(<U000118D4>,<U000118B4>);/
- (<U000118D5>,<U000118B5>);(<U000118D6>,<U000118B6>);/
- (<U000118D7>,<U000118B7>);(<U000118D8>,<U000118B8>);/
- (<U000118D9>,<U000118B9>);(<U000118DA>,<U000118BA>);/
- (<U000118DB>,<U000118BB>);(<U000118DC>,<U000118BC>);/
- (<U000118DD>,<U000118BD>);(<U000118DE>,<U000118BE>);/
- (<U000118DF>,<U000118BF>);(<U00016E60>,<U00016E40>);/
- (<U00016E61>,<U00016E41>);(<U00016E62>,<U00016E42>);/
- (<U00016E63>,<U00016E43>);(<U00016E64>,<U00016E44>);/
- (<U00016E65>,<U00016E45>);(<U00016E66>,<U00016E46>);/
- (<U00016E67>,<U00016E47>);(<U00016E68>,<U00016E48>);/
- (<U00016E69>,<U00016E49>);(<U00016E6A>,<U00016E4A>);/
- (<U00016E6B>,<U00016E4B>);(<U00016E6C>,<U00016E4C>);/
- (<U00016E6D>,<U00016E4D>);(<U00016E6E>,<U00016E4E>);/
- (<U00016E6F>,<U00016E4F>);(<U00016E70>,<U00016E50>);/
- (<U00016E71>,<U00016E51>);(<U00016E72>,<U00016E52>);/
- (<U00016E73>,<U00016E53>);(<U00016E74>,<U00016E54>);/
- (<U00016E75>,<U00016E55>);(<U00016E76>,<U00016E56>);/
- (<U00016E77>,<U00016E57>);(<U00016E78>,<U00016E58>);/
- (<U00016E79>,<U00016E59>);(<U00016E7A>,<U00016E5A>);/
- (<U00016E7B>,<U00016E5B>);(<U00016E7C>,<U00016E5C>);/
- (<U00016E7D>,<U00016E5D>);(<U00016E7E>,<U00016E5E>);/
- (<U00016E7F>,<U00016E5F>);(<U0001E922>,<U0001E900>);/
- (<U0001E923>,<U0001E901>);(<U0001E924>,<U0001E902>);/
- (<U0001E925>,<U0001E903>);(<U0001E926>,<U0001E904>);/
- (<U0001E927>,<U0001E905>);(<U0001E928>,<U0001E906>);/
- (<U0001E929>,<U0001E907>);(<U0001E92A>,<U0001E908>);/
- (<U0001E92B>,<U0001E909>);(<U0001E92C>,<U0001E90A>);/
- (<U0001E92D>,<U0001E90B>);(<U0001E92E>,<U0001E90C>);/
- (<U0001E92F>,<U0001E90D>);(<U0001E930>,<U0001E90E>);/
- (<U0001E931>,<U0001E90F>);(<U0001E932>,<U0001E910>);/
- (<U0001E933>,<U0001E911>);(<U0001E934>,<U0001E912>);/
- (<U0001E935>,<U0001E913>);(<U0001E936>,<U0001E914>);/
- (<U0001E937>,<U0001E915>);(<U0001E938>,<U0001E916>);/
- (<U0001E939>,<U0001E917>);(<U0001E93A>,<U0001E918>);/
- (<U0001E93B>,<U0001E919>);(<U0001E93C>,<U0001E91A>);/
- (<U0001E93D>,<U0001E91B>);(<U0001E93E>,<U0001E91C>);/
- (<U0001E93F>,<U0001E91D>);(<U0001E940>,<U0001E91E>);/
- (<U0001E941>,<U0001E91F>);(<U0001E942>,<U0001E920>);/
- (<U0001E943>,<U0001E921>)
+ (<U0280>,<U01A6>);(<U0282>,<UA7C5>);(<U0283>,<U01A9>);(<U0287>,<UA7B1>);/
+ (<U0288>,<U01AE>);(<U0289>,<U0244>);(<U028A>,<U01B1>);(<U028B>,<U01B2>);/
+ (<U028C>,<U0245>);(<U0292>,<U01B7>);(<U029D>,<UA7B2>);(<U029E>,<UA7B0>);/
+ (<U0345>,<U0399>);(<U0371>,<U0370>);(<U0373>,<U0372>);(<U0377>,<U0376>);/
+ (<U037B>,<U03FD>);(<U037C>,<U03FE>);(<U037D>,<U03FF>);(<U03AC>,<U0386>);/
+ (<U03AD>,<U0388>);(<U03AE>,<U0389>);(<U03AF>,<U038A>);(<U03B1>,<U0391>);/
+ (<U03B2>,<U0392>);(<U03B3>,<U0393>);(<U03B4>,<U0394>);(<U03B5>,<U0395>);/
+ (<U03B6>,<U0396>);(<U03B7>,<U0397>);(<U03B8>,<U0398>);(<U03B9>,<U0399>);/
+ (<U03BA>,<U039A>);(<U03BB>,<U039B>);(<U03BC>,<U039C>);(<U03BD>,<U039D>);/
+ (<U03BE>,<U039E>);(<U03BF>,<U039F>);(<U03C0>,<U03A0>);(<U03C1>,<U03A1>);/
+ (<U03C2>,<U03A3>);(<U03C3>,<U03A3>);(<U03C4>,<U03A4>);(<U03C5>,<U03A5>);/
+ (<U03C6>,<U03A6>);(<U03C7>,<U03A7>);(<U03C8>,<U03A8>);(<U03C9>,<U03A9>);/
+ (<U03CA>,<U03AA>);(<U03CB>,<U03AB>);(<U03CC>,<U038C>);(<U03CD>,<U038E>);/
+ (<U03CE>,<U038F>);(<U03D0>,<U0392>);(<U03D1>,<U0398>);(<U03D5>,<U03A6>);/
+ (<U03D6>,<U03A0>);(<U03D7>,<U03CF>);(<U03D9>,<U03D8>);(<U03DB>,<U03DA>);/
+ (<U03DD>,<U03DC>);(<U03DF>,<U03DE>);(<U03E1>,<U03E0>);(<U03E3>,<U03E2>);/
+ (<U03E5>,<U03E4>);(<U03E7>,<U03E6>);(<U03E9>,<U03E8>);(<U03EB>,<U03EA>);/
+ (<U03ED>,<U03EC>);(<U03EF>,<U03EE>);(<U03F0>,<U039A>);(<U03F1>,<U03A1>);/
+ (<U03F2>,<U03F9>);(<U03F3>,<U037F>);(<U03F5>,<U0395>);(<U03F8>,<U03F7>);/
+ (<U03FB>,<U03FA>);(<U0430>,<U0410>);(<U0431>,<U0411>);(<U0432>,<U0412>);/
+ (<U0433>,<U0413>);(<U0434>,<U0414>);(<U0435>,<U0415>);(<U0436>,<U0416>);/
+ (<U0437>,<U0417>);(<U0438>,<U0418>);(<U0439>,<U0419>);(<U043A>,<U041A>);/
+ (<U043B>,<U041B>);(<U043C>,<U041C>);(<U043D>,<U041D>);(<U043E>,<U041E>);/
+ (<U043F>,<U041F>);(<U0440>,<U0420>);(<U0441>,<U0421>);(<U0442>,<U0422>);/
+ (<U0443>,<U0423>);(<U0444>,<U0424>);(<U0445>,<U0425>);(<U0446>,<U0426>);/
+ (<U0447>,<U0427>);(<U0448>,<U0428>);(<U0449>,<U0429>);(<U044A>,<U042A>);/
+ (<U044B>,<U042B>);(<U044C>,<U042C>);(<U044D>,<U042D>);(<U044E>,<U042E>);/
+ (<U044F>,<U042F>);(<U0450>,<U0400>);(<U0451>,<U0401>);(<U0452>,<U0402>);/
+ (<U0453>,<U0403>);(<U0454>,<U0404>);(<U0455>,<U0405>);(<U0456>,<U0406>);/
+ (<U0457>,<U0407>);(<U0458>,<U0408>);(<U0459>,<U0409>);(<U045A>,<U040A>);/
+ (<U045B>,<U040B>);(<U045C>,<U040C>);(<U045D>,<U040D>);(<U045E>,<U040E>);/
+ (<U045F>,<U040F>);(<U0461>,<U0460>);(<U0463>,<U0462>);(<U0465>,<U0464>);/
+ (<U0467>,<U0466>);(<U0469>,<U0468>);(<U046B>,<U046A>);(<U046D>,<U046C>);/
+ (<U046F>,<U046E>);(<U0471>,<U0470>);(<U0473>,<U0472>);(<U0475>,<U0474>);/
+ (<U0477>,<U0476>);(<U0479>,<U0478>);(<U047B>,<U047A>);(<U047D>,<U047C>);/
+ (<U047F>,<U047E>);(<U0481>,<U0480>);(<U048B>,<U048A>);(<U048D>,<U048C>);/
+ (<U048F>,<U048E>);(<U0491>,<U0490>);(<U0493>,<U0492>);(<U0495>,<U0494>);/
+ (<U0497>,<U0496>);(<U0499>,<U0498>);(<U049B>,<U049A>);(<U049D>,<U049C>);/
+ (<U049F>,<U049E>);(<U04A1>,<U04A0>);(<U04A3>,<U04A2>);(<U04A5>,<U04A4>);/
+ (<U04A7>,<U04A6>);(<U04A9>,<U04A8>);(<U04AB>,<U04AA>);(<U04AD>,<U04AC>);/
+ (<U04AF>,<U04AE>);(<U04B1>,<U04B0>);(<U04B3>,<U04B2>);(<U04B5>,<U04B4>);/
+ (<U04B7>,<U04B6>);(<U04B9>,<U04B8>);(<U04BB>,<U04BA>);(<U04BD>,<U04BC>);/
+ (<U04BF>,<U04BE>);(<U04C2>,<U04C1>);(<U04C4>,<U04C3>);(<U04C6>,<U04C5>);/
+ (<U04C8>,<U04C7>);(<U04CA>,<U04C9>);(<U04CC>,<U04CB>);(<U04CE>,<U04CD>);/
+ (<U04CF>,<U04C0>);(<U04D1>,<U04D0>);(<U04D3>,<U04D2>);(<U04D5>,<U04D4>);/
+ (<U04D7>,<U04D6>);(<U04D9>,<U04D8>);(<U04DB>,<U04DA>);(<U04DD>,<U04DC>);/
+ (<U04DF>,<U04DE>);(<U04E1>,<U04E0>);(<U04E3>,<U04E2>);(<U04E5>,<U04E4>);/
+ (<U04E7>,<U04E6>);(<U04E9>,<U04E8>);(<U04EB>,<U04EA>);(<U04ED>,<U04EC>);/
+ (<U04EF>,<U04EE>);(<U04F1>,<U04F0>);(<U04F3>,<U04F2>);(<U04F5>,<U04F4>);/
+ (<U04F7>,<U04F6>);(<U04F9>,<U04F8>);(<U04FB>,<U04FA>);(<U04FD>,<U04FC>);/
+ (<U04FF>,<U04FE>);(<U0501>,<U0500>);(<U0503>,<U0502>);(<U0505>,<U0504>);/
+ (<U0507>,<U0506>);(<U0509>,<U0508>);(<U050B>,<U050A>);(<U050D>,<U050C>);/
+ (<U050F>,<U050E>);(<U0511>,<U0510>);(<U0513>,<U0512>);(<U0515>,<U0514>);/
+ (<U0517>,<U0516>);(<U0519>,<U0518>);(<U051B>,<U051A>);(<U051D>,<U051C>);/
+ (<U051F>,<U051E>);(<U0521>,<U0520>);(<U0523>,<U0522>);(<U0525>,<U0524>);/
+ (<U0527>,<U0526>);(<U0529>,<U0528>);(<U052B>,<U052A>);(<U052D>,<U052C>);/
+ (<U052F>,<U052E>);(<U0561>,<U0531>);(<U0562>,<U0532>);(<U0563>,<U0533>);/
+ (<U0564>,<U0534>);(<U0565>,<U0535>);(<U0566>,<U0536>);(<U0567>,<U0537>);/
+ (<U0568>,<U0538>);(<U0569>,<U0539>);(<U056A>,<U053A>);(<U056B>,<U053B>);/
+ (<U056C>,<U053C>);(<U056D>,<U053D>);(<U056E>,<U053E>);(<U056F>,<U053F>);/
+ (<U0570>,<U0540>);(<U0571>,<U0541>);(<U0572>,<U0542>);(<U0573>,<U0543>);/
+ (<U0574>,<U0544>);(<U0575>,<U0545>);(<U0576>,<U0546>);(<U0577>,<U0547>);/
+ (<U0578>,<U0548>);(<U0579>,<U0549>);(<U057A>,<U054A>);(<U057B>,<U054B>);/
+ (<U057C>,<U054C>);(<U057D>,<U054D>);(<U057E>,<U054E>);(<U057F>,<U054F>);/
+ (<U0580>,<U0550>);(<U0581>,<U0551>);(<U0582>,<U0552>);(<U0583>,<U0553>);/
+ (<U0584>,<U0554>);(<U0585>,<U0555>);(<U0586>,<U0556>);(<U10D0>,<U1C90>);/
+ (<U10D1>,<U1C91>);(<U10D2>,<U1C92>);(<U10D3>,<U1C93>);(<U10D4>,<U1C94>);/
+ (<U10D5>,<U1C95>);(<U10D6>,<U1C96>);(<U10D7>,<U1C97>);(<U10D8>,<U1C98>);/
+ (<U10D9>,<U1C99>);(<U10DA>,<U1C9A>);(<U10DB>,<U1C9B>);(<U10DC>,<U1C9C>);/
+ (<U10DD>,<U1C9D>);(<U10DE>,<U1C9E>);(<U10DF>,<U1C9F>);(<U10E0>,<U1CA0>);/
+ (<U10E1>,<U1CA1>);(<U10E2>,<U1CA2>);(<U10E3>,<U1CA3>);(<U10E4>,<U1CA4>);/
+ (<U10E5>,<U1CA5>);(<U10E6>,<U1CA6>);(<U10E7>,<U1CA7>);(<U10E8>,<U1CA8>);/
+ (<U10E9>,<U1CA9>);(<U10EA>,<U1CAA>);(<U10EB>,<U1CAB>);(<U10EC>,<U1CAC>);/
+ (<U10ED>,<U1CAD>);(<U10EE>,<U1CAE>);(<U10EF>,<U1CAF>);(<U10F0>,<U1CB0>);/
+ (<U10F1>,<U1CB1>);(<U10F2>,<U1CB2>);(<U10F3>,<U1CB3>);(<U10F4>,<U1CB4>);/
+ (<U10F5>,<U1CB5>);(<U10F6>,<U1CB6>);(<U10F7>,<U1CB7>);(<U10F8>,<U1CB8>);/
+ (<U10F9>,<U1CB9>);(<U10FA>,<U1CBA>);(<U10FD>,<U1CBD>);(<U10FE>,<U1CBE>);/
+ (<U10FF>,<U1CBF>);(<U13F8>,<U13F0>);(<U13F9>,<U13F1>);(<U13FA>,<U13F2>);/
+ (<U13FB>,<U13F3>);(<U13FC>,<U13F4>);(<U13FD>,<U13F5>);(<U1C80>,<U0412>);/
+ (<U1C81>,<U0414>);(<U1C82>,<U041E>);(<U1C83>,<U0421>);(<U1C84>,<U0422>);/
+ (<U1C85>,<U0422>);(<U1C86>,<U042A>);(<U1C87>,<U0462>);(<U1C88>,<UA64A>);/
+ (<U1D79>,<UA77D>);(<U1D7D>,<U2C63>);(<U1D8E>,<UA7C6>);(<U1E01>,<U1E00>);/
+ (<U1E03>,<U1E02>);(<U1E05>,<U1E04>);(<U1E07>,<U1E06>);(<U1E09>,<U1E08>);/
+ (<U1E0B>,<U1E0A>);(<U1E0D>,<U1E0C>);(<U1E0F>,<U1E0E>);(<U1E11>,<U1E10>);/
+ (<U1E13>,<U1E12>);(<U1E15>,<U1E14>);(<U1E17>,<U1E16>);(<U1E19>,<U1E18>);/
+ (<U1E1B>,<U1E1A>);(<U1E1D>,<U1E1C>);(<U1E1F>,<U1E1E>);(<U1E21>,<U1E20>);/
+ (<U1E23>,<U1E22>);(<U1E25>,<U1E24>);(<U1E27>,<U1E26>);(<U1E29>,<U1E28>);/
+ (<U1E2B>,<U1E2A>);(<U1E2D>,<U1E2C>);(<U1E2F>,<U1E2E>);(<U1E31>,<U1E30>);/
+ (<U1E33>,<U1E32>);(<U1E35>,<U1E34>);(<U1E37>,<U1E36>);(<U1E39>,<U1E38>);/
+ (<U1E3B>,<U1E3A>);(<U1E3D>,<U1E3C>);(<U1E3F>,<U1E3E>);(<U1E41>,<U1E40>);/
+ (<U1E43>,<U1E42>);(<U1E45>,<U1E44>);(<U1E47>,<U1E46>);(<U1E49>,<U1E48>);/
+ (<U1E4B>,<U1E4A>);(<U1E4D>,<U1E4C>);(<U1E4F>,<U1E4E>);(<U1E51>,<U1E50>);/
+ (<U1E53>,<U1E52>);(<U1E55>,<U1E54>);(<U1E57>,<U1E56>);(<U1E59>,<U1E58>);/
+ (<U1E5B>,<U1E5A>);(<U1E5D>,<U1E5C>);(<U1E5F>,<U1E5E>);(<U1E61>,<U1E60>);/
+ (<U1E63>,<U1E62>);(<U1E65>,<U1E64>);(<U1E67>,<U1E66>);(<U1E69>,<U1E68>);/
+ (<U1E6B>,<U1E6A>);(<U1E6D>,<U1E6C>);(<U1E6F>,<U1E6E>);(<U1E71>,<U1E70>);/
+ (<U1E73>,<U1E72>);(<U1E75>,<U1E74>);(<U1E77>,<U1E76>);(<U1E79>,<U1E78>);/
+ (<U1E7B>,<U1E7A>);(<U1E7D>,<U1E7C>);(<U1E7F>,<U1E7E>);(<U1E81>,<U1E80>);/
+ (<U1E83>,<U1E82>);(<U1E85>,<U1E84>);(<U1E87>,<U1E86>);(<U1E89>,<U1E88>);/
+ (<U1E8B>,<U1E8A>);(<U1E8D>,<U1E8C>);(<U1E8F>,<U1E8E>);(<U1E91>,<U1E90>);/
+ (<U1E93>,<U1E92>);(<U1E95>,<U1E94>);(<U1E9B>,<U1E60>);(<U1EA1>,<U1EA0>);/
+ (<U1EA3>,<U1EA2>);(<U1EA5>,<U1EA4>);(<U1EA7>,<U1EA6>);(<U1EA9>,<U1EA8>);/
+ (<U1EAB>,<U1EAA>);(<U1EAD>,<U1EAC>);(<U1EAF>,<U1EAE>);(<U1EB1>,<U1EB0>);/
+ (<U1EB3>,<U1EB2>);(<U1EB5>,<U1EB4>);(<U1EB7>,<U1EB6>);(<U1EB9>,<U1EB8>);/
+ (<U1EBB>,<U1EBA>);(<U1EBD>,<U1EBC>);(<U1EBF>,<U1EBE>);(<U1EC1>,<U1EC0>);/
+ (<U1EC3>,<U1EC2>);(<U1EC5>,<U1EC4>);(<U1EC7>,<U1EC6>);(<U1EC9>,<U1EC8>);/
+ (<U1ECB>,<U1ECA>);(<U1ECD>,<U1ECC>);(<U1ECF>,<U1ECE>);(<U1ED1>,<U1ED0>);/
+ (<U1ED3>,<U1ED2>);(<U1ED5>,<U1ED4>);(<U1ED7>,<U1ED6>);(<U1ED9>,<U1ED8>);/
+ (<U1EDB>,<U1EDA>);(<U1EDD>,<U1EDC>);(<U1EDF>,<U1EDE>);(<U1EE1>,<U1EE0>);/
+ (<U1EE3>,<U1EE2>);(<U1EE5>,<U1EE4>);(<U1EE7>,<U1EE6>);(<U1EE9>,<U1EE8>);/
+ (<U1EEB>,<U1EEA>);(<U1EED>,<U1EEC>);(<U1EEF>,<U1EEE>);(<U1EF1>,<U1EF0>);/
+ (<U1EF3>,<U1EF2>);(<U1EF5>,<U1EF4>);(<U1EF7>,<U1EF6>);(<U1EF9>,<U1EF8>);/
+ (<U1EFB>,<U1EFA>);(<U1EFD>,<U1EFC>);(<U1EFF>,<U1EFE>);(<U1F00>,<U1F08>);/
+ (<U1F01>,<U1F09>);(<U1F02>,<U1F0A>);(<U1F03>,<U1F0B>);(<U1F04>,<U1F0C>);/
+ (<U1F05>,<U1F0D>);(<U1F06>,<U1F0E>);(<U1F07>,<U1F0F>);(<U1F10>,<U1F18>);/
+ (<U1F11>,<U1F19>);(<U1F12>,<U1F1A>);(<U1F13>,<U1F1B>);(<U1F14>,<U1F1C>);/
+ (<U1F15>,<U1F1D>);(<U1F20>,<U1F28>);(<U1F21>,<U1F29>);(<U1F22>,<U1F2A>);/
+ (<U1F23>,<U1F2B>);(<U1F24>,<U1F2C>);(<U1F25>,<U1F2D>);(<U1F26>,<U1F2E>);/
+ (<U1F27>,<U1F2F>);(<U1F30>,<U1F38>);(<U1F31>,<U1F39>);(<U1F32>,<U1F3A>);/
+ (<U1F33>,<U1F3B>);(<U1F34>,<U1F3C>);(<U1F35>,<U1F3D>);(<U1F36>,<U1F3E>);/
+ (<U1F37>,<U1F3F>);(<U1F40>,<U1F48>);(<U1F41>,<U1F49>);(<U1F42>,<U1F4A>);/
+ (<U1F43>,<U1F4B>);(<U1F44>,<U1F4C>);(<U1F45>,<U1F4D>);(<U1F51>,<U1F59>);/
+ (<U1F53>,<U1F5B>);(<U1F55>,<U1F5D>);(<U1F57>,<U1F5F>);(<U1F60>,<U1F68>);/
+ (<U1F61>,<U1F69>);(<U1F62>,<U1F6A>);(<U1F63>,<U1F6B>);(<U1F64>,<U1F6C>);/
+ (<U1F65>,<U1F6D>);(<U1F66>,<U1F6E>);(<U1F67>,<U1F6F>);(<U1F70>,<U1FBA>);/
+ (<U1F71>,<U1FBB>);(<U1F72>,<U1FC8>);(<U1F73>,<U1FC9>);(<U1F74>,<U1FCA>);/
+ (<U1F75>,<U1FCB>);(<U1F76>,<U1FDA>);(<U1F77>,<U1FDB>);(<U1F78>,<U1FF8>);/
+ (<U1F79>,<U1FF9>);(<U1F7A>,<U1FEA>);(<U1F7B>,<U1FEB>);(<U1F7C>,<U1FFA>);/
+ (<U1F7D>,<U1FFB>);(<U1F80>,<U1F88>);(<U1F81>,<U1F89>);(<U1F82>,<U1F8A>);/
+ (<U1F83>,<U1F8B>);(<U1F84>,<U1F8C>);(<U1F85>,<U1F8D>);(<U1F86>,<U1F8E>);/
+ (<U1F87>,<U1F8F>);(<U1F90>,<U1F98>);(<U1F91>,<U1F99>);(<U1F92>,<U1F9A>);/
+ (<U1F93>,<U1F9B>);(<U1F94>,<U1F9C>);(<U1F95>,<U1F9D>);(<U1F96>,<U1F9E>);/
+ (<U1F97>,<U1F9F>);(<U1FA0>,<U1FA8>);(<U1FA1>,<U1FA9>);(<U1FA2>,<U1FAA>);/
+ (<U1FA3>,<U1FAB>);(<U1FA4>,<U1FAC>);(<U1FA5>,<U1FAD>);(<U1FA6>,<U1FAE>);/
+ (<U1FA7>,<U1FAF>);(<U1FB0>,<U1FB8>);(<U1FB1>,<U1FB9>);(<U1FB3>,<U1FBC>);/
+ (<U1FBE>,<U0399>);(<U1FC3>,<U1FCC>);(<U1FD0>,<U1FD8>);(<U1FD1>,<U1FD9>);/
+ (<U1FE0>,<U1FE8>);(<U1FE1>,<U1FE9>);(<U1FE5>,<U1FEC>);(<U1FF3>,<U1FFC>);/
+ (<U214E>,<U2132>);(<U2170>,<U2160>);(<U2171>,<U2161>);(<U2172>,<U2162>);/
+ (<U2173>,<U2163>);(<U2174>,<U2164>);(<U2175>,<U2165>);(<U2176>,<U2166>);/
+ (<U2177>,<U2167>);(<U2178>,<U2168>);(<U2179>,<U2169>);(<U217A>,<U216A>);/
+ (<U217B>,<U216B>);(<U217C>,<U216C>);(<U217D>,<U216D>);(<U217E>,<U216E>);/
+ (<U217F>,<U216F>);(<U2184>,<U2183>);(<U24D0>,<U24B6>);(<U24D1>,<U24B7>);/
+ (<U24D2>,<U24B8>);(<U24D3>,<U24B9>);(<U24D4>,<U24BA>);(<U24D5>,<U24BB>);/
+ (<U24D6>,<U24BC>);(<U24D7>,<U24BD>);(<U24D8>,<U24BE>);(<U24D9>,<U24BF>);/
+ (<U24DA>,<U24C0>);(<U24DB>,<U24C1>);(<U24DC>,<U24C2>);(<U24DD>,<U24C3>);/
+ (<U24DE>,<U24C4>);(<U24DF>,<U24C5>);(<U24E0>,<U24C6>);(<U24E1>,<U24C7>);/
+ (<U24E2>,<U24C8>);(<U24E3>,<U24C9>);(<U24E4>,<U24CA>);(<U24E5>,<U24CB>);/
+ (<U24E6>,<U24CC>);(<U24E7>,<U24CD>);(<U24E8>,<U24CE>);(<U24E9>,<U24CF>);/
+ (<U2C30>,<U2C00>);(<U2C31>,<U2C01>);(<U2C32>,<U2C02>);(<U2C33>,<U2C03>);/
+ (<U2C34>,<U2C04>);(<U2C35>,<U2C05>);(<U2C36>,<U2C06>);(<U2C37>,<U2C07>);/
+ (<U2C38>,<U2C08>);(<U2C39>,<U2C09>);(<U2C3A>,<U2C0A>);(<U2C3B>,<U2C0B>);/
+ (<U2C3C>,<U2C0C>);(<U2C3D>,<U2C0D>);(<U2C3E>,<U2C0E>);(<U2C3F>,<U2C0F>);/
+ (<U2C40>,<U2C10>);(<U2C41>,<U2C11>);(<U2C42>,<U2C12>);(<U2C43>,<U2C13>);/
+ (<U2C44>,<U2C14>);(<U2C45>,<U2C15>);(<U2C46>,<U2C16>);(<U2C47>,<U2C17>);/
+ (<U2C48>,<U2C18>);(<U2C49>,<U2C19>);(<U2C4A>,<U2C1A>);(<U2C4B>,<U2C1B>);/
+ (<U2C4C>,<U2C1C>);(<U2C4D>,<U2C1D>);(<U2C4E>,<U2C1E>);(<U2C4F>,<U2C1F>);/
+ (<U2C50>,<U2C20>);(<U2C51>,<U2C21>);(<U2C52>,<U2C22>);(<U2C53>,<U2C23>);/
+ (<U2C54>,<U2C24>);(<U2C55>,<U2C25>);(<U2C56>,<U2C26>);(<U2C57>,<U2C27>);/
+ (<U2C58>,<U2C28>);(<U2C59>,<U2C29>);(<U2C5A>,<U2C2A>);(<U2C5B>,<U2C2B>);/
+ (<U2C5C>,<U2C2C>);(<U2C5D>,<U2C2D>);(<U2C5E>,<U2C2E>);(<U2C61>,<U2C60>);/
+ (<U2C65>,<U023A>);(<U2C66>,<U023E>);(<U2C68>,<U2C67>);(<U2C6A>,<U2C69>);/
+ (<U2C6C>,<U2C6B>);(<U2C73>,<U2C72>);(<U2C76>,<U2C75>);(<U2C81>,<U2C80>);/
+ (<U2C83>,<U2C82>);(<U2C85>,<U2C84>);(<U2C87>,<U2C86>);(<U2C89>,<U2C88>);/
+ (<U2C8B>,<U2C8A>);(<U2C8D>,<U2C8C>);(<U2C8F>,<U2C8E>);(<U2C91>,<U2C90>);/
+ (<U2C93>,<U2C92>);(<U2C95>,<U2C94>);(<U2C97>,<U2C96>);(<U2C99>,<U2C98>);/
+ (<U2C9B>,<U2C9A>);(<U2C9D>,<U2C9C>);(<U2C9F>,<U2C9E>);(<U2CA1>,<U2CA0>);/
+ (<U2CA3>,<U2CA2>);(<U2CA5>,<U2CA4>);(<U2CA7>,<U2CA6>);(<U2CA9>,<U2CA8>);/
+ (<U2CAB>,<U2CAA>);(<U2CAD>,<U2CAC>);(<U2CAF>,<U2CAE>);(<U2CB1>,<U2CB0>);/
+ (<U2CB3>,<U2CB2>);(<U2CB5>,<U2CB4>);(<U2CB7>,<U2CB6>);(<U2CB9>,<U2CB8>);/
+ (<U2CBB>,<U2CBA>);(<U2CBD>,<U2CBC>);(<U2CBF>,<U2CBE>);(<U2CC1>,<U2CC0>);/
+ (<U2CC3>,<U2CC2>);(<U2CC5>,<U2CC4>);(<U2CC7>,<U2CC6>);(<U2CC9>,<U2CC8>);/
+ (<U2CCB>,<U2CCA>);(<U2CCD>,<U2CCC>);(<U2CCF>,<U2CCE>);(<U2CD1>,<U2CD0>);/
+ (<U2CD3>,<U2CD2>);(<U2CD5>,<U2CD4>);(<U2CD7>,<U2CD6>);(<U2CD9>,<U2CD8>);/
+ (<U2CDB>,<U2CDA>);(<U2CDD>,<U2CDC>);(<U2CDF>,<U2CDE>);(<U2CE1>,<U2CE0>);/
+ (<U2CE3>,<U2CE2>);(<U2CEC>,<U2CEB>);(<U2CEE>,<U2CED>);(<U2CF3>,<U2CF2>);/
+ (<U2D00>,<U10A0>);(<U2D01>,<U10A1>);(<U2D02>,<U10A2>);(<U2D03>,<U10A3>);/
+ (<U2D04>,<U10A4>);(<U2D05>,<U10A5>);(<U2D06>,<U10A6>);(<U2D07>,<U10A7>);/
+ (<U2D08>,<U10A8>);(<U2D09>,<U10A9>);(<U2D0A>,<U10AA>);(<U2D0B>,<U10AB>);/
+ (<U2D0C>,<U10AC>);(<U2D0D>,<U10AD>);(<U2D0E>,<U10AE>);(<U2D0F>,<U10AF>);/
+ (<U2D10>,<U10B0>);(<U2D11>,<U10B1>);(<U2D12>,<U10B2>);(<U2D13>,<U10B3>);/
+ (<U2D14>,<U10B4>);(<U2D15>,<U10B5>);(<U2D16>,<U10B6>);(<U2D17>,<U10B7>);/
+ (<U2D18>,<U10B8>);(<U2D19>,<U10B9>);(<U2D1A>,<U10BA>);(<U2D1B>,<U10BB>);/
+ (<U2D1C>,<U10BC>);(<U2D1D>,<U10BD>);(<U2D1E>,<U10BE>);(<U2D1F>,<U10BF>);/
+ (<U2D20>,<U10C0>);(<U2D21>,<U10C1>);(<U2D22>,<U10C2>);(<U2D23>,<U10C3>);/
+ (<U2D24>,<U10C4>);(<U2D25>,<U10C5>);(<U2D27>,<U10C7>);(<U2D2D>,<U10CD>);/
+ (<UA641>,<UA640>);(<UA643>,<UA642>);(<UA645>,<UA644>);(<UA647>,<UA646>);/
+ (<UA649>,<UA648>);(<UA64B>,<UA64A>);(<UA64D>,<UA64C>);(<UA64F>,<UA64E>);/
+ (<UA651>,<UA650>);(<UA653>,<UA652>);(<UA655>,<UA654>);(<UA657>,<UA656>);/
+ (<UA659>,<UA658>);(<UA65B>,<UA65A>);(<UA65D>,<UA65C>);(<UA65F>,<UA65E>);/
+ (<UA661>,<UA660>);(<UA663>,<UA662>);(<UA665>,<UA664>);(<UA667>,<UA666>);/
+ (<UA669>,<UA668>);(<UA66B>,<UA66A>);(<UA66D>,<UA66C>);(<UA681>,<UA680>);/
+ (<UA683>,<UA682>);(<UA685>,<UA684>);(<UA687>,<UA686>);(<UA689>,<UA688>);/
+ (<UA68B>,<UA68A>);(<UA68D>,<UA68C>);(<UA68F>,<UA68E>);(<UA691>,<UA690>);/
+ (<UA693>,<UA692>);(<UA695>,<UA694>);(<UA697>,<UA696>);(<UA699>,<UA698>);/
+ (<UA69B>,<UA69A>);(<UA723>,<UA722>);(<UA725>,<UA724>);(<UA727>,<UA726>);/
+ (<UA729>,<UA728>);(<UA72B>,<UA72A>);(<UA72D>,<UA72C>);(<UA72F>,<UA72E>);/
+ (<UA733>,<UA732>);(<UA735>,<UA734>);(<UA737>,<UA736>);(<UA739>,<UA738>);/
+ (<UA73B>,<UA73A>);(<UA73D>,<UA73C>);(<UA73F>,<UA73E>);(<UA741>,<UA740>);/
+ (<UA743>,<UA742>);(<UA745>,<UA744>);(<UA747>,<UA746>);(<UA749>,<UA748>);/
+ (<UA74B>,<UA74A>);(<UA74D>,<UA74C>);(<UA74F>,<UA74E>);(<UA751>,<UA750>);/
+ (<UA753>,<UA752>);(<UA755>,<UA754>);(<UA757>,<UA756>);(<UA759>,<UA758>);/
+ (<UA75B>,<UA75A>);(<UA75D>,<UA75C>);(<UA75F>,<UA75E>);(<UA761>,<UA760>);/
+ (<UA763>,<UA762>);(<UA765>,<UA764>);(<UA767>,<UA766>);(<UA769>,<UA768>);/
+ (<UA76B>,<UA76A>);(<UA76D>,<UA76C>);(<UA76F>,<UA76E>);(<UA77A>,<UA779>);/
+ (<UA77C>,<UA77B>);(<UA77F>,<UA77E>);(<UA781>,<UA780>);(<UA783>,<UA782>);/
+ (<UA785>,<UA784>);(<UA787>,<UA786>);(<UA78C>,<UA78B>);(<UA791>,<UA790>);/
+ (<UA793>,<UA792>);(<UA794>,<UA7C4>);(<UA797>,<UA796>);(<UA799>,<UA798>);/
+ (<UA79B>,<UA79A>);(<UA79D>,<UA79C>);(<UA79F>,<UA79E>);(<UA7A1>,<UA7A0>);/
+ (<UA7A3>,<UA7A2>);(<UA7A5>,<UA7A4>);(<UA7A7>,<UA7A6>);(<UA7A9>,<UA7A8>);/
+ (<UA7B5>,<UA7B4>);(<UA7B7>,<UA7B6>);(<UA7B9>,<UA7B8>);(<UA7BB>,<UA7BA>);/
+ (<UA7BD>,<UA7BC>);(<UA7BF>,<UA7BE>);(<UA7C3>,<UA7C2>);(<UAB53>,<UA7B3>);/
+ (<UAB70>,<U13A0>);(<UAB71>,<U13A1>);(<UAB72>,<U13A2>);(<UAB73>,<U13A3>);/
+ (<UAB74>,<U13A4>);(<UAB75>,<U13A5>);(<UAB76>,<U13A6>);(<UAB77>,<U13A7>);/
+ (<UAB78>,<U13A8>);(<UAB79>,<U13A9>);(<UAB7A>,<U13AA>);(<UAB7B>,<U13AB>);/
+ (<UAB7C>,<U13AC>);(<UAB7D>,<U13AD>);(<UAB7E>,<U13AE>);(<UAB7F>,<U13AF>);/
+ (<UAB80>,<U13B0>);(<UAB81>,<U13B1>);(<UAB82>,<U13B2>);(<UAB83>,<U13B3>);/
+ (<UAB84>,<U13B4>);(<UAB85>,<U13B5>);(<UAB86>,<U13B6>);(<UAB87>,<U13B7>);/
+ (<UAB88>,<U13B8>);(<UAB89>,<U13B9>);(<UAB8A>,<U13BA>);(<UAB8B>,<U13BB>);/
+ (<UAB8C>,<U13BC>);(<UAB8D>,<U13BD>);(<UAB8E>,<U13BE>);(<UAB8F>,<U13BF>);/
+ (<UAB90>,<U13C0>);(<UAB91>,<U13C1>);(<UAB92>,<U13C2>);(<UAB93>,<U13C3>);/
+ (<UAB94>,<U13C4>);(<UAB95>,<U13C5>);(<UAB96>,<U13C6>);(<UAB97>,<U13C7>);/
+ (<UAB98>,<U13C8>);(<UAB99>,<U13C9>);(<UAB9A>,<U13CA>);(<UAB9B>,<U13CB>);/
+ (<UAB9C>,<U13CC>);(<UAB9D>,<U13CD>);(<UAB9E>,<U13CE>);(<UAB9F>,<U13CF>);/
+ (<UABA0>,<U13D0>);(<UABA1>,<U13D1>);(<UABA2>,<U13D2>);(<UABA3>,<U13D3>);/
+ (<UABA4>,<U13D4>);(<UABA5>,<U13D5>);(<UABA6>,<U13D6>);(<UABA7>,<U13D7>);/
+ (<UABA8>,<U13D8>);(<UABA9>,<U13D9>);(<UABAA>,<U13DA>);(<UABAB>,<U13DB>);/
+ (<UABAC>,<U13DC>);(<UABAD>,<U13DD>);(<UABAE>,<U13DE>);(<UABAF>,<U13DF>);/
+ (<UABB0>,<U13E0>);(<UABB1>,<U13E1>);(<UABB2>,<U13E2>);(<UABB3>,<U13E3>);/
+ (<UABB4>,<U13E4>);(<UABB5>,<U13E5>);(<UABB6>,<U13E6>);(<UABB7>,<U13E7>);/
+ (<UABB8>,<U13E8>);(<UABB9>,<U13E9>);(<UABBA>,<U13EA>);(<UABBB>,<U13EB>);/
+ (<UABBC>,<U13EC>);(<UABBD>,<U13ED>);(<UABBE>,<U13EE>);(<UABBF>,<U13EF>);/
+ (<UFF41>,<UFF21>);(<UFF42>,<UFF22>);(<UFF43>,<UFF23>);(<UFF44>,<UFF24>);/
+ (<UFF45>,<UFF25>);(<UFF46>,<UFF26>);(<UFF47>,<UFF27>);(<UFF48>,<UFF28>);/
+ (<UFF49>,<UFF29>);(<UFF4A>,<UFF2A>);(<UFF4B>,<UFF2B>);(<UFF4C>,<UFF2C>);/
+ (<UFF4D>,<UFF2D>);(<UFF4E>,<UFF2E>);(<UFF4F>,<UFF2F>);(<UFF50>,<UFF30>);/
+ (<UFF51>,<UFF31>);(<UFF52>,<UFF32>);(<UFF53>,<UFF33>);(<UFF54>,<UFF34>);/
+ (<UFF55>,<UFF35>);(<UFF56>,<UFF36>);(<UFF57>,<UFF37>);(<UFF58>,<UFF38>);/
+ (<UFF59>,<UFF39>);(<UFF5A>,<UFF3A>);(<U00010428>,<U00010400>);/
+ (<U00010429>,<U00010401>);(<U0001042A>,<U00010402>);/
+ (<U0001042B>,<U00010403>);(<U0001042C>,<U00010404>);/
+ (<U0001042D>,<U00010405>);(<U0001042E>,<U00010406>);/
+ (<U0001042F>,<U00010407>);(<U00010430>,<U00010408>);/
+ (<U00010431>,<U00010409>);(<U00010432>,<U0001040A>);/
+ (<U00010433>,<U0001040B>);(<U00010434>,<U0001040C>);/
+ (<U00010435>,<U0001040D>);(<U00010436>,<U0001040E>);/
+ (<U00010437>,<U0001040F>);(<U00010438>,<U00010410>);/
+ (<U00010439>,<U00010411>);(<U0001043A>,<U00010412>);/
+ (<U0001043B>,<U00010413>);(<U0001043C>,<U00010414>);/
+ (<U0001043D>,<U00010415>);(<U0001043E>,<U00010416>);/
+ (<U0001043F>,<U00010417>);(<U00010440>,<U00010418>);/
+ (<U00010441>,<U00010419>);(<U00010442>,<U0001041A>);/
+ (<U00010443>,<U0001041B>);(<U00010444>,<U0001041C>);/
+ (<U00010445>,<U0001041D>);(<U00010446>,<U0001041E>);/
+ (<U00010447>,<U0001041F>);(<U00010448>,<U00010420>);/
+ (<U00010449>,<U00010421>);(<U0001044A>,<U00010422>);/
+ (<U0001044B>,<U00010423>);(<U0001044C>,<U00010424>);/
+ (<U0001044D>,<U00010425>);(<U0001044E>,<U00010426>);/
+ (<U0001044F>,<U00010427>);(<U000104D8>,<U000104B0>);/
+ (<U000104D9>,<U000104B1>);(<U000104DA>,<U000104B2>);/
+ (<U000104DB>,<U000104B3>);(<U000104DC>,<U000104B4>);/
+ (<U000104DD>,<U000104B5>);(<U000104DE>,<U000104B6>);/
+ (<U000104DF>,<U000104B7>);(<U000104E0>,<U000104B8>);/
+ (<U000104E1>,<U000104B9>);(<U000104E2>,<U000104BA>);/
+ (<U000104E3>,<U000104BB>);(<U000104E4>,<U000104BC>);/
+ (<U000104E5>,<U000104BD>);(<U000104E6>,<U000104BE>);/
+ (<U000104E7>,<U000104BF>);(<U000104E8>,<U000104C0>);/
+ (<U000104E9>,<U000104C1>);(<U000104EA>,<U000104C2>);/
+ (<U000104EB>,<U000104C3>);(<U000104EC>,<U000104C4>);/
+ (<U000104ED>,<U000104C5>);(<U000104EE>,<U000104C6>);/
+ (<U000104EF>,<U000104C7>);(<U000104F0>,<U000104C8>);/
+ (<U000104F1>,<U000104C9>);(<U000104F2>,<U000104CA>);/
+ (<U000104F3>,<U000104CB>);(<U000104F4>,<U000104CC>);/
+ (<U000104F5>,<U000104CD>);(<U000104F6>,<U000104CE>);/
+ (<U000104F7>,<U000104CF>);(<U000104F8>,<U000104D0>);/
+ (<U000104F9>,<U000104D1>);(<U000104FA>,<U000104D2>);/
+ (<U000104FB>,<U000104D3>);(<U00010CC0>,<U00010C80>);/
+ (<U00010CC1>,<U00010C81>);(<U00010CC2>,<U00010C82>);/
+ (<U00010CC3>,<U00010C83>);(<U00010CC4>,<U00010C84>);/
+ (<U00010CC5>,<U00010C85>);(<U00010CC6>,<U00010C86>);/
+ (<U00010CC7>,<U00010C87>);(<U00010CC8>,<U00010C88>);/
+ (<U00010CC9>,<U00010C89>);(<U00010CCA>,<U00010C8A>);/
+ (<U00010CCB>,<U00010C8B>);(<U00010CCC>,<U00010C8C>);/
+ (<U00010CCD>,<U00010C8D>);(<U00010CCE>,<U00010C8E>);/
+ (<U00010CCF>,<U00010C8F>);(<U00010CD0>,<U00010C90>);/
+ (<U00010CD1>,<U00010C91>);(<U00010CD2>,<U00010C92>);/
+ (<U00010CD3>,<U00010C93>);(<U00010CD4>,<U00010C94>);/
+ (<U00010CD5>,<U00010C95>);(<U00010CD6>,<U00010C96>);/
+ (<U00010CD7>,<U00010C97>);(<U00010CD8>,<U00010C98>);/
+ (<U00010CD9>,<U00010C99>);(<U00010CDA>,<U00010C9A>);/
+ (<U00010CDB>,<U00010C9B>);(<U00010CDC>,<U00010C9C>);/
+ (<U00010CDD>,<U00010C9D>);(<U00010CDE>,<U00010C9E>);/
+ (<U00010CDF>,<U00010C9F>);(<U00010CE0>,<U00010CA0>);/
+ (<U00010CE1>,<U00010CA1>);(<U00010CE2>,<U00010CA2>);/
+ (<U00010CE3>,<U00010CA3>);(<U00010CE4>,<U00010CA4>);/
+ (<U00010CE5>,<U00010CA5>);(<U00010CE6>,<U00010CA6>);/
+ (<U00010CE7>,<U00010CA7>);(<U00010CE8>,<U00010CA8>);/
+ (<U00010CE9>,<U00010CA9>);(<U00010CEA>,<U00010CAA>);/
+ (<U00010CEB>,<U00010CAB>);(<U00010CEC>,<U00010CAC>);/
+ (<U00010CED>,<U00010CAD>);(<U00010CEE>,<U00010CAE>);/
+ (<U00010CEF>,<U00010CAF>);(<U00010CF0>,<U00010CB0>);/
+ (<U00010CF1>,<U00010CB1>);(<U00010CF2>,<U00010CB2>);/
+ (<U000118C0>,<U000118A0>);(<U000118C1>,<U000118A1>);/
+ (<U000118C2>,<U000118A2>);(<U000118C3>,<U000118A3>);/
+ (<U000118C4>,<U000118A4>);(<U000118C5>,<U000118A5>);/
+ (<U000118C6>,<U000118A6>);(<U000118C7>,<U000118A7>);/
+ (<U000118C8>,<U000118A8>);(<U000118C9>,<U000118A9>);/
+ (<U000118CA>,<U000118AA>);(<U000118CB>,<U000118AB>);/
+ (<U000118CC>,<U000118AC>);(<U000118CD>,<U000118AD>);/
+ (<U000118CE>,<U000118AE>);(<U000118CF>,<U000118AF>);/
+ (<U000118D0>,<U000118B0>);(<U000118D1>,<U000118B1>);/
+ (<U000118D2>,<U000118B2>);(<U000118D3>,<U000118B3>);/
+ (<U000118D4>,<U000118B4>);(<U000118D5>,<U000118B5>);/
+ (<U000118D6>,<U000118B6>);(<U000118D7>,<U000118B7>);/
+ (<U000118D8>,<U000118B8>);(<U000118D9>,<U000118B9>);/
+ (<U000118DA>,<U000118BA>);(<U000118DB>,<U000118BB>);/
+ (<U000118DC>,<U000118BC>);(<U000118DD>,<U000118BD>);/
+ (<U000118DE>,<U000118BE>);(<U000118DF>,<U000118BF>);/
+ (<U00016E60>,<U00016E40>);(<U00016E61>,<U00016E41>);/
+ (<U00016E62>,<U00016E42>);(<U00016E63>,<U00016E43>);/
+ (<U00016E64>,<U00016E44>);(<U00016E65>,<U00016E45>);/
+ (<U00016E66>,<U00016E46>);(<U00016E67>,<U00016E47>);/
+ (<U00016E68>,<U00016E48>);(<U00016E69>,<U00016E49>);/
+ (<U00016E6A>,<U00016E4A>);(<U00016E6B>,<U00016E4B>);/
+ (<U00016E6C>,<U00016E4C>);(<U00016E6D>,<U00016E4D>);/
+ (<U00016E6E>,<U00016E4E>);(<U00016E6F>,<U00016E4F>);/
+ (<U00016E70>,<U00016E50>);(<U00016E71>,<U00016E51>);/
+ (<U00016E72>,<U00016E52>);(<U00016E73>,<U00016E53>);/
+ (<U00016E74>,<U00016E54>);(<U00016E75>,<U00016E55>);/
+ (<U00016E76>,<U00016E56>);(<U00016E77>,<U00016E57>);/
+ (<U00016E78>,<U00016E58>);(<U00016E79>,<U00016E59>);/
+ (<U00016E7A>,<U00016E5A>);(<U00016E7B>,<U00016E5B>);/
+ (<U00016E7C>,<U00016E5C>);(<U00016E7D>,<U00016E5D>);/
+ (<U00016E7E>,<U00016E5E>);(<U00016E7F>,<U00016E5F>);/
+ (<U0001E922>,<U0001E900>);(<U0001E923>,<U0001E901>);/
+ (<U0001E924>,<U0001E902>);(<U0001E925>,<U0001E903>);/
+ (<U0001E926>,<U0001E904>);(<U0001E927>,<U0001E905>);/
+ (<U0001E928>,<U0001E906>);(<U0001E929>,<U0001E907>);/
+ (<U0001E92A>,<U0001E908>);(<U0001E92B>,<U0001E909>);/
+ (<U0001E92C>,<U0001E90A>);(<U0001E92D>,<U0001E90B>);/
+ (<U0001E92E>,<U0001E90C>);(<U0001E92F>,<U0001E90D>);/
+ (<U0001E930>,<U0001E90E>);(<U0001E931>,<U0001E90F>);/
+ (<U0001E932>,<U0001E910>);(<U0001E933>,<U0001E911>);/
+ (<U0001E934>,<U0001E912>);(<U0001E935>,<U0001E913>);/
+ (<U0001E936>,<U0001E914>);(<U0001E937>,<U0001E915>);/
+ (<U0001E938>,<U0001E916>);(<U0001E939>,<U0001E917>);/
+ (<U0001E93A>,<U0001E918>);(<U0001E93B>,<U0001E919>);/
+ (<U0001E93C>,<U0001E91A>);(<U0001E93D>,<U0001E91B>);/
+ (<U0001E93E>,<U0001E91C>);(<U0001E93F>,<U0001E91D>);/
+ (<U0001E940>,<U0001E91E>);(<U0001E941>,<U0001E91F>);/
+ (<U0001E942>,<U0001E920>);(<U0001E943>,<U0001E921>)
tolower /
(<U0041>,<U0061>);(<U0042>,<U0062>);(<U0043>,<U0063>);(<U0044>,<U0064>);/
@@ -1861,125 +1880,127 @@ tolower /
(<UA7AA>,<U0266>);(<UA7AB>,<U025C>);(<UA7AC>,<U0261>);(<UA7AD>,<U026C>);/
(<UA7AE>,<U026A>);(<UA7B0>,<U029E>);(<UA7B1>,<U0287>);(<UA7B2>,<U029D>);/
(<UA7B3>,<UAB53>);(<UA7B4>,<UA7B5>);(<UA7B6>,<UA7B7>);(<UA7B8>,<UA7B9>);/
- (<UFF21>,<UFF41>);(<UFF22>,<UFF42>);(<UFF23>,<UFF43>);(<UFF24>,<UFF44>);/
- (<UFF25>,<UFF45>);(<UFF26>,<UFF46>);(<UFF27>,<UFF47>);(<UFF28>,<UFF48>);/
- (<UFF29>,<UFF49>);(<UFF2A>,<UFF4A>);(<UFF2B>,<UFF4B>);(<UFF2C>,<UFF4C>);/
- (<UFF2D>,<UFF4D>);(<UFF2E>,<UFF4E>);(<UFF2F>,<UFF4F>);(<UFF30>,<UFF50>);/
- (<UFF31>,<UFF51>);(<UFF32>,<UFF52>);(<UFF33>,<UFF53>);(<UFF34>,<UFF54>);/
- (<UFF35>,<UFF55>);(<UFF36>,<UFF56>);(<UFF37>,<UFF57>);(<UFF38>,<UFF58>);/
- (<UFF39>,<UFF59>);(<UFF3A>,<UFF5A>);(<U00010400>,<U00010428>);/
- (<U00010401>,<U00010429>);(<U00010402>,<U0001042A>);/
- (<U00010403>,<U0001042B>);(<U00010404>,<U0001042C>);/
- (<U00010405>,<U0001042D>);(<U00010406>,<U0001042E>);/
- (<U00010407>,<U0001042F>);(<U00010408>,<U00010430>);/
- (<U00010409>,<U00010431>);(<U0001040A>,<U00010432>);/
- (<U0001040B>,<U00010433>);(<U0001040C>,<U00010434>);/
- (<U0001040D>,<U00010435>);(<U0001040E>,<U00010436>);/
- (<U0001040F>,<U00010437>);(<U00010410>,<U00010438>);/
- (<U00010411>,<U00010439>);(<U00010412>,<U0001043A>);/
- (<U00010413>,<U0001043B>);(<U00010414>,<U0001043C>);/
- (<U00010415>,<U0001043D>);(<U00010416>,<U0001043E>);/
- (<U00010417>,<U0001043F>);(<U00010418>,<U00010440>);/
- (<U00010419>,<U00010441>);(<U0001041A>,<U00010442>);/
- (<U0001041B>,<U00010443>);(<U0001041C>,<U00010444>);/
- (<U0001041D>,<U00010445>);(<U0001041E>,<U00010446>);/
- (<U0001041F>,<U00010447>);(<U00010420>,<U00010448>);/
- (<U00010421>,<U00010449>);(<U00010422>,<U0001044A>);/
- (<U00010423>,<U0001044B>);(<U00010424>,<U0001044C>);/
- (<U00010425>,<U0001044D>);(<U00010426>,<U0001044E>);/
- (<U00010427>,<U0001044F>);(<U000104B0>,<U000104D8>);/
- (<U000104B1>,<U000104D9>);(<U000104B2>,<U000104DA>);/
- (<U000104B3>,<U000104DB>);(<U000104B4>,<U000104DC>);/
- (<U000104B5>,<U000104DD>);(<U000104B6>,<U000104DE>);/
- (<U000104B7>,<U000104DF>);(<U000104B8>,<U000104E0>);/
- (<U000104B9>,<U000104E1>);(<U000104BA>,<U000104E2>);/
- (<U000104BB>,<U000104E3>);(<U000104BC>,<U000104E4>);/
- (<U000104BD>,<U000104E5>);(<U000104BE>,<U000104E6>);/
- (<U000104BF>,<U000104E7>);(<U000104C0>,<U000104E8>);/
- (<U000104C1>,<U000104E9>);(<U000104C2>,<U000104EA>);/
- (<U000104C3>,<U000104EB>);(<U000104C4>,<U000104EC>);/
- (<U000104C5>,<U000104ED>);(<U000104C6>,<U000104EE>);/
- (<U000104C7>,<U000104EF>);(<U000104C8>,<U000104F0>);/
- (<U000104C9>,<U000104F1>);(<U000104CA>,<U000104F2>);/
- (<U000104CB>,<U000104F3>);(<U000104CC>,<U000104F4>);/
- (<U000104CD>,<U000104F5>);(<U000104CE>,<U000104F6>);/
- (<U000104CF>,<U000104F7>);(<U000104D0>,<U000104F8>);/
- (<U000104D1>,<U000104F9>);(<U000104D2>,<U000104FA>);/
- (<U000104D3>,<U000104FB>);(<U00010C80>,<U00010CC0>);/
- (<U00010C81>,<U00010CC1>);(<U00010C82>,<U00010CC2>);/
- (<U00010C83>,<U00010CC3>);(<U00010C84>,<U00010CC4>);/
- (<U00010C85>,<U00010CC5>);(<U00010C86>,<U00010CC6>);/
- (<U00010C87>,<U00010CC7>);(<U00010C88>,<U00010CC8>);/
- (<U00010C89>,<U00010CC9>);(<U00010C8A>,<U00010CCA>);/
- (<U00010C8B>,<U00010CCB>);(<U00010C8C>,<U00010CCC>);/
- (<U00010C8D>,<U00010CCD>);(<U00010C8E>,<U00010CCE>);/
- (<U00010C8F>,<U00010CCF>);(<U00010C90>,<U00010CD0>);/
- (<U00010C91>,<U00010CD1>);(<U00010C92>,<U00010CD2>);/
- (<U00010C93>,<U00010CD3>);(<U00010C94>,<U00010CD4>);/
- (<U00010C95>,<U00010CD5>);(<U00010C96>,<U00010CD6>);/
- (<U00010C97>,<U00010CD7>);(<U00010C98>,<U00010CD8>);/
- (<U00010C99>,<U00010CD9>);(<U00010C9A>,<U00010CDA>);/
- (<U00010C9B>,<U00010CDB>);(<U00010C9C>,<U00010CDC>);/
- (<U00010C9D>,<U00010CDD>);(<U00010C9E>,<U00010CDE>);/
- (<U00010C9F>,<U00010CDF>);(<U00010CA0>,<U00010CE0>);/
- (<U00010CA1>,<U00010CE1>);(<U00010CA2>,<U00010CE2>);/
- (<U00010CA3>,<U00010CE3>);(<U00010CA4>,<U00010CE4>);/
- (<U00010CA5>,<U00010CE5>);(<U00010CA6>,<U00010CE6>);/
- (<U00010CA7>,<U00010CE7>);(<U00010CA8>,<U00010CE8>);/
- (<U00010CA9>,<U00010CE9>);(<U00010CAA>,<U00010CEA>);/
- (<U00010CAB>,<U00010CEB>);(<U00010CAC>,<U00010CEC>);/
- (<U00010CAD>,<U00010CED>);(<U00010CAE>,<U00010CEE>);/
- (<U00010CAF>,<U00010CEF>);(<U00010CB0>,<U00010CF0>);/
- (<U00010CB1>,<U00010CF1>);(<U00010CB2>,<U00010CF2>);/
- (<U000118A0>,<U000118C0>);(<U000118A1>,<U000118C1>);/
- (<U000118A2>,<U000118C2>);(<U000118A3>,<U000118C3>);/
- (<U000118A4>,<U000118C4>);(<U000118A5>,<U000118C5>);/
- (<U000118A6>,<U000118C6>);(<U000118A7>,<U000118C7>);/
- (<U000118A8>,<U000118C8>);(<U000118A9>,<U000118C9>);/
- (<U000118AA>,<U000118CA>);(<U000118AB>,<U000118CB>);/
- (<U000118AC>,<U000118CC>);(<U000118AD>,<U000118CD>);/
- (<U000118AE>,<U000118CE>);(<U000118AF>,<U000118CF>);/
- (<U000118B0>,<U000118D0>);(<U000118B1>,<U000118D1>);/
- (<U000118B2>,<U000118D2>);(<U000118B3>,<U000118D3>);/
- (<U000118B4>,<U000118D4>);(<U000118B5>,<U000118D5>);/
- (<U000118B6>,<U000118D6>);(<U000118B7>,<U000118D7>);/
- (<U000118B8>,<U000118D8>);(<U000118B9>,<U000118D9>);/
- (<U000118BA>,<U000118DA>);(<U000118BB>,<U000118DB>);/
- (<U000118BC>,<U000118DC>);(<U000118BD>,<U000118DD>);/
- (<U000118BE>,<U000118DE>);(<U000118BF>,<U000118DF>);/
- (<U00016E40>,<U00016E60>);(<U00016E41>,<U00016E61>);/
- (<U00016E42>,<U00016E62>);(<U00016E43>,<U00016E63>);/
- (<U00016E44>,<U00016E64>);(<U00016E45>,<U00016E65>);/
- (<U00016E46>,<U00016E66>);(<U00016E47>,<U00016E67>);/
- (<U00016E48>,<U00016E68>);(<U00016E49>,<U00016E69>);/
- (<U00016E4A>,<U00016E6A>);(<U00016E4B>,<U00016E6B>);/
- (<U00016E4C>,<U00016E6C>);(<U00016E4D>,<U00016E6D>);/
- (<U00016E4E>,<U00016E6E>);(<U00016E4F>,<U00016E6F>);/
- (<U00016E50>,<U00016E70>);(<U00016E51>,<U00016E71>);/
- (<U00016E52>,<U00016E72>);(<U00016E53>,<U00016E73>);/
- (<U00016E54>,<U00016E74>);(<U00016E55>,<U00016E75>);/
- (<U00016E56>,<U00016E76>);(<U00016E57>,<U00016E77>);/
- (<U00016E58>,<U00016E78>);(<U00016E59>,<U00016E79>);/
- (<U00016E5A>,<U00016E7A>);(<U00016E5B>,<U00016E7B>);/
- (<U00016E5C>,<U00016E7C>);(<U00016E5D>,<U00016E7D>);/
- (<U00016E5E>,<U00016E7E>);(<U00016E5F>,<U00016E7F>);/
- (<U0001E900>,<U0001E922>);(<U0001E901>,<U0001E923>);/
- (<U0001E902>,<U0001E924>);(<U0001E903>,<U0001E925>);/
- (<U0001E904>,<U0001E926>);(<U0001E905>,<U0001E927>);/
- (<U0001E906>,<U0001E928>);(<U0001E907>,<U0001E929>);/
- (<U0001E908>,<U0001E92A>);(<U0001E909>,<U0001E92B>);/
- (<U0001E90A>,<U0001E92C>);(<U0001E90B>,<U0001E92D>);/
- (<U0001E90C>,<U0001E92E>);(<U0001E90D>,<U0001E92F>);/
- (<U0001E90E>,<U0001E930>);(<U0001E90F>,<U0001E931>);/
- (<U0001E910>,<U0001E932>);(<U0001E911>,<U0001E933>);/
- (<U0001E912>,<U0001E934>);(<U0001E913>,<U0001E935>);/
- (<U0001E914>,<U0001E936>);(<U0001E915>,<U0001E937>);/
- (<U0001E916>,<U0001E938>);(<U0001E917>,<U0001E939>);/
- (<U0001E918>,<U0001E93A>);(<U0001E919>,<U0001E93B>);/
- (<U0001E91A>,<U0001E93C>);(<U0001E91B>,<U0001E93D>);/
- (<U0001E91C>,<U0001E93E>);(<U0001E91D>,<U0001E93F>);/
- (<U0001E91E>,<U0001E940>);(<U0001E91F>,<U0001E941>);/
- (<U0001E920>,<U0001E942>);(<U0001E921>,<U0001E943>)
+ (<UA7BA>,<UA7BB>);(<UA7BC>,<UA7BD>);(<UA7BE>,<UA7BF>);(<UA7C2>,<UA7C3>);/
+ (<UA7C4>,<UA794>);(<UA7C5>,<U0282>);(<UA7C6>,<U1D8E>);(<UFF21>,<UFF41>);/
+ (<UFF22>,<UFF42>);(<UFF23>,<UFF43>);(<UFF24>,<UFF44>);(<UFF25>,<UFF45>);/
+ (<UFF26>,<UFF46>);(<UFF27>,<UFF47>);(<UFF28>,<UFF48>);(<UFF29>,<UFF49>);/
+ (<UFF2A>,<UFF4A>);(<UFF2B>,<UFF4B>);(<UFF2C>,<UFF4C>);(<UFF2D>,<UFF4D>);/
+ (<UFF2E>,<UFF4E>);(<UFF2F>,<UFF4F>);(<UFF30>,<UFF50>);(<UFF31>,<UFF51>);/
+ (<UFF32>,<UFF52>);(<UFF33>,<UFF53>);(<UFF34>,<UFF54>);(<UFF35>,<UFF55>);/
+ (<UFF36>,<UFF56>);(<UFF37>,<UFF57>);(<UFF38>,<UFF58>);(<UFF39>,<UFF59>);/
+ (<UFF3A>,<UFF5A>);(<U00010400>,<U00010428>);(<U00010401>,<U00010429>);/
+ (<U00010402>,<U0001042A>);(<U00010403>,<U0001042B>);/
+ (<U00010404>,<U0001042C>);(<U00010405>,<U0001042D>);/
+ (<U00010406>,<U0001042E>);(<U00010407>,<U0001042F>);/
+ (<U00010408>,<U00010430>);(<U00010409>,<U00010431>);/
+ (<U0001040A>,<U00010432>);(<U0001040B>,<U00010433>);/
+ (<U0001040C>,<U00010434>);(<U0001040D>,<U00010435>);/
+ (<U0001040E>,<U00010436>);(<U0001040F>,<U00010437>);/
+ (<U00010410>,<U00010438>);(<U00010411>,<U00010439>);/
+ (<U00010412>,<U0001043A>);(<U00010413>,<U0001043B>);/
+ (<U00010414>,<U0001043C>);(<U00010415>,<U0001043D>);/
+ (<U00010416>,<U0001043E>);(<U00010417>,<U0001043F>);/
+ (<U00010418>,<U00010440>);(<U00010419>,<U00010441>);/
+ (<U0001041A>,<U00010442>);(<U0001041B>,<U00010443>);/
+ (<U0001041C>,<U00010444>);(<U0001041D>,<U00010445>);/
+ (<U0001041E>,<U00010446>);(<U0001041F>,<U00010447>);/
+ (<U00010420>,<U00010448>);(<U00010421>,<U00010449>);/
+ (<U00010422>,<U0001044A>);(<U00010423>,<U0001044B>);/
+ (<U00010424>,<U0001044C>);(<U00010425>,<U0001044D>);/
+ (<U00010426>,<U0001044E>);(<U00010427>,<U0001044F>);/
+ (<U000104B0>,<U000104D8>);(<U000104B1>,<U000104D9>);/
+ (<U000104B2>,<U000104DA>);(<U000104B3>,<U000104DB>);/
+ (<U000104B4>,<U000104DC>);(<U000104B5>,<U000104DD>);/
+ (<U000104B6>,<U000104DE>);(<U000104B7>,<U000104DF>);/
+ (<U000104B8>,<U000104E0>);(<U000104B9>,<U000104E1>);/
+ (<U000104BA>,<U000104E2>);(<U000104BB>,<U000104E3>);/
+ (<U000104BC>,<U000104E4>);(<U000104BD>,<U000104E5>);/
+ (<U000104BE>,<U000104E6>);(<U000104BF>,<U000104E7>);/
+ (<U000104C0>,<U000104E8>);(<U000104C1>,<U000104E9>);/
+ (<U000104C2>,<U000104EA>);(<U000104C3>,<U000104EB>);/
+ (<U000104C4>,<U000104EC>);(<U000104C5>,<U000104ED>);/
+ (<U000104C6>,<U000104EE>);(<U000104C7>,<U000104EF>);/
+ (<U000104C8>,<U000104F0>);(<U000104C9>,<U000104F1>);/
+ (<U000104CA>,<U000104F2>);(<U000104CB>,<U000104F3>);/
+ (<U000104CC>,<U000104F4>);(<U000104CD>,<U000104F5>);/
+ (<U000104CE>,<U000104F6>);(<U000104CF>,<U000104F7>);/
+ (<U000104D0>,<U000104F8>);(<U000104D1>,<U000104F9>);/
+ (<U000104D2>,<U000104FA>);(<U000104D3>,<U000104FB>);/
+ (<U00010C80>,<U00010CC0>);(<U00010C81>,<U00010CC1>);/
+ (<U00010C82>,<U00010CC2>);(<U00010C83>,<U00010CC3>);/
+ (<U00010C84>,<U00010CC4>);(<U00010C85>,<U00010CC5>);/
+ (<U00010C86>,<U00010CC6>);(<U00010C87>,<U00010CC7>);/
+ (<U00010C88>,<U00010CC8>);(<U00010C89>,<U00010CC9>);/
+ (<U00010C8A>,<U00010CCA>);(<U00010C8B>,<U00010CCB>);/
+ (<U00010C8C>,<U00010CCC>);(<U00010C8D>,<U00010CCD>);/
+ (<U00010C8E>,<U00010CCE>);(<U00010C8F>,<U00010CCF>);/
+ (<U00010C90>,<U00010CD0>);(<U00010C91>,<U00010CD1>);/
+ (<U00010C92>,<U00010CD2>);(<U00010C93>,<U00010CD3>);/
+ (<U00010C94>,<U00010CD4>);(<U00010C95>,<U00010CD5>);/
+ (<U00010C96>,<U00010CD6>);(<U00010C97>,<U00010CD7>);/
+ (<U00010C98>,<U00010CD8>);(<U00010C99>,<U00010CD9>);/
+ (<U00010C9A>,<U00010CDA>);(<U00010C9B>,<U00010CDB>);/
+ (<U00010C9C>,<U00010CDC>);(<U00010C9D>,<U00010CDD>);/
+ (<U00010C9E>,<U00010CDE>);(<U00010C9F>,<U00010CDF>);/
+ (<U00010CA0>,<U00010CE0>);(<U00010CA1>,<U00010CE1>);/
+ (<U00010CA2>,<U00010CE2>);(<U00010CA3>,<U00010CE3>);/
+ (<U00010CA4>,<U00010CE4>);(<U00010CA5>,<U00010CE5>);/
+ (<U00010CA6>,<U00010CE6>);(<U00010CA7>,<U00010CE7>);/
+ (<U00010CA8>,<U00010CE8>);(<U00010CA9>,<U00010CE9>);/
+ (<U00010CAA>,<U00010CEA>);(<U00010CAB>,<U00010CEB>);/
+ (<U00010CAC>,<U00010CEC>);(<U00010CAD>,<U00010CED>);/
+ (<U00010CAE>,<U00010CEE>);(<U00010CAF>,<U00010CEF>);/
+ (<U00010CB0>,<U00010CF0>);(<U00010CB1>,<U00010CF1>);/
+ (<U00010CB2>,<U00010CF2>);(<U000118A0>,<U000118C0>);/
+ (<U000118A1>,<U000118C1>);(<U000118A2>,<U000118C2>);/
+ (<U000118A3>,<U000118C3>);(<U000118A4>,<U000118C4>);/
+ (<U000118A5>,<U000118C5>);(<U000118A6>,<U000118C6>);/
+ (<U000118A7>,<U000118C7>);(<U000118A8>,<U000118C8>);/
+ (<U000118A9>,<U000118C9>);(<U000118AA>,<U000118CA>);/
+ (<U000118AB>,<U000118CB>);(<U000118AC>,<U000118CC>);/
+ (<U000118AD>,<U000118CD>);(<U000118AE>,<U000118CE>);/
+ (<U000118AF>,<U000118CF>);(<U000118B0>,<U000118D0>);/
+ (<U000118B1>,<U000118D1>);(<U000118B2>,<U000118D2>);/
+ (<U000118B3>,<U000118D3>);(<U000118B4>,<U000118D4>);/
+ (<U000118B5>,<U000118D5>);(<U000118B6>,<U000118D6>);/
+ (<U000118B7>,<U000118D7>);(<U000118B8>,<U000118D8>);/
+ (<U000118B9>,<U000118D9>);(<U000118BA>,<U000118DA>);/
+ (<U000118BB>,<U000118DB>);(<U000118BC>,<U000118DC>);/
+ (<U000118BD>,<U000118DD>);(<U000118BE>,<U000118DE>);/
+ (<U000118BF>,<U000118DF>);(<U00016E40>,<U00016E60>);/
+ (<U00016E41>,<U00016E61>);(<U00016E42>,<U00016E62>);/
+ (<U00016E43>,<U00016E63>);(<U00016E44>,<U00016E64>);/
+ (<U00016E45>,<U00016E65>);(<U00016E46>,<U00016E66>);/
+ (<U00016E47>,<U00016E67>);(<U00016E48>,<U00016E68>);/
+ (<U00016E49>,<U00016E69>);(<U00016E4A>,<U00016E6A>);/
+ (<U00016E4B>,<U00016E6B>);(<U00016E4C>,<U00016E6C>);/
+ (<U00016E4D>,<U00016E6D>);(<U00016E4E>,<U00016E6E>);/
+ (<U00016E4F>,<U00016E6F>);(<U00016E50>,<U00016E70>);/
+ (<U00016E51>,<U00016E71>);(<U00016E52>,<U00016E72>);/
+ (<U00016E53>,<U00016E73>);(<U00016E54>,<U00016E74>);/
+ (<U00016E55>,<U00016E75>);(<U00016E56>,<U00016E76>);/
+ (<U00016E57>,<U00016E77>);(<U00016E58>,<U00016E78>);/
+ (<U00016E59>,<U00016E79>);(<U00016E5A>,<U00016E7A>);/
+ (<U00016E5B>,<U00016E7B>);(<U00016E5C>,<U00016E7C>);/
+ (<U00016E5D>,<U00016E7D>);(<U00016E5E>,<U00016E7E>);/
+ (<U00016E5F>,<U00016E7F>);(<U0001E900>,<U0001E922>);/
+ (<U0001E901>,<U0001E923>);(<U0001E902>,<U0001E924>);/
+ (<U0001E903>,<U0001E925>);(<U0001E904>,<U0001E926>);/
+ (<U0001E905>,<U0001E927>);(<U0001E906>,<U0001E928>);/
+ (<U0001E907>,<U0001E929>);(<U0001E908>,<U0001E92A>);/
+ (<U0001E909>,<U0001E92B>);(<U0001E90A>,<U0001E92C>);/
+ (<U0001E90B>,<U0001E92D>);(<U0001E90C>,<U0001E92E>);/
+ (<U0001E90D>,<U0001E92F>);(<U0001E90E>,<U0001E930>);/
+ (<U0001E90F>,<U0001E931>);(<U0001E910>,<U0001E932>);/
+ (<U0001E911>,<U0001E933>);(<U0001E912>,<U0001E934>);/
+ (<U0001E913>,<U0001E935>);(<U0001E914>,<U0001E936>);/
+ (<U0001E915>,<U0001E937>);(<U0001E916>,<U0001E938>);/
+ (<U0001E917>,<U0001E939>);(<U0001E918>,<U0001E93A>);/
+ (<U0001E919>,<U0001E93B>);(<U0001E91A>,<U0001E93C>);/
+ (<U0001E91B>,<U0001E93D>);(<U0001E91C>,<U0001E93E>);/
+ (<U0001E91D>,<U0001E93F>);(<U0001E91E>,<U0001E940>);/
+ (<U0001E91F>,<U0001E941>);(<U0001E920>,<U0001E942>);/
+ (<U0001E921>,<U0001E943>)
map "totitle"; /
(<U0061>,<U0041>);(<U0062>,<U0042>);(<U0063>,<U0043>);(<U0064>,<U0044>);/
@@ -2040,231 +2061,233 @@ map "totitle"; /
(<U0265>,<UA78D>);(<U0266>,<UA7AA>);(<U0268>,<U0197>);(<U0269>,<U0196>);/
(<U026A>,<UA7AE>);(<U026B>,<U2C62>);(<U026C>,<UA7AD>);(<U026F>,<U019C>);/
(<U0271>,<U2C6E>);(<U0272>,<U019D>);(<U0275>,<U019F>);(<U027D>,<U2C64>);/
- (<U0280>,<U01A6>);(<U0283>,<U01A9>);(<U0287>,<UA7B1>);(<U0288>,<U01AE>);/
- (<U0289>,<U0244>);(<U028A>,<U01B1>);(<U028B>,<U01B2>);(<U028C>,<U0245>);/
- (<U0292>,<U01B7>);(<U029D>,<UA7B2>);(<U029E>,<UA7B0>);(<U0345>,<U0399>);/
- (<U0371>,<U0370>);(<U0373>,<U0372>);(<U0377>,<U0376>);(<U037B>,<U03FD>);/
- (<U037C>,<U03FE>);(<U037D>,<U03FF>);(<U03AC>,<U0386>);(<U03AD>,<U0388>);/
- (<U03AE>,<U0389>);(<U03AF>,<U038A>);(<U03B1>,<U0391>);(<U03B2>,<U0392>);/
- (<U03B3>,<U0393>);(<U03B4>,<U0394>);(<U03B5>,<U0395>);(<U03B6>,<U0396>);/
- (<U03B7>,<U0397>);(<U03B8>,<U0398>);(<U03B9>,<U0399>);(<U03BA>,<U039A>);/
- (<U03BB>,<U039B>);(<U03BC>,<U039C>);(<U03BD>,<U039D>);(<U03BE>,<U039E>);/
- (<U03BF>,<U039F>);(<U03C0>,<U03A0>);(<U03C1>,<U03A1>);(<U03C2>,<U03A3>);/
- (<U03C3>,<U03A3>);(<U03C4>,<U03A4>);(<U03C5>,<U03A5>);(<U03C6>,<U03A6>);/
- (<U03C7>,<U03A7>);(<U03C8>,<U03A8>);(<U03C9>,<U03A9>);(<U03CA>,<U03AA>);/
- (<U03CB>,<U03AB>);(<U03CC>,<U038C>);(<U03CD>,<U038E>);(<U03CE>,<U038F>);/
- (<U03D0>,<U0392>);(<U03D1>,<U0398>);(<U03D5>,<U03A6>);(<U03D6>,<U03A0>);/
- (<U03D7>,<U03CF>);(<U03D9>,<U03D8>);(<U03DB>,<U03DA>);(<U03DD>,<U03DC>);/
- (<U03DF>,<U03DE>);(<U03E1>,<U03E0>);(<U03E3>,<U03E2>);(<U03E5>,<U03E4>);/
- (<U03E7>,<U03E6>);(<U03E9>,<U03E8>);(<U03EB>,<U03EA>);(<U03ED>,<U03EC>);/
- (<U03EF>,<U03EE>);(<U03F0>,<U039A>);(<U03F1>,<U03A1>);(<U03F2>,<U03F9>);/
- (<U03F3>,<U037F>);(<U03F5>,<U0395>);(<U03F8>,<U03F7>);(<U03FB>,<U03FA>);/
- (<U0430>,<U0410>);(<U0431>,<U0411>);(<U0432>,<U0412>);(<U0433>,<U0413>);/
- (<U0434>,<U0414>);(<U0435>,<U0415>);(<U0436>,<U0416>);(<U0437>,<U0417>);/
- (<U0438>,<U0418>);(<U0439>,<U0419>);(<U043A>,<U041A>);(<U043B>,<U041B>);/
- (<U043C>,<U041C>);(<U043D>,<U041D>);(<U043E>,<U041E>);(<U043F>,<U041F>);/
- (<U0440>,<U0420>);(<U0441>,<U0421>);(<U0442>,<U0422>);(<U0443>,<U0423>);/
- (<U0444>,<U0424>);(<U0445>,<U0425>);(<U0446>,<U0426>);(<U0447>,<U0427>);/
- (<U0448>,<U0428>);(<U0449>,<U0429>);(<U044A>,<U042A>);(<U044B>,<U042B>);/
- (<U044C>,<U042C>);(<U044D>,<U042D>);(<U044E>,<U042E>);(<U044F>,<U042F>);/
- (<U0450>,<U0400>);(<U0451>,<U0401>);(<U0452>,<U0402>);(<U0453>,<U0403>);/
- (<U0454>,<U0404>);(<U0455>,<U0405>);(<U0456>,<U0406>);(<U0457>,<U0407>);/
- (<U0458>,<U0408>);(<U0459>,<U0409>);(<U045A>,<U040A>);(<U045B>,<U040B>);/
- (<U045C>,<U040C>);(<U045D>,<U040D>);(<U045E>,<U040E>);(<U045F>,<U040F>);/
- (<U0461>,<U0460>);(<U0463>,<U0462>);(<U0465>,<U0464>);(<U0467>,<U0466>);/
- (<U0469>,<U0468>);(<U046B>,<U046A>);(<U046D>,<U046C>);(<U046F>,<U046E>);/
- (<U0471>,<U0470>);(<U0473>,<U0472>);(<U0475>,<U0474>);(<U0477>,<U0476>);/
- (<U0479>,<U0478>);(<U047B>,<U047A>);(<U047D>,<U047C>);(<U047F>,<U047E>);/
- (<U0481>,<U0480>);(<U048B>,<U048A>);(<U048D>,<U048C>);(<U048F>,<U048E>);/
- (<U0491>,<U0490>);(<U0493>,<U0492>);(<U0495>,<U0494>);(<U0497>,<U0496>);/
- (<U0499>,<U0498>);(<U049B>,<U049A>);(<U049D>,<U049C>);(<U049F>,<U049E>);/
- (<U04A1>,<U04A0>);(<U04A3>,<U04A2>);(<U04A5>,<U04A4>);(<U04A7>,<U04A6>);/
- (<U04A9>,<U04A8>);(<U04AB>,<U04AA>);(<U04AD>,<U04AC>);(<U04AF>,<U04AE>);/
- (<U04B1>,<U04B0>);(<U04B3>,<U04B2>);(<U04B5>,<U04B4>);(<U04B7>,<U04B6>);/
- (<U04B9>,<U04B8>);(<U04BB>,<U04BA>);(<U04BD>,<U04BC>);(<U04BF>,<U04BE>);/
- (<U04C2>,<U04C1>);(<U04C4>,<U04C3>);(<U04C6>,<U04C5>);(<U04C8>,<U04C7>);/
- (<U04CA>,<U04C9>);(<U04CC>,<U04CB>);(<U04CE>,<U04CD>);(<U04CF>,<U04C0>);/
- (<U04D1>,<U04D0>);(<U04D3>,<U04D2>);(<U04D5>,<U04D4>);(<U04D7>,<U04D6>);/
- (<U04D9>,<U04D8>);(<U04DB>,<U04DA>);(<U04DD>,<U04DC>);(<U04DF>,<U04DE>);/
- (<U04E1>,<U04E0>);(<U04E3>,<U04E2>);(<U04E5>,<U04E4>);(<U04E7>,<U04E6>);/
- (<U04E9>,<U04E8>);(<U04EB>,<U04EA>);(<U04ED>,<U04EC>);(<U04EF>,<U04EE>);/
- (<U04F1>,<U04F0>);(<U04F3>,<U04F2>);(<U04F5>,<U04F4>);(<U04F7>,<U04F6>);/
- (<U04F9>,<U04F8>);(<U04FB>,<U04FA>);(<U04FD>,<U04FC>);(<U04FF>,<U04FE>);/
- (<U0501>,<U0500>);(<U0503>,<U0502>);(<U0505>,<U0504>);(<U0507>,<U0506>);/
- (<U0509>,<U0508>);(<U050B>,<U050A>);(<U050D>,<U050C>);(<U050F>,<U050E>);/
- (<U0511>,<U0510>);(<U0513>,<U0512>);(<U0515>,<U0514>);(<U0517>,<U0516>);/
- (<U0519>,<U0518>);(<U051B>,<U051A>);(<U051D>,<U051C>);(<U051F>,<U051E>);/
- (<U0521>,<U0520>);(<U0523>,<U0522>);(<U0525>,<U0524>);(<U0527>,<U0526>);/
- (<U0529>,<U0528>);(<U052B>,<U052A>);(<U052D>,<U052C>);(<U052F>,<U052E>);/
- (<U0561>,<U0531>);(<U0562>,<U0532>);(<U0563>,<U0533>);(<U0564>,<U0534>);/
- (<U0565>,<U0535>);(<U0566>,<U0536>);(<U0567>,<U0537>);(<U0568>,<U0538>);/
- (<U0569>,<U0539>);(<U056A>,<U053A>);(<U056B>,<U053B>);(<U056C>,<U053C>);/
- (<U056D>,<U053D>);(<U056E>,<U053E>);(<U056F>,<U053F>);(<U0570>,<U0540>);/
- (<U0571>,<U0541>);(<U0572>,<U0542>);(<U0573>,<U0543>);(<U0574>,<U0544>);/
- (<U0575>,<U0545>);(<U0576>,<U0546>);(<U0577>,<U0547>);(<U0578>,<U0548>);/
- (<U0579>,<U0549>);(<U057A>,<U054A>);(<U057B>,<U054B>);(<U057C>,<U054C>);/
- (<U057D>,<U054D>);(<U057E>,<U054E>);(<U057F>,<U054F>);(<U0580>,<U0550>);/
- (<U0581>,<U0551>);(<U0582>,<U0552>);(<U0583>,<U0553>);(<U0584>,<U0554>);/
- (<U0585>,<U0555>);(<U0586>,<U0556>);(<U13F8>,<U13F0>);(<U13F9>,<U13F1>);/
- (<U13FA>,<U13F2>);(<U13FB>,<U13F3>);(<U13FC>,<U13F4>);(<U13FD>,<U13F5>);/
- (<U1C80>,<U0412>);(<U1C81>,<U0414>);(<U1C82>,<U041E>);(<U1C83>,<U0421>);/
- (<U1C84>,<U0422>);(<U1C85>,<U0422>);(<U1C86>,<U042A>);(<U1C87>,<U0462>);/
- (<U1C88>,<UA64A>);(<U1D79>,<UA77D>);(<U1D7D>,<U2C63>);(<U1E01>,<U1E00>);/
- (<U1E03>,<U1E02>);(<U1E05>,<U1E04>);(<U1E07>,<U1E06>);(<U1E09>,<U1E08>);/
- (<U1E0B>,<U1E0A>);(<U1E0D>,<U1E0C>);(<U1E0F>,<U1E0E>);(<U1E11>,<U1E10>);/
- (<U1E13>,<U1E12>);(<U1E15>,<U1E14>);(<U1E17>,<U1E16>);(<U1E19>,<U1E18>);/
- (<U1E1B>,<U1E1A>);(<U1E1D>,<U1E1C>);(<U1E1F>,<U1E1E>);(<U1E21>,<U1E20>);/
- (<U1E23>,<U1E22>);(<U1E25>,<U1E24>);(<U1E27>,<U1E26>);(<U1E29>,<U1E28>);/
- (<U1E2B>,<U1E2A>);(<U1E2D>,<U1E2C>);(<U1E2F>,<U1E2E>);(<U1E31>,<U1E30>);/
- (<U1E33>,<U1E32>);(<U1E35>,<U1E34>);(<U1E37>,<U1E36>);(<U1E39>,<U1E38>);/
- (<U1E3B>,<U1E3A>);(<U1E3D>,<U1E3C>);(<U1E3F>,<U1E3E>);(<U1E41>,<U1E40>);/
- (<U1E43>,<U1E42>);(<U1E45>,<U1E44>);(<U1E47>,<U1E46>);(<U1E49>,<U1E48>);/
- (<U1E4B>,<U1E4A>);(<U1E4D>,<U1E4C>);(<U1E4F>,<U1E4E>);(<U1E51>,<U1E50>);/
- (<U1E53>,<U1E52>);(<U1E55>,<U1E54>);(<U1E57>,<U1E56>);(<U1E59>,<U1E58>);/
- (<U1E5B>,<U1E5A>);(<U1E5D>,<U1E5C>);(<U1E5F>,<U1E5E>);(<U1E61>,<U1E60>);/
- (<U1E63>,<U1E62>);(<U1E65>,<U1E64>);(<U1E67>,<U1E66>);(<U1E69>,<U1E68>);/
- (<U1E6B>,<U1E6A>);(<U1E6D>,<U1E6C>);(<U1E6F>,<U1E6E>);(<U1E71>,<U1E70>);/
- (<U1E73>,<U1E72>);(<U1E75>,<U1E74>);(<U1E77>,<U1E76>);(<U1E79>,<U1E78>);/
- (<U1E7B>,<U1E7A>);(<U1E7D>,<U1E7C>);(<U1E7F>,<U1E7E>);(<U1E81>,<U1E80>);/
- (<U1E83>,<U1E82>);(<U1E85>,<U1E84>);(<U1E87>,<U1E86>);(<U1E89>,<U1E88>);/
- (<U1E8B>,<U1E8A>);(<U1E8D>,<U1E8C>);(<U1E8F>,<U1E8E>);(<U1E91>,<U1E90>);/
- (<U1E93>,<U1E92>);(<U1E95>,<U1E94>);(<U1E9B>,<U1E60>);(<U1EA1>,<U1EA0>);/
- (<U1EA3>,<U1EA2>);(<U1EA5>,<U1EA4>);(<U1EA7>,<U1EA6>);(<U1EA9>,<U1EA8>);/
- (<U1EAB>,<U1EAA>);(<U1EAD>,<U1EAC>);(<U1EAF>,<U1EAE>);(<U1EB1>,<U1EB0>);/
- (<U1EB3>,<U1EB2>);(<U1EB5>,<U1EB4>);(<U1EB7>,<U1EB6>);(<U1EB9>,<U1EB8>);/
- (<U1EBB>,<U1EBA>);(<U1EBD>,<U1EBC>);(<U1EBF>,<U1EBE>);(<U1EC1>,<U1EC0>);/
- (<U1EC3>,<U1EC2>);(<U1EC5>,<U1EC4>);(<U1EC7>,<U1EC6>);(<U1EC9>,<U1EC8>);/
- (<U1ECB>,<U1ECA>);(<U1ECD>,<U1ECC>);(<U1ECF>,<U1ECE>);(<U1ED1>,<U1ED0>);/
- (<U1ED3>,<U1ED2>);(<U1ED5>,<U1ED4>);(<U1ED7>,<U1ED6>);(<U1ED9>,<U1ED8>);/
- (<U1EDB>,<U1EDA>);(<U1EDD>,<U1EDC>);(<U1EDF>,<U1EDE>);(<U1EE1>,<U1EE0>);/
- (<U1EE3>,<U1EE2>);(<U1EE5>,<U1EE4>);(<U1EE7>,<U1EE6>);(<U1EE9>,<U1EE8>);/
- (<U1EEB>,<U1EEA>);(<U1EED>,<U1EEC>);(<U1EEF>,<U1EEE>);(<U1EF1>,<U1EF0>);/
- (<U1EF3>,<U1EF2>);(<U1EF5>,<U1EF4>);(<U1EF7>,<U1EF6>);(<U1EF9>,<U1EF8>);/
- (<U1EFB>,<U1EFA>);(<U1EFD>,<U1EFC>);(<U1EFF>,<U1EFE>);(<U1F00>,<U1F08>);/
- (<U1F01>,<U1F09>);(<U1F02>,<U1F0A>);(<U1F03>,<U1F0B>);(<U1F04>,<U1F0C>);/
- (<U1F05>,<U1F0D>);(<U1F06>,<U1F0E>);(<U1F07>,<U1F0F>);(<U1F10>,<U1F18>);/
- (<U1F11>,<U1F19>);(<U1F12>,<U1F1A>);(<U1F13>,<U1F1B>);(<U1F14>,<U1F1C>);/
- (<U1F15>,<U1F1D>);(<U1F20>,<U1F28>);(<U1F21>,<U1F29>);(<U1F22>,<U1F2A>);/
- (<U1F23>,<U1F2B>);(<U1F24>,<U1F2C>);(<U1F25>,<U1F2D>);(<U1F26>,<U1F2E>);/
- (<U1F27>,<U1F2F>);(<U1F30>,<U1F38>);(<U1F31>,<U1F39>);(<U1F32>,<U1F3A>);/
- (<U1F33>,<U1F3B>);(<U1F34>,<U1F3C>);(<U1F35>,<U1F3D>);(<U1F36>,<U1F3E>);/
- (<U1F37>,<U1F3F>);(<U1F40>,<U1F48>);(<U1F41>,<U1F49>);(<U1F42>,<U1F4A>);/
- (<U1F43>,<U1F4B>);(<U1F44>,<U1F4C>);(<U1F45>,<U1F4D>);(<U1F51>,<U1F59>);/
- (<U1F53>,<U1F5B>);(<U1F55>,<U1F5D>);(<U1F57>,<U1F5F>);(<U1F60>,<U1F68>);/
- (<U1F61>,<U1F69>);(<U1F62>,<U1F6A>);(<U1F63>,<U1F6B>);(<U1F64>,<U1F6C>);/
- (<U1F65>,<U1F6D>);(<U1F66>,<U1F6E>);(<U1F67>,<U1F6F>);(<U1F70>,<U1FBA>);/
- (<U1F71>,<U1FBB>);(<U1F72>,<U1FC8>);(<U1F73>,<U1FC9>);(<U1F74>,<U1FCA>);/
- (<U1F75>,<U1FCB>);(<U1F76>,<U1FDA>);(<U1F77>,<U1FDB>);(<U1F78>,<U1FF8>);/
- (<U1F79>,<U1FF9>);(<U1F7A>,<U1FEA>);(<U1F7B>,<U1FEB>);(<U1F7C>,<U1FFA>);/
- (<U1F7D>,<U1FFB>);(<U1F80>,<U1F88>);(<U1F81>,<U1F89>);(<U1F82>,<U1F8A>);/
- (<U1F83>,<U1F8B>);(<U1F84>,<U1F8C>);(<U1F85>,<U1F8D>);(<U1F86>,<U1F8E>);/
- (<U1F87>,<U1F8F>);(<U1F90>,<U1F98>);(<U1F91>,<U1F99>);(<U1F92>,<U1F9A>);/
- (<U1F93>,<U1F9B>);(<U1F94>,<U1F9C>);(<U1F95>,<U1F9D>);(<U1F96>,<U1F9E>);/
- (<U1F97>,<U1F9F>);(<U1FA0>,<U1FA8>);(<U1FA1>,<U1FA9>);(<U1FA2>,<U1FAA>);/
- (<U1FA3>,<U1FAB>);(<U1FA4>,<U1FAC>);(<U1FA5>,<U1FAD>);(<U1FA6>,<U1FAE>);/
- (<U1FA7>,<U1FAF>);(<U1FB0>,<U1FB8>);(<U1FB1>,<U1FB9>);(<U1FB3>,<U1FBC>);/
- (<U1FBE>,<U0399>);(<U1FC3>,<U1FCC>);(<U1FD0>,<U1FD8>);(<U1FD1>,<U1FD9>);/
- (<U1FE0>,<U1FE8>);(<U1FE1>,<U1FE9>);(<U1FE5>,<U1FEC>);(<U1FF3>,<U1FFC>);/
- (<U214E>,<U2132>);(<U2170>,<U2160>);(<U2171>,<U2161>);(<U2172>,<U2162>);/
- (<U2173>,<U2163>);(<U2174>,<U2164>);(<U2175>,<U2165>);(<U2176>,<U2166>);/
- (<U2177>,<U2167>);(<U2178>,<U2168>);(<U2179>,<U2169>);(<U217A>,<U216A>);/
- (<U217B>,<U216B>);(<U217C>,<U216C>);(<U217D>,<U216D>);(<U217E>,<U216E>);/
- (<U217F>,<U216F>);(<U2184>,<U2183>);(<U24D0>,<U24B6>);(<U24D1>,<U24B7>);/
- (<U24D2>,<U24B8>);(<U24D3>,<U24B9>);(<U24D4>,<U24BA>);(<U24D5>,<U24BB>);/
- (<U24D6>,<U24BC>);(<U24D7>,<U24BD>);(<U24D8>,<U24BE>);(<U24D9>,<U24BF>);/
- (<U24DA>,<U24C0>);(<U24DB>,<U24C1>);(<U24DC>,<U24C2>);(<U24DD>,<U24C3>);/
- (<U24DE>,<U24C4>);(<U24DF>,<U24C5>);(<U24E0>,<U24C6>);(<U24E1>,<U24C7>);/
- (<U24E2>,<U24C8>);(<U24E3>,<U24C9>);(<U24E4>,<U24CA>);(<U24E5>,<U24CB>);/
- (<U24E6>,<U24CC>);(<U24E7>,<U24CD>);(<U24E8>,<U24CE>);(<U24E9>,<U24CF>);/
- (<U2C30>,<U2C00>);(<U2C31>,<U2C01>);(<U2C32>,<U2C02>);(<U2C33>,<U2C03>);/
- (<U2C34>,<U2C04>);(<U2C35>,<U2C05>);(<U2C36>,<U2C06>);(<U2C37>,<U2C07>);/
- (<U2C38>,<U2C08>);(<U2C39>,<U2C09>);(<U2C3A>,<U2C0A>);(<U2C3B>,<U2C0B>);/
- (<U2C3C>,<U2C0C>);(<U2C3D>,<U2C0D>);(<U2C3E>,<U2C0E>);(<U2C3F>,<U2C0F>);/
- (<U2C40>,<U2C10>);(<U2C41>,<U2C11>);(<U2C42>,<U2C12>);(<U2C43>,<U2C13>);/
- (<U2C44>,<U2C14>);(<U2C45>,<U2C15>);(<U2C46>,<U2C16>);(<U2C47>,<U2C17>);/
- (<U2C48>,<U2C18>);(<U2C49>,<U2C19>);(<U2C4A>,<U2C1A>);(<U2C4B>,<U2C1B>);/
- (<U2C4C>,<U2C1C>);(<U2C4D>,<U2C1D>);(<U2C4E>,<U2C1E>);(<U2C4F>,<U2C1F>);/
- (<U2C50>,<U2C20>);(<U2C51>,<U2C21>);(<U2C52>,<U2C22>);(<U2C53>,<U2C23>);/
- (<U2C54>,<U2C24>);(<U2C55>,<U2C25>);(<U2C56>,<U2C26>);(<U2C57>,<U2C27>);/
- (<U2C58>,<U2C28>);(<U2C59>,<U2C29>);(<U2C5A>,<U2C2A>);(<U2C5B>,<U2C2B>);/
- (<U2C5C>,<U2C2C>);(<U2C5D>,<U2C2D>);(<U2C5E>,<U2C2E>);(<U2C61>,<U2C60>);/
- (<U2C65>,<U023A>);(<U2C66>,<U023E>);(<U2C68>,<U2C67>);(<U2C6A>,<U2C69>);/
- (<U2C6C>,<U2C6B>);(<U2C73>,<U2C72>);(<U2C76>,<U2C75>);(<U2C81>,<U2C80>);/
- (<U2C83>,<U2C82>);(<U2C85>,<U2C84>);(<U2C87>,<U2C86>);(<U2C89>,<U2C88>);/
- (<U2C8B>,<U2C8A>);(<U2C8D>,<U2C8C>);(<U2C8F>,<U2C8E>);(<U2C91>,<U2C90>);/
- (<U2C93>,<U2C92>);(<U2C95>,<U2C94>);(<U2C97>,<U2C96>);(<U2C99>,<U2C98>);/
- (<U2C9B>,<U2C9A>);(<U2C9D>,<U2C9C>);(<U2C9F>,<U2C9E>);(<U2CA1>,<U2CA0>);/
- (<U2CA3>,<U2CA2>);(<U2CA5>,<U2CA4>);(<U2CA7>,<U2CA6>);(<U2CA9>,<U2CA8>);/
- (<U2CAB>,<U2CAA>);(<U2CAD>,<U2CAC>);(<U2CAF>,<U2CAE>);(<U2CB1>,<U2CB0>);/
- (<U2CB3>,<U2CB2>);(<U2CB5>,<U2CB4>);(<U2CB7>,<U2CB6>);(<U2CB9>,<U2CB8>);/
- (<U2CBB>,<U2CBA>);(<U2CBD>,<U2CBC>);(<U2CBF>,<U2CBE>);(<U2CC1>,<U2CC0>);/
- (<U2CC3>,<U2CC2>);(<U2CC5>,<U2CC4>);(<U2CC7>,<U2CC6>);(<U2CC9>,<U2CC8>);/
- (<U2CCB>,<U2CCA>);(<U2CCD>,<U2CCC>);(<U2CCF>,<U2CCE>);(<U2CD1>,<U2CD0>);/
- (<U2CD3>,<U2CD2>);(<U2CD5>,<U2CD4>);(<U2CD7>,<U2CD6>);(<U2CD9>,<U2CD8>);/
- (<U2CDB>,<U2CDA>);(<U2CDD>,<U2CDC>);(<U2CDF>,<U2CDE>);(<U2CE1>,<U2CE0>);/
- (<U2CE3>,<U2CE2>);(<U2CEC>,<U2CEB>);(<U2CEE>,<U2CED>);(<U2CF3>,<U2CF2>);/
- (<U2D00>,<U10A0>);(<U2D01>,<U10A1>);(<U2D02>,<U10A2>);(<U2D03>,<U10A3>);/
- (<U2D04>,<U10A4>);(<U2D05>,<U10A5>);(<U2D06>,<U10A6>);(<U2D07>,<U10A7>);/
- (<U2D08>,<U10A8>);(<U2D09>,<U10A9>);(<U2D0A>,<U10AA>);(<U2D0B>,<U10AB>);/
- (<U2D0C>,<U10AC>);(<U2D0D>,<U10AD>);(<U2D0E>,<U10AE>);(<U2D0F>,<U10AF>);/
- (<U2D10>,<U10B0>);(<U2D11>,<U10B1>);(<U2D12>,<U10B2>);(<U2D13>,<U10B3>);/
- (<U2D14>,<U10B4>);(<U2D15>,<U10B5>);(<U2D16>,<U10B6>);(<U2D17>,<U10B7>);/
- (<U2D18>,<U10B8>);(<U2D19>,<U10B9>);(<U2D1A>,<U10BA>);(<U2D1B>,<U10BB>);/
- (<U2D1C>,<U10BC>);(<U2D1D>,<U10BD>);(<U2D1E>,<U10BE>);(<U2D1F>,<U10BF>);/
- (<U2D20>,<U10C0>);(<U2D21>,<U10C1>);(<U2D22>,<U10C2>);(<U2D23>,<U10C3>);/
- (<U2D24>,<U10C4>);(<U2D25>,<U10C5>);(<U2D27>,<U10C7>);(<U2D2D>,<U10CD>);/
- (<UA641>,<UA640>);(<UA643>,<UA642>);(<UA645>,<UA644>);(<UA647>,<UA646>);/
- (<UA649>,<UA648>);(<UA64B>,<UA64A>);(<UA64D>,<UA64C>);(<UA64F>,<UA64E>);/
- (<UA651>,<UA650>);(<UA653>,<UA652>);(<UA655>,<UA654>);(<UA657>,<UA656>);/
- (<UA659>,<UA658>);(<UA65B>,<UA65A>);(<UA65D>,<UA65C>);(<UA65F>,<UA65E>);/
- (<UA661>,<UA660>);(<UA663>,<UA662>);(<UA665>,<UA664>);(<UA667>,<UA666>);/
- (<UA669>,<UA668>);(<UA66B>,<UA66A>);(<UA66D>,<UA66C>);(<UA681>,<UA680>);/
- (<UA683>,<UA682>);(<UA685>,<UA684>);(<UA687>,<UA686>);(<UA689>,<UA688>);/
- (<UA68B>,<UA68A>);(<UA68D>,<UA68C>);(<UA68F>,<UA68E>);(<UA691>,<UA690>);/
- (<UA693>,<UA692>);(<UA695>,<UA694>);(<UA697>,<UA696>);(<UA699>,<UA698>);/
- (<UA69B>,<UA69A>);(<UA723>,<UA722>);(<UA725>,<UA724>);(<UA727>,<UA726>);/
- (<UA729>,<UA728>);(<UA72B>,<UA72A>);(<UA72D>,<UA72C>);(<UA72F>,<UA72E>);/
- (<UA733>,<UA732>);(<UA735>,<UA734>);(<UA737>,<UA736>);(<UA739>,<UA738>);/
- (<UA73B>,<UA73A>);(<UA73D>,<UA73C>);(<UA73F>,<UA73E>);(<UA741>,<UA740>);/
- (<UA743>,<UA742>);(<UA745>,<UA744>);(<UA747>,<UA746>);(<UA749>,<UA748>);/
- (<UA74B>,<UA74A>);(<UA74D>,<UA74C>);(<UA74F>,<UA74E>);(<UA751>,<UA750>);/
- (<UA753>,<UA752>);(<UA755>,<UA754>);(<UA757>,<UA756>);(<UA759>,<UA758>);/
- (<UA75B>,<UA75A>);(<UA75D>,<UA75C>);(<UA75F>,<UA75E>);(<UA761>,<UA760>);/
- (<UA763>,<UA762>);(<UA765>,<UA764>);(<UA767>,<UA766>);(<UA769>,<UA768>);/
- (<UA76B>,<UA76A>);(<UA76D>,<UA76C>);(<UA76F>,<UA76E>);(<UA77A>,<UA779>);/
- (<UA77C>,<UA77B>);(<UA77F>,<UA77E>);(<UA781>,<UA780>);(<UA783>,<UA782>);/
- (<UA785>,<UA784>);(<UA787>,<UA786>);(<UA78C>,<UA78B>);(<UA791>,<UA790>);/
- (<UA793>,<UA792>);(<UA797>,<UA796>);(<UA799>,<UA798>);(<UA79B>,<UA79A>);/
- (<UA79D>,<UA79C>);(<UA79F>,<UA79E>);(<UA7A1>,<UA7A0>);(<UA7A3>,<UA7A2>);/
- (<UA7A5>,<UA7A4>);(<UA7A7>,<UA7A6>);(<UA7A9>,<UA7A8>);(<UA7B5>,<UA7B4>);/
- (<UA7B7>,<UA7B6>);(<UA7B9>,<UA7B8>);(<UAB53>,<UA7B3>);(<UAB70>,<U13A0>);/
- (<UAB71>,<U13A1>);(<UAB72>,<U13A2>);(<UAB73>,<U13A3>);(<UAB74>,<U13A4>);/
- (<UAB75>,<U13A5>);(<UAB76>,<U13A6>);(<UAB77>,<U13A7>);(<UAB78>,<U13A8>);/
- (<UAB79>,<U13A9>);(<UAB7A>,<U13AA>);(<UAB7B>,<U13AB>);(<UAB7C>,<U13AC>);/
- (<UAB7D>,<U13AD>);(<UAB7E>,<U13AE>);(<UAB7F>,<U13AF>);(<UAB80>,<U13B0>);/
- (<UAB81>,<U13B1>);(<UAB82>,<U13B2>);(<UAB83>,<U13B3>);(<UAB84>,<U13B4>);/
- (<UAB85>,<U13B5>);(<UAB86>,<U13B6>);(<UAB87>,<U13B7>);(<UAB88>,<U13B8>);/
- (<UAB89>,<U13B9>);(<UAB8A>,<U13BA>);(<UAB8B>,<U13BB>);(<UAB8C>,<U13BC>);/
- (<UAB8D>,<U13BD>);(<UAB8E>,<U13BE>);(<UAB8F>,<U13BF>);(<UAB90>,<U13C0>);/
- (<UAB91>,<U13C1>);(<UAB92>,<U13C2>);(<UAB93>,<U13C3>);(<UAB94>,<U13C4>);/
- (<UAB95>,<U13C5>);(<UAB96>,<U13C6>);(<UAB97>,<U13C7>);(<UAB98>,<U13C8>);/
- (<UAB99>,<U13C9>);(<UAB9A>,<U13CA>);(<UAB9B>,<U13CB>);(<UAB9C>,<U13CC>);/
- (<UAB9D>,<U13CD>);(<UAB9E>,<U13CE>);(<UAB9F>,<U13CF>);(<UABA0>,<U13D0>);/
- (<UABA1>,<U13D1>);(<UABA2>,<U13D2>);(<UABA3>,<U13D3>);(<UABA4>,<U13D4>);/
- (<UABA5>,<U13D5>);(<UABA6>,<U13D6>);(<UABA7>,<U13D7>);(<UABA8>,<U13D8>);/
- (<UABA9>,<U13D9>);(<UABAA>,<U13DA>);(<UABAB>,<U13DB>);(<UABAC>,<U13DC>);/
- (<UABAD>,<U13DD>);(<UABAE>,<U13DE>);(<UABAF>,<U13DF>);(<UABB0>,<U13E0>);/
- (<UABB1>,<U13E1>);(<UABB2>,<U13E2>);(<UABB3>,<U13E3>);(<UABB4>,<U13E4>);/
- (<UABB5>,<U13E5>);(<UABB6>,<U13E6>);(<UABB7>,<U13E7>);(<UABB8>,<U13E8>);/
- (<UABB9>,<U13E9>);(<UABBA>,<U13EA>);(<UABBB>,<U13EB>);(<UABBC>,<U13EC>);/
- (<UABBD>,<U13ED>);(<UABBE>,<U13EE>);(<UABBF>,<U13EF>);(<UFF41>,<UFF21>);/
- (<UFF42>,<UFF22>);(<UFF43>,<UFF23>);(<UFF44>,<UFF24>);(<UFF45>,<UFF25>);/
- (<UFF46>,<UFF26>);(<UFF47>,<UFF27>);(<UFF48>,<UFF28>);(<UFF49>,<UFF29>);/
- (<UFF4A>,<UFF2A>);(<UFF4B>,<UFF2B>);(<UFF4C>,<UFF2C>);(<UFF4D>,<UFF2D>);/
- (<UFF4E>,<UFF2E>);(<UFF4F>,<UFF2F>);(<UFF50>,<UFF30>);(<UFF51>,<UFF31>);/
- (<UFF52>,<UFF32>);(<UFF53>,<UFF33>);(<UFF54>,<UFF34>);(<UFF55>,<UFF35>);/
- (<UFF56>,<UFF36>);(<UFF57>,<UFF37>);(<UFF58>,<UFF38>);(<UFF59>,<UFF39>);/
- (<UFF5A>,<UFF3A>);(<U00010428>,<U00010400>);(<U00010429>,<U00010401>);/
+ (<U0280>,<U01A6>);(<U0282>,<UA7C5>);(<U0283>,<U01A9>);(<U0287>,<UA7B1>);/
+ (<U0288>,<U01AE>);(<U0289>,<U0244>);(<U028A>,<U01B1>);(<U028B>,<U01B2>);/
+ (<U028C>,<U0245>);(<U0292>,<U01B7>);(<U029D>,<UA7B2>);(<U029E>,<UA7B0>);/
+ (<U0345>,<U0399>);(<U0371>,<U0370>);(<U0373>,<U0372>);(<U0377>,<U0376>);/
+ (<U037B>,<U03FD>);(<U037C>,<U03FE>);(<U037D>,<U03FF>);(<U03AC>,<U0386>);/
+ (<U03AD>,<U0388>);(<U03AE>,<U0389>);(<U03AF>,<U038A>);(<U03B1>,<U0391>);/
+ (<U03B2>,<U0392>);(<U03B3>,<U0393>);(<U03B4>,<U0394>);(<U03B5>,<U0395>);/
+ (<U03B6>,<U0396>);(<U03B7>,<U0397>);(<U03B8>,<U0398>);(<U03B9>,<U0399>);/
+ (<U03BA>,<U039A>);(<U03BB>,<U039B>);(<U03BC>,<U039C>);(<U03BD>,<U039D>);/
+ (<U03BE>,<U039E>);(<U03BF>,<U039F>);(<U03C0>,<U03A0>);(<U03C1>,<U03A1>);/
+ (<U03C2>,<U03A3>);(<U03C3>,<U03A3>);(<U03C4>,<U03A4>);(<U03C5>,<U03A5>);/
+ (<U03C6>,<U03A6>);(<U03C7>,<U03A7>);(<U03C8>,<U03A8>);(<U03C9>,<U03A9>);/
+ (<U03CA>,<U03AA>);(<U03CB>,<U03AB>);(<U03CC>,<U038C>);(<U03CD>,<U038E>);/
+ (<U03CE>,<U038F>);(<U03D0>,<U0392>);(<U03D1>,<U0398>);(<U03D5>,<U03A6>);/
+ (<U03D6>,<U03A0>);(<U03D7>,<U03CF>);(<U03D9>,<U03D8>);(<U03DB>,<U03DA>);/
+ (<U03DD>,<U03DC>);(<U03DF>,<U03DE>);(<U03E1>,<U03E0>);(<U03E3>,<U03E2>);/
+ (<U03E5>,<U03E4>);(<U03E7>,<U03E6>);(<U03E9>,<U03E8>);(<U03EB>,<U03EA>);/
+ (<U03ED>,<U03EC>);(<U03EF>,<U03EE>);(<U03F0>,<U039A>);(<U03F1>,<U03A1>);/
+ (<U03F2>,<U03F9>);(<U03F3>,<U037F>);(<U03F5>,<U0395>);(<U03F8>,<U03F7>);/
+ (<U03FB>,<U03FA>);(<U0430>,<U0410>);(<U0431>,<U0411>);(<U0432>,<U0412>);/
+ (<U0433>,<U0413>);(<U0434>,<U0414>);(<U0435>,<U0415>);(<U0436>,<U0416>);/
+ (<U0437>,<U0417>);(<U0438>,<U0418>);(<U0439>,<U0419>);(<U043A>,<U041A>);/
+ (<U043B>,<U041B>);(<U043C>,<U041C>);(<U043D>,<U041D>);(<U043E>,<U041E>);/
+ (<U043F>,<U041F>);(<U0440>,<U0420>);(<U0441>,<U0421>);(<U0442>,<U0422>);/
+ (<U0443>,<U0423>);(<U0444>,<U0424>);(<U0445>,<U0425>);(<U0446>,<U0426>);/
+ (<U0447>,<U0427>);(<U0448>,<U0428>);(<U0449>,<U0429>);(<U044A>,<U042A>);/
+ (<U044B>,<U042B>);(<U044C>,<U042C>);(<U044D>,<U042D>);(<U044E>,<U042E>);/
+ (<U044F>,<U042F>);(<U0450>,<U0400>);(<U0451>,<U0401>);(<U0452>,<U0402>);/
+ (<U0453>,<U0403>);(<U0454>,<U0404>);(<U0455>,<U0405>);(<U0456>,<U0406>);/
+ (<U0457>,<U0407>);(<U0458>,<U0408>);(<U0459>,<U0409>);(<U045A>,<U040A>);/
+ (<U045B>,<U040B>);(<U045C>,<U040C>);(<U045D>,<U040D>);(<U045E>,<U040E>);/
+ (<U045F>,<U040F>);(<U0461>,<U0460>);(<U0463>,<U0462>);(<U0465>,<U0464>);/
+ (<U0467>,<U0466>);(<U0469>,<U0468>);(<U046B>,<U046A>);(<U046D>,<U046C>);/
+ (<U046F>,<U046E>);(<U0471>,<U0470>);(<U0473>,<U0472>);(<U0475>,<U0474>);/
+ (<U0477>,<U0476>);(<U0479>,<U0478>);(<U047B>,<U047A>);(<U047D>,<U047C>);/
+ (<U047F>,<U047E>);(<U0481>,<U0480>);(<U048B>,<U048A>);(<U048D>,<U048C>);/
+ (<U048F>,<U048E>);(<U0491>,<U0490>);(<U0493>,<U0492>);(<U0495>,<U0494>);/
+ (<U0497>,<U0496>);(<U0499>,<U0498>);(<U049B>,<U049A>);(<U049D>,<U049C>);/
+ (<U049F>,<U049E>);(<U04A1>,<U04A0>);(<U04A3>,<U04A2>);(<U04A5>,<U04A4>);/
+ (<U04A7>,<U04A6>);(<U04A9>,<U04A8>);(<U04AB>,<U04AA>);(<U04AD>,<U04AC>);/
+ (<U04AF>,<U04AE>);(<U04B1>,<U04B0>);(<U04B3>,<U04B2>);(<U04B5>,<U04B4>);/
+ (<U04B7>,<U04B6>);(<U04B9>,<U04B8>);(<U04BB>,<U04BA>);(<U04BD>,<U04BC>);/
+ (<U04BF>,<U04BE>);(<U04C2>,<U04C1>);(<U04C4>,<U04C3>);(<U04C6>,<U04C5>);/
+ (<U04C8>,<U04C7>);(<U04CA>,<U04C9>);(<U04CC>,<U04CB>);(<U04CE>,<U04CD>);/
+ (<U04CF>,<U04C0>);(<U04D1>,<U04D0>);(<U04D3>,<U04D2>);(<U04D5>,<U04D4>);/
+ (<U04D7>,<U04D6>);(<U04D9>,<U04D8>);(<U04DB>,<U04DA>);(<U04DD>,<U04DC>);/
+ (<U04DF>,<U04DE>);(<U04E1>,<U04E0>);(<U04E3>,<U04E2>);(<U04E5>,<U04E4>);/
+ (<U04E7>,<U04E6>);(<U04E9>,<U04E8>);(<U04EB>,<U04EA>);(<U04ED>,<U04EC>);/
+ (<U04EF>,<U04EE>);(<U04F1>,<U04F0>);(<U04F3>,<U04F2>);(<U04F5>,<U04F4>);/
+ (<U04F7>,<U04F6>);(<U04F9>,<U04F8>);(<U04FB>,<U04FA>);(<U04FD>,<U04FC>);/
+ (<U04FF>,<U04FE>);(<U0501>,<U0500>);(<U0503>,<U0502>);(<U0505>,<U0504>);/
+ (<U0507>,<U0506>);(<U0509>,<U0508>);(<U050B>,<U050A>);(<U050D>,<U050C>);/
+ (<U050F>,<U050E>);(<U0511>,<U0510>);(<U0513>,<U0512>);(<U0515>,<U0514>);/
+ (<U0517>,<U0516>);(<U0519>,<U0518>);(<U051B>,<U051A>);(<U051D>,<U051C>);/
+ (<U051F>,<U051E>);(<U0521>,<U0520>);(<U0523>,<U0522>);(<U0525>,<U0524>);/
+ (<U0527>,<U0526>);(<U0529>,<U0528>);(<U052B>,<U052A>);(<U052D>,<U052C>);/
+ (<U052F>,<U052E>);(<U0561>,<U0531>);(<U0562>,<U0532>);(<U0563>,<U0533>);/
+ (<U0564>,<U0534>);(<U0565>,<U0535>);(<U0566>,<U0536>);(<U0567>,<U0537>);/
+ (<U0568>,<U0538>);(<U0569>,<U0539>);(<U056A>,<U053A>);(<U056B>,<U053B>);/
+ (<U056C>,<U053C>);(<U056D>,<U053D>);(<U056E>,<U053E>);(<U056F>,<U053F>);/
+ (<U0570>,<U0540>);(<U0571>,<U0541>);(<U0572>,<U0542>);(<U0573>,<U0543>);/
+ (<U0574>,<U0544>);(<U0575>,<U0545>);(<U0576>,<U0546>);(<U0577>,<U0547>);/
+ (<U0578>,<U0548>);(<U0579>,<U0549>);(<U057A>,<U054A>);(<U057B>,<U054B>);/
+ (<U057C>,<U054C>);(<U057D>,<U054D>);(<U057E>,<U054E>);(<U057F>,<U054F>);/
+ (<U0580>,<U0550>);(<U0581>,<U0551>);(<U0582>,<U0552>);(<U0583>,<U0553>);/
+ (<U0584>,<U0554>);(<U0585>,<U0555>);(<U0586>,<U0556>);(<U13F8>,<U13F0>);/
+ (<U13F9>,<U13F1>);(<U13FA>,<U13F2>);(<U13FB>,<U13F3>);(<U13FC>,<U13F4>);/
+ (<U13FD>,<U13F5>);(<U1C80>,<U0412>);(<U1C81>,<U0414>);(<U1C82>,<U041E>);/
+ (<U1C83>,<U0421>);(<U1C84>,<U0422>);(<U1C85>,<U0422>);(<U1C86>,<U042A>);/
+ (<U1C87>,<U0462>);(<U1C88>,<UA64A>);(<U1D79>,<UA77D>);(<U1D7D>,<U2C63>);/
+ (<U1D8E>,<UA7C6>);(<U1E01>,<U1E00>);(<U1E03>,<U1E02>);(<U1E05>,<U1E04>);/
+ (<U1E07>,<U1E06>);(<U1E09>,<U1E08>);(<U1E0B>,<U1E0A>);(<U1E0D>,<U1E0C>);/
+ (<U1E0F>,<U1E0E>);(<U1E11>,<U1E10>);(<U1E13>,<U1E12>);(<U1E15>,<U1E14>);/
+ (<U1E17>,<U1E16>);(<U1E19>,<U1E18>);(<U1E1B>,<U1E1A>);(<U1E1D>,<U1E1C>);/
+ (<U1E1F>,<U1E1E>);(<U1E21>,<U1E20>);(<U1E23>,<U1E22>);(<U1E25>,<U1E24>);/
+ (<U1E27>,<U1E26>);(<U1E29>,<U1E28>);(<U1E2B>,<U1E2A>);(<U1E2D>,<U1E2C>);/
+ (<U1E2F>,<U1E2E>);(<U1E31>,<U1E30>);(<U1E33>,<U1E32>);(<U1E35>,<U1E34>);/
+ (<U1E37>,<U1E36>);(<U1E39>,<U1E38>);(<U1E3B>,<U1E3A>);(<U1E3D>,<U1E3C>);/
+ (<U1E3F>,<U1E3E>);(<U1E41>,<U1E40>);(<U1E43>,<U1E42>);(<U1E45>,<U1E44>);/
+ (<U1E47>,<U1E46>);(<U1E49>,<U1E48>);(<U1E4B>,<U1E4A>);(<U1E4D>,<U1E4C>);/
+ (<U1E4F>,<U1E4E>);(<U1E51>,<U1E50>);(<U1E53>,<U1E52>);(<U1E55>,<U1E54>);/
+ (<U1E57>,<U1E56>);(<U1E59>,<U1E58>);(<U1E5B>,<U1E5A>);(<U1E5D>,<U1E5C>);/
+ (<U1E5F>,<U1E5E>);(<U1E61>,<U1E60>);(<U1E63>,<U1E62>);(<U1E65>,<U1E64>);/
+ (<U1E67>,<U1E66>);(<U1E69>,<U1E68>);(<U1E6B>,<U1E6A>);(<U1E6D>,<U1E6C>);/
+ (<U1E6F>,<U1E6E>);(<U1E71>,<U1E70>);(<U1E73>,<U1E72>);(<U1E75>,<U1E74>);/
+ (<U1E77>,<U1E76>);(<U1E79>,<U1E78>);(<U1E7B>,<U1E7A>);(<U1E7D>,<U1E7C>);/
+ (<U1E7F>,<U1E7E>);(<U1E81>,<U1E80>);(<U1E83>,<U1E82>);(<U1E85>,<U1E84>);/
+ (<U1E87>,<U1E86>);(<U1E89>,<U1E88>);(<U1E8B>,<U1E8A>);(<U1E8D>,<U1E8C>);/
+ (<U1E8F>,<U1E8E>);(<U1E91>,<U1E90>);(<U1E93>,<U1E92>);(<U1E95>,<U1E94>);/
+ (<U1E9B>,<U1E60>);(<U1EA1>,<U1EA0>);(<U1EA3>,<U1EA2>);(<U1EA5>,<U1EA4>);/
+ (<U1EA7>,<U1EA6>);(<U1EA9>,<U1EA8>);(<U1EAB>,<U1EAA>);(<U1EAD>,<U1EAC>);/
+ (<U1EAF>,<U1EAE>);(<U1EB1>,<U1EB0>);(<U1EB3>,<U1EB2>);(<U1EB5>,<U1EB4>);/
+ (<U1EB7>,<U1EB6>);(<U1EB9>,<U1EB8>);(<U1EBB>,<U1EBA>);(<U1EBD>,<U1EBC>);/
+ (<U1EBF>,<U1EBE>);(<U1EC1>,<U1EC0>);(<U1EC3>,<U1EC2>);(<U1EC5>,<U1EC4>);/
+ (<U1EC7>,<U1EC6>);(<U1EC9>,<U1EC8>);(<U1ECB>,<U1ECA>);(<U1ECD>,<U1ECC>);/
+ (<U1ECF>,<U1ECE>);(<U1ED1>,<U1ED0>);(<U1ED3>,<U1ED2>);(<U1ED5>,<U1ED4>);/
+ (<U1ED7>,<U1ED6>);(<U1ED9>,<U1ED8>);(<U1EDB>,<U1EDA>);(<U1EDD>,<U1EDC>);/
+ (<U1EDF>,<U1EDE>);(<U1EE1>,<U1EE0>);(<U1EE3>,<U1EE2>);(<U1EE5>,<U1EE4>);/
+ (<U1EE7>,<U1EE6>);(<U1EE9>,<U1EE8>);(<U1EEB>,<U1EEA>);(<U1EED>,<U1EEC>);/
+ (<U1EEF>,<U1EEE>);(<U1EF1>,<U1EF0>);(<U1EF3>,<U1EF2>);(<U1EF5>,<U1EF4>);/
+ (<U1EF7>,<U1EF6>);(<U1EF9>,<U1EF8>);(<U1EFB>,<U1EFA>);(<U1EFD>,<U1EFC>);/
+ (<U1EFF>,<U1EFE>);(<U1F00>,<U1F08>);(<U1F01>,<U1F09>);(<U1F02>,<U1F0A>);/
+ (<U1F03>,<U1F0B>);(<U1F04>,<U1F0C>);(<U1F05>,<U1F0D>);(<U1F06>,<U1F0E>);/
+ (<U1F07>,<U1F0F>);(<U1F10>,<U1F18>);(<U1F11>,<U1F19>);(<U1F12>,<U1F1A>);/
+ (<U1F13>,<U1F1B>);(<U1F14>,<U1F1C>);(<U1F15>,<U1F1D>);(<U1F20>,<U1F28>);/
+ (<U1F21>,<U1F29>);(<U1F22>,<U1F2A>);(<U1F23>,<U1F2B>);(<U1F24>,<U1F2C>);/
+ (<U1F25>,<U1F2D>);(<U1F26>,<U1F2E>);(<U1F27>,<U1F2F>);(<U1F30>,<U1F38>);/
+ (<U1F31>,<U1F39>);(<U1F32>,<U1F3A>);(<U1F33>,<U1F3B>);(<U1F34>,<U1F3C>);/
+ (<U1F35>,<U1F3D>);(<U1F36>,<U1F3E>);(<U1F37>,<U1F3F>);(<U1F40>,<U1F48>);/
+ (<U1F41>,<U1F49>);(<U1F42>,<U1F4A>);(<U1F43>,<U1F4B>);(<U1F44>,<U1F4C>);/
+ (<U1F45>,<U1F4D>);(<U1F51>,<U1F59>);(<U1F53>,<U1F5B>);(<U1F55>,<U1F5D>);/
+ (<U1F57>,<U1F5F>);(<U1F60>,<U1F68>);(<U1F61>,<U1F69>);(<U1F62>,<U1F6A>);/
+ (<U1F63>,<U1F6B>);(<U1F64>,<U1F6C>);(<U1F65>,<U1F6D>);(<U1F66>,<U1F6E>);/
+ (<U1F67>,<U1F6F>);(<U1F70>,<U1FBA>);(<U1F71>,<U1FBB>);(<U1F72>,<U1FC8>);/
+ (<U1F73>,<U1FC9>);(<U1F74>,<U1FCA>);(<U1F75>,<U1FCB>);(<U1F76>,<U1FDA>);/
+ (<U1F77>,<U1FDB>);(<U1F78>,<U1FF8>);(<U1F79>,<U1FF9>);(<U1F7A>,<U1FEA>);/
+ (<U1F7B>,<U1FEB>);(<U1F7C>,<U1FFA>);(<U1F7D>,<U1FFB>);(<U1F80>,<U1F88>);/
+ (<U1F81>,<U1F89>);(<U1F82>,<U1F8A>);(<U1F83>,<U1F8B>);(<U1F84>,<U1F8C>);/
+ (<U1F85>,<U1F8D>);(<U1F86>,<U1F8E>);(<U1F87>,<U1F8F>);(<U1F90>,<U1F98>);/
+ (<U1F91>,<U1F99>);(<U1F92>,<U1F9A>);(<U1F93>,<U1F9B>);(<U1F94>,<U1F9C>);/
+ (<U1F95>,<U1F9D>);(<U1F96>,<U1F9E>);(<U1F97>,<U1F9F>);(<U1FA0>,<U1FA8>);/
+ (<U1FA1>,<U1FA9>);(<U1FA2>,<U1FAA>);(<U1FA3>,<U1FAB>);(<U1FA4>,<U1FAC>);/
+ (<U1FA5>,<U1FAD>);(<U1FA6>,<U1FAE>);(<U1FA7>,<U1FAF>);(<U1FB0>,<U1FB8>);/
+ (<U1FB1>,<U1FB9>);(<U1FB3>,<U1FBC>);(<U1FBE>,<U0399>);(<U1FC3>,<U1FCC>);/
+ (<U1FD0>,<U1FD8>);(<U1FD1>,<U1FD9>);(<U1FE0>,<U1FE8>);(<U1FE1>,<U1FE9>);/
+ (<U1FE5>,<U1FEC>);(<U1FF3>,<U1FFC>);(<U214E>,<U2132>);(<U2170>,<U2160>);/
+ (<U2171>,<U2161>);(<U2172>,<U2162>);(<U2173>,<U2163>);(<U2174>,<U2164>);/
+ (<U2175>,<U2165>);(<U2176>,<U2166>);(<U2177>,<U2167>);(<U2178>,<U2168>);/
+ (<U2179>,<U2169>);(<U217A>,<U216A>);(<U217B>,<U216B>);(<U217C>,<U216C>);/
+ (<U217D>,<U216D>);(<U217E>,<U216E>);(<U217F>,<U216F>);(<U2184>,<U2183>);/
+ (<U24D0>,<U24B6>);(<U24D1>,<U24B7>);(<U24D2>,<U24B8>);(<U24D3>,<U24B9>);/
+ (<U24D4>,<U24BA>);(<U24D5>,<U24BB>);(<U24D6>,<U24BC>);(<U24D7>,<U24BD>);/
+ (<U24D8>,<U24BE>);(<U24D9>,<U24BF>);(<U24DA>,<U24C0>);(<U24DB>,<U24C1>);/
+ (<U24DC>,<U24C2>);(<U24DD>,<U24C3>);(<U24DE>,<U24C4>);(<U24DF>,<U24C5>);/
+ (<U24E0>,<U24C6>);(<U24E1>,<U24C7>);(<U24E2>,<U24C8>);(<U24E3>,<U24C9>);/
+ (<U24E4>,<U24CA>);(<U24E5>,<U24CB>);(<U24E6>,<U24CC>);(<U24E7>,<U24CD>);/
+ (<U24E8>,<U24CE>);(<U24E9>,<U24CF>);(<U2C30>,<U2C00>);(<U2C31>,<U2C01>);/
+ (<U2C32>,<U2C02>);(<U2C33>,<U2C03>);(<U2C34>,<U2C04>);(<U2C35>,<U2C05>);/
+ (<U2C36>,<U2C06>);(<U2C37>,<U2C07>);(<U2C38>,<U2C08>);(<U2C39>,<U2C09>);/
+ (<U2C3A>,<U2C0A>);(<U2C3B>,<U2C0B>);(<U2C3C>,<U2C0C>);(<U2C3D>,<U2C0D>);/
+ (<U2C3E>,<U2C0E>);(<U2C3F>,<U2C0F>);(<U2C40>,<U2C10>);(<U2C41>,<U2C11>);/
+ (<U2C42>,<U2C12>);(<U2C43>,<U2C13>);(<U2C44>,<U2C14>);(<U2C45>,<U2C15>);/
+ (<U2C46>,<U2C16>);(<U2C47>,<U2C17>);(<U2C48>,<U2C18>);(<U2C49>,<U2C19>);/
+ (<U2C4A>,<U2C1A>);(<U2C4B>,<U2C1B>);(<U2C4C>,<U2C1C>);(<U2C4D>,<U2C1D>);/
+ (<U2C4E>,<U2C1E>);(<U2C4F>,<U2C1F>);(<U2C50>,<U2C20>);(<U2C51>,<U2C21>);/
+ (<U2C52>,<U2C22>);(<U2C53>,<U2C23>);(<U2C54>,<U2C24>);(<U2C55>,<U2C25>);/
+ (<U2C56>,<U2C26>);(<U2C57>,<U2C27>);(<U2C58>,<U2C28>);(<U2C59>,<U2C29>);/
+ (<U2C5A>,<U2C2A>);(<U2C5B>,<U2C2B>);(<U2C5C>,<U2C2C>);(<U2C5D>,<U2C2D>);/
+ (<U2C5E>,<U2C2E>);(<U2C61>,<U2C60>);(<U2C65>,<U023A>);(<U2C66>,<U023E>);/
+ (<U2C68>,<U2C67>);(<U2C6A>,<U2C69>);(<U2C6C>,<U2C6B>);(<U2C73>,<U2C72>);/
+ (<U2C76>,<U2C75>);(<U2C81>,<U2C80>);(<U2C83>,<U2C82>);(<U2C85>,<U2C84>);/
+ (<U2C87>,<U2C86>);(<U2C89>,<U2C88>);(<U2C8B>,<U2C8A>);(<U2C8D>,<U2C8C>);/
+ (<U2C8F>,<U2C8E>);(<U2C91>,<U2C90>);(<U2C93>,<U2C92>);(<U2C95>,<U2C94>);/
+ (<U2C97>,<U2C96>);(<U2C99>,<U2C98>);(<U2C9B>,<U2C9A>);(<U2C9D>,<U2C9C>);/
+ (<U2C9F>,<U2C9E>);(<U2CA1>,<U2CA0>);(<U2CA3>,<U2CA2>);(<U2CA5>,<U2CA4>);/
+ (<U2CA7>,<U2CA6>);(<U2CA9>,<U2CA8>);(<U2CAB>,<U2CAA>);(<U2CAD>,<U2CAC>);/
+ (<U2CAF>,<U2CAE>);(<U2CB1>,<U2CB0>);(<U2CB3>,<U2CB2>);(<U2CB5>,<U2CB4>);/
+ (<U2CB7>,<U2CB6>);(<U2CB9>,<U2CB8>);(<U2CBB>,<U2CBA>);(<U2CBD>,<U2CBC>);/
+ (<U2CBF>,<U2CBE>);(<U2CC1>,<U2CC0>);(<U2CC3>,<U2CC2>);(<U2CC5>,<U2CC4>);/
+ (<U2CC7>,<U2CC6>);(<U2CC9>,<U2CC8>);(<U2CCB>,<U2CCA>);(<U2CCD>,<U2CCC>);/
+ (<U2CCF>,<U2CCE>);(<U2CD1>,<U2CD0>);(<U2CD3>,<U2CD2>);(<U2CD5>,<U2CD4>);/
+ (<U2CD7>,<U2CD6>);(<U2CD9>,<U2CD8>);(<U2CDB>,<U2CDA>);(<U2CDD>,<U2CDC>);/
+ (<U2CDF>,<U2CDE>);(<U2CE1>,<U2CE0>);(<U2CE3>,<U2CE2>);(<U2CEC>,<U2CEB>);/
+ (<U2CEE>,<U2CED>);(<U2CF3>,<U2CF2>);(<U2D00>,<U10A0>);(<U2D01>,<U10A1>);/
+ (<U2D02>,<U10A2>);(<U2D03>,<U10A3>);(<U2D04>,<U10A4>);(<U2D05>,<U10A5>);/
+ (<U2D06>,<U10A6>);(<U2D07>,<U10A7>);(<U2D08>,<U10A8>);(<U2D09>,<U10A9>);/
+ (<U2D0A>,<U10AA>);(<U2D0B>,<U10AB>);(<U2D0C>,<U10AC>);(<U2D0D>,<U10AD>);/
+ (<U2D0E>,<U10AE>);(<U2D0F>,<U10AF>);(<U2D10>,<U10B0>);(<U2D11>,<U10B1>);/
+ (<U2D12>,<U10B2>);(<U2D13>,<U10B3>);(<U2D14>,<U10B4>);(<U2D15>,<U10B5>);/
+ (<U2D16>,<U10B6>);(<U2D17>,<U10B7>);(<U2D18>,<U10B8>);(<U2D19>,<U10B9>);/
+ (<U2D1A>,<U10BA>);(<U2D1B>,<U10BB>);(<U2D1C>,<U10BC>);(<U2D1D>,<U10BD>);/
+ (<U2D1E>,<U10BE>);(<U2D1F>,<U10BF>);(<U2D20>,<U10C0>);(<U2D21>,<U10C1>);/
+ (<U2D22>,<U10C2>);(<U2D23>,<U10C3>);(<U2D24>,<U10C4>);(<U2D25>,<U10C5>);/
+ (<U2D27>,<U10C7>);(<U2D2D>,<U10CD>);(<UA641>,<UA640>);(<UA643>,<UA642>);/
+ (<UA645>,<UA644>);(<UA647>,<UA646>);(<UA649>,<UA648>);(<UA64B>,<UA64A>);/
+ (<UA64D>,<UA64C>);(<UA64F>,<UA64E>);(<UA651>,<UA650>);(<UA653>,<UA652>);/
+ (<UA655>,<UA654>);(<UA657>,<UA656>);(<UA659>,<UA658>);(<UA65B>,<UA65A>);/
+ (<UA65D>,<UA65C>);(<UA65F>,<UA65E>);(<UA661>,<UA660>);(<UA663>,<UA662>);/
+ (<UA665>,<UA664>);(<UA667>,<UA666>);(<UA669>,<UA668>);(<UA66B>,<UA66A>);/
+ (<UA66D>,<UA66C>);(<UA681>,<UA680>);(<UA683>,<UA682>);(<UA685>,<UA684>);/
+ (<UA687>,<UA686>);(<UA689>,<UA688>);(<UA68B>,<UA68A>);(<UA68D>,<UA68C>);/
+ (<UA68F>,<UA68E>);(<UA691>,<UA690>);(<UA693>,<UA692>);(<UA695>,<UA694>);/
+ (<UA697>,<UA696>);(<UA699>,<UA698>);(<UA69B>,<UA69A>);(<UA723>,<UA722>);/
+ (<UA725>,<UA724>);(<UA727>,<UA726>);(<UA729>,<UA728>);(<UA72B>,<UA72A>);/
+ (<UA72D>,<UA72C>);(<UA72F>,<UA72E>);(<UA733>,<UA732>);(<UA735>,<UA734>);/
+ (<UA737>,<UA736>);(<UA739>,<UA738>);(<UA73B>,<UA73A>);(<UA73D>,<UA73C>);/
+ (<UA73F>,<UA73E>);(<UA741>,<UA740>);(<UA743>,<UA742>);(<UA745>,<UA744>);/
+ (<UA747>,<UA746>);(<UA749>,<UA748>);(<UA74B>,<UA74A>);(<UA74D>,<UA74C>);/
+ (<UA74F>,<UA74E>);(<UA751>,<UA750>);(<UA753>,<UA752>);(<UA755>,<UA754>);/
+ (<UA757>,<UA756>);(<UA759>,<UA758>);(<UA75B>,<UA75A>);(<UA75D>,<UA75C>);/
+ (<UA75F>,<UA75E>);(<UA761>,<UA760>);(<UA763>,<UA762>);(<UA765>,<UA764>);/
+ (<UA767>,<UA766>);(<UA769>,<UA768>);(<UA76B>,<UA76A>);(<UA76D>,<UA76C>);/
+ (<UA76F>,<UA76E>);(<UA77A>,<UA779>);(<UA77C>,<UA77B>);(<UA77F>,<UA77E>);/
+ (<UA781>,<UA780>);(<UA783>,<UA782>);(<UA785>,<UA784>);(<UA787>,<UA786>);/
+ (<UA78C>,<UA78B>);(<UA791>,<UA790>);(<UA793>,<UA792>);(<UA794>,<UA7C4>);/
+ (<UA797>,<UA796>);(<UA799>,<UA798>);(<UA79B>,<UA79A>);(<UA79D>,<UA79C>);/
+ (<UA79F>,<UA79E>);(<UA7A1>,<UA7A0>);(<UA7A3>,<UA7A2>);(<UA7A5>,<UA7A4>);/
+ (<UA7A7>,<UA7A6>);(<UA7A9>,<UA7A8>);(<UA7B5>,<UA7B4>);(<UA7B7>,<UA7B6>);/
+ (<UA7B9>,<UA7B8>);(<UA7BB>,<UA7BA>);(<UA7BD>,<UA7BC>);(<UA7BF>,<UA7BE>);/
+ (<UA7C3>,<UA7C2>);(<UAB53>,<UA7B3>);(<UAB70>,<U13A0>);(<UAB71>,<U13A1>);/
+ (<UAB72>,<U13A2>);(<UAB73>,<U13A3>);(<UAB74>,<U13A4>);(<UAB75>,<U13A5>);/
+ (<UAB76>,<U13A6>);(<UAB77>,<U13A7>);(<UAB78>,<U13A8>);(<UAB79>,<U13A9>);/
+ (<UAB7A>,<U13AA>);(<UAB7B>,<U13AB>);(<UAB7C>,<U13AC>);(<UAB7D>,<U13AD>);/
+ (<UAB7E>,<U13AE>);(<UAB7F>,<U13AF>);(<UAB80>,<U13B0>);(<UAB81>,<U13B1>);/
+ (<UAB82>,<U13B2>);(<UAB83>,<U13B3>);(<UAB84>,<U13B4>);(<UAB85>,<U13B5>);/
+ (<UAB86>,<U13B6>);(<UAB87>,<U13B7>);(<UAB88>,<U13B8>);(<UAB89>,<U13B9>);/
+ (<UAB8A>,<U13BA>);(<UAB8B>,<U13BB>);(<UAB8C>,<U13BC>);(<UAB8D>,<U13BD>);/
+ (<UAB8E>,<U13BE>);(<UAB8F>,<U13BF>);(<UAB90>,<U13C0>);(<UAB91>,<U13C1>);/
+ (<UAB92>,<U13C2>);(<UAB93>,<U13C3>);(<UAB94>,<U13C4>);(<UAB95>,<U13C5>);/
+ (<UAB96>,<U13C6>);(<UAB97>,<U13C7>);(<UAB98>,<U13C8>);(<UAB99>,<U13C9>);/
+ (<UAB9A>,<U13CA>);(<UAB9B>,<U13CB>);(<UAB9C>,<U13CC>);(<UAB9D>,<U13CD>);/
+ (<UAB9E>,<U13CE>);(<UAB9F>,<U13CF>);(<UABA0>,<U13D0>);(<UABA1>,<U13D1>);/
+ (<UABA2>,<U13D2>);(<UABA3>,<U13D3>);(<UABA4>,<U13D4>);(<UABA5>,<U13D5>);/
+ (<UABA6>,<U13D6>);(<UABA7>,<U13D7>);(<UABA8>,<U13D8>);(<UABA9>,<U13D9>);/
+ (<UABAA>,<U13DA>);(<UABAB>,<U13DB>);(<UABAC>,<U13DC>);(<UABAD>,<U13DD>);/
+ (<UABAE>,<U13DE>);(<UABAF>,<U13DF>);(<UABB0>,<U13E0>);(<UABB1>,<U13E1>);/
+ (<UABB2>,<U13E2>);(<UABB3>,<U13E3>);(<UABB4>,<U13E4>);(<UABB5>,<U13E5>);/
+ (<UABB6>,<U13E6>);(<UABB7>,<U13E7>);(<UABB8>,<U13E8>);(<UABB9>,<U13E9>);/
+ (<UABBA>,<U13EA>);(<UABBB>,<U13EB>);(<UABBC>,<U13EC>);(<UABBD>,<U13ED>);/
+ (<UABBE>,<U13EE>);(<UABBF>,<U13EF>);(<UFF41>,<UFF21>);(<UFF42>,<UFF22>);/
+ (<UFF43>,<UFF23>);(<UFF44>,<UFF24>);(<UFF45>,<UFF25>);(<UFF46>,<UFF26>);/
+ (<UFF47>,<UFF27>);(<UFF48>,<UFF28>);(<UFF49>,<UFF29>);(<UFF4A>,<UFF2A>);/
+ (<UFF4B>,<UFF2B>);(<UFF4C>,<UFF2C>);(<UFF4D>,<UFF2D>);(<UFF4E>,<UFF2E>);/
+ (<UFF4F>,<UFF2F>);(<UFF50>,<UFF30>);(<UFF51>,<UFF31>);(<UFF52>,<UFF32>);/
+ (<UFF53>,<UFF33>);(<UFF54>,<UFF34>);(<UFF55>,<UFF35>);(<UFF56>,<UFF36>);/
+ (<UFF57>,<UFF37>);(<UFF58>,<UFF38>);(<UFF59>,<UFF39>);(<UFF5A>,<UFF3A>);/
+ (<U00010428>,<U00010400>);(<U00010429>,<U00010401>);/
(<U0001042A>,<U00010402>);(<U0001042B>,<U00010403>);/
(<U0001042C>,<U00010404>);(<U0001042D>,<U00010405>);/
(<U0001042E>,<U00010406>);(<U0001042F>,<U00010407>);/
@@ -2403,66 +2426,68 @@ class "combining"; /
<U0D00>..<U0D03>;<U0D3B>..<U0D3C>;<U0D3E>..<U0D44>;<U0D46>..<U0D48>;/
<U0D4A>..<U0D4D>;<U0D57>;<U0D62>..<U0D63>;<U0D82>..<U0D83>;<U0DCA>;/
<U0DCF>..<U0DD4>;<U0DD6>;<U0DD8>..<U0DDF>;<U0DF2>..<U0DF3>;<U0E31>;/
- <U0E34>..<U0E3A>;<U0E47>..<U0E4E>;<U0EB1>;<U0EB4>..<U0EB9>;/
- <U0EBB>..<U0EBC>;<U0EC8>..<U0ECD>;<U0F18>..<U0F19>;<U0F35>;<U0F37>;/
- <U0F39>;<U0F3E>..<U0F3F>;<U0F71>..<U0F84>;<U0F86>..<U0F87>;/
- <U0F8D>..<U0F97>;<U0F99>..<U0FBC>;<U0FC6>;<U102B>..<U103E>;/
- <U1056>..<U1059>;<U105E>..<U1060>;<U1062>..<U1064>;<U1067>..<U106D>;/
- <U1071>..<U1074>;<U1082>..<U108D>;<U108F>;<U109A>..<U109D>;/
- <U135D>..<U135F>;<U1712>..<U1714>;<U1732>..<U1734>;<U1752>..<U1753>;/
- <U1772>..<U1773>;<U17B4>..<U17D3>;<U17DD>;<U180B>..<U180D>;/
- <U1885>..<U1886>;<U18A9>;<U1920>..<U192B>;<U1930>..<U193B>;/
- <U1A17>..<U1A1B>;<U1A55>..<U1A5E>;<U1A60>..<U1A7C>;<U1A7F>;/
- <U1AB0>..<U1ABE>;<U1B00>..<U1B04>;<U1B34>..<U1B44>;<U1B6B>..<U1B73>;/
- <U1B80>..<U1B82>;<U1BA1>..<U1BAD>;<U1BE6>..<U1BF3>;<U1C24>..<U1C37>;/
- <U1CD0>..<U1CD2>;<U1CD4>..<U1CE8>;<U1CED>;<U1CF2>..<U1CF4>;/
- <U1CF7>..<U1CF9>;<U1DC0>..<U1DF9>;<U1DFB>..<U1DFF>;<U20D0>..<U20F0>;/
- <U2CEF>..<U2CF1>;<U2D7F>;<U2DE0>..<U2DFF>;<U302A>..<U302F>;/
- <U3099>..<U309A>;<UA66F>..<UA672>;<UA674>..<UA67D>;<UA69E>..<UA69F>;/
- <UA6F0>..<UA6F1>;<UA802>;<UA806>;<UA80B>;<UA823>..<UA827>;/
- <UA880>..<UA881>;<UA8B4>..<UA8C5>;<UA8E0>..<UA8F1>;<UA8FF>;/
- <UA926>..<UA92D>;<UA947>..<UA953>;<UA980>..<UA983>;<UA9B3>..<UA9C0>;/
- <UA9E5>;<UAA29>..<UAA36>;<UAA43>;<UAA4C>..<UAA4D>;<UAA7B>..<UAA7D>;/
- <UAAB0>;<UAAB2>..<UAAB4>;<UAAB7>..<UAAB8>;<UAABE>..<UAABF>;<UAAC1>;/
- <UAAEB>..<UAAEF>;<UAAF5>..<UAAF6>;<UABE3>..<UABEA>;<UABEC>..<UABED>;/
- <UFB1E>;<UFE00>..<UFE0F>;<UFE20>..<UFE2F>;<U000101FD>;<U000102E0>;/
- <U00010376>..<U0001037A>;<U00010A01>..<U00010A03>;/
- <U00010A05>..<U00010A06>;<U00010A0C>..<U00010A0F>;/
- <U00010A38>..<U00010A3A>;<U00010A3F>;<U00010AE5>..<U00010AE6>;/
- <U00010D24>..<U00010D27>;<U00010F46>..<U00010F50>;/
- <U00011000>..<U00011002>;<U00011038>..<U00011046>;/
- <U0001107F>..<U00011082>;<U000110B0>..<U000110BA>;/
- <U00011100>..<U00011102>;<U00011127>..<U00011134>;/
- <U00011145>..<U00011146>;<U00011173>;<U00011180>..<U00011182>;/
- <U000111B3>..<U000111C0>;<U000111C9>..<U000111CC>;/
- <U0001122C>..<U00011237>;<U0001123E>;<U000112DF>..<U000112EA>;/
- <U00011300>..<U00011303>;<U0001133B>..<U0001133C>;/
- <U0001133E>..<U00011344>;<U00011347>..<U00011348>;/
- <U0001134B>..<U0001134D>;<U00011357>;<U00011362>..<U00011363>;/
- <U00011366>..<U0001136C>;<U00011370>..<U00011374>;/
- <U00011435>..<U00011446>;<U0001145E>;<U000114B0>..<U000114C3>;/
- <U000115AF>..<U000115B5>;<U000115B8>..<U000115C0>;/
- <U000115DC>..<U000115DD>;<U00011630>..<U00011640>;/
- <U000116AB>..<U000116B7>;<U0001171D>..<U0001172B>;/
- <U0001182C>..<U0001183A>;<U00011A01>..<U00011A0A>;/
- <U00011A33>..<U00011A39>;<U00011A3B>..<U00011A3E>;<U00011A47>;/
- <U00011A51>..<U00011A5B>;<U00011A8A>..<U00011A99>;/
- <U00011C2F>..<U00011C36>;<U00011C38>..<U00011C3F>;/
- <U00011C92>..<U00011CA7>;<U00011CA9>..<U00011CB6>;/
- <U00011D31>..<U00011D36>;<U00011D3A>;<U00011D3C>..<U00011D3D>;/
- <U00011D3F>..<U00011D45>;<U00011D47>;<U00011D8A>..<U00011D8E>;/
- <U00011D90>..<U00011D91>;<U00011D93>..<U00011D97>;/
- <U00011EF3>..<U00011EF6>;<U00016AF0>..<U00016AF4>;/
- <U00016B30>..<U00016B36>;<U00016F51>..<U00016F7E>;/
- <U00016F8F>..<U00016F92>;<U0001BC9D>..<U0001BC9E>;/
- <U0001D165>..<U0001D169>;<U0001D16D>..<U0001D172>;/
- <U0001D17B>..<U0001D182>;<U0001D185>..<U0001D18B>;/
- <U0001D1AA>..<U0001D1AD>;<U0001D242>..<U0001D244>;/
- <U0001DA00>..<U0001DA36>;<U0001DA3B>..<U0001DA6C>;<U0001DA75>;/
- <U0001DA84>;<U0001DA9B>..<U0001DA9F>;<U0001DAA1>..<U0001DAAF>;/
+ <U0E34>..<U0E3A>;<U0E47>..<U0E4E>;<U0EB1>;<U0EB4>..<U0EBC>;/
+ <U0EC8>..<U0ECD>;<U0F18>..<U0F19>;<U0F35>;<U0F37>;<U0F39>;/
+ <U0F3E>..<U0F3F>;<U0F71>..<U0F84>;<U0F86>..<U0F87>;<U0F8D>..<U0F97>;/
+ <U0F99>..<U0FBC>;<U0FC6>;<U102B>..<U103E>;<U1056>..<U1059>;/
+ <U105E>..<U1060>;<U1062>..<U1064>;<U1067>..<U106D>;<U1071>..<U1074>;/
+ <U1082>..<U108D>;<U108F>;<U109A>..<U109D>;<U135D>..<U135F>;/
+ <U1712>..<U1714>;<U1732>..<U1734>;<U1752>..<U1753>;<U1772>..<U1773>;/
+ <U17B4>..<U17D3>;<U17DD>;<U180B>..<U180D>;<U1885>..<U1886>;<U18A9>;/
+ <U1920>..<U192B>;<U1930>..<U193B>;<U1A17>..<U1A1B>;<U1A55>..<U1A5E>;/
+ <U1A60>..<U1A7C>;<U1A7F>;<U1AB0>..<U1ABE>;<U1B00>..<U1B04>;/
+ <U1B34>..<U1B44>;<U1B6B>..<U1B73>;<U1B80>..<U1B82>;<U1BA1>..<U1BAD>;/
+ <U1BE6>..<U1BF3>;<U1C24>..<U1C37>;<U1CD0>..<U1CD2>;<U1CD4>..<U1CE8>;/
+ <U1CED>;<U1CF4>;<U1CF7>..<U1CF9>;<U1DC0>..<U1DF9>;<U1DFB>..<U1DFF>;/
+ <U20D0>..<U20F0>;<U2CEF>..<U2CF1>;<U2D7F>;<U2DE0>..<U2DFF>;/
+ <U302A>..<U302F>;<U3099>..<U309A>;<UA66F>..<UA672>;<UA674>..<UA67D>;/
+ <UA69E>..<UA69F>;<UA6F0>..<UA6F1>;<UA802>;<UA806>;<UA80B>;/
+ <UA823>..<UA827>;<UA880>..<UA881>;<UA8B4>..<UA8C5>;<UA8E0>..<UA8F1>;/
+ <UA8FF>;<UA926>..<UA92D>;<UA947>..<UA953>;<UA980>..<UA983>;/
+ <UA9B3>..<UA9C0>;<UA9E5>;<UAA29>..<UAA36>;<UAA43>;<UAA4C>..<UAA4D>;/
+ <UAA7B>..<UAA7D>;<UAAB0>;<UAAB2>..<UAAB4>;<UAAB7>..<UAAB8>;/
+ <UAABE>..<UAABF>;<UAAC1>;<UAAEB>..<UAAEF>;<UAAF5>..<UAAF6>;/
+ <UABE3>..<UABEA>;<UABEC>..<UABED>;<UFB1E>;<UFE00>..<UFE0F>;/
+ <UFE20>..<UFE2F>;<U000101FD>;<U000102E0>;<U00010376>..<U0001037A>;/
+ <U00010A01>..<U00010A03>;<U00010A05>..<U00010A06>;/
+ <U00010A0C>..<U00010A0F>;<U00010A38>..<U00010A3A>;<U00010A3F>;/
+ <U00010AE5>..<U00010AE6>;<U00010D24>..<U00010D27>;/
+ <U00010F46>..<U00010F50>;<U00011000>..<U00011002>;/
+ <U00011038>..<U00011046>;<U0001107F>..<U00011082>;/
+ <U000110B0>..<U000110BA>;<U00011100>..<U00011102>;/
+ <U00011127>..<U00011134>;<U00011145>..<U00011146>;<U00011173>;/
+ <U00011180>..<U00011182>;<U000111B3>..<U000111C0>;/
+ <U000111C9>..<U000111CC>;<U0001122C>..<U00011237>;<U0001123E>;/
+ <U000112DF>..<U000112EA>;<U00011300>..<U00011303>;/
+ <U0001133B>..<U0001133C>;<U0001133E>..<U00011344>;/
+ <U00011347>..<U00011348>;<U0001134B>..<U0001134D>;<U00011357>;/
+ <U00011362>..<U00011363>;<U00011366>..<U0001136C>;/
+ <U00011370>..<U00011374>;<U00011435>..<U00011446>;<U0001145E>;/
+ <U000114B0>..<U000114C3>;<U000115AF>..<U000115B5>;/
+ <U000115B8>..<U000115C0>;<U000115DC>..<U000115DD>;/
+ <U00011630>..<U00011640>;<U000116AB>..<U000116B7>;/
+ <U0001171D>..<U0001172B>;<U0001182C>..<U0001183A>;/
+ <U000119D1>..<U000119D7>;<U000119DA>..<U000119E0>;<U000119E4>;/
+ <U00011A01>..<U00011A0A>;<U00011A33>..<U00011A39>;/
+ <U00011A3B>..<U00011A3E>;<U00011A47>;<U00011A51>..<U00011A5B>;/
+ <U00011A8A>..<U00011A99>;<U00011C2F>..<U00011C36>;/
+ <U00011C38>..<U00011C3F>;<U00011C92>..<U00011CA7>;/
+ <U00011CA9>..<U00011CB6>;<U00011D31>..<U00011D36>;<U00011D3A>;/
+ <U00011D3C>..<U00011D3D>;<U00011D3F>..<U00011D45>;<U00011D47>;/
+ <U00011D8A>..<U00011D8E>;<U00011D90>..<U00011D91>;/
+ <U00011D93>..<U00011D97>;<U00011EF3>..<U00011EF6>;/
+ <U00016AF0>..<U00016AF4>;<U00016B30>..<U00016B36>;<U00016F4F>;/
+ <U00016F51>..<U00016F87>;<U00016F8F>..<U00016F92>;/
+ <U0001BC9D>..<U0001BC9E>;<U0001D165>..<U0001D169>;/
+ <U0001D16D>..<U0001D172>;<U0001D17B>..<U0001D182>;/
+ <U0001D185>..<U0001D18B>;<U0001D1AA>..<U0001D1AD>;/
+ <U0001D242>..<U0001D244>;<U0001DA00>..<U0001DA36>;/
+ <U0001DA3B>..<U0001DA6C>;<U0001DA75>;<U0001DA84>;/
+ <U0001DA9B>..<U0001DA9F>;<U0001DAA1>..<U0001DAAF>;/
<U0001E000>..<U0001E006>;<U0001E008>..<U0001E018>;/
<U0001E01B>..<U0001E021>;<U0001E023>..<U0001E024>;/
- <U0001E026>..<U0001E02A>;<U0001E8D0>..<U0001E8D6>;/
+ <U0001E026>..<U0001E02A>;<U0001E130>..<U0001E136>;/
+ <U0001E2EC>..<U0001E2EF>;<U0001E8D0>..<U0001E8D6>;/
<U0001E944>..<U0001E94A>;<U000E0100>..<U000E01EF>
% The "combining_level3" class reflects ISO/IEC 10646-1 annex B.2
@@ -2487,18 +2512,18 @@ class "combining_level3"; /
<U0D46>..<U0D48>;<U0D4A>..<U0D4D>;<U0D57>;<U0D62>..<U0D63>;/
<U0D82>..<U0D83>;<U0DCA>;<U0DCF>..<U0DD4>;<U0DD6>;<U0DD8>..<U0DDF>;/
<U0DF2>..<U0DF3>;<U0E31>;<U0E34>..<U0E3A>;<U0E47>..<U0E4E>;<U0EB1>;/
- <U0EB4>..<U0EB9>;<U0EBB>..<U0EBC>;<U0EC8>..<U0ECD>;<U0F3E>..<U0F3F>;/
- <U0F71>..<U0F81>;<U0F84>;<U0F8D>..<U0F97>;<U0F99>..<U0FBC>;/
- <U102B>..<U103E>;<U1056>..<U1059>;<U105E>..<U1060>;<U1062>..<U1064>;/
- <U1067>..<U106D>;<U1071>..<U1074>;<U1082>..<U108C>;<U108F>;/
- <U109A>..<U109D>;<U1712>..<U1714>;<U1732>..<U1734>;<U1752>..<U1753>;/
- <U1772>..<U1773>;<U17B4>..<U17D3>;<U180B>..<U180D>;<U1885>..<U1886>;/
- <U1920>..<U192B>;<U1930>..<U1938>;<U1A19>..<U1A1B>;<U1A55>..<U1A5E>;/
- <U1A60>..<U1A74>;<U1ABE>;<U1B00>..<U1B04>;<U1B34>..<U1B44>;/
- <U1B80>..<U1B82>;<U1BA1>..<U1BAD>;<U1BE6>..<U1BF3>;<U1C24>..<U1C37>;/
- <U1CD4>;<U1CE1>..<U1CE8>;<U1CF2>..<U1CF3>;<U1CF7>;<U20D2>..<U20D3>;/
- <U20D8>..<U20DA>;<U20DD>..<U20E0>;<U20E2>..<U20E6>;<U20EA>..<U20EB>;/
- <U2D7F>;<U3099>..<U309A>;<UA670>..<UA672>;<UA802>;<UA806>;<UA80B>;/
+ <U0EB4>..<U0EBC>;<U0EC8>..<U0ECD>;<U0F3E>..<U0F3F>;<U0F71>..<U0F81>;/
+ <U0F84>;<U0F8D>..<U0F97>;<U0F99>..<U0FBC>;<U102B>..<U103E>;/
+ <U1056>..<U1059>;<U105E>..<U1060>;<U1062>..<U1064>;<U1067>..<U106D>;/
+ <U1071>..<U1074>;<U1082>..<U108C>;<U108F>;<U109A>..<U109D>;/
+ <U1712>..<U1714>;<U1732>..<U1734>;<U1752>..<U1753>;<U1772>..<U1773>;/
+ <U17B4>..<U17D3>;<U180B>..<U180D>;<U1885>..<U1886>;<U1920>..<U192B>;/
+ <U1930>..<U1938>;<U1A19>..<U1A1B>;<U1A55>..<U1A5E>;<U1A60>..<U1A74>;/
+ <U1ABE>;<U1B00>..<U1B04>;<U1B34>..<U1B44>;<U1B80>..<U1B82>;/
+ <U1BA1>..<U1BAD>;<U1BE6>..<U1BF3>;<U1C24>..<U1C37>;<U1CD4>;/
+ <U1CE1>..<U1CE8>;<U1CF7>;<U20D2>..<U20D3>;<U20D8>..<U20DA>;/
+ <U20DD>..<U20E0>;<U20E2>..<U20E6>;<U20EA>..<U20EB>;<U2D7F>;/
+ <U3099>..<U309A>;<UA670>..<UA672>;<UA802>;<UA806>;<UA80B>;/
<UA823>..<UA827>;<UA880>..<UA881>;<UA8B4>..<UA8C5>;<UA8FF>;/
<UA926>..<UA92A>;<UA947>..<UA953>;<UA980>..<UA983>;<UA9B3>..<UA9C0>;/
<UA9E5>;<UAA29>..<UAA36>;<UAA43>;<UAA4C>..<UAA4D>;<UAA7B>..<UAA7D>;/
@@ -2518,6 +2543,7 @@ class "combining_level3"; /
<U000115B8>..<U000115C0>;<U000115DC>..<U000115DD>;/
<U00011630>..<U00011640>;<U000116AB>..<U000116B7>;/
<U0001171D>..<U0001172B>;<U0001182C>..<U0001183A>;/
+ <U000119D1>..<U000119D7>;<U000119DA>..<U000119E0>;<U000119E4>;/
<U00011A01>..<U00011A0A>;<U00011A33>..<U00011A39>;/
<U00011A3B>..<U00011A3E>;<U00011A47>;<U00011A51>..<U00011A5B>;/
<U00011A8A>..<U00011A99>;<U00011C2F>..<U00011C36>;/
@@ -2526,7 +2552,7 @@ class "combining_level3"; /
<U00011D3C>..<U00011D3D>;<U00011D3F>..<U00011D45>;<U00011D47>;/
<U00011D8A>..<U00011D8E>;<U00011D90>..<U00011D91>;/
<U00011D93>..<U00011D97>;<U00011EF3>..<U00011EF6>;/
- <U00016AF0>..<U00016AF4>;<U00016F51>..<U00016F7E>;/
+ <U00016AF0>..<U00016AF4>;<U00016F4F>;<U00016F51>..<U00016F87>;/
<U00016F8F>..<U00016F92>;<U0001BC9D>..<U0001BC9E>;/
<U0001D167>..<U0001D169>;<U0001DA00>..<U0001DA36>;/
<U0001DA3B>..<U0001DA6C>;<U0001DA75>;<U0001DA84>;/
diff --git a/localedata/locales/translit_circle b/localedata/locales/translit_circle
index 941a1f311c..5f3919cfa8 100644
--- a/localedata/locales/translit_circle
+++ b/localedata/locales/translit_circle
@@ -9,7 +9,7 @@ comment_char %
% otherwise be governed by that license.
% Transliterations of encircled characters.
-% Generated automatically from UnicodeData.txt by gen_translit_circle.py on 2018-06-20 for Unicode 11.0.0.
+% Generated automatically from UnicodeData.txt by gen_translit_circle.py on 2019-05-08 for Unicode 12.1.0.
LC_CTYPE
diff --git a/localedata/locales/translit_cjk_compat b/localedata/locales/translit_cjk_compat
index dbc92dab19..5f422a4fb0 100644
--- a/localedata/locales/translit_cjk_compat
+++ b/localedata/locales/translit_cjk_compat
@@ -9,7 +9,7 @@ comment_char %
% otherwise be governed by that license.
% Transliterations of CJK compatibility characters.
-% Generated automatically from UnicodeData.txt by gen_translit_cjk_compat.py on 2018-06-20 for Unicode 11.0.0.
+% Generated automatically from UnicodeData.txt by gen_translit_cjk_compat.py on 2019-05-08 for Unicode 12.1.0.
LC_CTYPE
@@ -25,6 +25,8 @@ translit_start
<U32CE> "<U0065><U0056>"
% LIMITED LIABILITY SIGN
<U32CF> "<U004C><U0054><U0044>"
+% SQUARE ERA NAME REIWA
+<U32FF> "<U4EE4><U548C>"
% SQUARE APAATO
<U3300> "<U30A2><U30D1><U30FC><U30C8>"
% SQUARE ARUHUA
diff --git a/localedata/locales/translit_combining b/localedata/locales/translit_combining
index 3931d7b7a3..3a89e50ae9 100644
--- a/localedata/locales/translit_combining
+++ b/localedata/locales/translit_combining
@@ -10,7 +10,7 @@ comment_char %
% Transliterations that remove all combining characters (accents,
% pronounciation marks, etc.).
-% Generated automatically from UnicodeData.txt by gen_translit_combining.py on 2018-06-20 for Unicode 11.0.0.
+% Generated automatically from UnicodeData.txt by gen_translit_combining.py on 2019-05-08 for Unicode 12.1.0.
LC_CTYPE
@@ -902,6 +902,36 @@ translit_start
<U00011839> ""
% DOGRA SIGN NUKTA
<U0001183A> ""
+% NANDINAGARI VOWEL SIGN AA
+<U000119D1> ""
+% NANDINAGARI VOWEL SIGN I
+<U000119D2> ""
+% NANDINAGARI VOWEL SIGN II
+<U000119D3> ""
+% NANDINAGARI VOWEL SIGN U
+<U000119D4> ""
+% NANDINAGARI VOWEL SIGN UU
+<U000119D5> ""
+% NANDINAGARI VOWEL SIGN VOCALIC R
+<U000119D6> ""
+% NANDINAGARI VOWEL SIGN VOCALIC RR
+<U000119D7> ""
+% NANDINAGARI VOWEL SIGN E
+<U000119DA> ""
+% NANDINAGARI VOWEL SIGN AI
+<U000119DB> ""
+% NANDINAGARI VOWEL SIGN O
+<U000119DC> ""
+% NANDINAGARI VOWEL SIGN AU
+<U000119DD> ""
+% NANDINAGARI SIGN ANUSVARA
+<U000119DE> ""
+% NANDINAGARI SIGN VISARGA
+<U000119DF> ""
+% NANDINAGARI SIGN VIRAMA
+<U000119E0> ""
+% NANDINAGARI VOWEL SIGN PRISHTHAMATRA E
+<U000119E4> ""
% ZANABAZAR SQUARE VOWEL SIGN I
<U00011A01> ""
% ZANABAZAR SQUARE VOWEL SIGN UE
@@ -1252,6 +1282,28 @@ translit_start
<U0001E029> ""
% COMBINING GLAGOLITIC LETTER FITA
<U0001E02A> ""
+% NYIAKENG PUACHUE HMONG TONE-B
+<U0001E130> ""
+% NYIAKENG PUACHUE HMONG TONE-M
+<U0001E131> ""
+% NYIAKENG PUACHUE HMONG TONE-J
+<U0001E132> ""
+% NYIAKENG PUACHUE HMONG TONE-V
+<U0001E133> ""
+% NYIAKENG PUACHUE HMONG TONE-S
+<U0001E134> ""
+% NYIAKENG PUACHUE HMONG TONE-G
+<U0001E135> ""
+% NYIAKENG PUACHUE HMONG TONE-D
+<U0001E136> ""
+% WANCHO TONE TUP
+<U0001E2EC> ""
+% WANCHO TONE TUPNI
+<U0001E2ED> ""
+% WANCHO TONE KOI
+<U0001E2EE> ""
+% WANCHO TONE KOINI
+<U0001E2EF> ""
% ADLAM ALIF LENGTHENER
<U0001E944> ""
% ADLAM VOWEL LENGTHENER
diff --git a/localedata/locales/translit_compat b/localedata/locales/translit_compat
index 112ee0c8bc..ba71c074eb 100644
--- a/localedata/locales/translit_compat
+++ b/localedata/locales/translit_compat
@@ -9,7 +9,7 @@ comment_char %
% otherwise be governed by that license.
% Transliterations of compatibility characters and ligatures.
-% Generated automatically from UnicodeData.txt by gen_translit_compat.py on 2018-06-20 for Unicode 11.0.0.
+% Generated automatically from UnicodeData.txt by gen_translit_compat.py on 2019-05-08 for Unicode 12.1.0.
LC_CTYPE
@@ -1877,6 +1877,8 @@ translit_start
<U0001F16A> "<U004D><U0043>"
% RAISED MD SIGN
<U0001F16B> "<U004D><U0044>"
+% RAISED MR SIGN
+<U0001F16C> "<U004D><U0052>"
% TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C
<U0001F240> "<U3014><U672C><U3015>"
% TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E09
diff --git a/localedata/locales/translit_font b/localedata/locales/translit_font
index 33399962f7..cec09348aa 100644
--- a/localedata/locales/translit_font
+++ b/localedata/locales/translit_font
@@ -9,7 +9,7 @@ comment_char %
% otherwise be governed by that license.
% Transliterations of font equivalents.
-% Generated automatically from UnicodeData.txt by gen_translit_font.py on 2018-06-20 for Unicode 11.0.0.
+% Generated automatically from UnicodeData.txt by gen_translit_font.py on 2019-05-08 for Unicode 12.1.0.
LC_CTYPE
diff --git a/localedata/locales/translit_fraction b/localedata/locales/translit_fraction
index 738542a29b..22612d4c94 100644
--- a/localedata/locales/translit_fraction
+++ b/localedata/locales/translit_fraction
@@ -9,7 +9,7 @@ comment_char %
% otherwise be governed by that license.
% Transliterations of fractions.
-% Generated automatically from UnicodeData.txt by gen_translit_fraction.py on 2018-06-20 for Unicode 11.0.0.
+% Generated automatically from UnicodeData.txt by gen_translit_fraction.py on 2019-05-08 for Unicode 12.1.0.
% The replacements have been surrounded with spaces, because fractions are
% often preceded by a decimal number and followed by a unit or a math symbol.
diff --git a/localedata/locales/translit_neutral b/localedata/locales/translit_neutral
index e3639c0a75..72f66220b7 100644
--- a/localedata/locales/translit_neutral
+++ b/localedata/locales/translit_neutral
@@ -743,10 +743,22 @@ include "translit_wide";""
<U263A> "<U003A><U0029>"
% BLACK SMILING FACE
<U263B> "<U003A><U0029>"
-% MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET⟫
-<U27EB> "<U003E><U003E>"
+% MATHEMATICAL LEFT WHITE SQUARE BRACKET
+<U27E6> "<U005B><U007C>"
+% MATHEMATICAL RIGHT WHITE SQUARE BRACKET
+<U27E7> "<U007C><U005D>"
+% MATHEMATICAL LEFT ANGLE BRACKET
+<U27E8> <U003C>
+% MATHEMATICAL RIGHT ANGLE BRACKET
+<U27E9> <U003E>
% MATHEMATICAL LEFT DOUBLE ANGLE BRACKET
<U27EA> "<U003C><U003C>"
+% MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET
+<U27EB> "<U003E><U003E>"
+% MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET
+<U27EC> "<U0028><U0028>"
+% MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET
+<U27ED> "<U0029><U0029>"
% MATHEMATICAL LEFT FLATTENED PARENTHESIS
<U27EE> <U0028>
% MATHEMATICAL RIGHT FLATTENED PARENTHESIS
@@ -755,6 +767,42 @@ include "translit_wide";""
<U27CB> <U002F>
% MATHEMATICAL FALLING DIAGONAL
<U27CD> <U005C>
+% TRIPLE VERTICAL BAR DELIMITER
+<U2980> "<U007C><U007C><U007C>"
+% LEFT WHITE CURLY BRACKET
+<U2983> "<U007B><U007C>"
+% RIGHT WHITE CURLY BRACKET
+<U2984> "<U007C><U007D>"
+% LEFT WHITE PARENTHESIS
+<U2985> "<U0028><U0028>"
+% RIGHT WHITE PARENTHESIS
+<U2986> "<U0029><U0029>"
+% Z NOTATION LEFT IMAGE BRACKET
+<U2987> "<U0028><U007C>"
+% Z NOTATION RIGHT IMAGE BRACKET
+<U2988> "<U007C><U0029>"
+% Z NOTATION LEFT BINDING BRACKET
+<U2989> "<U003C><U007C>"
+% Z NOTATION RIGHT BINDING BRACKET
+<U298A> "<U007C><U003E>"
+% EQUALS SIGN AND SLANTED PARALLEL
+<U29E3> <U0023>
+% IDENTICAL TO AND SLANTED PARALLEL
+<U29E5> <U0023>
+% REVERSE SOLIDUS OPERATOR
+<U29F5> <U005C>
+% BIG SOLIDUS
+<U29F8> <U002F>
+% BIG REVERSE SOLIDUS
+<U29F9> <U005C>
+% LEFT-POINTING CURVED ANGLE BRACKET
+<U29FC> <U003C>
+% RIGHT-POINTING CURVED ANGLE BRACKET
+<U29FD> <U003E>
+% TINY
+<U29FE> <U002B>
+% MINY
+<U29FF> <U002D>
% LEFT ANGLE BRACKET
<U3008> <U003C>
% RIGHT ANGLE BRACKET
diff --git a/localedata/locales/tt_RU b/localedata/locales/tt_RU
index b3b79b2ec2..2e6aa85f6f 100644
--- a/localedata/locales/tt_RU
+++ b/localedata/locales/tt_RU
@@ -192,44 +192,44 @@ copy "ru_RU"
END LC_NUMERIC
LC_TIME
-day "<U042F><U043A><U0448><U04D9><U043C><U0431><U0435>";/
- "<U0414><U044B><U0448><U04D9><U043C><U0431><U0435>";/
- "<U0421><U0438><U0448><U04D9><U043C><U0431><U0435>";/
- "<U0427><U04D9><U0440><U0448><U04D9><U04D9><U043C><U0431><U0435>";/
- "<U041F><U04D9><U043D><U0497><U0435><U0448><U043C><U0431><U0435>";/
- "<U0496><U043E><U043C><U0433><U0430>";/
- "<U0428><U0438><U043C><U0431><U04D9>"
-abday "<U042F><U043A><U0448>";/
- "<U0414><U044B><U0448>";/
- "<U0421><U0438><U0448>";/
- "<U0427><U04D9><U0440><U0448>";/
- "<U041F><U04D9><U043D><U0497>";/
- "<U0496><U043E><U043C>";/
- "<U0428><U0438><U043C>"
-mon "<U042F><U043D><U0432><U0430><U0440><U044F>";/
- "<U0424><U0435><U0432><U0440><U0430><U043B><U044F>";/
- "<U041C><U0430><U0440><U0442><U0430>";/
- "<U0410><U043F><U0440><U0435><U043B><U044F>";/
- "<U041C><U0430><U044F>";/
- "<U0418><U044E><U043D><U044F>";/
- "<U0418><U044E><U043B><U044F>";/
- "<U0410><U0432><U0433><U0443><U0441><U0442><U0430>";/
- "<U0421><U0435><U043D><U0442><U044F><U0431><U0440><U044F>";/
- "<U041E><U043A><U0442><U044F><U0431><U0440><U044F>";/
- "<U041D><U043E><U044F><U0431><U0440><U044F>";/
- "<U0414><U0435><U043A><U0430><U0431><U0440><U044F>"
-abmon "<U042F><U043D><U0432>";/
- "<U0424><U0435><U0432>";/
- "<U041C><U0430><U0440>";/
- "<U0410><U043F><U0440>";/
- "<U041C><U0430><U0439>";/
- "<U0418><U044E><U043D>";/
- "<U0418><U044E><U043B>";/
- "<U0410><U0432><U0433>";/
- "<U0421><U0435><U043D>";/
- "<U041E><U043A><U0442>";/
- "<U041D><U043E><U044F>";/
- "<U0414><U0435><U043A>"
+day "<U044F><U043A><U0448><U04D9><U043C><U0431><U0435>";/
+ "<U0434><U04AF><U0448><U04D9><U043C><U0431><U0435>";/
+ "<U0441><U0438><U0448><U04D9><U043C><U0431><U0435>";/
+ "<U0447><U04D9><U0440><U0448><U04D9><U043C><U0431><U0435>";/
+ "<U043F><U04D9><U043D><U0497><U0435><U0448><U04D9><U043C><U0431><U0435>";/
+ "<U0497><U043E><U043C><U0433><U0430>";/
+ "<U0448><U0438><U043C><U0431><U04D9>"
+abday "<U044F><U043A><U0448>";/
+ "<U0434><U04AF><U0448>";/
+ "<U0441><U0438><U0448>";/
+ "<U0447><U04D9><U0440>";/
+ "<U043F><U04D9><U043D><U0497>";/
+ "<U0497><U043E><U043C>";/
+ "<U0448><U0438><U043C>"
+mon "<U0433><U044B><U0439><U043D><U0432><U0430><U0440>";/
+ "<U0444><U0435><U0432><U0440><U0430><U043B><U044C>";/
+ "<U043C><U0430><U0440><U0442>";/
+ "<U0430><U043F><U0440><U0435><U043B><U044C>";/
+ "<U043C><U0430><U0439>";/
+ "<U0438><U044E><U043D><U044C>";/
+ "<U0438><U044E><U043B><U044C>";/
+ "<U0430><U0432><U0433><U0443><U0441><U0442>";/
+ "<U0441><U0435><U043D><U0442><U044F><U0431><U0440><U044C>";/
+ "<U043E><U043A><U0442><U044F><U0431><U0440><U044C>";/
+ "<U043D><U043E><U044F><U0431><U0440><U044C>";/
+ "<U0434><U0435><U043A><U0430><U0431><U0440><U044C>"
+abmon "<U0433><U044B><U0439><U043D>";/
+ "<U0444><U0435><U0432>";/
+ "<U043C><U0430><U0440>";/
+ "<U0430><U043F><U0440>";/
+ "<U043C><U0430><U0439>";/
+ "<U0438><U044E><U043D><U044C>";/
+ "<U0438><U044E><U043B><U044C>";/
+ "<U0430><U0432><U0433>";/
+ "<U0441><U0435><U043D><U0442>";/
+ "<U043E><U043A><U0442>";/
+ "<U043D><U043E><U044F><U0431>";/
+ "<U0434><U0435><U043A>"
d_t_fmt "%a %d %b %Y %T"
d_fmt "%d.%m.%Y"
t_fmt "%T"
@@ -261,6 +261,7 @@ country_ab2 "RU"
country_ab3 "RUS"
country_num 643
country_car "RUS"
+lang_name "<U0442><U0430><U0442><U0430><U0440>"
lang_ab "tt"
lang_term "tat"
lang_lib "tat"
diff --git a/localedata/locales/tt_RU@iqtelif b/localedata/locales/tt_RU@iqtelif
index d4737c888e..b52b129994 100644
--- a/localedata/locales/tt_RU@iqtelif
+++ b/localedata/locales/tt_RU@iqtelif
@@ -155,10 +155,12 @@ END LC_MEASUREMENT
LC_ADDRESS
postal_fmt "%f%N%a%N%d%N%b%N%s %h %e %r%N%z %T%N%c%N"
+country_name "Ur<U0131>s Pat<U015F>ahl<U0131>q"
country_ab2 "RU"
country_ab3 "RUS"
country_num 643
country_car "RUS"
+lang_name "tatar tele"
lang_ab "tt"
lang_term "tat"
lang_lib "tat"
diff --git a/localedata/locales/ug_CN b/localedata/locales/ug_CN
index 1ba583c588..d7f11d3c52 100644
--- a/localedata/locales/ug_CN
+++ b/localedata/locales/ug_CN
@@ -165,6 +165,7 @@ am_pm "";""
date_fmt "%a<U060C> %d-%m-%Y<U060C> %T"
week 7;19971130;1
+first_weekday 2
END LC_TIME
LC_MESSAGES
@@ -195,6 +196,8 @@ country_ab3 "CHN"
country_num 156
country_car "CHN"
country_isbn 7
+% ئۇيغۇرچە
+lang_name "<U0626><U06C7><U064A><U063A><U06C7><U0631><U0686><U06D5>"
lang_ab "ug"
lang_term "uig"
lang_lib "uig"
diff --git a/localedata/locales/unm_US b/localedata/locales/unm_US
index 1e62c60443..ef458e22dc 100644
--- a/localedata/locales/unm_US
+++ b/localedata/locales/unm_US
@@ -139,7 +139,7 @@ country_ab3 "USA"
country_num 840
country_car "USA"
country_isbn 0
-% lang_name ""
+lang_name "Lenape"
% lang_ab ""
lang_term "unm"
lang_lib "unm"
diff --git a/localedata/locales/ur_IN b/localedata/locales/ur_IN
index 8023f854a5..26a9142bb5 100644
--- a/localedata/locales/ur_IN
+++ b/localedata/locales/ur_IN
@@ -124,10 +124,10 @@ am_pm "AM";"PM"
d_t_fmt "%A %d %b %Y %I:%M:%S %p %Z"
%
% Appropriate date representation
-d_fmt "%A %d %b %Y"
+d_fmt "%-d//%-m//%y"
%
% Appropriate time representation
-t_fmt "%I:%M:%S %Z"
+t_fmt "%I:%M:%S %p %Z"
%
% Appropriate 12 h time representation (%r)
t_fmt_ampm "%I:%M:%S %p %Z"
diff --git a/localedata/locales/wa_BE b/localedata/locales/wa_BE
index e97493089e..afec10f41c 100644
--- a/localedata/locales/wa_BE
+++ b/localedata/locales/wa_BE
@@ -44,7 +44,7 @@ country_ab3 "BEL"
country_num 056
country_isbn "2"
country_car "B"
-lang_name "Walon"
+lang_name "walon"
lang_ab "wa"
lang_term "wln"
lang_lib "wln"
diff --git a/localedata/locales/wa_BE@euro b/localedata/locales/wa_BE@euro
index 12c095d929..9a93175071 100644
--- a/localedata/locales/wa_BE@euro
+++ b/localedata/locales/wa_BE@euro
@@ -18,7 +18,7 @@ escape_char /
LC_IDENTIFICATION
title "Walloon locale for Belgium with Euro"
source "Free Software Foundation, Inc."
-address "http:////www.gnu.org//software//libc//"
+address "https:////www.gnu.org//software//libc//"
contact ""
email "bug-glibc-locales@gnu.org"
tel ""
diff --git a/localedata/locales/wal_ET b/localedata/locales/wal_ET
index 4811bd8eaf..65b8e5f5be 100644
--- a/localedata/locales/wal_ET
+++ b/localedata/locales/wal_ET
@@ -206,11 +206,11 @@ d_fmt "%d//%m//%Y"
%
% Appropriate time representation (%X)
%
-t_fmt "%l:%M:%S"
+t_fmt "%l:%M:%S %p"
%
% Appropriate AM/PM time representation (%r)
%
-t_fmt_ampm "%X %p"
+t_fmt_ampm "%l:%M:%S %p"
%
% Appropriate date and time representation (%c)
% "%Aᣠ%B %e ጋላሳ %Y %r %Z
diff --git a/localedata/locales/wo_SN b/localedata/locales/wo_SN
index 47263d2eab..2019092503 100644
--- a/localedata/locales/wo_SN
+++ b/localedata/locales/wo_SN
@@ -161,6 +161,7 @@ country_ab2 "SN"
country_ab3 "SEN"
country_num 686
country_car "SN"
+lang_name "Wolof"
lang_ab "wo"
lang_term "wol"
lang_lib "wol"
diff --git a/localedata/locales/xh_ZA b/localedata/locales/xh_ZA
index 4564137e85..327f725098 100644
--- a/localedata/locales/xh_ZA
+++ b/localedata/locales/xh_ZA
@@ -209,13 +209,13 @@ END LC_NAME
LC_ADDRESS
% https://xh.wikipedia.org/wiki/UMzantsi_Afrika
-country_name "UMzantsi Afrika"
+country_name "uMzantsi Afrika"
%
% Abbreviated country postal name
country_post "ZA"
%
% Language name in Sotho
-lang_name "IsiXhosa"
+lang_name "isiXhosa"
% UN Geneve 1949:68 Distinguishing signs of vehicles in international traffic
% http://www.unece.org/trans/conventn/disting-signs-5-2001.pdf
diff --git a/localedata/locales/yo_NG b/localedata/locales/yo_NG
index ec72d078bb..a3102270bf 100644
--- a/localedata/locales/yo_NG
+++ b/localedata/locales/yo_NG
@@ -271,8 +271,8 @@ LC_ADDRESS
% "country designation for the <country_post> keyword",
% "end of line
postal_fmt "%f%N%a%N%d%N%b%N%s %h %e %r%N%z %T%N%c%N"
-
-country_name "Or<U00ED>l<U1EB9><U0301><U00E8>de N<U00E0><U00EC>j<U00ED>r<U00ED><U00E0>"
+% https://yo.wikipedia.org/wiki/N%C3%A0%C3%ACj%C3%ADr%C3%AD%C3%A0 and CLDR: Orilẹ̀-èdè Nàìjíríà
+country_name "Oril<U1EB9><U0300><U002D><U00E8>d<U00E8> N<U00E0><U00EC>j<U00ED>r<U00ED><U00E0>"
% Language name in Yoruba - "Yorùbá"
lang_name "<U00C8>d<U00E8> Yor<U00F9>b<U00E1>"
diff --git a/localedata/locales/yuw_PG b/localedata/locales/yuw_PG
index 0cb3cadf4a..55e787a5cd 100644
--- a/localedata/locales/yuw_PG
+++ b/localedata/locales/yuw_PG
@@ -16,7 +16,7 @@ contact "Hannah Sarvasy"
email "nungon.localization@gmail.com"
tel ""
fax ""
-language "Yau/Nungon"
+language "Yau"
territory "Papua New Guinea"
revision "1.0"
date "2016-12-07"
@@ -133,8 +133,8 @@ country_ab2 "PG"
country_ab3 "PNG"
% ISO 3166-1 numeric code for PNG
country_num 598
-% Yau/Nungon
-lang_name "Yau/Nungon"
+% See: https://en.wikipedia.org/wiki/Yau_language, the endonym seems to be Uruwa
+lang_name "Uruwa"
country_car "PNG"
lang_ab ""
lang_term "yuw"
diff --git a/localedata/locales/zh_CN b/localedata/locales/zh_CN
index 62a46415c1..cd4b33602a 100644
--- a/localedata/locales/zh_CN
+++ b/localedata/locales/zh_CN
@@ -139,6 +139,7 @@ t_fmt_ampm "%p %I<U65F6>%M<U5206>%S<U79D2>"
date_fmt "%Y<U5E74> %m<U6708> %d<U65E5> %A %H:%M:%S %Z"
week 7;19971130;1
+first_weekday 2
END LC_TIME
LC_MESSAGES
diff --git a/localedata/locales/zh_HK b/localedata/locales/zh_HK
index c130878f3d..78ff7d27a6 100644
--- a/localedata/locales/zh_HK
+++ b/localedata/locales/zh_HK
@@ -133,8 +133,8 @@ d_t_fmt "%Y<U5E74>%m<U6708>%d<U65E5> %A %H:%M:%S"
d_fmt "%Y<U5E74>%m<U6708>%d<U65E5> %A"
%
% Appropriate time representation
-% %I時%M分%S秒 %Z
-t_fmt "%I<U6642>%M<U5206>%S<U79D2> %Z"
+% %p %I時%M分%S秒 %Z
+t_fmt "%p %I<U6642>%M<U5206>%S<U79D2> %Z"
%
% Appropriate 12 h time representation (%r)
% Update by Roger So <roger.so@sw-linux.com>
@@ -178,6 +178,7 @@ country_ab2 "HK"
country_ab3 "HKG"
country_num 344
country_car "HK"
+lang_name "<U7E41><U9AD4><U4E2D><U6587>"
lang_ab "zh"
lang_term "zho"
lang_lib "chi"
diff --git a/localedata/locales/zh_SG b/localedata/locales/zh_SG
index 2427cd3ead..472843c7f7 100644
--- a/localedata/locales/zh_SG
+++ b/localedata/locales/zh_SG
@@ -175,6 +175,7 @@ country_ab3 "SGP"
country_num 702
% SGP
country_car "SGP"
+lang_name "<U7B80><U4F53><U4E2D><U6587>"
lang_ab "zh"
lang_term "zho"
lang_lib "chi"
diff --git a/localedata/locales/zh_TW b/localedata/locales/zh_TW
index 92b04b083d..b869dec317 100644
--- a/localedata/locales/zh_TW
+++ b/localedata/locales/zh_TW
@@ -126,6 +126,10 @@ am_pm "<U4E0A><U5348>";"<U4E0B><U5348>"
% t_fmt_ampm: "%p %I<h>%M<m>%S<s>"
t_fmt_ampm "%p %I<U6642>%M<U5206>%S<U79D2>"
week 7;19971130;1
+
+era "+:2:1913//01//01:+*:<U6C11><U570B>:%EC%Ey<U5E74>";/
+ "+:1:1912//01//01:1912//12//31:<U6C11><U570B>:%EC<U5143><U5E74>";/
+ "+:1:1911//12//31:-*:<U6C11><U524D>:%EC%Ey<U5E74>"
END LC_TIME
LC_MESSAGES
diff --git a/localedata/sort-test.sh b/localedata/sort-test.sh
index acd3a17934..ef41f9dc52 100644
--- a/localedata/sort-test.sh
+++ b/localedata/sort-test.sh
@@ -1,6 +1,6 @@
#!/bin/sh
# Test collation using xfrm-test.
-# Copyright (C) 1997-2018 Free Software Foundation, Inc.
+# Copyright (C) 1997-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
@@ -15,7 +15,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
set -e
diff --git a/localedata/tests-mbwc/tst_swscanf.c b/localedata/tests-mbwc/tst_swscanf.c
index 76445d75f4..11cbf02966 100644
--- a/localedata/tests-mbwc/tst_swscanf.c
+++ b/localedata/tests-mbwc/tst_swscanf.c
@@ -115,11 +115,11 @@ tst_swscanf (FILE * fp, int debug_flg)
if (errno == 0 && !TST_INPUT (swscanf).wch)
{
- if (val_int1 != TST_EXPECT (swscanf).val_int ||
- val_int2 != TST_EXPECT (swscanf).val_uns ||
- val_flt != TST_EXPECT (swscanf).val_flt ||
- val_c != TST_EXPECT (swscanf).val_c ||
- strcmp (val_s, TST_EXPECT (swscanf).val_s))
+ if (val_int1 != TST_EXPECT (swscanf).val_int
+ || val_int2 != TST_EXPECT (swscanf).val_uns
+ || val_flt != TST_EXPECT (swscanf).val_flt
+ || val_c != TST_EXPECT (swscanf).val_c
+ || strcmp (val_s, TST_EXPECT (swscanf).val_s))
{
err_count++;
Result (C_FAILURE, S_SWSCANF, CASE_3,
diff --git a/localedata/tests/test6.c b/localedata/tests/test6.c
index 79451c79f2..717d0065ac 100644
--- a/localedata/tests/test6.c
+++ b/localedata/tests/test6.c
@@ -1,5 +1,5 @@
/* Test program for character classes and mappings.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <locale.h>
diff --git a/localedata/tst-ctype.c b/localedata/tst-ctype.c
index 2e4fb1fc57..f73e7dcb2f 100644
--- a/localedata/tst-ctype.c
+++ b/localedata/tst-ctype.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <locale.h>
diff --git a/localedata/tst-ctype.sh b/localedata/tst-ctype.sh
index 8e2170b7b2..b2dad9333e 100755
--- a/localedata/tst-ctype.sh
+++ b/localedata/tst-ctype.sh
@@ -1,6 +1,6 @@
#!/bin/sh
# Testing the implementation of the isxxx() and toxxx() functions.
-# Copyright (C) 2000-2018 Free Software Foundation, Inc.
+# Copyright (C) 2000-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
@@ -15,7 +15,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
set -e
diff --git a/localedata/tst-digits.c b/localedata/tst-digits.c
index 8089bcb46e..309ab64888 100644
--- a/localedata/tst-digits.c
+++ b/localedata/tst-digits.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <langinfo.h>
diff --git a/localedata/tst-fmon.c b/localedata/tst-fmon.c
index 2ba6595ffc..d0b2c30d1e 100644
--- a/localedata/tst-fmon.c
+++ b/localedata/tst-fmon.c
@@ -1,5 +1,5 @@
/* Testing the implementation of strfmon(3).
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jochen Hein <jochen.hein@delphi.central.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <locale.h>
diff --git a/localedata/tst-fmon.data b/localedata/tst-fmon.data
index afee76ca48..e1979103fa 100644
--- a/localedata/tst-fmon.data
+++ b/localedata/tst-fmon.data
@@ -1,5 +1,5 @@
# Test data for test-strfmon, which checks it's implementation in glibc
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2019 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# Contributed by Jochen Hein <jochen.hein@delphi.central.de>, 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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
# The format of this file is pretty simple: Each line contains a test
# for strfmon. Fields are separated by TABs. Lines that start with a
diff --git a/localedata/tst-fmon.sh b/localedata/tst-fmon.sh
index 29058a2b65..b032da9443 100755
--- a/localedata/tst-fmon.sh
+++ b/localedata/tst-fmon.sh
@@ -1,6 +1,6 @@
#!/bin/sh
# Testing the implementation of strfmon(3).
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2019 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# Contributed by Jochen Hein <jochen.hein@delphi.central.de>, 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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
set -e
diff --git a/localedata/tst-iconv-math-trans.c b/localedata/tst-iconv-math-trans.c
new file mode 100644
index 0000000000..32473bbe3e
--- /dev/null
+++ b/localedata/tst-iconv-math-trans.c
@@ -0,0 +1,104 @@
+/* Test some mathematical operator transliterations (BZ #23132)
+
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <iconv.h>
+#include <locale.h>
+#include <stdio.h>
+#include <string.h>
+#include <support/check.h>
+
+static int
+do_test (void)
+{
+ iconv_t cd;
+
+ /* str[] = "⟦ ⟧ ⟨ ⟩"
+ " ⟬ ⟭ ⦀"
+ " ⦃ ⦄ ⦅ ⦆"
+ " ⦇ ⦈ ⦉ ⦊"
+ " ⧣ ⧥ ⧵ ⧸ ⧹"
+ " ⧼ ⧽ ⧾ ⧿"; */
+
+ const char str[] = "\u27E6 \u27E7 \u27E8 \u27E9"
+ " \u27EC \u27ED \u2980"
+ " \u2983 \u2984 \u2985 \u2986"
+ " \u2987 \u2988 \u2989 \u298A"
+ " \u29E3 \u29E5 \u29F5 \u29F8 \u29F9"
+ " \u29FC \u29FD \u29FE \u29FF";
+
+ const char expected[] = "[| |] < >"
+ " (( )) |||"
+ " {| |} (( ))"
+ " (| |) <| |>"
+ " # # \\ / \\"
+ " < > + -";
+
+ char *inptr = (char *) str;
+ size_t inlen = strlen (str) + 1;
+ char outbuf[500];
+ char *outptr = outbuf;
+ size_t outlen = sizeof (outbuf);
+ int result = 0;
+ size_t n;
+
+ if (setlocale (LC_ALL, "en_US.UTF-8") == NULL)
+ FAIL_EXIT1 ("setlocale failed");
+
+ cd = iconv_open ("ASCII//TRANSLIT", "UTF-8");
+ if (cd == (iconv_t) -1)
+ FAIL_EXIT1 ("iconv_open failed");
+
+ n = iconv (cd, &inptr, &inlen, &outptr, &outlen);
+ if (n != 24)
+ {
+ if (n == (size_t) -1)
+ printf ("iconv() returned error: %m\n");
+ else
+ printf ("iconv() returned %Zd, expected 24\n", n);
+ result = 1;
+ }
+ if (inlen != 0)
+ {
+ puts ("not all input consumed");
+ result = 1;
+ }
+ else if (inptr - str != strlen (str) + 1)
+ {
+ printf ("inptr wrong, advanced by %td\n", inptr - str);
+ result = 1;
+ }
+ if (memcmp (outbuf, expected, sizeof (expected)) != 0)
+ {
+ printf ("result wrong: \"%.*s\", expected: \"%s\"\n",
+ (int) (sizeof (outbuf) - outlen), outbuf, expected);
+ result = 1;
+ }
+ else if (outlen != sizeof (outbuf) - sizeof (expected))
+ {
+ printf ("outlen wrong: %Zd, expected %Zd\n", outlen,
+ sizeof (outbuf) - 15);
+ result = 1;
+ }
+ else
+ printf ("output is \"%s\" which is OK\n", outbuf);
+
+ return result;
+}
+
+#include <support/test-driver.c>
diff --git a/localedata/tst-langinfo-newlocale.c b/localedata/tst-langinfo-newlocale.c
index d29a5101e1..3308292ff3 100644
--- a/localedata/tst-langinfo-newlocale.c
+++ b/localedata/tst-langinfo-newlocale.c
@@ -1,5 +1,5 @@
/* Test program for newlocale() + nl_langinfo_l() functions.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <langinfo.h>
#include <locale.h>
diff --git a/localedata/tst-langinfo-setlocale.c b/localedata/tst-langinfo-setlocale.c
index 3c41f109f4..b47b1bf6dd 100644
--- a/localedata/tst-langinfo-setlocale.c
+++ b/localedata/tst-langinfo-setlocale.c
@@ -1,5 +1,5 @@
/* Test program for setlocale() + nl_langinfo() functions.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <langinfo.h>
#include <locale.h>
diff --git a/localedata/tst-langinfo.c b/localedata/tst-langinfo.c
index 5b2c117292..da48d28742 100644
--- a/localedata/tst-langinfo.c
+++ b/localedata/tst-langinfo.c
@@ -1,5 +1,5 @@
/* Test driver for nl_langinfo[_l] functions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <langinfo.h>
#include <locale.h>
diff --git a/localedata/tst-langinfo.sh b/localedata/tst-langinfo.sh
index 400ea6d36c..2ad81fae00 100755
--- a/localedata/tst-langinfo.sh
+++ b/localedata/tst-langinfo.sh
@@ -1,6 +1,6 @@
#!/bin/sh
# Test nl_langinfo.
-# Copyright (C) 2000-2018 Free Software Foundation, Inc.
+# Copyright (C) 2000-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
@@ -15,7 +15,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
set -e
diff --git a/localedata/tst-leaks.c b/localedata/tst-leaks.c
index 3ac4a90da4..ccd44f2c62 100644
--- a/localedata/tst-leaks.c
+++ b/localedata/tst-leaks.c
@@ -17,6 +17,5 @@ do_test (void)
return 0;
}
-#define TIMEOUT 5
#define TEST_FUNCTION do_test ()
#include "../test-skeleton.c"
diff --git a/localedata/tst-locale.sh b/localedata/tst-locale.sh
index beae13d5e3..1b2ff8a186 100755
--- a/localedata/tst-locale.sh
+++ b/localedata/tst-locale.sh
@@ -1,6 +1,6 @@
#!/bin/sh
# Testing the implementation of localedata.
-# Copyright (C) 1998-2018 Free Software Foundation, Inc.
+# Copyright (C) 1998-2019 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# Contributed by Andreas Jaeger, <aj@arthur.rhein-neckar.de>, 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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
set -e
diff --git a/localedata/tst-mbswcs1.c b/localedata/tst-mbswcs1.c
index 0570f4d68e..f406d873a5 100644
--- a/localedata/tst-mbswcs1.c
+++ b/localedata/tst-mbswcs1.c
@@ -1,5 +1,5 @@
/* Test restarting behaviour of mbrtowc.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Bruno Haible <haible@ilog.fr>.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <string.h>
diff --git a/localedata/tst-mbswcs2.c b/localedata/tst-mbswcs2.c
index 595342c6e0..1552352e0b 100644
--- a/localedata/tst-mbswcs2.c
+++ b/localedata/tst-mbswcs2.c
@@ -1,5 +1,5 @@
/* Test restarting behaviour of mbsnrtowcs.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Bruno Haible <haible@ilog.fr>.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <string.h>
diff --git a/localedata/tst-mbswcs3.c b/localedata/tst-mbswcs3.c
index 87d5f8bf85..c7ccf609b1 100644
--- a/localedata/tst-mbswcs3.c
+++ b/localedata/tst-mbswcs3.c
@@ -1,5 +1,5 @@
/* Test restarting behaviour of wcsrtombs.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Bruno Haible <haible@ilog.fr>.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <string.h>
diff --git a/localedata/tst-mbswcs4.c b/localedata/tst-mbswcs4.c
index 5763c5baab..6d5bd083bf 100644
--- a/localedata/tst-mbswcs4.c
+++ b/localedata/tst-mbswcs4.c
@@ -1,5 +1,5 @@
/* Test restarting behaviour of mbsrtowcs.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <string.h>
diff --git a/localedata/tst-mbswcs5.c b/localedata/tst-mbswcs5.c
index 290b18d91c..9f2fb00852 100644
--- a/localedata/tst-mbswcs5.c
+++ b/localedata/tst-mbswcs5.c
@@ -1,5 +1,5 @@
/* Test restarting behaviour of wcrtomb.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Bruno Haible <haible@ilog.fr>.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <string.h>
diff --git a/localedata/tst-mbswcs6.c b/localedata/tst-mbswcs6.c
index 2b02977faf..feae49f0e4 100644
--- a/localedata/tst-mbswcs6.c
+++ b/localedata/tst-mbswcs6.c
@@ -1,5 +1,5 @@
/* Test for invalid input to wcrtomb.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <locale.h>
diff --git a/localedata/tst-numeric.c b/localedata/tst-numeric.c
index dc57862afb..9877651ab3 100644
--- a/localedata/tst-numeric.c
+++ b/localedata/tst-numeric.c
@@ -1,5 +1,5 @@
/* Testing the implementation of LC_NUMERIC and snprintf().
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Petter Reinholdtsen <pere@hungry.com>, 2003
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <locale.h>
diff --git a/localedata/tst-numeric.data b/localedata/tst-numeric.data
index df8e76927b..f0d745af72 100644
--- a/localedata/tst-numeric.data
+++ b/localedata/tst-numeric.data
@@ -1,5 +1,5 @@
# Test data for tst-nomeric, which checks it's implementation in glibc
-# Copyright (C) 2003-2018 Free Software Foundation, Inc.
+# Copyright (C) 2003-2019 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# Contributed by Petter Reinholdtsen <pere@hungry.com>, 2003
# Based on code by Jochen Hein <jochen.hein@delphi.central.de>, 1997.
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
# The format of this file is pretty simple: Each line contains a test
# for strfmon. Fields are separated by TABs. Lines that start with a
diff --git a/localedata/tst-numeric.sh b/localedata/tst-numeric.sh
index 1d8e33c519..26ccbd6f90 100644
--- a/localedata/tst-numeric.sh
+++ b/localedata/tst-numeric.sh
@@ -1,6 +1,6 @@
#!/bin/sh
# Testing the implementation of LC_NUMERIC and snprintf(3).
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2019 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# Contributed by Jochen Hein <jochen.hein@delphi.central.de>, 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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
set -e
diff --git a/localedata/tst-rpmatch.c b/localedata/tst-rpmatch.c
index 6f3788085f..af72c2dcb1 100644
--- a/localedata/tst-rpmatch.c
+++ b/localedata/tst-rpmatch.c
@@ -1,5 +1,5 @@
/* Test program for rpmatch function.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jochen Hein <jochen.hein@delphi.central.de>.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <locale.h>
#include <stdio.h>
diff --git a/localedata/tst-rpmatch.sh b/localedata/tst-rpmatch.sh
index 9e79989110..39776c0573 100755
--- a/localedata/tst-rpmatch.sh
+++ b/localedata/tst-rpmatch.sh
@@ -1,6 +1,6 @@
#!/bin/sh -f
#
-# Copyright (C) 1998-2018 Free Software Foundation, Inc.
+# Copyright (C) 1998-2019 Free Software Foundation, Inc.
# This file is part of the GNU C Library and contains tests for
# the rpmatch(3)-implementation.
# contributed by Jochen Hein <jochen.hein@delphi.central.de>
@@ -16,7 +16,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 <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
set -e
diff --git a/localedata/tst-setlocale3.c b/localedata/tst-setlocale3.c
index b2e55edf59..6f1ddbd038 100644
--- a/localedata/tst-setlocale3.c
+++ b/localedata/tst-setlocale3.c
@@ -1,5 +1,5 @@
/* Regression test for setlocale invalid environment variable handling.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <locale.h>
#include <stdio.h>
diff --git a/localedata/tst-strfmon1.c b/localedata/tst-strfmon1.c
index 8292a6cad5..abad43114a 100644
--- a/localedata/tst-strfmon1.c
+++ b/localedata/tst-strfmon1.c
@@ -12,7 +12,8 @@ static const struct
{ "de_DE.ISO-8859-1", "|-12,34 EUR|-12,34|" },
{ "da_DK.ISO-8859-1", "|kr. -12,34|-12,34|" },
{ "zh_TW.EUC-TW", "|-NT$12.34|-12.34|" },
- { "sv_SE.ISO-8859-1", "|-12,34 kr|-12,34|" }
+ { "sv_SE.ISO-8859-1", "|-12,34 kr|-12,34|" },
+ { "nl_NL.UTF-8", "|\u20ac -12,34|-12,34|" },
};
#define ntests (sizeof (tests) / sizeof (tests[0]))
diff --git a/localedata/tst-trans.c b/localedata/tst-trans.c
index 807afeadf1..588b182469 100644
--- a/localedata/tst-trans.c
+++ b/localedata/tst-trans.c
@@ -1,5 +1,5 @@
/* Test program for user-defined character maps.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <locale.h>
#include <stdio.h>
diff --git a/localedata/tst-trans.sh b/localedata/tst-trans.sh
index b48ff99a96..87e4b5aed6 100755
--- a/localedata/tst-trans.sh
+++ b/localedata/tst-trans.sh
@@ -1,6 +1,6 @@
#!/bin/sh
# Test character mapping definitions.
-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
+# Copyright (C) 1999-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
@@ -15,7 +15,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
set -e
diff --git a/localedata/tst-wctype.c b/localedata/tst-wctype.c
index b4ddc5f436..2dcc670f50 100644
--- a/localedata/tst-wctype.c
+++ b/localedata/tst-wctype.c
@@ -1,5 +1,5 @@
/* Test program for iswctype() function in ja_JP locale.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <error.h>
#include <locale.h>
diff --git a/localedata/unicode-gen/DerivedCoreProperties.txt b/localedata/unicode-gen/DerivedCoreProperties.txt
index d855349df1..4a92ffd1a5 100644
--- a/localedata/unicode-gen/DerivedCoreProperties.txt
+++ b/localedata/unicode-gen/DerivedCoreProperties.txt
@@ -1,6 +1,6 @@
-# DerivedCoreProperties-11.0.0.txt
-# Date: 2018-02-21, 05:34:02 GMT
-# © 2018 Unicode®, Inc.
+# DerivedCoreProperties-12.1.0.txt
+# Date: 2019-03-10, 10:53:06 GMT
+# © 2019 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
# For terms of use, see http://www.unicode.org/terms_of_use.html
#
@@ -530,16 +530,10 @@ FFE9..FFEC ; Math # Sm [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS A
0E4D ; Alphabetic # Mn THAI CHARACTER NIKHAHIT
0E81..0E82 ; Alphabetic # Lo [2] LAO LETTER KO..LAO LETTER KHO SUNG
0E84 ; Alphabetic # Lo LAO LETTER KHO TAM
-0E87..0E88 ; Alphabetic # Lo [2] LAO LETTER NGO..LAO LETTER CO
-0E8A ; Alphabetic # Lo LAO LETTER SO TAM
-0E8D ; Alphabetic # Lo LAO LETTER NYO
-0E94..0E97 ; Alphabetic # Lo [4] LAO LETTER DO..LAO LETTER THO TAM
-0E99..0E9F ; Alphabetic # Lo [7] LAO LETTER NO..LAO LETTER FO SUNG
-0EA1..0EA3 ; Alphabetic # Lo [3] LAO LETTER MO..LAO LETTER LO LING
+0E86..0E8A ; Alphabetic # Lo [5] LAO LETTER PALI GHA..LAO LETTER SO TAM
+0E8C..0EA3 ; Alphabetic # Lo [24] LAO LETTER PALI JHA..LAO LETTER LO LING
0EA5 ; Alphabetic # Lo LAO LETTER LO LOOT
-0EA7 ; Alphabetic # Lo LAO LETTER WO
-0EAA..0EAB ; Alphabetic # Lo [2] LAO LETTER SO SUNG..LAO LETTER HO SUNG
-0EAD..0EB0 ; Alphabetic # Lo [4] LAO LETTER O..LAO VOWEL SIGN A
+0EA7..0EB0 ; Alphabetic # Lo [10] LAO LETTER WO..LAO VOWEL SIGN A
0EB1 ; Alphabetic # Mn LAO VOWEL SIGN MAI KAN
0EB2..0EB3 ; Alphabetic # Lo [2] LAO VOWEL SIGN AA..LAO VOWEL SIGN AM
0EB4..0EB9 ; Alphabetic # Mn [6] LAO VOWEL SIGN I..LAO VOWEL SIGN UU
@@ -573,17 +567,20 @@ FFE9..FFEC ; Math # Sm [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS A
105A..105D ; Alphabetic # Lo [4] MYANMAR LETTER MON NGA..MYANMAR LETTER MON BBE
105E..1060 ; Alphabetic # Mn [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA
1061 ; Alphabetic # Lo MYANMAR LETTER SGAW KAREN SHA
-1062 ; Alphabetic # Mc MYANMAR VOWEL SIGN SGAW KAREN EU
+1062..1064 ; Alphabetic # Mc [3] MYANMAR VOWEL SIGN SGAW KAREN EU..MYANMAR TONE MARK SGAW KAREN KE PHO
1065..1066 ; Alphabetic # Lo [2] MYANMAR LETTER WESTERN PWO KAREN THA..MYANMAR LETTER WESTERN PWO KAREN PWA
-1067..1068 ; Alphabetic # Mc [2] MYANMAR VOWEL SIGN WESTERN PWO KAREN EU..MYANMAR VOWEL SIGN WESTERN PWO KAREN UE
+1067..106D ; Alphabetic # Mc [7] MYANMAR VOWEL SIGN WESTERN PWO KAREN EU..MYANMAR SIGN WESTERN PWO KAREN TONE-5
106E..1070 ; Alphabetic # Lo [3] MYANMAR LETTER EASTERN PWO KAREN NNA..MYANMAR LETTER EASTERN PWO KAREN GHWA
1071..1074 ; Alphabetic # Mn [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE
1075..1081 ; Alphabetic # Lo [13] MYANMAR LETTER SHAN KA..MYANMAR LETTER SHAN HA
1082 ; Alphabetic # Mn MYANMAR CONSONANT SIGN SHAN MEDIAL WA
1083..1084 ; Alphabetic # Mc [2] MYANMAR VOWEL SIGN SHAN AA..MYANMAR VOWEL SIGN SHAN E
1085..1086 ; Alphabetic # Mn [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y
+1087..108C ; Alphabetic # Mc [6] MYANMAR SIGN SHAN TONE-2..MYANMAR SIGN SHAN COUNCIL TONE-3
+108D ; Alphabetic # Mn MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE
108E ; Alphabetic # Lo MYANMAR LETTER RUMAI PALAUNG FA
-109C ; Alphabetic # Mc MYANMAR VOWEL SIGN AITON A
+108F ; Alphabetic # Mc MYANMAR SIGN RUMAI PALAUNG TONE-5
+109A..109C ; Alphabetic # Mc [3] MYANMAR SIGN KHAMTI TONE-1..MYANMAR VOWEL SIGN AITON A
109D ; Alphabetic # Mn MYANMAR VOWEL SIGN AITON AI
10A0..10C5 ; Alphabetic # L& [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE
10C7 ; Alphabetic # L& GEORGIAN CAPITAL LETTER YN
@@ -607,7 +604,6 @@ FFE9..FFEC ; Math # Sm [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS A
12D8..1310 ; Alphabetic # Lo [57] ETHIOPIC SYLLABLE ZA..ETHIOPIC SYLLABLE GWA
1312..1315 ; Alphabetic # Lo [4] ETHIOPIC SYLLABLE GWI..ETHIOPIC SYLLABLE GWE
1318..135A ; Alphabetic # Lo [67] ETHIOPIC SYLLABLE GGA..ETHIOPIC SYLLABLE FYA
-135F ; Alphabetic # Mn ETHIOPIC COMBINING GEMINATION MARK
1380..138F ; Alphabetic # Lo [16] ETHIOPIC SYLLABLE SEBATBEIT MWA..ETHIOPIC SYLLABLE PWE
13A0..13F5 ; Alphabetic # L& [86] CHEROKEE LETTER A..CHEROKEE LETTER MV
13F8..13FD ; Alphabetic # L& [6] CHEROKEE SMALL LETTER YE..CHEROKEE SMALL LETTER MV
@@ -703,6 +699,7 @@ FFE9..FFEC ; Math # Sm [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS A
1C24..1C2B ; Alphabetic # Mc [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU
1C2C..1C33 ; Alphabetic # Mn [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T
1C34..1C35 ; Alphabetic # Mc [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG
+1C36 ; Alphabetic # Mn LEPCHA SIGN RAN
1C4D..1C4F ; Alphabetic # Lo [3] LEPCHA LETTER TTA..LEPCHA LETTER DDA
1C5A..1C77 ; Alphabetic # Lo [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH
1C78..1C7D ; Alphabetic # Lm [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD
@@ -710,9 +707,9 @@ FFE9..FFEC ; Math # Sm [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS A
1C90..1CBA ; Alphabetic # L& [43] GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN
1CBD..1CBF ; Alphabetic # L& [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN
1CE9..1CEC ; Alphabetic # Lo [4] VEDIC SIGN ANUSVARA ANTARGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL
-1CEE..1CF1 ; Alphabetic # Lo [4] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ANUSVARA UBHAYATO MUKHA
-1CF2..1CF3 ; Alphabetic # Mc [2] VEDIC SIGN ARDHAVISARGA..VEDIC SIGN ROTATED ARDHAVISARGA
+1CEE..1CF3 ; Alphabetic # Lo [6] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ROTATED ARDHAVISARGA
1CF5..1CF6 ; Alphabetic # Lo [2] VEDIC SIGN JIHVAMULIYA..VEDIC SIGN UPADHMANIYA
+1CFA ; Alphabetic # Lo VEDIC SIGN DOUBLE ANUSVARA ANTARGOMUKHA
1D00..1D2B ; Alphabetic # L& [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL
1D2C..1D6A ; Alphabetic # Lm [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI
1D6B..1D77 ; Alphabetic # L& [13] LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G
@@ -829,13 +826,16 @@ A771..A787 ; Alphabetic # L& [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER
A788 ; Alphabetic # Lm MODIFIER LETTER LOW CIRCUMFLEX ACCENT
A78B..A78E ; Alphabetic # L& [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
A78F ; Alphabetic # Lo LATIN LETTER SINOLOGICAL DOT
-A790..A7B9 ; Alphabetic # L& [42] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER U WITH STROKE
+A790..A7BF ; Alphabetic # L& [48] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER GLOTTAL U
+A7C2..A7C6 ; Alphabetic # L& [5] LATIN CAPITAL LETTER ANGLICANA W..LATIN CAPITAL LETTER Z WITH PALATAL HOOK
A7F7 ; Alphabetic # Lo LATIN EPIGRAPHIC LETTER SIDEWAYS I
A7F8..A7F9 ; Alphabetic # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
A7FA ; Alphabetic # L& LATIN LETTER SMALL CAPITAL TURNED M
A7FB..A801 ; Alphabetic # Lo [7] LATIN EPIGRAPHIC LETTER REVERSED F..SYLOTI NAGRI LETTER I
+A802 ; Alphabetic # Mn SYLOTI NAGRI SIGN DVISVARA
A803..A805 ; Alphabetic # Lo [3] SYLOTI NAGRI LETTER U..SYLOTI NAGRI LETTER O
A807..A80A ; Alphabetic # Lo [4] SYLOTI NAGRI LETTER KO..SYLOTI NAGRI LETTER GHO
+A80B ; Alphabetic # Mn SYLOTI NAGRI SIGN ANUSVARA
A80C..A822 ; Alphabetic # Lo [23] SYLOTI NAGRI LETTER CO..SYLOTI NAGRI LETTER HO
A823..A824 ; Alphabetic # Mc [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I
A825..A826 ; Alphabetic # Mn [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E
@@ -848,6 +848,7 @@ A8C5 ; Alphabetic # Mn SAURASHTRA SIGN CANDRABINDU
A8F2..A8F7 ; Alphabetic # Lo [6] DEVANAGARI SIGN SPACING CANDRABINDU..DEVANAGARI SIGN CANDRABINDU AVAGRAHA
A8FB ; Alphabetic # Lo DEVANAGARI HEADSTROKE
A8FD..A8FE ; Alphabetic # Lo [2] DEVANAGARI JAIN OM..DEVANAGARI LETTER AY
+A8FF ; Alphabetic # Mn DEVANAGARI VOWEL SIGN AY
A90A..A925 ; Alphabetic # Lo [28] KAYAH LI LETTER KA..KAYAH LI LETTER OO
A926..A92A ; Alphabetic # Mn [5] KAYAH LI VOWEL UE..KAYAH LI VOWEL O
A930..A946 ; Alphabetic # Lo [23] REJANG LETTER KA..REJANG LETTER A
@@ -860,10 +861,11 @@ A984..A9B2 ; Alphabetic # Lo [47] JAVANESE LETTER A..JAVANESE LETTER HA
A9B4..A9B5 ; Alphabetic # Mc [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG
A9B6..A9B9 ; Alphabetic # Mn [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT
A9BA..A9BB ; Alphabetic # Mc [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE
-A9BC ; Alphabetic # Mn JAVANESE VOWEL SIGN PEPET
-A9BD..A9BF ; Alphabetic # Mc [3] JAVANESE CONSONANT SIGN KERET..JAVANESE CONSONANT SIGN CAKRA
+A9BC..A9BD ; Alphabetic # Mn [2] JAVANESE VOWEL SIGN PEPET..JAVANESE CONSONANT SIGN KERET
+A9BE..A9BF ; Alphabetic # Mc [2] JAVANESE CONSONANT SIGN PENGKAL..JAVANESE CONSONANT SIGN CAKRA
A9CF ; Alphabetic # Lm JAVANESE PANGRANGKEP
A9E0..A9E4 ; Alphabetic # Lo [5] MYANMAR LETTER SHAN GHA..MYANMAR LETTER SHAN BHA
+A9E5 ; Alphabetic # Mn MYANMAR SIGN SHAN SAW
A9E6 ; Alphabetic # Lm MYANMAR MODIFIER LETTER SHAN REDUPLICATION
A9E7..A9EF ; Alphabetic # Lo [9] MYANMAR LETTER TAI LAING NYA..MYANMAR LETTER TAI LAING NNA
A9FA..A9FE ; Alphabetic # Lo [5] MYANMAR LETTER TAI LAING LLA..MYANMAR LETTER TAI LAING BHA
@@ -882,6 +884,9 @@ AA60..AA6F ; Alphabetic # Lo [16] MYANMAR LETTER KHAMTI GA..MYANMAR LETTER K
AA70 ; Alphabetic # Lm MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION
AA71..AA76 ; Alphabetic # Lo [6] MYANMAR LETTER KHAMTI XA..MYANMAR LOGOGRAM KHAMTI HM
AA7A ; Alphabetic # Lo MYANMAR LETTER AITON RA
+AA7B ; Alphabetic # Mc MYANMAR SIGN PAO KAREN TONE
+AA7C ; Alphabetic # Mn MYANMAR SIGN TAI LAING TONE-2
+AA7D ; Alphabetic # Mc MYANMAR SIGN TAI LAING TONE-5
AA7E..AAAF ; Alphabetic # Lo [50] MYANMAR LETTER SHWE PALAUNG CHA..TAI VIET LETTER HIGH O
AAB0 ; Alphabetic # Mn TAI VIET MAI KANG
AAB1 ; Alphabetic # Lo TAI VIET VOWEL AA
@@ -908,7 +913,7 @@ AB20..AB26 ; Alphabetic # Lo [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE
AB28..AB2E ; Alphabetic # Lo [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO
AB30..AB5A ; Alphabetic # L& [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
AB5C..AB5F ; Alphabetic # Lm [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
-AB60..AB65 ; Alphabetic # L& [6] LATIN SMALL LETTER SAKHA YAT..GREEK LETTER SMALL CAPITAL OMEGA
+AB60..AB67 ; Alphabetic # L& [8] LATIN SMALL LETTER SAKHA YAT..LATIN SMALL LETTER TS DIGRAPH WITH RETROFLEX HOOK
AB70..ABBF ; Alphabetic # L& [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETTER YA
ABC0..ABE2 ; Alphabetic # Lo [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM
ABE3..ABE4 ; Alphabetic # Mc [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP
@@ -1016,6 +1021,7 @@ FFDA..FFDC ; Alphabetic # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANG
10F00..10F1C ; Alphabetic # Lo [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL
10F27 ; Alphabetic # Lo OLD SOGDIAN LIGATURE AYIN-DALETH
10F30..10F45 ; Alphabetic # Lo [22] SOGDIAN LETTER ALEPH..SOGDIAN INDEPENDENT SHIN
+10FE0..10FF6 ; Alphabetic # Lo [23] ELYMAIC LETTER ALEPH..ELYMAIC LIGATURE ZAYIN-YODH
11000 ; Alphabetic # Mc BRAHMI SIGN CANDRABINDU
11001 ; Alphabetic # Mn BRAHMI SIGN ANUSVARA
11002 ; Alphabetic # Mc BRAHMI SIGN VISARGA
@@ -1087,6 +1093,7 @@ FFDA..FFDC ; Alphabetic # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANG
11443..11444 ; Alphabetic # Mn [2] NEWA SIGN CANDRABINDU..NEWA SIGN ANUSVARA
11445 ; Alphabetic # Mc NEWA SIGN VISARGA
11447..1144A ; Alphabetic # Lo [4] NEWA SIGN AVAGRAHA..NEWA SIDDHI
+1145F ; Alphabetic # Lo NEWA LETTER VEDIC ANUSVARA
11480..114AF ; Alphabetic # Lo [48] TIRHUTA ANJI..TIRHUTA LETTER HA
114B0..114B2 ; Alphabetic # Mc [3] TIRHUTA VOWEL SIGN AA..TIRHUTA VOWEL SIGN II
114B3..114B8 ; Alphabetic # Mn [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL
@@ -1119,6 +1126,7 @@ FFDA..FFDC ; Alphabetic # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANG
116AD ; Alphabetic # Mn TAKRI VOWEL SIGN AA
116AE..116AF ; Alphabetic # Mc [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II
116B0..116B5 ; Alphabetic # Mn [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
+116B8 ; Alphabetic # Lo TAKRI LETTER ARCHAIC KHA
11700..1171A ; Alphabetic # Lo [27] AHOM LETTER KA..AHOM LETTER ALTERNATE BA
1171D..1171F ; Alphabetic # Mn [3] AHOM CONSONANT SIGN MEDIAL LA..AHOM CONSONANT SIGN MEDIAL LIGATING RA
11720..11721 ; Alphabetic # Mc [2] AHOM VOWEL SIGN A..AHOM VOWEL SIGN AA
@@ -1131,6 +1139,15 @@ FFDA..FFDC ; Alphabetic # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANG
11838 ; Alphabetic # Mc DOGRA SIGN VISARGA
118A0..118DF ; Alphabetic # L& [64] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI SMALL LETTER VIYO
118FF ; Alphabetic # Lo WARANG CITI OM
+119A0..119A7 ; Alphabetic # Lo [8] NANDINAGARI LETTER A..NANDINAGARI LETTER VOCALIC RR
+119AA..119D0 ; Alphabetic # Lo [39] NANDINAGARI LETTER E..NANDINAGARI LETTER RRA
+119D1..119D3 ; Alphabetic # Mc [3] NANDINAGARI VOWEL SIGN AA..NANDINAGARI VOWEL SIGN II
+119D4..119D7 ; Alphabetic # Mn [4] NANDINAGARI VOWEL SIGN U..NANDINAGARI VOWEL SIGN VOCALIC RR
+119DA..119DB ; Alphabetic # Mn [2] NANDINAGARI VOWEL SIGN E..NANDINAGARI VOWEL SIGN AI
+119DC..119DF ; Alphabetic # Mc [4] NANDINAGARI VOWEL SIGN O..NANDINAGARI SIGN VISARGA
+119E1 ; Alphabetic # Lo NANDINAGARI SIGN AVAGRAHA
+119E3 ; Alphabetic # Lo NANDINAGARI HEADSTROKE
+119E4 ; Alphabetic # Mc NANDINAGARI VOWEL SIGN PRISHTHAMATRA E
11A00 ; Alphabetic # Lo ZANABAZAR SQUARE LETTER A
11A01..11A0A ; Alphabetic # Mn [10] ZANABAZAR SQUARE VOWEL SIGN I..ZANABAZAR SQUARE VOWEL LENGTH MARK
11A0B..11A32 ; Alphabetic # Lo [40] ZANABAZAR SQUARE LETTER KA..ZANABAZAR SQUARE LETTER KSSA
@@ -1142,8 +1159,7 @@ FFDA..FFDC ; Alphabetic # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANG
11A51..11A56 ; Alphabetic # Mn [6] SOYOMBO VOWEL SIGN I..SOYOMBO VOWEL SIGN OE
11A57..11A58 ; Alphabetic # Mc [2] SOYOMBO VOWEL SIGN AI..SOYOMBO VOWEL SIGN AU
11A59..11A5B ; Alphabetic # Mn [3] SOYOMBO VOWEL SIGN VOCALIC R..SOYOMBO VOWEL LENGTH MARK
-11A5C..11A83 ; Alphabetic # Lo [40] SOYOMBO LETTER KA..SOYOMBO LETTER KSSA
-11A86..11A89 ; Alphabetic # Lo [4] SOYOMBO CLUSTER-INITIAL LETTER RA..SOYOMBO CLUSTER-INITIAL LETTER SA
+11A5C..11A89 ; Alphabetic # Lo [46] SOYOMBO LETTER KA..SOYOMBO CLUSTER-INITIAL LETTER SA
11A8A..11A96 ; Alphabetic # Mn [13] SOYOMBO FINAL CONSONANT SIGN G..SOYOMBO SIGN ANUSVARA
11A97 ; Alphabetic # Mc SOYOMBO SIGN VISARGA
11A9D ; Alphabetic # Lo SOYOMBO MARK PLUTA
@@ -1194,19 +1210,23 @@ FFDA..FFDC ; Alphabetic # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANG
16A40..16A5E ; Alphabetic # Lo [31] MRO LETTER TA..MRO LETTER TEK
16AD0..16AED ; Alphabetic # Lo [30] BASSA VAH LETTER ENNI..BASSA VAH LETTER I
16B00..16B2F ; Alphabetic # Lo [48] PAHAWH HMONG VOWEL KEEB..PAHAWH HMONG CONSONANT CAU
-16B30..16B36 ; Alphabetic # Mn [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
16B40..16B43 ; Alphabetic # Lm [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM
16B63..16B77 ; Alphabetic # Lo [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS
16B7D..16B8F ; Alphabetic # Lo [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ
16E40..16E7F ; Alphabetic # L& [64] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN SMALL LETTER Y
-16F00..16F44 ; Alphabetic # Lo [69] MIAO LETTER PA..MIAO LETTER HHA
+16F00..16F4A ; Alphabetic # Lo [75] MIAO LETTER PA..MIAO LETTER RTE
+16F4F ; Alphabetic # Mn MIAO SIGN CONSONANT MODIFIER BAR
16F50 ; Alphabetic # Lo MIAO LETTER NASALIZATION
-16F51..16F7E ; Alphabetic # Mc [46] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN NG
+16F51..16F87 ; Alphabetic # Mc [55] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN UI
+16F8F..16F92 ; Alphabetic # Mn [4] MIAO TONE RIGHT..MIAO TONE BELOW
16F93..16F9F ; Alphabetic # Lm [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
16FE0..16FE1 ; Alphabetic # Lm [2] TANGUT ITERATION MARK..NUSHU ITERATION MARK
-17000..187F1 ; Alphabetic # Lo [6130] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F1
+16FE3 ; Alphabetic # Lm OLD CHINESE ITERATION MARK
+17000..187F7 ; Alphabetic # Lo [6136] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F7
18800..18AF2 ; Alphabetic # Lo [755] TANGUT COMPONENT-001..TANGUT COMPONENT-755
1B000..1B11E ; Alphabetic # Lo [287] KATAKANA LETTER ARCHAIC E..HENTAIGANA LETTER N-MU-MO-2
+1B150..1B152 ; Alphabetic # Lo [3] HIRAGANA LETTER SMALL WI..HIRAGANA LETTER SMALL WO
+1B164..1B167 ; Alphabetic # Lo [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N
1B170..1B2FB ; Alphabetic # Lo [396] NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB
1BC00..1BC6A ; Alphabetic # Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
1BC70..1BC7C ; Alphabetic # Lo [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK
@@ -1248,9 +1268,14 @@ FFDA..FFDC ; Alphabetic # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANG
1E01B..1E021 ; Alphabetic # Mn [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
1E023..1E024 ; Alphabetic # Mn [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
1E026..1E02A ; Alphabetic # Mn [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
+1E100..1E12C ; Alphabetic # Lo [45] NYIAKENG PUACHUE HMONG LETTER MA..NYIAKENG PUACHUE HMONG LETTER W
+1E137..1E13D ; Alphabetic # Lm [7] NYIAKENG PUACHUE HMONG SIGN FOR PERSON..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER
+1E14E ; Alphabetic # Lo NYIAKENG PUACHUE HMONG LOGOGRAM NYAJ
+1E2C0..1E2EB ; Alphabetic # Lo [44] WANCHO LETTER AA..WANCHO LETTER YIH
1E800..1E8C4 ; Alphabetic # Lo [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON
1E900..1E943 ; Alphabetic # L& [68] ADLAM CAPITAL LETTER ALIF..ADLAM SMALL LETTER SHA
1E947 ; Alphabetic # Mn ADLAM HAMZA
+1E94B ; Alphabetic # Lm ADLAM NASALIZATION MARK
1EE00..1EE03 ; Alphabetic # Lo [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
1EE05..1EE1F ; Alphabetic # Lo [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
1EE21..1EE22 ; Alphabetic # Lo [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM
@@ -1294,7 +1319,7 @@ FFDA..FFDC ; Alphabetic # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANG
2CEB0..2EBE0 ; Alphabetic # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
2F800..2FA1D ; Alphabetic # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
-# Total code points: 126989
+# Total code points: 127256
# ================================================
@@ -1916,11 +1941,15 @@ A7AF ; Lowercase # L& LATIN LETTER SMALL CAPITAL Q
A7B5 ; Lowercase # L& LATIN SMALL LETTER BETA
A7B7 ; Lowercase # L& LATIN SMALL LETTER OMEGA
A7B9 ; Lowercase # L& LATIN SMALL LETTER U WITH STROKE
+A7BB ; Lowercase # L& LATIN SMALL LETTER GLOTTAL A
+A7BD ; Lowercase # L& LATIN SMALL LETTER GLOTTAL I
+A7BF ; Lowercase # L& LATIN SMALL LETTER GLOTTAL U
+A7C3 ; Lowercase # L& LATIN SMALL LETTER ANGLICANA W
A7F8..A7F9 ; Lowercase # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
A7FA ; Lowercase # L& LATIN LETTER SMALL CAPITAL TURNED M
AB30..AB5A ; Lowercase # L& [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
AB5C..AB5F ; Lowercase # Lm [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
-AB60..AB65 ; Lowercase # L& [6] LATIN SMALL LETTER SAKHA YAT..GREEK LETTER SMALL CAPITAL OMEGA
+AB60..AB67 ; Lowercase # L& [8] LATIN SMALL LETTER SAKHA YAT..LATIN SMALL LETTER TS DIGRAPH WITH RETROFLEX HOOK
AB70..ABBF ; Lowercase # L& [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETTER YA
FB00..FB06 ; Lowercase # L& [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
FB13..FB17 ; Lowercase # L& [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH
@@ -1960,7 +1989,7 @@ FF41..FF5A ; Lowercase # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH L
1D7CB ; Lowercase # L& MATHEMATICAL BOLD SMALL DIGAMMA
1E922..1E943 ; Lowercase # L& [34] ADLAM SMALL LETTER ALIF..ADLAM SMALL LETTER SHA
-# Total code points: 2334
+# Total code points: 2340
# ================================================
@@ -2562,6 +2591,11 @@ A7AA..A7AE ; Uppercase # L& [5] LATIN CAPITAL LETTER H WITH HOOK..LATIN CAP
A7B0..A7B4 ; Uppercase # L& [5] LATIN CAPITAL LETTER TURNED K..LATIN CAPITAL LETTER BETA
A7B6 ; Uppercase # L& LATIN CAPITAL LETTER OMEGA
A7B8 ; Uppercase # L& LATIN CAPITAL LETTER U WITH STROKE
+A7BA ; Uppercase # L& LATIN CAPITAL LETTER GLOTTAL A
+A7BC ; Uppercase # L& LATIN CAPITAL LETTER GLOTTAL I
+A7BE ; Uppercase # L& LATIN CAPITAL LETTER GLOTTAL U
+A7C2 ; Uppercase # L& LATIN CAPITAL LETTER ANGLICANA W
+A7C4..A7C6 ; Uppercase # L& [3] LATIN CAPITAL LETTER C WITH PALATAL HOOK..LATIN CAPITAL LETTER Z WITH PALATAL HOOK
FF21..FF3A ; Uppercase # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z
10400..10427 ; Uppercase # L& [40] DESERET CAPITAL LETTER LONG I..DESERET CAPITAL LETTER EW
104B0..104D3 ; Uppercase # L& [36] OSAGE CAPITAL LETTER A..OSAGE CAPITAL LETTER ZHA
@@ -2604,7 +2638,7 @@ FF21..FF3A ; Uppercase # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH
1F150..1F169 ; Uppercase # So [26] NEGATIVE CIRCLED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
1F170..1F189 ; Uppercase # So [26] NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED LATIN CAPITAL LETTER Z
-# Total code points: 1901
+# Total code points: 1908
# ================================================
@@ -2713,12 +2747,13 @@ A722..A76F ; Cased # L& [78] LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF..LATIN
A770 ; Cased # Lm MODIFIER LETTER US
A771..A787 ; Cased # L& [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T
A78B..A78E ; Cased # L& [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
-A790..A7B9 ; Cased # L& [42] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER U WITH STROKE
+A790..A7BF ; Cased # L& [48] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER GLOTTAL U
+A7C2..A7C6 ; Cased # L& [5] LATIN CAPITAL LETTER ANGLICANA W..LATIN CAPITAL LETTER Z WITH PALATAL HOOK
A7F8..A7F9 ; Cased # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
A7FA ; Cased # L& LATIN LETTER SMALL CAPITAL TURNED M
AB30..AB5A ; Cased # L& [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
AB5C..AB5F ; Cased # Lm [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
-AB60..AB65 ; Cased # L& [6] LATIN SMALL LETTER SAKHA YAT..GREEK LETTER SMALL CAPITAL OMEGA
+AB60..AB67 ; Cased # L& [8] LATIN SMALL LETTER SAKHA YAT..LATIN SMALL LETTER TS DIGRAPH WITH RETROFLEX HOOK
AB70..ABBF ; Cased # L& [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETTER YA
FB00..FB06 ; Cased # L& [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
FB13..FB17 ; Cased # L& [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH
@@ -2766,7 +2801,7 @@ FF41..FF5A ; Cased # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN
1F150..1F169 ; Cased # So [26] NEGATIVE CIRCLED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
1F170..1F189 ; Cased # So [26] NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED LATIN CAPITAL LETTER Z
-# Total code points: 4266
+# Total code points: 4279
# ================================================
@@ -2907,8 +2942,7 @@ FF41..FF5A ; Cased # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN
0E46 ; Case_Ignorable # Lm THAI CHARACTER MAIYAMOK
0E47..0E4E ; Case_Ignorable # Mn [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN
0EB1 ; Case_Ignorable # Mn LAO VOWEL SIGN MAI KAN
-0EB4..0EB9 ; Case_Ignorable # Mn [6] LAO VOWEL SIGN I..LAO VOWEL SIGN UU
-0EBB..0EBC ; Case_Ignorable # Mn [2] LAO VOWEL SIGN MAI KON..LAO SEMIVOWEL SIGN LO
+0EB4..0EBC ; Case_Ignorable # Mn [9] LAO VOWEL SIGN I..LAO SEMIVOWEL SIGN LO
0EC6 ; Case_Ignorable # Lm LAO KO LA
0EC8..0ECD ; Case_Ignorable # Mn [6] LAO TONE MAI EK..LAO NIGGAHITA
0F18..0F19 ; Case_Ignorable # Mn [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
@@ -3058,7 +3092,7 @@ A947..A951 ; Case_Ignorable # Mn [11] REJANG VOWEL SIGN I..REJANG CONSONANT
A980..A982 ; Case_Ignorable # Mn [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR
A9B3 ; Case_Ignorable # Mn JAVANESE SIGN CECAK TELU
A9B6..A9B9 ; Case_Ignorable # Mn [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT
-A9BC ; Case_Ignorable # Mn JAVANESE VOWEL SIGN PEPET
+A9BC..A9BD ; Case_Ignorable # Mn [2] JAVANESE VOWEL SIGN PEPET..JAVANESE CONSONANT SIGN KERET
A9CF ; Case_Ignorable # Lm JAVANESE PANGRANGKEP
A9E5 ; Case_Ignorable # Mn MYANMAR SIGN SHAN SAW
A9E6 ; Case_Ignorable # Lm MYANMAR MODIFIER LETTER SHAN REDUPLICATION
@@ -3160,6 +3194,9 @@ FFF9..FFFB ; Case_Ignorable # Cf [3] INTERLINEAR ANNOTATION ANCHOR..INTERLI
11727..1172B ; Case_Ignorable # Mn [5] AHOM VOWEL SIGN AW..AHOM SIGN KILLER
1182F..11837 ; Case_Ignorable # Mn [9] DOGRA VOWEL SIGN U..DOGRA SIGN ANUSVARA
11839..1183A ; Case_Ignorable # Mn [2] DOGRA SIGN VIRAMA..DOGRA SIGN NUKTA
+119D4..119D7 ; Case_Ignorable # Mn [4] NANDINAGARI VOWEL SIGN U..NANDINAGARI VOWEL SIGN VOCALIC RR
+119DA..119DB ; Case_Ignorable # Mn [2] NANDINAGARI VOWEL SIGN E..NANDINAGARI VOWEL SIGN AI
+119E0 ; Case_Ignorable # Mn NANDINAGARI SIGN VIRAMA
11A01..11A0A ; Case_Ignorable # Mn [10] ZANABAZAR SQUARE VOWEL SIGN I..ZANABAZAR SQUARE VOWEL LENGTH MARK
11A33..11A38 ; Case_Ignorable # Mn [6] ZANABAZAR SQUARE FINAL CONSONANT MARK..ZANABAZAR SQUARE SIGN ANUSVARA
11A3B..11A3E ; Case_Ignorable # Mn [4] ZANABAZAR SQUARE CLUSTER-FINAL LETTER YA..ZANABAZAR SQUARE CLUSTER-FINAL LETTER VA
@@ -3184,12 +3221,15 @@ FFF9..FFFB ; Case_Ignorable # Cf [3] INTERLINEAR ANNOTATION ANCHOR..INTERLI
11D95 ; Case_Ignorable # Mn GUNJALA GONDI SIGN ANUSVARA
11D97 ; Case_Ignorable # Mn GUNJALA GONDI VIRAMA
11EF3..11EF4 ; Case_Ignorable # Mn [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
+13430..13438 ; Case_Ignorable # Cf [9] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END SEGMENT
16AF0..16AF4 ; Case_Ignorable # Mn [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
16B30..16B36 ; Case_Ignorable # Mn [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
16B40..16B43 ; Case_Ignorable # Lm [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM
+16F4F ; Case_Ignorable # Mn MIAO SIGN CONSONANT MODIFIER BAR
16F8F..16F92 ; Case_Ignorable # Mn [4] MIAO TONE RIGHT..MIAO TONE BELOW
16F93..16F9F ; Case_Ignorable # Lm [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
16FE0..16FE1 ; Case_Ignorable # Lm [2] TANGUT ITERATION MARK..NUSHU ITERATION MARK
+16FE3 ; Case_Ignorable # Lm OLD CHINESE ITERATION MARK
1BC9D..1BC9E ; Case_Ignorable # Mn [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
1BCA0..1BCA3 ; Case_Ignorable # Cf [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
1D167..1D169 ; Case_Ignorable # Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
@@ -3209,14 +3249,18 @@ FFF9..FFFB ; Case_Ignorable # Cf [3] INTERLINEAR ANNOTATION ANCHOR..INTERLI
1E01B..1E021 ; Case_Ignorable # Mn [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
1E023..1E024 ; Case_Ignorable # Mn [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
1E026..1E02A ; Case_Ignorable # Mn [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
+1E130..1E136 ; Case_Ignorable # Mn [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D
+1E137..1E13D ; Case_Ignorable # Lm [7] NYIAKENG PUACHUE HMONG SIGN FOR PERSON..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER
+1E2EC..1E2EF ; Case_Ignorable # Mn [4] WANCHO TONE TUP..WANCHO TONE KOINI
1E8D0..1E8D6 ; Case_Ignorable # Mn [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
1E944..1E94A ; Case_Ignorable # Mn [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA
+1E94B ; Case_Ignorable # Lm ADLAM NASALIZATION MARK
1F3FB..1F3FF ; Case_Ignorable # Sk [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6
E0001 ; Case_Ignorable # Cf LANGUAGE TAG
E0020..E007F ; Case_Ignorable # Cf [96] TAG SPACE..CANCEL TAG
E0100..E01EF ; Case_Ignorable # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
-# Total code points: 2357
+# Total code points: 2396
# ================================================
@@ -3812,6 +3856,11 @@ A7AA..A7AE ; Changes_When_Lowercased # L& [5] LATIN CAPITAL LETTER H WITH H
A7B0..A7B4 ; Changes_When_Lowercased # L& [5] LATIN CAPITAL LETTER TURNED K..LATIN CAPITAL LETTER BETA
A7B6 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER OMEGA
A7B8 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER U WITH STROKE
+A7BA ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER GLOTTAL A
+A7BC ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER GLOTTAL I
+A7BE ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER GLOTTAL U
+A7C2 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER ANGLICANA W
+A7C4..A7C6 ; Changes_When_Lowercased # L& [3] LATIN CAPITAL LETTER C WITH PALATAL HOOK..LATIN CAPITAL LETTER Z WITH PALATAL HOOK
FF21..FF3A ; Changes_When_Lowercased # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z
10400..10427 ; Changes_When_Lowercased # L& [40] DESERET CAPITAL LETTER LONG I..DESERET CAPITAL LETTER EW
104B0..104D3 ; Changes_When_Lowercased # L& [36] OSAGE CAPITAL LETTER A..OSAGE CAPITAL LETTER ZHA
@@ -3820,7 +3869,7 @@ FF21..FF3A ; Changes_When_Lowercased # L& [26] FULLWIDTH LATIN CAPITAL LETTE
16E40..16E5F ; Changes_When_Lowercased # L& [32] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN CAPITAL LETTER Y
1E900..1E921 ; Changes_When_Lowercased # L& [34] ADLAM CAPITAL LETTER ALIF..ADLAM CAPITAL LETTER SHA
-# Total code points: 1383
+# Total code points: 1390
# ================================================
@@ -3985,7 +4034,7 @@ FF21..FF3A ; Changes_When_Lowercased # L& [26] FULLWIDTH LATIN CAPITAL LETTE
0275 ; Changes_When_Uppercased # L& LATIN SMALL LETTER BARRED O
027D ; Changes_When_Uppercased # L& LATIN SMALL LETTER R WITH TAIL
0280 ; Changes_When_Uppercased # L& LATIN LETTER SMALL CAPITAL R
-0283 ; Changes_When_Uppercased # L& LATIN SMALL LETTER ESH
+0282..0283 ; Changes_When_Uppercased # L& [2] LATIN SMALL LETTER S WITH HOOK..LATIN SMALL LETTER ESH
0287..028C ; Changes_When_Uppercased # L& [6] LATIN SMALL LETTER TURNED T..LATIN SMALL LETTER TURNED V
0292 ; Changes_When_Uppercased # L& LATIN SMALL LETTER EZH
029D..029E ; Changes_When_Uppercased # L& [2] LATIN SMALL LETTER J WITH CROSSED-TAIL..LATIN SMALL LETTER TURNED K
@@ -4120,6 +4169,7 @@ FF21..FF3A ; Changes_When_Lowercased # L& [26] FULLWIDTH LATIN CAPITAL LETTE
1C80..1C88 ; Changes_When_Uppercased # L& [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK
1D79 ; Changes_When_Uppercased # L& LATIN SMALL LETTER INSULAR G
1D7D ; Changes_When_Uppercased # L& LATIN SMALL LETTER P WITH STROKE
+1D8E ; Changes_When_Uppercased # L& LATIN SMALL LETTER Z WITH PALATAL HOOK
1E01 ; Changes_When_Uppercased # L& LATIN SMALL LETTER A WITH RING BELOW
1E03 ; Changes_When_Uppercased # L& LATIN SMALL LETTER B WITH DOT ABOVE
1E05 ; Changes_When_Uppercased # L& LATIN SMALL LETTER B WITH DOT BELOW
@@ -4415,7 +4465,7 @@ A785 ; Changes_When_Uppercased # L& LATIN SMALL LETTER INSULAR S
A787 ; Changes_When_Uppercased # L& LATIN SMALL LETTER INSULAR T
A78C ; Changes_When_Uppercased # L& LATIN SMALL LETTER SALTILLO
A791 ; Changes_When_Uppercased # L& LATIN SMALL LETTER N WITH DESCENDER
-A793 ; Changes_When_Uppercased # L& LATIN SMALL LETTER C WITH BAR
+A793..A794 ; Changes_When_Uppercased # L& [2] LATIN SMALL LETTER C WITH BAR..LATIN SMALL LETTER C WITH PALATAL HOOK
A797 ; Changes_When_Uppercased # L& LATIN SMALL LETTER B WITH FLOURISH
A799 ; Changes_When_Uppercased # L& LATIN SMALL LETTER F WITH STROKE
A79B ; Changes_When_Uppercased # L& LATIN SMALL LETTER VOLAPUK AE
@@ -4429,6 +4479,10 @@ A7A9 ; Changes_When_Uppercased # L& LATIN SMALL LETTER S WITH OBL
A7B5 ; Changes_When_Uppercased # L& LATIN SMALL LETTER BETA
A7B7 ; Changes_When_Uppercased # L& LATIN SMALL LETTER OMEGA
A7B9 ; Changes_When_Uppercased # L& LATIN SMALL LETTER U WITH STROKE
+A7BB ; Changes_When_Uppercased # L& LATIN SMALL LETTER GLOTTAL A
+A7BD ; Changes_When_Uppercased # L& LATIN SMALL LETTER GLOTTAL I
+A7BF ; Changes_When_Uppercased # L& LATIN SMALL LETTER GLOTTAL U
+A7C3 ; Changes_When_Uppercased # L& LATIN SMALL LETTER ANGLICANA W
AB53 ; Changes_When_Uppercased # L& LATIN SMALL LETTER CHI
AB70..ABBF ; Changes_When_Uppercased # L& [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETTER YA
FB00..FB06 ; Changes_When_Uppercased # L& [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
@@ -4441,7 +4495,7 @@ FF41..FF5A ; Changes_When_Uppercased # L& [26] FULLWIDTH LATIN SMALL LETTER
16E60..16E7F ; Changes_When_Uppercased # L& [32] MEDEFAIDRIN SMALL LETTER M..MEDEFAIDRIN SMALL LETTER Y
1E922..1E943 ; Changes_When_Uppercased # L& [34] ADLAM SMALL LETTER ALIF..ADLAM SMALL LETTER SHA
-# Total code points: 1475
+# Total code points: 1482
# ================================================
@@ -4607,7 +4661,7 @@ FF41..FF5A ; Changes_When_Uppercased # L& [26] FULLWIDTH LATIN SMALL LETTER
0275 ; Changes_When_Titlecased # L& LATIN SMALL LETTER BARRED O
027D ; Changes_When_Titlecased # L& LATIN SMALL LETTER R WITH TAIL
0280 ; Changes_When_Titlecased # L& LATIN LETTER SMALL CAPITAL R
-0283 ; Changes_When_Titlecased # L& LATIN SMALL LETTER ESH
+0282..0283 ; Changes_When_Titlecased # L& [2] LATIN SMALL LETTER S WITH HOOK..LATIN SMALL LETTER ESH
0287..028C ; Changes_When_Titlecased # L& [6] LATIN SMALL LETTER TURNED T..LATIN SMALL LETTER TURNED V
0292 ; Changes_When_Titlecased # L& LATIN SMALL LETTER EZH
029D..029E ; Changes_When_Titlecased # L& [2] LATIN SMALL LETTER J WITH CROSSED-TAIL..LATIN SMALL LETTER TURNED K
@@ -4740,6 +4794,7 @@ FF41..FF5A ; Changes_When_Uppercased # L& [26] FULLWIDTH LATIN SMALL LETTER
1C80..1C88 ; Changes_When_Titlecased # L& [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK
1D79 ; Changes_When_Titlecased # L& LATIN SMALL LETTER INSULAR G
1D7D ; Changes_When_Titlecased # L& LATIN SMALL LETTER P WITH STROKE
+1D8E ; Changes_When_Titlecased # L& LATIN SMALL LETTER Z WITH PALATAL HOOK
1E01 ; Changes_When_Titlecased # L& LATIN SMALL LETTER A WITH RING BELOW
1E03 ; Changes_When_Titlecased # L& LATIN SMALL LETTER B WITH DOT ABOVE
1E05 ; Changes_When_Titlecased # L& LATIN SMALL LETTER B WITH DOT BELOW
@@ -5035,7 +5090,7 @@ A785 ; Changes_When_Titlecased # L& LATIN SMALL LETTER INSULAR S
A787 ; Changes_When_Titlecased # L& LATIN SMALL LETTER INSULAR T
A78C ; Changes_When_Titlecased # L& LATIN SMALL LETTER SALTILLO
A791 ; Changes_When_Titlecased # L& LATIN SMALL LETTER N WITH DESCENDER
-A793 ; Changes_When_Titlecased # L& LATIN SMALL LETTER C WITH BAR
+A793..A794 ; Changes_When_Titlecased # L& [2] LATIN SMALL LETTER C WITH BAR..LATIN SMALL LETTER C WITH PALATAL HOOK
A797 ; Changes_When_Titlecased # L& LATIN SMALL LETTER B WITH FLOURISH
A799 ; Changes_When_Titlecased # L& LATIN SMALL LETTER F WITH STROKE
A79B ; Changes_When_Titlecased # L& LATIN SMALL LETTER VOLAPUK AE
@@ -5049,6 +5104,10 @@ A7A9 ; Changes_When_Titlecased # L& LATIN SMALL LETTER S WITH OBL
A7B5 ; Changes_When_Titlecased # L& LATIN SMALL LETTER BETA
A7B7 ; Changes_When_Titlecased # L& LATIN SMALL LETTER OMEGA
A7B9 ; Changes_When_Titlecased # L& LATIN SMALL LETTER U WITH STROKE
+A7BB ; Changes_When_Titlecased # L& LATIN SMALL LETTER GLOTTAL A
+A7BD ; Changes_When_Titlecased # L& LATIN SMALL LETTER GLOTTAL I
+A7BF ; Changes_When_Titlecased # L& LATIN SMALL LETTER GLOTTAL U
+A7C3 ; Changes_When_Titlecased # L& LATIN SMALL LETTER ANGLICANA W
AB53 ; Changes_When_Titlecased # L& LATIN SMALL LETTER CHI
AB70..ABBF ; Changes_When_Titlecased # L& [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETTER YA
FB00..FB06 ; Changes_When_Titlecased # L& [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
@@ -5061,7 +5120,7 @@ FF41..FF5A ; Changes_When_Titlecased # L& [26] FULLWIDTH LATIN SMALL LETTER
16E60..16E7F ; Changes_When_Titlecased # L& [32] MEDEFAIDRIN SMALL LETTER M..MEDEFAIDRIN SMALL LETTER Y
1E922..1E943 ; Changes_When_Titlecased # L& [34] ADLAM SMALL LETTER ALIF..ADLAM SMALL LETTER SHA
-# Total code points: 1402
+# Total code points: 1409
# ================================================
@@ -5667,6 +5726,11 @@ A7AA..A7AE ; Changes_When_Casefolded # L& [5] LATIN CAPITAL LETTER H WITH H
A7B0..A7B4 ; Changes_When_Casefolded # L& [5] LATIN CAPITAL LETTER TURNED K..LATIN CAPITAL LETTER BETA
A7B6 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER OMEGA
A7B8 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER U WITH STROKE
+A7BA ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER GLOTTAL A
+A7BC ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER GLOTTAL I
+A7BE ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER GLOTTAL U
+A7C2 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER ANGLICANA W
+A7C4..A7C6 ; Changes_When_Casefolded # L& [3] LATIN CAPITAL LETTER C WITH PALATAL HOOK..LATIN CAPITAL LETTER Z WITH PALATAL HOOK
AB70..ABBF ; Changes_When_Casefolded # L& [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETTER YA
FB00..FB06 ; Changes_When_Casefolded # L& [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
FB13..FB17 ; Changes_When_Casefolded # L& [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH
@@ -5678,7 +5742,7 @@ FF21..FF3A ; Changes_When_Casefolded # L& [26] FULLWIDTH LATIN CAPITAL LETTE
16E40..16E5F ; Changes_When_Casefolded # L& [32] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN CAPITAL LETTER Y
1E900..1E921 ; Changes_When_Casefolded # L& [34] ADLAM CAPITAL LETTER ALIF..ADLAM CAPITAL LETTER SHA
-# Total code points: 1456
+# Total code points: 1463
# ================================================
@@ -5714,7 +5778,7 @@ FF21..FF3A ; Changes_When_Casefolded # L& [26] FULLWIDTH LATIN CAPITAL LETTE
0275 ; Changes_When_Casemapped # L& LATIN SMALL LETTER BARRED O
027D ; Changes_When_Casemapped # L& LATIN SMALL LETTER R WITH TAIL
0280 ; Changes_When_Casemapped # L& LATIN LETTER SMALL CAPITAL R
-0283 ; Changes_When_Casemapped # L& LATIN SMALL LETTER ESH
+0282..0283 ; Changes_When_Casemapped # L& [2] LATIN SMALL LETTER S WITH HOOK..LATIN SMALL LETTER ESH
0287..028C ; Changes_When_Casemapped # L& [6] LATIN SMALL LETTER TURNED T..LATIN SMALL LETTER TURNED V
0292 ; Changes_When_Casemapped # L& LATIN SMALL LETTER EZH
029D..029E ; Changes_When_Casemapped # L& [2] LATIN SMALL LETTER J WITH CROSSED-TAIL..LATIN SMALL LETTER TURNED K
@@ -5746,6 +5810,7 @@ FF21..FF3A ; Changes_When_Casefolded # L& [26] FULLWIDTH LATIN CAPITAL LETTE
1CBD..1CBF ; Changes_When_Casemapped # L& [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN
1D79 ; Changes_When_Casemapped # L& LATIN SMALL LETTER INSULAR G
1D7D ; Changes_When_Casemapped # L& LATIN SMALL LETTER P WITH STROKE
+1D8E ; Changes_When_Casemapped # L& LATIN SMALL LETTER Z WITH PALATAL HOOK
1E00..1E9B ; Changes_When_Casemapped # L& [156] LATIN CAPITAL LETTER A WITH RING BELOW..LATIN SMALL LETTER LONG S WITH DOT ABOVE
1E9E ; Changes_When_Casemapped # L& LATIN CAPITAL LETTER SHARP S
1EA0..1F15 ; Changes_When_Casemapped # L& [118] LATIN CAPITAL LETTER A WITH DOT BELOW..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
@@ -5791,9 +5856,10 @@ A722..A72F ; Changes_When_Casemapped # L& [14] LATIN CAPITAL LETTER EGYPTOLO
A732..A76F ; Changes_When_Casemapped # L& [62] LATIN CAPITAL LETTER AA..LATIN SMALL LETTER CON
A779..A787 ; Changes_When_Casemapped # L& [15] LATIN CAPITAL LETTER INSULAR D..LATIN SMALL LETTER INSULAR T
A78B..A78D ; Changes_When_Casemapped # L& [3] LATIN CAPITAL LETTER SALTILLO..LATIN CAPITAL LETTER TURNED H
-A790..A793 ; Changes_When_Casemapped # L& [4] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER C WITH BAR
+A790..A794 ; Changes_When_Casemapped # L& [5] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER C WITH PALATAL HOOK
A796..A7AE ; Changes_When_Casemapped # L& [25] LATIN CAPITAL LETTER B WITH FLOURISH..LATIN CAPITAL LETTER SMALL CAPITAL I
-A7B0..A7B9 ; Changes_When_Casemapped # L& [10] LATIN CAPITAL LETTER TURNED K..LATIN SMALL LETTER U WITH STROKE
+A7B0..A7BF ; Changes_When_Casemapped # L& [16] LATIN CAPITAL LETTER TURNED K..LATIN SMALL LETTER GLOTTAL U
+A7C2..A7C6 ; Changes_When_Casemapped # L& [5] LATIN CAPITAL LETTER ANGLICANA W..LATIN CAPITAL LETTER Z WITH PALATAL HOOK
AB53 ; Changes_When_Casemapped # L& LATIN SMALL LETTER CHI
AB70..ABBF ; Changes_When_Casemapped # L& [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETTER YA
FB00..FB06 ; Changes_When_Casemapped # L& [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
@@ -5809,7 +5875,7 @@ FF41..FF5A ; Changes_When_Casemapped # L& [26] FULLWIDTH LATIN SMALL LETTER
16E40..16E7F ; Changes_When_Casemapped # L& [64] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN SMALL LETTER Y
1E900..1E943 ; Changes_When_Casemapped # L& [68] ADLAM CAPITAL LETTER ALIF..ADLAM SMALL LETTER SHA
-# Total code points: 2827
+# Total code points: 2841
# ================================================
@@ -5979,16 +6045,10 @@ FF41..FF5A ; Changes_When_Casemapped # L& [26] FULLWIDTH LATIN SMALL LETTER
0E46 ; ID_Start # Lm THAI CHARACTER MAIYAMOK
0E81..0E82 ; ID_Start # Lo [2] LAO LETTER KO..LAO LETTER KHO SUNG
0E84 ; ID_Start # Lo LAO LETTER KHO TAM
-0E87..0E88 ; ID_Start # Lo [2] LAO LETTER NGO..LAO LETTER CO
-0E8A ; ID_Start # Lo LAO LETTER SO TAM
-0E8D ; ID_Start # Lo LAO LETTER NYO
-0E94..0E97 ; ID_Start # Lo [4] LAO LETTER DO..LAO LETTER THO TAM
-0E99..0E9F ; ID_Start # Lo [7] LAO LETTER NO..LAO LETTER FO SUNG
-0EA1..0EA3 ; ID_Start # Lo [3] LAO LETTER MO..LAO LETTER LO LING
+0E86..0E8A ; ID_Start # Lo [5] LAO LETTER PALI GHA..LAO LETTER SO TAM
+0E8C..0EA3 ; ID_Start # Lo [24] LAO LETTER PALI JHA..LAO LETTER LO LING
0EA5 ; ID_Start # Lo LAO LETTER LO LOOT
-0EA7 ; ID_Start # Lo LAO LETTER WO
-0EAA..0EAB ; ID_Start # Lo [2] LAO LETTER SO SUNG..LAO LETTER HO SUNG
-0EAD..0EB0 ; ID_Start # Lo [4] LAO LETTER O..LAO VOWEL SIGN A
+0EA7..0EB0 ; ID_Start # Lo [10] LAO LETTER WO..LAO VOWEL SIGN A
0EB2..0EB3 ; ID_Start # Lo [2] LAO VOWEL SIGN AA..LAO VOWEL SIGN AM
0EBD ; ID_Start # Lo LAO SEMIVOWEL SIGN NYO
0EC0..0EC4 ; ID_Start # Lo [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI
@@ -6076,8 +6136,9 @@ FF41..FF5A ; Changes_When_Casemapped # L& [26] FULLWIDTH LATIN SMALL LETTER
1C90..1CBA ; ID_Start # L& [43] GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN
1CBD..1CBF ; ID_Start # L& [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN
1CE9..1CEC ; ID_Start # Lo [4] VEDIC SIGN ANUSVARA ANTARGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL
-1CEE..1CF1 ; ID_Start # Lo [4] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ANUSVARA UBHAYATO MUKHA
+1CEE..1CF3 ; ID_Start # Lo [6] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ROTATED ARDHAVISARGA
1CF5..1CF6 ; ID_Start # Lo [2] VEDIC SIGN JIHVAMULIYA..VEDIC SIGN UPADHMANIYA
+1CFA ; ID_Start # Lo VEDIC SIGN DOUBLE ANUSVARA ANTARGOMUKHA
1D00..1D2B ; ID_Start # L& [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL
1D2C..1D6A ; ID_Start # Lm [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI
1D6B..1D77 ; ID_Start # L& [13] LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G
@@ -6191,7 +6252,8 @@ A771..A787 ; ID_Start # L& [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER I
A788 ; ID_Start # Lm MODIFIER LETTER LOW CIRCUMFLEX ACCENT
A78B..A78E ; ID_Start # L& [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
A78F ; ID_Start # Lo LATIN LETTER SINOLOGICAL DOT
-A790..A7B9 ; ID_Start # L& [42] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER U WITH STROKE
+A790..A7BF ; ID_Start # L& [48] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER GLOTTAL U
+A7C2..A7C6 ; ID_Start # L& [5] LATIN CAPITAL LETTER ANGLICANA W..LATIN CAPITAL LETTER Z WITH PALATAL HOOK
A7F7 ; ID_Start # Lo LATIN EPIGRAPHIC LETTER SIDEWAYS I
A7F8..A7F9 ; ID_Start # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
A7FA ; ID_Start # L& LATIN LETTER SMALL CAPITAL TURNED M
@@ -6238,7 +6300,7 @@ AB20..AB26 ; ID_Start # Lo [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE C
AB28..AB2E ; ID_Start # Lo [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO
AB30..AB5A ; ID_Start # L& [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
AB5C..AB5F ; ID_Start # Lm [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
-AB60..AB65 ; ID_Start # L& [6] LATIN SMALL LETTER SAKHA YAT..GREEK LETTER SMALL CAPITAL OMEGA
+AB60..AB67 ; ID_Start # L& [8] LATIN SMALL LETTER SAKHA YAT..LATIN SMALL LETTER TS DIGRAPH WITH RETROFLEX HOOK
AB70..ABBF ; ID_Start # L& [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETTER YA
ABC0..ABE2 ; ID_Start # Lo [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM
AC00..D7A3 ; ID_Start # Lo [11172] HANGUL SYLLABLE GA..HANGUL SYLLABLE HIH
@@ -6335,6 +6397,7 @@ FFDA..FFDC ; ID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
10F00..10F1C ; ID_Start # Lo [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL
10F27 ; ID_Start # Lo OLD SOGDIAN LIGATURE AYIN-DALETH
10F30..10F45 ; ID_Start # Lo [22] SOGDIAN LETTER ALEPH..SOGDIAN INDEPENDENT SHIN
+10FE0..10FF6 ; ID_Start # Lo [23] ELYMAIC LETTER ALEPH..ELYMAIC LIGATURE ZAYIN-YODH
11003..11037 ; ID_Start # Lo [53] BRAHMI SIGN JIHVAMULIYA..BRAHMI LETTER OLD TAMIL NNNA
11083..110AF ; ID_Start # Lo [45] KAITHI LETTER A..KAITHI LETTER HA
110D0..110E8 ; ID_Start # Lo [25] SORA SOMPENG LETTER SAH..SORA SOMPENG LETTER MAE
@@ -6365,6 +6428,7 @@ FFDA..FFDC ; ID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
1135D..11361 ; ID_Start # Lo [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC LL
11400..11434 ; ID_Start # Lo [53] NEWA LETTER A..NEWA LETTER HA
11447..1144A ; ID_Start # Lo [4] NEWA SIGN AVAGRAHA..NEWA SIDDHI
+1145F ; ID_Start # Lo NEWA LETTER VEDIC ANUSVARA
11480..114AF ; ID_Start # Lo [48] TIRHUTA ANJI..TIRHUTA LETTER HA
114C4..114C5 ; ID_Start # Lo [2] TIRHUTA SIGN AVAGRAHA..TIRHUTA GVANG
114C7 ; ID_Start # Lo TIRHUTA OM
@@ -6373,16 +6437,20 @@ FFDA..FFDC ; ID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
11600..1162F ; ID_Start # Lo [48] MODI LETTER A..MODI LETTER LLA
11644 ; ID_Start # Lo MODI SIGN HUVA
11680..116AA ; ID_Start # Lo [43] TAKRI LETTER A..TAKRI LETTER RRA
+116B8 ; ID_Start # Lo TAKRI LETTER ARCHAIC KHA
11700..1171A ; ID_Start # Lo [27] AHOM LETTER KA..AHOM LETTER ALTERNATE BA
11800..1182B ; ID_Start # Lo [44] DOGRA LETTER A..DOGRA LETTER RRA
118A0..118DF ; ID_Start # L& [64] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI SMALL LETTER VIYO
118FF ; ID_Start # Lo WARANG CITI OM
+119A0..119A7 ; ID_Start # Lo [8] NANDINAGARI LETTER A..NANDINAGARI LETTER VOCALIC RR
+119AA..119D0 ; ID_Start # Lo [39] NANDINAGARI LETTER E..NANDINAGARI LETTER RRA
+119E1 ; ID_Start # Lo NANDINAGARI SIGN AVAGRAHA
+119E3 ; ID_Start # Lo NANDINAGARI HEADSTROKE
11A00 ; ID_Start # Lo ZANABAZAR SQUARE LETTER A
11A0B..11A32 ; ID_Start # Lo [40] ZANABAZAR SQUARE LETTER KA..ZANABAZAR SQUARE LETTER KSSA
11A3A ; ID_Start # Lo ZANABAZAR SQUARE CLUSTER-INITIAL LETTER RA
11A50 ; ID_Start # Lo SOYOMBO LETTER A
-11A5C..11A83 ; ID_Start # Lo [40] SOYOMBO LETTER KA..SOYOMBO LETTER KSSA
-11A86..11A89 ; ID_Start # Lo [4] SOYOMBO CLUSTER-INITIAL LETTER RA..SOYOMBO CLUSTER-INITIAL LETTER SA
+11A5C..11A89 ; ID_Start # Lo [46] SOYOMBO LETTER KA..SOYOMBO CLUSTER-INITIAL LETTER SA
11A9D ; ID_Start # Lo SOYOMBO MARK PLUTA
11AC0..11AF8 ; ID_Start # Lo [57] PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL
11C00..11C08 ; ID_Start # Lo [9] BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L
@@ -6411,13 +6479,16 @@ FFDA..FFDC ; ID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
16B63..16B77 ; ID_Start # Lo [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS
16B7D..16B8F ; ID_Start # Lo [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ
16E40..16E7F ; ID_Start # L& [64] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN SMALL LETTER Y
-16F00..16F44 ; ID_Start # Lo [69] MIAO LETTER PA..MIAO LETTER HHA
+16F00..16F4A ; ID_Start # Lo [75] MIAO LETTER PA..MIAO LETTER RTE
16F50 ; ID_Start # Lo MIAO LETTER NASALIZATION
16F93..16F9F ; ID_Start # Lm [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
16FE0..16FE1 ; ID_Start # Lm [2] TANGUT ITERATION MARK..NUSHU ITERATION MARK
-17000..187F1 ; ID_Start # Lo [6130] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F1
+16FE3 ; ID_Start # Lm OLD CHINESE ITERATION MARK
+17000..187F7 ; ID_Start # Lo [6136] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F7
18800..18AF2 ; ID_Start # Lo [755] TANGUT COMPONENT-001..TANGUT COMPONENT-755
1B000..1B11E ; ID_Start # Lo [287] KATAKANA LETTER ARCHAIC E..HENTAIGANA LETTER N-MU-MO-2
+1B150..1B152 ; ID_Start # Lo [3] HIRAGANA LETTER SMALL WI..HIRAGANA LETTER SMALL WO
+1B164..1B167 ; ID_Start # Lo [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N
1B170..1B2FB ; ID_Start # Lo [396] NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB
1BC00..1BC6A ; ID_Start # Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
1BC70..1BC7C ; ID_Start # Lo [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK
@@ -6453,8 +6524,13 @@ FFDA..FFDC ; ID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
1D78A..1D7A8 ; ID_Start # L& [31] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA
1D7AA..1D7C2 ; ID_Start # L& [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
1D7C4..1D7CB ; ID_Start # L& [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA
+1E100..1E12C ; ID_Start # Lo [45] NYIAKENG PUACHUE HMONG LETTER MA..NYIAKENG PUACHUE HMONG LETTER W
+1E137..1E13D ; ID_Start # Lm [7] NYIAKENG PUACHUE HMONG SIGN FOR PERSON..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER
+1E14E ; ID_Start # Lo NYIAKENG PUACHUE HMONG LOGOGRAM NYAJ
+1E2C0..1E2EB ; ID_Start # Lo [44] WANCHO LETTER AA..WANCHO LETTER YIH
1E800..1E8C4 ; ID_Start # Lo [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON
1E900..1E943 ; ID_Start # L& [68] ADLAM CAPITAL LETTER ALIF..ADLAM SMALL LETTER SHA
+1E94B ; ID_Start # Lm ADLAM NASALIZATION MARK
1EE00..1EE03 ; ID_Start # Lo [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
1EE05..1EE1F ; ID_Start # Lo [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
1EE21..1EE22 ; ID_Start # Lo [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM
@@ -6495,7 +6571,7 @@ FFDA..FFDC ; ID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
2CEB0..2EBE0 ; ID_Start # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
2F800..2FA1D ; ID_Start # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
-# Total code points: 125660
+# Total code points: 125884
# ================================================
@@ -6815,20 +6891,13 @@ FFDA..FFDC ; ID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
0E50..0E59 ; ID_Continue # Nd [10] THAI DIGIT ZERO..THAI DIGIT NINE
0E81..0E82 ; ID_Continue # Lo [2] LAO LETTER KO..LAO LETTER KHO SUNG
0E84 ; ID_Continue # Lo LAO LETTER KHO TAM
-0E87..0E88 ; ID_Continue # Lo [2] LAO LETTER NGO..LAO LETTER CO
-0E8A ; ID_Continue # Lo LAO LETTER SO TAM
-0E8D ; ID_Continue # Lo LAO LETTER NYO
-0E94..0E97 ; ID_Continue # Lo [4] LAO LETTER DO..LAO LETTER THO TAM
-0E99..0E9F ; ID_Continue # Lo [7] LAO LETTER NO..LAO LETTER FO SUNG
-0EA1..0EA3 ; ID_Continue # Lo [3] LAO LETTER MO..LAO LETTER LO LING
+0E86..0E8A ; ID_Continue # Lo [5] LAO LETTER PALI GHA..LAO LETTER SO TAM
+0E8C..0EA3 ; ID_Continue # Lo [24] LAO LETTER PALI JHA..LAO LETTER LO LING
0EA5 ; ID_Continue # Lo LAO LETTER LO LOOT
-0EA7 ; ID_Continue # Lo LAO LETTER WO
-0EAA..0EAB ; ID_Continue # Lo [2] LAO LETTER SO SUNG..LAO LETTER HO SUNG
-0EAD..0EB0 ; ID_Continue # Lo [4] LAO LETTER O..LAO VOWEL SIGN A
+0EA7..0EB0 ; ID_Continue # Lo [10] LAO LETTER WO..LAO VOWEL SIGN A
0EB1 ; ID_Continue # Mn LAO VOWEL SIGN MAI KAN
0EB2..0EB3 ; ID_Continue # Lo [2] LAO VOWEL SIGN AA..LAO VOWEL SIGN AM
-0EB4..0EB9 ; ID_Continue # Mn [6] LAO VOWEL SIGN I..LAO VOWEL SIGN UU
-0EBB..0EBC ; ID_Continue # Mn [2] LAO VOWEL SIGN MAI KON..LAO SEMIVOWEL SIGN LO
+0EB4..0EBC ; ID_Continue # Mn [9] LAO VOWEL SIGN I..LAO SEMIVOWEL SIGN LO
0EBD ; ID_Continue # Lo LAO SEMIVOWEL SIGN NYO
0EC0..0EC4 ; ID_Continue # Lo [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI
0EC6 ; ID_Continue # Lm LAO KO LA
@@ -7041,12 +7110,12 @@ FFDA..FFDC ; ID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
1CE2..1CE8 ; ID_Continue # Mn [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
1CE9..1CEC ; ID_Continue # Lo [4] VEDIC SIGN ANUSVARA ANTARGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL
1CED ; ID_Continue # Mn VEDIC SIGN TIRYAK
-1CEE..1CF1 ; ID_Continue # Lo [4] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ANUSVARA UBHAYATO MUKHA
-1CF2..1CF3 ; ID_Continue # Mc [2] VEDIC SIGN ARDHAVISARGA..VEDIC SIGN ROTATED ARDHAVISARGA
+1CEE..1CF3 ; ID_Continue # Lo [6] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ROTATED ARDHAVISARGA
1CF4 ; ID_Continue # Mn VEDIC TONE CANDRA ABOVE
1CF5..1CF6 ; ID_Continue # Lo [2] VEDIC SIGN JIHVAMULIYA..VEDIC SIGN UPADHMANIYA
1CF7 ; ID_Continue # Mc VEDIC SIGN ATIKRAMA
1CF8..1CF9 ; ID_Continue # Mn [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
+1CFA ; ID_Continue # Lo VEDIC SIGN DOUBLE ANUSVARA ANTARGOMUKHA
1D00..1D2B ; ID_Continue # L& [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL
1D2C..1D6A ; ID_Continue # Lm [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI
1D6B..1D77 ; ID_Continue # L& [13] LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G
@@ -7178,7 +7247,8 @@ A771..A787 ; ID_Continue # L& [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTE
A788 ; ID_Continue # Lm MODIFIER LETTER LOW CIRCUMFLEX ACCENT
A78B..A78E ; ID_Continue # L& [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
A78F ; ID_Continue # Lo LATIN LETTER SINOLOGICAL DOT
-A790..A7B9 ; ID_Continue # L& [42] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER U WITH STROKE
+A790..A7BF ; ID_Continue # L& [48] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER GLOTTAL U
+A7C2..A7C6 ; ID_Continue # L& [5] LATIN CAPITAL LETTER ANGLICANA W..LATIN CAPITAL LETTER Z WITH PALATAL HOOK
A7F7 ; ID_Continue # Lo LATIN EPIGRAPHIC LETTER SIDEWAYS I
A7F8..A7F9 ; ID_Continue # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
A7FA ; ID_Continue # L& LATIN LETTER SMALL CAPITAL TURNED M
@@ -7217,8 +7287,8 @@ A9B3 ; ID_Continue # Mn JAVANESE SIGN CECAK TELU
A9B4..A9B5 ; ID_Continue # Mc [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG
A9B6..A9B9 ; ID_Continue # Mn [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT
A9BA..A9BB ; ID_Continue # Mc [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE
-A9BC ; ID_Continue # Mn JAVANESE VOWEL SIGN PEPET
-A9BD..A9C0 ; ID_Continue # Mc [4] JAVANESE CONSONANT SIGN KERET..JAVANESE PANGKON
+A9BC..A9BD ; ID_Continue # Mn [2] JAVANESE VOWEL SIGN PEPET..JAVANESE CONSONANT SIGN KERET
+A9BE..A9C0 ; ID_Continue # Mc [3] JAVANESE CONSONANT SIGN PENGKAL..JAVANESE PANGKON
A9CF ; ID_Continue # Lm JAVANESE PANGRANGKEP
A9D0..A9D9 ; ID_Continue # Nd [10] JAVANESE DIGIT ZERO..JAVANESE DIGIT NINE
A9E0..A9E4 ; ID_Continue # Lo [5] MYANMAR LETTER SHAN GHA..MYANMAR LETTER SHAN BHA
@@ -7274,7 +7344,7 @@ AB20..AB26 ; ID_Continue # Lo [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABL
AB28..AB2E ; ID_Continue # Lo [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO
AB30..AB5A ; ID_Continue # L& [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
AB5C..AB5F ; ID_Continue # Lm [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
-AB60..AB65 ; ID_Continue # L& [6] LATIN SMALL LETTER SAKHA YAT..GREEK LETTER SMALL CAPITAL OMEGA
+AB60..AB67 ; ID_Continue # L& [8] LATIN SMALL LETTER SAKHA YAT..LATIN SMALL LETTER TS DIGRAPH WITH RETROFLEX HOOK
AB70..ABBF ; ID_Continue # L& [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETTER YA
ABC0..ABE2 ; ID_Continue # Lo [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM
ABE3..ABE4 ; ID_Continue # Mc [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP
@@ -7399,6 +7469,7 @@ FFDA..FFDC ; ID_Continue # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HAN
10F27 ; ID_Continue # Lo OLD SOGDIAN LIGATURE AYIN-DALETH
10F30..10F45 ; ID_Continue # Lo [22] SOGDIAN LETTER ALEPH..SOGDIAN INDEPENDENT SHIN
10F46..10F50 ; ID_Continue # Mn [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW
+10FE0..10FF6 ; ID_Continue # Lo [23] ELYMAIC LETTER ALEPH..ELYMAIC LIGATURE ZAYIN-YODH
11000 ; ID_Continue # Mc BRAHMI SIGN CANDRABINDU
11001 ; ID_Continue # Mn BRAHMI SIGN ANUSVARA
11002 ; ID_Continue # Mc BRAHMI SIGN VISARGA
@@ -7486,6 +7557,7 @@ FFDA..FFDC ; ID_Continue # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HAN
11447..1144A ; ID_Continue # Lo [4] NEWA SIGN AVAGRAHA..NEWA SIDDHI
11450..11459 ; ID_Continue # Nd [10] NEWA DIGIT ZERO..NEWA DIGIT NINE
1145E ; ID_Continue # Mn NEWA SANDHI MARK
+1145F ; ID_Continue # Lo NEWA LETTER VEDIC ANUSVARA
11480..114AF ; ID_Continue # Lo [48] TIRHUTA ANJI..TIRHUTA LETTER HA
114B0..114B2 ; ID_Continue # Mc [3] TIRHUTA VOWEL SIGN AA..TIRHUTA VOWEL SIGN II
114B3..114B8 ; ID_Continue # Mn [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL
@@ -7524,6 +7596,7 @@ FFDA..FFDC ; ID_Continue # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HAN
116B0..116B5 ; ID_Continue # Mn [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
116B6 ; ID_Continue # Mc TAKRI SIGN VIRAMA
116B7 ; ID_Continue # Mn TAKRI SIGN NUKTA
+116B8 ; ID_Continue # Lo TAKRI LETTER ARCHAIC KHA
116C0..116C9 ; ID_Continue # Nd [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE
11700..1171A ; ID_Continue # Lo [27] AHOM LETTER KA..AHOM LETTER ALTERNATE BA
1171D..1171F ; ID_Continue # Mn [3] AHOM CONSONANT SIGN MEDIAL LA..AHOM CONSONANT SIGN MEDIAL LIGATING RA
@@ -7540,6 +7613,16 @@ FFDA..FFDC ; ID_Continue # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HAN
118A0..118DF ; ID_Continue # L& [64] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI SMALL LETTER VIYO
118E0..118E9 ; ID_Continue # Nd [10] WARANG CITI DIGIT ZERO..WARANG CITI DIGIT NINE
118FF ; ID_Continue # Lo WARANG CITI OM
+119A0..119A7 ; ID_Continue # Lo [8] NANDINAGARI LETTER A..NANDINAGARI LETTER VOCALIC RR
+119AA..119D0 ; ID_Continue # Lo [39] NANDINAGARI LETTER E..NANDINAGARI LETTER RRA
+119D1..119D3 ; ID_Continue # Mc [3] NANDINAGARI VOWEL SIGN AA..NANDINAGARI VOWEL SIGN II
+119D4..119D7 ; ID_Continue # Mn [4] NANDINAGARI VOWEL SIGN U..NANDINAGARI VOWEL SIGN VOCALIC RR
+119DA..119DB ; ID_Continue # Mn [2] NANDINAGARI VOWEL SIGN E..NANDINAGARI VOWEL SIGN AI
+119DC..119DF ; ID_Continue # Mc [4] NANDINAGARI VOWEL SIGN O..NANDINAGARI SIGN VISARGA
+119E0 ; ID_Continue # Mn NANDINAGARI SIGN VIRAMA
+119E1 ; ID_Continue # Lo NANDINAGARI SIGN AVAGRAHA
+119E3 ; ID_Continue # Lo NANDINAGARI HEADSTROKE
+119E4 ; ID_Continue # Mc NANDINAGARI VOWEL SIGN PRISHTHAMATRA E
11A00 ; ID_Continue # Lo ZANABAZAR SQUARE LETTER A
11A01..11A0A ; ID_Continue # Mn [10] ZANABAZAR SQUARE VOWEL SIGN I..ZANABAZAR SQUARE VOWEL LENGTH MARK
11A0B..11A32 ; ID_Continue # Lo [40] ZANABAZAR SQUARE LETTER KA..ZANABAZAR SQUARE LETTER KSSA
@@ -7552,8 +7635,7 @@ FFDA..FFDC ; ID_Continue # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HAN
11A51..11A56 ; ID_Continue # Mn [6] SOYOMBO VOWEL SIGN I..SOYOMBO VOWEL SIGN OE
11A57..11A58 ; ID_Continue # Mc [2] SOYOMBO VOWEL SIGN AI..SOYOMBO VOWEL SIGN AU
11A59..11A5B ; ID_Continue # Mn [3] SOYOMBO VOWEL SIGN VOCALIC R..SOYOMBO VOWEL LENGTH MARK
-11A5C..11A83 ; ID_Continue # Lo [40] SOYOMBO LETTER KA..SOYOMBO LETTER KSSA
-11A86..11A89 ; ID_Continue # Lo [4] SOYOMBO CLUSTER-INITIAL LETTER RA..SOYOMBO CLUSTER-INITIAL LETTER SA
+11A5C..11A89 ; ID_Continue # Lo [46] SOYOMBO LETTER KA..SOYOMBO CLUSTER-INITIAL LETTER SA
11A8A..11A96 ; ID_Continue # Mn [13] SOYOMBO FINAL CONSONANT SIGN G..SOYOMBO SIGN ANUSVARA
11A97 ; ID_Continue # Mc SOYOMBO SIGN VISARGA
11A98..11A99 ; ID_Continue # Mn [2] SOYOMBO GEMINATION MARK..SOYOMBO SUBJOINER
@@ -7617,15 +7699,19 @@ FFDA..FFDC ; ID_Continue # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HAN
16B63..16B77 ; ID_Continue # Lo [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS
16B7D..16B8F ; ID_Continue # Lo [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ
16E40..16E7F ; ID_Continue # L& [64] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN SMALL LETTER Y
-16F00..16F44 ; ID_Continue # Lo [69] MIAO LETTER PA..MIAO LETTER HHA
+16F00..16F4A ; ID_Continue # Lo [75] MIAO LETTER PA..MIAO LETTER RTE
+16F4F ; ID_Continue # Mn MIAO SIGN CONSONANT MODIFIER BAR
16F50 ; ID_Continue # Lo MIAO LETTER NASALIZATION
-16F51..16F7E ; ID_Continue # Mc [46] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN NG
+16F51..16F87 ; ID_Continue # Mc [55] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN UI
16F8F..16F92 ; ID_Continue # Mn [4] MIAO TONE RIGHT..MIAO TONE BELOW
16F93..16F9F ; ID_Continue # Lm [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
16FE0..16FE1 ; ID_Continue # Lm [2] TANGUT ITERATION MARK..NUSHU ITERATION MARK
-17000..187F1 ; ID_Continue # Lo [6130] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F1
+16FE3 ; ID_Continue # Lm OLD CHINESE ITERATION MARK
+17000..187F7 ; ID_Continue # Lo [6136] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F7
18800..18AF2 ; ID_Continue # Lo [755] TANGUT COMPONENT-001..TANGUT COMPONENT-755
1B000..1B11E ; ID_Continue # Lo [287] KATAKANA LETTER ARCHAIC E..HENTAIGANA LETTER N-MU-MO-2
+1B150..1B152 ; ID_Continue # Lo [3] HIRAGANA LETTER SMALL WI..HIRAGANA LETTER SMALL WO
+1B164..1B167 ; ID_Continue # Lo [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N
1B170..1B2FB ; ID_Continue # Lo [396] NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB
1BC00..1BC6A ; ID_Continue # Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
1BC70..1BC7C ; ID_Continue # Lo [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK
@@ -7681,10 +7767,19 @@ FFDA..FFDC ; ID_Continue # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HAN
1E01B..1E021 ; ID_Continue # Mn [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
1E023..1E024 ; ID_Continue # Mn [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
1E026..1E02A ; ID_Continue # Mn [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
+1E100..1E12C ; ID_Continue # Lo [45] NYIAKENG PUACHUE HMONG LETTER MA..NYIAKENG PUACHUE HMONG LETTER W
+1E130..1E136 ; ID_Continue # Mn [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D
+1E137..1E13D ; ID_Continue # Lm [7] NYIAKENG PUACHUE HMONG SIGN FOR PERSON..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER
+1E140..1E149 ; ID_Continue # Nd [10] NYIAKENG PUACHUE HMONG DIGIT ZERO..NYIAKENG PUACHUE HMONG DIGIT NINE
+1E14E ; ID_Continue # Lo NYIAKENG PUACHUE HMONG LOGOGRAM NYAJ
+1E2C0..1E2EB ; ID_Continue # Lo [44] WANCHO LETTER AA..WANCHO LETTER YIH
+1E2EC..1E2EF ; ID_Continue # Mn [4] WANCHO TONE TUP..WANCHO TONE KOINI
+1E2F0..1E2F9 ; ID_Continue # Nd [10] WANCHO DIGIT ZERO..WANCHO DIGIT NINE
1E800..1E8C4 ; ID_Continue # Lo [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON
1E8D0..1E8D6 ; ID_Continue # Mn [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
1E900..1E943 ; ID_Continue # L& [68] ADLAM CAPITAL LETTER ALIF..ADLAM SMALL LETTER SHA
1E944..1E94A ; ID_Continue # Mn [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA
+1E94B ; ID_Continue # Lm ADLAM NASALIZATION MARK
1E950..1E959 ; ID_Continue # Nd [10] ADLAM DIGIT ZERO..ADLAM DIGIT NINE
1EE00..1EE03 ; ID_Continue # Lo [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
1EE05..1EE1F ; ID_Continue # Lo [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
@@ -7727,7 +7822,7 @@ FFDA..FFDC ; ID_Continue # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HAN
2F800..2FA1D ; ID_Continue # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
E0100..E01EF ; ID_Continue # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
-# Total code points: 128510
+# Total code points: 128789
# ================================================
@@ -7894,16 +7989,10 @@ E0100..E01EF ; ID_Continue # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR
0E46 ; XID_Start # Lm THAI CHARACTER MAIYAMOK
0E81..0E82 ; XID_Start # Lo [2] LAO LETTER KO..LAO LETTER KHO SUNG
0E84 ; XID_Start # Lo LAO LETTER KHO TAM
-0E87..0E88 ; XID_Start # Lo [2] LAO LETTER NGO..LAO LETTER CO
-0E8A ; XID_Start # Lo LAO LETTER SO TAM
-0E8D ; XID_Start # Lo LAO LETTER NYO
-0E94..0E97 ; XID_Start # Lo [4] LAO LETTER DO..LAO LETTER THO TAM
-0E99..0E9F ; XID_Start # Lo [7] LAO LETTER NO..LAO LETTER FO SUNG
-0EA1..0EA3 ; XID_Start # Lo [3] LAO LETTER MO..LAO LETTER LO LING
+0E86..0E8A ; XID_Start # Lo [5] LAO LETTER PALI GHA..LAO LETTER SO TAM
+0E8C..0EA3 ; XID_Start # Lo [24] LAO LETTER PALI JHA..LAO LETTER LO LING
0EA5 ; XID_Start # Lo LAO LETTER LO LOOT
-0EA7 ; XID_Start # Lo LAO LETTER WO
-0EAA..0EAB ; XID_Start # Lo [2] LAO LETTER SO SUNG..LAO LETTER HO SUNG
-0EAD..0EB0 ; XID_Start # Lo [4] LAO LETTER O..LAO VOWEL SIGN A
+0EA7..0EB0 ; XID_Start # Lo [10] LAO LETTER WO..LAO VOWEL SIGN A
0EB2 ; XID_Start # Lo LAO VOWEL SIGN AA
0EBD ; XID_Start # Lo LAO SEMIVOWEL SIGN NYO
0EC0..0EC4 ; XID_Start # Lo [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI
@@ -7991,8 +8080,9 @@ E0100..E01EF ; ID_Continue # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR
1C90..1CBA ; XID_Start # L& [43] GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN
1CBD..1CBF ; XID_Start # L& [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN
1CE9..1CEC ; XID_Start # Lo [4] VEDIC SIGN ANUSVARA ANTARGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL
-1CEE..1CF1 ; XID_Start # Lo [4] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ANUSVARA UBHAYATO MUKHA
+1CEE..1CF3 ; XID_Start # Lo [6] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ROTATED ARDHAVISARGA
1CF5..1CF6 ; XID_Start # Lo [2] VEDIC SIGN JIHVAMULIYA..VEDIC SIGN UPADHMANIYA
+1CFA ; XID_Start # Lo VEDIC SIGN DOUBLE ANUSVARA ANTARGOMUKHA
1D00..1D2B ; XID_Start # L& [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL
1D2C..1D6A ; XID_Start # Lm [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI
1D6B..1D77 ; XID_Start # L& [13] LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G
@@ -8105,7 +8195,8 @@ A771..A787 ; XID_Start # L& [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER
A788 ; XID_Start # Lm MODIFIER LETTER LOW CIRCUMFLEX ACCENT
A78B..A78E ; XID_Start # L& [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
A78F ; XID_Start # Lo LATIN LETTER SINOLOGICAL DOT
-A790..A7B9 ; XID_Start # L& [42] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER U WITH STROKE
+A790..A7BF ; XID_Start # L& [48] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER GLOTTAL U
+A7C2..A7C6 ; XID_Start # L& [5] LATIN CAPITAL LETTER ANGLICANA W..LATIN CAPITAL LETTER Z WITH PALATAL HOOK
A7F7 ; XID_Start # Lo LATIN EPIGRAPHIC LETTER SIDEWAYS I
A7F8..A7F9 ; XID_Start # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
A7FA ; XID_Start # L& LATIN LETTER SMALL CAPITAL TURNED M
@@ -8152,7 +8243,7 @@ AB20..AB26 ; XID_Start # Lo [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE
AB28..AB2E ; XID_Start # Lo [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO
AB30..AB5A ; XID_Start # L& [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
AB5C..AB5F ; XID_Start # Lm [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
-AB60..AB65 ; XID_Start # L& [6] LATIN SMALL LETTER SAKHA YAT..GREEK LETTER SMALL CAPITAL OMEGA
+AB60..AB67 ; XID_Start # L& [8] LATIN SMALL LETTER SAKHA YAT..LATIN SMALL LETTER TS DIGRAPH WITH RETROFLEX HOOK
AB70..ABBF ; XID_Start # L& [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETTER YA
ABC0..ABE2 ; XID_Start # Lo [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM
AC00..D7A3 ; XID_Start # Lo [11172] HANGUL SYLLABLE GA..HANGUL SYLLABLE HIH
@@ -8254,6 +8345,7 @@ FFDA..FFDC ; XID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGU
10F00..10F1C ; XID_Start # Lo [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL
10F27 ; XID_Start # Lo OLD SOGDIAN LIGATURE AYIN-DALETH
10F30..10F45 ; XID_Start # Lo [22] SOGDIAN LETTER ALEPH..SOGDIAN INDEPENDENT SHIN
+10FE0..10FF6 ; XID_Start # Lo [23] ELYMAIC LETTER ALEPH..ELYMAIC LIGATURE ZAYIN-YODH
11003..11037 ; XID_Start # Lo [53] BRAHMI SIGN JIHVAMULIYA..BRAHMI LETTER OLD TAMIL NNNA
11083..110AF ; XID_Start # Lo [45] KAITHI LETTER A..KAITHI LETTER HA
110D0..110E8 ; XID_Start # Lo [25] SORA SOMPENG LETTER SAH..SORA SOMPENG LETTER MAE
@@ -8284,6 +8376,7 @@ FFDA..FFDC ; XID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGU
1135D..11361 ; XID_Start # Lo [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC LL
11400..11434 ; XID_Start # Lo [53] NEWA LETTER A..NEWA LETTER HA
11447..1144A ; XID_Start # Lo [4] NEWA SIGN AVAGRAHA..NEWA SIDDHI
+1145F ; XID_Start # Lo NEWA LETTER VEDIC ANUSVARA
11480..114AF ; XID_Start # Lo [48] TIRHUTA ANJI..TIRHUTA LETTER HA
114C4..114C5 ; XID_Start # Lo [2] TIRHUTA SIGN AVAGRAHA..TIRHUTA GVANG
114C7 ; XID_Start # Lo TIRHUTA OM
@@ -8292,16 +8385,20 @@ FFDA..FFDC ; XID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGU
11600..1162F ; XID_Start # Lo [48] MODI LETTER A..MODI LETTER LLA
11644 ; XID_Start # Lo MODI SIGN HUVA
11680..116AA ; XID_Start # Lo [43] TAKRI LETTER A..TAKRI LETTER RRA
+116B8 ; XID_Start # Lo TAKRI LETTER ARCHAIC KHA
11700..1171A ; XID_Start # Lo [27] AHOM LETTER KA..AHOM LETTER ALTERNATE BA
11800..1182B ; XID_Start # Lo [44] DOGRA LETTER A..DOGRA LETTER RRA
118A0..118DF ; XID_Start # L& [64] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI SMALL LETTER VIYO
118FF ; XID_Start # Lo WARANG CITI OM
+119A0..119A7 ; XID_Start # Lo [8] NANDINAGARI LETTER A..NANDINAGARI LETTER VOCALIC RR
+119AA..119D0 ; XID_Start # Lo [39] NANDINAGARI LETTER E..NANDINAGARI LETTER RRA
+119E1 ; XID_Start # Lo NANDINAGARI SIGN AVAGRAHA
+119E3 ; XID_Start # Lo NANDINAGARI HEADSTROKE
11A00 ; XID_Start # Lo ZANABAZAR SQUARE LETTER A
11A0B..11A32 ; XID_Start # Lo [40] ZANABAZAR SQUARE LETTER KA..ZANABAZAR SQUARE LETTER KSSA
11A3A ; XID_Start # Lo ZANABAZAR SQUARE CLUSTER-INITIAL LETTER RA
11A50 ; XID_Start # Lo SOYOMBO LETTER A
-11A5C..11A83 ; XID_Start # Lo [40] SOYOMBO LETTER KA..SOYOMBO LETTER KSSA
-11A86..11A89 ; XID_Start # Lo [4] SOYOMBO CLUSTER-INITIAL LETTER RA..SOYOMBO CLUSTER-INITIAL LETTER SA
+11A5C..11A89 ; XID_Start # Lo [46] SOYOMBO LETTER KA..SOYOMBO CLUSTER-INITIAL LETTER SA
11A9D ; XID_Start # Lo SOYOMBO MARK PLUTA
11AC0..11AF8 ; XID_Start # Lo [57] PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL
11C00..11C08 ; XID_Start # Lo [9] BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L
@@ -8330,13 +8427,16 @@ FFDA..FFDC ; XID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGU
16B63..16B77 ; XID_Start # Lo [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS
16B7D..16B8F ; XID_Start # Lo [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ
16E40..16E7F ; XID_Start # L& [64] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN SMALL LETTER Y
-16F00..16F44 ; XID_Start # Lo [69] MIAO LETTER PA..MIAO LETTER HHA
+16F00..16F4A ; XID_Start # Lo [75] MIAO LETTER PA..MIAO LETTER RTE
16F50 ; XID_Start # Lo MIAO LETTER NASALIZATION
16F93..16F9F ; XID_Start # Lm [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
16FE0..16FE1 ; XID_Start # Lm [2] TANGUT ITERATION MARK..NUSHU ITERATION MARK
-17000..187F1 ; XID_Start # Lo [6130] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F1
+16FE3 ; XID_Start # Lm OLD CHINESE ITERATION MARK
+17000..187F7 ; XID_Start # Lo [6136] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F7
18800..18AF2 ; XID_Start # Lo [755] TANGUT COMPONENT-001..TANGUT COMPONENT-755
1B000..1B11E ; XID_Start # Lo [287] KATAKANA LETTER ARCHAIC E..HENTAIGANA LETTER N-MU-MO-2
+1B150..1B152 ; XID_Start # Lo [3] HIRAGANA LETTER SMALL WI..HIRAGANA LETTER SMALL WO
+1B164..1B167 ; XID_Start # Lo [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N
1B170..1B2FB ; XID_Start # Lo [396] NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB
1BC00..1BC6A ; XID_Start # Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
1BC70..1BC7C ; XID_Start # Lo [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK
@@ -8372,8 +8472,13 @@ FFDA..FFDC ; XID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGU
1D78A..1D7A8 ; XID_Start # L& [31] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA
1D7AA..1D7C2 ; XID_Start # L& [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
1D7C4..1D7CB ; XID_Start # L& [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA
+1E100..1E12C ; XID_Start # Lo [45] NYIAKENG PUACHUE HMONG LETTER MA..NYIAKENG PUACHUE HMONG LETTER W
+1E137..1E13D ; XID_Start # Lm [7] NYIAKENG PUACHUE HMONG SIGN FOR PERSON..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER
+1E14E ; XID_Start # Lo NYIAKENG PUACHUE HMONG LOGOGRAM NYAJ
+1E2C0..1E2EB ; XID_Start # Lo [44] WANCHO LETTER AA..WANCHO LETTER YIH
1E800..1E8C4 ; XID_Start # Lo [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON
1E900..1E943 ; XID_Start # L& [68] ADLAM CAPITAL LETTER ALIF..ADLAM SMALL LETTER SHA
+1E94B ; XID_Start # Lm ADLAM NASALIZATION MARK
1EE00..1EE03 ; XID_Start # Lo [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
1EE05..1EE1F ; XID_Start # Lo [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
1EE21..1EE22 ; XID_Start # Lo [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM
@@ -8414,7 +8519,7 @@ FFDA..FFDC ; XID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGU
2CEB0..2EBE0 ; XID_Start # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
2F800..2FA1D ; XID_Start # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
-# Total code points: 125637
+# Total code points: 125861
# ================================================
@@ -8730,20 +8835,13 @@ FFDA..FFDC ; XID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGU
0E50..0E59 ; XID_Continue # Nd [10] THAI DIGIT ZERO..THAI DIGIT NINE
0E81..0E82 ; XID_Continue # Lo [2] LAO LETTER KO..LAO LETTER KHO SUNG
0E84 ; XID_Continue # Lo LAO LETTER KHO TAM
-0E87..0E88 ; XID_Continue # Lo [2] LAO LETTER NGO..LAO LETTER CO
-0E8A ; XID_Continue # Lo LAO LETTER SO TAM
-0E8D ; XID_Continue # Lo LAO LETTER NYO
-0E94..0E97 ; XID_Continue # Lo [4] LAO LETTER DO..LAO LETTER THO TAM
-0E99..0E9F ; XID_Continue # Lo [7] LAO LETTER NO..LAO LETTER FO SUNG
-0EA1..0EA3 ; XID_Continue # Lo [3] LAO LETTER MO..LAO LETTER LO LING
+0E86..0E8A ; XID_Continue # Lo [5] LAO LETTER PALI GHA..LAO LETTER SO TAM
+0E8C..0EA3 ; XID_Continue # Lo [24] LAO LETTER PALI JHA..LAO LETTER LO LING
0EA5 ; XID_Continue # Lo LAO LETTER LO LOOT
-0EA7 ; XID_Continue # Lo LAO LETTER WO
-0EAA..0EAB ; XID_Continue # Lo [2] LAO LETTER SO SUNG..LAO LETTER HO SUNG
-0EAD..0EB0 ; XID_Continue # Lo [4] LAO LETTER O..LAO VOWEL SIGN A
+0EA7..0EB0 ; XID_Continue # Lo [10] LAO LETTER WO..LAO VOWEL SIGN A
0EB1 ; XID_Continue # Mn LAO VOWEL SIGN MAI KAN
0EB2..0EB3 ; XID_Continue # Lo [2] LAO VOWEL SIGN AA..LAO VOWEL SIGN AM
-0EB4..0EB9 ; XID_Continue # Mn [6] LAO VOWEL SIGN I..LAO VOWEL SIGN UU
-0EBB..0EBC ; XID_Continue # Mn [2] LAO VOWEL SIGN MAI KON..LAO SEMIVOWEL SIGN LO
+0EB4..0EBC ; XID_Continue # Mn [9] LAO VOWEL SIGN I..LAO SEMIVOWEL SIGN LO
0EBD ; XID_Continue # Lo LAO SEMIVOWEL SIGN NYO
0EC0..0EC4 ; XID_Continue # Lo [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI
0EC6 ; XID_Continue # Lm LAO KO LA
@@ -8956,12 +9054,12 @@ FFDA..FFDC ; XID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGU
1CE2..1CE8 ; XID_Continue # Mn [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
1CE9..1CEC ; XID_Continue # Lo [4] VEDIC SIGN ANUSVARA ANTARGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL
1CED ; XID_Continue # Mn VEDIC SIGN TIRYAK
-1CEE..1CF1 ; XID_Continue # Lo [4] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ANUSVARA UBHAYATO MUKHA
-1CF2..1CF3 ; XID_Continue # Mc [2] VEDIC SIGN ARDHAVISARGA..VEDIC SIGN ROTATED ARDHAVISARGA
+1CEE..1CF3 ; XID_Continue # Lo [6] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ROTATED ARDHAVISARGA
1CF4 ; XID_Continue # Mn VEDIC TONE CANDRA ABOVE
1CF5..1CF6 ; XID_Continue # Lo [2] VEDIC SIGN JIHVAMULIYA..VEDIC SIGN UPADHMANIYA
1CF7 ; XID_Continue # Mc VEDIC SIGN ATIKRAMA
1CF8..1CF9 ; XID_Continue # Mn [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
+1CFA ; XID_Continue # Lo VEDIC SIGN DOUBLE ANUSVARA ANTARGOMUKHA
1D00..1D2B ; XID_Continue # L& [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL
1D2C..1D6A ; XID_Continue # Lm [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI
1D6B..1D77 ; XID_Continue # L& [13] LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G
@@ -9092,7 +9190,8 @@ A771..A787 ; XID_Continue # L& [23] LATIN SMALL LETTER DUM..LATIN SMALL LETT
A788 ; XID_Continue # Lm MODIFIER LETTER LOW CIRCUMFLEX ACCENT
A78B..A78E ; XID_Continue # L& [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
A78F ; XID_Continue # Lo LATIN LETTER SINOLOGICAL DOT
-A790..A7B9 ; XID_Continue # L& [42] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER U WITH STROKE
+A790..A7BF ; XID_Continue # L& [48] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER GLOTTAL U
+A7C2..A7C6 ; XID_Continue # L& [5] LATIN CAPITAL LETTER ANGLICANA W..LATIN CAPITAL LETTER Z WITH PALATAL HOOK
A7F7 ; XID_Continue # Lo LATIN EPIGRAPHIC LETTER SIDEWAYS I
A7F8..A7F9 ; XID_Continue # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
A7FA ; XID_Continue # L& LATIN LETTER SMALL CAPITAL TURNED M
@@ -9131,8 +9230,8 @@ A9B3 ; XID_Continue # Mn JAVANESE SIGN CECAK TELU
A9B4..A9B5 ; XID_Continue # Mc [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG
A9B6..A9B9 ; XID_Continue # Mn [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT
A9BA..A9BB ; XID_Continue # Mc [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE
-A9BC ; XID_Continue # Mn JAVANESE VOWEL SIGN PEPET
-A9BD..A9C0 ; XID_Continue # Mc [4] JAVANESE CONSONANT SIGN KERET..JAVANESE PANGKON
+A9BC..A9BD ; XID_Continue # Mn [2] JAVANESE VOWEL SIGN PEPET..JAVANESE CONSONANT SIGN KERET
+A9BE..A9C0 ; XID_Continue # Mc [3] JAVANESE CONSONANT SIGN PENGKAL..JAVANESE PANGKON
A9CF ; XID_Continue # Lm JAVANESE PANGRANGKEP
A9D0..A9D9 ; XID_Continue # Nd [10] JAVANESE DIGIT ZERO..JAVANESE DIGIT NINE
A9E0..A9E4 ; XID_Continue # Lo [5] MYANMAR LETTER SHAN GHA..MYANMAR LETTER SHAN BHA
@@ -9188,7 +9287,7 @@ AB20..AB26 ; XID_Continue # Lo [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLAB
AB28..AB2E ; XID_Continue # Lo [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO
AB30..AB5A ; XID_Continue # L& [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
AB5C..AB5F ; XID_Continue # Lm [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
-AB60..AB65 ; XID_Continue # L& [6] LATIN SMALL LETTER SAKHA YAT..GREEK LETTER SMALL CAPITAL OMEGA
+AB60..AB67 ; XID_Continue # L& [8] LATIN SMALL LETTER SAKHA YAT..LATIN SMALL LETTER TS DIGRAPH WITH RETROFLEX HOOK
AB70..ABBF ; XID_Continue # L& [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETTER YA
ABC0..ABE2 ; XID_Continue # Lo [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM
ABE3..ABE4 ; XID_Continue # Mc [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP
@@ -9319,6 +9418,7 @@ FFDA..FFDC ; XID_Continue # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HA
10F27 ; XID_Continue # Lo OLD SOGDIAN LIGATURE AYIN-DALETH
10F30..10F45 ; XID_Continue # Lo [22] SOGDIAN LETTER ALEPH..SOGDIAN INDEPENDENT SHIN
10F46..10F50 ; XID_Continue # Mn [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW
+10FE0..10FF6 ; XID_Continue # Lo [23] ELYMAIC LETTER ALEPH..ELYMAIC LIGATURE ZAYIN-YODH
11000 ; XID_Continue # Mc BRAHMI SIGN CANDRABINDU
11001 ; XID_Continue # Mn BRAHMI SIGN ANUSVARA
11002 ; XID_Continue # Mc BRAHMI SIGN VISARGA
@@ -9406,6 +9506,7 @@ FFDA..FFDC ; XID_Continue # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HA
11447..1144A ; XID_Continue # Lo [4] NEWA SIGN AVAGRAHA..NEWA SIDDHI
11450..11459 ; XID_Continue # Nd [10] NEWA DIGIT ZERO..NEWA DIGIT NINE
1145E ; XID_Continue # Mn NEWA SANDHI MARK
+1145F ; XID_Continue # Lo NEWA LETTER VEDIC ANUSVARA
11480..114AF ; XID_Continue # Lo [48] TIRHUTA ANJI..TIRHUTA LETTER HA
114B0..114B2 ; XID_Continue # Mc [3] TIRHUTA VOWEL SIGN AA..TIRHUTA VOWEL SIGN II
114B3..114B8 ; XID_Continue # Mn [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL
@@ -9444,6 +9545,7 @@ FFDA..FFDC ; XID_Continue # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HA
116B0..116B5 ; XID_Continue # Mn [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
116B6 ; XID_Continue # Mc TAKRI SIGN VIRAMA
116B7 ; XID_Continue # Mn TAKRI SIGN NUKTA
+116B8 ; XID_Continue # Lo TAKRI LETTER ARCHAIC KHA
116C0..116C9 ; XID_Continue # Nd [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE
11700..1171A ; XID_Continue # Lo [27] AHOM LETTER KA..AHOM LETTER ALTERNATE BA
1171D..1171F ; XID_Continue # Mn [3] AHOM CONSONANT SIGN MEDIAL LA..AHOM CONSONANT SIGN MEDIAL LIGATING RA
@@ -9460,6 +9562,16 @@ FFDA..FFDC ; XID_Continue # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HA
118A0..118DF ; XID_Continue # L& [64] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI SMALL LETTER VIYO
118E0..118E9 ; XID_Continue # Nd [10] WARANG CITI DIGIT ZERO..WARANG CITI DIGIT NINE
118FF ; XID_Continue # Lo WARANG CITI OM
+119A0..119A7 ; XID_Continue # Lo [8] NANDINAGARI LETTER A..NANDINAGARI LETTER VOCALIC RR
+119AA..119D0 ; XID_Continue # Lo [39] NANDINAGARI LETTER E..NANDINAGARI LETTER RRA
+119D1..119D3 ; XID_Continue # Mc [3] NANDINAGARI VOWEL SIGN AA..NANDINAGARI VOWEL SIGN II
+119D4..119D7 ; XID_Continue # Mn [4] NANDINAGARI VOWEL SIGN U..NANDINAGARI VOWEL SIGN VOCALIC RR
+119DA..119DB ; XID_Continue # Mn [2] NANDINAGARI VOWEL SIGN E..NANDINAGARI VOWEL SIGN AI
+119DC..119DF ; XID_Continue # Mc [4] NANDINAGARI VOWEL SIGN O..NANDINAGARI SIGN VISARGA
+119E0 ; XID_Continue # Mn NANDINAGARI SIGN VIRAMA
+119E1 ; XID_Continue # Lo NANDINAGARI SIGN AVAGRAHA
+119E3 ; XID_Continue # Lo NANDINAGARI HEADSTROKE
+119E4 ; XID_Continue # Mc NANDINAGARI VOWEL SIGN PRISHTHAMATRA E
11A00 ; XID_Continue # Lo ZANABAZAR SQUARE LETTER A
11A01..11A0A ; XID_Continue # Mn [10] ZANABAZAR SQUARE VOWEL SIGN I..ZANABAZAR SQUARE VOWEL LENGTH MARK
11A0B..11A32 ; XID_Continue # Lo [40] ZANABAZAR SQUARE LETTER KA..ZANABAZAR SQUARE LETTER KSSA
@@ -9472,8 +9584,7 @@ FFDA..FFDC ; XID_Continue # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HA
11A51..11A56 ; XID_Continue # Mn [6] SOYOMBO VOWEL SIGN I..SOYOMBO VOWEL SIGN OE
11A57..11A58 ; XID_Continue # Mc [2] SOYOMBO VOWEL SIGN AI..SOYOMBO VOWEL SIGN AU
11A59..11A5B ; XID_Continue # Mn [3] SOYOMBO VOWEL SIGN VOCALIC R..SOYOMBO VOWEL LENGTH MARK
-11A5C..11A83 ; XID_Continue # Lo [40] SOYOMBO LETTER KA..SOYOMBO LETTER KSSA
-11A86..11A89 ; XID_Continue # Lo [4] SOYOMBO CLUSTER-INITIAL LETTER RA..SOYOMBO CLUSTER-INITIAL LETTER SA
+11A5C..11A89 ; XID_Continue # Lo [46] SOYOMBO LETTER KA..SOYOMBO CLUSTER-INITIAL LETTER SA
11A8A..11A96 ; XID_Continue # Mn [13] SOYOMBO FINAL CONSONANT SIGN G..SOYOMBO SIGN ANUSVARA
11A97 ; XID_Continue # Mc SOYOMBO SIGN VISARGA
11A98..11A99 ; XID_Continue # Mn [2] SOYOMBO GEMINATION MARK..SOYOMBO SUBJOINER
@@ -9537,15 +9648,19 @@ FFDA..FFDC ; XID_Continue # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HA
16B63..16B77 ; XID_Continue # Lo [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS
16B7D..16B8F ; XID_Continue # Lo [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ
16E40..16E7F ; XID_Continue # L& [64] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN SMALL LETTER Y
-16F00..16F44 ; XID_Continue # Lo [69] MIAO LETTER PA..MIAO LETTER HHA
+16F00..16F4A ; XID_Continue # Lo [75] MIAO LETTER PA..MIAO LETTER RTE
+16F4F ; XID_Continue # Mn MIAO SIGN CONSONANT MODIFIER BAR
16F50 ; XID_Continue # Lo MIAO LETTER NASALIZATION
-16F51..16F7E ; XID_Continue # Mc [46] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN NG
+16F51..16F87 ; XID_Continue # Mc [55] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN UI
16F8F..16F92 ; XID_Continue # Mn [4] MIAO TONE RIGHT..MIAO TONE BELOW
16F93..16F9F ; XID_Continue # Lm [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
16FE0..16FE1 ; XID_Continue # Lm [2] TANGUT ITERATION MARK..NUSHU ITERATION MARK
-17000..187F1 ; XID_Continue # Lo [6130] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F1
+16FE3 ; XID_Continue # Lm OLD CHINESE ITERATION MARK
+17000..187F7 ; XID_Continue # Lo [6136] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F7
18800..18AF2 ; XID_Continue # Lo [755] TANGUT COMPONENT-001..TANGUT COMPONENT-755
1B000..1B11E ; XID_Continue # Lo [287] KATAKANA LETTER ARCHAIC E..HENTAIGANA LETTER N-MU-MO-2
+1B150..1B152 ; XID_Continue # Lo [3] HIRAGANA LETTER SMALL WI..HIRAGANA LETTER SMALL WO
+1B164..1B167 ; XID_Continue # Lo [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N
1B170..1B2FB ; XID_Continue # Lo [396] NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB
1BC00..1BC6A ; XID_Continue # Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
1BC70..1BC7C ; XID_Continue # Lo [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK
@@ -9601,10 +9716,19 @@ FFDA..FFDC ; XID_Continue # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HA
1E01B..1E021 ; XID_Continue # Mn [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
1E023..1E024 ; XID_Continue # Mn [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
1E026..1E02A ; XID_Continue # Mn [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
+1E100..1E12C ; XID_Continue # Lo [45] NYIAKENG PUACHUE HMONG LETTER MA..NYIAKENG PUACHUE HMONG LETTER W
+1E130..1E136 ; XID_Continue # Mn [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D
+1E137..1E13D ; XID_Continue # Lm [7] NYIAKENG PUACHUE HMONG SIGN FOR PERSON..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER
+1E140..1E149 ; XID_Continue # Nd [10] NYIAKENG PUACHUE HMONG DIGIT ZERO..NYIAKENG PUACHUE HMONG DIGIT NINE
+1E14E ; XID_Continue # Lo NYIAKENG PUACHUE HMONG LOGOGRAM NYAJ
+1E2C0..1E2EB ; XID_Continue # Lo [44] WANCHO LETTER AA..WANCHO LETTER YIH
+1E2EC..1E2EF ; XID_Continue # Mn [4] WANCHO TONE TUP..WANCHO TONE KOINI
+1E2F0..1E2F9 ; XID_Continue # Nd [10] WANCHO DIGIT ZERO..WANCHO DIGIT NINE
1E800..1E8C4 ; XID_Continue # Lo [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON
1E8D0..1E8D6 ; XID_Continue # Mn [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
1E900..1E943 ; XID_Continue # L& [68] ADLAM CAPITAL LETTER ALIF..ADLAM SMALL LETTER SHA
1E944..1E94A ; XID_Continue # Mn [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA
+1E94B ; XID_Continue # Lm ADLAM NASALIZATION MARK
1E950..1E959 ; XID_Continue # Nd [10] ADLAM DIGIT ZERO..ADLAM DIGIT NINE
1EE00..1EE03 ; XID_Continue # Lo [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
1EE05..1EE1F ; XID_Continue # Lo [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
@@ -9647,7 +9771,7 @@ FFDA..FFDC ; XID_Continue # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HA
2F800..2FA1D ; XID_Continue # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
E0100..E01EF ; XID_Continue # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
-# Total code points: 128491
+# Total code points: 128770
# ================================================
@@ -9657,7 +9781,8 @@ E0100..E01EF ; XID_Continue # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTO
# + Cf (Format characters)
# + Variation_Selector
# - White_Space
-# - FFF9..FFFB (Annotation characters)
+# - FFF9..FFFB (Interlinear annotation format characters)
+# - 13430..13438 (Egyptian hieroglyph format characters)
# - Prepended_Concatenation_Mark (Exceptional format characters that should be visible)
00AD ; Default_Ignorable_Code_Point # Cf SOFT HYPHEN
@@ -9797,8 +9922,7 @@ E01F0..E0FFF ; Default_Ignorable_Code_Point # Cn [3600] <reserved-E01F0>..<rese
0E34..0E3A ; Grapheme_Extend # Mn [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU
0E47..0E4E ; Grapheme_Extend # Mn [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN
0EB1 ; Grapheme_Extend # Mn LAO VOWEL SIGN MAI KAN
-0EB4..0EB9 ; Grapheme_Extend # Mn [6] LAO VOWEL SIGN I..LAO VOWEL SIGN UU
-0EBB..0EBC ; Grapheme_Extend # Mn [2] LAO VOWEL SIGN MAI KON..LAO SEMIVOWEL SIGN LO
+0EB4..0EBC ; Grapheme_Extend # Mn [9] LAO VOWEL SIGN I..LAO SEMIVOWEL SIGN LO
0EC8..0ECD ; Grapheme_Extend # Mn [6] LAO TONE MAI EK..LAO NIGGAHITA
0F18..0F19 ; Grapheme_Extend # Mn [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
0F35 ; Grapheme_Extend # Mn TIBETAN MARK NGAS BZUNG NYI ZLA
@@ -9851,6 +9975,7 @@ E01F0..E0FFF ; Default_Ignorable_Code_Point # Cn [3600] <reserved-E01F0>..<rese
1ABE ; Grapheme_Extend # Me COMBINING PARENTHESES OVERLAY
1B00..1B03 ; Grapheme_Extend # Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
1B34 ; Grapheme_Extend # Mn BALINESE SIGN REREKAN
+1B35 ; Grapheme_Extend # Mc BALINESE VOWEL SIGN TEDUNG
1B36..1B3A ; Grapheme_Extend # Mn [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA
1B3C ; Grapheme_Extend # Mn BALINESE VOWEL SIGN LA LENGA
1B42 ; Grapheme_Extend # Mn BALINESE VOWEL SIGN PEPET
@@ -9902,7 +10027,7 @@ A947..A951 ; Grapheme_Extend # Mn [11] REJANG VOWEL SIGN I..REJANG CONSONANT
A980..A982 ; Grapheme_Extend # Mn [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR
A9B3 ; Grapheme_Extend # Mn JAVANESE SIGN CECAK TELU
A9B6..A9B9 ; Grapheme_Extend # Mn [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT
-A9BC ; Grapheme_Extend # Mn JAVANESE VOWEL SIGN PEPET
+A9BC..A9BD ; Grapheme_Extend # Mn [2] JAVANESE VOWEL SIGN PEPET..JAVANESE CONSONANT SIGN KERET
A9E5 ; Grapheme_Extend # Mn MYANMAR SIGN SHAN SAW
AA29..AA2E ; Grapheme_Extend # Mn [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE
AA31..AA32 ; Grapheme_Extend # Mn [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE
@@ -9987,6 +10112,9 @@ FF9E..FF9F ; Grapheme_Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK.
11727..1172B ; Grapheme_Extend # Mn [5] AHOM VOWEL SIGN AW..AHOM SIGN KILLER
1182F..11837 ; Grapheme_Extend # Mn [9] DOGRA VOWEL SIGN U..DOGRA SIGN ANUSVARA
11839..1183A ; Grapheme_Extend # Mn [2] DOGRA SIGN VIRAMA..DOGRA SIGN NUKTA
+119D4..119D7 ; Grapheme_Extend # Mn [4] NANDINAGARI VOWEL SIGN U..NANDINAGARI VOWEL SIGN VOCALIC RR
+119DA..119DB ; Grapheme_Extend # Mn [2] NANDINAGARI VOWEL SIGN E..NANDINAGARI VOWEL SIGN AI
+119E0 ; Grapheme_Extend # Mn NANDINAGARI SIGN VIRAMA
11A01..11A0A ; Grapheme_Extend # Mn [10] ZANABAZAR SQUARE VOWEL SIGN I..ZANABAZAR SQUARE VOWEL LENGTH MARK
11A33..11A38 ; Grapheme_Extend # Mn [6] ZANABAZAR SQUARE FINAL CONSONANT MARK..ZANABAZAR SQUARE SIGN ANUSVARA
11A3B..11A3E ; Grapheme_Extend # Mn [4] ZANABAZAR SQUARE CLUSTER-FINAL LETTER YA..ZANABAZAR SQUARE CLUSTER-FINAL LETTER VA
@@ -10013,6 +10141,7 @@ FF9E..FF9F ; Grapheme_Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK.
11EF3..11EF4 ; Grapheme_Extend # Mn [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
16AF0..16AF4 ; Grapheme_Extend # Mn [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
16B30..16B36 ; Grapheme_Extend # Mn [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
+16F4F ; Grapheme_Extend # Mn MIAO SIGN CONSONANT MODIFIER BAR
16F8F..16F92 ; Grapheme_Extend # Mn [4] MIAO TONE RIGHT..MIAO TONE BELOW
1BC9D..1BC9E ; Grapheme_Extend # Mn [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
1D165 ; Grapheme_Extend # Mc MUSICAL SYMBOL COMBINING STEM
@@ -10033,12 +10162,14 @@ FF9E..FF9F ; Grapheme_Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK.
1E01B..1E021 ; Grapheme_Extend # Mn [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
1E023..1E024 ; Grapheme_Extend # Mn [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
1E026..1E02A ; Grapheme_Extend # Mn [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
+1E130..1E136 ; Grapheme_Extend # Mn [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D
+1E2EC..1E2EF ; Grapheme_Extend # Mn [4] WANCHO TONE TUP..WANCHO TONE KOINI
1E8D0..1E8D6 ; Grapheme_Extend # Mn [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
1E944..1E94A ; Grapheme_Extend # Mn [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA
E0020..E007F ; Grapheme_Extend # Cf [96] TAG SPACE..CANCEL TAG
E0100..E01EF ; Grapheme_Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
-# Total code points: 1943
+# Total code points: 1965
# ================================================
@@ -10313,6 +10444,7 @@ E0100..E01EF ; Grapheme_Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELE
0C58..0C5A ; Grapheme_Base # Lo [3] TELUGU LETTER TSA..TELUGU LETTER RRRA
0C60..0C61 ; Grapheme_Base # Lo [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
0C66..0C6F ; Grapheme_Base # Nd [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE
+0C77 ; Grapheme_Base # Po TELUGU SIGN SIDDHAM
0C78..0C7E ; Grapheme_Base # No [7] TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR..TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR
0C7F ; Grapheme_Base # So TELUGU SIGN TUUMU
0C80 ; Grapheme_Base # Lo KANNADA SIGN SPACING CANDRABINDU
@@ -10371,16 +10503,10 @@ E0100..E01EF ; Grapheme_Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELE
0E5A..0E5B ; Grapheme_Base # Po [2] THAI CHARACTER ANGKHANKHU..THAI CHARACTER KHOMUT
0E81..0E82 ; Grapheme_Base # Lo [2] LAO LETTER KO..LAO LETTER KHO SUNG
0E84 ; Grapheme_Base # Lo LAO LETTER KHO TAM
-0E87..0E88 ; Grapheme_Base # Lo [2] LAO LETTER NGO..LAO LETTER CO
-0E8A ; Grapheme_Base # Lo LAO LETTER SO TAM
-0E8D ; Grapheme_Base # Lo LAO LETTER NYO
-0E94..0E97 ; Grapheme_Base # Lo [4] LAO LETTER DO..LAO LETTER THO TAM
-0E99..0E9F ; Grapheme_Base # Lo [7] LAO LETTER NO..LAO LETTER FO SUNG
-0EA1..0EA3 ; Grapheme_Base # Lo [3] LAO LETTER MO..LAO LETTER LO LING
+0E86..0E8A ; Grapheme_Base # Lo [5] LAO LETTER PALI GHA..LAO LETTER SO TAM
+0E8C..0EA3 ; Grapheme_Base # Lo [24] LAO LETTER PALI JHA..LAO LETTER LO LING
0EA5 ; Grapheme_Base # Lo LAO LETTER LO LOOT
-0EA7 ; Grapheme_Base # Lo LAO LETTER WO
-0EAA..0EAB ; Grapheme_Base # Lo [2] LAO LETTER SO SUNG..LAO LETTER HO SUNG
-0EAD..0EB0 ; Grapheme_Base # Lo [4] LAO LETTER O..LAO VOWEL SIGN A
+0EA7..0EB0 ; Grapheme_Base # Lo [10] LAO LETTER WO..LAO VOWEL SIGN A
0EB2..0EB3 ; Grapheme_Base # Lo [2] LAO VOWEL SIGN AA..LAO VOWEL SIGN AM
0EBD ; Grapheme_Base # Lo LAO SEMIVOWEL SIGN NYO
0EC0..0EC4 ; Grapheme_Base # Lo [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI
@@ -10470,7 +10596,8 @@ E0100..E01EF ; Grapheme_Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELE
13F8..13FD ; Grapheme_Base # L& [6] CHEROKEE SMALL LETTER YE..CHEROKEE SMALL LETTER MV
1400 ; Grapheme_Base # Pd CANADIAN SYLLABICS HYPHEN
1401..166C ; Grapheme_Base # Lo [620] CANADIAN SYLLABICS E..CANADIAN SYLLABICS CARRIER TTSA
-166D..166E ; Grapheme_Base # Po [2] CANADIAN SYLLABICS CHI SIGN..CANADIAN SYLLABICS FULL STOP
+166D ; Grapheme_Base # So CANADIAN SYLLABICS CHI SIGN
+166E ; Grapheme_Base # Po CANADIAN SYLLABICS FULL STOP
166F..167F ; Grapheme_Base # Lo [17] CANADIAN SYLLABICS QAI..CANADIAN SYLLABICS BLACKFOOT W
1680 ; Grapheme_Base # Zs OGHAM SPACE MARK
1681..169A ; Grapheme_Base # Lo [26] OGHAM LETTER BEITH..OGHAM LETTER PEITH
@@ -10540,7 +10667,6 @@ E0100..E01EF ; Grapheme_Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELE
1AA8..1AAD ; Grapheme_Base # Po [6] TAI THAM SIGN KAAN..TAI THAM SIGN CAANG
1B04 ; Grapheme_Base # Mc BALINESE SIGN BISAH
1B05..1B33 ; Grapheme_Base # Lo [47] BALINESE LETTER AKARA..BALINESE LETTER HA
-1B35 ; Grapheme_Base # Mc BALINESE VOWEL SIGN TEDUNG
1B3B ; Grapheme_Base # Mc BALINESE VOWEL SIGN RA REPA TEDUNG
1B3D..1B41 ; Grapheme_Base # Mc [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG
1B43..1B44 ; Grapheme_Base # Mc [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG
@@ -10579,10 +10705,10 @@ E0100..E01EF ; Grapheme_Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELE
1CD3 ; Grapheme_Base # Po VEDIC SIGN NIHSHVASA
1CE1 ; Grapheme_Base # Mc VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA
1CE9..1CEC ; Grapheme_Base # Lo [4] VEDIC SIGN ANUSVARA ANTARGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL
-1CEE..1CF1 ; Grapheme_Base # Lo [4] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ANUSVARA UBHAYATO MUKHA
-1CF2..1CF3 ; Grapheme_Base # Mc [2] VEDIC SIGN ARDHAVISARGA..VEDIC SIGN ROTATED ARDHAVISARGA
+1CEE..1CF3 ; Grapheme_Base # Lo [6] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ROTATED ARDHAVISARGA
1CF5..1CF6 ; Grapheme_Base # Lo [2] VEDIC SIGN JIHVAMULIYA..VEDIC SIGN UPADHMANIYA
1CF7 ; Grapheme_Base # Mc VEDIC SIGN ATIKRAMA
+1CFA ; Grapheme_Base # Lo VEDIC SIGN DOUBLE ANUSVARA ANTARGOMUKHA
1D00..1D2B ; Grapheme_Base # L& [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL
1D2C..1D6A ; Grapheme_Base # Lm [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI
1D6B..1D77 ; Grapheme_Base # L& [13] LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G
@@ -10811,8 +10937,7 @@ E0100..E01EF ; Grapheme_Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELE
2B47..2B4C ; Grapheme_Base # Sm [6] REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW..RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
2B4D..2B73 ; Grapheme_Base # So [39] DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW..DOWNWARDS TRIANGLE-HEADED ARROW TO BAR
2B76..2B95 ; Grapheme_Base # So [32] NORTH WEST TRIANGLE-HEADED ARROW TO BAR..RIGHTWARDS BLACK ARROW
-2B98..2BC8 ; Grapheme_Base # So [49] THREE-D TOP-LIGHTED LEFTWARDS EQUILATERAL ARROWHEAD..BLACK MEDIUM RIGHT-POINTING TRIANGLE CENTRED
-2BCA..2BFE ; Grapheme_Base # So [53] TOP HALF BLACK CIRCLE..REVERSED RIGHT ANGLE
+2B98..2BFF ; Grapheme_Base # So [104] THREE-D TOP-LIGHTED LEFTWARDS EQUILATERAL ARROWHEAD..HELLSCHREIBER PAUSE SYMBOL
2C00..2C2E ; Grapheme_Base # L& [47] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE
2C30..2C5E ; Grapheme_Base # L& [47] GLAGOLITIC SMALL LETTER AZU..GLAGOLITIC SMALL LETTER LATINATE MYSLITE
2C60..2C7B ; Grapheme_Base # L& [28] LATIN CAPITAL LETTER L WITH DOUBLE BAR..LATIN LETTER SMALL CAPITAL TURNED E
@@ -10876,7 +11001,7 @@ E0100..E01EF ; Grapheme_Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELE
2E40 ; Grapheme_Base # Pd DOUBLE HYPHEN
2E41 ; Grapheme_Base # Po REVERSED COMMA
2E42 ; Grapheme_Base # Ps DOUBLE LOW-REVERSED-9 QUOTATION MARK
-2E43..2E4E ; Grapheme_Base # Po [12] DASH WITH LEFT UPTURN..PUNCTUS ELEVATUS MARK
+2E43..2E4F ; Grapheme_Base # Po [13] DASH WITH LEFT UPTURN..CORNISH VERSE DIVIDER
2E80..2E99 ; Grapheme_Base # So [26] CJK RADICAL REPEAT..CJK RADICAL RAP
2E9B..2EF3 ; Grapheme_Base # So [89] CJK RADICAL CHOKE..CJK RADICAL C-SIMPLIFIED TURTLE
2F00..2FD5 ; Grapheme_Base # So [214] KANGXI RADICAL ONE..KANGXI RADICAL FLUTE
@@ -10946,8 +11071,7 @@ E0100..E01EF ; Grapheme_Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELE
3280..3289 ; Grapheme_Base # No [10] CIRCLED IDEOGRAPH ONE..CIRCLED IDEOGRAPH TEN
328A..32B0 ; Grapheme_Base # So [39] CIRCLED IDEOGRAPH MOON..CIRCLED IDEOGRAPH NIGHT
32B1..32BF ; Grapheme_Base # No [15] CIRCLED NUMBER THIRTY SIX..CIRCLED NUMBER FIFTY
-32C0..32FE ; Grapheme_Base # So [63] IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..CIRCLED KATAKANA WO
-3300..33FF ; Grapheme_Base # So [256] SQUARE APAATO..SQUARE GAL
+32C0..33FF ; Grapheme_Base # So [320] IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..SQUARE GAL
3400..4DB5 ; Grapheme_Base # Lo [6582] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DB5
4DC0..4DFF ; Grapheme_Base # So [64] HEXAGRAM FOR THE CREATIVE HEAVEN..HEXAGRAM FOR BEFORE COMPLETION
4E00..9FEF ; Grapheme_Base # Lo [20976] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FEF
@@ -10984,7 +11108,8 @@ A788 ; Grapheme_Base # Lm MODIFIER LETTER LOW CIRCUMFLEX ACCENT
A789..A78A ; Grapheme_Base # Sk [2] MODIFIER LETTER COLON..MODIFIER LETTER SHORT EQUALS SIGN
A78B..A78E ; Grapheme_Base # L& [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
A78F ; Grapheme_Base # Lo LATIN LETTER SINOLOGICAL DOT
-A790..A7B9 ; Grapheme_Base # L& [42] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER U WITH STROKE
+A790..A7BF ; Grapheme_Base # L& [48] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER GLOTTAL U
+A7C2..A7C6 ; Grapheme_Base # L& [5] LATIN CAPITAL LETTER ANGLICANA W..LATIN CAPITAL LETTER Z WITH PALATAL HOOK
A7F7 ; Grapheme_Base # Lo LATIN EPIGRAPHIC LETTER SIDEWAYS I
A7F8..A7F9 ; Grapheme_Base # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
A7FA ; Grapheme_Base # L& LATIN LETTER SMALL CAPITAL TURNED M
@@ -11022,7 +11147,7 @@ A983 ; Grapheme_Base # Mc JAVANESE SIGN WIGNYAN
A984..A9B2 ; Grapheme_Base # Lo [47] JAVANESE LETTER A..JAVANESE LETTER HA
A9B4..A9B5 ; Grapheme_Base # Mc [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG
A9BA..A9BB ; Grapheme_Base # Mc [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE
-A9BD..A9C0 ; Grapheme_Base # Mc [4] JAVANESE CONSONANT SIGN KERET..JAVANESE PANGKON
+A9BE..A9C0 ; Grapheme_Base # Mc [3] JAVANESE CONSONANT SIGN PENGKAL..JAVANESE PANGKON
A9C1..A9CD ; Grapheme_Base # Po [13] JAVANESE LEFT RERENGGAN..JAVANESE TURNED PADA PISELEH
A9CF ; Grapheme_Base # Lm JAVANESE PANGRANGKEP
A9D0..A9D9 ; Grapheme_Base # Nd [10] JAVANESE DIGIT ZERO..JAVANESE DIGIT NINE
@@ -11071,7 +11196,7 @@ AB28..AB2E ; Grapheme_Base # Lo [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABL
AB30..AB5A ; Grapheme_Base # L& [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
AB5B ; Grapheme_Base # Sk MODIFIER BREVE WITH INVERTED BREVE
AB5C..AB5F ; Grapheme_Base # Lm [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
-AB60..AB65 ; Grapheme_Base # L& [6] LATIN SMALL LETTER SAKHA YAT..GREEK LETTER SMALL CAPITAL OMEGA
+AB60..AB67 ; Grapheme_Base # L& [8] LATIN SMALL LETTER SAKHA YAT..LATIN SMALL LETTER TS DIGRAPH WITH RETROFLEX HOOK
AB70..ABBF ; Grapheme_Base # L& [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETTER YA
ABC0..ABE2 ; Grapheme_Base # Lo [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM
ABE3..ABE4 ; Grapheme_Base # Mc [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP
@@ -11309,6 +11434,7 @@ FFFC..FFFD ; Grapheme_Base # So [2] OBJECT REPLACEMENT CHARACTER..REPLACEME
10F30..10F45 ; Grapheme_Base # Lo [22] SOGDIAN LETTER ALEPH..SOGDIAN INDEPENDENT SHIN
10F51..10F54 ; Grapheme_Base # No [4] SOGDIAN NUMBER ONE..SOGDIAN NUMBER ONE HUNDRED
10F55..10F59 ; Grapheme_Base # Po [5] SOGDIAN PUNCTUATION TWO VERTICAL BARS..SOGDIAN PUNCTUATION HALF CIRCLE WITH DOT
+10FE0..10FF6 ; Grapheme_Base # Lo [23] ELYMAIC LETTER ALEPH..ELYMAIC LIGATURE ZAYIN-YODH
11000 ; Grapheme_Base # Mc BRAHMI SIGN CANDRABINDU
11002 ; Grapheme_Base # Mc BRAHMI SIGN VISARGA
11003..11037 ; Grapheme_Base # Lo [53] BRAHMI SIGN JIHVAMULIYA..BRAHMI LETTER OLD TAMIL NNNA
@@ -11384,6 +11510,7 @@ FFFC..FFFD ; Grapheme_Base # So [2] OBJECT REPLACEMENT CHARACTER..REPLACEME
11450..11459 ; Grapheme_Base # Nd [10] NEWA DIGIT ZERO..NEWA DIGIT NINE
1145B ; Grapheme_Base # Po NEWA PLACEHOLDER MARK
1145D ; Grapheme_Base # Po NEWA INSERTION SIGN
+1145F ; Grapheme_Base # Lo NEWA LETTER VEDIC ANUSVARA
11480..114AF ; Grapheme_Base # Lo [48] TIRHUTA ANJI..TIRHUTA LETTER HA
114B1..114B2 ; Grapheme_Base # Mc [2] TIRHUTA VOWEL SIGN I..TIRHUTA VOWEL SIGN II
114B9 ; Grapheme_Base # Mc TIRHUTA VOWEL SIGN E
@@ -11412,6 +11539,7 @@ FFFC..FFFD ; Grapheme_Base # So [2] OBJECT REPLACEMENT CHARACTER..REPLACEME
116AC ; Grapheme_Base # Mc TAKRI SIGN VISARGA
116AE..116AF ; Grapheme_Base # Mc [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II
116B6 ; Grapheme_Base # Mc TAKRI SIGN VIRAMA
+116B8 ; Grapheme_Base # Lo TAKRI LETTER ARCHAIC KHA
116C0..116C9 ; Grapheme_Base # Nd [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE
11700..1171A ; Grapheme_Base # Lo [27] AHOM LETTER KA..AHOM LETTER ALTERNATE BA
11720..11721 ; Grapheme_Base # Mc [2] AHOM VOWEL SIGN A..AHOM VOWEL SIGN AA
@@ -11428,6 +11556,14 @@ FFFC..FFFD ; Grapheme_Base # So [2] OBJECT REPLACEMENT CHARACTER..REPLACEME
118E0..118E9 ; Grapheme_Base # Nd [10] WARANG CITI DIGIT ZERO..WARANG CITI DIGIT NINE
118EA..118F2 ; Grapheme_Base # No [9] WARANG CITI NUMBER TEN..WARANG CITI NUMBER NINETY
118FF ; Grapheme_Base # Lo WARANG CITI OM
+119A0..119A7 ; Grapheme_Base # Lo [8] NANDINAGARI LETTER A..NANDINAGARI LETTER VOCALIC RR
+119AA..119D0 ; Grapheme_Base # Lo [39] NANDINAGARI LETTER E..NANDINAGARI LETTER RRA
+119D1..119D3 ; Grapheme_Base # Mc [3] NANDINAGARI VOWEL SIGN AA..NANDINAGARI VOWEL SIGN II
+119DC..119DF ; Grapheme_Base # Mc [4] NANDINAGARI VOWEL SIGN O..NANDINAGARI SIGN VISARGA
+119E1 ; Grapheme_Base # Lo NANDINAGARI SIGN AVAGRAHA
+119E2 ; Grapheme_Base # Po NANDINAGARI SIGN SIDDHAM
+119E3 ; Grapheme_Base # Lo NANDINAGARI HEADSTROKE
+119E4 ; Grapheme_Base # Mc NANDINAGARI VOWEL SIGN PRISHTHAMATRA E
11A00 ; Grapheme_Base # Lo ZANABAZAR SQUARE LETTER A
11A0B..11A32 ; Grapheme_Base # Lo [40] ZANABAZAR SQUARE LETTER KA..ZANABAZAR SQUARE LETTER KSSA
11A39 ; Grapheme_Base # Mc ZANABAZAR SQUARE SIGN VISARGA
@@ -11435,8 +11571,7 @@ FFFC..FFFD ; Grapheme_Base # So [2] OBJECT REPLACEMENT CHARACTER..REPLACEME
11A3F..11A46 ; Grapheme_Base # Po [8] ZANABAZAR SQUARE INITIAL HEAD MARK..ZANABAZAR SQUARE CLOSING DOUBLE-LINED HEAD MARK
11A50 ; Grapheme_Base # Lo SOYOMBO LETTER A
11A57..11A58 ; Grapheme_Base # Mc [2] SOYOMBO VOWEL SIGN AI..SOYOMBO VOWEL SIGN AU
-11A5C..11A83 ; Grapheme_Base # Lo [40] SOYOMBO LETTER KA..SOYOMBO LETTER KSSA
-11A86..11A89 ; Grapheme_Base # Lo [4] SOYOMBO CLUSTER-INITIAL LETTER RA..SOYOMBO CLUSTER-INITIAL LETTER SA
+11A5C..11A89 ; Grapheme_Base # Lo [46] SOYOMBO LETTER KA..SOYOMBO CLUSTER-INITIAL LETTER SA
11A97 ; Grapheme_Base # Mc SOYOMBO SIGN VISARGA
11A9A..11A9C ; Grapheme_Base # Po [3] SOYOMBO MARK TSHEG..SOYOMBO MARK DOUBLE SHAD
11A9D ; Grapheme_Base # Lo SOYOMBO MARK PLUTA
@@ -11471,6 +11606,11 @@ FFFC..FFFD ; Grapheme_Base # So [2] OBJECT REPLACEMENT CHARACTER..REPLACEME
11EE0..11EF2 ; Grapheme_Base # Lo [19] MAKASAR LETTER KA..MAKASAR ANGKA
11EF5..11EF6 ; Grapheme_Base # Mc [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O
11EF7..11EF8 ; Grapheme_Base # Po [2] MAKASAR PASSIMBANG..MAKASAR END OF SECTION
+11FC0..11FD4 ; Grapheme_Base # No [21] TAMIL FRACTION ONE THREE-HUNDRED-AND-TWENTIETH..TAMIL FRACTION DOWNSCALING FACTOR KIIZH
+11FD5..11FDC ; Grapheme_Base # So [8] TAMIL SIGN NEL..TAMIL SIGN MUKKURUNI
+11FDD..11FE0 ; Grapheme_Base # Sc [4] TAMIL SIGN KAACU..TAMIL SIGN VARAAKAN
+11FE1..11FF1 ; Grapheme_Base # So [17] TAMIL SIGN PAARAM..TAMIL SIGN VAKAIYARAA
+11FFF ; Grapheme_Base # Po TAMIL PUNCTUATION END OF TEXT
12000..12399 ; Grapheme_Base # Lo [922] CUNEIFORM SIGN A..CUNEIFORM SIGN U U
12400..1246E ; Grapheme_Base # Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
12470..12474 ; Grapheme_Base # Po [5] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON
@@ -11496,14 +11636,18 @@ FFFC..FFFD ; Grapheme_Base # So [2] OBJECT REPLACEMENT CHARACTER..REPLACEME
16E40..16E7F ; Grapheme_Base # L& [64] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN SMALL LETTER Y
16E80..16E96 ; Grapheme_Base # No [23] MEDEFAIDRIN DIGIT ZERO..MEDEFAIDRIN DIGIT THREE ALTERNATE FORM
16E97..16E9A ; Grapheme_Base # Po [4] MEDEFAIDRIN COMMA..MEDEFAIDRIN EXCLAMATION OH
-16F00..16F44 ; Grapheme_Base # Lo [69] MIAO LETTER PA..MIAO LETTER HHA
+16F00..16F4A ; Grapheme_Base # Lo [75] MIAO LETTER PA..MIAO LETTER RTE
16F50 ; Grapheme_Base # Lo MIAO LETTER NASALIZATION
-16F51..16F7E ; Grapheme_Base # Mc [46] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN NG
+16F51..16F87 ; Grapheme_Base # Mc [55] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN UI
16F93..16F9F ; Grapheme_Base # Lm [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
16FE0..16FE1 ; Grapheme_Base # Lm [2] TANGUT ITERATION MARK..NUSHU ITERATION MARK
-17000..187F1 ; Grapheme_Base # Lo [6130] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F1
+16FE2 ; Grapheme_Base # Po OLD CHINESE HOOK MARK
+16FE3 ; Grapheme_Base # Lm OLD CHINESE ITERATION MARK
+17000..187F7 ; Grapheme_Base # Lo [6136] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F7
18800..18AF2 ; Grapheme_Base # Lo [755] TANGUT COMPONENT-001..TANGUT COMPONENT-755
1B000..1B11E ; Grapheme_Base # Lo [287] KATAKANA LETTER ARCHAIC E..HENTAIGANA LETTER N-MU-MO-2
+1B150..1B152 ; Grapheme_Base # Lo [3] HIRAGANA LETTER SMALL WI..HIRAGANA LETTER SMALL WO
+1B164..1B167 ; Grapheme_Base # Lo [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N
1B170..1B2FB ; Grapheme_Base # Lo [396] NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB
1BC00..1BC6A ; Grapheme_Base # Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
1BC70..1BC7C ; Grapheme_Base # Lo [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK
@@ -11572,9 +11716,18 @@ FFFC..FFFD ; Grapheme_Base # So [2] OBJECT REPLACEMENT CHARACTER..REPLACEME
1DA76..1DA83 ; Grapheme_Base # So [14] SIGNWRITING LIMB COMBINATION..SIGNWRITING LOCATION DEPTH
1DA85..1DA86 ; Grapheme_Base # So [2] SIGNWRITING LOCATION TORSO..SIGNWRITING LOCATION LIMBS DIGITS
1DA87..1DA8B ; Grapheme_Base # Po [5] SIGNWRITING COMMA..SIGNWRITING PARENTHESIS
+1E100..1E12C ; Grapheme_Base # Lo [45] NYIAKENG PUACHUE HMONG LETTER MA..NYIAKENG PUACHUE HMONG LETTER W
+1E137..1E13D ; Grapheme_Base # Lm [7] NYIAKENG PUACHUE HMONG SIGN FOR PERSON..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER
+1E140..1E149 ; Grapheme_Base # Nd [10] NYIAKENG PUACHUE HMONG DIGIT ZERO..NYIAKENG PUACHUE HMONG DIGIT NINE
+1E14E ; Grapheme_Base # Lo NYIAKENG PUACHUE HMONG LOGOGRAM NYAJ
+1E14F ; Grapheme_Base # So NYIAKENG PUACHUE HMONG CIRCLED CA
+1E2C0..1E2EB ; Grapheme_Base # Lo [44] WANCHO LETTER AA..WANCHO LETTER YIH
+1E2F0..1E2F9 ; Grapheme_Base # Nd [10] WANCHO DIGIT ZERO..WANCHO DIGIT NINE
+1E2FF ; Grapheme_Base # Sc WANCHO NGUN SIGN
1E800..1E8C4 ; Grapheme_Base # Lo [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON
1E8C7..1E8CF ; Grapheme_Base # No [9] MENDE KIKAKUI DIGIT ONE..MENDE KIKAKUI DIGIT NINE
1E900..1E943 ; Grapheme_Base # L& [68] ADLAM CAPITAL LETTER ALIF..ADLAM SMALL LETTER SHA
+1E94B ; Grapheme_Base # Lm ADLAM NASALIZATION MARK
1E950..1E959 ; Grapheme_Base # Nd [10] ADLAM DIGIT ZERO..ADLAM DIGIT NINE
1E95E..1E95F ; Grapheme_Base # Po [2] ADLAM INITIAL EXCLAMATION MARK..ADLAM INITIAL QUESTION MARK
1EC71..1ECAB ; Grapheme_Base # No [59] INDIC SIYAQ NUMBER ONE..INDIC SIYAQ NUMBER PREFIXED NINE
@@ -11582,6 +11735,9 @@ FFFC..FFFD ; Grapheme_Base # So [2] OBJECT REPLACEMENT CHARACTER..REPLACEME
1ECAD..1ECAF ; Grapheme_Base # No [3] INDIC SIYAQ FRACTION ONE QUARTER..INDIC SIYAQ FRACTION THREE QUARTERS
1ECB0 ; Grapheme_Base # Sc INDIC SIYAQ RUPEE MARK
1ECB1..1ECB4 ; Grapheme_Base # No [4] INDIC SIYAQ NUMBER ALTERNATE ONE..INDIC SIYAQ ALTERNATE LAKH MARK
+1ED01..1ED2D ; Grapheme_Base # No [45] OTTOMAN SIYAQ NUMBER ONE..OTTOMAN SIYAQ NUMBER NINETY THOUSAND
+1ED2E ; Grapheme_Base # So OTTOMAN SIYAQ MARRATAN
+1ED2F..1ED3D ; Grapheme_Base # No [15] OTTOMAN SIYAQ ALTERNATE NUMBER TWO..OTTOMAN SIYAQ FRACTION ONE SIXTH
1EE00..1EE03 ; Grapheme_Base # Lo [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
1EE05..1EE1F ; Grapheme_Base # Lo [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
1EE21..1EE22 ; Grapheme_Base # Lo [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM
@@ -11623,7 +11779,7 @@ FFFC..FFFD ; Grapheme_Base # So [2] OBJECT REPLACEMENT CHARACTER..REPLACEME
1F0C1..1F0CF ; Grapheme_Base # So [15] PLAYING CARD ACE OF DIAMONDS..PLAYING CARD BLACK JOKER
1F0D1..1F0F5 ; Grapheme_Base # So [37] PLAYING CARD ACE OF CLUBS..PLAYING CARD TRUMP-21
1F100..1F10C ; Grapheme_Base # No [13] DIGIT ZERO FULL STOP..DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ZERO
-1F110..1F16B ; Grapheme_Base # So [92] PARENTHESIZED LATIN CAPITAL LETTER A..RAISED MD SIGN
+1F110..1F16C ; Grapheme_Base # So [93] PARENTHESIZED LATIN CAPITAL LETTER A..RAISED MR SIGN
1F170..1F1AC ; Grapheme_Base # So [61] NEGATIVE SQUARED LATIN CAPITAL LETTER A..SQUARED VOD
1F1E6..1F202 ; Grapheme_Base # So [29] REGIONAL INDICATOR SYMBOL LETTER A..SQUARED KATAKANA SA
1F210..1F23B ; Grapheme_Base # So [44] SQUARED CJK UNIFIED IDEOGRAPH-624B..SQUARED CJK UNIFIED IDEOGRAPH-914D
@@ -11632,26 +11788,29 @@ FFFC..FFFD ; Grapheme_Base # So [2] OBJECT REPLACEMENT CHARACTER..REPLACEME
1F260..1F265 ; Grapheme_Base # So [6] ROUNDED SYMBOL FOR FU..ROUNDED SYMBOL FOR CAI
1F300..1F3FA ; Grapheme_Base # So [251] CYCLONE..AMPHORA
1F3FB..1F3FF ; Grapheme_Base # Sk [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6
-1F400..1F6D4 ; Grapheme_Base # So [725] RAT..PAGODA
+1F400..1F6D5 ; Grapheme_Base # So [726] RAT..HINDU TEMPLE
1F6E0..1F6EC ; Grapheme_Base # So [13] HAMMER AND WRENCH..AIRPLANE ARRIVING
-1F6F0..1F6F9 ; Grapheme_Base # So [10] SATELLITE..SKATEBOARD
+1F6F0..1F6FA ; Grapheme_Base # So [11] SATELLITE..AUTO RICKSHAW
1F700..1F773 ; Grapheme_Base # So [116] ALCHEMICAL SYMBOL FOR QUINTESSENCE..ALCHEMICAL SYMBOL FOR HALF OUNCE
1F780..1F7D8 ; Grapheme_Base # So [89] BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..NEGATIVE CIRCLED SQUARE
+1F7E0..1F7EB ; Grapheme_Base # So [12] LARGE ORANGE CIRCLE..LARGE BROWN SQUARE
1F800..1F80B ; Grapheme_Base # So [12] LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
1F810..1F847 ; Grapheme_Base # So [56] LEFTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD..DOWNWARDS HEAVY ARROW
1F850..1F859 ; Grapheme_Base # So [10] LEFTWARDS SANS-SERIF ARROW..UP DOWN SANS-SERIF ARROW
1F860..1F887 ; Grapheme_Base # So [40] WIDE-HEADED LEFTWARDS LIGHT BARB ARROW..WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW
1F890..1F8AD ; Grapheme_Base # So [30] LEFTWARDS TRIANGLE ARROWHEAD..WHITE ARROW SHAFT WIDTH TWO THIRDS
1F900..1F90B ; Grapheme_Base # So [12] CIRCLED CROSS FORMEE WITH FOUR DOTS..DOWNWARD FACING NOTCHED HOOK WITH DOT
-1F910..1F93E ; Grapheme_Base # So [47] ZIPPER-MOUTH FACE..HANDBALL
-1F940..1F970 ; Grapheme_Base # So [49] WILTED FLOWER..SMILING FACE WITH SMILING EYES AND THREE HEARTS
+1F90D..1F971 ; Grapheme_Base # So [101] WHITE HEART..YAWNING FACE
1F973..1F976 ; Grapheme_Base # So [4] FACE WITH PARTY HORN AND PARTY HAT..FREEZING FACE
-1F97A ; Grapheme_Base # So FACE WITH PLEADING EYES
-1F97C..1F9A2 ; Grapheme_Base # So [39] LAB COAT..SWAN
-1F9B0..1F9B9 ; Grapheme_Base # So [10] EMOJI COMPONENT RED HAIR..SUPERVILLAIN
-1F9C0..1F9C2 ; Grapheme_Base # So [3] CHEESE WEDGE..SALT SHAKER
-1F9D0..1F9FF ; Grapheme_Base # So [48] FACE WITH MONOCLE..NAZAR AMULET
+1F97A..1F9A2 ; Grapheme_Base # So [41] FACE WITH PLEADING EYES..SWAN
+1F9A5..1F9AA ; Grapheme_Base # So [6] SLOTH..OYSTER
+1F9AE..1F9CA ; Grapheme_Base # So [29] GUIDE DOG..ICE CUBE
+1F9CD..1FA53 ; Grapheme_Base # So [135] STANDING PERSON..BLACK CHESS KNIGHT-BISHOP
1FA60..1FA6D ; Grapheme_Base # So [14] XIANGQI RED GENERAL..XIANGQI BLACK SOLDIER
+1FA70..1FA73 ; Grapheme_Base # So [4] BALLET SHOES..SHORTS
+1FA78..1FA7A ; Grapheme_Base # So [3] DROP OF BLOOD..STETHOSCOPE
+1FA80..1FA82 ; Grapheme_Base # So [3] YO-YO..PARACHUTE
+1FA90..1FA95 ; Grapheme_Base # So [6] RINGED PLANET..BANJO
20000..2A6D6 ; Grapheme_Base # Lo [42711] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6D6
2A700..2B734 ; Grapheme_Base # Lo [4149] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B734
2B740..2B81D ; Grapheme_Base # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
@@ -11659,7 +11818,7 @@ FFFC..FFFD ; Grapheme_Base # So [2] OBJECT REPLACEMENT CHARACTER..REPLACEME
2CEB0..2EBE0 ; Grapheme_Base # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
2F800..2FA1D ; Grapheme_Base # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
-# Total code points: 135374
+# Total code points: 135898
# ================================================
@@ -11679,6 +11838,7 @@ FFFC..FFFD ; Grapheme_Base # So [2] OBJECT REPLACEMENT CHARACTER..REPLACEME
0D4D ; Grapheme_Link # Mn MALAYALAM SIGN VIRAMA
0DCA ; Grapheme_Link # Mn SINHALA SIGN AL-LAKUNA
0E3A ; Grapheme_Link # Mn THAI CHARACTER PHINTHU
+0EBA ; Grapheme_Link # Mn LAO SIGN PALI VIRAMA
0F84 ; Grapheme_Link # Mn TIBETAN MARK HALANTA
1039..103A ; Grapheme_Link # Mn [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT
1714 ; Grapheme_Link # Mn TAGALOG SIGN VIRAMA
@@ -11712,6 +11872,7 @@ ABED ; Grapheme_Link # Mn MEETEI MAYEK APUN IYEK
116B6 ; Grapheme_Link # Mc TAKRI SIGN VIRAMA
1172B ; Grapheme_Link # Mn AHOM SIGN KILLER
11839 ; Grapheme_Link # Mn DOGRA SIGN VIRAMA
+119E0 ; Grapheme_Link # Mn NANDINAGARI SIGN VIRAMA
11A34 ; Grapheme_Link # Mn ZANABAZAR SQUARE SIGN VIRAMA
11A47 ; Grapheme_Link # Mn ZANABAZAR SQUARE SUBJOINER
11A99 ; Grapheme_Link # Mn SOYOMBO SUBJOINER
@@ -11719,6 +11880,6 @@ ABED ; Grapheme_Link # Mn MEETEI MAYEK APUN IYEK
11D44..11D45 ; Grapheme_Link # Mn [2] MASARAM GONDI SIGN HALANTA..MASARAM GONDI VIRAMA
11D97 ; Grapheme_Link # Mn GUNJALA GONDI VIRAMA
-# Total code points: 56
+# Total code points: 58
# EOF
diff --git a/localedata/unicode-gen/EastAsianWidth.txt b/localedata/unicode-gen/EastAsianWidth.txt
index cb489c3404..94d55d6654 100644
--- a/localedata/unicode-gen/EastAsianWidth.txt
+++ b/localedata/unicode-gen/EastAsianWidth.txt
@@ -1,6 +1,6 @@
-# EastAsianWidth-11.0.0.txt
-# Date: 2018-05-14, 09:41:59 GMT [KW, LI]
-# © 2018 Unicode®, Inc.
+# EastAsianWidth-12.1.0.txt
+# Date: 2019-03-31, 22:01:58 GMT [KW, LI]
+# © 2019 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
# For terms of use, see http://www.unicode.org/terms_of_use.html
#
@@ -500,6 +500,7 @@
0C60..0C61;N # Lo [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
0C62..0C63;N # Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
0C66..0C6F;N # Nd [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE
+0C77;N # Po TELUGU SIGN SIDDHAM
0C78..0C7E;N # No [7] TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR..TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR
0C7F;N # So TELUGU SIGN TUUMU
0C80;N # Lo KANNADA SIGN SPACING CANDRABINDU
@@ -576,20 +577,13 @@
0E5A..0E5B;N # Po [2] THAI CHARACTER ANGKHANKHU..THAI CHARACTER KHOMUT
0E81..0E82;N # Lo [2] LAO LETTER KO..LAO LETTER KHO SUNG
0E84;N # Lo LAO LETTER KHO TAM
-0E87..0E88;N # Lo [2] LAO LETTER NGO..LAO LETTER CO
-0E8A;N # Lo LAO LETTER SO TAM
-0E8D;N # Lo LAO LETTER NYO
-0E94..0E97;N # Lo [4] LAO LETTER DO..LAO LETTER THO TAM
-0E99..0E9F;N # Lo [7] LAO LETTER NO..LAO LETTER FO SUNG
-0EA1..0EA3;N # Lo [3] LAO LETTER MO..LAO LETTER LO LING
+0E86..0E8A;N # Lo [5] LAO LETTER PALI GHA..LAO LETTER SO TAM
+0E8C..0EA3;N # Lo [24] LAO LETTER PALI JHA..LAO LETTER LO LING
0EA5;N # Lo LAO LETTER LO LOOT
-0EA7;N # Lo LAO LETTER WO
-0EAA..0EAB;N # Lo [2] LAO LETTER SO SUNG..LAO LETTER HO SUNG
-0EAD..0EB0;N # Lo [4] LAO LETTER O..LAO VOWEL SIGN A
+0EA7..0EB0;N # Lo [10] LAO LETTER WO..LAO VOWEL SIGN A
0EB1;N # Mn LAO VOWEL SIGN MAI KAN
0EB2..0EB3;N # Lo [2] LAO VOWEL SIGN AA..LAO VOWEL SIGN AM
-0EB4..0EB9;N # Mn [6] LAO VOWEL SIGN I..LAO VOWEL SIGN UU
-0EBB..0EBC;N # Mn [2] LAO VOWEL SIGN MAI KON..LAO SEMIVOWEL SIGN LO
+0EB4..0EBC;N # Mn [9] LAO VOWEL SIGN I..LAO SEMIVOWEL SIGN LO
0EBD;N # Lo LAO SEMIVOWEL SIGN NYO
0EC0..0EC4;N # Lo [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI
0EC6;N # Lm LAO KO LA
@@ -703,7 +697,8 @@
13F8..13FD;N # Ll [6] CHEROKEE SMALL LETTER YE..CHEROKEE SMALL LETTER MV
1400;N # Pd CANADIAN SYLLABICS HYPHEN
1401..166C;N # Lo [620] CANADIAN SYLLABICS E..CANADIAN SYLLABICS CARRIER TTSA
-166D..166E;N # Po [2] CANADIAN SYLLABICS CHI SIGN..CANADIAN SYLLABICS FULL STOP
+166D;N # So CANADIAN SYLLABICS CHI SIGN
+166E;N # Po CANADIAN SYLLABICS FULL STOP
166F..167F;N # Lo [17] CANADIAN SYLLABICS QAI..CANADIAN SYLLABICS BLACKFOOT W
1680;N # Zs OGHAM SPACE MARK
1681..169A;N # Lo [26] OGHAM LETTER BEITH..OGHAM LETTER PEITH
@@ -862,12 +857,12 @@
1CE2..1CE8;N # Mn [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
1CE9..1CEC;N # Lo [4] VEDIC SIGN ANUSVARA ANTARGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL
1CED;N # Mn VEDIC SIGN TIRYAK
-1CEE..1CF1;N # Lo [4] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ANUSVARA UBHAYATO MUKHA
-1CF2..1CF3;N # Mc [2] VEDIC SIGN ARDHAVISARGA..VEDIC SIGN ROTATED ARDHAVISARGA
+1CEE..1CF3;N # Lo [6] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ROTATED ARDHAVISARGA
1CF4;N # Mn VEDIC TONE CANDRA ABOVE
1CF5..1CF6;N # Lo [2] VEDIC SIGN JIHVAMULIYA..VEDIC SIGN UPADHMANIYA
1CF7;N # Mc VEDIC SIGN ATIKRAMA
1CF8..1CF9;N # Mn [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
+1CFA;N # Lo VEDIC SIGN DOUBLE ANUSVARA ANTARGOMUKHA
1D00..1D2B;N # Ll [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL
1D2C..1D6A;N # Lm [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI
1D6B..1D77;N # Ll [13] LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G
@@ -1340,8 +1335,7 @@
2B56..2B59;A # So [4] HEAVY OVAL WITH OVAL INSIDE..HEAVY CIRCLED SALTIRE
2B5A..2B73;N # So [26] SLANTED NORTH ARROW WITH HOOKED HEAD..DOWNWARDS TRIANGLE-HEADED ARROW TO BAR
2B76..2B95;N # So [32] NORTH WEST TRIANGLE-HEADED ARROW TO BAR..RIGHTWARDS BLACK ARROW
-2B98..2BC8;N # So [49] THREE-D TOP-LIGHTED LEFTWARDS EQUILATERAL ARROWHEAD..BLACK MEDIUM RIGHT-POINTING TRIANGLE CENTRED
-2BCA..2BFE;N # So [53] TOP HALF BLACK CIRCLE..REVERSED RIGHT ANGLE
+2B98..2BFF;N # So [104] THREE-D TOP-LIGHTED LEFTWARDS EQUILATERAL ARROWHEAD..HELLSCHREIBER PAUSE SYMBOL
2C00..2C2E;N # Lu [47] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE
2C30..2C5E;N # Ll [47] GLAGOLITIC SMALL LETTER AZU..GLAGOLITIC SMALL LETTER LATINATE MYSLITE
2C60..2C7B;N # L& [28] LATIN CAPITAL LETTER L WITH DOUBLE BAR..LATIN LETTER SMALL CAPITAL TURNED E
@@ -1409,7 +1403,7 @@
2E40;N # Pd DOUBLE HYPHEN
2E41;N # Po REVERSED COMMA
2E42;N # Ps DOUBLE LOW-REVERSED-9 QUOTATION MARK
-2E43..2E4E;N # Po [12] DASH WITH LEFT UPTURN..PUNCTUS ELEVATUS MARK
+2E43..2E4F;N # Po [13] DASH WITH LEFT UPTURN..CORNISH VERSE DIVIDER
2E80..2E99;W # So [26] CJK RADICAL REPEAT..CJK RADICAL RAP
2E9B..2EF3;W # So [89] CJK RADICAL CHOKE..CJK RADICAL C-SIMPLIFIED TURTLE
2F00..2FD5;W # So [214] KANGXI RADICAL ONE..KANGXI RADICAL FLUTE
@@ -1483,7 +1477,7 @@
3280..3289;W # No [10] CIRCLED IDEOGRAPH ONE..CIRCLED IDEOGRAPH TEN
328A..32B0;W # So [39] CIRCLED IDEOGRAPH MOON..CIRCLED IDEOGRAPH NIGHT
32B1..32BF;W # No [15] CIRCLED NUMBER THIRTY SIX..CIRCLED NUMBER FIFTY
-32C0..32FE;W # So [63] IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..CIRCLED KATAKANA WO
+32C0..32FF;W # So [64] IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..SQUARE ERA NAME REIWA
3300..33FF;W # So [256] SQUARE APAATO..SQUARE GAL
3400..4DB5;W # Lo [6582] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DB5
4DB6..4DBF;W # Cn [10] <reserved-4DB6>..<reserved-4DBF>
@@ -1528,7 +1522,8 @@ A788;N # Lm MODIFIER LETTER LOW CIRCUMFLEX ACCENT
A789..A78A;N # Sk [2] MODIFIER LETTER COLON..MODIFIER LETTER SHORT EQUALS SIGN
A78B..A78E;N # L& [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
A78F;N # Lo LATIN LETTER SINOLOGICAL DOT
-A790..A7B9;N # L& [42] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER U WITH STROKE
+A790..A7BF;N # L& [48] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER GLOTTAL U
+A7C2..A7C6;N # L& [5] LATIN CAPITAL LETTER ANGLICANA W..LATIN CAPITAL LETTER Z WITH PALATAL HOOK
A7F7;N # Lo LATIN EPIGRAPHIC LETTER SIDEWAYS I
A7F8..A7F9;N # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
A7FA;N # Ll LATIN LETTER SMALL CAPITAL TURNED M
@@ -1579,8 +1574,8 @@ A9B3;N # Mn JAVANESE SIGN CECAK TELU
A9B4..A9B5;N # Mc [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG
A9B6..A9B9;N # Mn [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT
A9BA..A9BB;N # Mc [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE
-A9BC;N # Mn JAVANESE VOWEL SIGN PEPET
-A9BD..A9C0;N # Mc [4] JAVANESE CONSONANT SIGN KERET..JAVANESE PANGKON
+A9BC..A9BD;N # Mn [2] JAVANESE VOWEL SIGN PEPET..JAVANESE CONSONANT SIGN KERET
+A9BE..A9C0;N # Mc [3] JAVANESE CONSONANT SIGN PENGKAL..JAVANESE PANGKON
A9C1..A9CD;N # Po [13] JAVANESE LEFT RERENGGAN..JAVANESE TURNED PADA PISELEH
A9CF;N # Lm JAVANESE PANGRANGKEP
A9D0..A9D9;N # Nd [10] JAVANESE DIGIT ZERO..JAVANESE DIGIT NINE
@@ -1644,7 +1639,7 @@ AB28..AB2E;N # Lo [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO
AB30..AB5A;N # Ll [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
AB5B;N # Sk MODIFIER BREVE WITH INVERTED BREVE
AB5C..AB5F;N # Lm [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
-AB60..AB65;N # Ll [6] LATIN SMALL LETTER SAKHA YAT..GREEK LETTER SMALL CAPITAL OMEGA
+AB60..AB67;N # Ll [8] LATIN SMALL LETTER SAKHA YAT..LATIN SMALL LETTER TS DIGRAPH WITH RETROFLEX HOOK
AB70..ABBF;N # Ll [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETTER YA
ABC0..ABE2;N # Lo [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM
ABE3..ABE4;N # Mc [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP
@@ -1914,6 +1909,7 @@ FFFD;A # So REPLACEMENT CHARACTER
10F46..10F50;N # Mn [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW
10F51..10F54;N # No [4] SOGDIAN NUMBER ONE..SOGDIAN NUMBER ONE HUNDRED
10F55..10F59;N # Po [5] SOGDIAN PUNCTUATION TWO VERTICAL BARS..SOGDIAN PUNCTUATION HALF CIRCLE WITH DOT
+10FE0..10FF6;N # Lo [23] ELYMAIC LETTER ALEPH..ELYMAIC LIGATURE ZAYIN-YODH
11000;N # Mc BRAHMI SIGN CANDRABINDU
11001;N # Mn BRAHMI SIGN ANUSVARA
11002;N # Mc BRAHMI SIGN VISARGA
@@ -2020,6 +2016,7 @@ FFFD;A # So REPLACEMENT CHARACTER
1145B;N # Po NEWA PLACEHOLDER MARK
1145D;N # Po NEWA INSERTION SIGN
1145E;N # Mn NEWA SANDHI MARK
+1145F;N # Lo NEWA LETTER VEDIC ANUSVARA
11480..114AF;N # Lo [48] TIRHUTA ANJI..TIRHUTA LETTER HA
114B0..114B2;N # Mc [3] TIRHUTA VOWEL SIGN AA..TIRHUTA VOWEL SIGN II
114B3..114B8;N # Mn [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL
@@ -2062,6 +2059,7 @@ FFFD;A # So REPLACEMENT CHARACTER
116B0..116B5;N # Mn [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
116B6;N # Mc TAKRI SIGN VIRAMA
116B7;N # Mn TAKRI SIGN NUKTA
+116B8;N # Lo TAKRI LETTER ARCHAIC KHA
116C0..116C9;N # Nd [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE
11700..1171A;N # Lo [27] AHOM LETTER KA..AHOM LETTER ALTERNATE BA
1171D..1171F;N # Mn [3] AHOM CONSONANT SIGN MEDIAL LA..AHOM CONSONANT SIGN MEDIAL LIGATING RA
@@ -2083,6 +2081,17 @@ FFFD;A # So REPLACEMENT CHARACTER
118E0..118E9;N # Nd [10] WARANG CITI DIGIT ZERO..WARANG CITI DIGIT NINE
118EA..118F2;N # No [9] WARANG CITI NUMBER TEN..WARANG CITI NUMBER NINETY
118FF;N # Lo WARANG CITI OM
+119A0..119A7;N # Lo [8] NANDINAGARI LETTER A..NANDINAGARI LETTER VOCALIC RR
+119AA..119D0;N # Lo [39] NANDINAGARI LETTER E..NANDINAGARI LETTER RRA
+119D1..119D3;N # Mc [3] NANDINAGARI VOWEL SIGN AA..NANDINAGARI VOWEL SIGN II
+119D4..119D7;N # Mn [4] NANDINAGARI VOWEL SIGN U..NANDINAGARI VOWEL SIGN VOCALIC RR
+119DA..119DB;N # Mn [2] NANDINAGARI VOWEL SIGN E..NANDINAGARI VOWEL SIGN AI
+119DC..119DF;N # Mc [4] NANDINAGARI VOWEL SIGN O..NANDINAGARI SIGN VISARGA
+119E0;N # Mn NANDINAGARI SIGN VIRAMA
+119E1;N # Lo NANDINAGARI SIGN AVAGRAHA
+119E2;N # Po NANDINAGARI SIGN SIDDHAM
+119E3;N # Lo NANDINAGARI HEADSTROKE
+119E4;N # Mc NANDINAGARI VOWEL SIGN PRISHTHAMATRA E
11A00;N # Lo ZANABAZAR SQUARE LETTER A
11A01..11A0A;N # Mn [10] ZANABAZAR SQUARE VOWEL SIGN I..ZANABAZAR SQUARE VOWEL LENGTH MARK
11A0B..11A32;N # Lo [40] ZANABAZAR SQUARE LETTER KA..ZANABAZAR SQUARE LETTER KSSA
@@ -2096,8 +2105,7 @@ FFFD;A # So REPLACEMENT CHARACTER
11A51..11A56;N # Mn [6] SOYOMBO VOWEL SIGN I..SOYOMBO VOWEL SIGN OE
11A57..11A58;N # Mc [2] SOYOMBO VOWEL SIGN AI..SOYOMBO VOWEL SIGN AU
11A59..11A5B;N # Mn [3] SOYOMBO VOWEL SIGN VOCALIC R..SOYOMBO VOWEL LENGTH MARK
-11A5C..11A83;N # Lo [40] SOYOMBO LETTER KA..SOYOMBO LETTER KSSA
-11A86..11A89;N # Lo [4] SOYOMBO CLUSTER-INITIAL LETTER RA..SOYOMBO CLUSTER-INITIAL LETTER SA
+11A5C..11A89;N # Lo [46] SOYOMBO LETTER KA..SOYOMBO CLUSTER-INITIAL LETTER SA
11A8A..11A96;N # Mn [13] SOYOMBO FINAL CONSONANT SIGN G..SOYOMBO SIGN ANUSVARA
11A97;N # Mc SOYOMBO SIGN VISARGA
11A98..11A99;N # Mn [2] SOYOMBO GEMINATION MARK..SOYOMBO SUBJOINER
@@ -2150,11 +2158,17 @@ FFFD;A # So REPLACEMENT CHARACTER
11EF3..11EF4;N # Mn [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
11EF5..11EF6;N # Mc [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O
11EF7..11EF8;N # Po [2] MAKASAR PASSIMBANG..MAKASAR END OF SECTION
+11FC0..11FD4;N # No [21] TAMIL FRACTION ONE THREE-HUNDRED-AND-TWENTIETH..TAMIL FRACTION DOWNSCALING FACTOR KIIZH
+11FD5..11FDC;N # So [8] TAMIL SIGN NEL..TAMIL SIGN MUKKURUNI
+11FDD..11FE0;N # Sc [4] TAMIL SIGN KAACU..TAMIL SIGN VARAAKAN
+11FE1..11FF1;N # So [17] TAMIL SIGN PAARAM..TAMIL SIGN VAKAIYARAA
+11FFF;N # Po TAMIL PUNCTUATION END OF TEXT
12000..12399;N # Lo [922] CUNEIFORM SIGN A..CUNEIFORM SIGN U U
12400..1246E;N # Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
12470..12474;N # Po [5] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON
12480..12543;N # Lo [196] CUNEIFORM SIGN AB TIMES NUN TENU..CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU
13000..1342E;N # Lo [1071] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032
+13430..13438;N # Cf [9] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END SEGMENT
14400..14646;N # Lo [583] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A530
16800..16A38;N # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
16A40..16A5E;N # Lo [31] MRO LETTER TA..MRO LETTER TEK
@@ -2177,16 +2191,21 @@ FFFD;A # So REPLACEMENT CHARACTER
16E40..16E7F;N # L& [64] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN SMALL LETTER Y
16E80..16E96;N # No [23] MEDEFAIDRIN DIGIT ZERO..MEDEFAIDRIN DIGIT THREE ALTERNATE FORM
16E97..16E9A;N # Po [4] MEDEFAIDRIN COMMA..MEDEFAIDRIN EXCLAMATION OH
-16F00..16F44;N # Lo [69] MIAO LETTER PA..MIAO LETTER HHA
+16F00..16F4A;N # Lo [75] MIAO LETTER PA..MIAO LETTER RTE
+16F4F;N # Mn MIAO SIGN CONSONANT MODIFIER BAR
16F50;N # Lo MIAO LETTER NASALIZATION
-16F51..16F7E;N # Mc [46] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN NG
+16F51..16F87;N # Mc [55] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN UI
16F8F..16F92;N # Mn [4] MIAO TONE RIGHT..MIAO TONE BELOW
16F93..16F9F;N # Lm [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
16FE0..16FE1;W # Lm [2] TANGUT ITERATION MARK..NUSHU ITERATION MARK
-17000..187F1;W # Lo [6130] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F1
+16FE2;W # Po OLD CHINESE HOOK MARK
+16FE3;W # Lm OLD CHINESE ITERATION MARK
+17000..187F7;W # Lo [6136] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F7
18800..18AF2;W # Lo [755] TANGUT COMPONENT-001..TANGUT COMPONENT-755
1B000..1B0FF;W # Lo [256] KATAKANA LETTER ARCHAIC E..HENTAIGANA LETTER RE-2
1B100..1B11E;W # Lo [31] HENTAIGANA LETTER RE-3..HENTAIGANA LETTER N-MU-MO-2
+1B150..1B152;W # Lo [3] HIRAGANA LETTER SMALL WI..HIRAGANA LETTER SMALL WO
+1B164..1B167;W # Lo [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N
1B170..1B2FB;W # Lo [396] NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB
1BC00..1BC6A;N # Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
1BC70..1BC7C;N # Lo [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK
@@ -2274,11 +2293,22 @@ FFFD;A # So REPLACEMENT CHARACTER
1E01B..1E021;N # Mn [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
1E023..1E024;N # Mn [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
1E026..1E02A;N # Mn [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
+1E100..1E12C;N # Lo [45] NYIAKENG PUACHUE HMONG LETTER MA..NYIAKENG PUACHUE HMONG LETTER W
+1E130..1E136;N # Mn [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D
+1E137..1E13D;N # Lm [7] NYIAKENG PUACHUE HMONG SIGN FOR PERSON..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER
+1E140..1E149;N # Nd [10] NYIAKENG PUACHUE HMONG DIGIT ZERO..NYIAKENG PUACHUE HMONG DIGIT NINE
+1E14E;N # Lo NYIAKENG PUACHUE HMONG LOGOGRAM NYAJ
+1E14F;N # So NYIAKENG PUACHUE HMONG CIRCLED CA
+1E2C0..1E2EB;N # Lo [44] WANCHO LETTER AA..WANCHO LETTER YIH
+1E2EC..1E2EF;N # Mn [4] WANCHO TONE TUP..WANCHO TONE KOINI
+1E2F0..1E2F9;N # Nd [10] WANCHO DIGIT ZERO..WANCHO DIGIT NINE
+1E2FF;N # Sc WANCHO NGUN SIGN
1E800..1E8C4;N # Lo [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON
1E8C7..1E8CF;N # No [9] MENDE KIKAKUI DIGIT ONE..MENDE KIKAKUI DIGIT NINE
1E8D0..1E8D6;N # Mn [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
1E900..1E943;N # L& [68] ADLAM CAPITAL LETTER ALIF..ADLAM SMALL LETTER SHA
1E944..1E94A;N # Mn [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA
+1E94B;N # Lm ADLAM NASALIZATION MARK
1E950..1E959;N # Nd [10] ADLAM DIGIT ZERO..ADLAM DIGIT NINE
1E95E..1E95F;N # Po [2] ADLAM INITIAL EXCLAMATION MARK..ADLAM INITIAL QUESTION MARK
1EC71..1ECAB;N # No [59] INDIC SIYAQ NUMBER ONE..INDIC SIYAQ NUMBER PREFIXED NINE
@@ -2286,6 +2316,9 @@ FFFD;A # So REPLACEMENT CHARACTER
1ECAD..1ECAF;N # No [3] INDIC SIYAQ FRACTION ONE QUARTER..INDIC SIYAQ FRACTION THREE QUARTERS
1ECB0;N # Sc INDIC SIYAQ RUPEE MARK
1ECB1..1ECB4;N # No [4] INDIC SIYAQ NUMBER ALTERNATE ONE..INDIC SIYAQ ALTERNATE LAKH MARK
+1ED01..1ED2D;N # No [45] OTTOMAN SIYAQ NUMBER ONE..OTTOMAN SIYAQ NUMBER NINETY THOUSAND
+1ED2E;N # So OTTOMAN SIYAQ MARRATAN
+1ED2F..1ED3D;N # No [15] OTTOMAN SIYAQ ALTERNATE NUMBER TWO..OTTOMAN SIYAQ FRACTION ONE SIXTH
1EE00..1EE03;N # Lo [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
1EE05..1EE1F;N # Lo [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
1EE21..1EE22;N # Lo [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM
@@ -2334,7 +2367,7 @@ FFFD;A # So REPLACEMENT CHARACTER
1F110..1F12D;A # So [30] PARENTHESIZED LATIN CAPITAL LETTER A..CIRCLED CD
1F12E..1F12F;N # So [2] CIRCLED WZ..COPYLEFT SYMBOL
1F130..1F169;A # So [58] SQUARED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
-1F16A..1F16B;N # So [2] RAISED MC SIGN..RAISED MD SIGN
+1F16A..1F16C;N # So [3] RAISED MC SIGN..RAISED MR SIGN
1F170..1F18D;A # So [30] NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED SA
1F18E;W # So NEGATIVE SQUARED AB
1F18F..1F190;A # So [2] NEGATIVE SQUARED WC..SQUARE DJ
@@ -2391,27 +2424,32 @@ FFFD;A # So REPLACEMENT CHARACTER
1F6CD..1F6CF;N # So [3] SHOPPING BAGS..BED
1F6D0..1F6D2;W # So [3] PLACE OF WORSHIP..SHOPPING TROLLEY
1F6D3..1F6D4;N # So [2] STUPA..PAGODA
+1F6D5;W # So HINDU TEMPLE
1F6E0..1F6EA;N # So [11] HAMMER AND WRENCH..NORTHEAST-POINTING AIRPLANE
1F6EB..1F6EC;W # So [2] AIRPLANE DEPARTURE..AIRPLANE ARRIVING
1F6F0..1F6F3;N # So [4] SATELLITE..PASSENGER SHIP
-1F6F4..1F6F9;W # So [6] SCOOTER..SKATEBOARD
+1F6F4..1F6FA;W # So [7] SCOOTER..AUTO RICKSHAW
1F700..1F773;N # So [116] ALCHEMICAL SYMBOL FOR QUINTESSENCE..ALCHEMICAL SYMBOL FOR HALF OUNCE
1F780..1F7D8;N # So [89] BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..NEGATIVE CIRCLED SQUARE
+1F7E0..1F7EB;W # So [12] LARGE ORANGE CIRCLE..LARGE BROWN SQUARE
1F800..1F80B;N # So [12] LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
1F810..1F847;N # So [56] LEFTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD..DOWNWARDS HEAVY ARROW
1F850..1F859;N # So [10] LEFTWARDS SANS-SERIF ARROW..UP DOWN SANS-SERIF ARROW
1F860..1F887;N # So [40] WIDE-HEADED LEFTWARDS LIGHT BARB ARROW..WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW
1F890..1F8AD;N # So [30] LEFTWARDS TRIANGLE ARROWHEAD..WHITE ARROW SHAFT WIDTH TWO THIRDS
1F900..1F90B;N # So [12] CIRCLED CROSS FORMEE WITH FOUR DOTS..DOWNWARD FACING NOTCHED HOOK WITH DOT
-1F910..1F93E;W # So [47] ZIPPER-MOUTH FACE..HANDBALL
-1F940..1F970;W # So [49] WILTED FLOWER..SMILING FACE WITH SMILING EYES AND THREE HEARTS
+1F90D..1F971;W # So [101] WHITE HEART..YAWNING FACE
1F973..1F976;W # So [4] FACE WITH PARTY HORN AND PARTY HAT..FREEZING FACE
-1F97A;W # So FACE WITH PLEADING EYES
-1F97C..1F9A2;W # So [39] LAB COAT..SWAN
-1F9B0..1F9B9;W # So [10] EMOJI COMPONENT RED HAIR..SUPERVILLAIN
-1F9C0..1F9C2;W # So [3] CHEESE WEDGE..SALT SHAKER
-1F9D0..1F9FF;W # So [48] FACE WITH MONOCLE..NAZAR AMULET
+1F97A..1F9A2;W # So [41] FACE WITH PLEADING EYES..SWAN
+1F9A5..1F9AA;W # So [6] SLOTH..OYSTER
+1F9AE..1F9CA;W # So [29] GUIDE DOG..ICE CUBE
+1F9CD..1F9FF;W # So [51] STANDING PERSON..NAZAR AMULET
+1FA00..1FA53;N # So [84] NEUTRAL CHESS KING..BLACK CHESS KNIGHT-BISHOP
1FA60..1FA6D;N # So [14] XIANGQI RED GENERAL..XIANGQI BLACK SOLDIER
+1FA70..1FA73;W # So [4] BALLET SHOES..SHORTS
+1FA78..1FA7A;W # So [3] DROP OF BLOOD..STETHOSCOPE
+1FA80..1FA82;W # So [3] YO-YO..PARACHUTE
+1FA90..1FA95;W # So [6] RINGED PLANET..BANJO
20000..2A6D6;W # Lo [42711] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6D6
2A6D7..2A6FF;W # Cn [41] <reserved-2A6D7>..<reserved-2A6FF>
2A700..2B734;W # Lo [4149] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B734
diff --git a/localedata/unicode-gen/Makefile b/localedata/unicode-gen/Makefile
index c2b5fa75e1..53a41f8331 100644
--- a/localedata/unicode-gen/Makefile
+++ b/localedata/unicode-gen/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2018 Free Software Foundation, Inc.
+# Copyright (C) 2015-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
# Makefile for generating and updating Unicode-extracted files.
@@ -35,7 +35,7 @@
# files for making modifications.
-UNICODE_VERSION = 11.0.0
+UNICODE_VERSION = 12.1.0
PYTHON3 = python3
WGET = wget
diff --git a/localedata/unicode-gen/PropList.txt b/localedata/unicode-gen/PropList.txt
index ef86795abe..4394602fea 100644
--- a/localedata/unicode-gen/PropList.txt
+++ b/localedata/unicode-gen/PropList.txt
@@ -1,6 +1,6 @@
-# PropList-11.0.0.txt
-# Date: 2018-03-15, 04:28:35 GMT
-# © 2018 Unicode®, Inc.
+# PropList-12.1.0.txt
+# Date: 2019-03-10, 10:53:16 GMT
+# © 2019 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
# For terms of use, see http://www.unicode.org/terms_of_use.html
#
@@ -138,7 +138,7 @@ FF63 ; Quotation_Mark # Pe HALFWIDTH RIGHT CORNER BRACKET
0F0D..0F12 ; Terminal_Punctuation # Po [6] TIBETAN MARK SHAD..TIBETAN MARK RGYA GRAM SHAD
104A..104B ; Terminal_Punctuation # Po [2] MYANMAR SIGN LITTLE SECTION..MYANMAR SIGN SECTION
1361..1368 ; Terminal_Punctuation # Po [8] ETHIOPIC WORDSPACE..ETHIOPIC PARAGRAPH SEPARATOR
-166D..166E ; Terminal_Punctuation # Po [2] CANADIAN SYLLABICS CHI SIGN..CANADIAN SYLLABICS FULL STOP
+166E ; Terminal_Punctuation # Po CANADIAN SYLLABICS FULL STOP
16EB..16ED ; Terminal_Punctuation # Po [3] RUNIC SINGLE PUNCTUATION..RUNIC CROSS PUNCTUATION
1735..1736 ; Terminal_Punctuation # Po [2] PHILIPPINE SINGLE PUNCTUATION..PHILIPPINE DOUBLE PUNCTUATION
17D4..17D6 ; Terminal_Punctuation # Po [3] KHMER SIGN KHAN..KHMER SIGN CAMNUC PII KUUH
@@ -157,7 +157,7 @@ FF63 ; Quotation_Mark # Pe HALFWIDTH RIGHT CORNER BRACKET
2E3C ; Terminal_Punctuation # Po STENOGRAPHIC FULL STOP
2E41 ; Terminal_Punctuation # Po REVERSED COMMA
2E4C ; Terminal_Punctuation # Po MEDIEVAL COMMA
-2E4E ; Terminal_Punctuation # Po PUNCTUS ELEVATUS MARK
+2E4E..2E4F ; Terminal_Punctuation # Po [2] PUNCTUS ELEVATUS MARK..CORNISH VERSE DIVIDER
3001..3002 ; Terminal_Punctuation # Po [2] IDEOGRAPHIC COMMA..IDEOGRAPHIC FULL STOP
A4FE..A4FF ; Terminal_Punctuation # Po [2] LISU PUNCTUATION COMMA..LISU PUNCTUATION FULL STOP
A60D..A60F ; Terminal_Punctuation # Po [3] VAI COMMA..VAI QUESTION MARK
@@ -553,15 +553,17 @@ FF41..FF46 ; Hex_Digit # L& [6] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH L
1056..1057 ; Other_Alphabetic # Mc [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR
1058..1059 ; Other_Alphabetic # Mn [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL
105E..1060 ; Other_Alphabetic # Mn [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA
-1062 ; Other_Alphabetic # Mc MYANMAR VOWEL SIGN SGAW KAREN EU
-1067..1068 ; Other_Alphabetic # Mc [2] MYANMAR VOWEL SIGN WESTERN PWO KAREN EU..MYANMAR VOWEL SIGN WESTERN PWO KAREN UE
+1062..1064 ; Other_Alphabetic # Mc [3] MYANMAR VOWEL SIGN SGAW KAREN EU..MYANMAR TONE MARK SGAW KAREN KE PHO
+1067..106D ; Other_Alphabetic # Mc [7] MYANMAR VOWEL SIGN WESTERN PWO KAREN EU..MYANMAR SIGN WESTERN PWO KAREN TONE-5
1071..1074 ; Other_Alphabetic # Mn [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE
1082 ; Other_Alphabetic # Mn MYANMAR CONSONANT SIGN SHAN MEDIAL WA
1083..1084 ; Other_Alphabetic # Mc [2] MYANMAR VOWEL SIGN SHAN AA..MYANMAR VOWEL SIGN SHAN E
1085..1086 ; Other_Alphabetic # Mn [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y
-109C ; Other_Alphabetic # Mc MYANMAR VOWEL SIGN AITON A
+1087..108C ; Other_Alphabetic # Mc [6] MYANMAR SIGN SHAN TONE-2..MYANMAR SIGN SHAN COUNCIL TONE-3
+108D ; Other_Alphabetic # Mn MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE
+108F ; Other_Alphabetic # Mc MYANMAR SIGN RUMAI PALAUNG TONE-5
+109A..109C ; Other_Alphabetic # Mc [3] MYANMAR SIGN KHAMTI TONE-1..MYANMAR VOWEL SIGN AITON A
109D ; Other_Alphabetic # Mn MYANMAR VOWEL SIGN AITON AI
-135F ; Other_Alphabetic # Mn ETHIOPIC COMBINING GEMINATION MARK
1712..1713 ; Other_Alphabetic # Mn [2] TAGALOG VOWEL SIGN I..TAGALOG VOWEL SIGN U
1732..1733 ; Other_Alphabetic # Mn [2] HANUNOO VOWEL SIGN I..HANUNOO VOWEL SIGN U
1752..1753 ; Other_Alphabetic # Mn [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U
@@ -618,18 +620,21 @@ FF41..FF46 ; Hex_Digit # L& [6] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH L
1C24..1C2B ; Other_Alphabetic # Mc [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU
1C2C..1C33 ; Other_Alphabetic # Mn [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T
1C34..1C35 ; Other_Alphabetic # Mc [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG
-1CF2..1CF3 ; Other_Alphabetic # Mc [2] VEDIC SIGN ARDHAVISARGA..VEDIC SIGN ROTATED ARDHAVISARGA
+1C36 ; Other_Alphabetic # Mn LEPCHA SIGN RAN
1DE7..1DF4 ; Other_Alphabetic # Mn [14] COMBINING LATIN SMALL LETTER ALPHA..COMBINING LATIN SMALL LETTER U WITH DIAERESIS
24B6..24E9 ; Other_Alphabetic # So [52] CIRCLED LATIN CAPITAL LETTER A..CIRCLED LATIN SMALL LETTER Z
2DE0..2DFF ; Other_Alphabetic # Mn [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
A674..A67B ; Other_Alphabetic # Mn [8] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC LETTER OMEGA
A69E..A69F ; Other_Alphabetic # Mn [2] COMBINING CYRILLIC LETTER EF..COMBINING CYRILLIC LETTER IOTIFIED E
+A802 ; Other_Alphabetic # Mn SYLOTI NAGRI SIGN DVISVARA
+A80B ; Other_Alphabetic # Mn SYLOTI NAGRI SIGN ANUSVARA
A823..A824 ; Other_Alphabetic # Mc [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I
A825..A826 ; Other_Alphabetic # Mn [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E
A827 ; Other_Alphabetic # Mc SYLOTI NAGRI VOWEL SIGN OO
A880..A881 ; Other_Alphabetic # Mc [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA
A8B4..A8C3 ; Other_Alphabetic # Mc [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU
A8C5 ; Other_Alphabetic # Mn SAURASHTRA SIGN CANDRABINDU
+A8FF ; Other_Alphabetic # Mn DEVANAGARI VOWEL SIGN AY
A926..A92A ; Other_Alphabetic # Mn [5] KAYAH LI VOWEL UE..KAYAH LI VOWEL O
A947..A951 ; Other_Alphabetic # Mn [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R
A952 ; Other_Alphabetic # Mc REJANG CONSONANT SIGN H
@@ -638,8 +643,9 @@ A983 ; Other_Alphabetic # Mc JAVANESE SIGN WIGNYAN
A9B4..A9B5 ; Other_Alphabetic # Mc [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG
A9B6..A9B9 ; Other_Alphabetic # Mn [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT
A9BA..A9BB ; Other_Alphabetic # Mc [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE
-A9BC ; Other_Alphabetic # Mn JAVANESE VOWEL SIGN PEPET
-A9BD..A9BF ; Other_Alphabetic # Mc [3] JAVANESE CONSONANT SIGN KERET..JAVANESE CONSONANT SIGN CAKRA
+A9BC..A9BD ; Other_Alphabetic # Mn [2] JAVANESE VOWEL SIGN PEPET..JAVANESE CONSONANT SIGN KERET
+A9BE..A9BF ; Other_Alphabetic # Mc [2] JAVANESE CONSONANT SIGN PENGKAL..JAVANESE CONSONANT SIGN CAKRA
+A9E5 ; Other_Alphabetic # Mn MYANMAR SIGN SHAN SAW
AA29..AA2E ; Other_Alphabetic # Mn [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE
AA2F..AA30 ; Other_Alphabetic # Mc [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI
AA31..AA32 ; Other_Alphabetic # Mn [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE
@@ -648,6 +654,9 @@ AA35..AA36 ; Other_Alphabetic # Mn [2] CHAM CONSONANT SIGN LA..CHAM CONSONA
AA43 ; Other_Alphabetic # Mn CHAM CONSONANT SIGN FINAL NG
AA4C ; Other_Alphabetic # Mn CHAM CONSONANT SIGN FINAL M
AA4D ; Other_Alphabetic # Mc CHAM CONSONANT SIGN FINAL H
+AA7B ; Other_Alphabetic # Mc MYANMAR SIGN PAO KAREN TONE
+AA7C ; Other_Alphabetic # Mn MYANMAR SIGN TAI LAING TONE-2
+AA7D ; Other_Alphabetic # Mc MYANMAR SIGN TAI LAING TONE-5
AAB0 ; Other_Alphabetic # Mn TAI VIET MAI KANG
AAB2..AAB4 ; Other_Alphabetic # Mn [3] TAI VIET VOWEL I..TAI VIET VOWEL U
AAB7..AAB8 ; Other_Alphabetic # Mn [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA
@@ -740,6 +749,11 @@ FB1E ; Other_Alphabetic # Mn HEBREW POINT JUDEO-SPANISH VARIKA
1182C..1182E ; Other_Alphabetic # Mc [3] DOGRA VOWEL SIGN AA..DOGRA VOWEL SIGN II
1182F..11837 ; Other_Alphabetic # Mn [9] DOGRA VOWEL SIGN U..DOGRA SIGN ANUSVARA
11838 ; Other_Alphabetic # Mc DOGRA SIGN VISARGA
+119D1..119D3 ; Other_Alphabetic # Mc [3] NANDINAGARI VOWEL SIGN AA..NANDINAGARI VOWEL SIGN II
+119D4..119D7 ; Other_Alphabetic # Mn [4] NANDINAGARI VOWEL SIGN U..NANDINAGARI VOWEL SIGN VOCALIC RR
+119DA..119DB ; Other_Alphabetic # Mn [2] NANDINAGARI VOWEL SIGN E..NANDINAGARI VOWEL SIGN AI
+119DC..119DF ; Other_Alphabetic # Mc [4] NANDINAGARI VOWEL SIGN O..NANDINAGARI SIGN VISARGA
+119E4 ; Other_Alphabetic # Mc NANDINAGARI VOWEL SIGN PRISHTHAMATRA E
11A01..11A0A ; Other_Alphabetic # Mn [10] ZANABAZAR SQUARE VOWEL SIGN I..ZANABAZAR SQUARE VOWEL LENGTH MARK
11A35..11A38 ; Other_Alphabetic # Mn [4] ZANABAZAR SQUARE SIGN CANDRABINDU..ZANABAZAR SQUARE SIGN ANUSVARA
11A39 ; Other_Alphabetic # Mc ZANABAZAR SQUARE SIGN VISARGA
@@ -773,8 +787,9 @@ FB1E ; Other_Alphabetic # Mn HEBREW POINT JUDEO-SPANISH VARIKA
11D96 ; Other_Alphabetic # Mc GUNJALA GONDI SIGN VISARGA
11EF3..11EF4 ; Other_Alphabetic # Mn [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
11EF5..11EF6 ; Other_Alphabetic # Mc [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O
-16B30..16B36 ; Other_Alphabetic # Mn [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
-16F51..16F7E ; Other_Alphabetic # Mc [46] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN NG
+16F4F ; Other_Alphabetic # Mn MIAO SIGN CONSONANT MODIFIER BAR
+16F51..16F87 ; Other_Alphabetic # Mc [55] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN UI
+16F8F..16F92 ; Other_Alphabetic # Mn [4] MIAO TONE RIGHT..MIAO TONE BELOW
1BC9E ; Other_Alphabetic # Mn DUPLOYAN DOUBLE MARK
1E000..1E006 ; Other_Alphabetic # Mn [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE
1E008..1E018 ; Other_Alphabetic # Mn [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU
@@ -786,7 +801,7 @@ FB1E ; Other_Alphabetic # Mn HEBREW POINT JUDEO-SPANISH VARIKA
1F150..1F169 ; Other_Alphabetic # So [26] NEGATIVE CIRCLED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
1F170..1F189 ; Other_Alphabetic # So [26] NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED LATIN CAPITAL LETTER Z
-# Total code points: 1334
+# Total code points: 1377
# ================================================
@@ -798,7 +813,7 @@ FB1E ; Other_Alphabetic # Mn HEBREW POINT JUDEO-SPANISH VARIKA
4E00..9FEF ; Ideographic # Lo [20976] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FEF
F900..FA6D ; Ideographic # Lo [366] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA6D
FA70..FAD9 ; Ideographic # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9
-17000..187F1 ; Ideographic # Lo [6130] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F1
+17000..187F7 ; Ideographic # Lo [6136] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F7
18800..18AF2 ; Ideographic # Lo [755] TANGUT COMPONENT-001..TANGUT COMPONENT-755
1B170..1B2FB ; Ideographic # Lo [396] NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB
20000..2A6D6 ; Ideographic # Lo [42711] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6D6
@@ -808,7 +823,7 @@ FA70..FAD9 ; Ideographic # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COM
2CEB0..2EBE0 ; Ideographic # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
2F800..2FA1D ; Ideographic # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
-# Total code points: 96184
+# Total code points: 96190
# ================================================
@@ -876,6 +891,7 @@ FA70..FAD9 ; Ideographic # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COM
0DCA ; Diacritic # Mn SINHALA SIGN AL-LAKUNA
0E47..0E4C ; Diacritic # Mn [6] THAI CHARACTER MAITAIKHU..THAI CHARACTER THANTHAKHAT
0E4E ; Diacritic # Mn THAI CHARACTER YAMAKKAN
+0EBA ; Diacritic # Mn LAO SIGN PALI VIRAMA
0EC8..0ECC ; Diacritic # Mn [5] LAO TONE MAI EK..LAO CANCELLATION MARK
0F18..0F19 ; Diacritic # Mn [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
0F35 ; Diacritic # Mn TIBETAN MARK NGAS BZUNG NYI ZLA
@@ -887,10 +903,13 @@ FA70..FAD9 ; Ideographic # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COM
0FC6 ; Diacritic # Mn TIBETAN SYMBOL PADMA GDAN
1037 ; Diacritic # Mn MYANMAR SIGN DOT BELOW
1039..103A ; Diacritic # Mn [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT
+1063..1064 ; Diacritic # Mc [2] MYANMAR TONE MARK SGAW KAREN HATHI..MYANMAR TONE MARK SGAW KAREN KE PHO
+1069..106D ; Diacritic # Mc [5] MYANMAR SIGN WESTERN PWO KAREN TONE-1..MYANMAR SIGN WESTERN PWO KAREN TONE-5
1087..108C ; Diacritic # Mc [6] MYANMAR SIGN SHAN TONE-2..MYANMAR SIGN SHAN COUNCIL TONE-3
108D ; Diacritic # Mn MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE
108F ; Diacritic # Mc MYANMAR SIGN RUMAI PALAUNG TONE-5
109A..109B ; Diacritic # Mc [2] MYANMAR SIGN KHAMTI TONE-1..MYANMAR SIGN KHAMTI TONE-3
+135D..135F ; Diacritic # Mn [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK
17C9..17D3 ; Diacritic # Mn [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT
17DD ; Diacritic # Mn KHMER SIGN ATTHACAN
1939..193B ; Diacritic # Mn [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I
@@ -935,9 +954,11 @@ A67C..A67D ; Diacritic # Mn [2] COMBINING CYRILLIC KAVYKA..COMBINING CYRILL
A67F ; Diacritic # Lm CYRILLIC PAYEROK
A69C..A69D ; Diacritic # Lm [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
A6F0..A6F1 ; Diacritic # Mn [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS
+A700..A716 ; Diacritic # Sk [23] MODIFIER LETTER CHINESE TONE YIN PING..MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR
A717..A71F ; Diacritic # Lm [9] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK
A720..A721 ; Diacritic # Sk [2] MODIFIER LETTER STRESS AND HIGH TONE..MODIFIER LETTER STRESS AND LOW TONE
A788 ; Diacritic # Lm MODIFIER LETTER LOW CIRCUMFLEX ACCENT
+A789..A78A ; Diacritic # Sk [2] MODIFIER LETTER COLON..MODIFIER LETTER SHORT EQUALS SIGN
A7F8..A7F9 ; Diacritic # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
A8C4 ; Diacritic # Mn SAURASHTRA SIGN VIRAMA
A8E0..A8F1 ; Diacritic # Mn [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA
@@ -992,6 +1013,7 @@ FFE3 ; Diacritic # Sk FULLWIDTH MACRON
116B7 ; Diacritic # Mn TAKRI SIGN NUKTA
1172B ; Diacritic # Mn AHOM SIGN KILLER
11839..1183A ; Diacritic # Mn [2] DOGRA SIGN VIRAMA..DOGRA SIGN NUKTA
+119E0 ; Diacritic # Mn NANDINAGARI SIGN VIRAMA
11A34 ; Diacritic # Mn ZANABAZAR SQUARE SIGN VIRAMA
11A47 ; Diacritic # Mn ZANABAZAR SQUARE SUBJOINER
11A99 ; Diacritic # Mn SOYOMBO SUBJOINER
@@ -1000,6 +1022,7 @@ FFE3 ; Diacritic # Sk FULLWIDTH MACRON
11D44..11D45 ; Diacritic # Mn [2] MASARAM GONDI SIGN HALANTA..MASARAM GONDI VIRAMA
11D97 ; Diacritic # Mn GUNJALA GONDI VIRAMA
16AF0..16AF4 ; Diacritic # Mn [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
+16B30..16B36 ; Diacritic # Mn [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
16F8F..16F92 ; Diacritic # Mn [4] MIAO TONE RIGHT..MIAO TONE BELOW
16F93..16F9F ; Diacritic # Lm [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
1D167..1D169 ; Diacritic # Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
@@ -1007,11 +1030,13 @@ FFE3 ; Diacritic # Sk FULLWIDTH MACRON
1D17B..1D182 ; Diacritic # Mn [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
1D185..1D18B ; Diacritic # Mn [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
1D1AA..1D1AD ; Diacritic # Mn [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
+1E130..1E136 ; Diacritic # Mn [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D
+1E2EC..1E2EF ; Diacritic # Mn [4] WANCHO TONE TUP..WANCHO TONE KOINI
1E8D0..1E8D6 ; Diacritic # Mn [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
1E944..1E946 ; Diacritic # Mn [3] ADLAM ALIF LENGTHENER..ADLAM GEMINATION MARK
1E948..1E94A ; Diacritic # Mn [3] ADLAM CONSONANT MODIFIER..ADLAM NUKTA
-# Total code points: 818
+# Total code points: 873
# ================================================
@@ -1043,9 +1068,11 @@ FF70 ; Extender # Lm HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND
11A98 ; Extender # Mn SOYOMBO GEMINATION MARK
16B42..16B43 ; Extender # Lm [2] PAHAWH HMONG SIGN VOS NRUA..PAHAWH HMONG SIGN IB YAM
16FE0..16FE1 ; Extender # Lm [2] TANGUT ITERATION MARK..NUSHU ITERATION MARK
+16FE3 ; Extender # Lm OLD CHINESE ITERATION MARK
+1E13C..1E13D ; Extender # Lm [2] NYIAKENG PUACHUE HMONG SIGN XW XW..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER
1E944..1E946 ; Extender # Mn [3] ADLAM ALIF LENGTHENER..ADLAM GEMINATION MARK
-# Total code points: 44
+# Total code points: 47
# ================================================
@@ -1119,6 +1146,7 @@ FFFFE..FFFFF ; Noncharacter_Code_Point # Cn [2] <noncharacter-FFFFE>..<noncha
0D57 ; Other_Grapheme_Extend # Mc MALAYALAM AU LENGTH MARK
0DCF ; Other_Grapheme_Extend # Mc SINHALA VOWEL SIGN AELA-PILLA
0DDF ; Other_Grapheme_Extend # Mc SINHALA VOWEL SIGN GAYANUKITTA
+1B35 ; Other_Grapheme_Extend # Mc BALINESE VOWEL SIGN TEDUNG
200C ; Other_Grapheme_Extend # Cf ZERO WIDTH NON-JOINER
302E..302F ; Other_Grapheme_Extend # Mc [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK
FF9E..FF9F ; Other_Grapheme_Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
@@ -1131,7 +1159,7 @@ FF9E..FF9F ; Other_Grapheme_Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND
1D16E..1D172 ; Other_Grapheme_Extend # Mc [5] MUSICAL SYMBOL COMBINING FLAG-1..MUSICAL SYMBOL COMBINING FLAG-5
E0020..E007F ; Other_Grapheme_Extend # Cf [96] TAG SPACE..CANCEL TAG
-# Total code points: 125
+# Total code points: 126
# ================================================
@@ -1547,10 +1575,7 @@ E0100..E01EF ; Variation_Selector # Mn [240] VARIATION SELECTOR-17..VARIATION S
2B74..2B75 ; Pattern_Syntax # Cn [2] <reserved-2B74>..<reserved-2B75>
2B76..2B95 ; Pattern_Syntax # So [32] NORTH WEST TRIANGLE-HEADED ARROW TO BAR..RIGHTWARDS BLACK ARROW
2B96..2B97 ; Pattern_Syntax # Cn [2] <reserved-2B96>..<reserved-2B97>
-2B98..2BC8 ; Pattern_Syntax # So [49] THREE-D TOP-LIGHTED LEFTWARDS EQUILATERAL ARROWHEAD..BLACK MEDIUM RIGHT-POINTING TRIANGLE CENTRED
-2BC9 ; Pattern_Syntax # Cn <reserved-2BC9>
-2BCA..2BFE ; Pattern_Syntax # So [53] TOP HALF BLACK CIRCLE..REVERSED RIGHT ANGLE
-2BFF ; Pattern_Syntax # Cn <reserved-2BFF>
+2B98..2BFF ; Pattern_Syntax # So [104] THREE-D TOP-LIGHTED LEFTWARDS EQUILATERAL ARROWHEAD..HELLSCHREIBER PAUSE SYMBOL
2E00..2E01 ; Pattern_Syntax # Po [2] RIGHT ANGLE SUBSTITUTION MARKER..RIGHT ANGLE DOTTED SUBSTITUTION MARKER
2E02 ; Pattern_Syntax # Pi LEFT SUBSTITUTION BRACKET
2E03 ; Pattern_Syntax # Pf RIGHT SUBSTITUTION BRACKET
@@ -1588,8 +1613,8 @@ E0100..E01EF ; Variation_Selector # Mn [240] VARIATION SELECTOR-17..VARIATION S
2E40 ; Pattern_Syntax # Pd DOUBLE HYPHEN
2E41 ; Pattern_Syntax # Po REVERSED COMMA
2E42 ; Pattern_Syntax # Ps DOUBLE LOW-REVERSED-9 QUOTATION MARK
-2E43..2E4E ; Pattern_Syntax # Po [12] DASH WITH LEFT UPTURN..PUNCTUS ELEVATUS MARK
-2E4F..2E7F ; Pattern_Syntax # Cn [49] <reserved-2E4F>..<reserved-2E7F>
+2E43..2E4F ; Pattern_Syntax # Po [13] DASH WITH LEFT UPTURN..CORNISH VERSE DIVIDER
+2E50..2E7F ; Pattern_Syntax # Cn [48] <reserved-2E50>..<reserved-2E7F>
3001..3003 ; Pattern_Syntax # Po [3] IDEOGRAPHIC COMMA..DITTO MARK
3008 ; Pattern_Syntax # Ps LEFT ANGLE BRACKET
3009 ; Pattern_Syntax # Pe RIGHT ANGLE BRACKET
diff --git a/localedata/unicode-gen/UnicodeData.txt b/localedata/unicode-gen/UnicodeData.txt
index ec32fafbce..e65aec52f7 100644
--- a/localedata/unicode-gen/UnicodeData.txt
+++ b/localedata/unicode-gen/UnicodeData.txt
@@ -640,7 +640,7 @@
027F;LATIN SMALL LETTER REVERSED R WITH FISHHOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED FISHHOOK R;;;;
0280;LATIN LETTER SMALL CAPITAL R;Ll;0;L;;;;;N;;;01A6;;01A6
0281;LATIN LETTER SMALL CAPITAL INVERTED R;Ll;0;L;;;;;N;;;;;
-0282;LATIN SMALL LETTER S WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER S HOOK;;;;
+0282;LATIN SMALL LETTER S WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER S HOOK;;A7C5;;A7C5
0283;LATIN SMALL LETTER ESH;Ll;0;L;;;;;N;;;01A9;;01A9
0284;LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER DOTLESS J BAR HOOK;;;;
0285;LATIN SMALL LETTER SQUAT REVERSED ESH;Ll;0;L;;;;;N;;;;;
@@ -2809,6 +2809,7 @@
0C6D;TELUGU DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
0C6E;TELUGU DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
0C6F;TELUGU DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0C77;TELUGU SIGN SIDDHAM;Po;0;L;;;;;N;;;;;
0C78;TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR;No;0;ON;;;;0;N;;;;;
0C79;TELUGU FRACTION DIGIT ONE FOR ODD POWERS OF FOUR;No;0;ON;;;;1;N;;;;;
0C7A;TELUGU FRACTION DIGIT TWO FOR ODD POWERS OF FOUR;No;0;ON;;;;2;N;;;;;
@@ -3203,14 +3204,24 @@
0E81;LAO LETTER KO;Lo;0;L;;;;;N;;;;;
0E82;LAO LETTER KHO SUNG;Lo;0;L;;;;;N;;;;;
0E84;LAO LETTER KHO TAM;Lo;0;L;;;;;N;;;;;
+0E86;LAO LETTER PALI GHA;Lo;0;L;;;;;N;;;;;
0E87;LAO LETTER NGO;Lo;0;L;;;;;N;;;;;
0E88;LAO LETTER CO;Lo;0;L;;;;;N;;;;;
+0E89;LAO LETTER PALI CHA;Lo;0;L;;;;;N;;;;;
0E8A;LAO LETTER SO TAM;Lo;0;L;;;;;N;;;;;
+0E8C;LAO LETTER PALI JHA;Lo;0;L;;;;;N;;;;;
0E8D;LAO LETTER NYO;Lo;0;L;;;;;N;;;;;
+0E8E;LAO LETTER PALI NYA;Lo;0;L;;;;;N;;;;;
+0E8F;LAO LETTER PALI TTA;Lo;0;L;;;;;N;;;;;
+0E90;LAO LETTER PALI TTHA;Lo;0;L;;;;;N;;;;;
+0E91;LAO LETTER PALI DDA;Lo;0;L;;;;;N;;;;;
+0E92;LAO LETTER PALI DDHA;Lo;0;L;;;;;N;;;;;
+0E93;LAO LETTER PALI NNA;Lo;0;L;;;;;N;;;;;
0E94;LAO LETTER DO;Lo;0;L;;;;;N;;;;;
0E95;LAO LETTER TO;Lo;0;L;;;;;N;;;;;
0E96;LAO LETTER THO SUNG;Lo;0;L;;;;;N;;;;;
0E97;LAO LETTER THO TAM;Lo;0;L;;;;;N;;;;;
+0E98;LAO LETTER PALI DHA;Lo;0;L;;;;;N;;;;;
0E99;LAO LETTER NO;Lo;0;L;;;;;N;;;;;
0E9A;LAO LETTER BO;Lo;0;L;;;;;N;;;;;
0E9B;LAO LETTER PO;Lo;0;L;;;;;N;;;;;
@@ -3218,13 +3229,17 @@
0E9D;LAO LETTER FO TAM;Lo;0;L;;;;;N;;;;;
0E9E;LAO LETTER PHO TAM;Lo;0;L;;;;;N;;;;;
0E9F;LAO LETTER FO SUNG;Lo;0;L;;;;;N;;;;;
+0EA0;LAO LETTER PALI BHA;Lo;0;L;;;;;N;;;;;
0EA1;LAO LETTER MO;Lo;0;L;;;;;N;;;;;
0EA2;LAO LETTER YO;Lo;0;L;;;;;N;;;;;
0EA3;LAO LETTER LO LING;Lo;0;L;;;;;N;;;;;
0EA5;LAO LETTER LO LOOT;Lo;0;L;;;;;N;;;;;
0EA7;LAO LETTER WO;Lo;0;L;;;;;N;;;;;
+0EA8;LAO LETTER SANSKRIT SHA;Lo;0;L;;;;;N;;;;;
+0EA9;LAO LETTER SANSKRIT SSA;Lo;0;L;;;;;N;;;;;
0EAA;LAO LETTER SO SUNG;Lo;0;L;;;;;N;;;;;
0EAB;LAO LETTER HO SUNG;Lo;0;L;;;;;N;;;;;
+0EAC;LAO LETTER PALI LLA;Lo;0;L;;;;;N;;;;;
0EAD;LAO LETTER O;Lo;0;L;;;;;N;;;;;
0EAE;LAO LETTER HO TAM;Lo;0;L;;;;;N;;;;;
0EAF;LAO ELLIPSIS;Lo;0;L;;;;;N;;;;;
@@ -3238,6 +3253,7 @@
0EB7;LAO VOWEL SIGN YY;Mn;0;NSM;;;;;N;;;;;
0EB8;LAO VOWEL SIGN U;Mn;118;NSM;;;;;N;;;;;
0EB9;LAO VOWEL SIGN UU;Mn;118;NSM;;;;;N;;;;;
+0EBA;LAO SIGN PALI VIRAMA;Mn;9;NSM;;;;;N;;;;;
0EBB;LAO VOWEL SIGN MAI KON;Mn;0;NSM;;;;;N;;;;;
0EBC;LAO SEMIVOWEL SIGN LO;Mn;0;NSM;;;;;N;;;;;
0EBD;LAO SEMIVOWEL SIGN NYO;Lo;0;L;;;;;N;;;;;
@@ -5079,7 +5095,7 @@
166A;CANADIAN SYLLABICS CARRIER TTSEE;Lo;0;L;;;;;N;;;;;
166B;CANADIAN SYLLABICS CARRIER TTSI;Lo;0;L;;;;;N;;;;;
166C;CANADIAN SYLLABICS CARRIER TTSA;Lo;0;L;;;;;N;;;;;
-166D;CANADIAN SYLLABICS CHI SIGN;Po;0;L;;;;;N;;;;;
+166D;CANADIAN SYLLABICS CHI SIGN;So;0;L;;;;;N;;;;;
166E;CANADIAN SYLLABICS FULL STOP;Po;0;L;;;;;N;;;;;
166F;CANADIAN SYLLABICS QAI;Lo;0;L;;;;;N;;;;;
1670;CANADIAN SYLLABICS NGAI;Lo;0;L;;;;;N;;;;;
@@ -6488,14 +6504,15 @@
1CEF;VEDIC SIGN LONG ANUSVARA;Lo;0;L;;;;;N;;;;;
1CF0;VEDIC SIGN RTHANG LONG ANUSVARA;Lo;0;L;;;;;N;;;;;
1CF1;VEDIC SIGN ANUSVARA UBHAYATO MUKHA;Lo;0;L;;;;;N;;;;;
-1CF2;VEDIC SIGN ARDHAVISARGA;Mc;0;L;;;;;N;;;;;
-1CF3;VEDIC SIGN ROTATED ARDHAVISARGA;Mc;0;L;;;;;N;;;;;
+1CF2;VEDIC SIGN ARDHAVISARGA;Lo;0;L;;;;;N;;;;;
+1CF3;VEDIC SIGN ROTATED ARDHAVISARGA;Lo;0;L;;;;;N;;;;;
1CF4;VEDIC TONE CANDRA ABOVE;Mn;230;NSM;;;;;N;;;;;
1CF5;VEDIC SIGN JIHVAMULIYA;Lo;0;L;;;;;N;;;;;
1CF6;VEDIC SIGN UPADHMANIYA;Lo;0;L;;;;;N;;;;;
1CF7;VEDIC SIGN ATIKRAMA;Mc;0;L;;;;;N;;;;;
1CF8;VEDIC TONE RING ABOVE;Mn;230;NSM;;;;;N;;;;;
1CF9;VEDIC TONE DOUBLE RING ABOVE;Mn;230;NSM;;;;;N;;;;;
+1CFA;VEDIC SIGN DOUBLE ANUSVARA ANTARGOMUKHA;Lo;0;L;;;;;N;;;;;
1D00;LATIN LETTER SMALL CAPITAL A;Ll;0;L;;;;;N;;;;;
1D01;LATIN LETTER SMALL CAPITAL AE;Ll;0;L;;;;;N;;;;;
1D02;LATIN SMALL LETTER TURNED AE;Ll;0;L;;;;;N;;;;;
@@ -6638,7 +6655,7 @@
1D8B;LATIN SMALL LETTER ESH WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
1D8C;LATIN SMALL LETTER V WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
1D8D;LATIN SMALL LETTER X WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
-1D8E;LATIN SMALL LETTER Z WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1D8E;LATIN SMALL LETTER Z WITH PALATAL HOOK;Ll;0;L;;;;;N;;;A7C6;;A7C6
1D8F;LATIN SMALL LETTER A WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
1D90;LATIN SMALL LETTER ALPHA WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
1D91;LATIN SMALL LETTER D WITH HOOK AND TAIL;Ll;0;L;;;;;N;;;;;
@@ -10165,6 +10182,7 @@
2BC6;BLACK MEDIUM DOWN-POINTING TRIANGLE CENTRED;So;0;ON;;;;;N;;;;;
2BC7;BLACK MEDIUM LEFT-POINTING TRIANGLE CENTRED;So;0;ON;;;;;N;;;;;
2BC8;BLACK MEDIUM RIGHT-POINTING TRIANGLE CENTRED;So;0;ON;;;;;N;;;;;
+2BC9;NEPTUNE FORM TWO;So;0;ON;;;;;N;;;;;
2BCA;TOP HALF BLACK CIRCLE;So;0;ON;;;;;N;;;;;
2BCB;BOTTOM HALF BLACK CIRCLE;So;0;ON;;;;;N;;;;;
2BCC;LIGHT FOUR POINTED BLACK CUSP;So;0;ON;;;;;N;;;;;
@@ -10218,6 +10236,7 @@
2BFC;DOUBLED SYMBOL;So;0;ON;;;;;N;;;;;
2BFD;PASSED SYMBOL;So;0;ON;;;;;N;;;;;
2BFE;REVERSED RIGHT ANGLE;So;0;ON;;;;;Y;;;;;
+2BFF;HELLSCHREIBER PAUSE SYMBOL;So;0;ON;;;;;N;;;;;
2C00;GLAGOLITIC CAPITAL LETTER AZU;Lu;0;L;;;;;N;;;;2C30;
2C01;GLAGOLITIC CAPITAL LETTER BUKY;Lu;0;L;;;;;N;;;;2C31;
2C02;GLAGOLITIC CAPITAL LETTER VEDE;Lu;0;L;;;;;N;;;;2C32;
@@ -10756,6 +10775,7 @@
2E4C;MEDIEVAL COMMA;Po;0;ON;;;;;N;;;;;
2E4D;PARAGRAPHUS MARK;Po;0;ON;;;;;N;;;;;
2E4E;PUNCTUS ELEVATUS MARK;Po;0;ON;;;;;N;;;;;
+2E4F;CORNISH VERSE DIVIDER;Po;0;ON;;;;;N;;;;;
2E80;CJK RADICAL REPEAT;So;0;ON;;;;;N;;;;;
2E81;CJK RADICAL CLIFF;So;0;ON;;;;;N;;;;;
2E82;CJK RADICAL SECOND ONE;So;0;ON;;;;;N;;;;;
@@ -11836,6 +11856,7 @@
32FC;CIRCLED KATAKANA WI;So;0;L;<circle> 30F0;;;;N;;;;;
32FD;CIRCLED KATAKANA WE;So;0;L;<circle> 30F1;;;;N;;;;;
32FE;CIRCLED KATAKANA WO;So;0;L;<circle> 30F2;;;;N;;;;;
+32FF;SQUARE ERA NAME REIWA;So;0;L;<square> 4EE4 548C;;;;N;;;;;
3300;SQUARE APAATO;So;0;L;<square> 30A2 30D1 30FC 30C8;;;;N;SQUARED APAATO;;;;
3301;SQUARE ARUHUA;So;0;L;<square> 30A2 30EB 30D5 30A1;;;;N;SQUARED ARUHUA;;;;
3302;SQUARE ANPEA;So;0;L;<square> 30A2 30F3 30DA 30A2;;;;N;SQUARED ANPEA;;;;
@@ -14060,7 +14081,7 @@ A790;LATIN CAPITAL LETTER N WITH DESCENDER;Lu;0;L;;;;;N;;;;A791;
A791;LATIN SMALL LETTER N WITH DESCENDER;Ll;0;L;;;;;N;;;A790;;A790
A792;LATIN CAPITAL LETTER C WITH BAR;Lu;0;L;;;;;N;;;;A793;
A793;LATIN SMALL LETTER C WITH BAR;Ll;0;L;;;;;N;;;A792;;A792
-A794;LATIN SMALL LETTER C WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+A794;LATIN SMALL LETTER C WITH PALATAL HOOK;Ll;0;L;;;;;N;;;A7C4;;A7C4
A795;LATIN SMALL LETTER H WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
A796;LATIN CAPITAL LETTER B WITH FLOURISH;Lu;0;L;;;;;N;;;;A797;
A797;LATIN SMALL LETTER B WITH FLOURISH;Ll;0;L;;;;;N;;;A796;;A796
@@ -14098,6 +14119,17 @@ A7B6;LATIN CAPITAL LETTER OMEGA;Lu;0;L;;;;;N;;;;A7B7;
A7B7;LATIN SMALL LETTER OMEGA;Ll;0;L;;;;;N;;;A7B6;;A7B6
A7B8;LATIN CAPITAL LETTER U WITH STROKE;Lu;0;L;;;;;N;;;;A7B9;
A7B9;LATIN SMALL LETTER U WITH STROKE;Ll;0;L;;;;;N;;;A7B8;;A7B8
+A7BA;LATIN CAPITAL LETTER GLOTTAL A;Lu;0;L;;;;;N;;;;A7BB;
+A7BB;LATIN SMALL LETTER GLOTTAL A;Ll;0;L;;;;;N;;;A7BA;;A7BA
+A7BC;LATIN CAPITAL LETTER GLOTTAL I;Lu;0;L;;;;;N;;;;A7BD;
+A7BD;LATIN SMALL LETTER GLOTTAL I;Ll;0;L;;;;;N;;;A7BC;;A7BC
+A7BE;LATIN CAPITAL LETTER GLOTTAL U;Lu;0;L;;;;;N;;;;A7BF;
+A7BF;LATIN SMALL LETTER GLOTTAL U;Ll;0;L;;;;;N;;;A7BE;;A7BE
+A7C2;LATIN CAPITAL LETTER ANGLICANA W;Lu;0;L;;;;;N;;;;A7C3;
+A7C3;LATIN SMALL LETTER ANGLICANA W;Ll;0;L;;;;;N;;;A7C2;;A7C2
+A7C4;LATIN CAPITAL LETTER C WITH PALATAL HOOK;Lu;0;L;;;;;N;;;;A794;
+A7C5;LATIN CAPITAL LETTER S WITH HOOK;Lu;0;L;;;;;N;;;;0282;
+A7C6;LATIN CAPITAL LETTER Z WITH PALATAL HOOK;Lu;0;L;;;;;N;;;;1D8E;
A7F7;LATIN EPIGRAPHIC LETTER SIDEWAYS I;Lo;0;L;;;;;N;;;;;
A7F8;MODIFIER LETTER CAPITAL H WITH STROKE;Lm;0;L;<super> 0126;;;;N;;;;;
A7F9;MODIFIER LETTER SMALL LIGATURE OE;Lm;0;L;<super> 0153;;;;N;;;;;
@@ -14506,7 +14538,7 @@ A9B9;JAVANESE VOWEL SIGN SUKU MENDUT;Mn;0;NSM;;;;;N;;;;;
A9BA;JAVANESE VOWEL SIGN TALING;Mc;0;L;;;;;N;;;;;
A9BB;JAVANESE VOWEL SIGN DIRGA MURE;Mc;0;L;;;;;N;;;;;
A9BC;JAVANESE VOWEL SIGN PEPET;Mn;0;NSM;;;;;N;;;;;
-A9BD;JAVANESE CONSONANT SIGN KERET;Mc;0;L;;;;;N;;;;;
+A9BD;JAVANESE CONSONANT SIGN KERET;Mn;0;NSM;;;;;N;;;;;
A9BE;JAVANESE CONSONANT SIGN PENGKAL;Mc;0;L;;;;;N;;;;;
A9BF;JAVANESE CONSONANT SIGN CAKRA;Mc;0;L;;;;;N;;;;;
A9C0;JAVANESE PANGKON;Mc;9;L;;;;;N;;;;;
@@ -14863,6 +14895,8 @@ AB62;LATIN SMALL LETTER OPEN OE;Ll;0;L;;;;;N;;;;;
AB63;LATIN SMALL LETTER UO;Ll;0;L;;;;;N;;;;;
AB64;LATIN SMALL LETTER INVERTED ALPHA;Ll;0;L;;;;;N;;;;;
AB65;GREEK LETTER SMALL CAPITAL OMEGA;Ll;0;L;;;;;N;;;;;
+AB66;LATIN SMALL LETTER DZ DIGRAPH WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
+AB67;LATIN SMALL LETTER TS DIGRAPH WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
AB70;CHEROKEE SMALL LETTER A;Ll;0;L;;;;;N;;;13A0;;13A0
AB71;CHEROKEE SMALL LETTER E;Ll;0;L;;;;;N;;;13A1;;13A1
AB72;CHEROKEE SMALL LETTER I;Ll;0;L;;;;;N;;;13A2;;13A2
@@ -19105,6 +19139,29 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
10F57;SOGDIAN PUNCTUATION CIRCLE WITH DOT;Po;0;AL;;;;;N;;;;;
10F58;SOGDIAN PUNCTUATION TWO CIRCLES WITH DOTS;Po;0;AL;;;;;N;;;;;
10F59;SOGDIAN PUNCTUATION HALF CIRCLE WITH DOT;Po;0;AL;;;;;N;;;;;
+10FE0;ELYMAIC LETTER ALEPH;Lo;0;R;;;;;N;;;;;
+10FE1;ELYMAIC LETTER BETH;Lo;0;R;;;;;N;;;;;
+10FE2;ELYMAIC LETTER GIMEL;Lo;0;R;;;;;N;;;;;
+10FE3;ELYMAIC LETTER DALETH;Lo;0;R;;;;;N;;;;;
+10FE4;ELYMAIC LETTER HE;Lo;0;R;;;;;N;;;;;
+10FE5;ELYMAIC LETTER WAW;Lo;0;R;;;;;N;;;;;
+10FE6;ELYMAIC LETTER ZAYIN;Lo;0;R;;;;;N;;;;;
+10FE7;ELYMAIC LETTER HETH;Lo;0;R;;;;;N;;;;;
+10FE8;ELYMAIC LETTER TETH;Lo;0;R;;;;;N;;;;;
+10FE9;ELYMAIC LETTER YODH;Lo;0;R;;;;;N;;;;;
+10FEA;ELYMAIC LETTER KAPH;Lo;0;R;;;;;N;;;;;
+10FEB;ELYMAIC LETTER LAMEDH;Lo;0;R;;;;;N;;;;;
+10FEC;ELYMAIC LETTER MEM;Lo;0;R;;;;;N;;;;;
+10FED;ELYMAIC LETTER NUN;Lo;0;R;;;;;N;;;;;
+10FEE;ELYMAIC LETTER SAMEKH;Lo;0;R;;;;;N;;;;;
+10FEF;ELYMAIC LETTER AYIN;Lo;0;R;;;;;N;;;;;
+10FF0;ELYMAIC LETTER PE;Lo;0;R;;;;;N;;;;;
+10FF1;ELYMAIC LETTER SADHE;Lo;0;R;;;;;N;;;;;
+10FF2;ELYMAIC LETTER QOPH;Lo;0;R;;;;;N;;;;;
+10FF3;ELYMAIC LETTER RESH;Lo;0;R;;;;;N;;;;;
+10FF4;ELYMAIC LETTER SHIN;Lo;0;R;;;;;N;;;;;
+10FF5;ELYMAIC LETTER TAW;Lo;0;R;;;;;N;;;;;
+10FF6;ELYMAIC LIGATURE ZAYIN-YODH;Lo;0;R;;;;;N;;;;;
11000;BRAHMI SIGN CANDRABINDU;Mc;0;L;;;;;N;;;;;
11001;BRAHMI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
11002;BRAHMI SIGN VISARGA;Mc;0;L;;;;;N;;;;;
@@ -19887,6 +19944,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1145B;NEWA PLACEHOLDER MARK;Po;0;L;;;;;N;;;;;
1145D;NEWA INSERTION SIGN;Po;0;L;;;;;N;;;;;
1145E;NEWA SANDHI MARK;Mn;230;NSM;;;;;N;;;;;
+1145F;NEWA LETTER VEDIC ANUSVARA;Lo;0;L;;;;;N;;;;;
11480;TIRHUTA ANJI;Lo;0;L;;;;;N;;;;;
11481;TIRHUTA LETTER A;Lo;0;L;;;;;N;;;;;
11482;TIRHUTA LETTER AA;Lo;0;L;;;;;N;;;;;
@@ -20209,6 +20267,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
116B5;TAKRI VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;;
116B6;TAKRI SIGN VIRAMA;Mc;9;L;;;;;N;;;;;
116B7;TAKRI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
+116B8;TAKRI LETTER ARCHAIC KHA;Lo;0;L;;;;;N;;;;;
116C0;TAKRI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
116C1;TAKRI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
116C2;TAKRI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
@@ -20421,6 +20480,71 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
118F1;WARANG CITI NUMBER EIGHTY;No;0;L;;;;80;N;;;;;
118F2;WARANG CITI NUMBER NINETY;No;0;L;;;;90;N;;;;;
118FF;WARANG CITI OM;Lo;0;L;;;;;N;;;;;
+119A0;NANDINAGARI LETTER A;Lo;0;L;;;;;N;;;;;
+119A1;NANDINAGARI LETTER AA;Lo;0;L;;;;;N;;;;;
+119A2;NANDINAGARI LETTER I;Lo;0;L;;;;;N;;;;;
+119A3;NANDINAGARI LETTER II;Lo;0;L;;;;;N;;;;;
+119A4;NANDINAGARI LETTER U;Lo;0;L;;;;;N;;;;;
+119A5;NANDINAGARI LETTER UU;Lo;0;L;;;;;N;;;;;
+119A6;NANDINAGARI LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+119A7;NANDINAGARI LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+119AA;NANDINAGARI LETTER E;Lo;0;L;;;;;N;;;;;
+119AB;NANDINAGARI LETTER AI;Lo;0;L;;;;;N;;;;;
+119AC;NANDINAGARI LETTER O;Lo;0;L;;;;;N;;;;;
+119AD;NANDINAGARI LETTER AU;Lo;0;L;;;;;N;;;;;
+119AE;NANDINAGARI LETTER KA;Lo;0;L;;;;;N;;;;;
+119AF;NANDINAGARI LETTER KHA;Lo;0;L;;;;;N;;;;;
+119B0;NANDINAGARI LETTER GA;Lo;0;L;;;;;N;;;;;
+119B1;NANDINAGARI LETTER GHA;Lo;0;L;;;;;N;;;;;
+119B2;NANDINAGARI LETTER NGA;Lo;0;L;;;;;N;;;;;
+119B3;NANDINAGARI LETTER CA;Lo;0;L;;;;;N;;;;;
+119B4;NANDINAGARI LETTER CHA;Lo;0;L;;;;;N;;;;;
+119B5;NANDINAGARI LETTER JA;Lo;0;L;;;;;N;;;;;
+119B6;NANDINAGARI LETTER JHA;Lo;0;L;;;;;N;;;;;
+119B7;NANDINAGARI LETTER NYA;Lo;0;L;;;;;N;;;;;
+119B8;NANDINAGARI LETTER TTA;Lo;0;L;;;;;N;;;;;
+119B9;NANDINAGARI LETTER TTHA;Lo;0;L;;;;;N;;;;;
+119BA;NANDINAGARI LETTER DDA;Lo;0;L;;;;;N;;;;;
+119BB;NANDINAGARI LETTER DDHA;Lo;0;L;;;;;N;;;;;
+119BC;NANDINAGARI LETTER NNA;Lo;0;L;;;;;N;;;;;
+119BD;NANDINAGARI LETTER TA;Lo;0;L;;;;;N;;;;;
+119BE;NANDINAGARI LETTER THA;Lo;0;L;;;;;N;;;;;
+119BF;NANDINAGARI LETTER DA;Lo;0;L;;;;;N;;;;;
+119C0;NANDINAGARI LETTER DHA;Lo;0;L;;;;;N;;;;;
+119C1;NANDINAGARI LETTER NA;Lo;0;L;;;;;N;;;;;
+119C2;NANDINAGARI LETTER PA;Lo;0;L;;;;;N;;;;;
+119C3;NANDINAGARI LETTER PHA;Lo;0;L;;;;;N;;;;;
+119C4;NANDINAGARI LETTER BA;Lo;0;L;;;;;N;;;;;
+119C5;NANDINAGARI LETTER BHA;Lo;0;L;;;;;N;;;;;
+119C6;NANDINAGARI LETTER MA;Lo;0;L;;;;;N;;;;;
+119C7;NANDINAGARI LETTER YA;Lo;0;L;;;;;N;;;;;
+119C8;NANDINAGARI LETTER RA;Lo;0;L;;;;;N;;;;;
+119C9;NANDINAGARI LETTER LA;Lo;0;L;;;;;N;;;;;
+119CA;NANDINAGARI LETTER VA;Lo;0;L;;;;;N;;;;;
+119CB;NANDINAGARI LETTER SHA;Lo;0;L;;;;;N;;;;;
+119CC;NANDINAGARI LETTER SSA;Lo;0;L;;;;;N;;;;;
+119CD;NANDINAGARI LETTER SA;Lo;0;L;;;;;N;;;;;
+119CE;NANDINAGARI LETTER HA;Lo;0;L;;;;;N;;;;;
+119CF;NANDINAGARI LETTER LLA;Lo;0;L;;;;;N;;;;;
+119D0;NANDINAGARI LETTER RRA;Lo;0;L;;;;;N;;;;;
+119D1;NANDINAGARI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+119D2;NANDINAGARI VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+119D3;NANDINAGARI VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+119D4;NANDINAGARI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+119D5;NANDINAGARI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+119D6;NANDINAGARI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
+119D7;NANDINAGARI VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;;
+119DA;NANDINAGARI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
+119DB;NANDINAGARI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;
+119DC;NANDINAGARI VOWEL SIGN O;Mc;0;L;;;;;N;;;;;
+119DD;NANDINAGARI VOWEL SIGN AU;Mc;0;L;;;;;N;;;;;
+119DE;NANDINAGARI SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
+119DF;NANDINAGARI SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+119E0;NANDINAGARI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+119E1;NANDINAGARI SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;;
+119E2;NANDINAGARI SIGN SIDDHAM;Po;0;L;;;;;N;;;;;
+119E3;NANDINAGARI HEADSTROKE;Lo;0;L;;;;;N;;;;;
+119E4;NANDINAGARI VOWEL SIGN PRISHTHAMATRA E;Mc;0;L;;;;;N;;;;;
11A00;ZANABAZAR SQUARE LETTER A;Lo;0;L;;;;;N;;;;;
11A01;ZANABAZAR SQUARE VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
11A02;ZANABAZAR SQUARE VOWEL SIGN UE;Mn;0;NSM;;;;;N;;;;;
@@ -20545,6 +20669,8 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
11A81;SOYOMBO LETTER SA;Lo;0;L;;;;;N;;;;;
11A82;SOYOMBO LETTER HA;Lo;0;L;;;;;N;;;;;
11A83;SOYOMBO LETTER KSSA;Lo;0;L;;;;;N;;;;;
+11A84;SOYOMBO SIGN JIHVAMULIYA;Lo;0;L;;;;;N;;;;;
+11A85;SOYOMBO SIGN UPADHMANIYA;Lo;0;L;;;;;N;;;;;
11A86;SOYOMBO CLUSTER-INITIAL LETTER RA;Lo;0;L;;;;;N;;;;;
11A87;SOYOMBO CLUSTER-INITIAL LETTER LA;Lo;0;L;;;;;N;;;;;
11A88;SOYOMBO CLUSTER-INITIAL LETTER SHA;Lo;0;L;;;;;N;;;;;
@@ -20959,6 +21085,57 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
11EF6;MAKASAR VOWEL SIGN O;Mc;0;L;;;;;N;;;;;
11EF7;MAKASAR PASSIMBANG;Po;0;L;;;;;N;;;;;
11EF8;MAKASAR END OF SECTION;Po;0;L;;;;;N;;;;;
+11FC0;TAMIL FRACTION ONE THREE-HUNDRED-AND-TWENTIETH;No;0;L;;;;1/320;N;;;;;
+11FC1;TAMIL FRACTION ONE ONE-HUNDRED-AND-SIXTIETH;No;0;L;;;;1/160;N;;;;;
+11FC2;TAMIL FRACTION ONE EIGHTIETH;No;0;L;;;;1/80;N;;;;;
+11FC3;TAMIL FRACTION ONE SIXTY-FOURTH;No;0;L;;;;1/64;N;;;;;
+11FC4;TAMIL FRACTION ONE FORTIETH;No;0;L;;;;1/40;N;;;;;
+11FC5;TAMIL FRACTION ONE THIRTY-SECOND;No;0;L;;;;1/32;N;;;;;
+11FC6;TAMIL FRACTION THREE EIGHTIETHS;No;0;L;;;;3/80;N;;;;;
+11FC7;TAMIL FRACTION THREE SIXTY-FOURTHS;No;0;L;;;;3/64;N;;;;;
+11FC8;TAMIL FRACTION ONE TWENTIETH;No;0;L;;;;1/20;N;;;;;
+11FC9;TAMIL FRACTION ONE SIXTEENTH-1;No;0;L;;;;1/16;N;;;;;
+11FCA;TAMIL FRACTION ONE SIXTEENTH-2;No;0;L;;;;1/16;N;;;;;
+11FCB;TAMIL FRACTION ONE TENTH;No;0;L;;;;1/10;N;;;;;
+11FCC;TAMIL FRACTION ONE EIGHTH;No;0;L;;;;1/8;N;;;;;
+11FCD;TAMIL FRACTION THREE TWENTIETHS;No;0;L;;;;3/20;N;;;;;
+11FCE;TAMIL FRACTION THREE SIXTEENTHS;No;0;L;;;;3/16;N;;;;;
+11FCF;TAMIL FRACTION ONE FIFTH;No;0;L;;;;1/5;N;;;;;
+11FD0;TAMIL FRACTION ONE QUARTER;No;0;L;;;;1/4;N;;;;;
+11FD1;TAMIL FRACTION ONE HALF-1;No;0;L;;;;1/2;N;;;;;
+11FD2;TAMIL FRACTION ONE HALF-2;No;0;L;;;;1/2;N;;;;;
+11FD3;TAMIL FRACTION THREE QUARTERS;No;0;L;;;;3/4;N;;;;;
+11FD4;TAMIL FRACTION DOWNSCALING FACTOR KIIZH;No;0;L;;;;1/320;N;;;;;
+11FD5;TAMIL SIGN NEL;So;0;ON;;;;;N;;;;;
+11FD6;TAMIL SIGN CEVITU;So;0;ON;;;;;N;;;;;
+11FD7;TAMIL SIGN AAZHAAKKU;So;0;ON;;;;;N;;;;;
+11FD8;TAMIL SIGN UZHAKKU;So;0;ON;;;;;N;;;;;
+11FD9;TAMIL SIGN MUUVUZHAKKU;So;0;ON;;;;;N;;;;;
+11FDA;TAMIL SIGN KURUNI;So;0;ON;;;;;N;;;;;
+11FDB;TAMIL SIGN PATHAKKU;So;0;ON;;;;;N;;;;;
+11FDC;TAMIL SIGN MUKKURUNI;So;0;ON;;;;;N;;;;;
+11FDD;TAMIL SIGN KAACU;Sc;0;ET;;;;;N;;;;;
+11FDE;TAMIL SIGN PANAM;Sc;0;ET;;;;;N;;;;;
+11FDF;TAMIL SIGN PON;Sc;0;ET;;;;;N;;;;;
+11FE0;TAMIL SIGN VARAAKAN;Sc;0;ET;;;;;N;;;;;
+11FE1;TAMIL SIGN PAARAM;So;0;ON;;;;;N;;;;;
+11FE2;TAMIL SIGN KUZHI;So;0;ON;;;;;N;;;;;
+11FE3;TAMIL SIGN VELI;So;0;ON;;;;;N;;;;;
+11FE4;TAMIL WET CULTIVATION SIGN;So;0;ON;;;;;N;;;;;
+11FE5;TAMIL DRY CULTIVATION SIGN;So;0;ON;;;;;N;;;;;
+11FE6;TAMIL LAND SIGN;So;0;ON;;;;;N;;;;;
+11FE7;TAMIL SALT PAN SIGN;So;0;ON;;;;;N;;;;;
+11FE8;TAMIL TRADITIONAL CREDIT SIGN;So;0;ON;;;;;N;;;;;
+11FE9;TAMIL TRADITIONAL NUMBER SIGN;So;0;ON;;;;;N;;;;;
+11FEA;TAMIL CURRENT SIGN;So;0;ON;;;;;N;;;;;
+11FEB;TAMIL AND ODD SIGN;So;0;ON;;;;;N;;;;;
+11FEC;TAMIL SPENT SIGN;So;0;ON;;;;;N;;;;;
+11FED;TAMIL TOTAL SIGN;So;0;ON;;;;;N;;;;;
+11FEE;TAMIL IN POSSESSION SIGN;So;0;ON;;;;;N;;;;;
+11FEF;TAMIL STARTING FROM SIGN;So;0;ON;;;;;N;;;;;
+11FF0;TAMIL SIGN MUTHALIYA;So;0;ON;;;;;N;;;;;
+11FF1;TAMIL SIGN VAKAIYARAA;So;0;ON;;;;;N;;;;;
+11FFF;TAMIL PUNCTUATION END OF TEXT;Po;0;L;;;;;N;;;;;
12000;CUNEIFORM SIGN A;Lo;0;L;;;;;N;;;;;
12001;CUNEIFORM SIGN A TIMES A;Lo;0;L;;;;;N;;;;;
12002;CUNEIFORM SIGN A TIMES BAD;Lo;0;L;;;;;N;;;;;
@@ -23264,6 +23441,15 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1342C;EGYPTIAN HIEROGLYPH AA030;Lo;0;L;;;;;N;;;;;
1342D;EGYPTIAN HIEROGLYPH AA031;Lo;0;L;;;;;N;;;;;
1342E;EGYPTIAN HIEROGLYPH AA032;Lo;0;L;;;;;N;;;;;
+13430;EGYPTIAN HIEROGLYPH VERTICAL JOINER;Cf;0;L;;;;;N;;;;;
+13431;EGYPTIAN HIEROGLYPH HORIZONTAL JOINER;Cf;0;L;;;;;N;;;;;
+13432;EGYPTIAN HIEROGLYPH INSERT AT TOP START;Cf;0;L;;;;;N;;;;;
+13433;EGYPTIAN HIEROGLYPH INSERT AT BOTTOM START;Cf;0;L;;;;;N;;;;;
+13434;EGYPTIAN HIEROGLYPH INSERT AT TOP END;Cf;0;L;;;;;N;;;;;
+13435;EGYPTIAN HIEROGLYPH INSERT AT BOTTOM END;Cf;0;L;;;;;N;;;;;
+13436;EGYPTIAN HIEROGLYPH OVERLAY MIDDLE;Cf;0;L;;;;;N;;;;;
+13437;EGYPTIAN HIEROGLYPH BEGIN SEGMENT;Cf;0;L;;;;;N;;;;;
+13438;EGYPTIAN HIEROGLYPH END SEGMENT;Cf;0;L;;;;;N;;;;;
14400;ANATOLIAN HIEROGLYPH A001;Lo;0;L;;;;;N;;;;;
14401;ANATOLIAN HIEROGLYPH A002;Lo;0;L;;;;;N;;;;;
14402;ANATOLIAN HIEROGLYPH A003;Lo;0;L;;;;;N;;;;;
@@ -24782,6 +24968,13 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
16F42;MIAO LETTER WA;Lo;0;L;;;;;N;;;;;
16F43;MIAO LETTER AH;Lo;0;L;;;;;N;;;;;
16F44;MIAO LETTER HHA;Lo;0;L;;;;;N;;;;;
+16F45;MIAO LETTER BRI;Lo;0;L;;;;;N;;;;;
+16F46;MIAO LETTER SYI;Lo;0;L;;;;;N;;;;;
+16F47;MIAO LETTER DZYI;Lo;0;L;;;;;N;;;;;
+16F48;MIAO LETTER TE;Lo;0;L;;;;;N;;;;;
+16F49;MIAO LETTER TSE;Lo;0;L;;;;;N;;;;;
+16F4A;MIAO LETTER RTE;Lo;0;L;;;;;N;;;;;
+16F4F;MIAO SIGN CONSONANT MODIFIER BAR;Mn;0;NSM;;;;;N;;;;;
16F50;MIAO LETTER NASALIZATION;Lo;0;L;;;;;N;;;;;
16F51;MIAO SIGN ASPIRATION;Mc;0;L;;;;;N;;;;;
16F52;MIAO SIGN REFORMED VOICING;Mc;0;L;;;;;N;;;;;
@@ -24829,6 +25022,15 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
16F7C;MIAO VOWEL SIGN OU;Mc;0;L;;;;;N;;;;;
16F7D;MIAO VOWEL SIGN N;Mc;0;L;;;;;N;;;;;
16F7E;MIAO VOWEL SIGN NG;Mc;0;L;;;;;N;;;;;
+16F7F;MIAO VOWEL SIGN UOG;Mc;0;L;;;;;N;;;;;
+16F80;MIAO VOWEL SIGN YUI;Mc;0;L;;;;;N;;;;;
+16F81;MIAO VOWEL SIGN OG;Mc;0;L;;;;;N;;;;;
+16F82;MIAO VOWEL SIGN OER;Mc;0;L;;;;;N;;;;;
+16F83;MIAO VOWEL SIGN VW;Mc;0;L;;;;;N;;;;;
+16F84;MIAO VOWEL SIGN IG;Mc;0;L;;;;;N;;;;;
+16F85;MIAO VOWEL SIGN EA;Mc;0;L;;;;;N;;;;;
+16F86;MIAO VOWEL SIGN IONG;Mc;0;L;;;;;N;;;;;
+16F87;MIAO VOWEL SIGN UI;Mc;0;L;;;;;N;;;;;
16F8F;MIAO TONE RIGHT;Mn;0;NSM;;;;;N;;;;;
16F90;MIAO TONE TOP RIGHT;Mn;0;NSM;;;;;N;;;;;
16F91;MIAO TONE ABOVE;Mn;0;NSM;;;;;N;;;;;
@@ -24848,8 +25050,10 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
16F9F;MIAO LETTER REFORMED TONE-8;Lm;0;L;;;;;N;;;;;
16FE0;TANGUT ITERATION MARK;Lm;0;L;;;;;N;;;;;
16FE1;NUSHU ITERATION MARK;Lm;0;L;;;;;N;;;;;
+16FE2;OLD CHINESE HOOK MARK;Po;0;ON;;;;;N;;;;;
+16FE3;OLD CHINESE ITERATION MARK;Lm;0;L;;;;;N;;;;;
17000;<Tangut Ideograph, First>;Lo;0;L;;;;;N;;;;;
-187F1;<Tangut Ideograph, Last>;Lo;0;L;;;;;N;;;;;
+187F7;<Tangut Ideograph, Last>;Lo;0;L;;;;;N;;;;;
18800;TANGUT COMPONENT-001;Lo;0;L;;;;;N;;;;;
18801;TANGUT COMPONENT-002;Lo;0;L;;;;;N;;;;;
18802;TANGUT COMPONENT-003;Lo;0;L;;;;;N;;;;;
@@ -25892,6 +26096,13 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1B11C;HENTAIGANA LETTER WO-7;Lo;0;L;;;;;N;;;;;
1B11D;HENTAIGANA LETTER N-MU-MO-1;Lo;0;L;;;;;N;;;;;
1B11E;HENTAIGANA LETTER N-MU-MO-2;Lo;0;L;;;;;N;;;;;
+1B150;HIRAGANA LETTER SMALL WI;Lo;0;L;;;;;N;;;;;
+1B151;HIRAGANA LETTER SMALL WE;Lo;0;L;;;;;N;;;;;
+1B152;HIRAGANA LETTER SMALL WO;Lo;0;L;;;;;N;;;;;
+1B164;KATAKANA LETTER SMALL WI;Lo;0;L;;;;;N;;;;;
+1B165;KATAKANA LETTER SMALL WE;Lo;0;L;;;;;N;;;;;
+1B166;KATAKANA LETTER SMALL WO;Lo;0;L;;;;;N;;;;;
+1B167;KATAKANA LETTER SMALL N;Lo;0;L;;;;;N;;;;;
1B170;NUSHU CHARACTER-1B170;Lo;0;L;;;;;N;;;;;
1B171;NUSHU CHARACTER-1B171;Lo;0;L;;;;;N;;;;;
1B172;NUSHU CHARACTER-1B172;Lo;0;L;;;;;N;;;;;
@@ -28820,6 +29031,136 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1E028;COMBINING GLAGOLITIC LETTER BIG YUS;Mn;230;NSM;;;;;N;;;;;
1E029;COMBINING GLAGOLITIC LETTER IOTATED BIG YUS;Mn;230;NSM;;;;;N;;;;;
1E02A;COMBINING GLAGOLITIC LETTER FITA;Mn;230;NSM;;;;;N;;;;;
+1E100;NYIAKENG PUACHUE HMONG LETTER MA;Lo;0;L;;;;;N;;;;;
+1E101;NYIAKENG PUACHUE HMONG LETTER TSA;Lo;0;L;;;;;N;;;;;
+1E102;NYIAKENG PUACHUE HMONG LETTER NTA;Lo;0;L;;;;;N;;;;;
+1E103;NYIAKENG PUACHUE HMONG LETTER TA;Lo;0;L;;;;;N;;;;;
+1E104;NYIAKENG PUACHUE HMONG LETTER HA;Lo;0;L;;;;;N;;;;;
+1E105;NYIAKENG PUACHUE HMONG LETTER NA;Lo;0;L;;;;;N;;;;;
+1E106;NYIAKENG PUACHUE HMONG LETTER XA;Lo;0;L;;;;;N;;;;;
+1E107;NYIAKENG PUACHUE HMONG LETTER NKA;Lo;0;L;;;;;N;;;;;
+1E108;NYIAKENG PUACHUE HMONG LETTER CA;Lo;0;L;;;;;N;;;;;
+1E109;NYIAKENG PUACHUE HMONG LETTER LA;Lo;0;L;;;;;N;;;;;
+1E10A;NYIAKENG PUACHUE HMONG LETTER SA;Lo;0;L;;;;;N;;;;;
+1E10B;NYIAKENG PUACHUE HMONG LETTER ZA;Lo;0;L;;;;;N;;;;;
+1E10C;NYIAKENG PUACHUE HMONG LETTER NCA;Lo;0;L;;;;;N;;;;;
+1E10D;NYIAKENG PUACHUE HMONG LETTER NTSA;Lo;0;L;;;;;N;;;;;
+1E10E;NYIAKENG PUACHUE HMONG LETTER KA;Lo;0;L;;;;;N;;;;;
+1E10F;NYIAKENG PUACHUE HMONG LETTER DA;Lo;0;L;;;;;N;;;;;
+1E110;NYIAKENG PUACHUE HMONG LETTER NYA;Lo;0;L;;;;;N;;;;;
+1E111;NYIAKENG PUACHUE HMONG LETTER NRA;Lo;0;L;;;;;N;;;;;
+1E112;NYIAKENG PUACHUE HMONG LETTER VA;Lo;0;L;;;;;N;;;;;
+1E113;NYIAKENG PUACHUE HMONG LETTER NTXA;Lo;0;L;;;;;N;;;;;
+1E114;NYIAKENG PUACHUE HMONG LETTER TXA;Lo;0;L;;;;;N;;;;;
+1E115;NYIAKENG PUACHUE HMONG LETTER FA;Lo;0;L;;;;;N;;;;;
+1E116;NYIAKENG PUACHUE HMONG LETTER RA;Lo;0;L;;;;;N;;;;;
+1E117;NYIAKENG PUACHUE HMONG LETTER QA;Lo;0;L;;;;;N;;;;;
+1E118;NYIAKENG PUACHUE HMONG LETTER YA;Lo;0;L;;;;;N;;;;;
+1E119;NYIAKENG PUACHUE HMONG LETTER NQA;Lo;0;L;;;;;N;;;;;
+1E11A;NYIAKENG PUACHUE HMONG LETTER PA;Lo;0;L;;;;;N;;;;;
+1E11B;NYIAKENG PUACHUE HMONG LETTER XYA;Lo;0;L;;;;;N;;;;;
+1E11C;NYIAKENG PUACHUE HMONG LETTER NPA;Lo;0;L;;;;;N;;;;;
+1E11D;NYIAKENG PUACHUE HMONG LETTER DLA;Lo;0;L;;;;;N;;;;;
+1E11E;NYIAKENG PUACHUE HMONG LETTER NPLA;Lo;0;L;;;;;N;;;;;
+1E11F;NYIAKENG PUACHUE HMONG LETTER HAH;Lo;0;L;;;;;N;;;;;
+1E120;NYIAKENG PUACHUE HMONG LETTER MLA;Lo;0;L;;;;;N;;;;;
+1E121;NYIAKENG PUACHUE HMONG LETTER PLA;Lo;0;L;;;;;N;;;;;
+1E122;NYIAKENG PUACHUE HMONG LETTER GA;Lo;0;L;;;;;N;;;;;
+1E123;NYIAKENG PUACHUE HMONG LETTER RRA;Lo;0;L;;;;;N;;;;;
+1E124;NYIAKENG PUACHUE HMONG LETTER A;Lo;0;L;;;;;N;;;;;
+1E125;NYIAKENG PUACHUE HMONG LETTER AA;Lo;0;L;;;;;N;;;;;
+1E126;NYIAKENG PUACHUE HMONG LETTER I;Lo;0;L;;;;;N;;;;;
+1E127;NYIAKENG PUACHUE HMONG LETTER U;Lo;0;L;;;;;N;;;;;
+1E128;NYIAKENG PUACHUE HMONG LETTER O;Lo;0;L;;;;;N;;;;;
+1E129;NYIAKENG PUACHUE HMONG LETTER OO;Lo;0;L;;;;;N;;;;;
+1E12A;NYIAKENG PUACHUE HMONG LETTER E;Lo;0;L;;;;;N;;;;;
+1E12B;NYIAKENG PUACHUE HMONG LETTER EE;Lo;0;L;;;;;N;;;;;
+1E12C;NYIAKENG PUACHUE HMONG LETTER W;Lo;0;L;;;;;N;;;;;
+1E130;NYIAKENG PUACHUE HMONG TONE-B;Mn;230;NSM;;;;;N;;;;;
+1E131;NYIAKENG PUACHUE HMONG TONE-M;Mn;230;NSM;;;;;N;;;;;
+1E132;NYIAKENG PUACHUE HMONG TONE-J;Mn;230;NSM;;;;;N;;;;;
+1E133;NYIAKENG PUACHUE HMONG TONE-V;Mn;230;NSM;;;;;N;;;;;
+1E134;NYIAKENG PUACHUE HMONG TONE-S;Mn;230;NSM;;;;;N;;;;;
+1E135;NYIAKENG PUACHUE HMONG TONE-G;Mn;230;NSM;;;;;N;;;;;
+1E136;NYIAKENG PUACHUE HMONG TONE-D;Mn;230;NSM;;;;;N;;;;;
+1E137;NYIAKENG PUACHUE HMONG SIGN FOR PERSON;Lm;0;L;;;;;N;;;;;
+1E138;NYIAKENG PUACHUE HMONG SIGN FOR THING;Lm;0;L;;;;;N;;;;;
+1E139;NYIAKENG PUACHUE HMONG SIGN FOR LOCATION;Lm;0;L;;;;;N;;;;;
+1E13A;NYIAKENG PUACHUE HMONG SIGN FOR ANIMAL;Lm;0;L;;;;;N;;;;;
+1E13B;NYIAKENG PUACHUE HMONG SIGN FOR INVERTEBRATE;Lm;0;L;;;;;N;;;;;
+1E13C;NYIAKENG PUACHUE HMONG SIGN XW XW;Lm;0;L;;;;;N;;;;;
+1E13D;NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER;Lm;0;L;;;;;N;;;;;
+1E140;NYIAKENG PUACHUE HMONG DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+1E141;NYIAKENG PUACHUE HMONG DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+1E142;NYIAKENG PUACHUE HMONG DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+1E143;NYIAKENG PUACHUE HMONG DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+1E144;NYIAKENG PUACHUE HMONG DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+1E145;NYIAKENG PUACHUE HMONG DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+1E146;NYIAKENG PUACHUE HMONG DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+1E147;NYIAKENG PUACHUE HMONG DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+1E148;NYIAKENG PUACHUE HMONG DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+1E149;NYIAKENG PUACHUE HMONG DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+1E14E;NYIAKENG PUACHUE HMONG LOGOGRAM NYAJ;Lo;0;L;;;;;N;;;;;
+1E14F;NYIAKENG PUACHUE HMONG CIRCLED CA;So;0;L;;;;;N;;;;;
+1E2C0;WANCHO LETTER AA;Lo;0;L;;;;;N;;;;;
+1E2C1;WANCHO LETTER A;Lo;0;L;;;;;N;;;;;
+1E2C2;WANCHO LETTER BA;Lo;0;L;;;;;N;;;;;
+1E2C3;WANCHO LETTER CA;Lo;0;L;;;;;N;;;;;
+1E2C4;WANCHO LETTER DA;Lo;0;L;;;;;N;;;;;
+1E2C5;WANCHO LETTER GA;Lo;0;L;;;;;N;;;;;
+1E2C6;WANCHO LETTER YA;Lo;0;L;;;;;N;;;;;
+1E2C7;WANCHO LETTER PHA;Lo;0;L;;;;;N;;;;;
+1E2C8;WANCHO LETTER LA;Lo;0;L;;;;;N;;;;;
+1E2C9;WANCHO LETTER NA;Lo;0;L;;;;;N;;;;;
+1E2CA;WANCHO LETTER PA;Lo;0;L;;;;;N;;;;;
+1E2CB;WANCHO LETTER TA;Lo;0;L;;;;;N;;;;;
+1E2CC;WANCHO LETTER THA;Lo;0;L;;;;;N;;;;;
+1E2CD;WANCHO LETTER FA;Lo;0;L;;;;;N;;;;;
+1E2CE;WANCHO LETTER SA;Lo;0;L;;;;;N;;;;;
+1E2CF;WANCHO LETTER SHA;Lo;0;L;;;;;N;;;;;
+1E2D0;WANCHO LETTER JA;Lo;0;L;;;;;N;;;;;
+1E2D1;WANCHO LETTER ZA;Lo;0;L;;;;;N;;;;;
+1E2D2;WANCHO LETTER WA;Lo;0;L;;;;;N;;;;;
+1E2D3;WANCHO LETTER VA;Lo;0;L;;;;;N;;;;;
+1E2D4;WANCHO LETTER KA;Lo;0;L;;;;;N;;;;;
+1E2D5;WANCHO LETTER O;Lo;0;L;;;;;N;;;;;
+1E2D6;WANCHO LETTER AU;Lo;0;L;;;;;N;;;;;
+1E2D7;WANCHO LETTER RA;Lo;0;L;;;;;N;;;;;
+1E2D8;WANCHO LETTER MA;Lo;0;L;;;;;N;;;;;
+1E2D9;WANCHO LETTER KHA;Lo;0;L;;;;;N;;;;;
+1E2DA;WANCHO LETTER HA;Lo;0;L;;;;;N;;;;;
+1E2DB;WANCHO LETTER E;Lo;0;L;;;;;N;;;;;
+1E2DC;WANCHO LETTER I;Lo;0;L;;;;;N;;;;;
+1E2DD;WANCHO LETTER NGA;Lo;0;L;;;;;N;;;;;
+1E2DE;WANCHO LETTER U;Lo;0;L;;;;;N;;;;;
+1E2DF;WANCHO LETTER LLHA;Lo;0;L;;;;;N;;;;;
+1E2E0;WANCHO LETTER TSA;Lo;0;L;;;;;N;;;;;
+1E2E1;WANCHO LETTER TRA;Lo;0;L;;;;;N;;;;;
+1E2E2;WANCHO LETTER ONG;Lo;0;L;;;;;N;;;;;
+1E2E3;WANCHO LETTER AANG;Lo;0;L;;;;;N;;;;;
+1E2E4;WANCHO LETTER ANG;Lo;0;L;;;;;N;;;;;
+1E2E5;WANCHO LETTER ING;Lo;0;L;;;;;N;;;;;
+1E2E6;WANCHO LETTER ON;Lo;0;L;;;;;N;;;;;
+1E2E7;WANCHO LETTER EN;Lo;0;L;;;;;N;;;;;
+1E2E8;WANCHO LETTER AAN;Lo;0;L;;;;;N;;;;;
+1E2E9;WANCHO LETTER NYA;Lo;0;L;;;;;N;;;;;
+1E2EA;WANCHO LETTER UEN;Lo;0;L;;;;;N;;;;;
+1E2EB;WANCHO LETTER YIH;Lo;0;L;;;;;N;;;;;
+1E2EC;WANCHO TONE TUP;Mn;230;NSM;;;;;N;;;;;
+1E2ED;WANCHO TONE TUPNI;Mn;230;NSM;;;;;N;;;;;
+1E2EE;WANCHO TONE KOI;Mn;230;NSM;;;;;N;;;;;
+1E2EF;WANCHO TONE KOINI;Mn;230;NSM;;;;;N;;;;;
+1E2F0;WANCHO DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+1E2F1;WANCHO DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+1E2F2;WANCHO DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+1E2F3;WANCHO DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+1E2F4;WANCHO DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+1E2F5;WANCHO DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+1E2F6;WANCHO DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+1E2F7;WANCHO DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+1E2F8;WANCHO DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+1E2F9;WANCHO DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+1E2FF;WANCHO NGUN SIGN;Sc;0;ET;;;;;N;;;;;
1E800;MENDE KIKAKUI SYLLABLE M001 KI;Lo;0;R;;;;;N;;;;;
1E801;MENDE KIKAKUI SYLLABLE M002 KA;Lo;0;R;;;;;N;;;;;
1E802;MENDE KIKAKUI SYLLABLE M003 KU;Lo;0;R;;;;;N;;;;;
@@ -29108,6 +29449,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1E948;ADLAM CONSONANT MODIFIER;Mn;230;NSM;;;;;N;;;;;
1E949;ADLAM GEMINATE CONSONANT MODIFIER;Mn;230;NSM;;;;;N;;;;;
1E94A;ADLAM NUKTA;Mn;7;NSM;;;;;N;;;;;
+1E94B;ADLAM NASALIZATION MARK;Lm;0;R;;;;;N;;;;;
1E950;ADLAM DIGIT ZERO;Nd;0;R;;0;0;0;N;;;;;
1E951;ADLAM DIGIT ONE;Nd;0;R;;1;1;1;N;;;;;
1E952;ADLAM DIGIT TWO;Nd;0;R;;2;2;2;N;;;;;
@@ -29188,6 +29530,67 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1ECB2;INDIC SIYAQ NUMBER ALTERNATE TWO;No;0;AL;;;;2;N;;;;;
1ECB3;INDIC SIYAQ NUMBER ALTERNATE TEN THOUSAND;No;0;AL;;;;10000;N;;;;;
1ECB4;INDIC SIYAQ ALTERNATE LAKH MARK;No;0;AL;;;;100000;N;;;;;
+1ED01;OTTOMAN SIYAQ NUMBER ONE;No;0;AL;;;;1;N;;;;;
+1ED02;OTTOMAN SIYAQ NUMBER TWO;No;0;AL;;;;2;N;;;;;
+1ED03;OTTOMAN SIYAQ NUMBER THREE;No;0;AL;;;;3;N;;;;;
+1ED04;OTTOMAN SIYAQ NUMBER FOUR;No;0;AL;;;;4;N;;;;;
+1ED05;OTTOMAN SIYAQ NUMBER FIVE;No;0;AL;;;;5;N;;;;;
+1ED06;OTTOMAN SIYAQ NUMBER SIX;No;0;AL;;;;6;N;;;;;
+1ED07;OTTOMAN SIYAQ NUMBER SEVEN;No;0;AL;;;;7;N;;;;;
+1ED08;OTTOMAN SIYAQ NUMBER EIGHT;No;0;AL;;;;8;N;;;;;
+1ED09;OTTOMAN SIYAQ NUMBER NINE;No;0;AL;;;;9;N;;;;;
+1ED0A;OTTOMAN SIYAQ NUMBER TEN;No;0;AL;;;;10;N;;;;;
+1ED0B;OTTOMAN SIYAQ NUMBER TWENTY;No;0;AL;;;;20;N;;;;;
+1ED0C;OTTOMAN SIYAQ NUMBER THIRTY;No;0;AL;;;;30;N;;;;;
+1ED0D;OTTOMAN SIYAQ NUMBER FORTY;No;0;AL;;;;40;N;;;;;
+1ED0E;OTTOMAN SIYAQ NUMBER FIFTY;No;0;AL;;;;50;N;;;;;
+1ED0F;OTTOMAN SIYAQ NUMBER SIXTY;No;0;AL;;;;60;N;;;;;
+1ED10;OTTOMAN SIYAQ NUMBER SEVENTY;No;0;AL;;;;70;N;;;;;
+1ED11;OTTOMAN SIYAQ NUMBER EIGHTY;No;0;AL;;;;80;N;;;;;
+1ED12;OTTOMAN SIYAQ NUMBER NINETY;No;0;AL;;;;90;N;;;;;
+1ED13;OTTOMAN SIYAQ NUMBER ONE HUNDRED;No;0;AL;;;;100;N;;;;;
+1ED14;OTTOMAN SIYAQ NUMBER TWO HUNDRED;No;0;AL;;;;200;N;;;;;
+1ED15;OTTOMAN SIYAQ NUMBER THREE HUNDRED;No;0;AL;;;;300;N;;;;;
+1ED16;OTTOMAN SIYAQ NUMBER FOUR HUNDRED;No;0;AL;;;;400;N;;;;;
+1ED17;OTTOMAN SIYAQ NUMBER FIVE HUNDRED;No;0;AL;;;;500;N;;;;;
+1ED18;OTTOMAN SIYAQ NUMBER SIX HUNDRED;No;0;AL;;;;600;N;;;;;
+1ED19;OTTOMAN SIYAQ NUMBER SEVEN HUNDRED;No;0;AL;;;;700;N;;;;;
+1ED1A;OTTOMAN SIYAQ NUMBER EIGHT HUNDRED;No;0;AL;;;;800;N;;;;;
+1ED1B;OTTOMAN SIYAQ NUMBER NINE HUNDRED;No;0;AL;;;;900;N;;;;;
+1ED1C;OTTOMAN SIYAQ NUMBER ONE THOUSAND;No;0;AL;;;;1000;N;;;;;
+1ED1D;OTTOMAN SIYAQ NUMBER TWO THOUSAND;No;0;AL;;;;2000;N;;;;;
+1ED1E;OTTOMAN SIYAQ NUMBER THREE THOUSAND;No;0;AL;;;;3000;N;;;;;
+1ED1F;OTTOMAN SIYAQ NUMBER FOUR THOUSAND;No;0;AL;;;;4000;N;;;;;
+1ED20;OTTOMAN SIYAQ NUMBER FIVE THOUSAND;No;0;AL;;;;5000;N;;;;;
+1ED21;OTTOMAN SIYAQ NUMBER SIX THOUSAND;No;0;AL;;;;6000;N;;;;;
+1ED22;OTTOMAN SIYAQ NUMBER SEVEN THOUSAND;No;0;AL;;;;7000;N;;;;;
+1ED23;OTTOMAN SIYAQ NUMBER EIGHT THOUSAND;No;0;AL;;;;8000;N;;;;;
+1ED24;OTTOMAN SIYAQ NUMBER NINE THOUSAND;No;0;AL;;;;9000;N;;;;;
+1ED25;OTTOMAN SIYAQ NUMBER TEN THOUSAND;No;0;AL;;;;10000;N;;;;;
+1ED26;OTTOMAN SIYAQ NUMBER TWENTY THOUSAND;No;0;AL;;;;20000;N;;;;;
+1ED27;OTTOMAN SIYAQ NUMBER THIRTY THOUSAND;No;0;AL;;;;30000;N;;;;;
+1ED28;OTTOMAN SIYAQ NUMBER FORTY THOUSAND;No;0;AL;;;;40000;N;;;;;
+1ED29;OTTOMAN SIYAQ NUMBER FIFTY THOUSAND;No;0;AL;;;;50000;N;;;;;
+1ED2A;OTTOMAN SIYAQ NUMBER SIXTY THOUSAND;No;0;AL;;;;60000;N;;;;;
+1ED2B;OTTOMAN SIYAQ NUMBER SEVENTY THOUSAND;No;0;AL;;;;70000;N;;;;;
+1ED2C;OTTOMAN SIYAQ NUMBER EIGHTY THOUSAND;No;0;AL;;;;80000;N;;;;;
+1ED2D;OTTOMAN SIYAQ NUMBER NINETY THOUSAND;No;0;AL;;;;90000;N;;;;;
+1ED2E;OTTOMAN SIYAQ MARRATAN;So;0;AL;;;;;N;;;;;
+1ED2F;OTTOMAN SIYAQ ALTERNATE NUMBER TWO;No;0;AL;;;;2;N;;;;;
+1ED30;OTTOMAN SIYAQ ALTERNATE NUMBER THREE;No;0;AL;;;;3;N;;;;;
+1ED31;OTTOMAN SIYAQ ALTERNATE NUMBER FOUR;No;0;AL;;;;4;N;;;;;
+1ED32;OTTOMAN SIYAQ ALTERNATE NUMBER FIVE;No;0;AL;;;;5;N;;;;;
+1ED33;OTTOMAN SIYAQ ALTERNATE NUMBER SIX;No;0;AL;;;;6;N;;;;;
+1ED34;OTTOMAN SIYAQ ALTERNATE NUMBER SEVEN;No;0;AL;;;;7;N;;;;;
+1ED35;OTTOMAN SIYAQ ALTERNATE NUMBER EIGHT;No;0;AL;;;;8;N;;;;;
+1ED36;OTTOMAN SIYAQ ALTERNATE NUMBER NINE;No;0;AL;;;;9;N;;;;;
+1ED37;OTTOMAN SIYAQ ALTERNATE NUMBER TEN;No;0;AL;;;;10;N;;;;;
+1ED38;OTTOMAN SIYAQ ALTERNATE NUMBER FOUR HUNDRED;No;0;AL;;;;400;N;;;;;
+1ED39;OTTOMAN SIYAQ ALTERNATE NUMBER SIX HUNDRED;No;0;AL;;;;600;N;;;;;
+1ED3A;OTTOMAN SIYAQ ALTERNATE NUMBER TWO THOUSAND;No;0;AL;;;;2000;N;;;;;
+1ED3B;OTTOMAN SIYAQ ALTERNATE NUMBER TEN THOUSAND;No;0;AL;;;;10000;N;;;;;
+1ED3C;OTTOMAN SIYAQ FRACTION ONE HALF;No;0;AL;;;;1/2;N;;;;;
+1ED3D;OTTOMAN SIYAQ FRACTION ONE SIXTH;No;0;AL;;;;1/6;N;;;;;
1EE00;ARABIC MATHEMATICAL ALEF;Lo;0;AL;<font> 0627;;;;N;;;;;
1EE01;ARABIC MATHEMATICAL BEH;Lo;0;AL;<font> 0628;;;;N;;;;;
1EE02;ARABIC MATHEMATICAL JEEM;Lo;0;AL;<font> 062C;;;;N;;;;;
@@ -29662,6 +30065,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1F169;NEGATIVE CIRCLED LATIN CAPITAL LETTER Z;So;0;L;;;;;N;;;;;
1F16A;RAISED MC SIGN;So;0;ON;<super> 004D 0043;;;;N;;;;;
1F16B;RAISED MD SIGN;So;0;ON;<super> 004D 0044;;;;N;;;;;
+1F16C;RAISED MR SIGN;So;0;ON;<super> 004D 0052;;;;N;;;;;
1F170;NEGATIVE SQUARED LATIN CAPITAL LETTER A;So;0;L;;;;;N;;;;;
1F171;NEGATIVE SQUARED LATIN CAPITAL LETTER B;So;0;L;;;;;N;;;;;
1F172;NEGATIVE SQUARED LATIN CAPITAL LETTER C;So;0;L;;;;;N;;;;;
@@ -30794,6 +31198,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1F6D2;SHOPPING TROLLEY;So;0;ON;;;;;N;;;;;
1F6D3;STUPA;So;0;ON;;;;;N;;;;;
1F6D4;PAGODA;So;0;ON;;;;;N;;;;;
+1F6D5;HINDU TEMPLE;So;0;ON;;;;;N;;;;;
1F6E0;HAMMER AND WRENCH;So;0;ON;;;;;N;;;;;
1F6E1;SHIELD;So;0;ON;;;;;N;;;;;
1F6E2;OIL DRUM;So;0;ON;;;;;N;;;;;
@@ -30817,6 +31222,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1F6F7;SLED;So;0;ON;;;;;N;;;;;
1F6F8;FLYING SAUCER;So;0;ON;;;;;N;;;;;
1F6F9;SKATEBOARD;So;0;ON;;;;;N;;;;;
+1F6FA;AUTO RICKSHAW;So;0;ON;;;;;N;;;;;
1F700;ALCHEMICAL SYMBOL FOR QUINTESSENCE;So;0;ON;;;;;N;;;;;
1F701;ALCHEMICAL SYMBOL FOR AIR;So;0;ON;;;;;N;;;;;
1F702;ALCHEMICAL SYMBOL FOR FIRE;So;0;ON;;;;;N;;;;;
@@ -31022,6 +31428,18 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1F7D6;NEGATIVE CIRCLED TRIANGLE;So;0;ON;;;;;N;;;;;
1F7D7;CIRCLED SQUARE;So;0;ON;;;;;N;;;;;
1F7D8;NEGATIVE CIRCLED SQUARE;So;0;ON;;;;;N;;;;;
+1F7E0;LARGE ORANGE CIRCLE;So;0;ON;;;;;N;;;;;
+1F7E1;LARGE YELLOW CIRCLE;So;0;ON;;;;;N;;;;;
+1F7E2;LARGE GREEN CIRCLE;So;0;ON;;;;;N;;;;;
+1F7E3;LARGE PURPLE CIRCLE;So;0;ON;;;;;N;;;;;
+1F7E4;LARGE BROWN CIRCLE;So;0;ON;;;;;N;;;;;
+1F7E5;LARGE RED SQUARE;So;0;ON;;;;;N;;;;;
+1F7E6;LARGE BLUE SQUARE;So;0;ON;;;;;N;;;;;
+1F7E7;LARGE ORANGE SQUARE;So;0;ON;;;;;N;;;;;
+1F7E8;LARGE YELLOW SQUARE;So;0;ON;;;;;N;;;;;
+1F7E9;LARGE GREEN SQUARE;So;0;ON;;;;;N;;;;;
+1F7EA;LARGE PURPLE SQUARE;So;0;ON;;;;;N;;;;;
+1F7EB;LARGE BROWN SQUARE;So;0;ON;;;;;N;;;;;
1F800;LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD;So;0;ON;;;;;N;;;;;
1F801;UPWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD;So;0;ON;;;;;N;;;;;
1F802;RIGHTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD;So;0;ON;;;;;N;;;;;
@@ -31182,6 +31600,9 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1F909;DOWNWARD FACING NOTCHED HOOK;So;0;ON;;;;;N;;;;;
1F90A;DOWNWARD FACING HOOK WITH DOT;So;0;ON;;;;;N;;;;;
1F90B;DOWNWARD FACING NOTCHED HOOK WITH DOT;So;0;ON;;;;;N;;;;;
+1F90D;WHITE HEART;So;0;ON;;;;;N;;;;;
+1F90E;BROWN HEART;So;0;ON;;;;;N;;;;;
+1F90F;PINCHING HAND;So;0;ON;;;;;N;;;;;
1F910;ZIPPER-MOUTH FACE;So;0;ON;;;;;N;;;;;
1F911;MONEY-MOUTH FACE;So;0;ON;;;;;N;;;;;
1F912;FACE WITH THERMOMETER;So;0;ON;;;;;N;;;;;
@@ -31229,6 +31650,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1F93C;WRESTLERS;So;0;ON;;;;;N;;;;;
1F93D;WATER POLO;So;0;ON;;;;;N;;;;;
1F93E;HANDBALL;So;0;ON;;;;;N;;;;;
+1F93F;DIVING MASK;So;0;ON;;;;;N;;;;;
1F940;WILTED FLOWER;So;0;ON;;;;;N;;;;;
1F941;DRUM WITH DRUMSTICKS;So;0;ON;;;;;N;;;;;
1F942;CLINKING GLASSES;So;0;ON;;;;;N;;;;;
@@ -31278,11 +31700,13 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1F96E;MOON CAKE;So;0;ON;;;;;N;;;;;
1F96F;BAGEL;So;0;ON;;;;;N;;;;;
1F970;SMILING FACE WITH SMILING EYES AND THREE HEARTS;So;0;ON;;;;;N;;;;;
+1F971;YAWNING FACE;So;0;ON;;;;;N;;;;;
1F973;FACE WITH PARTY HORN AND PARTY HAT;So;0;ON;;;;;N;;;;;
1F974;FACE WITH UNEVEN EYES AND WAVY MOUTH;So;0;ON;;;;;N;;;;;
1F975;OVERHEATED FACE;So;0;ON;;;;;N;;;;;
1F976;FREEZING FACE;So;0;ON;;;;;N;;;;;
1F97A;FACE WITH PLEADING EYES;So;0;ON;;;;;N;;;;;
+1F97B;SARI;So;0;ON;;;;;N;;;;;
1F97C;LAB COAT;So;0;ON;;;;;N;;;;;
1F97D;GOGGLES;So;0;ON;;;;;N;;;;;
1F97E;HIKING BOOT;So;0;ON;;;;;N;;;;;
@@ -31322,6 +31746,14 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1F9A0;MICROBE;So;0;ON;;;;;N;;;;;
1F9A1;BADGER;So;0;ON;;;;;N;;;;;
1F9A2;SWAN;So;0;ON;;;;;N;;;;;
+1F9A5;SLOTH;So;0;ON;;;;;N;;;;;
+1F9A6;OTTER;So;0;ON;;;;;N;;;;;
+1F9A7;ORANGUTAN;So;0;ON;;;;;N;;;;;
+1F9A8;SKUNK;So;0;ON;;;;;N;;;;;
+1F9A9;FLAMINGO;So;0;ON;;;;;N;;;;;
+1F9AA;OYSTER;So;0;ON;;;;;N;;;;;
+1F9AE;GUIDE DOG;So;0;ON;;;;;N;;;;;
+1F9AF;PROBING CANE;So;0;ON;;;;;N;;;;;
1F9B0;EMOJI COMPONENT RED HAIR;So;0;ON;;;;;N;;;;;
1F9B1;EMOJI COMPONENT CURLY HAIR;So;0;ON;;;;;N;;;;;
1F9B2;EMOJI COMPONENT BALD;So;0;ON;;;;;N;;;;;
@@ -31332,9 +31764,26 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1F9B7;TOOTH;So;0;ON;;;;;N;;;;;
1F9B8;SUPERHERO;So;0;ON;;;;;N;;;;;
1F9B9;SUPERVILLAIN;So;0;ON;;;;;N;;;;;
+1F9BA;SAFETY VEST;So;0;ON;;;;;N;;;;;
+1F9BB;EAR WITH HEARING AID;So;0;ON;;;;;N;;;;;
+1F9BC;MOTORIZED WHEELCHAIR;So;0;ON;;;;;N;;;;;
+1F9BD;MANUAL WHEELCHAIR;So;0;ON;;;;;N;;;;;
+1F9BE;MECHANICAL ARM;So;0;ON;;;;;N;;;;;
+1F9BF;MECHANICAL LEG;So;0;ON;;;;;N;;;;;
1F9C0;CHEESE WEDGE;So;0;ON;;;;;N;;;;;
1F9C1;CUPCAKE;So;0;ON;;;;;N;;;;;
1F9C2;SALT SHAKER;So;0;ON;;;;;N;;;;;
+1F9C3;BEVERAGE BOX;So;0;ON;;;;;N;;;;;
+1F9C4;GARLIC;So;0;ON;;;;;N;;;;;
+1F9C5;ONION;So;0;ON;;;;;N;;;;;
+1F9C6;FALAFEL;So;0;ON;;;;;N;;;;;
+1F9C7;WAFFLE;So;0;ON;;;;;N;;;;;
+1F9C8;BUTTER;So;0;ON;;;;;N;;;;;
+1F9C9;MATE DRINK;So;0;ON;;;;;N;;;;;
+1F9CA;ICE CUBE;So;0;ON;;;;;N;;;;;
+1F9CD;STANDING PERSON;So;0;ON;;;;;N;;;;;
+1F9CE;KNEELING PERSON;So;0;ON;;;;;N;;;;;
+1F9CF;DEAF PERSON;So;0;ON;;;;;N;;;;;
1F9D0;FACE WITH MONOCLE;So;0;ON;;;;;N;;;;;
1F9D1;ADULT;So;0;ON;;;;;N;;;;;
1F9D2;CHILD;So;0;ON;;;;;N;;;;;
@@ -31383,6 +31832,90 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1F9FD;SPONGE;So;0;ON;;;;;N;;;;;
1F9FE;RECEIPT;So;0;ON;;;;;N;;;;;
1F9FF;NAZAR AMULET;So;0;ON;;;;;N;;;;;
+1FA00;NEUTRAL CHESS KING;So;0;ON;;;;;N;;;;;
+1FA01;NEUTRAL CHESS QUEEN;So;0;ON;;;;;N;;;;;
+1FA02;NEUTRAL CHESS ROOK;So;0;ON;;;;;N;;;;;
+1FA03;NEUTRAL CHESS BISHOP;So;0;ON;;;;;N;;;;;
+1FA04;NEUTRAL CHESS KNIGHT;So;0;ON;;;;;N;;;;;
+1FA05;NEUTRAL CHESS PAWN;So;0;ON;;;;;N;;;;;
+1FA06;WHITE CHESS KNIGHT ROTATED FORTY-FIVE DEGREES;So;0;ON;;;;;N;;;;;
+1FA07;BLACK CHESS KNIGHT ROTATED FORTY-FIVE DEGREES;So;0;ON;;;;;N;;;;;
+1FA08;NEUTRAL CHESS KNIGHT ROTATED FORTY-FIVE DEGREES;So;0;ON;;;;;N;;;;;
+1FA09;WHITE CHESS KING ROTATED NINETY DEGREES;So;0;ON;;;;;N;;;;;
+1FA0A;WHITE CHESS QUEEN ROTATED NINETY DEGREES;So;0;ON;;;;;N;;;;;
+1FA0B;WHITE CHESS ROOK ROTATED NINETY DEGREES;So;0;ON;;;;;N;;;;;
+1FA0C;WHITE CHESS BISHOP ROTATED NINETY DEGREES;So;0;ON;;;;;N;;;;;
+1FA0D;WHITE CHESS KNIGHT ROTATED NINETY DEGREES;So;0;ON;;;;;N;;;;;
+1FA0E;WHITE CHESS PAWN ROTATED NINETY DEGREES;So;0;ON;;;;;N;;;;;
+1FA0F;BLACK CHESS KING ROTATED NINETY DEGREES;So;0;ON;;;;;N;;;;;
+1FA10;BLACK CHESS QUEEN ROTATED NINETY DEGREES;So;0;ON;;;;;N;;;;;
+1FA11;BLACK CHESS ROOK ROTATED NINETY DEGREES;So;0;ON;;;;;N;;;;;
+1FA12;BLACK CHESS BISHOP ROTATED NINETY DEGREES;So;0;ON;;;;;N;;;;;
+1FA13;BLACK CHESS KNIGHT ROTATED NINETY DEGREES;So;0;ON;;;;;N;;;;;
+1FA14;BLACK CHESS PAWN ROTATED NINETY DEGREES;So;0;ON;;;;;N;;;;;
+1FA15;NEUTRAL CHESS KING ROTATED NINETY DEGREES;So;0;ON;;;;;N;;;;;
+1FA16;NEUTRAL CHESS QUEEN ROTATED NINETY DEGREES;So;0;ON;;;;;N;;;;;
+1FA17;NEUTRAL CHESS ROOK ROTATED NINETY DEGREES;So;0;ON;;;;;N;;;;;
+1FA18;NEUTRAL CHESS BISHOP ROTATED NINETY DEGREES;So;0;ON;;;;;N;;;;;
+1FA19;NEUTRAL CHESS KNIGHT ROTATED NINETY DEGREES;So;0;ON;;;;;N;;;;;
+1FA1A;NEUTRAL CHESS PAWN ROTATED NINETY DEGREES;So;0;ON;;;;;N;;;;;
+1FA1B;WHITE CHESS KNIGHT ROTATED ONE HUNDRED THIRTY-FIVE DEGREES;So;0;ON;;;;;N;;;;;
+1FA1C;BLACK CHESS KNIGHT ROTATED ONE HUNDRED THIRTY-FIVE DEGREES;So;0;ON;;;;;N;;;;;
+1FA1D;NEUTRAL CHESS KNIGHT ROTATED ONE HUNDRED THIRTY-FIVE DEGREES;So;0;ON;;;;;N;;;;;
+1FA1E;WHITE CHESS TURNED KING;So;0;ON;;;;;N;;;;;
+1FA1F;WHITE CHESS TURNED QUEEN;So;0;ON;;;;;N;;;;;
+1FA20;WHITE CHESS TURNED ROOK;So;0;ON;;;;;N;;;;;
+1FA21;WHITE CHESS TURNED BISHOP;So;0;ON;;;;;N;;;;;
+1FA22;WHITE CHESS TURNED KNIGHT;So;0;ON;;;;;N;;;;;
+1FA23;WHITE CHESS TURNED PAWN;So;0;ON;;;;;N;;;;;
+1FA24;BLACK CHESS TURNED KING;So;0;ON;;;;;N;;;;;
+1FA25;BLACK CHESS TURNED QUEEN;So;0;ON;;;;;N;;;;;
+1FA26;BLACK CHESS TURNED ROOK;So;0;ON;;;;;N;;;;;
+1FA27;BLACK CHESS TURNED BISHOP;So;0;ON;;;;;N;;;;;
+1FA28;BLACK CHESS TURNED KNIGHT;So;0;ON;;;;;N;;;;;
+1FA29;BLACK CHESS TURNED PAWN;So;0;ON;;;;;N;;;;;
+1FA2A;NEUTRAL CHESS TURNED KING;So;0;ON;;;;;N;;;;;
+1FA2B;NEUTRAL CHESS TURNED QUEEN;So;0;ON;;;;;N;;;;;
+1FA2C;NEUTRAL CHESS TURNED ROOK;So;0;ON;;;;;N;;;;;
+1FA2D;NEUTRAL CHESS TURNED BISHOP;So;0;ON;;;;;N;;;;;
+1FA2E;NEUTRAL CHESS TURNED KNIGHT;So;0;ON;;;;;N;;;;;
+1FA2F;NEUTRAL CHESS TURNED PAWN;So;0;ON;;;;;N;;;;;
+1FA30;WHITE CHESS KNIGHT ROTATED TWO HUNDRED TWENTY-FIVE DEGREES;So;0;ON;;;;;N;;;;;
+1FA31;BLACK CHESS KNIGHT ROTATED TWO HUNDRED TWENTY-FIVE DEGREES;So;0;ON;;;;;N;;;;;
+1FA32;NEUTRAL CHESS KNIGHT ROTATED TWO HUNDRED TWENTY-FIVE DEGREES;So;0;ON;;;;;N;;;;;
+1FA33;WHITE CHESS KING ROTATED TWO HUNDRED SEVENTY DEGREES;So;0;ON;;;;;N;;;;;
+1FA34;WHITE CHESS QUEEN ROTATED TWO HUNDRED SEVENTY DEGREES;So;0;ON;;;;;N;;;;;
+1FA35;WHITE CHESS ROOK ROTATED TWO HUNDRED SEVENTY DEGREES;So;0;ON;;;;;N;;;;;
+1FA36;WHITE CHESS BISHOP ROTATED TWO HUNDRED SEVENTY DEGREES;So;0;ON;;;;;N;;;;;
+1FA37;WHITE CHESS KNIGHT ROTATED TWO HUNDRED SEVENTY DEGREES;So;0;ON;;;;;N;;;;;
+1FA38;WHITE CHESS PAWN ROTATED TWO HUNDRED SEVENTY DEGREES;So;0;ON;;;;;N;;;;;
+1FA39;BLACK CHESS KING ROTATED TWO HUNDRED SEVENTY DEGREES;So;0;ON;;;;;N;;;;;
+1FA3A;BLACK CHESS QUEEN ROTATED TWO HUNDRED SEVENTY DEGREES;So;0;ON;;;;;N;;;;;
+1FA3B;BLACK CHESS ROOK ROTATED TWO HUNDRED SEVENTY DEGREES;So;0;ON;;;;;N;;;;;
+1FA3C;BLACK CHESS BISHOP ROTATED TWO HUNDRED SEVENTY DEGREES;So;0;ON;;;;;N;;;;;
+1FA3D;BLACK CHESS KNIGHT ROTATED TWO HUNDRED SEVENTY DEGREES;So;0;ON;;;;;N;;;;;
+1FA3E;BLACK CHESS PAWN ROTATED TWO HUNDRED SEVENTY DEGREES;So;0;ON;;;;;N;;;;;
+1FA3F;NEUTRAL CHESS KING ROTATED TWO HUNDRED SEVENTY DEGREES;So;0;ON;;;;;N;;;;;
+1FA40;NEUTRAL CHESS QUEEN ROTATED TWO HUNDRED SEVENTY DEGREES;So;0;ON;;;;;N;;;;;
+1FA41;NEUTRAL CHESS ROOK ROTATED TWO HUNDRED SEVENTY DEGREES;So;0;ON;;;;;N;;;;;
+1FA42;NEUTRAL CHESS BISHOP ROTATED TWO HUNDRED SEVENTY DEGREES;So;0;ON;;;;;N;;;;;
+1FA43;NEUTRAL CHESS KNIGHT ROTATED TWO HUNDRED SEVENTY DEGREES;So;0;ON;;;;;N;;;;;
+1FA44;NEUTRAL CHESS PAWN ROTATED TWO HUNDRED SEVENTY DEGREES;So;0;ON;;;;;N;;;;;
+1FA45;WHITE CHESS KNIGHT ROTATED THREE HUNDRED FIFTEEN DEGREES;So;0;ON;;;;;N;;;;;
+1FA46;BLACK CHESS KNIGHT ROTATED THREE HUNDRED FIFTEEN DEGREES;So;0;ON;;;;;N;;;;;
+1FA47;NEUTRAL CHESS KNIGHT ROTATED THREE HUNDRED FIFTEEN DEGREES;So;0;ON;;;;;N;;;;;
+1FA48;WHITE CHESS EQUIHOPPER;So;0;ON;;;;;N;;;;;
+1FA49;BLACK CHESS EQUIHOPPER;So;0;ON;;;;;N;;;;;
+1FA4A;NEUTRAL CHESS EQUIHOPPER;So;0;ON;;;;;N;;;;;
+1FA4B;WHITE CHESS EQUIHOPPER ROTATED NINETY DEGREES;So;0;ON;;;;;N;;;;;
+1FA4C;BLACK CHESS EQUIHOPPER ROTATED NINETY DEGREES;So;0;ON;;;;;N;;;;;
+1FA4D;NEUTRAL CHESS EQUIHOPPER ROTATED NINETY DEGREES;So;0;ON;;;;;N;;;;;
+1FA4E;WHITE CHESS KNIGHT-QUEEN;So;0;ON;;;;;N;;;;;
+1FA4F;WHITE CHESS KNIGHT-ROOK;So;0;ON;;;;;N;;;;;
+1FA50;WHITE CHESS KNIGHT-BISHOP;So;0;ON;;;;;N;;;;;
+1FA51;BLACK CHESS KNIGHT-QUEEN;So;0;ON;;;;;N;;;;;
+1FA52;BLACK CHESS KNIGHT-ROOK;So;0;ON;;;;;N;;;;;
+1FA53;BLACK CHESS KNIGHT-BISHOP;So;0;ON;;;;;N;;;;;
1FA60;XIANGQI RED GENERAL;So;0;ON;;;;;N;;;;;
1FA61;XIANGQI RED MANDARIN;So;0;ON;;;;;N;;;;;
1FA62;XIANGQI RED ELEPHANT;So;0;ON;;;;;N;;;;;
@@ -31397,6 +31930,22 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1FA6B;XIANGQI BLACK CHARIOT;So;0;ON;;;;;N;;;;;
1FA6C;XIANGQI BLACK CANNON;So;0;ON;;;;;N;;;;;
1FA6D;XIANGQI BLACK SOLDIER;So;0;ON;;;;;N;;;;;
+1FA70;BALLET SHOES;So;0;ON;;;;;N;;;;;
+1FA71;ONE-PIECE SWIMSUIT;So;0;ON;;;;;N;;;;;
+1FA72;BRIEFS;So;0;ON;;;;;N;;;;;
+1FA73;SHORTS;So;0;ON;;;;;N;;;;;
+1FA78;DROP OF BLOOD;So;0;ON;;;;;N;;;;;
+1FA79;ADHESIVE BANDAGE;So;0;ON;;;;;N;;;;;
+1FA7A;STETHOSCOPE;So;0;ON;;;;;N;;;;;
+1FA80;YO-YO;So;0;ON;;;;;N;;;;;
+1FA81;KITE;So;0;ON;;;;;N;;;;;
+1FA82;PARACHUTE;So;0;ON;;;;;N;;;;;
+1FA90;RINGED PLANET;So;0;ON;;;;;N;;;;;
+1FA91;CHAIR;So;0;ON;;;;;N;;;;;
+1FA92;RAZOR;So;0;ON;;;;;N;;;;;
+1FA93;AXE;So;0;ON;;;;;N;;;;;
+1FA94;DIYA LAMP;So;0;ON;;;;;N;;;;;
+1FA95;BANJO;So;0;ON;;;;;N;;;;;
20000;<CJK Ideograph Extension B, First>;Lo;0;L;;;;;N;;;;;
2A6D6;<CJK Ideograph Extension B, Last>;Lo;0;L;;;;;N;;;;;
2A700;<CJK Ideograph Extension C, First>;Lo;0;L;;;;;N;;;;;
diff --git a/localedata/unicode-gen/ctype_compatibility.py b/localedata/unicode-gen/ctype_compatibility.py
index 8170f4ebc1..5172645156 100755
--- a/localedata/unicode-gen/ctype_compatibility.py
+++ b/localedata/unicode-gen/ctype_compatibility.py
@@ -1,6 +1,6 @@
#!/usr/bin/python3
# -*- coding: utf-8 -*-
-# Copyright (C) 2014-2018 Free Software Foundation, Inc.
+# Copyright (C) 2014-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
@@ -15,7 +15,7 @@
#
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
'''
This script is useful for checking the differences between
diff --git a/localedata/unicode-gen/ctype_compatibility_test_cases.py b/localedata/unicode-gen/ctype_compatibility_test_cases.py
index b7e709a53c..e93ca84cf3 100644
--- a/localedata/unicode-gen/ctype_compatibility_test_cases.py
+++ b/localedata/unicode-gen/ctype_compatibility_test_cases.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
-# Copyright (C) 2014-2018 Free Software Foundation, Inc.
+# Copyright (C) 2014-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
@@ -14,7 +14,7 @@
#
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
'''
This file contains a list of test cases used by
@@ -220,7 +220,7 @@ TEST_CASES = [
],
[[0x108D],
[('combining', True), ('combining_level3', False),
- ('alpha', False), ('lower', False), ('upper', False),
+ ('alpha', True), ('lower', False), ('upper', False),
('tolower', False), ('toupper', False), ('totitle', False)],
'''“108D;MYANMAR SIGN SHAN COUNCIL EMPHATIC
TONE;Mn;220;NSM;;;;;N;;;;;â€. Has apparently been added
@@ -231,7 +231,8 @@ TEST_CASES = [
combining class value is 220 which is >= 200. According to
gen-unicode-ctype.c, “combining_level3†needs a
canonical combining class value < 200. According to
- DerivedCoreProperties.txt it is not “Alphabeticâ€.'''
+ DerivedCoreProperties.txt it was not “Alphabeticâ€
+ until Unicode 11.0.0 but in 12.0.0 it became “Alphabeticâ€.'''
],
[[0x06DE],
[('combining', False), ('combining_level3', False),
diff --git a/localedata/unicode-gen/gen_translit_circle.py b/localedata/unicode-gen/gen_translit_circle.py
index 7766ad60bd..226f87400f 100644
--- a/localedata/unicode-gen/gen_translit_circle.py
+++ b/localedata/unicode-gen/gen_translit_circle.py
@@ -2,7 +2,7 @@
# -*- coding: utf-8 -*-
#
# Generate a translit_circle file from a UnicodeData file.
-# Copyright (C) 2015-2018 Free Software Foundation, Inc.
+# Copyright (C) 2015-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
'''
Generate a translit_circle file from UnicodeData.txt
diff --git a/localedata/unicode-gen/gen_translit_cjk_compat.py b/localedata/unicode-gen/gen_translit_cjk_compat.py
index 08354da0ee..d14db7398f 100644
--- a/localedata/unicode-gen/gen_translit_cjk_compat.py
+++ b/localedata/unicode-gen/gen_translit_cjk_compat.py
@@ -2,7 +2,7 @@
# -*- coding: utf-8 -*-
#
# Generate a translit_cjk_compat file from a UnicodeData file.
-# Copyright (C) 2015-2018 Free Software Foundation, Inc.
+# Copyright (C) 2015-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
'''
Generate a translit_cjk_compat file from UnicodeData.txt
diff --git a/localedata/unicode-gen/gen_translit_combining.py b/localedata/unicode-gen/gen_translit_combining.py
index 34835af9ac..736bebbef1 100644
--- a/localedata/unicode-gen/gen_translit_combining.py
+++ b/localedata/unicode-gen/gen_translit_combining.py
@@ -2,7 +2,7 @@
# -*- coding: utf-8 -*-
#
# Generate a translit_combining file from a UnicodeData file.
-# Copyright (C) 2015-2018 Free Software Foundation, Inc.
+# Copyright (C) 2015-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
'''
Generate a translit_combining file from UnicodeData.txt
diff --git a/localedata/unicode-gen/gen_translit_compat.py b/localedata/unicode-gen/gen_translit_compat.py
index 77507c7cf2..d4c3d195ea 100644
--- a/localedata/unicode-gen/gen_translit_compat.py
+++ b/localedata/unicode-gen/gen_translit_compat.py
@@ -2,7 +2,7 @@
# -*- coding: utf-8 -*-
#
# Generate a translit_compat file from a UnicodeData file.
-# Copyright (C) 2015-2018 Free Software Foundation, Inc.
+# Copyright (C) 2015-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
'''
Generate a translit_compat file from UnicodeData.txt
diff --git a/localedata/unicode-gen/gen_translit_font.py b/localedata/unicode-gen/gen_translit_font.py
index 0dc3dd1a17..c0c925ffb3 100644
--- a/localedata/unicode-gen/gen_translit_font.py
+++ b/localedata/unicode-gen/gen_translit_font.py
@@ -2,7 +2,7 @@
# -*- coding: utf-8 -*-
#
# Generate a translit_font file from a UnicodeData file.
-# Copyright (C) 2015-2018 Free Software Foundation, Inc.
+# Copyright (C) 2015-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
'''
Generate a translit_font file from UnicodeData.txt
diff --git a/localedata/unicode-gen/gen_translit_fraction.py b/localedata/unicode-gen/gen_translit_fraction.py
index 2a7d0ac16a..28731a4d75 100644
--- a/localedata/unicode-gen/gen_translit_fraction.py
+++ b/localedata/unicode-gen/gen_translit_fraction.py
@@ -2,7 +2,7 @@
# -*- coding: utf-8 -*-
#
# Generate a translit_fraction file from a UnicodeData file.
-# Copyright (C) 2015-2018 Free Software Foundation, Inc.
+# Copyright (C) 2015-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
'''
Generate a translit_fraction file from UnicodeData.txt
diff --git a/localedata/unicode-gen/gen_unicode_ctype.py b/localedata/unicode-gen/gen_unicode_ctype.py
index a2ed00144b..7d28a72131 100755
--- a/localedata/unicode-gen/gen_unicode_ctype.py
+++ b/localedata/unicode-gen/gen_unicode_ctype.py
@@ -1,7 +1,7 @@
#!/usr/bin/python3
#
# Generate a Unicode conforming LC_CTYPE category from a UnicodeData file.
-# Copyright (C) 2014-2018 Free Software Foundation, Inc.
+# Copyright (C) 2014-2019 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# Based on gen-unicode-ctype.c by Bruno Haible <haible@clisp.cons.org>, 2000.
#
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
'''
Generate a Unicode conforming LC_CTYPE category from UnicodeData.txt and
diff --git a/localedata/unicode-gen/unicode_utils.py b/localedata/unicode-gen/unicode_utils.py
index f6e75bd0a3..a9e94cce41 100644
--- a/localedata/unicode-gen/unicode_utils.py
+++ b/localedata/unicode-gen/unicode_utils.py
@@ -1,6 +1,6 @@
# Utilities to generate Unicode data for glibc from upstream Unicode data.
#
-# Copyright (C) 2014-2018 Free Software Foundation, Inc.
+# Copyright (C) 2014-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
@@ -15,7 +15,7 @@
#
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
'''
This module contains utilities used by the scripts to generate
diff --git a/localedata/unicode-gen/utf8_compatibility.py b/localedata/unicode-gen/utf8_compatibility.py
index 606b55d90e..1a9394cf69 100755
--- a/localedata/unicode-gen/utf8_compatibility.py
+++ b/localedata/unicode-gen/utf8_compatibility.py
@@ -1,6 +1,6 @@
#!/usr/bin/python3
# -*- coding: utf-8 -*-
-# Copyright (C) 2014-2018 Free Software Foundation, Inc.
+# Copyright (C) 2014-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
@@ -15,7 +15,7 @@
#
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
'''
This script is useful for checking backward compatibility of newly
diff --git a/localedata/unicode-gen/utf8_gen.py b/localedata/unicode-gen/utf8_gen.py
index 2d8d631a96..0e5583cd25 100755
--- a/localedata/unicode-gen/utf8_gen.py
+++ b/localedata/unicode-gen/utf8_gen.py
@@ -1,6 +1,6 @@
#!/usr/bin/python3
# -*- coding: utf-8 -*-
-# Copyright (C) 2014-2018 Free Software Foundation, Inc.
+# Copyright (C) 2014-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
@@ -15,7 +15,7 @@
#
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
'''glibc/localedata/charmaps/UTF-8 file generator script
diff --git a/localedata/xfrm-test.c b/localedata/xfrm-test.c
index a97159ad88..7e263d756a 100644
--- a/localedata/xfrm-test.c
+++ b/localedata/xfrm-test.c
@@ -1,5 +1,5 @@
/* Test collation function via transformation using real data.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <error.h>
diff --git a/login/Makefile b/login/Makefile
index 8b31991be8..6a0182b922 100644
--- a/login/Makefile
+++ b/login/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
# Sub-makefile for login portion of the library.
@@ -43,7 +43,8 @@ endif
subdir-dirs = programs
vpath %.c programs
-tests := tst-utmp tst-utmpx tst-grantpt tst-ptsname tst-getlogin
+tests := tst-utmp tst-utmpx tst-grantpt tst-ptsname tst-getlogin tst-updwtmpx \
+ tst-pututxline-lockfail tst-pututxline-cache
# Build the -lutil library with these extra functions.
extra-libs := libutil
@@ -71,3 +72,6 @@ endif
$(inst_libexecdir)/pt_chown: $(objpfx)pt_chown $(+force)
$(make-target-directory)
-$(INSTALL_PROGRAM) -m 4755 -o root $< $@
+
+$(objpfx)tst-pututxline-lockfail: $(shared-thread-library)
+$(objpfx)tst-pututxline-cache: $(shared-thread-library)
diff --git a/login/endutxent.c b/login/endutxent.c
index 5e2ddb20d0..881d2fe75f 100644
--- a/login/endutxent.c
+++ b/login/endutxent.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Mark Kettenis <kettenis@phys.uva.nl>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <utmp.h>
#include <utmpx.h>
diff --git a/login/forkpty.c b/login/forkpty.c
index 93b99eae6c..4a0dee47f0 100644
--- a/login/forkpty.c
+++ b/login/forkpty.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Zack Weinberg <zack@rabi.phys.columbia.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <termios.h>
diff --git a/login/getlogin.c b/login/getlogin.c
index 47faf3dcbc..6ac375db0b 100644
--- a/login/getlogin.c
+++ b/login/getlogin.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <errno.h>
diff --git a/login/getlogin_r.c b/login/getlogin_r.c
index ce596762ad..d26908ce2b 100644
--- a/login/getlogin_r.c
+++ b/login/getlogin_r.c
@@ -1,5 +1,5 @@
/* Reentrant function to return the current login name. Stub version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/login/getlogin_r_chk.c b/login/getlogin_r_chk.c
index ad82b9a19e..bc233f2479 100644
--- a/login/getlogin_r_chk.c
+++ b/login/getlogin_r_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
diff --git a/login/getpt.c b/login/getpt.c
index b0e93719d7..3f7c4358de 100644
--- a/login/getpt.c
+++ b/login/getpt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Zack Weinberg <zack@rabi.phys.columbia.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include <errno.h>
diff --git a/login/getutent.c b/login/getutent.c
index 4b7d6f863c..61e414c1fa 100644
--- a/login/getutent.c
+++ b/login/getutent.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include <utmp.h>
diff --git a/login/getutent_r.c b/login/getutent_r.c
index 6a244ba6e0..ca2daa81da 100644
--- a/login/getutent_r.c
+++ b/login/getutent_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>
and Paul Janzen <pcj@primenet.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libc-lock.h>
#include <stdlib.h>
@@ -23,115 +23,16 @@
#include "utmp-private.h"
-
-/* Functions defined here. */
-static int setutent_unknown (void);
-static int getutent_r_unknown (struct utmp *buffer, struct utmp **result);
-static int getutid_r_unknown (const struct utmp *line, struct utmp *buffer,
- struct utmp **result);
-static int getutline_r_unknown (const struct utmp *id, struct utmp *buffer,
- struct utmp **result);
-static struct utmp *pututline_unknown (const struct utmp *data);
-static void endutent_unknown (void);
-
-/* Initial Jump table. */
-const struct utfuncs __libc_utmp_unknown_functions =
-{
- setutent_unknown,
- getutent_r_unknown,
- getutid_r_unknown,
- getutline_r_unknown,
- pututline_unknown,
- endutent_unknown,
- NULL
-};
-
-/* Currently selected backend. */
-const struct utfuncs *__libc_utmp_jump_table = &__libc_utmp_unknown_functions;
-
/* We need to protect the opening of the file. */
__libc_lock_define_initialized (, __libc_utmp_lock attribute_hidden)
-static int
-setutent_unknown (void)
-{
- int result;
-
- result = (*__libc_utmp_file_functions.setutent) ();
- if (result)
- __libc_utmp_jump_table = &__libc_utmp_file_functions;
-
- return result;
-}
-
-
-static int
-getutent_r_unknown (struct utmp *buffer, struct utmp **result)
-{
- /* The backend was not yet initialized. */
- if (setutent_unknown ())
- return (*__libc_utmp_jump_table->getutent_r) (buffer, result);
-
- /* Not available. */
- *result = NULL;
- return -1;
-}
-
-
-static int
-getutid_r_unknown (const struct utmp *id, struct utmp *buffer,
- struct utmp **result)
-{
- /* The backend was not yet initialized. */
- if (setutent_unknown ())
- return (*__libc_utmp_jump_table->getutid_r) (id, buffer, result);
-
- /* Not available. */
- *result = NULL;
- return -1;
-}
-
-
-static int
-getutline_r_unknown (const struct utmp *line, struct utmp *buffer,
- struct utmp **result)
-{
- /* The backend was not yet initialized. */
- if (setutent_unknown ())
- return (*__libc_utmp_jump_table->getutline_r) (line, buffer, result);
-
- /* Not available. */
- *result = NULL;
- return -1;
-}
-
-
-static struct utmp *
-pututline_unknown (const struct utmp *data)
-{
- /* The backend was not yet initialized. */
- if (setutent_unknown ())
- return (*__libc_utmp_jump_table->pututline) (data);
-
- /* Not available. */
- return NULL;
-}
-
-
-static void
-endutent_unknown (void)
-{
- /* Nothing to do. */
-}
-
-
void
__setutent (void)
{
__libc_lock_lock (__libc_utmp_lock);
- (*__libc_utmp_jump_table->setutent) ();
+ __libc_setutent ();
__libc_lock_unlock (__libc_utmp_lock);
}
@@ -145,7 +46,7 @@ __getutent_r (struct utmp *buffer, struct utmp **result)
__libc_lock_lock (__libc_utmp_lock);
- retval = (*__libc_utmp_jump_table->getutent_r) (buffer, result);
+ retval = __libc_getutent_r (buffer, result);
__libc_lock_unlock (__libc_utmp_lock);
@@ -162,7 +63,7 @@ __pututline (const struct utmp *data)
__libc_lock_lock (__libc_utmp_lock);
- buffer = (*__libc_utmp_jump_table->pututline) (data);
+ buffer = __libc_pututline (data);
__libc_lock_unlock (__libc_utmp_lock);
@@ -177,8 +78,7 @@ __endutent (void)
{
__libc_lock_lock (__libc_utmp_lock);
- (*__libc_utmp_jump_table->endutent) ();
- __libc_utmp_jump_table = &__libc_utmp_unknown_functions;
+ __libc_endutent ();
__libc_lock_unlock (__libc_utmp_lock);
}
diff --git a/login/getutid.c b/login/getutid.c
index 9ef234327d..48dd1d7bb2 100644
--- a/login/getutid.c
+++ b/login/getutid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include <utmp.h>
diff --git a/login/getutid_r.c b/login/getutid_r.c
index b7d3dbac75..d49d303cd5 100644
--- a/login/getutid_r.c
+++ b/login/getutid_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>
and Paul Janzen <pcj@primenet.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libc-lock.h>
#include <errno.h>
@@ -32,7 +32,6 @@ __libc_lock_define (extern, __libc_utmp_lock attribute_hidden)
int
__getutid_r (const struct utmp *id, struct utmp *buffer, struct utmp **result)
{
-#if (_HAVE_UT_ID - 0) && (_HAVE_UT_TYPE - 0)
int retval;
/* Test whether ID has any of the legal types. */
@@ -49,15 +48,11 @@ __getutid_r (const struct utmp *id, struct utmp *buffer, struct utmp **result)
__libc_lock_lock (__libc_utmp_lock);
- retval = (*__libc_utmp_jump_table->getutid_r) (id, buffer, result);
+ retval = __libc_getutid_r (id, buffer, result);
__libc_lock_unlock (__libc_utmp_lock);
return retval;
-#else /* !_HAVE_UT_ID && !_HAVE_UT_TYPE */
- __set_errno (ENOSYS);
- return -1;
-#endif
}
libc_hidden_def (__getutid_r)
weak_alias (__getutid_r, getutid_r)
diff --git a/login/getutline.c b/login/getutline.c
index cc1a8615e7..75a6179c47 100644
--- a/login/getutline.c
+++ b/login/getutline.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include <utmp.h>
diff --git a/login/getutline_r.c b/login/getutline_r.c
index 6996887f76..8bcd5030af 100644
--- a/login/getutline_r.c
+++ b/login/getutline_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>
and Paul Janzen <pcj@primenet.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <libc-lock.h>
@@ -36,7 +36,7 @@ __getutline_r (const struct utmp *line, struct utmp *buffer,
__libc_lock_lock (__libc_utmp_lock);
- retval = (*__libc_utmp_jump_table->getutline_r) (line, buffer, result);
+ retval = __libc_getutline_r (line, buffer, result);
__libc_lock_unlock (__libc_utmp_lock);
diff --git a/login/getutmp.c b/login/getutmp.c
index 481150d5ef..bc991457e5 100644
--- a/login/getutmp.c
+++ b/login/getutmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <utmp.h>
@@ -23,23 +23,11 @@
void
getutmp (const struct utmpx *utmpx, struct utmp *utmp)
{
-#if _HAVE_UT_TYPE - 0
utmp->ut_type = utmpx->ut_type;
-#endif
-#if _HAVE_UT_PID - 0
utmp->ut_pid = utmpx->ut_pid;
-#endif
memcpy (utmp->ut_line, utmpx->ut_line, sizeof (utmp->ut_line));
memcpy (utmp->ut_user, utmpx->ut_user, sizeof (utmp->ut_user));
-#if _HAVE_UT_ID - 0
memcpy (utmp->ut_id, utmpx->ut_id, sizeof (utmp->ut_id));
-#endif
-#if _HAVE_UT_HOST - 0
memcpy (utmp->ut_host, utmpx->ut_host, sizeof (utmp->ut_host));
-#endif
-#if _HAVE_UT_TV - 0
utmp->ut_tv = utmpx->ut_tv;
-#else
- utmp->ut_time = utmpx->ut_time;
-#endif
}
diff --git a/login/getutmpx.c b/login/getutmpx.c
index 34145fe8db..8683464456 100644
--- a/login/getutmpx.c
+++ b/login/getutmpx.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <utmp.h>
@@ -24,24 +24,11 @@ void
getutmpx (const struct utmp *utmp, struct utmpx *utmpx)
{
memset (utmpx, 0, sizeof (struct utmpx));
-
-#if _HAVE_UT_TYPE - 0
utmpx->ut_type = utmp->ut_type;
-#endif
-#if _HAVE_UT_PID - 0
utmpx->ut_pid = utmp->ut_pid;
-#endif
memcpy (utmpx->ut_line, utmp->ut_line, sizeof (utmp->ut_line));
memcpy (utmpx->ut_user, utmp->ut_user, sizeof (utmp->ut_user));
-#if _HAVE_UT_ID - 0
memcpy (utmpx->ut_id, utmp->ut_id, sizeof (utmp->ut_id));
-#endif
-#if _HAVE_UT_HOST - 0
memcpy (utmpx->ut_host, utmp->ut_host, sizeof (utmp->ut_host));
-#endif
-#if _HAVE_UT_TV - 0
utmpx->ut_tv = utmp->ut_tv;
-#else
- utmpx->ut_time = utmp->ut_time;
-#endif
}
diff --git a/login/getutxent.c b/login/getutxent.c
index aa6fd7beee..b30a3c3de5 100644
--- a/login/getutxent.c
+++ b/login/getutxent.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Mark Kettenis <kettenis@phys.uva.nl>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <utmp.h>
#include <utmpx.h>
diff --git a/login/getutxid.c b/login/getutxid.c
index d64f60be96..b8d88c058a 100644
--- a/login/getutxid.c
+++ b/login/getutxid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Mark Kettenis <kettenis@phys.uva.nl>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <utmp.h>
#include <utmpx.h>
diff --git a/login/getutxline.c b/login/getutxline.c
index 3169c05a68..58af491948 100644
--- a/login/getutxline.c
+++ b/login/getutxline.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Mark Kettenis <kettenis@phys.uva.nl>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <utmp.h>
#include <utmpx.h>
diff --git a/login/grantpt.c b/login/grantpt.c
index af42acacfb..f2379dce75 100644
--- a/login/grantpt.c
+++ b/login/grantpt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Zack Weinberg <zack@rabi.phys.columbia.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include <errno.h>
diff --git a/login/login.c b/login/login.c
index 5d48cd487f..91ac92116b 100644
--- a/login/login.c
+++ b/login/login.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
@@ -91,12 +91,8 @@ login (const struct utmp *ut)
struct utmp copy = *ut;
/* Fill in those fields we supply. */
-#if _HAVE_UT_TYPE - 0
copy.ut_type = USER_PROCESS;
-#endif
-#if _HAVE_UT_PID - 0
copy.ut_pid = getpid ();
-#endif
/* Seek tty. */
found_tty = tty_name (STDIN_FILENO, &tty, sizeof (_tty));
diff --git a/login/logout.c b/login/logout.c
index d49bc4ecac..b8b38df19d 100644
--- a/login/logout.c
+++ b/login/logout.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
@@ -14,11 +14,12 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <string.h>
#include <utmp.h>
+#include <time.h>
#include <sys/time.h>
int
@@ -36,9 +37,7 @@ logout (const char *line)
setutent ();
/* Fill in search information. */
-#if _HAVE_UT_TYPE - 0
tmp.ut_type = USER_PROCESS;
-#endif
strncpy (tmp.ut_line, line, sizeof tmp.ut_line);
/* Read the record. */
@@ -46,20 +45,12 @@ logout (const char *line)
{
/* Clear information about who & from where. */
memset (ut->ut_name, '\0', sizeof ut->ut_name);
-#if _HAVE_UT_HOST - 0
memset (ut->ut_host, '\0', sizeof ut->ut_host);
-#endif
-#if _HAVE_UT_TV - 0
- struct timeval tv;
- __gettimeofday (&tv, NULL);
- ut->ut_tv.tv_sec = tv.tv_sec;
- ut->ut_tv.tv_usec = tv.tv_usec;
-#else
- ut->ut_time = time (NULL);
-#endif
-#if _HAVE_UT_TYPE - 0
+
+ struct timespec ts;
+ __clock_gettime (CLOCK_REALTIME, &ts);
+ TIMESPEC_TO_TIMEVAL (&ut->ut_tv, &ts);
ut->ut_type = DEAD_PROCESS;
-#endif
if (pututline (ut) != NULL)
result = 1;
diff --git a/login/logwtmp.c b/login/logwtmp.c
index a19da4ab5e..eddba96f35 100644
--- a/login/logwtmp.c
+++ b/login/logwtmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <sys/time.h>
@@ -30,26 +30,15 @@ logwtmp (const char *line, const char *name, const char *host)
/* Set information in new entry. */
memset (&ut, 0, sizeof (ut));
-#if _HAVE_UT_PID - 0
ut.ut_pid = getpid ();
-#endif
-#if _HAVE_UT_TYPE - 0
ut.ut_type = name[0] ? USER_PROCESS : DEAD_PROCESS;
-#endif
strncpy (ut.ut_line, line, sizeof ut.ut_line);
strncpy (ut.ut_name, name, sizeof ut.ut_name);
-#if _HAVE_UT_HOST - 0
strncpy (ut.ut_host, host, sizeof ut.ut_host);
-#endif
-
-#if _HAVE_UT_TV - 0
- struct timeval tv;
- __gettimeofday (&tv, NULL);
- ut.ut_tv.tv_sec = tv.tv_sec;
- ut.ut_tv.tv_usec = tv.tv_usec;
-#else
- ut.ut_time = time (NULL);
-#endif
+
+ struct timespec ts;
+ __clock_gettime (CLOCK_REALTIME, &ts);
+ TIMESPEC_TO_TIMEVAL (&ut.ut_tv, &ts);
updwtmp (_PATH_WTMP, &ut);
}
diff --git a/login/openpty.c b/login/openpty.c
index 941ba039e3..1db4c2def3 100644
--- a/login/openpty.c
+++ b/login/openpty.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Zack Weinberg <zack@rabi.phys.columbia.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/login/programs/pt_chown.c b/login/programs/pt_chown.c
index 10fee0627b..5e490ee828 100644
--- a/login/programs/pt_chown.c
+++ b/login/programs/pt_chown.c
@@ -1,5 +1,5 @@
/* pt_chmod - helper program for `grantpt'.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by C. Scott Ananian <cananian@alumni.princeton.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <argp.h>
#include <errno.h>
@@ -64,7 +64,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\
-"), "2018");
+"), "2019");
}
static char *
diff --git a/login/programs/utmpdump.c b/login/programs/utmpdump.c
index dccdb669f5..0d07f7989f 100644
--- a/login/programs/utmpdump.c
+++ b/login/programs/utmpdump.c
@@ -1,5 +1,5 @@
/* utmpdump - dump utmp-like files.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Mark Kettenis <kettenis@phys.uva.nl>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
@@ -37,47 +37,11 @@ print_entry (struct utmp *up)
temp_tv.tv_sec = up->ut_tv.tv_sec;
temp_tv.tv_usec = up->ut_tv.tv_usec;
- (printf) (
- /* The format string. */
-#if _HAVE_UT_TYPE
- "[%d] "
-#endif
-#if _HAVE_UT_PID
- "[%05d] "
-#endif
-#if _HAVE_UT_ID
- "[%-4.4s] "
-#endif
- "[%-8.8s] [%-12.12s]"
-#if _HAVE_UT_HOST
- " [%-16.16s]"
-#endif
- " [%-15.15s]"
-#if _HAVE_UT_TV
- " [%ld]"
-#endif
- "\n"
- /* The arguments. */
-#if _HAVE_UT_TYPE
- , up->ut_type
-#endif
-#if _HAVE_UT_PID
- , up->ut_pid
-#endif
-#if _HAVE_UT_ID
- , up->ut_id
-#endif
- , up->ut_user, up->ut_line
-#if _HAVE_UT_HOST
- , up->ut_host
-#endif
-#if _HAVE_UT_TV
- , 4 + ctime (&temp_tv.tv_sec)
- , (long int) temp_tv.tv_usec
-#else
- , 4 + ctime (&up->ut_time)
-#endif
- );
+ printf ("[%d] [%05d] [%-4.4s] [%-8.8s] [%-12.12s] [%-16.16s] [%-15.15s]"
+ " [%ld]\n",
+ up->ut_type, up->ut_pid, up->ut_id, up->ut_user, up->ut_line,
+ up->ut_host, 4 + ctime (&temp_tv.tv_sec),
+ (long int) temp_tv.tv_usec);
}
int
diff --git a/login/ptsname.c b/login/ptsname.c
index 41c85419ba..a83ece102f 100644
--- a/login/ptsname.c
+++ b/login/ptsname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Zack Weinberg <zack@rabi.phys.columbia.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdlib.h>
diff --git a/login/ptsname_r_chk.c b/login/ptsname_r_chk.c
index 554cf1b35d..5a133462aa 100644
--- a/login/ptsname_r_chk.c
+++ b/login/ptsname_r_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
diff --git a/login/pty.h b/login/pty.h
index 3f7129ce70..59164758d8 100644
--- a/login/pty.h
+++ b/login/pty.h
@@ -1,5 +1,5 @@
/* Functions for pseudo TTY handling.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _PTY_H
#define _PTY_H 1
diff --git a/login/pututxline.c b/login/pututxline.c
index a58fba887c..161bbf69a1 100644
--- a/login/pututxline.c
+++ b/login/pututxline.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Mark Kettenis <kettenis@phys.uva.nl>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <utmp.h>
#include <utmpx.h>
diff --git a/login/setlogin.c b/login/setlogin.c
index e6e53f1369..0b759df95a 100644
--- a/login/setlogin.c
+++ b/login/setlogin.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/login/setutxent.c b/login/setutxent.c
index f9a86a59e6..a739633b97 100644
--- a/login/setutxent.c
+++ b/login/setutxent.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Mark Kettenis <kettenis@phys.uva.nl>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <utmp.h>
#include <utmpx.h>
diff --git a/login/tst-getlogin.c b/login/tst-getlogin.c
index 880c837f74..129f416e3d 100644
--- a/login/tst-getlogin.c
+++ b/login/tst-getlogin.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <stdio.h>
diff --git a/login/tst-ptsname.c b/login/tst-ptsname.c
index dc34adda1e..953fed94e8 100644
--- a/login/tst-ptsname.c
+++ b/login/tst-ptsname.c
@@ -1,5 +1,5 @@
/* Test for ptsname/ptsname_r.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Aurelien Jarno <aurelien@aurel32.net>, 2014.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/login/tst-pututxline-cache.c b/login/tst-pututxline-cache.c
new file mode 100644
index 0000000000..3f30dd1776
--- /dev/null
+++ b/login/tst-pututxline-cache.c
@@ -0,0 +1,193 @@
+/* Test case for cache invalidation after concurrent write (bug 24882).
+ 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 <http://www.gnu.org/licenses/>. */
+
+/* This test writes an entry to the utmpx file, reads it (so that it
+ is cached) in process1, and overwrites the same entry in process2
+ with something that does not match the search criteria. At this
+ point, the cache of the first process is stale, and when process1
+ attempts to write a new record which would have gone to the same
+ place (as indicated by the cache), it needs to realize that it has
+ to pick a different slot because the old slot is now used for
+ something else. */
+
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+#include <support/check.h>
+#include <support/namespace.h>
+#include <support/support.h>
+#include <support/temp_file.h>
+#include <support/xthread.h>
+#include <support/xunistd.h>
+#include <utmp.h>
+#include <utmpx.h>
+
+/* Set to the path of the utmp file. */
+static char *utmp_file;
+
+/* Used to synchronize the subprocesses. The barrier itself is
+ allocated in shared memory. */
+static pthread_barrier_t *barrier;
+
+/* setutxent with error checking. */
+static void
+xsetutxent (void)
+{
+ errno = 0;
+ setutxent ();
+ TEST_COMPARE (errno, 0);
+}
+
+/* getutxent with error checking. */
+static struct utmpx *
+xgetutxent (void)
+{
+ errno = 0;
+ struct utmpx *result = getutxent ();
+ if (result == NULL)
+ FAIL_EXIT1 ("getutxent: %m");
+ return result;
+}
+
+static void
+put_entry (const char *id, pid_t pid, const char *user, const char *line)
+{
+ struct utmpx ut =
+ {
+ .ut_type = LOGIN_PROCESS,
+ .ut_pid = pid,
+ .ut_host = "localhost",
+ };
+ strcpy (ut.ut_id, id);
+ strncpy (ut.ut_user, user, sizeof (ut.ut_user));
+ strncpy (ut.ut_line, line, sizeof (ut.ut_line));
+ TEST_VERIFY (pututxline (&ut) != NULL);
+}
+
+/* Use two cooperating subprocesses to avoid issues related to
+ unlock-on-close semantics of POSIX advisory locks. */
+
+static __attribute__ ((noreturn)) void
+process1 (void)
+{
+ TEST_COMPARE (utmpname (utmp_file), 0);
+
+ /* Create an entry. */
+ xsetutxent ();
+ put_entry ("1", 101, "root", "process1");
+
+ /* Retrieve the entry. This will fill the internal cache. */
+ {
+ errno = 0;
+ setutxent ();
+ TEST_COMPARE (errno, 0);
+ struct utmpx ut =
+ {
+ .ut_type = LOGIN_PROCESS,
+ .ut_line = "process1",
+ };
+ struct utmpx *result = getutxline (&ut);
+ if (result == NULL)
+ FAIL_EXIT1 ("getutxline (\"process1\"): %m");
+ TEST_COMPARE (result->ut_pid, 101);
+ }
+
+ /* Signal the other process to overwrite the entry. */
+ xpthread_barrier_wait (barrier);
+
+ /* Wait for the other process to complete the write operation. */
+ xpthread_barrier_wait (barrier);
+
+ /* Add another entry. Note: This time, there is no setutxent call. */
+ put_entry ("1", 103, "root", "process1");
+
+ _exit (0);
+}
+
+static void
+process2 (void *closure)
+{
+ /* Wait for the first process to write its entry. */
+ xpthread_barrier_wait (barrier);
+
+ /* Truncate the file. The glibc interface does not support
+ re-purposing records, but an external expiration mechanism may
+ trigger this. */
+ TEST_COMPARE (truncate64 (utmp_file, 0), 0);
+
+ /* Write the replacement entry. */
+ TEST_COMPARE (utmpname (utmp_file), 0);
+ xsetutxent ();
+ put_entry ("2", 102, "user", "process2");
+
+ /* Signal the other process that the entry has been replaced. */
+ xpthread_barrier_wait (barrier);
+}
+
+static int
+do_test (void)
+{
+ xclose (create_temp_file ("tst-tumpx-cache-write-", &utmp_file));
+ {
+ pthread_barrierattr_t attr;
+ xpthread_barrierattr_init (&attr);
+ xpthread_barrierattr_setpshared (&attr, PTHREAD_SCOPE_PROCESS);
+ barrier = support_shared_allocate (sizeof (*barrier));
+ xpthread_barrier_init (barrier, &attr, 2);
+ }
+
+ /* Run both subprocesses in parallel. */
+ {
+ pid_t pid1 = xfork ();
+ if (pid1 == 0)
+ process1 ();
+ support_isolate_in_subprocess (process2, NULL);
+ int status;
+ xwaitpid (pid1, &status, 0);
+ TEST_COMPARE (status, 0);
+ }
+
+ /* Check that the utmpx database contains the expected records. */
+ {
+ TEST_COMPARE (utmpname (utmp_file), 0);
+ xsetutxent ();
+
+ struct utmpx *ut = xgetutxent ();
+ TEST_COMPARE_STRING (ut->ut_id, "2");
+ TEST_COMPARE (ut->ut_pid, 102);
+ TEST_COMPARE_STRING (ut->ut_user, "user");
+ TEST_COMPARE_STRING (ut->ut_line, "process2");
+
+ ut = xgetutxent ();
+ TEST_COMPARE_STRING (ut->ut_id, "1");
+ TEST_COMPARE (ut->ut_pid, 103);
+ TEST_COMPARE_STRING (ut->ut_user, "root");
+ TEST_COMPARE_STRING (ut->ut_line, "process1");
+
+ if (getutxent () != NULL)
+ FAIL_EXIT1 ("additional utmpx entry");
+ }
+
+ xpthread_barrier_destroy (barrier);
+ support_shared_free (barrier);
+ free (utmp_file);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/login/tst-pututxline-lockfail.c b/login/tst-pututxline-lockfail.c
new file mode 100644
index 0000000000..7c35ce3798
--- /dev/null
+++ b/login/tst-pututxline-lockfail.c
@@ -0,0 +1,176 @@
+/* Test the lock upgrade path in tst-pututxline.
+ 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 <https://www.gnu.org/licenses/>. */
+
+/* pututxline upgrades the read lock on the file to a write lock.
+ This test verifies that if the lock upgrade fails, the utmp
+ subsystem remains in a consistent state, so that pututxline can be
+ called again. */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stdlib.h>
+#include <support/check.h>
+#include <support/namespace.h>
+#include <support/support.h>
+#include <support/temp_file.h>
+#include <support/xthread.h>
+#include <support/xunistd.h>
+#include <unistd.h>
+#include <utmp.h>
+#include <utmpx.h>
+
+/* Path to the temporary utmp file. */
+static char *path;
+
+/* Used to synchronize the subprocesses. The barrier itself is
+ allocated in shared memory. */
+static pthread_barrier_t *barrier;
+
+/* Use pututxline to write an entry for PID. */
+static struct utmpx *
+write_entry (pid_t pid)
+{
+ struct utmpx ut =
+ {
+ .ut_type = LOGIN_PROCESS,
+ .ut_id = "1",
+ .ut_user = "root",
+ .ut_pid = pid,
+ .ut_line = "entry",
+ .ut_host = "localhost",
+ };
+ return pututxline (&ut);
+}
+
+/* Create the initial entry in a subprocess, so that the utmp
+ subsystem in the original process is not disturbed. */
+static void
+subprocess_create_entry (void *closure)
+{
+ TEST_COMPARE (utmpname (path), 0);
+ TEST_VERIFY (write_entry (101) != NULL);
+}
+
+/* Acquire an advisory read lock on PATH. */
+__attribute__ ((noreturn)) static void
+subprocess_lock_file (void)
+{
+ int fd = xopen (path, O_RDONLY, 0);
+
+ struct flock64 fl =
+ {
+ .l_type = F_RDLCK,
+ fl.l_whence = SEEK_SET,
+ };
+ TEST_COMPARE (fcntl64 (fd, F_SETLKW, &fl), 0);
+
+ /* Signal to the main process that the lock has been acquired. */
+ xpthread_barrier_wait (barrier);
+
+ /* Wait for the unlock request from the main process. */
+ xpthread_barrier_wait (barrier);
+
+ /* Implicitly unlock the file. */
+ xclose (fd);
+
+ /* Overwrite the existing entry. */
+ TEST_COMPARE (utmpname (path), 0);
+ errno = 0;
+ setutxent ();
+ TEST_COMPARE (errno, 0);
+ TEST_VERIFY (write_entry (102) != NULL);
+ errno = 0;
+ endutxent ();
+ TEST_COMPARE (errno, 0);
+
+ _exit (0);
+}
+
+static int
+do_test (void)
+{
+ xclose (create_temp_file ("tst-pututxline-lockfail-", &path));
+
+ {
+ pthread_barrierattr_t attr;
+ xpthread_barrierattr_init (&attr);
+ xpthread_barrierattr_setpshared (&attr, PTHREAD_SCOPE_PROCESS);
+ barrier = support_shared_allocate (sizeof (*barrier));
+ xpthread_barrier_init (barrier, &attr, 2);
+ xpthread_barrierattr_destroy (&attr);
+ }
+
+ /* Write the initial entry. */
+ support_isolate_in_subprocess (subprocess_create_entry, NULL);
+
+ pid_t locker_pid = xfork ();
+ if (locker_pid == 0)
+ subprocess_lock_file ();
+
+ /* Wait for the file locking to complete. */
+ xpthread_barrier_wait (barrier);
+
+ /* Try to add another entry. This attempt will fail, with EINTR or
+ EAGAIN. */
+ TEST_COMPARE (utmpname (path), 0);
+ TEST_VERIFY (write_entry (102) == NULL);
+ if (errno != EINTR)
+ TEST_COMPARE (errno, EAGAIN);
+
+ /* Signal the subprocess to overwrite the entry. */
+ xpthread_barrier_wait (barrier);
+
+ /* Wait for write and unlock to complete. */
+ {
+ int status;
+ xwaitpid (locker_pid, &status, 0);
+ TEST_COMPARE (status, 0);
+ }
+
+ /* The file is no longer locked, so this operation will succeed. */
+ TEST_VERIFY (write_entry (103) != NULL);
+ errno = 0;
+ endutxent ();
+ TEST_COMPARE (errno, 0);
+
+ /* Check that there is just one entry with the expected contents.
+ If pututxline becomes desynchronized internally, the entry is not
+ overwritten (bug 24902). */
+ errno = 0;
+ setutxent ();
+ TEST_COMPARE (errno, 0);
+ struct utmpx *ut = getutxent ();
+ TEST_VERIFY_EXIT (ut != NULL);
+ TEST_COMPARE (ut->ut_type, LOGIN_PROCESS);
+ TEST_COMPARE_STRING (ut->ut_id, "1");
+ TEST_COMPARE_STRING (ut->ut_user, "root");
+ TEST_COMPARE (ut->ut_pid, 103);
+ TEST_COMPARE_STRING (ut->ut_line, "entry");
+ TEST_COMPARE_STRING (ut->ut_host, "localhost");
+ TEST_VERIFY (getutxent () == NULL);
+ errno = 0;
+ endutxent ();
+ TEST_COMPARE (errno, 0);
+
+ xpthread_barrier_destroy (barrier);
+ support_shared_free (barrier);
+ free (path);
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/login/tst-updwtmpx.c b/login/tst-updwtmpx.c
new file mode 100644
index 0000000000..d7ef07e2a7
--- /dev/null
+++ b/login/tst-updwtmpx.c
@@ -0,0 +1,112 @@
+/* Basic test coverage for updwtmpx.
+ 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 <https://www.gnu.org/licenses/>. */
+
+/* This program runs a series of tests. Each one calls updwtmpx
+ twice, to write two records, optionally with misalignment in the
+ file, and reads back the results. */
+
+#include <errno.h>
+#include <stdlib.h>
+#include <support/check.h>
+#include <support/descriptors.h>
+#include <support/support.h>
+#include <support/temp_file.h>
+#include <support/test-driver.h>
+#include <support/xunistd.h>
+#include <unistd.h>
+#include <utmpx.h>
+
+static int
+do_test (void)
+{
+ /* Two entries filled with an arbitrary bit pattern. */
+ struct utmpx entries[2];
+ unsigned char pad;
+ {
+ unsigned char *p = (unsigned char *) &entries[0];
+ for (size_t i = 0; i < sizeof (entries); ++i)
+ {
+ p[i] = i;
+ }
+ /* Make sure that the first and second entry and the padding are
+ different. */
+ p[sizeof (struct utmpx)] = p[0] + 1;
+ pad = p[0] + 2;
+ }
+
+ char *path;
+ int fd = create_temp_file ("tst-updwtmpx-", &path);
+
+ /* Used to check that updwtmpx does not leave an open file
+ descriptor around. */
+ struct support_descriptors *descriptors = support_descriptors_list ();
+
+ /* updwtmpx is expected to remove misalignment. Optionally insert
+ one byte of misalignment at the start and in the middle (after
+ the first entry). */
+ for (int misaligned_start = 0; misaligned_start < 2; ++misaligned_start)
+ for (int misaligned_middle = 0; misaligned_middle < 2; ++misaligned_middle)
+ {
+ if (test_verbose > 0)
+ printf ("info: misaligned_start=%d misaligned_middle=%d\n",
+ misaligned_start, misaligned_middle);
+
+ xftruncate (fd, 0);
+ TEST_COMPARE (pwrite64 (fd, &pad, misaligned_start, 0),
+ misaligned_start);
+
+ /* Write first entry and check it. */
+ errno = 0;
+ updwtmpx (path, &entries[0]);
+ TEST_COMPARE (errno, 0);
+ support_descriptors_check (descriptors);
+ TEST_COMPARE (xlseek (fd, 0, SEEK_END), sizeof (struct utmpx));
+ struct utmpx buffer;
+ TEST_COMPARE (pread64 (fd, &buffer, sizeof (buffer), 0),
+ sizeof (buffer));
+ TEST_COMPARE_BLOB (&entries[0], sizeof (entries[0]),
+ &buffer, sizeof (buffer));
+
+ /* Middle mis-alignmet. */
+ TEST_COMPARE (pwrite64 (fd, &pad, misaligned_middle,
+ sizeof (struct utmpx)), misaligned_middle);
+
+ /* Write second entry and check both entries. */
+ errno = 0;
+ updwtmpx (path, &entries[1]);
+ TEST_COMPARE (errno, 0);
+ support_descriptors_check (descriptors);
+ TEST_COMPARE (xlseek (fd, 0, SEEK_END), 2 * sizeof (struct utmpx));
+ TEST_COMPARE (pread64 (fd, &buffer, sizeof (buffer), 0),
+ sizeof (buffer));
+ TEST_COMPARE_BLOB (&entries[0], sizeof (entries[0]),
+ &buffer, sizeof (buffer));
+ TEST_COMPARE (pread64 (fd, &buffer, sizeof (buffer), sizeof (buffer)),
+ sizeof (buffer));
+ TEST_COMPARE_BLOB (&entries[1], sizeof (entries[1]),
+ &buffer, sizeof (buffer));
+ }
+
+ support_descriptors_free (descriptors);
+ free (path);
+ xclose (fd);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/login/tst-utmp.c b/login/tst-utmp.c
index 8cc7aafa89..1e65bd38a9 100644
--- a/login/tst-utmp.c
+++ b/login/tst-utmp.c
@@ -1,5 +1,5 @@
/* Tests for UTMP functions.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Mark Kettenis <kettenis@phys.uva.nl>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <error.h>
@@ -39,8 +39,6 @@
#endif
-#if defined UTMPX || _HAVE_UT_TYPE
-
/* Prototype for our test function. */
static int do_test (int argc, char *argv[]);
@@ -75,11 +73,7 @@ do_prepare (int argc, char *argv[])
struct utmp entry[] =
{
-#if defined UTMPX || _HAVE_UT_TV
#define UT(a) .ut_tv = { .tv_sec = (a)}
-#else
-#define UT(a) .ut_time = (a)
-#endif
{ .ut_type = BOOT_TIME, .ut_pid = 1, UT(1000) },
{ .ut_type = RUN_LVL, .ut_pid = 1, UT(2000) },
@@ -132,8 +126,8 @@ do_check (void)
n = 0;
while ((ut = getutent ()))
{
- if (n < num_entries &&
- memcmp (ut, &entry[n], sizeof (struct utmp)))
+ if (n < num_entries
+ && memcmp (ut, &entry[n], sizeof (struct utmp)))
{
error (0, 0, "UTMP entry does not match");
return 1;
@@ -160,18 +154,14 @@ simulate_login (const char *line, const char *user)
for (n = 0; n < num_entries; n++)
{
- if (strcmp (line, entry[n].ut_line) == 0 ||
- entry[n].ut_type == DEAD_PROCESS)
+ if (strcmp (line, entry[n].ut_line) == 0
+ || entry[n].ut_type == DEAD_PROCESS)
{
if (entry[n].ut_pid == DEAD_PROCESS)
entry[n].ut_pid = (entry_pid += 27);
entry[n].ut_type = USER_PROCESS;
strncpy (entry[n].ut_user, user, sizeof (entry[n].ut_user));
-#if defined UTMPX || _HAVE_UT_TV - 0
entry[n].ut_tv.tv_sec = (entry_time += 1000);
-#else
- entry[n].ut_time = (entry_time += 1000);
-#endif
setutent ();
if (pututline (&entry[n]) == NULL)
@@ -201,11 +191,7 @@ simulate_logout (const char *line)
{
entry[n].ut_type = DEAD_PROCESS;
strncpy (entry[n].ut_user, "", sizeof (entry[n].ut_user));
-#if defined UTMPX || _HAVE_UT_TV - 0
entry[n].ut_tv.tv_sec = (entry_time += 1000);
-#else
- entry[n].ut_time = (entry_time += 1000);
-#endif
setutent ();
if (pututline (&entry[n]) == NULL)
@@ -390,14 +376,3 @@ do_test (int argc, char *argv[])
return result;
}
-
-#else
-
-/* No field 'ut_type' in struct utmp. */
-int
-main (void)
-{
- return 0;
-}
-
-#endif
diff --git a/login/unlockpt.c b/login/unlockpt.c
index 322f324f04..31092fc8d1 100644
--- a/login/unlockpt.c
+++ b/login/unlockpt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Zack Weinberg <zack@rabi.phys.columbia.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include <errno.h>
diff --git a/login/updwtmp.c b/login/updwtmp.c
index 56fb41916a..d98ff4339a 100644
--- a/login/updwtmp.c
+++ b/login/updwtmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Mark Kettenis <kettenis@phys.uva.nl>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <utmp.h>
@@ -29,7 +29,7 @@ __updwtmp (const char *wtmp_file, const struct utmp *utmp)
{
const char *file_name = TRANSFORM_UTMP_FILE_NAME (wtmp_file);
- (*__libc_utmp_file_functions.updwtmp) (file_name, utmp);
+ __libc_updwtmp (file_name, utmp);
}
libc_hidden_def (__updwtmp)
weak_alias (__updwtmp, updwtmp)
diff --git a/login/updwtmpx.c b/login/updwtmpx.c
index 04c7bab49c..59049dd48d 100644
--- a/login/updwtmpx.c
+++ b/login/updwtmpx.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Mark Kettenis <kettenis@phys.uva.nl>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <utmp.h>
#include <utmpx.h>
diff --git a/login/utmp-private.h b/login/utmp-private.h
index bd8773984c..f4cef4233c 100644
--- a/login/utmp-private.h
+++ b/login/utmp-private.h
@@ -1,5 +1,5 @@
/* Internal definitions and declarations for UTMP functions.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>
and Paul Janzen <pcj@primenet.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _UTMP_PRIVATE_H
#define _UTMP_PRIVATE_H 1
@@ -24,24 +24,17 @@
#include <utmp.h>
#include <libc-lock.h>
-/* The structure describing the functions in a backend. */
-struct utfuncs
-{
- int (*setutent) (void);
- int (*getutent_r) (struct utmp *, struct utmp **);
- int (*getutid_r) (const struct utmp *, struct utmp *, struct utmp **);
- int (*getutline_r) (const struct utmp *, struct utmp *, struct utmp **);
- struct utmp *(*pututline) (const struct utmp *);
- void (*endutent) (void);
- int (*updwtmp) (const char *, const struct utmp *);
-};
-
-/* The tables from the services. */
-extern const struct utfuncs __libc_utmp_file_functions attribute_hidden;
-extern const struct utfuncs __libc_utmp_unknown_functions attribute_hidden;
-
-/* Currently selected backend. */
-extern const struct utfuncs *__libc_utmp_jump_table attribute_hidden;
+/* These functions check for initialization, but not perform any
+ locking. */
+int __libc_setutent (void) attribute_hidden;
+int __libc_getutent_r (struct utmp *, struct utmp **) attribute_hidden;
+int __libc_getutid_r (const struct utmp *, struct utmp *, struct utmp **)
+ attribute_hidden;
+int __libc_getutline_r (const struct utmp *, struct utmp *, struct utmp **)
+ attribute_hidden;
+struct utmp *__libc_pututline (const struct utmp *) attribute_hidden;
+void __libc_endutent (void) attribute_hidden;
+int __libc_updwtmp (const char *, const struct utmp *) attribute_hidden;
/* Current file name. */
extern const char *__libc_utmp_file_name attribute_hidden;
diff --git a/login/utmp.h b/login/utmp.h
index c6a55e375c..7906e045f6 100644
--- a/login/utmp.h
+++ b/login/utmp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _UTMP_H
#define _UTMP_H 1
diff --git a/login/utmp_file.c b/login/utmp_file.c
index 040a505711..1b018b330f 100644
--- a/login/utmp_file.c
+++ b/login/utmp_file.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>
and Paul Janzen <pcj@primenet.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
@@ -43,6 +43,25 @@ static off64_t file_offset;
/* Cache for the last read entry. */
static struct utmp last_entry;
+/* Returns true if *ENTRY matches last_entry, based on
+ data->ut_type. */
+static bool
+matches_last_entry (const struct utmp *data)
+{
+ if (file_offset <= 0)
+ /* Nothing has been read. last_entry is stale and cannot match. */
+ return false;
+
+ if (data->ut_type == RUN_LVL
+ || data->ut_type == BOOT_TIME
+ || data->ut_type == OLD_TIME
+ || data->ut_type == NEW_TIME)
+ /* For some entry types, only a type match is required. */
+ return data->ut_type == last_entry.ut_type;
+ else
+ /* For the process-related entries, a full match is needed. */
+ return __utmp_equal (&last_entry, data);
+}
/* Locking timeout. */
#ifndef TIMEOUT
@@ -52,90 +71,70 @@ static struct utmp last_entry;
/* Do-nothing handler for locking timeout. */
static void timeout_handler (int signum) {};
-/* LOCK_FILE(fd, type) failure_statement
- attempts to get a lock on the utmp file referenced by FD. If it fails,
- the failure_statement is executed, otherwise it is skipped.
- LOCKING_FAILED()
- jumps into the UNLOCK_FILE macro and ensures cleanup of LOCK_FILE.
- UNLOCK_FILE(fd)
- unlocks the utmp file referenced by FD and performs the cleanup of
- LOCK_FILE.
- */
-#define LOCK_FILE(fd, type) \
-{ \
- struct flock fl; \
- struct sigaction action, old_action; \
- unsigned int old_timeout; \
- \
- /* Cancel any existing alarm. */ \
- old_timeout = alarm (0); \
- \
- /* Establish signal handler. */ \
- action.sa_handler = timeout_handler; \
- __sigemptyset (&action.sa_mask); \
- action.sa_flags = 0; \
- __sigaction (SIGALRM, &action, &old_action); \
- \
- alarm (TIMEOUT); \
- \
- /* Try to get the lock. */ \
- memset (&fl, '\0', sizeof (struct flock)); \
- fl.l_type = (type); \
- fl.l_whence = SEEK_SET; \
- if (__fcntl64_nocancel ((fd), F_SETLKW, &fl) < 0)
-
-#define LOCKING_FAILED() \
- goto unalarm_return
-
-#define UNLOCK_FILE(fd) \
- /* Unlock the file. */ \
- fl.l_type = F_UNLCK; \
- __fcntl64_nocancel ((fd), F_SETLKW, &fl); \
- \
- unalarm_return: \
- /* Reset the signal handler and alarm. We must reset the alarm \
- before resetting the handler so our alarm does not generate a \
- spurious SIGALRM seen by the user. However, we cannot just set \
- the user's old alarm before restoring the handler, because then \
- it's possible our handler could catch the user alarm's SIGARLM \
- and then the user would never see the signal he expected. */ \
- alarm (0); \
- __sigaction (SIGALRM, &old_action, NULL); \
- if (old_timeout != 0) \
- alarm (old_timeout); \
-} while (0)
-
-
-/* Functions defined here. */
-static int setutent_file (void);
-static int getutent_r_file (struct utmp *buffer, struct utmp **result);
-static int getutid_r_file (const struct utmp *key, struct utmp *buffer,
- struct utmp **result);
-static int getutline_r_file (const struct utmp *key, struct utmp *buffer,
- struct utmp **result);
-static struct utmp *pututline_file (const struct utmp *data);
-static void endutent_file (void);
-static int updwtmp_file (const char *file, const struct utmp *utmp);
-
-/* Jump table for file functions. */
-const struct utfuncs __libc_utmp_file_functions =
+
+/* try_file_lock (LOCKING, FD, TYPE) returns true if the locking
+ operation failed and recovery needs to be performed.
+
+ file_unlock (FD) removes the lock (which must have been
+ successfully acquired). */
+
+static bool
+try_file_lock (int fd, int type)
{
- setutent_file,
- getutent_r_file,
- getutid_r_file,
- getutline_r_file,
- pututline_file,
- endutent_file,
- updwtmp_file
-};
+ /* Cancel any existing alarm. */
+ int old_timeout = alarm (0);
+
+ /* Establish signal handler. */
+ struct sigaction old_action;
+ struct sigaction action;
+ action.sa_handler = timeout_handler;
+ __sigemptyset (&action.sa_mask);
+ action.sa_flags = 0;
+ __sigaction (SIGALRM, &action, &old_action);
+
+ alarm (TIMEOUT);
+
+ /* Try to get the lock. */
+ struct flock64 fl =
+ {
+ .l_type = type,
+ .l_whence = SEEK_SET,
+ };
+
+ bool status = __fcntl64_nocancel (fd, F_SETLKW, &fl) < 0;
+ int saved_errno = errno;
+
+ /* Reset the signal handler and alarm. We must reset the alarm
+ before resetting the handler so our alarm does not generate a
+ spurious SIGALRM seen by the user. However, we cannot just set
+ the user's old alarm before restoring the handler, because then
+ it's possible our handler could catch the user alarm's SIGARLM and
+ then the user would never see the signal he expected. */
+ alarm (0);
+ __sigaction (SIGALRM, &old_action, NULL);
+ if (old_timeout != 0)
+ alarm (old_timeout);
+
+ __set_errno (saved_errno);
+ return status;
+}
+static void
+file_unlock (int fd)
+{
+ struct flock64 fl =
+ {
+ .l_type = F_UNLCK,
+ };
+ __fcntl64_nocancel (fd, F_SETLKW, &fl);
+}
#ifndef TRANSFORM_UTMP_FILE_NAME
# define TRANSFORM_UTMP_FILE_NAME(file_name) (file_name)
#endif
-static int
-setutent_file (void)
+int
+__libc_setutent (void)
{
if (file_fd < 0)
{
@@ -153,56 +152,68 @@ setutent_file (void)
__lseek64 (file_fd, 0, SEEK_SET);
file_offset = 0;
- /* Make sure the entry won't match. */
-#if _HAVE_UT_TYPE - 0
- last_entry.ut_type = -1;
-#else
- last_entry.ut_line[0] = '\177';
-# if _HAVE_UT_ID - 0
- last_entry.ut_id[0] = '\0';
-# endif
-#endif
-
return 1;
}
+/* Preform initialization if necessary. */
+static bool
+maybe_setutent (void)
+{
+ return file_fd >= 0 || __libc_setutent ();
+}
-static int
-getutent_r_file (struct utmp *buffer, struct utmp **result)
+/* Reads the entry at file_offset, storing it in last_entry and
+ updating file_offset on success. Returns -1 for a read error, 0
+ for EOF, and 1 for a successful read. last_entry and file_offset
+ are only updated on a successful and complete read. */
+static ssize_t
+read_last_entry (void)
{
- ssize_t nbytes;
+ struct utmp buffer;
+ ssize_t nbytes = __pread64_nocancel (file_fd, &buffer, sizeof (buffer),
+ file_offset);
+ if (nbytes < 0)
+ return -1;
+ else if (nbytes != sizeof (buffer))
+ /* Assume EOF. */
+ return 0;
+ else
+ {
+ last_entry = buffer;
+ file_offset += sizeof (buffer);
+ return 1;
+ }
+}
- assert (file_fd >= 0);
+int
+__libc_getutent_r (struct utmp *buffer, struct utmp **result)
+{
+ int saved_errno = errno;
- if (file_offset == -1l)
+ if (!maybe_setutent ())
{
/* Not available. */
*result = NULL;
return -1;
}
- LOCK_FILE (file_fd, F_RDLCK)
- {
- nbytes = 0;
- LOCKING_FAILED ();
- }
-
- /* Read the next entry. */
- nbytes = __read_nocancel (file_fd, &last_entry, sizeof (struct utmp));
+ if (try_file_lock (file_fd, F_RDLCK))
+ return -1;
- UNLOCK_FILE (file_fd);
+ ssize_t nbytes = read_last_entry ();
+ file_unlock (file_fd);
- if (nbytes != sizeof (struct utmp))
+ if (nbytes <= 0) /* Read error or EOF. */
{
- if (nbytes != 0)
- file_offset = -1l;
+ if (nbytes == 0)
+ /* errno should be unchanged to indicate success. A premature
+ EOF is treated like an EOF (missing complete record at the
+ end). */
+ __set_errno (saved_errno);
*result = NULL;
return -1;
}
- /* Update position pointer. */
- file_offset += sizeof (struct utmp);
-
memcpy (buffer, &last_entry, sizeof (struct utmp));
*result = buffer;
@@ -210,82 +221,55 @@ getutent_r_file (struct utmp *buffer, struct utmp **result)
}
+/* Search for *ID, updating last_entry and file_offset. Return 0 on
+ success and -1 on failure. Does not perform locking; for that see
+ internal_getut_r below. */
static int
-internal_getut_r (const struct utmp *id, struct utmp *buffer,
- bool *lock_failed)
+internal_getut_nolock (const struct utmp *id)
{
- int result = -1;
-
- LOCK_FILE (file_fd, F_RDLCK)
- {
- *lock_failed = true;
- LOCKING_FAILED ();
- }
-
-#if _HAVE_UT_TYPE - 0
- if (id->ut_type == RUN_LVL || id->ut_type == BOOT_TIME
- || id->ut_type == OLD_TIME || id->ut_type == NEW_TIME)
+ while (1)
{
- /* Search for next entry with type RUN_LVL, BOOT_TIME,
- OLD_TIME, or NEW_TIME. */
-
- while (1)
+ ssize_t nbytes = read_last_entry ();
+ if (nbytes < 0)
+ return -1;
+ if (nbytes == 0)
{
- /* Read the next entry. */
- if (__read_nocancel (file_fd, buffer, sizeof (struct utmp))
- != sizeof (struct utmp))
- {
- __set_errno (ESRCH);
- file_offset = -1l;
- goto unlock_return;
- }
- file_offset += sizeof (struct utmp);
-
- if (id->ut_type == buffer->ut_type)
- break;
+ /* End of file reached. */
+ __set_errno (ESRCH);
+ return -1;
}
- }
- else
-#endif /* _HAVE_UT_TYPE */
- {
- /* Search for the next entry with the specified ID and with type
- INIT_PROCESS, LOGIN_PROCESS, USER_PROCESS, or DEAD_PROCESS. */
- while (1)
- {
- /* Read the next entry. */
- if (__read_nocancel (file_fd, buffer, sizeof (struct utmp))
- != sizeof (struct utmp))
- {
- __set_errno (ESRCH);
- file_offset = -1l;
- goto unlock_return;
- }
- file_offset += sizeof (struct utmp);
-
- if (__utmp_equal (buffer, id))
- break;
- }
+ if (matches_last_entry (id))
+ break;
}
- result = 0;
+ return 0;
+}
-unlock_return:
- UNLOCK_FILE (file_fd);
+/* Search for *ID, updating last_entry and file_offset. Return 0 on
+ success and -1 on failure. If the locking operation failed, write
+ true to *LOCK_FAILED. */
+static int
+internal_getut_r (const struct utmp *id, bool *lock_failed)
+{
+ if (try_file_lock (file_fd, F_RDLCK))
+ {
+ *lock_failed = true;
+ return -1;
+ }
+ int result = internal_getut_nolock (id);
+ file_unlock (file_fd);
return result;
}
-
/* For implementing this function we don't use the getutent_r function
because we can avoid the reposition on every new entry this way. */
-static int
-getutid_r_file (const struct utmp *id, struct utmp *buffer,
- struct utmp **result)
+int
+__libc_getutid_r (const struct utmp *id, struct utmp *buffer,
+ struct utmp **result)
{
- assert (file_fd >= 0);
-
- if (file_offset == -1l)
+ if (!maybe_setutent ())
{
*result = NULL;
return -1;
@@ -294,7 +278,7 @@ getutid_r_file (const struct utmp *id, struct utmp *buffer,
/* We don't have to distinguish whether we can lock the file or
whether there is no entry. */
bool lock_failed = false;
- if (internal_getut_r (id, &last_entry, &lock_failed) < 0)
+ if (internal_getut_r (id, &lock_failed) < 0)
{
*result = NULL;
return -1;
@@ -306,69 +290,65 @@ getutid_r_file (const struct utmp *id, struct utmp *buffer,
return 0;
}
-
/* For implementing this function we don't use the getutent_r function
because we can avoid the reposition on every new entry this way. */
-static int
-getutline_r_file (const struct utmp *line, struct utmp *buffer,
- struct utmp **result)
+int
+__libc_getutline_r (const struct utmp *line, struct utmp *buffer,
+ struct utmp **result)
{
- assert (file_fd >= 0);
-
- if (file_offset == -1l)
+ if (!maybe_setutent ())
{
*result = NULL;
return -1;
}
- LOCK_FILE (file_fd, F_RDLCK)
+ if (try_file_lock (file_fd, F_RDLCK))
{
*result = NULL;
- LOCKING_FAILED ();
+ return -1;
}
while (1)
{
- /* Read the next entry. */
- if (__read_nocancel (file_fd, &last_entry, sizeof (struct utmp))
- != sizeof (struct utmp))
+ ssize_t nbytes = read_last_entry ();
+ if (nbytes < 0)
+ {
+ file_unlock (file_fd);
+ *result = NULL;
+ return -1;
+ }
+ if (nbytes == 0)
{
+ /* End of file reached. */
+ file_unlock (file_fd);
__set_errno (ESRCH);
- file_offset = -1l;
*result = NULL;
- goto unlock_return;
+ return -1;
}
- file_offset += sizeof (struct utmp);
/* Stop if we found a user or login entry. */
- if (
-#if _HAVE_UT_TYPE - 0
- (last_entry.ut_type == USER_PROCESS
+ if ((last_entry.ut_type == USER_PROCESS
|| last_entry.ut_type == LOGIN_PROCESS)
- &&
-#endif
- !strncmp (line->ut_line, last_entry.ut_line, sizeof line->ut_line))
+ && (strncmp (line->ut_line, last_entry.ut_line, sizeof line->ut_line)
+ == 0))
break;
}
+ file_unlock (file_fd);
memcpy (buffer, &last_entry, sizeof (struct utmp));
*result = buffer;
-unlock_return:
- UNLOCK_FILE (file_fd);
-
- return ((*result == NULL) ? -1 : 0);
+ return 0;
}
-static struct utmp *
-pututline_file (const struct utmp *data)
+struct utmp *
+__libc_pututline (const struct utmp *data)
{
- struct utmp buffer;
- struct utmp *pbuf;
- int found;
+ if (!maybe_setutent ())
+ return NULL;
- assert (file_fd >= 0);
+ struct utmp *pbuf;
if (! file_writable)
{
@@ -380,8 +360,7 @@ pututline_file (const struct utmp *data)
if (new_fd == -1)
return NULL;
- if (__lseek64 (new_fd, __lseek64 (file_fd, 0, SEEK_CUR), SEEK_SET) == -1
- || __dup2 (new_fd, file_fd) < 0)
+ if (__dup2 (new_fd, file_fd) < 0)
{
__close_nocancel_nostatus (new_fd);
return NULL;
@@ -390,95 +369,96 @@ pututline_file (const struct utmp *data)
file_writable = true;
}
+ /* Exclude other writers before validating the cache. */
+ if (try_file_lock (file_fd, F_WRLCK))
+ return NULL;
+
/* Find the correct place to insert the data. */
- if (file_offset > 0
- && (
-#if _HAVE_UT_TYPE - 0
- (last_entry.ut_type == data->ut_type
- && (last_entry.ut_type == RUN_LVL
- || last_entry.ut_type == BOOT_TIME
- || last_entry.ut_type == OLD_TIME
- || last_entry.ut_type == NEW_TIME))
- ||
-#endif
- __utmp_equal (&last_entry, data)))
- found = 1;
- else
+ bool found = false;
+ if (matches_last_entry (data))
{
- bool lock_failed = false;
- found = internal_getut_r (data, &buffer, &lock_failed);
-
- if (__builtin_expect (lock_failed, false))
+ /* Read back the entry under the write lock. */
+ file_offset -= sizeof (last_entry);
+ ssize_t nbytes = read_last_entry ();
+ if (nbytes < 0)
{
- __set_errno (EAGAIN);
+ file_unlock (file_fd);
return NULL;
}
- }
- LOCK_FILE (file_fd, F_WRLCK)
- {
- pbuf = NULL;
- LOCKING_FAILED ();
+ if (nbytes == 0)
+ /* End of file reached. */
+ found = false;
+ else
+ found = matches_last_entry (data);
}
- if (found < 0)
+ if (!found)
+ /* Search forward for the entry. */
+ found = internal_getut_nolock (data) >= 0;
+
+ off64_t write_offset;
+ if (!found)
{
/* We append the next entry. */
- file_offset = __lseek64 (file_fd, 0, SEEK_END);
- if (file_offset % sizeof (struct utmp) != 0)
- {
- file_offset -= file_offset % sizeof (struct utmp);
- __ftruncate64 (file_fd, file_offset);
-
- if (__lseek64 (file_fd, 0, SEEK_END) < 0)
- {
- pbuf = NULL;
- goto unlock_return;
- }
- }
+ write_offset = __lseek64 (file_fd, 0, SEEK_END);
+
+ /* Round down to the next multiple of the entry size. This
+ ensures any partially-written record is overwritten by the
+ new record. */
+ write_offset = (write_offset / sizeof (struct utmp)
+ * sizeof (struct utmp));
}
else
+ /* Overwrite last_entry. */
+ write_offset = file_offset - sizeof (struct utmp);
+
+ /* Write the new data. */
+ ssize_t nbytes;
+ if (__lseek64 (file_fd, write_offset, SEEK_SET) < 0
+ || (nbytes = __write_nocancel (file_fd, data, sizeof (struct utmp))) < 0)
{
- /* We replace the just read entry. */
- file_offset -= sizeof (struct utmp);
- __lseek64 (file_fd, file_offset, SEEK_SET);
+ /* There is no need to recover the file position because all
+ reads use pread64, and any future write is preceded by
+ another seek. */
+ file_unlock (file_fd);
+ return NULL;
}
- /* Write the new data. */
- if (__write_nocancel (file_fd, data, sizeof (struct utmp))
- != sizeof (struct utmp))
+ if (nbytes != sizeof (struct utmp))
{
/* If we appended a new record this is only partially written.
Remove it. */
- if (found < 0)
- (void) __ftruncate64 (file_fd, file_offset);
- pbuf = NULL;
- }
- else
- {
- file_offset += sizeof (struct utmp);
- pbuf = (struct utmp *) data;
+ if (!found)
+ (void) __ftruncate64 (file_fd, write_offset);
+ file_unlock (file_fd);
+ /* Assume that the write failure was due to missing disk
+ space. */
+ __set_errno (ENOSPC);
+ return NULL;
}
- unlock_return:
- UNLOCK_FILE (file_fd);
+ file_unlock (file_fd);
+ file_offset = write_offset + sizeof (struct utmp);
+ pbuf = (struct utmp *) data;
return pbuf;
}
-static void
-endutent_file (void)
+void
+__libc_endutent (void)
{
- assert (file_fd >= 0);
-
- __close_nocancel_nostatus (file_fd);
- file_fd = -1;
+ if (file_fd >= 0)
+ {
+ __close_nocancel_nostatus (file_fd);
+ file_fd = -1;
+ }
}
-static int
-updwtmp_file (const char *file, const struct utmp *utmp)
+int
+__libc_updwtmp (const char *file, const struct utmp *utmp)
{
int result = -1;
off64_t offset;
@@ -489,8 +469,11 @@ updwtmp_file (const char *file, const struct utmp *utmp)
if (fd < 0)
return -1;
- LOCK_FILE (fd, F_WRLCK)
- LOCKING_FAILED ();
+ if (try_file_lock (fd, F_WRLCK))
+ {
+ __close_nocancel_nostatus (fd);
+ return -1;
+ }
/* Remember original size of log file. */
offset = __lseek64 (fd, 0, SEEK_END);
@@ -516,7 +499,7 @@ updwtmp_file (const char *file, const struct utmp *utmp)
result = 0;
unlock_return:
- UNLOCK_FILE (fd);
+ file_unlock (fd);
/* Close WTMP file. */
__close_nocancel_nostatus (fd);
diff --git a/login/utmpname.c b/login/utmpname.c
index 21cb890a1a..a1ae6397be 100644
--- a/login/utmpname.c
+++ b/login/utmpname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Mark Kettenis <kettenis@phys.uva.nl>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libc-lock.h>
#include <stdlib.h>
@@ -42,8 +42,7 @@ __utmpname (const char *file)
__libc_lock_lock (__libc_utmp_lock);
/* Close the old file. */
- (*__libc_utmp_jump_table->endutent) ();
- __libc_utmp_jump_table = &__libc_utmp_unknown_functions;
+ __libc_endutent ();
if (strcmp (file, __libc_utmp_file_name) != 0)
{
diff --git a/login/utmpxname.c b/login/utmpxname.c
index a79f3306ea..db9420a581 100644
--- a/login/utmpxname.c
+++ b/login/utmpxname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Mark Kettenis <kettenis@phys.uva.nl>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <utmp.h>
#include <utmpx.h>
diff --git a/mach/Machrules b/mach/Machrules
index 65411f493a..ec61089825 100644
--- a/mach/Machrules
+++ b/mach/Machrules
@@ -1,5 +1,5 @@
# Rules for MiG interfaces that want to go into the C library.
-# Copyright (C) 1991-2018 Free Software Foundation, Inc.
+# Copyright (C) 1991-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
@@ -14,7 +14,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
# Makefiles may define these variable before including this file:
# user-interfaces Names of interfaces to put user stubs in for.
diff --git a/mach/Makefile b/mach/Makefile
index 435ae6882d..804b032e99 100644
--- a/mach/Makefile
+++ b/mach/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1991-2018 Free Software Foundation, Inc.
+# Copyright (C) 1991-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
subdir := mach
diff --git a/mach/devstream.c b/mach/devstream.c
index 505b6573ae..b1397e0446 100644
--- a/mach/devstream.c
+++ b/mach/devstream.c
@@ -1,6 +1,6 @@
/* stdio on a Mach device port.
Translates \n to \r\n on output, echos and translates \r to \n on input.
- Copyright (C) 1992-2018 Free Software Foundation, Inc.
+ Copyright (C) 1992-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <mach.h>
diff --git a/mach/err_kern.sub b/mach/err_kern.sub
index ab00ae40f2..42c38ebd59 100644
--- a/mach/err_kern.sub
+++ b/mach/err_kern.sub
@@ -50,7 +50,7 @@
*/
static char * err_codes_kern[] = {
- "(os/kern) successful",
+ "Success",
"(os/kern) invalid address",
"(os/kern) protection failure",
"(os/kern) no space available",
diff --git a/mach/lock-intern.h b/mach/lock-intern.h
index ed8acb6aec..6d9e5e3a2e 100644
--- a/mach/lock-intern.h
+++ b/mach/lock-intern.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LOCK_INTERN_H
#define _LOCK_INTERN_H
diff --git a/mach/lowlevellock.h b/mach/lowlevellock.h
index 8635b9db53..eab0612687 100644
--- a/mach/lowlevellock.h
+++ b/mach/lowlevellock.h
@@ -1,5 +1,5 @@
/* Low-level lock implementation. Mach gsync-based version.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MACH_LOWLEVELLOCK_H
#define _MACH_LOWLEVELLOCK_H 1
@@ -49,8 +49,8 @@
({ \
int *__iptr = (int *)(ptr); \
int __flags = (flags); \
- if (*__iptr != 0 || \
- atomic_compare_and_exchange_bool_acq (__iptr, 1, 0) != 0) \
+ if (*__iptr != 0 \
+ || atomic_compare_and_exchange_bool_acq (__iptr, 1, 0) != 0) \
while (1) \
{ \
if (atomic_exchange_acq (__iptr, 2) == 0) \
@@ -65,8 +65,8 @@
#define lll_trylock(ptr) \
({ \
int *__iptr = (int *)(ptr); \
- *__iptr == 0 && \
- atomic_compare_and_exchange_bool_acq (__iptr, 1, 0) == 0 ? 0 : -1; \
+ *__iptr == 0 \
+ && atomic_compare_and_exchange_bool_acq (__iptr, 1, 0) == 0 ? 0 : -1; \
})
/* Release the lock at PTR. */
diff --git a/mach/mach.h b/mach/mach.h
index 93398b0da5..4c46fa9a8c 100644
--- a/mach/mach.h
+++ b/mach/mach.h
@@ -1,5 +1,5 @@
/* Standard header for all Mach programs.
- Copyright (C) 1993-2018 Free Software Foundation, Inc.
+ Copyright (C) 1993-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MACH_H
diff --git a/mach/mach/mach_traps.h b/mach/mach/mach_traps.h
index b87ea9e745..ac4d983f94 100644
--- a/mach/mach/mach_traps.h
+++ b/mach/mach/mach_traps.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Declare the few Mach system calls (except mach_msg, in <mach/message.h>).
This does not include the kernel RPC shortcut calls (in <mach-shortcuts.h>).
diff --git a/mach/mach/mig_support.h b/mach/mach/mig_support.h
index fc17062b6a..2419fcfdb2 100644
--- a/mach/mach/mig_support.h
+++ b/mach/mach/mig_support.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Useful declarations and support functions for MiG-generated stubs. */
diff --git a/mach/mach_init.c b/mach/mach_init.c
index 7a5ed9b829..4944df2e0f 100644
--- a/mach/mach_init.c
+++ b/mach/mach_init.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <mach.h>
#include <mach/mig_support.h>
diff --git a/mach/mach_init.h b/mach/mach_init.h
index 160ea21600..85ae5921ab 100644
--- a/mach/mach_init.h
+++ b/mach/mach_init.h
@@ -1,5 +1,5 @@
/* Declarations and macros for the basic Mach things set at startup.
- Copyright (C) 1993-2018 Free Software Foundation, Inc.
+ Copyright (C) 1993-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MACH_INIT_H
diff --git a/mach/mig-alloc.c b/mach/mig-alloc.c
index d8eef70a96..61ea9c5024 100644
--- a/mach/mig-alloc.c
+++ b/mach/mig-alloc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <mach.h>
diff --git a/mach/mig-dealloc.c b/mach/mig-dealloc.c
index 0b2138210e..f64d7cbf21 100644
--- a/mach/mig-dealloc.c
+++ b/mach/mig-dealloc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <mach.h>
diff --git a/mach/mig-reply.c b/mach/mig-reply.c
index 145d0e9cac..5951c7f6bc 100644
--- a/mach/mig-reply.c
+++ b/mach/mig-reply.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <mach.h>
diff --git a/mach/msgserver.c b/mach/msgserver.c
index 58da00722f..7b81abc32c 100644
--- a/mach/msgserver.c
+++ b/mach/msgserver.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Based on CMU's mach_msg_server.c revision 2.4 of 91/05/14, and thus
under the following copyright. Rewritten by Roland McGrath (FSF)
diff --git a/mach/mutex-init.c b/mach/mutex-init.c
index a8f238c722..aa59b70388 100644
--- a/mach/mutex-init.c
+++ b/mach/mutex-init.c
@@ -1,5 +1,5 @@
/* Initialize a cthreads mutex structure.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <lock-intern.h>
#include <lowlevellock.h>
diff --git a/mach/mutex-solid.c b/mach/mutex-solid.c
index 1493ad7d8b..9669caafe9 100644
--- a/mach/mutex-solid.c
+++ b/mach/mutex-solid.c
@@ -1,5 +1,5 @@
/* Stub versions of mutex_lock_solid/mutex_unlock_solid for no -lthreads.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <lock-intern.h>
#include <cthreads.h>
diff --git a/mach/setup-thread.c b/mach/setup-thread.c
index ce60a7302a..62317fa59b 100644
--- a/mach/setup-thread.c
+++ b/mach/setup-thread.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <mach.h>
#include <thread_state.h>
diff --git a/mach/spin-lock.h b/mach/spin-lock.h
index 5b4db0ba47..3efd34afeb 100644
--- a/mach/spin-lock.h
+++ b/mach/spin-lock.h
@@ -1,5 +1,5 @@
/* Definitions of user-visible names for spin locks.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SPIN_LOCK_H
#define _SPIN_LOCK_H
diff --git a/mach/spin-solid.c b/mach/spin-solid.c
index db1bcd0750..132238cd6c 100644
--- a/mach/spin-solid.c
+++ b/mach/spin-solid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <spin-lock.h>
#include <mach/mach_traps.h>
diff --git a/malloc/Depend b/malloc/Depend
index 910c6d9152..f5e248047c 100644
--- a/malloc/Depend
+++ b/malloc/Depend
@@ -1 +1,3 @@
dlfcn
+nptl
+htl
diff --git a/malloc/Makefile b/malloc/Makefile
index 7d54bad866..c53b778cdc 100644
--- a/malloc/Makefile
+++ b/malloc/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1991-2018 Free Software Foundation, Inc.
+# Copyright (C) 1991-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
# Makefile for malloc routines
@@ -38,6 +38,7 @@ tests := mallocbug tst-malloc tst-valloc tst-calloc tst-obstack \
tst-malloc_info \
tst-malloc-too-large \
tst-malloc-stats-cancellation \
+ tst-tcfree1 tst-tcfree2 tst-tcfree3 \
tests-static := \
tst-interpose-static-nothread \
@@ -53,7 +54,7 @@ tests-internal += \
tst-dynarray-at-fail \
ifneq (no,$(have-tunables))
-tests += tst-malloc-usable-tunables
+tests += tst-malloc-usable-tunables tst-mxfast
tests-static += tst-malloc-usable-static-tunables
endif
@@ -130,6 +131,7 @@ ifneq ($(cross-compiling),yes)
# If the gd library is available we build the `memusagestat' program.
ifneq ($(LIBGD),no)
others: $(objpfx)memusage
+others += memusagestat
install-bin = memusagestat
install-bin-script += memusage
generated += memusagestat memusage
@@ -153,8 +155,7 @@ cpp-srcs-left := $(memusagestat-modules)
lib := memusagestat
include $(patsubst %,$(..)libof-iterator.mk,$(cpp-srcs-left))
-$(objpfx)memusagestat: $(memusagestat-modules:%=$(objpfx)%.o)
- $(LINK.o) -o $@ $^ $(libgd-LDFLAGS) -lgd -lpng -lz -lm
+LDLIBS-memusagestat = $(libgd-LDFLAGS) -lgd -lpng -lz -lm
ifeq ($(run-built-tests),yes)
ifeq (yes,$(build-shared))
@@ -195,6 +196,8 @@ tst-malloc-usable-static-ENV = $(tst-malloc-usable-ENV)
tst-malloc-usable-tunables-ENV = GLIBC_TUNABLES=glibc.malloc.check=3
tst-malloc-usable-static-tunables-ENV = $(tst-malloc-usable-tunables-ENV)
+tst-mxfast-ENV = GLIBC_TUNABLES=glibc.malloc.tcache_count=0:glibc.malloc.mxfast=0
+
ifeq ($(experimental-malloc),yes)
CPPFLAGS-malloc.c += -DUSE_TCACHE=1
else
@@ -251,3 +254,4 @@ $(objpfx)tst-dynarray-fail-mem.out: $(objpfx)tst-dynarray-fail.out
$(objpfx)tst-malloc-tcache-leak: $(shared-thread-library)
$(objpfx)tst-malloc_info: $(shared-thread-library)
+$(objpfx)tst-mallocfork2: $(shared-thread-library)
diff --git a/malloc/alloc_buffer_alloc_array.c b/malloc/alloc_buffer_alloc_array.c
index 1dd098a8fc..30fdf23146 100644
--- a/malloc/alloc_buffer_alloc_array.c
+++ b/malloc/alloc_buffer_alloc_array.c
@@ -1,5 +1,5 @@
/* Array allocation from a fixed-size buffer.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,10 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <alloc_buffer.h>
-#include <malloc-internal.h>
#include <libc-pointer-arith.h>
void *
@@ -28,7 +27,7 @@ __libc_alloc_buffer_alloc_array (struct alloc_buffer *buf, size_t element_size,
/* The caller asserts that align is a power of two. */
size_t aligned = ALIGN_UP (current, align);
size_t size;
- bool overflow = check_mul_overflow_size_t (element_size, count, &size);
+ bool overflow = __builtin_mul_overflow (element_size, count, &size);
size_t new_current = aligned + size;
if (!overflow /* Multiplication did not overflow. */
&& aligned >= current /* No overflow in align step. */
diff --git a/malloc/alloc_buffer_allocate.c b/malloc/alloc_buffer_allocate.c
index 6d24aa6654..10472229bc 100644
--- a/malloc/alloc_buffer_allocate.c
+++ b/malloc/alloc_buffer_allocate.c
@@ -1,5 +1,5 @@
/* Allocate a fixed-size allocation buffer using malloc.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <alloc_buffer.h>
diff --git a/malloc/alloc_buffer_copy_bytes.c b/malloc/alloc_buffer_copy_bytes.c
index 760df931b3..482900f7c0 100644
--- a/malloc/alloc_buffer_copy_bytes.c
+++ b/malloc/alloc_buffer_copy_bytes.c
@@ -1,5 +1,5 @@
/* Copy an array of bytes into the buffer.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <alloc_buffer.h>
diff --git a/malloc/alloc_buffer_copy_string.c b/malloc/alloc_buffer_copy_string.c
index 62113e11ec..dffed8b008 100644
--- a/malloc/alloc_buffer_copy_string.c
+++ b/malloc/alloc_buffer_copy_string.c
@@ -1,5 +1,5 @@
/* Copy a string into the allocation buffer.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <alloc_buffer.h>
diff --git a/malloc/alloc_buffer_create_failure.c b/malloc/alloc_buffer_create_failure.c
index 72765116b6..78f91f9405 100644
--- a/malloc/alloc_buffer_create_failure.c
+++ b/malloc/alloc_buffer_create_failure.c
@@ -1,5 +1,5 @@
/* Terminate the process as the result of an invalid allocation buffer.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <alloc_buffer.h>
#include <stdio.h>
diff --git a/malloc/arena.c b/malloc/arena.c
index 497ae475e7..74815ac9c8 100644
--- a/malloc/arena.c
+++ b/malloc/arena.c
@@ -1,5 +1,5 @@
/* Malloc implementation for multiple threads without lock contention.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Wolfram Gloger <wg@malloc.de>, 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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <stdbool.h>
@@ -207,7 +207,6 @@ __malloc_fork_unlock_child (void)
}
#if HAVE_TUNABLES
-static inline int do_set_mallopt_check (int32_t value);
void
TUNABLE_CALLBACK (set_mallopt_check) (tunable_val_t *valp)
{
@@ -237,6 +236,7 @@ TUNABLE_CALLBACK_FNDECL (set_tcache_max, size_t)
TUNABLE_CALLBACK_FNDECL (set_tcache_count, size_t)
TUNABLE_CALLBACK_FNDECL (set_tcache_unsorted_limit, size_t)
#endif
+TUNABLE_CALLBACK_FNDECL (set_mxfast, size_t)
#else
/* Initialization routine. */
#include <string.h>
@@ -324,6 +324,7 @@ ptmalloc_init (void)
TUNABLE_GET (tcache_unsorted_limit, size_t,
TUNABLE_CALLBACK (set_tcache_unsorted_limit));
# endif
+ TUNABLE_GET (mxfast, size_t, TUNABLE_CALLBACK (set_mxfast));
#else
const char *s = NULL;
if (__glibc_likely (_environ != NULL))
@@ -596,7 +597,7 @@ heap_trim (heap_info *heap, size_t pad)
{
mstate ar_ptr = heap->ar_ptr;
unsigned long pagesz = GLRO (dl_pagesize);
- mchunkptr top_chunk = top (ar_ptr), p, bck, fwd;
+ mchunkptr top_chunk = top (ar_ptr), p;
heap_info *prev_heap;
long new_size, top_size, top_area, extra, prev_size, misalign;
@@ -625,7 +626,7 @@ heap_trim (heap_info *heap, size_t pad)
if (!prev_inuse (p)) /* consolidate backward */
{
p = prev_chunk (p);
- unlink (ar_ptr, p, bck, fwd);
+ unlink_chunk (ar_ptr, p);
}
assert (((unsigned long) ((char *) p + new_size) & (pagesz - 1)) == 0);
assert (((char *) p + new_size) == ((char *) heap + heap->size));
diff --git a/malloc/dynarray-skeleton.c b/malloc/dynarray-skeleton.c
index 5ab4a199a4..0fc38324d9 100644
--- a/malloc/dynarray-skeleton.c
+++ b/malloc/dynarray-skeleton.c
@@ -1,5 +1,5 @@
/* Type-safe arrays which grow dynamically.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Pre-processor macros which act as parameters:
diff --git a/malloc/dynarray.h b/malloc/dynarray.h
index 0b171da78c..3c4141e296 100644
--- a/malloc/dynarray.h
+++ b/malloc/dynarray.h
@@ -1,5 +1,5 @@
/* Type-safe arrays which grow dynamically. Shared definitions.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* To use the dynarray facility, you need to include
<malloc/dynarray-skeleton.c> and define the parameter macros
diff --git a/malloc/dynarray_at_failure.c b/malloc/dynarray_at_failure.c
index 4d55647c8b..d3c8a989db 100644
--- a/malloc/dynarray_at_failure.c
+++ b/malloc/dynarray_at_failure.c
@@ -1,5 +1,5 @@
/* Report an dynamic array index out of bounds condition.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dynarray.h>
#include <stdio.h>
diff --git a/malloc/dynarray_emplace_enlarge.c b/malloc/dynarray_emplace_enlarge.c
index 0408271e27..c2fbd00008 100644
--- a/malloc/dynarray_emplace_enlarge.c
+++ b/malloc/dynarray_emplace_enlarge.c
@@ -1,5 +1,5 @@
/* Increase the size of a dynamic array in preparation of an emplace operation.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,11 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dynarray.h>
#include <errno.h>
-#include <malloc-internal.h>
#include <stdlib.h>
#include <string.h>
@@ -52,7 +51,7 @@ __libc_dynarray_emplace_enlarge (struct dynarray_header *list,
}
size_t new_size;
- if (check_mul_overflow_size_t (new_allocated, element_size, &new_size))
+ if (__builtin_mul_overflow (new_allocated, element_size, &new_size))
return false;
void *new_array;
if (list->array == scratch)
diff --git a/malloc/dynarray_finalize.c b/malloc/dynarray_finalize.c
index 21fa0c71d6..611fc01e3d 100644
--- a/malloc/dynarray_finalize.c
+++ b/malloc/dynarray_finalize.c
@@ -1,5 +1,5 @@
/* Copy the dynamically-allocated area to an explicitly-sized heap allocation.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dynarray.h>
#include <stdlib.h>
diff --git a/malloc/dynarray_resize.c b/malloc/dynarray_resize.c
index 0bfca1ba4b..f93df1ccd7 100644
--- a/malloc/dynarray_resize.c
+++ b/malloc/dynarray_resize.c
@@ -1,5 +1,5 @@
/* Increase the size of a dynamic array.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,11 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dynarray.h>
#include <errno.h>
-#include <malloc-internal.h>
#include <stdlib.h>
#include <string.h>
@@ -38,7 +37,7 @@ __libc_dynarray_resize (struct dynarray_header *list, size_t size,
over-allocation here. */
size_t new_size_bytes;
- if (check_mul_overflow_size_t (size, element_size, &new_size_bytes))
+ if (__builtin_mul_overflow (size, element_size, &new_size_bytes))
{
/* Overflow. */
__set_errno (ENOMEM);
diff --git a/malloc/dynarray_resize_clear.c b/malloc/dynarray_resize_clear.c
index e46316f2b4..6cabc0495c 100644
--- a/malloc/dynarray_resize_clear.c
+++ b/malloc/dynarray_resize_clear.c
@@ -1,5 +1,5 @@
/* Increase the size of a dynamic array and clear the new part.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dynarray.h>
#include <stdlib.h>
diff --git a/malloc/hooks.c b/malloc/hooks.c
index ae7305b036..3cb432b97f 100644
--- a/malloc/hooks.c
+++ b/malloc/hooks.c
@@ -1,5 +1,5 @@
/* Malloc implementation for multiple threads without lock contention.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Wolfram Gloger <wg@malloc.de>, 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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
/* What to do if the standard debugging hooks are in place and a
corrupt pointer is detected: do nothing (0), print an error message
@@ -226,8 +226,9 @@ static void *
malloc_check (size_t sz, const void *caller)
{
void *victim;
+ size_t nb;
- if (sz + 1 == 0)
+ if (__builtin_add_overflow (sz, 1, &nb))
{
__set_errno (ENOMEM);
return NULL;
@@ -235,7 +236,7 @@ malloc_check (size_t sz, const void *caller)
__libc_lock_lock (main_arena.mutex);
top_check ();
- victim = _int_malloc (&main_arena, sz + 1);
+ victim = _int_malloc (&main_arena, nb);
__libc_lock_unlock (main_arena.mutex);
return mem2mem_check (victim, sz);
}
@@ -268,8 +269,9 @@ realloc_check (void *oldmem, size_t bytes, const void *caller)
INTERNAL_SIZE_T nb;
void *newmem = 0;
unsigned char *magic_p;
+ size_t rb;
- if (bytes + 1 == 0)
+ if (__builtin_add_overflow (bytes, 1, &rb))
{
__set_errno (ENOMEM);
return NULL;
@@ -289,7 +291,9 @@ realloc_check (void *oldmem, size_t bytes, const void *caller)
malloc_printerr ("realloc(): invalid pointer");
const INTERNAL_SIZE_T oldsize = chunksize (oldp);
- checked_request2size (bytes + 1, nb);
+ if (!checked_request2size (rb, &nb))
+ goto invert;
+
__libc_lock_lock (main_arena.mutex);
if (chunk_is_mmapped (oldp))
@@ -308,7 +312,7 @@ realloc_check (void *oldmem, size_t bytes, const void *caller)
{
/* Must alloc, copy, free. */
top_check ();
- newmem = _int_malloc (&main_arena, bytes + 1);
+ newmem = _int_malloc (&main_arena, rb);
if (newmem)
{
memcpy (newmem, oldmem, oldsize - 2 * SIZE_SZ);
@@ -320,8 +324,6 @@ realloc_check (void *oldmem, size_t bytes, const void *caller)
else
{
top_check ();
- INTERNAL_SIZE_T nb;
- checked_request2size (bytes + 1, nb);
newmem = _int_realloc (&main_arena, oldp, oldsize, nb);
}
@@ -334,6 +336,7 @@ realloc_check (void *oldmem, size_t bytes, const void *caller)
/* mem2chunk_check changed the magic byte in the old chunk.
If newmem is NULL, then the old chunk will still be used though,
so we need to invert that change here. */
+invert:
if (newmem == NULL)
*magic_p ^= 0xFF;
DIAG_POP_NEEDS_COMMENT;
diff --git a/malloc/malloc-hooks.h b/malloc/malloc-hooks.h
index f09d2318f4..c7c9b345b4 100644
--- a/malloc/malloc-hooks.h
+++ b/malloc/malloc-hooks.h
@@ -1,5 +1,5 @@
/* Internal declarations of malloc hooks no longer in the public API.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#ifndef _MALLOC_HOOKS_H
#define _MALLOC_HOOKS_H
diff --git a/malloc/malloc-internal.h b/malloc/malloc-internal.h
index 9cee0fb2d7..9a8f6c0132 100644
--- a/malloc/malloc-internal.h
+++ b/malloc/malloc-internal.h
@@ -1,5 +1,5 @@
/* Internal declarations for malloc, for use within libc.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#ifndef _MALLOC_INTERNAL_H
#define _MALLOC_INTERNAL_H
@@ -74,24 +74,7 @@ void __malloc_fork_unlock_child (void) attribute_hidden;
/* Called as part of the thread shutdown sequence. */
void __malloc_arena_thread_freeres (void) attribute_hidden;
-/* Set *RESULT to LEFT * RIGHT. Return true if the multiplication
- overflowed. */
-static inline bool
-check_mul_overflow_size_t (size_t left, size_t right, size_t *result)
-{
-#if __GNUC__ >= 5
- return __builtin_mul_overflow (left, right, result);
-#else
- /* size_t is unsigned so the behavior on overflow is defined. */
- *result = left * right;
- size_t half_size_t = ((size_t) 1) << (8 * sizeof (size_t) / 2);
- if (__glibc_unlikely ((left | right) >= half_size_t))
- {
- if (__glibc_unlikely (right != 0 && *result / right != left))
- return true;
- }
- return false;
-#endif
-}
+/* Activate a standard set of debugging hooks. */
+void __malloc_check_init (void) attribute_hidden;
#endif /* _MALLOC_INTERNAL_H */
diff --git a/malloc/malloc.c b/malloc/malloc.c
index e247c77b7d..7d7d30bb13 100644
--- a/malloc/malloc.c
+++ b/malloc/malloc.c
@@ -1,5 +1,5 @@
/* Malloc implementation for multiple threads without lock contention.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Wolfram Gloger <wg@malloc.de>
and Doug Lea <dl@cs.oswego.edu>, 2001.
@@ -16,7 +16,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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
/*
This is a version (aka ptmalloc2) of malloc/free/realloc written by
@@ -321,6 +321,10 @@ __malloc_assert (const char *assertion, const char *file, unsigned int line,
/* This is another arbitrary limit, which tunables can change. Each
tcache bin will hold at most this number of chunks. */
# define TCACHE_FILL_COUNT 7
+
+/* Maximum chunks in tcache bins for tunables. This value must fit the range
+ of tcache->counts[] entries, else they may overflow. */
+# define MAX_TCACHE_COUNT UINT16_MAX
#endif
@@ -1187,17 +1191,6 @@ nextchunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
((uintptr_t)(MALLOC_ALIGNMENT == 2 * SIZE_SZ ? (p) : chunk2mem (p)) \
& MALLOC_ALIGN_MASK)
-
-/*
- Check if a request is so large that it would wrap around zero when
- padded and aligned. To simplify some other code, the bound is made
- low enough so that adding MINSIZE will also not wrap around zero.
- */
-
-#define REQUEST_OUT_OF_RANGE(req) \
- ((unsigned long) (req) >= \
- (unsigned long) (INTERNAL_SIZE_T) (-2 * MINSIZE))
-
/* pad request bytes into a usable size -- internal version */
#define request2size(req) \
@@ -1205,21 +1198,18 @@ nextchunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
MINSIZE : \
((req) + SIZE_SZ + MALLOC_ALIGN_MASK) & ~MALLOC_ALIGN_MASK)
-/* Same, except also perform an argument and result check. First, we check
- that the padding done by request2size didn't result in an integer
- overflow. Then we check (using REQUEST_OUT_OF_RANGE) that the resulting
- size isn't so large that a later alignment would lead to another integer
- overflow. */
-#define checked_request2size(req, sz) \
-({ \
- (sz) = request2size (req); \
- if (((sz) < (req)) \
- || REQUEST_OUT_OF_RANGE (sz)) \
- { \
- __set_errno (ENOMEM); \
- return 0; \
- } \
-})
+/* Check if REQ overflows when padded and aligned and if the resulting value
+ is less than PTRDIFF_T. Returns TRUE and the requested size or MINSIZE in
+ case the value is less than MINSIZE on SZ or false if any of the previous
+ check fail. */
+static inline bool
+checked_request2size (size_t req, size_t *sz) __nonnull (1)
+{
+ if (__glibc_unlikely (req > PTRDIFF_MAX))
+ return false;
+ *sz = request2size (req);
+ return true;
+}
/*
--------------- Physical chunk operations ---------------
@@ -1384,39 +1374,6 @@ typedef struct malloc_chunk *mbinptr;
#define first(b) ((b)->fd)
#define last(b) ((b)->bk)
-/* Take a chunk off a bin list */
-#define unlink(AV, P, BK, FD) { \
- if (__builtin_expect (chunksize(P) != prev_size (next_chunk(P)), 0)) \
- malloc_printerr ("corrupted size vs. prev_size"); \
- FD = P->fd; \
- BK = P->bk; \
- if (__builtin_expect (FD->bk != P || BK->fd != P, 0)) \
- malloc_printerr ("corrupted double-linked list"); \
- else { \
- FD->bk = BK; \
- BK->fd = FD; \
- if (!in_smallbin_range (chunksize_nomask (P)) \
- && __builtin_expect (P->fd_nextsize != NULL, 0)) { \
- if (__builtin_expect (P->fd_nextsize->bk_nextsize != P, 0) \
- || __builtin_expect (P->bk_nextsize->fd_nextsize != P, 0)) \
- malloc_printerr ("corrupted double-linked list (not small)"); \
- if (FD->fd_nextsize == NULL) { \
- if (P->fd_nextsize == P) \
- FD->fd_nextsize = FD->bk_nextsize = FD; \
- else { \
- FD->fd_nextsize = P->fd_nextsize; \
- FD->bk_nextsize = P->bk_nextsize; \
- P->fd_nextsize->bk_nextsize = FD; \
- P->bk_nextsize->fd_nextsize = FD; \
- } \
- } else { \
- P->fd_nextsize->bk_nextsize = P->bk_nextsize; \
- P->bk_nextsize->fd_nextsize = P->fd_nextsize; \
- } \
- } \
- } \
-}
-
/*
Indexing
@@ -1489,6 +1446,46 @@ typedef struct malloc_chunk *mbinptr;
#define bin_index(sz) \
((in_smallbin_range (sz)) ? smallbin_index (sz) : largebin_index (sz))
+/* Take a chunk off a bin list. */
+static void
+unlink_chunk (mstate av, mchunkptr p)
+{
+ if (chunksize (p) != prev_size (next_chunk (p)))
+ malloc_printerr ("corrupted size vs. prev_size");
+
+ mchunkptr fd = p->fd;
+ mchunkptr bk = p->bk;
+
+ if (__builtin_expect (fd->bk != p || bk->fd != p, 0))
+ malloc_printerr ("corrupted double-linked list");
+
+ fd->bk = bk;
+ bk->fd = fd;
+ if (!in_smallbin_range (chunksize_nomask (p)) && p->fd_nextsize != NULL)
+ {
+ if (p->fd_nextsize->bk_nextsize != p
+ || p->bk_nextsize->fd_nextsize != p)
+ malloc_printerr ("corrupted double-linked list (not small)");
+
+ if (fd->fd_nextsize == NULL)
+ {
+ if (p->fd_nextsize == p)
+ fd->fd_nextsize = fd->bk_nextsize = fd;
+ else
+ {
+ fd->fd_nextsize = p->fd_nextsize;
+ fd->bk_nextsize = p->bk_nextsize;
+ p->fd_nextsize->bk_nextsize = fd;
+ p->bk_nextsize->fd_nextsize = fd;
+ }
+ }
+ else
+ {
+ p->fd_nextsize->bk_nextsize = p->bk_nextsize;
+ p->bk_nextsize->fd_nextsize = p->fd_nextsize;
+ }
+ }
+}
/*
Unsorted chunks
@@ -1624,7 +1621,7 @@ static INTERNAL_SIZE_T global_max_fast;
#define set_max_fast(s) \
global_max_fast = (((s) == 0) \
- ? SMALLBIN_WIDTH : ((s + SIZE_SZ) & ~MALLOC_ALIGN_MASK))
+ ? MIN_CHUNK_SIZE / 2 : ((s + SIZE_SZ) & ~MALLOC_ALIGN_MASK))
static inline INTERNAL_SIZE_T
get_max_fast (void)
@@ -2810,6 +2807,7 @@ systrim (size_t pad, mstate av)
static void
munmap_chunk (mchunkptr p)
{
+ size_t pagesize = GLRO (dl_pagesize);
INTERNAL_SIZE_T size = chunksize (p);
assert (chunk_is_mmapped (p));
@@ -2819,6 +2817,7 @@ munmap_chunk (mchunkptr p)
if (DUMPED_MAIN_ARENA_CHUNK (p))
return;
+ uintptr_t mem = (uintptr_t) chunk2mem (p);
uintptr_t block = (uintptr_t) p - prev_size (p);
size_t total_size = prev_size (p) + size;
/* Unfortunately we have to do the compilers job by hand here. Normally
@@ -2826,7 +2825,8 @@ munmap_chunk (mchunkptr p)
page size. But gcc does not recognize the optimization possibility
(in the moment at least) so we combine the two values into one before
the bit test. */
- if (__builtin_expect (((block | total_size) & (GLRO (dl_pagesize) - 1)) != 0, 0))
+ if (__glibc_unlikely ((block | total_size) & (pagesize - 1)) != 0
+ || __glibc_unlikely (!powerof2 (mem & (pagesize - 1))))
malloc_printerr ("munmap_chunk(): invalid pointer");
atomic_decrement (&mp_.n_mmaps);
@@ -2849,16 +2849,22 @@ mremap_chunk (mchunkptr p, size_t new_size)
char *cp;
assert (chunk_is_mmapped (p));
- assert (((size + offset) & (GLRO (dl_pagesize) - 1)) == 0);
+
+ uintptr_t block = (uintptr_t) p - offset;
+ uintptr_t mem = (uintptr_t) chunk2mem(p);
+ size_t total_size = offset + size;
+ if (__glibc_unlikely ((block | total_size) & (pagesize - 1)) != 0
+ || __glibc_unlikely (!powerof2 (mem & (pagesize - 1))))
+ malloc_printerr("mremap_chunk(): invalid pointer");
/* Note the extra SIZE_SZ overhead as in mmap_chunk(). */
new_size = ALIGN_UP (new_size + offset + SIZE_SZ, pagesize);
/* No need to remap if the number of pages does not change. */
- if (size + offset == new_size)
+ if (total_size == new_size)
return p;
- cp = (char *) __mremap ((char *) p - offset, size + offset, new_size,
+ cp = (char *) __mremap ((char *) block, total_size, new_size,
MREMAP_MAYMOVE);
if (cp == MAP_FAILED)
@@ -2888,6 +2894,8 @@ mremap_chunk (mchunkptr p, size_t new_size)
typedef struct tcache_entry
{
struct tcache_entry *next;
+ /* This field exists to detect double frees. */
+ struct tcache_perthread_struct *key;
} tcache_entry;
/* There is one of these for each thread, which contains the
@@ -2897,7 +2905,7 @@ typedef struct tcache_entry
time), this is for performance reasons. */
typedef struct tcache_perthread_struct
{
- char counts[TCACHE_MAX_BINS];
+ uint16_t counts[TCACHE_MAX_BINS];
tcache_entry *entries[TCACHE_MAX_BINS];
} tcache_perthread_struct;
@@ -2910,7 +2918,11 @@ static __always_inline void
tcache_put (mchunkptr chunk, size_t tc_idx)
{
tcache_entry *e = (tcache_entry *) chunk2mem (chunk);
- assert (tc_idx < TCACHE_MAX_BINS);
+
+ /* Mark this chunk as "in the tcache" so the test in _int_free will
+ detect a double free. */
+ e->key = tcache;
+
e->next = tcache->entries[tc_idx];
tcache->entries[tc_idx] = e;
++(tcache->counts[tc_idx]);
@@ -2922,10 +2934,9 @@ static __always_inline void *
tcache_get (size_t tc_idx)
{
tcache_entry *e = tcache->entries[tc_idx];
- assert (tc_idx < TCACHE_MAX_BINS);
- assert (tcache->entries[tc_idx] > 0);
tcache->entries[tc_idx] = e->next;
--(tcache->counts[tc_idx]);
+ e->key = NULL;
return (void *) e;
}
@@ -3013,6 +3024,9 @@ __libc_malloc (size_t bytes)
mstate ar_ptr;
void *victim;
+ _Static_assert (PTRDIFF_MAX <= SIZE_MAX / 2,
+ "PTRDIFF_MAX is not more than half of SIZE_MAX");
+
void *(*hook) (size_t, const void *)
= atomic_forced_read (__malloc_hook);
if (__builtin_expect (hook != NULL, 0))
@@ -3020,16 +3034,19 @@ __libc_malloc (size_t bytes)
#if USE_TCACHE
/* int_free also calls request2size, be careful to not pad twice. */
size_t tbytes;
- checked_request2size (bytes, tbytes);
+ if (!checked_request2size (bytes, &tbytes))
+ {
+ __set_errno (ENOMEM);
+ return NULL;
+ }
size_t tc_idx = csize2tidx (tbytes);
MAYBE_INIT_TCACHE ();
DIAG_PUSH_NEEDS_COMMENT;
if (tc_idx < mp_.tcache_bins
- /*&& tc_idx < TCACHE_MAX_BINS*/ /* to appease gcc */
&& tcache
- && tcache->entries[tc_idx] != NULL)
+ && tcache->counts[tc_idx] > 0)
{
return tcache_get (tc_idx);
}
@@ -3157,7 +3174,11 @@ __libc_realloc (void *oldmem, size_t bytes)
&& !DUMPED_MAIN_ARENA_CHUNK (oldp))
malloc_printerr ("realloc(): invalid pointer");
- checked_request2size (bytes, nb);
+ if (!checked_request2size (bytes, &nb))
+ {
+ __set_errno (ENOMEM);
+ return NULL;
+ }
if (chunk_is_mmapped (oldp))
{
@@ -3267,13 +3288,6 @@ _mid_memalign (size_t alignment, size_t bytes, void *address)
return 0;
}
- /* Check for overflow. */
- if (bytes > SIZE_MAX - alignment - MINSIZE)
- {
- __set_errno (ENOMEM);
- return 0;
- }
-
/* Make sure alignment is power of 2. */
if (!powerof2 (alignment))
@@ -3333,14 +3347,16 @@ __libc_pvalloc (size_t bytes)
void *address = RETURN_ADDRESS (0);
size_t pagesize = GLRO (dl_pagesize);
- size_t rounded_bytes = ALIGN_UP (bytes, pagesize);
-
- /* Check for overflow. */
- if (bytes > SIZE_MAX - 2 * pagesize - MINSIZE)
+ size_t rounded_bytes;
+ /* ALIGN_UP with overflow check. */
+ if (__glibc_unlikely (__builtin_add_overflow (bytes,
+ pagesize - 1,
+ &rounded_bytes)))
{
__set_errno (ENOMEM);
return 0;
}
+ rounded_bytes = rounded_bytes & -(pagesize - 1);
return _mid_memalign (pagesize, rounded_bytes, address);
}
@@ -3350,30 +3366,24 @@ __libc_calloc (size_t n, size_t elem_size)
{
mstate av;
mchunkptr oldtop, p;
- INTERNAL_SIZE_T bytes, sz, csz, oldtopsize;
+ INTERNAL_SIZE_T sz, csz, oldtopsize;
void *mem;
unsigned long clearsize;
unsigned long nclears;
INTERNAL_SIZE_T *d;
+ ptrdiff_t bytes;
- /* size_t is unsigned so the behavior on overflow is defined. */
- bytes = n * elem_size;
-#define HALF_INTERNAL_SIZE_T \
- (((INTERNAL_SIZE_T) 1) << (8 * sizeof (INTERNAL_SIZE_T) / 2))
- if (__builtin_expect ((n | elem_size) >= HALF_INTERNAL_SIZE_T, 0))
+ if (__glibc_unlikely (__builtin_mul_overflow (n, elem_size, &bytes)))
{
- if (elem_size != 0 && bytes / elem_size != n)
- {
- __set_errno (ENOMEM);
- return 0;
- }
+ __set_errno (ENOMEM);
+ return NULL;
}
+ sz = bytes;
void *(*hook) (size_t, const void *) =
atomic_forced_read (__malloc_hook);
if (__builtin_expect (hook != NULL, 0))
{
- sz = bytes;
mem = (*hook)(sz, RETURN_ADDRESS (0));
if (mem == 0)
return 0;
@@ -3381,8 +3391,6 @@ __libc_calloc (size_t n, size_t elem_size)
return memset (mem, 0, sz);
}
- sz = bytes;
-
MAYBE_INIT_TCACHE ();
if (SINGLE_THREAD_P)
@@ -3529,12 +3537,16 @@ _int_malloc (mstate av, size_t bytes)
Convert request size to internal form by adding SIZE_SZ bytes
overhead plus possibly more to obtain necessary alignment and/or
to obtain a size of at least MINSIZE, the smallest allocatable
- size. Also, checked_request2size traps (returning 0) request sizes
+ size. Also, checked_request2size returns false for request sizes
that are so large that they wrap around zero when padded and
aligned.
*/
- checked_request2size (bytes, nb);
+ if (!checked_request2size (bytes, &nb))
+ {
+ __set_errno (ENOMEM);
+ return NULL;
+ }
/* There are no usable arenas. Fall back to sysmalloc to get a chunk from
mmap. */
@@ -3716,11 +3728,22 @@ _int_malloc (mstate av, size_t bytes)
while ((victim = unsorted_chunks (av)->bk) != unsorted_chunks (av))
{
bck = victim->bk;
- if (__builtin_expect (chunksize_nomask (victim) <= 2 * SIZE_SZ, 0)
- || __builtin_expect (chunksize_nomask (victim)
- > av->system_mem, 0))
- malloc_printerr ("malloc(): memory corruption");
size = chunksize (victim);
+ mchunkptr next = chunk_at_offset (victim, size);
+
+ if (__glibc_unlikely (size <= 2 * SIZE_SZ)
+ || __glibc_unlikely (size > av->system_mem))
+ malloc_printerr ("malloc(): invalid size (unsorted)");
+ if (__glibc_unlikely (chunksize_nomask (next) < 2 * SIZE_SZ)
+ || __glibc_unlikely (chunksize_nomask (next) > av->system_mem))
+ malloc_printerr ("malloc(): invalid next size (unsorted)");
+ if (__glibc_unlikely ((prev_size (next) & ~(SIZE_BITS)) != size))
+ malloc_printerr ("malloc(): mismatching next->prev_size (unsorted)");
+ if (__glibc_unlikely (bck->fd != victim)
+ || __glibc_unlikely (victim->fd != unsorted_chunks (av)))
+ malloc_printerr ("malloc(): unsorted double linked list corrupted");
+ if (__glibc_unlikely (prev_inuse (next)))
+ malloc_printerr ("malloc(): invalid next->prev_inuse (unsorted)");
/*
If a small request, try to use last remainder if it is the
@@ -3841,10 +3864,14 @@ _int_malloc (mstate av, size_t bytes)
{
victim->fd_nextsize = fwd;
victim->bk_nextsize = fwd->bk_nextsize;
+ if (__glibc_unlikely (fwd->bk_nextsize->fd_nextsize != fwd))
+ malloc_printerr ("malloc(): largebin double linked list corrupted (nextsize)");
fwd->bk_nextsize = victim;
victim->bk_nextsize->fd_nextsize = victim;
}
bck = fwd->bk;
+ if (bck->fd != fwd)
+ malloc_printerr ("malloc(): largebin double linked list corrupted (bk)");
}
}
else
@@ -3909,7 +3936,7 @@ _int_malloc (mstate av, size_t bytes)
victim = victim->fd;
remainder_size = size - nb;
- unlink (av, victim, bck, fwd);
+ unlink_chunk (av, victim);
/* Exhaust */
if (remainder_size < MINSIZE)
@@ -4011,7 +4038,7 @@ _int_malloc (mstate av, size_t bytes)
remainder_size = size - nb;
/* unlink */
- unlink (av, victim, bck, fwd);
+ unlink_chunk (av, victim);
/* Exhaust */
if (remainder_size < MINSIZE)
@@ -4076,6 +4103,9 @@ _int_malloc (mstate av, size_t bytes)
victim = av->top;
size = chunksize (victim);
+ if (__glibc_unlikely (size > av->system_mem))
+ malloc_printerr ("malloc(): corrupted top size");
+
if ((unsigned long) (size) >= (unsigned long) (nb + MINSIZE))
{
remainder_size = size - nb;
@@ -4151,13 +4181,33 @@ _int_free (mstate av, mchunkptr p, int have_lock)
#if USE_TCACHE
{
size_t tc_idx = csize2tidx (size);
-
- if (tcache
- && tc_idx < mp_.tcache_bins
- && tcache->counts[tc_idx] < mp_.tcache_count)
+ if (tcache != NULL && tc_idx < mp_.tcache_bins)
{
- tcache_put (p, tc_idx);
- return;
+ /* Check to see if it's already in the tcache. */
+ tcache_entry *e = (tcache_entry *) chunk2mem (p);
+
+ /* This test succeeds on double free. However, we don't 100%
+ trust it (it also matches random payload data at a 1 in
+ 2^<size_t> chance), so verify it's not an unlikely
+ coincidence before aborting. */
+ if (__glibc_unlikely (e->key == tcache))
+ {
+ tcache_entry *tmp;
+ LIBC_PROBE (memory_tcache_double_free, 2, e, tc_idx);
+ for (tmp = tcache->entries[tc_idx];
+ tmp;
+ tmp = tmp->next)
+ if (tmp == e)
+ malloc_printerr ("free(): double free detected in tcache 2");
+ /* If we get here, it was a coincidence. We've wasted a
+ few cycles, but don't abort. */
+ }
+
+ if (tcache->counts[tc_idx] < mp_.tcache_count)
+ {
+ tcache_put (p, tc_idx);
+ return;
+ }
}
}
#endif
@@ -4278,7 +4328,9 @@ _int_free (mstate av, mchunkptr p, int have_lock)
prevsize = prev_size (p);
size += prevsize;
p = chunk_at_offset(p, -((long) prevsize));
- unlink(av, p, bck, fwd);
+ if (__glibc_unlikely (chunksize(p) != prevsize))
+ malloc_printerr ("corrupted size vs. prev_size while consolidating");
+ unlink_chunk (av, p);
}
if (nextchunk != av->top) {
@@ -4287,7 +4339,7 @@ _int_free (mstate av, mchunkptr p, int have_lock)
/* consolidate forward */
if (!nextinuse) {
- unlink(av, nextchunk, bck, fwd);
+ unlink_chunk (av, nextchunk);
size += nextsize;
} else
clear_inuse_bit_at_offset(nextchunk, 0);
@@ -4400,8 +4452,6 @@ static void malloc_consolidate(mstate av)
INTERNAL_SIZE_T nextsize;
INTERNAL_SIZE_T prevsize;
int nextinuse;
- mchunkptr bck;
- mchunkptr fwd;
atomic_store_relaxed (&av->have_fastchunks, false);
@@ -4439,7 +4489,9 @@ static void malloc_consolidate(mstate av)
prevsize = prev_size (p);
size += prevsize;
p = chunk_at_offset(p, -((long) prevsize));
- unlink(av, p, bck, fwd);
+ if (__glibc_unlikely (chunksize(p) != prevsize))
+ malloc_printerr ("corrupted size vs. prev_size in fastbins");
+ unlink_chunk (av, p);
}
if (nextchunk != av->top) {
@@ -4447,7 +4499,7 @@ static void malloc_consolidate(mstate av)
if (!nextinuse) {
size += nextsize;
- unlink(av, nextchunk, bck, fwd);
+ unlink_chunk (av, nextchunk);
} else
clear_inuse_bit_at_offset(nextchunk, 0);
@@ -4495,14 +4547,6 @@ _int_realloc(mstate av, mchunkptr oldp, INTERNAL_SIZE_T oldsize,
mchunkptr remainder; /* extra space at end of newp */
unsigned long remainder_size; /* its size */
- mchunkptr bck; /* misc temp for linking */
- mchunkptr fwd; /* misc temp for linking */
-
- unsigned long copysize; /* bytes to copy */
- unsigned int ncopies; /* INTERNAL_SIZE_T words to copy */
- INTERNAL_SIZE_T* s; /* copy source */
- INTERNAL_SIZE_T* d; /* copy destination */
-
/* oldmem size */
if (__builtin_expect (chunksize_nomask (oldp) <= 2 * SIZE_SZ, 0)
|| __builtin_expect (oldsize >= av->system_mem, 0))
@@ -4547,7 +4591,7 @@ _int_realloc(mstate av, mchunkptr oldp, INTERNAL_SIZE_T oldsize,
(unsigned long) (nb))
{
newp = oldp;
- unlink (av, next, bck, fwd);
+ unlink_chunk (av, next);
}
/* allocate, copy, free */
@@ -4570,43 +4614,7 @@ _int_realloc(mstate av, mchunkptr oldp, INTERNAL_SIZE_T oldsize,
}
else
{
- /*
- Unroll copy of <= 36 bytes (72 if 8byte sizes)
- We know that contents have an odd number of
- INTERNAL_SIZE_T-sized words; minimally 3.
- */
-
- copysize = oldsize - SIZE_SZ;
- s = (INTERNAL_SIZE_T *) (chunk2mem (oldp));
- d = (INTERNAL_SIZE_T *) (newmem);
- ncopies = copysize / sizeof (INTERNAL_SIZE_T);
- assert (ncopies >= 3);
-
- if (ncopies > 9)
- memcpy (d, s, copysize);
-
- else
- {
- *(d + 0) = *(s + 0);
- *(d + 1) = *(s + 1);
- *(d + 2) = *(s + 2);
- if (ncopies > 4)
- {
- *(d + 3) = *(s + 3);
- *(d + 4) = *(s + 4);
- if (ncopies > 6)
- {
- *(d + 5) = *(s + 5);
- *(d + 6) = *(s + 6);
- if (ncopies > 8)
- {
- *(d + 7) = *(s + 7);
- *(d + 8) = *(s + 8);
- }
- }
- }
- }
-
+ memcpy (newmem, chunk2mem (oldp), oldsize - SIZE_SZ);
_int_free (av, oldp, 1);
check_inuse_chunk (av, newp);
return chunk2mem (newp);
@@ -4660,21 +4668,17 @@ _int_memalign (mstate av, size_t alignment, size_t bytes)
- checked_request2size (bytes, nb);
+ if (!checked_request2size (bytes, &nb))
+ {
+ __set_errno (ENOMEM);
+ return NULL;
+ }
/*
Strategy: find a spot within that chunk that meets the alignment
request, and then possibly free the leading and trailing space.
*/
-
- /* Check for overflow. */
- if (nb > SIZE_MAX - alignment - MINSIZE)
- {
- __set_errno (ENOMEM);
- return 0;
- }
-
/* Call malloc with worst case padding to hit alignment. */
m = (char *) (_int_malloc (av, nb + alignment + MINSIZE));
@@ -5003,8 +5007,7 @@ __malloc_stats (void)
/*
------------------------------ mallopt ------------------------------
*/
-static inline int
-__always_inline
+static __always_inline int
do_set_trim_threshold (size_t value)
{
LIBC_PROBE (memory_mallopt_trim_threshold, 3, value, mp_.trim_threshold,
@@ -5014,8 +5017,7 @@ do_set_trim_threshold (size_t value)
return 1;
}
-static inline int
-__always_inline
+static __always_inline int
do_set_top_pad (size_t value)
{
LIBC_PROBE (memory_mallopt_top_pad, 3, value, mp_.top_pad,
@@ -5025,8 +5027,7 @@ do_set_top_pad (size_t value)
return 1;
}
-static inline int
-__always_inline
+static __always_inline int
do_set_mmap_threshold (size_t value)
{
/* Forbid setting the threshold too high. */
@@ -5041,8 +5042,7 @@ do_set_mmap_threshold (size_t value)
return 0;
}
-static inline int
-__always_inline
+static __always_inline int
do_set_mmaps_max (int32_t value)
{
LIBC_PROBE (memory_mallopt_mmap_max, 3, value, mp_.n_mmaps_max,
@@ -5052,15 +5052,13 @@ do_set_mmaps_max (int32_t value)
return 1;
}
-static inline int
-__always_inline
+static __always_inline int
do_set_mallopt_check (int32_t value)
{
return 1;
}
-static inline int
-__always_inline
+static __always_inline int
do_set_perturb_byte (int32_t value)
{
LIBC_PROBE (memory_mallopt_perturb, 2, value, perturb_byte);
@@ -5068,8 +5066,7 @@ do_set_perturb_byte (int32_t value)
return 1;
}
-static inline int
-__always_inline
+static __always_inline int
do_set_arena_test (size_t value)
{
LIBC_PROBE (memory_mallopt_arena_test, 2, value, mp_.arena_test);
@@ -5077,8 +5074,7 @@ do_set_arena_test (size_t value)
return 1;
}
-static inline int
-__always_inline
+static __always_inline int
do_set_arena_max (size_t value)
{
LIBC_PROBE (memory_mallopt_arena_max, 2, value, mp_.arena_max);
@@ -5087,30 +5083,32 @@ do_set_arena_max (size_t value)
}
#if USE_TCACHE
-static inline int
-__always_inline
+static __always_inline int
do_set_tcache_max (size_t value)
{
- if (value >= 0 && value <= MAX_TCACHE_SIZE)
+ if (value <= MAX_TCACHE_SIZE)
{
LIBC_PROBE (memory_tunable_tcache_max_bytes, 2, value, mp_.tcache_max_bytes);
mp_.tcache_max_bytes = value;
mp_.tcache_bins = csize2tidx (request2size(value)) + 1;
+ return 1;
}
- return 1;
+ return 0;
}
-static inline int
-__always_inline
+static __always_inline int
do_set_tcache_count (size_t value)
{
- LIBC_PROBE (memory_tunable_tcache_count, 2, value, mp_.tcache_count);
- mp_.tcache_count = value;
- return 1;
+ if (value <= MAX_TCACHE_COUNT)
+ {
+ LIBC_PROBE (memory_tunable_tcache_count, 2, value, mp_.tcache_count);
+ mp_.tcache_count = value;
+ return 1;
+ }
+ return 0;
}
-static inline int
-__always_inline
+static __always_inline int
do_set_tcache_unsorted_limit (size_t value)
{
LIBC_PROBE (memory_tunable_tcache_unsorted_limit, 2, value, mp_.tcache_unsorted_limit);
@@ -5119,6 +5117,19 @@ do_set_tcache_unsorted_limit (size_t value)
}
#endif
+static inline int
+__always_inline
+do_set_mxfast (size_t value)
+{
+ if (value <= MAX_FAST_SIZE)
+ {
+ LIBC_PROBE (memory_mallopt_mxfast, 2, value, get_max_fast ());
+ set_max_fast (value);
+ return 1;
+ }
+ return 0;
+}
+
int
__libc_mallopt (int param_number, int value)
{
@@ -5135,24 +5146,24 @@ __libc_mallopt (int param_number, int value)
(see definition of set_max_fast). */
malloc_consolidate (av);
+ /* Many of these helper functions take a size_t. We do not worry
+ about overflow here, because negative int values will wrap to
+ very large size_t values and the helpers have sufficient range
+ checking for such conversions. Many of these helpers are also
+ used by the tunables macros in arena.c. */
+
switch (param_number)
{
case M_MXFAST:
- if (value >= 0 && value <= MAX_FAST_SIZE)
- {
- LIBC_PROBE (memory_mallopt_mxfast, 2, value, get_max_fast ());
- set_max_fast (value);
- }
- else
- res = 0;
+ res = do_set_mxfast (value);
break;
case M_TRIM_THRESHOLD:
- do_set_trim_threshold (value);
+ res = do_set_trim_threshold (value);
break;
case M_TOP_PAD:
- do_set_top_pad (value);
+ res = do_set_top_pad (value);
break;
case M_MMAP_THRESHOLD:
@@ -5160,25 +5171,25 @@ __libc_mallopt (int param_number, int value)
break;
case M_MMAP_MAX:
- do_set_mmaps_max (value);
+ res = do_set_mmaps_max (value);
break;
case M_CHECK_ACTION:
- do_set_mallopt_check (value);
+ res = do_set_mallopt_check (value);
break;
case M_PERTURB:
- do_set_perturb_byte (value);
+ res = do_set_perturb_byte (value);
break;
case M_ARENA_TEST:
if (value > 0)
- do_set_arena_test (value);
+ res = do_set_arena_test (value);
break;
case M_ARENA_MAX:
if (value > 0)
- do_set_arena_max (value);
+ res = do_set_arena_max (value);
break;
}
__libc_lock_unlock (av->mutex);
@@ -5410,6 +5421,12 @@ __malloc_info (int options, FILE *fp)
__libc_lock_lock (ar_ptr->mutex);
+ /* Account for top chunk. The top-most available chunk is
+ treated specially and is never in any bin. See "initial_top"
+ comments. */
+ avail = chunksize (ar_ptr->top);
+ nblocks = 1; /* Top always exists. */
+
for (size_t i = 0; i < NFASTBINS; ++i)
{
mchunkptr p = fastbin (ar_ptr, i);
@@ -5495,7 +5512,7 @@ __malloc_info (int options, FILE *fp)
for (size_t i = 0; i < nsizes; ++i)
if (sizes[i].count != 0 && i != NFASTBINS)
- fprintf (fp, " \
+ fprintf (fp, "\
<size from=\"%zu\" to=\"%zu\" total=\"%zu\" count=\"%zu\"/>\n",
sizes[i].from, sizes[i].to, sizes[i].total, sizes[i].count);
diff --git a/malloc/malloc.h b/malloc/malloc.h
index 3e7c447be1..ba21b6907d 100644
--- a/malloc/malloc.h
+++ b/malloc/malloc.h
@@ -1,5 +1,5 @@
/* Prototypes and definition for malloc implementation.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MALLOC_H
#define _MALLOC_H 1
@@ -35,11 +35,12 @@
__BEGIN_DECLS
/* Allocate SIZE bytes of memory. */
-extern void *malloc (size_t __size) __THROW __attribute_malloc__ __wur;
+extern void *malloc (size_t __size) __THROW __attribute_malloc__
+ __attribute_alloc_size__ ((1)) __wur;
/* Allocate NMEMB elements of SIZE bytes each, all initialized to 0. */
extern void *calloc (size_t __nmemb, size_t __size)
-__THROW __attribute_malloc__ __wur;
+__THROW __attribute_malloc__ __attribute_alloc_size__ ((1, 2)) __wur;
/* Re-allocate the previously allocated block in __ptr, making the new
block SIZE bytes long. */
@@ -47,7 +48,7 @@ __THROW __attribute_malloc__ __wur;
the same pointer that was passed to it, aliasing needs to be allowed
between objects pointed by the old and new pointers. */
extern void *realloc (void *__ptr, size_t __size)
-__THROW __attribute_warn_unused_result__;
+__THROW __attribute_warn_unused_result__ __attribute_alloc_size__ ((2));
/* Re-allocate the previously allocated block in PTR, making the new
block large enough for NMEMB elements of SIZE bytes each. */
@@ -55,21 +56,23 @@ __THROW __attribute_warn_unused_result__;
the same pointer that was passed to it, aliasing needs to be allowed
between objects pointed by the old and new pointers. */
extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size)
-__THROW __attribute_warn_unused_result__;
+__THROW __attribute_warn_unused_result__ __attribute_alloc_size__ ((2, 3));
/* Free a block allocated by `malloc', `realloc' or `calloc'. */
extern void free (void *__ptr) __THROW;
/* Allocate SIZE bytes allocated to ALIGNMENT bytes. */
extern void *memalign (size_t __alignment, size_t __size)
-__THROW __attribute_malloc__ __wur;
+__THROW __attribute_malloc__ __attribute_alloc_size__ ((2)) __wur;
/* Allocate SIZE bytes on a page boundary. */
-extern void *valloc (size_t __size) __THROW __attribute_malloc__ __wur;
+extern void *valloc (size_t __size) __THROW __attribute_malloc__
+ __attribute_alloc_size__ ((1)) __wur;
/* Equivalent to valloc(minimum-page-that-holds(n)), that is, round up
__size to nearest pagesize. */
-extern void *pvalloc (size_t __size) __THROW __attribute_malloc__ __wur;
+extern void *pvalloc (size_t __size) __THROW __attribute_malloc__
+ __attribute_alloc_size__ ((1)) __wur;
/* Underlying allocation function; successive calls should return
contiguous pieces of memory. */
@@ -156,9 +159,6 @@ extern void *(*__MALLOC_HOOK_VOLATILE __memalign_hook)(size_t __alignment,
__MALLOC_DEPRECATED;
extern void (*__MALLOC_HOOK_VOLATILE __after_morecore_hook) (void);
-/* Activate a standard set of debugging hooks. */
-extern void __malloc_check_init (void) __THROW __MALLOC_DEPRECATED;
-
__END_DECLS
#endif /* malloc.h */
diff --git a/malloc/mcheck-init.c b/malloc/mcheck-init.c
index 92cb80ff2c..c6b8c73ae8 100644
--- a/malloc/mcheck-init.c
+++ b/malloc/mcheck-init.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* The object of this file should be installed as libmcheck.a,
so one can do -lmcheck to turn on mcheck. */
diff --git a/malloc/mcheck.c b/malloc/mcheck.c
index dc04a6391a..521ff4bf60 100644
--- a/malloc/mcheck.c
+++ b/malloc/mcheck.c
@@ -1,5 +1,5 @@
/* Standard debugging hooks for `malloc'.
- Copyright (C) 1990-2018 Free Software Foundation, Inc.
+ Copyright (C) 1990-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written May 1989 by Mike Haertel.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MALLOC_INTERNAL
# define _MALLOC_INTERNAL
diff --git a/malloc/mcheck.h b/malloc/mcheck.h
index 7d3b3f07ab..923c5a5ae6 100644
--- a/malloc/mcheck.h
+++ b/malloc/mcheck.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MCHECK_H
#define _MCHECK_H 1
diff --git a/malloc/memusage.c b/malloc/memusage.c
index 9151c80121..8779c4b66d 100644
--- a/malloc/memusage.c
+++ b/malloc/memusage.c
@@ -1,5 +1,5 @@
/* Profile heap and stack memory usage of running program.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <atomic.h>
diff --git a/malloc/memusage.sh b/malloc/memusage.sh
index bc478e89fe..8af9c956bf 100755
--- a/malloc/memusage.sh
+++ b/malloc/memusage.sh
@@ -1,5 +1,5 @@
#! @BASH@
-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
+# Copyright (C) 1999-2019 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# Contributed by Ulrich Drepper <drepper@gnu.org>, 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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
memusageso='@SLIBDIR@/libmemusage.so'
memusagestat='@BINDIR@/memusagestat'
@@ -71,7 +71,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.
-" "2018"
+" "2019"
printf $"Written by %s.
" "Ulrich Drepper"
exit 0
diff --git a/malloc/memusagestat.c b/malloc/memusagestat.c
index d9b48e615d..62da3e4f16 100644
--- a/malloc/memusagestat.c
+++ b/malloc/memusagestat.c
@@ -1,5 +1,5 @@
/* Generate graphic from memory profiling data.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#define _FILE_OFFSET_BITS 64
@@ -346,8 +346,8 @@ main (int argc, char *argv[])
if (cnt != cnt2)
gdImageDashedLine (im_out, 40, ysize - 20 - cnt2, xsize - 40,
ysize - 20 - cnt2, green);
- snprintf (buf, sizeof (buf), stack_format, maxsize_stack / 4 * line /
- stack_scale);
+ snprintf (buf, sizeof (buf), stack_format,
+ maxsize_stack / 4 * line / stack_scale);
gdImageString (im_out, gdFontSmall, xsize - 37, ysize - 26 - cnt2,
(unsigned char *) buf, green);
}
@@ -582,6 +582,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\
-"), "2018");
+"), "2019");
fprintf (stream, gettext ("Written by %s.\n"), "Ulrich Drepper");
}
diff --git a/malloc/morecore.c b/malloc/morecore.c
index 165de7e386..59d3824a0e 100644
--- a/malloc/morecore.c
+++ b/malloc/morecore.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MALLOC_INTERNAL
# define _MALLOC_INTERNAL
diff --git a/malloc/mtrace.c b/malloc/mtrace.c
index 9064f209ec..707f998815 100644
--- a/malloc/mtrace.c
+++ b/malloc/mtrace.c
@@ -1,5 +1,5 @@
/* More debugging hooks for `malloc'.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written April 2, 1991 by John Gilmore of Cygnus Support.
Based on mcheck.c by Mike Haertel.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MALLOC_INTERNAL
# define _MALLOC_INTERNAL
@@ -121,6 +121,41 @@ lock_and_info (const void *caller, Dl_info *mem)
return res;
}
+static void tr_freehook (void *, const void *);
+static void * tr_mallochook (size_t, const void *);
+static void * tr_reallochook (void *, size_t, const void *);
+static void * tr_memalignhook (size_t, size_t, const void *);
+
+/* Set all the default non-trace hooks. */
+static __always_inline void
+set_default_hooks (void)
+{
+ __free_hook = tr_old_free_hook;
+ __malloc_hook = tr_old_malloc_hook;
+ __realloc_hook = tr_old_realloc_hook;
+ __memalign_hook = tr_old_memalign_hook;
+}
+
+/* Set all of the tracing hooks used for mtrace. */
+static __always_inline void
+set_trace_hooks (void)
+{
+ __free_hook = tr_freehook;
+ __malloc_hook = tr_mallochook;
+ __realloc_hook = tr_reallochook;
+ __memalign_hook = tr_memalignhook;
+}
+
+/* Save the current set of hooks as the default hooks. */
+static __always_inline void
+save_default_hooks (void)
+{
+ tr_old_free_hook = __free_hook;
+ tr_old_malloc_hook = __malloc_hook;
+ tr_old_realloc_hook = __realloc_hook;
+ tr_old_memalign_hook = __memalign_hook;
+}
+
static void
tr_freehook (void *ptr, const void *caller)
{
@@ -138,12 +173,12 @@ tr_freehook (void *ptr, const void *caller)
tr_break ();
__libc_lock_lock (lock);
}
- __free_hook = tr_old_free_hook;
+ set_default_hooks ();
if (tr_old_free_hook != NULL)
(*tr_old_free_hook)(ptr, caller);
else
free (ptr);
- __free_hook = tr_freehook;
+ set_trace_hooks ();
__libc_lock_unlock (lock);
}
@@ -155,12 +190,12 @@ tr_mallochook (size_t size, const void *caller)
Dl_info mem;
Dl_info *info = lock_and_info (caller, &mem);
- __malloc_hook = tr_old_malloc_hook;
+ set_default_hooks ();
if (tr_old_malloc_hook != NULL)
hdr = (void *) (*tr_old_malloc_hook)(size, caller);
else
hdr = (void *) malloc (size);
- __malloc_hook = tr_mallochook;
+ set_trace_hooks ();
tr_where (caller, info);
/* We could be printing a NULL here; that's OK. */
@@ -185,16 +220,12 @@ tr_reallochook (void *ptr, size_t size, const void *caller)
Dl_info mem;
Dl_info *info = lock_and_info (caller, &mem);
- __free_hook = tr_old_free_hook;
- __malloc_hook = tr_old_malloc_hook;
- __realloc_hook = tr_old_realloc_hook;
+ set_default_hooks ();
if (tr_old_realloc_hook != NULL)
hdr = (void *) (*tr_old_realloc_hook)(ptr, size, caller);
else
hdr = (void *) realloc (ptr, size);
- __free_hook = tr_freehook;
- __malloc_hook = tr_mallochook;
- __realloc_hook = tr_reallochook;
+ set_trace_hooks ();
tr_where (caller, info);
if (hdr == NULL)
@@ -230,14 +261,12 @@ tr_memalignhook (size_t alignment, size_t size, const void *caller)
Dl_info mem;
Dl_info *info = lock_and_info (caller, &mem);
- __memalign_hook = tr_old_memalign_hook;
- __malloc_hook = tr_old_malloc_hook;
+ set_default_hooks ();
if (tr_old_memalign_hook != NULL)
hdr = (void *) (*tr_old_memalign_hook)(alignment, size, caller);
else
hdr = (void *) memalign (alignment, size);
- __memalign_hook = tr_memalignhook;
- __malloc_hook = tr_mallochook;
+ set_trace_hooks ();
tr_where (caller, info);
/* We could be printing a NULL here; that's OK. */
@@ -305,14 +334,8 @@ mtrace (void)
malloc_trace_buffer = mtb;
setvbuf (mallstream, malloc_trace_buffer, _IOFBF, TRACE_BUFFER_SIZE);
fprintf (mallstream, "= Start\n");
- tr_old_free_hook = __free_hook;
- __free_hook = tr_freehook;
- tr_old_malloc_hook = __malloc_hook;
- __malloc_hook = tr_mallochook;
- tr_old_realloc_hook = __realloc_hook;
- __realloc_hook = tr_reallochook;
- tr_old_memalign_hook = __memalign_hook;
- __memalign_hook = tr_memalignhook;
+ save_default_hooks ();
+ set_trace_hooks ();
#ifdef _LIBC
if (!added_atexit_handler)
{
@@ -338,10 +361,7 @@ muntrace (void)
file. */
FILE *f = mallstream;
mallstream = NULL;
- __free_hook = tr_old_free_hook;
- __malloc_hook = tr_old_malloc_hook;
- __realloc_hook = tr_old_realloc_hook;
- __memalign_hook = tr_old_memalign_hook;
+ set_default_hooks ();
fprintf (f, "= End\n");
fclose (f);
diff --git a/malloc/mtrace.pl b/malloc/mtrace.pl
index fe9f546000..909c0b1262 100644
--- a/malloc/mtrace.pl
+++ b/malloc/mtrace.pl
@@ -1,7 +1,7 @@
#! @PERL@
eval "exec @PERL@ -S $0 $@"
if 0;
-# Copyright (C) 1997-2018 Free Software Foundation, Inc.
+# Copyright (C) 1997-2019 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# Contributed by Ulrich Drepper <drepper@gnu.org>, 1997.
# Based on the mtrace.awk script.
@@ -18,7 +18,7 @@ eval "exec @PERL@ -S $0 $@"
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
$VERSION = "@VERSION@";
$PKGVERSION = "@PKGVERSION@";
@@ -45,7 +45,7 @@ arglist: while (@ARGV) {
$ARGV[0] eq "--vers" || $ARGV[0] eq "--versi" ||
$ARGV[0] eq "--versio" || $ARGV[0] eq "--version") {
print "mtrace $PKGVERSION$VERSION\n";
- print "Copyright (C) 2018 Free Software Foundation, Inc.\n";
+ print "Copyright (C) 2019 Free Software Foundation, Inc.\n";
print "This is free software; see the source for copying conditions. There is NO\n";
print "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n";
print "Written by Ulrich Drepper <drepper\@gnu.org>\n";
diff --git a/malloc/obstack.c b/malloc/obstack.c
index 05ad7e962c..3f7536573b 100644
--- a/malloc/obstack.c
+++ b/malloc/obstack.c
@@ -1,5 +1,5 @@
/* obstack.c - subroutines used implicitly by object stack macros
- Copyright (C) 1988-2018 Free Software Foundation, Inc.
+ Copyright (C) 1988-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifdef _LIBC
diff --git a/malloc/obstack.h b/malloc/obstack.h
index 998e4f49f8..b5a196aace 100644
--- a/malloc/obstack.h
+++ b/malloc/obstack.h
@@ -1,5 +1,5 @@
/* obstack.h - object stack macros
- Copyright (C) 1988-2018 Free Software Foundation, Inc.
+ Copyright (C) 1988-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Summary:
diff --git a/malloc/reallocarray.c b/malloc/reallocarray.c
index 319eccd21f..6cd39bd60e 100644
--- a/malloc/reallocarray.c
+++ b/malloc/reallocarray.c
@@ -1,5 +1,5 @@
/* Change the size of an allocated block.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,23 +14,21 @@
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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <malloc.h>
-#include <malloc/malloc-internal.h>
void *
__libc_reallocarray (void *optr, size_t nmemb, size_t elem_size)
{
size_t bytes;
- if (check_mul_overflow_size_t (nmemb, elem_size, &bytes))
+ if (__builtin_mul_overflow (nmemb, elem_size, &bytes))
{
__set_errno (ENOMEM);
return 0;
}
- else
- return realloc (optr, bytes);
+ return realloc (optr, bytes);
}
libc_hidden_def (__libc_reallocarray)
diff --git a/malloc/scratch_buffer_grow.c b/malloc/scratch_buffer_grow.c
index bb45323176..7179c6e4d7 100644
--- a/malloc/scratch_buffer_grow.c
+++ b/malloc/scratch_buffer_grow.c
@@ -1,5 +1,5 @@
/* Variable-sized buffer with on-stack default allocation.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LIBC
# include <libc-config.h>
diff --git a/malloc/scratch_buffer_grow_preserve.c b/malloc/scratch_buffer_grow_preserve.c
index 288ce9067d..62fcc656b6 100644
--- a/malloc/scratch_buffer_grow_preserve.c
+++ b/malloc/scratch_buffer_grow_preserve.c
@@ -1,5 +1,5 @@
/* Variable-sized buffer with on-stack default allocation.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LIBC
# include <libc-config.h>
diff --git a/malloc/scratch_buffer_set_array_size.c b/malloc/scratch_buffer_set_array_size.c
index 1f4a203b61..dceb69aca1 100644
--- a/malloc/scratch_buffer_set_array_size.c
+++ b/malloc/scratch_buffer_set_array_size.c
@@ -1,5 +1,5 @@
/* Variable-sized buffer with on-stack default allocation.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LIBC
# include <libc-config.h>
diff --git a/malloc/set-freeres.c b/malloc/set-freeres.c
index cda368479f..7a0bc607df 100644
--- a/malloc/set-freeres.c
+++ b/malloc/set-freeres.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <atomic.h>
#include <stdlib.h>
diff --git a/malloc/thread-freeres.c b/malloc/thread-freeres.c
index a63b6c93f3..8ab27e8d4f 100644
--- a/malloc/thread-freeres.c
+++ b/malloc/thread-freeres.c
@@ -1,5 +1,5 @@
/* Free resources stored in thread-local variables on thread exit.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libc-internal.h>
#include <malloc-internal.h>
diff --git a/malloc/tst-alloc_buffer.c b/malloc/tst-alloc_buffer.c
index 1a2d5636b0..cb0667e9e9 100644
--- a/malloc/tst-alloc_buffer.c
+++ b/malloc/tst-alloc_buffer.c
@@ -1,5 +1,5 @@
/* Tests for struct alloc_buffer.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <arpa/inet.h>
#include <alloc_buffer.h>
diff --git a/malloc/tst-calloc.c b/malloc/tst-calloc.c
index f014ea223c..e455f414b0 100644
--- a/malloc/tst-calloc.c
+++ b/malloc/tst-calloc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <error.h>
@@ -22,6 +22,7 @@
#include <malloc.h>
#include <stdlib.h>
#include <stdio.h>
+#include <libc-diag.h>
/* Number of samples per size. */
@@ -95,12 +96,16 @@ static void
null_test (void)
{
/* If the size is 0 the result is implementation defined. Just make
- sure the program doesn't crash. */
+ sure the program doesn't crash. The result of calloc is
+ deliberately ignored, so do not warn about that. */
+ DIAG_PUSH_NEEDS_COMMENT;
+ DIAG_IGNORE_NEEDS_COMMENT (10, "-Wunused-result");
calloc (0, 0);
calloc (0, UINT_MAX);
calloc (UINT_MAX, 0);
calloc (0, ~((size_t) 0));
calloc (~((size_t) 0), 0);
+ DIAG_POP_NEEDS_COMMENT;
}
diff --git a/malloc/tst-dynarray-at-fail.c b/malloc/tst-dynarray-at-fail.c
index d693c2358e..75c699c6ac 100644
--- a/malloc/tst-dynarray-at-fail.c
+++ b/malloc/tst-dynarray-at-fail.c
@@ -1,5 +1,5 @@
/* Test reporting of out-of-bounds access for dynamic arrays.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "tst-dynarray-shared.h"
diff --git a/malloc/tst-dynarray-fail.c b/malloc/tst-dynarray-fail.c
index 1190524e2d..4475fe08ae 100644
--- a/malloc/tst-dynarray-fail.c
+++ b/malloc/tst-dynarray-fail.c
@@ -1,5 +1,5 @@
/* Test allocation failures with dynamic arrays.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This test is separate from tst-dynarray because it cannot run under
valgrind. */
diff --git a/malloc/tst-dynarray-shared.h b/malloc/tst-dynarray-shared.h
index f7315d012c..1668a476e7 100644
--- a/malloc/tst-dynarray-shared.h
+++ b/malloc/tst-dynarray-shared.h
@@ -1,5 +1,5 @@
/* Shared definitions for dynarray tests.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
diff --git a/malloc/tst-dynarray.c b/malloc/tst-dynarray.c
index 0a5716b0ec..0c07fc86d3 100644
--- a/malloc/tst-dynarray.c
+++ b/malloc/tst-dynarray.c
@@ -1,5 +1,5 @@
/* Test for dynamic arrays.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "tst-dynarray-shared.h"
diff --git a/malloc/tst-interpose-aux-nothread.c b/malloc/tst-interpose-aux-nothread.c
index b4ecd52e6a..51578ff4cc 100644
--- a/malloc/tst-interpose-aux-nothread.c
+++ b/malloc/tst-interpose-aux-nothread.c
@@ -1,5 +1,5 @@
/* Interposed malloc, version without threading support.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#define INTERPOSE_THREADS 0
#include "tst-interpose-aux.c"
diff --git a/malloc/tst-interpose-aux-thread.c b/malloc/tst-interpose-aux-thread.c
index 32a668fa97..d4c97556c1 100644
--- a/malloc/tst-interpose-aux-thread.c
+++ b/malloc/tst-interpose-aux-thread.c
@@ -1,5 +1,5 @@
/* Interposed malloc, version with threading support.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#define INTERPOSE_THREADS 1
#include "tst-interpose-aux.c"
diff --git a/malloc/tst-interpose-aux.c b/malloc/tst-interpose-aux.c
index bb37a39742..bbe321e843 100644
--- a/malloc/tst-interpose-aux.c
+++ b/malloc/tst-interpose-aux.c
@@ -1,5 +1,5 @@
/* Minimal malloc implementation for interposition tests.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include "tst-interpose-aux.h"
diff --git a/malloc/tst-interpose-aux.h b/malloc/tst-interpose-aux.h
index 051e9fbf1b..cc468649ce 100644
--- a/malloc/tst-interpose-aux.h
+++ b/malloc/tst-interpose-aux.h
@@ -1,5 +1,5 @@
/* Statistics interface for the minimal malloc implementation.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#ifndef TST_INTERPOSE_AUX_H
#define TST_INTERPOSE_AUX_H
diff --git a/malloc/tst-interpose-nothread.c b/malloc/tst-interpose-nothread.c
index c85263effb..4eb394217a 100644
--- a/malloc/tst-interpose-nothread.c
+++ b/malloc/tst-interpose-nothread.c
@@ -1,5 +1,5 @@
/* Malloc interposition test, dynamically-linked version without threads.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#define INTERPOSE_THREADS 0
#include "tst-interpose-skeleton.c"
diff --git a/malloc/tst-interpose-skeleton.c b/malloc/tst-interpose-skeleton.c
index 714676052e..853ee248d1 100644
--- a/malloc/tst-interpose-skeleton.c
+++ b/malloc/tst-interpose-skeleton.c
@@ -1,5 +1,5 @@
/* Test driver for malloc interposition tests.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
diff --git a/malloc/tst-interpose-static-nothread.c b/malloc/tst-interpose-static-nothread.c
index 84b21572b5..a08d0c0d89 100644
--- a/malloc/tst-interpose-static-nothread.c
+++ b/malloc/tst-interpose-static-nothread.c
@@ -1,5 +1,5 @@
/* Malloc interposition test, static version without threads.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,6 +14,6 @@
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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include "tst-interpose-nothread.c"
diff --git a/malloc/tst-interpose-static-thread.c b/malloc/tst-interpose-static-thread.c
index 98cf7df49b..86c4d3f97e 100644
--- a/malloc/tst-interpose-static-thread.c
+++ b/malloc/tst-interpose-static-thread.c
@@ -1,5 +1,5 @@
/* Malloc interposition test, static version with threads.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,6 +14,6 @@
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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include "tst-interpose-nothread.c"
diff --git a/malloc/tst-interpose-thread.c b/malloc/tst-interpose-thread.c
index 62e8922d84..c155213c7c 100644
--- a/malloc/tst-interpose-thread.c
+++ b/malloc/tst-interpose-thread.c
@@ -1,5 +1,5 @@
/* Malloc interposition test, dynamically-linked version with threads.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#define INTERPOSE_THREADS 1
#include "tst-interpose-skeleton.c"
diff --git a/malloc/tst-malloc-backtrace.c b/malloc/tst-malloc-backtrace.c
index 171cfcefb8..8873ca9bfa 100644
--- a/malloc/tst-malloc-backtrace.c
+++ b/malloc/tst-malloc-backtrace.c
@@ -1,5 +1,5 @@
/* Verify that backtrace does not deadlock on itself on memory corruption.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <signal.h>
#include <stdlib.h>
diff --git a/malloc/tst-malloc-fork-deadlock.c b/malloc/tst-malloc-fork-deadlock.c
index 8abaebfd9a..31fa626c37 100644
--- a/malloc/tst-malloc-fork-deadlock.c
+++ b/malloc/tst-malloc-fork-deadlock.c
@@ -1,5 +1,5 @@
/* Test concurrent fork, getline, and fflush (NULL).
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <sys/wait.h>
#include <unistd.h>
diff --git a/malloc/tst-malloc-tcache-leak.c b/malloc/tst-malloc-tcache-leak.c
index 7d9731435e..3dd346c909 100644
--- a/malloc/tst-malloc-tcache-leak.c
+++ b/malloc/tst-malloc-tcache-leak.c
@@ -1,5 +1,5 @@
/* Bug 22111: Test that threads do not leak their per thread cache.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* The point of this test is to start and exit a large number of
threads, while at the same time looking to see if the used
diff --git a/malloc/tst-malloc-thread-exit.c b/malloc/tst-malloc-thread-exit.c
index 419a65d472..ba1c4df5f9 100644
--- a/malloc/tst-malloc-thread-exit.c
+++ b/malloc/tst-malloc-thread-exit.c
@@ -1,5 +1,5 @@
/* Test malloc with concurrent thread termination.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This thread spawns a number of outer threads, equal to the arena
limit. The outer threads run a loop which start and join two
diff --git a/malloc/tst-malloc-thread-fail.c b/malloc/tst-malloc-thread-fail.c
index ce2e8f2f3d..85e77f7894 100644
--- a/malloc/tst-malloc-thread-fail.c
+++ b/malloc/tst-malloc-thread-fail.c
@@ -1,5 +1,5 @@
/* Test allocation function behavior on allocation failure.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
/* This test case attempts to trigger various unusual conditions
related to allocation failures, notably switching to a different
diff --git a/malloc/tst-malloc-too-large.c b/malloc/tst-malloc-too-large.c
index 10fb136528..51e0514e86 100644
--- a/malloc/tst-malloc-too-large.c
+++ b/malloc/tst-malloc-too-large.c
@@ -1,5 +1,5 @@
/* Test and verify that too-large memory allocations fail with ENOMEM.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Bug 22375 reported a regression in malloc where if after malloc'ing then
free'ing a small block of memory, malloc is then called with a really
@@ -72,13 +72,28 @@ test_large_allocations (size_t size)
void * ptr_to_realloc;
test_setup ();
+ DIAG_PUSH_NEEDS_COMMENT;
+#if __GNUC_PREREQ (7, 0)
+ /* GCC 7 warns about too-large allocations; here we want to test
+ that they fail. */
+ DIAG_IGNORE_NEEDS_COMMENT (7, "-Walloc-size-larger-than=");
+#endif
TEST_VERIFY (malloc (size) == NULL);
+#if __GNUC_PREREQ (7, 0)
+ DIAG_POP_NEEDS_COMMENT;
+#endif
TEST_VERIFY (errno == ENOMEM);
ptr_to_realloc = malloc (16);
TEST_VERIFY_EXIT (ptr_to_realloc != NULL);
test_setup ();
+#if __GNUC_PREREQ (7, 0)
+ DIAG_IGNORE_NEEDS_COMMENT (7, "-Walloc-size-larger-than=");
+#endif
TEST_VERIFY (realloc (ptr_to_realloc, size) == NULL);
+#if __GNUC_PREREQ (7, 0)
+ DIAG_POP_NEEDS_COMMENT;
+#endif
TEST_VERIFY (errno == ENOMEM);
free (ptr_to_realloc);
@@ -135,7 +150,13 @@ test_large_aligned_allocations (size_t size)
for (align = 1; align <= pagesize; align *= 2)
{
test_setup ();
+#if __GNUC_PREREQ (7, 0)
+ DIAG_IGNORE_NEEDS_COMMENT (7, "-Walloc-size-larger-than=");
+#endif
TEST_VERIFY (memalign (align, size) == NULL);
+#if __GNUC_PREREQ (7, 0)
+ DIAG_POP_NEEDS_COMMENT;
+#endif
TEST_VERIFY (errno == ENOMEM);
/* posix_memalign expects an alignment that is a power of 2 *and* a
@@ -151,7 +172,13 @@ test_large_aligned_allocations (size_t size)
if ((size % align) == 0)
{
test_setup ();
+#if __GNUC_PREREQ (7, 0)
+ DIAG_IGNORE_NEEDS_COMMENT (7, "-Walloc-size-larger-than=");
+#endif
TEST_VERIFY (aligned_alloc (align, size) == NULL);
+#if __GNUC_PREREQ (7, 0)
+ DIAG_POP_NEEDS_COMMENT;
+#endif
TEST_VERIFY (errno == ENOMEM);
}
}
@@ -159,11 +186,23 @@ test_large_aligned_allocations (size_t size)
/* Both valloc and pvalloc return page-aligned memory. */
test_setup ();
+#if __GNUC_PREREQ (7, 0)
+ DIAG_IGNORE_NEEDS_COMMENT (7, "-Walloc-size-larger-than=");
+#endif
TEST_VERIFY (valloc (size) == NULL);
+#if __GNUC_PREREQ (7, 0)
+ DIAG_POP_NEEDS_COMMENT;
+#endif
TEST_VERIFY (errno == ENOMEM);
test_setup ();
+#if __GNUC_PREREQ (7, 0)
+ DIAG_IGNORE_NEEDS_COMMENT (7, "-Walloc-size-larger-than=");
+#endif
TEST_VERIFY (pvalloc (size) == NULL);
+#if __GNUC_PREREQ (7, 0)
+ DIAG_POP_NEEDS_COMMENT;
+#endif
TEST_VERIFY (errno == ENOMEM);
}
@@ -226,6 +265,16 @@ do_test (void)
test_large_aligned_allocations (SIZE_MAX - i);
}
+ /* Allocation larger than PTRDIFF_MAX does play well with C standard,
+ since pointer subtraction within the object might overflow ptrdiff_t
+ resulting in undefined behavior. To prevent it malloc function fail
+ for such allocations. */
+ for (size_t i = 1; i <= FOURTEEN_ON_BITS; i++)
+ {
+ test_large_allocations (PTRDIFF_MAX + i);
+ test_large_aligned_allocations (PTRDIFF_MAX + i);
+ }
+
#if __WORDSIZE >= 64
/* On 64-bit targets, we need to test a much wider range of too-large
sizes, so we test at intervals of (1 << 50) that allocation sizes
diff --git a/malloc/tst-malloc-usable.c b/malloc/tst-malloc-usable.c
index d904c6b693..aa572fa06a 100644
--- a/malloc/tst-malloc-usable.c
+++ b/malloc/tst-malloc-usable.c
@@ -1,7 +1,7 @@
/* Ensure that malloc_usable_size returns the request size with
MALLOC_CHECK_ exported to a positive value.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <malloc.h>
#include <string.h>
diff --git a/malloc/tst-malloc.c b/malloc/tst-malloc.c
index aa1aa2aa41..186dd5dbb6 100644
--- a/malloc/tst-malloc.c
+++ b/malloc/tst-malloc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@arthur.rhein-neckar.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <malloc.h>
diff --git a/malloc/tst-malloc_info.c b/malloc/tst-malloc_info.c
index 049d2a9b92..f35c7156a3 100644
--- a/malloc/tst-malloc_info.c
+++ b/malloc/tst-malloc_info.c
@@ -1,5 +1,5 @@
/* Smoke test for malloc_info.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* The purpose of this test is to provide a quick way to run
malloc_info in a multi-threaded process. */
diff --git a/malloc/tst-mallocfork.c b/malloc/tst-mallocfork.c
index 4ff6ec09f4..00851a16c3 100644
--- a/malloc/tst-mallocfork.c
+++ b/malloc/tst-mallocfork.c
@@ -7,6 +7,7 @@
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
+#include <libc-diag.h>
static void
sig_handler (int signum)
@@ -25,7 +26,12 @@ do_test (void)
struct sigaction action = { .sa_handler = sig_handler };
sigemptyset (&action.sa_mask);
+ DIAG_PUSH_NEEDS_COMMENT;
+ DIAG_IGNORE_NEEDS_COMMENT (10, "-Wunused-result");
+ /* The result of malloc is deliberately ignored, so do not warn
+ about that. */
malloc (sizeof (int));
+ DIAG_POP_NEEDS_COMMENT;
if (sigaction (SIGALRM, &action, NULL) != 0)
{
diff --git a/malloc/tst-mallocfork2.c b/malloc/tst-mallocfork2.c
index bf8393b75a..eb0fed649d 100644
--- a/malloc/tst-mallocfork2.c
+++ b/malloc/tst-mallocfork2.c
@@ -1,5 +1,5 @@
/* Test case for async-signal-safe fork (with respect to malloc).
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
/* This test will fail if the process is multi-threaded because we
only have an async-signal-safe fork in the single-threaded case
@@ -34,6 +34,11 @@
#include <sys/wait.h>
#include <time.h>
#include <unistd.h>
+#include <array_length.h>
+#include <support/check.h>
+#include <support/support.h>
+#include <support/xthread.h>
+#include <support/xunistd.h>
/* How many malloc objects to keep arond. */
enum { malloc_objects = 1009 };
@@ -41,19 +46,16 @@ enum { malloc_objects = 1009 };
/* The maximum size of an object. */
enum { malloc_maximum_size = 70000 };
-/* How many signals need to be delivered before the test exits. */
-enum { signal_count = 1000 };
+/* How many iterations the test performs before exiting. */
+enum { iterations = 10000 };
-static int do_test (void);
-#define TIMEOUT 100
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
-
-/* Process ID of the subprocess which sends SIGUSR1 signals. */
-static pid_t sigusr1_sender_pid;
+/* Barrier for synchronization with the processes sending SIGUSR1
+ signals, to make it more likely that the signals arrive during a
+ fork/free/malloc call. */
+static struct { pthread_barrier_t barrier; } *shared;
/* Set to 1 if SIGUSR1 is received. Used to detect a signal during
- malloc/free. */
+ fork/free/malloc. */
static volatile sig_atomic_t sigusr1_received;
/* Periodically set to 1, to indicate that the process is making
@@ -63,17 +65,6 @@ static volatile sig_atomic_t progress_indicator = 1;
static void
sigusr1_handler (int signo)
{
- /* Let the main program make progress, by temporarily suspending
- signals from the subprocess. */
- if (sigusr1_received)
- return;
- /* sigusr1_sender_pid might not be initialized in the parent when
- the first SIGUSR1 signal arrives. */
- if (sigusr1_sender_pid > 0 && kill (sigusr1_sender_pid, SIGSTOP) != 0)
- {
- write_message ("error: kill (SIGSTOP)\n");
- abort ();
- }
sigusr1_received = 1;
/* Perform a fork with a trivial subprocess. */
@@ -108,6 +99,8 @@ liveness_signal_handler (int signo)
write_message ("warning: process seems to be stuck\n");
}
+/* Send SIGNO to the parent process. If SLEEP, wait a second between
+ signals, otherwise use barriers to delay sending signals. */
static void
__attribute__ ((noreturn))
signal_sender (int signo, bool sleep)
@@ -115,6 +108,8 @@ signal_sender (int signo, bool sleep)
pid_t target = getppid ();
while (true)
{
+ if (!sleep)
+ xpthread_barrier_wait (&shared->barrier);
if (kill (target, signo) != 0)
{
dprintf (STDOUT_FILENO, "error: kill: %m\n");
@@ -123,14 +118,17 @@ signal_sender (int signo, bool sleep)
if (sleep)
usleep (1 * 1000 * 1000);
else
- /* Reduce the rate at which we send signals. */
- sched_yield ();
+ xpthread_barrier_wait (&shared->barrier);
}
}
static int
do_test (void)
{
+ /* shared->barrier is intialized along with sigusr1_sender_pids
+ below. */
+ shared = support_shared_allocate (sizeof (*shared));
+
struct sigaction action =
{
.sa_handler = sigusr1_handler,
@@ -150,48 +148,74 @@ do_test (void)
return 1;
}
- pid_t sigusr2_sender_pid = fork ();
+ pid_t sigusr2_sender_pid = xfork ();
if (sigusr2_sender_pid == 0)
signal_sender (SIGUSR2, true);
- sigusr1_sender_pid = fork ();
- if (sigusr1_sender_pid == 0)
- signal_sender (SIGUSR1, false);
+
+ /* Send SIGUSR1 signals from several processes. Hopefully, one
+ signal will hit one of the ciritical functions. Use a barrier to
+ avoid sending signals while not running fork/free/malloc. */
+ pid_t sigusr1_sender_pids[5];
+ {
+ pthread_barrierattr_t attr;
+ xpthread_barrierattr_init (&attr);
+ xpthread_barrierattr_setpshared (&attr, PTHREAD_PROCESS_SHARED);
+ xpthread_barrier_init (&shared->barrier, &attr,
+ array_length (sigusr1_sender_pids) + 1);
+ xpthread_barrierattr_destroy (&attr);
+ }
+ for (size_t i = 0; i < array_length (sigusr1_sender_pids); ++i)
+ {
+ sigusr1_sender_pids[i] = fork ();
+ if (sigusr1_sender_pids[i] == 0)
+ signal_sender (SIGUSR1, false);
+ }
void *objects[malloc_objects] = {};
- unsigned signals = 0;
+ unsigned int fork_signals = 0;
+ unsigned int free_signals = 0;
+ unsigned int malloc_signals = 0;
unsigned seed = 1;
- time_t last_report = 0;
- while (signals < signal_count)
+ for (int i = 0; i < iterations; ++i)
{
progress_indicator = 1;
int slot = rand_r (&seed) % malloc_objects;
size_t size = rand_r (&seed) % malloc_maximum_size;
- if (kill (sigusr1_sender_pid, SIGCONT) != 0)
+
+ /* Occasionally do a fork first, to catch deadlocks there as
+ well (see bug 24161). */
+ bool do_fork = (rand_r (&seed) % 7) == 0;
+
+ xpthread_barrier_wait (&shared->barrier);
+ if (do_fork)
{
- printf ("error: kill (SIGCONT): %m\n");
- signal (SIGUSR1, SIG_IGN);
- kill (sigusr1_sender_pid, SIGKILL);
- kill (sigusr2_sender_pid, SIGKILL);
- return 1;
+ sigusr1_received = 0;
+ pid_t pid = xfork ();
+ if (sigusr1_received)
+ ++fork_signals;
+ if (pid == 0)
+ _exit (0);
+ int status;
+ int ret = TEMP_FAILURE_RETRY (waitpid (pid, &status, 0));
+ if (ret < 0)
+ FAIL_EXIT1 ("waitpid: %m");
+ TEST_COMPARE (status, 0);
}
- sigusr1_received = false;
+ sigusr1_received = 0;
free (objects[slot]);
+ if (sigusr1_received)
+ ++free_signals;
+ sigusr1_received = 0;
objects[slot] = malloc (size);
if (sigusr1_received)
- {
- ++signals;
- time_t current = time (0);
- if (current != last_report)
- {
- printf ("info: SIGUSR1 signal count: %u\n", signals);
- last_report = current;
- }
- }
+ ++malloc_signals;
+ xpthread_barrier_wait (&shared->barrier);
+
if (objects[slot] == NULL)
{
printf ("error: malloc: %m\n");
- signal (SIGUSR1, SIG_IGN);
- kill (sigusr1_sender_pid, SIGKILL);
+ for (size_t i = 0; i < array_length (sigusr1_sender_pids); ++i)
+ kill (sigusr1_sender_pids[i], SIGKILL);
kill (sigusr2_sender_pid, SIGKILL);
return 1;
}
@@ -201,11 +225,20 @@ do_test (void)
for (int slot = 0; slot < malloc_objects; ++slot)
free (objects[slot]);
- /* Terminate the signal-sending subprocess. The SIGUSR1 handler
- should no longer run because it uses sigusr1_sender_pid. */
- signal (SIGUSR1, SIG_IGN);
- kill (sigusr1_sender_pid, SIGKILL);
+ for (size_t i = 0; i < array_length (sigusr1_sender_pids); ++i)
+ kill (sigusr1_sender_pids[i], SIGKILL);
kill (sigusr2_sender_pid, SIGKILL);
+ printf ("info: signals received during fork: %u\n", fork_signals);
+ printf ("info: signals received during free: %u\n", free_signals);
+ printf ("info: signals received during malloc: %u\n", malloc_signals);
+
+ /* Do not destroy the barrier because of the SIGKILL above, which
+ may have left the barrier in an inconsistent state. */
+ support_shared_free (shared);
+
return 0;
}
+
+#define TIMEOUT 100
+#include <support/test-driver.c>
diff --git a/malloc/tst-mallocstate.c b/malloc/tst-mallocstate.c
index e3d1ec157c..8fd8732c3a 100644
--- a/malloc/tst-mallocstate.c
+++ b/malloc/tst-mallocstate.c
@@ -1,5 +1,5 @@
/* Emulate Emacs heap dumping to test malloc_set_state.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Wolfram Gloger <wg@malloc.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdbool.h>
diff --git a/malloc/tst-mallopt.c b/malloc/tst-mallopt.c
index 68fc7662ff..2e24b8b782 100644
--- a/malloc/tst-mallopt.c
+++ b/malloc/tst-mallopt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2014-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <malloc.h>
#include <stdio.h>
diff --git a/malloc/tst-mcheck.c b/malloc/tst-mcheck.c
index 18b0d59bd9..4eef5d0eb8 100644
--- a/malloc/tst-mcheck.c
+++ b/malloc/tst-mcheck.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdio.h>
diff --git a/malloc/tst-memalign.c b/malloc/tst-memalign.c
index 904bf9491d..de5dfcef8c 100644
--- a/malloc/tst-memalign.c
+++ b/malloc/tst-memalign.c
@@ -1,5 +1,5 @@
/* Test for memalign.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <malloc.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
+#include <libc-diag.h>
static int errors = 0;
@@ -41,9 +42,18 @@ do_test (void)
errno = 0;
+ DIAG_PUSH_NEEDS_COMMENT;
+#if __GNUC_PREREQ (7, 0)
+ /* GCC 7 warns about too-large allocations; here we want to test
+ that they fail. */
+ DIAG_IGNORE_NEEDS_COMMENT (7, "-Walloc-size-larger-than=");
+#endif
/* An attempt to allocate a huge value should return NULL and set
errno to ENOMEM. */
p = memalign (sizeof (void *), -1);
+#if __GNUC_PREREQ (7, 0)
+ DIAG_POP_NEEDS_COMMENT;
+#endif
save = errno;
diff --git a/malloc/tst-mtrace.c b/malloc/tst-mtrace.c
index 927b8e7709..151de4ad30 100644
--- a/malloc/tst-mtrace.c
+++ b/malloc/tst-mtrace.c
@@ -1,5 +1,5 @@
/* Test program for mtrace.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <mcheck.h>
#include <paths.h>
diff --git a/malloc/tst-mtrace.sh b/malloc/tst-mtrace.sh
index 9c50c0675d..3a4a4bbb40 100755
--- a/malloc/tst-mtrace.sh
+++ b/malloc/tst-mtrace.sh
@@ -1,6 +1,6 @@
#!/bin/sh
# Testing the mtrace function.
-# Copyright (C) 2000-2018 Free Software Foundation, Inc.
+# Copyright (C) 2000-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
@@ -15,7 +15,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
set -e
diff --git a/malloc/tst-mxfast.c b/malloc/tst-mxfast.c
new file mode 100644
index 0000000000..b579ee0b86
--- /dev/null
+++ b/malloc/tst-mxfast.c
@@ -0,0 +1,50 @@
+/* Test that glibc.malloc.mxfast tunable works.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+/* This test verifies that setting the glibc.malloc.mxfast tunable to
+ zero results in free'd blocks being returned to the small bins, not
+ the fast bins. */
+
+#include <malloc.h>
+#include <support/check.h>
+
+int
+do_test (void)
+{
+ struct mallinfo m;
+ char *volatile p1;
+ char *volatile p2;
+
+ /* Arbitrary value; must be in default fastbin range. */
+ p1 = malloc (3);
+ /* Something large so that p1 isn't a "top block" */
+ p2 = malloc (512);
+ free (p1);
+
+ m = mallinfo ();
+
+ /* This will fail if there are any blocks in the fastbins. */
+ TEST_COMPARE (m.smblks, 0);
+
+ /* To keep gcc happy. */
+ free (p2);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/malloc/tst-posix_memalign.c b/malloc/tst-posix_memalign.c
index 81b4c05ef4..51913721cd 100644
--- a/malloc/tst-posix_memalign.c
+++ b/malloc/tst-posix_memalign.c
@@ -1,5 +1,5 @@
/* Test for posix_memalign.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
+#include <libc-diag.h>
static int errors = 0;
@@ -41,9 +42,18 @@ do_test (void)
p = NULL;
+ DIAG_PUSH_NEEDS_COMMENT;
+#if __GNUC_PREREQ (7, 0)
+ /* GCC 7 warns about too-large allocations; here we want to test
+ that they fail. */
+ DIAG_IGNORE_NEEDS_COMMENT (7, "-Walloc-size-larger-than=");
+#endif
/* An attempt to allocate a huge value should return ENOMEM and
p should remain NULL. */
ret = posix_memalign (&p, sizeof (void *), -1);
+#if __GNUC_PREREQ (7, 0)
+ DIAG_POP_NEEDS_COMMENT;
+#endif
if (ret != ENOMEM)
merror ("posix_memalign (&p, sizeof (void *), -1) succeeded.");
diff --git a/malloc/tst-pvalloc.c b/malloc/tst-pvalloc.c
index aa391447ee..b78ef6aa76 100644
--- a/malloc/tst-pvalloc.c
+++ b/malloc/tst-pvalloc.c
@@ -1,5 +1,5 @@
/* Test for pvalloc.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <malloc.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
+#include <libc-diag.h>
static int errors = 0;
@@ -41,9 +42,18 @@ do_test (void)
errno = 0;
+ DIAG_PUSH_NEEDS_COMMENT;
+#if __GNUC_PREREQ (7, 0)
+ /* GCC 7 warns about too-large allocations; here we want to test
+ that they fail. */
+ DIAG_IGNORE_NEEDS_COMMENT (7, "-Walloc-size-larger-than=");
+#endif
/* An attempt to allocate a huge value should return NULL and set
errno to ENOMEM. */
p = pvalloc (-1);
+#if __GNUC_PREREQ (7, 0)
+ DIAG_POP_NEEDS_COMMENT;
+#endif
save = errno;
diff --git a/malloc/tst-realloc.c b/malloc/tst-realloc.c
index 1e48ad494c..0f08365c3c 100644
--- a/malloc/tst-realloc.c
+++ b/malloc/tst-realloc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2013-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <malloc.h>
diff --git a/malloc/tst-reallocarray.c b/malloc/tst-reallocarray.c
index b0d80ebc58..31e11c3b46 100644
--- a/malloc/tst-reallocarray.c
+++ b/malloc/tst-reallocarray.c
@@ -1,5 +1,5 @@
/* Test for reallocarray.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,12 +14,29 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <malloc.h>
#include <string.h>
#include <support/check.h>
+#include <libc-diag.h>
+
+static void *
+reallocarray_nowarn (void *ptr, size_t nmemb, size_t size)
+{
+#if __GNUC_PREREQ (7, 0)
+ /* GCC 7 warns about too-large allocations; here we want to test
+ that they fail. */
+ DIAG_IGNORE_NEEDS_COMMENT (7, "-Walloc-size-larger-than=");
+#endif
+ void *ret = reallocarray (ptr, nmemb, size);
+#if __GNUC_PREREQ (7, 0)
+ DIAG_POP_NEEDS_COMMENT;
+#endif
+ return ret;
+}
+
static int
do_test (void)
@@ -34,24 +51,24 @@ do_test (void)
/* Test overflow detection. */
errno = 0;
- ptr = reallocarray (NULL, max, 2);
+ ptr = reallocarray_nowarn (NULL, max, 2);
TEST_VERIFY (!ptr);
TEST_VERIFY (errno == ENOMEM);
errno = 0;
- ptr = reallocarray (NULL, 2, max);
+ ptr = reallocarray_nowarn (NULL, 2, max);
TEST_VERIFY (!ptr);
TEST_VERIFY (errno == ENOMEM);
a = 65537;
b = max/65537 + 1;
errno = 0;
- ptr = reallocarray (NULL, a, b);
+ ptr = reallocarray_nowarn (NULL, a, b);
TEST_VERIFY (!ptr);
TEST_VERIFY (errno == ENOMEM);
errno = 0;
- ptr = reallocarray (NULL, b, a);
+ ptr = reallocarray_nowarn (NULL, b, a);
TEST_VERIFY (!ptr);
TEST_VERIFY (errno == ENOMEM);
@@ -97,7 +114,7 @@ do_test (void)
/* Overflow should leave buffer untouched. */
errno = 0;
- ptr2 = reallocarray (ptr, 2, ~(size_t)0);
+ ptr2 = reallocarray_nowarn (ptr, 2, ~(size_t)0);
TEST_VERIFY (!ptr2);
TEST_VERIFY (errno == ENOMEM);
diff --git a/malloc/tst-scratch_buffer.c b/malloc/tst-scratch_buffer.c
index 59310dd811..f40b41ce70 100644
--- a/malloc/tst-scratch_buffer.c
+++ b/malloc/tst-scratch_buffer.c
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <scratch_buffer.h>
#include <stdbool.h>
diff --git a/malloc/tst-tcfree1.c b/malloc/tst-tcfree1.c
new file mode 100644
index 0000000000..802c338641
--- /dev/null
+++ b/malloc/tst-tcfree1.c
@@ -0,0 +1,42 @@
+/* Test that malloc tcache catches double free.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <error.h>
+#include <limits.h>
+#include <malloc.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <sys/signal.h>
+
+static int
+do_test (void)
+{
+ /* Do one allocation of any size that fits in tcache. */
+ char * volatile x = malloc (32);
+
+ free (x); // puts in tcache
+ free (x); // should abort
+
+ printf("FAIL: tcache double free not detected\n");
+ return 1;
+}
+
+#define TEST_FUNCTION do_test
+#define EXPECTED_SIGNAL SIGABRT
+#include <support/test-driver.c>
diff --git a/malloc/tst-tcfree2.c b/malloc/tst-tcfree2.c
new file mode 100644
index 0000000000..9fd6e101d3
--- /dev/null
+++ b/malloc/tst-tcfree2.c
@@ -0,0 +1,48 @@
+/* Test that malloc tcache catches double free.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <error.h>
+#include <limits.h>
+#include <malloc.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <sys/signal.h>
+
+static int
+do_test (void)
+{
+ char * volatile ptrs[20];
+ int i;
+
+ /* Allocate enough small chunks so that when we free them all, the tcache
+ is full, and the first one we freed is at the end of its linked list. */
+#define COUNT 20
+ for (i=0; i<COUNT; i++)
+ ptrs[i] = malloc (20);
+ for (i=0; i<COUNT; i++)
+ free (ptrs[i]);
+ free (ptrs[0]);
+
+ printf("FAIL: tcache double free\n");
+ return 1;
+}
+
+#define TEST_FUNCTION do_test
+#define EXPECTED_SIGNAL SIGABRT
+#include <support/test-driver.c>
diff --git a/malloc/tst-tcfree3.c b/malloc/tst-tcfree3.c
new file mode 100644
index 0000000000..3ec55e42bf
--- /dev/null
+++ b/malloc/tst-tcfree3.c
@@ -0,0 +1,56 @@
+/* Test that malloc tcache catches double free.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <malloc.h>
+#include <string.h>
+
+/* Prevent GCC from optimizing away any malloc/free pairs. */
+#pragma GCC optimize ("O0")
+
+static int
+do_test (void)
+{
+ /* Do two allocation of any size that fit in tcache, and one that
+ doesn't. */
+ int ** volatile a = malloc (32);
+ int ** volatile b = malloc (32);
+ /* This is just under the mmap threshold. */
+ int ** volatile c = malloc (127 * 1024);
+
+ /* The invalid "tcache bucket" we might dereference will likely end
+ up somewhere within this memory block, so make all the accidental
+ "next" pointers cause segfaults. BZ #23907. */
+ memset (c, 0xff, 127 * 1024);
+
+ free (a); // puts in tcache
+
+ /* A is now free and contains the key we use to detect in-tcache.
+ Copy the key to the other chunks. */
+ memcpy (b, a, 32);
+ memcpy (c, a, 32);
+
+ /* This free tests the "are we in the tcache already" loop with a
+ VALID bin but "coincidental" matching key. */
+ free (b); // should NOT abort
+ /* This free tests the "is it a valid tcache bin" test. */
+ free (c); // should NOT abort
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/malloc/tst-valloc.c b/malloc/tst-valloc.c
index ba57d9559a..4f0e6215db 100644
--- a/malloc/tst-valloc.c
+++ b/malloc/tst-valloc.c
@@ -1,5 +1,5 @@
/* Test for valloc.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
+#include <libc-diag.h>
static int errors = 0;
@@ -41,9 +42,18 @@ do_test (void)
errno = 0;
+ DIAG_PUSH_NEEDS_COMMENT;
+#if __GNUC_PREREQ (7, 0)
+ /* GCC 7 warns about too-large allocations; here we want to test
+ that they fail. */
+ DIAG_IGNORE_NEEDS_COMMENT (7, "-Walloc-size-larger-than=");
+#endif
/* An attempt to allocate a huge value should return NULL and set
errno to ENOMEM. */
p = valloc (-1);
+#if __GNUC_PREREQ (7, 0)
+ DIAG_POP_NEEDS_COMMENT;
+#endif
save = errno;
diff --git a/manual/Makefile b/manual/Makefile
index c2756640a7..b951b34f8f 100644
--- a/manual/Makefile
+++ b/manual/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1992-2018 Free Software Foundation, Inc.
+# Copyright (C) 1992-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
# Makefile for the GNU C Library manual.
@@ -99,10 +99,11 @@ $(objpfx)dir-add.texi: xtract-typefun.awk $(texis-path)
# The table with the math errors is generated.
$(objpfx)libm-err.texi: $(objpfx)stamp-libm-err
-$(objpfx)stamp-libm-err: libm-err-tab.pl $(wildcard $(foreach dir,$(sysdirs),\
- $(dir)/libm-test-ulps))
+$(objpfx)stamp-libm-err: $(..)math/gen-libm-test.py \
+ $(wildcard $(foreach dir,$(sysdirs),\
+ $(dir)/libm-test-ulps))
pwd=`pwd`; \
- $(PERL) $< $$pwd/.. > $(objpfx)libm-err-tmp
+ $(PYTHON) $< -s $$pwd/.. -m $(objpfx)libm-err-tmp
$(move-if-change) $(objpfx)libm-err-tmp $(objpfx)libm-err.texi
touch $@
@@ -169,7 +170,8 @@ include ../Rules
.PHONY: install subdir_install install-data
install-data subdir_install: install
-# Generated files requiring perl: libm-err.texi, summary.texi
+# Generated files requiring python: libm-err.texi
+# Generated files requiring perl: summary.texi
ifneq ($(PERL),no)
ifneq ($(strip $(MAKEINFO)),:)
install: $(inst_infodir)/libc.info
diff --git a/manual/README.pretty-printers b/manual/README.pretty-printers
index 2522cb858d..a2ba89843c 100644
--- a/manual/README.pretty-printers
+++ b/manual/README.pretty-printers
@@ -104,7 +104,7 @@ Adding new pretty printers
Adding new pretty printers to glibc requires following these steps:
1. Identify which constants must be generated from C headers, and write the
-corresponding .pysym file. See scripts/gen-py-const.awk for more information
+corresponding .pysym file. See scripts/gen-as-const.py for more information
on how this works. The name of the .pysym file must be added to the
'gen-py-const-headers' variable in your submodule's Makefile (without the .pysym
extension).
diff --git a/manual/README.tunables b/manual/README.tunables
index 3967679f43..f87a31a65e 100644
--- a/manual/README.tunables
+++ b/manual/README.tunables
@@ -105,11 +105,11 @@ where 'check' is the tunable name, 'int32_t' is the C type of the tunable and
To get and set tunables in a different namespace from that module, use the full
form of the macros as follows:
- val = TUNABLE_GET_FULL (glibc, tune, hwcap_mask, uint64_t, NULL)
+ val = TUNABLE_GET_FULL (glibc, cpu, hwcap_mask, uint64_t, NULL)
- TUNABLE_SET_FULL (glibc, tune, hwcap_mask, uint64_t, val)
+ TUNABLE_SET_FULL (glibc, cpu, hwcap_mask, uint64_t, val)
-where 'glibc' is the top namespace, 'tune' is the tunable namespace and the
+where 'glibc' is the top namespace, 'cpu' is the tunable namespace and the
remaining arguments are the same as the short form macros.
When TUNABLE_NAMESPACE is not defined in a module, TUNABLE_GET is equivalent to
diff --git a/manual/arith.texi b/manual/arith.texi
index 5e123c3ccd..89c2c064f1 100644
--- a/manual/arith.texi
+++ b/manual/arith.texi
@@ -875,20 +875,20 @@ complete response as @dfn{signalling} a domain error, overflow, or
underflow.
When a math function suffers a domain error, it raises the invalid
-exception and returns NaN. It also sets @var{errno} to @code{EDOM};
+exception and returns NaN. It also sets @code{errno} to @code{EDOM};
this is for compatibility with old systems that do not support @w{IEEE
754} exception handling. Likewise, when overflow occurs, math
functions raise the overflow exception and, in the default rounding
mode, return @math{@infinity{}} or @math{-@infinity{}} as appropriate
(in other rounding modes, the largest finite value of the appropriate
sign is returned when appropriate for that rounding mode). They also
-set @var{errno} to @code{ERANGE} if returning @math{@infinity{}} or
-@math{-@infinity{}}; @var{errno} may or may not be set to
+set @code{errno} to @code{ERANGE} if returning @math{@infinity{}} or
+@math{-@infinity{}}; @code{errno} may or may not be set to
@code{ERANGE} when a finite value is returned on overflow. When
underflow occurs, the underflow exception is raised, and zero
(appropriately signed) or a subnormal value, as appropriate for the
mathematical result of the function and the rounding mode, is
-returned. @var{errno} may be set to @code{ERANGE}, but this is not
+returned. @code{errno} may be set to @code{ERANGE}, but this is not
guaranteed; it is intended that @theglibc{} should set it when the
underflow is to an appropriately signed zero, but not necessarily for
other underflows.
@@ -2020,21 +2020,23 @@ exception and sets @code{errno} to @code{EDOM} if either argument is a
NaN.
@end deftypefn
-@deftypefun int totalorder (double @var{x}, double @var{y})
-@deftypefunx int totalorderf (float @var{x}, float @var{y})
-@deftypefunx int totalorderl (long double @var{x}, long double @var{y})
-@deftypefunx int totalorderfN (_Float@var{N} @var{x}, _Float@var{N} @var{y})
-@deftypefunx int totalorderfNx (_Float@var{N}x @var{x}, _Float@var{N}x @var{y})
+@deftypefun int totalorder (const double *@var{x}, const double *@var{y})
+@deftypefunx int totalorderf (const float *@var{x}, const float *@var{y})
+@deftypefunx int totalorderl (const long double *@var{x}, const long double *@var{y})
+@deftypefunx int totalorderfN (const _Float@var{N} *@var{x}, const _Float@var{N} *@var{y})
+@deftypefunx int totalorderfNx (const _Float@var{N}x *@var{x}, const _Float@var{N}x *@var{y})
@standards{TS 18661-1:2014, math.h}
@standardsx{totalorderfN, TS 18661-3:2015, math.h}
@standardsx{totalorderfNx, TS 18661-3:2015, math.h}
@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
These functions determine whether the total order relationship,
-defined in IEEE 754-2008, is true for @var{x} and @var{y}, returning
+defined in IEEE 754-2008, is true for @code{*@var{x}} and
+@code{*@var{y}}, returning
nonzero if it is true and zero if it is false. No exceptions are
raised even for signaling NaNs. The relationship is true if they are
the same floating-point value (including sign for zero and NaNs, and
-payload for NaNs), or if @var{x} comes before @var{y} in the following
+payload for NaNs), or if @code{*@var{x}} comes before @code{*@var{y}}
+in the following
order: negative quiet NaNs, in order of decreasing payload; negative
signaling NaNs, in order of decreasing payload; negative infinity;
finite numbers, in ascending order, with negative zero before positive
@@ -2043,18 +2045,18 @@ increasing payload; positive quiet NaNs, in order of increasing
payload.
@end deftypefun
-@deftypefun int totalordermag (double @var{x}, double @var{y})
-@deftypefunx int totalordermagf (float @var{x}, float @var{y})
-@deftypefunx int totalordermagl (long double @var{x}, long double @var{y})
-@deftypefunx int totalordermagfN (_Float@var{N} @var{x}, _Float@var{N} @var{y})
-@deftypefunx int totalordermagfNx (_Float@var{N}x @var{x}, _Float@var{N}x @var{y})
+@deftypefun int totalordermag (const double *@var{x}, const double *@var{y})
+@deftypefunx int totalordermagf (const float *@var{x}, const float *@var{y})
+@deftypefunx int totalordermagl (const long double *@var{x}, const long double *@var{y})
+@deftypefunx int totalordermagfN (const _Float@var{N} *@var{x}, const _Float@var{N} *@var{y})
+@deftypefunx int totalordermagfNx (const _Float@var{N}x *@var{x}, const _Float@var{N}x *@var{y})
@standards{TS 18661-1:2014, math.h}
@standardsx{totalordermagfN, TS 18661-3:2015, math.h}
@standardsx{totalordermagfNx, TS 18661-3:2015, math.h}
@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
These functions determine whether the total order relationship,
-defined in IEEE 754-2008, is true for the absolute values of @var{x}
-and @var{y}, returning nonzero if it is true and zero if it is false.
+defined in IEEE 754-2008, is true for the absolute values of @code{*@var{x}}
+and @code{*@var{y}}, returning nonzero if it is true and zero if it is false.
No exceptions are raised even for signaling NaNs.
@end deftypefun
@@ -2545,7 +2547,7 @@ You should not check for errors by examining the return value of
@code{0l}, @code{LONG_MAX}, or @code{LONG_MIN}. Instead, check whether
@var{tailptr} points to what you expect after the number
(e.g. @code{'\0'} if the string should end after the number). You also
-need to clear @var{errno} before the call and check it afterward, in
+need to clear @code{errno} before the call and check it afterward, in
case there was overflow.
There is an example at the end of this section.
@@ -2574,7 +2576,7 @@ for example that @code{strtoul} on @code{"-1"} returns @code{ULONG_MAX}
and an input more negative than @code{LONG_MIN} returns
(@code{ULONG_MAX} + 1) / 2.
-@code{strtoul} sets @var{errno} to @code{EINVAL} if @var{base} is out of
+@code{strtoul} sets @code{errno} to @code{EINVAL} if @var{base} is out of
range, or @code{ERANGE} on overflow.
@end deftypefun
@@ -2892,7 +2894,7 @@ representation of NaN (there can be several).
Since zero is a valid result as well as the value returned on error, you
should check for errors in the same way as for @code{strtol}, by
-examining @var{errno} and @var{tailptr}.
+examining @code{errno} and @var{tailptr}.
@end deftypefun
@deftypefun float strtof (const char *@var{string}, char **@var{tailptr})
@@ -3078,7 +3080,7 @@ to @code{fcvt}.
@c gcvt calls sprintf, that ultimately calls vfprintf, which malloc()s
@c args_value if it's too large, but gcvt never exercises this path.
@code{gcvt} is functionally equivalent to @samp{sprintf(buf, "%*g",
-ndigit, value}. It is provided only for compatibility's sake. It
+ndigit, value)}. It is provided only for compatibility's sake. It
returns @var{buf}.
If @var{ndigit} decimal digits would exceed the precision of a
diff --git a/manual/check-safety.sh b/manual/check-safety.sh
index c0ef2cca01..962b851925 100644
--- a/manual/check-safety.sh
+++ b/manual/check-safety.sh
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2014-2018 Free Software Foundation, Inc.
+# Copyright 2014-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
@@ -15,7 +15,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
# Check that the @safety notes are self-consistent, i.e., that they're
diff --git a/manual/conf.texi b/manual/conf.texi
index dbd1d30287..f959b00bb6 100644
--- a/manual/conf.texi
+++ b/manual/conf.texi
@@ -156,6 +156,8 @@ supported; use @code{sysconf} to find out. @xref{Sysconf}.
If this symbol is defined, it indicates that the system supports job
control. Otherwise, the implementation behaves as if all processes
within a session belong to a single process group. @xref{Job Control}.
+Systems conforming to the 2001 revision of POSIX, or newer, will
+always define this symbol.
@end deftypevr
@deftypevr Macro int _POSIX_SAVED_IDS
diff --git a/manual/contrib.texi b/manual/contrib.texi
index 76462cba7d..cfe4878d25 100644
--- a/manual/contrib.texi
+++ b/manual/contrib.texi
@@ -19,6 +19,9 @@ stack smashing protector enabled.
John David Anglin for various fixes to the hppa port.
@item
+Albert ARIBAUD for Y2038 related fixes.
+
+@item
Ryan S. Arnold for his improvements for Linux on PowerPC and his direction
as FSF Project Steward for @theglibc{}.
@@ -27,17 +30,25 @@ Miles Bader for writing the @code{argp} argument-parsing package, and the
@code{argz}/@code{envz} interfaces.
@item
+Ralf B@"achle for contributing @file{fpu_control.h},
+@file{regdef.h}, @file{sgidefs.h}, @file{sys/asm.h}, and @file{sys/regdef.h}
+under the @file{sysdeps/mips} directory.
+
+@item
Jeff Bailey for his maintainership of the HPPA architecture.
@item
Petr Baudis for bug fixes and testing.
@item
+Anton Blanchard for various fixes.
+
+@item
Stephen R. van den Berg for contributing a highly-optimized
@code{strstr} function.
@item
-Ondrej Bilka for contributing optimized string routines for x64 and various
+Ond@v{r}ej B@'ilka for contributing optimized string routines for x64 and various
fixes.
@item
@@ -105,9 +116,6 @@ and wide-character support functions (@file{wctype.h}, @file{wchar.h}, etc.).
@end itemize
@item
-Wilco Dijkstra for various fixes.
-
-@item
Richard Earnshaw for continued support and fixes to the various ARM
machine files.
@@ -129,6 +137,10 @@ headers for low-level platform-specific functionality and one such for
PowerPC and various fixes.
@item
+Olaf Flebbe and Ralf B@"achle for contributing
+@file{sysdeps/mips/fpu_control.h}.
+
+@item
Mike Frysinger for his maintaining of the IA64 architecture and for
testing and bug fixing.
@@ -169,6 +181,9 @@ Richard Henderson for the port to Linux on Alpha
David Holsgrove for the port to Linux on MicroBlaze.
@item
+Leonhard Holz for various fixes.
+
+@item
Daniel Jacobowitz for various fixes and enhancements.
@item
@@ -239,6 +254,12 @@ code.
Chris Leonard for various fixes and enhancements to localedata.
@item
+Ilya Leoshkevich for various fixes.
+
+@item
+Dmitry V. Levin for various fixes.
+
+@item
Stefan Liebler for various fixes.
@item
@@ -249,7 +270,8 @@ implementations, for implementing Intel Control-Flow Enforcement
Technology, and many bug fixes.
@item
-Rafal Luzynski for contributing support for two grammatical forms of month
+Rafa@l{} Lu@dotaccent{z}y@'nski
+for contributing support for two grammatical forms of month
names, and for various fixes to locales.
@item
@@ -282,6 +304,9 @@ Chris Metcalf for the port to Linux/Tile
kernel syscall interface used by several newer ports.
@item
+Jim Meyering for various fixes.
+
+@item
David Miller for contributing the port to Linux/Sparc
(@code{sparc*-@var{anything}-linux}).
@@ -363,6 +388,9 @@ Maciej W. Rozycki for MIPS fixes, support for ABSOLUTE symbols,
and various fixes.
@item
+Leonardo Sandoval for various fixes.
+
+@item
Pravin Satpute for writing sorting rules for some Indian languages.
@item
@@ -386,6 +414,9 @@ Martin Schwidefsky for porting to Linux on s390
Thomas Schwinge for his contribution to Hurd and the SH architecture.
@item
+Martin Sebor for various fixes.
+
+@item
Andrew Senkevich for contributing vector math function implementations for x86.
@item
@@ -427,10 +458,16 @@ Samuel Thibault for improving the Hurd port.
Pino Toscano for various fixes.
@item
+Matt Turner for various fixes to the Alpha port.
+
+@item
Tim Waugh for the implementation of the POSIX.2 @code{wordexp}
function family.
@item
+Ulrich Weigand for various fixes to the PowerPC64 and Arm ports.
+
+@item
Florian Weimer for his maintainership of the network component, for handling
of security issues, and for various fixes.
@@ -439,6 +476,9 @@ Zack Weinberg for the @code{explicit_bzero} implementation and for various
fixes.
@item
+Mark Wielaard for various fixes.
+
+@item
Eric Youngdale for implementing versioning of objects on the symbol level.
@item
diff --git a/manual/creature.texi b/manual/creature.texi
index 8876b2ab77..be5050468b 100644
--- a/manual/creature.texi
+++ b/manual/creature.texi
@@ -177,6 +177,13 @@ when the compiler uses an earlier language version.
If this macro is defined, ISO C11 extensions to ISO C99 are included.
@end defvr
+@defvr Macro _ISOC2X_SOURCE
+@standards{C2X, (none)}
+If this macro is defined, ISO C2X extensions to ISO C11 are included.
+Only some features from this draft standard are supported by
+@theglibc{}.
+@end defvr
+
@defvr Macro __STDC_WANT_LIB_EXT2__
@standards{ISO, (none)}
If you define this macro to the value @code{1}, features from ISO/IEC
diff --git a/manual/errno.texi b/manual/errno.texi
index b195b635f1..8cb4ce8b48 100644
--- a/manual/errno.texi
+++ b/manual/errno.texi
@@ -810,6 +810,19 @@ You did @strong{what}?
@standards{GNU, errno.h}
@errno{EIEIO, 104, Computer bought the farm}
Go home and have a glass of warm, dairy-fresh milk.
+@c Okay. Since you are dying to know, I'll tell you.
+@c This is a joke, obviously. There is a children's song which begins,
+@c "Old McDonald had a farm, e-i-e-i-o." Every time I see the (real)
+@c errno macro EIO, I think about that song. Probably most of my
+@c compatriots who program on Unix do, too. One of them must have stayed
+@c up a little too late one night and decided to add it to Hurd or Glibc.
+@c Whoever did it should be castigated, but it made me laugh.
+@c --jtobey@channel1.com
+@c
+@c "bought the farm" means "died". -jtobey
+@c
+@c Translators, please do not translate this litteraly, translate it into
+@c an idiomatic funny way of saying that the computer died.
@end deftypevr
@deftypevr Macro int EGRATUITOUS
diff --git a/manual/examples/add.c b/manual/examples/add.c
index 88d3e3d5f7..d9f9dae139 100644
--- a/manual/examples/add.c
+++ b/manual/examples/add.c
@@ -1,5 +1,5 @@
/* Example of a Variadic Function
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
@@ -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, if not, see <http://www.gnu.org/licenses/>.
+ along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
#include <stdarg.h>
diff --git a/manual/examples/argp-ex1.c b/manual/examples/argp-ex1.c
index 900af1aec9..68852051ef 100644
--- a/manual/examples/argp-ex1.c
+++ b/manual/examples/argp-ex1.c
@@ -1,5 +1,5 @@
/* Argp example #1 -- a minimal program using argp
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
@@ -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, if not, see <http://www.gnu.org/licenses/>.
+ along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
/* This is (probably) the smallest possible program that
diff --git a/manual/examples/argp-ex2.c b/manual/examples/argp-ex2.c
index 2465d418a8..450745c71d 100644
--- a/manual/examples/argp-ex2.c
+++ b/manual/examples/argp-ex2.c
@@ -1,5 +1,5 @@
/* Argp example #2 -- a pretty minimal program using argp
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
@@ -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, if not, see <http://www.gnu.org/licenses/>.
+ along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
/* This program doesn't use any options or arguments, but uses
diff --git a/manual/examples/argp-ex3.c b/manual/examples/argp-ex3.c
index efec8e8507..3a73d761fa 100644
--- a/manual/examples/argp-ex3.c
+++ b/manual/examples/argp-ex3.c
@@ -1,5 +1,5 @@
/* Argp example #3 -- a program with options and arguments using argp
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
@@ -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, if not, see <http://www.gnu.org/licenses/>.
+ along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
/* This program uses the same features as example 2, and uses options and
diff --git a/manual/examples/argp-ex4.c b/manual/examples/argp-ex4.c
index f560e38bfb..76bcdeaaf4 100644
--- a/manual/examples/argp-ex4.c
+++ b/manual/examples/argp-ex4.c
@@ -1,5 +1,5 @@
/* Argp example #4 -- a program with somewhat more complicated options
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
@@ -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, if not, see <http://www.gnu.org/licenses/>.
+ along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
/* This program uses the same features as example 3, but has more
diff --git a/manual/examples/atexit.c b/manual/examples/atexit.c
index 718651e8bd..f8ebdd9783 100644
--- a/manual/examples/atexit.c
+++ b/manual/examples/atexit.c
@@ -1,5 +1,5 @@
/* Cleanups on Exit
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
@@ -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, if not, see <http://www.gnu.org/licenses/>.
+ along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
#include <stdio.h>
diff --git a/manual/examples/db.c b/manual/examples/db.c
index 93602dece5..22fbb672c3 100644
--- a/manual/examples/db.c
+++ b/manual/examples/db.c
@@ -1,5 +1,5 @@
/* User and Group Database Example
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
@@ -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, if not, see <http://www.gnu.org/licenses/>.
+ along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
#include <grp.h>
diff --git a/manual/examples/dir.c b/manual/examples/dir.c
index f9d314a780..c869a1b871 100644
--- a/manual/examples/dir.c
+++ b/manual/examples/dir.c
@@ -1,5 +1,5 @@
/* Simple Program to List a Directory
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
@@ -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, if not, see <http://www.gnu.org/licenses/>.
+ along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
/*@group*/
diff --git a/manual/examples/dir2.c b/manual/examples/dir2.c
index 1403bb4ea9..0f3f224132 100644
--- a/manual/examples/dir2.c
+++ b/manual/examples/dir2.c
@@ -1,5 +1,5 @@
/* Simple Program to List a Directory, Mark II
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
@@ -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, if not, see <http://www.gnu.org/licenses/>.
+ along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
/*@group*/
diff --git a/manual/examples/execinfo.c b/manual/examples/execinfo.c
index 112134a70e..7526d5a0e7 100644
--- a/manual/examples/execinfo.c
+++ b/manual/examples/execinfo.c
@@ -1,5 +1,5 @@
/* Obtain a backtrace and print it.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
@@ -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, if not, see <http://www.gnu.org/licenses/>.
+ along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
#include <execinfo.h>
diff --git a/manual/examples/filecli.c b/manual/examples/filecli.c
index dcdb82590d..094dd216cb 100644
--- a/manual/examples/filecli.c
+++ b/manual/examples/filecli.c
@@ -1,5 +1,5 @@
/* Example of Reading Datagrams
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
@@ -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, if not, see <http://www.gnu.org/licenses/>.
+ along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
#include <stdio.h>
diff --git a/manual/examples/filesrv.c b/manual/examples/filesrv.c
index 7d9f507be2..3dc0df3138 100644
--- a/manual/examples/filesrv.c
+++ b/manual/examples/filesrv.c
@@ -1,5 +1,5 @@
/* Datagram Socket Example
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
@@ -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, if not, see <http://www.gnu.org/licenses/>.
+ along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
#include <stdio.h>
diff --git a/manual/examples/fmtmsgexpl.c b/manual/examples/fmtmsgexpl.c
index 8c1e058204..e7089a52ec 100644
--- a/manual/examples/fmtmsgexpl.c
+++ b/manual/examples/fmtmsgexpl.c
@@ -1,5 +1,5 @@
/* How to use fmtmsg and addseverity.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
@@ -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, if not, see <http://www.gnu.org/licenses/>.
+ along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
#include <fmtmsg.h>
diff --git a/manual/examples/genpass.c b/manual/examples/genpass.c
index 23d20789fc..faba2a1f3e 100644
--- a/manual/examples/genpass.c
+++ b/manual/examples/genpass.c
@@ -1,5 +1,5 @@
/* Encrypting Passwords
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
@@ -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, if not, see <http://www.gnu.org/licenses/>.
+ along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
#include <stdio.h>
diff --git a/manual/examples/inetcli.c b/manual/examples/inetcli.c
index bcc060b7ca..685f49bc20 100644
--- a/manual/examples/inetcli.c
+++ b/manual/examples/inetcli.c
@@ -1,5 +1,5 @@
/* Byte Stream Socket Example
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
@@ -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, if not, see <http://www.gnu.org/licenses/>.
+ along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
#include <stdio.h>
diff --git a/manual/examples/inetsrv.c b/manual/examples/inetsrv.c
index ea590fe7b8..85788dc333 100644
--- a/manual/examples/inetsrv.c
+++ b/manual/examples/inetsrv.c
@@ -1,5 +1,5 @@
/* Byte Stream Connection Server Example
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
@@ -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, if not, see <http://www.gnu.org/licenses/>.
+ along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
#include <stdio.h>
diff --git a/manual/examples/isockad.c b/manual/examples/isockad.c
index 4a55e7a696..7b0261c626 100644
--- a/manual/examples/isockad.c
+++ b/manual/examples/isockad.c
@@ -1,5 +1,5 @@
/* Internet Socket Example using sockaddr_in.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
@@ -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, if not, see <http://www.gnu.org/licenses/>.
+ along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
#include <stdio.h>
diff --git a/manual/examples/longopt.c b/manual/examples/longopt.c
index 4f33d52558..f776957534 100644
--- a/manual/examples/longopt.c
+++ b/manual/examples/longopt.c
@@ -1,5 +1,5 @@
/* Example of Parsing Long Options with getopt_long.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
@@ -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, if not, see <http://www.gnu.org/licenses/>.
+ along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
#include <stdio.h>
diff --git a/manual/examples/memopen.c b/manual/examples/memopen.c
index 7ffd06b3eb..4c35a09ed5 100644
--- a/manual/examples/memopen.c
+++ b/manual/examples/memopen.c
@@ -1,5 +1,5 @@
/* String Streams
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
@@ -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, if not, see <http://www.gnu.org/licenses/>.
+ along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
#include <stdio.h>
diff --git a/manual/examples/memstrm.c b/manual/examples/memstrm.c
index 65147c8734..8359c59a44 100644
--- a/manual/examples/memstrm.c
+++ b/manual/examples/memstrm.c
@@ -1,5 +1,5 @@
/* open_memstream example.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
@@ -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, if not, see <http://www.gnu.org/licenses/>.
+ along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
#include <stdio.h>
diff --git a/manual/examples/mkdirent.c b/manual/examples/mkdirent.c
index cb19c1f3cc..871f27fdca 100644
--- a/manual/examples/mkdirent.c
+++ b/manual/examples/mkdirent.c
@@ -1,5 +1,5 @@
/* Example for creating a struct dirent object for use with glob.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-2019 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
@@ -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, if not, see <http://www.gnu.org/licenses/>.
+ along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
#include <dirent.h>
diff --git a/manual/examples/mkfsock.c b/manual/examples/mkfsock.c
index ebce75f4bf..4372225103 100644
--- a/manual/examples/mkfsock.c
+++ b/manual/examples/mkfsock.c
@@ -1,5 +1,5 @@
/* Example of Local-Namespace Sockets
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
@@ -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, if not, see <http://www.gnu.org/licenses/>.
+ along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
#include <stddef.h>
diff --git a/manual/examples/mkisock.c b/manual/examples/mkisock.c
index 1a13c54271..171c64a634 100644
--- a/manual/examples/mkisock.c
+++ b/manual/examples/mkisock.c
@@ -1,5 +1,5 @@
/* Internet Socket Example
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
@@ -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, if not, see <http://www.gnu.org/licenses/>.
+ along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
#include <stdio.h>
diff --git a/manual/examples/mygetpass.c b/manual/examples/mygetpass.c
index 3f465ac8ea..2896860528 100644
--- a/manual/examples/mygetpass.c
+++ b/manual/examples/mygetpass.c
@@ -1,5 +1,5 @@
/* Reading passphrases manually.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
@@ -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, if not, see <http://www.gnu.org/licenses/>.
+ along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
#include <termios.h>
diff --git a/manual/examples/ofdlocks.c b/manual/examples/ofdlocks.c
index d6b30d68b2..c2b5e5c047 100644
--- a/manual/examples/ofdlocks.c
+++ b/manual/examples/ofdlocks.c
@@ -1,5 +1,5 @@
/* Open File Description Locks Usage Example
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
@@ -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 <http://www.gnu.org/licenses/>.
+ along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
#define _GNU_SOURCE
diff --git a/manual/examples/pipe.c b/manual/examples/pipe.c
index 25fed7f754..b5ecab21ca 100644
--- a/manual/examples/pipe.c
+++ b/manual/examples/pipe.c
@@ -1,5 +1,5 @@
/* Creating a Pipe
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
@@ -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, if not, see <http://www.gnu.org/licenses/>.
+ along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
#include <sys/types.h>
diff --git a/manual/examples/popen.c b/manual/examples/popen.c
index 566dbf3918..9bcc27696d 100644
--- a/manual/examples/popen.c
+++ b/manual/examples/popen.c
@@ -1,5 +1,5 @@
/* Pipe to a Subprocess
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
@@ -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, if not, see <http://www.gnu.org/licenses/>.
+ along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
#include <stdio.h>
diff --git a/manual/examples/rprintf.c b/manual/examples/rprintf.c
index 917db0866a..ee28830c0c 100644
--- a/manual/examples/rprintf.c
+++ b/manual/examples/rprintf.c
@@ -1,5 +1,5 @@
/* Printf Extension Example
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
@@ -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, if not, see <http://www.gnu.org/licenses/>.
+ along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
#include <stdio.h>
diff --git a/manual/examples/search.c b/manual/examples/search.c
index 624cf50290..7c648641dd 100644
--- a/manual/examples/search.c
+++ b/manual/examples/search.c
@@ -1,5 +1,5 @@
/* Searching and Sorting Example
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
@@ -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, if not, see <http://www.gnu.org/licenses/>.
+ along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
#include <stdlib.h>
diff --git a/manual/examples/select.c b/manual/examples/select.c
index 2a92d5358f..2e968d7f36 100644
--- a/manual/examples/select.c
+++ b/manual/examples/select.c
@@ -1,5 +1,5 @@
/* Waiting for Input or Output
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
@@ -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, if not, see <http://www.gnu.org/licenses/>.
+ along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
/*@group*/
diff --git a/manual/examples/setjmp.c b/manual/examples/setjmp.c
index cc9ccc7663..105944c185 100644
--- a/manual/examples/setjmp.c
+++ b/manual/examples/setjmp.c
@@ -1,5 +1,5 @@
/* Introduction to Non-Local Exits
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
@@ -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, if not, see <http://www.gnu.org/licenses/>.
+ along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
#include <setjmp.h>
diff --git a/manual/examples/sigh1.c b/manual/examples/sigh1.c
index 9fe0fd2394..2385b7a55f 100644
--- a/manual/examples/sigh1.c
+++ b/manual/examples/sigh1.c
@@ -1,5 +1,5 @@
/* Signal Handlers that Return
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
@@ -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, if not, see <http://www.gnu.org/licenses/>.
+ along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
#include <signal.h>
diff --git a/manual/examples/sigusr.c b/manual/examples/sigusr.c
index 7dfb4cf251..7d6f450dd1 100644
--- a/manual/examples/sigusr.c
+++ b/manual/examples/sigusr.c
@@ -1,5 +1,5 @@
/* Using kill for Communication
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
@@ -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, if not, see <http://www.gnu.org/licenses/>.
+ along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
/*@group*/
diff --git a/manual/examples/stpcpy.c b/manual/examples/stpcpy.c
index ab0befdf58..5c53920a63 100644
--- a/manual/examples/stpcpy.c
+++ b/manual/examples/stpcpy.c
@@ -1,5 +1,5 @@
/* stpcpy example.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
@@ -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, if not, see <http://www.gnu.org/licenses/>.
+ along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
#include <string.h>
diff --git a/manual/examples/strdupa.c b/manual/examples/strdupa.c
index 7dc4180cf1..085dc2470d 100644
--- a/manual/examples/strdupa.c
+++ b/manual/examples/strdupa.c
@@ -1,5 +1,5 @@
/* strdupa example.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
@@ -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, if not, see <http://www.gnu.org/licenses/>.
+ along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
#include <paths.h>
diff --git a/manual/examples/strftim.c b/manual/examples/strftim.c
index 2b7e48a1c9..20492aa281 100644
--- a/manual/examples/strftim.c
+++ b/manual/examples/strftim.c
@@ -1,5 +1,5 @@
/* Time Functions Example
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
@@ -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, if not, see <http://www.gnu.org/licenses/>.
+ along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
#include <time.h>
diff --git a/manual/examples/subopt.c b/manual/examples/subopt.c
index a3fba4b537..c6d0a1fcf8 100644
--- a/manual/examples/subopt.c
+++ b/manual/examples/subopt.c
@@ -1,5 +1,5 @@
/* Parsing of Suboptions Example
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
@@ -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, if not, see <http://www.gnu.org/licenses/>.
+ along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
#include <stdio.h>
diff --git a/manual/examples/swapcontext.c b/manual/examples/swapcontext.c
index d0b7b2b374..70c57445f3 100644
--- a/manual/examples/swapcontext.c
+++ b/manual/examples/swapcontext.c
@@ -1,5 +1,5 @@
/* Complete Context Control
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
@@ -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, if not, see <http://www.gnu.org/licenses/>.
+ along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
#include <signal.h>
diff --git a/manual/examples/termios.c b/manual/examples/termios.c
index e4e5a5540c..5e0dfccc09 100644
--- a/manual/examples/termios.c
+++ b/manual/examples/termios.c
@@ -1,5 +1,5 @@
/* Noncanonical Mode Example
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
@@ -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, if not, see <http://www.gnu.org/licenses/>.
+ along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
#include <unistd.h>
diff --git a/manual/examples/testopt.c b/manual/examples/testopt.c
index 6249f2a2ed..ea2111540b 100644
--- a/manual/examples/testopt.c
+++ b/manual/examples/testopt.c
@@ -1,5 +1,5 @@
/* Example of Parsing Arguments with getopt.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
@@ -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, if not, see <http://www.gnu.org/licenses/>.
+ along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
/*@group*/
diff --git a/manual/examples/testpass.c b/manual/examples/testpass.c
index f8883fea17..2bf282a943 100644
--- a/manual/examples/testpass.c
+++ b/manual/examples/testpass.c
@@ -1,5 +1,5 @@
/* Verify a passphrase.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
@@ -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, if not, see <http://www.gnu.org/licenses/>.
+ along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
#include <stdio.h>
diff --git a/manual/examples/timeval_subtract.c b/manual/examples/timeval_subtract.c
index 77265bb252..edca57739a 100644
--- a/manual/examples/timeval_subtract.c
+++ b/manual/examples/timeval_subtract.c
@@ -1,5 +1,5 @@
/* struct timeval subtraction.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
@@ -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, if not, see <http://www.gnu.org/licenses/>.
+ along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
/* Subtract the `struct timeval' values X and Y,
diff --git a/manual/examples/twalk.c b/manual/examples/twalk.c
new file mode 100644
index 0000000000..afa2b6e8a4
--- /dev/null
+++ b/manual/examples/twalk.c
@@ -0,0 +1,56 @@
+/* Implement twalk using twalk_r.
+ Copyright (C) 2019 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
+ 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 General Public License
+ along with this program; if not, see <https://www.gnu.org/licenses/>.
+*/
+
+#include <search.h>
+
+struct twalk_with_twalk_r_closure
+{
+ void (*action) (const void *, VISIT, int);
+ int depth;
+};
+
+static void
+twalk_with_twalk_r_action (const void *nodep, VISIT which, void *closure0)
+{
+ struct twalk_with_twalk_r_closure *closure = closure0;
+
+ switch (which)
+ {
+ case leaf:
+ closure->action (nodep, which, closure->depth);
+ break;
+ case preorder:
+ closure->action (nodep, which, closure->depth);
+ ++closure->depth;
+ break;
+ case postorder:
+ /* The preorder action incremented the depth. */
+ closure->action (nodep, which, closure->depth - 1);
+ break;
+ case endorder:
+ --closure->depth;
+ closure->action (nodep, which, closure->depth);
+ break;
+ }
+}
+
+void
+twalk (const void *root, void (*action) (const void *, VISIT, int))
+{
+ struct twalk_with_twalk_r_closure closure = { action, 0 };
+ twalk_r (root, twalk_with_twalk_r_action, &closure);
+}
diff --git a/manual/filesys.texi b/manual/filesys.texi
index ccda36cf84..73e630842e 100644
--- a/manual/filesys.texi
+++ b/manual/filesys.texi
@@ -242,6 +242,7 @@ here to the stream facilities for ordinary files, described in
* Scanning Directory Content:: Get entries for user selected subset of
contents in given directory.
* Simple Directory Lister Mark II:: Revised version of the program.
+* Low-level Directory Access:: AS-Safe functions for directory access.
@end menu
@node Directory Entries
@@ -360,6 +361,10 @@ You shouldn't ever allocate objects of the @code{struct dirent} or
you. Instead, you refer to these objects using the pointers returned by
the following functions.
+Directory streams are a high-level interface. On Linux, alternative
+interfaces for accessing directories using file descriptors are
+available. @xref{Low-level Directory Access}.
+
@deftypefun {DIR *} opendir (const char *@var{dirname})
@standards{POSIX.1, dirent.h}
@safety{@prelim{}@mtsafe{}@asunsafe{@ascuheap{}}@acunsafe{@acsmem{} @acsfd{}}}
@@ -826,6 +831,39 @@ After the call the returned entries are available for direct use.
Note the simple selector function in this example. Since we want to see
all directory entries we always return @code{1}.
+@node Low-level Directory Access
+@subsection Low-level Directory Access
+
+The stream-based directory functions are not AS-Safe and cannot be
+used after @code{vfork}. @xref{POSIX Safety Concepts}. The functions
+below provide an alternative that can be used in these contexts.
+
+Directory data is obtained from a file descriptor, as created by the
+@code{open} function, with or without the @code{O_DIRECTORY} flag.
+@xref{Opening and Closing Files}.
+
+@deftypefun ssize_t getdents64 (int @var{fd}, void *@var{buffer}, size_t @var{length})
+@standards{Linux, dirent.h}
+@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
+The @code{getdents64} function reads at most @var{length} bytes of
+directory entry data from the file descriptor @var{fd} and stores it
+into the byte array starting at @var{buffer}.
+
+On success, the function returns the number of bytes written to the
+buffer. This number is zero if @var{fd} is already at the end of the
+directory stream. On error, the function returns @code{-1} and sets
+@code{errno} to the appropriate error code.
+
+The data is stored as a sequence of @code{struct dirent64} records,
+which can be traversed using the @code{d_reclen} member. The buffer
+should be large enough to hold the largest possible directory entry.
+Note that some file systems support file names longer than
+@code{NAME_MAX} bytes (e.g., because they support up to 255 Unicode
+characters), so a buffer size of at least 1024 is recommended.
+
+This function is specific to Linux.
+@end deftypefun
+
@node Working with Directory Trees
@section Working with Directory Trees
@@ -1098,7 +1136,7 @@ this option is set. This option is a GNU extension.
The return value is computed in the same way as for @code{ftw}.
@code{nftw} returns @math{0} if no failures occurred and all callback
functions returned @math{0}. In case of internal errors, such as memory
-problems, the return value is @math{-1} and @var{errno} is set
+problems, the return value is @math{-1} and @code{errno} is set
accordingly. If the return value of a callback invocation was non-zero
then that value is returned.
@@ -2861,7 +2899,7 @@ which extends its resolution. These fields are called
@code{st_atime_usec}, @code{st_mtime_usec}, and @code{st_ctime_usec};
each has a value between 0 and 999,999, which indicates the time in
microseconds. They correspond to the @code{tv_usec} field of a
-@code{timeval} structure; see @ref{High-Resolution Calendar}.
+@code{timeval} structure; see @ref{Time Types}.
The @code{utimes} function is like @code{utime}, but also lets you specify
the fractional part of the file times. The prototype for this function is
@@ -3524,9 +3562,9 @@ directory, and returns @var{template}. As with @code{mktemp} and
@samp{XXXXXX}.
If @code{mkdtemp} cannot create an uniquely named directory, it returns
-@code{NULL} and sets @var{errno} appropriately. If @var{template} does
+@code{NULL} and sets @code{errno} appropriately. If @var{template} does
not end with @samp{XXXXXX}, @code{mkdtemp} returns @code{NULL} and does
-not modify @var{template}. @var{errno} will be set to @code{EINVAL} in
+not modify @var{template}. @code{errno} will be set to @code{EINVAL} in
this case.
The directory is created using mode @code{0700}.
diff --git a/manual/freemanuals.texi b/manual/freemanuals.texi
index 9caf22017c..189f63c459 100644
--- a/manual/freemanuals.texi
+++ b/manual/freemanuals.texi
@@ -90,4 +90,4 @@ paid or pay the authors to work on it.
The Free Software Foundation maintains a list of free documentation
published by other publishers, at
-@url{http://www.fsf.org/doc/other-free-books.html}.
+@url{https://www.fsf.org/doc/other-free-books.html}.
diff --git a/manual/install.texi b/manual/install.texi
index c39e63bf3b..b2d569ac5a 100644
--- a/manual/install.texi
+++ b/manual/install.texi
@@ -117,6 +117,20 @@ problem and suppress these constructs, so that the library will still be
usable, but functionality may be lost---for example, you can't build a
shared libc with old binutils.
+@item --with-nonshared-cflags=@var{cflags}
+Use additional compiler flags @var{cflags} to build the parts of the
+library which are always statically linked into applications and
+libraries even with shared linking (that is, the object files contained
+in @file{lib*_nonshared.a} libraries). The build process will
+automatically use the appropriate flags, but this option can be used to
+set additional flags required for building applications and libraries,
+to match local policy. For example, if such a policy requires that all
+code linked into applications must be built with source fortification,
+@samp{--with-nonshared-cflags=-Wp,-D_FORTIFY_SOURCE=2} will make sure
+that the objects in @file{libc_nonshared.a} are compiled with this flag
+(although this will not affect the generated code in this particular
+case and potentially change debugging information and metadata only).
+
@c disable static doesn't work currently
@c @item --disable-static
@c Don't build static libraries. Static libraries aren't that useful these
@@ -190,10 +204,10 @@ number of routines called directly from assembler are excluded from this
protection.
@item --enable-bind-now
-Disable lazy binding for installed shared objects. This provides
-additional security hardening because it enables full RELRO and a
-read-only global offset table (GOT), at the cost of slightly increased
-program load times.
+Disable lazy binding for installed shared objects and programs. This
+provides additional security hardening because it enables full RELRO
+and a read-only global offset table (GOT), at the cost of slightly
+increased program load times.
@pindex pt_chown
@findex grantpt
@@ -245,6 +259,9 @@ compatibility and the NSS modules libnss_compat, libnss_nis and
libnss_nisplus are not built at all.
Use this option to enable libnsl with all depending NSS modules and
header files.
+For architectures and ABIs that have been added after version 2.28 of
+@theglibc{} this option is not available, and the libnsl compatibility
+library is not built.
@item --disable-crypt
Do not install the passphrase-hashing library @file{libcrypt} or the
@@ -330,39 +347,6 @@ occurred. You can specify @samp{stop-on-test-failure=y} when running
@code{make check} to make the test run stop and exit with an error
status immediately when a failure occurs.
-The @glibcadj{} pretty printers come with their own set of scripts for testing,
-which run together with the rest of the testsuite through @code{make check}.
-These scripts require the following tools to run successfully:
-
-@itemize @bullet
-@item
-Python 2.7/3.4 or later
-
-Python is required for running the printers' test scripts. As of release time,
-Python 3.6 is the newest verified to work to test the pretty printers.
-
-@item PExpect 4.0
-
-The printer tests drive GDB through test programs and compare its output
-to the printers'. PExpect is used to capture the output of GDB, and should be
-compatible with the Python version in your system. As of release time
-PExpect 4.3 is the newest verified to work to test the pretty printers.
-
-@item
-GDB 7.8 or later with support for Python 2.7/3.4 or later
-
-GDB itself needs to be configured with Python support in order to 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 @code{debugger} 8.0.1 is the newest verified
-to work to test the pretty printers.
-@end itemize
-
-@noindent
-If these tools are absent, the printer tests will report themselves as
-@code{UNSUPPORTED}. Notice that some of the printer tests require @theglibc{}
-to be compiled with debugging symbols.
-
To format the @cite{GNU C Library Reference Manual} for printing, type
@w{@code{make dvi}}. You need a working @TeX{} installation to do
this. The distribution builds the on-line formatted version of the
@@ -465,13 +449,30 @@ permissions on a pseudoterminal so it can be used by the calling process.
If you are using a Linux kernel with the @code{devpts} filesystem enabled
and mounted at @file{/dev/pts}, you don't need this program.
-After installation you might want to configure the timezone and locale
-installation of your system. @Theglibc{} comes with a locale
-database which gets configured with @code{localedef}. For example, to
-set up a German locale with name @code{de_DE}, simply issue the command
-@samp{localedef -i de_DE -f ISO-8859-1 de_DE}. To configure all locales
-that are supported by @theglibc{}, you can issue from your build directory the
-command @samp{make localedata/install-locales}.
+After installation you should configure the timezone and install locales
+for your system. The time zone configuration ensures that your system
+time matches the time for your current timezone. The locales ensure that
+the display of information on your system matches the expectations of
+your language and geographic region.
+
+@Theglibc{} is able to use two kinds of localization information sources, the
+first is a locale database named @file{locale-archive} which is generally
+installed as @file{/usr/lib/locale/locale-archive}. The locale archive has the
+benefit of taking up less space and being very fast to load, but only if you
+plan to install sixty or more locales. If you plan to install one or two
+locales you can instead install individual locales into their self-named
+directories e.g.@: @file{/usr/lib/locale/en_US.utf8}. For example to install
+the German locale using the character set for UTF-8 with name @code{de_DE} into
+the locale archive issue the command @samp{localedef -i de_DE -f UTF-8 de_DE},
+and to install just the one locale issue the command @samp{localedef
+--no-archive -i de_DE -f UTF-8 de_DE}. To configure all locales that are
+supported by @theglibc{}, you can issue from your build directory the command
+@samp{make localedata/install-locales} to install all locales into the locale
+archive or @samp{make localedata/install-locale-files} to install all locales
+as files in the default configured locale installation directory (derived from
+@samp{--prefix} or @code{--localedir}). To install into an alternative system
+root use @samp{DESTDIR} e.g.@: @samp{make localedata/install-locale-files
+DESTDIR=/opt/glibc}, but note that this does not change the configured prefix.
To configure the locally used timezone, set the @code{TZ} environment
variable. The script @code{tzselect} helps you to select the right value.
@@ -498,18 +499,14 @@ As of relase time, GNU @code{make} 4.2.1 is the newest verified to work
to build @theglibc{}.
@item
-GCC 4.9 or newer
+GCC 6.2 or newer
-GCC 4.9 or higher is required. In general it is recommended to use
+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
@theglibc{}, as newer compilers usually produce better code. As of
-release time, GCC 8.1.1 is the newest compiler verified to work to build
+release time, GCC 9.1.1 is the newest compiler verified to work to build
@theglibc{}.
-For PowerPC 64-bits little-endian (powerpc64le), GCC 6.2 or higher is
-required. This compiler version is the first to provide the features
-required for building @theglibc{} with support for @code{_Float128}.
-
For multi-arch support it is recommended to use a GCC which has been built with
support for GNU indirect functions. This ensures that correct debugging
information is generated for functions selected by IFUNC resolvers. This
@@ -538,7 +535,7 @@ To correctly translate and install the Texinfo documentation you need
this version of the @code{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, @code{texinfo} 6.5 is the newest verified to work
+As of release time, @code{texinfo} 6.6 is the newest verified to work
to build @theglibc{}.
@item
@@ -554,16 +551,16 @@ to work to build @theglibc{}.
GNU @code{bison} 2.7 or later
@code{bison} is used to generate the @code{yacc} parser code in the @file{intl}
-subdirectory. As of release time, @code{bison} version 3.0.4 is the newest
+subdirectory. As of release time, @code{bison} version 3.0.5 is the newest
verified to work to build @theglibc{}.
@item
Perl 5
-Perl is not required, but it is used if present to test the
-installation. We may decide to use it elsewhere in the future. As of release
-time @code{perl} version 5.28.0 is the newest verified to work to build
-@theglibc{}.
+Perl is not required, but if present it is used in some tests and the
+@code{mtrace} program, to build the @glibcadj{} manual. As of release
+time @code{perl} version 5.28.2 is the newest verified to work to
+build @theglibc{}.
@item
GNU @code{sed} 3.02 or newer
@@ -572,6 +569,34 @@ GNU @code{sed} 3.02 or newer
with any version of @code{sed}. As of release time, @code{sed} version
4.5 is the newest verified to work to build @theglibc{}.
+@item
+Python 3.4 or later
+
+Python is required to build @theglibc{}. As of release time, Python
+3.7.4 is the newest verified to work for building and testing
+@theglibc{}.
+
+@item PExpect 4.0
+
+The pretty printer tests drive GDB through test programs and compare
+its output to the printers'. PExpect is used to capture the output of
+GDB, and should be compatible with the Python version in your system.
+As of release time PExpect 4.3 is the newest verified to work to test
+the pretty printers.
+
+@item
+GDB 7.8 or later with support for Python 2.7/3.4 or later
+
+GDB itself needs to be configured with Python support in order to 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 @code{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
+printer tests will report themselves as @code{UNSUPPORTED}. Notice
+that some of the printer tests require @theglibc{} to be compiled with
+debugging symbols.
@end itemize
@noindent
diff --git a/manual/job.texi b/manual/job.texi
index 944967a73d..05a42ea820 100644
--- a/manual/job.texi
+++ b/manual/job.texi
@@ -19,9 +19,15 @@ You need to be familiar with concepts relating to process creation
Handling}) in order to understand this material presented in this
chapter.
+@vindex _POSIX_JOB_CONTROL
+Some old systems do not support job control, but @gnusystems{} always
+have, and it is a required feature in the 2001 revision of POSIX.1
+(@pxref{POSIX}). If you need to be portable to old systems, you can
+use the @code{_POSIX_JOB_CONTROL} macro to test at compile-time
+whether the system supports job control. @xref{System Options}.
+
@menu
* Concepts of Job Control:: Jobs can be controlled by a shell.
-* Job Control is Optional:: Not all POSIX systems support job control.
* Controlling Terminal:: How a process gets its controlling terminal.
* Access to the Terminal:: How processes share the controlling terminal.
* Orphaned Process Groups:: Jobs left after the user logs out.
@@ -29,7 +35,7 @@ chapter.
* Functions for Job Control:: Functions to control process groups.
@end menu
-@node Concepts of Job Control, Job Control is Optional, , Job Control
+@node Concepts of Job Control
@section Concepts of Job Control
@cindex shell
@@ -102,30 +108,7 @@ jobs between foreground and background.
@xref{Access to the Terminal}, for more information about I/O to the
controlling terminal.
-@node Job Control is Optional, Controlling Terminal, Concepts of Job Control , Job Control
-@section Job Control is Optional
-@cindex job control is optional
-
-Not all operating systems support job control. @gnusystems{} do
-support job control, but if you are using @theglibc{} on some other
-system, that system may not support job control itself.
-
-You can use the @code{_POSIX_JOB_CONTROL} macro to test at compile-time
-whether the system supports job control. @xref{System Options}.
-
-If job control is not supported, then there can be only one process
-group per session, which behaves as if it were always in the foreground.
-The functions for creating additional process groups simply fail with
-the error code @code{ENOSYS}.
-
-The macros naming the various job control signals (@pxref{Job Control
-Signals}) are defined even if job control is not supported. However,
-the system never generates these signals, and attempts to send a job
-control signal or examine or specify their actions report errors or do
-nothing.
-
-
-@node Controlling Terminal, Access to the Terminal, Job Control is Optional, Job Control
+@node Controlling Terminal
@section Controlling Terminal of a Process
One of the attributes of a process is its controlling terminal. Child
@@ -1166,9 +1149,6 @@ The @code{setpgid} function puts the process @var{pid} into the process
group @var{pgid}. As a special case, either @var{pid} or @var{pgid} can
be zero to indicate the process ID of the calling process.
-This function fails on a system that does not support job control.
-@xref{Job Control is Optional}, for more information.
-
If the operation is successful, @code{setpgid} returns zero. Otherwise
it returns @code{-1}. The following @code{errno} error conditions are
defined for this function:
@@ -1295,7 +1275,7 @@ process.
This function is used to obtain the process group ID of the session
for which the terminal specified by @var{fildes} is the controlling terminal.
If the call is successful the group ID is returned. Otherwise the
-return value is @code{(pid_t) -1} and the global variable @var{errno}
+return value is @code{(pid_t) -1} and the global variable @code{errno}
is set to the following value:
@table @code
@item EBADF
diff --git a/manual/libc.texinfo b/manual/libc.texinfo
index 23dd3acf9e..dc125dc2cc 100644
--- a/manual/libc.texinfo
+++ b/manual/libc.texinfo
@@ -53,7 +53,7 @@ This is
@value{VERSION} @value{PKGVERSION}.
@end ifclear
-Copyright @copyright{} 1993--2018 Free Software Foundation, Inc.
+Copyright @copyright{} 1993--2019 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version
@@ -95,7 +95,7 @@ supports it in developing GNU and promoting software freedom.''
@c Disabled (printed editions, see above).
@c @sp 2
-@c Published by the @uref{http://www.fsf.org/, Free Software Foundation} @*
+@c Published by the @uref{https://www.fsf.org/, Free Software Foundation} @*
@c ISBN @value{ISBN} @*
@c Disabled (printed editions, see above).
diff --git a/manual/libm-err-tab.pl b/manual/libm-err-tab.pl
deleted file mode 100755
index 768d2da098..0000000000
--- a/manual/libm-err-tab.pl
+++ /dev/null
@@ -1,206 +0,0 @@
-#!/usr/bin/perl -w
-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
-# This file is part of the GNU C Library.
-# Contributed by Andreas Jaeger <aj@suse.de>, 1999.
-
-# 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
-# <http://www.gnu.org/licenses/>.
-
-# Information about tests are stored in: %results
-# $results{$test}{"type"} is the result type, e.g. normal or complex.
-# In the following description $platform, $type and $float are:
-# - $platform is the used platform
-# - $type is either "normal", "real" (for the real part of a complex number)
-# or "imag" (for the imaginary part # of a complex number).
-# - $float is either of float, ifloat, double, idouble, ldouble, ildouble;
-# It represents the underlying floating point type (float, double or long
-# double) and if inline functions (the leading i stands for inline)
-# are used.
-# $results{$test}{$platform}{$type}{$float} is defined and has a delta
-# or 'fail' as value.
-
-use File::Find;
-
-use strict;
-
-use vars qw ($sources @platforms %pplatforms);
-use vars qw (%results @all_floats %suffices %all_functions);
-
-
-# all_floats is in output order and contains all recognised float types that
-# we're going to output
-@all_floats = ('float', 'double', 'ldouble', 'float128');
-%suffices =
- ( 'float' => 'f',
- 'double' => '',
- 'ldouble' => 'l',
- 'float128' => 'f128'
- );
-
-# Pretty description of platform
-%pplatforms = ();
-
-%all_functions = ();
-
-if ($#ARGV == 0) {
- $sources = $ARGV[0];
-} else {
- $sources = '/usr/src/cvs/libc';
-}
-
-find (\&find_files, $sources);
-
-@platforms = sort by_platforms @platforms;
-
-&print_all;
-
-sub find_files {
- if ($_ eq 'libm-test-ulps') {
- # print "Parsing $File::Find::name\n";
- push @platforms, $File::Find::dir;
- my ($file, $name);
- $file = "${File::Find::name}-name";
- open NAME, $file or die ("Can't open $file: $!");
- $name = <NAME>;
- chomp $name;
- close NAME;
- $pplatforms{$File::Find::dir} = $name;
- &parse_ulps ($File::Find::name, $File::Find::dir);
- }
-}
-
-# Parse ulps file
-sub parse_ulps {
- my ($file, $platform) = @_;
- my ($test, $type, $float, $eps, $ignore_fn);
-
- # $type has the following values:
- # "normal": No complex variable
- # "real": Real part of complex result
- # "imag": Imaginary part of complex result
- open ULP, $file or die ("Can't open $file: $!");
- while (<ULP>) {
- chop;
- # ignore comments and empty lines
- next if /^#/;
- next if /^\s*$/;
- if (/^Function: /) {
- if (/Real part of/) {
- s/Real part of //;
- $type = 'real';
- } elsif (/Imaginary part of/) {
- s/Imaginary part of //;
- $type = 'imag';
- } else {
- $type = 'normal';
- }
- ($test) = ($_ =~ /^Function:\s*\"([a-zA-Z0-9_]+)\"/);
- next;
- }
- if ($test =~ /_(downward|towardzero|upward|vlen)/) {
- $ignore_fn = 1;
- } else {
- $ignore_fn = 0;
- $all_functions{$test} = 1;
- }
- if (/^i?(float|double|ldouble|float128):/) {
- ($float, $eps) = split /\s*:\s*/,$_,2;
- if ($ignore_fn) {
- next;
- } elsif ($eps eq 'fail') {
- $results{$test}{$platform}{$type}{$float} = 'fail';
- } elsif ($eps eq "0") {
- # ignore
- next;
- } elsif (!exists $results{$test}{$platform}{$type}{$float}
- || $results{$test}{$platform}{$type}{$float} ne 'fail') {
- $results{$test}{$platform}{$type}{$float} = $eps;
- }
- if ($type =~ /^real|imag$/) {
- $results{$test}{'type'} = 'complex';
- } elsif ($type eq 'normal') {
- $results{$test}{'type'} = 'normal';
- }
- next;
- }
- print "Skipping unknown entry: `$_'\n";
- }
- close ULP;
-}
-
-sub get_value {
- my ($fct, $platform, $type, $float) = @_;
-
- return (exists $results{$fct}{$platform}{$type}{$float}
- ? $results{$fct}{$platform}{$type}{$float} : "0");
-}
-
-sub print_platforms {
- my (@p) = @_;
- my ($fct, $platform, $float, $first, $i, $platform_no, $platform_total);
-
- print '@multitable {nexttowardf} ';
- foreach (@p) {
- print ' {1000 + i 1000}';
- }
- print "\n";
-
- print '@item Function ';
- foreach (@p) {
- print ' @tab ';
- print $pplatforms{$_};
- }
- print "\n";
-
-
- foreach $fct (sort keys %all_functions) {
- foreach $float (@all_floats) {
- print "\@item $fct$suffices{$float} ";
- foreach $platform (@p) {
- print ' @tab ';
- if (exists $results{$fct}{$platform}{'normal'}{$float}
- || exists $results{$fct}{$platform}{'real'}{$float}
- || exists $results{$fct}{$platform}{'imag'}{$float}) {
- if ($results{$fct}{'type'} eq 'complex') {
- print &get_value ($fct, $platform, 'real', $float),
- ' + i ', &get_value ($fct, $platform, 'imag', $float);
- } else {
- print $results{$fct}{$platform}{'normal'}{$float};
- }
- } else {
- print '-';
- }
- }
- print "\n";
- }
- }
-
- print "\@end multitable\n";
-}
-
-sub print_all {
- my ($i, $max);
-
- my ($columns) = 5;
-
- # Print only 5 platforms at a time.
- for ($i=0; $i < $#platforms; $i+=$columns) {
- $max = $i+$columns-1 > $#platforms ? $#platforms : $i+$columns-1;
- print_platforms (@platforms[$i .. $max]);
- }
-}
-
-sub by_platforms {
- return $pplatforms{$a} cmp $pplatforms{$b};
-}
diff --git a/manual/llio.texi b/manual/llio.texi
index 2733b9cb73..fe59002915 100644
--- a/manual/llio.texi
+++ b/manual/llio.texi
@@ -1404,10 +1404,13 @@ failure occurs. The return value is zero if the end of the input file
is encountered immediately.
If no bytes can be copied, to report an error, @code{copy_file_range}
-returns the value @math{-1} and sets @code{errno}. The following
-@code{errno} error conditions are specific to this function:
+returns the value @math{-1} and sets @code{errno}. The table below
+lists some of the error conditions for this function.
@table @code
+@item ENOSYS
+The kernel does not implement the required functionality.
+
@item EISDIR
At least one of the descriptors @var{inputfd} or @var{outputfd} refers
to a directory.
@@ -1437,9 +1440,6 @@ reading.
The argument @var{outputfd} is not a valid file descriptor open for
writing, or @var{outputfd} has been opened with @code{O_APPEND}.
-
-@item EXDEV
-The input and output files reside on different file systems.
@end table
In addition, @code{copy_file_range} can fail with the error codes
@@ -2094,11 +2094,11 @@ descriptors. The usual thing is to pass @code{FD_SETSIZE} as the value
of this argument.
The @var{timeout} specifies the maximum time to wait. If you pass a
-null pointer for this argument, it means to block indefinitely until one
-of the file descriptors is ready. Otherwise, you should provide the
-time in @code{struct timeval} format; see @ref{High-Resolution
-Calendar}. Specify zero as the time (a @code{struct timeval} containing
-all zeros) if you want to find out which descriptors are ready without
+null pointer for this argument, it means to block indefinitely until
+one of the file descriptors is ready. Otherwise, you should provide
+the time in @code{struct timeval} format; see @ref{Time Types}.
+Specify zero as the time (a @code{struct timeval} containing all
+zeros) if you want to find out which descriptors are ready without
waiting if none are ready.
The normal return value from @code{select} is the total number of ready file
@@ -2197,7 +2197,7 @@ protected using cancellation handlers.
@c ref pthread_cleanup_push / pthread_cleanup_pop
The return value of the function is zero if no error occurred. Otherwise
-it is @math{-1} and the global variable @var{errno} is set to the
+it is @math{-1} and the global variable @code{errno} is set to the
following values:
@table @code
@item EBADF
@@ -2230,7 +2230,7 @@ required by @code{fdatasync}.
The prototype for @code{fdatasync} is in @file{unistd.h}.
The return value of the function is zero if no error occurred. Otherwise
-it is @math{-1} and the global variable @var{errno} is set to the
+it is @math{-1} and the global variable @code{errno} is set to the
following values:
@table @code
@item EBADF
@@ -3671,6 +3671,13 @@ The @code{O_EXCL} flag has a special meaning in combination with
@code{O_TMPFILE}; see below.
@end deftypevr
+@deftypevr Macro int O_DIRECTORY
+@standards{POSIX.1, fcntl.h}
+If set, the open operation fails if the given name is not the name of
+a directory. The @code{errno} variable is set to @code{ENOTDIR} for
+this error condition.
+@end deftypevr
+
@deftypevr Macro int O_TMPFILE
@standards{GNU, fcntl.h}
If this flag is specified, functions in the @code{open} family create an
diff --git a/manual/locale.texi b/manual/locale.texi
index dabb959f9e..720e0ca952 100644
--- a/manual/locale.texi
+++ b/manual/locale.texi
@@ -1209,10 +1209,11 @@ numbers according to these rules.
@deftypefun ssize_t strfmon (char *@var{s}, size_t @var{maxsize}, const char *@var{format}, @dots{})
@safety{@prelim{}@mtsafe{@mtslocale{}}@asunsafe{@ascuheap{}}@acunsafe{@acsmem{}}}
-@c It (and strfmon_l) both call vstrfmon_l, which, besides accessing the
-@c locale object passed to it, accesses the active locale through
-@c isdigit (but to_digit assumes ASCII digits only). It may call
-@c __printf_fp (@mtslocale @ascuheap @acsmem) and guess_grouping (safe).
+@c It (and strfmon_l) both call __vstrfmon_l_internal, which, besides
+@c accessing the locale object passed to it, accesses the active
+@c locale through isdigit (but to_digit assumes ASCII digits only).
+@c It may call __printf_fp (@mtslocale @ascuheap @acsmem) and
+@c guess_grouping (safe).
The @code{strfmon} function is similar to the @code{strftime} function
in that it takes a buffer, its size, a format string,
and values to write into the buffer as text in a form specified
diff --git a/manual/maint.texi b/manual/maint.texi
index fce06bfa88..ec234e15d7 100644
--- a/manual/maint.texi
+++ b/manual/maint.texi
@@ -5,6 +5,7 @@
@menu
* Source Layout:: How to add new functions or header files
to the GNU C Library.
+* Symbol handling:: How to handle symbols in the GNU C Library.
* Porting:: How to port the GNU C Library to
a new machine or operating system.
@end menu
@@ -183,6 +184,130 @@ header file in the machine-specific directory, e.g.,
@file{sysdeps/powerpc/sys/platform/ppc.h}.
+@node Symbol handling
+@appendixsec Symbol handling in the GNU C Library
+
+@menu
+* 64-bit time symbol handling :: How to handle 64-bit time related
+ symbols in the GNU C Library.
+@end menu
+
+@node 64-bit time symbol handling
+@appendixsubsec 64-bit time symbol handling in the GNU C Library
+
+With respect to time handling, @glibcadj{} configurations fall in two
+classes depending on the value of @code{__TIMESIZE}:
+
+@table @code
+
+@item @code{__TIMESIZE == 32}
+
+These @dfn{dual-time} configurations have both 32-bit and 64-bit time
+support. 32-bit time support provides type @code{time_t} and cannot
+handle dates beyond @dfn{Y2038}. 64-bit time support provides type
+@code{__time64_t} and can handle dates beyond @dfn{Y2038}.
+
+In these configurations, time-related types have two declarations,
+a 64-bit one, and a 32-bit one; and time-related functions generally
+have two definitions: a 64-bit one, and a 32-bit one which is a wrapper
+around the former. Therefore, for every @code{time_t}-related symbol,
+there is a corresponding @code{__time64_t}-related symbol, the name of
+which is usually the 32-bit symbol's name with @code{__} (a double
+underscore) prepended and @code{64} appended. For instance, the
+64-bit-time counterpart of @code{clock_gettime} is
+@code{__clock_gettime64}.
+
+@item @code{__TIMESIZE == 64}
+
+These @dfn{single-time} configurations only have a 64-bit @code{time_t}
+and related functions, which can handle dates beyond 2038-01-19
+03:14:07 (aka @dfn{Y2038}).
+
+In these configurations, time-related types only have a 64-bit
+declaration; and time-related functions only have one 64-bit definition.
+However, for every @code{time_t}-related symbol, there is a
+corresponding @code{__time64_t}-related macro, the name of which is
+derived as in the dual-time configuration case, and which expands to
+the symbol's name. For instance, the macro @code{__clock_gettime64}
+expands to @code{clock_gettime}.
+
+These macros are purely internal to @theglibc{} and exist only so that
+a single definition of the 64-bit time functions can be used on both
+single-time and dual-time configurations, and so that glibc code can
+freely call the 64-bit functions internally in all configurations.
+
+@end table
+
+@c The following paragraph should be removed once external interfaces
+@c get support for both time sizes.
+
+Note: at this point, 64-bit time support in dual-time configurations is
+work-in-progress, so for these configurations, the public API only makes
+the 32-bit time support available. In a later change, the public API
+will allow user code to choose the time size for a given compilation
+unit.
+
+64-bit variants of time-related types or functions are defined for all
+configurations and use 64-bit-time symbol names (for dual-time
+configurations) or macros (for single-time configurations).
+
+32-bit variants of time-related types or functions are defined only for
+dual-time configurations.
+
+Here is an example with @code{localtime}:
+
+Function @code{localtime} is declared in @file{time/time.h} as
+@smallexample
+extern struct tm *localtime (const time_t *__timer) __THROW;
+libc_hidden_proto (localtime)
+@end smallexample
+
+For single-time configurations, @code{__localtime64} is a macro which
+evaluates to @code{localtime}; for dual-time configurations,
+@code{__localtime64} is a function similar to @code{localtime} except
+it uses Y2038-proof types:
+@smallexample
+#if __TIMESIZE == 64
+# define __localtime64 localtime
+#else
+extern struct tm *__localtime64 (const __time64_t *__timer) __THROW;
+libc_hidden_proto (__localtime64)
+#endif
+@end smallexample
+
+(note: type @code{time_t} is replaced with @code{__time64_t} because
+@code{time_t} is not Y2038-proof, but @code{struct tm} is not
+replaced because it is already Y2038-proof.)
+
+The 64-bit-time implementation of @code{localtime} is written as follows
+and is compiled for both dual-time and single-time configuration classes.
+
+@smallexample
+struct tm *
+__localtime64 (const __time64_t *t)
+@{
+ return __tz_convert (*t, 1, &_tmbuf);
+@}
+libc_hidden_def (__localtime64)
+@end smallexample
+
+The 32-bit-time implementation is a wrapper and is only compiled for
+dual-time configurations:
+
+@smallexample
+#if __TIMESIZE != 64
+
+struct tm *
+localtime (const time_t *t)
+@{
+ __time64_t t64 = *t;
+ return __localtime64 (&t64);
+@}
+libc_hidden_def (localtime)
+
+#endif
+@end smallexample
+
@node Porting
@appendixsec Porting @theglibc{}
diff --git a/manual/math.texi b/manual/math.texi
index d19a14b47d..4aaa106653 100644
--- a/manual/math.texi
+++ b/manual/math.texi
@@ -1835,7 +1835,7 @@ pointer @var{buffer}. The random number is returned in the variable
pointed to by @var{result}.
The return value of the function indicates whether the call succeeded.
-If the value is less than @code{0} an error occurred and @var{errno} is
+If the value is less than @code{0} an error occurred and @code{errno} is
set to indicate the problem.
This function is a GNU extension and should not be used in portable
diff --git a/manual/memory.texi b/manual/memory.texi
index a1435aad1a..b565dd69f2 100644
--- a/manual/memory.texi
+++ b/manual/memory.texi
@@ -1056,7 +1056,6 @@ systems that do not support @w{ISO C11}.
@c next_env_entry ok
@c strcspn dup ok
@c __libc_mallopt dup @mtasuconst:mallopt [setting mp_]
-@c __malloc_check_init @mtasuconst:malloc_hooks [setting hooks]
@c *__malloc_initialize_hook unguarded, ok
@c *__memalign_hook dup ok, unguarded
@c arena_get dup @asulock @aculock @acsfd @acsmem
diff --git a/manual/message.texi b/manual/message.texi
index 4cdff66eba..ef68693fd1 100644
--- a/manual/message.texi
+++ b/manual/message.texi
@@ -116,7 +116,7 @@ opaque type and can be used in calls to the other functions to refer to
this loaded catalog.
The return value is @code{(nl_catd) -1} in case the function failed and
-no catalog was loaded. The global variable @var{errno} contains a code
+no catalog was loaded. The global variable @code{errno} contains a code
for the error causing the failure. But even if the function call
succeeded this does not mean that all messages can be translated.
@@ -242,7 +242,7 @@ translation actually happened must look like this:
@end smallexample
@noindent
-When an error occurs the global variable @var{errno} is set to
+When an error occurs the global variable @code{errno} is set to
@table @var
@item EBADF
@@ -315,8 +315,8 @@ The @code{catclose} function can be used to free the resources
associated with a message catalog which previously was opened by a call
to @code{catopen}. If the resources can be successfully freed the
function returns @code{0}. Otherwise it returns @code{@minus{}1} and the
-global variable @var{errno} is set. Errors can occur if the catalog
-descriptor @var{catalog_desc} is not valid in which case @var{errno} is
+global variable @code{errno} is set. Errors can occur if the catalog
+descriptor @var{catalog_desc} is not valid in which case @code{errno} is
set to @code{EBADF}.
@end deftypefun
@@ -849,14 +849,14 @@ say more about this when we talk about the ways message catalogs are
selected (@pxref{Locating gettext catalog}).
The @code{gettext} function does not modify the value of the global
-@var{errno} variable. This is necessary to make it possible to write
+@code{errno} variable. This is necessary to make it possible to write
something like
@smallexample
printf (gettext ("Operation failed: %m\n"));
@end smallexample
-Here the @var{errno} value is used in the @code{printf} function while
+Here the @code{errno} value is used in the @code{printf} function while
processing the @code{%m} format element and if the @code{gettext}
function would change this value (it is called before @code{printf} is
called) we would get a wrong message.
@@ -1133,7 +1133,7 @@ only lead to problems.
The function returns the value which is from now on taken as the default
domain. If the system went out of memory the returned value is
-@code{NULL} and the global variable @var{errno} is set to @code{ENOMEM}.
+@code{NULL} and the global variable @code{errno} is set to @code{ENOMEM}.
Despite the return value type being @code{char *} the return string must
not be changed. It is allocated internally by the @code{textdomain}
function.
@@ -1190,7 +1190,7 @@ containing the name of the selected directory name. The string is
allocated internally in the function and must not be changed by the
user. If the system went out of core during the execution of
@code{bindtextdomain} the return value is @code{NULL} and the global
-variable @var{errno} is set accordingly.
+variable @code{errno} is set accordingly.
@end deftypefun
@@ -1585,7 +1585,7 @@ string containing the name of the selected codeset. The string is
allocated internally in the function and must not be changed by the
user. If the system went out of core during the execution of
@code{bind_textdomain_codeset}, the return value is @code{NULL} and the
-global variable @var{errno} is set accordingly.
+global variable @code{errno} is set accordingly.
@end deftypefun
diff --git a/manual/nss.texi b/manual/nss.texi
index 18361b6f42..821469a78a 100644
--- a/manual/nss.texi
+++ b/manual/nss.texi
@@ -56,13 +56,17 @@ functions to access the databases.
@noindent
The databases available in the NSS are
+@cindex aliases
@cindex ethers
@cindex group
+@cindex gshadow
@cindex hosts
+@cindex initgroups
@cindex netgroup
@cindex networks
-@cindex protocols
@cindex passwd
+@cindex protocols
+@cindex publickey
@cindex rpc
@cindex services
@cindex shadow
@@ -75,16 +79,22 @@ Ethernet numbers,
@comment @pxref{Ethernet Numbers}.
@item group
Groups of users, @pxref{Group Database}.
+@item gshadow
+Group passphrase hashes and related information.
@item hosts
Host names and numbers, @pxref{Host Names}.
+@item initgroups
+Supplementary group access list.
@item netgroup
Network wide list of host and users, @pxref{Netgroup Database}.
@item networks
Network names and numbers, @pxref{Networks Database}.
-@item protocols
-Network protocols, @pxref{Protocols Database}.
@item passwd
User identities, @pxref{User Database}.
+@item protocols
+Network protocols, @pxref{Protocols Database}.
+@item publickey
+Public keys for Secure RPC.
@item rpc
Remote procedure call names and numbers.
@comment @pxref{RPC Database}.
@@ -96,8 +106,8 @@ User passphrase hashes and related information.
@end table
@noindent
-There will be some more added later (@code{automount}, @code{bootparams},
-@code{netmasks}, and @code{publickey}).
+@c We currently don't implement automount, netmasks, or bootparams.
+More databases may be added later.
@node NSS Configuration File, NSS Module Internals, NSS Basics, Name Service Switch
@section The NSS Configuration File
@@ -159,6 +169,10 @@ these files since they should be placed in a directory where they are
found automatically. Only the names of all available services are
important.
+Lastly, some system software may make use of the NSS configuration file
+to store their own configuration for similar purposes. Examples of this
+include the @code{automount} service which is used by @code{autofs}.
+
@node Actions in the NSS configuration, Notes on NSS Configuration File, Services in the NSS configuration, NSS Configuration File
@subsection Actions in the NSS configuration
@@ -691,7 +705,7 @@ function. Therefore one must not misuse this buffer to save some state
information from one call to another.
Before the function returns with a failure code, the implementation
-should store the value of the local @var{errno} variable in the variable
+should store the value of the local @code{errno} variable in the variable
pointed to be @var{errnop}. This is important to guarantee the module
working in statically linked programs. The stored value must not be
zero.
@@ -725,7 +739,7 @@ The implementation of this function should honor the @var{stayopen}
flag set by the @code{set@var{DB}ent} function whenever this makes sense.
Before the function returns, the implementation should store the value of
-the local @var{errno} variable in the variable pointed to by
+the local @code{errno} variable in the variable pointed to by
@var{errnop}. This is important to guarantee the module works in
statically linked programs.
diff --git a/manual/probes.texi b/manual/probes.texi
index ab2a3102bb..0ea560ed78 100644
--- a/manual/probes.texi
+++ b/manual/probes.texi
@@ -243,6 +243,18 @@ This probe is triggered when the
value of this tunable.
@end deftp
+@deftp Probe memory_tcache_double_free (void *@var{$arg1}, int @var{$arg2})
+This probe is triggered when @code{free} determines that the memory
+being freed has probably already been freed, and resides in the
+per-thread cache. Note that there is an extremely unlikely chance
+that this probe will trigger due to random payload data remaining in
+the allocated memory matching the key used to detect double frees.
+This probe actually indicates that an expensive linear search of the
+tcache, looking for a double free, has happened. Argument @var{$arg1}
+is the memory location as passed to @code{free}, Argument @var{$arg2}
+is the tcache bin it resides in.
+@end deftp
+
@node Mathematical Function Probes
@section Mathematical Function Probes
diff --git a/manual/process.texi b/manual/process.texi
index b82b91f9f1..5728bde2cb 100644
--- a/manual/process.texi
+++ b/manual/process.texi
@@ -132,22 +132,19 @@ output channels of the command being executed.
This section gives an overview of processes and of the steps involved in
creating a process and making it run another program.
-@cindex process ID
-@cindex process lifetime
-Each process is named by a @dfn{process ID} number. A unique process ID
-is allocated to each process when it is created. The @dfn{lifetime} of
-a process ends when its termination is reported to its parent process;
-at that time, all of the process resources, including its process ID,
-are freed.
-
@cindex creating a process
@cindex forking a process
@cindex child process
@cindex parent process
-Processes are created with the @code{fork} system call (so the operation
-of creating a new process is sometimes called @dfn{forking} a process).
-The @dfn{child process} created by @code{fork} is a copy of the original
-@dfn{parent process}, except that it has its own process ID.
+@cindex subprocess
+A new processes is created when one of the functions
+@code{posix_spawn}, @code{fork}, or @code{vfork} is called. (The
+@code{system} and @code{popen} also create new processes internally.)
+Due to the name of the @code{fork} function, the act of creating a new
+process is sometimes called @dfn{forking} a process. Each new process
+(the @dfn{child process} or @dfn{subprocess}) is allocated a process
+ID, distinct from the process ID of the parent process. @xref{Process
+Identification}.
After forking a child process, both the parent and child processes
continue to execute normally. If you want your program to wait for a
@@ -174,11 +171,40 @@ too, instead of returning to the previous process image.
@node Process Identification
@section Process Identification
-The @code{pid_t} data type represents process IDs. You can get the
-process ID of a process by calling @code{getpid}. The function
-@code{getppid} returns the process ID of the parent of the current
-process (this is also known as the @dfn{parent process ID}). Your
-program should include the header files @file{unistd.h} and
+@cindex process ID
+Each process is named by a @dfn{process ID} number, a value of type
+@code{pid_t}. A process ID is allocated to each process when it is
+created. Process IDs are reused over time. The lifetime of a process
+ends when the parent process of the corresponding process waits on the
+process ID after the process has terminated. @xref{Process
+Completion}. (The parent process can arrange for such waiting to
+happen implicitly.) A process ID uniquely identifies a process only
+during the lifetime of the process. As a rule of thumb, this means
+that the process must still be running.
+
+Process IDs can also denote process groups and sessions.
+@xref{Job Control}.
+
+@cindex thread ID
+@cindex task ID
+@cindex thread group
+On Linux, threads created by @code{pthread_create} also receive a
+@dfn{thread ID}. The thread ID of the initial (main) thread is the
+same as the process ID of the entire process. Thread IDs for
+subsequently created threads are distinct. They are allocated from
+the same numbering space as process IDs. Process IDs and thread IDs
+are sometimes also referred to collectively as @dfn{task IDs}. In
+contrast to processes, threads are never waited for explicitly, so a
+thread ID becomes eligible for reuse as soon as a thread exits or is
+canceled. This is true even for joinable threads, not just detached
+threads. Threads are assigned to a @dfn{thread group}. In
+@theglibc{} implementation running on Linux, the process ID is the
+thread group ID of all threads in the process.
+
+You can get the process ID of a process by calling @code{getpid}. The
+function @code{getppid} returns the process ID of the parent of the
+current process (this is also known as the @dfn{parent process ID}).
+Your program should include the header files @file{unistd.h} and
@file{sys/types.h} to use these functions.
@pindex sys/types.h
@pindex unistd.h
@@ -202,6 +228,17 @@ The @code{getppid} function returns the process ID of the parent of the
current process.
@end deftypefun
+@deftypefun pid_t gettid (void)
+@standards{Linux, unistd.h}
+@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
+The @code{gettid} function returns the thread ID of the current
+thread. The returned value is obtained from the Linux kernel and is
+not subject to caching. See the discussion of thread IDs above,
+especially regarding reuse of the IDs of threads which have exited.
+
+This function is specific to Linux.
+@end deftypefun
+
@node Creating a Process
@section Creating a Process
diff --git a/manual/resource.texi b/manual/resource.texi
index 8bc2a803d4..60e6d61611 100644
--- a/manual/resource.texi
+++ b/manual/resource.texi
@@ -750,6 +750,14 @@ policy, if anything, only fine tunes the effect of that priority.
The symbols in this section are declared by including file @file{sched.h}.
+@strong{Portability Note:} In POSIX, the @code{pid_t} arguments of the
+functions below refer to process IDs. On Linux, they are actually
+thread IDs, and control how specific threads are scheduled with
+regards to the entire system. The resulting behavior does not conform
+to POSIX. This is why the following description refers to tasks and
+tasks IDs, and not processes and process IDs.
+@c https://sourceware.org/bugzilla/show_bug.cgi?id=14829
+
@deftp {Data Type} {struct sched_param}
@standards{POSIX, sched.h}
This structure describes an absolute priority.
@@ -765,11 +773,11 @@ absolute priority value
@c Direct syscall, Linux only.
This function sets both the absolute priority and the scheduling policy
-for a process.
+for a task.
It assigns the absolute priority value given by @var{param} and the
-scheduling policy @var{policy} to the process with Process ID @var{pid},
-or the calling process if @var{pid} is zero. If @var{policy} is
+scheduling policy @var{policy} to the task with ID @var{pid},
+or the calling task if @var{pid} is zero. If @var{policy} is
negative, @code{sched_setscheduler} keeps the existing scheduling policy.
The following macros represent the valid values for @var{policy}:
@@ -795,20 +803,20 @@ to this function are:
@item EPERM
@itemize @bullet
@item
-The calling process does not have @code{CAP_SYS_NICE} permission and
+The calling task does not have @code{CAP_SYS_NICE} permission and
@var{policy} is not @code{SCHED_OTHER} (or it's negative and the
existing policy is not @code{SCHED_OTHER}.
@item
-The calling process does not have @code{CAP_SYS_NICE} permission and its
-owner is not the target process' owner. I.e., the effective uid of the
-calling process is neither the effective nor the real uid of process
+The calling task does not have @code{CAP_SYS_NICE} permission and its
+owner is not the target task's owner. I.e., the effective uid of the
+calling task is neither the effective nor the real uid of task
@var{pid}.
@c We need a cross reference to the capabilities section, when written.
@end itemize
@item ESRCH
-There is no process with pid @var{pid} and @var{pid} is not zero.
+There is no task with pid @var{pid} and @var{pid} is not zero.
@item EINVAL
@itemize @bullet
@@ -835,8 +843,8 @@ tell you what the valid range is.
@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
@c Direct syscall, Linux only.
-This function returns the scheduling policy assigned to the process with
-Process ID (pid) @var{pid}, or the calling process if @var{pid} is zero.
+This function returns the scheduling policy assigned to the task with
+ID @var{pid}, or the calling task if @var{pid} is zero.
The return value is the scheduling policy. See
@code{sched_setscheduler} for the possible values.
@@ -849,7 +857,7 @@ The @code{errno} values specific to this function are:
@table @code
@item ESRCH
-There is no process with pid @var{pid} and it is not zero.
+There is no task with pid @var{pid} and it is not zero.
@item EINVAL
@var{pid} is negative.
@@ -869,7 +877,7 @@ absolute priority, use @code{sched_getparam}.
@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
@c Direct syscall, Linux only.
-This function sets a process' absolute priority.
+This function sets a task's absolute priority.
It is functionally identical to @code{sched_setscheduler} with
@var{policy} = @code{-1}.
@@ -883,13 +891,13 @@ It is functionally identical to @code{sched_setscheduler} with
@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
@c Direct syscall, Linux only.
-This function returns a process' absolute priority.
+This function returns a task's absolute priority.
-@var{pid} is the Process ID (pid) of the process whose absolute priority
-you want to know.
+@var{pid} is the task ID of the task whose absolute priority you want
+to know.
@var{param} is a pointer to a structure in which the function stores the
-absolute priority of the process.
+absolute priority of the task.
On success, the return value is @code{0}. Otherwise, it is @code{-1}
and @code{errno} is set accordingly. The @code{errno} values specific
@@ -898,7 +906,7 @@ to this function are:
@table @code
@item ESRCH
-There is no process with pid @var{pid} and it is not zero.
+There is no task with ID @var{pid} and it is not zero.
@item EINVAL
@var{pid} is negative.
@@ -914,7 +922,7 @@ There is no process with pid @var{pid} and it is not zero.
@c Direct syscall, Linux only.
This function returns the lowest absolute priority value that is
-allowable for a process with scheduling policy @var{policy}.
+allowable for a task with scheduling policy @var{policy}.
On Linux, it is 0 for SCHED_OTHER and 1 for everything else.
@@ -935,7 +943,7 @@ to this function are:
@c Direct syscall, Linux only.
This function returns the highest absolute priority value that is
-allowable for a process that with scheduling policy @var{policy}.
+allowable for a task that with scheduling policy @var{policy}.
On Linux, it is 0 for SCHED_OTHER and 99 for everything else.
@@ -956,8 +964,8 @@ to this function are:
@c Direct syscall, Linux only.
This function returns the length of the quantum (time slice) used with
-the Round Robin scheduling policy, if it is used, for the process with
-Process ID @var{pid}.
+the Round Robin scheduling policy, if it is used, for the task with
+task ID @var{pid}.
It returns the length of time as @var{interval}.
@c We need a cross-reference to where timespec is explained. But that
@@ -980,18 +988,18 @@ function, so there are no specific @code{errno} values.
@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
@c Direct syscall on Linux; alias to swtch on HURD.
-This function voluntarily gives up the process' claim on the CPU.
+This function voluntarily gives up the task's claim on the CPU.
-Technically, @code{sched_yield} causes the calling process to be made
+Technically, @code{sched_yield} causes the calling task to be made
immediately ready to run (as opposed to running, which is what it was
before). This means that if it has absolute priority higher than 0, it
-gets pushed onto the tail of the queue of processes that share its
+gets pushed onto the tail of the queue of tasks that share its
absolute priority and are ready to run, and it will run again when its
turn next arrives. If its absolute priority is 0, it is more
complicated, but still has the effect of yielding the CPU to other
-processes.
+tasks.
-If there are no other processes that share the calling process' absolute
+If there are no other tasks that share the calling task's absolute
priority, this function doesn't have any effect.
To the extent that the containing program is oblivious to what other
@@ -1429,6 +1437,27 @@ not leave a processor for the process or thread to run on.
This function is a GNU extension and is declared in @file{sched.h}.
@end deftypefun
+@deftypefun int getcpu (unsigned int *cpu, unsigned int *node)
+@standards{Linux, <sched.h>}
+@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
+The @code{getcpu} function identifies the processor and node on which
+the calling thread or process is currently running and writes them into
+the integers pointed to by the @var{cpu} and @var{node} arguments. The
+processor is a unique nonnegative integer identifying a CPU. The node
+is a unique nonnegative integer identifying a NUMA node. When either
+@var{cpu} or @var{node} is @code{NULL}, nothing is written to the
+respective pointer.
+
+The return value is @code{0} on success and @code{-1} on failure. The
+following @code{errno} error condition is defined for this function:
+
+@table @code
+@item ENOSYS
+The operating system does not support this function.
+@end table
+
+This function is Linux-specific and is declared in @file{sched.h}.
+@end deftypefun
@node Memory Resources
@section Querying memory available resources
diff --git a/manual/search.texi b/manual/search.texi
index 57dad7a56d..60c851229c 100644
--- a/manual/search.texi
+++ b/manual/search.texi
@@ -449,7 +449,7 @@ entry in the table is not the return value of the function. It is
returned by storing it in a pointer variable pointed to by the
@var{retval} parameter. The return value of the function is an integer
value indicating success if it is non-zero and failure if it is zero.
-In the latter case the global variable @var{errno} signals the reason for
+In the latter case the global variable @code{errno} signals the reason for
the failure.
@table @code
@@ -618,5 +618,28 @@ Since the functions used for the @var{action} parameter to @code{twalk}
must not modify the tree data, it is safe to run @code{twalk} in more
than one thread at the same time, working on the same tree. It is also
safe to call @code{tfind} in parallel. Functions which modify the tree
-must not be used, otherwise the behavior is undefined.
+must not be used, otherwise the behavior is undefined. However, it is
+difficult to pass data external to the tree to the callback function
+without resorting to global variables (and thread safety issues), so
+see the @code{twalk_r} function below.
+@end deftypefun
+
+@deftypefun void twalk_r (const void *@var{root}, void (*@var{action}) (const void *@var{key}, VISIT @var{which}, void *@var{closure}), void *@var{closure})
+@standards{GNU, search.h}
+@safety{@prelim{}@mtsafe{@mtsrace{:root}}@assafe{}@acsafe{}}
+For each node in the tree with a node pointed to by @var{root}, the
+@code{twalk_r} function calls the function provided by the parameter
+@var{action}. For leaf nodes the function is called exactly once with
+@var{which} set to @code{leaf}. For internal nodes the function is
+called three times, setting the @var{which} parameter of @var{action} to
+the appropriate value. The @var{closure} parameter is passed down to
+each call of the @var{action} function, unmodified.
+
+It is possible to implement the @code{twalk} function on top of the
+@code{twalk_r} function, which is why there is no separate level
+parameter.
+
+@smallexample
+@include twalk.c.texi
+@end smallexample
@end deftypefun
diff --git a/manual/setjmp.texi b/manual/setjmp.texi
index 3ce202d024..17bdcaec99 100644
--- a/manual/setjmp.texi
+++ b/manual/setjmp.texi
@@ -300,7 +300,7 @@ information about the current context's stack may be in the
architecture-specific subfields of the @code{uc_mcontext} field.
The function returns @code{0} if successful. Otherwise it returns
-@code{-1} and sets @var{errno} accordingly.
+@code{-1} and sets @code{errno} accordingly.
@end deftypefun
The @code{getcontext} function is similar to @code{setjmp} but it does
@@ -425,7 +425,7 @@ installed and execution continues as described in this context.
If @code{swapcontext} succeeds the function does not return unless the
context @var{oucp} is used without prior modification by
@code{makecontext}. The return value in this case is @code{0}. If the
-function fails it returns @code{-1} and sets @var{errno} accordingly.
+function fails it returns @code{-1} and sets @code{errno} accordingly.
@end deftypefun
@heading Example for SVID Context Handling
diff --git a/manual/signal.texi b/manual/signal.texi
index 9577ff091d..33e6646975 100644
--- a/manual/signal.texi
+++ b/manual/signal.texi
@@ -2246,7 +2246,9 @@ signal:
@table @code
@item @var{pid} > 0
-The process whose identifier is @var{pid}.
+The process whose identifier is @var{pid}. (On Linux, the signal is
+sent to the entire process even if @var{pid} is a thread ID distinct
+from the process ID.)
@item @var{pid} == 0
All processes in the same process group as the sender.
@@ -2289,6 +2291,21 @@ The @var{pid} argument does not refer to an existing process or group.
@end table
@end deftypefun
+@deftypefun int tgkill (pid_t @var{pid}, pid_t @var{tid}, int @var{signum})
+@standards{Linux, signal.h}
+@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
+The @code{tgkill} function sends the signal @var{signum} to the thread
+or process with ID @var{tid}, like the @code{kill} function, but only
+if the process ID of the thread @var{tid} is equal to @var{pid}. If
+the target thread belongs to another process, the function fails with
+@code{ESRCH}.
+
+The @code{tgkill} function can be used to avoid sending a signal to a
+thread in the wrong process if the caller ensures that the passed
+@var{pid} value is not reused by the kernel (for example, if it is the
+process ID of the current process, as returned by @code{getpid}).
+@end deftypefun
+
@deftypefun int killpg (int @var{pgid}, int @var{signum})
@standards{BSD, signal.h}
@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
diff --git a/manual/socket.texi b/manual/socket.texi
index a6c44b77c3..cd7c0e7b12 100644
--- a/manual/socket.texi
+++ b/manual/socket.texi
@@ -779,16 +779,17 @@ Internet namespace. It has the following members:
@table @code
@item sa_family_t sin_family
This identifies the address family or format of the socket address.
-You should store the value @code{AF_INET} in this member.
-@xref{Socket Addresses}.
+You should store the value @code{AF_INET} in this member. The address
+family is stored in host byte order. @xref{Socket Addresses}.
@item struct in_addr sin_addr
-This is the Internet address of the host machine. @xref{Host
-Addresses}, and @ref{Host Names}, for how to get a value to store
-here.
+This is the IPv4 address. @xref{Host Addresses}, and @ref{Host
+Names}, for how to get a value to store here. The IPv4 address is
+stored in network byte order.
@item unsigned short int sin_port
-This is the port number. @xref{Ports}.
+This is the port number. @xref{Ports}. The port number is stored in
+network byte order.
@end table
@end deftp
@@ -804,18 +805,36 @@ namespace. It has the following members:
@item sa_family_t sin6_family
This identifies the address family or format of the socket address.
You should store the value of @code{AF_INET6} in this member.
-@xref{Socket Addresses}.
+@xref{Socket Addresses}. The address family is stored in host byte
+order.
@item struct in6_addr sin6_addr
This is the IPv6 address of the host machine. @xref{Host
Addresses}, and @ref{Host Names}, for how to get a value to store
-here.
+here. The address is stored in network byte order.
@item uint32_t sin6_flowinfo
-This is a currently unimplemented field.
+@cindex flow label
+@cindex IPv6 flow label
+@cindex traffic class
+@cindex IPv6 traffic class
+This combines the IPv6 traffic class and flow label values, as found
+in the IPv6 header. This field is stored in network byte order. Only
+the 28 lower bits (of the number in network byte order) are used; the
+remainig bits must be zero. The lower 20 bits are the flow label, and
+bits 20 to 27 are the the traffic class. Typically, this field is
+zero.
+
+@item uint32_t sin6_scope_id
+@cindex scope ID
+@cindex IPv6 scope ID
+For link-local addresses, this identifies the interface on which this
+address is valid. The scope ID is stored in host byte order.
+Typically, this field is zero.
@item uint16_t sin6_port
-This is the port number. @xref{Ports}.
+This is the port number. @xref{Ports}. The port number is stored in
+network byte order.
@end table
@end deftp
diff --git a/manual/startup.texi b/manual/startup.texi
index 7395d32dd0..21c48cd037 100644
--- a/manual/startup.texi
+++ b/manual/startup.texi
@@ -1005,14 +1005,6 @@ This function actually terminates the process by raising a
intercept this signal; see @ref{Signal Handling}.
@end deftypefun
-@c Put in by rms. Don't remove.
-@cartouche
-@strong{Future Change Warning:} Proposed Federal censorship regulations
-may prohibit us from giving you information about the possibility of
-calling this function. We would be required to say that this is not an
-acceptable way of terminating a program.
-@end cartouche
-
@node Termination Internals
@subsection Termination Internals
diff --git a/manual/stdio.texi b/manual/stdio.texi
index bbd3061bab..8051603321 100644
--- a/manual/stdio.texi
+++ b/manual/stdio.texi
@@ -216,7 +216,9 @@ exists, @code{fopen} fails rather than opening it. If you use
file. This is equivalent to the @code{O_EXCL} option to the
@code{open} function (@pxref{Opening and Closing Files}).
-The @samp{x} modifier is part of @w{ISO C11}.
+The @samp{x} modifier is part of @w{ISO C11}, which says the file is
+created with exclusive access; in @theglibc{} this means the
+equivalent of @code{O_EXCL}.
@end table
The character @samp{b} in @var{opentype} has a standard meaning; it
diff --git a/manual/summary.pl b/manual/summary.pl
index 62897e9a79..9e7c67ad42 100755
--- a/manual/summary.pl
+++ b/manual/summary.pl
@@ -1,7 +1,7 @@
#!/usr/bin/perl
# Generate the Summary of Library Facilities (summary.texi).
-# Copyright (C) 2017-2018 Free Software Foundation, Inc.
+# Copyright (C) 2017-2019 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# Contributed by Rical Jasan <ricaljasan@pacific.net>, 2017.
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
# Anything declared in a header or defined in a standard should have
# its origins annotated using the @standards macro (see macro.texi).
diff --git a/manual/terminal.texi b/manual/terminal.texi
index d830baacd7..7293bfb393 100644
--- a/manual/terminal.texi
+++ b/manual/terminal.texi
@@ -2117,12 +2117,6 @@ at @var{buf} with length @var{len}.
This function is a GNU extension.
@end deftypefun
-@strong{Portability Note:} On @w{System V} derived systems, the file
-returned by the @code{ptsname} and @code{ptsname_r} functions may be
-STREAMS-based, and therefore require additional processing after opening
-before it actually behaves as a pseudo terminal.
-@c FIXME: xref STREAMS
-
Typical usage of these functions is illustrated by the following example:
@smallexample
int
@@ -2145,13 +2139,6 @@ open_pty_pair (int *amaster, int *aslave)
if (slave == -1)
goto close_master;
- if (isastream (slave))
- @{
- if (ioctl (slave, I_PUSH, "ptem") < 0
- || ioctl (slave, I_PUSH, "ldterm") < 0)
- goto close_slave;
- @}
-
*amaster = master;
*aslave = slave;
return 1;
diff --git a/manual/texinfo.tex b/manual/texinfo.tex
index db6416f0e4..d272d2adc3 100644
--- a/manual/texinfo.tex
+++ b/manual/texinfo.tex
@@ -3,12 +3,9 @@
% Load plain if necessary, i.e., if running under initex.
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
%
-\def\texinfoversion{2017-12-26.21}
+\def\texinfoversion{2018-12-28.17}
%
-% Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
-% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-% 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017
-% Free Software Foundation, Inc.
+% Copyright 1985, 1986, 1988, 1990-2018 Free Software Foundation, Inc.
%
% This texinfo.tex file is free software: you can redistribute it and/or
% modify it under the terms of the GNU General Public License as
@@ -244,17 +241,7 @@
%
\def\finalout{\overfullrule=0pt }
-% Do @cropmarks to get crop marks.
-%
-\newif\ifcropmarks
-\let\cropmarks = \cropmarkstrue
-%
-% Dimensions to add cropmarks at corners.
-% Added by P. A. MacKay, 12 Nov. 1986
-%
\newdimen\outerhsize \newdimen\outervsize % set by the paper size routines
-\newdimen\cornerlong \cornerlong=1pc
-\newdimen\cornerthick \cornerthick=.3pt
\newdimen\topandbottommargin \topandbottommargin=.75in
% Output a mark which sets \thischapter, \thissection and \thiscolor.
@@ -328,12 +315,12 @@
\newbox\footlinebox
% \onepageout takes a vbox as an argument.
-% \shipout a vbox for a single page, adding an optional header, footer,
-% cropmarks, and footnote. This also causes index entries for this page
-% to be written to the auxiliary files.
+% \shipout a vbox for a single page, adding an optional header, footer
+% and footnote. This also causes index entries for this page to be written
+% to the auxiliary files.
%
\def\onepageout#1{%
- \ifcropmarks \hoffset=0pt \else \hoffset=\normaloffset \fi
+ \hoffset=\normaloffset
%
\ifodd\pageno \advance\hoffset by \bindingoffset
\else \advance\hoffset by -\bindingoffset\fi
@@ -386,25 +373,6 @@
% Do this early so pdf references go to the beginning of the page.
\ifpdfmakepagedest \pdfdest name{\the\pageno} xyz\fi
%
- \ifcropmarks \vbox to \outervsize\bgroup
- \hsize = \outerhsize
- \vskip-\topandbottommargin
- \vtop to0pt{%
- \line{\ewtop\hfil\ewtop}%
- \nointerlineskip
- \line{%
- \vbox{\moveleft\cornerthick\nstop}%
- \hfill
- \vbox{\moveright\cornerthick\nstop}%
- }%
- \vss}%
- \vskip\topandbottommargin
- \line\bgroup
- \hfil % center the page within the outer (page) hsize.
- \ifodd\pageno\hskip\bindingoffset\fi
- \vbox\bgroup
- \fi
- %
\unvbox\headlinebox
\pagebody{#1}%
\ifdim\ht\footlinebox > 0pt
@@ -415,22 +383,6 @@
\unvbox\footlinebox
\fi
%
- \ifcropmarks
- \egroup % end of \vbox\bgroup
- \hfil\egroup % end of (centering) \line\bgroup
- \vskip\topandbottommargin plus1fill minus1fill
- \boxmaxdepth = \cornerthick
- \vbox to0pt{\vss
- \line{%
- \vbox{\moveleft\cornerthick\nsbot}%
- \hfill
- \vbox{\moveright\cornerthick\nsbot}%
- }%
- \nointerlineskip
- \line{\ewbot\hfil\ewbot}%
- }%
- \egroup % \vbox from first cropmarks clause
- \fi
}% end of \shipout\vbox
}% end of group with \indexdummies
\advancepageno
@@ -451,17 +403,6 @@
\ifr@ggedbottom \kern-\dimen@ \vfil \fi}
}
-% Here are the rules for the cropmarks. Note that they are
-% offset so that the space between them is truly \outerhsize or \outervsize
-% (P. A. MacKay, 12 November, 1986)
-%
-\def\ewtop{\vrule height\cornerthick depth0pt width\cornerlong}
-\def\nstop{\vbox
- {\hrule height\cornerthick depth\cornerlong width\cornerthick}}
-\def\ewbot{\vrule height0pt depth\cornerthick width\cornerlong}
-\def\nsbot{\vbox
- {\hrule height\cornerlong depth\cornerthick width\cornerthick}}
-
% Argument parsing
@@ -1528,6 +1469,9 @@ output) for that.)}
\startlink attr{/Border [0 0 0]}%
user{/Subtype /Link /A << /S /URI /URI (#1) >>}%
\endgroup}
+ % \pdfgettoks - Surround page numbers in #1 with @pdflink. #1 may
+ % be a simple number, or a list of numbers in the case of an index
+ % entry.
\def\pdfgettoks#1.{\setbox\boxA=\hbox{\toksA={#1.}\toksB={}\maketoks}}
\def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks}
\def\adn#1{\addtokens{\toksC}{#1}\global\countA=1\let\next=\maketoks}
@@ -2235,6 +2179,20 @@ end
\font\smallersy=cmsy8
\def\smallerecsize{0800}
+% Fonts for math mode superscripts (7pt).
+\def\sevennominalsize{7pt}
+\setfont\sevenrm\rmshape{7}{1000}{OT1}
+\setfont\seventt\ttshape{10}{700}{OT1TT}
+\setfont\sevenbf\bfshape{10}{700}{OT1}
+\setfont\sevenit\itshape{7}{1000}{OT1IT}
+\setfont\sevensl\slshape{10}{700}{OT1}
+\setfont\sevensf\sfshape{10}{700}{OT1}
+\setfont\sevensc\scshape{10}{700}{OT1}
+\setfont\seventtsl\ttslshape{10}{700}{OT1TT}
+\font\seveni=cmmi7
+\font\sevensy=cmsy7
+\def\sevenecsize{0700}
+
% Fonts for title page (20.4pt):
\def\titlenominalsize{20pt}
\setfont\titlerm\rmbshape{12}{\magstep3}{OT1}
@@ -2369,6 +2327,20 @@ end
\font\smallersy=cmsy8
\def\smallerecsize{0800}
+% Fonts for math mode superscripts (7pt).
+\def\sevennominalsize{7pt}
+\setfont\sevenrm\rmshape{7}{1000}{OT1}
+\setfont\seventt\ttshape{10}{700}{OT1TT}
+\setfont\sevenbf\bfshape{10}{700}{OT1}
+\setfont\sevenit\itshape{7}{1000}{OT1IT}
+\setfont\sevensl\slshape{10}{700}{OT1}
+\setfont\sevensf\sfshape{10}{700}{OT1}
+\setfont\sevensc\scshape{10}{700}{OT1}
+\setfont\seventtsl\ttslshape{10}{700}{OT1TT}
+\font\seveni=cmmi7
+\font\sevensy=cmsy7
+\def\sevenecsize{0700}
+
% Fonts for title page (20.4pt):
\def\titlenominalsize{20pt}
\setfont\titlerm\rmbshape{12}{\magstep3}{OT1}
@@ -2503,13 +2475,20 @@ end
% In order for the font changes to affect most math symbols and letters,
-% we have to define the \textfont of the standard families. We don't
-% bother to reset \scriptfont and \scriptscriptfont; awaiting user need.
+% we have to define the \textfont of the standard families.
+% We don't bother to reset \scriptscriptfont; awaiting user need.
%
\def\resetmathfonts{%
\textfont0=\rmfont \textfont1=\ifont \textfont2=\syfont
\textfont\itfam=\itfont \textfont\slfam=\slfont \textfont\bffam=\bffont
\textfont\ttfam=\ttfont \textfont\sffam=\sffont
+ %
+ % Fonts for superscript. Note that the 7pt fonts are used regardless
+ % of the current font size.
+ \scriptfont0=\sevenrm \scriptfont1=\seveni \scriptfont2=\sevensy
+ \scriptfont\itfam=\sevenit \scriptfont\slfam=\sevensl
+ \scriptfont\bffam=\sevenbf \scriptfont\ttfam=\seventt
+ \scriptfont\sffam=\sevensf
}
%
@@ -2519,6 +2498,9 @@ end
% to also set the current \fam for math mode. Our \STYLE (e.g., \rm)
% commands hardwire \STYLEfont to set the current font.
%
+% The fonts used for \ifont are for "math italics" (\itfont is for italics
+% in regular text). \syfont is also used in math mode only.
+%
% Each font-changing command also sets the names \lsize (one size lower)
% and \lllsize (three sizes lower). These relative commands are used
% in, e.g., the LaTeX logo and acronyms.
@@ -7963,6 +7945,7 @@ end
\gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb}
\gdef\magicamp{\let&=\amprm}
}
+\let\ampchar\&
\newcount\parencount
@@ -11677,7 +11660,7 @@ directory should work if nowhere else does.}
@markupsetuprqdefault
@c Local variables:
-@c eval: (add-hook 'write-file-hooks 'time-stamp)
+@c eval: (add-hook 'before-save-hook 'time-stamp)
@c page-delimiter: "^\\\\message\\|emacs-page"
@c time-stamp-start: "def\\\\texinfoversion{"
@c time-stamp-format: "%:y-%02m-%02d.%02H"
diff --git a/manual/threads.texi b/manual/threads.texi
index 87fda7d8e7..0858ef8f92 100644
--- a/manual/threads.texi
+++ b/manual/threads.texi
@@ -128,7 +128,7 @@ function returns @math{0}; otherwise, the return value is non-zero.
least until the elapsed time pointed to by @var{time_point} has been
reached. This function does not take an absolute time, but a duration
that the thread is required to be blocked. @xref{Time Basics}, and
-@ref{Elapsed Time}.
+@ref{Time Types}.
The thread may wake early if a signal that is not ignored is received.
In such a case, if @code{remaining} is not NULL, the remaining time
@@ -669,6 +669,100 @@ The system does not have sufficient memory.
@end table
@end deftypefun
+@comment semaphore.h
+@comment POSIX-proposed
+@deftypefun int sem_clockwait (sem_t *@var{sem}, clockid_t @var{clockid},
+ const struct timespec *@var{abstime})
+Behaves like @code{sem_timedwait} except the time @var{abstime} is measured
+against the clock specified by @var{clockid} rather than
+@code{CLOCK_REALTIME}. Currently, @var{clockid} must be either
+@code{CLOCK_MONOTONIC} or @code{CLOCK_REALTIME}.
+@end deftypefun
+
+@comment pthread.h
+@comment POSIX-proposed
+@deftypefun int pthread_cond_clockwait (pthread_cond_t *@var{cond}, pthread_mutex_t *@var{mutex},
+ clockid_t @var{clockid}, const struct timespec *@var{abstime})
+@safety{@prelim{}@mtsafe{}@asunsafe{@asulock{}}@acunsafe{@aculock{}}}
+@c If exactly the same function with arguments is called from a signal
+@c handler that interrupts between the mutex unlock and sleep then it
+@c will unlock the mutex twice resulting in undefined behaviour. Keep
+@c in mind that the unlock and sleep are only atomic with respect to other
+@c threads (really a happens-after relationship for pthread_cond_broadcast
+@c and pthread_cond_signal).
+@c In the AC case we would cancel the thread and the mutex would remain
+@c locked and we can't recover from that.
+Behaves like @code{pthread_cond_timedwait} except the time @var{abstime} is
+measured against the clock specified by @var{clockid} rather than the clock
+specified or defaulted when @code{pthread_cond_init} was called. Currently,
+@var{clockid} must be either @code{CLOCK_MONOTONIC} or
+@code{CLOCK_REALTIME}.
+@end deftypefun
+
+@comment pthread.h
+@comment POSIX-proposed
+@deftypefun int pthread_rwlock_clockrdlock (pthread_rwlock_t *@var{rwlock},
+ clockid_t @var{clockid},
+ const struct timespec *@var{abstime})
+
+@safety{@prelim{}@mtsafe{}@asunsafe{@asulock{}}@acunsafe{@aculock{}}}
+Behaves like @code{pthread_rwlock_timedrdlock} except the time
+@var{abstime} is measured against the clock specified by @var{clockid}
+rather than @code{CLOCK_REALTIME}. Currently, @var{clockid} must be either
+@code{CLOCK_MONOTONIC} or @code{CLOCK_REALTIME}, otherwise @code{EINVAL} is
+returned.
+@end deftypefun
+
+@comment pthread.h
+@comment POSIX-proposed
+@deftypefun int pthread_rwlock_clockwrlock (pthread_rwlock_t *@var{rwlock},
+ clockid_t @var{clockid},
+ const struct timespec *@var{abstime})
+
+@safety{@prelim{}@mtsafe{}@asunsafe{@asulock{}}@acunsafe{@aculock{}}}
+Behaves like @code{pthread_rwlock_timedwrlock} except the time
+@var{abstime} is measured against the clock specified by @var{clockid}
+rather than @code{CLOCK_REALTIME}. Currently, @var{clockid} must be either
+@code{CLOCK_MONOTONIC} or @code{CLOCK_REALTIME}, otherwise @code{EINVAL} is
+returned.
+@end deftypefun
+
+@comment pthread.h
+@comment GNU extension
+@deftypefun int pthread_tryjoin_np (pthread_t *@var{thread},
+ void **@var{thread_return})
+@standards{GNU, pthread.h}
+@safety{@prelim{}@mtsafe{}@asunsafe{@asulock{}}@acunsafe{@aculock{}}}
+Behaves like @code{pthread_join} except that it will return @code{EBUSY}
+immediately if the thread specified by @var{thread} has not yet terminated.
+@end deftypefun
+
+@comment pthread.h
+@comment GNU extension
+@deftypefun int pthread_timedjoin_np (pthread_t *@var{thread},
+ void **@var{thread_return},
+ const struct timespec *@var{abstime})
+@standards{GNU, pthread.h}
+@safety{@prelim{}@mtsafe{}@asunsafe{@asulock{}}@acunsafe{@aculock{}}}
+Behaves like @code{pthread_tryjoin_np} except that it will block until the
+absolute time @var{abstime} measured against @code{CLOCK_REALTIME} is
+reached if the thread has not terminated by that time and return
+@code{EBUSY}. If @var{abstime} is equal to @code{NULL} then the function
+will wait forever in the same way as @code{pthread_join}.
+@end deftypefun
+
+@comment pthread.h
+@comment GNU extension
+@deftypefun int pthread_clockjoin_np (pthread_t *@var{thread},
+ void **@var{thread_return},
+ clockid_t @var{clockid},
+ const struct timespec *@var{abstime})
+@standards{GNU, pthread.h}
+@safety{@prelim{}@mtsafe{}@asunsafe{@asulock{}}@acunsafe{@aculock{}}}
+Behaves like @code{pthread_timedjoin_np} except that the absolute time in
+@var{abstime} is measured against the clock specified by @var{clockid}.
+@end deftypefun
+
@c FIXME these are undocumented:
@c pthread_atfork
@c pthread_attr_destroy
@@ -786,6 +880,4 @@ The system does not have sufficient memory.
@c pthread_spin_trylock
@c pthread_spin_unlock
@c pthread_testcancel
-@c pthread_timedjoin_np
-@c pthread_tryjoin_np
@c pthread_yield
diff --git a/manual/time.texi b/manual/time.texi
index 4d154452eb..164c150f64 100644
--- a/manual/time.texi
+++ b/manual/time.texi
@@ -8,7 +8,8 @@ between different time representations.
@menu
* Time Basics:: Concepts and definitions.
-* Elapsed Time:: Data types to represent elapsed times
+* Time Types:: Data types to represent time.
+* Calculating Elapsed Time:: How to calculate the length of an interval.
* Processor And CPU Time:: Time a program has spent executing.
* Calendar Time:: Manipulation of ``real'' dates and times.
* Setting an Alarm:: Sending a signal after a specified time.
@@ -55,100 +56,186 @@ especially when they are part of a sequence of regularly repeating
events.
@cindex period of time
-@dfn{CPU time} is like calendar time, except that it is based on the
-subset of the time continuum when a particular process is actively
-using a CPU. CPU time is, therefore, relative to a process.
+A @dfn{simple calendar time} is a calendar time represented as an
+elapsed time since a fixed, implementation-specific calendar time
+called the @dfn{epoch}. This representation is convenient for doing
+calculations on calendar times, such as finding the elapsed time
+between two calendar times. Simple calendar times are independent of
+time zone; they represent the same instant in time regardless of where
+on the globe the computer is.
+
+POSIX says that simple calendar times do not include leap seconds, but
+some (otherwise POSIX-conformant) systems can be configured to include
+leap seconds in simple calendar times.
+@cindex leap seconds
+@cindex seconds, leap
+@cindex simple time
+@cindex simple calendar time
+@cindex calendar time, simple
+@cindex epoch
+
+A @dfn{broken-down time} is a calendar time represented by its
+components in the Gregorian calendar: year, month, day, hour, minute,
+and second. A broken-down time value is relative to a specific time
+zone, and so it is also sometimes called a @dfn{local time}.
+Broken-down times are most useful for input and output, as they are
+easier for people to understand, but more difficult to calculate with.
+@cindex broken-down time
+@cindex local time
+@cindex Gregorian calendar
+@cindex calendar, Gregorian
+
+@dfn{CPU time} measures the amount of time that a single process has
+actively used a CPU to perform computations. It does not include the
+time that process has spent waiting for external events. The system
+tracks the CPU time used by each process separately.
@cindex CPU time
-@dfn{Processor time} is an amount of time that a CPU is in use. In
-fact, it's a basic system resource, since there's a limit to how much
-can exist in any given interval (that limit is the elapsed time of the
-interval times the number of CPUs in the processor). People often call
-this CPU time, but we reserve the latter term in this manual for the
-definition above.
+@dfn{Processor time} measures the amount of time @emph{any} CPU has
+been in use by @emph{any} process. It is a basic system resource,
+since there's a limit to how much can exist in any given interval (the
+elapsed time of the interval times the number of CPUs in the computer)
+
+People often call this CPU time, but we reserve the latter term in
+this manual for the definition above.
@cindex processor time
-@node Elapsed Time
-@section Elapsed Time
-@cindex elapsed time
+@node Time Types
+@section Time Types
-One way to represent an elapsed time is with a simple arithmetic data
-type, as with the following function to compute the elapsed time between
-two calendar times. This function is declared in @file{time.h}.
+ISO C and POSIX define several data types for representing elapsed
+times, simple calendar times, and broken-down times.
-@deftypefun double difftime (time_t @var{time1}, time_t @var{time0})
+@deftp {Data Type} clock_t
@standards{ISO, time.h}
-@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
-The @code{difftime} function returns the number of seconds of elapsed
-time between calendar time @var{time1} and calendar time @var{time0}, as
-a value of type @code{double}. The difference ignores leap seconds
-unless leap second support is enabled.
+@code{clock_t} is used to measure processor and CPU time.
+It may be an integer or a floating-point type.
+Its values are counts of @dfn{clock ticks} since some arbitrary event
+in the past.
+The number of clock ticks per second is system-specific.
+@xref{Processor And CPU Time}, for further detail.
+@cindex clock ticks
+@cindex ticks, clock
+@end deftp
-In @theglibc{}, you can simply subtract @code{time_t} values. But on
-other systems, the @code{time_t} data type might use some other encoding
-where subtraction doesn't work directly.
-@end deftypefun
+@deftp {Data Type} time_t
+@standards{ISO, time.h}
+@code{time_t} is the simplest data type used to represent simple
+calendar time.
+
+In ISO C, @code{time_t} can be either an integer or a floating-point
+type, and the meaning of @code{time_t} values is not specified. The
+only things a strictly conforming program can do with @code{time_t}
+values are: pass them to @code{difftime} to get the elapsed time
+between two simple calendar times (@pxref{Calculating Elapsed Time}),
+and pass them to the functions that convert them to broken-down time
+(@pxref{Broken-down Time}).
+
+On POSIX-conformant systems, @code{time_t} is an integer type and its
+values represent the number of seconds elapsed since the @dfn{epoch},
+which is 00:00:00 on January 1, 1970, Coordinated Universal Time.
+
+@Theglibc{} additionally guarantees that @code{time_t} is a signed
+type, and that all of its functions operate correctly on negative
+@code{time_t} values, which are interpreted as times before the epoch.
+@cindex epoch
+@end deftp
+
+@deftp {Data Type} {struct timespec}
+@standards{POSIX.1, time.h}
+@cindex timespec
+@code{struct timespec} represents a simple calendar time, or an
+elapsed time, with sub-second resolution. It is declared in
+@file{time.h} and has the following members:
-@Theglibc{} provides two data types specifically for representing
-an elapsed time. They are used by various @glibcadj{} functions, and
-you can use them for your own purposes too. They're exactly the same
-except that one has a resolution in microseconds, and the other, newer
-one, is in nanoseconds.
+@table @code
+@item time_t tv_sec
+The number of whole seconds elapsed since the epoch (for a simple
+calendar time) or since some other starting point (for an elapsed
+time).
+
+@item long int tv_nsec
+The number of nanoseconds elapsed since the time given by the
+@code{tv_sec} member.
+
+When @code{struct timespec} values are produced by @glibcadj{}
+functions, the value in this field will always be greater than or
+equal to zero, and less than 1,000,000,000.
+When @code{struct timespec} values are supplied to @glibcadj{}
+functions, the value in this field must be in the same range.
+@end table
+@end deftp
@deftp {Data Type} {struct timeval}
@standards{BSD, sys/time.h}
@cindex timeval
-The @code{struct timeval} structure represents an elapsed time. It is
-declared in @file{sys/time.h} and has the following members:
+@code{struct timeval} is an older type for representing a simple
+calendar time, or an elapsed time, with sub-second resolution. It is
+almost the same as @code{struct timespec}, but provides only
+microsecond resolution. It is declared in @file{sys/time.h} and has
+the following members:
@table @code
@item time_t tv_sec
-This represents the number of whole seconds of elapsed time.
+The number of whole seconds elapsed since the epoch (for a simple
+calendar time) or since some other starting point (for an elapsed
+time).
@item long int tv_usec
-This is the rest of the elapsed time (a fraction of a second),
-represented as the number of microseconds. It is always less than one
-million.
-
+The number of microseconds elapsed since the time given by the
+@code{tv_sec} member.
+
+When @code{struct timeval} values are produced by @glibcadj{}
+functions, the value in this field will always be greater than or
+equal to zero, and less than 1,000,000.
+When @code{struct timeval} values are supplied to @glibcadj{}
+functions, the value in this field must be in the same range.
@end table
@end deftp
-@deftp {Data Type} {struct timespec}
-@standards{POSIX.1, sys/time.h}
-@cindex timespec
-The @code{struct timespec} structure represents an elapsed time. It is
-declared in @file{time.h} and has the following members:
+@deftp {Data Type} {struct tm}
+@standards{ISO, time.h}
+This is the data type used to represent a broken-down time. It has
+separate fields for year, month, day, and so on.
+@xref{Broken-down Time}, for further details.
+@end deftp
-@table @code
-@item time_t tv_sec
-This represents the number of whole seconds of elapsed time.
+@node Calculating Elapsed Time
+@section Calculating Elapsed Time
-@item long int tv_nsec
-This is the rest of the elapsed time (a fraction of a second),
-represented as the number of nanoseconds. It is always less than one
-billion.
+Often, one wishes to calculate an elapsed time as the difference
+between two simple calendar times. @Theglibc{} provides only one
+function for this purpose.
-@end table
-@end deftp
+@deftypefun double difftime (time_t @var{end}, time_t @var{begin})
+@standards{ISO, time.h}
+@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
+The @code{difftime} function returns the number of seconds of elapsed
+time from calendar time @var{begin} to calendar time @var{end}, as
+a value of type @code{double}.
+
+On POSIX-conformant systems, the advantage of using
+@samp{difftime (@var{end}, @var{begin})} over @samp{@var{end} - @var{begin}}
+is that it will produce the mathematically correct result even if
+@var{end} and @var{begin} are so far apart that a simple subtraction
+would overflow. However, if they are so far apart that a @code{double}
+cannot exactly represent the difference, the result will be inexact.
+
+On other systems, @code{time_t} values might be encoded in a way that
+prevents subtraction from working directly, and then @code{difftime}
+would be the only way to compute their difference.
+@end deftypefun
-It is often necessary to subtract two values of type @w{@code{struct
-timeval}} or @w{@code{struct timespec}}. Here is the best way to do
-this. It works even on some peculiar operating systems where the
-@code{tv_sec} member has an unsigned type.
+@Theglibc{} does not provide any functions for computing the
+difference between two values of type @w{@code{struct timeval}} or
+@w{@code{struct timespec}}. Here is the recommended way to do this
+calculation by hand. It works even on some peculiar operating systems
+where the @code{tv_sec} member has an unsigned type.
@smallexample
@include timeval_subtract.c.texi
@end smallexample
-Common functions that use @code{struct timeval} are @code{gettimeofday}
-and @code{settimeofday}.
-
-
-There are no @glibcadj{} functions specifically oriented toward
-dealing with elapsed times, but the calendar time, processor time, and
-alarm and sleeping functions have a lot to do with them.
-
-
@node Processor And CPU Time
@section Processor And CPU Time
@@ -233,12 +320,6 @@ by the @code{clock} function. POSIX requires that this value be one
million independent of the actual resolution.
@end deftypevr
-@deftp {Data Type} clock_t
-@standards{ISO, time.h}
-This is the type of the value returned by the @code{clock} function.
-Values of type @code{clock_t} are numbers of clock ticks.
-@end deftp
-
@deftypefun clock_t clock (void)
@standards{ISO, time.h}
@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
@@ -331,43 +412,15 @@ and @code{tms_stime} fields returned by @code{times}.
@node Calendar Time
@section Calendar Time
-This section describes facilities for keeping track of calendar time.
-@xref{Time Basics}.
-
-@Theglibc{} represents calendar time three ways:
-
-@itemize @bullet
-@item
-@dfn{Simple time} (the @code{time_t} data type) is a compact
-representation, typically giving the number of seconds of elapsed time
-since some implementation-specific base time.
-@cindex simple time
-
-@item
-There is also a "high-resolution time" representation. Like simple
-time, this represents a calendar time as an elapsed time since a base
-time, but instead of measuring in whole seconds, it uses a @code{struct
-timeval} data type, which includes fractions of a second. Use this time
-representation instead of simple time when you need greater precision.
-@cindex high-resolution time
-
-@item
-@dfn{Local time} or @dfn{broken-down time} (the @code{struct tm} data
-type) represents a calendar time as a set of components specifying the
-year, month, and so on in the Gregorian calendar, for a specific time
-zone. This calendar time representation is usually used only to
-communicate with people.
-@cindex local time
-@cindex broken-down time
-@cindex Gregorian calendar
-@cindex calendar, Gregorian
-@end itemize
+This section describes the functions for getting, setting, and
+manipulating calendar times.
@menu
-* Simple Calendar Time:: Facilities for manipulating calendar time.
-* High-Resolution Calendar:: A time representation with greater precision.
+* Getting the Time:: Functions for finding out what time it is.
+* Setting and Adjusting the Time::
+ Functions for setting and adjusting
+ the system clock.
* Broken-down Time:: Facilities for manipulating local time.
-* High Accuracy Clock:: Maintaining a high accuracy system clock.
* Formatting Calendar Time:: Converting times to strings.
* Parsing Date and Time:: Convert textual time and date information back
into broken-down time values.
@@ -377,175 +430,419 @@ communicate with people.
the time functions.
@end menu
-@node Simple Calendar Time
-@subsection Simple Calendar Time
-
-This section describes the @code{time_t} data type for representing calendar
-time as simple time, and the functions which operate on simple time objects.
-These facilities are declared in the header file @file{time.h}.
-@pindex time.h
+@node Getting the Time
+@subsection Getting the Time
-@cindex epoch
-@deftp {Data Type} time_t
-@standards{ISO, time.h}
-This is the data type used to represent simple time. Sometimes, it also
-represents an elapsed time. When interpreted as a calendar time value,
-it represents the number of seconds elapsed since 00:00:00 on January 1,
-1970, Coordinated Universal Time. (This calendar time is sometimes
-referred to as the @dfn{epoch}.) POSIX requires that this count not
-include leap seconds, but on some systems this count includes leap seconds
-if you set @code{TZ} to certain values (@pxref{TZ Variable}).
-
-Note that a simple time has no concept of local time zone. Calendar
-Time @var{T} is the same instant in time regardless of where on the
-globe the computer is.
-
-In @theglibc{}, @code{time_t} is equivalent to @code{long int}.
-In other systems, @code{time_t} might be either an integer or
-floating-point type.
-@end deftp
-
-The function @code{difftime} tells you the elapsed time between two
-simple calendar times, which is not always as easy to compute as just
-subtracting. @xref{Elapsed Time}.
+@Theglibc{} provides several functions for getting the current
+calendar time, with different levels of resolution.
@deftypefun time_t time (time_t *@var{result})
@standards{ISO, time.h}
@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
-The @code{time} function returns the current calendar time as a value of
-type @code{time_t}. If the argument @var{result} is not a null pointer,
-the calendar time value is also stored in @code{*@var{result}}. If the
-current calendar time is not available, the value
-@w{@code{(time_t)(-1)}} is returned.
+This is the simplest function for getting the current calendar time.
+It returns the calendar time as a value of type @code{time_t}; on
+POSIX systems, that means it has a resolution of one second. It
+uses the same clock as @w{@samp{clock_gettime (CLOCK_REALTIME_COARSE)}},
+when the clock is available or @w{@samp{clock_gettime (CLOCK_REALTIME)}}
+otherwise.
+
+If the argument @var{result} is not a null pointer, the calendar time
+value is also stored in @code{*@var{result}}.
+
+This function cannot fail.
@end deftypefun
-@c The GNU C library implements stime() with a call to settimeofday() on
-@c Linux.
-@deftypefun int stime (const time_t *@var{newtime})
-@standards{SVID, time.h}
-@standards{XPG, time.h}
-@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
-@c On unix, this is implemented in terms of settimeofday.
-@code{stime} sets the system clock, i.e., it tells the system that the
-current calendar time is @var{newtime}, where @code{newtime} is
-interpreted as described in the above definition of @code{time_t}.
+Some applications need more precise timekeeping than is possible with
+a @code{time_t} alone. Some applications also need more control over
+what is meant by ``the current time.'' For these applications, POSIX
+provides a function @code{clock_gettime} that can retrieve the time
+with up to nanosecond precision, from a variety of different clocks.
+Clocks can be system-wide, measuring time the same for all processes;
+or they can be per-process or per-thread, measuring CPU time consumed
+by a particular process, or some other similar resource. Each clock
+has its own resolution and epoch. You can find the resolution of a
+clock with the function @code{clock_getres}. There is no function to
+get the epoch for a clock; either it is fixed and documented, or the
+clock is not meant to be used to measure absolute times.
+
+@deftp {Data Type} clockid_t
+@standards{POSIX.1, time.h}
+The type @code{clockid_t} is used for constants that indicate which of
+several system clocks one wishes to use.
+@end deftp
+
+All systems that support this family of functions will define at least
+this clock constant:
+
+@deftypevr Macro clockid_t CLOCK_REALTIME
+@standards{POSIX.1, time.h}
+This clock uses the POSIX epoch, 00:00:00 on January 1, 1970, Coordinated
+Universal Time. It is close to, but not necessarily in lock-step with, the
+clocks of @code{time} (above) and of @code{gettimeofday} (below).
+@end deftypevr
+
+@cindex monotonic time
+A second clock constant which is not universal, but still very common,
+is for a clock measuring @dfn{monotonic time}. Monotonic time is
+useful for measuring elapsed times, because it guarantees that those
+measurements are not affected by changes to the system clock.
+
+@deftypevr Macro clockid_t CLOCK_MONOTONIC
+@standards{POSIX.1, time.h}
+System-wide clock that continuously measures the advancement of
+calendar time, ignoring discontinuous changes to the system's
+setting for absolute calendar time.
+
+The epoch for this clock is an unspecified point in the past.
+The epoch may change if the system is rebooted or suspended.
+Therefore, @code{CLOCK_MONOTONIC} cannot be used to measure
+absolute time, only elapsed time.
+@end deftypevr
-@code{settimeofday} is a newer function which sets the system clock to
-better than one second precision. @code{settimeofday} is generally a
-better choice than @code{stime}. @xref{High-Resolution Calendar}.
+Systems may support more than just these two clocks.
-Only the superuser can set the system clock.
+@deftypefun int clock_gettime (clockid_t @var{clock}, struct timespec *@var{ts})
+@standards{POSIX.1, time.h}
+Get the current time accoding to the clock identified by @var{clock},
+storing it as seconds and nanoseconds in @code{*@var{ts}}.
+@xref{Time Types}, for a description of @code{struct timespec}.
-If the function succeeds, the return value is zero. Otherwise, it is
-@code{-1} and @code{errno} is set accordingly:
+The return value is @code{0} on success and @code{-1} on failure. The
+following @code{errno} error condition is defined for this function:
@table @code
-@item EPERM
-The process is not superuser.
+@item EINVAL
+The clock identified by @var{clock} is not supported.
@end table
@end deftypefun
+@code{clock_gettime} reports the time scaled to seconds and
+nanoseconds, but the actual resolution of each clock may not be as
+fine as one nanosecond, and may not be the same for all clocks. POSIX
+also provides a function for finding out the actual resolution of a
+clock:
+
+@deftypefun int clock_getres (clockid_t @var{clock}, struct timespec *@var{res})
+@standards{POSIX.1, time.h}
+Get the actual resolution of the clock identified by @var{clock},
+storing it in @code{*@var{ts}}.
+
+For instance, if the clock hardware for @code{CLOCK_REALTIME}
+uses a quartz crystal that oscillates at 32.768 kHz,
+then its resolution would be 30.518 microseconds,
+and @w{@samp{clock_getres (CLOCK_REALTIME, &r)}} would set
+@code{r.tv_sec} to 0 and @code{r.tv_nsec} to 30518.
+The return value is @code{0} on success and @code{-1} on failure. The
+following @code{errno} error condition is defined for this function:
-@node High-Resolution Calendar
-@subsection High-Resolution Calendar
+@table @code
+@item EINVAL
+The clock identified by @var{clock} is not supported.
+@end table
+@end deftypefun
-The @code{time_t} data type used to represent simple times has a
-resolution of only one second. Some applications need more precision.
+These functions, and the constants that identify particular clocks,
+are declared in @file{time.h}.
-So, @theglibc{} also contains functions which are capable of
-representing calendar times to a higher resolution than one second. The
-functions and the associated data types described in this section are
-declared in @file{sys/time.h}.
-@pindex sys/time.h
+@strong{Portability Note:} On some systems, including systems that use
+older versions of @theglibc{}, programs that use @code{clock_gettime}
+or @code{clock_setres} must be linked with the @code{-lrt} library.
+This has not been necessary with @theglibc{} since version 2.17.
+
+@Theglibc{} also provides an older, but still widely used, function
+for getting the current time with a resolution of microseconds. This
+function is declared in @file{sys/time.h}.
-@deftp {Data Type} {struct timezone}
+@deftypefun int gettimeofday (struct timeval *@var{tp}, void *@var{tzp})
@standards{BSD, sys/time.h}
-The @code{struct timezone} structure is used to hold minimal information
-about the local time zone. It has the following members:
+@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
+Get the current calendar time, storing it as seconds and microseconds
+in @code{*@var{tp}}. @xref{Time Types}, for a description of
+@code{struct timeval}. The clock of @code{gettimeofday} is close to,
+but not necessarily in lock-step with, the clocks of @code{time} and of
+@w{@samp{clock_gettime (CLOCK_REALTIME)}} (see above).
+
+On some historic systems, if @var{tzp} was not a null pointer,
+information about a system-wide time zone would be written to
+@code{*@var{tzp}}. This feature is obsolete and not supported on
+@gnusystems{}. You should always supply a null pointer for this
+argument. Instead, use the facilities described in @ref{Time Zone
+Functions} and in @ref{Broken-down Time} for working with time zones.
+
+This function cannot fail, and its return value is always @code{0}.
+
+@strong{Portability Note:} As of the 2008 revision of POSIX, this
+function is considered obsolete. @Theglibc{} will continue to provide
+this function indefinitely, but new programs should use
+@code{clock_gettime} instead.
+@end deftypefun
+
+@node Setting and Adjusting the Time
+@subsection Setting and Adjusting the Time
+
+The clock hardware inside a modern computer is quite reliable, but it
+can still be wrong. The functions in this section allow one to set
+the system's idea of the current calendar time, and to adjust the rate
+at which the system counts seconds, so that the calendar time will
+both be accurate, and remain accurate.
+
+The functions in this section require special privileges to use.
+@xref{Users and Groups}.
+
+@deftypefun int clock_settime (clockid_t @var{clock}, const struct timespec *@var{ts})
+@standards{POSIX, time.h}
+@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
+Change the current calendar time, according to the clock identified by
+@var{clock}, to be the simple calendar time in @code{*@var{ts}}.
+
+Not all of the system's clocks can be changed. For instance, the
+@code{CLOCK_REALTIME} clock can be changed (with the appropriate
+privileges), but the @code{CLOCK_MONOTONIC} clock cannot.
+
+Because simple calendar times are independent of time zone, this
+function should not be used when the time zone changes (e.g.@: if the
+computer is physically moved from one zone to another). Instead, use
+the facilities described in @ref{Time Zone Functions}.
+
+@code{clock_settime} causes the clock to jump forwards or backwards,
+which can cause a variety of problems. Changing the
+@code{CLOCK_REALTIME} clock with @code{clock_settime} does not affect
+when timers expire (@pxref{Setting an Alarm}) or when sleeping
+processes wake up (@pxref{Sleeping}), which avoids some of the
+problems. Still, for small changes made while the system is running,
+it is better to use @code{ntp_adjtime} (below) to make a smooth
+transition from one time to another.
+
+The return value is @code{0} on success and @code{-1} on failure. The
+following @code{errno} error conditions are defined for this function:
@table @code
-@item int tz_minuteswest
-This is the number of minutes west of UTC.
+@item EINVAL
+The clock identified by @var{clock} is not supported or cannot be set
+at all, or the simple calendar time in @code{*@var{ts}} is invalid
+(for instance, @code{ts->tv_nsec} is negative or greater than 999,999,999).
-@item int tz_dsttime
-If nonzero, Daylight Saving Time applies during some part of the year.
+@item EPERM
+This process does not have the privileges required to set the clock
+identified by @var{clock}.
@end table
-The @code{struct timezone} type is obsolete and should never be used.
-Instead, use the facilities described in @ref{Time Zone Functions}.
+@strong{Portability Note}: On some systems, including systems that use
+older versions of @theglibc{}, programs that use @code{clock_settime}
+must be linked with the @code{-lrt} library. This has not been
+necessary with @theglibc{} since version 2.17.
+@end deftypefun
+
+@cindex time, high precision
+@cindex clock, high accuracy
+@cindex clock, disciplining
+@pindex sys/timex.h
+For systems that remain up and running for long periods, it is not
+enough to set the time once; one should also @dfn{discipline} the
+clock so that it does not drift away from the true calendar time.
+
+The @code{ntp_gettime} and @code{ntp_adjtime} functions provide an
+interface to monitor and discipline the system clock. For example,
+you can fine-tune the rate at which the clock ``ticks,'' and make
+small adjustments to the current reported calendar time smoothly, by
+temporarily speeding up or slowing down the clock.
+
+These functions' names begin with @samp{ntp_} because they were
+designed for use by programs implementing the Network Time Protocol to
+synchronize a system's clock with other systems' clocks and/or with
+external high-precision clock hardware.
+
+These functions, and the constants and structures they use, are
+declared in @file{sys/timex.h}.
+
+@tindex struct ntptimeval
+@deftp {Data Type} {struct ntptimeval}
+This structure is used to report information about the system clock.
+It contains the following members:
+@table @code
+@item struct timeval time
+The current calendar time, as if retrieved by @code{gettimeofday}.
+The @code{struct timeval} data type is described in
+@ref{Time Types}.
+
+@item long int maxerror
+This is the maximum error, measured in microseconds. Unless updated
+via @code{ntp_adjtime} periodically, this value will reach some
+platform-specific maximum value.
+
+@item long int esterror
+This is the estimated error, measured in microseconds. This value can
+be set by @code{ntp_adjtime} to indicate the estimated offset of the
+system clock from the true calendar time.
+@end table
@end deftp
-@deftypefun int gettimeofday (struct timeval *@var{tp}, struct timezone *@var{tzp})
-@standards{BSD, sys/time.h}
+@deftypefun int ntp_gettime (struct ntptimeval *@var{tptr})
+@standards{GNU, sys/timex.h}
@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
-@c On most GNU/Linux systems this is a direct syscall, but the posix/
-@c implementation (not used on GNU/Linux or GNU/Hurd) relies on time and
-@c localtime_r, saving and restoring tzname in an unsafe manner.
-@c On some GNU/Linux variants, ifunc resolvers are used in shared libc
-@c for vdso resolution. ifunc-vdso-revisit.
-The @code{gettimeofday} function returns the current calendar time as
-the elapsed time since the epoch in the @code{struct timeval} structure
-indicated by @var{tp}. (@pxref{Elapsed Time} for a description of
-@code{struct timeval}). Information about the time zone is returned in
-the structure pointed to by @var{tzp}. If the @var{tzp} argument is a null
-pointer, time zone information is ignored.
+@c Wrapper for adjtimex.
+The @code{ntp_gettime} function sets the structure pointed to by
+@var{tptr} to current values. The elements of the structure afterwards
+contain the values the timer implementation in the kernel assumes. They
+might or might not be correct. If they are not, an @code{ntp_adjtime}
+call is necessary.
-The return value is @code{0} on success and @code{-1} on failure. The
-following @code{errno} error condition is defined for this function:
+The return value is @code{0} on success and other values on failure. The
+following @code{errno} error conditions are defined for this function:
+
+@vtable @code
+@item TIME_ERROR
+The precision clock model is not properly set up at the moment, thus the
+clock must be considered unsynchronized, and the values should be
+treated with care.
+@end vtable
+@end deftypefun
+@tindex struct timex
+@deftp {Data Type} {struct timex}
+This structure is used to control and monitor the system clock. It
+contains the following members:
@table @code
-@item ENOSYS
-The operating system does not support getting time zone information, and
-@var{tzp} is not a null pointer. @gnusystems{} do not
-support using @w{@code{struct timezone}} to represent time zone
-information; that is an obsolete feature of 4.3 BSD.
-Instead, use the facilities described in @ref{Time Zone Functions}.
+@item unsigned int modes
+This variable controls whether and which values are set. Several
+symbolic constants have to be combined with @emph{binary or} to specify
+the effective mode. These constants start with @code{MOD_}.
+
+@item long int offset
+This value indicates the current offset of the system clock from the true
+calendar time. The value is given in microseconds. If bit
+@code{MOD_OFFSET} is set in @code{modes}, the offset (and possibly other
+dependent values) can be set. The offset's absolute value must not
+exceed @code{MAXPHASE}.
+
+
+@item long int frequency
+This value indicates the difference in frequency between the true
+calendar time and the system clock. The value is expressed as scaled
+PPM (parts per million, 0.0001%). The scaling is @code{1 <<
+SHIFT_USEC}. The value can be set with bit @code{MOD_FREQUENCY}, but
+the absolute value must not exceed @code{MAXFREQ}.
+
+@item long int maxerror
+This is the maximum error, measured in microseconds. A new value can be
+set using bit @code{MOD_MAXERROR}. Unless updated via
+@code{ntp_adjtime} periodically, this value will increase steadily
+and reach some platform-specific maximum value.
+
+@item long int esterror
+This is the estimated error, measured in microseconds. This value can
+be set using bit @code{MOD_ESTERROR}.
+
+@item int status
+This variable reflects the various states of the clock machinery. There
+are symbolic constants for the significant bits, starting with
+@code{STA_}. Some of these flags can be updated using the
+@code{MOD_STATUS} bit.
+
+@item long int constant
+This value represents the bandwidth or stiffness of the PLL (phase
+locked loop) implemented in the kernel. The value can be changed using
+bit @code{MOD_TIMECONST}.
+
+@item long int precision
+This value represents the accuracy or the maximum error when reading the
+system clock. The value is expressed in microseconds.
+
+@item long int tolerance
+This value represents the maximum frequency error of the system clock in
+scaled PPM. This value is used to increase the @code{maxerror} every
+second.
+
+@item struct timeval time
+The current calendar time.
+
+@item long int tick
+The elapsed time between clock ticks in microseconds. A clock tick is a
+periodic timer interrupt on which the system clock is based.
+
+@item long int ppsfreq
+This is the first of a few optional variables that are present only if
+the system clock can use a PPS (pulse per second) signal to discipline
+the system clock. The value is expressed in scaled PPM and it denotes
+the difference in frequency between the system clock and the PPS signal.
+
+@item long int jitter
+This value expresses a median filtered average of the PPS signal's
+dispersion in microseconds.
+
+@item int shift
+This value is a binary exponent for the duration of the PPS calibration
+interval, ranging from @code{PPS_SHIFT} to @code{PPS_SHIFTMAX}.
+
+@item long int stabil
+This value represents the median filtered dispersion of the PPS
+frequency in scaled PPM.
+
+@item long int jitcnt
+This counter represents the number of pulses where the jitter exceeded
+the allowed maximum @code{MAXTIME}.
+
+@item long int calcnt
+This counter reflects the number of successful calibration intervals.
+
+@item long int errcnt
+This counter represents the number of calibration errors (caused by
+large offsets or jitter).
+
+@item long int stbcnt
+This counter denotes the number of calibrations where the stability
+exceeded the threshold.
@end table
-@end deftypefun
+@end deftp
-@deftypefun int settimeofday (const struct timeval *@var{tp}, const struct timezone *@var{tzp})
-@standards{BSD, sys/time.h}
+@deftypefun int ntp_adjtime (struct timex *@var{tptr})
+@standards{GNU, sys/timex.h}
@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
-@c On HURD, it calls host_set_time with a privileged port. On other
-@c unix systems, it's a syscall.
-The @code{settimeofday} function sets the current calendar time in the
-system clock according to the arguments. As for @code{gettimeofday},
-the calendar time is represented as the elapsed time since the epoch.
-As for @code{gettimeofday}, time zone information is ignored if
-@var{tzp} is a null pointer.
-
-You must be a privileged user in order to use @code{settimeofday}.
-
-Some kernels automatically set the system clock from some source such as
-a hardware clock when they start up. Others, including Linux, place the
-system clock in an ``invalid'' state (in which attempts to read the clock
-fail). A call of @code{stime} removes the system clock from an invalid
-state, and system startup scripts typically run a program that calls
-@code{stime}.
-
-@code{settimeofday} causes a sudden jump forwards or backwards, which
-can cause a variety of problems in a system. Use @code{adjtime} (below)
-to make a smooth transition from one time to another by temporarily
-speeding up or slowing down the clock.
-
-With a Linux kernel, @code{adjtimex} does the same thing and can also
-make permanent changes to the speed of the system clock so it doesn't
-need to be corrected as often.
+@c Alias to adjtimex syscall.
+The @code{ntp_adjtime} function sets the structure specified by
+@var{tptr} to current values.
-The return value is @code{0} on success and @code{-1} on failure. The
+In addition, @code{ntp_adjtime} updates some settings to match what you
+pass to it in *@var{tptr}. Use the @code{modes} element of *@var{tptr}
+to select what settings to update. You can set @code{offset},
+@code{freq}, @code{maxerror}, @code{esterror}, @code{status},
+@code{constant}, and @code{tick}.
+
+@code{modes} = zero means set nothing.
+
+Only the superuser can update settings.
+
+@c On Linux, ntp_adjtime() also does the adjtime() function if you set
+@c modes = ADJ_OFFSET_SINGLESHOT (in fact, that is how GNU libc implements
+@c adjtime()). But this should be considered an internal function because
+@c it's so inconsistent with the rest of what ntp_adjtime() does and is
+@c forced in an ugly way into the struct timex. So we don't document it
+@c and instead document adjtime() as the way to achieve the function.
+
+The return value is @code{0} on success and other values on failure. The
following @code{errno} error conditions are defined for this function:
@table @code
+@item TIME_ERROR
+The high accuracy clock model is not properly set up at the moment, thus the
+clock must be considered unsynchronized, and the values should be
+treated with care. Another reason could be that the specified new values
+are not allowed.
+
@item EPERM
-This process cannot set the clock because it is not privileged.
+The process specified a settings update, but is not superuser.
-@item ENOSYS
-The operating system does not support setting time zone information, and
-@var{tzp} is not a null pointer.
@end table
+
+For more details see RFC1305 (Network Time Protocol, Version 3) and
+related documents.
+
+@strong{Portability note:} Early versions of @theglibc{} did not
+have this function, but did have the synonymous @code{adjtimex}.
@end deftypefun
+
@c On Linux, GNU libc implements adjtime() as a call to adjtimex().
@deftypefun int adjtime (const struct timeval *@var{delta}, struct timeval *@var{olddelta})
@standards{BSD, sys/time.h}
@@ -553,10 +850,11 @@ The operating system does not support setting time zone information, and
@c On hurd and mach, call host_adjust_time with a privileged port. On
@c Linux, it's implemented in terms of adjtimex. On other unixen, it's
@c a syscall.
-This function speeds up or slows down the system clock in order to make
-a gradual adjustment. This ensures that the calendar time reported by
-the system clock is always monotonically increasing, which might not
-happen if you simply set the clock.
+This simpler version of @code{ntp_adjtime} speeds up or slows down the
+system clock for a short time, in order to correct it by a small
+amount. This avoids a discontinuous change in the calendar time
+reported by the @code{CLOCK_REALTIME} clock, at the price of having to
+wait longer for the time to become correct.
The @var{delta} argument specifies a relative adjustment to be made to
the clock time. If negative, the system clock is slowed down for a
@@ -567,37 +865,86 @@ If the @var{olddelta} argument is not a null pointer, the @code{adjtime}
function returns information about any previous time adjustment that
has not yet completed.
-This function is typically used to synchronize the clocks of computers
-in a local network. You must be a privileged user to use it.
-
-With a Linux kernel, you can use the @code{adjtimex} function to
-permanently change the clock speed.
-
The return value is @code{0} on success and @code{-1} on failure. The
following @code{errno} error condition is defined for this function:
@table @code
@item EPERM
-You do not have privilege to set the time.
+This process does not have the privileges required to adjust the
+@code{CLOCK_REALTIME} clock.
@end table
@end deftypefun
-@strong{Portability Note:} The @code{gettimeofday}, @code{settimeofday},
-and @code{adjtime} functions are derived from BSD.
+For compatibility, @theglibc{} also provides several older functions
+for controlling the system time. New programs should prefer to use
+the functions above.
+@deftypefun int stime (const time_t *@var{newtime})
+@standards{SVID, time.h}
+@standards{XPG, time.h}
+@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
+Change the @code{CLOCK_REALTIME} calendar time to be the simple
+calendar time in @code{*@var{newtime}}. Calling this function is
+exactly the same as calling @w{@samp{clock_settime (CLOCK_REALTIME)}},
+except that the new time can only be set to a precision of one second.
+
+This function is no longer available on @gnusystems{}, but it may be
+the @emph{only} way to set the time on very old Unix systems, so we
+continue to document it. If it is available, it is declared in
+@file{time.h}.
-Symbols for the following function are declared in @file{sys/timex.h}.
+The return value is @code{0} on success and @code{-1} on failure. The
+following @code{errno} error condition is defined for this function:
+
+@table @code
+@item EPERM
+This process does not have the privileges required to adjust the
+@code{CLOCK_REALTIME} clock.
+@end table
+@end deftypefun
@deftypefun int adjtimex (struct timex *@var{timex})
@standards{GNU, sys/timex.h}
@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
-@c It's a syscall, only available on linux.
+@code{adjtimex} is an older name for @code{ntp_adjtime}.
+This function is only available on @gnulinuxsystems{}.
+It is declared in @file{sys/timex.h}.
+@end deftypefun
+
+@deftypefun int settimeofday (const struct timeval *@var{tp}, const void *@var{tzp})
+@standards{BSD, sys/time.h}
+@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
+Change the @code{CLOCK_REALTIME} calendar time to be the simple
+calendar time in @code{*@var{newtime}}. This function is declared in
+@file{sys/time.h}.
+
+When @var{tzp} is a null pointer, calling this function is exactly the
+same as calling @w{@samp{clock_settime (CLOCK_REALTIME)}}, except that
+the new time can only be set to a precision of one microsecond.
-@code{adjtimex} is functionally identical to @code{ntp_adjtime}.
-@xref{High Accuracy Clock}.
+When @var{tzp} is not a null pointer, the data it points to @emph{may}
+be used to set a system-wide idea of the current timezone. This
+feature is obsolete and not supported on @gnusystems{}. Instead, use
+the facilities described in @ref{Time Zone Functions} and in
+@ref{Broken-down Time} for working with time zones.
-This function is present only with a Linux kernel.
+The return value is @code{0} on success and @code{-1} on failure. The
+following @code{errno} error conditions are defined for this function:
+
+@table @code
+@item EPERM
+This process does not have the privileges required to set the
+@code{CLOCK_REALTIME} clock.
+
+@item EINVAL
+Neither @var{tp} nor @var{tzp} is a null pointer. (For historical
+reasons, it is not possible to set the current time and the current
+time zone in the same call.)
+@item ENOSYS
+The operating system does not support setting time zone information, and
+@var{tzp} is not a null pointer.
+@end table
@end deftypefun
@node Broken-down Time
@@ -605,13 +952,13 @@ This function is present only with a Linux kernel.
@cindex broken-down time
@cindex calendar time and broken-down time
-Calendar time is represented by the usual @glibcadj{} functions as an
-elapsed time since a fixed base calendar time. This is convenient for
-computation, but has no relation to the way people normally think of
-calendar time. By contrast, @dfn{broken-down time} is a binary
-representation of calendar time separated into year, month, day, and so
-on. Broken-down time values are not useful for calculations, but they
-are useful for printing human readable time information.
+Simple calendar times represent absolute times as elapsed times since
+an epoch. This is convenient for computation, but has no relation to
+the way people normally think of calendar time. By contrast,
+@dfn{broken-down time} is a binary representation of calendar time
+separated into year, month, day, and so on. Broken-down time values
+are not useful for calculations, but they are useful for printing
+human readable time information.
A broken-down time value is always relative to a choice of time
zone, and it also indicates which time zone that is.
@@ -937,213 +1284,6 @@ the @code{TZ} environment variable to UTC, call @code{mktime}, then set
-@node High Accuracy Clock
-@subsection High Accuracy Clock
-
-@cindex time, high precision
-@cindex clock, high accuracy
-@pindex sys/timex.h
-@c On Linux, GNU libc implements ntp_gettime() and npt_adjtime() as calls
-@c to adjtimex().
-The @code{ntp_gettime} and @code{ntp_adjtime} functions provide an
-interface to monitor and manipulate the system clock to maintain high
-accuracy time. For example, you can fine tune the speed of the clock
-or synchronize it with another time source.
-
-A typical use of these functions is by a server implementing the Network
-Time Protocol to synchronize the clocks of multiple systems and high
-precision clocks.
-
-These functions are declared in @file{sys/timex.h}.
-
-@tindex struct ntptimeval
-@deftp {Data Type} {struct ntptimeval}
-This structure is used for information about the system clock. It
-contains the following members:
-@table @code
-@item struct timeval time
-This is the current calendar time, expressed as the elapsed time since
-the epoch. The @code{struct timeval} data type is described in
-@ref{Elapsed Time}.
-
-@item long int maxerror
-This is the maximum error, measured in microseconds. Unless updated
-via @code{ntp_adjtime} periodically, this value will reach some
-platform-specific maximum value.
-
-@item long int esterror
-This is the estimated error, measured in microseconds. This value can
-be set by @code{ntp_adjtime} to indicate the estimated offset of the
-system clock from the true calendar time.
-@end table
-@end deftp
-
-@deftypefun int ntp_gettime (struct ntptimeval *@var{tptr})
-@standards{GNU, sys/timex.h}
-@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
-@c Wrapper for adjtimex.
-The @code{ntp_gettime} function sets the structure pointed to by
-@var{tptr} to current values. The elements of the structure afterwards
-contain the values the timer implementation in the kernel assumes. They
-might or might not be correct. If they are not, an @code{ntp_adjtime}
-call is necessary.
-
-The return value is @code{0} on success and other values on failure. The
-following @code{errno} error conditions are defined for this function:
-
-@vtable @code
-@item TIME_ERROR
-The precision clock model is not properly set up at the moment, thus the
-clock must be considered unsynchronized, and the values should be
-treated with care.
-@end vtable
-@end deftypefun
-
-@tindex struct timex
-@deftp {Data Type} {struct timex}
-This structure is used to control and monitor the system clock. It
-contains the following members:
-@table @code
-@item unsigned int modes
-This variable controls whether and which values are set. Several
-symbolic constants have to be combined with @emph{binary or} to specify
-the effective mode. These constants start with @code{MOD_}.
-
-@item long int offset
-This value indicates the current offset of the system clock from the true
-calendar time. The value is given in microseconds. If bit
-@code{MOD_OFFSET} is set in @code{modes}, the offset (and possibly other
-dependent values) can be set. The offset's absolute value must not
-exceed @code{MAXPHASE}.
-
-
-@item long int frequency
-This value indicates the difference in frequency between the true
-calendar time and the system clock. The value is expressed as scaled
-PPM (parts per million, 0.0001%). The scaling is @code{1 <<
-SHIFT_USEC}. The value can be set with bit @code{MOD_FREQUENCY}, but
-the absolute value must not exceed @code{MAXFREQ}.
-
-@item long int maxerror
-This is the maximum error, measured in microseconds. A new value can be
-set using bit @code{MOD_MAXERROR}. Unless updated via
-@code{ntp_adjtime} periodically, this value will increase steadily
-and reach some platform-specific maximum value.
-
-@item long int esterror
-This is the estimated error, measured in microseconds. This value can
-be set using bit @code{MOD_ESTERROR}.
-
-@item int status
-This variable reflects the various states of the clock machinery. There
-are symbolic constants for the significant bits, starting with
-@code{STA_}. Some of these flags can be updated using the
-@code{MOD_STATUS} bit.
-
-@item long int constant
-This value represents the bandwidth or stiffness of the PLL (phase
-locked loop) implemented in the kernel. The value can be changed using
-bit @code{MOD_TIMECONST}.
-
-@item long int precision
-This value represents the accuracy or the maximum error when reading the
-system clock. The value is expressed in microseconds.
-
-@item long int tolerance
-This value represents the maximum frequency error of the system clock in
-scaled PPM. This value is used to increase the @code{maxerror} every
-second.
-
-@item struct timeval time
-The current calendar time.
-
-@item long int tick
-The elapsed time between clock ticks in microseconds. A clock tick is a
-periodic timer interrupt on which the system clock is based.
-
-@item long int ppsfreq
-This is the first of a few optional variables that are present only if
-the system clock can use a PPS (pulse per second) signal to discipline
-the system clock. The value is expressed in scaled PPM and it denotes
-the difference in frequency between the system clock and the PPS signal.
-
-@item long int jitter
-This value expresses a median filtered average of the PPS signal's
-dispersion in microseconds.
-
-@item int shift
-This value is a binary exponent for the duration of the PPS calibration
-interval, ranging from @code{PPS_SHIFT} to @code{PPS_SHIFTMAX}.
-
-@item long int stabil
-This value represents the median filtered dispersion of the PPS
-frequency in scaled PPM.
-
-@item long int jitcnt
-This counter represents the number of pulses where the jitter exceeded
-the allowed maximum @code{MAXTIME}.
-
-@item long int calcnt
-This counter reflects the number of successful calibration intervals.
-
-@item long int errcnt
-This counter represents the number of calibration errors (caused by
-large offsets or jitter).
-
-@item long int stbcnt
-This counter denotes the number of calibrations where the stability
-exceeded the threshold.
-@end table
-@end deftp
-
-@deftypefun int ntp_adjtime (struct timex *@var{tptr})
-@standards{GNU, sys/timex.h}
-@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
-@c Alias to adjtimex syscall.
-The @code{ntp_adjtime} function sets the structure specified by
-@var{tptr} to current values.
-
-In addition, @code{ntp_adjtime} updates some settings to match what you
-pass to it in *@var{tptr}. Use the @code{modes} element of *@var{tptr}
-to select what settings to update. You can set @code{offset},
-@code{freq}, @code{maxerror}, @code{esterror}, @code{status},
-@code{constant}, and @code{tick}.
-
-@code{modes} = zero means set nothing.
-
-Only the superuser can update settings.
-
-@c On Linux, ntp_adjtime() also does the adjtime() function if you set
-@c modes = ADJ_OFFSET_SINGLESHOT (in fact, that is how GNU libc implements
-@c adjtime()). But this should be considered an internal function because
-@c it's so inconsistent with the rest of what ntp_adjtime() does and is
-@c forced in an ugly way into the struct timex. So we don't document it
-@c and instead document adjtime() as the way to achieve the function.
-
-The return value is @code{0} on success and other values on failure. The
-following @code{errno} error conditions are defined for this function:
-
-@table @code
-@item TIME_ERROR
-The high accuracy clock model is not properly set up at the moment, thus the
-clock must be considered unsynchronized, and the values should be
-treated with care. Another reason could be that the specified new values
-are not allowed.
-
-@item EPERM
-The process specified a settings update, but is not superuser.
-
-@end table
-
-For more details see RFC1305 (Network Time Protocol, Version 3) and
-related documents.
-
-@strong{Portability note:} Early versions of @theglibc{} did not
-have this function but did have the synonymous @code{adjtimex}.
-
-@end deftypefun
-
-
@node Formatting Calendar Time
@subsection Formatting Calendar Time
@@ -1339,7 +1479,7 @@ POSIX.2-1992 and by @w{ISO C99}, are:
@table @code
@item E
-Use the locale's alternate representation for date and time. This
+Use the locale's alternative representation for date and time. This
modifier applies to the @code{%c}, @code{%C}, @code{%x}, @code{%X},
@code{%y} and @code{%Y} format specifiers. In a Japanese locale, for
example, @code{%Ex} might yield a date format based on the Japanese
@@ -1347,15 +1487,19 @@ Emperors' reigns.
@item O
With all format specifiers that produce numbers: use the locale's
-alternate numeric symbols.
+alternative numeric symbols.
With @code{%B}, @code{%b}, and @code{%h}: use the grammatical form for
month names that is appropriate when the month is named by itself,
rather than the form that is appropriate when the month is used as
-part of a complete date. This is a GNU extension.
+part of a complete date. The @code{%OB} and @code{%Ob} formats are a
+C2X feature, specified in C2X to use the locale's `alternative' month
+name; @theglibc{} extends this specification to say that the form used
+in a complete date is the default and the form naming the month by
+itself is the alternative.
@end table
-If the format supports the modifier but no alternate representation
+If the format supports the modifier but no alternative representation
is available, it is ignored.
The conversion specifier ends with a format specifier taken from the
@@ -1372,14 +1516,16 @@ The full weekday name according to the current locale.
@item %b
The abbreviated month name according to the current locale, in the
grammatical form used when the month is part of a complete date.
-As a GNU extension, the @code{O} modifier can be used (@code{%Ob})
-to get the grammatical form used when the month is named by itself.
+As a C2X feature (with a more detailed specification in @theglibc{}),
+the @code{O} modifier can be used (@code{%Ob}) to get the grammatical
+form used when the month is named by itself.
@item %B
The full month name according to the current locale, in the
grammatical form used when the month is part of a complete date.
-As a GNU extension, the @code{O} modifier can be used (@code{%OB})
-to get the grammatical form used when the month is named by itself.
+As a C2X feature (with a more detailed specification in @theglibc{}),
+the @code{O} modifier can be used (@code{%OB}) to get the grammatical
+form used when the month is named by itself.
Note that not all languages need two different forms of the month
names, so the text produced by @code{%B} and @code{%OB}, and by
@@ -1393,6 +1539,10 @@ The preferred calendar time representation for the current locale.
The century of the year. This is equivalent to the greatest integer not
greater than the year divided by 100.
+If the @code{E} modifier is specified (@code{%EC}), instead produces
+the name of the period for the year (e.g.@: an era name) in the
+locale's alternative calendar.
+
This format was first standardized by POSIX.2-1992 and by @w{ISO C99}.
@item %d
@@ -1568,10 +1718,24 @@ The preferred time of day representation for the current locale.
The year without a century as a decimal number (range @code{00} through
@code{99}). This is equivalent to the year modulo 100.
+If the @code{E} modifier is specified (@code{%Ey}), instead produces
+the year number according to a locale-specific alternative calendar.
+Unlike @code{%y}, the number is @emph{not} reduced modulo 100.
+However, by default it is zero-padded to a minimum of two digits (this
+can be overridden by an explicit field width or by the @code{_} and
+@code{-} flags).
+
@item %Y
The year as a decimal number, using the Gregorian calendar. Years
before the year @code{1} are numbered @code{0}, @code{-1}, and so on.
+If the @code{E} modifier is specified (@code{%EY}), instead produces a
+complete representation of the year according to the locale's
+alternative calendar. Generally this will be some combination of the
+information produced by @code{%EC} and @code{%Ey}. As a GNU
+extension, the formatting flags @code{_} or @code{-} may be used with
+this conversion specifier; they affect how the year number is printed.
+
@item %z
@w{RFC 822}/@w{ISO 8601:1988} style numeric time zone (e.g.,
@code{-0600} or @code{+0100}), or nothing if no time zone is
@@ -2676,7 +2840,7 @@ This is the period between now and the first timer interrupt. If zero,
the alarm is disabled.
@end table
-The @code{struct timeval} data type is described in @ref{Elapsed Time}.
+The @code{struct timeval} data type is described in @ref{Time Types}.
@end deftp
@deftypefun int setitimer (int @var{which}, const struct itimerval *@var{new}, struct itimerval *@var{old})
@@ -2861,10 +3025,10 @@ The function returns as *@code{remaining} the elapsed time left in the
interval for which you requested to sleep. If the interval completed
without getting interrupted by a signal, this is zero.
-@code{struct timespec} is described in @xref{Elapsed Time}.
+@code{struct timespec} is described in @ref{Time Types}.
If the function returns because the interval is over the return value is
-zero. If the function returns @math{-1} the global variable @var{errno}
+zero. If the function returns @math{-1} the global variable @code{errno}
is set to the following values:
@table @code
diff --git a/manual/tsort.awk b/manual/tsort.awk
index c5bb50dddf..b0b0ee4d37 100644
--- a/manual/tsort.awk
+++ b/manual/tsort.awk
@@ -1,6 +1,6 @@
#!/usr/bin/awk -f
# Generate topologically sorted list of manual chapters.
-# Copyright (C) 1998-2018 Free Software Foundation, Inc.
+# Copyright (C) 1998-2019 Free Software Foundation, Inc.
# Written by Ulrich Drepper <drepper@cygnus.com>, 1998.
BEGIN {
diff --git a/manual/tunables.texi b/manual/tunables.texi
index bb4819bdf1..1687f9c939 100644
--- a/manual/tunables.texi
+++ b/manual/tunables.texi
@@ -32,6 +32,7 @@ their own namespace.
* Tunable names:: The structure of a tunable name
* Memory Allocation Tunables:: Tunables in the memory allocation subsystem
* Elision Tunables:: Tunables in elision subsystem
+* POSIX Thread Tunables:: Tunables in the POSIX thread subsystem
* Hardware Capability Tunables:: Tunables that modify the hardware
capabilities seen by @theglibc{}
@end menu
@@ -188,8 +189,8 @@ per-thread cache. The default (and maximum) value is 1032 bytes on
@deftp Tunable glibc.malloc.tcache_count
The maximum number of chunks of each size to cache. The default is 7.
-There is no upper limit, other than available system memory. If set
-to zero, the per-thread cache is effectively disabled.
+The upper limit is 65535. If set to zero, the per-thread cache is effectively
+disabled.
The approximate maximum overhead of the per-thread cache is thus equal
to the number of bins times the chunk count in each bin times the size
@@ -213,6 +214,18 @@ pre-fill the per-thread cache with. The default, or when set to zero,
is no limit.
@end deftp
+@deftp Tunable glibc.malloc.mxfast
+One of the optimizations malloc uses is to maintain a series of ``fast
+bins'' that hold chunks up to a specific size. The default and
+maximum size which may be held this way is 80 bytes on 32-bit systems
+or 160 bytes on 64-bit systems. Applications which value size over
+speed may choose to reduce the size of requests which are serviced
+from fast bins with this tunable. Note that the value specified
+includes malloc's internal overhead, which is normally the size of one
+pointer, so add 4 on 32-bit systems or 8 on 64-bit systems to the size
+passed to @code{malloc} for the largest bin size to enable.
+@end deftp
+
@node Elision Tunables
@section Elision Tunables
@cindex elision tunables
@@ -281,6 +294,32 @@ of try lock attempts.
The default value of this tunable is @samp{3}.
@end deftp
+@node POSIX Thread Tunables
+@section POSIX Thread Tunables
+@cindex pthread mutex tunables
+@cindex thread mutex tunables
+@cindex mutex tunables
+@cindex tunables thread mutex
+
+@deftp {Tunable namespace} glibc.pthread
+The behavior of POSIX threads can be tuned to gain performance improvements
+according to specific hardware capabilities and workload characteristics by
+setting the following tunables in the @code{pthread} namespace:
+@end deftp
+
+@deftp Tunable glibc.pthread.mutex_spin_count
+The @code{glibc.pthread.mutex_spin_count} tunable sets the maximum number of times
+a thread should spin on the lock before calling into the kernel to block.
+Adaptive spin is used for mutexes initialized with the
+@code{PTHREAD_MUTEX_ADAPTIVE_NP} GNU extension. It affects both
+@code{pthread_mutex_lock} and @code{pthread_mutex_timedlock}.
+
+The thread spins until either the maximum spin count is reached or the lock
+is acquired.
+
+The default value of this tunable is @samp{100}.
+@end deftp
+
@node Hardware Capability Tunables
@section Hardware Capability Tunables
@cindex hardware capability tunables
@@ -295,23 +334,23 @@ The default value of this tunable is @samp{3}.
@cindex non_temporal_threshold tunables
@cindex tunables, non_temporal_threshold
-@deftp {Tunable namespace} glibc.tune
+@deftp {Tunable namespace} glibc.cpu
Behavior of @theglibc{} can be tuned to assume specific hardware capabilities
-by setting the following tunables in the @code{tune} namespace:
+by setting the following tunables in the @code{cpu} namespace:
@end deftp
-@deftp Tunable glibc.tune.hwcap_mask
+@deftp Tunable glibc.cpu.hwcap_mask
This tunable supersedes the @env{LD_HWCAP_MASK} environment variable and is
identical in features.
The @code{AT_HWCAP} key in the Auxiliary Vector specifies instruction set
extensions available in the processor at runtime for some architectures. The
-@code{glibc.tune.hwcap_mask} tunable allows the user to mask out those
+@code{glibc.cpu.hwcap_mask} tunable allows the user to mask out those
capabilities at runtime, thus disabling use of those extensions.
@end deftp
-@deftp Tunable glibc.tune.hwcaps
-The @code{glibc.tune.hwcaps=-xxx,yyy,-zzz...} tunable allows the user to
+@deftp Tunable glibc.cpu.hwcaps
+The @code{glibc.cpu.hwcaps=-xxx,yyy,-zzz...} tunable allows the user to
enable CPU/ARCH feature @code{yyy}, disable CPU/ARCH feature @code{xxx}
and @code{zzz} where the feature name is case-sensitive and has to match
the ones in @code{sysdeps/x86/cpu-features.h}.
@@ -319,8 +358,8 @@ the ones in @code{sysdeps/x86/cpu-features.h}.
This tunable is specific to i386 and x86-64.
@end deftp
-@deftp Tunable glibc.tune.cached_memopt
-The @code{glibc.tune.cached_memopt=[0|1]} tunable allows the user to
+@deftp Tunable glibc.cpu.cached_memopt
+The @code{glibc.cpu.cached_memopt=[0|1]} tunable allows the user to
enable optimizations recommended for cacheable memory. If set to
@code{1}, @theglibc{} assumes that the process memory image consists
of cacheable (non-device) memory only. The default, @code{0},
@@ -329,36 +368,36 @@ indicates that the process may use device memory.
This tunable is specific to powerpc, powerpc64 and powerpc64le.
@end deftp
-@deftp Tunable glibc.tune.cpu
-The @code{glibc.tune.cpu=xxx} tunable allows the user to tell @theglibc{} to
+@deftp Tunable glibc.cpu.name
+The @code{glibc.cpu.name=xxx} tunable allows the user to tell @theglibc{} to
assume that the CPU is @code{xxx} where xxx may have one of these values:
@code{generic}, @code{falkor}, @code{thunderxt88}, @code{thunderx2t99},
-@code{thunderx2t99p1}.
+@code{thunderx2t99p1}, @code{ares}, @code{emag}.
This tunable is specific to aarch64.
@end deftp
-@deftp Tunable glibc.tune.x86_data_cache_size
-The @code{glibc.tune.x86_data_cache_size} tunable allows the user to set
+@deftp Tunable glibc.cpu.x86_data_cache_size
+The @code{glibc.cpu.x86_data_cache_size} tunable allows the user to set
data cache size in bytes for use in memory and string routines.
This tunable is specific to i386 and x86-64.
@end deftp
-@deftp Tunable glibc.tune.x86_shared_cache_size
-The @code{glibc.tune.x86_shared_cache_size} tunable allows the user to
+@deftp Tunable glibc.cpu.x86_shared_cache_size
+The @code{glibc.cpu.x86_shared_cache_size} tunable allows the user to
set shared cache size in bytes for use in memory and string routines.
@end deftp
-@deftp Tunable glibc.tune.x86_non_temporal_threshold
-The @code{glibc.tune.x86_non_temporal_threshold} tunable allows the user
+@deftp Tunable glibc.cpu.x86_non_temporal_threshold
+The @code{glibc.cpu.x86_non_temporal_threshold} tunable allows the user
to set threshold in bytes for non temporal store.
This tunable is specific to i386 and x86-64.
@end deftp
-@deftp Tunable glibc.tune.x86_ibt
-The @code{glibc.tune.x86_ibt} tunable allows the user to control how
+@deftp Tunable glibc.cpu.x86_ibt
+The @code{glibc.cpu.x86_ibt} tunable allows the user to control how
indirect branch tracking (IBT) should be enabled. Accepted values are
@code{on}, @code{off}, and @code{permissive}. @code{on} always turns
on IBT regardless of whether IBT is enabled in the executable and its
@@ -370,8 +409,8 @@ IBT on non-CET executables and shared libraries.
This tunable is specific to i386 and x86-64.
@end deftp
-@deftp Tunable glibc.tune.x86_shstk
-The @code{glibc.tune.x86_shstk} tunable allows the user to control how
+@deftp Tunable glibc.cpu.x86_shstk
+The @code{glibc.cpu.x86_shstk} tunable allows the user to control how
the shadow stack (SHSTK) should be enabled. Accepted values are
@code{on}, @code{off}, and @code{permissive}. @code{on} always turns on
SHSTK regardless of whether SHSTK is enabled in the executable and its
diff --git a/manual/users.texi b/manual/users.texi
index 4ed79ba26f..ec22ce6c1c 100644
--- a/manual/users.texi
+++ b/manual/users.texi
@@ -894,9 +894,9 @@ The @code{getlogin} function is declared in @file{unistd.h}, while
@c ttyname_r dup @ascuheap @acsmem @acsfd
@c strncpy dup ok
@c libc_lock_lock dup @asulock @aculock
-@c *libc_utmp_jump_table->setutent dup @mtasurace:utent @acsfd
-@c *libc_utmp_jump_table->getutline_r dup @mtasurace:utent @mtascusig:ALRM @mtascutimer
-@c *libc_utmp_jump_table->endutent dup @mtasurace:utent @asulock @aculock
+@c __libc_setutent dup @mtasurace:utent @acsfd
+@c __libc_getutline_r dup @mtasurace:utent @mtascusig:ALRM @mtascutimer
+@c __libc_endutent dup @mtasurace:utent @asulock @aculock
@c libc_lock_unlock dup ok
@c strlen dup ok
@c memcpy dup ok
@@ -1111,7 +1111,7 @@ compatibility only, @file{utmp.h} defines @code{ut_time} as an alias for
@c setutent @mtasurace:utent @asulock @aculock @acsfd
@c libc_lock_lock dup @asulock @aculock
-@c *libc_utmp_jump_table->setutent @mtasurace:utent @acsfd
+@c __libc_setutent @mtasurace:utent @acsfd
@c setutent_unknown @mtasurace:utent @acsfd
@c *libc_utmp_file_functions.setutent = setutent_file @mtasurace:utent @acsfd
@c open_not_cancel_2 dup @acsfd
@@ -1152,7 +1152,7 @@ A null pointer is returned in case no further entry is available.
@safety{@prelim{}@mtunsafe{@mtasurace{:utent}}@asunsafe{@asulock{}}@acunsafe{@aculock{} @acsfd{}}}
@c endutent @mtasurace:utent @asulock @aculock @acsfd
@c libc_lock_lock dup @asulock @aculock
-@c *libc_utmp_jump_table->endutent @mtasurace:utent @acsfd
+@c __libc_endutent @mtasurace:utent @acsfd
@c endutent_unknown ok
@c endutent_file @mtasurace:utent @acsfd
@c close_not_cancel_no_status dup @acsfd
@@ -1230,7 +1230,7 @@ over again.
@safety{@prelim{}@mtunsafe{@mtasurace{:utent} @mtascusig{:ALRM} @mtascutimer{}}@asunsafe{@asulock{}}@acunsafe{@aculock{} @acsfd{}}}
@c pututline @mtasurace:utent @mtascusig:ALRM @mtascutimer @asulock @aculock @acsfd
@c libc_lock_lock dup @asulock @aculock
-@c *libc_utmp_jump_table->pututline @mtasurace:utent @mtascusig:ALRM @mtascutimer @acsfd
+@c __libc_pututline @mtasurace:utent @mtascusig:ALRM @mtascutimer @acsfd
@c pututline_unknown @mtasurace:utent @acsfd
@c setutent_unknown dup @mtasurace:utent @acsfd
@c pututline_file @mtascusig:ALRM @mtascutimer @acsfd
@@ -1282,7 +1282,7 @@ user-provided buffer.
@safety{@prelim{}@mtunsafe{@mtasurace{:utent} @mtascusig{:ALRM} @mtascutimer{}}@asunsafe{@asulock{}}@acunsafe{@aculock{} @acsfd{}}}
@c getutent_r @mtasurace:utent @mtascusig:ALRM @mtascutimer @asulock @aculock @acsfd
@c libc_lock_lock dup @asulock @aculock
-@c *libc_utmp_jump_table->getutent_r @mtasurace:utent @mtascusig:ALRM @mtascutimer @acsfd
+@c __libc_getutent_r @mtasurace:utent @mtascusig:ALRM @mtascutimer @acsfd
@c getutent_r_unknown @mtasurace:utent @acsfd
@c setutent_unknown dup @mtasurace:utent @acsfd
@c getutent_r_file @mtasurace:utent @mtascusig:ALRM @mtascutimer
@@ -1319,7 +1319,7 @@ This function is a GNU extension.
@safety{@prelim{}@mtunsafe{@mtasurace{:utent} @mtascusig{:ALRM} @mtascutimer{}}@asunsafe{@asulock{}}@acunsafe{@aculock{} @acsfd{}}}
@c getutid_r @mtasurace:utent @mtascusig:ALRM @mtascutimer @asulock @aculock @acsfd
@c libc_lock_lock dup @asulock @aculock
-@c *libc_utmp_jump_table->getutid_r @mtasurace:utent @mtascusig:ALRM @mtascutimer @acsfd
+@c __libc_getutid_r @mtasurace:utent @mtascusig:ALRM @mtascutimer @acsfd
@c getutid_r_unknown @mtasurace:utent @acsfd
@c setutent_unknown dup @mtasurace:utent @acsfd
@c getutid_r_file @mtascusig:ALRM @mtascutimer
@@ -1349,7 +1349,7 @@ This function is a GNU extension.
@safety{@prelim{}@mtunsafe{@mtasurace{:utent} @mtascusig{:ALRM} @mtascutimer{}}@asunsafe{@asulock{}}@acunsafe{@aculock{} @acsfd{}}}
@c getutline_r @mtasurace:utent @mtascusig:ALRM @mtascutimer @asulock @aculock @acsfd
@c libc_lock_lock dup @asulock @aculock
-@c *libc_utmp_jump_table->getutline_r @mtasurace:utent @mtascusig:ALRM @mtascutimer @acsfd
+@c __libc_getutline_r @mtasurace:utent @mtascusig:ALRM @mtascutimer @acsfd
@c getutline_r_unknown @mtasurace:utent @acsfd
@c setutent_unknown dup @mtasurace:utent @acsfd
@c getutline_r_file @mtasurace:utent @mtascusig:ALRM @mtascutimer
@@ -1393,7 +1393,7 @@ be used.
@safety{@prelim{}@mtunsafe{@mtasurace{:utent}}@asunsafe{@asulock{} @ascuheap{}}@acunsafe{@aculock{} @acsmem{}}}
@c utmpname @mtasurace:utent @asulock @ascuheap @aculock @acsmem
@c libc_lock_lock dup @asulock @aculock
-@c *libc_utmp_jump_table->endutent dup @mtasurace:utent
+@c __libc_endutent dup @mtasurace:utent
@c strcmp dup ok
@c free dup @ascuheap @acsmem
@c strdup dup @ascuheap @acsmem
@@ -2034,7 +2034,7 @@ If a user with ID @var{uid} is found, the pointer returned in
or if an error occurred, the pointer returned in @var{result} is a null
pointer. The function returns zero or an error code. If the buffer
@var{buffer} is too small to contain all the needed information, the
-error code @code{ERANGE} is returned and @var{errno} is set to
+error code @code{ERANGE} is returned and @code{errno} is set to
@code{ERANGE}.
@end deftypefun
@@ -2353,7 +2353,7 @@ If a group with ID @var{gid} is found, the pointer returned in
or if an error occurred, the pointer returned in @var{result} is a null
pointer. The function returns zero or an error code. If the buffer
@var{buffer} is too small to contain all the needed information, the
-error code @code{ERANGE} is returned and @var{errno} is set to
+error code @code{ERANGE} is returned and @code{errno} is set to
@code{ERANGE}.
@end deftypefun
diff --git a/math/Makefile b/math/Makefile
index 90b3b68916..7aedacb9ad 100644
--- a/math/Makefile
+++ b/math/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
# Makefile for the math library.
@@ -25,7 +25,7 @@ include ../Makeconfig
headers := math.h bits/mathcalls.h bits/mathinline.h \
fpu_control.h complex.h bits/cmathcalls.h fenv.h \
bits/fenv.h bits/fenvinline.h bits/mathdef.h tgmath.h \
- bits/math-finite.h bits/math-vector.h \
+ bits/math-vector.h finclude/math-vector-fortran.h \
bits/libm-simd-decl-stubs.h bits/iscanonical.h \
bits/flt-eval-method.h bits/fp-fast.h bits/fp-logb.h \
bits/long-double.h bits/mathcalls-helper-functions.h \
@@ -42,7 +42,7 @@ extra-libs-others = $(extra-libs)
libm-support = s_lib_version s_matherr s_signgam \
fclrexcpt fgetexcptflg fraiseexcpt fsetexcptflg \
ftestexcept fegetround fesetround fegetenv feholdexcpt \
- fesetenv feupdateenv t_exp fedisblxcpt feenablxcpt \
+ fesetenv feupdateenv fedisblxcpt feenablxcpt \
fegetexcept fesetexcept fetestexceptflag fegetmode \
fesetmode
@@ -64,9 +64,9 @@ gen-libm-calls = cargF conjF cimagF crealF cabsF s_cacosF \
libm-calls = \
e_acosF e_acoshF e_asinF e_atan2F e_atanhF e_coshF e_expF e_fmodF \
e_hypotF e_j0F e_j1F e_jnF e_lgammaF_r e_logF e_log10F e_powF \
- e_rem_pio2F e_remainderF e_scalbF e_sinhF e_sqrtF e_gammaF_r \
+ e_remainderF e_scalbF e_sinhF e_sqrtF e_gammaF_r \
e_ilogbF \
- k_cosF k_sinF k_tanF s_asinhF s_atanF s_cbrtF \
+ k_tanF s_asinhF s_atanF s_cbrtF \
s_ceilF s_cosF s_erfF s_expm1F s_fabsF \
s_floorF s_log1pF s_logbF \
s_nextafterF s_nexttowardF s_rintF s_scalblnF \
@@ -119,23 +119,26 @@ test-types-basic = ldouble double float
# long double support
type-ldouble-suffix := l
-type-ldouble-routines := t_sincosl k_sincosl s_iscanonicall
+type-ldouble-routines := t_sincosl k_sinl k_cosl k_sincosl s_iscanonicall \
+ e_rem_pio2l
type-ldouble-yes := ldouble
# double support
type-double-suffix :=
type-double-routines := branred doasin dosincos mpa mpatan2 \
- mpatan mpsqrt mptan sincos32 \
- sincostab k_rem_pio2
+ k_rem_pio2 mpatan mpsqrt mptan sincos32 \
+ sincostab math_err e_exp_data e_log_data \
+ e_log2_data e_pow_log_data
# float support
type-float-suffix := f
-type-float-routines := k_rem_pio2f math_errf e_exp2f_data e_logf_data \
- e_log2f_data e_powf_log2_data
+type-float-routines := math_errf e_exp2f_data e_logf_data \
+ e_log2f_data e_powf_log2_data s_sincosf_data
# _Float128 support
type-float128-suffix := f128
-type-float128-routines := t_sincosf128 k_sincosf128
+type-float128-routines := t_sincosf128 k_sinf128 k_cosf128 k_sincosf128 \
+ e_rem_pio2f128
type-float128-yes := float128
# _Float64x may be supported, only as an alias type.
@@ -200,7 +203,7 @@ $(inst_libdir)/libm.so: $(common-objpfx)format.lds \
(echo '/* GNU ld script'; echo '*/';\
cat $<; \
echo 'GROUP ( $(slibdir)/libm.so$(libm.so-version) ' \
- 'AS_NEEDED ( $(libdir)/libmvec_nonshared.a $(slibdir)/libmvec.so$(libmvec.so-version) ) )' \
+ 'AS_NEEDED ( $(slibdir)/libmvec.so$(libmvec.so-version) ) )' \
) > $@.new
mv -f $@.new $@
@@ -225,8 +228,7 @@ tests = test-matherr-3 test-fenv basic-test \
test-tgmath-ret bug-nextafter bug-nexttoward bug-tgmath1 \
test-tgmath-int test-tgmath2 test-powl tst-CMPLX tst-CMPLX2 test-snan \
test-fenv-tls test-fenv-preserve test-fenv-return test-fenvinline \
- test-nearbyint-except test-fenv-clear test-signgam-finite \
- test-signgam-finite-c99 test-signgam-finite-c11 \
+ test-nearbyint-except test-fenv-clear \
test-nearbyint-except-2 test-signgam-uchar test-signgam-uchar-init \
test-signgam-uint test-signgam-uint-init test-signgam-ullong \
test-signgam-ullong-init test-nan-overflow test-nan-payload \
@@ -235,7 +237,7 @@ tests = test-matherr-3 test-fenv basic-test \
test-femode-traps test-iszero-excess-precision \
test-iseqsig-excess-precision test-flt-eval-method \
test-fp-ilogb-constants test-fp-llogb-constants \
- test-fe-snans-always-signal test-finite-macros test-narrow-macros \
+ test-fe-snans-always-signal test-narrow-macros \
test-nan-const $(tests-static)
tests-static = test-fpucw-static test-fpucw-ieee-static \
test-signgam-uchar-static test-signgam-uchar-init-static \
@@ -252,7 +254,6 @@ tests += test-math-isinff test-math-iszero test-math-issignaling \
test-math-iscanonical test-math-cxx11 test-math-iseqsig
endif
-ifneq (no,$(PERL))
libm-vec-tests = $(addprefix test-,$(libmvec-tests))
libm-test-support = $(foreach t,$(test-types),libm-test-support-$(t))
test-extras += $(libm-test-support)
@@ -263,9 +264,9 @@ extra-test-objs += $(addsuffix .o, $(libm-vec-test-wrappers))
ulps-file = $(firstword $(wildcard $(sysdirs:%=%/libm-test-ulps)))
-$(objpfx)libm-test-ulps.h: $(ulps-file) gen-libm-test.pl
+$(objpfx)libm-test-ulps.h: $(ulps-file) gen-libm-test.py
$(make-target-directory)
- $(PERL) gen-libm-test.pl -u $< -H $@
+ $(PYTHON) gen-libm-test.py -u $< -H $@
libm-test-funcs-auto = acos acosh asin asinh atan atan2 atanh cabs cacos \
cacosh carg casin casinh catan catanh cbrt ccos ccosh \
@@ -284,7 +285,8 @@ libm-test-funcs-noauto = canonicalize ceil cimag conj copysign cproj creal \
nextup remainder remquo rint round roundeven scalb \
scalbln scalbn setpayload setpayloadsig signbit \
significand totalorder totalordermag trunc ufromfp \
- ufromfpx
+ ufromfpx compat_totalorder compat_totalordermag
+libm-test-funcs-compat = compat_totalorder compat_totalordermag
libm-test-funcs-narrow = add div mul sub
libm-test-funcs-all = $(libm-test-funcs-auto) $(libm-test-funcs-noauto)
libm-test-c-auto = $(foreach f,$(libm-test-funcs-auto),libm-test-$(f).c)
@@ -295,17 +297,13 @@ generated += libm-test-ulps.h $(libm-test-c-auto) $(libm-test-c-noauto) \
$(libm-test-c-narrow)
libm-tests-base-normal = $(foreach t,$(test-types),test-$(t))
-libm-tests-base-finite = $(foreach t,$(test-types),test-$(t)-finite)
libm-tests-base-inline = $(foreach t,$(test-types),test-i$(t))
libm-tests-base-narrow = $(foreach t,$(test-type-pairs),test-$(t))
-libm-tests-base = $(libm-tests-base-normal) $(libm-tests-base-finite) \
- $(libm-tests-base-inline) $(libm-vec-tests)
+libm-tests-base = $(libm-tests-base-normal) $(libm-tests-base-inline) \
+ $(libm-vec-tests)
libm-tests-normal = $(foreach t,$(libm-tests-base-normal),\
$(foreach f,$(libm-test-funcs-all),\
$(t)-$(f)))
-libm-tests-finite = $(foreach t,$(libm-tests-base-finite),\
- $(foreach f,$(libm-test-funcs-all),\
- $(t)-$(f)))
libm-tests-inline = $(foreach t,$(libm-tests-base-inline),\
$(foreach f,$(libm-test-funcs-all),\
$(t)-$(f)))
@@ -314,17 +312,22 @@ libm-tests-narrow = $(foreach t,$(libm-tests-base-narrow),\
$(t)-$(f)))
libm-tests-vector = $(foreach t,$(libmvec-tests),\
$(foreach f,$($(t)-funcs),test-$(t)-$(f)))
-libm-tests = $(libm-tests-normal) $(libm-tests-finite) $(libm-tests-inline) \
+libm-tests = $(libm-tests-normal) $(libm-tests-inline) \
$(libm-tests-narrow) $(libm-tests-vector)
+libm-tests-compat = $(foreach t,$(libm-tests-base-normal) \
+ $(libm-tests-base-finite) \
+ $(libm-tests-base-inline),\
+ $(foreach f,$(libm-test-funcs-compat),\
+ $(t)-$(f)))
libm-tests-for-type = $(foreach f,$(libm-test-funcs-all),\
- test-$(1)-$(f) test-$(1)-finite-$(f) \
- test-i$(1)-$(f)) \
+ test-$(1)-$(f) test-i$(1)-$(f)) \
$(filter test-$(1)-%,$(libm-tests-vector) \
$(libm-tests-narrow))
libm-tests.o = $(addsuffix .o,$(libm-tests))
-tests += $(libm-tests)
+tests += $(filter-out $(libm-tests-compat),$(libm-tests))
+tests-internal += $(libm-tests-compat)
generated += $(addsuffix .c,$(libm-tests)) \
$(foreach t,$(test-types),libm-test-support-$(t).c)
@@ -333,24 +336,35 @@ libm-test-c-noauto-obj = $(addprefix $(objpfx),$(libm-test-c-noauto))
libm-test-c-narrow-obj = $(addprefix $(objpfx),$(libm-test-c-narrow))
$(libm-test-c-noauto-obj): $(objpfx)libm-test%.c: libm-test%.inc \
- gen-libm-test.pl
+ gen-libm-test.py
$(make-target-directory)
- $(PERL) gen-libm-test.pl -c $< -a /dev/null -C $@
+ $(PYTHON) gen-libm-test.py -c $< -a /dev/null -C $@
$(libm-test-c-auto-obj): $(objpfx)libm-test%.c: libm-test%.inc \
- gen-libm-test.pl \
+ gen-libm-test.py \
auto-libm-test-out%
$(make-target-directory)
- $(PERL) gen-libm-test.pl -c $< -a auto-libm-test-out$* -C $@
+ $(PYTHON) gen-libm-test.py -c $< -a auto-libm-test-out$* -C $@
$(libm-test-c-narrow-obj): $(objpfx)libm-test%.c: libm-test%.inc \
- gen-libm-test.pl \
+ gen-libm-test.py \
auto-libm-test-out%
$(make-target-directory)
- $(PERL) gen-libm-test.pl -c $< -a auto-libm-test-out$* -C $@
-endif
+ $(PYTHON) gen-libm-test.py -c $< -a auto-libm-test-out$* -C $@
+
+# Tests for totalorder compat symbols reuse the table of tests as
+# processed by gen-libm-test.py, so add dependencies on the generated
+# .c files.
+$(foreach t,$(libm-tests-base),\
+ $(objpfx)$(t)-compat_totalorder.o): $(objpfx)libm-test-totalorder.c
+
+$(foreach t,$(libm-tests-base),\
+ $(objpfx)$(t)-compat_totalordermag.o): $(objpfx)libm-test-totalordermag.c
-ifdef PYTHON
+# _Float128x omitted as not supported by gen-tgmath-tests.py.
+tgmath3-narrow-types = f d f16 f32 f64 f128 f32x f64x
+tgmath3-narrow-macros = $(foreach t,$(tgmath3-narrow-types), \
+ $(foreach f,$(libm-narrow-fns),$(t)$(f)))
tgmath3-macros = atan2 cbrt ceil copysign erf erfc exp2 expm1 fdim floor \
fma fmax fmin fmod frexp hypot ilogb ldexp lgamma llrint \
llround log10 log1p log2 logb lrint lround nearbyint \
@@ -358,8 +372,7 @@ tgmath3-macros = atan2 cbrt ceil copysign erf erfc exp2 expm1 fdim floor \
scalbln tgamma trunc acos asin atan acosh asinh atanh cos \
sin tan cosh sinh tanh exp log pow sqrt fabs carg cimag conj \
cproj creal roundeven nextup nextdown fminmag fmaxmag llogb \
- fromfp fromfpx ufromfp ufromfpx totalorder totalordermag \
- scalb
+ fromfp fromfpx ufromfp ufromfpx scalb $(tgmath3-narrow-macros)
tgmath3-macro-tests = $(addprefix test-tgmath3-,$(tgmath3-macros))
tests += $(tgmath3-macro-tests)
generated += $(addsuffix .c,$(tgmath3-macro-tests))
@@ -377,7 +390,6 @@ tests-special += $(objpfx)test-tgmath3-macro-list.out
$(objpfx)test-tgmath3-macro-list.out: gen-tgmath-tests.py
$(PYTHON) $< check-list $(tgmath3-macros) > $@; \
$(evaluate-test)
-endif
libm-test-fast-math-cflags = -fno-builtin -D__FAST_MATH__ -DTEST_FAST_MATH
libm-test-vec-cflags = $(libm-test-fast-math-cflags) -fno-inline \
@@ -399,22 +411,17 @@ CFLAGS-test-float-vlen16-wrappers.c += $(float-vlen16-arch-ext-cflags)
# validated.
libm-test-no-inline-cflags = -fno-inline -ffloat-store -fno-builtin \
-fsignaling-nans
-libm-test-finite-cflags = $(libm-test-no-inline-cflags) \
- -U__FINITE_MATH_ONLY__ -D__FINITE_MATH_ONLY__=1
libm-test-inline-cflags = $(libm-test-fast-math-cflags)
CFLAGS-test-tgmath.c += -fno-builtin
# The following testcase uses very long lines (>3 million), so it may take a
# while to compile it. See: http://llvm.org/bugs/show_bug.cgi?id=14106 and
-# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54402
+# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54402
CFLAGS-test-tgmath2.c += -fno-builtin
CFLAGS-test-tgmath-ret.c += -fno-builtin
CFLAGS-test-powl.c += -fno-builtin
CFLAGS-test-snan.c += -fsignaling-nans
-CFLAGS-test-signgam-finite.c += -ffinite-math-only
-CFLAGS-test-signgam-finite-c99.c += -ffinite-math-only -std=c99
-CFLAGS-test-signgam-finite-c11.c += -ffinite-math-only -std=c11
CFLAGS-test-signgam-uchar.c += -std=c99
CFLAGS-test-signgam-uchar-init.c += -std=c99
CFLAGS-test-signgam-uchar-static.c += -std=c99
@@ -441,8 +448,6 @@ CFLAGS-test-flt-eval-method.c += -fexcess-precision=standard
CFLAGS-test-fe-snans-always-signal.c += -fsignaling-nans
-CFLAGS-test-finite-macros.c += -ffinite-math-only
-
CFLAGS-test-nan-const.c += -fno-builtin
include ../Rules
@@ -473,7 +478,6 @@ $(objpfx)gen-libm-templates.stmp: Makefile
$(foreach t, $(call type-foreach, $(gen-all-calls)), \
$(objpfx)$(t).c): $(objpfx)gen-libm-templates.stmp
-ifneq (no,$(PERL))
# This must come after the inclusion of sysdeps Makefiles via Rules.
$(foreach t,$(libm-tests-normal),$(objpfx)$(t).c): $(objpfx)test-%.c:
@@ -482,25 +486,13 @@ $(foreach t,$(libm-tests-normal),$(objpfx)$(t).c): $(objpfx)test-%.c:
func=$${type_func#*-}; \
( \
echo "#include <test-$$type.h>"; \
- echo "#include <test-math-no-finite.h>"; \
+ echo "#include <test-math-exceptions.h>"; \
echo "#include <test-math-no-inline.h>"; \
echo "#include <test-math-errno.h>"; \
echo "#include <test-math-scalar.h>"; \
echo "#include <libm-test-$$func.c>"; \
) > $@
-$(foreach t,$(libm-tests-finite),$(objpfx)$(t).c): $(objpfx)test-%.c:
- type_func=$*; \
- type=$${type_func%%-*}; \
- func=$${type_func#*-finite-}; \
- ( \
- echo "#include <test-$$type.h>"; \
- echo "#include <test-math-finite.h>"; \
- echo "#include <test-math-no-inline.h>"; \
- echo "#include <test-math-scalar.h>"; \
- echo "#include <libm-test-$$func.c>"; \
- ) > $@
-
$(foreach t,$(libm-tests-inline),$(objpfx)$(t).c): $(objpfx)test-i%.c:
type_func=$*; \
type=$${type_func%%-*}; \
@@ -521,7 +513,7 @@ $(foreach t,$(libm-tests-narrow),$(objpfx)$(t).c): $(objpfx)test-%.c:
( \
echo "#include <test-$$ret_type.h>"; \
echo "#include <test-arg-$$arg_type.h>"; \
- echo "#include <test-math-no-finite.h>"; \
+ echo "#include <test-math-exceptions.h>"; \
echo "#include <test-math-no-inline.h>"; \
echo "#include <test-math-errno.h>"; \
echo "#include <test-math-narrow.h>"; \
@@ -573,13 +565,6 @@ include $(o-iterator)
define o-iterator-doit
$(foreach f,$(libm-test-funcs-all),\
- $(objpfx)$(o)-$(f).o): CFLAGS += $(libm-test-finite-cflags)
-endef
-object-suffixes-left := $(libm-tests-base-finite)
-include $(o-iterator)
-
-define o-iterator-doit
-$(foreach f,$(libm-test-funcs-all),\
$(objpfx)$(o)-$(f).o): CFLAGS += $(libm-test-inline-cflags)
endef
object-suffixes-left := $(libm-tests-base-inline)
@@ -628,17 +613,12 @@ regen-ulps: $(addprefix $(objpfx),$(libm-tests))
cat $(objpfx)ULPs >> $(objpfx)libm-test-ulps; \
rm $(objpfx)ULPs; \
done; \
- $(PERL) gen-libm-test.pl -n $(objpfx)NewUlps \
- -u $(objpfx)libm-test-ulps; \
+ $(PYTHON) gen-libm-test.py -n $(objpfx)NewUlps \
+ -u $(objpfx)libm-test-ulps; \
echo "Automatic regeneration of ULPs complete."; \
echo "Difference between the current baseline and the new baseline is:";\
diff -urN $(ulps-file) $(objpfx)NewUlps; \
echo "Copy $(objpfx)NewUlps to $(ulps-file) (relative to source)."
-else
-regen-ulps:
- @echo "Automatic regeneration of ULPs requires perl."; \
- exit 1;
-endif
# The generated sysd-rules file defines rules like this for sources
# coming from sysdeps/ directories. These rules find the generic sources.
diff --git a/math/README.libm-test b/math/README.libm-test
index 41702c6537..53172bbff8 100644
--- a/math/README.libm-test
+++ b/math/README.libm-test
@@ -3,10 +3,10 @@ README for libm-test math test suite
The libm-test math test suite tests a number of function points of
math functions in the GNU C library. The following sections contain a
-brief overview. Please note that the test drivers and the Perl script
-"gen-libm-test.pl" have some options. A full list of options is
-available with --help (for the test drivers) and -h for
-"gen-libm-test.pl".
+brief overview. Please note that the test drivers and the Python
+script "gen-libm-test.py" have some options. A full list of options
+is available with --help (for the test drivers) and -h for
+"gen-libm-test.py".
What is tested?
@@ -25,8 +25,8 @@ The main files are "libm-test-<func>.inc". They are independent of
the target platform and the specific real floating type and format and
contain placeholder test "templates" for math functions defined in
libm. These files, along with generated files named
-"auto-libm-test-out-<func>", are preprocessed by the Perl script
-"gen-libm-test.pl" to expand the templates and produce a set of test
+"auto-libm-test-out-<func>", are preprocessed by the Python script
+"gen-libm-test.py" to expand the templates and produce a set of test
cases for each math function that are specific to the target platform
but still independent of the real floating type. The results of the
processing are "libm-test-<func>.c" and a file "libm-test-ulps.h" with
@@ -48,7 +48,7 @@ defines or undefines the __NO_MATH_INLINES macro just before including
respectively. Each driver is compiled into a single executable test
program with the corresponding name.
-As mentioned above, the "gen-libm-test.pl" script looks for a file
+As mentioned above, the "gen-libm-test.py" script looks for a file
named "libm-test-ulps" in the platform specific sysdep directory (or
its fpu or nofpu subdirectory) and for each variant (real floating
type and rounding mode) of every tested function reads from it the
@@ -80,17 +80,17 @@ This generates a file "ULPs" with all double ULPs in it, ignoring any
previously calculated ULPs, and running with the newly built dynamic
loader and math library (assumes you didn't install your build). Now
generate the ULPs for all other formats, the tests will be appending the
-data to the "ULPs" file. As final step run "gen-libm-test.pl" with the
+data to the "ULPs" file. As final step run "gen-libm-test.py" with the
file as input and ask to generate a pretty printed output in the file
"NewUlps":
- gen-libm-test.pl -u ULPs -n NewUlps
+ gen-libm-test.py -u ULPs -n NewUlps
Copy "NewUlps" to "libm-test-ulps" in the appropriate machine sysdep
directory.
Note that the test drivers have an option "-u" to output an unsorted
list of all epsilons that the functions have. The output can be read
in directly but it's better to pretty print it first.
-"gen-libm-test.pl" has an option to generate a pretty-printed and
+"gen-libm-test.py" has an option to generate a pretty-printed and
sorted new ULPs file from the output of the test drivers.
Contents of libm-test-ulps
diff --git a/math/Versions b/math/Versions
index b5a2500712..d892c5f911 100644
--- a/math/Versions
+++ b/math/Versions
@@ -575,4 +575,19 @@ libm {
f32xsubf64x; f32xsubf128; f64subf64x; f64subf128;
f64xsubf128;
}
+ GLIBC_2.29 {
+ # No SVID compatible error handling.
+ exp; exp2; log; log2; pow;
+ }
+ GLIBC_2.31 {
+ # totalorder changed to take pointer arguments.
+ totalorder; totalorderf; totalorderl;
+ totalordermag; totalordermagf; totalordermagl;
+ totalorderf32; totalorderf64; totalorderf32x;
+ totalordermagf32; totalordermagf64; totalordermagf32x;
+ totalorderf64x;
+ totalordermagf64x;
+ totalorderf128;
+ totalordermagf128;
+ }
}
diff --git a/math/atest-exp.c b/math/atest-exp.c
index bc06bbdaad..b3d73aec4f 100644
--- a/math/atest-exp.c
+++ b/math/atest-exp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Geoffrey Keating <Geoff.Keating@anu.edu.au>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <math.h>
diff --git a/math/atest-exp2.c b/math/atest-exp2.c
index c8a6b3686e..fc3d3a669e 100644
--- a/math/atest-exp2.c
+++ b/math/atest-exp2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Geoffrey Keating <Geoff.Keating@anu.edu.au>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <math.h>
diff --git a/math/atest-sincos.c b/math/atest-sincos.c
index 97e33b7058..809c3cfdcd 100644
--- a/math/atest-sincos.c
+++ b/math/atest-sincos.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Geoffrey Keating <Geoff.Keating@anu.edu.au>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <math.h>
diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in
index 785328562f..b004abfc32 100644
--- a/math/auto-libm-test-in
+++ b/math/auto-libm-test-in
@@ -1,5 +1,5 @@
# libm test inputs for gen-auto-libm-tests.c.
-# Copyright (C) 1997-2018 Free Software Foundation, Inc.
+# Copyright (C) 1997-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
@@ -14,7 +14,7 @@
#
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>. */
+# <https://www.gnu.org/licenses/>. */
acos 0
acos -0
@@ -7154,6 +7154,8 @@ pow 0x1.430d4cp+0 0x5.0e462p+4
pow 0x9.8b82ap-4 -0x1.99907ap+12
pow 0xd.73035p-4 -0x1.47bb8p+8
pow 0x1.059c76p+0 0x1.ff80bep+11
+pow 0x1.7ac7cp+5 23
+pow -0x1.7ac7cp+5 23
sin 0
sin -0
diff --git a/math/auto-libm-test-out-pow b/math/auto-libm-test-out-pow
index 4a9f1fc66a..09ec53e49e 100644
--- a/math/auto-libm-test-out-pow
+++ b/math/auto-libm-test-out-pow
@@ -44171,3 +44171,53 @@ pow 0x1.059c76p+0 0x1.ff80bep+11
= pow tonearest ibm128 0x1.059c76p+0 0xf.fc05fp+8 : 0xf.ffe5535a38f9be648255c105d4p+124 : inexact-ok
= pow towardzero ibm128 0x1.059c76p+0 0xf.fc05fp+8 : 0xf.ffe5535a38f9be648255c105d4p+124 : inexact-ok
= pow upward ibm128 0x1.059c76p+0 0xf.fc05fp+8 : 0xf.ffe5535a38f9be648255c105d8p+124 : inexact-ok
+pow 0x1.7ac7cp+5 23
+= pow downward binary32 0x2.f58f8p+4 0x1.7p+4 : 0xf.fffffp+124 : inexact-ok
+= pow tonearest binary32 0x2.f58f8p+4 0x1.7p+4 : 0xf.fffffp+124 : inexact-ok
+= pow towardzero binary32 0x2.f58f8p+4 0x1.7p+4 : 0xf.fffffp+124 : inexact-ok
+= pow upward binary32 0x2.f58f8p+4 0x1.7p+4 : plus_infty : inexact-ok overflow errno-erange
+= pow downward binary64 0x2.f58f8p+4 0x1.7p+4 : 0xf.fffff29cf02e8p+124 : inexact-ok
+= pow tonearest binary64 0x2.f58f8p+4 0x1.7p+4 : 0xf.fffff29cf02fp+124 : inexact-ok
+= pow towardzero binary64 0x2.f58f8p+4 0x1.7p+4 : 0xf.fffff29cf02e8p+124 : inexact-ok
+= pow upward binary64 0x2.f58f8p+4 0x1.7p+4 : 0xf.fffff29cf02fp+124 : inexact-ok
+= pow downward intel96 0x2.f58f8p+4 0x1.7p+4 : 0xf.fffff29cf02eeecp+124 : inexact-ok
+= pow tonearest intel96 0x2.f58f8p+4 0x1.7p+4 : 0xf.fffff29cf02eeecp+124 : inexact-ok
+= pow towardzero intel96 0x2.f58f8p+4 0x1.7p+4 : 0xf.fffff29cf02eeecp+124 : inexact-ok
+= pow upward intel96 0x2.f58f8p+4 0x1.7p+4 : 0xf.fffff29cf02eeedp+124 : inexact-ok
+= pow downward m68k96 0x2.f58f8p+4 0x1.7p+4 : 0xf.fffff29cf02eeecp+124 : inexact-ok
+= pow tonearest m68k96 0x2.f58f8p+4 0x1.7p+4 : 0xf.fffff29cf02eeecp+124 : inexact-ok
+= pow towardzero m68k96 0x2.f58f8p+4 0x1.7p+4 : 0xf.fffff29cf02eeecp+124 : inexact-ok
+= pow upward m68k96 0x2.f58f8p+4 0x1.7p+4 : 0xf.fffff29cf02eeedp+124 : inexact-ok
+= pow downward binary128 0x2.f58f8p+4 0x1.7p+4 : 0xf.fffff29cf02eeec4a7cde7b5a2ep+124 : inexact-ok
+= pow tonearest binary128 0x2.f58f8p+4 0x1.7p+4 : 0xf.fffff29cf02eeec4a7cde7b5a2ep+124 : inexact-ok
+= pow towardzero binary128 0x2.f58f8p+4 0x1.7p+4 : 0xf.fffff29cf02eeec4a7cde7b5a2ep+124 : inexact-ok
+= pow upward binary128 0x2.f58f8p+4 0x1.7p+4 : 0xf.fffff29cf02eeec4a7cde7b5a2e8p+124 : inexact-ok
+= pow downward ibm128 0x2.f58f8p+4 0x1.7p+4 : 0xf.fffff29cf02eeec4a7cde7b5ap+124 : inexact-ok
+= pow tonearest ibm128 0x2.f58f8p+4 0x1.7p+4 : 0xf.fffff29cf02eeec4a7cde7b5a4p+124 : inexact-ok
+= pow towardzero ibm128 0x2.f58f8p+4 0x1.7p+4 : 0xf.fffff29cf02eeec4a7cde7b5ap+124 : inexact-ok
+= pow upward ibm128 0x2.f58f8p+4 0x1.7p+4 : 0xf.fffff29cf02eeec4a7cde7b5a4p+124 : inexact-ok
+pow -0x1.7ac7cp+5 23
+= pow downward binary32 -0x2.f58f8p+4 0x1.7p+4 : minus_infty : inexact-ok overflow errno-erange
+= pow tonearest binary32 -0x2.f58f8p+4 0x1.7p+4 : -0xf.fffffp+124 : inexact-ok
+= pow towardzero binary32 -0x2.f58f8p+4 0x1.7p+4 : -0xf.fffffp+124 : inexact-ok
+= pow upward binary32 -0x2.f58f8p+4 0x1.7p+4 : -0xf.fffffp+124 : inexact-ok
+= pow downward binary64 -0x2.f58f8p+4 0x1.7p+4 : -0xf.fffff29cf02fp+124 : inexact-ok
+= pow tonearest binary64 -0x2.f58f8p+4 0x1.7p+4 : -0xf.fffff29cf02fp+124 : inexact-ok
+= pow towardzero binary64 -0x2.f58f8p+4 0x1.7p+4 : -0xf.fffff29cf02e8p+124 : inexact-ok
+= pow upward binary64 -0x2.f58f8p+4 0x1.7p+4 : -0xf.fffff29cf02e8p+124 : inexact-ok
+= pow downward intel96 -0x2.f58f8p+4 0x1.7p+4 : -0xf.fffff29cf02eeedp+124 : inexact-ok
+= pow tonearest intel96 -0x2.f58f8p+4 0x1.7p+4 : -0xf.fffff29cf02eeecp+124 : inexact-ok
+= pow towardzero intel96 -0x2.f58f8p+4 0x1.7p+4 : -0xf.fffff29cf02eeecp+124 : inexact-ok
+= pow upward intel96 -0x2.f58f8p+4 0x1.7p+4 : -0xf.fffff29cf02eeecp+124 : inexact-ok
+= pow downward m68k96 -0x2.f58f8p+4 0x1.7p+4 : -0xf.fffff29cf02eeedp+124 : inexact-ok
+= pow tonearest m68k96 -0x2.f58f8p+4 0x1.7p+4 : -0xf.fffff29cf02eeecp+124 : inexact-ok
+= pow towardzero m68k96 -0x2.f58f8p+4 0x1.7p+4 : -0xf.fffff29cf02eeecp+124 : inexact-ok
+= pow upward m68k96 -0x2.f58f8p+4 0x1.7p+4 : -0xf.fffff29cf02eeecp+124 : inexact-ok
+= pow downward binary128 -0x2.f58f8p+4 0x1.7p+4 : -0xf.fffff29cf02eeec4a7cde7b5a2e8p+124 : inexact-ok
+= pow tonearest binary128 -0x2.f58f8p+4 0x1.7p+4 : -0xf.fffff29cf02eeec4a7cde7b5a2ep+124 : inexact-ok
+= pow towardzero binary128 -0x2.f58f8p+4 0x1.7p+4 : -0xf.fffff29cf02eeec4a7cde7b5a2ep+124 : inexact-ok
+= pow upward binary128 -0x2.f58f8p+4 0x1.7p+4 : -0xf.fffff29cf02eeec4a7cde7b5a2ep+124 : inexact-ok
+= pow downward ibm128 -0x2.f58f8p+4 0x1.7p+4 : -0xf.fffff29cf02eeec4a7cde7b5a4p+124 : inexact-ok
+= pow tonearest ibm128 -0x2.f58f8p+4 0x1.7p+4 : -0xf.fffff29cf02eeec4a7cde7b5a4p+124 : inexact-ok
+= pow towardzero ibm128 -0x2.f58f8p+4 0x1.7p+4 : -0xf.fffff29cf02eeec4a7cde7b5ap+124 : inexact-ok
+= pow upward ibm128 -0x2.f58f8p+4 0x1.7p+4 : -0xf.fffff29cf02eeec4a7cde7b5ap+124 : inexact-ok
diff --git a/math/basic-test.c b/math/basic-test.c
index ef33c1db53..f45a68af4f 100644
--- a/math/basic-test.c
+++ b/math/basic-test.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <float.h>
diff --git a/math/bits/cmathcalls.h b/math/bits/cmathcalls.h
index e22b804942..b6c12bfca6 100644
--- a/math/bits/cmathcalls.h
+++ b/math/bits/cmathcalls.h
@@ -1,6 +1,6 @@
/* Prototype declarations for complex math functions;
helper file for <complex.h>.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* NOTE: Because of the special way this file is used by <complex.h>, this
file must NOT be protected from multiple inclusion as header files
diff --git a/math/bits/math-finite.h b/math/bits/math-finite.h
deleted file mode 100644
index 0799fe7b29..0000000000
--- a/math/bits/math-finite.h
+++ /dev/null
@@ -1,197 +0,0 @@
-/* Entry points to finite-math-only compiler runs.
- Copyright (C) 2011-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _MATH_H
-# error "Never use <bits/math-finite.h> directly; include <math.h> 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/math/bits/mathcalls-helper-functions.h b/math/bits/mathcalls-helper-functions.h
index ac3115bfdc..8f7b786f91 100644
--- a/math/bits/mathcalls-helper-functions.h
+++ b/math/bits/mathcalls-helper-functions.h
@@ -1,5 +1,5 @@
/* Prototype declarations for math classification macros helpers.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Classify given number. */
diff --git a/math/bits/mathcalls-narrow.h b/math/bits/mathcalls-narrow.h
index 9d03d5f7f2..e4a347e238 100644
--- a/math/bits/mathcalls-narrow.h
+++ b/math/bits/mathcalls-narrow.h
@@ -1,5 +1,5 @@
/* Declare functions returning a narrower type.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MATH_H
# error "Never include <bits/mathcalls-narrow.h> directly; include <math.h> instead."
diff --git a/math/bits/mathcalls.h b/math/bits/mathcalls.h
index cf87313e2f..7216826b0e 100644
--- a/math/bits/mathcalls.h
+++ b/math/bits/mathcalls.h
@@ -1,5 +1,5 @@
/* Prototype declarations for math functions; helper file for <math.h>.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* NOTE: Because of the special way this file is used by <math.h>, this
file must NOT be protected from multiple inclusion as header files
@@ -109,7 +109,7 @@ __MATHCALL (log10,, (_Mdouble_ __x));
/* Break VALUE into integral and fractional parts. */
__MATHCALL (modf,, (_Mdouble_ __x, _Mdouble_ *__iptr)) __nonnull ((2));
-#if __GLIBC_USE (IEC_60559_FUNCS_EXT)
+#if __GLIBC_USE (IEC_60559_FUNCS_EXT_C2X)
/* Compute exponent to base ten. */
__MATHCALL (exp10,, (_Mdouble_ __x));
#endif
@@ -261,7 +261,7 @@ __MATHCALL (nextafter,, (_Mdouble_ __x, _Mdouble_ __y));
__MATHCALL (nexttoward,, (_Mdouble_ __x, long double __y));
# endif
-# if __GLIBC_USE (IEC_60559_BFP_EXT) || __MATH_DECLARING_FLOATN
+# if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) || __MATH_DECLARING_FLOATN
/* Return X - epsilon. */
__MATHCALL (nextdown,, (_Mdouble_ __x));
/* Return X + epsilon. */
@@ -280,7 +280,7 @@ __MATHCALL (scalbn,, (_Mdouble_ __x, int __n));
__MATHDECL (int,ilogb,, (_Mdouble_ __x));
#endif
-#if __GLIBC_USE (IEC_60559_BFP_EXT) || __MATH_DECLARING_FLOATN
+#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) || __MATH_DECLARING_FLOATN
/* Like ilogb, but returning long int. */
__MATHDECL (long int, llogb,, (_Mdouble_ __x));
#endif
@@ -335,7 +335,7 @@ __MATHCALLX (fmin,, (_Mdouble_ __x, _Mdouble_ __y), (__const__));
__MATHCALL (fma,, (_Mdouble_ __x, _Mdouble_ __y, _Mdouble_ __z));
#endif /* Use ISO C99. */
-#if __GLIBC_USE (IEC_60559_BFP_EXT) || __MATH_DECLARING_FLOATN
+#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) || __MATH_DECLARING_FLOATN
/* Round X to nearest integer value, rounding halfway cases to even. */
__MATHCALLX (roundeven,, (_Mdouble_ __x), (__const__));
@@ -367,16 +367,20 @@ __MATHCALLX (fmaxmag,, (_Mdouble_ __x, _Mdouble_ __y), (__const__));
/* Return value with minimum magnitude. */
__MATHCALLX (fminmag,, (_Mdouble_ __x, _Mdouble_ __y), (__const__));
+/* Canonicalize floating-point representation. */
+__MATHDECL_1 (int, canonicalize,, (_Mdouble_ *__cx, const _Mdouble_ *__x));
+#endif
+
+#if __GLIBC_USE (IEC_60559_BFP_EXT) || __MATH_DECLARING_FLOATN
/* Total order operation. */
-__MATHDECL_1 (int, totalorder,, (_Mdouble_ __x, _Mdouble_ __y))
- __attribute__ ((__const__));
+__MATHDECL_1 (int, totalorder,, (const _Mdouble_ *__x,
+ const _Mdouble_ *__y))
+ __attribute_pure__;
/* Total order operation on absolute values. */
-__MATHDECL_1 (int, totalordermag,, (_Mdouble_ __x, _Mdouble_ __y))
- __attribute__ ((__const__));
-
-/* Canonicalize floating-point representation. */
-__MATHDECL_1 (int, canonicalize,, (_Mdouble_ *__cx, const _Mdouble_ *__x));
+__MATHDECL_1 (int, totalordermag,, (const _Mdouble_ *__x,
+ const _Mdouble_ *__y))
+ __attribute_pure__;
/* Get NaN payload. */
__MATHCALL (getpayload,, (const _Mdouble_ *__x));
diff --git a/math/cabs_template.c b/math/cabs_template.c
index ce9949e6bf..cdf6f398b7 100644
--- a/math/cabs_template.c
+++ b/math/cabs_template.c
@@ -1,5 +1,5 @@
/* Return the complex absolute value of complex float type.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <complex.h>
#include <math.h>
diff --git a/math/carg_template.c b/math/carg_template.c
index 451279b2d7..ae7d5de1da 100644
--- a/math/carg_template.c
+++ b/math/carg_template.c
@@ -1,5 +1,5 @@
/* Compute argument of complex float type.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <complex.h>
#include <math.h>
diff --git a/math/cimag_template.c b/math/cimag_template.c
index 38a637420b..5de844665c 100644
--- a/math/cimag_template.c
+++ b/math/cimag_template.c
@@ -1,5 +1,5 @@
/* Return imaginary part of complex float type.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <complex.h>
diff --git a/math/complex.h b/math/complex.h
index 544e7acd82..ab9ada6b13 100644
--- a/math/complex.h
+++ b/math/complex.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* ISO C99: 7.3 Complex arithmetic <complex.h>
diff --git a/math/conj_template.c b/math/conj_template.c
index 148a9c27dc..2964e78fbb 100644
--- a/math/conj_template.c
+++ b/math/conj_template.c
@@ -1,5 +1,5 @@
/* Return complex conjugate of complex float type.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <complex.h>
diff --git a/math/creal_template.c b/math/creal_template.c
index 03ffeaeeb8..4b3aeea12e 100644
--- a/math/creal_template.c
+++ b/math/creal_template.c
@@ -1,5 +1,5 @@
/* Return real part of complex float type.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <complex.h>
diff --git a/math/divtc3.c b/math/divtc3.c
index b1df88bdb7..3262687206 100644
--- a/math/divtc3.c
+++ b/math/divtc3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson <rth@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdbool.h>
#include <math.h>
@@ -51,22 +51,22 @@ __divtc3 (long double a, long double b, long double c, long double d)
{
if (denom == 0.0 && (!isnan (a) || !isnan (b)))
{
- x = __copysignl (INFINITY, c) * a;
- y = __copysignl (INFINITY, c) * b;
+ x = copysignl (INFINITY, c) * a;
+ y = copysignl (INFINITY, c) * b;
}
else if ((isinf (a) || isinf (b))
&& isfinite (c) && isfinite (d))
{
- a = __copysignl (isinf (a) ? 1 : 0, a);
- b = __copysignl (isinf (b) ? 1 : 0, b);
+ a = copysignl (isinf (a) ? 1 : 0, a);
+ b = copysignl (isinf (b) ? 1 : 0, b);
x = INFINITY * (a * c + b * d);
y = INFINITY * (b * c - a * d);
}
else if ((isinf (c) || isinf (d))
&& isfinite (a) && isfinite (b))
{
- c = __copysignl (isinf (c) ? 1 : 0, c);
- d = __copysignl (isinf (d) ? 1 : 0, d);
+ c = copysignl (isinf (c) ? 1 : 0, c);
+ d = copysignl (isinf (d) ? 1 : 0, d);
x = 0.0 * (a * c + b * d);
y = 0.0 * (b * c - a * d);
}
diff --git a/math/e_exp10.c b/math/e_exp10.c
index af8188142b..665c5d11fc 100644
--- a/math/e_exp10.c
+++ b/math/e_exp10.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/math/e_exp10f.c b/math/e_exp10f.c
index 995be7f001..92a28824a6 100644
--- a/math/e_exp10f.c
+++ b/math/e_exp10f.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/math/e_exp10l.c b/math/e_exp10l.c
index 5c4778ddc5..cd0ec36622 100644
--- a/math/e_exp10l.c
+++ b/math/e_exp10l.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/math/e_exp2_template.c b/math/e_exp2_template.c
index 19f9780b05..8d8730d2f4 100644
--- a/math/e_exp2_template.c
+++ b/math/e_exp2_template.c
@@ -1,5 +1,5 @@
/* Compute 2^x.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/math/e_scalb.c b/math/e_scalb.c
index 96c3579aad..66a8bf2f5a 100644
--- a/math/e_scalb.c
+++ b/math/e_scalb.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
@@ -24,7 +24,7 @@ static double
__attribute__ ((noinline))
invalid_fn (double x, double fn)
{
- if (__rint (fn) != fn)
+ if (rint (fn) != fn)
return (fn - fn) / (fn - fn);
else if (fn > 65000.0)
return __scalbn (x, 65000);
diff --git a/math/e_scalbf.c b/math/e_scalbf.c
index 23b38a95de..4c3194f18a 100644
--- a/math/e_scalbf.c
+++ b/math/e_scalbf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
@@ -24,7 +24,7 @@ static float
__attribute__ ((noinline))
invalid_fn (float x, float fn)
{
- if (__rintf (fn) != fn)
+ if (rintf (fn) != fn)
return (fn - fn) / (fn - fn);
else if (fn > 65000.0f)
return __scalbnf (x, 65000);
diff --git a/math/e_scalbl.c b/math/e_scalbl.c
index a677d06b9f..1f7119ca9b 100644
--- a/math/e_scalbl.c
+++ b/math/e_scalbl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
@@ -24,7 +24,7 @@ static long double
__attribute__ ((noinline))
invalid_fn (long double x, long double fn)
{
- if (__rintl (fn) != fn)
+ if (rintl (fn) != fn)
return (fn - fn) / (fn - fn);
else if (fn > 65000.0L)
return __scalbnl (x, 65000);
diff --git a/math/fclrexcpt.c b/math/fclrexcpt.c
index 888e31643b..7b866e8a48 100644
--- a/math/fclrexcpt.c
+++ b/math/fclrexcpt.c
@@ -1,5 +1,5 @@
/* Clear given exceptions in current floating-point environment.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <shlib-compat.h>
diff --git a/math/fedisblxcpt.c b/math/fedisblxcpt.c
index 91dcb4a7c3..67d590e8c0 100644
--- a/math/fedisblxcpt.c
+++ b/math/fedisblxcpt.c
@@ -1,5 +1,5 @@
/* Disable floating-point exceptions.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/math/feenablxcpt.c b/math/feenablxcpt.c
index e4c552dff3..e516b34e79 100644
--- a/math/feenablxcpt.c
+++ b/math/feenablxcpt.c
@@ -1,5 +1,5 @@
/* Enable floating-point exceptions.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/math/fegetenv.c b/math/fegetenv.c
index 4df22a9603..557a5ddfc9 100644
--- a/math/fegetenv.c
+++ b/math/fegetenv.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <shlib-compat.h>
diff --git a/math/fegetexcept.c b/math/fegetexcept.c
index da222bea6d..81c2f10465 100644
--- a/math/fegetexcept.c
+++ b/math/fegetexcept.c
@@ -1,5 +1,5 @@
/* Get floating-point exceptions.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/math/fegetmode.c b/math/fegetmode.c
index 30e1dd03a3..69d1f2da51 100644
--- a/math/fegetmode.c
+++ b/math/fegetmode.c
@@ -1,5 +1,5 @@
/* Store current floating-point control modes.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/math/fegetround.c b/math/fegetround.c
index 2c20b93a6a..e05ef26af2 100644
--- a/math/fegetround.c
+++ b/math/fegetround.c
@@ -1,5 +1,5 @@
/* Return current rounding direction.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/math/feholdexcpt.c b/math/feholdexcpt.c
index 64deb09f12..ae225b500e 100644
--- a/math/feholdexcpt.c
+++ b/math/feholdexcpt.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment and clear exceptions.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/math/fenv.h b/math/fenv.h
index 7b1283ec8d..455860b88b 100644
--- a/math/fenv.h
+++ b/math/fenv.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* ISO C99 7.6: Floating-point environment <fenv.h>
@@ -77,7 +77,7 @@ extern int fegetexceptflag (fexcept_t *__flagp, int __excepts) __THROW;
/* Raise the supported exceptions represented by EXCEPTS. */
extern int feraiseexcept (int __excepts) __THROW;
-#if __GLIBC_USE (IEC_60559_BFP_EXT)
+#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
/* Set the supported exception flags represented by EXCEPTS, without
causing enabled traps to be taken. */
extern int fesetexcept (int __excepts) __THROW;
@@ -91,7 +91,7 @@ extern int fesetexceptflag (const fexcept_t *__flagp, int __excepts) __THROW;
currently set. */
extern int fetestexcept (int __excepts) __THROW;
-#if __GLIBC_USE (IEC_60559_BFP_EXT)
+#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
/* Determine which of subset of the exceptions specified by EXCEPTS
are set in *FLAGP. */
extern int fetestexceptflag (const fexcept_t *__flagp, int __excepts) __THROW;
@@ -130,7 +130,7 @@ extern int feupdateenv (const fenv_t *__envp) __THROW;
/* Control modes. */
-#if __GLIBC_USE (IEC_60559_BFP_EXT)
+#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
/* Store the current floating-point control modes in the object
pointed to by MODEP. */
extern int fegetmode (femode_t *__modep) __THROW;
@@ -147,7 +147,7 @@ extern int fesetmode (const femode_t *__modep) __THROW;
/* NaN support. */
-#if (__GLIBC_USE (IEC_60559_BFP_EXT) \
+#if (__GLIBC_USE (IEC_60559_BFP_EXT_C2X) \
&& defined FE_INVALID \
&& defined __SUPPORT_SNAN__)
# define FE_SNANS_ALWAYS_SIGNAL 1
diff --git a/math/fesetenv.c b/math/fesetenv.c
index 3de205e6bf..5f520a938e 100644
--- a/math/fesetenv.c
+++ b/math/fesetenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <shlib-compat.h>
diff --git a/math/fesetexcept.c b/math/fesetexcept.c
index a006baff25..89b51dfa93 100644
--- a/math/fesetexcept.c
+++ b/math/fesetexcept.c
@@ -1,5 +1,5 @@
/* Set given exception flags.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/math/fesetmode.c b/math/fesetmode.c
index 63900e7b72..db0bb50dba 100644
--- a/math/fesetmode.c
+++ b/math/fesetmode.c
@@ -1,5 +1,5 @@
/* Install given floating-point control modes.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/math/fesetround.c b/math/fesetround.c
index 60119be4b1..ccddc34119 100644
--- a/math/fesetround.c
+++ b/math/fesetround.c
@@ -1,5 +1,5 @@
/* Set current rounding direction.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/math/fetestexceptflag.c b/math/fetestexceptflag.c
index 7c1538e5aa..a6095323f8 100644
--- a/math/fetestexceptflag.c
+++ b/math/fetestexceptflag.c
@@ -1,5 +1,5 @@
/* Test exception in saved exception state.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/math/feupdateenv.c b/math/feupdateenv.c
index f21bddcd46..1ecd15e2d6 100644
--- a/math/feupdateenv.c
+++ b/math/feupdateenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment and raise exceptions.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <shlib-compat.h>
diff --git a/math/fgetexcptflg.c b/math/fgetexcptflg.c
index 13ba564d01..40d9c51396 100644
--- a/math/fgetexcptflg.c
+++ b/math/fgetexcptflg.c
@@ -1,5 +1,5 @@
/* Store current representation for exceptions.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <shlib-compat.h>
diff --git a/math/finclude/math-vector-fortran.h b/math/finclude/math-vector-fortran.h
new file mode 100644
index 0000000000..f4f4c0f6e4
--- /dev/null
+++ b/math/finclude/math-vector-fortran.h
@@ -0,0 +1,19 @@
+! Platform-specific declarations of SIMD math functions for Fortran. -*- f90 -*-
+! 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; if not, see
+! <https://www.gnu.org/licenses/>.
+
+! No SIMD math functions are available for this platform.
diff --git a/math/fpu_control.c b/math/fpu_control.c
index 8b3fad0b60..08a11cf285 100644
--- a/math/fpu_control.c
+++ b/math/fpu_control.c
@@ -1,5 +1,5 @@
/* Default FPU control word initialization.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <fpu_control.h>
diff --git a/math/fraiseexcpt.c b/math/fraiseexcpt.c
index de968d4211..9335884441 100644
--- a/math/fraiseexcpt.c
+++ b/math/fraiseexcpt.c
@@ -1,5 +1,5 @@
/* Raise given exceptions.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@@ -15,11 +15,14 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <shlib-compat.h>
+#undef __feraiseexcept
+#undef feraiseexcept
+
int
__feraiseexcept (int excepts)
{
diff --git a/math/fromfp.h b/math/fromfp.h
index 9d102a635f..a511ae391b 100644
--- a/math/fromfp.h
+++ b/math/fromfp.h
@@ -1,5 +1,5 @@
/* Round to integer type. Common helper functions.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,14 +14,13 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fenv.h>
#include <float.h>
#include <math.h>
#include <math-barriers.h>
-#include <math_private.h>
#include <stdbool.h>
#include <stdint.h>
diff --git a/math/fsetexcptflg.c b/math/fsetexcptflg.c
index d06b1bb437..db5f080584 100644
--- a/math/fsetexcptflg.c
+++ b/math/fsetexcptflg.c
@@ -1,5 +1,5 @@
/* Set floating-point environment exception handling.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <shlib-compat.h>
diff --git a/math/ftestexcept.c b/math/ftestexcept.c
index b69ce35036..e642122a99 100644
--- a/math/ftestexcept.c
+++ b/math/ftestexcept.c
@@ -1,5 +1,5 @@
/* Test exception in current environment.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/math/gen-auto-libm-tests.c b/math/gen-auto-libm-tests.c
index 66215a1d55..08684c4646 100644
--- a/math/gen-auto-libm-tests.c
+++ b/math/gen-auto-libm-tests.c
@@ -1,5 +1,5 @@
/* Generate expected output for libm tests with MPFR and MPC.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Compile this program as:
@@ -1298,7 +1298,7 @@ handle_input_flag (char *arg, input_flag *flag,
char c = *ep;
*ep = 0;
bool found = false;
- for (input_flag_type i = flag_first_flag; i <= num_input_flag_types; i++)
+ for (input_flag_type i = flag_first_flag; i < num_input_flag_types; i++)
{
if (strcmp (arg, input_flags[i]) == 0)
{
diff --git a/math/gen-fromfp-tests.py b/math/gen-fromfp-tests.py
index a56ce8dec2..57f8477899 100755
--- a/math/gen-fromfp-tests.py
+++ b/math/gen-fromfp-tests.py
@@ -1,6 +1,6 @@
#!/usr/bin/python3
# Expand test inputs for fromfp functions into text to edit into libm-test.inc.
-# Copyright (C) 2016-2018 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
@@ -15,7 +15,7 @@
#
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
# Take test inputs on stdin, in format:
#
diff --git a/math/gen-libm-test.pl b/math/gen-libm-test.pl
deleted file mode 100755
index 664fba5909..0000000000
--- a/math/gen-libm-test.pl
+++ /dev/null
@@ -1,846 +0,0 @@
-#!/usr/bin/perl -w
-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
-# This file is part of the GNU C Library.
-# Contributed by Andreas Jaeger <aj@suse.de>, 1999.
-
-# 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
-# <http://www.gnu.org/licenses/>.
-
-# This file needs to be tidied up
-# Note that functions and tests share the same namespace.
-
-# Information about tests are stored in: %results
-# $results{$test}{"type"} is the result type, e.g. normal or complex.
-# $results{$test}{"has_ulps"} is set if deltas exist.
-# In the following description $type and $float are:
-# - $type is either "normal", "real" (for the real part of a complex number)
-# or "imag" (for the imaginary part # of a complex number).
-# - $float is either of float, ifloat, double, idouble, ldouble, ildouble;
-# It represents the underlying floating point type (float, double or long
-# double) and if inline functions (the leading i stands for inline)
-# are used.
-# $results{$test}{$type}{"ulp"}{$float} is defined and has a delta as value
-
-
-use Getopt::Std;
-
-use strict;
-
-use vars qw ($input $output $auto_input);
-use vars qw (%results);
-use vars qw (%beautify @all_floats %all_floats_pfx);
-use vars qw ($ulps_file);
-use vars qw (%auto_tests);
-
-# all_floats is sorted and contains all recognised float types
-@all_floats = ('double', 'float', 'float128', 'idouble',
- 'ifloat', 'ifloat128', 'ildouble', 'ldouble');
-
-# all_floats_pfx maps C types to their C like prefix for macros.
-%all_floats_pfx =
- ( "double" => "DBL",
- "ldouble" => "LDBL",
- "float" => "FLT",
- "float128" => "FLT128",
- );
-
-%beautify =
- ( "minus_zero" => "-0",
- "plus_zero" => "+0",
- "-0x0p+0f" => "-0",
- "-0x0p+0" => "-0",
- "-0x0p+0L" => "-0",
- "0x0p+0f" => "+0",
- "0x0p+0" => "+0",
- "0x0p+0L" => "+0",
- "minus_infty" => "-inf",
- "plus_infty" => "inf",
- "qnan_value" => "qNaN",
- "snan_value" => "sNaN",
- "snan_value_ld" => "sNaN",
- );
-
-
-# get Options
-# Options:
-# a: auto-libm-test-out input file
-# c: .inc input file
-# u: ulps-file
-# n: new ulps file
-# C: libm-test.c output file
-# H: libm-test-ulps.h output file
-# h: help
-use vars qw($opt_a $opt_c $opt_u $opt_n $opt_C $opt_H $opt_h);
-getopts('a:c:u:n:C:H:h');
-
-$ulps_file = 'libm-test-ulps';
-
-if ($opt_h) {
- print "Usage: gen-libm-test.pl [OPTIONS]\n";
- print " -h print this help, then exit\n";
- print " -a FILE input file with automatically generated tests\n";
- print " -c FILE input file .inc file with tests\n";
- print " -u FILE input file with ulps\n";
- print " -n FILE generate sorted file FILE from libm-test-ulps\n";
- print " -C FILE generate output C file FILE from libm-test.inc\n";
- print " -H FILE generate output ulps header FILE from libm-test-ulps\n";
- exit 0;
-}
-
-$ulps_file = $opt_u if ($opt_u);
-
-$input = $opt_c if ($opt_c);
-$auto_input = $opt_a if ($opt_a);
-$output = $opt_C if ($opt_C);
-
-&parse_ulps ($ulps_file) if ($opt_H || $opt_n);
-&parse_auto_input ($auto_input) if ($opt_C);
-&generate_testfile ($input, $output) if ($opt_C);
-&output_ulps ($opt_H, $ulps_file) if ($opt_H);
-&print_ulps_file ($opt_n) if ($opt_n);
-
-# Return a nicer representation
-sub beautify {
- my ($arg) = @_;
- my ($tmp);
-
- if (exists $beautify{$arg}) {
- return $beautify{$arg};
- }
- if ($arg =~ /^-/) {
- $tmp = $arg;
- $tmp =~ s/^-//;
- if (exists $beautify{$tmp}) {
- return '-' . $beautify{$tmp};
- }
- }
- if ($arg =~ /^-?0x[0-9a-f.]*p[-+][0-9]+f$/) {
- $arg =~ s/f$//;
- }
- if ($arg =~ /[0-9]L$/) {
- $arg =~ s/L$//;
- }
- return $arg;
-}
-
-# Return a nicer representation of a complex number
-sub build_complex_beautify {
- my ($r, $i) = @_;
- my ($str1, $str2);
-
- $str1 = &beautify ($r);
- $str2 = &beautify ($i);
- if ($str2 =~ /^-/) {
- $str2 =~ s/^-//;
- $str1 .= ' - ' . $str2;
- } else {
- $str1 .= ' + ' . $str2;
- }
- $str1 .= ' i';
- return $str1;
-}
-
-# Return the text to put in an initializer for a test's exception
-# information.
-sub show_exceptions {
- my ($ignore_result, $non_finite, $test_snan, $exception) = @_;
- $ignore_result = ($ignore_result ? "IGNORE_RESULT|" : "");
- $non_finite = ($non_finite ? "NON_FINITE|" : "");
- $test_snan = ($test_snan ? "TEST_SNAN|" : "");
- if (defined $exception) {
- return ", ${ignore_result}${non_finite}${test_snan}$exception";
- } else {
- return ", ${ignore_result}${non_finite}${test_snan}0";
- }
-}
-
-# Apply the LIT(x) or ARG_LIT(x) macro to a literal floating point constant
-# and strip any existing suffix.
-sub _apply_lit {
- my ($macro, $lit) = @_;
- my $exp_re = "([+-])?[[:digit:]]+";
- # Don't wrap something that does not look like a:
- # * Hexadecimal FP value
- # * Decimal FP value without a decimal point
- # * Decimal value with a fraction
- return $lit if $lit !~ /([+-])?0x[[:xdigit:]\.]+[pP]$exp_re/
- and $lit !~ /[[:digit:]]+[eE]$exp_re/
- and $lit !~ /[[:digit:]]*\.[[:digit:]]*([eE]$exp_re)?/;
-
- # Strip any existing literal suffix.
- $lit =~ s/[lLfF]$//;
-
- return "$macro (${lit})";
-}
-
-# Apply LIT macro to individual tokens within an expression.
-#
-# This function assumes the C expression follows GNU coding
-# standards. Specifically, a space separates each lexical
-# token. Otherwise, this post-processing may apply LIT
-# incorrectly, or around an entire expression.
-sub apply_lit {
- my ($lit) = @_;
- my @toks = split (/ /, $lit);
- foreach (@toks) {
- $_ = _apply_lit ("LIT", $_);
- }
- return join (' ', @toks);
-}
-
-# Likewise, but apply ARG_LIT for arguments to narrowing functions.
-sub apply_arglit {
- my ($lit) = @_;
- my @toks = split (/ /, $lit);
- foreach (@toks) {
- $_ = _apply_lit ("ARG_LIT", $_);
- }
- return join (' ', @toks);
-}
-
-# Parse the arguments to TEST_x_y
-sub parse_args {
- my ($file, $descr, $args) = @_;
- my (@args, $descr_args, $descr_res, @descr);
- my ($current_arg, $cline, $cline_res, $i);
- my (@special);
- my ($call_args);
- my ($ignore_result_any, $ignore_result_all);
- my ($num_res, @args_res, @start_rm, $rm);
- my (@plus_oflow, @minus_oflow, @plus_uflow, @minus_uflow);
- my (@errno_plus_oflow, @errno_minus_oflow);
- my (@errno_plus_uflow, @errno_minus_uflow);
- my (@xfail_rounding_ibm128_libgcc);
- my ($non_finite, $test_snan);
-
- ($descr_args, $descr_res) = split /_/,$descr, 2;
-
- @args = split /,\s*/, $args;
-
- $call_args = "";
-
- # Generate first the string that's shown to the user
- $current_arg = 1;
- @descr = split //,$descr_args;
- for ($i = 0; $i <= $#descr; $i++) {
- my $comma = "";
- if ($current_arg > 1) {
- $comma = ', ';
- }
- # FLOAT, ARG_FLOAT, long double, int, unsigned int, long int, long long int
- if ($descr[$i] =~ /f|a|j|i|u|l|L/) {
- $call_args .= $comma . &beautify ($args[$current_arg]);
- ++$current_arg;
- next;
- }
- # Argument passed via pointer.
- if ($descr[$i] =~ /p/) {
- next;
- }
- # &FLOAT, &int - simplify call by not showing argument.
- if ($descr[$i] =~ /F|I/) {
- next;
- }
- # complex
- if ($descr[$i] eq 'c') {
- $call_args .= $comma . &build_complex_beautify ($args[$current_arg], $args[$current_arg+1]);
- $current_arg += 2;
- next;
- }
-
- die ("$descr[$i] is unknown");
- }
-
- # Result
- @args_res = @args[$current_arg .. $#args];
- $num_res = 0;
- @descr = split //,$descr_res;
- foreach (@descr) {
- if ($_ =~ /f|i|l|L|M|U/) {
- ++$num_res;
- } elsif ($_ eq 'c') {
- $num_res += 2;
- } elsif ($_ eq 'b') {
- # boolean
- ++$num_res;
- } elsif ($_ eq '1') {
- ++$num_res;
- } else {
- die ("$_ is unknown");
- }
- }
- # consistency check
- if ($#args_res == $num_res - 1) {
- # One set of results for all rounding modes, no flags.
- @start_rm = ( 0, 0, 0, 0 );
- } elsif ($#args_res == $num_res) {
- # One set of results for all rounding modes, with flags.
- die ("wrong number of arguments")
- unless ($args_res[$#args_res] =~ /EXCEPTION|ERRNO|IGNORE_ZERO_INF_SIGN|TEST_NAN_SIGN|NO_TEST_INLINE|XFAIL/);
- @start_rm = ( 0, 0, 0, 0 );
- } elsif ($#args_res == 4 * $num_res + 3) {
- # One set of results per rounding mode, with flags.
- @start_rm = ( 0, $num_res + 1, 2 * $num_res + 2, 3 * $num_res + 3 );
- } else {
- die ("wrong number of arguments");
- }
-
- # Put the C program line together
- # Reset some variables to start again
- $current_arg = 1;
- $call_args =~ s/\"/\\\"/g;
- $cline = "{ \"$call_args\"";
- @descr = split //,$descr_args;
- for ($i=0; $i <= $#descr; $i++) {
- # FLOAT, ARG_FLOAT, long double, int, unsigned int, long int, long long int
- if ($descr[$i] =~ /f|a|j|i|u|l|L/) {
- if ($descr[$i] eq "f") {
- $cline .= ", " . &apply_lit ($args[$current_arg]);
- } elsif ($descr[$i] eq "a") {
- $cline .= ", " . &apply_arglit ($args[$current_arg]);
- } else {
- $cline .= ", $args[$current_arg]";
- }
- $current_arg++;
- next;
- }
- # &FLOAT, &int, argument passed via pointer
- if ($descr[$i] =~ /F|I|p/) {
- next;
- }
- # complex
- if ($descr[$i] eq 'c') {
- $cline .= ", " . &apply_lit ($args[$current_arg]);
- $cline .= ", " . &apply_lit ($args[$current_arg+1]);
- $current_arg += 2;
- next;
- }
- }
-
- @descr = split //,$descr_res;
- @plus_oflow = qw(max_value plus_infty max_value plus_infty);
- @minus_oflow = qw(minus_infty minus_infty -max_value -max_value);
- @plus_uflow = qw(plus_zero plus_zero plus_zero min_subnorm_value);
- @minus_uflow = qw(-min_subnorm_value minus_zero minus_zero minus_zero);
- @errno_plus_oflow = qw(0 ERRNO_ERANGE 0 ERRNO_ERANGE);
- @errno_minus_oflow = qw(ERRNO_ERANGE ERRNO_ERANGE 0 0);
- @errno_plus_uflow = qw(ERRNO_ERANGE ERRNO_ERANGE ERRNO_ERANGE 0);
- @errno_minus_uflow = qw(0 ERRNO_ERANGE ERRNO_ERANGE ERRNO_ERANGE);
- @xfail_rounding_ibm128_libgcc = qw(XFAIL_IBM128_LIBGCC 0
- XFAIL_IBM128_LIBGCC XFAIL_IBM128_LIBGCC);
- for ($rm = 0; $rm <= 3; $rm++) {
- $current_arg = $start_rm[$rm];
- $ignore_result_any = 0;
- $ignore_result_all = 1;
- $cline_res = "";
- @special = ();
- foreach (@descr) {
- if ($_ =~ /b|f|j|i|l|L|M|U/ ) {
- my ($result) = $args_res[$current_arg];
- if ($result eq "IGNORE") {
- $ignore_result_any = 1;
- $result = "0";
- } else {
- $ignore_result_all = 0;
- }
- if ($_ eq "f") {
- $result = apply_lit ($result);
- }
- $cline_res .= ", $result";
- $current_arg++;
- } elsif ($_ eq 'c') {
- my ($result1) = $args_res[$current_arg];
- if ($result1 eq "IGNORE") {
- $ignore_result_any = 1;
- $result1 = "0";
- } else {
- $ignore_result_all = 0;
- }
- my ($result2) = $args_res[$current_arg + 1];
- if ($result2 eq "IGNORE") {
- $ignore_result_any = 1;
- $result2 = "0";
- } else {
- $ignore_result_all = 0;
- }
- $result1 = apply_lit ($result1);
- $result2 = apply_lit ($result2);
- $cline_res .= ", $result1, $result2";
- $current_arg += 2;
- } elsif ($_ eq '1') {
- push @special, $args_res[$current_arg];
- ++$current_arg;
- }
- }
- if ($ignore_result_any && !$ignore_result_all) {
- die ("some but not all function results ignored\n");
- }
- # Determine whether any arguments or results, for any rounding
- # mode, are non-finite.
- $non_finite = ($args =~ /qnan_value|snan_value|plus_infty|minus_infty/);
- $test_snan = ($args =~ /snan_value/);
- # Add exceptions.
- $cline_res .= show_exceptions ($ignore_result_any,
- $non_finite,
- $test_snan,
- ($current_arg <= $#args_res)
- ? $args_res[$current_arg]
- : undef);
-
- # special treatment for some functions
- $i = 0;
- foreach (@special) {
- ++$i;
- my ($extra_expected) = $_;
- my ($run_extra) = ($extra_expected ne "IGNORE" ? 1 : 0);
- if (!$run_extra) {
- $extra_expected = "0";
- } else {
- $extra_expected = apply_lit ($extra_expected);
- }
- $cline_res .= ", $run_extra, $extra_expected";
- }
- $cline_res =~ s/^, //;
- $cline_res =~ s/plus_oflow/$plus_oflow[$rm]/g;
- $cline_res =~ s/minus_oflow/$minus_oflow[$rm]/g;
- $cline_res =~ s/plus_uflow/$plus_uflow[$rm]/g;
- $cline_res =~ s/minus_uflow/$minus_uflow[$rm]/g;
- $cline_res =~ s/ERRNO_PLUS_OFLOW/$errno_plus_oflow[$rm]/g;
- $cline_res =~ s/ERRNO_MINUS_OFLOW/$errno_minus_oflow[$rm]/g;
- $cline_res =~ s/ERRNO_PLUS_UFLOW/$errno_plus_uflow[$rm]/g;
- $cline_res =~ s/ERRNO_MINUS_UFLOW/$errno_minus_uflow[$rm]/g;
- $cline_res =~ s/XFAIL_ROUNDING_IBM128_LIBGCC/$xfail_rounding_ibm128_libgcc[$rm]/g;
- $cline .= ", { $cline_res }";
- }
- print $file " $cline },\n";
-}
-
-# Convert a condition from auto-libm-test-out to C form.
-sub convert_condition {
- my ($cond) = @_;
- my (@conds, $ret);
- @conds = split /:/, $cond;
- foreach (@conds) {
- if ($_ !~ /^arg_fmt\(/) {
- s/-/_/g;
- }
- s/^/TEST_COND_/;
- }
- $ret = join " && ", @conds;
- return "($ret)";
-}
-
-# Return text to OR a value into an accumulated flags string.
-sub or_value {
- my ($cond) = @_;
- if ($cond eq "0") {
- return "";
- } else {
- return " | $cond";
- }
-}
-
-# Return a conditional expression between two values.
-sub cond_value {
- my ($cond, $if, $else) = @_;
- if ($cond eq "1") {
- return $if;
- } elsif ($cond eq "0") {
- return $else;
- } else {
- return "($cond ? $if : $else)";
- }
-}
-
-# Return text to OR a conditional expression between two values into
-# an accumulated flags string.
-sub or_cond_value {
- my ($cond, $if, $else) = @_;
- return or_value (cond_value ($cond, $if, $else));
-}
-
-# Generate libm-test.c
-sub generate_testfile {
- my ($input, $output) = @_;
-
- open INPUT, $input or die ("Can't open $input: $!");
- open OUTPUT, ">$output" or die ("Can't open $output: $!");
-
- # Replace the special macros
- while (<INPUT>) {
- # AUTO_TESTS (function),
- if (/^\s*AUTO_TESTS_/) {
- my ($descr, $func, @modes, $auto_test, $num_auto_tests);
- my (@rm_tests, $rm, $i);
- @modes = qw(downward tonearest towardzero upward);
- ($descr, $func) = ($_ =~ /AUTO_TESTS_(\w+)\s*\((\w+)\)/);
- for ($rm = 0; $rm <= 3; $rm++) {
- $rm_tests[$rm] = [sort keys %{$auto_tests{$func}{$modes[$rm]}}];
- }
- $num_auto_tests = scalar @{$rm_tests[0]};
- for ($rm = 1; $rm <= 3; $rm++) {
- if ($num_auto_tests != scalar @{$rm_tests[$rm]}) {
- die ("inconsistent numbers of tests for $func\n");
- }
- for ($i = 0; $i < $num_auto_tests; $i++) {
- if ($rm_tests[0][$i] ne $rm_tests[$rm][$i]) {
- die ("inconsistent list of tests of $func\n");
- }
- }
- }
- if ($num_auto_tests == 0) {
- die ("no automatic tests for $func\n");
- }
- foreach $auto_test (@{$rm_tests[0]}) {
- my ($format, $inputs, $format_conv, $args_str);
- ($format, $inputs) = split / /, $auto_test, 2;
- $inputs =~ s/ /, /g;
- $format_conv = convert_condition ($format);
- print OUTPUT "#if $format_conv\n";
- $args_str = "$func, $inputs";
- for ($rm = 0; $rm <= 3; $rm++) {
- my ($auto_test_out, $outputs, $flags);
- my ($flags_conv, @flags, %flag_cond);
- $auto_test_out = $auto_tests{$func}{$modes[$rm]}{$auto_test};
- ($outputs, $flags) = split / : */, $auto_test_out;
- $outputs =~ s/ /, /g;
- @flags = split / /, $flags;
- foreach (@flags) {
- if (/^([^:]*):(.*)$/) {
- my ($flag, $cond);
- $flag = $1;
- $cond = convert_condition ($2);
- if (defined ($flag_cond{$flag})) {
- if ($flag_cond{$flag} ne "1") {
- $flag_cond{$flag} .= " || $cond";
- }
- } else {
- $flag_cond{$flag} = $cond;
- }
- } else {
- $flag_cond{$_} = "1";
- }
- }
- $flags_conv = "";
- if (defined ($flag_cond{"ignore-zero-inf-sign"})) {
- $flags_conv .= or_cond_value ($flag_cond{"ignore-zero-inf-sign"},
- "IGNORE_ZERO_INF_SIGN", "0");
- }
- if (defined ($flag_cond{"no-test-inline"})) {
- $flags_conv .= or_cond_value ($flag_cond{"no-test-inline"},
- "NO_TEST_INLINE", "0");
- }
- if (defined ($flag_cond{"xfail"})) {
- $flags_conv .= or_cond_value ($flag_cond{"xfail"},
- "XFAIL_TEST", "0");
- }
- my (@exc_list) = qw(divbyzero inexact invalid overflow underflow);
- my ($exc);
- foreach $exc (@exc_list) {
- my ($exc_expected, $exc_ok, $no_exc, $exc_cond, $exc_ok_cond);
- $exc_expected = "\U$exc\E_EXCEPTION";
- $exc_ok = "\U$exc\E_EXCEPTION_OK";
- $no_exc = "0";
- if ($exc eq "inexact") {
- $exc_ok = "0";
- $no_exc = "NO_INEXACT_EXCEPTION";
- }
- if (defined ($flag_cond{$exc})) {
- $exc_cond = $flag_cond{$exc};
- } else {
- $exc_cond = "0";
- }
- if (defined ($flag_cond{"$exc-ok"})) {
- $exc_ok_cond = $flag_cond{"$exc-ok"};
- } else {
- $exc_ok_cond = "0";
- }
- $flags_conv .= or_cond_value ($exc_cond,
- cond_value ($exc_ok_cond,
- $exc_ok, $exc_expected),
- cond_value ($exc_ok_cond,
- $exc_ok, $no_exc));
- }
- my ($errno_expected, $errno_unknown_cond);
- if (defined ($flag_cond{"errno-edom"})) {
- if ($flag_cond{"errno-edom"} ne "1") {
- die ("unexpected condition for errno-edom");
- }
- if (defined ($flag_cond{"errno-erange"})) {
- die ("multiple errno values expected");
- }
- $errno_expected = "ERRNO_EDOM";
- } elsif (defined ($flag_cond{"errno-erange"})) {
- if ($flag_cond{"errno-erange"} ne "1") {
- die ("unexpected condition for errno-erange");
- }
- $errno_expected = "ERRNO_ERANGE";
- } else {
- $errno_expected = "ERRNO_UNCHANGED";
- }
- if (defined ($flag_cond{"errno-edom-ok"})) {
- if (defined ($flag_cond{"errno-erange-ok"})
- && ($flag_cond{"errno-erange-ok"}
- ne $flag_cond{"errno-edom-ok"})) {
- $errno_unknown_cond = "($flag_cond{\"errno-edom-ok\"} || $flag_cond{\"errno-erange-ok\"})";
- } else {
- $errno_unknown_cond = $flag_cond{"errno-edom-ok"};
- }
- } elsif (defined ($flag_cond{"errno-erange-ok"})) {
- $errno_unknown_cond = $flag_cond{"errno-erange-ok"};
- } else {
- $errno_unknown_cond = "0";
- }
- $flags_conv .= or_cond_value ($errno_unknown_cond,
- "0", $errno_expected);
- if ($flags_conv eq "") {
- $flags_conv = ", NO_EXCEPTION";
- } else {
- $flags_conv =~ s/^ \|/,/;
- }
- $args_str .= ", $outputs$flags_conv";
- }
- &parse_args (\*OUTPUT, $descr, $args_str);
- print OUTPUT "#endif\n";
- }
- next;
- }
-
- # TEST_...
- if (/^\s*TEST_/) {
- my ($descr, $args);
- chop;
- ($descr, $args) = ($_ =~ /TEST_(\w+)\s*\((.*)\)/);
- &parse_args (\*OUTPUT, $descr, $args);
- next;
- }
- print OUTPUT;
- }
- close INPUT;
- close OUTPUT;
-}
-
-
-
-# Parse ulps file
-sub parse_ulps {
- my ($file) = @_;
- my ($test, $type, $float, $eps, $float_regex);
-
- # Build a basic regex to match type entries in the
- # generated ULPS file.
- foreach my $ftype (@all_floats) {
- $float_regex .= "|" . $ftype;
- }
- $float_regex = "^" . substr ($float_regex, 1) . ":";
-
- # $type has the following values:
- # "normal": No complex variable
- # "real": Real part of complex result
- # "imag": Imaginary part of complex result
- open ULP, $file or die ("Can't open $file: $!");
- while (<ULP>) {
- chop;
- # ignore comments and empty lines
- next if /^#/;
- next if /^\s*$/;
- if (/^Function: /) {
- if (/Real part of/) {
- s/Real part of //;
- $type = 'real';
- } elsif (/Imaginary part of/) {
- s/Imaginary part of //;
- $type = 'imag';
- } else {
- $type = 'normal';
- }
- ($test) = ($_ =~ /^Function:\s*\"([a-zA-Z0-9_]+)\"/);
- next;
- }
- if (/$float_regex/) {
- ($float, $eps) = split /\s*:\s*/,$_,2;
-
- if ($eps eq "0") {
- # ignore
- next;
- } else {
- if (!defined ($results{$test}{$type}{'ulp'}{$float})
- || $results{$test}{$type}{'ulp'}{$float} < $eps) {
- $results{$test}{$type}{'ulp'}{$float} = $eps;
- $results{$test}{'has_ulps'} = 1;
- }
- }
- if ($type =~ /^real|imag$/) {
- $results{$test}{'type'} = 'complex';
- } elsif ($type eq 'normal') {
- $results{$test}{'type'} = 'normal';
- }
- next;
- }
- print "Skipping unknown entry: `$_'\n";
- }
- close ULP;
-}
-
-
-# Clean up a floating point number
-sub clean_up_number {
- my ($number) = @_;
-
- # Remove trailing zeros after the decimal point
- if ($number =~ /\./) {
- $number =~ s/0+$//;
- $number =~ s/\.$//;
- }
- return $number;
-}
-
-# Output a file which can be read in as ulps file.
-sub print_ulps_file {
- my ($file) = @_;
- my ($test, $type, $float, $eps, $fct, $last_fct);
-
- $last_fct = '';
- open NEWULP, ">$file" or die ("Can't open $file: $!");
- print NEWULP "# Begin of automatic generation\n";
- print NEWULP "\n# Maximal error of functions:\n";
-
- foreach $fct (sort keys %results) {
- foreach $type ('real', 'imag', 'normal') {
- if (exists $results{$fct}{$type}) {
- if ($type eq 'normal') {
- print NEWULP "Function: \"$fct\":\n";
- } elsif ($type eq 'real') {
- print NEWULP "Function: Real part of \"$fct\":\n";
- } elsif ($type eq 'imag') {
- print NEWULP "Function: Imaginary part of \"$fct\":\n";
- }
- foreach $float (@all_floats) {
- if (exists $results{$fct}{$type}{'ulp'}{$float}) {
- print NEWULP "$float: ",
- &clean_up_number ($results{$fct}{$type}{'ulp'}{$float}),
- "\n";
- }
- }
- print NEWULP "\n";
- }
- }
- }
- print NEWULP "# end of automatic generation\n";
- close NEWULP;
-}
-
-sub get_ulps {
- my ($test, $type, $float) = @_;
-
- return (exists $results{$test}{$type}{'ulp'}{$float}
- ? $results{$test}{$type}{'ulp'}{$float} : "0");
-}
-
-# Return the ulps value for a single test.
-sub get_all_ulps_for_test {
- my ($test, $type) = @_;
- my ($ldouble, $double, $float, $ildouble, $idouble, $ifloat);
- my ($ulps_str);
-
- if (exists $results{$test}{'has_ulps'}) {
- foreach $float (@all_floats) {
- $ulps_str .= &get_ulps ($test, $type, $float) . ", ";
- }
- return "{" . substr ($ulps_str, 0, -2) . "}";
- } else {
- die "get_all_ulps_for_test called for \"$test\" with no ulps\n";
- }
-}
-
-# Print include file
-sub output_ulps {
- my ($file, $ulps_filename) = @_;
- my ($i, $fct, $type, $ulp, $ulp_real, $ulp_imag);
- my (%func_ulps, %func_real_ulps, %func_imag_ulps);
-
- open ULP, ">$file" or die ("Can't open $file: $!");
-
- print ULP "/* This file is automatically generated\n";
- print ULP " from $ulps_filename with gen-libm-test.pl.\n";
- print ULP " Don't change it - change instead the master files. */\n\n";
-
- print ULP "struct ulp_data\n";
- print ULP "{\n";
- print ULP " const char *name;\n";
- print ULP " FLOAT max_ulp[" . @all_floats . "];\n";
- print ULP "};\n\n";
-
- for ($i = 0; $i <= $#all_floats; $i++) {
- $type = $all_floats[$i];
- print ULP "#define ULP_";
- if ($type =~ /^i/) {
- print ULP "I_";
- $type = substr $type, 1;
- }
- print ULP "$all_floats_pfx{$type} $i\n";
- }
-
- foreach $fct (keys %results) {
- $type = $results{$fct}{'type'};
- if ($type eq 'normal') {
- $ulp = get_all_ulps_for_test ($fct, 'normal');
- } elsif ($type eq 'complex') {
- $ulp_real = get_all_ulps_for_test ($fct, 'real');
- $ulp_imag = get_all_ulps_for_test ($fct, 'imag');
- } else {
- die "unknown results ($fct) type $type\n";
- }
- if ($type eq 'normal') {
- $func_ulps{$fct} = $ulp;
- } else {
- $func_real_ulps{$fct} = $ulp_real;
- $func_imag_ulps{$fct} = $ulp_imag;
- }
- }
- print ULP "\n/* Maximal error of functions. */\n";
- print ULP "static const struct ulp_data func_ulps[] =\n {\n";
- foreach $fct (sort keys %func_ulps) {
- print ULP " { \"$fct\", $func_ulps{$fct} },\n";
- }
- print ULP " };\n";
- print ULP "static const struct ulp_data func_real_ulps[] =\n {\n";
- foreach $fct (sort keys %func_real_ulps) {
- print ULP " { \"$fct\", $func_real_ulps{$fct} },\n";
- }
- print ULP " };\n";
- print ULP "static const struct ulp_data func_imag_ulps[] =\n {\n";
- foreach $fct (sort keys %func_imag_ulps) {
- print ULP " { \"$fct\", $func_imag_ulps{$fct} },\n";
- }
- print ULP " };\n";
- close ULP;
-}
-
-# Parse auto-libm-test-out.
-sub parse_auto_input {
- my ($file) = @_;
- open AUTO, $file or die ("Can't open $file: $!");
- while (<AUTO>) {
- chop;
- next if !/^= /;
- s/^= //;
- if (/^(\S+) (\S+) ([^: ][^ ]* [^:]*) : (.*)$/) {
- $auto_tests{$1}{$2}{$3} = $4;
- } else {
- die ("bad automatic test line: $_\n");
- }
- }
- close AUTO;
-}
diff --git a/math/gen-libm-test.py b/math/gen-libm-test.py
new file mode 100755
index 0000000000..01e0d2397c
--- /dev/null
+++ b/math/gen-libm-test.py
@@ -0,0 +1,689 @@
+#!/usr/bin/python
+# Generate tests for libm functions.
+# Copyright (C) 2018-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
+# <https://www.gnu.org/licenses/>.
+
+import argparse
+from collections import defaultdict
+import os
+import re
+
+
+# Sorted list of all float types in ulps files.
+ALL_FLOATS = ('double', 'float', 'float128', 'idouble',
+ 'ifloat', 'ifloat128', 'ildouble', 'ldouble')
+
+# Map float types in ulps files to C-like prefix for macros.
+ALL_FLOATS_PFX = {'double': 'DBL',
+ 'ldouble': 'LDBL',
+ 'float': 'FLT',
+ 'float128': 'FLT128'}
+
+# Float types in the order used in the generated ulps tables in the
+# manual.
+ALL_FLOATS_MANUAL = ('float', 'double', 'ldouble', 'float128')
+
+# Map float types in ulps files to C function suffix.
+ALL_FLOATS_SUFFIX = {'double': '',
+ 'ldouble': 'l',
+ 'float': 'f',
+ 'float128': 'f128'}
+
+# Number of arguments in structure (as opposed to arguments that are
+# pointers to return values) for an argument descriptor.
+DESCR_NUM_ARGS = {'f': 1, 'a': 1, 'j': 1, 'i': 1, 'u': 1, 'l': 1, 'L': 1,
+ 'p': 0, 'F': 0, 'I': 0,
+ 'c': 2}
+
+# Number of results in structure for a result descriptor.
+DESCR_NUM_RES = {'f': 1, 'i': 1, 'l': 1, 'L': 1, 'M': 1, 'U': 1, 'b': 1,
+ '1': 1,
+ 'c': 2}
+
+# Rounding modes, in the form in which they appear in
+# auto-libm-test-out-* and the order in which expected results appear
+# in structures and TEST_* calls.
+ROUNDING_MODES = ('downward', 'tonearest', 'towardzero', 'upward')
+
+# Map from special text in TEST_* calls for rounding-mode-specific
+# results and flags, to those results for each mode.
+ROUNDING_MAP = {
+ 'plus_oflow': ('max_value', 'plus_infty', 'max_value', 'plus_infty'),
+ 'minus_oflow': ('minus_infty', 'minus_infty', '-max_value', '-max_value'),
+ 'plus_uflow': ('plus_zero', 'plus_zero', 'plus_zero', 'min_subnorm_value'),
+ 'minus_uflow': ('-min_subnorm_value', 'minus_zero', 'minus_zero',
+ 'minus_zero'),
+ 'ERRNO_PLUS_OFLOW': ('0', 'ERRNO_ERANGE', '0', 'ERRNO_ERANGE'),
+ 'ERRNO_MINUS_OFLOW': ('ERRNO_ERANGE', 'ERRNO_ERANGE', '0', '0'),
+ 'ERRNO_PLUS_UFLOW': ('ERRNO_ERANGE', 'ERRNO_ERANGE', 'ERRNO_ERANGE', '0'),
+ 'ERRNO_MINUS_UFLOW': ('0', 'ERRNO_ERANGE', 'ERRNO_ERANGE', 'ERRNO_ERANGE'),
+ 'XFAIL_ROUNDING_IBM128_LIBGCC': ('XFAIL_IBM128_LIBGCC', '0',
+ 'XFAIL_IBM128_LIBGCC',
+ 'XFAIL_IBM128_LIBGCC')
+ }
+
+# Map from raw test arguments to a nicer form to use when displaying
+# test results.
+BEAUTIFY_MAP = {'minus_zero': '-0',
+ 'plus_zero': '+0',
+ '-0x0p+0f': '-0',
+ '-0x0p+0': '-0',
+ '-0x0p+0L': '-0',
+ '0x0p+0f': '+0',
+ '0x0p+0': '+0',
+ '0x0p+0L': '+0',
+ 'minus_infty': '-inf',
+ 'plus_infty': 'inf',
+ 'qnan_value': 'qNaN',
+ 'snan_value': 'sNaN',
+ 'snan_value_ld': 'sNaN'}
+
+# Flags in auto-libm-test-out that map directly to C flags.
+FLAGS_SIMPLE = {'ignore-zero-inf-sign': 'IGNORE_ZERO_INF_SIGN',
+ 'no-test-inline': 'NO_TEST_INLINE',
+ 'xfail': 'XFAIL_TEST'}
+
+# Exceptions in auto-libm-test-out, and their corresponding C flags
+# for being required, OK or required to be absent.
+EXC_EXPECTED = {'divbyzero': 'DIVBYZERO_EXCEPTION',
+ 'inexact': 'INEXACT_EXCEPTION',
+ 'invalid': 'INVALID_EXCEPTION',
+ 'overflow': 'OVERFLOW_EXCEPTION',
+ 'underflow': 'UNDERFLOW_EXCEPTION'}
+EXC_OK = {'divbyzero': 'DIVBYZERO_EXCEPTION_OK',
+ 'inexact': '0',
+ 'invalid': 'INVALID_EXCEPTION_OK',
+ 'overflow': 'OVERFLOW_EXCEPTION_OK',
+ 'underflow': 'UNDERFLOW_EXCEPTION_OK'}
+EXC_NO = {'divbyzero': '0',
+ 'inexact': 'NO_INEXACT_EXCEPTION',
+ 'invalid': '0',
+ 'overflow': '0',
+ 'underflow': '0'}
+
+
+class Ulps(object):
+ """Maximum expected errors of libm functions."""
+
+ def __init__(self):
+ """Initialize an Ulps object."""
+ # normal[function][float_type] is the ulps value, and likewise
+ # for real and imag.
+ self.normal = defaultdict(lambda: defaultdict(lambda: 0))
+ self.real = defaultdict(lambda: defaultdict(lambda: 0))
+ self.imag = defaultdict(lambda: defaultdict(lambda: 0))
+ # List of ulps kinds, in the order in which they appear in
+ # sorted ulps files.
+ self.ulps_kinds = (('Real part of ', self.real),
+ ('Imaginary part of ', self.imag),
+ ('', self.normal))
+ self
+
+ def read(self, ulps_file):
+ """Read ulps from a file into an Ulps object."""
+ self.ulps_file = ulps_file
+ with open(ulps_file, 'r') as f:
+ ulps_dict = None
+ ulps_fn = None
+ for line in f:
+ # Ignore comments.
+ if line.startswith('#'):
+ continue
+ line = line.rstrip()
+ # Ignore empty lines.
+ if line == '':
+ continue
+ m = re.match(r'([^:]*): (.*)\Z', line)
+ if not m:
+ raise ValueError('bad ulps line: %s' % line)
+ line_first = m.group(1)
+ line_second = m.group(2)
+ if line_first == 'Function':
+ fn = None
+ ulps_dict = None
+ for k_prefix, k_dict in self.ulps_kinds:
+ if line_second.startswith(k_prefix):
+ ulps_dict = k_dict
+ fn = line_second[len(k_prefix):]
+ break
+ if not fn.startswith('"') or not fn.endswith('":'):
+ raise ValueError('bad ulps line: %s' % line)
+ ulps_fn = fn[1:-2]
+ else:
+ if line_first not in ALL_FLOATS:
+ raise ValueError('bad ulps line: %s' % line)
+ ulps_val = int(line_second)
+ if ulps_val > 0:
+ ulps_dict[ulps_fn][line_first] = max(
+ ulps_dict[ulps_fn][line_first],
+ ulps_val)
+
+ def all_functions(self):
+ """Return the set of functions with ulps and whether they are
+ complex."""
+ funcs = set()
+ complex = {}
+ for k_prefix, k_dict in self.ulps_kinds:
+ for f in k_dict:
+ funcs.add(f)
+ complex[f] = True if k_prefix else False
+ return funcs, complex
+
+ def write(self, ulps_file):
+ """Write ulps back out as a sorted ulps file."""
+ # Output is sorted first by function name, then by (real,
+ # imag, normal), then by float type.
+ out_data = {}
+ for order, (prefix, d) in enumerate(self.ulps_kinds):
+ for fn in d.keys():
+ fn_data = ['%s: %d' % (f, d[fn][f])
+ for f in sorted(d[fn].keys())]
+ fn_text = 'Function: %s"%s":\n%s' % (prefix, fn,
+ '\n'.join(fn_data))
+ out_data[(fn, order)] = fn_text
+ out_list = [out_data[fn_order] for fn_order in sorted(out_data.keys())]
+ out_text = ('# Begin of automatic generation\n\n'
+ '# Maximal error of functions:\n'
+ '%s\n\n'
+ '# end of automatic generation\n'
+ % '\n\n'.join(out_list))
+ with open(ulps_file, 'w') as f:
+ f.write(out_text)
+
+ @staticmethod
+ def ulps_table(name, ulps_dict):
+ """Return text of a C table of ulps."""
+ ulps_list = []
+ for fn in sorted(ulps_dict.keys()):
+ fn_ulps = [str(ulps_dict[fn][f]) for f in ALL_FLOATS]
+ ulps_list.append(' { "%s", {%s} },' % (fn, ', '.join(fn_ulps)))
+ ulps_text = ('static const struct ulp_data %s[] =\n'
+ ' {\n'
+ '%s\n'
+ ' };'
+ % (name, '\n'.join(ulps_list)))
+ return ulps_text
+
+ def write_header(self, ulps_header):
+ """Write header file with ulps data."""
+ header_text_1 = ('/* This file is automatically generated\n'
+ ' from %s with gen-libm-test.py.\n'
+ ' Don\'t change it - change instead the master '
+ 'files. */\n\n'
+ 'struct ulp_data\n'
+ '{\n'
+ ' const char *name;\n'
+ ' FLOAT max_ulp[%d];\n'
+ '};'
+ % (self.ulps_file, len(ALL_FLOATS)))
+ macro_list = []
+ for i, f in enumerate(ALL_FLOATS):
+ if f.startswith('i'):
+ itxt = 'I_'
+ f = f[1:]
+ else:
+ itxt = ''
+ macro_list.append('#define ULP_%s%s %d'
+ % (itxt, ALL_FLOATS_PFX[f], i))
+ header_text = ('%s\n\n'
+ '%s\n\n'
+ '/* Maximal error of functions. */\n'
+ '%s\n'
+ '%s\n'
+ '%s\n'
+ % (header_text_1, '\n'.join(macro_list),
+ self.ulps_table('func_ulps', self.normal),
+ self.ulps_table('func_real_ulps', self.real),
+ self.ulps_table('func_imag_ulps', self.imag)))
+ with open(ulps_header, 'w') as f:
+ f.write(header_text)
+
+
+def read_all_ulps(srcdir):
+ """Read all platforms' libm-test-ulps files."""
+ all_ulps = {}
+ for dirpath, dirnames, filenames in os.walk(srcdir):
+ if 'libm-test-ulps' in filenames:
+ with open(os.path.join(dirpath, 'libm-test-ulps-name')) as f:
+ name = f.read().rstrip()
+ all_ulps[name] = Ulps()
+ all_ulps[name].read(os.path.join(dirpath, 'libm-test-ulps'))
+ return all_ulps
+
+
+def read_auto_tests(test_file):
+ """Read tests from auto-libm-test-out-<function> (possibly None)."""
+ auto_tests = defaultdict(lambda: defaultdict(dict))
+ if test_file is None:
+ return auto_tests
+ with open(test_file, 'r') as f:
+ for line in f:
+ if not line.startswith('= '):
+ continue
+ line = line[len('= '):].rstrip()
+ # Function, rounding mode, condition and inputs, outputs
+ # and flags.
+ m = re.match(r'([^ ]+) ([^ ]+) ([^: ][^ ]* [^:]*) : (.*)\Z', line)
+ if not m:
+ raise ValueError('bad automatic test line: %s' % line)
+ auto_tests[m.group(1)][m.group(2)][m.group(3)] = m.group(4)
+ return auto_tests
+
+
+def beautify(arg):
+ """Return a nicer representation of a test argument."""
+ if arg in BEAUTIFY_MAP:
+ return BEAUTIFY_MAP[arg]
+ if arg.startswith('-') and arg[1:] in BEAUTIFY_MAP:
+ return '-' + BEAUTIFY_MAP[arg[1:]]
+ if re.match(r'-?0x[0-9a-f.]*p[-+][0-9]+f\Z', arg):
+ return arg[:-1]
+ if re.search(r'[0-9]L\Z', arg):
+ return arg[:-1]
+ return arg
+
+
+def complex_beautify(arg_real, arg_imag):
+ """Return a nicer representation of a complex test argument."""
+ res_real = beautify(arg_real)
+ res_imag = beautify(arg_imag)
+ if res_imag.startswith('-'):
+ return '%s - %s i' % (res_real, res_imag[1:])
+ else:
+ return '%s + %s i' % (res_real, res_imag)
+
+
+def apply_lit_token(arg, macro):
+ """Apply the LIT or ARG_LIT macro to a single token."""
+ # The macro must only be applied to a floating-point constant, not
+ # to an integer constant or lit_* value.
+ sign_re = r'[+-]?'
+ exp_re = r'([+-])?[0-9]+'
+ suffix_re = r'[lLfF]?'
+ dec_exp_re = r'[eE]' + exp_re
+ hex_exp_re = r'[pP]' + exp_re
+ dec_frac_re = r'(?:[0-9]*\.[0-9]+|[0-9]+\.)'
+ hex_frac_re = r'(?:[0-9a-fA-F]*\.[0-9a-fA-F]+|[0-9a-fA-F]+\.)'
+ dec_int_re = r'[0-9]+'
+ hex_int_re = r'[0-9a-fA-F]+'
+ dec_cst_re = r'(?:%s(?:%s)?|%s%s)' % (dec_frac_re, dec_exp_re,
+ dec_int_re, dec_exp_re)
+ hex_cst_re = r'0[xX](?:%s|%s)%s' % (hex_frac_re, hex_int_re, hex_exp_re)
+ fp_cst_re = r'(%s(?:%s|%s))%s\Z' % (sign_re, dec_cst_re, hex_cst_re,
+ suffix_re)
+ m = re.match(fp_cst_re, arg)
+ if m:
+ return '%s (%s)' % (macro, m.group(1))
+ else:
+ return arg
+
+
+def apply_lit(arg, macro):
+ """Apply the LIT or ARG_LIT macro to constants within an expression."""
+ # Assume expressions follow the GNU Coding Standards, with tokens
+ # separated by spaces.
+ return ' '.join([apply_lit_token(t, macro) for t in arg.split()])
+
+
+def gen_test_args_res(descr_args, descr_res, args, res_rm):
+ """Generate a test given the arguments and per-rounding-mode results."""
+ test_snan = False
+ all_args_res = list(args)
+ for r in res_rm:
+ all_args_res.extend(r[:len(r)-1])
+ for a in all_args_res:
+ if 'snan_value' in a:
+ test_snan = True
+ # Process the arguments.
+ args_disp = []
+ args_c = []
+ arg_pos = 0
+ for d in descr_args:
+ if DESCR_NUM_ARGS[d] == 0:
+ continue
+ if d == 'c':
+ args_disp.append(complex_beautify(args[arg_pos],
+ args[arg_pos + 1]))
+ args_c.append(apply_lit(args[arg_pos], 'LIT'))
+ args_c.append(apply_lit(args[arg_pos + 1], 'LIT'))
+ else:
+ args_disp.append(beautify(args[arg_pos]))
+ if d == 'f':
+ args_c.append(apply_lit(args[arg_pos], 'LIT'))
+ elif d == 'a':
+ args_c.append(apply_lit(args[arg_pos], 'ARG_LIT'))
+ else:
+ args_c.append(args[arg_pos])
+ arg_pos += DESCR_NUM_ARGS[d]
+ args_disp_text = ', '.join(args_disp).replace('"', '\\"')
+ # Process the results.
+ for rm in range(len(ROUNDING_MODES)):
+ res = res_rm[rm]
+ res_pos = 0
+ rm_args = []
+ ignore_result_any = False
+ ignore_result_all = True
+ special = []
+ for d in descr_res:
+ if d == '1':
+ special.append(res[res_pos])
+ elif DESCR_NUM_RES[d] == 1:
+ result = res[res_pos]
+ if result == 'IGNORE':
+ ignore_result_any = True
+ result = '0'
+ else:
+ ignore_result_all = False
+ if d == 'f':
+ result = apply_lit(result, 'LIT')
+ rm_args.append(result)
+ else:
+ # Complex result.
+ result1 = res[res_pos]
+ if result1 == 'IGNORE':
+ ignore_result_any = True
+ result1 = '0'
+ else:
+ ignore_result_all = False
+ result1 = apply_lit(result1, 'LIT')
+ rm_args.append(result1)
+ result2 = res[res_pos + 1]
+ if result2 == 'IGNORE':
+ ignore_result_any = True
+ result2 = '0'
+ else:
+ ignore_result_all = False
+ result2 = apply_lit(result2, 'LIT')
+ rm_args.append(result2)
+ res_pos += DESCR_NUM_RES[d]
+ if ignore_result_any and not ignore_result_all:
+ raise ValueError('some but not all function results ignored')
+ flags = []
+ if ignore_result_any:
+ flags.append('IGNORE_RESULT')
+ if test_snan:
+ flags.append('TEST_SNAN')
+ flags.append(res[res_pos])
+ rm_args.append('|'.join(flags))
+ for sp in special:
+ if sp == 'IGNORE':
+ rm_args.extend(['0', '0'])
+ else:
+ rm_args.extend(['1', apply_lit(sp, 'LIT')])
+ for k in sorted(ROUNDING_MAP.keys()):
+ rm_args = [arg.replace(k, ROUNDING_MAP[k][rm]) for arg in rm_args]
+ args_c.append('{ %s }' % ', '.join(rm_args))
+ return ' { "%s", %s },\n' % (args_disp_text, ', '.join(args_c))
+
+
+def convert_condition(cond):
+ """Convert a condition from auto-libm-test-out to C form."""
+ conds = cond.split(':')
+ conds_c = []
+ for c in conds:
+ if not c.startswith('arg_fmt('):
+ c = c.replace('-', '_')
+ conds_c.append('TEST_COND_' + c)
+ return '(%s)' % ' && '.join(conds_c)
+
+
+def cond_value(cond, if_val, else_val):
+ """Return a C conditional expression between two values."""
+ if cond == '1':
+ return if_val
+ elif cond == '0':
+ return else_val
+ else:
+ return '(%s ? %s : %s)' % (cond, if_val, else_val)
+
+
+def gen_auto_tests(auto_tests, descr_args, descr_res, fn):
+ """Generate C code for the auto-libm-test-out-* tests for a function."""
+ for rm_idx, rm_name in enumerate(ROUNDING_MODES):
+ this_tests = sorted(auto_tests[fn][rm_name].keys())
+ if rm_idx == 0:
+ rm_tests = this_tests
+ if not rm_tests:
+ raise ValueError('no automatic tests for %s' % fn)
+ else:
+ if rm_tests != this_tests:
+ raise ValueError('inconsistent lists of tests of %s' % fn)
+ test_list = []
+ for test in rm_tests:
+ fmt_args = test.split()
+ fmt = fmt_args[0]
+ args = fmt_args[1:]
+ test_list.append('#if %s\n' % convert_condition(fmt))
+ res_rm = []
+ for rm in ROUNDING_MODES:
+ test_out = auto_tests[fn][rm][test]
+ out_str, flags_str = test_out.split(':', 1)
+ this_res = out_str.split()
+ flags = flags_str.split()
+ flag_cond = {}
+ for flag in flags:
+ m = re.match(r'([^:]*):(.*)\Z', flag)
+ if m:
+ f_name = m.group(1)
+ cond = convert_condition(m.group(2))
+ if f_name in flag_cond:
+ if flag_cond[f_name] != '1':
+ flag_cond[f_name] = ('%s || %s'
+ % (flag_cond[f_name], cond))
+ else:
+ flag_cond[f_name] = cond
+ else:
+ flag_cond[flag] = '1'
+ flags_c = []
+ for flag in sorted(FLAGS_SIMPLE.keys()):
+ if flag in flag_cond:
+ flags_c.append(cond_value(flag_cond[flag],
+ FLAGS_SIMPLE[flag], '0'))
+ for exc in sorted(EXC_EXPECTED.keys()):
+ exc_expected = EXC_EXPECTED[exc]
+ exc_ok = EXC_OK[exc]
+ no_exc = EXC_NO[exc]
+ exc_cond = flag_cond.get(exc, '0')
+ exc_ok_cond = flag_cond.get(exc + '-ok', '0')
+ flags_c.append(cond_value(exc_cond,
+ cond_value(exc_ok_cond, exc_ok,
+ exc_expected),
+ cond_value(exc_ok_cond, exc_ok,
+ no_exc)))
+ if 'errno-edom' in flag_cond and 'errno-erange' in flag_cond:
+ raise ValueError('multiple errno values expected')
+ if 'errno-edom' in flag_cond:
+ if flag_cond['errno-edom'] != '1':
+ raise ValueError('unexpected condition for errno-edom')
+ errno_expected = 'ERRNO_EDOM'
+ elif 'errno-erange' in flag_cond:
+ if flag_cond['errno-erange'] != '1':
+ raise ValueError('unexpected condition for errno-erange')
+ errno_expected = 'ERRNO_ERANGE'
+ else:
+ errno_expected = 'ERRNO_UNCHANGED'
+ if 'errno-edom-ok' in flag_cond:
+ if ('errno-erange-ok' in flag_cond
+ and (flag_cond['errno-erange-ok']
+ != flag_cond['errno-edom-ok'])):
+ errno_unknown_cond = ('%s || %s'
+ % (flag_cond['errno-edom-ok'],
+ flag_cond['errno-erange-ok']))
+ else:
+ errno_unknown_cond = flag_cond['errno-edom-ok']
+ else:
+ errno_unknown_cond = flag_cond.get('errno-erange-ok', '0')
+ flags_c.append(cond_value(errno_unknown_cond, '0', errno_expected))
+ flags_c = [flag for flag in flags_c if flag != '0']
+ if not flags_c:
+ flags_c = ['NO_EXCEPTION']
+ this_res.append(' | '.join(flags_c))
+ res_rm.append(this_res)
+ test_list.append(gen_test_args_res(descr_args, descr_res, args,
+ res_rm))
+ test_list.append('#endif\n')
+ return ''.join(test_list)
+
+
+def gen_test_line(descr_args, descr_res, args_str):
+ """Generate C code for the tests for a single TEST_* line."""
+ test_args = args_str.split(',')
+ test_args = test_args[1:]
+ test_args = [a.strip() for a in test_args]
+ num_args = sum([DESCR_NUM_ARGS[c] for c in descr_args])
+ num_res = sum([DESCR_NUM_RES[c] for c in descr_res])
+ args = test_args[:num_args]
+ res = test_args[num_args:]
+ if len(res) == num_res:
+ # One set of results for all rounding modes, no flags.
+ res.append('0')
+ res_rm = [res, res, res, res]
+ elif len(res) == num_res + 1:
+ # One set of results for all rounding modes, with flags.
+ if not ('EXCEPTION' in res[-1]
+ or 'ERRNO' in res[-1]
+ or 'IGNORE_ZERO_INF_SIGN' in res[-1]
+ or 'TEST_NAN_SIGN' in res[-1]
+ or 'NO_TEST_INLINE' in res[-1]
+ or 'XFAIL' in res[-1]):
+ raise ValueError('wrong number of arguments: %s' % args_str)
+ res_rm = [res, res, res, res]
+ elif len(res) == (num_res + 1) * 4:
+ # One set of results per rounding mode, with flags.
+ nr_plus = num_res + 1
+ res_rm = [res[:nr_plus], res[nr_plus:2*nr_plus],
+ res[2*nr_plus:3*nr_plus], res[3*nr_plus:]]
+ return gen_test_args_res(descr_args, descr_res, args, res_rm)
+
+
+def generate_testfile(inc_input, auto_tests, c_output):
+ """Generate test .c file from .inc input."""
+ test_list = []
+ with open(inc_input, 'r') as f:
+ for line in f:
+ line_strip = line.strip()
+ if line_strip.startswith('AUTO_TESTS_'):
+ m = re.match(r'AUTO_TESTS_([^_]*)_([^_ ]*) *\(([^)]*)\),\Z',
+ line_strip)
+ if not m:
+ raise ValueError('bad AUTO_TESTS line: %s' % line)
+ test_list.append(gen_auto_tests(auto_tests, m.group(1),
+ m.group(2), m.group(3)))
+ elif line_strip.startswith('TEST_'):
+ m = re.match(r'TEST_([^_]*)_([^_ ]*) *\((.*)\),\Z', line_strip)
+ if not m:
+ raise ValueError('bad TEST line: %s' % line)
+ test_list.append(gen_test_line(m.group(1), m.group(2),
+ m.group(3)))
+ else:
+ test_list.append(line)
+ with open(c_output, 'w') as f:
+ f.write(''.join(test_list))
+
+
+def generate_err_table_sub(all_ulps, all_functions, fns_complex, platforms):
+ """Generate a single table within the overall ulps table section."""
+ plat_width = [' {1000 + i 1000}' for p in platforms]
+ plat_header = [' @tab %s' % p for p in platforms]
+ table_list = ['@multitable {nexttowardf} %s\n' % ''.join(plat_width),
+ '@item Function %s\n' % ''.join(plat_header)]
+ for func in all_functions:
+ for flt in ALL_FLOATS_MANUAL:
+ func_ulps = []
+ for p in platforms:
+ p_ulps = all_ulps[p]
+ if fns_complex[func]:
+ ulp_real = p_ulps.real[func][flt]
+ ulp_imag = p_ulps.imag[func][flt]
+ ulp_str = '%d + i %d' % (ulp_real, ulp_imag)
+ ulp_str = ulp_str if ulp_real or ulp_imag else '-'
+ else:
+ ulp = p_ulps.normal[func][flt]
+ ulp_str = str(ulp) if ulp else '-'
+ func_ulps.append(ulp_str)
+ table_list.append('@item %s%s @tab %s\n'
+ % (func, ALL_FLOATS_SUFFIX[flt],
+ ' @tab '.join(func_ulps)))
+ table_list.append('@end multitable\n')
+ return ''.join(table_list)
+
+
+def generate_err_table(all_ulps, err_table):
+ """Generate ulps table for manual."""
+ all_platforms = sorted(all_ulps.keys())
+ functions_set = set()
+ functions_complex = {}
+ for p in all_platforms:
+ p_functions, p_complex = all_ulps[p].all_functions()
+ functions_set.update(p_functions)
+ functions_complex.update(p_complex)
+ all_functions = sorted([f for f in functions_set
+ if ('_downward' not in f
+ and '_towardzero' not in f
+ and '_upward' not in f
+ and '_vlen' not in f)])
+ err_table_list = []
+ # Print five platforms at a time.
+ num_platforms = len(all_platforms)
+ for i in range((num_platforms + 4) // 5):
+ start = i * 5
+ end = i * 5 + 5 if num_platforms >= i * 5 + 5 else num_platforms
+ err_table_list.append(generate_err_table_sub(all_ulps, all_functions,
+ functions_complex,
+ all_platforms[start:end]))
+ with open(err_table, 'w') as f:
+ f.write(''.join(err_table_list))
+
+
+def main():
+ """The main entry point."""
+ parser = argparse.ArgumentParser(description='Generate libm tests.')
+ parser.add_argument('-a', dest='auto_input', metavar='FILE',
+ help='input file with automatically generated tests')
+ parser.add_argument('-c', dest='inc_input', metavar='FILE',
+ help='input file .inc file with tests')
+ parser.add_argument('-u', dest='ulps_file', metavar='FILE',
+ help='input file with ulps')
+ parser.add_argument('-s', dest='srcdir', metavar='DIR',
+ help='input source directory with all ulps')
+ parser.add_argument('-n', dest='ulps_output', metavar='FILE',
+ help='generate sorted ulps file FILE')
+ parser.add_argument('-C', dest='c_output', metavar='FILE',
+ help='generate output C file FILE from .inc file')
+ parser.add_argument('-H', dest='ulps_header', metavar='FILE',
+ help='generate output ulps header FILE')
+ parser.add_argument('-m', dest='err_table', metavar='FILE',
+ help='generate output ulps table for manual FILE')
+ args = parser.parse_args()
+ ulps = Ulps()
+ if args.ulps_file is not None:
+ ulps.read(args.ulps_file)
+ auto_tests = read_auto_tests(args.auto_input)
+ if args.srcdir is not None:
+ all_ulps = read_all_ulps(args.srcdir)
+ if args.ulps_output is not None:
+ ulps.write(args.ulps_output)
+ if args.ulps_header is not None:
+ ulps.write_header(args.ulps_header)
+ if args.c_output is not None:
+ generate_testfile(args.inc_input, auto_tests, args.c_output)
+ if args.err_table is not None:
+ generate_err_table(all_ulps, args.err_table)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/math/gen-tgmath-tests.py b/math/gen-tgmath-tests.py
index 9bbf703a31..ffd92e3ef9 100755
--- a/math/gen-tgmath-tests.py
+++ b/math/gen-tgmath-tests.py
@@ -1,6 +1,6 @@
#!/usr/bin/python
# Generate tests for <tgmath.h> macros.
-# Copyright (C) 2017-2018 Free Software Foundation, Inc.
+# Copyright (C) 2017-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
@@ -15,7 +15,7 @@
#
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
# As glibc does not support decimal floating point, the types to
# consider for generic parameters are standard and binary
@@ -69,17 +69,27 @@ class Type(object):
# Real argument types that correspond to a standard floating type
# (float, double or long double; not _FloatN or _FloatNx).
standard_real_argument_types_list = []
+ # Real argument types other than float, double and long double
+ # (i.e., those that are valid as arguments to narrowing macros
+ # returning _FloatN or _FloatNx).
+ non_standard_real_argument_types_list = []
# The real floating types by their order properties (which are
# tuples giving the positions in both the possible orders above).
real_types_order = {}
# The type double.
double_type = None
+ # The type long double.
+ long_double_type = None
# The type _Complex double.
complex_double_type = None
# The type _Float64.
float64_type = None
+ # The type _Complex _Float64.
+ complex_float64_type = None
# The type _Float64x.
float64x_type = None
+ # The type _Float64x if available, otherwise _Float64.
+ float32x_ext_type = None
def __init__(self, name, suffix=None, mant_dig=None, condition='1',
order=None, integer=False, complex=False, real_type=None):
@@ -109,16 +119,24 @@ class Type(object):
Type.real_argument_types_list.append(self)
if not self.name.startswith('_Float'):
Type.standard_real_argument_types_list.append(self)
+ if self.name not in ('float', 'double', 'long double'):
+ Type.non_standard_real_argument_types_list.append(self)
if self.order is not None:
Type.real_types_order[self.order] = self
if self.name == 'double':
Type.double_type = self
+ if self.name == 'long double':
+ Type.long_double_type = self
if self.name == '_Complex double':
Type.complex_double_type = self
if self.name == '_Float64':
Type.float64_type = self
+ if self.name == '_Complex _Float64':
+ Type.complex_float64_type = self
if self.name == '_Float64x':
Type.float64x_type = self
+ if self.name == 'Float32x_ext':
+ Type.float32x_ext_type = self
@staticmethod
def create_type(name, suffix=None, mant_dig=None, condition='1', order=None,
@@ -142,18 +160,23 @@ class Type(object):
if complex_type is not None:
complex_type.register_type(internal)
- def floating_type(self):
+ def floating_type(self, floatn):
"""Return the corresponding floating type."""
if self.integer:
- return (Type.complex_double_type
- if self.complex
- else Type.double_type)
+ if floatn:
+ return (Type.complex_float64_type
+ if self.complex
+ else Type.float64_type)
+ else:
+ return (Type.complex_double_type
+ if self.complex
+ else Type.double_type)
else:
return self
- def real_floating_type(self):
+ def real_floating_type(self, floatn):
"""Return the corresponding real floating type."""
- return self.real_type.floating_type()
+ return self.real_type.floating_type(floatn)
def __str__(self):
"""Return string representation of a type."""
@@ -212,15 +235,21 @@ class Type(object):
complex_name='complex_long_double_Float64x',
condition='defined HUGE_VAL_F64X', order=(7, 7),
internal=True)
+ # An internal type for the argument type used by f32x*
+ # narrowing macros (_Float64x if available, otherwise
+ # _Float64).
+ Type.create_type('Float32x_ext', None, 'FLT32X_EXT_MANT_DIG',
+ complex_name='complex_Float32x_ext',
+ condition='1', internal=True)
@staticmethod
- def can_combine_types(types):
+ def can_combine_types(types, floatn):
"""Return a C preprocessor conditional for whether the given list of
types can be used together as type-generic macro arguments."""
have_long_double = False
have_float128 = False
for t in types:
- t = t.real_floating_type()
+ t = t.real_floating_type(floatn)
if t.name == 'long double':
have_long_double = True
if t.name == '_Float128' or t.name == '_Float64x':
@@ -233,14 +262,14 @@ class Type(object):
return '1'
@staticmethod
- def combine_types(types):
+ def combine_types(types, floatn):
"""Return the result of combining a set of types."""
have_complex = False
combined = None
for t in types:
if t.complex:
have_complex = True
- t = t.real_floating_type()
+ t = t.real_floating_type(floatn)
if combined is None:
combined = t
else:
@@ -316,6 +345,7 @@ class Tests(object):
' const char *func_name;\n'
' const char *test_name;\n'
' int mant_dig;\n'
+ ' int narrow_mant_dig;\n'
' };\n'
'int num_pass, num_fail;\n'
'volatile int called_mant_dig;\n'
@@ -345,8 +375,18 @@ class Tests(object):
'# endif\n')
float64x_text = if_cond_text([Type.float64x_type.condition],
float64x_text)
+ float32x_ext_text = ('#ifdef HUGE_VAL_F64X\n'
+ 'typedef _Float64x Float32x_ext;\n'
+ 'typedef __CFLOAT64X complex_Float32x_ext;\n'
+ '# define FLT32X_EXT_MANT_DIG FLT64X_MANT_DIG\n'
+ '#else\n'
+ 'typedef _Float64 Float32x_ext;\n'
+ 'typedef __CFLOAT64 complex_Float32x_ext;\n'
+ '# define FLT32X_EXT_MANT_DIG FLT64_MANT_DIG\n'
+ '#endif\n')
self.header_list.append(float64_text)
self.header_list.append(float64x_text)
+ self.header_list.append(float32x_ext_text)
self.types_seen = set()
for t in Type.all_types_list:
self.add_type_var(t.name, t.condition)
@@ -377,6 +417,8 @@ class Tests(object):
return
have_complex = False
func = macro
+ narrowing = False
+ narrowing_std = False
if ret == 'c' or 'c' in args:
# Complex-only.
have_complex = True
@@ -387,6 +429,49 @@ class Tests(object):
have_complex = True
if complex_func == None:
complex_func = 'c%s' % func
+ # For narrowing macros, compute narrow_args, the list of
+ # argument types for which there is an actual corresponding
+ # function. If none of those types exist, or the return type
+ # does not exist, then the macro is not defined and no tests
+ # of it can be run.
+ if ret == 'float':
+ narrowing = True
+ narrowing_std = True
+ narrow_cond = '1'
+ narrow_args = [Type.double_type, Type.long_double_type]
+ narrow_fallback = Type.double_type
+ elif ret == 'double':
+ narrowing = True
+ narrowing_std = True
+ narrow_cond = '1'
+ narrow_args = [Type.long_double_type]
+ narrow_fallback = Type.long_double_type
+ elif ret.startswith('_Float'):
+ narrowing = True
+ narrow_args = []
+ nret_type = None
+ narrow_fallback = None
+ for order, real_type in sorted(Type.real_types_order.items()):
+ if real_type.name == ret:
+ nret_type = real_type
+ elif nret_type and real_type.name.startswith('_Float'):
+ narrow_args.append(real_type)
+ if (narrow_fallback is None
+ and ret.endswith('x') == real_type.name.endswith('x')):
+ narrow_fallback = real_type
+ if narrow_args:
+ narrow_cond = ('(%s && (%s))'
+ % (nret_type.condition,
+ ' || '.join(t.condition
+ for t in narrow_args)))
+ if narrow_fallback is None:
+ narrow_fallback = narrow_args[0]
+ if ret == '_Float32x':
+ narrow_fallback = Type.float32x_ext_type
+ else:
+ # No possible argument types, even conditionally.
+ narrow_cond = '0'
+ narrowing_nonstd = narrowing and not narrowing_std
types = [ret] + args
for t in types:
if t != 'c' and t != 'g' and t != 'r' and t != 's':
@@ -400,6 +485,8 @@ class Tests(object):
continue
if ret == 's' and t.name.startswith('_Float'):
continue
+ if narrowing and t not in narrow_args:
+ continue
if ret == 'c':
ret_name = t.complex_type.name
elif ret == 'g':
@@ -432,23 +519,56 @@ class Tests(object):
'}\n' % (ret_name, dummy_func_name,
t.real_type.suffix, ', '.join(arg_list),
t.real_type.mant_dig, dummy_func_name))
- dummy_func = if_cond_text([t.condition], dummy_func)
+ if narrowing:
+ dummy_cond = [narrow_cond, t.condition]
+ else:
+ dummy_cond = [t.condition]
+ dummy_func = if_cond_text(dummy_cond, dummy_func)
self.test_text_list.append(dummy_func)
arg_types = []
for t in args:
if t == 'g' or t == 'c':
arg_types.append(Type.argument_types_list)
elif t == 'r':
- arg_types.append(Type.real_argument_types_list)
+ if narrowing_std:
+ arg_types.append(Type.standard_real_argument_types_list)
+ elif narrowing:
+ arg_types.append(
+ Type.non_standard_real_argument_types_list)
+ else:
+ arg_types.append(Type.real_argument_types_list)
elif t == 's':
arg_types.append(Type.standard_real_argument_types_list)
arg_types_product = list_product(arg_types)
test_num = 0
for this_args in arg_types_product:
- comb_type = Type.combine_types(this_args)
- can_comb = Type.can_combine_types(this_args)
+ comb_type = Type.combine_types(this_args, narrowing_nonstd)
+ if narrowing:
+ # As long as there are no integer arguments, and as
+ # long as the chosen argument type is as wide as all
+ # the floating-point arguments passed, the semantics
+ # of the macro call do not depend on the exact
+ # function chosen. In particular, for f32x functions
+ # when _Float64x exists, the chosen type should differ
+ # for _Float32x and _Float64 arguments, but it is not
+ # always possible to distinguish those types before
+ # GCC 7 and the implementation does not attempt to do
+ # so before GCC 8.
+ narrow_mant_dig = comb_type.real_type.mant_dig
+ for arg_type in this_args:
+ if arg_type.integer:
+ narrow_mant_dig = 0
+ else:
+ narrow_mant_dig = 0
+ if (narrowing
+ and comb_type not in narrow_args
+ and narrow_fallback is not None):
+ comb_type = narrow_fallback
+ can_comb = Type.can_combine_types(this_args, narrowing_nonstd)
all_conds = [t.condition for t in this_args]
all_conds.append(can_comb)
+ if narrowing:
+ all_conds.append(narrow_cond)
any_complex = func == None
for t in this_args:
if t.complex:
@@ -459,8 +579,9 @@ class Tests(object):
test_func_name = 'test_%s_%d' % (macro, test_num)
test_num += 1
mant_dig = comb_type.real_type.mant_dig
- test_text = '%s, "%s", "%s", %s' % (test_func_name, func_name,
- test_name, mant_dig)
+ test_text = '%s, "%s", "%s", %s, %s' % (test_func_name, func_name,
+ test_name, mant_dig,
+ narrow_mant_dig)
test_text = ' { %s },\n' % test_text
test_text = if_cond_text(all_conds, test_text)
self.test_array_list.append(test_text)
@@ -575,11 +696,16 @@ class Tests(object):
self.add_tests('fromfpx', 'intmax_t', ['r', 'int', 'unsigned int'])
self.add_tests('ufromfp', 'uintmax_t', ['r', 'int', 'unsigned int'])
self.add_tests('ufromfpx', 'uintmax_t', ['r', 'int', 'unsigned int'])
- self.add_tests('totalorder', 'int', ['r', 'r'])
- self.add_tests('totalordermag', 'int', ['r', 'r'])
- # The functions that round their result to a narrower type,
- # and the associated type-generic macros, are not yet
- # supported by this script or by glibc.
+ for fn in ('add', 'div', 'mul', 'sub'):
+ for ret, prefix in (('float', 'f'),
+ ('double', 'd'),
+ ('_Float16', 'f16'),
+ ('_Float32', 'f32'),
+ ('_Float64', 'f64'),
+ ('_Float128', 'f128'),
+ ('_Float32x', 'f32x'),
+ ('_Float64x', 'f64x')):
+ self.add_tests(prefix + fn, ret, ['r', 'r'])
# Miscellaneous functions.
self.add_tests('scalb', 's', ['s', 's'])
@@ -604,6 +730,24 @@ class Tests(object):
' && strcmp (called_func_name,\n'
' tests[i].func_name) == 0)\n'
' num_pass++;\n'
+ '#if !__GNUC_PREREQ (8, 0)\n'
+ ' else if (tests[i].narrow_mant_dig > 0\n'
+ ' && (called_mant_dig\n'
+ ' >= tests[i].narrow_mant_dig)\n'
+ ' && strcmp (called_func_name,\n'
+ ' tests[i].func_name) == 0)\n'
+ ' {\n'
+ ' num_pass++;\n'
+ ' printf ("Test %zu (%s):\\n"\n'
+ ' " Expected: %s precision %d\\n"\n'
+ ' " Actual: %s precision %d\\n"\n'
+ ' " (OK with old GCC)\\n\\n",\n'
+ ' i, tests[i].test_name,\n'
+ ' tests[i].func_name,\n'
+ ' tests[i].mant_dig,\n'
+ ' called_func_name, called_mant_dig);\n'
+ ' }\n'
+ '#endif\n'
' else\n'
' {\n'
' num_fail++;\n'
diff --git a/math/k_casinh_template.c b/math/k_casinh_template.c
index 451f05c279..111661e25a 100644
--- a/math/k_casinh_template.c
+++ b/math/k_casinh_template.c
@@ -1,7 +1,7 @@
/* Return arc hyperbolic sine for a complex float type, with the
imaginary part of the result possibly adjusted for use in
computing other functions.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <complex.h>
#include <math.h>
diff --git a/math/lgamma-compat.h b/math/lgamma-compat.h
index 3b0b9a0e1c..c3655116ae 100644
--- a/math/lgamma-compat.h
+++ b/math/lgamma-compat.h
@@ -1,5 +1,5 @@
/* ABI compatibility for lgamma functions.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef LGAMMA_COMPAT_H
#define LGAMMA_COMPAT_H 1
diff --git a/math/libm-test-acos.inc b/math/libm-test-acos.inc
index 4f53569018..6f04f304c4 100644
--- a/math/libm-test-acos.inc
+++ b/math/libm-test-acos.inc
@@ -1,5 +1,5 @@
/* Test acos.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-acosh.inc b/math/libm-test-acosh.inc
index 7250ff9456..e27fb48652 100644
--- a/math/libm-test-acosh.inc
+++ b/math/libm-test-acosh.inc
@@ -1,5 +1,5 @@
/* Test acosh.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-asin.inc b/math/libm-test-asin.inc
index 5a04f289a3..b491fd8cde 100644
--- a/math/libm-test-asin.inc
+++ b/math/libm-test-asin.inc
@@ -1,5 +1,5 @@
/* Test asin.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-asinh.inc b/math/libm-test-asinh.inc
index 74623843a5..e92da2d32e 100644
--- a/math/libm-test-asinh.inc
+++ b/math/libm-test-asinh.inc
@@ -1,5 +1,5 @@
/* Test asinh.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-atan.inc b/math/libm-test-atan.inc
index 31567ad686..174aff4d86 100644
--- a/math/libm-test-atan.inc
+++ b/math/libm-test-atan.inc
@@ -1,5 +1,5 @@
/* Test atan.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-atan2.inc b/math/libm-test-atan2.inc
index 1337f36c41..99ce0cd05d 100644
--- a/math/libm-test-atan2.inc
+++ b/math/libm-test-atan2.inc
@@ -1,5 +1,5 @@
/* Test atan2.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-atanh.inc b/math/libm-test-atanh.inc
index b499c6c04e..5d3660d7ff 100644
--- a/math/libm-test-atanh.inc
+++ b/math/libm-test-atanh.inc
@@ -1,5 +1,5 @@
/* Test atanh.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-cabs.inc b/math/libm-test-cabs.inc
index 4b2c724d90..edacff6d39 100644
--- a/math/libm-test-cabs.inc
+++ b/math/libm-test-cabs.inc
@@ -1,5 +1,5 @@
/* Test cabs.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-cacos.inc b/math/libm-test-cacos.inc
index 21c8f94766..2953d21324 100644
--- a/math/libm-test-cacos.inc
+++ b/math/libm-test-cacos.inc
@@ -1,5 +1,5 @@
/* Test cacos.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-cacosh.inc b/math/libm-test-cacosh.inc
index c0ef1690f8..bc17f9b95b 100644
--- a/math/libm-test-cacosh.inc
+++ b/math/libm-test-cacosh.inc
@@ -1,5 +1,5 @@
/* Test cacosh.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-canonicalize.inc b/math/libm-test-canonicalize.inc
index 69210f4ec1..c02c9f5054 100644
--- a/math/libm-test-canonicalize.inc
+++ b/math/libm-test-canonicalize.inc
@@ -1,5 +1,5 @@
/* Test canonicalize.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-carg.inc b/math/libm-test-carg.inc
index a9809bff3f..f17901ff20 100644
--- a/math/libm-test-carg.inc
+++ b/math/libm-test-carg.inc
@@ -1,5 +1,5 @@
/* Test carg.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-casin.inc b/math/libm-test-casin.inc
index 27e1926404..a1d7181873 100644
--- a/math/libm-test-casin.inc
+++ b/math/libm-test-casin.inc
@@ -1,5 +1,5 @@
/* Test casin.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-casinh.inc b/math/libm-test-casinh.inc
index 9abb561edd..4dbdd25fed 100644
--- a/math/libm-test-casinh.inc
+++ b/math/libm-test-casinh.inc
@@ -1,5 +1,5 @@
/* Test casinh.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-catan.inc b/math/libm-test-catan.inc
index 0584c42d8e..a3e380756f 100644
--- a/math/libm-test-catan.inc
+++ b/math/libm-test-catan.inc
@@ -1,5 +1,5 @@
/* Test catan.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-catanh.inc b/math/libm-test-catanh.inc
index 6f1be457c5..da1fb251c8 100644
--- a/math/libm-test-catanh.inc
+++ b/math/libm-test-catanh.inc
@@ -1,5 +1,5 @@
/* Test catanh.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-cbrt.inc b/math/libm-test-cbrt.inc
index 6c445d970f..330a393de0 100644
--- a/math/libm-test-cbrt.inc
+++ b/math/libm-test-cbrt.inc
@@ -1,5 +1,5 @@
/* Test cbrt.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-ccos.inc b/math/libm-test-ccos.inc
index 2a313c00ec..049bbbdc34 100644
--- a/math/libm-test-ccos.inc
+++ b/math/libm-test-ccos.inc
@@ -1,5 +1,5 @@
/* Test ccos.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-ccosh.inc b/math/libm-test-ccosh.inc
index 6e43478f00..902cf20ff8 100644
--- a/math/libm-test-ccosh.inc
+++ b/math/libm-test-ccosh.inc
@@ -1,5 +1,5 @@
/* Test ccosh.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-ceil.inc b/math/libm-test-ceil.inc
index 32a62b6b0f..8caa9fd8d8 100644
--- a/math/libm-test-ceil.inc
+++ b/math/libm-test-ceil.inc
@@ -1,5 +1,5 @@
/* Test ceil.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-cexp.inc b/math/libm-test-cexp.inc
index 11e4a52089..58ae43c97c 100644
--- a/math/libm-test-cexp.inc
+++ b/math/libm-test-cexp.inc
@@ -1,5 +1,5 @@
/* Test cexp.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-cimag.inc b/math/libm-test-cimag.inc
index 7e13716319..9b8ed06359 100644
--- a/math/libm-test-cimag.inc
+++ b/math/libm-test-cimag.inc
@@ -1,5 +1,5 @@
/* Test cimag.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-clog.inc b/math/libm-test-clog.inc
index 164405ac21..6d9486ed37 100644
--- a/math/libm-test-clog.inc
+++ b/math/libm-test-clog.inc
@@ -1,5 +1,5 @@
/* Test clog.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-clog10.inc b/math/libm-test-clog10.inc
index aac851f2ec..aff58030d0 100644
--- a/math/libm-test-clog10.inc
+++ b/math/libm-test-clog10.inc
@@ -1,5 +1,5 @@
/* Test clog10.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-compat_totalorder.inc b/math/libm-test-compat_totalorder.inc
new file mode 100644
index 0000000000..5af74c8115
--- /dev/null
+++ b/math/libm-test-compat_totalorder.inc
@@ -0,0 +1,56 @@
+/* Test totalorder compat symbol.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <shlib-compat.h>
+#include <first-versions.h>
+#define COMPAT_TEST
+#include "libm-test-totalorder.c"
+
+#define CONCATX(x, y) x ## y
+#define CONCAT(x, y) CONCATX (x, y)
+#define COMPAT_VER CONCAT (FIRST_VERSION_libm_, FUNC_TEST (totalorder))
+
+#if TEST_COMPAT (libm, COMPAT_VER, GLIBC_2_31)
+
+int FUNC_TEST (compat_totalorder) (FLOAT, FLOAT);
+compat_symbol_reference (libm,
+ FUNC_TEST (compat_totalorder),
+ FUNC_TEST (totalorder),
+ COMPAT_VER);
+
+static void
+compat_totalorder_test (void)
+{
+ ALL_RM_TEST (compat_totalorder, 1, totalorder_test_data, RUN_TEST_LOOP_ff_b, END);
+}
+
+#endif
+
+static void
+do_test (void)
+{
+#if TEST_COMPAT (libm, COMPAT_VER, GLIBC_2_31)
+ compat_totalorder_test ();
+#endif
+}
+
+/*
+ * Local Variables:
+ * mode:c
+ * End:
+ */
diff --git a/math/libm-test-compat_totalordermag.inc b/math/libm-test-compat_totalordermag.inc
new file mode 100644
index 0000000000..9e8eb5c651
--- /dev/null
+++ b/math/libm-test-compat_totalordermag.inc
@@ -0,0 +1,56 @@
+/* Test totalordermag compat symbol.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <shlib-compat.h>
+#include <first-versions.h>
+#define COMPAT_TEST
+#include "libm-test-totalordermag.c"
+
+#define CONCATX(x, y) x ## y
+#define CONCAT(x, y) CONCATX (x, y)
+#define COMPAT_VER CONCAT (FIRST_VERSION_libm_, FUNC_TEST (totalordermag))
+
+#if TEST_COMPAT (libm, COMPAT_VER, GLIBC_2_31)
+
+int FUNC_TEST (compat_totalordermag) (FLOAT, FLOAT);
+compat_symbol_reference (libm,
+ FUNC_TEST (compat_totalordermag),
+ FUNC_TEST (totalordermag),
+ COMPAT_VER);
+
+static void
+compat_totalordermag_test (void)
+{
+ ALL_RM_TEST (compat_totalordermag, 1, totalordermag_test_data, RUN_TEST_LOOP_ff_b, END);
+}
+
+#endif
+
+static void
+do_test (void)
+{
+#if TEST_COMPAT (libm, COMPAT_VER, GLIBC_2_31)
+ compat_totalordermag_test ();
+#endif
+}
+
+/*
+ * Local Variables:
+ * mode:c
+ * End:
+ */
diff --git a/math/libm-test-conj.inc b/math/libm-test-conj.inc
index cf5d088439..595fb8bf94 100644
--- a/math/libm-test-conj.inc
+++ b/math/libm-test-conj.inc
@@ -1,5 +1,5 @@
/* Test conj.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-copysign.inc b/math/libm-test-copysign.inc
index 3b479112fd..fb3c808c37 100644
--- a/math/libm-test-copysign.inc
+++ b/math/libm-test-copysign.inc
@@ -1,5 +1,5 @@
/* Test copysign.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-cos.inc b/math/libm-test-cos.inc
index 150012ee5d..80e6a963a8 100644
--- a/math/libm-test-cos.inc
+++ b/math/libm-test-cos.inc
@@ -1,5 +1,5 @@
/* Test cos.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-cosh.inc b/math/libm-test-cosh.inc
index cb9f0fdf05..f1af609c85 100644
--- a/math/libm-test-cosh.inc
+++ b/math/libm-test-cosh.inc
@@ -1,5 +1,5 @@
/* Test cosh.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-cpow.inc b/math/libm-test-cpow.inc
index 20851c7497..a1885050ac 100644
--- a/math/libm-test-cpow.inc
+++ b/math/libm-test-cpow.inc
@@ -1,5 +1,5 @@
/* Test cpow.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-cproj.inc b/math/libm-test-cproj.inc
index a18db22c09..fe6a810cd3 100644
--- a/math/libm-test-cproj.inc
+++ b/math/libm-test-cproj.inc
@@ -1,5 +1,5 @@
/* Test cproj.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-creal.inc b/math/libm-test-creal.inc
index 14c8f7c7b0..ec55092ff9 100644
--- a/math/libm-test-creal.inc
+++ b/math/libm-test-creal.inc
@@ -1,5 +1,5 @@
/* Test creal.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-csin.inc b/math/libm-test-csin.inc
index 888f4a0036..33a2190ed2 100644
--- a/math/libm-test-csin.inc
+++ b/math/libm-test-csin.inc
@@ -1,5 +1,5 @@
/* Test csin.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-csinh.inc b/math/libm-test-csinh.inc
index 1adcf27e2b..bc5a903552 100644
--- a/math/libm-test-csinh.inc
+++ b/math/libm-test-csinh.inc
@@ -1,5 +1,5 @@
/* Test csinh.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-csqrt.inc b/math/libm-test-csqrt.inc
index b8082b4af8..c5c3db2818 100644
--- a/math/libm-test-csqrt.inc
+++ b/math/libm-test-csqrt.inc
@@ -1,5 +1,5 @@
/* Test csqrt.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-ctan.inc b/math/libm-test-ctan.inc
index 1507e30832..126bcc0876 100644
--- a/math/libm-test-ctan.inc
+++ b/math/libm-test-ctan.inc
@@ -1,5 +1,5 @@
/* Test ctan.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-ctanh.inc b/math/libm-test-ctanh.inc
index 042bffa074..3cb8272549 100644
--- a/math/libm-test-ctanh.inc
+++ b/math/libm-test-ctanh.inc
@@ -1,5 +1,5 @@
/* Test ctanh.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-driver.c b/math/libm-test-driver.c
index 30646da862..a6fc23d051 100644
--- a/math/libm-test-driver.c
+++ b/math/libm-test-driver.c
@@ -1,5 +1,5 @@
/* Support code for testing libm functions (driver).
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-support.h"
@@ -23,7 +23,6 @@
/* Flags set by the including file. */
const int flag_test_errno = TEST_ERRNO;
const int flag_test_exceptions = TEST_EXCEPTIONS;
-const int flag_test_finite = TEST_FINITE;
const int flag_test_inline = TEST_INLINE;
const int flag_test_mathvec = TEST_MATHVEC;
@@ -44,8 +43,6 @@ const int snan_tests_arg = SNAN_TESTS (FLOAT);
# define TEST_MSG "testing " STR_FLOAT " (vector length " STR_VEC_LEN ")\n"
#elif TEST_INLINE
# define TEST_MSG "testing " STR_FLOAT " (inline functions)\n"
-#elif TEST_FINITE
-# define TEST_MSG "testing " STR_FLOAT " (finite-math-only)\n"
#elif TEST_NARROW
# define TEST_MSG "testing " STR_FLOAT " (argument " STR_ARG_FLOAT ")\n"
#else
@@ -154,7 +151,7 @@ struct test_ff_f_data
int exceptions;
} rd, rn, rz, ru;
};
-/* Strictly speaking, a j type argument is one gen-libm-test.pl will not
+/* Strictly speaking, a j type argument is one gen-libm-test.py will not
attempt to muck with. For now, it is only used to prevent it from
mucking up an explicitly long double argument. */
struct test_fj_f_data
@@ -326,7 +323,8 @@ struct test_f_i_data
int exceptions;
} rd, rn, rz, ru;
};
-/* Used for both RUN_TEST_LOOP_ff_b and RUN_TEST_LOOP_ff_i_tg. */
+/* Used for RUN_TEST_LOOP_ff_b, RUN_TEST_LOOP_fpfp_b and
+ RUN_TEST_LOOP_ff_i_tg. */
struct test_ff_i_data
{
const char *arg_str;
@@ -389,6 +387,7 @@ struct test_Ff_b1_data
#define IF_ROUND_INIT_FE_DOWNWARD \
int save_round_mode = fegetround (); \
if (ROUNDING_TESTS (FLOAT, FE_DOWNWARD) \
+ && !TEST_MATHVEC \
&& fesetround (FE_DOWNWARD) == 0)
#define IF_ROUND_INIT_FE_TONEAREST \
int save_round_mode = fegetround (); \
@@ -397,10 +396,12 @@ struct test_Ff_b1_data
#define IF_ROUND_INIT_FE_TOWARDZERO \
int save_round_mode = fegetround (); \
if (ROUNDING_TESTS (FLOAT, FE_TOWARDZERO) \
+ && !TEST_MATHVEC \
&& fesetround (FE_TOWARDZERO) == 0)
#define IF_ROUND_INIT_FE_UPWARD \
int save_round_mode = fegetround (); \
if (ROUNDING_TESTS (FLOAT, FE_UPWARD) \
+ && !TEST_MATHVEC \
&& fesetround (FE_UPWARD) == 0)
#define ROUND_RESTORE_ /* Empty. */
#define ROUND_RESTORE_FE_DOWNWARD \
@@ -857,6 +858,26 @@ struct test_Ff_b1_data
(ARRAY)[i].RM_##ROUNDING_MODE.expected, \
(ARRAY)[i].RM_##ROUNDING_MODE.exceptions); \
ROUND_RESTORE_ ## ROUNDING_MODE
+#define RUN_TEST_fpfp_b(ARG_STR, FUNC_NAME, ARG1, ARG2, EXPECTED, \
+ EXCEPTIONS) \
+ do \
+ if (enable_test (EXCEPTIONS)) \
+ { \
+ COMMON_TEST_SETUP (ARG_STR); \
+ check_bool (test_name, \
+ FUNC_TEST (FUNC_NAME) (&(ARG1), &(ARG2)), \
+ EXPECTED, EXCEPTIONS); \
+ COMMON_TEST_CLEANUP; \
+ } \
+ while (0)
+#define RUN_TEST_LOOP_fpfp_b(FUNC_NAME, ARRAY, ROUNDING_MODE) \
+ IF_ROUND_INIT_ ## ROUNDING_MODE \
+ for (size_t i = 0; i < sizeof (ARRAY) / sizeof (ARRAY)[0]; i++) \
+ RUN_TEST_fpfp_b ((ARRAY)[i].arg_str, FUNC_NAME, \
+ (ARRAY)[i].arg1, (ARRAY)[i].arg2, \
+ (ARRAY)[i].RM_##ROUNDING_MODE.expected, \
+ (ARRAY)[i].RM_##ROUNDING_MODE.exceptions); \
+ ROUND_RESTORE_ ## ROUNDING_MODE
#define RUN_TEST_ff_i_tg(ARG_STR, FUNC_NAME, ARG1, ARG2, EXPECTED, \
EXCEPTIONS) \
do \
diff --git a/math/libm-test-erf.inc b/math/libm-test-erf.inc
index 09d6019739..19c2c431f4 100644
--- a/math/libm-test-erf.inc
+++ b/math/libm-test-erf.inc
@@ -1,5 +1,5 @@
/* Test erf.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-erfc.inc b/math/libm-test-erfc.inc
index 860ff23367..bdafa506d4 100644
--- a/math/libm-test-erfc.inc
+++ b/math/libm-test-erfc.inc
@@ -1,5 +1,5 @@
/* Test erfc.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-exp.inc b/math/libm-test-exp.inc
index 5c0a7c4d85..5ef286d452 100644
--- a/math/libm-test-exp.inc
+++ b/math/libm-test-exp.inc
@@ -1,5 +1,5 @@
/* Test exp.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-exp10.inc b/math/libm-test-exp10.inc
index 593431f722..8a474f7118 100644
--- a/math/libm-test-exp10.inc
+++ b/math/libm-test-exp10.inc
@@ -1,5 +1,5 @@
/* Test exp10.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-exp2.inc b/math/libm-test-exp2.inc
index 04cb1816ab..a34a454927 100644
--- a/math/libm-test-exp2.inc
+++ b/math/libm-test-exp2.inc
@@ -1,5 +1,5 @@
/* Test exp2.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-expm1.inc b/math/libm-test-expm1.inc
index d91d004267..8536cfe124 100644
--- a/math/libm-test-expm1.inc
+++ b/math/libm-test-expm1.inc
@@ -1,5 +1,5 @@
/* Test expm1.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-fabs.inc b/math/libm-test-fabs.inc
index e01787eb28..6c97f25b2e 100644
--- a/math/libm-test-fabs.inc
+++ b/math/libm-test-fabs.inc
@@ -1,5 +1,5 @@
/* Test fabs.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-fdim.inc b/math/libm-test-fdim.inc
index 13b0e26dc2..3eaca99b8c 100644
--- a/math/libm-test-fdim.inc
+++ b/math/libm-test-fdim.inc
@@ -1,5 +1,5 @@
/* Test fdim.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-floor.inc b/math/libm-test-floor.inc
index 1b5b9af13c..c8d17633ff 100644
--- a/math/libm-test-floor.inc
+++ b/math/libm-test-floor.inc
@@ -1,5 +1,5 @@
/* Test floor.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-fma.inc b/math/libm-test-fma.inc
index 5b29fb8201..ddd1b704f8 100644
--- a/math/libm-test-fma.inc
+++ b/math/libm-test-fma.inc
@@ -1,5 +1,5 @@
/* Test fma.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
@@ -119,32 +119,225 @@ static const struct test_fff_f_data fma_test_data[] =
TEST_fff_f (fma, plus_infty, plus_infty, -min_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_fff_f (fma, plus_infty, plus_infty, min_subnorm_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_fff_f (fma, plus_infty, plus_infty, -min_subnorm_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_fff_f (fma, plus_infty, plus_infty, max_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_fff_f (fma, plus_infty, plus_infty, -max_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, plus_infty, plus_infty, max_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, plus_infty, plus_infty, -max_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
TEST_fff_f (fma, plus_infty, minus_infty, plus_zero, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_fff_f (fma, plus_infty, minus_infty, minus_zero, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_fff_f (fma, plus_infty, minus_infty, min_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_fff_f (fma, plus_infty, minus_infty, -min_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_fff_f (fma, plus_infty, minus_infty, min_subnorm_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_fff_f (fma, plus_infty, minus_infty, -min_subnorm_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_fff_f (fma, plus_infty, minus_infty, max_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_fff_f (fma, plus_infty, minus_infty, -max_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, plus_infty, minus_infty, max_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, plus_infty, minus_infty, -max_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
TEST_fff_f (fma, minus_infty, plus_infty, plus_zero, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_fff_f (fma, minus_infty, plus_infty, minus_zero, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_fff_f (fma, minus_infty, plus_infty, min_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_fff_f (fma, minus_infty, plus_infty, -min_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_fff_f (fma, minus_infty, plus_infty, min_subnorm_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_fff_f (fma, minus_infty, plus_infty, -min_subnorm_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_fff_f (fma, minus_infty, plus_infty, max_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_fff_f (fma, minus_infty, plus_infty, -max_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, minus_infty, plus_infty, max_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, minus_infty, plus_infty, -max_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
TEST_fff_f (fma, minus_infty, minus_infty, plus_zero, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_fff_f (fma, minus_infty, minus_infty, minus_zero, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_fff_f (fma, minus_infty, minus_infty, min_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_fff_f (fma, minus_infty, minus_infty, -min_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_fff_f (fma, minus_infty, minus_infty, min_subnorm_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_fff_f (fma, minus_infty, minus_infty, -min_subnorm_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_fff_f (fma, minus_infty, minus_infty, max_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_fff_f (fma, minus_infty, minus_infty, -max_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, minus_infty, minus_infty, max_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, minus_infty, minus_infty, -max_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+
+ TEST_fff_f (fma, plus_infty, max_value, plus_zero, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, plus_infty, max_value, minus_zero, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, plus_infty, max_value, min_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, plus_infty, max_value, -min_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, plus_infty, max_value, min_subnorm_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, plus_infty, max_value, -min_subnorm_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, plus_infty, max_value, max_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, plus_infty, max_value, -max_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, plus_infty, min_value, plus_zero, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, plus_infty, min_value, minus_zero, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, plus_infty, min_value, min_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, plus_infty, min_value, -min_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, plus_infty, min_value, min_subnorm_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, plus_infty, min_value, -min_subnorm_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, plus_infty, min_value, max_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, plus_infty, min_value, -max_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, plus_infty, min_subnorm_value, plus_zero, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, plus_infty, min_subnorm_value, minus_zero, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, plus_infty, min_subnorm_value, min_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, plus_infty, min_subnorm_value, -min_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, plus_infty, min_subnorm_value, min_subnorm_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, plus_infty, min_subnorm_value, -min_subnorm_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, plus_infty, min_subnorm_value, max_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, plus_infty, min_subnorm_value, -max_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, plus_infty, -max_value, plus_zero, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, plus_infty, -max_value, minus_zero, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, plus_infty, -max_value, min_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, plus_infty, -max_value, -min_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, plus_infty, -max_value, min_subnorm_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, plus_infty, -max_value, -min_subnorm_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, plus_infty, -max_value, max_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, plus_infty, -max_value, -max_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, plus_infty, -min_value, plus_zero, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, plus_infty, -min_value, minus_zero, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, plus_infty, -min_value, min_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, plus_infty, -min_value, -min_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, plus_infty, -min_value, min_subnorm_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, plus_infty, -min_value, -min_subnorm_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, plus_infty, -min_value, max_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, plus_infty, -min_value, -max_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, plus_infty, -min_subnorm_value, plus_zero, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, plus_infty, -min_subnorm_value, minus_zero, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, plus_infty, -min_subnorm_value, min_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, plus_infty, -min_subnorm_value, -min_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, plus_infty, -min_subnorm_value, min_subnorm_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, plus_infty, -min_subnorm_value, -min_subnorm_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, plus_infty, -min_subnorm_value, max_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, plus_infty, -min_subnorm_value, -max_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, minus_infty, max_value, plus_zero, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, minus_infty, max_value, minus_zero, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, minus_infty, max_value, min_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, minus_infty, max_value, -min_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, minus_infty, max_value, min_subnorm_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, minus_infty, max_value, -min_subnorm_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, minus_infty, max_value, max_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, minus_infty, max_value, -max_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, minus_infty, min_value, plus_zero, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, minus_infty, min_value, minus_zero, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, minus_infty, min_value, min_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, minus_infty, min_value, -min_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, minus_infty, min_value, min_subnorm_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, minus_infty, min_value, -min_subnorm_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, minus_infty, min_value, max_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, minus_infty, min_value, -max_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, minus_infty, min_subnorm_value, plus_zero, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, minus_infty, min_subnorm_value, minus_zero, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, minus_infty, min_subnorm_value, min_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, minus_infty, min_subnorm_value, -min_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, minus_infty, min_subnorm_value, min_subnorm_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, minus_infty, min_subnorm_value, -min_subnorm_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, minus_infty, min_subnorm_value, max_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, minus_infty, min_subnorm_value, -max_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, minus_infty, -max_value, plus_zero, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, minus_infty, -max_value, minus_zero, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, minus_infty, -max_value, min_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, minus_infty, -max_value, -min_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, minus_infty, -max_value, min_subnorm_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, minus_infty, -max_value, -min_subnorm_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, minus_infty, -max_value, max_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, minus_infty, -max_value, -max_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, minus_infty, -min_value, plus_zero, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, minus_infty, -min_value, minus_zero, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, minus_infty, -min_value, min_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, minus_infty, -min_value, -min_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, minus_infty, -min_value, min_subnorm_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, minus_infty, -min_value, -min_subnorm_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, minus_infty, -min_value, max_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, minus_infty, -min_value, -max_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, minus_infty, -min_subnorm_value, plus_zero, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, minus_infty, -min_subnorm_value, minus_zero, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, minus_infty, -min_subnorm_value, min_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, minus_infty, -min_subnorm_value, -min_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, minus_infty, -min_subnorm_value, min_subnorm_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, minus_infty, -min_subnorm_value, -min_subnorm_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, minus_infty, -min_subnorm_value, max_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, minus_infty, -min_subnorm_value, -max_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, max_value, plus_infty, plus_zero, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, max_value, plus_infty, minus_zero, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, max_value, plus_infty, min_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, max_value, plus_infty, -min_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, max_value, plus_infty, min_subnorm_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, max_value, plus_infty, -min_subnorm_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, max_value, plus_infty, max_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, max_value, plus_infty, -max_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, min_value, plus_infty, plus_zero, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, min_value, plus_infty, minus_zero, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, min_value, plus_infty, min_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, min_value, plus_infty, -min_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, min_value, plus_infty, min_subnorm_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, min_value, plus_infty, -min_subnorm_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, min_value, plus_infty, max_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, min_value, plus_infty, -max_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, min_subnorm_value, plus_infty, plus_zero, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, min_subnorm_value, plus_infty, minus_zero, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, min_subnorm_value, plus_infty, min_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, min_subnorm_value, plus_infty, -min_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, min_subnorm_value, plus_infty, min_subnorm_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, min_subnorm_value, plus_infty, -min_subnorm_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, min_subnorm_value, plus_infty, max_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, min_subnorm_value, plus_infty, -max_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, -max_value, plus_infty, plus_zero, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, -max_value, plus_infty, minus_zero, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, -max_value, plus_infty, min_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, -max_value, plus_infty, -min_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, -max_value, plus_infty, min_subnorm_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, -max_value, plus_infty, -min_subnorm_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, -max_value, plus_infty, max_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, -max_value, plus_infty, -max_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, -min_value, plus_infty, plus_zero, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, -min_value, plus_infty, minus_zero, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, -min_value, plus_infty, min_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, -min_value, plus_infty, -min_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, -min_value, plus_infty, min_subnorm_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, -min_value, plus_infty, -min_subnorm_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, -min_value, plus_infty, max_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, -min_value, plus_infty, -max_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, -min_subnorm_value, plus_infty, plus_zero, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, -min_subnorm_value, plus_infty, minus_zero, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, -min_subnorm_value, plus_infty, min_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, -min_subnorm_value, plus_infty, -min_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, -min_subnorm_value, plus_infty, min_subnorm_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, -min_subnorm_value, plus_infty, -min_subnorm_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, -min_subnorm_value, plus_infty, max_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, -min_subnorm_value, plus_infty, -max_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, max_value, minus_infty, plus_zero, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, max_value, minus_infty, minus_zero, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, max_value, minus_infty, min_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, max_value, minus_infty, -min_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, max_value, minus_infty, min_subnorm_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, max_value, minus_infty, -min_subnorm_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, max_value, minus_infty, max_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, max_value, minus_infty, -max_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, min_value, minus_infty, plus_zero, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, min_value, minus_infty, minus_zero, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, min_value, minus_infty, min_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, min_value, minus_infty, -min_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, min_value, minus_infty, min_subnorm_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, min_value, minus_infty, -min_subnorm_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, min_value, minus_infty, max_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, min_value, minus_infty, -max_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, min_subnorm_value, minus_infty, plus_zero, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, min_subnorm_value, minus_infty, minus_zero, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, min_subnorm_value, minus_infty, min_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, min_subnorm_value, minus_infty, -min_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, min_subnorm_value, minus_infty, min_subnorm_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, min_subnorm_value, minus_infty, -min_subnorm_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, min_subnorm_value, minus_infty, max_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, min_subnorm_value, minus_infty, -max_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, -max_value, minus_infty, plus_zero, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, -max_value, minus_infty, minus_zero, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, -max_value, minus_infty, min_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, -max_value, minus_infty, -min_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, -max_value, minus_infty, min_subnorm_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, -max_value, minus_infty, -min_subnorm_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, -max_value, minus_infty, max_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, -max_value, minus_infty, -max_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, -min_value, minus_infty, plus_zero, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, -min_value, minus_infty, minus_zero, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, -min_value, minus_infty, min_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, -min_value, minus_infty, -min_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, -min_value, minus_infty, min_subnorm_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, -min_value, minus_infty, -min_subnorm_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, -min_value, minus_infty, max_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, -min_value, minus_infty, -max_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, -min_subnorm_value, minus_infty, plus_zero, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, -min_subnorm_value, minus_infty, minus_zero, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, -min_subnorm_value, minus_infty, min_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, -min_subnorm_value, minus_infty, -min_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, -min_subnorm_value, minus_infty, min_subnorm_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, -min_subnorm_value, minus_infty, -min_subnorm_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fff_f (fma, -min_subnorm_value, minus_infty, max_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
+ TEST_fff_f (fma, -min_subnorm_value, minus_infty, -max_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
AUTO_TESTS_fff_f (fma),
};
diff --git a/math/libm-test-fmax.inc b/math/libm-test-fmax.inc
index fe648ba653..8a62e07d41 100644
--- a/math/libm-test-fmax.inc
+++ b/math/libm-test-fmax.inc
@@ -1,5 +1,5 @@
/* Test fmax.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-fmaxmag.inc b/math/libm-test-fmaxmag.inc
index d6a4b765c5..77551ad19e 100644
--- a/math/libm-test-fmaxmag.inc
+++ b/math/libm-test-fmaxmag.inc
@@ -1,5 +1,5 @@
/* Test fmaxmag.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-fmin.inc b/math/libm-test-fmin.inc
index b19053e92d..05a4cc879f 100644
--- a/math/libm-test-fmin.inc
+++ b/math/libm-test-fmin.inc
@@ -1,5 +1,5 @@
/* Test fmin.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-fminmag.inc b/math/libm-test-fminmag.inc
index 6ae6e07ae4..0d338d29e8 100644
--- a/math/libm-test-fminmag.inc
+++ b/math/libm-test-fminmag.inc
@@ -1,5 +1,5 @@
/* Test fminmag.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-fmod.inc b/math/libm-test-fmod.inc
index 52f3a740d9..c0b0da2696 100644
--- a/math/libm-test-fmod.inc
+++ b/math/libm-test-fmod.inc
@@ -1,5 +1,5 @@
/* Test fmod.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-fpclassify.inc b/math/libm-test-fpclassify.inc
index 70a5bf454f..cd2cfedc78 100644
--- a/math/libm-test-fpclassify.inc
+++ b/math/libm-test-fpclassify.inc
@@ -1,5 +1,5 @@
/* Test fpclassify.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-frexp.inc b/math/libm-test-frexp.inc
index 35bd2cd5f9..c2be1dce8c 100644
--- a/math/libm-test-frexp.inc
+++ b/math/libm-test-frexp.inc
@@ -1,5 +1,5 @@
/* Test frexp.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-fromfp.inc b/math/libm-test-fromfp.inc
index daa67afc1c..0e557534e3 100644
--- a/math/libm-test-fromfp.inc
+++ b/math/libm-test-fromfp.inc
@@ -1,5 +1,5 @@
/* Test fromfp.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-fromfpx.inc b/math/libm-test-fromfpx.inc
index da9765d3d8..119f8bae61 100644
--- a/math/libm-test-fromfpx.inc
+++ b/math/libm-test-fromfpx.inc
@@ -1,5 +1,5 @@
/* Test fromfpx.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-getpayload.inc b/math/libm-test-getpayload.inc
index 9da6359f03..5a0f385b97 100644
--- a/math/libm-test-getpayload.inc
+++ b/math/libm-test-getpayload.inc
@@ -1,5 +1,5 @@
/* Test getpayload.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-hypot.inc b/math/libm-test-hypot.inc
index 9bd9d42b4a..dd8edfc8c2 100644
--- a/math/libm-test-hypot.inc
+++ b/math/libm-test-hypot.inc
@@ -1,5 +1,5 @@
/* Test hypot.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-ilogb.inc b/math/libm-test-ilogb.inc
index 3e4554c6d1..70afa2248a 100644
--- a/math/libm-test-ilogb.inc
+++ b/math/libm-test-ilogb.inc
@@ -1,5 +1,5 @@
/* Test ilogb.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
@@ -24,20 +24,20 @@ static const struct test_f_i_data ilogb_test_data[] =
TEST_f_i (ilogb, lit_e, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_f_i (ilogb, 1024, 10, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_f_i (ilogb, -2000, 10, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_f_i (ilogb, 0.5, -1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED);
- TEST_f_i (ilogb, -0.5, -1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED);
+ TEST_f_i (ilogb, 0.5, -1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_f_i (ilogb, -0.5, -1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
#if MANT_DIG >= 57
TEST_f_i (ilogb, 0x1.ffffffffffffffp1L, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_f_i (ilogb, -0x1.ffffffffffffffp1L, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
#endif
- TEST_f_i (ilogb, min_subnorm_value, MIN_EXP-MANT_DIG, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED);
- TEST_f_i (ilogb, -min_subnorm_value, MIN_EXP-MANT_DIG, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED);
- TEST_f_i (ilogb, min_value, MIN_EXP-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED);
- TEST_f_i (ilogb, -min_value, MIN_EXP-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED);
- TEST_f_i (ilogb, max_value, MAX_EXP-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED);
- TEST_f_i (ilogb, -max_value, MAX_EXP-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED);
+ TEST_f_i (ilogb, min_subnorm_value, MIN_EXP-MANT_DIG, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_f_i (ilogb, -min_subnorm_value, MIN_EXP-MANT_DIG, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_f_i (ilogb, min_value, MIN_EXP-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_f_i (ilogb, -min_value, MIN_EXP-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_f_i (ilogb, max_value, MAX_EXP-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_f_i (ilogb, -max_value, MAX_EXP-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
/* ilogb (0.0) == FP_ILOGB0 plus invalid exception */
TEST_f_i (ilogb, 0.0, FP_ILOGB0, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
diff --git a/math/libm-test-iscanonical.inc b/math/libm-test-iscanonical.inc
index 6b192f3a0b..0d93fa3531 100644
--- a/math/libm-test-iscanonical.inc
+++ b/math/libm-test-iscanonical.inc
@@ -1,5 +1,5 @@
/* Test iscanonical.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-iseqsig.inc b/math/libm-test-iseqsig.inc
index db869fa207..63a1c8dd39 100644
--- a/math/libm-test-iseqsig.inc
+++ b/math/libm-test-iseqsig.inc
@@ -1,5 +1,5 @@
/* Test iseqsig.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-isfinite.inc b/math/libm-test-isfinite.inc
index 941ec76537..3f9b0a639c 100644
--- a/math/libm-test-isfinite.inc
+++ b/math/libm-test-isfinite.inc
@@ -1,5 +1,5 @@
/* Test isfinite.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-isgreater.inc b/math/libm-test-isgreater.inc
index 174d865f54..60435df3b6 100644
--- a/math/libm-test-isgreater.inc
+++ b/math/libm-test-isgreater.inc
@@ -1,5 +1,5 @@
/* Test isgreater.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-isgreaterequal.inc b/math/libm-test-isgreaterequal.inc
index 19e2ce4e62..9e89baff94 100644
--- a/math/libm-test-isgreaterequal.inc
+++ b/math/libm-test-isgreaterequal.inc
@@ -1,5 +1,5 @@
/* Test isgreaterequal.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-isinf.inc b/math/libm-test-isinf.inc
index b5a665aa2f..9908b4e184 100644
--- a/math/libm-test-isinf.inc
+++ b/math/libm-test-isinf.inc
@@ -1,5 +1,5 @@
/* Test isinf.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-isless.inc b/math/libm-test-isless.inc
index 140cf19253..323b38484e 100644
--- a/math/libm-test-isless.inc
+++ b/math/libm-test-isless.inc
@@ -1,5 +1,5 @@
/* Test isless.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-islessequal.inc b/math/libm-test-islessequal.inc
index 7be0d9152b..efc2c70374 100644
--- a/math/libm-test-islessequal.inc
+++ b/math/libm-test-islessequal.inc
@@ -1,5 +1,5 @@
/* Test islessequal.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-islessgreater.inc b/math/libm-test-islessgreater.inc
index ff758c910e..7f35faf413 100644
--- a/math/libm-test-islessgreater.inc
+++ b/math/libm-test-islessgreater.inc
@@ -1,5 +1,5 @@
/* Test islessgreater.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-isnan.inc b/math/libm-test-isnan.inc
index dd8f3ebcc6..2423ac2676 100644
--- a/math/libm-test-isnan.inc
+++ b/math/libm-test-isnan.inc
@@ -1,5 +1,5 @@
/* Test isnan.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-isnormal.inc b/math/libm-test-isnormal.inc
index c3feaa38b2..e63fa92e69 100644
--- a/math/libm-test-isnormal.inc
+++ b/math/libm-test-isnormal.inc
@@ -1,5 +1,5 @@
/* Test isnormal.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-issignaling.inc b/math/libm-test-issignaling.inc
index f323d4a563..aebb185b64 100644
--- a/math/libm-test-issignaling.inc
+++ b/math/libm-test-issignaling.inc
@@ -1,5 +1,5 @@
/* Test issignaling.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-issubnormal.inc b/math/libm-test-issubnormal.inc
index 5b4549b681..d7e190cf8d 100644
--- a/math/libm-test-issubnormal.inc
+++ b/math/libm-test-issubnormal.inc
@@ -1,5 +1,5 @@
/* Test issubnormal.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-isunordered.inc b/math/libm-test-isunordered.inc
index 9f7bbc381e..795c0d5cbb 100644
--- a/math/libm-test-isunordered.inc
+++ b/math/libm-test-isunordered.inc
@@ -1,5 +1,5 @@
/* Test isunordered.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-iszero.inc b/math/libm-test-iszero.inc
index ed5ca07ac2..aa7c51f4a7 100644
--- a/math/libm-test-iszero.inc
+++ b/math/libm-test-iszero.inc
@@ -1,5 +1,5 @@
/* Test iszero.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-j0.inc b/math/libm-test-j0.inc
index a42a39da24..ccab7509b6 100644
--- a/math/libm-test-j0.inc
+++ b/math/libm-test-j0.inc
@@ -1,5 +1,5 @@
/* Test j0.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-j1.inc b/math/libm-test-j1.inc
index fcb6e5c48f..c855359ab9 100644
--- a/math/libm-test-j1.inc
+++ b/math/libm-test-j1.inc
@@ -1,5 +1,5 @@
/* Test j1.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-jn.inc b/math/libm-test-jn.inc
index 75e569121d..1969287bc6 100644
--- a/math/libm-test-jn.inc
+++ b/math/libm-test-jn.inc
@@ -1,5 +1,5 @@
/* Test jn.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-lgamma.inc b/math/libm-test-lgamma.inc
index 264955c627..26f58548b5 100644
--- a/math/libm-test-lgamma.inc
+++ b/math/libm-test-lgamma.inc
@@ -1,5 +1,5 @@
/* Test lgamma.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-llogb.inc b/math/libm-test-llogb.inc
index ece4aa7929..7946a8ab4f 100644
--- a/math/libm-test-llogb.inc
+++ b/math/libm-test-llogb.inc
@@ -1,5 +1,5 @@
/* Test llogb.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
@@ -24,20 +24,20 @@ static const struct test_f_l_data llogb_test_data[] =
TEST_f_l (llogb, lit_e, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_f_l (llogb, 1024, 10, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_f_l (llogb, -2000, 10, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_f_l (llogb, 0.5, -1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED);
- TEST_f_l (llogb, -0.5, -1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED);
+ TEST_f_l (llogb, 0.5, -1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_f_l (llogb, -0.5, -1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
#if MANT_DIG >= 57
TEST_f_l (llogb, 0x1.ffffffffffffffp1L, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_f_l (llogb, -0x1.ffffffffffffffp1L, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
#endif
- TEST_f_l (llogb, min_subnorm_value, MIN_EXP-MANT_DIG, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED);
- TEST_f_l (llogb, -min_subnorm_value, MIN_EXP-MANT_DIG, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED);
- TEST_f_l (llogb, min_value, MIN_EXP-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED);
- TEST_f_l (llogb, -min_value, MIN_EXP-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED);
- TEST_f_l (llogb, max_value, MAX_EXP-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED);
- TEST_f_l (llogb, -max_value, MAX_EXP-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED);
+ TEST_f_l (llogb, min_subnorm_value, MIN_EXP-MANT_DIG, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_f_l (llogb, -min_subnorm_value, MIN_EXP-MANT_DIG, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_f_l (llogb, min_value, MIN_EXP-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_f_l (llogb, -min_value, MIN_EXP-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_f_l (llogb, max_value, MAX_EXP-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_f_l (llogb, -max_value, MAX_EXP-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
/* llogb (0.0) == FP_LLOGB0 plus invalid exception */
TEST_f_l (llogb, 0.0, FP_LLOGB0, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
diff --git a/math/libm-test-llrint.inc b/math/libm-test-llrint.inc
index c708a309c4..4894c88771 100644
--- a/math/libm-test-llrint.inc
+++ b/math/libm-test-llrint.inc
@@ -1,5 +1,5 @@
/* Test llrint.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-llround.inc b/math/libm-test-llround.inc
index e705e06035..50197ebb6c 100644
--- a/math/libm-test-llround.inc
+++ b/math/libm-test-llround.inc
@@ -1,5 +1,5 @@
/* Test llround.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-log.inc b/math/libm-test-log.inc
index 962f086850..1f3db58b09 100644
--- a/math/libm-test-log.inc
+++ b/math/libm-test-log.inc
@@ -1,5 +1,5 @@
/* Test log.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-log10.inc b/math/libm-test-log10.inc
index b782db22c0..e47fddf2cf 100644
--- a/math/libm-test-log10.inc
+++ b/math/libm-test-log10.inc
@@ -1,5 +1,5 @@
/* Test log10.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-log1p.inc b/math/libm-test-log1p.inc
index 91ba0e3ceb..d3156c5297 100644
--- a/math/libm-test-log1p.inc
+++ b/math/libm-test-log1p.inc
@@ -1,5 +1,5 @@
/* Test log1p.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-log2.inc b/math/libm-test-log2.inc
index e86c9215b5..1c6909c1fc 100644
--- a/math/libm-test-log2.inc
+++ b/math/libm-test-log2.inc
@@ -1,5 +1,5 @@
/* Test log2.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-logb.inc b/math/libm-test-logb.inc
index 3db49c505f..27b9347b65 100644
--- a/math/libm-test-logb.inc
+++ b/math/libm-test-logb.inc
@@ -1,5 +1,5 @@
/* Test logb.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
@@ -37,12 +37,12 @@ static const struct test_f_f_data logb_test_data[] =
TEST_f_f (logb, 1024, 10, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_f_f (logb, -2000, 10, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_f_f (logb, min_subnorm_value, MIN_EXP-MANT_DIG, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED);
- TEST_f_f (logb, -min_subnorm_value, MIN_EXP-MANT_DIG, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED);
- TEST_f_f (logb, min_value, MIN_EXP-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED);
- TEST_f_f (logb, -min_value, MIN_EXP-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED);
- TEST_f_f (logb, max_value, MAX_EXP-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED);
- TEST_f_f (logb, -max_value, MAX_EXP-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED);
+ TEST_f_f (logb, min_subnorm_value, MIN_EXP-MANT_DIG, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_f_f (logb, -min_subnorm_value, MIN_EXP-MANT_DIG, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_f_f (logb, min_value, MIN_EXP-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_f_f (logb, -min_value, MIN_EXP-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_f_f (logb, max_value, MAX_EXP-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_f_f (logb, -max_value, MAX_EXP-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_f_f (logb, 0x0.1p-127, -131, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_f_f (logb, 0x0.01p-127, -135, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
diff --git a/math/libm-test-lrint.inc b/math/libm-test-lrint.inc
index 9b3ebd858b..a86481678f 100644
--- a/math/libm-test-lrint.inc
+++ b/math/libm-test-lrint.inc
@@ -1,5 +1,5 @@
/* Test lrint.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-lround.inc b/math/libm-test-lround.inc
index c31b97f7ad..2f9ccefb87 100644
--- a/math/libm-test-lround.inc
+++ b/math/libm-test-lround.inc
@@ -1,5 +1,5 @@
/* Test lround.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-modf.inc b/math/libm-test-modf.inc
index c0578d7c10..868309d463 100644
--- a/math/libm-test-modf.inc
+++ b/math/libm-test-modf.inc
@@ -1,5 +1,5 @@
/* Test modf.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-narrow-add.inc b/math/libm-test-narrow-add.inc
index cdde4dc292..fb5b04967a 100644
--- a/math/libm-test-narrow-add.inc
+++ b/math/libm-test-narrow-add.inc
@@ -1,5 +1,5 @@
/* Test narrowing add.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-narrow-div.inc b/math/libm-test-narrow-div.inc
index 38f0bdd5b5..22e0477ed3 100644
--- a/math/libm-test-narrow-div.inc
+++ b/math/libm-test-narrow-div.inc
@@ -1,5 +1,5 @@
/* Test narrowing divide.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-narrow-mul.inc b/math/libm-test-narrow-mul.inc
index 4774fa2e39..43fe9472cf 100644
--- a/math/libm-test-narrow-mul.inc
+++ b/math/libm-test-narrow-mul.inc
@@ -1,5 +1,5 @@
/* Test narrowing multiply.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-narrow-sub.inc b/math/libm-test-narrow-sub.inc
index 3ced7a6952..2f9ce93d96 100644
--- a/math/libm-test-narrow-sub.inc
+++ b/math/libm-test-narrow-sub.inc
@@ -1,5 +1,5 @@
/* Test narrowing subtract.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-nearbyint.inc b/math/libm-test-nearbyint.inc
index 84aa6ea942..26fabe14ac 100644
--- a/math/libm-test-nearbyint.inc
+++ b/math/libm-test-nearbyint.inc
@@ -1,5 +1,5 @@
/* Test nearbyint.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-nextafter.inc b/math/libm-test-nextafter.inc
index dcbf243fac..af9b0bbe26 100644
--- a/math/libm-test-nextafter.inc
+++ b/math/libm-test-nextafter.inc
@@ -1,5 +1,5 @@
/* Test nextafter.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-nextdown.inc b/math/libm-test-nextdown.inc
index d87f6fcb3f..4bfbfefc3f 100644
--- a/math/libm-test-nextdown.inc
+++ b/math/libm-test-nextdown.inc
@@ -1,5 +1,5 @@
/* Test nextdown.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
@@ -66,11 +66,6 @@ nextdown_test (void)
ALL_RM_TEST (nextdown, 1, nextdown_test_data, RUN_TEST_LOOP_f_f, END);
}
-
-/* Note, the second argument is always typed as long double. The j type
- argument to TEST_ indicates the literal should not be post-processed by
- gen-libm-test.pl. */
-
static void
do_test (void)
{
diff --git a/math/libm-test-nexttoward.inc b/math/libm-test-nexttoward.inc
index c71301ceeb..db96dc2d0e 100644
--- a/math/libm-test-nexttoward.inc
+++ b/math/libm-test-nexttoward.inc
@@ -1,5 +1,5 @@
/* Test nexttoward.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,10 +14,14 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
+/* Note, the second argument is always typed as long double. The j type
+ argument to TEST_ indicates the literal should not be post-processed by
+ gen-libm-test.py. */
+
static const struct test_fj_f_data nexttoward_test_data[] =
{
#if !TEST_FLOATN
diff --git a/math/libm-test-nextup.inc b/math/libm-test-nextup.inc
index 981dc03269..e49354b8e5 100644
--- a/math/libm-test-nextup.inc
+++ b/math/libm-test-nextup.inc
@@ -1,5 +1,5 @@
/* Test nextup.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-pow.inc b/math/libm-test-pow.inc
index ff20ad2f04..c28f8ec9b8 100644
--- a/math/libm-test-pow.inc
+++ b/math/libm-test-pow.inc
@@ -1,5 +1,5 @@
/* Test pow.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
@@ -248,8 +248,13 @@ static const struct test_ff_f_data pow_test_data[] =
TEST_ff_f (pow, 0, plus_infty, 0, ERRNO_UNCHANGED),
TEST_ff_f (pow, minus_zero, plus_infty, 0, ERRNO_UNCHANGED),
- TEST_ff_f (pow, 0, minus_infty, plus_infty, DIVIDE_BY_ZERO_EXCEPTION_OK|ERRNO_UNCHANGED),
- TEST_ff_f (pow, minus_zero, minus_infty, plus_infty, DIVIDE_BY_ZERO_EXCEPTION_OK|ERRNO_UNCHANGED),
+ /* C99 erroneously specified a divide-by-zero exception here,
+ which is not permitted in C2x (C11 specified it as optional).
+ See <http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1515.pdf>
+ and
+ <http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2271.pdf>. */
+ TEST_ff_f (pow, 0, minus_infty, plus_infty, ERRNO_UNCHANGED),
+ TEST_ff_f (pow, minus_zero, minus_infty, plus_infty, ERRNO_UNCHANGED),
/* pow (x, +inf) == +inf for |x| > 1. */
TEST_ff_f (pow, 1.5, plus_infty, plus_infty, ERRNO_UNCHANGED|NO_TEST_INLINE),
diff --git a/math/libm-test-remainder.inc b/math/libm-test-remainder.inc
index 5e990ef18a..0a6e3bf9be 100644
--- a/math/libm-test-remainder.inc
+++ b/math/libm-test-remainder.inc
@@ -1,5 +1,5 @@
/* Test remainder.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-remquo.inc b/math/libm-test-remquo.inc
index 7b180d8373..c97972819c 100644
--- a/math/libm-test-remquo.inc
+++ b/math/libm-test-remquo.inc
@@ -1,5 +1,5 @@
/* Test remquo.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-rint.inc b/math/libm-test-rint.inc
index 744a5df0fa..4305bc59d6 100644
--- a/math/libm-test-rint.inc
+++ b/math/libm-test-rint.inc
@@ -1,5 +1,5 @@
/* Test rint.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-round.inc b/math/libm-test-round.inc
index 567abe4e7d..58fb69fb35 100644
--- a/math/libm-test-round.inc
+++ b/math/libm-test-round.inc
@@ -1,5 +1,5 @@
/* Test round.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-roundeven.inc b/math/libm-test-roundeven.inc
index 2ac6202a87..11a3800d1a 100644
--- a/math/libm-test-roundeven.inc
+++ b/math/libm-test-roundeven.inc
@@ -1,5 +1,5 @@
/* Test roundeven.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-scalb.inc b/math/libm-test-scalb.inc
index 7c99112d22..39d5aa3047 100644
--- a/math/libm-test-scalb.inc
+++ b/math/libm-test-scalb.inc
@@ -1,5 +1,5 @@
/* Test scalb.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-scalbln.inc b/math/libm-test-scalbln.inc
index 2a1fb00fe4..2224ea1c28 100644
--- a/math/libm-test-scalbln.inc
+++ b/math/libm-test-scalbln.inc
@@ -1,5 +1,5 @@
/* Test scalbln.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-scalbn.inc b/math/libm-test-scalbn.inc
index e04aadf677..3d781b0be8 100644
--- a/math/libm-test-scalbn.inc
+++ b/math/libm-test-scalbn.inc
@@ -1,5 +1,5 @@
/* Test scalbn.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-setpayload.inc b/math/libm-test-setpayload.inc
index 274cb7db28..a86e539806 100644
--- a/math/libm-test-setpayload.inc
+++ b/math/libm-test-setpayload.inc
@@ -1,5 +1,5 @@
/* Test setpayload.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-setpayloadsig.inc b/math/libm-test-setpayloadsig.inc
index 6614353c5f..1190a466cd 100644
--- a/math/libm-test-setpayloadsig.inc
+++ b/math/libm-test-setpayloadsig.inc
@@ -1,5 +1,5 @@
/* Test setpayloadsig.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-signbit.inc b/math/libm-test-signbit.inc
index c7ae6115cf..808a015b0c 100644
--- a/math/libm-test-signbit.inc
+++ b/math/libm-test-signbit.inc
@@ -1,5 +1,5 @@
/* Test signbit.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-significand.inc b/math/libm-test-significand.inc
index e024987f44..7d5222af78 100644
--- a/math/libm-test-significand.inc
+++ b/math/libm-test-significand.inc
@@ -1,5 +1,5 @@
/* Test significand.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-sin.inc b/math/libm-test-sin.inc
index 10fa079b63..26d67cff88 100644
--- a/math/libm-test-sin.inc
+++ b/math/libm-test-sin.inc
@@ -1,5 +1,5 @@
/* Test sin.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-sincos.inc b/math/libm-test-sincos.inc
index 020d308d77..f0bff1830e 100644
--- a/math/libm-test-sincos.inc
+++ b/math/libm-test-sincos.inc
@@ -1,5 +1,5 @@
/* Test sincos.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-sinh.inc b/math/libm-test-sinh.inc
index a4aa1a619e..9d7adaf74a 100644
--- a/math/libm-test-sinh.inc
+++ b/math/libm-test-sinh.inc
@@ -1,5 +1,5 @@
/* Test sinh.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-sqrt.inc b/math/libm-test-sqrt.inc
index 3bdbbc07e9..156aca5e2a 100644
--- a/math/libm-test-sqrt.inc
+++ b/math/libm-test-sqrt.inc
@@ -1,5 +1,5 @@
/* Test sqrt.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-support.c b/math/libm-test-support.c
index 1a12ed6a39..bd38cea2c3 100644
--- a/math/libm-test-support.c
+++ b/math/libm-test-support.c
@@ -1,5 +1,5 @@
/* Support code for testing libm functions (compiled once per type).
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Part of testsuite for libm.
@@ -25,7 +25,7 @@
different types and for variants such as testing inline functions.
The tests of individual functions are in .inc files processed by
- gen-libm-test.pl, with the resulting files included together with
+ gen-libm-test.py, with the resulting files included together with
libm-test-driver.c.
The per-type headers included both before libm-test-support.c and
@@ -983,8 +983,6 @@ enable_test (int exceptions)
return 0;
if (flag_test_inline && (exceptions & NO_TEST_INLINE))
return 0;
- if (flag_test_finite && (exceptions & NON_FINITE) != 0)
- return 0;
if ((!SNAN_TESTS (FLOAT) || !snan_tests_arg)
&& (exceptions & TEST_SNAN) != 0)
return 0;
diff --git a/math/libm-test-support.h b/math/libm-test-support.h
index 42637741ab..5a234d42e0 100644
--- a/math/libm-test-support.h
+++ b/math/libm-test-support.h
@@ -1,5 +1,5 @@
/* Support code for testing libm functions (common declarations).
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef LIBM_TEST_SUPPORT_H
#define LIBM_TEST_SUPPORT_H 1
@@ -34,7 +34,6 @@
extern const int flag_test_errno;
extern const int flag_test_exceptions;
-extern const int flag_test_finite;
extern const int flag_test_inline;
extern const int flag_test_mathvec;
extern const int snan_tests_arg;
@@ -67,9 +66,8 @@ extern const char doc[];
#define ERRNO_UNCHANGED 0x8000
#define ERRNO_EDOM 0x10000
#define ERRNO_ERANGE 0x20000
-/* Flags generated by gen-libm-test.pl, not entered here manually. */
+/* Flags generated by gen-libm-test.py, not entered here manually. */
#define IGNORE_RESULT 0x40000
-#define NON_FINITE 0x80000
#define TEST_SNAN 0x100000
#define NO_TEST_MATHVEC 0x200000
@@ -125,7 +123,7 @@ extern const char doc[];
#endif
/* Mark a test as expected to fail for ibm128-libgcc. This is used
- via XFAIL_ROUNDING_IBM128_LIBGCC, which gen-libm-test.pl transforms
+ via XFAIL_ROUNDING_IBM128_LIBGCC, which gen-libm-test.py transforms
appropriately for each rounding mode. */
#define XFAIL_IBM128_LIBGCC (TEST_COND_ibm128_libgcc ? XFAIL_TEST : 0)
diff --git a/math/libm-test-tan.inc b/math/libm-test-tan.inc
index 5f0381e55c..263e4e404e 100644
--- a/math/libm-test-tan.inc
+++ b/math/libm-test-tan.inc
@@ -1,5 +1,5 @@
/* Test tan.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-tanh.inc b/math/libm-test-tanh.inc
index 40db5a867a..02e1d56ff1 100644
--- a/math/libm-test-tanh.inc
+++ b/math/libm-test-tanh.inc
@@ -1,5 +1,5 @@
/* Test tanh.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-tgamma.inc b/math/libm-test-tgamma.inc
index c4cd570c60..5a84aa41ae 100644
--- a/math/libm-test-tgamma.inc
+++ b/math/libm-test-tgamma.inc
@@ -1,5 +1,5 @@
/* Test tgamma.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-totalorder.inc b/math/libm-test-totalorder.inc
index c1906f0401..03b957a3c2 100644
--- a/math/libm-test-totalorder.inc
+++ b/math/libm-test-totalorder.inc
@@ -1,5 +1,5 @@
/* Test totalorder.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,255 +14,256 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
static const struct test_ff_i_data totalorder_test_data[] =
{
- TEST_ff_b (totalorder, minus_zero, minus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, minus_zero, plus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, minus_zero, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, minus_zero, minus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, minus_zero, plus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, minus_zero, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, minus_zero, -qnan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, minus_zero, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, minus_zero, -snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, plus_zero, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, plus_zero, plus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, plus_zero, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, plus_zero, minus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, plus_zero, plus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, plus_zero, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, plus_zero, -qnan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, plus_zero, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, plus_zero, -snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, 1, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, 1, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, 1, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, 1, minus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, 1, plus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, 1, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, 1, -qnan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, 1, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, 1, -snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, minus_infty, minus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, minus_infty, plus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, minus_infty, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, minus_infty, minus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, minus_infty, plus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, minus_infty, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, minus_infty, -qnan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, minus_infty, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, minus_infty, -snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, plus_infty, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, plus_infty, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, plus_infty, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, plus_infty, minus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, plus_infty, plus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, plus_infty, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, plus_infty, -qnan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, plus_infty, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, plus_infty, -snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, qnan_value, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -qnan_value, minus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, qnan_value, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -qnan_value, plus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, qnan_value, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -qnan_value, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, qnan_value, minus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -qnan_value, minus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, qnan_value, plus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -qnan_value, plus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, snan_value, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -snan_value, minus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, snan_value, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -snan_value, plus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, snan_value, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -snan_value, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, snan_value, minus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -snan_value, minus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, snan_value, plus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -snan_value, plus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, qnan_value, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, qnan_value, -qnan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -qnan_value, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -qnan_value, -qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, snan_value, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, snan_value, -qnan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -snan_value, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -snan_value, -qnan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, qnan_value, snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, qnan_value, -snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -qnan_value, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -qnan_value, -snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, snan_value, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, snan_value, -snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -snan_value, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -snan_value, -snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, minus_zero, -min_subnorm_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, minus_zero, min_subnorm_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, plus_zero, -min_subnorm_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, plus_zero, min_subnorm_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -min_subnorm_value, minus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -min_subnorm_value, plus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, min_subnorm_value, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, min_subnorm_value, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, min_value, max_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, min_value, -max_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -min_value, max_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -min_value, -max_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, max_value, min_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, max_value, -min_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -max_value, min_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -max_value, -min_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, qnan_value_pl ("0x1"), qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, qnan_value_pl ("0x1"), qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, qnan_value_pl ("0x1"), qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, qnan_value_pl ("0x2"), qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, qnan_value_pl ("0x2"), qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, qnan_value_pl ("0x2"), qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, qnan_value_pl ("0x3fffff"), qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, qnan_value_pl ("0x3fffff"), qnan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, qnan_value_pl ("0x3fffff"), qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, qnan_value_pl ("0x1"), -qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, qnan_value_pl ("0x1"), -qnan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, qnan_value_pl ("0x1"), -qnan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, qnan_value_pl ("0x2"), -qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, qnan_value_pl ("0x2"), -qnan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, qnan_value_pl ("0x2"), -qnan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, qnan_value_pl ("0x3fffff"), -qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, qnan_value_pl ("0x3fffff"), -qnan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, qnan_value_pl ("0x3fffff"), -qnan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -qnan_value_pl ("0x1"), qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -qnan_value_pl ("0x1"), qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -qnan_value_pl ("0x1"), qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -qnan_value_pl ("0x2"), qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -qnan_value_pl ("0x2"), qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -qnan_value_pl ("0x2"), qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -qnan_value_pl ("0x3fffff"), qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -qnan_value_pl ("0x3fffff"), qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -qnan_value_pl ("0x3fffff"), qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -qnan_value_pl ("0x1"), -qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -qnan_value_pl ("0x1"), -qnan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -qnan_value_pl ("0x1"), -qnan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -qnan_value_pl ("0x2"), -qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -qnan_value_pl ("0x2"), -qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -qnan_value_pl ("0x2"), -qnan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -qnan_value_pl ("0x3fffff"), -qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -qnan_value_pl ("0x3fffff"), -qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -qnan_value_pl ("0x3fffff"), -qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, snan_value_pl ("0x1"), snan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, snan_value_pl ("0x1"), snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, snan_value_pl ("0x1"), snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, snan_value_pl ("0x2"), snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, snan_value_pl ("0x2"), snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, snan_value_pl ("0x2"), snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, snan_value_pl ("0x3fffff"), snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, snan_value_pl ("0x3fffff"), snan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, snan_value_pl ("0x3fffff"), snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, snan_value_pl ("0x1"), -snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, snan_value_pl ("0x1"), -snan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, snan_value_pl ("0x1"), -snan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, snan_value_pl ("0x2"), -snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, snan_value_pl ("0x2"), -snan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, snan_value_pl ("0x2"), -snan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, snan_value_pl ("0x3fffff"), -snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, snan_value_pl ("0x3fffff"), -snan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, snan_value_pl ("0x3fffff"), -snan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -snan_value_pl ("0x1"), snan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -snan_value_pl ("0x1"), snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -snan_value_pl ("0x1"), snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -snan_value_pl ("0x2"), snan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -snan_value_pl ("0x2"), snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -snan_value_pl ("0x2"), snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -snan_value_pl ("0x3fffff"), snan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -snan_value_pl ("0x3fffff"), snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -snan_value_pl ("0x3fffff"), snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -snan_value_pl ("0x1"), -snan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -snan_value_pl ("0x1"), -snan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -snan_value_pl ("0x1"), -snan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -snan_value_pl ("0x2"), -snan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -snan_value_pl ("0x2"), -snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -snan_value_pl ("0x2"), -snan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -snan_value_pl ("0x3fffff"), -snan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -snan_value_pl ("0x3fffff"), -snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -snan_value_pl ("0x3fffff"), -snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, snan_value_pl ("0x3fffff"), qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -snan_value_pl ("0x3fffff"), -qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, qnan_value_pl ("0x1"), snan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -qnan_value_pl ("0x1"), -snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, minus_zero, minus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, minus_zero, plus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, minus_zero, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, minus_zero, minus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, minus_zero, plus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, minus_zero, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, minus_zero, -qnan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, minus_zero, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, minus_zero, -snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, plus_zero, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, plus_zero, plus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, plus_zero, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, plus_zero, minus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, plus_zero, plus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, plus_zero, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, plus_zero, -qnan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, plus_zero, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, plus_zero, -snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, 1, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, 1, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, 1, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, 1, minus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, 1, plus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, 1, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, 1, -qnan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, 1, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, 1, -snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, minus_infty, minus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, minus_infty, plus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, minus_infty, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, minus_infty, minus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, minus_infty, plus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, minus_infty, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, minus_infty, -qnan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, minus_infty, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, minus_infty, -snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, plus_infty, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, plus_infty, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, plus_infty, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, plus_infty, minus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, plus_infty, plus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, plus_infty, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, plus_infty, -qnan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, plus_infty, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, plus_infty, -snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, qnan_value, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -qnan_value, minus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, qnan_value, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -qnan_value, plus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, qnan_value, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -qnan_value, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, qnan_value, minus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -qnan_value, minus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, qnan_value, plus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -qnan_value, plus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, snan_value, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -snan_value, minus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, snan_value, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -snan_value, plus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, snan_value, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -snan_value, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, snan_value, minus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -snan_value, minus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, snan_value, plus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -snan_value, plus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, qnan_value, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, qnan_value, -qnan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -qnan_value, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -qnan_value, -qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, snan_value, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, snan_value, -qnan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -snan_value, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -snan_value, -qnan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, qnan_value, snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, qnan_value, -snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -qnan_value, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -qnan_value, -snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, snan_value, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, snan_value, -snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -snan_value, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -snan_value, -snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, minus_zero, -min_subnorm_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, minus_zero, min_subnorm_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, plus_zero, -min_subnorm_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, plus_zero, min_subnorm_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -min_subnorm_value, minus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -min_subnorm_value, plus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, min_subnorm_value, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, min_subnorm_value, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, min_value, max_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, min_value, -max_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -min_value, max_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -min_value, -max_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, max_value, min_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, max_value, -min_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -max_value, min_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -max_value, -min_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, qnan_value_pl ("0x1"), qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, qnan_value_pl ("0x1"), qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, qnan_value_pl ("0x1"), qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, qnan_value_pl ("0x2"), qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, qnan_value_pl ("0x2"), qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, qnan_value_pl ("0x2"), qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, qnan_value_pl ("0x3fffff"), qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, qnan_value_pl ("0x3fffff"), qnan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, qnan_value_pl ("0x3fffff"), qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, qnan_value_pl ("0x1"), -qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, qnan_value_pl ("0x1"), -qnan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, qnan_value_pl ("0x1"), -qnan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, qnan_value_pl ("0x2"), -qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, qnan_value_pl ("0x2"), -qnan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, qnan_value_pl ("0x2"), -qnan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, qnan_value_pl ("0x3fffff"), -qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, qnan_value_pl ("0x3fffff"), -qnan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, qnan_value_pl ("0x3fffff"), -qnan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -qnan_value_pl ("0x1"), qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -qnan_value_pl ("0x1"), qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -qnan_value_pl ("0x1"), qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -qnan_value_pl ("0x2"), qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -qnan_value_pl ("0x2"), qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -qnan_value_pl ("0x2"), qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -qnan_value_pl ("0x3fffff"), qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -qnan_value_pl ("0x3fffff"), qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -qnan_value_pl ("0x3fffff"), qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -qnan_value_pl ("0x1"), -qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -qnan_value_pl ("0x1"), -qnan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -qnan_value_pl ("0x1"), -qnan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -qnan_value_pl ("0x2"), -qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -qnan_value_pl ("0x2"), -qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -qnan_value_pl ("0x2"), -qnan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -qnan_value_pl ("0x3fffff"), -qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -qnan_value_pl ("0x3fffff"), -qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -qnan_value_pl ("0x3fffff"), -qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, snan_value_pl ("0x1"), snan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, snan_value_pl ("0x1"), snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, snan_value_pl ("0x1"), snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, snan_value_pl ("0x2"), snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, snan_value_pl ("0x2"), snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, snan_value_pl ("0x2"), snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, snan_value_pl ("0x3fffff"), snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, snan_value_pl ("0x3fffff"), snan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, snan_value_pl ("0x3fffff"), snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, snan_value_pl ("0x1"), -snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, snan_value_pl ("0x1"), -snan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, snan_value_pl ("0x1"), -snan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, snan_value_pl ("0x2"), -snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, snan_value_pl ("0x2"), -snan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, snan_value_pl ("0x2"), -snan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, snan_value_pl ("0x3fffff"), -snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, snan_value_pl ("0x3fffff"), -snan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, snan_value_pl ("0x3fffff"), -snan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -snan_value_pl ("0x1"), snan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -snan_value_pl ("0x1"), snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -snan_value_pl ("0x1"), snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -snan_value_pl ("0x2"), snan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -snan_value_pl ("0x2"), snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -snan_value_pl ("0x2"), snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -snan_value_pl ("0x3fffff"), snan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -snan_value_pl ("0x3fffff"), snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -snan_value_pl ("0x3fffff"), snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -snan_value_pl ("0x1"), -snan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -snan_value_pl ("0x1"), -snan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -snan_value_pl ("0x1"), -snan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -snan_value_pl ("0x2"), -snan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -snan_value_pl ("0x2"), -snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -snan_value_pl ("0x2"), -snan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -snan_value_pl ("0x3fffff"), -snan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -snan_value_pl ("0x3fffff"), -snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -snan_value_pl ("0x3fffff"), -snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, snan_value_pl ("0x3fffff"), qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -snan_value_pl ("0x3fffff"), -qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, qnan_value_pl ("0x1"), snan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -qnan_value_pl ("0x1"), -snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
#if PAYLOAD_DIG >= 34
- TEST_ff_b (totalorder, qnan_value_pl ("0xffffffff"), qnan_value_pl ("0x100000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -qnan_value_pl ("0xffffffff"), -qnan_value_pl ("0x100000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, qnan_value_pl ("0x100000000"), qnan_value_pl ("0xffffffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -qnan_value_pl ("0x100000000"), -qnan_value_pl ("0xffffffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, snan_value_pl ("0xffffffff"), snan_value_pl ("0x100000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -snan_value_pl ("0xffffffff"), -snan_value_pl ("0x100000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, snan_value_pl ("0x100000000"), snan_value_pl ("0xffffffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -snan_value_pl ("0x100000000"), -snan_value_pl ("0xffffffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, qnan_value_pl ("0x100000000"), qnan_value_pl ("0x200000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -qnan_value_pl ("0x100000000"), -qnan_value_pl ("0x200000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, qnan_value_pl ("0x200000000"), qnan_value_pl ("0x100000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -qnan_value_pl ("0x200000000"), -qnan_value_pl ("0x100000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, snan_value_pl ("0x100000000"), snan_value_pl ("0x200000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -snan_value_pl ("0x100000000"), -snan_value_pl ("0x200000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, snan_value_pl ("0x200000000"), snan_value_pl ("0x100000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, -snan_value_pl ("0x200000000"), -snan_value_pl ("0x100000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, qnan_value_pl ("0xffffffff"), qnan_value_pl ("0x100000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -qnan_value_pl ("0xffffffff"), -qnan_value_pl ("0x100000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, qnan_value_pl ("0x100000000"), qnan_value_pl ("0xffffffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -qnan_value_pl ("0x100000000"), -qnan_value_pl ("0xffffffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, snan_value_pl ("0xffffffff"), snan_value_pl ("0x100000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -snan_value_pl ("0xffffffff"), -snan_value_pl ("0x100000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, snan_value_pl ("0x100000000"), snan_value_pl ("0xffffffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -snan_value_pl ("0x100000000"), -snan_value_pl ("0xffffffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, qnan_value_pl ("0x100000000"), qnan_value_pl ("0x200000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -qnan_value_pl ("0x100000000"), -qnan_value_pl ("0x200000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, qnan_value_pl ("0x200000000"), qnan_value_pl ("0x100000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -qnan_value_pl ("0x200000000"), -qnan_value_pl ("0x100000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, snan_value_pl ("0x100000000"), snan_value_pl ("0x200000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -snan_value_pl ("0x100000000"), -snan_value_pl ("0x200000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, snan_value_pl ("0x200000000"), snan_value_pl ("0x100000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, -snan_value_pl ("0x200000000"), -snan_value_pl ("0x100000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
#endif
#if PAYLOAD_DIG >= 66
- TEST_ff_b (totalorder, qnan_value_pl ("0xffffffffffffffff"), qnan_value_pl ("0x10000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
- TEST_ff_b (totalorder, -qnan_value_pl ("0xffffffffffffffff"), -qnan_value_pl ("0x10000000000000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
- TEST_ff_b (totalorder, qnan_value_pl ("0x10000000000000000"), qnan_value_pl ("0xffffffffffffffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
- TEST_ff_b (totalorder, -qnan_value_pl ("0x10000000000000000"), -qnan_value_pl ("0xffffffffffffffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
- TEST_ff_b (totalorder, snan_value_pl ("0xffffffffffffffff"), snan_value_pl ("0x10000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
- TEST_ff_b (totalorder, -snan_value_pl ("0xffffffffffffffff"), -snan_value_pl ("0x10000000000000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
- TEST_ff_b (totalorder, snan_value_pl ("0x10000000000000000"), snan_value_pl ("0xffffffffffffffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
- TEST_ff_b (totalorder, -snan_value_pl ("0x10000000000000000"), -snan_value_pl ("0xffffffffffffffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
- TEST_ff_b (totalorder, qnan_value_pl ("0x10000000000000000"), qnan_value_pl ("0x20000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
- TEST_ff_b (totalorder, -qnan_value_pl ("0x10000000000000000"), -qnan_value_pl ("0x20000000000000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
- TEST_ff_b (totalorder, qnan_value_pl ("0x20000000000000000"), qnan_value_pl ("0x10000000000000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
- TEST_ff_b (totalorder, -qnan_value_pl ("0x20000000000000000"), -qnan_value_pl ("0x10000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
- TEST_ff_b (totalorder, snan_value_pl ("0x10000000000000000"), snan_value_pl ("0x20000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
- TEST_ff_b (totalorder, -snan_value_pl ("0x10000000000000000"), -snan_value_pl ("0x20000000000000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
- TEST_ff_b (totalorder, snan_value_pl ("0x20000000000000000"), snan_value_pl ("0x10000000000000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
- TEST_ff_b (totalorder, -snan_value_pl ("0x20000000000000000"), -snan_value_pl ("0x10000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
+ TEST_fpfp_b (totalorder, qnan_value_pl ("0xffffffffffffffff"), qnan_value_pl ("0x10000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
+ TEST_fpfp_b (totalorder, -qnan_value_pl ("0xffffffffffffffff"), -qnan_value_pl ("0x10000000000000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
+ TEST_fpfp_b (totalorder, qnan_value_pl ("0x10000000000000000"), qnan_value_pl ("0xffffffffffffffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
+ TEST_fpfp_b (totalorder, -qnan_value_pl ("0x10000000000000000"), -qnan_value_pl ("0xffffffffffffffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
+ TEST_fpfp_b (totalorder, snan_value_pl ("0xffffffffffffffff"), snan_value_pl ("0x10000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
+ TEST_fpfp_b (totalorder, -snan_value_pl ("0xffffffffffffffff"), -snan_value_pl ("0x10000000000000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
+ TEST_fpfp_b (totalorder, snan_value_pl ("0x10000000000000000"), snan_value_pl ("0xffffffffffffffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
+ TEST_fpfp_b (totalorder, -snan_value_pl ("0x10000000000000000"), -snan_value_pl ("0xffffffffffffffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
+ TEST_fpfp_b (totalorder, qnan_value_pl ("0x10000000000000000"), qnan_value_pl ("0x20000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
+ TEST_fpfp_b (totalorder, -qnan_value_pl ("0x10000000000000000"), -qnan_value_pl ("0x20000000000000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
+ TEST_fpfp_b (totalorder, qnan_value_pl ("0x20000000000000000"), qnan_value_pl ("0x10000000000000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
+ TEST_fpfp_b (totalorder, -qnan_value_pl ("0x20000000000000000"), -qnan_value_pl ("0x10000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
+ TEST_fpfp_b (totalorder, snan_value_pl ("0x10000000000000000"), snan_value_pl ("0x20000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
+ TEST_fpfp_b (totalorder, -snan_value_pl ("0x10000000000000000"), -snan_value_pl ("0x20000000000000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
+ TEST_fpfp_b (totalorder, snan_value_pl ("0x20000000000000000"), snan_value_pl ("0x10000000000000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
+ TEST_fpfp_b (totalorder, -snan_value_pl ("0x20000000000000000"), -snan_value_pl ("0x10000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
#endif
- TEST_ff_b (totalorder, 1, 0x1.000002p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, 0x1.000002p0, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, 1, 0x0.ffffffp0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, 0x0.ffffffp0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, 1, 0x1.000002p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, 0x1.000002p0, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, 1, 0x0.ffffffp0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, 0x0.ffffffp0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
#if MANT_DIG >= 53
- TEST_ff_b (totalorder, 1, 0x1.0000000000001p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, 0x1.0000000000001p0, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, 1, 0x0.fffffffffffff8p0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, 0x0.fffffffffffff8p0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, 1, 0x1.0000000000001p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, 0x1.0000000000001p0, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, 1, 0x0.fffffffffffff8p0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, 0x0.fffffffffffff8p0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
#endif
#if MANT_DIG >= 64
- TEST_ff_b (totalorder, 1, 0x1.0000000000000002p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, 0x1.0000000000000002p0, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, 1, 0x0.ffffffffffffffffp0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, 0x0.ffffffffffffffffp0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, 1, 0x1.0000000000000002p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, 0x1.0000000000000002p0, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, 1, 0x0.ffffffffffffffffp0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, 0x0.ffffffffffffffffp0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
#endif
#if MANT_DIG >= 106
- TEST_ff_b (totalorder, 1, 0x1.000000000000000000000000008p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, 0x1.000000000000000000000000008p0, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, 1, 0x0.ffffffffffffffffffffffffffcp0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, 0x0.ffffffffffffffffffffffffffcp0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, 1, 0x1.000000000000000000000000008p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, 0x1.000000000000000000000000008p0, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, 1, 0x0.ffffffffffffffffffffffffffcp0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, 0x0.ffffffffffffffffffffffffffcp0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
#endif
#if MANT_DIG >= 113
- TEST_ff_b (totalorder, 1, 0x1.0000000000000000000000000001p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, 0x1.0000000000000000000000000001p0, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, 1, 0x0.ffffffffffffffffffffffffffff8p0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalorder, 0x0.ffffffffffffffffffffffffffff8p0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, 1, 0x1.0000000000000000000000000001p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, 0x1.0000000000000000000000000001p0, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, 1, 0x0.ffffffffffffffffffffffffffff8p0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalorder, 0x0.ffffffffffffffffffffffffffff8p0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
#endif
};
+#ifndef COMPAT_TEST
static void
totalorder_test (void)
{
- ALL_RM_TEST (totalorder, 1, totalorder_test_data, RUN_TEST_LOOP_ff_b, END);
+ ALL_RM_TEST (totalorder, 1, totalorder_test_data, RUN_TEST_LOOP_fpfp_b, END);
}
static void
@@ -270,6 +271,7 @@ do_test (void)
{
totalorder_test ();
}
+#endif
/*
* Local Variables:
diff --git a/math/libm-test-totalordermag.inc b/math/libm-test-totalordermag.inc
index 5fd6c40904..9bd96250aa 100644
--- a/math/libm-test-totalordermag.inc
+++ b/math/libm-test-totalordermag.inc
@@ -1,5 +1,5 @@
/* Test totalordermag.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,255 +14,256 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
static const struct test_ff_i_data totalordermag_test_data[] =
{
- TEST_ff_b (totalordermag, minus_zero, minus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, minus_zero, plus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, minus_zero, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, minus_zero, minus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, minus_zero, plus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, minus_zero, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, minus_zero, -qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, minus_zero, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, minus_zero, -snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, plus_zero, minus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, plus_zero, plus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, plus_zero, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, plus_zero, minus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, plus_zero, plus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, plus_zero, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, plus_zero, -qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, plus_zero, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, plus_zero, -snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, 1, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, 1, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, 1, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, 1, minus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, 1, plus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, 1, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, 1, -qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, 1, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, 1, -snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, minus_infty, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, minus_infty, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, minus_infty, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, minus_infty, minus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, minus_infty, plus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, minus_infty, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, minus_infty, -qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, minus_infty, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, minus_infty, -snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, plus_infty, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, plus_infty, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, plus_infty, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, plus_infty, minus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, plus_infty, plus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, plus_infty, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, plus_infty, -qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, plus_infty, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, plus_infty, -snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, qnan_value, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -qnan_value, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, qnan_value, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -qnan_value, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, qnan_value, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -qnan_value, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, qnan_value, minus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -qnan_value, minus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, qnan_value, plus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -qnan_value, plus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, snan_value, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -snan_value, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, snan_value, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -snan_value, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, snan_value, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -snan_value, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, snan_value, minus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -snan_value, minus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, snan_value, plus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -snan_value, plus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, qnan_value, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, qnan_value, -qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -qnan_value, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -qnan_value, -qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, snan_value, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, snan_value, -qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -snan_value, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -snan_value, -qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, qnan_value, snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, qnan_value, -snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -qnan_value, snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -qnan_value, -snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, snan_value, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, snan_value, -snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -snan_value, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -snan_value, -snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, minus_zero, -min_subnorm_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, minus_zero, min_subnorm_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, plus_zero, -min_subnorm_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, plus_zero, min_subnorm_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -min_subnorm_value, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -min_subnorm_value, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, min_subnorm_value, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, min_subnorm_value, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, min_value, max_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, min_value, -max_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -min_value, max_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -min_value, -max_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, max_value, min_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, max_value, -min_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -max_value, min_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -max_value, -min_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, qnan_value_pl ("0x1"), qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, qnan_value_pl ("0x1"), qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, qnan_value_pl ("0x1"), qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, qnan_value_pl ("0x2"), qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, qnan_value_pl ("0x2"), qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, qnan_value_pl ("0x2"), qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, qnan_value_pl ("0x3fffff"), qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, qnan_value_pl ("0x3fffff"), qnan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, qnan_value_pl ("0x3fffff"), qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, qnan_value_pl ("0x1"), -qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, qnan_value_pl ("0x1"), -qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, qnan_value_pl ("0x1"), -qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, qnan_value_pl ("0x2"), -qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, qnan_value_pl ("0x2"), -qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, qnan_value_pl ("0x2"), -qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, qnan_value_pl ("0x3fffff"), -qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, qnan_value_pl ("0x3fffff"), -qnan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, qnan_value_pl ("0x3fffff"), -qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -qnan_value_pl ("0x1"), qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -qnan_value_pl ("0x1"), qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -qnan_value_pl ("0x1"), qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -qnan_value_pl ("0x2"), qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -qnan_value_pl ("0x2"), qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -qnan_value_pl ("0x2"), qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -qnan_value_pl ("0x3fffff"), qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -qnan_value_pl ("0x3fffff"), qnan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -qnan_value_pl ("0x3fffff"), qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -qnan_value_pl ("0x1"), -qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -qnan_value_pl ("0x1"), -qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -qnan_value_pl ("0x1"), -qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -qnan_value_pl ("0x2"), -qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -qnan_value_pl ("0x2"), -qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -qnan_value_pl ("0x2"), -qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -qnan_value_pl ("0x3fffff"), -qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -qnan_value_pl ("0x3fffff"), -qnan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -qnan_value_pl ("0x3fffff"), -qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, snan_value_pl ("0x1"), snan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, snan_value_pl ("0x1"), snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, snan_value_pl ("0x1"), snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, snan_value_pl ("0x2"), snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, snan_value_pl ("0x2"), snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, snan_value_pl ("0x2"), snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, snan_value_pl ("0x3fffff"), snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, snan_value_pl ("0x3fffff"), snan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, snan_value_pl ("0x3fffff"), snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, snan_value_pl ("0x1"), -snan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, snan_value_pl ("0x1"), -snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, snan_value_pl ("0x1"), -snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, snan_value_pl ("0x2"), -snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, snan_value_pl ("0x2"), -snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, snan_value_pl ("0x2"), -snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, snan_value_pl ("0x3fffff"), -snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, snan_value_pl ("0x3fffff"), -snan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, snan_value_pl ("0x3fffff"), -snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -snan_value_pl ("0x1"), snan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -snan_value_pl ("0x1"), snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -snan_value_pl ("0x1"), snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -snan_value_pl ("0x2"), snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -snan_value_pl ("0x2"), snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -snan_value_pl ("0x2"), snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -snan_value_pl ("0x3fffff"), snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -snan_value_pl ("0x3fffff"), snan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -snan_value_pl ("0x3fffff"), snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -snan_value_pl ("0x1"), -snan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -snan_value_pl ("0x1"), -snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -snan_value_pl ("0x1"), -snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -snan_value_pl ("0x2"), -snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -snan_value_pl ("0x2"), -snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -snan_value_pl ("0x2"), -snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -snan_value_pl ("0x3fffff"), -snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -snan_value_pl ("0x3fffff"), -snan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -snan_value_pl ("0x3fffff"), -snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, snan_value_pl ("0x3fffff"), qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -snan_value_pl ("0x3fffff"), -qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, qnan_value_pl ("0x1"), snan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -qnan_value_pl ("0x1"), -snan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, minus_zero, minus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, minus_zero, plus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, minus_zero, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, minus_zero, minus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, minus_zero, plus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, minus_zero, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, minus_zero, -qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, minus_zero, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, minus_zero, -snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, plus_zero, minus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, plus_zero, plus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, plus_zero, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, plus_zero, minus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, plus_zero, plus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, plus_zero, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, plus_zero, -qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, plus_zero, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, plus_zero, -snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, 1, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, 1, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, 1, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, 1, minus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, 1, plus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, 1, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, 1, -qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, 1, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, 1, -snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, minus_infty, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, minus_infty, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, minus_infty, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, minus_infty, minus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, minus_infty, plus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, minus_infty, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, minus_infty, -qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, minus_infty, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, minus_infty, -snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, plus_infty, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, plus_infty, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, plus_infty, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, plus_infty, minus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, plus_infty, plus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, plus_infty, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, plus_infty, -qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, plus_infty, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, plus_infty, -snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, qnan_value, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -qnan_value, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, qnan_value, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -qnan_value, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, qnan_value, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -qnan_value, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, qnan_value, minus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -qnan_value, minus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, qnan_value, plus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -qnan_value, plus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, snan_value, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -snan_value, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, snan_value, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -snan_value, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, snan_value, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -snan_value, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, snan_value, minus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -snan_value, minus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, snan_value, plus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -snan_value, plus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, qnan_value, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, qnan_value, -qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -qnan_value, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -qnan_value, -qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, snan_value, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, snan_value, -qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -snan_value, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -snan_value, -qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, qnan_value, snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, qnan_value, -snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -qnan_value, snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -qnan_value, -snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, snan_value, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, snan_value, -snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -snan_value, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -snan_value, -snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, minus_zero, -min_subnorm_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, minus_zero, min_subnorm_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, plus_zero, -min_subnorm_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, plus_zero, min_subnorm_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -min_subnorm_value, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -min_subnorm_value, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, min_subnorm_value, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, min_subnorm_value, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, min_value, max_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, min_value, -max_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -min_value, max_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -min_value, -max_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, max_value, min_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, max_value, -min_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -max_value, min_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -max_value, -min_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, qnan_value_pl ("0x1"), qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, qnan_value_pl ("0x1"), qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, qnan_value_pl ("0x1"), qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, qnan_value_pl ("0x2"), qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, qnan_value_pl ("0x2"), qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, qnan_value_pl ("0x2"), qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, qnan_value_pl ("0x3fffff"), qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, qnan_value_pl ("0x3fffff"), qnan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, qnan_value_pl ("0x3fffff"), qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, qnan_value_pl ("0x1"), -qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, qnan_value_pl ("0x1"), -qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, qnan_value_pl ("0x1"), -qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, qnan_value_pl ("0x2"), -qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, qnan_value_pl ("0x2"), -qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, qnan_value_pl ("0x2"), -qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, qnan_value_pl ("0x3fffff"), -qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, qnan_value_pl ("0x3fffff"), -qnan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, qnan_value_pl ("0x3fffff"), -qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x1"), qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x1"), qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x1"), qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x2"), qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x2"), qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x2"), qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x3fffff"), qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x3fffff"), qnan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x3fffff"), qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x1"), -qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x1"), -qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x1"), -qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x2"), -qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x2"), -qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x2"), -qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x3fffff"), -qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x3fffff"), -qnan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x3fffff"), -qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, snan_value_pl ("0x1"), snan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, snan_value_pl ("0x1"), snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, snan_value_pl ("0x1"), snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, snan_value_pl ("0x2"), snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, snan_value_pl ("0x2"), snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, snan_value_pl ("0x2"), snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, snan_value_pl ("0x3fffff"), snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, snan_value_pl ("0x3fffff"), snan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, snan_value_pl ("0x3fffff"), snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, snan_value_pl ("0x1"), -snan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, snan_value_pl ("0x1"), -snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, snan_value_pl ("0x1"), -snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, snan_value_pl ("0x2"), -snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, snan_value_pl ("0x2"), -snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, snan_value_pl ("0x2"), -snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, snan_value_pl ("0x3fffff"), -snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, snan_value_pl ("0x3fffff"), -snan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, snan_value_pl ("0x3fffff"), -snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -snan_value_pl ("0x1"), snan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -snan_value_pl ("0x1"), snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -snan_value_pl ("0x1"), snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -snan_value_pl ("0x2"), snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -snan_value_pl ("0x2"), snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -snan_value_pl ("0x2"), snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -snan_value_pl ("0x3fffff"), snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -snan_value_pl ("0x3fffff"), snan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -snan_value_pl ("0x3fffff"), snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -snan_value_pl ("0x1"), -snan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -snan_value_pl ("0x1"), -snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -snan_value_pl ("0x1"), -snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -snan_value_pl ("0x2"), -snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -snan_value_pl ("0x2"), -snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -snan_value_pl ("0x2"), -snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -snan_value_pl ("0x3fffff"), -snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -snan_value_pl ("0x3fffff"), -snan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -snan_value_pl ("0x3fffff"), -snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, snan_value_pl ("0x3fffff"), qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -snan_value_pl ("0x3fffff"), -qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, qnan_value_pl ("0x1"), snan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x1"), -snan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
#if PAYLOAD_DIG >= 34
- TEST_ff_b (totalordermag, qnan_value_pl ("0xffffffff"), qnan_value_pl ("0x100000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -qnan_value_pl ("0xffffffff"), -qnan_value_pl ("0x100000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, qnan_value_pl ("0x100000000"), qnan_value_pl ("0xffffffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -qnan_value_pl ("0x100000000"), -qnan_value_pl ("0xffffffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, snan_value_pl ("0xffffffff"), snan_value_pl ("0x100000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -snan_value_pl ("0xffffffff"), -snan_value_pl ("0x100000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, snan_value_pl ("0x100000000"), snan_value_pl ("0xffffffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -snan_value_pl ("0x100000000"), -snan_value_pl ("0xffffffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, qnan_value_pl ("0x100000000"), qnan_value_pl ("0x200000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -qnan_value_pl ("0x100000000"), -qnan_value_pl ("0x200000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, qnan_value_pl ("0x200000000"), qnan_value_pl ("0x100000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -qnan_value_pl ("0x200000000"), -qnan_value_pl ("0x100000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, snan_value_pl ("0x100000000"), snan_value_pl ("0x200000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -snan_value_pl ("0x100000000"), -snan_value_pl ("0x200000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, snan_value_pl ("0x200000000"), snan_value_pl ("0x100000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, -snan_value_pl ("0x200000000"), -snan_value_pl ("0x100000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, qnan_value_pl ("0xffffffff"), qnan_value_pl ("0x100000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -qnan_value_pl ("0xffffffff"), -qnan_value_pl ("0x100000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, qnan_value_pl ("0x100000000"), qnan_value_pl ("0xffffffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x100000000"), -qnan_value_pl ("0xffffffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, snan_value_pl ("0xffffffff"), snan_value_pl ("0x100000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -snan_value_pl ("0xffffffff"), -snan_value_pl ("0x100000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, snan_value_pl ("0x100000000"), snan_value_pl ("0xffffffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -snan_value_pl ("0x100000000"), -snan_value_pl ("0xffffffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, qnan_value_pl ("0x100000000"), qnan_value_pl ("0x200000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x100000000"), -qnan_value_pl ("0x200000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, qnan_value_pl ("0x200000000"), qnan_value_pl ("0x100000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x200000000"), -qnan_value_pl ("0x100000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, snan_value_pl ("0x100000000"), snan_value_pl ("0x200000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -snan_value_pl ("0x100000000"), -snan_value_pl ("0x200000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, snan_value_pl ("0x200000000"), snan_value_pl ("0x100000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, -snan_value_pl ("0x200000000"), -snan_value_pl ("0x100000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
#endif
#if PAYLOAD_DIG >= 66
- TEST_ff_b (totalordermag, qnan_value_pl ("0xffffffffffffffff"), qnan_value_pl ("0x10000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
- TEST_ff_b (totalordermag, -qnan_value_pl ("0xffffffffffffffff"), -qnan_value_pl ("0x10000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
- TEST_ff_b (totalordermag, qnan_value_pl ("0x10000000000000000"), qnan_value_pl ("0xffffffffffffffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
- TEST_ff_b (totalordermag, -qnan_value_pl ("0x10000000000000000"), -qnan_value_pl ("0xffffffffffffffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
- TEST_ff_b (totalordermag, snan_value_pl ("0xffffffffffffffff"), snan_value_pl ("0x10000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
- TEST_ff_b (totalordermag, -snan_value_pl ("0xffffffffffffffff"), -snan_value_pl ("0x10000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
- TEST_ff_b (totalordermag, snan_value_pl ("0x10000000000000000"), snan_value_pl ("0xffffffffffffffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
- TEST_ff_b (totalordermag, -snan_value_pl ("0x10000000000000000"), -snan_value_pl ("0xffffffffffffffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
- TEST_ff_b (totalordermag, qnan_value_pl ("0x10000000000000000"), qnan_value_pl ("0x20000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
- TEST_ff_b (totalordermag, -qnan_value_pl ("0x10000000000000000"), -qnan_value_pl ("0x20000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
- TEST_ff_b (totalordermag, qnan_value_pl ("0x20000000000000000"), qnan_value_pl ("0x10000000000000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
- TEST_ff_b (totalordermag, -qnan_value_pl ("0x20000000000000000"), -qnan_value_pl ("0x10000000000000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
- TEST_ff_b (totalordermag, snan_value_pl ("0x10000000000000000"), snan_value_pl ("0x20000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
- TEST_ff_b (totalordermag, -snan_value_pl ("0x10000000000000000"), -snan_value_pl ("0x20000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
- TEST_ff_b (totalordermag, snan_value_pl ("0x20000000000000000"), snan_value_pl ("0x10000000000000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
- TEST_ff_b (totalordermag, -snan_value_pl ("0x20000000000000000"), -snan_value_pl ("0x10000000000000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
+ TEST_fpfp_b (totalordermag, qnan_value_pl ("0xffffffffffffffff"), qnan_value_pl ("0x10000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
+ TEST_fpfp_b (totalordermag, -qnan_value_pl ("0xffffffffffffffff"), -qnan_value_pl ("0x10000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
+ TEST_fpfp_b (totalordermag, qnan_value_pl ("0x10000000000000000"), qnan_value_pl ("0xffffffffffffffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
+ TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x10000000000000000"), -qnan_value_pl ("0xffffffffffffffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
+ TEST_fpfp_b (totalordermag, snan_value_pl ("0xffffffffffffffff"), snan_value_pl ("0x10000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
+ TEST_fpfp_b (totalordermag, -snan_value_pl ("0xffffffffffffffff"), -snan_value_pl ("0x10000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
+ TEST_fpfp_b (totalordermag, snan_value_pl ("0x10000000000000000"), snan_value_pl ("0xffffffffffffffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
+ TEST_fpfp_b (totalordermag, -snan_value_pl ("0x10000000000000000"), -snan_value_pl ("0xffffffffffffffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
+ TEST_fpfp_b (totalordermag, qnan_value_pl ("0x10000000000000000"), qnan_value_pl ("0x20000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
+ TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x10000000000000000"), -qnan_value_pl ("0x20000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
+ TEST_fpfp_b (totalordermag, qnan_value_pl ("0x20000000000000000"), qnan_value_pl ("0x10000000000000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
+ TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x20000000000000000"), -qnan_value_pl ("0x10000000000000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
+ TEST_fpfp_b (totalordermag, snan_value_pl ("0x10000000000000000"), snan_value_pl ("0x20000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
+ TEST_fpfp_b (totalordermag, -snan_value_pl ("0x10000000000000000"), -snan_value_pl ("0x20000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
+ TEST_fpfp_b (totalordermag, snan_value_pl ("0x20000000000000000"), snan_value_pl ("0x10000000000000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
+ TEST_fpfp_b (totalordermag, -snan_value_pl ("0x20000000000000000"), -snan_value_pl ("0x10000000000000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
#endif
- TEST_ff_b (totalordermag, 1, 0x1.000002p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, 0x1.000002p0, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, 1, 0x0.ffffffp0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, 0x0.ffffffp0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, 1, 0x1.000002p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, 0x1.000002p0, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, 1, 0x0.ffffffp0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, 0x0.ffffffp0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
#if MANT_DIG >= 53
- TEST_ff_b (totalordermag, 1, 0x1.0000000000001p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, 0x1.0000000000001p0, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, 1, 0x0.fffffffffffff8p0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, 0x0.fffffffffffff8p0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, 1, 0x1.0000000000001p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, 0x1.0000000000001p0, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, 1, 0x0.fffffffffffff8p0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, 0x0.fffffffffffff8p0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
#endif
#if MANT_DIG >= 64
- TEST_ff_b (totalordermag, 1, 0x1.0000000000000002p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, 0x1.0000000000000002p0, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, 1, 0x0.ffffffffffffffffp0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, 0x0.ffffffffffffffffp0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, 1, 0x1.0000000000000002p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, 0x1.0000000000000002p0, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, 1, 0x0.ffffffffffffffffp0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, 0x0.ffffffffffffffffp0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
#endif
#if MANT_DIG >= 106
- TEST_ff_b (totalordermag, 1, 0x1.000000000000000000000000008p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, 0x1.000000000000000000000000008p0, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, 1, 0x0.ffffffffffffffffffffffffffcp0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, 0x0.ffffffffffffffffffffffffffcp0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, 1, 0x1.000000000000000000000000008p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, 0x1.000000000000000000000000008p0, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, 1, 0x0.ffffffffffffffffffffffffffcp0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, 0x0.ffffffffffffffffffffffffffcp0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
#endif
#if MANT_DIG >= 113
- TEST_ff_b (totalordermag, 1, 0x1.0000000000000000000000000001p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, 0x1.0000000000000000000000000001p0, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, 1, 0x0.ffffffffffffffffffffffffffff8p0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
- TEST_ff_b (totalordermag, 0x0.ffffffffffffffffffffffffffff8p0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, 1, 0x1.0000000000000000000000000001p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, 0x1.0000000000000000000000000001p0, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, 1, 0x0.ffffffffffffffffffffffffffff8p0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_fpfp_b (totalordermag, 0x0.ffffffffffffffffffffffffffff8p0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
#endif
};
+#ifndef COMPAT_TEST
static void
totalordermag_test (void)
{
- ALL_RM_TEST (totalordermag, 1, totalordermag_test_data, RUN_TEST_LOOP_ff_b, END);
+ ALL_RM_TEST (totalordermag, 1, totalordermag_test_data, RUN_TEST_LOOP_fpfp_b, END);
}
static void
@@ -270,6 +271,7 @@ do_test (void)
{
totalordermag_test ();
}
+#endif
/*
* Local Variables:
diff --git a/math/libm-test-trunc.inc b/math/libm-test-trunc.inc
index c19bc944e6..903ac9a682 100644
--- a/math/libm-test-trunc.inc
+++ b/math/libm-test-trunc.inc
@@ -1,5 +1,5 @@
/* Test trunc.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-ufromfp.inc b/math/libm-test-ufromfp.inc
index 234869a45a..69b1a80278 100644
--- a/math/libm-test-ufromfp.inc
+++ b/math/libm-test-ufromfp.inc
@@ -1,5 +1,5 @@
/* Test ufromfp.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-ufromfpx.inc b/math/libm-test-ufromfpx.inc
index 921f65ad56..68b33fec18 100644
--- a/math/libm-test-ufromfpx.inc
+++ b/math/libm-test-ufromfpx.inc
@@ -1,5 +1,5 @@
/* Test ufromfpx.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-y0.inc b/math/libm-test-y0.inc
index 5bfcc4222f..dcf740bb9f 100644
--- a/math/libm-test-y0.inc
+++ b/math/libm-test-y0.inc
@@ -1,5 +1,5 @@
/* Test y0.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-y1.inc b/math/libm-test-y1.inc
index 380d34dc91..d2cd548490 100644
--- a/math/libm-test-y1.inc
+++ b/math/libm-test-y1.inc
@@ -1,5 +1,5 @@
/* Test y1.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/libm-test-yn.inc b/math/libm-test-yn.inc
index dee133cb4e..26fddda8e1 100644
--- a/math/libm-test-yn.inc
+++ b/math/libm-test-yn.inc
@@ -1,5 +1,5 @@
/* Test yn.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
diff --git a/math/math-narrow.h b/math/math-narrow.h
index c4065e88f7..999c5391a6 100644
--- a/math/math-narrow.h
+++ b/math/math-narrow.h
@@ -1,5 +1,5 @@
/* Helper macros for functions returning a narrower type.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MATH_NARROW_H
#define _MATH_NARROW_H 1
@@ -26,6 +26,7 @@
#include <ieee754.h>
#include <math-barriers.h>
#include <math_private.h>
+#include <fenv_private.h>
/* Carry out a computation using round-to-odd. The computation is
EXPR; the union type in which to store the result is UNION and the
diff --git a/math/math-svid-compat.h b/math/math-svid-compat.h
index 2afadd7b1f..2c50bfe37c 100644
--- a/math/math-svid-compat.h
+++ b/math/math-svid-compat.h
@@ -1,5 +1,5 @@
/* Declarations for SVID math error handling compatibility.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MATH_SVID_COMPAT_H
#define _MATH_SVID_COMPAT_H 1
diff --git a/math/math-underflow.h b/math/math-underflow.h
index c5e5c79768..233e90757e 100644
--- a/math/math-underflow.h
+++ b/math/math-underflow.h
@@ -1,5 +1,5 @@
/* Check for underflow and force underflow exceptions.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MATH_UNDERFLOW_H
#define _MATH_UNDERFLOW_H 1
diff --git a/math/math.h b/math/math.h
index ddee4e4083..ab76e59117 100644
--- a/math/math.h
+++ b/math/math.h
@@ -1,5 +1,5 @@
/* Declarations for math functions.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* ISO C99 Standard: 7.12 Mathematics <math.h>
@@ -104,7 +104,7 @@ __BEGIN_DECLS
# endif
#endif /* __USE_ISOC99 */
-#if __GLIBC_USE (IEC_60559_BFP_EXT)
+#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
/* Signaling NaN macros, if supported. */
# if __GNUC_PREREQ (3, 3)
# define SNANF (__builtin_nansf (""))
@@ -200,7 +200,7 @@ typedef _Float128x double_t;
# define FP_ILOGBNAN 2147483647
# endif
#endif
-#if __GLIBC_USE (IEC_60559_BFP_EXT)
+#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
# if __WORDSIZE == 32
# define __FP_LONG_MAX 0x7fffffffL
# else
@@ -232,7 +232,7 @@ typedef _Float128x double_t;
#include <bits/fp-fast.h>
-#if __GLIBC_USE (IEC_60559_BFP_EXT)
+#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
/* Rounding direction macros for fromfp functions. */
enum
{
@@ -495,7 +495,7 @@ extern long double __REDIRECT_NTH (nexttowardl,
#define __MATHCALL_NARROW(func, redir, nargs) \
__MATHCALL_NARROW_NORMAL (func, nargs)
-#if __GLIBC_USE (IEC_60559_BFP_EXT)
+#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
# define _Mret_ float
# define _Marg_ double
@@ -874,7 +874,8 @@ enum
the __SUPPORT_SNAN__ check may be skipped for those versions. */
/* Return number of classification appropriate for X. */
-# if __GNUC_PREREQ (4,4) && !defined __SUPPORT_SNAN__ \
+# if ((__GNUC_PREREQ (4,4) && !defined __SUPPORT_SNAN__) \
+ || __glibc_clang_prereq (2,8)) \
&& (!defined __OPTIMIZE_SIZE__ || defined __cplusplus)
/* The check for __cplusplus allows the use of the builtin, even
when optimization for size is on. This is provided for
@@ -889,7 +890,7 @@ enum
# endif
/* Return nonzero value if sign of X is negative. */
-# if __GNUC_PREREQ (6,0)
+# if __GNUC_PREREQ (6,0) || __glibc_clang_prereq (3,3)
# define signbit(x) __builtin_signbit (x)
# elif defined __cplusplus
/* In C++ mode, __MATH_TG cannot be used, because it relies on
@@ -907,14 +908,16 @@ enum
# endif
/* Return nonzero value if X is not +-Inf or NaN. */
-# if __GNUC_PREREQ (4,4) && !defined __SUPPORT_SNAN__
+# if (__GNUC_PREREQ (4,4) && !defined __SUPPORT_SNAN__) \
+ || __glibc_clang_prereq (2,8)
# define isfinite(x) __builtin_isfinite (x)
# else
# define isfinite(x) __MATH_TG ((x), __finite, (x))
# endif
/* Return nonzero value if X is neither zero, subnormal, Inf, nor NaN. */
-# if __GNUC_PREREQ (4,4) && !defined __SUPPORT_SNAN__
+# if (__GNUC_PREREQ (4,4) && !defined __SUPPORT_SNAN__) \
+ || __glibc_clang_prereq (2,8)
# define isnormal(x) __builtin_isnormal (x)
# else
# define isnormal(x) (fpclassify (x) == FP_NORMAL)
@@ -922,7 +925,8 @@ enum
/* Return nonzero value if X is a NaN. We could use `fpclassify' but
we already have this functions `__isnan' and it is faster. */
-# if __GNUC_PREREQ (4,4) && !defined __SUPPORT_SNAN__
+# if (__GNUC_PREREQ (4,4) && !defined __SUPPORT_SNAN__) \
+ || __glibc_clang_prereq (2,8)
# define isnan(x) __builtin_isnan (x)
# else
# define isnan(x) __MATH_TG ((x), __isnan, (x))
@@ -939,7 +943,8 @@ enum
# define isinf(x) \
(__builtin_types_compatible_p (__typeof (x), _Float128) \
? __isinff128 (x) : __builtin_isinf_sign (x))
-# elif __GNUC_PREREQ (4,4) && !defined __SUPPORT_SNAN__
+# elif (__GNUC_PREREQ (4,4) && !defined __SUPPORT_SNAN__) \
+ || __glibc_clang_prereq (3,7)
# define isinf(x) __builtin_isinf_sign (x)
# else
# define isinf(x) __MATH_TG ((x), __isinf, (x))
@@ -964,7 +969,7 @@ enum
#endif /* Use ISO C99. */
-#if __GLIBC_USE (IEC_60559_BFP_EXT)
+#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
# include <bits/iscanonical.h>
/* Return nonzero value if X is a signaling NaN. */
@@ -1240,228 +1245,8 @@ iszero (__T __val)
# include <bits/mathinline.h>
#endif
-/* Define special entry points to use when the compiler got told to
- only expect finite results. */
-#if defined __FINITE_MATH_ONLY__ && __FINITE_MATH_ONLY__ > 0
-
-/* Include bits/math-finite.h for double. */
-# define _Mdouble_ double
-# define __MATH_DECLARING_DOUBLE 1
-# define __MATH_DECLARING_FLOATN 0
-# define __REDIRFROM_X(function, reentrant) \
- function ## reentrant
-# define __REDIRTO_X(function, reentrant) \
- __ ## function ## reentrant ## _finite
-# include <bits/math-finite.h>
-# undef _Mdouble_
-# undef __MATH_DECLARING_DOUBLE
-# undef __MATH_DECLARING_FLOATN
-# undef __REDIRFROM_X
-# undef __REDIRTO_X
-
-/* When __USE_ISOC99 is defined, include math-finite for float and
- long double, as well. */
-# ifdef __USE_ISOC99
-
-/* Include bits/math-finite.h for float. */
-# define _Mdouble_ float
-# define __MATH_DECLARING_DOUBLE 0
-# define __MATH_DECLARING_FLOATN 0
-# define __REDIRFROM_X(function, reentrant) \
- function ## f ## reentrant
-# define __REDIRTO_X(function, reentrant) \
- __ ## function ## f ## reentrant ## _finite
-# include <bits/math-finite.h>
-# undef _Mdouble_
-# undef __MATH_DECLARING_DOUBLE
-# undef __MATH_DECLARING_FLOATN
-# undef __REDIRFROM_X
-# undef __REDIRTO_X
-
-/* Include bits/math-finite.h for long double. */
-# ifdef __MATH_DECLARE_LDOUBLE
-# define _Mdouble_ long double
-# define __MATH_DECLARING_DOUBLE 0
-# define __MATH_DECLARING_FLOATN 0
-# define __REDIRFROM_X(function, reentrant) \
- function ## l ## reentrant
-# ifdef __NO_LONG_DOUBLE_MATH
-# define __REDIRTO_X(function, reentrant) \
- __ ## function ## reentrant ## _finite
-# else
-# define __REDIRTO_X(function, reentrant) \
- __ ## function ## l ## reentrant ## _finite
-# endif
-# include <bits/math-finite.h>
-# undef _Mdouble_
-# undef __MATH_DECLARING_DOUBLE
-# undef __MATH_DECLARING_FLOATN
-# undef __REDIRFROM_X
-# undef __REDIRTO_X
-# endif
-
-# endif /* __USE_ISOC99. */
-
-/* Include bits/math-finite.h for _FloatN and _FloatNx. */
-
-# if (__HAVE_DISTINCT_FLOAT16 || (__HAVE_FLOAT16 && !defined _LIBC)) \
- && __GLIBC_USE (IEC_60559_TYPES_EXT)
-# define _Mdouble_ _Float16
-# define __MATH_DECLARING_DOUBLE 0
-# define __MATH_DECLARING_FLOATN 1
-# define __REDIRFROM_X(function, reentrant) \
- function ## f16 ## reentrant
-# if __HAVE_DISTINCT_FLOAT16
-# define __REDIRTO_X(function, reentrant) \
- __ ## function ## f16 ## reentrant ## _finite
-# else
-# error "non-disinct _Float16"
-# endif
-# include <bits/math-finite.h>
-# undef _Mdouble_
-# undef __MATH_DECLARING_DOUBLE
-# undef __MATH_DECLARING_FLOATN
-# undef __REDIRFROM_X
-# undef __REDIRTO_X
-# endif
-
-# if (__HAVE_DISTINCT_FLOAT32 || (__HAVE_FLOAT32 && !defined _LIBC)) \
- && __GLIBC_USE (IEC_60559_TYPES_EXT)
-# define _Mdouble_ _Float32
-# define __MATH_DECLARING_DOUBLE 0
-# define __MATH_DECLARING_FLOATN 1
-# define __REDIRFROM_X(function, reentrant) \
- function ## f32 ## reentrant
-# if __HAVE_DISTINCT_FLOAT32
-# define __REDIRTO_X(function, reentrant) \
- __ ## function ## f32 ## reentrant ## _finite
-# else
-# define __REDIRTO_X(function, reentrant) \
- __ ## function ## f ## reentrant ## _finite
-# endif
-# include <bits/math-finite.h>
-# undef _Mdouble_
-# undef __MATH_DECLARING_DOUBLE
-# undef __MATH_DECLARING_FLOATN
-# undef __REDIRFROM_X
-# undef __REDIRTO_X
-# endif
-
-# if (__HAVE_DISTINCT_FLOAT64 || (__HAVE_FLOAT64 && !defined _LIBC)) \
- && __GLIBC_USE (IEC_60559_TYPES_EXT)
-# define _Mdouble_ _Float64
-# define __MATH_DECLARING_DOUBLE 0
-# define __MATH_DECLARING_FLOATN 1
-# define __REDIRFROM_X(function, reentrant) \
- function ## f64 ## reentrant
-# if __HAVE_DISTINCT_FLOAT64
-# define __REDIRTO_X(function, reentrant) \
- __ ## function ## f64 ## reentrant ## _finite
-# else
-# define __REDIRTO_X(function, reentrant) \
- __ ## function ## reentrant ## _finite
-# endif
-# include <bits/math-finite.h>
-# undef _Mdouble_
-# undef __MATH_DECLARING_DOUBLE
-# undef __MATH_DECLARING_FLOATN
-# undef __REDIRFROM_X
-# undef __REDIRTO_X
-# endif
-
-# if (__HAVE_DISTINCT_FLOAT128 || (__HAVE_FLOAT128 && !defined _LIBC)) \
- && __GLIBC_USE (IEC_60559_TYPES_EXT)
-# define _Mdouble_ _Float128
-# define __MATH_DECLARING_DOUBLE 0
-# define __MATH_DECLARING_FLOATN 1
-# define __REDIRFROM_X(function, reentrant) \
- function ## f128 ## reentrant
-# if __HAVE_DISTINCT_FLOAT128
-# define __REDIRTO_X(function, reentrant) \
- __ ## function ## f128 ## reentrant ## _finite
-# else
-# define __REDIRTO_X(function, reentrant) \
- __ ## function ## l ## reentrant ## _finite
-# endif
-# include <bits/math-finite.h>
-# undef _Mdouble_
-# undef __MATH_DECLARING_DOUBLE
-# undef __MATH_DECLARING_FLOATN
-# undef __REDIRFROM_X
-# undef __REDIRTO_X
-# endif
-
-# if (__HAVE_DISTINCT_FLOAT32X || (__HAVE_FLOAT32X && !defined _LIBC)) \
- && __GLIBC_USE (IEC_60559_TYPES_EXT)
-# define _Mdouble_ _Float32x
-# define __MATH_DECLARING_DOUBLE 0
-# define __MATH_DECLARING_FLOATN 1
-# define __REDIRFROM_X(function, reentrant) \
- function ## f32x ## reentrant
-# if __HAVE_DISTINCT_FLOAT32X
-# define __REDIRTO_X(function, reentrant) \
- __ ## function ## f32x ## reentrant ## _finite
-# else
-# define __REDIRTO_X(function, reentrant) \
- __ ## function ## reentrant ## _finite
-# endif
-# include <bits/math-finite.h>
-# undef _Mdouble_
-# undef __MATH_DECLARING_DOUBLE
-# undef __MATH_DECLARING_FLOATN
-# undef __REDIRFROM_X
-# undef __REDIRTO_X
-# endif
-
-# if (__HAVE_DISTINCT_FLOAT64X || (__HAVE_FLOAT64X && !defined _LIBC)) \
- && __GLIBC_USE (IEC_60559_TYPES_EXT)
-# define _Mdouble_ _Float64x
-# define __MATH_DECLARING_DOUBLE 0
-# define __MATH_DECLARING_FLOATN 1
-# define __REDIRFROM_X(function, reentrant) \
- function ## f64x ## reentrant
-# if __HAVE_DISTINCT_FLOAT64X
-# define __REDIRTO_X(function, reentrant) \
- __ ## function ## f64x ## reentrant ## _finite
-# elif __HAVE_FLOAT64X_LONG_DOUBLE
-# define __REDIRTO_X(function, reentrant) \
- __ ## function ## l ## reentrant ## _finite
-# else
-# define __REDIRTO_X(function, reentrant) \
- __ ## function ## f128 ## reentrant ## _finite
-# endif
-# include <bits/math-finite.h>
-# undef _Mdouble_
-# undef __MATH_DECLARING_DOUBLE
-# undef __MATH_DECLARING_FLOATN
-# undef __REDIRFROM_X
-# undef __REDIRTO_X
-# endif
-
-# if (__HAVE_DISTINCT_FLOAT128X || (__HAVE_FLOAT128X && !defined _LIBC)) \
- && __GLIBC_USE (IEC_60559_TYPES_EXT)
-# define _Mdouble_ _Float128x
-# define __MATH_DECLARING_DOUBLE 0
-# define __MATH_DECLARING_FLOATN 1
-# define __REDIRFROM_X(function, reentrant) \
- function ## f128x ## reentrant
-# if __HAVE_DISTINCT_FLOAT128X
-# define __REDIRTO_X(function, reentrant) \
- __ ## function ## f128x ## reentrant ## _finite
-# else
-# error "non-disinct _Float128x"
-# endif
-# include <bits/math-finite.h>
-# undef _Mdouble_
-# undef __MATH_DECLARING_DOUBLE
-# undef __MATH_DECLARING_FLOATN
-# undef __REDIRFROM_X
-# undef __REDIRTO_X
-# endif
-
-#endif /* __FINITE_MATH_ONLY__ > 0. */
-#if __GLIBC_USE (IEC_60559_BFP_EXT)
+#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
/* An expression whose type has the widest of the evaluation formats
of X and Y (which are of floating-point types). */
# if __FLT_EVAL_METHOD__ == 2 || __FLT_EVAL_METHOD__ > 64
diff --git a/math/mul_split.h b/math/mul_split.h
index 9d08c68636..8f8402eded 100644
--- a/math/mul_split.h
+++ b/math/mul_split.h
@@ -1,5 +1,5 @@
/* Compute full X * Y for double type.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MUL_SPLIT_H
#define _MUL_SPLIT_H
diff --git a/math/mul_splitl.h b/math/mul_splitl.h
index a253a5c837..1058b5d81d 100644
--- a/math/mul_splitl.h
+++ b/math/mul_splitl.h
@@ -1,5 +1,5 @@
/* Compute full X * Y for long double type.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MUL_SPLITL_H
#define _MUL_SPLITL_H
diff --git a/math/multc3.c b/math/multc3.c
index 9943d705fd..03c3d62737 100644
--- a/math/multc3.c
+++ b/math/multc3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson <rth@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdbool.h>
#include <math.h>
@@ -42,20 +42,20 @@ __multc3 (long double a, long double b, long double c, long double d)
{
/* z is infinite. "Box" the infinity and change NaNs in
the other factor to 0. */
- a = __copysignl (isinf (a) ? 1 : 0, a);
- b = __copysignl (isinf (b) ? 1 : 0, b);
- if (isnan (c)) c = __copysignl (0, c);
- if (isnan (d)) d = __copysignl (0, d);
+ a = copysignl (isinf (a) ? 1 : 0, a);
+ b = copysignl (isinf (b) ? 1 : 0, b);
+ if (isnan (c)) c = copysignl (0, c);
+ if (isnan (d)) d = copysignl (0, d);
recalc = 1;
}
if (isinf (c) || isinf (d))
{
/* w is infinite. "Box" the infinity and change NaNs in
the other factor to 0. */
- c = __copysignl (isinf (c) ? 1 : 0, c);
- d = __copysignl (isinf (d) ? 1 : 0, d);
- if (isnan (a)) a = __copysignl (0, a);
- if (isnan (b)) b = __copysignl (0, b);
+ c = copysignl (isinf (c) ? 1 : 0, c);
+ d = copysignl (isinf (d) ? 1 : 0, d);
+ if (isnan (a)) a = copysignl (0, a);
+ if (isnan (b)) b = copysignl (0, b);
recalc = 1;
}
if (!recalc
@@ -63,10 +63,10 @@ __multc3 (long double a, long double b, long double c, long double d)
|| isinf (ad) || isinf (bc)))
{
/* Recover infinities from overflow by changing NaNs to 0. */
- if (isnan (a)) a = __copysignl (0, a);
- if (isnan (b)) b = __copysignl (0, b);
- if (isnan (c)) c = __copysignl (0, c);
- if (isnan (d)) d = __copysignl (0, d);
+ if (isnan (a)) a = copysignl (0, a);
+ if (isnan (b)) b = copysignl (0, b);
+ if (isnan (c)) c = copysignl (0, c);
+ if (isnan (d)) d = copysignl (0, d);
recalc = 1;
}
if (recalc)
diff --git a/math/s_cacos_template.c b/math/s_cacos_template.c
index 1265932de4..c6804336c0 100644
--- a/math/s_cacos_template.c
+++ b/math/s_cacos_template.c
@@ -1,5 +1,5 @@
/* Return cosine of a complex type.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <complex.h>
#include <math.h>
diff --git a/math/s_cacosh_template.c b/math/s_cacosh_template.c
index c8a060d44b..e9cb5908a3 100644
--- a/math/s_cacosh_template.c
+++ b/math/s_cacosh_template.c
@@ -1,5 +1,5 @@
/* Return arc hyperbolic cosine for a complex type.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@@ -15,11 +15,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <complex.h>
#include <math.h>
-#include <math_private.h>
CFLOAT
diff --git a/math/s_canonicalize_template.c b/math/s_canonicalize_template.c
index d123c9ddb5..81a74a7eee 100644
--- a/math/s_canonicalize_template.c
+++ b/math/s_canonicalize_template.c
@@ -1,5 +1,5 @@
/* Canonicalize floating-point representation.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/math/s_casin_template.c b/math/s_casin_template.c
index 24eb7abce5..540f2b5049 100644
--- a/math/s_casin_template.c
+++ b/math/s_casin_template.c
@@ -1,5 +1,5 @@
/* Return arc sine of a complex float type.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@@ -15,11 +15,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <complex.h>
#include <math.h>
-#include <math_private.h>
CFLOAT
diff --git a/math/s_casinh_template.c b/math/s_casinh_template.c
index 8433ce134d..f87c95f41c 100644
--- a/math/s_casinh_template.c
+++ b/math/s_casinh_template.c
@@ -1,5 +1,5 @@
/* Return arc hyperbolic sine for a complex float type.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@@ -15,11 +15,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <complex.h>
#include <math.h>
-#include <math_private.h>
CFLOAT
M_DECL_FUNC (__casinh) (CFLOAT x)
diff --git a/math/s_catan_template.c b/math/s_catan_template.c
index 19f4e11cb4..999578672e 100644
--- a/math/s_catan_template.c
+++ b/math/s_catan_template.c
@@ -1,5 +1,5 @@
/* Return arc tangent of complex float type.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <complex.h>
#include <math.h>
diff --git a/math/s_catanh_template.c b/math/s_catanh_template.c
index 245a1a6412..5dbb989f0b 100644
--- a/math/s_catanh_template.c
+++ b/math/s_catanh_template.c
@@ -1,5 +1,5 @@
/* Return arc hyperbolic tangent for a complex float type.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <complex.h>
#include <math.h>
diff --git a/math/s_ccos_template.c b/math/s_ccos_template.c
index 413cd95705..eeab6d4519 100644
--- a/math/s_ccos_template.c
+++ b/math/s_ccos_template.c
@@ -1,5 +1,5 @@
/* Return cosine of complex float type.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@@ -15,12 +15,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <complex.h>
#include <fenv.h>
#include <math.h>
-#include <math_private.h>
CFLOAT
M_DECL_FUNC (__ccos) (CFLOAT x)
diff --git a/math/s_ccosh_template.c b/math/s_ccosh_template.c
index 1664f0690a..aaa2489ec3 100644
--- a/math/s_ccosh_template.c
+++ b/math/s_ccosh_template.c
@@ -1,5 +1,5 @@
/* Complex cosine hyperbolic function for float types.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <complex.h>
#include <fenv.h>
diff --git a/math/s_cexp_template.c b/math/s_cexp_template.c
index 5fdab1e5ac..6cc895b0ae 100644
--- a/math/s_cexp_template.c
+++ b/math/s_cexp_template.c
@@ -1,5 +1,5 @@
/* Return value of complex exponential function for a float type.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <complex.h>
#include <fenv.h>
diff --git a/math/s_clog10_template.c b/math/s_clog10_template.c
index a947502e94..8a8a735ede 100644
--- a/math/s_clog10_template.c
+++ b/math/s_clog10_template.c
@@ -1,5 +1,5 @@
/* Compute complex base 10 logarithm.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <complex.h>
#include <math.h>
diff --git a/math/s_clog_template.c b/math/s_clog_template.c
index 1248cac593..1adee58bd9 100644
--- a/math/s_clog_template.c
+++ b/math/s_clog_template.c
@@ -1,5 +1,5 @@
/* Compute complex natural logarithm.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <complex.h>
#include <math.h>
diff --git a/math/s_cpow_template.c b/math/s_cpow_template.c
index 91abff994d..7fadc981ee 100644
--- a/math/s_cpow_template.c
+++ b/math/s_cpow_template.c
@@ -1,5 +1,5 @@
/* Complex power of float type.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <complex.h>
#include <math.h>
diff --git a/math/s_cproj_template.c b/math/s_cproj_template.c
index 2e2e7f1861..7d82efb558 100644
--- a/math/s_cproj_template.c
+++ b/math/s_cproj_template.c
@@ -1,5 +1,5 @@
/* Compute projection of complex float type value to Riemann sphere.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@@ -15,11 +15,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <complex.h>
#include <math.h>
-#include <math_private.h>
CFLOAT
diff --git a/math/s_csin_template.c b/math/s_csin_template.c
index 5f95e92ee0..2c0b18dd34 100644
--- a/math/s_csin_template.c
+++ b/math/s_csin_template.c
@@ -1,5 +1,5 @@
/* Complex sine function for float types.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <complex.h>
#include <fenv.h>
diff --git a/math/s_csinh_template.c b/math/s_csinh_template.c
index 95f28c2b66..7bb75fc389 100644
--- a/math/s_csinh_template.c
+++ b/math/s_csinh_template.c
@@ -1,5 +1,5 @@
/* Complex sine hyperbole function for float types.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <complex.h>
#include <fenv.h>
diff --git a/math/s_csqrt_template.c b/math/s_csqrt_template.c
index b1153906b9..d7caeaa4af 100644
--- a/math/s_csqrt_template.c
+++ b/math/s_csqrt_template.c
@@ -1,5 +1,5 @@
/* Complex square root of a float type.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Based on an algorithm by Stephen L. Moshier <moshier@world.std.com>.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <complex.h>
#include <math.h>
diff --git a/math/s_ctan_template.c b/math/s_ctan_template.c
index ab11c25299..5462987e69 100644
--- a/math/s_ctan_template.c
+++ b/math/s_ctan_template.c
@@ -1,5 +1,5 @@
/* Complex tangent function for a complex float type.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <complex.h>
#include <fenv.h>
diff --git a/math/s_ctanh_template.c b/math/s_ctanh_template.c
index bd1292239f..b87c95bd10 100644
--- a/math/s_ctanh_template.c
+++ b/math/s_ctanh_template.c
@@ -1,5 +1,5 @@
/* Complex hyperbolic tangent for float types.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <complex.h>
#include <fenv.h>
diff --git a/math/s_fdim_template.c b/math/s_fdim_template.c
index c8fa71f92b..2805042773 100644
--- a/math/s_fdim_template.c
+++ b/math/s_fdim_template.c
@@ -1,5 +1,5 @@
/* Return positive difference between arguments.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@@ -15,12 +15,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <math.h>
#include <math-narrow-eval.h>
-#include <math_private.h>
FLOAT
M_DECL_FUNC (__fdim) (FLOAT x, FLOAT y)
diff --git a/math/s_fma.c b/math/s_fma.c
index a746fb158f..05b71c38fc 100644
--- a/math/s_fma.c
+++ b/math/s_fma.c
@@ -1,5 +1,5 @@
/* Compute x * y + z as ternary operation.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <libm-alias-double.h>
diff --git a/math/s_fmaf.c b/math/s_fmaf.c
index fb80286350..bc88be0674 100644
--- a/math/s_fmaf.c
+++ b/math/s_fmaf.c
@@ -1,5 +1,5 @@
/* Compute x * y + z as ternary operation.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <libm-alias-float.h>
diff --git a/math/s_fmal.c b/math/s_fmal.c
index 14d9ae0315..c76a8218fd 100644
--- a/math/s_fmal.c
+++ b/math/s_fmal.c
@@ -1,5 +1,5 @@
/* Compute x * y + z as ternary operation.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <libm-alias-ldouble.h>
diff --git a/math/s_fmax_template.c b/math/s_fmax_template.c
index f4795c8c58..098c1e55b4 100644
--- a/math/s_fmax_template.c
+++ b/math/s_fmax_template.c
@@ -1,5 +1,5 @@
/* Return maximum numeric value of X and Y.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/math/s_fmaxmag_template.c b/math/s_fmaxmag_template.c
index 01b926701b..1ebe4cc11f 100644
--- a/math/s_fmaxmag_template.c
+++ b/math/s_fmaxmag_template.c
@@ -1,5 +1,5 @@
/* Return value with maximum magnitude.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,10 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
-#include <math_private.h>
FLOAT
M_DECL_FUNC (__fmaxmag) (FLOAT x, FLOAT y)
diff --git a/math/s_fmin_template.c b/math/s_fmin_template.c
index d6471452e0..259e28065f 100644
--- a/math/s_fmin_template.c
+++ b/math/s_fmin_template.c
@@ -1,5 +1,5 @@
/* Return minimum numeric value of X and Y.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/math/s_fminmag_template.c b/math/s_fminmag_template.c
index 82abf68fed..8f1b3d42a2 100644
--- a/math/s_fminmag_template.c
+++ b/math/s_fminmag_template.c
@@ -1,5 +1,5 @@
/* Return value with minimum magnitude.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,10 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
-#include <math_private.h>
FLOAT
M_DECL_FUNC (__fminmag) (FLOAT x, FLOAT y)
diff --git a/math/s_iseqsig_template.c b/math/s_iseqsig_template.c
index a4d28d778d..73f7d92222 100644
--- a/math/s_iseqsig_template.c
+++ b/math/s_iseqsig_template.c
@@ -1,5 +1,5 @@
/* Test whether X == Y.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,12 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fenv.h>
#include <math.h>
-#include <math_private.h>
#include <stdbool.h>
#include <fix-fp-int-compare-invalid.h>
diff --git a/math/s_ldexp_template.c b/math/s_ldexp_template.c
index 3aa56f9f89..75372dcd58 100644
--- a/math/s_ldexp_template.c
+++ b/math/s_ldexp_template.c
@@ -15,7 +15,6 @@ static char rcsid[] = "$NetBSD: s_ldexp.c,v 1.6 1995/05/10 20:47:40 jtc Exp $";
#endif
#include <math.h>
-#include <math_private.h>
#include <errno.h>
FLOAT
diff --git a/math/s_nan_template.c b/math/s_nan_template.c
index fe390474e4..0f1fc3a3f2 100644
--- a/math/s_nan_template.c
+++ b/math/s_nan_template.c
@@ -1,5 +1,5 @@
/* Return quiet nan.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <stdio.h>
diff --git a/math/s_nextdown_template.c b/math/s_nextdown_template.c
index 06e38d2713..3a2709996e 100644
--- a/math/s_nextdown_template.c
+++ b/math/s_nextdown_template.c
@@ -1,5 +1,5 @@
/* Return the greatest floating-point number less than X.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,10 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
-#include <math_private.h>
/* Return the greatest floating-point number less than X. */
FLOAT
diff --git a/math/s_significand_template.c b/math/s_significand_template.c
index 0c5ad8d14b..7318b28003 100644
--- a/math/s_significand_template.c
+++ b/math/s_significand_template.c
@@ -1,5 +1,5 @@
/* Return the mantissa of a floating-point number.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* significand(x) computes just
diff --git a/math/setfpucw.c b/math/setfpucw.c
index d823f72d76..f65c3c6bf4 100644
--- a/math/setfpucw.c
+++ b/math/setfpucw.c
@@ -1,5 +1,5 @@
/* Set the FPU control word.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <fpu_control.h>
diff --git a/math/test-arg-double.h b/math/test-arg-double.h
index 4eec144944..11801c9841 100644
--- a/math/test-arg-double.h
+++ b/math/test-arg-double.h
@@ -1,6 +1,6 @@
/* Common definitions for libm tests for double arguments to narrowing
functions.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define ARG_FUNC(function) function
#define ARG_FLOAT double
diff --git a/math/test-arg-float128.h b/math/test-arg-float128.h
index d2a7ef8e70..4f5815af30 100644
--- a/math/test-arg-float128.h
+++ b/math/test-arg-float128.h
@@ -1,6 +1,6 @@
/* Common definitions for libm tests for _Float128 arguments to
narrowing functions.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <bits/floatn.h>
#include <float.h>
diff --git a/math/test-arg-float32x.h b/math/test-arg-float32x.h
index d036f9cce5..fa7c9c5490 100644
--- a/math/test-arg-float32x.h
+++ b/math/test-arg-float32x.h
@@ -1,6 +1,6 @@
/* Common definitions for libm tests for _Float32x arguments to
narrowing functions.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <bits/floatn.h>
#include <float.h>
diff --git a/math/test-arg-float64.h b/math/test-arg-float64.h
index 346711917c..6be7dd0a5e 100644
--- a/math/test-arg-float64.h
+++ b/math/test-arg-float64.h
@@ -1,6 +1,6 @@
/* Common definitions for libm tests for _Float64 arguments to
narrowing functions.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <bits/floatn.h>
#include <float.h>
diff --git a/math/test-arg-float64x.h b/math/test-arg-float64x.h
index c07d908b54..9c9eabb973 100644
--- a/math/test-arg-float64x.h
+++ b/math/test-arg-float64x.h
@@ -1,6 +1,6 @@
/* Common definitions for libm tests for _Float64x arguments to
narrowing functions.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <bits/floatn.h>
#include <float.h>
diff --git a/math/test-arg-ldouble.h b/math/test-arg-ldouble.h
index 41b475eae3..4fc4cbef9a 100644
--- a/math/test-arg-ldouble.h
+++ b/math/test-arg-ldouble.h
@@ -1,6 +1,6 @@
/* Common definitions for libm tests for long double arguments to
narrowing functions.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <float.h>
diff --git a/math/test-double-vlen2.h b/math/test-double-vlen2.h
index 5c2bfe036c..c006f13091 100644
--- a/math/test-double-vlen2.h
+++ b/math/test-double-vlen2.h
@@ -1,5 +1,5 @@
/* Definitions for double vector tests with vector length 2.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,13 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "test-double.h"
#include "test-math-no-inline.h"
#include "test-math-vector.h"
-#define ROUNDING_TESTS_double(MODE) ((MODE) == FE_TONEAREST)
-
#define VEC_SUFF _vlen2
#define VEC_LEN 2
diff --git a/math/test-double-vlen4.h b/math/test-double-vlen4.h
index 8d9d326080..c302eaa866 100644
--- a/math/test-double-vlen4.h
+++ b/math/test-double-vlen4.h
@@ -1,5 +1,5 @@
/* Definitions for double vector tests with vector length 4.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,13 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "test-double.h"
#include "test-math-no-inline.h"
#include "test-math-vector.h"
-#define ROUNDING_TESTS_double(MODE) ((MODE) == FE_TONEAREST)
-
#define VEC_SUFF _vlen4
#define VEC_LEN 4
diff --git a/math/test-double-vlen8.h b/math/test-double-vlen8.h
index 602fd6eb59..15af0a32ba 100644
--- a/math/test-double-vlen8.h
+++ b/math/test-double-vlen8.h
@@ -1,5 +1,5 @@
/* Definitions for double vector tests with vector length 8.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,13 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "test-double.h"
#include "test-math-no-inline.h"
#include "test-math-vector.h"
-#define ROUNDING_TESTS_double(MODE) ((MODE) == FE_TONEAREST)
-
#define VEC_SUFF _vlen8
#define VEC_LEN 8
diff --git a/math/test-double.h b/math/test-double.h
index 0b0fc96bf1..d80a991bff 100644
--- a/math/test-double.h
+++ b/math/test-double.h
@@ -1,5 +1,5 @@
/* Common definitions for libm tests for double.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define FUNC(function) function
#define FLOAT double
diff --git a/math/test-fe-snans-always-signal.c b/math/test-fe-snans-always-signal.c
index 58c79b2272..48debdcf3b 100644
--- a/math/test-fe-snans-always-signal.c
+++ b/math/test-fe-snans-always-signal.c
@@ -1,5 +1,5 @@
/* Test FE_SNANS_ALWAYS_SIGNAL definition.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/math/test-femode-traps.c b/math/test-femode-traps.c
index ce9d46339c..29d060e516 100644
--- a/math/test-femode-traps.c
+++ b/math/test-femode-traps.c
@@ -1,5 +1,5 @@
/* Test femode_t functions: test handling of exception traps.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <stdio.h>
diff --git a/math/test-femode.c b/math/test-femode.c
index a3693ccebe..0e1719bc63 100644
--- a/math/test-femode.c
+++ b/math/test-femode.c
@@ -1,5 +1,5 @@
/* Test femode_t functions.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <stdio.h>
diff --git a/math/test-fenv-clear-main.c b/math/test-fenv-clear-main.c
index f2dab92c4f..1430604288 100644
--- a/math/test-fenv-clear-main.c
+++ b/math/test-fenv-clear-main.c
@@ -1,6 +1,6 @@
/* Test fesetenv (FE_DFL_ENV) and fesetenv (FE_NOMASK_ENV) clear
exceptions (bug 19181).
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <float.h>
diff --git a/math/test-fenv-preserve.c b/math/test-fenv-preserve.c
index ee64a0af47..e8c099816c 100644
--- a/math/test-fenv-preserve.c
+++ b/math/test-fenv-preserve.c
@@ -1,5 +1,5 @@
/* Test fegetenv preserves exception mask (bug 16198).
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <stdio.h>
diff --git a/math/test-fenv-return.c b/math/test-fenv-return.c
index c614ad46ca..fcceff1c27 100644
--- a/math/test-fenv-return.c
+++ b/math/test-fenv-return.c
@@ -1,5 +1,5 @@
/* Test return value when setting FE_NOMASK_ENV (BZ16918, BZ17009).
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <stdio.h>
diff --git a/math/test-fenv-tls.c b/math/test-fenv-tls.c
index afff08fb77..a2bb816873 100644
--- a/math/test-fenv-tls.c
+++ b/math/test-fenv-tls.c
@@ -1,5 +1,5 @@
/* Test floating-point environment is thread-local.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <pthread.h>
diff --git a/math/test-fenv.c b/math/test-fenv.c
index 606f768332..688b6d9878 100644
--- a/math/test-fenv.c
+++ b/math/test-fenv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de> and
Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Tests for ISO C99 7.6: Floating-point environment */
@@ -49,8 +49,8 @@
#define OVERFLOW_EXC 0x08
#define INVALID_EXC 0x10
#define ALL_EXC \
- (INEXACT_EXC | DIVBYZERO_EXC | UNDERFLOW_EXC | OVERFLOW_EXC | \
- INVALID_EXC)
+ (INEXACT_EXC | DIVBYZERO_EXC | UNDERFLOW_EXC | OVERFLOW_EXC \
+ | INVALID_EXC)
static int count_errors;
diff --git a/math/test-fenvinline.c b/math/test-fenvinline.c
index 64baf13aae..3d1f127344 100644
--- a/math/test-fenvinline.c
+++ b/math/test-fenvinline.c
@@ -1,5 +1,5 @@
/* Test for fenv inline implementations.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _GNU_SOURCE
# define _GNU_SOURCE
@@ -38,8 +38,8 @@
#define OVERFLOW_EXC 0x08
#define INVALID_EXC 0x10
#define ALL_EXC \
- (INEXACT_EXC | DIVBYZERO_EXC | UNDERFLOW_EXC | OVERFLOW_EXC | \
- INVALID_EXC)
+ (INEXACT_EXC | DIVBYZERO_EXC | UNDERFLOW_EXC | OVERFLOW_EXC \
+ | INVALID_EXC)
static int count_errors;
#if FE_ALL_EXCEPT
diff --git a/math/test-fesetexcept-traps.c b/math/test-fesetexcept-traps.c
index 4dad8a3488..2b25598817 100644
--- a/math/test-fesetexcept-traps.c
+++ b/math/test-fesetexcept-traps.c
@@ -1,5 +1,5 @@
/* Test fesetexcept: exception traps enabled.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <stdio.h>
diff --git a/math/test-fesetexcept.c b/math/test-fesetexcept.c
index 39a8e152e2..756e79d838 100644
--- a/math/test-fesetexcept.c
+++ b/math/test-fesetexcept.c
@@ -1,5 +1,5 @@
/* Test fesetexcept.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <stdio.h>
diff --git a/math/test-fetestexceptflag.c b/math/test-fetestexceptflag.c
index a14bbf70b8..c5ffd10e1c 100644
--- a/math/test-fetestexceptflag.c
+++ b/math/test-fetestexceptflag.c
@@ -1,5 +1,5 @@
/* Test fetestexceptflag.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <stdio.h>
diff --git a/math/test-fexcept-traps.c b/math/test-fexcept-traps.c
index f4fc5cef5b..97d9a93ca9 100644
--- a/math/test-fexcept-traps.c
+++ b/math/test-fexcept-traps.c
@@ -1,5 +1,5 @@
/* Test fegetexceptflag and fesetexceptflag: exception traps enabled.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <stdio.h>
diff --git a/math/test-fexcept.c b/math/test-fexcept.c
index d1dc171d08..68e4c68756 100644
--- a/math/test-fexcept.c
+++ b/math/test-fexcept.c
@@ -1,5 +1,5 @@
/* Test fegetexceptflag and fesetexceptflag.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <stdio.h>
diff --git a/math/test-finite-macros.c b/math/test-finite-macros.c
deleted file mode 100644
index ad4fa2b649..0000000000
--- a/math/test-finite-macros.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Test finite-math-only code does not conflict with user macros (bug 22028).
- Copyright (C) 2017-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-/* The main test is that the inclusion of <math.h> compiles. */
-#define f first test macro
-#define l second test macro
-#define f128 third test macro
-
-#include <math.h>
-
-volatile float a, b;
-
-static int
-do_test (void)
-{
- b = acosf (a);
- return 0;
-}
-
-#include <support/test-driver.c>
diff --git a/math/test-float-vlen16.h b/math/test-float-vlen16.h
index 268c8e67c0..4afa4d11c7 100644
--- a/math/test-float-vlen16.h
+++ b/math/test-float-vlen16.h
@@ -1,5 +1,5 @@
/* Definitions for float vector tests with vector length 16.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,13 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "test-float.h"
#include "test-math-no-inline.h"
#include "test-math-vector.h"
-#define ROUNDING_TESTS_float(MODE) ((MODE) == FE_TONEAREST)
-
#define VEC_SUFF _vlen16
#define VEC_LEN 16
diff --git a/math/test-float-vlen4.h b/math/test-float-vlen4.h
index 1da9f66c4d..8a6fd61f8f 100644
--- a/math/test-float-vlen4.h
+++ b/math/test-float-vlen4.h
@@ -1,5 +1,5 @@
/* Definitions for float vector tests with vector length 4.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,13 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "test-float.h"
#include "test-math-no-inline.h"
#include "test-math-vector.h"
-#define ROUNDING_TESTS_float(MODE) ((MODE) == FE_TONEAREST)
-
#define VEC_SUFF _vlen4
#define VEC_LEN 4
diff --git a/math/test-float-vlen8.h b/math/test-float-vlen8.h
index b44ed1c5b3..4a6e3955c8 100644
--- a/math/test-float-vlen8.h
+++ b/math/test-float-vlen8.h
@@ -1,5 +1,5 @@
/* Definitions for float vector tests with vector length 8.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,13 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "test-float.h"
#include "test-math-no-inline.h"
#include "test-math-vector.h"
-#define ROUNDING_TESTS_float(MODE) ((MODE) == FE_TONEAREST)
-
#define VEC_SUFF _vlen8
#define VEC_LEN 8
diff --git a/math/test-float.h b/math/test-float.h
index dc3646d008..f788d54d21 100644
--- a/math/test-float.h
+++ b/math/test-float.h
@@ -1,5 +1,5 @@
/* Common definitions for libm tests for float.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define FUNC(function) function ## f
#define FLOAT float
diff --git a/math/test-float128.h b/math/test-float128.h
index 376d3da11e..10b1fad5f5 100644
--- a/math/test-float128.h
+++ b/math/test-float128.h
@@ -1,6 +1,6 @@
/* Common definitions for libm tests for _Float128.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "test-math-floatn.h"
diff --git a/math/test-float32.h b/math/test-float32.h
index f319fe6268..358fb6e70e 100644
--- a/math/test-float32.h
+++ b/math/test-float32.h
@@ -1,6 +1,6 @@
/* Common definitions for libm tests for _Float32.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "test-math-floatn.h"
diff --git a/math/test-float32x.h b/math/test-float32x.h
index 2aadc4a674..becc2f0d38 100644
--- a/math/test-float32x.h
+++ b/math/test-float32x.h
@@ -1,6 +1,6 @@
/* Common definitions for libm tests for _Float32x.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "test-math-floatn.h"
diff --git a/math/test-float64.h b/math/test-float64.h
index debdf5aaf6..09109587f1 100644
--- a/math/test-float64.h
+++ b/math/test-float64.h
@@ -1,6 +1,6 @@
/* Common definitions for libm tests for _Float64.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "test-math-floatn.h"
diff --git a/math/test-float64x.h b/math/test-float64x.h
index bf1b934311..1a080c33a9 100644
--- a/math/test-float64x.h
+++ b/math/test-float64x.h
@@ -1,6 +1,6 @@
/* Common definitions for libm tests for _Float64x.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "test-math-floatn.h"
diff --git a/math/test-flt-eval-method.c b/math/test-flt-eval-method.c
index 092531ec78..60a4289548 100644
--- a/math/test-flt-eval-method.c
+++ b/math/test-flt-eval-method.c
@@ -1,5 +1,5 @@
/* Test evaluation method typedefs match FLT_EVAL_METHOD.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <float.h>
#include <math.h>
diff --git a/math/test-fp-ilogb-constants.c b/math/test-fp-ilogb-constants.c
index 2bfb1a5453..e6d2b9c314 100644
--- a/math/test-fp-ilogb-constants.c
+++ b/math/test-fp-ilogb-constants.c
@@ -1,5 +1,5 @@
/* Test requirements on FP_ILOGB* constants.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <limits.h>
#include <math.h>
diff --git a/math/test-fp-llogb-constants.c b/math/test-fp-llogb-constants.c
index d5fa2474e5..18d9059d7f 100644
--- a/math/test-fp-llogb-constants.c
+++ b/math/test-fp-llogb-constants.c
@@ -1,5 +1,5 @@
/* Test requirements on FP_LLOGB* constants.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <limits.h>
#include <math.h>
diff --git a/math/test-fpucw-ieee.c b/math/test-fpucw-ieee.c
index 4c86737956..7e0e283e71 100644
--- a/math/test-fpucw-ieee.c
+++ b/math/test-fpucw-ieee.c
@@ -1,5 +1,5 @@
/* FPU control word overridden initialization test.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifdef _FPU_IEEE
/* Some architectures don't have _FPU_IEEE. */
diff --git a/math/test-fpucw.c b/math/test-fpucw.c
index 3c2e4c47ac..ff2cd10cda 100644
--- a/math/test-fpucw.c
+++ b/math/test-fpucw.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fpu_control.h>
#include <stdio.h>
diff --git a/math/test-iseqsig-excess-precision.c b/math/test-iseqsig-excess-precision.c
index bc43c1a8b1..81e975efa0 100644
--- a/math/test-iseqsig-excess-precision.c
+++ b/math/test-iseqsig-excess-precision.c
@@ -1,5 +1,5 @@
/* Test iseqsig with excess precision.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <float.h>
#include <math.h>
diff --git a/math/test-iszero-excess-precision.c b/math/test-iszero-excess-precision.c
index b3cbc91ea4..e157681d0f 100644
--- a/math/test-iszero-excess-precision.c
+++ b/math/test-iszero-excess-precision.c
@@ -1,5 +1,5 @@
/* Test iszero with excess precision.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <float.h>
#include <math.h>
diff --git a/math/test-ldouble.h b/math/test-ldouble.h
index 7bd80f38bd..539064fbd9 100644
--- a/math/test-ldouble.h
+++ b/math/test-ldouble.h
@@ -1,5 +1,5 @@
/* Common definitions for libm tests for long double.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <float.h>
diff --git a/math/test-math-cxx11.cc b/math/test-math-cxx11.cc
index b737b91de9..b515125196 100644
--- a/math/test-math-cxx11.cc
+++ b/math/test-math-cxx11.cc
@@ -1,5 +1,5 @@
/* Test C99 math functions are available in C++11 without _GNU_SOURCE.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#undef _GNU_SOURCE
#undef _DEFAULT_SOURCE
diff --git a/math/test-math-errno.h b/math/test-math-errno.h
index e200c3f442..ca4aca798f 100644
--- a/math/test-math-errno.h
+++ b/math/test-math-errno.h
@@ -1,5 +1,5 @@
/* Common definitions for libm tests for functions setting errno.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_ERRNO 1
diff --git a/math/test-math-exceptions.h b/math/test-math-exceptions.h
new file mode 100644
index 0000000000..7063714f43
--- /dev/null
+++ b/math/test-math-exceptions.h
@@ -0,0 +1,19 @@
+/* Common definitions for libm tests for exceptions.
+ Copyright (C) 1997-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
+ <https://www.gnu.org/licenses/>. */
+
+#define TEST_EXCEPTIONS 1
diff --git a/math/test-math-finite.h b/math/test-math-finite.h
deleted file mode 100644
index a6a3f4840d..0000000000
--- a/math/test-math-finite.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Common definitions for libm tests for finite-math-only.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#define TEST_FINITE 1
-#define TEST_ERRNO 0
-#define TEST_EXCEPTIONS 1
diff --git a/math/test-math-floatn.h b/math/test-math-floatn.h
index 973e8d364a..03e0fbc249 100644
--- a/math/test-math-floatn.h
+++ b/math/test-math-floatn.h
@@ -1,5 +1,5 @@
/* Common definitions for libm tests for TS 18661-3 derived types.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_FLOATN 1
#define __STDC_WANT_IEC_60559_TYPES_EXT__
diff --git a/math/test-math-inline.h b/math/test-math-inline.h
index 84513576c1..684645238f 100644
--- a/math/test-math-inline.h
+++ b/math/test-math-inline.h
@@ -1,5 +1,5 @@
/* Common definitions for libm tests for inline functions.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,10 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_INLINE 1
-#define TEST_FINITE 0
#define TEST_ERRNO 0
#define TEST_EXCEPTIONS 0
diff --git a/math/test-math-iscanonical.cc b/math/test-math-iscanonical.cc
index 07b75d054a..6254d8d862 100644
--- a/math/test-math-iscanonical.cc
+++ b/math/test-math-iscanonical.cc
@@ -1,5 +1,5 @@
/* Test for the C++ implementation of iscanonical.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _GNU_SOURCE 1
#include <math.h>
diff --git a/math/test-math-iseqsig.cc b/math/test-math-iseqsig.cc
index 647ec0f917..d29b1cee58 100644
--- a/math/test-math-iseqsig.cc
+++ b/math/test-math-iseqsig.cc
@@ -1,5 +1,5 @@
/* Test for the C++ implementation of iseqsig.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _GNU_SOURCE 1
#include <math.h>
diff --git a/math/test-math-isinff.cc b/math/test-math-isinff.cc
index 49b88262fa..df21a7fbb2 100644
--- a/math/test-math-isinff.cc
+++ b/math/test-math-isinff.cc
@@ -1,5 +1,5 @@
/* Test for bug 19439.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Marek Polacek <polacek@redhat.com>, 2012.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _GNU_SOURCE 1
#include <math.h>
diff --git a/math/test-math-issignaling.cc b/math/test-math-issignaling.cc
index 96e29f1d63..115df896e7 100644
--- a/math/test-math-issignaling.cc
+++ b/math/test-math-issignaling.cc
@@ -1,5 +1,5 @@
/* Test for the C++ implementation of issignaling.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _GNU_SOURCE 1
#include <math.h>
diff --git a/math/test-math-iszero.cc b/math/test-math-iszero.cc
index d0417bec69..7bd6a82bca 100644
--- a/math/test-math-iszero.cc
+++ b/math/test-math-iszero.cc
@@ -1,5 +1,5 @@
/* Test for the C++ implementation of iszero.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _GNU_SOURCE 1
#include <math.h>
diff --git a/math/test-math-narrow.h b/math/test-math-narrow.h
index 1c7fa30e98..8b265994fc 100644
--- a/math/test-math-narrow.h
+++ b/math/test-math-narrow.h
@@ -1,5 +1,5 @@
/* Common definitions for libm tests for narrowing scalar functions.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define FUNC_TEST(function) \
FUNC_TEST_CONCAT (FUNC_NARROW_PREFIX, function, FUNC_NARROW_SUFFIX)
diff --git a/math/test-math-no-finite.h b/math/test-math-no-finite.h
deleted file mode 100644
index aedde3cd83..0000000000
--- a/math/test-math-no-finite.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Common definitions for libm tests for no-finite-math-only.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#define TEST_FINITE 0
-#define TEST_EXCEPTIONS 1
diff --git a/math/test-math-no-inline.h b/math/test-math-no-inline.h
index 18ed00b8b5..8f8f60c667 100644
--- a/math/test-math-no-inline.h
+++ b/math/test-math-no-inline.h
@@ -1,5 +1,5 @@
/* Common definitions for libm tests for non-inline functions.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_INLINE 0
diff --git a/math/test-math-scalar.h b/math/test-math-scalar.h
index 8df0d5ddc5..b84ff7cda3 100644
--- a/math/test-math-scalar.h
+++ b/math/test-math-scalar.h
@@ -1,5 +1,5 @@
/* Common definitions for libm tests for scalar (non-narrowing) functions.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define FUNC_TEST(function) FUNC (function)
#define TEST_MATHVEC 0
diff --git a/math/test-math-vector.h b/math/test-math-vector.h
index 43d01d064a..110e2c0b53 100644
--- a/math/test-math-vector.h
+++ b/math/test-math-vector.h
@@ -1,5 +1,5 @@
/* Common definitions for libm tests for vector functions.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,11 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_MATHVEC 1
#define TEST_NARROW 0
-#define TEST_FINITE 0
#define TEST_ERRNO 0
#define TEST_EXCEPTIONS 0
diff --git a/math/test-matherr-2.c b/math/test-matherr-2.c
index 51013e0a9c..e0393b416e 100644
--- a/math/test-matherr-2.c
+++ b/math/test-matherr-2.c
@@ -1,5 +1,5 @@
/* Test matherr (compat symbols, binary defines own _LIB_VERSION).
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <stdio.h>
diff --git a/math/test-matherr-3.c b/math/test-matherr-3.c
index 100d4f50bc..cd95607e25 100644
--- a/math/test-matherr-3.c
+++ b/math/test-matherr-3.c
@@ -1,5 +1,5 @@
/* Test matherr not supported for new binaries.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <stdio.h>
diff --git a/math/test-matherr.c b/math/test-matherr.c
index 4dc2af9d5c..da8bc14c5c 100644
--- a/math/test-matherr.c
+++ b/math/test-matherr.c
@@ -1,5 +1,5 @@
/* Test matherr (compat symbols, binary modifies library's _LIB_VERSION).
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <stdio.h>
diff --git a/math/test-misc.c b/math/test-misc.c
index c5cfb342db..7edf93d67f 100644
--- a/math/test-misc.c
+++ b/math/test-misc.c
@@ -1,5 +1,5 @@
/* Miscellaneous tests which don't fit anywhere else.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <float.h>
@@ -976,11 +976,13 @@ do_test (void)
puts ("scalbl (LDBL_MIN, 2147483647) returns -Inf");
result = 1;
}
+# ifdef FE_UNDERFLOW
else if (fetestexcept (FE_UNDERFLOW))
{
puts ("scalbl (LDBL_MIN, 2147483647) raises underflow exception");
result = 1;
}
+# endif
feclearexcept (FE_ALL_EXCEPT);
r = scalbl (LDBL_MAX, -2147483647);
@@ -994,11 +996,13 @@ do_test (void)
puts ("scalbl (LDBL_MAX, -2147483647) returns -Inf");
result = 1;
}
+# ifdef FE_OVERFLOW
else if (fetestexcept (FE_OVERFLOW))
{
puts ("scalbl (LDBL_MAX, -2147483647) raises overflow exception");
result = 1;
}
+# endif
}
#endif
@@ -1178,6 +1182,7 @@ do_test (void)
}
}
+# ifdef FE_UPWARD
volatile long double ld7 = nextafterl (0.0L, 1.0L);
volatile double d7;
(void) &ld7;
@@ -1195,6 +1200,7 @@ do_test (void)
else
puts ("ignoring this failure");
}
+# endif
# endif
#endif
diff --git a/math/test-nan-const.c b/math/test-nan-const.c
index f7bba9eeb6..c94233c07a 100644
--- a/math/test-nan-const.c
+++ b/math/test-nan-const.c
@@ -1,5 +1,5 @@
/* Test nan functions do not have const attribute. Bug 23277.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <string.h>
diff --git a/math/test-nan-overflow.c b/math/test-nan-overflow.c
index e410cb85d7..21c1b23f33 100644
--- a/math/test-nan-overflow.c
+++ b/math/test-nan-overflow.c
@@ -1,5 +1,5 @@
/* Test nan functions stack overflow (bug 16962).
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <stdio.h>
diff --git a/math/test-nan-payload.c b/math/test-nan-payload.c
index e23db7bc82..86fd19a5b1 100644
--- a/math/test-nan-payload.c
+++ b/math/test-nan-payload.c
@@ -1,5 +1,5 @@
/* Test nan functions payload handling (bug 16961).
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <float.h>
#include <math.h>
diff --git a/math/test-narrow-macros.c b/math/test-narrow-macros.c
index f53c86ae16..a55a83f8c0 100644
--- a/math/test-narrow-macros.c
+++ b/math/test-narrow-macros.c
@@ -1,5 +1,5 @@
/* Test code declaring narrowing functions does not conflict with user macros.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* The code generating declarations of narrowing functions involves
concatenations of fragments of function names that are not
diff --git a/math/test-nearbyint-except-2.c b/math/test-nearbyint-except-2.c
index b3320096df..d7530d02e2 100644
--- a/math/test-nearbyint-except-2.c
+++ b/math/test-nearbyint-except-2.c
@@ -1,5 +1,5 @@
/* Test nearbyint functions do not disable exception traps (bug 19228).
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <math.h>
diff --git a/math/test-nearbyint-except.c b/math/test-nearbyint-except.c
index 42f5fa84cd..6aa408eb68 100644
--- a/math/test-nearbyint-except.c
+++ b/math/test-nearbyint-except.c
@@ -1,5 +1,5 @@
/* Test nearbyint functions do not clear exceptions (bug 15491).
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <math.h>
diff --git a/math/test-powl.c b/math/test-powl.c
index c908948673..d87cff3753 100644
--- a/math/test-powl.c
+++ b/math/test-powl.c
@@ -1,5 +1,5 @@
/* Test for powl
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ 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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <math.h>
diff --git a/math/test-signgam-finite-c11.c b/math/test-signgam-finite-c11.c
deleted file mode 100644
index dff132df93..0000000000
--- a/math/test-signgam-finite-c11.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "test-signgam-finite-c99.c"
diff --git a/math/test-signgam-finite-c99.c b/math/test-signgam-finite-c99.c
deleted file mode 100644
index ec16c85276..0000000000
--- a/math/test-signgam-finite-c99.c
+++ /dev/null
@@ -1,63 +0,0 @@
-/* Test lgamma functions do not set signgam for -ffinite-math-only for ISO C.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#undef _LIBC
-#undef __LIBC_INTERNAL_MATH_INLINES
-#undef _GNU_SOURCE
-
-#include <math.h>
-#include <stdio.h>
-
-int signgam;
-
-#define RUN_TESTS(FUNC, TYPE) \
- do \
- { \
- volatile TYPE a, b, c __attribute__ ((unused)); \
- a = 0.5; \
- b = -0.5; \
- signgam = 123; \
- c = FUNC (a); \
- if (signgam == 123) \
- puts ("PASS: " #FUNC " (0.5) setting signgam"); \
- else \
- { \
- puts ("FAIL: " #FUNC " (0.5) setting signgam"); \
- result = 1; \
- } \
- signgam = 123; \
- c = FUNC (b); \
- if (signgam == 123) \
- puts ("PASS: " #FUNC " (-0.5) setting signgam"); \
- else \
- { \
- puts ("FAIL: " #FUNC " (-0.5) setting signgam"); \
- result = 1; \
- } \
- } \
- while (0)
-
-int
-main (void)
-{
- int result = 0;
- RUN_TESTS (lgammaf, float);
- RUN_TESTS (lgamma, double);
- RUN_TESTS (lgammal, long double);
- return result;
-}
diff --git a/math/test-signgam-finite.c b/math/test-signgam-finite.c
deleted file mode 100644
index a133da7d3b..0000000000
--- a/math/test-signgam-finite.c
+++ /dev/null
@@ -1,63 +0,0 @@
-/* Test lgamma functions set signgam for -ffinite-math-only (bug 19211).
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-#include <stdio.h>
-
-#define RUN_TESTS(FUNC, TYPE) \
- do \
- { \
- volatile TYPE a, b, c __attribute__ ((unused)); \
- a = 0.5; \
- b = -0.5; \
- signgam = 123; \
- c = FUNC (a); \
- if (signgam == 1) \
- puts ("PASS: " #FUNC " (0.5) setting signgam"); \
- else \
- { \
- puts ("FAIL: " #FUNC " (0.5) setting signgam"); \
- result = 1; \
- } \
- signgam = 123; \
- c = FUNC (b); \
- if (signgam == -1) \
- puts ("PASS: " #FUNC " (-0.5) setting signgam"); \
- else \
- { \
- puts ("FAIL: " #FUNC " (-0.5) setting signgam"); \
- result = 1; \
- } \
- } \
- while (0)
-
-static int
-do_test (void)
-{
- int result = 0;
- RUN_TESTS (lgammaf, float);
- RUN_TESTS (gammaf, float);
- RUN_TESTS (lgamma, double);
- RUN_TESTS (gamma, double);
- RUN_TESTS (lgammal, long double);
- RUN_TESTS (gammal, long double);
- return result;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/math/test-signgam-main.c b/math/test-signgam-main.c
index 1f8d6b31d4..ee054581d4 100644
--- a/math/test-signgam-main.c
+++ b/math/test-signgam-main.c
@@ -1,5 +1,5 @@
/* Test lgamma functions do not set signgam for ISO C.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#undef _LIBC
#undef __LIBC_INTERNAL_MATH_INLINES
diff --git a/math/test-snan.c b/math/test-snan.c
index e22977fad6..20a738dcfa 100644
--- a/math/test-snan.c
+++ b/math/test-snan.c
@@ -1,5 +1,5 @@
/* Test signaling NaNs in issignaling, isnan, isinf, and similar functions.
- Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ Copyright (C) 2008-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _GNU_SOURCE 1
#include <stdio.h>
diff --git a/math/test-tgmath-int.c b/math/test-tgmath-int.c
index 88a6b007db..4aeee3ae05 100644
--- a/math/test-tgmath-int.c
+++ b/math/test-tgmath-int.c
@@ -1,5 +1,5 @@
/* Test compilation of tgmath macros.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <complex.h>
diff --git a/math/test-tgmath-ret.c b/math/test-tgmath-ret.c
index 227890f025..4565870d40 100644
--- a/math/test-tgmath-ret.c
+++ b/math/test-tgmath-ret.c
@@ -1,5 +1,5 @@
/* Test compilation of tgmath macros.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <complex.h>
@@ -84,7 +84,7 @@ do_test (void)
check_return_fromfpx ();
check_return_ufromfpx ();
- printf ("%Zd\n", sizeof(carg (lx)));
+ printf ("%Zd\n", sizeof (carg (lx)));
return errors != 0;
}
diff --git a/math/test-tgmath.c b/math/test-tgmath.c
index 2b0787cd4a..1aea3d08e5 100644
--- a/math/test-tgmath.c
+++ b/math/test-tgmath.c
@@ -1,5 +1,5 @@
/* Test compilation of tgmath macros.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com> and
Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef HAVE_MAIN
#undef __NO_MATH_INLINES
@@ -52,7 +52,7 @@ volatile int count_cdouble;
volatile int count_cfloat;
volatile int count_cldouble;
-#define NCALLS 134
+#define NCALLS 132
#define NCALLS_INT 4
#define NCCALLS 47
@@ -295,8 +295,6 @@ F(compile_test) (void)
b = fmaxmag (fmaxmag (a, x), fmaxmag (c, b));
a = fminmag (fminmag (x, a), fminmag (c, b));
b = fma (sin (a), sin (x), sin (c));
- a = totalorder (x, b);
- b = totalordermag (x, a);
#ifdef TEST_INT
a = atan2 (i, b);
@@ -400,8 +398,6 @@ F(compile_test) (void)
a = fmaxmag (y, y);
a = fminmag (y, y);
a = fma (y, y, y);
- a = totalorder (y, y);
- a = totalordermag (y, y);
#ifdef TEST_INT
a = atan2 (i, y);
@@ -959,22 +955,6 @@ TYPE
return x + y + z;
}
-int
-(F(totalorder)) (TYPE x, TYPE y)
-{
- ++count;
- P ();
- return x + y;
-}
-
-int
-(F(totalordermag)) (TYPE x, TYPE y)
-{
- ++count;
- P ();
- return x + y;
-}
-
complex TYPE
(F(cacos)) (complex TYPE x)
{
diff --git a/math/test-tgmath2.c b/math/test-tgmath2.c
index 5e74eab6ff..5f9fb4a061 100644
--- a/math/test-tgmath2.c
+++ b/math/test-tgmath2.c
@@ -1,5 +1,5 @@
/* Test compilation of tgmath macros.
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef HAVE_MAIN
#undef __NO_MATH_INLINES
diff --git a/math/tgmath.h b/math/tgmath.h
index a709a59d0f..bf9ba26abe 100644
--- a/math/tgmath.h
+++ b/math/tgmath.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* ISO C99 Standard: 7.22 Type-generic math <tgmath.h>
@@ -43,6 +43,25 @@
#if __GNUC_PREREQ (2, 7)
+/* Certain cases of narrowing macros only need to call a single
+ function so cannot use __builtin_tgmath and do not need any
+ complicated logic. */
+# if __HAVE_FLOAT128X
+# error "Unsupported _Float128x type for <tgmath.h>."
+# endif
+# if ((__HAVE_FLOAT64X && !__HAVE_FLOAT128) \
+ || (__HAVE_FLOAT128 && !__HAVE_FLOAT64X))
+# error "Unsupported combination of types for <tgmath.h>."
+# endif
+# define __TGMATH_2_NARROW_D(F, X, Y) \
+ (F ## l (X, Y))
+# define __TGMATH_2_NARROW_F64X(F, X, Y) \
+ (F ## f128 (X, Y))
+# if !__HAVE_FLOAT128
+# define __TGMATH_2_NARROW_F32X(F, X, Y) \
+ (F ## f64 (X, Y))
+# endif
+
# if __HAVE_BUILTIN_TGMATH
# if __HAVE_FLOAT16 && __GLIBC_USE (IEC_60559_TYPES_EXT)
@@ -94,6 +113,33 @@
# define __TGMATH_2C(F, C, X, Y) __builtin_tgmath (__TGMATH_RCFUNCS (F, C) \
(X), (Y))
+# define __TGMATH_NARROW_FUNCS_F(X) X, X ## l,
+# define __TGMATH_NARROW_FUNCS_F16(X) \
+ __TG_F32_ARG (X) __TG_F64_ARG (X) __TG_F128_ARG (X) \
+ __TG_F32X_ARG (X) __TG_F64X_ARG (X) __TG_F128X_ARG (X)
+# define __TGMATH_NARROW_FUNCS_F32(X) \
+ __TG_F64_ARG (X) __TG_F128_ARG (X) \
+ __TG_F32X_ARG (X) __TG_F64X_ARG (X) __TG_F128X_ARG (X)
+# define __TGMATH_NARROW_FUNCS_F64(X) \
+ __TG_F128_ARG (X) \
+ __TG_F64X_ARG (X) __TG_F128X_ARG (X)
+# define __TGMATH_NARROW_FUNCS_F32X(X) \
+ __TG_F64X_ARG (X) __TG_F128X_ARG (X) \
+ __TG_F64_ARG (X) __TG_F128_ARG (X)
+
+# define __TGMATH_2_NARROW_F(F, X, Y) \
+ __builtin_tgmath (__TGMATH_NARROW_FUNCS_F (F) (X), (Y))
+# define __TGMATH_2_NARROW_F16(F, X, Y) \
+ __builtin_tgmath (__TGMATH_NARROW_FUNCS_F16 (F) (X), (Y))
+# define __TGMATH_2_NARROW_F32(F, X, Y) \
+ __builtin_tgmath (__TGMATH_NARROW_FUNCS_F32 (F) (X), (Y))
+# define __TGMATH_2_NARROW_F64(F, X, Y) \
+ __builtin_tgmath (__TGMATH_NARROW_FUNCS_F64 (F) (X), (Y))
+# if __HAVE_FLOAT128
+# define __TGMATH_2_NARROW_F32X(F, X, Y) \
+ __builtin_tgmath (__TGMATH_NARROW_FUNCS_F32X (F) (X), (Y))
+# endif
+
# else /* !__HAVE_BUILTIN_TGMATH. */
# ifdef __NO_LONG_DOUBLE_MATH
@@ -230,8 +276,6 @@
__TGMATH_2 (Fct, (Val1), (Val2))
# define __TGMATH_BINARY_REAL_STD_ONLY(Val1, Val2, Fct) \
__TGMATH_2STD (Fct, (Val1), (Val2))
-# define __TGMATH_BINARY_REAL_RET_ONLY(Val1, Val2, Fct) \
- __TGMATH_2 (Fct, (Val1), (Val2))
# define __TGMATH_TERNARY_FIRST_SECOND_REAL_ONLY(Val1, Val2, Val3, Fct) \
__TGMATH_3 (Fct, (Val1), (Val2), (Val3))
# define __TGMATH_TERNARY_REAL_ONLY(Val1, Val2, Val3, Fct) \
@@ -326,18 +370,6 @@
+ (__tgmath_real_type (Val2)) 0)) \
Fct##f (Val1, Val2)))
-# define __TGMATH_BINARY_REAL_RET_ONLY(Val1, Val2, Fct) \
- (__extension__ ((sizeof ((Val1) + (Val2)) > sizeof (double) \
- && __builtin_classify_type ((Val1) + (Val2)) == 8) \
- ? __TGMATH_F128 ((Val1) + (Val2), Fct, (Val1, Val2)) \
- __tgml(Fct) (Val1, Val2) \
- : (sizeof (+(Val1)) == sizeof (double) \
- || sizeof (+(Val2)) == sizeof (double) \
- || __builtin_classify_type (Val1) != 8 \
- || __builtin_classify_type (Val2) != 8) \
- ? Fct (Val1, Val2) \
- : Fct##f (Val1, Val2)))
-
# define __TGMATH_TERNARY_FIRST_SECOND_REAL_ONLY(Val1, Val2, Val3, Fct) \
(__extension__ ((sizeof ((Val1) + (Val2)) > sizeof (double) \
&& __builtin_classify_type ((Val1) + (Val2)) == 8) \
@@ -507,6 +539,65 @@
: (__typeof ((__tgmath_complex_type (Val1)) 0 \
+ (__tgmath_complex_type (Val2)) 0)) \
Cfct##f (Val1, Val2))))
+
+# define __TGMATH_2_NARROW_F(F, X, Y) \
+ (__extension__ (sizeof ((__tgmath_real_type (X)) 0 \
+ + (__tgmath_real_type (Y)) 0) > sizeof (double) \
+ ? F ## l (X, Y) \
+ : F (X, Y)))
+/* In most cases, these narrowing macro definitions based on sizeof
+ ensure that the function called has the right argument format, as
+ for other <tgmath.h> macros for compilers before GCC 8, but may not
+ have exactly the argument type (among the types with that format)
+ specified in the standard logic.
+
+ In the case of macros for _Float32x return type, when _Float64x
+ exists, _Float64 arguments should result in the *f64 function being
+ called while _Float32x arguments should result in the *f64x
+ function being called. These cases cannot be distinguished using
+ sizeof (or at all if the types are typedefs rather than different
+ types). However, for these functions it is OK (does not affect the
+ final result) to call a function with any argument format at least
+ as wide as all the floating-point arguments, unless that affects
+ rounding of integer arguments. Integer arguments are considered to
+ have type _Float64, so the *f64 functions are preferred for f32x*
+ macros when no argument has a wider floating-point type. */
+# if __HAVE_FLOAT64X_LONG_DOUBLE && __HAVE_DISTINCT_FLOAT128
+# define __TGMATH_2_NARROW_F32(F, X, Y) \
+ (__extension__ (sizeof ((__tgmath_real_type (X)) 0 \
+ + (__tgmath_real_type (Y)) 0) > sizeof (_Float64) \
+ ? __TGMATH_F128 ((X) + (Y), F, (X, Y)) \
+ F ## f64x (X, Y) \
+ : F ## f64 (X, Y)))
+# define __TGMATH_2_NARROW_F64(F, X, Y) \
+ (__extension__ (sizeof ((__tgmath_real_type (X)) 0 \
+ + (__tgmath_real_type (Y)) 0) > sizeof (_Float64) \
+ ? __TGMATH_F128 ((X) + (Y), F, (X, Y)) \
+ F ## f64x (X, Y) \
+ : F ## f128 (X, Y)))
+# define __TGMATH_2_NARROW_F32X(F, X, Y) \
+ (__extension__ (sizeof ((__tgmath_real_type (X)) 0 \
+ + (__tgmath_real_type (Y)) 0) > sizeof (_Float64) \
+ ? __TGMATH_F128 ((X) + (Y), F, (X, Y)) \
+ F ## f64x (X, Y) \
+ : F ## f64 (X, Y)))
+# elif __HAVE_FLOAT128
+# define __TGMATH_2_NARROW_F32(F, X, Y) \
+ (__extension__ (sizeof ((__tgmath_real_type (X)) 0 \
+ + (__tgmath_real_type (Y)) 0) > sizeof (_Float64) \
+ ? F ## f128 (X, Y) \
+ : F ## f64 (X, Y)))
+# define __TGMATH_2_NARROW_F64(F, X, Y) \
+ (F ## f128 (X, Y))
+# define __TGMATH_2_NARROW_F32X(F, X, Y) \
+ (__extension__ (sizeof ((__tgmath_real_type (X)) 0 \
+ + (__tgmath_real_type (Y)) 0) > sizeof (_Float32x) \
+ ? F ## f64x (X, Y) \
+ : F ## f64 (X, Y)))
+# else
+# define __TGMATH_2_NARROW_F32(F, X, Y) \
+ (F ## f64 (X, Y))
+# endif
# endif /* !__HAVE_BUILTIN_TGMATH. */
#else
# error "Unsupported compiler; you cannot use <tgmath.h>"
@@ -661,7 +752,7 @@
prevailing rounding mode. */
#define rint(Val) __TGMATH_UNARY_REAL_ONLY (Val, rint)
-#if __GLIBC_USE (IEC_60559_BFP_EXT)
+#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
/* Return X - epsilon. */
# define nextdown(Val) __TGMATH_UNARY_REAL_ONLY (Val, nextdown)
/* Return X + epsilon. */
@@ -706,7 +797,7 @@
#define fma(Val1, Val2, Val3) \
__TGMATH_TERNARY_REAL_ONLY (Val1, Val2, Val3, fma)
-#if __GLIBC_USE (IEC_60559_BFP_EXT)
+#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
/* Round X to nearest integer value, rounding halfway cases to even. */
# define roundeven(Val) __TGMATH_UNARY_REAL_ONLY (Val, roundeven)
@@ -730,14 +821,6 @@
/* Return value with minimum magnitude. */
# define fminmag(Val1, Val2) __TGMATH_BINARY_REAL_ONLY (Val1, Val2, fminmag)
-
-/* Total order operation. */
-# define totalorder(Val1, Val2) \
- __TGMATH_BINARY_REAL_RET_ONLY (Val1, Val2, totalorder)
-
-/* Total order operation on absolute values. */
-# define totalordermag(Val1, Val2) \
- __TGMATH_BINARY_REAL_RET_ONLY (Val1, Val2, totalordermag)
#endif
@@ -761,4 +844,66 @@
/* Real part of Z. */
#define creal(Val) __TGMATH_UNARY_REAL_IMAG_RET_REAL_SAME (Val, creal)
+
+/* Narrowing functions. */
+
+#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
+
+/* Add. */
+# define fadd(Val1, Val2) __TGMATH_2_NARROW_F (fadd, Val1, Val2)
+# define dadd(Val1, Val2) __TGMATH_2_NARROW_D (dadd, Val1, Val2)
+
+/* Divide. */
+# define fdiv(Val1, Val2) __TGMATH_2_NARROW_F (fdiv, Val1, Val2)
+# define ddiv(Val1, Val2) __TGMATH_2_NARROW_D (ddiv, Val1, Val2)
+
+/* Multiply. */
+# define fmul(Val1, Val2) __TGMATH_2_NARROW_F (fmul, Val1, Val2)
+# define dmul(Val1, Val2) __TGMATH_2_NARROW_D (dmul, Val1, Val2)
+
+/* Subtract. */
+# define fsub(Val1, Val2) __TGMATH_2_NARROW_F (fsub, Val1, Val2)
+# define dsub(Val1, Val2) __TGMATH_2_NARROW_D (dsub, Val1, Val2)
+
+#endif
+
+#if __GLIBC_USE (IEC_60559_TYPES_EXT)
+
+# if __HAVE_FLOAT16
+# define f16add(Val1, Val2) __TGMATH_2_NARROW_F16 (f16add, Val1, Val2)
+# define f16div(Val1, Val2) __TGMATH_2_NARROW_F16 (f16div, Val1, Val2)
+# define f16mul(Val1, Val2) __TGMATH_2_NARROW_F16 (f16mul, Val1, Val2)
+# define f16sub(Val1, Val2) __TGMATH_2_NARROW_F16 (f16sub, Val1, Val2)
+# endif
+
+# if __HAVE_FLOAT32
+# define f32add(Val1, Val2) __TGMATH_2_NARROW_F32 (f32add, Val1, Val2)
+# define f32div(Val1, Val2) __TGMATH_2_NARROW_F32 (f32div, Val1, Val2)
+# define f32mul(Val1, Val2) __TGMATH_2_NARROW_F32 (f32mul, Val1, Val2)
+# define f32sub(Val1, Val2) __TGMATH_2_NARROW_F32 (f32sub, Val1, Val2)
+# endif
+
+# if __HAVE_FLOAT64 && (__HAVE_FLOAT64X || __HAVE_FLOAT128)
+# define f64add(Val1, Val2) __TGMATH_2_NARROW_F64 (f64add, Val1, Val2)
+# define f64div(Val1, Val2) __TGMATH_2_NARROW_F64 (f64div, Val1, Val2)
+# define f64mul(Val1, Val2) __TGMATH_2_NARROW_F64 (f64mul, Val1, Val2)
+# define f64sub(Val1, Val2) __TGMATH_2_NARROW_F64 (f64sub, Val1, Val2)
+# endif
+
+# if __HAVE_FLOAT32X
+# define f32xadd(Val1, Val2) __TGMATH_2_NARROW_F32X (f32xadd, Val1, Val2)
+# define f32xdiv(Val1, Val2) __TGMATH_2_NARROW_F32X (f32xdiv, Val1, Val2)
+# define f32xmul(Val1, Val2) __TGMATH_2_NARROW_F32X (f32xmul, Val1, Val2)
+# define f32xsub(Val1, Val2) __TGMATH_2_NARROW_F32X (f32xsub, Val1, Val2)
+# endif
+
+# if __HAVE_FLOAT64X && (__HAVE_FLOAT128X || __HAVE_FLOAT128)
+# define f64xadd(Val1, Val2) __TGMATH_2_NARROW_F64X (f64xadd, Val1, Val2)
+# define f64xdiv(Val1, Val2) __TGMATH_2_NARROW_F64X (f64xdiv, Val1, Val2)
+# define f64xmul(Val1, Val2) __TGMATH_2_NARROW_F64X (f64xmul, Val1, Val2)
+# define f64xsub(Val1, Val2) __TGMATH_2_NARROW_F64X (f64xsub, Val1, Val2)
+# endif
+
+#endif
+
#endif /* tgmath.h */
diff --git a/math/tst-CMPLX2.c b/math/tst-CMPLX2.c
index 1659ac75b7..7beef18aa4 100644
--- a/math/tst-CMPLX2.c
+++ b/math/tst-CMPLX2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Marek Polacek <polacek@redhat.com>, 2012.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Adapted from gcc.dg/torture/builtin-complex-1.c test from GCC
testsuite written by Joseph S. Myers. */
diff --git a/math/tst-definitions.c b/math/tst-definitions.c
index 5f70276002..a0fcbca736 100644
--- a/math/tst-definitions.c
+++ b/math/tst-definitions.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <limits.h>
#include <math.h>
diff --git a/math/w_acos_compat.c b/math/w_acos_compat.c
index 079fdb271f..1ad59ea8a7 100644
--- a/math/w_acos_compat.c
+++ b/math/w_acos_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <math.h>
diff --git a/math/w_acos_template.c b/math/w_acos_template.c
index 76537b27de..4d9c1a75e1 100644
--- a/math/w_acos_template.c
+++ b/math/w_acos_template.c
@@ -1,5 +1,5 @@
/* Wrapper to set errno for acos.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Only build wrappers from the templates for the types that define the macro
below. This macro is set in math-type-macros-<type>.h in sysdeps/generic
diff --git a/math/w_acosf_compat.c b/math/w_acosf_compat.c
index efc09edb2a..30746d3e5e 100644
--- a/math/w_acosf_compat.c
+++ b/math/w_acosf_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <math.h>
diff --git a/math/w_acosh_compat.c b/math/w_acosh_compat.c
index 7bdb9e8cdc..a915f1ee75 100644
--- a/math/w_acosh_compat.c
+++ b/math/w_acosh_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/math/w_acosh_template.c b/math/w_acosh_template.c
index c0443c992e..53e7ac0540 100644
--- a/math/w_acosh_template.c
+++ b/math/w_acosh_template.c
@@ -1,5 +1,5 @@
/* Wrapper to set errno for acosh.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Only build wrappers from the templates for the types that define the macro
below. This macro is set in math-type-macros-<type>.h in sysdeps/generic
diff --git a/math/w_acoshf_compat.c b/math/w_acoshf_compat.c
index f6d50867a8..ac929ffcb1 100644
--- a/math/w_acoshf_compat.c
+++ b/math/w_acoshf_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/math/w_acoshl_compat.c b/math/w_acoshl_compat.c
index f2d4b6ae90..ed7e7559b5 100644
--- a/math/w_acoshl_compat.c
+++ b/math/w_acoshl_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/math/w_acosl_compat.c b/math/w_acosl_compat.c
index d630a10a40..dbba2971e3 100644
--- a/math/w_acosl_compat.c
+++ b/math/w_acosl_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <math.h>
diff --git a/math/w_asin_compat.c b/math/w_asin_compat.c
index c55913d304..0ffca2d8f5 100644
--- a/math/w_asin_compat.c
+++ b/math/w_asin_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <math.h>
diff --git a/math/w_asin_template.c b/math/w_asin_template.c
index 9487ada6ab..0dbd1b346f 100644
--- a/math/w_asin_template.c
+++ b/math/w_asin_template.c
@@ -1,5 +1,5 @@
/* Wrapper to set errno for asin.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Only build wrappers from the templates for the types that define the macro
below. This macro is set in math-type-macros-<type>.h in sysdeps/generic
diff --git a/math/w_asinf_compat.c b/math/w_asinf_compat.c
index 1fc18c2e91..5023a5d2f3 100644
--- a/math/w_asinf_compat.c
+++ b/math/w_asinf_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <math.h>
diff --git a/math/w_asinl_compat.c b/math/w_asinl_compat.c
index 6741138f74..24616e92cc 100644
--- a/math/w_asinl_compat.c
+++ b/math/w_asinl_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <math.h>
diff --git a/math/w_atan2_compat.c b/math/w_atan2_compat.c
index 056590cf56..5692316b86 100644
--- a/math/w_atan2_compat.c
+++ b/math/w_atan2_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* wrapper atan2(y,x)
diff --git a/math/w_atan2_template.c b/math/w_atan2_template.c
index bca55e363a..92d03f0f58 100644
--- a/math/w_atan2_template.c
+++ b/math/w_atan2_template.c
@@ -1,5 +1,5 @@
/* Wrapper to set errno for atan2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Only build wrappers from the templates for the types that define the macro
below. This macro is set in math-type-macros-<type>.h in sysdeps/generic
diff --git a/math/w_atan2f_compat.c b/math/w_atan2f_compat.c
index e8aa377879..71456d070d 100644
--- a/math/w_atan2f_compat.c
+++ b/math/w_atan2f_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* wrapper atan2f(y,x)
diff --git a/math/w_atan2l_compat.c b/math/w_atan2l_compat.c
index 94a3b48437..05c9095b17 100644
--- a/math/w_atan2l_compat.c
+++ b/math/w_atan2l_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* wrapper atan2l(y,x)
diff --git a/math/w_atanh_compat.c b/math/w_atanh_compat.c
index 4d37fe2809..c1d068dcdc 100644
--- a/math/w_atanh_compat.c
+++ b/math/w_atanh_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/math/w_atanh_template.c b/math/w_atanh_template.c
index 1e528256ff..b971ed80dc 100644
--- a/math/w_atanh_template.c
+++ b/math/w_atanh_template.c
@@ -1,5 +1,5 @@
/* Wrapper to set errno for atanh.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Only build wrappers from the templates for the types that define the macro
below. This macro is set in math-type-macros-<type>.h in sysdeps/generic
diff --git a/math/w_atanhf_compat.c b/math/w_atanhf_compat.c
index 0eec26faeb..a67d6b9ebd 100644
--- a/math/w_atanhf_compat.c
+++ b/math/w_atanhf_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/math/w_atanhl_compat.c b/math/w_atanhl_compat.c
index 37f761a148..e138ddc2cf 100644
--- a/math/w_atanhl_compat.c
+++ b/math/w_atanhl_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/math/w_cosh_compat.c b/math/w_cosh_compat.c
index 6941807d9b..30897185c9 100644
--- a/math/w_cosh_compat.c
+++ b/math/w_cosh_compat.c
@@ -1,4 +1,4 @@
-/* Optimizations bu Ulrich Drepper <drepper@gmail.com>, 2011 */
+/* Optimizations by Ulrich Drepper <drepper@gmail.com>, 2011 */
/*
* ====================================================
* Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
diff --git a/math/w_cosh_template.c b/math/w_cosh_template.c
index 2f1a631bf9..7aca49b6f2 100644
--- a/math/w_cosh_template.c
+++ b/math/w_cosh_template.c
@@ -1,5 +1,5 @@
/* Wrapper to set errno for cosh.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Only build wrappers from the templates for the types that define the macro
below. This macro is set in math-type-macros-<type>.h in sysdeps/generic
diff --git a/math/w_coshl_compat.c b/math/w_coshl_compat.c
index a97105020e..fc357f366e 100644
--- a/math/w_coshl_compat.c
+++ b/math/w_coshl_compat.c
@@ -1,7 +1,7 @@
/* w_acoshl.c -- long double version of w_acosh.c.
* Conversion to long double by Ulrich Drepper,
* Cygnus Support, drepper@cygnus.com.
- * Optimizations bu Ulrich Drepper <drepper@gmail.com>, 2011.
+ * Optimizations by Ulrich Drepper <drepper@gmail.com>, 2011.
*/
/*
diff --git a/math/w_exp.c b/math/w_exp.c
new file mode 100644
index 0000000000..9a18bd5c12
--- /dev/null
+++ b/math/w_exp.c
@@ -0,0 +1,8 @@
+#include <math-type-macros-double.h>
+#undef __USE_WRAPPER_TEMPLATE
+#define __USE_WRAPPER_TEMPLATE 1
+#undef declare_mgen_alias
+#define declare_mgen_alias(a, b)
+#include <w_exp_template.c>
+versioned_symbol (libm, __exp, exp, GLIBC_2_29);
+libm_alias_double_other (__exp, exp)
diff --git a/math/w_exp10_compat.c b/math/w_exp10_compat.c
index df569fdf09..7a2b8c5c49 100644
--- a/math/w_exp10_compat.c
+++ b/math/w_exp10_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
diff --git a/math/w_exp10_template.c b/math/w_exp10_template.c
index 74fd7eac32..34759fde3f 100644
--- a/math/w_exp10_template.c
+++ b/math/w_exp10_template.c
@@ -1,5 +1,5 @@
/* Wrapper to set errno for exp10.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Only build wrappers from the templates for the types that define the macro
below. This macro is set in math-type-macros-<type>.h in sysdeps/generic
diff --git a/math/w_exp10f_compat.c b/math/w_exp10f_compat.c
index c4a4ee507c..51bc994cd4 100644
--- a/math/w_exp10f_compat.c
+++ b/math/w_exp10f_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
diff --git a/math/w_exp10l_compat.c b/math/w_exp10l_compat.c
index 2dc3e6c89c..acc3e25be3 100644
--- a/math/w_exp10l_compat.c
+++ b/math/w_exp10l_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
diff --git a/math/w_exp2.c b/math/w_exp2.c
new file mode 100644
index 0000000000..6c848715fb
--- /dev/null
+++ b/math/w_exp2.c
@@ -0,0 +1,8 @@
+#include <math-type-macros-double.h>
+#undef __USE_WRAPPER_TEMPLATE
+#define __USE_WRAPPER_TEMPLATE 1
+#undef declare_mgen_alias
+#define declare_mgen_alias(a, b)
+#include <w_exp2_template.c>
+versioned_symbol (libm, __exp2, exp2, GLIBC_2_29);
+libm_alias_double_other (__exp2, exp2)
diff --git a/math/w_exp2_compat.c b/math/w_exp2_compat.c
index 7ab618292f..567383d001 100644
--- a/math/w_exp2_compat.c
+++ b/math/w_exp2_compat.c
@@ -7,9 +7,11 @@
#include <math-svid-compat.h>
#include <libm-alias-double.h>
-#if LIBM_SVID_COMPAT
+#if LIBM_SVID_COMPAT && (SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_29) \
+ || defined NO_LONG_DOUBLE \
+ || defined LONG_DOUBLE_COMPAT)
double
-__exp2 (double x)
+__exp2_compat (double x)
{
double z = __ieee754_exp2 (x);
if (__builtin_expect (!isfinite (z) || z == 0, 0)
@@ -19,5 +21,17 @@ __exp2 (double x)
return z;
}
-libm_alias_double (__exp2, exp2)
+# if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_29)
+compat_symbol (libm, __exp2_compat, exp2, GLIBC_2_1);
+# endif
+# ifdef NO_LONG_DOUBLE
+weak_alias (__exp2_compat, exp2l)
+# endif
+# ifdef LONG_DOUBLE_COMPAT
+/* Work around gas bug "multiple versions for symbol". */
+weak_alias (__exp2_compat, __exp2_compat_alias)
+
+LONG_DOUBLE_COMPAT_CHOOSE_libm_exp2l (
+ compat_symbol (libm, __exp2_compat_alias, exp2l, FIRST_VERSION_libm_exp2l), );
+# endif
#endif
diff --git a/math/w_exp2_template.c b/math/w_exp2_template.c
index ec62cee54f..cfa0eb6586 100644
--- a/math/w_exp2_template.c
+++ b/math/w_exp2_template.c
@@ -1,5 +1,5 @@
/* Wrapper to set errno for exp2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Only build wrappers from the templates for the types that define the macro
below. This macro is set in math-type-macros-<type>.h in sysdeps/generic
diff --git a/math/w_exp_compat.c b/math/w_exp_compat.c
index ccda100075..9a3761d4b4 100644
--- a/math/w_exp_compat.c
+++ b/math/w_exp_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
@@ -14,17 +14,19 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
#include <math-svid-compat.h>
#include <libm-alias-double.h>
-#if LIBM_SVID_COMPAT
+#if LIBM_SVID_COMPAT && (SHLIB_COMPAT (libm, GLIBC_2_0, GLIBC_2_29) \
+ || defined NO_LONG_DOUBLE \
+ || defined LONG_DOUBLE_COMPAT)
/* wrapper exp */
double
-__exp (double x)
+__exp_compat (double x)
{
double z = __ieee754_exp (x);
if (__builtin_expect (!isfinite (z) || z == 0, 0)
@@ -33,6 +35,17 @@ __exp (double x)
return z;
}
-libm_hidden_def (__exp)
-libm_alias_double (__exp, exp)
+# if SHLIB_COMPAT (libm, GLIBC_2_0, GLIBC_2_29)
+compat_symbol (libm, __exp_compat, exp, GLIBC_2_0);
+# endif
+# ifdef NO_LONG_DOUBLE
+weak_alias (__exp_compat, expl)
+# endif
+# ifdef LONG_DOUBLE_COMPAT
+/* Work around gas bug "multiple versions for symbol". */
+weak_alias (__exp_compat, __exp_compat_alias)
+
+LONG_DOUBLE_COMPAT_CHOOSE_libm_expl (
+ compat_symbol (libm, __exp_compat_alias, expl, FIRST_VERSION_libm_expl), );
+# endif
#endif
diff --git a/math/w_exp_template.c b/math/w_exp_template.c
index b24e4056a6..810d88e526 100644
--- a/math/w_exp_template.c
+++ b/math/w_exp_template.c
@@ -1,5 +1,5 @@
/* Wrapper to set errno for exp.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Only build wrappers from the templates for the types that define the macro
below. This macro is set in math-type-macros-<type>.h in sysdeps/generic
diff --git a/math/w_expf_compat.c b/math/w_expf_compat.c
index 787e31af5d..181fc21d8b 100644
--- a/math/w_expf_compat.c
+++ b/math/w_expf_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/math/w_fmod_compat.c b/math/w_fmod_compat.c
index f280fd1d08..19691fb73c 100644
--- a/math/w_fmod_compat.c
+++ b/math/w_fmod_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/math/w_fmod_template.c b/math/w_fmod_template.c
index c9bb36951b..0c424571b7 100644
--- a/math/w_fmod_template.c
+++ b/math/w_fmod_template.c
@@ -1,5 +1,5 @@
/* Wrapper to set errno for fmod.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Only build wrappers from the templates for the types that define the macro
below. This macro is set in math-type-macros-<type>.h in sysdeps/generic
diff --git a/math/w_fmodf_compat.c b/math/w_fmodf_compat.c
index 87b94ad7d4..2f7cf547f6 100644
--- a/math/w_fmodf_compat.c
+++ b/math/w_fmodf_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/math/w_fmodl_compat.c b/math/w_fmodl_compat.c
index 3474d94d43..278c3ff384 100644
--- a/math/w_fmodl_compat.c
+++ b/math/w_fmodl_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/math/w_hypot_template.c b/math/w_hypot_template.c
index 549e49aa0d..0e7bd79649 100644
--- a/math/w_hypot_template.c
+++ b/math/w_hypot_template.c
@@ -1,5 +1,5 @@
/* Wrapper to set errno for hypot.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Only build wrappers from the templates for the types that define the macro
below. This macro is set in math-type-macros-<type>.h in sysdeps/generic
diff --git a/math/w_ilogb_template.c b/math/w_ilogb_template.c
index 3e45f33b9c..a658dbbc2b 100644
--- a/math/w_ilogb_template.c
+++ b/math/w_ilogb_template.c
@@ -1,5 +1,5 @@
/* Wrapper to set errno for ilogb.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,12 +14,13 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <errno.h>
#include <limits.h>
#include <math_private.h>
+#include <fenv.h>
/* wrapper ilogb */
int
diff --git a/math/w_j0_compat.c b/math/w_j0_compat.c
index a298353ac4..fd0e348f68 100644
--- a/math/w_j0_compat.c
+++ b/math/w_j0_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <math.h>
diff --git a/math/w_j0_template.c b/math/w_j0_template.c
index d1a26173d7..48615d2e09 100644
--- a/math/w_j0_template.c
+++ b/math/w_j0_template.c
@@ -1,5 +1,5 @@
/* Wrapper to set errno for j0 and y0.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Only build wrappers from the templates for the types that define the macro
below. This macro is set in math-type-macros-<type>.h in sysdeps/generic
diff --git a/math/w_j0f_compat.c b/math/w_j0f_compat.c
index 41d3a10147..90d1c3a137 100644
--- a/math/w_j0f_compat.c
+++ b/math/w_j0f_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <math.h>
diff --git a/math/w_j0l_compat.c b/math/w_j0l_compat.c
index e436cb278b..5bbf55cc37 100644
--- a/math/w_j0l_compat.c
+++ b/math/w_j0l_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <math.h>
diff --git a/math/w_j1_compat.c b/math/w_j1_compat.c
index 3b014b8cfa..6e088edb1e 100644
--- a/math/w_j1_compat.c
+++ b/math/w_j1_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <math.h>
diff --git a/math/w_j1_template.c b/math/w_j1_template.c
index e3b1767883..138d0df17f 100644
--- a/math/w_j1_template.c
+++ b/math/w_j1_template.c
@@ -1,5 +1,5 @@
/* Wrapper to set errno for j1 and y1.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Only build wrappers from the templates for the types that define the macro
below. This macro is set in math-type-macros-<type>.h in sysdeps/generic
diff --git a/math/w_j1f_compat.c b/math/w_j1f_compat.c
index 5cfb6b9cd5..74f999687f 100644
--- a/math/w_j1f_compat.c
+++ b/math/w_j1f_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <math.h>
diff --git a/math/w_j1l_compat.c b/math/w_j1l_compat.c
index fb0adc68cb..9e1a20c25c 100644
--- a/math/w_j1l_compat.c
+++ b/math/w_j1l_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <math.h>
diff --git a/math/w_jn_compat.c b/math/w_jn_compat.c
index 8b546ba4a2..8bf51a81d8 100644
--- a/math/w_jn_compat.c
+++ b/math/w_jn_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <math.h>
diff --git a/math/w_jn_template.c b/math/w_jn_template.c
index 3b09acb6b1..5638e9310c 100644
--- a/math/w_jn_template.c
+++ b/math/w_jn_template.c
@@ -1,5 +1,5 @@
/* Wrapper to set errno for jn and yn.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Only build wrappers from the templates for the types that define the macro
below. This macro is set in math-type-macros-<type>.h in sysdeps/generic
diff --git a/math/w_jnf_compat.c b/math/w_jnf_compat.c
index 86386700de..0145e2d585 100644
--- a/math/w_jnf_compat.c
+++ b/math/w_jnf_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <math.h>
diff --git a/math/w_lgamma_main.c b/math/w_lgamma_main.c
index ac91b9d9e6..573bcb88fb 100644
--- a/math/w_lgamma_main.c
+++ b/math/w_lgamma_main.c
@@ -31,7 +31,7 @@ LGFUNC (__lgamma) (double x)
if(__builtin_expect(!isfinite(y), 0)
&& isfinite(x) && _LIB_VERSION != _IEEE_)
return __kernel_standard(x, x,
- __floor(x)==x&&x<=0.0
+ floor(x)==x&&x<=0.0
? 15 /* lgamma pole */
: 14); /* lgamma overflow */
diff --git a/math/w_lgamma_r_compat.c b/math/w_lgamma_r_compat.c
index 5b3ceaa2ea..c68ce67174 100644
--- a/math/w_lgamma_r_compat.c
+++ b/math/w_lgamma_r_compat.c
@@ -28,7 +28,7 @@ __lgamma_r(double x, int *signgamp)
if(__builtin_expect(!isfinite(y), 0)
&& isfinite(x) && _LIB_VERSION != _IEEE_)
return __kernel_standard(x, x,
- __floor(x)==x&&x<=0.0
+ floor(x)==x&&x<=0.0
? 15 /* lgamma pole */
: 14); /* lgamma overflow */
diff --git a/math/w_lgamma_r_template.c b/math/w_lgamma_r_template.c
index ca54e42b61..88ed284048 100644
--- a/math/w_lgamma_r_template.c
+++ b/math/w_lgamma_r_template.c
@@ -1,5 +1,5 @@
/* Wrapper to set errno for lgamma_r.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Only build wrappers from the templates for the types that define the macro
below. This macro is set in math-type-macros-<type>.h in sysdeps/generic
diff --git a/math/w_lgamma_template.c b/math/w_lgamma_template.c
index d52ccb1b7f..44a7f928f3 100644
--- a/math/w_lgamma_template.c
+++ b/math/w_lgamma_template.c
@@ -1,5 +1,5 @@
/* Wrapper to set errno for lgamma.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Only build wrappers from the templates for the types that define the macro
below. This macro is set in math-type-macros-<type>.h in sysdeps/generic
diff --git a/math/w_lgammaf_main.c b/math/w_lgammaf_main.c
index ef6065994f..2a85e3cadf 100644
--- a/math/w_lgammaf_main.c
+++ b/math/w_lgammaf_main.c
@@ -28,7 +28,7 @@ LGFUNC (__lgammaf) (float x)
if(__builtin_expect(!isfinite(y), 0)
&& isfinite(x) && _LIB_VERSION != _IEEE_)
return __kernel_standard_f(x, x,
- __floorf(x)==x&&x<=0.0f
+ floorf(x)==x&&x<=0.0f
? 115 /* lgamma pole */
: 114); /* lgamma overflow */
diff --git a/math/w_lgammaf_r_compat.c b/math/w_lgammaf_r_compat.c
index c7751f13f5..78fc4fcb23 100644
--- a/math/w_lgammaf_r_compat.c
+++ b/math/w_lgammaf_r_compat.c
@@ -31,7 +31,7 @@ __lgammaf_r(float x, int *signgamp)
if(__builtin_expect(!isfinite(y), 0)
&& isfinite(x) && _LIB_VERSION != _IEEE_)
return __kernel_standard_f(x, x,
- __floorf(x)==x&&x<=0.0f
+ floorf(x)==x&&x<=0.0f
? 115 /* lgamma pole */
: 114); /* lgamma overflow */
diff --git a/math/w_lgammal_main.c b/math/w_lgammal_main.c
index f269cef6ab..04440cd29f 100644
--- a/math/w_lgammal_main.c
+++ b/math/w_lgammal_main.c
@@ -35,7 +35,7 @@ LGFUNC (__lgammal) (long double x)
if(__builtin_expect(!isfinite(y), 0)
&& isfinite(x) && _LIB_VERSION != _IEEE_)
return __kernel_standard_l(x, x,
- __floorl(x)==x&&x<=0.0L
+ floorl(x)==x&&x<=0.0L
? 215 /* lgamma pole */
: 214); /* lgamma overflow */
diff --git a/math/w_lgammal_r_compat.c b/math/w_lgammal_r_compat.c
index 09a8070b46..6ebfa41333 100644
--- a/math/w_lgammal_r_compat.c
+++ b/math/w_lgammal_r_compat.c
@@ -32,7 +32,7 @@ __lgammal_r(long double x, int *signgamp)
if(__builtin_expect(!isfinite(y), 0)
&& isfinite(x) && _LIB_VERSION != _IEEE_)
return __kernel_standard(x, x,
- __floorl(x)==x&&x<=0.0
+ floorl(x)==x&&x<=0.0
? 215 /* lgamma pole */
: 214); /* lgamma overflow */
diff --git a/math/w_llogb_template.c b/math/w_llogb_template.c
index 8315ccd072..494a07eec0 100644
--- a/math/w_llogb_template.c
+++ b/math/w_llogb_template.c
@@ -1,5 +1,5 @@
/* Wrapper to implement llogb in terms of ilogb.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,12 +14,13 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <errno.h>
#include <limits.h>
#include <math_private.h>
+#include <fenv.h>
long int
M_DECL_FUNC (__llogb) (FLOAT x)
diff --git a/math/w_log.c b/math/w_log.c
new file mode 100644
index 0000000000..50065e302f
--- /dev/null
+++ b/math/w_log.c
@@ -0,0 +1,8 @@
+#include <math-type-macros-double.h>
+#undef __USE_WRAPPER_TEMPLATE
+#define __USE_WRAPPER_TEMPLATE 1
+#undef declare_mgen_alias
+#define declare_mgen_alias(a, b)
+#include <w_log_template.c>
+versioned_symbol (libm, __log, log, GLIBC_2_29);
+libm_alias_double_other (__log, log)
diff --git a/math/w_log10_compat.c b/math/w_log10_compat.c
index 87c155d256..117b4360f9 100644
--- a/math/w_log10_compat.c
+++ b/math/w_log10_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <math.h>
diff --git a/math/w_log10_template.c b/math/w_log10_template.c
index 37c22399c5..d0fd62d593 100644
--- a/math/w_log10_template.c
+++ b/math/w_log10_template.c
@@ -1,5 +1,5 @@
/* Wrapper to set errno for log10.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Only build wrappers from the templates for the types that define the macro
below. This macro is set in math-type-macros-<type>.h in sysdeps/generic
diff --git a/math/w_log10f_compat.c b/math/w_log10f_compat.c
index fd1861a6ab..268e92d0f7 100644
--- a/math/w_log10f_compat.c
+++ b/math/w_log10f_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <math.h>
diff --git a/math/w_log10l_compat.c b/math/w_log10l_compat.c
index d2387c225a..5b9b091e7e 100644
--- a/math/w_log10l_compat.c
+++ b/math/w_log10l_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <math.h>
diff --git a/math/w_log1p_template.c b/math/w_log1p_template.c
index 59f82cf5ee..707b322f7f 100644
--- a/math/w_log1p_template.c
+++ b/math/w_log1p_template.c
@@ -1,5 +1,5 @@
/* Wrapper for __log1p that handles setting errno.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,11 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <math.h>
-#include <math_private.h>
FLOAT
M_DECL_FUNC (__w_log1p) (FLOAT x)
diff --git a/math/w_log2.c b/math/w_log2.c
new file mode 100644
index 0000000000..148d5d48e1
--- /dev/null
+++ b/math/w_log2.c
@@ -0,0 +1,8 @@
+#include <math-type-macros-double.h>
+#undef __USE_WRAPPER_TEMPLATE
+#define __USE_WRAPPER_TEMPLATE 1
+#undef declare_mgen_alias
+#define declare_mgen_alias(a, b)
+#include <w_log2_template.c>
+versioned_symbol (libm, __log2, log2, GLIBC_2_29);
+libm_alias_double_other (__log2, log2)
diff --git a/math/w_log2_compat.c b/math/w_log2_compat.c
index 61e7170ae1..f6a9e2e010 100644
--- a/math/w_log2_compat.c
+++ b/math/w_log2_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <math.h>
@@ -23,10 +23,12 @@
#include <libm-alias-double.h>
-#if LIBM_SVID_COMPAT
+#if LIBM_SVID_COMPAT && (SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_29) \
+ || defined NO_LONG_DOUBLE \
+ || defined LONG_DOUBLE_COMPAT)
/* wrapper log2(x) */
double
-__log2 (double x)
+__log2_compat (double x)
{
if (__builtin_expect (islessequal (x, 0.0), 0) && _LIB_VERSION != _IEEE_)
{
@@ -44,5 +46,17 @@ __log2 (double x)
return __ieee754_log2 (x);
}
-libm_alias_double (__log2, log2)
+# if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_29)
+compat_symbol (libm, __log2_compat, log2, GLIBC_2_1);
+# endif
+# ifdef NO_LONG_DOUBLE
+weak_alias (__log2_compat, log2l)
+# endif
+# ifdef LONG_DOUBLE_COMPAT
+/* Work around gas bug "multiple versions for symbol". */
+weak_alias (__log2_compat, __log2_compat_alias)
+
+LONG_DOUBLE_COMPAT_CHOOSE_libm_log2l (
+ compat_symbol (libm, __log2_compat_alias, log2l, FIRST_VERSION_libm_log2l), );
+# endif
#endif
diff --git a/math/w_log2_template.c b/math/w_log2_template.c
index e32281be65..aa6b3fb563 100644
--- a/math/w_log2_template.c
+++ b/math/w_log2_template.c
@@ -1,5 +1,5 @@
/* Wrapper to set errno for log2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Only build wrappers from the templates for the types that define the macro
below. This macro is set in math-type-macros-<type>.h in sysdeps/generic
diff --git a/math/w_log2f_compat.c b/math/w_log2f_compat.c
index 7b4b545c81..8b97fee109 100644
--- a/math/w_log2f_compat.c
+++ b/math/w_log2f_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <math.h>
diff --git a/math/w_log2l_compat.c b/math/w_log2l_compat.c
index ba74ed2576..cf1d13c9ce 100644
--- a/math/w_log2l_compat.c
+++ b/math/w_log2l_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <math.h>
diff --git a/math/w_log_compat.c b/math/w_log_compat.c
index 5413b8e8df..cf70f566b5 100644
--- a/math/w_log_compat.c
+++ b/math/w_log_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <math.h>
@@ -23,10 +23,12 @@
#include <libm-alias-double.h>
-#if LIBM_SVID_COMPAT
+#if LIBM_SVID_COMPAT && (SHLIB_COMPAT (libm, GLIBC_2_0, GLIBC_2_29) \
+ || defined NO_LONG_DOUBLE \
+ || defined LONG_DOUBLE_COMPAT)
/* wrapper log(x) */
double
-__log (double x)
+__log_compat (double x)
{
if (__builtin_expect (islessequal (x, 0.0), 0) && _LIB_VERSION != _IEEE_)
{
@@ -44,5 +46,17 @@ __log (double x)
return __ieee754_log (x);
}
-libm_alias_double (__log, log)
+# if SHLIB_COMPAT (libm, GLIBC_2_0, GLIBC_2_29)
+compat_symbol (libm, __log_compat, log, GLIBC_2_0);
+# endif
+# ifdef NO_LONG_DOUBLE
+weak_alias (__log_compat, logl)
+# endif
+# ifdef LONG_DOUBLE_COMPAT
+/* Work around gas bug "multiple versions for symbol". */
+weak_alias (__log_compat, __log_compat_alias)
+
+LONG_DOUBLE_COMPAT_CHOOSE_libm_logl (
+ compat_symbol (libm, __log_compat_alias, logl, FIRST_VERSION_libm_logl), );
+# endif
#endif
diff --git a/math/w_log_template.c b/math/w_log_template.c
index 0515fee629..a2bf3d84bd 100644
--- a/math/w_log_template.c
+++ b/math/w_log_template.c
@@ -1,5 +1,5 @@
/* Wrapper to set errno for log.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Only build wrappers from the templates for the types that define the macro
below. This macro is set in math-type-macros-<type>.h in sysdeps/generic
diff --git a/math/w_logf_compat.c b/math/w_logf_compat.c
index 9810d30c52..21b040ffa6 100644
--- a/math/w_logf_compat.c
+++ b/math/w_logf_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <math.h>
diff --git a/math/w_logl_compat.c b/math/w_logl_compat.c
index 991251a7c5..c161f097e6 100644
--- a/math/w_logl_compat.c
+++ b/math/w_logl_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <math.h>
diff --git a/math/w_pow.c b/math/w_pow.c
new file mode 100644
index 0000000000..a66fd3965a
--- /dev/null
+++ b/math/w_pow.c
@@ -0,0 +1,8 @@
+#include <math-type-macros-double.h>
+#undef __USE_WRAPPER_TEMPLATE
+#define __USE_WRAPPER_TEMPLATE 1
+#undef declare_mgen_alias
+#define declare_mgen_alias(a, b)
+#include <w_pow_template.c>
+versioned_symbol (libm, __pow, pow, GLIBC_2_29);
+libm_alias_double_other (__pow, pow)
diff --git a/math/w_pow_compat.c b/math/w_pow_compat.c
index 815c67963b..615a6ce0c5 100644
--- a/math/w_pow_compat.c
+++ b/math/w_pow_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
@@ -22,10 +22,12 @@
#include <libm-alias-double.h>
-#if LIBM_SVID_COMPAT
+#if LIBM_SVID_COMPAT && (SHLIB_COMPAT (libm, GLIBC_2_0, GLIBC_2_29) \
+ || defined NO_LONG_DOUBLE \
+ || defined LONG_DOUBLE_COMPAT)
/* wrapper pow */
double
-__pow (double x, double y)
+__pow_compat (double x, double y)
{
double z = __ieee754_pow (x, y);
if (__glibc_unlikely (!isfinite (z)))
@@ -60,5 +62,17 @@ __pow (double x, double y)
return z;
}
-libm_alias_double (__pow, pow)
+# if SHLIB_COMPAT (libm, GLIBC_2_0, GLIBC_2_29)
+compat_symbol (libm, __pow_compat, pow, GLIBC_2_0);
+# endif
+# ifdef NO_LONG_DOUBLE
+weak_alias (__pow_compat, powl)
+# endif
+# ifdef LONG_DOUBLE_COMPAT
+/* Work around gas bug "multiple versions for symbol". */
+weak_alias (__pow_compat, __pow_compat_alias)
+
+LONG_DOUBLE_COMPAT_CHOOSE_libm_powl (
+ compat_symbol (libm, __pow_compat_alias, powl, FIRST_VERSION_libm_powl), );
+# endif
#endif
diff --git a/math/w_pow_template.c b/math/w_pow_template.c
index 93f52dc847..0a2fa64dc0 100644
--- a/math/w_pow_template.c
+++ b/math/w_pow_template.c
@@ -1,5 +1,5 @@
/* Wrapper to set errno for pow.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Only build wrappers from the templates for the types that define the macro
below. This macro is set in math-type-macros-<type>.h in sysdeps/generic
diff --git a/math/w_powf_compat.c b/math/w_powf_compat.c
index be6f491e85..ba63e966ad 100644
--- a/math/w_powf_compat.c
+++ b/math/w_powf_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/math/w_powl_compat.c b/math/w_powl_compat.c
index 01fc788049..4f9ca33db5 100644
--- a/math/w_powl_compat.c
+++ b/math/w_powl_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/math/w_remainder_compat.c b/math/w_remainder_compat.c
index 7573da5452..cef5da3646 100644
--- a/math/w_remainder_compat.c
+++ b/math/w_remainder_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/math/w_remainder_template.c b/math/w_remainder_template.c
index 89a891a445..5624146919 100644
--- a/math/w_remainder_template.c
+++ b/math/w_remainder_template.c
@@ -1,5 +1,5 @@
/* Wrapper to set errno for remainder.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Only build wrappers from the templates for the types that define the macro
below. This macro is set in math-type-macros-<type>.h in sysdeps/generic
diff --git a/math/w_remainderf_compat.c b/math/w_remainderf_compat.c
index bedcac201e..f9912a81ec 100644
--- a/math/w_remainderf_compat.c
+++ b/math/w_remainderf_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/math/w_remainderl_compat.c b/math/w_remainderl_compat.c
index cbd7222fff..6c5e736a56 100644
--- a/math/w_remainderl_compat.c
+++ b/math/w_remainderl_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/math/w_scalb_compat.c b/math/w_scalb_compat.c
index 5e57db4a9f..bc3c9d6a09 100644
--- a/math/w_scalb_compat.c
+++ b/math/w_scalb_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <math.h>
diff --git a/math/w_scalbf_compat.c b/math/w_scalbf_compat.c
index 7e35a66f43..98511daaee 100644
--- a/math/w_scalbf_compat.c
+++ b/math/w_scalbf_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <math.h>
diff --git a/math/w_scalbl_compat.c b/math/w_scalbl_compat.c
index 658b081f91..dc5d4ad5b2 100644
--- a/math/w_scalbl_compat.c
+++ b/math/w_scalbl_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <math.h>
diff --git a/math/w_scalbln_template.c b/math/w_scalbln_template.c
index 71aa02a3d2..ff47dfae2a 100644
--- a/math/w_scalbln_template.c
+++ b/math/w_scalbln_template.c
@@ -1,5 +1,5 @@
/* Wrapper for __scalbln handles setting errno.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,11 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <math.h>
-#include <math_private.h>
FLOAT
M_DECL_FUNC (__w_scalbln) (FLOAT x, long int n)
diff --git a/math/w_sinh_template.c b/math/w_sinh_template.c
index 8f256f39d8..3437e1d652 100644
--- a/math/w_sinh_template.c
+++ b/math/w_sinh_template.c
@@ -1,5 +1,5 @@
/* Wrapper to set errno for sinh.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Only build wrappers from the templates for the types that define the macro
below. This macro is set in math-type-macros-<type>.h in sysdeps/generic
diff --git a/math/w_sqrt_compat.c b/math/w_sqrt_compat.c
index e76a8079aa..f582757a31 100644
--- a/math/w_sqrt_compat.c
+++ b/math/w_sqrt_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define NO_MATH_REDIRECT
#include <math.h>
diff --git a/math/w_sqrt_template.c b/math/w_sqrt_template.c
index 9c6ac75956..b3beba21f0 100644
--- a/math/w_sqrt_template.c
+++ b/math/w_sqrt_template.c
@@ -1,5 +1,5 @@
/* Wrapper to set errno for sqrt.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Only build wrappers from the templates for the types that define the macro
below. This macro is set in math-type-macros-<type>.h in sysdeps/generic
diff --git a/math/w_sqrtf_compat.c b/math/w_sqrtf_compat.c
index cad9b4ad77..b774381555 100644
--- a/math/w_sqrtf_compat.c
+++ b/math/w_sqrtf_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define NO_MATH_REDIRECT
#include <math.h>
diff --git a/math/w_sqrtl_compat.c b/math/w_sqrtl_compat.c
index 16dda403b7..f76d8eeb4e 100644
--- a/math/w_sqrtl_compat.c
+++ b/math/w_sqrtl_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define NO_MATH_REDIRECT
#include <math.h>
diff --git a/math/w_tgamma_compat.c b/math/w_tgamma_compat.c
index 219aa10862..910d2fe490 100644
--- a/math/w_tgamma_compat.c
+++ b/math/w_tgamma_compat.c
@@ -33,7 +33,7 @@ __tgamma(double x)
&& _LIB_VERSION != _IEEE_) {
if (x == 0.0)
return __kernel_standard(x,x,50); /* tgamma pole */
- else if(__floor(x)==x&&x<0.0)
+ else if(floor(x)==x&&x<0.0)
return __kernel_standard(x,x,41); /* tgamma domain */
else if (y == 0)
__set_errno (ERANGE); /* tgamma underflow */
diff --git a/math/w_tgamma_template.c b/math/w_tgamma_template.c
index 032f27a3f7..aa842b1c86 100644
--- a/math/w_tgamma_template.c
+++ b/math/w_tgamma_template.c
@@ -1,5 +1,5 @@
/* Wrapper to set errno for tgamma.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Only build wrappers from the templates for the types that define the macro
below. This macro is set in math-type-macros-<type>.h in sysdeps/generic
@@ -41,7 +41,7 @@ M_DECL_FUNC (__tgamma) (FLOAT x)
if (x == 0)
/* Pole error: tgamma(x=0). */
__set_errno (ERANGE);
- else if (M_SUF (__floor) (x) == x && x < 0)
+ else if (M_SUF (floor) (x) == x && x < 0)
/* Domain error: tgamma(integer x<0). */
__set_errno (EDOM);
else
diff --git a/math/w_tgammaf_compat.c b/math/w_tgammaf_compat.c
index e9ffddb796..ed509885ae 100644
--- a/math/w_tgammaf_compat.c
+++ b/math/w_tgammaf_compat.c
@@ -32,7 +32,7 @@ __tgammaf(float x)
if (x == (float)0.0)
/* tgammaf pole */
return __kernel_standard_f(x, x, 150);
- else if(__floorf(x)==x&&x<0.0f)
+ else if(floorf(x)==x&&x<0.0f)
/* tgammaf domain */
return __kernel_standard_f(x, x, 141);
else if (y == 0)
diff --git a/math/w_tgammal_compat.c b/math/w_tgammal_compat.c
index 3695b7fbb3..d79c788dfc 100644
--- a/math/w_tgammal_compat.c
+++ b/math/w_tgammal_compat.c
@@ -36,7 +36,7 @@ __tgammal(long double x)
&& _LIB_VERSION != _IEEE_) {
if(x==0.0)
return __kernel_standard_l(x,x,250); /* tgamma pole */
- else if(__floorl(x)==x&&x<0.0L)
+ else if(floorl(x)==x&&x<0.0L)
return __kernel_standard_l(x,x,241); /* tgamma domain */
else if (y == 0)
__set_errno (ERANGE); /* tgamma underflow */
diff --git a/mathvec/Makefile b/mathvec/Makefile
index 1a12d0952d..9397111036 100644
--- a/mathvec/Makefile
+++ b/mathvec/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2018 Free Software Foundation, Inc.
+# Copyright (C) 2014-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
# Makefile for the vector math library.
diff --git a/misc/Makefile b/misc/Makefile
index b7be2bc19a..1a74b3c3e4 100644
--- a/misc/Makefile
+++ b/misc/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1991-2018 Free Software Foundation, Inc.
+# Copyright (C) 1991-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
# Sub-makefile for misc portion of the library.
@@ -36,7 +36,8 @@ headers := sys/uio.h bits/uio-ext.h bits/uio_lim.h \
syslog.h sys/syslog.h \
bits/syslog.h bits/syslog-ldbl.h bits/syslog-path.h bits/error.h \
bits/select2.h bits/hwcap.h sys/auxv.h \
- sys/sysmacros.h bits/sysmacros.h bits/types/struct_iovec.h
+ sys/sysmacros.h bits/sysmacros.h bits/types/struct_iovec.h \
+ bits/err-ldbl.h bits/error-ldbl.h
routines := brk sbrk sstk ioctl \
readv writev preadv preadv64 pwritev pwritev64 \
@@ -80,11 +81,18 @@ aux := init-misc
install-lib := libg.a
gpl2lgpl := error.c error.h
-tests := tst-dirname tst-tsearch tst-fdset tst-efgcvt tst-mntent tst-hsearch \
+tests := tst-dirname tst-tsearch tst-fdset tst-mntent tst-hsearch \
tst-error1 tst-pselect tst-insremque tst-mntent2 bug-hsearch1 \
tst-mntent-blank-corrupt tst-mntent-blank-passno bug18240 \
tst-preadvwritev tst-preadvwritev64 tst-makedev tst-empty \
- tst-preadvwritev2 tst-preadvwritev64v2
+ tst-preadvwritev2 tst-preadvwritev64v2 tst-warn-wide \
+ tst-ldbl-warn tst-ldbl-error tst-dbl-efgcvt tst-ldbl-efgcvt \
+ tst-mntent-autofs
+
+# Tests which need libdl.
+ifeq (yes,$(build-shared))
+tests += tst-gethostid
+endif
tests-internal := tst-atomic tst-atomic-long tst-allocate_once
tests-static := tst-empty
@@ -145,3 +153,5 @@ tst-allocate_once-ENV = MALLOC_TRACE=$(objpfx)tst-allocate_once.mtrace
$(objpfx)tst-allocate_once-mem.out: $(objpfx)tst-allocate_once.out
$(common-objpfx)malloc/mtrace $(objpfx)tst-allocate_once.mtrace > $@; \
$(evaluate-test)
+
+$(objpfx)tst-gethostid: $(libdl)
diff --git a/misc/Versions b/misc/Versions
index 900e4ffb79..e749582369 100644
--- a/misc/Versions
+++ b/misc/Versions
@@ -158,11 +158,14 @@ libc {
GLIBC_2.26 {
preadv2; preadv64v2; pwritev2; pwritev64v2;
}
+ GLIBC_2.30 {
+ twalk_r;
+ }
GLIBC_PRIVATE {
__madvise;
__mktemp;
__libc_ifunc_impl_list;
- __tdelete; __tfind; __tsearch; __twalk;
+ __tdelete; __tfind; __tsearch; __twalk; __twalk_r;
__mmap; __munmap; __mprotect;
__sched_get_priority_min; __sched_get_priority_max;
__libc_allocate_once_slow;
diff --git a/misc/acct.c b/misc/acct.c
index bfe5faba62..70f4fc379e 100644
--- a/misc/acct.c
+++ b/misc/acct.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/misc/allocate_once.c b/misc/allocate_once.c
index 2108014604..564d8c8fdb 100644
--- a/misc/allocate_once.c
+++ b/misc/allocate_once.c
@@ -1,5 +1,5 @@
/* Concurrent allocation and initialization of a pointer.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <allocate_once.h>
#include <stdlib.h>
diff --git a/misc/ar.h b/misc/ar.h
index 25a9a63f85..68df404ce2 100644
--- a/misc/ar.h
+++ b/misc/ar.h
@@ -1,5 +1,5 @@
/* Header describing `ar' archive file format.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _AR_H
#define _AR_H 1
diff --git a/misc/bits/err-ldbl.h b/misc/bits/err-ldbl.h
new file mode 100644
index 0000000000..ca6e299b59
--- /dev/null
+++ b/misc/bits/err-ldbl.h
@@ -0,0 +1,30 @@
+/* Redirections for err.h functions for -mlong-double-64.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _ERR_H
+# error "Never include <bits/err-ldbl.h> directly; use <err.h> instead."
+#endif
+
+__LDBL_REDIR_DECL (warn)
+__LDBL_REDIR_DECL (vwarn)
+__LDBL_REDIR_DECL (warnx)
+__LDBL_REDIR_DECL (vwarnx)
+__LDBL_REDIR_DECL (err)
+__LDBL_REDIR_DECL (verr)
+__LDBL_REDIR_DECL (errx)
+__LDBL_REDIR_DECL (verrx)
diff --git a/misc/bits/error-ldbl.h b/misc/bits/error-ldbl.h
new file mode 100644
index 0000000000..4392340a52
--- /dev/null
+++ b/misc/bits/error-ldbl.h
@@ -0,0 +1,24 @@
+/* Redirections for error.h functions for -mlong-double-64.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _ERROR_H
+# error "Never include <bits/error-ldbl.h> directly; use <error.h> instead."
+#endif
+
+__LDBL_REDIR_DECL (error)
+__LDBL_REDIR_DECL (error_at_line)
diff --git a/misc/bits/error.h b/misc/bits/error.h
index 682cf2060e..ecde4b7850 100644
--- a/misc/bits/error.h
+++ b/misc/bits/error.h
@@ -1,5 +1,5 @@
/* Specializations for error functions.
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _ERROR_H
# error "Never include <bits/error.h> directly; use <error.h> instead."
diff --git a/misc/bits/select2.h b/misc/bits/select2.h
index 7194148997..d6b1f22c29 100644
--- a/misc/bits/select2.h
+++ b/misc/bits/select2.h
@@ -1,5 +1,5 @@
/* Checking macros for select functions.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ 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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_SELECT_H
# error "Never include <bits/select2.h> directly; use <sys/select.h> instead."
diff --git a/misc/bits/stab.def b/misc/bits/stab.def
index ab44580e95..c61feb1171 100644
--- a/misc/bits/stab.def
+++ b/misc/bits/stab.def
@@ -1,5 +1,5 @@
/* Table of DBX symbol codes for the GNU system.
- Copyright (C) 1988, 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1988, 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This contains contribution from Cygnus Support. */
diff --git a/misc/bits/syslog-ldbl.h b/misc/bits/syslog-ldbl.h
index 977f90a9fe..8d60fb8e44 100644
--- a/misc/bits/syslog-ldbl.h
+++ b/misc/bits/syslog-ldbl.h
@@ -1,5 +1,5 @@
/* -mlong-double-64 compatibility mode for syslog functions.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_SYSLOG_H
# error "Never include <bits/syslog-ldbl.h> directly; use <sys/syslog.h> instead."
diff --git a/misc/bits/syslog.h b/misc/bits/syslog.h
index 6719fbe795..f6b107ffe9 100644
--- a/misc/bits/syslog.h
+++ b/misc/bits/syslog.h
@@ -1,5 +1,5 @@
/* Checking macros for syslog functions.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_SYSLOG_H
# error "Never include <bits/syslog.h> directly; use <sys/syslog.h> instead."
diff --git a/misc/bits/types/struct_iovec.h b/misc/bits/types/struct_iovec.h
index 490b06b89b..5ce2dfcb48 100644
--- a/misc/bits/types/struct_iovec.h
+++ b/misc/bits/types/struct_iovec.h
@@ -1,5 +1,5 @@
/* Define struct iovec.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef __iovec_defined
#define __iovec_defined 1
diff --git a/misc/brk.c b/misc/brk.c
index 2dea69acb3..b18e9a3a0b 100644
--- a/misc/brk.c
+++ b/misc/brk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/misc/bug18240.c b/misc/bug18240.c
index b1471698d0..d08e1c49ca 100644
--- a/misc/bug18240.c
+++ b/misc/bug18240.c
@@ -1,5 +1,5 @@
/* Test integer wraparound in hcreate.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <limits.h>
diff --git a/misc/chflags.c b/misc/chflags.c
index 7e6a21478e..d8b6d140a8 100644
--- a/misc/chflags.c
+++ b/misc/chflags.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/misc/chroot.c b/misc/chroot.c
index 630f88329c..e7d1a96b43 100644
--- a/misc/chroot.c
+++ b/misc/chroot.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/misc/dirname.c b/misc/dirname.c
index 11797a1492..1928fc95e2 100644
--- a/misc/dirname.c
+++ b/misc/dirname.c
@@ -1,5 +1,5 @@
/* dirname - return directory part of PATH.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libgen.h>
#include <string.h>
diff --git a/misc/efgcvt.c b/misc/efgcvt.c
index 0081c1a499..492e4e8086 100644
--- a/misc/efgcvt.c
+++ b/misc/efgcvt.c
@@ -1,5 +1,5 @@
/* Compatibility functions for floating point formatting.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <stdio.h>
diff --git a/misc/efgcvt_r.c b/misc/efgcvt_r.c
index aa3a3cd279..981249850c 100644
--- a/misc/efgcvt_r.c
+++ b/misc/efgcvt_r.c
@@ -1,5 +1,5 @@
/* Compatibility functions for floating point formatting, reentrant versions.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <float.h>
diff --git a/misc/err.c b/misc/err.c
index 2b836e8358..106abc4e4c 100644
--- a/misc/err.c
+++ b/misc/err.c
@@ -1,5 +1,5 @@
/* 4.4BSD utility functions for error messages.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdarg.h>
#include <err.h>
@@ -37,104 +37,53 @@ extern char *__progname;
va_end (ap); \
}
-static void
-convert_and_print (const char *format, __gnuc_va_list ap)
-{
-#define ALLOCA_LIMIT 2000
- size_t len;
- wchar_t *wformat = NULL;
- mbstate_t st;
- size_t res;
- const char *tmp;
-
- if (format == NULL)
- return;
-
- len = strlen (format) + 1;
-
- do
- {
- if (len < ALLOCA_LIMIT)
- wformat = (wchar_t *) alloca (len * sizeof (wchar_t));
- else
- {
- if (wformat != NULL && len / 2 < ALLOCA_LIMIT)
- wformat = NULL;
-
- wformat = (wchar_t *) realloc (wformat, len * sizeof (wchar_t));
-
- if (wformat == NULL)
- {
- fputws_unlocked (L"out of memory\n", stderr);
- return;
- }
- }
-
- memset (&st, '\0', sizeof (st));
- tmp =format;
- }
- while ((res = __mbsrtowcs (wformat, &tmp, len, &st)) == len);
-
- if (res == (size_t) -1)
- /* The string cannot be converted. */
- wformat = (wchar_t *) L"???";
-
- __vfwprintf (stderr, wformat, ap);
-}
-
void
-vwarnx (const char *format, __gnuc_va_list ap)
+__vwarnx_internal (const char *format, __gnuc_va_list ap,
+ unsigned int mode_flags)
{
flockfile (stderr);
- if (_IO_fwide (stderr, 0) > 0)
- {
- __fwprintf (stderr, L"%s: ", __progname);
- convert_and_print (format, ap);
- putwc_unlocked (L'\n', stderr);
- }
- else
- {
- fprintf (stderr, "%s: ", __progname);
- if (format)
- vfprintf (stderr, format, ap);
- putc_unlocked ('\n', stderr);
- }
+ __fxprintf (stderr, "%s: ", __progname);
+ if (format != NULL)
+ __vfxprintf (stderr, format, ap, mode_flags);
+ __fxprintf (stderr, "\n");
funlockfile (stderr);
}
-libc_hidden_def (vwarnx)
void
-vwarn (const char *format, __gnuc_va_list ap)
+__vwarn_internal (const char *format, __gnuc_va_list ap,
+ unsigned int mode_flags)
{
int error = errno;
flockfile (stderr);
- if (_IO_fwide (stderr, 0) > 0)
+ if (format != NULL)
{
- __fwprintf (stderr, L"%s: ", __progname);
- if (format)
- {
- convert_and_print (format, ap);
- fputws_unlocked (L": ", stderr);
- }
+ __fxprintf (stderr, "%s: ", __progname);
+ __vfxprintf (stderr, format, ap, mode_flags);
__set_errno (error);
- __fwprintf (stderr, L"%m\n");
+ __fxprintf (stderr, ": %m\n");
}
else
{
- fprintf (stderr, "%s: ", __progname);
- if (format)
- {
- vfprintf (stderr, format, ap);
- fputs_unlocked (": ", stderr);
- }
__set_errno (error);
- fprintf (stderr, "%m\n");
+ __fxprintf (stderr, "%s: %m\n", __progname);
}
funlockfile (stderr);
}
+
+void
+vwarn (const char *format, __gnuc_va_list ap)
+{
+ __vwarn_internal (format, ap, 0);
+}
libc_hidden_def (vwarn)
+void
+vwarnx (const char *format, __gnuc_va_list ap)
+{
+ __vwarnx_internal (format, ap, 0);
+}
+libc_hidden_def (vwarnx)
void
warn (const char *format, ...)
diff --git a/misc/err.h b/misc/err.h
index fec4fd2f77..a71b3fafe0 100644
--- a/misc/err.h
+++ b/misc/err.h
@@ -1,5 +1,5 @@
/* 4.4BSD utility functions for error messages.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _ERR_H
#define _ERR_H 1
@@ -52,6 +52,10 @@ extern void errx (int __status, const char *__format, ...)
extern void verrx (int __status, const char *, __gnuc_va_list)
__attribute__ ((__noreturn__, __format__ (__printf__, 2, 0)));
+#ifdef __LDBL_COMPAT
+# include <bits/err-ldbl.h>
+#endif
+
__END_DECLS
#endif /* err.h */
diff --git a/misc/error.c b/misc/error.c
index b4e8b6c938..c407b01e21 100644
--- a/misc/error.c
+++ b/misc/error.c
@@ -1,5 +1,5 @@
/* Error handler for noninteractive utilities
- Copyright (C) 1990-2018 Free Software Foundation, Inc.
+ Copyright (C) 1990-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Written by David MacKenzie <djm@gnu.ai.mit.edu>. */
@@ -200,75 +200,18 @@ print_errno_message (int errnum)
}
static void _GL_ATTRIBUTE_FORMAT_PRINTF (3, 0) _GL_ARG_NONNULL ((3))
-error_tail (int status, int errnum, const char *message, va_list args)
+error_tail (int status, int errnum, const char *message, va_list args,
+ unsigned int mode_flags)
{
#if _LIBC
- if (_IO_fwide (stderr, 0) > 0)
- {
- size_t len = strlen (message) + 1;
- wchar_t *wmessage = NULL;
- mbstate_t st;
- size_t res;
- const char *tmp;
- bool use_malloc = false;
-
- while (1)
- {
- if (__libc_use_alloca (len * sizeof (wchar_t)))
- wmessage = (wchar_t *) alloca (len * sizeof (wchar_t));
- else
- {
- if (!use_malloc)
- wmessage = NULL;
-
- wchar_t *p = (wchar_t *) realloc (wmessage,
- len * sizeof (wchar_t));
- if (p == NULL)
- {
- free (wmessage);
- fputws_unlocked (L"out of memory\n", stderr);
- return;
- }
- wmessage = p;
- use_malloc = true;
- }
-
- memset (&st, '\0', sizeof (st));
- tmp = message;
-
- res = mbsrtowcs (wmessage, &tmp, len, &st);
- if (res != len)
- break;
-
- if (__builtin_expect (len >= SIZE_MAX / sizeof (wchar_t) / 2, 0))
- {
- /* This really should not happen if everything is fine. */
- res = (size_t) -1;
- break;
- }
-
- len *= 2;
- }
-
- if (res == (size_t) -1)
- {
- /* The string cannot be converted. */
- if (use_malloc)
- {
- free (wmessage);
- use_malloc = false;
- }
- wmessage = (wchar_t *) L"???";
- }
-
- __vfwprintf (stderr, wmessage, args);
-
- if (use_malloc)
- free (wmessage);
- }
- else
+ int ret = __vfxprintf (stderr, message, args, mode_flags);
+ if (ret < 0 && errno == ENOMEM && _IO_fwide (stderr, 0) > 0)
+ /* Leave a trace in case the heap allocation of the message string
+ failed. */
+ fputws_unlocked (L"out of memory\n", stderr);
+#else
+ vfprintf (stderr, message, args);
#endif
- vfprintf (stderr, message, args);
va_end (args);
++error_message_count;
@@ -290,10 +233,9 @@ error_tail (int status, int errnum, const char *message, va_list args)
If ERRNUM is nonzero, print its corresponding system error message.
Exit with status STATUS if it is nonzero. */
void
-error (int status, int errnum, const char *message, ...)
+__error_internal (int status, int errnum, const char *message,
+ va_list args, unsigned int mode_flags)
{
- va_list args;
-
#if defined _LIBC && defined __libc_ptf_call
/* We do not want this call to be cut short by a thread
cancellation. Therefore disable cancellation for now. */
@@ -317,8 +259,7 @@ error (int status, int errnum, const char *message, ...)
#endif
}
- va_start (args, message);
- error_tail (status, errnum, message, args);
+ error_tail (status, errnum, message, args, mode_flags);
#ifdef _LIBC
_IO_funlockfile (stderr);
@@ -327,17 +268,25 @@ error (int status, int errnum, const char *message, ...)
# endif
#endif
}
+
+void
+error (int status, int errnum, const char *message, ...)
+{
+ va_list ap;
+ va_start (ap, message);
+ __error_internal (status, errnum, message, ap, 0);
+ va_end (ap);
+}
/* Sometimes we want to have at most one error per line. This
variable controls whether this mode is selected or not. */
int error_one_per_line;
void
-error_at_line (int status, int errnum, const char *file_name,
- unsigned int line_number, const char *message, ...)
+__error_at_line_internal (int status, int errnum, const char *file_name,
+ unsigned int line_number, const char *message,
+ va_list args, unsigned int mode_flags)
{
- va_list args;
-
if (error_one_per_line)
{
static const char *old_file_name;
@@ -388,8 +337,7 @@ error_at_line (int status, int errnum, const char *file_name,
file_name, line_number);
#endif
- va_start (args, message);
- error_tail (status, errnum, message, args);
+ error_tail (status, errnum, message, args, mode_flags);
#ifdef _LIBC
_IO_funlockfile (stderr);
@@ -399,6 +347,17 @@ error_at_line (int status, int errnum, const char *file_name,
#endif
}
+void
+error_at_line (int status, int errnum, const char *file_name,
+ unsigned int line_number, const char *message, ...)
+{
+ va_list ap;
+ va_start (ap, message);
+ __error_at_line_internal (status, errnum, file_name, line_number,
+ message, ap, 0);
+ va_end (ap);
+}
+
#ifdef _LIBC
/* Make the weak alias. */
# undef error
diff --git a/misc/error.h b/misc/error.h
index fcd5ad90dc..79840bf0f7 100644
--- a/misc/error.h
+++ b/misc/error.h
@@ -1,5 +1,5 @@
/* Declaration for error-reporting function
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _ERROR_H
#define _ERROR_H 1
@@ -47,9 +47,15 @@ extern unsigned int error_message_count;
variable controls whether this mode is selected or not. */
extern int error_one_per_line;
-
-#if defined __extern_always_inline && defined __va_arg_pack
-# include <bits/error.h>
+#ifdef __LDBL_COMPAT
+# include <bits/error-ldbl.h>
+#else
+/* Do not inline error and error_at_line when long double has the same
+ size of double, because that would invalidate the redirections to the
+ compatibility functions. */
+# if defined __extern_always_inline && defined __va_arg_pack
+# include <bits/error.h>
+# endif
#endif
__END_DECLS
diff --git a/misc/fchflags.c b/misc/fchflags.c
index 53ec953f54..d700c69554 100644
--- a/misc/fchflags.c
+++ b/misc/fchflags.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/misc/fdatasync.c b/misc/fdatasync.c
index 67a95eb818..54f61588a8 100644
--- a/misc/fdatasync.c
+++ b/misc/fdatasync.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
diff --git a/misc/fgetxattr.c b/misc/fgetxattr.c
index 5c8e20accc..89dbc8fb60 100644
--- a/misc/fgetxattr.c
+++ b/misc/fgetxattr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/xattr.h>
diff --git a/misc/flistxattr.c b/misc/flistxattr.c
index 46e371964c..266e2fdd2e 100644
--- a/misc/flistxattr.c
+++ b/misc/flistxattr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/xattr.h>
diff --git a/misc/fremovexattr.c b/misc/fremovexattr.c
index b03ce2e535..5b8561a005 100644
--- a/misc/fremovexattr.c
+++ b/misc/fremovexattr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/xattr.h>
diff --git a/misc/fsetxattr.c b/misc/fsetxattr.c
index 635ab1cc96..5c53b3240b 100644
--- a/misc/fsetxattr.c
+++ b/misc/fsetxattr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/xattr.h>
diff --git a/misc/fstab.c b/misc/fstab.c
index 8fbe3c7767..7a6282127b 100644
--- a/misc/fstab.c
+++ b/misc/fstab.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fstab.h>
#include <mntent.h>
@@ -163,12 +163,12 @@ fstab_convert (struct fstab_state *state)
f->fs_file = m->mnt_dir;
f->fs_vfstype = m->mnt_type;
f->fs_mntops = m->mnt_opts;
- f->fs_type = (__hasmntopt (m, FSTAB_RW) ? FSTAB_RW :
- __hasmntopt (m, FSTAB_RQ) ? FSTAB_RQ :
- __hasmntopt (m, FSTAB_RO) ? FSTAB_RO :
- __hasmntopt (m, FSTAB_SW) ? FSTAB_SW :
- __hasmntopt (m, FSTAB_XX) ? FSTAB_XX :
- "??");
+ f->fs_type = (__hasmntopt (m, FSTAB_RW) ? FSTAB_RW
+ : __hasmntopt (m, FSTAB_RQ) ? FSTAB_RQ
+ : __hasmntopt (m, FSTAB_RO) ? FSTAB_RO
+ : __hasmntopt (m, FSTAB_SW) ? FSTAB_SW
+ : __hasmntopt (m, FSTAB_XX) ? FSTAB_XX
+ : "??");
f->fs_freq = m->mnt_freq;
f->fs_passno = m->mnt_passno;
return f;
diff --git a/misc/fsync.c b/misc/fsync.c
index e52be4cc6a..2f051d3e8d 100644
--- a/misc/fsync.c
+++ b/misc/fsync.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/misc/ftruncate.c b/misc/ftruncate.c
index 7e30b159d5..ac20dae9e4 100644
--- a/misc/ftruncate.c
+++ b/misc/ftruncate.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/types.h>
diff --git a/misc/ftruncate64.c b/misc/ftruncate64.c
index a90e949f93..a5f599e957 100644
--- a/misc/ftruncate64.c
+++ b/misc/ftruncate64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <errno.h>
diff --git a/misc/futimes.c b/misc/futimes.c
index 3ffa40b0b1..6b130c2d8a 100644
--- a/misc/futimes.c
+++ b/misc/futimes.c
@@ -1,5 +1,5 @@
/* futimes -- change access and modification times of open file. Stub version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/time.h>
#include <errno.h>
diff --git a/misc/futimesat.c b/misc/futimesat.c
index b467184b41..f7966b914b 100644
--- a/misc/futimesat.c
+++ b/misc/futimesat.c
@@ -1,5 +1,5 @@
/* futimesat -- Change access and modification times of file. Stub version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/misc/getauxval.c b/misc/getauxval.c
index 0a5c1ec384..a8ccb39d9e 100644
--- a/misc/getauxval.c
+++ b/misc/getauxval.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/auxv.h>
#include <errno.h>
diff --git a/misc/getclktck.c b/misc/getclktck.c
index 19a69f6806..3f49aa9676 100644
--- a/misc/getclktck.c
+++ b/misc/getclktck.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <time.h>
diff --git a/misc/getdomain.c b/misc/getdomain.c
index c25f8ae128..c9faef9dba 100644
--- a/misc/getdomain.c
+++ b/misc/getdomain.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Put the name of the current YP domain in no more than LEN bytes of NAME.
The result is null-terminated if LEN is large enough for the full
diff --git a/misc/getdtsz.c b/misc/getdtsz.c
index fe5cc1e9b2..8a78ecf4ad 100644
--- a/misc/getdtsz.c
+++ b/misc/getdtsz.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/misc/gethostid.c b/misc/gethostid.c
index bec2b03dc6..d041414498 100644
--- a/misc/gethostid.c
+++ b/misc/gethostid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/misc/gethostname.c b/misc/gethostname.c
index a78ce235d8..dac379529c 100644
--- a/misc/gethostname.c
+++ b/misc/gethostname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/misc/getloadavg.c b/misc/getloadavg.c
index bb5613de65..6ca040ea45 100644
--- a/misc/getloadavg.c
+++ b/misc/getloadavg.c
@@ -1,5 +1,5 @@
/* Get system load averages. Stub version.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/misc/getpagesize.c b/misc/getpagesize.c
index 5fc162773d..e6df1b8b1f 100644
--- a/misc/getpagesize.c
+++ b/misc/getpagesize.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/misc/getpass.c b/misc/getpass.c
index a7023e37a8..11685d37f9 100644
--- a/misc/getpass.c
+++ b/misc/getpass.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdio_ext.h>
diff --git a/misc/getsysstats.c b/misc/getsysstats.c
index 4b886f2f88..833ef80024 100644
--- a/misc/getsysstats.c
+++ b/misc/getsysstats.c
@@ -1,5 +1,5 @@
/* getsysstats - Determine various system internal values, stub version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/sysinfo.h>
diff --git a/misc/getxattr.c b/misc/getxattr.c
index 003eeb82ec..c7443ac11b 100644
--- a/misc/getxattr.c
+++ b/misc/getxattr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/xattr.h>
diff --git a/misc/gtty.c b/misc/gtty.c
index c84d07fc0b..314fa5d494 100644
--- a/misc/gtty.c
+++ b/misc/gtty.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sgtty.h>
diff --git a/misc/hsearch.c b/misc/hsearch.c
index 1c061170b5..ec76a4c88a 100644
--- a/misc/hsearch.c
+++ b/misc/hsearch.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2019 Free Software Foundation, Inc.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <search.h>
diff --git a/misc/hsearch_r.c b/misc/hsearch_r.c
index 83c6b0a512..0dc53c6fab 100644
--- a/misc/hsearch_r.c
+++ b/misc/hsearch_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1993.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <malloc.h>
diff --git a/misc/ifunc-impl-list.c b/misc/ifunc-impl-list.c
index a161ece386..c3fc0463be 100644
--- a/misc/ifunc-impl-list.c
+++ b/misc/ifunc-impl-list.c
@@ -1,5 +1,5 @@
/* Enumerate available IFUNC implementations of a function. Stub version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ifunc-impl-list.h>
diff --git a/misc/init-misc.c b/misc/init-misc.c
index 2a1b82710e..2b9147f8c2 100644
--- a/misc/init-misc.c
+++ b/misc/init-misc.c
@@ -1,5 +1,5 @@
/* Define and initialize `__progname' et. al.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <libc-internal.h>
diff --git a/misc/insremque.c b/misc/insremque.c
index d5552316f9..e67d73574c 100644
--- a/misc/insremque.c
+++ b/misc/insremque.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <search.h>
diff --git a/misc/ioctl.c b/misc/ioctl.c
index b2b3787ff0..92b9ae9d29 100644
--- a/misc/ioctl.c
+++ b/misc/ioctl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/ioctl.h>
diff --git a/misc/lgetxattr.c b/misc/lgetxattr.c
index 453c36221e..d60469c747 100644
--- a/misc/lgetxattr.c
+++ b/misc/lgetxattr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/xattr.h>
diff --git a/misc/libgen.h b/misc/libgen.h
index f1d7b28e40..aad0a497b1 100644
--- a/misc/libgen.h
+++ b/misc/libgen.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LIBGEN_H
#define _LIBGEN_H 1
diff --git a/misc/listxattr.c b/misc/listxattr.c
index f749b6db8b..5714e971c0 100644
--- a/misc/listxattr.c
+++ b/misc/listxattr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/xattr.h>
diff --git a/misc/llistxattr.c b/misc/llistxattr.c
index ae76c44b93..615bab1b0f 100644
--- a/misc/llistxattr.c
+++ b/misc/llistxattr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/xattr.h>
diff --git a/misc/lremovexattr.c b/misc/lremovexattr.c
index 9e556d9a85..d344e5bae1 100644
--- a/misc/lremovexattr.c
+++ b/misc/lremovexattr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/xattr.h>
diff --git a/misc/lsearch.c b/misc/lsearch.c
index 3d37c072ee..35b7624819 100644
--- a/misc/lsearch.c
+++ b/misc/lsearch.c
@@ -1,5 +1,5 @@
/* Linear search functions.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <search.h>
#include <string.h>
diff --git a/misc/lsetxattr.c b/misc/lsetxattr.c
index 8898dd97bf..7a5aba54ce 100644
--- a/misc/lsetxattr.c
+++ b/misc/lsetxattr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/xattr.h>
diff --git a/misc/lutimes.c b/misc/lutimes.c
index b241c14c56..aefec30a78 100644
--- a/misc/lutimes.c
+++ b/misc/lutimes.c
@@ -1,5 +1,5 @@
/* lutimes -- change access and modification times of a symlink. Stub version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/time.h>
#include <errno.h>
diff --git a/misc/madvise.c b/misc/madvise.c
index 988f7b09d5..c9201c3256 100644
--- a/misc/madvise.c
+++ b/misc/madvise.c
@@ -1,5 +1,5 @@
/* Advise system about intentions for a memory region. Stub version.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <sys/mman.h>
diff --git a/misc/makedev.c b/misc/makedev.c
index bc5bfc577a..e4d295ec8a 100644
--- a/misc/makedev.c
+++ b/misc/makedev.c
@@ -1,5 +1,5 @@
/* Definitions of functions to access `dev_t' values.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <features.h>
diff --git a/misc/mincore.c b/misc/mincore.c
index 984eace7ee..35564a8b0a 100644
--- a/misc/mincore.c
+++ b/misc/mincore.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/mman.h>
#include <errno.h>
diff --git a/misc/mkdtemp.c b/misc/mkdtemp.c
index 6673f36858..3e4c520423 100644
--- a/misc/mkdtemp.c
+++ b/misc/mkdtemp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
diff --git a/misc/mkostemp.c b/misc/mkostemp.c
index 4ef55003bf..be951344ac 100644
--- a/misc/mkostemp.c
+++ b/misc/mkostemp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fcntl.h>
#include <stdio.h>
diff --git a/misc/mkostemp64.c b/misc/mkostemp64.c
index 6563112921..dc3450952a 100644
--- a/misc/mkostemp64.c
+++ b/misc/mkostemp64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fcntl.h>
#include <stdio.h>
diff --git a/misc/mkostemps.c b/misc/mkostemps.c
index 3f93670092..1f1db30e43 100644
--- a/misc/mkostemps.c
+++ b/misc/mkostemps.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/misc/mkostemps64.c b/misc/mkostemps64.c
index 279d5d9a93..5218b3dda8 100644
--- a/misc/mkostemps64.c
+++ b/misc/mkostemps64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/misc/mkstemp.c b/misc/mkstemp.c
index 373141353a..0251df16b8 100644
--- a/misc/mkstemp.c
+++ b/misc/mkstemp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fcntl.h>
#include <stdio.h>
diff --git a/misc/mkstemp64.c b/misc/mkstemp64.c
index f83f207b6b..a1236bbefd 100644
--- a/misc/mkstemp64.c
+++ b/misc/mkstemp64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fcntl.h>
#include <stdio.h>
diff --git a/misc/mkstemps.c b/misc/mkstemps.c
index 8b90b095bc..fa6dd7fdce 100644
--- a/misc/mkstemps.c
+++ b/misc/mkstemps.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/misc/mkstemps64.c b/misc/mkstemps64.c
index 37bda50646..82afad1aa5 100644
--- a/misc/mkstemps64.c
+++ b/misc/mkstemps64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/misc/mktemp.c b/misc/mktemp.c
index 1417ab37f4..8c0c1bddf7 100644
--- a/misc/mktemp.c
+++ b/misc/mktemp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
diff --git a/misc/mlock.c b/misc/mlock.c
index 49827d0d6a..822b66a5d0 100644
--- a/misc/mlock.c
+++ b/misc/mlock.c
@@ -1,5 +1,5 @@
/* mlock -- guarantee pages are resident in memory. Stub version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <sys/mman.h>
diff --git a/misc/mlockall.c b/misc/mlockall.c
index 98dbbd3814..38929eabf1 100644
--- a/misc/mlockall.c
+++ b/misc/mlockall.c
@@ -1,5 +1,5 @@
/* mlockall -- lock in core all the pages in this process. Stub version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <sys/mman.h>
diff --git a/misc/mmap.c b/misc/mmap.c
index f92218ce57..3607a7fda1 100644
--- a/misc/mmap.c
+++ b/misc/mmap.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <sys/mman.h>
diff --git a/misc/mmap64.c b/misc/mmap64.c
index e4a22742f4..1a8aa4c16a 100644
--- a/misc/mmap64.c
+++ b/misc/mmap64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/mman.h>
diff --git a/misc/mntent.c b/misc/mntent.c
index 6718b56553..326c9cd641 100644
--- a/misc/mntent.c
+++ b/misc/mntent.c
@@ -1,5 +1,5 @@
/* Utilities for reading/writing fstab, mtab, etc.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,40 +14,45 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <mntent.h>
#include <stdlib.h>
-#include <libc-lock.h>
+#include <allocate_once.h>
-/* We don't want to allocate the static buffer all the time since it
- is not always used (in fact, rather infrequently). Accept the
- extra cost of a `malloc'. */
-libc_freeres_ptr (static char *getmntent_buffer);
+struct mntent_buffer
+{
+ struct mntent m;
+ char buffer[4096];
+};
-/* This is the size of the buffer. This is really big. */
-#define BUFFER_SIZE 4096
+/* We don't want to allocate the static buffer all the time since it
+ is not always used (in fact, rather infrequently). */
+libc_freeres_ptr (static void *mntent_buffer);
+static void *
+allocate (void *closure)
+{
+ return malloc (sizeof (struct mntent_buffer));
+}
static void
-allocate (void)
+deallocate (void *closure, void *ptr)
{
- getmntent_buffer = (char *) malloc (BUFFER_SIZE);
+ free (ptr);
}
-
struct mntent *
getmntent (FILE *stream)
{
- static struct mntent m;
- __libc_once_define (static, once);
- __libc_once (once, allocate);
-
- if (getmntent_buffer == NULL)
+ struct mntent_buffer *buffer = allocate_once (&mntent_buffer,
+ allocate, deallocate, NULL);
+ if (buffer == NULL)
/* If no core is available we don't have a chance to run the
program successfully and so returning NULL is an acceptable
result. */
return NULL;
- return __getmntent_r (stream, &m, getmntent_buffer, BUFFER_SIZE);
+ return __getmntent_r (stream, &buffer->m,
+ buffer->buffer, sizeof (buffer->buffer));
}
diff --git a/misc/mntent.h b/misc/mntent.h
index 9af685fae0..8cc0844492 100644
--- a/misc/mntent.h
+++ b/misc/mntent.h
@@ -1,5 +1,5 @@
/* Utilities for reading/writing fstab, mtab, etc.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MNTENT_H
#define _MNTENT_H 1
diff --git a/misc/mntent_r.c b/misc/mntent_r.c
index 7a82658654..cc849f8613 100644
--- a/misc/mntent_r.c
+++ b/misc/mntent_r.c
@@ -1,5 +1,5 @@
/* Utilities for reading/writing fstab, mtab, etc.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,10 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <alloca.h>
#include <mntent.h>
+#include <stdbool.h>
#include <stdio.h>
#include <stdio_ext.h>
#include <string.h>
@@ -112,26 +113,18 @@ decode_name (char *buf)
return buf;
}
-
-/* Read one mount table entry from STREAM. Returns a pointer to storage
- reused on the next call, or null for EOF or error (use feof/ferror to
- check). */
-struct mntent *
-__getmntent_r (FILE *stream, struct mntent *mp, char *buffer, int bufsiz)
+static bool
+get_mnt_entry (FILE *stream, struct mntent *mp, char *buffer, int bufsiz)
{
char *cp;
char *head;
- flockfile (stream);
do
{
char *end_ptr;
if (__fgets_unlocked (buffer, bufsiz, stream) == NULL)
- {
- funlockfile (stream);
- return NULL;
- }
+ return false;
end_ptr = strchr (buffer, '\n');
if (end_ptr != NULL) /* chop newline */
@@ -174,14 +167,47 @@ __getmntent_r (FILE *stream, struct mntent *mp, char *buffer, int bufsiz)
{
case 0:
mp->mnt_freq = 0;
+ /* Fall through. */
case 1:
mp->mnt_passno = 0;
+ /* Fall through. */
case 2:
break;
}
+
+ return true;
+}
+
+/* Read one mount table entry from STREAM. Returns a pointer to storage
+ reused on the next call, or null for EOF or error (use feof/ferror to
+ check). */
+struct mntent *
+__getmntent_r (FILE *stream, struct mntent *mp, char *buffer, int bufsiz)
+{
+ struct mntent *result;
+
+ flockfile (stream);
+ while (true)
+ if (get_mnt_entry (stream, mp, buffer, bufsiz))
+ {
+ /* If the file system is autofs look for a mount option hint
+ ("ignore") to skip the entry. */
+ if (strcmp (mp->mnt_type, "autofs") == 0 && __hasmntopt (mp, "ignore"))
+ memset (mp, 0, sizeof (*mp));
+ else
+ {
+ result = mp;
+ break;
+ }
+ }
+ else
+ {
+ result = NULL;
+ break;
+ }
funlockfile (stream);
- return mp;
+ return result;
}
libc_hidden_def (__getmntent_r)
weak_alias (__getmntent_r, getmntent_r)
diff --git a/misc/mprotect.c b/misc/mprotect.c
index 4a08f2f67b..bd3a6f62a7 100644
--- a/misc/mprotect.c
+++ b/misc/mprotect.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <sys/mman.h>
diff --git a/misc/msync.c b/misc/msync.c
index 9785068444..bc953d74fe 100644
--- a/misc/msync.c
+++ b/misc/msync.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <sys/mman.h>
diff --git a/misc/munlock.c b/misc/munlock.c
index 710aedf4ad..be3461f0b8 100644
--- a/misc/munlock.c
+++ b/misc/munlock.c
@@ -1,5 +1,5 @@
/* munlock -- undo the effects of prior mlock calls. Stub version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <sys/mman.h>
diff --git a/misc/munlockall.c b/misc/munlockall.c
index a948d07d42..131b522861 100644
--- a/misc/munlockall.c
+++ b/misc/munlockall.c
@@ -1,5 +1,5 @@
/* munlockall -- undo the effects of all prior mlock calls. Stub version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <sys/mman.h>
diff --git a/misc/munmap.c b/misc/munmap.c
index 5237e4ed69..2fc08f9186 100644
--- a/misc/munmap.c
+++ b/misc/munmap.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <sys/mman.h>
diff --git a/misc/preadv.c b/misc/preadv.c
index da6a325db0..8d1ae0ff3f 100644
--- a/misc/preadv.c
+++ b/misc/preadv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/misc/preadv2.c b/misc/preadv2.c
index 63fd8942c1..38d4f27c10 100644
--- a/misc/preadv2.c
+++ b/misc/preadv2.c
@@ -1,5 +1,5 @@
/* Default implementation of preadv2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/uio.h>
diff --git a/misc/preadv64.c b/misc/preadv64.c
index 810e364433..7303b97a9c 100644
--- a/misc/preadv64.c
+++ b/misc/preadv64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/misc/preadv64v2.c b/misc/preadv64v2.c
index 728ebc35da..3612934693 100644
--- a/misc/preadv64v2.c
+++ b/misc/preadv64v2.c
@@ -1,5 +1,5 @@
/* Default implementation of preadv2 (LFS version).
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/uio.h>
diff --git a/misc/pselect.c b/misc/pselect.c
index 2c29230596..b53d9cdcc1 100644
--- a/misc/pselect.c
+++ b/misc/pselect.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
@@ -14,15 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
-#include <signal.h>
-#include <stddef.h> /* For NULL. */
-#include <sys/time.h>
#include <sys/select.h>
-#include <sysdep-cancel.h>
-
/* Check the first NFDS descriptors each in READFDS (if not NULL) for read
readiness, in WRITEFDS (if not NULL) for write readiness, and in EXCEPTFDS
@@ -34,45 +29,8 @@ int
__pselect (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
const struct timespec *timeout, const sigset_t *sigmask)
{
- struct timeval tval;
- int retval;
- sigset_t savemask;
-
- /* Change nanosecond number to microseconds. This might mean losing
- precision and therefore the `pselect` should be available. But
- for now it is hardly found. */
- if (timeout != NULL)
- {
- /* Catch bugs which would be hidden by the TIMESPEC_TO_TIMEVAL
- computations. The division by 1000 truncates values. */
- if (__glibc_unlikely (timeout->tv_nsec < 0))
- {
- __set_errno (EINVAL);
- return -1;
- }
-
- TIMESPEC_TO_TIMEVAL (&tval, timeout);
- }
-
- /* The setting and restoring of the signal mask and the select call
- should be an atomic operation. This can't be done without kernel
- help. */
- if (sigmask != NULL)
- __sigprocmask (SIG_SETMASK, sigmask, &savemask);
-
- /* Note the pselect() is a cancellation point. But since we call
- select() which itself is a cancellation point we do not have
- to do anything here. */
- retval = __select (nfds, readfds, writefds, exceptfds,
- timeout != NULL ? &tval : NULL);
-
- if (sigmask != NULL)
- __sigprocmask (SIG_SETMASK, &savemask, NULL);
-
- return retval;
+ __set_errno (ENOSYS);
+ return -1;
}
-#ifndef __pselect
weak_alias (__pselect, pselect)
-/* __select handles cancellation. */
-LIBC_CANCEL_HANDLED ();
-#endif
+stub_warning (pselect)
diff --git a/misc/ptrace.c b/misc/ptrace.c
index 244f130610..5c06c4c024 100644
--- a/misc/ptrace.c
+++ b/misc/ptrace.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/ptrace.h>
diff --git a/misc/pwritev.c b/misc/pwritev.c
index 7a9e7c8dbf..643f9b159f 100644
--- a/misc/pwritev.c
+++ b/misc/pwritev.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/misc/pwritev2.c b/misc/pwritev2.c
index 69f11d8922..3208c87db2 100644
--- a/misc/pwritev2.c
+++ b/misc/pwritev2.c
@@ -1,5 +1,5 @@
/* Default implementation of pwritev2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/uio.h>
diff --git a/misc/pwritev64.c b/misc/pwritev64.c
index 348e10c3d0..cb01cb9d55 100644
--- a/misc/pwritev64.c
+++ b/misc/pwritev64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/misc/pwritev64v2.c b/misc/pwritev64v2.c
index 6230e72222..2031b8e9cc 100644
--- a/misc/pwritev64v2.c
+++ b/misc/pwritev64v2.c
@@ -1,5 +1,5 @@
/* Default implementation of pwritev2 (LFS version).
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/uio.h>
diff --git a/misc/qefgcvt.c b/misc/qefgcvt.c
index 88033a5ac7..4fcadfcdc2 100644
--- a/misc/qefgcvt.c
+++ b/misc/qefgcvt.c
@@ -1,5 +1,5 @@
/* Compatibility functions for floating point formatting, long double version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <float.h>
diff --git a/misc/qefgcvt_r.c b/misc/qefgcvt_r.c
index 341d06a58b..8f4d8b9f7a 100644
--- a/misc/qefgcvt_r.c
+++ b/misc/qefgcvt_r.c
@@ -1,6 +1,6 @@
/* Compatibility functions for floating point formatting, reentrant,
long double versions.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <float.h>
diff --git a/misc/readv.c b/misc/readv.c
index 17d967a496..23475a29d4 100644
--- a/misc/readv.c
+++ b/misc/readv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/misc/reboot.c b/misc/reboot.c
index 640c7a32f1..deb51fc65a 100644
--- a/misc/reboot.c
+++ b/misc/reboot.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/misc/regexp.c b/misc/regexp.c
index 0996f1d939..5c8a441b0e 100644
--- a/misc/regexp.c
+++ b/misc/regexp.c
@@ -1,5 +1,5 @@
/* Compatibility symbols for the obsolete <regexp.h> interface.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* regexp.h now contains only an #error directive, so it cannot be
used in this file.
diff --git a/misc/regexp.h b/misc/regexp.h
index b15f43b909..c4249b0270 100644
--- a/misc/regexp.h
+++ b/misc/regexp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _REGEXP_H
#define _REGEXP_H 1
diff --git a/misc/remap_file_pages.c b/misc/remap_file_pages.c
index 36e942fd96..de7a41319f 100644
--- a/misc/remap_file_pages.c
+++ b/misc/remap_file_pages.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/mman.h>
#include <errno.h>
diff --git a/misc/removexattr.c b/misc/removexattr.c
index 56d29fce9e..f3da81d742 100644
--- a/misc/removexattr.c
+++ b/misc/removexattr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/xattr.h>
diff --git a/misc/revoke.c b/misc/revoke.c
index 28269a05d0..9e14385b0c 100644
--- a/misc/revoke.c
+++ b/misc/revoke.c
@@ -1,5 +1,5 @@
/* Revoke the access of all descriptors currently open on a file.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <errno.h>
diff --git a/misc/sbrk.c b/misc/sbrk.c
index e0747ace8d..96b48e99d3 100644
--- a/misc/sbrk.c
+++ b/misc/sbrk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdint.h>
diff --git a/misc/search.h b/misc/search.h
index 4cd1bff09f..71ad9db42d 100644
--- a/misc/search.h
+++ b/misc/search.h
@@ -1,5 +1,5 @@
/* Declarations for System V style searching functions.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SEARCH_H
#define _SEARCH_H 1
@@ -150,6 +150,13 @@ typedef void (*__action_fn_t) (const void *__nodep, VISIT __value,
extern void twalk (const void *__root, __action_fn_t __action);
#ifdef __USE_GNU
+/* Like twalk, but pass down a closure parameter instead of the
+ level. */
+extern void twalk_r (const void *__root,
+ void (*) (const void *__nodep, VISIT __value,
+ void *__closure),
+ void *__closure);
+
/* Callback type for function to free a tree node. If the keys are atomic
data this function should do nothing. */
typedef void (*__free_fn_t) (void *__nodep);
diff --git a/misc/select.c b/misc/select.c
index 58c4688876..16b4a49197 100644
--- a/misc/select.c
+++ b/misc/select.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/time.h>
#include <sys/types.h>
diff --git a/misc/setdomain.c b/misc/setdomain.c
index e2990939a1..1febb5546a 100644
--- a/misc/setdomain.c
+++ b/misc/setdomain.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/misc/setegid.c b/misc/setegid.c
index 5c70e4545d..ba7803350b 100644
--- a/misc/setegid.c
+++ b/misc/setegid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/misc/seteuid.c b/misc/seteuid.c
index 4c8bf10945..38c917a5af 100644
--- a/misc/seteuid.c
+++ b/misc/seteuid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/misc/sethostid.c b/misc/sethostid.c
index 5249ed123f..3dcc26cd34 100644
--- a/misc/sethostid.c
+++ b/misc/sethostid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/misc/sethostname.c b/misc/sethostname.c
index 98608e519a..2d9bf0a20b 100644
--- a/misc/sethostname.c
+++ b/misc/sethostname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/misc/setregid.c b/misc/setregid.c
index b4400fcfd9..4a509ef212 100644
--- a/misc/setregid.c
+++ b/misc/setregid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/misc/setreuid.c b/misc/setreuid.c
index 696c54760c..60f181739c 100644
--- a/misc/setreuid.c
+++ b/misc/setreuid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/misc/setxattr.c b/misc/setxattr.c
index 0877a0e299..7ea8a40fb6 100644
--- a/misc/setxattr.c
+++ b/misc/setxattr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/xattr.h>
diff --git a/misc/sgtty.h b/misc/sgtty.h
index baa7005446..089efbca2f 100644
--- a/misc/sgtty.h
+++ b/misc/sgtty.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SGTTY_H
#define _SGTTY_H 1
diff --git a/misc/sstk.c b/misc/sstk.c
index 4caa01f7c2..40b3077959 100644
--- a/misc/sstk.c
+++ b/misc/sstk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
diff --git a/misc/stty.c b/misc/stty.c
index 3c7d0d042e..8e74511de2 100644
--- a/misc/stty.c
+++ b/misc/stty.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sgtty.h>
diff --git a/misc/swapoff.c b/misc/swapoff.c
index c0853febdc..0562eb960b 100644
--- a/misc/swapoff.c
+++ b/misc/swapoff.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/misc/swapon.c b/misc/swapon.c
index 6224fe3aa9..2fa11da1e2 100644
--- a/misc/swapon.c
+++ b/misc/swapon.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/misc/sync.c b/misc/sync.c
index f8c51e780d..84794b327e 100644
--- a/misc/sync.c
+++ b/misc/sync.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/misc/syncfs.c b/misc/syncfs.c
index 5195e56b4e..0d994663be 100644
--- a/misc/syncfs.c
+++ b/misc/syncfs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* 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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/misc/sys/auxv.h b/misc/sys/auxv.h
index 0d75a1d1cc..74c8c029a6 100644
--- a/misc/sys/auxv.h
+++ b/misc/sys/auxv.h
@@ -1,5 +1,5 @@
/* Access to the auxiliary vector.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_AUXV_H
#define _SYS_AUXV_H 1
diff --git a/misc/sys/cdefs.h b/misc/sys/cdefs.h
index 3f6fe3cc85..467dbd9547 100644
--- a/misc/sys/cdefs.h
+++ b/misc/sys/cdefs.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_CDEFS_H
#define _SYS_CDEFS_H 1
@@ -256,8 +256,8 @@
/* Since version 4.5, gcc also allows one to specify the message printed
when a deprecated function is used. clang claims to be gcc 4.2, but
may also support this feature. */
-#if __GNUC_PREREQ (4,5) || \
- __glibc_clang_has_extension (__attribute_deprecated_with_message__)
+#if __GNUC_PREREQ (4,5) \
+ || __glibc_clang_has_extension (__attribute_deprecated_with_message__)
# define __attribute_deprecated_msg__(msg) \
__attribute__ ((__deprecated__ (msg)))
#else
@@ -337,7 +337,7 @@
semantics.
clang++ identifies itself as gcc-4.2, but has support for GNU inlining
- semantics, that can be checked fot by using the __GNUC_STDC_INLINE_ and
+ semantics, that can be checked for by using the __GNUC_STDC_INLINE_ and
__GNUC_GNU_INLINE__ macro definitions. */
#if (!defined __cplusplus || __GNUC_PREREQ (4,3) \
|| (defined __clang__ && (defined __GNUC_STDC_INLINE__ \
@@ -431,6 +431,16 @@
# define __attribute_nonstring__
#endif
+/* Undefine (also defined in libc-symbols.h). */
+#undef __attribute_copy__
+#if __GNUC_PREREQ (9, 0)
+/* Copies attributes from the declaration or type referenced by
+ the argument. */
+# define __attribute_copy__(arg) __attribute__ ((__copy__ (arg)))
+#else
+# define __attribute_copy__(arg)
+#endif
+
#if (!defined _Static_assert && !defined __cplusplus \
&& (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) < 201112 \
&& (!__GNUC_PREREQ (4, 6) || defined __STRICT_ANSI__))
diff --git a/misc/sys/dir.h b/misc/sys/dir.h
index c4dbfcce71..f17844fbe5 100644
--- a/misc/sys/dir.h
+++ b/misc/sys/dir.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_DIR_H
#define _SYS_DIR_H 1
diff --git a/misc/sys/file.h b/misc/sys/file.h
index 86abfa18de..06184d67c2 100644
--- a/misc/sys/file.h
+++ b/misc/sys/file.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_FILE_H
#define _SYS_FILE_H 1
diff --git a/misc/sys/ioctl.h b/misc/sys/ioctl.h
index 49f7ff1294..177b692540 100644
--- a/misc/sys/ioctl.h
+++ b/misc/sys/ioctl.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_IOCTL_H
#define _SYS_IOCTL_H 1
diff --git a/misc/sys/mman.h b/misc/sys/mman.h
index 12e1b069d6..58c12de1b0 100644
--- a/misc/sys/mman.h
+++ b/misc/sys/mman.h
@@ -1,5 +1,5 @@
/* Definitions for BSD-style memory management.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_MMAN_H
#define _SYS_MMAN_H 1
diff --git a/misc/sys/param.h b/misc/sys/param.h
index 359bc96056..0e1a6f7887 100644
--- a/misc/sys/param.h
+++ b/misc/sys/param.h
@@ -1,5 +1,5 @@
/* Compatibility header for old-style Unix parameters and limits.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_PARAM_H
#define _SYS_PARAM_H 1
diff --git a/misc/sys/select.h b/misc/sys/select.h
index 6dd0c83227..4e47f3fe13 100644
--- a/misc/sys/select.h
+++ b/misc/sys/select.h
@@ -1,5 +1,5 @@
/* `fd_set' type and related macros, and `select'/`pselect' declarations.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h> */
diff --git a/misc/sys/sysmacros.h b/misc/sys/sysmacros.h
index 699e03865f..cfadaff0d9 100644
--- a/misc/sys/sysmacros.h
+++ b/misc/sys/sysmacros.h
@@ -1,5 +1,5 @@
/* Definitions of macros to access `dev_t' values.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_SYSMACROS_H
#define _SYS_SYSMACROS_H 1
diff --git a/misc/sys/uio.h b/misc/sys/uio.h
index ff586c7b16..b496cf4554 100644
--- a/misc/sys/uio.h
+++ b/misc/sys/uio.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_UIO_H
#define _SYS_UIO_H 1
diff --git a/misc/sys/xattr.h b/misc/sys/xattr.h
index 5278cc2727..93393bbc94 100644
--- a/misc/sys/xattr.h
+++ b/misc/sys/xattr.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_XATTR_H
#define _SYS_XATTR_H 1
diff --git a/misc/syscall.c b/misc/syscall.c
index f15b64c570..5100c2b5b3 100644
--- a/misc/syscall.c
+++ b/misc/syscall.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <errno.h>
diff --git a/misc/syslog.c b/misc/syslog.c
index 644dbe80ec..fd6537edf6 100644
--- a/misc/syslog.c
+++ b/misc/syslog.c
@@ -53,7 +53,7 @@ static char sccsid[] = "@(#)syslog.c 8.4 (Berkeley) 3/18/94";
#include <stdarg.h>
-#include <libio/iolibio.h>
+#include <libio/libioP.h>
#include <math_ldbl_opt.h>
#include <kernel-features.h>
@@ -114,25 +114,39 @@ __syslog(int pri, const char *fmt, ...)
va_list ap;
va_start(ap, fmt);
- __vsyslog_chk(pri, -1, fmt, ap);
+ __vsyslog_internal(pri, fmt, ap, 0);
va_end(ap);
}
ldbl_hidden_def (__syslog, syslog)
ldbl_strong_alias (__syslog, syslog)
void
+__vsyslog(int pri, const char *fmt, va_list ap)
+{
+ __vsyslog_internal(pri, fmt, ap, 0);
+}
+ldbl_weak_alias (__vsyslog, vsyslog)
+
+void
__syslog_chk(int pri, int flag, const char *fmt, ...)
{
va_list ap;
va_start(ap, fmt);
- __vsyslog_chk(pri, flag, fmt, ap);
+ __vsyslog_internal(pri, fmt, ap, (flag > 0) ? PRINTF_FORTIFY : 0);
va_end(ap);
}
void
__vsyslog_chk(int pri, int flag, const char *fmt, va_list ap)
{
+ __vsyslog_internal(pri, fmt, ap, (flag > 0) ? PRINTF_FORTIFY : 0);
+}
+
+void
+__vsyslog_internal(int pri, const char *fmt, va_list ap,
+ unsigned int mode_flags)
+{
struct tm now_tm;
time_t now;
int fd;
@@ -191,7 +205,7 @@ __vsyslog_chk(int pri, int flag, const char *fmt, va_list ap)
{
__fsetlocking (f, FSETLOCKING_BYCALLER);
fprintf (f, "<%d>", pri);
- (void) time (&now);
+ now = time_now ();
f->_IO_write_ptr += __strftime_l (f->_IO_write_ptr,
f->_IO_write_end
- f->_IO_write_ptr,
@@ -215,11 +229,8 @@ __vsyslog_chk(int pri, int flag, const char *fmt, va_list ap)
__set_errno (saved_errno);
/* We have the header. Print the user's format into the
- buffer. */
- if (flag == -1)
- vfprintf (f, fmt, ap);
- else
- __vfprintf_chk (f, flag, fmt, ap);
+ buffer. */
+ __vfprintf_internal (f, fmt, ap, mode_flags);
/* Close the memory stream; this will finalize the data
into a malloc'd buffer in BUF. */
@@ -316,15 +327,6 @@ __vsyslog_chk(int pri, int flag, const char *fmt, va_list ap)
if (buf != failbuf)
free (buf);
}
-libc_hidden_def (__vsyslog_chk)
-
-void
-__vsyslog(int pri, const char *fmt, va_list ap)
-{
- __vsyslog_chk (pri, -1, fmt, ap);
-}
-ldbl_hidden_def (__vsyslog, vsyslog)
-ldbl_weak_alias (__vsyslog, vsyslog)
static struct sockaddr_un SyslogAddr; /* AF_UNIX address of local logger */
diff --git a/misc/truncate.c b/misc/truncate.c
index 52a2682050..8a9e50ade5 100644
--- a/misc/truncate.c
+++ b/misc/truncate.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <errno.h>
diff --git a/misc/truncate64.c b/misc/truncate64.c
index fd50da2531..98e903d42c 100644
--- a/misc/truncate64.c
+++ b/misc/truncate64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <errno.h>
diff --git a/misc/tsearch.c b/misc/tsearch.c
index caca1b496c..5f0dc77192 100644
--- a/misc/tsearch.c
+++ b/misc/tsearch.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Tree search for red/black trees.
The algorithm for adding nodes is taken from one of the many "Algorithms"
@@ -719,7 +719,41 @@ __twalk (const void *vroot, __action_fn_t action)
libc_hidden_def (__twalk)
weak_alias (__twalk, twalk)
+/* twalk_r is the same as twalk, but with a closure parameter instead
+ of the level. */
+static void
+trecurse_r (const void *vroot, void (*action) (const void *, VISIT, void *),
+ void *closure)
+{
+ const_node root = (const_node) vroot;
+ if (LEFT(root) == NULL && RIGHT(root) == NULL)
+ (*action) (root, leaf, closure);
+ else
+ {
+ (*action) (root, preorder, closure);
+ if (LEFT(root) != NULL)
+ trecurse_r (LEFT(root), action, closure);
+ (*action) (root, postorder, closure);
+ if (RIGHT(root) != NULL)
+ trecurse_r (RIGHT(root), action, closure);
+ (*action) (root, endorder, closure);
+ }
+}
+
+void
+__twalk_r (const void *vroot, void (*action) (const void *, VISIT, void *),
+ void *closure)
+{
+ const_node root = (const_node) vroot;
+
+ CHECK_TREE ((node) root);
+
+ if (root != NULL && action != NULL)
+ trecurse_r (root, action, closure);
+}
+libc_hidden_def (__twalk_r)
+weak_alias (__twalk_r, twalk_r)
/* The standardized functions miss an important functionality: the
tree cannot be removed easily. We provide a function to do this. */
diff --git a/misc/tst-allocate_once.c b/misc/tst-allocate_once.c
index 89277b33b7..3df70ae3b4 100644
--- a/misc/tst-allocate_once.c
+++ b/misc/tst-allocate_once.c
@@ -1,5 +1,5 @@
/* Test the allocate_once function.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <allocate_once.h>
#include <mcheck.h>
diff --git a/misc/tst-atomic-long.c b/misc/tst-atomic-long.c
index e5caa10760..0afbe87ad7 100644
--- a/misc/tst-atomic-long.c
+++ b/misc/tst-atomic-long.c
@@ -1,5 +1,5 @@
/* Tests for atomic.h macros.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <bits/wordsize.h>
diff --git a/misc/tst-atomic.c b/misc/tst-atomic.c
index 90a309bcd3..03d0dadbf3 100644
--- a/misc/tst-atomic.c
+++ b/misc/tst-atomic.c
@@ -1,5 +1,5 @@
/* Tests for atomic.h macros.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <atomic.h>
diff --git a/misc/tst-dbl-efgcvt.c b/misc/tst-dbl-efgcvt.c
new file mode 100644
index 0000000000..a6cf28f929
--- /dev/null
+++ b/misc/tst-dbl-efgcvt.c
@@ -0,0 +1,36 @@
+/* Tests for *cvt function, double version.
+ Copyright (C) 1998-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <float.h>
+
+#define ECVT ecvt
+#define FCVT fcvt
+#define ECVT_R ecvt_r
+#define FCVT_R fcvt_r
+#define FLOAT double
+#define PRINTF_CONVERSION "%f"
+
+#if DBL_MANT_DIG == 53
+# define EXTRA_ECVT_TESTS \
+ { 0x1p-1074, 3, -323, "494" }, \
+ { -0x1p-1074, 3, -323, "494" },
+#else
+# define EXTRA_ECVT_TESTS
+#endif
+
+#include <tst-efgcvt-template.c>
diff --git a/misc/tst-dirname.c b/misc/tst-dirname.c
index 714b67aa53..4f16bf2609 100644
--- a/misc/tst-dirname.c
+++ b/misc/tst-dirname.c
@@ -1,5 +1,5 @@
/* Test program for dirname function a la XPG.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _GNU_SOURCE 1
#include <libgen.h>
diff --git a/misc/tst-efgcvt-template.c b/misc/tst-efgcvt-template.c
new file mode 100644
index 0000000000..9b7ad0e1a1
--- /dev/null
+++ b/misc/tst-efgcvt-template.c
@@ -0,0 +1,235 @@
+/* Copyright (C) 1998-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
+ <https://www.gnu.org/licenses/>. */
+
+/* This template provides testing for the *cvt family of functions,
+ which deal with double or long double types. In order to use the
+ template, the following macros must be defined before inclusion of
+ this template:
+
+ FLOAT: The floating-point type, i.e. double or long double.
+
+ ECVT: Appropriate *ecvt function for FLOAT, i.e. ecvt or qecvt.
+ FCVT: Likewise for *fcvt, i.e. fcvt or qfcvt.
+ ECVT_R: Likewise for *ecvt_r, i.e. ecvt_r or qecvt_r.
+ FCVT_R: Likewise for *fcvt_r, i.e. fcvt_r or qfcvt_r.
+
+ PRINTF_CONVERSION: The appropriate printf conversion specifier with
+ length modifier for FLOAT, i.e. "%f" or "%Lf".
+
+ EXTRA_ECVT_TESTS: Additional tests for the ecvt or qecvt function
+ that are only relevant to a particular floating-point type and
+ cannot be represented generically. */
+
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
+
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <support/check.h>
+
+#define NAME(x) NAMEX(x)
+#define NAMEX(x) #x
+
+typedef struct
+{
+ FLOAT value;
+ int ndigit;
+ int decpt;
+ char result[30];
+} testcase;
+
+typedef char * ((*efcvt_func) (FLOAT, int, int *, int *));
+
+typedef int ((*efcvt_r_func) (FLOAT, int, int *, int *, char *, size_t));
+
+
+static testcase ecvt_tests[] =
+{
+ { 0.0, 0, 1, "" },
+ { 10.0, 0, 2, "" },
+ { 10.0, 1, 2, "1" },
+ { 10.0, 5, 2, "10000" },
+ { -12.0, 5, 2, "12000" },
+ { 0.2, 4, 0, "2000" },
+ { 0.02, 4, -1, "2000" },
+ { 5.5, 1, 1, "6" },
+ { 1.0, -1, 1, "" },
+ { 0.01, 2, -1, "10" },
+ { 100.0, -2, 3, "" },
+ { 100.0, -5, 3, "" },
+ { 100.0, -4, 3, "" },
+ { 100.01, -4, 3, "" },
+ { 123.01, -4, 3, "" },
+ { 126.71, -4, 3, "" },
+ { 0.0, 4, 1, "0000" },
+ EXTRA_ECVT_TESTS
+ /* -1.0 is end marker. */
+ { -1.0, 0, 0, "" }
+};
+
+static testcase fcvt_tests[] =
+{
+ { 0.0, 0, 1, "0" },
+ { 10.0, 0, 2, "10" },
+ { 10.0, 1, 2, "100" },
+ { 10.0, 4, 2, "100000" },
+ { -12.0, 5, 2, "1200000" },
+ { 0.2, 4, 0, "2000" },
+ { 0.02, 4, -1, "200" },
+ { 5.5, 1, 1, "55" },
+ { 5.5, 0, 1, "6" },
+ { 0.01, 2, -1, "1" },
+ { 100.0, -2, 3, "100" },
+ { 100.0, -5, 3, "100" },
+ { 100.0, -4, 3, "100" },
+ { 100.01, -4, 3, "100" },
+ { 123.01, -4, 3, "100" },
+ { 126.71, -4, 3, "100" },
+ { 322.5, 16, 3, "3225000000000000000" },
+ /* -1.0 is end marker. */
+ { -1.0, 0, 0, "" }
+};
+
+static void
+output_error (const char *name, FLOAT value, int ndigit,
+ const char *exp_p, int exp_decpt, int exp_sign,
+ char *res_p, int res_decpt, int res_sign)
+{
+ printf ("%s returned wrong result for value: " PRINTF_CONVERSION
+ ", ndigits: %d\n",
+ name, value, ndigit);
+ printf ("Result was p: \"%s\", decpt: %d, sign: %d\n",
+ res_p, res_decpt, res_sign);
+ printf ("Should be p: \"%s\", decpt: %d, sign: %d\n",
+ exp_p, exp_decpt, exp_sign);
+ support_record_failure ();
+}
+
+
+static void
+output_r_error (const char *name, FLOAT value, int ndigit,
+ const char *exp_p, int exp_decpt, int exp_sign, int exp_return,
+ char *res_p, int res_decpt, int res_sign, int res_return)
+{
+ printf ("%s returned wrong result for value: " PRINTF_CONVERSION
+ ", ndigits: %d\n",
+ name, value, ndigit);
+ printf ("Result was buf: \"%s\", decpt: %d, sign: %d return value: %d\n",
+ res_p, res_decpt, res_sign, res_return);
+ printf ("Should be buf: \"%s\", decpt: %d, sign: %d\n",
+ exp_p, exp_decpt, exp_sign);
+ support_record_failure ();
+}
+
+static void
+test (testcase tests[], efcvt_func efcvt, const char *name)
+{
+ int no = 0;
+ int decpt, sign;
+ char *p;
+
+ while (tests[no].value != -1.0)
+ {
+ p = efcvt (tests[no].value, tests[no].ndigit, &decpt, &sign);
+ if (decpt != tests[no].decpt
+ || sign != (tests[no].value < 0)
+ || strcmp (p, tests[no].result) != 0)
+ output_error (name, tests[no].value, tests[no].ndigit,
+ tests[no].result, tests[no].decpt,
+ (tests[no].value < 0),
+ p, decpt, sign);
+ ++no;
+ }
+}
+
+static void
+test_r (testcase tests[], efcvt_r_func efcvt_r, const char *name)
+{
+ int no = 0;
+ int decpt, sign, res;
+ char buf [1024];
+
+
+ while (tests[no].value != -1.0)
+ {
+ res = efcvt_r (tests[no].value, tests[no].ndigit, &decpt, &sign,
+ buf, sizeof (buf));
+ if (res != 0
+ || decpt != tests[no].decpt
+ || sign != (tests[no].value < 0)
+ || strcmp (buf, tests[no].result) != 0)
+ output_r_error (name, tests[no].value, tests[no].ndigit,
+ tests[no].result, tests[no].decpt, 0,
+ (tests[no].value < 0),
+ buf, decpt, sign, res);
+ ++no;
+ }
+}
+
+static void
+special (void)
+{
+ int decpt, sign, res;
+ char *p;
+ char buf [1024];
+
+ p = ECVT (NAN, 10, &decpt, &sign);
+ if (sign != 0 || strcmp (p, "nan") != 0)
+ output_error (NAME (ECVT), NAN, 10, "nan", 0, 0, p, decpt, sign);
+
+ p = ECVT (INFINITY, 10, &decpt, &sign);
+ if (sign != 0 || strcmp (p, "inf") != 0)
+ output_error (NAME (ECVT), INFINITY, 10, "inf", 0, 0, p, decpt, sign);
+
+ /* Simply make sure these calls with large NDIGITs don't crash. */
+ (void) ECVT (123.456, 10000, &decpt, &sign);
+ (void) FCVT (123.456, 10000, &decpt, &sign);
+
+ /* Some tests for the reentrant functions. */
+ /* Use a too small buffer. */
+ res = ECVT_R (123.456, 10, &decpt, &sign, buf, 1);
+ if (res == 0)
+ {
+ printf (NAME (ECVT_R) " with a too small buffer was succesful.\n");
+ support_record_failure ();
+ }
+ res = FCVT_R (123.456, 10, &decpt, &sign, buf, 1);
+ if (res == 0)
+ {
+ printf (NAME (FCVT_R) " with a too small buffer was succesful.\n");
+ support_record_failure ();
+ }
+}
+
+
+static int
+do_test (void)
+{
+ test (ecvt_tests, ECVT, NAME (ECVT));
+ test (fcvt_tests, FCVT, NAME (FCVT));
+ test_r (ecvt_tests, ECVT_R, NAME (ECVT_R));
+ test_r (fcvt_tests, FCVT_R, NAME (FCVT_R));
+ special ();
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/misc/tst-efgcvt.c b/misc/tst-efgcvt.c
deleted file mode 100644
index bb716d5198..0000000000
--- a/misc/tst-efgcvt.c
+++ /dev/null
@@ -1,216 +0,0 @@
-/* Copyright (C) 1998-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _GNU_SOURCE
-# define _GNU_SOURCE 1
-#endif
-
-#include <float.h>
-#include <math.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-int error_count;
-
-typedef struct
-{
- double value;
- int ndigit;
- int decpt;
- char result[30];
-} testcase;
-
-typedef char * ((*efcvt_func) (double, int, int *, int *));
-
-typedef int ((*efcvt_r_func) (double, int, int *, int *, char *, size_t));
-
-
-static testcase ecvt_tests[] =
-{
- { 0.0, 0, 1, "" },
- { 10.0, 0, 2, "" },
- { 10.0, 1, 2, "1" },
- { 10.0, 5, 2, "10000" },
- { -12.0, 5, 2, "12000" },
- { 0.2, 4, 0, "2000" },
- { 0.02, 4, -1, "2000" },
- { 5.5, 1, 1, "6" },
- { 1.0, -1, 1, "" },
- { 0.01, 2, -1, "10" },
- { 100.0, -2, 3, "" },
- { 100.0, -5, 3, "" },
- { 100.0, -4, 3, "" },
- { 100.01, -4, 3, "" },
- { 123.01, -4, 3, "" },
- { 126.71, -4, 3, "" },
- { 0.0, 4, 1, "0000" },
-#if DBL_MANT_DIG == 53
- { 0x1p-1074, 3, -323, "494" },
- { -0x1p-1074, 3, -323, "494" },
-#endif
- /* -1.0 is end marker. */
- { -1.0, 0, 0, "" }
-};
-
-static testcase fcvt_tests[] =
-{
- { 0.0, 0, 1, "0" },
- { 10.0, 0, 2, "10" },
- { 10.0, 1, 2, "100" },
- { 10.0, 4, 2, "100000" },
- { -12.0, 5, 2, "1200000" },
- { 0.2, 4, 0, "2000" },
- { 0.02, 4, -1, "200" },
- { 5.5, 1, 1, "55" },
- { 5.5, 0, 1, "6" },
- { 0.01, 2, -1, "1" },
- { 100.0, -2, 3, "100" },
- { 100.0, -5, 3, "100" },
- { 100.0, -4, 3, "100" },
- { 100.01, -4, 3, "100" },
- { 123.01, -4, 3, "100" },
- { 126.71, -4, 3, "100" },
- { 322.5, 16, 3, "3225000000000000000" },
- /* -1.0 is end marker. */
- { -1.0, 0, 0, "" }
-};
-
-static void
-output_error (const char *name, double value, int ndigit,
- const char *exp_p, int exp_decpt, int exp_sign,
- char *res_p, int res_decpt, int res_sign)
-{
- printf ("%s returned wrong result for value: %f, ndigits: %d\n",
- name, value, ndigit);
- printf ("Result was p: \"%s\", decpt: %d, sign: %d\n",
- res_p, res_decpt, res_sign);
- printf ("Should be p: \"%s\", decpt: %d, sign: %d\n",
- exp_p, exp_decpt, exp_sign);
- ++error_count;
-}
-
-
-static void
-output_r_error (const char *name, double value, int ndigit,
- const char *exp_p, int exp_decpt, int exp_sign, int exp_return,
- char *res_p, int res_decpt, int res_sign, int res_return)
-{
- printf ("%s returned wrong result for value: %f, ndigits: %d\n",
- name, value, ndigit);
- printf ("Result was buf: \"%s\", decpt: %d, sign: %d return value: %d\n",
- res_p, res_decpt, res_sign, res_return);
- printf ("Should be buf: \"%s\", decpt: %d, sign: %d\n",
- exp_p, exp_decpt, exp_sign);
- ++error_count;
-}
-
-static void
-test (testcase tests[], efcvt_func efcvt, const char *name)
-{
- int no = 0;
- int decpt, sign;
- char *p;
-
- while (tests[no].value != -1.0)
- {
- p = efcvt (tests[no].value, tests[no].ndigit, &decpt, &sign);
- if (decpt != tests[no].decpt
- || sign != (tests[no].value < 0)
- || strcmp (p, tests[no].result) != 0)
- output_error (name, tests[no].value, tests[no].ndigit,
- tests[no].result, tests[no].decpt,
- (tests[no].value < 0),
- p, decpt, sign);
- ++no;
- }
-}
-
-static void
-test_r (testcase tests[], efcvt_r_func efcvt_r, const char *name)
-{
- int no = 0;
- int decpt, sign, res;
- char buf [1024];
-
-
- while (tests[no].value != -1.0)
- {
- res = efcvt_r (tests[no].value, tests[no].ndigit, &decpt, &sign,
- buf, sizeof (buf));
- if (res != 0
- || decpt != tests[no].decpt
- || sign != (tests[no].value < 0)
- || strcmp (buf, tests[no].result) != 0)
- output_r_error (name, tests[no].value, tests[no].ndigit,
- tests[no].result, tests[no].decpt, 0,
- (tests[no].value < 0),
- buf, decpt, sign, res);
- ++no;
- }
-}
-
-static void
-special (void)
-{
- int decpt, sign, res;
- char *p;
- char buf [1024];
-
- p = ecvt (NAN, 10, &decpt, &sign);
- if (sign != 0 || strcmp (p, "nan") != 0)
- output_error ("ecvt", NAN, 10, "nan", 0, 0, p, decpt, sign);
-
- p = ecvt (INFINITY, 10, &decpt, &sign);
- if (sign != 0 || strcmp (p, "inf") != 0)
- output_error ("ecvt", INFINITY, 10, "inf", 0, 0, p, decpt, sign);
-
- /* Simply make sure these calls with large NDIGITs don't crash. */
- (void) ecvt (123.456, 10000, &decpt, &sign);
- (void) fcvt (123.456, 10000, &decpt, &sign);
-
- /* Some tests for the reentrant functions. */
- /* Use a too small buffer. */
- res = ecvt_r (123.456, 10, &decpt, &sign, buf, 1);
- if (res == 0)
- {
- printf ("ecvt_r with a too small buffer was succesful.\n");
- ++error_count;
- }
- res = fcvt_r (123.456, 10, &decpt, &sign, buf, 1);
- if (res == 0)
- {
- printf ("fcvt_r with a too small buffer was succesful.\n");
- ++error_count;
- }
-}
-
-
-static int
-do_test (void)
-{
- test (ecvt_tests, ecvt, "ecvt");
- test (fcvt_tests, fcvt, "fcvt");
- test_r (ecvt_tests, ecvt_r, "ecvt_r");
- test_r (fcvt_tests, fcvt_r, "fcvt_r");
- special ();
-
- return error_count;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/misc/tst-fdset.c b/misc/tst-fdset.c
index 5452485a31..ad2a2ae528 100644
--- a/misc/tst-fdset.c
+++ b/misc/tst-fdset.c
@@ -1,5 +1,5 @@
/* Test FD* macros.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Robert Bihlmeyer <robbe@orcus.priv.at>.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <sys/types.h>
diff --git a/misc/tst-gethostid.c b/misc/tst-gethostid.c
new file mode 100644
index 0000000000..9961568492
--- /dev/null
+++ b/misc/tst-gethostid.c
@@ -0,0 +1,108 @@
+/* Basic test for gethostid.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <gnu/lib-names.h>
+#include <nss.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <support/namespace.h>
+#include <support/support.h>
+#include <support/temp_file.h>
+#include <support/xdlfcn.h>
+#include <support/xstdio.h>
+#include <support/xunistd.h>
+#include <unistd.h>
+
+/* Initial test is run outside a chroot, to increase the likelihood of
+ success. */
+static void
+outside_chroot (void *closure)
+{
+ long id = gethostid ();
+ printf ("info: host ID outside chroot: 0x%lx\n", id);
+}
+
+/* The same, but this time perform a chroot operation. */
+static void
+in_chroot (void *closure)
+{
+ const char *chroot_path = closure;
+ xchroot (chroot_path);
+ long id = gethostid ();
+ printf ("info: host ID in chroot: 0x%lx\n", id);
+}
+
+static int
+do_test (void)
+{
+ support_isolate_in_subprocess (outside_chroot, NULL);
+
+ /* Now run the test inside a chroot. */
+ support_become_root ();
+ if (!support_can_chroot ())
+ /* Cannot perform further tests. */
+ return 0;
+
+ /* Only use nss_files. */
+ __nss_configure_lookup ("hosts", "files");
+
+ /* Load the DSO outside of the chroot. */
+ xdlopen (LIBNSS_FILES_SO, RTLD_LAZY);
+
+ char *chroot_dir = support_create_temp_directory ("tst-gethostid-");
+ support_isolate_in_subprocess (in_chroot, chroot_dir);
+
+ /* Tests with /etc/hosts in the chroot. */
+ {
+ char *path = xasprintf ("%s/etc", chroot_dir);
+ add_temp_file (path);
+ xmkdir (path, 0777);
+ free (path);
+ path = xasprintf ("%s/etc/hosts", chroot_dir);
+ add_temp_file (path);
+
+ FILE *fp = xfopen (path, "w");
+ xfclose (fp);
+ printf ("info: chroot test with an empty /etc/hosts file\n");
+ support_isolate_in_subprocess (in_chroot, chroot_dir);
+
+ char hostname[1024];
+ int ret = gethostname (hostname, sizeof (hostname));
+ if (ret < 0)
+ printf ("warning: invalid result from gethostname: %d\n", ret);
+ else if (strlen (hostname) == 0)
+ puts ("warning: gethostname returned empty string");
+ else
+ {
+ printf ("info: chroot test with IPv6 address in /etc/hosts for: %s\n",
+ hostname);
+ fp = xfopen (path, "w");
+ /* Use an IPv6 address to induce another lookup failure. */
+ fprintf (fp, "2001:db8::1 %s\n", hostname);
+ xfclose (fp);
+ support_isolate_in_subprocess (in_chroot, chroot_dir);
+ }
+ free (path);
+ }
+ free (chroot_dir);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/misc/tst-ldbl-efgcvt.c b/misc/tst-ldbl-efgcvt.c
new file mode 100644
index 0000000000..da1703f9ef
--- /dev/null
+++ b/misc/tst-ldbl-efgcvt.c
@@ -0,0 +1,28 @@
+/* Tests for *cvt function, long double version.
+ Copyright (C) 1998-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
+ <https://www.gnu.org/licenses/>. */
+
+#define ECVT qecvt
+#define FCVT qfcvt
+#define ECVT_R qecvt_r
+#define FCVT_R qfcvt_r
+#define FLOAT long double
+#define PRINTF_CONVERSION "%Lf"
+
+#define EXTRA_ECVT_TESTS
+
+#include <tst-efgcvt-template.c>
diff --git a/misc/tst-ldbl-error.c b/misc/tst-ldbl-error.c
new file mode 100644
index 0000000000..f1a8e09331
--- /dev/null
+++ b/misc/tst-ldbl-error.c
@@ -0,0 +1,124 @@
+/* Test for the long double conversions in *err* functions.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <err.h>
+#include <errno.h>
+#include <error.h>
+#include <stdarg.h>
+#include <string.h>
+
+#include <support/capture_subprocess.h>
+#include <support/check.h>
+
+struct tests
+{
+ void *callback;
+ const char *expected;
+};
+
+va_list args;
+
+static void
+callback_err (void *closure)
+{
+ errno = 0;
+ err (0, "%Lf", (long double) -1);
+}
+
+static void
+callback_errx (void *closure)
+{
+ errno = 0;
+ errx (0, "%Lf", (long double) -1);
+}
+
+static void
+callback_verr (void *closure)
+{
+ errno = 0;
+ verr (0, "%Lf", args);
+}
+
+static void
+callback_verrx (void *closure)
+{
+ errno = 0;
+ verrx (0, "%Lf", args);
+}
+
+static void
+callback_error (void *closure)
+{
+ errno = 0;
+ error (0, 0, "%Lf", (long double) -1);
+}
+
+static void
+callback_error_at_line (void *closure)
+{
+ errno = 0;
+ error_at_line (0, 0, "", 0, "%Lf", (long double) -1);
+}
+
+static void
+do_one_test (void *callback, const char *expected, ...)
+{
+ struct support_capture_subprocess result;
+
+ va_start (args, expected);
+
+ /* Call 'callback', which fills in the output and error buffers. */
+ result = support_capture_subprocess (callback, NULL);
+
+ /* Filter out the name of the program (which should always end with
+ -error), so that the test case can be reused by ldbl-opt and
+ ldbl-128ibm-compat. */
+ const char *needle = "-error:";
+ char *message;
+ message = strstr (result.err.buffer, needle);
+ if (message == NULL)
+ FAIL_EXIT1 ("test case error");
+ message += strlen (needle);
+
+ /* Verify that the output message is as expected. */
+ TEST_COMPARE_STRING (message, expected);
+
+ va_end (args);
+}
+
+static int
+do_test (void)
+{
+ struct tests tests[] = {
+ { &callback_err, " -1.000000: Success\n" },
+ { &callback_errx, " -1.000000\n" },
+ { &callback_verr, " -1.000000: Success\n" },
+ { &callback_verrx, " -1.000000\n" },
+ { &callback_error, " -1.000000\n" },
+ { &callback_error_at_line, ":0: -1.000000\n" }
+ };
+
+ for (int i = 0; i < sizeof (tests) / sizeof (tests[0]); i++)
+ {
+ do_one_test (tests[i].callback, tests[i].expected, (long double) -1);
+ }
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/misc/tst-ldbl-warn.c b/misc/tst-ldbl-warn.c
new file mode 100644
index 0000000000..2f41e9a75f
--- /dev/null
+++ b/misc/tst-ldbl-warn.c
@@ -0,0 +1,124 @@
+/* Test for the long double conversions in *warn* functions.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <err.h>
+#include <errno.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <support/check.h>
+#include <support/xmemstream.h>
+
+enum {WARN, WARNX, VWARN, VWARNX};
+
+static void
+do_one_test (int select, const char *format, va_list args,
+ long double arg1, double arg2, long double arg3,
+ double arg4, const char *expected)
+{
+ /* Prepare in-memory buffer to hold the output. */
+ struct xmemstream stream;
+ xopen_memstream (&stream);
+ FILE *old_stderr = stderr;
+ stderr = stream.out;
+
+ /* Write to the buffer using one of the *warn* functions. */
+ errno = 0;
+ switch (select)
+ {
+ case WARN:
+ warn (format, arg1, arg2, arg3, arg4);
+ break;
+ case WARNX:
+ warnx (format, arg1, arg2, arg3, arg4);
+ break;
+ case VWARN:
+ vwarn (format, args);
+ break;
+ case VWARNX:
+ vwarnx (format, args);
+ break;
+ }
+
+ stderr = old_stderr;
+
+ /* Close the in-memory stream. */
+ xfclose_memstream (&stream);
+
+ /* Filter out the name of the program (which should always end with
+ warn), so that the test case can be reused by ldbl-opt and
+ ldbl-128ibm-compat. */
+ const char *needle = "warn: ";
+ char *message;
+ message = strstr (stream.buffer, needle);
+ if (message == NULL)
+ FAIL_EXIT1 ("test case error");
+ message += strlen (needle);
+
+ /* Check that the rest of the output is as expected. */
+ TEST_COMPARE_STRING (message, expected);
+
+ if (stream.buffer != NULL)
+ free (stream.buffer);
+}
+
+static void
+do_test_call_varg (const char *format, ...)
+{
+ va_list args;
+
+ va_start (args, format);
+ do_one_test (VWARN, format, args, 0, 0, 0, 0,
+ "-1.000000 - -2.000000 - -3.000000 - -4.000000: Success\n");
+ va_end (args);
+
+ va_start (args, format);
+ do_one_test (VWARNX, format, args, 0, 0, 0, 0,
+ "-1.000000 - -2.000000 - -3.000000 - -4.000000\n");
+ va_end (args);
+}
+
+static void
+do_test_call_rarg (const char *format, long double arg1, double arg2,
+ long double arg3, double arg4)
+{
+ va_list args;
+ memset (&args, 0, sizeof (args));
+ do_one_test (WARN, format, args, arg1, arg2, arg3, arg4,
+ "-1.000000 - -2.000000 - -3.000000 - -4.000000: Success\n");
+ do_one_test (WARNX, format, args, arg1, arg2, arg3, arg4,
+ "-1.000000 - -2.000000 - -3.000000 - -4.000000\n");
+}
+
+static int
+do_test (void)
+{
+ long double arg1 = -1;
+ long double arg3 = -3;
+ double arg2 = -2;
+ double arg4 = -4;
+
+ do_test_call_rarg ("%Lf - %f - %Lf - %f", arg1, arg2, arg3, arg4);
+ do_test_call_varg ("%Lf - %f - %Lf - %f", arg1, arg2, arg3, arg4);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/misc/tst-makedev.c b/misc/tst-makedev.c
index 0a38060cd1..b6b813cc2c 100644
--- a/misc/tst-makedev.c
+++ b/misc/tst-makedev.c
@@ -1,5 +1,5 @@
/* Tests of functions to access `dev_t' values.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <sys/sysmacros.h>
diff --git a/misc/tst-mntent-autofs.c b/misc/tst-mntent-autofs.c
new file mode 100644
index 0000000000..d14673daa6
--- /dev/null
+++ b/misc/tst-mntent-autofs.c
@@ -0,0 +1,141 @@
+/* Test autofs "ignore" filtering for getment_r.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <array_length.h>
+#include <errno.h>
+#include <mntent.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <support/check.h>
+#include <support/temp_file.h>
+#include <support/xstdio.h>
+#include <support/xunistd.h>
+
+struct test_case
+{
+ const char *line;
+ struct
+ {
+ /* Like struct mntent, but with const pointers. */
+ const char *mnt_fsname;
+ const char *mnt_dir;
+ const char *mnt_type;
+ const char *mnt_opts;
+ int mnt_freq;
+ int mnt_passno;
+ } expected;
+};
+
+static struct test_case test_cases[] =
+ {
+ { "/etc/auto.direct /mnt/auto/1 autofs defaults 0 0",
+ { "/etc/auto.direct", "/mnt/auto/1", "autofs", "defaults", 0, 0 } },
+
+ /* These entries are filtered out. */
+ { "/etc/auto.2 /mnt/auto/2 autofs ignore 0 0", { NULL, } },
+ { "/etc/auto.3 /mnt/auto/3 autofs ignore,other 1 2", { NULL, } },
+ { "/etc/auto.4 /mnt/auto/4 autofs other,ignore 3 4", { NULL, } },
+ { "/etc/auto.5 /mnt/auto/5 autofs opt1,ignore,opt2 5 6", { NULL, } },
+
+ /* Dummy entry to make the desynchronization more obvious. */
+ { "/dev/sda1 / xfs defaults 0 0",
+ { "/dev/sda1", "/", "xfs", "defaults", 0, 0 } },
+
+ /* These are not filtered because the file system is not autofs. */
+ { "/etc/auto.direct /mnt/auto/6 autofs1 ignore 0 0",
+ { "/etc/auto.direct", "/mnt/auto/6", "autofs1", "ignore", 0, 0 } },
+ { "/etc/auto.direct /mnt/auto/7 autofs1 ignore,other 0 0",
+ { "/etc/auto.direct", "/mnt/auto/7", "autofs1", "ignore,other", 0, 0 } },
+ { "/etc/auto.direct /mnt/auto/8 autofs1 other,ignore 0 0",
+ { "/etc/auto.direct", "/mnt/auto/8", "autofs1", "other,ignore", 0, 0 } },
+ { "/etc/auto.direct /mnt/auto/9 autofs1 opt1,ignore,opt2 0 0",
+ { "/etc/auto.direct", "/mnt/auto/9", "autofs1", "opt1,ignore,opt2", } },
+
+ /* These are not filtered because the string "ignore" is not an
+ option name. */
+ { "/etc/auto.direct /mnt/auto/10 autofs noignore 1 2",
+ { "/etc/auto.direct", "/mnt/auto/10", "autofs", "noignore", 1, 2 } },
+ { "/etc/auto.direct /mnt/auto/11 autofs noignore,other 0 0",
+ { "/etc/auto.direct", "/mnt/auto/11", "autofs", "noignore,other", } },
+ { "/etc/auto.direct /mnt/auto/12 autofs other,noignore 0 0",
+ { "/etc/auto.direct", "/mnt/auto/12", "autofs", "other,noignore", } },
+ { "/etc/auto.direct /mnt/auto/13 autofs errors=ignore 0 0",
+ { "/etc/auto.direct", "/mnt/auto/13", "autofs", "errors=ignore", } },
+ { "/etc/auto.direct /mnt/auto/14 autofs errors=ignore,other 0 0",
+ { "/etc/auto.direct", "/mnt/auto/14", "autofs",
+ "errors=ignore,other", } },
+ { "/etc/auto.direct /mnt/auto/15 autofs other,errors=ignore 0 0",
+ { "/etc/auto.direct", "/mnt/auto/15", "autofs",
+ "other,errors=ignore", } },
+
+ /* These are not filtered because the string is escaped. '\151'
+ is 'i', but it is not actually decoded by the parser. */
+ { "/etc/auto.\\151gnore /mnt/auto/16 autofs \\151gnore 0 0",
+ { "/etc/auto.\\151gnore", "/mnt/auto/16", "autofs",
+ "\\151gnore", } },
+ };
+
+static int
+do_test (void)
+{
+ char *path;
+ xclose (create_temp_file ("tst-mntent-autofs-", &path));
+
+ /* Write the test file. */
+ FILE *fp = xfopen (path, "w");
+ for (size_t i = 0; i < array_length (test_cases); ++i)
+ fprintf (fp, "%s\n", test_cases[i].line);
+ xfclose (fp);
+
+ /* Open the test file again, this time for parsing. */
+ fp = setmntent (path, "r");
+ TEST_VERIFY_EXIT (fp != NULL);
+ char buffer[512];
+ struct mntent me;
+
+ for (size_t i = 0; i < array_length (test_cases); ++i)
+ {
+ if (test_cases[i].expected.mnt_type == NULL)
+ continue;
+
+ memset (buffer, 0xcc, sizeof (buffer));
+ memset (&me, 0xcc, sizeof (me));
+ struct mntent *pme = getmntent_r (fp, &me, buffer, sizeof (buffer));
+ TEST_VERIFY_EXIT (pme != NULL);
+ TEST_VERIFY (pme == &me);
+ TEST_COMPARE_STRING (test_cases[i].expected.mnt_fsname, me.mnt_fsname);
+ TEST_COMPARE_STRING (test_cases[i].expected.mnt_dir, me.mnt_dir);
+ TEST_COMPARE_STRING (test_cases[i].expected.mnt_type, me.mnt_type);
+ TEST_COMPARE_STRING (test_cases[i].expected.mnt_opts, me.mnt_opts);
+ TEST_COMPARE (test_cases[i].expected.mnt_freq, me.mnt_freq);
+ TEST_COMPARE (test_cases[i].expected.mnt_passno, me.mnt_passno);
+ }
+
+ TEST_VERIFY (getmntent_r (fp, &me, buffer, sizeof (buffer)) == NULL);
+
+ TEST_COMPARE (feof (fp), 1);
+ TEST_COMPARE (ferror (fp), 0);
+ errno = 0;
+ TEST_COMPARE (endmntent (fp), 1);
+ TEST_COMPARE (errno, 0);
+ free (path);
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/misc/tst-mntent-blank-corrupt.c b/misc/tst-mntent-blank-corrupt.c
index bb9939779c..5f257df0d4 100644
--- a/misc/tst-mntent-blank-corrupt.c
+++ b/misc/tst-mntent-blank-corrupt.c
@@ -1,6 +1,6 @@
/* Make sure blank lines does not cause memory corruption BZ #18887.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <mntent.h>
#include <stdio.h>
diff --git a/misc/tst-mntent-blank-passno.c b/misc/tst-mntent-blank-passno.c
index 17b0536a77..b3a2fe1fd8 100644
--- a/misc/tst-mntent-blank-passno.c
+++ b/misc/tst-mntent-blank-passno.c
@@ -1,6 +1,6 @@
/* Make sure trailing whitespace is handled properly BZ #17273.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <mntent.h>
#include <stdio.h>
diff --git a/misc/tst-preadvwritev-common.c b/misc/tst-preadvwritev-common.c
index b59a3de465..3233a4d9e3 100644
--- a/misc/tst-preadvwritev-common.c
+++ b/misc/tst-preadvwritev-common.c
@@ -1,5 +1,5 @@
/* Common definitions for preadv and pwritev.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,9 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <array_length.h>
+#include <stdbool.h>
#include <stdio.h>
#include <stdint.h>
#include <errno.h>
@@ -26,10 +27,12 @@
#include <support/check.h>
#include <support/temp_file.h>
+#include <support/support.h>
#include <support/xunistd.h>
static char *temp_filename;
static int temp_fd;
+static bool temp_fd_supports_holes;
static int do_test (void);
@@ -39,6 +42,7 @@ do_prepare (int argc, char **argv)
temp_fd = create_temp_file ("tst-preadvwritev.", &temp_filename);
if (temp_fd == -1)
FAIL_EXIT1 ("cannot create temporary file");
+ temp_fd_supports_holes = support_descriptor_supports_holes (temp_fd);
}
#define PREPARE do_prepare
diff --git a/misc/tst-preadvwritev.c b/misc/tst-preadvwritev.c
index 1b0c9af435..d6b9d37c41 100644
--- a/misc/tst-preadvwritev.c
+++ b/misc/tst-preadvwritev.c
@@ -1,5 +1,5 @@
/* Tests for preadv and pwritev.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "tst-preadvwritev-common.c"
diff --git a/misc/tst-preadvwritev2-common.c b/misc/tst-preadvwritev2-common.c
index f889a21544..ff728ee6c1 100644
--- a/misc/tst-preadvwritev2-common.c
+++ b/misc/tst-preadvwritev2-common.c
@@ -1,5 +1,5 @@
/* Common function for preadv2 and pwritev2 tests.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,14 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <limits.h>
#include <support/check.h>
-static void
-do_test_with_invalid_flags (void)
-{
#ifndef RWF_HIPRI
# define RWF_HIPRI 0
#endif
@@ -39,6 +36,73 @@ do_test_with_invalid_flags (void)
#endif
#define RWF_SUPPORTED (RWF_HIPRI | RWF_DSYNC | RWF_SYNC | RWF_NOWAIT \
| RWF_APPEND)
+
+/* Generic uio_lim.h does not define IOV_MAX. */
+#ifndef IOV_MAX
+# define IOV_MAX 1024
+#endif
+
+static void
+do_test_with_invalid_fd (void)
+{
+ char buf[256];
+ struct iovec iov = { buf, sizeof buf };
+
+ /* Check with flag being 0 to use the fallback code which calls pwritev
+ or writev. */
+ TEST_VERIFY (preadv2 (-1, &iov, 1, -1, 0) == -1);
+ TEST_COMPARE (errno, EBADF);
+ TEST_VERIFY (pwritev2 (-1, &iov, 1, -1, 0) == -1);
+ TEST_COMPARE (errno, EBADF);
+
+ /* Same tests as before but with flags being different than 0. Since
+ there is no emulation for any flag value, fallback code returns
+ ENOTSUP. This is different running on a kernel with preadv2/pwritev2
+ support, where EBADF is returned). */
+ TEST_VERIFY (preadv2 (-1, &iov, 1, 0, RWF_HIPRI) == -1);
+ TEST_VERIFY (errno == EBADF || errno == ENOTSUP);
+ TEST_VERIFY (pwritev2 (-1, &iov, 1, 0, RWF_HIPRI) == -1);
+ TEST_VERIFY (errno == EBADF || errno == ENOTSUP);
+}
+
+static void
+do_test_with_invalid_iov (void)
+{
+ {
+ char buf[256];
+ struct iovec iov;
+
+ iov.iov_base = buf;
+ iov.iov_len = (size_t)SSIZE_MAX + 1;
+
+ TEST_VERIFY (preadv2 (temp_fd, &iov, 1, 0, 0) == -1);
+ TEST_COMPARE (errno, EINVAL);
+ TEST_VERIFY (pwritev2 (temp_fd, &iov, 1, 0, 0) == -1);
+ TEST_COMPARE (errno, EINVAL);
+
+ /* Same as for invalid file descriptor tests, emulation fallback
+ first checks for flag value and return ENOTSUP. */
+ TEST_VERIFY (preadv2 (temp_fd, &iov, 1, 0, RWF_HIPRI) == -1);
+ TEST_VERIFY (errno == EINVAL || errno == ENOTSUP);
+ TEST_VERIFY (pwritev2 (temp_fd, &iov, 1, 0, RWF_HIPRI) == -1);
+ TEST_VERIFY (errno == EINVAL || errno == ENOTSUP);
+ }
+
+ {
+ /* An invalid iovec buffer should trigger an invalid memory access
+ or an error (Linux for instance returns EFAULT). */
+ struct iovec iov[IOV_MAX+1] = { 0 };
+
+ TEST_VERIFY (preadv2 (temp_fd, iov, IOV_MAX + 1, 0, RWF_HIPRI) == -1);
+ TEST_VERIFY (errno == EINVAL || errno == ENOTSUP);
+ TEST_VERIFY (pwritev2 (temp_fd, iov, IOV_MAX + 1, 0, RWF_HIPRI) == -1);
+ TEST_VERIFY (errno == EINVAL || errno == ENOTSUP);
+ }
+}
+
+static void
+do_test_with_invalid_flags (void)
+{
/* Set the next bit from the mask of all supported flags. */
int invalid_flag = RWF_SUPPORTED != 0 ? __builtin_clz (RWF_SUPPORTED) : 2;
invalid_flag = 0x1 << ((sizeof (int) * CHAR_BIT) - invalid_flag);
diff --git a/misc/tst-preadvwritev2.c b/misc/tst-preadvwritev2.c
index be22802dbe..bbd5fc84d4 100644
--- a/misc/tst-preadvwritev2.c
+++ b/misc/tst-preadvwritev2.c
@@ -1,5 +1,5 @@
/* Tests for preadv2 and pwritev2.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define PREADV(__fd, __iov, __iovcnt, __offset) \
preadv2 (__fd, __iov, __iovcnt, __offset, 0)
@@ -30,6 +30,8 @@ do_test (void)
{
do_test_with_invalid_flags ();
do_test_without_offset ();
+ do_test_with_invalid_fd ();
+ do_test_with_invalid_iov ();
return do_test_with_offset (0);
}
diff --git a/misc/tst-preadvwritev64.c b/misc/tst-preadvwritev64.c
index b718da6be5..6598eee134 100644
--- a/misc/tst-preadvwritev64.c
+++ b/misc/tst-preadvwritev64.c
@@ -1,5 +1,5 @@
/* Tests for pread64 and pwrite64.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _FILE_OFFSET_BITS 64
#include "tst-preadvwritev-common.c"
@@ -26,6 +26,12 @@ do_test (void)
ret = do_test_with_offset (0);
+ if (!temp_fd_supports_holes)
+ {
+ puts ("warning: partial test due to lack of support for holes");
+ return ret;
+ }
+
/* Create a sparse file larger than 4GB to check if offset is handled
correctly in p{write,read}v64. */
off_t base_offset = UINT32_MAX + 2048LL;
diff --git a/misc/tst-preadvwritev64v2.c b/misc/tst-preadvwritev64v2.c
index 8d3cc32b28..2e3f4ddcfa 100644
--- a/misc/tst-preadvwritev64v2.c
+++ b/misc/tst-preadvwritev64v2.c
@@ -1,5 +1,5 @@
/* Tests for preadv2 and pwritev2 (LFS version).
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _FILE_OFFSET_BITS 64
@@ -32,6 +32,8 @@ do_test (void)
{
do_test_with_invalid_flags ();
do_test_without_offset ();
+ do_test_with_invalid_fd ();
+ do_test_with_invalid_iov ();
return do_test_with_offset (0);
}
diff --git a/misc/tst-pselect.c b/misc/tst-pselect.c
index fc28d64238..4c336b0329 100644
--- a/misc/tst-pselect.c
+++ b/misc/tst-pselect.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2006-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/misc/tst-tsearch.c b/misc/tst-tsearch.c
index 7d164f9a0a..abb7d26f38 100644
--- a/misc/tst-tsearch.c
+++ b/misc/tst-tsearch.c
@@ -1,5 +1,5 @@
/* Test program for tsearch et al.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _GNU_SOURCE
# define _GNU_SOURCE 1
@@ -25,6 +25,7 @@
#include <string.h>
#include <search.h>
#include <tst-stack-align.h>
+#include <support/check.h>
#define SEED 0
#define BALANCED 1
@@ -74,6 +75,20 @@ static int max_depth;
static int stack_align_check[2];
+/* Used to compare walk traces between the two implementations. */
+struct walk_trace_element
+{
+ const void *key;
+ VISIT which;
+ int depth;
+};
+#define DYNARRAY_STRUCT walk_trace_list
+#define DYNARRAY_ELEMENT struct walk_trace_element
+#define DYNARRAY_PREFIX walk_trace_
+#define DYNARRAY_INITIAL_SIZE 0
+#include <malloc/dynarray-skeleton.c>
+static struct walk_trace_list walk_trace;
+
/* Compare two keys. */
static int
cmp_fn (const void *a, const void *b)
@@ -102,11 +117,54 @@ memfry (int *string)
}
}
+struct twalk_with_twalk_r_closure
+{
+ void (*action) (const void *, VISIT, int);
+ int depth;
+};
+
+static void
+twalk_with_twalk_r_action (const void *nodep, VISIT which, void *closure0)
+{
+ struct twalk_with_twalk_r_closure *closure = closure0;
+
+ switch (which)
+ {
+ case leaf:
+ closure->action (nodep, which, closure->depth);
+ break;
+ case preorder:
+ closure->action (nodep, which, closure->depth);
+ ++closure->depth;
+ break;
+ case postorder:
+ /* The preorder action incremented the depth. */
+ closure->action (nodep, which, closure->depth - 1);
+ break;
+ case endorder:
+ --closure->depth;
+ closure->action (nodep, which, closure->depth);
+ break;
+ }
+}
+
+static void
+twalk_with_twalk_r (const void *root,
+ void (*action) (const void *, VISIT, int))
+{
+ struct twalk_with_twalk_r_closure closure = { action, 0 };
+ twalk_r (root, twalk_with_twalk_r_action, &closure);
+ TEST_COMPARE (closure.depth, 0);
+}
+
static void
walk_action (const void *nodep, const VISIT which, const int depth)
{
int key = **(int **) nodep;
+ walk_trace_add (&walk_trace,
+ (struct walk_trace_element) { nodep, which, depth });
+
if (!stack_align_check[1])
stack_align_check[1] = TEST_STACK_ALIGN () ? -1 : 1;
@@ -128,14 +186,16 @@ walk_action (const void *nodep, const VISIT which, const int depth)
}
static void
-walk_tree (void *root, int expected_count)
+walk_tree_with (void *root, int expected_count,
+ void (*walk) (const void *,
+ void (*) (const void *, VISIT, int)))
{
int i;
memset (z, 0, sizeof z);
max_depth = 0;
- twalk (root, walk_action);
+ walk (root, walk_action);
for (i = 0; i < expected_count; ++i)
if (z[i] != 1)
{
@@ -154,6 +214,33 @@ walk_tree (void *root, int expected_count)
}
}
+static void
+walk_tree (void *root, int expected_count)
+{
+ walk_trace_clear (&walk_trace);
+ walk_tree_with (root, expected_count, twalk);
+ TEST_VERIFY (!walk_trace_has_failed (&walk_trace));
+ size_t first_list_size;
+ struct walk_trace_element *first_list
+ = walk_trace_finalize (&walk_trace, &first_list_size);
+ TEST_VERIFY_EXIT (first_list != NULL);
+
+ walk_tree_with (root, expected_count, twalk_with_twalk_r);
+ TEST_VERIFY (!walk_trace_has_failed (&walk_trace));
+
+ /* Compare the two traces. */
+ TEST_COMPARE (first_list_size, walk_trace_size (&walk_trace));
+ for (size_t i = 0; i < first_list_size && i < walk_trace_size (&walk_trace);
+ ++i)
+ {
+ TEST_VERIFY (first_list[i].key == walk_trace_at (&walk_trace, i)->key);
+ TEST_COMPARE (first_list[i].which, walk_trace_at (&walk_trace, i)->which);
+ TEST_COMPARE (first_list[i].depth, walk_trace_at (&walk_trace, i)->depth);
+ }
+
+ walk_trace_free (&walk_trace);
+}
+
/* Perform an operation on a tree. */
static void
mangle_tree (enum order how, enum action what, void **root, int lag)
diff --git a/misc/tst-warn-wide.c b/misc/tst-warn-wide.c
new file mode 100644
index 0000000000..a3f02c745b
--- /dev/null
+++ b/misc/tst-warn-wide.c
@@ -0,0 +1,88 @@
+/* Test wide output conversion for warn.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <err.h>
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <support/check.h>
+#include <support/xmemstream.h>
+#include <wchar.h>
+
+/* Used to trigger the large-string path in __fxprintf. */
+#define PADDING \
+ "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
+ "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
+ "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+
+#define LPADDING \
+ L"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
+ "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
+ "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+
+
+static void
+one_test (const char *message, int error_code, const wchar_t *expected)
+{
+ wchar_t *buffer = NULL;
+ size_t length = 0;
+ FILE *fp = open_wmemstream (&buffer, &length);
+ TEST_VERIFY_EXIT (fp != NULL);
+ FILE *old_stderr = stderr;
+ stderr = fp;
+ errno = error_code;
+ switch (error_code)
+ {
+ case E2BIG:
+ warn ("%s with padding " PADDING, message);
+ break;
+ case EAGAIN:
+ warn ("%s", message);
+ break;
+ case -1:
+ warnx ("%s", message);
+ break;
+ case -2:
+ warnx ("%s with padding " PADDING, message);
+ break;
+ }
+ stderr = old_stderr;
+ TEST_VERIFY_EXIT (!ferror (fp));
+ TEST_COMPARE (fclose (fp), 0);
+ if (wcscmp (buffer, expected) != 0)
+ FAIL_EXIT1 ("unexpected output: %ls", buffer);
+ free (buffer);
+}
+
+static int
+do_test (void)
+{
+ one_test ("no errno", -1,
+ L"tst-warn-wide: no errno\n");
+ one_test ("no errno", -2,
+ L"tst-warn-wide: no errno with padding " PADDING "\n");
+ one_test ("with errno", EAGAIN,
+ L"tst-warn-wide: with errno: Resource temporarily unavailable\n");
+ one_test ("with errno", E2BIG,
+ L"tst-warn-wide: with errno with padding " PADDING
+ ": Argument list too long\n");
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/misc/ualarm.c b/misc/ualarm.c
index 7974076367..288db1f03e 100644
--- a/misc/ualarm.c
+++ b/misc/ualarm.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/misc/usleep.c b/misc/usleep.c
index 7903cbe8ba..eba18ef05e 100644
--- a/misc/usleep.c
+++ b/misc/usleep.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/misc/ustat.c b/misc/ustat.c
index 2c40e2a3cb..1f6352e352 100644
--- a/misc/ustat.c
+++ b/misc/ustat.c
@@ -1,5 +1,5 @@
/* Return info on filesystem.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <shlib-compat.h>
diff --git a/misc/utimes.c b/misc/utimes.c
index 0ae6946142..3d6db182aa 100644
--- a/misc/utimes.c
+++ b/misc/utimes.c
@@ -1,5 +1,5 @@
/* utimes -- Change access and modification times of file. Stub version.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/time.h>
#include <errno.h>
diff --git a/misc/vhangup.c b/misc/vhangup.c
index 4a31aa6f26..b732fea6cb 100644
--- a/misc/vhangup.c
+++ b/misc/vhangup.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/misc/writev.c b/misc/writev.c
index 92f93889f8..0ea67bc85d 100644
--- a/misc/writev.c
+++ b/misc/writev.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/nis/Makefile b/nis/Makefile
index d77c6e0c8e..32baaf9c0a 100644
--- a/nis/Makefile
+++ b/nis/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
# Makefile for NIS/NIS+ part.
@@ -22,6 +22,14 @@ subdir := nis
include ../Makeconfig
+ifndef have-GLIBC_2.28
+
+ifeq ($(build-obsolete-nsl),yes)
+$(error --enabe-obsolete-nsl is not available)
+endif
+
+else
+
ifeq ($(build-obsolete-nsl),yes)
headers := $(wildcard rpcsvc/*.[hx])
@@ -80,6 +88,8 @@ libnsl-inhibit-o = $(filter-out .os,$(object-suffixes))
endif # not $(build-obsolete-nsl)
+endif # have-GLIBC_2.28
+
include ../Rules
diff --git a/nis/libnsl.h b/nis/libnsl.h
index a551957d80..deecbaeb46 100644
--- a/nis/libnsl.h
+++ b/nis/libnsl.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <rpcsvc/nis.h>
diff --git a/nis/nis_add.c b/nis/nis_add.c
index 027f629ead..b8d2c46f4d 100644
--- a/nis/nis_add.c
+++ b/nis/nis_add.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <rpcsvc/nis.h>
diff --git a/nis/nis_addmember.c b/nis/nis_addmember.c
index 55a1188216..9bfb3972d4 100644
--- a/nis/nis_addmember.c
+++ b/nis/nis_addmember.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (c) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <string.h>
diff --git a/nis/nis_call.c b/nis/nis_call.c
index 196a9a304b..5097e614ea 100644
--- a/nis/nis_call.c
+++ b/nis/nis_call.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
@@ -317,14 +317,15 @@ __do_niscall3 (dir_binding *dbp, u_long prog, xdrproc_t xargs, caddr_t req,
switch (prog)
{
case NIS_IBLIST:
- if ((((nis_result *)resp)->status == NIS_CBRESULTS) &&
- (cb != NULL))
+ if ((((nis_result *)resp)->status == NIS_CBRESULTS)
+ && (cb != NULL))
{
__nis_do_callback (dbp, &((nis_result *) resp)->cookie, cb);
break;
}
/* Yes, the missing break is correct. If we doesn't have to
start a callback, look if we have to search another server */
+ /* Fall through. */
case NIS_LOOKUP:
case NIS_ADD:
case NIS_MODIFY:
@@ -502,7 +503,7 @@ rec_dirsearch (const_nis_name name, directory_obj *dir, nis_error *status)
return dir;
}
nis_free_directory (dir);
- obj = calloc (1, sizeof(directory_obj));
+ obj = calloc (1, sizeof (directory_obj));
if (obj == NULL)
{
__free_fdresult (fd_res);
@@ -708,6 +709,7 @@ __nisfind_server (const_nis_name name, int search_parent,
nis_error status;
directory_obj *obj;
struct timeval now;
+ struct timespec ts;
unsigned int server_used = ~0;
unsigned int current_ep = ~0;
@@ -717,7 +719,8 @@ __nisfind_server (const_nis_name name, int search_parent,
if (*dir != NULL)
return NIS_SUCCESS;
- (void) gettimeofday (&now, NULL);
+ __clock_gettime (CLOCK_REALTIME, &ts);
+ TIMESPEC_TO_TIMEVAL (&now, &ts);
if ((flags & NO_CACHE) == 0)
*dir = nis_server_cache_search (name, search_parent, &server_used,
diff --git a/nis/nis_callback.c b/nis/nis_callback.c
index e2a3cb9c7d..4d08962120 100644
--- a/nis/nis_callback.c
+++ b/nis/nis_callback.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdio.h>
@@ -130,8 +130,8 @@ cb_prog_1 (struct svc_req *rqstp, SVCXPRT *transp)
for (i = 0; i < argument.cbproc_receive_1_arg.entries.entries_len; ++i)
{
#define cbproc_entry(a) argument.cbproc_receive_1_arg.entries.entries_val[a]
- char name[strlen (cbproc_entry(i)->zo_name) +
- strlen (cbproc_entry(i)->zo_domain) + 3];
+ char name[strlen (cbproc_entry(i)->zo_name)
+ + strlen (cbproc_entry(i)->zo_domain) + 3];
char *cp;
cp = stpcpy (name, cbproc_entry(i)->zo_name);
diff --git a/nis/nis_checkpoint.c b/nis/nis_checkpoint.c
index 41a6d3d5f7..717df8d46f 100644
--- a/nis/nis_checkpoint.c
+++ b/nis/nis_checkpoint.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (c) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <rpcsvc/nis.h>
diff --git a/nis/nis_clone_dir.c b/nis/nis_clone_dir.c
index d62c833ea0..2a76f9747c 100644
--- a/nis/nis_clone_dir.c
+++ b/nis/nis_clone_dir.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (c) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <rpc/rpc.h>
diff --git a/nis/nis_clone_obj.c b/nis/nis_clone_obj.c
index 203e4dc2fe..c1b296ce32 100644
--- a/nis/nis_clone_obj.c
+++ b/nis/nis_clone_obj.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (c) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <rpc/rpc.h>
diff --git a/nis/nis_clone_res.c b/nis/nis_clone_res.c
index 3bd2a82890..2b3e87a9f2 100644
--- a/nis/nis_clone_res.c
+++ b/nis/nis_clone_res.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (c) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <rpc/rpc.h>
diff --git a/nis/nis_creategroup.c b/nis/nis_creategroup.c
index e556226f3c..837ab16d28 100644
--- a/nis/nis_creategroup.c
+++ b/nis/nis_creategroup.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (c) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <time.h>
#include <string.h>
diff --git a/nis/nis_defaults.c b/nis/nis_defaults.c
index 0be47aa65c..983e9ff9e7 100644
--- a/nis/nis_defaults.c
+++ b/nis/nis_defaults.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (c) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <stdio.h>
@@ -278,18 +278,18 @@ searchaccess (char *str, unsigned int access)
cptr++; /* Remove "=" from beginning */
/* Clear */
if (n)
- result = result & ~((NIS_READ_ACC + NIS_MODIFY_ACC +
- NIS_CREATE_ACC + NIS_DESTROY_ACC) << 24);
+ result = result & ~((NIS_READ_ACC + NIS_MODIFY_ACC
+ + NIS_CREATE_ACC + NIS_DESTROY_ACC) << 24);
if (o)
- result = result & ~((NIS_READ_ACC + NIS_MODIFY_ACC +
- NIS_CREATE_ACC + NIS_DESTROY_ACC) << 16);
+ result = result & ~((NIS_READ_ACC + NIS_MODIFY_ACC
+ + NIS_CREATE_ACC + NIS_DESTROY_ACC) << 16);
if (g)
- result = result & ~((NIS_READ_ACC + NIS_MODIFY_ACC +
- NIS_CREATE_ACC + NIS_DESTROY_ACC) << 8);
+ result = result & ~((NIS_READ_ACC + NIS_MODIFY_ACC
+ + NIS_CREATE_ACC + NIS_DESTROY_ACC) << 8);
if (w)
- result = result & ~(NIS_READ_ACC + NIS_MODIFY_ACC +
- NIS_CREATE_ACC + NIS_DESTROY_ACC);
+ result = result & ~(NIS_READ_ACC + NIS_MODIFY_ACC
+ + NIS_CREATE_ACC + NIS_DESTROY_ACC);
while (*cptr != '\0' && *cptr != ',')
{
switch (*cptr)
diff --git a/nis/nis_destroygroup.c b/nis/nis_destroygroup.c
index 2f37213f3c..20ef5beb28 100644
--- a/nis/nis_destroygroup.c
+++ b/nis/nis_destroygroup.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (c) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <rpcsvc/nis.h>
diff --git a/nis/nis_domain_of.c b/nis/nis_domain_of.c
index 5949473c32..c9af82a89c 100644
--- a/nis/nis_domain_of.c
+++ b/nis/nis_domain_of.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (c) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <rpcsvc/nis.h>
#include <shlib-compat.h>
diff --git a/nis/nis_domain_of_r.c b/nis/nis_domain_of_r.c
index 259c0d0d7b..4ba5073b97 100644
--- a/nis/nis_domain_of_r.c
+++ b/nis/nis_domain_of_r.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (c) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <string.h>
diff --git a/nis/nis_error.c b/nis/nis_error.c
index 62d17d6f67..282dc21784 100644
--- a/nis/nis_error.c
+++ b/nis/nis_error.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (c) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <syslog.h>
diff --git a/nis/nis_file.c b/nis/nis_file.c
index cc318221b5..8a9421539b 100644
--- a/nis/nis_file.c
+++ b/nis/nis_file.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (c) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
diff --git a/nis/nis_findserv.c b/nis/nis_findserv.c
index 9f0eed2763..2a9c45bf67 100644
--- a/nis/nis_findserv.c
+++ b/nis/nis_findserv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <time.h>
@@ -97,9 +97,9 @@ __nis_findfastest_with_timeout (dir_binding *bind,
for (i = 0; i < bind->server_len; i++)
for (j = 0; j < bind->server_val[i].ep.ep_len; ++j)
if (strcmp (bind->server_val[i].ep.ep_val[j].family, "inet") == 0)
- if ((bind->server_val[i].ep.ep_val[j].proto == NULL) ||
- (bind->server_val[i].ep.ep_val[j].proto[0] == '-') ||
- (bind->server_val[i].ep.ep_val[j].proto[0] == '\0'))
+ if ((bind->server_val[i].ep.ep_val[j].proto == NULL)
+ || (bind->server_val[i].ep.ep_val[j].proto[0] == '-')
+ || (bind->server_val[i].ep.ep_val[j].proto[0] == '\0'))
{
sin.sin_addr.s_addr =
inetstr2int (bind->server_val[i].ep.ep_val[j].uaddr);
@@ -127,7 +127,7 @@ __nis_findfastest_with_timeout (dir_binding *bind,
}
memcpy ((char *) &pings[pings_count].sin, (char *) &sin,
sizeof (sin));
- memcpy ((char *)&saved_sin, (char *)&sin, sizeof(sin));
+ memcpy ((char *)&saved_sin, (char *)&sin, sizeof (sin));
pings[pings_count].xid = xid_seed + pings_count;
pings[pings_count].server_nr = i;
pings[pings_count].server_ep = j;
diff --git a/nis/nis_free.c b/nis/nis_free.c
index 21706d7a55..3e1c2e1a73 100644
--- a/nis/nis_free.c
+++ b/nis/nis_free.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (c) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <rpcsvc/nis.h>
#include <shlib-compat.h>
diff --git a/nis/nis_getservlist.c b/nis/nis_getservlist.c
index 4fbb5da43e..680b80905d 100644
--- a/nis/nis_getservlist.c
+++ b/nis/nis_getservlist.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (c) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <rpcsvc/nis.h>
diff --git a/nis/nis_hash.c b/nis/nis_hash.c
index ef32c3994f..6383f69213 100644
--- a/nis/nis_hash.c
+++ b/nis/nis_hash.c
@@ -1,5 +1,5 @@
/* Forward __nis_hash calls to __nss_hash, for ABI compatibility.
- Copyright (c) 2017-2018 Free Software Foundation, Inc.
+ Copyright (c) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <shlib-compat.h>
diff --git a/nis/nis_intern.h b/nis/nis_intern.h
index 26d0b5293e..51851638fd 100644
--- a/nis/nis_intern.h
+++ b/nis/nis_intern.h
@@ -1,4 +1,4 @@
-/* Copyright (c) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (c) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef __NIS_INTERN_H
diff --git a/nis/nis_ismember.c b/nis/nis_ismember.c
index bdf5f659a7..58f50a0820 100644
--- a/nis/nis_ismember.c
+++ b/nis/nis_ismember.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (c) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <rpcsvc/nis.h>
@@ -51,8 +51,8 @@ internal_ismember (const_nis_name principal, const_nis_name group)
return 0;
}
- if ((NIS_RES_NUMOBJ (res) != 1) ||
- (__type_of (NIS_RES_OBJECT (res)) != NIS_GROUP_OBJ))
+ if ((NIS_RES_NUMOBJ (res) != 1)
+ || (__type_of (NIS_RES_OBJECT (res)) != NIS_GROUP_OBJ))
{
nis_freeresult (res);
return 0;
diff --git a/nis/nis_local_names.c b/nis/nis_local_names.c
index fc17c7b2a1..9fb223d344 100644
--- a/nis/nis_local_names.c
+++ b/nis/nis_local_names.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (c) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <string.h>
@@ -106,8 +106,8 @@ nis_local_principal (void)
buf[len] = '\0';
}
- res = nis_list (buf, USE_DGRAM + NO_AUTHINFO + FOLLOW_LINKS +
- FOLLOW_PATH, NULL, NULL);
+ res = nis_list (buf, USE_DGRAM + NO_AUTHINFO + FOLLOW_LINKS
+ + FOLLOW_PATH, NULL, NULL);
if (res == NULL)
goto nobody;
diff --git a/nis/nis_lookup.c b/nis/nis_lookup.c
index d799508949..7f8226c9e7 100644
--- a/nis/nis_lookup.c
+++ b/nis/nis_lookup.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <rpcsvc/nis.h>
diff --git a/nis/nis_mkdir.c b/nis/nis_mkdir.c
index ae3fe6685e..e349a9fb7f 100644
--- a/nis/nis_mkdir.c
+++ b/nis/nis_mkdir.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (c) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <rpcsvc/nis.h>
#include <shlib-compat.h>
diff --git a/nis/nis_modify.c b/nis/nis_modify.c
index 3f90970ffa..f94fc94166 100644
--- a/nis/nis_modify.c
+++ b/nis/nis_modify.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <rpcsvc/nis.h>
diff --git a/nis/nis_ping.c b/nis/nis_ping.c
index 788fe9fe86..5d5a394453 100644
--- a/nis/nis_ping.c
+++ b/nis/nis_ping.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (c) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <rpcsvc/nis.h>
#include <shlib-compat.h>
diff --git a/nis/nis_print.c b/nis/nis_print.c
index c6d0dd071a..c7e3fa89f4 100644
--- a/nis/nis_print.c
+++ b/nis/nis_print.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (c) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <time.h>
#include <string.h>
diff --git a/nis/nis_print_group_entry.c b/nis/nis_print_group_entry.c
index 477a9b4f53..65f4a55324 100644
--- a/nis/nis_print_group_entry.c
+++ b/nis/nis_print_group_entry.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (c) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <alloca.h>
#include <string.h>
diff --git a/nis/nis_remove.c b/nis/nis_remove.c
index 13882c684a..659c5e1103 100644
--- a/nis/nis_remove.c
+++ b/nis/nis_remove.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <rpcsvc/nis.h>
#include <shlib-compat.h>
diff --git a/nis/nis_removemember.c b/nis/nis_removemember.c
index 7b90129ee3..f812aac97a 100644
--- a/nis/nis_removemember.c
+++ b/nis/nis_removemember.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (c) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <string.h>
diff --git a/nis/nis_rmdir.c b/nis/nis_rmdir.c
index 8f6f6b47c2..7c656d4983 100644
--- a/nis/nis_rmdir.c
+++ b/nis/nis_rmdir.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (c) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <rpcsvc/nis.h>
#include <shlib-compat.h>
diff --git a/nis/nis_server.c b/nis/nis_server.c
index c767f93d16..739576faaf 100644
--- a/nis/nis_server.c
+++ b/nis/nis_server.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (c) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <rpcsvc/nis.h>
diff --git a/nis/nis_subr.c b/nis/nis_subr.c
index dfbf67aad8..37a697da70 100644
--- a/nis/nis_subr.c
+++ b/nis/nis_subr.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (c) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <string.h>
@@ -91,7 +91,7 @@ nis_name_of_r (const_nis_name name, char *buffer, size_t buflen)
}
libnsl_hidden_nolink_def (nis_name_of_r, GLIBC_2_1)
-static int __always_inline
+static __always_inline int
count_dots (const_nis_name str)
{
int count = 0;
diff --git a/nis/nis_table.c b/nis/nis_table.c
index 0a7f54eac6..e509e76e49 100644
--- a/nis/nis_table.c
+++ b/nis/nis_table.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (c) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <string.h>
diff --git a/nis/nis_util.c b/nis/nis_util.c
index 33e4a99e15..b6f143cf7d 100644
--- a/nis/nis_util.c
+++ b/nis/nis_util.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (c) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <rpcsvc/nis.h>
diff --git a/nis/nis_verifygroup.c b/nis/nis_verifygroup.c
index 9a6c1acc59..fc3336a5bc 100644
--- a/nis/nis_verifygroup.c
+++ b/nis/nis_verifygroup.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (c) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <rpcsvc/nis.h>
diff --git a/nis/nis_xdr.c b/nis/nis_xdr.c
index 0dacaa87e1..9c7e909a4f 100644
--- a/nis/nis_xdr.c
+++ b/nis/nis_xdr.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (c) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
#include <rpcsvc/nis.h>
diff --git a/nis/nis_xdr.h b/nis/nis_xdr.h
index 6add429a4b..07b7f8732b 100644
--- a/nis/nis_xdr.h
+++ b/nis/nis_xdr.h
@@ -1,4 +1,4 @@
-/* Copyright (c) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (c) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef __NIS_XDR_H
#define __NIS_XDR_H 1
diff --git a/nis/nisplus-parser.h b/nis/nisplus-parser.h
index 143f50b154..ca17817542 100644
--- a/nis/nisplus-parser.h
+++ b/nis/nisplus-parser.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef __NISPLUS_PARSER_H
#define __NISPLUS_PARSER_H 1
diff --git a/nis/nss-default.c b/nis/nss-default.c
index a42dd3682e..c384492c75 100644
--- a/nis/nss-default.c
+++ b/nis/nss-default.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <errno.h>
diff --git a/nis/nss-nis.c b/nis/nss-nis.c
index f6b9b1174e..b781094888 100644
--- a/nis/nss-nis.c
+++ b/nis/nss-nis.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "nss-nis.h"
#include "nsswitch.h"
diff --git a/nis/nss-nis.h b/nis/nss-nis.h
index 60592df29c..befecaf5c2 100644
--- a/nis/nss-nis.h
+++ b/nis/nss-nis.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _NIS_NSS_NIS_H
#define _NIS_NSS_NIS_H 1
diff --git a/nis/nss-nisplus.c b/nis/nss-nisplus.c
index b38b4fc7ae..503f2a6f7d 100644
--- a/nis/nss-nisplus.c
+++ b/nis/nss-nisplus.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <rpcsvc/nis.h>
diff --git a/nis/nss-nisplus.h b/nis/nss-nisplus.h
index 284ae8f294..ea6b3cff2d 100644
--- a/nis/nss-nisplus.h
+++ b/nis/nss-nisplus.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _NIS_NSS_NISPLUS_H
#define _NIS_NSS_NISPLUS_H 1
diff --git a/nis/nss_nis/nis-alias.c b/nis/nss_nis/nis-alias.c
index 9904a8016a..57df94e2a6 100644
--- a/nis/nss_nis/nis-alias.c
+++ b/nis/nss_nis/nis-alias.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <nss.h>
#include <ctype.h>
diff --git a/nis/nss_nis/nis-ethers.c b/nis/nss_nis/nis-ethers.c
index 67baf2b7cc..ad4da3fcae 100644
--- a/nis/nss_nis/nis-ethers.c
+++ b/nis/nss_nis/nis-ethers.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <nss.h>
#include <ctype.h>
diff --git a/nis/nss_nis/nis-grp.c b/nis/nss_nis/nis-grp.c
index b07f514616..acd0233b91 100644
--- a/nis/nss_nis/nis-grp.c
+++ b/nis/nss_nis/nis-grp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <errno.h>
diff --git a/nis/nss_nis/nis-hosts.c b/nis/nss_nis/nis-hosts.c
index a6d56bc725..3329c86d84 100644
--- a/nis/nss_nis/nis-hosts.c
+++ b/nis/nss_nis/nis-hosts.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <nss.h>
@@ -27,22 +27,18 @@
#include <string.h>
#include <netinet/in.h>
#include <arpa/inet.h>
-#include <resolv/resolv-internal.h>
#include <libc-lock.h>
#include <rpcsvc/yp.h>
#include <rpcsvc/ypclnt.h>
#include "nss-nis.h"
-/* Get implementation for some internal functions. */
-#include <resolv/mapv4v6addr.h>
-
#define ENTNAME hostent
#define DATABASE "hosts"
#define NEED_H_ERRNO
-#define EXTRA_ARGS , af, flags
-#define EXTRA_ARGS_DECL , int af, int flags
+#define EXTRA_ARGS , af
+#define EXTRA_ARGS_DECL , int af
#define ENTDATA hostent_data
struct hostent_data
@@ -66,19 +62,8 @@ LINE_PARSER
/* Parse address. */
if (af != AF_INET6 && inet_pton (AF_INET, addr, entdata->host_addr) > 0)
{
- assert ((flags & AI_V4MAPPED) == 0 || af != AF_UNSPEC);
- if (flags & AI_V4MAPPED)
- {
- map_v4v6_address ((char *) entdata->host_addr,
- (char *) entdata->host_addr);
- result->h_addrtype = AF_INET6;
- result->h_length = IN6ADDRSZ;
- }
- else
- {
- result->h_addrtype = AF_INET;
- result->h_length = INADDRSZ;
- }
+ result->h_addrtype = AF_INET;
+ result->h_length = INADDRSZ;
}
else if (af != AF_INET
&& inet_pton (AF_INET6, addr, entdata->host_addr) > 0)
@@ -133,7 +118,7 @@ strong_alias (_nss_nis_sethostent, _nss_nis_endhostent)
static enum nss_status
internal_nis_gethostent_r (struct hostent *host, char *buffer,
size_t buflen, int *errnop, int *h_errnop,
- int af, int flags)
+ int af)
{
char *domain;
if (__glibc_unlikely (yp_get_default_domain (&domain)))
@@ -202,7 +187,7 @@ internal_nis_gethostent_r (struct hostent *host, char *buffer,
++p;
free (result);
- parse_res = parse_line (p, host, data, buflen, errnop, af, flags);
+ parse_res = parse_line (p, host, data, buflen, errnop, af);
if (__glibc_unlikely (parse_res == -1))
{
free (outkey);
@@ -231,8 +216,7 @@ _nss_nis_gethostent_r (struct hostent *host, char *buffer, size_t buflen,
__libc_lock_lock (lock);
status = internal_nis_gethostent_r (host, buffer, buflen, errnop, h_errnop,
- (res_use_inet6 () ? AF_INET6 : AF_INET),
- (res_use_inet6 () ? AI_V4MAPPED : 0 ));
+ AF_INET);
__libc_lock_unlock (lock);
@@ -243,7 +227,7 @@ _nss_nis_gethostent_r (struct hostent *host, char *buffer, size_t buflen,
static enum nss_status
internal_gethostbyname2_r (const char *name, int af, struct hostent *host,
char *buffer, size_t buflen, int *errnop,
- int *h_errnop, int flags)
+ int *h_errnop)
{
uintptr_t pad = -(uintptr_t) buffer % __alignof__ (struct parser_data);
buffer += pad;
@@ -317,7 +301,7 @@ internal_gethostbyname2_r (const char *name, int af, struct hostent *host,
++p;
free (result);
- int parse_res = parse_line (p, host, data, buflen, errnop, af, flags);
+ int parse_res = parse_line (p, host, data, buflen, errnop, af);
if (__glibc_unlikely (parse_res < 1 || host->h_addrtype != af))
{
@@ -350,8 +334,7 @@ _nss_nis_gethostbyname2_r (const char *name, int af, struct hostent *host,
}
return internal_gethostbyname2_r (name, af, host, buffer, buflen, errnop,
- h_errnop,
- (res_use_inet6 () ? AI_V4MAPPED : 0));
+ h_errnop);
}
@@ -359,18 +342,8 @@ enum nss_status
_nss_nis_gethostbyname_r (const char *name, struct hostent *host, char *buffer,
size_t buflen, int *errnop, int *h_errnop)
{
- if (res_use_inet6 ())
- {
- enum nss_status status;
-
- status = internal_gethostbyname2_r (name, AF_INET6, host, buffer, buflen,
- errnop, h_errnop, AI_V4MAPPED);
- if (status == NSS_STATUS_SUCCESS)
- return status;
- }
-
return internal_gethostbyname2_r (name, AF_INET, host, buffer, buflen,
- errnop, h_errnop, 0);
+ errnop, h_errnop);
}
@@ -432,8 +405,7 @@ _nss_nis_gethostbyaddr_r (const void *addr, socklen_t addrlen, int af,
++p;
free (result);
- int parse_res = parse_line (p, host, data, buflen, errnop, af,
- (res_use_inet6 () ? AI_V4MAPPED : 0));
+ int parse_res = parse_line (p, host, data, buflen, errnop, af);
if (__glibc_unlikely (parse_res < 1))
{
if (parse_res == -1)
@@ -530,8 +502,7 @@ _nss_nis_gethostbyname4_r (const char *name, struct gaih_addrtuple **pat,
buflen -= pad;
struct hostent host;
- int parse_res = parse_line (result, &host, data, buflen, errnop, AF_UNSPEC,
- 0);
+ int parse_res = parse_line (result, &host, data, buflen, errnop, AF_UNSPEC);
if (__glibc_unlikely (parse_res < 1))
{
if (parse_res == -1)
diff --git a/nis/nss_nis/nis-initgroups.c b/nis/nss_nis/nis-initgroups.c
index ca043d4e5a..efabc9eaad 100644
--- a/nis/nss_nis/nis-initgroups.c
+++ b/nis/nss_nis/nis-initgroups.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <errno.h>
diff --git a/nis/nss_nis/nis-netgrp.c b/nis/nss_nis/nis-netgrp.c
index 0aa4cabe41..52ab49328b 100644
--- a/nis/nss_nis/nis-netgrp.c
+++ b/nis/nss_nis/nis-netgrp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <ctype.h>
diff --git a/nis/nss_nis/nis-network.c b/nis/nss_nis/nis-network.c
index b66a043bc3..b4721f258c 100644
--- a/nis/nss_nis/nis-network.c
+++ b/nis/nss_nis/nis-network.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <nss.h>
/* The following is an ugly trick to avoid a prototype declaration for
diff --git a/nis/nss_nis/nis-proto.c b/nis/nss_nis/nis-proto.c
index 852a44aa12..00668bcf91 100644
--- a/nis/nss_nis/nis-proto.c
+++ b/nis/nss_nis/nis-proto.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <nss.h>
#include <netdb.h>
diff --git a/nis/nss_nis/nis-publickey.c b/nis/nss_nis/nis-publickey.c
index 6919fdd575..38b82d4e7d 100644
--- a/nis/nss_nis/nis-publickey.c
+++ b/nis/nss_nis/nis-publickey.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <nss.h>
#include <ctype.h>
diff --git a/nis/nss_nis/nis-pwd.c b/nis/nss_nis/nis-pwd.c
index cef13671ba..ab21054976 100644
--- a/nis/nss_nis/nis-pwd.c
+++ b/nis/nss_nis/nis-pwd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <ctype.h>
diff --git a/nis/nss_nis/nis-rpc.c b/nis/nss_nis/nis-rpc.c
index efe8b6d69e..92799a4621 100644
--- a/nis/nss_nis/nis-rpc.c
+++ b/nis/nss_nis/nis-rpc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <nss.h>
#include <netdb.h>
@@ -197,9 +197,9 @@ _nss_nis_getrpcbyname_r (const char *name, struct rpcent *rpc,
return status;
int found = 0;
- while (!found &&
- ((status = internal_nis_getrpcent_r (rpc, buffer, buflen, errnop,
- &data)) == NSS_STATUS_SUCCESS))
+ while (!found
+ && ((status = internal_nis_getrpcent_r (rpc, buffer, buflen, errnop,
+ &data)) == NSS_STATUS_SUCCESS))
{
if (strcmp (rpc->r_name, name) == 0)
found = 1;
diff --git a/nis/nss_nis/nis-service.c b/nis/nss_nis/nis-service.c
index 8d99b25007..d5fe9dd320 100644
--- a/nis/nss_nis/nis-service.c
+++ b/nis/nss_nis/nis-service.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <nss.h>
#include <netdb.h>
diff --git a/nis/nss_nis/nis-spwd.c b/nis/nss_nis/nis-spwd.c
index 9a87e517ef..342b2604ce 100644
--- a/nis/nss_nis/nis-spwd.c
+++ b/nis/nss_nis/nis-spwd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <nss.h>
#include <ctype.h>
diff --git a/nis/nss_nisplus/nisplus-alias.c b/nis/nss_nisplus/nisplus-alias.c
index 64f93a086d..265ce10b4e 100644
--- a/nis/nss_nisplus/nisplus-alias.c
+++ b/nis/nss_nisplus/nisplus-alias.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <atomic.h>
#include <nss.h>
diff --git a/nis/nss_nisplus/nisplus-ethers.c b/nis/nss_nisplus/nisplus-ethers.c
index a185a0a149..e13246b664 100644
--- a/nis/nss_nisplus/nisplus-ethers.c
+++ b/nis/nss_nisplus/nisplus-ethers.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <atomic.h>
#include <ctype.h>
diff --git a/nis/nss_nisplus/nisplus-grp.c b/nis/nss_nisplus/nisplus-grp.c
index d3ee6cedc0..7912559d32 100644
--- a/nis/nss_nisplus/nisplus-grp.c
+++ b/nis/nss_nisplus/nisplus-grp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <atomic.h>
#include <nss.h>
diff --git a/nis/nss_nisplus/nisplus-hosts.c b/nis/nss_nisplus/nisplus-hosts.c
index 3165d560fa..ec7f0010ec 100644
--- a/nis/nss_nisplus/nisplus-hosts.c
+++ b/nis/nss_nisplus/nisplus-hosts.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <atomic.h>
@@ -42,15 +42,9 @@ static u_long tablename_len;
#define NISENTRYLEN(idx, col, res) \
(NIS_RES_OBJECT (res)[idx].EN_data.en_cols.en_cols_val[col].ec_value.ec_value_len)
-/* Get implementation for some internal functions. */
-#include <resolv/resolv-internal.h>
-#include <resolv/mapv4v6addr.h>
-
-
static int
_nss_nisplus_parse_hostent (nis_result *result, int af, struct hostent *host,
- char *buffer, size_t buflen, int *errnop,
- int flags)
+ char *buffer, size_t buflen, int *errnop)
{
unsigned int i;
char *first_unused = buffer;
@@ -67,8 +61,7 @@ _nss_nisplus_parse_hostent (nis_result *result, int af, struct hostent *host,
char *data = first_unused;
- if (room_left < (af != AF_INET || (flags & AI_V4MAPPED) != 0
- ? IN6ADDRSZ : INADDRSZ))
+ if (room_left < (af != AF_INET ? IN6ADDRSZ : INADDRSZ))
{
no_more_room:
*errnop = ERANGE;
@@ -79,18 +72,8 @@ _nss_nisplus_parse_hostent (nis_result *result, int af, struct hostent *host,
if (af != AF_INET6
&& inet_pton (AF_INET, NISENTRYVAL (0, 2, result), data) > 0)
{
- assert ((flags & AI_V4MAPPED) == 0 || af != AF_UNSPEC);
- if (flags & AI_V4MAPPED)
- {
- map_v4v6_address (data, data);
- host->h_addrtype = AF_INET6;
- host->h_length = IN6ADDRSZ;
- }
- else
- {
- host->h_addrtype = AF_INET;
- host->h_length = INADDRSZ;
- }
+ host->h_addrtype = AF_INET;
+ host->h_length = INADDRSZ;
}
else if (af != AF_INET
&& inet_pton (AF_INET6, NISENTRYVAL (0, 2, result), data) > 0)
@@ -322,12 +305,8 @@ internal_nisplus_gethostent_r (struct hostent *host, char *buffer,
}
}
- if (res_use_inet6 ())
- parse_res = _nss_nisplus_parse_hostent (result, AF_INET6, host, buffer,
- buflen, errnop, AI_V4MAPPED);
- else
- parse_res = _nss_nisplus_parse_hostent (result, AF_INET, host, buffer,
- buflen, errnop, 0);
+ parse_res = _nss_nisplus_parse_hostent (result, AF_INET, host, buffer,
+ buflen, errnop);
if (parse_res == -1)
{
@@ -382,7 +361,7 @@ get_tablename (int *herrnop)
static enum nss_status
internal_gethostbyname2_r (const char *name, int af, struct hostent *host,
char *buffer, size_t buflen, int *errnop,
- int *herrnop, int flags)
+ int *herrnop)
{
if (tablename_val == NULL)
{
@@ -457,7 +436,7 @@ internal_gethostbyname2_r (const char *name, int af, struct hostent *host,
}
int parse_res = _nss_nisplus_parse_hostent (result, af, host, buffer,
- buflen, errnop, flags);
+ buflen, errnop);
nis_freeresult (result);
@@ -488,8 +467,7 @@ _nss_nisplus_gethostbyname2_r (const char *name, int af, struct hostent *host,
}
return internal_gethostbyname2_r (name, af, host, buffer, buflen, errnop,
- herrnop,
- (res_use_inet6 () ? AI_V4MAPPED : 0));
+ herrnop);
}
@@ -498,19 +476,8 @@ _nss_nisplus_gethostbyname_r (const char *name, struct hostent *host,
char *buffer, size_t buflen, int *errnop,
int *h_errnop)
{
- if (res_use_inet6 ())
- {
- enum nss_status status;
-
- status = internal_gethostbyname2_r (name, AF_INET6, host, buffer,
- buflen, errnop, h_errnop,
- AI_V4MAPPED);
- if (status == NSS_STATUS_SUCCESS)
- return status;
- }
-
return internal_gethostbyname2_r (name, AF_INET, host, buffer,
- buflen, errnop, h_errnop, 0);
+ buflen, errnop, h_errnop);
}
@@ -558,9 +525,7 @@ _nss_nisplus_gethostbyaddr_r (const void *addr, socklen_t addrlen, int af,
}
parse_res = _nss_nisplus_parse_hostent (result, af, host,
- buffer, buflen, errnop,
- (res_use_inet6 ()
- ? AI_V4MAPPED : 0));
+ buffer, buflen, errnop);
nis_freeresult (result);
if (parse_res > 0)
@@ -587,7 +552,7 @@ _nss_nisplus_gethostbyname4_r (const char *name, struct gaih_addrtuple **pat,
enum nss_status status = internal_gethostbyname2_r (name, AF_UNSPEC, &host,
buffer, buflen,
- errnop, herrnop, 0);
+ errnop, herrnop);
if (__glibc_likely (status == NSS_STATUS_SUCCESS))
{
if (*pat == NULL)
diff --git a/nis/nss_nisplus/nisplus-initgroups.c b/nis/nss_nisplus/nisplus-initgroups.c
index 613c4ec912..3671ac1f51 100644
--- a/nis/nss_nisplus/nisplus-initgroups.c
+++ b/nis/nss_nisplus/nisplus-initgroups.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <atomic.h>
#include <nss.h>
diff --git a/nis/nss_nisplus/nisplus-netgrp.c b/nis/nss_nisplus/nisplus-netgrp.c
index 1542e51496..f24071293c 100644
--- a/nis/nss_nisplus/nisplus-netgrp.c
+++ b/nis/nss_nisplus/nisplus-netgrp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <nss.h>
#include <errno.h>
@@ -87,9 +87,9 @@ _nss_nisplus_getnetgrent_r (struct __netgrent *result, char *buffer,
result->type = triple_val;
- if (hostlen == 0 ||
- NISENTRYVAL (result->position, 2,
- (nis_result *) result->data)[0] == '\0')
+ if (hostlen == 0
+ || NISENTRYVAL (result->position, 2,
+ (nis_result *) result->data)[0] == '\0')
result->val.triple.host = NULL;
else
{
@@ -100,9 +100,9 @@ _nss_nisplus_getnetgrent_r (struct __netgrent *result, char *buffer,
*cp++ = '\0';
}
- if (userlen == 0 ||
- NISENTRYVAL (result->position, 3,
- (nis_result *) result->data)[0] == '\0')
+ if (userlen == 0
+ || NISENTRYVAL (result->position, 3,
+ (nis_result *) result->data)[0] == '\0')
result->val.triple.user = NULL;
else
{
@@ -113,9 +113,9 @@ _nss_nisplus_getnetgrent_r (struct __netgrent *result, char *buffer,
*cp++ = '\0';
}
- if (domainlen == 0 ||
- NISENTRYVAL (result->position, 4,
- (nis_result *) result->data)[0] == '\0')
+ if (domainlen == 0
+ || NISENTRYVAL (result->position, 4,
+ (nis_result *) result->data)[0] == '\0')
result->val.triple.domain = NULL;
else
{
diff --git a/nis/nss_nisplus/nisplus-network.c b/nis/nss_nisplus/nisplus-network.c
index 97e2a1cfef..4c477c2372 100644
--- a/nis/nss_nisplus/nisplus-network.c
+++ b/nis/nss_nisplus/nisplus-network.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <atomic.h>
#include <ctype.h>
diff --git a/nis/nss_nisplus/nisplus-parser.c b/nis/nss_nisplus/nisplus-parser.c
index d2b06334c2..9bf13cd343 100644
--- a/nis/nss_nisplus/nisplus-parser.c
+++ b/nis/nss_nisplus/nisplus-parser.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pwd.h>
#include <ctype.h>
diff --git a/nis/nss_nisplus/nisplus-proto.c b/nis/nss_nisplus/nisplus-proto.c
index 1ea641df67..7da9c01289 100644
--- a/nis/nss_nisplus/nisplus-proto.c
+++ b/nis/nss_nisplus/nisplus-proto.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <atomic.h>
#include <ctype.h>
diff --git a/nis/nss_nisplus/nisplus-publickey.c b/nis/nss_nisplus/nisplus-publickey.c
index 758092c670..0aaf34fe3f 100644
--- a/nis/nss_nisplus/nisplus-publickey.c
+++ b/nis/nss_nisplus/nisplus-publickey.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (c) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <nss.h>
#include <ctype.h>
diff --git a/nis/nss_nisplus/nisplus-pwd.c b/nis/nss_nisplus/nisplus-pwd.c
index 35cca36364..b2a58a90a6 100644
--- a/nis/nss_nisplus/nisplus-pwd.c
+++ b/nis/nss_nisplus/nisplus-pwd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <atomic.h>
#include <nss.h>
diff --git a/nis/nss_nisplus/nisplus-rpc.c b/nis/nss_nisplus/nisplus-rpc.c
index e70769c173..e28da17f32 100644
--- a/nis/nss_nisplus/nisplus-rpc.c
+++ b/nis/nss_nisplus/nisplus-rpc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <atomic.h>
#include <ctype.h>
diff --git a/nis/nss_nisplus/nisplus-service.c b/nis/nss_nisplus/nisplus-service.c
index e0925c9c78..ff9d55b1a8 100644
--- a/nis/nss_nisplus/nisplus-service.c
+++ b/nis/nss_nisplus/nisplus-service.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <atomic.h>
#include <ctype.h>
diff --git a/nis/nss_nisplus/nisplus-spwd.c b/nis/nss_nisplus/nisplus-spwd.c
index e55b804519..70a2615de4 100644
--- a/nis/nss_nisplus/nisplus-spwd.c
+++ b/nis/nss_nisplus/nisplus-spwd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <nss.h>
#include <errno.h>
diff --git a/nis/rpcsvc/nislib.h b/nis/rpcsvc/nislib.h
index 226b9cf1d3..0d67fc73f3 100644
--- a/nis/rpcsvc/nislib.h
+++ b/nis/rpcsvc/nislib.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef __RPCSVC_NISLIB_H__
#define __RPCSVC_NISLIB_H__
diff --git a/nis/rpcsvc/ypclnt.h b/nis/rpcsvc/ypclnt.h
index af904fccb2..251e426844 100644
--- a/nis/rpcsvc/ypclnt.h
+++ b/nis/rpcsvc/ypclnt.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef __RPCSVC_YPCLNT_H__
diff --git a/nis/ypclnt.c b/nis/ypclnt.c
index 11a17db98d..78afe4384b 100644
--- a/nis/ypclnt.c
+++ b/nis/ypclnt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
@@ -436,9 +436,9 @@ yp_match (const char *indomain, const char *inmap, const char *inkey,
ypresp_val resp;
enum clnt_stat result;
- if (indomain == NULL || indomain[0] == '\0' ||
- inmap == NULL || inmap[0] == '\0' ||
- inkey == NULL || inkey[0] == '\0' || inkeylen <= 0)
+ if (indomain == NULL || indomain[0] == '\0'
+ || inmap == NULL || inmap[0] == '\0'
+ || inkey == NULL || inkey[0] == '\0' || inkeylen <= 0)
return YPERR_BADARGS;
req.domain = (char *) indomain;
@@ -481,8 +481,8 @@ yp_first (const char *indomain, const char *inmap, char **outkey,
ypresp_key_val resp;
enum clnt_stat result;
- if (indomain == NULL || indomain[0] == '\0' ||
- inmap == NULL || inmap[0] == '\0')
+ if (indomain == NULL || indomain[0] == '\0'
+ || inmap == NULL || inmap[0] == '\0')
return YPERR_BADARGS;
req.domain = (char *) indomain;
@@ -537,9 +537,9 @@ yp_next (const char *indomain, const char *inmap, const char *inkey,
ypresp_key_val resp;
enum clnt_stat result;
- if (indomain == NULL || indomain[0] == '\0' ||
- inmap == NULL || inmap[0] == '\0' ||
- inkeylen <= 0 || inkey == NULL || inkey[0] == '\0')
+ if (indomain == NULL || indomain[0] == '\0'
+ || inmap == NULL || inmap[0] == '\0'
+ || inkeylen <= 0 || inkey == NULL || inkey[0] == '\0')
return YPERR_BADARGS;
req.domain = (char *) indomain;
@@ -592,8 +592,8 @@ yp_master (const char *indomain, const char *inmap, char **outname)
ypresp_master resp;
enum clnt_stat result;
- if (indomain == NULL || indomain[0] == '\0' ||
- inmap == NULL || inmap[0] == '\0')
+ if (indomain == NULL || indomain[0] == '\0'
+ || inmap == NULL || inmap[0] == '\0')
return YPERR_BADARGS;
req.domain = (char *) indomain;
@@ -622,8 +622,8 @@ yp_order (const char *indomain, const char *inmap, unsigned int *outorder)
struct ypresp_order resp;
enum clnt_stat result;
- if (indomain == NULL || indomain[0] == '\0' ||
- inmap == NULL || inmap[0] == '\0')
+ if (indomain == NULL || indomain[0] == '\0'
+ || inmap == NULL || inmap[0] == '\0')
return YPERR_BADARGS;
req.domain = (char *) indomain;
diff --git a/nptl/DESIGN-systemtap-probes.txt b/nptl/DESIGN-systemtap-probes.txt
index ac972a9542..6a62e25532 100644
--- a/nptl/DESIGN-systemtap-probes.txt
+++ b/nptl/DESIGN-systemtap-probes.txt
@@ -32,6 +32,9 @@ mutex_entry - probe for entry to the pthread_mutex_lock function
arg1 = address of mutex lock
mutex_timedlock_entry - probe for entry to the pthread_mutex_timedlock function
arg1 = address of mutex lock, arg2 = address of timespec
+mutex_clocklock_entry - probe for entry to the pthread_mutex_clocklock function
+ arg1 = address of mutex lock, arg2 = clockid,
+ arg3 = address of timespec
mutex_release - probe for pthread_mutex_unlock after the successful release of a
mutex lock
arg1 = address of mutex lock
diff --git a/nptl/Makefile b/nptl/Makefile
index be8066524c..fffd9462ff 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2018 Free Software Foundation, Inc.
+# Copyright (C) 2002-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
# Sub-makefile for NPTL portion of the library.
@@ -22,7 +22,8 @@ subdir := nptl
include ../Makeconfig
-headers := pthread.h semaphore.h bits/semaphore.h threads.h
+headers := pthread.h semaphore.h bits/semaphore.h threads.h \
+ bits/struct_mutex.h bits/struct_rwlock.h
extra-libs := libpthread
extra-libs-others := $(extra-libs)
@@ -30,7 +31,11 @@ extra-libs-others := $(extra-libs)
routines = alloca_cutoff forward libc-lowlevellock libc-cancellation \
libc-cleanup libc_pthread_init libc_multiple_threads \
register-atfork pthread_atfork pthread_self thrd_current \
- thrd_equal thrd_sleep thrd_yield
+ thrd_equal thrd_sleep thrd_yield pthread_equal \
+ pthread_attr_destroy pthread_attr_init pthread_attr_getdetachstate \
+ pthread_attr_setdetachstate pthread_attr_getinheritsched \
+ pthread_attr_setinheritsched pthread_attr_getschedparam \
+ pthread_attr_setschedparam
shared-only-routines = forward
static-only-routines = pthread_atfork
@@ -40,7 +45,7 @@ pthread-compat-wrappers = \
write read close accept \
connect recv recvfrom send \
sendto fsync lseek lseek64 \
- msync nanosleep open open64 pause \
+ msync open open64 pause \
pread pread64 pwrite pwrite64 \
tcdrain wait waitpid msgrcv msgsnd \
sigwait sigsuspend \
@@ -49,18 +54,12 @@ pthread-compat-wrappers = \
libpthread-routines = nptl-init nptlfreeres vars events version pt-interp \
pthread_create pthread_exit pthread_detach \
pthread_join pthread_tryjoin pthread_timedjoin \
- pthread_join_common \
- compat-pthread_self pthread_equal pthread_yield \
+ pthread_clockjoin pthread_join_common pthread_yield \
pthread_getconcurrency pthread_setconcurrency \
pthread_getschedparam pthread_setschedparam \
pthread_setschedprio \
- pthread_attr_init pthread_attr_destroy \
- pthread_attr_getdetachstate pthread_attr_setdetachstate \
pthread_attr_getguardsize pthread_attr_setguardsize \
- pthread_attr_getschedparam pthread_attr_setschedparam \
pthread_attr_getschedpolicy pthread_attr_setschedpolicy \
- pthread_attr_getinheritsched \
- pthread_attr_setinheritsched \
pthread_attr_getscope pthread_attr_setscope \
pthread_attr_getstackaddr pthread_attr_setstackaddr \
pthread_attr_getstacksize pthread_attr_setstacksize \
@@ -76,7 +75,9 @@ libpthread-routines = nptl-init nptlfreeres vars events version pt-interp \
pthread_mutexattr_gettype pthread_mutexattr_settype \
pthread_rwlock_init pthread_rwlock_destroy \
pthread_rwlock_rdlock pthread_rwlock_timedrdlock \
+ pthread_rwlock_clockrdlock \
pthread_rwlock_wrlock pthread_rwlock_timedwrlock \
+ pthread_rwlock_clockwrlock \
pthread_rwlock_tryrdlock pthread_rwlock_trywrlock \
pthread_rwlock_unlock \
pthread_rwlockattr_init pthread_rwlockattr_destroy \
@@ -109,19 +110,18 @@ libpthread-routines = nptl-init nptlfreeres vars events version pt-interp \
pthread_once \
old_pthread_atfork \
pthread_getcpuclockid \
- pthread_clock_gettime pthread_clock_settime \
shm-directory \
sem_init sem_destroy \
sem_open sem_close sem_unlink \
sem_getvalue \
- sem_wait sem_timedwait sem_post \
+ sem_wait sem_timedwait sem_clockwait sem_post \
cleanup cleanup_defer cleanup_compat \
cleanup_defer_compat unwind \
pt-longjmp pt-cleanup\
cancellation \
lowlevellock \
- lll_timedlock_wait lll_timedwait_tid \
- pt-fork pt-vfork pt-fcntl \
+ lll_timedlock_wait \
+ pt-fork pt-fcntl \
$(pthread-compat-wrappers) \
pt-raise pt-system \
flockfile ftrylockfile funlockfile \
@@ -145,7 +145,8 @@ libpthread-routines = nptl-init nptlfreeres vars events version pt-interp \
mtx_destroy mtx_init mtx_lock mtx_timedlock \
mtx_trylock mtx_unlock call_once cnd_broadcast \
cnd_destroy cnd_init cnd_signal cnd_timedwait cnd_wait \
- tss_create tss_delete tss_get tss_set
+ tss_create tss_delete tss_get tss_set pthread_mutex_conf \
+ libpthread-compat
# pthread_setuid pthread_seteuid pthread_setreuid \
# pthread_setresuid \
# pthread_setgid pthread_setegid pthread_setregid \
@@ -189,11 +190,13 @@ CFLAGS-forward.c += -fexceptions
CFLAGS-pthread_testcancel.c += -fexceptions
CFLAGS-pthread_join.c += -fexceptions -fasynchronous-unwind-tables
CFLAGS-pthread_timedjoin.c += -fexceptions -fasynchronous-unwind-tables
+CFLAGS-pthread_clockjoin.c += -fexceptions -fasynchronous-unwind-tables
CFLAGS-pthread_once.c += $(uses-callbacks) -fexceptions \
-fasynchronous-unwind-tables
CFLAGS-pthread_cond_wait.c += -fexceptions -fasynchronous-unwind-tables
CFLAGS-sem_wait.c += -fexceptions -fasynchronous-unwind-tables
CFLAGS-sem_timedwait.c += -fexceptions -fasynchronous-unwind-tables
+CFLAGS-sem_clockwait.c = -fexceptions -fasynchronous-unwind-tables
# These are the function wrappers we have to duplicate here.
CFLAGS-fcntl.c += -fexceptions -fasynchronous-unwind-tables
@@ -223,7 +226,6 @@ CFLAGS-sendmsg.c += -fexceptions -fasynchronous-unwind-tables
CFLAGS-close.c += -fexceptions -fasynchronous-unwind-tables
CFLAGS-read.c += -fexceptions -fasynchronous-unwind-tables
CFLAGS-write.c += -fexceptions -fasynchronous-unwind-tables
-CFLAGS-nanosleep.c += -fexceptions -fasynchronous-unwind-tables
CFLAGS-sigsuspend.c += -fexceptions -fasynchronous-unwind-tables
CFLAGS-msync.c += -fexceptions -fasynchronous-unwind-tables
CFLAGS-fdatasync.c += -fexceptions -fasynchronous-unwind-tables
@@ -241,15 +243,16 @@ LDLIBS-tst-minstack-throw = -lstdc++
tests = tst-attr1 tst-attr2 tst-attr3 tst-default-attr \
tst-mutex1 tst-mutex2 tst-mutex3 tst-mutex4 tst-mutex5 tst-mutex6 \
- tst-mutex7 tst-mutex9 tst-mutex5a tst-mutex7a tst-mutex7robust \
- tst-mutexpi1 tst-mutexpi2 tst-mutexpi3 tst-mutexpi4 tst-mutexpi5 \
- tst-mutexpi5a tst-mutexpi6 tst-mutexpi7 tst-mutexpi7a \
+ tst-mutex7 tst-mutex9 tst-mutex10 tst-mutex11 tst-mutex5a tst-mutex7a \
+ tst-mutex7robust tst-mutexpi1 tst-mutexpi2 tst-mutexpi3 tst-mutexpi4 \
+ tst-mutexpi5 tst-mutexpi5a tst-mutexpi6 tst-mutexpi7 tst-mutexpi7a \
tst-mutexpi9 \
tst-spin1 tst-spin2 tst-spin3 tst-spin4 \
tst-cond1 tst-cond2 tst-cond3 tst-cond4 tst-cond5 tst-cond6 tst-cond7 \
tst-cond8 tst-cond9 tst-cond10 tst-cond11 tst-cond12 tst-cond13 \
tst-cond14 tst-cond15 tst-cond16 tst-cond17 tst-cond18 tst-cond19 \
tst-cond20 tst-cond21 tst-cond22 tst-cond23 tst-cond24 tst-cond25 \
+ tst-cond26 tst-cond27 \
tst-cond-except \
tst-robust1 tst-robust2 tst-robust3 tst-robust4 tst-robust5 \
tst-robust6 tst-robust7 tst-robust8 tst-robust9 \
@@ -263,7 +266,7 @@ tests = tst-attr1 tst-attr2 tst-attr3 tst-default-attr \
tst-key1 tst-key2 tst-key3 tst-key4 \
tst-sem1 tst-sem2 tst-sem3 tst-sem4 tst-sem5 tst-sem6 tst-sem7 \
tst-sem8 tst-sem9 tst-sem10 tst-sem14 \
- tst-sem15 tst-sem16 \
+ tst-sem15 tst-sem16 tst-sem17 \
tst-barrier1 tst-barrier2 tst-barrier3 tst-barrier4 \
tst-align tst-align3 \
tst-basic1 tst-basic2 tst-basic3 tst-basic4 tst-basic5 tst-basic6 \
@@ -271,8 +274,10 @@ tests = tst-attr1 tst-attr2 tst-attr3 tst-default-attr \
tst-kill1 tst-kill2 tst-kill3 tst-kill4 tst-kill5 tst-kill6 \
tst-raise1 \
tst-join1 tst-join2 tst-join3 tst-join4 tst-join5 tst-join6 tst-join7 \
+ tst-join8 tst-join9 tst-join10 tst-join11 tst-join12 tst-join13 \
+ tst-join14 \
tst-detach1 \
- tst-eintr1 tst-eintr2 tst-eintr3 tst-eintr4 tst-eintr5 \
+ tst-eintr2 tst-eintr3 tst-eintr4 tst-eintr5 \
tst-tsd1 tst-tsd2 tst-tsd3 tst-tsd4 tst-tsd5 tst-tsd6 \
tst-tls1 tst-tls2 \
tst-fork1 tst-fork2 tst-fork3 tst-fork4 \
@@ -282,7 +287,7 @@ tests = tst-attr1 tst-attr2 tst-attr3 tst-default-attr \
tst-cancel6 tst-cancel7 tst-cancel8 tst-cancel9 tst-cancel10 \
tst-cancel11 tst-cancel12 tst-cancel13 tst-cancel14 tst-cancel15 \
tst-cancel16 tst-cancel17 tst-cancel18 tst-cancel19 tst-cancel20 \
- tst-cancel21 tst-cancel22 tst-cancel23 tst-cancel24 tst-cancel25 \
+ tst-cancel21 tst-cancel22 tst-cancel23 tst-cancel24 \
tst-cancel26 tst-cancel27 \
tst-cancel-self tst-cancel-self-cancelstate \
tst-cancel-self-canceltype tst-cancel-self-testcancel \
@@ -318,15 +323,23 @@ tests = tst-attr1 tst-attr2 tst-attr3 tst-default-attr \
tst-minstack-throw \
tst-cnd-basic tst-mtx-trylock tst-cnd-broadcast \
tst-cnd-timedwait tst-thrd-detach tst-mtx-basic tst-thrd-sleep \
- tst-mtx-recursive tst-tss-basic tst-call-once tst-mtx-timedlock
+ tst-mtx-recursive tst-tss-basic tst-call-once tst-mtx-timedlock \
+ tst-rwlock-pwn \
+ tst-rwlock-tryrdlock-stall tst-rwlock-trywrlock-stall \
+ tst-unwind-thread
tests-internal := tst-rwlock19 tst-rwlock20 \
tst-sem11 tst-sem12 tst-sem13 \
tst-barrier5 tst-signal7 tst-mutex8 tst-mutex8-static \
- tst-mutexpi8 tst-mutexpi8-static
+ tst-mutexpi8 tst-mutexpi8-static tst-cancel25
xtests = tst-setuid1 tst-setuid1-static tst-setuid2 \
tst-mutexpp1 tst-mutexpp6 tst-mutexpp10
+
+# This test can run into task limits because of a linux kernel bug
+# and then cause the make process to fail too, see bug 24537.
+xtests += tst-eintr1
+
test-srcs = tst-oddstacklimit
# Test expected to fail on most targets (except x86_64) due to bug
@@ -382,7 +395,8 @@ tests += tst-cancelx2 tst-cancelx3 tst-cancelx4 tst-cancelx5 \
tst-cleanupx0 tst-cleanupx1 tst-cleanupx2 tst-cleanupx3 tst-cleanupx4 \
tst-oncex3 tst-oncex4
ifeq ($(build-shared),yes)
-tests += tst-atfork2 tst-tls4 tst-_res1 tst-fini1 tst-compat-forwarder
+tests += tst-atfork2 tst-tls4 tst-_res1 tst-fini1 tst-compat-forwarder \
+ tst-audit-threads
tests-internal += tst-tls3 tst-tls3-malloc tst-tls5 tst-stackguard1
tests-nolibpthread += tst-fini1
ifeq ($(have-z-execstack),yes)
@@ -394,7 +408,8 @@ modules-names = tst-atfork2mod tst-tls3mod tst-tls4moda tst-tls4modb \
tst-tls5mod tst-tls5moda tst-tls5modb tst-tls5modc \
tst-tls5modd tst-tls5mode tst-tls5modf tst-stack4mod \
tst-_res1mod1 tst-_res1mod2 tst-execstack-mod tst-fini1mod \
- tst-join7mod tst-compat-forwarder-mod
+ tst-join7mod tst-compat-forwarder-mod tst-audit-threads-mod1 \
+ tst-audit-threads-mod2
extra-test-objs += $(addsuffix .os,$(strip $(modules-names))) \
tst-cleanup4aux.o tst-cleanupx4aux.o
test-extras += tst-cleanup4aux tst-cleanupx4aux
@@ -449,9 +464,10 @@ link-libc-static := $(common-objpfx)libc.a $(static-gnulib) \
tests-static += tst-locale1 tst-locale2 tst-stackguard1-static \
tst-cancel21-static tst-cancel24-static tst-cond8-static \
tst-mutex8-static tst-mutexpi8-static tst-sem11-static \
- tst-sem12-static
+ tst-sem12-static tst-cond11-static
+
tests += tst-cancel21-static tst-cancel24-static \
- tst-cond8-static
+ tst-cond8-static tst-cond11-static
tests-internal += tst-sem11-static tst-sem12-static tst-stackguard1-static
xtests-static += tst-setuid1-static
@@ -461,8 +477,7 @@ tests-reverse += tst-cancel5 tst-cancel23 tst-vfork1x tst-vfork2x
ifeq ($(run-built-tests),yes)
tests-special += $(objpfx)tst-stack3-mem.out $(objpfx)tst-oddstacklimit.out
ifeq ($(build-shared),yes)
-tests-special += $(objpfx)tst-tls6.out $(objpfx)tst-cleanup0-cmp.out \
- $(objpfx)tst-cancel-wrappers.out
+tests-special += $(objpfx)tst-tls6.out $(objpfx)tst-cleanup0-cmp.out
endif
endif
@@ -576,7 +591,7 @@ $(objpfx)tst-tls4: $(libdl) $(shared-thread-library)
$(objpfx)tst-tls4.out: $(objpfx)tst-tls4moda.so $(objpfx)tst-tls4modb.so
$(objpfx)tst-tls5: $(objpfx)tst-tls5mod.so $(shared-thread-library)
-LDFLAGS-tst-tls5 = $(no-as-needed)
+LDFLAGS-tst-tls5 = -Wl,--no-as-needed
LDFLAGS-tst-tls5mod.so = -Wl,-soname,tst-tls5mod.so
ifeq ($(build-shared),yes)
@@ -616,7 +631,7 @@ LDFLAGS-tst-_res1mod2.so = -Wl,-soname,tst-_res1mod2.so
$(objpfx)tst-_res1: $(objpfx)tst-_res1mod1.so $(objpfx)tst-_res1mod2.so \
$(shared-thread-library)
-LDLIBS-tst-cancel24 = $(no-as-needed) -lstdc++
+LDLIBS-tst-cancel24 = -Wl,--no-as-needed -lstdc++
LDLIBS-tst-cancel24-static = $(LDLIBS-tst-cancel24)
extra-B-pthread.so = -B$(common-objpfx)nptl/
@@ -665,8 +680,7 @@ $(objpfx)$(multidir)/crtn.o: $(objpfx)crtn.o $(objpfx)$(multidir)/
ln -f $< $@
endif
-generated += multidir.mk tst-atfork2.mtrace tst-cancel-wrappers.out \
- tst-tls6.out
+generated += multidir.mk tst-atfork2.mtrace tst-tls6.out
generated += $(objpfx)tst-atfork2.mtrace \
$(addsuffix .so,$(strip $(modules-names)))
@@ -677,18 +691,6 @@ LDFLAGS-pthread.so += -e __nptl_main
$(objpfx)pt-interp.os: $(common-objpfx)runtime-linker.h
endif
-ifeq ($(run-built-tests),yes)
-ifeq (yes,$(build-shared))
-$(objpfx)tst-cancel-wrappers.out: tst-cancel-wrappers.sh
- $(SHELL) $< '$(NM)' \
- $(common-objpfx)libc_pic.a \
- $(common-objpfx)libc.a \
- $(objpfx)libpthread_pic.a \
- $(objpfx)libpthread.a > $@; \
- $(evaluate-test)
-endif
-endif
-
tst-exec4-ARGS = $(host-test-program-cmd)
$(objpfx)tst-execstack: $(libdl)
@@ -709,6 +711,18 @@ endif
$(objpfx)tst-compat-forwarder: $(objpfx)tst-compat-forwarder-mod.so
+tst-mutex10-ENV = GLIBC_TUNABLES=glibc.elision.enable=1
+
+# Protect against a build using -Wl,-z,now.
+LDFLAGS-tst-audit-threads-mod1.so = -Wl,-z,lazy
+LDFLAGS-tst-audit-threads-mod2.so = -Wl,-z,lazy
+LDFLAGS-tst-audit-threads = -Wl,-z,lazy
+$(objpfx)tst-audit-threads: $(objpfx)tst-audit-threads-mod2.so
+$(objpfx)tst-audit-threads.out: $(objpfx)tst-audit-threads-mod1.so
+tst-audit-threads-ENV = LD_AUDIT=$(objpfx)tst-audit-threads-mod1.so
+
+CFLAGS-tst-unwind-thread.c += -funwind-tables
+
# The tests here better do not run in parallel
ifneq ($(filter %tests,$(MAKECMDGOALS)),)
.NOTPARALLEL:
diff --git a/nptl/Versions b/nptl/Versions
index e7f691da7a..5d6aedb7de 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -36,7 +36,6 @@ libc {
__libc_alloca_cutoff;
# Internal libc interface to libpthread
__libc_dl_error_tsd;
- __libc_vfork;
__libc_pthread_init;
__libc_current_sigrtmin_private; __libc_current_sigrtmax_private;
__libc_allocate_rtsig_private;
@@ -45,16 +44,12 @@ libc {
libpthread {
GLIBC_2.0 {
- pthread_create; pthread_join; pthread_self; pthread_equal;
+ pthread_create; pthread_join;
pthread_exit; pthread_detach;
pthread_getschedparam; pthread_setschedparam;
- pthread_attr_init; pthread_attr_destroy;
- pthread_attr_getdetachstate; pthread_attr_setdetachstate;
- pthread_attr_getschedparam; pthread_attr_setschedparam;
pthread_attr_getschedpolicy; pthread_attr_setschedpolicy;
- pthread_attr_getinheritsched; pthread_attr_setinheritsched;
pthread_attr_getscope; pthread_attr_setscope;
pthread_mutex_init; pthread_mutex_destroy;
@@ -98,12 +93,12 @@ libpthread {
sem_destroy; sem_getvalue; sem_init; sem_post; sem_trywait; sem_wait;
# Special fork handling.
- fork; __fork; vfork;
+ fork; __fork;
# Cancellation points.
close; __close; fcntl; __fcntl; read; __read; write; __write; accept;
connect; __connect; recv; recvfrom; recvmsg; send; __send; sendmsg; sendto;
- fsync; lseek; __lseek; msync; nanosleep; open; __open; pause; tcdrain;
+ fsync; lseek; __lseek; msync; open; __open; pause; tcdrain;
system; wait; __wait; waitpid;
# Hidden entry point (through macros).
@@ -122,7 +117,6 @@ libpthread {
GLIBC_2.1 {
pthread_create;
- pthread_attr_init;
pthread_attr_getguardsize; pthread_attr_setguardsize;
pthread_attr_getstackaddr; pthread_attr_setstackaddr;
@@ -152,7 +146,7 @@ libpthread {
}
GLIBC_2.1.2 {
- __vfork;
+ __libpthread_version_placeholder;
}
GLIBC_2.2 {
@@ -199,8 +193,7 @@ libpthread {
}
GLIBC_2.2.6 {
- # Cancellation wrapper
- __nanosleep;
+ __libpthread_version_placeholder;
}
GLIBC_2.3.2 {
@@ -277,6 +270,16 @@ libpthread {
cnd_timedwait; cnd_wait; tss_create; tss_delete; tss_get; tss_set;
}
+ GLIBC_2.30 {
+ sem_clockwait; pthread_cond_clockwait;
+ pthread_rwlock_clockrdlock; pthread_rwlock_clockwrlock;
+ pthread_mutex_clocklock;
+ }
+
+ GLIBC_2.31 {
+ pthread_clockjoin_np;
+ }
+
GLIBC_PRIVATE {
__pthread_initialize_minimal;
__pthread_clock_gettime; __pthread_clock_settime;
diff --git a/nptl/alloca_cutoff.c b/nptl/alloca_cutoff.c
index f0f70ae63d..0b0f9847e4 100644
--- a/nptl/alloca_cutoff.c
+++ b/nptl/alloca_cutoff.c
@@ -1,5 +1,5 @@
/* Determine whether block of given size can be allocated on the stack or not.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <alloca.h>
#include <stdlib.h>
diff --git a/nptl/allocatestack.c b/nptl/allocatestack.c
index 04e3f08465..086efb75ec 100644
--- a/nptl/allocatestack.c
+++ b/nptl/allocatestack.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
@@ -379,8 +379,7 @@ setup_stack_prot (char *mem, size_t size, char *guard, size_t guardsize,
/* Mark the memory of the stack as usable to the kernel. It frees everything
except for the space used for the TCB itself. */
-static inline void
-__always_inline
+static __always_inline void
advise_stack_range (void *mem, size_t size, uintptr_t pd, size_t guardsize)
{
uintptr_t sp = (uintptr_t) CURRENT_STACK_FRAME;
@@ -572,7 +571,9 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp,
/* Place the thread descriptor at the end of the stack. */
#if TLS_TCB_AT_TP
- pd = (struct pthread *) ((char *) mem + size) - 1;
+ pd = (struct pthread *) ((((uintptr_t) mem + size)
+ - TLS_TCB_SIZE)
+ & ~__static_tls_align_m1);
#elif TLS_DTV_AT_TP
pd = (struct pthread *) ((((uintptr_t) mem + size
- __static_tls_size)
@@ -962,55 +963,6 @@ __reclaim_stacks (void)
}
-#if HP_TIMING_AVAIL
-# undef __find_thread_by_id
-/* Find a thread given the thread ID. */
-attribute_hidden
-struct pthread *
-__find_thread_by_id (pid_t tid)
-{
- struct pthread *result = NULL;
-
- lll_lock (stack_cache_lock, LLL_PRIVATE);
-
- /* Iterate over the list with system-allocated threads first. */
- list_t *runp;
- list_for_each (runp, &stack_used)
- {
- struct pthread *curp;
-
- curp = list_entry (runp, struct pthread, list);
-
- if (curp->tid == tid)
- {
- result = curp;
- goto out;
- }
- }
-
- /* Now the list with threads using user-allocated stacks. */
- list_for_each (runp, &__stack_user)
- {
- struct pthread *curp;
-
- curp = list_entry (runp, struct pthread, list);
-
- if (curp->tid == tid)
- {
- result = curp;
- goto out;
- }
- }
-
- out:
- lll_unlock (stack_cache_lock, LLL_PRIVATE);
-
- return result;
-}
-#endif
-
-
-#ifdef SIGSETXID
static void
setxid_mark_thread (struct xid_command *cmdp, struct pthread *t)
{
@@ -1221,8 +1173,6 @@ __nptl_setxid (struct xid_command *cmdp)
lll_unlock (stack_cache_lock, LLL_PRIVATE);
return result;
}
-#endif /* SIGSETXID. */
-
static inline void __attribute__((always_inline))
init_one_static_tls (struct pthread *curp, struct link_map *map)
diff --git a/nptl/call_once.c b/nptl/call_once.c
index 5bc88cbbed..21020c4b1e 100644
--- a/nptl/call_once.c
+++ b/nptl/call_once.c
@@ -1,5 +1,5 @@
/* C11 threads call once implementation.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdalign.h>
diff --git a/nptl/cancellation.c b/nptl/cancellation.c
index 47a9b55482..23d7b2b34c 100644
--- a/nptl/cancellation.c
+++ b/nptl/cancellation.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <setjmp.h>
#include <stdlib.h>
@@ -24,7 +24,9 @@
/* The next two functions are similar to pthread_setcanceltype() but
more specialized for the use in the cancelable functions like write().
- They do not need to check parameters etc. */
+ They do not need to check parameters etc. These functions must be
+ AS-safe, with the exception of the actual cancellation, because they
+ are called by wrappers around AS-safe functions like write().*/
int
attribute_hidden
__pthread_enable_asynccancel (void)
@@ -59,7 +61,8 @@ __pthread_enable_asynccancel (void)
return oldval;
}
-
+/* See the comment for __pthread_enable_asynccancel regarding
+ the AS-safety of this function. */
void
attribute_hidden
__pthread_disable_asynccancel (int oldtype)
diff --git a/nptl/cleanup.c b/nptl/cleanup.c
index d21b86e88b..3b0881d083 100644
--- a/nptl/cleanup.c
+++ b/nptl/cleanup.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include "pthreadP.h"
diff --git a/nptl/cleanup_compat.c b/nptl/cleanup_compat.c
index 85763241c8..23d16d65c0 100644
--- a/nptl/cleanup_compat.c
+++ b/nptl/cleanup_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include "pthreadP.h"
diff --git a/nptl/cleanup_defer.c b/nptl/cleanup_defer.c
index 5701ce4213..76aeea8068 100644
--- a/nptl/cleanup_defer.c
+++ b/nptl/cleanup_defer.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include "pthreadP.h"
diff --git a/nptl/cleanup_defer_compat.c b/nptl/cleanup_defer_compat.c
index 390dcd6c8a..0470078d25 100644
--- a/nptl/cleanup_defer_compat.c
+++ b/nptl/cleanup_defer_compat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "pthreadP.h"
diff --git a/nptl/cleanup_routine.c b/nptl/cleanup_routine.c
index 728bbfd819..12285a8bde 100644
--- a/nptl/cleanup_routine.c
+++ b/nptl/cleanup_routine.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
diff --git a/nptl/cnd_broadcast.c b/nptl/cnd_broadcast.c
index 889f88e2ed..e08a6579a5 100644
--- a/nptl/cnd_broadcast.c
+++ b/nptl/cnd_broadcast.c
@@ -1,5 +1,5 @@
/* C11 thread conditional broadcast implementation.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thrd_priv.h"
diff --git a/nptl/cnd_destroy.c b/nptl/cnd_destroy.c
index 37df9e9a2d..8da8ed06dd 100644
--- a/nptl/cnd_destroy.c
+++ b/nptl/cnd_destroy.c
@@ -1,5 +1,5 @@
/* C11 threads conditional destroy implementation.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thrd_priv.h"
#include "pthreadP.h"
diff --git a/nptl/cnd_init.c b/nptl/cnd_init.c
index 13f0f80a08..9f78970776 100644
--- a/nptl/cnd_init.c
+++ b/nptl/cnd_init.c
@@ -1,5 +1,5 @@
/* C11 thread conditional initialization implementation.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdalign.h>
diff --git a/nptl/cnd_signal.c b/nptl/cnd_signal.c
index 8ae650ba38..e379006cb8 100644
--- a/nptl/cnd_signal.c
+++ b/nptl/cnd_signal.c
@@ -1,5 +1,5 @@
/* C11 threads conditional signal implementation.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thrd_priv.h"
diff --git a/nptl/cnd_timedwait.c b/nptl/cnd_timedwait.c
index 75358fef44..ef2c2d0e58 100644
--- a/nptl/cnd_timedwait.c
+++ b/nptl/cnd_timedwait.c
@@ -1,5 +1,5 @@
/* C11 threads conditional timed wait implementation.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thrd_priv.h"
diff --git a/nptl/cnd_wait.c b/nptl/cnd_wait.c
index 727d9bb697..49d1e718a6 100644
--- a/nptl/cnd_wait.c
+++ b/nptl/cnd_wait.c
@@ -1,5 +1,5 @@
/* C11 threads conditional wait implementaiton.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thrd_priv.h"
diff --git a/nptl/compat-pthread_self.c b/nptl/compat-pthread_self.c
deleted file mode 100644
index 83d82ba95a..0000000000
--- a/nptl/compat-pthread_self.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Compatibility version of pthread_self in libpthread.
- Copyright (C) 2017-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-/* Compatibility version of pthread_self for old binaries which link
- directly against libpthread's version. */
-
-#include <shlib-compat.h>
-
-#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_27)
-# include "pthread_self.c"
-compat_symbol (libpthread, pthread_self, pthread_self, GLIBC_2_0);
-#endif
diff --git a/nptl/createthread.c b/nptl/createthread.c
index f63031619c..b67319d746 100644
--- a/nptl/createthread.c
+++ b/nptl/createthread.c
@@ -1,5 +1,5 @@
/* Low-level thread creation for NPTL. Stub version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* See the comments in pthread_create.c for the requirements for these
two macros and the create_thread function. */
diff --git a/nptl/default-sched.h b/nptl/default-sched.h
index f3c1a94b9e..4db6e23525 100644
--- a/nptl/default-sched.h
+++ b/nptl/default-sched.h
@@ -1,5 +1,5 @@
/* Determine calling thread's scheduling parameters. Stub version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
- not, see <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <assert.h>
diff --git a/nptl/descr.h b/nptl/descr.h
index 9c01e1b986..d3f863aa18 100644
--- a/nptl/descr.h
+++ b/nptl/descr.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DESCR_H
#define _DESCR_H 1
@@ -29,7 +29,7 @@
#include <lowlevellock.h>
#include <pthreaddef.h>
#include <dl-sysdep.h>
-#include "../nptl_db/thread_db.h"
+#include <thread_db.h>
#include <tls.h>
#include <unwind.h>
#include <bits/types/res_state.h>
@@ -342,9 +342,8 @@ struct pthread
/* Lock for synchronizing setxid calls. */
unsigned int setxid_futex;
-#if HP_TIMING_AVAIL
- /* Offset of the CPU clock at start thread start time. */
- hp_timing_t cpuclock_offset;
+#if HP_TIMING_INLINE
+ hp_timing_t cpuclock_offset_ununsed;
#endif
/* If the thread waits to join another one the ID of the latter is
diff --git a/nptl/eintr.c b/nptl/eintr.c
index 3c6cff2f37..5f5d358763 100644
--- a/nptl/eintr.c
+++ b/nptl/eintr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
@@ -14,11 +14,14 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <signal.h>
#include <unistd.h>
+#include <support/xthread.h>
+#include <support/xsignal.h>
+#include <support/xthread.h>
static int the_sig;
@@ -46,7 +49,7 @@ eintr_source (void *arg)
sigset_t ss;
sigemptyset (&ss);
sigaddset (&ss, the_sig);
- pthread_sigmask (SIG_BLOCK, &ss, NULL);
+ xpthread_sigmask (SIG_BLOCK, &ss, NULL);
}
while (1)
@@ -79,10 +82,5 @@ setup_eintr (int sig, pthread_t *thp)
the_sig = sig;
/* Create the thread which will fire off the signals. */
- pthread_t th;
- if (pthread_create (&th, NULL, eintr_source, thp) != 0)
- {
- puts ("setup_eintr: pthread_create failed");
- exit (1);
- }
+ xpthread_create (NULL, eintr_source, thp);
}
diff --git a/nptl/events.c b/nptl/events.c
index 700770509d..789b899421 100644
--- a/nptl/events.c
+++ b/nptl/events.c
@@ -1,5 +1,5 @@
/* Event functions used while debugging.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
/* The functions contained here do nothing, they just return. */
diff --git a/nptl/forward.c b/nptl/forward.c
index 56252595c0..76665baeea 100644
--- a/nptl/forward.c
+++ b/nptl/forward.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <pthreadP.h>
@@ -56,34 +56,6 @@ name decl \
FORWARD2 (name, int, decl, params, return defretval)
-FORWARD (pthread_attr_destroy, (pthread_attr_t *attr), (attr), 0)
-
-#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_1)
-FORWARD (__pthread_attr_init_2_0, (pthread_attr_t *attr), (attr), 0)
-compat_symbol (libc, __pthread_attr_init_2_0, pthread_attr_init, GLIBC_2_0);
-#endif
-
-FORWARD (__pthread_attr_init_2_1, (pthread_attr_t *attr), (attr), 0)
-versioned_symbol (libc, __pthread_attr_init_2_1, pthread_attr_init, GLIBC_2_1);
-
-FORWARD (pthread_attr_getdetachstate,
- (const pthread_attr_t *attr, int *detachstate), (attr, detachstate),
- 0)
-FORWARD (pthread_attr_setdetachstate, (pthread_attr_t *attr, int detachstate),
- (attr, detachstate), 0)
-
-FORWARD (pthread_attr_getinheritsched,
- (const pthread_attr_t *attr, int *inherit), (attr, inherit), 0)
-FORWARD (pthread_attr_setinheritsched, (pthread_attr_t *attr, int inherit),
- (attr, inherit), 0)
-
-FORWARD (pthread_attr_getschedparam,
- (const pthread_attr_t *attr, struct sched_param *param),
- (attr, param), 0)
-FORWARD (pthread_attr_setschedparam,
- (pthread_attr_t *attr, const struct sched_param *param),
- (attr, param), 0)
-
FORWARD (pthread_attr_getschedpolicy,
(const pthread_attr_t *attr, int *policy), (attr, policy), 0)
FORWARD (pthread_attr_setschedpolicy, (pthread_attr_t *attr, int policy),
@@ -166,10 +138,6 @@ versioned_symbol (libc, __pthread_cond_timedwait, pthread_cond_timedwait,
GLIBC_2_3_2);
-FORWARD (pthread_equal, (pthread_t thread1, pthread_t thread2),
- (thread1, thread2), 1)
-
-
FORWARD_NORETURN (__pthread_exit, void, (void *retval), (retval),
exit (EXIT_SUCCESS))
strong_alias (__pthread_exit, pthread_exit);
diff --git a/nptl/herrno.c b/nptl/herrno.c
index c7b9322116..35a66d5bc4 100644
--- a/nptl/herrno.c
+++ b/nptl/herrno.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <features.h>
#include <netdb.h>
diff --git a/nptl/libc-cancellation.c b/nptl/libc-cancellation.c
index aef5b5d321..37654cfcfe 100644
--- a/nptl/libc-cancellation.c
+++ b/nptl/libc-cancellation.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "pthreadP.h"
diff --git a/nptl/libc-cleanup.c b/nptl/libc-cleanup.c
index e68eb4a56d..c562faf11e 100644
--- a/nptl/libc-cleanup.c
+++ b/nptl/libc-cleanup.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "pthreadP.h"
diff --git a/nptl/libc-lowlevellock.c b/nptl/libc-lowlevellock.c
index 1fa0fecf25..1dc35d4e43 100644
--- a/nptl/libc-lowlevellock.c
+++ b/nptl/libc-lowlevellock.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Paul Mackerras <paulus@au.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* No difference to lowlevellock.c, except we lose a couple of functions. */
#include <lowlevellock.c>
diff --git a/nptl/libc_multiple_threads.c b/nptl/libc_multiple_threads.c
index 5da60636eb..b176f0a1ae 100644
--- a/nptl/libc_multiple_threads.c
+++ b/nptl/libc_multiple_threads.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthreadP.h>
diff --git a/nptl/libc_pthread_init.c b/nptl/libc_pthread_init.c
index e254ea2552..9366c89aca 100644
--- a/nptl/libc_pthread_init.c
+++ b/nptl/libc_pthread_init.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <list.h>
diff --git a/nptl/libpthread-compat.c b/nptl/libpthread-compat.c
new file mode 100644
index 0000000000..e2db3f2a42
--- /dev/null
+++ b/nptl/libpthread-compat.c
@@ -0,0 +1,47 @@
+/* Placeholder definitions to pull in removed symbol versions.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <sys/cdefs.h>
+#include <shlib-compat.h>
+
+#ifdef SHARED
+static void
+attribute_compat_text_section
+__attribute_used__
+__libpthread_version_placeholder (void)
+{
+}
+#endif
+
+/* This is an unused compatibility symbol definition, to prevent ld
+ from creating a weak version definition for GLIBC_2.1.2. (__vfork
+ used to be defined at that version, but it is now provided by libc,
+ and there are no versions left in libpthread for that symbol
+ version.) If the ABI baseline for glibc is the GLIBC_2.2 symbol
+ version or later, the placeholder symbol is not needed because
+ there are plenty of other symbols which populate those later
+ versions. */
+#if (SHLIB_COMPAT (libpthread, GLIBC_2_1_2, GLIBC_2_2))
+compat_symbol_unique (libpthread,
+ __libpthread_version_placeholder, GLIBC_2_1_2);
+#endif
+
+#if (SHLIB_COMPAT (libpthread, GLIBC_2_2_6, GLIBC_2_3))
+compat_symbol_unique (libpthread,
+ __libpthread_version_placeholder, GLIBC_2_2_6);
+#endif
diff --git a/nptl/lll_timedlock_wait.c b/nptl/lll_timedlock_wait.c
index 91bf963785..952b042555 100644
--- a/nptl/lll_timedlock_wait.c
+++ b/nptl/lll_timedlock_wait.c
@@ -1,5 +1,5 @@
/* Timed low level locking for pthread library. Generic futex-using version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Paul Mackerras <paulus@au.ibm.com>, 2003.
@@ -15,45 +15,48 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <atomic.h>
#include <errno.h>
#include <lowlevellock.h>
#include <sys/time.h>
+#include <time.h>
int
-__lll_timedlock_wait (int *futex, const struct timespec *abstime, int private)
+__lll_clocklock_wait (int *futex, int val, clockid_t clockid,
+ const struct timespec *abstime, int private)
{
- /* Reject invalid timeouts. */
- if (abstime->tv_nsec < 0 || abstime->tv_nsec >= 1000000000)
- return EINVAL;
+ struct timespec ts, *tsp = NULL;
- /* Try locking. */
- while (atomic_exchange_acq (futex, 2) != 0)
+ if (abstime != NULL)
{
- struct timeval tv;
+ /* Reject invalid timeouts. */
+ if (! valid_nanoseconds (abstime->tv_nsec))
+ return EINVAL;
- /* Get the current time. */
- (void) __gettimeofday (&tv, NULL);
+ /* Get the current time. This can only fail if clockid is not valid. */
+ if (__glibc_unlikely (__clock_gettime (clockid, &ts) != 0))
+ return EINVAL;
/* Compute relative timeout. */
- struct timespec rt;
- rt.tv_sec = abstime->tv_sec - tv.tv_sec;
- rt.tv_nsec = abstime->tv_nsec - tv.tv_usec * 1000;
- if (rt.tv_nsec < 0)
+ ts.tv_sec = abstime->tv_sec - ts.tv_sec;
+ ts.tv_nsec = abstime->tv_nsec - ts.tv_nsec;
+ if (ts.tv_nsec < 0)
{
- rt.tv_nsec += 1000000000;
- --rt.tv_sec;
+ ts.tv_nsec += 1000000000;
+ --ts.tv_sec;
}
- if (rt.tv_sec < 0)
+ if (ts.tv_sec < 0)
return ETIMEDOUT;
- /* If *futex == 2, wait until woken or timeout. */
- lll_futex_timed_wait (futex, 2, &rt, private);
+ tsp = &ts;
}
+ /* If *futex == val, wait until woken or timeout. */
+ lll_futex_timed_wait (futex, val, tsp, private);
+
return 0;
}
diff --git a/nptl/lll_timedwait_tid.c b/nptl/lll_timedwait_tid.c
deleted file mode 100644
index c836a6f5d8..0000000000
--- a/nptl/lll_timedwait_tid.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/* Timed waiting for thread death. Generic futex-using version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Paul Mackerras <paulus@au.ibm.com>, 2003.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <atomic.h>
-#include <errno.h>
-#include <lowlevellock.h>
-#include <sys/time.h>
-
-
-/* The kernel notifies a process which uses CLONE_CHILD_CLEARTID via futex
- wake-up when the clone terminates. The memory location contains the
- thread ID while the clone is running and is reset to zero by the kernel
- afterwards. The kernel up to version 3.16.3 does not use the private futex
- operations for futex wake-up when the clone terminates. */
-int
-__lll_timedwait_tid (int *tidp, const struct timespec *abstime)
-{
- int tid;
-
- if (abstime->tv_nsec < 0 || abstime->tv_nsec >= 1000000000)
- return EINVAL;
-
- /* Repeat until thread terminated. */
- while ((tid = *tidp) != 0)
- {
- struct timeval tv;
- struct timespec rt;
-
- /* Get the current time. */
- (void) __gettimeofday (&tv, NULL);
-
- /* Compute relative timeout. */
- rt.tv_sec = abstime->tv_sec - tv.tv_sec;
- rt.tv_nsec = abstime->tv_nsec - tv.tv_usec * 1000;
- if (rt.tv_nsec < 0)
- {
- rt.tv_nsec += 1000000000;
- --rt.tv_sec;
- }
-
- /* Already timed out? */
- if (rt.tv_sec < 0)
- return ETIMEDOUT;
-
- /* If *tidp == tid, wait until thread terminates or the wait times out.
- The kernel up to version 3.16.3 does not use the private futex
- operations for futex wake-up when the clone terminates.
- */
- if (lll_futex_timed_wait (tidp, tid, &rt, LLL_SHARED) == -ETIMEDOUT)
- return ETIMEDOUT;
- }
-
- return 0;
-}
diff --git a/nptl/lowlevellock.c b/nptl/lowlevellock.c
index 4fa3bbb763..f5f37eea1a 100644
--- a/nptl/lowlevellock.c
+++ b/nptl/lowlevellock.c
@@ -1,5 +1,5 @@
/* low level locking for pthread library. Generic futex-using version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Paul Mackerras <paulus@au.ibm.com>, 2003.
@@ -15,22 +15,25 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#include <errno.h>
#include <sysdep.h>
#include <lowlevellock.h>
-#include <sys/time.h>
#include <atomic.h>
+#include <stap-probe.h>
void
__lll_lock_wait_private (int *futex)
{
- if (*futex == 2)
- lll_futex_wait (futex, 2, LLL_PRIVATE); /* Wait if *futex == 2. */
-
- while (atomic_exchange_acq (futex, 2) != 0)
- lll_futex_wait (futex, 2, LLL_PRIVATE); /* Wait if *futex == 2. */
+ if (atomic_load_relaxed (futex) == 2)
+ goto futex;
+
+ while (atomic_exchange_acquire (futex, 2) != 0)
+ {
+ futex:
+ LIBC_PROBE (lll_lock_wait_private, 1, futex);
+ lll_futex_wait (futex, 2, LLL_PRIVATE); /* Wait if *futex == 2. */
+ }
}
@@ -39,10 +42,14 @@ __lll_lock_wait_private (int *futex)
void
__lll_lock_wait (int *futex, int private)
{
- if (*futex == 2)
- lll_futex_wait (futex, 2, private); /* Wait if *futex == 2. */
-
- while (atomic_exchange_acq (futex, 2) != 0)
- lll_futex_wait (futex, 2, private); /* Wait if *futex == 2. */
+ if (atomic_load_relaxed (futex) == 2)
+ goto futex;
+
+ while (atomic_exchange_acquire (futex, 2) != 0)
+ {
+ futex:
+ LIBC_PROBE (lll_lock_wait, 1, futex);
+ lll_futex_wait (futex, 2, private); /* Wait if *futex == 2. */
+ }
}
#endif
diff --git a/nptl/mtx_destroy.c b/nptl/mtx_destroy.c
index 15bc022f72..d90d73efc0 100644
--- a/nptl/mtx_destroy.c
+++ b/nptl/mtx_destroy.c
@@ -1,5 +1,5 @@
/* C11 threads mutex destroy implementation.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thrd_priv.h"
#include "pthreadP.h"
diff --git a/nptl/mtx_init.c b/nptl/mtx_init.c
index 8f27478c77..166db5c8ff 100644
--- a/nptl/mtx_init.c
+++ b/nptl/mtx_init.c
@@ -1,5 +1,5 @@
/* C11 threads mutex initialization implementation.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdalign.h>
diff --git a/nptl/mtx_lock.c b/nptl/mtx_lock.c
index 9b3e6cd89f..e9d75ed0ed 100644
--- a/nptl/mtx_lock.c
+++ b/nptl/mtx_lock.c
@@ -1,5 +1,5 @@
/* C11 threads mutex lock implementation.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thrd_priv.h"
diff --git a/nptl/mtx_timedlock.c b/nptl/mtx_timedlock.c
index 0972622053..400e16fbe5 100644
--- a/nptl/mtx_timedlock.c
+++ b/nptl/mtx_timedlock.c
@@ -1,5 +1,5 @@
/* C11 threads mutex timed lock implementation.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thrd_priv.h"
diff --git a/nptl/mtx_trylock.c b/nptl/mtx_trylock.c
index f9b6a69b09..b9367e7ba4 100644
--- a/nptl/mtx_trylock.c
+++ b/nptl/mtx_trylock.c
@@ -1,5 +1,5 @@
/* C11 threads mutex try lock implementation.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thrd_priv.h"
diff --git a/nptl/mtx_unlock.c b/nptl/mtx_unlock.c
index 07f68f62ce..cc418081ba 100644
--- a/nptl/mtx_unlock.c
+++ b/nptl/mtx_unlock.c
@@ -1,5 +1,5 @@
/* C11 threads mutex unlock implementation.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thrd_priv.h"
diff --git a/nptl/nptl-init.c b/nptl/nptl-init.c
index 907411d5bc..acc0f3672b 100644
--- a/nptl/nptl-init.c
+++ b/nptl/nptl-init.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
@@ -38,6 +38,7 @@
#include <kernel-features.h>
#include <libc-pointer-arith.h>
#include <pthread-pids.h>
+#include <pthread_mutex_conf.h>
#ifndef TLS_MULTIPLE_THREADS_IN_TCB
/* Pointer to the corresponding variable in libc. */
@@ -57,15 +58,6 @@ int __set_robust_list_avail;
# define set_robust_list_not_avail() do { } while (0)
#endif
-#ifndef __ASSUME_FUTEX_CLOCK_REALTIME
-/* Nonzero if we do not have FUTEX_CLOCK_REALTIME. */
-int __have_futex_clock_realtime;
-# define __set_futex_clock_realtime() \
- __have_futex_clock_realtime = 1
-#else
-#define __set_futex_clock_realtime() do { } while (0)
-#endif
-
/* Version of the library, used in libthread_db to detect mismatches. */
static const char nptl_version[] __attribute_used__ = VERSION;
@@ -80,17 +72,6 @@ void __nptl_set_robust (struct pthread *);
#ifdef SHARED
static const struct pthread_functions pthread_functions =
{
- .ptr_pthread_attr_destroy = __pthread_attr_destroy,
-# if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_1)
- .ptr___pthread_attr_init_2_0 = __pthread_attr_init_2_0,
-# endif
- .ptr___pthread_attr_init_2_1 = __pthread_attr_init_2_1,
- .ptr_pthread_attr_getdetachstate = __pthread_attr_getdetachstate,
- .ptr_pthread_attr_setdetachstate = __pthread_attr_setdetachstate,
- .ptr_pthread_attr_getinheritsched = __pthread_attr_getinheritsched,
- .ptr_pthread_attr_setinheritsched = __pthread_attr_setinheritsched,
- .ptr_pthread_attr_getschedparam = __pthread_attr_getschedparam,
- .ptr_pthread_attr_setschedparam = __pthread_attr_setschedparam,
.ptr_pthread_attr_getschedpolicy = __pthread_attr_getschedpolicy,
.ptr_pthread_attr_setschedpolicy = __pthread_attr_setschedpolicy,
.ptr_pthread_attr_getscope = __pthread_attr_getscope,
@@ -111,7 +92,6 @@ static const struct pthread_functions pthread_functions =
.ptr___pthread_cond_wait_2_0 = __pthread_cond_wait_2_0,
.ptr___pthread_cond_timedwait_2_0 = __pthread_cond_timedwait_2_0,
# endif
- .ptr_pthread_equal = __pthread_equal,
.ptr___pthread_exit = __pthread_exit,
.ptr_pthread_getschedparam = __pthread_getschedparam,
.ptr_pthread_setschedparam = __pthread_setschedparam,
@@ -134,9 +114,7 @@ static const struct pthread_functions pthread_functions =
.ptr_nthreads = &__nptl_nthreads,
.ptr___pthread_unwind = &__pthread_unwind,
.ptr__nptl_deallocate_tsd = __nptl_deallocate_tsd,
-# ifdef SIGSETXID
.ptr__nptl_setxid = __nptl_setxid,
-# endif
.ptr_set_robust = __nptl_set_robust
};
# define ptr_pthread_functions &pthread_functions
@@ -159,7 +137,6 @@ __nptl_set_robust (struct pthread *self)
}
-#ifdef SIGCANCEL
/* For asynchronous cancellation we use a signal. This is the handler. */
static void
sigcancel_handler (int sig, siginfo_t *si, void *ctx)
@@ -205,10 +182,8 @@ sigcancel_handler (int sig, siginfo_t *si, void *ctx)
oldval = curval;
}
}
-#endif
-#ifdef SIGSETXID
struct xid_command *__xidcmd attribute_hidden;
/* We use the SIGSETXID signal in the setuid, setgid, etc. implementations to
@@ -254,7 +229,6 @@ sighandler_setxid (int sig, siginfo_t *si, void *ctx)
if (atomic_decrement_val (&__xidcmd->cntr) == 0)
futex_wake ((unsigned int *) &__xidcmd->cntr, 1, FUTEX_PRIVATE);
}
-#endif
/* When using __thread for this, we do it in libc so as not
@@ -273,11 +247,6 @@ __pthread_initialize_minimal_internal (void)
__pthread_initialize_pids (pd);
THREAD_SETMEM (pd, specific[0], &pd->specific_1stblock[0]);
THREAD_SETMEM (pd, user_stack, true);
- if (LLL_LOCK_INITIALIZER != 0)
- THREAD_SETMEM (pd, lock, LLL_LOCK_INITIALIZER);
-#if HP_TIMING_AVAIL
- THREAD_SETMEM (pd, cpuclock_offset, GL(dl_cpuclock_offset));
-#endif
/* Initialize the robust mutex data. */
{
@@ -297,26 +266,6 @@ __pthread_initialize_minimal_internal (void)
set_robust_list_not_avail ();
}
-#ifdef __NR_futex
-# ifndef __ASSUME_FUTEX_CLOCK_REALTIME
- {
- int word = 0;
- /* NB: the syscall actually takes six parameters. The last is the
- bit mask. But since we will not actually wait at all the value
- is irrelevant. Given that passing six parameters is difficult
- on some architectures we just pass whatever random value the
- calling convention calls for to the kernel. It causes no harm. */
- INTERNAL_SYSCALL_DECL (err);
- word = INTERNAL_SYSCALL (futex, err, 5, &word,
- FUTEX_WAIT_BITSET | FUTEX_CLOCK_REALTIME
- | FUTEX_PRIVATE_FLAG, 1, NULL, 0);
- assert (INTERNAL_SYSCALL_ERROR_P (word, err));
- if (INTERNAL_SYSCALL_ERRNO (word, err) != ENOSYS)
- __set_futex_clock_realtime ();
- }
-# endif
-#endif
-
/* Set initial thread's stack block from 0 up to __libc_stack_end.
It will be bigger than it actually is, but for unwind.c/pt-longjmp.c
purposes this is good enough. */
@@ -330,41 +279,31 @@ __pthread_initialize_minimal_internal (void)
had to set __nptl_initial_report_events. Propagate its setting. */
THREAD_SETMEM (pd, report_events, __nptl_initial_report_events);
-#if defined SIGCANCEL || defined SIGSETXID
struct sigaction sa;
__sigemptyset (&sa.sa_mask);
-# ifdef SIGCANCEL
/* Install the cancellation signal handler. If for some reason we
cannot install the handler we do not abort. Maybe we should, but
it is only asynchronous cancellation which is affected. */
sa.sa_sigaction = sigcancel_handler;
sa.sa_flags = SA_SIGINFO;
(void) __libc_sigaction (SIGCANCEL, &sa, NULL);
-# endif
-# ifdef SIGSETXID
/* Install the handle to change the threads' uid/gid. */
sa.sa_sigaction = sighandler_setxid;
sa.sa_flags = SA_SIGINFO | SA_RESTART;
(void) __libc_sigaction (SIGSETXID, &sa, NULL);
-# endif
/* The parent process might have left the signals blocked. Just in
case, unblock it. We reuse the signal mask in the sigaction
structure. It is already cleared. */
-# ifdef SIGCANCEL
__sigaddset (&sa.sa_mask, SIGCANCEL);
-# endif
-# ifdef SIGSETXID
__sigaddset (&sa.sa_mask, SIGSETXID);
-# endif
{
INTERNAL_SYSCALL_DECL (err);
(void) INTERNAL_SYSCALL (rt_sigprocmask, err, 4, SIG_UNBLOCK, &sa.sa_mask,
NULL, _NSIG / 8);
}
-#endif
/* Get the size of the static and alignment requirements for the TLS
block. */
@@ -431,11 +370,23 @@ __pthread_initialize_minimal_internal (void)
/* Determine whether the machine is SMP or not. */
__is_smp = is_smp_system ();
+
+#if HAVE_TUNABLES
+ __pthread_tunables_init ();
+#endif
}
strong_alias (__pthread_initialize_minimal_internal,
__pthread_initialize_minimal)
+/* This function is internal (it has a GLIBC_PRIVATE) version, but it
+ is widely used (either via weak symbol, or dlsym) to obtain the
+ __static_tls_size value. This value is then used to adjust the
+ value of the stack size attribute, so that applications receive the
+ full requested stack size, not diminished by the TCB and static TLS
+ allocation on the stack. Once the TCB is separately allocated,
+ this function should be removed or renamed (if it is still
+ necessary at that point). */
size_t
__pthread_get_minstack (const pthread_attr_t *attr)
{
diff --git a/nptl/nptl-printers.py b/nptl/nptl-printers.py
index c5a69ef1fd..82f50fd1ed 100644
--- a/nptl/nptl-printers.py
+++ b/nptl/nptl-printers.py
@@ -1,6 +1,6 @@
# Pretty printers for the NPTL lock types.
#
-# Copyright (C) 2016-2018 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
@@ -15,7 +15,7 @@
#
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
"""This file contains the gdb pretty printers for the following types:
@@ -155,7 +155,7 @@ class MutexPrinter(object):
lock_value = self.lock
if self.kind & PTHREAD_MUTEX_PRIO_PROTECT_NP:
- lock_value &= ~(PTHREAD_MUTEX_PRIO_CEILING_MASK)
+ lock_value &= 0xffffffff & ~(PTHREAD_MUTEX_PRIO_CEILING_MASK)
if lock_value == PTHREAD_MUTEX_UNLOCKED:
self.values.append(('Status', 'Not acquired'))
@@ -274,6 +274,7 @@ class MutexAttributesPrinter(object):
"""
mutexattr_type = (self.mutexattr
+ & 0xffffffff
& ~PTHREAD_MUTEXATTR_FLAG_BITS
& ~PTHREAD_MUTEX_NO_ELISION_NP)
diff --git a/nptl/nptlfreeres.c b/nptl/nptlfreeres.c
index cfa54e1bc7..680e4b07e9 100644
--- a/nptl/nptlfreeres.c
+++ b/nptl/nptlfreeres.c
@@ -1,5 +1,5 @@
/* Clean up allocated libpthread memory on demand.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <set-hooks.h>
#include <libc-symbols.h>
diff --git a/nptl/old_pthread_atfork.c b/nptl/old_pthread_atfork.c
index e01f24b213..04dc02e5f4 100644
--- a/nptl/old_pthread_atfork.c
+++ b/nptl/old_pthread_atfork.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <shlib-compat.h>
diff --git a/nptl/old_pthread_cond_broadcast.c b/nptl/old_pthread_cond_broadcast.c
index 612d4ea5bc..991c7fba88 100644
--- a/nptl/old_pthread_cond_broadcast.c
+++ b/nptl/old_pthread_cond_broadcast.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdlib.h>
@@ -31,18 +31,9 @@ __pthread_cond_broadcast_2_0 (pthread_cond_2_0_t *cond)
{
pthread_cond_t *newcond;
-#if LLL_LOCK_INITIALIZER == 0
newcond = (pthread_cond_t *) calloc (sizeof (pthread_cond_t), 1);
if (newcond == NULL)
return ENOMEM;
-#else
- newcond = (pthread_cond_t *) malloc (sizeof (pthread_cond_t));
- if (newcond == NULL)
- return ENOMEM;
-
- /* Initialize the condvar. */
- (void) pthread_cond_init (newcond, NULL);
-#endif
if (atomic_compare_and_exchange_bool_acq (&cond->cond, newcond, NULL))
/* Somebody else just initialized the condvar. */
diff --git a/nptl/old_pthread_cond_destroy.c b/nptl/old_pthread_cond_destroy.c
index 1ec57b0ebc..2ee706c914 100644
--- a/nptl/old_pthread_cond_destroy.c
+++ b/nptl/old_pthread_cond_destroy.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include "pthreadP.h"
diff --git a/nptl/old_pthread_cond_init.c b/nptl/old_pthread_cond_init.c
index 446ad51dbe..3e32c219aa 100644
--- a/nptl/old_pthread_cond_init.c
+++ b/nptl/old_pthread_cond_init.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include "pthreadP.h"
diff --git a/nptl/old_pthread_cond_signal.c b/nptl/old_pthread_cond_signal.c
index 467e0f4986..87a001ffe0 100644
--- a/nptl/old_pthread_cond_signal.c
+++ b/nptl/old_pthread_cond_signal.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdlib.h>
@@ -31,18 +31,9 @@ __pthread_cond_signal_2_0 (pthread_cond_2_0_t *cond)
{
pthread_cond_t *newcond;
-#if LLL_LOCK_INITIALIZER == 0
newcond = (pthread_cond_t *) calloc (sizeof (pthread_cond_t), 1);
if (newcond == NULL)
return ENOMEM;
-#else
- newcond = (pthread_cond_t *) malloc (sizeof (pthread_cond_t));
- if (newcond == NULL)
- return ENOMEM;
-
- /* Initialize the condvar. */
- (void) pthread_cond_init (newcond, NULL);
-#endif
if (atomic_compare_and_exchange_bool_acq (&cond->cond, newcond, NULL))
/* Somebody else just initialized the condvar. */
diff --git a/nptl/old_pthread_cond_timedwait.c b/nptl/old_pthread_cond_timedwait.c
index 4afce2d191..51a459363c 100644
--- a/nptl/old_pthread_cond_timedwait.c
+++ b/nptl/old_pthread_cond_timedwait.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdlib.h>
@@ -32,18 +32,9 @@ __pthread_cond_timedwait_2_0 (pthread_cond_2_0_t *cond, pthread_mutex_t *mutex,
{
pthread_cond_t *newcond;
-#if LLL_LOCK_INITIALIZER == 0
newcond = (pthread_cond_t *) calloc (sizeof (pthread_cond_t), 1);
if (newcond == NULL)
return ENOMEM;
-#else
- newcond = (pthread_cond_t *) malloc (sizeof (pthread_cond_t));
- if (newcond == NULL)
- return ENOMEM;
-
- /* Initialize the condvar. */
- (void) pthread_cond_init (newcond, NULL);
-#endif
if (atomic_compare_and_exchange_bool_acq (&cond->cond, newcond, NULL))
/* Somebody else just initialized the condvar. */
diff --git a/nptl/old_pthread_cond_wait.c b/nptl/old_pthread_cond_wait.c
index c226b37313..8b4924a64c 100644
--- a/nptl/old_pthread_cond_wait.c
+++ b/nptl/old_pthread_cond_wait.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdlib.h>
@@ -31,18 +31,9 @@ __pthread_cond_wait_2_0 (pthread_cond_2_0_t *cond, pthread_mutex_t *mutex)
{
pthread_cond_t *newcond;
-#if LLL_LOCK_INITIALIZER == 0
newcond = (pthread_cond_t *) calloc (sizeof (pthread_cond_t), 1);
if (newcond == NULL)
return ENOMEM;
-#else
- newcond = (pthread_cond_t *) malloc (sizeof (pthread_cond_t));
- if (newcond == NULL)
- return ENOMEM;
-
- /* Initialize the condvar. */
- (void) pthread_cond_init (newcond, NULL);
-#endif
if (atomic_compare_and_exchange_bool_acq (&cond->cond, newcond, NULL))
/* Somebody else just initialized the condvar. */
diff --git a/nptl/perf.c b/nptl/perf.c
index 3a1c31d362..865d084488 100644
--- a/nptl/perf.c
+++ b/nptl/perf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _GNU_SOURCE 1
#include <argp.h>
diff --git a/nptl/pt-allocrtsig.c b/nptl/pt-allocrtsig.c
index 3c4438671b..9b31e5b4de 100644
--- a/nptl/pt-allocrtsig.c
+++ b/nptl/pt-allocrtsig.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <signal.h>
diff --git a/nptl/pt-cleanup.c b/nptl/pt-cleanup.c
index 0d8aa7cb9a..880748fcfe 100644
--- a/nptl/pt-cleanup.c
+++ b/nptl/pt-cleanup.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <setjmp.h>
#include <stdlib.h>
diff --git a/nptl/pt-crti.S b/nptl/pt-crti.S
index a0deb9979c..b389442a15 100644
--- a/nptl/pt-crti.S
+++ b/nptl/pt-crti.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for libpthread.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Arrange for __pthread_initialize_minimal_internal to be called at
libpthread startup, instead of conditionally calling
diff --git a/nptl/pt-fork.c b/nptl/pt-fork.c
index 891befbcda..29991a579c 100644
--- a/nptl/pt-fork.c
+++ b/nptl/pt-fork.c
@@ -1,5 +1,5 @@
/* ABI compatibility for 'fork' symbol in libpthread ABI.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <shlib-compat.h>
diff --git a/nptl/pt-longjmp.c b/nptl/pt-longjmp.c
index 57808874a8..b19d38c96a 100644
--- a/nptl/pt-longjmp.c
+++ b/nptl/pt-longjmp.c
@@ -1,5 +1,5 @@
/* ABI compatibility for 'longjmp' and 'siglongjmp' symbols in libpthread ABI.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <setjmp.h>
#include <shlib-compat.h>
diff --git a/nptl/pt-raise.c b/nptl/pt-raise.c
index c4d3893a4d..61d20c315b 100644
--- a/nptl/pt-raise.c
+++ b/nptl/pt-raise.c
@@ -1,5 +1,5 @@
/* ISO C raise function for libpthread.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <signal.h>
diff --git a/nptl/pt-system.c b/nptl/pt-system.c
index 3d73b55c69..5e7804ec92 100644
--- a/nptl/pt-system.c
+++ b/nptl/pt-system.c
@@ -1,5 +1,5 @@
/* ABI compatibility for 'system' symbol in libpthread ABI.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include <shlib-compat.h>
diff --git a/nptl/pt-vfork.c b/nptl/pt-vfork.c
deleted file mode 100644
index 2f890d3f30..0000000000
--- a/nptl/pt-vfork.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/* vfork ABI-compatibility entry points for libpthread.
- Copyright (C) 2014-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <unistd.h>
-#include <shlib-compat.h>
-
-/* libpthread used to have its own vfork implementation that differed
- from libc's only in having a pointless micro-optimization. There
- is no longer any use to having a separate copy in libpthread, but
- the historical ABI requires it. For static linking, there is no
- need to provide anything here--the libc version will be linked in.
- For shared library ABI compatibility, there must be __vfork and
- vfork symbols in libpthread.so; so we define them using IFUNC to
- redirect to the libc function. */
-
-/* Note! If the architecture doesn't support IFUNC, then we need an
- alternate target-specific mechanism to implement this. So we just
- assume IFUNC here and require that the target override this file
- if necessary.
-
- If the architecture can assume all supported versions of gcc will
- produce a tail-call to __libc_vfork, consider including the version
- in sysdeps/unix/sysv/linux/aarch64/pt-vfork.c. */
-
-#if !HAVE_IFUNC
-# error "must write pt-vfork for this machine or get IFUNC support"
-#endif
-
-#if (SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_20) \
- || SHLIB_COMPAT (libpthread, GLIBC_2_1_2, GLIBC_2_20))
-
-extern __typeof (vfork) __libc_vfork; /* Defined in libc. */
-
-# undef INIT_ARCH
-# define INIT_ARCH()
-# define DEFINE_VFORK(name) libc_ifunc (name, &__libc_vfork)
-
-#endif
-
-#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_20)
-extern __typeof(vfork) vfork_ifunc;
-DEFINE_VFORK (vfork_ifunc)
-compat_symbol (libpthread, vfork_ifunc, vfork, GLIBC_2_0);
-#endif
-
-#if SHLIB_COMPAT (libpthread, GLIBC_2_1_2, GLIBC_2_20)
-extern __typeof(vfork) __vfork_ifunc;
-DEFINE_VFORK (__vfork_ifunc)
-compat_symbol (libpthread, __vfork_ifunc, __vfork, GLIBC_2_1_2);
-#endif
diff --git a/nptl/pthread-pids.h b/nptl/pthread-pids.h
index ef24abd3b9..5e157afa82 100644
--- a/nptl/pthread-pids.h
+++ b/nptl/pthread-pids.h
@@ -1,5 +1,5 @@
/* Initialize pid and tid fields of struct pthread. Stub version.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthreadP.h>
diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
index 13bdb11133..9c200673a0 100644
--- a/nptl/pthreadP.h
+++ b/nptl/pthreadP.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _PTHREADP_H
#define _PTHREADP_H 1
@@ -33,6 +33,7 @@
#include <kernel-features.h>
#include <errno.h>
#include <internal-signals.h>
+#include "pthread_mutex_conf.h"
/* Atomic operations on TLS memory. */
@@ -47,10 +48,14 @@
#endif
-/* Adaptive mutex definitions. */
-#ifndef MAX_ADAPTIVE_COUNT
-# define MAX_ADAPTIVE_COUNT 100
+static inline short max_adaptive_count (void)
+{
+#if HAVE_TUNABLES
+ return __mutex_aconf.spin_count;
+#else
+ return DEFAULT_ADAPTIVE_COUNT;
#endif
+}
/* Magic cookie representing robust mutex with dead owner. */
@@ -110,19 +115,23 @@ enum
};
#define PTHREAD_MUTEX_PSHARED_BIT 128
+/* See concurrency notes regarding __kind in struct __pthread_mutex_s
+ in sysdeps/nptl/bits/thread-shared-types.h. */
#define PTHREAD_MUTEX_TYPE(m) \
- ((m)->__data.__kind & 127)
+ (atomic_load_relaxed (&((m)->__data.__kind)) & 127)
/* Don't include NO_ELISION, as that type is always the same
as the underlying lock type. */
#define PTHREAD_MUTEX_TYPE_ELISION(m) \
- ((m)->__data.__kind & (127|PTHREAD_MUTEX_ELISION_NP))
+ (atomic_load_relaxed (&((m)->__data.__kind)) \
+ & (127 | PTHREAD_MUTEX_ELISION_NP))
#if LLL_PRIVATE == 0 && LLL_SHARED == 128
# define PTHREAD_MUTEX_PSHARED(m) \
- ((m)->__data.__kind & 128)
+ (atomic_load_relaxed (&((m)->__data.__kind)) & 128)
#else
# define PTHREAD_MUTEX_PSHARED(m) \
- (((m)->__data.__kind & 128) ? LLL_SHARED : LLL_PRIVATE)
+ ((atomic_load_relaxed (&((m)->__data.__kind)) & 128) \
+ ? LLL_SHARED : LLL_PRIVATE)
#endif
/* The kernel when waking robust mutexes on exit never uses
@@ -302,44 +311,6 @@ __do_cancel (void)
}
-/* Set cancellation mode to asynchronous. */
-#define CANCEL_ASYNC() \
- __pthread_enable_asynccancel ()
-/* Reset to previous cancellation mode. */
-#define CANCEL_RESET(oldtype) \
- __pthread_disable_asynccancel (oldtype)
-
-#if IS_IN (libc)
-/* Same as CANCEL_ASYNC, but for use in libc.so. */
-# define LIBC_CANCEL_ASYNC() \
- __libc_enable_asynccancel ()
-/* Same as CANCEL_RESET, but for use in libc.so. */
-# define LIBC_CANCEL_RESET(oldtype) \
- __libc_disable_asynccancel (oldtype)
-# define LIBC_CANCEL_HANDLED() \
- __asm (".globl " __SYMBOL_PREFIX "__libc_enable_asynccancel"); \
- __asm (".globl " __SYMBOL_PREFIX "__libc_disable_asynccancel")
-#elif IS_IN (libpthread)
-# define LIBC_CANCEL_ASYNC() CANCEL_ASYNC ()
-# define LIBC_CANCEL_RESET(val) CANCEL_RESET (val)
-# define LIBC_CANCEL_HANDLED() \
- __asm (".globl " __SYMBOL_PREFIX "__pthread_enable_asynccancel"); \
- __asm (".globl " __SYMBOL_PREFIX "__pthread_disable_asynccancel")
-#elif IS_IN (librt)
-# define LIBC_CANCEL_ASYNC() \
- __librt_enable_asynccancel ()
-# define LIBC_CANCEL_RESET(val) \
- __librt_disable_asynccancel (val)
-# define LIBC_CANCEL_HANDLED() \
- __asm (".globl " __SYMBOL_PREFIX "__librt_enable_asynccancel"); \
- __asm (".globl " __SYMBOL_PREFIX "__librt_disable_asynccancel")
-#else
-# define LIBC_CANCEL_ASYNC() 0 /* Just a dummy value. */
-# define LIBC_CANCEL_RESET(val) ((void)(val)) /* Nothing, but evaluate it. */
-# define LIBC_CANCEL_HANDLED() /* Nothing. */
-#endif
-
-
/* Internal prototypes. */
/* Thread list handling. */
@@ -402,16 +373,6 @@ extern int __pthread_multiple_threads attribute_hidden;
extern int *__libc_multiple_threads_ptr attribute_hidden;
#endif
-/* Find a thread given its TID. */
-extern struct pthread *__find_thread_by_id (pid_t tid) attribute_hidden
-#ifdef SHARED
-;
-#else
-weak_function;
-#define __find_thread_by_id(tid) \
- (__find_thread_by_id ? (__find_thread_by_id) (tid) : (struct pthread *) NULL)
-#endif
-
extern void __pthread_init_static_tls (struct link_map *) attribute_hidden;
extern size_t __pthread_get_minstack (const pthread_attr_t *attr);
@@ -488,6 +449,11 @@ extern int __pthread_cond_wait (pthread_cond_t *cond, pthread_mutex_t *mutex);
extern int __pthread_cond_timedwait (pthread_cond_t *cond,
pthread_mutex_t *mutex,
const struct timespec *abstime);
+extern int __pthread_cond_clockwait (pthread_cond_t *cond,
+ pthread_mutex_t *mutex,
+ clockid_t clockid,
+ const struct timespec *abstime)
+ __nonnull ((1, 2, 4));
extern int __pthread_condattr_destroy (pthread_condattr_t *attr);
extern int __pthread_condattr_init (pthread_condattr_t *attr);
extern int __pthread_key_create (pthread_key_t *key, void (*destr) (void *));
@@ -509,8 +475,10 @@ extern int __pthread_setcanceltype (int type, int *oldtype);
extern int __pthread_enable_asynccancel (void) attribute_hidden;
extern void __pthread_disable_asynccancel (int oldtype) attribute_hidden;
extern void __pthread_testcancel (void);
-extern int __pthread_timedjoin_ex (pthread_t, void **, const struct timespec *,
- bool);
+extern int __pthread_clockjoin_ex (pthread_t, void **, clockid_t,
+ const struct timespec *, bool)
+ attribute_hidden;
+
#if IS_IN (libpthread)
hidden_proto (__pthread_mutex_init)
@@ -529,7 +497,6 @@ hidden_proto (__pthread_setcancelstate)
hidden_proto (__pthread_testcancel)
hidden_proto (__pthread_mutexattr_init)
hidden_proto (__pthread_mutexattr_settype)
-hidden_proto (__pthread_timedjoin_ex)
#endif
extern int __pthread_cond_broadcast_2_0 (pthread_cond_2_0_t *cond);
@@ -546,15 +513,6 @@ extern int __pthread_cond_wait_2_0 (pthread_cond_2_0_t *cond,
extern int __pthread_getaffinity_np (pthread_t th, size_t cpusetsize,
cpu_set_t *cpuset);
-/* The two functions are in libc.so and not exported. */
-extern int __libc_enable_asynccancel (void) attribute_hidden;
-extern void __libc_disable_asynccancel (int oldtype) attribute_hidden;
-
-
-/* The two functions are in librt.so and not exported. */
-extern int __librt_enable_asynccancel (void) attribute_hidden;
-extern void __librt_disable_asynccancel (int oldtype) attribute_hidden;
-
#if IS_IN (libpthread)
/* Special versions which use non-exported functions. */
extern void __pthread_cleanup_push (struct _pthread_cleanup_buffer *buffer,
@@ -659,5 +617,8 @@ check_stacksize_attr (size_t st)
_Static_assert (offsetof (type, member) == offset, \
"offset of " #member " field of " #type " != " \
ASSERT_PTHREAD_STRING (offset))
+#define ASSERT_PTHREAD_INTERNAL_MEMBER_SIZE(type, member, mtype) \
+ _Static_assert (sizeof (((type) { 0 }).member) != 8, \
+ "sizeof (" #type "." #member ") != sizeof (" #mtype "))")
#endif /* pthreadP.h */
diff --git a/nptl/pthread_atfork.c b/nptl/pthread_atfork.c
index 5ac62bf879..39fd90daef 100644
--- a/nptl/pthread_atfork.c
+++ b/nptl/pthread_atfork.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "pthreadP.h"
#include <fork.h>
diff --git a/nptl/pthread_attr_destroy.c b/nptl/pthread_attr_destroy.c
index 55bb126462..10e15b2c06 100644
--- a/nptl/pthread_attr_destroy.c
+++ b/nptl/pthread_attr_destroy.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <string.h>
@@ -29,7 +29,7 @@ __pthread_attr_destroy (pthread_attr_t *attr)
iattr = (struct pthread_attr *) attr;
-#if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_1)
+#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_1)
/* In old struct pthread_attr, neither next nor cpuset are
present. */
if (__builtin_expect ((iattr->flags & ATTR_FLAG_OLDATTR), 0) == 0)
diff --git a/nptl/pthread_attr_getaffinity.c b/nptl/pthread_attr_getaffinity.c
index 4293b1b2a6..9ef29f6e76 100644
--- a/nptl/pthread_attr_getaffinity.c
+++ b/nptl/pthread_attr_getaffinity.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthreadP.h>
diff --git a/nptl/pthread_attr_getdetachstate.c b/nptl/pthread_attr_getdetachstate.c
index fb0a295559..adbcafadc9 100644
--- a/nptl/pthread_attr_getdetachstate.c
+++ b/nptl/pthread_attr_getdetachstate.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "pthreadP.h"
diff --git a/nptl/pthread_attr_getguardsize.c b/nptl/pthread_attr_getguardsize.c
index 8dc0f200d3..a64277cdac 100644
--- a/nptl/pthread_attr_getguardsize.c
+++ b/nptl/pthread_attr_getguardsize.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "pthreadP.h"
diff --git a/nptl/pthread_attr_getinheritsched.c b/nptl/pthread_attr_getinheritsched.c
index 0b33bb86a3..d6a6c397d6 100644
--- a/nptl/pthread_attr_getinheritsched.c
+++ b/nptl/pthread_attr_getinheritsched.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "pthreadP.h"
diff --git a/nptl/pthread_attr_getschedparam.c b/nptl/pthread_attr_getschedparam.c
index faaf9566d8..5d2c6ee4ca 100644
--- a/nptl/pthread_attr_getschedparam.c
+++ b/nptl/pthread_attr_getschedparam.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include "pthreadP.h"
diff --git a/nptl/pthread_attr_getschedpolicy.c b/nptl/pthread_attr_getschedpolicy.c
index f730093695..116415ea41 100644
--- a/nptl/pthread_attr_getschedpolicy.c
+++ b/nptl/pthread_attr_getschedpolicy.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "pthreadP.h"
diff --git a/nptl/pthread_attr_getscope.c b/nptl/pthread_attr_getscope.c
index 46e721a965..197102b125 100644
--- a/nptl/pthread_attr_getscope.c
+++ b/nptl/pthread_attr_getscope.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "pthreadP.h"
diff --git a/nptl/pthread_attr_getstack.c b/nptl/pthread_attr_getstack.c
index b3a8c097c6..a72b9db9c2 100644
--- a/nptl/pthread_attr_getstack.c
+++ b/nptl/pthread_attr_getstack.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "pthreadP.h"
diff --git a/nptl/pthread_attr_getstackaddr.c b/nptl/pthread_attr_getstackaddr.c
index 7e365c4019..89e69dda76 100644
--- a/nptl/pthread_attr_getstackaddr.c
+++ b/nptl/pthread_attr_getstackaddr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include "pthreadP.h"
diff --git a/nptl/pthread_attr_getstacksize.c b/nptl/pthread_attr_getstacksize.c
index b215ef64f2..72a8106c3f 100644
--- a/nptl/pthread_attr_getstacksize.c
+++ b/nptl/pthread_attr_getstacksize.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "pthreadP.h"
diff --git a/nptl/pthread_attr_init.c b/nptl/pthread_attr_init.c
index 828e174972..45de778fa3 100644
--- a/nptl/pthread_attr_init.c
+++ b/nptl/pthread_attr_init.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <string.h>
@@ -48,11 +48,10 @@ __pthread_attr_init_2_1 (pthread_attr_t *attr)
return 0;
}
-versioned_symbol (libpthread, __pthread_attr_init_2_1, pthread_attr_init,
- GLIBC_2_1);
+versioned_symbol (libc, __pthread_attr_init_2_1, pthread_attr_init, GLIBC_2_1);
-#if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_1)
+#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_1)
int
__pthread_attr_init_2_0 (pthread_attr_t *attr)
{
@@ -81,6 +80,5 @@ __pthread_attr_init_2_0 (pthread_attr_t *attr)
old attribute structure. */
return 0;
}
-compat_symbol (libpthread, __pthread_attr_init_2_0, pthread_attr_init,
- GLIBC_2_0);
+compat_symbol (libc, __pthread_attr_init_2_0, pthread_attr_init, GLIBC_2_0);
#endif
diff --git a/nptl/pthread_attr_setaffinity.c b/nptl/pthread_attr_setaffinity.c
index 545b72c91e..b1f92c7bab 100644
--- a/nptl/pthread_attr_setaffinity.c
+++ b/nptl/pthread_attr_setaffinity.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <limits.h>
diff --git a/nptl/pthread_attr_setdetachstate.c b/nptl/pthread_attr_setdetachstate.c
index bf777775a3..5e2359e5cb 100644
--- a/nptl/pthread_attr_setdetachstate.c
+++ b/nptl/pthread_attr_setdetachstate.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include "pthreadP.h"
diff --git a/nptl/pthread_attr_setguardsize.c b/nptl/pthread_attr_setguardsize.c
index e108ce0aa3..cf40f40386 100644
--- a/nptl/pthread_attr_setguardsize.c
+++ b/nptl/pthread_attr_setguardsize.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "pthreadP.h"
diff --git a/nptl/pthread_attr_setinheritsched.c b/nptl/pthread_attr_setinheritsched.c
index 9348ebc241..d30a82c90f 100644
--- a/nptl/pthread_attr_setinheritsched.c
+++ b/nptl/pthread_attr_setinheritsched.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include "pthreadP.h"
diff --git a/nptl/pthread_attr_setschedparam.c b/nptl/pthread_attr_setschedparam.c
index 7a04b0c5d2..6a57ec6be9 100644
--- a/nptl/pthread_attr_setschedparam.c
+++ b/nptl/pthread_attr_setschedparam.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <string.h>
diff --git a/nptl/pthread_attr_setschedpolicy.c b/nptl/pthread_attr_setschedpolicy.c
index 4cfaf6aeeb..dc17c9723c 100644
--- a/nptl/pthread_attr_setschedpolicy.c
+++ b/nptl/pthread_attr_setschedpolicy.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include "pthreadP.h"
diff --git a/nptl/pthread_attr_setscope.c b/nptl/pthread_attr_setscope.c
index c2d0e42361..ab5f8f2dca 100644
--- a/nptl/pthread_attr_setscope.c
+++ b/nptl/pthread_attr_setscope.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include "pthreadP.h"
diff --git a/nptl/pthread_attr_setstack.c b/nptl/pthread_attr_setstack.c
index ecedf46b84..eb1515ee19 100644
--- a/nptl/pthread_attr_setstack.c
+++ b/nptl/pthread_attr_setstack.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <limits.h>
diff --git a/nptl/pthread_attr_setstackaddr.c b/nptl/pthread_attr_setstackaddr.c
index 3befb6c149..ed39289c96 100644
--- a/nptl/pthread_attr_setstackaddr.c
+++ b/nptl/pthread_attr_setstackaddr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include "pthreadP.h"
diff --git a/nptl/pthread_attr_setstacksize.c b/nptl/pthread_attr_setstacksize.c
index e11011ef97..61f66e9552 100644
--- a/nptl/pthread_attr_setstacksize.c
+++ b/nptl/pthread_attr_setstacksize.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <limits.h>
diff --git a/nptl/pthread_barrier_destroy.c b/nptl/pthread_barrier_destroy.c
index 0bee025be6..854938e0a4 100644
--- a/nptl/pthread_barrier_destroy.c
+++ b/nptl/pthread_barrier_destroy.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include "pthreadP.h"
diff --git a/nptl/pthread_barrier_init.c b/nptl/pthread_barrier_init.c
index 99180ab02a..0a74dd2e09 100644
--- a/nptl/pthread_barrier_init.c
+++ b/nptl/pthread_barrier_init.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include "pthreadP.h"
diff --git a/nptl/pthread_barrier_wait.c b/nptl/pthread_barrier_wait.c
index 3ed8f278d6..54bc727e39 100644
--- a/nptl/pthread_barrier_wait.c
+++ b/nptl/pthread_barrier_wait.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Martin Schwidefsky <schwidefsky@de.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sysdep.h>
diff --git a/nptl/pthread_barrierattr_destroy.c b/nptl/pthread_barrierattr_destroy.c
index d9fabdb2d2..10d35bf093 100644
--- a/nptl/pthread_barrierattr_destroy.c
+++ b/nptl/pthread_barrierattr_destroy.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "pthreadP.h"
diff --git a/nptl/pthread_barrierattr_getpshared.c b/nptl/pthread_barrierattr_getpshared.c
index 93c7df138b..2dba05ca9c 100644
--- a/nptl/pthread_barrierattr_getpshared.c
+++ b/nptl/pthread_barrierattr_getpshared.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "pthreadP.h"
diff --git a/nptl/pthread_barrierattr_init.c b/nptl/pthread_barrierattr_init.c
index 9ee6a82bba..76522767b2 100644
--- a/nptl/pthread_barrierattr_init.c
+++ b/nptl/pthread_barrierattr_init.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "pthreadP.h"
diff --git a/nptl/pthread_barrierattr_setpshared.c b/nptl/pthread_barrierattr_setpshared.c
index 68d3175c51..47e0944e84 100644
--- a/nptl/pthread_barrierattr_setpshared.c
+++ b/nptl/pthread_barrierattr_setpshared.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include "pthreadP.h"
diff --git a/nptl/pthread_cancel.c b/nptl/pthread_cancel.c
index 84c8c4e95b..f6be8c1dd6 100644
--- a/nptl/pthread_cancel.c
+++ b/nptl/pthread_cancel.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
@@ -63,7 +63,6 @@ __pthread_cancel (pthread_t th)
oldval))
goto again;
-#ifdef SIGCANCEL
/* The cancellation handler will take care of marking the
thread as canceled. */
pid_t pid = __getpid ();
@@ -73,12 +72,6 @@ __pthread_cancel (pthread_t th)
SIGCANCEL);
if (INTERNAL_SYSCALL_ERROR_P (val, err))
result = INTERNAL_SYSCALL_ERRNO (val, err);
-#else
- /* It should be impossible to get here at all, since
- pthread_setcanceltype should never have allowed
- PTHREAD_CANCEL_ASYNCHRONOUS to be set. */
- abort ();
-#endif
break;
}
diff --git a/nptl/pthread_clock_gettime.c b/nptl/pthread_clock_gettime.c
deleted file mode 100644
index 6bc75cfe3f..0000000000
--- a/nptl/pthread_clock_gettime.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/* Copyright (C) 2001-2018 Free Software 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 <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <stdlib.h>
-#include <time.h>
-#include "pthreadP.h"
-
-
-#if HP_TIMING_AVAIL
-int
-__pthread_clock_gettime (clockid_t clock_id, hp_timing_t freq,
- struct timespec *tp)
-{
- hp_timing_t tsc;
-
- /* Get the current counter. */
- HP_TIMING_NOW (tsc);
-
- /* This is the ID of the thread we are looking for. */
- pid_t tid = ((unsigned int) clock_id) >> CLOCK_IDFIELD_SIZE;
-
- /* Compute the offset since the start time of the process. */
- if (tid == 0 || tid == THREAD_GETMEM (THREAD_SELF, tid))
- /* Our own clock. */
- tsc -= THREAD_GETMEM (THREAD_SELF, cpuclock_offset);
- else
- {
- /* This is more complicated. We have to locate the thread based
- on the ID. This means walking the list of existing
- threads. */
- struct pthread *thread = __find_thread_by_id (tid);
- if (thread == NULL)
- {
- __set_errno (EINVAL);
- return -1;
- }
-
- /* There is a race here. The thread might terminate and the stack
- become unusable. But this is the user's problem. */
- tsc -= thread->cpuclock_offset;
- }
-
- /* Compute the seconds. */
- tp->tv_sec = tsc / freq;
-
- /* And the nanoseconds. This computation should be stable until
- we get machines with about 16GHz frequency. */
- tp->tv_nsec = ((tsc % freq) * 1000000000ull) / freq;
-
- return 0;
-}
-#endif
diff --git a/nptl/pthread_clock_settime.c b/nptl/pthread_clock_settime.c
deleted file mode 100644
index 29d35c64cf..0000000000
--- a/nptl/pthread_clock_settime.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Copyright (C) 2001-2018 Free Software 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 <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <stdlib.h>
-#include <time.h>
-#include "pthreadP.h"
-
-
-#if HP_TIMING_AVAIL
-int
-__pthread_clock_settime (clockid_t clock_id, hp_timing_t offset)
-{
- /* This is the ID of the thread we are looking for. */
- pid_t tid = ((unsigned int) clock_id) >> CLOCK_IDFIELD_SIZE;
-
- /* Compute the offset since the start time of the process. */
- if (tid == 0 || tid == THREAD_GETMEM (THREAD_SELF, tid))
- /* Our own clock. */
- THREAD_SETMEM (THREAD_SELF, cpuclock_offset, offset);
- else
- {
- /* This is more complicated. We have to locate the thread based
- on the ID. This means walking the list of existing
- threads. */
- struct pthread *thread = __find_thread_by_id (tid);
- if (thread == NULL)
- {
- __set_errno (EINVAL);
- return -1;
- }
-
- /* There is a race here. The thread might terminate and the stack
- become unusable. But this is the user's problem. */
- thread->cpuclock_offset = offset;
- }
-
- return 0;
-}
-#endif
diff --git a/nptl/pthread_clockjoin.c b/nptl/pthread_clockjoin.c
new file mode 100644
index 0000000000..7c8c3ac564
--- /dev/null
+++ b/nptl/pthread_clockjoin.c
@@ -0,0 +1,29 @@
+/* Join with a terminated thread using an specific clock.
+ 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; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include "pthreadP.h"
+
+int
+__pthread_clockjoin_np (pthread_t threadid, void **thread_return,
+ clockid_t clockid,
+ const struct timespec *abstime)
+{
+ return __pthread_clockjoin_ex (threadid, thread_return,
+ clockid, abstime, true);
+}
+weak_alias (__pthread_clockjoin_np, pthread_clockjoin_np)
diff --git a/nptl/pthread_cond_broadcast.c b/nptl/pthread_cond_broadcast.c
index e6bcb9b61b..e9846328d9 100644
--- a/nptl/pthread_cond_broadcast.c
+++ b/nptl/pthread_cond_broadcast.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Martin Schwidefsky <schwidefsky@de.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <endian.h>
#include <errno.h>
diff --git a/nptl/pthread_cond_common.c b/nptl/pthread_cond_common.c
index 8e425eb01e..1c84bb87c1 100644
--- a/nptl/pthread_cond_common.c
+++ b/nptl/pthread_cond_common.c
@@ -1,5 +1,5 @@
/* pthread_cond_common -- shared code for condition variable.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <atomic.h>
#include <stdint.h>
@@ -405,8 +405,12 @@ __condvar_quiesce_and_switch_g1 (pthread_cond_t *cond, uint64_t wseq,
{
/* There is still a waiter after spinning. Set the wake-request
flag and block. Relaxed MO is fine because this is just about
- this futex word. */
- r = atomic_fetch_or_relaxed (cond->__data.__g_refs + g1, 1);
+ this futex word.
+
+ Update r to include the set wake-request flag so that the upcoming
+ futex_wait only blocks if the flag is still set (otherwise, we'd
+ violate the basic client-side futex protocol). */
+ r = atomic_fetch_or_relaxed (cond->__data.__g_refs + g1, 1) | 1;
if ((r >> 1) > 0)
futex_wait_simple (cond->__data.__g_refs + g1, r, private);
diff --git a/nptl/pthread_cond_destroy.c b/nptl/pthread_cond_destroy.c
index 14bb8f26d8..46807c3516 100644
--- a/nptl/pthread_cond_destroy.c
+++ b/nptl/pthread_cond_destroy.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <shlib-compat.h>
diff --git a/nptl/pthread_cond_init.c b/nptl/pthread_cond_init.c
index d193d0ec32..1652b360a5 100644
--- a/nptl/pthread_cond_init.c
+++ b/nptl/pthread_cond_init.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <shlib-compat.h>
#include "pthreadP.h"
diff --git a/nptl/pthread_cond_signal.c b/nptl/pthread_cond_signal.c
index 3db3d1fbeb..ea416a0e2c 100644
--- a/nptl/pthread_cond_signal.c
+++ b/nptl/pthread_cond_signal.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Martin Schwidefsky <schwidefsky@de.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <endian.h>
#include <errno.h>
diff --git a/nptl/pthread_cond_wait.c b/nptl/pthread_cond_wait.c
index 3e11054182..cf372bc017 100644
--- a/nptl/pthread_cond_wait.c
+++ b/nptl/pthread_cond_wait.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Martin Schwidefsky <schwidefsky@de.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <endian.h>
#include <errno.h>
@@ -378,6 +378,7 @@ __condvar_cleanup_waiting (void *arg)
*/
static __always_inline int
__pthread_cond_wait_common (pthread_cond_t *cond, pthread_mutex_t *mutex,
+ clockid_t clockid,
const struct timespec *abstime)
{
const int maxspin = 0;
@@ -386,6 +387,11 @@ __pthread_cond_wait_common (pthread_cond_t *cond, pthread_mutex_t *mutex,
LIBC_PROBE (cond_wait, 2, cond, mutex);
+ /* clockid will already have been checked by
+ __pthread_cond_clockwait or pthread_condattr_setclock, or we
+ don't use it if abstime is NULL, so we don't need to check it
+ here. */
+
/* Acquire a position (SEQ) in the waiter sequence (WSEQ). We use an
atomic operation because signals and broadcasts may update the group
switch without acquiring the mutex. We do not need release MO here
@@ -509,35 +515,11 @@ __pthread_cond_wait_common (pthread_cond_t *cond, pthread_mutex_t *mutex,
values despite them being valid. */
if (__glibc_unlikely (abstime->tv_sec < 0))
err = ETIMEDOUT;
-
- else if ((flags & __PTHREAD_COND_CLOCK_MONOTONIC_MASK) != 0)
- {
- /* CLOCK_MONOTONIC is requested. */
- struct timespec rt;
- if (__clock_gettime (CLOCK_MONOTONIC, &rt) != 0)
- __libc_fatal ("clock_gettime does not support "
- "CLOCK_MONOTONIC");
- /* Convert the absolute timeout value to a relative
- timeout. */
- rt.tv_sec = abstime->tv_sec - rt.tv_sec;
- rt.tv_nsec = abstime->tv_nsec - rt.tv_nsec;
- if (rt.tv_nsec < 0)
- {
- rt.tv_nsec += 1000000000;
- --rt.tv_sec;
- }
- /* Did we already time out? */
- if (__glibc_unlikely (rt.tv_sec < 0))
- err = ETIMEDOUT;
- else
- err = futex_reltimed_wait_cancelable
- (cond->__data.__g_signals + g, 0, &rt, private);
- }
else
{
- /* Use CLOCK_REALTIME. */
err = futex_abstimed_wait_cancelable
- (cond->__data.__g_signals + g, 0, abstime, private);
+ (cond->__data.__g_signals + g, 0, clockid, abstime,
+ private);
}
}
@@ -652,7 +634,8 @@ __pthread_cond_wait_common (pthread_cond_t *cond, pthread_mutex_t *mutex,
int
__pthread_cond_wait (pthread_cond_t *cond, pthread_mutex_t *mutex)
{
- return __pthread_cond_wait_common (cond, mutex, NULL);
+ /* clockid is unused when abstime is NULL. */
+ return __pthread_cond_wait_common (cond, mutex, 0, NULL);
}
/* See __pthread_cond_wait_common. */
@@ -662,12 +645,35 @@ __pthread_cond_timedwait (pthread_cond_t *cond, pthread_mutex_t *mutex,
{
/* Check parameter validity. This should also tell the compiler that
it can assume that abstime is not NULL. */
- if (abstime->tv_nsec < 0 || abstime->tv_nsec >= 1000000000)
+ if (! valid_nanoseconds (abstime->tv_nsec))
return EINVAL;
- return __pthread_cond_wait_common (cond, mutex, abstime);
-}
+ /* Relaxed MO is suffice because clock ID bit is only modified
+ in condition creation. */
+ unsigned int flags = atomic_load_relaxed (&cond->__data.__wrefs);
+ clockid_t clockid = (flags & __PTHREAD_COND_CLOCK_MONOTONIC_MASK)
+ ? CLOCK_MONOTONIC : CLOCK_REALTIME;
+ return __pthread_cond_wait_common (cond, mutex, clockid, abstime);
+}
versioned_symbol (libpthread, __pthread_cond_wait, pthread_cond_wait,
GLIBC_2_3_2);
versioned_symbol (libpthread, __pthread_cond_timedwait, pthread_cond_timedwait,
GLIBC_2_3_2);
+
+/* See __pthread_cond_wait_common. */
+int
+__pthread_cond_clockwait (pthread_cond_t *cond, pthread_mutex_t *mutex,
+ clockid_t clockid,
+ const struct timespec *abstime)
+{
+ /* Check parameter validity. This should also tell the compiler that
+ it can assume that abstime is not NULL. */
+ if (! valid_nanoseconds (abstime->tv_nsec))
+ return EINVAL;
+
+ if (!futex_abstimed_supported_clockid (clockid))
+ return EINVAL;
+
+ return __pthread_cond_wait_common (cond, mutex, clockid, abstime);
+}
+weak_alias (__pthread_cond_clockwait, pthread_cond_clockwait);
diff --git a/nptl/pthread_condattr_destroy.c b/nptl/pthread_condattr_destroy.c
index 0003710212..d67338254e 100644
--- a/nptl/pthread_condattr_destroy.c
+++ b/nptl/pthread_condattr_destroy.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "pthreadP.h"
diff --git a/nptl/pthread_condattr_getclock.c b/nptl/pthread_condattr_getclock.c
index dc6fc1fb5f..68d1bda30f 100644
--- a/nptl/pthread_condattr_getclock.c
+++ b/nptl/pthread_condattr_getclock.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "pthreadP.h"
diff --git a/nptl/pthread_condattr_getpshared.c b/nptl/pthread_condattr_getpshared.c
index 8a7e77847f..e2819b37e0 100644
--- a/nptl/pthread_condattr_getpshared.c
+++ b/nptl/pthread_condattr_getpshared.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "pthreadP.h"
diff --git a/nptl/pthread_condattr_init.c b/nptl/pthread_condattr_init.c
index 0796552b66..76d43d5ec3 100644
--- a/nptl/pthread_condattr_init.c
+++ b/nptl/pthread_condattr_init.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include "pthreadP.h"
diff --git a/nptl/pthread_condattr_setclock.c b/nptl/pthread_condattr_setclock.c
index dd003ab86d..3b5299215f 100644
--- a/nptl/pthread_condattr_setclock.c
+++ b/nptl/pthread_condattr_setclock.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
@@ -33,11 +33,6 @@ pthread_condattr_setclock (pthread_condattr_t *attr, clockid_t clock_id)
in the pthread_cond_t structure needs to be adjusted. */
return EINVAL;
- /* If we do not support waiting using CLOCK_MONOTONIC, return an error. */
- if (clock_id == CLOCK_MONOTONIC
- && !futex_supports_exact_relative_timeouts())
- return ENOTSUP;
-
/* Make sure the value fits in the bits we reserved. */
assert (clock_id < (1 << COND_CLOCK_BITS));
diff --git a/nptl/pthread_condattr_setpshared.c b/nptl/pthread_condattr_setpshared.c
index 5756e3e9e9..bcd4914ac9 100644
--- a/nptl/pthread_condattr_setpshared.c
+++ b/nptl/pthread_condattr_setpshared.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthreadP.h>
diff --git a/nptl/pthread_create.c b/nptl/pthread_create.c
index fe75d04113..5682c9c2c0 100644
--- a/nptl/pthread_create.c
+++ b/nptl/pthread_create.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <errno.h>
@@ -379,13 +379,6 @@ START_THREAD_DEFN
{
struct pthread *pd = START_THREAD_SELF;
-#if HP_TIMING_AVAIL
- /* Remember the time when the thread was started. */
- hp_timing_t now;
- HP_TIMING_NOW (now);
- THREAD_SETMEM (pd, cpuclock_offset, now);
-#endif
-
/* Initialize resolver state pointer. */
__resp = &pd->res;
@@ -409,7 +402,6 @@ START_THREAD_DEFN
}
#endif
-#ifdef SIGCANCEL
/* If the parent was running cancellation handlers while creating
the thread the new thread inherited the signal mask. Reset the
cancellation signal mask. */
@@ -422,7 +414,6 @@ START_THREAD_DEFN
(void) INTERNAL_SYSCALL (rt_sigprocmask, err, 4, SIG_UNBLOCK, &mask,
NULL, _NSIG / 8);
}
-#endif
/* This is where the try/finally block should be created. For
compilers without that support we do use setjmp. */
diff --git a/nptl/pthread_detach.c b/nptl/pthread_detach.c
index b6001f6bce..c5e8407862 100644
--- a/nptl/pthread_detach.c
+++ b/nptl/pthread_detach.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include "pthreadP.h"
diff --git a/nptl/pthread_equal.c b/nptl/pthread_equal.c
index 1c4695c5cd..90bb89aa59 100644
--- a/nptl/pthread_equal.c
+++ b/nptl/pthread_equal.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "pthreadP.h"
diff --git a/nptl/pthread_exit.c b/nptl/pthread_exit.c
index c8383e4fae..643c85bd6e 100644
--- a/nptl/pthread_exit.c
+++ b/nptl/pthread_exit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include "pthreadP.h"
diff --git a/nptl/pthread_getaffinity.c b/nptl/pthread_getaffinity.c
index f71df78f8a..e37b6392f6 100644
--- a/nptl/pthread_getaffinity.c
+++ b/nptl/pthread_getaffinity.c
@@ -1,5 +1,5 @@
/* Get the processor affinity of a thread. Stub version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthreadP.h>
diff --git a/nptl/pthread_getattr_default_np.c b/nptl/pthread_getattr_default_np.c
index 263b6895b5..fc5ed34a1a 100644
--- a/nptl/pthread_getattr_default_np.c
+++ b/nptl/pthread_getattr_default_np.c
@@ -1,5 +1,5 @@
/* Get the default attributes used by pthread_create in the process.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdlib.h>
diff --git a/nptl/pthread_getattr_np.c b/nptl/pthread_getattr_np.c
index ae12592294..7c123ab73d 100644
--- a/nptl/pthread_getattr_np.c
+++ b/nptl/pthread_getattr_np.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
diff --git a/nptl/pthread_getconcurrency.c b/nptl/pthread_getconcurrency.c
index 57a6357a8a..ab94773107 100644
--- a/nptl/pthread_getconcurrency.c
+++ b/nptl/pthread_getconcurrency.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "pthreadP.h"
diff --git a/nptl/pthread_getcpuclockid.c b/nptl/pthread_getcpuclockid.c
index e3517e88a4..6aec28c2cc 100644
--- a/nptl/pthread_getcpuclockid.c
+++ b/nptl/pthread_getcpuclockid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -13,7 +13,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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthreadP.h>
diff --git a/nptl/pthread_getname.c b/nptl/pthread_getname.c
index a17d8d95e1..f976eac01a 100644
--- a/nptl/pthread_getname.c
+++ b/nptl/pthread_getname.c
@@ -1,5 +1,5 @@
/* pthread_getname_np -- Get thread name. Stub version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthreadP.h>
diff --git a/nptl/pthread_getschedparam.c b/nptl/pthread_getschedparam.c
index a7cf464755..f121c1e9f6 100644
--- a/nptl/pthread_getschedparam.c
+++ b/nptl/pthread_getschedparam.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <string.h>
diff --git a/nptl/pthread_getspecific.c b/nptl/pthread_getspecific.c
index 9254760449..42b29a9145 100644
--- a/nptl/pthread_getspecific.c
+++ b/nptl/pthread_getspecific.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include "pthreadP.h"
diff --git a/nptl/pthread_join.c b/nptl/pthread_join.c
index 409fe8b210..c7ff5a393b 100644
--- a/nptl/pthread_join.c
+++ b/nptl/pthread_join.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "pthreadP.h"
int
__pthread_join (pthread_t threadid, void **thread_return)
{
- return __pthread_timedjoin_ex (threadid, thread_return, NULL, true);
+ return __pthread_clockjoin_ex (threadid, thread_return, 0 /* Ignored */,
+ NULL, true);
}
weak_alias (__pthread_join, pthread_join)
diff --git a/nptl/pthread_join_common.c b/nptl/pthread_join_common.c
index 702fcd1545..998d227e2c 100644
--- a/nptl/pthread_join_common.c
+++ b/nptl/pthread_join_common.c
@@ -1,5 +1,5 @@
/* Common definition for pthread_{timed,try}join{_np}.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,11 +14,12 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "pthreadP.h"
#include <atomic.h>
#include <stap-probe.h>
+#include <time.h>
static void
cleanup (void *arg)
@@ -30,8 +31,56 @@ cleanup (void *arg)
atomic_compare_exchange_weak_acquire (&arg, &self, NULL);
}
+/* The kernel notifies a process which uses CLONE_CHILD_CLEARTID via futex
+ wake-up when the clone terminates. The memory location contains the
+ thread ID while the clone is running and is reset to zero by the kernel
+ afterwards. The kernel up to version 3.16.3 does not use the private futex
+ operations for futex wake-up when the clone terminates. */
+static int
+clockwait_tid (pid_t *tidp, clockid_t clockid, const struct timespec *abstime)
+{
+ pid_t tid;
+
+ if (! valid_nanoseconds (abstime->tv_nsec))
+ return EINVAL;
+
+ /* Repeat until thread terminated. */
+ while ((tid = *tidp) != 0)
+ {
+ struct timespec rt;
+
+ /* Get the current time. This can only fail if clockid is
+ invalid. */
+ if (__glibc_unlikely (__clock_gettime (clockid, &rt)))
+ return EINVAL;
+
+ /* Compute relative timeout. */
+ rt.tv_sec = abstime->tv_sec - rt.tv_sec;
+ rt.tv_nsec = abstime->tv_nsec - rt.tv_nsec;
+ if (rt.tv_nsec < 0)
+ {
+ rt.tv_nsec += 1000000000;
+ --rt.tv_sec;
+ }
+
+ /* Already timed out? */
+ if (rt.tv_sec < 0)
+ return ETIMEDOUT;
+
+ /* If *tidp == tid, wait until thread terminates or the wait times out.
+ The kernel up to version 3.16.3 does not use the private futex
+ operations for futex wake-up when the clone terminates. */
+ if (lll_futex_timed_wait_cancel (tidp, tid, &rt, LLL_SHARED)
+ == -ETIMEDOUT)
+ return ETIMEDOUT;
+ }
+
+ return 0;
+}
+
int
-__pthread_timedjoin_ex (pthread_t threadid, void **thread_return,
+__pthread_clockjoin_ex (pthread_t threadid, void **thread_return,
+ clockid_t clockid,
const struct timespec *abstime, bool block)
{
struct pthread *pd = (struct pthread *) threadid;
@@ -74,6 +123,10 @@ __pthread_timedjoin_ex (pthread_t threadid, void **thread_return,
/* There is already somebody waiting for the thread. */
return EINVAL;
+ /* BLOCK waits either indefinitely or based on an absolute time. POSIX also
+ states a cancellation point shall occur for pthread_join, and we use the
+ same rationale for posix_timedjoin_np. Both clockwait_tid and the futex
+ call use the cancellable variant. */
if (block)
{
/* During the wait we change to asynchronous cancellation. If we
@@ -81,18 +134,21 @@ __pthread_timedjoin_ex (pthread_t threadid, void **thread_return,
un-wait-ed for again. */
pthread_cleanup_push (cleanup, &pd->joinid);
- int oldtype = CANCEL_ASYNC ();
-
if (abstime != NULL)
- result = lll_timedwait_tid (pd->tid, abstime);
+ result = clockwait_tid (&pd->tid, clockid, abstime);
else
- lll_wait_tid (pd->tid);
-
- CANCEL_RESET (oldtype);
+ {
+ pid_t tid;
+ /* We need acquire MO here so that we synchronize with the
+ kernel's store to 0 when the clone terminates. (see above) */
+ while ((tid = atomic_load_acquire (&pd->tid)) != 0)
+ lll_futex_wait_cancel (&pd->tid, tid, LLL_SHARED);
+ }
pthread_cleanup_pop (0);
}
+ void *pd_result = pd->result;
if (__glibc_likely (result == 0))
{
/* We mark the thread as terminated and as joined. */
@@ -100,7 +156,7 @@ __pthread_timedjoin_ex (pthread_t threadid, void **thread_return,
/* Store the return value if the caller is interested. */
if (thread_return != NULL)
- *thread_return = pd->result;
+ *thread_return = pd_result;
/* Free the TCB. */
__free_tcb (pd);
@@ -108,8 +164,7 @@ __pthread_timedjoin_ex (pthread_t threadid, void **thread_return,
else
pd->joinid = NULL;
- LIBC_PROBE (pthread_join_ret, 3, threadid, result, pd->result);
+ LIBC_PROBE (pthread_join_ret, 3, threadid, result, pd_result);
return result;
}
-hidden_def (__pthread_timedjoin_ex)
diff --git a/nptl/pthread_key_create.c b/nptl/pthread_key_create.c
index 0c0e53c44a..e0ded90a10 100644
--- a/nptl/pthread_key_create.c
+++ b/nptl/pthread_key_create.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include "pthreadP.h"
diff --git a/nptl/pthread_key_delete.c b/nptl/pthread_key_delete.c
index ddf88fd2d9..6259832649 100644
--- a/nptl/pthread_key_delete.c
+++ b/nptl/pthread_key_delete.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include "pthreadP.h"
diff --git a/nptl/pthread_kill.c b/nptl/pthread_kill.c
index bbe57d18c6..2805c722a6 100644
--- a/nptl/pthread_kill.c
+++ b/nptl/pthread_kill.c
@@ -1,5 +1,5 @@
/* Send a signal to a specific pthread. Stub version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/nptl/pthread_kill_other_threads.c b/nptl/pthread_kill_other_threads.c
index 3dede081bc..15553bc811 100644
--- a/nptl/pthread_kill_other_threads.c
+++ b/nptl/pthread_kill_other_threads.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <shlib-compat.h>
diff --git a/nptl/pthread_mutex_conf.c b/nptl/pthread_mutex_conf.c
new file mode 100644
index 0000000000..7542157ba3
--- /dev/null
+++ b/nptl/pthread_mutex_conf.c
@@ -0,0 +1,46 @@
+/* Pthread mutex tunable parameters.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#if HAVE_TUNABLES
+# define TUNABLE_NAMESPACE pthread
+#include <pthread_mutex_conf.h>
+#include <stdint.h>
+#include <stdbool.h>
+#include <unistd.h> /* Get STDOUT_FILENO for _dl_printf. */
+#include <elf/dl-tunables.h>
+
+struct mutex_config __mutex_aconf =
+{
+ /* The maximum number of times a thread should spin on the lock before
+ calling into kernel to block. */
+ .spin_count = DEFAULT_ADAPTIVE_COUNT,
+};
+
+static void
+TUNABLE_CALLBACK (set_mutex_spin_count) (tunable_val_t *valp)
+{
+ __mutex_aconf.spin_count = (int32_t) (valp)->numval;
+}
+
+void
+__pthread_tunables_init (void)
+{
+ TUNABLE_GET (mutex_spin_count, int32_t,
+ TUNABLE_CALLBACK (set_mutex_spin_count));
+}
+#endif
diff --git a/nptl/pthread_mutex_conf.h b/nptl/pthread_mutex_conf.h
new file mode 100644
index 0000000000..b6fb98396f
--- /dev/null
+++ b/nptl/pthread_mutex_conf.h
@@ -0,0 +1,34 @@
+/* Pthread mutex tunable parameters.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+#ifndef _PTHREAD_MUTEX_CONF_H
+#define _PTHREAD_MUTEX_CONF_H 1
+
+#include <adaptive_spin_count.h>
+
+#if HAVE_TUNABLES
+struct mutex_config
+{
+ int spin_count;
+};
+
+extern struct mutex_config __mutex_aconf attribute_hidden;
+
+extern void __pthread_tunables_init (void) attribute_hidden;
+#endif
+
+#endif
diff --git a/nptl/pthread_mutex_consistent.c b/nptl/pthread_mutex_consistent.c
index 85b8e1a6cb..0c73d39fbe 100644
--- a/nptl/pthread_mutex_consistent.c
+++ b/nptl/pthread_mutex_consistent.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthreadP.h>
@@ -23,8 +23,11 @@
int
pthread_mutex_consistent (pthread_mutex_t *mutex)
{
- /* Test whether this is a robust mutex with a dead owner. */
- if ((mutex->__data.__kind & PTHREAD_MUTEX_ROBUST_NORMAL_NP) == 0
+ /* Test whether this is a robust mutex with a dead owner.
+ See concurrency notes regarding __kind in struct __pthread_mutex_s
+ in sysdeps/nptl/bits/thread-shared-types.h. */
+ if ((atomic_load_relaxed (&(mutex->__data.__kind))
+ & PTHREAD_MUTEX_ROBUST_NORMAL_NP) == 0
|| mutex->__data.__owner != PTHREAD_MUTEX_INCONSISTENT)
return EINVAL;
diff --git a/nptl/pthread_mutex_destroy.c b/nptl/pthread_mutex_destroy.c
index 5a22611541..2ba651531b 100644
--- a/nptl/pthread_mutex_destroy.c
+++ b/nptl/pthread_mutex_destroy.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include "pthreadP.h"
@@ -27,12 +27,17 @@ __pthread_mutex_destroy (pthread_mutex_t *mutex)
{
LIBC_PROBE (mutex_destroy, 1, mutex);
- if ((mutex->__data.__kind & PTHREAD_MUTEX_ROBUST_NORMAL_NP) == 0
+ /* See concurrency notes regarding __kind in struct __pthread_mutex_s
+ in sysdeps/nptl/bits/thread-shared-types.h. */
+ if ((atomic_load_relaxed (&(mutex->__data.__kind))
+ & PTHREAD_MUTEX_ROBUST_NORMAL_NP) == 0
&& mutex->__data.__nusers != 0)
return EBUSY;
- /* Set to an invalid value. */
- mutex->__data.__kind = -1;
+ /* Set to an invalid value. Relaxed MO is enough as it is undefined behavior
+ if the mutex is used after it has been destroyed. But you can reinitialize
+ it with pthread_mutex_init. */
+ atomic_store_relaxed (&(mutex->__data.__kind), -1);
return 0;
}
diff --git a/nptl/pthread_mutex_getprioceiling.c b/nptl/pthread_mutex_getprioceiling.c
index efa37b0d99..7e3d47ddf4 100644
--- a/nptl/pthread_mutex_getprioceiling.c
+++ b/nptl/pthread_mutex_getprioceiling.c
@@ -1,5 +1,5 @@
/* Get current priority ceiling of pthread_mutex_t.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthreadP.h>
@@ -24,7 +24,9 @@
int
pthread_mutex_getprioceiling (const pthread_mutex_t *mutex, int *prioceiling)
{
- if (__builtin_expect ((mutex->__data.__kind
+ /* See concurrency notes regarding __kind in struct __pthread_mutex_s
+ in sysdeps/nptl/bits/thread-shared-types.h. */
+ if (__builtin_expect ((atomic_load_relaxed (&(mutex->__data.__kind))
& PTHREAD_MUTEX_PRIO_PROTECT_NP) == 0, 0))
return EINVAL;
diff --git a/nptl/pthread_mutex_init.c b/nptl/pthread_mutex_init.c
index d8fe473728..daef8b4bcc 100644
--- a/nptl/pthread_mutex_init.c
+++ b/nptl/pthread_mutex_init.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
@@ -24,6 +24,7 @@
#include "pthreadP.h"
#include <atomic.h>
#include <pthread-offsets.h>
+#include <futex-internal.h>
#include <stap-probe.h>
@@ -37,19 +38,13 @@ static const struct pthread_mutexattr default_mutexattr =
static bool
prio_inherit_missing (void)
{
-#ifdef __NR_futex
static int tpi_supported;
- if (__glibc_unlikely (tpi_supported == 0))
+ if (__glibc_unlikely (atomic_load_relaxed (&tpi_supported) == 0))
{
- int lock = 0;
- INTERNAL_SYSCALL_DECL (err);
- int ret = INTERNAL_SYSCALL (futex, err, 4, &lock, FUTEX_UNLOCK_PI, 0, 0);
- assert (INTERNAL_SYSCALL_ERROR_P (ret, err));
- tpi_supported = INTERNAL_SYSCALL_ERRNO (ret, err) == ENOSYS ? -1 : 1;
+ int e = futex_unlock_pi (&(unsigned int){0}, 0);
+ atomic_store_relaxed (&tpi_supported, e == ENOSYS ? -1 : 1);
}
return __glibc_unlikely (tpi_supported < 0);
-#endif
- return true;
}
int
@@ -60,18 +55,11 @@ __pthread_mutex_init (pthread_mutex_t *mutex,
ASSERT_TYPE_SIZE (pthread_mutex_t, __SIZEOF_PTHREAD_MUTEX_T);
- ASSERT_PTHREAD_INTERNAL_OFFSET (pthread_mutex_t, __data.__nusers,
- __PTHREAD_MUTEX_NUSERS_OFFSET);
+ /* __kind is the only field where its offset should be checked to
+ avoid ABI breakage with static initializers. */
ASSERT_PTHREAD_INTERNAL_OFFSET (pthread_mutex_t, __data.__kind,
__PTHREAD_MUTEX_KIND_OFFSET);
- ASSERT_PTHREAD_INTERNAL_OFFSET (pthread_mutex_t, __data.__spins,
- __PTHREAD_MUTEX_SPINS_OFFSET);
-#if __PTHREAD_MUTEX_LOCK_ELISION
- ASSERT_PTHREAD_INTERNAL_OFFSET (pthread_mutex_t, __data.__elision,
- __PTHREAD_MUTEX_ELISION_OFFSET);
-#endif
- ASSERT_PTHREAD_INTERNAL_OFFSET (pthread_mutex_t, __data.__list,
- __PTHREAD_MUTEX_LIST_OFFSET);
+ ASSERT_PTHREAD_INTERNAL_MEMBER_SIZE (pthread_mutex_t, __data.__kind, int);
imutexattr = ((const struct pthread_mutexattr *) mutexattr
?: &default_mutexattr);
@@ -101,7 +89,7 @@ __pthread_mutex_init (pthread_mutex_t *mutex,
memset (mutex, '\0', __SIZEOF_PTHREAD_MUTEX_T);
/* Copy the values from the attribute. */
- mutex->__data.__kind = imutexattr->mutexkind & ~PTHREAD_MUTEXATTR_FLAG_BITS;
+ int mutex_kind = imutexattr->mutexkind & ~PTHREAD_MUTEXATTR_FLAG_BITS;
if ((imutexattr->mutexkind & PTHREAD_MUTEXATTR_FLAG_ROBUST) != 0)
{
@@ -111,17 +99,17 @@ __pthread_mutex_init (pthread_mutex_t *mutex,
return ENOTSUP;
#endif
- mutex->__data.__kind |= PTHREAD_MUTEX_ROBUST_NORMAL_NP;
+ mutex_kind |= PTHREAD_MUTEX_ROBUST_NORMAL_NP;
}
switch (imutexattr->mutexkind & PTHREAD_MUTEXATTR_PROTOCOL_MASK)
{
case PTHREAD_PRIO_INHERIT << PTHREAD_MUTEXATTR_PROTOCOL_SHIFT:
- mutex->__data.__kind |= PTHREAD_MUTEX_PRIO_INHERIT_NP;
+ mutex_kind |= PTHREAD_MUTEX_PRIO_INHERIT_NP;
break;
case PTHREAD_PRIO_PROTECT << PTHREAD_MUTEXATTR_PROTOCOL_SHIFT:
- mutex->__data.__kind |= PTHREAD_MUTEX_PRIO_PROTECT_NP;
+ mutex_kind |= PTHREAD_MUTEX_PRIO_PROTECT_NP;
int ceiling = (imutexattr->mutexkind
& PTHREAD_MUTEXATTR_PRIO_CEILING_MASK)
@@ -145,7 +133,11 @@ __pthread_mutex_init (pthread_mutex_t *mutex,
FUTEX_PRIVATE_FLAG FUTEX_WAKE. */
if ((imutexattr->mutexkind & (PTHREAD_MUTEXATTR_FLAG_PSHARED
| PTHREAD_MUTEXATTR_FLAG_ROBUST)) != 0)
- mutex->__data.__kind |= PTHREAD_MUTEX_PSHARED_BIT;
+ mutex_kind |= PTHREAD_MUTEX_PSHARED_BIT;
+
+ /* See concurrency notes regarding __kind in struct __pthread_mutex_s
+ in sysdeps/nptl/bits/thread-shared-types.h. */
+ atomic_store_relaxed (&(mutex->__data.__kind), mutex_kind);
/* Default values: mutex not used yet. */
// mutex->__count = 0; already done by memset
diff --git a/nptl/pthread_mutex_lock.c b/nptl/pthread_mutex_lock.c
index 1519c142bd..05bba50666 100644
--- a/nptl/pthread_mutex_lock.c
+++ b/nptl/pthread_mutex_lock.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
@@ -24,7 +24,7 @@
#include <not-cancel.h>
#include "pthreadP.h"
#include <atomic.h>
-#include <lowlevellock.h>
+#include <futex-internal.h>
#include <stap-probe.h>
#ifndef lll_lock_elision
@@ -62,6 +62,8 @@ static int __pthread_mutex_lock_full (pthread_mutex_t *mutex)
int
__pthread_mutex_lock (pthread_mutex_t *mutex)
{
+ /* See concurrency notes regarding mutex type which is loaded from __kind
+ in struct __pthread_mutex_s in sysdeps/nptl/bits/thread-shared-types.h. */
unsigned int type = PTHREAD_MUTEX_TYPE_ELISION (mutex);
LIBC_PROBE (mutex_entry, 1, mutex);
@@ -124,7 +126,7 @@ __pthread_mutex_lock (pthread_mutex_t *mutex)
if (LLL_MUTEX_TRYLOCK (mutex) != 0)
{
int cnt = 0;
- int max_cnt = MIN (MAX_ADAPTIVE_COUNT,
+ int max_cnt = MIN (max_adaptive_count (),
mutex->__data.__spins * 2 + 10);
do
{
@@ -350,8 +352,14 @@ __pthread_mutex_lock_full (pthread_mutex_t *mutex)
case PTHREAD_MUTEX_PI_ROBUST_NORMAL_NP:
case PTHREAD_MUTEX_PI_ROBUST_ADAPTIVE_NP:
{
- int kind = mutex->__data.__kind & PTHREAD_MUTEX_KIND_MASK_NP;
- int robust = mutex->__data.__kind & PTHREAD_MUTEX_ROBUST_NORMAL_NP;
+ int kind, robust;
+ {
+ /* See concurrency notes regarding __kind in struct __pthread_mutex_s
+ in sysdeps/nptl/bits/thread-shared-types.h. */
+ int mutex_kind = atomic_load_relaxed (&(mutex->__data.__kind));
+ kind = mutex_kind & PTHREAD_MUTEX_KIND_MASK_NP;
+ robust = mutex_kind & PTHREAD_MUTEX_ROBUST_NORMAL_NP;
+ }
if (robust)
{
@@ -408,25 +416,21 @@ __pthread_mutex_lock_full (pthread_mutex_t *mutex)
int private = (robust
? PTHREAD_ROBUST_MUTEX_PSHARED (mutex)
: PTHREAD_MUTEX_PSHARED (mutex));
- INTERNAL_SYSCALL_DECL (__err);
- int e = INTERNAL_SYSCALL (futex, __err, 4, &mutex->__data.__lock,
- __lll_private_flag (FUTEX_LOCK_PI,
- private), 1, 0);
-
- if (INTERNAL_SYSCALL_ERROR_P (e, __err)
- && (INTERNAL_SYSCALL_ERRNO (e, __err) == ESRCH
- || INTERNAL_SYSCALL_ERRNO (e, __err) == EDEADLK))
+ int e = futex_lock_pi ((unsigned int *) &mutex->__data.__lock,
+ NULL, private);
+ if (e == ESRCH || e == EDEADLK)
{
- assert (INTERNAL_SYSCALL_ERRNO (e, __err) != EDEADLK
+ assert (e != EDEADLK
|| (kind != PTHREAD_MUTEX_ERRORCHECK_NP
&& kind != PTHREAD_MUTEX_RECURSIVE_NP));
/* ESRCH can happen only for non-robust PI mutexes where
the owner of the lock died. */
- assert (INTERNAL_SYSCALL_ERRNO (e, __err) != ESRCH || !robust);
+ assert (e != ESRCH || !robust);
/* Delay the thread indefinitely. */
while (1)
- __pause_nocancel ();
+ lll_timedwait (&(int){0}, 0, 0 /* ignored */, NULL,
+ private);
}
oldval = mutex->__data.__lock;
@@ -470,11 +474,8 @@ __pthread_mutex_lock_full (pthread_mutex_t *mutex)
/* This mutex is now not recoverable. */
mutex->__data.__count = 0;
- INTERNAL_SYSCALL_DECL (__err);
- INTERNAL_SYSCALL (futex, __err, 4, &mutex->__data.__lock,
- __lll_private_flag (FUTEX_UNLOCK_PI,
- PTHREAD_ROBUST_MUTEX_PSHARED (mutex)),
- 0, 0);
+ futex_unlock_pi ((unsigned int *) &mutex->__data.__lock,
+ PTHREAD_ROBUST_MUTEX_PSHARED (mutex));
/* To the kernel, this will be visible after the kernel has
acquired the mutex in the syscall. */
@@ -502,7 +503,10 @@ __pthread_mutex_lock_full (pthread_mutex_t *mutex)
case PTHREAD_MUTEX_PP_NORMAL_NP:
case PTHREAD_MUTEX_PP_ADAPTIVE_NP:
{
- int kind = mutex->__data.__kind & PTHREAD_MUTEX_KIND_MASK_NP;
+ /* See concurrency notes regarding __kind in struct __pthread_mutex_s
+ in sysdeps/nptl/bits/thread-shared-types.h. */
+ int kind = atomic_load_relaxed (&(mutex->__data.__kind))
+ & PTHREAD_MUTEX_KIND_MASK_NP;
oldval = mutex->__data.__lock;
@@ -607,15 +611,18 @@ hidden_def (__pthread_mutex_lock)
void
__pthread_mutex_cond_lock_adjust (pthread_mutex_t *mutex)
{
- assert ((mutex->__data.__kind & PTHREAD_MUTEX_PRIO_INHERIT_NP) != 0);
- assert ((mutex->__data.__kind & PTHREAD_MUTEX_ROBUST_NORMAL_NP) == 0);
- assert ((mutex->__data.__kind & PTHREAD_MUTEX_PSHARED_BIT) == 0);
+ /* See concurrency notes regarding __kind in struct __pthread_mutex_s
+ in sysdeps/nptl/bits/thread-shared-types.h. */
+ int mutex_kind = atomic_load_relaxed (&(mutex->__data.__kind));
+ assert ((mutex_kind & PTHREAD_MUTEX_PRIO_INHERIT_NP) != 0);
+ assert ((mutex_kind & PTHREAD_MUTEX_ROBUST_NORMAL_NP) == 0);
+ assert ((mutex_kind & PTHREAD_MUTEX_PSHARED_BIT) == 0);
/* Record the ownership. */
pid_t id = THREAD_GETMEM (THREAD_SELF, tid);
mutex->__data.__owner = id;
- if (mutex->__data.__kind == PTHREAD_MUTEX_PI_RECURSIVE_NP)
+ if (mutex_kind == PTHREAD_MUTEX_PI_RECURSIVE_NP)
++mutex->__data.__count;
}
#endif
diff --git a/nptl/pthread_mutex_setprioceiling.c b/nptl/pthread_mutex_setprioceiling.c
index 8594874f85..8c532c9121 100644
--- a/nptl/pthread_mutex_setprioceiling.c
+++ b/nptl/pthread_mutex_setprioceiling.c
@@ -1,5 +1,5 @@
/* Set current priority ceiling of pthread_mutex_t.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdbool.h>
#include <errno.h>
@@ -27,9 +27,10 @@ int
pthread_mutex_setprioceiling (pthread_mutex_t *mutex, int prioceiling,
int *old_ceiling)
{
- /* The low bits of __kind aren't ever changed after pthread_mutex_init,
- so we don't need a lock yet. */
- if ((mutex->__data.__kind & PTHREAD_MUTEX_PRIO_PROTECT_NP) == 0)
+ /* See concurrency notes regarding __kind in struct __pthread_mutex_s
+ in sysdeps/nptl/bits/thread-shared-types.h. */
+ if ((atomic_load_relaxed (&(mutex->__data.__kind))
+ & PTHREAD_MUTEX_PRIO_PROTECT_NP) == 0)
return EINVAL;
/* See __init_sched_fifo_prio. */
diff --git a/nptl/pthread_mutex_timedlock.c b/nptl/pthread_mutex_timedlock.c
index 28237b0e58..eb4baae93b 100644
--- a/nptl/pthread_mutex_timedlock.c
+++ b/nptl/pthread_mutex_timedlock.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
@@ -25,11 +25,13 @@
#include <atomic.h>
#include <lowlevellock.h>
#include <not-cancel.h>
+#include <futex-internal.h>
#include <stap-probe.h>
-#ifndef lll_timedlock_elision
-#define lll_timedlock_elision(a,dummy,b,c) lll_timedlock(a, b, c)
+#ifndef lll_clocklock_elision
+#define lll_clocklock_elision(futex, adapt_count, clockid, abstime, private) \
+ lll_clocklock (futex, clockid, abstime, private)
#endif
#ifndef lll_trylock_elision
@@ -41,18 +43,19 @@
#endif
int
-__pthread_mutex_timedlock (pthread_mutex_t *mutex,
- const struct timespec *abstime)
+__pthread_mutex_clocklock_common (pthread_mutex_t *mutex,
+ clockid_t clockid,
+ const struct timespec *abstime)
{
int oldval;
pid_t id = THREAD_GETMEM (THREAD_SELF, tid);
int result = 0;
- LIBC_PROBE (mutex_timedlock_entry, 2, mutex, abstime);
-
/* We must not check ABSTIME here. If the thread does not block
abstime must not be checked for a valid value. */
+ /* See concurrency notes regarding mutex type which is loaded from __kind
+ in struct __pthread_mutex_s in sysdeps/nptl/bits/thread-shared-types.h. */
switch (__builtin_expect (PTHREAD_MUTEX_TYPE_ELISION (mutex),
PTHREAD_MUTEX_TIMED_NP))
{
@@ -73,7 +76,7 @@ __pthread_mutex_timedlock (pthread_mutex_t *mutex,
}
/* We have to get the mutex. */
- result = lll_timedlock (mutex->__data.__lock, abstime,
+ result = lll_clocklock (mutex->__data.__lock, clockid, abstime,
PTHREAD_MUTEX_PSHARED (mutex));
if (result != 0)
@@ -96,16 +99,16 @@ __pthread_mutex_timedlock (pthread_mutex_t *mutex,
FORCE_ELISION (mutex, goto elision);
simple:
/* Normal mutex. */
- result = lll_timedlock (mutex->__data.__lock, abstime,
+ result = lll_clocklock (mutex->__data.__lock, clockid, abstime,
PTHREAD_MUTEX_PSHARED (mutex));
break;
case PTHREAD_MUTEX_TIMED_ELISION_NP:
elision: __attribute__((unused))
/* Don't record ownership */
- return lll_timedlock_elision (mutex->__data.__lock,
+ return lll_clocklock_elision (mutex->__data.__lock,
mutex->__data.__spins,
- abstime,
+ clockid, abstime,
PTHREAD_MUTEX_PSHARED (mutex));
@@ -116,13 +119,14 @@ __pthread_mutex_timedlock (pthread_mutex_t *mutex,
if (lll_trylock (mutex->__data.__lock) != 0)
{
int cnt = 0;
- int max_cnt = MIN (MAX_ADAPTIVE_COUNT,
+ int max_cnt = MIN (max_adaptive_count (),
mutex->__data.__spins * 2 + 10);
do
{
if (cnt++ >= max_cnt)
{
- result = lll_timedlock (mutex->__data.__lock, abstime,
+ result = lll_clocklock (mutex->__data.__lock,
+ clockid, abstime,
PTHREAD_MUTEX_PSHARED (mutex));
break;
}
@@ -232,33 +236,12 @@ __pthread_mutex_timedlock (pthread_mutex_t *mutex,
}
/* We are about to block; check whether the timeout is invalid. */
- if (abstime->tv_nsec < 0 || abstime->tv_nsec >= 1000000000)
+ if (! valid_nanoseconds (abstime->tv_nsec))
return EINVAL;
/* Work around the fact that the kernel rejects negative timeout
values despite them being valid. */
if (__glibc_unlikely (abstime->tv_sec < 0))
return ETIMEDOUT;
-#if (!defined __ASSUME_FUTEX_CLOCK_REALTIME \
- || !defined lll_futex_timed_wait_bitset)
- struct timeval tv;
- struct timespec rt;
-
- /* Get the current time. */
- (void) __gettimeofday (&tv, NULL);
-
- /* Compute relative timeout. */
- rt.tv_sec = abstime->tv_sec - tv.tv_sec;
- rt.tv_nsec = abstime->tv_nsec - tv.tv_usec * 1000;
- if (rt.tv_nsec < 0)
- {
- rt.tv_nsec += 1000000000;
- --rt.tv_sec;
- }
-
- /* Already timed out? */
- if (rt.tv_sec < 0)
- return ETIMEDOUT;
-#endif
/* We cannot acquire the mutex nor has its owner died. Thus, try
to block using futexes. Set FUTEX_WAITERS if necessary so that
@@ -285,18 +268,12 @@ __pthread_mutex_timedlock (pthread_mutex_t *mutex,
assume_other_futex_waiters |= FUTEX_WAITERS;
/* Block using the futex. */
-#if (!defined __ASSUME_FUTEX_CLOCK_REALTIME \
- || !defined lll_futex_timed_wait_bitset)
- lll_futex_timed_wait (&mutex->__data.__lock, oldval,
- &rt, PTHREAD_ROBUST_MUTEX_PSHARED (mutex));
-#else
- int err = lll_futex_timed_wait_bitset (&mutex->__data.__lock,
- oldval, abstime, FUTEX_CLOCK_REALTIME,
+ int err = lll_futex_clock_wait_bitset (&mutex->__data.__lock,
+ oldval, clockid, abstime,
PTHREAD_ROBUST_MUTEX_PSHARED (mutex));
/* The futex call timed out. */
if (err == -ETIMEDOUT)
return -err;
-#endif
/* Reload current lock value. */
oldval = mutex->__data.__lock;
}
@@ -338,8 +315,14 @@ __pthread_mutex_timedlock (pthread_mutex_t *mutex,
case PTHREAD_MUTEX_PI_ROBUST_NORMAL_NP:
case PTHREAD_MUTEX_PI_ROBUST_ADAPTIVE_NP:
{
- int kind = mutex->__data.__kind & PTHREAD_MUTEX_KIND_MASK_NP;
- int robust = mutex->__data.__kind & PTHREAD_MUTEX_ROBUST_NORMAL_NP;
+ int kind, robust;
+ {
+ /* See concurrency notes regarding __kind in struct __pthread_mutex_s
+ in sysdeps/nptl/bits/thread-shared-types.h. */
+ int mutex_kind = atomic_load_relaxed (&(mutex->__data.__kind));
+ kind = mutex_kind & PTHREAD_MUTEX_KIND_MASK_NP;
+ robust = mutex_kind & PTHREAD_MUTEX_ROBUST_NORMAL_NP;
+ }
if (robust)
{
@@ -395,51 +378,29 @@ __pthread_mutex_timedlock (pthread_mutex_t *mutex,
int private = (robust
? PTHREAD_ROBUST_MUTEX_PSHARED (mutex)
: PTHREAD_MUTEX_PSHARED (mutex));
- INTERNAL_SYSCALL_DECL (__err);
-
- int e = INTERNAL_SYSCALL (futex, __err, 4, &mutex->__data.__lock,
- __lll_private_flag (FUTEX_LOCK_PI,
- private), 1,
- abstime);
- if (INTERNAL_SYSCALL_ERROR_P (e, __err))
+ int e = futex_lock_pi ((unsigned int *) &mutex->__data.__lock,
+ abstime, private);
+ if (e == ETIMEDOUT)
+ return ETIMEDOUT;
+ else if (e == ESRCH || e == EDEADLK)
{
- if (INTERNAL_SYSCALL_ERRNO (e, __err) == ETIMEDOUT)
- return ETIMEDOUT;
-
- if (INTERNAL_SYSCALL_ERRNO (e, __err) == ESRCH
- || INTERNAL_SYSCALL_ERRNO (e, __err) == EDEADLK)
- {
- assert (INTERNAL_SYSCALL_ERRNO (e, __err) != EDEADLK
- || (kind != PTHREAD_MUTEX_ERRORCHECK_NP
- && kind != PTHREAD_MUTEX_RECURSIVE_NP));
- /* ESRCH can happen only for non-robust PI mutexes where
- the owner of the lock died. */
- assert (INTERNAL_SYSCALL_ERRNO (e, __err) != ESRCH
- || !robust);
-
- /* Delay the thread until the timeout is reached.
- Then return ETIMEDOUT. */
- struct timespec reltime;
- struct timespec now;
-
- INTERNAL_SYSCALL (clock_gettime, __err, 2, CLOCK_REALTIME,
- &now);
- reltime.tv_sec = abstime->tv_sec - now.tv_sec;
- reltime.tv_nsec = abstime->tv_nsec - now.tv_nsec;
- if (reltime.tv_nsec < 0)
- {
- reltime.tv_nsec += 1000000000;
- --reltime.tv_sec;
- }
- if (reltime.tv_sec >= 0)
- while (__nanosleep_nocancel (&reltime, &reltime) != 0)
- continue;
-
- return ETIMEDOUT;
- }
-
- return INTERNAL_SYSCALL_ERRNO (e, __err);
+ assert (e != EDEADLK
+ || (kind != PTHREAD_MUTEX_ERRORCHECK_NP
+ && kind != PTHREAD_MUTEX_RECURSIVE_NP));
+ /* ESRCH can happen only for non-robust PI mutexes where
+ the owner of the lock died. */
+ assert (e != ESRCH || !robust);
+
+ /* Delay the thread until the timeout is reached. Then return
+ ETIMEDOUT. */
+ do
+ e = lll_timedwait (&(int){0}, 0, clockid, abstime,
+ private);
+ while (e != ETIMEDOUT);
+ return ETIMEDOUT;
}
+ else if (e != 0)
+ return e;
oldval = mutex->__data.__lock;
@@ -477,11 +438,8 @@ __pthread_mutex_timedlock (pthread_mutex_t *mutex,
/* This mutex is now not recoverable. */
mutex->__data.__count = 0;
- INTERNAL_SYSCALL_DECL (__err);
- INTERNAL_SYSCALL (futex, __err, 4, &mutex->__data.__lock,
- __lll_private_flag (FUTEX_UNLOCK_PI,
- PTHREAD_ROBUST_MUTEX_PSHARED (mutex)),
- 0, 0);
+ futex_unlock_pi ((unsigned int *) &mutex->__data.__lock,
+ PTHREAD_ROBUST_MUTEX_PSHARED (mutex));
/* To the kernel, this will be visible after the kernel has
acquired the mutex in the syscall. */
@@ -509,7 +467,10 @@ __pthread_mutex_timedlock (pthread_mutex_t *mutex,
case PTHREAD_MUTEX_PP_NORMAL_NP:
case PTHREAD_MUTEX_PP_ADAPTIVE_NP:
{
- int kind = mutex->__data.__kind & PTHREAD_MUTEX_KIND_MASK_NP;
+ /* See concurrency notes regarding __kind in struct __pthread_mutex_s
+ in sysdeps/nptl/bits/thread-shared-types.h. */
+ int kind = atomic_load_relaxed (&(mutex->__data.__kind))
+ & PTHREAD_MUTEX_KIND_MASK_NP;
oldval = mutex->__data.__lock;
@@ -576,21 +537,20 @@ __pthread_mutex_timedlock (pthread_mutex_t *mutex,
if (oldval != ceilval)
{
/* Reject invalid timeouts. */
- if (abstime->tv_nsec < 0 || abstime->tv_nsec >= 1000000000)
+ if (! valid_nanoseconds (abstime->tv_nsec))
{
result = EINVAL;
goto failpp;
}
- struct timeval tv;
struct timespec rt;
/* Get the current time. */
- (void) __gettimeofday (&tv, NULL);
+ __clock_gettime (CLOCK_REALTIME, &rt);
/* Compute relative timeout. */
- rt.tv_sec = abstime->tv_sec - tv.tv_sec;
- rt.tv_nsec = abstime->tv_nsec - tv.tv_usec * 1000;
+ rt.tv_sec = abstime->tv_sec - rt.tv_sec;
+ rt.tv_nsec = abstime->tv_nsec - rt.tv_nsec;
if (rt.tv_nsec < 0)
{
rt.tv_nsec += 1000000000;
@@ -637,4 +597,25 @@ __pthread_mutex_timedlock (pthread_mutex_t *mutex,
out:
return result;
}
+
+int
+__pthread_mutex_clocklock (pthread_mutex_t *mutex,
+ clockid_t clockid,
+ const struct timespec *abstime)
+{
+ if (__glibc_unlikely (!lll_futex_supported_clockid (clockid)))
+ return EINVAL;
+
+ LIBC_PROBE (mutex_clocklock_entry, 3, mutex, clockid, abstime);
+ return __pthread_mutex_clocklock_common (mutex, clockid, abstime);
+}
+weak_alias (__pthread_mutex_clocklock, pthread_mutex_clocklock)
+
+int
+__pthread_mutex_timedlock (pthread_mutex_t *mutex,
+ const struct timespec *abstime)
+{
+ LIBC_PROBE (mutex_timedlock_entry, 2, mutex, abstime);
+ return __pthread_mutex_clocklock_common (mutex, CLOCK_REALTIME, abstime);
+}
weak_alias (__pthread_mutex_timedlock, pthread_mutex_timedlock)
diff --git a/nptl/pthread_mutex_trylock.c b/nptl/pthread_mutex_trylock.c
index 7de61f4f68..d24bb58a8b 100644
--- a/nptl/pthread_mutex_trylock.c
+++ b/nptl/pthread_mutex_trylock.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
#include <stdlib.h>
#include "pthreadP.h"
#include <lowlevellock.h>
+#include <futex-internal.h>
#ifndef lll_trylock_elision
#define lll_trylock_elision(a,t) lll_trylock(a)
@@ -36,6 +37,8 @@ __pthread_mutex_trylock (pthread_mutex_t *mutex)
int oldval;
pid_t id = THREAD_GETMEM (THREAD_SELF, tid);
+ /* See concurrency notes regarding mutex type which is loaded from __kind
+ in struct __pthread_mutex_s in sysdeps/nptl/bits/thread-shared-types.h. */
switch (__builtin_expect (PTHREAD_MUTEX_TYPE_ELISION (mutex),
PTHREAD_MUTEX_TIMED_NP))
{
@@ -92,6 +95,9 @@ __pthread_mutex_trylock (pthread_mutex_t *mutex)
case PTHREAD_MUTEX_ROBUST_ADAPTIVE_NP:
THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending,
&mutex->__data.__list.__next);
+ /* We need to set op_pending before starting the operation. Also
+ see comments at ENQUEUE_MUTEX. */
+ __asm ("" ::: "memory");
oldval = mutex->__data.__lock;
do
@@ -117,10 +123,15 @@ __pthread_mutex_trylock (pthread_mutex_t *mutex)
/* But it is inconsistent unless marked otherwise. */
mutex->__data.__owner = PTHREAD_MUTEX_INCONSISTENT;
+ /* We must not enqueue the mutex before we have acquired it.
+ Also see comments at ENQUEUE_MUTEX. */
+ __asm ("" ::: "memory");
ENQUEUE_MUTEX (mutex);
+ /* We need to clear op_pending after we enqueue the mutex. */
+ __asm ("" ::: "memory");
THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
- /* Note that we deliberately exist here. If we fall
+ /* Note that we deliberately exit here. If we fall
through to the end of the function __nusers would be
incremented which is not correct because the old
owner has to be discounted. */
@@ -133,6 +144,8 @@ __pthread_mutex_trylock (pthread_mutex_t *mutex)
int kind = PTHREAD_MUTEX_TYPE (mutex);
if (kind == PTHREAD_MUTEX_ROBUST_ERRORCHECK_NP)
{
+ /* We do not need to ensure ordering wrt another memory
+ access. Also see comments at ENQUEUE_MUTEX. */
THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending,
NULL);
return EDEADLK;
@@ -140,6 +153,8 @@ __pthread_mutex_trylock (pthread_mutex_t *mutex)
if (kind == PTHREAD_MUTEX_ROBUST_RECURSIVE_NP)
{
+ /* We do not need to ensure ordering wrt another memory
+ access. */
THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending,
NULL);
@@ -158,6 +173,9 @@ __pthread_mutex_trylock (pthread_mutex_t *mutex)
id, 0);
if (oldval != 0 && (oldval & FUTEX_OWNER_DIED) == 0)
{
+ /* We haven't acquired the lock as it is already acquired by
+ another owner. We do not need to ensure ordering wrt another
+ memory access. */
THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
return EBUSY;
@@ -171,13 +189,20 @@ __pthread_mutex_trylock (pthread_mutex_t *mutex)
if (oldval == id)
lll_unlock (mutex->__data.__lock,
PTHREAD_ROBUST_MUTEX_PSHARED (mutex));
+ /* FIXME This violates the mutex destruction requirements. See
+ __pthread_mutex_unlock_full. */
THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
return ENOTRECOVERABLE;
}
}
while ((oldval & FUTEX_OWNER_DIED) != 0);
+ /* We must not enqueue the mutex before we have acquired it.
+ Also see comments at ENQUEUE_MUTEX. */
+ __asm ("" ::: "memory");
ENQUEUE_MUTEX (mutex);
+ /* We need to clear op_pending after we enqueue the mutex. */
+ __asm ("" ::: "memory");
THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
mutex->__data.__owner = id;
@@ -199,14 +224,25 @@ __pthread_mutex_trylock (pthread_mutex_t *mutex)
case PTHREAD_MUTEX_PI_ROBUST_NORMAL_NP:
case PTHREAD_MUTEX_PI_ROBUST_ADAPTIVE_NP:
{
- int kind = mutex->__data.__kind & PTHREAD_MUTEX_KIND_MASK_NP;
- int robust = mutex->__data.__kind & PTHREAD_MUTEX_ROBUST_NORMAL_NP;
+ int kind, robust;
+ {
+ /* See concurrency notes regarding __kind in struct __pthread_mutex_s
+ in sysdeps/nptl/bits/thread-shared-types.h. */
+ int mutex_kind = atomic_load_relaxed (&(mutex->__data.__kind));
+ kind = mutex_kind & PTHREAD_MUTEX_KIND_MASK_NP;
+ robust = mutex_kind & PTHREAD_MUTEX_ROBUST_NORMAL_NP;
+ }
if (robust)
- /* Note: robust PI futexes are signaled by setting bit 0. */
- THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending,
- (void *) (((uintptr_t) &mutex->__data.__list.__next)
- | 1));
+ {
+ /* Note: robust PI futexes are signaled by setting bit 0. */
+ THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending,
+ (void *) (((uintptr_t) &mutex->__data.__list.__next)
+ | 1));
+ /* We need to set op_pending before starting the operation. Also
+ see comments at ENQUEUE_MUTEX. */
+ __asm ("" ::: "memory");
+ }
oldval = mutex->__data.__lock;
@@ -215,12 +251,16 @@ __pthread_mutex_trylock (pthread_mutex_t *mutex)
{
if (kind == PTHREAD_MUTEX_ERRORCHECK_NP)
{
+ /* We do not need to ensure ordering wrt another memory
+ access. */
THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
return EDEADLK;
}
if (kind == PTHREAD_MUTEX_RECURSIVE_NP)
{
+ /* We do not need to ensure ordering wrt another memory
+ access. */
THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
/* Just bump the counter. */
@@ -242,6 +282,9 @@ __pthread_mutex_trylock (pthread_mutex_t *mutex)
{
if ((oldval & FUTEX_OWNER_DIED) == 0)
{
+ /* We haven't acquired the lock as it is already acquired by
+ another owner. We do not need to ensure ordering wrt another
+ memory access. */
THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
return EBUSY;
@@ -262,6 +305,9 @@ __pthread_mutex_trylock (pthread_mutex_t *mutex)
if (INTERNAL_SYSCALL_ERROR_P (e, __err)
&& INTERNAL_SYSCALL_ERRNO (e, __err) == EWOULDBLOCK)
{
+ /* The kernel has not yet finished the mutex owner death.
+ We do not need to ensure ordering wrt another memory
+ access. */
THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
return EBUSY;
@@ -279,7 +325,12 @@ __pthread_mutex_trylock (pthread_mutex_t *mutex)
/* But it is inconsistent unless marked otherwise. */
mutex->__data.__owner = PTHREAD_MUTEX_INCONSISTENT;
+ /* We must not enqueue the mutex before we have acquired it.
+ Also see comments at ENQUEUE_MUTEX. */
+ __asm ("" ::: "memory");
ENQUEUE_MUTEX (mutex);
+ /* We need to clear op_pending after we enqueue the mutex. */
+ __asm ("" ::: "memory");
THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
/* Note that we deliberately exit here. If we fall
@@ -296,19 +347,23 @@ __pthread_mutex_trylock (pthread_mutex_t *mutex)
/* This mutex is now not recoverable. */
mutex->__data.__count = 0;
- INTERNAL_SYSCALL_DECL (__err);
- INTERNAL_SYSCALL (futex, __err, 4, &mutex->__data.__lock,
- __lll_private_flag (FUTEX_UNLOCK_PI,
- PTHREAD_ROBUST_MUTEX_PSHARED (mutex)),
- 0, 0);
+ futex_unlock_pi ((unsigned int *) &mutex->__data.__lock,
+ PTHREAD_ROBUST_MUTEX_PSHARED (mutex));
+ /* To the kernel, this will be visible after the kernel has
+ acquired the mutex in the syscall. */
THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
return ENOTRECOVERABLE;
}
if (robust)
{
+ /* We must not enqueue the mutex before we have acquired it.
+ Also see comments at ENQUEUE_MUTEX. */
+ __asm ("" ::: "memory");
ENQUEUE_MUTEX_PI (mutex);
+ /* We need to clear op_pending after we enqueue the mutex. */
+ __asm ("" ::: "memory");
THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
}
@@ -325,7 +380,10 @@ __pthread_mutex_trylock (pthread_mutex_t *mutex)
case PTHREAD_MUTEX_PP_NORMAL_NP:
case PTHREAD_MUTEX_PP_ADAPTIVE_NP:
{
- int kind = mutex->__data.__kind & PTHREAD_MUTEX_KIND_MASK_NP;
+ /* See concurrency notes regarding __kind in struct __pthread_mutex_s
+ in sysdeps/nptl/bits/thread-shared-types.h. */
+ int kind = atomic_load_relaxed (&(mutex->__data.__kind))
+ & PTHREAD_MUTEX_KIND_MASK_NP;
oldval = mutex->__data.__lock;
diff --git a/nptl/pthread_mutex_unlock.c b/nptl/pthread_mutex_unlock.c
index 9ea62943b7..53f8b868e4 100644
--- a/nptl/pthread_mutex_unlock.c
+++ b/nptl/pthread_mutex_unlock.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
@@ -22,6 +22,7 @@
#include "pthreadP.h"
#include <lowlevellock.h>
#include <stap-probe.h>
+#include <futex-internal.h>
#ifndef lll_unlock_elision
#define lll_unlock_elision(a,b,c) ({ lll_unlock (a,c); 0; })
@@ -35,9 +36,12 @@ int
attribute_hidden
__pthread_mutex_unlock_usercnt (pthread_mutex_t *mutex, int decr)
{
+ /* See concurrency notes regarding mutex type which is loaded from __kind
+ in struct __pthread_mutex_s in sysdeps/nptl/bits/thread-shared-types.h. */
int type = PTHREAD_MUTEX_TYPE_ELISION (mutex);
- if (__builtin_expect (type &
- ~(PTHREAD_MUTEX_KIND_MASK_NP|PTHREAD_MUTEX_ELISION_FLAGS_NP), 0))
+ if (__builtin_expect (type
+ & ~(PTHREAD_MUTEX_KIND_MASK_NP
+ |PTHREAD_MUTEX_ELISION_FLAGS_NP), 0))
return __pthread_mutex_unlock_full (mutex, decr);
if (__builtin_expect (type, PTHREAD_MUTEX_TIMED_NP)
@@ -222,13 +226,19 @@ __pthread_mutex_unlock_full (pthread_mutex_t *mutex, int decr)
/* If the previous owner died and the caller did not succeed in
making the state consistent, mark the mutex as unrecoverable
and make all waiters. */
- if ((mutex->__data.__kind & PTHREAD_MUTEX_ROBUST_NORMAL_NP) != 0
+ /* See concurrency notes regarding __kind in struct __pthread_mutex_s
+ in sysdeps/nptl/bits/thread-shared-types.h. */
+ if ((atomic_load_relaxed (&(mutex->__data.__kind))
+ & PTHREAD_MUTEX_ROBUST_NORMAL_NP) != 0
&& __builtin_expect (mutex->__data.__owner
== PTHREAD_MUTEX_INCONSISTENT, 0))
pi_notrecoverable:
newowner = PTHREAD_MUTEX_NOTRECOVERABLE;
- if ((mutex->__data.__kind & PTHREAD_MUTEX_ROBUST_NORMAL_NP) != 0)
+ /* See concurrency notes regarding __kind in struct __pthread_mutex_s
+ in sysdeps/nptl/bits/thread-shared-types.h. */
+ if ((atomic_load_relaxed (&(mutex->__data.__kind))
+ & PTHREAD_MUTEX_ROBUST_NORMAL_NP) != 0)
{
continue_pi_robust:
/* Remove mutex from the list.
@@ -251,7 +261,10 @@ __pthread_mutex_unlock_full (pthread_mutex_t *mutex, int decr)
/* Unlock. Load all necessary mutex data before releasing the mutex
to not violate the mutex destruction requirements (see
lll_unlock). */
- int robust = mutex->__data.__kind & PTHREAD_MUTEX_ROBUST_NORMAL_NP;
+ /* See concurrency notes regarding __kind in struct __pthread_mutex_s
+ in sysdeps/nptl/bits/thread-shared-types.h. */
+ int robust = atomic_load_relaxed (&(mutex->__data.__kind))
+ & PTHREAD_MUTEX_ROBUST_NORMAL_NP;
private = (robust
? PTHREAD_ROBUST_MUTEX_PSHARED (mutex)
: PTHREAD_MUTEX_PSHARED (mutex));
@@ -265,9 +278,8 @@ __pthread_mutex_unlock_full (pthread_mutex_t *mutex, int decr)
if (((l & FUTEX_WAITERS) != 0)
|| (l != THREAD_GETMEM (THREAD_SELF, tid)))
{
- INTERNAL_SYSCALL_DECL (__err);
- INTERNAL_SYSCALL (futex, __err, 2, &mutex->__data.__lock,
- __lll_private_flag (FUTEX_UNLOCK_PI, private));
+ futex_unlock_pi ((unsigned int *) &mutex->__data.__lock,
+ private);
break;
}
}
diff --git a/nptl/pthread_mutexattr_destroy.c b/nptl/pthread_mutexattr_destroy.c
index ac3b8152ff..bd63429c08 100644
--- a/nptl/pthread_mutexattr_destroy.c
+++ b/nptl/pthread_mutexattr_destroy.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthreadP.h>
diff --git a/nptl/pthread_mutexattr_getprioceiling.c b/nptl/pthread_mutexattr_getprioceiling.c
index 5fe34a405d..f8627ce989 100644
--- a/nptl/pthread_mutexattr_getprioceiling.c
+++ b/nptl/pthread_mutexattr_getprioceiling.c
@@ -1,5 +1,5 @@
/* Get priority ceiling setting from pthread_mutexattr_t.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthreadP.h>
#include <atomic.h>
diff --git a/nptl/pthread_mutexattr_getprotocol.c b/nptl/pthread_mutexattr_getprotocol.c
index 1290aae642..11222e1f0f 100644
--- a/nptl/pthread_mutexattr_getprotocol.c
+++ b/nptl/pthread_mutexattr_getprotocol.c
@@ -1,5 +1,5 @@
/* Get priority protocol setting from pthread_mutexattr_t.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthreadP.h>
diff --git a/nptl/pthread_mutexattr_getpshared.c b/nptl/pthread_mutexattr_getpshared.c
index 0b52782489..7187229ef9 100644
--- a/nptl/pthread_mutexattr_getpshared.c
+++ b/nptl/pthread_mutexattr_getpshared.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthreadP.h>
diff --git a/nptl/pthread_mutexattr_getrobust.c b/nptl/pthread_mutexattr_getrobust.c
index 1acb7ac9bf..736f54cd43 100644
--- a/nptl/pthread_mutexattr_getrobust.c
+++ b/nptl/pthread_mutexattr_getrobust.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthreadP.h>
diff --git a/nptl/pthread_mutexattr_gettype.c b/nptl/pthread_mutexattr_gettype.c
index cfe690388b..6adb2a6fd9 100644
--- a/nptl/pthread_mutexattr_gettype.c
+++ b/nptl/pthread_mutexattr_gettype.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthreadP.h>
diff --git a/nptl/pthread_mutexattr_init.c b/nptl/pthread_mutexattr_init.c
index adc6485c8f..48844ad51f 100644
--- a/nptl/pthread_mutexattr_init.c
+++ b/nptl/pthread_mutexattr_init.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <pthreadP.h>
diff --git a/nptl/pthread_mutexattr_setprioceiling.c b/nptl/pthread_mutexattr_setprioceiling.c
index a605f59711..4288a630dd 100644
--- a/nptl/pthread_mutexattr_setprioceiling.c
+++ b/nptl/pthread_mutexattr_setprioceiling.c
@@ -1,5 +1,5 @@
/* Change priority ceiling setting in pthread_mutexattr_t.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthreadP.h>
diff --git a/nptl/pthread_mutexattr_setprotocol.c b/nptl/pthread_mutexattr_setprotocol.c
index 5f74a0e55c..6c37a79782 100644
--- a/nptl/pthread_mutexattr_setprotocol.c
+++ b/nptl/pthread_mutexattr_setprotocol.c
@@ -1,5 +1,5 @@
/* Change priority protocol setting in pthread_mutexattr_t.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthreadP.h>
diff --git a/nptl/pthread_mutexattr_setpshared.c b/nptl/pthread_mutexattr_setpshared.c
index a4025a6303..7b24c7abd3 100644
--- a/nptl/pthread_mutexattr_setpshared.c
+++ b/nptl/pthread_mutexattr_setpshared.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthreadP.h>
diff --git a/nptl/pthread_mutexattr_setrobust.c b/nptl/pthread_mutexattr_setrobust.c
index f8aecf8507..d66919df9b 100644
--- a/nptl/pthread_mutexattr_setrobust.c
+++ b/nptl/pthread_mutexattr_setrobust.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthreadP.h>
diff --git a/nptl/pthread_mutexattr_settype.c b/nptl/pthread_mutexattr_settype.c
index 7d36cc3b27..52a6ec08dd 100644
--- a/nptl/pthread_mutexattr_settype.c
+++ b/nptl/pthread_mutexattr_settype.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthreadP.h>
diff --git a/nptl/pthread_once.c b/nptl/pthread_once.c
index 1653226286..6c06ccc64f 100644
--- a/nptl/pthread_once.c
+++ b/nptl/pthread_once.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "pthreadP.h"
#include <futex-internal.h>
diff --git a/nptl/pthread_rwlock_clockrdlock.c b/nptl/pthread_rwlock_clockrdlock.c
new file mode 100644
index 0000000000..36e369442d
--- /dev/null
+++ b/nptl/pthread_rwlock_clockrdlock.c
@@ -0,0 +1,28 @@
+/* Implement pthread_rwlock_clockrdlock.
+
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include "pthread_rwlock_common.c"
+
+/* See pthread_rwlock_common.c. */
+int
+pthread_rwlock_clockrdlock (pthread_rwlock_t *rwlock, clockid_t clockid,
+ const struct timespec *abstime)
+{
+ return __pthread_rwlock_rdlock_full (rwlock, clockid, abstime);
+}
diff --git a/nptl/pthread_rwlock_clockwrlock.c b/nptl/pthread_rwlock_clockwrlock.c
new file mode 100644
index 0000000000..20b08fbc83
--- /dev/null
+++ b/nptl/pthread_rwlock_clockwrlock.c
@@ -0,0 +1,28 @@
+/* Implement pthread_rwlock_clockwrlock.
+
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include "pthread_rwlock_common.c"
+
+/* See pthread_rwlock_common.c. */
+int
+pthread_rwlock_clockwrlock (pthread_rwlock_t *rwlock, clockid_t clockid,
+ const struct timespec *abstime)
+{
+ return __pthread_rwlock_wrlock_full (rwlock, clockid, abstime);
+}
diff --git a/nptl/pthread_rwlock_common.c b/nptl/pthread_rwlock_common.c
index a290d08332..9c05e03a09 100644
--- a/nptl/pthread_rwlock_common.c
+++ b/nptl/pthread_rwlock_common.c
@@ -1,5 +1,5 @@
/* POSIX reader--writer lock: core parts.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sysdep.h>
@@ -24,6 +24,7 @@
#include <stap-probe.h>
#include <atomic.h>
#include <futex-internal.h>
+#include <time.h>
/* A reader--writer lock that fulfills the POSIX requirements (but operations
@@ -34,7 +35,7 @@
A thread is allowed to acquire a read lock recursively (i.e., have rdlock
critical sections that overlap in sequenced-before) unless the kind of the
- rwlock is set to PTHREAD_RWLOCK_PREFER_WRITERS_NONRECURSIVE_NP.
+ rwlock is set to PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP.
This lock is built so that workloads of mostly readers can be executed with
low runtime overheads. This matches that the default kind of the lock is
@@ -46,7 +47,7 @@
An uncontended write lock acquisition is as fast as for a normal
exclusive mutex but writer contention is somewhat more costly due to
keeping track of the exact number of writers. If the rwlock kind requests
- writers to be preferred (i.e., PTHREAD_RWLOCK_PREFER_WRITERS_NP or the
+ writers to be preferred (i.e., PTHREAD_RWLOCK_PREFER_WRITER_NP or the
no-recursive-readers variant of it), then writer--to--writer lock ownership
hand-over is fairly fast and bypasses lock acquisition attempts by readers.
The costs of lock ownership transfer between readers and writers vary. If
@@ -251,7 +252,7 @@ __pthread_rwlock_rdunlock (pthread_rwlock_t *rwlock)
the first reader's store to __wrphase_futex (or a later value) if
the writer observes that a write phase has been started. */
if (atomic_compare_exchange_weak_release (&rwlock->__data.__readers,
- &r, rnew))
+ &r, rnew))
break;
/* TODO Back-off. */
}
@@ -278,14 +279,25 @@ __pthread_rwlock_rdunlock (pthread_rwlock_t *rwlock)
static __always_inline int
__pthread_rwlock_rdlock_full (pthread_rwlock_t *rwlock,
+ clockid_t clockid,
const struct timespec *abstime)
{
unsigned int r;
+ /* Make sure any passed in clockid and timeout value are valid. Note that
+ the previous implementation assumed that this check *must* not be
+ performed if there would in fact be no blocking; however, POSIX only
+ requires that "the validity of the abstime parameter need not be checked
+ if the lock can be immediately acquired" (i.e., we need not but may check
+ it). */
+ if (abstime && __glibc_unlikely (!futex_abstimed_supported_clockid (clockid)
+ || ! valid_nanoseconds (abstime->tv_nsec)))
+ return EINVAL;
+
/* Make sure we are not holding the rwlock as a writer. This is a deadlock
situation we recognize and report. */
if (__glibc_unlikely (atomic_load_relaxed (&rwlock->__data.__cur_writer)
- == THREAD_GETMEM (THREAD_SELF, tid)))
+ == THREAD_GETMEM (THREAD_SELF, tid)))
return EDEADLK;
/* If we prefer writers, recursive rdlock is disallowed, we are in a read
@@ -299,9 +311,9 @@ __pthread_rwlock_rdlock_full (pthread_rwlock_t *rwlock,
if (rwlock->__data.__flags == PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP)
{
r = atomic_load_relaxed (&rwlock->__data.__readers);
- while (((r & PTHREAD_RWLOCK_WRPHASE) == 0)
- && ((r & PTHREAD_RWLOCK_WRLOCKED) != 0)
- && ((r >> PTHREAD_RWLOCK_READER_SHIFT) > 0))
+ while ((r & PTHREAD_RWLOCK_WRPHASE) == 0
+ && (r & PTHREAD_RWLOCK_WRLOCKED) != 0
+ && (r >> PTHREAD_RWLOCK_READER_SHIFT) > 0)
{
/* TODO Spin first. */
/* Try setting the flag signaling that we are waiting without having
@@ -314,12 +326,12 @@ __pthread_rwlock_rdlock_full (pthread_rwlock_t *rwlock,
harmless because the flag is just about the state of
__readers, and all threads set the flag under the same
conditions. */
- while ((atomic_load_relaxed (&rwlock->__data.__readers)
- & PTHREAD_RWLOCK_RWAITING) != 0)
+ while (((r = atomic_load_relaxed (&rwlock->__data.__readers))
+ & PTHREAD_RWLOCK_RWAITING) != 0)
{
int private = __pthread_rwlock_get_private (rwlock);
int err = futex_abstimed_wait (&rwlock->__data.__readers,
- r, abstime, private);
+ r, clockid, abstime, private);
/* We ignore EAGAIN and EINTR. On time-outs, we can just
return because we don't need to clean up anything. */
if (err == ETIMEDOUT)
@@ -338,8 +350,9 @@ __pthread_rwlock_rdlock_full (pthread_rwlock_t *rwlock,
expected value for future operations. Acquire MO so we synchronize with
prior writers as well as the last reader of the previous read phase (see
below). */
- r = atomic_fetch_add_acquire (&rwlock->__data.__readers,
- (1 << PTHREAD_RWLOCK_READER_SHIFT)) + (1 << PTHREAD_RWLOCK_READER_SHIFT);
+ r = (atomic_fetch_add_acquire (&rwlock->__data.__readers,
+ (1 << PTHREAD_RWLOCK_READER_SHIFT))
+ + (1 << PTHREAD_RWLOCK_READER_SHIFT));
/* Check whether there is an overflow in the number of readers. We assume
that the total number of threads is less than half the maximum number
@@ -359,8 +372,9 @@ __pthread_rwlock_rdlock_full (pthread_rwlock_t *rwlock,
/* Relaxed MO is okay because we just want to undo our registration and
cannot have changed the rwlock state substantially if the CAS
succeeds. */
- if (atomic_compare_exchange_weak_relaxed (&rwlock->__data.__readers, &r,
- r - (1 << PTHREAD_RWLOCK_READER_SHIFT)))
+ if (atomic_compare_exchange_weak_relaxed
+ (&rwlock->__data.__readers,
+ &r, r - (1 << PTHREAD_RWLOCK_READER_SHIFT)))
return EAGAIN;
}
@@ -378,15 +392,15 @@ __pthread_rwlock_rdlock_full (pthread_rwlock_t *rwlock,
/* Otherwise, if we were in a write phase (states #6 or #8), we must wait
for explicit hand-over of the read phase; the only exception is if we
can start a read phase if there is no primary writer currently. */
- while (((r & PTHREAD_RWLOCK_WRPHASE) != 0)
- && ((r & PTHREAD_RWLOCK_WRLOCKED) == 0))
+ while ((r & PTHREAD_RWLOCK_WRPHASE) != 0
+ && (r & PTHREAD_RWLOCK_WRLOCKED) == 0)
{
- /* Try to enter a read phase: If the CAS below succeeds, we have
+ /* Try to enter a read phase: If the CAS below succeeds, we have
ownership; if it fails, we will simply retry and reassess the
situation.
Acquire MO so we synchronize with prior writers. */
if (atomic_compare_exchange_weak_acquire (&rwlock->__data.__readers, &r,
- r ^ PTHREAD_RWLOCK_WRPHASE))
+ r ^ PTHREAD_RWLOCK_WRPHASE))
{
/* We started the read phase, so we are also responsible for
updating the write-phase futex. Relaxed MO is sufficient.
@@ -397,7 +411,7 @@ __pthread_rwlock_rdlock_full (pthread_rwlock_t *rwlock,
(but we can pretend to do the setting and unsetting of WRLOCKED
atomically, and thus can skip this step). */
if ((atomic_exchange_relaxed (&rwlock->__data.__wrphase_futex, 0)
- & PTHREAD_RWLOCK_FUTEX_USED) != 0)
+ & PTHREAD_RWLOCK_FUTEX_USED) != 0)
{
int private = __pthread_rwlock_get_private (rwlock);
futex_wake (&rwlock->__data.__wrphase_futex, INT_MAX, private);
@@ -435,16 +449,17 @@ __pthread_rwlock_rdlock_full (pthread_rwlock_t *rwlock,
for (;;)
{
while (((wpf = atomic_load_relaxed (&rwlock->__data.__wrphase_futex))
- | PTHREAD_RWLOCK_FUTEX_USED) == (1 | PTHREAD_RWLOCK_FUTEX_USED))
+ | PTHREAD_RWLOCK_FUTEX_USED) == (1 | PTHREAD_RWLOCK_FUTEX_USED))
{
int private = __pthread_rwlock_get_private (rwlock);
if (((wpf & PTHREAD_RWLOCK_FUTEX_USED) == 0)
- && !atomic_compare_exchange_weak_relaxed
+ && (!atomic_compare_exchange_weak_relaxed
(&rwlock->__data.__wrphase_futex,
- &wpf, wpf | PTHREAD_RWLOCK_FUTEX_USED))
+ &wpf, wpf | PTHREAD_RWLOCK_FUTEX_USED)))
continue;
int err = futex_abstimed_wait (&rwlock->__data.__wrphase_futex,
- 1 | PTHREAD_RWLOCK_FUTEX_USED, abstime, private);
+ 1 | PTHREAD_RWLOCK_FUTEX_USED,
+ clockid, abstime, private);
if (err == ETIMEDOUT)
{
/* If we timed out, we need to unregister. If no read phase
@@ -477,8 +492,8 @@ __pthread_rwlock_rdlock_full (pthread_rwlock_t *rwlock,
in this case and thus make the spin-waiting we need
unnecessarily expensive. */
while ((atomic_load_relaxed (&rwlock->__data.__wrphase_futex)
- | PTHREAD_RWLOCK_FUTEX_USED)
- == (1 | PTHREAD_RWLOCK_FUTEX_USED))
+ | PTHREAD_RWLOCK_FUTEX_USED)
+ == (1 | PTHREAD_RWLOCK_FUTEX_USED))
{
/* TODO Back-off? */
}
@@ -495,7 +510,7 @@ __pthread_rwlock_rdlock_full (pthread_rwlock_t *rwlock,
release of the writer, and so that we observe a recent value of
__wrphase_futex (see below). */
if ((atomic_load_acquire (&rwlock->__data.__readers)
- & PTHREAD_RWLOCK_WRPHASE) == 0)
+ & PTHREAD_RWLOCK_WRPHASE) == 0)
/* We are in a read phase now, so the least recent modification of
__wrphase_futex we can read from is the store by the writer
with value 1. Thus, only now we can assume that if we observe
@@ -516,8 +531,9 @@ __pthread_rwlock_wrunlock (pthread_rwlock_t *rwlock)
atomic_store_relaxed (&rwlock->__data.__cur_writer, 0);
/* Disable waiting by writers. We will wake up after we decided how to
proceed. */
- bool wake_writers = ((atomic_exchange_relaxed
- (&rwlock->__data.__writers_futex, 0) & PTHREAD_RWLOCK_FUTEX_USED) != 0);
+ bool wake_writers
+ = ((atomic_exchange_relaxed (&rwlock->__data.__writers_futex, 0)
+ & PTHREAD_RWLOCK_FUTEX_USED) != 0);
if (rwlock->__data.__flags != PTHREAD_RWLOCK_PREFER_READER_NP)
{
@@ -529,8 +545,8 @@ __pthread_rwlock_wrunlock (pthread_rwlock_t *rwlock)
synchronize with us and thus can take over our view of
__readers (including, for example, whether we are in a write
phase or not). */
- if (atomic_compare_exchange_weak_release (&rwlock->__data.__writers,
- &w, w | PTHREAD_RWLOCK_WRHANDOVER))
+ if (atomic_compare_exchange_weak_release
+ (&rwlock->__data.__writers, &w, w | PTHREAD_RWLOCK_WRHANDOVER))
/* Another writer will take over. */
goto done;
/* TODO Back-off. */
@@ -543,9 +559,10 @@ __pthread_rwlock_wrunlock (pthread_rwlock_t *rwlock)
unsigned int r = atomic_load_relaxed (&rwlock->__data.__readers);
/* Release MO so that subsequent readers or writers synchronize with us. */
while (!atomic_compare_exchange_weak_release
- (&rwlock->__data.__readers, &r, (r ^ PTHREAD_RWLOCK_WRLOCKED)
- ^ ((r >> PTHREAD_RWLOCK_READER_SHIFT) == 0 ? 0
- : PTHREAD_RWLOCK_WRPHASE)))
+ (&rwlock->__data.__readers, &r,
+ ((r ^ PTHREAD_RWLOCK_WRLOCKED)
+ ^ ((r >> PTHREAD_RWLOCK_READER_SHIFT) == 0 ? 0
+ : PTHREAD_RWLOCK_WRPHASE))))
{
/* TODO Back-off. */
}
@@ -569,12 +586,23 @@ __pthread_rwlock_wrunlock (pthread_rwlock_t *rwlock)
static __always_inline int
__pthread_rwlock_wrlock_full (pthread_rwlock_t *rwlock,
+ clockid_t clockid,
const struct timespec *abstime)
{
+ /* Make sure any passed in clockid and timeout value are valid. Note that
+ the previous implementation assumed that this check *must* not be
+ performed if there would in fact be no blocking; however, POSIX only
+ requires that "the validity of the abstime parameter need not be checked
+ if the lock can be immediately acquired" (i.e., we need not but may check
+ it). */
+ if (abstime && __glibc_unlikely (!futex_abstimed_supported_clockid (clockid)
+ || ! valid_nanoseconds (abstime->tv_nsec)))
+ return EINVAL;
+
/* Make sure we are not holding the rwlock as a writer. This is a deadlock
situation we recognize and report. */
if (__glibc_unlikely (atomic_load_relaxed (&rwlock->__data.__cur_writer)
- == THREAD_GETMEM (THREAD_SELF, tid)))
+ == THREAD_GETMEM (THREAD_SELF, tid)))
return EDEADLK;
/* First we try to acquire the role of primary writer by setting WRLOCKED;
@@ -593,12 +621,12 @@ __pthread_rwlock_wrlock_full (pthread_rwlock_t *rwlock,
this could be less scalable if readers arrive and leave frequently. */
bool may_share_futex_used_flag = false;
unsigned int r = atomic_fetch_or_acquire (&rwlock->__data.__readers,
- PTHREAD_RWLOCK_WRLOCKED);
+ PTHREAD_RWLOCK_WRLOCKED);
if (__glibc_unlikely ((r & PTHREAD_RWLOCK_WRLOCKED) != 0))
{
/* There is another primary writer. */
- bool prefer_writer =
- (rwlock->__data.__flags != PTHREAD_RWLOCK_PREFER_READER_NP);
+ bool prefer_writer
+ = (rwlock->__data.__flags != PTHREAD_RWLOCK_PREFER_READER_NP);
if (prefer_writer)
{
/* We register as a waiting writer, so that we can make use of
@@ -617,8 +645,7 @@ __pthread_rwlock_wrlock_full (pthread_rwlock_t *rwlock,
/* Try to become the primary writer or retry. Acquire MO as in
the fetch_or above. */
if (atomic_compare_exchange_weak_acquire
- (&rwlock->__data.__readers, &r,
- r | PTHREAD_RWLOCK_WRLOCKED))
+ (&rwlock->__data.__readers, &r, r | PTHREAD_RWLOCK_WRLOCKED))
{
if (prefer_writer)
{
@@ -633,8 +660,7 @@ __pthread_rwlock_wrlock_full (pthread_rwlock_t *rwlock,
__writers).
??? Perhaps this is not strictly necessary for
reasons we do not yet know of. */
- atomic_fetch_add_relaxed (&rwlock->__data.__writers,
- -1);
+ atomic_fetch_add_relaxed (&rwlock->__data.__writers, -1);
}
break;
}
@@ -646,8 +672,7 @@ __pthread_rwlock_wrlock_full (pthread_rwlock_t *rwlock,
succeed, we own WRLOCKED. */
if (prefer_writer)
{
- unsigned int w = atomic_load_relaxed
- (&rwlock->__data.__writers);
+ unsigned int w = atomic_load_relaxed (&rwlock->__data.__writers);
if ((w & PTHREAD_RWLOCK_WRHANDOVER) != 0)
{
/* Acquire MO is required here so that we synchronize with
@@ -677,13 +702,13 @@ __pthread_rwlock_wrlock_full (pthread_rwlock_t *rwlock,
/* We did not acquire WRLOCKED nor were able to use writer--writer
hand-over, so we block on __writers_futex. */
int private = __pthread_rwlock_get_private (rwlock);
- unsigned int wf = atomic_load_relaxed
- (&rwlock->__data.__writers_futex);
+ unsigned int wf
+ = atomic_load_relaxed (&rwlock->__data.__writers_futex);
if (((wf & ~(unsigned int) PTHREAD_RWLOCK_FUTEX_USED) != 1)
|| ((wf != (1 | PTHREAD_RWLOCK_FUTEX_USED))
- && !atomic_compare_exchange_weak_relaxed
+ && (!atomic_compare_exchange_weak_relaxed
(&rwlock->__data.__writers_futex, &wf,
- 1 | PTHREAD_RWLOCK_FUTEX_USED)))
+ 1 | PTHREAD_RWLOCK_FUTEX_USED))))
{
/* If we cannot block on __writers_futex because there is no
primary writer, or we cannot set PTHREAD_RWLOCK_FUTEX_USED,
@@ -704,7 +729,8 @@ __pthread_rwlock_wrlock_full (pthread_rwlock_t *rwlock,
in this group. */
may_share_futex_used_flag = true;
int err = futex_abstimed_wait (&rwlock->__data.__writers_futex,
- 1 | PTHREAD_RWLOCK_FUTEX_USED, abstime, private);
+ 1 | PTHREAD_RWLOCK_FUTEX_USED,
+ clockid, abstime, private);
if (err == ETIMEDOUT)
{
if (prefer_writer)
@@ -716,10 +742,10 @@ __pthread_rwlock_wrlock_full (pthread_rwlock_t *rwlock,
that this happened before the timeout; see
pthread_rwlock_rdlock_full for the full reasoning.)
Also see the similar code above. */
- unsigned int w = atomic_load_relaxed
- (&rwlock->__data.__writers);
+ unsigned int w
+ = atomic_load_relaxed (&rwlock->__data.__writers);
while (!atomic_compare_exchange_weak_acquire
- (&rwlock->__data.__writers, &w,
+ (&rwlock->__data.__writers, &w,
(w == PTHREAD_RWLOCK_WRHANDOVER + 1 ? 0 : w - 1)))
{
/* TODO Back-off. */
@@ -751,7 +777,8 @@ __pthread_rwlock_wrlock_full (pthread_rwlock_t *rwlock,
modifications of __readers ensures that this store happens after the
store of value 0 by the previous primary writer. */
atomic_store_relaxed (&rwlock->__data.__writers_futex,
- 1 | (may_share_futex_used_flag ? PTHREAD_RWLOCK_FUTEX_USED : 0));
+ 1 | (may_share_futex_used_flag
+ ? PTHREAD_RWLOCK_FUTEX_USED : 0));
/* If we are in a write phase, we have acquired the lock. */
if ((r & PTHREAD_RWLOCK_WRPHASE) != 0)
@@ -759,15 +786,15 @@ __pthread_rwlock_wrlock_full (pthread_rwlock_t *rwlock,
/* If we are in a read phase and there are no readers, try to start a write
phase. */
- while (((r & PTHREAD_RWLOCK_WRPHASE) == 0)
- && ((r >> PTHREAD_RWLOCK_READER_SHIFT) == 0))
+ while ((r & PTHREAD_RWLOCK_WRPHASE) == 0
+ && (r >> PTHREAD_RWLOCK_READER_SHIFT) == 0)
{
/* Acquire MO so that we synchronize with prior writers and do
not interfere with their updates to __writers_futex, as well
as regarding prior readers and their updates to __wrphase_futex,
respectively. */
if (atomic_compare_exchange_weak_acquire (&rwlock->__data.__readers,
- &r, r | PTHREAD_RWLOCK_WRPHASE))
+ &r, r | PTHREAD_RWLOCK_WRPHASE))
{
/* We have started a write phase, so need to enable readers to wait.
See the similar case in __pthread_rwlock_rdlock_full. Unlike in
@@ -792,24 +819,24 @@ __pthread_rwlock_wrlock_full (pthread_rwlock_t *rwlock,
for (;;)
{
while (((wpf = atomic_load_relaxed (&rwlock->__data.__wrphase_futex))
- | PTHREAD_RWLOCK_FUTEX_USED) == PTHREAD_RWLOCK_FUTEX_USED)
+ | PTHREAD_RWLOCK_FUTEX_USED) == PTHREAD_RWLOCK_FUTEX_USED)
{
int private = __pthread_rwlock_get_private (rwlock);
- if (((wpf & PTHREAD_RWLOCK_FUTEX_USED) == 0)
- && !atomic_compare_exchange_weak_relaxed
+ if ((wpf & PTHREAD_RWLOCK_FUTEX_USED) == 0
+ && (!atomic_compare_exchange_weak_relaxed
(&rwlock->__data.__wrphase_futex, &wpf,
- PTHREAD_RWLOCK_FUTEX_USED))
+ PTHREAD_RWLOCK_FUTEX_USED)))
continue;
int err = futex_abstimed_wait (&rwlock->__data.__wrphase_futex,
- PTHREAD_RWLOCK_FUTEX_USED, abstime, private);
+ PTHREAD_RWLOCK_FUTEX_USED,
+ clockid, abstime, private);
if (err == ETIMEDOUT)
{
- if (rwlock->__data.__flags
- != PTHREAD_RWLOCK_PREFER_READER_NP)
+ if (rwlock->__data.__flags != PTHREAD_RWLOCK_PREFER_READER_NP)
{
/* We try writer--writer hand-over. */
- unsigned int w = atomic_load_relaxed
- (&rwlock->__data.__writers);
+ unsigned int w
+ = atomic_load_relaxed (&rwlock->__data.__writers);
if (w != 0)
{
/* We are about to hand over WRLOCKED, so we must
@@ -823,13 +850,13 @@ __pthread_rwlock_wrlock_full (pthread_rwlock_t *rwlock,
Release MO so that another writer that gets
WRLOCKED from us can take over our view of
__readers. */
- unsigned int wf = atomic_exchange_relaxed
- (&rwlock->__data.__writers_futex, 0);
+ unsigned int wf
+ = atomic_exchange_relaxed (&rwlock->__data.__writers_futex, 0);
while (w != 0)
{
if (atomic_compare_exchange_weak_release
(&rwlock->__data.__writers, &w,
- w | PTHREAD_RWLOCK_WRHANDOVER))
+ w | PTHREAD_RWLOCK_WRHANDOVER))
{
/* Wake other writers. */
if ((wf & PTHREAD_RWLOCK_FUTEX_USED) != 0)
@@ -844,8 +871,7 @@ __pthread_rwlock_wrlock_full (pthread_rwlock_t *rwlock,
again. Make sure we don't loose the flag that
signals whether there are threads waiting on
this futex. */
- atomic_store_relaxed
- (&rwlock->__data.__writers_futex, wf);
+ atomic_store_relaxed (&rwlock->__data.__writers_futex, wf);
}
}
/* If we timed out and we are not in a write phase, we can
@@ -857,8 +883,8 @@ __pthread_rwlock_wrlock_full (pthread_rwlock_t *rwlock,
/* We are about to release WRLOCKED, so we must release
__writers_futex too; see the handling of
writer--writer hand-over above. */
- unsigned int wf = atomic_exchange_relaxed
- (&rwlock->__data.__writers_futex, 0);
+ unsigned int wf
+ = atomic_exchange_relaxed (&rwlock->__data.__writers_futex, 0);
while ((r & PTHREAD_RWLOCK_WRPHASE) == 0)
{
/* While we don't need to make anything from a
@@ -877,11 +903,11 @@ __pthread_rwlock_wrlock_full (pthread_rwlock_t *rwlock,
/* Wake other writers. */
if ((wf & PTHREAD_RWLOCK_FUTEX_USED) != 0)
futex_wake (&rwlock->__data.__writers_futex,
- 1, private);
+ 1, private);
/* Wake waiting readers. */
if ((r & PTHREAD_RWLOCK_RWAITING) != 0)
futex_wake (&rwlock->__data.__readers,
- INT_MAX, private);
+ INT_MAX, private);
return ETIMEDOUT;
}
}
@@ -898,10 +924,9 @@ __pthread_rwlock_wrlock_full (pthread_rwlock_t *rwlock,
atomic_thread_fence_acquire ();
/* We still need to wait for explicit hand-over, but we must
not use futex_wait anymore. */
- while ((atomic_load_relaxed
- (&rwlock->__data.__wrphase_futex)
- | PTHREAD_RWLOCK_FUTEX_USED)
- == PTHREAD_RWLOCK_FUTEX_USED)
+ while ((atomic_load_relaxed (&rwlock->__data.__wrphase_futex)
+ | PTHREAD_RWLOCK_FUTEX_USED)
+ == PTHREAD_RWLOCK_FUTEX_USED)
{
/* TODO Back-off. */
}
@@ -915,12 +940,12 @@ __pthread_rwlock_wrlock_full (pthread_rwlock_t *rwlock,
if (ready)
break;
if ((atomic_load_acquire (&rwlock->__data.__readers)
- & PTHREAD_RWLOCK_WRPHASE) != 0)
+ & PTHREAD_RWLOCK_WRPHASE) != 0)
ready = true;
}
done:
atomic_store_relaxed (&rwlock->__data.__cur_writer,
- THREAD_GETMEM (THREAD_SELF, tid));
+ THREAD_GETMEM (THREAD_SELF, tid));
return 0;
}
diff --git a/nptl/pthread_rwlock_destroy.c b/nptl/pthread_rwlock_destroy.c
index 50de8f4ac9..a14f66323e 100644
--- a/nptl/pthread_rwlock_destroy.c
+++ b/nptl/pthread_rwlock_destroy.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "pthreadP.h"
#include <stap-probe.h>
diff --git a/nptl/pthread_rwlock_init.c b/nptl/pthread_rwlock_init.c
index 944a62e645..8813e32383 100644
--- a/nptl/pthread_rwlock_init.c
+++ b/nptl/pthread_rwlock_init.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
@@ -14,10 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "pthreadP.h"
#include <string.h>
+#include <pthread-offsets.h>
static const struct pthread_rwlockattr default_rwlockattr =
@@ -34,6 +35,13 @@ __pthread_rwlock_init (pthread_rwlock_t *rwlock,
{
ASSERT_TYPE_SIZE (pthread_rwlock_t, __SIZEOF_PTHREAD_RWLOCK_T);
+ /* The __flags is the only field where its offset should be checked to
+ avoid ABI breakage with static initializers. */
+ ASSERT_PTHREAD_INTERNAL_OFFSET (pthread_rwlock_t, __data.__flags,
+ __PTHREAD_RWLOCK_FLAGS_OFFSET);
+ ASSERT_PTHREAD_INTERNAL_MEMBER_SIZE (pthread_rwlock_t, __data.__flags,
+ int);
+
const struct pthread_rwlockattr *iattr;
iattr = ((const struct pthread_rwlockattr *) attr) ?: &default_rwlockattr;
diff --git a/nptl/pthread_rwlock_rdlock.c b/nptl/pthread_rwlock_rdlock.c
index ca0dfe5d26..55de1dea2d 100644
--- a/nptl/pthread_rwlock_rdlock.c
+++ b/nptl/pthread_rwlock_rdlock.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Martin Schwidefsky <schwidefsky@de.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "pthread_rwlock_common.c"
@@ -24,7 +24,7 @@ __pthread_rwlock_rdlock (pthread_rwlock_t *rwlock)
{
LIBC_PROBE (rdlock_entry, 1, rwlock);
- int result = __pthread_rwlock_rdlock_full (rwlock, NULL);
+ int result = __pthread_rwlock_rdlock_full (rwlock, CLOCK_REALTIME, NULL);
LIBC_PROBE (rdlock_acquire_read, 1, rwlock);
return result;
}
diff --git a/nptl/pthread_rwlock_timedrdlock.c b/nptl/pthread_rwlock_timedrdlock.c
index 383e41e4db..0becb3335d 100644
--- a/nptl/pthread_rwlock_timedrdlock.c
+++ b/nptl/pthread_rwlock_timedrdlock.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Martin Schwidefsky <schwidefsky@de.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "pthread_rwlock_common.c"
@@ -23,15 +23,5 @@ int
pthread_rwlock_timedrdlock (pthread_rwlock_t *rwlock,
const struct timespec *abstime)
{
- /* Make sure the passed in timeout value is valid. Note that the previous
- implementation assumed that this check *must* not be performed if there
- would in fact be no blocking; however, POSIX only requires that "the
- validity of the abstime parameter need not be checked if the lock can be
- immediately acquired" (i.e., we need not but may check it). */
- /* ??? Just move this to __pthread_rwlock_rdlock_full? */
- if (__glibc_unlikely (abstime->tv_nsec >= 1000000000
- || abstime->tv_nsec < 0))
- return EINVAL;
-
- return __pthread_rwlock_rdlock_full (rwlock, abstime);
+ return __pthread_rwlock_rdlock_full (rwlock, CLOCK_REALTIME, abstime);
}
diff --git a/nptl/pthread_rwlock_timedwrlock.c b/nptl/pthread_rwlock_timedwrlock.c
index 7a3d2ec590..ac116b7264 100644
--- a/nptl/pthread_rwlock_timedwrlock.c
+++ b/nptl/pthread_rwlock_timedwrlock.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Martin Schwidefsky <schwidefsky@de.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "pthread_rwlock_common.c"
@@ -23,15 +23,5 @@ int
pthread_rwlock_timedwrlock (pthread_rwlock_t *rwlock,
const struct timespec *abstime)
{
- /* Make sure the passed in timeout value is valid. Note that the previous
- implementation assumed that this check *must* not be performed if there
- would in fact be no blocking; however, POSIX only requires that "the
- validity of the abstime parameter need not be checked if the lock can be
- immediately acquired" (i.e., we need not but may check it). */
- /* ??? Just move this to __pthread_rwlock_wrlock_full? */
- if (__glibc_unlikely (abstime->tv_nsec >= 1000000000
- || abstime->tv_nsec < 0))
- return EINVAL;
-
- return __pthread_rwlock_wrlock_full (rwlock, abstime);
+ return __pthread_rwlock_wrlock_full (rwlock, CLOCK_REALTIME, abstime);
}
diff --git a/nptl/pthread_rwlock_tryrdlock.c b/nptl/pthread_rwlock_tryrdlock.c
index 4aec1fc15a..8044b2c3d7 100644
--- a/nptl/pthread_rwlock_tryrdlock.c
+++ b/nptl/pthread_rwlock_tryrdlock.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include "pthreadP.h"
@@ -94,15 +94,22 @@ __pthread_rwlock_tryrdlock (pthread_rwlock_t *rwlock)
/* Same as in __pthread_rwlock_rdlock_full:
We started the read phase, so we are also responsible for
updating the write-phase futex. Relaxed MO is sufficient.
- Note that there can be no other reader that we have to wake
- because all other readers will see the read phase started by us
- (or they will try to start it themselves); if a writer started
- the read phase, we cannot have started it. Furthermore, we
- cannot discard a PTHREAD_RWLOCK_FUTEX_USED flag because we will
- overwrite the value set by the most recent writer (or the readers
- before it in case of explicit hand-over) and we know that there
- are no waiting readers. */
- atomic_store_relaxed (&rwlock->__data.__wrphase_futex, 0);
+ We have to do the same steps as a writer would when handing over the
+ read phase to use because other readers cannot distinguish between
+ us and the writer.
+ Note that __pthread_rwlock_tryrdlock callers will not have to be
+ woken up because they will either see the read phase started by us
+ or they will try to start it themselves; however, callers of
+ __pthread_rwlock_rdlock_full just increase the reader count and then
+ check what state the lock is in, so they cannot distinguish between
+ us and a writer that acquired and released the lock in the
+ meantime. */
+ if ((atomic_exchange_relaxed (&rwlock->__data.__wrphase_futex, 0)
+ & PTHREAD_RWLOCK_FUTEX_USED) != 0)
+ {
+ int private = __pthread_rwlock_get_private (rwlock);
+ futex_wake (&rwlock->__data.__wrphase_futex, INT_MAX, private);
+ }
}
return 0;
diff --git a/nptl/pthread_rwlock_trywrlock.c b/nptl/pthread_rwlock_trywrlock.c
index 5a73eba756..624cf83a08 100644
--- a/nptl/pthread_rwlock_trywrlock.c
+++ b/nptl/pthread_rwlock_trywrlock.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include "pthreadP.h"
@@ -46,8 +46,15 @@ __pthread_rwlock_trywrlock (pthread_rwlock_t *rwlock)
&rwlock->__data.__readers, &r,
r | PTHREAD_RWLOCK_WRPHASE | PTHREAD_RWLOCK_WRLOCKED))
{
+ /* We have become the primary writer and we cannot have shared
+ the PTHREAD_RWLOCK_FUTEX_USED flag with someone else, so we
+ can simply enable blocking (see full wrlock code). */
atomic_store_relaxed (&rwlock->__data.__writers_futex, 1);
- atomic_store_relaxed (&rwlock->__data.__wrphase_futex, 1);
+ /* If we started a write phase, we need to enable readers to
+ wait. If we did not, we must not change it because other threads
+ may have set the PTHREAD_RWLOCK_FUTEX_USED in the meantime. */
+ if ((r & PTHREAD_RWLOCK_WRPHASE) == 0)
+ atomic_store_relaxed (&rwlock->__data.__wrphase_futex, 1);
atomic_store_relaxed (&rwlock->__data.__cur_writer,
THREAD_GETMEM (THREAD_SELF, tid));
return 0;
diff --git a/nptl/pthread_rwlock_unlock.c b/nptl/pthread_rwlock_unlock.c
index d3f36303bf..afb6b6390a 100644
--- a/nptl/pthread_rwlock_unlock.c
+++ b/nptl/pthread_rwlock_unlock.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Martin Schwidefsky <schwidefsky@de.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sysdep.h>
diff --git a/nptl/pthread_rwlock_wrlock.c b/nptl/pthread_rwlock_wrlock.c
index 738a261eae..fc1badc00b 100644
--- a/nptl/pthread_rwlock_wrlock.c
+++ b/nptl/pthread_rwlock_wrlock.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Martin Schwidefsky <schwidefsky@de.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "pthread_rwlock_common.c"
@@ -24,7 +24,7 @@ __pthread_rwlock_wrlock (pthread_rwlock_t *rwlock)
{
LIBC_PROBE (wrlock_entry, 1, rwlock);
- int result = __pthread_rwlock_wrlock_full (rwlock, NULL);
+ int result = __pthread_rwlock_wrlock_full (rwlock, CLOCK_REALTIME, NULL);
LIBC_PROBE (wrlock_acquire_write, 1, rwlock);
return result;
}
diff --git a/nptl/pthread_rwlockattr_destroy.c b/nptl/pthread_rwlockattr_destroy.c
index db8f0e5cab..19801ad891 100644
--- a/nptl/pthread_rwlockattr_destroy.c
+++ b/nptl/pthread_rwlockattr_destroy.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "pthreadP.h"
diff --git a/nptl/pthread_rwlockattr_getkind_np.c b/nptl/pthread_rwlockattr_getkind_np.c
index 52fb57da36..ca71956b7e 100644
--- a/nptl/pthread_rwlockattr_getkind_np.c
+++ b/nptl/pthread_rwlockattr_getkind_np.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "pthreadP.h"
diff --git a/nptl/pthread_rwlockattr_getpshared.c b/nptl/pthread_rwlockattr_getpshared.c
index 836a5899ac..f14d07f5ab 100644
--- a/nptl/pthread_rwlockattr_getpshared.c
+++ b/nptl/pthread_rwlockattr_getpshared.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "pthreadP.h"
diff --git a/nptl/pthread_rwlockattr_init.c b/nptl/pthread_rwlockattr_init.c
index f919e29e2d..689048537e 100644
--- a/nptl/pthread_rwlockattr_init.c
+++ b/nptl/pthread_rwlockattr_init.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "pthreadP.h"
diff --git a/nptl/pthread_rwlockattr_setkind_np.c b/nptl/pthread_rwlockattr_setkind_np.c
index d038240321..6d1a05f3a9 100644
--- a/nptl/pthread_rwlockattr_setkind_np.c
+++ b/nptl/pthread_rwlockattr_setkind_np.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include "pthreadP.h"
diff --git a/nptl/pthread_rwlockattr_setpshared.c b/nptl/pthread_rwlockattr_setpshared.c
index a8ea1f9433..4f90ca3f4c 100644
--- a/nptl/pthread_rwlockattr_setpshared.c
+++ b/nptl/pthread_rwlockattr_setpshared.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include "pthreadP.h"
diff --git a/nptl/pthread_self.c b/nptl/pthread_self.c
index ae173c4661..1a68caed85 100644
--- a/nptl/pthread_self.c
+++ b/nptl/pthread_self.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "pthreadP.h"
#include <tls.h>
diff --git a/nptl/pthread_setaffinity.c b/nptl/pthread_setaffinity.c
index 208f570b6a..68a2c09903 100644
--- a/nptl/pthread_setaffinity.c
+++ b/nptl/pthread_setaffinity.c
@@ -1,5 +1,5 @@
/* Set the processor affinity of a thread. Stub version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthreadP.h>
diff --git a/nptl/pthread_setattr_default_np.c b/nptl/pthread_setattr_default_np.c
index be5def4bf4..39d3eda26d 100644
--- a/nptl/pthread_setattr_default_np.c
+++ b/nptl/pthread_setattr_default_np.c
@@ -1,5 +1,5 @@
/* Set the default attributes to be used by pthread_create in the process.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdlib.h>
diff --git a/nptl/pthread_setcancelstate.c b/nptl/pthread_setcancelstate.c
index 8b981db3e5..e5b6f99700 100644
--- a/nptl/pthread_setcancelstate.c
+++ b/nptl/pthread_setcancelstate.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include "pthreadP.h"
diff --git a/nptl/pthread_setcanceltype.c b/nptl/pthread_setcanceltype.c
index 3a07e09284..99bc13e993 100644
--- a/nptl/pthread_setcanceltype.c
+++ b/nptl/pthread_setcanceltype.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include "pthreadP.h"
@@ -27,11 +27,6 @@ __pthread_setcanceltype (int type, int *oldtype)
if (type < PTHREAD_CANCEL_DEFERRED || type > PTHREAD_CANCEL_ASYNCHRONOUS)
return EINVAL;
-#ifndef SIGCANCEL
- if (type == PTHREAD_CANCEL_ASYNCHRONOUS)
- return ENOTSUP;
-#endif
-
volatile struct pthread *self = THREAD_SELF;
int oldval = THREAD_GETMEM (self, cancelhandling);
diff --git a/nptl/pthread_setconcurrency.c b/nptl/pthread_setconcurrency.c
index bdea1fddef..afae1a11d7 100644
--- a/nptl/pthread_setconcurrency.c
+++ b/nptl/pthread_setconcurrency.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include "pthreadP.h"
diff --git a/nptl/pthread_setname.c b/nptl/pthread_setname.c
index 7117b98d51..43e6bd93c7 100644
--- a/nptl/pthread_setname.c
+++ b/nptl/pthread_setname.c
@@ -1,5 +1,5 @@
/* pthread_setname_np -- Set thread name. Stub version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthreadP.h>
diff --git a/nptl/pthread_setschedparam.c b/nptl/pthread_setschedparam.c
index b942d3de26..663ece8309 100644
--- a/nptl/pthread_setschedparam.c
+++ b/nptl/pthread_setschedparam.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sched.h>
diff --git a/nptl/pthread_setschedprio.c b/nptl/pthread_setschedprio.c
index 85dad099a1..9f21c69086 100644
--- a/nptl/pthread_setschedprio.c
+++ b/nptl/pthread_setschedprio.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sched.h>
diff --git a/nptl/pthread_setspecific.c b/nptl/pthread_setspecific.c
index 6118990407..da6daf97e9 100644
--- a/nptl/pthread_setspecific.c
+++ b/nptl/pthread_setspecific.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdlib.h>
diff --git a/nptl/pthread_sigmask.c b/nptl/pthread_sigmask.c
index 1eaf392e2f..4aa774d01d 100644
--- a/nptl/pthread_sigmask.c
+++ b/nptl/pthread_sigmask.c
@@ -1,6 +1,6 @@
-/* Examine and change blocked signals for a thread. Generic POSIX version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -14,23 +14,41 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
#include <pthreadP.h>
+#include <sysdep.h>
-#if defined SIGCANCEL || defined SIGTIMER || defined SIGSETXID
-# error "This implementation assumes no internal-only signal numbers."
-#endif
int
pthread_sigmask (int how, const sigset_t *newmask, sigset_t *oldmask)
{
- /* Here we assume that sigprocmask actually does everything right.
- The only difference is the return value protocol. */
- int result = sigprocmask (how, newmask, oldmask);
- if (result < 0)
- result = errno;
- return result;
+ sigset_t local_newmask;
+
+ /* The only thing we have to make sure here is that SIGCANCEL and
+ SIGSETXID is not blocked. */
+ if (newmask != NULL
+ && (__builtin_expect (__sigismember (newmask, SIGCANCEL), 0)
+ || __builtin_expect (__sigismember (newmask, SIGSETXID), 0)))
+ {
+ local_newmask = *newmask;
+ __sigdelset (&local_newmask, SIGCANCEL);
+ __sigdelset (&local_newmask, SIGSETXID);
+ newmask = &local_newmask;
+ }
+
+#ifdef INTERNAL_SYSCALL
+ /* We know that realtime signals are available if NPTL is used. */
+ INTERNAL_SYSCALL_DECL (err);
+ int result = INTERNAL_SYSCALL (rt_sigprocmask, err, 4, how, newmask,
+ oldmask, _NSIG / 8);
+
+ return (INTERNAL_SYSCALL_ERROR_P (result, err)
+ ? INTERNAL_SYSCALL_ERRNO (result, err)
+ : 0);
+#else
+ return sigprocmask (how, newmask, oldmask) == -1 ? errno : 0;
+#endif
}
diff --git a/nptl/pthread_sigqueue.c b/nptl/pthread_sigqueue.c
index 5e67b38913..2af22d03ea 100644
--- a/nptl/pthread_sigqueue.c
+++ b/nptl/pthread_sigqueue.c
@@ -1,5 +1,5 @@
/* Queue a signal (with value) for a specific pthread. Stub version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/nptl/pthread_spin_destroy.c b/nptl/pthread_spin_destroy.c
index d8b7a04bc3..b7659bcdb7 100644
--- a/nptl/pthread_spin_destroy.c
+++ b/nptl/pthread_spin_destroy.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "pthreadP.h"
diff --git a/nptl/pthread_spin_init.c b/nptl/pthread_spin_init.c
index 9096c947db..a140253aab 100644
--- a/nptl/pthread_spin_init.c
+++ b/nptl/pthread_spin_init.c
@@ -1,5 +1,5 @@
/* pthread_spin_init -- initialize a spin lock. Generic version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Paul Mackerras <paulus@au.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "pthreadP.h"
diff --git a/nptl/pthread_spin_lock.c b/nptl/pthread_spin_lock.c
index 35093dea4d..e207a9d56f 100644
--- a/nptl/pthread_spin_lock.c
+++ b/nptl/pthread_spin_lock.c
@@ -1,5 +1,5 @@
/* pthread_spin_lock -- lock a spin lock. Generic version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <atomic.h>
#include "pthreadP.h"
diff --git a/nptl/pthread_spin_trylock.c b/nptl/pthread_spin_trylock.c
index b69f6c5575..f22648fb87 100644
--- a/nptl/pthread_spin_trylock.c
+++ b/nptl/pthread_spin_trylock.c
@@ -1,5 +1,5 @@
/* pthread_spin_trylock -- trylock a spin lock. Generic version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <atomic.h>
diff --git a/nptl/pthread_spin_unlock.c b/nptl/pthread_spin_unlock.c
index 38562f59f3..76fef6f4df 100644
--- a/nptl/pthread_spin_unlock.c
+++ b/nptl/pthread_spin_unlock.c
@@ -1,5 +1,5 @@
/* pthread_spin_unlock -- unlock a spin lock. Generic version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Paul Mackerras <paulus@au.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "pthreadP.h"
#include <atomic.h>
diff --git a/nptl/pthread_testcancel.c b/nptl/pthread_testcancel.c
index e33d2da14a..84d966cd83 100644
--- a/nptl/pthread_testcancel.c
+++ b/nptl/pthread_testcancel.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include "pthreadP.h"
diff --git a/nptl/pthread_timedjoin.c b/nptl/pthread_timedjoin.c
index 4544be0dda..1890d1aec6 100644
--- a/nptl/pthread_timedjoin.c
+++ b/nptl/pthread_timedjoin.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "pthreadP.h"
@@ -22,6 +22,7 @@ int
__pthread_timedjoin_np (pthread_t threadid, void **thread_return,
const struct timespec *abstime)
{
- return __pthread_timedjoin_ex (threadid, thread_return, abstime, true);
+ return __pthread_clockjoin_ex (threadid, thread_return,
+ CLOCK_REALTIME, abstime, true);
}
weak_alias (__pthread_timedjoin_np, pthread_timedjoin_np)
diff --git a/nptl/pthread_tryjoin.c b/nptl/pthread_tryjoin.c
index 44d83bb544..a15fd5fab0 100644
--- a/nptl/pthread_tryjoin.c
+++ b/nptl/pthread_tryjoin.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "pthreadP.h"
@@ -26,7 +26,8 @@ pthread_tryjoin_np (pthread_t threadid, void **thread_return)
if (pd->tid != 0)
return EBUSY;
- /* If pd->tid != 0 then lll_wait_tid will not block on futex
+ /* If pd->tid == 0 then lll_wait_tid will not block on futex
operation. */
- return __pthread_timedjoin_ex (threadid, thread_return, NULL, false);
+ return __pthread_clockjoin_ex (threadid, thread_return, 0 /* Ignored */,
+ NULL, false);
}
diff --git a/nptl/pthread_yield.c b/nptl/pthread_yield.c
index 0ae6f468a6..5682ce9d03 100644
--- a/nptl/pthread_yield.c
+++ b/nptl/pthread_yield.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <sched.h>
diff --git a/nptl/register-atfork.c b/nptl/register-atfork.c
index 5ff1c1be8c..1758f34831 100644
--- a/nptl/register-atfork.c
+++ b/nptl/register-atfork.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdlib.h>
@@ -107,13 +107,14 @@ __unregister_atfork (void *dso_handle)
}
void
-__run_fork_handlers (enum __run_fork_handler_type who)
+__run_fork_handlers (enum __run_fork_handler_type who, _Bool do_locking)
{
struct fork_handler *runp;
if (who == atfork_run_prepare)
{
- lll_lock (atfork_lock, LLL_PRIVATE);
+ if (do_locking)
+ lll_lock (atfork_lock, LLL_PRIVATE);
size_t sl = fork_handler_list_size (&fork_handlers);
for (size_t i = sl; i > 0; i--)
{
@@ -133,7 +134,8 @@ __run_fork_handlers (enum __run_fork_handler_type who)
else if (who == atfork_run_parent && runp->parent_handler)
runp->parent_handler ();
}
- lll_unlock (atfork_lock, LLL_PRIVATE);
+ if (do_locking)
+ lll_unlock (atfork_lock, LLL_PRIVATE);
}
}
diff --git a/nptl/res.c b/nptl/res.c
index c4351d15c9..e7f0ecbe5c 100644
--- a/nptl/res.c
+++ b/nptl/res.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <features.h>
#include <resolv.h>
diff --git a/nptl/sem_clockwait.c b/nptl/sem_clockwait.c
new file mode 100644
index 0000000000..21628df524
--- /dev/null
+++ b/nptl/sem_clockwait.c
@@ -0,0 +1,46 @@
+/* sem_clockwait -- wait on a semaphore with timeout using the specified
+ clock.
+
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <time.h>
+#include "sem_waitcommon.c"
+
+int
+sem_clockwait (sem_t *sem, clockid_t clockid,
+ const struct timespec *abstime)
+{
+ /* Check that supplied clockid is one we support, even if we don't end up
+ waiting. */
+ if (!futex_abstimed_supported_clockid (clockid))
+ {
+ __set_errno (EINVAL);
+ return -1;
+ }
+
+ if (! valid_nanoseconds (abstime->tv_nsec))
+ {
+ __set_errno (EINVAL);
+ return -1;
+ }
+
+ if (__new_sem_wait_fast ((struct new_sem *) sem, 0) == 0)
+ return 0;
+ else
+ return __new_sem_wait_slow ((struct new_sem *) sem, clockid, abstime);
+}
diff --git a/nptl/sem_close.c b/nptl/sem_close.c
index e1df6ebada..a7514e5089 100644
--- a/nptl/sem_close.c
+++ b/nptl/sem_close.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
@@ -14,28 +14,27 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <search.h>
#include <sys/mman.h>
#include "semaphoreP.h"
-
-/* Global variables to parametrize the walk function. This works
- since we always have to use locks. And we have to use the twalk
- function since the entries are not sorted wrt the mapping
- address. */
-static sem_t *the_sem;
-static struct inuse_sem *rec;
+struct walk_closure
+{
+ sem_t *the_sem;
+ struct inuse_sem *rec;
+};
static void
-walker (const void *inodep, const VISIT which, const int depth)
+walker (const void *inodep, VISIT which, void *closure0)
{
+ struct walk_closure *closure = closure0;
struct inuse_sem *nodep = *(struct inuse_sem **) inodep;
- if (nodep->sem == the_sem)
- rec = nodep;
+ if (nodep->sem == closure->the_sem)
+ closure->rec = nodep;
}
@@ -48,9 +47,12 @@ sem_close (sem_t *sem)
lll_lock (__sem_mappings_lock, LLL_PRIVATE);
/* Locate the entry for the mapping the caller provided. */
- rec = NULL;
- the_sem = sem;
- __twalk (__sem_mappings, walker);
+ struct inuse_sem *rec;
+ {
+ struct walk_closure closure = { .the_sem = sem, .rec = NULL };
+ __twalk_r (__sem_mappings, walker, &closure);
+ rec = closure.rec;
+ }
if (rec != NULL)
{
/* Check the reference counter. If it is going to be zero, free
diff --git a/nptl/sem_destroy.c b/nptl/sem_destroy.c
index e1eab7bab1..c2d9fc46db 100644
--- a/nptl/sem_destroy.c
+++ b/nptl/sem_destroy.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <semaphore.h>
#include <shlib-compat.h>
diff --git a/nptl/sem_getvalue.c b/nptl/sem_getvalue.c
index 056a80ece8..0e2150d1e6 100644
--- a/nptl/sem_getvalue.c
+++ b/nptl/sem_getvalue.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <semaphore.h>
#include <shlib-compat.h>
diff --git a/nptl/sem_init.c b/nptl/sem_init.c
index 3f64fe73a3..cf8b1c8e53 100644
--- a/nptl/sem_init.c
+++ b/nptl/sem_init.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <semaphore.h>
diff --git a/nptl/sem_open.c b/nptl/sem_open.c
index c5389f6873..85802c809d 100644
--- a/nptl/sem_open.c
+++ b/nptl/sem_open.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/nptl/sem_post.c b/nptl/sem_post.c
index 753c5c9e77..cc8232c110 100644
--- a/nptl/sem_post.c
+++ b/nptl/sem_post.c
@@ -1,5 +1,5 @@
/* sem_post -- post to a POSIX semaphore. Generic futex-using version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <atomic.h>
#include <errno.h>
diff --git a/nptl/sem_timedwait.c b/nptl/sem_timedwait.c
index 8886ea2fb3..a3fbe8998b 100644
--- a/nptl/sem_timedwait.c
+++ b/nptl/sem_timedwait.c
@@ -1,5 +1,5 @@
/* sem_timedwait -- wait on a semaphore with timeout.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Paul Mackerras <paulus@au.ibm.com>, 2003.
@@ -15,8 +15,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#include <time.h>
#include "sem_waitcommon.c"
/* This is in a separate file because because sem_timedwait is only provided
@@ -24,7 +25,7 @@
int
sem_timedwait (sem_t *sem, const struct timespec *abstime)
{
- if (abstime->tv_nsec < 0 || abstime->tv_nsec >= 1000000000)
+ if (! valid_nanoseconds (abstime->tv_nsec))
{
__set_errno (EINVAL);
return -1;
@@ -36,5 +37,6 @@ sem_timedwait (sem_t *sem, const struct timespec *abstime)
if (__new_sem_wait_fast ((struct new_sem *) sem, 0) == 0)
return 0;
else
- return __new_sem_wait_slow((struct new_sem *) sem, abstime);
+ return __new_sem_wait_slow ((struct new_sem *) sem,
+ CLOCK_REALTIME, abstime);
}
diff --git a/nptl/sem_unlink.c b/nptl/sem_unlink.c
index 6b17c01e44..60fe984de1 100644
--- a/nptl/sem_unlink.c
+++ b/nptl/sem_unlink.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <semaphore.h>
diff --git a/nptl/sem_wait.c b/nptl/sem_wait.c
index e7d910613f..84207199c7 100644
--- a/nptl/sem_wait.c
+++ b/nptl/sem_wait.c
@@ -1,5 +1,5 @@
/* sem_wait -- wait on a semaphore. Generic futex-using version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Paul Mackerras <paulus@au.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <lowlevellock.h> /* lll_futex* used by the old code. */
#include "sem_waitcommon.c"
@@ -39,7 +39,8 @@ __new_sem_wait (sem_t *sem)
if (__new_sem_wait_fast ((struct new_sem *) sem, 0) == 0)
return 0;
else
- return __new_sem_wait_slow((struct new_sem *) sem, NULL);
+ return __new_sem_wait_slow ((struct new_sem *) sem,
+ CLOCK_REALTIME, NULL);
}
versioned_symbol (libpthread, __new_sem_wait, sem_wait, GLIBC_2_1);
@@ -56,14 +57,8 @@ __old_sem_wait (sem_t *sem)
if (atomic_decrement_if_positive (futex) > 0)
return 0;
- /* Enable asynchronous cancellation. Required by the standard. */
- int oldtype = __pthread_enable_asynccancel ();
-
/* Always assume the semaphore is shared. */
- err = lll_futex_wait (futex, 0, LLL_SHARED);
-
- /* Disable asynchronous cancellation. */
- __pthread_disable_asynccancel (oldtype);
+ err = lll_futex_wait_cancel (futex, 0, LLL_SHARED);
}
while (err == 0 || err == -EWOULDBLOCK);
diff --git a/nptl/sem_waitcommon.c b/nptl/sem_waitcommon.c
index 30984be2d0..af81c6fe9d 100644
--- a/nptl/sem_waitcommon.c
+++ b/nptl/sem_waitcommon.c
@@ -1,5 +1,5 @@
/* sem_waitcommon -- wait on a semaphore, shared code.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Paul Mackerras <paulus@au.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <kernel-features.h>
#include <errno.h>
@@ -103,17 +103,19 @@ __sem_wait_cleanup (void *arg)
users don't seem to need it. */
static int
__attribute__ ((noinline))
-do_futex_wait (struct new_sem *sem, const struct timespec *abstime)
+do_futex_wait (struct new_sem *sem, clockid_t clockid,
+ const struct timespec *abstime)
{
int err;
#if __HAVE_64B_ATOMICS
err = futex_abstimed_wait_cancelable (
- (unsigned int *) &sem->data + SEM_VALUE_OFFSET, 0, abstime,
+ (unsigned int *) &sem->data + SEM_VALUE_OFFSET, 0,
+ clockid, abstime,
sem->private);
#else
err = futex_abstimed_wait_cancelable (&sem->value, SEM_NWAITERS_MASK,
- abstime, sem->private);
+ clockid, abstime, sem->private);
#endif
return err;
@@ -160,7 +162,8 @@ __new_sem_wait_fast (struct new_sem *sem, int definitive_result)
/* Slow path that blocks. */
static int
__attribute__ ((noinline))
-__new_sem_wait_slow (struct new_sem *sem, const struct timespec *abstime)
+__new_sem_wait_slow (struct new_sem *sem, clockid_t clockid,
+ const struct timespec *abstime)
{
int err = 0;
@@ -178,7 +181,7 @@ __new_sem_wait_slow (struct new_sem *sem, const struct timespec *abstime)
/* If there is no token available, sleep until there is. */
if ((d & SEM_VALUE_MASK) == 0)
{
- err = do_futex_wait (sem, abstime);
+ err = do_futex_wait (sem, clockid, abstime);
/* A futex return value of 0 or EAGAIN is due to a real or spurious
wake-up, or due to a change in the number of tokens. We retry in
these cases.
@@ -279,7 +282,7 @@ __new_sem_wait_slow (struct new_sem *sem, const struct timespec *abstime)
if ((v >> SEM_VALUE_SHIFT) == 0)
{
/* See __HAVE_64B_ATOMICS variant. */
- err = do_futex_wait(sem, abstime);
+ err = do_futex_wait (sem, clockid, abstime);
if (err == ETIMEDOUT || err == EINTR)
{
__set_errno (err);
diff --git a/nptl/semaphoreP.h b/nptl/semaphoreP.h
index 8ab8242de9..15d3444aea 100644
--- a/nptl/semaphoreP.h
+++ b/nptl/semaphoreP.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <semaphore.h>
#include "pthreadP.h"
diff --git a/nptl/sigaction.c b/nptl/sigaction.c
index 79b6fdcde6..3e89df6640 100644
--- a/nptl/sigaction.c
+++ b/nptl/sigaction.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <internal-signals.h>
diff --git a/nptl/smp.h b/nptl/smp.h
index c82b8115c2..430c7093cc 100644
--- a/nptl/smp.h
+++ b/nptl/smp.h
@@ -1,5 +1,5 @@
/* Determine whether the host has multiple processors. Stub version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
- not, see <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
/* Test whether the machine has more than one processor. This is not the
best test but good enough. More complicated tests would require `malloc'
diff --git a/nptl/stack-aliasing.h b/nptl/stack-aliasing.h
index b353949dfa..31cdf0331b 100644
--- a/nptl/stack-aliasing.h
+++ b/nptl/stack-aliasing.h
@@ -1,5 +1,5 @@
/* Define macros for stack address aliasing issues for NPTL. Stub version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This is a number of bytes that is an alignment that should be avoided
when choosing the exact size of a new thread's stack. If the size
diff --git a/nptl/test-cond-printers.c b/nptl/test-cond-printers.c
index 4a416cd5be..fd48a73b5e 100644
--- a/nptl/test-cond-printers.c
+++ b/nptl/test-cond-printers.c
@@ -1,6 +1,6 @@
/* Helper program for testing the pthread_cond_t pretty printer.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Keep the calls to the pthread_* functions on separate lines to make it easy
to advance through the program using the gdb 'next' command. */
diff --git a/nptl/test-cond-printers.py b/nptl/test-cond-printers.py
index 410c82951a..053ec48b6e 100644
--- a/nptl/test-cond-printers.py
+++ b/nptl/test-cond-printers.py
@@ -1,6 +1,6 @@
# Common tests for the ConditionVariablePrinter class.
#
-# Copyright (C) 2016-2018 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
@@ -15,7 +15,7 @@
#
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
import sys
diff --git a/nptl/test-condattr-printers.c b/nptl/test-condattr-printers.c
index 9181acc4ee..7d7c88fd70 100644
--- a/nptl/test-condattr-printers.c
+++ b/nptl/test-condattr-printers.c
@@ -1,7 +1,7 @@
/* Helper program for testing the pthread_cond_t and pthread_condattr_t
pretty printers.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Keep the calls to the pthread_* functions on separate lines to make it easy
to advance through the program using the gdb 'next' command. */
diff --git a/nptl/test-condattr-printers.py b/nptl/test-condattr-printers.py
index e5db45f413..ac31df7bd5 100644
--- a/nptl/test-condattr-printers.py
+++ b/nptl/test-condattr-printers.py
@@ -1,7 +1,7 @@
# Common tests for the ConditionVariablePrinter and
# ConditionVariableAttributesPrinter classes.
#
-# Copyright (C) 2016-2018 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
import sys
diff --git a/nptl/test-mutex-printers.c b/nptl/test-mutex-printers.c
index 4ed1c9bb0e..40726e6917 100644
--- a/nptl/test-mutex-printers.c
+++ b/nptl/test-mutex-printers.c
@@ -1,6 +1,6 @@
/* Helper program for testing the pthread_mutex_t pretty printer.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Keep the calls to the pthread_* functions on separate lines to make it easy
to advance through the program using the gdb 'next' command. */
diff --git a/nptl/test-mutex-printers.py b/nptl/test-mutex-printers.py
index 285a09c464..09c5546899 100644
--- a/nptl/test-mutex-printers.py
+++ b/nptl/test-mutex-printers.py
@@ -1,6 +1,6 @@
# Tests for the MutexPrinter class.
#
-# Copyright (C) 2016-2018 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
@@ -15,7 +15,7 @@
#
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
import sys
diff --git a/nptl/test-mutexattr-printers.c b/nptl/test-mutexattr-printers.c
index 2c1a8fb9e8..79e5b21b23 100644
--- a/nptl/test-mutexattr-printers.c
+++ b/nptl/test-mutexattr-printers.c
@@ -1,7 +1,7 @@
/* Helper program for testing the pthread_mutex_t and pthread_mutexattr_t
pretty printers.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Keep the calls to the pthread_* functions on separate lines to make it easy
to advance through the program using the gdb 'next' command. */
diff --git a/nptl/test-mutexattr-printers.py b/nptl/test-mutexattr-printers.py
index 38ea79822b..211818c30b 100644
--- a/nptl/test-mutexattr-printers.py
+++ b/nptl/test-mutexattr-printers.py
@@ -1,6 +1,6 @@
# Common tests for the MutexPrinter and MutexAttributesPrinter classes.
#
-# Copyright (C) 2016-2018 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
@@ -15,7 +15,7 @@
#
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
import sys
diff --git a/nptl/test-rwlock-printers.c b/nptl/test-rwlock-printers.c
index 75c1ccbbc1..fe973e1753 100644
--- a/nptl/test-rwlock-printers.c
+++ b/nptl/test-rwlock-printers.c
@@ -1,6 +1,6 @@
/* Helper program for testing the pthread_rwlock_t pretty printer.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Keep the calls to the pthread_* functions on separate lines to make it easy
to advance through the program using the gdb 'next' command. */
diff --git a/nptl/test-rwlock-printers.py b/nptl/test-rwlock-printers.py
index ac5192e90a..89a8ea8f5f 100644
--- a/nptl/test-rwlock-printers.py
+++ b/nptl/test-rwlock-printers.py
@@ -1,6 +1,6 @@
# Common tests for the RWLockPrinter class.
#
-# Copyright (C) 2016-2018 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
@@ -15,7 +15,7 @@
#
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
import sys
diff --git a/nptl/test-rwlockattr-printers.c b/nptl/test-rwlockattr-printers.c
index d54de322b2..51b930496a 100644
--- a/nptl/test-rwlockattr-printers.c
+++ b/nptl/test-rwlockattr-printers.c
@@ -1,7 +1,7 @@
/* Helper program for testing the pthread_rwlock_t and pthread_rwlockattr_t
pretty printers.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Keep the calls to the pthread_* functions on separate lines to make it easy
to advance through the program using the gdb 'next' command. */
diff --git a/nptl/test-rwlockattr-printers.py b/nptl/test-rwlockattr-printers.py
index 5b282fa39d..cb8d92a90c 100644
--- a/nptl/test-rwlockattr-printers.py
+++ b/nptl/test-rwlockattr-printers.py
@@ -1,6 +1,6 @@
# Common tests for the RWLockPrinter and RWLockAttributesPrinter classes.
#
-# Copyright (C) 2016-2018 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
@@ -15,7 +15,7 @@
#
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
import sys
diff --git a/nptl/thrd_create.c b/nptl/thrd_create.c
index 113ba0d93e..9443dd688f 100644
--- a/nptl/thrd_create.c
+++ b/nptl/thrd_create.c
@@ -1,5 +1,5 @@
/* C11 threads thread creation implementation.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thrd_priv.h"
diff --git a/nptl/thrd_current.c b/nptl/thrd_current.c
index a1c73b2c37..12c54bfbc2 100644
--- a/nptl/thrd_current.c
+++ b/nptl/thrd_current.c
@@ -1,5 +1,5 @@
/* C11 threads current thread implementation.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thrd_priv.h"
diff --git a/nptl/thrd_detach.c b/nptl/thrd_detach.c
index be2c3e1cac..2cfbfabee0 100644
--- a/nptl/thrd_detach.c
+++ b/nptl/thrd_detach.c
@@ -1,5 +1,5 @@
/* C11 threads thread detach implementation.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thrd_priv.h"
diff --git a/nptl/thrd_equal.c b/nptl/thrd_equal.c
index 8e13bc4e4a..8d11d702e0 100644
--- a/nptl/thrd_equal.c
+++ b/nptl/thrd_equal.c
@@ -1,5 +1,5 @@
/* C11 threads thread equality check implementation.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thrd_priv.h"
diff --git a/nptl/thrd_exit.c b/nptl/thrd_exit.c
index 6b37774926..a768284784 100644
--- a/nptl/thrd_exit.c
+++ b/nptl/thrd_exit.c
@@ -1,5 +1,5 @@
/* C11 threads thread exit implementation.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thrd_priv.h"
diff --git a/nptl/thrd_join.c b/nptl/thrd_join.c
index 029d4a79a3..10d9a72cc8 100644
--- a/nptl/thrd_join.c
+++ b/nptl/thrd_join.c
@@ -1,5 +1,5 @@
/* C11 threads thread join implementation.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thrd_priv.h"
@@ -22,7 +22,7 @@ int
thrd_join (thrd_t thr, int *res)
{
void *pthread_res;
- int err_code = __pthread_timedjoin_ex (thr, &pthread_res, NULL, true);
+ int err_code = __pthread_clockjoin_ex (thr, &pthread_res, 0, NULL, true);
if (res)
*res = (int) (uintptr_t) pthread_res;
diff --git a/nptl/thrd_priv.h b/nptl/thrd_priv.h
index 97f41025bb..fa67fb91d1 100644
--- a/nptl/thrd_priv.h
+++ b/nptl/thrd_priv.h
@@ -1,5 +1,5 @@
/* Internal C11 threads definitions.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef THRD_PRIV_H
# define THRD_PRIV_H
diff --git a/nptl/thrd_sleep.c b/nptl/thrd_sleep.c
index 85736edd32..3f5e307d56 100644
--- a/nptl/thrd_sleep.c
+++ b/nptl/thrd_sleep.c
@@ -1,5 +1,5 @@
/* C11 threads thread sleep implementation.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <time.h>
#include <sysdep-cancel.h>
@@ -24,16 +24,13 @@
int
thrd_sleep (const struct timespec* time_point, struct timespec* remaining)
{
- INTERNAL_SYSCALL_DECL (err);
- int ret = INTERNAL_SYSCALL_CANCEL (nanosleep, err, time_point, remaining);
- if (INTERNAL_SYSCALL_ERROR_P (ret, err))
- {
- /* C11 states thrd_sleep function returns -1 if it has been interrupted
- by a signal, or a negative value if it fails. */
- ret = INTERNAL_SYSCALL_ERRNO (ret, err);
- if (ret == EINTR)
- return -1;
- return -2;
- }
- return 0;
+ int ret = __clock_nanosleep (CLOCK_REALTIME, 0, time_point, remaining);
+ /* C11 states thrd_sleep function returns -1 if it has been interrupted
+ by a signal, or a negative value if it fails. */
+ switch (ret)
+ {
+ case 0: return 0;
+ case EINTR: return -1;
+ default: return -2;
+ }
}
diff --git a/nptl/thrd_yield.c b/nptl/thrd_yield.c
index 9ebcbae549..d1cebdfcb3 100644
--- a/nptl/thrd_yield.c
+++ b/nptl/thrd_yield.c
@@ -1,5 +1,5 @@
/* C11 threads thread yield implementation.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thrd_priv.h"
diff --git a/nptl/tpp.c b/nptl/tpp.c
index 0f3e7549f0..aae4c4047d 100644
--- a/nptl/tpp.c
+++ b/nptl/tpp.c
@@ -1,5 +1,5 @@
/* Thread Priority Protect helpers.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <atomic.h>
diff --git a/nptl/tss_create.c b/nptl/tss_create.c
index c1b148c1f4..2842332303 100644
--- a/nptl/tss_create.c
+++ b/nptl/tss_create.c
@@ -1,5 +1,5 @@
/* C11 threads thread-specific creation implementation.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thrd_priv.h"
diff --git a/nptl/tss_delete.c b/nptl/tss_delete.c
index 0fc2975242..0af8724c29 100644
--- a/nptl/tss_delete.c
+++ b/nptl/tss_delete.c
@@ -1,5 +1,5 @@
/* C11 threads thread-specific delete implementation.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thrd_priv.h"
diff --git a/nptl/tss_get.c b/nptl/tss_get.c
index 5e09766ec1..5c297e4427 100644
--- a/nptl/tss_get.c
+++ b/nptl/tss_get.c
@@ -1,5 +1,5 @@
/* C11 threads thread-specific get implementation.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thrd_priv.h"
diff --git a/nptl/tss_set.c b/nptl/tss_set.c
index 03973d92c9..9d73df7e98 100644
--- a/nptl/tss_set.c
+++ b/nptl/tss_set.c
@@ -1,5 +1,5 @@
/* C11 threads thread-specific set implementation.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thrd_priv.h"
diff --git a/nptl/tst-_res1.c b/nptl/tst-_res1.c
index bf8fff4825..e7febef1b5 100644
--- a/nptl/tst-_res1.c
+++ b/nptl/tst-_res1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Test whether _res in glibc 2.1.x and earlier (before __res_state()
was introduced) works. Portable programs should never do the
diff --git a/nptl/tst-_res1mod1.c b/nptl/tst-_res1mod1.c
index 5321f27b06..93af21747c 100644
--- a/nptl/tst-_res1mod1.c
+++ b/nptl/tst-_res1mod1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <resolv.h>
#undef _res
diff --git a/nptl/tst-abstime.c b/nptl/tst-abstime.c
index 84d46b8d48..3c97c1187e 100644
--- a/nptl/tst-abstime.c
+++ b/nptl/tst-abstime.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@redhat.com>, 2010.
@@ -14,12 +14,14 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
#include <semaphore.h>
#include <stdio.h>
+#include <support/check.h>
+#include <support/xthread.h>
static pthread_cond_t c = PTHREAD_COND_INITIALIZER;
static pthread_mutex_t m1 = PTHREAD_MUTEX_INITIALIZER;
@@ -31,67 +33,41 @@ static sem_t sem;
static void *
th (void *arg)
{
- long int res = 0;
- int r;
struct timespec t = { -2, 0 };
- r = pthread_mutex_timedlock (&m1, &t);
- if (r != ETIMEDOUT)
- {
- puts ("pthread_mutex_timedlock did not return ETIMEDOUT");
- res = 1;
- }
- r = pthread_rwlock_timedrdlock (&rw1, &t);
- if (r != ETIMEDOUT)
- {
- puts ("pthread_rwlock_timedrdlock did not return ETIMEDOUT");
- res = 1;
- }
- r = pthread_rwlock_timedwrlock (&rw2, &t);
- if (r != ETIMEDOUT)
- {
- puts ("pthread_rwlock_timedwrlock did not return ETIMEDOUT");
- res = 1;
- }
- return (void *) res;
+ TEST_COMPARE (pthread_mutex_timedlock (&m1, &t), ETIMEDOUT);
+ TEST_COMPARE (pthread_mutex_clocklock (&m1, CLOCK_REALTIME, &t), ETIMEDOUT);
+ TEST_COMPARE (pthread_mutex_clocklock (&m1, CLOCK_MONOTONIC, &t), ETIMEDOUT);
+ TEST_COMPARE (pthread_rwlock_timedrdlock (&rw1, &t), ETIMEDOUT);
+ TEST_COMPARE (pthread_rwlock_timedwrlock (&rw2, &t), ETIMEDOUT);
+ TEST_COMPARE (pthread_rwlock_clockrdlock (&rw1, CLOCK_REALTIME, &t),
+ ETIMEDOUT);
+ TEST_COMPARE (pthread_rwlock_clockwrlock (&rw2, CLOCK_REALTIME, &t),
+ ETIMEDOUT);
+ TEST_COMPARE (pthread_rwlock_clockrdlock (&rw1, CLOCK_MONOTONIC, &t),
+ ETIMEDOUT);
+ TEST_COMPARE (pthread_rwlock_clockwrlock (&rw2, CLOCK_MONOTONIC, &t),
+ ETIMEDOUT);
+ return NULL;
}
static int
do_test (void)
{
- int res = 0;
- int r;
struct timespec t = { -2, 0 };
- pthread_t pth;
sem_init (&sem, 0, 0);
- r = sem_timedwait (&sem, &t);
- if (r != -1 || errno != ETIMEDOUT)
- {
- puts ("sem_timedwait did not fail with ETIMEDOUT");
- res = 1;
- }
+ TEST_COMPARE (sem_timedwait (&sem, &t), -1);
+ TEST_COMPARE (errno, ETIMEDOUT);
- pthread_mutex_lock (&m1);
- pthread_rwlock_wrlock (&rw1);
- pthread_rwlock_rdlock (&rw2);
- pthread_mutex_lock (&m2);
- if (pthread_create (&pth, 0, th, 0) != 0)
- {
- puts ("cannot create thread");
- return 1;
- }
- r = pthread_cond_timedwait (&c, &m2, &t);
- if (r != ETIMEDOUT)
- {
- puts ("pthread_cond_timedwait did not return ETIMEDOUT");
- res = 1;
- }
- void *thres;
- pthread_join (pth, &thres);
- return res | (thres != NULL);
+ xpthread_mutex_lock (&m1);
+ xpthread_rwlock_wrlock (&rw1);
+ xpthread_rwlock_rdlock (&rw2);
+ xpthread_mutex_lock (&m2);
+ pthread_t pth = xpthread_create (0, th, 0);
+ TEST_COMPARE (pthread_cond_timedwait (&c, &m2, &t), ETIMEDOUT);
+ xpthread_join (pth);
+ return 0;
}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/test-driver.c>
diff --git a/nptl/tst-align.c b/nptl/tst-align.c
index 5d11a55905..f262ca8490 100644
--- a/nptl/tst-align.c
+++ b/nptl/tst-align.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdbool.h>
diff --git a/nptl/tst-align3.c b/nptl/tst-align3.c
index d2c0022e87..c3e7cd826f 100644
--- a/nptl/tst-align3.c
+++ b/nptl/tst-align3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdbool.h>
diff --git a/nptl/tst-atfork1.c b/nptl/tst-atfork1.c
index ffea2c5627..5d5c40d62f 100644
--- a/nptl/tst-atfork1.c
+++ b/nptl/tst-atfork1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-atfork2.c b/nptl/tst-atfork2.c
index ec21627f4e..f20adbc982 100644
--- a/nptl/tst-atfork2.c
+++ b/nptl/tst-atfork2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <errno.h>
diff --git a/nptl/tst-atfork2mod.c b/nptl/tst-atfork2mod.c
index 11b00d7fb5..6c781f4372 100644
--- a/nptl/tst-atfork2mod.c
+++ b/nptl/tst-atfork2mod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
diff --git a/nptl/tst-attr1.c b/nptl/tst-attr1.c
index 8f28bf27b6..2c6f615c9d 100644
--- a/nptl/tst-attr1.c
+++ b/nptl/tst-attr1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-attr2.c b/nptl/tst-attr2.c
index db04d3f170..3065130c3c 100644
--- a/nptl/tst-attr2.c
+++ b/nptl/tst-attr2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-attr3.c b/nptl/tst-attr3.c
index 4f10a35605..e5d36ba179 100644
--- a/nptl/tst-attr3.c
+++ b/nptl/tst-attr3.c
@@ -1,5 +1,5 @@
/* pthread_getattr_np test.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <error.h>
diff --git a/nptl/tst-audit-threads-mod1.c b/nptl/tst-audit-threads-mod1.c
new file mode 100644
index 0000000000..4eae03a2b2
--- /dev/null
+++ b/nptl/tst-audit-threads-mod1.c
@@ -0,0 +1,74 @@
+/* Dummy audit library for test-audit-threads.
+
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <elf.h>
+#include <link.h>
+#include <stdio.h>
+#include <assert.h>
+#include <string.h>
+
+/* We must use a dummy LD_AUDIT module to force the dynamic loader to
+ *not* update the real PLT, and instead use a cached value for the
+ lazy resolution result. It is the update of that cached value that
+ we are testing for correctness by doing this. */
+
+/* Library to be audited. */
+#define LIB "tst-audit-threads-mod2.so"
+/* CALLNUM is the number of retNum functions. */
+#define CALLNUM 7999
+
+#define CONCATX(a, b) __CONCAT (a, b)
+
+static int previous = 0;
+
+unsigned int
+la_version (unsigned int ver)
+{
+ return 1;
+}
+
+unsigned int
+la_objopen (struct link_map *map, Lmid_t lmid, uintptr_t *cookie)
+{
+ return LA_FLG_BINDTO | LA_FLG_BINDFROM;
+}
+
+uintptr_t
+CONCATX(la_symbind, __ELF_NATIVE_CLASS) (ElfW(Sym) *sym,
+ unsigned int ndx,
+ uintptr_t *refcook,
+ uintptr_t *defcook,
+ unsigned int *flags,
+ const char *symname)
+{
+ const char * retnum = "retNum";
+ char * num = strstr (symname, retnum);
+ int n;
+ /* Validate if the symbols are getting called in the correct order.
+ This code is here to verify binutils does not optimize out the PLT
+ entries that require the symbol binding. */
+ if (num != NULL)
+ {
+ n = atoi (num);
+ assert (n >= previous);
+ assert (n <= CALLNUM);
+ previous = n;
+ }
+ return sym->st_value;
+}
diff --git a/nptl/tst-audit-threads-mod2.c b/nptl/tst-audit-threads-mod2.c
new file mode 100644
index 0000000000..95a8e760d7
--- /dev/null
+++ b/nptl/tst-audit-threads-mod2.c
@@ -0,0 +1,22 @@
+/* Shared object with a huge number of functions for test-audit-threads.
+
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+/* Define all the retNumN functions in a library. */
+#define definenum
+#include "tst-audit-threads.h"
diff --git a/nptl/tst-audit-threads.c b/nptl/tst-audit-threads.c
new file mode 100644
index 0000000000..f13865661b
--- /dev/null
+++ b/nptl/tst-audit-threads.c
@@ -0,0 +1,95 @@
+/* Test multi-threading using LD_AUDIT.
+
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+/* This test uses a dummy LD_AUDIT library (test-audit-threads-mod1) and a
+ library with a huge number of functions in order to validate lazy symbol
+ binding with an audit library. We use one thread per CPU to test that
+ concurrent lazy resolution does not have any defects which would cause
+ the process to fail. We use an LD_AUDIT library to force the testing of
+ the relocation resolution caching code in the dynamic loader i.e.
+ _dl_runtime_profile and _dl_profile_fixup. */
+
+#include <support/support.h>
+#include <support/xthread.h>
+#include <strings.h>
+#include <stdlib.h>
+#include <sys/sysinfo.h>
+
+/* Declare the functions we are going to call. */
+#define externnum
+#include "tst-audit-threads.h"
+#undef externnum
+
+int num_threads;
+pthread_barrier_t barrier;
+
+void
+sync_all (int num)
+{
+ pthread_barrier_wait (&barrier);
+}
+
+void
+call_all_ret_nums (void)
+{
+ /* Call each function one at a time from all threads. */
+#define callnum
+#include "tst-audit-threads.h"
+#undef callnum
+}
+
+void *
+thread_main (void *unused)
+{
+ call_all_ret_nums ();
+ return NULL;
+}
+
+#define STR2(X) #X
+#define STR(X) STR2(X)
+
+static int
+do_test (void)
+{
+ int i;
+ pthread_t *threads;
+
+ num_threads = get_nprocs ();
+ if (num_threads <= 1)
+ num_threads = 2;
+
+ /* Used to synchronize all the threads after calling each retNumN. */
+ xpthread_barrier_init (&barrier, NULL, num_threads);
+
+ threads = (pthread_t *) xcalloc (num_threads, sizeof (pthread_t));
+ for (i = 0; i < num_threads; i++)
+ threads[i] = xpthread_create(NULL, thread_main, NULL);
+
+ for (i = 0; i < num_threads; i++)
+ xpthread_join(threads[i]);
+
+ free (threads);
+
+ return 0;
+}
+
+/* This test usually takes less than 3s to run. However, there are cases that
+ take up to 30s. */
+#define TIMEOUT 60
+#include <support/test-driver.c>
diff --git a/nptl/tst-audit-threads.h b/nptl/tst-audit-threads.h
new file mode 100644
index 0000000000..81885d721c
--- /dev/null
+++ b/nptl/tst-audit-threads.h
@@ -0,0 +1,92 @@
+/* Helper header for test-audit-threads.
+
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+/* We use this helper to create a large number of functions, all of
+ which will be resolved lazily and thus have their PLT updated.
+ This is done to provide enough functions that we can statistically
+ observe a thread vs. PLT resolution failure if one exists. */
+
+#define CONCAT(a, b) a ## b
+#define NUM(x, y) CONCAT (x, y)
+
+#define FUNC10(x) \
+ FUNC (NUM (x, 0)); \
+ FUNC (NUM (x, 1)); \
+ FUNC (NUM (x, 2)); \
+ FUNC (NUM (x, 3)); \
+ FUNC (NUM (x, 4)); \
+ FUNC (NUM (x, 5)); \
+ FUNC (NUM (x, 6)); \
+ FUNC (NUM (x, 7)); \
+ FUNC (NUM (x, 8)); \
+ FUNC (NUM (x, 9))
+
+#define FUNC100(x) \
+ FUNC10 (NUM (x, 0)); \
+ FUNC10 (NUM (x, 1)); \
+ FUNC10 (NUM (x, 2)); \
+ FUNC10 (NUM (x, 3)); \
+ FUNC10 (NUM (x, 4)); \
+ FUNC10 (NUM (x, 5)); \
+ FUNC10 (NUM (x, 6)); \
+ FUNC10 (NUM (x, 7)); \
+ FUNC10 (NUM (x, 8)); \
+ FUNC10 (NUM (x, 9))
+
+#define FUNC1000(x) \
+ FUNC100 (NUM (x, 0)); \
+ FUNC100 (NUM (x, 1)); \
+ FUNC100 (NUM (x, 2)); \
+ FUNC100 (NUM (x, 3)); \
+ FUNC100 (NUM (x, 4)); \
+ FUNC100 (NUM (x, 5)); \
+ FUNC100 (NUM (x, 6)); \
+ FUNC100 (NUM (x, 7)); \
+ FUNC100 (NUM (x, 8)); \
+ FUNC100 (NUM (x, 9))
+
+#define FUNC7000() \
+ FUNC1000 (1); \
+ FUNC1000 (2); \
+ FUNC1000 (3); \
+ FUNC1000 (4); \
+ FUNC1000 (5); \
+ FUNC1000 (6); \
+ FUNC1000 (7);
+
+#ifdef FUNC
+# undef FUNC
+#endif
+
+#ifdef externnum
+# define FUNC(x) extern int CONCAT (retNum, x) (void)
+#endif
+
+#ifdef definenum
+# define FUNC(x) int CONCAT (retNum, x) (void) { return x; }
+#endif
+
+#ifdef callnum
+# define FUNC(x) CONCAT (retNum, x) (); sync_all (x)
+#endif
+
+/* A value of 7000 functions is chosen as an arbitrarily large
+ number of functions that will allow us enough attempts to
+ verify lazy resolution operation. */
+FUNC7000 ();
diff --git a/nptl/tst-backtrace1.c b/nptl/tst-backtrace1.c
index f79789bcd2..4e3f10b677 100644
--- a/nptl/tst-backtrace1.c
+++ b/nptl/tst-backtrace1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <execinfo.h>
#include <pthread.h>
diff --git a/nptl/tst-bad-schedattr.c b/nptl/tst-bad-schedattr.c
index 63062c7f64..e6b72a1dd2 100644
--- a/nptl/tst-bad-schedattr.c
+++ b/nptl/tst-bad-schedattr.c
@@ -1,5 +1,5 @@
/* Test that pthread_create diagnoses invalid scheduling parameters.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
diff --git a/nptl/tst-barrier1.c b/nptl/tst-barrier1.c
index ccc37890b4..944ca4bb66 100644
--- a/nptl/tst-barrier1.c
+++ b/nptl/tst-barrier1.c
@@ -1,5 +1,5 @@
/* Tests barrier initialization.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-barrier2.c b/nptl/tst-barrier2.c
index bab3dd016d..eb06db2b47 100644
--- a/nptl/tst-barrier2.c
+++ b/nptl/tst-barrier2.c
@@ -1,5 +1,5 @@
/* Tests process-shared barriers.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-barrier3.c b/nptl/tst-barrier3.c
index 6ff377f508..49b9cc63c2 100644
--- a/nptl/tst-barrier3.c
+++ b/nptl/tst-barrier3.c
@@ -1,5 +1,5 @@
/* Test of POSIX barriers.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
diff --git a/nptl/tst-barrier4.c b/nptl/tst-barrier4.c
index f60135c6e0..1fc952bd5e 100644
--- a/nptl/tst-barrier4.c
+++ b/nptl/tst-barrier4.c
@@ -1,5 +1,5 @@
/* This tests destruction of a barrier right after waiting on it.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-barrier5.c b/nptl/tst-barrier5.c
index 142359629d..5994e68987 100644
--- a/nptl/tst-barrier5.c
+++ b/nptl/tst-barrier5.c
@@ -1,5 +1,5 @@
/* This tests the barrier reset mechanism.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-basic1.c b/nptl/tst-basic1.c
index dc3aed98a5..960d8b34a2 100644
--- a/nptl/tst-basic1.c
+++ b/nptl/tst-basic1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
diff --git a/nptl/tst-basic2.c b/nptl/tst-basic2.c
index 1c1bc01eef..081ef32991 100644
--- a/nptl/tst-basic2.c
+++ b/nptl/tst-basic2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
diff --git a/nptl/tst-basic3.c b/nptl/tst-basic3.c
index e119a9bb72..b0661b8bfc 100644
--- a/nptl/tst-basic3.c
+++ b/nptl/tst-basic3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <signal.h>
diff --git a/nptl/tst-basic4.c b/nptl/tst-basic4.c
index 72adbac354..0453734915 100644
--- a/nptl/tst-basic4.c
+++ b/nptl/tst-basic4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-basic5.c b/nptl/tst-basic5.c
index ce67c5d698..e74a451b07 100644
--- a/nptl/tst-basic5.c
+++ b/nptl/tst-basic5.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-basic6.c b/nptl/tst-basic6.c
index eaf8001487..aedc1c447a 100644
--- a/nptl/tst-basic6.c
+++ b/nptl/tst-basic6.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
diff --git a/nptl/tst-call-once.c b/nptl/tst-call-once.c
index b677181d99..d5057639af 100644
--- a/nptl/tst-call-once.c
+++ b/nptl/tst-call-once.c
@@ -1,5 +1,5 @@
/* C11 threads call_once test.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <threads.h>
#include <stdio.h>
diff --git a/nptl/tst-cancel-self-cancelstate.c b/nptl/tst-cancel-self-cancelstate.c
index 8a10e36ba1..3d99202ef3 100644
--- a/nptl/tst-cancel-self-cancelstate.c
+++ b/nptl/tst-cancel-self-cancelstate.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
diff --git a/nptl/tst-cancel-self-canceltype.c b/nptl/tst-cancel-self-canceltype.c
index c7a8322d45..299589e08e 100644
--- a/nptl/tst-cancel-self-canceltype.c
+++ b/nptl/tst-cancel-self-canceltype.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
diff --git a/nptl/tst-cancel-self-cleanup.c b/nptl/tst-cancel-self-cleanup.c
index 8bf26cddd7..e14a7db572 100644
--- a/nptl/tst-cancel-self-cleanup.c
+++ b/nptl/tst-cancel-self-cleanup.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
static void
cleanup (void *cleanup_should_fail)
diff --git a/nptl/tst-cancel-self-testcancel.c b/nptl/tst-cancel-self-testcancel.c
index ef9e95868d..9a8daf8ea1 100644
--- a/nptl/tst-cancel-self-testcancel.c
+++ b/nptl/tst-cancel-self-testcancel.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
diff --git a/nptl/tst-cancel-self.c b/nptl/tst-cancel-self.c
index d8eb31cc4d..09068cc63c 100644
--- a/nptl/tst-cancel-self.c
+++ b/nptl/tst-cancel-self.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
diff --git a/nptl/tst-cancel-wrappers.sh b/nptl/tst-cancel-wrappers.sh
deleted file mode 100644
index 0c5b614287..0000000000
--- a/nptl/tst-cancel-wrappers.sh
+++ /dev/null
@@ -1,92 +0,0 @@
-#!/bin/sh
-# Test whether all cancelable functions are cancelable.
-# Copyright (C) 2002-2018 Free Software Foundation, Inc.
-# This file is part of the GNU C Library.
-# Contributed by Jakub Jelinek <jakub@redhat.com>, 2002.
-
-# 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
-# <http://www.gnu.org/licenses/>.
-
-NM="$1"; shift
-while [ $# -gt 0 ]; do
- ( $NM -P $1; echo 'end[end]:' ) | gawk ' BEGIN {
-C["accept"]=1
-C["close"]=1
-C["connect"]=1
-C["creat"]=1
-C["fcntl"]=1
-C["fdatasync"]=1
-C["fsync"]=1
-C["msgrcv"]=1
-C["msgsnd"]=1
-C["msync"]=1
-C["nanosleep"]=1
-C["open"]=1
-C["open64"]=1
-C["pause"]=1
-C["poll"]=1
-C["pread"]=1
-C["pread64"]=1
-C["pselect"]=1
-C["pwrite"]=1
-C["pwrite64"]=1
-C["read"]=1
-C["readv"]=1
-C["recv"]=1
-C["recvfrom"]=1
-C["recvmsg"]=1
-C["select"]=1
-C["send"]=1
-C["sendmsg"]=1
-C["sendto"]=1
-C["sigpause"]=1
-C["sigsuspend"]=1
-C["sigwait"]=1
-C["sigwaitinfo"]=1
-C["tcdrain"]=1
-C["wait"]=1
-C["waitid"]=1
-C["waitpid"]=1
-C["write"]=1
-C["writev"]=1
-C["__xpg_sigpause"]=1
-}
-/:$/ {
- if (seen)
- {
- if (!seen_enable || !seen_disable)
- {
- printf "in '$1'(%s) %s'\''s cancellation missing\n", object, seen
- ret = 1
- }
- }
- seen=""
- seen_enable=""
- seen_disable=""
- object=gensub(/^.*\[(.*)\]:$/, "\\1", 1, $0)
- next
-}
-{
- if (C[$1] && $2 ~ /^[TW]$/)
- seen=$1
- else if ($1 ~ /^([.]|)__(libc|pthread)_enable_asynccancel$/ && $2 == "U")
- seen_enable=1
- else if ($1 ~ /^([.]|)__(libc|pthread)_disable_asynccancel$/ && $2 == "U")
- seen_disable=1
-}
-END {
- exit ret
-}' || exit
- shift
-done
diff --git a/nptl/tst-cancel1.c b/nptl/tst-cancel1.c
index e2994c4106..9839a919bd 100644
--- a/nptl/tst-cancel1.c
+++ b/nptl/tst-cancel1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <signal.h>
diff --git a/nptl/tst-cancel10.c b/nptl/tst-cancel10.c
index b6852aa79d..7c6b9eac50 100644
--- a/nptl/tst-cancel10.c
+++ b/nptl/tst-cancel10.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
diff --git a/nptl/tst-cancel11.c b/nptl/tst-cancel11.c
index c68d12aa5c..a22c9cf49d 100644
--- a/nptl/tst-cancel11.c
+++ b/nptl/tst-cancel11.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-cancel12.c b/nptl/tst-cancel12.c
index 06b76a5440..9ea185a3b8 100644
--- a/nptl/tst-cancel12.c
+++ b/nptl/tst-cancel12.c
@@ -1,5 +1,5 @@
/* Test sem_wait cancellation for uncontended case.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-cancel13.c b/nptl/tst-cancel13.c
index 859ed5a960..7b211b972a 100644
--- a/nptl/tst-cancel13.c
+++ b/nptl/tst-cancel13.c
@@ -1,5 +1,5 @@
/* Test sem_wait cancellation for contended case.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-cancel14.c b/nptl/tst-cancel14.c
index 103aad4fb9..d4ed83d27f 100644
--- a/nptl/tst-cancel14.c
+++ b/nptl/tst-cancel14.c
@@ -1,5 +1,5 @@
/* Test sem_timedwait cancellation for uncontended case.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-cancel15.c b/nptl/tst-cancel15.c
index e927856228..747a2455ef 100644
--- a/nptl/tst-cancel15.c
+++ b/nptl/tst-cancel15.c
@@ -1,5 +1,5 @@
/* Test sem_timedwait cancellation for contended case.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-cancel16.c b/nptl/tst-cancel16.c
index 89b109701d..80561b1d61 100644
--- a/nptl/tst-cancel16.c
+++ b/nptl/tst-cancel16.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-cancel17.c b/nptl/tst-cancel17.c
index e061d501c8..aa01404698 100644
--- a/nptl/tst-cancel17.c
+++ b/nptl/tst-cancel17.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <aio.h>
#include <errno.h>
diff --git a/nptl/tst-cancel18.c b/nptl/tst-cancel18.c
index b1c3f487e4..5015efd964 100644
--- a/nptl/tst-cancel18.c
+++ b/nptl/tst-cancel18.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-cancel19.c b/nptl/tst-cancel19.c
index e407c519db..d585bbd42c 100644
--- a/nptl/tst-cancel19.c
+++ b/nptl/tst-cancel19.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <error.h>
@@ -281,6 +281,5 @@ do_test (void)
return ret;
}
-#define TIMEOUT 20
#define TEST_FUNCTION do_test ()
#include "../test-skeleton.c"
diff --git a/nptl/tst-cancel2.c b/nptl/tst-cancel2.c
index e2926bd065..b22bd496a7 100644
--- a/nptl/tst-cancel2.c
+++ b/nptl/tst-cancel2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <signal.h>
diff --git a/nptl/tst-cancel20.c b/nptl/tst-cancel20.c
index 5c0c4f1b0e..96dfb71fa9 100644
--- a/nptl/tst-cancel20.c
+++ b/nptl/tst-cancel20.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-cancel21.c b/nptl/tst-cancel21.c
index b10fdbc136..361510b027 100644
--- a/nptl/tst-cancel21.c
+++ b/nptl/tst-cancel21.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-cancel22.c b/nptl/tst-cancel22.c
index bc51420e60..3a5cca0a49 100644
--- a/nptl/tst-cancel22.c
+++ b/nptl/tst-cancel22.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
@@ -115,6 +115,5 @@ do_test (void)
return 0;
}
-#define TIMEOUT 5
#define TEST_FUNCTION do_test ()
#include "../test-skeleton.c"
diff --git a/nptl/tst-cancel25.c b/nptl/tst-cancel25.c
index c724d8ae2d..c6e1c23c02 100644
--- a/nptl/tst-cancel25.c
+++ b/nptl/tst-cancel25.c
@@ -2,6 +2,7 @@
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
+#include <internal-signals.h>
static pthread_barrier_t b;
@@ -11,7 +12,6 @@ static pthread_t th2;
static void *
tf2 (void *arg)
{
-#ifdef SIGCANCEL
sigset_t mask;
if (pthread_sigmask (SIG_SETMASK, NULL, &mask) != 0)
{
@@ -23,7 +23,6 @@ tf2 (void *arg)
puts ("SIGCANCEL blocked in new thread");
exit (1);
}
-#endif
/* Sync with the main thread so that we do not test anything else. */
int e = pthread_barrier_wait (&b);
@@ -169,5 +168,4 @@ do_test (void)
}
#define TEST_FUNCTION do_test ()
-#define TIMEOUT 4
#include "../test-skeleton.c"
diff --git a/nptl/tst-cancel26.c b/nptl/tst-cancel26.c
index 52b10d216e..a47a083abc 100644
--- a/nptl/tst-cancel26.c
+++ b/nptl/tst-cancel26.c
@@ -1,5 +1,5 @@
/* Check for failure paths handling for cancellation points.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-cancel27.c b/nptl/tst-cancel27.c
index 48d7783055..8e05fcf5b9 100644
--- a/nptl/tst-cancel27.c
+++ b/nptl/tst-cancel27.c
@@ -1,5 +1,5 @@
/* Check for failure paths handling for cancellation points.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Similar to tst-cancel26.c but with pthread cancel state set to
PTHREAD_CANCEL_DISABLE. */
diff --git a/nptl/tst-cancel3.c b/nptl/tst-cancel3.c
index a82c8f2521..ea595ba73e 100644
--- a/nptl/tst-cancel3.c
+++ b/nptl/tst-cancel3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <signal.h>
diff --git a/nptl/tst-cancel4-common.c b/nptl/tst-cancel4-common.c
index c6eee735db..0dea00c7d5 100644
--- a/nptl/tst-cancel4-common.c
+++ b/nptl/tst-cancel4-common.c
@@ -1,6 +1,6 @@
/* Common file for all tst-cancel4_*
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
static int
do_test (void)
diff --git a/nptl/tst-cancel4-common.h b/nptl/tst-cancel4-common.h
index 10cc4f36ce..6a84f29658 100644
--- a/nptl/tst-cancel4-common.h
+++ b/nptl/tst-cancel4-common.h
@@ -1,6 +1,6 @@
/* Common definition for tst-cancel4_* tests.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
@@ -68,10 +68,10 @@ static void
set_socket_buffer (int s)
{
int val = 1;
- socklen_t len = sizeof(val);
+ socklen_t len = sizeof (val);
TEST_VERIFY_EXIT (setsockopt (s, SOL_SOCKET, SO_SNDBUF, &val,
- sizeof(val)) == 0);
+ sizeof (val)) == 0);
TEST_VERIFY_EXIT (getsockopt (s, SOL_SOCKET, SO_SNDBUF, &val, &len) == 0);
TEST_VERIFY_EXIT (val < WRITE_BUFFER_SIZE);
}
diff --git a/nptl/tst-cancel4.c b/nptl/tst-cancel4.c
index 05325385b1..d8b2fbc7a8 100644
--- a/nptl/tst-cancel4.c
+++ b/nptl/tst-cancel4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* NOTE: this tests functionality beyond POSIX. POSIX does not allow
exit to be called more than once. */
@@ -166,6 +166,10 @@ tf_write (void *arg)
char buf[WRITE_BUFFER_SIZE];
memset (buf, '\0', sizeof (buf));
s = write (fd, buf, sizeof (buf));
+ /* The write can return a value higher than 0 (meaning partial write)
+ due to the SIGCANCEL, but the thread may still be pending
+ cancellation. */
+ pthread_testcancel ();
pthread_cleanup_pop (0);
@@ -743,6 +747,10 @@ tf_send (void *arg)
char mem[WRITE_BUFFER_SIZE];
send (tempfd2, mem, arg == NULL ? sizeof (mem) : 1, 0);
+ /* The send can return a value higher than 0 (meaning partial send)
+ due to the SIGCANCEL, but the thread may still be pending
+ cancellation. */
+ pthread_testcancel ();
pthread_cleanup_pop (0);
diff --git a/nptl/tst-cancel4_1.c b/nptl/tst-cancel4_1.c
index 17cb9701a8..10ae58e6e6 100644
--- a/nptl/tst-cancel4_1.c
+++ b/nptl/tst-cancel4_1.c
@@ -1,6 +1,6 @@
/* Check sendmmsg cancellation.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stddef.h>
diff --git a/nptl/tst-cancel4_2.c b/nptl/tst-cancel4_2.c
index 559eea241d..c334e6d9f2 100644
--- a/nptl/tst-cancel4_2.c
+++ b/nptl/tst-cancel4_2.c
@@ -1,6 +1,6 @@
/* Check recvmmsg cancellation.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stddef.h>
diff --git a/nptl/tst-cancel6.c b/nptl/tst-cancel6.c
index 75ee32ceac..19e0ea092d 100644
--- a/nptl/tst-cancel6.c
+++ b/nptl/tst-cancel6.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
diff --git a/nptl/tst-cancel7.c b/nptl/tst-cancel7.c
index 1708430058..d133f30a57 100644
--- a/nptl/tst-cancel7.c
+++ b/nptl/tst-cancel7.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
@@ -205,5 +205,4 @@ cmdline_process (int c)
#define CMDLINE_PROCESS cmdline_process
#define CLEANUP_HANDLER do_cleanup
#define PREPARE do_prepare
-#define TIMEOUT 5
#include <support/test-driver.c>
diff --git a/nptl/tst-cancel8.c b/nptl/tst-cancel8.c
index 674172b204..7c7d0e61f6 100644
--- a/nptl/tst-cancel8.c
+++ b/nptl/tst-cancel8.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
diff --git a/nptl/tst-cancel9.c b/nptl/tst-cancel9.c
index ecbe8aca27..d012364e26 100644
--- a/nptl/tst-cancel9.c
+++ b/nptl/tst-cancel9.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fcntl.h>
#include <pthread.h>
diff --git a/nptl/tst-cleanup0.c b/nptl/tst-cleanup0.c
index a5364fb943..41bda86b04 100644
--- a/nptl/tst-cleanup0.c
+++ b/nptl/tst-cleanup0.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
diff --git a/nptl/tst-cleanup1.c b/nptl/tst-cleanup1.c
index f4da472ab1..f7c43e12c7 100644
--- a/nptl/tst-cleanup1.c
+++ b/nptl/tst-cleanup1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
diff --git a/nptl/tst-cleanup2.c b/nptl/tst-cleanup2.c
index 0fe98ee0de..607bcbec2a 100644
--- a/nptl/tst-cleanup2.c
+++ b/nptl/tst-cleanup2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Bao Duong <bduong@progress.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <setjmp.h>
#include <signal.h>
diff --git a/nptl/tst-cleanup3.c b/nptl/tst-cleanup3.c
index 8444957f48..5d0a6724f7 100644
--- a/nptl/tst-cleanup3.c
+++ b/nptl/tst-cleanup3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
diff --git a/nptl/tst-cleanup4.c b/nptl/tst-cleanup4.c
index 57c22f6d00..cd759308a5 100644
--- a/nptl/tst-cleanup4.c
+++ b/nptl/tst-cleanup4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
diff --git a/nptl/tst-cleanup4aux.c b/nptl/tst-cleanup4aux.c
index a295605a9e..8de514f8db 100644
--- a/nptl/tst-cleanup4aux.c
+++ b/nptl/tst-cleanup4aux.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
diff --git a/nptl/tst-clock1.c b/nptl/tst-clock1.c
index 1f600ca4a6..9b8751f1ff 100644
--- a/nptl/tst-clock1.c
+++ b/nptl/tst-clock1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
diff --git a/nptl/tst-clock2.c b/nptl/tst-clock2.c
index 5615e6b18a..db5e55c7a8 100644
--- a/nptl/tst-clock2.c
+++ b/nptl/tst-clock2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-cnd-basic.c b/nptl/tst-cnd-basic.c
index eb2fb6a77e..fc19301de9 100644
--- a/nptl/tst-cnd-basic.c
+++ b/nptl/tst-cnd-basic.c
@@ -1,5 +1,5 @@
/* C11 threads condition variable tests.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <threads.h>
#include <stdio.h>
diff --git a/nptl/tst-cnd-broadcast.c b/nptl/tst-cnd-broadcast.c
index 62a4ab5a39..cc971060a3 100644
--- a/nptl/tst-cnd-broadcast.c
+++ b/nptl/tst-cnd-broadcast.c
@@ -1,5 +1,5 @@
/* C11 threads condition broadcast variable tests.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <threads.h>
#include <stdbool.h>
diff --git a/nptl/tst-cnd-timedwait.c b/nptl/tst-cnd-timedwait.c
index 7d8a8e3557..8d5016f1ed 100644
--- a/nptl/tst-cnd-timedwait.c
+++ b/nptl/tst-cnd-timedwait.c
@@ -1,5 +1,5 @@
/* C11 threads condition timed wait variable tests.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <threads.h>
#include <stdio.h>
diff --git a/nptl/tst-compat-forwarder-mod.c b/nptl/tst-compat-forwarder-mod.c
index f1d2cd56b2..86585b01bf 100644
--- a/nptl/tst-compat-forwarder-mod.c
+++ b/nptl/tst-compat-forwarder-mod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2017-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Call the function system through a statically initialized pointer. */
diff --git a/nptl/tst-compat-forwarder.c b/nptl/tst-compat-forwarder.c
index a837ed7263..9571df120b 100644
--- a/nptl/tst-compat-forwarder.c
+++ b/nptl/tst-compat-forwarder.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2017-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Test that the compat forwaders in libpthread work correctly. */
diff --git a/nptl/tst-cond-except.c b/nptl/tst-cond-except.c
index c98731fe5d..0d18796551 100644
--- a/nptl/tst-cond-except.c
+++ b/nptl/tst-cond-except.c
@@ -1,5 +1,5 @@
/* Verify that exception table for pthread_cond_wait is correct.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
@@ -106,5 +106,4 @@ out:
}
#define TEST_FUNCTION do_test ()
-#define TIMEOUT 5
#include "../test-skeleton.c"
diff --git a/nptl/tst-cond1.c b/nptl/tst-cond1.c
index 88a41e5bf7..db5feeb22a 100644
--- a/nptl/tst-cond1.c
+++ b/nptl/tst-cond1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <error.h>
#include <pthread.h>
diff --git a/nptl/tst-cond10.c b/nptl/tst-cond10.c
index dc10b59b53..06bf9fb36e 100644
--- a/nptl/tst-cond10.c
+++ b/nptl/tst-cond10.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <error.h>
#include <pthread.h>
diff --git a/nptl/tst-cond11-static.c b/nptl/tst-cond11-static.c
new file mode 100644
index 0000000000..9bccb8ec8b
--- /dev/null
+++ b/nptl/tst-cond11-static.c
@@ -0,0 +1 @@
+#include "tst-cond11.c"
diff --git a/nptl/tst-cond11.c b/nptl/tst-cond11.c
index eebc8ac557..afb15ef66e 100644
--- a/nptl/tst-cond11.c
+++ b/nptl/tst-cond11.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
@@ -14,152 +14,71 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
#include <stdio.h>
#include <time.h>
#include <unistd.h>
+#include <support/check.h>
+#include <support/test-driver.h>
+#include <support/timespec.h>
+#include <support/xthread.h>
+#include <support/xtime.h>
+/* A bogus clock value that tells run_test to use pthread_cond_timedwait
+ rather than pthread_condclockwait. */
+#define CLOCK_USE_ATTR_CLOCK (-1)
#if defined _POSIX_CLOCK_SELECTION && _POSIX_CLOCK_SELECTION >= 0
static int
-run_test (clockid_t cl)
+run_test (clockid_t attr_clock, clockid_t wait_clock)
{
pthread_condattr_t condattr;
pthread_cond_t cond;
pthread_mutexattr_t mutattr;
pthread_mutex_t mut;
- printf ("clock = %d\n", (int) cl);
+ verbose_printf ("attr_clock = %d\n", (int) attr_clock);
- if (pthread_condattr_init (&condattr) != 0)
- {
- puts ("condattr_init failed");
- return 1;
- }
-
- if (pthread_condattr_setclock (&condattr, cl) != 0)
- {
- puts ("condattr_setclock failed");
- return 1;
- }
-
- clockid_t cl2;
- if (pthread_condattr_getclock (&condattr, &cl2) != 0)
- {
- puts ("condattr_getclock failed");
- return 1;
- }
- if (cl != cl2)
- {
- printf ("condattr_getclock returned wrong value: %d, expected %d\n",
- (int) cl2, (int) cl);
- return 1;
- }
-
- if (pthread_cond_init (&cond, &condattr) != 0)
- {
- puts ("cond_init failed");
- return 1;
- }
-
- if (pthread_condattr_destroy (&condattr) != 0)
- {
- puts ("condattr_destroy failed");
- return 1;
- }
-
- if (pthread_mutexattr_init (&mutattr) != 0)
- {
- puts ("mutexattr_init failed");
- return 1;
- }
-
- if (pthread_mutexattr_settype (&mutattr, PTHREAD_MUTEX_ERRORCHECK) != 0)
- {
- puts ("mutexattr_settype failed");
- return 1;
- }
+ TEST_COMPARE (pthread_condattr_init (&condattr), 0);
+ TEST_COMPARE (pthread_condattr_setclock (&condattr, attr_clock), 0);
- if (pthread_mutex_init (&mut, &mutattr) != 0)
- {
- puts ("mutex_init failed");
- return 1;
- }
+ clockid_t attr_clock_read;
+ TEST_COMPARE (pthread_condattr_getclock (&condattr, &attr_clock_read), 0);
+ TEST_COMPARE (attr_clock, attr_clock_read);
- if (pthread_mutexattr_destroy (&mutattr) != 0)
- {
- puts ("mutexattr_destroy failed");
- return 1;
- }
+ TEST_COMPARE (pthread_cond_init (&cond, &condattr), 0);
+ TEST_COMPARE (pthread_condattr_destroy (&condattr), 0);
- if (pthread_mutex_lock (&mut) != 0)
- {
- puts ("mutex_lock failed");
- return 1;
- }
+ xpthread_mutexattr_init (&mutattr);
+ xpthread_mutexattr_settype (&mutattr, PTHREAD_MUTEX_ERRORCHECK);
+ xpthread_mutex_init (&mut, &mutattr);
+ xpthread_mutexattr_destroy (&mutattr);
- if (pthread_mutex_lock (&mut) != EDEADLK)
- {
- puts ("2nd mutex_lock did not return EDEADLK");
- return 1;
- }
+ xpthread_mutex_lock (&mut);
+ TEST_COMPARE (pthread_mutex_lock (&mut), EDEADLK);
- struct timespec ts;
- if (clock_gettime (cl, &ts) != 0)
- {
- puts ("clock_gettime failed");
- return 1;
- }
+ struct timespec ts_timeout;
+ xclock_gettime (wait_clock == CLOCK_USE_ATTR_CLOCK ? attr_clock : wait_clock,
+ &ts_timeout);
/* Wait one second. */
- ++ts.tv_sec;
-
- int e = pthread_cond_timedwait (&cond, &mut, &ts);
- if (e == 0)
- {
- puts ("cond_timedwait succeeded");
- return 1;
- }
- else if (e != ETIMEDOUT)
- {
- puts ("cond_timedwait did not return ETIMEDOUT");
- return 1;
- }
-
- struct timespec ts2;
- if (clock_gettime (cl, &ts2) != 0)
- {
- puts ("second clock_gettime failed");
- return 1;
- }
-
- if (ts2.tv_sec < ts.tv_sec
- || (ts2.tv_sec == ts.tv_sec && ts2.tv_nsec < ts.tv_nsec))
- {
- puts ("timeout too short");
- return 1;
- }
+ ++ts_timeout.tv_sec;
- if (pthread_mutex_unlock (&mut) != 0)
- {
- puts ("mutex_unlock failed");
- return 1;
- }
+ if (wait_clock == CLOCK_USE_ATTR_CLOCK) {
+ TEST_COMPARE (pthread_cond_timedwait (&cond, &mut, &ts_timeout), ETIMEDOUT);
+ TEST_TIMESPEC_BEFORE_NOW (ts_timeout, attr_clock);
+ } else {
+ TEST_COMPARE (pthread_cond_clockwait (&cond, &mut, wait_clock, &ts_timeout),
+ ETIMEDOUT);
+ TEST_TIMESPEC_BEFORE_NOW (ts_timeout, wait_clock);
+ }
- if (pthread_mutex_destroy (&mut) != 0)
- {
- puts ("mutex_destroy failed");
- return 1;
- }
-
- if (pthread_cond_destroy (&cond) != 0)
- {
- puts ("cond_destroy failed");
- return 1;
- }
+ xpthread_mutex_unlock (&mut);
+ xpthread_mutex_destroy (&mut);
+ TEST_COMPARE (pthread_cond_destroy (&cond), 0);
return 0;
}
@@ -171,12 +90,11 @@ do_test (void)
{
#if !defined _POSIX_CLOCK_SELECTION || _POSIX_CLOCK_SELECTION == -1
- puts ("_POSIX_CLOCK_SELECTION not supported, test skipped");
- return 0;
+ FAIL_UNSUPPORTED ("_POSIX_CLOCK_SELECTION not supported, test skipped");
#else
- int res = run_test (CLOCK_REALTIME);
+ run_test (CLOCK_REALTIME, CLOCK_USE_ATTR_CLOCK);
# if defined _POSIX_MONOTONIC_CLOCK && _POSIX_MONOTONIC_CLOCK >= 0
# if _POSIX_MONOTONIC_CLOCK == 0
@@ -184,21 +102,21 @@ do_test (void)
if (e < 0)
puts ("CLOCK_MONOTONIC not supported");
else if (e == 0)
- {
- puts ("sysconf (_SC_MONOTONIC_CLOCK) must not return 0");
- res = 1;
- }
+ FAIL_RET ("sysconf (_SC_MONOTONIC_CLOCK) must not return 0");
else
+ {
# endif
- res |= run_test (CLOCK_MONOTONIC);
+ run_test (CLOCK_MONOTONIC, CLOCK_USE_ATTR_CLOCK);
+ run_test (CLOCK_REALTIME, CLOCK_MONOTONIC);
+ run_test (CLOCK_MONOTONIC, CLOCK_MONOTONIC);
+ run_test (CLOCK_MONOTONIC, CLOCK_REALTIME);
+ }
# else
puts ("_POSIX_MONOTONIC_CLOCK not defined");
# endif
- return res;
+ return 0;
#endif
}
-#define TIMEOUT 3
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/test-driver.c>
diff --git a/nptl/tst-cond12.c b/nptl/tst-cond12.c
index 4e91fb211f..2519b9bc39 100644
--- a/nptl/tst-cond12.c
+++ b/nptl/tst-cond12.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-cond14.c b/nptl/tst-cond14.c
index fbd2ffd4da..7572ff8beb 100644
--- a/nptl/tst-cond14.c
+++ b/nptl/tst-cond14.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
@@ -113,5 +113,4 @@ do_test (void)
#define TEST_FUNCTION do_test ()
-#define TIMEOUT 3
#include "../test-skeleton.c"
diff --git a/nptl/tst-cond15.c b/nptl/tst-cond15.c
index 8167042492..91cd6988b9 100644
--- a/nptl/tst-cond15.c
+++ b/nptl/tst-cond15.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
@@ -155,5 +155,4 @@ do_test (void)
#define TEST_FUNCTION do_test ()
-#define TIMEOUT 6
#include "../test-skeleton.c"
diff --git a/nptl/tst-cond16.c b/nptl/tst-cond16.c
index 8cd96a50ae..cce7208e6a 100644
--- a/nptl/tst-cond16.c
+++ b/nptl/tst-cond16.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <limits.h>
diff --git a/nptl/tst-cond18.c b/nptl/tst-cond18.c
index f02ffe6d02..033770ea2b 100644
--- a/nptl/tst-cond18.c
+++ b/nptl/tst-cond18.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <limits.h>
diff --git a/nptl/tst-cond19.c b/nptl/tst-cond19.c
index f00229c0b8..a736387e8f 100644
--- a/nptl/tst-cond19.c
+++ b/nptl/tst-cond19.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-cond2.c b/nptl/tst-cond2.c
index a7c7cc2ec8..0cf4cacfaa 100644
--- a/nptl/tst-cond2.c
+++ b/nptl/tst-cond2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <error.h>
#include <pthread.h>
diff --git a/nptl/tst-cond20.c b/nptl/tst-cond20.c
index 6df6f17d6b..a862f3815b 100644
--- a/nptl/tst-cond20.c
+++ b/nptl/tst-cond20.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
diff --git a/nptl/tst-cond23.c b/nptl/tst-cond23.c
index bd98330b9b..9024aaaea2 100644
--- a/nptl/tst-cond23.c
+++ b/nptl/tst-cond23.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 2008.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-cond24.c b/nptl/tst-cond24.c
index 9fd2c4915c..b729c1e980 100644
--- a/nptl/tst-cond24.c
+++ b/nptl/tst-cond24.c
@@ -1,5 +1,5 @@
/* Verify that condition variables synchronized by PI mutexes don't hang.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
@@ -244,6 +244,5 @@ do_test (void)
return do_test_wait (thread_fun_timed);
}
-#define TIMEOUT 20
#define TEST_FUNCTION do_test ()
#include "../test-skeleton.c"
diff --git a/nptl/tst-cond25.c b/nptl/tst-cond25.c
index ff676a87e0..48187e11b6 100644
--- a/nptl/tst-cond25.c
+++ b/nptl/tst-cond25.c
@@ -1,6 +1,6 @@
/* Verify that condition variables synchronized by PI mutexes don't hang on
on cancellation.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
@@ -285,5 +285,4 @@ do_test (int argc, char **argv)
return do_test_wait (timed_waiter);
}
-#define TIMEOUT 5
#include "../test-skeleton.c"
diff --git a/nptl/tst-cond26.c b/nptl/tst-cond26.c
new file mode 100644
index 0000000000..8b1f63af75
--- /dev/null
+++ b/nptl/tst-cond26.c
@@ -0,0 +1,77 @@
+/* Test unsupported/bad clocks passed to pthread_cond_clockwait.
+
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <pthread.h>
+#include <stdio.h>
+#include <time.h>
+#include <unistd.h>
+#include <support/check.h>
+#include <support/timespec.h>
+#include <support/xthread.h>
+
+static pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
+static pthread_mutex_t mut = PTHREAD_MUTEX_INITIALIZER;
+
+#define NOT_A_VALID_CLOCK 123456
+
+static int
+do_test (void)
+{
+ xpthread_mutex_lock (&mut);
+
+ const struct timespec ts = make_timespec (0, 0);
+
+ /* These clocks are meaningless to sem_clockwait. */
+#if defined(CLOCK_PROCESS_CPUTIME_ID)
+ TEST_COMPARE (pthread_cond_clockwait (&cond, &mut,
+ CLOCK_PROCESS_CPUTIME_ID, &ts), EINVAL);
+#endif
+#if defined(CLOCK_THREAD_CPUTIME_ID)
+ TEST_COMPARE (pthread_cond_clockwait (&cond, &mut,
+ CLOCK_THREAD_CPUTIME_ID, &ts), EINVAL);
+#endif
+
+ /* These clocks might be meaningful, but are currently unsupported
+ by pthread_cond_clockwait. */
+#if defined(CLOCK_REALTIME_COARSE)
+ TEST_COMPARE (pthread_cond_clockwait (&cond, &mut,
+ CLOCK_REALTIME_COARSE, &ts), EINVAL);
+#endif
+#if defined(CLOCK_MONOTONIC_RAW)
+ TEST_COMPARE (pthread_cond_clockwait (&cond, &mut,
+ CLOCK_MONOTONIC_RAW, &ts), EINVAL);
+#endif
+#if defined(CLOCK_MONOTONIC_COARSE)
+ TEST_COMPARE (pthread_cond_clockwait (&cond, &mut,
+ CLOCK_MONOTONIC_COARSE, &ts), EINVAL);
+#endif
+#if defined(CLOCK_BOOTTIME)
+ TEST_COMPARE (pthread_cond_clockwait (&cond, &mut,
+ CLOCK_BOOTTIME, &ts), EINVAL);
+#endif
+
+ /* This is a completely invalid clock. */
+ TEST_COMPARE (pthread_cond_clockwait (&cond, &mut,
+ NOT_A_VALID_CLOCK, &ts), EINVAL);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/nptl/tst-cond27.c b/nptl/tst-cond27.c
new file mode 100644
index 0000000000..a25cc8b661
--- /dev/null
+++ b/nptl/tst-cond27.c
@@ -0,0 +1,66 @@
+/* Test pthread_cond_clockwait timeout.
+
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <pthread.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <sys/time.h>
+#include <support/check.h>
+#include <support/timespec.h>
+#include <support/xthread.h>
+
+
+static pthread_mutex_t mut = PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP;
+static pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
+
+
+static int
+do_test_clock (clockid_t clockid)
+{
+ /* Get the mutex. */
+ xpthread_mutex_lock (&mut);
+
+ /* Waiting for the condition will fail. But we want the timeout here. */
+ const struct timespec ts_now = xclock_now (clockid);
+ const struct timespec ts_timeout =
+ timespec_add (ts_now, make_timespec (0, 500000000));
+
+ /* In theory pthread_cond_clockwait could return zero here due to
+ spurious wakeup. However that can't happen without a signal or an
+ additional waiter. */
+ TEST_COMPARE (pthread_cond_clockwait (&cond, &mut, clockid, &ts_timeout),
+ ETIMEDOUT);
+
+ xpthread_mutex_unlock (&mut);
+
+ return 0;
+}
+
+static int
+do_test (void)
+{
+ do_test_clock (CLOCK_MONOTONIC);
+ do_test_clock (CLOCK_REALTIME);
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/nptl/tst-cond3.c b/nptl/tst-cond3.c
index c82b199860..94d4e14faf 100644
--- a/nptl/tst-cond3.c
+++ b/nptl/tst-cond3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
diff --git a/nptl/tst-cond4.c b/nptl/tst-cond4.c
index 895ceec6ae..dc3c03dbe3 100644
--- a/nptl/tst-cond4.c
+++ b/nptl/tst-cond4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-cond5.c b/nptl/tst-cond5.c
index 854b2a0b8b..b02e094069 100644
--- a/nptl/tst-cond5.c
+++ b/nptl/tst-cond5.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-cond6.c b/nptl/tst-cond6.c
index f1e9f587df..1240b4feeb 100644
--- a/nptl/tst-cond6.c
+++ b/nptl/tst-cond6.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-cond7.c b/nptl/tst-cond7.c
index 19aff62efb..32539062e9 100644
--- a/nptl/tst-cond7.c
+++ b/nptl/tst-cond7.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-cond8.c b/nptl/tst-cond8.c
index 304b7b04b3..c4b62003af 100644
--- a/nptl/tst-cond8.c
+++ b/nptl/tst-cond8.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-cond9.c b/nptl/tst-cond9.c
index 1e6283f83a..0106190b13 100644
--- a/nptl/tst-cond9.c
+++ b/nptl/tst-cond9.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-context1.c b/nptl/tst-context1.c
index 3bad6080f9..a73f88ac3f 100644
--- a/nptl/tst-context1.c
+++ b/nptl/tst-context1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <error.h>
diff --git a/nptl/tst-create-detached.c b/nptl/tst-create-detached.c
index 635cf9a26b..76834f0886 100644
--- a/nptl/tst-create-detached.c
+++ b/nptl/tst-create-detached.c
@@ -1,5 +1,5 @@
/* Bug 20116: Test rapid creation of detached threads.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
/* The goal of the test is to trigger a failure if the parent touches
any part of the thread descriptor after the detached thread has
diff --git a/nptl/tst-default-attr.c b/nptl/tst-default-attr.c
index 61b26ce42e..70cf9928ac 100644
--- a/nptl/tst-default-attr.c
+++ b/nptl/tst-default-attr.c
@@ -1,6 +1,6 @@
/* Verify that pthread_[gs]etattr_default_np work correctly.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
diff --git a/nptl/tst-detach1.c b/nptl/tst-detach1.c
index 60f30c2054..ff424fa1f6 100644
--- a/nptl/tst-detach1.c
+++ b/nptl/tst-detach1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
diff --git a/nptl/tst-eintr1.c b/nptl/tst-eintr1.c
index 4647cdb6d3..0ac3d3f8c2 100644
--- a/nptl/tst-eintr1.c
+++ b/nptl/tst-eintr1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
@@ -22,11 +22,8 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-
-static int do_test (void);
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/check.h>
+#include <support/xthread.h>
#include "eintr.c"
@@ -43,38 +40,10 @@ tf1 (void *arg)
{
while (1)
{
- pthread_t th;
-
- int e = pthread_create (&th, NULL, tf2, NULL);
- if (e != 0)
- {
- if (e == EINTR)
- {
- puts ("pthread_create returned EINTR");
- exit (1);
- }
-
- char buf[100];
- printf ("tf1: pthread_create failed: %s\n",
- strerror_r (e, buf, sizeof (buf)));
- exit (1);
- }
-
- e = pthread_join (th, NULL);
- if (e != 0)
- {
- if (e == EINTR)
- {
- puts ("pthread_join returned EINTR");
- exit (1);
- }
-
- char buf[100];
- printf ("tf1: pthread_join failed: %s\n",
- strerror_r (e, buf, sizeof (buf)));
- exit (1);
- }
+ pthread_t th = xpthread_create (NULL, tf2, NULL);
+ xpthread_join (th);
}
+ return NULL;
}
@@ -85,20 +54,12 @@ do_test (void)
int i;
for (i = 0; i < 10; ++i)
- {
- pthread_t th;
- int e = pthread_create (&th, NULL, tf1, NULL);
- if (e != 0)
- {
- char buf[100];
- printf ("main: pthread_create failed: %s\n",
- strerror_r (e, buf, sizeof (buf)));
- exit (1);
- }
- }
+ xpthread_create (NULL, tf1, NULL);
delayed_exit (3);
/* This call must never return. */
(void) tf1 (NULL);
return 1;
}
+
+#include <support/test-driver.c>
diff --git a/nptl/tst-eintr2.c b/nptl/tst-eintr2.c
index f19e09a2d9..fe76b69c7c 100644
--- a/nptl/tst-eintr2.c
+++ b/nptl/tst-eintr2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
@@ -23,11 +23,9 @@
#include <stdlib.h>
#include <string.h>
#include <sys/time.h>
-
-static int do_test (void);
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/check.h>
+#include <support/timespec.h>
+#include <support/xtime.h>
#include "eintr.c"
@@ -39,12 +37,8 @@ static pthread_mutex_t m2 = PTHREAD_MUTEX_INITIALIZER;
static void *
tf1 (void *arg)
{
- struct timespec ts;
- struct timeval tv;
-
- gettimeofday (&tv, NULL);
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
- ts.tv_sec += 10000;
+ struct timespec ts = timespec_add (xclock_now (CLOCK_REALTIME),
+ make_timespec (10000, 0));
/* This call must never return. */
int e = pthread_mutex_timedlock (&m1, &ts);
@@ -61,58 +55,34 @@ tf2 (void *arg)
{
while (1)
{
- int e = pthread_mutex_lock (&m2);
- if (e != 0)
- {
- puts ("tf2: mutex_lock failed");
- exit (1);
- }
- e = pthread_mutex_unlock (&m2);
- if (e != 0)
- {
- puts ("tf2: mutex_unlock failed");
- exit (1);
- }
+ TEST_COMPARE (pthread_mutex_lock (&m2), 0);
+ TEST_COMPARE (pthread_mutex_unlock (&m2), 0);
+
struct timespec ts = { .tv_sec = 0, .tv_nsec = 10000000 };
nanosleep (&ts, NULL);
}
+ return NULL;
}
static int
do_test (void)
{
- if (pthread_mutex_lock (&m1) != 0)
- {
- puts ("mutex_lock failed");
- exit (1);
- }
+ TEST_COMPARE (pthread_mutex_lock (&m1), 0);
setup_eintr (SIGUSR1, NULL);
- pthread_t th;
char buf[100];
- int e = pthread_create (&th, NULL, tf1, NULL);
- if (e != 0)
- {
- printf ("main: 1st pthread_create failed: %s\n",
- strerror_r (e, buf, sizeof (buf)));
- exit (1);
- }
-
- e = pthread_create (&th, NULL, tf2, NULL);
- if (e != 0)
- {
- printf ("main: 2nd pthread_create failed: %s\n",
- strerror_r (e, buf, sizeof (buf)));
- exit (1);
- }
+ xpthread_create (NULL, tf1, NULL);
+ xpthread_create (NULL, tf2, NULL);
delayed_exit (3);
/* This call must never return. */
- e = pthread_mutex_lock (&m1);
+ int e = pthread_mutex_lock (&m1);
printf ("main: mutex_lock returned: %s\n",
strerror_r (e, buf, sizeof (buf)));
return 1;
}
+
+#include <support/test-driver.c>
diff --git a/nptl/tst-eintr3.c b/nptl/tst-eintr3.c
index 9900adf7bf..21bc262c60 100644
--- a/nptl/tst-eintr3.c
+++ b/nptl/tst-eintr3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
@@ -22,11 +22,8 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-
-static int do_test (void);
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/check.h>
+#include <support/xthread.h>
#include "eintr.c"
@@ -35,9 +32,9 @@ static void *
tf (void *arg)
{
pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER;
- pthread_mutex_lock (&m);
+ xpthread_mutex_lock (&m);
/* This call must not return. */
- pthread_mutex_lock (&m);
+ xpthread_mutex_lock (&m);
puts ("tf: mutex_lock returned");
exit (1);
@@ -51,15 +48,7 @@ do_test (void)
setup_eintr (SIGUSR1, &self);
- pthread_t th;
- char buf[100];
- int e = pthread_create (&th, NULL, tf, NULL);
- if (e != 0)
- {
- printf ("main: pthread_create failed: %s\n",
- strerror_r (e, buf, sizeof (buf)));
- exit (1);
- }
+ pthread_t th = xpthread_create (NULL, tf, NULL);
delayed_exit (1);
/* This call must never return. */
@@ -67,3 +56,5 @@ do_test (void)
puts ("error: pthread_join returned");
return 1;
}
+
+#include <support/test-driver.c>
diff --git a/nptl/tst-eintr4.c b/nptl/tst-eintr4.c
index dfde6c236f..1ffe9759ad 100644
--- a/nptl/tst-eintr4.c
+++ b/nptl/tst-eintr4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
@@ -22,11 +22,8 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-
-static int do_test (void);
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/check.h>
+#include <support/xthread.h>
#include "eintr.c"
@@ -39,11 +36,7 @@ do_test (void)
setup_eintr (SIGUSR1, &self);
pthread_barrier_t b;
- if (pthread_barrier_init (&b, NULL, 2) != 0)
- {
- puts ("barrier_init failed");
- exit (1);
- }
+ xpthread_barrier_init (&b, NULL, 2);
delayed_exit (1);
/* This call must never return. */
@@ -51,3 +44,5 @@ do_test (void)
puts ("error: pthread_barrier_wait returned");
return 1;
}
+
+#include <support/test-driver.c>
diff --git a/nptl/tst-eintr5.c b/nptl/tst-eintr5.c
index b7c229825c..6cde79934f 100644
--- a/nptl/tst-eintr5.c
+++ b/nptl/tst-eintr5.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
@@ -23,11 +23,10 @@
#include <stdlib.h>
#include <string.h>
#include <sys/time.h>
-
-static int do_test (void);
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/check.h>
+#include <support/timespec.h>
+#include <support/xthread.h>
+#include <support/xtime.h>
#include "eintr.c"
@@ -39,20 +38,12 @@ static pthread_cond_t c = PTHREAD_COND_INITIALIZER;
static void *
tf (void *arg)
{
- struct timespec ts;
- struct timeval tv;
-
- gettimeofday (&tv, NULL);
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
- ts.tv_sec += 10000;
+ struct timespec ts = timespec_add (xclock_now (CLOCK_REALTIME),
+ make_timespec (10000, 0));
/* This call must never return. */
- int e = pthread_cond_timedwait (&c, &m, &ts);
- char buf[100];
- printf ("tf: cond_timedwait returned: %s\n",
- strerror_r (e, buf, sizeof (buf)));
-
- exit (1);
+ TEST_COMPARE (pthread_cond_timedwait (&c, &m, &ts), 0);
+ FAIL_EXIT1 ("pthread_cond_timedwait returned unexpectedly\n");
}
@@ -61,19 +52,12 @@ do_test (void)
{
setup_eintr (SIGUSR1, NULL);
- pthread_t th;
- char buf[100];
- int e = pthread_create (&th, NULL, tf, NULL);
- if (e != 0)
- {
- printf ("main: pthread_create failed: %s\n",
- strerror_r (e, buf, sizeof (buf)));
- exit (1);
- }
+ xpthread_create (NULL, tf, NULL);
delayed_exit (3);
/* This call must never return. */
xpthread_cond_wait (&c, &m);
- puts ("error: pthread_cond_wait returned");
- return 1;
+ FAIL_RET ("error: pthread_cond_wait returned");
}
+
+#include <support/test-driver.c>
diff --git a/nptl/tst-exec1.c b/nptl/tst-exec1.c
index 8a501dcca0..ac7cd100b9 100644
--- a/nptl/tst-exec1.c
+++ b/nptl/tst-exec1.c
@@ -1,5 +1,5 @@
/* Simple exec test, only a thread in the parent.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <paths.h>
diff --git a/nptl/tst-exec2.c b/nptl/tst-exec2.c
index 61c3db4ce9..d15abadc27 100644
--- a/nptl/tst-exec2.c
+++ b/nptl/tst-exec2.c
@@ -1,5 +1,5 @@
/* Thread with running thread calls exec.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <paths.h>
diff --git a/nptl/tst-exec3.c b/nptl/tst-exec3.c
index b43276d92d..31d6e4e2c0 100644
--- a/nptl/tst-exec3.c
+++ b/nptl/tst-exec3.c
@@ -1,5 +1,5 @@
/* Thread calls exec.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <paths.h>
diff --git a/nptl/tst-exec4.c b/nptl/tst-exec4.c
index 8a7f3671e7..2d0558c888 100644
--- a/nptl/tst-exec4.c
+++ b/nptl/tst-exec4.c
@@ -1,5 +1,5 @@
/* Signal handler and mask set in thread which calls exec.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <signal.h>
diff --git a/nptl/tst-exec5.c b/nptl/tst-exec5.c
index 18557066a6..754239d0b6 100644
--- a/nptl/tst-exec5.c
+++ b/nptl/tst-exec5.c
@@ -1,5 +1,5 @@
/* Check if posix_spawn does not act as a cancellation entrypoint.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <paths.h>
diff --git a/nptl/tst-exit1.c b/nptl/tst-exit1.c
index 7de73cd92e..e7ce625803 100644
--- a/nptl/tst-exit1.c
+++ b/nptl/tst-exit1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* NOTE: this tests functionality beyond POSIX. POSIX does not allow
exit to be called more than once. */
diff --git a/nptl/tst-fini1.c b/nptl/tst-fini1.c
index 8a366263e7..5bedbde785 100644
--- a/nptl/tst-fini1.c
+++ b/nptl/tst-fini1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
diff --git a/nptl/tst-fini1mod.c b/nptl/tst-fini1mod.c
index 62c5d7256c..81dd51d748 100644
--- a/nptl/tst-fini1mod.c
+++ b/nptl/tst-fini1mod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
diff --git a/nptl/tst-flock1.c b/nptl/tst-flock1.c
index 5db4be56d5..31d5ccf748 100644
--- a/nptl/tst-flock1.c
+++ b/nptl/tst-flock1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
diff --git a/nptl/tst-flock2.c b/nptl/tst-flock2.c
index f1200c86e1..0a3fc5ded6 100644
--- a/nptl/tst-flock2.c
+++ b/nptl/tst-flock2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-fork1.c b/nptl/tst-fork1.c
index 53f8e61464..2b4bc291e2 100644
--- a/nptl/tst-fork1.c
+++ b/nptl/tst-fork1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Roland McGrath <roland@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-fork2.c b/nptl/tst-fork2.c
index c1ba72f42c..34feeda676 100644
--- a/nptl/tst-fork2.c
+++ b/nptl/tst-fork2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Roland McGrath <roland@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-fork3.c b/nptl/tst-fork3.c
index dac6636244..3493e4c2a6 100644
--- a/nptl/tst-fork3.c
+++ b/nptl/tst-fork3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Roland McGrath <roland@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-fork4.c b/nptl/tst-fork4.c
index 147e052808..726d644a25 100644
--- a/nptl/tst-fork4.c
+++ b/nptl/tst-fork4.c
@@ -1,5 +1,5 @@
/* Test of fork updating child universe's pthread structures.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-initializers1.c b/nptl/tst-initializers1.c
index a8fdac19d9..df99c45216 100644
--- a/nptl/tst-initializers1.c
+++ b/nptl/tst-initializers1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* We test the code undef conditions outside of glibc. */
#undef _LIBC
diff --git a/nptl/tst-join1.c b/nptl/tst-join1.c
index c0e8908be4..9352a12878 100644
--- a/nptl/tst-join1.c
+++ b/nptl/tst-join1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
diff --git a/nptl/tst-join10.c b/nptl/tst-join10.c
new file mode 100644
index 0000000000..a222dd1f70
--- /dev/null
+++ b/nptl/tst-join10.c
@@ -0,0 +1,20 @@
+/* Check if pthread_clockjoin_np is a cancellation entrypoint.
+ 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; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#define USE_PTHREAD_CLOCKJOIN_NP_REALTIME 1
+#include <nptl/tst-join5.c>
diff --git a/nptl/tst-join11.c b/nptl/tst-join11.c
new file mode 100644
index 0000000000..341588a3cb
--- /dev/null
+++ b/nptl/tst-join11.c
@@ -0,0 +1,21 @@
+/* Check if pthread_clockjoin_np is a cancellation entrypoint.
+ 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; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#define USE_PTHREAD_CLOCKJOIN_NP_REALTIME 1
+#define WAIT_IN_CHILD 1
+#include <nptl/tst-join5.c>
diff --git a/nptl/tst-join12.c b/nptl/tst-join12.c
new file mode 100644
index 0000000000..44592dc546
--- /dev/null
+++ b/nptl/tst-join12.c
@@ -0,0 +1,20 @@
+/* Check if pthread_clockjoin_np is a cancellation entrypoint.
+ 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; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#define USE_PTHREAD_CLOCKJOIN_NP_MONOTONIC 1
+#include <nptl/tst-join5.c>
diff --git a/nptl/tst-join13.c b/nptl/tst-join13.c
new file mode 100644
index 0000000000..d4e49d58e6
--- /dev/null
+++ b/nptl/tst-join13.c
@@ -0,0 +1,21 @@
+/* Check if pthread_clockjoin_np is a cancellation entrypoint.
+ 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; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#define USE_PTHREAD_CLOCKJOIN_NP_MONOTONIC 1
+#define WAIT_IN_CHILD 1
+#include <nptl/tst-join5.c>
diff --git a/nptl/tst-join14.c b/nptl/tst-join14.c
new file mode 100644
index 0000000000..6369367c07
--- /dev/null
+++ b/nptl/tst-join14.c
@@ -0,0 +1,74 @@
+/* pthread_timedjoin_np, pthread_clockjoin_np NULL timeout test.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <pthread.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/time.h>
+#include <support/check.h>
+#include <support/timespec.h>
+#include <support/xthread.h>
+#include <support/xtime.h>
+
+
+#define CLOCK_USE_TIMEDJOIN (-1)
+
+
+static void *
+tf (void *arg)
+{
+ struct timespec ts = make_timespec(0, 100000);
+ nanosleep(&ts, NULL);
+
+ return (void *) 42l;
+}
+
+
+/* Check that pthread_timedjoin_np and pthread_clockjoin_np wait "forever" if
+ * passed a timeout parameter of NULL. We can't actually wait forever, but we
+ * can be sure that we did at least wait for some time by checking the exit
+ * status of the thread. */
+static int
+do_test_clock (clockid_t clockid)
+{
+ pthread_t th = xpthread_create (NULL, tf, NULL);
+
+ void *status;
+ int val = (clockid == CLOCK_USE_TIMEDJOIN)
+ ? pthread_timedjoin_np (th, &status, NULL)
+ : pthread_clockjoin_np (th, &status, clockid, NULL);
+ TEST_COMPARE (val, 0);
+
+ if (status != (void *) 42l)
+ FAIL_EXIT1 ("return value %p, expected %p\n", status, (void *) 42l);
+
+ return 0;
+}
+
+static int
+do_test (void)
+{
+ do_test_clock (CLOCK_USE_TIMEDJOIN);
+ do_test_clock (CLOCK_REALTIME);
+ do_test_clock (CLOCK_MONOTONIC);
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/nptl/tst-join2.c b/nptl/tst-join2.c
index 67731e8074..660191abfa 100644
--- a/nptl/tst-join2.c
+++ b/nptl/tst-join2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-join3.c b/nptl/tst-join3.c
index 01cc2f80b4..faf7683eaa 100644
--- a/nptl/tst-join3.c
+++ b/nptl/tst-join3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
@@ -22,101 +22,78 @@
#include <stdlib.h>
#include <string.h>
#include <sys/time.h>
+#include <support/check.h>
+#include <support/timespec.h>
+#include <support/xthread.h>
+#include <support/xtime.h>
+#define CLOCK_USE_TIMEDJOIN (-1)
+
static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
static void *
tf (void *arg)
{
- if (pthread_mutex_lock (&lock) != 0)
- {
- puts ("child: mutex_lock failed");
- return NULL;
- }
+ xpthread_mutex_lock (&lock);
+ xpthread_mutex_unlock (&lock);
return (void *) 42l;
}
static int
-do_test (void)
+do_test_clock (clockid_t clockid)
{
- pthread_t th;
-
- if (pthread_mutex_lock (&lock) != 0)
- {
- puts ("mutex_lock failed");
- exit (1);
- }
+ const clockid_t clockid_for_get =
+ (clockid == CLOCK_USE_TIMEDJOIN) ? CLOCK_REALTIME : clockid;
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- puts ("mutex_create failed");
- exit (1);
- }
+ xpthread_mutex_lock (&lock);
+ pthread_t th = xpthread_create (NULL, tf, NULL);
void *status;
- struct timespec ts;
- struct timeval tv;
- (void) gettimeofday (&tv, NULL);
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
- ts.tv_nsec += 200000000;
- if (ts.tv_nsec >= 1000000000)
- {
- ts.tv_nsec -= 1000000000;
- ++ts.tv_sec;
- }
- int val = pthread_timedjoin_np (th, &status, &ts);
- if (val == 0)
- {
- puts ("1st timedjoin succeeded");
- exit (1);
- }
- else if (val != ETIMEDOUT)
- {
- puts ("1st timedjoin didn't return ETIMEDOUT");
- exit (1);
- }
+ struct timespec timeout = timespec_add (xclock_now (clockid_for_get),
+ make_timespec (0, 200000000));
- if (pthread_mutex_unlock (&lock) != 0)
- {
- puts ("mutex_unlock failed");
- exit (1);
- }
+ int val;
+ if (clockid == CLOCK_USE_TIMEDJOIN)
+ val = pthread_timedjoin_np (th, &status, &timeout);
+ else
+ val = pthread_clockjoin_np (th, &status, clockid, &timeout);
+
+ TEST_COMPARE (val, ETIMEDOUT);
+
+ xpthread_mutex_unlock (&lock);
while (1)
{
- (void) gettimeofday (&tv, NULL);
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
- ts.tv_nsec += 200000000;
- if (ts.tv_nsec >= 1000000000)
- {
- ts.tv_nsec -= 1000000000;
- ++ts.tv_sec;
- }
-
- val = pthread_timedjoin_np (th, &status, &ts);
+ timeout = timespec_add (xclock_now (clockid_for_get),
+ make_timespec (0, 200000000));
+
+ if (clockid == CLOCK_USE_TIMEDJOIN)
+ val = pthread_timedjoin_np (th, &status, &timeout);
+ else
+ val = pthread_clockjoin_np (th, &status, clockid, &timeout);
if (val == 0)
break;
- if (val != ETIMEDOUT)
- {
- printf ("timedjoin returned %s (%d), expected only 0 or ETIMEDOUT\n",
- strerror (val), val);
- exit (1);
- }
+ TEST_COMPARE (val, ETIMEDOUT);
}
if (status != (void *) 42l)
- {
- printf ("return value %p, expected %p\n", status, (void *) 42l);
- exit (1);
- }
+ FAIL_EXIT1 ("return value %p, expected %p\n", status, (void *) 42l);
+
+ return 0;
+}
+static int
+do_test (void)
+{
+ do_test_clock (CLOCK_USE_TIMEDJOIN);
+ do_test_clock (CLOCK_REALTIME);
+ do_test_clock (CLOCK_MONOTONIC);
return 0;
}
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/test-driver.c>
diff --git a/nptl/tst-join4.c b/nptl/tst-join4.c
index 43a621f00a..27f63eabfc 100644
--- a/nptl/tst-join4.c
+++ b/nptl/tst-join4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-join5.c b/nptl/tst-join5.c
index 50e1863757..2fa178cc90 100644
--- a/nptl/tst-join5.c
+++ b/nptl/tst-join5.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
@@ -23,6 +23,10 @@
#include <time.h>
#include <unistd.h>
+#include <support/check.h>
+#include <support/timespec.h>
+#include <support/xthread.h>
+#include <support/xtime.h>
static void
wait_code (void)
@@ -37,22 +41,37 @@ wait_code (void)
static pthread_barrier_t b;
#endif
+static int
+thread_join (pthread_t thread, void **retval)
+{
+#if defined USE_PTHREAD_TIMEDJOIN_NP
+ const struct timespec ts = timespec_add (xclock_now (CLOCK_REALTIME),
+ make_timespec (1000, 0));
+ return pthread_timedjoin_np (thread, retval, &ts);
+#elif defined USE_PTHREAD_CLOCKJOIN_NP_REALTIME
+ const struct timespec ts = timespec_add (xclock_now (CLOCK_REALTIME),
+ make_timespec (1000, 0));
+ return pthread_clockjoin_np (thread, retval, CLOCK_REALTIME, &ts);
+#elif defined USE_PTHREAD_CLOCKJOIN_NP_MONOTONIC
+ const struct timespec ts = timespec_add (xclock_now (CLOCK_MONOTONIC),
+ make_timespec (1000, 0));
+ return pthread_clockjoin_np (thread, retval, CLOCK_MONOTONIC, &ts);
+#else
+ return pthread_join (thread, retval);
+#endif
+}
+
static void *
tf1 (void *arg)
{
#ifdef WAIT_IN_CHILD
- int e = pthread_barrier_wait (&b);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __func__);
- exit (1);
- }
+ xpthread_barrier_wait (&b);
wait_code ();
#endif
- pthread_join ((pthread_t) arg, NULL);
+ thread_join ((pthread_t) arg, NULL);
exit (42);
}
@@ -62,16 +81,12 @@ static void *
tf2 (void *arg)
{
#ifdef WAIT_IN_CHILD
- int e = pthread_barrier_wait (&b);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __func__);
- exit (1);
- }
+ xpthread_barrier_wait (&b);
wait_code ();
#endif
- pthread_join ((pthread_t) arg, NULL);
+
+ thread_join ((pthread_t) arg, NULL);
exit (43);
}
@@ -81,16 +96,12 @@ static int
do_test (void)
{
#ifdef WAIT_IN_CHILD
- if (pthread_barrier_init (&b, NULL, 2) != 0)
- {
- puts ("barrier_init failed");
- return 1;
- }
+ xpthread_barrier_init (&b, NULL, 2);
#endif
pthread_t th;
- int err = pthread_join (pthread_self (), NULL);
+ int err = thread_join (pthread_self (), NULL);
if (err == 0)
{
puts ("1st circular join succeeded");
@@ -102,33 +113,20 @@ do_test (void)
return 1;
}
- if (pthread_create (&th, NULL, tf1, (void *) pthread_self ()) != 0)
- {
- puts ("1st create failed");
- return 1;
- }
+ th = xpthread_create (NULL, tf1, (void *) pthread_self ());
#ifndef WAIT_IN_CHILD
wait_code ();
#endif
- if (pthread_cancel (th) != 0)
- {
- puts ("cannot cancel 1st thread");
- return 1;
- }
+ xpthread_cancel (th);
#ifdef WAIT_IN_CHILD
- int e = pthread_barrier_wait (&b);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __func__);
- return 1;
- }
+ xpthread_barrier_wait (&b);
#endif
void *r;
- err = pthread_join (th, &r);
+ err = thread_join (th, &r);
if (err != 0)
{
printf ("cannot join 1st thread: %d\n", err);
@@ -140,7 +138,7 @@ do_test (void)
return 1;
}
- err = pthread_join (pthread_self (), NULL);
+ err = thread_join (pthread_self (), NULL);
if (err == 0)
{
puts ("2nd circular join succeeded");
@@ -152,32 +150,19 @@ do_test (void)
return 1;
}
- if (pthread_create (&th, NULL, tf2, (void *) pthread_self ()) != 0)
- {
- puts ("2nd create failed");
- return 1;
- }
+ th = xpthread_create (NULL, tf2, (void *) pthread_self ());
#ifndef WAIT_IN_CHILD
wait_code ();
#endif
- if (pthread_cancel (th) != 0)
- {
- puts ("cannot cancel 2nd thread");
- return 1;
- }
+ xpthread_cancel (th);
#ifdef WAIT_IN_CHILD
- e = pthread_barrier_wait (&b);
- if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf ("%s: barrier_wait failed\n", __func__);
- return 1;
- }
+ xpthread_barrier_wait (&b);
#endif
- if (pthread_join (th, &r) != 0)
+ if (thread_join (th, &r) != 0)
{
puts ("cannot join 2nd thread");
return 1;
@@ -188,7 +173,7 @@ do_test (void)
return 1;
}
- err = pthread_join (pthread_self (), NULL);
+ err = thread_join (pthread_self (), NULL);
if (err == 0)
{
puts ("3rd circular join succeeded");
@@ -203,5 +188,4 @@ do_test (void)
return 0;
}
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/test-driver.c>
diff --git a/nptl/tst-join7.c b/nptl/tst-join7.c
index d6712b7c91..d105ec2263 100644
--- a/nptl/tst-join7.c
+++ b/nptl/tst-join7.c
@@ -1,6 +1,6 @@
/* Verify that TLS access in separate thread in a dlopened library does not
deadlock.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
diff --git a/nptl/tst-join7mod.c b/nptl/tst-join7mod.c
index eac8c6384e..405bd9b29f 100644
--- a/nptl/tst-join7mod.c
+++ b/nptl/tst-join7mod.c
@@ -1,6 +1,6 @@
/* Verify that TLS access in separate thread in a dlopened library does not
deadlock - the module.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
diff --git a/nptl/tst-join8.c b/nptl/tst-join8.c
new file mode 100644
index 0000000000..a122a226a8
--- /dev/null
+++ b/nptl/tst-join8.c
@@ -0,0 +1,20 @@
+/* Check if pthread_timedjoin_np is a cancellation entrypoint.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#define USE_PTHREAD_TIMEDJOIN_NP 1
+#include <nptl/tst-join5.c>
diff --git a/nptl/tst-join9.c b/nptl/tst-join9.c
new file mode 100644
index 0000000000..b49386ad76
--- /dev/null
+++ b/nptl/tst-join9.c
@@ -0,0 +1,21 @@
+/* Check if pthread_timedjoin_np is a cancellation entrypoint.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#define USE_PTHREAD_TIMEDJOIN_NP 1
+#define WAIT_IN_CHILD 1
+#include <nptl/tst-join5.c>
diff --git a/nptl/tst-key1.c b/nptl/tst-key1.c
index 8227f9e843..725b0c953a 100644
--- a/nptl/tst-key1.c
+++ b/nptl/tst-key1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <limits.h>
#include <pthread.h>
diff --git a/nptl/tst-key2.c b/nptl/tst-key2.c
index 1a0bb0d469..d61e40385d 100644
--- a/nptl/tst-key2.c
+++ b/nptl/tst-key2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
diff --git a/nptl/tst-key3.c b/nptl/tst-key3.c
index 4611cef28f..db6d20ee6b 100644
--- a/nptl/tst-key3.c
+++ b/nptl/tst-key3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
diff --git a/nptl/tst-key4.c b/nptl/tst-key4.c
index 810f25b370..4add8e0352 100644
--- a/nptl/tst-key4.c
+++ b/nptl/tst-key4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <limits.h>
#include <pthread.h>
diff --git a/nptl/tst-kill1.c b/nptl/tst-kill1.c
index 0baa1c409e..c5550d0859 100644
--- a/nptl/tst-kill1.c
+++ b/nptl/tst-kill1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <signal.h>
diff --git a/nptl/tst-kill2.c b/nptl/tst-kill2.c
index 682c13158e..c05cc55b04 100644
--- a/nptl/tst-kill2.c
+++ b/nptl/tst-kill2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
@@ -133,6 +133,5 @@ do_test (void)
}
-#define TIMEOUT 5
#define TEST_FUNCTION do_test ()
#include "../test-skeleton.c"
diff --git a/nptl/tst-kill3.c b/nptl/tst-kill3.c
index fec233cc58..aca93c9577 100644
--- a/nptl/tst-kill3.c
+++ b/nptl/tst-kill3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
@@ -27,7 +27,6 @@
static int do_test (void);
-#define TIMEOUT 5
#define TEST_FUNCTION do_test ()
#include "../test-skeleton.c"
diff --git a/nptl/tst-kill4.c b/nptl/tst-kill4.c
index bfaa31177d..2746bfbe3b 100644
--- a/nptl/tst-kill4.c
+++ b/nptl/tst-kill4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-kill5.c b/nptl/tst-kill5.c
index b5690a9cd0..0dfe7637ad 100644
--- a/nptl/tst-kill5.c
+++ b/nptl/tst-kill5.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-kill6.c b/nptl/tst-kill6.c
index 37d321a1fc..b4f37ed303 100644
--- a/nptl/tst-kill6.c
+++ b/nptl/tst-kill6.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-memstream.c b/nptl/tst-memstream.c
index 14a02b5d40..c3fc71f251 100644
--- a/nptl/tst-memstream.c
+++ b/nptl/tst-memstream.c
@@ -1,5 +1,5 @@
/* Test for open_memstream locking.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This test checks if concurrent writes to a FILE created with
open_memstream are correctly interleaved without loss or corruption
diff --git a/nptl/tst-minstack-cancel.c b/nptl/tst-minstack-cancel.c
index a306320e88..aa3d621d8d 100644
--- a/nptl/tst-minstack-cancel.c
+++ b/nptl/tst-minstack-cancel.c
@@ -1,5 +1,5 @@
/* Test cancellation with a minimal stack size.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Note: This test is similar to tst-minstack-exit, but is separate to
avoid spurious test passes due to warm-up effects. */
diff --git a/nptl/tst-minstack-exit.c b/nptl/tst-minstack-exit.c
index 9c7e9a4dfe..ec9e3076df 100644
--- a/nptl/tst-minstack-exit.c
+++ b/nptl/tst-minstack-exit.c
@@ -1,5 +1,5 @@
/* Test that pthread_exit works with the minimum stack size.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Note: This test is similar to tst-minstack-cancel, but is separate
to avoid spurious test passes due to warm-up effects. */
diff --git a/nptl/tst-minstack-throw.cc b/nptl/tst-minstack-throw.cc
index b0a897b0c6..aefde42426 100644
--- a/nptl/tst-minstack-throw.cc
+++ b/nptl/tst-minstack-throw.cc
@@ -1,5 +1,5 @@
/* Test that throwing C++ exceptions works with the minimum stack size.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdexcept>
diff --git a/nptl/tst-mtx-basic.c b/nptl/tst-mtx-basic.c
index 8507312516..7cacbdce19 100644
--- a/nptl/tst-mtx-basic.c
+++ b/nptl/tst-mtx-basic.c
@@ -1,5 +1,5 @@
/* C11 threads basic mutex tests.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <threads.h>
#include <stdio.h>
diff --git a/nptl/tst-mtx-recursive.c b/nptl/tst-mtx-recursive.c
index 7a6bfc2cd5..717c16ad14 100644
--- a/nptl/tst-mtx-recursive.c
+++ b/nptl/tst-mtx-recursive.c
@@ -1,5 +1,5 @@
/* C11 threads recursive mutex tests.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <threads.h>
#include <stdio.h>
diff --git a/nptl/tst-mtx-timedlock.c b/nptl/tst-mtx-timedlock.c
index 616db722eb..bb6311c139 100644
--- a/nptl/tst-mtx-timedlock.c
+++ b/nptl/tst-mtx-timedlock.c
@@ -1,5 +1,5 @@
/* C11 threads timed mutex tests.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <threads.h>
#include <stdio.h>
diff --git a/nptl/tst-mtx-trylock.c b/nptl/tst-mtx-trylock.c
index 9df84a3019..927ca3a8b8 100644
--- a/nptl/tst-mtx-trylock.c
+++ b/nptl/tst-mtx-trylock.c
@@ -1,5 +1,5 @@
/* C11 threads trylock mutex tests.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <threads.h>
#include <stdio.h>
diff --git a/nptl/tst-mutex-errorcheck.c b/nptl/tst-mutex-errorcheck.c
index 76e76dfde3..99576f8866 100644
--- a/nptl/tst-mutex-errorcheck.c
+++ b/nptl/tst-mutex-errorcheck.c
@@ -1,5 +1,5 @@
/* Check that error checking mutexes are not subject to lock elision.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,12 +14,13 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <errno.h>
#include <time.h>
#include <pthread.h>
+#include <support/check.h>
static int
do_test (void)
@@ -29,33 +30,23 @@ do_test (void)
pthread_mutexattr_t mutexattr;
int ret = 0;
- if (pthread_mutexattr_init (&mutexattr) != 0)
- return 1;
- if (pthread_mutexattr_settype (&mutexattr, PTHREAD_MUTEX_ERRORCHECK) != 0)
- return 1;
+ TEST_COMPARE (pthread_mutexattr_init (&mutexattr), 0);
+ TEST_COMPARE (pthread_mutexattr_settype (&mutexattr,
+ PTHREAD_MUTEX_ERRORCHECK), 0);
- if (pthread_mutex_init (&mutex, &mutexattr) != 0)
- return 1;
- if (pthread_mutexattr_destroy (&mutexattr) != 0)
- return 1;
+ TEST_COMPARE (pthread_mutex_init (&mutex, &mutexattr), 0);
+ TEST_COMPARE (pthread_mutexattr_destroy (&mutexattr), 0);
/* The call to pthread_mutex_timedlock erroneously enabled lock elision
on the mutex, which then triggered an assertion failure in
pthread_mutex_unlock. It would also defeat the error checking nature
of the mutex. */
- if (pthread_mutex_timedlock (&mutex, &tms) != 0)
- return 1;
- if (pthread_mutex_timedlock (&mutex, &tms) != EDEADLK)
- {
- printf ("Failed error checking on locked mutex\n");
- ret = 1;
- }
+ TEST_COMPARE (pthread_mutex_timedlock (&mutex, &tms), 0);
+ TEST_COMPARE (pthread_mutex_timedlock (&mutex, &tms), EDEADLK);
- if (pthread_mutex_unlock (&mutex) != 0)
- ret = 1;
+ TEST_COMPARE (pthread_mutex_unlock (&mutex), 0);
return ret;
}
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/test-driver.c>
diff --git a/nptl/tst-mutex1.c b/nptl/tst-mutex1.c
index 2e550cc617..62af553234 100644
--- a/nptl/tst-mutex1.c
+++ b/nptl/tst-mutex1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
diff --git a/nptl/tst-mutex10.c b/nptl/tst-mutex10.c
new file mode 100644
index 0000000000..542e0df712
--- /dev/null
+++ b/nptl/tst-mutex10.c
@@ -0,0 +1,109 @@
+/* Testing race while enabling lock elision.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdint.h>
+#include <pthread.h>
+#include <unistd.h>
+#include <getopt.h>
+#include <support/support.h>
+#include <support/xthread.h>
+
+static pthread_barrier_t barrier;
+static pthread_mutex_t mutex;
+static long long int iteration_count = 1000000;
+static unsigned int thread_count = 3;
+
+static void *
+thr_func (void *arg)
+{
+ long long int i;
+ for (i = 0; i < iteration_count; i++)
+ {
+ if ((uintptr_t) arg == 0)
+ {
+ xpthread_mutex_destroy (&mutex);
+ xpthread_mutex_init (&mutex, NULL);
+ }
+
+ xpthread_barrier_wait (&barrier);
+
+ /* Test if enabling lock elision works if it is enabled concurrently.
+ There was a race in FORCE_ELISION macro which leads to either
+ pthread_mutex_destroy returning EBUSY as the owner was recorded
+ by pthread_mutex_lock - in "normal mutex" code path - but was not
+ resetted in pthread_mutex_unlock - in "elision" code path.
+ Or it leads to the assertion in nptl/pthread_mutex_lock.c:
+ assert (mutex->__data.__owner == 0);
+ Please ensure that the test is run with lock elision:
+ export GLIBC_TUNABLES=glibc.elision.enable=1 */
+ xpthread_mutex_lock (&mutex);
+ xpthread_mutex_unlock (&mutex);
+
+ xpthread_barrier_wait (&barrier);
+ }
+ return NULL;
+}
+
+static int
+do_test (void)
+{
+ unsigned int i;
+ printf ("Starting %d threads to run %lld iterations.\n",
+ thread_count, iteration_count);
+
+ pthread_t *threads = xmalloc (thread_count * sizeof (pthread_t));
+ xpthread_barrier_init (&barrier, NULL, thread_count);
+ xpthread_mutex_init (&mutex, NULL);
+
+ for (i = 0; i < thread_count; i++)
+ threads[i] = xpthread_create (NULL, thr_func, (void *) (uintptr_t) i);
+
+ for (i = 0; i < thread_count; i++)
+ xpthread_join (threads[i]);
+
+ xpthread_barrier_destroy (&barrier);
+ free (threads);
+
+ return EXIT_SUCCESS;
+}
+
+#define OPT_ITERATIONS 10000
+#define OPT_THREADS 10001
+#define CMDLINE_OPTIONS \
+ { "iterations", required_argument, NULL, OPT_ITERATIONS }, \
+ { "threads", required_argument, NULL, OPT_THREADS },
+static void
+cmdline_process (int c)
+{
+ long long int arg = strtoll (optarg, NULL, 0);
+ switch (c)
+ {
+ case OPT_ITERATIONS:
+ if (arg > 0)
+ iteration_count = arg;
+ break;
+ case OPT_THREADS:
+ if (arg > 0 && arg < 100)
+ thread_count = arg;
+ break;
+ }
+}
+#define CMDLINE_PROCESS cmdline_process
+#define TIMEOUT 50
+#include <support/test-driver.c>
diff --git a/nptl/tst-mutex11.c b/nptl/tst-mutex11.c
new file mode 100644
index 0000000000..392a9bbaa1
--- /dev/null
+++ b/nptl/tst-mutex11.c
@@ -0,0 +1,69 @@
+/* Test unsupported/bad clocks passed to pthread_mutex_clocklock.
+
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <pthread.h>
+#include <stdio.h>
+#include <time.h>
+#include <unistd.h>
+#include <support/check.h>
+
+static pthread_mutex_t mut = PTHREAD_MUTEX_INITIALIZER;
+
+static void test_bad_clockid (clockid_t clockid)
+{
+ const struct timespec ts = {0,0};
+ TEST_COMPARE (pthread_mutex_clocklock (&mut, clockid, &ts), EINVAL);
+}
+
+#define NOT_A_VALID_CLOCK 123456
+
+static int
+do_test (void)
+{
+ /* These clocks are meaningless to pthread_mutex_clocklock. */
+#if defined(CLOCK_PROCESS_CPUTIME_ID)
+ test_bad_clockid (CLOCK_PROCESS_CPUTIME_ID);
+#endif
+#if defined(CLOCK_THREAD_CPUTIME_ID)
+ test_bad_clockid (CLOCK_PROCESS_CPUTIME_ID);
+#endif
+
+ /* These clocks might be meaningful, but are currently unsupported by
+ pthread_mutex_clocklock. */
+#if defined(CLOCK_REALTIME_COARSE)
+ test_bad_clockid (CLOCK_REALTIME_COARSE);
+#endif
+#if defined(CLOCK_MONOTONIC_RAW)
+ test_bad_clockid (CLOCK_MONOTONIC_RAW);
+#endif
+#if defined(CLOCK_MONOTONIC_COARSE)
+ test_bad_clockid (CLOCK_MONOTONIC_COARSE);
+#endif
+#if defined(CLOCK_BOOTTIME)
+ test_bad_clockid (CLOCK_BOOTTIME);
+#endif
+
+ /* This is a completely invalid clock. */
+ test_bad_clockid (NOT_A_VALID_CLOCK);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/nptl/tst-mutex2.c b/nptl/tst-mutex2.c
index 869d268d44..431bf9f4df 100644
--- a/nptl/tst-mutex2.c
+++ b/nptl/tst-mutex2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-mutex3.c b/nptl/tst-mutex3.c
index e24e01b2de..3f2f26e029 100644
--- a/nptl/tst-mutex3.c
+++ b/nptl/tst-mutex3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-mutex4.c b/nptl/tst-mutex4.c
index 03150b5a08..e238c52874 100644
--- a/nptl/tst-mutex4.c
+++ b/nptl/tst-mutex4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
@@ -272,6 +272,5 @@ do_test (void)
return 0;
}
-#define TIMEOUT 4
#define TEST_FUNCTION do_test ()
#include "../test-skeleton.c"
diff --git a/nptl/tst-mutex5.c b/nptl/tst-mutex5.c
index f0fbd3797c..1ecb483d4d 100644
--- a/nptl/tst-mutex5.c
+++ b/nptl/tst-mutex5.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
@@ -24,180 +24,96 @@
#include <sys/time.h>
#include <stdint.h>
#include <config.h>
+#include <support/check.h>
+#include <support/timespec.h>
#ifndef TYPE
# define TYPE PTHREAD_MUTEX_NORMAL
#endif
+/* A bogus clock value that tells run_test to use
+ pthread_mutex_timedlock rather than pthread_mutex_clocklock. */
+#define CLOCK_USE_TIMEDLOCK (-1)
static int
-do_test (void)
+do_test_clock (clockid_t clockid, const char *fnname)
{
pthread_mutex_t m;
- struct timespec ts;
- struct timeval tv;
- struct timeval tv2;
- int err;
pthread_mutexattr_t a;
+ const clockid_t clockid_for_get =
+ (clockid == CLOCK_USE_TIMEDLOCK) ? CLOCK_REALTIME : clockid;
- if (pthread_mutexattr_init (&a) != 0)
- {
- puts ("mutexattr_init failed");
- return 1;
- }
-
- if (pthread_mutexattr_settype (&a, TYPE) != 0)
- {
- puts ("mutexattr_settype failed");
- return 1;
- }
+ TEST_COMPARE (pthread_mutexattr_init (&a), 0);
+ TEST_COMPARE (pthread_mutexattr_settype (&a, TYPE), 0);
#ifdef ENABLE_PI
- if (pthread_mutexattr_setprotocol (&a, PTHREAD_PRIO_INHERIT) != 0)
- {
- puts ("pthread_mutexattr_setprotocol failed");
- return 1;
- }
+ TEST_COMPARE (pthread_mutexattr_setprotocol (&a, PTHREAD_PRIO_INHERIT), 0);
#endif
- err = pthread_mutex_init (&m, &a);
+ int err = pthread_mutex_init (&m, &a);
if (err != 0)
{
#ifdef ENABLE_PI
if (err == ENOTSUP)
- {
- puts ("PI mutexes unsupported");
- return 0;
- }
+ FAIL_UNSUPPORTED ("PI mutexes unsupported");
#endif
- puts ("mutex_init failed");
- return 1;
- }
-
- if (pthread_mutexattr_destroy (&a) != 0)
- {
- puts ("mutexattr_destroy failed");
- return 1;
- }
-
- if (pthread_mutex_lock (&m) != 0)
- {
- puts ("mutex_lock failed");
- return 1;
+ FAIL_EXIT1 ("mutex_init failed");
}
+ TEST_COMPARE (pthread_mutexattr_destroy (&a), 0);
+ TEST_COMPARE (pthread_mutex_lock (&m), 0);
if (pthread_mutex_trylock (&m) == 0)
- {
- puts ("mutex_trylock succeeded");
- return 1;
- }
-
- gettimeofday (&tv, NULL);
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
+ FAIL_EXIT1 ("mutex_trylock succeeded");
- ts.tv_sec += 2; /* Wait 2 seconds. */
+ /* Wait 2 seconds. */
+ struct timespec ts_timeout = timespec_add (xclock_now (clockid_for_get),
+ make_timespec (2, 0));
- err = pthread_mutex_timedlock (&m, &ts);
- if (err == 0)
- {
- puts ("timedlock succeeded");
- return 1;
- }
- else if (err != ETIMEDOUT)
- {
- printf ("timedlock error != ETIMEDOUT: %d\n", err);
- return 1;
- }
+ if (clockid == CLOCK_USE_TIMEDLOCK)
+ TEST_COMPARE (pthread_mutex_timedlock (&m, &ts_timeout), ETIMEDOUT);
else
- {
- int clk_tck = sysconf (_SC_CLK_TCK);
-
- gettimeofday (&tv2, NULL);
-
- tv2.tv_sec -= tv.tv_sec;
- tv2.tv_usec -= tv.tv_usec;
- if (tv2.tv_usec < 0)
- {
- tv2.tv_usec += 1000000;
- tv2.tv_sec -= 1;
- }
-
- /* Be a bit tolerant, add one CLK_TCK. */
- tv2.tv_usec += 1000000 / clk_tck;
- if (tv2.tv_usec >= 1000000)
- {
- tv2.tv_usec -= 1000000;
- ++tv2.tv_sec;
- }
-
- if (tv2.tv_sec < 2)
- {
- printf ("premature timeout: %jd.%06jd difference\n",
- (intmax_t) tv2.tv_sec, (intmax_t) tv2.tv_usec);
- return 1;
- }
- }
-
- (void) gettimeofday (&tv, NULL);
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
+ TEST_COMPARE (pthread_mutex_clocklock (&m, clockid, &ts_timeout),
+ ETIMEDOUT);
+ TEST_TIMESPEC_BEFORE_NOW (ts_timeout, clockid_for_get);
- ts.tv_sec += 2; /* Wait 2 seconds. */
/* The following makes the ts value invalid. */
- ts.tv_nsec += 1000000000;
+ ts_timeout.tv_nsec += 1000000000;
- err = pthread_mutex_timedlock (&m, &ts);
- if (err == 0)
- {
- puts ("2nd timedlock succeeded");
- return 1;
- }
- else if (err != EINVAL)
- {
- printf ("2nd timedlock error != EINVAL: %d\n", err);
- return 1;
- }
+ if (clockid == CLOCK_USE_TIMEDLOCK)
+ TEST_COMPARE (pthread_mutex_timedlock (&m, &ts_timeout), EINVAL);
+ else
+ TEST_COMPARE (pthread_mutex_clocklock (&m, clockid, &ts_timeout), EINVAL);
+ TEST_COMPARE (pthread_mutex_unlock (&m), 0);
- if (pthread_mutex_unlock (&m) != 0)
- {
- puts ("mutex_unlock failed");
- return 1;
- }
+ const struct timespec ts_start = xclock_now (CLOCK_REALTIME);
- (void) gettimeofday (&tv, NULL);
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
+ /* Wait 2 seconds. */
+ ts_timeout = timespec_add (ts_start, make_timespec (2, 0));
- ts.tv_sec += 2; /* Wait 2 seconds. */
- if (pthread_mutex_timedlock (&m, &ts) != 0)
- {
- puts ("3rd timedlock failed");
- }
+ if (clockid == CLOCK_USE_TIMEDLOCK)
+ TEST_COMPARE (pthread_mutex_timedlock (&m, &ts_timeout), 0);
+ else
+ TEST_COMPARE (pthread_mutex_clocklock (&m, clockid, &ts_timeout), 0);
- (void) gettimeofday (&tv2, NULL);
+ const struct timespec ts_end = xclock_now (clockid_for_get);
/* Check that timedlock didn't delay. We use a limit of 0.1 secs. */
- timersub (&tv2, &tv, &tv2);
- if (tv2.tv_sec > 0 || tv2.tv_usec > 100000)
- {
- puts ("3rd timedlock didn't return right away");
- return 1;
- }
+ TEST_TIMESPEC_BEFORE (ts_end,
+ timespec_add (ts_start, make_timespec (0, 100000000)));
- if (pthread_mutex_unlock (&m) != 0)
- {
- puts ("final mutex_unlock failed");
- return 1;
- }
+ TEST_COMPARE (pthread_mutex_unlock (&m), 0);
+ TEST_COMPARE (pthread_mutex_destroy (&m), 0);
- if (pthread_mutex_destroy (&m) != 0)
- {
- puts ("mutex_destroy failed");
- return 1;
- }
+ return 0;
+}
+static int do_test (void)
+{
+ do_test_clock (CLOCK_USE_TIMEDLOCK, "timedlock");
+ do_test_clock (CLOCK_REALTIME, "clocklock(realtime)");
+ do_test_clock (CLOCK_MONOTONIC, "clocklock(monotonic)");
return 0;
}
-#define TIMEOUT 4
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/test-driver.c>
diff --git a/nptl/tst-mutex6.c b/nptl/tst-mutex6.c
index c46c74d886..84ba1c3f81 100644
--- a/nptl/tst-mutex6.c
+++ b/nptl/tst-mutex6.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <signal.h>
diff --git a/nptl/tst-mutex7.c b/nptl/tst-mutex7.c
index ef9f21212a..7ad5da8f29 100644
--- a/nptl/tst-mutex7.c
+++ b/nptl/tst-mutex7.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-mutex8.c b/nptl/tst-mutex8.c
index d31f342751..9f537e2935 100644
--- a/nptl/tst-mutex8.c
+++ b/nptl/tst-mutex8.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This test checks behavior not required by POSIX. */
#include <errno.h>
diff --git a/nptl/tst-mutex9.c b/nptl/tst-mutex9.c
index 6bf968f0b5..d7adcd5061 100644
--- a/nptl/tst-mutex9.c
+++ b/nptl/tst-mutex9.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
@@ -26,11 +26,20 @@
#include <sys/mman.h>
#include <sys/time.h>
#include <sys/wait.h>
+#include <support/check.h>
+#include <support/timespec.h>
+#include <support/xunistd.h>
-static int
-do_test (void)
+/* A bogus clock value that tells run_test to use pthread_mutex_timedlock
+ rather than pthread_mutex_clocklock. */
+#define CLOCK_USE_TIMEDLOCK (-1)
+
+static void
+do_test_clock (clockid_t clockid)
{
+ const clockid_t clockid_for_get =
+ (clockid == CLOCK_USE_TIMEDLOCK) ? CLOCK_REALTIME : clockid;
size_t ps = sysconf (_SC_PAGESIZE);
char tmpfname[] = "/tmp/tst-mutex9.XXXXXX";
char data[ps];
@@ -42,10 +51,7 @@ do_test (void)
fd = mkstemp (tmpfname);
if (fd == -1)
- {
- printf ("cannot open temporary file: %m\n");
- return 1;
- }
+ FAIL_EXIT1 ("cannot open temporary file: %m\n");
/* Make sure it is always removed. */
unlink (tmpfname);
@@ -54,46 +60,21 @@ do_test (void)
memset (data, '\0', ps);
/* Write the data to the file. */
- if (write (fd, data, ps) != (ssize_t) ps)
- {
- puts ("short write");
- return 1;
- }
+ xwrite (fd, data, ps);
- mem = mmap (NULL, ps, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
- if (mem == MAP_FAILED)
- {
- printf ("mmap failed: %m\n");
- return 1;
- }
+ mem = xmmap (NULL, ps, PROT_READ | PROT_WRITE, MAP_SHARED, fd);
m = (pthread_mutex_t *) (((uintptr_t) mem + __alignof (pthread_mutex_t))
& ~(__alignof (pthread_mutex_t) - 1));
- if (pthread_mutexattr_init (&a) != 0)
- {
- puts ("mutexattr_init failed");
- return 1;
- }
+ TEST_COMPARE (pthread_mutexattr_init (&a), 0);
- if (pthread_mutexattr_setpshared (&a, PTHREAD_PROCESS_SHARED) != 0)
- {
- puts ("mutexattr_setpshared failed");
- return 1;
- }
+ TEST_COMPARE (pthread_mutexattr_setpshared (&a, PTHREAD_PROCESS_SHARED), 0);
- if (pthread_mutexattr_settype (&a, PTHREAD_MUTEX_RECURSIVE) != 0)
- {
- puts ("mutexattr_settype failed");
- return 1;
- }
+ TEST_COMPARE (pthread_mutexattr_settype (&a, PTHREAD_MUTEX_RECURSIVE), 0);
#ifdef ENABLE_PI
- if (pthread_mutexattr_setprotocol (&a, PTHREAD_PRIO_INHERIT) != 0)
- {
- puts ("pthread_mutexattr_setprotocol failed");
- return 1;
- }
+ TEST_COMPARE (pthread_mutexattr_setprotocol (&a, PTHREAD_PRIO_INHERIT), 0);
#endif
int e;
@@ -101,70 +82,32 @@ do_test (void)
{
#ifdef ENABLE_PI
if (e == ENOTSUP)
- {
- puts ("PI mutexes unsupported");
- return 0;
- }
+ FAIL_UNSUPPORTED ("PI mutexes unsupported");
#endif
- puts ("mutex_init failed");
- return 1;
+ FAIL_EXIT1 ("mutex_init failed");
}
- if (pthread_mutex_lock (m) != 0)
- {
- puts ("mutex_lock failed");
- return 1;
- }
+ TEST_COMPARE (pthread_mutex_lock (m), 0);
- if (pthread_mutexattr_destroy (&a) != 0)
- {
- puts ("mutexattr_destroy failed");
- return 1;
- }
+ TEST_COMPARE (pthread_mutexattr_destroy (&a), 0);
puts ("going to fork now");
- pid = fork ();
- if (pid == -1)
- {
- puts ("fork failed");
- return 1;
- }
- else if (pid == 0)
+ pid = xfork ();
+ if (pid == 0)
{
if (pthread_mutex_trylock (m) == 0)
- {
- puts ("child: mutex_trylock succeeded");
- exit (1);
- }
+ FAIL_EXIT1 ("child: mutex_trylock succeeded");
if (pthread_mutex_unlock (m) == 0)
- {
- puts ("child: mutex_unlock succeeded");
- exit (1);
- }
-
- struct timeval tv;
- gettimeofday (&tv, NULL);
- struct timespec ts;
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
- ts.tv_nsec += 500000000;
- if (ts.tv_nsec >= 1000000000)
- {
- ++ts.tv_sec;
- ts.tv_nsec -= 1000000000;
- }
-
- e = pthread_mutex_timedlock (m, &ts);
- if (e == 0)
- {
- puts ("child: mutex_timedlock succeeded");
- exit (1);
- }
- if (e != ETIMEDOUT)
- {
- puts ("child: mutex_timedlock didn't time out");
- exit (1);
- }
+ FAIL_EXIT1 ("child: mutex_unlock succeeded");
+
+ const struct timespec ts = timespec_add (xclock_now (clockid_for_get),
+ make_timespec (0, 500000000));
+
+ if (clockid == CLOCK_USE_TIMEDLOCK)
+ TEST_COMPARE (pthread_mutex_timedlock (m, &ts), ETIMEDOUT);
+ else
+ TEST_COMPARE (pthread_mutex_clocklock (m, clockid, &ts), ETIMEDOUT);
alarm (1);
@@ -179,24 +122,19 @@ do_test (void)
int status;
if (TEMP_FAILURE_RETRY (waitpid (pid, &status, 0)) != pid)
- {
- puts ("waitpid failed");
- return 1;
- }
+ FAIL_EXIT1 ("waitpid failed");
if (! WIFSIGNALED (status))
- {
- puts ("child not killed by signal");
- return 1;
- }
- if (WTERMSIG (status) != SIGALRM)
- {
- puts ("child not killed by SIGALRM");
- return 1;
- }
+ FAIL_EXIT1 ("child not killed by signal");
+ TEST_COMPARE (WTERMSIG (status), SIGALRM);
+}
+static int
+do_test (void)
+{
+ do_test_clock (CLOCK_USE_TIMEDLOCK);
+ do_test_clock (CLOCK_REALTIME);
+ do_test_clock (CLOCK_MONOTONIC);
return 0;
}
-#define TIMEOUT 3
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/test-driver.c>
diff --git a/nptl/tst-mutexpp10.c b/nptl/tst-mutexpp10.c
index 1e8ba5bb1b..752ff3ffdc 100644
--- a/nptl/tst-mutexpp10.c
+++ b/nptl/tst-mutexpp10.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 2006.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <limits.h>
diff --git a/nptl/tst-oddstacklimit.c b/nptl/tst-oddstacklimit.c
index 21421db83d..91500a11c9 100644
--- a/nptl/tst-oddstacklimit.c
+++ b/nptl/tst-oddstacklimit.c
@@ -1,5 +1,5 @@
/* Test NPTL with stack limit that is not a multiple of the page size.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdio.h>
diff --git a/nptl/tst-once1.c b/nptl/tst-once1.c
index 933e5d98b7..3889a77aa4 100644
--- a/nptl/tst-once1.c
+++ b/nptl/tst-once1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
diff --git a/nptl/tst-once2.c b/nptl/tst-once2.c
index e86eb02920..5245fa28d8 100644
--- a/nptl/tst-once2.c
+++ b/nptl/tst-once2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
@@ -99,5 +99,4 @@ do_test (void)
}
#define TEST_FUNCTION do_test ()
-#define TIMEOUT 4
#include "../test-skeleton.c"
diff --git a/nptl/tst-once3.c b/nptl/tst-once3.c
index 08c3d8d057..8f9efa2bd9 100644
--- a/nptl/tst-once3.c
+++ b/nptl/tst-once3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
@@ -162,5 +162,4 @@ do_test (void)
}
#define TEST_FUNCTION do_test ()
-#define TIMEOUT 4
#include "../test-skeleton.c"
diff --git a/nptl/tst-once4.c b/nptl/tst-once4.c
index 397853b16e..82ae1a6c64 100644
--- a/nptl/tst-once4.c
+++ b/nptl/tst-once4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
@@ -197,5 +197,4 @@ do_test (void)
}
#define TEST_FUNCTION do_test ()
-#define TIMEOUT 4
#include "../test-skeleton.c"
diff --git a/nptl/tst-once5.cc b/nptl/tst-once5.cc
index d232266c3a..fe33f6dc66 100644
--- a/nptl/tst-once5.cc
+++ b/nptl/tst-once5.cc
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2015-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-popen1.c b/nptl/tst-popen1.c
index d2f3575a93..308ce74766 100644
--- a/nptl/tst-popen1.c
+++ b/nptl/tst-popen1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <error.h>
diff --git a/nptl/tst-pthread-attr-affinity.c b/nptl/tst-pthread-attr-affinity.c
index 31546347f2..88929f4da8 100644
--- a/nptl/tst-pthread-attr-affinity.c
+++ b/nptl/tst-pthread-attr-affinity.c
@@ -1,7 +1,7 @@
/* Make sure that pthread_attr_getaffinity_np does not crash when the input
cpuset size is smaller than that in the attribute structure.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
diff --git a/nptl/tst-pthread-getattr.c b/nptl/tst-pthread-getattr.c
index 273b6073ab..e43ef1a5c6 100644
--- a/nptl/tst-pthread-getattr.c
+++ b/nptl/tst-pthread-getattr.c
@@ -1,7 +1,7 @@
/* Make sure that the stackaddr returned by pthread_getattr_np is
reachable.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <string.h>
@@ -41,9 +41,11 @@
static size_t pagesize;
-/* Check if the page in which TARGET lies is accessible. This will segfault
- if it fails. */
-static volatile char *
+/* Test that the page in which TARGET lies is accessible. This will
+ segfault if the write fails. This function has only half a page
+ of thread stack left and so should not do anything and immediately
+ return the address to which the stack reached. */
+static volatile uintptr_t
allocate_and_test (char *target)
{
volatile char *mem = (char *) &mem;
@@ -51,7 +53,7 @@ allocate_and_test (char *target)
mem = alloca ((size_t) (mem - target));
*mem = 42;
- return mem;
+ return (uintptr_t) mem;
}
static int
@@ -84,7 +86,6 @@ check_stack_top (void)
{
struct rlimit stack_limit;
void *stackaddr;
- volatile void *mem;
size_t stacksize = 0;
int ret;
uintptr_t pagemask = ~(pagesize - 1);
@@ -130,14 +131,14 @@ check_stack_top (void)
stack and test access there. It is however sufficient to simply check if
the top page is accessible, so we target our access halfway up the top
page. Thanks Chris Metcalf for this idea. */
- mem = allocate_and_test (stackaddr + pagesize / 2);
+ uintptr_t mem = allocate_and_test (stackaddr + pagesize / 2);
/* Before we celebrate, make sure we actually did test the same page. */
- if (((uintptr_t) stackaddr & pagemask) != ((uintptr_t) mem & pagemask))
+ if (((uintptr_t) stackaddr & pagemask) != (mem & pagemask))
{
printf ("We successfully wrote into the wrong page.\n"
"Expected %#" PRIxPTR ", but got %#" PRIxPTR "\n",
- (uintptr_t) stackaddr & pagemask, (uintptr_t) mem & pagemask);
+ (uintptr_t) stackaddr & pagemask, mem & pagemask);
return 1;
}
diff --git a/nptl/tst-pthread-mutexattr.c b/nptl/tst-pthread-mutexattr.c
index cc9291dec3..03edf17e59 100644
--- a/nptl/tst-pthread-mutexattr.c
+++ b/nptl/tst-pthread-mutexattr.c
@@ -1,6 +1,6 @@
/* Make sure that pthread_mutexattr_gettype returns a valid kind.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <string.h>
diff --git a/nptl/tst-raise1.c b/nptl/tst-raise1.c
index 0c51ad2869..a84e9af390 100644
--- a/nptl/tst-raise1.c
+++ b/nptl/tst-raise1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <error.h>
diff --git a/nptl/tst-robust-fork.c b/nptl/tst-robust-fork.c
index ae5706f528..36c3bce2ff 100644
--- a/nptl/tst-robust-fork.c
+++ b/nptl/tst-robust-fork.c
@@ -1,5 +1,5 @@
/* Test the interaction of fork and robust mutexes.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdbool.h>
diff --git a/nptl/tst-robust1.c b/nptl/tst-robust1.c
index 4a413d23da..d6036902e3 100644
--- a/nptl/tst-robust1.c
+++ b/nptl/tst-robust1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-robust10.c b/nptl/tst-robust10.c
index 906b5bd0ed..65ece47ee4 100644
--- a/nptl/tst-robust10.c
+++ b/nptl/tst-robust10.c
@@ -1,5 +1,5 @@
/* Test that pthread_mutex_timedlock properly times out.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
diff --git a/nptl/tst-robust7.c b/nptl/tst-robust7.c
index 5d00867682..3b7b1d6f42 100644
--- a/nptl/tst-robust7.c
+++ b/nptl/tst-robust7.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-robust8.c b/nptl/tst-robust8.c
index 9c636250d4..f6969a4b84 100644
--- a/nptl/tst-robust8.c
+++ b/nptl/tst-robust8.c
@@ -15,7 +15,6 @@ static void prepare (void);
#define PREPARE(argc, argv) prepare ()
static int do_test (void);
#define TEST_FUNCTION do_test ()
-#define TIMEOUT 5
#include "../test-skeleton.c"
diff --git a/nptl/tst-robust9.c b/nptl/tst-robust9.c
index 1d6ba179be..befc14f2d8 100644
--- a/nptl/tst-robust9.c
+++ b/nptl/tst-robust9.c
@@ -89,6 +89,5 @@ do_test (void)
return 0;
}
-#define TIMEOUT 5
#define TEST_FUNCTION do_test ()
#include "../test-skeleton.c"
diff --git a/nptl/tst-rwlock-pwn.c b/nptl/tst-rwlock-pwn.c
new file mode 100644
index 0000000000..1d809c91df
--- /dev/null
+++ b/nptl/tst-rwlock-pwn.c
@@ -0,0 +1,87 @@
+/* Test rwlock with PREFER_WRITER_NONRECURSIVE_NP (bug 23861).
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <pthread.h>
+#include <support/xthread.h>
+
+/* We choose 10 iterations because this happens to be able to trigger the
+ stall on contemporary hardware. */
+#define LOOPS 10
+/* We need 3 threads to trigger bug 23861. One thread as a writer, and
+ two reader threads. The test verifies that the second-to-last reader
+ is able to notify the *last* reader that it should be done waiting.
+ If the second-to-last reader fails to notify the last reader or does
+ so incorrectly then the last reader may stall indefinitely. */
+#define NTHREADS 3
+
+_Atomic int do_exit;
+pthread_rwlockattr_t mylock_attr;
+pthread_rwlock_t mylock;
+
+void *
+run_loop (void *a)
+{
+ while (!do_exit)
+ {
+ if (random () & 1)
+ {
+ xpthread_rwlock_wrlock (&mylock);
+ xpthread_rwlock_unlock (&mylock);
+ }
+ else
+ {
+ xpthread_rwlock_rdlock (&mylock);
+ xpthread_rwlock_unlock (&mylock);
+ }
+ }
+ return NULL;
+}
+
+int
+do_test (void)
+{
+ xpthread_rwlockattr_init (&mylock_attr);
+ xpthread_rwlockattr_setkind_np (&mylock_attr,
+ PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP);
+ xpthread_rwlock_init (&mylock, &mylock_attr);
+
+ for (int n = 0; n < LOOPS; n++)
+ {
+ pthread_t tids[NTHREADS];
+ do_exit = 0;
+ for (int i = 0; i < NTHREADS; i++)
+ tids[i] = xpthread_create (NULL, run_loop, NULL);
+ /* Let the threads run for some time. */
+ sleep (1);
+ printf ("Exiting...");
+ fflush (stdout);
+ do_exit = 1;
+ for (int i = 0; i < NTHREADS; i++)
+ xpthread_join (tids[i]);
+ printf ("done.\n");
+ }
+ pthread_rwlock_destroy (&mylock);
+ pthread_rwlockattr_destroy (&mylock_attr);
+ return 0;
+}
+
+#define TIMEOUT (DEFAULT_TIMEOUT + 3 * LOOPS)
+#include <support/test-driver.c>
diff --git a/nptl/tst-rwlock-tryrdlock-stall.c b/nptl/tst-rwlock-tryrdlock-stall.c
new file mode 100644
index 0000000000..80c9c50388
--- /dev/null
+++ b/nptl/tst-rwlock-tryrdlock-stall.c
@@ -0,0 +1,355 @@
+/* Bug 23844: Test for pthread_rwlock_tryrdlock stalls.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+/* For a full analysis see comment:
+ https://sourceware.org/bugzilla/show_bug.cgi?id=23844#c14
+
+ Provided here for reference:
+
+ --- Analysis of pthread_rwlock_tryrdlock() stall ---
+ A read lock begins to execute.
+
+ In __pthread_rwlock_rdlock_full:
+
+ We can attempt a read lock, but find that the lock is
+ in a write phase (PTHREAD_RWLOCK_WRPHASE, or WP-bit
+ is set), and the lock is held by a primary writer
+ (PTHREAD_RWLOCK_WRLOCKED is set). In this case we must
+ wait for explicit hand over from the writer to us or
+ one of the other waiters. The read lock threads are
+ about to execute:
+
+ 341 r = (atomic_fetch_add_acquire (&rwlock->__data.__readers,
+ 342 (1 << PTHREAD_RWLOCK_READER_SHIFT))
+ 343 + (1 << PTHREAD_RWLOCK_READER_SHIFT));
+
+ An unlock beings to execute.
+
+ Then in __pthread_rwlock_wrunlock:
+
+ 547 unsigned int r = atomic_load_relaxed (&rwlock->__data.__readers);
+ ...
+ 549 while (!atomic_compare_exchange_weak_release
+ 550 (&rwlock->__data.__readers, &r,
+ 551 ((r ^ PTHREAD_RWLOCK_WRLOCKED)
+ 552 ^ ((r >> PTHREAD_RWLOCK_READER_SHIFT) == 0 ? 0
+ 553 : PTHREAD_RWLOCK_WRPHASE))))
+ 554 {
+ ...
+ 556 }
+
+ We clear PTHREAD_RWLOCK_WRLOCKED, and if there are
+ no readers so we leave the lock in PTHRAD_RWLOCK_WRPHASE.
+
+ Back in the read lock.
+
+ The read lock adjusts __readres as above.
+
+ 383 while ((r & PTHREAD_RWLOCK_WRPHASE) != 0
+ 384 && (r & PTHREAD_RWLOCK_WRLOCKED) == 0)
+ 385 {
+ ...
+ 390 if (atomic_compare_exchange_weak_acquire (&rwlock->__data.__readers, &r,
+ 391 r ^ PTHREAD_RWLOCK_WRPHASE))
+ 392 {
+
+ And then attemps to start the read phase.
+
+ Assume there happens to be a tryrdlock at this point, noting
+ that PTHREAD_RWLOCK_WRLOCKED is clear, and PTHREAD_RWLOCK_WRPHASE
+ is 1. So the try lock attemps to start the read phase.
+
+ In __pthread_rwlock_tryrdlock:
+
+ 44 if ((r & PTHREAD_RWLOCK_WRPHASE) == 0)
+ 45 {
+ ...
+ 49 if (((r & PTHREAD_RWLOCK_WRLOCKED) != 0)
+ 50 && (rwlock->__data.__flags
+ 51 == PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP))
+ 52 return EBUSY;
+ 53 rnew = r + (1 << PTHREAD_RWLOCK_READER_SHIFT);
+ 54 }
+ ...
+ 89 while (!atomic_compare_exchange_weak_acquire (&rwlock->__data.__readers,
+ 90 &r, rnew));
+
+ And succeeds.
+
+ Back in the write unlock:
+
+ 557 if ((r >> PTHREAD_RWLOCK_READER_SHIFT) != 0)
+ 558 {
+ ...
+ 563 if ((atomic_exchange_relaxed (&rwlock->__data.__wrphase_futex, 0)
+ 564 & PTHREAD_RWLOCK_FUTEX_USED) != 0)
+ 565 futex_wake (&rwlock->__data.__wrphase_futex, INT_MAX, private);
+ 566 }
+
+ We note that PTHREAD_RWLOCK_FUTEX_USED is non-zero
+ and don't wake anyone. This is OK because we handed
+ over to the trylock. It will be the trylock's responsibility
+ to wake any waiters.
+
+ Back in the read lock:
+
+ The read lock fails to install PTHRAD_REWLOCK_WRPHASE as 0 because
+ the __readers value was adjusted by the trylock, and so it falls through
+ to waiting on the lock for explicit handover from either a new writer
+ or a new reader.
+
+ 448 int err = futex_abstimed_wait (&rwlock->__data.__wrphase_futex,
+ 449 1 | PTHREAD_RWLOCK_FUTEX_USED,
+ 450 abstime, private);
+
+ We use PTHREAD_RWLOCK_FUTEX_USED to indicate the futex
+ is in use.
+
+ At this point we have readers waiting on the read lock
+ to unlock. The wrlock is done. The trylock is finishing
+ the installation of the read phase.
+
+ 92 if ((r & PTHREAD_RWLOCK_WRPHASE) != 0)
+ 93 {
+ ...
+ 105 atomic_store_relaxed (&rwlock->__data.__wrphase_futex, 0);
+ 106 }
+
+ The trylock does note that we were the one that
+ installed the read phase, but the comments are not
+ correct, the execution ordering above shows that
+ readers might indeed be waiting, and they are.
+
+ The atomic_store_relaxed throws away PTHREAD_RWLOCK_FUTEX_USED,
+ and the waiting reader is never worken becuase as noted
+ above it is conditional on the futex being used.
+
+ The solution is for the trylock thread to inspect
+ PTHREAD_RWLOCK_FUTEX_USED and wake the waiting readers.
+
+ --- Analysis of pthread_rwlock_trywrlock() stall ---
+
+ A write lock begins to execute, takes the write lock,
+ and then releases the lock...
+
+ In pthread_rwlock_wrunlock():
+
+ 547 unsigned int r = atomic_load_relaxed (&rwlock->__data.__readers);
+ ...
+ 549 while (!atomic_compare_exchange_weak_release
+ 550 (&rwlock->__data.__readers, &r,
+ 551 ((r ^ PTHREAD_RWLOCK_WRLOCKED)
+ 552 ^ ((r >> PTHREAD_RWLOCK_READER_SHIFT) == 0 ? 0
+ 553 : PTHREAD_RWLOCK_WRPHASE))))
+ 554 {
+ ...
+ 556 }
+
+ ... leaving it in the write phase with zero readers
+ (the case where we leave the write phase in place
+ during a write unlock).
+
+ A write trylock begins to execute.
+
+ In __pthread_rwlock_trywrlock:
+
+ 40 while (((r & PTHREAD_RWLOCK_WRLOCKED) == 0)
+ 41 && (((r >> PTHREAD_RWLOCK_READER_SHIFT) == 0)
+ 42 || (prefer_writer && ((r & PTHREAD_RWLOCK_WRPHASE) != 0))))
+ 43 {
+
+ The lock is not locked.
+
+ There are no readers.
+
+ 45 if (atomic_compare_exchange_weak_acquire (
+ 46 &rwlock->__data.__readers, &r,
+ 47 r | PTHREAD_RWLOCK_WRPHASE | PTHREAD_RWLOCK_WRLOCKED))
+
+ We atomically install the write phase and we take the
+ exclusive write lock.
+
+ 48 {
+ 49 atomic_store_relaxed (&rwlock->__data.__writers_futex, 1);
+
+ We get this far.
+
+ A reader lock begins to execute.
+
+ In pthread_rwlock_rdlock:
+
+ 437 for (;;)
+ 438 {
+ 439 while (((wpf = atomic_load_relaxed (&rwlock->__data.__wrphase_futex))
+ 440 | PTHREAD_RWLOCK_FUTEX_USED) == (1 | PTHREAD_RWLOCK_FUTEX_USED))
+ 441 {
+ 442 int private = __pthread_rwlock_get_private (rwlock);
+ 443 if (((wpf & PTHREAD_RWLOCK_FUTEX_USED) == 0)
+ 444 && (!atomic_compare_exchange_weak_relaxed
+ 445 (&rwlock->__data.__wrphase_futex,
+ 446 &wpf, wpf | PTHREAD_RWLOCK_FUTEX_USED)))
+ 447 continue;
+ 448 int err = futex_abstimed_wait (&rwlock->__data.__wrphase_futex,
+ 449 1 | PTHREAD_RWLOCK_FUTEX_USED,
+ 450 abstime, private);
+
+ We are in a write phase, so the while() on line 439 is true.
+
+ The value of wpf does not have PTHREAD_RWLOCK_FUTEX_USED set
+ since this is the first reader to lock.
+
+ The atomic operation sets wpf with PTHREAD_RELOCK_FUTEX_USED
+ on the expectation that this reader will be woken during
+ the handoff.
+
+ Back in pthread_rwlock_trywrlock:
+
+ 50 atomic_store_relaxed (&rwlock->__data.__wrphase_futex, 1);
+ 51 atomic_store_relaxed (&rwlock->__data.__cur_writer,
+ 52 THREAD_GETMEM (THREAD_SELF, tid));
+ 53 return 0;
+ 54 }
+ ...
+ 57 }
+
+ We write 1 to __wrphase_futex discarding PTHREAD_RWLOCK_FUTEX_USED,
+ and so in the unlock we will not awaken the waiting reader.
+
+ The solution to this is to realize that if we did not start the write
+ phase we need not write 1 or any other value to __wrphase_futex.
+ This ensures that any readers (which saw __wrphase_futex != 0) can
+ set PTHREAD_RWLOCK_FUTEX_USED and this can be used at unlock to
+ wake them.
+
+ If we installed the write phase then all other readers are looping
+ here:
+
+ In __pthread_rwlock_rdlock_full:
+
+ 437 for (;;)
+ 438 {
+ 439 while (((wpf = atomic_load_relaxed (&rwlock->__data.__wrphase_futex))
+ 440 | PTHREAD_RWLOCK_FUTEX_USED) == (1 | PTHREAD_RWLOCK_FUTEX_USED))
+ 441 {
+ ...
+ 508 }
+
+ waiting for the write phase to be installed or removed before they
+ can begin waiting on __wrphase_futex (part of the algorithm), or
+ taking a concurrent read lock, and thus we can safely write 1 to
+ __wrphase_futex.
+
+ If we did not install the write phase then the readers may already
+ be waiting on the futex, the original writer wrote 1 to __wrphase_futex
+ as part of starting the write phase, and we cannot also write 1
+ without loosing the PTHREAD_RWLOCK_FUTEX_USED bit.
+
+ ---
+
+ Summary for the pthread_rwlock_tryrdlock() stall:
+
+ The stall is caused by pthread_rwlock_tryrdlock failing to check
+ that PTHREAD_RWLOCK_FUTEX_USED is set in the __wrphase_futex futex
+ and then waking the futex.
+
+ The fix for bug 23844 ensures that waiters on __wrphase_futex are
+ correctly woken. Before the fix the test stalls as readers can
+ wait forever on __wrphase_futex. */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <pthread.h>
+#include <support/xthread.h>
+#include <errno.h>
+
+/* We need only one lock to reproduce the issue. We will need multiple
+ threads to get the exact case where we have a read, try, and unlock
+ all interleaving to produce the case where the readers are waiting
+ and the try fails to wake them. */
+pthread_rwlock_t onelock;
+
+/* The number of threads is arbitrary but empirically chosen to have
+ enough threads that we see the condition where waiting readers are
+ not woken by a successful tryrdlock. */
+#define NTHREADS 32
+
+_Atomic int do_exit;
+
+void *
+run_loop (void *arg)
+{
+ int i = 0, ret;
+ while (!do_exit)
+ {
+ /* Arbitrarily choose if we are the writer or reader. Choose a
+ high enough ratio of readers to writers to make it likely
+ that readers block (and eventually are susceptable to
+ stalling).
+
+ If we are a writer, take the write lock, and then unlock.
+ If we are a reader, try the lock, then lock, then unlock. */
+ if ((i % 8) != 0)
+ xpthread_rwlock_wrlock (&onelock);
+ else
+ {
+ if ((ret = pthread_rwlock_tryrdlock (&onelock)) != 0)
+ {
+ if (ret == EBUSY)
+ xpthread_rwlock_rdlock (&onelock);
+ else
+ exit (EXIT_FAILURE);
+ }
+ }
+ /* Thread does some work and then unlocks. */
+ xpthread_rwlock_unlock (&onelock);
+ i++;
+ }
+ return NULL;
+}
+
+int
+do_test (void)
+{
+ int i;
+ pthread_t tids[NTHREADS];
+ xpthread_rwlock_init (&onelock, NULL);
+ for (i = 0; i < NTHREADS; i++)
+ tids[i] = xpthread_create (NULL, run_loop, NULL);
+ /* Run for some amount of time. Empirically speaking exercising
+ the stall via pthread_rwlock_tryrdlock is much harder, and on
+ a 3.5GHz 4 core x86_64 VM system it takes somewhere around
+ 20-200s to stall, approaching 100% stall past 200s. We can't
+ wait that long for a regression test so we just test for 20s,
+ and expect the stall to happen with a 5-10% chance (enough for
+ developers to see). */
+ sleep (20);
+ /* Then exit. */
+ printf ("INFO: Exiting...\n");
+ do_exit = 1;
+ /* If any readers stalled then we will timeout waiting for them. */
+ for (i = 0; i < NTHREADS; i++)
+ xpthread_join (tids[i]);
+ printf ("INFO: Done.\n");
+ xpthread_rwlock_destroy (&onelock);
+ printf ("PASS: No pthread_rwlock_tryrdlock stalls detected.\n");
+ return 0;
+}
+
+#define TIMEOUT 30
+#include <support/test-driver.c>
diff --git a/nptl/tst-rwlock-trywrlock-stall.c b/nptl/tst-rwlock-trywrlock-stall.c
new file mode 100644
index 0000000000..13a7164015
--- /dev/null
+++ b/nptl/tst-rwlock-trywrlock-stall.c
@@ -0,0 +1,108 @@
+/* Bug 23844: Test for pthread_rwlock_trywrlock stalls.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+/* For a full analysis see comments in tst-rwlock-tryrdlock-stall.c.
+
+ Summary for the pthread_rwlock_trywrlock() stall:
+
+ The stall is caused by pthread_rwlock_trywrlock setting
+ __wrphase_futex futex to 1 and loosing the
+ PTHREAD_RWLOCK_FUTEX_USED bit.
+
+ The fix for bug 23844 ensures that waiters on __wrphase_futex are
+ correctly woken. Before the fix the test stalls as readers can
+ wait forever on __wrphase_futex. */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <pthread.h>
+#include <support/xthread.h>
+#include <errno.h>
+
+/* We need only one lock to reproduce the issue. We will need multiple
+ threads to get the exact case where we have a read, try, and unlock
+ all interleaving to produce the case where the readers are waiting
+ and the try clears the PTHREAD_RWLOCK_FUTEX_USED bit and a
+ subsequent unlock fails to wake them. */
+pthread_rwlock_t onelock;
+
+/* The number of threads is arbitrary but empirically chosen to have
+ enough threads that we see the condition where waiting readers are
+ not woken by a successful unlock. */
+#define NTHREADS 32
+
+_Atomic int do_exit;
+
+void *
+run_loop (void *arg)
+{
+ int i = 0, ret;
+ while (!do_exit)
+ {
+ /* Arbitrarily choose if we are the writer or reader. Choose a
+ high enough ratio of readers to writers to make it likely
+ that readers block (and eventually are susceptable to
+ stalling).
+
+ If we are a writer, take the write lock, and then unlock.
+ If we are a reader, try the lock, then lock, then unlock. */
+ if ((i % 8) != 0)
+ {
+ if ((ret = pthread_rwlock_trywrlock (&onelock)) != 0)
+ {
+ if (ret == EBUSY)
+ xpthread_rwlock_wrlock (&onelock);
+ else
+ exit (EXIT_FAILURE);
+ }
+ }
+ else
+ xpthread_rwlock_rdlock (&onelock);
+ /* Thread does some work and then unlocks. */
+ xpthread_rwlock_unlock (&onelock);
+ i++;
+ }
+ return NULL;
+}
+
+int
+do_test (void)
+{
+ int i;
+ pthread_t tids[NTHREADS];
+ xpthread_rwlock_init (&onelock, NULL);
+ for (i = 0; i < NTHREADS; i++)
+ tids[i] = xpthread_create (NULL, run_loop, NULL);
+ /* Run for some amount of time. The pthread_rwlock_tryrwlock stall
+ is very easy to trigger and happens in seconds under the test
+ conditions. */
+ sleep (10);
+ /* Then exit. */
+ printf ("INFO: Exiting...\n");
+ do_exit = 1;
+ /* If any readers stalled then we will timeout waiting for them. */
+ for (i = 0; i < NTHREADS; i++)
+ xpthread_join (tids[i]);
+ printf ("INFO: Done.\n");
+ xpthread_rwlock_destroy (&onelock);
+ printf ("PASS: No pthread_rwlock_tryrwlock stalls detected.\n");
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/nptl/tst-rwlock1.c b/nptl/tst-rwlock1.c
index ff1ab01343..52e1f585df 100644
--- a/nptl/tst-rwlock1.c
+++ b/nptl/tst-rwlock1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
diff --git a/nptl/tst-rwlock10.c b/nptl/tst-rwlock10.c
index 9ecc42a0fe..140fb297f9 100644
--- a/nptl/tst-rwlock10.c
+++ b/nptl/tst-rwlock10.c
@@ -1,5 +1,5 @@
/* Test program for timedout read/write lock functions.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
The GNU C Library is free software; you can redistribute it and/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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#define KIND PTHREAD_RWLOCK_PREFER_READER_NP
#include "tst-rwlock8.c"
diff --git a/nptl/tst-rwlock11.c b/nptl/tst-rwlock11.c
index ba818c6921..123d133ff4 100644
--- a/nptl/tst-rwlock11.c
+++ b/nptl/tst-rwlock11.c
@@ -1,5 +1,5 @@
/* Test program for timedout read/write lock functions.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
The GNU C Library is free software; you can redistribute it and/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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#define KIND PTHREAD_RWLOCK_PREFER_READER_NP
#include "tst-rwlock9.c"
diff --git a/nptl/tst-rwlock12.c b/nptl/tst-rwlock12.c
index c44e06ee0b..7ffab92646 100644
--- a/nptl/tst-rwlock12.c
+++ b/nptl/tst-rwlock12.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-rwlock13.c b/nptl/tst-rwlock13.c
index eb563b3f1c..38505d573f 100644
--- a/nptl/tst-rwlock13.c
+++ b/nptl/tst-rwlock13.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
diff --git a/nptl/tst-rwlock14.c b/nptl/tst-rwlock14.c
index d6fda87c61..93523f6463 100644
--- a/nptl/tst-rwlock14.c
+++ b/nptl/tst-rwlock14.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2004.
@@ -14,13 +14,16 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
+#include <support/check.h>
+#include <support/xthread.h>
+#include <support/xtime.h>
static pthread_barrier_t b;
@@ -31,18 +34,14 @@ static void *
tf (void *arg)
{
/* Lock the read-write lock. */
- if (pthread_rwlock_wrlock (&r) != 0)
- {
- puts ("tf: cannot lock rwlock");
- exit (EXIT_FAILURE);
- }
+ TEST_COMPARE (pthread_rwlock_wrlock (&r), 0);
pthread_t mt = *(pthread_t *) arg;
- pthread_barrier_wait (&b);
+ xpthread_barrier_wait (&b);
/* This call will never return. */
- pthread_join (mt, NULL);
+ xpthread_join (mt);
return NULL;
}
@@ -51,118 +50,47 @@ tf (void *arg)
static int
do_test (void)
{
- int result = 0;
struct timespec ts;
- if (clock_gettime (CLOCK_REALTIME, &ts) != 0)
- {
- puts ("clock_gettime failed");
- return 1;
- }
-
- if (pthread_barrier_init (&b, NULL, 2) != 0)
- {
- puts ("barrier_init failed");
- return 1;
- }
+ xclock_gettime (CLOCK_REALTIME, &ts);
+ xpthread_barrier_init (&b, NULL, 2);
pthread_t me = pthread_self ();
- pthread_t th;
- if (pthread_create (&th, NULL, tf, &me) != 0)
- {
- puts ("create failed");
- return 1;
- }
+ xpthread_create (NULL, tf, &me);
/* Wait until the rwlock is locked. */
- pthread_barrier_wait (&b);
+ xpthread_barrier_wait (&b);
ts.tv_nsec = -1;
- int e = pthread_rwlock_timedrdlock (&r, &ts);
- if (e == 0)
- {
- puts ("first rwlock_timedrdlock did not fail");
- result = 1;
- }
- else if (e != EINVAL)
- {
- puts ("first rwlock_timedrdlock did not return EINVAL");
- result = 1;
- }
-
- e = pthread_rwlock_timedwrlock (&r, &ts);
- if (e == 0)
- {
- puts ("first rwlock_timedwrlock did not fail");
- result = 1;
- }
- else if (e != EINVAL)
- {
- puts ("first rwlock_timedwrlock did not return EINVAL");
- result = 1;
- }
+ TEST_COMPARE (pthread_rwlock_timedrdlock (&r, &ts), EINVAL);
+ TEST_COMPARE (pthread_rwlock_clockrdlock (&r, CLOCK_REALTIME, &ts), EINVAL);
+ TEST_COMPARE (pthread_rwlock_clockrdlock (&r, CLOCK_MONOTONIC, &ts), EINVAL);
+ TEST_COMPARE (pthread_rwlock_timedwrlock (&r, &ts), EINVAL);
+ TEST_COMPARE (pthread_rwlock_clockwrlock (&r, CLOCK_REALTIME, &ts), EINVAL);
+ TEST_COMPARE (pthread_rwlock_clockwrlock (&r, CLOCK_MONOTONIC, &ts), EINVAL);
ts.tv_nsec = 1000000000;
- e = pthread_rwlock_timedrdlock (&r, &ts);
- if (e == 0)
- {
- puts ("second rwlock_timedrdlock did not fail");
- result = 1;
- }
- else if (e != EINVAL)
- {
- puts ("second rwlock_timedrdlock did not return EINVAL");
- result = 1;
- }
-
- e = pthread_rwlock_timedrdlock (&r, &ts);
- if (e == 0)
- {
- puts ("second rwlock_timedrdlock did not fail");
- result = 1;
- }
- else if (e != EINVAL)
- {
- puts ("second rwlock_timedrdlock did not return EINVAL");
- result = 1;
- }
+ TEST_COMPARE (pthread_rwlock_timedrdlock (&r, &ts), EINVAL);
+ TEST_COMPARE (pthread_rwlock_clockrdlock (&r, CLOCK_REALTIME, &ts), EINVAL);
+ TEST_COMPARE (pthread_rwlock_clockrdlock (&r, CLOCK_MONOTONIC, &ts), EINVAL);
+ TEST_COMPARE (pthread_rwlock_timedwrlock (&r, &ts), EINVAL);
+ TEST_COMPARE (pthread_rwlock_clockwrlock (&r, CLOCK_REALTIME, &ts), EINVAL);
+ TEST_COMPARE (pthread_rwlock_clockwrlock (&r, CLOCK_MONOTONIC, &ts), EINVAL);
ts.tv_nsec = (__typeof (ts.tv_nsec)) 0x100001000LL;
if ((__typeof (ts.tv_nsec)) 0x100001000LL != 0x100001000LL)
ts.tv_nsec = 2000000000;
- e = pthread_rwlock_timedrdlock (&r, &ts);
- if (e == 0)
- {
- puts ("third rwlock_timedrdlock did not fail");
- result = 1;
- }
- else if (e != EINVAL)
- {
- puts ("third rwlock_timedrdlock did not return EINVAL");
- result = 1;
- }
-
- e = pthread_rwlock_timedrdlock (&r, &ts);
- if (e == 0)
- {
- puts ("third rwlock_timedrdlock did not fail");
- result = 1;
- }
- else if (e != EINVAL)
- {
- puts ("third rwlock_timedrdlock did not return EINVAL");
- result = 1;
- }
-
- if (result == 0)
- puts ("no bugs");
-
- return result;
-}
+ TEST_COMPARE (pthread_rwlock_timedrdlock (&r, &ts), EINVAL);
+ TEST_COMPARE (pthread_rwlock_clockrdlock (&r, CLOCK_REALTIME, &ts), EINVAL);
+ TEST_COMPARE (pthread_rwlock_clockrdlock (&r, CLOCK_MONOTONIC, &ts), EINVAL);
+ TEST_COMPARE (pthread_rwlock_timedwrlock (&r, &ts), EINVAL);
+ TEST_COMPARE (pthread_rwlock_clockwrlock (&r, CLOCK_REALTIME, &ts), EINVAL);
+ TEST_COMPARE (pthread_rwlock_clockwrlock (&r, CLOCK_MONOTONIC, &ts), EINVAL);
+ return 0;
+}
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/test-driver.c>
diff --git a/nptl/tst-rwlock15.c b/nptl/tst-rwlock15.c
index 53f8e0aec3..c1f9db96dd 100644
--- a/nptl/tst-rwlock15.c
+++ b/nptl/tst-rwlock15.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2015-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This tests that a writer that is preferred -- but times out due to a
reader being present -- does not miss to wake other readers blocked on the
diff --git a/nptl/tst-rwlock16.c b/nptl/tst-rwlock16.c
index f11a55fc18..76489e3612 100644
--- a/nptl/tst-rwlock16.c
+++ b/nptl/tst-rwlock16.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2015-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This tests that with a reader-preferring rwlock, all readers are woken if
one reader "steals" lock ownership from a blocked writer. */
@@ -178,6 +178,5 @@ do_test (void)
}
-#define TIMEOUT 3
#define TEST_FUNCTION do_test ()
#include "../test-skeleton.c"
diff --git a/nptl/tst-rwlock17.c b/nptl/tst-rwlock17.c
index 45497f5e59..ef4fe7a2f9 100644
--- a/nptl/tst-rwlock17.c
+++ b/nptl/tst-rwlock17.c
@@ -1,5 +1,5 @@
/* Test program for timedout read/write lock functions.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-2019 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 License as
@@ -13,7 +13,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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#define KIND PTHREAD_RWLOCK_PREFER_WRITER_NP
#include "tst-rwlock8.c"
diff --git a/nptl/tst-rwlock18.c b/nptl/tst-rwlock18.c
index 6389bba99e..5d04d54b36 100644
--- a/nptl/tst-rwlock18.c
+++ b/nptl/tst-rwlock18.c
@@ -1,5 +1,5 @@
/* Test program for timedout read/write lock functions.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-2019 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 License as
@@ -13,7 +13,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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#define KIND PTHREAD_RWLOCK_PREFER_WRITER_NP
#include "tst-rwlock9.c"
diff --git a/nptl/tst-rwlock19.c b/nptl/tst-rwlock19.c
index 56a1f33aee..19d40c11ca 100644
--- a/nptl/tst-rwlock19.c
+++ b/nptl/tst-rwlock19.c
@@ -1,5 +1,5 @@
/* Test rdlock overflow.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 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 License as
@@ -13,7 +13,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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <error.h>
diff --git a/nptl/tst-rwlock2.c b/nptl/tst-rwlock2.c
index fbc2bdb54c..f55a825642 100644
--- a/nptl/tst-rwlock2.c
+++ b/nptl/tst-rwlock2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-rwlock20.c b/nptl/tst-rwlock20.c
index aeb41d29c4..83d6cf9038 100644
--- a/nptl/tst-rwlock20.c
+++ b/nptl/tst-rwlock20.c
@@ -1,5 +1,5 @@
/* Test program for a read-phase / write-phase explicit hand-over.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-2019 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 License as
@@ -13,7 +13,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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <error.h>
diff --git a/nptl/tst-rwlock3.c b/nptl/tst-rwlock3.c
index 6449091f59..e04c73fa98 100644
--- a/nptl/tst-rwlock3.c
+++ b/nptl/tst-rwlock3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This test case checks more than standard compliance. An
implementation may provide this service but it is not required to
diff --git a/nptl/tst-rwlock4.c b/nptl/tst-rwlock4.c
index ad8dc5ee74..9ccdcfc0f6 100644
--- a/nptl/tst-rwlock4.c
+++ b/nptl/tst-rwlock4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-rwlock5.c b/nptl/tst-rwlock5.c
index 515b1cf265..7a6992459b 100644
--- a/nptl/tst-rwlock5.c
+++ b/nptl/tst-rwlock5.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <signal.h>
diff --git a/nptl/tst-rwlock6.c b/nptl/tst-rwlock6.c
index 4476c6ba8b..7df4518b05 100644
--- a/nptl/tst-rwlock6.c
+++ b/nptl/tst-rwlock6.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
@@ -22,8 +22,18 @@
#include <stdio.h>
#include <string.h>
#include <sys/time.h>
+#include <support/check.h>
+#include <support/test-driver.h>
+#include <support/timespec.h>
+#include <support/xthread.h>
+#include <support/xtime.h>
+/* A bogus clock value that tells run_test to use pthread_rwlock_timedrdlock
+ and pthread_rwlock_timedwrlock rather than pthread_rwlock_clockrdlock and
+ pthread_rwlock_clockwrlock. */
+#define CLOCK_USE_TIMEDLOCK (-1)
+
static int kind[] =
{
PTHREAD_RWLOCK_PREFER_READER_NP,
@@ -31,81 +41,63 @@ static int kind[] =
PTHREAD_RWLOCK_PREFER_WRITER_NP,
};
+struct thread_args
+{
+ pthread_rwlock_t *rwlock;
+ clockid_t clockid;
+ const char *fnname;
+};
static void *
tf (void *arg)
{
- pthread_rwlock_t *r = arg;
+ struct thread_args *args = arg;
+ pthread_rwlock_t *r = args->rwlock;
+ const clockid_t clockid = args->clockid;
+ const clockid_t clockid_for_get =
+ (clockid == CLOCK_USE_TIMEDLOCK) ? CLOCK_REALTIME : clockid;
+ const char *fnname = args->fnname;
/* Timeout: 0.3 secs. */
- struct timeval tv;
- (void) gettimeofday (&tv, NULL);
-
- struct timespec ts;
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
- ts.tv_nsec += 300000000;
- if (ts.tv_nsec >= 1000000000)
- {
- ts.tv_nsec -= 1000000000;
- ++ts.tv_sec;
- }
-
- puts ("child calling timedrdlock");
+ struct timespec ts_start;
+ xclock_gettime (clockid_for_get, &ts_start);
- int err = pthread_rwlock_timedrdlock (r, &ts);
- if (err == 0)
- {
- puts ("rwlock_timedrdlock returned");
- pthread_exit ((void *) 1l);
- }
+ struct timespec ts_timeout = timespec_add (ts_start,
+ make_timespec (0, 300000000));
- if (err != ETIMEDOUT)
- {
- printf ("err = %s (%d), expected %s (%d)\n",
- strerror (err), err, strerror (ETIMEDOUT), ETIMEDOUT);
- pthread_exit ((void *) 1l);
- }
+ verbose_printf ("child calling %srdlock\n", fnname);
- puts ("1st child timedrdlock done");
+ if (clockid == CLOCK_USE_TIMEDLOCK)
+ TEST_COMPARE (pthread_rwlock_timedrdlock (r, &ts_timeout), ETIMEDOUT);
+ else
+ TEST_COMPARE (pthread_rwlock_clockrdlock (r, clockid, &ts_timeout),
+ ETIMEDOUT);
- struct timeval tv2;
- (void) gettimeofday (&tv2, NULL);
+ verbose_printf ("1st child %srdlock done\n", fnname);
- timersub (&tv2, &tv, &tv);
-
- if (tv.tv_usec < 200000)
- {
- puts ("timeout too short");
- pthread_exit ((void *) 1l);
- }
+ TEST_TIMESPEC_NOW_OR_AFTER (CLOCK_REALTIME, ts_timeout);
- (void) gettimeofday (&tv, NULL);
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
- ts.tv_sec += 10;
+ xclock_gettime (clockid_for_get, &ts_timeout);
+ ts_timeout.tv_sec += 10;
/* Note that the following operation makes ts invalid. */
- ts.tv_nsec += 1000000000;
+ ts_timeout.tv_nsec += 1000000000;
- err = pthread_rwlock_timedrdlock (r, &ts);
- if (err == 0)
- {
- puts ("2nd timedrdlock succeeded");
- pthread_exit ((void *) 1l);
- }
- if (err != EINVAL)
- {
- puts ("2nd timedrdlock did not return EINVAL");
- pthread_exit ((void *) 1l);
- }
+ if (clockid == CLOCK_USE_TIMEDLOCK)
+ TEST_COMPARE (pthread_rwlock_timedrdlock (r, &ts_timeout), EINVAL);
+ else
+ TEST_COMPARE (pthread_rwlock_clockrdlock (r, clockid, &ts_timeout), EINVAL);
- puts ("2nd child timedrdlock done");
+ verbose_printf ("2nd child %srdlock done\n", fnname);
return NULL;
}
static int
-do_test (void)
+do_test_clock (clockid_t clockid, const char *fnname)
{
+ const clockid_t clockid_for_get =
+ (clockid == CLOCK_USE_TIMEDLOCK) ? CLOCK_REALTIME : clockid;
size_t cnt;
for (cnt = 0; cnt < sizeof (kind) / sizeof (kind[0]); ++cnt)
{
@@ -113,113 +105,74 @@ do_test (void)
pthread_rwlockattr_t a;
if (pthread_rwlockattr_init (&a) != 0)
- {
- printf ("round %Zu: rwlockattr_t failed\n", cnt);
- exit (1);
- }
+ FAIL_EXIT1 ("round %Zu: rwlockattr_t failed\n", cnt);
if (pthread_rwlockattr_setkind_np (&a, kind[cnt]) != 0)
- {
- printf ("round %Zu: rwlockattr_setkind failed\n", cnt);
- exit (1);
- }
+ FAIL_EXIT1 ("round %Zu: rwlockattr_setkind failed\n", cnt);
if (pthread_rwlock_init (&r, &a) != 0)
- {
- printf ("round %Zu: rwlock_init failed\n", cnt);
- exit (1);
- }
+ FAIL_EXIT1 ("round %Zu: rwlock_init failed\n", cnt);
if (pthread_rwlockattr_destroy (&a) != 0)
- {
- printf ("round %Zu: rwlockattr_destroy failed\n", cnt);
- exit (1);
- }
-
- struct timeval tv;
- (void) gettimeofday (&tv, NULL);
+ FAIL_EXIT1 ("round %Zu: rwlockattr_destroy failed\n", cnt);
struct timespec ts;
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
-
+ xclock_gettime (clockid_for_get, &ts);
++ts.tv_sec;
/* Get a write lock. */
- int e = pthread_rwlock_timedwrlock (&r, &ts);
+ int e = (clockid == CLOCK_USE_TIMEDLOCK)
+ ? pthread_rwlock_timedwrlock (&r, &ts)
+ : pthread_rwlock_clockwrlock (&r, clockid, &ts);
if (e != 0)
- {
- printf ("round %Zu: rwlock_timedwrlock failed (%d)\n", cnt, e);
- exit (1);
- }
+ FAIL_EXIT1 ("round %Zu: %swrlock failed (%d)\n",
+ cnt, fnname, e);
- puts ("1st timedwrlock done");
+ verbose_printf ("1st %swrlock done\n", fnname);
- (void) gettimeofday (&tv, NULL);
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
+ xclock_gettime (clockid_for_get, &ts);
++ts.tv_sec;
- e = pthread_rwlock_timedrdlock (&r, &ts);
- if (e == 0)
- {
- puts ("timedrdlock succeeded");
- exit (1);
- }
- if (e != EDEADLK)
- {
- puts ("timedrdlock did not return EDEADLK");
- exit (1);
- }
-
- puts ("1st timedrdlock done");
-
- (void) gettimeofday (&tv, NULL);
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
+ if (clockid == CLOCK_USE_TIMEDLOCK)
+ TEST_COMPARE (pthread_rwlock_timedrdlock (&r, &ts), EDEADLK);
+ else
+ TEST_COMPARE (pthread_rwlock_clockrdlock (&r, clockid, &ts), EDEADLK);
+
+ verbose_printf ("1st %srdlock done\n", fnname);
+
+ xclock_gettime (clockid_for_get, &ts);
++ts.tv_sec;
- e = pthread_rwlock_timedwrlock (&r, &ts);
- if (e == 0)
- {
- puts ("2nd timedwrlock succeeded");
- exit (1);
- }
- if (e != EDEADLK)
- {
- puts ("2nd timedwrlock did not return EDEADLK");
- exit (1);
- }
-
- puts ("2nd timedwrlock done");
-
- pthread_t th;
- if (pthread_create (&th, NULL, tf, &r) != 0)
- {
- printf ("round %Zu: create failed\n", cnt);
- exit (1);
- }
+ if (clockid == CLOCK_USE_TIMEDLOCK)
+ TEST_COMPARE (pthread_rwlock_timedwrlock (&r, &ts), EDEADLK);
+ else
+ TEST_COMPARE (pthread_rwlock_clockwrlock (&r, clockid, &ts), EDEADLK);
+
+ verbose_printf ("2nd %swrlock done\n", fnname);
+
+ struct thread_args args;
+ args.rwlock = &r;
+ args.clockid = clockid;
+ args.fnname = fnname;
+ pthread_t th = xpthread_create (NULL, tf, &args);
puts ("started thread");
- void *status;
- if (pthread_join (th, &status) != 0)
- {
- printf ("round %Zu: join failed\n", cnt);
- exit (1);
- }
- if (status != NULL)
- {
- printf ("failure in round %Zu\n", cnt);
- exit (1);
- }
+ (void) xpthread_join (th);
puts ("joined thread");
if (pthread_rwlock_destroy (&r) != 0)
- {
- printf ("round %Zu: rwlock_destroy failed\n", cnt);
- exit (1);
- }
+ FAIL_EXIT1 ("round %Zu: rwlock_destroy failed\n", cnt);
}
return 0;
}
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+static int do_test (void)
+{
+ do_test_clock (CLOCK_USE_TIMEDLOCK, "timed");
+ do_test_clock (CLOCK_REALTIME, "clock(realtime)");
+ do_test_clock (CLOCK_MONOTONIC, "clock(monotonic)");
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/nptl/tst-rwlock7.c b/nptl/tst-rwlock7.c
index 2c2a51574a..28e2c73e3e 100644
--- a/nptl/tst-rwlock7.c
+++ b/nptl/tst-rwlock7.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
@@ -22,8 +22,17 @@
#include <stdio.h>
#include <string.h>
#include <sys/time.h>
+#include <support/check.h>
+#include <support/timespec.h>
+#include <support/xthread.h>
+#include <support/xtime.h>
+/* A bogus clock value that tells run_test to use pthread_rwlock_timedrdlock
+ and pthread_rwlock_timedwrlock rather than pthread_rwlock_clockrdlock and
+ pthread_rwlock_clockwrlock. */
+#define CLOCK_USE_TIMEDLOCK (-1)
+
static int kind[] =
{
PTHREAD_RWLOCK_PREFER_READER_NP,
@@ -31,77 +40,60 @@ static int kind[] =
PTHREAD_RWLOCK_PREFER_WRITER_NP,
};
+struct thread_args
+{
+ pthread_rwlock_t *rwlock;
+ clockid_t clockid;
+ const char *fnname;
+};
static void *
tf (void *arg)
{
- pthread_rwlock_t *r = arg;
+ struct thread_args *args = arg;
+ pthread_rwlock_t *r = args->rwlock;
+ const clockid_t clockid = args->clockid;
+ const clockid_t clockid_for_get =
+ (clockid == CLOCK_USE_TIMEDLOCK) ? CLOCK_REALTIME : clockid;
+ const char *fnname = args->fnname;
/* Timeout: 0.3 secs. */
- struct timeval tv;
- (void) gettimeofday (&tv, NULL);
-
- struct timespec ts;
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
- ts.tv_nsec += 300000000;
- if (ts.tv_nsec >= 1000000000)
- {
- ts.tv_nsec -= 1000000000;
- ++ts.tv_sec;
- }
-
- int err = pthread_rwlock_timedwrlock (r, &ts);
- if (err == 0)
- {
- puts ("rwlock_timedwrlock returned");
- pthread_exit ((void *) 1l);
- }
-
- if (err != ETIMEDOUT)
- {
- printf ("err = %s (%d), expected %s (%d)\n",
- strerror (err), err, strerror (ETIMEDOUT), ETIMEDOUT);
- pthread_exit ((void *) 1l);
- }
- puts ("child: timedwrlock failed with ETIMEDOUT");
-
- struct timeval tv2;
- (void) gettimeofday (&tv2, NULL);
-
- timersub (&tv2, &tv, &tv);
-
- if (tv.tv_usec < 200000)
- {
- puts ("timeout too short");
- pthread_exit ((void *) 1l);
- }
-
- (void) gettimeofday (&tv, NULL);
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
- ts.tv_sec += 10;
+ struct timespec ts_start;
+ xclock_gettime (clockid_for_get, &ts_start);
+ const struct timespec ts_timeout = timespec_add (ts_start,
+ make_timespec (0, 300000000));
+
+ if (clockid == CLOCK_USE_TIMEDLOCK)
+ TEST_COMPARE (pthread_rwlock_timedwrlock (r, &ts_timeout), ETIMEDOUT);
+ else
+ TEST_COMPARE (pthread_rwlock_clockwrlock (r, clockid, &ts_timeout),
+ ETIMEDOUT);
+ printf ("child: %swrlock failed with ETIMEDOUT", fnname);
+
+ TEST_TIMESPEC_NOW_OR_AFTER (clockid_for_get, ts_timeout);
+
+ struct timespec ts_invalid;
+ xclock_gettime (clockid_for_get, &ts_invalid);
+ ts_invalid.tv_sec += 10;
/* Note that the following operation makes ts invalid. */
- ts.tv_nsec += 1000000000;
+ ts_invalid.tv_nsec += 1000000000;
- err = pthread_rwlock_timedwrlock (r, &ts);
- if (err == 0)
- {
- puts ("2nd timedwrlock succeeded");
- pthread_exit ((void *) 1l);
- }
- if (err != EINVAL)
- {
- puts ("2nd timedwrlock did not return EINVAL");
- pthread_exit ((void *) 1l);
- }
- puts ("child: timedwrlock failed with EINVAL");
+ if (clockid == CLOCK_USE_TIMEDLOCK)
+ TEST_COMPARE (pthread_rwlock_timedwrlock (r, &ts_invalid), EINVAL);
+ else
+ TEST_COMPARE (pthread_rwlock_clockwrlock (r, clockid, &ts_invalid), EINVAL);
+
+ printf ("child: %swrlock failed with EINVAL", fnname);
return NULL;
}
static int
-do_test (void)
+do_test_clock (clockid_t clockid, const char *fnname)
{
+ const clockid_t clockid_for_get =
+ (clockid == CLOCK_USE_TIMEDLOCK) ? CLOCK_REALTIME : clockid;
size_t cnt;
for (cnt = 0; cnt < sizeof (kind) / sizeof (kind[0]); ++cnt)
{
@@ -109,73 +101,57 @@ do_test (void)
pthread_rwlockattr_t a;
if (pthread_rwlockattr_init (&a) != 0)
- {
- printf ("round %Zu: rwlockattr_t failed\n", cnt);
- exit (1);
- }
+ FAIL_EXIT1 ("round %Zu: rwlockattr_t failed\n", cnt);
if (pthread_rwlockattr_setkind_np (&a, kind[cnt]) != 0)
- {
- printf ("round %Zu: rwlockattr_setkind failed\n", cnt);
- exit (1);
- }
+ FAIL_EXIT1 ("round %Zu: rwlockattr_setkind failed\n", cnt);
if (pthread_rwlock_init (&r, &a) != 0)
- {
- printf ("round %Zu: rwlock_init failed\n", cnt);
- exit (1);
- }
+ FAIL_EXIT1 ("round %Zu: rwlock_init failed\n", cnt);
if (pthread_rwlockattr_destroy (&a) != 0)
- {
- printf ("round %Zu: rwlockattr_destroy failed\n", cnt);
- exit (1);
- }
-
- struct timeval tv;
- (void) gettimeofday (&tv, NULL);
+ FAIL_EXIT1 ("round %Zu: rwlockattr_destroy failed\n", cnt);
struct timespec ts;
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
+ xclock_gettime (clockid_for_get, &ts);
++ts.tv_sec;
/* Get a read lock. */
- if (pthread_rwlock_timedrdlock (&r, &ts) != 0)
- {
- printf ("round %Zu: rwlock_timedrdlock failed\n", cnt);
- exit (1);
- }
- printf ("%zu: got timedrdlock\n", cnt);
-
- pthread_t th;
- if (pthread_create (&th, NULL, tf, &r) != 0)
- {
- printf ("round %Zu: create failed\n", cnt);
- exit (1);
- }
-
- void *status;
- if (pthread_join (th, &status) != 0)
- {
- printf ("round %Zu: join failed\n", cnt);
- exit (1);
- }
+ if (clockid == CLOCK_USE_TIMEDLOCK) {
+ if (pthread_rwlock_timedrdlock (&r, &ts) != 0)
+ FAIL_EXIT1 ("round %Zu: rwlock_timedrdlock failed\n", cnt);
+ } else {
+ if (pthread_rwlock_clockrdlock (&r, clockid, &ts) != 0)
+ FAIL_EXIT1 ("round %Zu: rwlock_%srdlock failed\n", cnt, fnname);
+ }
+
+ printf ("%zu: got %srdlock\n", cnt, fnname);
+
+ struct thread_args args;
+ args.rwlock = &r;
+ args.clockid = clockid;
+ args.fnname = fnname;
+ pthread_t th = xpthread_create (NULL, tf, &args);
+ void *status = xpthread_join (th);
if (status != NULL)
- {
- printf ("failure in round %Zu\n", cnt);
- exit (1);
- }
+ FAIL_EXIT1 ("failure in round %Zu\n", cnt);
if (pthread_rwlock_destroy (&r) != 0)
- {
- printf ("round %Zu: rwlock_destroy failed\n", cnt);
- exit (1);
- }
+ FAIL_EXIT1 ("round %Zu: rwlock_destroy failed\n", cnt);
}
return 0;
}
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+static int
+do_test (void)
+{
+ do_test_clock (CLOCK_USE_TIMEDLOCK, "timed");
+ do_test_clock (CLOCK_MONOTONIC, "clock(monotonic)");
+ do_test_clock (CLOCK_REALTIME, "clock(realtime)");
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/nptl/tst-rwlock8.c b/nptl/tst-rwlock8.c
index 581374c9cc..ceb1dcbd07 100644
--- a/nptl/tst-rwlock8.c
+++ b/nptl/tst-rwlock8.c
@@ -1,5 +1,5 @@
/* Test program for timedout read/write lock functions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2000.
The GNU C Library is free software; you can redistribute it and/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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <error.h>
diff --git a/nptl/tst-rwlock9.c b/nptl/tst-rwlock9.c
index 3c851fa927..3229a6fb42 100644
--- a/nptl/tst-rwlock9.c
+++ b/nptl/tst-rwlock9.c
@@ -1,5 +1,5 @@
/* Test program for timedout read/write lock functions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2000.
The GNU C Library is free software; you can redistribute it and/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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <error.h>
@@ -24,6 +24,9 @@
#include <time.h>
#include <unistd.h>
#include <sys/time.h>
+#include <support/check.h>
+#include <support/timespec.h>
+#include <support/xthread.h>
#define NWRITERS 15
@@ -31,64 +34,68 @@
#define NREADERS 15
#define READTRIES 15
-#define TIMEOUT 1000000
-#define DELAY 1000000
+static const struct timespec timeout = { 0,1000000 };
+static const struct timespec delay = { 0, 1000000 };
#ifndef KIND
# define KIND PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP
#endif
+/* A bogus clock value that tells the tests to use pthread_rwlock_timedrdlock
+ and pthread_rwlock_timedwrlock rather than pthread_rwlock_clockrdlock and
+ pthread_rwlock_clockwrlock. */
+#define CLOCK_USE_TIMEDLOCK (-1)
+
static pthread_rwlock_t lock;
+struct thread_args
+{
+ int nr;
+ clockid_t clockid;
+ const char *fnname;
+};
static void *
-writer_thread (void *nr)
+writer_thread (void *arg)
{
+ struct thread_args *args = arg;
+ const int nr = args->nr;
+ const clockid_t clockid = args->clockid;
+ const clockid_t clockid_for_get =
+ (clockid == CLOCK_USE_TIMEDLOCK) ? CLOCK_REALTIME : clockid;
+ const char *fnname = args->fnname;
+
struct timespec ts;
- struct timespec delay;
int n;
- delay.tv_sec = 0;
- delay.tv_nsec = DELAY;
-
for (n = 0; n < WRITETRIES; ++n)
{
int e;
do
{
- struct timeval tv;
- (void) gettimeofday (&tv, NULL);
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
+ xclock_gettime (clockid_for_get, &ts);
- ts.tv_nsec += 2 * TIMEOUT;
- if (ts.tv_nsec >= 1000000000)
- {
- ts.tv_nsec -= 1000000000;
- ++ts.tv_sec;
- }
+ ts = timespec_add (ts, timeout);
+ ts = timespec_add (ts, timeout);
- printf ("writer thread %ld tries again\n", (long int) nr);
+ printf ("writer thread %d tries again\n", nr);
- e = pthread_rwlock_timedwrlock (&lock, &ts);
+ e = (clockid == CLOCK_USE_TIMEDLOCK)
+ ? pthread_rwlock_timedwrlock (&lock, &ts)
+ : pthread_rwlock_clockwrlock (&lock, clockid, &ts);
if (e != 0 && e != ETIMEDOUT)
- {
- puts ("timedwrlock failed");
- exit (1);
- }
+ FAIL_EXIT1 ("%swrlock failed", fnname);
}
while (e == ETIMEDOUT);
- printf ("writer thread %ld succeeded\n", (long int) nr);
+ printf ("writer thread %d succeeded\n", nr);
nanosleep (&delay, NULL);
if (pthread_rwlock_unlock (&lock) != 0)
- {
- puts ("unlock for writer failed");
- exit (1);
- }
+ FAIL_EXIT1 ("unlock for writer failed");
- printf ("writer thread %ld released\n", (long int) nr);
+ printf ("writer thread %d released\n", nr);
}
return NULL;
@@ -96,53 +103,46 @@ writer_thread (void *nr)
static void *
-reader_thread (void *nr)
+reader_thread (void *arg)
{
+ struct thread_args *args = arg;
+ const int nr = args->nr;
+ const clockid_t clockid = args->clockid;
+ const clockid_t clockid_for_get =
+ (clockid == CLOCK_USE_TIMEDLOCK) ? CLOCK_REALTIME : clockid;
+ const char *fnname = args->fnname;
+
struct timespec ts;
- struct timespec delay;
int n;
- delay.tv_sec = 0;
- delay.tv_nsec = DELAY;
-
for (n = 0; n < READTRIES; ++n)
{
int e;
do
{
- struct timeval tv;
- (void) gettimeofday (&tv, NULL);
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
+ xclock_gettime (clockid_for_get, &ts);
- ts.tv_nsec += TIMEOUT;
- if (ts.tv_nsec >= 1000000000)
- {
- ts.tv_nsec -= 1000000000;
- ++ts.tv_sec;
- }
+ ts = timespec_add (ts, timeout);
- printf ("reader thread %ld tries again\n", (long int) nr);
+ printf ("reader thread %d tries again\n", nr);
- e = pthread_rwlock_timedrdlock (&lock, &ts);
+ if (clockid == CLOCK_USE_TIMEDLOCK)
+ e = pthread_rwlock_timedrdlock (&lock, &ts);
+ else
+ e = pthread_rwlock_clockrdlock (&lock, clockid, &ts);
if (e != 0 && e != ETIMEDOUT)
- {
- puts ("timedrdlock failed");
- exit (1);
- }
+ FAIL_EXIT1 ("%srdlock failed", fnname);
}
while (e == ETIMEDOUT);
- printf ("reader thread %ld succeeded\n", (long int) nr);
+ printf ("reader thread %d succeeded\n", nr);
nanosleep (&delay, NULL);
if (pthread_rwlock_unlock (&lock) != 0)
- {
- puts ("unlock for reader failed");
- exit (1);
- }
+ FAIL_EXIT1 ("unlock for reader failed");
- printf ("reader thread %ld released\n", (long int) nr);
+ printf ("reader thread %d released\n", nr);
}
return NULL;
@@ -150,31 +150,21 @@ reader_thread (void *nr)
static int
-do_test (void)
+do_test_clock (clockid_t clockid, const char *fnname)
{
pthread_t thwr[NWRITERS];
pthread_t thrd[NREADERS];
int n;
- void *res;
pthread_rwlockattr_t a;
if (pthread_rwlockattr_init (&a) != 0)
- {
- puts ("rwlockattr_t failed");
- exit (1);
- }
+ FAIL_EXIT1 ("rwlockattr_t failed");
if (pthread_rwlockattr_setkind_np (&a, KIND) != 0)
- {
- puts ("rwlockattr_setkind failed");
- exit (1);
- }
+ FAIL_EXIT1 ("rwlockattr_setkind failed");
if (pthread_rwlock_init (&lock, &a) != 0)
- {
- puts ("rwlock_init failed");
- exit (1);
- }
+ FAIL_EXIT1 ("rwlock_init failed");
/* Make standard error the same as standard output. */
dup2 (1, 2);
@@ -182,40 +172,40 @@ do_test (void)
/* Make sure we see all message, even those on stdout. */
setvbuf (stdout, NULL, _IONBF, 0);
- for (n = 0; n < NWRITERS; ++n)
- if (pthread_create (&thwr[n], NULL, writer_thread,
- (void *) (long int) n) != 0)
- {
- puts ("writer create failed");
- exit (1);
- }
-
- for (n = 0; n < NREADERS; ++n)
- if (pthread_create (&thrd[n], NULL, reader_thread,
- (void *) (long int) n) != 0)
- {
- puts ("reader create failed");
- exit (1);
- }
+ struct thread_args wargs[NWRITERS];
+ for (n = 0; n < NWRITERS; ++n) {
+ wargs[n].nr = n;
+ wargs[n].clockid = clockid;
+ wargs[n].fnname = fnname;
+ thwr[n] = xpthread_create (NULL, writer_thread, &wargs[n]);
+ }
+
+ struct thread_args rargs[NREADERS];
+ for (n = 0; n < NREADERS; ++n) {
+ rargs[n].nr = n;
+ rargs[n].clockid = clockid;
+ rargs[n].fnname = fnname;
+ thrd[n] = xpthread_create (NULL, reader_thread, &rargs[n]);
+ }
/* Wait for all the threads. */
for (n = 0; n < NWRITERS; ++n)
- if (pthread_join (thwr[n], &res) != 0)
- {
- puts ("writer join failed");
- exit (1);
- }
+ xpthread_join (thwr[n]);
for (n = 0; n < NREADERS; ++n)
- if (pthread_join (thrd[n], &res) != 0)
- {
- puts ("reader join failed");
- exit (1);
- }
+ xpthread_join (thrd[n]);
+
+ return 0;
+}
+
+static int
+do_test (void)
+{
+ do_test_clock (CLOCK_USE_TIMEDLOCK, "timed");
+ do_test_clock (CLOCK_REALTIME, "clock(realtime)");
+ do_test_clock (CLOCK_MONOTONIC, "clock(monotonic)");
return 0;
}
-#undef TIMEOUT
#define TIMEOUT 30
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/test-driver.c>
diff --git a/nptl/tst-sched1.c b/nptl/tst-sched1.c
index 98bf157c15..4bd9ba4ac2 100644
--- a/nptl/tst-sched1.c
+++ b/nptl/tst-sched1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
diff --git a/nptl/tst-sem1.c b/nptl/tst-sem1.c
index 1b62db2897..968746f2ec 100644
--- a/nptl/tst-sem1.c
+++ b/nptl/tst-sem1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <semaphore.h>
diff --git a/nptl/tst-sem10.c b/nptl/tst-sem10.c
index 1e8694b10d..9a4fb79faa 100644
--- a/nptl/tst-sem10.c
+++ b/nptl/tst-sem10.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-sem13.c b/nptl/tst-sem13.c
index 1560e91443..d7baa2ae58 100644
--- a/nptl/tst-sem13.c
+++ b/nptl/tst-sem13.c
@@ -4,10 +4,16 @@
#include <unistd.h>
#include <pthread.h>
#include <internaltypes.h>
+#include <support/check.h>
+/* A bogus clock value that tells run_test to use sem_timedwait rather than
+ sem_clockwait. */
+#define CLOCK_USE_TIMEDWAIT (-1)
-static int
-do_test (void)
+typedef int (*waitfn_t)(sem_t *, struct timespec *);
+
+static void
+do_test_wait (waitfn_t waitfn, const char *fnname)
{
union
{
@@ -15,61 +21,59 @@ do_test (void)
struct new_sem ns;
} u;
- if (sem_init (&u.s, 0, 0) != 0)
- {
- puts ("sem_init failed");
- return 1;
- }
+ printf ("do_test_wait: %s\n", fnname);
+
+ TEST_COMPARE (sem_init (&u.s, 0, 0), 0);
struct timespec ts = { 0, 1000000001 }; /* Invalid. */
errno = 0;
- if (sem_timedwait (&u.s, &ts) >= 0)
- {
- puts ("sem_timedwait did not fail");
- return 1;
- }
- if (errno != EINVAL)
- {
- perror ("sem_timedwait did not fail with EINVAL");
- return 1;
- }
+ TEST_VERIFY_EXIT (waitfn (&u.s, &ts) < 0);
+ TEST_COMPARE (errno, EINVAL);
+
#if __HAVE_64B_ATOMICS
unsigned int nwaiters = (u.ns.data >> SEM_NWAITERS_SHIFT);
#else
unsigned int nwaiters = u.ns.nwaiters;
#endif
- if (nwaiters != 0)
- {
- printf ("sem_timedwait modified nwaiters: %d\n", nwaiters);
- return 1;
- }
+ TEST_COMPARE (nwaiters, 0);
ts.tv_sec = /* Invalid. */ -2;
ts.tv_nsec = 0;
errno = 0;
- if (sem_timedwait (&u.s, &ts) >= 0)
- {
- puts ("2nd sem_timedwait did not fail");
- return 1;
- }
- if (errno != ETIMEDOUT)
- {
- perror ("2nd sem_timedwait did not fail with ETIMEDOUT");
- return 1;
- }
+ TEST_VERIFY_EXIT (waitfn (&u.s, &ts) < 0);
+ TEST_COMPARE (errno, ETIMEDOUT);
#if __HAVE_64B_ATOMICS
nwaiters = (u.ns.data >> SEM_NWAITERS_SHIFT);
#else
nwaiters = u.ns.nwaiters;
#endif
- if (nwaiters != 0)
- {
- printf ("2nd sem_timedwait modified nwaiters: %d\n", nwaiters);
- return 1;
- }
+ TEST_COMPARE (nwaiters, 0);
+}
+
+int test_sem_timedwait (sem_t *sem, struct timespec *ts)
+{
+ return sem_timedwait (sem, ts);
+}
+int test_sem_clockwait_monotonic (sem_t *sem, struct timespec *ts)
+{
+ return sem_clockwait (sem, CLOCK_MONOTONIC, ts);
+}
+
+int test_sem_clockwait_realtime (sem_t *sem, struct timespec *ts)
+{
+ return sem_clockwait (sem, CLOCK_REALTIME, ts);
+}
+
+static int do_test (void)
+{
+ do_test_wait (&test_sem_timedwait,
+ "sem_timedwait");
+ do_test_wait (&test_sem_clockwait_monotonic,
+ "sem_clockwait(monotonic)");
+ do_test_wait (&test_sem_clockwait_realtime,
+ "sem_clockwait(realtime)");
return 0;
}
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/test-driver.c>
diff --git a/nptl/tst-sem14.c b/nptl/tst-sem14.c
index 426b968c4e..186bed665d 100644
--- a/nptl/tst-sem14.c
+++ b/nptl/tst-sem14.c
@@ -1,5 +1,5 @@
/* Test for sem_post race: bug 14532.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <semaphore.h>
@@ -87,6 +87,5 @@ do_test (void)
return thread_fail;
}
-#define TIMEOUT 10
#define TEST_FUNCTION do_test ()
#include "../test-skeleton.c"
diff --git a/nptl/tst-sem15.c b/nptl/tst-sem15.c
index 371ed4d46d..f38b9f7c72 100644
--- a/nptl/tst-sem15.c
+++ b/nptl/tst-sem15.c
@@ -1,5 +1,5 @@
/* Test for SEM_VALUE_MAX overflow detection: BZ #18434.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <limits.h>
diff --git a/nptl/tst-sem16.c b/nptl/tst-sem16.c
index a7bbf6537d..27fe61bfe7 100644
--- a/nptl/tst-sem16.c
+++ b/nptl/tst-sem16.c
@@ -1,5 +1,5 @@
/* Test for sem_open cancellation handling: BZ #15765.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <sys/mman.h>
diff --git a/nptl/tst-sem17.c b/nptl/tst-sem17.c
new file mode 100644
index 0000000000..b7cd1d79b5
--- /dev/null
+++ b/nptl/tst-sem17.c
@@ -0,0 +1,76 @@
+/* Test unsupported/bad clocks passed to sem_clockwait.
+
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <semaphore.h>
+#include <stdio.h>
+#include <time.h>
+#include <unistd.h>
+#include <sys/time.h>
+#include <support/check.h>
+#include <support/timespec.h>
+
+
+#define NOT_A_VALID_CLOCK 123456
+
+static int
+do_test (void)
+{
+ sem_t s;
+ TEST_COMPARE (sem_init (&s, 0, 1), 0);
+
+ const struct timespec ts = make_timespec (0, 0);
+
+ /* These clocks are meaningless to sem_clockwait. */
+#if defined(CLOCK_PROCESS_CPUTIME_ID)
+ TEST_COMPARE (sem_clockwait (&s, CLOCK_PROCESS_CPUTIME_ID, &ts), -1);
+ TEST_COMPARE (errno, EINVAL);
+#endif
+#if defined(CLOCK_THREAD_CPUTIME_ID)
+ TEST_COMPARE (sem_clockwait (&s, CLOCK_THREAD_CPUTIME_ID, &ts), -1);
+ TEST_COMPARE (errno, EINVAL);
+#endif
+
+ /* These clocks might be meaningful, but are currently unsupported
+ by pthread_cond_clockwait. */
+#if defined(CLOCK_REALTIME_COARSE)
+ TEST_COMPARE (sem_clockwait (&s, CLOCK_REALTIME_COARSE, &ts), -1);
+ TEST_COMPARE (errno, EINVAL);
+#endif
+#if defined(CLOCK_MONOTONIC_RAW)
+ TEST_COMPARE (sem_clockwait (&s, CLOCK_MONOTONIC_RAW, &ts), -1);
+ TEST_COMPARE (errno, EINVAL);
+#endif
+#if defined(CLOCK_MONOTONIC_COARSE)
+ TEST_COMPARE (sem_clockwait (&s, CLOCK_MONOTONIC_COARSE, &ts), -1);
+ TEST_COMPARE (errno, EINVAL);
+#endif
+#if defined(CLOCK_BOOTTIME)
+ TEST_COMPARE (sem_clockwait (&s, CLOCK_BOOTTIME, &ts), -1);
+ TEST_COMPARE (errno, EINVAL);
+#endif
+
+ /* This is a completely invalid clock. */
+ TEST_COMPARE (sem_clockwait (&s, NOT_A_VALID_CLOCK, &ts), -1);
+ TEST_COMPARE (errno, EINVAL);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/nptl/tst-sem2.c b/nptl/tst-sem2.c
index 6e7e3f0647..d892de77c3 100644
--- a/nptl/tst-sem2.c
+++ b/nptl/tst-sem2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-sem3.c b/nptl/tst-sem3.c
index 49712dc48b..66044a30b9 100644
--- a/nptl/tst-sem3.c
+++ b/nptl/tst-sem3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <semaphore.h>
diff --git a/nptl/tst-sem4.c b/nptl/tst-sem4.c
index ecc308bc8d..c0728da23d 100644
--- a/nptl/tst-sem4.c
+++ b/nptl/tst-sem4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/nptl/tst-sem5.c b/nptl/tst-sem5.c
index fa63813030..386d5d4afb 100644
--- a/nptl/tst-sem5.c
+++ b/nptl/tst-sem5.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
@@ -14,80 +14,50 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <semaphore.h>
-#include <stdio.h>
#include <time.h>
#include <unistd.h>
#include <sys/time.h>
+#include <support/check.h>
+#include <support/timespec.h>
+#include <support/xtime.h>
+/* A bogus clock value that tells run_test to use sem_timedwait rather than
+ sem_clockwait. */
+#define CLOCK_USE_TIMEDWAIT (-1)
-static int
-do_test (void)
+static void
+do_test_clock (clockid_t clockid)
{
+ const clockid_t clockid_for_get =
+ clockid == CLOCK_USE_TIMEDWAIT ? CLOCK_REALTIME : clockid;
sem_t s;
struct timespec ts;
- struct timeval tv;
- if (sem_init (&s, 0, 1) == -1)
- {
- puts ("sem_init failed");
- return 1;
- }
-
- if (TEMP_FAILURE_RETRY (sem_wait (&s)) == -1)
- {
- puts ("sem_wait failed");
- return 1;
- }
-
- if (gettimeofday (&tv, NULL) != 0)
- {
- puts ("gettimeofday failed");
- return 1;
- }
-
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
+ TEST_COMPARE (sem_init (&s, 0, 1), 0);
+ TEST_COMPARE (TEMP_FAILURE_RETRY (sem_wait (&s)), 0);
/* We wait for half a second. */
- ts.tv_nsec += 500000000;
- if (ts.tv_nsec >= 1000000000)
- {
- ++ts.tv_sec;
- ts.tv_nsec -= 1000000000;
- }
+ xclock_gettime (clockid_for_get, &ts);
+ ts = timespec_add (ts, make_timespec (0, TIMESPEC_HZ/2));
errno = 0;
- if (TEMP_FAILURE_RETRY (sem_timedwait (&s, &ts)) != -1)
- {
- puts ("sem_timedwait succeeded");
- return 1;
- }
- if (errno != ETIMEDOUT)
- {
- printf ("sem_timedwait return errno = %d instead of ETIMEDOUT\n",
- errno);
- return 1;
- }
-
- struct timespec ts2;
- if (clock_gettime (CLOCK_REALTIME, &ts2) != 0)
- {
- puts ("clock_gettime failed");
- return 1;
- }
-
- if (ts2.tv_sec < ts.tv_sec
- || (ts2.tv_sec == ts.tv_sec && ts2.tv_nsec < ts.tv_nsec))
- {
- puts ("timeout too short");
- return 1;
- }
+ TEST_COMPARE (TEMP_FAILURE_RETRY ((clockid == CLOCK_USE_TIMEDWAIT)
+ ? sem_timedwait (&s, &ts)
+ : sem_clockwait (&s, clockid, &ts)), -1);
+ TEST_COMPARE (errno, ETIMEDOUT);
+ TEST_TIMESPEC_NOW_OR_AFTER (clockid_for_get, ts);
+}
+static int do_test (void)
+{
+ do_test_clock (CLOCK_USE_TIMEDWAIT);
+ do_test_clock (CLOCK_REALTIME);
+ do_test_clock (CLOCK_MONOTONIC);
return 0;
}
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/test-driver.c>
diff --git a/nptl/tst-sem6.c b/nptl/tst-sem6.c
index c566d38d7c..4e79004f6a 100644
--- a/nptl/tst-sem6.c
+++ b/nptl/tst-sem6.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <semaphore.h>
@@ -75,6 +75,5 @@ do_test (void)
return 0;
}
-#define TIMEOUT 3
#define TEST_FUNCTION do_test ()
#include "../test-skeleton.c"
diff --git a/nptl/tst-sem7.c b/nptl/tst-sem7.c
index f285c3a00a..95e30bc4fc 100644
--- a/nptl/tst-sem7.c
+++ b/nptl/tst-sem7.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/nptl/tst-sem8.c b/nptl/tst-sem8.c
index 0e633c0b77..6a10320e3d 100644
--- a/nptl/tst-sem8.c
+++ b/nptl/tst-sem8.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/nptl/tst-sem9.c b/nptl/tst-sem9.c
index 3dec10754e..2986364f79 100644
--- a/nptl/tst-sem9.c
+++ b/nptl/tst-sem9.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/nptl/tst-setuid1.c b/nptl/tst-setuid1.c
index 31b27c2fcf..a0f267fcbb 100644
--- a/nptl/tst-setuid1.c
+++ b/nptl/tst-setuid1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jaku@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pwd.h>
diff --git a/nptl/tst-setuid2.c b/nptl/tst-setuid2.c
index 75c1b4b911..8b480aeede 100644
--- a/nptl/tst-setuid2.c
+++ b/nptl/tst-setuid2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2014-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-setuid3.c b/nptl/tst-setuid3.c
index 6aaa81f512..7522dc447f 100644
--- a/nptl/tst-setuid3.c
+++ b/nptl/tst-setuid3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2014-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <errno.h>
diff --git a/nptl/tst-signal1.c b/nptl/tst-signal1.c
index 0ff6b78d31..064851dd41 100644
--- a/nptl/tst-signal1.c
+++ b/nptl/tst-signal1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-signal2.c b/nptl/tst-signal2.c
index 75d0926f5c..075d3efaf9 100644
--- a/nptl/tst-signal2.c
+++ b/nptl/tst-signal2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-signal3.c b/nptl/tst-signal3.c
index 16a7406534..57dbc48705 100644
--- a/nptl/tst-signal3.c
+++ b/nptl/tst-signal3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
@@ -256,7 +256,6 @@ do_test (void)
return result;
}
-# define TIMEOUT 10
# define TEST_FUNCTION do_test ()
#else
diff --git a/nptl/tst-signal4.c b/nptl/tst-signal4.c
index cc0873f0b8..60a63c8466 100644
--- a/nptl/tst-signal4.c
+++ b/nptl/tst-signal4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-signal5.c b/nptl/tst-signal5.c
index bf2528dbed..ab4f152373 100644
--- a/nptl/tst-signal5.c
+++ b/nptl/tst-signal5.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-signal6.c b/nptl/tst-signal6.c
index be2a9a9a47..0b28f441c6 100644
--- a/nptl/tst-signal6.c
+++ b/nptl/tst-signal6.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <signal.h>
diff --git a/nptl/tst-signal7.c b/nptl/tst-signal7.c
index ea4725a1c1..f42ff6887a 100644
--- a/nptl/tst-signal7.c
+++ b/nptl/tst-signal7.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthreadP.h>
@@ -27,7 +27,6 @@ do_test (void)
{
int result = 0;
-#ifdef SIGCANCEL
errno = 0;
if (sigaction (SIGCANCEL, NULL, NULL) == 0)
{
@@ -39,9 +38,7 @@ do_test (void)
puts ("sigaction(SIGCANCEL) did not set errno to EINVAL");
result = 1;
}
-#endif
-#ifdef SIGSETXID
errno = 0;
if (sigaction (SIGSETXID, NULL, NULL) == 0)
{
@@ -53,7 +50,6 @@ do_test (void)
puts ("sigaction(SIGSETXID) did not set errno to EINVAL");
result = 1;
}
-#endif
return result;
}
diff --git a/nptl/tst-spin1.c b/nptl/tst-spin1.c
index 6cd2b6e728..a63497e129 100644
--- a/nptl/tst-spin1.c
+++ b/nptl/tst-spin1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
diff --git a/nptl/tst-spin2.c b/nptl/tst-spin2.c
index e4d25047fb..d973074acc 100644
--- a/nptl/tst-spin2.c
+++ b/nptl/tst-spin2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-spin3.c b/nptl/tst-spin3.c
index 27a4578ad2..971e21c4b9 100644
--- a/nptl/tst-spin3.c
+++ b/nptl/tst-spin3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <signal.h>
diff --git a/nptl/tst-spin4.c b/nptl/tst-spin4.c
index 5b23a172ca..99fe7aa6aa 100644
--- a/nptl/tst-spin4.c
+++ b/nptl/tst-spin4.c
@@ -104,6 +104,5 @@ do_test (void)
return 0;
}
-#define TIMEOUT 5
#define TEST_FUNCTION do_test ()
#include "../test-skeleton.c"
diff --git a/nptl/tst-stack1.c b/nptl/tst-stack1.c
index 4563fefd31..a1d8d46776 100644
--- a/nptl/tst-stack1.c
+++ b/nptl/tst-stack1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <limits.h>
#include <pthread.h>
diff --git a/nptl/tst-stack2.c b/nptl/tst-stack2.c
index f8c9f6faae..8298ccea44 100644
--- a/nptl/tst-stack2.c
+++ b/nptl/tst-stack2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Test whether it is possible to create a thread with PTHREAD_STACK_MIN
stack size. */
diff --git a/nptl/tst-stack3.c b/nptl/tst-stack3.c
index e72b8d7991..a8a04922c0 100644
--- a/nptl/tst-stack3.c
+++ b/nptl/tst-stack3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Test whether pthread_create/pthread_join with user defined stacks
doesn't leak memory.
diff --git a/nptl/tst-stack4.c b/nptl/tst-stack4.c
index 05a8510168..0bf87e3e04 100644
--- a/nptl/tst-stack4.c
+++ b/nptl/tst-stack4.c
@@ -1,6 +1,6 @@
/* Test DTV size oveflow when pthread_create reuses old DTV and TLS is
used by dlopened shared object.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdint.h>
diff --git a/nptl/tst-stack4mod.c b/nptl/tst-stack4mod.c
index 0bd5d4430c..71925edb4f 100644
--- a/nptl/tst-stack4mod.c
+++ b/nptl/tst-stack4mod.c
@@ -1,5 +1,5 @@
/* This tests DTV usage with TLS in dlopened shared object.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 256 is arbitrary here and is known to trigger PR 13862. */
__thread int var[256] attribute_hidden = {0};
diff --git a/nptl/tst-stackguard1.c b/nptl/tst-stackguard1.c
index 5150360cc3..ff1aa6fa95 100644
--- a/nptl/tst-stackguard1.c
+++ b/nptl/tst-stackguard1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-stdio1.c b/nptl/tst-stdio1.c
index 7a0cddba97..aec2f658d4 100644
--- a/nptl/tst-stdio1.c
+++ b/nptl/tst-stdio1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <signal.h>
diff --git a/nptl/tst-stdio2.c b/nptl/tst-stdio2.c
index 53bc719a49..cbab8452ed 100644
--- a/nptl/tst-stdio2.c
+++ b/nptl/tst-stdio2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <signal.h>
diff --git a/nptl/tst-sysconf.c b/nptl/tst-sysconf.c
index 5ec543d0dc..fe976990c4 100644
--- a/nptl/tst-sysconf.c
+++ b/nptl/tst-sysconf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
diff --git a/nptl/tst-thrd-detach.c b/nptl/tst-thrd-detach.c
index 72ba845f49..26cbb1bae9 100644
--- a/nptl/tst-thrd-detach.c
+++ b/nptl/tst-thrd-detach.c
@@ -1,5 +1,5 @@
/* C11 threads thread detach tests.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <threads.h>
#include <time.h>
diff --git a/nptl/tst-thrd-sleep.c b/nptl/tst-thrd-sleep.c
index 3805671ea3..494d09f8cb 100644
--- a/nptl/tst-thrd-sleep.c
+++ b/nptl/tst-thrd-sleep.c
@@ -1,5 +1,5 @@
/* C11 threads thread sleep tests.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <threads.h>
#include <time.h>
diff --git a/nptl/tst-thread-exit-clobber.cc b/nptl/tst-thread-exit-clobber.cc
index b9be25a65b..e64c5b5317 100644
--- a/nptl/tst-thread-exit-clobber.cc
+++ b/nptl/tst-thread-exit-clobber.cc
@@ -1,5 +1,5 @@
/* Test that pthread_exit does not clobber callee-saved registers.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <support/check.h>
diff --git a/nptl/tst-thread_local1.cc b/nptl/tst-thread_local1.cc
index 0cfdcd6d19..dd90c1794b 100644
--- a/nptl/tst-thread_local1.cc
+++ b/nptl/tst-thread_local1.cc
@@ -1,5 +1,5 @@
/* Test basic thread_local support.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-tls1.c b/nptl/tst-tls1.c
index 1295170532..6fee306fa3 100644
--- a/nptl/tst-tls1.c
+++ b/nptl/tst-tls1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
@@ -14,17 +14,21 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
-
+#include <stdint.h>
+#include <inttypes.h>
+#include <support/support.h>
+#include <support/check.h>
+#include <support/xthread.h>
struct test_s
{
- int a;
- int b;
+ __attribute__ ((aligned(0x20))) int a;
+ __attribute__ ((aligned(0x200))) int b;
};
#define INIT_A 1
@@ -36,15 +40,34 @@ __thread struct test_s s __attribute__ ((tls_model ("initial-exec"))) =
.b = INIT_B
};
+/* Use noinline in combination with not static to ensure that the
+ alignment check is really done. Otherwise it was optimized out! */
+__attribute__ ((noinline)) void
+check_alignment (const char *thr_name, const char *ptr_name,
+ int *ptr, int alignment)
+{
+ uintptr_t offset_aligment = ((uintptr_t) ptr) & (alignment - 1);
+ if (offset_aligment)
+ {
+ FAIL_EXIT1 ("%s (%p) is not 0x%x-byte aligned in %s thread\n",
+ ptr_name, ptr, alignment, thr_name);
+ }
+}
+
+static void
+check_s (const char *thr_name)
+{
+ if (s.a != INIT_A || s.b != INIT_B)
+ FAIL_EXIT1 ("initial value of s in %s thread wrong\n", thr_name);
+
+ check_alignment (thr_name, "s.a", &s.a, 0x20);
+ check_alignment (thr_name, "s.b", &s.b, 0x200);
+}
static void *
tf (void *arg)
{
- if (s.a != INIT_A || s.b != INIT_B)
- {
- puts ("initial value of s in child thread wrong");
- exit (1);
- }
+ check_s ("child");
++s.a;
@@ -55,25 +78,14 @@ tf (void *arg)
int
do_test (void)
{
- if (s.a != INIT_A || s.b != INIT_B)
- {
- puts ("initial value of s in main thread wrong");
- exit (1);
- }
+ check_s ("main");
pthread_attr_t a;
- if (pthread_attr_init (&a) != 0)
- {
- puts ("attr_init failed");
- exit (1);
- }
+ xpthread_attr_init (&a);
- if (pthread_attr_setstacksize (&a, 1 * 1024 * 1024) != 0)
- {
- puts ("attr_setstacksize failed");
- return 1;
- }
+#define STACK_SIZE (1 * 1024 * 1024)
+ xpthread_attr_setstacksize (&a, STACK_SIZE);
#define N 10
int i;
@@ -83,29 +95,25 @@ do_test (void)
pthread_t th[M];
int j;
for (j = 0; j < M; ++j, ++s.a)
- if (pthread_create (&th[j], &a, tf, NULL) != 0)
- {
- puts ("pthread_create failed");
- exit (1);
- }
+ th[j] = xpthread_create (&a, tf, NULL);
for (j = 0; j < M; ++j)
- if (pthread_join (th[j], NULL) != 0)
- {
- puts ("pthread_join failed");
- exit (1);
- }
+ xpthread_join (th[j]);
}
- if (pthread_attr_destroy (&a) != 0)
- {
- puts ("attr_destroy failed");
- exit (1);
- }
+ /* Also check the alignment of the tls variables if a misaligned stack is
+ specified. */
+ pthread_t th;
+ void *thr_stack = NULL;
+ thr_stack = xposix_memalign (0x200, STACK_SIZE + 1);
+ xpthread_attr_setstack (&a, thr_stack + 1, STACK_SIZE);
+ th = xpthread_create (&a, tf, NULL);
+ xpthread_join (th);
+ free (thr_stack);
+
+ xpthread_attr_destroy (&a);
return 0;
}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/test-driver.c>
diff --git a/nptl/tst-tls2.c b/nptl/tst-tls2.c
index 1617d0d274..c47e097040 100644
--- a/nptl/tst-tls2.c
+++ b/nptl/tst-tls2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-tls3-malloc.c b/nptl/tst-tls3-malloc.c
index 2b28c46882..fcece03d71 100644
--- a/nptl/tst-tls3-malloc.c
+++ b/nptl/tst-tls3-malloc.c
@@ -1,5 +1,5 @@
/* Test TLS allocation with an interposed malloc.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Reuse the test. */
#define STACK_SIZE_MB 5
diff --git a/nptl/tst-tls3.c b/nptl/tst-tls3.c
index 8968bd4753..7d58ee3f88 100644
--- a/nptl/tst-tls3.c
+++ b/nptl/tst-tls3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <errno.h>
@@ -41,7 +41,6 @@ static pthread_t th[N];
static int do_test (void);
-#define TIMEOUT 5
#define TEST_FUNCTION do_test ()
#include "../test-skeleton.c"
diff --git a/nptl/tst-tls3mod.c b/nptl/tst-tls3mod.c
index cc50adbb3a..67e28375d7 100644
--- a/nptl/tst-tls3mod.c
+++ b/nptl/tst-tls3mod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <semaphore.h>
diff --git a/nptl/tst-tls4.c b/nptl/tst-tls4.c
index 70f9515a0c..4bcf8a44d4 100644
--- a/nptl/tst-tls4.c
+++ b/nptl/tst-tls4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <errno.h>
@@ -176,6 +176,5 @@ do_test (void)
return 0;
}
-#define TIMEOUT 5
#define TEST_FUNCTION do_test ()
#include "../test-skeleton.c"
diff --git a/nptl/tst-tls4moda.c b/nptl/tst-tls4moda.c
index af66628b98..8d14bac582 100644
--- a/nptl/tst-tls4moda.c
+++ b/nptl/tst-tls4moda.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <stdlib.h>
diff --git a/nptl/tst-tls4modb.c b/nptl/tst-tls4modb.c
index 9a4985ab2d..d2ad4afedc 100644
--- a/nptl/tst-tls4modb.c
+++ b/nptl/tst-tls4modb.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <stdlib.h>
diff --git a/nptl/tst-tls5.c b/nptl/tst-tls5.c
index ff8f7d1e29..f180ab74df 100644
--- a/nptl/tst-tls5.c
+++ b/nptl/tst-tls5.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Check alignment, overlapping and layout of TLS variables. */
#include <stdint.h>
diff --git a/nptl/tst-tls6.sh b/nptl/tst-tls6.sh
index 1185719a28..5f315bd5ec 100755
--- a/nptl/tst-tls6.sh
+++ b/nptl/tst-tls6.sh
@@ -1,6 +1,6 @@
#!/bin/bash
# A tls test.
-# Copyright (C) 2003-2018 Free Software Foundation, Inc.
+# Copyright (C) 2003-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
@@ -15,7 +15,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
set -e
diff --git a/nptl/tst-tpp.h b/nptl/tst-tpp.h
index 3855220e41..ddff19c3e5 100644
--- a/nptl/tst-tpp.h
+++ b/nptl/tst-tpp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 2006.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/nptl/tst-tsd1.c b/nptl/tst-tsd1.c
index 9ec123f911..46b7add516 100644
--- a/nptl/tst-tsd1.c
+++ b/nptl/tst-tsd1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
diff --git a/nptl/tst-tsd2.c b/nptl/tst-tsd2.c
index 84bd7cb336..4ba365c802 100644
--- a/nptl/tst-tsd2.c
+++ b/nptl/tst-tsd2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
diff --git a/nptl/tst-tsd3.c b/nptl/tst-tsd3.c
index 6dcd96c3a9..02c0b99353 100644
--- a/nptl/tst-tsd3.c
+++ b/nptl/tst-tsd3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <limits.h>
#include <pthread.h>
diff --git a/nptl/tst-tsd4.c b/nptl/tst-tsd4.c
index f9b01ec52e..fea98d7135 100644
--- a/nptl/tst-tsd4.c
+++ b/nptl/tst-tsd4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <limits.h>
#include <pthread.h>
diff --git a/nptl/tst-tsd5.c b/nptl/tst-tsd5.c
index abcb8be55d..15cd19f5c2 100644
--- a/nptl/tst-tsd5.c
+++ b/nptl/tst-tsd5.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
diff --git a/nptl/tst-tss-basic.c b/nptl/tst-tss-basic.c
index e82edadfbe..66e75abef8 100644
--- a/nptl/tst-tss-basic.c
+++ b/nptl/tst-tss-basic.c
@@ -1,5 +1,5 @@
/* C11 threads specific storage tests.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <threads.h>
#include <stdio.h>
diff --git a/nptl/tst-umask1.c b/nptl/tst-umask1.c
index 466cc0dbbd..1b0a4ed7a0 100644
--- a/nptl/tst-umask1.c
+++ b/nptl/tst-umask1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fcntl.h>
#include <pthread.h>
diff --git a/nptl/tst-unload.c b/nptl/tst-unload.c
index 241be5fc8d..120c2b90d1 100644
--- a/nptl/tst-unload.c
+++ b/nptl/tst-unload.c
@@ -1,5 +1,5 @@
/* Tests for non-unloading of libpthread.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2000.
The GNU C Library is free software; you can redistribute it and/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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stdio.h>
diff --git a/nptl/tst-unwind-thread.c b/nptl/tst-unwind-thread.c
new file mode 100644
index 0000000000..d5c38e3709
--- /dev/null
+++ b/nptl/tst-unwind-thread.c
@@ -0,0 +1,2 @@
+#define USE_PTHREADS 1
+#include "../elf/tst-unwind-main.c"
diff --git a/nptl/unwind.c b/nptl/unwind.c
index b37a063c53..7d20876bd9 100644
--- a/nptl/unwind.c
+++ b/nptl/unwind.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>
and Richard Henderson <rth@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <setjmp.h>
#include <stdio.h>
diff --git a/nptl/vars.c b/nptl/vars.c
index f9067da0ab..5556236d01 100644
--- a/nptl/vars.c
+++ b/nptl/vars.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthreadP.h>
#include <stdlib.h>
diff --git a/nptl/version.c b/nptl/version.c
index 42206f6391..45640533bc 100644
--- a/nptl/version.c
+++ b/nptl/version.c
@@ -1,5 +1,5 @@
/* Entry point for libpthread DSO.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <sysdep.h>
@@ -23,7 +23,7 @@
static const char banner[] =
"Native POSIX Threads Library\n\
-Copyright (C) 2018 Free Software Foundation, Inc.\n\
+Copyright (C) 2019 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/nptl_db/Makefile b/nptl_db/Makefile
index 046840ec3f..bbe38ca273 100644
--- a/nptl_db/Makefile
+++ b/nptl_db/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2018 Free Software Foundation, Inc.
+# Copyright (C) 2002-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
# Makefile for NPTL debug library subdirectory of GNU C Library.
diff --git a/nptl_db/db-symbols.h b/nptl_db/db-symbols.h
index e2f7cf6306..7c53d803bf 100644
--- a/nptl_db/db-symbols.h
+++ b/nptl_db/db-symbols.h
@@ -1,5 +1,5 @@
/* List of symbols in libpthread examined by libthread_db.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define DOT(x) x /* No prefix. */
@@ -25,6 +25,7 @@
DB_LOOKUP_NAME (SYM_SIZEOF_##type, _thread_db_sizeof_##type)
#define DB_STRUCT_FIELD(type, field) \
DB_LOOKUP_NAME (SYM_##type##_FIELD_##field, _thread_db_##type##_##field)
+#define DB_STRUCT_FLEXIBLE_ARRAY(type, field) DB_STRUCT_FIELD (type, field)
#define DB_SYMBOL(name) \
DB_LOOKUP_NAME (SYM_##name, name)
#define DB_FUNCTION(name) \
@@ -36,6 +37,8 @@
# include "structs.def"
# undef DB_STRUCT
+# undef DB_STRUCT_FIELD
+# undef DB_STRUCT_FLEXIBLE_ARRAY
# undef DB_FUNCTION
# undef DB_SYMBOL
# undef DB_VARIABLE
diff --git a/nptl_db/db_info.c b/nptl_db/db_info.c
index 7f23cf4620..40efe1a29b 100644
--- a/nptl_db/db_info.c
+++ b/nptl_db/db_info.c
@@ -1,7 +1,7 @@
/* This file is included by pthread_create.c to define in libpthread
all the magic symbols required by libthread_db.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
#include "thread_dbP.h"
@@ -56,6 +56,9 @@ extern bool __nptl_initial_report_events;
DB_DEFINE_DESC (name, \
8 * sizeof (obj)[0], sizeof (obj) / sizeof (obj)[0], \
offset);
+/* Flexible arrays do not have a length that can be determined. */
+#define FLEXIBLE_ARRAY_DESC(name, offset, obj) \
+ DB_DEFINE_DESC (name, 8 * sizeof (obj)[0], 0, offset);
#if TLS_TCB_AT_TP
# define dtvp header.dtv
@@ -77,6 +80,9 @@ DESC (_thread_db_pthread_dtvp,
#define DB_STRUCT_ARRAY_FIELD(type, field) \
ARRAY_DESC (_thread_db_##type##_##field, \
offsetof (type, field), ((type *) 0)->field)
+#define DB_STRUCT_FLEXIBLE_ARRAY(type, field) \
+ FLEXIBLE_ARRAY_DESC (_thread_db_##type##_##field, \
+ offsetof (type, field), ((type *) 0)->field)
#define DB_VARIABLE(name) DESC (_thread_db_##name, 0, name)
#define DB_ARRAY_VARIABLE(name) ARRAY_DESC (_thread_db_##name, 0, name)
#define DB_SYMBOL(name) /* Nothing. */
diff --git a/nptl_db/fetch-value.c b/nptl_db/fetch-value.c
index 8514898e2b..ce620c58ae 100644
--- a/nptl_db/fetch-value.c
+++ b/nptl_db/fetch-value.c
@@ -1,5 +1,5 @@
/* Helper routines for libthread_db.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thread_dbP.h"
#include <byteswap.h>
diff --git a/nptl_db/structs.def b/nptl_db/structs.def
index 15ec77f4ab..a3aa71aade 100644
--- a/nptl_db/structs.def
+++ b/nptl_db/structs.def
@@ -1,5 +1,5 @@
/* List of types and symbols in libpthread examined by libthread_db.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef DB_STRUCT_ARRAY_FIELD
# define DB_STRUCT_ARRAY_FIELD(type, field) DB_STRUCT_FIELD (type, field)
@@ -110,7 +110,7 @@ DB_RTLD_GLOBAL_FIELD (dl_tls_dtv_slotinfo_list)
DB_STRUCT (dtv_slotinfo_list)
DB_STRUCT_FIELD (dtv_slotinfo_list, len)
DB_STRUCT_FIELD (dtv_slotinfo_list, next)
-DB_STRUCT_ARRAY_FIELD (dtv_slotinfo_list, slotinfo)
+DB_STRUCT_FLEXIBLE_ARRAY (dtv_slotinfo_list, slotinfo)
DB_STRUCT (dtv_slotinfo)
DB_STRUCT_FIELD (dtv_slotinfo, gen)
diff --git a/nptl_db/td_init.c b/nptl_db/td_init.c
index 93f3b30d6d..28100b581e 100644
--- a/nptl_db/td_init.c
+++ b/nptl_db/td_init.c
@@ -1,5 +1,5 @@
/* Initialization function of thread debugger support library.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thread_dbP.h"
diff --git a/nptl_db/td_log.c b/nptl_db/td_log.c
index e5e85f264e..a41b885398 100644
--- a/nptl_db/td_log.c
+++ b/nptl_db/td_log.c
@@ -1,5 +1,5 @@
/* Noop, left for historical reasons.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thread_dbP.h"
diff --git a/nptl_db/td_symbol_list.c b/nptl_db/td_symbol_list.c
index da316ed176..fd9bbc487d 100644
--- a/nptl_db/td_symbol_list.c
+++ b/nptl_db/td_symbol_list.c
@@ -1,5 +1,5 @@
/* Return list of symbols the library can request.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include "thread_dbP.h"
diff --git a/nptl_db/td_ta_clear_event.c b/nptl_db/td_ta_clear_event.c
index cb44c9cae5..28b248d813 100644
--- a/nptl_db/td_ta_clear_event.c
+++ b/nptl_db/td_ta_clear_event.c
@@ -1,5 +1,5 @@
/* Globally disable events.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
#include "thread_dbP.h"
diff --git a/nptl_db/td_ta_delete.c b/nptl_db/td_ta_delete.c
index 516d2d945a..53d675048b 100644
--- a/nptl_db/td_ta_delete.c
+++ b/nptl_db/td_ta_delete.c
@@ -1,5 +1,5 @@
/* Detach to target process.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
diff --git a/nptl_db/td_ta_enable_stats.c b/nptl_db/td_ta_enable_stats.c
index 689b4c68b5..610861bdba 100644
--- a/nptl_db/td_ta_enable_stats.c
+++ b/nptl_db/td_ta_enable_stats.c
@@ -1,5 +1,5 @@
/* Enable collection of statistics for process.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thread_dbP.h"
diff --git a/nptl_db/td_ta_event_addr.c b/nptl_db/td_ta_event_addr.c
index 2550e2292f..33d061c69a 100644
--- a/nptl_db/td_ta_event_addr.c
+++ b/nptl_db/td_ta_event_addr.c
@@ -1,5 +1,5 @@
/* Get event address.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thread_dbP.h"
diff --git a/nptl_db/td_ta_event_getmsg.c b/nptl_db/td_ta_event_getmsg.c
index 64d4cbd7e2..5fb5ba68b7 100644
--- a/nptl_db/td_ta_event_getmsg.c
+++ b/nptl_db/td_ta_event_getmsg.c
@@ -1,5 +1,5 @@
/* Retrieve event.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <string.h>
diff --git a/nptl_db/td_ta_get_nthreads.c b/nptl_db/td_ta_get_nthreads.c
index a1acf2c483..3827cb2f76 100644
--- a/nptl_db/td_ta_get_nthreads.c
+++ b/nptl_db/td_ta_get_nthreads.c
@@ -1,5 +1,5 @@
/* Get the number of threads in the process.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thread_dbP.h"
diff --git a/nptl_db/td_ta_get_ph.c b/nptl_db/td_ta_get_ph.c
index 58dec0ea5b..202cb8ee9a 100644
--- a/nptl_db/td_ta_get_ph.c
+++ b/nptl_db/td_ta_get_ph.c
@@ -1,5 +1,5 @@
/* Get external process handle.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thread_dbP.h"
diff --git a/nptl_db/td_ta_get_stats.c b/nptl_db/td_ta_get_stats.c
index aef182919a..5dc77b9b07 100644
--- a/nptl_db/td_ta_get_stats.c
+++ b/nptl_db/td_ta_get_stats.c
@@ -1,5 +1,5 @@
/* Retrieve statistics for process.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thread_dbP.h"
diff --git a/nptl_db/td_ta_map_id2thr.c b/nptl_db/td_ta_map_id2thr.c
index 74ba34affe..a5be66ffe9 100644
--- a/nptl_db/td_ta_map_id2thr.c
+++ b/nptl_db/td_ta_map_id2thr.c
@@ -1,5 +1,5 @@
/* Map thread ID to thread handle.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thread_dbP.h"
diff --git a/nptl_db/td_ta_map_lwp2thr.c b/nptl_db/td_ta_map_lwp2thr.c
index 9ccfde82fe..f5b953c932 100644
--- a/nptl_db/td_ta_map_lwp2thr.c
+++ b/nptl_db/td_ta_map_lwp2thr.c
@@ -1,5 +1,5 @@
/* Which thread is running on an LWP?
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thread_dbP.h"
#include <stdlib.h>
diff --git a/nptl_db/td_ta_new.c b/nptl_db/td_ta_new.c
index 99c3d2c7b1..63ffe4ca2f 100644
--- a/nptl_db/td_ta_new.c
+++ b/nptl_db/td_ta_new.c
@@ -1,5 +1,5 @@
/* Attach to target process.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <stdlib.h>
diff --git a/nptl_db/td_ta_reset_stats.c b/nptl_db/td_ta_reset_stats.c
index fb221d7252..27a8d41801 100644
--- a/nptl_db/td_ta_reset_stats.c
+++ b/nptl_db/td_ta_reset_stats.c
@@ -1,5 +1,5 @@
/* Reset statistics.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thread_dbP.h"
diff --git a/nptl_db/td_ta_set_event.c b/nptl_db/td_ta_set_event.c
index 1cdb744a2a..fe02f26757 100644
--- a/nptl_db/td_ta_set_event.c
+++ b/nptl_db/td_ta_set_event.c
@@ -1,5 +1,5 @@
/* Globally enable events.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
#include "thread_dbP.h"
diff --git a/nptl_db/td_ta_setconcurrency.c b/nptl_db/td_ta_setconcurrency.c
index 3645e71508..376f32a123 100644
--- a/nptl_db/td_ta_setconcurrency.c
+++ b/nptl_db/td_ta_setconcurrency.c
@@ -1,5 +1,5 @@
/* Set suggested concurrency level for process.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thread_dbP.h"
diff --git a/nptl_db/td_ta_thr_iter.c b/nptl_db/td_ta_thr_iter.c
index 00d6c9a416..43b7ffbc22 100644
--- a/nptl_db/td_ta_thr_iter.c
+++ b/nptl_db/td_ta_thr_iter.c
@@ -1,5 +1,5 @@
/* Iterate over a process's threads.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thread_dbP.h"
diff --git a/nptl_db/td_ta_tsd_iter.c b/nptl_db/td_ta_tsd_iter.c
index 561514e0f3..af2c1c9077 100644
--- a/nptl_db/td_ta_tsd_iter.c
+++ b/nptl_db/td_ta_tsd_iter.c
@@ -1,5 +1,5 @@
/* Iterate over a process's thread-specific data.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
#include "thread_dbP.h"
diff --git a/nptl_db/td_thr_clear_event.c b/nptl_db/td_thr_clear_event.c
index 36687f4f89..b550e1ed80 100644
--- a/nptl_db/td_thr_clear_event.c
+++ b/nptl_db/td_thr_clear_event.c
@@ -1,5 +1,5 @@
/* Disable specific event for thread.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <stdint.h>
diff --git a/nptl_db/td_thr_dbresume.c b/nptl_db/td_thr_dbresume.c
index 10e6348832..995896d40a 100644
--- a/nptl_db/td_thr_dbresume.c
+++ b/nptl_db/td_thr_dbresume.c
@@ -1,5 +1,5 @@
/* Resume execution of given thread.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thread_dbP.h"
diff --git a/nptl_db/td_thr_dbsuspend.c b/nptl_db/td_thr_dbsuspend.c
index 58a4960d0a..caf3d76eab 100644
--- a/nptl_db/td_thr_dbsuspend.c
+++ b/nptl_db/td_thr_dbsuspend.c
@@ -1,5 +1,5 @@
/* Suspend execution of given thread.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thread_dbP.h"
diff --git a/nptl_db/td_thr_event_enable.c b/nptl_db/td_thr_event_enable.c
index 6b909b68d6..2f6f2e78e3 100644
--- a/nptl_db/td_thr_event_enable.c
+++ b/nptl_db/td_thr_event_enable.c
@@ -1,5 +1,5 @@
/* Enable event process-wide.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thread_dbP.h"
diff --git a/nptl_db/td_thr_event_getmsg.c b/nptl_db/td_thr_event_getmsg.c
index 6814418d5f..e793e1ada0 100644
--- a/nptl_db/td_thr_event_getmsg.c
+++ b/nptl_db/td_thr_event_getmsg.c
@@ -1,5 +1,5 @@
/* Retrieve event.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thread_dbP.h"
#include <assert.h>
diff --git a/nptl_db/td_thr_get_info.c b/nptl_db/td_thr_get_info.c
index ce378738c0..b6c958fd22 100644
--- a/nptl_db/td_thr_get_info.c
+++ b/nptl_db/td_thr_get_info.c
@@ -1,5 +1,5 @@
/* Get thread information.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <string.h>
diff --git a/nptl_db/td_thr_getfpregs.c b/nptl_db/td_thr_getfpregs.c
index fd02cdebeb..1a915dad9c 100644
--- a/nptl_db/td_thr_getfpregs.c
+++ b/nptl_db/td_thr_getfpregs.c
@@ -1,5 +1,5 @@
/* Get a thread's floating-point register set.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thread_dbP.h"
diff --git a/nptl_db/td_thr_getgregs.c b/nptl_db/td_thr_getgregs.c
index fd72f010c3..b693e13458 100644
--- a/nptl_db/td_thr_getgregs.c
+++ b/nptl_db/td_thr_getgregs.c
@@ -1,5 +1,5 @@
/* Get a thread's general register set.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thread_dbP.h"
diff --git a/nptl_db/td_thr_getxregs.c b/nptl_db/td_thr_getxregs.c
index 41c1273750..bf7e29a892 100644
--- a/nptl_db/td_thr_getxregs.c
+++ b/nptl_db/td_thr_getxregs.c
@@ -1,5 +1,5 @@
/* Get a thread's extra state register set.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thread_dbP.h"
diff --git a/nptl_db/td_thr_getxregsize.c b/nptl_db/td_thr_getxregsize.c
index a610556ee3..94f0c3c28d 100644
--- a/nptl_db/td_thr_getxregsize.c
+++ b/nptl_db/td_thr_getxregsize.c
@@ -1,5 +1,5 @@
/* Get the size of the extra state register set for this architecture.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thread_dbP.h"
diff --git a/nptl_db/td_thr_set_event.c b/nptl_db/td_thr_set_event.c
index 06a7a92a44..85192e07be 100644
--- a/nptl_db/td_thr_set_event.c
+++ b/nptl_db/td_thr_set_event.c
@@ -1,5 +1,5 @@
/* Enable specific event for thread.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <stdint.h>
diff --git a/nptl_db/td_thr_setfpregs.c b/nptl_db/td_thr_setfpregs.c
index 8484017927..4c49d1744c 100644
--- a/nptl_db/td_thr_setfpregs.c
+++ b/nptl_db/td_thr_setfpregs.c
@@ -1,5 +1,5 @@
/* Set a thread's floating-point register set.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thread_dbP.h"
diff --git a/nptl_db/td_thr_setgregs.c b/nptl_db/td_thr_setgregs.c
index a0d6498259..5cdc09a25a 100644
--- a/nptl_db/td_thr_setgregs.c
+++ b/nptl_db/td_thr_setgregs.c
@@ -1,5 +1,5 @@
/* Set a thread's general register set.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thread_dbP.h"
diff --git a/nptl_db/td_thr_setprio.c b/nptl_db/td_thr_setprio.c
index e3db900bb1..1f3669cea8 100644
--- a/nptl_db/td_thr_setprio.c
+++ b/nptl_db/td_thr_setprio.c
@@ -1,5 +1,5 @@
/* Set a thread's priority.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thread_dbP.h"
diff --git a/nptl_db/td_thr_setsigpending.c b/nptl_db/td_thr_setsigpending.c
index a28125efff..7ee8b5a199 100644
--- a/nptl_db/td_thr_setsigpending.c
+++ b/nptl_db/td_thr_setsigpending.c
@@ -1,5 +1,5 @@
/* Raise a signal for a thread.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thread_dbP.h"
diff --git a/nptl_db/td_thr_setxregs.c b/nptl_db/td_thr_setxregs.c
index 5d7a853c7d..d02c6bb7c7 100644
--- a/nptl_db/td_thr_setxregs.c
+++ b/nptl_db/td_thr_setxregs.c
@@ -1,5 +1,5 @@
/* Set a thread's extra state register set.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thread_dbP.h"
diff --git a/nptl_db/td_thr_sigsetmask.c b/nptl_db/td_thr_sigsetmask.c
index 97d51977a4..48c68d88d8 100644
--- a/nptl_db/td_thr_sigsetmask.c
+++ b/nptl_db/td_thr_sigsetmask.c
@@ -1,5 +1,5 @@
/* Set a thread's signal mask.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thread_dbP.h"
diff --git a/nptl_db/td_thr_tls_get_addr.c b/nptl_db/td_thr_tls_get_addr.c
index 8676470ee2..e77d9731e1 100644
--- a/nptl_db/td_thr_tls_get_addr.c
+++ b/nptl_db/td_thr_tls_get_addr.c
@@ -1,5 +1,5 @@
/* Get address of thread local variable.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <link.h>
#include "thread_dbP.h"
diff --git a/nptl_db/td_thr_tlsbase.c b/nptl_db/td_thr_tlsbase.c
index a693a868bb..5fe4484654 100644
--- a/nptl_db/td_thr_tlsbase.c
+++ b/nptl_db/td_thr_tlsbase.c
@@ -1,5 +1,5 @@
/* Locate TLS data for a thread.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thread_dbP.h"
#include <link.h>
diff --git a/nptl_db/td_thr_tsd.c b/nptl_db/td_thr_tsd.c
index bc9f7626fd..5c2f5da75a 100644
--- a/nptl_db/td_thr_tsd.c
+++ b/nptl_db/td_thr_tsd.c
@@ -1,5 +1,5 @@
/* Get a thread-specific data pointer for a thread.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
#include "thread_dbP.h"
diff --git a/nptl_db/td_thr_validate.c b/nptl_db/td_thr_validate.c
index d677a63727..04da2fdba0 100644
--- a/nptl_db/td_thr_validate.c
+++ b/nptl_db/td_thr_validate.c
@@ -1,5 +1,5 @@
/* Validate a thread handle.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "thread_dbP.h"
#include <stdbool.h>
diff --git a/nptl_db/thread_dbP.h b/nptl_db/thread_dbP.h
index bcb2764074..cf6a2b0221 100644
--- a/nptl_db/thread_dbP.h
+++ b/nptl_db/thread_dbP.h
@@ -1,5 +1,5 @@
/* Private header for thread debug library
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _THREAD_DBP_H
#define _THREAD_DBP_H 1
@@ -37,12 +37,14 @@ enum
{
# define DB_STRUCT(type) SYM_SIZEOF_##type,
# define DB_STRUCT_FIELD(type, field) SYM_##type##_FIELD_##field,
+# define DB_STRUCT_FLEXIBLE_ARRAY(type, field) DB_STRUCT_FIELD (type, field)
# define DB_SYMBOL(name) SYM_##name,
# define DB_FUNCTION(name) SYM_##name,
# define DB_VARIABLE(name) SYM_##name, SYM_DESC_##name,
# include "structs.def"
# undef DB_STRUCT
# undef DB_STRUCT_FIELD
+# undef DB_STRUCT_FLEXIBLE_ARRAY
# undef DB_SYMBOL
# undef DB_FUNCTION
# undef DB_VARIABLE
@@ -90,6 +92,7 @@ struct td_thragent
uint32_t ta_sizeof_##type;
# define DB_STRUCT_FIELD(type, field) \
db_desc_t ta_field_##type##_##field;
+# define DB_STRUCT_FLEXIBLE_ARRAY(type, field) DB_STRUCT_FIELD (type, field)
# define DB_SYMBOL(name) \
psaddr_t ta_addr_##name;
# define DB_FUNCTION(name) \
@@ -100,6 +103,7 @@ struct td_thragent
# include "structs.def"
# undef DB_STRUCT
# undef DB_STRUCT_FIELD
+# undef DB_STRUCT_FLEXIBLE_ARRAY
# undef DB_FUNCTION
# undef DB_SYMBOL
# undef DB_VARIABLE
diff --git a/nscd/Makefile b/nscd/Makefile
index b713a84c49..55c4623121 100644
--- a/nscd/Makefile
+++ b/nscd/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1998-2018 Free Software Foundation, Inc.
+# Copyright (C) 1998-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
# Sub-makefile for nscd portion of the library.
diff --git a/nscd/aicache.c b/nscd/aicache.c
index 439e0ea126..43d690b8e0 100644
--- a/nscd/aicache.c
+++ b/nscd/aicache.c
@@ -1,5 +1,5 @@
/* Cache handling for host lookup.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2004.
@@ -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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
@@ -27,7 +27,6 @@
#include <sys/mman.h>
#include <resolv/resolv-internal.h>
#include <resolv/resolv_context.h>
-#include <resolv/res_use_inet6.h>
#include <scratch_buffer.h>
#include "dbg_log.h"
@@ -93,19 +92,15 @@ addhstaiX (struct database_dyn *db, int fd, request_header *req,
int herrno = 0;
if (hosts_database == NULL)
- no_more = __nss_database_lookup ("hosts", NULL,
- "dns [!UNAVAIL=return] files",
- &hosts_database);
+ no_more = __nss_database_lookup2 ("hosts", NULL,
+ "dns [!UNAVAIL=return] files",
+ &hosts_database);
else
no_more = 0;
nip = hosts_database;
- /* Initialize configurations. If we are looking for both IPv4 and
- IPv6 address we don't want the lookup functions to automatically
- promote IPv4 addresses to IPv6 addresses. Therefore, use the
- _no_inet6 variant. */
+ /* Initialize configurations. */
struct resolv_context *ctx = __resolv_context_get ();
- bool enable_inet6 = __resolv_context_disable_inet6 (ctx);
if (ctx == NULL)
no_more = 1;
@@ -513,7 +508,6 @@ next_nip:
}
out:
- __resolv_context_enable_inet6 (ctx, enable_inet6);
__resolv_context_put (ctx);
if (dataset != NULL && !alloca_used)
diff --git a/nscd/cache.c b/nscd/cache.c
index efe4214d95..31600cf442 100644
--- a/nscd/cache.c
+++ b/nscd/cache.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (c) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@@ -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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <atomic.h>
diff --git a/nscd/connections.c b/nscd/connections.c
index 47fbb9923a..037def8246 100644
--- a/nscd/connections.c
+++ b/nscd/connections.c
@@ -1,5 +1,5 @@
/* Inner loops of cache daemon.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <alloca.h>
#include <assert.h>
@@ -227,7 +227,6 @@ static struct
[GETHOSTBYADDRv6] = { true, &dbs[hstdb] },
[SHUTDOWN] = { false, NULL },
[GETSTAT] = { false, NULL },
- [SHUTDOWN] = { false, NULL },
[GETFDPW] = { false, &dbs[pwddb] },
[GETFDGR] = { false, &dbs[grpdb] },
[GETFDHST] = { false, &dbs[hstdb] },
@@ -304,7 +303,8 @@ static int
check_use (const char *data, nscd_ssize_t first_free, uint8_t *usemap,
enum usekey use, ref_t start, size_t len)
{
- assert (len >= 2);
+ if (len < 2)
+ return 0;
if (start > first_free || start + len > first_free
|| (start & BLOCK_ALIGN_M1))
diff --git a/nscd/dbg_log.c b/nscd/dbg_log.c
index 57726bda78..b8f32fa58c 100644
--- a/nscd/dbg_log.c
+++ b/nscd/dbg_log.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (c) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1998.
@@ -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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <stdarg.h>
#include <stdio.h>
diff --git a/nscd/dbg_log.h b/nscd/dbg_log.h
index c5402f52c4..1c29d4c8a3 100644
--- a/nscd/dbg_log.h
+++ b/nscd/dbg_log.h
@@ -1,4 +1,4 @@
-/* Copyright (c) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (c) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DBG_LOG_H
#define _DBG_LOG_H 1
diff --git a/nscd/gai.c b/nscd/gai.c
index 24bdfee1db..f2fd82f2c5 100644
--- a/nscd/gai.c
+++ b/nscd/gai.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 2004.
@@ -13,13 +13,12 @@
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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <alloca.h>
/* This file uses the getaddrinfo code but it compiles it without NSCD
support. We just need a few symbol renames. */
-#define __inet_aton inet_aton
#define __ioctl ioctl
#define __getsockname getsockname
#define __socket socket
diff --git a/nscd/getgrgid_r.c b/nscd/getgrgid_r.c
index e2c7fcb310..05d919d25f 100644
--- a/nscd/getgrgid_r.c
+++ b/nscd/getgrgid_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <grp.h>
diff --git a/nscd/getgrnam_r.c b/nscd/getgrnam_r.c
index 5c9e2b510b..33cead5f6d 100644
--- a/nscd/getgrnam_r.c
+++ b/nscd/getgrnam_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <grp.h>
diff --git a/nscd/gethstbyad_r.c b/nscd/gethstbyad_r.c
index 423514556e..bb5048f5c8 100644
--- a/nscd/gethstbyad_r.c
+++ b/nscd/gethstbyad_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <netdb.h>
diff --git a/nscd/gethstbynm3_r.c b/nscd/gethstbynm3_r.c
index 7beb9dce9f..2c4f19ad71 100644
--- a/nscd/gethstbynm3_r.c
+++ b/nscd/gethstbynm3_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <errno.h>
@@ -38,8 +38,6 @@
#define HAVE_LOOKUP_BUFFER 1
#define HAVE_AF 1
-#define __inet_aton inet_aton
-
/* We are nscd, so we don't want to be talking to ourselves. */
#undef USE_NSCD
diff --git a/nscd/getpwnam_r.c b/nscd/getpwnam_r.c
index 82494974c6..15e24fe953 100644
--- a/nscd/getpwnam_r.c
+++ b/nscd/getpwnam_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <pwd.h>
diff --git a/nscd/getpwuid_r.c b/nscd/getpwuid_r.c
index 55ddfd3f7f..86fa7680d7 100644
--- a/nscd/getpwuid_r.c
+++ b/nscd/getpwuid_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <pwd.h>
diff --git a/nscd/getsrvbynm_r.c b/nscd/getsrvbynm_r.c
index 88d33c83ef..e19845ae34 100644
--- a/nscd/getsrvbynm_r.c
+++ b/nscd/getsrvbynm_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <netdb.h>
diff --git a/nscd/getsrvbypt_r.c b/nscd/getsrvbypt_r.c
index 81f1ff1086..d5a04b3642 100644
--- a/nscd/getsrvbypt_r.c
+++ b/nscd/getsrvbypt_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <netdb.h>
diff --git a/nscd/grpcache.c b/nscd/grpcache.c
index b4c8ea9c56..61a06e1727 100644
--- a/nscd/grpcache.c
+++ b/nscd/grpcache.c
@@ -1,5 +1,5 @@
/* Cache handling for group lookup.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
diff --git a/nscd/hstcache.c b/nscd/hstcache.c
index 5597e13ec1..36970d0ed6 100644
--- a/nscd/hstcache.c
+++ b/nscd/hstcache.c
@@ -1,5 +1,5 @@
/* Cache handling for host lookup.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <alloca.h>
#include <assert.h>
@@ -134,9 +134,9 @@ cache_addhst (struct database_dyn *db, int fd, request_header *req,
const hst_response_header *resp = (errval == EAGAIN
? &tryagain : &notfound);
- if (fd != -1 &&
- TEMP_FAILURE_RETRY (send (fd, resp, total,
- MSG_NOSIGNAL)) != total)
+ if (fd != -1
+ && TEMP_FAILURE_RETRY (send (fd, resp, total,
+ MSG_NOSIGNAL)) != total)
all_written = false;
/* If we have a transient error or cannot permanently store
diff --git a/nscd/initgrcache.c b/nscd/initgrcache.c
index 2c74951f57..19448fbf36 100644
--- a/nscd/initgrcache.c
+++ b/nscd/initgrcache.c
@@ -1,5 +1,5 @@
/* Cache handling for host lookup.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2004.
@@ -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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
@@ -88,8 +88,8 @@ addinitgroupsX (struct database_dyn *db, int fd, request_header *req,
int no_more;
if (group_database == NULL)
- no_more = __nss_database_lookup ("group", NULL, DEFAULT_CONFIG,
- &group_database);
+ no_more = __nss_database_lookup2 ("group", NULL, DEFAULT_CONFIG,
+ &group_database);
else
no_more = 0;
nip = group_database;
@@ -159,7 +159,7 @@ addinitgroupsX (struct database_dyn *db, int fd, request_header *req,
/* This is really only for debugging. */
if (NSS_STATUS_TRYAGAIN > status || status > NSS_STATUS_RETURN)
- __libc_fatal ("illegal status in internal_getgrouplist");
+ __libc_fatal ("Illegal status in internal_getgrouplist.\n");
any_success |= status == NSS_STATUS_SUCCESS;
@@ -366,8 +366,8 @@ addinitgroupsX (struct database_dyn *db, int fd, request_header *req,
// XXX async OK?
uintptr_t pval = (uintptr_t) dataset & ~pagesize_m1;
msync ((void *) pval,
- ((uintptr_t) dataset & pagesize_m1) + total +
- req->key_len, MS_ASYNC);
+ ((uintptr_t) dataset & pagesize_m1) + total
+ + req->key_len, MS_ASYNC);
}
(void) cache_add (INITGROUPS, cp, req->key_len, &dataset->head, true,
diff --git a/nscd/mem.c b/nscd/mem.c
index 9ff0ddd3aa..20fa539882 100644
--- a/nscd/mem.c
+++ b/nscd/mem.c
@@ -1,5 +1,5 @@
/* Cache memory handling.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2004.
@@ -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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
diff --git a/nscd/netgroupcache.c b/nscd/netgroupcache.c
index 2b35389cc8..d4c769d888 100644
--- a/nscd/netgroupcache.c
+++ b/nscd/netgroupcache.c
@@ -1,5 +1,5 @@
/* Cache handling for netgroup lookup.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
@@ -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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <alloca.h>
#include <assert.h>
@@ -113,7 +113,8 @@ do_notfound (struct database_dyn *db, int fd, request_header *req,
static time_t
addgetnetgrentX (struct database_dyn *db, int fd, request_header *req,
const char *key, uid_t uid, struct hashentry *he,
- struct datahead *dh, struct dataset **resultp)
+ struct datahead *dh, struct dataset **resultp,
+ void **tofreep)
{
if (__glibc_unlikely (debug_level > 0))
{
@@ -139,9 +140,10 @@ addgetnetgrentX (struct database_dyn *db, int fd, request_header *req,
size_t group_len = strlen (key) + 1;
struct name_list *first_needed
= alloca (sizeof (struct name_list) + group_len);
+ *tofreep = NULL;
if (netgroup_database == NULL
- && __nss_database_lookup ("netgroup", NULL, NULL, &netgroup_database))
+ && __nss_database_lookup2 ("netgroup", NULL, NULL, &netgroup_database))
{
/* No such service. */
cacheable = do_notfound (db, fd, req, key, &dataset, &total, &timeout,
@@ -151,6 +153,7 @@ addgetnetgrentX (struct database_dyn *db, int fd, request_header *req,
memset (&data, '\0', sizeof (data));
buffer = xmalloc (buflen);
+ *tofreep = buffer;
first_needed->next = first_needed;
memcpy (first_needed->name, key, group_len);
data.needed_groups = first_needed;
@@ -439,8 +442,6 @@ addgetnetgrentX (struct database_dyn *db, int fd, request_header *req,
}
out:
- free (buffer);
-
*resultp = dataset;
return timeout;
@@ -477,8 +478,12 @@ addinnetgrX (struct database_dyn *db, int fd, request_header *req,
group, group_len,
db, uid);
time_t timeout;
+ void *tofree;
if (result != NULL)
- timeout = result->head.timeout;
+ {
+ timeout = result->head.timeout;
+ tofree = NULL;
+ }
else
{
request_header req_get =
@@ -487,7 +492,7 @@ addinnetgrX (struct database_dyn *db, int fd, request_header *req,
.key_len = group_len
};
timeout = addgetnetgrentX (db, -1, &req_get, group, uid, NULL, NULL,
- &result);
+ &result, &tofree);
}
struct indataset
@@ -560,7 +565,7 @@ addinnetgrX (struct database_dyn *db, int fd, request_header *req,
++dh->nreloads;
if (cacheable)
pthread_rwlock_unlock (&db->lock);
- return timeout;
+ goto out;
}
if (he == NULL)
@@ -596,17 +601,30 @@ addinnetgrX (struct database_dyn *db, int fd, request_header *req,
dh->usable = false;
}
+ out:
+ free (tofree);
return timeout;
}
+static time_t
+addgetnetgrentX_ignore (struct database_dyn *db, int fd, request_header *req,
+ const char *key, uid_t uid, struct hashentry *he,
+ struct datahead *dh)
+{
+ struct dataset *ignore;
+ void *tofree;
+ time_t timeout = addgetnetgrentX (db, fd, req, key, uid, he, dh,
+ &ignore, &tofree);
+ free (tofree);
+ return timeout;
+}
+
void
addgetnetgrent (struct database_dyn *db, int fd, request_header *req,
void *key, uid_t uid)
{
- struct dataset *ignore;
-
- addgetnetgrentX (db, fd, req, key, uid, NULL, NULL, &ignore);
+ addgetnetgrentX_ignore (db, fd, req, key, uid, NULL, NULL);
}
@@ -619,10 +637,8 @@ readdgetnetgrent (struct database_dyn *db, struct hashentry *he,
.type = GETNETGRENT,
.key_len = he->len
};
- struct dataset *ignore;
-
- return addgetnetgrentX (db, -1, &req, db->data + he->key, he->owner, he, dh,
- &ignore);
+ return addgetnetgrentX_ignore
+ (db, -1, &req, db->data + he->key, he->owner, he, dh);
}
diff --git a/nscd/nscd-client.h b/nscd/nscd-client.h
index 624effabb4..0b8c823cb7 100644
--- a/nscd/nscd-client.h
+++ b/nscd/nscd-client.h
@@ -1,4 +1,4 @@
-/* Copyright (c) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (c) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file defines everything that client code should need to
know to talk to the nscd daemon. */
diff --git a/nscd/nscd.c b/nscd/nscd.c
index 67e2a336c4..db5be433e9 100644
--- a/nscd/nscd.c
+++ b/nscd/nscd.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (c) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 1998.
@@ -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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
/* nscd - Name Service Cache Daemon. Caches passwd, group, and hosts. */
@@ -510,7 +510,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\
-"), "2018");
+"), "2019");
fprintf (stream, gettext ("Written by %s.\n"),
"Thorsten Kukuk and Ulrich Drepper");
}
diff --git a/nscd/nscd.conf b/nscd/nscd.conf
index 39b875912d..487ffe461d 100644
--- a/nscd/nscd.conf
+++ b/nscd/nscd.conf
@@ -3,6 +3,9 @@
#
# An example Name Service Cache config file. This file is needed by nscd.
#
+# WARNING: Running nscd with a secondary caching service like sssd may lead to
+# unexpected behaviour, especially with how long entries are cached.
+#
# Legal entries are:
#
# logfile <file>
@@ -23,6 +26,9 @@
# check-files <service> <yes|no>
# persistent <service> <yes|no>
# shared <service> <yes|no>
+# NOTE: Setting 'shared' to a value of 'yes' will accelerate the lookup,
+# but those lookups will not be counted as cache hits
+# i.e. 'nscd -g' may show '0%'.
# max-db-size <service> <number bytes>
# auto-propagate <service> <yes|no>
#
diff --git a/nscd/nscd.h b/nscd/nscd.h
index 4533578100..b5e59cd144 100644
--- a/nscd/nscd.h
+++ b/nscd/nscd.h
@@ -1,4 +1,4 @@
-/* Copyright (c) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (c) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _NSCD_H
#define _NSCD_H 1
diff --git a/nscd/nscd_conf.c b/nscd/nscd_conf.c
index 265a02434d..fa3320b8a5 100644
--- a/nscd/nscd_conf.c
+++ b/nscd/nscd_conf.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (c) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 1998.
@@ -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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <errno.h>
@@ -190,7 +190,10 @@ nscd_parse_file (const char *fname, struct database_dyn dbs[lastdb])
if (!arg1)
error (0, 0, _("Must specify user name for server-user option"));
else
- server_user = xstrdup (arg1);
+ {
+ free ((char *) server_user);
+ server_user = xstrdup (arg1);
+ }
}
else if (strcmp (entry, "stat-user") == 0)
{
@@ -198,6 +201,7 @@ nscd_parse_file (const char *fname, struct database_dyn dbs[lastdb])
error (0, 0, _("Must specify user name for stat-user option"));
else
{
+ free ((char *) stat_user);
stat_user = xstrdup (arg1);
struct passwd *pw = getpwnam (stat_user);
diff --git a/nscd/nscd_getai.c b/nscd/nscd_getai.c
index 35cb19e91d..349cd4dd68 100644
--- a/nscd/nscd_getai.c
+++ b/nscd/nscd_getai.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
diff --git a/nscd/nscd_getgr_r.c b/nscd/nscd_getgr_r.c
index d9f72b2e3d..0970ac6aae 100644
--- a/nscd/nscd_getgr_r.c
+++ b/nscd/nscd_getgr_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <alloca.h>
#include <assert.h>
diff --git a/nscd/nscd_gethst_r.c b/nscd/nscd_gethst_r.c
index edff48eac4..8eca90fd52 100644
--- a/nscd/nscd_gethst_r.c
+++ b/nscd/nscd_gethst_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <resolv/resolv-internal.h>
@@ -40,11 +40,7 @@ __nscd_gethostbyname_r (const char *name, struct hostent *resultbuf,
char *buffer, size_t buflen, struct hostent **result,
int *h_errnop)
{
- request_type reqtype;
-
- reqtype = res_use_inet6 () ? GETHOSTBYNAMEv6 : GETHOSTBYNAME;
-
- return nscd_gethst_r (name, strlen (name) + 1, reqtype, resultbuf,
+ return nscd_gethst_r (name, strlen (name) + 1, GETHOSTBYNAME, resultbuf,
buffer, buflen, result, h_errnop);
}
@@ -117,7 +113,7 @@ __nscd_get_nl_timestamp (void)
if (map == NULL
|| (map != NO_MAPPING
&& map->head->nscd_certainly_running == 0
- && map->head->timestamp + MAPPING_TIMEOUT < time (NULL)))
+ && map->head->timestamp + MAPPING_TIMEOUT < time_now ()))
map = __nscd_get_mapping (GETFDHST, "hosts", &__hst_map_handle.mapped);
if (map == NO_MAPPING)
diff --git a/nscd/nscd_getpw_r.c b/nscd/nscd_getpw_r.c
index 285e331304..15287c4314 100644
--- a/nscd/nscd_getpw_r.c
+++ b/nscd/nscd_getpw_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
diff --git a/nscd/nscd_getserv_r.c b/nscd/nscd_getserv_r.c
index 574a9be7ab..0dca471e7f 100644
--- a/nscd/nscd_getserv_r.c
+++ b/nscd/nscd_getserv_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
diff --git a/nscd/nscd_helper.c b/nscd/nscd_helper.c
index 2f3b4e02ab..d50615e13e 100644
--- a/nscd/nscd_helper.c
+++ b/nscd/nscd_helper.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
@@ -59,9 +59,10 @@ wait_on_socket (int sock, long int usectmo)
/* Handle the case where the poll() call is interrupted by a
signal. We cannot just use TEMP_FAILURE_RETRY since it might
lead to infinite loops. */
- struct timeval now;
- (void) __gettimeofday (&now, NULL);
- long int end = now.tv_sec * 1000 + usectmo + (now.tv_usec + 500) / 1000;
+ struct timespec now;
+ __clock_gettime (CLOCK_REALTIME, &now);
+ long int end = (now.tv_sec * 1000 + usectmo
+ + (now.tv_nsec + 500000) / 1000000);
long int timeout = usectmo;
while (1)
{
@@ -70,8 +71,9 @@ wait_on_socket (int sock, long int usectmo)
break;
/* Recompute the timeout time. */
- (void) __gettimeofday (&now, NULL);
- timeout = end - (now.tv_sec * 1000 + (now.tv_usec + 500) / 1000);
+ __clock_gettime (CLOCK_REALTIME, &now);
+ timeout = end - ((now.tv_sec * 1000
+ + (now.tv_nsec + 500000) / 1000000));
}
}
@@ -191,9 +193,7 @@ open_socket (request_type type, const char *key, size_t keylen)
memcpy (reqdata->key, key, keylen);
bool first_try = true;
- struct timeval tvend;
- /* Fake initializing tvend. */
- asm ("" : "=m" (tvend));
+ struct timespec tvend = { 0, 0 };
while (1)
{
#ifndef MSG_NOSIGNAL
@@ -212,18 +212,18 @@ open_socket (request_type type, const char *key, size_t keylen)
/* The daemon is busy wait for it. */
int to;
- struct timeval now;
- (void) __gettimeofday (&now, NULL);
+ struct timespec now;
+ __clock_gettime (CLOCK_REALTIME, &now);
if (first_try)
{
- tvend.tv_usec = now.tv_usec;
+ tvend.tv_nsec = now.tv_nsec;
tvend.tv_sec = now.tv_sec + 5;
to = 5 * 1000;
first_try = false;
}
else
to = ((tvend.tv_sec - now.tv_sec) * 1000
- + (tvend.tv_usec - now.tv_usec) / 1000);
+ + (tvend.tv_nsec - now.tv_nsec) / 1000000);
struct pollfd fds[1];
fds[0].fd = sock;
@@ -348,7 +348,7 @@ __nscd_get_mapping (request_type type, const char *key,
thread got stuck. */
|| __builtin_expect (! head->nscd_certainly_running
&& (head->timestamp + MAPPING_TIMEOUT
- < time (NULL)), 0))
+ < time_now ()), 0))
{
out_unmap:
__munmap (mapping, mapsize);
@@ -414,7 +414,7 @@ __nscd_get_map_ref (request_type type, const char *name,
/* If not mapped or timestamp not updated, request new map. */
if (cur == NULL
|| (cur->head->nscd_certainly_running == 0
- && cur->head->timestamp + MAPPING_TIMEOUT < time (NULL))
+ && cur->head->timestamp + MAPPING_TIMEOUT < time_now ())
|| cur->head->data_size > cur->datasize)
cur = __nscd_get_mapping (type, name,
(struct mapped_database **) &mapptr->mapped);
diff --git a/nscd/nscd_initgroups.c b/nscd/nscd_initgroups.c
index d7f0291c95..fe1f1ec55c 100644
--- a/nscd/nscd_initgroups.c
+++ b/nscd/nscd_initgroups.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
diff --git a/nscd/nscd_netgroup.c b/nscd/nscd_netgroup.c
index 6295803f67..c7b5ab75b4 100644
--- a/nscd/nscd_netgroup.c
+++ b/nscd/nscd_netgroup.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <alloca.h>
#include <errno.h>
diff --git a/nscd/nscd_proto.h b/nscd/nscd_proto.h
index 87e2e3844e..d5c6a27da5 100644
--- a/nscd/nscd_proto.h
+++ b/nscd/nscd_proto.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _NSCD_PROTO_H
#define _NSCD_PROTO_H 1
diff --git a/nscd/nscd_setup_thread.c b/nscd/nscd_setup_thread.c
index eb60e89f37..4687935276 100644
--- a/nscd/nscd_setup_thread.c
+++ b/nscd/nscd_setup_thread.c
@@ -1,5 +1,5 @@
/* Setup of nscd worker threads. Stub verison.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2004.
@@ -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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <nscd.h>
diff --git a/nscd/nscd_stat.c b/nscd/nscd_stat.c
index 8428322c35..ac1768f95c 100644
--- a/nscd/nscd_stat.c
+++ b/nscd/nscd_stat.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (c) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <error.h>
diff --git a/nscd/pwdcache.c b/nscd/pwdcache.c
index b08cfd7870..18bde3faa5 100644
--- a/nscd/pwdcache.c
+++ b/nscd/pwdcache.c
@@ -1,5 +1,5 @@
/* Cache handling for passwd lookup.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
diff --git a/nscd/selinux.c b/nscd/selinux.c
index bb3b6eba85..e28ce9a502 100644
--- a/nscd/selinux.c
+++ b/nscd/selinux.c
@@ -1,5 +1,5 @@
/* SELinux access controls for nscd.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Matthew Rickard <mjricka@epoch.ncsc.mil>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "config.h"
#include <error.h>
diff --git a/nscd/selinux.h b/nscd/selinux.h
index 615bb93a57..4b589807b5 100644
--- a/nscd/selinux.h
+++ b/nscd/selinux.h
@@ -1,5 +1,5 @@
/* Header for nscd SELinux access controls.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Matthew Rickard <mjricka@epoch.ncsc.mil>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SELINUX_H
#define _SELINUX_H 1
diff --git a/nscd/servicescache.c b/nscd/servicescache.c
index f71c1a608a..85592539ad 100644
--- a/nscd/servicescache.c
+++ b/nscd/servicescache.c
@@ -1,5 +1,5 @@
/* Cache handling for services lookup.
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@drepper.com>, 2007.
@@ -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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
diff --git a/nss/Makefile b/nss/Makefile
index 66fac7f5b8..7590669e49 100644
--- a/nss/Makefile
+++ b/nss/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
# Makefile for name service switch.
@@ -55,16 +55,23 @@ tests-internal = tst-field
tests = test-netdb test-digits-dots tst-nss-getpwent bug17079 \
tst-nss-test1 \
tst-nss-test2 \
- tst-nss-test3 \
tst-nss-test4 \
tst-nss-test5
xtests = bug-erange
+tests-container = \
+ tst-nss-test3 \
+ tst-nss-files-hosts-long \
+ tst-nss-db-endpwent \
+ tst-nss-db-endgrent
+
# Tests which need libdl
ifeq (yes,$(build-shared))
tests += tst-nss-files-hosts-erange
tests += tst-nss-files-hosts-multi
tests += tst-nss-files-hosts-getent
+tests += tst-nss-files-alias-leak
+tests += tst-nss-files-alias-truncated
endif
# If we have a thread library then we can test cancellation against
@@ -160,7 +167,7 @@ ifdef libnss_test2.so-version
$(objpfx)/libnss_test2.so$(libnss_test2.so-version): $(objpfx)/libnss_test2.so
$(make-link)
endif
-$(patsubst %,$(objpfx)%.out,$(tests)) : \
+$(patsubst %,$(objpfx)%.out,$(tests) $(tests-container)) : \
$(objpfx)/libnss_test1.so$(libnss_test1.so-version) \
$(objpfx)/libnss_test2.so$(libnss_test2.so-version)
@@ -171,3 +178,7 @@ endif
$(objpfx)tst-nss-files-hosts-erange: $(libdl)
$(objpfx)tst-nss-files-hosts-multi: $(libdl)
$(objpfx)tst-nss-files-hosts-getent: $(libdl)
+$(objpfx)tst-nss-files-alias-leak: $(libdl)
+$(objpfx)tst-nss-files-alias-leak.out: $(objpfx)/libnss_files.so
+$(objpfx)tst-nss-files-alias-truncated: $(libdl)
+$(objpfx)tst-nss-files-alias-truncated.out: $(objpfx)/libnss_files.so
diff --git a/nss/Versions b/nss/Versions
index db8c887720..afc82a23c2 100644
--- a/nss/Versions
+++ b/nss/Versions
@@ -1,8 +1,10 @@
libc {
GLIBC_2.0 {
- # functions used in other libraries
+ __nss_configure_lookup;
+
+ # Functions exported as no-op compat symbols.
__nss_passwd_lookup; __nss_group_lookup; __nss_hosts_lookup; __nss_next;
- __nss_database_lookup; __nss_configure_lookup;
+ __nss_database_lookup;
}
GLIBC_2.2.2 {
__nss_hostname_digits_dots;
@@ -15,7 +17,7 @@ libc {
__nss_passwd_lookup2; __nss_group_lookup2; __nss_hosts_lookup2;
__nss_services_lookup2; __nss_next2; __nss_lookup;
- __nss_hash;
+ __nss_hash; __nss_database_lookup2;
}
}
diff --git a/nss/XXX-lookup.c b/nss/XXX-lookup.c
index e0f94713f7..9e9dc23dfc 100644
--- a/nss/XXX-lookup.c
+++ b/nss/XXX-lookup.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "nsswitch.h"
@@ -57,8 +57,8 @@ DB_LOOKUP_FCT (service_user **ni, const char *fct_name, const char *fct2_name,
void **fctp)
{
if (DATABASE_NAME_SYMBOL == NULL
- && __nss_database_lookup (DATABASE_NAME_STRING, ALTERNATE_NAME_STRING,
- DEFAULT_CONFIG, &DATABASE_NAME_SYMBOL) < 0)
+ && __nss_database_lookup2 (DATABASE_NAME_STRING, ALTERNATE_NAME_STRING,
+ DEFAULT_CONFIG, &DATABASE_NAME_SYMBOL) < 0)
return -1;
*ni = DATABASE_NAME_SYMBOL;
diff --git a/nss/alias-lookup.c b/nss/alias-lookup.c
index ffd1552bad..8bb6aa50ff 100644
--- a/nss/alias-lookup.c
+++ b/nss/alias-lookup.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define DATABASE_NAME aliases
diff --git a/nss/bug17079.c b/nss/bug17079.c
index 5f358f815a..5b049b9865 100644
--- a/nss/bug17079.c
+++ b/nss/bug17079.c
@@ -1,5 +1,5 @@
/* Test for bug 17079: heap overflow in NSS with small buffers.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <nss.h>
diff --git a/nss/compat-lookup.c b/nss/compat-lookup.c
index f51e94a7d1..f897a34e69 100644
--- a/nss/compat-lookup.c
+++ b/nss/compat-lookup.c
@@ -1,5 +1,5 @@
/* Compatibility stubs of accidentally exported __nss_*_lookup functions.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+
+#include <nsswitch.h>
#include <shlib-compat.h>
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_27)
# include <errno.h>
-# include <nsswitch.h>
/* On i386, the function calling convention changed from the standard
ABI calling convention to three register parameters in glibc 2.8.
@@ -40,3 +41,30 @@ strong_alias (__nss_passwd_lookup, __nss_hosts_lookup)
compat_symbol (libc, __nss_hosts_lookup, __nss_hosts_lookup, GLIBC_2_0);
#endif /* SHLIB_COMPAT */
+
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_30)
+
+/* These functions were exported under a non-GLIBC_PRIVATE version,
+ even though it is not usable externally due to the service_user
+ type dependency. */
+
+int
+attribute_compat_text_section
+__nss_next (service_user **ni, const char *fct_name, void **fctp, int status,
+ int all_values)
+{
+ return -1;
+}
+compat_symbol (libc, __nss_next, __nss_next, GLIBC_2_0);
+
+int
+attribute_compat_text_section
+__nss_database_lookup (const char *database, const char *alternate_name,
+ const char *defconfig, service_user **ni)
+{
+ *ni = NULL;
+ return -1;
+}
+compat_symbol (libc, __nss_database_lookup, __nss_database_lookup, GLIBC_2_0);
+
+#endif /* SHLIB_COMPAT */
diff --git a/nss/databases.def b/nss/databases.def
index cad6181965..db294a4f96 100644
--- a/nss/databases.def
+++ b/nss/databases.def
@@ -1,5 +1,5 @@
/* List of all databases defined for the NSS in GNU C Library.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This list must be kept sorted!!! If any long name is added the
field size for it must be increases. */
diff --git a/nss/db-Makefile b/nss/db-Makefile
index 10a0014bd8..d45b5a2a82 100644
--- a/nss/db-Makefile
+++ b/nss/db-Makefile
@@ -1,5 +1,5 @@
# Makefile to (re-)generate db versions of system database files.
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2019 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
DATABASES = $(wildcard /etc/passwd /etc/group /etc/ethers /etc/protocols \
/etc/rpc /etc/services /etc/shadow /etc/gshadow \
diff --git a/nss/digits_dots.c b/nss/digits_dots.c
index 39bff38865..c10a6a67fa 100644
--- a/nss/digits_dots.c
+++ b/nss/digits_dots.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by H.J. Lu <hjl@gnu.ai.mit.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
@@ -29,7 +29,6 @@
#include "nsswitch.h"
#ifdef USE_NSCD
-# define inet_aton __inet_aton
# include <nscd/nscd_proto.h>
#endif
@@ -160,7 +159,7 @@ __nss_hostname_digits_dots_context (struct resolv_context *ctx,
255.255.255.255? The test below will succeed
spuriously... ??? */
if (af == AF_INET)
- ok = __inet_aton (name, (struct in_addr *) host_addr);
+ ok = __inet_aton_exact (name, (struct in_addr *) host_addr);
else
{
assert (af == AF_INET6);
diff --git a/nss/ethers-lookup.c b/nss/ethers-lookup.c
index 51e0e630af..79fd85cebc 100644
--- a/nss/ethers-lookup.c
+++ b/nss/ethers-lookup.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define DATABASE_NAME ethers
diff --git a/nss/function.def b/nss/function.def
index 1a38d5a852..3d46b0e8b9 100644
--- a/nss/function.def
+++ b/nss/function.def
@@ -1,5 +1,5 @@
/* List of functions defined for static NSS in GNU C Library.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
This is a minimal config. Only services `files' and `dns' are supported.
diff --git a/nss/getXXbyYY.c b/nss/getXXbyYY.c
index cad56b0594..7a54190834 100644
--- a/nss/getXXbyYY.c
+++ b/nss/getXXbyYY.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
diff --git a/nss/getXXbyYY_r.c b/nss/getXXbyYY_r.c
index 5ebf36cd68..2583f34d2a 100644
--- a/nss/getXXbyYY_r.c
+++ b/nss/getXXbyYY_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <atomic.h>
diff --git a/nss/getXXent.c b/nss/getXXent.c
index ced7f23914..c3ccc72db1 100644
--- a/nss/getXXent.c
+++ b/nss/getXXent.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <libc-lock.h>
diff --git a/nss/getXXent_r.c b/nss/getXXent_r.c
index 747648b819..c62702dda2 100644
--- a/nss/getXXent_r.c
+++ b/nss/getXXent_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <libc-lock.h>
diff --git a/nss/getent.c b/nss/getent.c
index 92ade41d75..e2e835798d 100644
--- a/nss/getent.c
+++ b/nss/getent.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (c) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* getent: get entries from administrative database. */
@@ -40,6 +40,7 @@
#include <netinet/in.h>
#include <sys/socket.h>
#include <scratch_buffer.h>
+#include <inttypes.h>
/* Get libc version number. */
#include <version.h>
@@ -88,7 +89,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\
-"), "2018");
+"), "2019");
fprintf (stream, gettext ("Written by %s.\n"), "Thorsten Kukuk");
}
@@ -393,15 +394,34 @@ ahosts_keys_int (int af, int xflags, int number, char *key[])
sockstr = sockbuf;
}
+ /* Three digits per byte, plus '%' and null terminator. */
+ char scope[3 * sizeof (uint32_t) + 2];
+ struct sockaddr_in6 *addr6
+ = (struct sockaddr_in6 *) runp->ai_addr;
+ if (runp->ai_family != AF_INET6 || addr6->sin6_scope_id == 0)
+ /* No scope ID present. */
+ scope[0] = '\0';
+ else
+ snprintf (scope, sizeof (scope), "%%%" PRIu32,
+ addr6->sin6_scope_id);
+
char buf[INET6_ADDRSTRLEN];
- printf ("%-15s %-6s %s\n",
- inet_ntop (runp->ai_family,
- runp->ai_family == AF_INET
- ? (void *) &((struct sockaddr_in *) runp->ai_addr)->sin_addr
- : (void *) &((struct sockaddr_in6 *) runp->ai_addr)->sin6_addr,
- buf, sizeof (buf)),
- sockstr,
- runp->ai_canonname ?: "");
+ if (inet_ntop (runp->ai_family,
+ runp->ai_family == AF_INET
+ ? (void *) &((struct sockaddr_in *) runp->ai_addr)->sin_addr
+ : &addr6->sin6_addr,
+ buf, sizeof (buf)) == NULL)
+ {
+ strcpy (buf, "<invalid>");
+ scope[0] = '\0';
+ }
+
+ int pad = 15 - strlen (buf) - strlen (scope);
+ if (pad < 0)
+ pad = 0;
+
+ printf ("%s%-*s %-6s %s\n",
+ buf, pad, scope, sockstr, runp->ai_canonname ?: "");
runp = runp->ai_next;
}
diff --git a/nss/getnssent.c b/nss/getnssent.c
index ee29b511f1..9377f13f1f 100644
--- a/nss/getnssent.c
+++ b/nss/getnssent.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdlib.h>
diff --git a/nss/getnssent_r.c b/nss/getnssent_r.c
index fbfdf9f4e2..68dff7e92c 100644
--- a/nss/getnssent_r.c
+++ b/nss/getnssent_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <netdb.h>
diff --git a/nss/grp-lookup.c b/nss/grp-lookup.c
index ed6034833e..ddb9b2d615 100644
--- a/nss/grp-lookup.c
+++ b/nss/grp-lookup.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <config.h>
diff --git a/nss/hosts-lookup.c b/nss/hosts-lookup.c
index 64993b04da..a71726f5e0 100644
--- a/nss/hosts-lookup.c
+++ b/nss/hosts-lookup.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define DATABASE_NAME hosts
#define DEFAULT_CONFIG "dns [!UNAVAIL=return] files"
diff --git a/nss/key-lookup.c b/nss/key-lookup.c
index be724d73b8..a8fda7cd36 100644
--- a/nss/key-lookup.c
+++ b/nss/key-lookup.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define DATABASE_NAME publickey
#define DEFAULT_CONFIG "nis nisplus"
diff --git a/nss/makedb.c b/nss/makedb.c
index 65af1ce49e..d8681e7233 100644
--- a/nss/makedb.c
+++ b/nss/makedb.c
@@ -1,5 +1,5 @@
/* Create simple DB database from textual input.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <argp.h>
#include <assert.h>
@@ -386,7 +386,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\
-"), "2018");
+"), "2019");
fprintf (stream, gettext ("Written by %s.\n"), "Ulrich Drepper");
}
diff --git a/nss/netgrp-lookup.c b/nss/netgrp-lookup.c
index be1cab0647..279a0b3b27 100644
--- a/nss/netgrp-lookup.c
+++ b/nss/netgrp-lookup.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define DATABASE_NAME netgroup
diff --git a/nss/network-lookup.c b/nss/network-lookup.c
index a26fd4c908..80e3adfb19 100644
--- a/nss/network-lookup.c
+++ b/nss/network-lookup.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define DATABASE_NAME networks
#define DEFAULT_CONFIG "dns [!UNAVAIL=return] files"
diff --git a/nss/nss.h b/nss/nss.h
index 2c3e05d5e6..4e80965275 100644
--- a/nss/nss.h
+++ b/nss/nss.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define interface to NSS. This is meant for the interface functions
and for implementors of new services. */
diff --git a/nss/nss_compat/compat-grp.c b/nss/nss_compat/compat-grp.c
index 0442e75fe3..27ac487566 100644
--- a/nss/nss_compat/compat-grp.c
+++ b/nss/nss_compat/compat-grp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <errno.h>
@@ -78,7 +78,7 @@ static bool in_blacklist (const char *, int, ent_t *);
static void
init_nss_interface (void)
{
- if (__nss_database_lookup ("group_compat", NULL, "nis", &ni) >= 0)
+ if (__nss_database_lookup2 ("group_compat", NULL, "nis", &ni) >= 0)
{
nss_setgrent = __nss_lookup_function (ni, "setgrent");
nss_getgrnam_r = __nss_lookup_function (ni, "getgrnam_r");
@@ -196,8 +196,8 @@ getgrent_next_nss (struct group *result, ent_t *ent, char *buffer,
{
enum nss_status status;
- if ((status = nss_getgrent_r (result, buffer, buflen, errnop)) !=
- NSS_STATUS_SUCCESS)
+ if ((status = nss_getgrent_r (result, buffer, buflen, errnop))
+ != NSS_STATUS_SUCCESS)
return status;
}
while (in_blacklist (result->gr_name, strlen (result->gr_name), ent));
@@ -266,11 +266,11 @@ getgrent_next_file (struct group *result, ent_t *ent,
while (isspace (*p))
++p;
}
- while (*p == '\0' || *p == '#' || /* Ignore empty and comment lines. */
+ while (*p == '\0' || *p == '#' /* Ignore empty and comment lines. */
/* Parse the line. If it is invalid, loop to
get the next line of the file to parse. */
- !(parse_res = _nss_files_parse_grent (p, result, data, buflen,
- errnop)));
+ || !(parse_res = _nss_files_parse_grent (p, result, data, buflen,
+ errnop)));
if (__glibc_unlikely (parse_res == -1))
/* The parser ran out of space. */
@@ -399,11 +399,11 @@ internal_getgrnam_r (const char *name, struct group *result, ent_t *ent,
while (isspace (*p))
++p;
}
- while (*p == '\0' || *p == '#' || /* Ignore empty and comment lines. */
+ while (*p == '\0' || *p == '#' /* Ignore empty and comment lines. */
/* Parse the line. If it is invalid, loop to
get the next line of the file to parse. */
- !(parse_res = _nss_files_parse_grent (p, result, data, buflen,
- errnop)));
+ || !(parse_res = _nss_files_parse_grent (p, result, data, buflen,
+ errnop)));
if (__glibc_unlikely (parse_res == -1))
/* The parser ran out of space. */
@@ -530,11 +530,11 @@ internal_getgrgid_r (gid_t gid, struct group *result, ent_t *ent,
while (isspace (*p))
++p;
}
- while (*p == '\0' || *p == '#' || /* Ignore empty and comment lines. */
+ while (*p == '\0' || *p == '#' /* Ignore empty and comment lines. */
/* Parse the line. If it is invalid, loop to
get the next line of the file to parse. */
- !(parse_res = _nss_files_parse_grent (p, result, data, buflen,
- errnop)));
+ || !(parse_res = _nss_files_parse_grent (p, result, data, buflen,
+ errnop)));
if (__glibc_unlikely (parse_res == -1))
/* The parser ran out of space. */
diff --git a/nss/nss_compat/compat-initgroups.c b/nss/nss_compat/compat-initgroups.c
index 540eee863c..6c8c1a171f 100644
--- a/nss/nss_compat/compat-initgroups.c
+++ b/nss/nss_compat/compat-initgroups.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <errno.h>
@@ -89,7 +89,7 @@ init_nss_interface (void)
/* Retest. */
if (ni == NULL
- && __nss_database_lookup ("group_compat", NULL, "nis", &ni) >= 0)
+ && __nss_database_lookup2 ("group_compat", NULL, "nis", &ni) >= 0)
{
nss_initgroups_dyn = __nss_lookup_function (ni, "initgroups_dyn");
nss_getgrnam_r = __nss_lookup_function (ni, "getgrnam_r");
@@ -334,8 +334,8 @@ getgrent_next_nss (ent_t *ent, char *buffer, size_t buflen, const char *user,
iter:
do
{
- if ((status = nss_getgrent_r (&grpbuf, buffer, buflen, errnop)) !=
- NSS_STATUS_SUCCESS)
+ if ((status = nss_getgrent_r (&grpbuf, buffer, buflen, errnop))
+ != NSS_STATUS_SUCCESS)
break;
}
while (in_blacklist (grpbuf.gr_name, strlen (grpbuf.gr_name), ent));
@@ -394,11 +394,11 @@ internal_getgrent_r (ent_t *ent, char *buffer, size_t buflen, const char *user,
while (isspace (*p))
++p;
}
- while (*p == '\0' || *p == '#' || /* Ignore empty and comment lines. */
+ while (*p == '\0' || *p == '#' /* Ignore empty and comment lines. */
/* Parse the line. If it is invalid, loop to
get the next line of the file to parse. */
- !(parse_res = _nss_files_parse_grent (p, &grpbuf, data, buflen,
- errnop)));
+ || !(parse_res = _nss_files_parse_grent (p, &grpbuf, data, buflen,
+ errnop)));
if (__glibc_unlikely (parse_res == -1))
/* The parser ran out of space. */
diff --git a/nss/nss_compat/compat-pwd.c b/nss/nss_compat/compat-pwd.c
index 27d947cc82..4762aa022b 100644
--- a/nss/nss_compat/compat-pwd.c
+++ b/nss/nss_compat/compat-pwd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <errno.h>
@@ -88,7 +88,7 @@ static bool in_blacklist (const char *, int, ent_t *);
static void
init_nss_interface (void)
{
- if (__nss_database_lookup ("passwd_compat", NULL, "nis", &ni) >= 0)
+ if (__nss_database_lookup2 ("passwd_compat", NULL, "nis", &ni) >= 0)
{
nss_setpwent = __nss_lookup_function (ni, "setpwent");
nss_getpwnam_r = __nss_lookup_function (ni, "getpwnam_r");
@@ -138,8 +138,8 @@ copy_pwd_changes (struct passwd *dest, struct passwd *src,
{
if (buffer == NULL)
dest->pw_passwd = strdup (src->pw_passwd);
- else if (dest->pw_passwd &&
- strlen (dest->pw_passwd) >= strlen (src->pw_passwd))
+ else if (dest->pw_passwd
+ && strlen (dest->pw_passwd) >= strlen (src->pw_passwd))
strcpy (dest->pw_passwd, src->pw_passwd);
else
{
@@ -154,8 +154,8 @@ copy_pwd_changes (struct passwd *dest, struct passwd *src,
{
if (buffer == NULL)
dest->pw_gecos = strdup (src->pw_gecos);
- else if (dest->pw_gecos &&
- strlen (dest->pw_gecos) >= strlen (src->pw_gecos))
+ else if (dest->pw_gecos
+ && strlen (dest->pw_gecos) >= strlen (src->pw_gecos))
strcpy (dest->pw_gecos, src->pw_gecos);
else
{
@@ -184,8 +184,8 @@ copy_pwd_changes (struct passwd *dest, struct passwd *src,
{
if (buffer == NULL)
dest->pw_shell = strdup (src->pw_shell);
- else if (dest->pw_shell &&
- strlen (dest->pw_shell) >= strlen (src->pw_shell))
+ else if (dest->pw_shell
+ && strlen (dest->pw_shell) >= strlen (src->pw_shell))
strcpy (dest->pw_shell, src->pw_shell);
else
{
@@ -370,8 +370,8 @@ getpwent_next_nss_netgr (const char *name, struct passwd *result, ent_t *ent,
p2 = buffer + (buflen - p2len);
buflen -= p2len;
- if (nss_getpwnam_r (user, result, buffer, buflen, errnop) !=
- NSS_STATUS_SUCCESS)
+ if (nss_getpwnam_r (user, result, buffer, buflen, errnop)
+ != NSS_STATUS_SUCCESS)
continue;
if (!in_blacklist (result->pw_name, strlen (result->pw_name), ent))
@@ -418,8 +418,8 @@ getpwent_next_nss (struct passwd *result, ent_t *ent, char *buffer,
do
{
- if ((status = nss_getpwent_r (result, buffer, buflen, errnop)) !=
- NSS_STATUS_SUCCESS)
+ if ((status = nss_getpwent_r (result, buffer, buflen, errnop))
+ != NSS_STATUS_SUCCESS)
return status;
}
while (in_blacklist (result->pw_name, strlen (result->pw_name), ent));
@@ -506,11 +506,11 @@ getpwent_next_file (struct passwd *result, ent_t *ent,
while (isspace (*p))
++p;
}
- while (*p == '\0' || *p == '#' || /* Ignore empty and comment lines. */
+ while (*p == '\0' || *p == '#' /* Ignore empty and comment lines. */
/* Parse the line. If it is invalid, loop to
get the next line of the file to parse. */
- !(parse_res = _nss_files_parse_pwent (p, result, data, buflen,
- errnop)));
+ || !(parse_res = _nss_files_parse_pwent (p, result, data, buflen,
+ errnop)));
if (__glibc_unlikely (parse_res == -1))
/* The parser ran out of space. */
@@ -706,11 +706,11 @@ internal_getpwnam_r (const char *name, struct passwd *result, ent_t *ent,
while (isspace (*p))
++p;
}
- while (*p == '\0' || *p == '#' || /* Ignore empty and comment lines. */
+ while (*p == '\0' || *p == '#' /* Ignore empty and comment lines. */
/* Parse the line. If it is invalid, loop to
get the next line of the file to parse. */
- !(parse_res = _nss_files_parse_pwent (p, result, data, buflen,
- errnop)));
+ || !(parse_res = _nss_files_parse_pwent (p, result, data, buflen,
+ errnop)));
if (__glibc_unlikely (parse_res == -1))
/* The parser ran out of space. */
@@ -912,11 +912,11 @@ internal_getpwuid_r (uid_t uid, struct passwd *result, ent_t *ent,
while (isspace (*p))
++p;
}
- while (*p == '\0' || *p == '#' || /* Ignore empty and comment lines. */
+ while (*p == '\0' || *p == '#' /* Ignore empty and comment lines. */
/* Parse the line. If it is invalid, loop to
get the next line of the file to parse. */
- !(parse_res = _nss_files_parse_pwent (p, result, data, buflen,
- errnop)));
+ || !(parse_res = _nss_files_parse_pwent (p, result, data, buflen,
+ errnop)));
if (__glibc_unlikely (parse_res == -1))
/* The parser ran out of space. */
@@ -943,8 +943,8 @@ internal_getpwuid_r (uid_t uid, struct passwd *result, ent_t *ent,
memcpy (buf, &result->pw_name[2], len);
status = getpwuid_plususer (uid, result, buffer, buflen, errnop);
- if (status == NSS_STATUS_SUCCESS &&
- innetgr (buf, NULL, result->pw_name, NULL))
+ if (status == NSS_STATUS_SUCCESS
+ && innetgr (buf, NULL, result->pw_name, NULL))
return NSS_STATUS_NOTFOUND;
continue;
@@ -990,8 +990,8 @@ internal_getpwuid_r (uid_t uid, struct passwd *result, ent_t *ent,
memcpy (buf, &result->pw_name[1], len);
status = getpwuid_plususer (uid, result, buffer, buflen, errnop);
- if (status == NSS_STATUS_SUCCESS &&
- innetgr (buf, NULL, result->pw_name, NULL))
+ if (status == NSS_STATUS_SUCCESS
+ && innetgr (buf, NULL, result->pw_name, NULL))
return NSS_STATUS_NOTFOUND;
continue;
}
diff --git a/nss/nss_compat/compat-spwd.c b/nss/nss_compat/compat-spwd.c
index ce2a02e18b..7d27860b60 100644
--- a/nss/nss_compat/compat-spwd.c
+++ b/nss/nss_compat/compat-spwd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <errno.h>
@@ -85,8 +85,8 @@ static bool in_blacklist (const char *, int, ent_t *);
static void
init_nss_interface (void)
{
- if (__nss_database_lookup ("shadow_compat", "passwd_compat",
- "nis", &ni) >= 0)
+ if (__nss_database_lookup2 ("shadow_compat", "passwd_compat",
+ "nis", &ni) >= 0)
{
nss_setspent = __nss_lookup_function (ni, "setspent");
nss_getspnam_r = __nss_lookup_function (ni, "getspnam_r");
@@ -127,8 +127,8 @@ copy_spwd_changes (struct spwd *dest, struct spwd *src,
{
if (buffer == NULL)
dest->sp_pwdp = strdup (src->sp_pwdp);
- else if (dest->sp_pwdp &&
- strlen (dest->sp_pwdp) >= strlen (src->sp_pwdp))
+ else if (dest->sp_pwdp
+ && strlen (dest->sp_pwdp) >= strlen (src->sp_pwdp))
strcpy (dest->sp_pwdp, src->sp_pwdp);
else
{
@@ -330,8 +330,8 @@ getspent_next_nss_netgr (const char *name, struct spwd *result, ent_t *ent,
p2 = buffer + (buflen - p2len);
buflen -= p2len;
- if (nss_getspnam_r (user, result, buffer, buflen, errnop) !=
- NSS_STATUS_SUCCESS)
+ if (nss_getspnam_r (user, result, buffer, buflen, errnop)
+ != NSS_STATUS_SUCCESS)
continue;
if (!in_blacklist (result->sp_namp, strlen (result->sp_namp), ent))
@@ -369,8 +369,8 @@ getspent_next_nss (struct spwd *result, ent_t *ent,
buflen -= p2len;
do
{
- if ((status = nss_getspent_r (result, buffer, buflen, errnop)) !=
- NSS_STATUS_SUCCESS)
+ if ((status = nss_getspent_r (result, buffer, buflen, errnop))
+ != NSS_STATUS_SUCCESS)
return status;
}
while (in_blacklist (result->sp_namp, strlen (result->sp_namp), ent));
@@ -663,11 +663,11 @@ internal_getspnam_r (const char *name, struct spwd *result, ent_t *ent,
while (isspace (*p))
++p;
}
- while (*p == '\0' || *p == '#' || /* Ignore empty and comment lines. */
+ while (*p == '\0' || *p == '#' /* Ignore empty and comment lines. */
/* Parse the line. If it is invalid, loop to
get the next line of the file to parse. */
- !(parse_res = _nss_files_parse_spent (p, result, data, buflen,
- errnop)));
+ || !(parse_res = _nss_files_parse_spent (p, result, data, buflen,
+ errnop)));
if (__glibc_unlikely (parse_res == -1))
/* The parser ran out of space. */
diff --git a/nss/nss_compat/nisdomain.c b/nss/nss_compat/nisdomain.c
index facce925b3..96f12fee77 100644
--- a/nss/nss_compat/nisdomain.c
+++ b/nss/nss_compat/nisdomain.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2017-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include <string.h>
diff --git a/nss/nss_compat/nisdomain.h b/nss/nss_compat/nisdomain.h
index c1476df02b..01f0b6588c 100644
--- a/nss/nss_compat/nisdomain.h
+++ b/nss/nss_compat/nisdomain.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2017-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Set OUTDOMAIN to a pointer to the current NIS domain name, or NULL if
not set. Return zero on success, an error number on failure. */
diff --git a/nss/nss_db/db-XXX.c b/nss/nss_db/db-XXX.c
index 6a03050baf..13349bb4c5 100644
--- a/nss/nss_db/db-XXX.c
+++ b/nss/nss_db/db-XXX.c
@@ -1,5 +1,5 @@
/* Common code for DB-based databases in nss_db module.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <fcntl.h>
diff --git a/nss/nss_db/db-init.c b/nss/nss_db/db-init.c
index f75be3de0d..38dcc9a5cc 100644
--- a/nss/nss_db/db-init.c
+++ b/nss/nss_db/db-init.c
@@ -1,5 +1,5 @@
/* Initialization in nss_db module.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ 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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifdef USE_NSCD
diff --git a/nss/nss_db/db-initgroups.c b/nss/nss_db/db-initgroups.c
index 5e15689df2..320eb485a5 100644
--- a/nss/nss_db/db-initgroups.c
+++ b/nss/nss_db/db-initgroups.c
@@ -1,5 +1,5 @@
/* Initgroups handling in nss_db module.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
- not, see <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <errno.h>
diff --git a/nss/nss_db/db-netgrp.c b/nss/nss_db/db-netgrp.c
index 2ac5ff7bb7..18858cd9d7 100644
--- a/nss/nss_db/db-netgrp.c
+++ b/nss/nss_db/db-netgrp.c
@@ -1,5 +1,5 @@
/* Netgroup file parser in nss_db modules.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <dlfcn.h>
diff --git a/nss/nss_db/db-open.c b/nss/nss_db/db-open.c
index 8538f8e961..a60bed97de 100644
--- a/nss/nss_db/db-open.c
+++ b/nss/nss_db/db-open.c
@@ -1,5 +1,5 @@
/* Common database routines for nss_db.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
@@ -63,5 +63,9 @@ internal_setent (const char *file, struct nss_db_map *mapping)
void
internal_endent (struct nss_db_map *mapping)
{
- munmap (mapping->header, mapping->len);
+ if (mapping->header != NULL)
+ {
+ munmap (mapping->header, mapping->len);
+ mapping->header = NULL;
+ }
}
diff --git a/nss/nss_db/nss_db.h b/nss/nss_db/nss_db.h
index ca0701c8c6..06ab096335 100644
--- a/nss/nss_db/nss_db.h
+++ b/nss/nss_db/nss_db.h
@@ -1,5 +1,5 @@
/* Common database open/close routines for nss_db.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _NSS_DB_H
#define _NSS_DB_H 1
diff --git a/nss/nss_files/files-XXX.c b/nss/nss_files/files-XXX.c
index 60d1544a96..3230be034e 100644
--- a/nss/nss_files/files-XXX.c
+++ b/nss/nss_files/files-XXX.c
@@ -1,5 +1,5 @@
/* Common code for file-based databases in nss_files module.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <ctype.h>
diff --git a/nss/nss_files/files-alias.c b/nss/nss_files/files-alias.c
index cfd34b66b9..2dcbe8f428 100644
--- a/nss/nss_files/files-alias.c
+++ b/nss/nss_files/files-alias.c
@@ -1,5 +1,5 @@
/* Mail alias file parser in nss_files module.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <aliases.h>
#include <ctype.h>
@@ -221,6 +221,13 @@ get_next_alias (FILE *stream, const char *match, struct aliasent *result,
{
while (! feof_unlocked (listfile))
{
+ if (room_left < 2)
+ {
+ free (old_line);
+ fclose (listfile);
+ goto no_more_room;
+ }
+
first_unused[room_left - 1] = '\xff';
line = fgets_unlocked (first_unused, room_left,
listfile);
@@ -229,6 +236,7 @@ get_next_alias (FILE *stream, const char *match, struct aliasent *result,
if (first_unused[room_left - 1] != '\xff')
{
free (old_line);
+ fclose (listfile);
goto no_more_room;
}
@@ -256,6 +264,7 @@ get_next_alias (FILE *stream, const char *match, struct aliasent *result,
+ __alignof__ (char *)))
{
free (old_line);
+ fclose (listfile);
goto no_more_room;
}
room_left -= ((first_unused - cp)
@@ -324,6 +333,16 @@ get_next_alias (FILE *stream, const char *match, struct aliasent *result,
can be ignored. */
first_unused[room_left - 1] = '\xff';
line = fgets_unlocked (first_unused, room_left, stream);
+ if (line == NULL)
+ {
+ /* Continuation line without any data and
+ without a newline at the end. Treat it as an
+ empty line and retry, reaching EOF once
+ more. */
+ line = first_unused;
+ *line = '\0';
+ continue;
+ }
if (first_unused[room_left - 1] != '\xff')
goto no_more_room;
cp = strpbrk (line, "#\n");
diff --git a/nss/nss_files/files-ethers.c b/nss/nss_files/files-ethers.c
index 2fdbc37649..951925d196 100644
--- a/nss/nss_files/files-ethers.c
+++ b/nss/nss_files/files-ethers.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <netinet/ether.h>
diff --git a/nss/nss_files/files-grp.c b/nss/nss_files/files-grp.c
index 9a20b15495..f3b11235f8 100644
--- a/nss/nss_files/files-grp.c
+++ b/nss/nss_files/files-grp.c
@@ -1,5 +1,5 @@
/* Group file parser in nss_files module.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <grp.h>
diff --git a/nss/nss_files/files-hosts.c b/nss/nss_files/files-hosts.c
index 87c0af8cfe..0b11d71c89 100644
--- a/nss/nss_files/files-hosts.c
+++ b/nss/nss_files/files-hosts.c
@@ -1,5 +1,5 @@
/* Hosts file parser in nss_files module.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <netinet/in.h>
@@ -27,7 +27,6 @@
/* Get implementation for some internal functions. */
-#include "../resolv/mapv4v6addr.h"
#include "../resolv/res_hconf.h"
@@ -35,8 +34,8 @@
#define DATABASE "hosts"
#define NEED_H_ERRNO
-#define EXTRA_ARGS , af, flags
-#define EXTRA_ARGS_DECL , int af, int flags
+#define EXTRA_ARGS , af
+#define EXTRA_ARGS_DECL , int af
#define ENTDATA hostent_data
struct hostent_data
@@ -61,12 +60,7 @@ LINE_PARSER
af = af == AF_UNSPEC ? AF_INET : af;
else
{
- if (af == AF_INET6 && (flags & AI_V4MAPPED) != 0
- && inet_pton (AF_INET, addr, entdata->host_addr) > 0)
- map_v4v6_address ((char *) entdata->host_addr,
- (char *) entdata->host_addr);
- else if (af == AF_INET
- && inet_pton (AF_INET6, addr, entdata->host_addr) > 0)
+ if (af == AF_INET && inet_pton (AF_INET6, addr, entdata->host_addr) > 0)
{
if (IN6_IS_ADDR_V4MAPPED (entdata->host_addr))
memcpy (entdata->host_addr, entdata->host_addr + 12, INADDRSZ);
@@ -99,16 +93,13 @@ LINE_PARSER
STRING_FIELD (result->h_name, isspace, 1);
})
-#define EXTRA_ARGS_VALUE \
- , (res_use_inet6 () ? AF_INET6 : AF_INET), \
- (res_use_inet6 () ? AI_V4MAPPED : 0)
+#define EXTRA_ARGS_VALUE , AF_INET
#include "files-XXX.c"
#undef EXTRA_ARGS_VALUE
/* We only need to consider IPv4 mapped addresses if the input to the
gethostbyaddr() function is an IPv6 address. */
-#define EXTRA_ARGS_VALUE \
- , af, (len == IN6ADDRSZ ? AI_V4MAPPED : 0)
+#define EXTRA_ARGS_VALUE , af
DB_LOOKUP (hostbyaddr, ,,,
{
if (result->h_length == (int) len
@@ -126,7 +117,7 @@ DB_LOOKUP (hostbyaddr, ,,,
static enum nss_status
gethostbyname3_multi (FILE * stream, const char *name, int af,
struct hostent *result, char *buffer, size_t buflen,
- int *errnop, int *herrnop, int flags)
+ int *errnop, int *herrnop)
{
assert (af == AF_INET || af == AF_INET6);
@@ -160,8 +151,7 @@ gethostbyname3_multi (FILE * stream, const char *name, int af,
while (true)
{
status = internal_getent (stream, &tmp_result_buf, tmp_buffer.data,
- tmp_buffer.length, errnop, herrnop, af,
- flags);
+ tmp_buffer.length, errnop, herrnop, af);
/* Enlarge the buffer if necessary. */
if (status == NSS_STATUS_TRYAGAIN && *herrnop == NETDB_INTERNAL
&& *errnop == ERANGE)
@@ -345,12 +335,8 @@ _nss_files_gethostbyname3_r (const char *name, int af, struct hostent *result,
if (status == NSS_STATUS_SUCCESS)
{
- /* XXX Is using _res to determine whether we want to convert IPv4
- addresses to IPv6 addresses really the right thing to do? */
- int flags = (res_use_inet6 () ? AI_V4MAPPED : 0);
-
while ((status = internal_getent (stream, result, buffer, buflen, errnop,
- herrnop, af, flags))
+ herrnop, af))
== NSS_STATUS_SUCCESS)
{
LOOKUP_NAME_CASE (h_name, h_aliases)
@@ -359,7 +345,7 @@ _nss_files_gethostbyname3_r (const char *name, int af, struct hostent *result,
if (status == NSS_STATUS_SUCCESS
&& _res_hconf.flags & HCONF_FLAG_MULTI)
status = gethostbyname3_multi
- (stream, name, af, result, buffer, buflen, errnop, herrnop, flags);
+ (stream, name, af, result, buffer, buflen, errnop, herrnop);
internal_endent (&stream);
}
@@ -375,9 +361,7 @@ _nss_files_gethostbyname_r (const char *name, struct hostent *result,
char *buffer, size_t buflen, int *errnop,
int *herrnop)
{
- int af = (res_use_inet6 () ? AF_INET6 : AF_INET);
-
- return _nss_files_gethostbyname3_r (name, af, result, buffer, buflen,
+ return _nss_files_gethostbyname3_r (name, AF_INET, result, buffer, buflen,
errnop, herrnop, NULL, NULL);
}
@@ -414,7 +398,7 @@ _nss_files_gethostbyname4_r (const char *name, struct gaih_addrtuple **pat,
struct hostent result;
status = internal_getent (stream, &result, buffer, buflen, errnop,
- herrnop, AF_UNSPEC, 0);
+ herrnop, AF_UNSPEC);
if (status != NSS_STATUS_SUCCESS)
break;
diff --git a/nss/nss_files/files-init.c b/nss/nss_files/files-init.c
index 3efe26ab66..42c9cd38a5 100644
--- a/nss/nss_files/files-init.c
+++ b/nss/nss_files/files-init.c
@@ -1,5 +1,5 @@
/* Initialization in nss_files module.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ 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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifdef USE_NSCD
diff --git a/nss/nss_files/files-initgroups.c b/nss/nss_files/files-initgroups.c
index b441d8345f..18b972c05c 100644
--- a/nss/nss_files/files-initgroups.c
+++ b/nss/nss_files/files-initgroups.c
@@ -1,5 +1,5 @@
/* Initgroups handling in nss_files module.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ 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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <grp.h>
diff --git a/nss/nss_files/files-key.c b/nss/nss_files/files-key.c
index 44d4348a80..be2dc90356 100644
--- a/nss/nss_files/files-key.c
+++ b/nss/nss_files/files-key.c
@@ -1,5 +1,5 @@
/* Public key file parser in nss_files module.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <errno.h>
diff --git a/nss/nss_files/files-netgrp.c b/nss/nss_files/files-netgrp.c
index f910ba2f8d..e21fcca4ca 100644
--- a/nss/nss_files/files-netgrp.c
+++ b/nss/nss_files/files-netgrp.c
@@ -1,5 +1,5 @@
/* Netgroup file parser in nss_files modules.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <errno.h>
diff --git a/nss/nss_files/files-network.c b/nss/nss_files/files-network.c
index 2a8605eb5b..bccda49f4a 100644
--- a/nss/nss_files/files-network.c
+++ b/nss/nss_files/files-network.c
@@ -1,5 +1,5 @@
/* Networks file parser in nss_files module.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <netinet/in.h>
#include <arpa/inet.h>
diff --git a/nss/nss_files/files-parse.c b/nss/nss_files/files-parse.c
index 97f5167d83..fa249d7544 100644
--- a/nss/nss_files/files-parse.c
+++ b/nss/nss_files/files-parse.c
@@ -1,5 +1,5 @@
/* Common code for file-based database parsers in nss_files module.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <errno.h>
diff --git a/nss/nss_files/files-proto.c b/nss/nss_files/files-proto.c
index 19316a0418..dd4bbbe0b4 100644
--- a/nss/nss_files/files-proto.c
+++ b/nss/nss_files/files-proto.c
@@ -1,5 +1,5 @@
/* Protocols file parser in nss_files module.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <netdb.h>
diff --git a/nss/nss_files/files-pwd.c b/nss/nss_files/files-pwd.c
index 1648fc04d9..3cd2ba815c 100644
--- a/nss/nss_files/files-pwd.c
+++ b/nss/nss_files/files-pwd.c
@@ -1,5 +1,5 @@
/* User file parser in nss_files module.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pwd.h>
diff --git a/nss/nss_files/files-rpc.c b/nss/nss_files/files-rpc.c
index f162d469f1..760ec4b193 100644
--- a/nss/nss_files/files-rpc.c
+++ b/nss/nss_files/files-rpc.c
@@ -1,5 +1,5 @@
/* SunRPC program number file parser in nss_files module.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <rpc/netdb.h>
diff --git a/nss/nss_files/files-service.c b/nss/nss_files/files-service.c
index 5ec79a2770..8e2544a4c7 100644
--- a/nss/nss_files/files-service.c
+++ b/nss/nss_files/files-service.c
@@ -1,5 +1,5 @@
/* Services file parser in nss_files module.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <netinet/in.h>
#include <netdb.h>
diff --git a/nss/nss_files/files-sgrp.c b/nss/nss_files/files-sgrp.c
index c4af2bd2fa..8f00f8f2ca 100644
--- a/nss/nss_files/files-sgrp.c
+++ b/nss/nss_files/files-sgrp.c
@@ -1,5 +1,5 @@
/* User file parser in nss_files module.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <gshadow.h>
diff --git a/nss/nss_files/files-spwd.c b/nss/nss_files/files-spwd.c
index 5012cd969e..1b64072182 100644
--- a/nss/nss_files/files-spwd.c
+++ b/nss/nss_files/files-spwd.c
@@ -1,5 +1,5 @@
/* User file parser in nss_files module.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <shadow.h>
diff --git a/nss/nss_hash.c b/nss/nss_hash.c
index c7de32a68d..a67ca6262a 100644
--- a/nss/nss_hash.c
+++ b/nss/nss_hash.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (c) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <nss.h>
diff --git a/nss/nss_test.h b/nss/nss_test.h
index 3cfec75eea..28e3ff58bb 100644
--- a/nss/nss_test.h
+++ b/nss/nss_test.h
@@ -1,5 +1,5 @@
/* Common code for NSS test cases.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* There are two (or more) NSS test modules named nss_test1,
diff --git a/nss/nss_test1.c b/nss/nss_test1.c
index 7abec29d1b..9a0242bf11 100644
--- a/nss/nss_test1.c
+++ b/nss/nss_test1.c
@@ -1,5 +1,5 @@
/* Template generic NSS service provider. See nss_test.h for usage.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <nss.h>
@@ -81,7 +81,7 @@ init(void)
return;
if (NAME(init_hook))
{
- memset (&t, 0, sizeof(t));
+ memset (&t, 0, sizeof (t));
NAME(init_hook)(&t);
if (t.pwd_table)
diff --git a/nss/nss_test2.c b/nss/nss_test2.c
index 5176c908fd..67d09c7e5f 100644
--- a/nss/nss_test2.c
+++ b/nss/nss_test2.c
@@ -1,5 +1,5 @@
/* Instance of a generic NSS service provider. See nss_test.h for usage.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define NAME(x) NAME_(x,test2)
#include "nss_test1.c"
diff --git a/nss/nsswitch.c b/nss/nsswitch.c
index ee46f24424..681ac5b671 100644
--- a/nss/nsswitch.c
+++ b/nss/nsswitch.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <dlfcn.h>
@@ -115,8 +115,8 @@ static void (*nscd_init_cb) (size_t, struct traced_file *);
/* -1 == database not found
0 == database entry pointer stored */
int
-__nss_database_lookup (const char *database, const char *alternate_name,
- const char *defconfig, service_user **ni)
+__nss_database_lookup2 (const char *database, const char *alternate_name,
+ const char *defconfig, service_user **ni)
{
/* Prevent multiple threads to change the service table. */
__libc_lock_lock (lock);
@@ -185,7 +185,7 @@ __nss_database_lookup (const char *database, const char *alternate_name,
return *ni != NULL ? 0 : -1;
}
-libc_hidden_def (__nss_database_lookup)
+libc_hidden_def (__nss_database_lookup2)
/* -1 == not found
@@ -235,7 +235,7 @@ __nss_next2 (service_user **ni, const char *fct_name, const char *fct2_name,
/* This is really only for debugging. */
if (__builtin_expect (NSS_STATUS_TRYAGAIN > status
|| status > NSS_STATUS_RETURN, 0))
- __libc_fatal ("illegal status in __nss_next");
+ __libc_fatal ("Illegal status in __nss_next.\n");
if (nss_next_action (*ni, status) == NSS_ACTION_RETURN)
return 1;
@@ -260,16 +260,6 @@ __nss_next2 (service_user **ni, const char *fct_name, const char *fct2_name,
}
libc_hidden_def (__nss_next2)
-
-int
-attribute_compat_text_section
-__nss_next (service_user **ni, const char *fct_name, void **fctp, int status,
- int all_values)
-{
- return __nss_next2 (ni, fct_name, NULL, fctp, status, all_values);
-}
-
-
int
__nss_configure_lookup (const char *dbname, const char *service_line)
{
@@ -835,7 +825,7 @@ nss_load_all_libraries (const char *service, const char *def)
{
service_user *ni = NULL;
- if (__nss_database_lookup (service, NULL, def, &ni) == 0)
+ if (__nss_database_lookup2 (service, NULL, def, &ni) == 0)
while (ni != NULL)
{
nss_load_library (ni);
diff --git a/nss/nsswitch.conf b/nss/nsswitch.conf
index 39ca88bf51..4a6bcb1f7b 100644
--- a/nss/nsswitch.conf
+++ b/nss/nsswitch.conf
@@ -1,20 +1,70 @@
+#
# /etc/nsswitch.conf
#
-# Example configuration of GNU Name Service Switch functionality.
+# An example Name Service Switch config file. This file should be
+# sorted with the most-used services at the beginning.
#
+# Valid databases are: aliases, ethers, group, gshadow, hosts,
+# initgroups, netgroup, networks, passwd, protocols, publickey,
+# rpc, services, and shadow.
+#
+# Valid service provider entries include (in alphabetical order):
+#
+# compat Use /etc files plus *_compat pseudo-db
+# db Use the pre-processed /var/db files
+# dns Use DNS (Domain Name Service)
+# files Use the local files in /etc
+# hesiod Use Hesiod (DNS) for user lookups
+# nis Use NIS (NIS version 2), also called YP
+# nisplus Use NIS+ (NIS version 3)
+#
+# See `info libc 'NSS Basics'` for more information.
+#
+# Commonly used alternative service providers (may need installation):
+#
+# ldap Use LDAP directory server
+# myhostname Use systemd host names
+# mymachines Use systemd machine names
+# mdns*, mdns*_minimal Use Avahi mDNS/DNS-SD
+# resolve Use systemd resolved resolver
+# sss Use System Security Services Daemon (sssd)
+# systemd Use systemd for dynamic user option
+# winbind Use Samba winbind support
+# wins Use Samba wins support
+# wrapper Use wrapper module for testing
+#
+# Notes:
+#
+# 'sssd' performs its own 'files'-based caching, so it should generally
+# come before 'files'.
+#
+# WARNING: Running nscd with a secondary caching service like sssd may
+# lead to unexpected behaviour, especially with how long
+# entries are cached.
+#
+# Installation instructions:
+#
+# To use 'db', install the appropriate package(s) (provide 'makedb' and
+# libnss_db.so.*), and place the 'db' in front of 'files' for entries
+# you want to be looked up first in the databases, like this:
+#
+# passwd: db files
+# shadow: db files
+# group: db files
-passwd: db files
-group: db files
-initgroups: db [SUCCESS=continue] files
-shadow: db files
-gshadow: files
-
-hosts: files dns
-networks: files dns
-
-protocols: db files
-services: db files
-ethers: db files
-rpc: db files
-
-netgroup: db files
+# In alphabetical order. Re-order as required to optimize peformance.
+aliases: files
+ethers: files
+group: files
+gshadow: files
+hosts: files dns
+# Allow initgroups to default to the setting for group.
+# initgroups: files
+netgroup: files
+networks: files dns
+passwd: files
+protocols: files
+publickey: files
+rpc: files
+shadow: files
+services: files
diff --git a/nss/nsswitch.h b/nss/nsswitch.h
index 63573b9ebc..5ec47a87e2 100644
--- a/nss/nsswitch.h
+++ b/nss/nsswitch.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _NSSWITCH_H
#define _NSSWITCH_H 1
@@ -125,10 +125,10 @@ extern bool __nss_database_custom[NSS_DBSIDX_max] attribute_hidden;
If there is no configuration for this database in the file,
parse a service list from DEFCONFIG and use that. More
than one function can use the database. */
-extern int __nss_database_lookup (const char *database,
- const char *alternative_name,
- const char *defconfig, service_user **ni);
-libc_hidden_proto (__nss_database_lookup)
+extern int __nss_database_lookup2 (const char *database,
+ const char *alternative_name,
+ const char *defconfig, service_user **ni);
+libc_hidden_proto (__nss_database_lookup2)
/* Put first function with name FCT_NAME for SERVICE in FCTP. The
position is remembered in NI. The function returns a value < 0 if
diff --git a/nss/proto-lookup.c b/nss/proto-lookup.c
index 23a6e984e8..260d038fb9 100644
--- a/nss/proto-lookup.c
+++ b/nss/proto-lookup.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define DATABASE_NAME protocols
diff --git a/nss/pwd-lookup.c b/nss/pwd-lookup.c
index 83a53bdf7c..e89d1ec268 100644
--- a/nss/pwd-lookup.c
+++ b/nss/pwd-lookup.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <config.h>
diff --git a/nss/rewrite_field.c b/nss/rewrite_field.c
index 8a4662baa8..48f298f7d3 100644
--- a/nss/rewrite_field.c
+++ b/nss/rewrite_field.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2015-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <nss.h>
#include <string.h>
diff --git a/nss/rpc-lookup.c b/nss/rpc-lookup.c
index 2831ba5554..f182be12e0 100644
--- a/nss/rpc-lookup.c
+++ b/nss/rpc-lookup.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define DATABASE_NAME rpc
diff --git a/nss/service-lookup.c b/nss/service-lookup.c
index 1a1557af5d..0421ead30a 100644
--- a/nss/service-lookup.c
+++ b/nss/service-lookup.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define DATABASE_NAME services
diff --git a/nss/sgrp-lookup.c b/nss/sgrp-lookup.c
index 71820e755c..edde05892b 100644
--- a/nss/sgrp-lookup.c
+++ b/nss/sgrp-lookup.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define DATABASE_NAME gshadow
#define ALTERNATE_NAME group
diff --git a/nss/spwd-lookup.c b/nss/spwd-lookup.c
index 5dc3f5619c..9e2ef023e1 100644
--- a/nss/spwd-lookup.c
+++ b/nss/spwd-lookup.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <config.h>
diff --git a/nss/test-digits-dots.c b/nss/test-digits-dots.c
index 0d32d28fe0..e3d0331c06 100644
--- a/nss/test-digits-dots.c
+++ b/nss/test-digits-dots.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2013-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Testcase for BZ #15014 */
diff --git a/nss/test-netdb.c b/nss/test-netdb.c
index 43f095f0c7..d4b0f68635 100644
--- a/nss/test-netdb.c
+++ b/nss/test-netdb.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
Testing of some network related lookup functions.
@@ -192,7 +192,7 @@ test_hosts (void)
}
ip.s_addr = htonl (INADDR_LOOPBACK);
- hptr1 = gethostbyaddr ((char *) &ip, sizeof(ip), AF_INET);
+ hptr1 = gethostbyaddr ((char *) &ip, sizeof (ip), AF_INET);
if (hptr1 != NULL)
{
printf ("official name of 127.0.0.1: %s\n", hptr1->h_name);
diff --git a/nss/tst-cancel-getpwuid_r.c b/nss/tst-cancel-getpwuid_r.c
index 6ffafbdf8f..03f02dc3bc 100644
--- a/nss/tst-cancel-getpwuid_r.c
+++ b/nss/tst-cancel-getpwuid_r.c
@@ -1,5 +1,5 @@
/* Test cancellation of getpwuid_r.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Test if cancellation of getpwuid_r incorrectly leaves internal
function state locked resulting in hang of subsequent calls to
diff --git a/nss/tst-field.c b/nss/tst-field.c
index b9b30ea54f..a039507887 100644
--- a/nss/tst-field.c
+++ b/nss/tst-field.c
@@ -1,5 +1,5 @@
/* Test for invalid field handling in file-style NSS databases. [BZ #18724]
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This test needs to be statically linked because it access hidden
functions. */
@@ -50,7 +50,8 @@ check_rewrite (const char *input, const char *expected)
if (result != NULL && strcmp (result, expected) != 0)
{
printf ("FAIL: rewrite \"%s\" -> \"%s\", expected \"%s\"\n",
- input, result, expected);
+ (input == NULL) ? "(null)" : input, result,
+ (expected == NULL) ? "(null)" : expected);
errors = true;
}
free (to_free);
diff --git a/nss/tst-nss-db-endgrent.c b/nss/tst-nss-db-endgrent.c
new file mode 100644
index 0000000000..096d8eb887
--- /dev/null
+++ b/nss/tst-nss-db-endgrent.c
@@ -0,0 +1,54 @@
+/* Test for endgrent changing errno for BZ #24696
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdlib.h>
+#include <sys/types.h>
+#include <grp.h>
+#include <unistd.h>
+#include <errno.h>
+
+#include <support/check.h>
+#include <support/support.h>
+
+/* The following test verifies that if the db NSS Service is initialized
+ with no database (getgrent), that a subsequent closure (endgrent) does
+ not set errno. In the case of the db service it is not an error to close
+ the service and so it should not set errno. */
+
+static int
+do_test (void)
+{
+ /* Just make sure it's not there, although usually it won't be. */
+ unlink ("/var/db/group.db");
+
+ /* This, in conjunction with the testroot's nsswitch.conf, causes
+ the nss_db module to be "connected" and initialized - but the
+ testroot has no group.db, so no mapping will be created. */
+ getgrent ();
+
+ errno = 0;
+
+ /* Before the fix, this would call munmap (NULL) and set errno. */
+ endgrent ();
+
+ if (errno != 0)
+ FAIL_EXIT1 ("endgrent set errno to %d\n", errno);
+
+ return 0;
+}
+#include <support/test-driver.c>
diff --git a/nss/tst-nss-db-endgrent.root/etc/nsswitch.conf b/nss/tst-nss-db-endgrent.root/etc/nsswitch.conf
new file mode 100644
index 0000000000..21471df94f
--- /dev/null
+++ b/nss/tst-nss-db-endgrent.root/etc/nsswitch.conf
@@ -0,0 +1 @@
+group : db files
diff --git a/nss/tst-nss-db-endpwent.c b/nss/tst-nss-db-endpwent.c
new file mode 100644
index 0000000000..eb3492b673
--- /dev/null
+++ b/nss/tst-nss-db-endpwent.c
@@ -0,0 +1,66 @@
+/* Test for endpwent->getpwent crash for BZ #24695
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdlib.h>
+#include <string.h>
+#include <sys/types.h>
+#include <pwd.h>
+
+#include <support/support.h>
+#include <support/check.h>
+
+/* It is entirely allowed to start with a getpwent call without
+ resetting the state of the service via a call to setpwent.
+ You can also call getpwent more times than you have entries in
+ the service, and it should not fail. This test iteratates the
+ database once, gets to the end, and then attempts a second
+ iteration to look for crashes. */
+
+static void
+try_it (void)
+{
+ struct passwd *pw;
+
+ /* setpwent is intentionally omitted here. The first call to
+ getpwent detects that it's first and initializes. The second
+ time try_it is called, this "first call" was not detected before
+ the fix, and getpwent would crash. */
+
+ while ((pw = getpwent ()) != NULL)
+ ;
+
+ /* We only care if this segfaults or not. */
+ endpwent ();
+}
+
+static int
+do_test (void)
+{
+ char *cmd;
+
+ cmd = xasprintf ("%s/makedb -o /var/db/passwd.db /var/db/passwd.in",
+ support_bindir_prefix);
+ system (cmd);
+ free (cmd);
+
+ try_it ();
+ try_it ();
+
+ return 0;
+}
+#include <support/test-driver.c>
diff --git a/nss/tst-nss-db-endpwent.root/etc/nsswitch.conf b/nss/tst-nss-db-endpwent.root/etc/nsswitch.conf
new file mode 100644
index 0000000000..593ffc564a
--- /dev/null
+++ b/nss/tst-nss-db-endpwent.root/etc/nsswitch.conf
@@ -0,0 +1 @@
+passwd: db
diff --git a/nss/tst-nss-db-endpwent.root/var/db/passwd.in b/nss/tst-nss-db-endpwent.root/var/db/passwd.in
new file mode 100644
index 0000000000..98f39126ef
--- /dev/null
+++ b/nss/tst-nss-db-endpwent.root/var/db/passwd.in
@@ -0,0 +1,4 @@
+.root root:x:0:0:root:/root:/bin/bash
+=0 root:x:0:0:root:/root:/bin/bash
+.bin bin:x:1:1:bin:/bin:/sbin/nologin
+=1 bin:x:1:1:bin:/bin:/sbin/nologin
diff --git a/nss/tst-nss-files-alias-leak.c b/nss/tst-nss-files-alias-leak.c
new file mode 100644
index 0000000000..6f803c78c1
--- /dev/null
+++ b/nss/tst-nss-files-alias-leak.c
@@ -0,0 +1,237 @@
+/* Check for file descriptor leak in alias :include: processing (bug 23521).
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <aliases.h>
+#include <array_length.h>
+#include <dlfcn.h>
+#include <errno.h>
+#include <gnu/lib-names.h>
+#include <nss.h>
+#include <stdlib.h>
+#include <string.h>
+#include <support/check.h>
+#include <support/namespace.h>
+#include <support/support.h>
+#include <support/temp_file.h>
+#include <support/test-driver.h>
+#include <support/xstdio.h>
+#include <support/xunistd.h>
+
+static struct support_chroot *chroot_env;
+
+/* Number of the aliases for the "many" user. This must be large
+ enough to trigger reallocation for the pointer array, but result in
+ answers below the maximum size tried in do_test. */
+enum { many_aliases = 30 };
+
+static void
+prepare (int argc, char **argv)
+{
+ chroot_env = support_chroot_create
+ ((struct support_chroot_configuration) { } );
+
+ char *path = xasprintf ("%s/etc/aliases", chroot_env->path_chroot);
+ add_temp_file (path);
+ support_write_file_string
+ (path,
+ "user1: :include:/etc/aliases.user1\n"
+ "user2: :include:/etc/aliases.user2\n"
+ "comment: comment1, :include:/etc/aliases.comment\n"
+ "many: :include:/etc/aliases.many\n");
+ free (path);
+
+ path = xasprintf ("%s/etc/aliases.user1", chroot_env->path_chroot);
+ add_temp_file (path);
+ support_write_file_string (path, "alias1\n");
+ free (path);
+
+ path = xasprintf ("%s/etc/aliases.user2", chroot_env->path_chroot);
+ add_temp_file (path);
+ support_write_file_string (path, "alias1a, alias2\n");
+ free (path);
+
+ path = xasprintf ("%s/etc/aliases.comment", chroot_env->path_chroot);
+ add_temp_file (path);
+ support_write_file_string
+ (path,
+ /* The line must be longer than the line with the :include:
+ directive in /etc/aliases. */
+ "# Long line. ##############################################\n"
+ "comment2\n");
+ free (path);
+
+ path = xasprintf ("%s/etc/aliases.many", chroot_env->path_chroot);
+ add_temp_file (path);
+ FILE *fp = xfopen (path, "w");
+ for (int i = 0; i < many_aliases; ++i)
+ fprintf (fp, "a%d\n", i);
+ TEST_VERIFY_EXIT (! ferror (fp));
+ xfclose (fp);
+ free (path);
+}
+
+/* The names of the users to test. */
+static const char *users[] = { "user1", "user2", "comment", "many" };
+
+static void
+check_aliases (int id, const struct aliasent *e)
+{
+ TEST_VERIFY_EXIT (id >= 0 || id < array_length (users));
+ const char *name = users[id];
+ TEST_COMPARE_BLOB (e->alias_name, strlen (e->alias_name),
+ name, strlen (name));
+
+ switch (id)
+ {
+ case 0:
+ TEST_COMPARE (e->alias_members_len, 1);
+ TEST_COMPARE_BLOB (e->alias_members[0], strlen (e->alias_members[0]),
+ "alias1", strlen ("alias1"));
+ break;
+
+ case 1:
+ TEST_COMPARE (e->alias_members_len, 2);
+ TEST_COMPARE_BLOB (e->alias_members[0], strlen (e->alias_members[0]),
+ "alias1a", strlen ("alias1a"));
+ TEST_COMPARE_BLOB (e->alias_members[1], strlen (e->alias_members[1]),
+ "alias2", strlen ("alias2"));
+ break;
+
+ case 2:
+ TEST_COMPARE (e->alias_members_len, 2);
+ TEST_COMPARE_BLOB (e->alias_members[0], strlen (e->alias_members[0]),
+ "comment1", strlen ("comment1"));
+ TEST_COMPARE_BLOB (e->alias_members[1], strlen (e->alias_members[1]),
+ "comment2", strlen ("comment2"));
+ break;
+
+ case 3:
+ TEST_COMPARE (e->alias_members_len, many_aliases);
+ for (int i = 0; i < e->alias_members_len; ++i)
+ {
+ char alias[30];
+ int len = snprintf (alias, sizeof (alias), "a%d", i);
+ TEST_VERIFY_EXIT (len > 0);
+ TEST_COMPARE_BLOB (e->alias_members[i], strlen (e->alias_members[i]),
+ alias, len);
+ }
+ break;
+ }
+}
+
+static int
+do_test (void)
+{
+ /* Make sure we don't try to load the module in the chroot. */
+ if (dlopen (LIBNSS_FILES_SO, RTLD_NOW) == NULL)
+ FAIL_EXIT1 ("could not load " LIBNSS_FILES_SO ": %s", dlerror ());
+
+ /* Some of these descriptors will become unavailable if there is a
+ file descriptor leak. 10 is chosen somewhat arbitrarily. The
+ array must be longer than the number of files opened by nss_files
+ at the same time (currently that number is 2). */
+ int next_descriptors[10];
+ for (size_t i = 0; i < array_length (next_descriptors); ++i)
+ {
+ next_descriptors[i] = dup (0);
+ TEST_VERIFY_EXIT (next_descriptors[i] > 0);
+ }
+ for (size_t i = 0; i < array_length (next_descriptors); ++i)
+ xclose (next_descriptors[i]);
+
+ support_become_root ();
+ if (!support_can_chroot ())
+ return EXIT_UNSUPPORTED;
+
+ __nss_configure_lookup ("aliases", "files");
+
+ xchroot (chroot_env->path_chroot);
+
+ /* Attempt various buffer sizes. If the operation succeeds, we
+ expect correct data. */
+ for (int id = 0; id < array_length (users); ++id)
+ {
+ bool found = false;
+ for (size_t size = 1; size <= 1000; ++size)
+ {
+ void *buffer = malloc (size);
+ struct aliasent result;
+ struct aliasent *res;
+ errno = EINVAL;
+ int ret = getaliasbyname_r (users[id], &result, buffer, size, &res);
+ if (ret == 0)
+ {
+ if (res != NULL)
+ {
+ found = true;
+ check_aliases (id, res);
+ }
+ else
+ {
+ support_record_failure ();
+ printf ("error: failed lookup for user \"%s\", size %zu\n",
+ users[id], size);
+ }
+ }
+ else if (ret != ERANGE)
+ {
+ support_record_failure ();
+ printf ("error: invalid return code %d (user \"%s\", size %zu)\n",
+ ret, users[id], size);
+ }
+ free (buffer);
+
+ /* Make sure that we did not have a file descriptor leak. */
+ for (size_t i = 0; i < array_length (next_descriptors); ++i)
+ {
+ int new_fd = dup (0);
+ if (new_fd != next_descriptors[i])
+ {
+ support_record_failure ();
+ printf ("error: descriptor %d at index %zu leaked"
+ " (user \"%s\", size %zu)\n",
+ next_descriptors[i], i, users[id], size);
+
+ /* Close unexpected descriptor, the leak probing
+ descriptors, and the leaked descriptor
+ next_descriptors[i]. */
+ xclose (new_fd);
+ for (size_t j = 0; j <= i; ++j)
+ xclose (next_descriptors[j]);
+ goto next_size;
+ }
+ }
+ for (size_t i = 0; i < array_length (next_descriptors); ++i)
+ xclose (next_descriptors[i]);
+
+ next_size:
+ ;
+ }
+ if (!found)
+ {
+ support_record_failure ();
+ printf ("error: user %s not found\n", users[id]);
+ }
+ }
+
+ support_chroot_free (chroot_env);
+ return 0;
+}
+
+#define PREPARE prepare
+#include <support/test-driver.c>
diff --git a/nss/tst-nss-files-alias-truncated.c b/nss/tst-nss-files-alias-truncated.c
new file mode 100644
index 0000000000..422ac17fc3
--- /dev/null
+++ b/nss/tst-nss-files-alias-truncated.c
@@ -0,0 +1,69 @@
+/* Check handling of missing end-of-line at end of /etc/aliases (bug 24059).
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <aliases.h>
+#include <gnu/lib-names.h>
+#include <nss.h>
+#include <stddef.h>
+#include <support/check.h>
+#include <support/namespace.h>
+#include <support/test-driver.h>
+#include <support/xdlfcn.h>
+#include <support/xunistd.h>
+
+static void
+in_chroot (void *closure)
+{
+ struct support_chroot *chroot_env = closure;
+ xchroot (chroot_env->path_chroot);
+
+ struct aliasent *e = getaliasbyname ("user1");
+ TEST_VERIFY_EXIT (e != NULL);
+ TEST_COMPARE_STRING (e->alias_name, "user1");
+ TEST_COMPARE (e->alias_members_len, 1);
+ TEST_VERIFY_EXIT (e->alias_members != NULL);
+ TEST_COMPARE_STRING (e->alias_members[0], "alias1");
+ TEST_VERIFY (e->alias_local);
+}
+
+static int
+do_test (void)
+{
+ /* Make sure we don't try to load the module in the chroot. */
+ xdlopen (LIBNSS_FILES_SO, RTLD_NOW);
+
+ __nss_configure_lookup ("aliases", "files");
+
+ support_become_root ();
+ if (!support_can_chroot ())
+ return EXIT_UNSUPPORTED;
+
+ struct support_chroot *chroot_env = support_chroot_create
+ ((struct support_chroot_configuration)
+ {
+ .aliases = "user1: alias1,\n"
+ " " /* Continuation line, but no \n. */
+ });
+
+ support_isolate_in_subprocess (in_chroot, chroot_env);
+
+ support_chroot_free (chroot_env);
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/nss/tst-nss-files-hosts-erange.c b/nss/tst-nss-files-hosts-erange.c
index b84d031e37..2f8f3fc2f0 100644
--- a/nss/tst-nss-files-hosts-erange.c
+++ b/nss/tst-nss-files-hosts-erange.c
@@ -1,5 +1,5 @@
/* Parse /etc/hosts in multi mode with a trailing long line (bug 21915).
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
diff --git a/nss/tst-nss-files-hosts-getent.c b/nss/tst-nss-files-hosts-getent.c
index 3f5baced32..b9b1cb9aa5 100644
--- a/nss/tst-nss-files-hosts-getent.c
+++ b/nss/tst-nss-files-hosts-getent.c
@@ -1,5 +1,5 @@
/* Enumerate /etc/hosts with a long line (bug 18991).
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
diff --git a/nss/tst-nss-files-hosts-long.c b/nss/tst-nss-files-hosts-long.c
new file mode 100644
index 0000000000..5c669a57cb
--- /dev/null
+++ b/nss/tst-nss-files-hosts-long.c
@@ -0,0 +1,45 @@
+/* Test getent doesn't fail with long /etc/hosts lines (Bug 21915).
+ 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 <https://www.gnu.org/licenses/>. */
+
+/* This test runs getent twice to parse a /etc/hosts with a very
+ long line. Prior to fixing this parser this would crash getent. */
+
+#include <stdlib.h>
+#include <nss.h>
+#include <support/check.h>
+
+static int
+do_test (void)
+{
+ int ret;
+
+ /* Run getent to fetch the IPv4 address for host test4.
+ This forces /etc/hosts to be parsed. */
+ ret = system("getent ahostsv4 test4");
+ if (ret != 0)
+ FAIL_EXIT1("ahostsv4 failed");
+
+ /* Likewise for IPv6. */
+ ret = system("getent ahostsv6 test6");
+ if (ret != 0)
+ FAIL_EXIT1("ahostsv6 failed");
+
+ exit (0);
+}
+
+#include <support/test-driver.c>
diff --git a/nss/tst-nss-files-hosts-long.root/etc/host.conf b/nss/tst-nss-files-hosts-long.root/etc/host.conf
new file mode 100644
index 0000000000..d1a59f73a9
--- /dev/null
+++ b/nss/tst-nss-files-hosts-long.root/etc/host.conf
@@ -0,0 +1 @@
+multi on
diff --git a/nss/tst-nss-files-hosts-long.root/etc/hosts b/nss/tst-nss-files-hosts-long.root/etc/hosts
new file mode 100644
index 0000000000..db33f42f14
--- /dev/null
+++ b/nss/tst-nss-files-hosts-long.root/etc/hosts
@@ -0,0 +1,8 @@
+# This data is valid and short.
+192.168.1.1 test4.example.com test4
+::2 test6.example.com test6
+
+# Long line data is arbitrary and not specifically chosen.
+# They key issue is that it should be long to trigger the parser failure.
+192.168.2.2 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.ru
+#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
diff --git a/nss/tst-nss-files-hosts-multi.c b/nss/tst-nss-files-hosts-multi.c
index a4edb3c036..30db2e740d 100644
--- a/nss/tst-nss-files-hosts-multi.c
+++ b/nss/tst-nss-files-hosts-multi.c
@@ -1,5 +1,5 @@
/* Parse /etc/hosts in multi mode with many addresses/aliases.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <errno.h>
@@ -327,5 +327,6 @@ do_test (void)
return 0;
}
+#define TIMEOUT 40
#define PREPARE prepare
#include <support/test-driver.c>
diff --git a/nss/tst-nss-getpwent.c b/nss/tst-nss-getpwent.c
index ff9c3d062e..f7e6070bd6 100644
--- a/nss/tst-nss-getpwent.c
+++ b/nss/tst-nss-getpwent.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2015-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <nss.h>
#include <pwd.h>
diff --git a/nss/tst-nss-test1.c b/nss/tst-nss-test1.c
index 2df34edaab..4af3599bc1 100644
--- a/nss/tst-nss-test1.c
+++ b/nss/tst-nss-test1.c
@@ -1,5 +1,5 @@
/* Basic test of passwd database handling.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <nss.h>
#include <pwd.h>
diff --git a/nss/tst-nss-test2.c b/nss/tst-nss-test2.c
index 02b50c7635..b1c91c781f 100644
--- a/nss/tst-nss-test2.c
+++ b/nss/tst-nss-test2.c
@@ -1,5 +1,5 @@
/* Basic test for two passwd databases.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <nss.h>
#include <pwd.h>
diff --git a/nss/tst-nss-test3.c b/nss/tst-nss-test3.c
index d9d708ae7b..87e8e166cd 100644
--- a/nss/tst-nss-test3.c
+++ b/nss/tst-nss-test3.c
@@ -1,5 +1,5 @@
/* Test error checking for group entries.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <nss.h>
#include <stdio.h>
@@ -107,7 +107,11 @@ do_test (void)
int i;
struct group *g = NULL;
- __nss_configure_lookup ("group", "test1");
+/* Previously we used __nss_configure_lookup to isolate the test
+ from the host environment and to get it to lookup from our new
+ test1 NSS service module, but now this test is run in a different
+ root filesystem via the test-container support and we directly
+ configure the use of the test1 NSS service. */
setgrent ();
diff --git a/nss/tst-nss-test3.root/etc/nsswitch.conf b/nss/tst-nss-test3.root/etc/nsswitch.conf
new file mode 100644
index 0000000000..5e08fe5eea
--- /dev/null
+++ b/nss/tst-nss-test3.root/etc/nsswitch.conf
@@ -0,0 +1 @@
+group test1
diff --git a/nss/tst-nss-test3.root/tst-nss-test3.script b/nss/tst-nss-test3.root/tst-nss-test3.script
new file mode 100644
index 0000000000..a10beb1e6c
--- /dev/null
+++ b/nss/tst-nss-test3.root/tst-nss-test3.script
@@ -0,0 +1,2 @@
+cp $B/nss/libnss_test1.so $L/libnss_test1.so.2
+cp $B/nss/libnss_test2.so $L/libnss_test2.so.2
diff --git a/nss/tst-nss-test4.c b/nss/tst-nss-test4.c
index 7cee724a25..163d2b33b2 100644
--- a/nss/tst-nss-test4.c
+++ b/nss/tst-nss-test4.c
@@ -1,5 +1,5 @@
/* Test group merging.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <nss.h>
#include <stdio.h>
diff --git a/nss/tst-nss-test5.c b/nss/tst-nss-test5.c
index 41a529959e..83d8bee7ec 100644
--- a/nss/tst-nss-test5.c
+++ b/nss/tst-nss-test5.c
@@ -1,5 +1,5 @@
/* Test error checking for passwd entries.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <nss.h>
#include <pwd.h>
diff --git a/nss/valid_field.c b/nss/valid_field.c
index f64e551dbd..1f41741988 100644
--- a/nss/valid_field.c
+++ b/nss/valid_field.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2015-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <nss.h>
#include <string.h>
diff --git a/nss/valid_list_field.c b/nss/valid_list_field.c
index e8376e357f..63d9dda2cd 100644
--- a/nss/valid_list_field.c
+++ b/nss/valid_list_field.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2015-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <nss.h>
#include <stdbool.h>
diff --git a/po/Makefile b/po/Makefile
index 534055c7b4..743cd85b77 100644
--- a/po/Makefile
+++ b/po/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
# Makefile for installing libc message catalogs.
diff --git a/po/be.po b/po/be.po
index 6ccb4633dc..44b85420ac 100644
--- a/po/be.po
+++ b/po/be.po
@@ -2,12 +2,12 @@
# Copyright (C) 2002, 2003 Free Software Foundation, Inc.
# This file is distributed under the same license as the glibc package.
# Ales Nyakhaychyk <nab@mail.by>, 2002, 2003.
-# Viktar Siarheichyk <vics@eq.by>, 2014, 2016, 2017, 2018.
+# Viktar Siarheichyk <vics@eq.by>, 2014, 2016, 2017, 2018, 2019.
msgid ""
msgstr ""
-"Project-Id-Version: libc 2.27.9000\n"
-"POT-Creation-Date: 2018-07-26 22:19-0400\n"
-"PO-Revision-Date: 2018-07-31 17:33+0300\n"
+"Project-Id-Version: libc 2.29.9000\n"
+"POT-Creation-Date: 2019-07-18 13:28-0400\n"
+"PO-Revision-Date: 2019-07-26 17:04+0300\n"
"Last-Translator: Viktar Siarheichyk <vics@eq.by>\n"
"Language-Team: Belarusian <debian-l10n-belarusian@lists.debian.org>\n"
"Language: be\n"
@@ -147,10 +147,10 @@ msgstr ""
"[ВЫХОДÐЫ-ФÐЙЛ [УВÐХОДÐЫ-ФÐЙЛ]...]"
#: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:308
-#: elf/pldd.c:252 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
-#: iconv/iconvconfig.c:379 locale/programs/locale.c:275
-#: locale/programs/localedef.c:427 login/programs/pt_chown.c:89
-#: malloc/memusagestat.c:563 nss/getent.c:933 nss/makedb.c:369
+#: elf/pldd.c:247 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
+#: iconv/iconvconfig.c:379 locale/programs/locale.c:276
+#: locale/programs/localedef.c:437 login/programs/pt_chown.c:89
+#: malloc/memusagestat.c:563 nss/getent.c:953 nss/makedb.c:369
#: posix/getconf.c:503 sysdeps/unix/sysv/linux/lddlibc4.c:61
#, c-format
msgid ""
@@ -161,11 +161,11 @@ msgstr ""
"%s.\n"
#: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64
-#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75
+#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:263 elf/sotruss.sh:75
#: elf/sprof.c:389 iconv/iconv_prog.c:422 iconv/iconvconfig.c:396
-#: locale/programs/locale.c:292 locale/programs/localedef.c:453
+#: locale/programs/locale.c:293 locale/programs/localedef.c:463
#: login/programs/pt_chown.c:63 malloc/memusage.sh:71
-#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:87 nss/makedb.c:385
+#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:88 nss/makedb.c:385
#: posix/getconf.c:485 sysdeps/unix/sysv/linux/lddlibc4.c:68
#, c-format
msgid ""
@@ -178,10 +178,10 @@ msgstr ""
" ÐІЯКІХ нÑма; у тым ліку працаздольнаÑці ці прыдатнаÑці Ð´Ð»Ñ Ð¿Ñўнай мÑÑ‚Ñ‹.\n"
#: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68
-#: elf/ldconfig.c:329 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:427
-#: iconv/iconvconfig.c:401 locale/programs/locale.c:297
-#: locale/programs/localedef.c:458 malloc/memusage.sh:75
-#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:92 nss/makedb.c:390
+#: elf/ldconfig.c:329 elf/pldd.c:268 elf/sprof.c:395 iconv/iconv_prog.c:427
+#: iconv/iconvconfig.c:401 locale/programs/locale.c:298
+#: locale/programs/localedef.c:468 malloc/memusage.sh:75
+#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:93 nss/makedb.c:390
#: posix/getconf.c:490
#, c-format
msgid "Written by %s.\n"
@@ -252,21 +252,21 @@ msgstr "немагчыма адкрыць файл вываду `%s'"
msgid "invalid escape sequence"
msgstr "нÑÐ¿Ñ€Ð°Ð²Ñ–Ð»ÑŒÐ½Ð°Ñ escape-паÑлÑдоўнаÑць"
-#: catgets/gencat.c:1209
+#: catgets/gencat.c:1211
msgid "unterminated message"
msgstr "незавершанае паведамленне"
-#: catgets/gencat.c:1233
+#: catgets/gencat.c:1235
#, c-format
msgid "while opening old catalog file"
msgstr "Ð¿Ð°Ð´Ñ‡Ð°Ñ Ð°Ð´ÐºÑ€Ñ‹Ñ†Ñ†Ñ Ñтарога файла каталога"
-#: catgets/gencat.c:1324
+#: catgets/gencat.c:1326
#, c-format
msgid "conversion modules not available"
msgstr "модулі пераўтварÑÐ½Ð½Ñ Ð½ÐµÐ´Ð°ÑтупныÑ"
-#: catgets/gencat.c:1350
+#: catgets/gencat.c:1352
#, c-format
msgid "cannot determine escape character"
msgstr "не ўдалоÑÑ Ð²Ñ‹Ð·Ð½Ð°Ñ‡Ñ‹Ñ†ÑŒ знак ÑкранаваннÑ"
@@ -277,7 +277,7 @@ msgstr "Ðе буфераваць вывад"
#: debug/pcprofiledump.c:58
msgid "Dump information generated by PC profiling."
-msgstr "Скінуць інфармацыю, Ñабраную Ð¿Ð°Ð´Ñ‡Ð°Ñ Ð¿Ñ€Ð°Ñ„Ñ–Ð»ÑÐ²Ð°Ð½Ð½Ñ ÐºÐ°Ð¼Ð¿ÑƒÑ‚Ð°Ñ€Ð° "
+msgstr "Скінуць інфармацыю, Ñабраную Ð¿Ð°Ð´Ñ‡Ð°Ñ Ð¿Ñ€Ð°Ñ„Ñ–Ð»ÑÐ²Ð°Ð½Ð½Ñ ÐºÐ°Ð¼Ð¿ÑƒÑ‚Ð°Ñ€Ð°"
#: debug/pcprofiledump.c:61
msgid "[FILE]"
@@ -296,11 +296,11 @@ msgstr "немагчыма прачытаць загаловак"
#: debug/pcprofiledump.c:179
#, c-format
msgid "invalid pointer size"
-msgstr ""
+msgstr "нÑправільны памер указальніка"
#: debug/xtrace.sh:26 debug/xtrace.sh:44
msgid "Usage: xtrace [OPTION]... PROGRAM [PROGRAMOPTION]...\\n"
-msgstr ""
+msgstr "ВыкарыÑтанне: xtrace [ОПЦЫЯ]... ПРÐГРÐМР[ОПЦЫЯ-ПРÐГРÐМЫ]...\\n"
#: debug/xtrace.sh:32 elf/sotruss.sh:56 elf/sotruss.sh:67 elf/sotruss.sh:135
#: malloc/memusage.sh:26
@@ -309,7 +309,7 @@ msgstr "ПаÑпрабуйце \\`%s --help' ці \\`%s --usage' Ð´Ð»Ñ Ð±Ð¾Ð»ÑŒ
#: debug/xtrace.sh:38
msgid "%s: option '%s' requires an argument.\\n"
-msgstr ""
+msgstr "%s: Ð¾Ð¿Ñ†Ñ‹Ñ '%s' патрабуе аргумент.\\n"
#: debug/xtrace.sh:45
msgid ""
@@ -325,15 +325,25 @@ msgid ""
"short options.\n"
"\n"
msgstr ""
+"Сачыць за выкананнем праграмы, друкуючы функцыі, ÑÐºÑ–Ñ Ð·Ð°Ñ€Ð°Ð· выконваюцца.\n"
+"\n"
+" --data=ФÐЙЛ Ðе выконваць гÑтую праграму, толькі друкаваць Ð´Ð°Ð½Ñ‹Ñ Ð· файла ФÐЙЛ.\n"
+"\n"
+" -?,--help Ðадрукаваць гÑтую дапамогу Ñ– выйÑці\n"
+" --usage Даць кароткае паведамленне аб выкарыÑтанні\n"
+" -V,--version Ðадрукаваць звеÑткі аб верÑÑ–Ñ– Ñ– выйÑці\n"
+"\n"
+"ÐбавÑÐ·ÐºÐ¾Ð²Ñ‹Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ñ‹ да доўгіх опцыÑÑž з'ÑўлÑюцца абавÑзковымі Ð´Ð»Ñ ÑžÑÑ–Ñ… адпаведных кароткіх опцыÑÑž.\n"
+"\n"
#: debug/xtrace.sh:57 elf/ldd.bash.in:55 elf/sotruss.sh:49
#: malloc/memusage.sh:64
msgid "For bug reporting instructions, please see:\\\\n%s.\\\\n"
-msgstr ""
+msgstr "Як рапартаваць аб памылках:\\\\n%s.\\\\n"
#: debug/xtrace.sh:125
msgid "xtrace: unrecognized option \\`$1'\\n"
-msgstr ""
+msgstr "xtrace: невÑÐ´Ð¾Ð¼Ð°Ñ Ð¾Ð¿Ñ†Ñ‹Ñ \\`$1'\\n"
#: debug/xtrace.sh:138
msgid "No program name given\\n"
@@ -342,16 +352,16 @@ msgstr "Ðазва праграмы не зададзенаÑ\\n"
#: debug/xtrace.sh:146
#, sh-format
msgid "executable \\`$program' not found\\n"
-msgstr ""
+msgstr "выканальны файл\\`$program' не знойдзены\\n"
#: debug/xtrace.sh:150
#, sh-format
msgid "\\`$program' is no executable\\n"
-msgstr ""
+msgstr "\\`$program' не Ñ‘Ñць выканальным файлам\\n"
#: dlfcn/dlinfo.c:63
msgid "RTLD_SELF used in code not dynamically loaded"
-msgstr ""
+msgstr "RTLD_SELF ужыты ў кодзе, не загружаным дынамічна"
#: dlfcn/dlinfo.c:72
msgid "unsupported dlinfo request"
@@ -359,7 +369,7 @@ msgstr "непадтрыманы запыт dlinfo"
#: dlfcn/dlmopen.c:63
msgid "invalid namespace"
-msgstr ""
+msgstr "нÑÐ¿Ñ€Ð°Ð²Ñ–Ð»ÑŒÐ½Ð°Ñ Ð¿Ñ€Ð°Ñтора назваў"
#: dlfcn/dlmopen.c:68
msgid "invalid mode"
@@ -367,11 +377,11 @@ msgstr "нерÑчаіÑны Ñ€Ñжым"
#: dlfcn/dlopen.c:64
msgid "invalid mode parameter"
-msgstr ""
+msgstr "нÑправільны параметр Ñ€Ñжыму"
#: elf/cache.c:69
msgid "unknown"
-msgstr ""
+msgstr "невÑдомы"
#: elf/cache.c:141
msgid "Unknown OS"
@@ -382,87 +392,87 @@ msgstr "ÐевÑÐ´Ð¾Ð¼Ð°Ñ Ð°Ð¿ÐµÑ€Ð°Ñ†Ñ‹Ð¹Ð½Ð°Ñ ÑÑ–ÑÑ‚Ñма"
msgid ", OS ABI: %s %d.%d.%d"
msgstr ", OS ABI: %s %d.%d.%d"
-#: elf/cache.c:163 elf/ldconfig.c:1332
+#: elf/cache.c:163 elf/ldconfig.c:1333
#, c-format
msgid "Can't open cache file %s\n"
-msgstr ""
+msgstr "Ðемагчыма адкрыць файл кÑшу %s\n"
#: elf/cache.c:177
#, c-format
msgid "mmap of cache file failed.\n"
-msgstr ""
+msgstr "не атрымалаÑÑ Ð·Ñ€Ð°Ð±Ñ–Ñ†ÑŒ mmap кÑш-файла.\n"
-#: elf/cache.c:181 elf/cache.c:195
+#: elf/cache.c:181 elf/cache.c:195 elf/cache.c:205
#, c-format
msgid "File is not a cache file.\n"
-msgstr ""
+msgstr "ГÑта не кÑш-файл.\n"
-#: elf/cache.c:228 elf/cache.c:238
+#: elf/cache.c:233 elf/cache.c:243
#, c-format
msgid "%d libs found in cache `%s'\n"
msgstr "%d бібліÑÑ‚Ñк адшукана Ñž кÑшы `%s'\n"
-#: elf/cache.c:432
+#: elf/cache.c:437
#, c-format
msgid "Can't create temporary cache file %s"
-msgstr ""
+msgstr "Ðе ўдалоÑÑ Ñтварыць чаÑовы кÑш-файл %s"
-#: elf/cache.c:440 elf/cache.c:450 elf/cache.c:454 elf/cache.c:458
-#: elf/cache.c:468
+#: elf/cache.c:445 elf/cache.c:455 elf/cache.c:459 elf/cache.c:463
+#: elf/cache.c:473
#, c-format
msgid "Writing of cache data failed"
-msgstr ""
+msgstr "Ð—Ð°Ð¿Ñ–Ñ Ð´Ð°Ð½Ñ‹Ñ… кÑшу не ўдаўÑÑ"
-#: elf/cache.c:463
+#: elf/cache.c:468
#, c-format
msgid "Changing access rights of %s to %#o failed"
-msgstr ""
+msgstr "ЗмÑненне правоў доÑтупу %s да %#o не ўдалаÑÑ"
-#: elf/cache.c:472
+#: elf/cache.c:477
#, c-format
msgid "Renaming of %s to %s failed"
-msgstr ""
+msgstr "Пераназванне %s у %s не ўдалоÑÑ"
-#: elf/dl-close.c:399 elf/dl-open.c:420
+#: elf/dl-close.c:399 elf/dl-open.c:424
msgid "cannot create scope list"
msgstr "не ўдалоÑÑ Ñтварыць ÑÐ¿Ñ–Ñ Ð°Ð±ÑˆÐ°Ñ€Ð°Ñž"
#: elf/dl-close.c:839
msgid "shared object not open"
-msgstr ""
+msgstr "Ñупольны аб'ект не адкрыты"
#: elf/dl-deps.c:112
msgid "DST not allowed in SUID/SGID programs"
-msgstr ""
+msgstr "DST не дазвалÑецца Ñž праграмах SUID/SGID"
#: elf/dl-deps.c:125
msgid "empty dynamic string token substitution"
-msgstr ""
+msgstr "пуÑÑ‚Ð°Ñ Ð·Ð°Ð¼ÐµÐ½Ð° дынамічнага такену радка (DST)"
#: elf/dl-deps.c:131
#, c-format
msgid "cannot load auxiliary `%s' because of empty dynamic string token substitution\n"
-msgstr ""
+msgstr "не ўдалоÑÑ Ð·Ð°Ð³Ñ€ÑƒÐ·Ñ–Ñ†ÑŒ дадатковага `%s' з-за пуÑтое замены дынамічнага такену радка (DST)\n"
#: elf/dl-deps.c:220
msgid "cannot allocate dependency buffer"
-msgstr ""
+msgstr "не ўдалоÑÑ Ð²Ñ‹Ð´Ð·ÐµÐ»Ñ–Ñ†ÑŒ памÑць Ð´Ð»Ñ Ð±ÑƒÑ„ÐµÑ€ залежнаÑцÑÑž"
#: elf/dl-deps.c:443
msgid "cannot allocate dependency list"
-msgstr ""
+msgstr "не ўдалоÑÑ Ð²Ñ‹Ð´Ð·ÐµÐ»Ñ–Ñ†ÑŒ памÑць Ð´Ð»Ñ ÑпіÑу залежнаÑцÑÑž"
#: elf/dl-deps.c:483 elf/dl-deps.c:543
msgid "cannot allocate symbol search list"
-msgstr ""
+msgstr "не ўдалоÑÑ Ð²Ñ‹Ð´Ð·ÐµÐ»Ñ–Ñ†ÑŒ памÑць Ð´Ð»Ñ ÑпіÑу пошуку Ñімвалаў"
#: elf/dl-deps.c:523
msgid "Filters not supported with LD_TRACE_PRELINKING"
-msgstr ""
+msgstr "Фільтры Ñž LD_TRACE_PRELINKING не абÑлугоўваюцца"
#: elf/dl-error-skeleton.c:80
msgid "error while loading shared libraries"
-msgstr ""
+msgstr "памылка Ð¿Ð°Ð´Ñ‡Ð°Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÑ– Ñупольных бібліÑÑ‚Ñкаў"
#: elf/dl-error-skeleton.c:113
msgid "DYNAMIC LINKER BUG!!!"
@@ -470,15 +480,15 @@ msgstr "ПÐМЫЛКРДЫÐÐМІЧÐÐГРЛІÐКЕРÐ!!!"
#: elf/dl-fptr.c:88 sysdeps/hppa/dl-fptr.c:95
msgid "cannot map pages for fdesc table"
-msgstr ""
+msgstr "не ўдалоÑÑ Ð·Ð°Ð³Ñ€ÑƒÐ·Ñ–Ñ†ÑŒ Ñтаронкі Ð´Ð»Ñ Ñ‚Ð°Ð±Ð»Ñ–Ñ†Ñ‹ fdesc"
#: elf/dl-fptr.c:192 sysdeps/hppa/dl-fptr.c:213
msgid "cannot map pages for fptr table"
-msgstr ""
+msgstr "не ўдалоÑÑ Ð·Ð°Ð³Ñ€ÑƒÐ·Ñ–Ñ†ÑŒ Ñтаронкі Ð´Ð»Ñ Ñ‚Ð°Ð±Ð»Ñ–Ñ†Ñ‹ fptr"
#: elf/dl-fptr.c:221 sysdeps/hppa/dl-fptr.c:242
msgid "internal error: symidx out of range of fptr table"
-msgstr ""
+msgstr "ÑƒÐ½ÑƒÑ‚Ñ€Ð°Ð½Ð°Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ°: symidx па-за дыÑпазонам у табліцы fptr"
#: elf/dl-hwcaps.c:202 elf/dl-hwcaps.c:214
msgid "cannot create capability list"
@@ -486,7 +496,7 @@ msgstr "не ўдалоÑÑ Ñтварыць ÑÐ¿Ñ–Ñ Ð¼Ð°Ð³Ñ‡Ñ‹Ð¼Ð°ÑцÑÑž"
#: elf/dl-load.c:427
msgid "cannot allocate name record"
-msgstr ""
+msgstr "не ўдалоÑÑ Ð²Ñ‹Ð´Ð·ÐµÐ»Ñ–Ñ†ÑŒ Ð·Ð°Ð¿Ñ–Ñ Ð´Ð»Ñ Ð½Ð°Ð·Ð²Ñ‹"
#: elf/dl-load.c:513 elf/dl-load.c:626 elf/dl-load.c:715 elf/dl-load.c:811
msgid "cannot create cache for search path"
@@ -498,188 +508,184 @@ msgstr "немагчыма Ñтварыць RUNPATH/RPATH копію"
#: elf/dl-load.c:702
msgid "cannot create search path array"
-msgstr ""
+msgstr "не ўдалоÑÑ Ñтварыць табліцу шлÑхоў пошуку"
#: elf/dl-load.c:883
msgid "cannot stat shared object"
-msgstr ""
-
-#: elf/dl-load.c:960
-msgid "cannot open zero fill device"
-msgstr ""
+msgstr "не ўдалоÑÑ Ð²Ñ‹ÐºÐ°Ð½Ð°Ñ†ÑŒ stat Ð´Ð»Ñ Ñупольнага аб'екта"
-#: elf/dl-load.c:1007 elf/dl-load.c:2203
+#: elf/dl-load.c:992 elf/dl-load.c:2198
msgid "cannot create shared object descriptor"
-msgstr ""
+msgstr "не ўдалоÑÑ Ñтварыць дÑÑкрыптар Ñупольнага аб'екта"
-#: elf/dl-load.c:1026 elf/dl-load.c:1560 elf/dl-load.c:1673
+#: elf/dl-load.c:1011 elf/dl-load.c:1555 elf/dl-load.c:1668
msgid "cannot read file data"
-msgstr ""
+msgstr "не ўдалоÑÑ Ð¿Ñ€Ð°Ñ‡Ñ‹Ñ‚Ð°Ñ†ÑŒ Ð´Ð°Ð½Ñ‹Ñ Ñ„Ð°Ð¹Ð»Ð°"
-#: elf/dl-load.c:1072
+#: elf/dl-load.c:1057
msgid "ELF load command alignment not page-aligned"
-msgstr ""
+msgstr "раўнаванне каманды загрузкі ELF не выраўнавана па мÑжы Ñтаронкі"
-#: elf/dl-load.c:1079
+#: elf/dl-load.c:1064
msgid "ELF load command address/offset not properly aligned"
-msgstr ""
+msgstr "адраÑ/зрух каманды загрузкі ELF нÑправільна выраўнаваны"
-#: elf/dl-load.c:1161
+#: elf/dl-load.c:1146
msgid "cannot process note segment"
-msgstr ""
+msgstr "не ўдалоÑÑ Ð°Ð¿Ñ€Ð°Ñ†Ð°Ð²Ð°Ñ†ÑŒ Ñегмент нататкаў"
-#: elf/dl-load.c:1172
+#: elf/dl-load.c:1157
msgid "object file has no loadable segments"
-msgstr ""
+msgstr "аб'ектны файл не мае Ñегментаў Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÑ–"
-#: elf/dl-load.c:1181 elf/dl-load.c:1652
+#: elf/dl-load.c:1170 elf/dl-load.c:1647
msgid "cannot dynamically load executable"
-msgstr ""
+msgstr "не ўдалоÑÑ Ð´Ñ‹Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð° загрузіць выканальны файл"
-#: elf/dl-load.c:1202
+#: elf/dl-load.c:1191
msgid "object file has no dynamic section"
+msgstr "аб'ектны файл не мае дынамічнай Ñекцыі"
+
+#: elf/dl-load.c:1218
+msgid "cannot dynamically load position-independent executable"
msgstr ""
-#: elf/dl-load.c:1225
+#: elf/dl-load.c:1220
msgid "shared object cannot be dlopen()ed"
-msgstr ""
+msgstr "Ñупольны аб'ект немагчыма адкрыць праз dlopen()"
-#: elf/dl-load.c:1238
+#: elf/dl-load.c:1233
msgid "cannot allocate memory for program header"
msgstr "немагчыма выдзеліць памÑць Ð´Ð»Ñ Ð·Ð°Ð³Ð°Ð»Ð¾ÑžÐºÑƒ праграмы"
-#: elf/dl-load.c:1271 elf/dl-load.h:130
+#: elf/dl-load.c:1266 elf/dl-load.h:130
msgid "cannot change memory protections"
-msgstr ""
+msgstr "не ўдалоÑÑ Ð·Ð¼Ñніць абарону памÑці"
-#: elf/dl-load.c:1291
+#: elf/dl-load.c:1286
msgid "cannot enable executable stack as shared object requires"
-msgstr ""
+msgstr "не ўдалоÑÑ ÑžÐºÐ»ÑŽÑ‡Ñ‹Ñ†ÑŒ выканальны ÑÑ‚Ñк, Ñк патрабуе Ñупольны аб'ект"
-#: elf/dl-load.c:1304
+#: elf/dl-load.c:1299
msgid "cannot close file descriptor"
msgstr "немагчыма закрыць дÑÑкрыптар файла"
-#: elf/dl-load.c:1560
+#: elf/dl-load.c:1555
msgid "file too short"
-msgstr ""
+msgstr "файл закароткі"
-#: elf/dl-load.c:1595
+#: elf/dl-load.c:1590
msgid "invalid ELF header"
-msgstr ""
+msgstr "нÑправільны загаловак ELF"
-#: elf/dl-load.c:1607
+#: elf/dl-load.c:1602
msgid "ELF file data encoding not big-endian"
-msgstr ""
+msgstr "кадаванне даных файла ELF не big-endian"
-#: elf/dl-load.c:1609
+#: elf/dl-load.c:1604
msgid "ELF file data encoding not little-endian"
-msgstr ""
+msgstr "кадаванне даных файла ELF не little-endian"
-#: elf/dl-load.c:1613
+#: elf/dl-load.c:1608
msgid "ELF file version ident does not match current one"
-msgstr ""
+msgstr "ідÑнтыфікатар верÑÑ–Ñ– файла ELF не адпавÑдае актуальнай верÑÑ–Ñ–"
-#: elf/dl-load.c:1617
+#: elf/dl-load.c:1612
msgid "ELF file OS ABI invalid"
-msgstr ""
+msgstr "нÑправільны ABI ÑÑ–ÑÑ‚Ñмы файла ELF"
-#: elf/dl-load.c:1620
+#: elf/dl-load.c:1615
msgid "ELF file ABI version invalid"
msgstr "ÐÑÐ¿Ñ€Ð°Ð²Ñ–Ð»ÑŒÐ½Ð°Ñ Ð²ÐµÑ€ÑÑ–Ñ ABI ELF файла"
-#: elf/dl-load.c:1623
+#: elf/dl-load.c:1618
msgid "nonzero padding in e_ident"
-msgstr ""
+msgstr "дапаўненне Ñž e_ident ненулÑвое"
-#: elf/dl-load.c:1626
+#: elf/dl-load.c:1621
msgid "internal error"
msgstr "ÑƒÐ½ÑƒÑ‚Ñ€Ð°Ð½Ð°Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ°"
-#: elf/dl-load.c:1633
+#: elf/dl-load.c:1628
msgid "ELF file version does not match current one"
-msgstr ""
+msgstr "верÑÑ–Ñ Ñ„Ð°Ð¹Ð»Ð° ELF не адпавÑдае актуальнай верÑÑ–Ñ–"
-#: elf/dl-load.c:1641
+#: elf/dl-load.c:1636
msgid "only ET_DYN and ET_EXEC can be loaded"
-msgstr ""
+msgstr "можна загрузіць толькі ET_DYN і ET_EXEC"
-#: elf/dl-load.c:1657
+#: elf/dl-load.c:1652
msgid "ELF file's phentsize not the expected size"
-msgstr ""
+msgstr "phentsize файла ELF нечаканага памеру"
-#: elf/dl-load.c:2222
+#: elf/dl-load.c:2217
msgid "wrong ELF class: ELFCLASS64"
-msgstr ""
+msgstr "нÑправільны ÐºÐ»Ð°Ñ ELF: ELFCLASS64"
-#: elf/dl-load.c:2223
+#: elf/dl-load.c:2218
msgid "wrong ELF class: ELFCLASS32"
-msgstr ""
+msgstr "нÑправільны ÐºÐ»Ð°Ñ ELF: ELFCLASS32"
-#: elf/dl-load.c:2226
+#: elf/dl-load.c:2221
msgid "cannot open shared object file"
-msgstr ""
+msgstr "не ўдалоÑÑ Ð°Ð´ÐºÑ€Ñ‹Ñ†ÑŒ Ñупольны аб'ектны файл"
#: elf/dl-load.h:128
msgid "failed to map segment from shared object"
-msgstr ""
+msgstr "не ўдалоÑÑ Ð·Ð°Ð³Ñ€ÑƒÐ·Ñ–Ñ†ÑŒ Ñегмент з Ñупольнага аб'екта"
#: elf/dl-load.h:132
msgid "cannot map zero-fill pages"
-msgstr ""
-
-#: elf/dl-lookup.c:835
-msgid "relocation error"
-msgstr ""
+msgstr "Ð·Ð°Ð¿Ð¾ÑžÐ½ÐµÐ½Ñ‹Ñ Ð½ÑƒÐ»Ñмі Ñтаронкі нельга адлюÑтроўваць"
-#: elf/dl-lookup.c:858
+#: elf/dl-lookup.c:830
msgid "symbol lookup error"
-msgstr ""
+msgstr "памылка пошуку Ñімвалу"
#: elf/dl-open.c:99
msgid "cannot extend global scope"
-msgstr ""
+msgstr "не ўдалоÑÑ Ð¿Ð°ÑˆÑ‹Ñ€Ñ‹Ñ†ÑŒ глабальную праÑтору"
-#: elf/dl-open.c:470
+#: elf/dl-open.c:474
msgid "TLS generation counter wrapped! Please report this."
-msgstr ""
+msgstr "лічыльнік генерацыі TLS перапоўніўÑÑ! Паведаміце пра гÑта."
-#: elf/dl-open.c:534
+#: elf/dl-open.c:538
msgid "invalid mode for dlopen()"
-msgstr ""
+msgstr "нÑправільны Ñ€Ñжым Ð´Ð»Ñ dlopen()"
-#: elf/dl-open.c:551
+#: elf/dl-open.c:555
msgid "no more namespaces available for dlmopen()"
-msgstr ""
+msgstr "Ð´Ð»Ñ dlmopen() больш нÑма праÑтораў назваў"
-#: elf/dl-open.c:575
+#: elf/dl-open.c:579
msgid "invalid target namespace in dlmopen()"
-msgstr ""
+msgstr "нÑÐ¿Ñ€Ð°Ð²Ñ–Ð»ÑŒÐ½Ð°Ñ Ð¿Ñ€Ð°Ñтора назваў прызначÑÐ½Ð½Ñ Ñž dlmopen()"
#: elf/dl-reloc.c:120
msgid "cannot allocate memory in static TLS block"
msgstr "немагчыма размеркаваць памÑць Ñž Ñтатычным блоку TLS"
-#: elf/dl-reloc.c:205
+#: elf/dl-reloc.c:213
msgid "cannot make segment writable for relocation"
-msgstr ""
+msgstr "нельга зрабіць Ñегмент запіÑвальным Ð´Ð»Ñ Ñ€Ñлакацыі"
-#: elf/dl-reloc.c:276
+#: elf/dl-reloc.c:272
#, c-format
msgid "%s: out of memory to store relocation results for %s\n"
-msgstr ""
+msgstr "%s: недаÑтаткова памÑці, каб захаваць вынікі Ñ€Ñлакацыі Ð´Ð»Ñ %s\n"
-#: elf/dl-reloc.c:292
+#: elf/dl-reloc.c:288
msgid "cannot restore segment prot after reloc"
-msgstr ""
+msgstr "не ўдалоÑÑ Ð°Ð´Ð½Ð°Ð²Ñ–Ñ†ÑŒ ахову Ñегмента паÑÐ»Ñ Ð¿ÐµÑ€Ð°Ð¼ÑшчÑннÑ"
-#: elf/dl-reloc.c:323
+#: elf/dl-reloc.c:319
msgid "cannot apply additional memory protection after relocation"
-msgstr ""
+msgstr "не ўдалоÑÑ ÑžÐ¶Ñ‹Ñ†ÑŒ дадатковую ахову памÑці паÑÐ»Ñ Ð¿ÐµÑ€Ð°Ð¼ÑшчÑннÑ"
#: elf/dl-sym.c:136
msgid "RTLD_NEXT used in code not dynamically loaded"
-msgstr ""
+msgstr "RTLD_NEXT выкарыÑтаны Ñž кодзе, Ñкі не загружаны дынамічна"
#: elf/dl-tls.c:931
msgid "cannot create TLS data structures"
@@ -687,15 +693,15 @@ msgstr "немагчыма Ñтварыць Ñтруктуры даных TLS"
#: elf/dl-version.c:148
msgid "version lookup error"
-msgstr ""
+msgstr "памылка пошуку верÑÑ–Ñ–"
#: elf/dl-version.c:279
msgid "cannot allocate version reference table"
-msgstr ""
+msgstr "не ўдалоÑÑ Ð²Ñ‹Ð´Ð·ÐµÐ»Ñ–Ñ†ÑŒ памÑць Ð´Ð»Ñ Ñ‚Ð°Ð±Ð»Ñ–Ñ†Ñ‹ ÑпаÑылак на верÑÑ–Ñ–"
#: elf/ldconfig.c:142
msgid "Print cache"
-msgstr ""
+msgstr "Ðадрукаваць кÑш"
#: elf/ldconfig.c:143
msgid "Generate verbose messages"
@@ -711,15 +717,15 @@ msgstr "Ðе абнаўлÑць ÑÑ–Ð¼Ð²Ð°Ð»Ñ–Ñ‡Ð½Ñ‹Ñ ÑпаÑылкі"
#: elf/ldconfig.c:146
msgid "Change to and use ROOT as root directory"
-msgstr ""
+msgstr "ПерайÑці Ñž КОРÐÐЬ Ñ– ўжыць Ñго Ñк каранёвы каталог"
#: elf/ldconfig.c:146
msgid "ROOT"
-msgstr ""
+msgstr "КОРÐÐЬ"
#: elf/ldconfig.c:147
msgid "CACHE"
-msgstr ""
+msgstr "КЭШ"
#: elf/ldconfig.c:147
msgid "Use CACHE as cache file"
@@ -727,70 +733,70 @@ msgstr "Ужываць КЭШ у ÑкаÑці кÑш-файла"
#: elf/ldconfig.c:148
msgid "CONF"
-msgstr ""
+msgstr "КÐÐФ"
#: elf/ldconfig.c:148
msgid "Use CONF as configuration file"
-msgstr ""
+msgstr "Ужыць КÐÐФ у ÑкаÑці канфігурацыйнага файла"
#: elf/ldconfig.c:149
msgid "Only process directories specified on the command line. Don't build cache."
-msgstr ""
+msgstr "Ðпрацаваць толькі каталогі Ñž камандным радку. Ðе Ñтвараць кÑш."
#: elf/ldconfig.c:150
msgid "Manually link individual libraries."
-msgstr ""
+msgstr "Злучыць аÑÐ¾Ð±Ð½Ñ‹Ñ Ð±Ñ–Ð±Ð»Ñ–ÑÑ‚Ñкі ўручную з"
#: elf/ldconfig.c:151
msgid "FORMAT"
-msgstr ""
+msgstr "ФÐРМÐТ"
#: elf/ldconfig.c:151
msgid "Format to use: new, old or compat (default)"
-msgstr ""
+msgstr "Ужыць: new, old ці compat (Ñтандартны)"
#: elf/ldconfig.c:152
msgid "Ignore auxiliary cache file"
-msgstr ""
+msgstr "Ігнараваць дапаможны кÑш-файл"
#: elf/ldconfig.c:160
msgid "Configure Dynamic Linker Run Time Bindings."
-msgstr ""
+msgstr "Cканфігураваць ÑувÑзі Ð¿Ð°Ð´Ñ‡Ð°Ñ Ð²Ñ‹ÐºÐ°Ð½Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð´Ñ‹Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð°Ð³Ð° лінкера"
#: elf/ldconfig.c:347
#, c-format
msgid "Path `%s' given more than once"
-msgstr ""
+msgstr "ШлÑÑ… `%s' пададзены некалькі разоў"
#: elf/ldconfig.c:387
#, c-format
msgid "%s is not a known library type"
-msgstr "%s - гÑта невÑдомы від бібліÑÑ‚Ñкі"
+msgstr "%s - гÑта невÑдомы тып бібліÑÑ‚Ñкі"
#: elf/ldconfig.c:415
#, c-format
msgid "Can't stat %s"
-msgstr ""
+msgstr "Ðемагчыма зрабіць stat %s"
#: elf/ldconfig.c:489
#, c-format
msgid "Can't stat %s\n"
-msgstr ""
+msgstr "Ðемагчыма зрабіць stat %s\n"
#: elf/ldconfig.c:499
#, c-format
msgid "%s is not a symbolic link\n"
-msgstr "%s - гÑта Ð½Ñ Ð·Ð½Ð°ÐºÐ°Ð²Ðµ лучыва\n"
+msgstr "%s - гÑта не ÑÑ–Ð¼Ð²Ð°Ð»ÑŒÐ½Ð°Ñ ÑпаÑылка\n"
#: elf/ldconfig.c:518
#, c-format
msgid "Can't unlink %s"
-msgstr ""
+msgstr "Ðемагчыма зрабіць unlink %s"
#: elf/ldconfig.c:524
#, c-format
msgid "Can't link %s to %s"
-msgstr ""
+msgstr "Ðемагчыма зрабіць ÑпаÑылку %s на %s"
#: elf/ldconfig.c:530
msgid " (changed)\n"
@@ -803,7 +809,7 @@ msgstr " (ПРÐПУШЧÐÐÐ)\n"
#: elf/ldconfig.c:587
#, c-format
msgid "Can't find %s"
-msgstr ""
+msgstr "Ðемагчыма знайÑці %s"
#: elf/ldconfig.c:603 elf/ldconfig.c:769 elf/ldconfig.c:825 elf/ldconfig.c:857
#, c-format
@@ -813,22 +819,22 @@ msgstr "Ðемагчыма зрабіць lstat %s"
#: elf/ldconfig.c:610
#, c-format
msgid "Ignored file %s since it is not a regular file."
-msgstr ""
+msgstr "Файл %s праігнараваны, бо ён не Ñ‘Ñць звычайным файлам."
#: elf/ldconfig.c:619
#, c-format
msgid "No link created since soname could not be found for %s"
-msgstr ""
+msgstr "СпаÑылка не ÑтворанаÑ, бо не знойдзены soname Ð´Ð»Ñ %s"
#: elf/ldconfig.c:702
#, c-format
msgid "Can't open directory %s"
-msgstr "Ðемагчыма адчыніць Ñ‚Ñчку %s"
+msgstr "Ðемагчыма адкрыць каталог %s"
#: elf/ldconfig.c:787 elf/ldconfig.c:845 elf/readlib.c:97
#, c-format
msgid "Input file %s not found.\n"
-msgstr "Файл уводу %s неадшуканы.\n"
+msgstr "Файл уводу %s не адшуканы.\n"
#: elf/ldconfig.c:794
#, c-format
@@ -838,52 +844,52 @@ msgstr "Ðемагчыма зрабіць stat %s"
#: elf/ldconfig.c:939
#, c-format
msgid "libc5 library %s in wrong directory"
-msgstr ""
+msgstr "libc5-бібліÑÑ‚Ñка %s у неадпаведным каталогу"
#: elf/ldconfig.c:942
#, c-format
msgid "libc6 library %s in wrong directory"
-msgstr ""
+msgstr "libc6-бібліÑÑ‚Ñка %s у неадпаведным каталогу"
#: elf/ldconfig.c:945
#, c-format
msgid "libc4 library %s in wrong directory"
-msgstr ""
+msgstr "libc4-бібліÑÑ‚Ñка %s у неадпаведным каталогу"
#: elf/ldconfig.c:973
#, c-format
msgid "libraries %s and %s in directory %s have same soname but different type."
-msgstr ""
+msgstr "бібліÑÑ‚Ñкі %s Ñ– %s у каталогу %s маюць аднолькавы soname, але Ð°Ð´Ñ€Ð¾Ð·Ð½Ñ‹Ñ Ñ‚Ñ‹Ð¿Ñ‹."
#: elf/ldconfig.c:1082
#, c-format
msgid "Warning: ignoring configuration file that cannot be opened: %s"
-msgstr ""
+msgstr "ПапÑÑ€Ñджаньне: ігнаруецца канфігурацыйны файл, Ñкі немагчыма адкрыць: %s"
#: elf/ldconfig.c:1148
#, c-format
msgid "%s:%u: bad syntax in hwcap line"
-msgstr ""
+msgstr "%s:%u: нÑправільны ÑінтакÑÑ–Ñ Ñƒ радку hwcap"
#: elf/ldconfig.c:1154
#, c-format
msgid "%s:%u: hwcap index %lu above maximum %u"
-msgstr ""
+msgstr "%s:%u: індÑÐºÑ hwcap %lu вышÑй за макÑімум %u"
#: elf/ldconfig.c:1161 elf/ldconfig.c:1169
#, c-format
msgid "%s:%u: hwcap index %lu already defined as %s"
-msgstr ""
+msgstr "%s:%u: індÑÐºÑ hwcap %lu ужо вызначаны Ñк %s"
#: elf/ldconfig.c:1172
#, c-format
msgid "%s:%u: duplicate hwcap %lu %s"
-msgstr ""
+msgstr "%s:%u: паўторны hwcap %lu %s"
#: elf/ldconfig.c:1194
#, c-format
msgid "need absolute file name for configuration file when using -r"
-msgstr ""
+msgstr "пры ўжыванні -r патрÑбна абÑÐ°Ð»ÑŽÑ‚Ð½Ð°Ñ Ð½Ð°Ð·Ð²Ð° канфігурацыйнага файла"
#: elf/ldconfig.c:1201 locale/programs/xmalloc.c:63 malloc/obstack.c:416
#: malloc/obstack.c:418 posix/getconf.c:458 posix/getconf.c:697
@@ -891,25 +897,25 @@ msgstr ""
msgid "memory exhausted"
msgstr "памÑць вычарпана"
-#: elf/ldconfig.c:1233
+#: elf/ldconfig.c:1234
#, c-format
msgid "%s:%u: cannot read directory %s"
msgstr "%s:%u: немагчыма прачытаць каталог %s"
-#: elf/ldconfig.c:1281
+#: elf/ldconfig.c:1282
#, c-format
msgid "relative path `%s' used to build cache"
-msgstr ""
+msgstr "пры ÑтварÑнні кÑшу ўжыты адноÑны шлÑÑ… `%s'"
-#: elf/ldconfig.c:1311
+#: elf/ldconfig.c:1312
#, c-format
msgid "Can't chdir to /"
-msgstr ""
+msgstr "Ðемагчыма перайÑці Ñž каталог /"
-#: elf/ldconfig.c:1352
+#: elf/ldconfig.c:1353
#, c-format
msgid "Can't open cache file directory %s\n"
-msgstr ""
+msgstr "Ðемагчыма адкрыць каталог кÑш-файла %s\n"
#: elf/ldd.bash.in:42
msgid "Written by %s and %s.\n"
@@ -925,147 +931,159 @@ msgid ""
" -u, --unused print unused direct dependencies\n"
" -v, --verbose print all information\n"
msgstr ""
+"ВыкарыÑтанне: ldd [ОПЦЫЯ]... ФÐЙЛ...\n"
+" --help надрукаваць гÑтую даведку Ñ– выйÑці\n"
+" --version надрукаваць звеÑткі аб верÑÑ–Ñ– Ñ– выйÑці\n"
+" -d, --data-relocs апрацаваць перамÑшчÑнні даных\n"
+" -r, --function-relocs апрацаваць перамÑшчÑнні даных Ñ– функцыÑÑž\n"
+" -u, --unused надрукаваць неÑкарыÑÑ‚Ð°Ð½Ñ‹Ñ Ð¿Ñ€Ð¾ÑÑ‚Ñ‹Ñ Ð·Ð°Ð»ÐµÐ¶Ð½Ð°Ñці\n"
+" -v, --verbose надрукаваць уÑÑŽ інфармацыю\n"
#: elf/ldd.bash.in:80
msgid "ldd: option \\`$1' is ambiguous"
-msgstr ""
+msgstr "ldd: Ð¾Ð¿Ñ†Ñ‹Ñ \\`$1' Ñ‘Ñць неадназначнай"
#: elf/ldd.bash.in:87
msgid "unrecognized option"
-msgstr ""
+msgstr "невÑÐ´Ð¾Ð¼Ð°Ñ Ð¾Ð¿Ñ†Ñ‹Ñ"
#: elf/ldd.bash.in:88 elf/ldd.bash.in:125
msgid "Try \\`ldd --help' for more information."
-msgstr ""
+msgstr "Каб даведацца болей, ÑкарыÑтайце \\`ldd --help'."
#: elf/ldd.bash.in:124
msgid "missing file arguments"
-msgstr ""
+msgstr "Ñ„Ð°Ð¹Ð»Ð°Ð²Ñ‹Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ñ‹ адÑутнічаюць"
#. TRANS This is a ``file doesn't exist'' error
#. TRANS for ordinary files that are referenced in contexts where they are
#. TRANS expected to already exist.
#: elf/ldd.bash.in:147 sysdeps/gnu/errlist.c:37
msgid "No such file or directory"
-msgstr "файл ці Ñ‚Ñчка Ð½Ñ Ð¹Ñнуе"
+msgstr "ÐÑма такога файла ці каталога"
#: elf/ldd.bash.in:150 inet/rcmd.c:480
msgid "not regular file"
-msgstr ""
+msgstr "не звычайны файл"
#: elf/ldd.bash.in:153
msgid "warning: you do not have execution permission for"
-msgstr ""
+msgstr "папÑÑ€Ñджанне: вы не маеце дазволу на выкананне длÑ"
#: elf/ldd.bash.in:170
msgid "\tnot a dynamic executable"
-msgstr ""
+msgstr "\tне Ñ‘Ñць дынамічным выканальным файлам"
#: elf/ldd.bash.in:178
msgid "exited with unknown exit code"
-msgstr ""
+msgstr "Ñкончылі з невÑдомым кодам выйÑцÑ"
#: elf/ldd.bash.in:183
msgid "error: you do not have read permission for"
-msgstr ""
+msgstr "памылка: не маеце дазволу на чытанне длÑ"
-#: elf/pldd-xx.c:105
+#: elf/pldd-xx.c:102
#, c-format
msgid "cannot find program header of process"
-msgstr ""
+msgstr "не ўдалоÑÑ Ð·Ð½Ð°Ð¹Ñці загаловак праграмы Ñž працÑÑе"
-#: elf/pldd-xx.c:110
+#: elf/pldd-xx.c:106
#, c-format
msgid "cannot read program header"
-msgstr ""
+msgstr "не ўдалоÑÑ Ð¿Ñ€Ð°Ñ‡Ñ‹Ñ‚Ð°Ñ†ÑŒ загаловак праграмы"
-#: elf/pldd-xx.c:135
+#: elf/pldd-xx.c:128
#, c-format
msgid "cannot read dynamic section"
-msgstr ""
+msgstr "немагчыма прачытаць дынамічную Ñекцыю"
-#: elf/pldd-xx.c:147
+#: elf/pldd-xx.c:137
#, c-format
msgid "cannot read r_debug"
-msgstr ""
+msgstr "немагчыма прачытаць r_debug"
-#: elf/pldd-xx.c:167
+#: elf/pldd-xx.c:154
#, c-format
msgid "cannot read program interpreter"
-msgstr ""
+msgstr "не ўдалоÑÑ Ð¿Ñ€Ð°Ñ‡Ñ‹Ñ‚Ð°Ñ†ÑŒ інтÑрпрÑтатар праграмы"
-#: elf/pldd-xx.c:197
+#: elf/pldd-xx.c:183
#, c-format
msgid "cannot read link map"
-msgstr ""
+msgstr "немагчыма прачытаць карту ÑпаÑылак"
-#: elf/pldd-xx.c:209
+#: elf/pldd-xx.c:190
#, c-format
msgid "cannot read object name"
-msgstr ""
+msgstr "немагчыма прачытаць назву аб'екта"
-#: elf/pldd-xx.c:219
+#: elf/pldd-xx.c:197
#, c-format
msgid "cannot allocate buffer for object name"
-msgstr ""
+msgstr "немагчыма размеркаваць буфер Ð´Ð»Ñ Ð½Ð°Ð·Ð²Ñ‹ аб'екта"
-#: elf/pldd.c:64
+#: elf/pldd.c:58
msgid "List dynamic shared objects loaded into process."
-msgstr ""
+msgstr "Ð¡Ð¿Ñ–Ñ Ð´Ñ‹Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ñ‹Ñ… агульных аб'ектаў загружаны Ñž працÑÑ."
-#: elf/pldd.c:68
+#: elf/pldd.c:62
msgid "PID"
-msgstr ""
+msgstr "PID"
-#: elf/pldd.c:100
+#: elf/pldd.c:89
#, c-format
msgid "Exactly one parameter with process ID required.\n"
-msgstr ""
+msgstr "ПатрÑбны толькі адзін параметр з ID працÑÑу.\n"
-#: elf/pldd.c:112
+#: elf/pldd.c:103
#, c-format
msgid "invalid process ID '%s'"
-msgstr ""
+msgstr "нÑправільны ID працÑÑу '%s'"
-#: elf/pldd.c:120
+#: elf/pldd.c:111
#, c-format
msgid "cannot open %s"
-msgstr ""
+msgstr "немагчыма адкрыць %s"
-#: elf/pldd.c:152
+#: elf/pldd.c:142
#, c-format
msgid "cannot open %s/task"
-msgstr ""
+msgstr "немагчыма адкрыць %s/task"
-#: elf/pldd.c:155
+#: elf/pldd.c:145
#, c-format
msgid "cannot prepare reading %s/task"
-msgstr ""
+msgstr "немагчыма падрыхтавацца да Ñ‡Ñ‹Ñ‚Ð°Ð½Ð½Ñ %s/task"
-#: elf/pldd.c:168
+#: elf/pldd.c:158
#, c-format
msgid "invalid thread ID '%s'"
-msgstr ""
+msgstr "нÑправільны ID ніці '%s'"
-#: elf/pldd.c:179
+#: elf/pldd.c:169
#, c-format
msgid "cannot attach to process %lu"
+msgstr "немагчыма далучыцца да працÑÑу %lu"
+
+#: elf/pldd.c:184
+#, c-format
+msgid "no valid %s/task entries"
msgstr ""
-#: elf/pldd.c:294
+#: elf/pldd.c:290
#, c-format
msgid "cannot get information about process %lu"
-msgstr ""
+msgstr "немагчыма атрымаць інфармацыю аб працÑÑе %lu"
-#: elf/pldd.c:307
+#: elf/pldd.c:303
#, c-format
msgid "process %lu is no ELF program"
-msgstr ""
+msgstr "Ñегмент %lu не Ñ‘Ñць праграмай ELF"
#: elf/readelflib.c:34
#, c-format
msgid "file %s is truncated\n"
-msgstr ""
+msgstr "файл %s абрÑзаны\n"
#: elf/readelflib.c:66
#, c-format
@@ -1080,37 +1098,37 @@ msgstr "%s - гÑта 64-Ñ… бітны ELF файл.\n"
#: elf/readelflib.c:70
#, c-format
msgid "Unknown ELFCLASS in file %s.\n"
-msgstr ""
+msgstr "ÐевÑдомы ELFCLASS у файле %s.\n"
#: elf/readelflib.c:77
#, c-format
msgid "%s is not a shared object file (Type: %d).\n"
-msgstr ""
+msgstr "%s не Ñ‘Ñць абагуленым аб'ектным файлам (Тып: %d).\n"
#: elf/readelflib.c:108
#, c-format
msgid "more than one dynamic segment\n"
-msgstr ""
+msgstr "больш за адзін дынамічны Ñегмент\n"
#: elf/readlib.c:103
#, c-format
msgid "Cannot fstat file %s.\n"
-msgstr ""
+msgstr "Ðемагчыма зрабіць fstat файла %s.\n"
#: elf/readlib.c:114
#, c-format
msgid "File %s is empty, not checked."
-msgstr ""
+msgstr "Файл %s пуÑÑ‚Ñ‹, не правераны."
#: elf/readlib.c:120
#, c-format
msgid "File %s is too small, not checked."
-msgstr ""
+msgstr "Файл %s замалы, не правераны."
#: elf/readlib.c:130
#, c-format
msgid "Cannot mmap file %s.\n"
-msgstr ""
+msgstr "Ðемагчыма зрабіць mmap файла %s.\n"
#: elf/readlib.c:169
#, c-format
@@ -1123,6 +1141,8 @@ msgid ""
"Usage: sln src dest|file\n"
"\n"
msgstr ""
+"ВыкарыÑтанне: sln крыніца прызначÑнне|файл\n"
+"\n"
#: elf/sln.c:97
#, c-format
@@ -1132,27 +1152,27 @@ msgstr "%s: памылка Ð°Ð´ÐºÑ€Ñ‹Ñ†Ñ†Ñ Ñ„Ð°Ð¹Ð»Ð°: %m\n"
#: elf/sln.c:134
#, c-format
msgid "No target in line %d\n"
-msgstr ""
+msgstr "У радку %d нÑма мÑÑ‚Ñ‹\n"
#: elf/sln.c:164
#, c-format
msgid "%s: destination must not be a directory\n"
-msgstr ""
+msgstr "%s: прызначÑнне не можа быць каталогам\n"
#: elf/sln.c:170
#, c-format
msgid "%s: failed to remove the old destination\n"
-msgstr ""
+msgstr "%s: не ўдалоÑÑ Ð²Ñ‹Ð´Ð°Ð»Ñ–Ñ†ÑŒ Ñтарое прызначÑнне\n"
#: elf/sln.c:178
#, c-format
msgid "%s: invalid destination: %s\n"
-msgstr ""
+msgstr "%s: нÑправільнае прызначÑнне: %s\n"
#: elf/sln.c:189 elf/sln.c:198
#, c-format
msgid "Invalid link from \"%s\" to \"%s\": %s\n"
-msgstr ""
+msgstr "ÐÑÐ¿Ñ€Ð°Ð²Ñ–Ð»ÑŒÐ½Ð°Ñ ÑувÑзь \"%s\" на \"%s\": %s\n"
#: elf/sotruss.sh:32
#, sh-format
@@ -1170,22 +1190,34 @@ msgid ""
" --usage Give a short usage message\n"
" --version Print program version"
msgstr ""
+"ВыкарыÑтанне: sotruss [ОПЦЫЯ...] [--] ПРÐГРÐМР[ОПЦЫЯ-ПРÐГРÐМЫ...]\n"
+" -F, --from СПІС-ÐД Сачыць за выклікамі ад аб'ектаў з ÑпіÑу СПІС-ÐД\n"
+" -T, --to СПІС-ДРСачыць за выклікамі да аб'ектаў з ÑпіÑу СПІС-ДÐ\n"
+"\n"
+" -e, --exit ТакÑама паказаць выхады з гÑÑ‚Ñ‹Ñ… функцыÑÑž\n"
+" -f, --follow Сачыць за працÑÑамі-нашчадкамі\n"
+" -o, --output ÐÐЗВÐ-ФÐЙЛРЗапіÑаць вывад у файл ÐÐЗВÐ-ФÐЙЛР(ці ÐÐЗВÐ-ФÐЙЛÐ.$PID, калі\n"
+"\t\t\t такÑама ўжыты -f) замеÑÑ‚ Ñтандартнага патоку памылак\n"
+"\n"
+" -?, --help Даць гÑÑ‚Ñ‹ ÑÐ¿Ñ–Ñ Ð²Ñ‹ÐºÐ°Ñ€Ñ‹ÑтаннÑ\n"
+" --usage Даць кароткае паведамленне аб выкарыÑтанні\n"
+" --version Ðадрукаваць верÑÑ–ÑŽ праграмы"
#: elf/sotruss.sh:46
msgid "Mandatory arguments to long options are also mandatory for any corresponding\\nshort options.\\n"
-msgstr ""
+msgstr "ÐбавÑÐ·ÐºÐ¾Ð²Ñ‹Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ñ‹ Ð´Ð»Ñ Ð´Ð¾ÑžÐ³Ñ–Ñ… опцыÑÑž з'ÑўлÑюцца абавÑзковымі Ñ– Ð´Ð»Ñ Ð°Ð´Ð¿Ð°Ð²ÐµÐ´Ð½Ñ‹Ñ…\\nкароткіх опцыÑÑž.\\n"
#: elf/sotruss.sh:55
msgid "%s: option requires an argument -- '%s'\\n"
-msgstr ""
+msgstr "%s: Ð¾Ð¿Ñ†Ñ‹Ñ Ð¿Ð°Ñ‚Ñ€Ð°Ð±ÑƒÐµ аргумента -- '%s'\\n"
#: elf/sotruss.sh:61
msgid "%s: option is ambiguous; possibilities:"
-msgstr ""
+msgstr "%s: Ð¾Ð¿Ñ†Ñ‹Ñ Ð½ÐµÐ°Ð´Ð½Ð°Ð·Ð½Ð°Ñ‡Ð½Ð°Ñ; магчымыÑ:"
#: elf/sotruss.sh:79
msgid "Written by %s.\\n"
-msgstr ""
+msgstr "Ðўтар %s.\\n"
#: elf/sotruss.sh:86
msgid ""
@@ -1194,39 +1226,43 @@ msgid ""
"\t [--help] [--usage] [--version] [--]\n"
"\t EXECUTABLE [EXECUTABLE-OPTION...]\\n"
msgstr ""
+"ВыкарыÑтанне: %s [-ef] [-F СПІС_ÐДКУЛЬ] [-o ÐÐЗВÐ_ФÐЙЛÐ] [-T СПІС_КУДЫ] [--exit]\n"
+"\t [--follow] [--from СПІС_ÐДКУЛЬ] [--output ÐÐЗВÐ_ФÐЙЛÐ] [--to СПІС_КУДЫ]\n"
+"\t [--help] [--usage] [--version] [--]\n"
+"\t ПРÐГРÐМР[ОПЦЫЯ-ПРÐГРÐМЫ...]\\n"
#: elf/sotruss.sh:134
msgid "%s: unrecognized option '%c%s'\\n"
-msgstr ""
+msgstr "%s: невÑÐ´Ð¾Ð¼Ð°Ñ Ð¾Ð¿Ñ†Ñ‹Ñ '%c%s'\\n%s: unrecognized option '%c%s'\\n"
#: elf/sprof.c:77
msgid "Output selection:"
-msgstr ""
+msgstr "Выбар вываду:"
#: elf/sprof.c:79
msgid "print list of count paths and their number of use"
-msgstr ""
+msgstr "надрукаваць ÑÐ¿Ñ–Ñ ÑˆÐ»Ñхоў лічыльнікаў Ñ– колькаÑць Ñ–Ñ… ужываннÑ"
#: elf/sprof.c:81
msgid "generate flat profile with counts and ticks"
-msgstr ""
+msgstr "Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ñ‹Ñ Ð¿Ñ€Ð¾Ñтага профілю з лічыльнікамі Ñ– цікамі"
#: elf/sprof.c:82
msgid "generate call graph"
-msgstr ""
+msgstr "Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ñ‹Ñ Ð³Ñ€Ð°Ñ„Ñ–ÐºÐ° выклікаў"
#: elf/sprof.c:89
msgid "Read and display shared object profiling data."
-msgstr ""
+msgstr "Прачытаць Ñ– выдаць Ð´Ð°Ð½Ñ‹Ñ Ð¿Ñ€Ð°Ñ„Ñ–Ð»ÑÐ²Ð°Ð½Ð½Ñ Ð°Ð³ÑƒÐ»ÑŒÐ½Ñ‹Ñ… аб'ектаў."
#: elf/sprof.c:94
msgid "SHOBJ [PROFDATA]"
-msgstr ""
+msgstr "ÐГУЛЬÐЫ_ÐБ'ЕКТ [ПРÐФІЛЯВÐЛЬÐЫЯ_ДÐÐЫЯ]"
#: elf/sprof.c:433
#, c-format
msgid "failed to load shared object `%s'"
-msgstr ""
+msgstr "немагчыма загрузіць агульны аб'ект `%s'"
#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923
#, c-format
@@ -1236,72 +1272,72 @@ msgstr "немагчыма Ñтварыць унутраны дÑÑкрыптаÑ
#: elf/sprof.c:554
#, c-format
msgid "Reopening shared object `%s' failed"
-msgstr ""
+msgstr "Ðе ўдалоÑÑ Ð¿ÐµÑ€Ð°Ð°Ð´ÐºÑ€Ñ‹Ñ†ÑŒ агульны аб'ект `%s'"
#: elf/sprof.c:561 elf/sprof.c:656
#, c-format
msgid "reading of section headers failed"
-msgstr ""
+msgstr "не ўдалоÑÑ Ð¿Ñ€Ð°Ñ‡Ñ‹Ñ‚Ð°Ñ†ÑŒ загалоўкі ÑекцыÑÑž"
#: elf/sprof.c:569 elf/sprof.c:664
#, c-format
msgid "reading of section header string table failed"
-msgstr ""
+msgstr "не ўдалоÑÑ Ð¿Ñ€Ð°Ñ‡Ñ‹Ñ‚Ð°Ñ†ÑŒ табліцу радкоў загалоўкаў ÑекцыÑÑž"
#: elf/sprof.c:595
#, c-format
msgid "*** Cannot read debuginfo file name: %m\n"
-msgstr ""
+msgstr "*** Ðе ўдалоÑÑ Ð¿Ñ€Ð°Ñ‡Ñ‹Ñ‚Ð°Ñ†ÑŒ назву файла адладкі: %m\n"
#: elf/sprof.c:616
#, c-format
msgid "cannot determine file name"
-msgstr ""
+msgstr "немагчыма вызначыць назву файла"
#: elf/sprof.c:649
#, c-format
msgid "reading of ELF header failed"
-msgstr ""
+msgstr "не ўдалоÑÑ Ð¿Ñ€Ð°Ñ‡Ñ‹Ñ‚Ð°Ñ†ÑŒ загаловак ELF"
#: elf/sprof.c:685
#, c-format
msgid "*** The file `%s' is stripped: no detailed analysis possible\n"
-msgstr ""
+msgstr "*** Файл `%s' ачышчаны: падрабÑзны аналіз немагчымы\n"
#: elf/sprof.c:715
#, c-format
msgid "failed to load symbol data"
-msgstr ""
+msgstr "не ўдалоÑÑ Ð·Ð°Ð³Ñ€ÑƒÐ·Ñ–Ñ†ÑŒ Ð´Ð°Ð½Ñ‹Ñ Ñімвала"
#: elf/sprof.c:780
#, c-format
msgid "cannot load profiling data"
-msgstr ""
+msgstr "не ўдаецца загрузіць Ð´Ð°Ð½Ñ‹Ñ Ð¿Ñ€Ð°Ñ„Ñ–Ð»ÑваннÑ"
#: elf/sprof.c:789
#, c-format
msgid "while stat'ing profiling data file"
-msgstr ""
+msgstr "Ð¿Ð°Ð´Ñ‡Ð°Ñ Ð²Ñ‹Ð·Ð½Ð°Ñ‡ÑÐ½Ð½Ñ Ð°Ñ‚Ñ€Ñ‹Ð±ÑƒÑ‚Ð°Ñž файла даных прафілÑваннÑ"
#: elf/sprof.c:797
#, c-format
msgid "profiling data file `%s' does not match shared object `%s'"
-msgstr ""
+msgstr "файл даных прафілÑÐ²Ð°Ð½Ð½Ñ `%s' не адпавÑдае агульнаму аб'екту `%s'"
#: elf/sprof.c:808
#, c-format
msgid "failed to mmap the profiling data file"
-msgstr ""
+msgstr "не ўдалоÑÑ Ð·Ñ€Ð°Ð±Ñ–Ñ†ÑŒ mmap файла даных прафілÑваннÑ"
#: elf/sprof.c:816
#, c-format
msgid "error while closing the profiling data file"
-msgstr ""
+msgstr "памылка Ð¿Ð°Ð´Ñ‡Ð°Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ†Ñ†Ñ Ñ„Ð°Ð¹Ð»Ð° даных прафілÑваннÑ"
#: elf/sprof.c:899
#, c-format
msgid "`%s' is no correct profile data file for `%s'"
-msgstr ""
+msgstr "`%s' не Ñ‘Ñць карÑктным файлам даных прафілÑÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ `%s'"
#: elf/sprof.c:1080 elf/sprof.c:1138
#, c-format
@@ -1321,58 +1357,58 @@ msgstr "памылка пад Ñ‡Ð°Ñ Ð·Ð°Ñ‡Ñ‹Ð½ÐµÐ½ÑŒÐ½Ñ ÑžÐ²Ð¾Ð´Ñƒ \"%s\""
#: iconv/iconv_charmap.c:435
#, c-format
msgid "illegal input sequence at position %Zd"
-msgstr ""
+msgstr "нÑÐ¿Ñ€Ð°Ð²Ñ–Ð»ÑŒÐ½Ð°Ñ ÑžÐ²Ð°Ñ…Ð¾Ð´Ð½Ð°Ñ Ð¿Ð°ÑлÑдоўнаÑць на пазіцыі %Zd"
#: iconv/iconv_charmap.c:454 iconv/iconv_prog.c:536
#, c-format
msgid "incomplete character or shift sequence at end of buffer"
-msgstr ""
+msgstr "нÑпоўны знак альбо shift-паÑлÑдоўнаÑць у канцы буфера"
#: iconv/iconv_charmap.c:499 iconv/iconv_charmap.c:535 iconv/iconv_prog.c:579
#: iconv/iconv_prog.c:615
#, c-format
msgid "error while reading the input"
-msgstr "памылка пад Ñ‡Ð°Ñ Ñ‡Ñ‹Ñ‚Ð°Ð½ÑŒÐ½Ñ ÑžÐ²Ð¾Ð´Ñƒ"
+msgstr "памылка пад Ñ‡Ð°Ñ Ñ‡Ñ‹Ñ‚Ð°Ð½Ð½Ñ ÑžÐ²Ð¾Ð´Ñƒ"
#: iconv/iconv_charmap.c:517 iconv/iconv_prog.c:597
#, c-format
msgid "unable to allocate buffer for input"
-msgstr "немагчыма разьмеркавац буфар Ð´Ð»Ñ ÑžÐ²Ð¾Ð´Ñƒ"
+msgstr "немагчыма разьмеркаваць буфер Ð´Ð»Ñ ÑžÐ²Ð¾Ð´Ñƒ"
#: iconv/iconv_prog.c:59
msgid "Input/Output format specification:"
-msgstr "Пагадненьне аб фармаце ўводу-вываду:"
+msgstr "Пагадненне аб фармаце ўводу-вываду:"
#: iconv/iconv_prog.c:60
msgid "encoding of original text"
-msgstr "кадаваньне зыходнага Ñ‚ÑкÑту"
+msgstr "кадаванне зыходнага Ñ‚ÑкÑту"
#: iconv/iconv_prog.c:61
msgid "encoding for output"
-msgstr "кадаваньне Ð´Ð»Ñ Ð²Ñ‹Ð²Ð°Ð´Ñƒ"
+msgstr "кадаванне Ð´Ð»Ñ Ð²Ñ‹Ð²Ð°Ð´Ñƒ"
#: iconv/iconv_prog.c:62
msgid "Information:"
-msgstr "ЗьвеÑткі:"
+msgstr "ЗвеÑткі:"
#: iconv/iconv_prog.c:63
msgid "list all known coded character sets"
-msgstr ""
+msgstr "пералічыць уÑе вÑÐ´Ð¾Ð¼Ñ‹Ñ Ð·Ð½Ð°ÐºÐ°Ð·Ð±Ð¾Ñ€Ñ‹"
-#: iconv/iconv_prog.c:64 locale/programs/localedef.c:120
+#: iconv/iconv_prog.c:64 locale/programs/localedef.c:124
msgid "Output control:"
-msgstr "Кіраваньне вывадам:"
+msgstr "Кіраванне вывадам:"
#: iconv/iconv_prog.c:65
msgid "omit invalid characters from output"
-msgstr ""
+msgstr "прапуÑціць у вывадзе некарÑÐºÑ‚Ð½Ñ‹Ñ Ð·Ð½Ð°ÐºÑ–"
#: iconv/iconv_prog.c:66 iconv/iconvconfig.c:128
-#: locale/programs/localedef.c:113 locale/programs/localedef.c:115
-#: locale/programs/localedef.c:117 locale/programs/localedef.c:144
+#: locale/programs/localedef.c:117 locale/programs/localedef.c:119
+#: locale/programs/localedef.c:121 locale/programs/localedef.c:150
#: malloc/memusagestat.c:56
msgid "FILE"
-msgstr ""
+msgstr "ФÐЙЛ"
#: iconv/iconv_prog.c:66
msgid "output file"
@@ -1380,7 +1416,7 @@ msgstr "файл вываду"
#: iconv/iconv_prog.c:67
msgid "suppress warnings"
-msgstr ""
+msgstr "без папÑÑ€ÑджаннÑÑž"
#: iconv/iconv_prog.c:68
msgid "print progress information"
@@ -1397,52 +1433,52 @@ msgstr "[ФÐЙЛ...]"
#: iconv/iconv_prog.c:230
#, c-format
msgid "conversions from `%s' and to `%s' are not supported"
-msgstr ""
+msgstr "замены з `%s' Ñ– Ñž `%s' немагчымыÑ"
#: iconv/iconv_prog.c:235
#, c-format
msgid "conversion from `%s' is not supported"
-msgstr "пераўтварÑньне з \"%s\" непадтрымліваецца"
+msgstr "замена з \"%s\" немагчымае"
#: iconv/iconv_prog.c:242
#, c-format
msgid "conversion to `%s' is not supported"
-msgstr "пераўтварÑньне Ñž \"%s\" не падтрымліваецца"
+msgstr "замена Ñž `%s' немагчымаÑ"
#: iconv/iconv_prog.c:246
#, c-format
msgid "conversion from `%s' to `%s' is not supported"
-msgstr ""
+msgstr "замена з `%s' у `%s' немагчымаÑ"
#: iconv/iconv_prog.c:256
#, c-format
msgid "failed to start conversion processing"
-msgstr ""
+msgstr "не атрымалаÑÑ Ð¿Ð°Ñ‡Ð°Ñ†ÑŒ апрацоўку заменаў"
#: iconv/iconv_prog.c:354
#, c-format
msgid "error while closing output file"
-msgstr ""
+msgstr "памылка Ð¿Ð°Ð´Ñ‡Ð°Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ†Ñ†Ñ Ð²Ñ‹Ñ…Ð¾Ð´Ð½Ð°Ð³Ð° файла"
#: iconv/iconv_prog.c:455
#, c-format
msgid "conversion stopped due to problem in writing the output"
-msgstr ""
+msgstr "замена ÑÐ¿Ñ‹Ð½ÐµÐ½Ð°Ñ Ð·-за праблемы з запіÑам вываду"
#: iconv/iconv_prog.c:532
#, c-format
msgid "illegal input sequence at position %ld"
-msgstr ""
+msgstr "некарÑÐºÑ‚Ð½Ð°Ñ ÑžÐ²Ð°Ñ…Ð¾Ð´Ð½Ð°Ñ Ð¿Ð°ÑлÑдоўнаÑць у пазіцыі %ld"
#: iconv/iconv_prog.c:540
#, c-format
msgid "internal error (illegal descriptor)"
-msgstr ""
+msgstr "ÑƒÐ½ÑƒÑ‚Ñ€Ð°Ð½Ð°Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ° (забаронены дÑÑкрыптар)"
#: iconv/iconv_prog.c:543
#, c-format
msgid "unknown iconv() error %d"
-msgstr ""
+msgstr "невÑÐ´Ð¾Ð¼Ð°Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ° iconv() %d"
#: iconv/iconv_prog.c:786
msgid ""
@@ -1453,26 +1489,29 @@ msgid ""
"\n"
" "
msgstr ""
+"ÐаÑтупны ÑÐ¿Ñ–Ñ Ð·Ð¼Ñшчае ÑžÑе вÑÐ´Ð¾Ð¼Ñ‹Ñ Ð·Ð½Ð°ÐºÐ°Ð·Ð±Ð¾Ñ€Ñ‹. Ðе ÑžÑе камбінацыі гÑÑ‚Ñ‹Ñ… назваў можна ўжыць у параметрах каманднага радка ÐД Ñ– ДÐ. Ðдзін знаказбор можа мець некалькі адрозных назваў (пÑеўданімаў).\n"
+"\n"
+" "
#: iconv/iconvconfig.c:109
msgid "Create fastloading iconv module configuration file."
-msgstr ""
+msgstr "СтварÑнне хутказагружальнага канфігурацыйнага файла Ð´Ð»Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñ iconv."
#: iconv/iconvconfig.c:113
msgid "[DIR...]"
-msgstr ""
+msgstr "[КÐТÐЛОГ...]"
-#: iconv/iconvconfig.c:126 locale/programs/localedef.c:123
+#: iconv/iconvconfig.c:126 locale/programs/localedef.c:129
msgid "PATH"
-msgstr ""
+msgstr "ШЛЯХ"
#: iconv/iconvconfig.c:127
msgid "Prefix used for all file accesses"
-msgstr ""
+msgstr "ПрÑфікÑ, ужываны пры кожным доÑтупе да файла"
#: iconv/iconvconfig.c:128
msgid "Put output in FILE instead of installed location (--prefix does not apply to FILE)"
-msgstr ""
+msgstr "ВывеÑці Ñž ФÐЙЛ замеÑÑ‚ інÑталÑванага меÑца (--prefix не тарнуецца да FILE)"
#: iconv/iconvconfig.c:132
msgid "Do not search standard directories, only those on the command line"
@@ -1583,22 +1622,22 @@ msgstr ""
#: locale/programs/charmap-dir.c:56
#, c-format
msgid "cannot read character map directory `%s'"
-msgstr ""
+msgstr "не ўдаецца прачытаць каталог табліцы знакаў `%s'"
#: locale/programs/charmap.c:138
#, c-format
msgid "character map file `%s' not found"
-msgstr ""
+msgstr "файл табліцы знакаў `%s' не знойдзены"
#: locale/programs/charmap.c:196
#, c-format
msgid "default character map file `%s' not found"
-msgstr ""
+msgstr "файл Ñтандартнай табліцы знакаў `%s' не знойдзены"
#: locale/programs/charmap.c:265
#, c-format
msgid "character map `%s' is not ASCII compatible, locale not ISO C compliant [--no-warnings=ascii]"
-msgstr ""
+msgstr "табліца знакаў `%s' не ÑумÑÑˆÑ‡Ð°Ð»ÑŒÐ½Ð°Ñ Ð· ASCII, лакаль не адпавÑдае ISO C [--no-warnings=ascii]"
#: locale/programs/charmap.c:343
#, c-format
@@ -1609,74 +1648,74 @@ msgstr "%s: <mb_cur_max> павінна быць большым за <mb_cur_min
#: locale/programs/repertoire.c:173
#, c-format
msgid "syntax error in prolog: %s"
-msgstr ""
+msgstr "ÑінтакÑÑ–Ñ‡Ð½Ð°Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ° Ñž пралогу: %s"
#: locale/programs/charmap.c:364
msgid "invalid definition"
-msgstr ""
+msgstr "нÑправільнае азначÑнне"
#: locale/programs/charmap.c:381 locale/programs/locfile.c:131
#: locale/programs/locfile.c:158 locale/programs/repertoire.c:174
msgid "bad argument"
-msgstr "дрÑнны довад"
+msgstr "нÑправільны аргумент"
#: locale/programs/charmap.c:408
#, c-format
msgid "duplicate definition of <%s>"
-msgstr ""
+msgstr "падвоенае азначÑнне <%s>"
#: locale/programs/charmap.c:415
#, c-format
msgid "value for <%s> must be 1 or greater"
-msgstr ""
+msgstr "значÑньне <%s> муÑіць быць 1 ці больш"
#: locale/programs/charmap.c:427
#, c-format
msgid "value of <%s> must be greater or equal than the value of <%s>"
-msgstr ""
+msgstr "значÑньне <%s> муÑіць быць больш ці роўна значÑнню <%s>"
#: locale/programs/charmap.c:450 locale/programs/repertoire.c:182
#, c-format
msgid "argument to <%s> must be a single character"
-msgstr "довад Ð´Ð»Ñ <%s> павінен быць аднім знакам"
+msgstr "аргумент <%s> муÑіць быць адным знакам"
#: locale/programs/charmap.c:476
msgid "character sets with locking states are not supported"
-msgstr ""
+msgstr "знаказборы з блакавальнымі Ñтанамі не абÑлугоўваюцца"
#: locale/programs/charmap.c:503 locale/programs/charmap.c:557
#: locale/programs/charmap.c:589 locale/programs/charmap.c:683
-#: locale/programs/charmap.c:738 locale/programs/charmap.c:779
-#: locale/programs/charmap.c:820
+#: locale/programs/charmap.c:739 locale/programs/charmap.c:780
+#: locale/programs/charmap.c:821
#, c-format
msgid "syntax error in %s definition: %s"
-msgstr ""
+msgstr "ÑінтакÑÑ–Ñ‡Ð½Ð°Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ° Ñž азначÑнні %s: %s"
#: locale/programs/charmap.c:504 locale/programs/charmap.c:684
-#: locale/programs/charmap.c:780 locale/programs/repertoire.c:229
+#: locale/programs/charmap.c:781 locale/programs/repertoire.c:229
msgid "no symbolic name given"
-msgstr ""
+msgstr "нÑма Ñімвалічнай назвы"
#: locale/programs/charmap.c:558
msgid "invalid encoding given"
-msgstr ""
+msgstr "пададзена нÑправільнае кадаванне"
#: locale/programs/charmap.c:567
msgid "too few bytes in character encoding"
-msgstr ""
+msgstr "у кадаванні знакаў замала байтаў"
#: locale/programs/charmap.c:569
msgid "too many bytes in character encoding"
-msgstr ""
+msgstr "у кадаванні знакаў зашмат байтаў"
-#: locale/programs/charmap.c:591 locale/programs/charmap.c:739
-#: locale/programs/charmap.c:822 locale/programs/repertoire.c:295
+#: locale/programs/charmap.c:591 locale/programs/charmap.c:740
+#: locale/programs/charmap.c:823 locale/programs/repertoire.c:295
msgid "no symbolic name given for end of range"
-msgstr ""
+msgstr "нÑма Ñімвалічнай назвы Ð´Ð»Ñ ÐºÐ°Ð½Ñ†Ð° дыÑпазону"
#: locale/programs/charmap.c:615 locale/programs/ld-address.c:524
#: locale/programs/ld-collate.c:2616 locale/programs/ld-collate.c:3774
-#: locale/programs/ld-ctype.c:2117 locale/programs/ld-ctype.c:2829
+#: locale/programs/ld-ctype.c:2118 locale/programs/ld-ctype.c:2830
#: locale/programs/ld-identification.c:397
#: locale/programs/ld-measurement.c:213 locale/programs/ld-messages.c:295
#: locale/programs/ld-monetary.c:748 locale/programs/ld-name.c:262
@@ -1685,66 +1724,66 @@ msgstr ""
#: locale/programs/repertoire.c:312
#, c-format
msgid "%1$s: definition does not end with `END %1$s'"
-msgstr "%1$s: вызначÑньне не завÑршаецца на `END %1$s'"
+msgstr "%1$s: азначÑнне не завÑршаецца `END %1$s'"
#: locale/programs/charmap.c:648
msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
-msgstr ""
+msgstr "за азначÑннем CHARMAP могуць Ñ–Ñці толькі азначÑнні WIDTH"
-#: locale/programs/charmap.c:656 locale/programs/charmap.c:719
+#: locale/programs/charmap.c:656 locale/programs/charmap.c:720
#, c-format
msgid "value for %s must be an integer"
msgstr "значÑньне Ð´Ð»Ñ %s павінна быць цÑлым"
-#: locale/programs/charmap.c:847
+#: locale/programs/charmap.c:848
#, c-format
msgid "%s: error in state machine"
-msgstr ""
+msgstr "%s: памылка Ñž машыне Ñтанаў"
-#: locale/programs/charmap.c:855 locale/programs/ld-address.c:540
+#: locale/programs/charmap.c:856 locale/programs/ld-address.c:540
#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967
-#: locale/programs/ld-ctype.c:2114 locale/programs/ld-ctype.c:2846
+#: locale/programs/ld-ctype.c:2115 locale/programs/ld-ctype.c:2847
#: locale/programs/ld-identification.c:413
#: locale/programs/ld-measurement.c:229 locale/programs/ld-messages.c:311
#: locale/programs/ld-monetary.c:764 locale/programs/ld-name.c:278
#: locale/programs/ld-numeric.c:341 locale/programs/ld-paper.c:228
#: locale/programs/ld-telephone.c:292 locale/programs/ld-time.c:990
-#: locale/programs/locfile.c:997 locale/programs/repertoire.c:323
+#: locale/programs/locfile.c:1010 locale/programs/repertoire.c:323
#, c-format
msgid "%s: premature end of file"
-msgstr ""
+msgstr "%s: заўчаÑны канец файлу"
-#: locale/programs/charmap.c:874 locale/programs/charmap.c:885
+#: locale/programs/charmap.c:875 locale/programs/charmap.c:886
#, c-format
msgid "unknown character `%s'"
-msgstr ""
+msgstr "невÑдомы знак `%s'"
-#: locale/programs/charmap.c:893
+#: locale/programs/charmap.c:894
#, c-format
msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d"
-msgstr ""
+msgstr "колькаÑць байтаў Ñž байтавай паÑлÑдоўнаÑці пачатку Ñ– канца дыÑпазону розніцца: %d Ñ– %d"
-#: locale/programs/charmap.c:998 locale/programs/ld-collate.c:2893
+#: locale/programs/charmap.c:999 locale/programs/ld-collate.c:2893
#: locale/programs/repertoire.c:418
msgid "invalid names for character range"
-msgstr ""
+msgstr "нÑÐ¿Ñ€Ð°Ð²Ñ–Ð»ÑŒÐ½Ñ‹Ñ Ð½Ð°Ð·Ð²Ñ‹ дыÑпазону знакаў"
-#: locale/programs/charmap.c:1010 locale/programs/repertoire.c:430
+#: locale/programs/charmap.c:1011 locale/programs/repertoire.c:430
msgid "hexadecimal range format should use only capital characters"
-msgstr ""
+msgstr "у шаÑнаццаткавым фармаце дыÑпазону належыць ужываць толькі Ð·Ð°Ð³Ð°Ð»Ð¾ÑžÐ½Ñ‹Ñ Ð·Ð½Ð°ÐºÑ–"
-#: locale/programs/charmap.c:1028 locale/programs/repertoire.c:448
+#: locale/programs/charmap.c:1029 locale/programs/repertoire.c:448
#, c-format
msgid "<%s> and <%s> are invalid names for range"
-msgstr ""
+msgstr "<%s> Ñ– <%s> Ñ‘Ñць нÑправільнымі назвамі Ð´Ð»Ñ Ð´Ñ‹Ñпазону"
-#: locale/programs/charmap.c:1034 locale/programs/repertoire.c:455
+#: locale/programs/charmap.c:1035 locale/programs/repertoire.c:455
msgid "upper limit in range is smaller than lower limit"
-msgstr ""
+msgstr "верхнÑÑ Ð³Ñ€Ð°Ð½Ñ–Ñ†Ð° дыÑпазону Ð¼ÐµÐ½ÑˆÐ°Ñ Ð°Ð´ ніжнÑй"
-#: locale/programs/charmap.c:1092
+#: locale/programs/charmap.c:1093
msgid "resulting bytes for range not representable."
-msgstr ""
+msgstr "Ð²Ñ‹Ð½Ñ–ÐºÐ¾Ð²Ñ‹Ñ Ð±Ð°Ð¹Ñ‚Ñ‹ Ð´Ð»Ñ Ð´Ñ‹Ñпазону не могуць быць прадÑтаўленыÑ"
#: locale/programs/ld-address.c:133 locale/programs/ld-collate.c:1563
#: locale/programs/ld-ctype.c:430 locale/programs/ld-identification.c:131
@@ -1754,7 +1793,7 @@ msgstr ""
#: locale/programs/ld-telephone.c:92 locale/programs/ld-time.c:164
#, c-format
msgid "No definition for %s category found"
-msgstr ""
+msgstr "Ðе знойдзена азначÑÐ½Ð½Ñ Ð´Ð»Ñ ÐºÐ°Ñ‚Ñгорыі %s"
#: locale/programs/ld-address.c:144 locale/programs/ld-address.c:182
#: locale/programs/ld-address.c:199 locale/programs/ld-address.c:228
@@ -1777,41 +1816,41 @@ msgstr "%s: поле `%s' нÑвызначана"
#: locale/programs/ld-name.c:116 locale/programs/ld-telephone.c:115
#, c-format
msgid "%s: field `%s' must not be empty"
-msgstr "%s: поле `%s' не павінна быць парожнім"
+msgstr "%s: поле `%s' не павінна быць пуÑтым"
#: locale/programs/ld-address.c:168
#, c-format
msgid "%s: invalid escape `%%%c' sequence in field `%s'"
-msgstr ""
+msgstr "%s: нÑÐ¿Ñ€Ð°Ð²Ñ–Ð»ÑŒÐ½Ð°Ñ ÑÐºÑ€Ð°Ð½Ð°Ð²Ð°Ð»ÑŒÐ½Ð°Ñ Ð¿Ð°ÑлÑдоўнаÑць `%%%c' у полі `%s'"
#: locale/programs/ld-address.c:218
#, c-format
msgid "%s: terminology language code `%s' not defined"
-msgstr ""
+msgstr "%s: код мовы Ñ‚Ñрміналогіі `%s' не азначаны"
#: locale/programs/ld-address.c:243
#, c-format
msgid "%s: field `%s' must not be defined"
-msgstr ""
+msgstr "%s: поле `%s' муÑіць быць нÑвызначаным"
#: locale/programs/ld-address.c:257 locale/programs/ld-address.c:286
#, c-format
msgid "%s: language abbreviation `%s' not defined"
-msgstr ""
+msgstr "%s: ÑкарачÑнне мовы `%s' не азначана"
#: locale/programs/ld-address.c:264 locale/programs/ld-address.c:292
#: locale/programs/ld-address.c:325 locale/programs/ld-address.c:337
#, c-format
msgid "%s: `%s' value does not match `%s' value"
-msgstr "%s: `%s' значÑньне ну Ñупадае `%s' значÑньне"
+msgstr "%s: значÑнне `%s' не Ñупадае з значÑннем `%s'"
#: locale/programs/ld-address.c:311
#, c-format
msgid "%s: numeric country code `%d' not valid"
-msgstr ""
+msgstr "%s: лічбавы код краіны `%d' нÑправільны"
#: locale/programs/ld-address.c:432 locale/programs/ld-address.c:469
-#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2478
+#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2479
#: locale/programs/ld-identification.c:309
#: locale/programs/ld-measurement.c:196 locale/programs/ld-messages.c:264
#: locale/programs/ld-monetary.c:503 locale/programs/ld-monetary.c:538
@@ -1821,7 +1860,7 @@ msgstr ""
#: locale/programs/ld-time.c:906
#, c-format
msgid "%s: field `%s' declared more than once"
-msgstr "%s: поле `%s' абвешчана больш чым адзін раз"
+msgstr "%s: поле `%s' абвешчана больш за адзін раз"
#: locale/programs/ld-address.c:436 locale/programs/ld-address.c:474
#: locale/programs/ld-identification.c:313 locale/programs/ld-messages.c:274
@@ -1831,24 +1870,24 @@ msgstr "%s: поле `%s' абвешчана больш чым адзін раз
#: locale/programs/ld-time.c:827 locale/programs/ld-time.c:869
#, c-format
msgid "%s: unknown character in field `%s'"
-msgstr ""
+msgstr "%s: невÑдомы знак у полі `%s'"
#: locale/programs/ld-address.c:521 locale/programs/ld-collate.c:3772
-#: locale/programs/ld-ctype.c:2826 locale/programs/ld-identification.c:394
+#: locale/programs/ld-ctype.c:2827 locale/programs/ld-identification.c:394
#: locale/programs/ld-measurement.c:210 locale/programs/ld-messages.c:293
#: locale/programs/ld-monetary.c:746 locale/programs/ld-name.c:260
#: locale/programs/ld-numeric.c:323 locale/programs/ld-paper.c:210
#: locale/programs/ld-telephone.c:274 locale/programs/ld-time.c:957
#, c-format
msgid "%s: incomplete `END' line"
-msgstr ""
+msgstr "%s: нÑÑкончаны радок `END'"
#: locale/programs/ld-address.c:531 locale/programs/ld-collate.c:550
#: locale/programs/ld-collate.c:602 locale/programs/ld-collate.c:898
#: locale/programs/ld-collate.c:911 locale/programs/ld-collate.c:2582
#: locale/programs/ld-collate.c:2603 locale/programs/ld-collate.c:3957
-#: locale/programs/ld-ctype.c:1846 locale/programs/ld-ctype.c:2104
-#: locale/programs/ld-ctype.c:2676 locale/programs/ld-ctype.c:2837
+#: locale/programs/ld-ctype.c:1847 locale/programs/ld-ctype.c:2105
+#: locale/programs/ld-ctype.c:2677 locale/programs/ld-ctype.c:2838
#: locale/programs/ld-identification.c:404
#: locale/programs/ld-measurement.c:220 locale/programs/ld-messages.c:302
#: locale/programs/ld-monetary.c:755 locale/programs/ld-name.c:269
@@ -1856,103 +1895,103 @@ msgstr ""
#: locale/programs/ld-telephone.c:283 locale/programs/ld-time.c:981
#, c-format
msgid "%s: syntax error"
-msgstr ""
+msgstr "%s: ÑінтакÑÑ–Ñ‡Ð½Ð°Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ°"
#: locale/programs/ld-collate.c:425
#, c-format
msgid "`%.*s' already defined in charmap"
-msgstr ""
+msgstr "`%.*s' ужо азначаны ў знаказборы"
#: locale/programs/ld-collate.c:434
#, c-format
msgid "`%.*s' already defined in repertoire"
-msgstr ""
+msgstr "`%.*s' ужо азначаны Ñž Ñ€Ñпертуары"
#: locale/programs/ld-collate.c:441
#, c-format
msgid "`%.*s' already defined as collating symbol"
-msgstr ""
+msgstr "`%.*s' ужо азначаны Ñк Ñімвал ÑартаваннÑ"
#: locale/programs/ld-collate.c:448
#, c-format
msgid "`%.*s' already defined as collating element"
-msgstr ""
+msgstr "`%.*s' ужо азначаны Ñк Ñлемент ÑартаваннÑ"
#: locale/programs/ld-collate.c:479 locale/programs/ld-collate.c:505
#, c-format
msgid "%s: `forward' and `backward' are mutually excluding each other"
-msgstr ""
+msgstr "%s: `forward' і `backward' нельга ўжываць разам"
#: locale/programs/ld-collate.c:489 locale/programs/ld-collate.c:515
#: locale/programs/ld-collate.c:531
#, c-format
msgid "%s: `%s' mentioned more than once in definition of weight %d"
-msgstr ""
+msgstr "%s: `%s' згаданы Ñž азначÑнні вагі %d некалькі разоў"
#: locale/programs/ld-collate.c:587
#, c-format
msgid "%s: too many rules; first entry only had %d"
-msgstr ""
+msgstr "%s: зашмат правілаў; першы Ð·Ð°Ð¿Ñ–Ñ Ð¼ÐµÑž толькі %d"
#: locale/programs/ld-collate.c:623
#, c-format
msgid "%s: not enough sorting rules"
-msgstr ""
+msgstr "%s: недаÑтаткова правілаў ÑартаваннÑ"
#: locale/programs/ld-collate.c:788
#, c-format
msgid "%s: empty weight string not allowed"
-msgstr ""
+msgstr "%s: пуÑÑ‚Ñ‹ радок вагі не дазвалÑецца"
#: locale/programs/ld-collate.c:883
#, c-format
msgid "%s: weights must use the same ellipsis symbol as the name"
-msgstr ""
+msgstr "%s: вагі муÑÑць ужываць той жа Ñімвал ÑліпÑÑ–Ñу, што Ñ– назва"
#: locale/programs/ld-collate.c:939
#, c-format
msgid "%s: too many values"
-msgstr ""
+msgstr "%s: зашмат значÑннÑÑž"
#: locale/programs/ld-collate.c:1059 locale/programs/ld-collate.c:1234
#, c-format
msgid "order for `%.*s' already defined at %s:%Zu"
-msgstr ""
+msgstr "парадак Ð´Ð»Ñ `%.*s' ужо вызначаны Ñž %s:%Zu"
#: locale/programs/ld-collate.c:1109
#, c-format
msgid "%s: the start and the end symbol of a range must stand for characters"
-msgstr ""
+msgstr "%s: пачатковы Ñ– канцавы Ñімвалы дыÑпазону муÑÑць прадÑтаўлÑць знакі"
#: locale/programs/ld-collate.c:1136
#, c-format
msgid "%s: byte sequences of first and last character must have the same length"
-msgstr ""
+msgstr "%s: Ð±Ð°Ð¹Ñ‚Ð°Ð²Ñ‹Ñ Ð¿Ð°ÑлÑдоўнаÑці першага Ñ– апошнÑга знакаў муÑÑць быць аднолькавай даўжыні"
#: locale/programs/ld-collate.c:1178
#, c-format
msgid "%s: byte sequence of first character of range is not lower than that of the last character"
-msgstr ""
+msgstr "%s: Ð±Ð°Ð¹Ñ‚Ð°Ð²Ð°Ñ Ð¿Ð°ÑлÑдоўнаÑць першага знаку дыÑпазону не Ð¼ÐµÐ½ÑˆÐ°Ñ Ð·Ð° паÑлÑдоўнаÑць апошнÑга знаку"
#: locale/programs/ld-collate.c:1303
#, c-format
msgid "%s: symbolic range ellipsis must not directly follow `order_start'"
-msgstr ""
+msgstr "%s: ÑліпÑÑ–Ñ Ñімвалічнага дыÑпазону не можа Ñ–Ñці адразу за `order_start'"
#: locale/programs/ld-collate.c:1307
#, c-format
msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'"
-msgstr ""
+msgstr "%s: за ÑліпÑÑ–Ñам Ñімвалічнага дыÑпазону не можа адразу Ñ–Ñці `order_end'"
#: locale/programs/ld-collate.c:1327 locale/programs/ld-ctype.c:1363
#, c-format
msgid "`%s' and `%.*s' are not valid names for symbolic range"
-msgstr ""
+msgstr "`%s' Ñ– `%.*s' не Ñ‘Ñць правільнымі назвамі Ð´Ð»Ñ Ñімвалічнага дыÑпазону"
#: locale/programs/ld-collate.c:1377 locale/programs/ld-collate.c:3708
#, c-format
msgid "%s: order for `%.*s' already defined at %s:%Zu"
-msgstr ""
+msgstr "%s: парадак Ð´Ð»Ñ `%.*s' ужо вызначаны Ñž %s:%Zu"
#: locale/programs/ld-collate.c:1386
#, c-format
@@ -1962,41 +2001,41 @@ msgstr "%s: `%s' павінен быць знакам"
#: locale/programs/ld-collate.c:1580
#, c-format
msgid "%s: `position' must be used for a specific level in all sections or none"
-msgstr ""
+msgstr "%s: `position' муÑіць ужывацца Ð´Ð»Ñ Ð¿Ñўнага ўзроўню ўва ÑžÑÑ–Ñ… ÑекцыÑÑ… альбо Ñž ніводнай"
#: locale/programs/ld-collate.c:1604
#, c-format
msgid "symbol `%s' not defined"
-msgstr ""
+msgstr "Ñімвал `%s' не вызначаны"
#: locale/programs/ld-collate.c:1680 locale/programs/ld-collate.c:1785
#, c-format
msgid "symbol `%s' has the same encoding as"
-msgstr ""
+msgstr "Ñімвал `%s' мае тое ж кадаванне, што Ñ–"
#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1789
#, c-format
msgid "symbol `%s'"
-msgstr ""
+msgstr "Ñімвал `%s'"
#: locale/programs/ld-collate.c:1852
msgid "too many errors; giving up"
-msgstr ""
+msgstr "зашмат памылак; канец"
#: locale/programs/ld-collate.c:2508 locale/programs/ld-collate.c:3896
#, c-format
msgid "%s: nested conditionals not supported"
-msgstr ""
+msgstr "%s: нельга ўкладаць умовы адна ў адну"
#: locale/programs/ld-collate.c:2526
#, c-format
msgid "%s: more than one 'else'"
-msgstr ""
+msgstr "%s: болей за адзін 'else'"
#: locale/programs/ld-collate.c:2701
#, c-format
msgid "%s: duplicate definition of `%s'"
-msgstr ""
+msgstr "%s: паўторнае азначÑнне `%s'"
#: locale/programs/ld-collate.c:2737
#, c-format
@@ -2192,129 +2231,129 @@ msgstr ""
msgid "implementation limit: no more than %d character maps allowed"
msgstr ""
-#: locale/programs/ld-ctype.c:1434 locale/programs/ld-ctype.c:1559
-#: locale/programs/ld-ctype.c:1665 locale/programs/ld-ctype.c:2341
-#: locale/programs/ld-ctype.c:3299
+#: locale/programs/ld-ctype.c:1435 locale/programs/ld-ctype.c:1560
+#: locale/programs/ld-ctype.c:1666 locale/programs/ld-ctype.c:2342
+#: locale/programs/ld-ctype.c:3302
#, c-format
msgid "%s: field `%s' does not contain exactly ten entries"
msgstr ""
-#: locale/programs/ld-ctype.c:1462 locale/programs/ld-ctype.c:2036
+#: locale/programs/ld-ctype.c:1463 locale/programs/ld-ctype.c:2037
#, c-format
msgid "to-value <U%0*X> of range is smaller than from-value <U%0*X>"
msgstr ""
-#: locale/programs/ld-ctype.c:1589
+#: locale/programs/ld-ctype.c:1590
msgid "start and end character sequence of range must have the same length"
msgstr ""
-#: locale/programs/ld-ctype.c:1596
+#: locale/programs/ld-ctype.c:1597
msgid "to-value character sequence is smaller than from-value sequence"
msgstr ""
-#: locale/programs/ld-ctype.c:1956 locale/programs/ld-ctype.c:2007
+#: locale/programs/ld-ctype.c:1957 locale/programs/ld-ctype.c:2008
msgid "premature end of `translit_ignore' definition"
msgstr ""
-#: locale/programs/ld-ctype.c:1962 locale/programs/ld-ctype.c:2013
-#: locale/programs/ld-ctype.c:2055
+#: locale/programs/ld-ctype.c:1963 locale/programs/ld-ctype.c:2014
+#: locale/programs/ld-ctype.c:2056
msgid "syntax error"
msgstr ""
-#: locale/programs/ld-ctype.c:2188
+#: locale/programs/ld-ctype.c:2189
#, c-format
msgid "%s: syntax error in definition of new character class"
msgstr ""
-#: locale/programs/ld-ctype.c:2203
+#: locale/programs/ld-ctype.c:2204
#, c-format
msgid "%s: syntax error in definition of new character map"
msgstr ""
-#: locale/programs/ld-ctype.c:2363
+#: locale/programs/ld-ctype.c:2364
msgid "ellipsis range must be marked by two operands of same type"
msgstr ""
-#: locale/programs/ld-ctype.c:2372
+#: locale/programs/ld-ctype.c:2373
msgid "with symbolic name range values the absolute ellipsis `...' must not be used"
msgstr ""
-#: locale/programs/ld-ctype.c:2387
+#: locale/programs/ld-ctype.c:2388
msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'"
msgstr ""
-#: locale/programs/ld-ctype.c:2401
+#: locale/programs/ld-ctype.c:2402
msgid "with character code range values one must use the absolute ellipsis `...'"
msgstr ""
-#: locale/programs/ld-ctype.c:2552
+#: locale/programs/ld-ctype.c:2553
#, c-format
msgid "duplicated definition for mapping `%s'"
msgstr ""
-#: locale/programs/ld-ctype.c:2638 locale/programs/ld-ctype.c:2782
+#: locale/programs/ld-ctype.c:2639 locale/programs/ld-ctype.c:2783
#, c-format
msgid "%s: `translit_start' section does not end with `translit_end'"
msgstr ""
-#: locale/programs/ld-ctype.c:2733
+#: locale/programs/ld-ctype.c:2734
#, c-format
msgid "%s: duplicate `default_missing' definition"
msgstr ""
-#: locale/programs/ld-ctype.c:2738
+#: locale/programs/ld-ctype.c:2739
msgid "previous definition was here"
msgstr ""
-#: locale/programs/ld-ctype.c:2760
+#: locale/programs/ld-ctype.c:2761
#, c-format
msgid "%s: no representable `default_missing' definition found"
msgstr ""
-#: locale/programs/ld-ctype.c:2877 locale/programs/ld-ctype.c:2973
-#: locale/programs/ld-ctype.c:2992 locale/programs/ld-ctype.c:3012
-#: locale/programs/ld-ctype.c:3032 locale/programs/ld-ctype.c:3052
-#: locale/programs/ld-ctype.c:3072 locale/programs/ld-ctype.c:3111
-#: locale/programs/ld-ctype.c:3131 locale/programs/ld-ctype.c:3195
-#: locale/programs/ld-ctype.c:3236 locale/programs/ld-ctype.c:3259
+#: locale/programs/ld-ctype.c:2878 locale/programs/ld-ctype.c:2974
+#: locale/programs/ld-ctype.c:2993 locale/programs/ld-ctype.c:3013
+#: locale/programs/ld-ctype.c:3033 locale/programs/ld-ctype.c:3053
+#: locale/programs/ld-ctype.c:3073 locale/programs/ld-ctype.c:3112
+#: locale/programs/ld-ctype.c:3132 locale/programs/ld-ctype.c:3198
+#: locale/programs/ld-ctype.c:3239 locale/programs/ld-ctype.c:3262
#, c-format
msgid "%s: character `%s' not defined while needed as default value"
msgstr ""
-#: locale/programs/ld-ctype.c:2882 locale/programs/ld-ctype.c:2978
-#: locale/programs/ld-ctype.c:2997 locale/programs/ld-ctype.c:3017
-#: locale/programs/ld-ctype.c:3037 locale/programs/ld-ctype.c:3057
-#: locale/programs/ld-ctype.c:3077 locale/programs/ld-ctype.c:3116
-#: locale/programs/ld-ctype.c:3136 locale/programs/ld-ctype.c:3200
+#: locale/programs/ld-ctype.c:2883 locale/programs/ld-ctype.c:2979
+#: locale/programs/ld-ctype.c:2998 locale/programs/ld-ctype.c:3018
+#: locale/programs/ld-ctype.c:3038 locale/programs/ld-ctype.c:3058
+#: locale/programs/ld-ctype.c:3078 locale/programs/ld-ctype.c:3117
+#: locale/programs/ld-ctype.c:3137 locale/programs/ld-ctype.c:3203
#, c-format
msgid "%s: character `%s' in charmap not representable with one byte"
msgstr ""
-#: locale/programs/ld-ctype.c:3242 locale/programs/ld-ctype.c:3265
+#: locale/programs/ld-ctype.c:3245 locale/programs/ld-ctype.c:3268
#, c-format
msgid "%s: character `%s' needed as default value not representable with one byte"
msgstr ""
-#: locale/programs/ld-ctype.c:3321
+#: locale/programs/ld-ctype.c:3324
msgid "no output digits defined and none of the standard names in the charmap"
msgstr ""
-#: locale/programs/ld-ctype.c:3570
+#: locale/programs/ld-ctype.c:3573
#, c-format
msgid "%s: transliteration data from locale `%s' not available"
msgstr ""
-#: locale/programs/ld-ctype.c:3669
+#: locale/programs/ld-ctype.c:3672
#, c-format
msgid "%s: table for class \"%s\": %lu bytes"
msgstr ""
-#: locale/programs/ld-ctype.c:3733
+#: locale/programs/ld-ctype.c:3736
#, c-format
msgid "%s: table for map \"%s\": %lu bytes"
msgstr ""
-#: locale/programs/ld-ctype.c:3857
+#: locale/programs/ld-ctype.c:3860
#, c-format
msgid "%s: table for width: %lu bytes"
msgstr ""
@@ -2489,11 +2528,11 @@ msgstr ""
#: locale/programs/linereader.c:496
msgid "unterminated symbolic name"
-msgstr "Ð½ÐµÐ·Ð°Ð²ÐµÑ€ÑˆÐ°Ð½Ð°Ñ Ð·Ð½Ð°ÐºÐ°Ð²Ð°Ñ Ð½Ð°Ð·Ð²Ð°"
+msgstr "Ð½ÐµÐ·Ð°Ð²ÐµÑ€ÑˆÐ°Ð½Ð°Ñ ÑÑ–Ð¼Ð²Ð°Ð»Ñ–Ñ‡Ð½Ð°Ñ Ð½Ð°Ð·Ð²Ð°"
#: locale/programs/linereader.c:623
msgid "illegal escape sequence at end of string"
-msgstr ""
+msgstr "Ð½ÐµÐ¼Ð°Ð³Ñ‡Ñ‹Ð¼Ð°Ñ escape-паÑлÑдоўнаÑць у канцы радку"
#: locale/programs/linereader.c:627 locale/programs/linereader.c:847
msgid "unterminated string"
@@ -2502,45 +2541,45 @@ msgstr "незавершаны радок"
#: locale/programs/linereader.c:808
#, c-format
msgid "symbol `%.*s' not in charmap"
-msgstr ""
+msgstr "Ñімвалу `%.*s' у знаказборы нÑма"
#: locale/programs/linereader.c:829
#, c-format
msgid "symbol `%.*s' not in repertoire map"
-msgstr ""
+msgstr "Ñімвалу `%.*s' у табліцы Ñ€Ñпертуару нÑма"
#: locale/programs/locale-spec.c:130
#, c-format
msgid "unknown name \"%s\""
-msgstr ""
+msgstr "невÑÐ´Ð¾Ð¼Ð°Ñ Ð½Ð°Ð·Ð²Ð° \"%s\""
#: locale/programs/locale.c:70
msgid "System information:"
-msgstr ""
+msgstr "Ð†Ð½Ñ„Ð°Ñ€Ð¼Ð°Ñ†Ñ‹Ñ Ð°Ð± ÑÑ–ÑÑ‚Ñме:"
#: locale/programs/locale.c:72
msgid "Write names of available locales"
-msgstr ""
+msgstr "Выдаць назвы наÑўных лакалÑÑž"
#: locale/programs/locale.c:74
msgid "Write names of available charmaps"
-msgstr ""
+msgstr "Выдаць назвы наÑўных знаказбораў"
#: locale/programs/locale.c:75
msgid "Modify output format:"
-msgstr "Фармат вываду зьмÑненьнÑ:"
+msgstr "ЗмÑніць фармат вываду:"
#: locale/programs/locale.c:76
msgid "Write names of selected categories"
-msgstr ""
+msgstr "Выдаць назвы выбраных катÑгорыÑÑž"
#: locale/programs/locale.c:77
msgid "Write names of selected keywords"
-msgstr ""
+msgstr "Выдаць назвы выбраных ключавых Ñловаў"
#: locale/programs/locale.c:78
msgid "Print more information"
-msgstr ""
+msgstr "Выдаць дадатковую інфармацыю"
#: locale/programs/locale.c:83
msgid "Get locale-specific information."
@@ -2551,152 +2590,151 @@ msgid ""
"NAME\n"
"[-a|-m]"
msgstr ""
+"ÐÐЗВÐ\n"
+"[-a|-m]"
-#: locale/programs/locale.c:190
-#, c-format
-msgid "Cannot set LC_CTYPE to default locale"
-msgstr ""
-
-#: locale/programs/locale.c:192
+#: locale/programs/locale.c:522
#, c-format
-msgid "Cannot set LC_MESSAGES to default locale"
-msgstr ""
+msgid "while preparing output"
+msgstr "Ð¿Ð°Ð´Ñ‡Ð°Ñ Ð¿Ð°Ð´Ñ€Ñ‹Ñ…Ñ‚Ð¾ÑžÐºÑ– вываду"
-#: locale/programs/locale.c:205
+#: locale/programs/locale.c:998
#, c-format
-msgid "Cannot set LC_COLLATE to default locale"
+msgid "Cannot set %s to default locale"
msgstr ""
-#: locale/programs/locale.c:221
+#: locale/programs/locale.c:1096
#, c-format
-msgid "Cannot set LC_ALL to default locale"
+msgid "warning: The LOCPATH variable is set to \"%s\"\n"
msgstr ""
-#: locale/programs/locale.c:521
-#, c-format
-msgid "while preparing output"
-msgstr "пад Ñ‡Ð°Ñ Ð¿Ð°Ð´Ñ€Ñ‹Ñ…Ñ‚Ð¾ÑžÐºÑ– вываду"
-
-#: locale/programs/localedef.c:112
+#: locale/programs/localedef.c:116
msgid "Input Files:"
msgstr "Файлы ўводу:"
-#: locale/programs/localedef.c:114
+#: locale/programs/localedef.c:118
msgid "Symbolic character names defined in FILE"
-msgstr ""
+msgstr "ÑÑ–Ð¼Ð²Ð°Ð»Ñ–Ñ‡Ð½Ñ‹Ñ Ð½Ð°Ð·Ð²Ñ‹ знакаў Ð²Ñ‹Ð·Ð½Ð°Ñ‡Ð°Ð½Ñ‹Ñ Ñž ФÐЙЛЫ"
-#: locale/programs/localedef.c:116
+#: locale/programs/localedef.c:120
msgid "Source definitions are found in FILE"
-msgstr ""
+msgstr "Ð—Ñ‹Ñ…Ð¾Ð´Ð½Ñ‹Ñ Ð°Ð·Ð½Ð°Ñ‡Ñнні знаходзÑцца Ñž ФÐЙЛЫ"
-#: locale/programs/localedef.c:118
+#: locale/programs/localedef.c:122
msgid "FILE contains mapping from symbolic names to UCS4 values"
-msgstr ""
+msgstr "ФÐЙЛ утрымлівае прывÑзку Ñімвалічных назваў да значÑннÑÑž UCS4 values"
-#: locale/programs/localedef.c:122
+#: locale/programs/localedef.c:126
msgid "Create output even if warning messages were issued"
+msgstr "ВывеÑці нават калі былі папÑÑ€Ñджанні"
+
+#: locale/programs/localedef.c:128
+msgid "Do not create hard links between installed locales"
msgstr ""
-#: locale/programs/localedef.c:123
+#: locale/programs/localedef.c:129
msgid "Optional output file prefix"
-msgstr ""
+msgstr "ÐеабавÑзковы прÑÑ„Ñ–ÐºÑ Ñ„Ð°Ð¹Ð»Ð°Ñž вываду"
-#: locale/programs/localedef.c:124
+#: locale/programs/localedef.c:130
msgid "Strictly conform to POSIX"
-msgstr ""
+msgstr "Дакладна адпавÑдаць POSIX"
-#: locale/programs/localedef.c:126
+#: locale/programs/localedef.c:132
msgid "Suppress warnings and information messages"
-msgstr ""
+msgstr "Стрымаць папÑÑ€Ñджанні Ñ– Ñ–Ð½Ñ„Ð°Ñ€Ð¼Ð°Ñ†Ñ‹Ð¹Ð½Ñ‹Ñ Ð¿Ð°Ð²ÐµÐ´Ð°Ð¼Ð»ÐµÐ½Ð½Ñ–"
-#: locale/programs/localedef.c:127
+#: locale/programs/localedef.c:133
msgid "Print more messages"
-msgstr ""
+msgstr "Друкаваць болей паведамленнÑÑž"
-#: locale/programs/localedef.c:128 locale/programs/localedef.c:131
+#: locale/programs/localedef.c:134 locale/programs/localedef.c:137
msgid "<warnings>"
-msgstr ""
+msgstr "<папÑÑ€Ñджанні>"
-#: locale/programs/localedef.c:129
+#: locale/programs/localedef.c:135
msgid "Comma-separated list of warnings to disable; supported warnings are: ascii, intcurrsym"
-msgstr ""
+msgstr "Ð¡Ð¿Ñ–Ñ Ð¿Ð°Ð¿ÑÑ€ÑджаннÑÑž праз коÑку, ÑÐºÑ–Ñ Ñ‚Ñ€Ñба адключыць; Ð¼Ð°Ð³Ñ‡Ñ‹Ð¼Ñ‹Ñ Ð¿Ð°Ð¿ÑÑ€Ñджанні: ascii, intcurrsym"
-#: locale/programs/localedef.c:132
+#: locale/programs/localedef.c:138
msgid "Comma-separated list of warnings to enable; supported warnings are: ascii, intcurrsym"
-msgstr ""
+msgstr "Ð¡Ð¿Ñ–Ñ Ð¿Ð°Ð¿ÑÑ€ÑджаннÑÑž праз коÑку, ÑÐºÑ–Ñ Ñ‚Ñ€Ñба ўключыць; Ð¼Ð°Ð³Ñ‡Ñ‹Ð¼Ñ‹Ñ Ð¿Ð°Ð¿ÑÑ€Ñджанні: ascii, intcurrsym"
-#: locale/programs/localedef.c:135
+#: locale/programs/localedef.c:141
msgid "Archive control:"
-msgstr ""
+msgstr "Кіраванне архівам:"
-#: locale/programs/localedef.c:137
+#: locale/programs/localedef.c:143
msgid "Don't add new data to archive"
-msgstr ""
+msgstr "Ðе дадаваць новых даных да архіву"
-#: locale/programs/localedef.c:139
+#: locale/programs/localedef.c:145
msgid "Add locales named by parameters to archive"
-msgstr ""
+msgstr "Дадаць да архіву лакалі, Ð¿Ð°Ð´Ð°Ð´Ð·ÐµÐ½Ñ‹Ñ Ñž параметрах"
-#: locale/programs/localedef.c:140
+#: locale/programs/localedef.c:146
msgid "Replace existing archive content"
-msgstr ""
+msgstr "ЗамÑніць наÑўны змеÑÑ‚ архіву"
-#: locale/programs/localedef.c:142
+#: locale/programs/localedef.c:148
msgid "Remove locales named by parameters from archive"
-msgstr ""
+msgstr "Выдаліць з архіву лакалі, Ð¿Ð°Ð´Ð°Ð´Ð·ÐµÐ½Ñ‹Ñ Ñž параметрах"
-#: locale/programs/localedef.c:143
+#: locale/programs/localedef.c:149
msgid "List content of archive"
-msgstr ""
+msgstr "Выдаць змеÑÑ‚ архіву"
-#: locale/programs/localedef.c:145
+#: locale/programs/localedef.c:151
msgid "locale.alias file to consult when making archive"
-msgstr ""
+msgstr "Файл locale.alias, Ñкім карыÑтацца Ð¿Ð°Ð´Ñ‡Ð°Ñ ÑтварÑÐ½Ð½Ñ Ð°Ñ€Ñ…Ñ–Ð²Ñƒ"
-#: locale/programs/localedef.c:147
+#: locale/programs/localedef.c:153
msgid "Generate little-endian output"
-msgstr ""
+msgstr "ВывеÑці Ñž фармаце little-endian"
-#: locale/programs/localedef.c:149
+#: locale/programs/localedef.c:155
msgid "Generate big-endian output"
-msgstr ""
+msgstr "ВывеÑці Ñž фармаце big-endian"
-#: locale/programs/localedef.c:154
+#: locale/programs/localedef.c:160
msgid "Compile locale specification"
-msgstr "Кампілюе пагадненьне аб мÑÑцоваÑьці"
+msgstr "КампілÑваць Ñпецыфікацыю лакалі"
-#: locale/programs/localedef.c:157
+#: locale/programs/localedef.c:163
msgid ""
"NAME\n"
"[--add-to-archive|--delete-from-archive] FILE...\n"
"--list-archive [FILE]"
msgstr ""
+"ÐÐЗВÐ\n"
+"[--add-to-archive|--delete-from-archive] ФÐЙЛ...\n"
+"--list-archive [ФÐЙЛ]"
-#: locale/programs/localedef.c:232
+#: locale/programs/localedef.c:238
#, c-format
msgid "cannot create directory for output files"
-msgstr "немагчыма Ñтварыць Ñ‚Ñчку Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ð°Ñž вываду"
+msgstr "немагчыма Ñтварыць каталог Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ð°Ñž вываду"
-#: locale/programs/localedef.c:243
+#: locale/programs/localedef.c:249
msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
-msgstr ""
+msgstr "ФÐТÐЛЬÐÐЯ ПÐМЫЛКÐ: ÑÑ–ÑÑ‚Ñма не вызначае `_POSIX2_LOCALEDEF'"
-#: locale/programs/localedef.c:257 locale/programs/localedef.c:273
-#: locale/programs/localedef.c:663 locale/programs/localedef.c:683
+#: locale/programs/localedef.c:263 locale/programs/localedef.c:279
+#: locale/programs/localedef.c:673 locale/programs/localedef.c:693
#, c-format
msgid "cannot open locale definition file `%s'"
-msgstr "немагчыма адчыніць файл вызначÑÐ½ÑŒÐ½Ñ Ð¼ÑÑцоваÑьці \"%s\""
+msgstr "немагчыма адкрыць файл азначÑÐ½Ð½Ñ Ð»Ð°ÐºÐ°Ð»Ñ– `%s'"
-#: locale/programs/localedef.c:297
+#: locale/programs/localedef.c:303
#, c-format
msgid "cannot write output files to `%s'"
-msgstr "немагчыма запіÑаць файлы вываду Ñž \"%s\""
+msgstr "немагчыма запіÑаць файлы вываду Ñž `%s'"
-#: locale/programs/localedef.c:303
+#: locale/programs/localedef.c:309
msgid "no output file produced because errors were issued"
-msgstr ""
+msgstr "не Ñтворана файлу вываду з-за выÑўленых памылак"
-#: locale/programs/localedef.c:431
+#: locale/programs/localedef.c:441
#, c-format
msgid ""
"System's directory for character maps : %s\n"
@@ -2704,212 +2742,216 @@ msgid ""
"\t\t locale path : %s\n"
"%s"
msgstr ""
+"Каталог ÑÑ–ÑÑ‚Ñмы Ð´Ð»Ñ Ñ‚Ð°Ð±Ð»Ñ–Ñ†Ð°Ñž знакаў: %s\n"
+"\t табліцаў Ñ€Ñпертуараў: %s\n"
+"\t\t шлÑÑ… да лакалÑÑž: %s\n"
+"%s"
-#: locale/programs/localedef.c:631
+#: locale/programs/localedef.c:641
msgid "circular dependencies between locale definitions"
-msgstr ""
+msgstr "Ñ†Ñ‹ÐºÐ»Ñ–Ñ‡Ð½Ñ‹Ñ Ð·Ð°Ð»ÐµÐ¶Ð½Ð°Ñці паміж азначÑннÑмі лакалÑÑž"
-#: locale/programs/localedef.c:637
+#: locale/programs/localedef.c:647
#, c-format
msgid "cannot add already read locale `%s' a second time"
-msgstr ""
+msgstr "не ўдалоÑÑ Ð´Ð°Ð´Ð°Ñ†ÑŒ у другі раз ужо прачытаную лакаль `%s'"
#: locale/programs/locarchive.c:133 locale/programs/locarchive.c:380
#, c-format
msgid "cannot create temporary file: %s"
-msgstr ""
+msgstr "не ўдалоÑÑ Ñтварыць чаÑовы файл: %s"
#: locale/programs/locarchive.c:167 locale/programs/locarchive.c:430
#, c-format
msgid "cannot initialize archive file"
-msgstr ""
+msgstr "не ўдалоÑÑ Ñ–Ð½Ñ–Ñ†Ñ‹Ñлізаваць архіўны файл"
#: locale/programs/locarchive.c:174 locale/programs/locarchive.c:437
#, c-format
msgid "cannot resize archive file"
-msgstr "немагчыма зьмÑніць памер файла архіву"
+msgstr "не ўдалоÑÑ Ð·Ð¼Ñніць памер архіўнага файлу"
#: locale/programs/locarchive.c:189 locale/programs/locarchive.c:452
#: locale/programs/locarchive.c:674
#, c-format
msgid "cannot map archive header"
-msgstr ""
+msgstr "не ўдалоÑÑ Ð°Ð´Ð±Ñ–Ñ†ÑŒ у памÑць загаловак архіву"
#: locale/programs/locarchive.c:211
#, c-format
msgid "failed to create new locale archive"
-msgstr "немагчыма Ñтварыць новы архіў мÑÑцоваÑьці"
+msgstr "не ўдалоÑÑ Ñтварыць новы архіў лакалі"
#: locale/programs/locarchive.c:223
#, c-format
msgid "cannot change mode of new locale archive"
-msgstr "немагчыма зьмÑніць Ñ€Ñжым новага архіву мÑÑцоваÑьці"
+msgstr "не ўдалоÑÑ Ð·Ð¼Ñніць Ñ€Ñжым новага архіву лакалі"
#: locale/programs/locarchive.c:324
msgid "cannot read data from locale archive"
-msgstr ""
+msgstr "не ўдалоÑÑ Ð¿Ñ€Ð°Ñ‡Ñ‹Ñ‚Ð°Ñ†ÑŒ Ð´Ð°Ð½Ñ‹Ñ Ð· архіву лакалі"
#: locale/programs/locarchive.c:355
#, c-format
msgid "cannot map locale archive file"
-msgstr ""
+msgstr "не ўдалоÑÑ Ð°Ð´Ð±Ñ–Ñ†ÑŒ у памÑць файл архіву лакалі"
#: locale/programs/locarchive.c:460
#, c-format
msgid "cannot lock new archive"
-msgstr "немагчыма замкнуць новы архіў"
+msgstr "не ўдалоÑÑ Ð·Ð°Ð±Ð»Ð°ÐºÐ°Ð²Ð°Ñ†ÑŒ новы архіў"
#: locale/programs/locarchive.c:529
#, c-format
msgid "cannot extend locale archive file"
-msgstr ""
+msgstr "не ўдалоÑÑ Ð¿Ð°ÑˆÑ‹Ñ€Ñ‹Ñ†ÑŒ файл архіву лакалі"
#: locale/programs/locarchive.c:538
#, c-format
msgid "cannot change mode of resized locale archive"
-msgstr ""
+msgstr "не ўдалоÑÑ Ð·Ð¼Ñніць Ñ€Ñжым архіву лакалі з змененым памерам"
#: locale/programs/locarchive.c:546
#, c-format
msgid "cannot rename new archive"
-msgstr "немагчыма перайменаваць новы архіў"
+msgstr "не ўдалоÑÑ Ð¿ÐµÑ€Ð°Ð¹Ð¼ÐµÐ½Ð°Ð²Ð°Ñ†ÑŒ новы архіў"
#: locale/programs/locarchive.c:608
#, c-format
msgid "cannot open locale archive \"%s\""
-msgstr "немагчыма адчыніць архіў мÑÑцоваÑьці \"%s\""
+msgstr "не ўдалоÑÑ Ð°Ð´ÐºÑ€Ñ‹Ñ†ÑŒ архіў лакалі \"%s\""
#: locale/programs/locarchive.c:613
#, c-format
msgid "cannot stat locale archive \"%s\""
-msgstr ""
+msgstr "не ўдалоÑÑ Ð²Ñ‹ÐºÐ°Ð½Ð°Ñ†ÑŒ stat на архіў лакалі \"%s\""
#: locale/programs/locarchive.c:632
#, c-format
msgid "cannot lock locale archive \"%s\""
-msgstr "немагчыма замкнуць архіў мÑÑцоваÑьці \"%s\""
+msgstr "не ўдалоÑÑ Ð·Ð°Ð±Ð»Ð°ÐºÐ°Ð²Ð°Ñ†ÑŒ архіў лакалі \"%s\""
#: locale/programs/locarchive.c:655
#, c-format
msgid "cannot read archive header"
-msgstr ""
+msgstr "не ўдалоÑÑ Ð¿Ñ€Ð°Ñ‡Ñ‹Ñ‚Ð°Ñ†ÑŒ загаловак архіву"
#: locale/programs/locarchive.c:728
#, c-format
msgid "locale '%s' already exists"
-msgstr ""
+msgstr "лакаль '%s' ужо Ñ–Ñнуе"
#: locale/programs/locarchive.c:1003 locale/programs/locarchive.c:1018
#: locale/programs/locarchive.c:1030 locale/programs/locarchive.c:1042
#: locale/programs/locfile.c:350
#, c-format
msgid "cannot add to locale archive"
-msgstr ""
+msgstr "не ўдалоÑÑ Ð´Ð°Ð´Ð°Ñ†ÑŒ да архіву лакалі"
#: locale/programs/locarchive.c:1203
#, c-format
msgid "locale alias file `%s' not found"
-msgstr ""
+msgstr "файл пÑеўданімаў лакалÑÑž не знойдзены `%s'"
#: locale/programs/locarchive.c:1351
#, c-format
msgid "Adding %s\n"
-msgstr ""
+msgstr "Дадаем %s\n"
#: locale/programs/locarchive.c:1357
#, c-format
msgid "stat of \"%s\" failed: %s: ignored"
-msgstr ""
+msgstr "памылка Ð¿Ð°Ð´Ñ‡Ð°Ñ Ð°Ñ‚Ñ€Ñ‹Ð¼Ð°Ð½Ð½Ñ stat \"%s\": %s: праігнаравана"
#: locale/programs/locarchive.c:1363
#, c-format
msgid "\"%s\" is no directory; ignored"
-msgstr ""
+msgstr "\"%s\" не Ñ‘Ñць каталогам; праігнаравана"
#: locale/programs/locarchive.c:1370
#, c-format
msgid "cannot open directory \"%s\": %s: ignored"
-msgstr ""
+msgstr "не ўдалоÑÑ Ð°Ð´ÐºÑ€Ñ‹Ñ†ÑŒ каталог \"%s\": %s: праігнаравана"
#: locale/programs/locarchive.c:1438
#, c-format
msgid "incomplete set of locale files in \"%s\""
-msgstr ""
+msgstr "нÑпоўны набор файлаў лакалÑÑž у \"%s\""
#: locale/programs/locarchive.c:1502
#, c-format
msgid "cannot read all files in \"%s\": ignored"
-msgstr ""
+msgstr "не ўдалоÑÑ Ð¿Ñ€Ð°Ñ‡Ñ‹Ñ‚Ð°Ñ†ÑŒ уÑе файлы Ñž \"%s\": праігнаравана"
#: locale/programs/locarchive.c:1572
#, c-format
msgid "locale \"%s\" not in archive"
-msgstr ""
+msgstr "лакалі \"%s\" нÑма Ñž архіве"
#: locale/programs/locfile.c:137
#, c-format
msgid "argument to `%s' must be a single character"
-msgstr "довад Ð´Ð»Ñ \"%s\" павінен быць аднім знакам"
+msgstr "аргумент да `%s' муÑіць быць адным знакам"
#: locale/programs/locfile.c:257
msgid "syntax error: not inside a locale definition section"
-msgstr ""
+msgstr "ÑінтакÑÑ–Ñ‡Ð½Ð°Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ°: па-за ÑекцыÑй азначÑÐ½Ð½Ñ Ð»Ð°ÐºÐ°Ð»Ñ–"
#: locale/programs/locfile.c:799
#, c-format
msgid "cannot open output file `%s' for category `%s'"
-msgstr ""
+msgstr "не ўдалоÑÑ Ð°Ð´ÐºÑ€Ñ‹Ñ†ÑŒ файл вываду `%s' Ð´Ð»Ñ ÐºÐ°Ñ‚Ñгорыі `%s'"
#: locale/programs/locfile.c:822
#, c-format
msgid "failure while writing data for category `%s'"
-msgstr ""
+msgstr "памылка Ð¿Ð°Ð´Ñ‡Ð°Ñ Ð·Ð°Ð¿Ñ–Ñу даных Ð´Ð»Ñ ÐºÐ°Ñ‚Ñгорыі `%s'"
-#: locale/programs/locfile.c:917
+#: locale/programs/locfile.c:930
#, c-format
msgid "cannot create output file `%s' for category `%s'"
-msgstr ""
+msgstr "не ўдалоÑÑ Ñтварыць файл вываду `%s' Ð´Ð»Ñ ÐºÐ°Ñ‚Ñгорыі `%s'"
-#: locale/programs/locfile.c:953
+#: locale/programs/locfile.c:966
msgid "expecting string argument for `copy'"
-msgstr ""
+msgstr "Ð´Ð»Ñ `copy' чакаецца аргумент-радок"
-#: locale/programs/locfile.c:957
+#: locale/programs/locfile.c:970
msgid "locale name should consist only of portable characters"
-msgstr ""
+msgstr "назва лакалі мае Ñкладацца толькі з пераноÑных знакаў"
-#: locale/programs/locfile.c:976
+#: locale/programs/locfile.c:989
msgid "no other keyword shall be specified when `copy' is used"
-msgstr ""
+msgstr "калі ўжыта `copy', Ñ–Ð½ÑˆÑ‹Ñ ÐºÐ»ÑŽÑ‡Ð°Ð²Ñ‹Ñ Ñловы не прымаюцца"
-#: locale/programs/locfile.c:990
+#: locale/programs/locfile.c:1003
#, c-format
msgid "`%1$s' definition does not end with `END %1$s'"
-msgstr ""
+msgstr "азначÑнне `%1$s' не Ñканчаецца `END %1$s'"
#: locale/programs/repertoire.c:228 locale/programs/repertoire.c:269
#: locale/programs/repertoire.c:294
#, c-format
msgid "syntax error in repertoire map definition: %s"
-msgstr ""
+msgstr "ÑінтакÑÑ–Ñ‡Ð½Ð°Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ° Ñž азначÑнні табліцы Ñ€Ñпертуару: %s"
#: locale/programs/repertoire.c:270
msgid "no <Uxxxx> or <Uxxxxxxxx> value given"
-msgstr ""
+msgstr "не пададзена значÑÐ½Ð½Ñ <Uxxxx> альбо <Uxxxxxxxx>"
#: locale/programs/repertoire.c:330
msgid "cannot save new repertoire map"
-msgstr ""
+msgstr "не ўдалоÑÑ Ð·Ð°Ñ…Ð°Ð²Ð°Ñ†ÑŒ новую табліцу Ñ€Ñпертуару"
#: locale/programs/repertoire.c:341
#, c-format
msgid "repertoire map file `%s' not found"
-msgstr ""
+msgstr "файл табліцы Ñ€Ñпертуару `%s' не знойдзены"
#: login/programs/pt_chown.c:79
#, c-format
msgid "Set the owner, group and access permission of the slave pseudo terminal corresponding to the master pseudo terminal passed on file descriptor `%d'. This is the helper program for the `grantpt' function. It is not intended to be run directly from the command line.\n"
-msgstr ""
+msgstr "УÑталÑванне ўладальніка, групы Ñ– дазволу доÑтупу падлеглага пÑеўдатÑрмінала, адпаведнага галоўнаму пÑеўдатÑрміналу, пададзенаму файлавым дÑÑкрыптарам `%d'. ГÑта Ð´Ð°Ð¿Ð°Ð¼Ð¾Ð¶Ð½Ð°Ñ Ð¿Ñ€Ð°Ð³Ñ€Ð°Ð¼Ð° Ð´Ð»Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ‹Ñ– `grantpt'. Яна не Ð¿Ñ€Ñ‹Ð·Ð½Ð°Ñ‡Ð°Ð½Ð°Ñ Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑку проÑта з каманднага радку.\n"
#: login/programs/pt_chown.c:93
#, c-format
@@ -2918,36 +2960,39 @@ msgid ""
"\n"
"%s"
msgstr ""
+"Уладальнікам назначаны цÑперашні карыÑтальнік, групай ÑžÑталÑвана `%s', а правамі доÑтупу - `%o'.\n"
+"\n"
+"%s"
#: login/programs/pt_chown.c:204
#, c-format
msgid "too many arguments"
-msgstr ""
+msgstr "зашмат аргументаў"
#: login/programs/pt_chown.c:212
#, c-format
msgid "needs to be installed setuid `root'"
-msgstr ""
+msgstr "муÑіць быць інÑталÑвана setuid `root'"
#: malloc/mcheck.c:344
msgid "memory is consistent, library is buggy\n"
-msgstr ""
+msgstr "памÑць цÑлаÑ, бібліÑÑ‚Ñка з памылкамі\n"
#: malloc/mcheck.c:347
msgid "memory clobbered before allocated block\n"
-msgstr ""
+msgstr "памÑць перад размеркаваным блокам пашкоджанаÑ\n"
#: malloc/mcheck.c:350
msgid "memory clobbered past end of allocated block\n"
-msgstr ""
+msgstr "памÑць за размеркаваным блокам пашкоджанаÑ\n"
#: malloc/mcheck.c:353
msgid "block freed twice\n"
-msgstr "блёк вызвалены двойчы\n"
+msgstr "блок вызвалены двойчы\n"
#: malloc/mcheck.c:356
msgid "bogus mcheck_status, library is buggy\n"
-msgstr ""
+msgstr "неправільный mcheck_status, памылка Ñž бібліÑÑ‚Ñцы\n"
#: malloc/memusage.sh:32
msgid "%s: option '%s' requires an argument\\n"
@@ -3683,12 +3728,12 @@ msgstr "yp_update: немагчыма пераўтварыць вузел у ÑÐ
msgid "yp_update: cannot get server address\n"
msgstr "yp_update: немагчыма атрымаць адрÑÑу паÑлужніку\n"
-#: nscd/aicache.c:83 nscd/hstcache.c:452
+#: nscd/aicache.c:82 nscd/hstcache.c:452
#, c-format
msgid "Haven't found \"%s\" in hosts cache!"
msgstr ""
-#: nscd/aicache.c:85 nscd/hstcache.c:454
+#: nscd/aicache.c:84 nscd/hstcache.c:454
#, c-format
msgid "Reloading \"%s\" in hosts cache!"
msgstr ""
@@ -4009,22 +4054,22 @@ msgstr ""
msgid "no more memory for database '%s'"
msgstr ""
-#: nscd/netgroupcache.c:121
+#: nscd/netgroupcache.c:122
#, c-format
msgid "Haven't found \"%s\" in netgroup cache!"
msgstr ""
-#: nscd/netgroupcache.c:123
+#: nscd/netgroupcache.c:124
#, c-format
msgid "Reloading \"%s\" in netgroup cache!"
msgstr ""
-#: nscd/netgroupcache.c:469
+#: nscd/netgroupcache.c:470
#, c-format
msgid "Haven't found \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr ""
-#: nscd/netgroupcache.c:472
+#: nscd/netgroupcache.c:473
#, c-format
msgid "Reloading \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr ""
@@ -4077,7 +4122,7 @@ msgstr "ВыкарыÑтоўваць аÑабіÑÑ‚Ñ‹ кÑш Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð°Ð³
msgid "Name Service Cache Daemon."
msgstr ""
-#: nscd/nscd.c:155 nss/getent.c:967 nss/makedb.c:206
+#: nscd/nscd.c:155 nss/getent.c:987 nss/makedb.c:206
#, c-format
msgid "wrong number of arguments"
msgstr ""
@@ -4180,27 +4225,27 @@ msgstr ""
msgid "Must specify user name for server-user option"
msgstr ""
-#: nscd/nscd_conf.c:198
+#: nscd/nscd_conf.c:201
#, c-format
msgid "Must specify user name for stat-user option"
msgstr ""
-#: nscd/nscd_conf.c:255
+#: nscd/nscd_conf.c:259
#, c-format
msgid "Must specify value for restart-interval option"
msgstr ""
-#: nscd/nscd_conf.c:269
+#: nscd/nscd_conf.c:273
#, c-format
msgid "Unknown option: %s %s %s"
msgstr "ÐевÑдомы выбар: %s %s %s"
-#: nscd/nscd_conf.c:282
+#: nscd/nscd_conf.c:286
#, c-format
msgid "cannot get current working directory: %s; disabling paranoia mode"
msgstr ""
-#: nscd/nscd_conf.c:302
+#: nscd/nscd_conf.c:306
#, c-format
msgid "maximum file size for %s database too small"
msgstr ""
@@ -4419,46 +4464,46 @@ msgstr ""
msgid "Reloading \"%s\" in services cache!"
msgstr ""
-#: nss/getent.c:54
+#: nss/getent.c:55
msgid "database [key ...]"
msgstr ""
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "CONFIG"
msgstr ""
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "Service configuration to be used"
msgstr ""
-#: nss/getent.c:60
+#: nss/getent.c:61
msgid "disable IDN encoding"
msgstr ""
-#: nss/getent.c:65
+#: nss/getent.c:66
msgid "Get entries from administrative database."
msgstr ""
-#: nss/getent.c:149 nss/getent.c:442 nss/getent.c:489
+#: nss/getent.c:150 nss/getent.c:462 nss/getent.c:509
#, c-format
msgid "Enumeration not supported on %s\n"
msgstr "ПералічÑньне непадтрымліваецца на %s\n"
-#: nss/getent.c:497 nss/getent.c:510
+#: nss/getent.c:517 nss/getent.c:530
#, c-format
msgid "Could not allocate group list: %m\n"
msgstr ""
-#: nss/getent.c:881
+#: nss/getent.c:901
#, c-format
msgid "Unknown database name"
msgstr ""
-#: nss/getent.c:911
+#: nss/getent.c:931
msgid "Supported databases:\n"
msgstr ""
-#: nss/getent.c:977
+#: nss/getent.c:997
#, c-format
msgid "Unknown database: %s\n"
msgstr "ÐевÑÐ´Ð¾Ð¼Ð°Ñ Ð±Ð°Ð·Ð° даньнÑÑž: %s\n"
@@ -4703,11 +4748,11 @@ msgstr ""
msgid "Unmatched ) or \\)"
msgstr ""
-#: posix/regcomp.c:689
+#: posix/regcomp.c:676
msgid "No previous regular expression"
msgstr ""
-#: posix/wordexp.c:1815
+#: posix/wordexp.c:1816
msgid "parameter null or not set"
msgstr ""
@@ -4892,7 +4937,7 @@ msgstr ""
msgid "Input message available"
msgstr ""
-#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:381 timezone/zic.c:520
+#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:375 timezone/zic.c:561
msgid "I/O error"
msgstr "памылка У/В"
@@ -4975,7 +5020,7 @@ msgstr "ÐевÑдомы Ñыгнал %d"
#: sunrpc/auth_unix.c:112 sunrpc/clnt_tcp.c:124 sunrpc/clnt_udp.c:139
#: sunrpc/clnt_unix.c:125 sunrpc/svc_tcp.c:189 sunrpc/svc_tcp.c:233
#: sunrpc/svc_udp.c:161 sunrpc/svc_unix.c:189 sunrpc/svc_unix.c:229
-#: sunrpc/xdr.c:628 sunrpc/xdr.c:788 sunrpc/xdr_array.c:102
+#: sunrpc/xdr.c:631 sunrpc/xdr.c:791 sunrpc/xdr_array.c:102
#: sunrpc/xdr_rec.c:153 sunrpc/xdr_ref.c:79
msgid "out of memory\n"
msgstr ""
@@ -6226,56 +6271,69 @@ msgid "You really blew it this time"
msgstr ""
#. TRANS Go home and have a glass of warm, dairy-fresh milk.
-#: sysdeps/gnu/errlist.c:978
+#. TRANS @c Okay. Since you are dying to know, I'll tell you.
+#. TRANS @c This is a joke, obviously. There is a children's song which begins,
+#. TRANS @c "Old McDonald had a farm, e-i-e-i-o." Every time I see the (real)
+#. TRANS @c errno macro EIO, I think about that song. Probably most of my
+#. TRANS @c compatriots who program on Unix do, too. One of them must have stayed
+#. TRANS @c up a little too late one night and decided to add it to Hurd or Glibc.
+#. TRANS @c Whoever did it should be castigated, but it made me laugh.
+#. TRANS @c --jtobey@channel1.com
+#. TRANS @c
+#. TRANS @c "bought the farm" means "died". -jtobey
+#. TRANS @c
+#. TRANS @c Translators, please do not translate this litteraly, translate it into
+#. TRANS @c an idiomatic funny way of saying that the computer died.
+#: sysdeps/gnu/errlist.c:991
msgid "Computer bought the farm"
msgstr ""
#. TRANS This error code has no purpose.
-#: sysdeps/gnu/errlist.c:987
+#: sysdeps/gnu/errlist.c:1000
msgid "Gratuitous error"
msgstr ""
-#: sysdeps/gnu/errlist.c:995
+#: sysdeps/gnu/errlist.c:1008
msgid "Bad message"
msgstr ""
-#: sysdeps/gnu/errlist.c:1003
+#: sysdeps/gnu/errlist.c:1016
msgid "Identifier removed"
msgstr ""
-#: sysdeps/gnu/errlist.c:1011
+#: sysdeps/gnu/errlist.c:1024
msgid "Multihop attempted"
msgstr ""
-#: sysdeps/gnu/errlist.c:1019
+#: sysdeps/gnu/errlist.c:1032
msgid "No data available"
msgstr ""
-#: sysdeps/gnu/errlist.c:1027
+#: sysdeps/gnu/errlist.c:1040
msgid "Link has been severed"
msgstr ""
-#: sysdeps/gnu/errlist.c:1035
+#: sysdeps/gnu/errlist.c:1048
msgid "No message of desired type"
msgstr ""
-#: sysdeps/gnu/errlist.c:1043
+#: sysdeps/gnu/errlist.c:1056
msgid "Out of streams resources"
msgstr ""
-#: sysdeps/gnu/errlist.c:1051
+#: sysdeps/gnu/errlist.c:1064
msgid "Device not a stream"
msgstr "Прылада не зьÑўлÑецца плыньню"
-#: sysdeps/gnu/errlist.c:1059
+#: sysdeps/gnu/errlist.c:1072
msgid "Value too large for defined data type"
msgstr ""
-#: sysdeps/gnu/errlist.c:1067
+#: sysdeps/gnu/errlist.c:1080
msgid "Protocol error"
msgstr ""
-#: sysdeps/gnu/errlist.c:1075
+#: sysdeps/gnu/errlist.c:1088
msgid "Timer expired"
msgstr ""
@@ -6283,195 +6341,195 @@ msgstr ""
#. TRANS completed. @xref{Asynchronous I/O}. When you call @code{aio_cancel},
#. TRANS the normal result is for the operations affected to complete with this
#. TRANS error; @pxref{Cancel AIO Operations}.
-#: sysdeps/gnu/errlist.c:1087
+#: sysdeps/gnu/errlist.c:1100
msgid "Operation canceled"
msgstr ""
-#: sysdeps/gnu/errlist.c:1095
+#: sysdeps/gnu/errlist.c:1108
msgid "Owner died"
msgstr ""
-#: sysdeps/gnu/errlist.c:1103
+#: sysdeps/gnu/errlist.c:1116
msgid "State not recoverable"
msgstr ""
-#: sysdeps/gnu/errlist.c:1111
+#: sysdeps/gnu/errlist.c:1124
msgid "Interrupted system call should be restarted"
msgstr ""
-#: sysdeps/gnu/errlist.c:1119
+#: sysdeps/gnu/errlist.c:1132
msgid "Channel number out of range"
msgstr ""
-#: sysdeps/gnu/errlist.c:1127
+#: sysdeps/gnu/errlist.c:1140
msgid "Level 2 not synchronized"
msgstr ""
-#: sysdeps/gnu/errlist.c:1135
+#: sysdeps/gnu/errlist.c:1148
msgid "Level 3 halted"
msgstr ""
-#: sysdeps/gnu/errlist.c:1143
+#: sysdeps/gnu/errlist.c:1156
msgid "Level 3 reset"
msgstr ""
-#: sysdeps/gnu/errlist.c:1151
+#: sysdeps/gnu/errlist.c:1164
msgid "Link number out of range"
msgstr ""
-#: sysdeps/gnu/errlist.c:1159
+#: sysdeps/gnu/errlist.c:1172
msgid "Protocol driver not attached"
msgstr ""
-#: sysdeps/gnu/errlist.c:1167
+#: sysdeps/gnu/errlist.c:1180
msgid "No CSI structure available"
msgstr ""
-#: sysdeps/gnu/errlist.c:1175
+#: sysdeps/gnu/errlist.c:1188
msgid "Level 2 halted"
msgstr ""
-#: sysdeps/gnu/errlist.c:1183
+#: sysdeps/gnu/errlist.c:1196
msgid "Invalid exchange"
msgstr ""
-#: sysdeps/gnu/errlist.c:1191
+#: sysdeps/gnu/errlist.c:1204
msgid "Invalid request descriptor"
msgstr ""
-#: sysdeps/gnu/errlist.c:1199
+#: sysdeps/gnu/errlist.c:1212
msgid "Exchange full"
msgstr ""
-#: sysdeps/gnu/errlist.c:1207
+#: sysdeps/gnu/errlist.c:1220
msgid "No anode"
msgstr ""
-#: sysdeps/gnu/errlist.c:1215
+#: sysdeps/gnu/errlist.c:1228
msgid "Invalid request code"
msgstr ""
-#: sysdeps/gnu/errlist.c:1223
+#: sysdeps/gnu/errlist.c:1236
msgid "Invalid slot"
msgstr ""
-#: sysdeps/gnu/errlist.c:1231
+#: sysdeps/gnu/errlist.c:1244
msgid "File locking deadlock error"
msgstr ""
-#: sysdeps/gnu/errlist.c:1239
+#: sysdeps/gnu/errlist.c:1252
msgid "Bad font file format"
msgstr ""
-#: sysdeps/gnu/errlist.c:1247
+#: sysdeps/gnu/errlist.c:1260
msgid "Machine is not on the network"
msgstr "Машына не Ñž Ñетцы"
-#: sysdeps/gnu/errlist.c:1255
+#: sysdeps/gnu/errlist.c:1268
msgid "Package not installed"
msgstr ""
-#: sysdeps/gnu/errlist.c:1263
+#: sysdeps/gnu/errlist.c:1276
msgid "Advertise error"
msgstr ""
-#: sysdeps/gnu/errlist.c:1271
+#: sysdeps/gnu/errlist.c:1284
msgid "Srmount error"
msgstr ""
-#: sysdeps/gnu/errlist.c:1279
+#: sysdeps/gnu/errlist.c:1292
msgid "Communication error on send"
msgstr ""
-#: sysdeps/gnu/errlist.c:1287
+#: sysdeps/gnu/errlist.c:1300
msgid "RFS specific error"
msgstr ""
-#: sysdeps/gnu/errlist.c:1295
+#: sysdeps/gnu/errlist.c:1308
msgid "Name not unique on network"
msgstr ""
-#: sysdeps/gnu/errlist.c:1303
+#: sysdeps/gnu/errlist.c:1316
msgid "File descriptor in bad state"
msgstr "ДÑÑкрыптар файлу Ñž дрÑнным Ñтане"
-#: sysdeps/gnu/errlist.c:1311
+#: sysdeps/gnu/errlist.c:1324
msgid "Remote address changed"
msgstr ""
-#: sysdeps/gnu/errlist.c:1319
+#: sysdeps/gnu/errlist.c:1332
msgid "Can not access a needed shared library"
msgstr ""
-#: sysdeps/gnu/errlist.c:1327
+#: sysdeps/gnu/errlist.c:1340
msgid "Accessing a corrupted shared library"
msgstr ""
-#: sysdeps/gnu/errlist.c:1335
+#: sysdeps/gnu/errlist.c:1348
msgid ".lib section in a.out corrupted"
msgstr ""
-#: sysdeps/gnu/errlist.c:1343
+#: sysdeps/gnu/errlist.c:1356
msgid "Attempting to link in too many shared libraries"
msgstr ""
-#: sysdeps/gnu/errlist.c:1351
+#: sysdeps/gnu/errlist.c:1364
msgid "Cannot exec a shared library directly"
msgstr ""
-#: sysdeps/gnu/errlist.c:1359
+#: sysdeps/gnu/errlist.c:1372
msgid "Streams pipe error"
msgstr ""
-#: sysdeps/gnu/errlist.c:1367
+#: sysdeps/gnu/errlist.c:1380
msgid "Structure needs cleaning"
msgstr ""
-#: sysdeps/gnu/errlist.c:1375
+#: sysdeps/gnu/errlist.c:1388
msgid "Not a XENIX named type file"
msgstr ""
-#: sysdeps/gnu/errlist.c:1383
+#: sysdeps/gnu/errlist.c:1396
msgid "No XENIX semaphores available"
msgstr ""
-#: sysdeps/gnu/errlist.c:1391
+#: sysdeps/gnu/errlist.c:1404
msgid "Is a named type file"
msgstr ""
-#: sysdeps/gnu/errlist.c:1399
+#: sysdeps/gnu/errlist.c:1412
msgid "Remote I/O error"
msgstr ""
-#: sysdeps/gnu/errlist.c:1407
+#: sysdeps/gnu/errlist.c:1420
msgid "No medium found"
msgstr ""
-#: sysdeps/gnu/errlist.c:1415
+#: sysdeps/gnu/errlist.c:1428
msgid "Wrong medium type"
msgstr "ÐÑ Ñ‚Ð¾Ð¹ від ноÑьбіта"
-#: sysdeps/gnu/errlist.c:1423
+#: sysdeps/gnu/errlist.c:1436
msgid "Required key not available"
msgstr ""
-#: sysdeps/gnu/errlist.c:1431
+#: sysdeps/gnu/errlist.c:1444
msgid "Key has expired"
msgstr ""
-#: sysdeps/gnu/errlist.c:1439
+#: sysdeps/gnu/errlist.c:1452
msgid "Key has been revoked"
msgstr ""
-#: sysdeps/gnu/errlist.c:1447
+#: sysdeps/gnu/errlist.c:1460
msgid "Key was rejected by service"
msgstr ""
-#: sysdeps/gnu/errlist.c:1455
+#: sysdeps/gnu/errlist.c:1468
msgid "Operation not possible due to RF-kill"
msgstr ""
-#: sysdeps/gnu/errlist.c:1463
+#: sysdeps/gnu/errlist.c:1476
msgid "Memory page has hardware error"
msgstr ""
@@ -6594,27 +6652,27 @@ msgstr ""
msgid "can't disable CET"
msgstr ""
-#: timezone/zdump.c:338
+#: timezone/zdump.c:332
msgid "has fewer than 3 characters"
msgstr ""
-#: timezone/zdump.c:340
+#: timezone/zdump.c:334
msgid "has more than 6 characters"
msgstr ""
-#: timezone/zdump.c:342
+#: timezone/zdump.c:336
msgid "has characters other than ASCII alphanumerics, '-' or '+'"
msgstr ""
-#: timezone/zdump.c:347
+#: timezone/zdump.c:341
#, c-format
msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n"
msgstr ""
-#: timezone/zdump.c:393
+#: timezone/zdump.c:387
#, c-format
msgid ""
-"%s: usage: %s OPTIONS ZONENAME ...\n"
+"%s: usage: %s OPTIONS TIMEZONE ...\n"
"Options include:\n"
" -c [L,]U Start at year L (default -500), end before year U (default 2500)\n"
" -t [L,]U Start at time L, end before time U (in seconds since 1970)\n"
@@ -6627,434 +6685,473 @@ msgid ""
"Report bugs to %s.\n"
msgstr ""
-#: timezone/zdump.c:479
+#: timezone/zdump.c:473
#, c-format
msgid "%s: wild -c argument %s\n"
msgstr ""
-#: timezone/zdump.c:512
+#: timezone/zdump.c:506
#, c-format
msgid "%s: wild -t argument %s\n"
msgstr ""
-#: timezone/zic.c:398
+#: timezone/zic.c:429
#, c-format
msgid "%s: Memory exhausted: %s\n"
msgstr "%s: памÑць вычарпана: %s\n"
-#: timezone/zic.c:406
+#: timezone/zic.c:437
msgid "size overflow"
msgstr ""
-#: timezone/zic.c:454
+#: timezone/zic.c:447
+msgid "alignment overflow"
+msgstr ""
+
+#: timezone/zic.c:495
msgid "integer overflow"
msgstr ""
-#: timezone/zic.c:488
+#: timezone/zic.c:529
#, c-format
msgid "\"%s\", line %<PRIdMAX>: "
msgstr ""
-#: timezone/zic.c:491
+#: timezone/zic.c:532
#, c-format
msgid " (rule from \"%s\", line %<PRIdMAX>)"
msgstr ""
-#: timezone/zic.c:510
+#: timezone/zic.c:551
#, c-format
msgid "warning: "
msgstr "увага: "
-#: timezone/zic.c:535
+#: timezone/zic.c:576
#, c-format
msgid ""
"%s: usage is %s [ --version ] [ --help ] [ -v ] \\\n"
"\t[ -l localtime ] [ -p posixrules ] [ -d directory ] \\\n"
-"\t[ -L leapseconds ] [ filename ... ]\n"
+"\t[ -t localtime-link ] [ -L leapseconds ] [ filename ... ]\n"
"\n"
"Report bugs to %s.\n"
msgstr ""
-#: timezone/zic.c:558
+#: timezone/zic.c:599
#, c-format
msgid "%s: Can't chdir to %s: %s\n"
msgstr ""
-#: timezone/zic.c:590
+#: timezone/zic.c:632
msgid "wild compilation-time specification of zic_t"
msgstr ""
-#: timezone/zic.c:610
+#: timezone/zic.c:652
#, c-format
msgid "%s: More than one -d option specified\n"
msgstr "%s: больш чым адзін выбар -d зададзены\n"
-#: timezone/zic.c:620
+#: timezone/zic.c:662
#, c-format
msgid "%s: More than one -l option specified\n"
msgstr "%s: больш чым адзін выбар -l зададзены\n"
-#: timezone/zic.c:630
+#: timezone/zic.c:672
#, c-format
msgid "%s: More than one -p option specified\n"
msgstr "%s: больш чым адзін выбар -p зададзены\n"
-#: timezone/zic.c:640
+#: timezone/zic.c:680
+#, c-format
+msgid "%s: More than one -t option specified\n"
+msgstr ""
+
+#: timezone/zic.c:689
+msgid "-y is obsolescent"
+msgstr ""
+
+#: timezone/zic.c:693
#, c-format
msgid "%s: More than one -y option specified\n"
msgstr "%s: больш чым адзін выбар -y зададзены\n"
-#: timezone/zic.c:650
+#: timezone/zic.c:703
#, c-format
msgid "%s: More than one -L option specified\n"
msgstr "%s: больш чым адзін выбар -L зададзены\n"
-#: timezone/zic.c:659
+#: timezone/zic.c:712
msgid "-s ignored"
msgstr ""
-#: timezone/zic.c:698
+#: timezone/zic.c:753
msgid "link to link"
msgstr ""
-#: timezone/zic.c:701 timezone/zic.c:705
+#: timezone/zic.c:756 timezone/zic.c:760
msgid "command line"
msgstr ""
-#: timezone/zic.c:721
+#: timezone/zic.c:776
msgid "empty file name"
msgstr ""
-#: timezone/zic.c:724
+#: timezone/zic.c:779
#, c-format
msgid "file name '%s' begins with '/'"
msgstr ""
-#: timezone/zic.c:734
+#: timezone/zic.c:789
#, c-format
msgid "file name '%s' contains '%.*s' component"
msgstr ""
-#: timezone/zic.c:740
+#: timezone/zic.c:795
#, c-format
msgid "file name '%s' component contains leading '-'"
msgstr ""
-#: timezone/zic.c:743
+#: timezone/zic.c:798
#, c-format
msgid "file name '%s' contains overlength component '%.*s...'"
msgstr ""
-#: timezone/zic.c:771
+#: timezone/zic.c:826
#, c-format
msgid "file name '%s' contains byte '%c'"
msgstr ""
-#: timezone/zic.c:772
+#: timezone/zic.c:827
#, c-format
msgid "file name '%s' contains byte '\\%o'"
msgstr ""
-#: timezone/zic.c:842
+#: timezone/zic.c:897
#, c-format
msgid "%s: link from %s/%s failed: %s\n"
msgstr ""
-#: timezone/zic.c:852 timezone/zic.c:1815
+#: timezone/zic.c:907 timezone/zic.c:1876
#, c-format
msgid "%s: Can't remove %s/%s: %s\n"
msgstr ""
-#: timezone/zic.c:874
+#: timezone/zic.c:931
#, c-format
msgid "symbolic link used because hard link failed: %s"
msgstr ""
-#: timezone/zic.c:882
+#: timezone/zic.c:939
#, c-format
msgid "%s: Can't read %s/%s: %s\n"
msgstr ""
-#: timezone/zic.c:889 timezone/zic.c:1828
+#: timezone/zic.c:946 timezone/zic.c:1889
#, c-format
msgid "%s: Can't create %s/%s: %s\n"
msgstr ""
-#: timezone/zic.c:898
+#: timezone/zic.c:955
#, c-format
msgid "copy used because hard link failed: %s"
msgstr ""
-#: timezone/zic.c:901
+#: timezone/zic.c:958
#, c-format
msgid "copy used because symbolic link failed: %s"
msgstr ""
-#: timezone/zic.c:1013 timezone/zic.c:1015
+#: timezone/zic.c:1032 timezone/zic.c:1034
msgid "same rule name in multiple files"
msgstr ""
-#: timezone/zic.c:1056
-msgid "unruly zone"
-msgstr ""
-
-#: timezone/zic.c:1063
+#: timezone/zic.c:1081
#, c-format
msgid "%s in ruleless zone"
msgstr ""
-#: timezone/zic.c:1083
+#: timezone/zic.c:1101
msgid "standard input"
msgstr "Ñтандартны ўвод"
-#: timezone/zic.c:1088
+#: timezone/zic.c:1106
#, c-format
msgid "%s: Can't open %s: %s\n"
msgstr "%s: немагчыма адчыніць %s: %s\n"
-#: timezone/zic.c:1099
+#: timezone/zic.c:1117
msgid "line too long"
msgstr "радок занадта вÑлікі"
-#: timezone/zic.c:1119
+#: timezone/zic.c:1139
msgid "input line of unknown type"
msgstr ""
-#: timezone/zic.c:1134
-#, c-format
-msgid "%s: Leap line in non leap seconds file %s"
-msgstr ""
-
-#: timezone/zic.c:1142 timezone/zic.c:1547 timezone/zic.c:1569
+#: timezone/zic.c:1158 timezone/zic.c:1593 timezone/zic.c:1615
#, c-format
msgid "%s: panic: Invalid l_value %d\n"
msgstr ""
-#: timezone/zic.c:1151
+#: timezone/zic.c:1167
msgid "expected continuation line not found"
msgstr ""
-#: timezone/zic.c:1193 timezone/zic.c:2976
+#: timezone/zic.c:1203
+msgid "fractional seconds rejected by pre-2018 versions of zic"
+msgstr ""
+
+#: timezone/zic.c:1221 timezone/zic.c:3078
msgid "time overflow"
msgstr ""
-#: timezone/zic.c:1198
+#: timezone/zic.c:1227
msgid "values over 24 hours not handled by pre-2007 versions of zic"
msgstr ""
-#: timezone/zic.c:1209
+#: timezone/zic.c:1245
+msgid "invalid saved time"
+msgstr "нерÑчаіÑны захаваны чаÑ"
+
+#: timezone/zic.c:1256
msgid "wrong number of fields on Rule line"
msgstr ""
-#: timezone/zic.c:1213
-msgid "nameless rule"
+#: timezone/zic.c:1265
+#, c-format
+msgid "Invalid rule name \"%s\""
msgstr ""
-#: timezone/zic.c:1218
-msgid "invalid saved time"
-msgstr "нерÑчаіÑны захаваны чаÑ"
-
-#: timezone/zic.c:1235
+#: timezone/zic.c:1287
msgid "wrong number of fields on Zone line"
msgstr "памылковы нумар палёў у радку поÑÑу (Zone)"
-#: timezone/zic.c:1240
+#: timezone/zic.c:1292
#, c-format
msgid "\"Zone %s\" line and -l option are mutually exclusive"
msgstr ""
-#: timezone/zic.c:1246
+#: timezone/zic.c:1298
#, c-format
msgid "\"Zone %s\" line and -p option are mutually exclusive"
msgstr ""
-#: timezone/zic.c:1253
+#: timezone/zic.c:1305
#, c-format
msgid "duplicate zone name %s (file \"%s\", line %<PRIdMAX>)"
msgstr ""
-#: timezone/zic.c:1267
+#: timezone/zic.c:1319
msgid "wrong number of fields on Zone continuation line"
msgstr ""
-#: timezone/zic.c:1307
+#: timezone/zic.c:1359
msgid "invalid UT offset"
msgstr ""
-#: timezone/zic.c:1311
+#: timezone/zic.c:1363
msgid "invalid abbreviation format"
msgstr "нерÑчаіÑны фармат ÑкарачÑньнÑ"
-#: timezone/zic.c:1320
+#: timezone/zic.c:1372
#, c-format
msgid "format '%s' not handled by pre-2015 versions of zic"
msgstr ""
-#: timezone/zic.c:1347
+#: timezone/zic.c:1399
msgid "Zone continuation line end time is not after end time of previous line"
msgstr ""
-#: timezone/zic.c:1374
+#: timezone/zic.c:1426
msgid "wrong number of fields on Leap line"
msgstr ""
-#: timezone/zic.c:1383
+#: timezone/zic.c:1435
msgid "invalid leaping year"
msgstr ""
-#: timezone/zic.c:1403 timezone/zic.c:1501
+#: timezone/zic.c:1455 timezone/zic.c:1547
msgid "invalid month name"
msgstr ""
-#: timezone/zic.c:1416 timezone/zic.c:1614 timezone/zic.c:1628
+#: timezone/zic.c:1468 timezone/zic.c:1663 timezone/zic.c:1677
msgid "invalid day of month"
msgstr ""
-#: timezone/zic.c:1421
+#: timezone/zic.c:1473
msgid "time too small"
msgstr ""
-#: timezone/zic.c:1425
+#: timezone/zic.c:1477
msgid "time too large"
msgstr ""
-#: timezone/zic.c:1429 timezone/zic.c:1530
+#: timezone/zic.c:1481 timezone/zic.c:1576
msgid "invalid time of day"
msgstr ""
-#: timezone/zic.c:1448
+#: timezone/zic.c:1494
msgid "illegal CORRECTION field on Leap line"
msgstr ""
-#: timezone/zic.c:1453
+#: timezone/zic.c:1499
msgid "illegal Rolling/Stationary field on Leap line"
msgstr ""
-#: timezone/zic.c:1459
-msgid "leap second precedes Big Bang"
+#: timezone/zic.c:1505
+msgid "leap second precedes Epoch"
msgstr ""
-#: timezone/zic.c:1472
+#: timezone/zic.c:1518
msgid "wrong number of fields on Link line"
msgstr ""
-#: timezone/zic.c:1476
+#: timezone/zic.c:1522
msgid "blank FROM field on Link line"
msgstr ""
-#: timezone/zic.c:1551
+#: timezone/zic.c:1597
msgid "invalid starting year"
msgstr ""
-#: timezone/zic.c:1573
+#: timezone/zic.c:1619
msgid "invalid ending year"
msgstr ""
-#: timezone/zic.c:1577
+#: timezone/zic.c:1623
msgid "starting year greater than ending year"
msgstr ""
-#: timezone/zic.c:1584
+#: timezone/zic.c:1630
msgid "typed single year"
msgstr ""
-#: timezone/zic.c:1619
+#: timezone/zic.c:1633
+#, c-format
+msgid "year type \"%s\" is obsolete; use \"-\" instead"
+msgstr ""
+
+#: timezone/zic.c:1668
msgid "invalid weekday name"
msgstr ""
-#: timezone/zic.c:1743
+#: timezone/zic.c:1800
#, c-format
msgid "reference clients mishandle more than %d transition times"
msgstr ""
-#: timezone/zic.c:1747
+#: timezone/zic.c:1804
msgid "pre-2014 clients may mishandle more than 1200 transition times"
msgstr ""
-#: timezone/zic.c:1858
+#: timezone/zic.c:1920
msgid "too many transition times"
msgstr ""
-#: timezone/zic.c:2047
+#: timezone/zic.c:2107
#, c-format
-msgid "%%z UTC offset magnitude exceeds 99:59:59"
+msgid "%%z UT offset magnitude exceeds 99:59:59"
msgstr ""
-#: timezone/zic.c:2424
+#: timezone/zic.c:2488
msgid "no POSIX environment variable for zone"
msgstr ""
-#: timezone/zic.c:2430
+#: timezone/zic.c:2494
#, c-format
msgid "%s: pre-%d clients may mishandle distant timestamps"
msgstr ""
-#: timezone/zic.c:2566
+#: timezone/zic.c:2631
msgid "two rules for same instant"
msgstr ""
-#: timezone/zic.c:2627
+#: timezone/zic.c:2696
msgid "can't determine time zone abbreviation to use just after until time"
msgstr ""
-#: timezone/zic.c:2725
+#: timezone/zic.c:2785
msgid "too many local time types"
msgstr ""
-#: timezone/zic.c:2729
+#: timezone/zic.c:2789
msgid "UT offset out of range"
msgstr ""
-#: timezone/zic.c:2753
+#: timezone/zic.c:2813
msgid "too many leap seconds"
msgstr ""
-#: timezone/zic.c:2759
-msgid "repeated leap second moment"
+#: timezone/zic.c:2844
+msgid "Leap seconds too close together"
msgstr ""
-#: timezone/zic.c:2830
+#: timezone/zic.c:2891
msgid "Wild result from command execution"
msgstr ""
-#: timezone/zic.c:2831
+#: timezone/zic.c:2892
#, c-format
msgid "%s: command was '%s', result was %d\n"
msgstr "%s: загад быў '%s', вынік быў %d\n"
-#: timezone/zic.c:2961
+#: timezone/zic.c:2998
+#, c-format
+msgid "\"%s\" is undocumented; use \"last%s\" instead"
+msgstr ""
+
+#: timezone/zic.c:3029
+#, c-format
+msgid "\"%s\" is ambiguous in pre-2017c zic"
+msgstr ""
+
+#: timezone/zic.c:3063
msgid "Odd number of quotation marks"
msgstr ""
-#: timezone/zic.c:3046
+#: timezone/zic.c:3157
msgid "use of 2/29 in non leap-year"
msgstr ""
-#: timezone/zic.c:3081
+#: timezone/zic.c:3192
msgid "rule goes past start/end of month; will not work with pre-2004 versions of zic"
msgstr ""
-#: timezone/zic.c:3108
+#: timezone/zic.c:3219
msgid "time zone abbreviation has fewer than 3 characters"
msgstr ""
-#: timezone/zic.c:3110
+#: timezone/zic.c:3221
msgid "time zone abbreviation has too many characters"
msgstr ""
-#: timezone/zic.c:3112
+#: timezone/zic.c:3223
msgid "time zone abbreviation differs from POSIX standard"
msgstr ""
-#: timezone/zic.c:3118
+#: timezone/zic.c:3229
msgid "too many, or too long, time zone abbreviations"
msgstr ""
-#: timezone/zic.c:3161
+#: timezone/zic.c:3275
#, c-format
msgid "%s: Can't create directory %s: %s"
msgstr ""
+#~ msgid "cannot open zero fill device"
+#~ msgstr "не ўдалоÑÑ Ð°Ð´ÐºÑ€Ñ‹Ñ†ÑŒ прыладу Ð·Ð°Ð¿Ð°ÑžÐ½ÐµÐ½Ð½Ñ Ð½ÑƒÐ»Ñмі (/dev/zero)"
+
+#~ msgid "relocation error"
+#~ msgstr "памылка перамÑшчÑннÑ"
+
+#~ msgid "Cannot set LC_CTYPE to default locale"
+#~ msgstr "Ðе ўдаецца прызначыць LC_CTYPE на Ñтандартную лакаль"
+
+#~ msgid "Cannot set LC_MESSAGES to default locale"
+#~ msgstr "Ðе ўдаецца прызначыць LC_MESSAGES на Ñтандартную лакаль"
+
+#~ msgid "Cannot set LC_COLLATE to default locale"
+#~ msgstr "Ðе ўдаецца прызначыць LC_COLLATE на Ñтандартную лакаль"
+
#~| msgid "invalid saved time"
#~ msgid "invalid caller"
#~ msgstr "нерÑчаіÑны захаваны чаÑ"
diff --git a/po/bg.po b/po/bg.po
index 65e7147e5e..7a7d6c3b17 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -3,15 +3,16 @@
# This file is distributed under the same license as the glibc package.
#
# Anton Zinoviev <zinoviev@debian.org>, 2007
-# Roumen Petrov <transl@roumenpetrov.info>, 2008,2009,2011,2012,2017,2018
+# Roumen Petrov <transl@roumenpetrov.info>, 2008,2009,2011,2012,2017,2018,2019
#
# Abbreviations:
# CET - Control-Flow Enforcement Technology
+#
msgid ""
msgstr ""
-"Project-Id-Version: libc 2.27.9000\n"
-"POT-Creation-Date: 2018-07-26 22:19-0400\n"
-"PO-Revision-Date: 2018-07-28 14:08+0300\n"
+"Project-Id-Version: libc 2.29.9000\n"
+"POT-Creation-Date: 2019-07-18 13:28-0400\n"
+"PO-Revision-Date: 2019-07-26 20:38+0300\n"
"Last-Translator: Roumen Petrov <transl@roumenpetrov.info>\n"
"Language-Team: Bulgarian <dict@ludost.net>\n"
"Language: bg\n"
@@ -153,10 +154,10 @@ msgstr ""
"[ИЗХОДЕÐ-ФÐЙЛ [ВХОДЕÐ_ФÐЙЛ]...]"
#: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:308
-#: elf/pldd.c:252 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
-#: iconv/iconvconfig.c:379 locale/programs/locale.c:275
-#: locale/programs/localedef.c:427 login/programs/pt_chown.c:89
-#: malloc/memusagestat.c:563 nss/getent.c:933 nss/makedb.c:369
+#: elf/pldd.c:247 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
+#: iconv/iconvconfig.c:379 locale/programs/locale.c:276
+#: locale/programs/localedef.c:437 login/programs/pt_chown.c:89
+#: malloc/memusagestat.c:563 nss/getent.c:953 nss/makedb.c:369
#: posix/getconf.c:503 sysdeps/unix/sysv/linux/lddlibc4.c:61
#, c-format
msgid ""
@@ -167,11 +168,11 @@ msgstr ""
"%s.\n"
#: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64
-#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75
+#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:263 elf/sotruss.sh:75
#: elf/sprof.c:389 iconv/iconv_prog.c:422 iconv/iconvconfig.c:396
-#: locale/programs/locale.c:292 locale/programs/localedef.c:453
+#: locale/programs/locale.c:293 locale/programs/localedef.c:463
#: login/programs/pt_chown.c:63 malloc/memusage.sh:71
-#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:87 nss/makedb.c:385
+#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:88 nss/makedb.c:385
#: posix/getconf.c:485 sysdeps/unix/sysv/linux/lddlibc4.c:68
#, c-format
msgid ""
@@ -184,10 +185,10 @@ msgstr ""
"ГÐРÐÐЦИИ, включително без предполагаемите гаранции за полезноÑÑ‚ и пригодноÑÑ‚.\n"
#: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68
-#: elf/ldconfig.c:329 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:427
-#: iconv/iconvconfig.c:401 locale/programs/locale.c:297
-#: locale/programs/localedef.c:458 malloc/memusage.sh:75
-#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:92 nss/makedb.c:390
+#: elf/ldconfig.c:329 elf/pldd.c:268 elf/sprof.c:395 iconv/iconv_prog.c:427
+#: iconv/iconvconfig.c:401 locale/programs/locale.c:298
+#: locale/programs/localedef.c:468 malloc/memusage.sh:75
+#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:93 nss/makedb.c:390
#: posix/getconf.c:490
#, c-format
msgid "Written by %s.\n"
@@ -258,21 +259,21 @@ msgstr "не може да Ñе отвори файлът за изход \"%s\"
msgid "invalid escape sequence"
msgstr "неправилна замеÑтваща поÑледователноÑÑ‚ (escape)"
-#: catgets/gencat.c:1209
+#: catgets/gencat.c:1211
msgid "unterminated message"
msgstr "незавършено Ñъобщение"
-#: catgets/gencat.c:1233
+#: catgets/gencat.c:1235
#, c-format
msgid "while opening old catalog file"
msgstr "при отварÑне на предишен файл за каталог"
-#: catgets/gencat.c:1324
+#: catgets/gencat.c:1326
#, c-format
msgid "conversion modules not available"
msgstr "не е наличен модул за конвертиране"
-#: catgets/gencat.c:1350
+#: catgets/gencat.c:1352
#, c-format
msgid "cannot determine escape character"
msgstr "не може да Ñе определи знака за замеÑтване(escape)"
@@ -399,7 +400,7 @@ msgstr "ÐеизвеÑтна ОС"
msgid ", OS ABI: %s %d.%d.%d"
msgstr ", ОС ДПИ(двоичен програмен интерфейÑ): %s %d.%d.%d"
-#: elf/cache.c:163 elf/ldconfig.c:1332
+#: elf/cache.c:163 elf/ldconfig.c:1333
#, c-format
msgid "Can't open cache file %s\n"
msgstr "Ðе може да Ñе отвори файлът за Ñкладиране %s\n"
@@ -409,38 +410,38 @@ msgstr "Ðе може да Ñе отвори файлът за ÑкладираÐ
msgid "mmap of cache file failed.\n"
msgstr "пропадна изображението в паметта (mmap) на файлът за Ñкладиране.\n"
-#: elf/cache.c:181 elf/cache.c:195
+#: elf/cache.c:181 elf/cache.c:195 elf/cache.c:205
#, c-format
msgid "File is not a cache file.\n"
msgstr "Файлът не е файл за Ñкладиране.\n"
-#: elf/cache.c:228 elf/cache.c:238
+#: elf/cache.c:233 elf/cache.c:243
#, c-format
msgid "%d libs found in cache `%s'\n"
msgstr "%d библиотеки Ñа налични в Ñклад \"%s\"\n"
-#: elf/cache.c:432
+#: elf/cache.c:437
#, c-format
msgid "Can't create temporary cache file %s"
msgstr "Ðе може да Ñе Ñъздаде временен файл за Ñкладиране %s"
-#: elf/cache.c:440 elf/cache.c:450 elf/cache.c:454 elf/cache.c:458
-#: elf/cache.c:468
+#: elf/cache.c:445 elf/cache.c:455 elf/cache.c:459 elf/cache.c:463
+#: elf/cache.c:473
#, c-format
msgid "Writing of cache data failed"
msgstr "Пропадна запиÑването на данните за Ñкладиране"
-#: elf/cache.c:463
+#: elf/cache.c:468
#, c-format
msgid "Changing access rights of %s to %#o failed"
msgstr "Пропадна ÑмÑната па правата за доÑтъп от %s към %#o"
-#: elf/cache.c:472
+#: elf/cache.c:477
#, c-format
msgid "Renaming of %s to %s failed"
msgstr "Пропадна преименуването от %s към %s"
-#: elf/dl-close.c:399 elf/dl-open.c:420
+#: elf/dl-close.c:399 elf/dl-open.c:424
msgid "cannot create scope list"
msgstr "не може да Ñе Ñъздаде ÑпиÑък на обхватът"
@@ -521,119 +522,119 @@ msgstr "не може да Ñе Ñъздаде маÑив на директорÐ
msgid "cannot stat shared object"
msgstr "не може да Ñе определÑÑ‚ атрибутите на Ñподелен обект"
-#: elf/dl-load.c:960
-msgid "cannot open zero fill device"
-msgstr "не може да Ñе отвори уÑтройÑтвото за запълване Ñ Ð½ÑƒÐ»Ð¸(/dev/zero)"
-
-#: elf/dl-load.c:1007 elf/dl-load.c:2203
+#: elf/dl-load.c:992 elf/dl-load.c:2198
msgid "cannot create shared object descriptor"
msgstr "не може да Ñе Ñъздаде опиÑание за Ñподелен обект"
-#: elf/dl-load.c:1026 elf/dl-load.c:1560 elf/dl-load.c:1673
+#: elf/dl-load.c:1011 elf/dl-load.c:1555 elf/dl-load.c:1668
msgid "cannot read file data"
msgstr "не може да Ñе прочетат данни от файлът"
-#: elf/dl-load.c:1072
+#: elf/dl-load.c:1057
msgid "ELF load command alignment not page-aligned"
msgstr "подравнÑването, в командата за зареждане на ELF, не е подравнено на Ñтраници"
-#: elf/dl-load.c:1079
+#: elf/dl-load.c:1064
msgid "ELF load command address/offset not properly aligned"
msgstr "адреÑÑŠÑ‚/отмеÑтването, в командата за зареждане на ELF, не е подравнен правилно"
-#: elf/dl-load.c:1161
+#: elf/dl-load.c:1146
msgid "cannot process note segment"
msgstr "не може да Ñе обработи дÑл за бележки"
-#: elf/dl-load.c:1172
+#: elf/dl-load.c:1157
msgid "object file has no loadable segments"
msgstr "обектниÑÑ‚ файл е без дÑлове за Ñвързване"
-#: elf/dl-load.c:1181 elf/dl-load.c:1652
+#: elf/dl-load.c:1170 elf/dl-load.c:1647
msgid "cannot dynamically load executable"
msgstr "изпълнимиÑÑ‚ файл не може да Ñе Ñвърже динамично"
-#: elf/dl-load.c:1202
+#: elf/dl-load.c:1191
msgid "object file has no dynamic section"
msgstr "обектниÑÑ‚ файл е без дÑл за динамично Ñвързване"
-#: elf/dl-load.c:1225
+#: elf/dl-load.c:1218
+msgid "cannot dynamically load position-independent executable"
+msgstr "не може да Ñе зареди изпълним файл незавиÑим от меÑтоположение"
+
+#: elf/dl-load.c:1220
msgid "shared object cannot be dlopen()ed"
msgstr "не е възможно dlopen() за ÑподелениÑÑ‚ обект"
-#: elf/dl-load.c:1238
+#: elf/dl-load.c:1233
msgid "cannot allocate memory for program header"
msgstr "не може да Ñе задели памет за заглавието на програмата"
-#: elf/dl-load.c:1271 elf/dl-load.h:130
+#: elf/dl-load.c:1266 elf/dl-load.h:130
msgid "cannot change memory protections"
msgstr "не може да Ñе промени защитата на паметта"
-#: elf/dl-load.c:1291
+#: elf/dl-load.c:1286
msgid "cannot enable executable stack as shared object requires"
msgstr "Ñтекът не може да Ñе разреши за изпълнение, както е поиÑкано от ÑÐ¿Ð¾Ð´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¾Ð±ÐµÐºÑ‚"
-#: elf/dl-load.c:1304
+#: elf/dl-load.c:1299
msgid "cannot close file descriptor"
msgstr "не може да Ñе затвори опиÑанието на файлът"
-#: elf/dl-load.c:1560
+#: elf/dl-load.c:1555
msgid "file too short"
msgstr "файлът е твърде къÑ"
-#: elf/dl-load.c:1595
+#: elf/dl-load.c:1590
msgid "invalid ELF header"
msgstr "неправилен ELF заглавен блок"
-#: elf/dl-load.c:1607
+#: elf/dl-load.c:1602
msgid "ELF file data encoding not big-endian"
msgstr "данните от ELF файлът не Ñа кодирани ÑÑŠÑ Ñтарши байт първи(big-endian)"
-#: elf/dl-load.c:1609
+#: elf/dl-load.c:1604
msgid "ELF file data encoding not little-endian"
msgstr "данните от ELF файлът не Ñа кодирани Ñ Ð¼Ð»Ð°Ð´ÑˆÐ¸ байт първи(little-endian)"
-#: elf/dl-load.c:1613
+#: elf/dl-load.c:1608
msgid "ELF file version ident does not match current one"
msgstr "номерът на верÑÐ¸Ñ Ð¾Ñ‚ ELF-файла не ÑъответÑтва на текущата"
-#: elf/dl-load.c:1617
+#: elf/dl-load.c:1612
msgid "ELF file OS ABI invalid"
msgstr "ELF файлът е Ñ Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÐµÐ½ номер на ДПИ(ABI-двоичен програмен интерфейÑ) за ОС "
-#: elf/dl-load.c:1620
+#: elf/dl-load.c:1615
msgid "ELF file ABI version invalid"
msgstr "ELF файлът е Ñ Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»Ð½Ð° верÑÐ¸Ñ Ð·Ð° ДПИ(двоичен програмен интерфейÑ)"
-#: elf/dl-load.c:1623
+#: elf/dl-load.c:1618
msgid "nonzero padding in e_ident"
msgstr "ненулево допълване при e_ident"
-#: elf/dl-load.c:1626
+#: elf/dl-load.c:1621
msgid "internal error"
msgstr "вътрешна грешка"
-#: elf/dl-load.c:1633
+#: elf/dl-load.c:1628
msgid "ELF file version does not match current one"
msgstr "верÑиÑта, на ELF файлът, не ÑъответÑтва на текущата"
-#: elf/dl-load.c:1641
+#: elf/dl-load.c:1636
msgid "only ET_DYN and ET_EXEC can be loaded"
msgstr "Ñамо ET_DYN и ET_EXEC могат да Ñе Ñвържат"
-#: elf/dl-load.c:1657
+#: elf/dl-load.c:1652
msgid "ELF file's phentsize not the expected size"
msgstr "неочакван размер на елемент(phentsize) в заглавието на ELF файл"
-#: elf/dl-load.c:2222
+#: elf/dl-load.c:2217
msgid "wrong ELF class: ELFCLASS64"
msgstr "неправилен ELF клаÑ: ELFCLASS64"
-#: elf/dl-load.c:2223
+#: elf/dl-load.c:2218
msgid "wrong ELF class: ELFCLASS32"
msgstr "неправилен ELF клаÑ: ELFCLASS32"
-#: elf/dl-load.c:2226
+#: elf/dl-load.c:2221
msgid "cannot open shared object file"
msgstr "не може да Ñе отвори файлът ÑÑŠÑ ÑÐ¿Ð¾Ð´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¾Ð±ÐµÐºÑ‚"
@@ -645,11 +646,7 @@ msgstr "пропадна изображението на дÑл от ÑподеÐ
msgid "cannot map zero-fill pages"
msgstr "не може да Ñе изобразÑÑ‚ Ñтраници запълнени Ñ Ð½ÑƒÐ»Ð¸"
-#: elf/dl-lookup.c:835
-msgid "relocation error"
-msgstr "грешка при премеÑтване"
-
-#: elf/dl-lookup.c:858
+#: elf/dl-lookup.c:830
msgid "symbol lookup error"
msgstr "грешка при Ñ‚ÑŠÑ€Ñене на Ñимвол"
@@ -657,19 +654,19 @@ msgstr "грешка при Ñ‚ÑŠÑ€Ñене на Ñимвол"
msgid "cannot extend global scope"
msgstr "не може да Ñе увеличи общата облаÑÑ‚"
-#: elf/dl-open.c:470
+#: elf/dl-open.c:474
msgid "TLS generation counter wrapped! Please report this."
msgstr "ПревъртÑн броÑч за пораждане на TLS! ÐœÐ¾Ð»Ñ Ð´Ð¾ÐºÐ»Ð°Ð´Ð²Ð°Ð¹Ñ‚Ðµ го."
-#: elf/dl-open.c:534
+#: elf/dl-open.c:538
msgid "invalid mode for dlopen()"
msgstr "неправилен режим за dlopen()"
-#: elf/dl-open.c:551
+#: elf/dl-open.c:555
msgid "no more namespaces available for dlmopen()"
msgstr "не Ñа налични повече именувани проÑтранÑтва за dlmopen()"
-#: elf/dl-open.c:575
+#: elf/dl-open.c:579
msgid "invalid target namespace in dlmopen()"
msgstr "неправилно именувано целево проÑтранÑтво в dlmopen()"
@@ -677,20 +674,20 @@ msgstr "неправилно именувано целево проÑтранÑÑ
msgid "cannot allocate memory in static TLS block"
msgstr "не може да Ñе задели памет в Ñтатичен TSL блок"
-#: elf/dl-reloc.c:205
+#: elf/dl-reloc.c:213
msgid "cannot make segment writable for relocation"
msgstr "дÑлът не може да Ñе маркира като запиÑваем за \"премеÑтваем код\""
-#: elf/dl-reloc.c:276
+#: elf/dl-reloc.c:272
#, c-format
msgid "%s: out of memory to store relocation results for %s\n"
msgstr "%s: недоÑтиг на памет за ÑъхранÑване на резултата за \"премеÑтваем код\" на %s\n"
-#: elf/dl-reloc.c:292
+#: elf/dl-reloc.c:288
msgid "cannot restore segment prot after reloc"
msgstr "не може да Ñе възÑтанови защитата на дÑла Ñлед премеÑтване"
-#: elf/dl-reloc.c:323
+#: elf/dl-reloc.c:319
msgid "cannot apply additional memory protection after relocation"
msgstr "Ñлед премеÑтването не може да Ñе поÑтави допълнителна защита на паметта"
@@ -908,22 +905,22 @@ msgstr "изиÑква Ñе абÑолютно име на наÑтройващ
msgid "memory exhausted"
msgstr "паметта е изчерпана"
-#: elf/ldconfig.c:1233
+#: elf/ldconfig.c:1234
#, c-format
msgid "%s:%u: cannot read directory %s"
msgstr "%s:%u: не може да Ñе чете директориÑта %s "
-#: elf/ldconfig.c:1281
+#: elf/ldconfig.c:1282
#, c-format
msgid "relative path `%s' used to build cache"
msgstr "използван е отноÑителен път %s за Ñъздаване на Ñклад"
-#: elf/ldconfig.c:1311
+#: elf/ldconfig.c:1312
#, c-format
msgid "Can't chdir to /"
msgstr "Ðе може да Ñе Ñмени директориÑта на /"
-#: elf/ldconfig.c:1352
+#: elf/ldconfig.c:1353
#, c-format
msgid "Can't open cache file directory %s\n"
msgstr "Ðе може да Ñе отвори директориÑта '%s' Ñ Ñ„Ð°Ð¹Ð» за Ñкладиране\n"
@@ -993,95 +990,100 @@ msgstr "приключване Ñ Ð½ÐµÐ¸Ð·Ð²ÐµÑтен код за завършÐ
msgid "error: you do not have read permission for"
msgstr "грешка: вие нÑмате права за четене на"
-#: elf/pldd-xx.c:105
+#: elf/pldd-xx.c:102
#, c-format
msgid "cannot find program header of process"
msgstr "не Ñе намери програмното заглавие на процеÑа"
-#: elf/pldd-xx.c:110
+#: elf/pldd-xx.c:106
#, c-format
msgid "cannot read program header"
msgstr "не може да Ñе прочете програмното заглавие"
-#: elf/pldd-xx.c:135
+#: elf/pldd-xx.c:128
#, c-format
msgid "cannot read dynamic section"
msgstr "не може да Ñе прочете дÑл за динамично Ñвързване"
-#: elf/pldd-xx.c:147
+#: elf/pldd-xx.c:137
#, c-format
msgid "cannot read r_debug"
msgstr "не може да Ñе прочете r_debug"
-#: elf/pldd-xx.c:167
+#: elf/pldd-xx.c:154
#, c-format
msgid "cannot read program interpreter"
msgstr "не може да Ñе прочете програмното възпроизвеждане"
-#: elf/pldd-xx.c:197
+#: elf/pldd-xx.c:183
#, c-format
msgid "cannot read link map"
msgstr "не може да Ñе прочете изобразÑването на връзките"
-#: elf/pldd-xx.c:209
+#: elf/pldd-xx.c:190
#, c-format
msgid "cannot read object name"
msgstr "не може да Ñе прочете името на обекта"
-#: elf/pldd-xx.c:219
+#: elf/pldd-xx.c:197
#, c-format
msgid "cannot allocate buffer for object name"
msgstr "не може да Ñе задели памет име на обекта"
-#: elf/pldd.c:64
+#: elf/pldd.c:58
msgid "List dynamic shared objects loaded into process."
msgstr "ИзброÑване на динамично Ñвързаните обекти заредени от процеÑа."
-#: elf/pldd.c:68
+#: elf/pldd.c:62
msgid "PID"
msgstr "Ðом.проц."
-#: elf/pldd.c:100
+#: elf/pldd.c:89
#, c-format
msgid "Exactly one parameter with process ID required.\n"
msgstr "Ðеобходим е точно един параметър Ñ Ð½Ð¾Ð¼ÐµÑ€ на процеÑ.\n"
-#: elf/pldd.c:112
+#: elf/pldd.c:103
#, c-format
msgid "invalid process ID '%s'"
msgstr "неправилен разпознавател на Ð¿Ñ€Ð¾Ñ†ÐµÑ '%s'"
-#: elf/pldd.c:120
+#: elf/pldd.c:111
#, c-format
msgid "cannot open %s"
msgstr "не може да Ñе отвори %s"
-#: elf/pldd.c:152
+#: elf/pldd.c:142
#, c-format
msgid "cannot open %s/task"
-msgstr "не може да Ñе отвори задача %s"
+msgstr "не може да Ñе отвори %s/task"
-#: elf/pldd.c:155
+#: elf/pldd.c:145
#, c-format
msgid "cannot prepare reading %s/task"
-msgstr "не е готово четенето на задача %s"
+msgstr "не е може да Ñе подготви четенето на %s/task"
-#: elf/pldd.c:168
+#: elf/pldd.c:158
#, c-format
msgid "invalid thread ID '%s'"
msgstr "неправилен разпознавател за нишка '%s'"
-#: elf/pldd.c:179
+#: elf/pldd.c:169
#, c-format
msgid "cannot attach to process %lu"
msgstr "не може да Ñе закачи към Ð¿Ñ€Ð¾Ñ†ÐµÑ %lu"
-#: elf/pldd.c:294
+#: elf/pldd.c:184
+#, c-format
+msgid "no valid %s/task entries"
+msgstr "липÑват подходÑщи запиÑи в %s/task"
+
+#: elf/pldd.c:290
#, c-format
msgid "cannot get information about process %lu"
msgstr "не може да Ñе вземат ÑÐ²ÐµÐ´ÐµÐ½Ð¸Ñ Ð·Ð° Ð¿Ñ€Ð¾Ñ†ÐµÑ %lu"
-#: elf/pldd.c:307
+#: elf/pldd.c:303
#, c-format
msgid "process %lu is no ELF program"
msgstr "процеÑа %lu не е ELF-програма"
@@ -1401,7 +1403,7 @@ msgstr "Сведение:"
msgid "list all known coded character sets"
msgstr "изброÑване на вÑички познати кодирани знакови множеÑтва"
-#: iconv/iconv_prog.c:64 locale/programs/localedef.c:120
+#: iconv/iconv_prog.c:64 locale/programs/localedef.c:124
msgid "Output control:"
msgstr "Управление на изхода:"
@@ -1410,8 +1412,8 @@ msgid "omit invalid characters from output"
msgstr "изпуÑкане на неправилни знаци при извеждане"
#: iconv/iconv_prog.c:66 iconv/iconvconfig.c:128
-#: locale/programs/localedef.c:113 locale/programs/localedef.c:115
-#: locale/programs/localedef.c:117 locale/programs/localedef.c:144
+#: locale/programs/localedef.c:117 locale/programs/localedef.c:119
+#: locale/programs/localedef.c:121 locale/programs/localedef.c:150
#: malloc/memusagestat.c:56
msgid "FILE"
msgstr "ФÐЙЛ"
@@ -1510,7 +1512,7 @@ msgstr "Създава наÑтройващ файл за бързо зарежÐ
msgid "[DIR...]"
msgstr "[ДИР...]"
-#: iconv/iconvconfig.c:126 locale/programs/localedef.c:123
+#: iconv/iconvconfig.c:126 locale/programs/localedef.c:129
msgid "PATH"
msgstr "ПЪТ"
@@ -1694,14 +1696,14 @@ msgstr "не Ñе поддържат кодировки Ñ Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð°Ñ‰Ð¸ Ñ
#: locale/programs/charmap.c:503 locale/programs/charmap.c:557
#: locale/programs/charmap.c:589 locale/programs/charmap.c:683
-#: locale/programs/charmap.c:738 locale/programs/charmap.c:779
-#: locale/programs/charmap.c:820
+#: locale/programs/charmap.c:739 locale/programs/charmap.c:780
+#: locale/programs/charmap.c:821
#, c-format
msgid "syntax error in %s definition: %s"
msgstr "Ñинтактична грешка в определението на %s: %s"
#: locale/programs/charmap.c:504 locale/programs/charmap.c:684
-#: locale/programs/charmap.c:780 locale/programs/repertoire.c:229
+#: locale/programs/charmap.c:781 locale/programs/repertoire.c:229
msgid "no symbolic name given"
msgstr "не е зададено Ñимволично име"
@@ -1717,14 +1719,14 @@ msgstr "твърде малко байтове в кодирането на зн
msgid "too many bytes in character encoding"
msgstr "твърде много байтове в кодирането на знак"
-#: locale/programs/charmap.c:591 locale/programs/charmap.c:739
-#: locale/programs/charmap.c:822 locale/programs/repertoire.c:295
+#: locale/programs/charmap.c:591 locale/programs/charmap.c:740
+#: locale/programs/charmap.c:823 locale/programs/repertoire.c:295
msgid "no symbolic name given for end of range"
msgstr "не е зададено Ñимволично име за край на диапазон"
#: locale/programs/charmap.c:615 locale/programs/ld-address.c:524
#: locale/programs/ld-collate.c:2616 locale/programs/ld-collate.c:3774
-#: locale/programs/ld-ctype.c:2117 locale/programs/ld-ctype.c:2829
+#: locale/programs/ld-ctype.c:2118 locale/programs/ld-ctype.c:2830
#: locale/programs/ld-identification.c:397
#: locale/programs/ld-measurement.c:213 locale/programs/ld-messages.c:295
#: locale/programs/ld-monetary.c:748 locale/programs/ld-name.c:262
@@ -1739,58 +1741,58 @@ msgstr "%1$s: определението не завършва Ñ \"END %1$s\""
msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
msgstr "Ñамо определение за WIDTH е разрешено да Ñледва Ñлед определение за CHARMAP"
-#: locale/programs/charmap.c:656 locale/programs/charmap.c:719
+#: locale/programs/charmap.c:656 locale/programs/charmap.c:720
#, c-format
msgid "value for %s must be an integer"
msgstr "ÑтойноÑтта за %s Ñ‚Ñ€Ñбва да е цÑло чиÑло"
-#: locale/programs/charmap.c:847
+#: locale/programs/charmap.c:848
#, c-format
msgid "%s: error in state machine"
msgstr "%s: грешка в ÑÑŠÑтоÑнието на машината"
-#: locale/programs/charmap.c:855 locale/programs/ld-address.c:540
+#: locale/programs/charmap.c:856 locale/programs/ld-address.c:540
#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967
-#: locale/programs/ld-ctype.c:2114 locale/programs/ld-ctype.c:2846
+#: locale/programs/ld-ctype.c:2115 locale/programs/ld-ctype.c:2847
#: locale/programs/ld-identification.c:413
#: locale/programs/ld-measurement.c:229 locale/programs/ld-messages.c:311
#: locale/programs/ld-monetary.c:764 locale/programs/ld-name.c:278
#: locale/programs/ld-numeric.c:341 locale/programs/ld-paper.c:228
#: locale/programs/ld-telephone.c:292 locale/programs/ld-time.c:990
-#: locale/programs/locfile.c:997 locale/programs/repertoire.c:323
+#: locale/programs/locfile.c:1010 locale/programs/repertoire.c:323
#, c-format
msgid "%s: premature end of file"
msgstr "%s: преждевременен кай на файл"
-#: locale/programs/charmap.c:874 locale/programs/charmap.c:885
+#: locale/programs/charmap.c:875 locale/programs/charmap.c:886
#, c-format
msgid "unknown character `%s'"
msgstr "неизвеÑтен знак \"%s\""
-#: locale/programs/charmap.c:893
+#: locale/programs/charmap.c:894
#, c-format
msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d"
msgstr "Ð±Ð¾Ñ Ð½Ð° байтовете, в поÑледователноÑÑ‚ от байтове за начало и край на диапазон, не е ÑъщиÑ: %d Ñ/у %d"
-#: locale/programs/charmap.c:998 locale/programs/ld-collate.c:2893
+#: locale/programs/charmap.c:999 locale/programs/ld-collate.c:2893
#: locale/programs/repertoire.c:418
msgid "invalid names for character range"
msgstr "неправилни имена за диапазон от знаци"
-#: locale/programs/charmap.c:1010 locale/programs/repertoire.c:430
+#: locale/programs/charmap.c:1011 locale/programs/repertoire.c:430
msgid "hexadecimal range format should use only capital characters"
msgstr "за диапазон в шеÑтнадеÑетичен формат Ñ‚Ñ€Ñбва да използват Ñамо главни букви"
-#: locale/programs/charmap.c:1028 locale/programs/repertoire.c:448
+#: locale/programs/charmap.c:1029 locale/programs/repertoire.c:448
#, c-format
msgid "<%s> and <%s> are invalid names for range"
msgstr "<%s> и <%s> Ñа неправилни имена за диапазон"
-#: locale/programs/charmap.c:1034 locale/programs/repertoire.c:455
+#: locale/programs/charmap.c:1035 locale/programs/repertoire.c:455
msgid "upper limit in range is smaller than lower limit"
msgstr "горната граница за диапазон е по-малка то долната"
-#: locale/programs/charmap.c:1092
+#: locale/programs/charmap.c:1093
msgid "resulting bytes for range not representable."
msgstr "резултата от байтове за диапазона не може да Ñе предÑтавÑÑ‚."
@@ -1859,7 +1861,7 @@ msgid "%s: numeric country code `%d' not valid"
msgstr "%s: неправилен цифров код на държава \"%d\""
#: locale/programs/ld-address.c:432 locale/programs/ld-address.c:469
-#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2478
+#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2479
#: locale/programs/ld-identification.c:309
#: locale/programs/ld-measurement.c:196 locale/programs/ld-messages.c:264
#: locale/programs/ld-monetary.c:503 locale/programs/ld-monetary.c:538
@@ -1882,7 +1884,7 @@ msgid "%s: unknown character in field `%s'"
msgstr "%s: неизвеÑтен знак в полето \"%s\""
#: locale/programs/ld-address.c:521 locale/programs/ld-collate.c:3772
-#: locale/programs/ld-ctype.c:2826 locale/programs/ld-identification.c:394
+#: locale/programs/ld-ctype.c:2827 locale/programs/ld-identification.c:394
#: locale/programs/ld-measurement.c:210 locale/programs/ld-messages.c:293
#: locale/programs/ld-monetary.c:746 locale/programs/ld-name.c:260
#: locale/programs/ld-numeric.c:323 locale/programs/ld-paper.c:210
@@ -1895,8 +1897,8 @@ msgstr "%s: непълен ред \"END\""
#: locale/programs/ld-collate.c:602 locale/programs/ld-collate.c:898
#: locale/programs/ld-collate.c:911 locale/programs/ld-collate.c:2582
#: locale/programs/ld-collate.c:2603 locale/programs/ld-collate.c:3957
-#: locale/programs/ld-ctype.c:1846 locale/programs/ld-ctype.c:2104
-#: locale/programs/ld-ctype.c:2676 locale/programs/ld-ctype.c:2837
+#: locale/programs/ld-ctype.c:1847 locale/programs/ld-ctype.c:2105
+#: locale/programs/ld-ctype.c:2677 locale/programs/ld-ctype.c:2838
#: locale/programs/ld-identification.c:404
#: locale/programs/ld-measurement.c:220 locale/programs/ld-messages.c:302
#: locale/programs/ld-monetary.c:755 locale/programs/ld-name.c:269
@@ -2240,130 +2242,130 @@ msgstr "изображението на знаците \"%s\" вече е опр
msgid "implementation limit: no more than %d character maps allowed"
msgstr "ограничение в реализациÑта: не Ñа разрешени повече от %d Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð·Ð° знаци"
-#: locale/programs/ld-ctype.c:1434 locale/programs/ld-ctype.c:1559
-#: locale/programs/ld-ctype.c:1665 locale/programs/ld-ctype.c:2341
-#: locale/programs/ld-ctype.c:3299
+#: locale/programs/ld-ctype.c:1435 locale/programs/ld-ctype.c:1560
+#: locale/programs/ld-ctype.c:1666 locale/programs/ld-ctype.c:2342
+#: locale/programs/ld-ctype.c:3302
#, c-format
msgid "%s: field `%s' does not contain exactly ten entries"
msgstr "%s: полето \"%s\" не Ñъдържа точно деÑет запиÑа"
-#: locale/programs/ld-ctype.c:1462 locale/programs/ld-ctype.c:2036
+#: locale/programs/ld-ctype.c:1463 locale/programs/ld-ctype.c:2037
#, c-format
msgid "to-value <U%0*X> of range is smaller than from-value <U%0*X>"
msgstr "горната граница <U%0*X> на диапазона е по-малка от долната <U%0*X>"
-#: locale/programs/ld-ctype.c:1589
+#: locale/programs/ld-ctype.c:1590
msgid "start and end character sequence of range must have the same length"
msgstr "началната и крайната знакова поÑледователноÑÑ‚ на диапазона Ñ‚Ñ€Ñбва да Ñа Ñ ÐµÐ´Ð½Ð°ÐºÐ²Ð° дължина"
-#: locale/programs/ld-ctype.c:1596
+#: locale/programs/ld-ctype.c:1597
msgid "to-value character sequence is smaller than from-value sequence"
msgstr "началната знакова поÑледователноÑÑ‚ е по-малка от крайната"
-#: locale/programs/ld-ctype.c:1956 locale/programs/ld-ctype.c:2007
+#: locale/programs/ld-ctype.c:1957 locale/programs/ld-ctype.c:2008
msgid "premature end of `translit_ignore' definition"
msgstr "преждевременен край на определение \"translit_ignore\""
# TODO
-#: locale/programs/ld-ctype.c:1962 locale/programs/ld-ctype.c:2013
-#: locale/programs/ld-ctype.c:2055
+#: locale/programs/ld-ctype.c:1963 locale/programs/ld-ctype.c:2014
+#: locale/programs/ld-ctype.c:2056
msgid "syntax error"
msgstr "Ñинтактична грешка"
-#: locale/programs/ld-ctype.c:2188
+#: locale/programs/ld-ctype.c:2189
#, c-format
msgid "%s: syntax error in definition of new character class"
msgstr "%s: Ñинтактична грешка в определението за опиÑание за ÐºÐ»Ð°Ñ Ð·Ð½Ð°Ñ†Ð¸"
-#: locale/programs/ld-ctype.c:2203
+#: locale/programs/ld-ctype.c:2204
#, c-format
msgid "%s: syntax error in definition of new character map"
msgstr "%s: Ñинтактична грешка в определението на ново изображение на знаци"
-#: locale/programs/ld-ctype.c:2363
+#: locale/programs/ld-ctype.c:2364
msgid "ellipsis range must be marked by two operands of same type"
msgstr "диапазон Ñ Ð¼Ð½Ð¾Ð³Ð¾Ñ‚Ð¾Ñ‡Ð¸Ðµ Ñ‚Ñ€Ñбва да бъде ограничен от два еднотипни операнда"
-#: locale/programs/ld-ctype.c:2372
+#: locale/programs/ld-ctype.c:2373
msgid "with symbolic name range values the absolute ellipsis `...' must not be used"
msgstr "при диапазон ÑÑŠÑ Ñимволично име Ñ‚Ñ€Ñбва да Ñе използва ÑамоÑтоÑтелно многоточие \"...\""
-#: locale/programs/ld-ctype.c:2387
+#: locale/programs/ld-ctype.c:2388
msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'"
msgstr "при UCS диапазон Ñ‚Ñ€Ñбва да Ñе използва шеÑтнадеÑетично Ñимволично многоточие \"..\""
-#: locale/programs/ld-ctype.c:2401
+#: locale/programs/ld-ctype.c:2402
msgid "with character code range values one must use the absolute ellipsis `...'"
msgstr "при диапазон от кодове на знаци Ñ‚Ñ€Ñбва да Ñе използва ÑамоÑтоÑтелно многоточие \"...\""
-#: locale/programs/ld-ctype.c:2552
+#: locale/programs/ld-ctype.c:2553
#, c-format
msgid "duplicated definition for mapping `%s'"
msgstr "повторно определÑне на изображението \"%s\""
-#: locale/programs/ld-ctype.c:2638 locale/programs/ld-ctype.c:2782
+#: locale/programs/ld-ctype.c:2639 locale/programs/ld-ctype.c:2783
#, c-format
msgid "%s: `translit_start' section does not end with `translit_end'"
msgstr "%s: \"translit_start\" - дÑла не завършва Ñ \"translit_end\""
-#: locale/programs/ld-ctype.c:2733
+#: locale/programs/ld-ctype.c:2734
#, c-format
msgid "%s: duplicate `default_missing' definition"
msgstr "%s: повторно определени за \"default_missing\""
-#: locale/programs/ld-ctype.c:2738
+#: locale/programs/ld-ctype.c:2739
msgid "previous definition was here"
msgstr "предишното определение бе тук"
-#: locale/programs/ld-ctype.c:2760
+#: locale/programs/ld-ctype.c:2761
#, c-format
msgid "%s: no representable `default_missing' definition found"
msgstr "%s: не е намерено предÑтавимо определение за \"default_missing\""
-#: locale/programs/ld-ctype.c:2877 locale/programs/ld-ctype.c:2973
-#: locale/programs/ld-ctype.c:2992 locale/programs/ld-ctype.c:3012
-#: locale/programs/ld-ctype.c:3032 locale/programs/ld-ctype.c:3052
-#: locale/programs/ld-ctype.c:3072 locale/programs/ld-ctype.c:3111
-#: locale/programs/ld-ctype.c:3131 locale/programs/ld-ctype.c:3195
-#: locale/programs/ld-ctype.c:3236 locale/programs/ld-ctype.c:3259
+#: locale/programs/ld-ctype.c:2878 locale/programs/ld-ctype.c:2974
+#: locale/programs/ld-ctype.c:2993 locale/programs/ld-ctype.c:3013
+#: locale/programs/ld-ctype.c:3033 locale/programs/ld-ctype.c:3053
+#: locale/programs/ld-ctype.c:3073 locale/programs/ld-ctype.c:3112
+#: locale/programs/ld-ctype.c:3132 locale/programs/ld-ctype.c:3198
+#: locale/programs/ld-ctype.c:3239 locale/programs/ld-ctype.c:3262
#, c-format
msgid "%s: character `%s' not defined while needed as default value"
msgstr "%s: знакът \"%s\" е неопределен, въпреки че е необходим като ÑтойноÑÑ‚ по подразбиране"
-#: locale/programs/ld-ctype.c:2882 locale/programs/ld-ctype.c:2978
-#: locale/programs/ld-ctype.c:2997 locale/programs/ld-ctype.c:3017
-#: locale/programs/ld-ctype.c:3037 locale/programs/ld-ctype.c:3057
-#: locale/programs/ld-ctype.c:3077 locale/programs/ld-ctype.c:3116
-#: locale/programs/ld-ctype.c:3136 locale/programs/ld-ctype.c:3200
+#: locale/programs/ld-ctype.c:2883 locale/programs/ld-ctype.c:2979
+#: locale/programs/ld-ctype.c:2998 locale/programs/ld-ctype.c:3018
+#: locale/programs/ld-ctype.c:3038 locale/programs/ld-ctype.c:3058
+#: locale/programs/ld-ctype.c:3078 locale/programs/ld-ctype.c:3117
+#: locale/programs/ld-ctype.c:3137 locale/programs/ld-ctype.c:3203
#, c-format
msgid "%s: character `%s' in charmap not representable with one byte"
msgstr "%s: знакът \"%s\", от изображението на знаците, не е предÑтавим Ñ ÐµÐ´Ð¸Ð½ байт"
-#: locale/programs/ld-ctype.c:3242 locale/programs/ld-ctype.c:3265
+#: locale/programs/ld-ctype.c:3245 locale/programs/ld-ctype.c:3268
#, c-format
msgid "%s: character `%s' needed as default value not representable with one byte"
msgstr "%s: знакът \"%s\", необходим като ÑтойноÑÑ‚ по подразбиране, не може да Ñе предÑтави Ñ ÐµÐ´Ð¸Ð½ байт"
-#: locale/programs/ld-ctype.c:3321
+#: locale/programs/ld-ctype.c:3324
msgid "no output digits defined and none of the standard names in the charmap"
msgstr "в изображението на знаците не Ñа определени изходÑщите цифри и никое от Ñтандартните имена"
-#: locale/programs/ld-ctype.c:3570
+#: locale/programs/ld-ctype.c:3573
#, c-format
msgid "%s: transliteration data from locale `%s' not available"
msgstr "%s: не Ñа налични данни за транÑÐ»Ð¸Ñ‚ÐµÑ€Ð°Ñ†Ð¸Ñ Ð¾Ñ‚ езикова наÑтройка \"%s\""
-#: locale/programs/ld-ctype.c:3669
+#: locale/programs/ld-ctype.c:3672
#, c-format
msgid "%s: table for class \"%s\": %lu bytes"
msgstr "%s: таблица за ÐºÐ»Ð°Ñ \"%s\": %lu байта"
-#: locale/programs/ld-ctype.c:3733
+#: locale/programs/ld-ctype.c:3736
#, c-format
msgid "%s: table for map \"%s\": %lu bytes"
msgstr "%s: таблица за изображение \"%s\": %lu байта"
-#: locale/programs/ld-ctype.c:3857
+#: locale/programs/ld-ctype.c:3860
#, c-format
msgid "%s: table for width: %lu bytes"
msgstr "%s: таблица за ширина: %lu байта"
@@ -2603,120 +2605,114 @@ msgstr ""
"ИМЕ\n"
"[-a|-m]"
-#: locale/programs/locale.c:190
-#, c-format
-msgid "Cannot set LC_CTYPE to default locale"
-msgstr "За LC_CTYPE не може да Ñе зададе езикова наÑтройка по подразбиране"
-
-#: locale/programs/locale.c:192
-#, c-format
-msgid "Cannot set LC_MESSAGES to default locale"
-msgstr "За LC_MESSAGES не може да Ñе зададе езикова наÑтройка по подразбиране"
-
-#: locale/programs/locale.c:205
+#: locale/programs/locale.c:522
#, c-format
-msgid "Cannot set LC_COLLATE to default locale"
-msgstr "За LC_COLLATE не може да Ñе зададе езикова наÑтройка по подразбиране"
+msgid "while preparing output"
+msgstr "при подготвÑне на изхода"
-#: locale/programs/locale.c:221
+#: locale/programs/locale.c:998
#, c-format
-msgid "Cannot set LC_ALL to default locale"
-msgstr "За LC_ALL не може да Ñе зададе езикова наÑтройка по подразбиране"
+msgid "Cannot set %s to default locale"
+msgstr "Ðе може да Ñе зададе %s на езиковата наÑтройка по подразбиране"
-#: locale/programs/locale.c:521
+#: locale/programs/locale.c:1096
#, c-format
-msgid "while preparing output"
-msgstr "при подготвÑне на изхода"
+msgid "warning: The LOCPATH variable is set to \"%s\"\n"
+msgstr "предупреждение: Променливата LOCPATH е зададена като \"%s\"\n"
-#: locale/programs/localedef.c:112
+#: locale/programs/localedef.c:116
msgid "Input Files:"
msgstr "Входни файлове:"
-#: locale/programs/localedef.c:114
+#: locale/programs/localedef.c:118
msgid "Symbolic character names defined in FILE"
msgstr "Символични имена за знаци определени в FILE"
-#: locale/programs/localedef.c:116
+#: locale/programs/localedef.c:120
msgid "Source definitions are found in FILE"
msgstr "Ðачалните Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ñе намират във FILE"
-#: locale/programs/localedef.c:118
+#: locale/programs/localedef.c:122
msgid "FILE contains mapping from symbolic names to UCS4 values"
msgstr "FILE Ñъдържащ изображение от Ñимволични имена към UCS4 ÑтойноÑти"
-#: locale/programs/localedef.c:122
+#: locale/programs/localedef.c:126
msgid "Create output even if warning messages were issued"
msgstr "Създаване на изход дори когато Ñа издадени предупредителни ÑъобщениÑ"
-#: locale/programs/localedef.c:123
+#: locale/programs/localedef.c:128
+msgid "Do not create hard links between installed locales"
+msgstr "Да не Ñе Ñъздават тръди връзки между наличните езикови наÑтройки"
+
+#: locale/programs/localedef.c:129
msgid "Optional output file prefix"
msgstr "Ðезадължителен Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ Ð·Ð° изходен файл"
-#: locale/programs/localedef.c:124
+#: locale/programs/localedef.c:130
msgid "Strictly conform to POSIX"
msgstr "ÐžÑ‚Ð³Ð¾Ð²Ð°Ñ€Ñ Ñ‚Ð¾Ñ‡Ð½Ð¾ на POSIX"
-#: locale/programs/localedef.c:126
+#: locale/programs/localedef.c:132
msgid "Suppress warnings and information messages"
msgstr "ПодтиÑкане на предупредителни и оÑведомителни ÑъобщениÑ"
-#: locale/programs/localedef.c:127
+#: locale/programs/localedef.c:133
msgid "Print more messages"
msgstr "Извеждане на повече ÑъобщениÑ"
-#: locale/programs/localedef.c:128 locale/programs/localedef.c:131
+#: locale/programs/localedef.c:134 locale/programs/localedef.c:137
msgid "<warnings>"
msgstr "<предупреждениÑ>"
-#: locale/programs/localedef.c:129
+#: locale/programs/localedef.c:135
msgid "Comma-separated list of warnings to disable; supported warnings are: ascii, intcurrsym"
msgstr "СпиÑък от забранени предупреждениÑ, разделени ÑÑŠÑ Ð·Ð°Ð¿ÐµÑ‚Ð°Ñ. Поддържани Ð¿Ñ€ÐµÐ´ÑƒÐ¿Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ñа ascii и intcurrsym."
-#: locale/programs/localedef.c:132
+#: locale/programs/localedef.c:138
msgid "Comma-separated list of warnings to enable; supported warnings are: ascii, intcurrsym"
msgstr "СпиÑък от разрешени предупреждениÑ, разделени ÑÑŠÑ Ð·Ð°Ð¿ÐµÑ‚Ð°Ñ. Поддържани Ð¿Ñ€ÐµÐ´ÑƒÐ¿Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ñа ascii и intcurrsym."
-#: locale/programs/localedef.c:135
+#: locale/programs/localedef.c:141
msgid "Archive control:"
msgstr "Управление на архива:"
-#: locale/programs/localedef.c:137
+#: locale/programs/localedef.c:143
msgid "Don't add new data to archive"
msgstr "Да не Ñе добавÑÑ‚ нови данни към архива"
-#: locale/programs/localedef.c:139
+#: locale/programs/localedef.c:145
msgid "Add locales named by parameters to archive"
msgstr "ДобавÑне, към архива, на езиковите наÑтройки указани от параметрите"
-#: locale/programs/localedef.c:140
+#: locale/programs/localedef.c:146
msgid "Replace existing archive content"
msgstr "ЗамеÑтване на ÑъщеÑтвуващото Ñъдържание на архива"
-#: locale/programs/localedef.c:142
+#: locale/programs/localedef.c:148
msgid "Remove locales named by parameters from archive"
msgstr "Премахване, от архива, на езиковите наÑтройки указани от параметрите"
-#: locale/programs/localedef.c:143
+#: locale/programs/localedef.c:149
msgid "List content of archive"
msgstr "ИзброÑване на Ñъдържанието на архива"
-#: locale/programs/localedef.c:145
+#: locale/programs/localedef.c:151
msgid "locale.alias file to consult when making archive"
msgstr "locale.alias файл, който да Ñе вземе предвид, при правенето на архив"
-#: locale/programs/localedef.c:147
+#: locale/programs/localedef.c:153
msgid "Generate little-endian output"
msgstr "Извеждане Ñ Ð¼Ð»Ð°Ð´ÑˆÐ¸ байт първи"
-#: locale/programs/localedef.c:149
+#: locale/programs/localedef.c:155
msgid "Generate big-endian output"
msgstr "Извеждане ÑÑŠÑ Ñтарши байт първи"
-#: locale/programs/localedef.c:154
+#: locale/programs/localedef.c:160
msgid "Compile locale specification"
msgstr "Компилира ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð·Ð° езикова наÑтройка"
-#: locale/programs/localedef.c:157
+#: locale/programs/localedef.c:163
msgid ""
"NAME\n"
"[--add-to-archive|--delete-from-archive] FILE...\n"
@@ -2726,31 +2722,31 @@ msgstr ""
"[--add-to-archive|--delete-from-archive] ФÐЙЛ...\n"
"--list-archive [ФÐЙЛ]"
-#: locale/programs/localedef.c:232
+#: locale/programs/localedef.c:238
#, c-format
msgid "cannot create directory for output files"
msgstr "не може да Ñе Ñъздаде Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð·Ð° изходните файлове"
-#: locale/programs/localedef.c:243
+#: locale/programs/localedef.c:249
msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
msgstr "ПÐГУБÐО: ÑиÑтемата не Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ \"_POSIX2_LOCALEDEF\"\t"
-#: locale/programs/localedef.c:257 locale/programs/localedef.c:273
-#: locale/programs/localedef.c:663 locale/programs/localedef.c:683
+#: locale/programs/localedef.c:263 locale/programs/localedef.c:279
+#: locale/programs/localedef.c:673 locale/programs/localedef.c:693
#, c-format
msgid "cannot open locale definition file `%s'"
msgstr "не е възможно да Ñе отвори файл \"%s\" Ñ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð·Ð° езикова наÑтройка"
-#: locale/programs/localedef.c:297
+#: locale/programs/localedef.c:303
#, c-format
msgid "cannot write output files to `%s'"
msgstr "не може да Ñе запишат изходните файлове в \"%s\""
-#: locale/programs/localedef.c:303
+#: locale/programs/localedef.c:309
msgid "no output file produced because errors were issued"
msgstr "не е Ñъздаден изходен файл, вÑледÑтвие на грешките"
-#: locale/programs/localedef.c:431
+#: locale/programs/localedef.c:441
#, c-format
msgid ""
"System's directory for character maps : %s\n"
@@ -2763,11 +2759,11 @@ msgstr ""
" път за език. наÑÑ‚Ñ€. : %s\n"
"%s"
-#: locale/programs/localedef.c:631
+#: locale/programs/localedef.c:641
msgid "circular dependencies between locale definitions"
msgstr "циклични завиÑимоÑти между Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð·Ð° езикова наÑтройка"
-#: locale/programs/localedef.c:637
+#: locale/programs/localedef.c:647
#, c-format
msgid "cannot add already read locale `%s' a second time"
msgstr "не може да Ñе добави, повторно, вече прочетена езикова наÑтройка\"%s\""
@@ -2923,24 +2919,24 @@ msgstr "не може да Ñе отвори изходниÑÑ‚ файл \"%s\"
msgid "failure while writing data for category `%s'"
msgstr "неуÑпех при запиÑване на данни за категориÑта \"%s\""
-#: locale/programs/locfile.c:917
+#: locale/programs/locfile.c:930
#, c-format
msgid "cannot create output file `%s' for category `%s'"
msgstr "не може да Ñе Ñъздаде изходниÑÑ‚ файл \"%s\" за категориÑта \"%s\""
-#: locale/programs/locfile.c:953
+#: locale/programs/locfile.c:966
msgid "expecting string argument for `copy'"
msgstr "очаква Ñе аргумент от тип низ за 'copy'"
-#: locale/programs/locfile.c:957
+#: locale/programs/locfile.c:970
msgid "locale name should consist only of portable characters"
msgstr "името на езикова наÑтройка Ñ‚Ñ€Ñбва да Ñъдържа Ñамо преноÑими знаци"
-#: locale/programs/locfile.c:976
+#: locale/programs/locfile.c:989
msgid "no other keyword shall be specified when `copy' is used"
msgstr "не може да Ñе задават други ключови думи, когато Ñе използва \"copy\""
-#: locale/programs/locfile.c:990
+#: locale/programs/locfile.c:1003
#, c-format
msgid "`%1$s' definition does not end with `END %1$s'"
msgstr "\"%1$s\" определението не завършва Ñ \"END %1$s\""
@@ -3776,12 +3772,12 @@ msgstr "yp_update: не може да Ñе преобразува от име н
msgid "yp_update: cannot get server address\n"
msgstr "yp_update: не може да Ñе вземе адреÑÑŠÑ‚ на Ñървъра\n"
-#: nscd/aicache.c:83 nscd/hstcache.c:452
+#: nscd/aicache.c:82 nscd/hstcache.c:452
#, c-format
msgid "Haven't found \"%s\" in hosts cache!"
msgstr "Ð’ Ñклада Ñ Ð¸Ð¼ÐµÐ½Ð° на компютри не е намерен \"%s\"!"
-#: nscd/aicache.c:85 nscd/hstcache.c:454
+#: nscd/aicache.c:84 nscd/hstcache.c:454
#, c-format
msgid "Reloading \"%s\" in hosts cache!"
msgstr "Презареждане на \"%s\" в Ñклада Ñ Ð¸Ð¼ÐµÐ½Ð° на компютри!"
@@ -4102,22 +4098,22 @@ msgstr "оÑвободени %zu байта в Ñклад %s"
msgid "no more memory for database '%s'"
msgstr "недоÑтатъчно памет за базата данни \"%s\""
-#: nscd/netgroupcache.c:121
+#: nscd/netgroupcache.c:122
#, c-format
msgid "Haven't found \"%s\" in netgroup cache!"
msgstr "Ðе е намерен \"%s\" в Ñклада за мрежови групи!"
-#: nscd/netgroupcache.c:123
+#: nscd/netgroupcache.c:124
#, c-format
msgid "Reloading \"%s\" in netgroup cache!"
msgstr "Презареждане на \"%s\" в Ñклада за мрежови групи!"
-#: nscd/netgroupcache.c:469
+#: nscd/netgroupcache.c:470
#, c-format
msgid "Haven't found \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr "Ðе е намерено \"%s (%s,%s,%s)\" в Ñклада за мрежови групи!"
-#: nscd/netgroupcache.c:472
+#: nscd/netgroupcache.c:473
#, c-format
msgid "Reloading \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr "Презареждане на \"%s (%s,%s,%s)\" в Ñклада за мрежови групи!"
@@ -4170,7 +4166,7 @@ msgstr "Да Ñе използва отделен Ñклад за вÑеки пÐ
msgid "Name Service Cache Daemon."
msgstr "Демон на уÑлуга за Ñкладиране на имена (nscd)."
-#: nscd/nscd.c:155 nss/getent.c:967 nss/makedb.c:206
+#: nscd/nscd.c:155 nss/getent.c:987 nss/makedb.c:206
#, c-format
msgid "wrong number of arguments"
msgstr "неправилен брой на аргументи"
@@ -4279,27 +4275,27 @@ msgstr "Грешка при разбор: %s"
msgid "Must specify user name for server-user option"
msgstr "ТрÑбва да Ñе зададе потребителÑко име за опциÑта \"server-user\""
-#: nscd/nscd_conf.c:198
+#: nscd/nscd_conf.c:201
#, c-format
msgid "Must specify user name for stat-user option"
msgstr "ТрÑбва да Ñе зададе потребителÑко име за опциÑта \"stat-user\""
-#: nscd/nscd_conf.c:255
+#: nscd/nscd_conf.c:259
#, c-format
msgid "Must specify value for restart-interval option"
msgstr "ТрÑбва да Ñе зададе ÑтойноÑÑ‚ на интервала за повторно пуÑкане"
-#: nscd/nscd_conf.c:269
+#: nscd/nscd_conf.c:273
#, c-format
msgid "Unknown option: %s %s %s"
msgstr "ÐеизвеÑтна опциÑ: %s %s %s"
-#: nscd/nscd_conf.c:282
+#: nscd/nscd_conf.c:286
#, c-format
msgid "cannot get current working directory: %s; disabling paranoia mode"
msgstr "не може да Ñе взема текущата работна директориÑ: %s - забранÑване на Ð¿Ð°Ñ€Ð°Ð½Ð¾Ð¸Ñ‡Ð½Ð¸Ñ Ñ€ÐµÐ¶Ð¸Ð¼"
-#: nscd/nscd_conf.c:302
+#: nscd/nscd_conf.c:306
#, c-format
msgid "maximum file size for %s database too small"
msgstr "макÑималниÑÑ‚ размер на файл, за база данни %s, е много малък"
@@ -4561,46 +4557,46 @@ msgstr "Ðе е намерен \"%s\" в Ñклада Ñ ÑƒÑлугите!"
msgid "Reloading \"%s\" in services cache!"
msgstr "Презареждане на \"%s\" в Ñклада Ñ ÑƒÑлугите!"
-#: nss/getent.c:54
+#: nss/getent.c:55
msgid "database [key ...]"
msgstr "база_данни [ключ ...]"
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "CONFIG"
msgstr "ÐÐСТР"
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "Service configuration to be used"
msgstr "ÐаÑтройване на уÑлугата, коÑто да Ñе използва"
-#: nss/getent.c:60
+#: nss/getent.c:61
msgid "disable IDN encoding"
msgstr "забрана на IDN надпиÑи"
-#: nss/getent.c:65
+#: nss/getent.c:66
msgid "Get entries from administrative database."
msgstr "Получаване на запиÑи от админиÑтративна база данни."
-#: nss/getent.c:149 nss/getent.c:442 nss/getent.c:489
+#: nss/getent.c:150 nss/getent.c:462 nss/getent.c:509
#, c-format
msgid "Enumeration not supported on %s\n"
msgstr "Ðе Ñе поддържа изброим тип от %s\n"
-#: nss/getent.c:497 nss/getent.c:510
+#: nss/getent.c:517 nss/getent.c:530
#, c-format
msgid "Could not allocate group list: %m\n"
msgstr "Ðе може да Ñе задели памет за ÑпиÑък на група: %m\n"
-#: nss/getent.c:881
+#: nss/getent.c:901
#, c-format
msgid "Unknown database name"
msgstr "ÐеизвеÑтно има на база данни"
-#: nss/getent.c:911
+#: nss/getent.c:931
msgid "Supported databases:\n"
msgstr "Поддържани бази данни:\n"
-#: nss/getent.c:977
+#: nss/getent.c:997
#, c-format
msgid "Unknown database: %s\n"
msgstr "ÐеизвеÑтна база данни: %s\n"
@@ -4855,11 +4851,11 @@ msgstr "РегулÑрниÑÑ‚ израз е твърде дълъг"
msgid "Unmatched ) or \\)"
msgstr "ÐеÑъответÑтвие на ) или \\)"
-#: posix/regcomp.c:689
+#: posix/regcomp.c:676
msgid "No previous regular expression"
msgstr "ЛипÑва предишен регулÑрен израз"
-#: posix/wordexp.c:1815
+#: posix/wordexp.c:1816
msgid "parameter null or not set"
msgstr "параметърът е празен или не е зададен"
@@ -5044,7 +5040,7 @@ msgstr "ÐÑма изходÑщи буфери"
msgid "Input message available"
msgstr "Ðалично е входÑщо Ñъобщение"
-#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:381 timezone/zic.c:520
+#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:375 timezone/zic.c:561
msgid "I/O error"
msgstr "Вх/Изх. грешка"
@@ -5128,7 +5124,7 @@ msgstr "ÐеизвеÑтен Ñигнал %d"
#: sunrpc/auth_unix.c:112 sunrpc/clnt_tcp.c:124 sunrpc/clnt_udp.c:139
#: sunrpc/clnt_unix.c:125 sunrpc/svc_tcp.c:189 sunrpc/svc_tcp.c:233
#: sunrpc/svc_udp.c:161 sunrpc/svc_unix.c:189 sunrpc/svc_unix.c:229
-#: sunrpc/xdr.c:628 sunrpc/xdr.c:788 sunrpc/xdr_array.c:102
+#: sunrpc/xdr.c:631 sunrpc/xdr.c:791 sunrpc/xdr_array.c:102
#: sunrpc/xdr_rec.c:153 sunrpc/xdr_ref.c:79
msgid "out of memory\n"
msgstr "недоÑтиг на памет\n"
@@ -6390,58 +6386,71 @@ msgstr "Този път наиÑтина Ñе издънихте"
# Има и евфемизми, но вÑичките ми звучат грозно и миÑлÑ, че Ñа
# неподходÑщи. (Ð.З.)
#. TRANS Go home and have a glass of warm, dairy-fresh milk.
-#: sysdeps/gnu/errlist.c:978
+#. TRANS @c Okay. Since you are dying to know, I'll tell you.
+#. TRANS @c This is a joke, obviously. There is a children's song which begins,
+#. TRANS @c "Old McDonald had a farm, e-i-e-i-o." Every time I see the (real)
+#. TRANS @c errno macro EIO, I think about that song. Probably most of my
+#. TRANS @c compatriots who program on Unix do, too. One of them must have stayed
+#. TRANS @c up a little too late one night and decided to add it to Hurd or Glibc.
+#. TRANS @c Whoever did it should be castigated, but it made me laugh.
+#. TRANS @c --jtobey@channel1.com
+#. TRANS @c
+#. TRANS @c "bought the farm" means "died". -jtobey
+#. TRANS @c
+#. TRANS @c Translators, please do not translate this litteraly, translate it into
+#. TRANS @c an idiomatic funny way of saying that the computer died.
+#: sysdeps/gnu/errlist.c:991
msgid "Computer bought the farm"
msgstr "Компютърът Ñе Ñпомина"
# TODO
#. TRANS This error code has no purpose.
-#: sysdeps/gnu/errlist.c:987
+#: sysdeps/gnu/errlist.c:1000
msgid "Gratuitous error"
msgstr "Безпричинна грешка"
-#: sysdeps/gnu/errlist.c:995
+#: sysdeps/gnu/errlist.c:1008
msgid "Bad message"
msgstr "Лошо Ñъобщение"
-#: sysdeps/gnu/errlist.c:1003
+#: sysdeps/gnu/errlist.c:1016
msgid "Identifier removed"
msgstr "ОтÑтранен номер"
# TODO
-#: sysdeps/gnu/errlist.c:1011
+#: sysdeps/gnu/errlist.c:1024
msgid "Multihop attempted"
msgstr "Опитва Ñе multihop"
-#: sysdeps/gnu/errlist.c:1019
+#: sysdeps/gnu/errlist.c:1032
msgid "No data available"
msgstr "ÐÑма налични данни"
-#: sysdeps/gnu/errlist.c:1027
+#: sysdeps/gnu/errlist.c:1040
msgid "Link has been severed"
msgstr "Връзката Ñе разпадна"
-#: sysdeps/gnu/errlist.c:1035
+#: sysdeps/gnu/errlist.c:1048
msgid "No message of desired type"
msgstr "ÐÑма Ñъобщение от Ð½ÐµÐ¾Ð±Ñ…Ð¾Ð´Ð¸Ð¼Ð¸Ñ Ð²Ð¸Ð´"
-#: sysdeps/gnu/errlist.c:1043
+#: sysdeps/gnu/errlist.c:1056
msgid "Out of streams resources"
msgstr "Изчерпване на реÑурÑите за потоци"
-#: sysdeps/gnu/errlist.c:1051
+#: sysdeps/gnu/errlist.c:1064
msgid "Device not a stream"
msgstr "УÑтройÑтвото не е поток"
-#: sysdeps/gnu/errlist.c:1059
+#: sysdeps/gnu/errlist.c:1072
msgid "Value too large for defined data type"
msgstr "Твърде голÑма ÑтойноÑÑ‚ за този тип данни"
-#: sysdeps/gnu/errlist.c:1067
+#: sysdeps/gnu/errlist.c:1080
msgid "Protocol error"
msgstr "Протоколна грешка"
-#: sysdeps/gnu/errlist.c:1075
+#: sysdeps/gnu/errlist.c:1088
msgid "Timer expired"
msgstr "ПроÑрочен хронометър"
@@ -6449,199 +6458,199 @@ msgstr "ПроÑрочен хронометър"
#. TRANS completed. @xref{Asynchronous I/O}. When you call @code{aio_cancel},
#. TRANS the normal result is for the operations affected to complete with this
#. TRANS error; @pxref{Cancel AIO Operations}.
-#: sysdeps/gnu/errlist.c:1087
+#: sysdeps/gnu/errlist.c:1100
msgid "Operation canceled"
msgstr "Отменена операциÑ"
-#: sysdeps/gnu/errlist.c:1095
+#: sysdeps/gnu/errlist.c:1108
msgid "Owner died"
msgstr "СобÑтвеникът умрÑ"
-#: sysdeps/gnu/errlist.c:1103
+#: sysdeps/gnu/errlist.c:1116
msgid "State not recoverable"
msgstr "ÐевъзÑтановимо ÑÑŠÑтоÑние"
-#: sysdeps/gnu/errlist.c:1111
+#: sysdeps/gnu/errlist.c:1124
msgid "Interrupted system call should be restarted"
msgstr "ПрекъÑнатото ÑиÑтемно извикване Ñ‚Ñ€Ñбва да бъде пуÑнато повторно"
-#: sysdeps/gnu/errlist.c:1119
+#: sysdeps/gnu/errlist.c:1132
msgid "Channel number out of range"
msgstr "Ðомер на канал извън диапазона"
-#: sysdeps/gnu/errlist.c:1127
+#: sysdeps/gnu/errlist.c:1140
msgid "Level 2 not synchronized"
msgstr "Ðиво 2 — Ñинхронизирано"
-#: sysdeps/gnu/errlist.c:1135
+#: sysdeps/gnu/errlist.c:1148
msgid "Level 3 halted"
msgstr "Ðиво 3 — преуÑтановено"
-#: sysdeps/gnu/errlist.c:1143
+#: sysdeps/gnu/errlist.c:1156
msgid "Level 3 reset"
msgstr "Ðиво 3 — занулено"
-#: sysdeps/gnu/errlist.c:1151
+#: sysdeps/gnu/errlist.c:1164
msgid "Link number out of range"
msgstr "Ðомер на връзка извън диапазона"
-#: sysdeps/gnu/errlist.c:1159
+#: sysdeps/gnu/errlist.c:1172
msgid "Protocol driver not attached"
msgstr "Ðепривързан протоколен механизъм"
-#: sysdeps/gnu/errlist.c:1167
+#: sysdeps/gnu/errlist.c:1180
msgid "No CSI structure available"
msgstr "Ðе е налична CSI-Ñтруктура"
-#: sysdeps/gnu/errlist.c:1175
+#: sysdeps/gnu/errlist.c:1188
msgid "Level 2 halted"
msgstr "Ðиво 2 — преуÑтановено"
-#: sysdeps/gnu/errlist.c:1183
+#: sysdeps/gnu/errlist.c:1196
msgid "Invalid exchange"
msgstr "Ðеправилен обмен"
-#: sysdeps/gnu/errlist.c:1191
+#: sysdeps/gnu/errlist.c:1204
msgid "Invalid request descriptor"
msgstr "Ðеправилен опиÑател на заÑвка"
# TODO
-#: sysdeps/gnu/errlist.c:1199
+#: sysdeps/gnu/errlist.c:1212
msgid "Exchange full"
msgstr "Препълнен обмен"
-#: sysdeps/gnu/errlist.c:1207
+#: sysdeps/gnu/errlist.c:1220
msgid "No anode"
msgstr "ÐÑма а-възел (a-node)"
-#: sysdeps/gnu/errlist.c:1215
+#: sysdeps/gnu/errlist.c:1228
msgid "Invalid request code"
msgstr "Ðеправилен код на заÑвка"
-#: sysdeps/gnu/errlist.c:1223
+#: sysdeps/gnu/errlist.c:1236
msgid "Invalid slot"
msgstr "Ðеправилен жлеб"
-#: sysdeps/gnu/errlist.c:1231
+#: sysdeps/gnu/errlist.c:1244
msgid "File locking deadlock error"
msgstr "Грешка от безизходно положение при заключване на файлове"
-#: sysdeps/gnu/errlist.c:1239
+#: sysdeps/gnu/errlist.c:1252
msgid "Bad font file format"
msgstr "Ðеправилен формат на файл Ñ ÑˆÑ€Ð¸Ñ„Ñ‚"
-#: sysdeps/gnu/errlist.c:1247
+#: sysdeps/gnu/errlist.c:1260
msgid "Machine is not on the network"
msgstr "Машината не е в мрежа"
-#: sysdeps/gnu/errlist.c:1255
+#: sysdeps/gnu/errlist.c:1268
msgid "Package not installed"
msgstr "Пакетът не е инÑталиран"
# TODO
-#: sysdeps/gnu/errlist.c:1263
+#: sysdeps/gnu/errlist.c:1276
msgid "Advertise error"
msgstr "Грешка при оÑведомÑване"
# TODO
-#: sysdeps/gnu/errlist.c:1271
+#: sysdeps/gnu/errlist.c:1284
msgid "Srmount error"
msgstr "Грешка при srmount"
-#: sysdeps/gnu/errlist.c:1279
+#: sysdeps/gnu/errlist.c:1292
msgid "Communication error on send"
msgstr "Грешка при изпращане"
-#: sysdeps/gnu/errlist.c:1287
+#: sysdeps/gnu/errlist.c:1300
msgid "RFS specific error"
msgstr "RFS-грешка"
-#: sysdeps/gnu/errlist.c:1295
+#: sysdeps/gnu/errlist.c:1308
msgid "Name not unique on network"
msgstr "Името не е неповторимо в мрежата"
-#: sysdeps/gnu/errlist.c:1303
+#: sysdeps/gnu/errlist.c:1316
msgid "File descriptor in bad state"
msgstr "ФайловиÑÑ‚ опиÑател е в лошо ÑÑŠÑтоÑние"
-#: sysdeps/gnu/errlist.c:1311
+#: sysdeps/gnu/errlist.c:1324
msgid "Remote address changed"
msgstr "ОтдалечениÑÑ‚ Ð°Ð´Ñ€ÐµÑ Ðµ Ñменен"
-#: sysdeps/gnu/errlist.c:1319
+#: sysdeps/gnu/errlist.c:1332
msgid "Can not access a needed shared library"
msgstr "Ðе е доÑтъпна необходимата Ñподелена библиотека"
-#: sysdeps/gnu/errlist.c:1327
+#: sysdeps/gnu/errlist.c:1340
msgid "Accessing a corrupted shared library"
msgstr "ДоÑтъпва Ñе повредена Ñподелена библиотека"
-#: sysdeps/gnu/errlist.c:1335
+#: sysdeps/gnu/errlist.c:1348
msgid ".lib section in a.out corrupted"
msgstr "Повреден .lib-раздел в a.out"
-#: sysdeps/gnu/errlist.c:1343
+#: sysdeps/gnu/errlist.c:1356
msgid "Attempting to link in too many shared libraries"
msgstr "Опитва Ñе Ñвързване в твърде много Ñподелени библиотеки"
-#: sysdeps/gnu/errlist.c:1351
+#: sysdeps/gnu/errlist.c:1364
msgid "Cannot exec a shared library directly"
msgstr "Споделена библиотека не може да Ñе изпълнÑва прÑко"
-#: sysdeps/gnu/errlist.c:1359
+#: sysdeps/gnu/errlist.c:1372
msgid "Streams pipe error"
msgstr "Грешка при непрекъÑнат поток"
-#: sysdeps/gnu/errlist.c:1367
+#: sysdeps/gnu/errlist.c:1380
msgid "Structure needs cleaning"
msgstr "Структурата Ñе нуждае от почиÑтване"
# TODO
-#: sysdeps/gnu/errlist.c:1375
+#: sysdeps/gnu/errlist.c:1388
msgid "Not a XENIX named type file"
msgstr "Ðе е XENIX-именуван типов файл"
-#: sysdeps/gnu/errlist.c:1383
+#: sysdeps/gnu/errlist.c:1396
msgid "No XENIX semaphores available"
msgstr "ÐÑма налични XENIX-Ñемафори"
-#: sysdeps/gnu/errlist.c:1391
+#: sysdeps/gnu/errlist.c:1404
msgid "Is a named type file"
msgstr "Именуван типов файл"
-#: sysdeps/gnu/errlist.c:1399
+#: sysdeps/gnu/errlist.c:1412
msgid "Remote I/O error"
msgstr "Отдалечена входно-изходна грешка"
-#: sysdeps/gnu/errlist.c:1407
+#: sysdeps/gnu/errlist.c:1420
msgid "No medium found"
msgstr "Ðе е открит ноÑител"
-#: sysdeps/gnu/errlist.c:1415
+#: sysdeps/gnu/errlist.c:1428
msgid "Wrong medium type"
msgstr "Ðеправилен тип на ноÑител"
-#: sysdeps/gnu/errlist.c:1423
+#: sysdeps/gnu/errlist.c:1436
msgid "Required key not available"
msgstr "ÐеобходимиÑÑ‚ ключ не е наличен"
-#: sysdeps/gnu/errlist.c:1431
+#: sysdeps/gnu/errlist.c:1444
msgid "Key has expired"
msgstr "Ключът е Ñ Ð¸Ð·Ñ‚ÐµÐºÑŠÐ» Ñрок"
-#: sysdeps/gnu/errlist.c:1439
+#: sysdeps/gnu/errlist.c:1452
msgid "Key has been revoked"
msgstr "Ключът е бил отменен"
-#: sysdeps/gnu/errlist.c:1447
+#: sysdeps/gnu/errlist.c:1460
msgid "Key was rejected by service"
msgstr "Ключът е отказан от уÑлугата"
-#: sysdeps/gnu/errlist.c:1455
+#: sysdeps/gnu/errlist.c:1468
msgid "Operation not possible due to RF-kill"
msgstr "ДейÑтвието не е позволено, заради радио забрана (RF-kill)"
-#: sysdeps/gnu/errlist.c:1463
+#: sysdeps/gnu/errlist.c:1476
msgid "Memory page has hardware error"
msgstr "Грешка в паметта от техниката"
@@ -6766,27 +6775,27 @@ msgstr "не е разрешено използването на Ñтек в ÑÑ
msgid "can't disable CET"
msgstr "не може да Ñе забрани технологиÑта за изпълнение на управлÑÐ²Ð°Ñ‰Ð¸Ñ Ð¿Ð¾Ñ‚Ð¾Ðº (CET)"
-#: timezone/zdump.c:338
+#: timezone/zdump.c:332
msgid "has fewer than 3 characters"
msgstr "е по-кратко от три букви"
-#: timezone/zdump.c:340
+#: timezone/zdump.c:334
msgid "has more than 6 characters"
msgstr "е Ñ Ð¿Ð¾Ð²ÐµÑ‡Ðµ от шеÑÑ‚ букви"
-#: timezone/zdump.c:342
+#: timezone/zdump.c:336
msgid "has characters other than ASCII alphanumerics, '-' or '+'"
msgstr "е Ñ Ð±ÑƒÐºÐ²Ð¸ извън ASCII букви или цифри, '-' или '+'"
-#: timezone/zdump.c:347
+#: timezone/zdump.c:341
#, c-format
msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n"
msgstr "%s: предупреждение: зоната \"%s\", ÑÑŠÑ Ñъкращение \"%s\", %s\n"
-#: timezone/zdump.c:393
+#: timezone/zdump.c:387
#, c-format
msgid ""
-"%s: usage: %s OPTIONS ZONENAME ...\n"
+"%s: usage: %s OPTIONS TIMEZONE ...\n"
"Options include:\n"
" -c [L,]U Start at year L (default -500), end before year U (default 2500)\n"
" -t [L,]U Start at time L, end before time U (in seconds since 1970)\n"
@@ -6798,447 +6807,471 @@ msgid ""
"\n"
"Report bugs to %s.\n"
msgstr ""
-"%s: използване: %s ОПЦИИ ИМЕÐÐЗОÐÐ ...\n"
+"%s: използване: %s ОПЦИИ ЧÐСОВÐЗОÐÐ ...\n"
"Опциите включват:\n"
" -c [О,]Д Започва от година О (по подразбиране -500), завършва преди година Д (по подразбиране 2500)\n"
-" -t [О,]Д Започва от Ñ‡Ð°Ñ Ðž, завърва преди Ñ‡Ð°Ñ Ð” (в Ñекунди Ñлед 1970)\n"
+" -t [О,]Ч Започва от Ñ‡Ð°Ñ Ðž, завърва преди Ñ‡Ð°Ñ Ð§ (в Ñекунди Ñлед 1970)\n"
" -i ИзброÑва накратко преходите (опитно)\n"
" -v ИзброÑва преходите подробно\n"
" -V ИзброÑва преходите по-подробно\n"
" --help Извежда тази помощ\n"
" --version Извеждане на Ñведение за верÑиÑта\n"
"\n"
-"Доклад за грешка на %s.\n"
+"Докладване на грешки към %s.\n"
-#: timezone/zdump.c:479
+#: timezone/zdump.c:473
#, c-format
msgid "%s: wild -c argument %s\n"
msgstr "%s: безумен -c аргумент %s\n"
-#: timezone/zdump.c:512
+#: timezone/zdump.c:506
#, c-format
msgid "%s: wild -t argument %s\n"
msgstr "%s: безумен -t аргумент %s\n"
-#: timezone/zic.c:398
+#: timezone/zic.c:429
#, c-format
msgid "%s: Memory exhausted: %s\n"
msgstr "%s: Изчерпана памет: %s\n"
-#: timezone/zic.c:406
+#: timezone/zic.c:437
msgid "size overflow"
msgstr "препълване на ÑтойноÑтта за размер"
-#: timezone/zic.c:454
+#: timezone/zic.c:447
+msgid "alignment overflow"
+msgstr "препълване при подравнÑване"
+
+#: timezone/zic.c:495
msgid "integer overflow"
msgstr "целочиÑлено препълване"
-#: timezone/zic.c:488
+#: timezone/zic.c:529
#, c-format
msgid "\"%s\", line %<PRIdMAX>: "
msgstr "\"%s\", ред %<PRIdMAX>: "
-#: timezone/zic.c:491
+#: timezone/zic.c:532
#, c-format
msgid " (rule from \"%s\", line %<PRIdMAX>)"
msgstr " (правило от \"%s\", ред %<PRIdMAX>)"
-#: timezone/zic.c:510
+#: timezone/zic.c:551
#, c-format
msgid "warning: "
msgstr "предупреждение: "
-#: timezone/zic.c:535
+#: timezone/zic.c:576
#, c-format
msgid ""
"%s: usage is %s [ --version ] [ --help ] [ -v ] \\\n"
"\t[ -l localtime ] [ -p posixrules ] [ -d directory ] \\\n"
-"\t[ -L leapseconds ] [ filename ... ]\n"
+"\t[ -t localtime-link ] [ -L leapseconds ] [ filename ... ]\n"
"\n"
"Report bugs to %s.\n"
msgstr ""
"%s: употребата е %s [ --version ] [ --help ] [ -v ] \\\n"
"\t[ -l меÑтновреме ] [ -p posix_правило ] [ -d Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ ] \\\n"
-"\t[ -L виÑокоÑниÑекунди ] [ именафайл ... ]\n"
+"\t[ -t връзка–към–меÑтновреме ] [ -L виÑокоÑниÑекунди ] [ именафайл ... ]\n"
"\n"
"Докладване на грешки към %s.\n"
-#: timezone/zic.c:558
+#: timezone/zic.c:599
#, c-format
msgid "%s: Can't chdir to %s: %s\n"
msgstr "%s: Ðе може да Ñе Ñмени директориÑта на %s: %s\n"
-#: timezone/zic.c:590
+#: timezone/zic.c:632
msgid "wild compilation-time specification of zic_t"
msgstr "при компилирането е зададен безумен тип за zic_t"
-#: timezone/zic.c:610
+#: timezone/zic.c:652
#, c-format
msgid "%s: More than one -d option specified\n"
-msgstr "%s: Зададена е повече от една -d опциÑ\n"
+msgstr "%s: Зададена е повече от една Ð¾Ð¿Ñ†Ð¸Ñ -d\n"
-#: timezone/zic.c:620
+#: timezone/zic.c:662
#, c-format
msgid "%s: More than one -l option specified\n"
-msgstr "%s: Зададена е повече от една -l опциÑ\n"
+msgstr "%s: Зададена е повече от една Ð¾Ð¿Ñ†Ð¸Ñ -l\n"
-#: timezone/zic.c:630
+#: timezone/zic.c:672
#, c-format
msgid "%s: More than one -p option specified\n"
-msgstr "%s: Зададена е повече от една -p опциÑ\n"
+msgstr "%s: Зададена е повече от една Ð¾Ð¿Ñ†Ð¸Ñ -p\n"
+
+#: timezone/zic.c:680
+#, c-format
+msgid "%s: More than one -t option specified\n"
+msgstr "%s: Зададена е повече от една Ð¾Ð¿Ñ†Ð¸Ñ -t\n"
+
+#: timezone/zic.c:689
+msgid "-y is obsolescent"
+msgstr "-y е отживелица"
-#: timezone/zic.c:640
+#: timezone/zic.c:693
#, c-format
msgid "%s: More than one -y option specified\n"
-msgstr "%s: Зададена е повече от една -y опциÑ\n"
+msgstr "%s: Зададена е повече от една Ð¾Ð¿Ñ†Ð¸Ñ -y\n"
-#: timezone/zic.c:650
+#: timezone/zic.c:703
#, c-format
msgid "%s: More than one -L option specified\n"
-msgstr "%s: Зададена е повече от една -L опциÑ\n"
+msgstr "%s: Зададена е повече от една Ð¾Ð¿Ñ†Ð¸Ñ -L\n"
-#: timezone/zic.c:659
+#: timezone/zic.c:712
msgid "-s ignored"
msgstr "-s пренебрегнат"
-#: timezone/zic.c:698
+#: timezone/zic.c:753
msgid "link to link"
msgstr "връзка към връзка"
-#: timezone/zic.c:701 timezone/zic.c:705
+#: timezone/zic.c:756 timezone/zic.c:760
msgid "command line"
msgstr "команден ред"
-#: timezone/zic.c:721
+#: timezone/zic.c:776
msgid "empty file name"
msgstr "празно име на файл"
-#: timezone/zic.c:724
+#: timezone/zic.c:779
#, c-format
msgid "file name '%s' begins with '/'"
msgstr "името на файла '%s' започва Ñ '/'"
-#: timezone/zic.c:734
+#: timezone/zic.c:789
#, c-format
msgid "file name '%s' contains '%.*s' component"
msgstr "името на файла '%s' Ñъдържа чаÑÑ‚ '%.*s'"
-#: timezone/zic.c:740
+#: timezone/zic.c:795
#, c-format
msgid "file name '%s' component contains leading '-'"
msgstr "чаÑтта, '%s' за име на файл, започва Ñ '-'"
-#: timezone/zic.c:743
+#: timezone/zic.c:798
#, c-format
msgid "file name '%s' contains overlength component '%.*s...'"
msgstr "името на файла '%s' Ñъдържа чаÑÑ‚ за допълнителна дължина '%.*s...'"
-#: timezone/zic.c:771
+#: timezone/zic.c:826
#, c-format
msgid "file name '%s' contains byte '%c'"
msgstr "името на файла '%s' Ñъдържа байт '%c'"
-#: timezone/zic.c:772
+#: timezone/zic.c:827
#, c-format
msgid "file name '%s' contains byte '\\%o'"
msgstr "името на файла '%s' Ñъдържа байт '\\%o'"
-#: timezone/zic.c:842
+#: timezone/zic.c:897
#, c-format
msgid "%s: link from %s/%s failed: %s\n"
msgstr "%s: пропадна връзката от %s/%s: %s\n"
-#: timezone/zic.c:852 timezone/zic.c:1815
+#: timezone/zic.c:907 timezone/zic.c:1876
#, c-format
msgid "%s: Can't remove %s/%s: %s\n"
msgstr "%s: Ðе може да Ñе изтрие %s/%s: %s\n"
-#: timezone/zic.c:874
+#: timezone/zic.c:931
#, c-format
msgid "symbolic link used because hard link failed: %s"
msgstr "използва Ñе връзка, понеже пропадна Ñъздаването на твърда: %s"
-#: timezone/zic.c:882
+#: timezone/zic.c:939
#, c-format
msgid "%s: Can't read %s/%s: %s\n"
msgstr "%s: Ðе може да Ñе прочете %s/%s: %s\n"
-#: timezone/zic.c:889 timezone/zic.c:1828
+#: timezone/zic.c:946 timezone/zic.c:1889
#, c-format
msgid "%s: Can't create %s/%s: %s\n"
msgstr "%s: Ðе може да Ñе Ñъздаде %s/%s: %s\n"
-#: timezone/zic.c:898
+#: timezone/zic.c:955
#, c-format
msgid "copy used because hard link failed: %s"
msgstr "използва Ñе копиране, понеже пропадна Ñъздаването на твърда връзка: %s"
-#: timezone/zic.c:901
+#: timezone/zic.c:958
#, c-format
msgid "copy used because symbolic link failed: %s"
msgstr "използва Ñе копиране, понеже пропадна Ñъздаването на връзка: %s"
-#: timezone/zic.c:1013 timezone/zic.c:1015
+#: timezone/zic.c:1032 timezone/zic.c:1034
msgid "same rule name in multiple files"
msgstr "едно и Ñъщо име на правило в много файлове"
-#: timezone/zic.c:1056
-msgid "unruly zone"
-msgstr "непокорна зона"
-
-#: timezone/zic.c:1063
+#: timezone/zic.c:1081
#, c-format
msgid "%s in ruleless zone"
msgstr "%s в зона без правила"
-#: timezone/zic.c:1083
+#: timezone/zic.c:1101
msgid "standard input"
msgstr "Ñтандартен вход"
-#: timezone/zic.c:1088
+#: timezone/zic.c:1106
#, c-format
msgid "%s: Can't open %s: %s\n"
msgstr "%s: Ðе може да Ñе отвори %s: %s\n"
-#: timezone/zic.c:1099
+#: timezone/zic.c:1117
msgid "line too long"
msgstr "Твърде дълъг ред"
-#: timezone/zic.c:1119
+#: timezone/zic.c:1139
msgid "input line of unknown type"
msgstr "ВходÑщ ред от неизвеÑтен тип"
-#: timezone/zic.c:1134
-#, c-format
-msgid "%s: Leap line in non leap seconds file %s"
-msgstr "%s: редът за Leap не е във файл за виÑокоÑни Ñекунди %s"
-
-#: timezone/zic.c:1142 timezone/zic.c:1547 timezone/zic.c:1569
+#: timezone/zic.c:1158 timezone/zic.c:1593 timezone/zic.c:1615
#, c-format
msgid "%s: panic: Invalid l_value %d\n"
msgstr "%s: паника: Ðеправилен израз отлÑво(lvalue) %d\n"
-#: timezone/zic.c:1151
+#: timezone/zic.c:1167
msgid "expected continuation line not found"
msgstr "липÑва ред за продължение"
-#: timezone/zic.c:1193 timezone/zic.c:2976
+#: timezone/zic.c:1203
+msgid "fractional seconds rejected by pre-2018 versions of zic"
+msgstr "верÑиите на zic, преди 2018, отказват дробни Ñекунди"
+
+#: timezone/zic.c:1221 timezone/zic.c:3078
msgid "time overflow"
msgstr "препълване на ÑтойноÑтта за време"
-#: timezone/zic.c:1198
+#: timezone/zic.c:1227
msgid "values over 24 hours not handled by pre-2007 versions of zic"
msgstr "не Ñе поддържат ÑтойноÑти над 24 чаÑа от верÑии на zic преди 2007"
-#: timezone/zic.c:1209
+#: timezone/zic.c:1245
+msgid "invalid saved time"
+msgstr "неправилно запиÑано време"
+
+#: timezone/zic.c:1256
msgid "wrong number of fields on Rule line"
msgstr "неправилен брой полета на ред за Rule"
-#: timezone/zic.c:1213
-msgid "nameless rule"
-msgstr "правило без име"
-
-#: timezone/zic.c:1218
-msgid "invalid saved time"
-msgstr "неправилно запиÑано време"
+#: timezone/zic.c:1265
+#, c-format
+msgid "Invalid rule name \"%s\""
+msgstr "Ðеправилно име на правило \"%s\""
-#: timezone/zic.c:1235
+#: timezone/zic.c:1287
msgid "wrong number of fields on Zone line"
msgstr "неправилен брой полета на ред за Zone"
-#: timezone/zic.c:1240
+#: timezone/zic.c:1292
#, c-format
msgid "\"Zone %s\" line and -l option are mutually exclusive"
msgstr "Редът \"Zone %s\" и опциÑта -l Ñа взаимно изключващи Ñе"
-#: timezone/zic.c:1246
+#: timezone/zic.c:1298
#, c-format
msgid "\"Zone %s\" line and -p option are mutually exclusive"
msgstr "Редът \"Zone %s\" и опциÑта -p Ñа взаимно изключващи Ñе"
-#: timezone/zic.c:1253
+#: timezone/zic.c:1305
#, c-format
msgid "duplicate zone name %s (file \"%s\", line %<PRIdMAX>)"
msgstr "повторено име на зона %s (файл \"%s\", ред %<PRIdMAX>)"
-#: timezone/zic.c:1267
+#: timezone/zic.c:1319
msgid "wrong number of fields on Zone continuation line"
msgstr "неправилен брой полета на ред за продължаване на Zone"
-#: timezone/zic.c:1307
+#: timezone/zic.c:1359
msgid "invalid UT offset"
msgstr "неправилно отмеÑтване ÑпрÑмо \"УниверÑалното време\""
-#: timezone/zic.c:1311
+#: timezone/zic.c:1363
msgid "invalid abbreviation format"
msgstr "Ðеправилен формат за Ñъкращение"
-#: timezone/zic.c:1320
+#: timezone/zic.c:1372
#, c-format
msgid "format '%s' not handled by pre-2015 versions of zic"
msgstr "формата '%s' не Ñе поддържа от верÑии на zic преди 2015"
-#: timezone/zic.c:1347
+#: timezone/zic.c:1399
msgid "Zone continuation line end time is not after end time of previous line"
msgstr "на ред за продължаване на Zone, крайното време не е Ñлед крайното време на Ð¿Ñ€ÐµÐ´Ð¸ÑˆÐ½Ð¸Ñ Ñ€ÐµÐ´"
-#: timezone/zic.c:1374
+#: timezone/zic.c:1426
msgid "wrong number of fields on Leap line"
msgstr "неправилен брой полета за ред за Leap"
-#: timezone/zic.c:1383
+#: timezone/zic.c:1435
msgid "invalid leaping year"
msgstr "Ðеправилна виÑокоÑна година"
-#: timezone/zic.c:1403 timezone/zic.c:1501
+#: timezone/zic.c:1455 timezone/zic.c:1547
msgid "invalid month name"
msgstr "Ðеправилно име на меÑец"
-#: timezone/zic.c:1416 timezone/zic.c:1614 timezone/zic.c:1628
+#: timezone/zic.c:1468 timezone/zic.c:1663 timezone/zic.c:1677
msgid "invalid day of month"
msgstr "Ðеправилен ден от меÑеца"
-#: timezone/zic.c:1421
+#: timezone/zic.c:1473
msgid "time too small"
msgstr "СтойноÑтта за Ñ‡Ð°Ñ Ðµ много малка"
-#: timezone/zic.c:1425
+#: timezone/zic.c:1477
msgid "time too large"
msgstr "СтойноÑтта за Ñ‡Ð°Ñ Ðµ много голÑма"
-#: timezone/zic.c:1429 timezone/zic.c:1530
+#: timezone/zic.c:1481 timezone/zic.c:1576
msgid "invalid time of day"
msgstr "неправилен чаÑ"
-#: timezone/zic.c:1448
+#: timezone/zic.c:1494
msgid "illegal CORRECTION field on Leap line"
msgstr "незаконно поле CORRECTION за ред Leap"
-#: timezone/zic.c:1453
+#: timezone/zic.c:1499
msgid "illegal Rolling/Stationary field on Leap line"
msgstr "незаконно поле Rolling/Stationary на реда за Leap "
-#: timezone/zic.c:1459
-msgid "leap second precedes Big Bang"
-msgstr "виÑокоÑната Ñекунда предхожда \"Ð“Ð¾Ð»ÐµÐ¼Ð¸Ñ Ð²Ð·Ñ€Ð¸Ð²\""
+#: timezone/zic.c:1505
+msgid "leap second precedes Epoch"
+msgstr "виÑокоÑната Ñекунда предхожда епохата"
-#: timezone/zic.c:1472
+#: timezone/zic.c:1518
msgid "wrong number of fields on Link line"
msgstr "неправилен брой полета на ред за Link"
-#: timezone/zic.c:1476
+#: timezone/zic.c:1522
msgid "blank FROM field on Link line"
msgstr "празно поле FROM на ред за Link"
-#: timezone/zic.c:1551
+#: timezone/zic.c:1597
msgid "invalid starting year"
msgstr "неправилна начална година"
-#: timezone/zic.c:1573
+#: timezone/zic.c:1619
msgid "invalid ending year"
msgstr "неправилна крайна година"
-#: timezone/zic.c:1577
+#: timezone/zic.c:1623
msgid "starting year greater than ending year"
msgstr "началната година е по-голÑма от крайната"
-#: timezone/zic.c:1584
+#: timezone/zic.c:1630
msgid "typed single year"
msgstr "една единÑтвена година е зададена"
-#: timezone/zic.c:1619
+#: timezone/zic.c:1633
+#, c-format
+msgid "year type \"%s\" is obsolete; use \"-\" instead"
+msgstr "тип на годината \"%s\" е отживелица, да Ñе използва \"-\""
+
+#: timezone/zic.c:1668
msgid "invalid weekday name"
msgstr "неправилно име на ден от Ñедмицата"
-#: timezone/zic.c:1743
+#: timezone/zic.c:1800
#, c-format
msgid "reference clients mishandle more than %d transition times"
msgstr "нÑкой клиенти, Ñе ÑправÑÑ‚ зле при повече от %d прехода"
-#: timezone/zic.c:1747
+#: timezone/zic.c:1804
msgid "pre-2014 clients may mishandle more than 1200 transition times"
msgstr "клиенти преди 2014, може да не Ñе ÑправÑÑ‚ правилно при повече от 1200 прехода"
-#: timezone/zic.c:1858
+#: timezone/zic.c:1920
msgid "too many transition times"
msgstr "твърде много типове за преход"
-#: timezone/zic.c:2047
+#: timezone/zic.c:2107
#, c-format
-msgid "%%z UTC offset magnitude exceeds 99:59:59"
+msgid "%%z UT offset magnitude exceeds 99:59:59"
msgstr "%%z ОтмеÑтването ÑпрÑмо универÑалноте време превишава 99:59:59"
-#: timezone/zic.c:2424
+#: timezone/zic.c:2488
msgid "no POSIX environment variable for zone"
msgstr "в обкръжението, липÑва POSIX променлива за зона"
-#: timezone/zic.c:2430
+#: timezone/zic.c:2494
#, c-format
msgid "%s: pre-%d clients may mishandle distant timestamps"
msgstr "%s: клиенти, преди %d, може да не Ñе ÑправÑÑ‚ Ñ Ð¾Ñ‚Ð´Ð°Ð»ÐµÑ‡ÐµÐ½Ð¸ времеви печати"
-#: timezone/zic.c:2566
+#: timezone/zic.c:2631
msgid "two rules for same instant"
msgstr "две правила за едно и Ñъщо време"
-#: timezone/zic.c:2627
+#: timezone/zic.c:2696
msgid "can't determine time zone abbreviation to use just after until time"
msgstr "не може да Ñе определи Ñъкращението за чаÑова зона, което да Ñе ползва, веднага Ñлед крайното време"
-#: timezone/zic.c:2725
+#: timezone/zic.c:2785
msgid "too many local time types"
msgstr "твърде много типове за меÑтно време"
-#: timezone/zic.c:2729
+#: timezone/zic.c:2789
msgid "UT offset out of range"
msgstr "ОтмеÑтването ÑпрÑмо \"УниверÑалното време\" е извън обхват"
-#: timezone/zic.c:2753
+#: timezone/zic.c:2813
msgid "too many leap seconds"
msgstr "твърде много виÑокоÑни Ñекунди"
-#: timezone/zic.c:2759
-msgid "repeated leap second moment"
-msgstr "повтарÑщ Ñе момент за виÑокоÑна Ñекунда"
+#: timezone/zic.c:2844
+msgid "Leap seconds too close together"
+msgstr "твърде близки виÑокоÑни Ñекунди"
-#: timezone/zic.c:2830
+#: timezone/zic.c:2891
msgid "Wild result from command execution"
msgstr "Безумен резултат от изпълнението на команда"
-#: timezone/zic.c:2831
+#: timezone/zic.c:2892
#, c-format
msgid "%s: command was '%s', result was %d\n"
msgstr "%s: командата бе '%s' и резултатът бе %d\n"
-#: timezone/zic.c:2961
+#: timezone/zic.c:2998
+#, c-format
+msgid "\"%s\" is undocumented; use \"last%s\" instead"
+msgstr "\"%s\" не е опиÑано, затова да Ñе използва \"last%s\""
+
+#: timezone/zic.c:3029
+#, c-format
+msgid "\"%s\" is ambiguous in pre-2017c zic"
+msgstr "\"%s\" е двуÑмиÑлен за zic от преди 2017c"
+
+#: timezone/zic.c:3063
msgid "Odd number of quotation marks"
msgstr "Ðеочакван брой кавички"
-#: timezone/zic.c:3046
+#: timezone/zic.c:3157
msgid "use of 2/29 in non leap-year"
msgstr "използване на 29.2 за невиÑокоÑна година"
-#: timezone/zic.c:3081
+#: timezone/zic.c:3192
msgid "rule goes past start/end of month; will not work with pre-2004 versions of zic"
msgstr "правилото Ð¿Ñ€ÐµÑ…Ð²ÑŠÑ€Ð»Ñ Ð½Ð°Ñ‡Ð°Ð»Ð¾Ñ‚Ð¾/ÐºÑ€Ð°Ñ Ð½Ð° меÑеца - нÑма да работи Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð½Ð° zic от преди 2004"
-#: timezone/zic.c:3108
+#: timezone/zic.c:3219
msgid "time zone abbreviation has fewer than 3 characters"
msgstr "Ñъкращението за чаÑова зона е по-кратко от три букви"
-#: timezone/zic.c:3110
+#: timezone/zic.c:3221
msgid "time zone abbreviation has too many characters"
msgstr "Ñъкращението за чаÑова зона е Ñ Ñ‚Ð²ÑŠÑ€Ð´Ðµ много букви"
-#: timezone/zic.c:3112
+#: timezone/zic.c:3223
msgid "time zone abbreviation differs from POSIX standard"
msgstr "Ñъкращението за чаÑова зона Ñе различава от Ñтандарта POSIX"
-#: timezone/zic.c:3118
+#: timezone/zic.c:3229
msgid "too many, or too long, time zone abbreviations"
msgstr "твърде много или твърде дълго Ñъкращение за чаÑова зона"
-#: timezone/zic.c:3161
+#: timezone/zic.c:3275
#, c-format
msgid "%s: Can't create directory %s: %s"
msgstr "%s: Ðе може да Ñе Ñъздаде Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ %s: %s"
diff --git a/po/ca.po b/po/ca.po
index e0150331d7..44c4ddf5fd 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -48,7 +48,7 @@
msgid ""
msgstr ""
"Project-Id-Version: libc 2.22-pre1\n"
-"POT-Creation-Date: 2018-07-26 22:19-0400\n"
+"POT-Creation-Date: 2019-07-18 13:28-0400\n"
"PO-Revision-Date: 2015-12-29 22:56+0100\n"
"Last-Translator: Ivan Vilata i Balaguer <ivan@selidor.net>\n"
"Language-Team: Catalan <ca@dodds.net>\n"
@@ -196,10 +196,10 @@ msgstr ""
# L’adreça es veu millor així. ivb
#: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:308
-#: elf/pldd.c:252 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
-#: iconv/iconvconfig.c:379 locale/programs/locale.c:275
-#: locale/programs/localedef.c:427 login/programs/pt_chown.c:89
-#: malloc/memusagestat.c:563 nss/getent.c:933 nss/makedb.c:369
+#: elf/pldd.c:247 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
+#: iconv/iconvconfig.c:379 locale/programs/locale.c:276
+#: locale/programs/localedef.c:437 login/programs/pt_chown.c:89
+#: malloc/memusagestat.c:563 nss/getent.c:953 nss/makedb.c:369
#: posix/getconf.c:503 sysdeps/unix/sysv/linux/lddlibc4.c:61
#, c-format
msgid ""
@@ -210,11 +210,11 @@ msgstr ""
"<%s>.\n"
#: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64
-#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75
+#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:263 elf/sotruss.sh:75
#: elf/sprof.c:389 iconv/iconv_prog.c:422 iconv/iconvconfig.c:396
-#: locale/programs/locale.c:292 locale/programs/localedef.c:453
+#: locale/programs/locale.c:293 locale/programs/localedef.c:463
#: login/programs/pt_chown.c:63 malloc/memusage.sh:71
-#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:87 nss/makedb.c:385
+#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:88 nss/makedb.c:385
#: posix/getconf.c:485 sysdeps/unix/sysv/linux/lddlibc4.c:68
#, c-format
msgid ""
@@ -228,10 +228,10 @@ msgstr ""
"ADEQUACIÓ PER A UN PROPÒSIT PARTICULAR.\n"
#: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68
-#: elf/ldconfig.c:329 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:427
-#: iconv/iconvconfig.c:401 locale/programs/locale.c:297
-#: locale/programs/localedef.c:458 malloc/memusage.sh:75
-#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:92 nss/makedb.c:390
+#: elf/ldconfig.c:329 elf/pldd.c:268 elf/sprof.c:395 iconv/iconv_prog.c:427
+#: iconv/iconvconfig.c:401 locale/programs/locale.c:298
+#: locale/programs/localedef.c:468 malloc/memusage.sh:75
+#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:93 nss/makedb.c:390
#: posix/getconf.c:490
#, c-format
msgid "Written by %s.\n"
@@ -302,21 +302,21 @@ msgstr "no s’ha pogut obrir el fitxer d’eixida «%s»"
msgid "invalid escape sequence"
msgstr "la seqüència d’escapada no és vàlida"
-#: catgets/gencat.c:1209
+#: catgets/gencat.c:1211
msgid "unterminated message"
msgstr "el missatge no està acabat"
-#: catgets/gencat.c:1233
+#: catgets/gencat.c:1235
#, c-format
msgid "while opening old catalog file"
msgstr "en obrir el fitxer antic de catàleg"
-#: catgets/gencat.c:1324
+#: catgets/gencat.c:1326
#, c-format
msgid "conversion modules not available"
msgstr "els mòduls de conversió no es troben disponibles"
-#: catgets/gencat.c:1350
+#: catgets/gencat.c:1352
#, c-format
msgid "cannot determine escape character"
msgstr "no s’ha pogut determinar el caràcter d’escapada"
@@ -461,7 +461,7 @@ msgstr "SO desconegut"
msgid ", OS ABI: %s %d.%d.%d"
msgstr ", ABI del SO: %s %d.%d.%d"
-#: elf/cache.c:163 elf/ldconfig.c:1332
+#: elf/cache.c:163 elf/ldconfig.c:1333
#, c-format
msgid "Can't open cache file %s\n"
msgstr "no s’ha pogut obrir el fitxer «%s» de memòria cau\n"
@@ -471,39 +471,39 @@ msgstr "no s’ha pogut obrir el fitxer «%s» de memòria cau\n"
msgid "mmap of cache file failed.\n"
msgstr "ha fallat mmap() sobre el fitxer de memòria cau\n"
-#: elf/cache.c:181 elf/cache.c:195
+#: elf/cache.c:181 elf/cache.c:195 elf/cache.c:205
#, c-format
msgid "File is not a cache file.\n"
msgstr "el fitxer no és un fitxer de memòria cau\n"
# No és un error. ivb
-#: elf/cache.c:228 elf/cache.c:238
+#: elf/cache.c:233 elf/cache.c:243
#, c-format
msgid "%d libs found in cache `%s'\n"
msgstr "S’han trobat %d biblioteques a la memòria cau «%s».\n"
-#: elf/cache.c:432
+#: elf/cache.c:437
#, c-format
msgid "Can't create temporary cache file %s"
msgstr "no s’ha pogut crear el fitxer temporal de memòria cau «%s»"
-#: elf/cache.c:440 elf/cache.c:450 elf/cache.c:454 elf/cache.c:458
-#: elf/cache.c:468
+#: elf/cache.c:445 elf/cache.c:455 elf/cache.c:459 elf/cache.c:463
+#: elf/cache.c:473
#, c-format
msgid "Writing of cache data failed"
msgstr "no s’han pogut escriure les dades de la memòria cau"
-#: elf/cache.c:463
+#: elf/cache.c:468
#, c-format
msgid "Changing access rights of %s to %#o failed"
msgstr "no s’ha pogut canviar els drets d’accés de «%s» a %#o"
-#: elf/cache.c:472
+#: elf/cache.c:477
#, c-format
msgid "Renaming of %s to %s failed"
msgstr "no s’ha pogut reanomenar «%s» a «%s»"
-#: elf/dl-close.c:399 elf/dl-open.c:420
+#: elf/dl-close.c:399 elf/dl-open.c:424
msgid "cannot create scope list"
msgstr "no s’ha pogut crear la llista d’àmbits"
@@ -592,128 +592,128 @@ msgstr "no s’ha pogut crear el vector de camins de cerca"
msgid "cannot stat shared object"
msgstr "ha fallat stat() sobre l’objecte compartit"
-# ivb (2001/10/28)
-# ivb Es refereix a /dev/zero .
-#: elf/dl-load.c:960
-msgid "cannot open zero fill device"
-msgstr "no s’ha pogut obrir el dispositiu de zeros"
-
-#: elf/dl-load.c:1007 elf/dl-load.c:2203
+#: elf/dl-load.c:992 elf/dl-load.c:2198
msgid "cannot create shared object descriptor"
msgstr "no s’ha pogut crear el descriptor d’objecte compartit"
-#: elf/dl-load.c:1026 elf/dl-load.c:1560 elf/dl-load.c:1673
+#: elf/dl-load.c:1011 elf/dl-load.c:1555 elf/dl-load.c:1668
msgid "cannot read file data"
msgstr "no s’han pogut llegir les dades del fitxer"
-#: elf/dl-load.c:1072
+#: elf/dl-load.c:1057
msgid "ELF load command alignment not page-aligned"
msgstr "l’alineament de l’ordre ELF de càrrega no està alineada amb la pàgina"
-#: elf/dl-load.c:1079
+#: elf/dl-load.c:1064
msgid "ELF load command address/offset not properly aligned"
msgstr "l’adreça o desplaçament de l’ordre ELF de càrrega no està correctament alineada"
-#: elf/dl-load.c:1161
+#: elf/dl-load.c:1146
#, fuzzy
#| msgid "cannot restore segment prot after reloc"
msgid "cannot process note segment"
msgstr "no s’ha pogut restaurar la protecció del segment després de reubicarâ€lo"
-#: elf/dl-load.c:1172
+#: elf/dl-load.c:1157
msgid "object file has no loadable segments"
msgstr "el fitxer d’objecte no té segments carregables"
-#: elf/dl-load.c:1181 elf/dl-load.c:1652
+#: elf/dl-load.c:1170 elf/dl-load.c:1647
msgid "cannot dynamically load executable"
msgstr "no s’ha pogut carregar dinàmicament l’executable"
-#: elf/dl-load.c:1202
+#: elf/dl-load.c:1191
msgid "object file has no dynamic section"
msgstr "el fitxer d’objecte no té secció dinàmica"
-#: elf/dl-load.c:1225
+#: elf/dl-load.c:1218
+#, fuzzy
+#| msgid "cannot dynamically load executable"
+msgid "cannot dynamically load position-independent executable"
+msgstr "no s’ha pogut carregar dinàmicament l’executable"
+
+#: elf/dl-load.c:1220
msgid "shared object cannot be dlopen()ed"
msgstr "ha fallat dlopen() sobre l’objecte compartit"
-#: elf/dl-load.c:1238
+#: elf/dl-load.c:1233
msgid "cannot allocate memory for program header"
msgstr "no s’ha pogut reservar memòria per a la capçalera del programa"
-#: elf/dl-load.c:1271 elf/dl-load.h:130
+#: elf/dl-load.c:1266 elf/dl-load.h:130
msgid "cannot change memory protections"
msgstr "no s’han pogut canviar les proteccions de memòria"
-#: elf/dl-load.c:1291
+#: elf/dl-load.c:1286
msgid "cannot enable executable stack as shared object requires"
msgstr "no s’ha pogut habilitar la pila executable a requeriment de l’objecte compartit"
-#: elf/dl-load.c:1304
+#: elf/dl-load.c:1299
msgid "cannot close file descriptor"
msgstr "no s’ha pogut tancar un descriptor de fitxer"
-#: elf/dl-load.c:1560
+#: elf/dl-load.c:1555
msgid "file too short"
msgstr "el fitxer és massa curt"
-#: elf/dl-load.c:1595
+#: elf/dl-load.c:1590
msgid "invalid ELF header"
msgstr "la capçalera ELF no és vàlida"
-#: elf/dl-load.c:1607
+#: elf/dl-load.c:1602
msgid "ELF file data encoding not big-endian"
msgstr "la codificació de les dades del fitxer ELF no és bigâ€endian"
-#: elf/dl-load.c:1609
+#: elf/dl-load.c:1604
msgid "ELF file data encoding not little-endian"
msgstr "la codificació de les dades del fitxer ELF no és littleâ€endian"
-#: elf/dl-load.c:1613
+#: elf/dl-load.c:1608
msgid "ELF file version ident does not match current one"
msgstr "la identificació de la versió del fitxer ELF no concorda amb l’actual"
# ivb (2001/11(06)
# ivb ABI = Application Binary Interface (interfície binària d'aplicació)
-#: elf/dl-load.c:1617
+#: elf/dl-load.c:1612
msgid "ELF file OS ABI invalid"
msgstr "l’ABI de sistema operatiu del fitxer ELF no és vàlida"
-#: elf/dl-load.c:1620
+#: elf/dl-load.c:1615
msgid "ELF file ABI version invalid"
msgstr "la versió de l’ABI del fitxer ELF no és vàlida"
-#: elf/dl-load.c:1623
+#: elf/dl-load.c:1618
msgid "nonzero padding in e_ident"
msgstr "el replè de «e_ident» no conté només zeros"
-#: elf/dl-load.c:1626
+#: elf/dl-load.c:1621
msgid "internal error"
msgstr "error intern"
-#: elf/dl-load.c:1633
+#: elf/dl-load.c:1628
msgid "ELF file version does not match current one"
msgstr "la versió del fitxer ELF no concorda amb l’actual"
-#: elf/dl-load.c:1641
+#: elf/dl-load.c:1636
msgid "only ET_DYN and ET_EXEC can be loaded"
msgstr "només es poden carregar els tipus ET_DYN i ET_EXEC"
# ivb (2001/11/01)
# ivb La traducció completa de «phentsize» vindria a ser: mida d'entrada
# ivb de taula de la capçalera de programa.
-#: elf/dl-load.c:1657
+#: elf/dl-load.c:1652
msgid "ELF file's phentsize not the expected size"
msgstr "el valor de «phentsize» del fitxer ELF no és l’esperat"
-#: elf/dl-load.c:2222
+#: elf/dl-load.c:2217
msgid "wrong ELF class: ELFCLASS64"
msgstr "la classe ELF no és vàlida: ELFCLASS64"
-#: elf/dl-load.c:2223
+#: elf/dl-load.c:2218
msgid "wrong ELF class: ELFCLASS32"
msgstr "la classe ELF no és vàlida: ELFCLASS32"
-#: elf/dl-load.c:2226
+#: elf/dl-load.c:2221
msgid "cannot open shared object file"
msgstr "no s’ha pogut obrir el fitxer d’objecte compartit"
@@ -725,11 +725,7 @@ msgstr "no s’ha pogut mapar un segment de l’objecte compartit"
msgid "cannot map zero-fill pages"
msgstr "no s’han pogut mapar les pàgines plenes de zeros"
-#: elf/dl-lookup.c:835
-msgid "relocation error"
-msgstr "error de reubicació"
-
-#: elf/dl-lookup.c:858
+#: elf/dl-lookup.c:830
msgid "symbol lookup error"
msgstr "error en cercar el símbol"
@@ -739,19 +735,19 @@ msgstr "no s’ha pogut estendre l’àmbit global"
# ivb (2002/10/29)
# ivb TLS = Thread Local Storage
-#: elf/dl-open.c:470
+#: elf/dl-open.c:474
msgid "TLS generation counter wrapped! Please report this."
msgstr "El comptador de generació de TLS s’ha esgotat! Per favor, informeu d’açò."
-#: elf/dl-open.c:534
+#: elf/dl-open.c:538
msgid "invalid mode for dlopen()"
msgstr "el mode de dlopen() no és vàlid"
-#: elf/dl-open.c:551
+#: elf/dl-open.c:555
msgid "no more namespaces available for dlmopen()"
msgstr "no resten espais de noms disponibles per a dlmopen()"
-#: elf/dl-open.c:575
+#: elf/dl-open.c:579
msgid "invalid target namespace in dlmopen()"
msgstr "l’espai de noms destí de dlmopen() no és vàlid"
@@ -759,20 +755,20 @@ msgstr "l’espai de noms destí de dlmopen() no és vàlid"
msgid "cannot allocate memory in static TLS block"
msgstr "no s’ha pogut reservar memòria al bloc TLS estàtic"
-#: elf/dl-reloc.c:205
+#: elf/dl-reloc.c:213
msgid "cannot make segment writable for relocation"
msgstr "no s’ha pogut fer escrivible el segment per a reubicarâ€lo"
-#: elf/dl-reloc.c:276
+#: elf/dl-reloc.c:272
#, c-format
msgid "%s: out of memory to store relocation results for %s\n"
msgstr "%s: no resta memòria per a guardar els resultats de reubicar «%s»\n"
-#: elf/dl-reloc.c:292
+#: elf/dl-reloc.c:288
msgid "cannot restore segment prot after reloc"
msgstr "no s’ha pogut restaurar la protecció del segment després de reubicarâ€lo"
-#: elf/dl-reloc.c:323
+#: elf/dl-reloc.c:319
msgid "cannot apply additional memory protection after relocation"
msgstr "no s’ha pogut protegir la memòria després de reubicar"
@@ -998,22 +994,22 @@ msgstr "cal indicar el camí absolut del fitxer de configuració en emprar «-rÂ
msgid "memory exhausted"
msgstr "la memòria s’ha exhaurit"
-#: elf/ldconfig.c:1233
+#: elf/ldconfig.c:1234
#, c-format
msgid "%s:%u: cannot read directory %s"
msgstr "%s:%u: no s’ha pogut llegir el directori «%s»"
-#: elf/ldconfig.c:1281
+#: elf/ldconfig.c:1282
#, c-format
msgid "relative path `%s' used to build cache"
msgstr "s’ha indicat el camí relatiu «%s» per a construir la memòria cau"
-#: elf/ldconfig.c:1311
+#: elf/ldconfig.c:1312
#, c-format
msgid "Can't chdir to /"
msgstr "no s’ha pogut canviar al directori arrel"
-#: elf/ldconfig.c:1352
+#: elf/ldconfig.c:1353
#, c-format
msgid "Can't open cache file directory %s\n"
msgstr "no s’ha pogut obrir el directori «%s» de fitxers de memòria cau\n"
@@ -1090,101 +1086,107 @@ msgstr "ha finalitzat amb un codi d’eixida desconegut"
msgid "error: you do not have read permission for"
msgstr "error: no teniu permís de lectura per a"
-#: elf/pldd-xx.c:105
+#: elf/pldd-xx.c:102
#, c-format
msgid "cannot find program header of process"
msgstr "no s’ha trobat la capçalera de programa del procés"
-#: elf/pldd-xx.c:110
+#: elf/pldd-xx.c:106
#, c-format
msgid "cannot read program header"
msgstr "no s’ha pogut llegir la capçalera de programa"
-#: elf/pldd-xx.c:135
+#: elf/pldd-xx.c:128
#, c-format
msgid "cannot read dynamic section"
msgstr "no s’ha pogut llegir la secció dinàmica"
-#: elf/pldd-xx.c:147
+#: elf/pldd-xx.c:137
#, c-format
msgid "cannot read r_debug"
msgstr "no s’ha pogut llegir «r_debug»"
-#: elf/pldd-xx.c:167
+#: elf/pldd-xx.c:154
#, c-format
msgid "cannot read program interpreter"
msgstr "no s’ha pogut llegir l’intèrpret del programa"
-#: elf/pldd-xx.c:197
+#: elf/pldd-xx.c:183
#, c-format
msgid "cannot read link map"
msgstr "no s’ha pogut llegir el mapa d’enllaçat"
-#: elf/pldd-xx.c:209
+#: elf/pldd-xx.c:190
#, c-format
msgid "cannot read object name"
msgstr "no s’ha pogut llegir el nom de l’objecte"
# Condició d’error. ivb
-#: elf/pldd-xx.c:219
+#: elf/pldd-xx.c:197
#, c-format
msgid "cannot allocate buffer for object name"
msgstr "no s’ha pogut reservar memòria intermèdia per al nom de l’objecte"
# Descripció del programa. ivb
-#: elf/pldd.c:64
+#: elf/pldd.c:58
msgid "List dynamic shared objects loaded into process."
msgstr "Llista els objectes compatits dinàmics carregats en un procés."
# Crec que el terme és suficient conegut. ivb
-#: elf/pldd.c:68
+#: elf/pldd.c:62
msgid "PID"
msgstr "PID"
-#: elf/pldd.c:100
+#: elf/pldd.c:89
#, c-format
msgid "Exactly one parameter with process ID required.\n"
msgstr "cal exactament un paràmetre amb l’identificador de procés\n"
-#: elf/pldd.c:112
+#: elf/pldd.c:103
#, c-format
msgid "invalid process ID '%s'"
msgstr "l’identificador de procés «%s» no és vàlid"
# No usa quote(). ivb
-#: elf/pldd.c:120
+#: elf/pldd.c:111
#, c-format
msgid "cannot open %s"
msgstr "no s’ha pogut obrir «%s»"
# No usa quote. ivb
-#: elf/pldd.c:152
+#: elf/pldd.c:142
#, c-format
msgid "cannot open %s/task"
msgstr "no s’ha pogut obrir «%s/task»"
# No usa quote(). ivb
-#: elf/pldd.c:155
+#: elf/pldd.c:145
#, c-format
msgid "cannot prepare reading %s/task"
msgstr "no s’ha pogut preparar la lectura de «%s/task»"
-#: elf/pldd.c:168
+#: elf/pldd.c:158
#, c-format
msgid "invalid thread ID '%s'"
msgstr "l’identificador de fil «%s» no és vàlid"
-#: elf/pldd.c:179
+#: elf/pldd.c:169
#, c-format
msgid "cannot attach to process %lu"
msgstr "no s’ha pogut associar al procés %lu"
-#: elf/pldd.c:294
+#: elf/pldd.c:184
+#, fuzzy, c-format
+#| msgid "invalid saved time"
+msgid "no valid %s/task entries"
+msgstr "el temps estalviat no és vàlid"
+
+#: elf/pldd.c:290
#, c-format
msgid "cannot get information about process %lu"
msgstr "no s’ha pogut obtenir informació sobre el procés %lu"
-#: elf/pldd.c:307
+#: elf/pldd.c:303
#, c-format
msgid "process %lu is no ELF program"
msgstr "el procés %lu no pertany a un programa ELF"
@@ -1508,7 +1510,7 @@ msgstr "Informació:"
msgid "list all known coded character sets"
msgstr "Llista tots els jocs de caràcters codificats coneguts."
-#: iconv/iconv_prog.c:64 locale/programs/localedef.c:120
+#: iconv/iconv_prog.c:64 locale/programs/localedef.c:124
msgid "Output control:"
msgstr "Control de l’eixida:"
@@ -1517,8 +1519,8 @@ msgid "omit invalid characters from output"
msgstr "Omet a l’eixida els caràcters no vàlids."
#: iconv/iconv_prog.c:66 iconv/iconvconfig.c:128
-#: locale/programs/localedef.c:113 locale/programs/localedef.c:115
-#: locale/programs/localedef.c:117 locale/programs/localedef.c:144
+#: locale/programs/localedef.c:117 locale/programs/localedef.c:119
+#: locale/programs/localedef.c:121 locale/programs/localedef.c:150
#: malloc/memusagestat.c:56
msgid "FILE"
msgstr "FITXER"
@@ -1619,7 +1621,7 @@ msgstr "Crea un fitxer de configuració de càrrega ràpida per al mòdul iconv.
msgid "[DIR...]"
msgstr " [DIRECTORI…]"
-#: iconv/iconvconfig.c:126 locale/programs/localedef.c:123
+#: iconv/iconvconfig.c:126 locale/programs/localedef.c:129
msgid "PATH"
msgstr "CAMÃ"
@@ -1810,14 +1812,14 @@ msgstr "l’ús de jocs de caràcters amb estats blocadors no està implementat"
# El primer és el nom d'una variable (en majúscules). ivb
#: locale/programs/charmap.c:503 locale/programs/charmap.c:557
#: locale/programs/charmap.c:589 locale/programs/charmap.c:683
-#: locale/programs/charmap.c:738 locale/programs/charmap.c:779
-#: locale/programs/charmap.c:820
+#: locale/programs/charmap.c:739 locale/programs/charmap.c:780
+#: locale/programs/charmap.c:821
#, c-format
msgid "syntax error in %s definition: %s"
msgstr "error de sintaxi a la definició %s: %s"
#: locale/programs/charmap.c:504 locale/programs/charmap.c:684
-#: locale/programs/charmap.c:780 locale/programs/repertoire.c:229
+#: locale/programs/charmap.c:781 locale/programs/repertoire.c:229
msgid "no symbolic name given"
msgstr "no s’ha indicat un nom simbòlic"
@@ -1833,14 +1835,14 @@ msgstr "manquen octets a la codificació del caràcter"
msgid "too many bytes in character encoding"
msgstr "sobren octets a la codificació del caràcter"
-#: locale/programs/charmap.c:591 locale/programs/charmap.c:739
-#: locale/programs/charmap.c:822 locale/programs/repertoire.c:295
+#: locale/programs/charmap.c:591 locale/programs/charmap.c:740
+#: locale/programs/charmap.c:823 locale/programs/repertoire.c:295
msgid "no symbolic name given for end of range"
msgstr "no s’ha indicat un nom simbòlic per a la fi del rang"
#: locale/programs/charmap.c:615 locale/programs/ld-address.c:524
#: locale/programs/ld-collate.c:2616 locale/programs/ld-collate.c:3774
-#: locale/programs/ld-ctype.c:2117 locale/programs/ld-ctype.c:2829
+#: locale/programs/ld-ctype.c:2118 locale/programs/ld-ctype.c:2830
#: locale/programs/ld-identification.c:397
#: locale/programs/ld-measurement.c:213 locale/programs/ld-messages.c:295
#: locale/programs/ld-monetary.c:748 locale/programs/ld-name.c:262
@@ -1856,40 +1858,40 @@ msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
msgstr "només es permeten definicions WIDTH després de la definició CHARMAP"
# El primer és el nom d'una variable (en majúscules). ivb
-#: locale/programs/charmap.c:656 locale/programs/charmap.c:719
+#: locale/programs/charmap.c:656 locale/programs/charmap.c:720
#, c-format
msgid "value for %s must be an integer"
msgstr "el valor de %s ha de ser un enter"
-#: locale/programs/charmap.c:847
+#: locale/programs/charmap.c:848
#, c-format
msgid "%s: error in state machine"
msgstr "%s: error a la màquina d’estats"
-#: locale/programs/charmap.c:855 locale/programs/ld-address.c:540
+#: locale/programs/charmap.c:856 locale/programs/ld-address.c:540
#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967
-#: locale/programs/ld-ctype.c:2114 locale/programs/ld-ctype.c:2846
+#: locale/programs/ld-ctype.c:2115 locale/programs/ld-ctype.c:2847
#: locale/programs/ld-identification.c:413
#: locale/programs/ld-measurement.c:229 locale/programs/ld-messages.c:311
#: locale/programs/ld-monetary.c:764 locale/programs/ld-name.c:278
#: locale/programs/ld-numeric.c:341 locale/programs/ld-paper.c:228
#: locale/programs/ld-telephone.c:292 locale/programs/ld-time.c:990
-#: locale/programs/locfile.c:997 locale/programs/repertoire.c:323
+#: locale/programs/locfile.c:1010 locale/programs/repertoire.c:323
#, c-format
msgid "%s: premature end of file"
msgstr "%s: final prematur del fitxer"
-#: locale/programs/charmap.c:874 locale/programs/charmap.c:885
+#: locale/programs/charmap.c:875 locale/programs/charmap.c:886
#, c-format
msgid "unknown character `%s'"
msgstr "el caràcter «%s» no és conegut"
-#: locale/programs/charmap.c:893
+#: locale/programs/charmap.c:894
#, c-format
msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d"
msgstr "el nombre d’octets de les seqüències d’inici i final del rang no són iguals: %d i %d"
-#: locale/programs/charmap.c:998 locale/programs/ld-collate.c:2893
+#: locale/programs/charmap.c:999 locale/programs/ld-collate.c:2893
#: locale/programs/repertoire.c:418
msgid "invalid names for character range"
msgstr "els noms del rang de caràcters no són vàlids"
@@ -1897,20 +1899,20 @@ msgstr "els noms del rang de caràcters no són vàlids"
# ivb (2001/11/05)
# ivb El rang també pot contenir dígits. El text original pot fer pensar
# ivb que _només_ s'accepten lletres majúscules.
-#: locale/programs/charmap.c:1010 locale/programs/repertoire.c:430
+#: locale/programs/charmap.c:1011 locale/programs/repertoire.c:430
msgid "hexadecimal range format should use only capital characters"
msgstr "les lletres emprades en un rang amb format hexadecimal han de ser majúscules"
-#: locale/programs/charmap.c:1028 locale/programs/repertoire.c:448
+#: locale/programs/charmap.c:1029 locale/programs/repertoire.c:448
#, c-format
msgid "<%s> and <%s> are invalid names for range"
msgstr "<%s> i <%s> no són noms de rang vàlids"
-#: locale/programs/charmap.c:1034 locale/programs/repertoire.c:455
+#: locale/programs/charmap.c:1035 locale/programs/repertoire.c:455
msgid "upper limit in range is smaller than lower limit"
msgstr "el límit superior del rang és menor que l’inferior"
-#: locale/programs/charmap.c:1092
+#: locale/programs/charmap.c:1093
msgid "resulting bytes for range not representable."
msgstr "els octets resultants del rang no són representables"
@@ -1983,7 +1985,7 @@ msgid "%s: numeric country code `%d' not valid"
msgstr "%s: el codi numèric de país «%d» no és vàlid"
#: locale/programs/ld-address.c:432 locale/programs/ld-address.c:469
-#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2478
+#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2479
#: locale/programs/ld-identification.c:309
#: locale/programs/ld-measurement.c:196 locale/programs/ld-messages.c:264
#: locale/programs/ld-monetary.c:503 locale/programs/ld-monetary.c:538
@@ -2006,7 +2008,7 @@ msgid "%s: unknown character in field `%s'"
msgstr "%s: el camp «%s» conté un caràcter desconegut"
#: locale/programs/ld-address.c:521 locale/programs/ld-collate.c:3772
-#: locale/programs/ld-ctype.c:2826 locale/programs/ld-identification.c:394
+#: locale/programs/ld-ctype.c:2827 locale/programs/ld-identification.c:394
#: locale/programs/ld-measurement.c:210 locale/programs/ld-messages.c:293
#: locale/programs/ld-monetary.c:746 locale/programs/ld-name.c:260
#: locale/programs/ld-numeric.c:323 locale/programs/ld-paper.c:210
@@ -2019,8 +2021,8 @@ msgstr "%s: la línia «END» és incompleta"
#: locale/programs/ld-collate.c:602 locale/programs/ld-collate.c:898
#: locale/programs/ld-collate.c:911 locale/programs/ld-collate.c:2582
#: locale/programs/ld-collate.c:2603 locale/programs/ld-collate.c:3957
-#: locale/programs/ld-ctype.c:1846 locale/programs/ld-ctype.c:2104
-#: locale/programs/ld-ctype.c:2676 locale/programs/ld-ctype.c:2837
+#: locale/programs/ld-ctype.c:1847 locale/programs/ld-ctype.c:2105
+#: locale/programs/ld-ctype.c:2677 locale/programs/ld-ctype.c:2838
#: locale/programs/ld-identification.c:404
#: locale/programs/ld-measurement.c:220 locale/programs/ld-messages.c:302
#: locale/programs/ld-monetary.c:755 locale/programs/ld-name.c:269
@@ -2364,131 +2366,131 @@ msgstr "el mapa de caràcters «%s» ja ha estat definit"
msgid "implementation limit: no more than %d character maps allowed"
msgstr "límit d’implementació: no es permeten més de %d taules de caràcters"
-#: locale/programs/ld-ctype.c:1434 locale/programs/ld-ctype.c:1559
-#: locale/programs/ld-ctype.c:1665 locale/programs/ld-ctype.c:2341
-#: locale/programs/ld-ctype.c:3299
+#: locale/programs/ld-ctype.c:1435 locale/programs/ld-ctype.c:1560
+#: locale/programs/ld-ctype.c:1666 locale/programs/ld-ctype.c:2342
+#: locale/programs/ld-ctype.c:3302
#, c-format
msgid "%s: field `%s' does not contain exactly ten entries"
msgstr "%s: el camp «%s» no conté deu entrades exactament"
-#: locale/programs/ld-ctype.c:1462 locale/programs/ld-ctype.c:2036
+#: locale/programs/ld-ctype.c:1463 locale/programs/ld-ctype.c:2037
#, c-format
msgid "to-value <U%0*X> of range is smaller than from-value <U%0*X>"
msgstr "el valor final <U%0*X> del rang és menor que l’inicial <U%0*X>"
-#: locale/programs/ld-ctype.c:1589
+#: locale/programs/ld-ctype.c:1590
msgid "start and end character sequence of range must have the same length"
msgstr "les seqüències de caràcters inicial i final del rang han de tenir la mateixa longitud"
-#: locale/programs/ld-ctype.c:1596
+#: locale/programs/ld-ctype.c:1597
msgid "to-value character sequence is smaller than from-value sequence"
msgstr "la seqüència de caràcters final és menor que la seqüència inicial"
-#: locale/programs/ld-ctype.c:1956 locale/programs/ld-ctype.c:2007
+#: locale/programs/ld-ctype.c:1957 locale/programs/ld-ctype.c:2008
msgid "premature end of `translit_ignore' definition"
msgstr "fi prematura de la definició «translit_ignore»"
-#: locale/programs/ld-ctype.c:1962 locale/programs/ld-ctype.c:2013
-#: locale/programs/ld-ctype.c:2055
+#: locale/programs/ld-ctype.c:1963 locale/programs/ld-ctype.c:2014
+#: locale/programs/ld-ctype.c:2056
msgid "syntax error"
msgstr "error de sintaxi"
-#: locale/programs/ld-ctype.c:2188
+#: locale/programs/ld-ctype.c:2189
#, c-format
msgid "%s: syntax error in definition of new character class"
msgstr "%s: error de sintaxi a la definició de nova classe de caràcters"
-#: locale/programs/ld-ctype.c:2203
+#: locale/programs/ld-ctype.c:2204
#, c-format
msgid "%s: syntax error in definition of new character map"
msgstr "%s: error de sintaxi a la definició de nou mapa de caràcters"
-#: locale/programs/ld-ctype.c:2363
+#: locale/programs/ld-ctype.c:2364
msgid "ellipsis range must be marked by two operands of same type"
msgstr "el rang amb el·lipsi ha d’estar marcat per dos operands del mateix tipus"
-#: locale/programs/ld-ctype.c:2372
+#: locale/programs/ld-ctype.c:2373
msgid "with symbolic name range values the absolute ellipsis `...' must not be used"
msgstr "no s’ha d’emprar l’el·lipsi absoluta «...» amb els valors de rang de noms simbòlics"
-#: locale/programs/ld-ctype.c:2387
+#: locale/programs/ld-ctype.c:2388
msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'"
msgstr "cal emprar l’el·lipsi simbòlica hexadecimal «..» amb els valors de rang UCS"
-#: locale/programs/ld-ctype.c:2401
+#: locale/programs/ld-ctype.c:2402
msgid "with character code range values one must use the absolute ellipsis `...'"
msgstr "cal emprar l’el·lipsi absoluta «...» amb els valors de rang de codis de caràcters"
-#: locale/programs/ld-ctype.c:2552
+#: locale/programs/ld-ctype.c:2553
#, c-format
msgid "duplicated definition for mapping `%s'"
msgstr "la definició del mapa «%s» és duplicada"
-#: locale/programs/ld-ctype.c:2638 locale/programs/ld-ctype.c:2782
+#: locale/programs/ld-ctype.c:2639 locale/programs/ld-ctype.c:2783
#, c-format
msgid "%s: `translit_start' section does not end with `translit_end'"
msgstr "%s: la secció «translit_start» no acaba amb «translit_end»"
-#: locale/programs/ld-ctype.c:2733
+#: locale/programs/ld-ctype.c:2734
#, c-format
msgid "%s: duplicate `default_missing' definition"
msgstr "%s: la definició de «default_missing» és duplicada"
-#: locale/programs/ld-ctype.c:2738
+#: locale/programs/ld-ctype.c:2739
msgid "previous definition was here"
msgstr "la definició prèvia es troba ací"
-#: locale/programs/ld-ctype.c:2760
+#: locale/programs/ld-ctype.c:2761
#, c-format
msgid "%s: no representable `default_missing' definition found"
msgstr "%s: no s’ha trobat cap definició representable de «default_missing»"
-#: locale/programs/ld-ctype.c:2877 locale/programs/ld-ctype.c:2973
-#: locale/programs/ld-ctype.c:2992 locale/programs/ld-ctype.c:3012
-#: locale/programs/ld-ctype.c:3032 locale/programs/ld-ctype.c:3052
-#: locale/programs/ld-ctype.c:3072 locale/programs/ld-ctype.c:3111
-#: locale/programs/ld-ctype.c:3131 locale/programs/ld-ctype.c:3195
-#: locale/programs/ld-ctype.c:3236 locale/programs/ld-ctype.c:3259
+#: locale/programs/ld-ctype.c:2878 locale/programs/ld-ctype.c:2974
+#: locale/programs/ld-ctype.c:2993 locale/programs/ld-ctype.c:3013
+#: locale/programs/ld-ctype.c:3033 locale/programs/ld-ctype.c:3053
+#: locale/programs/ld-ctype.c:3073 locale/programs/ld-ctype.c:3112
+#: locale/programs/ld-ctype.c:3132 locale/programs/ld-ctype.c:3198
+#: locale/programs/ld-ctype.c:3239 locale/programs/ld-ctype.c:3262
#, c-format
msgid "%s: character `%s' not defined while needed as default value"
msgstr "%s: el caràcter «%s», necessari com a valor per defecte, no ha estat definit"
-#: locale/programs/ld-ctype.c:2882 locale/programs/ld-ctype.c:2978
-#: locale/programs/ld-ctype.c:2997 locale/programs/ld-ctype.c:3017
-#: locale/programs/ld-ctype.c:3037 locale/programs/ld-ctype.c:3057
-#: locale/programs/ld-ctype.c:3077 locale/programs/ld-ctype.c:3116
-#: locale/programs/ld-ctype.c:3136 locale/programs/ld-ctype.c:3200
+#: locale/programs/ld-ctype.c:2883 locale/programs/ld-ctype.c:2979
+#: locale/programs/ld-ctype.c:2998 locale/programs/ld-ctype.c:3018
+#: locale/programs/ld-ctype.c:3038 locale/programs/ld-ctype.c:3058
+#: locale/programs/ld-ctype.c:3078 locale/programs/ld-ctype.c:3117
+#: locale/programs/ld-ctype.c:3137 locale/programs/ld-ctype.c:3203
#, c-format
msgid "%s: character `%s' in charmap not representable with one byte"
msgstr "%s: el caràcter «%s» del mapa de caràcters no es pot representar amb un sol octet"
-#: locale/programs/ld-ctype.c:3242 locale/programs/ld-ctype.c:3265
+#: locale/programs/ld-ctype.c:3245 locale/programs/ld-ctype.c:3268
#, c-format
msgid "%s: character `%s' needed as default value not representable with one byte"
msgstr "%s: el caràcter «%s», necessari com a valor per defecte, no es pot representar amb un sol octet"
-#: locale/programs/ld-ctype.c:3321
+#: locale/programs/ld-ctype.c:3324
msgid "no output digits defined and none of the standard names in the charmap"
msgstr "no s’han definit dígits d’eixida i cap dels noms estàndard es troba al mapa de caràcters"
-#: locale/programs/ld-ctype.c:3570
+#: locale/programs/ld-ctype.c:3573
#, c-format
msgid "%s: transliteration data from locale `%s' not available"
msgstr "%s: les dades de transliteració del locale «%s» no es troben disponibles"
-#: locale/programs/ld-ctype.c:3669
+#: locale/programs/ld-ctype.c:3672
#, fuzzy, c-format
#| msgid "%s: table for class \"%s\": %lu bytes\n"
msgid "%s: table for class \"%s\": %lu bytes"
msgstr "%s: taula de la classe «%s»: %lu octets\n"
-#: locale/programs/ld-ctype.c:3733
+#: locale/programs/ld-ctype.c:3736
#, fuzzy, c-format
#| msgid "%s: table for map \"%s\": %lu bytes\n"
msgid "%s: table for map \"%s\": %lu bytes"
msgstr "%s: taula del mapa «%s»: %lu octets\n"
-#: locale/programs/ld-ctype.c:3857
+#: locale/programs/ld-ctype.c:3860
#, fuzzy, c-format
#| msgid "%s: table for width: %lu bytes\n"
msgid "%s: table for width: %lu bytes"
@@ -2734,129 +2736,124 @@ msgstr ""
"NOM\n"
"[-a | -m]"
-#: locale/programs/locale.c:190
-#, c-format
-msgid "Cannot set LC_CTYPE to default locale"
-msgstr "no s’ha pogut establir LC_CTYPE al locale per defecte"
-
-#: locale/programs/locale.c:192
+#: locale/programs/locale.c:522
#, c-format
-msgid "Cannot set LC_MESSAGES to default locale"
-msgstr "no s’ha pogut establir LC_MESSAGES al locale per defecte"
-
-#: locale/programs/locale.c:205
-#, c-format
-msgid "Cannot set LC_COLLATE to default locale"
-msgstr "no s’ha pogut establir LC_COLLATE al locale per defecte"
+msgid "while preparing output"
+msgstr "en preparar l’eixida"
-#: locale/programs/locale.c:221
-#, c-format
-msgid "Cannot set LC_ALL to default locale"
+#: locale/programs/locale.c:998
+#, fuzzy, c-format
+#| msgid "Cannot set LC_ALL to default locale"
+msgid "Cannot set %s to default locale"
msgstr "no s’ha pogut establir LC_ALL al locale per defecte"
-#: locale/programs/locale.c:521
+#: locale/programs/locale.c:1096
#, c-format
-msgid "while preparing output"
-msgstr "en preparar l’eixida"
+msgid "warning: The LOCPATH variable is set to \"%s\"\n"
+msgstr ""
# Més ajudes. ivb
-#: locale/programs/localedef.c:112
+#: locale/programs/localedef.c:116
msgid "Input Files:"
msgstr "Fitxers d’entrada:"
-#: locale/programs/localedef.c:114
+#: locale/programs/localedef.c:118
msgid "Symbolic character names defined in FILE"
msgstr "Els noms simbòlics dels caràcters es defineixen al FITXER."
-#: locale/programs/localedef.c:116
+#: locale/programs/localedef.c:120
msgid "Source definitions are found in FILE"
msgstr "Les definicions font es troben al FITXER."
-#: locale/programs/localedef.c:118
+#: locale/programs/localedef.c:122
msgid "FILE contains mapping from symbolic names to UCS4 values"
msgstr "El FITXER conté un mapa de noms simbòlics a valors UCS4."
-#: locale/programs/localedef.c:122
+#: locale/programs/localedef.c:126
msgid "Create output even if warning messages were issued"
msgstr "Crea fitxers d’eixida encara que s’hagen emès missatges d’avís."
+#: locale/programs/localedef.c:128
+msgid "Do not create hard links between installed locales"
+msgstr ""
+
# ivb (2001/10/28)
# ivb Localedef crea diversos fitxers en un directori: és plural.
# ivb Però, el prefix és un prefix d'un camí, com «/usr/local» en
# ivb «/usr/local/share/doc».
-#: locale/programs/localedef.c:123
+#: locale/programs/localedef.c:129
msgid "Optional output file prefix"
msgstr "Prefix opcional dels fitxers d’eixida."
-#: locale/programs/localedef.c:124
+#: locale/programs/localedef.c:130
msgid "Strictly conform to POSIX"
msgstr "S’ajusta estrictament a POSIX."
-#: locale/programs/localedef.c:126
+#: locale/programs/localedef.c:132
msgid "Suppress warnings and information messages"
msgstr "Descarta els avisos i els missatges informatius."
-#: locale/programs/localedef.c:127
+#: locale/programs/localedef.c:133
msgid "Print more messages"
msgstr "Mostra més missatges."
-#: locale/programs/localedef.c:128 locale/programs/localedef.c:131
+#: locale/programs/localedef.c:134 locale/programs/localedef.c:137
#, fuzzy
#| msgid "warning: "
msgid "<warnings>"
msgstr "avís: "
-#: locale/programs/localedef.c:129
+#: locale/programs/localedef.c:135
msgid "Comma-separated list of warnings to disable; supported warnings are: ascii, intcurrsym"
msgstr ""
-#: locale/programs/localedef.c:132
+#: locale/programs/localedef.c:138
msgid "Comma-separated list of warnings to enable; supported warnings are: ascii, intcurrsym"
msgstr ""
-#: locale/programs/localedef.c:135
+#: locale/programs/localedef.c:141
msgid "Archive control:"
msgstr "Control d’arxius:"
-#: locale/programs/localedef.c:137
+#: locale/programs/localedef.c:143
msgid "Don't add new data to archive"
msgstr "No afegeix dades noves a l’arxiu."
-#: locale/programs/localedef.c:139
+#: locale/programs/localedef.c:145
msgid "Add locales named by parameters to archive"
msgstr "Afegeix a l’arxiu els locales esmentats pels paràmetres."
-#: locale/programs/localedef.c:140
+#: locale/programs/localedef.c:146
msgid "Replace existing archive content"
msgstr "Reemplaça el contingut existent a l’arxiu."
-#: locale/programs/localedef.c:142
+#: locale/programs/localedef.c:148
msgid "Remove locales named by parameters from archive"
msgstr "Elimina de l’arxiu els locales esmentats pels paràmetres."
-#: locale/programs/localedef.c:143
+#: locale/programs/localedef.c:149
msgid "List content of archive"
msgstr "Llista el contingut de l’arxiu."
-#: locale/programs/localedef.c:145
+#: locale/programs/localedef.c:151
msgid "locale.alias file to consult when making archive"
msgstr "Fitxer «locale.alias» a consultar en crear l’arxiu."
-#: locale/programs/localedef.c:147
+#: locale/programs/localedef.c:153
msgid "Generate little-endian output"
msgstr "Genera eixida littleâ€endian."
-#: locale/programs/localedef.c:149
+#: locale/programs/localedef.c:155
msgid "Generate big-endian output"
msgstr "Genera eixida bigâ€endian."
# ivb (2001/10/28)
# ivb Pose el punt final pq és la descripció curta de l'ordre.
-#: locale/programs/localedef.c:154
+#: locale/programs/localedef.c:160
msgid "Compile locale specification"
msgstr "Compila una especificació de locale."
-#: locale/programs/localedef.c:157
+#: locale/programs/localedef.c:163
msgid ""
"NAME\n"
"[--add-to-archive|--delete-from-archive] FILE...\n"
@@ -2866,33 +2863,33 @@ msgstr ""
"[--add-to-archive | --delete-from-archive] FITXER…\n"
"--list-archive [FITXER]"
-#: locale/programs/localedef.c:232
+#: locale/programs/localedef.c:238
#, c-format
msgid "cannot create directory for output files"
msgstr "no s’ha pogut crear el directori per als fitxers d’eixida"
-#: locale/programs/localedef.c:243
+#: locale/programs/localedef.c:249
msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
msgstr "FATAL: el sistema no defineix «_POSIX2_LOCALEDEF»"
-#: locale/programs/localedef.c:257 locale/programs/localedef.c:273
-#: locale/programs/localedef.c:663 locale/programs/localedef.c:683
+#: locale/programs/localedef.c:263 locale/programs/localedef.c:279
+#: locale/programs/localedef.c:673 locale/programs/localedef.c:693
#, c-format
msgid "cannot open locale definition file `%s'"
msgstr "no s’ha pogut obrir el fitxer «%s» de definició del locale"
-#: locale/programs/localedef.c:297
+#: locale/programs/localedef.c:303
#, c-format
msgid "cannot write output files to `%s'"
msgstr "no s’han pogut escriure els fitxers d’eixida a «%s»"
-#: locale/programs/localedef.c:303
+#: locale/programs/localedef.c:309
#, fuzzy
#| msgid "no output file produced because warnings were issued"
msgid "no output file produced because errors were issued"
msgstr "no s’ha generat el fitxer d’eixida perquè s’han produït avisos"
-#: locale/programs/localedef.c:431
+#: locale/programs/localedef.c:441
#, c-format
msgid ""
"System's directory for character maps : %s\n"
@@ -2905,11 +2902,11 @@ msgstr ""
" camí als locales : %s\n"
"%s"
-#: locale/programs/localedef.c:631
+#: locale/programs/localedef.c:641
msgid "circular dependencies between locale definitions"
msgstr "hi ha dependències circulars entre les definicions dels locales"
-#: locale/programs/localedef.c:637
+#: locale/programs/localedef.c:647
#, c-format
msgid "cannot add already read locale `%s' a second time"
msgstr "no es pot afegir una altra volta el locale ja llegit «%s»"
@@ -3071,24 +3068,24 @@ msgstr "no s’ha pogut obrir el fitxer d’eixida «%s» de la categoria «%s»
msgid "failure while writing data for category `%s'"
msgstr "no s’han pogut escriure les dades de la categoria «%s»"
-#: locale/programs/locfile.c:917
+#: locale/programs/locfile.c:930
#, c-format
msgid "cannot create output file `%s' for category `%s'"
msgstr "no s’ha pogut crear el fitxer d’eixida «%s» de la categoria «%s»"
-#: locale/programs/locfile.c:953
+#: locale/programs/locfile.c:966
msgid "expecting string argument for `copy'"
msgstr "cal una cadena com a argument de «copy»"
-#: locale/programs/locfile.c:957
+#: locale/programs/locfile.c:970
msgid "locale name should consist only of portable characters"
msgstr "el nom del locale només ha de contenir caràcters portables"
-#: locale/programs/locfile.c:976
+#: locale/programs/locfile.c:989
msgid "no other keyword shall be specified when `copy' is used"
msgstr "no s’ha d’indicar cap altra paraula clau quan s’empre «copy»"
-#: locale/programs/locfile.c:990
+#: locale/programs/locfile.c:1003
#, c-format
msgid "`%1$s' definition does not end with `END %1$s'"
msgstr "la definició «%1$s» no acaba en «END %1$s»"
@@ -3943,13 +3940,13 @@ msgid "yp_update: cannot get server address\n"
msgstr "yp_update: no s’ha pogut obtenir l’adreça del servidor\n"
# El nom de la base de dades s’usa més a sovint que la descripció. ivb
-#: nscd/aicache.c:83 nscd/hstcache.c:452
+#: nscd/aicache.c:82 nscd/hstcache.c:452
#, c-format
msgid "Haven't found \"%s\" in hosts cache!"
msgstr "no s’ha trobat «%s» a la memòria cau de «hosts»"
# El nom de la base de dades s’usa més a sovint que la descripció. ivb
-#: nscd/aicache.c:85 nscd/hstcache.c:454
+#: nscd/aicache.c:84 nscd/hstcache.c:454
#, c-format
msgid "Reloading \"%s\" in hosts cache!"
msgstr "es torna a carregar «%s» a la memòria cau de «hosts»"
@@ -4305,25 +4302,25 @@ msgid "no more memory for database '%s'"
msgstr "no resta memòria per a la base de dades «%s»"
# El nom de la base de dades s’usa més a sovint que la descripció. ivb
-#: nscd/netgroupcache.c:121
+#: nscd/netgroupcache.c:122
#, c-format
msgid "Haven't found \"%s\" in netgroup cache!"
msgstr "no s’ha trobat «%s» a la memòria cau de «netgroup»"
# El nom de la base de dades s’usa més a sovint que la descripció. ivb
-#: nscd/netgroupcache.c:123
+#: nscd/netgroupcache.c:124
#, c-format
msgid "Reloading \"%s\" in netgroup cache!"
msgstr "es torna a carregar «%s» a la memòria cau de «netgroup»"
# El nom de la base de dades s’usa més a sovint que la descripció. ivb
-#: nscd/netgroupcache.c:469
+#: nscd/netgroupcache.c:470
#, c-format
msgid "Haven't found \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr "no s’ha trobat «%s (%s,%s,%s)» a la memòria cau de «netgroup»"
# El nom de la base de dades s’usa més a sovint que la descripció. ivb
-#: nscd/netgroupcache.c:472
+#: nscd/netgroupcache.c:473
#, c-format
msgid "Reloading \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr "es torna a carregar «%s (%s,%s,%s)» a la memòria cau de «netgroup»"
@@ -4379,7 +4376,7 @@ msgstr "Empra una memòria cau diferent per a cada usuari."
msgid "Name Service Cache Daemon."
msgstr "Dimoni de memòria cau del servei de noms."
-#: nscd/nscd.c:155 nss/getent.c:967 nss/makedb.c:206
+#: nscd/nscd.c:155 nss/getent.c:987 nss/makedb.c:206
#, c-format
msgid "wrong number of arguments"
msgstr "el nombre d’arguments és incorrecte"
@@ -4487,27 +4484,27 @@ msgstr "error d’anàlisi: %s"
msgid "Must specify user name for server-user option"
msgstr "cal especificar un nom d’usuari per a l’opció «server-user»"
-#: nscd/nscd_conf.c:198
+#: nscd/nscd_conf.c:201
#, c-format
msgid "Must specify user name for stat-user option"
msgstr "cal especificar un nom d’usuari per a l’opció «stat-user»"
-#: nscd/nscd_conf.c:255
+#: nscd/nscd_conf.c:259
#, c-format
msgid "Must specify value for restart-interval option"
msgstr "cal especificar un valor per a l’opció «restart-interval»"
-#: nscd/nscd_conf.c:269
+#: nscd/nscd_conf.c:273
#, c-format
msgid "Unknown option: %s %s %s"
msgstr "l’opció no és coneguda: %s %s %s"
-#: nscd/nscd_conf.c:282
+#: nscd/nscd_conf.c:286
#, c-format
msgid "cannot get current working directory: %s; disabling paranoia mode"
msgstr "no s’ha pogut obtenir el directori de treball actual: %s; s’inhabilita el mode paranoic"
-#: nscd/nscd_conf.c:302
+#: nscd/nscd_conf.c:306
#, c-format
msgid "maximum file size for %s database too small"
msgstr "la mida màxima de fitxer per a la base de dades «%s» és massa menuda"
@@ -4777,48 +4774,48 @@ msgstr "no s’ha trobat «%s» a la memòria cau de «services»"
msgid "Reloading \"%s\" in services cache!"
msgstr "es torna a carregar «%s» a la memòria cau de «services»"
-#: nss/getent.c:54
+#: nss/getent.c:55
msgid "database [key ...]"
msgstr "BASE_DE_DADES [CLAU…]"
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "CONFIG"
msgstr "CONFIG"
# Més ajudes. ivb
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "Service configuration to be used"
msgstr "Configuració a emprar del servei."
-#: nss/getent.c:60
+#: nss/getent.c:61
msgid "disable IDN encoding"
msgstr "Inhabilita la codificació IDN."
-#: nss/getent.c:65
+#: nss/getent.c:66
msgid "Get entries from administrative database."
msgstr "Obté entrades de les bases de dades d’administració."
-#: nss/getent.c:149 nss/getent.c:442 nss/getent.c:489
+#: nss/getent.c:150 nss/getent.c:462 nss/getent.c:509
#, c-format
msgid "Enumeration not supported on %s\n"
msgstr "no es permet l’enumeració sobre «%s»\n"
-#: nss/getent.c:497 nss/getent.c:510
+#: nss/getent.c:517 nss/getent.c:530
#, fuzzy, c-format
#| msgid "Could not create log file"
msgid "Could not allocate group list: %m\n"
msgstr "no s’ha pogut crear el fitxer de registre"
-#: nss/getent.c:881
+#: nss/getent.c:901
#, c-format
msgid "Unknown database name"
msgstr "el nom de la base de dades no és conegut"
-#: nss/getent.c:911
+#: nss/getent.c:931
msgid "Supported databases:\n"
msgstr "Bases de dades acceptades:\n"
-#: nss/getent.c:977
+#: nss/getent.c:997
#, c-format
msgid "Unknown database: %s\n"
msgstr "la base de dades no és coneguda: %s\n"
@@ -5084,11 +5081,11 @@ msgstr "L’expressió regular és massa llarga"
msgid "Unmatched ) or \\)"
msgstr "«)» o «\\)» desaparellat"
-#: posix/regcomp.c:689
+#: posix/regcomp.c:676
msgid "No previous regular expression"
msgstr "No hi ha expressió regular prèvia"
-#: posix/wordexp.c:1815
+#: posix/wordexp.c:1816
msgid "parameter null or not set"
msgstr "el paràmetre és nul o no s’ha establert"
@@ -5276,7 +5273,7 @@ msgstr "Hi ha memòria intermèdia disponible a l’eixida"
msgid "Input message available"
msgstr "Hi ha un missatge disponible a l’entrada"
-#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:381 timezone/zic.c:520
+#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:375 timezone/zic.c:561
msgid "I/O error"
msgstr "Error d’E/S"
@@ -5359,7 +5356,7 @@ msgstr "Senyal desconegut %d"
#: sunrpc/auth_unix.c:112 sunrpc/clnt_tcp.c:124 sunrpc/clnt_udp.c:139
#: sunrpc/clnt_unix.c:125 sunrpc/svc_tcp.c:189 sunrpc/svc_tcp.c:233
#: sunrpc/svc_udp.c:161 sunrpc/svc_unix.c:189 sunrpc/svc_unix.c:229
-#: sunrpc/xdr.c:628 sunrpc/xdr.c:788 sunrpc/xdr_array.c:102
+#: sunrpc/xdr.c:631 sunrpc/xdr.c:791 sunrpc/xdr_array.c:102
#: sunrpc/xdr_rec.c:153 sunrpc/xdr_ref.c:79
msgid "out of memory\n"
msgstr "no resta memòria\n"
@@ -6649,56 +6646,69 @@ msgstr "Ara sí que te l’has carregat"
# ivb (2001/11/05)
# ivb Ací qualsevol posa el que li dóna la gana, sembla!
#. TRANS Go home and have a glass of warm, dairy-fresh milk.
-#: sysdeps/gnu/errlist.c:978
+#. TRANS @c Okay. Since you are dying to know, I'll tell you.
+#. TRANS @c This is a joke, obviously. There is a children's song which begins,
+#. TRANS @c "Old McDonald had a farm, e-i-e-i-o." Every time I see the (real)
+#. TRANS @c errno macro EIO, I think about that song. Probably most of my
+#. TRANS @c compatriots who program on Unix do, too. One of them must have stayed
+#. TRANS @c up a little too late one night and decided to add it to Hurd or Glibc.
+#. TRANS @c Whoever did it should be castigated, but it made me laugh.
+#. TRANS @c --jtobey@channel1.com
+#. TRANS @c
+#. TRANS @c "bought the farm" means "died". -jtobey
+#. TRANS @c
+#. TRANS @c Translators, please do not translate this litteraly, translate it into
+#. TRANS @c an idiomatic funny way of saying that the computer died.
+#: sysdeps/gnu/errlist.c:991
msgid "Computer bought the farm"
msgstr "El tio Pep se’n va a Murooo, tio Peeep"
#. TRANS This error code has no purpose.
-#: sysdeps/gnu/errlist.c:987
+#: sysdeps/gnu/errlist.c:1000
msgid "Gratuitous error"
msgstr "Error injustificat"
-#: sysdeps/gnu/errlist.c:995
+#: sysdeps/gnu/errlist.c:1008
msgid "Bad message"
msgstr "El missatge no és vàlid"
-#: sysdeps/gnu/errlist.c:1003
+#: sysdeps/gnu/errlist.c:1016
msgid "Identifier removed"
msgstr "L’identificador ha estat eliminat"
-#: sysdeps/gnu/errlist.c:1011
+#: sysdeps/gnu/errlist.c:1024
msgid "Multihop attempted"
msgstr "S’ha intentat un salt múltiple"
-#: sysdeps/gnu/errlist.c:1019
+#: sysdeps/gnu/errlist.c:1032
msgid "No data available"
msgstr "No hi ha dades disponibles"
-#: sysdeps/gnu/errlist.c:1027
+#: sysdeps/gnu/errlist.c:1040
msgid "Link has been severed"
msgstr "S’ha tallat l’enllaç"
-#: sysdeps/gnu/errlist.c:1035
+#: sysdeps/gnu/errlist.c:1048
msgid "No message of desired type"
msgstr "No hi ha missatges del tipus desitjat"
-#: sysdeps/gnu/errlist.c:1043
+#: sysdeps/gnu/errlist.c:1056
msgid "Out of streams resources"
msgstr "No resten recursos del tipus flux"
-#: sysdeps/gnu/errlist.c:1051
+#: sysdeps/gnu/errlist.c:1064
msgid "Device not a stream"
msgstr "El dispositiu no és un flux"
-#: sysdeps/gnu/errlist.c:1059
+#: sysdeps/gnu/errlist.c:1072
msgid "Value too large for defined data type"
msgstr "El valor és massa gran per al tipus de dada definit"
-#: sysdeps/gnu/errlist.c:1067
+#: sysdeps/gnu/errlist.c:1080
msgid "Protocol error"
msgstr "Error de protocol"
-#: sysdeps/gnu/errlist.c:1075
+#: sysdeps/gnu/errlist.c:1088
msgid "Timer expired"
msgstr "El temporitzador ha expirat"
@@ -6706,92 +6716,92 @@ msgstr "El temporitzador ha expirat"
#. TRANS completed. @xref{Asynchronous I/O}. When you call @code{aio_cancel},
#. TRANS the normal result is for the operations affected to complete with this
#. TRANS error; @pxref{Cancel AIO Operations}.
-#: sysdeps/gnu/errlist.c:1087
+#: sysdeps/gnu/errlist.c:1100
msgid "Operation canceled"
msgstr "L’operació ha estat cancel·lada"
-#: sysdeps/gnu/errlist.c:1095
+#: sysdeps/gnu/errlist.c:1108
msgid "Owner died"
msgstr "El propietari ha mort"
-#: sysdeps/gnu/errlist.c:1103
+#: sysdeps/gnu/errlist.c:1116
msgid "State not recoverable"
msgstr "L’estat no és recuperable"
-#: sysdeps/gnu/errlist.c:1111
+#: sysdeps/gnu/errlist.c:1124
msgid "Interrupted system call should be restarted"
msgstr "Caldria reiniciar la crida al sistema interrompuda"
-#: sysdeps/gnu/errlist.c:1119
+#: sysdeps/gnu/errlist.c:1132
msgid "Channel number out of range"
msgstr "El número de canal és fora de rang"
-#: sysdeps/gnu/errlist.c:1127
+#: sysdeps/gnu/errlist.c:1140
msgid "Level 2 not synchronized"
msgstr "El nivell 2 no està sincronitzat"
-#: sysdeps/gnu/errlist.c:1135
+#: sysdeps/gnu/errlist.c:1148
msgid "Level 3 halted"
msgstr "S’ha aturat el nivell 3"
-#: sysdeps/gnu/errlist.c:1143
+#: sysdeps/gnu/errlist.c:1156
msgid "Level 3 reset"
msgstr "S’ha reiniciat el nivell 3"
-#: sysdeps/gnu/errlist.c:1151
+#: sysdeps/gnu/errlist.c:1164
msgid "Link number out of range"
msgstr "El nombre d’enllaços és fora de rang"
-#: sysdeps/gnu/errlist.c:1159
+#: sysdeps/gnu/errlist.c:1172
msgid "Protocol driver not attached"
msgstr "No hi ha programa de control associat al protocol"
-#: sysdeps/gnu/errlist.c:1167
+#: sysdeps/gnu/errlist.c:1180
msgid "No CSI structure available"
msgstr "No hi ha estructures CSI disponibles"
-#: sysdeps/gnu/errlist.c:1175
+#: sysdeps/gnu/errlist.c:1188
msgid "Level 2 halted"
msgstr "S’ha aturat el nivell 2"
-#: sysdeps/gnu/errlist.c:1183
+#: sysdeps/gnu/errlist.c:1196
msgid "Invalid exchange"
msgstr "L’intercanvi no és vàlid"
-#: sysdeps/gnu/errlist.c:1191
+#: sysdeps/gnu/errlist.c:1204
msgid "Invalid request descriptor"
msgstr "El descriptor de petició no és vàlid"
-#: sysdeps/gnu/errlist.c:1199
+#: sysdeps/gnu/errlist.c:1212
msgid "Exchange full"
msgstr "L’intercanvi és ple"
# Algun sistema de fitxers té nodes-a a banda de nodes-i. ivb
-#: sysdeps/gnu/errlist.c:1207
+#: sysdeps/gnu/errlist.c:1220
msgid "No anode"
msgstr "No hi ha nodeâ€a"
-#: sysdeps/gnu/errlist.c:1215
+#: sysdeps/gnu/errlist.c:1228
msgid "Invalid request code"
msgstr "El codi de petició no és vàlid"
-#: sysdeps/gnu/errlist.c:1223
+#: sysdeps/gnu/errlist.c:1236
msgid "Invalid slot"
msgstr "La ranura no és vàlida"
-#: sysdeps/gnu/errlist.c:1231
+#: sysdeps/gnu/errlist.c:1244
msgid "File locking deadlock error"
msgstr "Interbloqueig pel blocatge d’un fitxer"
-#: sysdeps/gnu/errlist.c:1239
+#: sysdeps/gnu/errlist.c:1252
msgid "Bad font file format"
msgstr "El fitxer de tipus de lletra no té un format vàlid"
-#: sysdeps/gnu/errlist.c:1247
+#: sysdeps/gnu/errlist.c:1260
msgid "Machine is not on the network"
msgstr "La màquina no es troba a la xarxa"
-#: sysdeps/gnu/errlist.c:1255
+#: sysdeps/gnu/errlist.c:1268
msgid "Package not installed"
msgstr "El paquet no es troba instal·lat"
@@ -6800,108 +6810,108 @@ msgstr "El paquet no es troba instal·lat"
# ivb es pot entendre «advertise» com el fet d'exportar recurs pel
# ivb seu ús en un sistema de fitxers remot. Gràcies als amics del
# ivb de.po!!
-#: sysdeps/gnu/errlist.c:1263
+#: sysdeps/gnu/errlist.c:1276
msgid "Advertise error"
msgstr "Error d’exportació"
-#: sysdeps/gnu/errlist.c:1271
+#: sysdeps/gnu/errlist.c:1284
msgid "Srmount error"
msgstr "Error a «srmount»"
-#: sysdeps/gnu/errlist.c:1279
+#: sysdeps/gnu/errlist.c:1292
msgid "Communication error on send"
msgstr "Error de comunicacions a l’enviament"
-#: sysdeps/gnu/errlist.c:1287
+#: sysdeps/gnu/errlist.c:1300
msgid "RFS specific error"
msgstr "Error específic d’RFS"
-#: sysdeps/gnu/errlist.c:1295
+#: sysdeps/gnu/errlist.c:1308
msgid "Name not unique on network"
msgstr "El nom no és únic a la xarxa"
-#: sysdeps/gnu/errlist.c:1303
+#: sysdeps/gnu/errlist.c:1316
msgid "File descriptor in bad state"
msgstr "El descriptor de fitxer és fet malbé"
-#: sysdeps/gnu/errlist.c:1311
+#: sysdeps/gnu/errlist.c:1324
msgid "Remote address changed"
msgstr "L’adreça remota ha canviat"
-#: sysdeps/gnu/errlist.c:1319
+#: sysdeps/gnu/errlist.c:1332
msgid "Can not access a needed shared library"
msgstr "No s’ha pogut accedir a una biblioteca compartida necessària"
-#: sysdeps/gnu/errlist.c:1327
+#: sysdeps/gnu/errlist.c:1340
msgid "Accessing a corrupted shared library"
msgstr "Accés una biblioteca compartida corrupta"
-#: sysdeps/gnu/errlist.c:1335
+#: sysdeps/gnu/errlist.c:1348
msgid ".lib section in a.out corrupted"
msgstr "La secció «.lib» del «a.out» és corrupta"
-#: sysdeps/gnu/errlist.c:1343
+#: sysdeps/gnu/errlist.c:1356
msgid "Attempting to link in too many shared libraries"
msgstr "S’ha intentat enllaçar massa biblioteques compartides"
-#: sysdeps/gnu/errlist.c:1351
+#: sysdeps/gnu/errlist.c:1364
msgid "Cannot exec a shared library directly"
msgstr "No es pot executar directament una biblioteca compartida"
-#: sysdeps/gnu/errlist.c:1359
+#: sysdeps/gnu/errlist.c:1372
msgid "Streams pipe error"
msgstr "Error a la canonada entre fluxos"
-#: sysdeps/gnu/errlist.c:1367
+#: sysdeps/gnu/errlist.c:1380
msgid "Structure needs cleaning"
msgstr "L’estructura necessita una neteja"
-#: sysdeps/gnu/errlist.c:1375
+#: sysdeps/gnu/errlist.c:1388
msgid "Not a XENIX named type file"
msgstr "El fitxer no és d’un tipus XENIX amb nom"
-#: sysdeps/gnu/errlist.c:1383
+#: sysdeps/gnu/errlist.c:1396
msgid "No XENIX semaphores available"
msgstr "No hi ha semàfors XENIX disponibles"
-#: sysdeps/gnu/errlist.c:1391
+#: sysdeps/gnu/errlist.c:1404
msgid "Is a named type file"
msgstr "El fitxer és d’un tipus amb nom"
-#: sysdeps/gnu/errlist.c:1399
+#: sysdeps/gnu/errlist.c:1412
msgid "Remote I/O error"
msgstr "Error en una E/S remota"
-#: sysdeps/gnu/errlist.c:1407
+#: sysdeps/gnu/errlist.c:1420
msgid "No medium found"
msgstr "No s’ha trobat el mitjà"
-#: sysdeps/gnu/errlist.c:1415
+#: sysdeps/gnu/errlist.c:1428
msgid "Wrong medium type"
msgstr "El tipus de mitjà no és vàlid"
-#: sysdeps/gnu/errlist.c:1423
+#: sysdeps/gnu/errlist.c:1436
msgid "Required key not available"
msgstr "La clau requerida no es troba disponible"
-#: sysdeps/gnu/errlist.c:1431
+#: sysdeps/gnu/errlist.c:1444
msgid "Key has expired"
msgstr "La clau ha expirat"
-#: sysdeps/gnu/errlist.c:1439
+#: sysdeps/gnu/errlist.c:1452
msgid "Key has been revoked"
msgstr "La clau ha estat revocada"
-#: sysdeps/gnu/errlist.c:1447
+#: sysdeps/gnu/errlist.c:1460
msgid "Key was rejected by service"
msgstr "El servei ha rebutjat la clau"
# RFKill és el nom d’un subsistema de Linux. ivb
-#: sysdeps/gnu/errlist.c:1455
+#: sysdeps/gnu/errlist.c:1468
msgid "Operation not possible due to RF-kill"
msgstr "L’operació no és possible a causa de RFKill"
-#: sysdeps/gnu/errlist.c:1463
+#: sysdeps/gnu/errlist.c:1476
msgid "Memory page has hardware error"
msgstr "La pàgina de memòria té un error de maquinari"
@@ -7033,33 +7043,33 @@ msgstr ""
msgid "can't disable CET"
msgstr ""
-#: timezone/zdump.c:338
+#: timezone/zdump.c:332
#, fuzzy
#| msgid "has fewer than 3 alphabetics"
msgid "has fewer than 3 characters"
msgstr "té menys de 3 caràcters alfabètics"
-#: timezone/zdump.c:340
+#: timezone/zdump.c:334
#, fuzzy
#| msgid "has more than 6 alphabetics"
msgid "has more than 6 characters"
msgstr "té més de 6 caràcters alfabètics"
-#: timezone/zdump.c:342
+#: timezone/zdump.c:336
msgid "has characters other than ASCII alphanumerics, '-' or '+'"
msgstr ""
# FIXME: language-dependent
# La cadena final és una de les anteriors. ivb
-#: timezone/zdump.c:347
+#: timezone/zdump.c:341
#, c-format
msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n"
msgstr "%1$s: avís: l’abreviatura «%3$s» de la zona «%2$s» %4$s\n"
-#: timezone/zdump.c:393
+#: timezone/zdump.c:387
#, c-format
msgid ""
-"%s: usage: %s OPTIONS ZONENAME ...\n"
+"%s: usage: %s OPTIONS TIMEZONE ...\n"
"Options include:\n"
" -c [L,]U Start at year L (default -500), end before year U (default 2500)\n"
" -t [L,]U Start at time L, end before time U (in seconds since 1970)\n"
@@ -7072,46 +7082,52 @@ msgid ""
"Report bugs to %s.\n"
msgstr ""
-#: timezone/zdump.c:479
+#: timezone/zdump.c:473
#, c-format
msgid "%s: wild -c argument %s\n"
msgstr "%s: l’argument de l’opció «-c» no és vàlid: %s\n"
-#: timezone/zdump.c:512
+#: timezone/zdump.c:506
#, c-format
msgid "%s: wild -t argument %s\n"
msgstr "%s: l’argument de l’opció «-t» no és vàlid: %s\n"
-#: timezone/zic.c:398
+#: timezone/zic.c:429
#, c-format
msgid "%s: Memory exhausted: %s\n"
msgstr "%s: la memòria s’ha exhaurit: %s\n"
-#: timezone/zic.c:406
+#: timezone/zic.c:437
#, fuzzy
#| msgid "time overflow"
msgid "size overflow"
msgstr "desbordament de l’hora"
-#: timezone/zic.c:454
+#: timezone/zic.c:447
+#, fuzzy
+#| msgid "time overflow"
+msgid "alignment overflow"
+msgstr "desbordament de l’hora"
+
+#: timezone/zic.c:495
#, fuzzy
#| msgid "Integer overflow"
msgid "integer overflow"
msgstr "Desbordament enter"
-#: timezone/zic.c:488
+#: timezone/zic.c:529
#, fuzzy, c-format
#| msgid "\"%s\", line %d: "
msgid "\"%s\", line %<PRIdMAX>: "
msgstr "«%s», línia %d: "
-#: timezone/zic.c:491
+#: timezone/zic.c:532
#, fuzzy, c-format
#| msgid " (rule from \"%s\", line %d)"
msgid " (rule from \"%s\", line %<PRIdMAX>)"
msgstr " (regla de «%s», línia %d)"
-#: timezone/zic.c:510
+#: timezone/zic.c:551
#, c-format
msgid "warning: "
msgstr "avís: "
@@ -7120,7 +7136,7 @@ msgstr "avís: "
# ivb Deixe algunes paraules per traduir perquè es refereixen a paraules
# ivb reservades dels fitxers amb què treballa zic.
# Sembla que la barra al final de la línia no pinta res. ivb
-#: timezone/zic.c:535
+#: timezone/zic.c:576
#, fuzzy, c-format
#| msgid ""
#| "%s: usage is %s [ --version ] [ --help ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n"
@@ -7130,7 +7146,7 @@ msgstr "avís: "
msgid ""
"%s: usage is %s [ --version ] [ --help ] [ -v ] \\\n"
"\t[ -l localtime ] [ -p posixrules ] [ -d directory ] \\\n"
-"\t[ -L leapseconds ] [ filename ... ]\n"
+"\t[ -t localtime-link ] [ -L leapseconds ] [ filename ... ]\n"
"\n"
"Report bugs to %s.\n"
msgstr ""
@@ -7140,413 +7156,443 @@ msgstr ""
"\n"
"Informeu dels errors a %s.\n"
-#: timezone/zic.c:558
+#: timezone/zic.c:599
#, fuzzy, c-format
#| msgid "%s: Can't create %s: %s\n"
msgid "%s: Can't chdir to %s: %s\n"
msgstr "%s: no s’ha pogut crear «%s»: %s\n"
-#: timezone/zic.c:590
+#: timezone/zic.c:632
msgid "wild compilation-time specification of zic_t"
msgstr "l’especificació de «zic_t» en temps de compilació no és vàlida"
-#: timezone/zic.c:610
+#: timezone/zic.c:652
#, c-format
msgid "%s: More than one -d option specified\n"
msgstr "%s: s’ha indicat l’opció «-d» més d’una volta\n"
-#: timezone/zic.c:620
+#: timezone/zic.c:662
#, c-format
msgid "%s: More than one -l option specified\n"
msgstr "%s: s’ha indicat l’opció «-l» més d’una volta\n"
-#: timezone/zic.c:630
+#: timezone/zic.c:672
#, c-format
msgid "%s: More than one -p option specified\n"
msgstr "%s: s’ha indicat l’opció «-p» més d’una volta\n"
-#: timezone/zic.c:640
+#: timezone/zic.c:680
+#, fuzzy, c-format
+#| msgid "%s: More than one -d option specified\n"
+msgid "%s: More than one -t option specified\n"
+msgstr "%s: s’ha indicat l’opció «-d» més d’una volta\n"
+
+#: timezone/zic.c:689
+msgid "-y is obsolescent"
+msgstr ""
+
+#: timezone/zic.c:693
#, c-format
msgid "%s: More than one -y option specified\n"
msgstr "%s: s’ha indicat l’opció «-y» més d’una volta\n"
-#: timezone/zic.c:650
+#: timezone/zic.c:703
#, c-format
msgid "%s: More than one -L option specified\n"
msgstr "%s: s’ha indicat l’opció «-L» més d’una volta\n"
-#: timezone/zic.c:659
+#: timezone/zic.c:712
msgid "-s ignored"
msgstr ""
-#: timezone/zic.c:698
+#: timezone/zic.c:753
msgid "link to link"
msgstr "enllaç a un altre enllaç"
-#: timezone/zic.c:701 timezone/zic.c:705
+#: timezone/zic.c:756 timezone/zic.c:760
#, fuzzy
#| msgid "Too many links"
msgid "command line"
msgstr "El fitxer té massa enllaços"
-#: timezone/zic.c:721
+#: timezone/zic.c:776
msgid "empty file name"
msgstr ""
-#: timezone/zic.c:724
+#: timezone/zic.c:779
#, c-format
msgid "file name '%s' begins with '/'"
msgstr ""
-#: timezone/zic.c:734
+#: timezone/zic.c:789
#, c-format
msgid "file name '%s' contains '%.*s' component"
msgstr ""
-#: timezone/zic.c:740
+#: timezone/zic.c:795
#, c-format
msgid "file name '%s' component contains leading '-'"
msgstr ""
-#: timezone/zic.c:743
+#: timezone/zic.c:798
#, c-format
msgid "file name '%s' contains overlength component '%.*s...'"
msgstr ""
-#: timezone/zic.c:771
+#: timezone/zic.c:826
#, c-format
msgid "file name '%s' contains byte '%c'"
msgstr ""
-#: timezone/zic.c:772
+#: timezone/zic.c:827
#, c-format
msgid "file name '%s' contains byte '\\%o'"
msgstr ""
-#: timezone/zic.c:842
+#: timezone/zic.c:897
#, fuzzy, c-format
#| msgid "Invalid link from \"%s\" to \"%s\": %s\n"
msgid "%s: link from %s/%s failed: %s\n"
msgstr "l’enllaç des de «%s» cap a «%s» no és vàlid: %s\n"
-#: timezone/zic.c:852 timezone/zic.c:1815
+#: timezone/zic.c:907 timezone/zic.c:1876
#, fuzzy, c-format
#| msgid "%s: Can't remove %s: %s\n"
msgid "%s: Can't remove %s/%s: %s\n"
msgstr "%s: no s’ha pogut eliminar «%s»: %s\n"
-#: timezone/zic.c:874
+#: timezone/zic.c:931
#, c-format
msgid "symbolic link used because hard link failed: %s"
msgstr ""
-#: timezone/zic.c:882
+#: timezone/zic.c:939
#, fuzzy, c-format
#| msgid "%s: Can't read %s: %s\n"
msgid "%s: Can't read %s/%s: %s\n"
msgstr "%s: no s’ha pogut llegir «%s»: %s\n"
-#: timezone/zic.c:889 timezone/zic.c:1828
+#: timezone/zic.c:946 timezone/zic.c:1889
#, fuzzy, c-format
#| msgid "%s: Can't create %s: %s\n"
msgid "%s: Can't create %s/%s: %s\n"
msgstr "%s: no s’ha pogut crear «%s»: %s\n"
-#: timezone/zic.c:898
+#: timezone/zic.c:955
#, c-format
msgid "copy used because hard link failed: %s"
msgstr ""
-#: timezone/zic.c:901
+#: timezone/zic.c:958
#, c-format
msgid "copy used because symbolic link failed: %s"
msgstr ""
-#: timezone/zic.c:1013 timezone/zic.c:1015
+#: timezone/zic.c:1032 timezone/zic.c:1034
msgid "same rule name in multiple files"
msgstr "el mateix nom de regla és repetit a diversos fitxers"
-#: timezone/zic.c:1056
-msgid "unruly zone"
-msgstr "la zona no té regles"
-
-#: timezone/zic.c:1063
+#: timezone/zic.c:1081
#, c-format
msgid "%s in ruleless zone"
msgstr "«%s» en una zona sense regles"
-#: timezone/zic.c:1083
+#: timezone/zic.c:1101
msgid "standard input"
msgstr "entrada estàndard"
-#: timezone/zic.c:1088
+#: timezone/zic.c:1106
#, c-format
msgid "%s: Can't open %s: %s\n"
msgstr "%s: no s’ha pogut obrir «%s»: %s\n"
-#: timezone/zic.c:1099
+#: timezone/zic.c:1117
msgid "line too long"
msgstr "la línia és massa llarga"
-#: timezone/zic.c:1119
+#: timezone/zic.c:1139
msgid "input line of unknown type"
msgstr "la línia introduïda pertany a un tipus desconegut"
-#: timezone/zic.c:1134
-#, fuzzy, c-format
-#| msgid "%s: Leap line in non leap seconds file %s\n"
-msgid "%s: Leap line in non leap seconds file %s"
-msgstr "%s: línia «Leap» en fitxer no de segons intercalars «%s»\n"
-
-#: timezone/zic.c:1142 timezone/zic.c:1547 timezone/zic.c:1569
+#: timezone/zic.c:1158 timezone/zic.c:1593 timezone/zic.c:1615
#, c-format
msgid "%s: panic: Invalid l_value %d\n"
msgstr "%s: pànic: el valor esquerre %d no és vàlid\n"
-#: timezone/zic.c:1151
+#: timezone/zic.c:1167
msgid "expected continuation line not found"
msgstr "cal una línia de continuació, però se’n troba cap"
-#: timezone/zic.c:1193 timezone/zic.c:2976
+#: timezone/zic.c:1203
+#, fuzzy
+#| msgid "values over 24 hours not handled by pre-2007 versions of zic"
+msgid "fractional seconds rejected by pre-2018 versions of zic"
+msgstr "les versions de «zic» anteriors a 2007 no admeten valors majors que 24 hores"
+
+#: timezone/zic.c:1221 timezone/zic.c:3078
msgid "time overflow"
msgstr "desbordament de l’hora"
-#: timezone/zic.c:1198
+#: timezone/zic.c:1227
msgid "values over 24 hours not handled by pre-2007 versions of zic"
msgstr "les versions de «zic» anteriors a 2007 no admeten valors majors que 24 hores"
-#: timezone/zic.c:1209
+#: timezone/zic.c:1245
+msgid "invalid saved time"
+msgstr "el temps estalviat no és vàlid"
+
+#: timezone/zic.c:1256
msgid "wrong number of fields on Rule line"
msgstr "el nombre de camps de la línia «Rule» és incorrecte"
-#: timezone/zic.c:1213
-msgid "nameless rule"
-msgstr "la regla no té nom"
-
-#: timezone/zic.c:1218
-msgid "invalid saved time"
-msgstr "el temps estalviat no és vàlid"
+#: timezone/zic.c:1265
+#, fuzzy, c-format
+#| msgid "Invalid numeric gid \"%s\"!"
+msgid "Invalid rule name \"%s\""
+msgstr "«%s» no és un identificador numèric de grup vàlid"
-#: timezone/zic.c:1235
+#: timezone/zic.c:1287
msgid "wrong number of fields on Zone line"
msgstr "el nombre de camps de la línia «Zone» no és correcte"
-#: timezone/zic.c:1240
+#: timezone/zic.c:1292
#, c-format
msgid "\"Zone %s\" line and -l option are mutually exclusive"
msgstr "la línia «Zone %s» i l’opció «-l» són mútuament excloents"
-#: timezone/zic.c:1246
+#: timezone/zic.c:1298
#, c-format
msgid "\"Zone %s\" line and -p option are mutually exclusive"
msgstr "la línia «Zone %s» i l’opció «-p» són mútuament excloents"
-#: timezone/zic.c:1253
+#: timezone/zic.c:1305
#, fuzzy, c-format
#| msgid "duplicate zone name %s (file \"%s\", line %d)"
msgid "duplicate zone name %s (file \"%s\", line %<PRIdMAX>)"
msgstr "el nom de zona «%s» (fitxer «%s», línia %d) és duplicat"
-#: timezone/zic.c:1267
+#: timezone/zic.c:1319
msgid "wrong number of fields on Zone continuation line"
msgstr "el nombre de camps de la línia de continuació de «Zone» no és correcte"
# Crec que queda més clar que «respecte al temps universal». ivb
-#: timezone/zic.c:1307
+#: timezone/zic.c:1359
msgid "invalid UT offset"
msgstr "el desplaçament respecte a UTC no és vàlid"
-#: timezone/zic.c:1311
+#: timezone/zic.c:1363
msgid "invalid abbreviation format"
msgstr "el format de l’abreviatura no és vàlid"
-#: timezone/zic.c:1320
+#: timezone/zic.c:1372
#, fuzzy, c-format
#| msgid "values over 24 hours not handled by pre-2007 versions of zic"
msgid "format '%s' not handled by pre-2015 versions of zic"
msgstr "les versions de «zic» anteriors a 2007 no admeten valors majors que 24 hores"
-#: timezone/zic.c:1347
+#: timezone/zic.c:1399
msgid "Zone continuation line end time is not after end time of previous line"
msgstr "el temps final de la línia de continuació de «Zone» no ve darrere del temps final de la línia anterior"
-#: timezone/zic.c:1374
+#: timezone/zic.c:1426
msgid "wrong number of fields on Leap line"
msgstr "el nombre de camps de la línia «Leap» no és correcte"
-#: timezone/zic.c:1383
+#: timezone/zic.c:1435
msgid "invalid leaping year"
msgstr "l’any bixest no és vàlid"
-#: timezone/zic.c:1403 timezone/zic.c:1501
+#: timezone/zic.c:1455 timezone/zic.c:1547
msgid "invalid month name"
msgstr "el nom del mes no és vàlid"
-#: timezone/zic.c:1416 timezone/zic.c:1614 timezone/zic.c:1628
+#: timezone/zic.c:1468 timezone/zic.c:1663 timezone/zic.c:1677
msgid "invalid day of month"
msgstr "el dia del mes no és vàlid"
-#: timezone/zic.c:1421
+#: timezone/zic.c:1473
msgid "time too small"
msgstr "l’hora és massa menuda"
-#: timezone/zic.c:1425
+#: timezone/zic.c:1477
msgid "time too large"
msgstr "l’hora és massa gran"
-#: timezone/zic.c:1429 timezone/zic.c:1530
+#: timezone/zic.c:1481 timezone/zic.c:1576
msgid "invalid time of day"
msgstr "l’hora del dia no és vàlida"
-#: timezone/zic.c:1448
+#: timezone/zic.c:1494
msgid "illegal CORRECTION field on Leap line"
msgstr "el camp de correcció de la línia de «Leap» no és vàlid"
-#: timezone/zic.c:1453
+#: timezone/zic.c:1499
msgid "illegal Rolling/Stationary field on Leap line"
msgstr "el camp «Rolling/Stationary» de la línia «Leap» no és vàlid"
# I? ivb
-#: timezone/zic.c:1459
-msgid "leap second precedes Big Bang"
+#: timezone/zic.c:1505
+#, fuzzy
+#| msgid "leap second precedes Big Bang"
+msgid "leap second precedes Epoch"
msgstr "el segon intercalar és anterior al Big Bang"
-#: timezone/zic.c:1472
+#: timezone/zic.c:1518
msgid "wrong number of fields on Link line"
msgstr "el nombre de camps de la línia «Link» no és correcte"
# El nom del camp no és una paraula clau del fitxer. ivb
-#: timezone/zic.c:1476
+#: timezone/zic.c:1522
msgid "blank FROM field on Link line"
msgstr "el camp d’inici de la línia «Link» és buit"
-#: timezone/zic.c:1551
+#: timezone/zic.c:1597
msgid "invalid starting year"
msgstr "l’any de començament no és vàlid"
-#: timezone/zic.c:1573
+#: timezone/zic.c:1619
msgid "invalid ending year"
msgstr "l’any d’acabament no és vàlid"
-#: timezone/zic.c:1577
+#: timezone/zic.c:1623
msgid "starting year greater than ending year"
msgstr "l’any de començament és major que el d’acabament"
-#: timezone/zic.c:1584
+#: timezone/zic.c:1630
msgid "typed single year"
msgstr "s’ha especificat un sol any"
-#: timezone/zic.c:1619
+#: timezone/zic.c:1633
+#, c-format
+msgid "year type \"%s\" is obsolete; use \"-\" instead"
+msgstr ""
+
+#: timezone/zic.c:1668
msgid "invalid weekday name"
msgstr "el nom del dia de la setmana no és vàlid"
-#: timezone/zic.c:1743
+#: timezone/zic.c:1800
#, fuzzy, c-format
#| msgid "pre-2014 clients may mishandle more than 1200 transition times"
msgid "reference clients mishandle more than %d transition times"
msgstr "els clients anteriors a 2014 podrien processar malament més de 1200 dates de transició"
-#: timezone/zic.c:1747
+#: timezone/zic.c:1804
msgid "pre-2014 clients may mishandle more than 1200 transition times"
msgstr "els clients anteriors a 2014 podrien processar malament més de 1200 dates de transició"
-#: timezone/zic.c:1858
+#: timezone/zic.c:1920
#, fuzzy
#| msgid "too many local time types"
msgid "too many transition times"
msgstr "hi ha massa tipus d’hora local"
-#: timezone/zic.c:2047
+#: timezone/zic.c:2107
#, c-format
-msgid "%%z UTC offset magnitude exceeds 99:59:59"
+msgid "%%z UT offset magnitude exceeds 99:59:59"
msgstr ""
-#: timezone/zic.c:2424
+#: timezone/zic.c:2488
msgid "no POSIX environment variable for zone"
msgstr "no s’ha establert una variable d’entorn POSIX per a la zona"
# L’enter és un any. ivb
-#: timezone/zic.c:2430
+#: timezone/zic.c:2494
#, c-format
msgid "%s: pre-%d clients may mishandle distant timestamps"
msgstr "%s: els clients anteriors a %d podrien processar malament les dates distants"
-#: timezone/zic.c:2566
+#: timezone/zic.c:2631
msgid "two rules for same instant"
msgstr ""
-#: timezone/zic.c:2627
+#: timezone/zic.c:2696
msgid "can't determine time zone abbreviation to use just after until time"
msgstr "no s’ha pogut determinar l’abreviatura de zona horària a emprar just després de la data límit (until)"
-#: timezone/zic.c:2725
+#: timezone/zic.c:2785
msgid "too many local time types"
msgstr "hi ha massa tipus d’hora local"
# Crec que queda més clar que «respecte al temps universal». ivb
-#: timezone/zic.c:2729
+#: timezone/zic.c:2789
msgid "UT offset out of range"
msgstr "el desplaçament respecte a UTC és fora de rang"
-#: timezone/zic.c:2753
+#: timezone/zic.c:2813
msgid "too many leap seconds"
msgstr "hi ha massa segons intercalars"
-#: timezone/zic.c:2759
-msgid "repeated leap second moment"
-msgstr "el moment de segon intercalar és repetit"
+#: timezone/zic.c:2844
+msgid "Leap seconds too close together"
+msgstr ""
-#: timezone/zic.c:2830
+#: timezone/zic.c:2891
msgid "Wild result from command execution"
msgstr "l’execució de l’ordre ha donat un resultat estrany"
-#: timezone/zic.c:2831
+#: timezone/zic.c:2892
#, c-format
msgid "%s: command was '%s', result was %d\n"
msgstr "%s: l’ordre ha estat «%s», el resultat ha estat %d\n"
+#: timezone/zic.c:2998
+#, c-format
+msgid "\"%s\" is undocumented; use \"last%s\" instead"
+msgstr ""
+
+#: timezone/zic.c:3029
+#, c-format
+msgid "\"%s\" is ambiguous in pre-2017c zic"
+msgstr ""
+
# ivb (2001/10/30)
# ivb Es refereix a les cometes dobles «"».
-#: timezone/zic.c:2961
+#: timezone/zic.c:3063
msgid "Odd number of quotation marks"
msgstr "el nombre de cometes és senar"
-#: timezone/zic.c:3046
+#: timezone/zic.c:3157
msgid "use of 2/29 in non leap-year"
msgstr "s’ha emprat el dia 29 de febrer en un any no bixest"
-#: timezone/zic.c:3081
+#: timezone/zic.c:3192
#, fuzzy
#| msgid "rule goes past start/end of month--will not work with pre-2004 versions of zic"
msgid "rule goes past start/end of month; will not work with pre-2004 versions of zic"
msgstr "la regla va més enllà de l’inici o fi del mes; no funcionarà en les versions de «zic» anteriors a 2004"
-#: timezone/zic.c:3108
+#: timezone/zic.c:3219
#, fuzzy
#| msgid "time zone abbreviation has fewer than 3 alphabetics"
msgid "time zone abbreviation has fewer than 3 characters"
msgstr "l’abreviatura de la zona horària té menys de 3 caràcters alfabètics"
-#: timezone/zic.c:3110
+#: timezone/zic.c:3221
#, fuzzy
#| msgid "time zone abbreviation has too many alphabetics"
msgid "time zone abbreviation has too many characters"
msgstr "l’abreviatura de la zona horària té massa caràcters alfabètics"
-#: timezone/zic.c:3112
+#: timezone/zic.c:3223
msgid "time zone abbreviation differs from POSIX standard"
msgstr "l’abreviatura de la zona horària difereix de l’estàndard POSIX"
-#: timezone/zic.c:3118
+#: timezone/zic.c:3229
msgid "too many, or too long, time zone abbreviations"
msgstr "hi ha massa abreviatures de zona horària (o són massa llargues)"
-#: timezone/zic.c:3161
+#: timezone/zic.c:3275
#, fuzzy, c-format
#| msgid "%s: Can't create directory %s: %s\n"
msgid "%s: Can't create directory %s: %s"
msgstr "%s: no s’ha pogut crear el directori «%s»: %s\n"
+# ivb (2001/10/28)
+# ivb Es refereix a /dev/zero .
+#~ msgid "cannot open zero fill device"
+#~ msgstr "no s’ha pogut obrir el dispositiu de zeros"
+
#~ msgid "cannot allocate TLS data structures for initial thread"
#~ msgstr "no s’han pogut reservar les estructures de dades TLS per al fil inicial"
@@ -7556,6 +7602,9 @@ msgstr "%s: no s’ha pogut crear el directori «%s»: %s\n"
#~ msgid "invalid caller"
#~ msgstr "la biblioteca que ha fet la crida no és vàlida"
+#~ msgid "relocation error"
+#~ msgstr "error de reubicació"
+
#~ msgid "Don't generate links"
#~ msgstr "No genera enllaços."
@@ -7568,6 +7617,15 @@ msgstr "%s: no s’ha pogut crear el directori «%s»: %s\n"
#~ msgid "non-symbolic character value should not be used"
#~ msgstr "no s’han d’emprar valors de caràcters no simbòlics"
+#~ msgid "Cannot set LC_CTYPE to default locale"
+#~ msgstr "no s’ha pogut establir LC_CTYPE al locale per defecte"
+
+#~ msgid "Cannot set LC_MESSAGES to default locale"
+#~ msgstr "no s’ha pogut establir LC_MESSAGES al locale per defecte"
+
+#~ msgid "Cannot set LC_COLLATE to default locale"
+#~ msgstr "no s’ha pogut establir LC_COLLATE al locale per defecte"
+
#~ msgid "Create old-style tables"
#~ msgstr "Crea taules de l’estil antic."
@@ -7690,9 +7748,18 @@ msgstr "%s: no s’ha pogut crear el directori «%s»: %s\n"
#~ msgid "link failed, copy used"
#~ msgstr "no s’ha pogut crear un enllaç, se n’ha creat una còpia"
+#~ msgid "unruly zone"
+#~ msgstr "la zona no té regles"
+
+#~ msgid "%s: Leap line in non leap seconds file %s\n"
+#~ msgstr "%s: línia «Leap» en fitxer no de segons intercalars «%s»\n"
+
#~ msgid "%s: Error closing %s: %s\n"
#~ msgstr "%s: error en tancar «%s»: %s\n"
+#~ msgid "nameless rule"
+#~ msgstr "la regla no té nom"
+
# El nom del camp no és una paraula clau del fitxer. ivb
#~ msgid "blank TO field on Link line"
#~ msgstr "el camp d’acabament de la línia «Link» és buit"
@@ -7706,5 +7773,8 @@ msgstr "%s: no s’ha pogut crear el directori «%s»: %s\n"
#~ msgid "internal error - addtype called with bad ttisgmt"
#~ msgstr "error intern: s’ha cridat addtype() amb un valor erroni per a «ttisgmt»"
+#~ msgid "repeated leap second moment"
+#~ msgstr "el moment de segon intercalar és repetit"
+
#~ msgid "time zone abbreviation lacks alphabetic at start"
#~ msgstr "l’abreviatura de la zona horària no comença per un caràcter alfabètic"
diff --git a/po/cs.po b/po/cs.po
index 291ec015e3..f7cd3f227a 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -3,7 +3,7 @@
# This file is distributed under the same license as the glibc package.
# Vladimir Michl <Vladimir.Michl@seznam.cz>, 1997.
# Petr Pisar <petr.pisar@atlas.cz>, 2007, 2009, 2011, 2012, 2013, 2014, 2015.
-# Petr Pisar <petr.pisar@atlas.cz>, 2017, 2018.
+# Petr Pisar <petr.pisar@atlas.cz>, 2017, 2018, 2019.
#
# Thanks to:
# Petr Kolar <Petr.Kolar@vslib.cz>
@@ -15,7 +15,7 @@
#
# Notes:
# host, name, hostname - jméno, název, oznaÄení?
-# Untranslated: netid (RFC 1833: Network Identifier), nettype
+# Untranslated: netid (RFC 1833: Network Identifier), nettype
# Translations of "socket" => "soket",
# byte => bajt
# out of memory => nedostatek paměti
@@ -24,9 +24,9 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: libc 2.27.9000\n"
-"POT-Creation-Date: 2018-07-26 22:19-0400\n"
-"PO-Revision-Date: 2018-07-27 21:15+02:00\n"
+"Project-Id-Version: libc 2.29.9000\n"
+"POT-Creation-Date: 2019-07-18 13:28-0400\n"
+"PO-Revision-Date: 2019-07-24 22:24+02:00\n"
"Last-Translator: Petr Pisar <petr.pisar@atlas.cz>\n"
"Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
"Language: cs\n"
@@ -171,10 +171,10 @@ msgstr ""
"[ VÃSTUPNÃ_SOUBOR [VSTUPNÃ_SOUBOR]…]"
#: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:308
-#: elf/pldd.c:252 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
-#: iconv/iconvconfig.c:379 locale/programs/locale.c:275
-#: locale/programs/localedef.c:427 login/programs/pt_chown.c:89
-#: malloc/memusagestat.c:563 nss/getent.c:933 nss/makedb.c:369
+#: elf/pldd.c:247 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
+#: iconv/iconvconfig.c:379 locale/programs/locale.c:276
+#: locale/programs/localedef.c:437 login/programs/pt_chown.c:89
+#: malloc/memusagestat.c:563 nss/getent.c:953 nss/makedb.c:369
#: posix/getconf.c:503 sysdeps/unix/sysv/linux/lddlibc4.c:61
#, c-format
msgid ""
@@ -185,11 +185,11 @@ msgstr ""
"%s.\n"
#: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64
-#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75
+#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:263 elf/sotruss.sh:75
#: elf/sprof.c:389 iconv/iconv_prog.c:422 iconv/iconvconfig.c:396
-#: locale/programs/locale.c:292 locale/programs/localedef.c:453
+#: locale/programs/locale.c:293 locale/programs/localedef.c:463
#: login/programs/pt_chown.c:63 malloc/memusage.sh:71
-#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:87 nss/makedb.c:385
+#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:88 nss/makedb.c:385
#: posix/getconf.c:485 sysdeps/unix/sysv/linux/lddlibc4.c:68
#, c-format
msgid ""
@@ -203,10 +203,10 @@ msgstr ""
"a to i bez záruky PRODEJNOSTI nebo VHODNOSTI PRO NĚJAKà KONKRÉTNà ÚČEL.\n"
#: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68
-#: elf/ldconfig.c:329 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:427
-#: iconv/iconvconfig.c:401 locale/programs/locale.c:297
-#: locale/programs/localedef.c:458 malloc/memusage.sh:75
-#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:92 nss/makedb.c:390
+#: elf/ldconfig.c:329 elf/pldd.c:268 elf/sprof.c:395 iconv/iconv_prog.c:427
+#: iconv/iconvconfig.c:401 locale/programs/locale.c:298
+#: locale/programs/localedef.c:468 malloc/memusage.sh:75
+#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:93 nss/makedb.c:390
#: posix/getconf.c:490
#, c-format
msgid "Written by %s.\n"
@@ -277,21 +277,21 @@ msgstr "výstupní soubor „%s“ nelze otevřít"
msgid "invalid escape sequence"
msgstr "chybná escape sekvence"
-#: catgets/gencat.c:1209
+#: catgets/gencat.c:1211
msgid "unterminated message"
msgstr "neukonÄená zpráva"
-#: catgets/gencat.c:1233
+#: catgets/gencat.c:1235
#, c-format
msgid "while opening old catalog file"
msgstr "během otvírání starého katalogu"
-#: catgets/gencat.c:1324
+#: catgets/gencat.c:1326
#, c-format
msgid "conversion modules not available"
msgstr "převodní modul není dostupný"
-#: catgets/gencat.c:1350
+#: catgets/gencat.c:1352
#, c-format
msgid "cannot determine escape character"
msgstr "nelze urÄit escapovací znak"
@@ -419,7 +419,7 @@ msgstr "Neznámý OS"
msgid ", OS ABI: %s %d.%d.%d"
msgstr ", ABI OS: %s %d.%d.%d"
-#: elf/cache.c:163 elf/ldconfig.c:1332
+#: elf/cache.c:163 elf/ldconfig.c:1333
#, c-format
msgid "Can't open cache file %s\n"
msgstr "Soubor s keší %s nelze otevřít\n"
@@ -429,38 +429,38 @@ msgstr "Soubor s keší %s nelze otevřít\n"
msgid "mmap of cache file failed.\n"
msgstr "mmap na souboru s keší selhala.\n"
-#: elf/cache.c:181 elf/cache.c:195
+#: elf/cache.c:181 elf/cache.c:195 elf/cache.c:205
#, c-format
msgid "File is not a cache file.\n"
msgstr "Soubor neobsahuje keš.\n"
-#: elf/cache.c:228 elf/cache.c:238
+#: elf/cache.c:233 elf/cache.c:243
#, c-format
msgid "%d libs found in cache `%s'\n"
msgstr "V keši „%2$s“ nalezeno knihoven: %1$d\n"
-#: elf/cache.c:432
+#: elf/cache.c:437
#, c-format
msgid "Can't create temporary cache file %s"
msgstr "Nelze vytvoÅ™it doÄasný soubor s keší %s"
-#: elf/cache.c:440 elf/cache.c:450 elf/cache.c:454 elf/cache.c:458
-#: elf/cache.c:468
+#: elf/cache.c:445 elf/cache.c:455 elf/cache.c:459 elf/cache.c:463
+#: elf/cache.c:473
#, c-format
msgid "Writing of cache data failed"
msgstr "Zápis kešovaných dat selhal"
-#: elf/cache.c:463
+#: elf/cache.c:468
#, c-format
msgid "Changing access rights of %s to %#o failed"
msgstr "Změna přístupových práv k %s na %#o se nezdařila"
-#: elf/cache.c:472
+#: elf/cache.c:477
#, c-format
msgid "Renaming of %s to %s failed"
msgstr "Přejmenování z %s na %s selhalo"
-#: elf/dl-close.c:399 elf/dl-open.c:420
+#: elf/dl-close.c:399 elf/dl-open.c:424
msgid "cannot create scope list"
msgstr "seznam rozsahů nelze vytvořit"
@@ -541,119 +541,119 @@ msgstr "nelze vytvořit pole vyhledávacích cest"
msgid "cannot stat shared object"
msgstr "nelze získat informace o sdíleném objektu"
-#: elf/dl-load.c:960
-msgid "cannot open zero fill device"
-msgstr "nulami vyplněné zařízení (zero) nelze otevřít"
-
-#: elf/dl-load.c:1007 elf/dl-load.c:2203
+#: elf/dl-load.c:992 elf/dl-load.c:2198
msgid "cannot create shared object descriptor"
msgstr "deskriptor sdíleného objektu nelze vytvořit"
-#: elf/dl-load.c:1026 elf/dl-load.c:1560 elf/dl-load.c:1673
+#: elf/dl-load.c:1011 elf/dl-load.c:1555 elf/dl-load.c:1668
msgid "cannot read file data"
msgstr "data ze souboru nelze naÄíst"
-#: elf/dl-load.c:1072
+#: elf/dl-load.c:1057
msgid "ELF load command alignment not page-aligned"
msgstr "Zarovnání kódu zavadÄ›Äe formátu ELF nelícuje se stránkou"
-#: elf/dl-load.c:1079
+#: elf/dl-load.c:1064
msgid "ELF load command address/offset not properly aligned"
msgstr "Adresa/ofset kódu zavadÄ›Äe formátu ELF není správnÄ› zarovnána"
-#: elf/dl-load.c:1161
+#: elf/dl-load.c:1146
msgid "cannot process note segment"
msgstr "segment s poznámkami nelze zpracovat"
-#: elf/dl-load.c:1172
+#: elf/dl-load.c:1157
msgid "object file has no loadable segments"
msgstr "objektový soubor nemá žádné nahratelné segmenty"
-#: elf/dl-load.c:1181 elf/dl-load.c:1652
+#: elf/dl-load.c:1170 elf/dl-load.c:1647
msgid "cannot dynamically load executable"
-msgstr "spustitelný kód nelze dynamicky nahrát"
+msgstr "spustitelný kód nelze dynamicky zavést"
-#: elf/dl-load.c:1202
+#: elf/dl-load.c:1191
msgid "object file has no dynamic section"
msgstr "objektový soubor nemá žádnou dynamickou sekci"
-#: elf/dl-load.c:1225
+#: elf/dl-load.c:1218
+msgid "cannot dynamically load position-independent executable"
+msgstr "spustitelný kód nezávislý na umístění nelze dynamicky zavést"
+
+#: elf/dl-load.c:1220
msgid "shared object cannot be dlopen()ed"
msgstr "sdílený objekt nebylo možné naÄíst funkcí dlopen()"
-#: elf/dl-load.c:1238
+#: elf/dl-load.c:1233
msgid "cannot allocate memory for program header"
msgstr "nelze alokovat paměť pro hlaviÄku programu"
-#: elf/dl-load.c:1271 elf/dl-load.h:130
+#: elf/dl-load.c:1266 elf/dl-load.h:130
msgid "cannot change memory protections"
msgstr "ochrany paměti nelze změnit"
-#: elf/dl-load.c:1291
+#: elf/dl-load.c:1286
msgid "cannot enable executable stack as shared object requires"
msgstr "nemohu povolit spustitelnost zásobníku, jak vyžaduje sdílený objekt"
-#: elf/dl-load.c:1304
+#: elf/dl-load.c:1299
msgid "cannot close file descriptor"
msgstr "deskriptor souboru nelze zavřít"
-#: elf/dl-load.c:1560
+#: elf/dl-load.c:1555
msgid "file too short"
msgstr "soubor je příliš krátký"
-#: elf/dl-load.c:1595
+#: elf/dl-load.c:1590
msgid "invalid ELF header"
msgstr "neplatný hlaviÄka ELF"
-#: elf/dl-load.c:1607
+#: elf/dl-load.c:1602
msgid "ELF file data encoding not big-endian"
msgstr "Kódování dat souboru ELF nemá velkou endianitu"
-#: elf/dl-load.c:1609
+#: elf/dl-load.c:1604
msgid "ELF file data encoding not little-endian"
msgstr "Kódování dat souboru ELF nemá malou endianitu"
-#: elf/dl-load.c:1613
+#: elf/dl-load.c:1608
msgid "ELF file version ident does not match current one"
msgstr "ident verze souboru ELF se neshoduje se souÄasnou"
-#: elf/dl-load.c:1617
+#: elf/dl-load.c:1612
msgid "ELF file OS ABI invalid"
msgstr "Chybné ABI OS souboru ELF"
-#: elf/dl-load.c:1620
+#: elf/dl-load.c:1615
msgid "ELF file ABI version invalid"
msgstr "Chybná verze ABI souboru ELF"
-#: elf/dl-load.c:1623
+#: elf/dl-load.c:1618
msgid "nonzero padding in e_ident"
msgstr "nenulová výplň v e_ident"
-#: elf/dl-load.c:1626
+#: elf/dl-load.c:1621
msgid "internal error"
msgstr "vnitřní chyba"
-#: elf/dl-load.c:1633
+#: elf/dl-load.c:1628
msgid "ELF file version does not match current one"
msgstr "Verze souboru ELD se neshoduje se souÄasnou"
-#: elf/dl-load.c:1641
+#: elf/dl-load.c:1636
msgid "only ET_DYN and ET_EXEC can be loaded"
msgstr "jen ET_DYN a ET_EXEC mohou být nahráni"
-#: elf/dl-load.c:1657
+#: elf/dl-load.c:1652
msgid "ELF file's phentsize not the expected size"
msgstr "phentsize souboru ELF má neoÄekávanou velikost"
-#: elf/dl-load.c:2222
+#: elf/dl-load.c:2217
msgid "wrong ELF class: ELFCLASS64"
msgstr "chybná třída ELF: ELFCLASS64"
-#: elf/dl-load.c:2223
+#: elf/dl-load.c:2218
msgid "wrong ELF class: ELFCLASS32"
msgstr "chybná třída ELF: ELFCLASS32"
-#: elf/dl-load.c:2226
+#: elf/dl-load.c:2221
msgid "cannot open shared object file"
msgstr "sdílený objektový soubor nelze otevřít"
@@ -665,11 +665,7 @@ msgstr "namapování segmentu ze sdíleného objektu se nepodařilo"
msgid "cannot map zero-fill pages"
msgstr "nulami vyplněné stránky nelze mapovat"
-#: elf/dl-lookup.c:835
-msgid "relocation error"
-msgstr "chyba při přemisťování"
-
-#: elf/dl-lookup.c:858
+#: elf/dl-lookup.c:830
msgid "symbol lookup error"
msgstr "chyba při vyhledávání symbolu"
@@ -677,19 +673,19 @@ msgstr "chyba při vyhledávání symbolu"
msgid "cannot extend global scope"
msgstr "globální rozsah nelze rozšířit"
-#: elf/dl-open.c:470
+#: elf/dl-open.c:474
msgid "TLS generation counter wrapped! Please report this."
msgstr "ČítaÄ generátoru TLS oříznut! Prosím, tuto skuteÄnost nahlaste."
-#: elf/dl-open.c:534
+#: elf/dl-open.c:538
msgid "invalid mode for dlopen()"
msgstr "neplatný mód pro dlopen()"
-#: elf/dl-open.c:551
+#: elf/dl-open.c:555
msgid "no more namespaces available for dlmopen()"
msgstr "pro dlmopen() již není dostupný žádný další jmenný prostor"
-#: elf/dl-open.c:575
+#: elf/dl-open.c:579
msgid "invalid target namespace in dlmopen()"
msgstr "neplatný cílový jmenný prostor v dlmopen()"
@@ -697,20 +693,20 @@ msgstr "neplatný cílový jmenný prostor v dlmopen()"
msgid "cannot allocate memory in static TLS block"
msgstr "nelze alokovat paměť uvnitř statického bloku TLS"
-#: elf/dl-reloc.c:205
+#: elf/dl-reloc.c:213
msgid "cannot make segment writable for relocation"
msgstr "segment nelze kvůli pÅ™emístÄ›ní uÄinit zapisovatelný"
-#: elf/dl-reloc.c:276
+#: elf/dl-reloc.c:272
#, c-format
msgid "%s: out of memory to store relocation results for %s\n"
msgstr "%s: pro uložení výsledků přemístění %s není dost paměti\n"
-#: elf/dl-reloc.c:292
+#: elf/dl-reloc.c:288
msgid "cannot restore segment prot after reloc"
msgstr "segment prot nelze po reloc obnovit"
-#: elf/dl-reloc.c:323
+#: elf/dl-reloc.c:319
msgid "cannot apply additional memory protection after relocation"
msgstr "po pÅ™emístÄ›ní nelze nelze uplatnit dodateÄnou ochranu pamÄ›ti"
@@ -928,22 +924,22 @@ msgstr "PÅ™i použití -r je tÅ™eba zadat absolutní jméno konfiguraÄního sou
msgid "memory exhausted"
msgstr "paměť vyÄerpána"
-#: elf/ldconfig.c:1233
+#: elf/ldconfig.c:1234
#, c-format
msgid "%s:%u: cannot read directory %s"
msgstr "%s:%u: adresář %s nelze naÄíst"
-#: elf/ldconfig.c:1281
+#: elf/ldconfig.c:1282
#, c-format
msgid "relative path `%s' used to build cache"
msgstr "pro vybudování keše byla použita relativní cesta „%s“"
-#: elf/ldconfig.c:1311
+#: elf/ldconfig.c:1312
#, c-format
msgid "Can't chdir to /"
msgstr "Nelze se přepnout do adresáře /"
-#: elf/ldconfig.c:1352
+#: elf/ldconfig.c:1353
#, c-format
msgid "Can't open cache file directory %s\n"
msgstr "Adresář %s se soubory keší nelze otevřít\n"
@@ -1014,95 +1010,100 @@ msgstr "skonÄil s neznám výstupním kódem"
msgid "error: you do not have read permission for"
msgstr "chyba: nemáte oprávnÄ›ní Äíst"
-#: elf/pldd-xx.c:105
+#: elf/pldd-xx.c:102
#, c-format
msgid "cannot find program header of process"
msgstr "programovou hlaviÄku procesu nelze nalézt"
-#: elf/pldd-xx.c:110
+#: elf/pldd-xx.c:106
#, c-format
msgid "cannot read program header"
msgstr "hlaviÄku programu nelze pÅ™eÄíst"
-#: elf/pldd-xx.c:135
+#: elf/pldd-xx.c:128
#, c-format
msgid "cannot read dynamic section"
msgstr "dynamickou sekci nelze pÅ™eÄíst"
-#: elf/pldd-xx.c:147
+#: elf/pldd-xx.c:137
#, c-format
msgid "cannot read r_debug"
msgstr "r_debug nelze pÅ™eÄíst"
-#: elf/pldd-xx.c:167
+#: elf/pldd-xx.c:154
#, c-format
msgid "cannot read program interpreter"
msgstr "interpretr programu nelze pÅ™eÄíst"
-#: elf/pldd-xx.c:197
+#: elf/pldd-xx.c:183
#, c-format
msgid "cannot read link map"
msgstr "mapování odkazů nelze naÄíst"
-#: elf/pldd-xx.c:209
+#: elf/pldd-xx.c:190
#, c-format
msgid "cannot read object name"
msgstr "název objektu nelze pÅ™eÄíst"
-#: elf/pldd-xx.c:219
+#: elf/pldd-xx.c:197
#, c-format
msgid "cannot allocate buffer for object name"
msgstr "nelze alokovat vyrovnávací paměť pro název objektu"
-#: elf/pldd.c:64
+#: elf/pldd.c:58
msgid "List dynamic shared objects loaded into process."
msgstr "Vypíše dynamické sdílené objekty zavedené do procesu."
-#: elf/pldd.c:68
+#: elf/pldd.c:62
msgid "PID"
msgstr "PID"
-#: elf/pldd.c:100
+#: elf/pldd.c:89
#, c-format
msgid "Exactly one parameter with process ID required.\n"
msgstr "Je třeba právě jeden parametr s ID procesu.\n"
-#: elf/pldd.c:112
+#: elf/pldd.c:103
#, c-format
msgid "invalid process ID '%s'"
msgstr "neplatné ID procesu „%s“"
-#: elf/pldd.c:120
+#: elf/pldd.c:111
#, c-format
msgid "cannot open %s"
msgstr "%s nelze otevřít"
-#: elf/pldd.c:152
+#: elf/pldd.c:142
#, c-format
msgid "cannot open %s/task"
msgstr "%s/task nelze otevřít"
-#: elf/pldd.c:155
+#: elf/pldd.c:145
#, c-format
msgid "cannot prepare reading %s/task"
msgstr "Ätení %s/task nelze pÅ™ipravit"
-#: elf/pldd.c:168
+#: elf/pldd.c:158
#, c-format
msgid "invalid thread ID '%s'"
msgstr "neplatné ID vlákna „%s“"
-#: elf/pldd.c:179
+#: elf/pldd.c:169
#, c-format
msgid "cannot attach to process %lu"
msgstr "k procesu %lu se nelze připojit"
-#: elf/pldd.c:294
+#: elf/pldd.c:184
+#, c-format
+msgid "no valid %s/task entries"
+msgstr "žádné platné záznamy v %s/task"
+
+#: elf/pldd.c:290
#, c-format
msgid "cannot get information about process %lu"
msgstr "o procesu %lu nelze získat údaje"
-#: elf/pldd.c:307
+#: elf/pldd.c:303
#, c-format
msgid "process %lu is no ELF program"
msgstr "proces %lu není programem ELF"
@@ -1425,7 +1426,7 @@ msgstr "Informace:"
msgid "list all known coded character sets"
msgstr "vypíše všechny známé znakové sady"
-#: iconv/iconv_prog.c:64 locale/programs/localedef.c:120
+#: iconv/iconv_prog.c:64 locale/programs/localedef.c:124
msgid "Output control:"
msgstr "Řízení výstupu:"
@@ -1434,8 +1435,8 @@ msgid "omit invalid characters from output"
msgstr "vynechá nepřípustné znaky na výstupu"
#: iconv/iconv_prog.c:66 iconv/iconvconfig.c:128
-#: locale/programs/localedef.c:113 locale/programs/localedef.c:115
-#: locale/programs/localedef.c:117 locale/programs/localedef.c:144
+#: locale/programs/localedef.c:117 locale/programs/localedef.c:119
+#: locale/programs/localedef.c:121 locale/programs/localedef.c:150
#: malloc/memusagestat.c:56
msgid "FILE"
msgstr "SOUBOR"
@@ -1533,7 +1534,7 @@ msgstr "Vytvoří konfiguraÄní soubor modulu iconv pro rychlé naÄítání"
msgid "[DIR...]"
msgstr "[ADRESÃŘ…]"
-#: iconv/iconvconfig.c:126 locale/programs/localedef.c:123
+#: iconv/iconvconfig.c:126 locale/programs/localedef.c:129
msgid "PATH"
msgstr "CESTA"
@@ -1664,7 +1665,7 @@ msgstr "soubor „%s“ znakové sady nebyl nalezen"
#: locale/programs/charmap.c:196
#, c-format
msgid "default character map file `%s' not found"
-msgstr "implicitní soubor „%s“ znakové sady nebyl nalezen"
+msgstr "výchozí soubor „%s“ znakové sady nebyl nalezen"
#: locale/programs/charmap.c:265
#, c-format
@@ -1717,14 +1718,14 @@ msgstr "znakové sady se uzamykacími stavy nejsou podporovány"
#: locale/programs/charmap.c:503 locale/programs/charmap.c:557
#: locale/programs/charmap.c:589 locale/programs/charmap.c:683
-#: locale/programs/charmap.c:738 locale/programs/charmap.c:779
-#: locale/programs/charmap.c:820
+#: locale/programs/charmap.c:739 locale/programs/charmap.c:780
+#: locale/programs/charmap.c:821
#, c-format
msgid "syntax error in %s definition: %s"
msgstr "syntaktická chyba v definici %s: %s"
#: locale/programs/charmap.c:504 locale/programs/charmap.c:684
-#: locale/programs/charmap.c:780 locale/programs/repertoire.c:229
+#: locale/programs/charmap.c:781 locale/programs/repertoire.c:229
msgid "no symbolic name given"
msgstr "žádné symbolické jméno nebylo zadáno"
@@ -1740,14 +1741,14 @@ msgstr "v kódu znaku je příliš málo bajtů"
msgid "too many bytes in character encoding"
msgstr "v kódu znaku je příliš mnoho bajtů"
-#: locale/programs/charmap.c:591 locale/programs/charmap.c:739
-#: locale/programs/charmap.c:822 locale/programs/repertoire.c:295
+#: locale/programs/charmap.c:591 locale/programs/charmap.c:740
+#: locale/programs/charmap.c:823 locale/programs/repertoire.c:295
msgid "no symbolic name given for end of range"
msgstr "žádné symbolické jméno nebylo pro konec rozsahu zadáno"
#: locale/programs/charmap.c:615 locale/programs/ld-address.c:524
#: locale/programs/ld-collate.c:2616 locale/programs/ld-collate.c:3774
-#: locale/programs/ld-ctype.c:2117 locale/programs/ld-ctype.c:2829
+#: locale/programs/ld-ctype.c:2118 locale/programs/ld-ctype.c:2830
#: locale/programs/ld-identification.c:397
#: locale/programs/ld-measurement.c:213 locale/programs/ld-messages.c:295
#: locale/programs/ld-monetary.c:748 locale/programs/ld-name.c:262
@@ -1762,58 +1763,58 @@ msgstr "%1$s: definice nekonÄí na „END %1$s“"
msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
msgstr "definici CHARMAP mohou následovat pouze definice WIDTH"
-#: locale/programs/charmap.c:656 locale/programs/charmap.c:719
+#: locale/programs/charmap.c:656 locale/programs/charmap.c:720
#, c-format
msgid "value for %s must be an integer"
msgstr "hodnota pro %s musí být celé Äíslo"
-#: locale/programs/charmap.c:847
+#: locale/programs/charmap.c:848
#, c-format
msgid "%s: error in state machine"
msgstr "%s: chyba ve stavovém automatu"
-#: locale/programs/charmap.c:855 locale/programs/ld-address.c:540
+#: locale/programs/charmap.c:856 locale/programs/ld-address.c:540
#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967
-#: locale/programs/ld-ctype.c:2114 locale/programs/ld-ctype.c:2846
+#: locale/programs/ld-ctype.c:2115 locale/programs/ld-ctype.c:2847
#: locale/programs/ld-identification.c:413
#: locale/programs/ld-measurement.c:229 locale/programs/ld-messages.c:311
#: locale/programs/ld-monetary.c:764 locale/programs/ld-name.c:278
#: locale/programs/ld-numeric.c:341 locale/programs/ld-paper.c:228
#: locale/programs/ld-telephone.c:292 locale/programs/ld-time.c:990
-#: locale/programs/locfile.c:997 locale/programs/repertoire.c:323
+#: locale/programs/locfile.c:1010 locale/programs/repertoire.c:323
#, c-format
msgid "%s: premature end of file"
msgstr "%s: pÅ™edÄasný konec souboru"
-#: locale/programs/charmap.c:874 locale/programs/charmap.c:885
+#: locale/programs/charmap.c:875 locale/programs/charmap.c:886
#, c-format
msgid "unknown character `%s'"
msgstr "neznámý znak „%s“"
-#: locale/programs/charmap.c:893
+#: locale/programs/charmap.c:894
#, c-format
msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d"
msgstr "poÄet bajtů sekvence pro poÄátek a konec rozsahu není stejný: %d vs. %d"
-#: locale/programs/charmap.c:998 locale/programs/ld-collate.c:2893
+#: locale/programs/charmap.c:999 locale/programs/ld-collate.c:2893
#: locale/programs/repertoire.c:418
msgid "invalid names for character range"
msgstr "nepovolené názvy pro rozsah znaků"
-#: locale/programs/charmap.c:1010 locale/programs/repertoire.c:430
+#: locale/programs/charmap.c:1011 locale/programs/repertoire.c:430
msgid "hexadecimal range format should use only capital characters"
msgstr "šestnáctkový formát rozsahu by měl používat jen velká písmena"
-#: locale/programs/charmap.c:1028 locale/programs/repertoire.c:448
+#: locale/programs/charmap.c:1029 locale/programs/repertoire.c:448
#, c-format
msgid "<%s> and <%s> are invalid names for range"
msgstr "<%s> a <%s> nejsou platné názvy pro rozsah"
-#: locale/programs/charmap.c:1034 locale/programs/repertoire.c:455
+#: locale/programs/charmap.c:1035 locale/programs/repertoire.c:455
msgid "upper limit in range is smaller than lower limit"
msgstr "horní mez rozsahu je menší než dolní mez"
-#: locale/programs/charmap.c:1092
+#: locale/programs/charmap.c:1093
msgid "resulting bytes for range not representable."
msgstr "výsledné bajty rozsahu nejsou reprezentovatelné."
@@ -1882,7 +1883,7 @@ msgid "%s: numeric country code `%d' not valid"
msgstr "%s: Äíselný kód zemÄ› „%d“ není platný"
#: locale/programs/ld-address.c:432 locale/programs/ld-address.c:469
-#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2478
+#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2479
#: locale/programs/ld-identification.c:309
#: locale/programs/ld-measurement.c:196 locale/programs/ld-messages.c:264
#: locale/programs/ld-monetary.c:503 locale/programs/ld-monetary.c:538
@@ -1905,7 +1906,7 @@ msgid "%s: unknown character in field `%s'"
msgstr "%s: neznámý znak v položce „%s“"
#: locale/programs/ld-address.c:521 locale/programs/ld-collate.c:3772
-#: locale/programs/ld-ctype.c:2826 locale/programs/ld-identification.c:394
+#: locale/programs/ld-ctype.c:2827 locale/programs/ld-identification.c:394
#: locale/programs/ld-measurement.c:210 locale/programs/ld-messages.c:293
#: locale/programs/ld-monetary.c:746 locale/programs/ld-name.c:260
#: locale/programs/ld-numeric.c:323 locale/programs/ld-paper.c:210
@@ -1918,8 +1919,8 @@ msgstr "%s: neúplný řádek „END“"
#: locale/programs/ld-collate.c:602 locale/programs/ld-collate.c:898
#: locale/programs/ld-collate.c:911 locale/programs/ld-collate.c:2582
#: locale/programs/ld-collate.c:2603 locale/programs/ld-collate.c:3957
-#: locale/programs/ld-ctype.c:1846 locale/programs/ld-ctype.c:2104
-#: locale/programs/ld-ctype.c:2676 locale/programs/ld-ctype.c:2837
+#: locale/programs/ld-ctype.c:1847 locale/programs/ld-ctype.c:2105
+#: locale/programs/ld-ctype.c:2677 locale/programs/ld-ctype.c:2838
#: locale/programs/ld-identification.c:404
#: locale/programs/ld-measurement.c:220 locale/programs/ld-messages.c:302
#: locale/programs/ld-monetary.c:755 locale/programs/ld-name.c:269
@@ -2264,129 +2265,129 @@ msgstr "znaková sada „%s“ již je definována"
msgid "implementation limit: no more than %d character maps allowed"
msgstr "implementaÄní omezení: maximální poÄet znakových sad je %d"
-#: locale/programs/ld-ctype.c:1434 locale/programs/ld-ctype.c:1559
-#: locale/programs/ld-ctype.c:1665 locale/programs/ld-ctype.c:2341
-#: locale/programs/ld-ctype.c:3299
+#: locale/programs/ld-ctype.c:1435 locale/programs/ld-ctype.c:1560
+#: locale/programs/ld-ctype.c:1666 locale/programs/ld-ctype.c:2342
+#: locale/programs/ld-ctype.c:3302
#, c-format
msgid "%s: field `%s' does not contain exactly ten entries"
msgstr "%s: pole „%s“ neobsahuje přesně deset položek"
-#: locale/programs/ld-ctype.c:1462 locale/programs/ld-ctype.c:2036
+#: locale/programs/ld-ctype.c:1463 locale/programs/ld-ctype.c:2037
#, c-format
msgid "to-value <U%0*X> of range is smaller than from-value <U%0*X>"
msgstr "horní mez rozsahu <U%0*X> je menší než dolní mez <U%0*X>"
-#: locale/programs/ld-ctype.c:1589
+#: locale/programs/ld-ctype.c:1590
msgid "start and end character sequence of range must have the same length"
msgstr "úvodní a závÄ›reÄná sekvence znaků rozsahu musí mít stejnou délku"
-#: locale/programs/ld-ctype.c:1596
+#: locale/programs/ld-ctype.c:1597
msgid "to-value character sequence is smaller than from-value sequence"
msgstr "sekvence znaků horní meze je menší než sekvence dolní meze"
-#: locale/programs/ld-ctype.c:1956 locale/programs/ld-ctype.c:2007
+#: locale/programs/ld-ctype.c:1957 locale/programs/ld-ctype.c:2008
msgid "premature end of `translit_ignore' definition"
msgstr "pÅ™edÄasný konec definice „translit_ignore“"
-#: locale/programs/ld-ctype.c:1962 locale/programs/ld-ctype.c:2013
-#: locale/programs/ld-ctype.c:2055
+#: locale/programs/ld-ctype.c:1963 locale/programs/ld-ctype.c:2014
+#: locale/programs/ld-ctype.c:2056
msgid "syntax error"
msgstr "chyba syntaxe"
-#: locale/programs/ld-ctype.c:2188
+#: locale/programs/ld-ctype.c:2189
#, c-format
msgid "%s: syntax error in definition of new character class"
msgstr "%s: syntaktická chyba v definici nové třídy znaků"
-#: locale/programs/ld-ctype.c:2203
+#: locale/programs/ld-ctype.c:2204
#, c-format
msgid "%s: syntax error in definition of new character map"
msgstr "%s: syntaktická chyba v definici nové znakové sady"
-#: locale/programs/ld-ctype.c:2363
+#: locale/programs/ld-ctype.c:2364
msgid "ellipsis range must be marked by two operands of same type"
msgstr "výpustkový rozsah musí být vyznaÄen dvÄ›ma operandy stejného typu"
-#: locale/programs/ld-ctype.c:2372
+#: locale/programs/ld-ctype.c:2373
msgid "with symbolic name range values the absolute ellipsis `...' must not be used"
msgstr "s hodnotami symbolického jmenného rozsahu nelze použit absolutní výpustku „...“"
-#: locale/programs/ld-ctype.c:2387
+#: locale/programs/ld-ctype.c:2388
msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'"
msgstr "spolu s hodnotami UCS rozsahu se musí použít šestnáctková symbolická výpustka „..“"
-#: locale/programs/ld-ctype.c:2401
+#: locale/programs/ld-ctype.c:2402
msgid "with character code range values one must use the absolute ellipsis `...'"
msgstr "spolu s hodnotami rozsahu kódů znaku se misí použít absolutní výpustka „...“"
-#: locale/programs/ld-ctype.c:2552
+#: locale/programs/ld-ctype.c:2553
#, c-format
msgid "duplicated definition for mapping `%s'"
msgstr "duplicitní definice mapovaní „%s“"
-#: locale/programs/ld-ctype.c:2638 locale/programs/ld-ctype.c:2782
+#: locale/programs/ld-ctype.c:2639 locale/programs/ld-ctype.c:2783
#, c-format
msgid "%s: `translit_start' section does not end with `translit_end'"
msgstr "%s: sekce „translit_start“ nekonÄí na „translit_end“"
-#: locale/programs/ld-ctype.c:2733
+#: locale/programs/ld-ctype.c:2734
#, c-format
msgid "%s: duplicate `default_missing' definition"
msgstr "%s: duplicitní definice „default_missing“"
-#: locale/programs/ld-ctype.c:2738
+#: locale/programs/ld-ctype.c:2739
msgid "previous definition was here"
msgstr "předchozí definice byla zde"
-#: locale/programs/ld-ctype.c:2760
+#: locale/programs/ld-ctype.c:2761
#, c-format
msgid "%s: no representable `default_missing' definition found"
msgstr "%s: nenalezena žádná reprezentovatelná definice „default_missing“"
-#: locale/programs/ld-ctype.c:2877 locale/programs/ld-ctype.c:2973
-#: locale/programs/ld-ctype.c:2992 locale/programs/ld-ctype.c:3012
-#: locale/programs/ld-ctype.c:3032 locale/programs/ld-ctype.c:3052
-#: locale/programs/ld-ctype.c:3072 locale/programs/ld-ctype.c:3111
-#: locale/programs/ld-ctype.c:3131 locale/programs/ld-ctype.c:3195
-#: locale/programs/ld-ctype.c:3236 locale/programs/ld-ctype.c:3259
+#: locale/programs/ld-ctype.c:2878 locale/programs/ld-ctype.c:2974
+#: locale/programs/ld-ctype.c:2993 locale/programs/ld-ctype.c:3013
+#: locale/programs/ld-ctype.c:3033 locale/programs/ld-ctype.c:3053
+#: locale/programs/ld-ctype.c:3073 locale/programs/ld-ctype.c:3112
+#: locale/programs/ld-ctype.c:3132 locale/programs/ld-ctype.c:3198
+#: locale/programs/ld-ctype.c:3239 locale/programs/ld-ctype.c:3262
#, c-format
msgid "%s: character `%s' not defined while needed as default value"
-msgstr "%s: znak „%s“ potřebný jako implicitní hodnota není definován"
+msgstr "%s: znak „%s“ potřebný jako výchozí hodnota není definován"
-#: locale/programs/ld-ctype.c:2882 locale/programs/ld-ctype.c:2978
-#: locale/programs/ld-ctype.c:2997 locale/programs/ld-ctype.c:3017
-#: locale/programs/ld-ctype.c:3037 locale/programs/ld-ctype.c:3057
-#: locale/programs/ld-ctype.c:3077 locale/programs/ld-ctype.c:3116
-#: locale/programs/ld-ctype.c:3136 locale/programs/ld-ctype.c:3200
+#: locale/programs/ld-ctype.c:2883 locale/programs/ld-ctype.c:2979
+#: locale/programs/ld-ctype.c:2998 locale/programs/ld-ctype.c:3018
+#: locale/programs/ld-ctype.c:3038 locale/programs/ld-ctype.c:3058
+#: locale/programs/ld-ctype.c:3078 locale/programs/ld-ctype.c:3117
+#: locale/programs/ld-ctype.c:3137 locale/programs/ld-ctype.c:3203
#, c-format
msgid "%s: character `%s' in charmap not representable with one byte"
msgstr "%s: znak „%s“ z mapy znaků není reprezentovatelný jedním bajtem"
-#: locale/programs/ld-ctype.c:3242 locale/programs/ld-ctype.c:3265
+#: locale/programs/ld-ctype.c:3245 locale/programs/ld-ctype.c:3268
#, c-format
msgid "%s: character `%s' needed as default value not representable with one byte"
-msgstr "%s: znak „%s“ potřebný jako implicitní hodnota není reprezentovatelný jedním bajtem"
+msgstr "%s: znak „%s“ potřebný jako výchozí hodnota není reprezentovatelný jedním bajtem"
-#: locale/programs/ld-ctype.c:3321
+#: locale/programs/ld-ctype.c:3324
msgid "no output digits defined and none of the standard names in the charmap"
msgstr "nedefinovány žádné výstupní Äíslice a žádná standardní jména v mapÄ› znaků"
-#: locale/programs/ld-ctype.c:3570
+#: locale/programs/ld-ctype.c:3573
#, c-format
msgid "%s: transliteration data from locale `%s' not available"
msgstr "%s: přepisovací data pro národní prostřední „%s“ nejsou dostupná"
-#: locale/programs/ld-ctype.c:3669
+#: locale/programs/ld-ctype.c:3672
#, c-format
msgid "%s: table for class \"%s\": %lu bytes"
msgstr "%s: tabulka pro třídu „%s“: %lu bajtů"
-#: locale/programs/ld-ctype.c:3733
+#: locale/programs/ld-ctype.c:3736
#, c-format
msgid "%s: table for map \"%s\": %lu bytes"
msgstr "%s: tabulka pro mapu „%s“: %lu bajtů"
-#: locale/programs/ld-ctype.c:3857
+#: locale/programs/ld-ctype.c:3860
#, c-format
msgid "%s: table for width: %lu bytes"
msgstr "%s: tabulka se šířkou: %lu bajtů"
@@ -2626,121 +2627,115 @@ msgstr ""
"NÃZEV\n"
"[-a|-m]"
-#: locale/programs/locale.c:190
+#: locale/programs/locale.c:522
#, c-format
-msgid "Cannot set LC_CTYPE to default locale"
-msgstr "LC_CTYPE nelze nastavit na implicitní národní prostředí"
-
-#: locale/programs/locale.c:192
-#, c-format
-msgid "Cannot set LC_MESSAGES to default locale"
-msgstr "LC_MESSAGES nelze nastavit na implicitní národní prostředí"
+msgid "while preparing output"
+msgstr "během přípravy výstupu"
-#: locale/programs/locale.c:205
+#: locale/programs/locale.c:998
#, c-format
-msgid "Cannot set LC_COLLATE to default locale"
-msgstr "LC_COLLATE nelze nastavit na implicitní národní prostředí"
+msgid "Cannot set %s to default locale"
+msgstr "%s nelze nastavit na výchozí národní prostředí"
-#: locale/programs/locale.c:221
+#: locale/programs/locale.c:1096
#, c-format
-msgid "Cannot set LC_ALL to default locale"
-msgstr "LC_ALL nelze nastavit na implicitní národní prostředí"
+msgid "warning: The LOCPATH variable is set to \"%s\"\n"
+msgstr "pozor: Proměnná LOCPATH je nastavena na „%s“\n"
-#: locale/programs/locale.c:521
-#, c-format
-msgid "while preparing output"
-msgstr "během přípravy výstupu"
-
-#: locale/programs/localedef.c:112
+#: locale/programs/localedef.c:116
msgid "Input Files:"
msgstr "Vstupní soubory:"
-#: locale/programs/localedef.c:114
+#: locale/programs/localedef.c:118
msgid "Symbolic character names defined in FILE"
msgstr "Symbolické názvy znaků budou Äteny ze SOUBORU (znakové sady)"
-#: locale/programs/localedef.c:116
+#: locale/programs/localedef.c:120
msgid "Source definitions are found in FILE"
msgstr "NaÄte zdrojovou definici národního prostÅ™edí ze SOUBORU"
-#: locale/programs/localedef.c:118
+#: locale/programs/localedef.c:122
msgid "FILE contains mapping from symbolic names to UCS4 values"
msgstr "SOUBOR obsahující mapování symbolických názvů na UCS4 hodnoty"
-#: locale/programs/localedef.c:122
+#: locale/programs/localedef.c:126
msgid "Create output even if warning messages were issued"
msgstr "Vytvoří výstupní soubor i při výskytu varování"
-#: locale/programs/localedef.c:123
+#: locale/programs/localedef.c:128
+msgid "Do not create hard links between installed locales"
+msgstr "Nevytvoří pevné odkazy mezi instalovanými národními prostředími"
+
+#: locale/programs/localedef.c:129
msgid "Optional output file prefix"
msgstr "Volitelná předpona výstupních souborů"
-#: locale/programs/localedef.c:124
+#: locale/programs/localedef.c:130
msgid "Strictly conform to POSIX"
msgstr "Přesně v souladu s POSIX"
-#: locale/programs/localedef.c:126
+#: locale/programs/localedef.c:132
msgid "Suppress warnings and information messages"
msgstr "PotlaÄí varovné a informaÄní zprávy"
# Verbose
-#: locale/programs/localedef.c:127
+#: locale/programs/localedef.c:133
msgid "Print more messages"
msgstr "Vypíše více informací o průběhu"
-#: locale/programs/localedef.c:128 locale/programs/localedef.c:131
+#: locale/programs/localedef.c:134 locale/programs/localedef.c:137
msgid "<warnings>"
msgstr "<varování> "
-#: locale/programs/localedef.c:129
+#: locale/programs/localedef.c:135
msgid "Comma-separated list of warnings to disable; supported warnings are: ascii, intcurrsym"
msgstr "Čárkou oddělený seznam varování k zakázání; podporovaná varování jsou: ascii, intcurrsym"
-#: locale/programs/localedef.c:132
+#: locale/programs/localedef.c:138
msgid "Comma-separated list of warnings to enable; supported warnings are: ascii, intcurrsym"
msgstr "Čárkou oddělený seznam varování k povolení; podporovaná varování jsou: ascii, intcurrsym"
-#: locale/programs/localedef.c:135
+#: locale/programs/localedef.c:141
msgid "Archive control:"
msgstr "Řízení archivace:"
-#: locale/programs/localedef.c:137
+#: locale/programs/localedef.c:143
msgid "Don't add new data to archive"
msgstr "Do archivu nová data do nepřidá"
-#: locale/programs/localedef.c:139
+#: locale/programs/localedef.c:145
msgid "Add locales named by parameters to archive"
msgstr "Do archivu přidá nová národní prostředí dle parametrů"
-#: locale/programs/localedef.c:140
+#: locale/programs/localedef.c:146
msgid "Replace existing archive content"
msgstr "Existující obsah archivu bude nahrazen"
-#: locale/programs/localedef.c:142
+#: locale/programs/localedef.c:148
msgid "Remove locales named by parameters from archive"
msgstr "Z archivu odstraní národní prostředí dle parametrů"
-#: locale/programs/localedef.c:143
+#: locale/programs/localedef.c:149
msgid "List content of archive"
msgstr "Vypíše obsah archivu"
-#: locale/programs/localedef.c:145
+#: locale/programs/localedef.c:151
msgid "locale.alias file to consult when making archive"
msgstr "Soubor locale.alias, který bude použit při vytváření archivu"
-#: locale/programs/localedef.c:147
+#: locale/programs/localedef.c:153
msgid "Generate little-endian output"
msgstr "Vytvoří výstup s malou endianitou"
-#: locale/programs/localedef.c:149
+#: locale/programs/localedef.c:155
msgid "Generate big-endian output"
msgstr "Vytvoří výstup s velkou endianitou"
-#: locale/programs/localedef.c:154
+#: locale/programs/localedef.c:160
msgid "Compile locale specification"
msgstr "Kompiluje definice národního prostředí."
-#: locale/programs/localedef.c:157
+#: locale/programs/localedef.c:163
msgid ""
"NAME\n"
"[--add-to-archive|--delete-from-archive] FILE...\n"
@@ -2750,31 +2745,31 @@ msgstr ""
"[--add-to-archive|--delete-from-archive] SOUBOR…\n"
"--list-archive [SOUBOR]"
-#: locale/programs/localedef.c:232
+#: locale/programs/localedef.c:238
#, c-format
msgid "cannot create directory for output files"
msgstr "adresář pro výstupní soubory nelze vytvořit"
-#: locale/programs/localedef.c:243
+#: locale/programs/localedef.c:249
msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
msgstr "FATÃLNà CHYBA: systém nedefinuje „_POSIX2_LOCALEDEF“"
-#: locale/programs/localedef.c:257 locale/programs/localedef.c:273
-#: locale/programs/localedef.c:663 locale/programs/localedef.c:683
+#: locale/programs/localedef.c:263 locale/programs/localedef.c:279
+#: locale/programs/localedef.c:673 locale/programs/localedef.c:693
#, c-format
msgid "cannot open locale definition file `%s'"
msgstr "soubor „%s“ definice národního prostředí nelze otevřít"
-#: locale/programs/localedef.c:297
+#: locale/programs/localedef.c:303
#, c-format
msgid "cannot write output files to `%s'"
msgstr "výstupní soubory nelze do „%s“ zapsat"
-#: locale/programs/localedef.c:303
+#: locale/programs/localedef.c:309
msgid "no output file produced because errors were issued"
msgstr "výstupní soubor nebyl vytvořen, protože se vyskytly chyby"
-#: locale/programs/localedef.c:431
+#: locale/programs/localedef.c:441
#, c-format
msgid ""
"System's directory for character maps : %s\n"
@@ -2787,11 +2782,11 @@ msgstr ""
" lokalizaÄní cesta: %s\n"
"%s"
-#: locale/programs/localedef.c:631
+#: locale/programs/localedef.c:641
msgid "circular dependencies between locale definitions"
msgstr "kruhové závislosti mezi definicemi národního prostředí"
-#: locale/programs/localedef.c:637
+#: locale/programs/localedef.c:647
#, c-format
msgid "cannot add already read locale `%s' a second time"
msgstr "již naÄtené národní prostÅ™edí „%s“ nelze po druhé pÅ™idat"
@@ -2947,24 +2942,24 @@ msgstr "výstupní soubor „%s“ pro kategorii „%s“ nelze otevřít"
msgid "failure while writing data for category `%s'"
msgstr "chyba během zápisu dat kategorie „%s“"
-#: locale/programs/locfile.c:917
+#: locale/programs/locfile.c:930
#, c-format
msgid "cannot create output file `%s' for category `%s'"
msgstr "výstupní soubor „%s“ pro kategorii „%s“ nelze vytvořit"
-#: locale/programs/locfile.c:953
+#: locale/programs/locfile.c:966
msgid "expecting string argument for `copy'"
msgstr "jako argument pro „copy“ oÄekáván Å™etÄ›zec"
-#: locale/programs/locfile.c:957
+#: locale/programs/locfile.c:970
msgid "locale name should consist only of portable characters"
msgstr "jméno národního prostředí by mělo být tvořeno jen přenositelnými znaky"
-#: locale/programs/locfile.c:976
+#: locale/programs/locfile.c:989
msgid "no other keyword shall be specified when `copy' is used"
msgstr "pÅ™i použití „copy“ není dovoleno použít žádné jiné klíÄové slovo"
-#: locale/programs/locfile.c:990
+#: locale/programs/locfile.c:1003
#, c-format
msgid "`%1$s' definition does not end with `END %1$s'"
msgstr "Definice „%1$s“ nekonÄí „END %1$s“"
@@ -3130,7 +3125,7 @@ msgstr "Text nadpisu použitý ve výstupní grafice"
#: malloc/memusagestat.c:58
msgid "Generate output linear to time (default is linear to number of function calls)"
-msgstr "Vytvoří výstup lineární v Äase (implicitní chování je linearita vzhledem k poÄtu volání funkce) "
+msgstr "Vytvoří výstup lineární v Äase (výchozí chování je linearita vzhledem k poÄtu volání funkce)"
#: malloc/memusagestat.c:62
msgid "Also draw graph for total memory consumption"
@@ -3642,7 +3637,7 @@ msgstr " Implicitní Älenové:\n"
#: nis/nis_print_group_entry.c:138
msgid " No implicit members\n"
-msgstr " Žádní implicitní Älenové\n"
+msgstr " Žádní výchozí Älenové\n"
#: nis/nis_print_group_entry.c:141
msgid " Recursive members:\n"
@@ -3666,7 +3661,7 @@ msgstr " Implicitní neÄlenové:\n"
#: nis/nis_print_group_entry.c:162
msgid " No implicit nonmembers\n"
-msgstr " Žádní implicitní neÄlenové\n"
+msgstr " Žádní výchozí neÄlenové\n"
#: nis/nis_print_group_entry.c:165
msgid " Recursive nonmembers:\n"
@@ -3804,12 +3799,12 @@ msgstr "yp_update: název poÄítaÄe nelze konvertovat na síťový název\n"
msgid "yp_update: cannot get server address\n"
msgstr "yp_update: adresu serveru nelze zjistit\n"
-#: nscd/aicache.c:83 nscd/hstcache.c:452
+#: nscd/aicache.c:82 nscd/hstcache.c:452
#, c-format
msgid "Haven't found \"%s\" in hosts cache!"
msgstr "„%s“ nebylo v cache pamÄ›ti pro poÄítaÄe nalezeno!"
-#: nscd/aicache.c:85 nscd/hstcache.c:454
+#: nscd/aicache.c:84 nscd/hstcache.c:454
#, c-format
msgid "Reloading \"%s\" in hosts cache!"
msgstr "Znovu naÄítám „%s“ do keÅ¡e pro jména poÄítaÄů!"
@@ -4130,22 +4125,22 @@ msgstr "z keše %2$s uvolněno %1$zu bajtů"
msgid "no more memory for database '%s'"
msgstr "Žádná další paměť pro databázi „%s“"
-#: nscd/netgroupcache.c:121
+#: nscd/netgroupcache.c:122
#, c-format
msgid "Haven't found \"%s\" in netgroup cache!"
msgstr "„%s“ nebylo v keši síťových skupin nalezeno!"
-#: nscd/netgroupcache.c:123
+#: nscd/netgroupcache.c:124
#, c-format
msgid "Reloading \"%s\" in netgroup cache!"
msgstr "Znovu se nahrává „%s“ do keše síťových skupin!"
-#: nscd/netgroupcache.c:469
+#: nscd/netgroupcache.c:470
#, c-format
msgid "Haven't found \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr "„%s (%s, %s, %s)“ nebylo v keši síťových skupin nalezeno!"
-#: nscd/netgroupcache.c:472
+#: nscd/netgroupcache.c:473
#, c-format
msgid "Reloading \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr "Znovu se nahrává „%s (%s,%s,%s)“ do keše síťových skupin!"
@@ -4198,7 +4193,7 @@ msgstr "Použije oddělenou cache pro každého uživatele"
msgid "Name Service Cache Daemon."
msgstr "NSC (Name Service Cache) démon [pro kešování jmenných služeb]."
-#: nscd/nscd.c:155 nss/getent.c:967 nss/makedb.c:206
+#: nscd/nscd.c:155 nss/getent.c:987 nss/makedb.c:206
#, c-format
msgid "wrong number of arguments"
msgstr "chybný poÄet argumentů"
@@ -4306,28 +4301,28 @@ msgstr "Chyba analýzy: %s"
msgid "Must specify user name for server-user option"
msgstr "U volby server-user musíte uvést jméno uživatele"
-#: nscd/nscd_conf.c:198
+#: nscd/nscd_conf.c:201
#, c-format
msgid "Must specify user name for stat-user option"
msgstr "U volby stat-user musíte uvést jméno uživatele"
-#: nscd/nscd_conf.c:255
+#: nscd/nscd_conf.c:259
#, c-format
msgid "Must specify value for restart-interval option"
msgstr "U volby restart-interval musíte uvést hodnotu"
# Volba na řádku v nscd.conf nenalezena
-#: nscd/nscd_conf.c:269
+#: nscd/nscd_conf.c:273
#, c-format
msgid "Unknown option: %s %s %s"
msgstr "Neznámá volba: %s %s %s"
-#: nscd/nscd_conf.c:282
+#: nscd/nscd_conf.c:286
#, c-format
msgid "cannot get current working directory: %s; disabling paranoia mode"
msgstr "nelze získat název souÄasného pracovního adresáře: %s, vypínám paranoidní režim"
-#: nscd/nscd_conf.c:302
+#: nscd/nscd_conf.c:306
#, c-format
msgid "maximum file size for %s database too small"
msgstr "maximální velikost souboru pro databázi %s je příliš malá"
@@ -4590,46 +4585,46 @@ msgstr "„%s“ nebylo v keši pro služby nalezeno!"
msgid "Reloading \"%s\" in services cache!"
msgstr "Znovu naÄítám „%s“ do keÅ¡e pro služby!"
-#: nss/getent.c:54
+#: nss/getent.c:55
msgid "database [key ...]"
msgstr "databáze [klíÄ…]"
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "CONFIG"
msgstr "KONFIGURACE"
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "Service configuration to be used"
msgstr "Konfigurace služby, která má být použita"
-#: nss/getent.c:60
+#: nss/getent.c:61
msgid "disable IDN encoding"
msgstr "zakáže kódování IDN"
-#: nss/getent.c:65
+#: nss/getent.c:66
msgid "Get entries from administrative database."
msgstr "Získá záznamy ze správní databáze."
-#: nss/getent.c:149 nss/getent.c:442 nss/getent.c:489
+#: nss/getent.c:150 nss/getent.c:462 nss/getent.c:509
#, c-format
msgid "Enumeration not supported on %s\n"
msgstr "VýÄet není podporován na %s\n"
-#: nss/getent.c:497 nss/getent.c:510
+#: nss/getent.c:517 nss/getent.c:530
#, c-format
msgid "Could not allocate group list: %m\n"
msgstr "Seznam skupin nebylo možné alokovat: %m\n"
-#: nss/getent.c:881
+#: nss/getent.c:901
#, c-format
msgid "Unknown database name"
msgstr "Neznámé jméno databáze"
-#: nss/getent.c:911
+#: nss/getent.c:931
msgid "Supported databases:\n"
msgstr "Podporované databáze:\n"
-#: nss/getent.c:977
+#: nss/getent.c:997
#, c-format
msgid "Unknown database: %s\n"
msgstr "Neznámá databáze: %s\n"
@@ -4886,11 +4881,11 @@ msgstr "Regulární výraz je příliš velký"
msgid "Unmatched ) or \\)"
msgstr "Nepárová ) or \\)"
-#: posix/regcomp.c:689
+#: posix/regcomp.c:676
msgid "No previous regular expression"
msgstr "Předchozí regulární výraz neexistuje"
-#: posix/wordexp.c:1815
+#: posix/wordexp.c:1816
msgid "parameter null or not set"
msgstr "parametr je nullový nebo prázdný"
@@ -5075,7 +5070,7 @@ msgstr "Výstupní vyrovnávací paměť k dispozici"
msgid "Input message available"
msgstr "Vstupní zpráva k dispozici"
-#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:381 timezone/zic.c:520
+#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:375 timezone/zic.c:561
msgid "I/O error"
msgstr "Chyba vstupu/výstupu"
@@ -5158,7 +5153,7 @@ msgstr "Neznámý signál %d"
#: sunrpc/auth_unix.c:112 sunrpc/clnt_tcp.c:124 sunrpc/clnt_udp.c:139
#: sunrpc/clnt_unix.c:125 sunrpc/svc_tcp.c:189 sunrpc/svc_tcp.c:233
#: sunrpc/svc_udp.c:161 sunrpc/svc_unix.c:189 sunrpc/svc_unix.c:229
-#: sunrpc/xdr.c:628 sunrpc/xdr.c:788 sunrpc/xdr_array.c:102
+#: sunrpc/xdr.c:631 sunrpc/xdr.c:791 sunrpc/xdr_array.c:102
#: sunrpc/xdr_rec.c:153 sunrpc/xdr_ref.c:79
msgid "out of memory\n"
msgstr "nedostatek paměti\n"
@@ -6423,56 +6418,69 @@ msgstr "Tentokrát jste to skuteÄnÄ› zvoral"
# Toto je parafráze na vojenský žarogon, kdy refundace za smrt vojáka umožnila
# pozůstalým zakoupit farmu <http://www.snopes.com/language/phrases/farm.asp>.
#. TRANS Go home and have a glass of warm, dairy-fresh milk.
-#: sysdeps/gnu/errlist.c:978
+#. TRANS @c Okay. Since you are dying to know, I'll tell you.
+#. TRANS @c This is a joke, obviously. There is a children's song which begins,
+#. TRANS @c "Old McDonald had a farm, e-i-e-i-o." Every time I see the (real)
+#. TRANS @c errno macro EIO, I think about that song. Probably most of my
+#. TRANS @c compatriots who program on Unix do, too. One of them must have stayed
+#. TRANS @c up a little too late one night and decided to add it to Hurd or Glibc.
+#. TRANS @c Whoever did it should be castigated, but it made me laugh.
+#. TRANS @c --jtobey@channel1.com
+#. TRANS @c
+#. TRANS @c "bought the farm" means "died". -jtobey
+#. TRANS @c
+#. TRANS @c Translators, please do not translate this litteraly, translate it into
+#. TRANS @c an idiomatic funny way of saying that the computer died.
+#: sysdeps/gnu/errlist.c:991
msgid "Computer bought the farm"
msgstr "PoÄítaÄ odeÅ¡el do kÅ™emíkového nebe"
#. TRANS This error code has no purpose.
-#: sysdeps/gnu/errlist.c:987
+#: sysdeps/gnu/errlist.c:1000
msgid "Gratuitous error"
msgstr "Svévolná chyba"
-#: sysdeps/gnu/errlist.c:995
+#: sysdeps/gnu/errlist.c:1008
msgid "Bad message"
msgstr "Chybná zpráva"
-#: sysdeps/gnu/errlist.c:1003
+#: sysdeps/gnu/errlist.c:1016
msgid "Identifier removed"
msgstr "Identifikátor odstraněn"
-#: sysdeps/gnu/errlist.c:1011
+#: sysdeps/gnu/errlist.c:1024
msgid "Multihop attempted"
msgstr "Pokus o spojení přes více uzlů"
-#: sysdeps/gnu/errlist.c:1019
+#: sysdeps/gnu/errlist.c:1032
msgid "No data available"
msgstr "Data nejsou k dispozici"
-#: sysdeps/gnu/errlist.c:1027
+#: sysdeps/gnu/errlist.c:1040
msgid "Link has been severed"
msgstr "Odkaz byl zpřetrhán"
-#: sysdeps/gnu/errlist.c:1035
+#: sysdeps/gnu/errlist.c:1048
msgid "No message of desired type"
msgstr "Žádná zpráva žádaného typu"
-#: sysdeps/gnu/errlist.c:1043
+#: sysdeps/gnu/errlist.c:1056
msgid "Out of streams resources"
msgstr "Zdroje proudu vyÄerpány"
-#: sysdeps/gnu/errlist.c:1051
+#: sysdeps/gnu/errlist.c:1064
msgid "Device not a stream"
msgstr "Zařízení není proudem"
-#: sysdeps/gnu/errlist.c:1059
+#: sysdeps/gnu/errlist.c:1072
msgid "Value too large for defined data type"
msgstr "Hodnota je příliš velká pro daný datový typ"
-#: sysdeps/gnu/errlist.c:1067
+#: sysdeps/gnu/errlist.c:1080
msgid "Protocol error"
msgstr "Chyba protokolu"
-#: sysdeps/gnu/errlist.c:1075
+#: sysdeps/gnu/errlist.c:1088
msgid "Timer expired"
msgstr "ÄŒasovaÄ vyprÅ¡el"
@@ -6480,195 +6488,195 @@ msgstr "ÄŒasovaÄ vyprÅ¡el"
#. TRANS completed. @xref{Asynchronous I/O}. When you call @code{aio_cancel},
#. TRANS the normal result is for the operations affected to complete with this
#. TRANS error; @pxref{Cancel AIO Operations}.
-#: sysdeps/gnu/errlist.c:1087
+#: sysdeps/gnu/errlist.c:1100
msgid "Operation canceled"
msgstr "Operace zrušena"
-#: sysdeps/gnu/errlist.c:1095
+#: sysdeps/gnu/errlist.c:1108
msgid "Owner died"
msgstr "Majitel mrtev"
-#: sysdeps/gnu/errlist.c:1103
+#: sysdeps/gnu/errlist.c:1116
msgid "State not recoverable"
msgstr "Stav nelze obnovit"
-#: sysdeps/gnu/errlist.c:1111
+#: sysdeps/gnu/errlist.c:1124
msgid "Interrupted system call should be restarted"
msgstr "Přerušené volání systému by mělo být znovu spuštěno"
-#: sysdeps/gnu/errlist.c:1119
+#: sysdeps/gnu/errlist.c:1132
msgid "Channel number out of range"
msgstr "Číslo kanálu mimo povolený rozsah"
-#: sysdeps/gnu/errlist.c:1127
+#: sysdeps/gnu/errlist.c:1140
msgid "Level 2 not synchronized"
msgstr "2. vrstva není synchronizována"
-#: sysdeps/gnu/errlist.c:1135
+#: sysdeps/gnu/errlist.c:1148
msgid "Level 3 halted"
msgstr "3. vrstva zastavena"
-#: sysdeps/gnu/errlist.c:1143
+#: sysdeps/gnu/errlist.c:1156
msgid "Level 3 reset"
msgstr "3. vrstva nastavena na výchozí hodnoty"
-#: sysdeps/gnu/errlist.c:1151
+#: sysdeps/gnu/errlist.c:1164
msgid "Link number out of range"
msgstr "Číslo odkazu mimo rozsah"
-#: sysdeps/gnu/errlist.c:1159
+#: sysdeps/gnu/errlist.c:1172
msgid "Protocol driver not attached"
msgstr "OvladaÄ protokolu nepÅ™ipojen"
-#: sysdeps/gnu/errlist.c:1167
+#: sysdeps/gnu/errlist.c:1180
msgid "No CSI structure available"
msgstr "CSI struktura není dostupná"
-#: sysdeps/gnu/errlist.c:1175
+#: sysdeps/gnu/errlist.c:1188
msgid "Level 2 halted"
msgstr "2. vrstva zastavena"
-#: sysdeps/gnu/errlist.c:1183
+#: sysdeps/gnu/errlist.c:1196
msgid "Invalid exchange"
msgstr "Nepřípustná výměna"
-#: sysdeps/gnu/errlist.c:1191
+#: sysdeps/gnu/errlist.c:1204
msgid "Invalid request descriptor"
msgstr "Nepřípustný deskriptor žádosti"
-#: sysdeps/gnu/errlist.c:1199
+#: sysdeps/gnu/errlist.c:1212
msgid "Exchange full"
msgstr "Plný výměník"
-#: sysdeps/gnu/errlist.c:1207
+#: sysdeps/gnu/errlist.c:1220
msgid "No anode"
msgstr "Žádný anode"
-#: sysdeps/gnu/errlist.c:1215
+#: sysdeps/gnu/errlist.c:1228
msgid "Invalid request code"
msgstr "Neplatný kód žádosti"
-#: sysdeps/gnu/errlist.c:1223
+#: sysdeps/gnu/errlist.c:1236
msgid "Invalid slot"
msgstr "Neplatný slot"
-#: sysdeps/gnu/errlist.c:1231
+#: sysdeps/gnu/errlist.c:1244
msgid "File locking deadlock error"
msgstr "Vzájemné zablokování při zamykaní souboru"
-#: sysdeps/gnu/errlist.c:1239
+#: sysdeps/gnu/errlist.c:1252
msgid "Bad font file format"
msgstr "Chybný formát fontu"
-#: sysdeps/gnu/errlist.c:1247
+#: sysdeps/gnu/errlist.c:1260
msgid "Machine is not on the network"
msgstr "PoÄítaÄ není v síti"
-#: sysdeps/gnu/errlist.c:1255
+#: sysdeps/gnu/errlist.c:1268
msgid "Package not installed"
msgstr "Balík není nainstalován"
-#: sysdeps/gnu/errlist.c:1263
+#: sysdeps/gnu/errlist.c:1276
msgid "Advertise error"
msgstr "Chyba při zveřejnění"
-#: sysdeps/gnu/errlist.c:1271
+#: sysdeps/gnu/errlist.c:1284
msgid "Srmount error"
msgstr "Chyba ssrmount"
-#: sysdeps/gnu/errlist.c:1279
+#: sysdeps/gnu/errlist.c:1292
msgid "Communication error on send"
msgstr "Chyba komunikace při vysílaní"
-#: sysdeps/gnu/errlist.c:1287
+#: sysdeps/gnu/errlist.c:1300
msgid "RFS specific error"
msgstr "RFS-specifická chyba"
-#: sysdeps/gnu/errlist.c:1295
+#: sysdeps/gnu/errlist.c:1308
msgid "Name not unique on network"
msgstr "Jméno v síti není jednoznaÄné"
-#: sysdeps/gnu/errlist.c:1303
+#: sysdeps/gnu/errlist.c:1316
msgid "File descriptor in bad state"
msgstr "Deskriptor souboru se nachází v chybném stavu"
-#: sysdeps/gnu/errlist.c:1311
+#: sysdeps/gnu/errlist.c:1324
msgid "Remote address changed"
msgstr "Vzdálená adresa byla změnila"
-#: sysdeps/gnu/errlist.c:1319
+#: sysdeps/gnu/errlist.c:1332
msgid "Can not access a needed shared library"
msgstr "K potřebné sdílené knihovně nelze přistoupit"
-#: sysdeps/gnu/errlist.c:1327
+#: sysdeps/gnu/errlist.c:1340
msgid "Accessing a corrupted shared library"
msgstr "Použití poškozené sdílené knihovny"
-#: sysdeps/gnu/errlist.c:1335
+#: sysdeps/gnu/errlist.c:1348
msgid ".lib section in a.out corrupted"
msgstr "Poškozená sekce .lib v a.out"
-#: sysdeps/gnu/errlist.c:1343
+#: sysdeps/gnu/errlist.c:1356
msgid "Attempting to link in too many shared libraries"
msgstr "Pokus o připojení příliš mnoha sdílených knihoven"
-#: sysdeps/gnu/errlist.c:1351
+#: sysdeps/gnu/errlist.c:1364
msgid "Cannot exec a shared library directly"
msgstr "Sdílenou knihovnu nelze přímo spustit"
-#: sysdeps/gnu/errlist.c:1359
+#: sysdeps/gnu/errlist.c:1372
msgid "Streams pipe error"
msgstr "Chyba roury proudů"
-#: sysdeps/gnu/errlist.c:1367
+#: sysdeps/gnu/errlist.c:1380
msgid "Structure needs cleaning"
msgstr "Struktura potřebuje opravu"
-#: sysdeps/gnu/errlist.c:1375
+#: sysdeps/gnu/errlist.c:1388
msgid "Not a XENIX named type file"
msgstr "Nejde o Xenixový soubor pojmenovaného typu"
-#: sysdeps/gnu/errlist.c:1383
+#: sysdeps/gnu/errlist.c:1396
msgid "No XENIX semaphores available"
msgstr "Xenixové semafory nejsou dostupné"
-#: sysdeps/gnu/errlist.c:1391
+#: sysdeps/gnu/errlist.c:1404
msgid "Is a named type file"
msgstr "Je soubor pojmenovaného typu"
-#: sysdeps/gnu/errlist.c:1399
+#: sysdeps/gnu/errlist.c:1412
msgid "Remote I/O error"
msgstr "Vzdálená chyba vstupu/výstupu"
-#: sysdeps/gnu/errlist.c:1407
+#: sysdeps/gnu/errlist.c:1420
msgid "No medium found"
msgstr "Médium nebylo nalezeno"
-#: sysdeps/gnu/errlist.c:1415
+#: sysdeps/gnu/errlist.c:1428
msgid "Wrong medium type"
msgstr "Chybný typ média"
-#: sysdeps/gnu/errlist.c:1423
+#: sysdeps/gnu/errlist.c:1436
msgid "Required key not available"
msgstr "Požadovaný klÃ­Ä není dostupný"
-#: sysdeps/gnu/errlist.c:1431
+#: sysdeps/gnu/errlist.c:1444
msgid "Key has expired"
msgstr "KlíÄi vyprÅ¡ela platnost"
-#: sysdeps/gnu/errlist.c:1439
+#: sysdeps/gnu/errlist.c:1452
msgid "Key has been revoked"
msgstr "KlÃ­Ä byl odvolán"
-#: sysdeps/gnu/errlist.c:1447
+#: sysdeps/gnu/errlist.c:1460
msgid "Key was rejected by service"
msgstr "KlÃ­Ä byl odmítnut službou"
-#: sysdeps/gnu/errlist.c:1455
+#: sysdeps/gnu/errlist.c:1468
msgid "Operation not possible due to RF-kill"
msgstr "Operace není možná kvůli zakázanému rádiu (RF-kill)"
-#: sysdeps/gnu/errlist.c:1463
+#: sysdeps/gnu/errlist.c:1476
msgid "Memory page has hardware error"
msgstr "Stránka paměti má hardwarovou poruchu"
@@ -6793,27 +6801,27 @@ msgstr "stínový zásobník není zapnut"
msgid "can't disable CET"
msgstr "CET nelze vypnout"
-#: timezone/zdump.c:338
+#: timezone/zdump.c:332
msgid "has fewer than 3 characters"
msgstr "má méně než 3 znaky"
-#: timezone/zdump.c:340
+#: timezone/zdump.c:334
msgid "has more than 6 characters"
msgstr "má více něž 6 znaků"
-#: timezone/zdump.c:342
+#: timezone/zdump.c:336
msgid "has characters other than ASCII alphanumerics, '-' or '+'"
msgstr "má znaky jiné jež písmena nebo Äíslice z ASCII nebo „-“ nebo „+“"
-#: timezone/zdump.c:347
+#: timezone/zdump.c:341
#, c-format
msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n"
msgstr "%s: varování: zóna „%s“ zkratka „%s“ %s\n"
-#: timezone/zdump.c:393
+#: timezone/zdump.c:387
#, c-format
msgid ""
-"%s: usage: %s OPTIONS ZONENAME ...\n"
+"%s: usage: %s OPTIONS TIMEZONE ...\n"
"Options include:\n"
" -c [L,]U Start at year L (default -500), end before year U (default 2500)\n"
" -t [L,]U Start at time L, end before time U (in seconds since 1970)\n"
@@ -6825,7 +6833,7 @@ msgid ""
"\n"
"Report bugs to %s.\n"
msgstr ""
-"%s: použití: %s PŘEPÃNAÄŒE NÃZEV_ZÓNY…\n"
+"%s: použití: %s PŘEPÃNAÄŒE ÄŒASOVÃ_ZÓNA…\n"
"PÅ™epínaÄe zahrnují:\n"
" -c [L,]U ZaÄne v roce L (výchozí -500), skonÄí pÅ™ed rokem U (výchozí 2500)\n"
" -t [L,]U ZaÄne v Äase L, skonÄí pÅ™ed Äasem U (v sekundách od roku 1970)\n"
@@ -6839,441 +6847,492 @@ msgstr ""
"PÅ™ipomínky k pÅ™ekladu zasílejte Äesky na adresu\n"
"<translation-team-cs@lists.sourceforge.net>.\n"
-#: timezone/zdump.c:479
+#: timezone/zdump.c:473
#, c-format
msgid "%s: wild -c argument %s\n"
msgstr "%s: divoký argument -c: %s\n"
-#: timezone/zdump.c:512
+#: timezone/zdump.c:506
#, c-format
msgid "%s: wild -t argument %s\n"
msgstr "%s: divoký argument -t: %s\n"
-#: timezone/zic.c:398
+#: timezone/zic.c:429
#, c-format
msgid "%s: Memory exhausted: %s\n"
msgstr "%s: Paměť vyÄerpána: %s\n"
-#: timezone/zic.c:406
+#: timezone/zic.c:437
msgid "size overflow"
msgstr "pÅ™eteÄení velikosti"
-#: timezone/zic.c:454
+#: timezone/zic.c:447
+msgid "alignment overflow"
+msgstr "pÅ™eteÄení zarovnání"
+
+#: timezone/zic.c:495
msgid "integer overflow"
msgstr "pÅ™eteÄení celoÄíselné hodnoty"
-#: timezone/zic.c:488
+#: timezone/zic.c:529
#, c-format
msgid "\"%s\", line %<PRIdMAX>: "
msgstr "„%s“, řádek %<PRIdMAX>: "
-#: timezone/zic.c:491
+#: timezone/zic.c:532
#, c-format
msgid " (rule from \"%s\", line %<PRIdMAX>)"
msgstr " (pravidlo z „%s“, řádek %<PRIdMAX>)"
-#: timezone/zic.c:510
+#: timezone/zic.c:551
#, c-format
msgid "warning: "
msgstr "varování: "
-#: timezone/zic.c:535
+#: timezone/zic.c:576
#, c-format
msgid ""
"%s: usage is %s [ --version ] [ --help ] [ -v ] \\\n"
"\t[ -l localtime ] [ -p posixrules ] [ -d directory ] \\\n"
-"\t[ -L leapseconds ] [ filename ... ]\n"
+"\t[ -t localtime-link ] [ -L leapseconds ] [ filename ... ]\n"
"\n"
"Report bugs to %s.\n"
msgstr ""
"%s: použití je %s [--version] [--help] [-v] [-l MÃSTNÃ_ÄŒAS] \\\n"
-"\t[-p POSIXOVÃ_PRAVIDLA] [-d ADRESÃŘ] [-L PŘESTUPNÃCH_SEKUND] \\\n"
-"\t[SOUBOR…]\n"
+"\t[-p POSIXOVÃ_PRAVIDLA] [-d ADRESÃŘ] [-t ODKAZ_NA_MÃSTNÃ_ÄŒAS] \\\n"
+"\t[-L PŘESTUPNÃCH_SEKUND] [SOUBOR…]\\\n"
"\n"
"Chyby hlaste anglicky na %s.\n"
-#: timezone/zic.c:558
+#: timezone/zic.c:599
#, c-format
msgid "%s: Can't chdir to %s: %s\n"
msgstr "%s: Pracovní adresář nelze změnit na %s: %s\n"
-#: timezone/zic.c:590
+#: timezone/zic.c:632
msgid "wild compilation-time specification of zic_t"
msgstr "divoké urÄení zic_t v dobÄ› pÅ™ekladu"
-#: timezone/zic.c:610
+#: timezone/zic.c:652
#, c-format
msgid "%s: More than one -d option specified\n"
msgstr "%s: PÅ™epínaÄ -d zadán více než jednou\n"
-#: timezone/zic.c:620
+#: timezone/zic.c:662
#, c-format
msgid "%s: More than one -l option specified\n"
msgstr "%s: PÅ™epínaÄ -l zadán více než jednou\n"
-#: timezone/zic.c:630
+#: timezone/zic.c:672
#, c-format
msgid "%s: More than one -p option specified\n"
msgstr "%s: PÅ™epínaÄ -p zadán více než jednou\n"
-#: timezone/zic.c:640
+#: timezone/zic.c:680
+#, c-format
+msgid "%s: More than one -t option specified\n"
+msgstr "%s: PÅ™epínaÄ -t zadán více než jednou\n"
+
+#: timezone/zic.c:689
+msgid "-y is obsolescent"
+msgstr "pÅ™epínaÄ -y se stává zastaralým"
+
+#: timezone/zic.c:693
#, c-format
msgid "%s: More than one -y option specified\n"
msgstr "%s: PÅ™epínaÄ -y zadán více než jednou\n"
-#: timezone/zic.c:650
+#: timezone/zic.c:703
#, c-format
msgid "%s: More than one -L option specified\n"
msgstr "%s: PÅ™epínaÄ -L zadán více než jednou\n"
-#: timezone/zic.c:659
+#: timezone/zic.c:712
msgid "-s ignored"
msgstr "-s ignorováno"
-#: timezone/zic.c:698
+#: timezone/zic.c:753
msgid "link to link"
msgstr "odkaz na odkaz"
-#: timezone/zic.c:701 timezone/zic.c:705
+#: timezone/zic.c:756 timezone/zic.c:760
msgid "command line"
msgstr "příkazová řádka"
-#: timezone/zic.c:721
+#: timezone/zic.c:776
msgid "empty file name"
msgstr "prázdný název souboru"
-#: timezone/zic.c:724
+#: timezone/zic.c:779
#, c-format
msgid "file name '%s' begins with '/'"
msgstr "název souboru „%s“ zaÄíná na „/“"
-#: timezone/zic.c:734
+#: timezone/zic.c:789
#, c-format
msgid "file name '%s' contains '%.*s' component"
msgstr "název souboru „%s“ obsahuje Äást „%.*s“"
-#: timezone/zic.c:740
+#: timezone/zic.c:795
#, c-format
msgid "file name '%s' component contains leading '-'"
msgstr "Äást názvu souboru „%s“ obsahuje úvodní „-“"
-#: timezone/zic.c:743
+#: timezone/zic.c:798
#, c-format
msgid "file name '%s' contains overlength component '%.*s...'"
msgstr "název souboru „%s“ obsahuje příliÅ¡ dlouhou Äást „%.*s…“"
-#: timezone/zic.c:771
+#: timezone/zic.c:826
#, c-format
msgid "file name '%s' contains byte '%c'"
msgstr "název souboru „%s“ obsahuje bajt „%c“"
-#: timezone/zic.c:772
+#: timezone/zic.c:827
#, c-format
msgid "file name '%s' contains byte '\\%o'"
msgstr "název souboru „%s“ obsahuje bajt „\\%o“"
-#: timezone/zic.c:842
+#: timezone/zic.c:897
#, c-format
msgid "%s: link from %s/%s failed: %s\n"
msgstr "%s: odkaz z %s/%s selhal: %s\n"
-#: timezone/zic.c:852 timezone/zic.c:1815
+#: timezone/zic.c:907 timezone/zic.c:1876
#, c-format
msgid "%s: Can't remove %s/%s: %s\n"
msgstr "%s: %s/%s nelze smazat: %s\n"
-#: timezone/zic.c:874
+#: timezone/zic.c:931
#, c-format
msgid "symbolic link used because hard link failed: %s"
msgstr "použit symbolický odkaz, protože pevný odkaz selhal: %s"
-#: timezone/zic.c:882
+#: timezone/zic.c:939
#, c-format
msgid "%s: Can't read %s/%s: %s\n"
msgstr "%s: %s/%s nelze Äíst: %s\n"
-#: timezone/zic.c:889 timezone/zic.c:1828
+#: timezone/zic.c:946 timezone/zic.c:1889
#, c-format
msgid "%s: Can't create %s/%s: %s\n"
msgstr "%s: %s/%s nelze vytvořit: %s\n"
-#: timezone/zic.c:898
+#: timezone/zic.c:955
#, c-format
msgid "copy used because hard link failed: %s"
msgstr "použita kopie, protože pevný odkaz selhal: %s"
-#: timezone/zic.c:901
+#: timezone/zic.c:958
#, c-format
msgid "copy used because symbolic link failed: %s"
msgstr "použita kopie, protože symbolický odkaz selhal: %s"
-#: timezone/zic.c:1013 timezone/zic.c:1015
+#: timezone/zic.c:1032 timezone/zic.c:1034
msgid "same rule name in multiple files"
msgstr "stejné jméno pravidla je použito ve více souborech"
-#: timezone/zic.c:1056
-msgid "unruly zone"
-msgstr "Äasové pásmo bez pravidel"
-
# Za %s se nic nedosazuje, zprava je vypsana tak jak je.
# XXX: According source code "%s" should be "%%"
-#: timezone/zic.c:1063
+#: timezone/zic.c:1081
#, c-format
msgid "%s in ruleless zone"
msgstr "%s v Äasovém pásmu bez pravidel"
-#: timezone/zic.c:1083
+#: timezone/zic.c:1101
msgid "standard input"
msgstr "standardní vstup"
-#: timezone/zic.c:1088
+#: timezone/zic.c:1106
#, c-format
msgid "%s: Can't open %s: %s\n"
msgstr "%s: %s nelze otevřít: %s\n"
-#: timezone/zic.c:1099
+#: timezone/zic.c:1117
msgid "line too long"
msgstr "řádek je příliš dlouhý"
-#: timezone/zic.c:1119
+#: timezone/zic.c:1139
msgid "input line of unknown type"
msgstr "vstupní řádek neznámého typu"
-#: timezone/zic.c:1134
-#, c-format
-msgid "%s: Leap line in non leap seconds file %s"
-msgstr "%s: řádek Leap v souboru nepřestupných sekund %s"
-
-#: timezone/zic.c:1142 timezone/zic.c:1547 timezone/zic.c:1569
+#: timezone/zic.c:1158 timezone/zic.c:1593 timezone/zic.c:1615
#, c-format
msgid "%s: panic: Invalid l_value %d\n"
msgstr "%s: fatální chyba: Nepřípustná l_hodnota %d\n"
-#: timezone/zic.c:1151
+#: timezone/zic.c:1167
msgid "expected continuation line not found"
msgstr "oÄekávaný pokraÄovací řádek nebyl nalezen"
-#: timezone/zic.c:1193 timezone/zic.c:2976
+#: timezone/zic.c:1203
+msgid "fractional seconds rejected by pre-2018 versions of zic"
+msgstr "verze zicu před rokem 2018 nepodporovaly desetiny sekund“"
+
+#: timezone/zic.c:1221 timezone/zic.c:3078
msgid "time overflow"
msgstr "pÅ™eteÄení Äasu"
-#: timezone/zic.c:1198
+#: timezone/zic.c:1227
msgid "values over 24 hours not handled by pre-2007 versions of zic"
msgstr "verze zicu před rokem 2007 nepodporovaly hodnoty nad 24 hodin"
-#: timezone/zic.c:1209
+#: timezone/zic.c:1245
+msgid "invalid saved time"
+msgstr "neplatný uložený Äas"
+
+#: timezone/zic.c:1256
msgid "wrong number of fields on Rule line"
msgstr "Å¡patný poÄet položek v řádku Rule"
-#: timezone/zic.c:1213
-msgid "nameless rule"
-msgstr "bezejmenné pravidlo"
-
-#: timezone/zic.c:1218
-msgid "invalid saved time"
-msgstr "neplatný uložený Äas"
+#: timezone/zic.c:1265
+#, c-format
+msgid "Invalid rule name \"%s\""
+msgstr "Chybný název pravidla „%s“"
-#: timezone/zic.c:1235
+#: timezone/zic.c:1287
msgid "wrong number of fields on Zone line"
msgstr "Å¡patný poÄet položek v řádku Zone"
-#: timezone/zic.c:1240
+#: timezone/zic.c:1292
#, c-format
msgid "\"Zone %s\" line and -l option are mutually exclusive"
msgstr "Řádek „Zone %s“ a volba -l se navzájem vyluÄují"
-#: timezone/zic.c:1246
+#: timezone/zic.c:1298
#, c-format
msgid "\"Zone %s\" line and -p option are mutually exclusive"
msgstr "Řádek „Zone %s“ a volba -p se navzájem vyluÄují"
-#: timezone/zic.c:1253
+#: timezone/zic.c:1305
#, c-format
msgid "duplicate zone name %s (file \"%s\", line %<PRIdMAX>)"
msgstr "duplicitní oznaÄení Äasového pásma %s (soubor „%s“, řádek %<PRIdMAX>)"
-#: timezone/zic.c:1267
+#: timezone/zic.c:1319
msgid "wrong number of fields on Zone continuation line"
msgstr "Å¡patný poÄet položek v pokraÄovacím řádku Zone"
-#: timezone/zic.c:1307
+#: timezone/zic.c:1359
msgid "invalid UT offset"
msgstr "neplatné posunutí vůÄi UT"
-#: timezone/zic.c:1311
+#: timezone/zic.c:1363
msgid "invalid abbreviation format"
msgstr "neplatný formát zkratky"
-#: timezone/zic.c:1320
+#: timezone/zic.c:1372
#, c-format
msgid "format '%s' not handled by pre-2015 versions of zic"
msgstr "verze zicu před rokem 2015 nepodporovaly formát „%s“"
-#: timezone/zic.c:1347
+#: timezone/zic.c:1399
msgid "Zone continuation line end time is not after end time of previous line"
msgstr "Koncový Äas pokraÄovacího řádku Zone není vÄ›tší než koncový Äas pÅ™edcházejícího řádku"
-#: timezone/zic.c:1374
+#: timezone/zic.c:1426
msgid "wrong number of fields on Leap line"
msgstr "Å¡patný poÄet položek v řádku Leap"
-#: timezone/zic.c:1383
+#: timezone/zic.c:1435
msgid "invalid leaping year"
msgstr "neplatný přestupný rok"
-#: timezone/zic.c:1403 timezone/zic.c:1501
+#: timezone/zic.c:1455 timezone/zic.c:1547
msgid "invalid month name"
msgstr "neplatný název měsíce"
-#: timezone/zic.c:1416 timezone/zic.c:1614 timezone/zic.c:1628
+#: timezone/zic.c:1468 timezone/zic.c:1663 timezone/zic.c:1677
msgid "invalid day of month"
msgstr "neplatný den měsíce"
-#: timezone/zic.c:1421
+#: timezone/zic.c:1473
msgid "time too small"
msgstr "Äas je příliÅ¡ malý"
-#: timezone/zic.c:1425
+#: timezone/zic.c:1477
msgid "time too large"
msgstr "Äas je příliÅ¡ velký"
-#: timezone/zic.c:1429 timezone/zic.c:1530
+#: timezone/zic.c:1481 timezone/zic.c:1576
msgid "invalid time of day"
msgstr "neplatný denní Äas"
-#: timezone/zic.c:1448
+#: timezone/zic.c:1494
msgid "illegal CORRECTION field on Leap line"
msgstr "chybná položka KOREKCE na řádku Leap"
-#: timezone/zic.c:1453
+#: timezone/zic.c:1499
msgid "illegal Rolling/Stationary field on Leap line"
msgstr "chybná položka Rolling/Stationary na řádku Leap"
-#: timezone/zic.c:1459
-msgid "leap second precedes Big Bang"
-msgstr "přestupná sekunda předchází velký třesk"
+#: timezone/zic.c:1505
+msgid "leap second precedes Epoch"
+msgstr "pÅ™estupná sekunda pÅ™edchází poÄátek epochy"
-#: timezone/zic.c:1472
+#: timezone/zic.c:1518
msgid "wrong number of fields on Link line"
msgstr "Å¡patný poÄet položek v řádku Link"
-#: timezone/zic.c:1476
+#: timezone/zic.c:1522
msgid "blank FROM field on Link line"
msgstr "prázdná položka OD v řádku Link"
-#: timezone/zic.c:1551
+#: timezone/zic.c:1597
msgid "invalid starting year"
msgstr "neplatný poÄáteÄní rok"
-#: timezone/zic.c:1573
+#: timezone/zic.c:1619
msgid "invalid ending year"
msgstr "neplatný koncový rok"
-#: timezone/zic.c:1577
+#: timezone/zic.c:1623
msgid "starting year greater than ending year"
msgstr "poÄáteÄní rok vÄ›tší než koncový"
-#: timezone/zic.c:1584
+#: timezone/zic.c:1630
msgid "typed single year"
msgstr "zadán jeden rok"
-#: timezone/zic.c:1619
+#: timezone/zic.c:1633
+#, c-format
+msgid "year type \"%s\" is obsolete; use \"-\" instead"
+msgstr "typ roku „%s“ je zastaralý, místo něj použijte „-“"
+
+#: timezone/zic.c:1668
msgid "invalid weekday name"
msgstr "neplatný název dne"
-#: timezone/zic.c:1743
+#: timezone/zic.c:1800
#, c-format
msgid "reference clients mishandle more than %d transition times"
msgstr "vzorové klienty chybnÄ› zpracovávají více než %d pÅ™echodových Äasů"
-#: timezone/zic.c:1747
+#: timezone/zic.c:1804
msgid "pre-2014 clients may mishandle more than 1200 transition times"
msgstr "klienty starší roku 2014 mohou chybnÄ› pracovat s více než 1200 pÅ™echodovými Äasy"
-#: timezone/zic.c:1858
+#: timezone/zic.c:1920
msgid "too many transition times"
msgstr "příliÅ¡ mnoho pÅ™echodových Äasů"
-#: timezone/zic.c:2047
+#: timezone/zic.c:2107
#, c-format
-msgid "%%z UTC offset magnitude exceeds 99:59:59"
-msgstr "hodnota posunu %%z proti UTC přesahuje 99:59:59"
+msgid "%%z UT offset magnitude exceeds 99:59:59"
+msgstr "hodnota posunu %%z proti UT přesahuje 99:59:59"
-#: timezone/zic.c:2424
+#: timezone/zic.c:2488
msgid "no POSIX environment variable for zone"
msgstr "žádná proměnná prostředí pro zónu podle POSIXU"
-#: timezone/zic.c:2430
+#: timezone/zic.c:2494
#, c-format
msgid "%s: pre-%d clients may mishandle distant timestamps"
msgstr "%s: pÅ™ed%d klienty mohou chybnÄ› zacházet se vzdálenými Äasy"
-#: timezone/zic.c:2566
+#: timezone/zic.c:2631
msgid "two rules for same instant"
msgstr "dvě pravidla pro stejný okamžik"
-#: timezone/zic.c:2627
+#: timezone/zic.c:2696
msgid "can't determine time zone abbreviation to use just after until time"
msgstr "zkratku Äasového pásma pro použití ihned po Äasovém údaji nelze nelézt"
-#: timezone/zic.c:2725
+#: timezone/zic.c:2785
msgid "too many local time types"
msgstr "příliÅ¡ mnoho lokálních Äasových typů"
-#: timezone/zic.c:2729
+#: timezone/zic.c:2789
msgid "UT offset out of range"
msgstr "posun od UT mimo povolený rozsah"
-#: timezone/zic.c:2753
+#: timezone/zic.c:2813
msgid "too many leap seconds"
msgstr "příliš mnoho přestupných sekund"
-#: timezone/zic.c:2759
-msgid "repeated leap second moment"
-msgstr "přestupná sekunda opakována"
+#: timezone/zic.c:2844
+msgid "Leap seconds too close together"
+msgstr "Přestupné sekundy jsou příliš blízko sebe"
-#: timezone/zic.c:2830
+#: timezone/zic.c:2891
msgid "Wild result from command execution"
msgstr "Vykonaný příkaz dal podivný výsledek"
-#: timezone/zic.c:2831
+#: timezone/zic.c:2892
#, c-format
msgid "%s: command was '%s', result was %d\n"
msgstr "%s: příkaz byl „%s“, a jeho výsledek byl %d\n"
-#: timezone/zic.c:2961
+#: timezone/zic.c:2998
+#, c-format
+msgid "\"%s\" is undocumented; use \"last%s\" instead"
+msgstr "„%s“ není dokumentován, místo toho použijte „last%s“"
+
+#: timezone/zic.c:3029
+#, c-format
+msgid "\"%s\" is ambiguous in pre-2017c zic"
+msgstr "„%s“ je nejednoznaÄný v programu zic pÅ™ed verzí 2017c"
+
+#: timezone/zic.c:3063
msgid "Odd number of quotation marks"
msgstr "Lichý poÄet uvozovek"
-#: timezone/zic.c:3046
+#: timezone/zic.c:3157
msgid "use of 2/29 in non leap-year"
msgstr "použití 29. února v nepřestupném roce"
-#: timezone/zic.c:3081
+#: timezone/zic.c:3192
msgid "rule goes past start/end of month; will not work with pre-2004 versions of zic"
msgstr "pravidlo zasahuje za zaÄátek/konec mÄ›síce, verze zicu pÅ™ed rokem 2004 nebudou fungovat"
-#: timezone/zic.c:3108
+#: timezone/zic.c:3219
msgid "time zone abbreviation has fewer than 3 characters"
msgstr "zkratka Äasové zóny má ménÄ› než 3 znaky"
-#: timezone/zic.c:3110
+#: timezone/zic.c:3221
msgid "time zone abbreviation has too many characters"
msgstr "zkratka Äasové zóny má příliÅ¡ mnoho znaků"
-#: timezone/zic.c:3112
+#: timezone/zic.c:3223
msgid "time zone abbreviation differs from POSIX standard"
msgstr "zkratka Äasové zóny nesouhlasí se standardem POSIX"
-#: timezone/zic.c:3118
+#: timezone/zic.c:3229
msgid "too many, or too long, time zone abbreviations"
msgstr "příliÅ¡ mnoho nebo příliÅ¡ dlouhé zkratky Äasového pásma"
-#: timezone/zic.c:3161
+#: timezone/zic.c:3275
#, c-format
msgid "%s: Can't create directory %s: %s"
msgstr "%s: Adresář %s nelze vytvořit: %s"
+#~ msgid "cannot open zero fill device"
+#~ msgstr "nulami vyplněné zařízení (zero) nelze otevřít"
+
+#~ msgid "relocation error"
+#~ msgstr "chyba při přemisťování"
+
+#~ msgid "Cannot set LC_CTYPE to default locale"
+#~ msgstr "LC_CTYPE nelze nastavit na implicitní národní prostředí"
+
+#~ msgid "Cannot set LC_MESSAGES to default locale"
+#~ msgstr "LC_MESSAGES nelze nastavit na implicitní národní prostředí"
+
+#~ msgid "Cannot set LC_COLLATE to default locale"
+#~ msgstr "LC_COLLATE nelze nastavit na implicitní národní prostředí"
+
+#~ msgid "unruly zone"
+#~ msgstr "Äasové pásmo bez pravidel"
+
+#~ msgid "%s: Leap line in non leap seconds file %s"
+#~ msgstr "%s: řádek Leap v souboru nepřestupných sekund %s"
+
+#~ msgid "nameless rule"
+#~ msgstr "bezejmenné pravidlo"
+
+#~ msgid "repeated leap second moment"
+#~ msgstr "přestupná sekunda opakována"
+
#~ msgid "invalid caller"
#~ msgstr "nepřípustný kód volání"
@@ -7323,9 +7382,6 @@ msgstr "%s: Adresář %s nelze vytvořit: %s"
#~ "\n"
#~ "Chyby v programu hlaste anglicky na %s.\n"
-#~ msgid "int overflow"
-#~ msgstr "pÅ™eteÄení Äísla"
-
#~ msgid "hard link failed, symbolic link used"
#~ msgstr "pevný odkaz nevytvořen, použit symbolický"
diff --git a/po/da.po b/po/da.po
index b9ef0c5fbf..d055d56031 100644
--- a/po/da.po
+++ b/po/da.po
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: libc-2.11.1\n"
-"POT-Creation-Date: 2018-07-26 22:19-0400\n"
+"POT-Creation-Date: 2019-07-18 13:28-0400\n"
"PO-Revision-Date: 2010-11-01 10:37+0100\n"
"Last-Translator: Keld Simonsen <keld@keldix.com>\n"
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
@@ -147,10 +147,10 @@ msgstr ""
"[UDFIL [INDFIL]...]"
#: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:308
-#: elf/pldd.c:252 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
-#: iconv/iconvconfig.c:379 locale/programs/locale.c:275
-#: locale/programs/localedef.c:427 login/programs/pt_chown.c:89
-#: malloc/memusagestat.c:563 nss/getent.c:933 nss/makedb.c:369
+#: elf/pldd.c:247 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
+#: iconv/iconvconfig.c:379 locale/programs/locale.c:276
+#: locale/programs/localedef.c:437 login/programs/pt_chown.c:89
+#: malloc/memusagestat.c:563 nss/getent.c:953 nss/makedb.c:369
#: posix/getconf.c:503 sysdeps/unix/sysv/linux/lddlibc4.c:61
#, fuzzy, c-format
#| msgid ""
@@ -165,11 +165,11 @@ msgstr ""
"Rapportér fejl eller synspunkter på oversættelsen til <dansk@dansk-gruppen.dk>.\n"
#: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64
-#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75
+#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:263 elf/sotruss.sh:75
#: elf/sprof.c:389 iconv/iconv_prog.c:422 iconv/iconvconfig.c:396
-#: locale/programs/locale.c:292 locale/programs/localedef.c:453
+#: locale/programs/locale.c:293 locale/programs/localedef.c:463
#: login/programs/pt_chown.c:63 malloc/memusage.sh:71
-#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:87 nss/makedb.c:385
+#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:88 nss/makedb.c:385
#: posix/getconf.c:485 sysdeps/unix/sysv/linux/lddlibc4.c:68
#, c-format
msgid ""
@@ -183,10 +183,10 @@ msgstr ""
"TIL NOGEN SPECIEL OPGAVE.\n"
#: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68
-#: elf/ldconfig.c:329 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:427
-#: iconv/iconvconfig.c:401 locale/programs/locale.c:297
-#: locale/programs/localedef.c:458 malloc/memusage.sh:75
-#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:92 nss/makedb.c:390
+#: elf/ldconfig.c:329 elf/pldd.c:268 elf/sprof.c:395 iconv/iconv_prog.c:427
+#: iconv/iconvconfig.c:401 locale/programs/locale.c:298
+#: locale/programs/localedef.c:468 malloc/memusage.sh:75
+#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:93 nss/makedb.c:390
#: posix/getconf.c:490
#, c-format
msgid "Written by %s.\n"
@@ -257,21 +257,21 @@ msgstr "kan ikke åbne uddatafil '%s'"
msgid "invalid escape sequence"
msgstr "ugyldig undvigetegnsekvens"
-#: catgets/gencat.c:1209
+#: catgets/gencat.c:1211
msgid "unterminated message"
msgstr "uafsluttet meddelelse"
-#: catgets/gencat.c:1233
+#: catgets/gencat.c:1235
#, c-format
msgid "while opening old catalog file"
msgstr "ved åbning af den gamle katalogfil"
-#: catgets/gencat.c:1324
+#: catgets/gencat.c:1326
#, c-format
msgid "conversion modules not available"
msgstr "konverteringsmoduler ikke tilgængelige"
-#: catgets/gencat.c:1350
+#: catgets/gencat.c:1352
#, c-format
msgid "cannot determine escape character"
msgstr "kan ikke bestemme undvigetegn"
@@ -408,7 +408,7 @@ msgstr "Ukendt OS"
msgid ", OS ABI: %s %d.%d.%d"
msgstr ", OS ABI: %s %d.%d.%d"
-#: elf/cache.c:163 elf/ldconfig.c:1332
+#: elf/cache.c:163 elf/ldconfig.c:1333
#, c-format
msgid "Can't open cache file %s\n"
msgstr "Kan ikke åbne hurtigbufferfil %s\n"
@@ -418,38 +418,38 @@ msgstr "Kan ikke åbne hurtigbufferfil %s\n"
msgid "mmap of cache file failed.\n"
msgstr "mmap af bufferfil fejlede\n"
-#: elf/cache.c:181 elf/cache.c:195
+#: elf/cache.c:181 elf/cache.c:195 elf/cache.c:205
#, c-format
msgid "File is not a cache file.\n"
msgstr "Fil er ikke en bufferfil.\n"
-#: elf/cache.c:228 elf/cache.c:238
+#: elf/cache.c:233 elf/cache.c:243
#, c-format
msgid "%d libs found in cache `%s'\n"
msgstr "%d libs fundet i hurtigbuffer '%s'\n"
-#: elf/cache.c:432
+#: elf/cache.c:437
#, c-format
msgid "Can't create temporary cache file %s"
msgstr "Kan ikke oprette midlertidig hurtigbufferfil %s"
-#: elf/cache.c:440 elf/cache.c:450 elf/cache.c:454 elf/cache.c:458
-#: elf/cache.c:468
+#: elf/cache.c:445 elf/cache.c:455 elf/cache.c:459 elf/cache.c:463
+#: elf/cache.c:473
#, c-format
msgid "Writing of cache data failed"
msgstr "Udskrivning af bufferdata fejlede"
-#: elf/cache.c:463
+#: elf/cache.c:468
#, c-format
msgid "Changing access rights of %s to %#o failed"
msgstr "Ændring af adgangsrettigheder for %s til %#o fejlede"
-#: elf/cache.c:472
+#: elf/cache.c:477
#, c-format
msgid "Renaming of %s to %s failed"
msgstr "Omdøbning af %s til %s fejlede"
-#: elf/dl-close.c:399 elf/dl-open.c:420
+#: elf/dl-close.c:399 elf/dl-open.c:424
msgid "cannot create scope list"
msgstr "kan ikke oprette omfangsliste"
@@ -534,121 +534,123 @@ msgstr "kan ikke oprette tabel over søgestier"
msgid "cannot stat shared object"
msgstr "kan ikke tage status på delt objekt"
-#: elf/dl-load.c:960
-msgid "cannot open zero fill device"
-msgstr "kan ikke åbne nulstil-enhed"
-
-#: elf/dl-load.c:1007 elf/dl-load.c:2203
+#: elf/dl-load.c:992 elf/dl-load.c:2198
msgid "cannot create shared object descriptor"
msgstr "kan ikke oprette delt objektbeskriver"
-#: elf/dl-load.c:1026 elf/dl-load.c:1560 elf/dl-load.c:1673
+#: elf/dl-load.c:1011 elf/dl-load.c:1555 elf/dl-load.c:1668
msgid "cannot read file data"
msgstr "kan ikke indlæse fildata"
-#: elf/dl-load.c:1072
+#: elf/dl-load.c:1057
msgid "ELF load command alignment not page-aligned"
msgstr "ELF-indlæsningskommandos tilpasning er ikke tilpasset siden"
-#: elf/dl-load.c:1079
+#: elf/dl-load.c:1064
msgid "ELF load command address/offset not properly aligned"
msgstr "ELF-indlæsningskommandos adresse/tillæg er ikke tilpasset ordentligt"
-#: elf/dl-load.c:1161
+#: elf/dl-load.c:1146
#, fuzzy
#| msgid "cannot restore segment prot after reloc"
msgid "cannot process note segment"
msgstr "kan ikke genskabe segmentbeskyttelse efter flytning"
-#: elf/dl-load.c:1172
+#: elf/dl-load.c:1157
msgid "object file has no loadable segments"
msgstr "objektfil har ingen indlæsbare segmenter"
-#: elf/dl-load.c:1181 elf/dl-load.c:1652
+#: elf/dl-load.c:1170 elf/dl-load.c:1647
msgid "cannot dynamically load executable"
msgstr "kan ikke indlæse udførbare programmer dynamisk"
-#: elf/dl-load.c:1202
+#: elf/dl-load.c:1191
msgid "object file has no dynamic section"
msgstr "objektfil har ingen dynamisk sektion"
-#: elf/dl-load.c:1225
+#: elf/dl-load.c:1218
+#, fuzzy
+#| msgid "cannot dynamically load executable"
+msgid "cannot dynamically load position-independent executable"
+msgstr "kan ikke indlæse udførbare programmer dynamisk"
+
+#: elf/dl-load.c:1220
msgid "shared object cannot be dlopen()ed"
msgstr "delt objekt kan ikke åbnes med dlopen()"
-#: elf/dl-load.c:1238
+#: elf/dl-load.c:1233
msgid "cannot allocate memory for program header"
msgstr "kan ikke allokere hukommelse til programhoved"
-#: elf/dl-load.c:1271 elf/dl-load.h:130
+#: elf/dl-load.c:1266 elf/dl-load.h:130
msgid "cannot change memory protections"
msgstr "kan ikke ændre hukommelsesbeskyttelser"
-#: elf/dl-load.c:1291
+#: elf/dl-load.c:1286
msgid "cannot enable executable stack as shared object requires"
msgstr "kan ikke oprette udførbar stak som kræves af delt objekt"
-#: elf/dl-load.c:1304
+#: elf/dl-load.c:1299
msgid "cannot close file descriptor"
msgstr "kan ikke lukke filbeskriver"
-#: elf/dl-load.c:1560
+#: elf/dl-load.c:1555
msgid "file too short"
msgstr "for kort fil"
-#: elf/dl-load.c:1595
+#: elf/dl-load.c:1590
msgid "invalid ELF header"
msgstr "ugyldigt ELF-hoved"
-#: elf/dl-load.c:1607
+#: elf/dl-load.c:1602
msgid "ELF file data encoding not big-endian"
msgstr "Kodning for ELF-fildata er ikke \"big-endian\""
-#: elf/dl-load.c:1609
+#: elf/dl-load.c:1604
msgid "ELF file data encoding not little-endian"
msgstr "Kodning for ELF-fildata er ikke \"little-endian\""
-#: elf/dl-load.c:1613
+#: elf/dl-load.c:1608
msgid "ELF file version ident does not match current one"
msgstr "ELF-filens version-identitet passer ikke med den aktuelle"
-#: elf/dl-load.c:1617
+#: elf/dl-load.c:1612
msgid "ELF file OS ABI invalid"
msgstr "ELF-filens OS ABI er ugyldigt"
-#: elf/dl-load.c:1620
+#: elf/dl-load.c:1615
msgid "ELF file ABI version invalid"
msgstr "ELF-filens ABI-version er ugyldig"
-#: elf/dl-load.c:1623
+#: elf/dl-load.c:1618
msgid "nonzero padding in e_ident"
msgstr ""
-#: elf/dl-load.c:1626
+#: elf/dl-load.c:1621
msgid "internal error"
msgstr "intern fejl"
-#: elf/dl-load.c:1633
+#: elf/dl-load.c:1628
msgid "ELF file version does not match current one"
msgstr "ELF-filens version passer ikke med den aktuelle"
-#: elf/dl-load.c:1641
+#: elf/dl-load.c:1636
msgid "only ET_DYN and ET_EXEC can be loaded"
msgstr "kun ET_DYN og ET_EXEC kan indlæses"
-#: elf/dl-load.c:1657
+#: elf/dl-load.c:1652
msgid "ELF file's phentsize not the expected size"
msgstr "ELF-filens 'phentsize' er ikke den forventede størrelse"
-#: elf/dl-load.c:2222
+#: elf/dl-load.c:2217
msgid "wrong ELF class: ELFCLASS64"
msgstr "forkert ELF-klasse: ELFCLASS64"
-#: elf/dl-load.c:2223
+#: elf/dl-load.c:2218
msgid "wrong ELF class: ELFCLASS32"
msgstr "forkert ELF-klasse: ELFCLASS32"
-#: elf/dl-load.c:2226
+#: elf/dl-load.c:2221
msgid "cannot open shared object file"
msgstr "kan ikke åbne delt objektfil"
@@ -660,11 +662,7 @@ msgstr "kunne ikke afbilde segment fra delt objekt'"
msgid "cannot map zero-fill pages"
msgstr "kan ikke mappe nulstil-sider"
-#: elf/dl-lookup.c:835
-msgid "relocation error"
-msgstr "fejl ved relokering"
-
-#: elf/dl-lookup.c:858
+#: elf/dl-lookup.c:830
msgid "symbol lookup error"
msgstr "fejl ved opslag af symbol"
@@ -672,19 +670,19 @@ msgstr "fejl ved opslag af symbol"
msgid "cannot extend global scope"
msgstr "kan ikke udvide globalt defineringområde"
-#: elf/dl-open.c:470
+#: elf/dl-open.c:474
msgid "TLS generation counter wrapped! Please report this."
msgstr "Generationstæller for TLS tilbagestillet! Vær sød at indsende fejlrapport."
-#: elf/dl-open.c:534
+#: elf/dl-open.c:538
msgid "invalid mode for dlopen()"
msgstr "ugyldig modus for dlopen()"
-#: elf/dl-open.c:551
+#: elf/dl-open.c:555
msgid "no more namespaces available for dlmopen()"
msgstr "ikke flere navnerum tilgængelige for dlmopen()"
-#: elf/dl-open.c:575
+#: elf/dl-open.c:579
msgid "invalid target namespace in dlmopen()"
msgstr "ugyldigt mål-navnerum for dlmopen()"
@@ -692,20 +690,20 @@ msgstr "ugyldigt mål-navnerum for dlmopen()"
msgid "cannot allocate memory in static TLS block"
msgstr "Kan ikke tildele hukommelse i statisk TLS-blok"
-#: elf/dl-reloc.c:205
+#: elf/dl-reloc.c:213
msgid "cannot make segment writable for relocation"
msgstr "kan ikke gøre segment skrivbart for relokering"
-#: elf/dl-reloc.c:276
+#: elf/dl-reloc.c:272
#, c-format
msgid "%s: out of memory to store relocation results for %s\n"
msgstr "%s: ikke mere hukommelse til at gemme relokeringsresultat for %s\n"
-#: elf/dl-reloc.c:292
+#: elf/dl-reloc.c:288
msgid "cannot restore segment prot after reloc"
msgstr "kan ikke genskabe segmentbeskyttelse efter flytning"
-#: elf/dl-reloc.c:323
+#: elf/dl-reloc.c:319
msgid "cannot apply additional memory protection after relocation"
msgstr "kan ikke udføre yderligere hukommelsesbeskyttelser efter flytning"
@@ -927,22 +925,22 @@ msgstr "behøver fuldt filnavn for konfigurationsfil når -r bruges"
msgid "memory exhausted"
msgstr "hukommelsen opbrugt"
-#: elf/ldconfig.c:1233
+#: elf/ldconfig.c:1234
#, c-format
msgid "%s:%u: cannot read directory %s"
msgstr "%s:%u: kan ikke læse katalog %s"
-#: elf/ldconfig.c:1281
+#: elf/ldconfig.c:1282
#, c-format
msgid "relative path `%s' used to build cache"
msgstr "relativ søgesti \"%s\" brugt til at bygge hurtigbuffer"
-#: elf/ldconfig.c:1311
+#: elf/ldconfig.c:1312
#, c-format
msgid "Can't chdir to /"
msgstr "Kan ikke chdir til /"
-#: elf/ldconfig.c:1352
+#: elf/ldconfig.c:1353
#, c-format
msgid "Can't open cache file directory %s\n"
msgstr "Kan ikke åbne hurtigbuffer-katalog %s\n"
@@ -1012,108 +1010,114 @@ msgstr "afsluttede med ukendt slutstatus"
msgid "error: you do not have read permission for"
msgstr "fejl: du har ikke læserettigheder til"
-#: elf/pldd-xx.c:105
+#: elf/pldd-xx.c:102
#, fuzzy, c-format
#| msgid "cannot read header from `%s'"
msgid "cannot find program header of process"
msgstr "kan ikke læse hoved fra '%s'"
-#: elf/pldd-xx.c:110
+#: elf/pldd-xx.c:106
#, fuzzy, c-format
#| msgid "cannot read header"
msgid "cannot read program header"
msgstr "kan ikke læse hoved"
-#: elf/pldd-xx.c:135
+#: elf/pldd-xx.c:128
#, fuzzy, c-format
#| msgid "object file has no dynamic section"
msgid "cannot read dynamic section"
msgstr "objektfil har ingen dynamisk sektion"
-#: elf/pldd-xx.c:147
+#: elf/pldd-xx.c:137
#, fuzzy, c-format
#| msgid "cannot read header"
msgid "cannot read r_debug"
msgstr "kan ikke læse hoved"
-#: elf/pldd-xx.c:167
+#: elf/pldd-xx.c:154
#, fuzzy, c-format
#| msgid "cannot read archive header"
msgid "cannot read program interpreter"
msgstr "kan ikke læse arkivhoved"
-#: elf/pldd-xx.c:197
+#: elf/pldd-xx.c:183
#, fuzzy, c-format
#| msgid "cannot read file data"
msgid "cannot read link map"
msgstr "kan ikke indlæse fildata"
-#: elf/pldd-xx.c:209
+#: elf/pldd-xx.c:190
#, fuzzy, c-format
#| msgid "cannot read header"
msgid "cannot read object name"
msgstr "kan ikke læse hoved"
-#: elf/pldd-xx.c:219
+#: elf/pldd-xx.c:197
#, fuzzy, c-format
#| msgid "cannot allocate memory for program header"
msgid "cannot allocate buffer for object name"
msgstr "kan ikke allokere hukommelse til programhoved"
-#: elf/pldd.c:64
+#: elf/pldd.c:58
msgid "List dynamic shared objects loaded into process."
msgstr ""
-#: elf/pldd.c:68
+#: elf/pldd.c:62
msgid "PID"
msgstr ""
-#: elf/pldd.c:100
+#: elf/pldd.c:89
#, c-format
msgid "Exactly one parameter with process ID required.\n"
msgstr ""
-#: elf/pldd.c:112
+#: elf/pldd.c:103
#, fuzzy, c-format
#| msgid "invalid pointer size"
msgid "invalid process ID '%s'"
msgstr "ugyldig størrelse for pegere"
-#: elf/pldd.c:120
+#: elf/pldd.c:111
#, fuzzy, c-format
#| msgid "cannot open `%s'"
msgid "cannot open %s"
msgstr "kan ikke åbne '%s'"
-#: elf/pldd.c:152
+#: elf/pldd.c:142
#, fuzzy, c-format
#| msgid "cannot open `%s'"
msgid "cannot open %s/task"
msgstr "kan ikke åbne '%s'"
-#: elf/pldd.c:155
+#: elf/pldd.c:145
#, c-format
msgid "cannot prepare reading %s/task"
msgstr ""
-#: elf/pldd.c:168
+#: elf/pldd.c:158
#, fuzzy, c-format
#| msgid "invalid ELF header"
msgid "invalid thread ID '%s'"
msgstr "ugyldigt ELF-hoved"
-#: elf/pldd.c:179
+#: elf/pldd.c:169
#, fuzzy, c-format
#| msgid "cannot access '%s'"
msgid "cannot attach to process %lu"
msgstr "kan ikke få adgang til '%s'"
-#: elf/pldd.c:294
+#: elf/pldd.c:184
+#, fuzzy, c-format
+#| msgid "invalid saved time"
+msgid "no valid %s/task entries"
+msgstr "ugyldig lagret tid"
+
+#: elf/pldd.c:290
#, c-format
msgid "cannot get information about process %lu"
msgstr ""
-#: elf/pldd.c:307
+#: elf/pldd.c:303
#, c-format
msgid "process %lu is no ELF program"
msgstr ""
@@ -1427,7 +1431,7 @@ msgstr "Information:"
msgid "list all known coded character sets"
msgstr "list alle kendte kodede tegnsæt"
-#: iconv/iconv_prog.c:64 locale/programs/localedef.c:120
+#: iconv/iconv_prog.c:64 locale/programs/localedef.c:124
msgid "Output control:"
msgstr "Udskriftskontrol:"
@@ -1436,8 +1440,8 @@ msgid "omit invalid characters from output"
msgstr "fjern ugyldige tegn fra uddata"
#: iconv/iconv_prog.c:66 iconv/iconvconfig.c:128
-#: locale/programs/localedef.c:113 locale/programs/localedef.c:115
-#: locale/programs/localedef.c:117 locale/programs/localedef.c:144
+#: locale/programs/localedef.c:117 locale/programs/localedef.c:119
+#: locale/programs/localedef.c:121 locale/programs/localedef.c:150
#: malloc/memusagestat.c:56
#, fuzzy
#| msgid "[FILE]"
@@ -1546,7 +1550,7 @@ msgstr "Opret hurtigtindlæst iconv-modul konfigurationsfil."
msgid "[DIR...]"
msgstr "[KAT...]"
-#: iconv/iconvconfig.c:126 locale/programs/localedef.c:123
+#: iconv/iconvconfig.c:126 locale/programs/localedef.c:129
msgid "PATH"
msgstr ""
@@ -1733,14 +1737,14 @@ msgstr "tegnsæt med låsetilstande er ikke understøttet"
#: locale/programs/charmap.c:503 locale/programs/charmap.c:557
#: locale/programs/charmap.c:589 locale/programs/charmap.c:683
-#: locale/programs/charmap.c:738 locale/programs/charmap.c:779
-#: locale/programs/charmap.c:820
+#: locale/programs/charmap.c:739 locale/programs/charmap.c:780
+#: locale/programs/charmap.c:821
#, c-format
msgid "syntax error in %s definition: %s"
msgstr "syntaksfejl i definition af %s: %s"
#: locale/programs/charmap.c:504 locale/programs/charmap.c:684
-#: locale/programs/charmap.c:780 locale/programs/repertoire.c:229
+#: locale/programs/charmap.c:781 locale/programs/repertoire.c:229
msgid "no symbolic name given"
msgstr "ikke noget symbolsk navn angivet"
@@ -1756,14 +1760,14 @@ msgstr "for få byte i tegnkodning"
msgid "too many bytes in character encoding"
msgstr "for mange byte i tegnkodning"
-#: locale/programs/charmap.c:591 locale/programs/charmap.c:739
-#: locale/programs/charmap.c:822 locale/programs/repertoire.c:295
+#: locale/programs/charmap.c:591 locale/programs/charmap.c:740
+#: locale/programs/charmap.c:823 locale/programs/repertoire.c:295
msgid "no symbolic name given for end of range"
msgstr "ikke noget symbolsk navn givet for slutningen på området"
#: locale/programs/charmap.c:615 locale/programs/ld-address.c:524
#: locale/programs/ld-collate.c:2616 locale/programs/ld-collate.c:3774
-#: locale/programs/ld-ctype.c:2117 locale/programs/ld-ctype.c:2829
+#: locale/programs/ld-ctype.c:2118 locale/programs/ld-ctype.c:2830
#: locale/programs/ld-identification.c:397
#: locale/programs/ld-measurement.c:213 locale/programs/ld-messages.c:295
#: locale/programs/ld-monetary.c:748 locale/programs/ld-name.c:262
@@ -1778,60 +1782,60 @@ msgstr "'%1$s: definition slutter ikke med 'END %1$s'"
msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
msgstr "kun definitioner af 'WIDTH' må komme efter definition af 'CHARMAP'"
-#: locale/programs/charmap.c:656 locale/programs/charmap.c:719
+#: locale/programs/charmap.c:656 locale/programs/charmap.c:720
#, c-format
msgid "value for %s must be an integer"
msgstr "værdien på %s skal være et heltal"
-#: locale/programs/charmap.c:847
+#: locale/programs/charmap.c:848
#, c-format
msgid "%s: error in state machine"
msgstr "%s: fejl i tilstandsmaskinen"
-#: locale/programs/charmap.c:855 locale/programs/ld-address.c:540
+#: locale/programs/charmap.c:856 locale/programs/ld-address.c:540
#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967
-#: locale/programs/ld-ctype.c:2114 locale/programs/ld-ctype.c:2846
+#: locale/programs/ld-ctype.c:2115 locale/programs/ld-ctype.c:2847
#: locale/programs/ld-identification.c:413
#: locale/programs/ld-measurement.c:229 locale/programs/ld-messages.c:311
#: locale/programs/ld-monetary.c:764 locale/programs/ld-name.c:278
#: locale/programs/ld-numeric.c:341 locale/programs/ld-paper.c:228
#: locale/programs/ld-telephone.c:292 locale/programs/ld-time.c:990
-#: locale/programs/locfile.c:997 locale/programs/repertoire.c:323
+#: locale/programs/locfile.c:1010 locale/programs/repertoire.c:323
#, c-format
msgid "%s: premature end of file"
msgstr "%s: for tidlig slut på filen"
-#: locale/programs/charmap.c:874 locale/programs/charmap.c:885
+#: locale/programs/charmap.c:875 locale/programs/charmap.c:886
#, c-format
msgid "unknown character `%s'"
msgstr "ukendt tegn '%s'"
-#: locale/programs/charmap.c:893
+#: locale/programs/charmap.c:894
#, c-format
msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d"
msgstr ""
"antal byte for bytesekvens angivet i begyndelsen respektive slutningen af intervallet\n"
"er forskellige: %d respektive %d"
-#: locale/programs/charmap.c:998 locale/programs/ld-collate.c:2893
+#: locale/programs/charmap.c:999 locale/programs/ld-collate.c:2893
#: locale/programs/repertoire.c:418
msgid "invalid names for character range"
msgstr "ugyldige navne for tegnområde"
-#: locale/programs/charmap.c:1010 locale/programs/repertoire.c:430
+#: locale/programs/charmap.c:1011 locale/programs/repertoire.c:430
msgid "hexadecimal range format should use only capital characters"
msgstr "heksadecimalt interval-format bør bruge kun store bogstaver"
-#: locale/programs/charmap.c:1028 locale/programs/repertoire.c:448
+#: locale/programs/charmap.c:1029 locale/programs/repertoire.c:448
#, c-format
msgid "<%s> and <%s> are invalid names for range"
msgstr "<%s> og <%s> er ugyldige navne for tegnområde"
-#: locale/programs/charmap.c:1034 locale/programs/repertoire.c:455
+#: locale/programs/charmap.c:1035 locale/programs/repertoire.c:455
msgid "upper limit in range is smaller than lower limit"
msgstr "øvre grænse i område er mindre end nedre grænse"
-#: locale/programs/charmap.c:1092
+#: locale/programs/charmap.c:1093
msgid "resulting bytes for range not representable."
msgstr "de resulterende bytes for området kan ikke repræsenteres."
@@ -1900,7 +1904,7 @@ msgid "%s: numeric country code `%d' not valid"
msgstr "%s: numerisk landekode '%d' er ugyldig"
#: locale/programs/ld-address.c:432 locale/programs/ld-address.c:469
-#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2478
+#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2479
#: locale/programs/ld-identification.c:309
#: locale/programs/ld-measurement.c:196 locale/programs/ld-messages.c:264
#: locale/programs/ld-monetary.c:503 locale/programs/ld-monetary.c:538
@@ -1923,7 +1927,7 @@ msgid "%s: unknown character in field `%s'"
msgstr "%s: ukendt tegn i felt '%s'"
#: locale/programs/ld-address.c:521 locale/programs/ld-collate.c:3772
-#: locale/programs/ld-ctype.c:2826 locale/programs/ld-identification.c:394
+#: locale/programs/ld-ctype.c:2827 locale/programs/ld-identification.c:394
#: locale/programs/ld-measurement.c:210 locale/programs/ld-messages.c:293
#: locale/programs/ld-monetary.c:746 locale/programs/ld-name.c:260
#: locale/programs/ld-numeric.c:323 locale/programs/ld-paper.c:210
@@ -1936,8 +1940,8 @@ msgstr "%s: ufuldstændig 'END'-linje"
#: locale/programs/ld-collate.c:602 locale/programs/ld-collate.c:898
#: locale/programs/ld-collate.c:911 locale/programs/ld-collate.c:2582
#: locale/programs/ld-collate.c:2603 locale/programs/ld-collate.c:3957
-#: locale/programs/ld-ctype.c:1846 locale/programs/ld-ctype.c:2104
-#: locale/programs/ld-ctype.c:2676 locale/programs/ld-ctype.c:2837
+#: locale/programs/ld-ctype.c:1847 locale/programs/ld-ctype.c:2105
+#: locale/programs/ld-ctype.c:2677 locale/programs/ld-ctype.c:2838
#: locale/programs/ld-identification.c:404
#: locale/programs/ld-measurement.c:220 locale/programs/ld-messages.c:302
#: locale/programs/ld-monetary.c:755 locale/programs/ld-name.c:269
@@ -2282,131 +2286,131 @@ msgstr "tegntabellen '%s' allerede defineret"
msgid "implementation limit: no more than %d character maps allowed"
msgstr "implementationsbegrænsning: ikke flere end %d tegntabeller tilladt"
-#: locale/programs/ld-ctype.c:1434 locale/programs/ld-ctype.c:1559
-#: locale/programs/ld-ctype.c:1665 locale/programs/ld-ctype.c:2341
-#: locale/programs/ld-ctype.c:3299
+#: locale/programs/ld-ctype.c:1435 locale/programs/ld-ctype.c:1560
+#: locale/programs/ld-ctype.c:1666 locale/programs/ld-ctype.c:2342
+#: locale/programs/ld-ctype.c:3302
#, c-format
msgid "%s: field `%s' does not contain exactly ten entries"
msgstr "%s: felt '%s' indeholder ikke præcis 10 elementer"
-#: locale/programs/ld-ctype.c:1462 locale/programs/ld-ctype.c:2036
+#: locale/programs/ld-ctype.c:1463 locale/programs/ld-ctype.c:2037
#, c-format
msgid "to-value <U%0*X> of range is smaller than from-value <U%0*X>"
msgstr "'to'-værdi <U%0*X> i intervallet er mindre end 'from'-værdi <U%0*X>"
-#: locale/programs/ld-ctype.c:1589
+#: locale/programs/ld-ctype.c:1590
msgid "start and end character sequence of range must have the same length"
msgstr "start og slut tegnsekvens for områder skal have samme længde"
-#: locale/programs/ld-ctype.c:1596
+#: locale/programs/ld-ctype.c:1597
msgid "to-value character sequence is smaller than from-value sequence"
msgstr "'to'-værdi tegnfølgen er mindre end 'from'-værdi tegnfølgen"
-#: locale/programs/ld-ctype.c:1956 locale/programs/ld-ctype.c:2007
+#: locale/programs/ld-ctype.c:1957 locale/programs/ld-ctype.c:2008
msgid "premature end of `translit_ignore' definition"
msgstr "For tidlig afslutning på 'translit_ignore' definition"
-#: locale/programs/ld-ctype.c:1962 locale/programs/ld-ctype.c:2013
-#: locale/programs/ld-ctype.c:2055
+#: locale/programs/ld-ctype.c:1963 locale/programs/ld-ctype.c:2014
+#: locale/programs/ld-ctype.c:2056
msgid "syntax error"
msgstr "syntaksfejl"
-#: locale/programs/ld-ctype.c:2188
+#: locale/programs/ld-ctype.c:2189
#, c-format
msgid "%s: syntax error in definition of new character class"
msgstr "%s: syntaksfejl i definition af ny tegnklasse"
-#: locale/programs/ld-ctype.c:2203
+#: locale/programs/ld-ctype.c:2204
#, c-format
msgid "%s: syntax error in definition of new character map"
msgstr "%s: syntaksfejl i definition af ny tegntabel"
-#: locale/programs/ld-ctype.c:2363
+#: locale/programs/ld-ctype.c:2364
msgid "ellipsis range must be marked by two operands of same type"
msgstr "ellipse-områder skal angives ved to operander af samme type"
-#: locale/programs/ld-ctype.c:2372
+#: locale/programs/ld-ctype.c:2373
msgid "with symbolic name range values the absolute ellipsis `...' must not be used"
msgstr "ved symbolske interval-værdier må den absolutte ellipse '...' ikke bruges"
-#: locale/programs/ld-ctype.c:2387
+#: locale/programs/ld-ctype.c:2388
msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'"
msgstr "ved UCS-interval-værdier skal man bruge heksadecimal symbolsk ellipse"
-#: locale/programs/ld-ctype.c:2401
+#: locale/programs/ld-ctype.c:2402
msgid "with character code range values one must use the absolute ellipsis `...'"
msgstr "ved tegnkode interval-værdier skal man bruge absolut ellipse '...'"
-#: locale/programs/ld-ctype.c:2552
+#: locale/programs/ld-ctype.c:2553
#, c-format
msgid "duplicated definition for mapping `%s'"
msgstr "duplikeret definition af afbildning '%s'"
-#: locale/programs/ld-ctype.c:2638 locale/programs/ld-ctype.c:2782
+#: locale/programs/ld-ctype.c:2639 locale/programs/ld-ctype.c:2783
#, c-format
msgid "%s: `translit_start' section does not end with `translit_end'"
msgstr "%s: 'translit_start'-sektionen slutter ikke med 'translit_end'"
-#: locale/programs/ld-ctype.c:2733
+#: locale/programs/ld-ctype.c:2734
#, c-format
msgid "%s: duplicate `default_missing' definition"
msgstr "%s: duplikér definition af 'default_missing'"
-#: locale/programs/ld-ctype.c:2738
+#: locale/programs/ld-ctype.c:2739
msgid "previous definition was here"
msgstr "den foregående definition var her"
-#: locale/programs/ld-ctype.c:2760
+#: locale/programs/ld-ctype.c:2761
#, c-format
msgid "%s: no representable `default_missing' definition found"
msgstr "%s: ingen repræsenterbar 'default_missing' definition fundet"
-#: locale/programs/ld-ctype.c:2877 locale/programs/ld-ctype.c:2973
-#: locale/programs/ld-ctype.c:2992 locale/programs/ld-ctype.c:3012
-#: locale/programs/ld-ctype.c:3032 locale/programs/ld-ctype.c:3052
-#: locale/programs/ld-ctype.c:3072 locale/programs/ld-ctype.c:3111
-#: locale/programs/ld-ctype.c:3131 locale/programs/ld-ctype.c:3195
-#: locale/programs/ld-ctype.c:3236 locale/programs/ld-ctype.c:3259
+#: locale/programs/ld-ctype.c:2878 locale/programs/ld-ctype.c:2974
+#: locale/programs/ld-ctype.c:2993 locale/programs/ld-ctype.c:3013
+#: locale/programs/ld-ctype.c:3033 locale/programs/ld-ctype.c:3053
+#: locale/programs/ld-ctype.c:3073 locale/programs/ld-ctype.c:3112
+#: locale/programs/ld-ctype.c:3132 locale/programs/ld-ctype.c:3198
+#: locale/programs/ld-ctype.c:3239 locale/programs/ld-ctype.c:3262
#, c-format
msgid "%s: character `%s' not defined while needed as default value"
msgstr "%s: tegnet '%s' ikke defineret, men behøves som standardværdi"
-#: locale/programs/ld-ctype.c:2882 locale/programs/ld-ctype.c:2978
-#: locale/programs/ld-ctype.c:2997 locale/programs/ld-ctype.c:3017
-#: locale/programs/ld-ctype.c:3037 locale/programs/ld-ctype.c:3057
-#: locale/programs/ld-ctype.c:3077 locale/programs/ld-ctype.c:3116
-#: locale/programs/ld-ctype.c:3136 locale/programs/ld-ctype.c:3200
+#: locale/programs/ld-ctype.c:2883 locale/programs/ld-ctype.c:2979
+#: locale/programs/ld-ctype.c:2998 locale/programs/ld-ctype.c:3018
+#: locale/programs/ld-ctype.c:3038 locale/programs/ld-ctype.c:3058
+#: locale/programs/ld-ctype.c:3078 locale/programs/ld-ctype.c:3117
+#: locale/programs/ld-ctype.c:3137 locale/programs/ld-ctype.c:3203
#, c-format
msgid "%s: character `%s' in charmap not representable with one byte"
msgstr "%s: tegnet '%s' i tegntabel ikke repræsenterbar med én byte"
-#: locale/programs/ld-ctype.c:3242 locale/programs/ld-ctype.c:3265
+#: locale/programs/ld-ctype.c:3245 locale/programs/ld-ctype.c:3268
#, c-format
msgid "%s: character `%s' needed as default value not representable with one byte"
msgstr "%s: Tegnet '%s' brugt som standardværdi er ikke repræsenterbar med én byte"
-#: locale/programs/ld-ctype.c:3321
+#: locale/programs/ld-ctype.c:3324
msgid "no output digits defined and none of the standard names in the charmap"
msgstr "ingen uddata-cifre defineret, og ingen af standardnavnene i tegntabellen"
-#: locale/programs/ld-ctype.c:3570
+#: locale/programs/ld-ctype.c:3573
#, c-format
msgid "%s: transliteration data from locale `%s' not available"
msgstr "%s: transliterationsdata fra lokale '%s' ikke tilgængelige"
-#: locale/programs/ld-ctype.c:3669
+#: locale/programs/ld-ctype.c:3672
#, fuzzy, c-format
#| msgid "%s: table for class \"%s\": %lu bytes\n"
msgid "%s: table for class \"%s\": %lu bytes"
msgstr "%s: tabel for class \"%s\": %lu byte\n"
-#: locale/programs/ld-ctype.c:3733
+#: locale/programs/ld-ctype.c:3736
#, fuzzy, c-format
#| msgid "%s: table for map \"%s\": %lu bytes\n"
msgid "%s: table for map \"%s\": %lu bytes"
msgstr "%s: tabel for map \"%s\": %lu byte\n"
-#: locale/programs/ld-ctype.c:3857
+#: locale/programs/ld-ctype.c:3860
#, fuzzy, c-format
#| msgid "%s: table for width: %lu bytes\n"
msgid "%s: table for width: %lu bytes"
@@ -2650,124 +2654,119 @@ msgstr ""
"NAVN\n"
"[-a|-m]"
-#: locale/programs/locale.c:190
+#: locale/programs/locale.c:522
#, c-format
-msgid "Cannot set LC_CTYPE to default locale"
-msgstr "Kan ikke sætte LC_CTYPE til forvalgt lokale"
-
-#: locale/programs/locale.c:192
-#, c-format
-msgid "Cannot set LC_MESSAGES to default locale"
-msgstr "Kan ikke sætte LC_MESSAGES til forvalgt lokale"
-
-#: locale/programs/locale.c:205
-#, c-format
-msgid "Cannot set LC_COLLATE to default locale"
-msgstr "Kan ikke sætte LC_COLLATE til forvalgt lokale"
+msgid "while preparing output"
+msgstr "under forberedelse af uddata"
-#: locale/programs/locale.c:221
-#, c-format
-msgid "Cannot set LC_ALL to default locale"
+#: locale/programs/locale.c:998
+#, fuzzy, c-format
+#| msgid "Cannot set LC_ALL to default locale"
+msgid "Cannot set %s to default locale"
msgstr "Kan ikke sætte LC_ALL til forvalgt lokale"
-#: locale/programs/locale.c:521
+#: locale/programs/locale.c:1096
#, c-format
-msgid "while preparing output"
-msgstr "under forberedelse af uddata"
+msgid "warning: The LOCPATH variable is set to \"%s\"\n"
+msgstr ""
-#: locale/programs/localedef.c:112
+#: locale/programs/localedef.c:116
msgid "Input Files:"
msgstr "Inddatafiler:"
-#: locale/programs/localedef.c:114
+#: locale/programs/localedef.c:118
msgid "Symbolic character names defined in FILE"
msgstr "Symbolske tegnnavne defineret i FIL"
-#: locale/programs/localedef.c:116
+#: locale/programs/localedef.c:120
msgid "Source definitions are found in FILE"
msgstr "Kildedefinitioner er fundet i FIL"
-#: locale/programs/localedef.c:118
+#: locale/programs/localedef.c:122
msgid "FILE contains mapping from symbolic names to UCS4 values"
msgstr "FIL indeholder mapning fra symbolske navne til UCS4-værdier"
-#: locale/programs/localedef.c:122
+#: locale/programs/localedef.c:126
msgid "Create output even if warning messages were issued"
msgstr "Lav uddata selv om advarsler blev givet"
-#: locale/programs/localedef.c:123
+#: locale/programs/localedef.c:128
+msgid "Do not create hard links between installed locales"
+msgstr ""
+
+#: locale/programs/localedef.c:129
msgid "Optional output file prefix"
msgstr "Valgfrit præfiks for uddatafil"
-#: locale/programs/localedef.c:124
+#: locale/programs/localedef.c:130
#, fuzzy
#| msgid "Be strictly POSIX conform"
msgid "Strictly conform to POSIX"
msgstr "Vær strengt POSIX-konform"
-#: locale/programs/localedef.c:126
+#: locale/programs/localedef.c:132
msgid "Suppress warnings and information messages"
msgstr "Undertryk advarsler og informationsmeddelelser"
-#: locale/programs/localedef.c:127
+#: locale/programs/localedef.c:133
msgid "Print more messages"
msgstr "Skriv flere meddelelser"
-#: locale/programs/localedef.c:128 locale/programs/localedef.c:131
+#: locale/programs/localedef.c:134 locale/programs/localedef.c:137
#, fuzzy
#| msgid "warning: "
msgid "<warnings>"
msgstr "advarsel: "
-#: locale/programs/localedef.c:129
+#: locale/programs/localedef.c:135
msgid "Comma-separated list of warnings to disable; supported warnings are: ascii, intcurrsym"
msgstr ""
-#: locale/programs/localedef.c:132
+#: locale/programs/localedef.c:138
msgid "Comma-separated list of warnings to enable; supported warnings are: ascii, intcurrsym"
msgstr ""
-#: locale/programs/localedef.c:135
+#: locale/programs/localedef.c:141
msgid "Archive control:"
msgstr "Arkivkontrol:"
-#: locale/programs/localedef.c:137
+#: locale/programs/localedef.c:143
msgid "Don't add new data to archive"
msgstr "Tilføj ikke nye data til arkiv"
-#: locale/programs/localedef.c:139
+#: locale/programs/localedef.c:145
msgid "Add locales named by parameters to archive"
msgstr "Tilføj lokaler navngivet af parametre til arkiv"
-#: locale/programs/localedef.c:140
+#: locale/programs/localedef.c:146
msgid "Replace existing archive content"
msgstr "Erstat eksisterende arkivindhold"
-#: locale/programs/localedef.c:142
+#: locale/programs/localedef.c:148
msgid "Remove locales named by parameters from archive"
msgstr "Fjern lokaler navngivet af parametre fra arkiv"
-#: locale/programs/localedef.c:143
+#: locale/programs/localedef.c:149
msgid "List content of archive"
msgstr "Vis indeholdet i arkiv"
-#: locale/programs/localedef.c:145
+#: locale/programs/localedef.c:151
msgid "locale.alias file to consult when making archive"
msgstr "locale.alias-fil som skal bruges når arkiv laves"
-#: locale/programs/localedef.c:147
+#: locale/programs/localedef.c:153
msgid "Generate little-endian output"
msgstr ""
-#: locale/programs/localedef.c:149
+#: locale/programs/localedef.c:155
msgid "Generate big-endian output"
msgstr ""
-#: locale/programs/localedef.c:154
+#: locale/programs/localedef.c:160
msgid "Compile locale specification"
msgstr "Kompilér lokale-specifikation"
-#: locale/programs/localedef.c:157
+#: locale/programs/localedef.c:163
msgid ""
"NAME\n"
"[--add-to-archive|--delete-from-archive] FILE...\n"
@@ -2777,33 +2776,33 @@ msgstr ""
"[--add-to-archive|--delete-from-archive] FIL...\n"
"--list-archive [FIL]"
-#: locale/programs/localedef.c:232
+#: locale/programs/localedef.c:238
#, c-format
msgid "cannot create directory for output files"
msgstr "kan ikke oprette katalog for uddatafiler"
-#: locale/programs/localedef.c:243
+#: locale/programs/localedef.c:249
msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
msgstr "FATALT: systemet definerer ikke '_POSIX2_LOCALEDEF'"
-#: locale/programs/localedef.c:257 locale/programs/localedef.c:273
-#: locale/programs/localedef.c:663 locale/programs/localedef.c:683
+#: locale/programs/localedef.c:263 locale/programs/localedef.c:279
+#: locale/programs/localedef.c:673 locale/programs/localedef.c:693
#, c-format
msgid "cannot open locale definition file `%s'"
msgstr "kan ikke åbne lokaledefinitionsfil '%s'"
-#: locale/programs/localedef.c:297
+#: locale/programs/localedef.c:303
#, c-format
msgid "cannot write output files to `%s'"
msgstr "kan ikke skrive uddatafiler til '%s'"
-#: locale/programs/localedef.c:303
+#: locale/programs/localedef.c:309
#, fuzzy
#| msgid "no output file produced because warnings were issued"
msgid "no output file produced because errors were issued"
msgstr "på grund af advarsler blev ingen uddatafil oprettet"
-#: locale/programs/localedef.c:431
+#: locale/programs/localedef.c:441
#, fuzzy, c-format
#| msgid ""
#| "System's directory for character maps : %s\n"
@@ -2821,11 +2820,11 @@ msgstr ""
" lokale-sti: %s\n"
"%s"
-#: locale/programs/localedef.c:631
+#: locale/programs/localedef.c:641
msgid "circular dependencies between locale definitions"
msgstr "cirkulære afhængigheder mellem lokale-definitioner"
-#: locale/programs/localedef.c:637
+#: locale/programs/localedef.c:647
#, c-format
msgid "cannot add already read locale `%s' a second time"
msgstr "kan ikke tilføje allerede læst lokale '%s' på ny"
@@ -2984,24 +2983,24 @@ msgstr "kan ikke åbne uddatafil '%s' for kategori '%s'"
msgid "failure while writing data for category `%s'"
msgstr "fejl ved skrivning af data for kategori '%s'"
-#: locale/programs/locfile.c:917
+#: locale/programs/locfile.c:930
#, c-format
msgid "cannot create output file `%s' for category `%s'"
msgstr "kan ikke oprette uddatafil '%s' for kategori '%s'"
-#: locale/programs/locfile.c:953
+#: locale/programs/locfile.c:966
msgid "expecting string argument for `copy'"
msgstr "forventer strengargument for 'copy'"
-#: locale/programs/locfile.c:957
+#: locale/programs/locfile.c:970
msgid "locale name should consist only of portable characters"
msgstr "lokale-navn bør bestå af bare portable tegn"
-#: locale/programs/locfile.c:976
+#: locale/programs/locfile.c:989
msgid "no other keyword shall be specified when `copy' is used"
msgstr "ingen andre nøgleord skal angives når 'copy' bruges"
-#: locale/programs/locfile.c:990
+#: locale/programs/locfile.c:1003
#, c-format
msgid "`%1$s' definition does not end with `END %1$s'"
msgstr "'%1$s' definition slutter ikke med 'END %1$s'"
@@ -3841,12 +3840,12 @@ msgstr "yp_update: kan ikke konvertere vært til netnavn\n"
msgid "yp_update: cannot get server address\n"
msgstr "yp_update: kan ikke hente serveradresse\n"
-#: nscd/aicache.c:83 nscd/hstcache.c:452
+#: nscd/aicache.c:82 nscd/hstcache.c:452
#, c-format
msgid "Haven't found \"%s\" in hosts cache!"
msgstr "Har ikke fundet '%s' i værts-nærbuffer!"
-#: nscd/aicache.c:85 nscd/hstcache.c:454
+#: nscd/aicache.c:84 nscd/hstcache.c:454
#, c-format
msgid "Reloading \"%s\" in hosts cache!"
msgstr "Genindlæser '%s' i værts-nærbuffer!"
@@ -4173,25 +4172,25 @@ msgstr "frigjorde %zu byte i %s cache"
msgid "no more memory for database '%s'"
msgstr "Ikke mere hukommelse for database '%s'"
-#: nscd/netgroupcache.c:121
+#: nscd/netgroupcache.c:122
#, fuzzy, c-format
#| msgid "Haven't found \"%s\" in group cache!"
msgid "Haven't found \"%s\" in netgroup cache!"
msgstr "Har ikke fundet '%s' i gruppe-nærbuffer!"
-#: nscd/netgroupcache.c:123
+#: nscd/netgroupcache.c:124
#, fuzzy, c-format
#| msgid "Reloading \"%s\" in group cache!"
msgid "Reloading \"%s\" in netgroup cache!"
msgstr "Genindlæser '%s' i gruppe-nærbuffer!"
-#: nscd/netgroupcache.c:469
+#: nscd/netgroupcache.c:470
#, fuzzy, c-format
#| msgid "Haven't found \"%s\" in group cache!"
msgid "Haven't found \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr "Har ikke fundet '%s' i gruppe-nærbuffer!"
-#: nscd/netgroupcache.c:472
+#: nscd/netgroupcache.c:473
#, fuzzy, c-format
#| msgid "Reloading \"%s\" in group cache!"
msgid "Reloading \"%s (%s,%s,%s)\" in netgroup cache!"
@@ -4245,7 +4244,7 @@ msgstr "Brug separat buffer for hver bruger"
msgid "Name Service Cache Daemon."
msgstr "Dæmon for bufring af navnetjeneste"
-#: nscd/nscd.c:155 nss/getent.c:967 nss/makedb.c:206
+#: nscd/nscd.c:155 nss/getent.c:987 nss/makedb.c:206
#, c-format
msgid "wrong number of arguments"
msgstr "galt antal argumenter"
@@ -4351,27 +4350,27 @@ msgstr "Fejl under tolkning: %s"
msgid "Must specify user name for server-user option"
msgstr "Brugernavn skal angives for server-bruger-mulighed"
-#: nscd/nscd_conf.c:198
+#: nscd/nscd_conf.c:201
#, c-format
msgid "Must specify user name for stat-user option"
msgstr "Brugernavn skal angives for stat-bruger-mulighed"
-#: nscd/nscd_conf.c:255
+#: nscd/nscd_conf.c:259
#, c-format
msgid "Must specify value for restart-interval option"
msgstr "Skal angive værdi for \"restart-interval\"-flaget"
-#: nscd/nscd_conf.c:269
+#: nscd/nscd_conf.c:273
#, c-format
msgid "Unknown option: %s %s %s"
msgstr "Ukendt flag: %s %s %s"
-#: nscd/nscd_conf.c:282
+#: nscd/nscd_conf.c:286
#, c-format
msgid "cannot get current working directory: %s; disabling paranoia mode"
msgstr "kan ikke få fat på aktuelt arbejdskatalog: %s; deaktiverer paranoiatilstand"
-#: nscd/nscd_conf.c:302
+#: nscd/nscd_conf.c:306
#, c-format
msgid "maximum file size for %s database too small"
msgstr "maksimal filstørrelse for \"%s\"-databasen er for lille"
@@ -4642,49 +4641,49 @@ msgstr "Har ikke fundet '%s' i tjeneste-nærbuffer!"
msgid "Reloading \"%s\" in services cache!"
msgstr "Genindlæser '%s' i tjeneste-nærbuffer!"
-#: nss/getent.c:54
+#: nss/getent.c:55
msgid "database [key ...]"
msgstr "database [nøgle ...]"
-#: nss/getent.c:59
+#: nss/getent.c:60
#, fuzzy
#| msgid "CONF"
msgid "CONFIG"
msgstr "CONF"
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "Service configuration to be used"
msgstr "Tjenestekonfiguration som skal bruges"
-#: nss/getent.c:60
+#: nss/getent.c:61
msgid "disable IDN encoding"
msgstr ""
-#: nss/getent.c:65
+#: nss/getent.c:66
msgid "Get entries from administrative database."
msgstr "Hent poster fra administrativ database."
-#: nss/getent.c:149 nss/getent.c:442 nss/getent.c:489
+#: nss/getent.c:150 nss/getent.c:462 nss/getent.c:509
#, c-format
msgid "Enumeration not supported on %s\n"
msgstr "Enumeration er ikke understøttet på %s\n"
-#: nss/getent.c:497 nss/getent.c:510
+#: nss/getent.c:517 nss/getent.c:530
#, fuzzy, c-format
#| msgid "Could not create log file"
msgid "Could not allocate group list: %m\n"
msgstr "Kunne ikke oprette logfil"
-#: nss/getent.c:881
+#: nss/getent.c:901
#, c-format
msgid "Unknown database name"
msgstr "Ukendt databasenavn"
-#: nss/getent.c:911
+#: nss/getent.c:931
msgid "Supported databases:\n"
msgstr "Understøttede databaser:\n"
-#: nss/getent.c:977
+#: nss/getent.c:997
#, c-format
msgid "Unknown database: %s\n"
msgstr "Ukendt database: %s\n"
@@ -4958,11 +4957,11 @@ msgstr "Regulært udtryk for stort"
msgid "Unmatched ) or \\)"
msgstr "Ubalanceret ) eller \\)"
-#: posix/regcomp.c:689
+#: posix/regcomp.c:676
msgid "No previous regular expression"
msgstr "Intet foregående regulært udtryk"
-#: posix/wordexp.c:1815
+#: posix/wordexp.c:1816
msgid "parameter null or not set"
msgstr "parameter er nul eller ikke sat"
@@ -5185,7 +5184,7 @@ msgstr "Ikke mere buffer-plads tilgængelig"
msgid "Input message available"
msgstr "Ikke mere buffer-plads tilgængelig"
-#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:381 timezone/zic.c:520
+#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:375 timezone/zic.c:561
#, fuzzy
#| msgid "Remote I/O error"
msgid "I/O error"
@@ -5273,7 +5272,7 @@ msgstr "Ukendt signal %d"
#: sunrpc/auth_unix.c:112 sunrpc/clnt_tcp.c:124 sunrpc/clnt_udp.c:139
#: sunrpc/clnt_unix.c:125 sunrpc/svc_tcp.c:189 sunrpc/svc_tcp.c:233
#: sunrpc/svc_udp.c:161 sunrpc/svc_unix.c:189 sunrpc/svc_unix.c:229
-#: sunrpc/xdr.c:628 sunrpc/xdr.c:788 sunrpc/xdr_array.c:102
+#: sunrpc/xdr.c:631 sunrpc/xdr.c:791 sunrpc/xdr_array.c:102
#: sunrpc/xdr_rec.c:153 sunrpc/xdr_ref.c:79
msgid "out of memory\n"
msgstr "ikke mere hukommelse\n"
@@ -6532,56 +6531,69 @@ msgid "You really blew it this time"
msgstr "Denne gang gjorde du virkelig i nælderne"
#. TRANS Go home and have a glass of warm, dairy-fresh milk.
-#: sysdeps/gnu/errlist.c:978
+#. TRANS @c Okay. Since you are dying to know, I'll tell you.
+#. TRANS @c This is a joke, obviously. There is a children's song which begins,
+#. TRANS @c "Old McDonald had a farm, e-i-e-i-o." Every time I see the (real)
+#. TRANS @c errno macro EIO, I think about that song. Probably most of my
+#. TRANS @c compatriots who program on Unix do, too. One of them must have stayed
+#. TRANS @c up a little too late one night and decided to add it to Hurd or Glibc.
+#. TRANS @c Whoever did it should be castigated, but it made me laugh.
+#. TRANS @c --jtobey@channel1.com
+#. TRANS @c
+#. TRANS @c "bought the farm" means "died". -jtobey
+#. TRANS @c
+#. TRANS @c Translators, please do not translate this litteraly, translate it into
+#. TRANS @c an idiomatic funny way of saying that the computer died.
+#: sysdeps/gnu/errlist.c:991
msgid "Computer bought the farm"
msgstr "Datamaskinen tog på ferie"
#. TRANS This error code has no purpose.
-#: sysdeps/gnu/errlist.c:987
+#: sysdeps/gnu/errlist.c:1000
msgid "Gratuitous error"
msgstr "Umotiveret fejl"
-#: sysdeps/gnu/errlist.c:995
+#: sysdeps/gnu/errlist.c:1008
msgid "Bad message"
msgstr "Ugyldig meddelelse"
-#: sysdeps/gnu/errlist.c:1003
+#: sysdeps/gnu/errlist.c:1016
msgid "Identifier removed"
msgstr "Identifikator fjernet"
-#: sysdeps/gnu/errlist.c:1011
+#: sysdeps/gnu/errlist.c:1024
msgid "Multihop attempted"
msgstr "Forsøgte viderehop"
-#: sysdeps/gnu/errlist.c:1019
+#: sysdeps/gnu/errlist.c:1032
msgid "No data available"
msgstr "Ingen data er tilgængelige"
-#: sysdeps/gnu/errlist.c:1027
+#: sysdeps/gnu/errlist.c:1040
msgid "Link has been severed"
msgstr "Lænken er blevet skadet"
-#: sysdeps/gnu/errlist.c:1035
+#: sysdeps/gnu/errlist.c:1048
msgid "No message of desired type"
msgstr "Ingen meddelelser af ønsket type"
-#: sysdeps/gnu/errlist.c:1043
+#: sysdeps/gnu/errlist.c:1056
msgid "Out of streams resources"
msgstr "Ikke flere strøm-ressourcer"
-#: sysdeps/gnu/errlist.c:1051
+#: sysdeps/gnu/errlist.c:1064
msgid "Device not a stream"
msgstr "Enheden er ikke en strøm"
-#: sysdeps/gnu/errlist.c:1059
+#: sysdeps/gnu/errlist.c:1072
msgid "Value too large for defined data type"
msgstr "Værdien er for stor for den definerede datatype"
-#: sysdeps/gnu/errlist.c:1067
+#: sysdeps/gnu/errlist.c:1080
msgid "Protocol error"
msgstr "Protokolfejl"
-#: sysdeps/gnu/errlist.c:1075
+#: sysdeps/gnu/errlist.c:1088
msgid "Timer expired"
msgstr "Tidstager udløb"
@@ -6589,197 +6601,197 @@ msgstr "Tidstager udløb"
#. TRANS completed. @xref{Asynchronous I/O}. When you call @code{aio_cancel},
#. TRANS the normal result is for the operations affected to complete with this
#. TRANS error; @pxref{Cancel AIO Operations}.
-#: sysdeps/gnu/errlist.c:1087
+#: sysdeps/gnu/errlist.c:1100
msgid "Operation canceled"
msgstr "Operationen afbrudt"
-#: sysdeps/gnu/errlist.c:1095
+#: sysdeps/gnu/errlist.c:1108
msgid "Owner died"
msgstr "Ejeren døde"
-#: sysdeps/gnu/errlist.c:1103
+#: sysdeps/gnu/errlist.c:1116
msgid "State not recoverable"
msgstr "Tilstanden kan ikke genskabes"
-#: sysdeps/gnu/errlist.c:1111
+#: sysdeps/gnu/errlist.c:1124
msgid "Interrupted system call should be restarted"
msgstr "Afbrudt systemkald bør genstartes"
-#: sysdeps/gnu/errlist.c:1119
+#: sysdeps/gnu/errlist.c:1132
msgid "Channel number out of range"
msgstr "Kanalnummer udenfor gyldigt interval"
-#: sysdeps/gnu/errlist.c:1127
+#: sysdeps/gnu/errlist.c:1140
msgid "Level 2 not synchronized"
msgstr "Niveau 2 ikke synkroniseret"
-#: sysdeps/gnu/errlist.c:1135
+#: sysdeps/gnu/errlist.c:1148
msgid "Level 3 halted"
msgstr "Niveau 3 stoppet"
-#: sysdeps/gnu/errlist.c:1143
+#: sysdeps/gnu/errlist.c:1156
msgid "Level 3 reset"
msgstr "Niveau 3 startet forfra"
-#: sysdeps/gnu/errlist.c:1151
+#: sysdeps/gnu/errlist.c:1164
msgid "Link number out of range"
msgstr "Lænkenummer udenfor gyldigt område"
-#: sysdeps/gnu/errlist.c:1159
+#: sysdeps/gnu/errlist.c:1172
msgid "Protocol driver not attached"
msgstr "Protokoldriver er ikke tilkoblet"
-#: sysdeps/gnu/errlist.c:1167
+#: sysdeps/gnu/errlist.c:1180
msgid "No CSI structure available"
msgstr "Ingen CSI-strukturer tilgængelige"
-#: sysdeps/gnu/errlist.c:1175
+#: sysdeps/gnu/errlist.c:1188
msgid "Level 2 halted"
msgstr "Niveau 2 stoppet"
-#: sysdeps/gnu/errlist.c:1183
+#: sysdeps/gnu/errlist.c:1196
msgid "Invalid exchange"
msgstr "Ugyldig veksel"
-#: sysdeps/gnu/errlist.c:1191
+#: sysdeps/gnu/errlist.c:1204
msgid "Invalid request descriptor"
msgstr "Ugyldig forespørgseldeskriptor"
-#: sysdeps/gnu/errlist.c:1199
+#: sysdeps/gnu/errlist.c:1212
msgid "Exchange full"
msgstr "Veksel fuld"
-#: sysdeps/gnu/errlist.c:1207
+#: sysdeps/gnu/errlist.c:1220
msgid "No anode"
msgstr "Ingen anode"
-#: sysdeps/gnu/errlist.c:1215
+#: sysdeps/gnu/errlist.c:1228
msgid "Invalid request code"
msgstr "Ugyldig adgangskode"
-#: sysdeps/gnu/errlist.c:1223
+#: sysdeps/gnu/errlist.c:1236
msgid "Invalid slot"
msgstr "Ugyldig plads"
-#: sysdeps/gnu/errlist.c:1231
+#: sysdeps/gnu/errlist.c:1244
msgid "File locking deadlock error"
msgstr "Fillåsning fejlede på grund af baglås"
-#: sysdeps/gnu/errlist.c:1239
+#: sysdeps/gnu/errlist.c:1252
msgid "Bad font file format"
msgstr "Ugyldigt format på skrifttypefil"
-#: sysdeps/gnu/errlist.c:1247
+#: sysdeps/gnu/errlist.c:1260
msgid "Machine is not on the network"
msgstr "Maskinen er ikke på netværket"
-#: sysdeps/gnu/errlist.c:1255
+#: sysdeps/gnu/errlist.c:1268
msgid "Package not installed"
msgstr "Pakken er ikke installeret"
-#: sysdeps/gnu/errlist.c:1263
+#: sysdeps/gnu/errlist.c:1276
msgid "Advertise error"
msgstr "Annonceringsfejl"
-#: sysdeps/gnu/errlist.c:1271
+#: sysdeps/gnu/errlist.c:1284
msgid "Srmount error"
msgstr "Srmount-fejl"
-#: sysdeps/gnu/errlist.c:1279
+#: sysdeps/gnu/errlist.c:1292
msgid "Communication error on send"
msgstr "Kommunikationsfejl ved sending"
-#: sysdeps/gnu/errlist.c:1287
+#: sysdeps/gnu/errlist.c:1300
msgid "RFS specific error"
msgstr "RFS-specifik fejl"
-#: sysdeps/gnu/errlist.c:1295
+#: sysdeps/gnu/errlist.c:1308
msgid "Name not unique on network"
msgstr "Navnet er ikke unikt på netværket"
-#: sysdeps/gnu/errlist.c:1303
+#: sysdeps/gnu/errlist.c:1316
msgid "File descriptor in bad state"
msgstr "Fildeskriptor i dårlig tilstand"
-#: sysdeps/gnu/errlist.c:1311
+#: sysdeps/gnu/errlist.c:1324
msgid "Remote address changed"
msgstr "Fjernadresse ændret"
-#: sysdeps/gnu/errlist.c:1319
+#: sysdeps/gnu/errlist.c:1332
msgid "Can not access a needed shared library"
msgstr "Kan ikke få adgang til et nødvendigt delt bibliotek"
-#: sysdeps/gnu/errlist.c:1327
+#: sysdeps/gnu/errlist.c:1340
msgid "Accessing a corrupted shared library"
msgstr "FÃ¥r adgang til et skadet delt bibliotek"
-#: sysdeps/gnu/errlist.c:1335
+#: sysdeps/gnu/errlist.c:1348
msgid ".lib section in a.out corrupted"
msgstr ".lib-sektion i a.out skadet"
-#: sysdeps/gnu/errlist.c:1343
+#: sysdeps/gnu/errlist.c:1356
msgid "Attempting to link in too many shared libraries"
msgstr "Forsøger at indlænke for mange delte biblioteker"
-#: sysdeps/gnu/errlist.c:1351
+#: sysdeps/gnu/errlist.c:1364
msgid "Cannot exec a shared library directly"
msgstr "Kan ikke eksekvere et delt bibliotek direkte"
-#: sysdeps/gnu/errlist.c:1359
+#: sysdeps/gnu/errlist.c:1372
msgid "Streams pipe error"
msgstr "Strøm-kanalfejl"
-#: sysdeps/gnu/errlist.c:1367
+#: sysdeps/gnu/errlist.c:1380
msgid "Structure needs cleaning"
msgstr "Strukturen trænger til oprydning"
-#: sysdeps/gnu/errlist.c:1375
+#: sysdeps/gnu/errlist.c:1388
msgid "Not a XENIX named type file"
msgstr "Ikke en XENIX navngiven typefil"
-#: sysdeps/gnu/errlist.c:1383
+#: sysdeps/gnu/errlist.c:1396
msgid "No XENIX semaphores available"
msgstr "Ingen XENIX-semaforer tilgængelige"
-#: sysdeps/gnu/errlist.c:1391
+#: sysdeps/gnu/errlist.c:1404
msgid "Is a named type file"
msgstr "Er en navngiven filtype"
-#: sysdeps/gnu/errlist.c:1399
+#: sysdeps/gnu/errlist.c:1412
msgid "Remote I/O error"
msgstr "I/O-fejl på fjernmaskine"
-#: sysdeps/gnu/errlist.c:1407
+#: sysdeps/gnu/errlist.c:1420
msgid "No medium found"
msgstr "Medie ikke fundet"
-#: sysdeps/gnu/errlist.c:1415
+#: sysdeps/gnu/errlist.c:1428
msgid "Wrong medium type"
msgstr "Forkert medietype"
-#: sysdeps/gnu/errlist.c:1423
+#: sysdeps/gnu/errlist.c:1436
msgid "Required key not available"
msgstr "Obligatorisk nøgle ikke tilgængelig"
-#: sysdeps/gnu/errlist.c:1431
+#: sysdeps/gnu/errlist.c:1444
msgid "Key has expired"
msgstr "Nøgle er udløbet"
-#: sysdeps/gnu/errlist.c:1439
+#: sysdeps/gnu/errlist.c:1452
msgid "Key has been revoked"
msgstr "Nøglen er blevet tilbagekaldt"
-#: sysdeps/gnu/errlist.c:1447
+#: sysdeps/gnu/errlist.c:1460
msgid "Key was rejected by service"
msgstr "Nøglen blev afvist af tjeneste"
-#: sysdeps/gnu/errlist.c:1455
+#: sysdeps/gnu/errlist.c:1468
#, fuzzy
#| msgid "Operation not permitted"
msgid "Operation not possible due to RF-kill"
msgstr "Operationen er ikke tilladt"
-#: sysdeps/gnu/errlist.c:1463
+#: sysdeps/gnu/errlist.c:1476
msgid "Memory page has hardware error"
msgstr ""
@@ -6908,31 +6920,31 @@ msgstr ""
msgid "can't disable CET"
msgstr ""
-#: timezone/zdump.c:338
+#: timezone/zdump.c:332
#, fuzzy
#| msgid "has fewer than 3 alphabetics"
msgid "has fewer than 3 characters"
msgstr "har mindre end 3 alfabetiske tegn"
-#: timezone/zdump.c:340
+#: timezone/zdump.c:334
#, fuzzy
#| msgid "has more than 6 alphabetics"
msgid "has more than 6 characters"
msgstr "har mere end 6 alfabetiske tegn"
-#: timezone/zdump.c:342
+#: timezone/zdump.c:336
msgid "has characters other than ASCII alphanumerics, '-' or '+'"
msgstr ""
-#: timezone/zdump.c:347
+#: timezone/zdump.c:341
#, c-format
msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n"
msgstr "%s: advarsel: zone \"%s\" forkortelse \"%s\": %s\n"
-#: timezone/zdump.c:393
+#: timezone/zdump.c:387
#, c-format
msgid ""
-"%s: usage: %s OPTIONS ZONENAME ...\n"
+"%s: usage: %s OPTIONS TIMEZONE ...\n"
"Options include:\n"
" -c [L,]U Start at year L (default -500), end before year U (default 2500)\n"
" -t [L,]U Start at time L, end before time U (in seconds since 1970)\n"
@@ -6945,52 +6957,58 @@ msgid ""
"Report bugs to %s.\n"
msgstr ""
-#: timezone/zdump.c:479
+#: timezone/zdump.c:473
#, c-format
msgid "%s: wild -c argument %s\n"
msgstr "%s: argument \"%s\" til flaget -c har forkert format\n"
-#: timezone/zdump.c:512
+#: timezone/zdump.c:506
#, fuzzy, c-format
#| msgid "%s: wild -c argument %s\n"
msgid "%s: wild -t argument %s\n"
msgstr "%s: argument \"%s\" til flaget -c har forkert format\n"
-#: timezone/zic.c:398
+#: timezone/zic.c:429
#, c-format
msgid "%s: Memory exhausted: %s\n"
msgstr "%s: Lageret opbrugt: %s\n"
-#: timezone/zic.c:406
+#: timezone/zic.c:437
#, fuzzy
#| msgid "time overflow"
msgid "size overflow"
msgstr "for stor tidsværdi"
-#: timezone/zic.c:454
+#: timezone/zic.c:447
+#, fuzzy
+#| msgid "time overflow"
+msgid "alignment overflow"
+msgstr "for stor tidsværdi"
+
+#: timezone/zic.c:495
#, fuzzy
#| msgid "time overflow"
msgid "integer overflow"
msgstr "for stor tidsværdi"
-#: timezone/zic.c:488
+#: timezone/zic.c:529
#, fuzzy, c-format
#| msgid "\"%s\", line %d: %s"
msgid "\"%s\", line %<PRIdMAX>: "
msgstr "'%s', linje %d: %s"
-#: timezone/zic.c:491
+#: timezone/zic.c:532
#, fuzzy, c-format
#| msgid " (rule from \"%s\", line %d)"
msgid " (rule from \"%s\", line %<PRIdMAX>)"
msgstr " (regel fra '%s', linje %d)"
-#: timezone/zic.c:510
+#: timezone/zic.c:551
#, c-format
msgid "warning: "
msgstr "advarsel: "
-#: timezone/zic.c:535
+#: timezone/zic.c:576
#, fuzzy, c-format
#| msgid ""
#| "%s: usage is %s [ --version ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n"
@@ -6998,411 +7016,434 @@ msgstr "advarsel: "
msgid ""
"%s: usage is %s [ --version ] [ --help ] [ -v ] \\\n"
"\t[ -l localtime ] [ -p posixrules ] [ -d directory ] \\\n"
-"\t[ -L leapseconds ] [ filename ... ]\n"
+"\t[ -t localtime-link ] [ -L leapseconds ] [ filename ... ]\n"
"\n"
"Report bugs to %s.\n"
msgstr ""
"%s: brug er %s [ --version ] [ -v ] [ -l lokaltid ] [ -p posixregler ] \\\n"
"\t[ -d katalog ] [ -L skudsekunder ] [ -y årkontrolprogram ] [ filnavn ... ]\n"
-#: timezone/zic.c:558
+#: timezone/zic.c:599
#, fuzzy, c-format
#| msgid "%s: Can't create %s: %s\n"
msgid "%s: Can't chdir to %s: %s\n"
msgstr "%s: Kan ikke oprette %s: %s\n"
-#: timezone/zic.c:590
+#: timezone/zic.c:632
msgid "wild compilation-time specification of zic_t"
msgstr "definitionen af zic_t ved kompilering er urimelig"
-#: timezone/zic.c:610
+#: timezone/zic.c:652
#, c-format
msgid "%s: More than one -d option specified\n"
msgstr "%s: Mere end et -d-flag specificeret\n"
-#: timezone/zic.c:620
+#: timezone/zic.c:662
#, c-format
msgid "%s: More than one -l option specified\n"
msgstr "%s: Mere end et -l-flag specificeret\n"
-#: timezone/zic.c:630
+#: timezone/zic.c:672
#, c-format
msgid "%s: More than one -p option specified\n"
msgstr "%s: Mere end et -p-flag specificeret\n"
-#: timezone/zic.c:640
+#: timezone/zic.c:680
+#, fuzzy, c-format
+#| msgid "%s: More than one -d option specified\n"
+msgid "%s: More than one -t option specified\n"
+msgstr "%s: Mere end et -d-flag specificeret\n"
+
+#: timezone/zic.c:689
+msgid "-y is obsolescent"
+msgstr ""
+
+#: timezone/zic.c:693
#, c-format
msgid "%s: More than one -y option specified\n"
msgstr "%s: Mere end et -y-flag specificeret\n"
-#: timezone/zic.c:650
+#: timezone/zic.c:703
#, c-format
msgid "%s: More than one -L option specified\n"
msgstr "%s: Mere end et -L-flag specificeret\n"
-#: timezone/zic.c:659
+#: timezone/zic.c:712
msgid "-s ignored"
msgstr ""
-#: timezone/zic.c:698
+#: timezone/zic.c:753
msgid "link to link"
msgstr "lænke til lænke"
-#: timezone/zic.c:701 timezone/zic.c:705
+#: timezone/zic.c:756 timezone/zic.c:760
#, fuzzy
#| msgid "Too many links"
msgid "command line"
msgstr "For mange lænker"
-#: timezone/zic.c:721
+#: timezone/zic.c:776
msgid "empty file name"
msgstr ""
-#: timezone/zic.c:724
+#: timezone/zic.c:779
#, c-format
msgid "file name '%s' begins with '/'"
msgstr ""
-#: timezone/zic.c:734
+#: timezone/zic.c:789
#, c-format
msgid "file name '%s' contains '%.*s' component"
msgstr ""
-#: timezone/zic.c:740
+#: timezone/zic.c:795
#, c-format
msgid "file name '%s' component contains leading '-'"
msgstr ""
-#: timezone/zic.c:743
+#: timezone/zic.c:798
#, c-format
msgid "file name '%s' contains overlength component '%.*s...'"
msgstr ""
-#: timezone/zic.c:771
+#: timezone/zic.c:826
#, c-format
msgid "file name '%s' contains byte '%c'"
msgstr ""
-#: timezone/zic.c:772
+#: timezone/zic.c:827
#, c-format
msgid "file name '%s' contains byte '\\%o'"
msgstr ""
-#: timezone/zic.c:842
+#: timezone/zic.c:897
#, fuzzy, c-format
#| msgid "%s: Can't link from %s to %s: %s\n"
msgid "%s: link from %s/%s failed: %s\n"
msgstr "%s: Kan ikke oprette lænke fra %s til %s: %s\n"
-#: timezone/zic.c:852 timezone/zic.c:1815
+#: timezone/zic.c:907 timezone/zic.c:1876
#, fuzzy, c-format
#| msgid "%s: Can't remove %s: %s\n"
msgid "%s: Can't remove %s/%s: %s\n"
msgstr "%s: Kan ikke fjerne %s: %s\n"
-#: timezone/zic.c:874
+#: timezone/zic.c:931
#, c-format
msgid "symbolic link used because hard link failed: %s"
msgstr ""
-#: timezone/zic.c:882
+#: timezone/zic.c:939
#, fuzzy, c-format
#| msgid "%s: Can't create %s: %s\n"
msgid "%s: Can't read %s/%s: %s\n"
msgstr "%s: Kan ikke oprette %s: %s\n"
-#: timezone/zic.c:889 timezone/zic.c:1828
+#: timezone/zic.c:946 timezone/zic.c:1889
#, fuzzy, c-format
#| msgid "%s: Can't create %s: %s\n"
msgid "%s: Can't create %s/%s: %s\n"
msgstr "%s: Kan ikke oprette %s: %s\n"
-#: timezone/zic.c:898
+#: timezone/zic.c:955
#, c-format
msgid "copy used because hard link failed: %s"
msgstr ""
-#: timezone/zic.c:901
+#: timezone/zic.c:958
#, c-format
msgid "copy used because symbolic link failed: %s"
msgstr ""
-#: timezone/zic.c:1013 timezone/zic.c:1015
+#: timezone/zic.c:1032 timezone/zic.c:1034
msgid "same rule name in multiple files"
msgstr "samme regelnavn i flere filer"
-#: timezone/zic.c:1056
-msgid "unruly zone"
-msgstr "vanskelig zone"
-
-#: timezone/zic.c:1063
+#: timezone/zic.c:1081
#, c-format
msgid "%s in ruleless zone"
msgstr "%s i zone uden regel"
-#: timezone/zic.c:1083
+#: timezone/zic.c:1101
msgid "standard input"
msgstr "standard inddata"
-#: timezone/zic.c:1088
+#: timezone/zic.c:1106
#, c-format
msgid "%s: Can't open %s: %s\n"
msgstr "%s: Kan ikke åbne %s: %s\n"
-#: timezone/zic.c:1099
+#: timezone/zic.c:1117
msgid "line too long"
msgstr "for lang linje"
-#: timezone/zic.c:1119
+#: timezone/zic.c:1139
msgid "input line of unknown type"
msgstr "inddatalinje af ukendt type"
-#: timezone/zic.c:1134
-#, fuzzy, c-format
-#| msgid "%s: Leap line in non leap seconds file %s\n"
-msgid "%s: Leap line in non leap seconds file %s"
-msgstr "%s: 'Leap'-linje i fil %s som ikke er skudsekundsfil\n"
-
-#: timezone/zic.c:1142 timezone/zic.c:1547 timezone/zic.c:1569
+#: timezone/zic.c:1158 timezone/zic.c:1593 timezone/zic.c:1615
#, c-format
msgid "%s: panic: Invalid l_value %d\n"
msgstr "%s: panik: ugyldig l_value %d\n"
-#: timezone/zic.c:1151
+#: timezone/zic.c:1167
msgid "expected continuation line not found"
msgstr "forventet fortsættelseslinje ikke fundet"
-#: timezone/zic.c:1193 timezone/zic.c:2976
+#: timezone/zic.c:1203
+#, fuzzy
+#| msgid "24:00 not handled by pre-1998 versions of zic"
+msgid "fractional seconds rejected by pre-2018 versions of zic"
+msgstr "24:00 håndteres ikke af zic-versioner før 1998"
+
+#: timezone/zic.c:1221 timezone/zic.c:3078
msgid "time overflow"
msgstr "for stor tidsværdi"
-#: timezone/zic.c:1198
+#: timezone/zic.c:1227
msgid "values over 24 hours not handled by pre-2007 versions of zic"
msgstr "værdier større end 24 timer håndteres ikke af zic-versioner før 2007"
-#: timezone/zic.c:1209
+#: timezone/zic.c:1245
+msgid "invalid saved time"
+msgstr "ugyldig lagret tid"
+
+#: timezone/zic.c:1256
msgid "wrong number of fields on Rule line"
msgstr "galt antal felter på 'Rule'-linje"
-#: timezone/zic.c:1213
-msgid "nameless rule"
-msgstr "navnløs regel"
-
-#: timezone/zic.c:1218
-msgid "invalid saved time"
-msgstr "ugyldig lagret tid"
+#: timezone/zic.c:1265
+#, fuzzy, c-format
+#| msgid "Invalid numeric gid \"%s\"!"
+msgid "Invalid rule name \"%s\""
+msgstr "Ugyldigt numerisk gruppe-id (gid) \"%s\"!"
-#: timezone/zic.c:1235
+#: timezone/zic.c:1287
msgid "wrong number of fields on Zone line"
msgstr "galt antal felter på 'Zone'-linje"
-#: timezone/zic.c:1240
+#: timezone/zic.c:1292
#, c-format
msgid "\"Zone %s\" line and -l option are mutually exclusive"
msgstr "'Zone %s'-linje og flaget -l udelukker hinanden"
-#: timezone/zic.c:1246
+#: timezone/zic.c:1298
#, c-format
msgid "\"Zone %s\" line and -p option are mutually exclusive"
msgstr "'Zone %s'-linje og flaget -p udelukker hinanden"
-#: timezone/zic.c:1253
+#: timezone/zic.c:1305
#, fuzzy, c-format
#| msgid "duplicate zone name %s (file \"%s\", line %d)"
msgid "duplicate zone name %s (file \"%s\", line %<PRIdMAX>)"
msgstr "duplikér zonenavn %s (fil '%s', linje %d)"
-#: timezone/zic.c:1267
+#: timezone/zic.c:1319
msgid "wrong number of fields on Zone continuation line"
msgstr "galt antal felter på 'Zone'-fortsættelseslinje"
-#: timezone/zic.c:1307
+#: timezone/zic.c:1359
#, fuzzy
#| msgid "invalid UTC offset"
msgid "invalid UT offset"
msgstr "ugyldig UTC-forskydning"
-#: timezone/zic.c:1311
+#: timezone/zic.c:1363
msgid "invalid abbreviation format"
msgstr "ugyldig forkortelsesformat"
-#: timezone/zic.c:1320
+#: timezone/zic.c:1372
#, fuzzy, c-format
#| msgid "24:00 not handled by pre-1998 versions of zic"
msgid "format '%s' not handled by pre-2015 versions of zic"
msgstr "24:00 håndteres ikke af zic-versioner før 1998"
-#: timezone/zic.c:1347
+#: timezone/zic.c:1399
msgid "Zone continuation line end time is not after end time of previous line"
msgstr "Sluttiden på fortsætningslinjen til en zone kommer før sluttiden på foregående linje"
-#: timezone/zic.c:1374
+#: timezone/zic.c:1426
msgid "wrong number of fields on Leap line"
msgstr "galt antal felter på 'Leap'-linje"
-#: timezone/zic.c:1383
+#: timezone/zic.c:1435
msgid "invalid leaping year"
msgstr "ugyldigt skudår"
-#: timezone/zic.c:1403 timezone/zic.c:1501
+#: timezone/zic.c:1455 timezone/zic.c:1547
msgid "invalid month name"
msgstr "ugyldigt månedsnavn"
-#: timezone/zic.c:1416 timezone/zic.c:1614 timezone/zic.c:1628
+#: timezone/zic.c:1468 timezone/zic.c:1663 timezone/zic.c:1677
msgid "invalid day of month"
msgstr "ugyldig dag i måneden"
-#: timezone/zic.c:1421
+#: timezone/zic.c:1473
msgid "time too small"
msgstr "tid for lille"
-#: timezone/zic.c:1425
+#: timezone/zic.c:1477
msgid "time too large"
msgstr "tid for stor"
-#: timezone/zic.c:1429 timezone/zic.c:1530
+#: timezone/zic.c:1481 timezone/zic.c:1576
msgid "invalid time of day"
msgstr "ugyldig tid på dagen"
-#: timezone/zic.c:1448
+#: timezone/zic.c:1494
msgid "illegal CORRECTION field on Leap line"
msgstr "ugyldigt 'CORRECTION'-felt på 'Leap'-linje"
-#: timezone/zic.c:1453
+#: timezone/zic.c:1499
msgid "illegal Rolling/Stationary field on Leap line"
msgstr "ugyldigt 'Rolling/Stationary'-felt på 'Leap'-linje"
-#: timezone/zic.c:1459
-msgid "leap second precedes Big Bang"
+#: timezone/zic.c:1505
+msgid "leap second precedes Epoch"
msgstr ""
-#: timezone/zic.c:1472
+#: timezone/zic.c:1518
msgid "wrong number of fields on Link line"
msgstr "forkert antal felter på 'Link'-linje"
-#: timezone/zic.c:1476
+#: timezone/zic.c:1522
msgid "blank FROM field on Link line"
msgstr "tomt 'FROM'-felt på 'Link'-linje"
-#: timezone/zic.c:1551
+#: timezone/zic.c:1597
msgid "invalid starting year"
msgstr "ugyldigt startår"
-#: timezone/zic.c:1573
+#: timezone/zic.c:1619
msgid "invalid ending year"
msgstr "ugyldigt slutår"
-#: timezone/zic.c:1577
+#: timezone/zic.c:1623
msgid "starting year greater than ending year"
msgstr "startår er højere end slutår"
-#: timezone/zic.c:1584
+#: timezone/zic.c:1630
msgid "typed single year"
msgstr "indtastede enkelt år"
-#: timezone/zic.c:1619
+#: timezone/zic.c:1633
+#, c-format
+msgid "year type \"%s\" is obsolete; use \"-\" instead"
+msgstr ""
+
+#: timezone/zic.c:1668
msgid "invalid weekday name"
msgstr "ugyldigt ugedagsnavn"
-#: timezone/zic.c:1743
+#: timezone/zic.c:1800
#, c-format
msgid "reference clients mishandle more than %d transition times"
msgstr ""
-#: timezone/zic.c:1747
+#: timezone/zic.c:1804
msgid "pre-2014 clients may mishandle more than 1200 transition times"
msgstr ""
-#: timezone/zic.c:1858
+#: timezone/zic.c:1920
#, fuzzy
#| msgid "too many transitions?!"
msgid "too many transition times"
msgstr "for mange overgange?!"
-#: timezone/zic.c:2047
+#: timezone/zic.c:2107
#, c-format
-msgid "%%z UTC offset magnitude exceeds 99:59:59"
+msgid "%%z UT offset magnitude exceeds 99:59:59"
msgstr ""
-#: timezone/zic.c:2424
+#: timezone/zic.c:2488
msgid "no POSIX environment variable for zone"
msgstr "ingen POSIX-miljøvariabel for zone"
-#: timezone/zic.c:2430
+#: timezone/zic.c:2494
#, c-format
msgid "%s: pre-%d clients may mishandle distant timestamps"
msgstr ""
-#: timezone/zic.c:2566
+#: timezone/zic.c:2631
msgid "two rules for same instant"
msgstr ""
-#: timezone/zic.c:2627
+#: timezone/zic.c:2696
msgid "can't determine time zone abbreviation to use just after until time"
msgstr "kan ikke afgøre tidszoneforkortelse for brug lige efter 'until'-tid"
-#: timezone/zic.c:2725
+#: timezone/zic.c:2785
msgid "too many local time types"
msgstr "for mange lokale tidstyper"
-#: timezone/zic.c:2729
+#: timezone/zic.c:2789
#, fuzzy
#| msgid "UTC offset out of range"
msgid "UT offset out of range"
msgstr "UTC-forskel udenfor interval"
-#: timezone/zic.c:2753
+#: timezone/zic.c:2813
msgid "too many leap seconds"
msgstr "for mange skudsekunder"
-#: timezone/zic.c:2759
-msgid "repeated leap second moment"
-msgstr "repeteret skudsekunds-tidspunkt"
+#: timezone/zic.c:2844
+msgid "Leap seconds too close together"
+msgstr ""
-#: timezone/zic.c:2830
+#: timezone/zic.c:2891
msgid "Wild result from command execution"
msgstr "Vildt resultat fra eksekvering af kommando"
-#: timezone/zic.c:2831
+#: timezone/zic.c:2892
#, c-format
msgid "%s: command was '%s', result was %d\n"
msgstr "%s: kommandoen var '%s', resultatet blev %d\n"
-#: timezone/zic.c:2961
+#: timezone/zic.c:2998
+#, c-format
+msgid "\"%s\" is undocumented; use \"last%s\" instead"
+msgstr ""
+
+#: timezone/zic.c:3029
+#, c-format
+msgid "\"%s\" is ambiguous in pre-2017c zic"
+msgstr ""
+
+#: timezone/zic.c:3063
msgid "Odd number of quotation marks"
msgstr "Ulige antal anførselstegn"
-#: timezone/zic.c:3046
+#: timezone/zic.c:3157
msgid "use of 2/29 in non leap-year"
msgstr "bruger 29/2 i ikke-skudår"
-#: timezone/zic.c:3081
+#: timezone/zic.c:3192
#, fuzzy
#| msgid "rule goes past start/end of month--will not work with pre-2004 versions of zic"
msgid "rule goes past start/end of month; will not work with pre-2004 versions of zic"
msgstr "reglen går udenfor start/slut på måned, fungerer ikke på zic-versioner fra før 2004"
-#: timezone/zic.c:3108
+#: timezone/zic.c:3219
#, fuzzy
#| msgid "time zone abbreviation has more than 3 alphabetics"
msgid "time zone abbreviation has fewer than 3 characters"
msgstr "tidszoneforkortelse har mere end 3 alfabetiske tegn"
-#: timezone/zic.c:3110
+#: timezone/zic.c:3221
#, fuzzy
#| msgid "time zone abbreviation has too many alphabetics"
msgid "time zone abbreviation has too many characters"
msgstr "tidszoneforkortelse har for mange alfabetiske tegn"
-#: timezone/zic.c:3112
+#: timezone/zic.c:3223
msgid "time zone abbreviation differs from POSIX standard"
msgstr "tidszoneforkortelse afviger fra POSIX-standarden"
-#: timezone/zic.c:3118
+#: timezone/zic.c:3229
msgid "too many, or too long, time zone abbreviations"
msgstr "for mange eller for lange tidszoneforkortelser"
-#: timezone/zic.c:3161
+#: timezone/zic.c:3275
#, fuzzy, c-format
#| msgid "%s: Can't create directory %s: %s\n"
msgid "%s: Can't create directory %s: %s"
@@ -7414,6 +7455,9 @@ msgstr "%s: Kan ikke oprette filkatalog %s: %s\n"
#~ msgid "xtrace: option \\`$1' requires an argument.\\n"
#~ msgstr "xtrace: flaget '$1' skal have et argument.\\n"
+#~ msgid "cannot open zero fill device"
+#~ msgstr "kan ikke åbne nulstil-enhed"
+
#~ msgid "cannot allocate TLS data structures for initial thread"
#~ msgstr "kan ikke oprette TLS-datastrukturer for første tråd"
@@ -7423,6 +7467,9 @@ msgstr "%s: Kan ikke oprette filkatalog %s: %s\n"
#~ msgid "invalid caller"
#~ msgstr "ugyldig opkalder"
+#~ msgid "relocation error"
+#~ msgstr "fejl ved relokering"
+
#~ msgid "%s: no PLTREL found in object %s\n"
#~ msgstr "%s: ingen PLTREL fundet i objekt %s\n"
@@ -7444,6 +7491,15 @@ msgstr "%s: Kan ikke oprette filkatalog %s: %s\n"
#~ msgid "non-symbolic character value should not be used"
#~ msgstr "ikke-symbolske tegnværdier bør ikke bruges"
+#~ msgid "Cannot set LC_CTYPE to default locale"
+#~ msgstr "Kan ikke sætte LC_CTYPE til forvalgt lokale"
+
+#~ msgid "Cannot set LC_MESSAGES to default locale"
+#~ msgstr "Kan ikke sætte LC_MESSAGES til forvalgt lokale"
+
+#~ msgid "Cannot set LC_COLLATE to default locale"
+#~ msgstr "Kan ikke sætte LC_COLLATE til forvalgt lokale"
+
#~ msgid "Create old-style tables"
#~ msgstr "Opret gammel-stil tabeller"
@@ -7579,12 +7635,21 @@ msgstr "%s: Kan ikke oprette filkatalog %s: %s\n"
#~ msgid "hard link failed, symbolic link used"
#~ msgstr "hård lænke fejlede, symbolsk lænke brugt"
+#~ msgid "unruly zone"
+#~ msgstr "vanskelig zone"
+
+#~ msgid "%s: Leap line in non leap seconds file %s\n"
+#~ msgstr "%s: 'Leap'-linje i fil %s som ikke er skudsekundsfil\n"
+
#~ msgid "%s: Error reading %s\n"
#~ msgstr "%s: Fejl ved læsning fra %s\n"
#~ msgid "%s: Error closing %s: %s\n"
#~ msgstr "%s: Fejl ved lukning af %s: %s\n"
+#~ msgid "nameless rule"
+#~ msgstr "navnløs regel"
+
#~ msgid "time before zero"
#~ msgstr "tid før nul"
@@ -7603,6 +7668,9 @@ msgstr "%s: Kan ikke oprette filkatalog %s: %s\n"
#~ msgid "internal error - addtype called with bad ttisgmt"
#~ msgstr "intern fejl - addtype kaldt med dårlig ttisgmt"
+#~ msgid "repeated leap second moment"
+#~ msgstr "repeteret skudsekunds-tidspunkt"
+
#~ msgid "time zone abbreviation lacks alphabetic at start"
#~ msgstr "tidszoneforkortelse mangler alfabetisk tegn i begyndelsen"
diff --git a/po/de.po b/po/de.po
index 440b74d585..bf5b51bf9d 100644
--- a/po/de.po
+++ b/po/de.po
@@ -2,13 +2,13 @@
# Copyright © 1996, 2017 Free Software Foundation, Inc.
# This file is distributed under the same license as the glibc package.
# Karl Eichwalder <ke@suse.de>, 2002.
-# Jochen Hein <jochen@jochen.org>, 1996-2018.
+# Jochen Hein <jochen@jochen.org>, 1996-2019.
#
msgid ""
msgstr ""
-"Project-Id-Version: GNU libc 2.27.9000\n"
-"POT-Creation-Date: 2018-07-26 22:19-0400\n"
-"PO-Revision-Date: 2018-07-28 06:53+0200\n"
+"Project-Id-Version: GNU libc 2.29.9000\n"
+"POT-Creation-Date: 2019-07-18 13:28-0400\n"
+"PO-Revision-Date: 2019-07-25 13:30+0200\n"
"Last-Translator: Jochen Hein <jochen@jochen.org>\n"
"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
"Language: de\n"
@@ -16,6 +16,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
+"X-Generator: Poedit 2.0.6\n"
#: argp/argp-help.c:227
#, c-format
@@ -149,10 +150,10 @@ msgstr ""
"[AUSGABEDATEI [EINGABEDATEI]...]"
#: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:308
-#: elf/pldd.c:252 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
-#: iconv/iconvconfig.c:379 locale/programs/locale.c:275
-#: locale/programs/localedef.c:427 login/programs/pt_chown.c:89
-#: malloc/memusagestat.c:563 nss/getent.c:933 nss/makedb.c:369
+#: elf/pldd.c:247 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
+#: iconv/iconvconfig.c:379 locale/programs/locale.c:276
+#: locale/programs/localedef.c:437 login/programs/pt_chown.c:89
+#: malloc/memusagestat.c:563 nss/getent.c:953 nss/makedb.c:369
#: posix/getconf.c:503 sysdeps/unix/sysv/linux/lddlibc4.c:61
#, c-format
msgid ""
@@ -163,11 +164,11 @@ msgstr ""
"%s.\n"
#: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64
-#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75
+#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:263 elf/sotruss.sh:75
#: elf/sprof.c:389 iconv/iconv_prog.c:422 iconv/iconvconfig.c:396
-#: locale/programs/locale.c:292 locale/programs/localedef.c:453
+#: locale/programs/locale.c:293 locale/programs/localedef.c:463
#: login/programs/pt_chown.c:63 malloc/memusage.sh:71
-#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:87 nss/makedb.c:385
+#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:88 nss/makedb.c:385
#: posix/getconf.c:485 sysdeps/unix/sysv/linux/lddlibc4.c:68
#, c-format
msgid ""
@@ -181,10 +182,10 @@ msgstr ""
"VERWENDBARKEIT FÃœR EINEN ANGEGEBENEN ZWECK.\n"
#: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68
-#: elf/ldconfig.c:329 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:427
-#: iconv/iconvconfig.c:401 locale/programs/locale.c:297
-#: locale/programs/localedef.c:458 malloc/memusage.sh:75
-#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:92 nss/makedb.c:390
+#: elf/ldconfig.c:329 elf/pldd.c:268 elf/sprof.c:395 iconv/iconv_prog.c:427
+#: iconv/iconvconfig.c:401 locale/programs/locale.c:298
+#: locale/programs/localedef.c:468 malloc/memusage.sh:75
+#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:93 nss/makedb.c:390
#: posix/getconf.c:490
#, c-format
msgid "Written by %s.\n"
@@ -255,21 +256,21 @@ msgstr "Kann die Ausgabedatei »%s« nicht öffnen"
msgid "invalid escape sequence"
msgstr "Ungültige Escape-Sequenz"
-#: catgets/gencat.c:1209
+#: catgets/gencat.c:1211
msgid "unterminated message"
msgstr "Die Nachricht ist nicht abgeschlossen"
-#: catgets/gencat.c:1233
+#: catgets/gencat.c:1235
#, c-format
msgid "while opening old catalog file"
msgstr "beim Öffnen der alten Katalogdatei"
-#: catgets/gencat.c:1324
+#: catgets/gencat.c:1326
#, c-format
msgid "conversion modules not available"
msgstr "Konvertierungsmodul nicht verfügbar"
-#: catgets/gencat.c:1350
+#: catgets/gencat.c:1352
#, c-format
msgid "cannot determine escape character"
msgstr "Kann das Escape-Zeichen nicht bestimmen"
@@ -395,7 +396,7 @@ msgstr "Unbekanntes Betriebssystem"
msgid ", OS ABI: %s %d.%d.%d"
msgstr ", OS ABI: %s %d.%d.%d"
-#: elf/cache.c:163 elf/ldconfig.c:1332
+#: elf/cache.c:163 elf/ldconfig.c:1333
#, c-format
msgid "Can't open cache file %s\n"
msgstr "Kann die Cachedatei »%s« nicht öffnen\n"
@@ -405,38 +406,38 @@ msgstr "Kann die Cachedatei »%s« nicht öffnen\n"
msgid "mmap of cache file failed.\n"
msgstr "Das Mapping der Cache-Datei ist fehlgeschlagen.\n"
-#: elf/cache.c:181 elf/cache.c:195
+#: elf/cache.c:181 elf/cache.c:195 elf/cache.c:205
#, c-format
msgid "File is not a cache file.\n"
msgstr "Die Datei ist keine Cache-Datei.\n"
-#: elf/cache.c:228 elf/cache.c:238
+#: elf/cache.c:233 elf/cache.c:243
#, c-format
msgid "%d libs found in cache `%s'\n"
msgstr "%d Bibliotheken im Cache »%s« gefunden\n"
-#: elf/cache.c:432
+#: elf/cache.c:437
#, c-format
msgid "Can't create temporary cache file %s"
msgstr "Es ist nicht möglich, die temporäre Cache-Datei %s zu erzeugen"
-#: elf/cache.c:440 elf/cache.c:450 elf/cache.c:454 elf/cache.c:458
-#: elf/cache.c:468
+#: elf/cache.c:445 elf/cache.c:455 elf/cache.c:459 elf/cache.c:463
+#: elf/cache.c:473
#, c-format
msgid "Writing of cache data failed"
msgstr "Das Schreiben der Cache-Daten ist fehlgeschlagen"
-#: elf/cache.c:463
+#: elf/cache.c:468
#, c-format
msgid "Changing access rights of %s to %#o failed"
msgstr "Ändern der Zugriffsrechte von »%s« auf %#o fehlgeschlagen"
-#: elf/cache.c:472
+#: elf/cache.c:477
#, c-format
msgid "Renaming of %s to %s failed"
msgstr "Umbenennen von »%s« auf »%s« ist fehlgeschlagen"
-#: elf/dl-close.c:399 elf/dl-open.c:420
+#: elf/dl-close.c:399 elf/dl-open.c:424
msgid "cannot create scope list"
msgstr "Kann die Scope-Liste nicht erzeugen"
@@ -519,123 +520,123 @@ msgstr "Kann das Feld fpr den Suchpfad enicht erzeugen"
msgid "cannot stat shared object"
msgstr "Fehler beim »stat« des Shared Objects"
-#: elf/dl-load.c:960
-msgid "cannot open zero fill device"
-msgstr "Kann das Device »Auffüllen mit Nullen« nicht öffnen"
-
-#: elf/dl-load.c:1007 elf/dl-load.c:2203
+#: elf/dl-load.c:992 elf/dl-load.c:2198
msgid "cannot create shared object descriptor"
msgstr "Kann keinen Deskriptor für das Shared Object erzeugen"
-#: elf/dl-load.c:1026 elf/dl-load.c:1560 elf/dl-load.c:1673
+#: elf/dl-load.c:1011 elf/dl-load.c:1555 elf/dl-load.c:1668
msgid "cannot read file data"
msgstr "Kann die Datei-Daten nicht lesen"
# XXX
-#: elf/dl-load.c:1072
+#: elf/dl-load.c:1057
msgid "ELF load command alignment not page-aligned"
msgstr "Das Aligment des ELF Load-Kommandos ist nicht auf Seitengrenze"
# XXX
-#: elf/dl-load.c:1079
+#: elf/dl-load.c:1064
msgid "ELF load command address/offset not properly aligned"
msgstr "ELF Load-Kommando Adresse/Offset ist nicht vernüftig aligned"
# XXX
-#: elf/dl-load.c:1161
+#: elf/dl-load.c:1146
msgid "cannot process note segment"
msgstr "Kann des »note«-Segment nicht verarbeiten"
-#: elf/dl-load.c:1172
+#: elf/dl-load.c:1157
msgid "object file has no loadable segments"
msgstr "Die Object-Datei hat keine ladbaren Segmente"
-#: elf/dl-load.c:1181 elf/dl-load.c:1652
+#: elf/dl-load.c:1170 elf/dl-load.c:1647
msgid "cannot dynamically load executable"
msgstr "Kann das Programm nicht dynamisch Laden"
-#: elf/dl-load.c:1202
+#: elf/dl-load.c:1191
msgid "object file has no dynamic section"
msgstr "Die Objektdatei hat keine dynamischen Abschnitte"
-#: elf/dl-load.c:1225
+#: elf/dl-load.c:1218
+msgid "cannot dynamically load position-independent executable"
+msgstr "Kann das positions-unabhängige Programm nicht dynamisch Laden"
+
+#: elf/dl-load.c:1220
msgid "shared object cannot be dlopen()ed"
msgstr "Das Shared-Object kann nicht mittels »dlopen()« geladen werden"
-#: elf/dl-load.c:1238
+#: elf/dl-load.c:1233
msgid "cannot allocate memory for program header"
msgstr "Nicht genügend Speicher für den Programm-Header verfügbar"
-#: elf/dl-load.c:1271 elf/dl-load.h:130
+#: elf/dl-load.c:1266 elf/dl-load.h:130
msgid "cannot change memory protections"
msgstr "Kann den Speicherschutz nicht ändern"
-#: elf/dl-load.c:1291
+#: elf/dl-load.c:1286
msgid "cannot enable executable stack as shared object requires"
msgstr "Kann den Stack nicht ausführbar machen wie vom Shared Object verlangt"
-#: elf/dl-load.c:1304
+#: elf/dl-load.c:1299
msgid "cannot close file descriptor"
msgstr "Der Datei-Deskriptor kann nicht geschlossen werden"
-#: elf/dl-load.c:1560
+#: elf/dl-load.c:1555
msgid "file too short"
msgstr "Die Datei ist zu kurz"
-#: elf/dl-load.c:1595
+#: elf/dl-load.c:1590
msgid "invalid ELF header"
msgstr "Ungültiger ELF-Header"
-#: elf/dl-load.c:1607
+#: elf/dl-load.c:1602
msgid "ELF file data encoding not big-endian"
msgstr "ELF Datei Daten-Encoding ist nicht Big-Endian"
-#: elf/dl-load.c:1609
+#: elf/dl-load.c:1604
msgid "ELF file data encoding not little-endian"
msgstr "ELF Datei Daten-Encoding ist nicht Little-Endian"
# XXX
-#: elf/dl-load.c:1613
+#: elf/dl-load.c:1608
msgid "ELF file version ident does not match current one"
msgstr "Die ELF Datei-Versionsidentifikation passt nicht zur aktuellen Identifikation"
-#: elf/dl-load.c:1617
+#: elf/dl-load.c:1612
msgid "ELF file OS ABI invalid"
msgstr "Das OS ABI der ELF Datei ist ungültig"
-#: elf/dl-load.c:1620
+#: elf/dl-load.c:1615
msgid "ELF file ABI version invalid"
msgstr "Die ABI-Version der ELF Datei ist ungültig"
-#: elf/dl-load.c:1623
+#: elf/dl-load.c:1618
msgid "nonzero padding in e_ident"
msgstr "nicht-nuller Füller in e_ident"
-#: elf/dl-load.c:1626
+#: elf/dl-load.c:1621
msgid "internal error"
msgstr "Interner Fehler"
-#: elf/dl-load.c:1633
+#: elf/dl-load.c:1628
msgid "ELF file version does not match current one"
msgstr "Die Version der ELF Datei passt nicht zur aktuellen Version"
-#: elf/dl-load.c:1641
+#: elf/dl-load.c:1636
msgid "only ET_DYN and ET_EXEC can be loaded"
msgstr "Nur ET_DYN und ET_EXEC können geladen werden"
-#: elf/dl-load.c:1657
+#: elf/dl-load.c:1652
msgid "ELF file's phentsize not the expected size"
msgstr "Die »phentsize« der ELF Datei hat nicht die erwartete Größe"
-#: elf/dl-load.c:2222
+#: elf/dl-load.c:2217
msgid "wrong ELF class: ELFCLASS64"
msgstr "falsche ELF-Klasse: ELFCLASS64"
-#: elf/dl-load.c:2223
+#: elf/dl-load.c:2218
msgid "wrong ELF class: ELFCLASS32"
msgstr "falsche ELF-Klasse: ELFCLASS32"
-#: elf/dl-load.c:2226
+#: elf/dl-load.c:2221
msgid "cannot open shared object file"
msgstr "Kann die Shared-Object-Datei nicht öffnen"
@@ -647,11 +648,7 @@ msgstr "Fehler beim Mappen des Shared Objects"
msgid "cannot map zero-fill pages"
msgstr "Kann die Zero-Fill Seiten nicht mappen"
-#: elf/dl-lookup.c:835
-msgid "relocation error"
-msgstr "Fehler bei der Relozierung"
-
-#: elf/dl-lookup.c:858
+#: elf/dl-lookup.c:830
msgid "symbol lookup error"
msgstr "Fehler beim Nachschlagen des Symbols"
@@ -659,19 +656,19 @@ msgstr "Fehler beim Nachschlagen des Symbols"
msgid "cannot extend global scope"
msgstr "Kann die globale Sichbarkeit nicht erweitern"
-#: elf/dl-open.c:470
+#: elf/dl-open.c:474
msgid "TLS generation counter wrapped! Please report this."
msgstr "Überlauf des TLS Gernerationen-Zählers. Bitte einen (englischen) Fehlerbericht mit »glibcbug« senden."
-#: elf/dl-open.c:534
+#: elf/dl-open.c:538
msgid "invalid mode for dlopen()"
msgstr "Ungültiger Mode für dlopen()"
-#: elf/dl-open.c:551
+#: elf/dl-open.c:555
msgid "no more namespaces available for dlmopen()"
msgstr "Keine weiteren Namespaces for »dlmopen()« verfügbar"
-#: elf/dl-open.c:575
+#: elf/dl-open.c:579
msgid "invalid target namespace in dlmopen()"
msgstr "Ungültiger Ziel-Namespace für dlmopen()"
@@ -679,21 +676,21 @@ msgstr "Ungültiger Ziel-Namespace für dlmopen()"
msgid "cannot allocate memory in static TLS block"
msgstr "Kein Speicher im statischen TLS-Block verfügbar"
-#: elf/dl-reloc.c:205
+#: elf/dl-reloc.c:213
msgid "cannot make segment writable for relocation"
msgstr "Kann das Segment nicht schreibbar machen zur Relokation"
-#: elf/dl-reloc.c:276
+#: elf/dl-reloc.c:272
#, c-format
msgid "%s: out of memory to store relocation results for %s\n"
msgstr "%s: Kein Speicher zum sichern des Relozierungsergebnisses für %s\n"
# XXX
-#: elf/dl-reloc.c:292
+#: elf/dl-reloc.c:288
msgid "cannot restore segment prot after reloc"
msgstr "Kann den Segment-Schutz nach der Relozierung nicht wieder herstellen"
-#: elf/dl-reloc.c:323
+#: elf/dl-reloc.c:319
msgid "cannot apply additional memory protection after relocation"
msgstr "Kann den Speicherschutz nach Relozierung nicht ändern"
@@ -911,22 +908,22 @@ msgstr "Für »-r« muß der absolute Name der Konfigurationsdatei angegeben wer
msgid "memory exhausted"
msgstr "Hauptspeicher erschöpft"
-#: elf/ldconfig.c:1233
+#: elf/ldconfig.c:1234
#, c-format
msgid "%s:%u: cannot read directory %s"
msgstr "%s:%u: Kann das Verzeichnis »%s« nicht lesen"
-#: elf/ldconfig.c:1281
+#: elf/ldconfig.c:1282
#, c-format
msgid "relative path `%s' used to build cache"
msgstr "Der relative Pfad »%s« wird zum Erstellen des Caches verwendet"
-#: elf/ldconfig.c:1311
+#: elf/ldconfig.c:1312
#, c-format
msgid "Can't chdir to /"
msgstr "Wechsel in das Verzeichnis / nicht möglich"
-#: elf/ldconfig.c:1352
+#: elf/ldconfig.c:1353
#, c-format
msgid "Can't open cache file directory %s\n"
msgstr "Kann das Cache-Verzeichnis »%s« nicht öffnen\n"
@@ -999,97 +996,102 @@ msgstr "mit unbekanntem Returncode beendet"
msgid "error: you do not have read permission for"
msgstr "Fehler: Sie haben keine Leseberechtigung für"
-#: elf/pldd-xx.c:105
+#: elf/pldd-xx.c:102
#, c-format
msgid "cannot find program header of process"
msgstr "Kann den Programm-Header vom Prozess nicht finden"
-#: elf/pldd-xx.c:110
+#: elf/pldd-xx.c:106
#, c-format
msgid "cannot read program header"
msgstr "Es ist nicht möglich, den Programm-Header zu lesen"
# XXX
-#: elf/pldd-xx.c:135
+#: elf/pldd-xx.c:128
#, c-format
msgid "cannot read dynamic section"
msgstr "Kann die »dynamic section« nicht lesen"
-#: elf/pldd-xx.c:147
+#: elf/pldd-xx.c:137
#, c-format
msgid "cannot read r_debug"
msgstr "Es ist nicht möglich, »r_debug« zu lesen"
-#: elf/pldd-xx.c:167
+#: elf/pldd-xx.c:154
#, c-format
msgid "cannot read program interpreter"
msgstr "Es ist nicht möglich, den Programm-Interpreter zu lesen"
-#: elf/pldd-xx.c:197
+#: elf/pldd-xx.c:183
#, c-format
msgid "cannot read link map"
msgstr "Kann die »link map« nicht lesen"
-#: elf/pldd-xx.c:209
+#: elf/pldd-xx.c:190
#, c-format
msgid "cannot read object name"
msgstr "Es ist nicht möglich, den Objekt-Namen zu lesen"
-#: elf/pldd-xx.c:219
+#: elf/pldd-xx.c:197
#, c-format
msgid "cannot allocate buffer for object name"
msgstr "Nicht genügend Speicher für den Puffer des Objekt-Namen verfügbar"
-#: elf/pldd.c:64
+#: elf/pldd.c:58
msgid "List dynamic shared objects loaded into process."
msgstr "Zeige die »dynamic shared objects« an, die in den Prozess geladen sind."
-#: elf/pldd.c:68
+#: elf/pldd.c:62
msgid "PID"
msgstr "PID"
-#: elf/pldd.c:100
+#: elf/pldd.c:89
#, c-format
msgid "Exactly one parameter with process ID required.\n"
msgstr "Genau ein Parameter mit der Prozess-ID ist notwendig.\n"
-#: elf/pldd.c:112
+#: elf/pldd.c:103
#, c-format
msgid "invalid process ID '%s'"
msgstr "ungültiger Prozess-ID »%s«"
-#: elf/pldd.c:120
+#: elf/pldd.c:111
#, c-format
msgid "cannot open %s"
msgstr "Öffnen von %s fehlgeschlagen"
-#: elf/pldd.c:152
+#: elf/pldd.c:142
#, c-format
msgid "cannot open %s/task"
msgstr "Öffnen von %s/task"
-#: elf/pldd.c:155
+#: elf/pldd.c:145
#, c-format
msgid "cannot prepare reading %s/task"
msgstr "Kann das Lesen von %s/task nicht vorbereiten"
-#: elf/pldd.c:168
+#: elf/pldd.c:158
#, c-format
msgid "invalid thread ID '%s'"
msgstr "Ungültiger Thread-ID »%s«"
# XXX
-#: elf/pldd.c:179
+#: elf/pldd.c:169
#, c-format
msgid "cannot attach to process %lu"
msgstr "Kann nicht zum Prozess %lu verbinden"
-#: elf/pldd.c:294
+#: elf/pldd.c:184
+#, c-format
+msgid "no valid %s/task entries"
+msgstr "Keine gültigen Einträge in %s/task"
+
+#: elf/pldd.c:290
#, c-format
msgid "cannot get information about process %lu"
msgstr "Kann die Informationen über den Prozess %lu nicht bekommen"
-#: elf/pldd.c:307
+#: elf/pldd.c:303
#, c-format
msgid "process %lu is no ELF program"
msgstr "Der Prozess %lu ist kein ELF-Programm"
@@ -1413,7 +1415,7 @@ msgstr "Informationen:"
msgid "list all known coded character sets"
msgstr "Alle bekannten Zeichensatz-Kodierungen ausgeben"
-#: iconv/iconv_prog.c:64 locale/programs/localedef.c:120
+#: iconv/iconv_prog.c:64 locale/programs/localedef.c:124
msgid "Output control:"
msgstr "Ausgabesteuerung:"
@@ -1422,8 +1424,8 @@ msgid "omit invalid characters from output"
msgstr "Ungültige Zeichen von der Ausgabe ausgelassen"
#: iconv/iconv_prog.c:66 iconv/iconvconfig.c:128
-#: locale/programs/localedef.c:113 locale/programs/localedef.c:115
-#: locale/programs/localedef.c:117 locale/programs/localedef.c:144
+#: locale/programs/localedef.c:117 locale/programs/localedef.c:119
+#: locale/programs/localedef.c:121 locale/programs/localedef.c:150
#: malloc/memusagestat.c:56
msgid "FILE"
msgstr "DATEI"
@@ -1523,7 +1525,7 @@ msgstr "Schnell zu ladende Konfigurationsdatei für iconv-Module erzeugen."
msgid "[DIR...]"
msgstr "[Verzeichnis...]"
-#: iconv/iconvconfig.c:126 locale/programs/localedef.c:123
+#: iconv/iconvconfig.c:126 locale/programs/localedef.c:129
msgid "PATH"
msgstr "PFAD"
@@ -1707,14 +1709,14 @@ msgstr "Zeichensätze mit Umschalt-Stati sind nicht unterstützt"
#: locale/programs/charmap.c:503 locale/programs/charmap.c:557
#: locale/programs/charmap.c:589 locale/programs/charmap.c:683
-#: locale/programs/charmap.c:738 locale/programs/charmap.c:779
-#: locale/programs/charmap.c:820
+#: locale/programs/charmap.c:739 locale/programs/charmap.c:780
+#: locale/programs/charmap.c:821
#, c-format
msgid "syntax error in %s definition: %s"
msgstr "Syntaxfehler in der »%s«-Definition: %s"
#: locale/programs/charmap.c:504 locale/programs/charmap.c:684
-#: locale/programs/charmap.c:780 locale/programs/repertoire.c:229
+#: locale/programs/charmap.c:781 locale/programs/repertoire.c:229
msgid "no symbolic name given"
msgstr "Kein symbolischer Name angegeben"
@@ -1730,14 +1732,14 @@ msgstr "Zu wenige Bytes in der Zeichenkodierung"
msgid "too many bytes in character encoding"
msgstr "Zu viele Bytes in der Zeichenkodierung"
-#: locale/programs/charmap.c:591 locale/programs/charmap.c:739
-#: locale/programs/charmap.c:822 locale/programs/repertoire.c:295
+#: locale/programs/charmap.c:591 locale/programs/charmap.c:740
+#: locale/programs/charmap.c:823 locale/programs/repertoire.c:295
msgid "no symbolic name given for end of range"
msgstr "Kein symbolischer Name für das Ende des Intervalles angegeben"
#: locale/programs/charmap.c:615 locale/programs/ld-address.c:524
#: locale/programs/ld-collate.c:2616 locale/programs/ld-collate.c:3774
-#: locale/programs/ld-ctype.c:2117 locale/programs/ld-ctype.c:2829
+#: locale/programs/ld-ctype.c:2118 locale/programs/ld-ctype.c:2830
#: locale/programs/ld-identification.c:397
#: locale/programs/ld-measurement.c:213 locale/programs/ld-messages.c:295
#: locale/programs/ld-monetary.c:748 locale/programs/ld-name.c:262
@@ -1752,59 +1754,59 @@ msgstr "%1$s: Die Definition ist nicht durch »END %1$s« abgeschlossen"
msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
msgstr "Nur »WIDTH«-Definitionen dürfen nach einer »CHARMAP«-Definition folgen"
-#: locale/programs/charmap.c:656 locale/programs/charmap.c:719
+#: locale/programs/charmap.c:656 locale/programs/charmap.c:720
#, c-format
msgid "value for %s must be an integer"
msgstr "Der Wert für »%s« muss eine Ganzzahl sein"
-#: locale/programs/charmap.c:847
+#: locale/programs/charmap.c:848
#, c-format
msgid "%s: error in state machine"
msgstr "%s: Fehler im (intern verwendeten) endlichen Automaten"
-#: locale/programs/charmap.c:855 locale/programs/ld-address.c:540
+#: locale/programs/charmap.c:856 locale/programs/ld-address.c:540
#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967
-#: locale/programs/ld-ctype.c:2114 locale/programs/ld-ctype.c:2846
+#: locale/programs/ld-ctype.c:2115 locale/programs/ld-ctype.c:2847
#: locale/programs/ld-identification.c:413
#: locale/programs/ld-measurement.c:229 locale/programs/ld-messages.c:311
#: locale/programs/ld-monetary.c:764 locale/programs/ld-name.c:278
#: locale/programs/ld-numeric.c:341 locale/programs/ld-paper.c:228
#: locale/programs/ld-telephone.c:292 locale/programs/ld-time.c:990
-#: locale/programs/locfile.c:997 locale/programs/repertoire.c:323
+#: locale/programs/locfile.c:1010 locale/programs/repertoire.c:323
#, c-format
msgid "%s: premature end of file"
msgstr "%s: Unerwartetes Ende der Datei"
-#: locale/programs/charmap.c:874 locale/programs/charmap.c:885
+#: locale/programs/charmap.c:875 locale/programs/charmap.c:886
#, c-format
msgid "unknown character `%s'"
msgstr "unbekanntes Zeichen »%s«"
# XXX translator comment
-#: locale/programs/charmap.c:893
+#: locale/programs/charmap.c:894
#, c-format
msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d"
msgstr "Die Anzahl der Bytes für die Byte-Sequenz am Beginn bzw. Ende des Bereichs passen nicht zueinander: %d vs %d"
-#: locale/programs/charmap.c:998 locale/programs/ld-collate.c:2893
+#: locale/programs/charmap.c:999 locale/programs/ld-collate.c:2893
#: locale/programs/repertoire.c:418
msgid "invalid names for character range"
msgstr "ungültige Namen für den Zeichenbereich"
-#: locale/programs/charmap.c:1010 locale/programs/repertoire.c:430
+#: locale/programs/charmap.c:1011 locale/programs/repertoire.c:430
msgid "hexadecimal range format should use only capital characters"
msgstr "Das hexadecimale Bereichsformat sollte nur Großbuchstben enthalten"
-#: locale/programs/charmap.c:1028 locale/programs/repertoire.c:448
+#: locale/programs/charmap.c:1029 locale/programs/repertoire.c:448
#, c-format
msgid "<%s> and <%s> are invalid names for range"
msgstr "<%s> und <%s> sind ungültige Namen für einen Zeichenbereich"
-#: locale/programs/charmap.c:1034 locale/programs/repertoire.c:455
+#: locale/programs/charmap.c:1035 locale/programs/repertoire.c:455
msgid "upper limit in range is smaller than lower limit"
msgstr "Das obere Ende des Intervalls ist kleiner als das untere Ende"
-#: locale/programs/charmap.c:1092
+#: locale/programs/charmap.c:1093
msgid "resulting bytes for range not representable."
msgstr "Resultierende Bytes sind für den Bereich nicht darstellbar."
@@ -1875,7 +1877,7 @@ msgid "%s: numeric country code `%d' not valid"
msgstr "%s: Der numerische Ländercode »%d« ist nicht gültig"
#: locale/programs/ld-address.c:432 locale/programs/ld-address.c:469
-#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2478
+#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2479
#: locale/programs/ld-identification.c:309
#: locale/programs/ld-measurement.c:196 locale/programs/ld-messages.c:264
#: locale/programs/ld-monetary.c:503 locale/programs/ld-monetary.c:538
@@ -1898,7 +1900,7 @@ msgid "%s: unknown character in field `%s'"
msgstr "%s: unbekanntes Zeichen im Feld »%s«"
#: locale/programs/ld-address.c:521 locale/programs/ld-collate.c:3772
-#: locale/programs/ld-ctype.c:2826 locale/programs/ld-identification.c:394
+#: locale/programs/ld-ctype.c:2827 locale/programs/ld-identification.c:394
#: locale/programs/ld-measurement.c:210 locale/programs/ld-messages.c:293
#: locale/programs/ld-monetary.c:746 locale/programs/ld-name.c:260
#: locale/programs/ld-numeric.c:323 locale/programs/ld-paper.c:210
@@ -1911,8 +1913,8 @@ msgstr "%s: unvollständige »END«-Zeile"
#: locale/programs/ld-collate.c:602 locale/programs/ld-collate.c:898
#: locale/programs/ld-collate.c:911 locale/programs/ld-collate.c:2582
#: locale/programs/ld-collate.c:2603 locale/programs/ld-collate.c:3957
-#: locale/programs/ld-ctype.c:1846 locale/programs/ld-ctype.c:2104
-#: locale/programs/ld-ctype.c:2676 locale/programs/ld-ctype.c:2837
+#: locale/programs/ld-ctype.c:1847 locale/programs/ld-ctype.c:2105
+#: locale/programs/ld-ctype.c:2677 locale/programs/ld-ctype.c:2838
#: locale/programs/ld-identification.c:404
#: locale/programs/ld-measurement.c:220 locale/programs/ld-messages.c:302
#: locale/programs/ld-monetary.c:755 locale/programs/ld-name.c:269
@@ -2260,133 +2262,133 @@ msgstr "Die Zeichensatzbeschreibung »%s« ist bereits definiert"
msgid "implementation limit: no more than %d character maps allowed"
msgstr "Limit der Implementation: Es sind nicht mehr als %d Zeichen-Maps erlaubt"
-#: locale/programs/ld-ctype.c:1434 locale/programs/ld-ctype.c:1559
-#: locale/programs/ld-ctype.c:1665 locale/programs/ld-ctype.c:2341
-#: locale/programs/ld-ctype.c:3299
+#: locale/programs/ld-ctype.c:1435 locale/programs/ld-ctype.c:1560
+#: locale/programs/ld-ctype.c:1666 locale/programs/ld-ctype.c:2342
+#: locale/programs/ld-ctype.c:3302
#, c-format
msgid "%s: field `%s' does not contain exactly ten entries"
msgstr "%s: Feld »%s« beinhaltet nicht genau 10 Einträge"
-#: locale/programs/ld-ctype.c:1462 locale/programs/ld-ctype.c:2036
+#: locale/programs/ld-ctype.c:1463 locale/programs/ld-ctype.c:2037
#, c-format
msgid "to-value <U%0*X> of range is smaller than from-value <U%0*X>"
msgstr "Endwert <U%0*X> des Bereiches ist kleiner als der Startwert <U%0*X>"
-#: locale/programs/ld-ctype.c:1589
+#: locale/programs/ld-ctype.c:1590
msgid "start and end character sequence of range must have the same length"
msgstr "Start- und Endezeichenfolge des Bereiches müssen dieselbe Länge haben"
# XXX
-#: locale/programs/ld-ctype.c:1596
+#: locale/programs/ld-ctype.c:1597
msgid "to-value character sequence is smaller than from-value sequence"
msgstr "Der Endwert der Zeichenfolge ist kleiner als der Startwert"
-#: locale/programs/ld-ctype.c:1956 locale/programs/ld-ctype.c:2007
+#: locale/programs/ld-ctype.c:1957 locale/programs/ld-ctype.c:2008
msgid "premature end of `translit_ignore' definition"
msgstr "Unerwartetes Ende der Definition »translit_ignore«"
-#: locale/programs/ld-ctype.c:1962 locale/programs/ld-ctype.c:2013
-#: locale/programs/ld-ctype.c:2055
+#: locale/programs/ld-ctype.c:1963 locale/programs/ld-ctype.c:2014
+#: locale/programs/ld-ctype.c:2056
msgid "syntax error"
msgstr "Syntaxfehler"
-#: locale/programs/ld-ctype.c:2188
+#: locale/programs/ld-ctype.c:2189
#, c-format
msgid "%s: syntax error in definition of new character class"
msgstr "%s: Syntaxfehler in der Definition einer neuen Zeichenklasse"
-#: locale/programs/ld-ctype.c:2203
+#: locale/programs/ld-ctype.c:2204
#, c-format
msgid "%s: syntax error in definition of new character map"
msgstr "%s: Syntaxfehler in der Definition eines neuen Zeichensatzes"
-#: locale/programs/ld-ctype.c:2363
+#: locale/programs/ld-ctype.c:2364
msgid "ellipsis range must be marked by two operands of same type"
msgstr "Ein Auslassungsbereich muss von zwei Operanden vom selben Typ begrenzt sein"
-#: locale/programs/ld-ctype.c:2372
+#: locale/programs/ld-ctype.c:2373
msgid "with symbolic name range values the absolute ellipsis `...' must not be used"
msgstr "Mit symbolischen Namen als Bereichsgrenzen darf das absolute Auslassungssymbol »...« nicht verwendet werden"
-#: locale/programs/ld-ctype.c:2387
+#: locale/programs/ld-ctype.c:2388
msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'"
msgstr "Mit UCS Bereichswerten muss die hexadezimale, symbolische Auslassung »..« verwendet werden"
-#: locale/programs/ld-ctype.c:2401
+#: locale/programs/ld-ctype.c:2402
msgid "with character code range values one must use the absolute ellipsis `...'"
msgstr "Mit Zeichencodes als Bereichsgrenzen muss die absolute Auslassung »...« verwendet werden"
-#: locale/programs/ld-ctype.c:2552
+#: locale/programs/ld-ctype.c:2553
#, c-format
msgid "duplicated definition for mapping `%s'"
msgstr "Mehrfache Definition des Eintrages »%s«"
-#: locale/programs/ld-ctype.c:2638 locale/programs/ld-ctype.c:2782
+#: locale/programs/ld-ctype.c:2639 locale/programs/ld-ctype.c:2783
#, c-format
msgid "%s: `translit_start' section does not end with `translit_end'"
msgstr "%s: »translit_start«-Abschnitt endet nicht mit »translit_end«"
-#: locale/programs/ld-ctype.c:2733
+#: locale/programs/ld-ctype.c:2734
#, c-format
msgid "%s: duplicate `default_missing' definition"
msgstr "%s: doppelte »default_missing«-Definition"
-#: locale/programs/ld-ctype.c:2738
+#: locale/programs/ld-ctype.c:2739
msgid "previous definition was here"
msgstr "Die frühere Definition war hier"
-#: locale/programs/ld-ctype.c:2760
+#: locale/programs/ld-ctype.c:2761
#, c-format
msgid "%s: no representable `default_missing' definition found"
msgstr "%s: keine darstellbare Definition für »default_missing« gefunden"
-#: locale/programs/ld-ctype.c:2877 locale/programs/ld-ctype.c:2973
-#: locale/programs/ld-ctype.c:2992 locale/programs/ld-ctype.c:3012
-#: locale/programs/ld-ctype.c:3032 locale/programs/ld-ctype.c:3052
-#: locale/programs/ld-ctype.c:3072 locale/programs/ld-ctype.c:3111
-#: locale/programs/ld-ctype.c:3131 locale/programs/ld-ctype.c:3195
-#: locale/programs/ld-ctype.c:3236 locale/programs/ld-ctype.c:3259
+#: locale/programs/ld-ctype.c:2878 locale/programs/ld-ctype.c:2974
+#: locale/programs/ld-ctype.c:2993 locale/programs/ld-ctype.c:3013
+#: locale/programs/ld-ctype.c:3033 locale/programs/ld-ctype.c:3053
+#: locale/programs/ld-ctype.c:3073 locale/programs/ld-ctype.c:3112
+#: locale/programs/ld-ctype.c:3132 locale/programs/ld-ctype.c:3198
+#: locale/programs/ld-ctype.c:3239 locale/programs/ld-ctype.c:3262
#, c-format
msgid "%s: character `%s' not defined while needed as default value"
msgstr "%s: Das Zeichen »%s« ist nicht definiert, wird aber als Vorgabewert benötigt"
-#: locale/programs/ld-ctype.c:2882 locale/programs/ld-ctype.c:2978
-#: locale/programs/ld-ctype.c:2997 locale/programs/ld-ctype.c:3017
-#: locale/programs/ld-ctype.c:3037 locale/programs/ld-ctype.c:3057
-#: locale/programs/ld-ctype.c:3077 locale/programs/ld-ctype.c:3116
-#: locale/programs/ld-ctype.c:3136 locale/programs/ld-ctype.c:3200
+#: locale/programs/ld-ctype.c:2883 locale/programs/ld-ctype.c:2979
+#: locale/programs/ld-ctype.c:2998 locale/programs/ld-ctype.c:3018
+#: locale/programs/ld-ctype.c:3038 locale/programs/ld-ctype.c:3058
+#: locale/programs/ld-ctype.c:3078 locale/programs/ld-ctype.c:3117
+#: locale/programs/ld-ctype.c:3137 locale/programs/ld-ctype.c:3203
#, c-format
msgid "%s: character `%s' in charmap not representable with one byte"
msgstr "%s: Das Zeichen »%s« in der Zeichensatztabelle kann nicht mit einem Byte dargestellt werden"
-#: locale/programs/ld-ctype.c:3242 locale/programs/ld-ctype.c:3265
+#: locale/programs/ld-ctype.c:3245 locale/programs/ld-ctype.c:3268
#, c-format
msgid "%s: character `%s' needed as default value not representable with one byte"
msgstr "%s: Das Zeichen »%s« wird als Vorgabewert benötigt, kann aber nicht mit einem Byte dargestellt werdeb"
-#: locale/programs/ld-ctype.c:3321
+#: locale/programs/ld-ctype.c:3324
msgid "no output digits defined and none of the standard names in the charmap"
msgstr "Keine Ausgabe-Ziffern definiert und keine der Standardnamen in der Zeichensatztabelle enthalten"
# XXX
-#: locale/programs/ld-ctype.c:3570
+#: locale/programs/ld-ctype.c:3573
#, c-format
msgid "%s: transliteration data from locale `%s' not available"
msgstr "%s: Daten zur Lransliteration zur Lokale »%s« sind nicht verfügbar"
-#: locale/programs/ld-ctype.c:3669
+#: locale/programs/ld-ctype.c:3672
#, c-format
msgid "%s: table for class \"%s\": %lu bytes"
msgstr "%s: Tabelle für Klasse »%s«: %lu Bytes"
# XXX in den Source sehen
-#: locale/programs/ld-ctype.c:3733
+#: locale/programs/ld-ctype.c:3736
#, c-format
msgid "%s: table for map \"%s\": %lu bytes"
msgstr "%s: Tabelle zur Map »%s«: %lu Bytes"
# XXX
-#: locale/programs/ld-ctype.c:3857
+#: locale/programs/ld-ctype.c:3860
#, c-format
msgid "%s: table for width: %lu bytes"
msgstr "%s: Tabelle für Breite: %lu Bytes"
@@ -2630,120 +2632,114 @@ msgstr ""
"Name\n"
"[-a|-m]"
-#: locale/programs/locale.c:190
+#: locale/programs/locale.c:522
#, c-format
-msgid "Cannot set LC_CTYPE to default locale"
-msgstr "Kann LC_CTYPE nicht auf die Standard-Lokale einstellen"
-
-#: locale/programs/locale.c:192
-#, c-format
-msgid "Cannot set LC_MESSAGES to default locale"
-msgstr "Kann LC_MESSAGES nicht auf die Standard-Lokale einstellen"
-
-#: locale/programs/locale.c:205
-#, c-format
-msgid "Cannot set LC_COLLATE to default locale"
-msgstr "Kann LC_COLLATE nicht auf die Standard-Lokale einstellen"
+msgid "while preparing output"
+msgstr "beim Aufbereiten der Ausgabe"
-#: locale/programs/locale.c:221
+#: locale/programs/locale.c:998
#, c-format
-msgid "Cannot set LC_ALL to default locale"
-msgstr "Kann LC_ALL nicht auf die Standard-Lokale einstellen"
+msgid "Cannot set %s to default locale"
+msgstr "Kann »%s« nicht auf die Standard-Lokale einstellen"
-#: locale/programs/locale.c:521
+#: locale/programs/locale.c:1096
#, c-format
-msgid "while preparing output"
-msgstr "beim Aufbereiten der Ausgabe"
+msgid "warning: The LOCPATH variable is set to \"%s\"\n"
+msgstr "Warnung: Die LOCPATH Variable enthält »%s«\n"
-#: locale/programs/localedef.c:112
+#: locale/programs/localedef.c:116
msgid "Input Files:"
msgstr "Eingabedateien:"
-#: locale/programs/localedef.c:114
+#: locale/programs/localedef.c:118
msgid "Symbolic character names defined in FILE"
msgstr "Symbolische Namen für Zeichen sind DATEI definiert"
-#: locale/programs/localedef.c:116
+#: locale/programs/localedef.c:120
msgid "Source definitions are found in FILE"
msgstr "Die Quell-Definitionen stehen in DATEI"
-#: locale/programs/localedef.c:118
+#: locale/programs/localedef.c:122
msgid "FILE contains mapping from symbolic names to UCS4 values"
msgstr "DATEI enthält Zuordnungen von symbolischen Namen zu UCS4-Werten"
-#: locale/programs/localedef.c:122
+#: locale/programs/localedef.c:126
msgid "Create output even if warning messages were issued"
msgstr "Ausgabedatei erzeugen, auch wenn Warnungen ausgegeben werden"
-#: locale/programs/localedef.c:123
+#: locale/programs/localedef.c:128
+msgid "Do not create hard links between installed locales"
+msgstr "Keine Hard-Links zwichen installieren Lokale-Dateien erzeugen"
+
+#: locale/programs/localedef.c:129
msgid "Optional output file prefix"
msgstr "Optionales Prefix für die Ausgabedatei"
-#: locale/programs/localedef.c:124
+#: locale/programs/localedef.c:130
msgid "Strictly conform to POSIX"
msgstr "Strikt POSIX-konform sein"
-#: locale/programs/localedef.c:126
+#: locale/programs/localedef.c:132
msgid "Suppress warnings and information messages"
msgstr "Warnungen und informative Nachrichten unterdrücken"
-#: locale/programs/localedef.c:127
+#: locale/programs/localedef.c:133
msgid "Print more messages"
msgstr "Mehr Nachrichten ausgeben"
-#: locale/programs/localedef.c:128 locale/programs/localedef.c:131
+#: locale/programs/localedef.c:134 locale/programs/localedef.c:137
msgid "<warnings>"
msgstr "<Warnungen>"
-#: locale/programs/localedef.c:129
+#: locale/programs/localedef.c:135
msgid "Comma-separated list of warnings to disable; supported warnings are: ascii, intcurrsym"
msgstr "Komma-separierte Liste von unterdrückten Warnungen; mögliche Warnungen: ascii, intcurrsym"
-#: locale/programs/localedef.c:132
+#: locale/programs/localedef.c:138
msgid "Comma-separated list of warnings to enable; supported warnings are: ascii, intcurrsym"
msgstr "Komma-separierte Liste von auszugebenden Warnungen; mögliche Warnungen: ascii, intcurrsym"
-#: locale/programs/localedef.c:135
+#: locale/programs/localedef.c:141
msgid "Archive control:"
msgstr "Archiv-Steuerung:"
-#: locale/programs/localedef.c:137
+#: locale/programs/localedef.c:143
msgid "Don't add new data to archive"
msgstr "Keine neuen Daten zum Archiv hinzufügen"
-#: locale/programs/localedef.c:139
+#: locale/programs/localedef.c:145
msgid "Add locales named by parameters to archive"
msgstr "Füge die als Parameter angegebenen Lokale zum Archiv hinzu"
-#: locale/programs/localedef.c:140
+#: locale/programs/localedef.c:146
msgid "Replace existing archive content"
msgstr "Ersetze den bisherigen Inhalt des Archivs"
-#: locale/programs/localedef.c:142
+#: locale/programs/localedef.c:148
msgid "Remove locales named by parameters from archive"
msgstr "Lösche die als Parameter angegebenen Lokale aus dem Archiv"
-#: locale/programs/localedef.c:143
+#: locale/programs/localedef.c:149
msgid "List content of archive"
msgstr "Inhalt des Archivs anzeigen"
-#: locale/programs/localedef.c:145
+#: locale/programs/localedef.c:151
msgid "locale.alias file to consult when making archive"
msgstr "Die »locale.alias« Datei, die beim Erstellen von Archiven verwendet wird"
-#: locale/programs/localedef.c:147
+#: locale/programs/localedef.c:153
msgid "Generate little-endian output"
msgstr "Erzeuge Ausgabe für Little-Endian"
-#: locale/programs/localedef.c:149
+#: locale/programs/localedef.c:155
msgid "Generate big-endian output"
msgstr "Erzeuge Ausgabe für Big-Endian"
-#: locale/programs/localedef.c:154
+#: locale/programs/localedef.c:160
msgid "Compile locale specification"
msgstr "Umwandeln der Lokale-Spezifikation"
-#: locale/programs/localedef.c:157
+#: locale/programs/localedef.c:163
msgid ""
"NAME\n"
"[--add-to-archive|--delete-from-archive] FILE...\n"
@@ -2753,32 +2749,32 @@ msgstr ""
"[--add-to-archive|--delete-from-archive] Datei...\n"
"--list-archive [Datei]"
-#: locale/programs/localedef.c:232
+#: locale/programs/localedef.c:238
#, c-format
msgid "cannot create directory for output files"
msgstr "Das Verzeichnis für die Ausgabedateien kann nicht angelegt werden"
-#: locale/programs/localedef.c:243
+#: locale/programs/localedef.c:249
msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
msgstr "Fataler Fehler: Das System definiert das Symbol »_POSIX2_LOCALEDEF« nicht"
-#: locale/programs/localedef.c:257 locale/programs/localedef.c:273
-#: locale/programs/localedef.c:663 locale/programs/localedef.c:683
+#: locale/programs/localedef.c:263 locale/programs/localedef.c:279
+#: locale/programs/localedef.c:673 locale/programs/localedef.c:693
#, c-format
msgid "cannot open locale definition file `%s'"
msgstr "Die Lokale-Definitionsdatei »%s« kann nicht geöffnet werden"
-#: locale/programs/localedef.c:297
+#: locale/programs/localedef.c:303
#, c-format
msgid "cannot write output files to `%s'"
msgstr "Die Ausgabedateien können nicht nach »%s« geschrieben werden"
-#: locale/programs/localedef.c:303
+#: locale/programs/localedef.c:309
msgid "no output file produced because errors were issued"
msgstr "Es wurde keine Ausgabedatei erzeugt, weil Fehlermeldungen ausgegeben wurden"
# XXX wie übersetzen?
-#: locale/programs/localedef.c:431
+#: locale/programs/localedef.c:441
#, c-format
msgid ""
"System's directory for character maps : %s\n"
@@ -2791,11 +2787,11 @@ msgstr ""
"\t\t locale path : %s\n"
"%s"
-#: locale/programs/localedef.c:631
+#: locale/programs/localedef.c:641
msgid "circular dependencies between locale definitions"
msgstr "zirkuläre Abhängigkeiten bei den Lokale-Definitionen"
-#: locale/programs/localedef.c:637
+#: locale/programs/localedef.c:647
#, c-format
msgid "cannot add already read locale `%s' a second time"
msgstr "Die bereits eingelesene Lokale »%s« kann nicht ein zweites Mal verwendet werden"
@@ -2951,24 +2947,24 @@ msgstr "Kann die Ausgabedatei »%s« für die Kategorie »%s« nicht öffnen"
msgid "failure while writing data for category `%s'"
msgstr "Fehler beim Schreiben der Daten für die Kategorie »%s«"
-#: locale/programs/locfile.c:917
+#: locale/programs/locfile.c:930
#, c-format
msgid "cannot create output file `%s' for category `%s'"
msgstr "Kann die Ausgabedatei »%s« für die Kategorie »%s« nicht erstellen"
-#: locale/programs/locfile.c:953
+#: locale/programs/locfile.c:966
msgid "expecting string argument for `copy'"
msgstr "Für »copy« wird ein String-Argument erwartet"
-#: locale/programs/locfile.c:957
+#: locale/programs/locfile.c:970
msgid "locale name should consist only of portable characters"
msgstr "Der Name der Lokale sollte nur aus portablen Zeichen bestehen"
-#: locale/programs/locfile.c:976
+#: locale/programs/locfile.c:989
msgid "no other keyword shall be specified when `copy' is used"
msgstr "Es dürfen keine anderen Schlüsselworte angegeben werden, wenn »copy« verwendet wird"
-#: locale/programs/locfile.c:990
+#: locale/programs/locfile.c:1003
#, c-format
msgid "`%1$s' definition does not end with `END %1$s'"
msgstr "Die Definition von »%1$s« ist nicht durch »END %1$s« abgeschlossen"
@@ -3807,12 +3803,12 @@ msgstr "yp_update: Kann den Rechnername nicht in einen Netzname umwandeln\n"
msgid "yp_update: cannot get server address\n"
msgstr "yp_update: Kann die Adresse des Servers nicht finden\n"
-#: nscd/aicache.c:83 nscd/hstcache.c:452
+#: nscd/aicache.c:82 nscd/hstcache.c:452
#, c-format
msgid "Haven't found \"%s\" in hosts cache!"
msgstr "»%s« ist im Host-Cache nicht vorhanden!"
-#: nscd/aicache.c:85 nscd/hstcache.c:454
+#: nscd/aicache.c:84 nscd/hstcache.c:454
#, c-format
msgid "Reloading \"%s\" in hosts cache!"
msgstr "»%s« in Host-Cache neu laden!"
@@ -4136,22 +4132,22 @@ msgstr "%zu Bytes im »%s«-Cache freigegeben"
msgid "no more memory for database '%s'"
msgstr "Kein Speicher mehr für die Datenbank »%s« verfügbar"
-#: nscd/netgroupcache.c:121
+#: nscd/netgroupcache.c:122
#, c-format
msgid "Haven't found \"%s\" in netgroup cache!"
msgstr "»%s« ist im Netgroup-Cache nicht vorhanden!"
-#: nscd/netgroupcache.c:123
+#: nscd/netgroupcache.c:124
#, c-format
msgid "Reloading \"%s\" in netgroup cache!"
msgstr "»%s« neu in den Netgroup-Cache laden!"
-#: nscd/netgroupcache.c:469
+#: nscd/netgroupcache.c:470
#, c-format
msgid "Haven't found \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr "»%s (%s,%s,%s)« ist im Netgroup-Cache nicht vorhanden!"
-#: nscd/netgroupcache.c:472
+#: nscd/netgroupcache.c:473
#, c-format
msgid "Reloading \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr "»%s (%s,%s,%s)« neu in den Netgroup-Cache laden!"
@@ -4205,7 +4201,7 @@ msgstr "Für jeden Benutzer einen eigenen Cache verwenden"
msgid "Name Service Cache Daemon."
msgstr "Name Service Cache Daemon."
-#: nscd/nscd.c:155 nss/getent.c:967 nss/makedb.c:206
+#: nscd/nscd.c:155 nss/getent.c:987 nss/makedb.c:206
#, c-format
msgid "wrong number of arguments"
msgstr "Falsche Anzahl an Argumenten"
@@ -4314,27 +4310,27 @@ msgstr "Syntax-Fehler: %s"
msgid "Must specify user name for server-user option"
msgstr "Der Name des Benutzers für die Option Server-User muss angegeben werden"
-#: nscd/nscd_conf.c:198
+#: nscd/nscd_conf.c:201
#, c-format
msgid "Must specify user name for stat-user option"
msgstr "Der Name des Benutzers für die Option »stat-user« muss angegeben werden"
-#: nscd/nscd_conf.c:255
+#: nscd/nscd_conf.c:259
#, c-format
msgid "Must specify value for restart-interval option"
msgstr "Es muss ein Wert für die Option »restart-interval« angegeben werden"
-#: nscd/nscd_conf.c:269
+#: nscd/nscd_conf.c:273
#, c-format
msgid "Unknown option: %s %s %s"
msgstr "Unbekannte Option: %s %s %s"
-#: nscd/nscd_conf.c:282
+#: nscd/nscd_conf.c:286
#, c-format
msgid "cannot get current working directory: %s; disabling paranoia mode"
msgstr "Kann das aktuelle Arbeitsverzeichnis nicht lesen: %s; Paranoia-Mode wird nicht verwendet"
-#: nscd/nscd_conf.c:302
+#: nscd/nscd_conf.c:306
#, c-format
msgid "maximum file size for %s database too small"
msgstr "Die maximale Dateigröße für die Datenbank »%s« ist zu klein"
@@ -4454,7 +4450,7 @@ msgstr ""
"%15lu Time to Live für positive Einträge in Sekunden\n"
"%15lu Time to Live für negative Einträge in Sekunden\n"
"%15<PRIuMAX> Cache-Hits bei positiven Einträgen\n"
-"%15<PRIuMAX> Cache-Hits bei positiven Einträgen\n"
+"%15<PRIuMAX> Cache-Hits bei negativen Einträgen\n"
"%15<PRIuMAX> Cache-Misses bei positiven Einträgen\n"
"%15<PRIuMAX> Cache-Misses bei negativen Einträgen\n"
"%15lu%% Cache-Hit Verhältnis\n"
@@ -4598,46 +4594,46 @@ msgstr "»%s« ist im Service-Cache nicht vorhanden!"
msgid "Reloading \"%s\" in services cache!"
msgstr "»%s« erneut in den Service-Cache laden!"
-#: nss/getent.c:54
+#: nss/getent.c:55
msgid "database [key ...]"
msgstr "Datenbank [Schlüssel ...]"
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "CONFIG"
msgstr "CONFIG"
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "Service configuration to be used"
msgstr "Zu verwendende Service-Konfiguration"
-#: nss/getent.c:60
+#: nss/getent.c:61
msgid "disable IDN encoding"
msgstr "keine IDN Kodierung verwenden"
-#: nss/getent.c:65
+#: nss/getent.c:66
msgid "Get entries from administrative database."
msgstr "Einträge aus administrativen Datenbanken lesen."
-#: nss/getent.c:149 nss/getent.c:442 nss/getent.c:489
+#: nss/getent.c:150 nss/getent.c:462 nss/getent.c:509
#, c-format
msgid "Enumeration not supported on %s\n"
msgstr "Aufzählung von »%s« wird nicht unterstützt\n"
-#: nss/getent.c:497 nss/getent.c:510
+#: nss/getent.c:517 nss/getent.c:530
#, c-format
msgid "Could not allocate group list: %m\n"
msgstr "Keinen Speicher für die »group«-Liste verfügbar: %m\n"
-#: nss/getent.c:881
+#: nss/getent.c:901
#, c-format
msgid "Unknown database name"
msgstr "Unbekannter Datenbankname"
-#: nss/getent.c:911
+#: nss/getent.c:931
msgid "Supported databases:\n"
msgstr "Unterstützte Datenbanken:\n"
-#: nss/getent.c:977
+#: nss/getent.c:997
#, c-format
msgid "Unknown database: %s\n"
msgstr "Unbekannte Datenbank: %s\n"
@@ -4894,11 +4890,11 @@ msgstr "Der reguläre Ausdruck ist zu groß"
msgid "Unmatched ) or \\)"
msgstr "»)« oder »\\)« ohne öffnende Klammer"
-#: posix/regcomp.c:689
+#: posix/regcomp.c:676
msgid "No previous regular expression"
msgstr "Es wurde bisher noch kein regulärer Ausdruck definiert"
-#: posix/wordexp.c:1815
+#: posix/wordexp.c:1816
msgid "parameter null or not set"
msgstr "Der Parameter ist Null oder nicht gesetzt"
@@ -5086,7 +5082,7 @@ msgstr "Ausgabe-Puffer verfügbar"
msgid "Input message available"
msgstr "Eingabe-Nachricht verfügbar"
-#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:381 timezone/zic.c:520
+#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:375 timezone/zic.c:561
msgid "I/O error"
msgstr "Ein-/Ausgabefehler"
@@ -5169,7 +5165,7 @@ msgstr "Unbekanntes Signal %d"
#: sunrpc/auth_unix.c:112 sunrpc/clnt_tcp.c:124 sunrpc/clnt_udp.c:139
#: sunrpc/clnt_unix.c:125 sunrpc/svc_tcp.c:189 sunrpc/svc_tcp.c:233
#: sunrpc/svc_udp.c:161 sunrpc/svc_unix.c:189 sunrpc/svc_unix.c:229
-#: sunrpc/xdr.c:628 sunrpc/xdr.c:788 sunrpc/xdr_array.c:102
+#: sunrpc/xdr.c:631 sunrpc/xdr.c:791 sunrpc/xdr_array.c:102
#: sunrpc/xdr_rec.c:153 sunrpc/xdr_ref.c:79
msgid "out of memory\n"
msgstr "Hauptspeicher erschöpft\n"
@@ -6468,56 +6464,69 @@ msgid "You really blew it this time"
msgstr "Diesmal hast Du es wirklich kaputtgemacht"
#. TRANS Go home and have a glass of warm, dairy-fresh milk.
-#: sysdeps/gnu/errlist.c:978
+#. TRANS @c Okay. Since you are dying to know, I'll tell you.
+#. TRANS @c This is a joke, obviously. There is a children's song which begins,
+#. TRANS @c "Old McDonald had a farm, e-i-e-i-o." Every time I see the (real)
+#. TRANS @c errno macro EIO, I think about that song. Probably most of my
+#. TRANS @c compatriots who program on Unix do, too. One of them must have stayed
+#. TRANS @c up a little too late one night and decided to add it to Hurd or Glibc.
+#. TRANS @c Whoever did it should be castigated, but it made me laugh.
+#. TRANS @c --jtobey@channel1.com
+#. TRANS @c
+#. TRANS @c "bought the farm" means "died". -jtobey
+#. TRANS @c
+#. TRANS @c Translators, please do not translate this litteraly, translate it into
+#. TRANS @c an idiomatic funny way of saying that the computer died.
+#: sysdeps/gnu/errlist.c:991
msgid "Computer bought the farm"
msgstr "Der Computer hat den Bauernhof erworben"
#. TRANS This error code has no purpose.
-#: sysdeps/gnu/errlist.c:987
+#: sysdeps/gnu/errlist.c:1000
msgid "Gratuitous error"
msgstr "Irgendein Fehler"
-#: sysdeps/gnu/errlist.c:995
+#: sysdeps/gnu/errlist.c:1008
msgid "Bad message"
msgstr "Ungültige Nachricht"
-#: sysdeps/gnu/errlist.c:1003
+#: sysdeps/gnu/errlist.c:1016
msgid "Identifier removed"
msgstr "Bezeichner wurde entfernt"
-#: sysdeps/gnu/errlist.c:1011
+#: sysdeps/gnu/errlist.c:1024
msgid "Multihop attempted"
msgstr "Ein »Multihop« wurde versucht"
-#: sysdeps/gnu/errlist.c:1019
+#: sysdeps/gnu/errlist.c:1032
msgid "No data available"
msgstr "Keine Daten verfügbar"
-#: sysdeps/gnu/errlist.c:1027
+#: sysdeps/gnu/errlist.c:1040
msgid "Link has been severed"
msgstr "Der Link wurde beschädigt"
-#: sysdeps/gnu/errlist.c:1035
+#: sysdeps/gnu/errlist.c:1048
msgid "No message of desired type"
msgstr "Keine Nachricht des gewünschten Typs"
-#: sysdeps/gnu/errlist.c:1043
+#: sysdeps/gnu/errlist.c:1056
msgid "Out of streams resources"
msgstr "Keine Stream-Ressourcen mehr verfügbar"
-#: sysdeps/gnu/errlist.c:1051
+#: sysdeps/gnu/errlist.c:1064
msgid "Device not a stream"
msgstr "Das Gerät ist kein Stream"
-#: sysdeps/gnu/errlist.c:1059
+#: sysdeps/gnu/errlist.c:1072
msgid "Value too large for defined data type"
msgstr "Der Wert ist zu groß für den definierten Datentyp"
-#: sysdeps/gnu/errlist.c:1067
+#: sysdeps/gnu/errlist.c:1080
msgid "Protocol error"
msgstr "Protokollfehler"
-#: sysdeps/gnu/errlist.c:1075
+#: sysdeps/gnu/errlist.c:1088
msgid "Timer expired"
msgstr "Der virtuelle Zeitnehmer ist abgelaufen"
@@ -6525,199 +6534,199 @@ msgstr "Der virtuelle Zeitnehmer ist abgelaufen"
#. TRANS completed. @xref{Asynchronous I/O}. When you call @code{aio_cancel},
#. TRANS the normal result is for the operations affected to complete with this
#. TRANS error; @pxref{Cancel AIO Operations}.
-#: sysdeps/gnu/errlist.c:1087
+#: sysdeps/gnu/errlist.c:1100
msgid "Operation canceled"
msgstr "Die Operation wird abgebrochen"
-#: sysdeps/gnu/errlist.c:1095
+#: sysdeps/gnu/errlist.c:1108
msgid "Owner died"
msgstr "Der Eigentümer-Prozess wurde beendet"
-#: sysdeps/gnu/errlist.c:1103
+#: sysdeps/gnu/errlist.c:1116
msgid "State not recoverable"
msgstr "Der Status ist nicht wiederherstellbar"
-#: sysdeps/gnu/errlist.c:1111
+#: sysdeps/gnu/errlist.c:1124
msgid "Interrupted system call should be restarted"
msgstr "Der unterbrochene Betriebssystemaufruf sollte neu gestartet werden"
-#: sysdeps/gnu/errlist.c:1119
+#: sysdeps/gnu/errlist.c:1132
msgid "Channel number out of range"
msgstr "Die Kanalnummer ist außerhalb des gültigen Bereiches"
-#: sysdeps/gnu/errlist.c:1127
+#: sysdeps/gnu/errlist.c:1140
msgid "Level 2 not synchronized"
msgstr "Level 2 ist nicht synchronisiert"
-#: sysdeps/gnu/errlist.c:1135
+#: sysdeps/gnu/errlist.c:1148
msgid "Level 3 halted"
msgstr "Level 3 angehalten"
-#: sysdeps/gnu/errlist.c:1143
+#: sysdeps/gnu/errlist.c:1156
msgid "Level 3 reset"
msgstr "Level 3 zurückgesetzt"
-#: sysdeps/gnu/errlist.c:1151
+#: sysdeps/gnu/errlist.c:1164
msgid "Link number out of range"
msgstr "Die Link-Nummer ist außerhalb des gültigen Bereiches"
# Checkit -ke-
-#: sysdeps/gnu/errlist.c:1159
+#: sysdeps/gnu/errlist.c:1172
msgid "Protocol driver not attached"
msgstr "Das Protokoll ist nicht verfügbar"
-#: sysdeps/gnu/errlist.c:1167
+#: sysdeps/gnu/errlist.c:1180
msgid "No CSI structure available"
msgstr "Keine »CSI«-Struktur verfügbar"
-#: sysdeps/gnu/errlist.c:1175
+#: sysdeps/gnu/errlist.c:1188
msgid "Level 2 halted"
msgstr "Level 2 angehalten"
-#: sysdeps/gnu/errlist.c:1183
+#: sysdeps/gnu/errlist.c:1196
msgid "Invalid exchange"
msgstr "Ungültiger Austausch"
-#: sysdeps/gnu/errlist.c:1191
+#: sysdeps/gnu/errlist.c:1204
msgid "Invalid request descriptor"
msgstr "Ungültiger Aufruf-Deskriptor"
-#: sysdeps/gnu/errlist.c:1199
+#: sysdeps/gnu/errlist.c:1212
msgid "Exchange full"
msgstr "Vermittlung ist überfüllt"
-#: sysdeps/gnu/errlist.c:1207
+#: sysdeps/gnu/errlist.c:1220
msgid "No anode"
msgstr "Keine Anode"
-#: sysdeps/gnu/errlist.c:1215
+#: sysdeps/gnu/errlist.c:1228
msgid "Invalid request code"
msgstr "Ungültiger Aufruf-Code"
-#: sysdeps/gnu/errlist.c:1223
+#: sysdeps/gnu/errlist.c:1236
msgid "Invalid slot"
msgstr "Ungültiger Slot"
-#: sysdeps/gnu/errlist.c:1231
+#: sysdeps/gnu/errlist.c:1244
msgid "File locking deadlock error"
msgstr "Verklemmung in der Sperrverwaltung von Datei"
-#: sysdeps/gnu/errlist.c:1239
+#: sysdeps/gnu/errlist.c:1252
msgid "Bad font file format"
msgstr "Ungültiges Font-Dateiformat"
-#: sysdeps/gnu/errlist.c:1247
+#: sysdeps/gnu/errlist.c:1260
msgid "Machine is not on the network"
msgstr "Die Maschine ist nicht an das Netzwerk angeschlossen"
-#: sysdeps/gnu/errlist.c:1255
+#: sysdeps/gnu/errlist.c:1268
msgid "Package not installed"
msgstr "Das Zusatzpacket ist nicht installiert"
# Diese Ãœbersetzung macht eigentlich keinen Sinn - jh
# man -s 2 Intro auf Solaris2 laesst diese Ãœbersetzung
# sinnvoller erscheinen - Klaus Espenlaub
-#: sysdeps/gnu/errlist.c:1263
+#: sysdeps/gnu/errlist.c:1276
msgid "Advertise error"
msgstr "Konflikt mit Bekanntmachung"
-#: sysdeps/gnu/errlist.c:1271
+#: sysdeps/gnu/errlist.c:1284
msgid "Srmount error"
msgstr "»Srmount«-Fehler"
-#: sysdeps/gnu/errlist.c:1279
+#: sysdeps/gnu/errlist.c:1292
msgid "Communication error on send"
msgstr "Kommunikationsfehler beim Senden"
-#: sysdeps/gnu/errlist.c:1287
+#: sysdeps/gnu/errlist.c:1300
msgid "RFS specific error"
msgstr "RFS-spezifischer Fehler"
-#: sysdeps/gnu/errlist.c:1295
+#: sysdeps/gnu/errlist.c:1308
msgid "Name not unique on network"
msgstr "Der Name ist im Netzwerk nicht eindeutig"
-#: sysdeps/gnu/errlist.c:1303
+#: sysdeps/gnu/errlist.c:1316
msgid "File descriptor in bad state"
msgstr "Die Dateizugriffsnummer ist in schlechter Verfassung"
-#: sysdeps/gnu/errlist.c:1311
+#: sysdeps/gnu/errlist.c:1324
msgid "Remote address changed"
msgstr "Die Adresse der Gegenstelle hat sich geändert"
-#: sysdeps/gnu/errlist.c:1319
+#: sysdeps/gnu/errlist.c:1332
msgid "Can not access a needed shared library"
msgstr "Auf eine benötigte Shared Library kann nicht zugegriffen werden"
-#: sysdeps/gnu/errlist.c:1327
+#: sysdeps/gnu/errlist.c:1340
msgid "Accessing a corrupted shared library"
msgstr "Zugriff auf eine fehlerhafte oder defekte Shared Library"
-#: sysdeps/gnu/errlist.c:1335
+#: sysdeps/gnu/errlist.c:1348
msgid ".lib section in a.out corrupted"
msgstr "».lib«-Sektion in der »a.out«-Datei ist beschädigt"
-#: sysdeps/gnu/errlist.c:1343
+#: sysdeps/gnu/errlist.c:1356
msgid "Attempting to link in too many shared libraries"
msgstr "Versuch zu viele Shared Libraries einzubinden"
-#: sysdeps/gnu/errlist.c:1351
+#: sysdeps/gnu/errlist.c:1364
msgid "Cannot exec a shared library directly"
msgstr "Eine Shared Library kann nicht direkt ausgeführt werden"
-#: sysdeps/gnu/errlist.c:1359
+#: sysdeps/gnu/errlist.c:1372
msgid "Streams pipe error"
msgstr "Fehler in Stream-Pipe"
-#: sysdeps/gnu/errlist.c:1367
+#: sysdeps/gnu/errlist.c:1380
msgid "Structure needs cleaning"
msgstr "Die Struktur muss bereinigt werden"
-#: sysdeps/gnu/errlist.c:1375
+#: sysdeps/gnu/errlist.c:1388
msgid "Not a XENIX named type file"
msgstr "Keine XENIX »named type« Datei"
-#: sysdeps/gnu/errlist.c:1383
+#: sysdeps/gnu/errlist.c:1396
msgid "No XENIX semaphores available"
msgstr "Keine XENIX-Semaphoren verfügbar"
-#: sysdeps/gnu/errlist.c:1391
+#: sysdeps/gnu/errlist.c:1404
msgid "Is a named type file"
msgstr "Ist eine »named type file«"
-#: sysdeps/gnu/errlist.c:1399
+#: sysdeps/gnu/errlist.c:1412
msgid "Remote I/O error"
msgstr "Ein-/Ausgabefehler der Gegenstelle (remote)"
-#: sysdeps/gnu/errlist.c:1407
+#: sysdeps/gnu/errlist.c:1420
msgid "No medium found"
msgstr "Kein Medium gefunden"
-#: sysdeps/gnu/errlist.c:1415
+#: sysdeps/gnu/errlist.c:1428
msgid "Wrong medium type"
msgstr "Falscher Medien-Typ"
-#: sysdeps/gnu/errlist.c:1423
+#: sysdeps/gnu/errlist.c:1436
msgid "Required key not available"
msgstr "Der notwendige Schlüssel ist nicht verfügbar"
-#: sysdeps/gnu/errlist.c:1431
+#: sysdeps/gnu/errlist.c:1444
msgid "Key has expired"
msgstr "Der Schlüssel ist nicht mehr gültig"
-#: sysdeps/gnu/errlist.c:1439
+#: sysdeps/gnu/errlist.c:1452
msgid "Key has been revoked"
msgstr "Der Schlüssel wurde widerrufen"
-#: sysdeps/gnu/errlist.c:1447
+#: sysdeps/gnu/errlist.c:1460
msgid "Key was rejected by service"
msgstr "Der SChlüssel wurde von Dienst zurückgewiesen"
-#: sysdeps/gnu/errlist.c:1455
+#: sysdeps/gnu/errlist.c:1468
msgid "Operation not possible due to RF-kill"
msgstr "Die Operation ist nicht möglich wegen RF-kill"
-#: sysdeps/gnu/errlist.c:1463
+#: sysdeps/gnu/errlist.c:1476
msgid "Memory page has hardware error"
msgstr "Memory-Seite hat einen Hardware-Fehler"
@@ -6843,27 +6852,27 @@ msgstr "Schatten-Stack ist nicht aktiviert"
msgid "can't disable CET"
msgstr "Kann CET nicht ausschalten"
-#: timezone/zdump.c:338
+#: timezone/zdump.c:332
msgid "has fewer than 3 characters"
msgstr "hat weniger als drei Zeichen"
-#: timezone/zdump.c:340
+#: timezone/zdump.c:334
msgid "has more than 6 characters"
msgstr "hat mehr als sechs Zeichen"
-#: timezone/zdump.c:342
+#: timezone/zdump.c:336
msgid "has characters other than ASCII alphanumerics, '-' or '+'"
msgstr "hat Zeichen außer ASCII alphanumerisch, »-« oder »+«"
-#: timezone/zdump.c:347
+#: timezone/zdump.c:341
#, c-format
msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n"
msgstr "%s: Warnung: Uone »%s« Abkürzung »%s« %s\n"
-#: timezone/zdump.c:393
+#: timezone/zdump.c:387
#, c-format
msgid ""
-"%s: usage: %s OPTIONS ZONENAME ...\n"
+"%s: usage: %s OPTIONS TIMEZONE ...\n"
"Options include:\n"
" -c [L,]U Start at year L (default -500), end before year U (default 2500)\n"
" -t [L,]U Start at time L, end before time U (in seconds since 1970)\n"
@@ -6875,7 +6884,7 @@ msgid ""
"\n"
"Report bugs to %s.\n"
msgstr ""
-"%s: Syntax: %s OPTIONEN ZONENAME ...\n"
+"%s: Syntax: %s OPTIONEN ZEITZONE ...\n"
"mögliche Optionen:\n"
" -c [L,]U Mit Jahr L (Default -500) beginnen, Ende vor Jahr U (Default 2500)\n"
" -t [L,]U Mit Jahr L beginnen, Ende vor Zeit U (in Sekunden seit 1970)\n"
@@ -6887,435 +6896,459 @@ msgstr ""
"\n"
"Fehler bitte (in englisch) melden an %s.\n"
-#: timezone/zdump.c:479
+#: timezone/zdump.c:473
#, c-format
msgid "%s: wild -c argument %s\n"
msgstr "%s: wildes »-c«-Argument %s\n"
-#: timezone/zdump.c:512
+#: timezone/zdump.c:506
#, c-format
msgid "%s: wild -t argument %s\n"
msgstr "%s: wildes »-t«-Argument %s\n"
-#: timezone/zic.c:398
+#: timezone/zic.c:429
#, c-format
msgid "%s: Memory exhausted: %s\n"
msgstr "%s: Hauptspeicher erschöpft: %s\n"
-#: timezone/zic.c:406
+#: timezone/zic.c:437
msgid "size overflow"
msgstr "Größenüberlauf"
-#: timezone/zic.c:454
+#: timezone/zic.c:447
+msgid "alignment overflow"
+msgstr "Ãœberlauf beim Alignment"
+
+#: timezone/zic.c:495
msgid "integer overflow"
msgstr "Ganzzahl-Ãœberlauf"
-#: timezone/zic.c:488
+#: timezone/zic.c:529
#, c-format
msgid "\"%s\", line %<PRIdMAX>: "
msgstr "»%s«, Zeile %<PRIdMAX>: "
-#: timezone/zic.c:491
+#: timezone/zic.c:532
#, c-format
msgid " (rule from \"%s\", line %<PRIdMAX>)"
msgstr " (Regel aus Datei »%s«, Zeile %<PRIdMAX>)"
-#: timezone/zic.c:510
+#: timezone/zic.c:551
#, c-format
msgid "warning: "
msgstr "Warnung: "
-#: timezone/zic.c:535
+#: timezone/zic.c:576
#, c-format
msgid ""
"%s: usage is %s [ --version ] [ --help ] [ -v ] \\\n"
"\t[ -l localtime ] [ -p posixrules ] [ -d directory ] \\\n"
-"\t[ -L leapseconds ] [ filename ... ]\n"
+"\t[ -t localtime-link ] [ -L leapseconds ] [ filename ... ]\n"
"\n"
"Report bugs to %s.\n"
msgstr ""
"%s: Syntax ist %s [ --version ] [ --help ] [ -v ] [ -l Ortszeit ] [ -p Posix-Regeln ]\\\n"
-"\t [ -d Verzeichnis ] [ -L Schaltsekunden ] [ Dateiname ... ]\n"
+"\t [ -d Verzeichnis ] [ -t Ortszeit-Link ] [ -L Schaltsekunden ] [ Dateiname ... ]\n"
"\n"
"Fehler bitte (in englisch) melden an %s.\n"
-#: timezone/zic.c:558
+#: timezone/zic.c:599
#, c-format
msgid "%s: Can't chdir to %s: %s\n"
msgstr "%s: Kann nicht ins Verzeichnis »%s« wechseln: %s\n"
-#: timezone/zic.c:590
+#: timezone/zic.c:632
msgid "wild compilation-time specification of zic_t"
msgstr "wilde Spezifikation von »zic_t« zur Übersetzungszeit"
-#: timezone/zic.c:610
+#: timezone/zic.c:652
#, c-format
msgid "%s: More than one -d option specified\n"
msgstr "%s: Mehr als eine »-d« Option angegeben\n"
-#: timezone/zic.c:620
+#: timezone/zic.c:662
#, c-format
msgid "%s: More than one -l option specified\n"
msgstr "%s: Mehr als eine »-l« Option angegeben\n"
-#: timezone/zic.c:630
+#: timezone/zic.c:672
#, c-format
msgid "%s: More than one -p option specified\n"
msgstr "%s: Mehr als eine »-p« Option angegeben\n"
-#: timezone/zic.c:640
+#: timezone/zic.c:680
+#, c-format
+msgid "%s: More than one -t option specified\n"
+msgstr "%s: Mehr als eine »-t« Option angegeben\n"
+
+#: timezone/zic.c:689
+msgid "-y is obsolescent"
+msgstr "»-y« ist veraltet"
+
+#: timezone/zic.c:693
#, c-format
msgid "%s: More than one -y option specified\n"
msgstr "%s: Mehr als eine »-y« Option angegeben\n"
-#: timezone/zic.c:650
+#: timezone/zic.c:703
#, c-format
msgid "%s: More than one -L option specified\n"
msgstr "%s: Mehr als eine »-L« Option angegeben\n"
-#: timezone/zic.c:659
+#: timezone/zic.c:712
msgid "-s ignored"
msgstr "-s wird ignoriert"
-#: timezone/zic.c:698
+#: timezone/zic.c:753
msgid "link to link"
msgstr "Link auf einen Link"
-#: timezone/zic.c:701 timezone/zic.c:705
+#: timezone/zic.c:756 timezone/zic.c:760
msgid "command line"
msgstr "Kommandozeile"
-#: timezone/zic.c:721
+#: timezone/zic.c:776
msgid "empty file name"
msgstr "leerer Dateiname"
-#: timezone/zic.c:724
+#: timezone/zic.c:779
#, c-format
msgid "file name '%s' begins with '/'"
msgstr "Dateiname »%s« beginnt mit »/«"
-#: timezone/zic.c:734
+#: timezone/zic.c:789
#, c-format
msgid "file name '%s' contains '%.*s' component"
msgstr "Dateiname »%s« enthält »%.*s« Komponente"
-#: timezone/zic.c:740
+#: timezone/zic.c:795
#, c-format
msgid "file name '%s' component contains leading '-'"
msgstr "Dateinamensteil »%s« enthält ein führendes »-«"
-#: timezone/zic.c:743
+#: timezone/zic.c:798
#, c-format
msgid "file name '%s' contains overlength component '%.*s...'"
msgstr "Dateiname »%s« enthält überlange Komponente »%.*s...«"
-#: timezone/zic.c:771
+#: timezone/zic.c:826
#, c-format
msgid "file name '%s' contains byte '%c'"
msgstr "Dateiname »%s« enthält Byte »%c«"
-#: timezone/zic.c:772
+#: timezone/zic.c:827
#, c-format
msgid "file name '%s' contains byte '\\%o'"
msgstr "Dateiname »%s« enthält Byte »\\%o«"
-#: timezone/zic.c:842
+#: timezone/zic.c:897
#, c-format
msgid "%s: link from %s/%s failed: %s\n"
msgstr "%s: Link von »%s/%s« fehlgeschlagen: %s\n"
-#: timezone/zic.c:852 timezone/zic.c:1815
+#: timezone/zic.c:907 timezone/zic.c:1876
#, c-format
msgid "%s: Can't remove %s/%s: %s\n"
msgstr "%s: Kann »%s/%s« nicht löschen: %s\n"
-#: timezone/zic.c:874
+#: timezone/zic.c:931
#, c-format
msgid "symbolic link used because hard link failed: %s"
msgstr "Symbolischer Link verwendet weil Hard Link nicht funktioniert: %s"
-#: timezone/zic.c:882
+#: timezone/zic.c:939
#, c-format
msgid "%s: Can't read %s/%s: %s\n"
msgstr "%s: Kann »%s/%s« nicht lesen: %s\n"
-#: timezone/zic.c:889 timezone/zic.c:1828
+#: timezone/zic.c:946 timezone/zic.c:1889
#, c-format
msgid "%s: Can't create %s/%s: %s\n"
msgstr "%s: Kann »%s/%s« nicht erzeugen: %s\n"
-#: timezone/zic.c:898
+#: timezone/zic.c:955
#, c-format
msgid "copy used because hard link failed: %s"
msgstr "Kopiert weil Hard Link nicht funktioniert: %s"
-#: timezone/zic.c:901
+#: timezone/zic.c:958
#, c-format
msgid "copy used because symbolic link failed: %s"
msgstr "Kopiere weil symbolischer Link nicht funktioniert: %s"
-#: timezone/zic.c:1013 timezone/zic.c:1015
+#: timezone/zic.c:1032 timezone/zic.c:1034
msgid "same rule name in multiple files"
msgstr "Dieselbe Regel ist in mehreren Dateien enthalten"
-#: timezone/zic.c:1056
-msgid "unruly zone"
-msgstr "Zeitzone ohne Regeln"
-
-#: timezone/zic.c:1063
+#: timezone/zic.c:1081
#, c-format
msgid "%s in ruleless zone"
msgstr "%s in einer regellosen Zone"
-#: timezone/zic.c:1083
+#: timezone/zic.c:1101
msgid "standard input"
msgstr "Standardeingabe"
-#: timezone/zic.c:1088
+#: timezone/zic.c:1106
#, c-format
msgid "%s: Can't open %s: %s\n"
msgstr "%s: Kann die Datei »%s« nicht öffnen: %s\n"
-#: timezone/zic.c:1099
+#: timezone/zic.c:1117
msgid "line too long"
msgstr "Die Zeile ist zu lang"
-#: timezone/zic.c:1119
+#: timezone/zic.c:1139
msgid "input line of unknown type"
msgstr "Die Eingabezeile ist von einem unbekannten Typ"
-#: timezone/zic.c:1134
-#, c-format
-msgid "%s: Leap line in non leap seconds file %s"
-msgstr "%s: Schalt-Zeile in der nicht-Schaltsekunden-Datei »%s«"
-
-#: timezone/zic.c:1142 timezone/zic.c:1547 timezone/zic.c:1569
+#: timezone/zic.c:1158 timezone/zic.c:1593 timezone/zic.c:1615
#, c-format
msgid "%s: panic: Invalid l_value %d\n"
msgstr "%s: Panik: ungültiger »l_value« %d\n"
-#: timezone/zic.c:1151
+#: timezone/zic.c:1167
msgid "expected continuation line not found"
msgstr "Die erwartete Fortsetzungszeile ist nicht vorhanden"
-#: timezone/zic.c:1193 timezone/zic.c:2976
+#: timezone/zic.c:1203
+msgid "fractional seconds rejected by pre-2018 versions of zic"
+msgstr "Sekundenbruchteile werden von zic-Versionsn vor 2018 zurückgewiesen"
+
+#: timezone/zic.c:1221 timezone/zic.c:3078
msgid "time overflow"
msgstr "Ãœberlauf der Zeit"
-#: timezone/zic.c:1198
+#: timezone/zic.c:1227
msgid "values over 24 hours not handled by pre-2007 versions of zic"
msgstr "Werte größer als 24 Stunden werden von zic-Versionsn vor 2007 nicht verarbeitet"
-#: timezone/zic.c:1209
+#: timezone/zic.c:1245
+msgid "invalid saved time"
+msgstr "Ungültige gespeicherte Zeit"
+
+#: timezone/zic.c:1256
msgid "wrong number of fields on Rule line"
msgstr "Falsche Anzahl der Felder in der Rule-Zeile"
-#: timezone/zic.c:1213
-msgid "nameless rule"
-msgstr "Regel ohne Name"
-
-#: timezone/zic.c:1218
-msgid "invalid saved time"
-msgstr "Ungültige gespeicherte Zeit"
+#: timezone/zic.c:1265
+#, c-format
+msgid "Invalid rule name \"%s\""
+msgstr "Ungültige Regelname »%s«"
-#: timezone/zic.c:1235
+#: timezone/zic.c:1287
msgid "wrong number of fields on Zone line"
msgstr "Falsche Anzahl an Feldern in der Zone-Zeile"
-#: timezone/zic.c:1240
+#: timezone/zic.c:1292
#, c-format
msgid "\"Zone %s\" line and -l option are mutually exclusive"
msgstr "»Zone %s«-Zeile und die Option »-l« schliessen sich aus"
-#: timezone/zic.c:1246
+#: timezone/zic.c:1298
#, c-format
msgid "\"Zone %s\" line and -p option are mutually exclusive"
msgstr "»Zone %s«-Zeile und die Option »-p« schliessen sich aus"
-#: timezone/zic.c:1253
+#: timezone/zic.c:1305
#, c-format
msgid "duplicate zone name %s (file \"%s\", line %<PRIdMAX>)"
msgstr "Doppelter Zonenname »%s« (Datei »%s«, Zeile %<PRIdMAX>)"
-#: timezone/zic.c:1267
+#: timezone/zic.c:1319
msgid "wrong number of fields on Zone continuation line"
msgstr "Falsche Anzahl der Felder in der Zeitzonen-Fortsetzungszeile"
-#: timezone/zic.c:1307
+#: timezone/zic.c:1359
msgid "invalid UT offset"
msgstr "ungültiger UT-Offset"
-#: timezone/zic.c:1311
+#: timezone/zic.c:1363
msgid "invalid abbreviation format"
msgstr "ungültiges Abkürzungsformat"
-#: timezone/zic.c:1320
+#: timezone/zic.c:1372
#, c-format
msgid "format '%s' not handled by pre-2015 versions of zic"
msgstr "Format »%s« werden von zic-Versionsn vor 2015 nicht verarbeitet"
-#: timezone/zic.c:1347
+#: timezone/zic.c:1399
msgid "Zone continuation line end time is not after end time of previous line"
msgstr "Die Ende-Zeit der Fortsetzungszeile ist nicht später als die Ende-Zeit der vorangegangenen Zeile"
-#: timezone/zic.c:1374
+#: timezone/zic.c:1426
msgid "wrong number of fields on Leap line"
msgstr "Falsche Anzahl an Feldern in der Leap-Zeile"
-#: timezone/zic.c:1383
+#: timezone/zic.c:1435
msgid "invalid leaping year"
msgstr "Ungültiges Schaltjahr"
-#: timezone/zic.c:1403 timezone/zic.c:1501
+#: timezone/zic.c:1455 timezone/zic.c:1547
msgid "invalid month name"
msgstr "ungültiger Monatsname"
-#: timezone/zic.c:1416 timezone/zic.c:1614 timezone/zic.c:1628
+#: timezone/zic.c:1468 timezone/zic.c:1663 timezone/zic.c:1677
msgid "invalid day of month"
msgstr "Ungültiger Tag des Monats"
-#: timezone/zic.c:1421
+#: timezone/zic.c:1473
msgid "time too small"
msgstr "Zeit ist zu klein"
-#: timezone/zic.c:1425
+#: timezone/zic.c:1477
msgid "time too large"
msgstr "Zeit ist zu groß"
-#: timezone/zic.c:1429 timezone/zic.c:1530
+#: timezone/zic.c:1481 timezone/zic.c:1576
msgid "invalid time of day"
msgstr "Ungültige Tageszeit"
-#: timezone/zic.c:1448
+#: timezone/zic.c:1494
msgid "illegal CORRECTION field on Leap line"
msgstr "ungültiges »CORRECTION«-Feld in der »Leap«-Zeile"
-#: timezone/zic.c:1453
+#: timezone/zic.c:1499
msgid "illegal Rolling/Stationary field on Leap line"
msgstr "ungültiges »Rolling/Stationary«-Feld in der »Leap«-Zeile"
-#: timezone/zic.c:1459
-msgid "leap second precedes Big Bang"
-msgstr "Die Schaltsekunde ist vor dem »Big Bang«"
+#: timezone/zic.c:1505
+msgid "leap second precedes Epoch"
+msgstr "Die Schaltsekunde ist vor der »Unix-Epoch«"
-#: timezone/zic.c:1472
+#: timezone/zic.c:1518
msgid "wrong number of fields on Link line"
msgstr "Falsche Anzahl der Felder in der Link-Zeile"
-#: timezone/zic.c:1476
+#: timezone/zic.c:1522
msgid "blank FROM field on Link line"
msgstr "Leeres FROM-Feld in der Link-Zeile"
-#: timezone/zic.c:1551
+#: timezone/zic.c:1597
msgid "invalid starting year"
msgstr "Ungültiges Anfangsjahr"
-#: timezone/zic.c:1573
+#: timezone/zic.c:1619
msgid "invalid ending year"
msgstr "Ungültiges Ende-Jahr"
-#: timezone/zic.c:1577
+#: timezone/zic.c:1623
msgid "starting year greater than ending year"
msgstr "Das Start-Jahr ist größer als das Ende-Jahr"
-#: timezone/zic.c:1584
+#: timezone/zic.c:1630
msgid "typed single year"
msgstr "Ein einzelnes Jahr angegeben"
-#: timezone/zic.c:1619
+#: timezone/zic.c:1633
+#, c-format
+msgid "year type \"%s\" is obsolete; use \"-\" instead"
+msgstr "Jahrestyp »%s» ist obsolet; stattdessen »-« verwenden"
+
+#: timezone/zic.c:1668
msgid "invalid weekday name"
msgstr "ungültiger Name für einen Wochentag"
-#: timezone/zic.c:1743
+#: timezone/zic.c:1800
#, c-format
msgid "reference clients mishandle more than %d transition times"
msgstr "Referenz-Clients verarbeiten mehr als %d Transitionszeiten fehlerhaft"
-#: timezone/zic.c:1747
+#: timezone/zic.c:1804
msgid "pre-2014 clients may mishandle more than 1200 transition times"
msgstr "vor-2014 Clients könnten mehr als 1200 Transitionszeiten fehlerhaft verarbeiten"
-#: timezone/zic.c:1858
+#: timezone/zic.c:1920
msgid "too many transition times"
msgstr "Zu viele Transitionszeiten"
# XXX ist das ok?
-#: timezone/zic.c:2047
+#: timezone/zic.c:2107
#, c-format
-msgid "%%z UTC offset magnitude exceeds 99:59:59"
-msgstr "%%z UTC Abweichung überschreitet 99:59:59"
+msgid "%%z UT offset magnitude exceeds 99:59:59"
+msgstr "%%z UT Abweichung überschreitet 99:59:59"
-#: timezone/zic.c:2424
+#: timezone/zic.c:2488
msgid "no POSIX environment variable for zone"
msgstr "Keine POSIX Umgebungsvariable für Zone"
-#: timezone/zic.c:2430
+#: timezone/zic.c:2494
#, c-format
msgid "%s: pre-%d clients may mishandle distant timestamps"
msgstr "%s: vor-%d Clients könnten weit entfernte fehlerhaft verarbeiten"
-#: timezone/zic.c:2566
+#: timezone/zic.c:2631
msgid "two rules for same instant"
msgstr "zwei Regeln für den gleichen Zeitpunkt"
-#: timezone/zic.c:2627
+#: timezone/zic.c:2696
msgid "can't determine time zone abbreviation to use just after until time"
msgstr "Kann die Abkürzung der Zeitzone zur Verwendung direkt nach der Ende-Zeit nicht bestimmen"
-#: timezone/zic.c:2725
+#: timezone/zic.c:2785
msgid "too many local time types"
msgstr "Zu viele Ortszeittypen"
-#: timezone/zic.c:2729
+#: timezone/zic.c:2789
msgid "UT offset out of range"
msgstr "Der Offset zu UT ist außerhalb des gültigen Bereiches"
-#: timezone/zic.c:2753
+#: timezone/zic.c:2813
msgid "too many leap seconds"
msgstr "Zu viele Schaltsekunden"
-#: timezone/zic.c:2759
-msgid "repeated leap second moment"
-msgstr "Wiederholung der »Leap«-Sekunde"
+#: timezone/zic.c:2844
+msgid "Leap seconds too close together"
+msgstr "Die Schaltsekunden sind zu nahe beieinander"
-#: timezone/zic.c:2830
+#: timezone/zic.c:2891
msgid "Wild result from command execution"
msgstr "Wildes Ergebnis aus der Kommandoausführung"
-#: timezone/zic.c:2831
+#: timezone/zic.c:2892
#, c-format
msgid "%s: command was '%s', result was %d\n"
msgstr "%s: Das Kommando war »%s«, das Ergebnis war %d\n"
-#: timezone/zic.c:2961
+#: timezone/zic.c:2998
+#, c-format
+msgid "\"%s\" is undocumented; use \"last%s\" instead"
+msgstr "»%s« ist undokumentiert; stattdessen »last%s« verwenden"
+
+#: timezone/zic.c:3029
+#, c-format
+msgid "\"%s\" is ambiguous in pre-2017c zic"
+msgstr "»%s« ist mehrdeutig im Programm »zic« vor Version 2017c"
+
+#: timezone/zic.c:3063
msgid "Odd number of quotation marks"
msgstr "Ungerade Anzahl von Anführungszeichen"
-#: timezone/zic.c:3046
+#: timezone/zic.c:3157
msgid "use of 2/29 in non leap-year"
msgstr "Der 29. Februar wurde in einem Jahr verwendet, das kein Schaltjahr ist"
-#: timezone/zic.c:3081
+#: timezone/zic.c:3192
msgid "rule goes past start/end of month; will not work with pre-2004 versions of zic"
msgstr "Die Regel überspannt einen Monatswechsel. Das wird von zic-Verionen vor 2004 nicht unterstützt"
-#: timezone/zic.c:3108
+#: timezone/zic.c:3219
msgid "time zone abbreviation has fewer than 3 characters"
msgstr "Die Abkürzung der Zeitzone hat weniger als drei Zeichen"
-#: timezone/zic.c:3110
+#: timezone/zic.c:3221
msgid "time zone abbreviation has too many characters"
msgstr "Die Abkürzung der Zeitzone hat zu viele Zeichen"
-#: timezone/zic.c:3112
+#: timezone/zic.c:3223
msgid "time zone abbreviation differs from POSIX standard"
msgstr "Die Abkürzung der Zeitzone unterscheidet sich vom POSIX-Standard"
-#: timezone/zic.c:3118
+#: timezone/zic.c:3229
msgid "too many, or too long, time zone abbreviations"
msgstr "Zu viele oder zu lange Abkürzungen für Zeitzonen"
-#: timezone/zic.c:3161
+#: timezone/zic.c:3275
#, c-format
msgid "%s: Can't create directory %s: %s"
msgstr "%s: Kann das Verzeichnis »%s« nicht erzeugen: %s"
diff --git a/po/el.po b/po/el.po
index 6a0dd8b0ac..f22da65342 100644
--- a/po/el.po
+++ b/po/el.po
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: libc 2.2.3\n"
-"POT-Creation-Date: 2018-07-26 22:19-0400\n"
+"POT-Creation-Date: 2019-07-18 13:28-0400\n"
"PO-Revision-Date: 2001-05-21 19:20:31+0000\n"
"Last-Translator: Nikos Mavroyanopoulos <nmav@hellug.gr>\n"
"Language-Team: Greek <nls@tux.hellug.gr>\n"
@@ -149,10 +149,10 @@ msgstr ""
"[ΑΡΧΕΙΟ-ΕΞΟΔΟΥ [ΑΡΧΕΙΟ-ΕΙΣΟΔΟΥ]...]"
#: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:308
-#: elf/pldd.c:252 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
-#: iconv/iconvconfig.c:379 locale/programs/locale.c:275
-#: locale/programs/localedef.c:427 login/programs/pt_chown.c:89
-#: malloc/memusagestat.c:563 nss/getent.c:933 nss/makedb.c:369
+#: elf/pldd.c:247 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
+#: iconv/iconvconfig.c:379 locale/programs/locale.c:276
+#: locale/programs/localedef.c:437 login/programs/pt_chown.c:89
+#: malloc/memusagestat.c:563 nss/getent.c:953 nss/makedb.c:369
#: posix/getconf.c:503 sysdeps/unix/sysv/linux/lddlibc4.c:61
#, c-format
msgid ""
@@ -161,11 +161,11 @@ msgid ""
msgstr ""
#: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64
-#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75
+#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:263 elf/sotruss.sh:75
#: elf/sprof.c:389 iconv/iconv_prog.c:422 iconv/iconvconfig.c:396
-#: locale/programs/locale.c:292 locale/programs/localedef.c:453
+#: locale/programs/locale.c:293 locale/programs/localedef.c:463
#: login/programs/pt_chown.c:63 malloc/memusage.sh:71
-#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:87 nss/makedb.c:385
+#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:88 nss/makedb.c:385
#: posix/getconf.c:485 sysdeps/unix/sysv/linux/lddlibc4.c:68
#, c-format
msgid ""
@@ -179,10 +179,10 @@ msgstr ""
"ΚΑΠΟΙΟ ΣΥΓΚΕΚΡΙΜΕÎΟ ΣΚΟΠΟ.\n"
#: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68
-#: elf/ldconfig.c:329 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:427
-#: iconv/iconvconfig.c:401 locale/programs/locale.c:297
-#: locale/programs/localedef.c:458 malloc/memusage.sh:75
-#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:92 nss/makedb.c:390
+#: elf/ldconfig.c:329 elf/pldd.c:268 elf/sprof.c:395 iconv/iconv_prog.c:427
+#: iconv/iconvconfig.c:401 locale/programs/locale.c:298
+#: locale/programs/localedef.c:468 malloc/memusage.sh:75
+#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:93 nss/makedb.c:390
#: posix/getconf.c:490
#, c-format
msgid "Written by %s.\n"
@@ -257,21 +257,21 @@ msgstr "αδυναμία ανοίγματος αÏχείου εξόδου `%s'"
msgid "invalid escape sequence"
msgstr "μη έγκυÏη σωσμένη ÏŽÏα"
-#: catgets/gencat.c:1209
+#: catgets/gencat.c:1211
msgid "unterminated message"
msgstr "μη τεÏματιζόμενο μήνυμα"
-#: catgets/gencat.c:1233
+#: catgets/gencat.c:1235
#, c-format
msgid "while opening old catalog file"
msgstr "κατά το άνοιγμα Ï€Î±Î»Î¹Î¿Ï Î±Ïχείου καταλόγου"
-#: catgets/gencat.c:1324
+#: catgets/gencat.c:1326
#, fuzzy, c-format
msgid "conversion modules not available"
msgstr "το Ï€ÏόγÏαμμα %lu έκδοσης %lu δεν είναι διαθέσιμο\n"
-#: catgets/gencat.c:1350
+#: catgets/gencat.c:1352
#, fuzzy, c-format
msgid "cannot determine escape character"
msgstr "αδυναμία δημιουÏγίας εσωτεÏÎ¹ÎºÎ¿Ï Ï€ÎµÏιγÏαφέα"
@@ -410,7 +410,7 @@ msgstr "Άγνωστο όνομα συστήματος"
msgid ", OS ABI: %s %d.%d.%d"
msgstr ""
-#: elf/cache.c:163 elf/ldconfig.c:1332
+#: elf/cache.c:163 elf/ldconfig.c:1333
#, fuzzy, c-format
msgid "Can't open cache file %s\n"
msgstr "αδυναμία ανοίγματος αÏχείου εισόδου `%s'"
@@ -420,38 +420,38 @@ msgstr "αδυναμία ανοίγματος αÏχείου εισόδου `%s'
msgid "mmap of cache file failed.\n"
msgstr "αποτυχία αντιστοίχισης κεφαλίδων τμημάτων"
-#: elf/cache.c:181 elf/cache.c:195
+#: elf/cache.c:181 elf/cache.c:195 elf/cache.c:205
#, c-format
msgid "File is not a cache file.\n"
msgstr ""
-#: elf/cache.c:228 elf/cache.c:238
+#: elf/cache.c:233 elf/cache.c:243
#, c-format
msgid "%d libs found in cache `%s'\n"
msgstr ""
-#: elf/cache.c:432
+#: elf/cache.c:437
#, fuzzy, c-format
msgid "Can't create temporary cache file %s"
msgstr "αδυναμία ανάγνωσης αÏχείου locale `%s'"
-#: elf/cache.c:440 elf/cache.c:450 elf/cache.c:454 elf/cache.c:458
-#: elf/cache.c:468
+#: elf/cache.c:445 elf/cache.c:455 elf/cache.c:459 elf/cache.c:463
+#: elf/cache.c:473
#, c-format
msgid "Writing of cache data failed"
msgstr ""
-#: elf/cache.c:463
+#: elf/cache.c:468
#, fuzzy, c-format
msgid "Changing access rights of %s to %#o failed"
msgstr "αποτυχία αντιστοίχισης κεφαλίδων τμημάτων"
-#: elf/cache.c:472
+#: elf/cache.c:477
#, fuzzy, c-format
msgid "Renaming of %s to %s failed"
msgstr "αποτυχία αντιστοίχισης κεφαλίδων τμημάτων"
-#: elf/dl-close.c:399 elf/dl-open.c:420
+#: elf/dl-close.c:399 elf/dl-open.c:424
#, fuzzy
msgid "cannot create scope list"
msgstr "αδυναμία ανάγνωσης από τον πελάτη"
@@ -546,132 +546,131 @@ msgstr "αδυναμία δημιουÏγίας εσωτεÏÎ¹ÎºÎ¿Ï Ï€ÎµÏιγÏ
msgid "cannot stat shared object"
msgstr "αποτυχία φόÏτωσης διαμοιÏαζομένου αντικειμένου `%s'"
-#: elf/dl-load.c:960
-#, fuzzy
-msgid "cannot open zero fill device"
-msgstr "αδυναμία ανοίγματος αÏχείου εξόδου"
-
-#: elf/dl-load.c:1007 elf/dl-load.c:2203
+#: elf/dl-load.c:992 elf/dl-load.c:2198
#, fuzzy
msgid "cannot create shared object descriptor"
msgstr "αδυναμία δημιουÏγίας εσωτεÏÎ¹ÎºÎ¿Ï Ï€ÎµÏιγÏαφέα"
-#: elf/dl-load.c:1026 elf/dl-load.c:1560 elf/dl-load.c:1673
+#: elf/dl-load.c:1011 elf/dl-load.c:1555 elf/dl-load.c:1668
#, fuzzy
msgid "cannot read file data"
msgstr "αδÏνατη η φόÏτωση δεδομένων Ï€Ïοφίλ"
-#: elf/dl-load.c:1072
+#: elf/dl-load.c:1057
msgid "ELF load command alignment not page-aligned"
msgstr ""
-#: elf/dl-load.c:1079
+#: elf/dl-load.c:1064
msgid "ELF load command address/offset not properly aligned"
msgstr ""
-#: elf/dl-load.c:1161
+#: elf/dl-load.c:1146
#, fuzzy
#| msgid "Cannot register service"
msgid "cannot process note segment"
msgstr "Δεν είναι δυνατή η καταχώÏηση της υπηÏεσίας"
-#: elf/dl-load.c:1172
+#: elf/dl-load.c:1157
msgid "object file has no loadable segments"
msgstr ""
-#: elf/dl-load.c:1181 elf/dl-load.c:1652
+#: elf/dl-load.c:1170 elf/dl-load.c:1647
msgid "cannot dynamically load executable"
msgstr ""
-#: elf/dl-load.c:1202
+#: elf/dl-load.c:1191
msgid "object file has no dynamic section"
msgstr ""
-#: elf/dl-load.c:1225
+#: elf/dl-load.c:1218
+msgid "cannot dynamically load position-independent executable"
+msgstr ""
+
+#: elf/dl-load.c:1220
msgid "shared object cannot be dlopen()ed"
msgstr ""
-#: elf/dl-load.c:1238
+#: elf/dl-load.c:1233
#, fuzzy
msgid "cannot allocate memory for program header"
msgstr "Δεν είναι δυνατό να δεσμευτεί μνήμη"
-#: elf/dl-load.c:1271 elf/dl-load.h:130
+#: elf/dl-load.c:1266 elf/dl-load.h:130
#, fuzzy
msgid "cannot change memory protections"
msgstr "αδυναμία επεξεÏγασίας των Ï€ÏοδιαγÏαφών σειÏάς"
-#: elf/dl-load.c:1291
+#: elf/dl-load.c:1286
#, fuzzy
msgid "cannot enable executable stack as shared object requires"
msgstr "αδυναμία δημιουÏγίας εσωτεÏÎ¹ÎºÎ¿Ï Ï€ÎµÏιγÏαφέα"
-#: elf/dl-load.c:1304
+#: elf/dl-load.c:1299
#, fuzzy
#| msgid "cannot create internal descriptor"
msgid "cannot close file descriptor"
msgstr "αδυναμία δημιουÏγίας εσωτεÏÎ¹ÎºÎ¿Ï Ï€ÎµÏιγÏαφέα"
-#: elf/dl-load.c:1560
+#: elf/dl-load.c:1555
#, fuzzy
msgid "file too short"
msgstr "Î Î¿Î»Ï Î¼ÎµÎ³Î¬Î»Î¿ αÏχείο"
-#: elf/dl-load.c:1595
+#: elf/dl-load.c:1590
#, fuzzy
msgid "invalid ELF header"
msgstr "μη έγκυÏος χÏόνος λήξης"
-#: elf/dl-load.c:1607
+#: elf/dl-load.c:1602
msgid "ELF file data encoding not big-endian"
msgstr ""
-#: elf/dl-load.c:1609
+#: elf/dl-load.c:1604
msgid "ELF file data encoding not little-endian"
msgstr ""
-#: elf/dl-load.c:1613
+#: elf/dl-load.c:1608
msgid "ELF file version ident does not match current one"
msgstr ""
-#: elf/dl-load.c:1617
+#: elf/dl-load.c:1612
msgid "ELF file OS ABI invalid"
msgstr ""
-#: elf/dl-load.c:1620
+#: elf/dl-load.c:1615
msgid "ELF file ABI version invalid"
msgstr ""
-#: elf/dl-load.c:1623
+#: elf/dl-load.c:1618
msgid "nonzero padding in e_ident"
msgstr ""
-#: elf/dl-load.c:1626
+#: elf/dl-load.c:1621
#, fuzzy
msgid "internal error"
msgstr "ΕσωτεÏικό σφάλμα NIS"
-#: elf/dl-load.c:1633
+#: elf/dl-load.c:1628
msgid "ELF file version does not match current one"
msgstr ""
-#: elf/dl-load.c:1641
+#: elf/dl-load.c:1636
msgid "only ET_DYN and ET_EXEC can be loaded"
msgstr ""
-#: elf/dl-load.c:1657
+#: elf/dl-load.c:1652
msgid "ELF file's phentsize not the expected size"
msgstr ""
-#: elf/dl-load.c:2222
+#: elf/dl-load.c:2217
msgid "wrong ELF class: ELFCLASS64"
msgstr ""
-#: elf/dl-load.c:2223
+#: elf/dl-load.c:2218
msgid "wrong ELF class: ELFCLASS32"
msgstr ""
-#: elf/dl-load.c:2226
+#: elf/dl-load.c:2221
#, fuzzy
msgid "cannot open shared object file"
msgstr "αδυναμία ανοίγματος αÏχείου εξόδου"
@@ -686,13 +685,7 @@ msgstr "αποτυχία φόÏτωσης διαμοιÏαζομένου αντÎ
msgid "cannot map zero-fill pages"
msgstr "αδÏνατη η φόÏτωση δεδομένων Ï€Ïοφίλ"
-#: elf/dl-lookup.c:835
-#, fuzzy
-#| msgid "Authentication error"
-msgid "relocation error"
-msgstr "Σφάλμα πιστοποίησης"
-
-#: elf/dl-lookup.c:858
+#: elf/dl-lookup.c:830
msgid "symbol lookup error"
msgstr ""
@@ -700,19 +693,19 @@ msgstr ""
msgid "cannot extend global scope"
msgstr ""
-#: elf/dl-open.c:470
+#: elf/dl-open.c:474
msgid "TLS generation counter wrapped! Please report this."
msgstr ""
-#: elf/dl-open.c:534
+#: elf/dl-open.c:538
msgid "invalid mode for dlopen()"
msgstr "μη έγκυÏη κατάσταση για την dlopen()"
-#: elf/dl-open.c:551
+#: elf/dl-open.c:555
msgid "no more namespaces available for dlmopen()"
msgstr ""
-#: elf/dl-open.c:575
+#: elf/dl-open.c:579
#, fuzzy
#| msgid "invalid mode for dlopen()"
msgid "invalid target namespace in dlmopen()"
@@ -724,21 +717,21 @@ msgstr "μη έγκυÏη κατάσταση για την dlopen()"
msgid "cannot allocate memory in static TLS block"
msgstr "Δεν είναι δυνατό να δεσμευτεί μνήμη"
-#: elf/dl-reloc.c:205
+#: elf/dl-reloc.c:213
msgid "cannot make segment writable for relocation"
msgstr ""
-#: elf/dl-reloc.c:276
+#: elf/dl-reloc.c:272
#, c-format
msgid "%s: out of memory to store relocation results for %s\n"
msgstr ""
-#: elf/dl-reloc.c:292
+#: elf/dl-reloc.c:288
#, fuzzy
msgid "cannot restore segment prot after reloc"
msgstr "αδυναμία δημιουÏγίας εσωτεÏÎ¹ÎºÎ¿Ï Ï€ÎµÏιγÏαφέα"
-#: elf/dl-reloc.c:323
+#: elf/dl-reloc.c:319
#, fuzzy
msgid "cannot apply additional memory protection after relocation"
msgstr "αδυναμία επεξεÏγασίας των Ï€ÏοδιαγÏαφών σειÏάς"
@@ -965,23 +958,23 @@ msgstr ""
msgid "memory exhausted"
msgstr "η μνήμη εξαντλήθηκε"
-#: elf/ldconfig.c:1233
+#: elf/ldconfig.c:1234
#, fuzzy, c-format
#| msgid "cannot read locale directory `%s'"
msgid "%s:%u: cannot read directory %s"
msgstr "αδυναμία ανάγνωσης καταλόγου locale `%s'"
-#: elf/ldconfig.c:1281
+#: elf/ldconfig.c:1282
#, c-format
msgid "relative path `%s' used to build cache"
msgstr ""
-#: elf/ldconfig.c:1311
+#: elf/ldconfig.c:1312
#, c-format
msgid "Can't chdir to /"
msgstr ""
-#: elf/ldconfig.c:1352
+#: elf/ldconfig.c:1353
#, fuzzy, c-format
msgid "Can't open cache file directory %s\n"
msgstr "αδυναμία ανάγνωσης καταλόγου locale `%s'"
@@ -1054,101 +1047,107 @@ msgstr ""
msgid "error: you do not have read permission for"
msgstr ""
-#: elf/pldd-xx.c:105
+#: elf/pldd-xx.c:102
#, fuzzy, c-format
#| msgid "cannot read header from `%s'"
msgid "cannot find program header of process"
msgstr "αδυναμία ανάγνωσης κεφαλίδας από το `%s'"
-#: elf/pldd-xx.c:110
+#: elf/pldd-xx.c:106
#, fuzzy, c-format
msgid "cannot read program header"
msgstr "αδυναμία ανάγνωσης κεφαλίδας από το `%s'"
-#: elf/pldd-xx.c:135
+#: elf/pldd-xx.c:128
#, fuzzy, c-format
#| msgid "cannot read statistics data"
msgid "cannot read dynamic section"
msgstr "αδÏνατη η ανάγνωση δεδομένων στατιστικών"
-#: elf/pldd-xx.c:147
+#: elf/pldd-xx.c:137
#, fuzzy, c-format
msgid "cannot read r_debug"
msgstr "αδυναμία ανάγνωσης κεφαλίδας από το `%s'"
-#: elf/pldd-xx.c:167
+#: elf/pldd-xx.c:154
#, fuzzy, c-format
#| msgid "cannot read locale directory `%s'"
msgid "cannot read program interpreter"
msgstr "αδυναμία ανάγνωσης καταλόγου locale `%s'"
-#: elf/pldd-xx.c:197
+#: elf/pldd-xx.c:183
#, fuzzy, c-format
msgid "cannot read link map"
msgstr "αδÏνατη η φόÏτωση δεδομένων Ï€Ïοφίλ"
-#: elf/pldd-xx.c:209
+#: elf/pldd-xx.c:190
#, fuzzy, c-format
msgid "cannot read object name"
msgstr "αδυναμία ανάγνωσης κεφαλίδας από το `%s'"
-#: elf/pldd-xx.c:219
+#: elf/pldd-xx.c:197
#, fuzzy, c-format
msgid "cannot allocate buffer for object name"
msgstr "Δεν είναι δυνατό να δεσμευτεί μνήμη"
-#: elf/pldd.c:64
+#: elf/pldd.c:58
msgid "List dynamic shared objects loaded into process."
msgstr ""
-#: elf/pldd.c:68
+#: elf/pldd.c:62
msgid "PID"
msgstr ""
-#: elf/pldd.c:100
+#: elf/pldd.c:89
#, c-format
msgid "Exactly one parameter with process ID required.\n"
msgstr ""
-#: elf/pldd.c:112
+#: elf/pldd.c:103
#, fuzzy, c-format
msgid "invalid process ID '%s'"
msgstr "μη έγκυÏο όνομα μήνα"
-#: elf/pldd.c:120
+#: elf/pldd.c:111
#, fuzzy, c-format
#| msgid "cannot open `%s'"
msgid "cannot open %s"
msgstr "αδυναμία ανοίγματος του `%s'"
-#: elf/pldd.c:152
+#: elf/pldd.c:142
#, fuzzy, c-format
#| msgid "cannot open `%s'"
msgid "cannot open %s/task"
msgstr "αδυναμία ανοίγματος του `%s'"
-#: elf/pldd.c:155
+#: elf/pldd.c:145
#, fuzzy, c-format
msgid "cannot prepare reading %s/task"
msgstr "αδυναμία ανάγνωσης από τον πελάτη"
-#: elf/pldd.c:168
+#: elf/pldd.c:158
#, fuzzy, c-format
msgid "invalid thread ID '%s'"
msgstr "μη έγκυÏος χÏόνος λήξης"
-#: elf/pldd.c:179
+#: elf/pldd.c:169
#, fuzzy, c-format
#| msgid "cannot find C preprocessor: %s \n"
msgid "cannot attach to process %lu"
msgstr "δε βÏέθηκε ο Ï€ÏοεπεξεÏγαστής C: %s \n"
-#: elf/pldd.c:294
+#: elf/pldd.c:184
+#, fuzzy, c-format
+#| msgid "invalid saved time"
+msgid "no valid %s/task entries"
+msgstr "μη έγκυÏη σωσμένη ÏŽÏα"
+
+#: elf/pldd.c:290
#, c-format
msgid "cannot get information about process %lu"
msgstr ""
-#: elf/pldd.c:307
+#: elf/pldd.c:303
#, c-format
msgid "process %lu is no ELF program"
msgstr ""
@@ -1470,7 +1469,7 @@ msgstr "ΠληÏοφοÏία:"
msgid "list all known coded character sets"
msgstr "λίστα με όλα τα γνωστά σÏνολα χαÏακτήÏων"
-#: iconv/iconv_prog.c:64 locale/programs/localedef.c:120
+#: iconv/iconv_prog.c:64 locale/programs/localedef.c:124
msgid "Output control:"
msgstr "Έλεγχος εξόδου:"
@@ -1480,8 +1479,8 @@ msgid "omit invalid characters from output"
msgstr "Μη έγκυÏος χαÏακτήÏας ονόματος κλάσης"
#: iconv/iconv_prog.c:66 iconv/iconvconfig.c:128
-#: locale/programs/localedef.c:113 locale/programs/localedef.c:115
-#: locale/programs/localedef.c:117 locale/programs/localedef.c:144
+#: locale/programs/localedef.c:117 locale/programs/localedef.c:119
+#: locale/programs/localedef.c:121 locale/programs/localedef.c:150
#: malloc/memusagestat.c:56
#, fuzzy
msgid "FILE"
@@ -1592,7 +1591,7 @@ msgstr "αδυναμία ανοίγματος αÏχείου εισόδου `%s'
msgid "[DIR...]"
msgstr "[ΑΡΧΕΙΟ...]"
-#: iconv/iconvconfig.c:126 locale/programs/localedef.c:123
+#: iconv/iconvconfig.c:126 locale/programs/localedef.c:129
msgid "PATH"
msgstr ""
@@ -1785,14 +1784,14 @@ msgstr ""
#: locale/programs/charmap.c:503 locale/programs/charmap.c:557
#: locale/programs/charmap.c:589 locale/programs/charmap.c:683
-#: locale/programs/charmap.c:738 locale/programs/charmap.c:779
-#: locale/programs/charmap.c:820
+#: locale/programs/charmap.c:739 locale/programs/charmap.c:780
+#: locale/programs/charmap.c:821
#, c-format
msgid "syntax error in %s definition: %s"
msgstr "συντακτικό σφάλμα στο οÏισμό του %s: %s"
#: locale/programs/charmap.c:504 locale/programs/charmap.c:684
-#: locale/programs/charmap.c:780 locale/programs/repertoire.c:229
+#: locale/programs/charmap.c:781 locale/programs/repertoire.c:229
msgid "no symbolic name given"
msgstr "δεν δώθηκε συμβολικό όνομα"
@@ -1809,14 +1808,14 @@ msgstr "Ï€Î¿Î»Ï Î»Î¯Î³Î± bytes στην κωδικοποίηση χαÏακτή
msgid "too many bytes in character encoding"
msgstr "υπεÏβολικά πολλά bytes στην κωδικοποίηση χαÏακτήÏα"
-#: locale/programs/charmap.c:591 locale/programs/charmap.c:739
-#: locale/programs/charmap.c:822 locale/programs/repertoire.c:295
+#: locale/programs/charmap.c:591 locale/programs/charmap.c:740
+#: locale/programs/charmap.c:823 locale/programs/repertoire.c:295
msgid "no symbolic name given for end of range"
msgstr "δεν δώθηκε συμβολικό όνομα για το τέλος πεδίου"
#: locale/programs/charmap.c:615 locale/programs/ld-address.c:524
#: locale/programs/ld-collate.c:2616 locale/programs/ld-collate.c:3774
-#: locale/programs/ld-ctype.c:2117 locale/programs/ld-ctype.c:2829
+#: locale/programs/ld-ctype.c:2118 locale/programs/ld-ctype.c:2830
#: locale/programs/ld-identification.c:397
#: locale/programs/ld-measurement.c:213 locale/programs/ld-messages.c:295
#: locale/programs/ld-monetary.c:748 locale/programs/ld-name.c:262
@@ -1831,61 +1830,61 @@ msgstr "%1$s: ο οÏισμός δεν τελειώνει με `END %1$s'"
msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
msgstr "μόνο οÏισμοί WIDTH επιτÏέπονται να ακολουθοÏν τον CHARMAP οÏισμό"
-#: locale/programs/charmap.c:656 locale/programs/charmap.c:719
+#: locale/programs/charmap.c:656 locale/programs/charmap.c:720
#, c-format
msgid "value for %s must be an integer"
msgstr "η τιμή για το %s Ï€Ïέπει να είναι ακέÏαιος"
-#: locale/programs/charmap.c:847
+#: locale/programs/charmap.c:848
#, c-format
msgid "%s: error in state machine"
msgstr "%s: Σφάλμα στο μηχανισμό κατάστασης"
-#: locale/programs/charmap.c:855 locale/programs/ld-address.c:540
+#: locale/programs/charmap.c:856 locale/programs/ld-address.c:540
#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967
-#: locale/programs/ld-ctype.c:2114 locale/programs/ld-ctype.c:2846
+#: locale/programs/ld-ctype.c:2115 locale/programs/ld-ctype.c:2847
#: locale/programs/ld-identification.c:413
#: locale/programs/ld-measurement.c:229 locale/programs/ld-messages.c:311
#: locale/programs/ld-monetary.c:764 locale/programs/ld-name.c:278
#: locale/programs/ld-numeric.c:341 locale/programs/ld-paper.c:228
#: locale/programs/ld-telephone.c:292 locale/programs/ld-time.c:990
-#: locale/programs/locfile.c:997 locale/programs/repertoire.c:323
+#: locale/programs/locfile.c:1010 locale/programs/repertoire.c:323
#, c-format
msgid "%s: premature end of file"
msgstr "%s: Ï€ÏόωÏο τέλος αÏχείου"
-#: locale/programs/charmap.c:874 locale/programs/charmap.c:885
+#: locale/programs/charmap.c:875 locale/programs/charmap.c:886
#, c-format
msgid "unknown character `%s'"
msgstr "άγνωστος χαÏακτήÏας `%s'"
-#: locale/programs/charmap.c:893
+#: locale/programs/charmap.c:894
#, c-format
msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d"
msgstr ""
-#: locale/programs/charmap.c:998 locale/programs/ld-collate.c:2893
+#: locale/programs/charmap.c:999 locale/programs/ld-collate.c:2893
#: locale/programs/repertoire.c:418
#, fuzzy
msgid "invalid names for character range"
msgstr "μη έγκυÏα ονόματα για το πεδίο χαÏακτήÏων"
-#: locale/programs/charmap.c:1010 locale/programs/repertoire.c:430
+#: locale/programs/charmap.c:1011 locale/programs/repertoire.c:430
msgid "hexadecimal range format should use only capital characters"
msgstr ""
-#: locale/programs/charmap.c:1028 locale/programs/repertoire.c:448
+#: locale/programs/charmap.c:1029 locale/programs/repertoire.c:448
#, fuzzy, c-format
msgid "<%s> and <%s> are invalid names for range"
msgstr "Τα <%s> και <%s> είναι μη αποδεκτά ονόματα για ÏŒÏιο"
-#: locale/programs/charmap.c:1034 locale/programs/repertoire.c:455
+#: locale/programs/charmap.c:1035 locale/programs/repertoire.c:455
#, fuzzy
#| msgid "upper limit in range is not smaller then lower limit"
msgid "upper limit in range is smaller than lower limit"
msgstr "το επάνω ÏŒÏιο στο πεδίο δεν είναι μικÏότεÏο του κάτω οÏίου"
-#: locale/programs/charmap.c:1092
+#: locale/programs/charmap.c:1093
msgid "resulting bytes for range not representable."
msgstr ""
@@ -1954,7 +1953,7 @@ msgid "%s: numeric country code `%d' not valid"
msgstr ""
#: locale/programs/ld-address.c:432 locale/programs/ld-address.c:469
-#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2478
+#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2479
#: locale/programs/ld-identification.c:309
#: locale/programs/ld-measurement.c:196 locale/programs/ld-messages.c:264
#: locale/programs/ld-monetary.c:503 locale/programs/ld-monetary.c:538
@@ -1977,7 +1976,7 @@ msgid "%s: unknown character in field `%s'"
msgstr "άγνωστος χαÏακτήÏας `%s'"
#: locale/programs/ld-address.c:521 locale/programs/ld-collate.c:3772
-#: locale/programs/ld-ctype.c:2826 locale/programs/ld-identification.c:394
+#: locale/programs/ld-ctype.c:2827 locale/programs/ld-identification.c:394
#: locale/programs/ld-measurement.c:210 locale/programs/ld-messages.c:293
#: locale/programs/ld-monetary.c:746 locale/programs/ld-name.c:260
#: locale/programs/ld-numeric.c:323 locale/programs/ld-paper.c:210
@@ -1990,8 +1989,8 @@ msgstr ""
#: locale/programs/ld-collate.c:602 locale/programs/ld-collate.c:898
#: locale/programs/ld-collate.c:911 locale/programs/ld-collate.c:2582
#: locale/programs/ld-collate.c:2603 locale/programs/ld-collate.c:3957
-#: locale/programs/ld-ctype.c:1846 locale/programs/ld-ctype.c:2104
-#: locale/programs/ld-ctype.c:2676 locale/programs/ld-ctype.c:2837
+#: locale/programs/ld-ctype.c:1847 locale/programs/ld-ctype.c:2105
+#: locale/programs/ld-ctype.c:2677 locale/programs/ld-ctype.c:2838
#: locale/programs/ld-identification.c:404
#: locale/programs/ld-measurement.c:220 locale/programs/ld-messages.c:302
#: locale/programs/ld-monetary.c:755 locale/programs/ld-name.c:269
@@ -2338,131 +2337,131 @@ msgstr "ο χάÏτης χαÏακτήÏων `%s' οÏίστηκε ήδη"
msgid "implementation limit: no more than %d character maps allowed"
msgstr "ÏŒÏιο υλοποίησης: δεν επιτÏέπονται πάνω από %d χάÏτες χαÏακτήÏων"
-#: locale/programs/ld-ctype.c:1434 locale/programs/ld-ctype.c:1559
-#: locale/programs/ld-ctype.c:1665 locale/programs/ld-ctype.c:2341
-#: locale/programs/ld-ctype.c:3299
+#: locale/programs/ld-ctype.c:1435 locale/programs/ld-ctype.c:1560
+#: locale/programs/ld-ctype.c:1666 locale/programs/ld-ctype.c:2342
+#: locale/programs/ld-ctype.c:3302
#, c-format
msgid "%s: field `%s' does not contain exactly ten entries"
msgstr ""
-#: locale/programs/ld-ctype.c:1462 locale/programs/ld-ctype.c:2036
+#: locale/programs/ld-ctype.c:1463 locale/programs/ld-ctype.c:2037
#, c-format
msgid "to-value <U%0*X> of range is smaller than from-value <U%0*X>"
msgstr ""
-#: locale/programs/ld-ctype.c:1589
+#: locale/programs/ld-ctype.c:1590
msgid "start and end character sequence of range must have the same length"
msgstr ""
-#: locale/programs/ld-ctype.c:1596
+#: locale/programs/ld-ctype.c:1597
msgid "to-value character sequence is smaller than from-value sequence"
msgstr ""
-#: locale/programs/ld-ctype.c:1956 locale/programs/ld-ctype.c:2007
+#: locale/programs/ld-ctype.c:1957 locale/programs/ld-ctype.c:2008
#, fuzzy
msgid "premature end of `translit_ignore' definition"
msgstr "ΠÏόωÏο τέλος της κανονικής έκφÏασης"
-#: locale/programs/ld-ctype.c:1962 locale/programs/ld-ctype.c:2013
-#: locale/programs/ld-ctype.c:2055
+#: locale/programs/ld-ctype.c:1963 locale/programs/ld-ctype.c:2014
+#: locale/programs/ld-ctype.c:2056
#, fuzzy
msgid "syntax error"
msgstr "Σφάλμα στον δίαυλο(bus)"
-#: locale/programs/ld-ctype.c:2188
+#: locale/programs/ld-ctype.c:2189
#, fuzzy, c-format
msgid "%s: syntax error in definition of new character class"
msgstr "συντακτικό σφάλμα στον οÏισμό της νέας κλάσης χαÏακτήÏων"
-#: locale/programs/ld-ctype.c:2203
+#: locale/programs/ld-ctype.c:2204
#, fuzzy, c-format
msgid "%s: syntax error in definition of new character map"
msgstr "συντακτικό σφάλμα στον οÏισμό του νέο χάÏτη χαÏακτήÏων"
-#: locale/programs/ld-ctype.c:2363
+#: locale/programs/ld-ctype.c:2364
msgid "ellipsis range must be marked by two operands of same type"
msgstr ""
-#: locale/programs/ld-ctype.c:2372
+#: locale/programs/ld-ctype.c:2373
msgid "with symbolic name range values the absolute ellipsis `...' must not be used"
msgstr ""
-#: locale/programs/ld-ctype.c:2387
+#: locale/programs/ld-ctype.c:2388
msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'"
msgstr ""
-#: locale/programs/ld-ctype.c:2401
+#: locale/programs/ld-ctype.c:2402
msgid "with character code range values one must use the absolute ellipsis `...'"
msgstr ""
-#: locale/programs/ld-ctype.c:2552
+#: locale/programs/ld-ctype.c:2553
#, fuzzy, c-format
msgid "duplicated definition for mapping `%s'"
msgstr "διπλός οÏισμός για τον χαÏακτήÏα `%.*s'"
-#: locale/programs/ld-ctype.c:2638 locale/programs/ld-ctype.c:2782
+#: locale/programs/ld-ctype.c:2639 locale/programs/ld-ctype.c:2783
#, c-format
msgid "%s: `translit_start' section does not end with `translit_end'"
msgstr ""
-#: locale/programs/ld-ctype.c:2733
+#: locale/programs/ld-ctype.c:2734
#, c-format
msgid "%s: duplicate `default_missing' definition"
msgstr "%s: διπλός οÏισμός `default_missing'"
-#: locale/programs/ld-ctype.c:2738
+#: locale/programs/ld-ctype.c:2739
msgid "previous definition was here"
msgstr ""
-#: locale/programs/ld-ctype.c:2760
+#: locale/programs/ld-ctype.c:2761
#, c-format
msgid "%s: no representable `default_missing' definition found"
msgstr ""
-#: locale/programs/ld-ctype.c:2877 locale/programs/ld-ctype.c:2973
-#: locale/programs/ld-ctype.c:2992 locale/programs/ld-ctype.c:3012
-#: locale/programs/ld-ctype.c:3032 locale/programs/ld-ctype.c:3052
-#: locale/programs/ld-ctype.c:3072 locale/programs/ld-ctype.c:3111
-#: locale/programs/ld-ctype.c:3131 locale/programs/ld-ctype.c:3195
-#: locale/programs/ld-ctype.c:3236 locale/programs/ld-ctype.c:3259
+#: locale/programs/ld-ctype.c:2878 locale/programs/ld-ctype.c:2974
+#: locale/programs/ld-ctype.c:2993 locale/programs/ld-ctype.c:3013
+#: locale/programs/ld-ctype.c:3033 locale/programs/ld-ctype.c:3053
+#: locale/programs/ld-ctype.c:3073 locale/programs/ld-ctype.c:3112
+#: locale/programs/ld-ctype.c:3132 locale/programs/ld-ctype.c:3198
+#: locale/programs/ld-ctype.c:3239 locale/programs/ld-ctype.c:3262
#, fuzzy, c-format
msgid "%s: character `%s' not defined while needed as default value"
msgstr "ο χαÏακτήÏας `%s' δεν οÏίστηκε ενώ χÏειάζεται σαν Ï€ÏοκαθοÏισμένη τιμή"
-#: locale/programs/ld-ctype.c:2882 locale/programs/ld-ctype.c:2978
-#: locale/programs/ld-ctype.c:2997 locale/programs/ld-ctype.c:3017
-#: locale/programs/ld-ctype.c:3037 locale/programs/ld-ctype.c:3057
-#: locale/programs/ld-ctype.c:3077 locale/programs/ld-ctype.c:3116
-#: locale/programs/ld-ctype.c:3136 locale/programs/ld-ctype.c:3200
+#: locale/programs/ld-ctype.c:2883 locale/programs/ld-ctype.c:2979
+#: locale/programs/ld-ctype.c:2998 locale/programs/ld-ctype.c:3018
+#: locale/programs/ld-ctype.c:3038 locale/programs/ld-ctype.c:3058
+#: locale/programs/ld-ctype.c:3078 locale/programs/ld-ctype.c:3117
+#: locale/programs/ld-ctype.c:3137 locale/programs/ld-ctype.c:3203
#, c-format
msgid "%s: character `%s' in charmap not representable with one byte"
msgstr ""
-#: locale/programs/ld-ctype.c:3242 locale/programs/ld-ctype.c:3265
+#: locale/programs/ld-ctype.c:3245 locale/programs/ld-ctype.c:3268
#, c-format
msgid "%s: character `%s' needed as default value not representable with one byte"
msgstr ""
-#: locale/programs/ld-ctype.c:3321
+#: locale/programs/ld-ctype.c:3324
msgid "no output digits defined and none of the standard names in the charmap"
msgstr ""
-#: locale/programs/ld-ctype.c:3570
+#: locale/programs/ld-ctype.c:3573
#, c-format
msgid "%s: transliteration data from locale `%s' not available"
msgstr ""
-#: locale/programs/ld-ctype.c:3669
+#: locale/programs/ld-ctype.c:3672
#, fuzzy, c-format
msgid "%s: table for class \"%s\": %lu bytes"
msgstr "%s: αδÏνατο το άνοιγμα του %s: %m\n"
-#: locale/programs/ld-ctype.c:3733
+#: locale/programs/ld-ctype.c:3736
#, fuzzy, c-format
msgid "%s: table for map \"%s\": %lu bytes"
msgstr "%s: αδÏνατο το άνοιγμα του %s: %m\n"
-#: locale/programs/ld-ctype.c:3857
+#: locale/programs/ld-ctype.c:3860
#, fuzzy, c-format
msgid "%s: table for width: %lu bytes"
msgstr "%s: αδÏνατο το άνοιγμα του %s: %m\n"
@@ -2715,162 +2714,154 @@ msgstr ""
"ΟÎΟΜΑ\n"
"[-a|-m]"
-#: locale/programs/locale.c:190
-#, fuzzy, c-format
-#| msgid "cannot insert into result table"
-msgid "Cannot set LC_CTYPE to default locale"
-msgstr "αδυναμία εισαγωγής στον πίνακα αποτελεσμάτων"
-
-#: locale/programs/locale.c:192
+#: locale/programs/locale.c:522
#, c-format
-msgid "Cannot set LC_MESSAGES to default locale"
-msgstr ""
-
-#: locale/programs/locale.c:205
-#, fuzzy, c-format
-#| msgid "cannot insert into result table"
-msgid "Cannot set LC_COLLATE to default locale"
-msgstr "αδυναμία εισαγωγής στον πίνακα αποτελεσμάτων"
+msgid "while preparing output"
+msgstr "κατά την Ï€Ïοετοιμασία εξόδου"
-#: locale/programs/locale.c:221
+#: locale/programs/locale.c:998
#, fuzzy, c-format
#| msgid "cannot insert into result table"
-msgid "Cannot set LC_ALL to default locale"
+msgid "Cannot set %s to default locale"
msgstr "αδυναμία εισαγωγής στον πίνακα αποτελεσμάτων"
-#: locale/programs/locale.c:521
+#: locale/programs/locale.c:1096
#, c-format
-msgid "while preparing output"
-msgstr "κατά την Ï€Ïοετοιμασία εξόδου"
+msgid "warning: The LOCPATH variable is set to \"%s\"\n"
+msgstr ""
-#: locale/programs/localedef.c:112
+#: locale/programs/localedef.c:116
msgid "Input Files:"
msgstr "ΑÏχεία Εισόδου:"
-#: locale/programs/localedef.c:114
+#: locale/programs/localedef.c:118
msgid "Symbolic character names defined in FILE"
msgstr "Τα συμβολικά ονόματα χαÏακτήÏων δηλώθηκαν στο ΑΡΧΕΙΟ"
-#: locale/programs/localedef.c:116
+#: locale/programs/localedef.c:120
msgid "Source definitions are found in FILE"
msgstr "Οι οÏισμοί πηγή βÏίσκονται στο ΑΡΧΕΙΟ"
-#: locale/programs/localedef.c:118
+#: locale/programs/localedef.c:122
msgid "FILE contains mapping from symbolic names to UCS4 values"
msgstr "Το ΑΡΧΕΙΟ πεÏιέχει αντιστοιχίσεις από συμβολικά ονόματα σε τιμές UCS4"
-#: locale/programs/localedef.c:122
+#: locale/programs/localedef.c:126
msgid "Create output even if warning messages were issued"
msgstr "ΔημιουÏγία εξόδου ακόμα και αν εκδόθηκαν Ï€Ïοειδοποιήσεις"
-#: locale/programs/localedef.c:123
+#: locale/programs/localedef.c:128
+msgid "Do not create hard links between installed locales"
+msgstr ""
+
+#: locale/programs/localedef.c:129
#, fuzzy
msgid "Optional output file prefix"
msgstr "αδυναμία ανοίγματος αÏχείου εξόδου"
-#: locale/programs/localedef.c:124
+#: locale/programs/localedef.c:130
#, fuzzy
#| msgid "Be strictly POSIX conform"
msgid "Strictly conform to POSIX"
msgstr "ΑυστηÏή συμμόÏφωση με POSIX"
-#: locale/programs/localedef.c:126
+#: locale/programs/localedef.c:132
msgid "Suppress warnings and information messages"
msgstr "Αποσιώπηση Ï€Ïοηδοποιήσεων και μηνυμάτων πληÏοφόÏησης"
-#: locale/programs/localedef.c:127
+#: locale/programs/localedef.c:133
msgid "Print more messages"
msgstr "Εμφάνιση πεÏισσότεÏων μηνυμάτων"
-#: locale/programs/localedef.c:128 locale/programs/localedef.c:131
+#: locale/programs/localedef.c:134 locale/programs/localedef.c:137
#, fuzzy
#| msgid "warning: "
msgid "<warnings>"
msgstr "Ï€Ïοειδοποίηση: "
-#: locale/programs/localedef.c:129
+#: locale/programs/localedef.c:135
msgid "Comma-separated list of warnings to disable; supported warnings are: ascii, intcurrsym"
msgstr ""
-#: locale/programs/localedef.c:132
+#: locale/programs/localedef.c:138
msgid "Comma-separated list of warnings to enable; supported warnings are: ascii, intcurrsym"
msgstr ""
-#: locale/programs/localedef.c:135
+#: locale/programs/localedef.c:141
msgid "Archive control:"
msgstr ""
-#: locale/programs/localedef.c:137
+#: locale/programs/localedef.c:143
msgid "Don't add new data to archive"
msgstr ""
-#: locale/programs/localedef.c:139
+#: locale/programs/localedef.c:145
msgid "Add locales named by parameters to archive"
msgstr ""
-#: locale/programs/localedef.c:140
+#: locale/programs/localedef.c:146
msgid "Replace existing archive content"
msgstr ""
-#: locale/programs/localedef.c:142
+#: locale/programs/localedef.c:148
msgid "Remove locales named by parameters from archive"
msgstr ""
-#: locale/programs/localedef.c:143
+#: locale/programs/localedef.c:149
msgid "List content of archive"
msgstr ""
-#: locale/programs/localedef.c:145
+#: locale/programs/localedef.c:151
msgid "locale.alias file to consult when making archive"
msgstr ""
-#: locale/programs/localedef.c:147
+#: locale/programs/localedef.c:153
msgid "Generate little-endian output"
msgstr ""
-#: locale/programs/localedef.c:149
+#: locale/programs/localedef.c:155
msgid "Generate big-endian output"
msgstr ""
-#: locale/programs/localedef.c:154
+#: locale/programs/localedef.c:160
msgid "Compile locale specification"
msgstr "Μεταγλωττισμός Ï€ÏοδιαγÏαφών τοπικών Ïυθμίσεων"
-#: locale/programs/localedef.c:157
+#: locale/programs/localedef.c:163
msgid ""
"NAME\n"
"[--add-to-archive|--delete-from-archive] FILE...\n"
"--list-archive [FILE]"
msgstr ""
-#: locale/programs/localedef.c:232
+#: locale/programs/localedef.c:238
#, fuzzy, c-format
#| msgid "cannot open output file"
msgid "cannot create directory for output files"
msgstr "αδυναμία ανοίγματος αÏχείου εξόδου"
-#: locale/programs/localedef.c:243
+#: locale/programs/localedef.c:249
msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
msgstr "ΜΟΙΡΑΙΟ: το σÏστημα δεν οÏίζει το `_POSIX2_LOCALEDEF'"
-#: locale/programs/localedef.c:257 locale/programs/localedef.c:273
-#: locale/programs/localedef.c:663 locale/programs/localedef.c:683
+#: locale/programs/localedef.c:263 locale/programs/localedef.c:279
+#: locale/programs/localedef.c:673 locale/programs/localedef.c:693
#, c-format
msgid "cannot open locale definition file `%s'"
msgstr "αδυναμία ανοίγματος αÏχείου οÏÎ¹ÏƒÎ¼Î¿Ï locale `%s'"
-#: locale/programs/localedef.c:297
+#: locale/programs/localedef.c:303
#, c-format
msgid "cannot write output files to `%s'"
msgstr "αδυναμία εγγÏαφής αÏχείων εξόδου στο `%s'"
-#: locale/programs/localedef.c:303
+#: locale/programs/localedef.c:309
#, fuzzy
#| msgid "no output file produced because warning were issued"
msgid "no output file produced because errors were issued"
msgstr "δεν παÏάχθηκε αÏχείο εξόδου επειδή εκδόθηκαν Ï€Ïοειδοποιήσεις"
-#: locale/programs/localedef.c:431
+#: locale/programs/localedef.c:441
#, fuzzy, c-format
#| msgid ""
#| "System's directory for character maps : %s\n"
@@ -2888,11 +2879,11 @@ msgstr ""
" μονοπάτι τοπικών Ïυθμίσεων: %s\n"
"%s"
-#: locale/programs/localedef.c:631
+#: locale/programs/localedef.c:641
msgid "circular dependencies between locale definitions"
msgstr ""
-#: locale/programs/localedef.c:637
+#: locale/programs/localedef.c:647
#, c-format
msgid "cannot add already read locale `%s' a second time"
msgstr ""
@@ -3061,27 +3052,27 @@ msgstr "αδυναμία ανοίγματος αÏχείου εξόδο `%s' γÎ
msgid "failure while writing data for category `%s'"
msgstr "αποτυχία κατά την εγγÏαφή δεδομένων για την κατηγοÏία `%s'"
-#: locale/programs/locfile.c:917
+#: locale/programs/locfile.c:930
#, fuzzy, c-format
#| msgid "cannot open output file `%s' for category `%s'"
msgid "cannot create output file `%s' for category `%s'"
msgstr "αδυναμία ανοίγματος αÏχείου εξόδο `%s' για την κατηγοÏία `%s'"
-#: locale/programs/locfile.c:953
+#: locale/programs/locfile.c:966
#, fuzzy
#| msgid "expect string argument for `copy'"
msgid "expecting string argument for `copy'"
msgstr "αναμενόταν αλυσίδα χαÏακτήÏων για `copy'"
-#: locale/programs/locfile.c:957
+#: locale/programs/locfile.c:970
msgid "locale name should consist only of portable characters"
msgstr ""
-#: locale/programs/locfile.c:976
+#: locale/programs/locfile.c:989
msgid "no other keyword shall be specified when `copy' is used"
msgstr "καμιά άλλη λέξη κλειδί δεν θα Ï€Ïέπει να καθοÏίζεται όταν χÏησιμοποιείται το `copy'"
-#: locale/programs/locfile.c:990
+#: locale/programs/locfile.c:1003
#, c-format
msgid "`%1$s' definition does not end with `END %1$s'"
msgstr "Ο οÏισμός `%1$s' δεν τελειώνει με `END %1$s'"
@@ -3898,12 +3889,12 @@ msgstr "yp_update: αδυναμία μετατÏοπής ονόματος συσ
msgid "yp_update: cannot get server address\n"
msgstr "yp_update: αδυναμία λήψης διεÏθυνσης διακομιστή\n"
-#: nscd/aicache.c:83 nscd/hstcache.c:452
+#: nscd/aicache.c:82 nscd/hstcache.c:452
#, c-format
msgid "Haven't found \"%s\" in hosts cache!"
msgstr "Δε βÏέθηκε το \"%s\" στην λανθάνουσα μνήμη συστημάτων!"
-#: nscd/aicache.c:85 nscd/hstcache.c:454
+#: nscd/aicache.c:84 nscd/hstcache.c:454
#, fuzzy, c-format
#| msgid "Haven't found \"%s\" in hosts cache!"
msgid "Reloading \"%s\" in hosts cache!"
@@ -4242,25 +4233,25 @@ msgstr ""
msgid "no more memory for database '%s'"
msgstr "Δεν υπάÏχουν άλλες καταχωÏίσεις στο χάÏτη της βάσης δεδομένων"
-#: nscd/netgroupcache.c:121
+#: nscd/netgroupcache.c:122
#, fuzzy, c-format
#| msgid "Haven't found \"%s\" in group cache!"
msgid "Haven't found \"%s\" in netgroup cache!"
msgstr "Δε βÏέθηκε το \"%s\" στην λανθάνουσα μνήμη ομάδας!"
-#: nscd/netgroupcache.c:123
+#: nscd/netgroupcache.c:124
#, fuzzy, c-format
#| msgid "Haven't found \"%s\" in group cache!"
msgid "Reloading \"%s\" in netgroup cache!"
msgstr "Δε βÏέθηκε το \"%s\" στην λανθάνουσα μνήμη ομάδας!"
-#: nscd/netgroupcache.c:469
+#: nscd/netgroupcache.c:470
#, fuzzy, c-format
#| msgid "Haven't found \"%s\" in group cache!"
msgid "Haven't found \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr "Δε βÏέθηκε το \"%s\" στην λανθάνουσα μνήμη ομάδας!"
-#: nscd/netgroupcache.c:472
+#: nscd/netgroupcache.c:473
#, fuzzy, c-format
#| msgid "Haven't found \"%s\" in group cache!"
msgid "Reloading \"%s (%s,%s,%s)\" in netgroup cache!"
@@ -4316,7 +4307,7 @@ msgstr "ΧÏήση ξεχωÏιστής λανθάνουσας μνήμης γι
msgid "Name Service Cache Daemon."
msgstr "Λανθάνουσα ΥπηÏεσία ΕξυπηÏέτησης Αντιστοιχιών Ονομάτων."
-#: nscd/nscd.c:155 nss/getent.c:967 nss/makedb.c:206
+#: nscd/nscd.c:155 nss/getent.c:987 nss/makedb.c:206
#, c-format
msgid "wrong number of arguments"
msgstr "λάθος αÏιθμός παÏαμέτÏων"
@@ -4427,27 +4418,27 @@ msgstr "Σφάλμα επεξεÏγασίας: %s"
msgid "Must specify user name for server-user option"
msgstr ""
-#: nscd/nscd_conf.c:198
+#: nscd/nscd_conf.c:201
#, c-format
msgid "Must specify user name for stat-user option"
msgstr ""
-#: nscd/nscd_conf.c:255
+#: nscd/nscd_conf.c:259
#, c-format
msgid "Must specify value for restart-interval option"
msgstr ""
-#: nscd/nscd_conf.c:269
+#: nscd/nscd_conf.c:273
#, c-format
msgid "Unknown option: %s %s %s"
msgstr "Άγνωστη επιλογή: %s %s %s"
-#: nscd/nscd_conf.c:282
+#: nscd/nscd_conf.c:286
#, c-format
msgid "cannot get current working directory: %s; disabling paranoia mode"
msgstr ""
-#: nscd/nscd_conf.c:302
+#: nscd/nscd_conf.c:306
#, c-format
msgid "maximum file size for %s database too small"
msgstr ""
@@ -4709,52 +4700,52 @@ msgstr "Δε βÏέθηκε το \"%s\" στην λανθάνουσα μνήμη
msgid "Reloading \"%s\" in services cache!"
msgstr "Δε βÏέθηκε το \"%s\" στην λανθάνουσα μνήμη συστημάτων!"
-#: nss/getent.c:54
+#: nss/getent.c:55
msgid "database [key ...]"
msgstr "βάση_δεδομένων [κλειδί ...]"
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "CONFIG"
msgstr ""
-#: nss/getent.c:59
+#: nss/getent.c:60
#, fuzzy
#| msgid "Print current configuration statistic"
msgid "Service configuration to be used"
msgstr "Εμφάνιση στατιστικών των Ï„Ïεχουσών Ïυθμίσεων"
-#: nss/getent.c:60
+#: nss/getent.c:61
msgid "disable IDN encoding"
msgstr ""
-#: nss/getent.c:65
+#: nss/getent.c:66
#, fuzzy
#| msgid "getent - get entries from administrative database."
msgid "Get entries from administrative database."
msgstr "getent - λήψη καταχωÏήσεων από διαχειÏηστική βάση."
-#: nss/getent.c:149 nss/getent.c:442 nss/getent.c:489
+#: nss/getent.c:150 nss/getent.c:462 nss/getent.c:509
#, fuzzy, c-format
msgid "Enumeration not supported on %s\n"
msgstr "Η λειτουÏγία δεν υποστηÏίζεται"
-#: nss/getent.c:497 nss/getent.c:510
+#: nss/getent.c:517 nss/getent.c:530
#, fuzzy, c-format
#| msgid "Could not create log file \"%s\""
msgid "Could not allocate group list: %m\n"
msgstr "ΑδÏνατη η δημιουÏγία αÏχείου καταγÏαφών \"%s\""
-#: nss/getent.c:881
+#: nss/getent.c:901
#, fuzzy, c-format
#| msgid "Unknown database: %s\n"
msgid "Unknown database name"
msgstr "Άγνωστη βάση δεδομένων: %s\n"
-#: nss/getent.c:911
+#: nss/getent.c:931
msgid "Supported databases:\n"
msgstr ""
-#: nss/getent.c:977
+#: nss/getent.c:997
#, c-format
msgid "Unknown database: %s\n"
msgstr "Άγνωστη βάση δεδομένων: %s\n"
@@ -5022,11 +5013,11 @@ msgstr "Î Î¿Î»Ï Î¼ÎµÎ³Î¬Î»Î· κανονική έκφÏαση"
msgid "Unmatched ) or \\)"
msgstr "ΑταίÏιαστο ) ή \\)"
-#: posix/regcomp.c:689
+#: posix/regcomp.c:676
msgid "No previous regular expression"
msgstr "Δεν υπάÏχει Ï€ÏοηγοÏμενη κανονική έκφÏαση"
-#: posix/wordexp.c:1815
+#: posix/wordexp.c:1816
msgid "parameter null or not set"
msgstr ""
@@ -5249,7 +5240,7 @@ msgstr "Δεν υπάÏχει διαθέσιμος χώÏος ενταμίευσ
msgid "Input message available"
msgstr "Δεν υπάÏχει διαθέσιμος χώÏος ενταμίευσης"
-#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:381 timezone/zic.c:520
+#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:375 timezone/zic.c:561
msgid "I/O error"
msgstr "Σφάλμα εισόδου/εξόδου"
@@ -5339,7 +5330,7 @@ msgstr "Άγνωστο σήμα %d"
#: sunrpc/auth_unix.c:112 sunrpc/clnt_tcp.c:124 sunrpc/clnt_udp.c:139
#: sunrpc/clnt_unix.c:125 sunrpc/svc_tcp.c:189 sunrpc/svc_tcp.c:233
#: sunrpc/svc_udp.c:161 sunrpc/svc_unix.c:189 sunrpc/svc_unix.c:229
-#: sunrpc/xdr.c:628 sunrpc/xdr.c:788 sunrpc/xdr_array.c:102
+#: sunrpc/xdr.c:631 sunrpc/xdr.c:791 sunrpc/xdr_array.c:102
#: sunrpc/xdr_rec.c:153 sunrpc/xdr_ref.c:79
#, fuzzy
msgid "out of memory\n"
@@ -6607,56 +6598,69 @@ msgid "You really blew it this time"
msgstr "ΠÏαγματικά την έκανες αυτή τη φοÏά"
#. TRANS Go home and have a glass of warm, dairy-fresh milk.
-#: sysdeps/gnu/errlist.c:978
+#. TRANS @c Okay. Since you are dying to know, I'll tell you.
+#. TRANS @c This is a joke, obviously. There is a children's song which begins,
+#. TRANS @c "Old McDonald had a farm, e-i-e-i-o." Every time I see the (real)
+#. TRANS @c errno macro EIO, I think about that song. Probably most of my
+#. TRANS @c compatriots who program on Unix do, too. One of them must have stayed
+#. TRANS @c up a little too late one night and decided to add it to Hurd or Glibc.
+#. TRANS @c Whoever did it should be castigated, but it made me laugh.
+#. TRANS @c --jtobey@channel1.com
+#. TRANS @c
+#. TRANS @c "bought the farm" means "died". -jtobey
+#. TRANS @c
+#. TRANS @c Translators, please do not translate this litteraly, translate it into
+#. TRANS @c an idiomatic funny way of saying that the computer died.
+#: sysdeps/gnu/errlist.c:991
msgid "Computer bought the farm"
msgstr "Ο υπολογιστής πήγε για βÏοÏβες"
#. TRANS This error code has no purpose.
-#: sysdeps/gnu/errlist.c:987
+#: sysdeps/gnu/errlist.c:1000
msgid "Gratuitous error"
msgstr "Αδικαιολόγητο λάθος"
-#: sysdeps/gnu/errlist.c:995
+#: sysdeps/gnu/errlist.c:1008
msgid "Bad message"
msgstr "Εσφαλμένο μήνυμα"
-#: sysdeps/gnu/errlist.c:1003
+#: sysdeps/gnu/errlist.c:1016
msgid "Identifier removed"
msgstr "ΠÏοσδιοÏιστής αφαιÏέθηκε"
-#: sysdeps/gnu/errlist.c:1011
+#: sysdeps/gnu/errlist.c:1024
msgid "Multihop attempted"
msgstr "ΠÏοσπάθεια multihop"
-#: sysdeps/gnu/errlist.c:1019
+#: sysdeps/gnu/errlist.c:1032
msgid "No data available"
msgstr "Δεν υπάÏχουν διαθέσιμα δεδομένα"
-#: sysdeps/gnu/errlist.c:1027
+#: sysdeps/gnu/errlist.c:1040
msgid "Link has been severed"
msgstr "Ο σÏνδεσμος έσπασε"
-#: sysdeps/gnu/errlist.c:1035
+#: sysdeps/gnu/errlist.c:1048
msgid "No message of desired type"
msgstr "Κανένα μήνυμα ÎµÏ€Î¹Î¸Ï…Î¼Î·Ï„Î¿Ï Ï„Ïπου"
-#: sysdeps/gnu/errlist.c:1043
+#: sysdeps/gnu/errlist.c:1056
msgid "Out of streams resources"
msgstr "Δεν απομείναν πόÏοι Ïοής(streams)"
-#: sysdeps/gnu/errlist.c:1051
+#: sysdeps/gnu/errlist.c:1064
msgid "Device not a stream"
msgstr "Η συσκευή δεν είναι Ïοής"
-#: sysdeps/gnu/errlist.c:1059
+#: sysdeps/gnu/errlist.c:1072
msgid "Value too large for defined data type"
msgstr "Η τιμή είναι Ï€Î¿Î»Ï Î¼ÎµÎ³Î¬Î»Î· για καθοÏισμένο Ï„Ïπο δεδομένων"
-#: sysdeps/gnu/errlist.c:1067
+#: sysdeps/gnu/errlist.c:1080
msgid "Protocol error"
msgstr "Σφάλμα Ï€Ïωτοκόλλου"
-#: sysdeps/gnu/errlist.c:1075
+#: sysdeps/gnu/errlist.c:1088
msgid "Timer expired"
msgstr "Ο χÏονομετÏητής έληξε"
@@ -6664,203 +6668,203 @@ msgstr "Ο χÏονομετÏητής έληξε"
#. TRANS completed. @xref{Asynchronous I/O}. When you call @code{aio_cancel},
#. TRANS the normal result is for the operations affected to complete with this
#. TRANS error; @pxref{Cancel AIO Operations}.
-#: sysdeps/gnu/errlist.c:1087
+#: sysdeps/gnu/errlist.c:1100
msgid "Operation canceled"
msgstr "Η λειτουÏγία ακυÏώθηκε"
-#: sysdeps/gnu/errlist.c:1095
+#: sysdeps/gnu/errlist.c:1108
msgid "Owner died"
msgstr ""
-#: sysdeps/gnu/errlist.c:1103
+#: sysdeps/gnu/errlist.c:1116
msgid "State not recoverable"
msgstr ""
-#: sysdeps/gnu/errlist.c:1111
+#: sysdeps/gnu/errlist.c:1124
msgid "Interrupted system call should be restarted"
msgstr "Η διακοπείσα κλήση συστήματος θα Ï€Ïέπει να επανακινηθεί"
-#: sysdeps/gnu/errlist.c:1119
+#: sysdeps/gnu/errlist.c:1132
msgid "Channel number out of range"
msgstr "Ο αÏιθμός των καναλιών είναι έξω από τα ÏŒÏια"
-#: sysdeps/gnu/errlist.c:1127
+#: sysdeps/gnu/errlist.c:1140
msgid "Level 2 not synchronized"
msgstr "Επίπεδο 2 δεν συγχÏονίστηκε"
-#: sysdeps/gnu/errlist.c:1135
+#: sysdeps/gnu/errlist.c:1148
msgid "Level 3 halted"
msgstr "Επίπεδο 3 σταμάτησε"
-#: sysdeps/gnu/errlist.c:1143
+#: sysdeps/gnu/errlist.c:1156
msgid "Level 3 reset"
msgstr "Επίπεδο 3 επαναφέÏθηκε"
-#: sysdeps/gnu/errlist.c:1151
+#: sysdeps/gnu/errlist.c:1164
msgid "Link number out of range"
msgstr "Ο αÏιθμός σÏνδεσμου είναι έξω από το ÏŒÏιο"
-#: sysdeps/gnu/errlist.c:1159
+#: sysdeps/gnu/errlist.c:1172
msgid "Protocol driver not attached"
msgstr "Ο οδηγός Ï€Ïωτοκόλλου δεν έχει Ï€Ïοσκολληθεί"
-#: sysdeps/gnu/errlist.c:1167
+#: sysdeps/gnu/errlist.c:1180
msgid "No CSI structure available"
msgstr "Δεν είναι διαθέσιμη η CSI δομή(structure)"
-#: sysdeps/gnu/errlist.c:1175
+#: sysdeps/gnu/errlist.c:1188
msgid "Level 2 halted"
msgstr "Επίπεδο 2 σταμάτησε"
-#: sysdeps/gnu/errlist.c:1183
+#: sysdeps/gnu/errlist.c:1196
msgid "Invalid exchange"
msgstr "Μη έγκυÏη ανταλλαγή"
-#: sysdeps/gnu/errlist.c:1191
+#: sysdeps/gnu/errlist.c:1204
msgid "Invalid request descriptor"
msgstr "Μη έγκυÏος πεÏιγÏαφέας αίτησης"
-#: sysdeps/gnu/errlist.c:1199
+#: sysdeps/gnu/errlist.c:1212
msgid "Exchange full"
msgstr "Ανταλλαγή πλήÏης"
-#: sysdeps/gnu/errlist.c:1207
+#: sysdeps/gnu/errlist.c:1220
msgid "No anode"
msgstr "Κανένα anode"
-#: sysdeps/gnu/errlist.c:1215
+#: sysdeps/gnu/errlist.c:1228
msgid "Invalid request code"
msgstr "Μη έγκυÏος κώδικας αίτησης"
-#: sysdeps/gnu/errlist.c:1223
+#: sysdeps/gnu/errlist.c:1236
msgid "Invalid slot"
msgstr "Μη έγκυÏη οπή"
-#: sysdeps/gnu/errlist.c:1231
+#: sysdeps/gnu/errlist.c:1244
msgid "File locking deadlock error"
msgstr "Το κλείδωμα αÏχείου κατέληξε σε σφάλμα αδιεξόδου"
-#: sysdeps/gnu/errlist.c:1239
+#: sysdeps/gnu/errlist.c:1252
msgid "Bad font file format"
msgstr "Εσφαλμένη διαμόÏφωση αÏχείου γÏαμματοσειÏάς"
-#: sysdeps/gnu/errlist.c:1247
+#: sysdeps/gnu/errlist.c:1260
msgid "Machine is not on the network"
msgstr "Το μηχάνημα δεν είναι στο δίκτυο"
-#: sysdeps/gnu/errlist.c:1255
+#: sysdeps/gnu/errlist.c:1268
msgid "Package not installed"
msgstr "Το πακέτο δεν εγκαταστάθηκε"
-#: sysdeps/gnu/errlist.c:1263
+#: sysdeps/gnu/errlist.c:1276
msgid "Advertise error"
msgstr "Σφάλμα διαφήμισης"
-#: sysdeps/gnu/errlist.c:1271
+#: sysdeps/gnu/errlist.c:1284
msgid "Srmount error"
msgstr "Σφάλμα srmount"
-#: sysdeps/gnu/errlist.c:1279
+#: sysdeps/gnu/errlist.c:1292
msgid "Communication error on send"
msgstr "Σφάλμα επικοινωνίας κατά την αποστολή"
-#: sysdeps/gnu/errlist.c:1287
+#: sysdeps/gnu/errlist.c:1300
msgid "RFS specific error"
msgstr "ΣυγκεκÏιμένο με RFS σφάλμα"
-#: sysdeps/gnu/errlist.c:1295
+#: sysdeps/gnu/errlist.c:1308
msgid "Name not unique on network"
msgstr "Το όνομα δεν είναι μοναδικό στο δίκτυο"
-#: sysdeps/gnu/errlist.c:1303
+#: sysdeps/gnu/errlist.c:1316
msgid "File descriptor in bad state"
msgstr "Ο πεÏιγÏαφέας αÏχείου σε κακή κατάσταση"
-#: sysdeps/gnu/errlist.c:1311
+#: sysdeps/gnu/errlist.c:1324
msgid "Remote address changed"
msgstr "Η απομακÏυσμένη διεÏθυνση άλλαξε"
-#: sysdeps/gnu/errlist.c:1319
+#: sysdeps/gnu/errlist.c:1332
msgid "Can not access a needed shared library"
msgstr "Δεν είναι δυνατή η Ï€Ïοσπέλαση μιας αναγκαίας διαμοιÏαζόμενης βιβλιοθήκης"
-#: sysdeps/gnu/errlist.c:1327
+#: sysdeps/gnu/errlist.c:1340
msgid "Accessing a corrupted shared library"
msgstr "ΠÏοσπελαÏνεται μια κατεστÏαμμένη διαμοιÏαζόμενη βιβλιοθήκη"
-#: sysdeps/gnu/errlist.c:1335
+#: sysdeps/gnu/errlist.c:1348
msgid ".lib section in a.out corrupted"
msgstr "Το τμήμα .lib στο a.out είναι κατεστÏαμμένο"
-#: sysdeps/gnu/errlist.c:1343
+#: sysdeps/gnu/errlist.c:1356
msgid "Attempting to link in too many shared libraries"
msgstr "ΠÏοσπάθεια σÏνδεσης σε πάÏα πολλές διαμοιÏαζόμενες βιβλιοθήκες"
-#: sysdeps/gnu/errlist.c:1351
+#: sysdeps/gnu/errlist.c:1364
msgid "Cannot exec a shared library directly"
msgstr "Δεν είναι δυνατή η άμεση εκτέλεση διαμοιÏαζόμενης βιβλιοθήκης"
-#: sysdeps/gnu/errlist.c:1359
+#: sysdeps/gnu/errlist.c:1372
msgid "Streams pipe error"
msgstr "Σφάλμα σωλήνωσης Ïοής"
-#: sysdeps/gnu/errlist.c:1367
+#: sysdeps/gnu/errlist.c:1380
msgid "Structure needs cleaning"
msgstr "Η δομή χÏειάζεται καθάÏισμα"
-#: sysdeps/gnu/errlist.c:1375
+#: sysdeps/gnu/errlist.c:1388
msgid "Not a XENIX named type file"
msgstr "Δεν είναι XENIX Ï„Ïπος επώνυμου αÏχείου"
-#: sysdeps/gnu/errlist.c:1383
+#: sysdeps/gnu/errlist.c:1396
msgid "No XENIX semaphores available"
msgstr "Δεν είναι διαθέσιμοι οι XENIX σημαφόÏοι"
-#: sysdeps/gnu/errlist.c:1391
+#: sysdeps/gnu/errlist.c:1404
msgid "Is a named type file"
msgstr "Είναι ένα επώνυμο είδος αÏχείου"
-#: sysdeps/gnu/errlist.c:1399
+#: sysdeps/gnu/errlist.c:1412
msgid "Remote I/O error"
msgstr "ΑπομακÏυσμένο σφάλμα εισόδου/εξόδου"
-#: sysdeps/gnu/errlist.c:1407
+#: sysdeps/gnu/errlist.c:1420
msgid "No medium found"
msgstr "Δεν βÏέθηκε μέσο"
-#: sysdeps/gnu/errlist.c:1415
+#: sysdeps/gnu/errlist.c:1428
msgid "Wrong medium type"
msgstr "Εσφαλμένο είδος μέσου"
-#: sysdeps/gnu/errlist.c:1423
+#: sysdeps/gnu/errlist.c:1436
#, fuzzy
#| msgid "Resource temporarily unavailable"
msgid "Required key not available"
msgstr "Ο πόÏος είναι Ï€ÏοσωÏινά μη διαθέσιμος"
-#: sysdeps/gnu/errlist.c:1431
+#: sysdeps/gnu/errlist.c:1444
#, fuzzy
#| msgid "Cache expired"
msgid "Key has expired"
msgstr "Τα πεÏιεχόμενα της λανθάνουσας μνήμης έληξαν"
-#: sysdeps/gnu/errlist.c:1439
+#: sysdeps/gnu/errlist.c:1452
#, fuzzy
#| msgid "Link has been severed"
msgid "Key has been revoked"
msgstr "Ο σÏνδεσμος έσπασε"
-#: sysdeps/gnu/errlist.c:1447
+#: sysdeps/gnu/errlist.c:1460
msgid "Key was rejected by service"
msgstr ""
-#: sysdeps/gnu/errlist.c:1455
+#: sysdeps/gnu/errlist.c:1468
#, fuzzy
#| msgid "Operation not applicable"
msgid "Operation not possible due to RF-kill"
msgstr "Η λειτουÏγία δεν είναι εφαÏμόσιμη"
-#: sysdeps/gnu/errlist.c:1463
+#: sysdeps/gnu/errlist.c:1476
msgid "Memory page has hardware error"
msgstr ""
@@ -6997,27 +7001,27 @@ msgstr ""
msgid "can't disable CET"
msgstr ""
-#: timezone/zdump.c:338
+#: timezone/zdump.c:332
msgid "has fewer than 3 characters"
msgstr ""
-#: timezone/zdump.c:340
+#: timezone/zdump.c:334
msgid "has more than 6 characters"
msgstr ""
-#: timezone/zdump.c:342
+#: timezone/zdump.c:336
msgid "has characters other than ASCII alphanumerics, '-' or '+'"
msgstr ""
-#: timezone/zdump.c:347
+#: timezone/zdump.c:341
#, c-format
msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n"
msgstr ""
-#: timezone/zdump.c:393
+#: timezone/zdump.c:387
#, c-format
msgid ""
-"%s: usage: %s OPTIONS ZONENAME ...\n"
+"%s: usage: %s OPTIONS TIMEZONE ...\n"
"Options include:\n"
" -c [L,]U Start at year L (default -500), end before year U (default 2500)\n"
" -t [L,]U Start at time L, end before time U (in seconds since 1970)\n"
@@ -7030,53 +7034,59 @@ msgid ""
"Report bugs to %s.\n"
msgstr ""
-#: timezone/zdump.c:479
+#: timezone/zdump.c:473
#, fuzzy, c-format
#| msgid "%s: Too many arguments\n"
msgid "%s: wild -c argument %s\n"
msgstr "%s: ΠάÏα πολλά οÏίσματα\n"
-#: timezone/zdump.c:512
+#: timezone/zdump.c:506
#, fuzzy, c-format
#| msgid "%s: Too many arguments\n"
msgid "%s: wild -t argument %s\n"
msgstr "%s: ΠάÏα πολλά οÏίσματα\n"
-#: timezone/zic.c:398
+#: timezone/zic.c:429
#, c-format
msgid "%s: Memory exhausted: %s\n"
msgstr "%s: Η μνήμη εξαντλήθηκε: %s\n"
-#: timezone/zic.c:406
+#: timezone/zic.c:437
#, fuzzy
#| msgid "time overflow"
msgid "size overflow"
msgstr "υπεÏχείλιση ÏŽÏας"
-#: timezone/zic.c:454
+#: timezone/zic.c:447
+#, fuzzy
+#| msgid "time overflow"
+msgid "alignment overflow"
+msgstr "υπεÏχείλιση ÏŽÏας"
+
+#: timezone/zic.c:495
#, fuzzy
#| msgid "time overflow"
msgid "integer overflow"
msgstr "υπεÏχείλιση ÏŽÏας"
-#: timezone/zic.c:488
+#: timezone/zic.c:529
#, fuzzy, c-format
#| msgid "\"%s\", line %d: %s"
msgid "\"%s\", line %<PRIdMAX>: "
msgstr "\"%s\", γÏαμμή %d: %s"
-#: timezone/zic.c:491
+#: timezone/zic.c:532
#, fuzzy, c-format
#| msgid " (rule from \"%s\", line %d)"
msgid " (rule from \"%s\", line %<PRIdMAX>)"
msgstr " (κανόνας από \"%s\", γÏαμμή %d)"
-#: timezone/zic.c:510
+#: timezone/zic.c:551
#, c-format
msgid "warning: "
msgstr "Ï€Ïοειδοποίηση: "
-#: timezone/zic.c:535
+#: timezone/zic.c:576
#, fuzzy, c-format
#| msgid ""
#| "%s: usage is %s [ -s ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n"
@@ -7084,410 +7094,431 @@ msgstr "Ï€Ïοειδοποίηση: "
msgid ""
"%s: usage is %s [ --version ] [ --help ] [ -v ] \\\n"
"\t[ -l localtime ] [ -p posixrules ] [ -d directory ] \\\n"
-"\t[ -L leapseconds ] [ filename ... ]\n"
+"\t[ -t localtime-link ] [ -L leapseconds ] [ filename ... ]\n"
"\n"
"Report bugs to %s.\n"
msgstr ""
"%s: η χÏήση είναι %s [ -s ] [ -v ] [ -l τοπική ÏŽÏα ] [ -p κανόνες posix ] \\\n"
"\t[ -d κατάλογος ] [ -L δευτεÏόλεπτα αναπήδησης ] [ -y Ï„Ïπος έτους ] [ αÏχείο ... ]\n"
-#: timezone/zic.c:558
+#: timezone/zic.c:599
#, fuzzy, c-format
#| msgid "%s: Can't create %s: %s\n"
msgid "%s: Can't chdir to %s: %s\n"
msgstr "%s: Δεν είναι δυνατόν να δημιουÏγηθεί %s: %s\n"
-#: timezone/zic.c:590
+#: timezone/zic.c:632
msgid "wild compilation-time specification of zic_t"
msgstr ""
-#: timezone/zic.c:610
+#: timezone/zic.c:652
#, c-format
msgid "%s: More than one -d option specified\n"
msgstr "%s: ΠεÏισσότεÏες από μία -d επιλογές καθοÏίστηκαν\n"
-#: timezone/zic.c:620
+#: timezone/zic.c:662
#, c-format
msgid "%s: More than one -l option specified\n"
msgstr "%s: ΠεÏισσότεÏες από μία -l επιλογές καθοÏίστηκαν\n"
-#: timezone/zic.c:630
+#: timezone/zic.c:672
#, c-format
msgid "%s: More than one -p option specified\n"
msgstr "%s: ΠεÏισσότεÏες από μία -p επιλογές καθοÏίστηκαν\n"
-#: timezone/zic.c:640
+#: timezone/zic.c:680
+#, fuzzy, c-format
+#| msgid "%s: More than one -L option specified\n"
+msgid "%s: More than one -t option specified\n"
+msgstr "%s: ΠεÏισσότεÏες από μία -L επιλογές καθοÏίστηκαν\n"
+
+#: timezone/zic.c:689
+msgid "-y is obsolescent"
+msgstr ""
+
+#: timezone/zic.c:693
#, c-format
msgid "%s: More than one -y option specified\n"
msgstr "%s: ΠεÏισσότεÏες από μία -y επιλογές καθοÏίστηκαν\n"
-#: timezone/zic.c:650
+#: timezone/zic.c:703
#, c-format
msgid "%s: More than one -L option specified\n"
msgstr "%s: ΠεÏισσότεÏες από μία -L επιλογές καθοÏίστηκαν\n"
-#: timezone/zic.c:659
+#: timezone/zic.c:712
msgid "-s ignored"
msgstr ""
-#: timezone/zic.c:698
+#: timezone/zic.c:753
msgid "link to link"
msgstr ""
-#: timezone/zic.c:701 timezone/zic.c:705
+#: timezone/zic.c:756 timezone/zic.c:760
#, fuzzy
#| msgid "Too many links"
msgid "command line"
msgstr "ΥπεÏβολικά πολλοί σÏνδεσμοι"
-#: timezone/zic.c:721
+#: timezone/zic.c:776
#, fuzzy
#| msgid "Bad file number"
msgid "empty file name"
msgstr "Εσφαλμένος αÏιθμός αÏχείου"
-#: timezone/zic.c:724
+#: timezone/zic.c:779
#, c-format
msgid "file name '%s' begins with '/'"
msgstr ""
-#: timezone/zic.c:734
+#: timezone/zic.c:789
#, c-format
msgid "file name '%s' contains '%.*s' component"
msgstr ""
-#: timezone/zic.c:740
+#: timezone/zic.c:795
#, c-format
msgid "file name '%s' component contains leading '-'"
msgstr ""
-#: timezone/zic.c:743
+#: timezone/zic.c:798
#, c-format
msgid "file name '%s' contains overlength component '%.*s...'"
msgstr ""
-#: timezone/zic.c:771
+#: timezone/zic.c:826
#, c-format
msgid "file name '%s' contains byte '%c'"
msgstr ""
-#: timezone/zic.c:772
+#: timezone/zic.c:827
#, c-format
msgid "file name '%s' contains byte '\\%o'"
msgstr ""
-#: timezone/zic.c:842
+#: timezone/zic.c:897
#, fuzzy, c-format
#| msgid "%s: Can't link from %s to %s: %s\n"
msgid "%s: link from %s/%s failed: %s\n"
msgstr "%s: Δεν είναι δυνατόν να συνδεθεί το %s με το %s: %s\n"
-#: timezone/zic.c:852 timezone/zic.c:1815
+#: timezone/zic.c:907 timezone/zic.c:1876
#, fuzzy, c-format
#| msgid "%s: Can't remove %s: %s\n"
msgid "%s: Can't remove %s/%s: %s\n"
msgstr "%s: Δεν είναι δυνατόν να αφαιÏεθεί το %s: %s\n"
-#: timezone/zic.c:874
+#: timezone/zic.c:931
#, c-format
msgid "symbolic link used because hard link failed: %s"
msgstr ""
-#: timezone/zic.c:882
+#: timezone/zic.c:939
#, fuzzy, c-format
#| msgid "%s: Can't create %s: %s\n"
msgid "%s: Can't read %s/%s: %s\n"
msgstr "%s: Δεν είναι δυνατόν να δημιουÏγηθεί %s: %s\n"
-#: timezone/zic.c:889 timezone/zic.c:1828
+#: timezone/zic.c:946 timezone/zic.c:1889
#, fuzzy, c-format
#| msgid "%s: Can't create %s: %s\n"
msgid "%s: Can't create %s/%s: %s\n"
msgstr "%s: Δεν είναι δυνατόν να δημιουÏγηθεί %s: %s\n"
-#: timezone/zic.c:898
+#: timezone/zic.c:955
#, c-format
msgid "copy used because hard link failed: %s"
msgstr ""
-#: timezone/zic.c:901
+#: timezone/zic.c:958
#, c-format
msgid "copy used because symbolic link failed: %s"
msgstr ""
-#: timezone/zic.c:1013 timezone/zic.c:1015
+#: timezone/zic.c:1032 timezone/zic.c:1034
msgid "same rule name in multiple files"
msgstr "ο ίδιος κανόνας σε πολλαπλά αÏχεία"
-#: timezone/zic.c:1056
-msgid "unruly zone"
-msgstr "άτακτη ζώνη"
-
-#: timezone/zic.c:1063
+#: timezone/zic.c:1081
#, c-format
msgid "%s in ruleless zone"
msgstr "%s σε ακανόνιστη ζώνη"
-#: timezone/zic.c:1083
+#: timezone/zic.c:1101
msgid "standard input"
msgstr "κανονική είσοδος"
-#: timezone/zic.c:1088
+#: timezone/zic.c:1106
#, c-format
msgid "%s: Can't open %s: %s\n"
msgstr "%s: Δεν είναι δυνατόν να ανοιχτεί το %s: %s\n"
-#: timezone/zic.c:1099
+#: timezone/zic.c:1117
msgid "line too long"
msgstr "Ï€Î¿Î»Ï Î¼ÎµÎ³Î¬Î»Î· γÏαμμή"
-#: timezone/zic.c:1119
+#: timezone/zic.c:1139
msgid "input line of unknown type"
msgstr "γÏαμμή εισαγωγής αγνώστου Ï„Ïπου"
-#: timezone/zic.c:1134
-#, fuzzy, c-format
-#| msgid "%s: Leap line in non leap seconds file %s\n"
-msgid "%s: Leap line in non leap seconds file %s"
-msgstr "%s: ΓÏαμμή αναπήδησης(leap) στο αÏχείο μη αναπήδησης δευτεÏολέπτων %s\n"
-
-#: timezone/zic.c:1142 timezone/zic.c:1547 timezone/zic.c:1569
+#: timezone/zic.c:1158 timezone/zic.c:1593 timezone/zic.c:1615
#, c-format
msgid "%s: panic: Invalid l_value %d\n"
msgstr "%s: πανικός: Μη έγκυÏη l_value %d\n"
-#: timezone/zic.c:1151
+#: timezone/zic.c:1167
msgid "expected continuation line not found"
msgstr "αναμενόταν γÏαμμή παÏάτασης και δεν βÏέθηκε"
-#: timezone/zic.c:1193 timezone/zic.c:2976
+#: timezone/zic.c:1203
+msgid "fractional seconds rejected by pre-2018 versions of zic"
+msgstr ""
+
+#: timezone/zic.c:1221 timezone/zic.c:3078
msgid "time overflow"
msgstr "υπεÏχείλιση ÏŽÏας"
-#: timezone/zic.c:1198
+#: timezone/zic.c:1227
msgid "values over 24 hours not handled by pre-2007 versions of zic"
msgstr ""
-#: timezone/zic.c:1209
+#: timezone/zic.c:1245
+msgid "invalid saved time"
+msgstr "μη έγκυÏη σωσμένη ÏŽÏα"
+
+#: timezone/zic.c:1256
msgid "wrong number of fields on Rule line"
msgstr "λάθος αÏιθμός πεδίων στη γÏαμμή Rule"
-#: timezone/zic.c:1213
-msgid "nameless rule"
-msgstr "κανόνας χωÏίς όνομα"
-
-#: timezone/zic.c:1218
-msgid "invalid saved time"
-msgstr "μη έγκυÏη σωσμένη ÏŽÏα"
+#: timezone/zic.c:1265
+#, fuzzy, c-format
+#| msgid "Invalid argument"
+msgid "Invalid rule name \"%s\""
+msgstr "Μη έγκυÏη παÏάμετÏος"
-#: timezone/zic.c:1235
+#: timezone/zic.c:1287
msgid "wrong number of fields on Zone line"
msgstr "λάθος αÏιθμός πεδίων στη γÏαμμή Zone"
-#: timezone/zic.c:1240
+#: timezone/zic.c:1292
#, c-format
msgid "\"Zone %s\" line and -l option are mutually exclusive"
msgstr "\"Ζώνη %s\" γÏαμμή και επιλογή -l είναι αμοιβαίως αποκλειόμενα"
-#: timezone/zic.c:1246
+#: timezone/zic.c:1298
#, c-format
msgid "\"Zone %s\" line and -p option are mutually exclusive"
msgstr "\"Ζώνη %s\" γÏαμμή και επιλογή -p είναι αμοιβαίως αποκλειόμενα"
-#: timezone/zic.c:1253
+#: timezone/zic.c:1305
#, fuzzy, c-format
#| msgid "duplicate zone name %s (file \"%s\", line %d)"
msgid "duplicate zone name %s (file \"%s\", line %<PRIdMAX>)"
msgstr "διπλό όνομα ζώνης %s (αÏχείο \"%s\", γÏαμμή %d)"
-#: timezone/zic.c:1267
+#: timezone/zic.c:1319
msgid "wrong number of fields on Zone continuation line"
msgstr "λάθος αÏιθμός πεδίων στη γÏαμμή παÏάτασης Zone"
-#: timezone/zic.c:1307
+#: timezone/zic.c:1359
#, fuzzy
#| msgid "invalid UTC offset"
msgid "invalid UT offset"
msgstr "μη έγκυÏη μετατόπιση UTC"
-#: timezone/zic.c:1311
+#: timezone/zic.c:1363
msgid "invalid abbreviation format"
msgstr "μη έγκυÏη διαμόÏφωση συντόμευσης"
-#: timezone/zic.c:1320
+#: timezone/zic.c:1372
#, c-format
msgid "format '%s' not handled by pre-2015 versions of zic"
msgstr ""
-#: timezone/zic.c:1347
+#: timezone/zic.c:1399
msgid "Zone continuation line end time is not after end time of previous line"
msgstr "Ο χÏόνος τέλους της γÏαμμής συνέχισης της ζώνης δεν είναι μετά από το χÏόνο τέλους της Ï€ÏοηγοÏμενης γÏαμμής"
-#: timezone/zic.c:1374
+#: timezone/zic.c:1426
msgid "wrong number of fields on Leap line"
msgstr "λάθος αÏιθμός πεδίων στη γÏαμμή Leap"
-#: timezone/zic.c:1383
+#: timezone/zic.c:1435
msgid "invalid leaping year"
msgstr "μη έγκυÏος χÏόνος αναπήδης"
-#: timezone/zic.c:1403 timezone/zic.c:1501
+#: timezone/zic.c:1455 timezone/zic.c:1547
msgid "invalid month name"
msgstr "μη έγκυÏο όνομα μήνα"
-#: timezone/zic.c:1416 timezone/zic.c:1614 timezone/zic.c:1628
+#: timezone/zic.c:1468 timezone/zic.c:1663 timezone/zic.c:1677
msgid "invalid day of month"
msgstr "μη έγκυÏη μέÏα του μήνα"
-#: timezone/zic.c:1421
+#: timezone/zic.c:1473
msgid "time too small"
msgstr ""
-#: timezone/zic.c:1425
+#: timezone/zic.c:1477
#, fuzzy
#| msgid "File too large"
msgid "time too large"
msgstr "Î Î¿Î»Ï Î¼ÎµÎ³Î¬Î»Î¿ αÏχείο"
-#: timezone/zic.c:1429 timezone/zic.c:1530
+#: timezone/zic.c:1481 timezone/zic.c:1576
msgid "invalid time of day"
msgstr "μη έγκυÏη ÏŽÏα της μέÏας"
-#: timezone/zic.c:1448
+#: timezone/zic.c:1494
msgid "illegal CORRECTION field on Leap line"
msgstr "μη έγκυÏο CORRECTION πεδίο στη γÏαμμή αναπήδησης (Leap)"
-#: timezone/zic.c:1453
+#: timezone/zic.c:1499
msgid "illegal Rolling/Stationary field on Leap line"
msgstr "μη έγκυÏο Rolling/Stationary πεδίο στη γÏαμμή αναπήδησης (Leap)"
-#: timezone/zic.c:1459
-msgid "leap second precedes Big Bang"
+#: timezone/zic.c:1505
+msgid "leap second precedes Epoch"
msgstr ""
-#: timezone/zic.c:1472
+#: timezone/zic.c:1518
msgid "wrong number of fields on Link line"
msgstr "λάθος αÏιθμός πεδίων στη γÏαμμή Link"
-#: timezone/zic.c:1476
+#: timezone/zic.c:1522
msgid "blank FROM field on Link line"
msgstr "Λευκό πεδίο FROM σε γÏαμμή Link"
-#: timezone/zic.c:1551
+#: timezone/zic.c:1597
msgid "invalid starting year"
msgstr "μη έγκυÏος χÏόνος έναÏξης"
-#: timezone/zic.c:1573
+#: timezone/zic.c:1619
msgid "invalid ending year"
msgstr "μη έγκυÏος χÏόνος λήξης"
-#: timezone/zic.c:1577
+#: timezone/zic.c:1623
msgid "starting year greater than ending year"
msgstr "το έτος έναÏξης είναι μεγαλÏτεÏος το έτος τεÏματισμοÏ"
-#: timezone/zic.c:1584
+#: timezone/zic.c:1630
msgid "typed single year"
msgstr "τυπώθηκε απλός χÏόνος"
-#: timezone/zic.c:1619
+#: timezone/zic.c:1633
+#, c-format
+msgid "year type \"%s\" is obsolete; use \"-\" instead"
+msgstr ""
+
+#: timezone/zic.c:1668
msgid "invalid weekday name"
msgstr "μη έγκυÏο όνομα εβδομάδας"
-#: timezone/zic.c:1743
+#: timezone/zic.c:1800
#, c-format
msgid "reference clients mishandle more than %d transition times"
msgstr ""
-#: timezone/zic.c:1747
+#: timezone/zic.c:1804
msgid "pre-2014 clients may mishandle more than 1200 transition times"
msgstr ""
-#: timezone/zic.c:1858
+#: timezone/zic.c:1920
#, fuzzy
#| msgid "too many transitions?!"
msgid "too many transition times"
msgstr "υπεÏβολικά πολλές μεταβάσεις;!"
-#: timezone/zic.c:2047
+#: timezone/zic.c:2107
#, c-format
-msgid "%%z UTC offset magnitude exceeds 99:59:59"
+msgid "%%z UT offset magnitude exceeds 99:59:59"
msgstr ""
-#: timezone/zic.c:2424
+#: timezone/zic.c:2488
msgid "no POSIX environment variable for zone"
msgstr ""
-#: timezone/zic.c:2430
+#: timezone/zic.c:2494
#, c-format
msgid "%s: pre-%d clients may mishandle distant timestamps"
msgstr ""
-#: timezone/zic.c:2566
+#: timezone/zic.c:2631
msgid "two rules for same instant"
msgstr ""
-#: timezone/zic.c:2627
+#: timezone/zic.c:2696
msgid "can't determine time zone abbreviation to use just after until time"
msgstr ""
"δεν είναι δυνατόν να καθοÏιστεί η συντόμευση της ζώνης ÏŽÏας για\n"
"να χÏησιμοποιηθεί αμέσως μετά το 'until time'"
-#: timezone/zic.c:2725
+#: timezone/zic.c:2785
msgid "too many local time types"
msgstr "υποÏβολικά πολλοί Ï„Ïποι τοπικής ÏŽÏας"
-#: timezone/zic.c:2729
+#: timezone/zic.c:2789
#, fuzzy
#| msgid "Link number out of range"
msgid "UT offset out of range"
msgstr "Ο αÏιθμός σÏνδεσμου είναι έξω από το ÏŒÏιο"
-#: timezone/zic.c:2753
+#: timezone/zic.c:2813
msgid "too many leap seconds"
msgstr "υπεÏβολικά πολλά δευτεÏόλεπτα αναπήδησης"
-#: timezone/zic.c:2759
-msgid "repeated leap second moment"
-msgstr "repeated leap second moment"
+#: timezone/zic.c:2844
+msgid "Leap seconds too close together"
+msgstr ""
-#: timezone/zic.c:2830
+#: timezone/zic.c:2891
msgid "Wild result from command execution"
msgstr "ΑγÏιο αποτέλεσμα από την εκτέλεση της εντολής"
-#: timezone/zic.c:2831
+#: timezone/zic.c:2892
#, c-format
msgid "%s: command was '%s', result was %d\n"
msgstr "%s: η εντολή ήταν '%s', το αποτέλεσμα ήταν %d\n"
-#: timezone/zic.c:2961
+#: timezone/zic.c:2998
+#, c-format
+msgid "\"%s\" is undocumented; use \"last%s\" instead"
+msgstr ""
+
+#: timezone/zic.c:3029
+#, c-format
+msgid "\"%s\" is ambiguous in pre-2017c zic"
+msgstr ""
+
+#: timezone/zic.c:3063
msgid "Odd number of quotation marks"
msgstr "ΠεÏιττός αÏιθμός εισαγωγικών"
-#: timezone/zic.c:3046
+#: timezone/zic.c:3157
msgid "use of 2/29 in non leap-year"
msgstr "χÏήση του 2/29 σε χÏόνο μη δίσεκτο"
-#: timezone/zic.c:3081
+#: timezone/zic.c:3192
msgid "rule goes past start/end of month; will not work with pre-2004 versions of zic"
msgstr ""
-#: timezone/zic.c:3108
+#: timezone/zic.c:3219
msgid "time zone abbreviation has fewer than 3 characters"
msgstr ""
-#: timezone/zic.c:3110
+#: timezone/zic.c:3221
msgid "time zone abbreviation has too many characters"
msgstr ""
-#: timezone/zic.c:3112
+#: timezone/zic.c:3223
msgid "time zone abbreviation differs from POSIX standard"
msgstr ""
-#: timezone/zic.c:3118
+#: timezone/zic.c:3229
msgid "too many, or too long, time zone abbreviations"
msgstr "υπεÏβολικά πολλές, ή Ï€Î¿Î»Ï Î¼Î±ÎºÏές, συντομεÏσεις ζώνης ÏŽÏας"
-#: timezone/zic.c:3161
+#: timezone/zic.c:3275
#, fuzzy, c-format
#| msgid "%s: Can't create directory %s: %s\n"
msgid "%s: Can't create directory %s: %s"
@@ -7532,6 +7563,9 @@ msgstr "%s: Δεν είναι δυνατόν να δημιουÏγηθεί ο κ
#~ msgid "%s: Error writing %s\n"
#~ msgstr "%s: Σφάλμα κατά την εγγÏαφή του %s\n"
+#~ msgid "%s: Leap line in non leap seconds file %s\n"
+#~ msgstr "%s: ΓÏαμμή αναπήδησης(leap) στο αÏχείο μη αναπήδησης δευτεÏολέπτων %s\n"
+
#, fuzzy
#~ msgid "%s: character `%s' not defined in charmap while needed as default value"
#~ msgstr "ο χαÏακτήÏας `%s' δεν οÏίστηκε ενώ χÏειάζεται σαν Ï€ÏοκαθοÏισμένη τιμή"
@@ -7822,6 +7856,10 @@ msgstr "%s: Δεν είναι δυνατόν να δημιουÏγηθεί ο κ
#~ msgid "cannot load shared object file"
#~ msgstr "αποτυχία φόÏτωσης διαμοιÏαζομένου αντικειμένου `%s'"
+#, fuzzy
+#~ msgid "cannot open zero fill device"
+#~ msgstr "αδυναμία ανοίγματος αÏχείου εξόδου"
+
#~ msgid "cannot stat() file `%s': %s"
#~ msgstr "αδυναμία Ï€Ïοσπέλασης(stat()) αÏχείου `%s': %s"
@@ -7855,6 +7893,9 @@ msgstr "%s: Δεν είναι δυνατόν να δημιουÏγηθεί ο κ
#~ msgid "internal error - addtype called with bad ttisstd"
#~ msgstr "εσωτεÏικό σφάλμα - κλήθηκε η addtype με κακό ttisstd"
+#~ msgid "nameless rule"
+#~ msgstr "κανόνας χωÏίς όνομα"
+
#~ msgid "neither original nor target encoding specified"
#~ msgstr "δεν έχει οÏιστεί οÏτε αÏχική οÏτε τελική κωδικοποίηση"
@@ -7876,6 +7917,9 @@ msgstr "%s: Δεν είναι δυνατόν να δημιουÏγηθεί ο κ
#~ msgid "program %lu version %lu ready and waiting\n"
#~ msgstr "το Ï€ÏόγÏαμμα %lu έκδοσης %lu έτοιμο και αναμένει\n"
+#~ msgid "repeated leap second moment"
+#~ msgstr "repeated leap second moment"
+
#~ msgid "rpcinfo: %s is unknown host\n"
#~ msgstr "rpcinfo: %s είναι άγνωστο σÏστημα\n"
@@ -7918,6 +7962,9 @@ msgstr "%s: Δεν είναι δυνατόν να δημιουÏγηθεί ο κ
#~ msgid "time before zero"
#~ msgstr "ÏŽÏα Ï€Ïιν το μηδέν"
+#~ msgid "unruly zone"
+#~ msgstr "άτακτη ζώνη"
+
#, fuzzy
#~ msgid "upper limit in range is not higher then lower limit"
#~ msgstr "το επάνω ÏŒÏιο στο πεδίο δεν είναι μικÏότεÏο του κάτω οÏίου"
diff --git a/po/eo.po b/po/eo.po
index 3bf53951d5..04db60cd7a 100644
--- a/po/eo.po
+++ b/po/eo.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libc 2.19.90\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-07-26 22:19-0400\n"
+"POT-Creation-Date: 2019-07-18 13:28-0400\n"
"PO-Revision-Date: 2014-08-31 23:02+0200\n"
"Last-Translator: Benno Schulenberg <benno@vertaalt.nl>\n"
"Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
@@ -153,10 +153,10 @@ msgstr ""
"[ELIGDOSIERO [ENIGDOSIERO...]]"
#: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:308
-#: elf/pldd.c:252 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
-#: iconv/iconvconfig.c:379 locale/programs/locale.c:275
-#: locale/programs/localedef.c:427 login/programs/pt_chown.c:89
-#: malloc/memusagestat.c:563 nss/getent.c:933 nss/makedb.c:369
+#: elf/pldd.c:247 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
+#: iconv/iconvconfig.c:379 locale/programs/locale.c:276
+#: locale/programs/localedef.c:437 login/programs/pt_chown.c:89
+#: malloc/memusagestat.c:563 nss/getent.c:953 nss/makedb.c:369
#: posix/getconf.c:503 sysdeps/unix/sysv/linux/lddlibc4.c:61
#, c-format
msgid ""
@@ -167,11 +167,11 @@ msgstr ""
" %s.\n"
#: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64
-#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75
+#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:263 elf/sotruss.sh:75
#: elf/sprof.c:389 iconv/iconv_prog.c:422 iconv/iconvconfig.c:396
-#: locale/programs/locale.c:292 locale/programs/localedef.c:453
+#: locale/programs/locale.c:293 locale/programs/localedef.c:463
#: login/programs/pt_chown.c:63 malloc/memusage.sh:71
-#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:87 nss/makedb.c:385
+#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:88 nss/makedb.c:385
#: posix/getconf.c:485 sysdeps/unix/sysv/linux/lddlibc4.c:68
#, c-format
msgid ""
@@ -184,10 +184,10 @@ msgstr ""
"DoniÄas NENIA GARANTIO; eĉ ne por KOMERCKVALITO aÅ­ ADEKVATECO POR IU CELO.\n"
#: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68
-#: elf/ldconfig.c:329 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:427
-#: iconv/iconvconfig.c:401 locale/programs/locale.c:297
-#: locale/programs/localedef.c:458 malloc/memusage.sh:75
-#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:92 nss/makedb.c:390
+#: elf/ldconfig.c:329 elf/pldd.c:268 elf/sprof.c:395 iconv/iconv_prog.c:427
+#: iconv/iconvconfig.c:401 locale/programs/locale.c:298
+#: locale/programs/localedef.c:468 malloc/memusage.sh:75
+#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:93 nss/makedb.c:390
#: posix/getconf.c:490
#, c-format
msgid "Written by %s.\n"
@@ -259,21 +259,21 @@ msgid "invalid escape sequence"
msgstr "nevalida stirkodo"
# SIGTERM 15 Term Termination signal
-#: catgets/gencat.c:1209
+#: catgets/gencat.c:1211
msgid "unterminated message"
msgstr "nefinita mesaÄo"
-#: catgets/gencat.c:1233
+#: catgets/gencat.c:1235
#, c-format
msgid "while opening old catalog file"
msgstr "dum malfermo de malnova katalogdosiero"
-#: catgets/gencat.c:1324
+#: catgets/gencat.c:1326
#, c-format
msgid "conversion modules not available"
msgstr "konvertmoduloj ne disponeblas"
-#: catgets/gencat.c:1350
+#: catgets/gencat.c:1352
#, c-format
msgid "cannot determine escape character"
msgstr "ne eblas eltrovi kodÅanÄan signon"
@@ -390,7 +390,7 @@ msgstr "Nekonata mastrumsistemo"
msgid ", OS ABI: %s %d.%d.%d"
msgstr ", mastruma ABI-o: %s %d.%d.%d"
-#: elf/cache.c:163 elf/ldconfig.c:1332
+#: elf/cache.c:163 elf/ldconfig.c:1333
#, c-format
msgid "Can't open cache file %s\n"
msgstr "Ne eblas malfermi kaÅmemoran dosieron %s\n"
@@ -400,38 +400,38 @@ msgstr "Ne eblas malfermi kaÅmemoran dosieron %s\n"
msgid "mmap of cache file failed.\n"
msgstr "Malsukcesis enmemorigo de kaÅmemora dosiero.\n"
-#: elf/cache.c:181 elf/cache.c:195
+#: elf/cache.c:181 elf/cache.c:195 elf/cache.c:205
#, c-format
msgid "File is not a cache file.\n"
msgstr "Dosiero ne estas kaÅmemora dosiero.\n"
-#: elf/cache.c:228 elf/cache.c:238
+#: elf/cache.c:233 elf/cache.c:243
#, c-format
msgid "%d libs found in cache `%s'\n"
msgstr "%d bibliotekoj troviÄis en kaÅmemoro '%s'\n"
-#: elf/cache.c:432
+#: elf/cache.c:437
#, c-format
msgid "Can't create temporary cache file %s"
msgstr "Ne eblas krei provizoran kaÅmemoran dosieron %s"
-#: elf/cache.c:440 elf/cache.c:450 elf/cache.c:454 elf/cache.c:458
-#: elf/cache.c:468
+#: elf/cache.c:445 elf/cache.c:455 elf/cache.c:459 elf/cache.c:463
+#: elf/cache.c:473
#, c-format
msgid "Writing of cache data failed"
msgstr "Malsukcesis skribado de kaÅmemoraj datumoj"
-#: elf/cache.c:463
+#: elf/cache.c:468
#, c-format
msgid "Changing access rights of %s to %#o failed"
msgstr "Malsukcesis ÅanÄi la atingpermesojn por %s al %#o"
-#: elf/cache.c:472
+#: elf/cache.c:477
#, c-format
msgid "Renaming of %s to %s failed"
msgstr "Malsukcesis alinomi %s al %s"
-#: elf/dl-close.c:399 elf/dl-open.c:420
+#: elf/dl-close.c:399 elf/dl-open.c:424
msgid "cannot create scope list"
msgstr "ne eblas krei ampleksliston"
@@ -514,121 +514,121 @@ msgstr ""
msgid "cannot stat shared object"
msgstr "malsukcesis eltrovi statinformon pri komuna objekto"
-#: elf/dl-load.c:960
-msgid "cannot open zero fill device"
-msgstr ""
-
-#: elf/dl-load.c:1007 elf/dl-load.c:2203
+#: elf/dl-load.c:992 elf/dl-load.c:2198
msgid "cannot create shared object descriptor"
msgstr ""
-#: elf/dl-load.c:1026 elf/dl-load.c:1560 elf/dl-load.c:1673
+#: elf/dl-load.c:1011 elf/dl-load.c:1555 elf/dl-load.c:1668
msgid "cannot read file data"
msgstr "ne eblas legi dosierdatumojn"
-#: elf/dl-load.c:1072
+#: elf/dl-load.c:1057
msgid "ELF load command alignment not page-aligned"
msgstr ""
-#: elf/dl-load.c:1079
+#: elf/dl-load.c:1064
msgid "ELF load command address/offset not properly aligned"
msgstr ""
-#: elf/dl-load.c:1161
+#: elf/dl-load.c:1146
#, fuzzy
#| msgid "cannot read object name"
msgid "cannot process note segment"
msgstr "ne eblas legi objektnomon"
-#: elf/dl-load.c:1172
+#: elf/dl-load.c:1157
msgid "object file has no loadable segments"
msgstr ""
-#: elf/dl-load.c:1181 elf/dl-load.c:1652
+#: elf/dl-load.c:1170 elf/dl-load.c:1647
msgid "cannot dynamically load executable"
msgstr ""
-#: elf/dl-load.c:1202
+#: elf/dl-load.c:1191
msgid "object file has no dynamic section"
msgstr ""
-#: elf/dl-load.c:1225
+#: elf/dl-load.c:1218
+msgid "cannot dynamically load position-independent executable"
+msgstr ""
+
+#: elf/dl-load.c:1220
msgid "shared object cannot be dlopen()ed"
msgstr ""
-#: elf/dl-load.c:1238
+#: elf/dl-load.c:1233
msgid "cannot allocate memory for program header"
msgstr ""
-#: elf/dl-load.c:1271 elf/dl-load.h:130
+#: elf/dl-load.c:1266 elf/dl-load.h:130
msgid "cannot change memory protections"
msgstr ""
-#: elf/dl-load.c:1291
+#: elf/dl-load.c:1286
msgid "cannot enable executable stack as shared object requires"
msgstr ""
-#: elf/dl-load.c:1304
+#: elf/dl-load.c:1299
msgid "cannot close file descriptor"
msgstr "ne eblas fermi dosierpriaĵon"
-#: elf/dl-load.c:1560
+#: elf/dl-load.c:1555
msgid "file too short"
msgstr "dosiero tro mallongas"
-#: elf/dl-load.c:1595
+#: elf/dl-load.c:1590
msgid "invalid ELF header"
msgstr "nevalida ELF-ĉapo"
-#: elf/dl-load.c:1607
+#: elf/dl-load.c:1602
msgid "ELF file data encoding not big-endian"
msgstr ""
-#: elf/dl-load.c:1609
+#: elf/dl-load.c:1604
msgid "ELF file data encoding not little-endian"
msgstr ""
-#: elf/dl-load.c:1613
+#: elf/dl-load.c:1608
msgid "ELF file version ident does not match current one"
msgstr ""
-#: elf/dl-load.c:1617
+#: elf/dl-load.c:1612
msgid "ELF file OS ABI invalid"
msgstr ""
-#: elf/dl-load.c:1620
+#: elf/dl-load.c:1615
msgid "ELF file ABI version invalid"
msgstr ""
-#: elf/dl-load.c:1623
+#: elf/dl-load.c:1618
msgid "nonzero padding in e_ident"
msgstr ""
-#: elf/dl-load.c:1626
+#: elf/dl-load.c:1621
msgid "internal error"
msgstr "**interna programmiso**"
-#: elf/dl-load.c:1633
+#: elf/dl-load.c:1628
msgid "ELF file version does not match current one"
msgstr ""
-#: elf/dl-load.c:1641
+#: elf/dl-load.c:1636
msgid "only ET_DYN and ET_EXEC can be loaded"
msgstr ""
-#: elf/dl-load.c:1657
+#: elf/dl-load.c:1652
msgid "ELF file's phentsize not the expected size"
msgstr ""
-#: elf/dl-load.c:2222
+#: elf/dl-load.c:2217
msgid "wrong ELF class: ELFCLASS64"
msgstr "malÄusta ELF-klaso: ELFCLASS64"
-#: elf/dl-load.c:2223
+#: elf/dl-load.c:2218
msgid "wrong ELF class: ELFCLASS32"
msgstr "malÄusta ELF-klaso: ELFCLASS32"
-#: elf/dl-load.c:2226
+#: elf/dl-load.c:2221
msgid "cannot open shared object file"
msgstr "ne eblas malfermi komunan objektdosieron"
@@ -640,11 +640,7 @@ msgstr ""
msgid "cannot map zero-fill pages"
msgstr ""
-#: elf/dl-lookup.c:835
-msgid "relocation error"
-msgstr ""
-
-#: elf/dl-lookup.c:858
+#: elf/dl-lookup.c:830
msgid "symbol lookup error"
msgstr ""
@@ -652,19 +648,19 @@ msgstr ""
msgid "cannot extend global scope"
msgstr ""
-#: elf/dl-open.c:470
+#: elf/dl-open.c:474
msgid "TLS generation counter wrapped! Please report this."
msgstr ""
-#: elf/dl-open.c:534
+#: elf/dl-open.c:538
msgid "invalid mode for dlopen()"
msgstr "nevalida moduso por 'dlopen()'"
-#: elf/dl-open.c:551
+#: elf/dl-open.c:555
msgid "no more namespaces available for dlmopen()"
msgstr ""
-#: elf/dl-open.c:575
+#: elf/dl-open.c:579
msgid "invalid target namespace in dlmopen()"
msgstr ""
@@ -672,20 +668,20 @@ msgstr ""
msgid "cannot allocate memory in static TLS block"
msgstr ""
-#: elf/dl-reloc.c:205
+#: elf/dl-reloc.c:213
msgid "cannot make segment writable for relocation"
msgstr ""
-#: elf/dl-reloc.c:276
+#: elf/dl-reloc.c:272
#, c-format
msgid "%s: out of memory to store relocation results for %s\n"
msgstr ""
-#: elf/dl-reloc.c:292
+#: elf/dl-reloc.c:288
msgid "cannot restore segment prot after reloc"
msgstr ""
-#: elf/dl-reloc.c:323
+#: elf/dl-reloc.c:319
msgid "cannot apply additional memory protection after relocation"
msgstr ""
@@ -908,22 +904,22 @@ msgstr ""
msgid "memory exhausted"
msgstr "mankas sufiĉa memoro"
-#: elf/ldconfig.c:1233
+#: elf/ldconfig.c:1234
#, c-format
msgid "%s:%u: cannot read directory %s"
msgstr "%s:%u: ne eblas legi dosierujon %s"
-#: elf/ldconfig.c:1281
+#: elf/ldconfig.c:1282
#, c-format
msgid "relative path `%s' used to build cache"
msgstr "uziÄas relativa pado '%s' por krei kaÅmemoron"
-#: elf/ldconfig.c:1311
+#: elf/ldconfig.c:1312
#, c-format
msgid "Can't chdir to /"
msgstr "malsukcesis ÅanÄi aktualan dosierujon al «/»"
-#: elf/ldconfig.c:1352
+#: elf/ldconfig.c:1353
#, c-format
msgid "Can't open cache file directory %s\n"
msgstr "malsukcesis malfermi kaÅmemoran dosierujon %s\n"
@@ -986,96 +982,102 @@ msgstr "finis kun nekonata elirstato"
msgid "error: you do not have read permission for"
msgstr "eraro: vi ne havas permeson legi"
-#: elf/pldd-xx.c:105
+#: elf/pldd-xx.c:102
#, c-format
msgid "cannot find program header of process"
msgstr "ne eblas trovi programĉapon de procezo"
-#: elf/pldd-xx.c:110
+#: elf/pldd-xx.c:106
#, c-format
msgid "cannot read program header"
msgstr "ne eblas legi programĉapon"
-#: elf/pldd-xx.c:135
+#: elf/pldd-xx.c:128
#, c-format
msgid "cannot read dynamic section"
msgstr "ne eblas legi dinamikan sekcion"
-#: elf/pldd-xx.c:147
+#: elf/pldd-xx.c:137
#, c-format
msgid "cannot read r_debug"
msgstr "ne eblas legi 'r_debug'"
-#: elf/pldd-xx.c:167
+#: elf/pldd-xx.c:154
#, c-format
msgid "cannot read program interpreter"
msgstr "ne eblas legi programinterpretilon"
-#: elf/pldd-xx.c:197
+#: elf/pldd-xx.c:183
#, c-format
msgid "cannot read link map"
msgstr "ne eblas legi ligojmapon"
-#: elf/pldd-xx.c:209
+#: elf/pldd-xx.c:190
#, c-format
msgid "cannot read object name"
msgstr "ne eblas legi objektnomon"
-#: elf/pldd-xx.c:219
+#: elf/pldd-xx.c:197
#, fuzzy, c-format
#| msgid "unable to allocate buffer for input"
msgid "cannot allocate buffer for object name"
msgstr "mankas sufiĉa memoro por eniga bufro"
-#: elf/pldd.c:64
+#: elf/pldd.c:58
msgid "List dynamic shared objects loaded into process."
msgstr ""
-#: elf/pldd.c:68
+#: elf/pldd.c:62
msgid "PID"
msgstr ""
-#: elf/pldd.c:100
+#: elf/pldd.c:89
#, c-format
msgid "Exactly one parameter with process ID required.\n"
msgstr ""
-#: elf/pldd.c:112
+#: elf/pldd.c:103
#, c-format
msgid "invalid process ID '%s'"
msgstr "nevalida indiko de procezo: '%s'"
-#: elf/pldd.c:120
+#: elf/pldd.c:111
#, c-format
msgid "cannot open %s"
msgstr "ne eblas malfermi %s"
-#: elf/pldd.c:152
+#: elf/pldd.c:142
#, c-format
msgid "cannot open %s/task"
msgstr "ne eblas malfermi %s/task"
-#: elf/pldd.c:155
+#: elf/pldd.c:145
#, c-format
msgid "cannot prepare reading %s/task"
msgstr "ne eblas prepari legado de %s/task"
-#: elf/pldd.c:168
+#: elf/pldd.c:158
#, c-format
msgid "invalid thread ID '%s'"
msgstr ""
-#: elf/pldd.c:179
+#: elf/pldd.c:169
#, c-format
msgid "cannot attach to process %lu"
msgstr ""
-#: elf/pldd.c:294
+#: elf/pldd.c:184
+#, fuzzy, c-format
+#| msgid "invalid saved time"
+msgid "no valid %s/task entries"
+msgstr "nevalida konservita tempo"
+
+#: elf/pldd.c:290
#, c-format
msgid "cannot get information about process %lu"
msgstr "ne eblas ekhavi informon pri procezo %lu"
-#: elf/pldd.c:307
+#: elf/pldd.c:303
#, c-format
msgid "process %lu is no ELF program"
msgstr "procezo %lu ne estas ELF-programo"
@@ -1381,7 +1383,7 @@ msgstr "Informo:"
msgid "list all known coded character sets"
msgstr "listigi ĉiujn konatajn signarnomojn"
-#: iconv/iconv_prog.c:64 locale/programs/localedef.c:120
+#: iconv/iconv_prog.c:64 locale/programs/localedef.c:124
msgid "Output control:"
msgstr "Stiro de eligo:"
@@ -1390,8 +1392,8 @@ msgid "omit invalid characters from output"
msgstr "forlasi nevalidajn signojn de eligo"
#: iconv/iconv_prog.c:66 iconv/iconvconfig.c:128
-#: locale/programs/localedef.c:113 locale/programs/localedef.c:115
-#: locale/programs/localedef.c:117 locale/programs/localedef.c:144
+#: locale/programs/localedef.c:117 locale/programs/localedef.c:119
+#: locale/programs/localedef.c:121 locale/programs/localedef.c:150
#: malloc/memusagestat.c:56
msgid "FILE"
msgstr "DOSIERO"
@@ -1491,7 +1493,7 @@ msgstr ""
msgid "[DIR...]"
msgstr "[DOSIERUJO...]"
-#: iconv/iconvconfig.c:126 locale/programs/localedef.c:123
+#: iconv/iconvconfig.c:126 locale/programs/localedef.c:129
msgid "PATH"
msgstr ""
@@ -1675,14 +1677,14 @@ msgstr ""
#: locale/programs/charmap.c:503 locale/programs/charmap.c:557
#: locale/programs/charmap.c:589 locale/programs/charmap.c:683
-#: locale/programs/charmap.c:738 locale/programs/charmap.c:779
-#: locale/programs/charmap.c:820
+#: locale/programs/charmap.c:739 locale/programs/charmap.c:780
+#: locale/programs/charmap.c:821
#, c-format
msgid "syntax error in %s definition: %s"
msgstr "sintakseraro en %s-difino: %s"
#: locale/programs/charmap.c:504 locale/programs/charmap.c:684
-#: locale/programs/charmap.c:780 locale/programs/repertoire.c:229
+#: locale/programs/charmap.c:781 locale/programs/repertoire.c:229
msgid "no symbolic name given"
msgstr "ne indikatas simbola nomo"
@@ -1698,14 +1700,14 @@ msgstr "tro malmultaj da bajtoj en signokodo"
msgid "too many bytes in character encoding"
msgstr "tro multaj da bajtoj en signokodo"
-#: locale/programs/charmap.c:591 locale/programs/charmap.c:739
-#: locale/programs/charmap.c:822 locale/programs/repertoire.c:295
+#: locale/programs/charmap.c:591 locale/programs/charmap.c:740
+#: locale/programs/charmap.c:823 locale/programs/repertoire.c:295
msgid "no symbolic name given for end of range"
msgstr "ne indikatas simbola nomo por fino de gamo"
#: locale/programs/charmap.c:615 locale/programs/ld-address.c:524
#: locale/programs/ld-collate.c:2616 locale/programs/ld-collate.c:3774
-#: locale/programs/ld-ctype.c:2117 locale/programs/ld-ctype.c:2829
+#: locale/programs/ld-ctype.c:2118 locale/programs/ld-ctype.c:2830
#: locale/programs/ld-identification.c:397
#: locale/programs/ld-measurement.c:213 locale/programs/ld-messages.c:295
#: locale/programs/ld-monetary.c:748 locale/programs/ld-name.c:262
@@ -1720,60 +1722,60 @@ msgstr ""
msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
msgstr ""
-#: locale/programs/charmap.c:656 locale/programs/charmap.c:719
+#: locale/programs/charmap.c:656 locale/programs/charmap.c:720
#, c-format
msgid "value for %s must be an integer"
msgstr "valoro por %s devas esti entjero"
-#: locale/programs/charmap.c:847
+#: locale/programs/charmap.c:848
#, c-format
msgid "%s: error in state machine"
msgstr "%s: **interna programmiso** en statmaÅino"
-#: locale/programs/charmap.c:855 locale/programs/ld-address.c:540
+#: locale/programs/charmap.c:856 locale/programs/ld-address.c:540
#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967
-#: locale/programs/ld-ctype.c:2114 locale/programs/ld-ctype.c:2846
+#: locale/programs/ld-ctype.c:2115 locale/programs/ld-ctype.c:2847
#: locale/programs/ld-identification.c:413
#: locale/programs/ld-measurement.c:229 locale/programs/ld-messages.c:311
#: locale/programs/ld-monetary.c:764 locale/programs/ld-name.c:278
#: locale/programs/ld-numeric.c:341 locale/programs/ld-paper.c:228
#: locale/programs/ld-telephone.c:292 locale/programs/ld-time.c:990
-#: locale/programs/locfile.c:997 locale/programs/repertoire.c:323
+#: locale/programs/locfile.c:1010 locale/programs/repertoire.c:323
#, c-format
msgid "%s: premature end of file"
msgstr "%s: trofrua fino de dosiero"
-#: locale/programs/charmap.c:874 locale/programs/charmap.c:885
+#: locale/programs/charmap.c:875 locale/programs/charmap.c:886
#, c-format
msgid "unknown character `%s'"
msgstr "nekonata signo «%s»"
-#: locale/programs/charmap.c:893
+#: locale/programs/charmap.c:894
#, c-format
msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d"
msgstr ""
-#: locale/programs/charmap.c:998 locale/programs/ld-collate.c:2893
+#: locale/programs/charmap.c:999 locale/programs/ld-collate.c:2893
#: locale/programs/repertoire.c:418
msgid "invalid names for character range"
msgstr "nevalidaj nomoj por signogamo"
-#: locale/programs/charmap.c:1010 locale/programs/repertoire.c:430
+#: locale/programs/charmap.c:1011 locale/programs/repertoire.c:430
msgid "hexadecimal range format should use only capital characters"
msgstr "deksesuma gamo devus uzi nur majusklajn signojn"
-#: locale/programs/charmap.c:1028 locale/programs/repertoire.c:448
+#: locale/programs/charmap.c:1029 locale/programs/repertoire.c:448
#, c-format
msgid "<%s> and <%s> are invalid names for range"
msgstr "<%s> kaj <%s> estas nevalidaj nomoj por gamo"
# Taking a little liberty with the order.
-#: locale/programs/charmap.c:1034 locale/programs/repertoire.c:455
+#: locale/programs/charmap.c:1035 locale/programs/repertoire.c:455
msgid "upper limit in range is smaller than lower limit"
msgstr "suba limo en gamo pli grandas ol supra limo"
# FIXME: remove final period
-#: locale/programs/charmap.c:1092
+#: locale/programs/charmap.c:1093
msgid "resulting bytes for range not representable."
msgstr ""
@@ -1842,7 +1844,7 @@ msgid "%s: numeric country code `%d' not valid"
msgstr ""
#: locale/programs/ld-address.c:432 locale/programs/ld-address.c:469
-#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2478
+#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2479
#: locale/programs/ld-identification.c:309
#: locale/programs/ld-measurement.c:196 locale/programs/ld-messages.c:264
#: locale/programs/ld-monetary.c:503 locale/programs/ld-monetary.c:538
@@ -1865,7 +1867,7 @@ msgid "%s: unknown character in field `%s'"
msgstr ""
#: locale/programs/ld-address.c:521 locale/programs/ld-collate.c:3772
-#: locale/programs/ld-ctype.c:2826 locale/programs/ld-identification.c:394
+#: locale/programs/ld-ctype.c:2827 locale/programs/ld-identification.c:394
#: locale/programs/ld-measurement.c:210 locale/programs/ld-messages.c:293
#: locale/programs/ld-monetary.c:746 locale/programs/ld-name.c:260
#: locale/programs/ld-numeric.c:323 locale/programs/ld-paper.c:210
@@ -1878,8 +1880,8 @@ msgstr ""
#: locale/programs/ld-collate.c:602 locale/programs/ld-collate.c:898
#: locale/programs/ld-collate.c:911 locale/programs/ld-collate.c:2582
#: locale/programs/ld-collate.c:2603 locale/programs/ld-collate.c:3957
-#: locale/programs/ld-ctype.c:1846 locale/programs/ld-ctype.c:2104
-#: locale/programs/ld-ctype.c:2676 locale/programs/ld-ctype.c:2837
+#: locale/programs/ld-ctype.c:1847 locale/programs/ld-ctype.c:2105
+#: locale/programs/ld-ctype.c:2677 locale/programs/ld-ctype.c:2838
#: locale/programs/ld-identification.c:404
#: locale/programs/ld-measurement.c:220 locale/programs/ld-messages.c:302
#: locale/programs/ld-monetary.c:755 locale/programs/ld-name.c:269
@@ -2223,129 +2225,129 @@ msgstr ""
msgid "implementation limit: no more than %d character maps allowed"
msgstr ""
-#: locale/programs/ld-ctype.c:1434 locale/programs/ld-ctype.c:1559
-#: locale/programs/ld-ctype.c:1665 locale/programs/ld-ctype.c:2341
-#: locale/programs/ld-ctype.c:3299
+#: locale/programs/ld-ctype.c:1435 locale/programs/ld-ctype.c:1560
+#: locale/programs/ld-ctype.c:1666 locale/programs/ld-ctype.c:2342
+#: locale/programs/ld-ctype.c:3302
#, c-format
msgid "%s: field `%s' does not contain exactly ten entries"
msgstr ""
-#: locale/programs/ld-ctype.c:1462 locale/programs/ld-ctype.c:2036
+#: locale/programs/ld-ctype.c:1463 locale/programs/ld-ctype.c:2037
#, c-format
msgid "to-value <U%0*X> of range is smaller than from-value <U%0*X>"
msgstr ""
-#: locale/programs/ld-ctype.c:1589
+#: locale/programs/ld-ctype.c:1590
msgid "start and end character sequence of range must have the same length"
msgstr ""
-#: locale/programs/ld-ctype.c:1596
+#: locale/programs/ld-ctype.c:1597
msgid "to-value character sequence is smaller than from-value sequence"
msgstr ""
-#: locale/programs/ld-ctype.c:1956 locale/programs/ld-ctype.c:2007
+#: locale/programs/ld-ctype.c:1957 locale/programs/ld-ctype.c:2008
msgid "premature end of `translit_ignore' definition"
msgstr "trofrua fino de difino de 'translit_ignore'"
-#: locale/programs/ld-ctype.c:1962 locale/programs/ld-ctype.c:2013
-#: locale/programs/ld-ctype.c:2055
+#: locale/programs/ld-ctype.c:1963 locale/programs/ld-ctype.c:2014
+#: locale/programs/ld-ctype.c:2056
msgid "syntax error"
msgstr "sintakseraro"
-#: locale/programs/ld-ctype.c:2188
+#: locale/programs/ld-ctype.c:2189
#, c-format
msgid "%s: syntax error in definition of new character class"
msgstr ""
-#: locale/programs/ld-ctype.c:2203
+#: locale/programs/ld-ctype.c:2204
#, c-format
msgid "%s: syntax error in definition of new character map"
msgstr ""
-#: locale/programs/ld-ctype.c:2363
+#: locale/programs/ld-ctype.c:2364
msgid "ellipsis range must be marked by two operands of same type"
msgstr ""
-#: locale/programs/ld-ctype.c:2372
+#: locale/programs/ld-ctype.c:2373
msgid "with symbolic name range values the absolute ellipsis `...' must not be used"
msgstr ""
-#: locale/programs/ld-ctype.c:2387
+#: locale/programs/ld-ctype.c:2388
msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'"
msgstr ""
-#: locale/programs/ld-ctype.c:2401
+#: locale/programs/ld-ctype.c:2402
msgid "with character code range values one must use the absolute ellipsis `...'"
msgstr ""
-#: locale/programs/ld-ctype.c:2552
+#: locale/programs/ld-ctype.c:2553
#, c-format
msgid "duplicated definition for mapping `%s'"
msgstr ""
-#: locale/programs/ld-ctype.c:2638 locale/programs/ld-ctype.c:2782
+#: locale/programs/ld-ctype.c:2639 locale/programs/ld-ctype.c:2783
#, c-format
msgid "%s: `translit_start' section does not end with `translit_end'"
msgstr ""
-#: locale/programs/ld-ctype.c:2733
+#: locale/programs/ld-ctype.c:2734
#, c-format
msgid "%s: duplicate `default_missing' definition"
msgstr ""
-#: locale/programs/ld-ctype.c:2738
+#: locale/programs/ld-ctype.c:2739
msgid "previous definition was here"
msgstr ""
-#: locale/programs/ld-ctype.c:2760
+#: locale/programs/ld-ctype.c:2761
#, c-format
msgid "%s: no representable `default_missing' definition found"
msgstr ""
-#: locale/programs/ld-ctype.c:2877 locale/programs/ld-ctype.c:2973
-#: locale/programs/ld-ctype.c:2992 locale/programs/ld-ctype.c:3012
-#: locale/programs/ld-ctype.c:3032 locale/programs/ld-ctype.c:3052
-#: locale/programs/ld-ctype.c:3072 locale/programs/ld-ctype.c:3111
-#: locale/programs/ld-ctype.c:3131 locale/programs/ld-ctype.c:3195
-#: locale/programs/ld-ctype.c:3236 locale/programs/ld-ctype.c:3259
+#: locale/programs/ld-ctype.c:2878 locale/programs/ld-ctype.c:2974
+#: locale/programs/ld-ctype.c:2993 locale/programs/ld-ctype.c:3013
+#: locale/programs/ld-ctype.c:3033 locale/programs/ld-ctype.c:3053
+#: locale/programs/ld-ctype.c:3073 locale/programs/ld-ctype.c:3112
+#: locale/programs/ld-ctype.c:3132 locale/programs/ld-ctype.c:3198
+#: locale/programs/ld-ctype.c:3239 locale/programs/ld-ctype.c:3262
#, c-format
msgid "%s: character `%s' not defined while needed as default value"
msgstr ""
-#: locale/programs/ld-ctype.c:2882 locale/programs/ld-ctype.c:2978
-#: locale/programs/ld-ctype.c:2997 locale/programs/ld-ctype.c:3017
-#: locale/programs/ld-ctype.c:3037 locale/programs/ld-ctype.c:3057
-#: locale/programs/ld-ctype.c:3077 locale/programs/ld-ctype.c:3116
-#: locale/programs/ld-ctype.c:3136 locale/programs/ld-ctype.c:3200
+#: locale/programs/ld-ctype.c:2883 locale/programs/ld-ctype.c:2979
+#: locale/programs/ld-ctype.c:2998 locale/programs/ld-ctype.c:3018
+#: locale/programs/ld-ctype.c:3038 locale/programs/ld-ctype.c:3058
+#: locale/programs/ld-ctype.c:3078 locale/programs/ld-ctype.c:3117
+#: locale/programs/ld-ctype.c:3137 locale/programs/ld-ctype.c:3203
#, c-format
msgid "%s: character `%s' in charmap not representable with one byte"
msgstr ""
-#: locale/programs/ld-ctype.c:3242 locale/programs/ld-ctype.c:3265
+#: locale/programs/ld-ctype.c:3245 locale/programs/ld-ctype.c:3268
#, c-format
msgid "%s: character `%s' needed as default value not representable with one byte"
msgstr ""
-#: locale/programs/ld-ctype.c:3321
+#: locale/programs/ld-ctype.c:3324
msgid "no output digits defined and none of the standard names in the charmap"
msgstr ""
-#: locale/programs/ld-ctype.c:3570
+#: locale/programs/ld-ctype.c:3573
#, c-format
msgid "%s: transliteration data from locale `%s' not available"
msgstr ""
-#: locale/programs/ld-ctype.c:3669
+#: locale/programs/ld-ctype.c:3672
#, c-format
msgid "%s: table for class \"%s\": %lu bytes"
msgstr ""
-#: locale/programs/ld-ctype.c:3733
+#: locale/programs/ld-ctype.c:3736
#, c-format
msgid "%s: table for map \"%s\": %lu bytes"
msgstr ""
-#: locale/programs/ld-ctype.c:3857
+#: locale/programs/ld-ctype.c:3860
#, c-format
msgid "%s: table for width: %lu bytes"
msgstr ""
@@ -2584,153 +2586,147 @@ msgid ""
"[-a|-m]"
msgstr ""
-#: locale/programs/locale.c:190
-#, c-format
-msgid "Cannot set LC_CTYPE to default locale"
-msgstr ""
-
-#: locale/programs/locale.c:192
+#: locale/programs/locale.c:522
#, c-format
-msgid "Cannot set LC_MESSAGES to default locale"
-msgstr ""
-
-#: locale/programs/locale.c:205
-#, c-format
-msgid "Cannot set LC_COLLATE to default locale"
+msgid "while preparing output"
msgstr ""
-#: locale/programs/locale.c:221
+#: locale/programs/locale.c:998
#, c-format
-msgid "Cannot set LC_ALL to default locale"
+msgid "Cannot set %s to default locale"
msgstr ""
-#: locale/programs/locale.c:521
+#: locale/programs/locale.c:1096
#, c-format
-msgid "while preparing output"
+msgid "warning: The LOCPATH variable is set to \"%s\"\n"
msgstr ""
-#: locale/programs/localedef.c:112
+#: locale/programs/localedef.c:116
msgid "Input Files:"
msgstr ""
-#: locale/programs/localedef.c:114
+#: locale/programs/localedef.c:118
msgid "Symbolic character names defined in FILE"
msgstr ""
-#: locale/programs/localedef.c:116
+#: locale/programs/localedef.c:120
msgid "Source definitions are found in FILE"
msgstr ""
-#: locale/programs/localedef.c:118
+#: locale/programs/localedef.c:122
msgid "FILE contains mapping from symbolic names to UCS4 values"
msgstr ""
-#: locale/programs/localedef.c:122
+#: locale/programs/localedef.c:126
msgid "Create output even if warning messages were issued"
msgstr ""
-#: locale/programs/localedef.c:123
+#: locale/programs/localedef.c:128
+msgid "Do not create hard links between installed locales"
+msgstr ""
+
+#: locale/programs/localedef.c:129
msgid "Optional output file prefix"
msgstr ""
-#: locale/programs/localedef.c:124
+#: locale/programs/localedef.c:130
msgid "Strictly conform to POSIX"
msgstr ""
-#: locale/programs/localedef.c:126
+#: locale/programs/localedef.c:132
msgid "Suppress warnings and information messages"
msgstr ""
-#: locale/programs/localedef.c:127
+#: locale/programs/localedef.c:133
msgid "Print more messages"
msgstr ""
-#: locale/programs/localedef.c:128 locale/programs/localedef.c:131
+#: locale/programs/localedef.c:134 locale/programs/localedef.c:137
#, fuzzy
#| msgid "warning: "
msgid "<warnings>"
msgstr "averto: "
-#: locale/programs/localedef.c:129
+#: locale/programs/localedef.c:135
msgid "Comma-separated list of warnings to disable; supported warnings are: ascii, intcurrsym"
msgstr ""
-#: locale/programs/localedef.c:132
+#: locale/programs/localedef.c:138
msgid "Comma-separated list of warnings to enable; supported warnings are: ascii, intcurrsym"
msgstr ""
-#: locale/programs/localedef.c:135
+#: locale/programs/localedef.c:141
msgid "Archive control:"
msgstr ""
-#: locale/programs/localedef.c:137
+#: locale/programs/localedef.c:143
msgid "Don't add new data to archive"
msgstr ""
-#: locale/programs/localedef.c:139
+#: locale/programs/localedef.c:145
msgid "Add locales named by parameters to archive"
msgstr ""
-#: locale/programs/localedef.c:140
+#: locale/programs/localedef.c:146
msgid "Replace existing archive content"
msgstr ""
-#: locale/programs/localedef.c:142
+#: locale/programs/localedef.c:148
msgid "Remove locales named by parameters from archive"
msgstr ""
-#: locale/programs/localedef.c:143
+#: locale/programs/localedef.c:149
msgid "List content of archive"
msgstr ""
-#: locale/programs/localedef.c:145
+#: locale/programs/localedef.c:151
msgid "locale.alias file to consult when making archive"
msgstr ""
-#: locale/programs/localedef.c:147
+#: locale/programs/localedef.c:153
msgid "Generate little-endian output"
msgstr ""
-#: locale/programs/localedef.c:149
+#: locale/programs/localedef.c:155
msgid "Generate big-endian output"
msgstr ""
-#: locale/programs/localedef.c:154
+#: locale/programs/localedef.c:160
msgid "Compile locale specification"
msgstr ""
-#: locale/programs/localedef.c:157
+#: locale/programs/localedef.c:163
msgid ""
"NAME\n"
"[--add-to-archive|--delete-from-archive] FILE...\n"
"--list-archive [FILE]"
msgstr ""
-#: locale/programs/localedef.c:232
+#: locale/programs/localedef.c:238
#, c-format
msgid "cannot create directory for output files"
msgstr ""
-#: locale/programs/localedef.c:243
+#: locale/programs/localedef.c:249
msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
msgstr ""
-#: locale/programs/localedef.c:257 locale/programs/localedef.c:273
-#: locale/programs/localedef.c:663 locale/programs/localedef.c:683
+#: locale/programs/localedef.c:263 locale/programs/localedef.c:279
+#: locale/programs/localedef.c:673 locale/programs/localedef.c:693
#, c-format
msgid "cannot open locale definition file `%s'"
msgstr ""
-#: locale/programs/localedef.c:297
+#: locale/programs/localedef.c:303
#, fuzzy, c-format
msgid "cannot write output files to `%s'"
msgstr "ne eblas skribi eligajn dosierojn al '%s'"
-#: locale/programs/localedef.c:303
+#: locale/programs/localedef.c:309
msgid "no output file produced because errors were issued"
msgstr ""
-#: locale/programs/localedef.c:431
+#: locale/programs/localedef.c:441
#, c-format
msgid ""
"System's directory for character maps : %s\n"
@@ -2739,11 +2735,11 @@ msgid ""
"%s"
msgstr ""
-#: locale/programs/localedef.c:631
+#: locale/programs/localedef.c:641
msgid "circular dependencies between locale definitions"
msgstr ""
-#: locale/programs/localedef.c:637
+#: locale/programs/localedef.c:647
#, c-format
msgid "cannot add already read locale `%s' a second time"
msgstr ""
@@ -2899,24 +2895,24 @@ msgstr ""
msgid "failure while writing data for category `%s'"
msgstr ""
-#: locale/programs/locfile.c:917
+#: locale/programs/locfile.c:930
#, c-format
msgid "cannot create output file `%s' for category `%s'"
msgstr ""
-#: locale/programs/locfile.c:953
+#: locale/programs/locfile.c:966
msgid "expecting string argument for `copy'"
msgstr ""
-#: locale/programs/locfile.c:957
+#: locale/programs/locfile.c:970
msgid "locale name should consist only of portable characters"
msgstr ""
-#: locale/programs/locfile.c:976
+#: locale/programs/locfile.c:989
msgid "no other keyword shall be specified when `copy' is used"
msgstr ""
-#: locale/programs/locfile.c:990
+#: locale/programs/locfile.c:1003
#, c-format
msgid "`%1$s' definition does not end with `END %1$s'"
msgstr ""
@@ -3717,12 +3713,12 @@ msgstr ""
msgid "yp_update: cannot get server address\n"
msgstr ""
-#: nscd/aicache.c:83 nscd/hstcache.c:452
+#: nscd/aicache.c:82 nscd/hstcache.c:452
#, c-format
msgid "Haven't found \"%s\" in hosts cache!"
msgstr "Ne troviÄas \"%s\" en kaÅmemoro de gastigantoj!"
-#: nscd/aicache.c:85 nscd/hstcache.c:454
+#: nscd/aicache.c:84 nscd/hstcache.c:454
#, c-format
msgid "Reloading \"%s\" in hosts cache!"
msgstr "ReÅargo de \"%s\" en kaÅmemoron de gastigantoj!"
@@ -4047,22 +4043,22 @@ msgstr ""
msgid "no more memory for database '%s'"
msgstr ""
-#: nscd/netgroupcache.c:121
+#: nscd/netgroupcache.c:122
#, c-format
msgid "Haven't found \"%s\" in netgroup cache!"
msgstr ""
-#: nscd/netgroupcache.c:123
+#: nscd/netgroupcache.c:124
#, c-format
msgid "Reloading \"%s\" in netgroup cache!"
msgstr ""
-#: nscd/netgroupcache.c:469
+#: nscd/netgroupcache.c:470
#, c-format
msgid "Haven't found \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr ""
-#: nscd/netgroupcache.c:472
+#: nscd/netgroupcache.c:473
#, c-format
msgid "Reloading \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr ""
@@ -4115,7 +4111,7 @@ msgstr "uzi apartan kaÅmemoron por ĉiu uzanto"
msgid "Name Service Cache Daemon."
msgstr "Nomserva kaÅmemora servo."
-#: nscd/nscd.c:155 nss/getent.c:967 nss/makedb.c:206
+#: nscd/nscd.c:155 nss/getent.c:987 nss/makedb.c:206
#, c-format
msgid "wrong number of arguments"
msgstr "malÄusta nombro de argumentoj"
@@ -4223,27 +4219,27 @@ msgstr "Analizeraro: %s"
msgid "Must specify user name for server-user option"
msgstr ""
-#: nscd/nscd_conf.c:198
+#: nscd/nscd_conf.c:201
#, c-format
msgid "Must specify user name for stat-user option"
msgstr ""
-#: nscd/nscd_conf.c:255
+#: nscd/nscd_conf.c:259
#, c-format
msgid "Must specify value for restart-interval option"
msgstr ""
-#: nscd/nscd_conf.c:269
+#: nscd/nscd_conf.c:273
#, c-format
msgid "Unknown option: %s %s %s"
msgstr "Nekonata opcio: %s %s %s"
-#: nscd/nscd_conf.c:282
+#: nscd/nscd_conf.c:286
#, c-format
msgid "cannot get current working directory: %s; disabling paranoia mode"
msgstr "ne eblas eltrovi aktualan dosierujon: %s; malÅaltiÄas timegema moduso"
-#: nscd/nscd_conf.c:302
+#: nscd/nscd_conf.c:306
#, c-format
msgid "maximum file size for %s database too small"
msgstr "tro malgrandas maksimuma dosiergrando por %s-datumbazo"
@@ -4464,48 +4460,48 @@ msgstr "Ne troviÄas \"%s\" en kaÅmemoro de servoj!"
msgid "Reloading \"%s\" in services cache!"
msgstr "ReÅargo de \"%s\" en servan kaÅmemoron!"
-#: nss/getent.c:54
+#: nss/getent.c:55
msgid "database [key ...]"
msgstr "DATUMBAZO [ÅœLOSILO...]"
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "CONFIG"
msgstr "AGORDDOSIERO"
# FIXME: option description should start with lowercase
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "Service configuration to be used"
msgstr "uzenda dosiero de sistemagordoj"
-#: nss/getent.c:60
+#: nss/getent.c:61
msgid "disable IDN encoding"
msgstr "malÅalti IDN-kodon"
-#: nss/getent.c:65
+#: nss/getent.c:66
msgid "Get entries from administrative database."
msgstr "Prenas erojn el administrativa datumbazo."
-#: nss/getent.c:149 nss/getent.c:442 nss/getent.c:489
+#: nss/getent.c:150 nss/getent.c:462 nss/getent.c:509
#, c-format
msgid "Enumeration not supported on %s\n"
msgstr "listigo ne subtenatas en dosiero '%s'\n"
-#: nss/getent.c:497 nss/getent.c:510
+#: nss/getent.c:517 nss/getent.c:530
#, fuzzy, c-format
#| msgid "Could not create log file"
msgid "Could not allocate group list: %m\n"
msgstr "ne eblas krei protokolan dosieron"
-#: nss/getent.c:881
+#: nss/getent.c:901
#, c-format
msgid "Unknown database name"
msgstr "nekonata datumbaznomo"
-#: nss/getent.c:911
+#: nss/getent.c:931
msgid "Supported databases:\n"
msgstr "Subtenataj datumbazoj:\n"
-#: nss/getent.c:977
+#: nss/getent.c:997
#, c-format
msgid "Unknown database: %s\n"
msgstr "nekonata datumbazo: %s\n"
@@ -4760,11 +4756,11 @@ msgstr "Regulesprimo tro grandas"
msgid "Unmatched ) or \\)"
msgstr "Senpara ) aÅ­ \\)"
-#: posix/regcomp.c:689
+#: posix/regcomp.c:676
msgid "No previous regular expression"
msgstr "Mankas antaÅ­a regulesprimo"
-#: posix/wordexp.c:1815
+#: posix/wordexp.c:1816
msgid "parameter null or not set"
msgstr ""
@@ -4949,7 +4945,7 @@ msgstr "Disponeblas eligaj bufroj"
msgid "Input message available"
msgstr "Disponeblas eniga mesaÄo"
-#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:381 timezone/zic.c:520
+#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:375 timezone/zic.c:561
msgid "I/O error"
msgstr "En-eliga eraro"
@@ -5032,7 +5028,7 @@ msgstr "Nekonata signalo %d"
#: sunrpc/auth_unix.c:112 sunrpc/clnt_tcp.c:124 sunrpc/clnt_udp.c:139
#: sunrpc/clnt_unix.c:125 sunrpc/svc_tcp.c:189 sunrpc/svc_tcp.c:233
#: sunrpc/svc_udp.c:161 sunrpc/svc_unix.c:189 sunrpc/svc_unix.c:229
-#: sunrpc/xdr.c:628 sunrpc/xdr.c:788 sunrpc/xdr_array.c:102
+#: sunrpc/xdr.c:631 sunrpc/xdr.c:791 sunrpc/xdr_array.c:102
#: sunrpc/xdr_rec.c:153 sunrpc/xdr_ref.c:79
msgid "out of memory\n"
msgstr "mankas sufiĉa memoro\n"
@@ -6300,56 +6296,69 @@ msgid "You really blew it this time"
msgstr "Vi plene ruinigis Äin ĉifoje"
#. TRANS Go home and have a glass of warm, dairy-fresh milk.
-#: sysdeps/gnu/errlist.c:978
+#. TRANS @c Okay. Since you are dying to know, I'll tell you.
+#. TRANS @c This is a joke, obviously. There is a children's song which begins,
+#. TRANS @c "Old McDonald had a farm, e-i-e-i-o." Every time I see the (real)
+#. TRANS @c errno macro EIO, I think about that song. Probably most of my
+#. TRANS @c compatriots who program on Unix do, too. One of them must have stayed
+#. TRANS @c up a little too late one night and decided to add it to Hurd or Glibc.
+#. TRANS @c Whoever did it should be castigated, but it made me laugh.
+#. TRANS @c --jtobey@channel1.com
+#. TRANS @c
+#. TRANS @c "bought the farm" means "died". -jtobey
+#. TRANS @c
+#. TRANS @c Translators, please do not translate this litteraly, translate it into
+#. TRANS @c an idiomatic funny way of saying that the computer died.
+#: sysdeps/gnu/errlist.c:991
msgid "Computer bought the farm"
msgstr "SidiÄu kaj ne pensu plu"
#. TRANS This error code has no purpose.
-#: sysdeps/gnu/errlist.c:987
+#: sysdeps/gnu/errlist.c:1000
msgid "Gratuitous error"
msgstr "Sensenca eraro"
-#: sysdeps/gnu/errlist.c:995
+#: sysdeps/gnu/errlist.c:1008
msgid "Bad message"
msgstr "Malbona mesaÄo"
-#: sysdeps/gnu/errlist.c:1003
+#: sysdeps/gnu/errlist.c:1016
msgid "Identifier removed"
msgstr "Indentigilo forigiÄis"
-#: sysdeps/gnu/errlist.c:1011
+#: sysdeps/gnu/errlist.c:1024
msgid "Multihop attempted"
msgstr "Plursalta provo"
-#: sysdeps/gnu/errlist.c:1019
+#: sysdeps/gnu/errlist.c:1032
msgid "No data available"
msgstr "Ne disponeblas datumoj"
-#: sysdeps/gnu/errlist.c:1027
+#: sysdeps/gnu/errlist.c:1040
msgid "Link has been severed"
msgstr "Ligo tranĉiÄis"
-#: sysdeps/gnu/errlist.c:1035
+#: sysdeps/gnu/errlist.c:1048
msgid "No message of desired type"
msgstr "Neniu mesaÄo de petita tipo"
-#: sysdeps/gnu/errlist.c:1043
+#: sysdeps/gnu/errlist.c:1056
msgid "Out of streams resources"
msgstr "Ne havas plu da flu-risurcoj"
-#: sysdeps/gnu/errlist.c:1051
+#: sysdeps/gnu/errlist.c:1064
msgid "Device not a stream"
msgstr "Aparato ne estas fluo"
-#: sysdeps/gnu/errlist.c:1059
+#: sysdeps/gnu/errlist.c:1072
msgid "Value too large for defined data type"
msgstr "Valoro tro grandas por difinita datumtipo"
-#: sysdeps/gnu/errlist.c:1067
+#: sysdeps/gnu/errlist.c:1080
msgid "Protocol error"
msgstr "Protokol-eraro"
-#: sysdeps/gnu/errlist.c:1075
+#: sysdeps/gnu/errlist.c:1088
msgid "Timer expired"
msgstr "HorloÄo transpasis limtempon"
@@ -6357,195 +6366,195 @@ msgstr "HorloÄo transpasis limtempon"
#. TRANS completed. @xref{Asynchronous I/O}. When you call @code{aio_cancel},
#. TRANS the normal result is for the operations affected to complete with this
#. TRANS error; @pxref{Cancel AIO Operations}.
-#: sysdeps/gnu/errlist.c:1087
+#: sysdeps/gnu/errlist.c:1100
msgid "Operation canceled"
msgstr "Operacio nuligitas"
-#: sysdeps/gnu/errlist.c:1095
+#: sysdeps/gnu/errlist.c:1108
msgid "Owner died"
msgstr "Posedanto ĉesiÄis"
-#: sysdeps/gnu/errlist.c:1103
+#: sysdeps/gnu/errlist.c:1116
msgid "State not recoverable"
msgstr "Stato ne ripareblas"
-#: sysdeps/gnu/errlist.c:1111
+#: sysdeps/gnu/errlist.c:1124
msgid "Interrupted system call should be restarted"
msgstr "Interrompita sistemvoko devus esti restartigata"
-#: sysdeps/gnu/errlist.c:1119
+#: sysdeps/gnu/errlist.c:1132
msgid "Channel number out of range"
msgstr "Kanalnumero estas ekster gamo"
-#: sysdeps/gnu/errlist.c:1127
+#: sysdeps/gnu/errlist.c:1140
msgid "Level 2 not synchronized"
msgstr "Nivelo 2 ne sinkroniÄis"
-#: sysdeps/gnu/errlist.c:1135
+#: sysdeps/gnu/errlist.c:1148
msgid "Level 3 halted"
msgstr "Nivelo 3 haltiÄis"
-#: sysdeps/gnu/errlist.c:1143
+#: sysdeps/gnu/errlist.c:1156
msgid "Level 3 reset"
msgstr "Nivelo 3 rekomenco"
-#: sysdeps/gnu/errlist.c:1151
+#: sysdeps/gnu/errlist.c:1164
msgid "Link number out of range"
msgstr "Lignumero estas ekster gamo"
-#: sysdeps/gnu/errlist.c:1159
+#: sysdeps/gnu/errlist.c:1172
msgid "Protocol driver not attached"
msgstr "Protokolpelilo ne kunligatas"
-#: sysdeps/gnu/errlist.c:1167
+#: sysdeps/gnu/errlist.c:1180
msgid "No CSI structure available"
msgstr "Neniu CSI-strukturo disponeblas"
-#: sysdeps/gnu/errlist.c:1175
+#: sysdeps/gnu/errlist.c:1188
msgid "Level 2 halted"
msgstr "Nivelo 2 haltiÄis"
-#: sysdeps/gnu/errlist.c:1183
+#: sysdeps/gnu/errlist.c:1196
msgid "Invalid exchange"
msgstr "Nevalida interÅanÄo"
-#: sysdeps/gnu/errlist.c:1191
+#: sysdeps/gnu/errlist.c:1204
msgid "Invalid request descriptor"
msgstr "Nevalida petpriaĵo"
-#: sysdeps/gnu/errlist.c:1199
+#: sysdeps/gnu/errlist.c:1212
msgid "Exchange full"
msgstr "InterÅanÄo plenas"
-#: sysdeps/gnu/errlist.c:1207
+#: sysdeps/gnu/errlist.c:1220
msgid "No anode"
msgstr "Neniu anodo"
-#: sysdeps/gnu/errlist.c:1215
+#: sysdeps/gnu/errlist.c:1228
msgid "Invalid request code"
msgstr "Nevalida petkodo"
-#: sysdeps/gnu/errlist.c:1223
+#: sysdeps/gnu/errlist.c:1236
msgid "Invalid slot"
msgstr "Nevalida sulko"
-#: sysdeps/gnu/errlist.c:1231
+#: sysdeps/gnu/errlist.c:1244
msgid "File locking deadlock error"
msgstr "Klinĉeraro je dosierÅlosado"
-#: sysdeps/gnu/errlist.c:1239
+#: sysdeps/gnu/errlist.c:1252
msgid "Bad font file format"
msgstr "Nevalida aranÄo de tipardosiero"
-#: sysdeps/gnu/errlist.c:1247
+#: sysdeps/gnu/errlist.c:1260
msgid "Machine is not on the network"
msgstr "Komputilo ne havas retkonekton"
-#: sysdeps/gnu/errlist.c:1255
+#: sysdeps/gnu/errlist.c:1268
msgid "Package not installed"
msgstr "Pako ne estas instalita"
-#: sysdeps/gnu/errlist.c:1263
+#: sysdeps/gnu/errlist.c:1276
msgid "Advertise error"
msgstr "Anonc-eraro"
-#: sysdeps/gnu/errlist.c:1271
+#: sysdeps/gnu/errlist.c:1284
msgid "Srmount error"
msgstr "Eraro je 'srmount'"
-#: sysdeps/gnu/errlist.c:1279
+#: sysdeps/gnu/errlist.c:1292
msgid "Communication error on send"
msgstr "Komunik-eraro je sendo"
-#: sysdeps/gnu/errlist.c:1287
+#: sysdeps/gnu/errlist.c:1300
msgid "RFS specific error"
msgstr "RFS-specifa eraro"
-#: sysdeps/gnu/errlist.c:1295
+#: sysdeps/gnu/errlist.c:1308
msgid "Name not unique on network"
msgstr "Nomo ne unikas en reto"
-#: sysdeps/gnu/errlist.c:1303
+#: sysdeps/gnu/errlist.c:1316
msgid "File descriptor in bad state"
msgstr "Dosierpriaĵo estas en malbona stato"
-#: sysdeps/gnu/errlist.c:1311
+#: sysdeps/gnu/errlist.c:1324
msgid "Remote address changed"
msgstr "Fora adreso ÅanÄis"
-#: sysdeps/gnu/errlist.c:1319
+#: sysdeps/gnu/errlist.c:1332
msgid "Can not access a needed shared library"
msgstr "Ne eblas atingi necesan komunan bibliotekon"
-#: sysdeps/gnu/errlist.c:1327
+#: sysdeps/gnu/errlist.c:1340
msgid "Accessing a corrupted shared library"
msgstr "Atingo de kripla komuna biblioteko"
-#: sysdeps/gnu/errlist.c:1335
+#: sysdeps/gnu/errlist.c:1348
msgid ".lib section in a.out corrupted"
msgstr "Sekcio '.lib' en «a.out» kriplas"
-#: sysdeps/gnu/errlist.c:1343
+#: sysdeps/gnu/errlist.c:1356
msgid "Attempting to link in too many shared libraries"
msgstr "Provo de bindi tro multajn komunajn bibliotekojn"
-#: sysdeps/gnu/errlist.c:1351
+#: sysdeps/gnu/errlist.c:1364
msgid "Cannot exec a shared library directly"
msgstr "Ne eblas rekte ruli komunan bibliotekon"
-#: sysdeps/gnu/errlist.c:1359
+#: sysdeps/gnu/errlist.c:1372
msgid "Streams pipe error"
msgstr "Fludukta eraro"
-#: sysdeps/gnu/errlist.c:1367
+#: sysdeps/gnu/errlist.c:1380
msgid "Structure needs cleaning"
msgstr "Strukturo bezonas purigon"
-#: sysdeps/gnu/errlist.c:1375
+#: sysdeps/gnu/errlist.c:1388
msgid "Not a XENIX named type file"
msgstr "Ne estas XENIX-dosiero kun nomo"
-#: sysdeps/gnu/errlist.c:1383
+#: sysdeps/gnu/errlist.c:1396
msgid "No XENIX semaphores available"
msgstr "Neniu XENIX-semaforo disponeblas"
-#: sysdeps/gnu/errlist.c:1391
+#: sysdeps/gnu/errlist.c:1404
msgid "Is a named type file"
msgstr "Estas dosiero kun nomo"
-#: sysdeps/gnu/errlist.c:1399
+#: sysdeps/gnu/errlist.c:1412
msgid "Remote I/O error"
msgstr "Fora en-eliga eraro"
-#: sysdeps/gnu/errlist.c:1407
+#: sysdeps/gnu/errlist.c:1420
msgid "No medium found"
msgstr "Neniu datumportilo troviÄas"
-#: sysdeps/gnu/errlist.c:1415
+#: sysdeps/gnu/errlist.c:1428
msgid "Wrong medium type"
msgstr "NeÄusta tipo de datumportilo"
-#: sysdeps/gnu/errlist.c:1423
+#: sysdeps/gnu/errlist.c:1436
msgid "Required key not available"
msgstr "Necesa Ålosilo ne disponeblas"
-#: sysdeps/gnu/errlist.c:1431
+#: sysdeps/gnu/errlist.c:1444
msgid "Key has expired"
msgstr "Åœlosilo kadukiÄis"
-#: sysdeps/gnu/errlist.c:1439
+#: sysdeps/gnu/errlist.c:1452
msgid "Key has been revoked"
msgstr "Åœlosilo senvalidiÄis"
-#: sysdeps/gnu/errlist.c:1447
+#: sysdeps/gnu/errlist.c:1460
msgid "Key was rejected by service"
msgstr "Åœlosilo rifuziÄis per servo"
-#: sysdeps/gnu/errlist.c:1455
+#: sysdeps/gnu/errlist.c:1468
msgid "Operation not possible due to RF-kill"
msgstr "Operacio ne eblas pro 'RF-kill'"
-#: sysdeps/gnu/errlist.c:1463
+#: sysdeps/gnu/errlist.c:1476
msgid "Memory page has hardware error"
msgstr "MemorpaÄo havas fizikan difekton"
@@ -6674,31 +6683,31 @@ msgstr ""
msgid "can't disable CET"
msgstr ""
-#: timezone/zdump.c:338
+#: timezone/zdump.c:332
#, fuzzy
#| msgid "has fewer than 3 alphabetics"
msgid "has fewer than 3 characters"
msgstr "havas malpli ol tri literojn"
-#: timezone/zdump.c:340
+#: timezone/zdump.c:334
#, fuzzy
#| msgid "has more than 6 alphabetics"
msgid "has more than 6 characters"
msgstr "havas pli ol ses literojn"
-#: timezone/zdump.c:342
+#: timezone/zdump.c:336
msgid "has characters other than ASCII alphanumerics, '-' or '+'"
msgstr ""
-#: timezone/zdump.c:347
+#: timezone/zdump.c:341
#, c-format
msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n"
msgstr "%s: averto: zono \"%s\" mallongigo \"%s\" %s\n"
-#: timezone/zdump.c:393
+#: timezone/zdump.c:387
#, c-format
msgid ""
-"%s: usage: %s OPTIONS ZONENAME ...\n"
+"%s: usage: %s OPTIONS TIMEZONE ...\n"
"Options include:\n"
" -c [L,]U Start at year L (default -500), end before year U (default 2500)\n"
" -t [L,]U Start at time L, end before time U (in seconds since 1970)\n"
@@ -6711,450 +6720,480 @@ msgid ""
"Report bugs to %s.\n"
msgstr ""
-#: timezone/zdump.c:479
+#: timezone/zdump.c:473
#, c-format
msgid "%s: wild -c argument %s\n"
msgstr "%s: troa argumento %s je opcio «-c»\n"
-#: timezone/zdump.c:512
+#: timezone/zdump.c:506
#, c-format
msgid "%s: wild -t argument %s\n"
msgstr "%s: troa argumento %s je opcio «-t»\n"
-#: timezone/zic.c:398
+#: timezone/zic.c:429
#, c-format
msgid "%s: Memory exhausted: %s\n"
msgstr "%s: Mankas sufiĉa memoro: %s\n"
-#: timezone/zic.c:406
+#: timezone/zic.c:437
#, fuzzy
#| msgid "time overflow"
msgid "size overflow"
msgstr "temptroo"
-#: timezone/zic.c:454
+#: timezone/zic.c:447
+#, fuzzy
+#| msgid "time overflow"
+msgid "alignment overflow"
+msgstr "temptroo"
+
+#: timezone/zic.c:495
#, fuzzy
#| msgid "Integer overflow"
msgid "integer overflow"
msgstr "Entjertroo"
-#: timezone/zic.c:488
+#: timezone/zic.c:529
#, fuzzy, c-format
#| msgid "\"%s\", line %d: "
msgid "\"%s\", line %<PRIdMAX>: "
msgstr "«%s», linio %d: "
-#: timezone/zic.c:491
+#: timezone/zic.c:532
#, fuzzy, c-format
#| msgid " (rule from \"%s\", line %d)"
msgid " (rule from \"%s\", line %<PRIdMAX>)"
msgstr " (regulo el «%s», linio %d)"
-#: timezone/zic.c:510
+#: timezone/zic.c:551
#, c-format
msgid "warning: "
msgstr "averto: "
-#: timezone/zic.c:535
+#: timezone/zic.c:576
#, c-format
msgid ""
"%s: usage is %s [ --version ] [ --help ] [ -v ] \\\n"
"\t[ -l localtime ] [ -p posixrules ] [ -d directory ] \\\n"
-"\t[ -L leapseconds ] [ filename ... ]\n"
+"\t[ -t localtime-link ] [ -L leapseconds ] [ filename ... ]\n"
"\n"
"Report bugs to %s.\n"
msgstr ""
-#: timezone/zic.c:558
+#: timezone/zic.c:599
#, fuzzy, c-format
#| msgid "%s: Can't create %s: %s\n"
msgid "%s: Can't chdir to %s: %s\n"
msgstr "%s: Ne eblas krei %s: %s\n"
-#: timezone/zic.c:590
+#: timezone/zic.c:632
msgid "wild compilation-time specification of zic_t"
msgstr ""
-#: timezone/zic.c:610
+#: timezone/zic.c:652
#, c-format
msgid "%s: More than one -d option specified\n"
msgstr "%s: Indikatas pluraj opcioj «-d»\n"
-#: timezone/zic.c:620
+#: timezone/zic.c:662
#, c-format
msgid "%s: More than one -l option specified\n"
msgstr "%s: Indikatas pluraj opcioj «-l»\n"
-#: timezone/zic.c:630
+#: timezone/zic.c:672
#, c-format
msgid "%s: More than one -p option specified\n"
msgstr "%s: Indikatas pluraj opcioj «-p»\n"
-#: timezone/zic.c:640
+#: timezone/zic.c:680
+#, fuzzy, c-format
+#| msgid "%s: More than one -d option specified\n"
+msgid "%s: More than one -t option specified\n"
+msgstr "%s: Indikatas pluraj opcioj «-d»\n"
+
+#: timezone/zic.c:689
+msgid "-y is obsolescent"
+msgstr ""
+
+#: timezone/zic.c:693
#, c-format
msgid "%s: More than one -y option specified\n"
msgstr "%s: Indikatas pluraj opcioj «-y»\n"
-#: timezone/zic.c:650
+#: timezone/zic.c:703
#, c-format
msgid "%s: More than one -L option specified\n"
msgstr "%s: Indikatas pluraj opcioj «-L»\n"
-#: timezone/zic.c:659
+#: timezone/zic.c:712
msgid "-s ignored"
msgstr ""
-#: timezone/zic.c:698
+#: timezone/zic.c:753
msgid "link to link"
msgstr "ligo al ligo"
-#: timezone/zic.c:701 timezone/zic.c:705
+#: timezone/zic.c:756 timezone/zic.c:760
#, fuzzy
#| msgid "Too many links"
msgid "command line"
msgstr "Tro da ligoj"
-#: timezone/zic.c:721
+#: timezone/zic.c:776
msgid "empty file name"
msgstr ""
-#: timezone/zic.c:724
+#: timezone/zic.c:779
#, c-format
msgid "file name '%s' begins with '/'"
msgstr ""
-#: timezone/zic.c:734
+#: timezone/zic.c:789
#, c-format
msgid "file name '%s' contains '%.*s' component"
msgstr ""
-#: timezone/zic.c:740
+#: timezone/zic.c:795
#, c-format
msgid "file name '%s' component contains leading '-'"
msgstr ""
-#: timezone/zic.c:743
+#: timezone/zic.c:798
#, c-format
msgid "file name '%s' contains overlength component '%.*s...'"
msgstr ""
-#: timezone/zic.c:771
+#: timezone/zic.c:826
#, c-format
msgid "file name '%s' contains byte '%c'"
msgstr ""
-#: timezone/zic.c:772
+#: timezone/zic.c:827
#, c-format
msgid "file name '%s' contains byte '\\%o'"
msgstr ""
-#: timezone/zic.c:842
+#: timezone/zic.c:897
#, fuzzy, c-format
#| msgid "%s: Can't link from %s to %s: %s\n"
msgid "%s: link from %s/%s failed: %s\n"
msgstr "%s: Ne eblas ligi de %s al %s: %s\n"
-#: timezone/zic.c:852 timezone/zic.c:1815
+#: timezone/zic.c:907 timezone/zic.c:1876
#, fuzzy, c-format
#| msgid "%s: Can't remove %s: %s\n"
msgid "%s: Can't remove %s/%s: %s\n"
msgstr "%s: Ne eblas forigi %s: %s\n"
-#: timezone/zic.c:874
+#: timezone/zic.c:931
#, c-format
msgid "symbolic link used because hard link failed: %s"
msgstr ""
-#: timezone/zic.c:882
+#: timezone/zic.c:939
#, fuzzy, c-format
#| msgid "%s: Can't read %s: %s\n"
msgid "%s: Can't read %s/%s: %s\n"
msgstr "%s: Ne eblas legi %s: %s\n"
-#: timezone/zic.c:889 timezone/zic.c:1828
+#: timezone/zic.c:946 timezone/zic.c:1889
#, fuzzy, c-format
#| msgid "%s: Can't create %s: %s\n"
msgid "%s: Can't create %s/%s: %s\n"
msgstr "%s: Ne eblas krei %s: %s\n"
-#: timezone/zic.c:898
+#: timezone/zic.c:955
#, c-format
msgid "copy used because hard link failed: %s"
msgstr ""
-#: timezone/zic.c:901
+#: timezone/zic.c:958
#, c-format
msgid "copy used because symbolic link failed: %s"
msgstr ""
-#: timezone/zic.c:1013 timezone/zic.c:1015
+#: timezone/zic.c:1032 timezone/zic.c:1034
msgid "same rule name in multiple files"
msgstr "sama regulnomo en pluraj dosieroj"
-#: timezone/zic.c:1056
-msgid "unruly zone"
-msgstr "senbrida zono"
-
-#: timezone/zic.c:1063
+#: timezone/zic.c:1081
#, c-format
msgid "%s in ruleless zone"
msgstr "%s en senregula zono"
-#: timezone/zic.c:1083
+#: timezone/zic.c:1101
msgid "standard input"
msgstr "ĉefenigujo"
-#: timezone/zic.c:1088
+#: timezone/zic.c:1106
#, c-format
msgid "%s: Can't open %s: %s\n"
msgstr "%s: Ne eblas malfermi %s: %s\n"
-#: timezone/zic.c:1099
+#: timezone/zic.c:1117
msgid "line too long"
msgstr "linio tro longas"
-#: timezone/zic.c:1119
+#: timezone/zic.c:1139
msgid "input line of unknown type"
msgstr "eniga linio estas de nekonata tipo"
-#: timezone/zic.c:1134
-#, c-format
-msgid "%s: Leap line in non leap seconds file %s"
-msgstr ""
-
-#: timezone/zic.c:1142 timezone/zic.c:1547 timezone/zic.c:1569
+#: timezone/zic.c:1158 timezone/zic.c:1593 timezone/zic.c:1615
#, c-format
msgid "%s: panic: Invalid l_value %d\n"
msgstr ""
-#: timezone/zic.c:1151
+#: timezone/zic.c:1167
msgid "expected continuation line not found"
msgstr ""
-#: timezone/zic.c:1193 timezone/zic.c:2976
+#: timezone/zic.c:1203
+msgid "fractional seconds rejected by pre-2018 versions of zic"
+msgstr ""
+
+#: timezone/zic.c:1221 timezone/zic.c:3078
msgid "time overflow"
msgstr "temptroo"
-#: timezone/zic.c:1198
+#: timezone/zic.c:1227
msgid "values over 24 hours not handled by pre-2007 versions of zic"
msgstr ""
-#: timezone/zic.c:1209
+#: timezone/zic.c:1245
+msgid "invalid saved time"
+msgstr "nevalida konservita tempo"
+
+#: timezone/zic.c:1256
msgid "wrong number of fields on Rule line"
msgstr ""
-#: timezone/zic.c:1213
-msgid "nameless rule"
-msgstr "sennoma regulo"
-
-#: timezone/zic.c:1218
-msgid "invalid saved time"
-msgstr "nevalida konservita tempo"
+#: timezone/zic.c:1265
+#, fuzzy, c-format
+#| msgid "Invalid numeric uid \"%s\"!"
+msgid "Invalid rule name \"%s\""
+msgstr "Nevalida numera UID \"%s\"!"
-#: timezone/zic.c:1235
+#: timezone/zic.c:1287
msgid "wrong number of fields on Zone line"
msgstr ""
-#: timezone/zic.c:1240
+#: timezone/zic.c:1292
#, c-format
msgid "\"Zone %s\" line and -l option are mutually exclusive"
msgstr ""
-#: timezone/zic.c:1246
+#: timezone/zic.c:1298
#, c-format
msgid "\"Zone %s\" line and -p option are mutually exclusive"
msgstr ""
-#: timezone/zic.c:1253
+#: timezone/zic.c:1305
#, fuzzy, c-format
#| msgid "duplicate zone name %s (file \"%s\", line %d)"
msgid "duplicate zone name %s (file \"%s\", line %<PRIdMAX>)"
msgstr "duobla zonnomo %s (dosiero \"%s\", linio %d)"
-#: timezone/zic.c:1267
+#: timezone/zic.c:1319
msgid "wrong number of fields on Zone continuation line"
msgstr ""
-#: timezone/zic.c:1307
+#: timezone/zic.c:1359
msgid "invalid UT offset"
msgstr "nevalida UTC-deÅovo"
-#: timezone/zic.c:1311
+#: timezone/zic.c:1363
msgid "invalid abbreviation format"
msgstr "nevalida aranÄo de mallongigo"
-#: timezone/zic.c:1320
+#: timezone/zic.c:1372
#, c-format
msgid "format '%s' not handled by pre-2015 versions of zic"
msgstr ""
-#: timezone/zic.c:1347
+#: timezone/zic.c:1399
msgid "Zone continuation line end time is not after end time of previous line"
msgstr ""
-#: timezone/zic.c:1374
+#: timezone/zic.c:1426
msgid "wrong number of fields on Leap line"
msgstr ""
-#: timezone/zic.c:1383
+#: timezone/zic.c:1435
msgid "invalid leaping year"
msgstr "nevalida superjaro"
-#: timezone/zic.c:1403 timezone/zic.c:1501
+#: timezone/zic.c:1455 timezone/zic.c:1547
msgid "invalid month name"
msgstr "nevalida monatnomo"
-#: timezone/zic.c:1416 timezone/zic.c:1614 timezone/zic.c:1628
+#: timezone/zic.c:1468 timezone/zic.c:1663 timezone/zic.c:1677
msgid "invalid day of month"
msgstr "nevalida tago de monato"
-#: timezone/zic.c:1421
+#: timezone/zic.c:1473
msgid "time too small"
msgstr "tempo tro etas"
-#: timezone/zic.c:1425
+#: timezone/zic.c:1477
msgid "time too large"
msgstr "tempo tro grandas"
-#: timezone/zic.c:1429 timezone/zic.c:1530
+#: timezone/zic.c:1481 timezone/zic.c:1576
msgid "invalid time of day"
msgstr "nevalida tempo de tago"
-#: timezone/zic.c:1448
+#: timezone/zic.c:1494
msgid "illegal CORRECTION field on Leap line"
msgstr ""
-#: timezone/zic.c:1453
+#: timezone/zic.c:1499
msgid "illegal Rolling/Stationary field on Leap line"
msgstr ""
-#: timezone/zic.c:1459
-msgid "leap second precedes Big Bang"
+#: timezone/zic.c:1505
+#, fuzzy
+#| msgid "leap second precedes Big Bang"
+msgid "leap second precedes Epoch"
msgstr "supersekundo antaüas al praknalo"
-#: timezone/zic.c:1472
+#: timezone/zic.c:1518
msgid "wrong number of fields on Link line"
msgstr ""
-#: timezone/zic.c:1476
+#: timezone/zic.c:1522
msgid "blank FROM field on Link line"
msgstr ""
-#: timezone/zic.c:1551
+#: timezone/zic.c:1597
msgid "invalid starting year"
msgstr "nevalida komencjaro"
-#: timezone/zic.c:1573
+#: timezone/zic.c:1619
msgid "invalid ending year"
msgstr "nevalida finjaro"
-#: timezone/zic.c:1577
+#: timezone/zic.c:1623
msgid "starting year greater than ending year"
msgstr "komencjaro pli grandas ol finjaro"
-#: timezone/zic.c:1584
+#: timezone/zic.c:1630
msgid "typed single year"
msgstr ""
-#: timezone/zic.c:1619
+#: timezone/zic.c:1633
+#, c-format
+msgid "year type \"%s\" is obsolete; use \"-\" instead"
+msgstr ""
+
+#: timezone/zic.c:1668
msgid "invalid weekday name"
msgstr "nevalida nomo de semajntago"
-#: timezone/zic.c:1743
+#: timezone/zic.c:1800
#, c-format
msgid "reference clients mishandle more than %d transition times"
msgstr ""
-#: timezone/zic.c:1747
+#: timezone/zic.c:1804
msgid "pre-2014 clients may mishandle more than 1200 transition times"
msgstr ""
-#: timezone/zic.c:1858
+#: timezone/zic.c:1920
#, fuzzy
#| msgid "Too many attributes"
msgid "too many transition times"
msgstr "Tro multaj atributoj"
-#: timezone/zic.c:2047
+#: timezone/zic.c:2107
#, c-format
-msgid "%%z UTC offset magnitude exceeds 99:59:59"
+msgid "%%z UT offset magnitude exceeds 99:59:59"
msgstr ""
-#: timezone/zic.c:2424
+#: timezone/zic.c:2488
msgid "no POSIX environment variable for zone"
msgstr ""
-#: timezone/zic.c:2430
+#: timezone/zic.c:2494
#, c-format
msgid "%s: pre-%d clients may mishandle distant timestamps"
msgstr ""
-#: timezone/zic.c:2566
+#: timezone/zic.c:2631
msgid "two rules for same instant"
msgstr ""
-#: timezone/zic.c:2627
+#: timezone/zic.c:2696
msgid "can't determine time zone abbreviation to use just after until time"
msgstr ""
-#: timezone/zic.c:2725
+#: timezone/zic.c:2785
msgid "too many local time types"
msgstr ""
-#: timezone/zic.c:2729
+#: timezone/zic.c:2789
msgid "UT offset out of range"
msgstr "UTC-deÅovo estas ekster gamo"
-#: timezone/zic.c:2753
+#: timezone/zic.c:2813
msgid "too many leap seconds"
msgstr "tro multaj supersekundoj"
-#: timezone/zic.c:2759
-msgid "repeated leap second moment"
-msgstr "ripetita supersekunda momento"
+#: timezone/zic.c:2844
+msgid "Leap seconds too close together"
+msgstr ""
-#: timezone/zic.c:2830
+#: timezone/zic.c:2891
msgid "Wild result from command execution"
msgstr "Bizara rezulto el komandrulo"
-#: timezone/zic.c:2831
+#: timezone/zic.c:2892
#, c-format
msgid "%s: command was '%s', result was %d\n"
msgstr "%s: komando estis '%s', rezulto estis %d\n"
-#: timezone/zic.c:2961
+#: timezone/zic.c:2998
+#, c-format
+msgid "\"%s\" is undocumented; use \"last%s\" instead"
+msgstr ""
+
+#: timezone/zic.c:3029
+#, c-format
+msgid "\"%s\" is ambiguous in pre-2017c zic"
+msgstr ""
+
+#: timezone/zic.c:3063
msgid "Odd number of quotation marks"
msgstr "Nepara nombro de citiloj"
-#: timezone/zic.c:3046
+#: timezone/zic.c:3157
msgid "use of 2/29 in non leap-year"
msgstr "uzo de feb 29 en nesuperjaro"
-#: timezone/zic.c:3081
+#: timezone/zic.c:3192
msgid "rule goes past start/end of month; will not work with pre-2004 versions of zic"
msgstr ""
-#: timezone/zic.c:3108
+#: timezone/zic.c:3219
#, fuzzy
#| msgid "time zone abbreviation has fewer than 3 alphabetics"
msgid "time zone abbreviation has fewer than 3 characters"
msgstr "horzona mallongigo havas malpli ol tri literojn"
-#: timezone/zic.c:3110
+#: timezone/zic.c:3221
#, fuzzy
#| msgid "time zone abbreviation has too many alphabetics"
msgid "time zone abbreviation has too many characters"
msgstr "horzona mallongigo havas tro da literoj"
-#: timezone/zic.c:3112
+#: timezone/zic.c:3223
msgid "time zone abbreviation differs from POSIX standard"
msgstr "horzona mallongigo diferencas de POSIX-normo"
-#: timezone/zic.c:3118
+#: timezone/zic.c:3229
msgid "too many, or too long, time zone abbreviations"
msgstr "tro multaj aÅ­ tro longaj horzonaj mallongigoj"
-#: timezone/zic.c:3161
+#: timezone/zic.c:3275
#, fuzzy, c-format
#| msgid "%s: Can't create directory %s: %s\n"
msgid "%s: Can't create directory %s: %s"
@@ -7220,9 +7259,18 @@ msgstr "%s: Ne eblas krei dosierujon %s: %s\n"
#~ msgid "link failed, copy used"
#~ msgstr "ligi fiaskis; kopio fariÄis"
+#~ msgid "unruly zone"
+#~ msgstr "senbrida zono"
+
#~ msgid "%s: Error closing %s: %s\n"
#~ msgstr "%s: Eraro dum fermado de %s: %s\n"
+#~ msgid "nameless rule"
+#~ msgstr "sennoma regulo"
+
+#~ msgid "repeated leap second moment"
+#~ msgstr "ripetita supersekunda momento"
+
#~ msgid "time zone abbreviation lacks alphabetic at start"
#~ msgstr "horzona mallongigo ne komencas per litero"
diff --git a/po/es.po b/po/es.po
index 1456d340c4..6367d37e06 100644
--- a/po/es.po
+++ b/po/es.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: GNU libc 2.19.90\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-07-26 22:19-0400\n"
+"POT-Creation-Date: 2019-07-18 13:28-0400\n"
"PO-Revision-Date: 2014-08-25 16:18-0700\n"
"Last-Translator: Santiago Vila Doncel <sanvila@unex.es>\n"
"Language-Team: Spanish <es@tp.org.es>\n"
@@ -168,10 +168,10 @@ msgstr ""
"[FICHERO-SALIDA [FICHERO-ENTRADA]...]"
#: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:308
-#: elf/pldd.c:252 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
-#: iconv/iconvconfig.c:379 locale/programs/locale.c:275
-#: locale/programs/localedef.c:427 login/programs/pt_chown.c:89
-#: malloc/memusagestat.c:563 nss/getent.c:933 nss/makedb.c:369
+#: elf/pldd.c:247 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
+#: iconv/iconvconfig.c:379 locale/programs/locale.c:276
+#: locale/programs/localedef.c:437 login/programs/pt_chown.c:89
+#: malloc/memusagestat.c:563 nss/getent.c:953 nss/makedb.c:369
#: posix/getconf.c:503 sysdeps/unix/sysv/linux/lddlibc4.c:61
#, c-format
msgid ""
@@ -182,11 +182,11 @@ msgstr ""
"%s.\n"
#: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64
-#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75
+#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:263 elf/sotruss.sh:75
#: elf/sprof.c:389 iconv/iconv_prog.c:422 iconv/iconvconfig.c:396
-#: locale/programs/locale.c:292 locale/programs/localedef.c:453
+#: locale/programs/locale.c:293 locale/programs/localedef.c:463
#: login/programs/pt_chown.c:63 malloc/memusage.sh:71
-#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:87 nss/makedb.c:385
+#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:88 nss/makedb.c:385
#: posix/getconf.c:485 sysdeps/unix/sysv/linux/lddlibc4.c:68
#, c-format
msgid ""
@@ -200,10 +200,10 @@ msgstr ""
"FIN DETERMINADO.\n"
#: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68
-#: elf/ldconfig.c:329 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:427
-#: iconv/iconvconfig.c:401 locale/programs/locale.c:297
-#: locale/programs/localedef.c:458 malloc/memusage.sh:75
-#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:92 nss/makedb.c:390
+#: elf/ldconfig.c:329 elf/pldd.c:268 elf/sprof.c:395 iconv/iconv_prog.c:427
+#: iconv/iconvconfig.c:401 locale/programs/locale.c:298
+#: locale/programs/localedef.c:468 malloc/memusage.sh:75
+#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:93 nss/makedb.c:390
#: posix/getconf.c:490
#, c-format
msgid "Written by %s.\n"
@@ -277,21 +277,21 @@ msgstr "no se puede abrir el fichero de salida `%s'"
msgid "invalid escape sequence"
msgstr "secuencia de escape inválida"
-#: catgets/gencat.c:1209
+#: catgets/gencat.c:1211
msgid "unterminated message"
msgstr "mensaje sin terminar"
-#: catgets/gencat.c:1233
+#: catgets/gencat.c:1235
#, c-format
msgid "while opening old catalog file"
msgstr "al abrir el fichero de catálogo antiguo"
-#: catgets/gencat.c:1324
+#: catgets/gencat.c:1326
#, c-format
msgid "conversion modules not available"
msgstr "no están disponibles los módulos de conversión"
-#: catgets/gencat.c:1350
+#: catgets/gencat.c:1352
#, c-format
msgid "cannot determine escape character"
msgstr "no se puede determinar el carácter de escape"
@@ -420,7 +420,7 @@ msgstr "Sistema Operativo desconocido"
msgid ", OS ABI: %s %d.%d.%d"
msgstr ", ABI del SO: %s %d.%d.%d"
-#: elf/cache.c:163 elf/ldconfig.c:1332
+#: elf/cache.c:163 elf/ldconfig.c:1333
#, c-format
msgid "Can't open cache file %s\n"
msgstr "No se puede abrir el fichero de caché %s\n"
@@ -430,38 +430,38 @@ msgstr "No se puede abrir el fichero de caché %s\n"
msgid "mmap of cache file failed.\n"
msgstr "falló la operación `mmap' sobre el fichero de caché.\n"
-#: elf/cache.c:181 elf/cache.c:195
+#: elf/cache.c:181 elf/cache.c:195 elf/cache.c:205
#, c-format
msgid "File is not a cache file.\n"
msgstr "El fichero no es un fichero de caché.\n"
-#: elf/cache.c:228 elf/cache.c:238
+#: elf/cache.c:233 elf/cache.c:243
#, c-format
msgid "%d libs found in cache `%s'\n"
msgstr "%d bibliotecas se encontraron en la caché `%s'\n"
-#: elf/cache.c:432
+#: elf/cache.c:437
#, c-format
msgid "Can't create temporary cache file %s"
msgstr "No se puede crear el fichero temporal de caché %s"
-#: elf/cache.c:440 elf/cache.c:450 elf/cache.c:454 elf/cache.c:458
-#: elf/cache.c:468
+#: elf/cache.c:445 elf/cache.c:455 elf/cache.c:459 elf/cache.c:463
+#: elf/cache.c:473
#, c-format
msgid "Writing of cache data failed"
msgstr "Falló la escritura de los datos de la caché"
-#: elf/cache.c:463
+#: elf/cache.c:468
#, c-format
msgid "Changing access rights of %s to %#o failed"
msgstr "El cambio de los derechos de acceso de %s a %#o falló"
-#: elf/cache.c:472
+#: elf/cache.c:477
#, c-format
msgid "Renaming of %s to %s failed"
msgstr "Falló el renombramiento de %s a %s"
-#: elf/dl-close.c:399 elf/dl-open.c:420
+#: elf/dl-close.c:399 elf/dl-open.c:424
msgid "cannot create scope list"
msgstr "no se puede crear la lista de ámbito"
@@ -551,122 +551,124 @@ msgstr "no se puede crear la matriz de la ruta de búsqueda"
msgid "cannot stat shared object"
msgstr "no se puede efectuar `stat' sobre el objeto compartido"
-#: elf/dl-load.c:960
-msgid "cannot open zero fill device"
-msgstr "no se puede abrir el dispositivo de `zero fill'"
-
-#: elf/dl-load.c:1007 elf/dl-load.c:2203
+#: elf/dl-load.c:992 elf/dl-load.c:2198
msgid "cannot create shared object descriptor"
msgstr "no se puede crear el descriptor del objeto compartido"
-#: elf/dl-load.c:1026 elf/dl-load.c:1560 elf/dl-load.c:1673
+#: elf/dl-load.c:1011 elf/dl-load.c:1555 elf/dl-load.c:1668
msgid "cannot read file data"
msgstr "no se pueden leer los datos del fichero"
-#: elf/dl-load.c:1072
+#: elf/dl-load.c:1057
msgid "ELF load command alignment not page-aligned"
msgstr "El alineamiento de la orden de carga ELF no está alineada a la página"
-#: elf/dl-load.c:1079
+#: elf/dl-load.c:1064
msgid "ELF load command address/offset not properly aligned"
msgstr "La dirección/desplazamiento de la orden de carga ELF no está bien alineada"
# Se admiten sugerencias. sv
-#: elf/dl-load.c:1161
+#: elf/dl-load.c:1146
#, fuzzy
#| msgid "cannot restore segment prot after reloc"
msgid "cannot process note segment"
msgstr "no se puede restaurar el `prot' del segmento después de la relocalización"
-#: elf/dl-load.c:1172
+#: elf/dl-load.c:1157
msgid "object file has no loadable segments"
msgstr "el fichero objeto no tiene segmentos cargables"
-#: elf/dl-load.c:1181 elf/dl-load.c:1652
+#: elf/dl-load.c:1170 elf/dl-load.c:1647
msgid "cannot dynamically load executable"
msgstr "no se puede cargar el ejecutable dinámicamente"
-#: elf/dl-load.c:1202
+#: elf/dl-load.c:1191
msgid "object file has no dynamic section"
msgstr "el fichero objeto no tiene sección dinámica"
-#: elf/dl-load.c:1225
+#: elf/dl-load.c:1218
+#, fuzzy
+#| msgid "cannot dynamically load executable"
+msgid "cannot dynamically load position-independent executable"
+msgstr "no se puede cargar el ejecutable dinámicamente"
+
+#: elf/dl-load.c:1220
msgid "shared object cannot be dlopen()ed"
msgstr "no se puede efectuar dlopen() sobre el objeto compartido"
-#: elf/dl-load.c:1238
+#: elf/dl-load.c:1233
msgid "cannot allocate memory for program header"
msgstr "no se puede asignar memoria para la cabecera del programa"
-#: elf/dl-load.c:1271 elf/dl-load.h:130
+#: elf/dl-load.c:1266 elf/dl-load.h:130
msgid "cannot change memory protections"
msgstr "no se pueden cambiar las protecciones de memoria"
-#: elf/dl-load.c:1291
+#: elf/dl-load.c:1286
msgid "cannot enable executable stack as shared object requires"
msgstr "no se puede activar la pila ejecutable tal y como el objeto compartido necesita"
-#: elf/dl-load.c:1304
+#: elf/dl-load.c:1299
msgid "cannot close file descriptor"
msgstr "no se puede cerrar el descriptor de fichero"
-#: elf/dl-load.c:1560
+#: elf/dl-load.c:1555
msgid "file too short"
msgstr "fichero demasiado corto"
-#: elf/dl-load.c:1595
+#: elf/dl-load.c:1590
msgid "invalid ELF header"
msgstr "cabecera ELF inválida"
-#: elf/dl-load.c:1607
+#: elf/dl-load.c:1602
msgid "ELF file data encoding not big-endian"
msgstr "La codificación de los datos del fichero ELF no es `big-endian'"
-#: elf/dl-load.c:1609
+#: elf/dl-load.c:1604
msgid "ELF file data encoding not little-endian"
msgstr "La codificación de los datos del fichero ELF no es `little-endian'"
-#: elf/dl-load.c:1613
+#: elf/dl-load.c:1608
msgid "ELF file version ident does not match current one"
msgstr "La identificación de versión del fichero ELF no encaja con la actual"
-#: elf/dl-load.c:1617
+#: elf/dl-load.c:1612
msgid "ELF file OS ABI invalid"
msgstr "ABI del OS del fichero ELF inválida"
-#: elf/dl-load.c:1620
+#: elf/dl-load.c:1615
msgid "ELF file ABI version invalid"
msgstr "Versión de ABI del fichero ELF inválida"
-#: elf/dl-load.c:1623
+#: elf/dl-load.c:1618
msgid "nonzero padding in e_ident"
msgstr "relleno con no ceros en e_ident"
-#: elf/dl-load.c:1626
+#: elf/dl-load.c:1621
msgid "internal error"
msgstr "error interno"
-#: elf/dl-load.c:1633
+#: elf/dl-load.c:1628
msgid "ELF file version does not match current one"
msgstr "La versión del fichero ELF no coincide con la actual"
-#: elf/dl-load.c:1641
+#: elf/dl-load.c:1636
msgid "only ET_DYN and ET_EXEC can be loaded"
msgstr "solamente pueden cargarse ET_DYN y ET_EXEC"
-#: elf/dl-load.c:1657
+#: elf/dl-load.c:1652
msgid "ELF file's phentsize not the expected size"
msgstr "El `phentsize' del fichero ELF no es el tamaño esperado"
-#: elf/dl-load.c:2222
+#: elf/dl-load.c:2217
msgid "wrong ELF class: ELFCLASS64"
msgstr "clase ELF errónea: ELFCLASS64"
-#: elf/dl-load.c:2223
+#: elf/dl-load.c:2218
msgid "wrong ELF class: ELFCLASS32"
msgstr "clase ELF errónea: ELFCLASS32"
-#: elf/dl-load.c:2226
+#: elf/dl-load.c:2221
msgid "cannot open shared object file"
msgstr "no se puede abrir el fichero del objeto compartido"
@@ -678,11 +680,7 @@ msgstr "fallo al asignar un segmento del objeto compartido"
msgid "cannot map zero-fill pages"
msgstr "no se pueden asignar páginas de tipo `zero-fill'"
-#: elf/dl-lookup.c:835
-msgid "relocation error"
-msgstr "error de relocalización"
-
-#: elf/dl-lookup.c:858
+#: elf/dl-lookup.c:830
msgid "symbol lookup error"
msgstr "error de búsqueda de símbolo"
@@ -690,19 +688,19 @@ msgstr "error de búsqueda de símbolo"
msgid "cannot extend global scope"
msgstr "no se puede extender el ámbito global"
-#: elf/dl-open.c:470
+#: elf/dl-open.c:474
msgid "TLS generation counter wrapped! Please report this."
msgstr "¡El contador de generaciones TLS ha vuelto a cero! Por favor envíe un informe."
-#: elf/dl-open.c:534
+#: elf/dl-open.c:538
msgid "invalid mode for dlopen()"
msgstr "modo inválido para dlopen()"
-#: elf/dl-open.c:551
+#: elf/dl-open.c:555
msgid "no more namespaces available for dlmopen()"
msgstr "no hay más espacios de nombres disponibles para dlmopen()"
-#: elf/dl-open.c:575
+#: elf/dl-open.c:579
msgid "invalid target namespace in dlmopen()"
msgstr "espacio de nombres objetivo inválido para dlmopen()"
@@ -710,21 +708,21 @@ msgstr "espacio de nombres objetivo inválido para dlmopen()"
msgid "cannot allocate memory in static TLS block"
msgstr "No se pudo asignar memoria en el bloque TLS estático"
-#: elf/dl-reloc.c:205
+#: elf/dl-reloc.c:213
msgid "cannot make segment writable for relocation"
msgstr "no se puede hacer el segmento escribible para su relocalización"
-#: elf/dl-reloc.c:276
+#: elf/dl-reloc.c:272
#, c-format
msgid "%s: out of memory to store relocation results for %s\n"
msgstr "%s: memoria agotada para almacenar los resultados de relocalización para %s\n"
# Se admiten sugerencias. sv
-#: elf/dl-reloc.c:292
+#: elf/dl-reloc.c:288
msgid "cannot restore segment prot after reloc"
msgstr "no se puede restaurar el `prot' del segmento después de la relocalización"
-#: elf/dl-reloc.c:323
+#: elf/dl-reloc.c:319
msgid "cannot apply additional memory protection after relocation"
msgstr "no se pueden aplicar protecciones de memoria adicionales después de relocalizar"
@@ -948,22 +946,22 @@ msgstr "se necesita un nombre de fichero absoluto para el fichero de configuraci
msgid "memory exhausted"
msgstr "memoria agotada"
-#: elf/ldconfig.c:1233
+#: elf/ldconfig.c:1234
#, c-format
msgid "%s:%u: cannot read directory %s"
msgstr "%s:%u: no se puede leer el directorio %s"
-#: elf/ldconfig.c:1281
+#: elf/ldconfig.c:1282
#, c-format
msgid "relative path `%s' used to build cache"
msgstr "se usa el camino relativo `%s' para construir el caché"
-#: elf/ldconfig.c:1311
+#: elf/ldconfig.c:1312
#, c-format
msgid "Can't chdir to /"
msgstr "No se puede cambiar al directorio /"
-#: elf/ldconfig.c:1352
+#: elf/ldconfig.c:1353
#, c-format
msgid "Can't open cache file directory %s\n"
msgstr "No se puede leer el directorio de ficheros de caché %s\n"
@@ -1034,96 +1032,102 @@ msgstr "salió con estado de salida desconocido"
msgid "error: you do not have read permission for"
msgstr "error: no tiene permiso de lectura para"
-#: elf/pldd-xx.c:105
+#: elf/pldd-xx.c:102
#, c-format
msgid "cannot find program header of process"
msgstr "no se puede encontrar la cabecera del proceso"
-#: elf/pldd-xx.c:110
+#: elf/pldd-xx.c:106
#, c-format
msgid "cannot read program header"
msgstr "no se puede leer la cabecera del programa"
-#: elf/pldd-xx.c:135
+#: elf/pldd-xx.c:128
#, c-format
msgid "cannot read dynamic section"
msgstr "no se puede leer la sección dinámica"
-#: elf/pldd-xx.c:147
+#: elf/pldd-xx.c:137
#, c-format
msgid "cannot read r_debug"
msgstr "no se puede leer r_debug"
-#: elf/pldd-xx.c:167
+#: elf/pldd-xx.c:154
#, c-format
msgid "cannot read program interpreter"
msgstr "no se puede leer el intérprete del programa"
-#: elf/pldd-xx.c:197
+#: elf/pldd-xx.c:183
#, c-format
msgid "cannot read link map"
msgstr "no se puede leer la asignación de enlace"
-#: elf/pldd-xx.c:209
+#: elf/pldd-xx.c:190
#, c-format
msgid "cannot read object name"
msgstr "no se puede leer el nombre del objeto"
-#: elf/pldd-xx.c:219
+#: elf/pldd-xx.c:197
#, fuzzy, c-format
#| msgid "cannot allocate memory for program header"
msgid "cannot allocate buffer for object name"
msgstr "no se puede asignar memoria para la cabecera del programa"
-#: elf/pldd.c:64
+#: elf/pldd.c:58
msgid "List dynamic shared objects loaded into process."
msgstr "Lista los objetos compartidos dinámicos cargados en este proceso."
-#: elf/pldd.c:68
+#: elf/pldd.c:62
msgid "PID"
msgstr "PID"
-#: elf/pldd.c:100
+#: elf/pldd.c:89
#, c-format
msgid "Exactly one parameter with process ID required.\n"
msgstr "Se requiere exactamente un parámetro con el ID de proceso.\n"
-#: elf/pldd.c:112
+#: elf/pldd.c:103
#, c-format
msgid "invalid process ID '%s'"
msgstr "ID de proceso inválido '%s'"
-#: elf/pldd.c:120
+#: elf/pldd.c:111
#, c-format
msgid "cannot open %s"
msgstr "no se puede abrir %s"
-#: elf/pldd.c:152
+#: elf/pldd.c:142
#, c-format
msgid "cannot open %s/task"
msgstr "no se puede abrir %s/tarea"
-#: elf/pldd.c:155
+#: elf/pldd.c:145
#, c-format
msgid "cannot prepare reading %s/task"
msgstr "no se puede preparar la lectura de %s/tarea"
-#: elf/pldd.c:168
+#: elf/pldd.c:158
#, c-format
msgid "invalid thread ID '%s'"
msgstr "ID de hilo inválido '%s'"
-#: elf/pldd.c:179
+#: elf/pldd.c:169
#, c-format
msgid "cannot attach to process %lu"
msgstr "no se puede asociar al proceso %lu"
-#: elf/pldd.c:294
+#: elf/pldd.c:184
+#, fuzzy, c-format
+#| msgid "invalid saved time"
+msgid "no valid %s/task entries"
+msgstr "la hora almacenada no es válida"
+
+#: elf/pldd.c:290
#, c-format
msgid "cannot get information about process %lu"
msgstr "no se puede obtener información sobre el proceso %lu"
-#: elf/pldd.c:307
+#: elf/pldd.c:303
#, c-format
msgid "process %lu is no ELF program"
msgstr "el proceso %lu no es un programa ELF"
@@ -1466,7 +1470,7 @@ msgstr "Información:"
msgid "list all known coded character sets"
msgstr "lista todos los juegos de caracteres conocidos"
-#: iconv/iconv_prog.c:64 locale/programs/localedef.c:120
+#: iconv/iconv_prog.c:64 locale/programs/localedef.c:124
msgid "Output control:"
msgstr "Control del resultado:"
@@ -1475,8 +1479,8 @@ msgid "omit invalid characters from output"
msgstr "se omiten los caracteres inválidos en la salida"
#: iconv/iconv_prog.c:66 iconv/iconvconfig.c:128
-#: locale/programs/localedef.c:113 locale/programs/localedef.c:115
-#: locale/programs/localedef.c:117 locale/programs/localedef.c:144
+#: locale/programs/localedef.c:117 locale/programs/localedef.c:119
+#: locale/programs/localedef.c:121 locale/programs/localedef.c:150
#: malloc/memusagestat.c:56
msgid "FILE"
msgstr "FICHERO"
@@ -1577,7 +1581,7 @@ msgstr "Crea un fichero de configuración de un módulo iconv de carga rápida."
msgid "[DIR...]"
msgstr "[DIR...]"
-#: iconv/iconvconfig.c:126 locale/programs/localedef.c:123
+#: iconv/iconvconfig.c:126 locale/programs/localedef.c:129
msgid "PATH"
msgstr "RUTA"
@@ -1781,14 +1785,14 @@ msgstr "los conjuntos de caracteres con estados de bloqueo no están soportados"
#: locale/programs/charmap.c:503 locale/programs/charmap.c:557
#: locale/programs/charmap.c:589 locale/programs/charmap.c:683
-#: locale/programs/charmap.c:738 locale/programs/charmap.c:779
-#: locale/programs/charmap.c:820
+#: locale/programs/charmap.c:739 locale/programs/charmap.c:780
+#: locale/programs/charmap.c:821
#, c-format
msgid "syntax error in %s definition: %s"
msgstr "error de sintaxis en la definición de %s: %s"
#: locale/programs/charmap.c:504 locale/programs/charmap.c:684
-#: locale/programs/charmap.c:780 locale/programs/repertoire.c:229
+#: locale/programs/charmap.c:781 locale/programs/repertoire.c:229
msgid "no symbolic name given"
msgstr "no se ha especificado ningún nombre simbólico"
@@ -1804,14 +1808,14 @@ msgstr "insuficiente número de bytes en la codificación del carácter"
msgid "too many bytes in character encoding"
msgstr "demasiados bytes en la codificación del carácter"
-#: locale/programs/charmap.c:591 locale/programs/charmap.c:739
-#: locale/programs/charmap.c:822 locale/programs/repertoire.c:295
+#: locale/programs/charmap.c:591 locale/programs/charmap.c:740
+#: locale/programs/charmap.c:823 locale/programs/repertoire.c:295
msgid "no symbolic name given for end of range"
msgstr "no se ha especificado ningún nombre simbólico para el final del rango"
#: locale/programs/charmap.c:615 locale/programs/ld-address.c:524
#: locale/programs/ld-collate.c:2616 locale/programs/ld-collate.c:3774
-#: locale/programs/ld-ctype.c:2117 locale/programs/ld-ctype.c:2829
+#: locale/programs/ld-ctype.c:2118 locale/programs/ld-ctype.c:2830
#: locale/programs/ld-identification.c:397
#: locale/programs/ld-measurement.c:213 locale/programs/ld-messages.c:295
#: locale/programs/ld-monetary.c:748 locale/programs/ld-name.c:262
@@ -1826,61 +1830,61 @@ msgstr "%1$s: la definición no termina con `END %1$s'"
msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
msgstr "solamente se permiten ANCHO definiciones después de la definición CHARMAP"
-#: locale/programs/charmap.c:656 locale/programs/charmap.c:719
+#: locale/programs/charmap.c:656 locale/programs/charmap.c:720
#, c-format
msgid "value for %s must be an integer"
msgstr "el valor para %s debe ser un número entero"
# Para entender este mensaje, pensar en Turing.
-#: locale/programs/charmap.c:847
+#: locale/programs/charmap.c:848
#, c-format
msgid "%s: error in state machine"
msgstr "%s: error en la máquina de estados"
-#: locale/programs/charmap.c:855 locale/programs/ld-address.c:540
+#: locale/programs/charmap.c:856 locale/programs/ld-address.c:540
#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967
-#: locale/programs/ld-ctype.c:2114 locale/programs/ld-ctype.c:2846
+#: locale/programs/ld-ctype.c:2115 locale/programs/ld-ctype.c:2847
#: locale/programs/ld-identification.c:413
#: locale/programs/ld-measurement.c:229 locale/programs/ld-messages.c:311
#: locale/programs/ld-monetary.c:764 locale/programs/ld-name.c:278
#: locale/programs/ld-numeric.c:341 locale/programs/ld-paper.c:228
#: locale/programs/ld-telephone.c:292 locale/programs/ld-time.c:990
-#: locale/programs/locfile.c:997 locale/programs/repertoire.c:323
+#: locale/programs/locfile.c:1010 locale/programs/repertoire.c:323
#, c-format
msgid "%s: premature end of file"
msgstr "%s: fin de fichero no esperado"
-#: locale/programs/charmap.c:874 locale/programs/charmap.c:885
+#: locale/programs/charmap.c:875 locale/programs/charmap.c:886
#, c-format
msgid "unknown character `%s'"
msgstr "carácter desconocido `%s'"
-#: locale/programs/charmap.c:893
+#: locale/programs/charmap.c:894
#, c-format
msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d"
msgstr ""
"el número de bytes para la sucesión de bytes de comienzo y final del rango\n"
"no es el mismo: %d vs %d"
-#: locale/programs/charmap.c:998 locale/programs/ld-collate.c:2893
+#: locale/programs/charmap.c:999 locale/programs/ld-collate.c:2893
#: locale/programs/repertoire.c:418
msgid "invalid names for character range"
msgstr "nombres inválidos para el rango de caracteres"
-#: locale/programs/charmap.c:1010 locale/programs/repertoire.c:430
+#: locale/programs/charmap.c:1011 locale/programs/repertoire.c:430
msgid "hexadecimal range format should use only capital characters"
msgstr "el formato de rango hexadecimal debe usar solamente caracteres en mayúsculas"
-#: locale/programs/charmap.c:1028 locale/programs/repertoire.c:448
+#: locale/programs/charmap.c:1029 locale/programs/repertoire.c:448
#, c-format
msgid "<%s> and <%s> are invalid names for range"
msgstr "<%s> y <%s> son nombres inválidos para el rango de caracteres"
-#: locale/programs/charmap.c:1034 locale/programs/repertoire.c:455
+#: locale/programs/charmap.c:1035 locale/programs/repertoire.c:455
msgid "upper limit in range is smaller than lower limit"
msgstr "el límite superior del rango es menor que el límite inferior"
-#: locale/programs/charmap.c:1092
+#: locale/programs/charmap.c:1093
msgid "resulting bytes for range not representable."
msgstr "los bytes resultantes para el rango no son representables."
@@ -1951,7 +1955,7 @@ msgid "%s: numeric country code `%d' not valid"
msgstr "%s: el código numérico de país `%d' no es válido"
#: locale/programs/ld-address.c:432 locale/programs/ld-address.c:469
-#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2478
+#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2479
#: locale/programs/ld-identification.c:309
#: locale/programs/ld-measurement.c:196 locale/programs/ld-messages.c:264
#: locale/programs/ld-monetary.c:503 locale/programs/ld-monetary.c:538
@@ -1974,7 +1978,7 @@ msgid "%s: unknown character in field `%s'"
msgstr "%s: carácter desconocido en el campo `%s'"
#: locale/programs/ld-address.c:521 locale/programs/ld-collate.c:3772
-#: locale/programs/ld-ctype.c:2826 locale/programs/ld-identification.c:394
+#: locale/programs/ld-ctype.c:2827 locale/programs/ld-identification.c:394
#: locale/programs/ld-measurement.c:210 locale/programs/ld-messages.c:293
#: locale/programs/ld-monetary.c:746 locale/programs/ld-name.c:260
#: locale/programs/ld-numeric.c:323 locale/programs/ld-paper.c:210
@@ -1987,8 +1991,8 @@ msgstr "%s: línea `END' incompleta"
#: locale/programs/ld-collate.c:602 locale/programs/ld-collate.c:898
#: locale/programs/ld-collate.c:911 locale/programs/ld-collate.c:2582
#: locale/programs/ld-collate.c:2603 locale/programs/ld-collate.c:3957
-#: locale/programs/ld-ctype.c:1846 locale/programs/ld-ctype.c:2104
-#: locale/programs/ld-ctype.c:2676 locale/programs/ld-ctype.c:2837
+#: locale/programs/ld-ctype.c:1847 locale/programs/ld-ctype.c:2105
+#: locale/programs/ld-ctype.c:2677 locale/programs/ld-ctype.c:2838
#: locale/programs/ld-identification.c:404
#: locale/programs/ld-measurement.c:220 locale/programs/ld-messages.c:302
#: locale/programs/ld-monetary.c:755 locale/programs/ld-name.c:269
@@ -2344,105 +2348,105 @@ msgstr "la tabla de caracteres `%s' ya está definida"
msgid "implementation limit: no more than %d character maps allowed"
msgstr "límite de la implementación: no se permiten más de %d tablas de caracteres"
-#: locale/programs/ld-ctype.c:1434 locale/programs/ld-ctype.c:1559
-#: locale/programs/ld-ctype.c:1665 locale/programs/ld-ctype.c:2341
-#: locale/programs/ld-ctype.c:3299
+#: locale/programs/ld-ctype.c:1435 locale/programs/ld-ctype.c:1560
+#: locale/programs/ld-ctype.c:1666 locale/programs/ld-ctype.c:2342
+#: locale/programs/ld-ctype.c:3302
#, c-format
msgid "%s: field `%s' does not contain exactly ten entries"
msgstr "%s: el campo `%s' no contiene exactamente diez entradas"
-#: locale/programs/ld-ctype.c:1462 locale/programs/ld-ctype.c:2036
+#: locale/programs/ld-ctype.c:1463 locale/programs/ld-ctype.c:2037
#, c-format
msgid "to-value <U%0*X> of range is smaller than from-value <U%0*X>"
msgstr "el valor `to' del rango <U%0*X> es más pequeño que el valor `from' <U%0*X>"
-#: locale/programs/ld-ctype.c:1589
+#: locale/programs/ld-ctype.c:1590
msgid "start and end character sequence of range must have the same length"
msgstr "los caracteres de comienzo y final del rango debe tener la misma longitud"
-#: locale/programs/ld-ctype.c:1596
+#: locale/programs/ld-ctype.c:1597
msgid "to-value character sequence is smaller than from-value sequence"
msgstr "el valor `to' de la sucesión de caracteres es más pequeño que el valor `from'"
-#: locale/programs/ld-ctype.c:1956 locale/programs/ld-ctype.c:2007
+#: locale/programs/ld-ctype.c:1957 locale/programs/ld-ctype.c:2008
msgid "premature end of `translit_ignore' definition"
msgstr "Fin no esperado de la definición `translit_ignore'"
-#: locale/programs/ld-ctype.c:1962 locale/programs/ld-ctype.c:2013
-#: locale/programs/ld-ctype.c:2055
+#: locale/programs/ld-ctype.c:1963 locale/programs/ld-ctype.c:2014
+#: locale/programs/ld-ctype.c:2056
msgid "syntax error"
msgstr "error de sintaxis"
-#: locale/programs/ld-ctype.c:2188
+#: locale/programs/ld-ctype.c:2189
#, c-format
msgid "%s: syntax error in definition of new character class"
msgstr "%s: error de sintaxis en la definición de una nueva clase de caracteres"
-#: locale/programs/ld-ctype.c:2203
+#: locale/programs/ld-ctype.c:2204
#, c-format
msgid "%s: syntax error in definition of new character map"
msgstr "%s: error de sintaxis en la definición de un nueva tabla de caracteres"
-#: locale/programs/ld-ctype.c:2363
+#: locale/programs/ld-ctype.c:2364
msgid "ellipsis range must be marked by two operands of same type"
msgstr "el rango de la elipsis debe estar marcada mediante dos operandos del mismo tipo"
-#: locale/programs/ld-ctype.c:2372
+#: locale/programs/ld-ctype.c:2373
msgid "with symbolic name range values the absolute ellipsis `...' must not be used"
msgstr "con valores de rango nombre simbólico la elipsis absoluta `...' no debe usarse"
-#: locale/programs/ld-ctype.c:2387
+#: locale/programs/ld-ctype.c:2388
msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'"
msgstr "con valores de rango UCS se debe utilizar la elipsis simbólica hexadecimal `..'"
-#: locale/programs/ld-ctype.c:2401
+#: locale/programs/ld-ctype.c:2402
msgid "with character code range values one must use the absolute ellipsis `...'"
msgstr "con valores de rango código de caracteres se debe utilizar la elipsis absoluta `...'"
-#: locale/programs/ld-ctype.c:2552
+#: locale/programs/ld-ctype.c:2553
#, c-format
msgid "duplicated definition for mapping `%s'"
msgstr "definición duplicada para la asignación `%s'"
-#: locale/programs/ld-ctype.c:2638 locale/programs/ld-ctype.c:2782
+#: locale/programs/ld-ctype.c:2639 locale/programs/ld-ctype.c:2783
#, c-format
msgid "%s: `translit_start' section does not end with `translit_end'"
msgstr "%s: la sección `translit_start' no termina con `translit_end'"
-#: locale/programs/ld-ctype.c:2733
+#: locale/programs/ld-ctype.c:2734
#, c-format
msgid "%s: duplicate `default_missing' definition"
msgstr "%s: definición `default_missing' duplicada"
-#: locale/programs/ld-ctype.c:2738
+#: locale/programs/ld-ctype.c:2739
msgid "previous definition was here"
msgstr "aquí estaba la definición anterior"
-#: locale/programs/ld-ctype.c:2760
+#: locale/programs/ld-ctype.c:2761
#, c-format
msgid "%s: no representable `default_missing' definition found"
msgstr "%s: no se ha encontrado ninguna definición de `default_missing' representable"
-#: locale/programs/ld-ctype.c:2877 locale/programs/ld-ctype.c:2973
-#: locale/programs/ld-ctype.c:2992 locale/programs/ld-ctype.c:3012
-#: locale/programs/ld-ctype.c:3032 locale/programs/ld-ctype.c:3052
-#: locale/programs/ld-ctype.c:3072 locale/programs/ld-ctype.c:3111
-#: locale/programs/ld-ctype.c:3131 locale/programs/ld-ctype.c:3195
-#: locale/programs/ld-ctype.c:3236 locale/programs/ld-ctype.c:3259
+#: locale/programs/ld-ctype.c:2878 locale/programs/ld-ctype.c:2974
+#: locale/programs/ld-ctype.c:2993 locale/programs/ld-ctype.c:3013
+#: locale/programs/ld-ctype.c:3033 locale/programs/ld-ctype.c:3053
+#: locale/programs/ld-ctype.c:3073 locale/programs/ld-ctype.c:3112
+#: locale/programs/ld-ctype.c:3132 locale/programs/ld-ctype.c:3198
+#: locale/programs/ld-ctype.c:3239 locale/programs/ld-ctype.c:3262
#, c-format
msgid "%s: character `%s' not defined while needed as default value"
msgstr "%s: el carácter `%s' no está definido cuando se necesitó como valor predeterminado"
-#: locale/programs/ld-ctype.c:2882 locale/programs/ld-ctype.c:2978
-#: locale/programs/ld-ctype.c:2997 locale/programs/ld-ctype.c:3017
-#: locale/programs/ld-ctype.c:3037 locale/programs/ld-ctype.c:3057
-#: locale/programs/ld-ctype.c:3077 locale/programs/ld-ctype.c:3116
-#: locale/programs/ld-ctype.c:3136 locale/programs/ld-ctype.c:3200
+#: locale/programs/ld-ctype.c:2883 locale/programs/ld-ctype.c:2979
+#: locale/programs/ld-ctype.c:2998 locale/programs/ld-ctype.c:3018
+#: locale/programs/ld-ctype.c:3038 locale/programs/ld-ctype.c:3058
+#: locale/programs/ld-ctype.c:3078 locale/programs/ld-ctype.c:3117
+#: locale/programs/ld-ctype.c:3137 locale/programs/ld-ctype.c:3203
#, c-format
msgid "%s: character `%s' in charmap not representable with one byte"
msgstr "%s: el carácter `%s' en la tabla de caracteres no es representable con un byte"
-#: locale/programs/ld-ctype.c:3242 locale/programs/ld-ctype.c:3265
+#: locale/programs/ld-ctype.c:3245 locale/programs/ld-ctype.c:3268
#, c-format
msgid "%s: character `%s' needed as default value not representable with one byte"
msgstr ""
@@ -2450,31 +2454,31 @@ msgstr ""
"con un byte"
# FIXME: Lo mismo de antes.
-#: locale/programs/ld-ctype.c:3321
+#: locale/programs/ld-ctype.c:3324
msgid "no output digits defined and none of the standard names in the charmap"
msgstr ""
"no hay ningún dígito de salida definido y ninguno de los nombres estándar\n"
"en el conjunto de caracteres"
# Pregunta: ¿De verdad existe transliteración en español? sv
-#: locale/programs/ld-ctype.c:3570
+#: locale/programs/ld-ctype.c:3573
#, c-format
msgid "%s: transliteration data from locale `%s' not available"
msgstr "%s: los datos de transliteración del local `%s' no están disponibles"
-#: locale/programs/ld-ctype.c:3669
+#: locale/programs/ld-ctype.c:3672
#, fuzzy, c-format
#| msgid "%s: table for class \"%s\": %lu bytes\n"
msgid "%s: table for class \"%s\": %lu bytes"
msgstr "%s: tabla para la clase \"%s\": %lu bytes\n"
-#: locale/programs/ld-ctype.c:3733
+#: locale/programs/ld-ctype.c:3736
#, fuzzy, c-format
#| msgid "%s: table for map \"%s\": %lu bytes\n"
msgid "%s: table for map \"%s\": %lu bytes"
msgstr "%s: tabla para la asignación \"%s\": %lu bytes\n"
-#: locale/programs/ld-ctype.c:3857
+#: locale/programs/ld-ctype.c:3860
#, fuzzy, c-format
#| msgid "%s: table for width: %lu bytes\n"
msgid "%s: table for width: %lu bytes"
@@ -2730,122 +2734,117 @@ msgstr ""
"NOMBRE\n"
"[-a|-m]"
-#: locale/programs/locale.c:190
-#, c-format
-msgid "Cannot set LC_CTYPE to default locale"
-msgstr "No se puede establecer LC_CTYPE al local predeterminado"
-
-#: locale/programs/locale.c:192
-#, c-format
-msgid "Cannot set LC_MESSAGES to default locale"
-msgstr "No se puede establecer LC_MESSAGES al local predeterminado"
-
-#: locale/programs/locale.c:205
+#: locale/programs/locale.c:522
#, c-format
-msgid "Cannot set LC_COLLATE to default locale"
-msgstr "No se puede establecer LC_COLLATE al local predeterminado"
+msgid "while preparing output"
+msgstr "al preparar la salida"
-#: locale/programs/locale.c:221
-#, c-format
-msgid "Cannot set LC_ALL to default locale"
+#: locale/programs/locale.c:998
+#, fuzzy, c-format
+#| msgid "Cannot set LC_ALL to default locale"
+msgid "Cannot set %s to default locale"
msgstr "No se puede establecer LC_ALL al local predeterminado"
-#: locale/programs/locale.c:521
+#: locale/programs/locale.c:1096
#, c-format
-msgid "while preparing output"
-msgstr "al preparar la salida"
+msgid "warning: The LOCPATH variable is set to \"%s\"\n"
+msgstr ""
-#: locale/programs/localedef.c:112
+#: locale/programs/localedef.c:116
msgid "Input Files:"
msgstr "Ficheros de Entrada:"
-#: locale/programs/localedef.c:114
+#: locale/programs/localedef.c:118
msgid "Symbolic character names defined in FILE"
msgstr "Nombres simbólicos de caracteres definidos en FICHERO"
-#: locale/programs/localedef.c:116
+#: locale/programs/localedef.c:120
msgid "Source definitions are found in FILE"
msgstr "Las definiciones fuente se encuentran en FICHERO"
-#: locale/programs/localedef.c:118
+#: locale/programs/localedef.c:122
msgid "FILE contains mapping from symbolic names to UCS4 values"
msgstr "El FICHERO contiene una asignación de nombres simbólicos a valores UCS4"
-#: locale/programs/localedef.c:122
+#: locale/programs/localedef.c:126
msgid "Create output even if warning messages were issued"
msgstr "Crea la salida incluso si hubo mensajes de aviso"
-#: locale/programs/localedef.c:123
+#: locale/programs/localedef.c:128
+msgid "Do not create hard links between installed locales"
+msgstr ""
+
+#: locale/programs/localedef.c:129
msgid "Optional output file prefix"
msgstr "Prefijo opcional del fichero de salida"
-#: locale/programs/localedef.c:124
+#: locale/programs/localedef.c:130
msgid "Strictly conform to POSIX"
msgstr "Actúa estrictamente de acuerdo con la norma POSIX"
-#: locale/programs/localedef.c:126
+#: locale/programs/localedef.c:132
msgid "Suppress warnings and information messages"
msgstr "Suprime los avisos y los mensajes de información"
-#: locale/programs/localedef.c:127
+#: locale/programs/localedef.c:133
msgid "Print more messages"
msgstr "Muestra más mensajes"
-#: locale/programs/localedef.c:128 locale/programs/localedef.c:131
+#: locale/programs/localedef.c:134 locale/programs/localedef.c:137
#, fuzzy
#| msgid "warning: "
msgid "<warnings>"
msgstr "atención: "
-#: locale/programs/localedef.c:129
+#: locale/programs/localedef.c:135
msgid "Comma-separated list of warnings to disable; supported warnings are: ascii, intcurrsym"
msgstr ""
-#: locale/programs/localedef.c:132
+#: locale/programs/localedef.c:138
msgid "Comma-separated list of warnings to enable; supported warnings are: ascii, intcurrsym"
msgstr ""
-#: locale/programs/localedef.c:135
+#: locale/programs/localedef.c:141
msgid "Archive control:"
msgstr "Control del archivo:"
-#: locale/programs/localedef.c:137
+#: locale/programs/localedef.c:143
msgid "Don't add new data to archive"
msgstr "No añade nuevos datos al archivo"
-#: locale/programs/localedef.c:139
+#: locale/programs/localedef.c:145
msgid "Add locales named by parameters to archive"
msgstr "Añade locales nombrados por parámetros al archivo"
-#: locale/programs/localedef.c:140
+#: locale/programs/localedef.c:146
msgid "Replace existing archive content"
msgstr "Reemplaza el contenido del archivo que exista"
-#: locale/programs/localedef.c:142
+#: locale/programs/localedef.c:148
msgid "Remove locales named by parameters from archive"
msgstr "Elimina locales nombrados por parámetros del archivo"
-#: locale/programs/localedef.c:143
+#: locale/programs/localedef.c:149
msgid "List content of archive"
msgstr "Lista el contenido del archivo"
-#: locale/programs/localedef.c:145
+#: locale/programs/localedef.c:151
msgid "locale.alias file to consult when making archive"
msgstr "fichero locale.alias que se consultará al crear el archivo"
-#: locale/programs/localedef.c:147
+#: locale/programs/localedef.c:153
msgid "Generate little-endian output"
msgstr "Genera un resultado little-endian"
-#: locale/programs/localedef.c:149
+#: locale/programs/localedef.c:155
msgid "Generate big-endian output"
msgstr "Genera un resultado big-endian"
-#: locale/programs/localedef.c:154
+#: locale/programs/localedef.c:160
msgid "Compile locale specification"
msgstr "Compila una especificación de locales"
-#: locale/programs/localedef.c:157
+#: locale/programs/localedef.c:163
msgid ""
"NAME\n"
"[--add-to-archive|--delete-from-archive] FILE...\n"
@@ -2855,35 +2854,35 @@ msgstr ""
"[--add-to-archive|--delete-from-archive] FICHERO...\n"
"--list-archive [FICHERO]"
-#: locale/programs/localedef.c:232
+#: locale/programs/localedef.c:238
#, c-format
msgid "cannot create directory for output files"
msgstr "no se puede crear el directorio para los ficheros de salida"
-#: locale/programs/localedef.c:243
+#: locale/programs/localedef.c:249
msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
msgstr "Error fatal: el sistema no define `_POSIX2_LOCALEDEF'"
-#: locale/programs/localedef.c:257 locale/programs/localedef.c:273
-#: locale/programs/localedef.c:663 locale/programs/localedef.c:683
+#: locale/programs/localedef.c:263 locale/programs/localedef.c:279
+#: locale/programs/localedef.c:673 locale/programs/localedef.c:693
#, c-format
msgid "cannot open locale definition file `%s'"
msgstr "no se puede abrir el fichero de definición de locales `%s'"
# OJO: %s podría ser un directorio.
-#: locale/programs/localedef.c:297
+#: locale/programs/localedef.c:303
#, c-format
msgid "cannot write output files to `%s'"
msgstr "no se puede escribir en el fichero de salida `%s'"
-#: locale/programs/localedef.c:303
+#: locale/programs/localedef.c:309
#, fuzzy
#| msgid "no output file produced because warnings were issued"
msgid "no output file produced because errors were issued"
msgstr "no se ha producido ningún fichero de salida debido a la existencia de avisos"
# ¿repertorios?
-#: locale/programs/localedef.c:431
+#: locale/programs/localedef.c:441
#, c-format
msgid ""
"System's directory for character maps : %s\n"
@@ -2896,11 +2895,11 @@ msgstr ""
"\t\t ruta de búsqueda de locales : %s\n"
"%s"
-#: locale/programs/localedef.c:631
+#: locale/programs/localedef.c:641
msgid "circular dependencies between locale definitions"
msgstr "dependencias circulares entre definiciones de locales"
-#: locale/programs/localedef.c:637
+#: locale/programs/localedef.c:647
#, c-format
msgid "cannot add already read locale `%s' a second time"
msgstr "no se puede añadir el local ya leído `%s' por segunda vez"
@@ -3056,24 +3055,24 @@ msgstr "no se puede abrir el fichero de salida `%s' para la categoría `%s'"
msgid "failure while writing data for category `%s'"
msgstr "error al escribir los datos para la categoría `%s'"
-#: locale/programs/locfile.c:917
+#: locale/programs/locfile.c:930
#, c-format
msgid "cannot create output file `%s' for category `%s'"
msgstr "no se puede crear el fichero de salida `%s' para la categoría `%s'"
-#: locale/programs/locfile.c:953
+#: locale/programs/locfile.c:966
msgid "expecting string argument for `copy'"
msgstr "se esperaba un argumento de cadena de caracteres para `copy'"
-#: locale/programs/locfile.c:957
+#: locale/programs/locfile.c:970
msgid "locale name should consist only of portable characters"
msgstr "el nombre del local debe estar formado por caracteres portables únicamente"
-#: locale/programs/locfile.c:976
+#: locale/programs/locfile.c:989
msgid "no other keyword shall be specified when `copy' is used"
msgstr "cuando se utiliza `copy' no debe especificarse ninguna otra palabra clave"
-#: locale/programs/locfile.c:990
+#: locale/programs/locfile.c:1003
#, c-format
msgid "`%1$s' definition does not end with `END %1$s'"
msgstr "La definición `%1$s' no termina con `END %1$s'"
@@ -3932,12 +3931,12 @@ msgstr "yp_update: no se puede convertir el nombre del `host' a nombre de red\n"
msgid "yp_update: cannot get server address\n"
msgstr "yp_update: no se puede encontrar la dirección del servidor\n"
-#: nscd/aicache.c:83 nscd/hstcache.c:452
+#: nscd/aicache.c:82 nscd/hstcache.c:452
#, c-format
msgid "Haven't found \"%s\" in hosts cache!"
msgstr "No se ha encontrado \"%s\" en el caché de `hosts'"
-#: nscd/aicache.c:85 nscd/hstcache.c:454
+#: nscd/aicache.c:84 nscd/hstcache.c:454
#, c-format
msgid "Reloading \"%s\" in hosts cache!"
msgstr "Recargando \"%s\" en el caché de hosts"
@@ -4266,22 +4265,22 @@ msgstr "se han liberado %zu bytes en la caché %s"
msgid "no more memory for database '%s'"
msgstr "no hay más memoria para la base de datos '%s'"
-#: nscd/netgroupcache.c:121
+#: nscd/netgroupcache.c:122
#, c-format
msgid "Haven't found \"%s\" in netgroup cache!"
msgstr "No se ha encontrado \"%s\" en el caché de netgroup"
-#: nscd/netgroupcache.c:123
+#: nscd/netgroupcache.c:124
#, c-format
msgid "Reloading \"%s\" in netgroup cache!"
msgstr "Recargando \"%s\" en el caché de netgroup"
-#: nscd/netgroupcache.c:469
+#: nscd/netgroupcache.c:470
#, c-format
msgid "Haven't found \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr "No se ha encontrado \"%s (%s,%s,%s)\" en el caché de netgroup"
-#: nscd/netgroupcache.c:472
+#: nscd/netgroupcache.c:473
#, c-format
msgid "Reloading \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr "Recargando \"%s (%s,%s,%s)\" en el caché de netgroup"
@@ -4334,7 +4333,7 @@ msgstr "Utiliza una caché separada para cada usuario"
msgid "Name Service Cache Daemon."
msgstr "Daemon de Caché del Servicio de Nombres."
-#: nscd/nscd.c:155 nss/getent.c:967 nss/makedb.c:206
+#: nscd/nscd.c:155 nss/getent.c:987 nss/makedb.c:206
#, c-format
msgid "wrong number of arguments"
msgstr "número incorrecto de argumentos"
@@ -4442,27 +4441,27 @@ msgstr "Error de análisis: %s"
msgid "Must specify user name for server-user option"
msgstr "Debe especificar un nombre de usuario para la opción `server-user'"
-#: nscd/nscd_conf.c:198
+#: nscd/nscd_conf.c:201
#, c-format
msgid "Must specify user name for stat-user option"
msgstr "Debe especificar un nombre de usuario para la opción `stat-user'"
-#: nscd/nscd_conf.c:255
+#: nscd/nscd_conf.c:259
#, c-format
msgid "Must specify value for restart-interval option"
msgstr "Debe especificar un valor para la opción `restart-interval'"
-#: nscd/nscd_conf.c:269
+#: nscd/nscd_conf.c:273
#, c-format
msgid "Unknown option: %s %s %s"
msgstr "Opción desconocida: %s %s %s"
-#: nscd/nscd_conf.c:282
+#: nscd/nscd_conf.c:286
#, c-format
msgid "cannot get current working directory: %s; disabling paranoia mode"
msgstr "no se puede obtener el directorio actual: %s; se desactiva el modo paranoia"
-#: nscd/nscd_conf.c:302
+#: nscd/nscd_conf.c:306
#, c-format
msgid "maximum file size for %s database too small"
msgstr "el tamaño máximo de fichero para la base de datos %s es demasiado pequeño"
@@ -4728,47 +4727,47 @@ msgstr "No se ha encontrado \"%s\" en el caché de `services'"
msgid "Reloading \"%s\" in services cache!"
msgstr "Recargando \"%s\" en el caché de services"
-#: nss/getent.c:54
+#: nss/getent.c:55
msgid "database [key ...]"
msgstr "basededatos [clave ...]"
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "CONFIG"
msgstr "CONFIG"
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "Service configuration to be used"
msgstr "Configuración del servicio"
-#: nss/getent.c:60
+#: nss/getent.c:61
msgid "disable IDN encoding"
msgstr "desactiva la codificación IDN"
-#: nss/getent.c:65
+#: nss/getent.c:66
msgid "Get entries from administrative database."
msgstr "Obtiene entradas de la base de datos administrativa."
-#: nss/getent.c:149 nss/getent.c:442 nss/getent.c:489
+#: nss/getent.c:150 nss/getent.c:462 nss/getent.c:509
#, c-format
msgid "Enumeration not supported on %s\n"
msgstr "La enumeración no está soportada sobre %s\n"
-#: nss/getent.c:497 nss/getent.c:510
+#: nss/getent.c:517 nss/getent.c:530
#, fuzzy, c-format
#| msgid "Could not create log file"
msgid "Could not allocate group list: %m\n"
msgstr "No se pudo crear el fichero de registro"
-#: nss/getent.c:881
+#: nss/getent.c:901
#, c-format
msgid "Unknown database name"
msgstr "Nombre de base de datos desconocido"
-#: nss/getent.c:911
+#: nss/getent.c:931
msgid "Supported databases:\n"
msgstr "Bases de datos admitidas:\n"
-#: nss/getent.c:977
+#: nss/getent.c:997
#, c-format
msgid "Unknown database: %s\n"
msgstr "Base de datos desconocida: %s\n"
@@ -5043,11 +5042,11 @@ msgstr "La expresión regular es demasiado grande"
msgid "Unmatched ) or \\)"
msgstr ") ó \\) desemparejados"
-#: posix/regcomp.c:689
+#: posix/regcomp.c:676
msgid "No previous regular expression"
msgstr "No existe ninguna expresión regular anterior"
-#: posix/wordexp.c:1815
+#: posix/wordexp.c:1816
msgid "parameter null or not set"
msgstr "parámetro nulo o no establecido"
@@ -5242,7 +5241,7 @@ msgstr "Hay búfers de salida disponibles"
msgid "Input message available"
msgstr "Mensaje de entrada disponible"
-#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:381 timezone/zic.c:520
+#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:375 timezone/zic.c:561
msgid "I/O error"
msgstr "Error de E/S"
@@ -5325,7 +5324,7 @@ msgstr "Señal desconocida %d"
#: sunrpc/auth_unix.c:112 sunrpc/clnt_tcp.c:124 sunrpc/clnt_udp.c:139
#: sunrpc/clnt_unix.c:125 sunrpc/svc_tcp.c:189 sunrpc/svc_tcp.c:233
#: sunrpc/svc_udp.c:161 sunrpc/svc_unix.c:189 sunrpc/svc_unix.c:229
-#: sunrpc/xdr.c:628 sunrpc/xdr.c:788 sunrpc/xdr_array.c:102
+#: sunrpc/xdr.c:631 sunrpc/xdr.c:791 sunrpc/xdr_array.c:102
#: sunrpc/xdr_rec.c:153 sunrpc/xdr_ref.c:79
msgid "out of memory\n"
msgstr "memoria agotada\n"
@@ -6823,20 +6822,33 @@ msgstr "Esta vez sí que lo has roto"
# Bueno, pues después de pensarlo mucho, he seguido el ejemplo de la
# traducción francesa (traducción libre). sv
#. TRANS Go home and have a glass of warm, dairy-fresh milk.
-#: sysdeps/gnu/errlist.c:978
+#. TRANS @c Okay. Since you are dying to know, I'll tell you.
+#. TRANS @c This is a joke, obviously. There is a children's song which begins,
+#. TRANS @c "Old McDonald had a farm, e-i-e-i-o." Every time I see the (real)
+#. TRANS @c errno macro EIO, I think about that song. Probably most of my
+#. TRANS @c compatriots who program on Unix do, too. One of them must have stayed
+#. TRANS @c up a little too late one night and decided to add it to Hurd or Glibc.
+#. TRANS @c Whoever did it should be castigated, but it made me laugh.
+#. TRANS @c --jtobey@channel1.com
+#. TRANS @c
+#. TRANS @c "bought the farm" means "died". -jtobey
+#. TRANS @c
+#. TRANS @c Translators, please do not translate this litteraly, translate it into
+#. TRANS @c an idiomatic funny way of saying that the computer died.
+#: sysdeps/gnu/errlist.c:991
msgid "Computer bought the farm"
msgstr "Anda, vete a casa y tómate un vasito de leche"
#. TRANS This error code has no purpose.
-#: sysdeps/gnu/errlist.c:987
+#: sysdeps/gnu/errlist.c:1000
msgid "Gratuitous error"
msgstr "Error injustificado"
-#: sysdeps/gnu/errlist.c:995
+#: sysdeps/gnu/errlist.c:1008
msgid "Bad message"
msgstr "Mensaje erróneo"
-#: sysdeps/gnu/errlist.c:1003
+#: sysdeps/gnu/errlist.c:1016
msgid "Identifier removed"
msgstr "El identificador se ha eliminado"
@@ -6846,42 +6858,42 @@ msgstr "El identificador se ha eliminado"
# lo encuentro documentado
# "Hop" es "saltito", por ej. un enlace directo que es parte de la ruta
# entre dos máquinas. --jtobey
-#: sysdeps/gnu/errlist.c:1011
+#: sysdeps/gnu/errlist.c:1024
msgid "Multihop attempted"
msgstr "Se ha intentado un `multihop'"
-#: sysdeps/gnu/errlist.c:1019
+#: sysdeps/gnu/errlist.c:1032
msgid "No data available"
msgstr "No hay datos disponibles"
-#: sysdeps/gnu/errlist.c:1027
+#: sysdeps/gnu/errlist.c:1040
msgid "Link has been severed"
msgstr "El enlace se ha cortado"
-#: sysdeps/gnu/errlist.c:1035
+#: sysdeps/gnu/errlist.c:1048
msgid "No message of desired type"
msgstr "Ningún mensaje del tipo deseado"
# FIXME: Este mensaje debería ser igual al anterior. sv
-#: sysdeps/gnu/errlist.c:1043
+#: sysdeps/gnu/errlist.c:1056
msgid "Out of streams resources"
msgstr "Alcanzado el límite de recursos de `streams'"
# FUZZY
# Tal vez "de flujo", pero no sé si me atrevo... sv
-#: sysdeps/gnu/errlist.c:1051
+#: sysdeps/gnu/errlist.c:1064
msgid "Device not a stream"
msgstr "El dispositivo no es un `stream'"
-#: sysdeps/gnu/errlist.c:1059
+#: sysdeps/gnu/errlist.c:1072
msgid "Value too large for defined data type"
msgstr "Valor demasiado grande para el tipo de datos definido"
-#: sysdeps/gnu/errlist.c:1067
+#: sysdeps/gnu/errlist.c:1080
msgid "Protocol error"
msgstr "Error de protocolo"
-#: sysdeps/gnu/errlist.c:1075
+#: sysdeps/gnu/errlist.c:1088
msgid "Timer expired"
msgstr "El temporizador llegó al final"
@@ -6889,66 +6901,66 @@ msgstr "El temporizador llegó al final"
#. TRANS completed. @xref{Asynchronous I/O}. When you call @code{aio_cancel},
#. TRANS the normal result is for the operations affected to complete with this
#. TRANS error; @pxref{Cancel AIO Operations}.
-#: sysdeps/gnu/errlist.c:1087
+#: sysdeps/gnu/errlist.c:1100
msgid "Operation canceled"
msgstr "Operación cancelada"
-#: sysdeps/gnu/errlist.c:1095
+#: sysdeps/gnu/errlist.c:1108
msgid "Owner died"
msgstr "El propietario ha muerto"
-#: sysdeps/gnu/errlist.c:1103
+#: sysdeps/gnu/errlist.c:1116
msgid "State not recoverable"
msgstr "El estado es irrecuperable"
# FUZZY
-#: sysdeps/gnu/errlist.c:1111
+#: sysdeps/gnu/errlist.c:1124
msgid "Interrupted system call should be restarted"
msgstr "La llamada al sistema interrumpida debería volverse a iniciar"
-#: sysdeps/gnu/errlist.c:1119
+#: sysdeps/gnu/errlist.c:1132
msgid "Channel number out of range"
msgstr "Número de canal fuera de rango"
-#: sysdeps/gnu/errlist.c:1127
+#: sysdeps/gnu/errlist.c:1140
msgid "Level 2 not synchronized"
msgstr "Nivel 2 no sincronizado"
-#: sysdeps/gnu/errlist.c:1135
+#: sysdeps/gnu/errlist.c:1148
msgid "Level 3 halted"
msgstr "Nivel 3 detenido"
-#: sysdeps/gnu/errlist.c:1143
+#: sysdeps/gnu/errlist.c:1156
msgid "Level 3 reset"
msgstr "Nivel 3 restablecido"
-#: sysdeps/gnu/errlist.c:1151
+#: sysdeps/gnu/errlist.c:1164
msgid "Link number out of range"
msgstr "Número de enlace fuera de rango"
-#: sysdeps/gnu/errlist.c:1159
+#: sysdeps/gnu/errlist.c:1172
msgid "Protocol driver not attached"
msgstr "Protocolo no disponible"
# FIXME: ¿No sería más bien CSI structures?
-#: sysdeps/gnu/errlist.c:1167
+#: sysdeps/gnu/errlist.c:1180
msgid "No CSI structure available"
msgstr "No quedan estructuras CSI disponibles"
-#: sysdeps/gnu/errlist.c:1175
+#: sysdeps/gnu/errlist.c:1188
msgid "Level 2 halted"
msgstr "Nivel 2 detenido"
-#: sysdeps/gnu/errlist.c:1183
+#: sysdeps/gnu/errlist.c:1196
msgid "Invalid exchange"
msgstr "Intercambio inválido"
-#: sysdeps/gnu/errlist.c:1191
+#: sysdeps/gnu/errlist.c:1204
msgid "Invalid request descriptor"
msgstr "El descriptor de fichero solicitado es erróneo"
# FUZZY em+
-#: sysdeps/gnu/errlist.c:1199
+#: sysdeps/gnu/errlist.c:1212
msgid "Exchange full"
msgstr "Intercambio lleno"
@@ -6959,34 +6971,34 @@ msgstr "Intercambio lleno"
# ánodo y cátodo para los polos positivo y negativo, pero no sé
# si esto será lo mismo.
# De cualquier forma, mantengo el FUZZY por si sale algo mejor. sv+
-#: sysdeps/gnu/errlist.c:1207
+#: sysdeps/gnu/errlist.c:1220
msgid "No anode"
msgstr "No hay ningún ánodo"
-#: sysdeps/gnu/errlist.c:1215
+#: sysdeps/gnu/errlist.c:1228
msgid "Invalid request code"
msgstr "Código de petición incorrecto"
# ¿Ranura no válida?, creo que no hay traducción para slot :) em+
# Antes: `slot' incorrecto
-#: sysdeps/gnu/errlist.c:1223
+#: sysdeps/gnu/errlist.c:1236
msgid "Invalid slot"
msgstr "Ranura inválida"
# FUZZY em+
-#: sysdeps/gnu/errlist.c:1231
+#: sysdeps/gnu/errlist.c:1244
msgid "File locking deadlock error"
msgstr "error `deadlock' de bloqueo de ficheros"
-#: sysdeps/gnu/errlist.c:1239
+#: sysdeps/gnu/errlist.c:1252
msgid "Bad font file format"
msgstr "Formato de fichero fuente incorrecto"
-#: sysdeps/gnu/errlist.c:1247
+#: sysdeps/gnu/errlist.c:1260
msgid "Machine is not on the network"
msgstr "La máquina no está en red"
-#: sysdeps/gnu/errlist.c:1255
+#: sysdeps/gnu/errlist.c:1268
msgid "Package not installed"
msgstr "El paquete no está instalado"
@@ -6994,43 +7006,43 @@ msgstr "El paquete no está instalado"
# Lo dejo fuzzy aposta, a ver qué se os ocurre em+
# Pues mira, advertencia es warning, advertise es anunciar.
# De momento lo cambio. sv
-#: sysdeps/gnu/errlist.c:1263
+#: sysdeps/gnu/errlist.c:1276
msgid "Advertise error"
msgstr "Error de anuncio"
-#: sysdeps/gnu/errlist.c:1271
+#: sysdeps/gnu/errlist.c:1284
msgid "Srmount error"
msgstr "Error de `srmount'"
-#: sysdeps/gnu/errlist.c:1279
+#: sysdeps/gnu/errlist.c:1292
msgid "Communication error on send"
msgstr "Error de comunicación al enviar"
-#: sysdeps/gnu/errlist.c:1287
+#: sysdeps/gnu/errlist.c:1300
msgid "RFS specific error"
msgstr "error específico de RFS"
-#: sysdeps/gnu/errlist.c:1295
+#: sysdeps/gnu/errlist.c:1308
msgid "Name not unique on network"
msgstr "El nombre no es único en la red"
-#: sysdeps/gnu/errlist.c:1303
+#: sysdeps/gnu/errlist.c:1316
msgid "File descriptor in bad state"
msgstr "Descriptor de fichero en mal estado"
-#: sysdeps/gnu/errlist.c:1311
+#: sysdeps/gnu/errlist.c:1324
msgid "Remote address changed"
msgstr "La dirección remota ha cambiado"
-#: sysdeps/gnu/errlist.c:1319
+#: sysdeps/gnu/errlist.c:1332
msgid "Can not access a needed shared library"
msgstr "No se puede acceder a una biblioteca compartida necesaria"
-#: sysdeps/gnu/errlist.c:1327
+#: sysdeps/gnu/errlist.c:1340
msgid "Accessing a corrupted shared library"
msgstr "Accediendo a una biblioteca compartida que está corrompida"
-#: sysdeps/gnu/errlist.c:1335
+#: sysdeps/gnu/errlist.c:1348
msgid ".lib section in a.out corrupted"
msgstr "la sección .lib en el a.out está corrompida"
@@ -7040,73 +7052,73 @@ msgstr "la sección .lib en el a.out está corrompida"
# el mensaje, pues creo que por el contexto el usuario sabrá a qué
# se refiere. De paso, lo pongo en pasado (se intentaron) porque
# es un error sobre algo que ya ha ocurrido (el intento fallido). sv
-#: sysdeps/gnu/errlist.c:1343
+#: sysdeps/gnu/errlist.c:1356
msgid "Attempting to link in too many shared libraries"
msgstr "Se intentaron enlazar demasiadas bibliotecas compartidas"
-#: sysdeps/gnu/errlist.c:1351
+#: sysdeps/gnu/errlist.c:1364
msgid "Cannot exec a shared library directly"
msgstr "No se puede ejecutar una biblioteca compartida directamente"
# FUZZY FUZZY
# ¡ Esto no hay quien lo traduzca ! em+
-#: sysdeps/gnu/errlist.c:1359
+#: sysdeps/gnu/errlist.c:1372
msgid "Streams pipe error"
msgstr "Error de tubería de `streams'"
# FUZZY
# O me cojo otras traducciones o ando perdido em+
-#: sysdeps/gnu/errlist.c:1367
+#: sysdeps/gnu/errlist.c:1380
msgid "Structure needs cleaning"
msgstr "La estructura necesita una limpieza"
-#: sysdeps/gnu/errlist.c:1375
+#: sysdeps/gnu/errlist.c:1388
msgid "Not a XENIX named type file"
msgstr "No es un fichero XENIX del tipo `named'"
-#: sysdeps/gnu/errlist.c:1383
+#: sysdeps/gnu/errlist.c:1396
msgid "No XENIX semaphores available"
msgstr "No quedan semáforos XENIX disponibles"
# FUZZY em+
# ¿Será esto un `named pipe'? ¿cómo se traduce?
-#: sysdeps/gnu/errlist.c:1391
+#: sysdeps/gnu/errlist.c:1404
msgid "Is a named type file"
msgstr "Es un fichero de tipo `named'"
-#: sysdeps/gnu/errlist.c:1399
+#: sysdeps/gnu/errlist.c:1412
msgid "Remote I/O error"
msgstr "Error de E/S en la máquina remota"
-#: sysdeps/gnu/errlist.c:1407
+#: sysdeps/gnu/errlist.c:1420
msgid "No medium found"
msgstr "No se ha encontrado el medio"
-#: sysdeps/gnu/errlist.c:1415
+#: sysdeps/gnu/errlist.c:1428
msgid "Wrong medium type"
msgstr "Tipo de medio erróneo"
-#: sysdeps/gnu/errlist.c:1423
+#: sysdeps/gnu/errlist.c:1436
msgid "Required key not available"
msgstr "La clave requerida no está disponible"
-#: sysdeps/gnu/errlist.c:1431
+#: sysdeps/gnu/errlist.c:1444
msgid "Key has expired"
msgstr "La clave ha caducado"
-#: sysdeps/gnu/errlist.c:1439
+#: sysdeps/gnu/errlist.c:1452
msgid "Key has been revoked"
msgstr "La clave ha sido revocada"
-#: sysdeps/gnu/errlist.c:1447
+#: sysdeps/gnu/errlist.c:1460
msgid "Key was rejected by service"
msgstr "La clave fue rechazada por el servicio"
-#: sysdeps/gnu/errlist.c:1455
+#: sysdeps/gnu/errlist.c:1468
msgid "Operation not possible due to RF-kill"
msgstr "Operación imposible por estar la radiofrecuencia desactivada"
-#: sysdeps/gnu/errlist.c:1463
+#: sysdeps/gnu/errlist.c:1476
msgid "Memory page has hardware error"
msgstr "La página de memoria tiene un error de hardware"
@@ -7240,31 +7252,31 @@ msgstr ""
msgid "can't disable CET"
msgstr ""
-#: timezone/zdump.c:338
+#: timezone/zdump.c:332
#, fuzzy
#| msgid "has fewer than 3 alphabetics"
msgid "has fewer than 3 characters"
msgstr "tiene menos de 3 caracteres alfabéticos"
-#: timezone/zdump.c:340
+#: timezone/zdump.c:334
#, fuzzy
#| msgid "has more than 6 alphabetics"
msgid "has more than 6 characters"
msgstr "tiene más de 6 caracteres alfabéticos"
-#: timezone/zdump.c:342
+#: timezone/zdump.c:336
msgid "has characters other than ASCII alphanumerics, '-' or '+'"
msgstr ""
-#: timezone/zdump.c:347
+#: timezone/zdump.c:341
#, c-format
msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n"
msgstr "%s: atención: zona \"%s\" abreviatura \"%s\" %s\n"
-#: timezone/zdump.c:393
+#: timezone/zdump.c:387
#, c-format
msgid ""
-"%s: usage: %s OPTIONS ZONENAME ...\n"
+"%s: usage: %s OPTIONS TIMEZONE ...\n"
"Options include:\n"
" -c [L,]U Start at year L (default -500), end before year U (default 2500)\n"
" -t [L,]U Start at time L, end before time U (in seconds since 1970)\n"
@@ -7277,53 +7289,60 @@ msgid ""
"Report bugs to %s.\n"
msgstr ""
-#: timezone/zdump.c:479
+#: timezone/zdump.c:473
#, c-format
msgid "%s: wild -c argument %s\n"
msgstr "%s: argumento %s descabellado para -c\n"
-#: timezone/zdump.c:512
+#: timezone/zdump.c:506
#, c-format
msgid "%s: wild -t argument %s\n"
msgstr "%s: argumento %s descabellado para -t\n"
-#: timezone/zic.c:398
+#: timezone/zic.c:429
#, c-format
msgid "%s: Memory exhausted: %s\n"
msgstr "%s: Memoria agotada: %s\n"
# Sugerencia: Desbordamiento de fecha. (?) sv+
-#: timezone/zic.c:406
+#: timezone/zic.c:437
#, fuzzy
#| msgid "time overflow"
msgid "size overflow"
msgstr "desbordamiento horario"
-#: timezone/zic.c:454
+# Sugerencia: Desbordamiento de fecha. (?) sv+
+#: timezone/zic.c:447
+#, fuzzy
+#| msgid "time overflow"
+msgid "alignment overflow"
+msgstr "desbordamiento horario"
+
+#: timezone/zic.c:495
#, fuzzy
#| msgid "Integer overflow"
msgid "integer overflow"
msgstr "Desbordamiento entero"
-#: timezone/zic.c:488
+#: timezone/zic.c:529
#, fuzzy, c-format
#| msgid "\"%s\", line %d: "
msgid "\"%s\", line %<PRIdMAX>: "
msgstr "\"%s\", línea %d: "
-#: timezone/zic.c:491
+#: timezone/zic.c:532
#, fuzzy, c-format
#| msgid " (rule from \"%s\", line %d)"
msgid " (rule from \"%s\", line %<PRIdMAX>)"
msgstr " (regla desde \"%s\", línea %d)"
-#: timezone/zic.c:510
+#: timezone/zic.c:551
#, c-format
msgid "warning: "
msgstr "atención: "
# FIXME: Decir al autor que no use tabs. sv
-#: timezone/zic.c:535
+#: timezone/zic.c:576
#, fuzzy, c-format
#| msgid ""
#| "%s: usage is %s [ --version ] [ --help ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n"
@@ -7333,7 +7352,7 @@ msgstr "atención: "
msgid ""
"%s: usage is %s [ --version ] [ --help ] [ -v ] \\\n"
"\t[ -l localtime ] [ -p posixrules ] [ -d directory ] \\\n"
-"\t[ -L leapseconds ] [ filename ... ]\n"
+"\t[ -t localtime-link ] [ -L leapseconds ] [ filename ... ]\n"
"\n"
"Report bugs to %s.\n"
msgstr ""
@@ -7342,268 +7361,243 @@ msgstr ""
"\n"
"Comunicar errores a %s.\n"
-#: timezone/zic.c:558
+#: timezone/zic.c:599
#, fuzzy, c-format
#| msgid "%s: Can't create %s: %s\n"
msgid "%s: Can't chdir to %s: %s\n"
msgstr "%s: No se puede crear %s: %s\n"
-#: timezone/zic.c:590
+#: timezone/zic.c:632
msgid "wild compilation-time specification of zic_t"
msgstr "especificación de zic_t en tiempo de compilación descabellada"
-#: timezone/zic.c:610
+#: timezone/zic.c:652
#, c-format
msgid "%s: More than one -d option specified\n"
msgstr "%s: La opción -d se ha especificado más de una vez\n"
-#: timezone/zic.c:620
+#: timezone/zic.c:662
#, c-format
msgid "%s: More than one -l option specified\n"
msgstr "%s: La opción -l se ha especificado más de una vez\n"
-#: timezone/zic.c:630
+#: timezone/zic.c:672
#, c-format
msgid "%s: More than one -p option specified\n"
msgstr "%s: La opción -p se ha especificado más de una vez\n"
-#: timezone/zic.c:640
+#: timezone/zic.c:680
+#, fuzzy, c-format
+#| msgid "%s: More than one -d option specified\n"
+msgid "%s: More than one -t option specified\n"
+msgstr "%s: La opción -d se ha especificado más de una vez\n"
+
+#: timezone/zic.c:689
+msgid "-y is obsolescent"
+msgstr ""
+
+#: timezone/zic.c:693
#, c-format
msgid "%s: More than one -y option specified\n"
msgstr "%s: La opción -y se ha especificado más de una vez\n"
-#: timezone/zic.c:650
+#: timezone/zic.c:703
#, c-format
msgid "%s: More than one -L option specified\n"
msgstr "%s: La opción -L se ha especificado más de una vez\n"
-#: timezone/zic.c:659
+#: timezone/zic.c:712
msgid "-s ignored"
msgstr ""
-#: timezone/zic.c:698
+#: timezone/zic.c:753
msgid "link to link"
msgstr "enlace a un enlace"
-#: timezone/zic.c:701 timezone/zic.c:705
+#: timezone/zic.c:756 timezone/zic.c:760
#, fuzzy
#| msgid "Too many links"
msgid "command line"
msgstr "Demasiados enlaces"
-#: timezone/zic.c:721
+#: timezone/zic.c:776
msgid "empty file name"
msgstr ""
-#: timezone/zic.c:724
+#: timezone/zic.c:779
#, c-format
msgid "file name '%s' begins with '/'"
msgstr ""
-#: timezone/zic.c:734
+#: timezone/zic.c:789
#, c-format
msgid "file name '%s' contains '%.*s' component"
msgstr ""
-#: timezone/zic.c:740
+#: timezone/zic.c:795
#, c-format
msgid "file name '%s' component contains leading '-'"
msgstr ""
-#: timezone/zic.c:743
+#: timezone/zic.c:798
#, c-format
msgid "file name '%s' contains overlength component '%.*s...'"
msgstr ""
-#: timezone/zic.c:771
+#: timezone/zic.c:826
#, c-format
msgid "file name '%s' contains byte '%c'"
msgstr ""
-#: timezone/zic.c:772
+#: timezone/zic.c:827
#, c-format
msgid "file name '%s' contains byte '\\%o'"
msgstr ""
-#: timezone/zic.c:842
+#: timezone/zic.c:897
#, fuzzy, c-format
#| msgid "Invalid link from \"%s\" to \"%s\": %s\n"
msgid "%s: link from %s/%s failed: %s\n"
msgstr "Enlace inválido de \"%s\" a \"%s\": %s\n"
-#: timezone/zic.c:852 timezone/zic.c:1815
+#: timezone/zic.c:907 timezone/zic.c:1876
#, fuzzy, c-format
#| msgid "%s: Can't remove %s: %s\n"
msgid "%s: Can't remove %s/%s: %s\n"
msgstr "%s: No se puede eliminar %s: %s\n"
-#: timezone/zic.c:874
+#: timezone/zic.c:931
#, c-format
msgid "symbolic link used because hard link failed: %s"
msgstr ""
-#: timezone/zic.c:882
+#: timezone/zic.c:939
#, fuzzy, c-format
#| msgid "%s: Can't read %s: %s\n"
msgid "%s: Can't read %s/%s: %s\n"
msgstr "%s: No se puede leer %s: %s\n"
-#: timezone/zic.c:889 timezone/zic.c:1828
+#: timezone/zic.c:946 timezone/zic.c:1889
#, fuzzy, c-format
#| msgid "%s: Can't create %s: %s\n"
msgid "%s: Can't create %s/%s: %s\n"
msgstr "%s: No se puede crear %s: %s\n"
-#: timezone/zic.c:898
+#: timezone/zic.c:955
#, c-format
msgid "copy used because hard link failed: %s"
msgstr ""
-#: timezone/zic.c:901
+#: timezone/zic.c:958
#, c-format
msgid "copy used because symbolic link failed: %s"
msgstr ""
-#: timezone/zic.c:1013 timezone/zic.c:1015
+#: timezone/zic.c:1032 timezone/zic.c:1034
msgid "same rule name in multiple files"
msgstr "mismo nombre de regla en varios ficheros"
-#: timezone/zic.c:1056
-msgid "unruly zone"
-msgstr "zona sin reglas"
-
-#: timezone/zic.c:1063
+#: timezone/zic.c:1081
#, c-format
msgid "%s in ruleless zone"
msgstr "%s en una zona sin reglas"
-#: timezone/zic.c:1083
+#: timezone/zic.c:1101
msgid "standard input"
msgstr "entrada estándar"
-#: timezone/zic.c:1088
+#: timezone/zic.c:1106
#, c-format
msgid "%s: Can't open %s: %s\n"
msgstr "%s: No se puede abrir %s: %s\n"
-#: timezone/zic.c:1099
+#: timezone/zic.c:1117
msgid "line too long"
msgstr "línea demasiado larga"
-#: timezone/zic.c:1119
+#: timezone/zic.c:1139
msgid "input line of unknown type"
msgstr "línea de entrada de tipo desconocido"
-# ¿¿cómo se dirá eso??, pregunto en spanglish
-#
-# diría que la porción "de años bisiestos" sobra. sv
-#
-# Mejor dejarlo bien clarito. Después de haberme enterado de
-# qué diablos era eso ;)
-#
-# En ningún sitio dice que la línea de ajuste sea "de años bisiestos"
-# Si pones algo que no viene en el original puedes acabar cambiando
-# el sentido.
-# O quitas lo de "de años bisiestos" o miras el código fuente
-# a ver si de verdad es un ajuste de años bisiestos o más bien de segundos
-# intercalares. En cualquier caso me parece que queda más largo añadiendo
-# eso. sv
-#
-# Otra cosa: "en un fichero que no es el de" -> "en un fichero que no es de"
-# (sin "el"). Si no, da a entender que sólo puede haber uno,
-# y el original no da a entender eso. sv
-#
-# Varias cosas, según he entendido los ajustes en segundo se llaman
-# indiferentemente 'segundos intercalares' o 'segundos bisiestos'
-# el ajuste en sí es un ajuste de años bisiestos ( no son exactamente
-# un día ) . Por lo tanto Leap ( año bisiesto ) line, son las líneas
-# que caracterizan al leap seconds file, que podríamos llamarlo fichero
-# de ajuste de años bisiestos, fichero intercalar o incluso bisiestifile
-# De todas maneras creo que lo cambio, este mensaje, si alguna vez tengo
-# la mala suerte de que me aparezca, me acoxonaría, tal y como está
-# redactado
-# Segundo, según he visto en la documentación, sólo existe un fichero
-# de leap lines, por eso pongo 'el'... em+
-#
-#: timezone/zic.c:1134
-#, fuzzy, c-format
-#| msgid "%s: Leap line in non leap seconds file %s\n"
-msgid "%s: Leap line in non leap seconds file %s"
-msgstr ""
-"%s: Línea de segundos intercalares en un fichero que no es el de\n"
-"ajuste de años bisiestos %s\n"
-
# Ãdem. 1984.
-#: timezone/zic.c:1142 timezone/zic.c:1547 timezone/zic.c:1569
+#: timezone/zic.c:1158 timezone/zic.c:1593 timezone/zic.c:1615
#, c-format
msgid "%s: panic: Invalid l_value %d\n"
msgstr "%s: grave: valor_l %d inválido\n"
-#: timezone/zic.c:1151
+#: timezone/zic.c:1167
msgid "expected continuation line not found"
msgstr "la línea de continuación esperada no se encuentra"
+#: timezone/zic.c:1203
+#, fuzzy
+#| msgid "values over 24 hours not handled by pre-2007 versions of zic"
+msgid "fractional seconds rejected by pre-2018 versions of zic"
+msgstr "las versiones de zic anteriores a 2007 no manejan valores por encima de 24 horas"
+
# Sugerencia: Desbordamiento de fecha. (?) sv+
-#: timezone/zic.c:1193 timezone/zic.c:2976
+#: timezone/zic.c:1221 timezone/zic.c:3078
msgid "time overflow"
msgstr "desbordamiento horario"
-#: timezone/zic.c:1198
+#: timezone/zic.c:1227
msgid "values over 24 hours not handled by pre-2007 versions of zic"
msgstr "las versiones de zic anteriores a 2007 no manejan valores por encima de 24 horas"
-#: timezone/zic.c:1209
+#: timezone/zic.c:1245
+msgid "invalid saved time"
+msgstr "la hora almacenada no es válida"
+
+#: timezone/zic.c:1256
msgid "wrong number of fields on Rule line"
msgstr "número incorrecto de argumentos en la línea de regla (Rule)"
-#: timezone/zic.c:1213
-msgid "nameless rule"
-msgstr "regla sin nombre"
-
-#: timezone/zic.c:1218
-msgid "invalid saved time"
-msgstr "la hora almacenada no es válida"
+#: timezone/zic.c:1265
+#, fuzzy, c-format
+#| msgid "Invalid numeric gid \"%s\"!"
+msgid "Invalid rule name \"%s\""
+msgstr "¡gid numérico inválido \"%s\"!"
-#: timezone/zic.c:1235
+#: timezone/zic.c:1287
msgid "wrong number of fields on Zone line"
msgstr "número de campos incorrecto en la línea de zona (Zone)"
-#: timezone/zic.c:1240
+#: timezone/zic.c:1292
#, c-format
msgid "\"Zone %s\" line and -l option are mutually exclusive"
msgstr "la línea \"Zone %s\" y la opción -l son mutuamente excluyentes"
-#: timezone/zic.c:1246
+#: timezone/zic.c:1298
#, c-format
msgid "\"Zone %s\" line and -p option are mutually exclusive"
msgstr "la línea \"Zone %s\" y la opción -p son mutuamente excluyentes"
-#: timezone/zic.c:1253
+#: timezone/zic.c:1305
#, fuzzy, c-format
#| msgid "duplicate zone name %s (file \"%s\", line %d)"
msgid "duplicate zone name %s (file \"%s\", line %<PRIdMAX>)"
msgstr "nombre de zona %s duplicado (fichero \"%s\", línea %d)"
-#: timezone/zic.c:1267
+#: timezone/zic.c:1319
msgid "wrong number of fields on Zone continuation line"
msgstr "número de campos incorrecto en la línea de continuación de zona (Zone)"
-#: timezone/zic.c:1307
+#: timezone/zic.c:1359
msgid "invalid UT offset"
msgstr "desplazamiento UT inválido"
-#: timezone/zic.c:1311
+#: timezone/zic.c:1363
msgid "invalid abbreviation format"
msgstr "formato de abreviatura incorrecto"
-#: timezone/zic.c:1320
+#: timezone/zic.c:1372
#, fuzzy, c-format
#| msgid "values over 24 hours not handled by pre-2007 versions of zic"
msgid "format '%s' not handled by pre-2015 versions of zic"
msgstr "las versiones de zic anteriores a 2007 no manejan valores por encima de 24 horas"
# VER
-#: timezone/zic.c:1347
+#: timezone/zic.c:1399
msgid "Zone continuation line end time is not after end time of previous line"
msgstr ""
"La línea de continuación de la zona no está después del tiempo de final\n"
@@ -7619,142 +7613,159 @@ msgstr ""
# Si es mejor, ponlo en todos los sitios. Y si no, en ninguno.
# Yo creo que es mucho mejor poner "número incorrecto ..."
# Si no, queda como "al revés". sv+
-#: timezone/zic.c:1374
+#: timezone/zic.c:1426
msgid "wrong number of fields on Leap line"
msgstr "número incorrecto de campos en la línea de bisiesto (Leap)"
-#: timezone/zic.c:1383
+#: timezone/zic.c:1435
msgid "invalid leaping year"
msgstr "año bisiesto inválido"
-#: timezone/zic.c:1403 timezone/zic.c:1501
+#: timezone/zic.c:1455 timezone/zic.c:1547
msgid "invalid month name"
msgstr "nombre de mes incorrecto"
-#: timezone/zic.c:1416 timezone/zic.c:1614 timezone/zic.c:1628
+#: timezone/zic.c:1468 timezone/zic.c:1663 timezone/zic.c:1677
msgid "invalid day of month"
msgstr "día del mes inválido"
-#: timezone/zic.c:1421
+#: timezone/zic.c:1473
msgid "time too small"
msgstr "tiempo demasiado pequeño"
-#: timezone/zic.c:1425
+#: timezone/zic.c:1477
msgid "time too large"
msgstr "tiempo demasiado grande"
-#: timezone/zic.c:1429 timezone/zic.c:1530
+#: timezone/zic.c:1481 timezone/zic.c:1576
msgid "invalid time of day"
msgstr "hora del día inválida"
-#: timezone/zic.c:1448
+#: timezone/zic.c:1494
msgid "illegal CORRECTION field on Leap line"
msgstr "El campo CORRECTION en la línea de año bisiesto es ilegal"
-#: timezone/zic.c:1453
+#: timezone/zic.c:1499
msgid "illegal Rolling/Stationary field on Leap line"
msgstr "Campo Rolling/Stationary ilegal en la línea de año bisiesto"
-#: timezone/zic.c:1459
-msgid "leap second precedes Big Bang"
+#: timezone/zic.c:1505
+#, fuzzy
+#| msgid "leap second precedes Big Bang"
+msgid "leap second precedes Epoch"
msgstr "el segundo intercalar está antes del Big Bang"
-#: timezone/zic.c:1472
+#: timezone/zic.c:1518
msgid "wrong number of fields on Link line"
msgstr "número incorrecto de campos en la línea de enlace (Link)"
-#: timezone/zic.c:1476
+#: timezone/zic.c:1522
msgid "blank FROM field on Link line"
msgstr "Campo FROM vacío en la línea `Link'"
-#: timezone/zic.c:1551
+#: timezone/zic.c:1597
msgid "invalid starting year"
msgstr "año de comienzo inválido"
-#: timezone/zic.c:1573
+#: timezone/zic.c:1619
msgid "invalid ending year"
msgstr "año de final inválido"
-#: timezone/zic.c:1577
+#: timezone/zic.c:1623
msgid "starting year greater than ending year"
msgstr "año de comienzo mayor que año de final"
-#: timezone/zic.c:1584
+#: timezone/zic.c:1630
msgid "typed single year"
msgstr "tecleado un único año"
-#: timezone/zic.c:1619
+#: timezone/zic.c:1633
+#, c-format
+msgid "year type \"%s\" is obsolete; use \"-\" instead"
+msgstr ""
+
+#: timezone/zic.c:1668
msgid "invalid weekday name"
msgstr "nombre del día de la semana incorrecto"
-#: timezone/zic.c:1743
+#: timezone/zic.c:1800
#, fuzzy, c-format
#| msgid "pre-2014 clients may mishandle more than 1200 transition times"
msgid "reference clients mishandle more than %d transition times"
msgstr "los clientes anteriores a 2014 pueden confundirse con más de 1200 tiempos de transición"
-#: timezone/zic.c:1747
+#: timezone/zic.c:1804
msgid "pre-2014 clients may mishandle more than 1200 transition times"
msgstr "los clientes anteriores a 2014 pueden confundirse con más de 1200 tiempos de transición"
-#: timezone/zic.c:1858
+#: timezone/zic.c:1920
#, fuzzy
#| msgid "too many local time types"
msgid "too many transition times"
msgstr "demasiados tipos de hora local"
-#: timezone/zic.c:2047
+#: timezone/zic.c:2107
#, c-format
-msgid "%%z UTC offset magnitude exceeds 99:59:59"
+msgid "%%z UT offset magnitude exceeds 99:59:59"
msgstr ""
-#: timezone/zic.c:2424
+#: timezone/zic.c:2488
msgid "no POSIX environment variable for zone"
msgstr "no hay ninguna variable de entorno POSIX para la zona"
-#: timezone/zic.c:2430
+#: timezone/zic.c:2494
#, c-format
msgid "%s: pre-%d clients may mishandle distant timestamps"
msgstr "%s: los clientes pre-%d pueden confundirse con marcas de tiempo distantes"
-#: timezone/zic.c:2566
+#: timezone/zic.c:2631
msgid "two rules for same instant"
msgstr ""
# FUZZY
-#: timezone/zic.c:2627
+#: timezone/zic.c:2696
msgid "can't determine time zone abbreviation to use just after until time"
msgstr ""
"No se puede determinar la abreviación de zona horaria que se usará justo\n"
"después"
-#: timezone/zic.c:2725
+#: timezone/zic.c:2785
msgid "too many local time types"
msgstr "demasiados tipos de hora local"
-#: timezone/zic.c:2729
+#: timezone/zic.c:2789
msgid "UT offset out of range"
msgstr "desplazamiento UT fuera de rango"
-#: timezone/zic.c:2753
+#: timezone/zic.c:2813
msgid "too many leap seconds"
msgstr "demasiados segundos intercalares"
-#: timezone/zic.c:2759
-msgid "repeated leap second moment"
-msgstr "segundo intercalar repetido"
+#: timezone/zic.c:2844
+msgid "Leap seconds too close together"
+msgstr ""
# # Otra opción, resultado incongruente al ejecutar la orden em
-#: timezone/zic.c:2830
+#: timezone/zic.c:2891
msgid "Wild result from command execution"
msgstr "Resultado salvaje en la ejecución de la orden"
-#: timezone/zic.c:2831
+#: timezone/zic.c:2892
#, c-format
msgid "%s: command was '%s', result was %d\n"
msgstr "%s: la orden fue '%s', el resultado fue %d\n"
-#: timezone/zic.c:2961
+#: timezone/zic.c:2998
+#, c-format
+msgid "\"%s\" is undocumented; use \"last%s\" instead"
+msgstr ""
+
+#: timezone/zic.c:3029
+#, c-format
+msgid "\"%s\" is ambiguous in pre-2017c zic"
+msgstr ""
+
+#: timezone/zic.c:3063
msgid "Odd number of quotation marks"
msgstr "Número impar de comillas"
@@ -7763,42 +7774,45 @@ msgstr "Número impar de comillas"
# se entiende mejor. no sé. sv
# Si, estas pensando lo mismo que yo, 29 de febrero puede confundir, porque
# en el fichero pondrá 2/29 em
-#: timezone/zic.c:3046
+#: timezone/zic.c:3157
msgid "use of 2/29 in non leap-year"
msgstr "uso de 2/29 en un año no bisiesto"
-#: timezone/zic.c:3081
+#: timezone/zic.c:3192
#, fuzzy
#| msgid "rule goes past start/end of month--will not work with pre-2004 versions of zic"
msgid "rule goes past start/end of month; will not work with pre-2004 versions of zic"
msgstr "la regla sobrepasa el comienzo/final del mes--no funcionará con versiones de zic anteriores a 2004"
-#: timezone/zic.c:3108
+#: timezone/zic.c:3219
#, fuzzy
#| msgid "time zone abbreviation has fewer than 3 alphabetics"
msgid "time zone abbreviation has fewer than 3 characters"
msgstr "la abreviatura de la zona horaria tiene menos de 3 caracteres alfabéticos"
-#: timezone/zic.c:3110
+#: timezone/zic.c:3221
#, fuzzy
#| msgid "time zone abbreviation has too many alphabetics"
msgid "time zone abbreviation has too many characters"
msgstr "la abreviatura de la zona horaria tiene demasiados caracteres alfabéticos"
-#: timezone/zic.c:3112
+#: timezone/zic.c:3223
msgid "time zone abbreviation differs from POSIX standard"
msgstr "la abreviatura de la zona horaria difiere del estándar POSIX"
-#: timezone/zic.c:3118
+#: timezone/zic.c:3229
msgid "too many, or too long, time zone abbreviations"
msgstr "demasiadas abreviaturas de zona horaria, o demasiado largas"
-#: timezone/zic.c:3161
+#: timezone/zic.c:3275
#, fuzzy, c-format
#| msgid "%s: Can't create directory %s: %s\n"
msgid "%s: Can't create directory %s: %s"
msgstr "%s: No se puede crear el directorio %s: %s\n"
+#~ msgid "cannot open zero fill device"
+#~ msgstr "no se puede abrir el dispositivo de `zero fill'"
+
#~ msgid "cannot allocate TLS data structures for initial thread"
#~ msgstr "no se pueden crear las estructuras de datos TLS para el hilo inicial"
@@ -7808,6 +7822,9 @@ msgstr "%s: No se puede crear el directorio %s: %s\n"
#~ msgid "invalid caller"
#~ msgstr "llamante inválido"
+#~ msgid "relocation error"
+#~ msgstr "error de relocalización"
+
#~ msgid "cannot load any more object with static TLS"
#~ msgstr "no se puede cargar ningún objeto más con TLS estático"
@@ -7829,6 +7846,15 @@ msgstr "%s: No se puede crear el directorio %s: %s\n"
#~ msgid "non-symbolic character value should not be used"
#~ msgstr "los valores de caracteres no simbólicos no deben utilizarse"
+#~ msgid "Cannot set LC_CTYPE to default locale"
+#~ msgstr "No se puede establecer LC_CTYPE al local predeterminado"
+
+#~ msgid "Cannot set LC_MESSAGES to default locale"
+#~ msgstr "No se puede establecer LC_MESSAGES al local predeterminado"
+
+#~ msgid "Cannot set LC_COLLATE to default locale"
+#~ msgstr "No se puede establecer LC_COLLATE al local predeterminado"
+
#~ msgid "Create old-style tables"
#~ msgstr "Crea tablas en estilo antiguo"
@@ -7970,9 +7996,51 @@ msgstr "%s: No se puede crear el directorio %s: %s\n"
#~ msgid "link failed, copy used"
#~ msgstr "el enlace falló, se usará una copia"
+#~ msgid "unruly zone"
+#~ msgstr "zona sin reglas"
+
+# ¿¿cómo se dirá eso??, pregunto en spanglish
+#
+# diría que la porción "de años bisiestos" sobra. sv
+#
+# Mejor dejarlo bien clarito. Después de haberme enterado de
+# qué diablos era eso ;)
+#
+# En ningún sitio dice que la línea de ajuste sea "de años bisiestos"
+# Si pones algo que no viene en el original puedes acabar cambiando
+# el sentido.
+# O quitas lo de "de años bisiestos" o miras el código fuente
+# a ver si de verdad es un ajuste de años bisiestos o más bien de segundos
+# intercalares. En cualquier caso me parece que queda más largo añadiendo
+# eso. sv
+#
+# Otra cosa: "en un fichero que no es el de" -> "en un fichero que no es de"
+# (sin "el"). Si no, da a entender que sólo puede haber uno,
+# y el original no da a entender eso. sv
+#
+# Varias cosas, según he entendido los ajustes en segundo se llaman
+# indiferentemente 'segundos intercalares' o 'segundos bisiestos'
+# el ajuste en sí es un ajuste de años bisiestos ( no son exactamente
+# un día ) . Por lo tanto Leap ( año bisiesto ) line, son las líneas
+# que caracterizan al leap seconds file, que podríamos llamarlo fichero
+# de ajuste de años bisiestos, fichero intercalar o incluso bisiestifile
+# De todas maneras creo que lo cambio, este mensaje, si alguna vez tengo
+# la mala suerte de que me aparezca, me acoxonaría, tal y como está
+# redactado
+# Segundo, según he visto en la documentación, sólo existe un fichero
+# de leap lines, por eso pongo 'el'... em+
+#
+#~ msgid "%s: Leap line in non leap seconds file %s\n"
+#~ msgstr ""
+#~ "%s: Línea de segundos intercalares en un fichero que no es el de\n"
+#~ "ajuste de años bisiestos %s\n"
+
#~ msgid "%s: Error closing %s: %s\n"
#~ msgstr "%s: Error al cerrar %s: %s\n"
+#~ msgid "nameless rule"
+#~ msgstr "regla sin nombre"
+
#~ msgid "blank TO field on Link line"
#~ msgstr "Campo TO vacío en la línea `Link'"
@@ -7985,5 +8053,8 @@ msgstr "%s: No se puede crear el directorio %s: %s\n"
#~ msgid "internal error - addtype called with bad ttisgmt"
#~ msgstr "error interno - se llamó a `addtype' con un `ttisgmt' erróneo"
+#~ msgid "repeated leap second moment"
+#~ msgstr "segundo intercalar repetido"
+
#~ msgid "time zone abbreviation lacks alphabetic at start"
#~ msgstr "la abreviatura de la zona horaria no comienza con un carácter alfabético"
diff --git a/po/fi.po b/po/fi.po
index 23f998e930..2fb2c203d5 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -24,9 +24,9 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: libc 2.22-pre1\n"
-"POT-Creation-Date: 2018-07-26 22:19-0400\n"
-"PO-Revision-Date: 2016-05-26 21:14+0300\n"
+"Project-Id-Version: libc 2.28.9000\n"
+"POT-Creation-Date: 2019-07-18 13:28-0400\n"
+"PO-Revision-Date: 2019-01-22 23:54+0200\n"
"Last-Translator: Lauri Nurmi <lanurmi@iki.fi>\n"
"Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
"Language: fi\n"
@@ -34,7 +34,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
-"X-Generator: Poedit 1.8.7\n"
+"X-Generator: Poedit 2.2.1\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: argp/argp-help.c:227
@@ -123,7 +123,6 @@ msgstr "(OHJELMAVIRHE) Valitsinta ei tunnistettu!?"
#: assert/assert-perr.c:35
#, fuzzy, c-format
-#| msgid "%s%s%s:%u: %s%sUnexpected error: %s.\n"
msgid ""
"%s%s%s:%u: %s%sUnexpected error: %s.\n"
"%n"
@@ -167,10 +166,10 @@ msgstr ""
"[TULOSTIEDOSTO [SYÖTETIEDOSTO]...]"
#: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:308
-#: elf/pldd.c:252 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
-#: iconv/iconvconfig.c:379 locale/programs/locale.c:275
-#: locale/programs/localedef.c:427 login/programs/pt_chown.c:89
-#: malloc/memusagestat.c:563 nss/getent.c:933 nss/makedb.c:369
+#: elf/pldd.c:247 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
+#: iconv/iconvconfig.c:379 locale/programs/locale.c:276
+#: locale/programs/localedef.c:437 login/programs/pt_chown.c:89
+#: malloc/memusagestat.c:563 nss/getent.c:953 nss/makedb.c:369
#: posix/getconf.c:503 sysdeps/unix/sysv/linux/lddlibc4.c:61
#, c-format
msgid ""
@@ -181,11 +180,11 @@ msgstr ""
"%s.\n"
#: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64
-#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75
+#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:263 elf/sotruss.sh:75
#: elf/sprof.c:389 iconv/iconv_prog.c:422 iconv/iconvconfig.c:396
-#: locale/programs/locale.c:292 locale/programs/localedef.c:453
+#: locale/programs/locale.c:293 locale/programs/localedef.c:463
#: login/programs/pt_chown.c:63 malloc/memusage.sh:71
-#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:87 nss/makedb.c:385
+#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:88 nss/makedb.c:385
#: posix/getconf.c:485 sysdeps/unix/sysv/linux/lddlibc4.c:68
#, c-format
msgid ""
@@ -198,10 +197,10 @@ msgstr ""
"ole, ei edes KAUPALLISESTI HYVÄKSYTTÄVÄSTÄ LAADUSTA tai SOPIVUUDESTA TIETTYYN TARKOITUKSEEN.\n"
#: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68
-#: elf/ldconfig.c:329 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:427
-#: iconv/iconvconfig.c:401 locale/programs/locale.c:297
-#: locale/programs/localedef.c:458 malloc/memusage.sh:75
-#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:92 nss/makedb.c:390
+#: elf/ldconfig.c:329 elf/pldd.c:268 elf/sprof.c:395 iconv/iconv_prog.c:427
+#: iconv/iconvconfig.c:401 locale/programs/locale.c:298
+#: locale/programs/localedef.c:468 malloc/memusage.sh:75
+#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:93 nss/makedb.c:390
#: posix/getconf.c:490
#, c-format
msgid "Written by %s.\n"
@@ -272,21 +271,21 @@ msgstr "tulostiedostoa â€%s†ei voi avata"
msgid "invalid escape sequence"
msgstr "virheellinen ohjaussarja"
-#: catgets/gencat.c:1209
+#: catgets/gencat.c:1211
msgid "unterminated message"
msgstr "päättämätön viesti"
-#: catgets/gencat.c:1233
+#: catgets/gencat.c:1235
#, c-format
msgid "while opening old catalog file"
msgstr "avattaessa vanhaa katalogitiedostoa"
-#: catgets/gencat.c:1324
+#: catgets/gencat.c:1326
#, c-format
msgid "conversion modules not available"
msgstr "muunnosmoduulit eivät ole käytettävissä"
-#: catgets/gencat.c:1350
+#: catgets/gencat.c:1352
#, c-format
msgid "cannot determine escape character"
msgstr "ohjausmerkkiä ei voi määrittää"
@@ -414,7 +413,7 @@ msgstr "Tuntematon käyttöjärjestelmä"
msgid ", OS ABI: %s %d.%d.%d"
msgstr ", OS ABI: %s %d.%d.%d"
-#: elf/cache.c:163 elf/ldconfig.c:1332
+#: elf/cache.c:163 elf/ldconfig.c:1333
#, c-format
msgid "Can't open cache file %s\n"
msgstr "Välimuistitiedostoa %s ei voi avata\n"
@@ -424,38 +423,38 @@ msgstr "Välimuistitiedostoa %s ei voi avata\n"
msgid "mmap of cache file failed.\n"
msgstr "välimuistitiedoston muistikartoitus epäonnistui.\n"
-#: elf/cache.c:181 elf/cache.c:195
+#: elf/cache.c:181 elf/cache.c:195 elf/cache.c:205
#, c-format
msgid "File is not a cache file.\n"
msgstr "Tiedosto ei ole välimuistitiedosto.\n"
-#: elf/cache.c:228 elf/cache.c:238
+#: elf/cache.c:233 elf/cache.c:243
#, c-format
msgid "%d libs found in cache `%s'\n"
msgstr "Välimuistista â€%2$s†löytyi %1$d kirjastoa\n"
-#: elf/cache.c:432
+#: elf/cache.c:437
#, c-format
msgid "Can't create temporary cache file %s"
msgstr "Tilapäistä välimuistitiedostoa %s ei voi luoda"
-#: elf/cache.c:440 elf/cache.c:450 elf/cache.c:454 elf/cache.c:458
-#: elf/cache.c:468
+#: elf/cache.c:445 elf/cache.c:455 elf/cache.c:459 elf/cache.c:463
+#: elf/cache.c:473
#, c-format
msgid "Writing of cache data failed"
msgstr "Välimuistidatan kirjoitus epäonnistui"
-#: elf/cache.c:463
+#: elf/cache.c:468
#, c-format
msgid "Changing access rights of %s to %#o failed"
msgstr "Tiedoston %s oikeuksien muutos arvoon %#o epäonnistui"
-#: elf/cache.c:472
+#: elf/cache.c:477
#, c-format
msgid "Renaming of %s to %s failed"
msgstr "Uudelleennimeäminen %s -> %s epäonnistui"
-#: elf/dl-close.c:399 elf/dl-open.c:420
+#: elf/dl-close.c:399 elf/dl-open.c:424
msgid "cannot create scope list"
msgstr "aluelistaa ei voi luoda"
@@ -478,7 +477,6 @@ msgstr "ylimääräistä â€%s†ei voi ladata, koska dynaamisen merkkijonon os
#: elf/dl-deps.c:220
#, fuzzy
-#| msgid "cannot allocate dependency list"
msgid "cannot allocate dependency buffer"
msgstr "riippuvuuslistalle ei voi varata muistia"
@@ -540,123 +538,124 @@ msgstr "hakupolkutaulukkoa ei voi luoda"
msgid "cannot stat shared object"
msgstr "jaetun objektin tilaa ei voi lukea"
-#: elf/dl-load.c:960
-msgid "cannot open zero fill device"
-msgstr "nollatäyttölaitetta ei voi avata"
-
-#: elf/dl-load.c:1007 elf/dl-load.c:2203
+#: elf/dl-load.c:992 elf/dl-load.c:2198
msgid "cannot create shared object descriptor"
msgstr "jaettua objektikahvaa ei voi luoda"
-#: elf/dl-load.c:1026 elf/dl-load.c:1560 elf/dl-load.c:1673
+#: elf/dl-load.c:1011 elf/dl-load.c:1555 elf/dl-load.c:1668
msgid "cannot read file data"
msgstr "tiedoston dataa ei voi lukea"
-#: elf/dl-load.c:1072
+#: elf/dl-load.c:1057
msgid "ELF load command alignment not page-aligned"
msgstr "ELF-latauskomennon tasaus ei ole sivutasattu"
-#: elf/dl-load.c:1079
+#: elf/dl-load.c:1064
msgid "ELF load command address/offset not properly aligned"
msgstr "ELF-latauskomennon osoite/siirtymä ei ole tasattu oikein"
-#: elf/dl-load.c:1161
+#: elf/dl-load.c:1146
#, fuzzy
-#| msgid "cannot restore segment prot after reloc"
msgid "cannot process note segment"
msgstr "segmentin suojausta ei voi palauttaa uudelleensijoituksen jälkeen"
-#: elf/dl-load.c:1172
+#: elf/dl-load.c:1157
#, fuzzy
msgid "object file has no loadable segments"
msgstr "objektitiedostossa ei ole dynaamista osaa"
-#: elf/dl-load.c:1181 elf/dl-load.c:1652
+#: elf/dl-load.c:1170 elf/dl-load.c:1647
msgid "cannot dynamically load executable"
msgstr "suoritettavaa tiedostoa ei voi ladata dynaamisesti"
-#: elf/dl-load.c:1202
+#: elf/dl-load.c:1191
msgid "object file has no dynamic section"
msgstr "objektitiedostossa ei ole dynaamista osaa"
-#: elf/dl-load.c:1225
+#: elf/dl-load.c:1218
+#, fuzzy
+#| msgid "cannot dynamically load executable"
+msgid "cannot dynamically load position-independent executable"
+msgstr "suoritettavaa tiedostoa ei voi ladata dynaamisesti"
+
+#: elf/dl-load.c:1220
msgid "shared object cannot be dlopen()ed"
msgstr "jaettua objektia ei voi avata funktiolla dlopen()"
-#: elf/dl-load.c:1238
+#: elf/dl-load.c:1233
msgid "cannot allocate memory for program header"
msgstr "ohjelman otsakkeelle ei voi varata muistia"
-#: elf/dl-load.c:1271 elf/dl-load.h:130
+#: elf/dl-load.c:1266 elf/dl-load.h:130
msgid "cannot change memory protections"
msgstr "muistin suojausta ei voi muuttaa"
-#: elf/dl-load.c:1291
+#: elf/dl-load.c:1286
#, fuzzy
msgid "cannot enable executable stack as shared object requires"
msgstr "jaettua objektikahvaa ei voi luoda"
-#: elf/dl-load.c:1304
+#: elf/dl-load.c:1299
msgid "cannot close file descriptor"
msgstr "tiedostokahvaa ei voi sulkea"
-#: elf/dl-load.c:1560
+#: elf/dl-load.c:1555
msgid "file too short"
msgstr "tiedosto on liian lyhyt"
-#: elf/dl-load.c:1595
+#: elf/dl-load.c:1590
msgid "invalid ELF header"
msgstr "virheellinen ELF-otsikko"
-#: elf/dl-load.c:1607
+#: elf/dl-load.c:1602
msgid "ELF file data encoding not big-endian"
msgstr "ELF-tiedoston tavujärjestys ei ole â€big-endianâ€"
-#: elf/dl-load.c:1609
+#: elf/dl-load.c:1604
msgid "ELF file data encoding not little-endian"
msgstr "ELF-tiedoston tavujärjestys ei ole â€little-endianâ€"
-#: elf/dl-load.c:1613
+#: elf/dl-load.c:1608
msgid "ELF file version ident does not match current one"
msgstr "ELF-tiedoston versiotunnus ei vastaa nykyistä"
-#: elf/dl-load.c:1617
+#: elf/dl-load.c:1612
msgid "ELF file OS ABI invalid"
msgstr "ELF-tiedoston OS ABI on virheellinen"
-#: elf/dl-load.c:1620
+#: elf/dl-load.c:1615
msgid "ELF file ABI version invalid"
msgstr "ELF-tiedoston ABI-versio virheellinen"
-#: elf/dl-load.c:1623
+#: elf/dl-load.c:1618
msgid "nonzero padding in e_ident"
msgstr ""
-#: elf/dl-load.c:1626
+#: elf/dl-load.c:1621
msgid "internal error"
msgstr "sisäinen virhe"
-#: elf/dl-load.c:1633
+#: elf/dl-load.c:1628
msgid "ELF file version does not match current one"
msgstr "ELF-tiedoston versio ei vastaa nykyistä"
-#: elf/dl-load.c:1641
+#: elf/dl-load.c:1636
msgid "only ET_DYN and ET_EXEC can be loaded"
msgstr "vain ET_DYN ja ET_EXEC voidaan ladata"
-#: elf/dl-load.c:1657
+#: elf/dl-load.c:1652
msgid "ELF file's phentsize not the expected size"
msgstr "ELF-tiedoston phent-koko ei ole odotetun kokoinen"
-#: elf/dl-load.c:2222
+#: elf/dl-load.c:2217
msgid "wrong ELF class: ELFCLASS64"
msgstr "väärä ELF-luokka: ELFCLASS64"
-#: elf/dl-load.c:2223
+#: elf/dl-load.c:2218
msgid "wrong ELF class: ELFCLASS32"
msgstr "väärä ELF-luokka: ELFCLASS32"
-#: elf/dl-load.c:2226
+#: elf/dl-load.c:2221
msgid "cannot open shared object file"
msgstr "jaettua objektitiedostoa ei voi avata"
@@ -668,11 +667,7 @@ msgstr "segmentin kartoitus jaetusta objektista epäonnistui"
msgid "cannot map zero-fill pages"
msgstr "nollatäytteisiä sivuja ei voi kartoittaa"
-#: elf/dl-lookup.c:835
-msgid "relocation error"
-msgstr "uudelleensijoitusvirhe"
-
-#: elf/dl-lookup.c:858
+#: elf/dl-lookup.c:830
msgid "symbol lookup error"
msgstr "virhe symbolien haussa"
@@ -680,20 +675,20 @@ msgstr "virhe symbolien haussa"
msgid "cannot extend global scope"
msgstr "globaalia aluetta ei voi laajentaa"
-#: elf/dl-open.c:470
+#: elf/dl-open.c:474
#, fuzzy
msgid "TLS generation counter wrapped! Please report this."
msgstr "TLS-luontilaskurin ylivuoto! Lähetä tästä raportti."
-#: elf/dl-open.c:534
+#: elf/dl-open.c:538
msgid "invalid mode for dlopen()"
msgstr "virheellinen tila funktiolle dlopen()"
-#: elf/dl-open.c:551
+#: elf/dl-open.c:555
msgid "no more namespaces available for dlmopen()"
msgstr ""
-#: elf/dl-open.c:575
+#: elf/dl-open.c:579
#, fuzzy
msgid "invalid target namespace in dlmopen()"
msgstr "virheellinen nimiavaruus"
@@ -703,20 +698,20 @@ msgstr "virheellinen nimiavaruus"
msgid "cannot allocate memory in static TLS block"
msgstr "Muistin varaaminen ei onnistu"
-#: elf/dl-reloc.c:205
+#: elf/dl-reloc.c:213
msgid "cannot make segment writable for relocation"
msgstr "segmenttiä ei voi muuttaa kirjoitettavaksi uudelleensijoitusta varten"
-#: elf/dl-reloc.c:276
+#: elf/dl-reloc.c:272
#, c-format
msgid "%s: out of memory to store relocation results for %s\n"
msgstr ""
-#: elf/dl-reloc.c:292
+#: elf/dl-reloc.c:288
msgid "cannot restore segment prot after reloc"
msgstr "segmentin suojausta ei voi palauttaa uudelleensijoituksen jälkeen"
-#: elf/dl-reloc.c:323
+#: elf/dl-reloc.c:319
#, fuzzy
msgid "cannot apply additional memory protection after relocation"
msgstr "muistin suojausta ei voi muuttaa"
@@ -730,9 +725,8 @@ msgid "cannot create TLS data structures"
msgstr "TLS-tietorakenteita ei voi luoda"
#: elf/dl-version.c:148
-#, fuzzy
msgid "version lookup error"
-msgstr "(OHJELMAVIRHE) Tuntematon versio!?"
+msgstr "virhe version selvittämisessä"
#: elf/dl-version.c:279
msgid "cannot allocate version reference table"
@@ -751,19 +745,16 @@ msgid "Don't build cache"
msgstr "Älä luo välimuistia"
#: elf/ldconfig.c:145
-#, fuzzy
-#| msgid "%s is not a symbolic link\n"
msgid "Don't update symbolic links"
-msgstr "%s ei ole symbolinen linkki\n"
+msgstr "Älä päivitä symbolisia linkkejä"
#: elf/ldconfig.c:146
msgid "Change to and use ROOT as root directory"
msgstr "Siirry ja käytä ROOTia juurihakemistona"
#: elf/ldconfig.c:146
-#, fuzzy
msgid "ROOT"
-msgstr "XENIX root"
+msgstr "JUURI"
#: elf/ldconfig.c:147
#, fuzzy
@@ -941,22 +932,22 @@ msgstr ""
msgid "memory exhausted"
msgstr "muisti lopussa"
-#: elf/ldconfig.c:1233
+#: elf/ldconfig.c:1234
#, c-format
msgid "%s:%u: cannot read directory %s"
msgstr "%s:%u: hakemistoa %s ei voi lukea"
-#: elf/ldconfig.c:1281
+#: elf/ldconfig.c:1282
#, c-format
msgid "relative path `%s' used to build cache"
-msgstr ""
+msgstr "suhteellista polkua â€%s†käytetään välimuistin luomiseen"
-#: elf/ldconfig.c:1311
+#: elf/ldconfig.c:1312
#, c-format
msgid "Can't chdir to /"
msgstr "Juurihakemistoon / siirtyminen ei onnistu"
-#: elf/ldconfig.c:1352
+#: elf/ldconfig.c:1353
#, c-format
msgid "Can't open cache file directory %s\n"
msgstr "Välimuistihakemistoa %s ei voi avata\n"
@@ -1030,96 +1021,101 @@ msgstr "Tuntematon NIS-virhekoodi"
msgid "error: you do not have read permission for"
msgstr "Levy avattiin vain luku -tilassa – sinulla ei ole kirjoitusoikeutta"
-#: elf/pldd-xx.c:105
+#: elf/pldd-xx.c:102
#, fuzzy, c-format
msgid "cannot find program header of process"
msgstr "ohjelman otsakkeelle ei voi varata muistia"
-#: elf/pldd-xx.c:110
+#: elf/pldd-xx.c:106
#, fuzzy, c-format
msgid "cannot read program header"
msgstr "ohjelman otsakkeelle ei voi varata muistia"
-#: elf/pldd-xx.c:135
+#: elf/pldd-xx.c:128
#, fuzzy, c-format
msgid "cannot read dynamic section"
msgstr "objektitiedostossa ei ole dynaamista osaa"
-#: elf/pldd-xx.c:147
+#: elf/pldd-xx.c:137
#, fuzzy, c-format
msgid "cannot read r_debug"
msgstr "ei voida lukea"
-#: elf/pldd-xx.c:167
+#: elf/pldd-xx.c:154
#, fuzzy, c-format
msgid "cannot read program interpreter"
msgstr "ei voida lukea"
-#: elf/pldd-xx.c:197
+#: elf/pldd-xx.c:183
#, fuzzy, c-format
msgid "cannot read link map"
msgstr "symbolista linkkiä %s ei voi lukea"
-#: elf/pldd-xx.c:209
-#, fuzzy, c-format
+#: elf/pldd-xx.c:190
+#, c-format
msgid "cannot read object name"
-msgstr "Saman niminen objekti on olemassa"
+msgstr "objektin nimeä ei voi lukea"
-#: elf/pldd-xx.c:219
+#: elf/pldd-xx.c:197
#, fuzzy, c-format
-#| msgid "cannot allocate memory for program header"
msgid "cannot allocate buffer for object name"
msgstr "ohjelman otsakkeelle ei voi varata muistia"
-#: elf/pldd.c:64
+#: elf/pldd.c:58
msgid "List dynamic shared objects loaded into process."
msgstr ""
-#: elf/pldd.c:68
+#: elf/pldd.c:62
msgid "PID"
-msgstr "pid"
+msgstr "PID"
-#: elf/pldd.c:100
+#: elf/pldd.c:89
#, c-format
msgid "Exactly one parameter with process ID required.\n"
-msgstr ""
+msgstr "Vaaditaan täsmälleen yksi, prosessi-ID:n sisältävä parametri.\n"
-#: elf/pldd.c:112
-#, fuzzy, c-format
+#: elf/pldd.c:103
+#, c-format
msgid "invalid process ID '%s'"
msgstr "virheellinen prosessi-ID â€%sâ€"
-#: elf/pldd.c:120
+#: elf/pldd.c:111
#, c-format
msgid "cannot open %s"
msgstr "tiedostoa %s ei voi avata"
-#: elf/pldd.c:152
+#: elf/pldd.c:142
#, fuzzy, c-format
msgid "cannot open %s/task"
msgstr "pistoketta ei voi avata: %s"
-#: elf/pldd.c:155
+#: elf/pldd.c:145
#, fuzzy, c-format
msgid "cannot prepare reading %s/task"
msgstr "ei voi avata laitetta %s lukutilaan"
-#: elf/pldd.c:168
+#: elf/pldd.c:158
#, c-format
msgid "invalid thread ID '%s'"
msgstr "virheellinen säie-ID â€%sâ€"
-#: elf/pldd.c:179
+#: elf/pldd.c:169
#, c-format
msgid "cannot attach to process %lu"
msgstr "ei voida kiinnittyä prosessiin %lu"
-#: elf/pldd.c:294
+#: elf/pldd.c:184
+#, fuzzy, c-format
+#| msgid "invalid saved time"
+msgid "no valid %s/task entries"
+msgstr "virheellinen tallennettu aika"
+
+#: elf/pldd.c:290
#, c-format
msgid "cannot get information about process %lu"
msgstr "tietojen saaminen prosessista %lu ei onnistu"
-#: elf/pldd.c:307
+#: elf/pldd.c:303
#, c-format
msgid "process %lu is no ELF program"
msgstr "prosessi %lu ei ole ELF-ohjelma"
@@ -1423,7 +1419,7 @@ msgstr "Tietoa:"
msgid "list all known coded character sets"
msgstr "luettele kaikki tunnetut koodatut merkistöt"
-#: iconv/iconv_prog.c:64 locale/programs/localedef.c:120
+#: iconv/iconv_prog.c:64 locale/programs/localedef.c:124
msgid "Output control:"
msgstr "Tulosteen hallinta:"
@@ -1432,8 +1428,8 @@ msgid "omit invalid characters from output"
msgstr "jätä virheelliset merkit pois tulosteesta"
#: iconv/iconv_prog.c:66 iconv/iconvconfig.c:128
-#: locale/programs/localedef.c:113 locale/programs/localedef.c:115
-#: locale/programs/localedef.c:117 locale/programs/localedef.c:144
+#: locale/programs/localedef.c:117 locale/programs/localedef.c:119
+#: locale/programs/localedef.c:121 locale/programs/localedef.c:150
#: malloc/memusagestat.c:56
msgid "FILE"
msgstr "TIEDOSTO"
@@ -1532,7 +1528,7 @@ msgstr "Luo nopeasti latautuva iconv-moduuliasetustiedosto."
msgid "[DIR...]"
msgstr "[HAKEMISTO...]"
-#: iconv/iconvconfig.c:126 locale/programs/localedef.c:123
+#: iconv/iconvconfig.c:126 locale/programs/localedef.c:129
msgid "PATH"
msgstr "POLKU"
@@ -1642,10 +1638,8 @@ msgid "Error: .netrc file is readable by others."
msgstr "Virhe: .netrc-tiedosto on muiden luettavissa."
#: inet/ruserpass.c:180
-#, fuzzy
-#| msgid "Remove password or make file unreadable by others."
msgid "Remove 'password' line or make file unreadable by others."
-msgstr "Poista salasana tai estä muilta tiedoston luku."
+msgstr "Poista â€passwordâ€-rivi tai estä muilta tiedoston luku."
#: inet/ruserpass.c:199
#, c-format
@@ -1669,7 +1663,6 @@ msgstr "oletusmerkistökarttatiedostoa â€%s†ei löydy"
#: locale/programs/charmap.c:265
#, fuzzy, c-format
-#| msgid "character map `%s' is not ASCII compatible, locale not ISO C compliant\n"
msgid "character map `%s' is not ASCII compatible, locale not ISO C compliant [--no-warnings=ascii]"
msgstr "merkistökartta â€%s†ei ole ASCII-yhteensopiva, maa-asetusto ei ole ISO C -yhteensopiva\n"
@@ -1719,14 +1712,14 @@ msgstr "lukitustiloja sisältäviä merkistöjä ei tueta"
#: locale/programs/charmap.c:503 locale/programs/charmap.c:557
#: locale/programs/charmap.c:589 locale/programs/charmap.c:683
-#: locale/programs/charmap.c:738 locale/programs/charmap.c:779
-#: locale/programs/charmap.c:820
+#: locale/programs/charmap.c:739 locale/programs/charmap.c:780
+#: locale/programs/charmap.c:821
#, c-format
msgid "syntax error in %s definition: %s"
msgstr "syntaksivirhe %s-määrittelyssä: %s"
#: locale/programs/charmap.c:504 locale/programs/charmap.c:684
-#: locale/programs/charmap.c:780 locale/programs/repertoire.c:229
+#: locale/programs/charmap.c:781 locale/programs/repertoire.c:229
msgid "no symbolic name given"
msgstr "symbolista nimeä ei ole annettu"
@@ -1742,14 +1735,14 @@ msgstr "liian vähän tavuja merkkikoodauksessa"
msgid "too many bytes in character encoding"
msgstr "liian monta tavua merkkikoodauksessa"
-#: locale/programs/charmap.c:591 locale/programs/charmap.c:739
-#: locale/programs/charmap.c:822 locale/programs/repertoire.c:295
+#: locale/programs/charmap.c:591 locale/programs/charmap.c:740
+#: locale/programs/charmap.c:823 locale/programs/repertoire.c:295
msgid "no symbolic name given for end of range"
msgstr "välin lopulle ei ole annettu symbolista nimeä"
#: locale/programs/charmap.c:615 locale/programs/ld-address.c:524
#: locale/programs/ld-collate.c:2616 locale/programs/ld-collate.c:3774
-#: locale/programs/ld-ctype.c:2117 locale/programs/ld-ctype.c:2829
+#: locale/programs/ld-ctype.c:2118 locale/programs/ld-ctype.c:2830
#: locale/programs/ld-identification.c:397
#: locale/programs/ld-measurement.c:213 locale/programs/ld-messages.c:295
#: locale/programs/ld-monetary.c:748 locale/programs/ld-name.c:262
@@ -1764,58 +1757,58 @@ msgstr "%1$s: määrittelyn lopusta puuttuu â€END %1$sâ€"
msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
msgstr "CHARMAP-määrittelyn jälkeen vain WIDTH-määrittelyt ovat sallittuja"
-#: locale/programs/charmap.c:656 locale/programs/charmap.c:719
+#: locale/programs/charmap.c:656 locale/programs/charmap.c:720
#, c-format
msgid "value for %s must be an integer"
msgstr "%s:n arvon on oltava kokonaisluku"
-#: locale/programs/charmap.c:847
+#: locale/programs/charmap.c:848
#, c-format
msgid "%s: error in state machine"
msgstr "%s: virhe tilakoneessa"
-#: locale/programs/charmap.c:855 locale/programs/ld-address.c:540
+#: locale/programs/charmap.c:856 locale/programs/ld-address.c:540
#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967
-#: locale/programs/ld-ctype.c:2114 locale/programs/ld-ctype.c:2846
+#: locale/programs/ld-ctype.c:2115 locale/programs/ld-ctype.c:2847
#: locale/programs/ld-identification.c:413
#: locale/programs/ld-measurement.c:229 locale/programs/ld-messages.c:311
#: locale/programs/ld-monetary.c:764 locale/programs/ld-name.c:278
#: locale/programs/ld-numeric.c:341 locale/programs/ld-paper.c:228
#: locale/programs/ld-telephone.c:292 locale/programs/ld-time.c:990
-#: locale/programs/locfile.c:997 locale/programs/repertoire.c:323
+#: locale/programs/locfile.c:1010 locale/programs/repertoire.c:323
#, c-format
msgid "%s: premature end of file"
msgstr "%s: ennenaikainen tiedoston loppu"
-#: locale/programs/charmap.c:874 locale/programs/charmap.c:885
+#: locale/programs/charmap.c:875 locale/programs/charmap.c:886
#, c-format
msgid "unknown character `%s'"
msgstr "tuntematon merkki â€%sâ€"
-#: locale/programs/charmap.c:893
+#: locale/programs/charmap.c:894
#, c-format
msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d"
msgstr "välin alku- ja lopputavusarjojen tavumäärä ei ole sama: %d vs %d"
-#: locale/programs/charmap.c:998 locale/programs/ld-collate.c:2893
+#: locale/programs/charmap.c:999 locale/programs/ld-collate.c:2893
#: locale/programs/repertoire.c:418
msgid "invalid names for character range"
msgstr "virheelliset nimet merkkivälille"
-#: locale/programs/charmap.c:1010 locale/programs/repertoire.c:430
+#: locale/programs/charmap.c:1011 locale/programs/repertoire.c:430
msgid "hexadecimal range format should use only capital characters"
msgstr "heksadesimaalisessa muodossa tulee käyttää vain isoja kirjaimia"
-#: locale/programs/charmap.c:1028 locale/programs/repertoire.c:448
+#: locale/programs/charmap.c:1029 locale/programs/repertoire.c:448
#, c-format
msgid "<%s> and <%s> are invalid names for range"
msgstr "<%s> ja <%s> ovat virheellisiä nimiä välille"
-#: locale/programs/charmap.c:1034 locale/programs/repertoire.c:455
+#: locale/programs/charmap.c:1035 locale/programs/repertoire.c:455
msgid "upper limit in range is smaller than lower limit"
msgstr "välin yläraja on pienempi kuin alaraja"
-#: locale/programs/charmap.c:1092
+#: locale/programs/charmap.c:1093
msgid "resulting bytes for range not representable."
msgstr "välin tulostavut eivät ole esitettävissä."
@@ -1884,7 +1877,7 @@ msgid "%s: numeric country code `%d' not valid"
msgstr "%s: numeerinen maakoodi â€%d†ei kelpaa"
#: locale/programs/ld-address.c:432 locale/programs/ld-address.c:469
-#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2478
+#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2479
#: locale/programs/ld-identification.c:309
#: locale/programs/ld-measurement.c:196 locale/programs/ld-messages.c:264
#: locale/programs/ld-monetary.c:503 locale/programs/ld-monetary.c:538
@@ -1907,7 +1900,7 @@ msgid "%s: unknown character in field `%s'"
msgstr "%s: tuntematon merkki kentässä â€%sâ€"
#: locale/programs/ld-address.c:521 locale/programs/ld-collate.c:3772
-#: locale/programs/ld-ctype.c:2826 locale/programs/ld-identification.c:394
+#: locale/programs/ld-ctype.c:2827 locale/programs/ld-identification.c:394
#: locale/programs/ld-measurement.c:210 locale/programs/ld-messages.c:293
#: locale/programs/ld-monetary.c:746 locale/programs/ld-name.c:260
#: locale/programs/ld-numeric.c:323 locale/programs/ld-paper.c:210
@@ -1920,8 +1913,8 @@ msgstr "%s: epätäydellinen â€ENDâ€-rivi"
#: locale/programs/ld-collate.c:602 locale/programs/ld-collate.c:898
#: locale/programs/ld-collate.c:911 locale/programs/ld-collate.c:2582
#: locale/programs/ld-collate.c:2603 locale/programs/ld-collate.c:3957
-#: locale/programs/ld-ctype.c:1846 locale/programs/ld-ctype.c:2104
-#: locale/programs/ld-ctype.c:2676 locale/programs/ld-ctype.c:2837
+#: locale/programs/ld-ctype.c:1847 locale/programs/ld-ctype.c:2105
+#: locale/programs/ld-ctype.c:2677 locale/programs/ld-ctype.c:2838
#: locale/programs/ld-identification.c:404
#: locale/programs/ld-measurement.c:220 locale/programs/ld-messages.c:302
#: locale/programs/ld-monetary.c:755 locale/programs/ld-name.c:269
@@ -2265,133 +2258,130 @@ msgstr "merkistökartta â€%s†on jo määritelty"
msgid "implementation limit: no more than %d character maps allowed"
msgstr "toteutuksen rajoitus: korkeintaan %d merkistökarttaa sallittu"
-#: locale/programs/ld-ctype.c:1434 locale/programs/ld-ctype.c:1559
-#: locale/programs/ld-ctype.c:1665 locale/programs/ld-ctype.c:2341
-#: locale/programs/ld-ctype.c:3299
+#: locale/programs/ld-ctype.c:1435 locale/programs/ld-ctype.c:1560
+#: locale/programs/ld-ctype.c:1666 locale/programs/ld-ctype.c:2342
+#: locale/programs/ld-ctype.c:3302
#, c-format
msgid "%s: field `%s' does not contain exactly ten entries"
msgstr "%s: kenttä â€%s†ei sisällä tasan kymmentä merkintää"
-#: locale/programs/ld-ctype.c:1462 locale/programs/ld-ctype.c:2036
+#: locale/programs/ld-ctype.c:1463 locale/programs/ld-ctype.c:2037
#, c-format
msgid "to-value <U%0*X> of range is smaller than from-value <U%0*X>"
msgstr "välin to-arvo <U%0*X> on pienempi kuin from-arvo <U%0*X>"
-#: locale/programs/ld-ctype.c:1589
+#: locale/programs/ld-ctype.c:1590
msgid "start and end character sequence of range must have the same length"
msgstr "välin aloitus- ja lopetusmerkkisarjojen on oltava saman pituiset"
-#: locale/programs/ld-ctype.c:1596
+#: locale/programs/ld-ctype.c:1597
msgid "to-value character sequence is smaller than from-value sequence"
msgstr "to-arvon merkkisarja on pienempi kuin from-arvon sarja"
-#: locale/programs/ld-ctype.c:1956 locale/programs/ld-ctype.c:2007
+#: locale/programs/ld-ctype.c:1957 locale/programs/ld-ctype.c:2008
msgid "premature end of `translit_ignore' definition"
msgstr "ennenaikainen â€translit_ignoreâ€-määrittelyn loppu"
-#: locale/programs/ld-ctype.c:1962 locale/programs/ld-ctype.c:2013
-#: locale/programs/ld-ctype.c:2055
+#: locale/programs/ld-ctype.c:1963 locale/programs/ld-ctype.c:2014
+#: locale/programs/ld-ctype.c:2056
msgid "syntax error"
msgstr "syntaksivirhe"
-#: locale/programs/ld-ctype.c:2188
+#: locale/programs/ld-ctype.c:2189
#, c-format
msgid "%s: syntax error in definition of new character class"
msgstr "%s: syntaksivirhe uuden merkkiluokan määrittelyssä"
-#: locale/programs/ld-ctype.c:2203
+#: locale/programs/ld-ctype.c:2204
#, c-format
msgid "%s: syntax error in definition of new character map"
msgstr "%s: syntaksivirhe uuden merkistökartan määrittelyssä"
-#: locale/programs/ld-ctype.c:2363
+#: locale/programs/ld-ctype.c:2364
msgid "ellipsis range must be marked by two operands of same type"
msgstr "sanankatkaisuväliä on merkittävä kahdella saman tyyppisellä operandilla"
-#: locale/programs/ld-ctype.c:2372
+#: locale/programs/ld-ctype.c:2373
msgid "with symbolic name range values the absolute ellipsis `...' must not be used"
msgstr "absoluuttista sanankatkaisua â€...†ei saa käyttää symbolisen nimivälin arvojen kanssa"
-#: locale/programs/ld-ctype.c:2387
+#: locale/programs/ld-ctype.c:2388
msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'"
msgstr "UCS-välin arvojen kanssa on käytettävä heksadesimaalista symbolista sanankatkaisua â€..â€"
-#: locale/programs/ld-ctype.c:2401
+#: locale/programs/ld-ctype.c:2402
msgid "with character code range values one must use the absolute ellipsis `...'"
msgstr "merkkikoodivälin arvojen kanssa on käytettävä absoluuttista sanankatkaisua â€...â€"
-#: locale/programs/ld-ctype.c:2552
+#: locale/programs/ld-ctype.c:2553
#, c-format
msgid "duplicated definition for mapping `%s'"
msgstr "kaksinkertainen määrittely kartoitukselle â€%sâ€"
-#: locale/programs/ld-ctype.c:2638 locale/programs/ld-ctype.c:2782
+#: locale/programs/ld-ctype.c:2639 locale/programs/ld-ctype.c:2783
#, c-format
msgid "%s: `translit_start' section does not end with `translit_end'"
msgstr "%s: â€translit_startâ€-osa ei lopu tekstiin â€translit_endâ€"
-#: locale/programs/ld-ctype.c:2733
+#: locale/programs/ld-ctype.c:2734
#, c-format
msgid "%s: duplicate `default_missing' definition"
msgstr "%s: kaksinkertainen â€default_missingâ€-määrittely"
-#: locale/programs/ld-ctype.c:2738
+#: locale/programs/ld-ctype.c:2739
msgid "previous definition was here"
msgstr "edellinen määrittely oli täällä"
-#: locale/programs/ld-ctype.c:2760
+#: locale/programs/ld-ctype.c:2761
#, c-format
msgid "%s: no representable `default_missing' definition found"
msgstr "%s: esitettävissä olevaa â€default_missingâ€-määrittelyä ei löytynyt"
-#: locale/programs/ld-ctype.c:2877 locale/programs/ld-ctype.c:2973
-#: locale/programs/ld-ctype.c:2992 locale/programs/ld-ctype.c:3012
-#: locale/programs/ld-ctype.c:3032 locale/programs/ld-ctype.c:3052
-#: locale/programs/ld-ctype.c:3072 locale/programs/ld-ctype.c:3111
-#: locale/programs/ld-ctype.c:3131 locale/programs/ld-ctype.c:3195
-#: locale/programs/ld-ctype.c:3236 locale/programs/ld-ctype.c:3259
+#: locale/programs/ld-ctype.c:2878 locale/programs/ld-ctype.c:2974
+#: locale/programs/ld-ctype.c:2993 locale/programs/ld-ctype.c:3013
+#: locale/programs/ld-ctype.c:3033 locale/programs/ld-ctype.c:3053
+#: locale/programs/ld-ctype.c:3073 locale/programs/ld-ctype.c:3112
+#: locale/programs/ld-ctype.c:3132 locale/programs/ld-ctype.c:3198
+#: locale/programs/ld-ctype.c:3239 locale/programs/ld-ctype.c:3262
#, c-format
msgid "%s: character `%s' not defined while needed as default value"
msgstr "%s: oletusarvona tarvittavaa merkkiä â€%s†ei ole määritelty"
-#: locale/programs/ld-ctype.c:2882 locale/programs/ld-ctype.c:2978
-#: locale/programs/ld-ctype.c:2997 locale/programs/ld-ctype.c:3017
-#: locale/programs/ld-ctype.c:3037 locale/programs/ld-ctype.c:3057
-#: locale/programs/ld-ctype.c:3077 locale/programs/ld-ctype.c:3116
-#: locale/programs/ld-ctype.c:3136 locale/programs/ld-ctype.c:3200
+#: locale/programs/ld-ctype.c:2883 locale/programs/ld-ctype.c:2979
+#: locale/programs/ld-ctype.c:2998 locale/programs/ld-ctype.c:3018
+#: locale/programs/ld-ctype.c:3038 locale/programs/ld-ctype.c:3058
+#: locale/programs/ld-ctype.c:3078 locale/programs/ld-ctype.c:3117
+#: locale/programs/ld-ctype.c:3137 locale/programs/ld-ctype.c:3203
#, c-format
msgid "%s: character `%s' in charmap not representable with one byte"
msgstr "%s: merkistökartan merkki â€%s†ei ole esitettävissä yhdellä tavulla"
-#: locale/programs/ld-ctype.c:3242 locale/programs/ld-ctype.c:3265
+#: locale/programs/ld-ctype.c:3245 locale/programs/ld-ctype.c:3268
#, c-format
msgid "%s: character `%s' needed as default value not representable with one byte"
msgstr "%s: oletusarvona tarvittava merkki â€%s†ei ole esitettävissä yhdellä tavulla"
-#: locale/programs/ld-ctype.c:3321
+#: locale/programs/ld-ctype.c:3324
msgid "no output digits defined and none of the standard names in the charmap"
msgstr "tulostenumeroita ei ole määritelty, eikä merkistökartassa ole standardinimiä"
-#: locale/programs/ld-ctype.c:3570
+#: locale/programs/ld-ctype.c:3573
#, c-format
msgid "%s: transliteration data from locale `%s' not available"
msgstr "%s: translitterointidata maa-asetustosta â€%s†ei ole käytettävissä"
-#: locale/programs/ld-ctype.c:3669
+#: locale/programs/ld-ctype.c:3672
#, fuzzy, c-format
-#| msgid "%s: table for class \"%s\": %lu bytes\n"
msgid "%s: table for class \"%s\": %lu bytes"
msgstr "%s: taulukko luokalle â€%sâ€: %lu tavua\n"
-#: locale/programs/ld-ctype.c:3733
+#: locale/programs/ld-ctype.c:3736
#, fuzzy, c-format
-#| msgid "%s: table for map \"%s\": %lu bytes\n"
msgid "%s: table for map \"%s\": %lu bytes"
msgstr "%s: taulukko kartalle â€%sâ€: %lu tavua\n"
-#: locale/programs/ld-ctype.c:3857
+#: locale/programs/ld-ctype.c:3860
#, fuzzy, c-format
-#| msgid "%s: table for width: %lu bytes\n"
msgid "%s: table for width: %lu bytes"
msgstr "%s: taulukko leveydelle: %lu tavua\n"
@@ -2402,7 +2392,6 @@ msgstr "%s: ei tunnistetta kategorialle â€%sâ€"
#: locale/programs/ld-identification.c:197
#, fuzzy, c-format
-#| msgid "%s: no identification for category `%s'"
msgid "%s: unknown standard `%s' for category `%s'"
msgstr "%s: ei tunnistetta kategorialle â€%sâ€"
@@ -2439,7 +2428,6 @@ msgstr "%s: â€int_curr_symbolâ€-kentän arvo on väärän pituinen"
#: locale/programs/ld-monetary.c:245
#, fuzzy, c-format
-#| msgid "%s: value of field `int_curr_symbol' does not correspond to a valid name in ISO 4217"
msgid "%s: value of field `int_curr_symbol' does not correspond to a valid name in ISO 4217 [--no-warnings=intcurrsym]"
msgstr "%s: â€int_curr_symbolâ€-kentä arvo ei vastaa kelvollista nimeä ISO 4217:ssä"
@@ -2501,7 +2489,7 @@ msgstr "%s: virheellinen aloituspäivä merkkijonossa %Zd kentässä â€eraâ€"
#: locale/programs/ld-time.c:338
#, c-format
msgid "%s: garbage at end of starting date in string %Zd in `era' field "
-msgstr "%s: roskaa aloituspäivän lopussa merkkijonossa %Zd kentässä â€eraâ€"
+msgstr "%s: roskaa aloituspäivän lopussa merkkijonossa %Zd kentässä â€era†"
#: locale/programs/ld-time.c:356
#, c-format
@@ -2632,122 +2620,114 @@ msgstr ""
"NIMI\n"
"[-a|-m]"
-#: locale/programs/locale.c:190
+#: locale/programs/locale.c:522
#, c-format
-msgid "Cannot set LC_CTYPE to default locale"
-msgstr ""
-
-#: locale/programs/locale.c:192
-#, c-format
-msgid "Cannot set LC_MESSAGES to default locale"
-msgstr ""
+msgid "while preparing output"
+msgstr "valmisteltaessa tulostetta"
-#: locale/programs/locale.c:205
+#: locale/programs/locale.c:998
#, c-format
-msgid "Cannot set LC_COLLATE to default locale"
+msgid "Cannot set %s to default locale"
msgstr ""
-#: locale/programs/locale.c:221
+#: locale/programs/locale.c:1096
#, c-format
-msgid "Cannot set LC_ALL to default locale"
+msgid "warning: The LOCPATH variable is set to \"%s\"\n"
msgstr ""
-#: locale/programs/locale.c:521
-#, c-format
-msgid "while preparing output"
-msgstr "valmisteltaessa tulostetta"
-
-#: locale/programs/localedef.c:112
+#: locale/programs/localedef.c:116
msgid "Input Files:"
msgstr "Syötetiedostot:"
-#: locale/programs/localedef.c:114
+#: locale/programs/localedef.c:118
msgid "Symbolic character names defined in FILE"
msgstr "Symboliset merkkien nimet annettu TIEDOSTOssa"
-#: locale/programs/localedef.c:116
+#: locale/programs/localedef.c:120
msgid "Source definitions are found in FILE"
msgstr "Lähdemäärittelyt löytyvät TIEDOSTOsta"
-#: locale/programs/localedef.c:118
+#: locale/programs/localedef.c:122
msgid "FILE contains mapping from symbolic names to UCS4 values"
msgstr "TIEDOSTO sisältää kartoituksen symbolisista nimistä UCS4-arvoiksi"
-#: locale/programs/localedef.c:122
+#: locale/programs/localedef.c:126
msgid "Create output even if warning messages were issued"
msgstr "Luo tuloste varoituksista huolimatta"
-#: locale/programs/localedef.c:123
+#: locale/programs/localedef.c:128
+msgid "Do not create hard links between installed locales"
+msgstr "Älä luo kovia linkkejä asennettujen maa-asetustojen välille"
+
+#: locale/programs/localedef.c:129
msgid "Optional output file prefix"
msgstr "Valinnainen tulostiedoston pääte"
-#: locale/programs/localedef.c:124
+#: locale/programs/localedef.c:130
msgid "Strictly conform to POSIX"
msgstr "Noudata tarkasti POSIXia"
-#: locale/programs/localedef.c:126
+#: locale/programs/localedef.c:132
msgid "Suppress warnings and information messages"
msgstr "Vaienna varoitukset ja tiedotukset"
-#: locale/programs/localedef.c:127
+#: locale/programs/localedef.c:133
msgid "Print more messages"
msgstr "Näytä lisää viestejä"
-#: locale/programs/localedef.c:128 locale/programs/localedef.c:131
-#, fuzzy
-#| msgid "warning: "
+#: locale/programs/localedef.c:134 locale/programs/localedef.c:137
msgid "<warnings>"
-msgstr "varoitus: "
+msgstr "<varoitukset>"
-#: locale/programs/localedef.c:129
+#: locale/programs/localedef.c:135
msgid "Comma-separated list of warnings to disable; supported warnings are: ascii, intcurrsym"
msgstr ""
-#: locale/programs/localedef.c:132
+#: locale/programs/localedef.c:138
msgid "Comma-separated list of warnings to enable; supported warnings are: ascii, intcurrsym"
msgstr ""
-#: locale/programs/localedef.c:135
+#: locale/programs/localedef.c:141
msgid "Archive control:"
msgstr "Arkiston hallinta:"
-#: locale/programs/localedef.c:137
+#: locale/programs/localedef.c:143
msgid "Don't add new data to archive"
msgstr "Älä lisää uutta dataa arkistoon"
-#: locale/programs/localedef.c:139
+#: locale/programs/localedef.c:145
msgid "Add locales named by parameters to archive"
msgstr "Lisää parametrina annetut maa-asetustot arkistoon"
-#: locale/programs/localedef.c:140
+#: locale/programs/localedef.c:146
msgid "Replace existing archive content"
msgstr "Korvaa olemassaoleva arkiston sisältö"
-#: locale/programs/localedef.c:142
+#: locale/programs/localedef.c:148
msgid "Remove locales named by parameters from archive"
msgstr "Poista parametrina annetut maa-asetustot arkistosta"
-#: locale/programs/localedef.c:143
+#: locale/programs/localedef.c:149
msgid "List content of archive"
msgstr "Listaa arkiston sisältö"
-#: locale/programs/localedef.c:145
+#: locale/programs/localedef.c:151
msgid "locale.alias file to consult when making archive"
msgstr "Arkistoa luotaessa käytettävä locale.alias-tiedosto"
-#: locale/programs/localedef.c:147
+#: locale/programs/localedef.c:153
msgid "Generate little-endian output"
msgstr "Tuota little-endian-muotoa"
-#: locale/programs/localedef.c:149
+#: locale/programs/localedef.c:155
msgid "Generate big-endian output"
msgstr "Tuota big-endian-muotoa"
-#: locale/programs/localedef.c:154
+#: locale/programs/localedef.c:160
msgid "Compile locale specification"
msgstr "Käännä maa-asetustomäärittelyt"
-#: locale/programs/localedef.c:157
+#: locale/programs/localedef.c:163
msgid ""
"NAME\n"
"[--add-to-archive|--delete-from-archive] FILE...\n"
@@ -2757,33 +2737,31 @@ msgstr ""
"[--add-to-archive|--delete-from-archive] TIEDOSTO...\n"
"--list-archive [TIEDOSTO]"
-#: locale/programs/localedef.c:232
+#: locale/programs/localedef.c:238
#, c-format
msgid "cannot create directory for output files"
msgstr "tulostiedostoille ei voi luoda hakemistoa"
-#: locale/programs/localedef.c:243
+#: locale/programs/localedef.c:249
msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
msgstr "VAKAVAA: â€_POSIX2_LOCALEDEF†ei ole määritelty järjestelmässä"
-#: locale/programs/localedef.c:257 locale/programs/localedef.c:273
-#: locale/programs/localedef.c:663 locale/programs/localedef.c:683
+#: locale/programs/localedef.c:263 locale/programs/localedef.c:279
+#: locale/programs/localedef.c:673 locale/programs/localedef.c:693
#, c-format
msgid "cannot open locale definition file `%s'"
msgstr "maa-asetustotiedostoa â€%s†ei voi avata"
-#: locale/programs/localedef.c:297
+#: locale/programs/localedef.c:303
#, c-format
msgid "cannot write output files to `%s'"
msgstr "tulostiedostoja ei voi kirjoittaa hakemistoon â€%sâ€"
-#: locale/programs/localedef.c:303
-#, fuzzy
-#| msgid "no output file produced because warnings were issued"
+#: locale/programs/localedef.c:309
msgid "no output file produced because errors were issued"
-msgstr "tulostiedostoa ei tuotettu varoituksen takia"
+msgstr "tulostiedostoa ei tuotettu virheiden takia"
-#: locale/programs/localedef.c:431
+#: locale/programs/localedef.c:441
#, fuzzy, c-format
msgid ""
"System's directory for character maps : %s\n"
@@ -2796,11 +2774,11 @@ msgstr ""
" maa-asetustopolku : %s\n"
"%s"
-#: locale/programs/localedef.c:631
+#: locale/programs/localedef.c:641
msgid "circular dependencies between locale definitions"
msgstr "kehäriippuvuuksia maa-asetustomäärittelyissä"
-#: locale/programs/localedef.c:637
+#: locale/programs/localedef.c:647
#, c-format
msgid "cannot add already read locale `%s' a second time"
msgstr "luettua maa-asetustoa â€%s†ei voi lisätä toista kertaa"
@@ -2957,25 +2935,25 @@ msgstr "kategorian â€%2$s†tulostiedostoa â€%1$s†ei voi avata"
msgid "failure while writing data for category `%s'"
msgstr "virhe kirjoitettaessa kategorian â€%s†dataa"
-#: locale/programs/locfile.c:917
+#: locale/programs/locfile.c:930
#, c-format
msgid "cannot create output file `%s' for category `%s'"
msgstr "kategorialle â€%2$s†ei voi luoda tulostiedostoa â€%1$sâ€"
-#: locale/programs/locfile.c:953
+#: locale/programs/locfile.c:966
#, fuzzy
msgid "expecting string argument for `copy'"
msgstr "näkyvyysargumentti ei ole merkkijono"
-#: locale/programs/locfile.c:957
+#: locale/programs/locfile.c:970
msgid "locale name should consist only of portable characters"
msgstr "maa-asetuston nimessä saa olla vain siirrettäviä merkkejä"
-#: locale/programs/locfile.c:976
+#: locale/programs/locfile.c:989
msgid "no other keyword shall be specified when `copy' is used"
msgstr "muita avainsanoja ei tule antaa käytettäessä toimintoa â€copyâ€"
-#: locale/programs/locfile.c:990
+#: locale/programs/locfile.c:1003
#, c-format
msgid "`%1$s' definition does not end with `END %1$s'"
msgstr "â€%1$sâ€-määrittelyn lopusta puuttuu â€END %1$sâ€"
@@ -3011,6 +2989,9 @@ msgid ""
"\n"
"%s"
msgstr ""
+"Omistajaksi on asetettu nykyinen käyttäjä, ryhmäksi â€%s†ja pääsyoikeuksiksi â€%oâ€.\n"
+"\n"
+"%s"
#: login/programs/pt_chown.c:204
#, c-format
@@ -3087,9 +3068,8 @@ msgid ""
msgstr ""
#: malloc/memusage.sh:191
-#, fuzzy
msgid "memusage: option \\`${1##*=}' is ambiguous"
-msgstr "memusage: tunnistamaton valitsin â€$1â€"
+msgstr "memusage: valitsin \\`${1##*=}' on moniselitteinen"
#: malloc/memusage.sh:200
msgid "memusage: unrecognized option \\`$1'"
@@ -3632,7 +3612,7 @@ msgstr " Ei rekursiivisia jäseniä\n"
#: nis/nis_print_group_entry.c:149
msgid " Explicit nonmembers:\n"
-msgstr " Ilmaistut ei-jäsenet:\n"
+msgstr " Ilmaistut epäjäsenet:\n"
#: nis/nis_print_group_entry.c:154
msgid " No explicit nonmembers\n"
@@ -3648,7 +3628,7 @@ msgstr " Ei ilmaisemattomia epäjäseniä\n"
#: nis/nis_print_group_entry.c:165
msgid " Recursive nonmembers:\n"
-msgstr " Rekursiiviset ei-jäsenet:\n"
+msgstr " Rekursiiviset epäjäsenet:\n"
#: nis/nis_print_group_entry.c:170
msgid " No recursive nonmembers\n"
@@ -3780,12 +3760,12 @@ msgstr "yp_update: konenimeä ei voi muuntaa verkkonimeksi\n"
msgid "yp_update: cannot get server address\n"
msgstr "yp_update: palvelimen osoitetta ei löydy\n"
-#: nscd/aicache.c:83 nscd/hstcache.c:452
+#: nscd/aicache.c:82 nscd/hstcache.c:452
#, c-format
msgid "Haven't found \"%s\" in hosts cache!"
msgstr "â€%s†ei löytynyt konenimivälimuistista!"
-#: nscd/aicache.c:85 nscd/hstcache.c:454
+#: nscd/aicache.c:84 nscd/hstcache.c:454
#, fuzzy, c-format
msgid "Reloading \"%s\" in hosts cache!"
msgstr "â€%s†ei löytynyt konenimivälimuistista!"
@@ -3801,7 +3781,6 @@ msgstr " (ensimmäinen)"
#: nscd/cache.c:288
#, fuzzy, c-format
-#| msgid "cannot stat() file `%s': %s"
msgid "checking for monitored file `%s': %s"
msgstr "tiedoston â€%s†tilaa ei voi lukea: %s"
@@ -3873,9 +3852,9 @@ msgid "cannot create %s; no sharing possible"
msgstr "hakemiston %s luominen ei onnistu"
#: nscd/connections.c:729
-#, fuzzy, c-format
+#, c-format
msgid "cannot write to database file %s: %s"
-msgstr "tulosta ei voi kirjoittaa: %s"
+msgstr "tietokantatiedostoon %s ei voi kirjoittaa: %s"
#: nscd/connections.c:785
#, c-format
@@ -3895,7 +3874,7 @@ msgstr ""
#: nscd/connections.c:865
#, c-format
msgid "monitoring file `%s` (%d)"
-msgstr ""
+msgstr "seurataan tiedostoa â€%s†(%d)"
#: nscd/connections.c:878
#, c-format
@@ -3904,7 +3883,6 @@ msgstr ""
#: nscd/connections.c:882
#, fuzzy, c-format
-#| msgid "Can't open directory %s"
msgid "monitoring directory `%s` (%d)"
msgstr "Hakemistoa %s ei voi avata"
@@ -3998,9 +3976,9 @@ msgid "short read while reading request key: %s"
msgstr "vajaa luku luettaessa pyyntöavainta: %s"
#: nscd/connections.c:1693
-#, fuzzy, c-format
+#, c-format
msgid "handle_request: request received (Version = %d) from PID %ld"
-msgstr "handle_request: pyyntö vastaanotettu (Versio = %d)"
+msgstr "handle_request: pyyntö vastaanotettu (Versio = %d) PID:ltä %ld"
#: nscd/connections.c:1698
#, c-format
@@ -4039,7 +4017,6 @@ msgstr ""
#: nscd/connections.c:1928
#, fuzzy, c-format
-#| msgid "failed to load shared object `%s'"
msgid "failed to add file watch `%s`: %s"
msgstr "jaettua objektia â€%s†ei voitu ladata"
@@ -4069,9 +4046,8 @@ msgid "Failed to run nscd as user '%s'"
msgstr "Ohjelman nscd ajaminen käyttäjän â€%s†oikeuksilla epäonnistui"
#: nscd/connections.c:2483
-#, fuzzy
msgid "initial getgrouplist failed"
-msgstr "getgrouplist epäonnistui"
+msgstr "alustava getgrouplist epäonnistui"
#: nscd/connections.c:2492
msgid "getgrouplist failed"
@@ -4112,22 +4088,22 @@ msgstr "vapautettiin %zu tavua %s-välimuistissa"
msgid "no more memory for database '%s'"
msgstr "Karttatietokannassa ei ole enempää tietueita"
-#: nscd/netgroupcache.c:121
+#: nscd/netgroupcache.c:122
#, fuzzy, c-format
msgid "Haven't found \"%s\" in netgroup cache!"
msgstr "â€%s†ei löytynyt konenimivälimuistista!"
-#: nscd/netgroupcache.c:123
+#: nscd/netgroupcache.c:124
#, fuzzy, c-format
msgid "Reloading \"%s\" in netgroup cache!"
msgstr "â€%s†ei löytynyt konenimivälimuistista!"
-#: nscd/netgroupcache.c:469
+#: nscd/netgroupcache.c:470
#, fuzzy, c-format
msgid "Haven't found \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr "â€%s†ei löytynyt ryhmävälimuistista!"
-#: nscd/netgroupcache.c:472
+#: nscd/netgroupcache.c:473
#, fuzzy, c-format
msgid "Reloading \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr "â€%s†ei löytynyt konenimivälimuistista!"
@@ -4183,13 +4159,13 @@ msgstr "Käytä erillistä välimuistia jokaiselle käyttäjälle"
msgid "Name Service Cache Daemon."
msgstr "Nimipalvelun välimuistidemoni."
-#: nscd/nscd.c:155 nss/getent.c:967 nss/makedb.c:206
+#: nscd/nscd.c:155 nss/getent.c:987 nss/makedb.c:206
#, c-format
msgid "wrong number of arguments"
msgstr "väärä määrä argumentteja"
#: nscd/nscd.c:165
-#, fuzzy, c-format
+#, c-format
msgid "failure while reading configuration file; this is fatal"
msgstr "asetustiedostoa ei voi lukea; tämä on vakavaa"
@@ -4200,7 +4176,6 @@ msgstr "on jo käynnissä"
#: nscd/nscd.c:194
#, fuzzy, c-format
-#| msgid "cannot create directory for output files"
msgid "cannot create a pipe to talk to the child"
msgstr "tulostiedostoille ei voi luoda hakemistoa"
@@ -4270,14 +4245,13 @@ msgstr ""
#: nscd/nscd.c:647
#, fuzzy, c-format
-#| msgid "Interrupted by a signal"
msgid "child terminated by signal %d\n"
msgstr "Signaalin keskeyttämä"
#: nscd/nscd_conf.c:54
-#, fuzzy, c-format
+#, c-format
msgid "database %s is not supported"
-msgstr "â€%s†ei ole tunnettu tietokanta"
+msgstr "â€%s†ei ole tuettu tietokanta"
#: nscd/nscd_conf.c:105
#, c-format
@@ -4289,27 +4263,27 @@ msgstr "Jäsennysvirhe: %s"
msgid "Must specify user name for server-user option"
msgstr "Palvelinkäyttäjä-valitsimelle on annettava käyttäjänimi"
-#: nscd/nscd_conf.c:198
+#: nscd/nscd_conf.c:201
#, fuzzy, c-format
msgid "Must specify user name for stat-user option"
msgstr "Palvelinkäyttäjä-valitsimelle on annettava käyttäjänimi"
-#: nscd/nscd_conf.c:255
+#: nscd/nscd_conf.c:259
#, fuzzy, c-format
msgid "Must specify value for restart-interval option"
msgstr "Palvelinkäyttäjä-valitsimelle on annettava käyttäjänimi"
-#: nscd/nscd_conf.c:269
+#: nscd/nscd_conf.c:273
#, c-format
msgid "Unknown option: %s %s %s"
msgstr "Tuntematon valitsin: %s %s %s"
-#: nscd/nscd_conf.c:282
+#: nscd/nscd_conf.c:286
#, c-format
msgid "cannot get current working directory: %s; disabling paranoia mode"
msgstr ""
-#: nscd/nscd_conf.c:302
+#: nscd/nscd_conf.c:306
#, c-format
msgid "maximum file size for %s database too small"
msgstr ""
@@ -4432,7 +4406,6 @@ msgstr ""
#: nscd/pwdcache.c:407
#, fuzzy, c-format
-#| msgid "Haven't found \"%s\" in hosts cache!"
msgid "Haven't found \"%s\" in user database cache!"
msgstr "â€%s†ei löytynyt konenimivälimuistista!"
@@ -4484,22 +4457,19 @@ msgstr ""
#: nscd/selinux.c:254
msgid "Failed to determine if kernel supports SELinux"
-msgstr ""
+msgstr "Ei voitu määrittää, tukeeko ydin SELinuxia"
#: nscd/selinux.c:269
-#, fuzzy
msgid "Failed to start AVC thread"
-msgstr "muunnoksen aloittaminen epäonnistui"
+msgstr "AVC-säikeen käynnistäminen epäonnistui"
#: nscd/selinux.c:291
-#, fuzzy
msgid "Failed to create AVC lock"
-msgstr "vastakutsua ei voi luoda"
+msgstr "AVC-lukon luominen epäonnistui"
#: nscd/selinux.c:331
-#, fuzzy
msgid "Failed to start AVC"
-msgstr "muunnoksen aloittaminen epäonnistui"
+msgstr "AVC:n käynnistys epäonnistui"
#: nscd/selinux.c:333
msgid "Access Vector Cache (AVC) started"
@@ -4558,49 +4528,48 @@ msgstr "â€%s†ei löytynyt konenimivälimuistista!"
msgid "Reloading \"%s\" in services cache!"
msgstr "â€%s†ei löytynyt konenimivälimuistista!"
-#: nss/getent.c:54
+#: nss/getent.c:55
msgid "database [key ...]"
msgstr "tietokanta [avain ...]"
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "CONFIG"
msgstr ""
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "Service configuration to be used"
msgstr "Käytettävät palveluasetukset"
-#: nss/getent.c:60
+#: nss/getent.c:61
#, fuzzy
msgid "disable IDN encoding"
msgstr "tulosteen koodaus"
-#: nss/getent.c:65
+#: nss/getent.c:66
#, fuzzy
msgid "Get entries from administrative database."
msgstr "getent - hae merkintöjä hallinnollisesta tietokannasta."
-#: nss/getent.c:149 nss/getent.c:442 nss/getent.c:489
+#: nss/getent.c:150 nss/getent.c:462 nss/getent.c:509
#, c-format
msgid "Enumeration not supported on %s\n"
msgstr "%s ei tue luettelemista\n"
-#: nss/getent.c:497 nss/getent.c:510
+#: nss/getent.c:517 nss/getent.c:530
#, fuzzy, c-format
-#| msgid "Could not create log file"
msgid "Could not allocate group list: %m\n"
msgstr "Lokitiedostoa ei voitu luoda"
-#: nss/getent.c:881
+#: nss/getent.c:901
#, c-format
msgid "Unknown database name"
msgstr "Tuntematon tietokannan nimi"
-#: nss/getent.c:911
+#: nss/getent.c:931
msgid "Supported databases:\n"
msgstr "Tuetut tietokannat:\n"
-#: nss/getent.c:977
+#: nss/getent.c:997
#, c-format
msgid "Unknown database: %s\n"
msgstr "Tuntematon tietokanta: %s\n"
@@ -4640,9 +4609,9 @@ msgstr ""
"-u SYÖTETIEDOSTO"
#: nss/makedb.c:227
-#, fuzzy, c-format
+#, c-format
msgid "cannot open database file `%s'"
-msgstr "salasanatietokantaa ei voi avata."
+msgstr "tietokantatiedostoa â€%s†ei voi avata"
#: nss/makedb.c:272
#, fuzzy, c-format
@@ -4750,32 +4719,29 @@ msgid "Unrecognized variable `%s'"
msgstr "Tunnistamaton muuttuja â€%sâ€"
#: posix/getopt.c:277
-#, fuzzy, c-format
-#| msgid "%s: option '-W %s' is ambiguous\n"
+#, c-format
msgid "%s: option '%s%s' is ambiguous\n"
-msgstr "%s: valitsin â€-W %s†on moniselitteinen\n"
+msgstr "%s: valitsin â€%s%s†on moniselitteinen\n"
#: posix/getopt.c:283
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' is ambiguous; possibilities:"
-msgstr "%s: valitsin â€%s†on moniselitteinen; vaihtoehdot:"
+msgstr "%s: valitsin â€%s%s†on moniselitteinen; vaihtoehdot:"
#: posix/getopt.c:318
-#, fuzzy, c-format
-#| msgid "%s: unrecognized option '%c%s'\n"
+#, c-format
msgid "%s: unrecognized option '%s%s'\n"
-msgstr "%s: tunnistamaton valitsin â€%c%sâ€\n"
+msgstr "%s: tunnistamaton valitsin â€%s%sâ€\n"
#: posix/getopt.c:344
-#, fuzzy, c-format
-#| msgid "%s: option '%c%s' doesn't allow an argument\n"
+#, c-format
msgid "%s: option '%s%s' doesn't allow an argument\n"
-msgstr "%s: valitsin â€%c%s†ei salli argumenttia\n"
+msgstr "%s: valitsin â€%s%s†ei salli argumenttia\n"
#: posix/getopt.c:359
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' requires an argument\n"
-msgstr "%s: valitsin â€--%s†vaatii argumentin\n"
+msgstr "%s: valitsin â€%s%s†vaatii argumentin\n"
#: posix/getopt.c:620
#, c-format
@@ -4813,7 +4779,6 @@ msgstr "Virheellinen takaisinviittaus"
#: posix/regcomp.c:156
#, fuzzy
-#| msgid "Unmatched [ or [^"
msgid "Unmatched [, [^, [:, [., or [="
msgstr "Pariton [ tai [^"
@@ -4853,11 +4818,11 @@ msgstr "Liian suuri säännöllinen ilmaus"
msgid "Unmatched ) or \\)"
msgstr "Pariton ) tai \\)"
-#: posix/regcomp.c:689
+#: posix/regcomp.c:676
msgid "No previous regular expression"
msgstr "Ei edeltävää säännöllistä lauseketta"
-#: posix/wordexp.c:1815
+#: posix/wordexp.c:1816
msgid "parameter null or not set"
msgstr "parametri on null tai asettamatta"
@@ -5001,9 +4966,8 @@ msgid "Nonexisting physical address"
msgstr "Olematon fyysinen osoite"
#: stdio-common/psiginfo-data.h:28
-#, fuzzy
msgid "Object-specific hardware error"
-msgstr "RFS:n virhe"
+msgstr "Objektikohtainen laitteistovirhe"
#: stdio-common/psiginfo-data.h:31
#, fuzzy
@@ -5045,15 +5009,14 @@ msgid "Data input available"
msgstr "Dataa ei ole käytettävissä"
#: stdio-common/psiginfo-data.h:44
-#, fuzzy
msgid "Output buffers available"
-msgstr "tyhjennä puskurit"
+msgstr "Käytettävissä olevat tulostepuskurit"
#: stdio-common/psiginfo-data.h:45
msgid "Input message available"
msgstr "Syöteviesti saatavilla"
-#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:381 timezone/zic.c:520
+#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:375 timezone/zic.c:561
msgid "I/O error"
msgstr "I/O-virhe"
@@ -5100,7 +5063,7 @@ msgstr ""
#: stdio-common/psiginfo.c:175
msgid "Signal sent by the kernel"
-msgstr ""
+msgstr "Ytimen lähettämä signaali"
#: stdio-common/psiginfo.c:199
#, c-format
@@ -5137,7 +5100,7 @@ msgstr "Tuntematon signaali %d"
#: sunrpc/auth_unix.c:112 sunrpc/clnt_tcp.c:124 sunrpc/clnt_udp.c:139
#: sunrpc/clnt_unix.c:125 sunrpc/svc_tcp.c:189 sunrpc/svc_tcp.c:233
#: sunrpc/svc_udp.c:161 sunrpc/svc_unix.c:189 sunrpc/svc_unix.c:229
-#: sunrpc/xdr.c:628 sunrpc/xdr.c:788 sunrpc/xdr_array.c:102
+#: sunrpc/xdr.c:631 sunrpc/xdr.c:791 sunrpc/xdr_array.c:102
#: sunrpc/xdr_rec.c:153 sunrpc/xdr_ref.c:79
msgid "out of memory\n"
msgstr "muisti lopussa\n"
@@ -6389,56 +6352,69 @@ msgid "You really blew it this time"
msgstr "Tällä kertaa todella sotkit asiat"
#. TRANS Go home and have a glass of warm, dairy-fresh milk.
-#: sysdeps/gnu/errlist.c:978
+#. TRANS @c Okay. Since you are dying to know, I'll tell you.
+#. TRANS @c This is a joke, obviously. There is a children's song which begins,
+#. TRANS @c "Old McDonald had a farm, e-i-e-i-o." Every time I see the (real)
+#. TRANS @c errno macro EIO, I think about that song. Probably most of my
+#. TRANS @c compatriots who program on Unix do, too. One of them must have stayed
+#. TRANS @c up a little too late one night and decided to add it to Hurd or Glibc.
+#. TRANS @c Whoever did it should be castigated, but it made me laugh.
+#. TRANS @c --jtobey@channel1.com
+#. TRANS @c
+#. TRANS @c "bought the farm" means "died". -jtobey
+#. TRANS @c
+#. TRANS @c Translators, please do not translate this litteraly, translate it into
+#. TRANS @c an idiomatic funny way of saying that the computer died.
+#: sysdeps/gnu/errlist.c:991
msgid "Computer bought the farm"
msgstr "Tietokone heitti veivinsä"
#. TRANS This error code has no purpose.
-#: sysdeps/gnu/errlist.c:987
+#: sysdeps/gnu/errlist.c:1000
msgid "Gratuitous error"
msgstr "Tarpeeton virhe"
-#: sysdeps/gnu/errlist.c:995
+#: sysdeps/gnu/errlist.c:1008
msgid "Bad message"
msgstr "Virheellinen viesti"
-#: sysdeps/gnu/errlist.c:1003
+#: sysdeps/gnu/errlist.c:1016
msgid "Identifier removed"
msgstr "Tunniste poistettu"
-#: sysdeps/gnu/errlist.c:1011
+#: sysdeps/gnu/errlist.c:1024
msgid "Multihop attempted"
msgstr "Yritettiin suorittaa â€multihopâ€"
-#: sysdeps/gnu/errlist.c:1019
+#: sysdeps/gnu/errlist.c:1032
msgid "No data available"
msgstr "Dataa ei ole käytettävissä"
-#: sysdeps/gnu/errlist.c:1027
+#: sysdeps/gnu/errlist.c:1040
msgid "Link has been severed"
msgstr "Linkki on vahingoittunut"
-#: sysdeps/gnu/errlist.c:1035
+#: sysdeps/gnu/errlist.c:1048
msgid "No message of desired type"
msgstr "Halutun tyyppisiä viestejä ei ole"
-#: sysdeps/gnu/errlist.c:1043
+#: sysdeps/gnu/errlist.c:1056
msgid "Out of streams resources"
msgstr "Virtaresurssit lopussa"
-#: sysdeps/gnu/errlist.c:1051
+#: sysdeps/gnu/errlist.c:1064
msgid "Device not a stream"
msgstr "Laite ei ole virta"
-#: sysdeps/gnu/errlist.c:1059
+#: sysdeps/gnu/errlist.c:1072
msgid "Value too large for defined data type"
msgstr "Arvo on liian suuri annetulle tietotyypille"
-#: sysdeps/gnu/errlist.c:1067
+#: sysdeps/gnu/errlist.c:1080
msgid "Protocol error"
msgstr "Protokollavirhe"
-#: sysdeps/gnu/errlist.c:1075
+#: sysdeps/gnu/errlist.c:1088
msgid "Timer expired"
msgstr "Ajastin vanhentunut"
@@ -6446,196 +6422,196 @@ msgstr "Ajastin vanhentunut"
#. TRANS completed. @xref{Asynchronous I/O}. When you call @code{aio_cancel},
#. TRANS the normal result is for the operations affected to complete with this
#. TRANS error; @pxref{Cancel AIO Operations}.
-#: sysdeps/gnu/errlist.c:1087
+#: sysdeps/gnu/errlist.c:1100
msgid "Operation canceled"
msgstr "Toiminto peruutettu"
-#: sysdeps/gnu/errlist.c:1095
+#: sysdeps/gnu/errlist.c:1108
msgid "Owner died"
msgstr "Omistaja kuoli"
-#: sysdeps/gnu/errlist.c:1103
+#: sysdeps/gnu/errlist.c:1116
msgid "State not recoverable"
msgstr "Tila ei ole palautettavissa"
-#: sysdeps/gnu/errlist.c:1111
+#: sysdeps/gnu/errlist.c:1124
msgid "Interrupted system call should be restarted"
msgstr "Keskeytetty järjestelmäkutsu on suoritettava uudestaan"
-#: sysdeps/gnu/errlist.c:1119
+#: sysdeps/gnu/errlist.c:1132
msgid "Channel number out of range"
msgstr "Kanavan numero on sallitun välin ulkopuolella"
-#: sysdeps/gnu/errlist.c:1127
+#: sysdeps/gnu/errlist.c:1140
msgid "Level 2 not synchronized"
msgstr "Taso 2 ei ole synkronoitu"
-#: sysdeps/gnu/errlist.c:1135
+#: sysdeps/gnu/errlist.c:1148
msgid "Level 3 halted"
msgstr "Taso 3 pysäytetty"
-#: sysdeps/gnu/errlist.c:1143
+#: sysdeps/gnu/errlist.c:1156
msgid "Level 3 reset"
msgstr "Taso 3 alustettu"
-#: sysdeps/gnu/errlist.c:1151
+#: sysdeps/gnu/errlist.c:1164
msgid "Link number out of range"
msgstr "Linkin numero on sallitun välin ulkopuolella"
-#: sysdeps/gnu/errlist.c:1159
+#: sysdeps/gnu/errlist.c:1172
msgid "Protocol driver not attached"
msgstr "Protokolla-ajuri ei ole kytketty"
-#: sysdeps/gnu/errlist.c:1167
+#: sysdeps/gnu/errlist.c:1180
msgid "No CSI structure available"
msgstr "CSI-rakennetta ei ole käytettävissä"
-#: sysdeps/gnu/errlist.c:1175
+#: sysdeps/gnu/errlist.c:1188
msgid "Level 2 halted"
msgstr "Taso 2 pysäytetty"
-#: sysdeps/gnu/errlist.c:1183
+#: sysdeps/gnu/errlist.c:1196
msgid "Invalid exchange"
msgstr "Virheellinen vaihto"
-#: sysdeps/gnu/errlist.c:1191
+#: sysdeps/gnu/errlist.c:1204
msgid "Invalid request descriptor"
msgstr "Virheellinen pyyntökahva"
-#: sysdeps/gnu/errlist.c:1199
+#: sysdeps/gnu/errlist.c:1212
msgid "Exchange full"
msgstr "Vaihto täynnä"
-#: sysdeps/gnu/errlist.c:1207
+#: sysdeps/gnu/errlist.c:1220
msgid "No anode"
msgstr "Ei anode"
-#: sysdeps/gnu/errlist.c:1215
+#: sysdeps/gnu/errlist.c:1228
msgid "Invalid request code"
msgstr "Virheellinen pyyntökoodi"
-#: sysdeps/gnu/errlist.c:1223
+#: sysdeps/gnu/errlist.c:1236
msgid "Invalid slot"
msgstr "Virheellinen viipale"
-#: sysdeps/gnu/errlist.c:1231
+#: sysdeps/gnu/errlist.c:1244
msgid "File locking deadlock error"
msgstr "Umpikuja tiedoston lukinnassa -virhe"
-#: sysdeps/gnu/errlist.c:1239
+#: sysdeps/gnu/errlist.c:1252
msgid "Bad font file format"
msgstr "Virheellinen kirjasintiedoston muoto"
-#: sysdeps/gnu/errlist.c:1247
+#: sysdeps/gnu/errlist.c:1260
msgid "Machine is not on the network"
msgstr "Kone ei ole verkossa"
-#: sysdeps/gnu/errlist.c:1255
+#: sysdeps/gnu/errlist.c:1268
msgid "Package not installed"
msgstr "Pakettia ei ole asennettu"
-#: sysdeps/gnu/errlist.c:1263
+#: sysdeps/gnu/errlist.c:1276
msgid "Advertise error"
msgstr "Ilmoitusvirhe"
-#: sysdeps/gnu/errlist.c:1271
+#: sysdeps/gnu/errlist.c:1284
msgid "Srmount error"
msgstr "Srmount-virhe"
-#: sysdeps/gnu/errlist.c:1279
+#: sysdeps/gnu/errlist.c:1292
msgid "Communication error on send"
msgstr "Yhteysvirhe lähetettäessä"
-#: sysdeps/gnu/errlist.c:1287
+#: sysdeps/gnu/errlist.c:1300
msgid "RFS specific error"
msgstr "RFS:n virhe"
-#: sysdeps/gnu/errlist.c:1295
+#: sysdeps/gnu/errlist.c:1308
msgid "Name not unique on network"
msgstr "Nimi ei ole ainutkertainen verkossa"
-#: sysdeps/gnu/errlist.c:1303
+#: sysdeps/gnu/errlist.c:1316
msgid "File descriptor in bad state"
msgstr "Tiedostokahva on virheellisessä tilassa"
-#: sysdeps/gnu/errlist.c:1311
+#: sysdeps/gnu/errlist.c:1324
msgid "Remote address changed"
msgstr "Etäosoite muuttunut"
-#: sysdeps/gnu/errlist.c:1319
+#: sysdeps/gnu/errlist.c:1332
msgid "Can not access a needed shared library"
msgstr "Tarvittavaa jaettua kirjastoa ei voi käyttää"
-#: sysdeps/gnu/errlist.c:1327
+#: sysdeps/gnu/errlist.c:1340
msgid "Accessing a corrupted shared library"
msgstr "Käytetään turmeltunutta jaettua kirjastoa"
-#: sysdeps/gnu/errlist.c:1335
+#: sysdeps/gnu/errlist.c:1348
msgid ".lib section in a.out corrupted"
msgstr "a.out:in .lib-osa on turmeltunut"
-#: sysdeps/gnu/errlist.c:1343
+#: sysdeps/gnu/errlist.c:1356
msgid "Attempting to link in too many shared libraries"
msgstr "Yritetään linkittää liian monta jaettua kirjastoa"
-#: sysdeps/gnu/errlist.c:1351
+#: sysdeps/gnu/errlist.c:1364
msgid "Cannot exec a shared library directly"
msgstr "Jaettua kirjastoa ei voi käynnistää suoraan"
-#: sysdeps/gnu/errlist.c:1359
+#: sysdeps/gnu/errlist.c:1372
msgid "Streams pipe error"
msgstr "Virtaputkivirhe"
-#: sysdeps/gnu/errlist.c:1367
+#: sysdeps/gnu/errlist.c:1380
msgid "Structure needs cleaning"
msgstr "Rakenne vaatii puhdistusta"
-#: sysdeps/gnu/errlist.c:1375
+#: sysdeps/gnu/errlist.c:1388
msgid "Not a XENIX named type file"
msgstr "Ei ole XENIXin nimetty tyyppitiedosto"
-#: sysdeps/gnu/errlist.c:1383
+#: sysdeps/gnu/errlist.c:1396
msgid "No XENIX semaphores available"
msgstr "XENIX-semaforeja ei ole käytettävissä"
-#: sysdeps/gnu/errlist.c:1391
+#: sysdeps/gnu/errlist.c:1404
msgid "Is a named type file"
msgstr "On nimetty tyyppitiedosto"
-#: sysdeps/gnu/errlist.c:1399
+#: sysdeps/gnu/errlist.c:1412
msgid "Remote I/O error"
msgstr "Vastapään I/O-virhe"
-#: sysdeps/gnu/errlist.c:1407
+#: sysdeps/gnu/errlist.c:1420
msgid "No medium found"
msgstr "Mediaa ei löydy"
-#: sysdeps/gnu/errlist.c:1415
+#: sysdeps/gnu/errlist.c:1428
msgid "Wrong medium type"
msgstr "Väärä mediatyyppi"
-#: sysdeps/gnu/errlist.c:1423
+#: sysdeps/gnu/errlist.c:1436
msgid "Required key not available"
msgstr "Vaadittava avain ei ole saatavilla"
-#: sysdeps/gnu/errlist.c:1431
+#: sysdeps/gnu/errlist.c:1444
msgid "Key has expired"
msgstr "Avain vanhentunut"
-#: sysdeps/gnu/errlist.c:1439
+#: sysdeps/gnu/errlist.c:1452
msgid "Key has been revoked"
msgstr "Avain on kumottu"
-#: sysdeps/gnu/errlist.c:1447
+#: sysdeps/gnu/errlist.c:1460
msgid "Key was rejected by service"
msgstr "Palvelu hylkäsi avaimen"
-#: sysdeps/gnu/errlist.c:1455
+#: sysdeps/gnu/errlist.c:1468
#, fuzzy
msgid "Operation not possible due to RF-kill"
msgstr "Toiminto ei ole soveltuva"
-#: sysdeps/gnu/errlist.c:1463
+#: sysdeps/gnu/errlist.c:1476
msgid "Memory page has hardware error"
msgstr "Muistisivulla on laitteistovirhe"
@@ -6751,7 +6727,6 @@ msgstr "Dataa ei ole käytettävissä"
#: sysdeps/x86/dl-cet.c:247
#, fuzzy
-#| msgid "failed to start conversion processing"
msgid "failed to mark legacy code region"
msgstr "muunnoksen aloittaminen epäonnistui"
@@ -6763,29 +6738,27 @@ msgstr ""
msgid "can't disable CET"
msgstr ""
-#: timezone/zdump.c:338
+#: timezone/zdump.c:332
msgid "has fewer than 3 characters"
-msgstr ""
+msgstr "merkkejä on alle 3"
-#: timezone/zdump.c:340
-#, fuzzy
-#| msgid "%s: more than one 'else'"
+#: timezone/zdump.c:334
msgid "has more than 6 characters"
-msgstr "%s: useampi kuin yksi â€elseâ€"
+msgstr "merkkejä on yli 6"
-#: timezone/zdump.c:342
+#: timezone/zdump.c:336
msgid "has characters other than ASCII alphanumerics, '-' or '+'"
msgstr ""
-#: timezone/zdump.c:347
+#: timezone/zdump.c:341
#, fuzzy, c-format
msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n"
msgstr "[mntent]: varoitus: tiedoston %s lopussa ei ole rivinvaihtoa\n"
-#: timezone/zdump.c:393
+#: timezone/zdump.c:387
#, c-format
msgid ""
-"%s: usage: %s OPTIONS ZONENAME ...\n"
+"%s: usage: %s OPTIONS TIMEZONE ...\n"
"Options include:\n"
" -c [L,]U Start at year L (default -500), end before year U (default 2500)\n"
" -t [L,]U Start at time L, end before time U (in seconds since 1970)\n"
@@ -6798,469 +6771,506 @@ msgid ""
"Report bugs to %s.\n"
msgstr ""
-#: timezone/zdump.c:479
+#: timezone/zdump.c:473
#, fuzzy, c-format
msgid "%s: wild -c argument %s\n"
msgstr "%s: valitsin vaatii argumentin -- â€%câ€\n"
-#: timezone/zdump.c:512
+#: timezone/zdump.c:506
#, fuzzy, c-format
msgid "%s: wild -t argument %s\n"
msgstr "\t[%d]\tNimi : %s\n"
-#: timezone/zic.c:398
+#: timezone/zic.c:429
#, c-format
msgid "%s: Memory exhausted: %s\n"
msgstr "%s: Muisti lopussa: %s\n"
-#: timezone/zic.c:406
-#, fuzzy
-#| msgid "time overflow"
+#: timezone/zic.c:437
msgid "size overflow"
-msgstr "ajan ylivuoto"
+msgstr "koon ylivuoto"
-#: timezone/zic.c:454
-#, fuzzy
-#| msgid "Integer overflow"
+#: timezone/zic.c:447
+msgid "alignment overflow"
+msgstr "tasauksen ylivuoto"
+
+#: timezone/zic.c:495
msgid "integer overflow"
-msgstr "Kokonaisluvun ylivuoto"
+msgstr "kokonaisluvun ylivuoto"
-#: timezone/zic.c:488
+#: timezone/zic.c:529
#, fuzzy, c-format
-#| msgid "\"%s\", line %d: "
msgid "\"%s\", line %<PRIdMAX>: "
msgstr "â€%sâ€, rivi %d: "
-#: timezone/zic.c:491
+#: timezone/zic.c:532
#, fuzzy, c-format
-#| msgid " (rule from \"%s\", line %d)"
msgid " (rule from \"%s\", line %<PRIdMAX>)"
msgstr " (sääntö tiedostosta â€%sâ€, riviltä %d)"
-#: timezone/zic.c:510
+#: timezone/zic.c:551
#, c-format
msgid "warning: "
msgstr "varoitus: "
-#: timezone/zic.c:535
+#: timezone/zic.c:576
#, fuzzy, c-format
msgid ""
"%s: usage is %s [ --version ] [ --help ] [ -v ] \\\n"
"\t[ -l localtime ] [ -p posixrules ] [ -d directory ] \\\n"
-"\t[ -L leapseconds ] [ filename ... ]\n"
+"\t[ -t localtime-link ] [ -L leapseconds ] [ filename ... ]\n"
"\n"
"Report bugs to %s.\n"
msgstr ""
"%s: käyttö: %s [ -s ] [ -v ] [ -l paik.aika ] [ -p posixsäännöt ] \\\n"
"\t[ -d hakemisto ] [ -L karkaussekuntit ] [ -y yearistype ] [ tiedostonimi ... ]\n"
-#: timezone/zic.c:558
+#: timezone/zic.c:599
#, fuzzy, c-format
-#| msgid "%s: Can't create %s: %s\n"
msgid "%s: Can't chdir to %s: %s\n"
msgstr "%s: Tiedostoa %s ei voi luoda: %s\n"
-#: timezone/zic.c:590
+#: timezone/zic.c:632
msgid "wild compilation-time specification of zic_t"
msgstr ""
-#: timezone/zic.c:610
+#: timezone/zic.c:652
#, c-format
msgid "%s: More than one -d option specified\n"
msgstr "%s: Annettu useampi kuin yksi -d -valitsin\n"
-#: timezone/zic.c:620
+#: timezone/zic.c:662
#, c-format
msgid "%s: More than one -l option specified\n"
msgstr "%s: Annettu useampi kuin yksi -l -valitsin\n"
-#: timezone/zic.c:630
+#: timezone/zic.c:672
#, c-format
msgid "%s: More than one -p option specified\n"
msgstr "%s: Annettu useampi kuin yksi -p -valitsin\n"
-#: timezone/zic.c:640
+#: timezone/zic.c:680
+#, c-format
+msgid "%s: More than one -t option specified\n"
+msgstr "%s: Annettu useampi kuin yksi -t -valitsin\n"
+
+#: timezone/zic.c:689
+msgid "-y is obsolescent"
+msgstr "-y on vanhentuva"
+
+#: timezone/zic.c:693
#, c-format
msgid "%s: More than one -y option specified\n"
msgstr "%s: Annettu useampi kuin yksi -y -valitsin\n"
-#: timezone/zic.c:650
+#: timezone/zic.c:703
#, c-format
msgid "%s: More than one -L option specified\n"
msgstr "%s: Annettu useampi kuin yksi -L -valitsin\n"
-#: timezone/zic.c:659
+#: timezone/zic.c:712
msgid "-s ignored"
-msgstr ""
+msgstr "-s jätetään huomiotta"
-#: timezone/zic.c:698
+#: timezone/zic.c:753
msgid "link to link"
msgstr "linkki linkkiin"
-#: timezone/zic.c:701 timezone/zic.c:705
-#, fuzzy
-#| msgid "Too many links"
+#: timezone/zic.c:756 timezone/zic.c:760
msgid "command line"
-msgstr "Liian monta linkkiä"
+msgstr "komentorivi"
-#: timezone/zic.c:721
+#: timezone/zic.c:776
msgid "empty file name"
-msgstr ""
+msgstr "tyhjä tiedostonimi"
-#: timezone/zic.c:724
+#: timezone/zic.c:779
#, c-format
msgid "file name '%s' begins with '/'"
msgstr ""
-#: timezone/zic.c:734
+#: timezone/zic.c:789
#, c-format
msgid "file name '%s' contains '%.*s' component"
msgstr ""
-#: timezone/zic.c:740
+#: timezone/zic.c:795
#, c-format
msgid "file name '%s' component contains leading '-'"
msgstr ""
-#: timezone/zic.c:743
+#: timezone/zic.c:798
#, c-format
msgid "file name '%s' contains overlength component '%.*s...'"
msgstr ""
-#: timezone/zic.c:771
+#: timezone/zic.c:826
#, c-format
msgid "file name '%s' contains byte '%c'"
msgstr ""
-#: timezone/zic.c:772
+#: timezone/zic.c:827
#, c-format
msgid "file name '%s' contains byte '\\%o'"
msgstr ""
-#: timezone/zic.c:842
+#: timezone/zic.c:897
#, fuzzy, c-format
-#| msgid "%s: Can't link from %s to %s: %s\n"
msgid "%s: link from %s/%s failed: %s\n"
msgstr "%s: Linkitys %s -> %s ei onnistu: %s\n"
-#: timezone/zic.c:852 timezone/zic.c:1815
-#, fuzzy, c-format
-#| msgid "%s: Can't remove %s: %s\n"
+#: timezone/zic.c:907 timezone/zic.c:1876
+#, c-format
msgid "%s: Can't remove %s/%s: %s\n"
-msgstr "%s: Tiedostoa %s ei voi poistaa: %s\n"
+msgstr "%s: Tiedostoa %s/%s ei voi poistaa: %s\n"
-#: timezone/zic.c:874
+#: timezone/zic.c:931
#, c-format
msgid "symbolic link used because hard link failed: %s"
-msgstr ""
+msgstr "käytetään symbolista linkkiä, sillä kova linkitys epäonnistui: %s"
-#: timezone/zic.c:882
+#: timezone/zic.c:939
#, fuzzy, c-format
msgid "%s: Can't read %s/%s: %s\n"
msgstr "%s: superlohkoa ei voi lukea"
-#: timezone/zic.c:889 timezone/zic.c:1828
-#, fuzzy, c-format
-#| msgid "%s: Can't create %s: %s\n"
+#: timezone/zic.c:946 timezone/zic.c:1889
+#, c-format
msgid "%s: Can't create %s/%s: %s\n"
-msgstr "%s: Tiedostoa %s ei voi luoda: %s\n"
+msgstr "%s: Tiedostoa %s/%s ei voi luoda: %s\n"
-#: timezone/zic.c:898
+#: timezone/zic.c:955
#, c-format
msgid "copy used because hard link failed: %s"
-msgstr ""
+msgstr "käytetään kopiointia, sillä kova linkitys epäonnistui: %s"
-#: timezone/zic.c:901
+#: timezone/zic.c:958
#, c-format
msgid "copy used because symbolic link failed: %s"
-msgstr ""
+msgstr "käytetään kopiointia, sillä symbolinen linkitys epäonnistui: %s"
-#: timezone/zic.c:1013 timezone/zic.c:1015
+#: timezone/zic.c:1032 timezone/zic.c:1034
msgid "same rule name in multiple files"
msgstr "sama säännön nimi useassa tiedostossa"
-#: timezone/zic.c:1056
-msgid "unruly zone"
-msgstr "vallaton vyöhyke"
-
-#: timezone/zic.c:1063
+#: timezone/zic.c:1081
#, c-format
msgid "%s in ruleless zone"
msgstr "%s säännöttömässä vyöhykkeessä"
-#: timezone/zic.c:1083
+#: timezone/zic.c:1101
msgid "standard input"
msgstr "vakiosyöte"
-#: timezone/zic.c:1088
+#: timezone/zic.c:1106
#, c-format
msgid "%s: Can't open %s: %s\n"
msgstr "%s: Tiedostoa %s ei voi avata: %s\n"
-#: timezone/zic.c:1099
+#: timezone/zic.c:1117
msgid "line too long"
msgstr "liian pitkä rivi"
-#: timezone/zic.c:1119
+#: timezone/zic.c:1139
msgid "input line of unknown type"
msgstr "syöterivi tuntematonta tyyppiä"
-#: timezone/zic.c:1134
-#, fuzzy, c-format
-#| msgid "%s: Leap line in non leap seconds file %s\n"
-msgid "%s: Leap line in non leap seconds file %s"
-msgstr "%s: Leap-rivi tiedostossa %s, joka ei ole karkaussekuntitiedosto\n"
-
-#: timezone/zic.c:1142 timezone/zic.c:1547 timezone/zic.c:1569
+#: timezone/zic.c:1158 timezone/zic.c:1593 timezone/zic.c:1615
#, c-format
msgid "%s: panic: Invalid l_value %d\n"
msgstr "%s: paniikki: Virheellinen â€l_value†%d\n"
-#: timezone/zic.c:1151
+#: timezone/zic.c:1167
msgid "expected continuation line not found"
msgstr "odotettua jatkoriviä ei löytynyt"
-#: timezone/zic.c:1193 timezone/zic.c:2976
+#: timezone/zic.c:1203
+msgid "fractional seconds rejected by pre-2018 versions of zic"
+msgstr ""
+
+#: timezone/zic.c:1221 timezone/zic.c:3078
msgid "time overflow"
msgstr "ajan ylivuoto"
-#: timezone/zic.c:1198
+#: timezone/zic.c:1227
msgid "values over 24 hours not handled by pre-2007 versions of zic"
msgstr ""
-#: timezone/zic.c:1209
+#: timezone/zic.c:1245
+msgid "invalid saved time"
+msgstr "virheellinen tallennettu aika"
+
+#: timezone/zic.c:1256
msgid "wrong number of fields on Rule line"
msgstr "väärä määrä kenttiä Rule-rivillä"
-#: timezone/zic.c:1213
-msgid "nameless rule"
-msgstr "nimetön sääntö"
-
-#: timezone/zic.c:1218
-msgid "invalid saved time"
-msgstr "virheellinen tallennettu aika"
+#: timezone/zic.c:1265
+#, c-format
+msgid "Invalid rule name \"%s\""
+msgstr "Virheellinen säännön nimi â€%sâ€"
-#: timezone/zic.c:1235
+#: timezone/zic.c:1287
msgid "wrong number of fields on Zone line"
msgstr "väärä määrä kenttiä Zone-rivillä"
-#: timezone/zic.c:1240
+#: timezone/zic.c:1292
#, c-format
msgid "\"Zone %s\" line and -l option are mutually exclusive"
msgstr "â€Zone %sâ€-rivi ja -l -valitsin ovat toisensa poissulkevia"
-#: timezone/zic.c:1246
+#: timezone/zic.c:1298
#, c-format
msgid "\"Zone %s\" line and -p option are mutually exclusive"
msgstr "â€Zone %sâ€-rivi ja -p -valitsin ovat toisensa poissulkevia"
-#: timezone/zic.c:1253
+#: timezone/zic.c:1305
#, fuzzy, c-format
-#| msgid "duplicate zone name %s (file \"%s\", line %d)"
msgid "duplicate zone name %s (file \"%s\", line %<PRIdMAX>)"
msgstr "kaksinkertainen vyöhykenimi %s (tiedosto â€%sâ€, rivi %d)"
-#: timezone/zic.c:1267
+#: timezone/zic.c:1319
msgid "wrong number of fields on Zone continuation line"
msgstr "väärä määrä kenttiä Zone-jatkorivillä"
-#: timezone/zic.c:1307
+#: timezone/zic.c:1359
msgid "invalid UT offset"
msgstr "virheellinen UT-siirtymä"
-#: timezone/zic.c:1311
+#: timezone/zic.c:1363
msgid "invalid abbreviation format"
msgstr "virheellinen lyhennemuoto"
-#: timezone/zic.c:1320
+#: timezone/zic.c:1372
#, c-format
msgid "format '%s' not handled by pre-2015 versions of zic"
msgstr ""
-#: timezone/zic.c:1347
+#: timezone/zic.c:1399
msgid "Zone continuation line end time is not after end time of previous line"
msgstr "Vyöhykkeen jatkorivin loppuaika ei ole edellisen rivin loppuaikaa myöhäisempi"
-#: timezone/zic.c:1374
+#: timezone/zic.c:1426
msgid "wrong number of fields on Leap line"
msgstr "väärä määrä kenttiä Leap-rivillä"
-#: timezone/zic.c:1383
+#: timezone/zic.c:1435
msgid "invalid leaping year"
msgstr "virheellinen karkausvuosi"
-#: timezone/zic.c:1403 timezone/zic.c:1501
+#: timezone/zic.c:1455 timezone/zic.c:1547
msgid "invalid month name"
msgstr "virheellinen kuukauden nimi"
-#: timezone/zic.c:1416 timezone/zic.c:1614 timezone/zic.c:1628
+#: timezone/zic.c:1468 timezone/zic.c:1663 timezone/zic.c:1677
msgid "invalid day of month"
msgstr "virheellinen kuukauden päivä"
-#: timezone/zic.c:1421
+#: timezone/zic.c:1473
msgid "time too small"
msgstr "aika on liian pieni"
-#: timezone/zic.c:1425
+#: timezone/zic.c:1477
msgid "time too large"
msgstr "aika on liian suuri"
-#: timezone/zic.c:1429 timezone/zic.c:1530
+#: timezone/zic.c:1481 timezone/zic.c:1576
msgid "invalid time of day"
msgstr "virheellinen kellonaika"
-#: timezone/zic.c:1448
+#: timezone/zic.c:1494
msgid "illegal CORRECTION field on Leap line"
msgstr "virheellinen CORRECTION-kenttä Leap-rivillä"
-#: timezone/zic.c:1453
+#: timezone/zic.c:1499
msgid "illegal Rolling/Stationary field on Leap line"
msgstr "virheellinen Rolling/Stationary-kenttä Leap-rivillä"
-#: timezone/zic.c:1459
-msgid "leap second precedes Big Bang"
+#: timezone/zic.c:1505
+msgid "leap second precedes Epoch"
msgstr ""
-#: timezone/zic.c:1472
+#: timezone/zic.c:1518
msgid "wrong number of fields on Link line"
msgstr "väärä määrä kenttiä Link-rivillä"
-#: timezone/zic.c:1476
+#: timezone/zic.c:1522
msgid "blank FROM field on Link line"
msgstr "tyhjä FROM-kenttä Link-rivillä"
-#: timezone/zic.c:1551
+#: timezone/zic.c:1597
msgid "invalid starting year"
msgstr "virheellinen aloitusvuosi"
-#: timezone/zic.c:1573
+#: timezone/zic.c:1619
msgid "invalid ending year"
msgstr "virheellinen päättymisvuosi"
-#: timezone/zic.c:1577
+#: timezone/zic.c:1623
msgid "starting year greater than ending year"
msgstr "aloitusvuosi suurempi kuin lopetusvuosi"
-#: timezone/zic.c:1584
+#: timezone/zic.c:1630
msgid "typed single year"
msgstr "yksittäinen vuosi annettu"
-#: timezone/zic.c:1619
+#: timezone/zic.c:1633
+#, c-format
+msgid "year type \"%s\" is obsolete; use \"-\" instead"
+msgstr "vuoden tyyppi â€%s†on vanhentunut; käytä sen sijaan â€-â€"
+
+#: timezone/zic.c:1668
msgid "invalid weekday name"
msgstr "virheellinen viikonpäivän nimi"
-#: timezone/zic.c:1743
+#: timezone/zic.c:1800
#, c-format
msgid "reference clients mishandle more than %d transition times"
msgstr ""
-#: timezone/zic.c:1747
+#: timezone/zic.c:1804
msgid "pre-2014 clients may mishandle more than 1200 transition times"
msgstr ""
-#: timezone/zic.c:1858
-#, fuzzy
-#| msgid "too many transitions?!"
+#: timezone/zic.c:1920
msgid "too many transition times"
-msgstr "liian monta siirtymää?!"
+msgstr "liian monta siirtymäaikaa"
-#: timezone/zic.c:2047
+#: timezone/zic.c:2107
#, c-format
-msgid "%%z UTC offset magnitude exceeds 99:59:59"
+msgid "%%z UT offset magnitude exceeds 99:59:59"
msgstr ""
-#: timezone/zic.c:2424
+#: timezone/zic.c:2488
#, fuzzy
msgid "no POSIX environment variable for zone"
msgstr "DJGPP-ympäristömuuttujaa ei ole määritelty"
-#: timezone/zic.c:2430
+#: timezone/zic.c:2494
#, c-format
msgid "%s: pre-%d clients may mishandle distant timestamps"
msgstr ""
-#: timezone/zic.c:2566
+#: timezone/zic.c:2631
msgid "two rules for same instant"
msgstr ""
-#: timezone/zic.c:2627
+#: timezone/zic.c:2696
msgid "can't determine time zone abbreviation to use just after until time"
msgstr "ennen â€untilâ€-aikaa käytettävää aikavyöhykelyhennettä ei voi määrittää"
-#: timezone/zic.c:2725
+#: timezone/zic.c:2785
msgid "too many local time types"
msgstr "liian monta paikallisen ajan tyyppiä"
-#: timezone/zic.c:2729
+#: timezone/zic.c:2789
msgid "UT offset out of range"
msgstr "UT-siirtymä sallitun välin ulkopuolella"
-#: timezone/zic.c:2753
+#: timezone/zic.c:2813
msgid "too many leap seconds"
msgstr "liian monta karkaussekuntia"
-#: timezone/zic.c:2759
-msgid "repeated leap second moment"
-msgstr "toistunut karkaussekuntihetki"
+#: timezone/zic.c:2844
+msgid "Leap seconds too close together"
+msgstr "Karkaussekunnit liian lähellä toisiaan"
-#: timezone/zic.c:2830
+#: timezone/zic.c:2891
msgid "Wild result from command execution"
msgstr "Villi tulos komennon suorittamisesta"
-#: timezone/zic.c:2831
+#: timezone/zic.c:2892
#, c-format
msgid "%s: command was '%s', result was %d\n"
msgstr "%s: komento oli â€%sâ€, tulos oli %d\n"
-#: timezone/zic.c:2961
+#: timezone/zic.c:2998
+#, c-format
+msgid "\"%s\" is undocumented; use \"last%s\" instead"
+msgstr ""
+
+#: timezone/zic.c:3029
+#, c-format
+msgid "\"%s\" is ambiguous in pre-2017c zic"
+msgstr ""
+
+#: timezone/zic.c:3063
msgid "Odd number of quotation marks"
msgstr "Pariton määrä lainausmerkkejä"
-#: timezone/zic.c:3046
+#: timezone/zic.c:3157
msgid "use of 2/29 in non leap-year"
msgstr "helmikuun 29. päivää käytetty muussa kuin karkausvuodessa"
-#: timezone/zic.c:3081
+#: timezone/zic.c:3192
msgid "rule goes past start/end of month; will not work with pre-2004 versions of zic"
msgstr ""
-#: timezone/zic.c:3108
+#: timezone/zic.c:3219
msgid "time zone abbreviation has fewer than 3 characters"
-msgstr ""
+msgstr "aikavyöhykkeen lyhenteessä on alle 3 merkkiä"
-#: timezone/zic.c:3110
+#: timezone/zic.c:3221
msgid "time zone abbreviation has too many characters"
-msgstr ""
+msgstr "aikavyöhykkeen lyhenteessä on liikaa merkkejä"
-#: timezone/zic.c:3112
+#: timezone/zic.c:3223
msgid "time zone abbreviation differs from POSIX standard"
-msgstr ""
+msgstr "aikavyöhykkeen lyhenne eroaa POSIX-standardista"
-#: timezone/zic.c:3118
+#: timezone/zic.c:3229
msgid "too many, or too long, time zone abbreviations"
msgstr "liian monta tai liian pitkä aikavyöhykelyhenne"
-#: timezone/zic.c:3161
+#: timezone/zic.c:3275
#, fuzzy, c-format
-#| msgid "%s: Can't create directory %s: %s\n"
msgid "%s: Can't create directory %s: %s"
msgstr "%s: Hakemistoa %s ei voi luoda: %s\n"
+#~ msgid "cannot open zero fill device"
+#~ msgstr "nollatäyttölaitetta ei voi avata"
+
+#~ msgid "relocation error"
+#~ msgstr "uudelleensijoitusvirhe"
+
+#~ msgid "invalid caller"
+#~ msgstr "virheellinen kutsuja"
+
+#~ msgid "Character out of range for UTF-8"
+#~ msgstr "Merkki UTF-8:n salliman välin ulkopuolella"
+
+#~ msgid "Haven't found \"%s\" in password cache!"
+#~ msgstr "â€%s†ei löytynyt salasanavälimuistista!"
+
+#, fuzzy
+#~ msgid "Reloading \"%s\" in password cache!"
+#~ msgstr "â€%s†ei löytynyt salasanavälimuistista!"
+
+#~ msgid "This implementation doesn't support newstyle or MT-safe code!\n"
+#~ msgstr "Tämä toteutus ei tue uudentyyppistä MT-turvallista koodia!\n"
+
+#~ msgid "unruly zone"
+#~ msgstr "vallaton vyöhyke"
+
+#, fuzzy
+#~| msgid "%s: Leap line in non leap seconds file %s\n"
+#~ msgid "%s: Leap line in non leap seconds file %s"
+#~ msgstr "%s: Leap-rivi tiedostossa %s, joka ei ole karkaussekuntitiedosto\n"
+
+#~ msgid "nameless rule"
+#~ msgstr "nimetön sääntö"
+
+#~ msgid "repeated leap second moment"
+#~ msgstr "toistunut karkaussekuntihetki"
+
#~ msgid "cannot allocate TLS data structures for initial thread"
#~ msgstr "alkusäikeelle ei voi varata TLS-tietorakenteita"
#~ msgid "cannot handle TLS data"
#~ msgstr "TLS-dataa ei voi käsitellä"
-#~ msgid "invalid caller"
-#~ msgstr "virheellinen kutsuja"
-
#~ msgid "Don't generate links"
#~ msgstr "Älä luo linkkejä"
-#~ msgid "Character out of range for UTF-8"
-#~ msgstr "Merkki UTF-8:n salliman välin ulkopuolella"
-
#~ msgid "no definition of `UNDEFINED'"
#~ msgstr "â€UNDEFINED†ei ole määritelty"
@@ -7278,13 +7288,6 @@ msgstr "%s: Hakemistoa %s ei voi luoda: %s\n"
#~ msgid "cannot set socket to close on exec: %s"
#~ msgstr "pistoketta ei voi asettaa vastaanottamaan yhteyksiä: %s"
-#~ msgid "Haven't found \"%s\" in password cache!"
-#~ msgstr "â€%s†ei löytynyt salasanavälimuistista!"
-
-#, fuzzy
-#~ msgid "Reloading \"%s\" in password cache!"
-#~ msgstr "â€%s†ei löytynyt salasanavälimuistista!"
-
#~ msgid "%s: option '--%s' doesn't allow an argument\n"
#~ msgstr "%s: valitsin â€--%s†ei salli argumenttia\n"
@@ -7298,9 +7301,6 @@ msgstr "%s: Hakemistoa %s ei voi luoda: %s\n"
#~ msgid "%s: option '-W %s' requires an argument\n"
#~ msgstr "%s: valitsin â€%s†vaatii argumentin\n"
-#~ msgid "This implementation doesn't support newstyle or MT-safe code!\n"
-#~ msgstr "Tämä toteutus ei tue uudentyyppistä MT-turvallista koodia!\n"
-
#~ msgid "program %lu is not available\n"
#~ msgstr "ohjelma %lu ei ole käytettävissä\n"
diff --git a/po/fr.po b/po/fr.po
index 9787edf624..925b24dc3f 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -8,7 +8,7 @@
msgid ""
msgstr ""
"Project-Id-Version: libc 2.25.90\n"
-"POT-Creation-Date: 2018-07-26 22:19-0400\n"
+"POT-Creation-Date: 2019-07-18 13:28-0400\n"
"PO-Revision-Date: 2017-07-31 16:19+0200\n"
"Last-Translator: Yan Kerb <y.kerb@laposte.net>\n"
"Language-Team: French <traduc@traduc.org>\n"
@@ -152,10 +152,10 @@ msgstr ""
"[FICHIER_DE_SORTIE [FICHIER_D_ENTRÉE]...]"
#: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:308
-#: elf/pldd.c:252 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
-#: iconv/iconvconfig.c:379 locale/programs/locale.c:275
-#: locale/programs/localedef.c:427 login/programs/pt_chown.c:89
-#: malloc/memusagestat.c:563 nss/getent.c:933 nss/makedb.c:369
+#: elf/pldd.c:247 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
+#: iconv/iconvconfig.c:379 locale/programs/locale.c:276
+#: locale/programs/localedef.c:437 login/programs/pt_chown.c:89
+#: malloc/memusagestat.c:563 nss/getent.c:953 nss/makedb.c:369
#: posix/getconf.c:503 sysdeps/unix/sysv/linux/lddlibc4.c:61
#, c-format
msgid ""
@@ -166,11 +166,11 @@ msgstr ""
"%s.\n"
#: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64
-#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75
+#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:263 elf/sotruss.sh:75
#: elf/sprof.c:389 iconv/iconv_prog.c:422 iconv/iconvconfig.c:396
-#: locale/programs/locale.c:292 locale/programs/localedef.c:453
+#: locale/programs/locale.c:293 locale/programs/localedef.c:463
#: login/programs/pt_chown.c:63 malloc/memusage.sh:71
-#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:87 nss/makedb.c:385
+#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:88 nss/makedb.c:385
#: posix/getconf.c:485 sysdeps/unix/sysv/linux/lddlibc4.c:68
#, c-format
msgid ""
@@ -184,10 +184,10 @@ msgstr ""
"COMMERCIALES que pour RÉPONDRE À UN BESOIN PARTICULIER.\n"
#: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68
-#: elf/ldconfig.c:329 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:427
-#: iconv/iconvconfig.c:401 locale/programs/locale.c:297
-#: locale/programs/localedef.c:458 malloc/memusage.sh:75
-#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:92 nss/makedb.c:390
+#: elf/ldconfig.c:329 elf/pldd.c:268 elf/sprof.c:395 iconv/iconv_prog.c:427
+#: iconv/iconvconfig.c:401 locale/programs/locale.c:298
+#: locale/programs/localedef.c:468 malloc/memusage.sh:75
+#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:93 nss/makedb.c:390
#: posix/getconf.c:490
#, c-format
msgid "Written by %s.\n"
@@ -258,21 +258,21 @@ msgstr "ne peut ouvrir le fichier de sortie « %s »"
msgid "invalid escape sequence"
msgstr "séquence d'échappement invalide"
-#: catgets/gencat.c:1209
+#: catgets/gencat.c:1211
msgid "unterminated message"
msgstr "message non terminé"
-#: catgets/gencat.c:1233
+#: catgets/gencat.c:1235
#, c-format
msgid "while opening old catalog file"
msgstr "lors de l'ouverture de l'ancien fichier catalogue"
-#: catgets/gencat.c:1324
+#: catgets/gencat.c:1326
#, c-format
msgid "conversion modules not available"
msgstr "modules de conversion indisponibles"
-#: catgets/gencat.c:1350
+#: catgets/gencat.c:1352
#, c-format
msgid "cannot determine escape character"
msgstr "ne peut déterminer le caractère d'échappement"
@@ -399,7 +399,7 @@ msgstr "Système d'exploitation inconnu"
msgid ", OS ABI: %s %d.%d.%d"
msgstr ", Système d'exploitation ABI : %s %d.%d.%d"
-#: elf/cache.c:163 elf/ldconfig.c:1332
+#: elf/cache.c:163 elf/ldconfig.c:1333
#, c-format
msgid "Can't open cache file %s\n"
msgstr "Ne peut ouvrir le fichier de cache %s\n"
@@ -409,38 +409,38 @@ msgstr "Ne peut ouvrir le fichier de cache %s\n"
msgid "mmap of cache file failed.\n"
msgstr "la procédure mmap sur le fichier de cache a échouée\n"
-#: elf/cache.c:181 elf/cache.c:195
+#: elf/cache.c:181 elf/cache.c:195 elf/cache.c:205
#, c-format
msgid "File is not a cache file.\n"
msgstr "Fichier n'est pas un fichier de cache.\n"
-#: elf/cache.c:228 elf/cache.c:238
+#: elf/cache.c:233 elf/cache.c:243
#, c-format
msgid "%d libs found in cache `%s'\n"
msgstr "%d libs trouvé dans le cache « %s »\n"
-#: elf/cache.c:432
+#: elf/cache.c:437
#, c-format
msgid "Can't create temporary cache file %s"
msgstr "Ne peut créer un fichier de cache temporaire %s"
-#: elf/cache.c:440 elf/cache.c:450 elf/cache.c:454 elf/cache.c:458
-#: elf/cache.c:468
+#: elf/cache.c:445 elf/cache.c:455 elf/cache.c:459 elf/cache.c:463
+#: elf/cache.c:473
#, c-format
msgid "Writing of cache data failed"
msgstr "Échec d'écriture des données du cache"
-#: elf/cache.c:463
+#: elf/cache.c:468
#, c-format
msgid "Changing access rights of %s to %#o failed"
msgstr "Échec de la modification des droits d'accès de %s à %#o"
-#: elf/cache.c:472
+#: elf/cache.c:477
#, c-format
msgid "Renaming of %s to %s failed"
msgstr "Échec du changement de nom de %s vers %s"
-#: elf/dl-close.c:399 elf/dl-open.c:420
+#: elf/dl-close.c:399 elf/dl-open.c:424
msgid "cannot create scope list"
msgstr "ne peut créer une liste panorama"
@@ -523,121 +523,123 @@ msgstr "ne peut créer un tableau des chemins de recherche"
msgid "cannot stat shared object"
msgstr "ne peut évaluer par stat() l'objet partagé"
-#: elf/dl-load.c:960
-msgid "cannot open zero fill device"
-msgstr "ne peut ouvrir le fichier de périphérique rempli de zéros"
-
-#: elf/dl-load.c:1007 elf/dl-load.c:2203
+#: elf/dl-load.c:992 elf/dl-load.c:2198
msgid "cannot create shared object descriptor"
msgstr "ne peut créer un descripteur d'objet partagé"
-#: elf/dl-load.c:1026 elf/dl-load.c:1560 elf/dl-load.c:1673
+#: elf/dl-load.c:1011 elf/dl-load.c:1555 elf/dl-load.c:1668
msgid "cannot read file data"
msgstr "ne peut lire les données du fichier"
-#: elf/dl-load.c:1072
+#: elf/dl-load.c:1057
msgid "ELF load command alignment not page-aligned"
msgstr "Commande de chargement sur une page ELF qui n'est pas alignée"
-#: elf/dl-load.c:1079
+#: elf/dl-load.c:1064
msgid "ELF load command address/offset not properly aligned"
msgstr "Commande de chargement sur une adresse ELF incorrectement alignée"
-#: elf/dl-load.c:1161
+#: elf/dl-load.c:1146
#, fuzzy
#| msgid "cannot restore segment prot after reloc"
msgid "cannot process note segment"
msgstr "ne peut restaurer le segment prot après reloc"
-#: elf/dl-load.c:1172
+#: elf/dl-load.c:1157
msgid "object file has no loadable segments"
msgstr "le fichier objet n'a pas de segment chargeable"
-#: elf/dl-load.c:1181 elf/dl-load.c:1652
+#: elf/dl-load.c:1170 elf/dl-load.c:1647
msgid "cannot dynamically load executable"
msgstr "ne peut dynamiquement charger un exécutable"
-#: elf/dl-load.c:1202
+#: elf/dl-load.c:1191
msgid "object file has no dynamic section"
msgstr "le fichier objet n'a pas de section dynamique"
-#: elf/dl-load.c:1225
+#: elf/dl-load.c:1218
+#, fuzzy
+#| msgid "cannot dynamically load executable"
+msgid "cannot dynamically load position-independent executable"
+msgstr "ne peut dynamiquement charger un exécutable"
+
+#: elf/dl-load.c:1220
msgid "shared object cannot be dlopen()ed"
msgstr "l'objet partagé ne peut pas être ouvert via dlopen()"
-#: elf/dl-load.c:1238
+#: elf/dl-load.c:1233
msgid "cannot allocate memory for program header"
msgstr "ne peut allouer de la mémoire pour une en-tête de programme"
-#: elf/dl-load.c:1271 elf/dl-load.h:130
+#: elf/dl-load.c:1266 elf/dl-load.h:130
msgid "cannot change memory protections"
msgstr "ne peut modifier les protections de mémoire"
-#: elf/dl-load.c:1291
+#: elf/dl-load.c:1286
msgid "cannot enable executable stack as shared object requires"
msgstr "ne peut activer une pile exécutable comme l'objet partagé le requiert"
-#: elf/dl-load.c:1304
+#: elf/dl-load.c:1299
msgid "cannot close file descriptor"
msgstr "ne peut pas fermer le descripteur de fichier"
-#: elf/dl-load.c:1560
+#: elf/dl-load.c:1555
msgid "file too short"
msgstr "fichier trop court"
-#: elf/dl-load.c:1595
+#: elf/dl-load.c:1590
msgid "invalid ELF header"
msgstr "en-tête ELF invalide"
-#: elf/dl-load.c:1607
+#: elf/dl-load.c:1602
msgid "ELF file data encoding not big-endian"
msgstr "l'encodage des données du fichier ELF n'est pas big-endian"
-#: elf/dl-load.c:1609
+#: elf/dl-load.c:1604
msgid "ELF file data encoding not little-endian"
msgstr "l'encodage des données du fichier ELF n'est pas little-endian"
-#: elf/dl-load.c:1613
+#: elf/dl-load.c:1608
msgid "ELF file version ident does not match current one"
msgstr "l'identifiant de version du fichier ELF ne concorde pas avec la version courante"
-#: elf/dl-load.c:1617
+#: elf/dl-load.c:1612
msgid "ELF file OS ABI invalid"
msgstr "Système d'exploitation du fichier ELF ABI invalide"
-#: elf/dl-load.c:1620
+#: elf/dl-load.c:1615
msgid "ELF file ABI version invalid"
msgstr "Version du fichier ELF ABI invalide"
-#: elf/dl-load.c:1623
+#: elf/dl-load.c:1618
msgid "nonzero padding in e_ident"
msgstr "remplissage sans zéro dans e_ident"
-#: elf/dl-load.c:1626
+#: elf/dl-load.c:1621
msgid "internal error"
msgstr "Erreur interne"
-#: elf/dl-load.c:1633
+#: elf/dl-load.c:1628
msgid "ELF file version does not match current one"
msgstr "Version du fichier ELF ne concorde pas avec la version courante"
-#: elf/dl-load.c:1641
+#: elf/dl-load.c:1636
msgid "only ET_DYN and ET_EXEC can be loaded"
msgstr "Seuls ET_DYN et ET_EXEC peuvent être chargés"
-#: elf/dl-load.c:1657
+#: elf/dl-load.c:1652
msgid "ELF file's phentsize not the expected size"
msgstr "« Phentize » du fichier ELF ne concorde pas avec la taille prévue"
-#: elf/dl-load.c:2222
+#: elf/dl-load.c:2217
msgid "wrong ELF class: ELFCLASS64"
msgstr "mauvaise classe ELF : ELFCLASS64"
-#: elf/dl-load.c:2223
+#: elf/dl-load.c:2218
msgid "wrong ELF class: ELFCLASS32"
msgstr "mauvaise classe ELF : ELFCLASS32"
-#: elf/dl-load.c:2226
+#: elf/dl-load.c:2221
msgid "cannot open shared object file"
msgstr "Ne peut ouvrir le fichier d'objet partagé"
@@ -649,11 +651,7 @@ msgstr "échec d'adressage (mapping) du segment de l'objet partagé"
msgid "cannot map zero-fill pages"
msgstr "ne peut adresser des pages remplies de zéros"
-#: elf/dl-lookup.c:835
-msgid "relocation error"
-msgstr "erreur de réaffectation"
-
-#: elf/dl-lookup.c:858
+#: elf/dl-lookup.c:830
msgid "symbol lookup error"
msgstr "erreur de recherche de symbole"
@@ -661,19 +659,19 @@ msgstr "erreur de recherche de symbole"
msgid "cannot extend global scope"
msgstr "ne peut augmenter l'étendue de la plage globale"
-#: elf/dl-open.c:470
+#: elf/dl-open.c:474
msgid "TLS generation counter wrapped! Please report this."
msgstr "Le compteur de génération TLS a bouclé ! SVP expédier un rapport avec le script 'glibcbug'."
-#: elf/dl-open.c:534
+#: elf/dl-open.c:538
msgid "invalid mode for dlopen()"
msgstr "mode invalide pour dlopen()"
-#: elf/dl-open.c:551
+#: elf/dl-open.c:555
msgid "no more namespaces available for dlmopen()"
msgstr "plus d'espace de nommage disponible pour dlmopen()"
-#: elf/dl-open.c:575
+#: elf/dl-open.c:579
msgid "invalid target namespace in dlmopen()"
msgstr "espace de nommage cible invalide dans dlmopen()"
@@ -681,20 +679,20 @@ msgstr "espace de nommage cible invalide dans dlmopen()"
msgid "cannot allocate memory in static TLS block"
msgstr "ne peut allouer de la mémoire dans un bloc statique TLS"
-#: elf/dl-reloc.c:205
+#: elf/dl-reloc.c:213
msgid "cannot make segment writable for relocation"
msgstr "ne peut rendre le segment inscritible pour une réaffectation"
-#: elf/dl-reloc.c:276
+#: elf/dl-reloc.c:272
#, c-format
msgid "%s: out of memory to store relocation results for %s\n"
msgstr "%s : manque de mémoire pour stocker les résultats de la réaffectation pour %s\n"
-#: elf/dl-reloc.c:292
+#: elf/dl-reloc.c:288
msgid "cannot restore segment prot after reloc"
msgstr "ne peut restaurer le segment prot après reloc"
-#: elf/dl-reloc.c:323
+#: elf/dl-reloc.c:319
msgid "cannot apply additional memory protection after relocation"
msgstr "ne peut appliquer les protections additionnelle de mémoire après la réaffectation"
@@ -912,22 +910,22 @@ msgstr "nécessite un nom de fichier absolu pour le fichier de configuration qua
msgid "memory exhausted"
msgstr "mémoire épuisée"
-#: elf/ldconfig.c:1233
+#: elf/ldconfig.c:1234
#, c-format
msgid "%s:%u: cannot read directory %s"
msgstr "%s:%u : ne peut lire le dossier %s"
-#: elf/ldconfig.c:1281
+#: elf/ldconfig.c:1282
#, c-format
msgid "relative path `%s' used to build cache"
msgstr "chemin relatif `%s' utilisé pour construire le cache"
-#: elf/ldconfig.c:1311
+#: elf/ldconfig.c:1312
#, c-format
msgid "Can't chdir to /"
msgstr "Ne peut se positionner (chdir) dans /"
-#: elf/ldconfig.c:1352
+#: elf/ldconfig.c:1353
#, c-format
msgid "Can't open cache file directory %s\n"
msgstr "Ne peut ouvrir le dossier des fichiers de cache %s\n"
@@ -997,95 +995,101 @@ msgstr "a quitté avec un code retour inconnu"
msgid "error: you do not have read permission for"
msgstr "erreur : vous n'avez pas de permission de lecture pour"
-#: elf/pldd-xx.c:105
+#: elf/pldd-xx.c:102
#, c-format
msgid "cannot find program header of process"
msgstr "ne peut trouver l'entête de programme du process"
-#: elf/pldd-xx.c:110
+#: elf/pldd-xx.c:106
#, c-format
msgid "cannot read program header"
msgstr "ne peut lire l'entête de programme"
-#: elf/pldd-xx.c:135
+#: elf/pldd-xx.c:128
#, c-format
msgid "cannot read dynamic section"
msgstr "ne peut lire de section dynamique"
-#: elf/pldd-xx.c:147
+#: elf/pldd-xx.c:137
#, c-format
msgid "cannot read r_debug"
msgstr "ne peut lire r_debug"
-#: elf/pldd-xx.c:167
+#: elf/pldd-xx.c:154
#, c-format
msgid "cannot read program interpreter"
msgstr "ne peut lire l'interpréteur de programme"
-#: elf/pldd-xx.c:197
+#: elf/pldd-xx.c:183
#, c-format
msgid "cannot read link map"
msgstr "ne peut lire la carte lien (link map)"
-#: elf/pldd-xx.c:209
+#: elf/pldd-xx.c:190
#, c-format
msgid "cannot read object name"
msgstr "ne peut lire le nom d'objet"
-#: elf/pldd-xx.c:219
+#: elf/pldd-xx.c:197
#, c-format
msgid "cannot allocate buffer for object name"
msgstr "ne peut allouer de la mémoire pour une en-tête de programme"
-#: elf/pldd.c:64
+#: elf/pldd.c:58
msgid "List dynamic shared objects loaded into process."
msgstr "Liste les objets partagés dynamiques chargés dans le process."
-#: elf/pldd.c:68
+#: elf/pldd.c:62
msgid "PID"
msgstr "PID"
-#: elf/pldd.c:100
+#: elf/pldd.c:89
#, c-format
msgid "Exactly one parameter with process ID required.\n"
msgstr "Un paramètre exactement avec le process ID est requis.\n"
-#: elf/pldd.c:112
+#: elf/pldd.c:103
#, c-format
msgid "invalid process ID '%s'"
msgstr "process ID invalide '%s'"
-#: elf/pldd.c:120
+#: elf/pldd.c:111
#, c-format
msgid "cannot open %s"
msgstr "Ne peut ouvrir %s"
-#: elf/pldd.c:152
+#: elf/pldd.c:142
#, c-format
msgid "cannot open %s/task"
msgstr "Ne peut ouvrir %s/tâche"
-#: elf/pldd.c:155
+#: elf/pldd.c:145
#, c-format
msgid "cannot prepare reading %s/task"
msgstr "ne peut préparer la lecture %s/tâche"
-#: elf/pldd.c:168
+#: elf/pldd.c:158
#, c-format
msgid "invalid thread ID '%s'"
msgstr "ID de fil (thread) invalide '%s'"
-#: elf/pldd.c:179
+#: elf/pldd.c:169
#, c-format
msgid "cannot attach to process %lu"
msgstr "ne peut s'attacher au process %lu"
-#: elf/pldd.c:294
+#: elf/pldd.c:184
+#, fuzzy, c-format
+#| msgid "invalid saved time"
+msgid "no valid %s/task entries"
+msgstr "Temps sauvegardé invalide"
+
+#: elf/pldd.c:290
#, c-format
msgid "cannot get information about process %lu"
msgstr "ne peut récupérer l'information à propos du process %lu"
-#: elf/pldd.c:307
+#: elf/pldd.c:303
#, c-format
msgid "process %lu is no ELF program"
msgstr "le process %lu n'est pas un programme ELF"
@@ -1407,7 +1411,7 @@ msgstr "Information :"
msgid "list all known coded character sets"
msgstr "Liste tous les jeux de code de caractères"
-#: iconv/iconv_prog.c:64 locale/programs/localedef.c:120
+#: iconv/iconv_prog.c:64 locale/programs/localedef.c:124
msgid "Output control:"
msgstr "Contrôle de sortie :"
@@ -1416,8 +1420,8 @@ msgid "omit invalid characters from output"
msgstr "omission de caractères invalides à la sortie"
#: iconv/iconv_prog.c:66 iconv/iconvconfig.c:128
-#: locale/programs/localedef.c:113 locale/programs/localedef.c:115
-#: locale/programs/localedef.c:117 locale/programs/localedef.c:144
+#: locale/programs/localedef.c:117 locale/programs/localedef.c:119
+#: locale/programs/localedef.c:121 locale/programs/localedef.c:150
#: malloc/memusagestat.c:56
msgid "FILE"
msgstr "FICHIER"
@@ -1516,7 +1520,7 @@ msgstr "Création d'un module iconv de chargement rapide du fichier de configura
msgid "[DIR...]"
msgstr "[RÉPERTOIRE...]"
-#: iconv/iconvconfig.c:126 locale/programs/localedef.c:123
+#: iconv/iconvconfig.c:126 locale/programs/localedef.c:129
msgid "PATH"
msgstr "PATH"
@@ -1703,14 +1707,14 @@ msgstr "les jeux de caractères avec état vérrouillés ne sont pas supportés"
#: locale/programs/charmap.c:503 locale/programs/charmap.c:557
#: locale/programs/charmap.c:589 locale/programs/charmap.c:683
-#: locale/programs/charmap.c:738 locale/programs/charmap.c:779
-#: locale/programs/charmap.c:820
+#: locale/programs/charmap.c:739 locale/programs/charmap.c:780
+#: locale/programs/charmap.c:821
#, c-format
msgid "syntax error in %s definition: %s"
msgstr "erreur de syntaxe dans la définition de %s : %s"
#: locale/programs/charmap.c:504 locale/programs/charmap.c:684
-#: locale/programs/charmap.c:780 locale/programs/repertoire.c:229
+#: locale/programs/charmap.c:781 locale/programs/repertoire.c:229
msgid "no symbolic name given"
msgstr "aucun nom symbolique fourni"
@@ -1726,14 +1730,14 @@ msgstr "trop peu d'octets pour l'encodage des caractères"
msgid "too many bytes in character encoding"
msgstr "trop d'octets pour l'encodage des caractères"
-#: locale/programs/charmap.c:591 locale/programs/charmap.c:739
-#: locale/programs/charmap.c:822 locale/programs/repertoire.c:295
+#: locale/programs/charmap.c:591 locale/programs/charmap.c:740
+#: locale/programs/charmap.c:823 locale/programs/repertoire.c:295
msgid "no symbolic name given for end of range"
msgstr "pas de nom symbolique fourni pour la fin de l'intervalle"
#: locale/programs/charmap.c:615 locale/programs/ld-address.c:524
#: locale/programs/ld-collate.c:2616 locale/programs/ld-collate.c:3774
-#: locale/programs/ld-ctype.c:2117 locale/programs/ld-ctype.c:2829
+#: locale/programs/ld-ctype.c:2118 locale/programs/ld-ctype.c:2830
#: locale/programs/ld-identification.c:397
#: locale/programs/ld-measurement.c:213 locale/programs/ld-messages.c:295
#: locale/programs/ld-monetary.c:748 locale/programs/ld-name.c:262
@@ -1750,58 +1754,58 @@ msgstr ""
"Seules les définitions de type « WIDTH » sont permises à la suite\n"
"d'une définition de type « CHARMAP »"
-#: locale/programs/charmap.c:656 locale/programs/charmap.c:719
+#: locale/programs/charmap.c:656 locale/programs/charmap.c:720
#, c-format
msgid "value for %s must be an integer"
msgstr "la valeur de %s doit être un entier"
-#: locale/programs/charmap.c:847
+#: locale/programs/charmap.c:848
#, c-format
msgid "%s: error in state machine"
msgstr "%s : erreur de l'automate à états finis"
-#: locale/programs/charmap.c:855 locale/programs/ld-address.c:540
+#: locale/programs/charmap.c:856 locale/programs/ld-address.c:540
#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967
-#: locale/programs/ld-ctype.c:2114 locale/programs/ld-ctype.c:2846
+#: locale/programs/ld-ctype.c:2115 locale/programs/ld-ctype.c:2847
#: locale/programs/ld-identification.c:413
#: locale/programs/ld-measurement.c:229 locale/programs/ld-messages.c:311
#: locale/programs/ld-monetary.c:764 locale/programs/ld-name.c:278
#: locale/programs/ld-numeric.c:341 locale/programs/ld-paper.c:228
#: locale/programs/ld-telephone.c:292 locale/programs/ld-time.c:990
-#: locale/programs/locfile.c:997 locale/programs/repertoire.c:323
+#: locale/programs/locfile.c:1010 locale/programs/repertoire.c:323
#, c-format
msgid "%s: premature end of file"
msgstr "%s : fin prématurée du fichier"
-#: locale/programs/charmap.c:874 locale/programs/charmap.c:885
+#: locale/programs/charmap.c:875 locale/programs/charmap.c:886
#, c-format
msgid "unknown character `%s'"
msgstr "caractère inconnu « %s »"
-#: locale/programs/charmap.c:893
+#: locale/programs/charmap.c:894
#, c-format
msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d"
msgstr "nombre d'octets pour une séquence d'octets de début et de fin de plage n'est pas le même : %d vs %d"
-#: locale/programs/charmap.c:998 locale/programs/ld-collate.c:2893
+#: locale/programs/charmap.c:999 locale/programs/ld-collate.c:2893
#: locale/programs/repertoire.c:418
msgid "invalid names for character range"
msgstr "nom invalide pour un intervalle de caractères"
-#: locale/programs/charmap.c:1010 locale/programs/repertoire.c:430
+#: locale/programs/charmap.c:1011 locale/programs/repertoire.c:430
msgid "hexadecimal range format should use only capital characters"
msgstr "le format de la plage hexadécimale doit utiliser que des majuscules"
-#: locale/programs/charmap.c:1028 locale/programs/repertoire.c:448
+#: locale/programs/charmap.c:1029 locale/programs/repertoire.c:448
#, c-format
msgid "<%s> and <%s> are invalid names for range"
msgstr "<%s> et <%s> sont des noms invalides pour un intervalle"
-#: locale/programs/charmap.c:1034 locale/programs/repertoire.c:455
+#: locale/programs/charmap.c:1035 locale/programs/repertoire.c:455
msgid "upper limit in range is smaller than lower limit"
msgstr "la limite supérieure de l'intervalle est plus basse que la limite inférieure"
-#: locale/programs/charmap.c:1092
+#: locale/programs/charmap.c:1093
msgid "resulting bytes for range not representable."
msgstr "les octets résultants pour la plage ne sont pas représentables."
@@ -1870,7 +1874,7 @@ msgid "%s: numeric country code `%d' not valid"
msgstr "%s : code numérique invalide pour le pays « %d »"
#: locale/programs/ld-address.c:432 locale/programs/ld-address.c:469
-#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2478
+#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2479
#: locale/programs/ld-identification.c:309
#: locale/programs/ld-measurement.c:196 locale/programs/ld-messages.c:264
#: locale/programs/ld-monetary.c:503 locale/programs/ld-monetary.c:538
@@ -1893,7 +1897,7 @@ msgid "%s: unknown character in field `%s'"
msgstr "%s : caractère inconnu dans le champ « %s »"
#: locale/programs/ld-address.c:521 locale/programs/ld-collate.c:3772
-#: locale/programs/ld-ctype.c:2826 locale/programs/ld-identification.c:394
+#: locale/programs/ld-ctype.c:2827 locale/programs/ld-identification.c:394
#: locale/programs/ld-measurement.c:210 locale/programs/ld-messages.c:293
#: locale/programs/ld-monetary.c:746 locale/programs/ld-name.c:260
#: locale/programs/ld-numeric.c:323 locale/programs/ld-paper.c:210
@@ -1906,8 +1910,8 @@ msgstr "%s : ligne « END » incomplète"
#: locale/programs/ld-collate.c:602 locale/programs/ld-collate.c:898
#: locale/programs/ld-collate.c:911 locale/programs/ld-collate.c:2582
#: locale/programs/ld-collate.c:2603 locale/programs/ld-collate.c:3957
-#: locale/programs/ld-ctype.c:1846 locale/programs/ld-ctype.c:2104
-#: locale/programs/ld-ctype.c:2676 locale/programs/ld-ctype.c:2837
+#: locale/programs/ld-ctype.c:1847 locale/programs/ld-ctype.c:2105
+#: locale/programs/ld-ctype.c:2677 locale/programs/ld-ctype.c:2838
#: locale/programs/ld-identification.c:404
#: locale/programs/ld-measurement.c:220 locale/programs/ld-messages.c:302
#: locale/programs/ld-monetary.c:755 locale/programs/ld-name.c:269
@@ -2251,131 +2255,131 @@ msgstr "Table de caractères « %s » déjà définie"
msgid "implementation limit: no more than %d character maps allowed"
msgstr "Limite d'implantation : pas plus de %d tables de caractères sont permises"
-#: locale/programs/ld-ctype.c:1434 locale/programs/ld-ctype.c:1559
-#: locale/programs/ld-ctype.c:1665 locale/programs/ld-ctype.c:2341
-#: locale/programs/ld-ctype.c:3299
+#: locale/programs/ld-ctype.c:1435 locale/programs/ld-ctype.c:1560
+#: locale/programs/ld-ctype.c:1666 locale/programs/ld-ctype.c:2342
+#: locale/programs/ld-ctype.c:3302
#, c-format
msgid "%s: field `%s' does not contain exactly ten entries"
msgstr "%s : champ « %s » ne contient pas exactement 10 entrées"
-#: locale/programs/ld-ctype.c:1462 locale/programs/ld-ctype.c:2036
+#: locale/programs/ld-ctype.c:1463 locale/programs/ld-ctype.c:2037
#, c-format
msgid "to-value <U%0*X> of range is smaller than from-value <U%0*X>"
msgstr "Valeur-finale <U%0*X> de l'intervalle est plus petite que la valeur-départ <U%0*X>"
-#: locale/programs/ld-ctype.c:1589
+#: locale/programs/ld-ctype.c:1590
msgid "start and end character sequence of range must have the same length"
msgstr "Début et fin de l'intervalle de la séquence de caractères doivent avoir la même longueur"
-#: locale/programs/ld-ctype.c:1596
+#: locale/programs/ld-ctype.c:1597
msgid "to-value character sequence is smaller than from-value sequence"
msgstr "Valeur finale de la séquence des caractères est plus petite que la valeur de départ"
-#: locale/programs/ld-ctype.c:1956 locale/programs/ld-ctype.c:2007
+#: locale/programs/ld-ctype.c:1957 locale/programs/ld-ctype.c:2008
msgid "premature end of `translit_ignore' definition"
msgstr "Fin prématurée de la définition de « translit_ignore »"
-#: locale/programs/ld-ctype.c:1962 locale/programs/ld-ctype.c:2013
-#: locale/programs/ld-ctype.c:2055
+#: locale/programs/ld-ctype.c:1963 locale/programs/ld-ctype.c:2014
+#: locale/programs/ld-ctype.c:2056
msgid "syntax error"
msgstr "Erreur de syntaxe"
-#: locale/programs/ld-ctype.c:2188
+#: locale/programs/ld-ctype.c:2189
#, c-format
msgid "%s: syntax error in definition of new character class"
msgstr "%s : erreur de syntaxe dans la définition d'une nouvelle classe de caractères"
-#: locale/programs/ld-ctype.c:2203
+#: locale/programs/ld-ctype.c:2204
#, c-format
msgid "%s: syntax error in definition of new character map"
msgstr "%s : erreur de syntaxe dans la définition d'une nouvelle table de caractères"
-#: locale/programs/ld-ctype.c:2363
+#: locale/programs/ld-ctype.c:2364
msgid "ellipsis range must be marked by two operands of same type"
msgstr "Plage de l'ellipse doit être marqué par 2 opérandes du même type"
-#: locale/programs/ld-ctype.c:2372
+#: locale/programs/ld-ctype.c:2373
msgid "with symbolic name range values the absolute ellipsis `...' must not be used"
msgstr "Les valeurs d'une plage de noms symboliques d'une ellipse absolue « .... » ne doivent pas être utilisés"
-#: locale/programs/ld-ctype.c:2387
+#: locale/programs/ld-ctype.c:2388
msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'"
msgstr "Les valeurs d'une plage UCS doivent utiliser une ellipse symbolique en hexadécimal « .. »"
-#: locale/programs/ld-ctype.c:2401
+#: locale/programs/ld-ctype.c:2402
msgid "with character code range values one must use the absolute ellipsis `...'"
msgstr "Les valeurs d'une plage de caractères doivent utiliser une ellipse absolu « ... »"
-#: locale/programs/ld-ctype.c:2552
+#: locale/programs/ld-ctype.c:2553
#, c-format
msgid "duplicated definition for mapping `%s'"
msgstr "Double définitions de la table « %s »"
-#: locale/programs/ld-ctype.c:2638 locale/programs/ld-ctype.c:2782
+#: locale/programs/ld-ctype.c:2639 locale/programs/ld-ctype.c:2783
#, c-format
msgid "%s: `translit_start' section does not end with `translit_end'"
msgstr "%s : la section « transit_start » n'est pas terminée par « translit_end »"
-#: locale/programs/ld-ctype.c:2733
+#: locale/programs/ld-ctype.c:2734
#, c-format
msgid "%s: duplicate `default_missing' definition"
msgstr "%s : double définition de « default_missing »"
-#: locale/programs/ld-ctype.c:2738
+#: locale/programs/ld-ctype.c:2739
msgid "previous definition was here"
msgstr "Le définition précédente était ici"
-#: locale/programs/ld-ctype.c:2760
+#: locale/programs/ld-ctype.c:2761
#, c-format
msgid "%s: no representable `default_missing' definition found"
msgstr "%s : aucune définition « default_missing » pour les non représentables"
-#: locale/programs/ld-ctype.c:2877 locale/programs/ld-ctype.c:2973
-#: locale/programs/ld-ctype.c:2992 locale/programs/ld-ctype.c:3012
-#: locale/programs/ld-ctype.c:3032 locale/programs/ld-ctype.c:3052
-#: locale/programs/ld-ctype.c:3072 locale/programs/ld-ctype.c:3111
-#: locale/programs/ld-ctype.c:3131 locale/programs/ld-ctype.c:3195
-#: locale/programs/ld-ctype.c:3236 locale/programs/ld-ctype.c:3259
+#: locale/programs/ld-ctype.c:2878 locale/programs/ld-ctype.c:2974
+#: locale/programs/ld-ctype.c:2993 locale/programs/ld-ctype.c:3013
+#: locale/programs/ld-ctype.c:3033 locale/programs/ld-ctype.c:3053
+#: locale/programs/ld-ctype.c:3073 locale/programs/ld-ctype.c:3112
+#: locale/programs/ld-ctype.c:3132 locale/programs/ld-ctype.c:3198
+#: locale/programs/ld-ctype.c:3239 locale/programs/ld-ctype.c:3262
#, c-format
msgid "%s: character `%s' not defined while needed as default value"
msgstr "%s : caractère « %s » non défini alors qu'attendu comme valeur par défaut"
-#: locale/programs/ld-ctype.c:2882 locale/programs/ld-ctype.c:2978
-#: locale/programs/ld-ctype.c:2997 locale/programs/ld-ctype.c:3017
-#: locale/programs/ld-ctype.c:3037 locale/programs/ld-ctype.c:3057
-#: locale/programs/ld-ctype.c:3077 locale/programs/ld-ctype.c:3116
-#: locale/programs/ld-ctype.c:3136 locale/programs/ld-ctype.c:3200
+#: locale/programs/ld-ctype.c:2883 locale/programs/ld-ctype.c:2979
+#: locale/programs/ld-ctype.c:2998 locale/programs/ld-ctype.c:3018
+#: locale/programs/ld-ctype.c:3038 locale/programs/ld-ctype.c:3058
+#: locale/programs/ld-ctype.c:3078 locale/programs/ld-ctype.c:3117
+#: locale/programs/ld-ctype.c:3137 locale/programs/ld-ctype.c:3203
#, c-format
msgid "%s: character `%s' in charmap not representable with one byte"
msgstr "%s : caractère « %s » dans la table des caractères n'est pas représentable par un seul octet"
-#: locale/programs/ld-ctype.c:3242 locale/programs/ld-ctype.c:3265
+#: locale/programs/ld-ctype.c:3245 locale/programs/ld-ctype.c:3268
#, c-format
msgid "%s: character `%s' needed as default value not representable with one byte"
msgstr "%s : caractère « %s » nécessaire comme valeur par défaut n'est pas représentable par un seul octet"
-#: locale/programs/ld-ctype.c:3321
+#: locale/programs/ld-ctype.c:3324
msgid "no output digits defined and none of the standard names in the charmap"
msgstr "Pas de chiffre défini et aucun des noms standards dans la table des caractères"
-#: locale/programs/ld-ctype.c:3570
+#: locale/programs/ld-ctype.c:3573
#, c-format
msgid "%s: transliteration data from locale `%s' not available"
msgstr "%s : le particularisme local « %s » ne dispose pas des données de transposition"
-#: locale/programs/ld-ctype.c:3669
+#: locale/programs/ld-ctype.c:3672
#, fuzzy, c-format
#| msgid "%s: table for class \"%s\": %lu bytes\n"
msgid "%s: table for class \"%s\": %lu bytes"
msgstr "%s : table pour la classe « %s » : %lu octets\n"
-#: locale/programs/ld-ctype.c:3733
+#: locale/programs/ld-ctype.c:3736
#, fuzzy, c-format
#| msgid "%s: table for map \"%s\": %lu bytes\n"
msgid "%s: table for map \"%s\": %lu bytes"
msgstr "%s : table de caractères « %s » : %lu octets\n"
-#: locale/programs/ld-ctype.c:3857
+#: locale/programs/ld-ctype.c:3860
#, fuzzy, c-format
#| msgid "%s: table for width: %lu bytes\n"
msgid "%s: table for width: %lu bytes"
@@ -2623,122 +2627,117 @@ msgstr ""
"NOM\n"
"[-a|-m]"
-#: locale/programs/locale.c:190
-#, c-format
-msgid "Cannot set LC_CTYPE to default locale"
-msgstr "Ne peut initialiser LC_TYPE à la locale par défaut"
-
-#: locale/programs/locale.c:192
-#, c-format
-msgid "Cannot set LC_MESSAGES to default locale"
-msgstr "Ne peut initialiser LC_MESSAGES à la locale par défaut"
-
-#: locale/programs/locale.c:205
+#: locale/programs/locale.c:522
#, c-format
-msgid "Cannot set LC_COLLATE to default locale"
-msgstr "Ne peut initialiser LC_COLLATE à la locale par défaut"
+msgid "while preparing output"
+msgstr "lors de la préparation de la sortie"
-#: locale/programs/locale.c:221
-#, c-format
-msgid "Cannot set LC_ALL to default locale"
+#: locale/programs/locale.c:998
+#, fuzzy, c-format
+#| msgid "Cannot set LC_ALL to default locale"
+msgid "Cannot set %s to default locale"
msgstr "Ne peut initialiser LC_ALL à la locale par défaut"
-#: locale/programs/locale.c:521
+#: locale/programs/locale.c:1096
#, c-format
-msgid "while preparing output"
-msgstr "lors de la préparation de la sortie"
+msgid "warning: The LOCPATH variable is set to \"%s\"\n"
+msgstr ""
-#: locale/programs/localedef.c:112
+#: locale/programs/localedef.c:116
msgid "Input Files:"
msgstr "Fichiers d'entrée :"
-#: locale/programs/localedef.c:114
+#: locale/programs/localedef.c:118
msgid "Symbolic character names defined in FILE"
msgstr "Les noms symboliques des caractères définis dans le FICHIER"
-#: locale/programs/localedef.c:116
+#: locale/programs/localedef.c:120
msgid "Source definitions are found in FILE"
msgstr "Les définitions des sources ont été repérées dans le FICHIER"
-#: locale/programs/localedef.c:118
+#: locale/programs/localedef.c:122
msgid "FILE contains mapping from symbolic names to UCS4 values"
msgstr "FICHIER contient la table d'adressage des noms symboliques vers les valeurs UCS4"
-#: locale/programs/localedef.c:122
+#: locale/programs/localedef.c:126
msgid "Create output even if warning messages were issued"
msgstr "Créer la sortie même si des messages d'avertissement sont affichées"
-#: locale/programs/localedef.c:123
+#: locale/programs/localedef.c:128
+msgid "Do not create hard links between installed locales"
+msgstr ""
+
+#: locale/programs/localedef.c:129
msgid "Optional output file prefix"
msgstr "Préfixe optionnel du fichier de sortie"
-#: locale/programs/localedef.c:124
+#: locale/programs/localedef.c:130
msgid "Strictly conform to POSIX"
msgstr " se conformer de façon stricte à la norme POSIX"
-#: locale/programs/localedef.c:126
+#: locale/programs/localedef.c:132
msgid "Suppress warnings and information messages"
msgstr "Supprimer les messages d'avertissement et d'information"
-#: locale/programs/localedef.c:127
+#: locale/programs/localedef.c:133
msgid "Print more messages"
msgstr "Afficher d'autres messages"
-#: locale/programs/localedef.c:128 locale/programs/localedef.c:131
+#: locale/programs/localedef.c:134 locale/programs/localedef.c:137
#, fuzzy
#| msgid "warning: "
msgid "<warnings>"
msgstr "AVERTISSEMENT : "
-#: locale/programs/localedef.c:129
+#: locale/programs/localedef.c:135
msgid "Comma-separated list of warnings to disable; supported warnings are: ascii, intcurrsym"
msgstr ""
-#: locale/programs/localedef.c:132
+#: locale/programs/localedef.c:138
msgid "Comma-separated list of warnings to enable; supported warnings are: ascii, intcurrsym"
msgstr ""
-#: locale/programs/localedef.c:135
+#: locale/programs/localedef.c:141
msgid "Archive control:"
msgstr "Contrôle d'archive :"
-#: locale/programs/localedef.c:137
+#: locale/programs/localedef.c:143
msgid "Don't add new data to archive"
msgstr "Ne pas ajouter de nouvelles données à l'archive"
-#: locale/programs/localedef.c:139
+#: locale/programs/localedef.c:145
msgid "Add locales named by parameters to archive"
msgstr "Ajouter à l'archive des variables de particularisation désignées par paramètres"
-#: locale/programs/localedef.c:140
+#: locale/programs/localedef.c:146
msgid "Replace existing archive content"
msgstr "Remplacement du contenu de l'archive existante"
-#: locale/programs/localedef.c:142
+#: locale/programs/localedef.c:148
msgid "Remove locales named by parameters from archive"
msgstr "Retrait de l'archive des variables de particularisation désignées par paramètres"
-#: locale/programs/localedef.c:143
+#: locale/programs/localedef.c:149
msgid "List content of archive"
msgstr "Liste du contenu de l'archive"
-#: locale/programs/localedef.c:145
+#: locale/programs/localedef.c:151
msgid "locale.alias file to consult when making archive"
msgstr "fichier locale.alias à consulter lors de la création de l'archive"
-#: locale/programs/localedef.c:147
+#: locale/programs/localedef.c:153
msgid "Generate little-endian output"
msgstr "Génère en petit endian"
-#: locale/programs/localedef.c:149
+#: locale/programs/localedef.c:155
msgid "Generate big-endian output"
msgstr "Génère en grand endian"
-#: locale/programs/localedef.c:154
+#: locale/programs/localedef.c:160
msgid "Compile locale specification"
msgstr "Compiler les particularismes locaux"
-#: locale/programs/localedef.c:157
+#: locale/programs/localedef.c:163
msgid ""
"NAME\n"
"[--add-to-archive|--delete-from-archive] FILE...\n"
@@ -2748,33 +2747,33 @@ msgstr ""
"[--add-to-archive|--delete-from-archive] FICHIER...\n"
"--list-archive [FICHIER]"
-#: locale/programs/localedef.c:232
+#: locale/programs/localedef.c:238
#, c-format
msgid "cannot create directory for output files"
msgstr "ne peut créer le dossier pour les fichiers de sortie"
-#: locale/programs/localedef.c:243
+#: locale/programs/localedef.c:249
msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
msgstr "ERREUR FATALE : le système ne peut définir « _POSIX2_LOCALEDEF »"
-#: locale/programs/localedef.c:257 locale/programs/localedef.c:273
-#: locale/programs/localedef.c:663 locale/programs/localedef.c:683
+#: locale/programs/localedef.c:263 locale/programs/localedef.c:279
+#: locale/programs/localedef.c:673 locale/programs/localedef.c:693
#, c-format
msgid "cannot open locale definition file `%s'"
msgstr "Ne peut ouvrir le fichier des particularisations « %s »"
-#: locale/programs/localedef.c:297
+#: locale/programs/localedef.c:303
#, c-format
msgid "cannot write output files to `%s'"
msgstr "Ne peut écrire dans les fichiers de sortie vers « %s »"
-#: locale/programs/localedef.c:303
+#: locale/programs/localedef.c:309
#, fuzzy
#| msgid "no output file produced because warnings were issued"
msgid "no output file produced because errors were issued"
msgstr "aucun fichier de sortie généré en raison d'avertissements émis"
-#: locale/programs/localedef.c:431
+#: locale/programs/localedef.c:441
#, c-format
msgid ""
"System's directory for character maps : %s\n"
@@ -2787,11 +2786,11 @@ msgstr ""
"\t\t du chemin des particularisations : %s\n"
"%s"
-#: locale/programs/localedef.c:631
+#: locale/programs/localedef.c:641
msgid "circular dependencies between locale definitions"
msgstr "Dépendance circulaires entre les définitions de locales"
-#: locale/programs/localedef.c:637
+#: locale/programs/localedef.c:647
#, c-format
msgid "cannot add already read locale `%s' a second time"
msgstr "Ne peut ajouter une locale déjà lu « %s » une seconde fois"
@@ -2947,24 +2946,24 @@ msgstr "Ne peut ouvrir le fichier de sortie « %s » de catégorie « %s »"
msgid "failure while writing data for category `%s'"
msgstr "Échec lors de l'écriture des données de catégorie « %s »"
-#: locale/programs/locfile.c:917
+#: locale/programs/locfile.c:930
#, c-format
msgid "cannot create output file `%s' for category `%s'"
msgstr "Ne peut créer le fichier de sortie « %s » de catégorie « %s »"
-#: locale/programs/locfile.c:953
+#: locale/programs/locfile.c:966
msgid "expecting string argument for `copy'"
msgstr "l'argument de chaîne attendu pour `copy'"
-#: locale/programs/locfile.c:957
+#: locale/programs/locfile.c:970
msgid "locale name should consist only of portable characters"
msgstr "Nom de locale doit être composé de caractères portables"
-#: locale/programs/locfile.c:976
+#: locale/programs/locfile.c:989
msgid "no other keyword shall be specified when `copy' is used"
msgstr "Aucun autre mot clé ne doit être spécifié lorsque « copy » est utilisé"
-#: locale/programs/locfile.c:990
+#: locale/programs/locfile.c:1003
#, c-format
msgid "`%1$s' definition does not end with `END %1$s'"
msgstr "« %1$s » la définition ne se termine pas par « END %1$s »"
@@ -3797,12 +3796,12 @@ msgstr "yp_update : ne peut convertir le nom de l'hôte à un nom réseau (netn
msgid "yp_update: cannot get server address\n"
msgstr "yp_update : ne peut obtenir l'adresse du serveur\n"
-#: nscd/aicache.c:83 nscd/hstcache.c:452
+#: nscd/aicache.c:82 nscd/hstcache.c:452
#, c-format
msgid "Haven't found \"%s\" in hosts cache!"
msgstr "N'a pas trouvé « %s » dans la cache de la liste des hôtes !"
-#: nscd/aicache.c:85 nscd/hstcache.c:454
+#: nscd/aicache.c:84 nscd/hstcache.c:454
#, c-format
msgid "Reloading \"%s\" in hosts cache!"
msgstr "Recharge « %s » dans le cache hôte !"
@@ -4124,22 +4123,22 @@ msgstr "libéré %zu octets dans le cache %s"
msgid "no more memory for database '%s'"
msgstr "plus de mémoire disponible pour la base de données '%s'"
-#: nscd/netgroupcache.c:121
+#: nscd/netgroupcache.c:122
#, c-format
msgid "Haven't found \"%s\" in netgroup cache!"
msgstr "N'a pas trouvé « %s » dans le cache du netgroupe !"
-#: nscd/netgroupcache.c:123
+#: nscd/netgroupcache.c:124
#, c-format
msgid "Reloading \"%s\" in netgroup cache!"
msgstr "Recharge « %s » dans le cache netgroupe !"
-#: nscd/netgroupcache.c:469
+#: nscd/netgroupcache.c:470
#, c-format
msgid "Haven't found \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr "N'a pas trouvé « %s (%s,%s,%s) » dans le cache du groupe !"
-#: nscd/netgroupcache.c:472
+#: nscd/netgroupcache.c:473
#, c-format
msgid "Reloading \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr "Recharge « %s (%s,%s,%s) » dans le cache netgroupe !"
@@ -4192,7 +4191,7 @@ msgstr "Utiliser une cache séparée pour chaque usager"
msgid "Name Service Cache Daemon."
msgstr "« Daemon » du cache du service de noms."
-#: nscd/nscd.c:155 nss/getent.c:967 nss/makedb.c:206
+#: nscd/nscd.c:155 nss/getent.c:987 nss/makedb.c:206
#, c-format
msgid "wrong number of arguments"
msgstr "Mauvais nombre d'arguments"
@@ -4300,27 +4299,27 @@ msgstr "Erreur d'analyse syntaxique : %s"
msgid "Must specify user name for server-user option"
msgstr "Obligation de spécifier le nom de l'usager pour l'option serveur-usager"
-#: nscd/nscd_conf.c:198
+#: nscd/nscd_conf.c:201
#, c-format
msgid "Must specify user name for stat-user option"
msgstr "Obligation de spécifier le nom de l'usager pour l'option stat-user"
-#: nscd/nscd_conf.c:255
+#: nscd/nscd_conf.c:259
#, c-format
msgid "Must specify value for restart-interval option"
msgstr "Obligation de spécifier une valeur pour l'option restart-interval (intervalle de redémarrage)"
-#: nscd/nscd_conf.c:269
+#: nscd/nscd_conf.c:273
#, c-format
msgid "Unknown option: %s %s %s"
msgstr "Option inconnue : %s %s %s"
-#: nscd/nscd_conf.c:282
+#: nscd/nscd_conf.c:286
#, c-format
msgid "cannot get current working directory: %s; disabling paranoia mode"
msgstr "ne peut obtenir le dossier de travail courant : %s; désactive le mode paranoïa"
-#: nscd/nscd_conf.c:302
+#: nscd/nscd_conf.c:306
#, c-format
msgid "maximum file size for %s database too small"
msgstr "la taille maximale de fichier pour la base de données %s est trop petite"
@@ -4585,47 +4584,47 @@ msgstr "N'a pas trouvé « %s » dans le cache des services !"
msgid "Reloading \"%s\" in services cache!"
msgstr "Recharge « %s » dans le cache des services !"
-#: nss/getent.c:54
+#: nss/getent.c:55
msgid "database [key ...]"
msgstr "base de données [clé ...]"
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "CONFIG"
msgstr "CONFIG"
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "Service configuration to be used"
msgstr "Configuration de service à utiliser"
-#: nss/getent.c:60
+#: nss/getent.c:61
msgid "disable IDN encoding"
msgstr "désactive l'encodage IDN"
-#: nss/getent.c:65
+#: nss/getent.c:66
msgid "Get entries from administrative database."
msgstr "Obtient des entrées de la base de données administrative"
-#: nss/getent.c:149 nss/getent.c:442 nss/getent.c:489
+#: nss/getent.c:150 nss/getent.c:462 nss/getent.c:509
#, c-format
msgid "Enumeration not supported on %s\n"
msgstr "Énumération non supportée sur %s\n"
-#: nss/getent.c:497 nss/getent.c:510
+#: nss/getent.c:517 nss/getent.c:530
#, fuzzy, c-format
#| msgid "Could not create log file"
msgid "Could not allocate group list: %m\n"
msgstr "N'a pu créé le fichier journal"
-#: nss/getent.c:881
+#: nss/getent.c:901
#, c-format
msgid "Unknown database name"
msgstr "Base de données inconnue"
-#: nss/getent.c:911
+#: nss/getent.c:931
msgid "Supported databases:\n"
msgstr "Base de données supportées :\n"
-#: nss/getent.c:977
+#: nss/getent.c:997
#, c-format
msgid "Unknown database: %s\n"
msgstr "Base de données inconnue : « %s »\n"
@@ -4884,11 +4883,11 @@ msgstr "Expression régulière trop grosse"
msgid "Unmatched ) or \\)"
msgstr "Échec du pairage de ) ou de \\)"
-#: posix/regcomp.c:689
+#: posix/regcomp.c:676
msgid "No previous regular expression"
msgstr "Aucune expression régulière précédente"
-#: posix/wordexp.c:1815
+#: posix/wordexp.c:1816
msgid "parameter null or not set"
msgstr "paramètre nul ou non initialisé"
@@ -5073,7 +5072,7 @@ msgstr "Le tampon de sortie est disponible"
msgid "Input message available"
msgstr "Message disponible en entrée "
-#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:381 timezone/zic.c:520
+#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:375 timezone/zic.c:561
msgid "I/O error"
msgstr "Erreur d'entrée/sortie"
@@ -5156,7 +5155,7 @@ msgstr "Signal inconnu %d"
#: sunrpc/auth_unix.c:112 sunrpc/clnt_tcp.c:124 sunrpc/clnt_udp.c:139
#: sunrpc/clnt_unix.c:125 sunrpc/svc_tcp.c:189 sunrpc/svc_tcp.c:233
#: sunrpc/svc_udp.c:161 sunrpc/svc_unix.c:189 sunrpc/svc_unix.c:229
-#: sunrpc/xdr.c:628 sunrpc/xdr.c:788 sunrpc/xdr_array.c:102
+#: sunrpc/xdr.c:631 sunrpc/xdr.c:791 sunrpc/xdr_array.c:102
#: sunrpc/xdr_rec.c:153 sunrpc/xdr_ref.c:79
msgid "out of memory\n"
msgstr "mémoire épuisée\n"
@@ -6407,56 +6406,69 @@ msgid "You really blew it this time"
msgstr "Vous avez vraiment tout gâcher cette fois-ci"
#. TRANS Go home and have a glass of warm, dairy-fresh milk.
-#: sysdeps/gnu/errlist.c:978
+#. TRANS @c Okay. Since you are dying to know, I'll tell you.
+#. TRANS @c This is a joke, obviously. There is a children's song which begins,
+#. TRANS @c "Old McDonald had a farm, e-i-e-i-o." Every time I see the (real)
+#. TRANS @c errno macro EIO, I think about that song. Probably most of my
+#. TRANS @c compatriots who program on Unix do, too. One of them must have stayed
+#. TRANS @c up a little too late one night and decided to add it to Hurd or Glibc.
+#. TRANS @c Whoever did it should be castigated, but it made me laugh.
+#. TRANS @c --jtobey@channel1.com
+#. TRANS @c
+#. TRANS @c "bought the farm" means "died". -jtobey
+#. TRANS @c
+#. TRANS @c Translators, please do not translate this litteraly, translate it into
+#. TRANS @c an idiomatic funny way of saying that the computer died.
+#: sysdeps/gnu/errlist.c:991
msgid "Computer bought the farm"
msgstr "L'ordinateur a acheté la ferme"
#. TRANS This error code has no purpose.
-#: sysdeps/gnu/errlist.c:987
+#: sysdeps/gnu/errlist.c:1000
msgid "Gratuitous error"
msgstr "Erreur gratuite"
-#: sysdeps/gnu/errlist.c:995
+#: sysdeps/gnu/errlist.c:1008
msgid "Bad message"
msgstr "Message invalide"
-#: sysdeps/gnu/errlist.c:1003
+#: sysdeps/gnu/errlist.c:1016
msgid "Identifier removed"
msgstr "Identificateur éliminé"
-#: sysdeps/gnu/errlist.c:1011
+#: sysdeps/gnu/errlist.c:1024
msgid "Multihop attempted"
msgstr "Tentative de connexion par de multiples noeuds de relais"
-#: sysdeps/gnu/errlist.c:1019
+#: sysdeps/gnu/errlist.c:1032
msgid "No data available"
msgstr "Aucune donnée disponible"
-#: sysdeps/gnu/errlist.c:1027
+#: sysdeps/gnu/errlist.c:1040
msgid "Link has been severed"
msgstr "Le lien a été endommagé"
-#: sysdeps/gnu/errlist.c:1035
+#: sysdeps/gnu/errlist.c:1048
msgid "No message of desired type"
msgstr "Aucun message du type désiré"
-#: sysdeps/gnu/errlist.c:1043
+#: sysdeps/gnu/errlist.c:1056
msgid "Out of streams resources"
msgstr "Aucune autre ressource de type streams disponible"
-#: sysdeps/gnu/errlist.c:1051
+#: sysdeps/gnu/errlist.c:1064
msgid "Device not a stream"
msgstr "Le périphérique n'est pas de type « stream »"
-#: sysdeps/gnu/errlist.c:1059
+#: sysdeps/gnu/errlist.c:1072
msgid "Value too large for defined data type"
msgstr "Valeur trop grande pour le type défini de données"
-#: sysdeps/gnu/errlist.c:1067
+#: sysdeps/gnu/errlist.c:1080
msgid "Protocol error"
msgstr "Erreur de protocole"
-#: sysdeps/gnu/errlist.c:1075
+#: sysdeps/gnu/errlist.c:1088
msgid "Timer expired"
msgstr "Expiration de la minuterie"
@@ -6464,195 +6476,195 @@ msgstr "Expiration de la minuterie"
#. TRANS completed. @xref{Asynchronous I/O}. When you call @code{aio_cancel},
#. TRANS the normal result is for the operations affected to complete with this
#. TRANS error; @pxref{Cancel AIO Operations}.
-#: sysdeps/gnu/errlist.c:1087
+#: sysdeps/gnu/errlist.c:1100
msgid "Operation canceled"
msgstr "Opération annulée"
-#: sysdeps/gnu/errlist.c:1095
+#: sysdeps/gnu/errlist.c:1108
msgid "Owner died"
msgstr "Propriétaire mort"
-#: sysdeps/gnu/errlist.c:1103
+#: sysdeps/gnu/errlist.c:1116
msgid "State not recoverable"
msgstr "Etat non récupérable"
-#: sysdeps/gnu/errlist.c:1111
+#: sysdeps/gnu/errlist.c:1124
msgid "Interrupted system call should be restarted"
msgstr "Appel système interrompu, il aurait dû être relancé"
-#: sysdeps/gnu/errlist.c:1119
+#: sysdeps/gnu/errlist.c:1132
msgid "Channel number out of range"
msgstr "Numéro de canal en dehors des limites"
-#: sysdeps/gnu/errlist.c:1127
+#: sysdeps/gnu/errlist.c:1140
msgid "Level 2 not synchronized"
msgstr "Niveau 2 non synchronisé"
-#: sysdeps/gnu/errlist.c:1135
+#: sysdeps/gnu/errlist.c:1148
msgid "Level 3 halted"
msgstr "Niveau 3 en halte"
-#: sysdeps/gnu/errlist.c:1143
+#: sysdeps/gnu/errlist.c:1156
msgid "Level 3 reset"
msgstr "Niveau 3 réinitialisé"
-#: sysdeps/gnu/errlist.c:1151
+#: sysdeps/gnu/errlist.c:1164
msgid "Link number out of range"
msgstr "Numéro du lien hors intervalle"
-#: sysdeps/gnu/errlist.c:1159
+#: sysdeps/gnu/errlist.c:1172
msgid "Protocol driver not attached"
msgstr "Pilote du protocole n'est pas attaché"
-#: sysdeps/gnu/errlist.c:1167
+#: sysdeps/gnu/errlist.c:1180
msgid "No CSI structure available"
msgstr "Aucune structure CSI disponible"
-#: sysdeps/gnu/errlist.c:1175
+#: sysdeps/gnu/errlist.c:1188
msgid "Level 2 halted"
msgstr "Niveau 2 en halte"
-#: sysdeps/gnu/errlist.c:1183
+#: sysdeps/gnu/errlist.c:1196
msgid "Invalid exchange"
msgstr "Échange invalide"
-#: sysdeps/gnu/errlist.c:1191
+#: sysdeps/gnu/errlist.c:1204
msgid "Invalid request descriptor"
msgstr "Descripteur de requête invalide"
-#: sysdeps/gnu/errlist.c:1199
+#: sysdeps/gnu/errlist.c:1212
msgid "Exchange full"
msgstr "L'échangeur est plein"
-#: sysdeps/gnu/errlist.c:1207
+#: sysdeps/gnu/errlist.c:1220
msgid "No anode"
msgstr "Aucune « anode » disponible"
-#: sysdeps/gnu/errlist.c:1215
+#: sysdeps/gnu/errlist.c:1228
msgid "Invalid request code"
msgstr "Code de requête invalide"
-#: sysdeps/gnu/errlist.c:1223
+#: sysdeps/gnu/errlist.c:1236
msgid "Invalid slot"
msgstr "Dalot invalide"
-#: sysdeps/gnu/errlist.c:1231
+#: sysdeps/gnu/errlist.c:1244
msgid "File locking deadlock error"
msgstr "Erreur de verrou bloquant l'accès au fichier"
-#: sysdeps/gnu/errlist.c:1239
+#: sysdeps/gnu/errlist.c:1252
msgid "Bad font file format"
msgstr "Mauvais format du fichier de fontes"
-#: sysdeps/gnu/errlist.c:1247
+#: sysdeps/gnu/errlist.c:1260
msgid "Machine is not on the network"
msgstr "La machine cible n'est pas sur le réseau"
-#: sysdeps/gnu/errlist.c:1255
+#: sysdeps/gnu/errlist.c:1268
msgid "Package not installed"
msgstr "Le paquetage n'est pas installé"
-#: sysdeps/gnu/errlist.c:1263
+#: sysdeps/gnu/errlist.c:1276
msgid "Advertise error"
msgstr "Erreur d'annonce"
-#: sysdeps/gnu/errlist.c:1271
+#: sysdeps/gnu/errlist.c:1284
msgid "Srmount error"
msgstr "Erreur srmount()"
-#: sysdeps/gnu/errlist.c:1279
+#: sysdeps/gnu/errlist.c:1292
msgid "Communication error on send"
msgstr "Erreur de communication lors de la transmission"
-#: sysdeps/gnu/errlist.c:1287
+#: sysdeps/gnu/errlist.c:1300
msgid "RFS specific error"
msgstr "Erreur spécifique à « RFS »"
-#: sysdeps/gnu/errlist.c:1295
+#: sysdeps/gnu/errlist.c:1308
msgid "Name not unique on network"
msgstr "Le nom n'est pas unique sur le réseau"
-#: sysdeps/gnu/errlist.c:1303
+#: sysdeps/gnu/errlist.c:1316
msgid "File descriptor in bad state"
msgstr "Le descripteur du fichier est dans un mauvais état"
-#: sysdeps/gnu/errlist.c:1311
+#: sysdeps/gnu/errlist.c:1324
msgid "Remote address changed"
msgstr "L'adresse de l'hôte cible a été modifiée"
-#: sysdeps/gnu/errlist.c:1319
+#: sysdeps/gnu/errlist.c:1332
msgid "Can not access a needed shared library"
msgstr "Ne peut accéder à la librairie partagée demandée"
-#: sysdeps/gnu/errlist.c:1327
+#: sysdeps/gnu/errlist.c:1340
msgid "Accessing a corrupted shared library"
msgstr "Accès d'une librairie partagée qui est corrompue"
-#: sysdeps/gnu/errlist.c:1335
+#: sysdeps/gnu/errlist.c:1348
msgid ".lib section in a.out corrupted"
msgstr "La section .lib dans a.out est corrompue"
-#: sysdeps/gnu/errlist.c:1343
+#: sysdeps/gnu/errlist.c:1356
msgid "Attempting to link in too many shared libraries"
msgstr "Tentative d'édition de liens à partir de trop de librairies partagées"
-#: sysdeps/gnu/errlist.c:1351
+#: sysdeps/gnu/errlist.c:1364
msgid "Cannot exec a shared library directly"
msgstr "Ne peut exécuter une librairie partagée directement"
-#: sysdeps/gnu/errlist.c:1359
+#: sysdeps/gnu/errlist.c:1372
msgid "Streams pipe error"
msgstr "Erreur de relais de type streams"
-#: sysdeps/gnu/errlist.c:1367
+#: sysdeps/gnu/errlist.c:1380
msgid "Structure needs cleaning"
msgstr "La structure a besoin d'un nettoyage"
-#: sysdeps/gnu/errlist.c:1375
+#: sysdeps/gnu/errlist.c:1388
msgid "Not a XENIX named type file"
msgstr "Aucun fichier de type « XENIX named »"
-#: sysdeps/gnu/errlist.c:1383
+#: sysdeps/gnu/errlist.c:1396
msgid "No XENIX semaphores available"
msgstr "Aucun sémaphore XENIX disponible"
-#: sysdeps/gnu/errlist.c:1391
+#: sysdeps/gnu/errlist.c:1404
msgid "Is a named type file"
msgstr "est un type de fichier nommé (named)"
-#: sysdeps/gnu/errlist.c:1399
+#: sysdeps/gnu/errlist.c:1412
msgid "Remote I/O error"
msgstr "Erreur d'entrée/sortie sur l'hôte cible"
-#: sysdeps/gnu/errlist.c:1407
+#: sysdeps/gnu/errlist.c:1420
msgid "No medium found"
msgstr "Aucun médium trouvé"
-#: sysdeps/gnu/errlist.c:1415
+#: sysdeps/gnu/errlist.c:1428
msgid "Wrong medium type"
msgstr "Mauvais type de médium"
-#: sysdeps/gnu/errlist.c:1423
+#: sysdeps/gnu/errlist.c:1436
msgid "Required key not available"
msgstr "Clé requise non disponible"
-#: sysdeps/gnu/errlist.c:1431
+#: sysdeps/gnu/errlist.c:1444
msgid "Key has expired"
msgstr "Expiration de la clé"
-#: sysdeps/gnu/errlist.c:1439
+#: sysdeps/gnu/errlist.c:1452
msgid "Key has been revoked"
msgstr "La clé a été révoquée"
-#: sysdeps/gnu/errlist.c:1447
+#: sysdeps/gnu/errlist.c:1460
msgid "Key was rejected by service"
msgstr "La clé a été rejetée par le service"
-#: sysdeps/gnu/errlist.c:1455
+#: sysdeps/gnu/errlist.c:1468
msgid "Operation not possible due to RF-kill"
msgstr "Opération impossible du fait de RF-kill"
-#: sysdeps/gnu/errlist.c:1463
+#: sysdeps/gnu/errlist.c:1476
msgid "Memory page has hardware error"
msgstr "La page mémoire a une erreur matériel"
@@ -6781,27 +6793,39 @@ msgstr ""
msgid "can't disable CET"
msgstr ""
-#: timezone/zdump.c:338
+#: timezone/zdump.c:332
msgid "has fewer than 3 characters"
msgstr "a moins de 3 caractères"
-#: timezone/zdump.c:340
+#: timezone/zdump.c:334
msgid "has more than 6 characters"
msgstr "a plus de 6 caractères"
-#: timezone/zdump.c:342
+#: timezone/zdump.c:336
msgid "has characters other than ASCII alphanumerics, '-' or '+'"
msgstr "a des caractères autres que de l'alphanumérique ASCII, '-' ou '+'"
-#: timezone/zdump.c:347
+#: timezone/zdump.c:341
#, c-format
msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n"
msgstr "%s : attention : zone \"%s\" abréviation \"%s\" %s\n"
-#: timezone/zdump.c:393
-#, c-format
+#: timezone/zdump.c:387
+#, fuzzy, c-format
+#| msgid ""
+#| "%s: usage: %s OPTIONS ZONENAME ...\n"
+#| "Options include:\n"
+#| " -c [L,]U Start at year L (default -500), end before year U (default 2500)\n"
+#| " -t [L,]U Start at time L, end before time U (in seconds since 1970)\n"
+#| " -i List transitions briefly (format is experimental)\n"
+#| " -v List transitions verbosely\n"
+#| " -V List transitions a bit less verbosely\n"
+#| " --help Output this help\n"
+#| " --version Output version info\n"
+#| "\n"
+#| "Report bugs to %s.\n"
msgid ""
-"%s: usage: %s OPTIONS ZONENAME ...\n"
+"%s: usage: %s OPTIONS TIMEZONE ...\n"
"Options include:\n"
" -c [L,]U Start at year L (default -500), end before year U (default 2500)\n"
" -t [L,]U Start at time L, end before time U (in seconds since 1970)\n"
@@ -6825,50 +6849,62 @@ msgstr ""
"\n"
"Déclarer les bugs à %s.\n"
-#: timezone/zdump.c:479
+#: timezone/zdump.c:473
#, c-format
msgid "%s: wild -c argument %s\n"
msgstr "%s : argument -c intempestif %s\n"
-#: timezone/zdump.c:512
+#: timezone/zdump.c:506
#, c-format
msgid "%s: wild -t argument %s\n"
msgstr "%s : argument -t intempestif %s\n"
-#: timezone/zic.c:398
+#: timezone/zic.c:429
#, c-format
msgid "%s: Memory exhausted: %s\n"
msgstr "%s : mémoire épuisée : %s\n"
-#: timezone/zic.c:406
+#: timezone/zic.c:437
msgid "size overflow"
msgstr "Débordement de taille"
-#: timezone/zic.c:454
+#: timezone/zic.c:447
+#, fuzzy
+#| msgid "int overflow"
+msgid "alignment overflow"
+msgstr "Débordement d'entier"
+
+#: timezone/zic.c:495
msgid "integer overflow"
msgstr "Débordement d'entier "
-#: timezone/zic.c:488
+#: timezone/zic.c:529
#, c-format
msgid "\"%s\", line %<PRIdMAX>: "
msgstr "\"%s\", ligne %<PRIdMAX>: "
-#: timezone/zic.c:491
+#: timezone/zic.c:532
#, c-format
msgid " (rule from \"%s\", line %<PRIdMAX>)"
msgstr " (règle de \"%s\", ligne %<PRIdMAX>)"
-#: timezone/zic.c:510
+#: timezone/zic.c:551
#, c-format
msgid "warning: "
msgstr "AVERTISSEMENT : "
-#: timezone/zic.c:535
-#, c-format
+#: timezone/zic.c:576
+#, fuzzy, c-format
+#| msgid ""
+#| "%s: usage is %s [ --version ] [ --help ] [ -v ] \\\n"
+#| "\t[ -l localtime ] [ -p posixrules ] [ -d directory ] \\\n"
+#| "\t[ -L leapseconds ] [ filename ... ]\n"
+#| "\n"
+#| "Report bugs to %s.\n"
msgid ""
"%s: usage is %s [ --version ] [ --help ] [ -v ] \\\n"
"\t[ -l localtime ] [ -p posixrules ] [ -d directory ] \\\n"
-"\t[ -L leapseconds ] [ filename ... ]\n"
+"\t[ -t localtime-link ] [ -L leapseconds ] [ filename ... ]\n"
"\n"
"Report bugs to %s.\n"
msgstr ""
@@ -6878,393 +6914,426 @@ msgstr ""
"\n"
"Rapporter les bugs à %s.\n"
-#: timezone/zic.c:558
+#: timezone/zic.c:599
#, c-format
msgid "%s: Can't chdir to %s: %s\n"
msgstr "%s : ne peut faire chdir vers %s : %s\n"
-#: timezone/zic.c:590
+#: timezone/zic.c:632
msgid "wild compilation-time specification of zic_t"
msgstr "spécification approximative de zic_t au moment de la compilation"
-#: timezone/zic.c:610
+#: timezone/zic.c:652
#, c-format
msgid "%s: More than one -d option specified\n"
msgstr "%s : option -d spécifiée plus d'une fois\n"
-#: timezone/zic.c:620
+#: timezone/zic.c:662
#, c-format
msgid "%s: More than one -l option specified\n"
msgstr "%s : option -l spécifiée plus d'une fois\n"
-#: timezone/zic.c:630
+#: timezone/zic.c:672
#, c-format
msgid "%s: More than one -p option specified\n"
msgstr "%s : option -p spécifiée plus d'une fois\n"
-#: timezone/zic.c:640
+#: timezone/zic.c:680
+#, fuzzy, c-format
+#| msgid "%s: More than one -d option specified\n"
+msgid "%s: More than one -t option specified\n"
+msgstr "%s : option -d spécifiée plus d'une fois\n"
+
+#: timezone/zic.c:689
+msgid "-y is obsolescent"
+msgstr ""
+
+#: timezone/zic.c:693
#, c-format
msgid "%s: More than one -y option specified\n"
msgstr "%s : option -y spécifiée plus d'une fois\n"
-#: timezone/zic.c:650
+#: timezone/zic.c:703
#, c-format
msgid "%s: More than one -L option specified\n"
msgstr "%s : option -L spécifiée plus d'une fois\n"
-#: timezone/zic.c:659
+#: timezone/zic.c:712
msgid "-s ignored"
msgstr "-s ignoré"
-#: timezone/zic.c:698
+#: timezone/zic.c:753
msgid "link to link"
msgstr "lien à lien"
-#: timezone/zic.c:701 timezone/zic.c:705
+#: timezone/zic.c:756 timezone/zic.c:760
msgid "command line"
msgstr "ligne de commande"
-#: timezone/zic.c:721
+#: timezone/zic.c:776
msgid "empty file name"
msgstr "nom de fichier vide"
-#: timezone/zic.c:724
+#: timezone/zic.c:779
#, c-format
msgid "file name '%s' begins with '/'"
msgstr "nom de fichier '%s' commence par '/'"
-#: timezone/zic.c:734
+#: timezone/zic.c:789
#, c-format
msgid "file name '%s' contains '%.*s' component"
msgstr "nom de fichier '%s' contient '%.*s' composant"
-#: timezone/zic.c:740
+#: timezone/zic.c:795
#, c-format
msgid "file name '%s' component contains leading '-'"
msgstr "le composant nom de fichier '%s' contient des '-' au début"
-#: timezone/zic.c:743
+#: timezone/zic.c:798
#, c-format
msgid "file name '%s' contains overlength component '%.*s...'"
msgstr "nom de fichier '%s' contient un composant '%.*s...' trop long"
-#: timezone/zic.c:771
+#: timezone/zic.c:826
#, c-format
msgid "file name '%s' contains byte '%c'"
msgstr "nom de fichier '%s' contient '%c' bytes"
-#: timezone/zic.c:772
+#: timezone/zic.c:827
#, c-format
msgid "file name '%s' contains byte '\\%o'"
msgstr "nom de fichier '%s' contient '\\%o' byte"
-#: timezone/zic.c:842
+#: timezone/zic.c:897
#, c-format
msgid "%s: link from %s/%s failed: %s\n"
msgstr "%s: lien depuis %s/%s a échoué: %s\n"
-#: timezone/zic.c:852 timezone/zic.c:1815
+#: timezone/zic.c:907 timezone/zic.c:1876
#, c-format
msgid "%s: Can't remove %s/%s: %s\n"
msgstr "%s : ne peut enlever %s/%s: %s\n"
-#: timezone/zic.c:874
+#: timezone/zic.c:931
#, c-format
msgid "symbolic link used because hard link failed: %s"
msgstr "Le lien symbolique a été utilisé parce que le lien physique a échoué: %s"
-#: timezone/zic.c:882
+#: timezone/zic.c:939
#, c-format
msgid "%s: Can't read %s/%s: %s\n"
msgstr "%s : Ne peut lire %s/%s: %s\n"
-#: timezone/zic.c:889 timezone/zic.c:1828
+#: timezone/zic.c:946 timezone/zic.c:1889
#, c-format
msgid "%s: Can't create %s/%s: %s\n"
msgstr "%s : ne peut créer %s/%s : %s\n"
-#: timezone/zic.c:898
+#: timezone/zic.c:955
#, c-format
msgid "copy used because hard link failed: %s"
msgstr "la copie a été utilisée parce que le lien physique a échoué: %s"
-#: timezone/zic.c:901
+#: timezone/zic.c:958
#, c-format
msgid "copy used because symbolic link failed: %s"
msgstr "La copie a été utilisée parce que le lien symbolique a échoué: %s"
-#: timezone/zic.c:1013 timezone/zic.c:1015
+#: timezone/zic.c:1032 timezone/zic.c:1034
msgid "same rule name in multiple files"
msgstr "Même nom de règle dans plusieurs fichiers"
-#: timezone/zic.c:1056
-msgid "unruly zone"
-msgstr "Zone sans règle"
-
-#: timezone/zic.c:1063
+#: timezone/zic.c:1081
#, c-format
msgid "%s in ruleless zone"
msgstr "%s est dans une zone sans règle"
-#: timezone/zic.c:1083
+#: timezone/zic.c:1101
msgid "standard input"
msgstr "entrée standard"
-#: timezone/zic.c:1088
+#: timezone/zic.c:1106
#, c-format
msgid "%s: Can't open %s: %s\n"
msgstr "%s : ne peut ouvrir %s : %s\n"
-#: timezone/zic.c:1099
+#: timezone/zic.c:1117
msgid "line too long"
msgstr "Ligne trop longue"
-#: timezone/zic.c:1119
+#: timezone/zic.c:1139
msgid "input line of unknown type"
msgstr "Ligne d'entrée de type inconnu"
-#: timezone/zic.c:1134
-#, c-format
-msgid "%s: Leap line in non leap seconds file %s"
-msgstr "%s : ligne de type « Leap » dans un fichier de secondes non « Leap » %s"
-
-#: timezone/zic.c:1142 timezone/zic.c:1547 timezone/zic.c:1569
+#: timezone/zic.c:1158 timezone/zic.c:1593 timezone/zic.c:1615
#, c-format
msgid "%s: panic: Invalid l_value %d\n"
msgstr "%s : panique : valeur %d de type « l_value » invalide\n"
-#: timezone/zic.c:1151
+#: timezone/zic.c:1167
msgid "expected continuation line not found"
msgstr "ligne de continuation attendue, non repérée"
-#: timezone/zic.c:1193 timezone/zic.c:2976
+#: timezone/zic.c:1203
+#, fuzzy
+#| msgid "format '%s' not handled by pre-2015 versions of zic"
+msgid "fractional seconds rejected by pre-2018 versions of zic"
+msgstr "format '%s' non pris en charge par les versions de zic antérieures à 2015 "
+
+#: timezone/zic.c:1221 timezone/zic.c:3078
msgid "time overflow"
msgstr "Débordement du temps alloué"
-#: timezone/zic.c:1198
+#: timezone/zic.c:1227
msgid "values over 24 hours not handled by pre-2007 versions of zic"
msgstr "valeurs au-delà de 24 heures non prises en charge par les versions de zic antérieures à 2007"
-#: timezone/zic.c:1209
+#: timezone/zic.c:1245
+msgid "invalid saved time"
+msgstr "Temps sauvegardé invalide"
+
+#: timezone/zic.c:1256
msgid "wrong number of fields on Rule line"
msgstr "Mauvais nombre de champs sur la ligne de type « Rule »"
-#: timezone/zic.c:1213
-msgid "nameless rule"
-msgstr "Règle sans nom"
-
-#: timezone/zic.c:1218
-msgid "invalid saved time"
-msgstr "Temps sauvegardé invalide"
+#: timezone/zic.c:1265
+#, fuzzy, c-format
+#| msgid "Invalid numeric gid \"%s\"!"
+msgid "Invalid rule name \"%s\""
+msgstr "gid numérique invalide « %s » !"
-#: timezone/zic.c:1235
+#: timezone/zic.c:1287
msgid "wrong number of fields on Zone line"
msgstr "Mauvais nombre de champs sur la ligne de type « Zone »"
-#: timezone/zic.c:1240
+#: timezone/zic.c:1292
#, c-format
msgid "\"Zone %s\" line and -l option are mutually exclusive"
msgstr "La ligne \"Zone %s\" et l'option -l sont mutuellement exclusifs"
-#: timezone/zic.c:1246
+#: timezone/zic.c:1298
#, c-format
msgid "\"Zone %s\" line and -p option are mutually exclusive"
msgstr "La ligne « Zone %s » et l'option -p sont mutuellement exclusifs"
-#: timezone/zic.c:1253
+#: timezone/zic.c:1305
#, c-format
msgid "duplicate zone name %s (file \"%s\", line %<PRIdMAX>)"
msgstr "Double noms de zone %s (fichier \"%s\", ligne %<PRIdMAX>)"
-#: timezone/zic.c:1267
+#: timezone/zic.c:1319
msgid "wrong number of fields on Zone continuation line"
msgstr "Mauvais nombre de champs sur la ligne de type continuation de « Zone »"
-#: timezone/zic.c:1307
+#: timezone/zic.c:1359
msgid "invalid UT offset"
msgstr "décalage de l'UTC invalide"
-#: timezone/zic.c:1311
+#: timezone/zic.c:1363
msgid "invalid abbreviation format"
msgstr "Format d'abréviation invalide"
-#: timezone/zic.c:1320
+#: timezone/zic.c:1372
#, c-format
msgid "format '%s' not handled by pre-2015 versions of zic"
msgstr "format '%s' non pris en charge par les versions de zic antérieures à 2015 "
-#: timezone/zic.c:1347
+#: timezone/zic.c:1399
msgid "Zone continuation line end time is not after end time of previous line"
msgstr ""
"Temps final de la ligne de continuation du fuseau horaire est antérieur\n"
"au temps final de la ligne précédente"
-#: timezone/zic.c:1374
+#: timezone/zic.c:1426
msgid "wrong number of fields on Leap line"
msgstr "Mauvais nombre de champs sur la ligne de type « Leap »"
-#: timezone/zic.c:1383
+#: timezone/zic.c:1435
msgid "invalid leaping year"
msgstr "Année bissextile invalide"
-#: timezone/zic.c:1403 timezone/zic.c:1501
+#: timezone/zic.c:1455 timezone/zic.c:1547
msgid "invalid month name"
msgstr "Nom de mois invalide"
-#: timezone/zic.c:1416 timezone/zic.c:1614 timezone/zic.c:1628
+#: timezone/zic.c:1468 timezone/zic.c:1663 timezone/zic.c:1677
msgid "invalid day of month"
msgstr "Jour du mois invalide"
-#: timezone/zic.c:1421
+#: timezone/zic.c:1473
msgid "time too small"
msgstr "valeur de temps trop petite"
-#: timezone/zic.c:1425
+#: timezone/zic.c:1477
msgid "time too large"
msgstr "valeur de temps trop grande"
-#: timezone/zic.c:1429 timezone/zic.c:1530
+#: timezone/zic.c:1481 timezone/zic.c:1576
msgid "invalid time of day"
msgstr "Heure du jour invalide"
-#: timezone/zic.c:1448
+#: timezone/zic.c:1494
msgid "illegal CORRECTION field on Leap line"
msgstr "champ CORRECTION non permis dans la ligne de type « Leap »"
-#: timezone/zic.c:1453
+#: timezone/zic.c:1499
msgid "illegal Rolling/Stationary field on Leap line"
msgstr "Champ « Rolling/Stationary » non permis sur la ligne de type « Leap »"
-#: timezone/zic.c:1459
-msgid "leap second precedes Big Bang"
+#: timezone/zic.c:1505
+#, fuzzy
+#| msgid "leap second precedes Big Bang"
+msgid "leap second precedes Epoch"
msgstr "La seconde de saut précède le Big Bang"
-#: timezone/zic.c:1472
+#: timezone/zic.c:1518
msgid "wrong number of fields on Link line"
msgstr "Mauvais nombre de champs sur la ligne de type « Link »"
-#: timezone/zic.c:1476
+#: timezone/zic.c:1522
msgid "blank FROM field on Link line"
msgstr "Champ « FROM » vide dans la ligne de type « Link »"
-#: timezone/zic.c:1551
+#: timezone/zic.c:1597
msgid "invalid starting year"
msgstr "Année initiale invalide"
-#: timezone/zic.c:1573
+#: timezone/zic.c:1619
msgid "invalid ending year"
msgstr "Année finale invalide"
-#: timezone/zic.c:1577
+#: timezone/zic.c:1623
msgid "starting year greater than ending year"
msgstr "année initiale plus grande que l'année finale"
-#: timezone/zic.c:1584
+#: timezone/zic.c:1630
msgid "typed single year"
msgstr "une seule année fournie"
-#: timezone/zic.c:1619
+#: timezone/zic.c:1633
+#, c-format
+msgid "year type \"%s\" is obsolete; use \"-\" instead"
+msgstr ""
+
+#: timezone/zic.c:1668
msgid "invalid weekday name"
msgstr "Nom du jour de semaine invalide"
-#: timezone/zic.c:1743
+#: timezone/zic.c:1800
#, c-format
msgid "reference clients mishandle more than %d transition times"
msgstr "les clients de référence gère mal plus que %d heures de transition"
-#: timezone/zic.c:1747
+#: timezone/zic.c:1804
msgid "pre-2014 clients may mishandle more than 1200 transition times"
msgstr "les clients pre-2014 peuvent mal gérer plus de 1200 heures de transition"
-#: timezone/zic.c:1858
+#: timezone/zic.c:1920
msgid "too many transition times"
msgstr "trop d'heures de transition"
-#: timezone/zic.c:2047
-#, c-format
-msgid "%%z UTC offset magnitude exceeds 99:59:59"
+#: timezone/zic.c:2107
+#, fuzzy, c-format
+#| msgid "%%z UTC offset magnitude exceeds 99:59:59"
+msgid "%%z UT offset magnitude exceeds 99:59:59"
msgstr "%% l'ampleur du décalage UTC excède 99:59:59"
-#: timezone/zic.c:2424
+#: timezone/zic.c:2488
msgid "no POSIX environment variable for zone"
msgstr "pas de variable d'environnement POSIX pour zone"
-#: timezone/zic.c:2430
+#: timezone/zic.c:2494
#, c-format
msgid "%s: pre-%d clients may mishandle distant timestamps"
msgstr "%s: pre-%d clients peuvent mal gérer les timestamps distant"
-#: timezone/zic.c:2566
+#: timezone/zic.c:2631
msgid "two rules for same instant"
msgstr "deux règlesau même instant"
-#: timezone/zic.c:2627
+#: timezone/zic.c:2696
msgid "can't determine time zone abbreviation to use just after until time"
msgstr ""
"Ne peut déterminer l'abréviation du fuseau horaire à utiliser\n"
"juste après telle date"
-#: timezone/zic.c:2725
+#: timezone/zic.c:2785
msgid "too many local time types"
msgstr "trop de types localisés pour la représentation du temps"
-#: timezone/zic.c:2729
+#: timezone/zic.c:2789
msgid "UT offset out of range"
msgstr "décalage de l'UTC en dehors de la plage"
-#: timezone/zic.c:2753
+#: timezone/zic.c:2813
msgid "too many leap seconds"
msgstr "trop de délai en secondes"
-#: timezone/zic.c:2759
-msgid "repeated leap second moment"
-msgstr "Répétition du délai une seconde fois"
+#: timezone/zic.c:2844
+msgid "Leap seconds too close together"
+msgstr ""
-#: timezone/zic.c:2830
+#: timezone/zic.c:2891
msgid "Wild result from command execution"
msgstr "Résultat anarchique résultant de l'exécution de la commande"
-#: timezone/zic.c:2831
+#: timezone/zic.c:2892
#, c-format
msgid "%s: command was '%s', result was %d\n"
msgstr "%s : la commande était « %s », le résultat était %d\n"
-#: timezone/zic.c:2961
+#: timezone/zic.c:2998
+#, c-format
+msgid "\"%s\" is undocumented; use \"last%s\" instead"
+msgstr ""
+
+#: timezone/zic.c:3029
+#, c-format
+msgid "\"%s\" is ambiguous in pre-2017c zic"
+msgstr ""
+
+#: timezone/zic.c:3063
msgid "Odd number of quotation marks"
msgstr "Nombre impair de caractères apostrophe"
-#: timezone/zic.c:3046
+#: timezone/zic.c:3157
msgid "use of 2/29 in non leap-year"
msgstr "Utiliser 2/29 pour les années non-bissextiles"
-#: timezone/zic.c:3081
+#: timezone/zic.c:3192
msgid "rule goes past start/end of month; will not work with pre-2004 versions of zic"
msgstr "la règle en dehors de début/fin du mois--ne fonctionnera pas avec les versions de zic antérieures à 2004"
-#: timezone/zic.c:3108
+#: timezone/zic.c:3219
msgid "time zone abbreviation has fewer than 3 characters"
msgstr "l'abréviation du nom de fuseau horaire a moins de 3 caractères"
-#: timezone/zic.c:3110
+#: timezone/zic.c:3221
msgid "time zone abbreviation has too many characters"
msgstr "l'abréviation du nom de fuseau horaire a trop de caractères"
-#: timezone/zic.c:3112
+#: timezone/zic.c:3223
msgid "time zone abbreviation differs from POSIX standard"
msgstr "l'abréviation du nom de fuseau horaire diffère du standard POSIX"
-#: timezone/zic.c:3118
+#: timezone/zic.c:3229
msgid "too many, or too long, time zone abbreviations"
msgstr "trop ou de trop longues abréviations de fuseaux horaires"
-#: timezone/zic.c:3161
+#: timezone/zic.c:3275
#, c-format
msgid "%s: Can't create directory %s: %s"
msgstr "%s : ne peut créer le dossier %s : %s"
+#~ msgid "cannot open zero fill device"
+#~ msgstr "ne peut ouvrir le fichier de périphérique rempli de zéros"
+
#~ msgid "invalid caller"
#~ msgstr "appelant invalide"
+#~ msgid "relocation error"
+#~ msgstr "erreur de réaffectation"
+
#~ msgid "Character out of range for UTF-8"
#~ msgstr "Caractère en dehors de la plage pour UTF-8"
@@ -7274,6 +7343,15 @@ msgstr "%s : ne peut créer le dossier %s : %s"
#~ msgid "non-symbolic character value should not be used"
#~ msgstr "Une valeur de caractère non-symbolique ne doit pas être utilisée"
+#~ msgid "Cannot set LC_CTYPE to default locale"
+#~ msgstr "Ne peut initialiser LC_TYPE à la locale par défaut"
+
+#~ msgid "Cannot set LC_MESSAGES to default locale"
+#~ msgstr "Ne peut initialiser LC_MESSAGES à la locale par défaut"
+
+#~ msgid "Cannot set LC_COLLATE to default locale"
+#~ msgstr "Ne peut initialiser LC_COLLATE à la locale par défaut"
+
#~ msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode"
#~ msgstr "ne peut lire /proc/self/cmdline : %s; désactive le mode paranoïa"
@@ -7286,6 +7364,18 @@ msgstr "%s : ne peut créer le dossier %s : %s"
#~ msgid "This implementation doesn't support newstyle or MT-safe code!\n"
#~ msgstr "Cette implantation ne supporte pas le nouveau style ou le code MT-safe !\n"
+#~ msgid "unruly zone"
+#~ msgstr "Zone sans règle"
+
+#~ msgid "%s: Leap line in non leap seconds file %s"
+#~ msgstr "%s : ligne de type « Leap » dans un fichier de secondes non « Leap » %s"
+
+#~ msgid "nameless rule"
+#~ msgstr "Règle sans nom"
+
+#~ msgid "repeated leap second moment"
+#~ msgstr "Répétition du délai une seconde fois"
+
#~ msgid "cannot set socket to close on exec: %s; disabling paranoia mode"
#~ msgstr "ne peut établir le socket comme étant fermé dans exec : %s; désactive le mode paranoïa"
@@ -7310,9 +7400,6 @@ msgstr "%s : ne peut créer le dossier %s : %s"
#~ "\n"
#~ "Rapporter les bugs à %s.\n"
-#~ msgid "int overflow"
-#~ msgstr "Débordement d'entier"
-
#~ msgid "hard link failed, symbolic link used"
#~ msgstr "Échec de création du lien direct, création d'un lien symbolique"
diff --git a/po/gl.po b/po/gl.po
index b0ea82faf8..4c0afce0c3 100644
--- a/po/gl.po
+++ b/po/gl.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: libc 2.3.2\n"
-"POT-Creation-Date: 2018-07-26 22:19-0400\n"
+"POT-Creation-Date: 2019-07-18 13:28-0400\n"
"PO-Revision-Date: 2003-03-03 20:13+0100\n"
"Last-Translator: Jacobo Tarrio <jtarrio@trasno.net>\n"
"Language-Team: Galician <gpul-traduccion@ceu.fi.udc.es>\n"
@@ -145,10 +145,10 @@ msgstr ""
"[FICHEIRO-SAÃDA [FICHEIRO-ENTRADA]...]"
#: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:308
-#: elf/pldd.c:252 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
-#: iconv/iconvconfig.c:379 locale/programs/locale.c:275
-#: locale/programs/localedef.c:427 login/programs/pt_chown.c:89
-#: malloc/memusagestat.c:563 nss/getent.c:933 nss/makedb.c:369
+#: elf/pldd.c:247 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
+#: iconv/iconvconfig.c:379 locale/programs/locale.c:276
+#: locale/programs/localedef.c:437 login/programs/pt_chown.c:89
+#: malloc/memusagestat.c:563 nss/getent.c:953 nss/makedb.c:369
#: posix/getconf.c:503 sysdeps/unix/sysv/linux/lddlibc4.c:61
#, c-format
msgid ""
@@ -157,11 +157,11 @@ msgid ""
msgstr ""
#: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64
-#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75
+#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:263 elf/sotruss.sh:75
#: elf/sprof.c:389 iconv/iconv_prog.c:422 iconv/iconvconfig.c:396
-#: locale/programs/locale.c:292 locale/programs/localedef.c:453
+#: locale/programs/locale.c:293 locale/programs/localedef.c:463
#: login/programs/pt_chown.c:63 malloc/memusage.sh:71
-#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:87 nss/makedb.c:385
+#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:88 nss/makedb.c:385
#: posix/getconf.c:485 sysdeps/unix/sysv/linux/lddlibc4.c:68
#, c-format
msgid ""
@@ -174,10 +174,10 @@ msgstr ""
"garantía; nin sequera de COMERCIABILIDADE ou APTITUDE PARA UN FIN DETERMINADO.\n"
#: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68
-#: elf/ldconfig.c:329 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:427
-#: iconv/iconvconfig.c:401 locale/programs/locale.c:297
-#: locale/programs/localedef.c:458 malloc/memusage.sh:75
-#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:92 nss/makedb.c:390
+#: elf/ldconfig.c:329 elf/pldd.c:268 elf/sprof.c:395 iconv/iconv_prog.c:427
+#: iconv/iconvconfig.c:401 locale/programs/locale.c:298
+#: locale/programs/localedef.c:468 malloc/memusage.sh:75
+#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:93 nss/makedb.c:390
#: posix/getconf.c:490
#, c-format
msgid "Written by %s.\n"
@@ -248,21 +248,21 @@ msgstr "non se pode abri-lo ficheiro de saída `%s'"
msgid "invalid escape sequence"
msgstr "secuencia de escape non válida"
-#: catgets/gencat.c:1209
+#: catgets/gencat.c:1211
msgid "unterminated message"
msgstr "mensaxe non rematada"
-#: catgets/gencat.c:1233
+#: catgets/gencat.c:1235
#, c-format
msgid "while opening old catalog file"
msgstr "ao abrir un antigo ficheiro de catálogo"
-#: catgets/gencat.c:1324
+#: catgets/gencat.c:1326
#, c-format
msgid "conversion modules not available"
msgstr "os módulos de conversión non están dispoñibles"
-#: catgets/gencat.c:1350
+#: catgets/gencat.c:1352
#, c-format
msgid "cannot determine escape character"
msgstr "non se pode determina-lo carácter de escape"
@@ -397,7 +397,7 @@ msgstr "Sistema operativo descoñecido"
msgid ", OS ABI: %s %d.%d.%d"
msgstr ", OS ABI: %s %d.%d.%d"
-#: elf/cache.c:163 elf/ldconfig.c:1332
+#: elf/cache.c:163 elf/ldconfig.c:1333
#, c-format
msgid "Can't open cache file %s\n"
msgstr "Non se puido abri-lo ficheiro de caché %s\n"
@@ -407,38 +407,38 @@ msgstr "Non se puido abri-lo ficheiro de caché %s\n"
msgid "mmap of cache file failed.\n"
msgstr "fallou a chamada a mmap sobre o ficheiro de caché.\n"
-#: elf/cache.c:181 elf/cache.c:195
+#: elf/cache.c:181 elf/cache.c:195 elf/cache.c:205
#, c-format
msgid "File is not a cache file.\n"
msgstr "O ficheiro non é un ficheiro caché.\n"
-#: elf/cache.c:228 elf/cache.c:238
+#: elf/cache.c:233 elf/cache.c:243
#, c-format
msgid "%d libs found in cache `%s'\n"
msgstr "%d bibliotecas atopadas na caché `%s'\n"
-#: elf/cache.c:432
+#: elf/cache.c:437
#, c-format
msgid "Can't create temporary cache file %s"
msgstr "Non se puido crea-lo ficheiro temporal de caché %s"
-#: elf/cache.c:440 elf/cache.c:450 elf/cache.c:454 elf/cache.c:458
-#: elf/cache.c:468
+#: elf/cache.c:445 elf/cache.c:455 elf/cache.c:459 elf/cache.c:463
+#: elf/cache.c:473
#, c-format
msgid "Writing of cache data failed"
msgstr "A escritura dos datos da caché fallou"
-#: elf/cache.c:463
+#: elf/cache.c:468
#, c-format
msgid "Changing access rights of %s to %#o failed"
msgstr "O cambio dos dereitos de acceso de %s a %#o fallou"
-#: elf/cache.c:472
+#: elf/cache.c:477
#, c-format
msgid "Renaming of %s to %s failed"
msgstr "Fallou o renomeado de %s a %s"
-#: elf/dl-close.c:399 elf/dl-open.c:420
+#: elf/dl-close.c:399 elf/dl-open.c:424
msgid "cannot create scope list"
msgstr "non se pode crea-la lista de alcance"
@@ -525,127 +525,129 @@ msgstr "non se pode crea-lo vector de rutas de busca"
msgid "cannot stat shared object"
msgstr "non se puido facer stat sobre o obxecto compartido"
-#: elf/dl-load.c:960
-msgid "cannot open zero fill device"
-msgstr "non se pode abrir un dispositivo de recheo de ceros"
-
-#: elf/dl-load.c:1007 elf/dl-load.c:2203
+#: elf/dl-load.c:992 elf/dl-load.c:2198
msgid "cannot create shared object descriptor"
msgstr "non se pode crear un descriptor de obxecto compartido"
-#: elf/dl-load.c:1026 elf/dl-load.c:1560 elf/dl-load.c:1673
+#: elf/dl-load.c:1011 elf/dl-load.c:1555 elf/dl-load.c:1668
msgid "cannot read file data"
msgstr "non se pode le-los datos do ficheiro"
-#: elf/dl-load.c:1072
+#: elf/dl-load.c:1057
msgid "ELF load command alignment not page-aligned"
msgstr "O comando de carga ELF non está aliñado coa páxina"
-#: elf/dl-load.c:1079
+#: elf/dl-load.c:1064
msgid "ELF load command address/offset not properly aligned"
msgstr "O enderezo/desprazamento do comando de carga ELF non está ben aliñado"
-#: elf/dl-load.c:1161
+#: elf/dl-load.c:1146
#, fuzzy
#| msgid "cannot restore segment prot after reloc"
msgid "cannot process note segment"
msgstr "non se pode restaura-la protección do segmento despois de movelo"
-#: elf/dl-load.c:1172
+#: elf/dl-load.c:1157
#, fuzzy
#| msgid "object file has no dynamic section"
msgid "object file has no loadable segments"
msgstr "o ficheiro obxecto non ten unha sección dinámica"
-#: elf/dl-load.c:1181 elf/dl-load.c:1652
+#: elf/dl-load.c:1170 elf/dl-load.c:1647
msgid "cannot dynamically load executable"
msgstr "non se pode cargar dinamicamente o executable"
-#: elf/dl-load.c:1202
+#: elf/dl-load.c:1191
msgid "object file has no dynamic section"
msgstr "o ficheiro obxecto non ten unha sección dinámica"
-#: elf/dl-load.c:1225
+#: elf/dl-load.c:1218
+#, fuzzy
+#| msgid "cannot dynamically load executable"
+msgid "cannot dynamically load position-independent executable"
+msgstr "non se pode cargar dinamicamente o executable"
+
+#: elf/dl-load.c:1220
msgid "shared object cannot be dlopen()ed"
msgstr "non se pode facer dlopen() sobre o obxecto compartido"
-#: elf/dl-load.c:1238
+#: elf/dl-load.c:1233
msgid "cannot allocate memory for program header"
msgstr "Non se pode reservar memoria para a cabeceira do programa"
-#: elf/dl-load.c:1271 elf/dl-load.h:130
+#: elf/dl-load.c:1266 elf/dl-load.h:130
msgid "cannot change memory protections"
msgstr "non se poden cambia-las proteccións de memoria"
-#: elf/dl-load.c:1291
+#: elf/dl-load.c:1286
#, fuzzy
#| msgid "cannot create shared object descriptor"
msgid "cannot enable executable stack as shared object requires"
msgstr "non se pode crear un descriptor de obxecto compartido"
-#: elf/dl-load.c:1304
+#: elf/dl-load.c:1299
#, fuzzy
#| msgid "cannot create internal descriptor"
msgid "cannot close file descriptor"
msgstr "non se pode crear un descriptor interno"
-#: elf/dl-load.c:1560
+#: elf/dl-load.c:1555
msgid "file too short"
msgstr "ficheiro pequeno de máis"
-#: elf/dl-load.c:1595
+#: elf/dl-load.c:1590
msgid "invalid ELF header"
msgstr "cabeceira ELF non válida"
-#: elf/dl-load.c:1607
+#: elf/dl-load.c:1602
msgid "ELF file data encoding not big-endian"
msgstr "A codificación dos datos do ficheiro ELF non é \"big-endian\""
-#: elf/dl-load.c:1609
+#: elf/dl-load.c:1604
msgid "ELF file data encoding not little-endian"
msgstr "A codificación dos datos do ficheiro ELF non é \"little-endian\""
-#: elf/dl-load.c:1613
+#: elf/dl-load.c:1608
msgid "ELF file version ident does not match current one"
msgstr "O identificador da versión do ficheiro ELF non coincide co actual"
-#: elf/dl-load.c:1617
+#: elf/dl-load.c:1612
msgid "ELF file OS ABI invalid"
msgstr "ABI do SO do ficheiro ELF non válida"
-#: elf/dl-load.c:1620
+#: elf/dl-load.c:1615
msgid "ELF file ABI version invalid"
msgstr "Versión do ABI do ficheiro ELF non válida"
-#: elf/dl-load.c:1623
+#: elf/dl-load.c:1618
msgid "nonzero padding in e_ident"
msgstr ""
-#: elf/dl-load.c:1626
+#: elf/dl-load.c:1621
msgid "internal error"
msgstr "erro interno"
-#: elf/dl-load.c:1633
+#: elf/dl-load.c:1628
msgid "ELF file version does not match current one"
msgstr "A versión do ficheiro ELF non coincide coa actual"
-#: elf/dl-load.c:1641
+#: elf/dl-load.c:1636
msgid "only ET_DYN and ET_EXEC can be loaded"
msgstr "só se pode cargar ET_DYN e ET_EXEC"
-#: elf/dl-load.c:1657
+#: elf/dl-load.c:1652
msgid "ELF file's phentsize not the expected size"
msgstr "O phentsize do ficheiro ELF non é o tamaño esperado"
-#: elf/dl-load.c:2222
+#: elf/dl-load.c:2217
msgid "wrong ELF class: ELFCLASS64"
msgstr ""
-#: elf/dl-load.c:2223
+#: elf/dl-load.c:2218
msgid "wrong ELF class: ELFCLASS32"
msgstr ""
-#: elf/dl-load.c:2226
+#: elf/dl-load.c:2221
msgid "cannot open shared object file"
msgstr "non se pode abrir un ficheiro de obxecto compartido"
@@ -657,11 +659,7 @@ msgstr "non se puido mapear un segmento dun obxecto compartido"
msgid "cannot map zero-fill pages"
msgstr "non se poden mapear páxinas de recheo de ceros"
-#: elf/dl-lookup.c:835
-msgid "relocation error"
-msgstr "erro de cambio de reserva"
-
-#: elf/dl-lookup.c:858
+#: elf/dl-lookup.c:830
msgid "symbol lookup error"
msgstr ""
@@ -669,21 +667,21 @@ msgstr ""
msgid "cannot extend global scope"
msgstr "non se pode extende-lo alcance global"
-#: elf/dl-open.c:470
+#: elf/dl-open.c:474
#, fuzzy
#| msgid "TLS generation counter wrapped! Please send report with the 'glibcbug' script."
msgid "TLS generation counter wrapped! Please report this."
msgstr "O xerador de TLS deu unha volta completa. Informe co script 'glibcbug'."
-#: elf/dl-open.c:534
+#: elf/dl-open.c:538
msgid "invalid mode for dlopen()"
msgstr "modo incorrecto para dlopen()"
-#: elf/dl-open.c:551
+#: elf/dl-open.c:555
msgid "no more namespaces available for dlmopen()"
msgstr ""
-#: elf/dl-open.c:575
+#: elf/dl-open.c:579
#, fuzzy
#| msgid "invalid mode for dlopen()"
msgid "invalid target namespace in dlmopen()"
@@ -695,20 +693,20 @@ msgstr "modo incorrecto para dlopen()"
msgid "cannot allocate memory in static TLS block"
msgstr "Non se pode reservar memoria"
-#: elf/dl-reloc.c:205
+#: elf/dl-reloc.c:213
msgid "cannot make segment writable for relocation"
msgstr "non se pode face-lo segmento gravable para o movemento"
-#: elf/dl-reloc.c:276
+#: elf/dl-reloc.c:272
#, c-format
msgid "%s: out of memory to store relocation results for %s\n"
msgstr ""
-#: elf/dl-reloc.c:292
+#: elf/dl-reloc.c:288
msgid "cannot restore segment prot after reloc"
msgstr "non se pode restaura-la protección do segmento despois de movelo"
-#: elf/dl-reloc.c:323
+#: elf/dl-reloc.c:319
#, fuzzy
#| msgid "cannot change memory protections"
msgid "cannot apply additional memory protection after relocation"
@@ -933,23 +931,23 @@ msgstr ""
msgid "memory exhausted"
msgstr "memoria esgotada"
-#: elf/ldconfig.c:1233
+#: elf/ldconfig.c:1234
#, fuzzy, c-format
#| msgid "cannot read locale directory `%s'"
msgid "%s:%u: cannot read directory %s"
msgstr "non se pode le-lo directorio de locales `%s'"
-#: elf/ldconfig.c:1281
+#: elf/ldconfig.c:1282
#, c-format
msgid "relative path `%s' used to build cache"
msgstr ""
-#: elf/ldconfig.c:1311
+#: elf/ldconfig.c:1312
#, c-format
msgid "Can't chdir to /"
msgstr "Non se pode cambiar ao directorio /"
-#: elf/ldconfig.c:1352
+#: elf/ldconfig.c:1353
#, c-format
msgid "Can't open cache file directory %s\n"
msgstr "Non se puido abri-lo directorio de ficheiros caché %s\n"
@@ -1024,109 +1022,115 @@ msgstr ""
msgid "error: you do not have read permission for"
msgstr ""
-#: elf/pldd-xx.c:105
+#: elf/pldd-xx.c:102
#, fuzzy, c-format
#| msgid "cannot read header from `%s'"
msgid "cannot find program header of process"
msgstr "non se pode le-la cabeceira de `%s'"
-#: elf/pldd-xx.c:110
+#: elf/pldd-xx.c:106
#, fuzzy, c-format
#| msgid "cannot read header"
msgid "cannot read program header"
msgstr "non se pode le-la cabeceira"
-#: elf/pldd-xx.c:135
+#: elf/pldd-xx.c:128
#, fuzzy, c-format
#| msgid "object file has no dynamic section"
msgid "cannot read dynamic section"
msgstr "o ficheiro obxecto non ten unha sección dinámica"
-#: elf/pldd-xx.c:147
+#: elf/pldd-xx.c:137
#, fuzzy, c-format
#| msgid "cannot read header"
msgid "cannot read r_debug"
msgstr "non se pode le-la cabeceira"
-#: elf/pldd-xx.c:167
+#: elf/pldd-xx.c:154
#, fuzzy, c-format
#| msgid "cannot read archive header"
msgid "cannot read program interpreter"
msgstr "non se pode le-la cabeceira do arquivo"
-#: elf/pldd-xx.c:197
+#: elf/pldd-xx.c:183
#, fuzzy, c-format
#| msgid "cannot read file data"
msgid "cannot read link map"
msgstr "non se pode le-los datos do ficheiro"
-#: elf/pldd-xx.c:209
+#: elf/pldd-xx.c:190
#, fuzzy, c-format
#| msgid "cannot read header"
msgid "cannot read object name"
msgstr "non se pode le-la cabeceira"
-#: elf/pldd-xx.c:219
+#: elf/pldd-xx.c:197
#, fuzzy, c-format
#| msgid "cannot allocate memory for program header"
msgid "cannot allocate buffer for object name"
msgstr "Non se pode reservar memoria para a cabeceira do programa"
-#: elf/pldd.c:64
+#: elf/pldd.c:58
msgid "List dynamic shared objects loaded into process."
msgstr ""
-#: elf/pldd.c:68
+#: elf/pldd.c:62
msgid "PID"
msgstr ""
-#: elf/pldd.c:100
+#: elf/pldd.c:89
#, c-format
msgid "Exactly one parameter with process ID required.\n"
msgstr ""
-#: elf/pldd.c:112
+#: elf/pldd.c:103
#, fuzzy, c-format
#| msgid "invalid pointer size"
msgid "invalid process ID '%s'"
msgstr "tamaño de punteiro non válido"
-#: elf/pldd.c:120
+#: elf/pldd.c:111
#, fuzzy, c-format
#| msgid "cannot open `%s'"
msgid "cannot open %s"
msgstr "non se pode abrir `%s'"
-#: elf/pldd.c:152
+#: elf/pldd.c:142
#, fuzzy, c-format
#| msgid "cannot open `%s'"
msgid "cannot open %s/task"
msgstr "non se pode abrir `%s'"
-#: elf/pldd.c:155
+#: elf/pldd.c:145
#, fuzzy, c-format
#| msgid "cannot create searchlist"
msgid "cannot prepare reading %s/task"
msgstr "non se pode crea-la lista de busca"
-#: elf/pldd.c:168
+#: elf/pldd.c:158
#, fuzzy, c-format
#| msgid "invalid ELF header"
msgid "invalid thread ID '%s'"
msgstr "cabeceira ELF non válida"
-#: elf/pldd.c:179
+#: elf/pldd.c:169
#, fuzzy, c-format
#| msgid "cannot find C preprocessor: %s \n"
msgid "cannot attach to process %lu"
msgstr "non podo atopa-lo preprocesador de C: %s \n"
-#: elf/pldd.c:294
+#: elf/pldd.c:184
+#, fuzzy, c-format
+#| msgid "invalid saved time"
+msgid "no valid %s/task entries"
+msgstr "hora gravada incorrecta"
+
+#: elf/pldd.c:290
#, c-format
msgid "cannot get information about process %lu"
msgstr ""
-#: elf/pldd.c:307
+#: elf/pldd.c:303
#, c-format
msgid "process %lu is no ELF program"
msgstr ""
@@ -1450,7 +1454,7 @@ msgstr "Información:"
msgid "list all known coded character sets"
msgstr "listar tódolos conxuntos de caracteres codificados que se coñecen"
-#: iconv/iconv_prog.c:64 locale/programs/localedef.c:120
+#: iconv/iconv_prog.c:64 locale/programs/localedef.c:124
msgid "Output control:"
msgstr "Control de saída:"
@@ -1459,8 +1463,8 @@ msgid "omit invalid characters from output"
msgstr "omiti-los caracteres non válidos da saída"
#: iconv/iconv_prog.c:66 iconv/iconvconfig.c:128
-#: locale/programs/localedef.c:113 locale/programs/localedef.c:115
-#: locale/programs/localedef.c:117 locale/programs/localedef.c:144
+#: locale/programs/localedef.c:117 locale/programs/localedef.c:119
+#: locale/programs/localedef.c:121 locale/programs/localedef.c:150
#: malloc/memusagestat.c:56
#, fuzzy
#| msgid "[FILE]"
@@ -1570,7 +1574,7 @@ msgstr "Crea-lo ficheiro de configuración dos módulos de iconv de carga rápid
msgid "[DIR...]"
msgstr "[DIR...]"
-#: iconv/iconvconfig.c:126 locale/programs/localedef.c:123
+#: iconv/iconvconfig.c:126 locale/programs/localedef.c:129
msgid "PATH"
msgstr ""
@@ -1758,14 +1762,14 @@ msgstr "non se soportan os xogos de caracteres con estados bloqueantes"
#: locale/programs/charmap.c:503 locale/programs/charmap.c:557
#: locale/programs/charmap.c:589 locale/programs/charmap.c:683
-#: locale/programs/charmap.c:738 locale/programs/charmap.c:779
-#: locale/programs/charmap.c:820
+#: locale/programs/charmap.c:739 locale/programs/charmap.c:780
+#: locale/programs/charmap.c:821
#, c-format
msgid "syntax error in %s definition: %s"
msgstr "erro de sintaxe na definición %s: %s"
#: locale/programs/charmap.c:504 locale/programs/charmap.c:684
-#: locale/programs/charmap.c:780 locale/programs/repertoire.c:229
+#: locale/programs/charmap.c:781 locale/programs/repertoire.c:229
msgid "no symbolic name given"
msgstr "non se deu un nome simbólico"
@@ -1781,14 +1785,14 @@ msgstr "demasiados poucos bytes na codificación de caracteres"
msgid "too many bytes in character encoding"
msgstr "demasiados bytes na codificación de caracteres"
-#: locale/programs/charmap.c:591 locale/programs/charmap.c:739
-#: locale/programs/charmap.c:822 locale/programs/repertoire.c:295
+#: locale/programs/charmap.c:591 locale/programs/charmap.c:740
+#: locale/programs/charmap.c:823 locale/programs/repertoire.c:295
msgid "no symbolic name given for end of range"
msgstr "non se deu un nome simbólico para a fin do rango"
#: locale/programs/charmap.c:615 locale/programs/ld-address.c:524
#: locale/programs/ld-collate.c:2616 locale/programs/ld-collate.c:3774
-#: locale/programs/ld-ctype.c:2117 locale/programs/ld-ctype.c:2829
+#: locale/programs/ld-ctype.c:2118 locale/programs/ld-ctype.c:2830
#: locale/programs/ld-identification.c:397
#: locale/programs/ld-measurement.c:213 locale/programs/ld-messages.c:295
#: locale/programs/ld-monetary.c:748 locale/programs/ld-name.c:262
@@ -1803,60 +1807,60 @@ msgstr "%1$s: a definición non remata con `END %1$s'"
msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
msgstr "só se permiten definicións WIDTH seguindo á definición CHARMAP"
-#: locale/programs/charmap.c:656 locale/programs/charmap.c:719
+#: locale/programs/charmap.c:656 locale/programs/charmap.c:720
#, c-format
msgid "value for %s must be an integer"
msgstr "o valor de %s debe ser un enteiro"
-#: locale/programs/charmap.c:847
+#: locale/programs/charmap.c:848
#, c-format
msgid "%s: error in state machine"
msgstr "%s: erro na máquina de estados"
-#: locale/programs/charmap.c:855 locale/programs/ld-address.c:540
+#: locale/programs/charmap.c:856 locale/programs/ld-address.c:540
#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967
-#: locale/programs/ld-ctype.c:2114 locale/programs/ld-ctype.c:2846
+#: locale/programs/ld-ctype.c:2115 locale/programs/ld-ctype.c:2847
#: locale/programs/ld-identification.c:413
#: locale/programs/ld-measurement.c:229 locale/programs/ld-messages.c:311
#: locale/programs/ld-monetary.c:764 locale/programs/ld-name.c:278
#: locale/programs/ld-numeric.c:341 locale/programs/ld-paper.c:228
#: locale/programs/ld-telephone.c:292 locale/programs/ld-time.c:990
-#: locale/programs/locfile.c:997 locale/programs/repertoire.c:323
+#: locale/programs/locfile.c:1010 locale/programs/repertoire.c:323
#, c-format
msgid "%s: premature end of file"
msgstr "%s: fin de ficheiro prematuro"
-#: locale/programs/charmap.c:874 locale/programs/charmap.c:885
+#: locale/programs/charmap.c:875 locale/programs/charmap.c:886
#, c-format
msgid "unknown character `%s'"
msgstr "carácter `%s' descoñecido"
-#: locale/programs/charmap.c:893
+#: locale/programs/charmap.c:894
#, c-format
msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d"
msgstr "os números de bytes para as secuencias de bytes do inicio e fin de rango non son os mesmos: %d contra %d"
-#: locale/programs/charmap.c:998 locale/programs/ld-collate.c:2893
+#: locale/programs/charmap.c:999 locale/programs/ld-collate.c:2893
#: locale/programs/repertoire.c:418
msgid "invalid names for character range"
msgstr "nomes non válidos para o rango de caracteres"
-#: locale/programs/charmap.c:1010 locale/programs/repertoire.c:430
+#: locale/programs/charmap.c:1011 locale/programs/repertoire.c:430
msgid "hexadecimal range format should use only capital characters"
msgstr "o formato de rango hexadecimal só debería empregar caracteres hexadecimais"
-#: locale/programs/charmap.c:1028 locale/programs/repertoire.c:448
+#: locale/programs/charmap.c:1029 locale/programs/repertoire.c:448
#, c-format
msgid "<%s> and <%s> are invalid names for range"
msgstr "<%s> e <%s> son nomes non válidos para o rango"
-#: locale/programs/charmap.c:1034 locale/programs/repertoire.c:455
+#: locale/programs/charmap.c:1035 locale/programs/repertoire.c:455
#, fuzzy
#| msgid "upper limit in range is not smaller then lower limit"
msgid "upper limit in range is smaller than lower limit"
msgstr "o límite superior do rango non é menor có límite inferior"
-#: locale/programs/charmap.c:1092
+#: locale/programs/charmap.c:1093
msgid "resulting bytes for range not representable."
msgstr "os bytes resultantes do rango non son representables"
@@ -1926,7 +1930,7 @@ msgid "%s: numeric country code `%d' not valid"
msgstr "%s: código numérico de país `%d' non válido"
#: locale/programs/ld-address.c:432 locale/programs/ld-address.c:469
-#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2478
+#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2479
#: locale/programs/ld-identification.c:309
#: locale/programs/ld-measurement.c:196 locale/programs/ld-messages.c:264
#: locale/programs/ld-monetary.c:503 locale/programs/ld-monetary.c:538
@@ -1949,7 +1953,7 @@ msgid "%s: unknown character in field `%s'"
msgstr "%s: carácter descoñecido no campo `%s'"
#: locale/programs/ld-address.c:521 locale/programs/ld-collate.c:3772
-#: locale/programs/ld-ctype.c:2826 locale/programs/ld-identification.c:394
+#: locale/programs/ld-ctype.c:2827 locale/programs/ld-identification.c:394
#: locale/programs/ld-measurement.c:210 locale/programs/ld-messages.c:293
#: locale/programs/ld-monetary.c:746 locale/programs/ld-name.c:260
#: locale/programs/ld-numeric.c:323 locale/programs/ld-paper.c:210
@@ -1962,8 +1966,8 @@ msgstr "%s: liña `END' incompleta"
#: locale/programs/ld-collate.c:602 locale/programs/ld-collate.c:898
#: locale/programs/ld-collate.c:911 locale/programs/ld-collate.c:2582
#: locale/programs/ld-collate.c:2603 locale/programs/ld-collate.c:3957
-#: locale/programs/ld-ctype.c:1846 locale/programs/ld-ctype.c:2104
-#: locale/programs/ld-ctype.c:2676 locale/programs/ld-ctype.c:2837
+#: locale/programs/ld-ctype.c:1847 locale/programs/ld-ctype.c:2105
+#: locale/programs/ld-ctype.c:2677 locale/programs/ld-ctype.c:2838
#: locale/programs/ld-identification.c:404
#: locale/programs/ld-measurement.c:220 locale/programs/ld-messages.c:302
#: locale/programs/ld-monetary.c:755 locale/programs/ld-name.c:269
@@ -2312,131 +2316,131 @@ msgstr "mapa de caracteres `%s' xa definido"
msgid "implementation limit: no more than %d character maps allowed"
msgstr "límite da implementación: non se admiten máis de %d mapas de caracteres"
-#: locale/programs/ld-ctype.c:1434 locale/programs/ld-ctype.c:1559
-#: locale/programs/ld-ctype.c:1665 locale/programs/ld-ctype.c:2341
-#: locale/programs/ld-ctype.c:3299
+#: locale/programs/ld-ctype.c:1435 locale/programs/ld-ctype.c:1560
+#: locale/programs/ld-ctype.c:1666 locale/programs/ld-ctype.c:2342
+#: locale/programs/ld-ctype.c:3302
#, c-format
msgid "%s: field `%s' does not contain exactly ten entries"
msgstr "%s: o campo `%s' non contén exactamente dez entradas"
-#: locale/programs/ld-ctype.c:1462 locale/programs/ld-ctype.c:2036
+#: locale/programs/ld-ctype.c:1463 locale/programs/ld-ctype.c:2037
#, c-format
msgid "to-value <U%0*X> of range is smaller than from-value <U%0*X>"
msgstr "o valor-a <U%0*X> do rango é menor có valor-dende <U%0*X>"
-#: locale/programs/ld-ctype.c:1589
+#: locale/programs/ld-ctype.c:1590
msgid "start and end character sequence of range must have the same length"
msgstr "as secuencias de caracteres do inicio e fin do rango deben te-la mesma lonxitude"
-#: locale/programs/ld-ctype.c:1596
+#: locale/programs/ld-ctype.c:1597
msgid "to-value character sequence is smaller than from-value sequence"
msgstr "a secuencia de caracteres do valor-a é menor cá secuencia do valor-dende"
-#: locale/programs/ld-ctype.c:1956 locale/programs/ld-ctype.c:2007
+#: locale/programs/ld-ctype.c:1957 locale/programs/ld-ctype.c:2008
msgid "premature end of `translit_ignore' definition"
msgstr "final prematura da definición `translit_ignore'"
-#: locale/programs/ld-ctype.c:1962 locale/programs/ld-ctype.c:2013
-#: locale/programs/ld-ctype.c:2055
+#: locale/programs/ld-ctype.c:1963 locale/programs/ld-ctype.c:2014
+#: locale/programs/ld-ctype.c:2056
msgid "syntax error"
msgstr "erro de sintaxe"
-#: locale/programs/ld-ctype.c:2188
+#: locale/programs/ld-ctype.c:2189
#, c-format
msgid "%s: syntax error in definition of new character class"
msgstr "%s: erro de sintaxe na definición da nova clase de caracteres"
-#: locale/programs/ld-ctype.c:2203
+#: locale/programs/ld-ctype.c:2204
#, c-format
msgid "%s: syntax error in definition of new character map"
msgstr "%s: erro de sintaxe na definición dun novo mapa de caracteres"
-#: locale/programs/ld-ctype.c:2363
+#: locale/programs/ld-ctype.c:2364
msgid "ellipsis range must be marked by two operands of same type"
msgstr "o rango de puntos suspensivos debe estar marcado por dous operandos do mesmo tipo"
-#: locale/programs/ld-ctype.c:2372
+#: locale/programs/ld-ctype.c:2373
msgid "with symbolic name range values the absolute ellipsis `...' must not be used"
msgstr "débense emprega-los puntos suspensivos absolutos `...' cos valores de rangos de nomes simbólicos"
-#: locale/programs/ld-ctype.c:2387
+#: locale/programs/ld-ctype.c:2388
msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'"
msgstr "débense emprega-los puntos suspensivos simbólicos hexadecimais `...' cos valores de rangos UCS"
-#: locale/programs/ld-ctype.c:2401
+#: locale/programs/ld-ctype.c:2402
msgid "with character code range values one must use the absolute ellipsis `...'"
msgstr "débense emprega-los puntos suspensivos absolutos `...' cos valores de rangos de códigos de caracteres"
-#: locale/programs/ld-ctype.c:2552
+#: locale/programs/ld-ctype.c:2553
#, c-format
msgid "duplicated definition for mapping `%s'"
msgstr "definición do mapeado `%s' duplicada"
-#: locale/programs/ld-ctype.c:2638 locale/programs/ld-ctype.c:2782
+#: locale/programs/ld-ctype.c:2639 locale/programs/ld-ctype.c:2783
#, c-format
msgid "%s: `translit_start' section does not end with `translit_end'"
msgstr "%s: a sección `translit_start' non remata con `translit_end'"
-#: locale/programs/ld-ctype.c:2733
+#: locale/programs/ld-ctype.c:2734
#, c-format
msgid "%s: duplicate `default_missing' definition"
msgstr "%s: definición de `default_missing' duplicada"
-#: locale/programs/ld-ctype.c:2738
+#: locale/programs/ld-ctype.c:2739
msgid "previous definition was here"
msgstr "a definición anterior estaba aquí"
-#: locale/programs/ld-ctype.c:2760
+#: locale/programs/ld-ctype.c:2761
#, c-format
msgid "%s: no representable `default_missing' definition found"
msgstr "%s: non se atopou unha definición `default_missing' representable"
-#: locale/programs/ld-ctype.c:2877 locale/programs/ld-ctype.c:2973
-#: locale/programs/ld-ctype.c:2992 locale/programs/ld-ctype.c:3012
-#: locale/programs/ld-ctype.c:3032 locale/programs/ld-ctype.c:3052
-#: locale/programs/ld-ctype.c:3072 locale/programs/ld-ctype.c:3111
-#: locale/programs/ld-ctype.c:3131 locale/programs/ld-ctype.c:3195
-#: locale/programs/ld-ctype.c:3236 locale/programs/ld-ctype.c:3259
+#: locale/programs/ld-ctype.c:2878 locale/programs/ld-ctype.c:2974
+#: locale/programs/ld-ctype.c:2993 locale/programs/ld-ctype.c:3013
+#: locale/programs/ld-ctype.c:3033 locale/programs/ld-ctype.c:3053
+#: locale/programs/ld-ctype.c:3073 locale/programs/ld-ctype.c:3112
+#: locale/programs/ld-ctype.c:3132 locale/programs/ld-ctype.c:3198
+#: locale/programs/ld-ctype.c:3239 locale/programs/ld-ctype.c:3262
#, c-format
msgid "%s: character `%s' not defined while needed as default value"
msgstr "%s: carácter `%s' non definido, cando facía falta por ser valor por omisión"
-#: locale/programs/ld-ctype.c:2882 locale/programs/ld-ctype.c:2978
-#: locale/programs/ld-ctype.c:2997 locale/programs/ld-ctype.c:3017
-#: locale/programs/ld-ctype.c:3037 locale/programs/ld-ctype.c:3057
-#: locale/programs/ld-ctype.c:3077 locale/programs/ld-ctype.c:3116
-#: locale/programs/ld-ctype.c:3136 locale/programs/ld-ctype.c:3200
+#: locale/programs/ld-ctype.c:2883 locale/programs/ld-ctype.c:2979
+#: locale/programs/ld-ctype.c:2998 locale/programs/ld-ctype.c:3018
+#: locale/programs/ld-ctype.c:3038 locale/programs/ld-ctype.c:3058
+#: locale/programs/ld-ctype.c:3078 locale/programs/ld-ctype.c:3117
+#: locale/programs/ld-ctype.c:3137 locale/programs/ld-ctype.c:3203
#, c-format
msgid "%s: character `%s' in charmap not representable with one byte"
msgstr "%s: o carácter `%s' do mapa de caracteres non se pode representar cun só byte"
-#: locale/programs/ld-ctype.c:3242 locale/programs/ld-ctype.c:3265
+#: locale/programs/ld-ctype.c:3245 locale/programs/ld-ctype.c:3268
#, c-format
msgid "%s: character `%s' needed as default value not representable with one byte"
msgstr "%s: o carácter `%s' que se precisa coma valor por defecto non se pode representar cun só byte"
-#: locale/programs/ld-ctype.c:3321
+#: locale/programs/ld-ctype.c:3324
msgid "no output digits defined and none of the standard names in the charmap"
msgstr "non se definiron díxitos de saída e ningún dos nomes estándar do mapa de caracteres"
-#: locale/programs/ld-ctype.c:3570
+#: locale/programs/ld-ctype.c:3573
#, c-format
msgid "%s: transliteration data from locale `%s' not available"
msgstr "%s: os datos de transliteración dende o locale `%s' non están dispoñibles"
-#: locale/programs/ld-ctype.c:3669
+#: locale/programs/ld-ctype.c:3672
#, fuzzy, c-format
#| msgid "%s: table for class \"%s\": %lu bytes\n"
msgid "%s: table for class \"%s\": %lu bytes"
msgstr "%s: táboa para a clase \"%s\": %lu bytes\n"
-#: locale/programs/ld-ctype.c:3733
+#: locale/programs/ld-ctype.c:3736
#, fuzzy, c-format
#| msgid "%s: table for map \"%s\": %lu bytes\n"
msgid "%s: table for map \"%s\": %lu bytes"
msgstr "%s: táboa para o mapa \"%s\": %lu bytes\n"
-#: locale/programs/ld-ctype.c:3857
+#: locale/programs/ld-ctype.c:3860
#, fuzzy, c-format
#| msgid "%s: table for width: %lu bytes\n"
msgid "%s: table for width: %lu bytes"
@@ -2680,127 +2684,119 @@ msgstr ""
"NOME\n"
"[-a|-m]"
-#: locale/programs/locale.c:190
-#, fuzzy, c-format
-#| msgid "cannot insert into result table"
-msgid "Cannot set LC_CTYPE to default locale"
-msgstr "non se pode insertar na táboa de resultados"
-
-#: locale/programs/locale.c:192
+#: locale/programs/locale.c:522
#, c-format
-msgid "Cannot set LC_MESSAGES to default locale"
-msgstr ""
-
-#: locale/programs/locale.c:205
-#, fuzzy, c-format
-#| msgid "cannot insert into result table"
-msgid "Cannot set LC_COLLATE to default locale"
-msgstr "non se pode insertar na táboa de resultados"
+msgid "while preparing output"
+msgstr "ao prepara-la saída"
-#: locale/programs/locale.c:221
+#: locale/programs/locale.c:998
#, fuzzy, c-format
#| msgid "cannot insert into result table"
-msgid "Cannot set LC_ALL to default locale"
+msgid "Cannot set %s to default locale"
msgstr "non se pode insertar na táboa de resultados"
-#: locale/programs/locale.c:521
+#: locale/programs/locale.c:1096
#, c-format
-msgid "while preparing output"
-msgstr "ao prepara-la saída"
+msgid "warning: The LOCPATH variable is set to \"%s\"\n"
+msgstr ""
-#: locale/programs/localedef.c:112
+#: locale/programs/localedef.c:116
msgid "Input Files:"
msgstr "Ficheiros de Entrada:"
-#: locale/programs/localedef.c:114
+#: locale/programs/localedef.c:118
msgid "Symbolic character names defined in FILE"
msgstr "Nomes de caracteres simbólicos definidos en FICH"
-#: locale/programs/localedef.c:116
+#: locale/programs/localedef.c:120
msgid "Source definitions are found in FILE"
msgstr "As definicións de fonte atópanse en FICH"
-#: locale/programs/localedef.c:118
+#: locale/programs/localedef.c:122
msgid "FILE contains mapping from symbolic names to UCS4 values"
msgstr "O FICHEIRO contén mapeado de nomes simbólicos a valores UCS4"
-#: locale/programs/localedef.c:122
+#: locale/programs/localedef.c:126
msgid "Create output even if warning messages were issued"
msgstr "Crea-la saída incluso se se produciron mensaxes de aviso"
-#: locale/programs/localedef.c:123
+#: locale/programs/localedef.c:128
+msgid "Do not create hard links between installed locales"
+msgstr ""
+
+#: locale/programs/localedef.c:129
msgid "Optional output file prefix"
msgstr "Prefixo de ficheiro de saída opcional"
-#: locale/programs/localedef.c:124
+#: locale/programs/localedef.c:130
#, fuzzy
#| msgid "Be strictly POSIX conform"
msgid "Strictly conform to POSIX"
msgstr "Ser estrictamente conforme con POSIX"
-#: locale/programs/localedef.c:126
+#: locale/programs/localedef.c:132
msgid "Suppress warnings and information messages"
msgstr "Elimina-las mensaxes de aviso e información"
-#: locale/programs/localedef.c:127
+#: locale/programs/localedef.c:133
msgid "Print more messages"
msgstr "Visualizar máis mensaxes"
-#: locale/programs/localedef.c:128 locale/programs/localedef.c:131
+#: locale/programs/localedef.c:134 locale/programs/localedef.c:137
#, fuzzy
#| msgid "warning: "
msgid "<warnings>"
msgstr "aviso: "
-#: locale/programs/localedef.c:129
+#: locale/programs/localedef.c:135
msgid "Comma-separated list of warnings to disable; supported warnings are: ascii, intcurrsym"
msgstr ""
-#: locale/programs/localedef.c:132
+#: locale/programs/localedef.c:138
msgid "Comma-separated list of warnings to enable; supported warnings are: ascii, intcurrsym"
msgstr ""
-#: locale/programs/localedef.c:135
+#: locale/programs/localedef.c:141
msgid "Archive control:"
msgstr "Control do arquivo:"
-#: locale/programs/localedef.c:137
+#: locale/programs/localedef.c:143
msgid "Don't add new data to archive"
msgstr "Non engadir novos datos no arquivo"
-#: locale/programs/localedef.c:139
+#: locale/programs/localedef.c:145
msgid "Add locales named by parameters to archive"
msgstr "Engadi-los locales nomeados nos parámetros no arquivo"
-#: locale/programs/localedef.c:140
+#: locale/programs/localedef.c:146
msgid "Replace existing archive content"
msgstr "Substituí-lo contido actual do arquivo"
-#: locale/programs/localedef.c:142
+#: locale/programs/localedef.c:148
msgid "Remove locales named by parameters from archive"
msgstr "Elimina-los locales nomeados nos parámetros do arquivo"
-#: locale/programs/localedef.c:143
+#: locale/programs/localedef.c:149
msgid "List content of archive"
msgstr "Lista-lo contido do arquivo"
-#: locale/programs/localedef.c:145
+#: locale/programs/localedef.c:151
msgid "locale.alias file to consult when making archive"
msgstr "Ficheiro locale.alias a consultar ao crea-lo arquivo"
-#: locale/programs/localedef.c:147
+#: locale/programs/localedef.c:153
msgid "Generate little-endian output"
msgstr ""
-#: locale/programs/localedef.c:149
+#: locale/programs/localedef.c:155
msgid "Generate big-endian output"
msgstr ""
-#: locale/programs/localedef.c:154
+#: locale/programs/localedef.c:160
msgid "Compile locale specification"
msgstr "Compile a especificación do `locale'"
-#: locale/programs/localedef.c:157
+#: locale/programs/localedef.c:163
msgid ""
"NAME\n"
"[--add-to-archive|--delete-from-archive] FILE...\n"
@@ -2810,33 +2806,33 @@ msgstr ""
"[--add-to-archive|--delete-from-archive] FICHEIRO...\n"
"--list-archive [FICHEIRO]"
-#: locale/programs/localedef.c:232
+#: locale/programs/localedef.c:238
#, c-format
msgid "cannot create directory for output files"
msgstr "non se pode crea-lo directorio dos ficheiros de saída"
-#: locale/programs/localedef.c:243
+#: locale/programs/localedef.c:249
msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
msgstr "FATAL: o sistema non define `_POSIX2_LOCALDEF'"
-#: locale/programs/localedef.c:257 locale/programs/localedef.c:273
-#: locale/programs/localedef.c:663 locale/programs/localedef.c:683
+#: locale/programs/localedef.c:263 locale/programs/localedef.c:279
+#: locale/programs/localedef.c:673 locale/programs/localedef.c:693
#, c-format
msgid "cannot open locale definition file `%s'"
msgstr "non se pode abri-lo ficheiro de definición de locales `%s'"
-#: locale/programs/localedef.c:297
+#: locale/programs/localedef.c:303
#, c-format
msgid "cannot write output files to `%s'"
msgstr "non se poden escribi-los ficheiros de saída a `%s'"
-#: locale/programs/localedef.c:303
+#: locale/programs/localedef.c:309
#, fuzzy
#| msgid "no output file produced because warning were issued"
msgid "no output file produced because errors were issued"
msgstr "non se producíu un ficheiro de saída porque se deron avisos"
-#: locale/programs/localedef.c:431
+#: locale/programs/localedef.c:441
#, fuzzy, c-format
#| msgid ""
#| "System's directory for character maps : %s\n"
@@ -2854,11 +2850,11 @@ msgstr ""
" locale : %s\n"
"%s"
-#: locale/programs/localedef.c:631
+#: locale/programs/localedef.c:641
msgid "circular dependencies between locale definitions"
msgstr "dependencias circulares entre definicións de locales"
-#: locale/programs/localedef.c:637
+#: locale/programs/localedef.c:647
#, c-format
msgid "cannot add already read locale `%s' a second time"
msgstr "non se pode engadi-lo locale xa lido `%s' outra vez"
@@ -3017,26 +3013,26 @@ msgstr "non se pode abri-lo ficheiro de saída `%s' para a categoría `%s'"
msgid "failure while writing data for category `%s'"
msgstr "non se puideron escribi-los datos da categoría `%s'"
-#: locale/programs/locfile.c:917
+#: locale/programs/locfile.c:930
#, c-format
msgid "cannot create output file `%s' for category `%s'"
msgstr "non se pode crea-lo ficheiro de saída `%s' para a categoría `%s'"
-#: locale/programs/locfile.c:953
+#: locale/programs/locfile.c:966
#, fuzzy
#| msgid "expect string argument for `copy'"
msgid "expecting string argument for `copy'"
msgstr "espérase un parámetro de cadea para `copy'"
-#: locale/programs/locfile.c:957
+#: locale/programs/locfile.c:970
msgid "locale name should consist only of portable characters"
msgstr "o nome do locale debería consistir só en caracteres portables"
-#: locale/programs/locfile.c:976
+#: locale/programs/locfile.c:989
msgid "no other keyword shall be specified when `copy' is used"
msgstr "non se debe especificar outra clave cando se usa `copy'"
-#: locale/programs/locfile.c:990
+#: locale/programs/locfile.c:1003
#, c-format
msgid "`%1$s' definition does not end with `END %1$s'"
msgstr "A definición `%1$s' non remata con `END %1$s'"
@@ -3855,12 +3851,12 @@ msgstr "yp_update: non se pode converti-lo servidor a nome de rede\n"
msgid "yp_update: cannot get server address\n"
msgstr "yp_update: non se pode obte-lo enderezo do servidor\n"
-#: nscd/aicache.c:83 nscd/hstcache.c:452
+#: nscd/aicache.c:82 nscd/hstcache.c:452
#, c-format
msgid "Haven't found \"%s\" in hosts cache!"
msgstr "¡Non atopei \"%s\" na caché de servidores!"
-#: nscd/aicache.c:85 nscd/hstcache.c:454
+#: nscd/aicache.c:84 nscd/hstcache.c:454
#, fuzzy, c-format
#| msgid "Haven't found \"%s\" in hosts cache!"
msgid "Reloading \"%s\" in hosts cache!"
@@ -4205,25 +4201,25 @@ msgstr ""
msgid "no more memory for database '%s'"
msgstr "Non hai máis rexistros na base de datos de mapas"
-#: nscd/netgroupcache.c:121
+#: nscd/netgroupcache.c:122
#, fuzzy, c-format
#| msgid "Haven't found \"%s\" in group cache!"
msgid "Haven't found \"%s\" in netgroup cache!"
msgstr "¡Non atopei \"%s\" na caché de grupos!"
-#: nscd/netgroupcache.c:123
+#: nscd/netgroupcache.c:124
#, fuzzy, c-format
#| msgid "Haven't found \"%s\" in group cache!"
msgid "Reloading \"%s\" in netgroup cache!"
msgstr "¡Non atopei \"%s\" na caché de grupos!"
-#: nscd/netgroupcache.c:469
+#: nscd/netgroupcache.c:470
#, fuzzy, c-format
#| msgid "Haven't found \"%s\" in group cache!"
msgid "Haven't found \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr "¡Non atopei \"%s\" na caché de grupos!"
-#: nscd/netgroupcache.c:472
+#: nscd/netgroupcache.c:473
#, fuzzy, c-format
#| msgid "Haven't found \"%s\" in group cache!"
msgid "Reloading \"%s (%s,%s,%s)\" in netgroup cache!"
@@ -4279,7 +4275,7 @@ msgstr "Usar unha caché separada para cada usuario"
msgid "Name Service Cache Daemon."
msgstr "Demo de Cache de Servicio de Nomes."
-#: nscd/nscd.c:155 nss/getent.c:967 nss/makedb.c:206
+#: nscd/nscd.c:155 nss/getent.c:987 nss/makedb.c:206
#, c-format
msgid "wrong number of arguments"
msgstr "número de parámetros incorrecto"
@@ -4393,29 +4389,29 @@ msgstr "Erro na análise: %s"
msgid "Must specify user name for server-user option"
msgstr "Débese especifica-lo nome de usuario para a opción server-user"
-#: nscd/nscd_conf.c:198
+#: nscd/nscd_conf.c:201
#, fuzzy, c-format
#| msgid "Must specify user name for server-user option"
msgid "Must specify user name for stat-user option"
msgstr "Débese especifica-lo nome de usuario para a opción server-user"
-#: nscd/nscd_conf.c:255
+#: nscd/nscd_conf.c:259
#, fuzzy, c-format
#| msgid "Must specify user name for server-user option"
msgid "Must specify value for restart-interval option"
msgstr "Débese especifica-lo nome de usuario para a opción server-user"
-#: nscd/nscd_conf.c:269
+#: nscd/nscd_conf.c:273
#, c-format
msgid "Unknown option: %s %s %s"
msgstr "Opción descoñecida: %s %s %s"
-#: nscd/nscd_conf.c:282
+#: nscd/nscd_conf.c:286
#, c-format
msgid "cannot get current working directory: %s; disabling paranoia mode"
msgstr ""
-#: nscd/nscd_conf.c:302
+#: nscd/nscd_conf.c:306
#, c-format
msgid "maximum file size for %s database too small"
msgstr ""
@@ -4679,52 +4675,52 @@ msgstr "¡Non atopei \"%s\" na caché de servidores!"
msgid "Reloading \"%s\" in services cache!"
msgstr "¡Non atopei \"%s\" na caché de servidores!"
-#: nss/getent.c:54
+#: nss/getent.c:55
msgid "database [key ...]"
msgstr "base-de-datos [clave ...]"
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "CONFIG"
msgstr ""
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "Service configuration to be used"
msgstr "Configuración do servicio a empregar"
-#: nss/getent.c:60
+#: nss/getent.c:61
msgid "disable IDN encoding"
msgstr ""
-#: nss/getent.c:65
+#: nss/getent.c:66
#, fuzzy
#| msgid "getent - get entries from administrative database."
msgid "Get entries from administrative database."
msgstr "getent - obte-las entradas da base de datos administrativa."
-#: nss/getent.c:149 nss/getent.c:442 nss/getent.c:489
+#: nss/getent.c:150 nss/getent.c:462 nss/getent.c:509
#, c-format
msgid "Enumeration not supported on %s\n"
msgstr "A enumeración non está soportada en %s\n"
-#: nss/getent.c:497 nss/getent.c:510
+#: nss/getent.c:517 nss/getent.c:530
#, fuzzy, c-format
#| msgid "Could not create log file \"%s\""
msgid "Could not allocate group list: %m\n"
msgstr "Non se puido crea-lo ficheiro de rexistro \"%s\""
-#: nss/getent.c:881
+#: nss/getent.c:901
#, fuzzy, c-format
#| msgid "Unknown database: %s\n"
msgid "Unknown database name"
msgstr "Base de datos descoñecida: %s\n"
-#: nss/getent.c:911
+#: nss/getent.c:931
#, fuzzy
#| msgid "Supported databases:"
msgid "Supported databases:\n"
msgstr "Bases de datos soportadas:"
-#: nss/getent.c:977
+#: nss/getent.c:997
#, c-format
msgid "Unknown database: %s\n"
msgstr "Base de datos descoñecida: %s\n"
@@ -4993,11 +4989,11 @@ msgstr "Expresión regular demasiado grande"
msgid "Unmatched ) or \\)"
msgstr ") ou \\) sen parella"
-#: posix/regcomp.c:689
+#: posix/regcomp.c:676
msgid "No previous regular expression"
msgstr "Non hai unha expresión regular precedente"
-#: posix/wordexp.c:1815
+#: posix/wordexp.c:1816
msgid "parameter null or not set"
msgstr "parámetro nulo ou non estabrecido"
@@ -5220,7 +5216,7 @@ msgstr "Non hai espacio dispoñible no buffer"
msgid "Input message available"
msgstr "Non hai espacio dispoñible no buffer"
-#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:381 timezone/zic.c:520
+#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:375 timezone/zic.c:561
msgid "I/O error"
msgstr "Erro de E/S"
@@ -5310,7 +5306,7 @@ msgstr "Sinal %d descoñecida"
#: sunrpc/auth_unix.c:112 sunrpc/clnt_tcp.c:124 sunrpc/clnt_udp.c:139
#: sunrpc/clnt_unix.c:125 sunrpc/svc_tcp.c:189 sunrpc/svc_tcp.c:233
#: sunrpc/svc_udp.c:161 sunrpc/svc_unix.c:189 sunrpc/svc_unix.c:229
-#: sunrpc/xdr.c:628 sunrpc/xdr.c:788 sunrpc/xdr_array.c:102
+#: sunrpc/xdr.c:631 sunrpc/xdr.c:791 sunrpc/xdr_array.c:102
#: sunrpc/xdr_rec.c:153 sunrpc/xdr_ref.c:79
#, fuzzy
#| msgid "out of memory"
@@ -6579,56 +6575,69 @@ msgid "You really blew it this time"
msgstr "Si que a fastidiaches esta vez"
#. TRANS Go home and have a glass of warm, dairy-fresh milk.
-#: sysdeps/gnu/errlist.c:978
+#. TRANS @c Okay. Since you are dying to know, I'll tell you.
+#. TRANS @c This is a joke, obviously. There is a children's song which begins,
+#. TRANS @c "Old McDonald had a farm, e-i-e-i-o." Every time I see the (real)
+#. TRANS @c errno macro EIO, I think about that song. Probably most of my
+#. TRANS @c compatriots who program on Unix do, too. One of them must have stayed
+#. TRANS @c up a little too late one night and decided to add it to Hurd or Glibc.
+#. TRANS @c Whoever did it should be castigated, but it made me laugh.
+#. TRANS @c --jtobey@channel1.com
+#. TRANS @c
+#. TRANS @c "bought the farm" means "died". -jtobey
+#. TRANS @c
+#. TRANS @c Translators, please do not translate this litteraly, translate it into
+#. TRANS @c an idiomatic funny way of saying that the computer died.
+#: sysdeps/gnu/errlist.c:991
msgid "Computer bought the farm"
msgstr "O ordenador mercou a granxa"
#. TRANS This error code has no purpose.
-#: sysdeps/gnu/errlist.c:987
+#: sysdeps/gnu/errlist.c:1000
msgid "Gratuitous error"
msgstr "Erro inxustificado"
-#: sysdeps/gnu/errlist.c:995
+#: sysdeps/gnu/errlist.c:1008
msgid "Bad message"
msgstr "Mensaxe incorrecta"
-#: sysdeps/gnu/errlist.c:1003
+#: sysdeps/gnu/errlist.c:1016
msgid "Identifier removed"
msgstr "Identificador borrado"
-#: sysdeps/gnu/errlist.c:1011
+#: sysdeps/gnu/errlist.c:1024
msgid "Multihop attempted"
msgstr "Tentouse un multisalto"
-#: sysdeps/gnu/errlist.c:1019
+#: sysdeps/gnu/errlist.c:1032
msgid "No data available"
msgstr "Non hai datos dispoñibles"
-#: sysdeps/gnu/errlist.c:1027
+#: sysdeps/gnu/errlist.c:1040
msgid "Link has been severed"
msgstr "O enlace foi roto"
-#: sysdeps/gnu/errlist.c:1035
+#: sysdeps/gnu/errlist.c:1048
msgid "No message of desired type"
msgstr "Non hai unha mensaxe do tipo desexado"
-#: sysdeps/gnu/errlist.c:1043
+#: sysdeps/gnu/errlist.c:1056
msgid "Out of streams resources"
msgstr "Acabáronse os recursos de fluxo"
-#: sysdeps/gnu/errlist.c:1051
+#: sysdeps/gnu/errlist.c:1064
msgid "Device not a stream"
msgstr "O dispositivo non é de fluxo"
-#: sysdeps/gnu/errlist.c:1059
+#: sysdeps/gnu/errlist.c:1072
msgid "Value too large for defined data type"
msgstr "Valor grande de máis para o tipo de datos definido"
-#: sysdeps/gnu/errlist.c:1067
+#: sysdeps/gnu/errlist.c:1080
msgid "Protocol error"
msgstr "Erro de protocolo"
-#: sysdeps/gnu/errlist.c:1075
+#: sysdeps/gnu/errlist.c:1088
msgid "Timer expired"
msgstr "Acabou o tempo"
@@ -6636,203 +6645,203 @@ msgstr "Acabou o tempo"
#. TRANS completed. @xref{Asynchronous I/O}. When you call @code{aio_cancel},
#. TRANS the normal result is for the operations affected to complete with this
#. TRANS error; @pxref{Cancel AIO Operations}.
-#: sysdeps/gnu/errlist.c:1087
+#: sysdeps/gnu/errlist.c:1100
msgid "Operation canceled"
msgstr "Operación cancelada"
-#: sysdeps/gnu/errlist.c:1095
+#: sysdeps/gnu/errlist.c:1108
msgid "Owner died"
msgstr ""
-#: sysdeps/gnu/errlist.c:1103
+#: sysdeps/gnu/errlist.c:1116
msgid "State not recoverable"
msgstr ""
-#: sysdeps/gnu/errlist.c:1111
+#: sysdeps/gnu/errlist.c:1124
msgid "Interrupted system call should be restarted"
msgstr "A chamada ao sistema interrompida debería ser recomezada"
-#: sysdeps/gnu/errlist.c:1119
+#: sysdeps/gnu/errlist.c:1132
msgid "Channel number out of range"
msgstr "Número de canal fóra do seu rango"
-#: sysdeps/gnu/errlist.c:1127
+#: sysdeps/gnu/errlist.c:1140
msgid "Level 2 not synchronized"
msgstr "Nivel 2 non sincronizado"
-#: sysdeps/gnu/errlist.c:1135
+#: sysdeps/gnu/errlist.c:1148
msgid "Level 3 halted"
msgstr "Nivel 3 detido"
-#: sysdeps/gnu/errlist.c:1143
+#: sysdeps/gnu/errlist.c:1156
msgid "Level 3 reset"
msgstr "Nivel 3 reiniciado"
-#: sysdeps/gnu/errlist.c:1151
+#: sysdeps/gnu/errlist.c:1164
msgid "Link number out of range"
msgstr "Número de enlace fóra de rango"
-#: sysdeps/gnu/errlist.c:1159
+#: sysdeps/gnu/errlist.c:1172
msgid "Protocol driver not attached"
msgstr "Controlador de protocolos non conectado"
-#: sysdeps/gnu/errlist.c:1167
+#: sysdeps/gnu/errlist.c:1180
msgid "No CSI structure available"
msgstr "Non hai unha estructura CSI dispoñible"
-#: sysdeps/gnu/errlist.c:1175
+#: sysdeps/gnu/errlist.c:1188
msgid "Level 2 halted"
msgstr "Nivel 2 detido"
-#: sysdeps/gnu/errlist.c:1183
+#: sysdeps/gnu/errlist.c:1196
msgid "Invalid exchange"
msgstr "Intercambio incorrecto"
-#: sysdeps/gnu/errlist.c:1191
+#: sysdeps/gnu/errlist.c:1204
msgid "Invalid request descriptor"
msgstr "Descriptor de petición incorrecto"
-#: sysdeps/gnu/errlist.c:1199
+#: sysdeps/gnu/errlist.c:1212
msgid "Exchange full"
msgstr "Ficheiro de intercambio cheo."
-#: sysdeps/gnu/errlist.c:1207
+#: sysdeps/gnu/errlist.c:1220
msgid "No anode"
msgstr "Non hai un anodo"
-#: sysdeps/gnu/errlist.c:1215
+#: sysdeps/gnu/errlist.c:1228
msgid "Invalid request code"
msgstr "Código de petición incorrecto"
-#: sysdeps/gnu/errlist.c:1223
+#: sysdeps/gnu/errlist.c:1236
msgid "Invalid slot"
msgstr "Rañura incorrecta"
-#: sysdeps/gnu/errlist.c:1231
+#: sysdeps/gnu/errlist.c:1244
msgid "File locking deadlock error"
msgstr "Erro de interbloqueo en bloqueos de ficheiro"
-#: sysdeps/gnu/errlist.c:1239
+#: sysdeps/gnu/errlist.c:1252
msgid "Bad font file format"
msgstr "Formato do ficheiro de tipo de letra incorrecto"
-#: sysdeps/gnu/errlist.c:1247
+#: sysdeps/gnu/errlist.c:1260
msgid "Machine is not on the network"
msgstr "A máquina non está na rede"
-#: sysdeps/gnu/errlist.c:1255
+#: sysdeps/gnu/errlist.c:1268
msgid "Package not installed"
msgstr "Paquete non instalado"
-#: sysdeps/gnu/errlist.c:1263
+#: sysdeps/gnu/errlist.c:1276
msgid "Advertise error"
msgstr "Anunciar erro"
-#: sysdeps/gnu/errlist.c:1271
+#: sysdeps/gnu/errlist.c:1284
msgid "Srmount error"
msgstr "Erro de srmount"
-#: sysdeps/gnu/errlist.c:1279
+#: sysdeps/gnu/errlist.c:1292
msgid "Communication error on send"
msgstr "Erro de comunicacións ao enviar"
-#: sysdeps/gnu/errlist.c:1287
+#: sysdeps/gnu/errlist.c:1300
msgid "RFS specific error"
msgstr "Erro específico de RFS"
-#: sysdeps/gnu/errlist.c:1295
+#: sysdeps/gnu/errlist.c:1308
msgid "Name not unique on network"
msgstr "O nome non é único na rede"
-#: sysdeps/gnu/errlist.c:1303
+#: sysdeps/gnu/errlist.c:1316
msgid "File descriptor in bad state"
msgstr "Descriptor de ficheiro en mal estado"
-#: sysdeps/gnu/errlist.c:1311
+#: sysdeps/gnu/errlist.c:1324
msgid "Remote address changed"
msgstr "O enderezo remoto cambiou"
-#: sysdeps/gnu/errlist.c:1319
+#: sysdeps/gnu/errlist.c:1332
msgid "Can not access a needed shared library"
msgstr "Non se pode acceder a unha biblioteca compartida necesaria"
-#: sysdeps/gnu/errlist.c:1327
+#: sysdeps/gnu/errlist.c:1340
msgid "Accessing a corrupted shared library"
msgstr "Accedendo a unha biblioteca compartida corrompida"
-#: sysdeps/gnu/errlist.c:1335
+#: sysdeps/gnu/errlist.c:1348
msgid ".lib section in a.out corrupted"
msgstr "sección .lib do a.out corrompida"
-#: sysdeps/gnu/errlist.c:1343
+#: sysdeps/gnu/errlist.c:1356
msgid "Attempting to link in too many shared libraries"
msgstr "Intentouse cargar demasiadas bibliotecas compartidas"
-#: sysdeps/gnu/errlist.c:1351
+#: sysdeps/gnu/errlist.c:1364
msgid "Cannot exec a shared library directly"
msgstr "Non se pode executar unha biblioteca compartida directamente"
-#: sysdeps/gnu/errlist.c:1359
+#: sysdeps/gnu/errlist.c:1372
msgid "Streams pipe error"
msgstr "Erro de canalización de fluxo"
-#: sysdeps/gnu/errlist.c:1367
+#: sysdeps/gnu/errlist.c:1380
msgid "Structure needs cleaning"
msgstr "A estructura precisa dunha limpeza"
-#: sysdeps/gnu/errlist.c:1375
+#: sysdeps/gnu/errlist.c:1388
msgid "Not a XENIX named type file"
msgstr "Non é un ficheiro de tipo nomeado XENIX"
-#: sysdeps/gnu/errlist.c:1383
+#: sysdeps/gnu/errlist.c:1396
msgid "No XENIX semaphores available"
msgstr "Non hai semáforos XENIX dispoñibles"
-#: sysdeps/gnu/errlist.c:1391
+#: sysdeps/gnu/errlist.c:1404
msgid "Is a named type file"
msgstr "É un ficheiro de tipo con nome"
-#: sysdeps/gnu/errlist.c:1399
+#: sysdeps/gnu/errlist.c:1412
msgid "Remote I/O error"
msgstr "Erro de E/S remota"
-#: sysdeps/gnu/errlist.c:1407
+#: sysdeps/gnu/errlist.c:1420
msgid "No medium found"
msgstr "Non se atopou o medio"
-#: sysdeps/gnu/errlist.c:1415
+#: sysdeps/gnu/errlist.c:1428
msgid "Wrong medium type"
msgstr "Tipo de medio incorecto"
-#: sysdeps/gnu/errlist.c:1423
+#: sysdeps/gnu/errlist.c:1436
#, fuzzy
#| msgid "Resource temporarily unavailable"
msgid "Required key not available"
msgstr "Recurso non dispoñible temporalmente"
-#: sysdeps/gnu/errlist.c:1431
+#: sysdeps/gnu/errlist.c:1444
#, fuzzy
#| msgid "Timer expired"
msgid "Key has expired"
msgstr "Acabou o tempo"
-#: sysdeps/gnu/errlist.c:1439
+#: sysdeps/gnu/errlist.c:1452
#, fuzzy
#| msgid "Link has been severed"
msgid "Key has been revoked"
msgstr "O enlace foi roto"
-#: sysdeps/gnu/errlist.c:1447
+#: sysdeps/gnu/errlist.c:1460
msgid "Key was rejected by service"
msgstr ""
-#: sysdeps/gnu/errlist.c:1455
+#: sysdeps/gnu/errlist.c:1468
#, fuzzy
#| msgid "Operation not applicable"
msgid "Operation not possible due to RF-kill"
msgstr "Operación non aplicable"
-#: sysdeps/gnu/errlist.c:1463
+#: sysdeps/gnu/errlist.c:1476
msgid "Memory page has hardware error"
msgstr ""
@@ -6959,27 +6968,27 @@ msgstr ""
msgid "can't disable CET"
msgstr ""
-#: timezone/zdump.c:338
+#: timezone/zdump.c:332
msgid "has fewer than 3 characters"
msgstr ""
-#: timezone/zdump.c:340
+#: timezone/zdump.c:334
msgid "has more than 6 characters"
msgstr ""
-#: timezone/zdump.c:342
+#: timezone/zdump.c:336
msgid "has characters other than ASCII alphanumerics, '-' or '+'"
msgstr ""
-#: timezone/zdump.c:347
+#: timezone/zdump.c:341
#, c-format
msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n"
msgstr ""
-#: timezone/zdump.c:393
+#: timezone/zdump.c:387
#, c-format
msgid ""
-"%s: usage: %s OPTIONS ZONENAME ...\n"
+"%s: usage: %s OPTIONS TIMEZONE ...\n"
"Options include:\n"
" -c [L,]U Start at year L (default -500), end before year U (default 2500)\n"
" -t [L,]U Start at time L, end before time U (in seconds since 1970)\n"
@@ -6992,53 +7001,59 @@ msgid ""
"Report bugs to %s.\n"
msgstr ""
-#: timezone/zdump.c:479
+#: timezone/zdump.c:473
#, fuzzy, c-format
#| msgid "%s: Too many arguments\n"
msgid "%s: wild -c argument %s\n"
msgstr "%s: Demasiados parámetros\n"
-#: timezone/zdump.c:512
+#: timezone/zdump.c:506
#, fuzzy, c-format
#| msgid "%s: Too many arguments\n"
msgid "%s: wild -t argument %s\n"
msgstr "%s: Demasiados parámetros\n"
-#: timezone/zic.c:398
+#: timezone/zic.c:429
#, c-format
msgid "%s: Memory exhausted: %s\n"
msgstr "%s: Memoria esgotada: %s\n"
-#: timezone/zic.c:406
+#: timezone/zic.c:437
#, fuzzy
#| msgid "time overflow"
msgid "size overflow"
msgstr "desbordamento de tempo"
-#: timezone/zic.c:454
+#: timezone/zic.c:447
+#, fuzzy
+#| msgid "time overflow"
+msgid "alignment overflow"
+msgstr "desbordamento de tempo"
+
+#: timezone/zic.c:495
#, fuzzy
#| msgid "time overflow"
msgid "integer overflow"
msgstr "desbordamento de tempo"
-#: timezone/zic.c:488
+#: timezone/zic.c:529
#, fuzzy, c-format
#| msgid "\"%s\", line %d: %s"
msgid "\"%s\", line %<PRIdMAX>: "
msgstr "\"%s\", liña %d: %s"
-#: timezone/zic.c:491
+#: timezone/zic.c:532
#, fuzzy, c-format
#| msgid " (rule from \"%s\", line %d)"
msgid " (rule from \"%s\", line %<PRIdMAX>)"
msgstr " (regra de \"%s\", liña %d)"
-#: timezone/zic.c:510
+#: timezone/zic.c:551
#, c-format
msgid "warning: "
msgstr "aviso: "
-#: timezone/zic.c:535
+#: timezone/zic.c:576
#, fuzzy, c-format
#| msgid ""
#| "%s: usage is %s [ -s ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n"
@@ -7046,408 +7061,429 @@ msgstr "aviso: "
msgid ""
"%s: usage is %s [ --version ] [ --help ] [ -v ] \\\n"
"\t[ -l localtime ] [ -p posixrules ] [ -d directory ] \\\n"
-"\t[ -L leapseconds ] [ filename ... ]\n"
+"\t[ -t localtime-link ] [ -L leapseconds ] [ filename ... ]\n"
"\n"
"Report bugs to %s.\n"
msgstr ""
"%s: úsase %s [ -s ] [ -v ] [ -l horalocal ] [ -p regrasposix ]\n"
"\t [ -d directorio ] [ -L axuste ] [ -y tipoano ] [ ficheiro ... ]\n"
-#: timezone/zic.c:558
+#: timezone/zic.c:599
#, fuzzy, c-format
#| msgid "%s: Can't create %s: %s\n"
msgid "%s: Can't chdir to %s: %s\n"
msgstr "%s: Non se pode crear %s: %s\n"
-#: timezone/zic.c:590
+#: timezone/zic.c:632
msgid "wild compilation-time specification of zic_t"
msgstr ""
-#: timezone/zic.c:610
+#: timezone/zic.c:652
#, c-format
msgid "%s: More than one -d option specified\n"
msgstr "%s: Indicouse máis dunha opción -d\n"
-#: timezone/zic.c:620
+#: timezone/zic.c:662
#, c-format
msgid "%s: More than one -l option specified\n"
msgstr "%s: Indicouse máis dunha opción -l\n"
-#: timezone/zic.c:630
+#: timezone/zic.c:672
#, c-format
msgid "%s: More than one -p option specified\n"
msgstr "%s: Indicouse máis dunha opción -p\n"
-#: timezone/zic.c:640
+#: timezone/zic.c:680
+#, fuzzy, c-format
+#| msgid "%s: More than one -d option specified\n"
+msgid "%s: More than one -t option specified\n"
+msgstr "%s: Indicouse máis dunha opción -d\n"
+
+#: timezone/zic.c:689
+msgid "-y is obsolescent"
+msgstr ""
+
+#: timezone/zic.c:693
#, c-format
msgid "%s: More than one -y option specified\n"
msgstr "%s: Indicouse maís dunha opción -y\n"
-#: timezone/zic.c:650
+#: timezone/zic.c:703
#, c-format
msgid "%s: More than one -L option specified\n"
msgstr "%s: Indicouse máis dunha opción -L\n"
-#: timezone/zic.c:659
+#: timezone/zic.c:712
msgid "-s ignored"
msgstr ""
-#: timezone/zic.c:698
+#: timezone/zic.c:753
msgid "link to link"
msgstr ""
-#: timezone/zic.c:701 timezone/zic.c:705
+#: timezone/zic.c:756 timezone/zic.c:760
#, fuzzy
#| msgid "Too many links"
msgid "command line"
msgstr "Demasiados enlaces"
-#: timezone/zic.c:721
+#: timezone/zic.c:776
#, fuzzy
#| msgid "Bad file number"
msgid "empty file name"
msgstr "Número de ficheiro incorrecto"
-#: timezone/zic.c:724
+#: timezone/zic.c:779
#, c-format
msgid "file name '%s' begins with '/'"
msgstr ""
-#: timezone/zic.c:734
+#: timezone/zic.c:789
#, c-format
msgid "file name '%s' contains '%.*s' component"
msgstr ""
-#: timezone/zic.c:740
+#: timezone/zic.c:795
#, c-format
msgid "file name '%s' component contains leading '-'"
msgstr ""
-#: timezone/zic.c:743
+#: timezone/zic.c:798
#, c-format
msgid "file name '%s' contains overlength component '%.*s...'"
msgstr ""
-#: timezone/zic.c:771
+#: timezone/zic.c:826
#, c-format
msgid "file name '%s' contains byte '%c'"
msgstr ""
-#: timezone/zic.c:772
+#: timezone/zic.c:827
#, c-format
msgid "file name '%s' contains byte '\\%o'"
msgstr ""
-#: timezone/zic.c:842
+#: timezone/zic.c:897
#, fuzzy, c-format
#| msgid "%s: Can't link from %s to %s: %s\n"
msgid "%s: link from %s/%s failed: %s\n"
msgstr "%s: Non se pode enlazar %s con %s: %s\n"
-#: timezone/zic.c:852 timezone/zic.c:1815
+#: timezone/zic.c:907 timezone/zic.c:1876
#, fuzzy, c-format
#| msgid "%s: Can't remove %s: %s\n"
msgid "%s: Can't remove %s/%s: %s\n"
msgstr "%s: Non se pode borrar %s: %s\n"
-#: timezone/zic.c:874
+#: timezone/zic.c:931
#, c-format
msgid "symbolic link used because hard link failed: %s"
msgstr ""
-#: timezone/zic.c:882
+#: timezone/zic.c:939
#, fuzzy, c-format
#| msgid "%s: Can't create %s: %s\n"
msgid "%s: Can't read %s/%s: %s\n"
msgstr "%s: Non se pode crear %s: %s\n"
-#: timezone/zic.c:889 timezone/zic.c:1828
+#: timezone/zic.c:946 timezone/zic.c:1889
#, fuzzy, c-format
#| msgid "%s: Can't create %s: %s\n"
msgid "%s: Can't create %s/%s: %s\n"
msgstr "%s: Non se pode crear %s: %s\n"
-#: timezone/zic.c:898
+#: timezone/zic.c:955
#, c-format
msgid "copy used because hard link failed: %s"
msgstr ""
-#: timezone/zic.c:901
+#: timezone/zic.c:958
#, c-format
msgid "copy used because symbolic link failed: %s"
msgstr ""
-#: timezone/zic.c:1013 timezone/zic.c:1015
+#: timezone/zic.c:1032 timezone/zic.c:1034
msgid "same rule name in multiple files"
msgstr "o mesmo nome de regra aparece en varios ficheiros"
-#: timezone/zic.c:1056
-msgid "unruly zone"
-msgstr "fuso sen regras"
-
-#: timezone/zic.c:1063
+#: timezone/zic.c:1081
#, c-format
msgid "%s in ruleless zone"
msgstr "%s nunha zona sen regras"
-#: timezone/zic.c:1083
+#: timezone/zic.c:1101
msgid "standard input"
msgstr "entrada estándar"
-#: timezone/zic.c:1088
+#: timezone/zic.c:1106
#, c-format
msgid "%s: Can't open %s: %s\n"
msgstr "%s: Non se pode abrir %s: %s\n"
-#: timezone/zic.c:1099
+#: timezone/zic.c:1117
msgid "line too long"
msgstr "liña demasiado longa"
-#: timezone/zic.c:1119
+#: timezone/zic.c:1139
msgid "input line of unknown type"
msgstr "liña de entrada de tipo descoñecido"
-#: timezone/zic.c:1134
-#, fuzzy, c-format
-#| msgid "%s: Leap line in non leap seconds file %s\n"
-msgid "%s: Leap line in non leap seconds file %s"
-msgstr "%s: Liña de axuste no ficheiro %s, que non é de axuste de segundos\n"
-
-#: timezone/zic.c:1142 timezone/zic.c:1547 timezone/zic.c:1569
+#: timezone/zic.c:1158 timezone/zic.c:1593 timezone/zic.c:1615
#, c-format
msgid "%s: panic: Invalid l_value %d\n"
msgstr "%s: pánico: l_value %d incorrecto\n"
-#: timezone/zic.c:1151
+#: timezone/zic.c:1167
msgid "expected continuation line not found"
msgstr "non se atopou a liña de continuación que se esperaba"
-#: timezone/zic.c:1193 timezone/zic.c:2976
+#: timezone/zic.c:1203
+msgid "fractional seconds rejected by pre-2018 versions of zic"
+msgstr ""
+
+#: timezone/zic.c:1221 timezone/zic.c:3078
msgid "time overflow"
msgstr "desbordamento de tempo"
-#: timezone/zic.c:1198
+#: timezone/zic.c:1227
msgid "values over 24 hours not handled by pre-2007 versions of zic"
msgstr ""
-#: timezone/zic.c:1209
+#: timezone/zic.c:1245
+msgid "invalid saved time"
+msgstr "hora gravada incorrecta"
+
+#: timezone/zic.c:1256
msgid "wrong number of fields on Rule line"
msgstr "número de campos na liña Rule incorrecto"
-#: timezone/zic.c:1213
-msgid "nameless rule"
-msgstr "regra sen nome"
-
-#: timezone/zic.c:1218
-msgid "invalid saved time"
-msgstr "hora gravada incorrecta"
+#: timezone/zic.c:1265
+#, fuzzy, c-format
+#| msgid "Invalid numeric gid \"%s\"!"
+msgid "Invalid rule name \"%s\""
+msgstr "¡Identificación numérica de grupo \"%s\" non válida!"
-#: timezone/zic.c:1235
+#: timezone/zic.c:1287
msgid "wrong number of fields on Zone line"
msgstr "número de campos na liña Zone incorrecto"
-#: timezone/zic.c:1240
+#: timezone/zic.c:1292
#, c-format
msgid "\"Zone %s\" line and -l option are mutually exclusive"
msgstr "A liña \"Zone %s\" e a opción -l son mutuamente exclusivas"
-#: timezone/zic.c:1246
+#: timezone/zic.c:1298
#, c-format
msgid "\"Zone %s\" line and -p option are mutually exclusive"
msgstr "A liña \"Zone %s\" e a opción -p son mutuamente exclusivas"
-#: timezone/zic.c:1253
+#: timezone/zic.c:1305
#, fuzzy, c-format
#| msgid "duplicate zone name %s (file \"%s\", line %d)"
msgid "duplicate zone name %s (file \"%s\", line %<PRIdMAX>)"
msgstr "fuso horario %s duplicado (ficheiro \"%s\", liña %d)"
-#: timezone/zic.c:1267
+#: timezone/zic.c:1319
msgid "wrong number of fields on Zone continuation line"
msgstr "número de campos na liña de continuación de Zone incorrecto"
-#: timezone/zic.c:1307
+#: timezone/zic.c:1359
#, fuzzy
#| msgid "invalid UTC offset"
msgid "invalid UT offset"
msgstr "desprazamento UTC incorrecto"
-#: timezone/zic.c:1311
+#: timezone/zic.c:1363
msgid "invalid abbreviation format"
msgstr "formato de abreviatura incorrecto"
-#: timezone/zic.c:1320
+#: timezone/zic.c:1372
#, c-format
msgid "format '%s' not handled by pre-2015 versions of zic"
msgstr ""
-#: timezone/zic.c:1347
+#: timezone/zic.c:1399
msgid "Zone continuation line end time is not after end time of previous line"
msgstr "A hora final da liña de continuación de fuso horario non segue á hora final da liña anterior"
-#: timezone/zic.c:1374
+#: timezone/zic.c:1426
msgid "wrong number of fields on Leap line"
msgstr "número de campos na liña Leap incorrecto"
-#: timezone/zic.c:1383
+#: timezone/zic.c:1435
msgid "invalid leaping year"
msgstr "ano bisesto incorrecto"
-#: timezone/zic.c:1403 timezone/zic.c:1501
+#: timezone/zic.c:1455 timezone/zic.c:1547
msgid "invalid month name"
msgstr "nome do mes incorrecto"
-#: timezone/zic.c:1416 timezone/zic.c:1614 timezone/zic.c:1628
+#: timezone/zic.c:1468 timezone/zic.c:1663 timezone/zic.c:1677
msgid "invalid day of month"
msgstr "día do mes incorrecto"
-#: timezone/zic.c:1421
+#: timezone/zic.c:1473
msgid "time too small"
msgstr ""
-#: timezone/zic.c:1425
+#: timezone/zic.c:1477
#, fuzzy
#| msgid "File too large"
msgid "time too large"
msgstr "Ficheiro demasiado grande"
-#: timezone/zic.c:1429 timezone/zic.c:1530
+#: timezone/zic.c:1481 timezone/zic.c:1576
msgid "invalid time of day"
msgstr "hora do día incorrecta"
-#: timezone/zic.c:1448
+#: timezone/zic.c:1494
msgid "illegal CORRECTION field on Leap line"
msgstr "campo CORRECTION ilegal na liña Leap"
-#: timezone/zic.c:1453
+#: timezone/zic.c:1499
msgid "illegal Rolling/Stationary field on Leap line"
msgstr "campo Rolling/Stationary ilegal na liña Leap"
-#: timezone/zic.c:1459
-msgid "leap second precedes Big Bang"
+#: timezone/zic.c:1505
+msgid "leap second precedes Epoch"
msgstr ""
-#: timezone/zic.c:1472
+#: timezone/zic.c:1518
msgid "wrong number of fields on Link line"
msgstr "número de campos na liña Link incorrecto"
-#: timezone/zic.c:1476
+#: timezone/zic.c:1522
msgid "blank FROM field on Link line"
msgstr "campo FROM baleiro na liña Link"
-#: timezone/zic.c:1551
+#: timezone/zic.c:1597
msgid "invalid starting year"
msgstr "ano de inicio incorrecto"
-#: timezone/zic.c:1573
+#: timezone/zic.c:1619
msgid "invalid ending year"
msgstr "ano final incorecto"
-#: timezone/zic.c:1577
+#: timezone/zic.c:1623
msgid "starting year greater than ending year"
msgstr "o ano de comezo é maior có ano final"
-#: timezone/zic.c:1584
+#: timezone/zic.c:1630
msgid "typed single year"
msgstr "ano único con tipo"
-#: timezone/zic.c:1619
+#: timezone/zic.c:1633
+#, c-format
+msgid "year type \"%s\" is obsolete; use \"-\" instead"
+msgstr ""
+
+#: timezone/zic.c:1668
msgid "invalid weekday name"
msgstr "día da semana incorrecto"
-#: timezone/zic.c:1743
+#: timezone/zic.c:1800
#, c-format
msgid "reference clients mishandle more than %d transition times"
msgstr ""
-#: timezone/zic.c:1747
+#: timezone/zic.c:1804
msgid "pre-2014 clients may mishandle more than 1200 transition times"
msgstr ""
-#: timezone/zic.c:1858
+#: timezone/zic.c:1920
#, fuzzy
#| msgid "too many transitions?!"
msgid "too many transition times"
msgstr "!¿demasiadas transicións?!"
-#: timezone/zic.c:2047
+#: timezone/zic.c:2107
#, c-format
-msgid "%%z UTC offset magnitude exceeds 99:59:59"
+msgid "%%z UT offset magnitude exceeds 99:59:59"
msgstr ""
-#: timezone/zic.c:2424
+#: timezone/zic.c:2488
msgid "no POSIX environment variable for zone"
msgstr ""
-#: timezone/zic.c:2430
+#: timezone/zic.c:2494
#, c-format
msgid "%s: pre-%d clients may mishandle distant timestamps"
msgstr ""
-#: timezone/zic.c:2566
+#: timezone/zic.c:2631
msgid "two rules for same instant"
msgstr ""
-#: timezone/zic.c:2627
+#: timezone/zic.c:2696
msgid "can't determine time zone abbreviation to use just after until time"
msgstr "non podo determina-la abreviatura do fuso horario a usar despois da hora"
-#: timezone/zic.c:2725
+#: timezone/zic.c:2785
msgid "too many local time types"
msgstr "demasiados tipos de hora local"
-#: timezone/zic.c:2729
+#: timezone/zic.c:2789
#, fuzzy
#| msgid "Link number out of range"
msgid "UT offset out of range"
msgstr "Número de enlace fóra de rango"
-#: timezone/zic.c:2753
+#: timezone/zic.c:2813
msgid "too many leap seconds"
msgstr "demasiados segundos de compensación"
-#: timezone/zic.c:2759
-msgid "repeated leap second moment"
-msgstr "momento de segundo de corrección repetido"
+#: timezone/zic.c:2844
+msgid "Leap seconds too close together"
+msgstr ""
-#: timezone/zic.c:2830
+#: timezone/zic.c:2891
msgid "Wild result from command execution"
msgstr "Resultado salvaxe da execución do comando"
-#: timezone/zic.c:2831
+#: timezone/zic.c:2892
#, c-format
msgid "%s: command was '%s', result was %d\n"
msgstr "%s: o comando foi '%s', e o resultado foi %d\n"
-#: timezone/zic.c:2961
+#: timezone/zic.c:2998
+#, c-format
+msgid "\"%s\" is undocumented; use \"last%s\" instead"
+msgstr ""
+
+#: timezone/zic.c:3029
+#, c-format
+msgid "\"%s\" is ambiguous in pre-2017c zic"
+msgstr ""
+
+#: timezone/zic.c:3063
msgid "Odd number of quotation marks"
msgstr "Número de comiñas impar"
-#: timezone/zic.c:3046
+#: timezone/zic.c:3157
msgid "use of 2/29 in non leap-year"
msgstr "uso do 29 de febreiro nun ano non bisesto"
-#: timezone/zic.c:3081
+#: timezone/zic.c:3192
msgid "rule goes past start/end of month; will not work with pre-2004 versions of zic"
msgstr ""
-#: timezone/zic.c:3108
+#: timezone/zic.c:3219
msgid "time zone abbreviation has fewer than 3 characters"
msgstr ""
-#: timezone/zic.c:3110
+#: timezone/zic.c:3221
msgid "time zone abbreviation has too many characters"
msgstr ""
-#: timezone/zic.c:3112
+#: timezone/zic.c:3223
msgid "time zone abbreviation differs from POSIX standard"
msgstr ""
-#: timezone/zic.c:3118
+#: timezone/zic.c:3229
msgid "too many, or too long, time zone abbreviations"
msgstr "demasiadas abreviaturas de fuso horario, ou demasiado longas"
-#: timezone/zic.c:3161
+#: timezone/zic.c:3275
#, fuzzy, c-format
#| msgid "%s: Can't create directory %s: %s\n"
msgid "%s: Can't create directory %s: %s"
@@ -7696,12 +7732,21 @@ msgstr "%s: Non se pode crea-lo directorio %s: %s\n"
#~ msgid "hard link failed, symbolic link used"
#~ msgstr "non se pode facer un enlace duro, úsase un enlace simbólico"
+#~ msgid "unruly zone"
+#~ msgstr "fuso sen regras"
+
+#~ msgid "%s: Leap line in non leap seconds file %s\n"
+#~ msgstr "%s: Liña de axuste no ficheiro %s, que non é de axuste de segundos\n"
+
#~ msgid "%s: Error reading %s\n"
#~ msgstr "%s: Erro ao ler %s\n"
#~ msgid "%s: Error closing %s: %s\n"
#~ msgstr "%s: Erro ao pechar %s: %s\n"
+#~ msgid "nameless rule"
+#~ msgstr "regra sen nome"
+
#~ msgid "time before zero"
#~ msgstr "tempo antes de cero"
@@ -7726,6 +7771,9 @@ msgstr "%s: Non se pode crea-lo directorio %s: %s\n"
#~ msgid "internal error - addtype called with bad ttisgmt"
#~ msgstr "erro interno - chamouse a addtype cun ttisgmt incorrecto"
+#~ msgid "repeated leap second moment"
+#~ msgstr "momento de segundo de corrección repetido"
+
#~ msgid "no day in month matches rule"
#~ msgstr "ningún día do mes coincide coa regra"
@@ -7903,12 +7951,18 @@ msgstr "%s: Non se pode crea-lo directorio %s: %s\n"
#~ msgid "empty dynamics string token substitution"
#~ msgstr "substitución de elementos de cadea de dinámica baleira"
+#~ msgid "cannot open zero fill device"
+#~ msgstr "non se pode abrir un dispositivo de recheo de ceros"
+
#~ msgid "cannot allocate TLS data structures for initial thread"
#~ msgstr "non se poden crea-las estructuras de datos TLS para o fío inicial"
#~ msgid "cannot handle TLS data"
#~ msgstr "non se poden manexa-los datos TLS"
+#~ msgid "relocation error"
+#~ msgstr "erro de cambio de reserva"
+
#~ msgid "shared object cannot be dlopen()ed: static TLS memory too small"
#~ msgstr "non se pode facer dlopen() sobre o obxecto compartido: a memoria TLS estática é pequena de máis"
diff --git a/po/hr.po b/po/hr.po
index f27ddf4d71..47359f8ced 100644
--- a/po/hr.po
+++ b/po/hr.po
@@ -1,15 +1,16 @@
-# This is translation of libc to Croatian.
-# Copyright © 2002, 2012 Free Software Foundation, Inc.
+# This is translation of GNU libc messages to Croatian.
+# Copyright © 2002, 2012, 2019 Free Software Foundation, Inc.
# This file is distributed under the same license as the glibc package.
#
# Denis Lackovic <delacko@fly.srk.fer.hr>, 2002.
# Tomislav Krznar <tomislav.krznar@gmail.com>, 2012.
-# Božidar Putanec <bozidarp@yahoo.com>, 2018.
+# Božidar Putanec <bozidarp@yahoo.com>, 2018, 2019.
+#
msgid ""
msgstr ""
-"Project-Id-Version: libc-2.27.9000\n"
-"POT-Creation-Date: 2018-07-26 22:19-0400\n"
-"PO-Revision-Date: 2018-07-29 13:51+0200\n"
+"Project-Id-Version: libc-2.28.9000\n"
+"POT-Creation-Date: 2019-07-18 13:28-0400\n"
+"PO-Revision-Date: 2019-02-08 16:27-0800\n"
"Last-Translator: Božidar Putanec <bozidarp@yahoo.com>\n"
"Language-Team: Croatian <lokalizacija@linux.hr>\n"
"Language: hr\n"
@@ -18,7 +19,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-"X-Generator: Poedit 2.1.1\n"
+"X-Generator: Lokalize 2.0\n"
#: argp/argp-help.c:227
#, c-format
@@ -61,7 +62,7 @@ msgstr "Pokušajte „%s --help“ ili „%s --usage“ za više informacija.\n"
#: argp/argp-help.c:1671
#, c-format
msgid "Report bugs to %s.\n"
-msgstr "Prijavite greške na %s.\n"
+msgstr "Prijavite (na engleskom) greške na %s.\n"
#: argp/argp-parse.c:101
msgid "Give this help list"
@@ -79,15 +80,15 @@ msgstr "IME"
#: argp/argp-parse.c:104
msgid "Set the program name"
-msgstr "Postavi ime programa"
+msgstr "postavi ime programa"
#: argp/argp-parse.c:105
msgid "SECS"
-msgstr "SEK"
+msgstr "SECS"
#: argp/argp-parse.c:106
msgid "Hang for SECS seconds (default 3600)"
-msgstr "pauzira SEK sekundi (zadano 3600)"
+msgstr "pauzira SECS sekundi (zadano 3600)"
#: argp/argp-parse.c:167
msgid "Print program version"
@@ -154,10 +155,10 @@ msgstr ""
"[IZLAZNA-DATOTEKA [ULAZNA-DATOTEKA]...]"
#: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:308
-#: elf/pldd.c:252 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
-#: iconv/iconvconfig.c:379 locale/programs/locale.c:275
-#: locale/programs/localedef.c:427 login/programs/pt_chown.c:89
-#: malloc/memusagestat.c:563 nss/getent.c:933 nss/makedb.c:369
+#: elf/pldd.c:247 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
+#: iconv/iconvconfig.c:379 locale/programs/locale.c:276
+#: locale/programs/localedef.c:437 login/programs/pt_chown.c:89
+#: malloc/memusagestat.c:563 nss/getent.c:953 nss/makedb.c:369
#: posix/getconf.c:503 sysdeps/unix/sysv/linux/lddlibc4.c:61
#, c-format
msgid ""
@@ -168,11 +169,11 @@ msgstr ""
"%s.\n"
#: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64
-#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75
+#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:263 elf/sotruss.sh:75
#: elf/sprof.c:389 iconv/iconv_prog.c:422 iconv/iconvconfig.c:396
-#: locale/programs/locale.c:292 locale/programs/localedef.c:453
+#: locale/programs/locale.c:293 locale/programs/localedef.c:463
#: login/programs/pt_chown.c:63 malloc/memusage.sh:71
-#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:87 nss/makedb.c:385
+#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:88 nss/makedb.c:385
#: posix/getconf.c:485 sysdeps/unix/sysv/linux/lddlibc4.c:68
#, c-format
msgid ""
@@ -185,10 +186,10 @@ msgstr ""
"NEMA jamstava; Äak ni za PRODAJU ili UPOTREBU ZA ODREÄENU NAMJENU.\n"
#: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68
-#: elf/ldconfig.c:329 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:427
-#: iconv/iconvconfig.c:401 locale/programs/locale.c:297
-#: locale/programs/localedef.c:458 malloc/memusage.sh:75
-#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:92 nss/makedb.c:390
+#: elf/ldconfig.c:329 elf/pldd.c:268 elf/sprof.c:395 iconv/iconv_prog.c:427
+#: iconv/iconvconfig.c:401 locale/programs/locale.c:298
+#: locale/programs/localedef.c:468 malloc/memusage.sh:75
+#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:93 nss/makedb.c:390
#: posix/getconf.c:490
#, c-format
msgid "Written by %s.\n"
@@ -259,21 +260,21 @@ msgstr "nije moguće otvoriti izlaznu datoteku „%s“"
msgid "invalid escape sequence"
msgstr "nevaljana kontrolna sekvencija (escape sequence)"
-#: catgets/gencat.c:1209
+#: catgets/gencat.c:1211
msgid "unterminated message"
msgstr "poruka nije završila"
-#: catgets/gencat.c:1233
+#: catgets/gencat.c:1235
#, c-format
msgid "while opening old catalog file"
msgstr "pri otvaranju starog kataloga"
-#: catgets/gencat.c:1324
+#: catgets/gencat.c:1326
#, c-format
msgid "conversion modules not available"
msgstr "moduli pretvorbe nisu dostupni"
-#: catgets/gencat.c:1350
+#: catgets/gencat.c:1352
#, c-format
msgid "cannot determine escape character"
msgstr "nije moguće odrediti escape znak (znak za maskiranje)"
@@ -399,7 +400,7 @@ msgstr "Nepoznati OS"
msgid ", OS ABI: %s %d.%d.%d"
msgstr ", OS ABI: %s %d.%d.%d"
-#: elf/cache.c:163 elf/ldconfig.c:1332
+#: elf/cache.c:163 elf/ldconfig.c:1333
#, c-format
msgid "Can't open cache file %s\n"
msgstr "Nije moguće otvoriti cache-datoteku %s\n"
@@ -409,38 +410,38 @@ msgstr "Nije moguće otvoriti cache-datoteku %s\n"
msgid "mmap of cache file failed.\n"
msgstr "mmap (mapiranje) cache-datoteke nije uspjelo.\n"
-#: elf/cache.c:181 elf/cache.c:195
+#: elf/cache.c:181 elf/cache.c:195 elf/cache.c:205
#, c-format
msgid "File is not a cache file.\n"
msgstr "To nije cache-datoteka.\n"
-#: elf/cache.c:228 elf/cache.c:238
+#: elf/cache.c:233 elf/cache.c:243
#, c-format
msgid "%d libs found in cache `%s'\n"
msgstr "%d biblioteka je pronađena u predmemoriji (cache) „%s“\n"
-#: elf/cache.c:432
+#: elf/cache.c:437
#, c-format
msgid "Can't create temporary cache file %s"
msgstr "Nije moguće stvoriti privremenu cache-datoteku %s"
-#: elf/cache.c:440 elf/cache.c:450 elf/cache.c:454 elf/cache.c:458
-#: elf/cache.c:468
+#: elf/cache.c:445 elf/cache.c:455 elf/cache.c:459 elf/cache.c:463
+#: elf/cache.c:473
#, c-format
msgid "Writing of cache data failed"
msgstr "Zapisivanje podataka iz predmemorije (cache) nije uspjelo"
-#: elf/cache.c:463
+#: elf/cache.c:468
#, c-format
msgid "Changing access rights of %s to %#o failed"
msgstr "Promjena prava pristupa %s u %#o nije uspjela"
-#: elf/cache.c:472
+#: elf/cache.c:477
#, c-format
msgid "Renaming of %s to %s failed"
msgstr "Preimenovanje %s u %s nije uspjelo"
-#: elf/dl-close.c:399 elf/dl-open.c:420
+#: elf/dl-close.c:399 elf/dl-open.c:424
msgid "cannot create scope list"
msgstr "nije moguće stvoriti popis dosega (scope list)"
@@ -519,121 +520,123 @@ msgstr "nije moguće stvoriti polje za pretraživanje staza"
#: elf/dl-load.c:883
msgid "cannot stat shared object"
-msgstr "nije moguće naći zajedniÄki objekt"
+msgstr "nije moguće stat zajedniÄki objekt"
-#: elf/dl-load.c:960
-msgid "cannot open zero fill device"
-msgstr "nije moguće otvoriti nulama ispunjeni uređaj"
-
-#: elf/dl-load.c:1007 elf/dl-load.c:2203
+#: elf/dl-load.c:992 elf/dl-load.c:2198
msgid "cannot create shared object descriptor"
msgstr "nije moguće stvoriti deskriptor zajedniÄkog objekta"
-#: elf/dl-load.c:1026 elf/dl-load.c:1560 elf/dl-load.c:1673
+#: elf/dl-load.c:1011 elf/dl-load.c:1555 elf/dl-load.c:1668
msgid "cannot read file data"
msgstr "nije moguće proÄitati podatke iz datoteke"
-#: elf/dl-load.c:1072
+#: elf/dl-load.c:1057
msgid "ELF load command alignment not page-aligned"
msgstr "poravnanje uÄitane ELF naredbe nije na granici stranice"
-#: elf/dl-load.c:1079
+#: elf/dl-load.c:1064
msgid "ELF load command address/offset not properly aligned"
msgstr "adresa/odmak uÄitane ELF naredbe nije ispravno poravnana"
-#: elf/dl-load.c:1161
+#: elf/dl-load.c:1146
msgid "cannot process note segment"
msgstr "nije moguće procesirati notni segment"
-#: elf/dl-load.c:1172
+#: elf/dl-load.c:1157
msgid "object file has no loadable segments"
msgstr "datoteka objekta nema segmenata koji se mogu uÄitati"
-#: elf/dl-load.c:1181 elf/dl-load.c:1652
+#: elf/dl-load.c:1170 elf/dl-load.c:1647
msgid "cannot dynamically load executable"
msgstr "nije moguće dinamiÄki uÄitati izvrÅ¡nu datoteku"
-#: elf/dl-load.c:1202
+#: elf/dl-load.c:1191
msgid "object file has no dynamic section"
msgstr "datoteka objekta nema dinamiÄku sekciju"
-#: elf/dl-load.c:1225
+#: elf/dl-load.c:1218
+#, fuzzy
+#| msgid "cannot dynamically load executable"
+msgid "cannot dynamically load position-independent executable"
+msgstr "nije moguće dinamiÄki uÄitati izvrÅ¡nu datoteku"
+
+#: elf/dl-load.c:1220
msgid "shared object cannot be dlopen()ed"
msgstr "zajedniÄki objekt nije moguće otvoriti s dlopen()"
-#: elf/dl-load.c:1238
+#: elf/dl-load.c:1233
msgid "cannot allocate memory for program header"
msgstr "nije moguće dodijeliti memoriju za zaglavlje programa"
-#: elf/dl-load.c:1271 elf/dl-load.h:130
+#: elf/dl-load.c:1266 elf/dl-load.h:130
msgid "cannot change memory protections"
msgstr "nije moguće promijeniti zaštitu memorije"
-#: elf/dl-load.c:1291
+#: elf/dl-load.c:1286
msgid "cannot enable executable stack as shared object requires"
-msgstr "nije moguće koristiti izvrÅ¡ni stog kako to zahtijeva zajedniÄki objekt"
+msgstr "nije moguće koristiti izvrÅ¡ni stÈg kako to zahtijeva zajedniÄki objekt"
-#: elf/dl-load.c:1304
+#: elf/dl-load.c:1299
msgid "cannot close file descriptor"
msgstr "nije moguće zatvoriti deskriptor datoteke"
-#: elf/dl-load.c:1560
+#: elf/dl-load.c:1555
msgid "file too short"
msgstr "datoteka je prekratka"
-#: elf/dl-load.c:1595
+#: elf/dl-load.c:1590
msgid "invalid ELF header"
msgstr "nevaljano ELF zaglavlje"
-#: elf/dl-load.c:1607
+#: elf/dl-load.c:1602
msgid "ELF file data encoding not big-endian"
msgstr "Kodiranje podataka ELF datoteke nije big-endian"
-#: elf/dl-load.c:1609
+#: elf/dl-load.c:1604
msgid "ELF file data encoding not little-endian"
msgstr "Kodiranje podataka ELF datoteke nije little-endian"
-#: elf/dl-load.c:1613
+#: elf/dl-load.c:1608
msgid "ELF file version ident does not match current one"
msgstr "Identifikacija inaÄice ELF datoteke ne slaže se s aktualnom"
-#: elf/dl-load.c:1617
+#: elf/dl-load.c:1612
msgid "ELF file OS ABI invalid"
msgstr "OS ABI od ELF datoteke nije valjani"
-#: elf/dl-load.c:1620
+#: elf/dl-load.c:1615
msgid "ELF file ABI version invalid"
msgstr "ABI inaÄica od ELF datoteke nije valjana"
-#: elf/dl-load.c:1623
+#: elf/dl-load.c:1618
msgid "nonzero padding in e_ident"
msgstr "popuna u e_ident() nisu nule"
-#: elf/dl-load.c:1626
+#: elf/dl-load.c:1621
msgid "internal error"
msgstr "**interna greška**"
-#: elf/dl-load.c:1633
+#: elf/dl-load.c:1628
msgid "ELF file version does not match current one"
msgstr "InaÄica ELF datoteke ne slaže se s aktualnom"
-#: elf/dl-load.c:1641
+#: elf/dl-load.c:1636
msgid "only ET_DYN and ET_EXEC can be loaded"
msgstr "mogu se uÄitati samo ET_DYN i ET_EXEC"
-#: elf/dl-load.c:1657
+#: elf/dl-load.c:1652
msgid "ELF file's phentsize not the expected size"
msgstr "phentsize ELF datoteke nije oÄekivane veliÄine"
-#: elf/dl-load.c:2222
+#: elf/dl-load.c:2217
msgid "wrong ELF class: ELFCLASS64"
msgstr "nevaljana ELF klasa: ELFCLASS64"
-#: elf/dl-load.c:2223
+#: elf/dl-load.c:2218
msgid "wrong ELF class: ELFCLASS32"
msgstr "nevaljana ELF klasa: ELFCLASS32"
-#: elf/dl-load.c:2226
+#: elf/dl-load.c:2221
msgid "cannot open shared object file"
msgstr "nije moguće otvoriti datoteku zajedniÄkoga objekta"
@@ -645,11 +648,7 @@ msgstr "nije uspjelo mapirati segment iz zajedniÄkog objekta u memoriju"
msgid "cannot map zero-fill pages"
msgstr "nulama ispunjene stranice ne mogu se mapirati u memoriju"
-#: elf/dl-lookup.c:835
-msgid "relocation error"
-msgstr "greška premještanja"
-
-#: elf/dl-lookup.c:858
+#: elf/dl-lookup.c:830
msgid "symbol lookup error"
msgstr "greška u potrazi za simbolom"
@@ -657,21 +656,21 @@ msgstr "greška u potrazi za simbolom"
msgid "cannot extend global scope"
msgstr "nije moguće proširiti globalni opseg"
-#: elf/dl-open.c:470
+#: elf/dl-open.c:474
msgid "TLS generation counter wrapped! Please report this."
msgstr ""
"BrojaÄ TLS generatora ponovno je poÄeo od nule!\n"
"Ovo je ** programska pogreška **. Molimo da to prijavite."
-#: elf/dl-open.c:534
+#: elf/dl-open.c:538
msgid "invalid mode for dlopen()"
msgstr "nevaljani mod za dlopen()"
-#: elf/dl-open.c:551
+#: elf/dl-open.c:555
msgid "no more namespaces available for dlmopen()"
msgstr "nema više imenskih prostora dostupnih za dlmopen()"
-#: elf/dl-open.c:575
+#: elf/dl-open.c:579
msgid "invalid target namespace in dlmopen()"
msgstr "nevaljani ciljani imenski prostor u dlopen()"
@@ -679,20 +678,20 @@ msgstr "nevaljani ciljani imenski prostor u dlopen()"
msgid "cannot allocate memory in static TLS block"
msgstr "nije moguće dodijeliti memoriju u statiÄkom TLS bloku"
-#: elf/dl-reloc.c:205
+#: elf/dl-reloc.c:213
msgid "cannot make segment writable for relocation"
msgstr "nije moguće napraviti segment za premještanje u koji je moguće pisati"
-#: elf/dl-reloc.c:276
+#: elf/dl-reloc.c:272
#, c-format
msgid "%s: out of memory to store relocation results for %s\n"
msgstr "%s: nema dovoljno memorije za spremanje rezultata premještanja za %s\n"
-#: elf/dl-reloc.c:292
+#: elf/dl-reloc.c:288
msgid "cannot restore segment prot after reloc"
msgstr "nije moguće obnoviti zaštitu segmenta nakon premještanja"
-#: elf/dl-reloc.c:323
+#: elf/dl-reloc.c:319
msgid "cannot apply additional memory protection after relocation"
msgstr "nije moguće primijeniti dodatnu zaštitu memorije nakon premještanja"
@@ -799,7 +798,7 @@ msgstr "Nije moguće dobiti status %s\n"
#: elf/ldconfig.c:499
#, c-format
msgid "%s is not a symbolic link\n"
-msgstr "%s nije simboliÄka veza\n"
+msgstr "%s nije simboliÄka poveznica\n"
#: elf/ldconfig.c:518
#, c-format
@@ -837,7 +836,7 @@ msgstr "Ignorira datoteku %s jer nije obiÄna datoteka."
#: elf/ldconfig.c:619
#, c-format
msgid "No link created since soname could not be found for %s"
-msgstr "Nijedna veza nije stvorena jer soname nije bilo moguće naći za %s"
+msgstr "Nijedna poveznica nije stvorena jer soname nije bilo moguće naći za %s"
#: elf/ldconfig.c:702
#, c-format
@@ -852,7 +851,7 @@ msgstr "Ulazna datoteka %s nije pronađena.\n"
#: elf/ldconfig.c:794
#, c-format
msgid "Cannot stat %s"
-msgstr "Nije moguće dobiti status za %s"
+msgstr "Nije moguće stat %s"
#: elf/ldconfig.c:939
#, c-format
@@ -910,24 +909,24 @@ msgstr "treba apsolutno ime datoteke za konfiguracijsku datoteku kad se koristi
#: malloc/obstack.c:418 posix/getconf.c:458 posix/getconf.c:697
#, c-format
msgid "memory exhausted"
-msgstr "memorija je iscrpljena"
+msgstr "nema dovoljno memorije"
-#: elf/ldconfig.c:1233
+#: elf/ldconfig.c:1234
#, c-format
msgid "%s:%u: cannot read directory %s"
msgstr "%s:%u: nije moguće Äitati direktorij %s"
-#: elf/ldconfig.c:1281
+#: elf/ldconfig.c:1282
#, c-format
msgid "relative path `%s' used to build cache"
msgstr "relativna staza „%s“ korištena je za izgradnju predmemorije"
-#: elf/ldconfig.c:1311
+#: elf/ldconfig.c:1312
#, c-format
msgid "Can't chdir to /"
msgstr "Nije moguće promijeniti direktorij u / (root)"
-#: elf/ldconfig.c:1352
+#: elf/ldconfig.c:1353
#, c-format
msgid "Can't open cache file directory %s\n"
msgstr "Nije moguće otvoriti direktorij %s s cache-datotekom\n"
@@ -999,95 +998,101 @@ msgstr "završen s nepoznatim izlaznim kodom"
msgid "error: you do not have read permission for"
msgstr "greÅ¡ka: nemate prava Äitanja za"
-#: elf/pldd-xx.c:105
+#: elf/pldd-xx.c:102
#, c-format
msgid "cannot find program header of process"
msgstr "nije moguće pronaći zaglavlje programa od procesa"
-#: elf/pldd-xx.c:110
+#: elf/pldd-xx.c:106
#, c-format
msgid "cannot read program header"
msgstr "nije moguće proÄitati zaglavlje programa"
-#: elf/pldd-xx.c:135
+#: elf/pldd-xx.c:128
#, c-format
msgid "cannot read dynamic section"
msgstr "nije moguće proÄitati dinamiÄku sekciju"
-#: elf/pldd-xx.c:147
+#: elf/pldd-xx.c:137
#, c-format
msgid "cannot read r_debug"
msgstr "nije moguće proÄitati r_debug"
-#: elf/pldd-xx.c:167
+#: elf/pldd-xx.c:154
#, c-format
msgid "cannot read program interpreter"
msgstr "nije moguće proÄitati interpreter programa"
-#: elf/pldd-xx.c:197
+#: elf/pldd-xx.c:183
#, c-format
msgid "cannot read link map"
-msgstr "nije moguće proÄitati mapu veza (link map)"
+msgstr "nije moguće proÄitati mapu poveznica (link map)"
-#: elf/pldd-xx.c:209
+#: elf/pldd-xx.c:190
#, c-format
msgid "cannot read object name"
msgstr "nije moguće proÄitati ime objekta"
-#: elf/pldd-xx.c:219
+#: elf/pldd-xx.c:197
#, c-format
msgid "cannot allocate buffer for object name"
msgstr "nije moguće dodijeliti međuspremnik za ime objekta"
-#: elf/pldd.c:64
+#: elf/pldd.c:58
msgid "List dynamic shared objects loaded into process."
msgstr "Izlista dinamiÄke dijeljene objekte uÄitane u proces."
-#: elf/pldd.c:68
+#: elf/pldd.c:62
msgid "PID"
msgstr "PID"
-#: elf/pldd.c:100
+#: elf/pldd.c:89
#, c-format
msgid "Exactly one parameter with process ID required.\n"
msgstr "Potreban je jedan i samo jedan parametar s ID-om procesa (PID).\n"
-#: elf/pldd.c:112
+#: elf/pldd.c:103
#, c-format
msgid "invalid process ID '%s'"
msgstr "nevaljani ID procesa „%s“"
-#: elf/pldd.c:120
+#: elf/pldd.c:111
#, c-format
msgid "cannot open %s"
msgstr "nije moguće otvoriti %s"
-#: elf/pldd.c:152
+#: elf/pldd.c:142
#, c-format
msgid "cannot open %s/task"
msgstr "nije moguće otvoriti %s/task"
-#: elf/pldd.c:155
+#: elf/pldd.c:145
#, c-format
msgid "cannot prepare reading %s/task"
msgstr "nije moguće pripremiti Äitanje %s/task"
-#: elf/pldd.c:168
+#: elf/pldd.c:158
#, c-format
msgid "invalid thread ID '%s'"
msgstr "nevaljani ID dretve „%s“"
-#: elf/pldd.c:179
+#: elf/pldd.c:169
#, c-format
msgid "cannot attach to process %lu"
msgstr "nije moguće pridodati procesu %lu"
-#: elf/pldd.c:294
+#: elf/pldd.c:184
+#, fuzzy, c-format
+#| msgid "invalid saved time"
+msgid "no valid %s/task entries"
+msgstr "nevaljano saÄuvano vrijeme"
+
+#: elf/pldd.c:290
#, c-format
msgid "cannot get information about process %lu"
msgstr "nije moguće dobiti informacije o procesu %lu"
-#: elf/pldd.c:307
+#: elf/pldd.c:303
#, c-format
msgid "process %lu is no ELF program"
msgstr "proces %lu nije ELF program"
@@ -1186,7 +1191,7 @@ msgstr "%s: nevaljano odredište: %s\n"
#: elf/sln.c:189 elf/sln.c:198
#, c-format
msgid "Invalid link from \"%s\" to \"%s\": %s\n"
-msgstr "Nevaljana veza od „%s“ na „%s“: %s\n"
+msgstr "Nevaljana poveznica od „%s“ na „%s“: %s\n"
#: elf/sotruss.sh:32
#, sh-format
@@ -1211,7 +1216,7 @@ msgstr ""
" -T, --to TOLIST prati pozive objektima popisanim u TOLIST\n"
"\n"
" -e, --exit ispisuje i izlazne kodove funkcijskih poziva\n"
-" -f, --follow prati procese potomaka (dijete-procesa)\n"
+" -f, --follow prati potomke (child processes)\n"
" -o, --output DATOTEKA izlaz ispiše u DATOTEKU (ili DATOTEKA.$PID ako je\n"
" naveden -f) umjesto na standardni izlaz za greške\n"
"\n"
@@ -1411,7 +1416,7 @@ msgstr "Informacije:"
msgid "list all known coded character sets"
msgstr "popis svih poznatih kodiranih skupova znakova"
-#: iconv/iconv_prog.c:64 locale/programs/localedef.c:120
+#: iconv/iconv_prog.c:64 locale/programs/localedef.c:124
msgid "Output control:"
msgstr "Kontrola izlaza:"
@@ -1420,8 +1425,8 @@ msgid "omit invalid characters from output"
msgstr "izostavi nevaljane znakove na izlazu"
#: iconv/iconv_prog.c:66 iconv/iconvconfig.c:128
-#: locale/programs/localedef.c:113 locale/programs/localedef.c:115
-#: locale/programs/localedef.c:117 locale/programs/localedef.c:144
+#: locale/programs/localedef.c:117 locale/programs/localedef.c:119
+#: locale/programs/localedef.c:121 locale/programs/localedef.c:150
#: malloc/memusagestat.c:56
msgid "FILE"
msgstr "DATOTEKA"
@@ -1520,7 +1525,7 @@ msgstr "Stvori konfiguracijsku datoteku iconv modula za brzo uÄitavanje."
msgid "[DIR...]"
msgstr "[DIR...]"
-#: iconv/iconvconfig.c:126 locale/programs/localedef.c:123
+#: iconv/iconvconfig.c:126 locale/programs/localedef.c:129
msgid "PATH"
msgstr "STAZA"
@@ -1621,7 +1626,7 @@ msgstr "pisanje je moguće za druge korisnike, a ne samo za vlasnika"
#: inet/rcmd.c:493
msgid "hard linked somewhere"
-msgstr "negdje postoji Ävrsta veza"
+msgstr "negdje postoji Ävrsta poveznica"
#: inet/ruserpass.c:165 inet/ruserpass.c:188
msgid "out of memory"
@@ -1708,14 +1713,14 @@ msgstr "blokirani skupovi znakova nisu podržani"
#: locale/programs/charmap.c:503 locale/programs/charmap.c:557
#: locale/programs/charmap.c:589 locale/programs/charmap.c:683
-#: locale/programs/charmap.c:738 locale/programs/charmap.c:779
-#: locale/programs/charmap.c:820
+#: locale/programs/charmap.c:739 locale/programs/charmap.c:780
+#: locale/programs/charmap.c:821
#, c-format
msgid "syntax error in %s definition: %s"
msgstr "sintaktiÄka greÅ¡ka u definiciji %s: %s"
#: locale/programs/charmap.c:504 locale/programs/charmap.c:684
-#: locale/programs/charmap.c:780 locale/programs/repertoire.c:229
+#: locale/programs/charmap.c:781 locale/programs/repertoire.c:229
msgid "no symbolic name given"
msgstr "nije dano simboliÄko ime"
@@ -1731,14 +1736,14 @@ msgstr "premalo bajtova u kodiranju znakova"
msgid "too many bytes in character encoding"
msgstr "previše bajtova u kodiranju znakova"
-#: locale/programs/charmap.c:591 locale/programs/charmap.c:739
-#: locale/programs/charmap.c:822 locale/programs/repertoire.c:295
+#: locale/programs/charmap.c:591 locale/programs/charmap.c:740
+#: locale/programs/charmap.c:823 locale/programs/repertoire.c:295
msgid "no symbolic name given for end of range"
msgstr "nije dano simboliÄko ime kraja raspona"
#: locale/programs/charmap.c:615 locale/programs/ld-address.c:524
#: locale/programs/ld-collate.c:2616 locale/programs/ld-collate.c:3774
-#: locale/programs/ld-ctype.c:2117 locale/programs/ld-ctype.c:2829
+#: locale/programs/ld-ctype.c:2118 locale/programs/ld-ctype.c:2830
#: locale/programs/ld-identification.c:397
#: locale/programs/ld-measurement.c:213 locale/programs/ld-messages.c:295
#: locale/programs/ld-monetary.c:748 locale/programs/ld-name.c:262
@@ -1755,60 +1760,60 @@ msgstr ""
"samo su definicije širine (WIDTH) dopuštene nakon definicije\n"
" tablice znakova (CHARMAP)"
-#: locale/programs/charmap.c:656 locale/programs/charmap.c:719
+#: locale/programs/charmap.c:656 locale/programs/charmap.c:720
#, c-format
msgid "value for %s must be an integer"
msgstr "vrijednost %s mora biti cijeli broj"
-#: locale/programs/charmap.c:847
+#: locale/programs/charmap.c:848
#, c-format
msgid "%s: error in state machine"
msgstr "%s: greška u automatu"
-#: locale/programs/charmap.c:855 locale/programs/ld-address.c:540
+#: locale/programs/charmap.c:856 locale/programs/ld-address.c:540
#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967
-#: locale/programs/ld-ctype.c:2114 locale/programs/ld-ctype.c:2846
+#: locale/programs/ld-ctype.c:2115 locale/programs/ld-ctype.c:2847
#: locale/programs/ld-identification.c:413
#: locale/programs/ld-measurement.c:229 locale/programs/ld-messages.c:311
#: locale/programs/ld-monetary.c:764 locale/programs/ld-name.c:278
#: locale/programs/ld-numeric.c:341 locale/programs/ld-paper.c:228
#: locale/programs/ld-telephone.c:292 locale/programs/ld-time.c:990
-#: locale/programs/locfile.c:997 locale/programs/repertoire.c:323
+#: locale/programs/locfile.c:1010 locale/programs/repertoire.c:323
#, c-format
msgid "%s: premature end of file"
msgstr "%s: preuranjen kraj datoteke"
-#: locale/programs/charmap.c:874 locale/programs/charmap.c:885
+#: locale/programs/charmap.c:875 locale/programs/charmap.c:886
#, c-format
msgid "unknown character `%s'"
msgstr "nepoznati znak „%s“"
-#: locale/programs/charmap.c:893
+#: locale/programs/charmap.c:894
#, c-format
msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d"
msgstr ""
"broj bajtova za sekvenciju bajtova na poÄetku i kraju raspona\n"
" nije jednak: %d nasuprot %d"
-#: locale/programs/charmap.c:998 locale/programs/ld-collate.c:2893
+#: locale/programs/charmap.c:999 locale/programs/ld-collate.c:2893
#: locale/programs/repertoire.c:418
msgid "invalid names for character range"
msgstr "nevaljana imena raspona znakova"
-#: locale/programs/charmap.c:1010 locale/programs/repertoire.c:430
+#: locale/programs/charmap.c:1011 locale/programs/repertoire.c:430
msgid "hexadecimal range format should use only capital characters"
msgstr "heksadecimalni format raspona trebao bi se koristiti samo velika slova"
-#: locale/programs/charmap.c:1028 locale/programs/repertoire.c:448
+#: locale/programs/charmap.c:1029 locale/programs/repertoire.c:448
#, c-format
msgid "<%s> and <%s> are invalid names for range"
msgstr "<%s> i <%s> nisu valjana imena raspona"
-#: locale/programs/charmap.c:1034 locale/programs/repertoire.c:455
+#: locale/programs/charmap.c:1035 locale/programs/repertoire.c:455
msgid "upper limit in range is smaller than lower limit"
msgstr "gornja granica u rasponu je manja od donje granice"
-#: locale/programs/charmap.c:1092
+#: locale/programs/charmap.c:1093
msgid "resulting bytes for range not representable."
msgstr "rezultirajući bajtovi za raspon nisu reprezentativni"
@@ -1877,7 +1882,7 @@ msgid "%s: numeric country code `%d' not valid"
msgstr "%s: nevaljani brojÄani kod za „%d“ zemlju"
#: locale/programs/ld-address.c:432 locale/programs/ld-address.c:469
-#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2478
+#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2479
#: locale/programs/ld-identification.c:309
#: locale/programs/ld-measurement.c:196 locale/programs/ld-messages.c:264
#: locale/programs/ld-monetary.c:503 locale/programs/ld-monetary.c:538
@@ -1900,7 +1905,7 @@ msgid "%s: unknown character in field `%s'"
msgstr "%s: nepoznati znak u polju „%s“"
#: locale/programs/ld-address.c:521 locale/programs/ld-collate.c:3772
-#: locale/programs/ld-ctype.c:2826 locale/programs/ld-identification.c:394
+#: locale/programs/ld-ctype.c:2827 locale/programs/ld-identification.c:394
#: locale/programs/ld-measurement.c:210 locale/programs/ld-messages.c:293
#: locale/programs/ld-monetary.c:746 locale/programs/ld-name.c:260
#: locale/programs/ld-numeric.c:323 locale/programs/ld-paper.c:210
@@ -1913,8 +1918,8 @@ msgstr "%s: nepotpuni „END“ redak"
#: locale/programs/ld-collate.c:602 locale/programs/ld-collate.c:898
#: locale/programs/ld-collate.c:911 locale/programs/ld-collate.c:2582
#: locale/programs/ld-collate.c:2603 locale/programs/ld-collate.c:3957
-#: locale/programs/ld-ctype.c:1846 locale/programs/ld-ctype.c:2104
-#: locale/programs/ld-ctype.c:2676 locale/programs/ld-ctype.c:2837
+#: locale/programs/ld-ctype.c:1847 locale/programs/ld-ctype.c:2105
+#: locale/programs/ld-ctype.c:2677 locale/programs/ld-ctype.c:2838
#: locale/programs/ld-identification.c:404
#: locale/programs/ld-measurement.c:220 locale/programs/ld-messages.c:302
#: locale/programs/ld-monetary.c:755 locale/programs/ld-name.c:269
@@ -2262,137 +2267,137 @@ msgstr "tablica znakova „%s“ je već definirana"
msgid "implementation limit: no more than %d character maps allowed"
msgstr "ograniÄenje implementacije: nije dopuÅ¡teno viÅ¡e od %d tablica znakova"
-#: locale/programs/ld-ctype.c:1434 locale/programs/ld-ctype.c:1559
-#: locale/programs/ld-ctype.c:1665 locale/programs/ld-ctype.c:2341
-#: locale/programs/ld-ctype.c:3299
+#: locale/programs/ld-ctype.c:1435 locale/programs/ld-ctype.c:1560
+#: locale/programs/ld-ctype.c:1666 locale/programs/ld-ctype.c:2342
+#: locale/programs/ld-ctype.c:3302
#, c-format
msgid "%s: field `%s' does not contain exactly ten entries"
msgstr "%s: polje „%s“ ne sadrži toÄno deset stavki"
-#: locale/programs/ld-ctype.c:1462 locale/programs/ld-ctype.c:2036
+#: locale/programs/ld-ctype.c:1463 locale/programs/ld-ctype.c:2037
#, c-format
msgid "to-value <U%0*X> of range is smaller than from-value <U%0*X>"
msgstr "„do“-vrijednost <U%0*X> raspona je manja od „od“-vrijednosti <U%0*X>"
-#: locale/programs/ld-ctype.c:1589
+#: locale/programs/ld-ctype.c:1590
msgid "start and end character sequence of range must have the same length"
msgstr "poÄetna i krajnja sekvencija znakova raspona moraju imati istu duljinu"
-#: locale/programs/ld-ctype.c:1596
+#: locale/programs/ld-ctype.c:1597
msgid "to-value character sequence is smaller than from-value sequence"
msgstr "„od“-vrijednost sekvencije znakova je manja od „do“-vrijednosti sekvencije"
-#: locale/programs/ld-ctype.c:1956 locale/programs/ld-ctype.c:2007
+#: locale/programs/ld-ctype.c:1957 locale/programs/ld-ctype.c:2008
msgid "premature end of `translit_ignore' definition"
msgstr "preuranjen kraj definicije „translit_ignore“"
-#: locale/programs/ld-ctype.c:1962 locale/programs/ld-ctype.c:2013
-#: locale/programs/ld-ctype.c:2055
+#: locale/programs/ld-ctype.c:1963 locale/programs/ld-ctype.c:2014
+#: locale/programs/ld-ctype.c:2056
msgid "syntax error"
msgstr "sintaktiÄka greÅ¡ka"
-#: locale/programs/ld-ctype.c:2188
+#: locale/programs/ld-ctype.c:2189
#, c-format
msgid "%s: syntax error in definition of new character class"
msgstr "%s: sintaktiÄka greÅ¡ka u definiciji nove klase znakova"
-#: locale/programs/ld-ctype.c:2203
+#: locale/programs/ld-ctype.c:2204
#, c-format
msgid "%s: syntax error in definition of new character map"
msgstr "%s: sintaktiÄka greÅ¡ka u definiciji nove tablice znakova"
-#: locale/programs/ld-ctype.c:2363
+#: locale/programs/ld-ctype.c:2364
msgid "ellipsis range must be marked by two operands of same type"
msgstr "raspon s trotoÄkom mora sadržavati dva operanda istog tipa"
-#: locale/programs/ld-ctype.c:2372
+#: locale/programs/ld-ctype.c:2373
msgid "with symbolic name range values the absolute ellipsis `...' must not be used"
msgstr ""
"za raspon sa simboliÄkim imenima kao granicama raspona\n"
" ne smije se koristiti apsolutni simbol (ellipsis) „...“ (trotoÄka)"
-#: locale/programs/ld-ctype.c:2387
+#: locale/programs/ld-ctype.c:2388
msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'"
msgstr ""
"za raspon s UCS vrijednostima mora se koristiti\n"
" heksadecimalni simbol (ellipsis) „..“ (dvije uzastopne toÄke)"
-#: locale/programs/ld-ctype.c:2401
+#: locale/programs/ld-ctype.c:2402
msgid "with character code range values one must use the absolute ellipsis `...'"
msgstr ""
"za raspon sa znakovnim kodovima kao granicama raspona\n"
" mora se koristiti apsolutni simbol (ellipsis) „...“ (trotoÄka)"
-#: locale/programs/ld-ctype.c:2552
+#: locale/programs/ld-ctype.c:2553
#, c-format
msgid "duplicated definition for mapping `%s'"
msgstr "duplikat definicije za mapiranje „%s“"
-#: locale/programs/ld-ctype.c:2638 locale/programs/ld-ctype.c:2782
+#: locale/programs/ld-ctype.c:2639 locale/programs/ld-ctype.c:2783
#, c-format
msgid "%s: `translit_start' section does not end with `translit_end'"
msgstr "%s: „translit_start“ sekcija ne završava s „translit_end“"
-#: locale/programs/ld-ctype.c:2733
+#: locale/programs/ld-ctype.c:2734
#, c-format
msgid "%s: duplicate `default_missing' definition"
msgstr "%s: duplikat definicije „default_missing“"
-#: locale/programs/ld-ctype.c:2738
+#: locale/programs/ld-ctype.c:2739
msgid "previous definition was here"
msgstr "prethodna definicija bila je ovdje"
-#: locale/programs/ld-ctype.c:2760
+#: locale/programs/ld-ctype.c:2761
#, c-format
msgid "%s: no representable `default_missing' definition found"
msgstr "%s: nema reprezentativne definicije „default_missing“"
-#: locale/programs/ld-ctype.c:2877 locale/programs/ld-ctype.c:2973
-#: locale/programs/ld-ctype.c:2992 locale/programs/ld-ctype.c:3012
-#: locale/programs/ld-ctype.c:3032 locale/programs/ld-ctype.c:3052
-#: locale/programs/ld-ctype.c:3072 locale/programs/ld-ctype.c:3111
-#: locale/programs/ld-ctype.c:3131 locale/programs/ld-ctype.c:3195
-#: locale/programs/ld-ctype.c:3236 locale/programs/ld-ctype.c:3259
+#: locale/programs/ld-ctype.c:2878 locale/programs/ld-ctype.c:2974
+#: locale/programs/ld-ctype.c:2993 locale/programs/ld-ctype.c:3013
+#: locale/programs/ld-ctype.c:3033 locale/programs/ld-ctype.c:3053
+#: locale/programs/ld-ctype.c:3073 locale/programs/ld-ctype.c:3112
+#: locale/programs/ld-ctype.c:3132 locale/programs/ld-ctype.c:3198
+#: locale/programs/ld-ctype.c:3239 locale/programs/ld-ctype.c:3262
#, c-format
msgid "%s: character `%s' not defined while needed as default value"
msgstr "%s: znak „%s“ potreban je kao zadana vrijednost a nije definiran"
-#: locale/programs/ld-ctype.c:2882 locale/programs/ld-ctype.c:2978
-#: locale/programs/ld-ctype.c:2997 locale/programs/ld-ctype.c:3017
-#: locale/programs/ld-ctype.c:3037 locale/programs/ld-ctype.c:3057
-#: locale/programs/ld-ctype.c:3077 locale/programs/ld-ctype.c:3116
-#: locale/programs/ld-ctype.c:3136 locale/programs/ld-ctype.c:3200
+#: locale/programs/ld-ctype.c:2883 locale/programs/ld-ctype.c:2979
+#: locale/programs/ld-ctype.c:2998 locale/programs/ld-ctype.c:3018
+#: locale/programs/ld-ctype.c:3038 locale/programs/ld-ctype.c:3058
+#: locale/programs/ld-ctype.c:3078 locale/programs/ld-ctype.c:3117
+#: locale/programs/ld-ctype.c:3137 locale/programs/ld-ctype.c:3203
#, c-format
msgid "%s: character `%s' in charmap not representable with one byte"
msgstr "%s: znak „%s“ u tablici znakova ne može reprezentirati samo s jedan bajt"
-#: locale/programs/ld-ctype.c:3242 locale/programs/ld-ctype.c:3265
+#: locale/programs/ld-ctype.c:3245 locale/programs/ld-ctype.c:3268
#, c-format
msgid "%s: character `%s' needed as default value not representable with one byte"
msgstr ""
"%s: znak „%s“ potreban kao zadana vrijednost ne može\n"
" reprezentirati samo jedan bajt"
-#: locale/programs/ld-ctype.c:3321
+#: locale/programs/ld-ctype.c:3324
msgid "no output digits defined and none of the standard names in the charmap"
msgstr "izlazne znamenke nisu definirane i nemaju standardna imena u tablici znakova"
-#: locale/programs/ld-ctype.c:3570
+#: locale/programs/ld-ctype.c:3573
#, c-format
msgid "%s: transliteration data from locale `%s' not available"
msgstr "%s: nema podataka za transliteraciju iz locale „%s“"
-#: locale/programs/ld-ctype.c:3669
+#: locale/programs/ld-ctype.c:3672
#, c-format
msgid "%s: table for class \"%s\": %lu bytes"
msgstr "%s: tablica za klasu „%s“: %lu bajtova"
-#: locale/programs/ld-ctype.c:3733
+#: locale/programs/ld-ctype.c:3736
#, c-format
msgid "%s: table for map \"%s\": %lu bytes"
msgstr "%s: tablica za znakovne tablice „%s“: %lu bajtova"
-#: locale/programs/ld-ctype.c:3857
+#: locale/programs/ld-ctype.c:3860
#, c-format
msgid "%s: table for width: %lu bytes"
msgstr "%s: tablica za Å¡irinu: %lu bajtova"
@@ -2634,124 +2639,119 @@ msgstr ""
"IME\n"
"[-a|-m]"
-#: locale/programs/locale.c:190
-#, c-format
-msgid "Cannot set LC_CTYPE to default locale"
-msgstr "Nije moguće postaviti LC_CTYPE na zadani locale"
-
-#: locale/programs/locale.c:192
-#, c-format
-msgid "Cannot set LC_MESSAGES to default locale"
-msgstr "Nije moguće postaviti LC_MESSAGES na zadani locale"
-
-#: locale/programs/locale.c:205
+#: locale/programs/locale.c:522
#, c-format
-msgid "Cannot set LC_COLLATE to default locale"
-msgstr "Nije moguće postaviti LC_COLLATE na zadani locale"
+msgid "while preparing output"
+msgstr "tijekom pripremanja izlaza"
-#: locale/programs/locale.c:221
-#, c-format
-msgid "Cannot set LC_ALL to default locale"
+#: locale/programs/locale.c:998
+#, fuzzy, c-format
+#| msgid "Cannot set LC_ALL to default locale"
+msgid "Cannot set %s to default locale"
msgstr "Nije moguće postaviti LC_ALL na zadani locale"
-#: locale/programs/locale.c:521
+#: locale/programs/locale.c:1096
#, c-format
-msgid "while preparing output"
-msgstr "tijekom pripremanja izlaza"
+msgid "warning: The LOCPATH variable is set to \"%s\"\n"
+msgstr ""
-#: locale/programs/localedef.c:112
+#: locale/programs/localedef.c:116
msgid "Input Files:"
msgstr "Ulazne datoteke:"
-#: locale/programs/localedef.c:114
+#: locale/programs/localedef.c:118
msgid "Symbolic character names defined in FILE"
msgstr "simboliÄka imena znakova definirana u DATOTECI"
-#: locale/programs/localedef.c:116
+#: locale/programs/localedef.c:120
msgid "Source definitions are found in FILE"
msgstr "DATOTEKA s definicijama izvora"
-#: locale/programs/localedef.c:118
+#: locale/programs/localedef.c:122
msgid "FILE contains mapping from symbolic names to UCS4 values"
msgstr "DATOTEKA sadrži mapiranje simboliÄkih imena na UCS4 vrijednosti"
-#: locale/programs/localedef.c:122
+#: locale/programs/localedef.c:126
msgid "Create output even if warning messages were issued"
msgstr "stvori izlaz Äak i nakon izdanih poruka upozorenja"
-#: locale/programs/localedef.c:123
+#: locale/programs/localedef.c:128
+msgid "Do not create hard links between installed locales"
+msgstr "Ne stvarati tvrde veze između instaliranih lokalima"
+
+#: locale/programs/localedef.c:129
msgid "Optional output file prefix"
msgstr "neobvezni prefiks izlazne datoteke"
-#: locale/programs/localedef.c:124
+#: locale/programs/localedef.c:130
msgid "Strictly conform to POSIX"
msgstr "striktno slijedi POSIX direktive"
-#: locale/programs/localedef.c:126
+#: locale/programs/localedef.c:132
msgid "Suppress warnings and information messages"
msgstr "izostavi upozorenja i poruke s informacijama"
-#: locale/programs/localedef.c:127
+#: locale/programs/localedef.c:133
msgid "Print more messages"
msgstr "ispisuje više poruka"
-#: locale/programs/localedef.c:128 locale/programs/localedef.c:131
+#: locale/programs/localedef.c:134 locale/programs/localedef.c:137
msgid "<warnings>"
msgstr "<upozorenja>"
-#: locale/programs/localedef.c:129
+#: locale/programs/localedef.c:135
msgid "Comma-separated list of warnings to disable; supported warnings are: ascii, intcurrsym"
msgstr ""
"Onemogući upozorenja sa zarezima odvojenom listom;\n"
" podržana upozorenja su: ascii, intcurrsym"
-#: locale/programs/localedef.c:132
+#: locale/programs/localedef.c:138
msgid "Comma-separated list of warnings to enable; supported warnings are: ascii, intcurrsym"
msgstr ""
"Omogući upozorenja sa zarezima odvojenom listom;\n"
" podržana upozorenja su: ascii, intcurrsym"
-#: locale/programs/localedef.c:135
+#: locale/programs/localedef.c:141
msgid "Archive control:"
msgstr "Upravljanje arhivom:"
-#: locale/programs/localedef.c:137
+#: locale/programs/localedef.c:143
msgid "Don't add new data to archive"
msgstr "ne dodaje nove podatke u arhivu"
-#: locale/programs/localedef.c:139
+#: locale/programs/localedef.c:145
msgid "Add locales named by parameters to archive"
msgstr "locale, imenovane s parametrima umetne u arhivu"
-#: locale/programs/localedef.c:140
+#: locale/programs/localedef.c:146
msgid "Replace existing archive content"
msgstr "zamijeni postojeći sadržaj arhive"
-#: locale/programs/localedef.c:142
+#: locale/programs/localedef.c:148
msgid "Remove locales named by parameters from archive"
msgstr "locale, imenovane s parametrima ukloni iz arhive"
-#: locale/programs/localedef.c:143
+#: locale/programs/localedef.c:149
msgid "List content of archive"
msgstr "izlista sadržaj arhive"
-#: locale/programs/localedef.c:145
+#: locale/programs/localedef.c:151
msgid "locale.alias file to consult when making archive"
msgstr "datoteka locale.alias koja se koristi prilikom izrade arhive"
-#: locale/programs/localedef.c:147
+#: locale/programs/localedef.c:153
msgid "Generate little-endian output"
msgstr "generira little-endian izlaz"
-#: locale/programs/localedef.c:149
+#: locale/programs/localedef.c:155
msgid "Generate big-endian output"
msgstr "generira big-endian izlaz"
-#: locale/programs/localedef.c:154
+#: locale/programs/localedef.c:160
msgid "Compile locale specification"
msgstr "Kompilira locale specifikaciju"
-#: locale/programs/localedef.c:157
+#: locale/programs/localedef.c:163
msgid ""
"NAME\n"
"[--add-to-archive|--delete-from-archive] FILE...\n"
@@ -2761,31 +2761,31 @@ msgstr ""
"[--add-to-archive|--delete-from-archive] DATOTEKA...\n"
"--list-archive [DATOTEKA]"
-#: locale/programs/localedef.c:232
+#: locale/programs/localedef.c:238
#, c-format
msgid "cannot create directory for output files"
msgstr "nije moguće stvoriti direktorij za izlazne datoteke"
-#: locale/programs/localedef.c:243
+#: locale/programs/localedef.c:249
msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
msgstr "FATALNA GREŠKA: sustav ne definira „_POSIX2_LOCALEDEF“"
-#: locale/programs/localedef.c:257 locale/programs/localedef.c:273
-#: locale/programs/localedef.c:663 locale/programs/localedef.c:683
+#: locale/programs/localedef.c:263 locale/programs/localedef.c:279
+#: locale/programs/localedef.c:673 locale/programs/localedef.c:693
#, c-format
msgid "cannot open locale definition file `%s'"
msgstr "nije moguće otvoriti locale datoteku s definicijama za „%s“"
-#: locale/programs/localedef.c:297
+#: locale/programs/localedef.c:303
#, c-format
msgid "cannot write output files to `%s'"
msgstr "nije moguće spremiti izlazne datoteke u „%s“"
-#: locale/programs/localedef.c:303
+#: locale/programs/localedef.c:309
msgid "no output file produced because errors were issued"
msgstr "izlazna datoteka nije stvorena zbog izdanih upozorenja"
-#: locale/programs/localedef.c:431
+#: locale/programs/localedef.c:441
#, c-format
msgid ""
"System's directory for character maps : %s\n"
@@ -2799,11 +2799,11 @@ msgstr ""
"\n"
"%s"
-#: locale/programs/localedef.c:631
+#: locale/programs/localedef.c:641
msgid "circular dependencies between locale definitions"
msgstr "kružne ovisnosti između locale definicija"
-#: locale/programs/localedef.c:637
+#: locale/programs/localedef.c:647
#, c-format
msgid "cannot add already read locale `%s' a second time"
msgstr "nije moguće dodati već proÄitani locale „%s“ po drugi put"
@@ -2876,7 +2876,7 @@ msgstr "nije moguće otvoriti „%s“ locale arhivu"
#: locale/programs/locarchive.c:613
#, c-format
msgid "cannot stat locale archive \"%s\""
-msgstr "nije moguće dobiti status za locale arhivu „%s“"
+msgstr "nije moguće stat locale arhivu „%s“"
#: locale/programs/locarchive.c:632
#, c-format
@@ -2959,24 +2959,24 @@ msgstr "nije moguće otvoriti izlaznu datoteku „%s“ za kategoriju „%s“"
msgid "failure while writing data for category `%s'"
msgstr "neuspjeh pri pisanju podataka za kategoriju „%s“"
-#: locale/programs/locfile.c:917
+#: locale/programs/locfile.c:930
#, c-format
msgid "cannot create output file `%s' for category `%s'"
msgstr "nije moguće stvoriti izlaznu datoteku „%s“ za kategoriju „%s“"
-#: locale/programs/locfile.c:953
+#: locale/programs/locfile.c:966
msgid "expecting string argument for `copy'"
msgstr "oÄekuje se string kao argument za „copy“"
-#: locale/programs/locfile.c:957
+#: locale/programs/locfile.c:970
msgid "locale name should consist only of portable characters"
msgstr "ime za locale treba se sastojati samo od prenosivih znakova"
-#: locale/programs/locfile.c:976
+#: locale/programs/locfile.c:989
msgid "no other keyword shall be specified when `copy' is used"
msgstr "kad se koristi „copy“ ne smije se navesti nijedna druga kljuÄna rijeÄ"
-#: locale/programs/locfile.c:990
+#: locale/programs/locfile.c:1003
#, c-format
msgid "`%1$s' definition does not end with `END %1$s'"
msgstr "„%1$s“ definicija ne završava sa „END %1$s“"
@@ -3086,7 +3086,7 @@ msgstr ""
" -d,--data=DATOTEKA generira binarne podatke i spremi ih u DATOTEKU\n"
" -u,--unbuffered ne koristi međuspremnik za izlaz\n"
" -b,--buffer=VELIÄŒINA prikupi VELIÄŒINU stavki prije ispisa na izlaz\n"
-" --no-timer ne skuplja dodatne informacije sa Å¡topericom\n"
+" --no-timer ne skuplja dodatne informacije s tajmerom\n"
" -m,--mmap također prati mmap() i s njim povezane funkcije\n"
"\n"
" -?,--help ova pomoć\n"
@@ -3279,7 +3279,7 @@ msgstr "Vrsta stavke/tablice se ne podudaraju"
#: nis/nis_error.h:26
msgid "Link points to illegal name"
-msgstr "Veza ukazuje na nepropisno ime"
+msgstr "Poveznica ukazuje na nepropisno ime"
#: nis/nis_error.h:27
msgid "Partial success"
@@ -3295,7 +3295,7 @@ msgstr "Greška u RPC podsustavu"
#: nis/nis_error.h:30
msgid "Missing or malformed attribute"
-msgstr "Atribut nema ili je deformirani"
+msgstr "Atributa nema ili je deformiran"
#: nis/nis_error.h:31
msgid "Named object is not searchable"
@@ -3802,18 +3802,18 @@ msgstr "Nepoznata ypbind() greška"
#: nis/ypclnt.c:967
msgid "yp_update: cannot convert host to netname\n"
-msgstr "yp_update: nije moguće pretvoriti ime raÄunala u mrežno ime (netname)\n"
+msgstr "yp_update: nije moguće pretvoriti hostname u mrežno ime (netname)\n"
#: nis/ypclnt.c:985
msgid "yp_update: cannot get server address\n"
msgstr "yp_update: nije moguće dobiti adresu poslužitelja\n"
-#: nscd/aicache.c:83 nscd/hstcache.c:452
+#: nscd/aicache.c:82 nscd/hstcache.c:452
#, c-format
msgid "Haven't found \"%s\" in hosts cache!"
msgstr "Nije pronaÄ‘en „%s“ u predmemoriji raÄunala!"
-#: nscd/aicache.c:85 nscd/hstcache.c:454
+#: nscd/aicache.c:84 nscd/hstcache.c:454
#, c-format
msgid "Reloading \"%s\" in hosts cache!"
msgstr "Ponovno uÄitavanje „%s“ predmemoriju raÄunala!"
@@ -3915,7 +3915,7 @@ msgstr "nije moguće otvoriti utiÄnicu: %s"
#: nscd/connections.c:804
#, c-format
msgid "cannot enable socket to accept connections: %s"
-msgstr "nije moguće omogućiti utiÄnicu za prihvaćanje veza: %s"
+msgstr "nije moguće omogućiti utiÄnicu za prihvaćanje poveznica: %s"
#: nscd/connections.c:861
#, c-format
@@ -4146,22 +4146,22 @@ msgstr "oslobođeno je %zu bajtova u %s predmemoriji"
msgid "no more memory for database '%s'"
msgstr "nema više memorije za bazu podataka „%s“"
-#: nscd/netgroupcache.c:121
+#: nscd/netgroupcache.c:122
#, c-format
msgid "Haven't found \"%s\" in netgroup cache!"
msgstr "Nije pronađeno „%s“ u netgroup predmemoriji!"
-#: nscd/netgroupcache.c:123
+#: nscd/netgroupcache.c:124
#, c-format
msgid "Reloading \"%s\" in netgroup cache!"
msgstr "Ponovno se uÄitava „%s“ u netgroup predmemoriju!"
-#: nscd/netgroupcache.c:469
+#: nscd/netgroupcache.c:470
#, c-format
msgid "Haven't found \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr "Nije pronađen „%s (%s,%s,%s)“ u netgroup predmemoriji!"
-#: nscd/netgroupcache.c:472
+#: nscd/netgroupcache.c:473
#, c-format
msgid "Reloading \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr "Ponovno se uÄitava „%s (%s,%s,%s)“ u netgroup predmemoriju!"
@@ -4214,7 +4214,7 @@ msgstr "rabi zasebnu predmemoriju za svakog korisnika"
msgid "Name Service Cache Daemon."
msgstr "Name Service Cache Daemon (usluge za imena predmemorija)"
-#: nscd/nscd.c:155 nss/getent.c:967 nss/makedb.c:206
+#: nscd/nscd.c:155 nss/getent.c:987 nss/makedb.c:206
#, c-format
msgid "wrong number of arguments"
msgstr "nevaljani broj argumenata"
@@ -4232,12 +4232,12 @@ msgstr "već radi"
#: nscd/nscd.c:194
#, c-format
msgid "cannot create a pipe to talk to the child"
-msgstr "nije moguće stvoriti cijev za komunikaciju s potomkom (dijete-procesom)"
+msgstr "nije moguće stvoriti cijev za komunikaciju s potomkom (child process)"
#: nscd/nscd.c:198
#, c-format
msgid "cannot fork"
-msgstr "nije moguće zapoÄeti novi proces (novog potomka, novi dijete-proces)"
+msgstr "nije moguće zapoÄeti novi proces (novog potomka, novi child process)"
#: nscd/nscd.c:268
msgid "cannot change current working directory to \"/\""
@@ -4300,12 +4300,12 @@ msgstr "neuspješni „wait“\n"
#: nscd/nscd.c:642
#, c-format
msgid "child exited with status %d\n"
-msgstr "potomak (dijete-proces) je završio sa statusom %d\n"
+msgstr "potomak (child process) je završio sa statusom %d\n"
#: nscd/nscd.c:647
#, c-format
msgid "child terminated by signal %d\n"
-msgstr "potomak (dijete-proces) bio je završen signalom %d\n"
+msgstr "potomak (child process) prekinut je signalom %d\n"
#: nscd/nscd_conf.c:54
#, c-format
@@ -4322,29 +4322,29 @@ msgstr "SintaktiÄka greÅ¡ka: %s"
msgid "Must specify user name for server-user option"
msgstr "Morate navesti ime korisnika za opciju server-user"
-#: nscd/nscd_conf.c:198
+#: nscd/nscd_conf.c:201
#, c-format
msgid "Must specify user name for stat-user option"
msgstr "Morate navesti ime korisnika za opciju stat-user"
-#: nscd/nscd_conf.c:255
+#: nscd/nscd_conf.c:259
#, c-format
msgid "Must specify value for restart-interval option"
msgstr "Morate navesti vrijednost za opciju restart-interval"
-#: nscd/nscd_conf.c:269
+#: nscd/nscd_conf.c:273
#, c-format
msgid "Unknown option: %s %s %s"
msgstr "Nepoznata opcija: %s %s %s"
-#: nscd/nscd_conf.c:282
+#: nscd/nscd_conf.c:286
#, c-format
msgid "cannot get current working directory: %s; disabling paranoia mode"
msgstr ""
"nije moguće dobiti trenutaÄni radni direktorij:\n"
" %s -- onemogućuje se paranoiÄni mod"
-#: nscd/nscd_conf.c:302
+#: nscd/nscd_conf.c:306
#, c-format
msgid "maximum file size for %s database too small"
msgstr "maksimalna veliÄina datoteke za bazu podataka %s je premalena"
@@ -4473,7 +4473,7 @@ msgstr ""
"%15zu najveća duljina lanca koja se pretražuje\n"
"%15<PRIuMAX> broj kašnjenja na rdlocku\n"
"%15<PRIuMAX> broj kašnjenja na wrlocku\n"
-"%15<PRIuMAX> broj neuspješnih dodjela memorijske\n"
+"%15<PRIuMAX> neuspješnih dodjela memorije\n"
"%15s provjeri promjene u /etc/%s\n"
#: nscd/pwdcache.c:407
@@ -4608,46 +4608,46 @@ msgstr "Nije bio pronađen „%s“ u predmemoriji usluga!"
msgid "Reloading \"%s\" in services cache!"
msgstr "Ponovno uÄitavanje „%s“ u predmemoriju usluga!"
-#: nss/getent.c:54
+#: nss/getent.c:55
msgid "database [key ...]"
msgstr "baza podataka [kljuÄ ...]"
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "CONFIG"
msgstr "KONFIG"
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "Service configuration to be used"
msgstr "konfiguracija servisa koja će se koristiti"
-#: nss/getent.c:60
+#: nss/getent.c:61
msgid "disable IDN encoding"
msgstr "onemogući IDN kodiranje"
-#: nss/getent.c:65
+#: nss/getent.c:66
msgid "Get entries from administrative database."
msgstr "ÄŒita stavke iz administrativne baze podataka."
-#: nss/getent.c:149 nss/getent.c:442 nss/getent.c:489
+#: nss/getent.c:150 nss/getent.c:462 nss/getent.c:509
#, c-format
msgid "Enumeration not supported on %s\n"
msgstr "Enumeriracija nije podržana na %s\n"
-#: nss/getent.c:497 nss/getent.c:510
+#: nss/getent.c:517 nss/getent.c:530
#, c-format
msgid "Could not allocate group list: %m\n"
msgstr "Nije bilo moguće dodijeliti grupni popis: %m\n"
-#: nss/getent.c:881
+#: nss/getent.c:901
#, c-format
msgid "Unknown database name"
msgstr "Nepoznato ime baze podataka"
-#: nss/getent.c:911
+#: nss/getent.c:931
msgid "Supported databases:\n"
msgstr "Podržane baze podataka:\n"
-#: nss/getent.c:977
+#: nss/getent.c:997
#, c-format
msgid "Unknown database: %s\n"
msgstr "Nepoznata baza podataka: %s\n"
@@ -4709,7 +4709,7 @@ msgstr "nije moguće stvoriti privremenu datoteku"
#: nss/makedb.c:304
#, c-format
msgid "cannot stat newly created file"
-msgstr "nije moguće odrediti status novo stvorene datoteke"
+msgstr "nije moguće stat novo stvorene datoteke"
#: nss/makedb.c:315
#, c-format
@@ -4738,7 +4738,7 @@ msgstr "novu datoteku baze podataka nije uspjelo zapisati"
#: nss/makedb.c:808
#, c-format
msgid "cannot stat database file"
-msgstr "nije moguće odrediti status datoteke baze podataka"
+msgstr "nije moguće stat datoteke baze podataka"
#: nss/makedb.c:813
#, c-format
@@ -4852,7 +4852,7 @@ msgstr "Nevaljani regularni izraz"
#: posix/regcomp.c:144
msgid "Invalid collation character"
-msgstr "Nevaljani znak razvrstavanja"
+msgstr "Nevaljani znak za razvrstavanje"
#: posix/regcomp.c:147
msgid "Invalid character class name"
@@ -4860,7 +4860,7 @@ msgstr "Nevaljano ime klase znakova"
#: posix/regcomp.c:150
msgid "Trailing backslash"
-msgstr "Zaostala obrnuta kosa crta („\\“) na kraju"
+msgstr "Zaostala obrnuta kosa crta („\\“, backslash)"
#: posix/regcomp.c:153
msgid "Invalid back reference"
@@ -4880,7 +4880,7 @@ msgstr "Nesparena \\{"
#: posix/regcomp.c:165
msgid "Invalid content of \\{\\}"
-msgstr "Nevaljani sadržaj od \\{\\}"
+msgstr "Nevaljani sadržaj u \\{\\}"
#: posix/regcomp.c:168
msgid "Invalid range end"
@@ -4888,7 +4888,7 @@ msgstr "Nevaljani kraj raspona"
#: posix/regcomp.c:171
msgid "Memory exhausted"
-msgstr "Memorija iscrpljena"
+msgstr "Nema dovoljno memorije"
#: posix/regcomp.c:174
msgid "Invalid preceding regular expression"
@@ -4906,11 +4906,11 @@ msgstr "Regularni izraz je prevelik"
msgid "Unmatched ) or \\)"
msgstr "Nesparena ) ili \\)"
-#: posix/regcomp.c:689
+#: posix/regcomp.c:676
msgid "No previous regular expression"
-msgstr "Nema prethodni regularni izraz"
+msgstr "Nema prethodnog regularnog izraza"
-#: posix/wordexp.c:1815
+#: posix/wordexp.c:1816
msgid "parameter null or not set"
msgstr "parametar je prazan ili nije postavljen"
@@ -4920,11 +4920,11 @@ msgstr "Nema greške -- (resolver greška 0; nema greške u rješavanju imena)"
#: resolv/herror.c:64
msgid "Unknown host"
-msgstr "Nepoznato raÄunalo"
+msgstr "Nepoznati host"
#: resolv/herror.c:65
msgid "Host name lookup failure"
-msgstr "Nije pronaÄ‘eno ime raÄunala"
+msgstr "Nije pronađeno hostname"
#: resolv/herror.c:66
msgid "Unknown server error"
@@ -4997,7 +4997,7 @@ msgstr "Greška koprocesora"
#: stdio-common/psiginfo-data.h:9
msgid "Internal stack error"
-msgstr "Interna greška stoga"
+msgstr "Interna greÅ¡ka stÈga"
#: stdio-common/psiginfo-data.h:12
msgid "Integer divide by zero"
@@ -5005,7 +5005,7 @@ msgstr "Dijeljenje s nulom cijelog broja"
#: stdio-common/psiginfo-data.h:13
msgid "Integer overflow"
-msgstr "Preljev pri operaciji s cijelim brojem"
+msgstr "Prelijevanje pri operaciji s cijelim brojem"
#: stdio-common/psiginfo-data.h:14
msgid "Floating-point divide by zero"
@@ -5061,27 +5061,27 @@ msgstr "Zamka za praćenje procesa"
#: stdio-common/psiginfo-data.h:35
msgid "Child has exited"
-msgstr "Potomak (dijete-proces) je završio"
+msgstr "Potomak (child process) je završio"
#: stdio-common/psiginfo-data.h:36
msgid "Child has terminated abnormally and did not create a core file"
msgstr ""
-"Potomak (dijete-proces) je abnormalno završio i nije\n"
-" proizveo ispis stanja memorije u datoteku"
+"Potomak (child process) je abnormalno završio i nije\n"
+" ispisao stanje memorije u datoteku"
#: stdio-common/psiginfo-data.h:37
msgid "Child has terminated abnormally and created a core file"
msgstr ""
-"Potomak (dijete-proces) je abnormalno završio i\n"
-" proizveo je ispis stanja memorije u datoteku"
+"Potomak (child process) nije normalno završio i\n"
+" ispisao je stanje memorije u datoteku"
#: stdio-common/psiginfo-data.h:38
msgid "Traced child has trapped"
-msgstr "Praćeni potomak (dijete-proces) završio je u zamci"
+msgstr "Praćeni potomak (child process) završio je u zamci"
#: stdio-common/psiginfo-data.h:39
msgid "Child has stopped"
-msgstr "Potomak (dijete-proces) bio je zaustavljen"
+msgstr "Potomak (child process) je zaustavljen"
#: stdio-common/psiginfo-data.h:40
msgid "Stopped child has continued"
@@ -5099,13 +5099,13 @@ msgstr "Dostupni su izlazni međuspremnici"
msgid "Input message available"
msgstr "Dostupne su ulazne poruke"
-#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:381 timezone/zic.c:520
+#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:375 timezone/zic.c:561
msgid "I/O error"
msgstr "U/I greška"
#: stdio-common/psiginfo-data.h:47
msgid "High priority input available"
-msgstr "Dostupni je visoko prioritetni ulaz"
+msgstr "Ulaz visokog prioriteta je dostupan"
#: stdio-common/psiginfo-data.h:48
msgid "Device disconnected"
@@ -5121,7 +5121,7 @@ msgstr "Signal je poslao sigqueue()"
#: stdio-common/psiginfo.c:146
msgid "Signal generated by the expiration of a timer"
-msgstr "Signal koji je generirala Å¡toperica nakon isteka vremena"
+msgstr "Signal generiran tajmerom nakon isteka vremena"
#: stdio-common/psiginfo.c:149
msgid "Signal generated by the completion of an asynchronous I/O request"
@@ -5172,7 +5172,7 @@ msgstr "Nepoznata greška"
#: string/strsignal.c:60
#, c-format
msgid "Real-time signal %d"
-msgstr "Signal realnoga vremena %d"
+msgstr "Signal realnog vremena %d"
#: string/strsignal.c:64
#, c-format
@@ -5182,7 +5182,7 @@ msgstr "Nepoznati signal %d"
#: sunrpc/auth_unix.c:112 sunrpc/clnt_tcp.c:124 sunrpc/clnt_udp.c:139
#: sunrpc/clnt_unix.c:125 sunrpc/svc_tcp.c:189 sunrpc/svc_tcp.c:233
#: sunrpc/svc_udp.c:161 sunrpc/svc_unix.c:189 sunrpc/svc_unix.c:229
-#: sunrpc/xdr.c:628 sunrpc/xdr.c:788 sunrpc/xdr_array.c:102
+#: sunrpc/xdr.c:631 sunrpc/xdr.c:791 sunrpc/xdr_array.c:102
#: sunrpc/xdr_rec.c:153 sunrpc/xdr_ref.c:79
msgid "out of memory\n"
msgstr "nema dovoljno memorije\n"
@@ -5260,7 +5260,7 @@ msgstr "RPC: Greška udaljenog sustava"
#: sunrpc/clnt_perr.c:201
msgid "RPC: Unknown host"
-msgstr "RPC: Nepoznato raÄunalo"
+msgstr "RPC: Nepoznati host"
#: sunrpc/clnt_perr.c:205
msgid "RPC: Unknown protocol"
@@ -5729,15 +5729,15 @@ msgstr "svc_unix.c - neuspješni getsockname() ili listen"
#: sysdeps/generic/siglist.h:29
msgid "Hangup"
-msgstr "Završetak -- terminal zatvoren"
+msgstr "Terminal zatvoren"
#: sysdeps/generic/siglist.h:30
msgid "Interrupt"
-msgstr "Prekid -- SIGINT"
+msgstr "Prekini"
#: sysdeps/generic/siglist.h:31
msgid "Quit"
-msgstr "Izlaz"
+msgstr "Završi"
#: sysdeps/generic/siglist.h:32
msgid "Illegal instruction"
@@ -5745,23 +5745,23 @@ msgstr "Nepropisna instrukcija"
#: sysdeps/generic/siglist.h:33
msgid "Trace/breakpoint trap"
-msgstr "Trace/breakpoint instrukcija (zamka)"
+msgstr "Trace/breakpoint (SIGTRAP)"
#: sysdeps/generic/siglist.h:34
msgid "Aborted"
-msgstr "Prekinuto (neuspješni završetak)"
+msgstr "Prekid"
#: sysdeps/generic/siglist.h:35
msgid "Floating point exception"
-msgstr "Iznimka pomiÄnog zareza"
+msgstr "Iznimka (broja) pomiÄnog zareza"
#: sysdeps/generic/siglist.h:36
msgid "Killed"
-msgstr "Eliminirano"
+msgstr "Ubijen"
#: sysdeps/generic/siglist.h:37
msgid "Bus error"
-msgstr "Greška sabirnice"
+msgstr "SabirniÄka greÅ¡ka"
#: sysdeps/generic/siglist.h:38
msgid "Bad system call"
@@ -5802,11 +5802,11 @@ msgstr "Zaustavljeno"
#: sysdeps/generic/siglist.h:46
msgid "Continued"
-msgstr "Nastavljeno"
+msgstr "Nastavlja se"
#: sysdeps/generic/siglist.h:47
msgid "Child exited"
-msgstr "Potomak (dijete-proces) je završio"
+msgstr "Potomak (child process) je završio"
#: sysdeps/generic/siglist.h:48
msgid "Stopped (tty input)"
@@ -5818,7 +5818,7 @@ msgstr "Zaustavljen (tty izlaz)"
#: sysdeps/generic/siglist.h:50
msgid "I/O possible"
-msgstr "Mogući je U/I"
+msgstr "U/I je sada moguć"
#: sysdeps/generic/siglist.h:51
msgid "CPU time limit exceeded"
@@ -5830,23 +5830,23 @@ msgstr "PrekoraÄeno ograniÄenje veliÄine datoteke"
#: sysdeps/generic/siglist.h:53
msgid "Virtual timer expired"
-msgstr "Virtualna Å¡toperica istekla"
+msgstr "Virtualni tajmer je istekao"
#: sysdeps/generic/siglist.h:54
msgid "Profiling timer expired"
-msgstr "Å toperica profiliranja (analize) je istekla"
+msgstr "Isteklo je vrijeme za profiliranje"
#: sysdeps/generic/siglist.h:55
msgid "User defined signal 1"
-msgstr "Korisnikom definirani signal 1"
+msgstr "Korisnikom definiran signal 1"
#: sysdeps/generic/siglist.h:56
msgid "User defined signal 2"
-msgstr "Korisnikom definirani signal 2"
+msgstr "Korisnikom definiran signal 2"
#: sysdeps/generic/siglist.h:57
msgid "Window changed"
-msgstr "Prozor je promijenjen"
+msgstr "Promjena veliÄine prozora"
#: sysdeps/generic/siglist.h:61
msgid "EMT trap"
@@ -5854,11 +5854,11 @@ msgstr "EMT zamka"
#: sysdeps/generic/siglist.h:64
msgid "Stack fault"
-msgstr "Greška stoga"
+msgstr "GreÅ¡ka stÈga"
#: sysdeps/generic/siglist.h:67
msgid "Power failure"
-msgstr "Prekid napajanja"
+msgstr "Prekinuto napajanje"
#: sysdeps/generic/siglist.h:70
msgid "Information request"
@@ -5866,7 +5866,7 @@ msgstr "Zahtjev za informacijom"
#: sysdeps/generic/siglist.h:73
msgid "Resource lost"
-msgstr "Resurs izgubljen"
+msgstr "Resurs je izgubljen (SIGLOST)"
#. TRANS Only the owner of the file (or other resource)
#. TRANS or processes with special privileges can perform the operation.
@@ -5888,7 +5888,7 @@ msgstr "Nema takvog procesa"
#. TRANS Primitives}.
#: sysdeps/gnu/errlist.c:61
msgid "Interrupted system call"
-msgstr "Prekinut sustavski poziv"
+msgstr "Prekinuti sustavski poziv"
#. TRANS Usually used for physical read or write errors.
#: sysdeps/gnu/errlist.c:70
@@ -5910,27 +5910,27 @@ msgstr "Nema takvog uređaja ili adrese"
#. TRANS @gnuhurdsystems{}.
#: sysdeps/gnu/errlist.c:95
msgid "Argument list too long"
-msgstr "Popis argumenata je predugaÄak"
+msgstr "Popis sadrži previše argumenata"
#. TRANS Invalid executable file format. This condition is detected by the
#. TRANS @code{exec} functions; see @ref{Executing a File}.
#: sysdeps/gnu/errlist.c:105
msgid "Exec format error"
-msgstr "Greška formata izvršne datoteke"
+msgstr "Greška u formatu izvršne datoteke"
#. TRANS For example, I/O on a descriptor that has been
#. TRANS closed or reading from a descriptor open only for writing (or vice
#. TRANS versa).
#: sysdeps/gnu/errlist.c:116
msgid "Bad file descriptor"
-msgstr "LoÅ¡i datoteÄni deskriptor"
+msgstr "LoÅ¡ datoteÄni deskriptor"
#. TRANS This error happens on operations that are
#. TRANS supposed to manipulate child processes, when there aren't any processes
#. TRANS to manipulate.
#: sysdeps/gnu/errlist.c:127
msgid "No child processes"
-msgstr "Nema procesa potomka (dijete-procesa)"
+msgstr "Nema potomaka (child processes)"
#. TRANS Allocating a system resource would have resulted in a
#. TRANS deadlock situation. The system does not guarantee that it will notice
@@ -5944,7 +5944,7 @@ msgstr "Izbjegnuto je potpuno blokiranje resursa"
#. TRANS because its capacity is full.
#: sysdeps/gnu/errlist.c:149
msgid "Cannot allocate memory"
-msgstr "Nema dovoljno memorije za dodijeliti"
+msgstr "Nema dovoljno memorije"
#. TRANS An invalid pointer was detected.
#. TRANS On @gnuhurdsystems{}, this error never happens; you get a signal instead.
@@ -5977,7 +5977,7 @@ msgstr "Datoteka postoji"
#. TRANS also when you rename a file with @code{rename} (@pxref{Renaming Files}).
#: sysdeps/gnu/errlist.c:211
msgid "Invalid cross-device link"
-msgstr "Nevaljana veza između uređaja"
+msgstr "Nevaljana poveznica između uređaja"
#. TRANS The wrong type of device was given to a function that expects a
#. TRANS particular sort of device.
@@ -6061,7 +6061,7 @@ msgstr "DatoteÄni sustav je samo za Äitanje"
#. TRANS as many links as it can take (@pxref{Renaming Files}).
#: sysdeps/gnu/errlist.c:347
msgid "Too many links"
-msgstr "Previše veza"
+msgstr "Previše poveznica"
#. TRANS Used by mathematical functions when an argument value does
#. TRANS not fall into the domain over which the function is defined.
@@ -6211,7 +6211,7 @@ msgstr "Mreža je iskljuÄena -- nije aktivna"
#. TRANS was unreachable.
#: sysdeps/gnu/errlist.c:586
msgid "Network is unreachable"
-msgstr "Mreža je nedostupna"
+msgstr "Mreža nije dostupna"
#. TRANS A network connection was reset because the remote host crashed.
#: sysdeps/gnu/errlist.c:595
@@ -6228,7 +6228,7 @@ msgstr "Softver je uzrok prekida veze"
#. TRANS protocol violation.
#: sysdeps/gnu/errlist.c:615
msgid "Connection reset by peer"
-msgstr "Veza je prekinuta od druge strane (od ravnopravnoga Älana u prijenosu)"
+msgstr "Poveznica je prekinuta od druge strane (od ravnopravnoga Älana u prijenosu)"
#. TRANS The kernel's buffers for I/O operations are all in use. In GNU, this
#. TRANS error is always synonymous with @code{ENOMEM}; you may get one or the
@@ -6283,7 +6283,7 @@ msgstr "Veza odbijena"
#. TRANS This often indicates a cycle of symbolic links.
#: sysdeps/gnu/errlist.c:706
msgid "Too many levels of symbolic links"
-msgstr "PreviÅ¡e razina simboliÄkih veza"
+msgstr "PreviÅ¡e razina simboliÄkih poveznica"
#. TRANS Filename too long (longer than @code{PATH_MAX}; @pxref{Limits for
#. TRANS Files}) or host name too long (in @code{gethostname} or
@@ -6295,7 +6295,7 @@ msgstr "Ime datoteke je predugaÄko"
#. TRANS The remote host for a requested network connection is down.
#: sysdeps/gnu/errlist.c:726
msgid "Host is down"
-msgstr "RaÄunalo nije ukljuÄeno"
+msgstr "Host nije ukljuÄen"
#. TRANS The remote host for a requested network connection is not reachable.
#: sysdeps/gnu/errlist.c:735
@@ -6450,252 +6450,265 @@ msgid "You really blew it this time"
msgstr "Ovog puta si zbilja zabrljao"
#. TRANS Go home and have a glass of warm, dairy-fresh milk.
-#: sysdeps/gnu/errlist.c:978
+#. TRANS @c Okay. Since you are dying to know, I'll tell you.
+#. TRANS @c This is a joke, obviously. There is a children's song which begins,
+#. TRANS @c "Old McDonald had a farm, e-i-e-i-o." Every time I see the (real)
+#. TRANS @c errno macro EIO, I think about that song. Probably most of my
+#. TRANS @c compatriots who program on Unix do, too. One of them must have stayed
+#. TRANS @c up a little too late one night and decided to add it to Hurd or Glibc.
+#. TRANS @c Whoever did it should be castigated, but it made me laugh.
+#. TRANS @c --jtobey@channel1.com
+#. TRANS @c
+#. TRANS @c "bought the farm" means "died". -jtobey
+#. TRANS @c
+#. TRANS @c Translators, please do not translate this litteraly, translate it into
+#. TRANS @c an idiomatic funny way of saying that the computer died.
+#: sysdeps/gnu/errlist.c:991
msgid "Computer bought the farm"
-msgstr "RaÄunalo je crknulo"
+msgstr "RaÄunalo je mrtvo"
#. TRANS This error code has no purpose.
-#: sysdeps/gnu/errlist.c:987
+#: sysdeps/gnu/errlist.c:1000
msgid "Gratuitous error"
msgstr "Besplatna greška"
-#: sysdeps/gnu/errlist.c:995
+#: sysdeps/gnu/errlist.c:1008
msgid "Bad message"
msgstr "Loša poruka"
-#: sysdeps/gnu/errlist.c:1003
+#: sysdeps/gnu/errlist.c:1016
msgid "Identifier removed"
msgstr "Identifikator je bio odstranjeni"
-#: sysdeps/gnu/errlist.c:1011
+#: sysdeps/gnu/errlist.c:1024
msgid "Multihop attempted"
msgstr "Pokušaj povezivanja preko više uređaja (Multihop)"
-#: sysdeps/gnu/errlist.c:1019
+#: sysdeps/gnu/errlist.c:1032
msgid "No data available"
msgstr "Nema dostupnih podataka"
-#: sysdeps/gnu/errlist.c:1027
+#: sysdeps/gnu/errlist.c:1040
msgid "Link has been severed"
msgstr "Veza je oštećena"
-#: sysdeps/gnu/errlist.c:1035
+#: sysdeps/gnu/errlist.c:1048
msgid "No message of desired type"
msgstr "Nema poruke željene vrste"
-#: sysdeps/gnu/errlist.c:1043
+#: sysdeps/gnu/errlist.c:1056
msgid "Out of streams resources"
msgstr "Nema dovoljno resursa streaminga (potoka)"
-#: sysdeps/gnu/errlist.c:1051
+#: sysdeps/gnu/errlist.c:1064
msgid "Device not a stream"
msgstr "Uređaj nije stream (potok)"
-#: sysdeps/gnu/errlist.c:1059
+#: sysdeps/gnu/errlist.c:1072
msgid "Value too large for defined data type"
msgstr "Vrijednost je prevelika za definiranu vrstu podataka"
-#: sysdeps/gnu/errlist.c:1067
+#: sysdeps/gnu/errlist.c:1080
msgid "Protocol error"
msgstr "Greška protokola"
-#: sysdeps/gnu/errlist.c:1075
+#: sysdeps/gnu/errlist.c:1088
msgid "Timer expired"
-msgstr "Vrijeme na Å¡toperici je isteklo"
+msgstr "Tajmer je istekao"
#. TRANS An asynchronous operation was canceled before it
#. TRANS completed. @xref{Asynchronous I/O}. When you call @code{aio_cancel},
#. TRANS the normal result is for the operations affected to complete with this
#. TRANS error; @pxref{Cancel AIO Operations}.
-#: sysdeps/gnu/errlist.c:1087
+#: sysdeps/gnu/errlist.c:1100
msgid "Operation canceled"
msgstr "Operacija otkazana"
-#: sysdeps/gnu/errlist.c:1095
+#: sysdeps/gnu/errlist.c:1108
msgid "Owner died"
msgstr "Vlasnik je mrtav"
-#: sysdeps/gnu/errlist.c:1103
+#: sysdeps/gnu/errlist.c:1116
msgid "State not recoverable"
msgstr "Stanje se ne može oporaviti"
-#: sysdeps/gnu/errlist.c:1111
+#: sysdeps/gnu/errlist.c:1124
msgid "Interrupted system call should be restarted"
msgstr "Prekinuti poziv sustava bi se trebao ponovo pokrenuti"
-#: sysdeps/gnu/errlist.c:1119
+#: sysdeps/gnu/errlist.c:1132
msgid "Channel number out of range"
msgstr "Broj kanala je izvan granice raspona"
-#: sysdeps/gnu/errlist.c:1127
+#: sysdeps/gnu/errlist.c:1140
msgid "Level 2 not synchronized"
msgstr "Razina 2 nije sinkronizirana"
-#: sysdeps/gnu/errlist.c:1135
+#: sysdeps/gnu/errlist.c:1148
msgid "Level 3 halted"
msgstr "Razina 3 je zaustavljena"
-#: sysdeps/gnu/errlist.c:1143
+#: sysdeps/gnu/errlist.c:1156
msgid "Level 3 reset"
msgstr "Razina 3 je ponovo pokrenuta"
-#: sysdeps/gnu/errlist.c:1151
+#: sysdeps/gnu/errlist.c:1164
msgid "Link number out of range"
msgstr "Broj veze izvan granice raspona"
-#: sysdeps/gnu/errlist.c:1159
+#: sysdeps/gnu/errlist.c:1172
msgid "Protocol driver not attached"
msgstr "UpravljaÄki program protokola nije prikljuÄen"
-#: sysdeps/gnu/errlist.c:1167
+#: sysdeps/gnu/errlist.c:1180
msgid "No CSI structure available"
msgstr "CSI strukture nisu dostupne"
-#: sysdeps/gnu/errlist.c:1175
+#: sysdeps/gnu/errlist.c:1188
msgid "Level 2 halted"
msgstr "Razina 2 je zaustavljena"
-#: sysdeps/gnu/errlist.c:1183
+#: sysdeps/gnu/errlist.c:1196
msgid "Invalid exchange"
msgstr "Nevaljana razmjena"
-#: sysdeps/gnu/errlist.c:1191
+#: sysdeps/gnu/errlist.c:1204
msgid "Invalid request descriptor"
msgstr "Nevaljani deskriptor zahtjeva"
-#: sysdeps/gnu/errlist.c:1199
+#: sysdeps/gnu/errlist.c:1212
msgid "Exchange full"
msgstr "Razmjena je puna"
-#: sysdeps/gnu/errlist.c:1207
+#: sysdeps/gnu/errlist.c:1220
msgid "No anode"
msgstr "Nema anode"
-#: sysdeps/gnu/errlist.c:1215
+#: sysdeps/gnu/errlist.c:1228
msgid "Invalid request code"
msgstr "Nevaljani kod zahtjeva"
-#: sysdeps/gnu/errlist.c:1223
+#: sysdeps/gnu/errlist.c:1236
msgid "Invalid slot"
msgstr "Nevaljani slot"
-#: sysdeps/gnu/errlist.c:1231
+#: sysdeps/gnu/errlist.c:1244
msgid "File locking deadlock error"
msgstr "GreÅ¡ka pri zakljuÄavanju datoteke; totalno blokiranje"
-#: sysdeps/gnu/errlist.c:1239
+#: sysdeps/gnu/errlist.c:1252
msgid "Bad font file format"
msgstr "Loš format datoteke sa znakovima"
-#: sysdeps/gnu/errlist.c:1247
+#: sysdeps/gnu/errlist.c:1260
msgid "Machine is not on the network"
msgstr "RaÄunalo nije na mreži"
-#: sysdeps/gnu/errlist.c:1255
+#: sysdeps/gnu/errlist.c:1268
msgid "Package not installed"
msgstr "Paket nije instalirani"
-#: sysdeps/gnu/errlist.c:1263
+#: sysdeps/gnu/errlist.c:1276
msgid "Advertise error"
msgstr "Greška oglašavanja"
-#: sysdeps/gnu/errlist.c:1271
+#: sysdeps/gnu/errlist.c:1284
msgid "Srmount error"
msgstr "Srmount greška"
-#: sysdeps/gnu/errlist.c:1279
+#: sysdeps/gnu/errlist.c:1292
msgid "Communication error on send"
msgstr "Greška u komunikaciji pri slanju"
-#: sysdeps/gnu/errlist.c:1287
+#: sysdeps/gnu/errlist.c:1300
msgid "RFS specific error"
msgstr "RFS specifiÄna greÅ¡ka"
-#: sysdeps/gnu/errlist.c:1295
+#: sysdeps/gnu/errlist.c:1308
msgid "Name not unique on network"
msgstr "Ime nije jedinstveno na mreži"
-#: sysdeps/gnu/errlist.c:1303
+#: sysdeps/gnu/errlist.c:1316
msgid "File descriptor in bad state"
msgstr "Deskriptor datoteke je u lošem stanju"
-#: sysdeps/gnu/errlist.c:1311
+#: sysdeps/gnu/errlist.c:1324
msgid "Remote address changed"
msgstr "Udaljena adresa se promijenila"
-#: sysdeps/gnu/errlist.c:1319
+#: sysdeps/gnu/errlist.c:1332
msgid "Can not access a needed shared library"
msgstr "Nije moguće pristupiti nužnoj zajedniÄkoj biblioteci"
-#: sysdeps/gnu/errlist.c:1327
+#: sysdeps/gnu/errlist.c:1340
msgid "Accessing a corrupted shared library"
msgstr "Pristupanje oštećenoj dijeljenoj biblioteci"
-#: sysdeps/gnu/errlist.c:1335
+#: sysdeps/gnu/errlist.c:1348
msgid ".lib section in a.out corrupted"
msgstr ".lib sekcija u a.out je oštećena"
-#: sysdeps/gnu/errlist.c:1343
+#: sysdeps/gnu/errlist.c:1356
msgid "Attempting to link in too many shared libraries"
msgstr "Pokušaj povezati se s previše dijeljenih biblioteka"
-#: sysdeps/gnu/errlist.c:1351
+#: sysdeps/gnu/errlist.c:1364
msgid "Cannot exec a shared library directly"
msgstr "Nije moguće izravno pokrenuti dijeljenu biblioteku"
-#: sysdeps/gnu/errlist.c:1359
+#: sysdeps/gnu/errlist.c:1372
msgid "Streams pipe error"
msgstr "Greška u cijevi streama (potoka)"
-#: sysdeps/gnu/errlist.c:1367
+#: sysdeps/gnu/errlist.c:1380
msgid "Structure needs cleaning"
msgstr "Strukturu se mora oÄistiti"
-#: sysdeps/gnu/errlist.c:1375
+#: sysdeps/gnu/errlist.c:1388
msgid "Not a XENIX named type file"
msgstr "Nije XENIX datoteka s imenom"
-#: sysdeps/gnu/errlist.c:1383
+#: sysdeps/gnu/errlist.c:1396
msgid "No XENIX semaphores available"
msgstr "Nisu dostupni XENIX semafori"
-#: sysdeps/gnu/errlist.c:1391
+#: sysdeps/gnu/errlist.c:1404
msgid "Is a named type file"
msgstr "Je datoteka s imenom"
-#: sysdeps/gnu/errlist.c:1399
+#: sysdeps/gnu/errlist.c:1412
msgid "Remote I/O error"
msgstr "Udaljena U/I greška"
-#: sysdeps/gnu/errlist.c:1407
+#: sysdeps/gnu/errlist.c:1420
msgid "No medium found"
msgstr "Nije pronađen medij"
-#: sysdeps/gnu/errlist.c:1415
+#: sysdeps/gnu/errlist.c:1428
msgid "Wrong medium type"
msgstr "Kriva vrsta medija"
-#: sysdeps/gnu/errlist.c:1423
+#: sysdeps/gnu/errlist.c:1436
msgid "Required key not available"
msgstr "Potreban kljuÄ nije dostupni"
-#: sysdeps/gnu/errlist.c:1431
+#: sysdeps/gnu/errlist.c:1444
msgid "Key has expired"
msgstr "KljuÄ je istekao -- viÅ¡e ne vrijedi"
-#: sysdeps/gnu/errlist.c:1439
+#: sysdeps/gnu/errlist.c:1452
msgid "Key has been revoked"
msgstr "KljuÄ je bio opozvani"
-#: sysdeps/gnu/errlist.c:1447
+#: sysdeps/gnu/errlist.c:1460
msgid "Key was rejected by service"
msgstr "Usluga je odbila kljuÄ"
-#: sysdeps/gnu/errlist.c:1455
+#: sysdeps/gnu/errlist.c:1468
msgid "Operation not possible due to RF-kill"
msgstr "Operacija nije moguća zbog RF-kill"
-#: sysdeps/gnu/errlist.c:1463
+#: sysdeps/gnu/errlist.c:1476
msgid "Memory page has hardware error"
msgstr "Memorijska stranica ima hardversku grešku"
@@ -6705,11 +6718,11 @@ msgstr "Greška u nepoznatom sustavu grešaka: "
#: sysdeps/posix/gai_strerror-strs.h:1
msgid "Address family for hostname not supported"
-msgstr "Familija adresa ne podržava dano ime raÄunala"
+msgstr "Familija adresa za hostname nije podržana"
#: sysdeps/posix/gai_strerror-strs.h:2
msgid "Temporary failure in name resolution"
-msgstr "Privremena greÅ¡ka u razluÄivanju imena"
+msgstr "Privremeni neuspjeh u rješavanju imena"
#: sysdeps/posix/gai_strerror-strs.h:3
msgid "Bad value for ai_flags"
@@ -6721,27 +6734,27 @@ msgstr "Nepopravljivi neuspjeh u razluÄivanju imena"
#: sysdeps/posix/gai_strerror-strs.h:5
msgid "ai_family not supported"
-msgstr "ai_family nije podržani"
+msgstr "ai_family nije podržana"
#: sysdeps/posix/gai_strerror-strs.h:6
msgid "Memory allocation failure"
-msgstr "Dodjeljivanje memorije nije uspjelo"
+msgstr "Dodjela memorije nije uspjela"
#: sysdeps/posix/gai_strerror-strs.h:7
msgid "No address associated with hostname"
-msgstr "S imenom raÄunala nije povezana ni jedna adresa"
+msgstr "Nema adrese povezane s hostname"
#: sysdeps/posix/gai_strerror-strs.h:8
msgid "Name or service not known"
-msgstr "Ime ili usluga nisu poznati"
+msgstr "Ime ili servis nije poznato"
#: sysdeps/posix/gai_strerror-strs.h:9
msgid "Servname not supported for ai_socktype"
-msgstr "Servname nije podržani za ai_socktype"
+msgstr "Servname nije podržano za ai_socktype"
#: sysdeps/posix/gai_strerror-strs.h:10
msgid "ai_socktype not supported"
-msgstr "ai_socktype nije podržani"
+msgstr "ai_socktype nije podržan"
#: sysdeps/posix/gai_strerror-strs.h:11
msgid "System error"
@@ -6753,7 +6766,7 @@ msgstr "Obrada zahtjeva je u tijeku"
#: sysdeps/posix/gai_strerror-strs.h:13
msgid "Request canceled"
-msgstr "Zahtjev otkazan"
+msgstr "Zahtjev je otkazan"
#: sysdeps/posix/gai_strerror-strs.h:14
msgid "Request not canceled"
@@ -6769,7 +6782,7 @@ msgstr "Prekinuto signalom"
#: sysdeps/posix/gai_strerror-strs.h:17
msgid "Parameter string not correctly encoded"
-msgstr "String parametra nije pravilno kodiran"
+msgstr "String parametra nije ispravno kodiran"
#: sysdeps/unix/sysv/linux/i386/readelflib.c:65
#, c-format
@@ -6814,34 +6827,34 @@ msgstr "nije uspjelo oznaÄiti podruÄje zastarjelog koda"
#: sysdeps/x86/dl-cet.c:269
msgid "shadow stack isn't enabled"
-msgstr "„sjena“ stog nije omogućeni"
+msgstr "stÈgova sjena (shadow stack) nije omogućena"
# Intel CET (Control-Flow Enforcement Technology)
#: sysdeps/x86/dl-cet.c:290
msgid "can't disable CET"
msgstr "nije moguće onemogućiti CET (Control-Flow Enforcement Technology)"
-#: timezone/zdump.c:338
+#: timezone/zdump.c:332
msgid "has fewer than 3 characters"
msgstr "ima manje od 3 znaka"
-#: timezone/zdump.c:340
+#: timezone/zdump.c:334
msgid "has more than 6 characters"
msgstr "ima više od 6 znakova"
-#: timezone/zdump.c:342
+#: timezone/zdump.c:336
msgid "has characters other than ASCII alphanumerics, '-' or '+'"
msgstr "ima znakove razliÄite od ASCII slova i brojeva i „-“ or „+“"
-#: timezone/zdump.c:347
+#: timezone/zdump.c:341
#, c-format
msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n"
msgstr "%s: upozorenje: zona „%s“ kratica „%s“ %s\n"
-#: timezone/zdump.c:393
+#: timezone/zdump.c:387
#, c-format
msgid ""
-"%s: usage: %s OPTIONS ZONENAME ...\n"
+"%s: usage: %s OPTIONS TIMEZONE ...\n"
"Options include:\n"
" -c [L,]U Start at year L (default -500), end before year U (default 2500)\n"
" -t [L,]U Start at time L, end before time U (in seconds since 1970)\n"
@@ -6858,7 +6871,7 @@ msgstr ""
"na naredbenom retku\n"
"Opcije:\n"
" -c [L,]U poÄne u godini L (zadano -500), zavrÅ¡i prije godine U (zadano 2500)\n"
-" -t [L,]U poÄne s vremenom L, zavrÅ¡i prije vremena U (u sekundama od 1970.)\n"
+" -t [L,]U poÄne s vremenom L, zavrÅ¡i prije vremena U (u sekundama od 1970)\n"
" -i kratak popis tranzicija (eksperimentalni format)\n"
" -v opširni popis tranzicija\n"
" -V manje opširan popis tranzicija\n"
@@ -6867,456 +6880,502 @@ msgstr ""
"\n"
"Prijavite greške na %s.\n"
-#: timezone/zdump.c:479
+#: timezone/zdump.c:473
#, c-format
msgid "%s: wild -c argument %s\n"
msgstr "%s: suvišni argument %s na opciji -c\n"
-#: timezone/zdump.c:512
+#: timezone/zdump.c:506
#, c-format
msgid "%s: wild -t argument %s\n"
msgstr "%s: suvišni argument %s na opciji -t\n"
-#: timezone/zic.c:398
+#: timezone/zic.c:429
#, c-format
msgid "%s: Memory exhausted: %s\n"
-msgstr "%s: Memorija je iscrpljena: %s\n"
+msgstr "%s: Nema dovoljno memorije: %s\n"
-#: timezone/zic.c:406
+#: timezone/zic.c:437
msgid "size overflow"
msgstr "preljev veliÄine"
-#: timezone/zic.c:454
+#: timezone/zic.c:447
+msgid "alignment overflow"
+msgstr "prelijevanje poravnanja"
+
+#: timezone/zic.c:495
msgid "integer overflow"
-msgstr "preljev cijelog broja"
+msgstr "prelijevanje pri operaciji s cijelim brojem"
-#: timezone/zic.c:488
+#: timezone/zic.c:529
#, c-format
msgid "\"%s\", line %<PRIdMAX>: "
msgstr "„%s“, redak %<PRIdMAX>: "
-#: timezone/zic.c:491
+#: timezone/zic.c:532
#, c-format
msgid " (rule from \"%s\", line %<PRIdMAX>)"
msgstr " (pravilo iz „%s“, redak %<PRIdMAX>)"
-#: timezone/zic.c:510
+#: timezone/zic.c:551
#, c-format
msgid "warning: "
msgstr "upozorenje: "
-#: timezone/zic.c:535
+#: timezone/zic.c:576
#, c-format
msgid ""
"%s: usage is %s [ --version ] [ --help ] [ -v ] \\\n"
"\t[ -l localtime ] [ -p posixrules ] [ -d directory ] \\\n"
-"\t[ -L leapseconds ] [ filename ... ]\n"
+"\t[ -t localtime-link ] [ -L leapseconds ] [ filename ... ]\n"
"\n"
"Report bugs to %s.\n"
msgstr ""
-"%s: Kompilator vremenskih zona\n"
-"Obradi tekst iz datoteka navedenih na naredbenom retku i stvori\n"
-"iz njih binarne datoteke s pretvorenim podacima za vremenske zone.\n"
-"Ako je ulazna datoteka navedena kao - (spojnica), obradi informacije\n"
-"navedene na standardno ulazu. Za detalje pogledajte u „info zic“.\n"
-"\n"
-"Uporaba: %s [--version] [--help] [-v] [-l lokalno_vrijeme] [-p posix_pravila]\n"
-" [-d direktorij] [-L prijestupne_sekunde] [datoteka ...]\n"
+"%s: uporaba: %s [--version] [--help] [-v] [-l lokalno_vrijeme]\\\n"
+" [-p posix_pravila] [-d direktorij] [-L prijestupne_sekunde]\\\n"
+" [datoteka ...]\n"
"\n"
-"Prijavite greške na %s.\n"
+"Prijavite (na engleskom) greške na %s.\n"
-#: timezone/zic.c:558
+#: timezone/zic.c:599
#, c-format
msgid "%s: Can't chdir to %s: %s\n"
msgstr "%s: Nije moguće promijeniti (chdir) radni direktorij u %s: %s\n"
-#: timezone/zic.c:590
+#: timezone/zic.c:632
msgid "wild compilation-time specification of zic_t"
msgstr "greška u kompilaciji: tip „zic_t“ ima premalo bita; loše specificirani zic_t"
-#: timezone/zic.c:610
+#: timezone/zic.c:652
#, c-format
msgid "%s: More than one -d option specified\n"
msgstr "%s: Navedeno je više od jedne opcije -d\n"
-#: timezone/zic.c:620
+#: timezone/zic.c:662
#, c-format
msgid "%s: More than one -l option specified\n"
msgstr "%s: Navedeno je više od jedne opcije -l\n"
-#: timezone/zic.c:630
+#: timezone/zic.c:672
#, c-format
msgid "%s: More than one -p option specified\n"
msgstr "%s: Navedeno je više od jedne opcije -p\n"
-#: timezone/zic.c:640
+#: timezone/zic.c:680
+#, c-format
+msgid "%s: More than one -t option specified\n"
+msgstr "%s: Navedeno je više od jedne opcije -t\n"
+
+#: timezone/zic.c:689
+msgid "-y is obsolescent"
+msgstr "-y je zastarjela"
+
+#: timezone/zic.c:693
#, c-format
msgid "%s: More than one -y option specified\n"
msgstr "%s: Navedeno je više od jedne opcije -y\n"
-#: timezone/zic.c:650
+#: timezone/zic.c:703
#, c-format
msgid "%s: More than one -L option specified\n"
msgstr "%s: Navedeno je više od jedne opcije -L\n"
-#: timezone/zic.c:659
+#: timezone/zic.c:712
msgid "-s ignored"
msgstr "-s ignorira se"
-#: timezone/zic.c:698
+#: timezone/zic.c:753
msgid "link to link"
-msgstr "veza na drugu vezu"
+msgstr "poveznica na drugu vezu"
-#: timezone/zic.c:701 timezone/zic.c:705
+#: timezone/zic.c:756 timezone/zic.c:760
msgid "command line"
msgstr "naredbeni redak"
-#: timezone/zic.c:721
+#: timezone/zic.c:776
msgid "empty file name"
-msgstr "prazno ime datoteke"
+msgstr "ime datoteke je prazno"
-#: timezone/zic.c:724
+#: timezone/zic.c:779
#, c-format
msgid "file name '%s' begins with '/'"
msgstr "ime datoteke „%s“ poÄinje s „/“"
-#: timezone/zic.c:734
+#: timezone/zic.c:789
#, c-format
msgid "file name '%s' contains '%.*s' component"
msgstr "ime datoteke „%s“ sadrži komponentu „%.*s“"
-#: timezone/zic.c:740
+#: timezone/zic.c:795
#, c-format
msgid "file name '%s' component contains leading '-'"
msgstr "ime datoteke „%s“ komponenta sadrži poÄinje sa „-“"
-#: timezone/zic.c:743
+#: timezone/zic.c:798
#, c-format
msgid "file name '%s' contains overlength component '%.*s...'"
msgstr "ime datoteke „%s“ sadrži predugu komponentu „%.*s“"
-#: timezone/zic.c:771
+#: timezone/zic.c:826
#, c-format
msgid "file name '%s' contains byte '%c'"
msgstr "ime datoteke „%s“ sadrži bajt „%c“"
-#: timezone/zic.c:772
+#: timezone/zic.c:827
#, c-format
msgid "file name '%s' contains byte '\\%o'"
msgstr "ime datoteke „%s“ sadrži bajt „\\%o“"
-#: timezone/zic.c:842
+#: timezone/zic.c:897
#, c-format
msgid "%s: link from %s/%s failed: %s\n"
msgstr "%s: napraviti vezu s %s/%s nije uspjelo: %s\n"
-#: timezone/zic.c:852 timezone/zic.c:1815
+#: timezone/zic.c:907 timezone/zic.c:1876
#, c-format
msgid "%s: Can't remove %s/%s: %s\n"
msgstr "%s: Nije moguće ukloniti %s/%s: %s\n"
-#: timezone/zic.c:874
+#: timezone/zic.c:931
#, c-format
msgid "symbolic link used because hard link failed: %s"
-msgstr "stvorena je simboliÄka veza jer Ävrsta veza nije uspjela: %s"
+msgstr "stvorena je simboliÄka poveznica jer Ävrsta poveznica nije uspjela: %s"
-#: timezone/zic.c:882
+#: timezone/zic.c:939
#, c-format
msgid "%s: Can't read %s/%s: %s\n"
msgstr "%s: Nije moguće proÄitati %s/%s: %s\n"
-#: timezone/zic.c:889 timezone/zic.c:1828
+#: timezone/zic.c:946 timezone/zic.c:1889
#, c-format
msgid "%s: Can't create %s/%s: %s\n"
msgstr "%s: Nije moguće stvoriti %s/%s: %s\n"
-#: timezone/zic.c:898
+#: timezone/zic.c:955
#, c-format
msgid "copy used because hard link failed: %s"
-msgstr "kopira se jer Ävrsta veza nije uspjela: %s"
+msgstr "kopira se jer Ävrsta poveznica nije uspjela: %s"
-#: timezone/zic.c:901
+#: timezone/zic.c:958
#, c-format
msgid "copy used because symbolic link failed: %s"
-msgstr "kopira se jer simboliÄka veza nije uspjela: %s"
+msgstr "kopira se jer simboliÄka poveznica nije uspjela: %s"
-#: timezone/zic.c:1013 timezone/zic.c:1015
+#: timezone/zic.c:1032 timezone/zic.c:1034
msgid "same rule name in multiple files"
msgstr "isto ime pravila pojavljuje se u nekoliko datoteka"
-#: timezone/zic.c:1056
-msgid "unruly zone"
-msgstr "„neposlušna“ vremenska zona"
-
-#: timezone/zic.c:1063
+#: timezone/zic.c:1081
#, c-format
msgid "%s in ruleless zone"
msgstr "%s u „neposlušnoj“ vremenskoj zoni"
-#: timezone/zic.c:1083
+#: timezone/zic.c:1101
msgid "standard input"
msgstr "standardni ulaz"
-#: timezone/zic.c:1088
+#: timezone/zic.c:1106
#, c-format
msgid "%s: Can't open %s: %s\n"
msgstr "%s: Nije moguće otvoriti %s: %s\n"
-#: timezone/zic.c:1099
+#: timezone/zic.c:1117
msgid "line too long"
msgstr "redak je predugaÄki"
-#: timezone/zic.c:1119
+#: timezone/zic.c:1139
msgid "input line of unknown type"
msgstr "ulazni redak je nepoznatoga tipa"
-#: timezone/zic.c:1134
-#, c-format
-msgid "%s: Leap line in non leap seconds file %s"
-msgstr ""
-"%s: Leap redak u datoteci %s koja nije\n"
-" primijenjena za prijestupne sekunde"
-
-#: timezone/zic.c:1142 timezone/zic.c:1547 timezone/zic.c:1569
+#: timezone/zic.c:1158 timezone/zic.c:1593 timezone/zic.c:1615
#, c-format
msgid "%s: panic: Invalid l_value %d\n"
msgstr "%s: **interna greška** -- nevaljani l_value %d\n"
-#: timezone/zic.c:1151
+#: timezone/zic.c:1167
msgid "expected continuation line not found"
msgstr "oÄekivao se je naredni continuation-redak"
-#: timezone/zic.c:1193 timezone/zic.c:2976
+#: timezone/zic.c:1203
+msgid "fractional seconds rejected by pre-2018 versions of zic"
+msgstr "inaÄice zic-a starije od 2018. godine ne podržavaju dijelove sekunde"
+
+#: timezone/zic.c:1221 timezone/zic.c:3078
msgid "time overflow"
msgstr "preljev vremena"
-#: timezone/zic.c:1198
+#: timezone/zic.c:1227
msgid "values over 24 hours not handled by pre-2007 versions of zic"
msgstr "inaÄice starije od 2007. godine ne podržavaju vrijednosti veće od 24 sata"
-#: timezone/zic.c:1209
+#: timezone/zic.c:1245
+msgid "invalid saved time"
+msgstr "nevaljano saÄuvano vrijeme"
+
+#: timezone/zic.c:1256
msgid "wrong number of fields on Rule line"
msgstr "nevaljani broj polja u Rule retku"
-#: timezone/zic.c:1213
-msgid "nameless rule"
-msgstr "bezimeno pravilo"
-
-#: timezone/zic.c:1218
-msgid "invalid saved time"
-msgstr "nevaljano saÄuvano vrijeme"
+#: timezone/zic.c:1265
+#, c-format
+msgid "Invalid rule name \"%s\""
+msgstr "Nevaljano ime za pravilo „%s“!"
-#: timezone/zic.c:1235
+#: timezone/zic.c:1287
msgid "wrong number of fields on Zone line"
msgstr "nevaljani broj polja u Zone retku"
-#: timezone/zic.c:1240
+#: timezone/zic.c:1292
#, c-format
msgid "\"Zone %s\" line and -l option are mutually exclusive"
msgstr "„Zone %s“ redak i opcija -l se meÄ‘usobno iskljuÄuju"
-#: timezone/zic.c:1246
+#: timezone/zic.c:1298
#, c-format
msgid "\"Zone %s\" line and -p option are mutually exclusive"
msgstr "„Zone %s“ redak i opcija -p se meÄ‘usobno iskljuÄuju"
-#: timezone/zic.c:1253
+#: timezone/zic.c:1305
#, c-format
msgid "duplicate zone name %s (file \"%s\", line %<PRIdMAX>)"
msgstr ""
"duplikat imena zone\n"
" %s (datoteka „%s“, redak %<PRIdMAX>)"
-#: timezone/zic.c:1267
+#: timezone/zic.c:1319
msgid "wrong number of fields on Zone continuation line"
msgstr "nevaljani broj polja u Zone continuation-retku"
-#: timezone/zic.c:1307
+#: timezone/zic.c:1359
msgid "invalid UT offset"
msgstr "nevaljani UTC odmak"
-#: timezone/zic.c:1311
+#: timezone/zic.c:1363
msgid "invalid abbreviation format"
msgstr "nevaljani format kratice"
-#: timezone/zic.c:1320
+#: timezone/zic.c:1372
#, c-format
msgid "format '%s' not handled by pre-2015 versions of zic"
msgstr "inaÄice starije od 2015. godine ne podržavaju format „%s“"
-#: timezone/zic.c:1347
+#: timezone/zic.c:1399
msgid "Zone continuation line end time is not after end time of previous line"
msgstr ""
"Zone continuation-redak: UNTIL (do) vrijeme\n"
" nije kasnije od UNTIL (do) vremena u prethodnom retku"
-#: timezone/zic.c:1374
+#: timezone/zic.c:1426
msgid "wrong number of fields on Leap line"
msgstr "nevaljani broj polja u Leap retku"
-#: timezone/zic.c:1383
+#: timezone/zic.c:1435
msgid "invalid leaping year"
msgstr "nevaljana prijestupna godina"
-#: timezone/zic.c:1403 timezone/zic.c:1501
+#: timezone/zic.c:1455 timezone/zic.c:1547
msgid "invalid month name"
msgstr "nevaljano ime mjeseca"
-#: timezone/zic.c:1416 timezone/zic.c:1614 timezone/zic.c:1628
+#: timezone/zic.c:1468 timezone/zic.c:1663 timezone/zic.c:1677
msgid "invalid day of month"
msgstr "nevaljani dan u mjesecu"
-#: timezone/zic.c:1421
+#: timezone/zic.c:1473
msgid "time too small"
msgstr "premala vrijednost za vrijeme"
-#: timezone/zic.c:1425
+#: timezone/zic.c:1477
msgid "time too large"
msgstr "prevelika vrijednost za vrijeme"
-#: timezone/zic.c:1429 timezone/zic.c:1530
+#: timezone/zic.c:1481 timezone/zic.c:1576
msgid "invalid time of day"
msgstr "nevaljano doba (HH:MM:SS) dana"
-#: timezone/zic.c:1448
+#: timezone/zic.c:1494
msgid "illegal CORRECTION field on Leap line"
msgstr "nepropisno CORRECTION polje u Leap retku"
-#: timezone/zic.c:1453
+#: timezone/zic.c:1499
msgid "illegal Rolling/Stationary field on Leap line"
msgstr "nepropisno Rolling/Stationary polje u Leap retku"
-#: timezone/zic.c:1459
-msgid "leap second precedes Big Bang"
-msgstr "prijestupna sekunda prethodi velikom prasku (Big Bang)"
+#: timezone/zic.c:1505
+msgid "leap second precedes Epoch"
+msgstr "prijestupna sekunda prethodi Epohi (Unix Epoch)"
-#: timezone/zic.c:1472
+#: timezone/zic.c:1518
msgid "wrong number of fields on Link line"
msgstr "nevaljani broj polja u Link retku"
-#: timezone/zic.c:1476
+#: timezone/zic.c:1522
msgid "blank FROM field on Link line"
msgstr "prazno FROM polje u Link retku"
-#: timezone/zic.c:1551
+#: timezone/zic.c:1597
msgid "invalid starting year"
msgstr "nevaljana poÄetna godina"
-#: timezone/zic.c:1573
+#: timezone/zic.c:1619
msgid "invalid ending year"
msgstr "nevaljana konaÄna godina"
-#: timezone/zic.c:1577
+#: timezone/zic.c:1623
msgid "starting year greater than ending year"
msgstr "poÄetna godina je veća od konaÄne godine"
-#: timezone/zic.c:1584
+#: timezone/zic.c:1630
msgid "typed single year"
msgstr "poÄetna godina i konaÄna godina su iste"
-#: timezone/zic.c:1619
+#: timezone/zic.c:1633
+#, c-format
+msgid "year type \"%s\" is obsolete; use \"-\" instead"
+msgstr "vrsta godine „%s“ je zastarjela -- umjesto toga koristite „-“"
+
+#: timezone/zic.c:1668
msgid "invalid weekday name"
msgstr "nevaljani dan u tjednu"
-#: timezone/zic.c:1743
+#: timezone/zic.c:1800
#, c-format
msgid "reference clients mishandle more than %d transition times"
msgstr "referentni klijenti griješe u više od %d tranzicijskih vremena"
-#: timezone/zic.c:1747
+#: timezone/zic.c:1804
msgid "pre-2014 clients may mishandle more than 1200 transition times"
msgstr "klijenti stariji od 2014. godine griješe u više od 1200 tranzicijskih vremena"
-#: timezone/zic.c:1858
+#: timezone/zic.c:1920
msgid "too many transition times"
msgstr "previše tranzicijskih vremena"
-#: timezone/zic.c:2047
+#: timezone/zic.c:2107
#, c-format
-msgid "%%z UTC offset magnitude exceeds 99:59:59"
-msgstr "%%z UTC veliÄina odmaka premaÅ¡uje 99:59:59"
+msgid "%%z UT offset magnitude exceeds 99:59:59"
+msgstr "%%z UT veliÄina odmaka premaÅ¡uje 99:59:59"
-#: timezone/zic.c:2424
+#: timezone/zic.c:2488
msgid "no POSIX environment variable for zone"
msgstr "nema POSIX varijable okoline za vremensku zonu"
-#: timezone/zic.c:2430
+#: timezone/zic.c:2494
#, c-format
msgid "%s: pre-%d clients may mishandle distant timestamps"
msgstr ""
"%s: klijenti stariji od %d. godine mogu zabrljati\n"
" u rukovanju s davnim vremenskim oznakama"
-#: timezone/zic.c:2566
+#: timezone/zic.c:2631
msgid "two rules for same instant"
msgstr "dva pravila za isti trenutak (vremenski)"
-#: timezone/zic.c:2627
+#: timezone/zic.c:2696
msgid "can't determine time zone abbreviation to use just after until time"
msgstr ""
"nije moguće odrediti kraticu vremenske zone za korištenje\n"
" tek nakon UNTIL (do) vremena"
-#: timezone/zic.c:2725
+#: timezone/zic.c:2785
msgid "too many local time types"
msgstr "previše vrsta lokalnog vremena"
-#: timezone/zic.c:2729
+#: timezone/zic.c:2789
msgid "UT offset out of range"
msgstr "UTC odmak je izvan granica raspona"
-#: timezone/zic.c:2753
+#: timezone/zic.c:2813
msgid "too many leap seconds"
msgstr "previše prijestupnih sekundi"
-#: timezone/zic.c:2759
-msgid "repeated leap second moment"
-msgstr "ponavljanje momenta prijestupne sekunde"
+#: timezone/zic.c:2844
+msgid "Leap seconds too close together"
+msgstr "Prijestupne sekunde su preblizu jedna drugoj"
-#: timezone/zic.c:2830
+#: timezone/zic.c:2891
msgid "Wild result from command execution"
msgstr "Čudni rezultat od izvršenja naredbe"
-#: timezone/zic.c:2831
+#: timezone/zic.c:2892
#, c-format
msgid "%s: command was '%s', result was %d\n"
msgstr "%s: naredba je bila „%s“ a rezultat je bio %d\n"
-#: timezone/zic.c:2961
+#: timezone/zic.c:2998
+#, c-format
+msgid "\"%s\" is undocumented; use \"last%s\" instead"
+msgstr "„%s“ nije dokumentirana -- koristite umjesto toga „last%s“"
+
+#: timezone/zic.c:3029
+#, c-format
+msgid "\"%s\" is ambiguous in pre-2017c zic"
+msgstr "„%s“ je dvosmisleno za „zic“ stariji od 2017c"
+
+#: timezone/zic.c:3063
msgid "Odd number of quotation marks"
msgstr "Neparan broj znakova citiranja"
-#: timezone/zic.c:3046
+#: timezone/zic.c:3157
msgid "use of 2/29 in non leap-year"
msgstr "koriÅ¡tenje 29. veljaÄe u godini koja nije prijestupna"
-#: timezone/zic.c:3081
+#: timezone/zic.c:3192
msgid "rule goes past start/end of month; will not work with pre-2004 versions of zic"
msgstr ""
"pravilo obuhvaća promjenu mjeseca (IN i ON nisu u istom mjesecu);\n"
" inaÄice starije od 2004. godine to ne podržavaju"
-#: timezone/zic.c:3108
+#: timezone/zic.c:3219
msgid "time zone abbreviation has fewer than 3 characters"
msgstr "kratica za vremensku zonu ima manje od 3 slova"
-#: timezone/zic.c:3110
+#: timezone/zic.c:3221
msgid "time zone abbreviation has too many characters"
msgstr "kratica za vremensku zonu ima previše slova"
-#: timezone/zic.c:3112
+#: timezone/zic.c:3223
msgid "time zone abbreviation differs from POSIX standard"
msgstr "kratica za vremensku zonu se razlikuje od POSIX standarda"
-#: timezone/zic.c:3118
+#: timezone/zic.c:3229
msgid "too many, or too long, time zone abbreviations"
msgstr "kratice vremenskih zona su predugaÄke ili ih ima previÅ¡e"
-#: timezone/zic.c:3161
+#: timezone/zic.c:3275
#, c-format
msgid "%s: Can't create directory %s: %s"
msgstr "%s: Nije moguće stvoriti direktorij %s: %s"
+#~ msgid "cannot open zero fill device"
+#~ msgstr "nije moguće otvoriti nulama ispunjeni uređaj"
+
+#~ msgid "relocation error"
+#~ msgstr "greška premještanja"
+
+#~ msgid "Cannot set LC_CTYPE to default locale"
+#~ msgstr "Nije moguće postaviti LC_CTYPE na zadani locale"
+
+#~ msgid "Cannot set LC_MESSAGES to default locale"
+#~ msgstr "Nije moguće postaviti LC_MESSAGES na zadani locale"
+
+#~ msgid "Cannot set LC_COLLATE to default locale"
+#~ msgstr "Nije moguće postaviti LC_COLLATE na zadani locale"
+
+#~ msgid "unruly zone"
+#~ msgstr "„neposlušna“ vremenska zona"
+
+#~ msgid "%s: Leap line in non leap seconds file %s"
+#~ msgstr ""
+#~ "%s: Leap redak u datoteci %s koja nije\n"
+#~ " primijenjena za prijestupne sekunde"
+
+#~ msgid "nameless rule"
+#~ msgstr "bezimeno pravilo"
+
+#~ msgid "repeated leap second moment"
+#~ msgstr "ponavljanje momenta prijestupne sekunde"
+
#~ msgid "invalid caller"
#~ msgstr "nevaljani pozivaÄ (pozvana funkcija)"
diff --git a/po/hu.po b/po/hu.po
index 97b6ba9c51..8f57714ba8 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -7,7 +7,7 @@
msgid ""
msgstr ""
"Project-Id-Version: libc 2.10.1\n"
-"POT-Creation-Date: 2018-07-26 22:19-0400\n"
+"POT-Creation-Date: 2019-07-18 13:28-0400\n"
"PO-Revision-Date: 2009-08-04 02:23+0200\n"
"Last-Translator: Gabor Kelemen <kelemeng@gnome.hu>\n"
"Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
@@ -148,10 +148,10 @@ msgstr ""
"[KIMENETIFÃJL [BEMENETIFÃJL]...]"
#: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:308
-#: elf/pldd.c:252 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
-#: iconv/iconvconfig.c:379 locale/programs/locale.c:275
-#: locale/programs/localedef.c:427 login/programs/pt_chown.c:89
-#: malloc/memusagestat.c:563 nss/getent.c:933 nss/makedb.c:369
+#: elf/pldd.c:247 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
+#: iconv/iconvconfig.c:379 locale/programs/locale.c:276
+#: locale/programs/localedef.c:437 login/programs/pt_chown.c:89
+#: malloc/memusagestat.c:563 nss/getent.c:953 nss/makedb.c:369
#: posix/getconf.c:503 sysdeps/unix/sysv/linux/lddlibc4.c:61
#, fuzzy, c-format
#| msgid ""
@@ -165,11 +165,11 @@ msgstr ""
"<http://www.gnu.org/software/libc/bugs.html>.\n"
#: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64
-#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75
+#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:263 elf/sotruss.sh:75
#: elf/sprof.c:389 iconv/iconv_prog.c:422 iconv/iconvconfig.c:396
-#: locale/programs/locale.c:292 locale/programs/localedef.c:453
+#: locale/programs/locale.c:293 locale/programs/localedef.c:463
#: login/programs/pt_chown.c:63 malloc/memusage.sh:71
-#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:87 nss/makedb.c:385
+#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:88 nss/makedb.c:385
#: posix/getconf.c:485 sysdeps/unix/sysv/linux/lddlibc4.c:68
#, c-format
msgid ""
@@ -182,10 +182,10 @@ msgstr ""
"garancia, még az ADOTT CÉLRE VALÓ ELADHATÓSÃGRA VAGY MEGFELELÅSÉGRE SEM.\n"
#: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68
-#: elf/ldconfig.c:329 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:427
-#: iconv/iconvconfig.c:401 locale/programs/locale.c:297
-#: locale/programs/localedef.c:458 malloc/memusage.sh:75
-#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:92 nss/makedb.c:390
+#: elf/ldconfig.c:329 elf/pldd.c:268 elf/sprof.c:395 iconv/iconv_prog.c:427
+#: iconv/iconvconfig.c:401 locale/programs/locale.c:298
+#: locale/programs/localedef.c:468 malloc/memusage.sh:75
+#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:93 nss/makedb.c:390
#: posix/getconf.c:490
#, c-format
msgid "Written by %s.\n"
@@ -256,21 +256,21 @@ msgstr "a kimeneti fájl (\"%s\") nem nyitható meg"
msgid "invalid escape sequence"
msgstr "érvénytelen escape-sorozat"
-#: catgets/gencat.c:1209
+#: catgets/gencat.c:1211
msgid "unterminated message"
msgstr "befejezetlen üzenet"
-#: catgets/gencat.c:1233
+#: catgets/gencat.c:1235
#, c-format
msgid "while opening old catalog file"
msgstr "hiba a régi katalógusfájl megnyitásakor"
-#: catgets/gencat.c:1324
+#: catgets/gencat.c:1326
#, c-format
msgid "conversion modules not available"
msgstr "az átalakítási modulok nem érhetők el"
-#: catgets/gencat.c:1350
+#: catgets/gencat.c:1352
#, c-format
msgid "cannot determine escape character"
msgstr "az escape-karakter nem határozható meg"
@@ -407,7 +407,7 @@ msgstr "Ismeretlen OS"
msgid ", OS ABI: %s %d.%d.%d"
msgstr ", OS ABI: %s %d.%d.%d"
-#: elf/cache.c:163 elf/ldconfig.c:1332
+#: elf/cache.c:163 elf/ldconfig.c:1333
#, c-format
msgid "Can't open cache file %s\n"
msgstr "Nem nyitható meg a gyorsítótárfájl (%s)\n"
@@ -417,38 +417,38 @@ msgstr "Nem nyitható meg a gyorsítótárfájl (%s)\n"
msgid "mmap of cache file failed.\n"
msgstr "a gyorsítótár mmap-olása meghiúsult.\n"
-#: elf/cache.c:181 elf/cache.c:195
+#: elf/cache.c:181 elf/cache.c:195 elf/cache.c:205
#, c-format
msgid "File is not a cache file.\n"
msgstr "A fájl nem gyorsítótárfájl.\n"
-#: elf/cache.c:228 elf/cache.c:238
+#: elf/cache.c:233 elf/cache.c:243
#, c-format
msgid "%d libs found in cache `%s'\n"
msgstr "%d programkönyvtár található a gyorsítótárban („%sâ€)\n"
-#: elf/cache.c:432
+#: elf/cache.c:437
#, c-format
msgid "Can't create temporary cache file %s"
msgstr "Nem hozható létre az ideiglenes gyorsítótárfájl (%s)"
-#: elf/cache.c:440 elf/cache.c:450 elf/cache.c:454 elf/cache.c:458
-#: elf/cache.c:468
+#: elf/cache.c:445 elf/cache.c:455 elf/cache.c:459 elf/cache.c:463
+#: elf/cache.c:473
#, c-format
msgid "Writing of cache data failed"
msgstr "A gyorsítótáradatok írása meghiúsult"
-#: elf/cache.c:463
+#: elf/cache.c:468
#, c-format
msgid "Changing access rights of %s to %#o failed"
msgstr "%s hozzáférési jogainak módosítása meghiúsult erre: %#o"
-#: elf/cache.c:472
+#: elf/cache.c:477
#, c-format
msgid "Renaming of %s to %s failed"
msgstr "%s átnevezése meghiúsult erre: %s"
-#: elf/dl-close.c:399 elf/dl-open.c:420
+#: elf/dl-close.c:399 elf/dl-open.c:424
msgid "cannot create scope list"
msgstr "Nem hozható létre hatókörlista"
@@ -531,119 +531,121 @@ msgstr "nem hozható létre keresésiútvonal-tömb"
msgid "cannot stat shared object"
msgstr "nem érhető el a megosztott objektum"
-#: elf/dl-load.c:960
-msgid "cannot open zero fill device"
-msgstr "nem nyitható meg a nullával kitöltő eszköz"
-
-#: elf/dl-load.c:1007 elf/dl-load.c:2203
+#: elf/dl-load.c:992 elf/dl-load.c:2198
msgid "cannot create shared object descriptor"
msgstr "nem hozható létre megosztott objektumleíró"
-#: elf/dl-load.c:1026 elf/dl-load.c:1560 elf/dl-load.c:1673
+#: elf/dl-load.c:1011 elf/dl-load.c:1555 elf/dl-load.c:1668
msgid "cannot read file data"
msgstr "nem olvashatók a fájladatok"
-#: elf/dl-load.c:1072
+#: elf/dl-load.c:1057
msgid "ELF load command alignment not page-aligned"
msgstr "az ELF betöltési parancs igazítása nem lapokhoz igazított"
-#: elf/dl-load.c:1079
+#: elf/dl-load.c:1064
msgid "ELF load command address/offset not properly aligned"
msgstr "az ELF betöltési parancs címe/eltolása nincs megfelelően igazítva"
-#: elf/dl-load.c:1161
+#: elf/dl-load.c:1146
msgid "cannot process note segment"
msgstr ""
-#: elf/dl-load.c:1172
+#: elf/dl-load.c:1157
msgid "object file has no loadable segments"
msgstr "az objektumfájlnak nincsenek betölthető szakaszai"
-#: elf/dl-load.c:1181 elf/dl-load.c:1652
+#: elf/dl-load.c:1170 elf/dl-load.c:1647
msgid "cannot dynamically load executable"
msgstr "nem tölthető be dinamikusan a végrehajtható fájl"
-#: elf/dl-load.c:1202
+#: elf/dl-load.c:1191
msgid "object file has no dynamic section"
msgstr "az objektumfájlnak nincs dinamikus szakasza"
-#: elf/dl-load.c:1225
+#: elf/dl-load.c:1218
+#, fuzzy
+#| msgid "cannot dynamically load executable"
+msgid "cannot dynamically load position-independent executable"
+msgstr "nem tölthető be dinamikusan a végrehajtható fájl"
+
+#: elf/dl-load.c:1220
msgid "shared object cannot be dlopen()ed"
msgstr "megosztott objektumra nem hívható meg a dlopen()"
-#: elf/dl-load.c:1238
+#: elf/dl-load.c:1233
msgid "cannot allocate memory for program header"
msgstr "nem foglalható memória a program fejlécének"
-#: elf/dl-load.c:1271 elf/dl-load.h:130
+#: elf/dl-load.c:1266 elf/dl-load.h:130
msgid "cannot change memory protections"
msgstr "a memóriavédelem nem módosítható"
-#: elf/dl-load.c:1291
+#: elf/dl-load.c:1286
msgid "cannot enable executable stack as shared object requires"
msgstr "nem engedélyezhető a végrehajtható verem, mint ahogy a megosztott objektum megköveteli"
-#: elf/dl-load.c:1304
+#: elf/dl-load.c:1299
msgid "cannot close file descriptor"
msgstr "nem zárható le a fájlleíró"
-#: elf/dl-load.c:1560
+#: elf/dl-load.c:1555
msgid "file too short"
msgstr "a fájl túl rövid"
-#: elf/dl-load.c:1595
+#: elf/dl-load.c:1590
msgid "invalid ELF header"
msgstr "érvénytelen ELF fejléc"
-#: elf/dl-load.c:1607
+#: elf/dl-load.c:1602
msgid "ELF file data encoding not big-endian"
msgstr "az ELF fájladatok kódolása nem big endian"
-#: elf/dl-load.c:1609
+#: elf/dl-load.c:1604
msgid "ELF file data encoding not little-endian"
msgstr "az ELF fájladatok kódolása nem little endian"
-#: elf/dl-load.c:1613
+#: elf/dl-load.c:1608
msgid "ELF file version ident does not match current one"
msgstr "az ELF fájlverzió azonosítója nem felel meg az aktuálisnak"
-#: elf/dl-load.c:1617
+#: elf/dl-load.c:1612
msgid "ELF file OS ABI invalid"
msgstr "az ELF fájl OS ABI-ja érvénytelen"
-#: elf/dl-load.c:1620
+#: elf/dl-load.c:1615
msgid "ELF file ABI version invalid"
msgstr "az ELF fájl ABI verziója érvénytelen"
-#: elf/dl-load.c:1623
+#: elf/dl-load.c:1618
msgid "nonzero padding in e_ident"
msgstr ""
-#: elf/dl-load.c:1626
+#: elf/dl-load.c:1621
msgid "internal error"
msgstr "belső hiba"
-#: elf/dl-load.c:1633
+#: elf/dl-load.c:1628
msgid "ELF file version does not match current one"
msgstr "az ELF fájlverzió nem felel meg az aktuálisnak"
-#: elf/dl-load.c:1641
+#: elf/dl-load.c:1636
msgid "only ET_DYN and ET_EXEC can be loaded"
msgstr "csak az ET_DYN és ET_EXEC tölthető be"
-#: elf/dl-load.c:1657
+#: elf/dl-load.c:1652
msgid "ELF file's phentsize not the expected size"
msgstr "az ELF fájl phentsize értéke nem a várt méretű"
-#: elf/dl-load.c:2222
+#: elf/dl-load.c:2217
msgid "wrong ELF class: ELFCLASS64"
msgstr "hibás ELF osztály: ELFCLASS64"
-#: elf/dl-load.c:2223
+#: elf/dl-load.c:2218
msgid "wrong ELF class: ELFCLASS32"
msgstr "hibás ELF osztály: ELFCLASS32"
-#: elf/dl-load.c:2226
+#: elf/dl-load.c:2221
msgid "cannot open shared object file"
msgstr "nem nyitható meg a megosztott objektumfájl"
@@ -655,11 +657,7 @@ msgstr "a szegmens leképezése meghiúsult a megosztott objektumból"
msgid "cannot map zero-fill pages"
msgstr "nem képezhetők le a nullával kitöltött lapok"
-#: elf/dl-lookup.c:835
-msgid "relocation error"
-msgstr "áthelyezési hiba"
-
-#: elf/dl-lookup.c:858
+#: elf/dl-lookup.c:830
msgid "symbol lookup error"
msgstr "szimbólumkikeresési hiba"
@@ -667,19 +665,19 @@ msgstr "szimbólumkikeresési hiba"
msgid "cannot extend global scope"
msgstr "a globális hatáskör nem bővíthető"
-#: elf/dl-open.c:470
+#: elf/dl-open.c:474
msgid "TLS generation counter wrapped! Please report this."
msgstr ""
-#: elf/dl-open.c:534
+#: elf/dl-open.c:538
msgid "invalid mode for dlopen()"
msgstr ""
-#: elf/dl-open.c:551
+#: elf/dl-open.c:555
msgid "no more namespaces available for dlmopen()"
msgstr ""
-#: elf/dl-open.c:575
+#: elf/dl-open.c:579
msgid "invalid target namespace in dlmopen()"
msgstr ""
@@ -687,20 +685,20 @@ msgstr ""
msgid "cannot allocate memory in static TLS block"
msgstr ""
-#: elf/dl-reloc.c:205
+#: elf/dl-reloc.c:213
msgid "cannot make segment writable for relocation"
msgstr ""
-#: elf/dl-reloc.c:276
+#: elf/dl-reloc.c:272
#, c-format
msgid "%s: out of memory to store relocation results for %s\n"
msgstr ""
-#: elf/dl-reloc.c:292
+#: elf/dl-reloc.c:288
msgid "cannot restore segment prot after reloc"
msgstr ""
-#: elf/dl-reloc.c:323
+#: elf/dl-reloc.c:319
msgid "cannot apply additional memory protection after relocation"
msgstr ""
@@ -922,22 +920,22 @@ msgstr ""
msgid "memory exhausted"
msgstr "elfogyott a memória"
-#: elf/ldconfig.c:1233
+#: elf/ldconfig.c:1234
#, c-format
msgid "%s:%u: cannot read directory %s"
msgstr ""
-#: elf/ldconfig.c:1281
+#: elf/ldconfig.c:1282
#, c-format
msgid "relative path `%s' used to build cache"
msgstr ""
-#: elf/ldconfig.c:1311
+#: elf/ldconfig.c:1312
#, c-format
msgid "Can't chdir to /"
msgstr ""
-#: elf/ldconfig.c:1352
+#: elf/ldconfig.c:1353
#, c-format
msgid "Can't open cache file directory %s\n"
msgstr ""
@@ -1007,106 +1005,111 @@ msgstr ""
msgid "error: you do not have read permission for"
msgstr ""
-#: elf/pldd-xx.c:105
+#: elf/pldd-xx.c:102
#, c-format
msgid "cannot find program header of process"
msgstr ""
-#: elf/pldd-xx.c:110
+#: elf/pldd-xx.c:106
#, fuzzy, c-format
#| msgid "cannot read header"
msgid "cannot read program header"
msgstr "a fejléc nem olvasható"
-#: elf/pldd-xx.c:135
+#: elf/pldd-xx.c:128
#, fuzzy, c-format
#| msgid "object file has no dynamic section"
msgid "cannot read dynamic section"
msgstr "az objektumfájlnak nincs dinamikus szakasza"
-#: elf/pldd-xx.c:147
+#: elf/pldd-xx.c:137
#, fuzzy, c-format
#| msgid "cannot read header"
msgid "cannot read r_debug"
msgstr "a fejléc nem olvasható"
-#: elf/pldd-xx.c:167
+#: elf/pldd-xx.c:154
#, fuzzy, c-format
#| msgid "cannot read header"
msgid "cannot read program interpreter"
msgstr "a fejléc nem olvasható"
-#: elf/pldd-xx.c:197
+#: elf/pldd-xx.c:183
#, fuzzy, c-format
#| msgid "cannot read file data"
msgid "cannot read link map"
msgstr "nem olvashatók a fájladatok"
-#: elf/pldd-xx.c:209
+#: elf/pldd-xx.c:190
#, fuzzy, c-format
#| msgid "cannot read header"
msgid "cannot read object name"
msgstr "a fejléc nem olvasható"
-#: elf/pldd-xx.c:219
+#: elf/pldd-xx.c:197
#, fuzzy, c-format
#| msgid "cannot allocate memory for program header"
msgid "cannot allocate buffer for object name"
msgstr "nem foglalható memória a program fejlécének"
-#: elf/pldd.c:64
+#: elf/pldd.c:58
msgid "List dynamic shared objects loaded into process."
msgstr ""
-#: elf/pldd.c:68
+#: elf/pldd.c:62
msgid "PID"
msgstr ""
-#: elf/pldd.c:100
+#: elf/pldd.c:89
#, c-format
msgid "Exactly one parameter with process ID required.\n"
msgstr ""
-#: elf/pldd.c:112
+#: elf/pldd.c:103
#, fuzzy, c-format
#| msgid "invalid pointer size"
msgid "invalid process ID '%s'"
msgstr "érvénytelen mutatóméret"
-#: elf/pldd.c:120
+#: elf/pldd.c:111
#, fuzzy, c-format
#| msgid "cannot open `%s'"
msgid "cannot open %s"
msgstr "„%s†nem nyitható meg"
-#: elf/pldd.c:152
+#: elf/pldd.c:142
#, fuzzy, c-format
#| msgid "cannot open `%s'"
msgid "cannot open %s/task"
msgstr "„%s†nem nyitható meg"
-#: elf/pldd.c:155
+#: elf/pldd.c:145
#, c-format
msgid "cannot prepare reading %s/task"
msgstr ""
-#: elf/pldd.c:168
+#: elf/pldd.c:158
#, fuzzy, c-format
#| msgid "invalid ELF header"
msgid "invalid thread ID '%s'"
msgstr "érvénytelen ELF fejléc"
-#: elf/pldd.c:179
+#: elf/pldd.c:169
#, c-format
msgid "cannot attach to process %lu"
msgstr ""
-#: elf/pldd.c:294
+#: elf/pldd.c:184
+#, c-format
+msgid "no valid %s/task entries"
+msgstr ""
+
+#: elf/pldd.c:290
#, c-format
msgid "cannot get information about process %lu"
msgstr ""
-#: elf/pldd.c:307
+#: elf/pldd.c:303
#, c-format
msgid "process %lu is no ELF program"
msgstr ""
@@ -1418,7 +1421,7 @@ msgstr ""
msgid "list all known coded character sets"
msgstr ""
-#: iconv/iconv_prog.c:64 locale/programs/localedef.c:120
+#: iconv/iconv_prog.c:64 locale/programs/localedef.c:124
msgid "Output control:"
msgstr ""
@@ -1427,8 +1430,8 @@ msgid "omit invalid characters from output"
msgstr ""
#: iconv/iconv_prog.c:66 iconv/iconvconfig.c:128
-#: locale/programs/localedef.c:113 locale/programs/localedef.c:115
-#: locale/programs/localedef.c:117 locale/programs/localedef.c:144
+#: locale/programs/localedef.c:117 locale/programs/localedef.c:119
+#: locale/programs/localedef.c:121 locale/programs/localedef.c:150
#: malloc/memusagestat.c:56
#, fuzzy
#| msgid "[FILE]"
@@ -1523,7 +1526,7 @@ msgstr ""
msgid "[DIR...]"
msgstr ""
-#: iconv/iconvconfig.c:126 locale/programs/localedef.c:123
+#: iconv/iconvconfig.c:126 locale/programs/localedef.c:129
msgid "PATH"
msgstr ""
@@ -1707,14 +1710,14 @@ msgstr ""
#: locale/programs/charmap.c:503 locale/programs/charmap.c:557
#: locale/programs/charmap.c:589 locale/programs/charmap.c:683
-#: locale/programs/charmap.c:738 locale/programs/charmap.c:779
-#: locale/programs/charmap.c:820
+#: locale/programs/charmap.c:739 locale/programs/charmap.c:780
+#: locale/programs/charmap.c:821
#, c-format
msgid "syntax error in %s definition: %s"
msgstr ""
#: locale/programs/charmap.c:504 locale/programs/charmap.c:684
-#: locale/programs/charmap.c:780 locale/programs/repertoire.c:229
+#: locale/programs/charmap.c:781 locale/programs/repertoire.c:229
msgid "no symbolic name given"
msgstr ""
@@ -1730,14 +1733,14 @@ msgstr ""
msgid "too many bytes in character encoding"
msgstr ""
-#: locale/programs/charmap.c:591 locale/programs/charmap.c:739
-#: locale/programs/charmap.c:822 locale/programs/repertoire.c:295
+#: locale/programs/charmap.c:591 locale/programs/charmap.c:740
+#: locale/programs/charmap.c:823 locale/programs/repertoire.c:295
msgid "no symbolic name given for end of range"
msgstr ""
#: locale/programs/charmap.c:615 locale/programs/ld-address.c:524
#: locale/programs/ld-collate.c:2616 locale/programs/ld-collate.c:3774
-#: locale/programs/ld-ctype.c:2117 locale/programs/ld-ctype.c:2829
+#: locale/programs/ld-ctype.c:2118 locale/programs/ld-ctype.c:2830
#: locale/programs/ld-identification.c:397
#: locale/programs/ld-measurement.c:213 locale/programs/ld-messages.c:295
#: locale/programs/ld-monetary.c:748 locale/programs/ld-name.c:262
@@ -1752,58 +1755,58 @@ msgstr ""
msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
msgstr ""
-#: locale/programs/charmap.c:656 locale/programs/charmap.c:719
+#: locale/programs/charmap.c:656 locale/programs/charmap.c:720
#, c-format
msgid "value for %s must be an integer"
msgstr ""
-#: locale/programs/charmap.c:847
+#: locale/programs/charmap.c:848
#, c-format
msgid "%s: error in state machine"
msgstr ""
-#: locale/programs/charmap.c:855 locale/programs/ld-address.c:540
+#: locale/programs/charmap.c:856 locale/programs/ld-address.c:540
#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967
-#: locale/programs/ld-ctype.c:2114 locale/programs/ld-ctype.c:2846
+#: locale/programs/ld-ctype.c:2115 locale/programs/ld-ctype.c:2847
#: locale/programs/ld-identification.c:413
#: locale/programs/ld-measurement.c:229 locale/programs/ld-messages.c:311
#: locale/programs/ld-monetary.c:764 locale/programs/ld-name.c:278
#: locale/programs/ld-numeric.c:341 locale/programs/ld-paper.c:228
#: locale/programs/ld-telephone.c:292 locale/programs/ld-time.c:990
-#: locale/programs/locfile.c:997 locale/programs/repertoire.c:323
+#: locale/programs/locfile.c:1010 locale/programs/repertoire.c:323
#, c-format
msgid "%s: premature end of file"
msgstr ""
-#: locale/programs/charmap.c:874 locale/programs/charmap.c:885
+#: locale/programs/charmap.c:875 locale/programs/charmap.c:886
#, c-format
msgid "unknown character `%s'"
msgstr ""
-#: locale/programs/charmap.c:893
+#: locale/programs/charmap.c:894
#, c-format
msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d"
msgstr ""
-#: locale/programs/charmap.c:998 locale/programs/ld-collate.c:2893
+#: locale/programs/charmap.c:999 locale/programs/ld-collate.c:2893
#: locale/programs/repertoire.c:418
msgid "invalid names for character range"
msgstr ""
-#: locale/programs/charmap.c:1010 locale/programs/repertoire.c:430
+#: locale/programs/charmap.c:1011 locale/programs/repertoire.c:430
msgid "hexadecimal range format should use only capital characters"
msgstr ""
-#: locale/programs/charmap.c:1028 locale/programs/repertoire.c:448
+#: locale/programs/charmap.c:1029 locale/programs/repertoire.c:448
#, c-format
msgid "<%s> and <%s> are invalid names for range"
msgstr ""
-#: locale/programs/charmap.c:1034 locale/programs/repertoire.c:455
+#: locale/programs/charmap.c:1035 locale/programs/repertoire.c:455
msgid "upper limit in range is smaller than lower limit"
msgstr ""
-#: locale/programs/charmap.c:1092
+#: locale/programs/charmap.c:1093
msgid "resulting bytes for range not representable."
msgstr ""
@@ -1872,7 +1875,7 @@ msgid "%s: numeric country code `%d' not valid"
msgstr ""
#: locale/programs/ld-address.c:432 locale/programs/ld-address.c:469
-#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2478
+#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2479
#: locale/programs/ld-identification.c:309
#: locale/programs/ld-measurement.c:196 locale/programs/ld-messages.c:264
#: locale/programs/ld-monetary.c:503 locale/programs/ld-monetary.c:538
@@ -1895,7 +1898,7 @@ msgid "%s: unknown character in field `%s'"
msgstr ""
#: locale/programs/ld-address.c:521 locale/programs/ld-collate.c:3772
-#: locale/programs/ld-ctype.c:2826 locale/programs/ld-identification.c:394
+#: locale/programs/ld-ctype.c:2827 locale/programs/ld-identification.c:394
#: locale/programs/ld-measurement.c:210 locale/programs/ld-messages.c:293
#: locale/programs/ld-monetary.c:746 locale/programs/ld-name.c:260
#: locale/programs/ld-numeric.c:323 locale/programs/ld-paper.c:210
@@ -1908,8 +1911,8 @@ msgstr ""
#: locale/programs/ld-collate.c:602 locale/programs/ld-collate.c:898
#: locale/programs/ld-collate.c:911 locale/programs/ld-collate.c:2582
#: locale/programs/ld-collate.c:2603 locale/programs/ld-collate.c:3957
-#: locale/programs/ld-ctype.c:1846 locale/programs/ld-ctype.c:2104
-#: locale/programs/ld-ctype.c:2676 locale/programs/ld-ctype.c:2837
+#: locale/programs/ld-ctype.c:1847 locale/programs/ld-ctype.c:2105
+#: locale/programs/ld-ctype.c:2677 locale/programs/ld-ctype.c:2838
#: locale/programs/ld-identification.c:404
#: locale/programs/ld-measurement.c:220 locale/programs/ld-messages.c:302
#: locale/programs/ld-monetary.c:755 locale/programs/ld-name.c:269
@@ -2253,129 +2256,129 @@ msgstr ""
msgid "implementation limit: no more than %d character maps allowed"
msgstr ""
-#: locale/programs/ld-ctype.c:1434 locale/programs/ld-ctype.c:1559
-#: locale/programs/ld-ctype.c:1665 locale/programs/ld-ctype.c:2341
-#: locale/programs/ld-ctype.c:3299
+#: locale/programs/ld-ctype.c:1435 locale/programs/ld-ctype.c:1560
+#: locale/programs/ld-ctype.c:1666 locale/programs/ld-ctype.c:2342
+#: locale/programs/ld-ctype.c:3302
#, c-format
msgid "%s: field `%s' does not contain exactly ten entries"
msgstr ""
-#: locale/programs/ld-ctype.c:1462 locale/programs/ld-ctype.c:2036
+#: locale/programs/ld-ctype.c:1463 locale/programs/ld-ctype.c:2037
#, c-format
msgid "to-value <U%0*X> of range is smaller than from-value <U%0*X>"
msgstr ""
-#: locale/programs/ld-ctype.c:1589
+#: locale/programs/ld-ctype.c:1590
msgid "start and end character sequence of range must have the same length"
msgstr ""
-#: locale/programs/ld-ctype.c:1596
+#: locale/programs/ld-ctype.c:1597
msgid "to-value character sequence is smaller than from-value sequence"
msgstr ""
-#: locale/programs/ld-ctype.c:1956 locale/programs/ld-ctype.c:2007
+#: locale/programs/ld-ctype.c:1957 locale/programs/ld-ctype.c:2008
msgid "premature end of `translit_ignore' definition"
msgstr ""
-#: locale/programs/ld-ctype.c:1962 locale/programs/ld-ctype.c:2013
-#: locale/programs/ld-ctype.c:2055
+#: locale/programs/ld-ctype.c:1963 locale/programs/ld-ctype.c:2014
+#: locale/programs/ld-ctype.c:2056
msgid "syntax error"
msgstr "szintaktikai hiba"
-#: locale/programs/ld-ctype.c:2188
+#: locale/programs/ld-ctype.c:2189
#, c-format
msgid "%s: syntax error in definition of new character class"
msgstr ""
-#: locale/programs/ld-ctype.c:2203
+#: locale/programs/ld-ctype.c:2204
#, c-format
msgid "%s: syntax error in definition of new character map"
msgstr ""
-#: locale/programs/ld-ctype.c:2363
+#: locale/programs/ld-ctype.c:2364
msgid "ellipsis range must be marked by two operands of same type"
msgstr ""
-#: locale/programs/ld-ctype.c:2372
+#: locale/programs/ld-ctype.c:2373
msgid "with symbolic name range values the absolute ellipsis `...' must not be used"
msgstr ""
-#: locale/programs/ld-ctype.c:2387
+#: locale/programs/ld-ctype.c:2388
msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'"
msgstr ""
-#: locale/programs/ld-ctype.c:2401
+#: locale/programs/ld-ctype.c:2402
msgid "with character code range values one must use the absolute ellipsis `...'"
msgstr ""
-#: locale/programs/ld-ctype.c:2552
+#: locale/programs/ld-ctype.c:2553
#, c-format
msgid "duplicated definition for mapping `%s'"
msgstr ""
-#: locale/programs/ld-ctype.c:2638 locale/programs/ld-ctype.c:2782
+#: locale/programs/ld-ctype.c:2639 locale/programs/ld-ctype.c:2783
#, c-format
msgid "%s: `translit_start' section does not end with `translit_end'"
msgstr ""
-#: locale/programs/ld-ctype.c:2733
+#: locale/programs/ld-ctype.c:2734
#, c-format
msgid "%s: duplicate `default_missing' definition"
msgstr ""
-#: locale/programs/ld-ctype.c:2738
+#: locale/programs/ld-ctype.c:2739
msgid "previous definition was here"
msgstr ""
-#: locale/programs/ld-ctype.c:2760
+#: locale/programs/ld-ctype.c:2761
#, c-format
msgid "%s: no representable `default_missing' definition found"
msgstr ""
-#: locale/programs/ld-ctype.c:2877 locale/programs/ld-ctype.c:2973
-#: locale/programs/ld-ctype.c:2992 locale/programs/ld-ctype.c:3012
-#: locale/programs/ld-ctype.c:3032 locale/programs/ld-ctype.c:3052
-#: locale/programs/ld-ctype.c:3072 locale/programs/ld-ctype.c:3111
-#: locale/programs/ld-ctype.c:3131 locale/programs/ld-ctype.c:3195
-#: locale/programs/ld-ctype.c:3236 locale/programs/ld-ctype.c:3259
+#: locale/programs/ld-ctype.c:2878 locale/programs/ld-ctype.c:2974
+#: locale/programs/ld-ctype.c:2993 locale/programs/ld-ctype.c:3013
+#: locale/programs/ld-ctype.c:3033 locale/programs/ld-ctype.c:3053
+#: locale/programs/ld-ctype.c:3073 locale/programs/ld-ctype.c:3112
+#: locale/programs/ld-ctype.c:3132 locale/programs/ld-ctype.c:3198
+#: locale/programs/ld-ctype.c:3239 locale/programs/ld-ctype.c:3262
#, c-format
msgid "%s: character `%s' not defined while needed as default value"
msgstr ""
-#: locale/programs/ld-ctype.c:2882 locale/programs/ld-ctype.c:2978
-#: locale/programs/ld-ctype.c:2997 locale/programs/ld-ctype.c:3017
-#: locale/programs/ld-ctype.c:3037 locale/programs/ld-ctype.c:3057
-#: locale/programs/ld-ctype.c:3077 locale/programs/ld-ctype.c:3116
-#: locale/programs/ld-ctype.c:3136 locale/programs/ld-ctype.c:3200
+#: locale/programs/ld-ctype.c:2883 locale/programs/ld-ctype.c:2979
+#: locale/programs/ld-ctype.c:2998 locale/programs/ld-ctype.c:3018
+#: locale/programs/ld-ctype.c:3038 locale/programs/ld-ctype.c:3058
+#: locale/programs/ld-ctype.c:3078 locale/programs/ld-ctype.c:3117
+#: locale/programs/ld-ctype.c:3137 locale/programs/ld-ctype.c:3203
#, c-format
msgid "%s: character `%s' in charmap not representable with one byte"
msgstr ""
-#: locale/programs/ld-ctype.c:3242 locale/programs/ld-ctype.c:3265
+#: locale/programs/ld-ctype.c:3245 locale/programs/ld-ctype.c:3268
#, c-format
msgid "%s: character `%s' needed as default value not representable with one byte"
msgstr ""
-#: locale/programs/ld-ctype.c:3321
+#: locale/programs/ld-ctype.c:3324
msgid "no output digits defined and none of the standard names in the charmap"
msgstr ""
-#: locale/programs/ld-ctype.c:3570
+#: locale/programs/ld-ctype.c:3573
#, c-format
msgid "%s: transliteration data from locale `%s' not available"
msgstr ""
-#: locale/programs/ld-ctype.c:3669
+#: locale/programs/ld-ctype.c:3672
#, c-format
msgid "%s: table for class \"%s\": %lu bytes"
msgstr ""
-#: locale/programs/ld-ctype.c:3733
+#: locale/programs/ld-ctype.c:3736
#, c-format
msgid "%s: table for map \"%s\": %lu bytes"
msgstr ""
-#: locale/programs/ld-ctype.c:3857
+#: locale/programs/ld-ctype.c:3860
#, c-format
msgid "%s: table for width: %lu bytes"
msgstr ""
@@ -2614,151 +2617,145 @@ msgid ""
"[-a|-m]"
msgstr ""
-#: locale/programs/locale.c:190
-#, c-format
-msgid "Cannot set LC_CTYPE to default locale"
-msgstr ""
-
-#: locale/programs/locale.c:192
-#, c-format
-msgid "Cannot set LC_MESSAGES to default locale"
-msgstr ""
-
-#: locale/programs/locale.c:205
+#: locale/programs/locale.c:522
#, c-format
-msgid "Cannot set LC_COLLATE to default locale"
+msgid "while preparing output"
msgstr ""
-#: locale/programs/locale.c:221
+#: locale/programs/locale.c:998
#, c-format
-msgid "Cannot set LC_ALL to default locale"
+msgid "Cannot set %s to default locale"
msgstr ""
-#: locale/programs/locale.c:521
+#: locale/programs/locale.c:1096
#, c-format
-msgid "while preparing output"
+msgid "warning: The LOCPATH variable is set to \"%s\"\n"
msgstr ""
-#: locale/programs/localedef.c:112
+#: locale/programs/localedef.c:116
msgid "Input Files:"
msgstr ""
-#: locale/programs/localedef.c:114
+#: locale/programs/localedef.c:118
msgid "Symbolic character names defined in FILE"
msgstr ""
-#: locale/programs/localedef.c:116
+#: locale/programs/localedef.c:120
msgid "Source definitions are found in FILE"
msgstr ""
-#: locale/programs/localedef.c:118
+#: locale/programs/localedef.c:122
msgid "FILE contains mapping from symbolic names to UCS4 values"
msgstr ""
-#: locale/programs/localedef.c:122
+#: locale/programs/localedef.c:126
msgid "Create output even if warning messages were issued"
msgstr ""
-#: locale/programs/localedef.c:123
+#: locale/programs/localedef.c:128
+msgid "Do not create hard links between installed locales"
+msgstr ""
+
+#: locale/programs/localedef.c:129
msgid "Optional output file prefix"
msgstr ""
-#: locale/programs/localedef.c:124
+#: locale/programs/localedef.c:130
msgid "Strictly conform to POSIX"
msgstr ""
-#: locale/programs/localedef.c:126
+#: locale/programs/localedef.c:132
msgid "Suppress warnings and information messages"
msgstr ""
-#: locale/programs/localedef.c:127
+#: locale/programs/localedef.c:133
msgid "Print more messages"
msgstr ""
-#: locale/programs/localedef.c:128 locale/programs/localedef.c:131
+#: locale/programs/localedef.c:134 locale/programs/localedef.c:137
msgid "<warnings>"
msgstr ""
-#: locale/programs/localedef.c:129
+#: locale/programs/localedef.c:135
msgid "Comma-separated list of warnings to disable; supported warnings are: ascii, intcurrsym"
msgstr ""
-#: locale/programs/localedef.c:132
+#: locale/programs/localedef.c:138
msgid "Comma-separated list of warnings to enable; supported warnings are: ascii, intcurrsym"
msgstr ""
-#: locale/programs/localedef.c:135
+#: locale/programs/localedef.c:141
msgid "Archive control:"
msgstr ""
-#: locale/programs/localedef.c:137
+#: locale/programs/localedef.c:143
msgid "Don't add new data to archive"
msgstr ""
-#: locale/programs/localedef.c:139
+#: locale/programs/localedef.c:145
msgid "Add locales named by parameters to archive"
msgstr ""
-#: locale/programs/localedef.c:140
+#: locale/programs/localedef.c:146
msgid "Replace existing archive content"
msgstr ""
-#: locale/programs/localedef.c:142
+#: locale/programs/localedef.c:148
msgid "Remove locales named by parameters from archive"
msgstr ""
-#: locale/programs/localedef.c:143
+#: locale/programs/localedef.c:149
msgid "List content of archive"
msgstr ""
-#: locale/programs/localedef.c:145
+#: locale/programs/localedef.c:151
msgid "locale.alias file to consult when making archive"
msgstr ""
-#: locale/programs/localedef.c:147
+#: locale/programs/localedef.c:153
msgid "Generate little-endian output"
msgstr ""
-#: locale/programs/localedef.c:149
+#: locale/programs/localedef.c:155
msgid "Generate big-endian output"
msgstr ""
-#: locale/programs/localedef.c:154
+#: locale/programs/localedef.c:160
msgid "Compile locale specification"
msgstr ""
-#: locale/programs/localedef.c:157
+#: locale/programs/localedef.c:163
msgid ""
"NAME\n"
"[--add-to-archive|--delete-from-archive] FILE...\n"
"--list-archive [FILE]"
msgstr ""
-#: locale/programs/localedef.c:232
+#: locale/programs/localedef.c:238
#, c-format
msgid "cannot create directory for output files"
msgstr ""
-#: locale/programs/localedef.c:243
+#: locale/programs/localedef.c:249
msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
msgstr ""
-#: locale/programs/localedef.c:257 locale/programs/localedef.c:273
-#: locale/programs/localedef.c:663 locale/programs/localedef.c:683
+#: locale/programs/localedef.c:263 locale/programs/localedef.c:279
+#: locale/programs/localedef.c:673 locale/programs/localedef.c:693
#, c-format
msgid "cannot open locale definition file `%s'"
msgstr ""
-#: locale/programs/localedef.c:297
+#: locale/programs/localedef.c:303
#, c-format
msgid "cannot write output files to `%s'"
msgstr ""
-#: locale/programs/localedef.c:303
+#: locale/programs/localedef.c:309
msgid "no output file produced because errors were issued"
msgstr ""
-#: locale/programs/localedef.c:431
+#: locale/programs/localedef.c:441
#, c-format
msgid ""
"System's directory for character maps : %s\n"
@@ -2767,11 +2764,11 @@ msgid ""
"%s"
msgstr ""
-#: locale/programs/localedef.c:631
+#: locale/programs/localedef.c:641
msgid "circular dependencies between locale definitions"
msgstr ""
-#: locale/programs/localedef.c:637
+#: locale/programs/localedef.c:647
#, c-format
msgid "cannot add already read locale `%s' a second time"
msgstr ""
@@ -2928,24 +2925,24 @@ msgstr ""
msgid "failure while writing data for category `%s'"
msgstr ""
-#: locale/programs/locfile.c:917
+#: locale/programs/locfile.c:930
#, c-format
msgid "cannot create output file `%s' for category `%s'"
msgstr ""
-#: locale/programs/locfile.c:953
+#: locale/programs/locfile.c:966
msgid "expecting string argument for `copy'"
msgstr ""
-#: locale/programs/locfile.c:957
+#: locale/programs/locfile.c:970
msgid "locale name should consist only of portable characters"
msgstr ""
-#: locale/programs/locfile.c:976
+#: locale/programs/locfile.c:989
msgid "no other keyword shall be specified when `copy' is used"
msgstr ""
-#: locale/programs/locfile.c:990
+#: locale/programs/locfile.c:1003
#, c-format
msgid "`%1$s' definition does not end with `END %1$s'"
msgstr ""
@@ -3744,12 +3741,12 @@ msgstr ""
msgid "yp_update: cannot get server address\n"
msgstr ""
-#: nscd/aicache.c:83 nscd/hstcache.c:452
+#: nscd/aicache.c:82 nscd/hstcache.c:452
#, c-format
msgid "Haven't found \"%s\" in hosts cache!"
msgstr ""
-#: nscd/aicache.c:85 nscd/hstcache.c:454
+#: nscd/aicache.c:84 nscd/hstcache.c:454
#, c-format
msgid "Reloading \"%s\" in hosts cache!"
msgstr ""
@@ -4070,22 +4067,22 @@ msgstr ""
msgid "no more memory for database '%s'"
msgstr ""
-#: nscd/netgroupcache.c:121
+#: nscd/netgroupcache.c:122
#, c-format
msgid "Haven't found \"%s\" in netgroup cache!"
msgstr ""
-#: nscd/netgroupcache.c:123
+#: nscd/netgroupcache.c:124
#, c-format
msgid "Reloading \"%s\" in netgroup cache!"
msgstr ""
-#: nscd/netgroupcache.c:469
+#: nscd/netgroupcache.c:470
#, c-format
msgid "Haven't found \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr ""
-#: nscd/netgroupcache.c:472
+#: nscd/netgroupcache.c:473
#, c-format
msgid "Reloading \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr ""
@@ -4138,7 +4135,7 @@ msgstr ""
msgid "Name Service Cache Daemon."
msgstr ""
-#: nscd/nscd.c:155 nss/getent.c:967 nss/makedb.c:206
+#: nscd/nscd.c:155 nss/getent.c:987 nss/makedb.c:206
#, c-format
msgid "wrong number of arguments"
msgstr ""
@@ -4243,27 +4240,27 @@ msgstr ""
msgid "Must specify user name for server-user option"
msgstr ""
-#: nscd/nscd_conf.c:198
+#: nscd/nscd_conf.c:201
#, c-format
msgid "Must specify user name for stat-user option"
msgstr ""
-#: nscd/nscd_conf.c:255
+#: nscd/nscd_conf.c:259
#, c-format
msgid "Must specify value for restart-interval option"
msgstr ""
-#: nscd/nscd_conf.c:269
+#: nscd/nscd_conf.c:273
#, c-format
msgid "Unknown option: %s %s %s"
msgstr ""
-#: nscd/nscd_conf.c:282
+#: nscd/nscd_conf.c:286
#, c-format
msgid "cannot get current working directory: %s; disabling paranoia mode"
msgstr ""
-#: nscd/nscd_conf.c:302
+#: nscd/nscd_conf.c:306
#, c-format
msgid "maximum file size for %s database too small"
msgstr ""
@@ -4482,46 +4479,46 @@ msgstr ""
msgid "Reloading \"%s\" in services cache!"
msgstr ""
-#: nss/getent.c:54
+#: nss/getent.c:55
msgid "database [key ...]"
msgstr ""
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "CONFIG"
msgstr ""
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "Service configuration to be used"
msgstr ""
-#: nss/getent.c:60
+#: nss/getent.c:61
msgid "disable IDN encoding"
msgstr ""
-#: nss/getent.c:65
+#: nss/getent.c:66
msgid "Get entries from administrative database."
msgstr ""
-#: nss/getent.c:149 nss/getent.c:442 nss/getent.c:489
+#: nss/getent.c:150 nss/getent.c:462 nss/getent.c:509
#, c-format
msgid "Enumeration not supported on %s\n"
msgstr ""
-#: nss/getent.c:497 nss/getent.c:510
+#: nss/getent.c:517 nss/getent.c:530
#, c-format
msgid "Could not allocate group list: %m\n"
msgstr ""
-#: nss/getent.c:881
+#: nss/getent.c:901
#, c-format
msgid "Unknown database name"
msgstr ""
-#: nss/getent.c:911
+#: nss/getent.c:931
msgid "Supported databases:\n"
msgstr ""
-#: nss/getent.c:977
+#: nss/getent.c:997
#, c-format
msgid "Unknown database: %s\n"
msgstr ""
@@ -4782,11 +4779,11 @@ msgstr "A szabályos kifejezés túl nagy"
msgid "Unmatched ) or \\)"
msgstr "Pár nélküli ) vagy \\)"
-#: posix/regcomp.c:689
+#: posix/regcomp.c:676
msgid "No previous regular expression"
msgstr "Nincs megelőző szabályos kifejezés"
-#: posix/wordexp.c:1815
+#: posix/wordexp.c:1816
msgid "parameter null or not set"
msgstr ""
@@ -5007,7 +5004,7 @@ msgstr "Nem érhető el pufferterület"
msgid "Input message available"
msgstr "Nem érhető el pufferterület"
-#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:381 timezone/zic.c:520
+#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:375 timezone/zic.c:561
#, fuzzy
#| msgid "Remote I/O error"
msgid "I/O error"
@@ -5095,7 +5092,7 @@ msgstr "Ismeretlen szignál %d"
#: sunrpc/auth_unix.c:112 sunrpc/clnt_tcp.c:124 sunrpc/clnt_udp.c:139
#: sunrpc/clnt_unix.c:125 sunrpc/svc_tcp.c:189 sunrpc/svc_tcp.c:233
#: sunrpc/svc_udp.c:161 sunrpc/svc_unix.c:189 sunrpc/svc_unix.c:229
-#: sunrpc/xdr.c:628 sunrpc/xdr.c:788 sunrpc/xdr_array.c:102
+#: sunrpc/xdr.c:631 sunrpc/xdr.c:791 sunrpc/xdr_array.c:102
#: sunrpc/xdr_rec.c:153 sunrpc/xdr_ref.c:79
msgid "out of memory\n"
msgstr "elfogyott a memória\n"
@@ -6352,56 +6349,69 @@ msgid "You really blew it this time"
msgstr "Most tényleg eltolta"
#. TRANS Go home and have a glass of warm, dairy-fresh milk.
-#: sysdeps/gnu/errlist.c:978
+#. TRANS @c Okay. Since you are dying to know, I'll tell you.
+#. TRANS @c This is a joke, obviously. There is a children's song which begins,
+#. TRANS @c "Old McDonald had a farm, e-i-e-i-o." Every time I see the (real)
+#. TRANS @c errno macro EIO, I think about that song. Probably most of my
+#. TRANS @c compatriots who program on Unix do, too. One of them must have stayed
+#. TRANS @c up a little too late one night and decided to add it to Hurd or Glibc.
+#. TRANS @c Whoever did it should be castigated, but it made me laugh.
+#. TRANS @c --jtobey@channel1.com
+#. TRANS @c
+#. TRANS @c "bought the farm" means "died". -jtobey
+#. TRANS @c
+#. TRANS @c Translators, please do not translate this litteraly, translate it into
+#. TRANS @c an idiomatic funny way of saying that the computer died.
+#: sysdeps/gnu/errlist.c:991
msgid "Computer bought the farm"
msgstr "A számítógép fűbe harapott"
#. TRANS This error code has no purpose.
-#: sysdeps/gnu/errlist.c:987
+#: sysdeps/gnu/errlist.c:1000
msgid "Gratuitous error"
msgstr "Fölösleges hiba"
-#: sysdeps/gnu/errlist.c:995
+#: sysdeps/gnu/errlist.c:1008
msgid "Bad message"
msgstr "Rossz üzenet"
-#: sysdeps/gnu/errlist.c:1003
+#: sysdeps/gnu/errlist.c:1016
msgid "Identifier removed"
msgstr "Azonosító eltávolítva"
-#: sysdeps/gnu/errlist.c:1011
+#: sysdeps/gnu/errlist.c:1024
msgid "Multihop attempted"
msgstr "Kísérlet többszörös ugrásra"
-#: sysdeps/gnu/errlist.c:1019
+#: sysdeps/gnu/errlist.c:1032
msgid "No data available"
msgstr "Nincs elérhető adat"
-#: sysdeps/gnu/errlist.c:1027
+#: sysdeps/gnu/errlist.c:1040
msgid "Link has been severed"
msgstr "A kapcsolat megsérült"
-#: sysdeps/gnu/errlist.c:1035
+#: sysdeps/gnu/errlist.c:1048
msgid "No message of desired type"
msgstr "Nem található a kívánt típusú üzenet"
-#: sysdeps/gnu/errlist.c:1043
+#: sysdeps/gnu/errlist.c:1056
msgid "Out of streams resources"
msgstr "Az adatfolyam erőforrásai elfogytak"
-#: sysdeps/gnu/errlist.c:1051
+#: sysdeps/gnu/errlist.c:1064
msgid "Device not a stream"
msgstr "Az eszköz nem adatfolyam"
-#: sysdeps/gnu/errlist.c:1059
+#: sysdeps/gnu/errlist.c:1072
msgid "Value too large for defined data type"
msgstr "Az érték túl nagy a megadott adattípushoz"
-#: sysdeps/gnu/errlist.c:1067
+#: sysdeps/gnu/errlist.c:1080
msgid "Protocol error"
msgstr "Protokollhiba"
-#: sysdeps/gnu/errlist.c:1075
+#: sysdeps/gnu/errlist.c:1088
msgid "Timer expired"
msgstr "Időzítés lejárt"
@@ -6409,197 +6419,197 @@ msgstr "Időzítés lejárt"
#. TRANS completed. @xref{Asynchronous I/O}. When you call @code{aio_cancel},
#. TRANS the normal result is for the operations affected to complete with this
#. TRANS error; @pxref{Cancel AIO Operations}.
-#: sysdeps/gnu/errlist.c:1087
+#: sysdeps/gnu/errlist.c:1100
msgid "Operation canceled"
msgstr "Művelet megszakítva"
-#: sysdeps/gnu/errlist.c:1095
+#: sysdeps/gnu/errlist.c:1108
msgid "Owner died"
msgstr "A tulajdonos meghalt"
-#: sysdeps/gnu/errlist.c:1103
+#: sysdeps/gnu/errlist.c:1116
msgid "State not recoverable"
msgstr "Az állapot nem állítható vissza"
-#: sysdeps/gnu/errlist.c:1111
+#: sysdeps/gnu/errlist.c:1124
msgid "Interrupted system call should be restarted"
msgstr "A megszakított rendszerhívást újra kell indítani"
-#: sysdeps/gnu/errlist.c:1119
+#: sysdeps/gnu/errlist.c:1132
msgid "Channel number out of range"
msgstr "A csatornaszám kívül esik a tartományon"
-#: sysdeps/gnu/errlist.c:1127
+#: sysdeps/gnu/errlist.c:1140
msgid "Level 2 not synchronized"
msgstr "2. szint nincs szinkronizálva"
-#: sysdeps/gnu/errlist.c:1135
+#: sysdeps/gnu/errlist.c:1148
msgid "Level 3 halted"
msgstr "3. szint leállt"
-#: sysdeps/gnu/errlist.c:1143
+#: sysdeps/gnu/errlist.c:1156
msgid "Level 3 reset"
msgstr "3. szint újraindítása"
-#: sysdeps/gnu/errlist.c:1151
+#: sysdeps/gnu/errlist.c:1164
msgid "Link number out of range"
msgstr "Hivatkozás száma kívül esik a tartományon"
-#: sysdeps/gnu/errlist.c:1159
+#: sysdeps/gnu/errlist.c:1172
msgid "Protocol driver not attached"
msgstr "A protokollmeghajtó nincs csatolva"
-#: sysdeps/gnu/errlist.c:1167
+#: sysdeps/gnu/errlist.c:1180
msgid "No CSI structure available"
msgstr "Nem érhető el CSI struktúra"
-#: sysdeps/gnu/errlist.c:1175
+#: sysdeps/gnu/errlist.c:1188
msgid "Level 2 halted"
msgstr "2. szint leállt"
-#: sysdeps/gnu/errlist.c:1183
+#: sysdeps/gnu/errlist.c:1196
msgid "Invalid exchange"
msgstr "Érvénytelen adatcsere"
-#: sysdeps/gnu/errlist.c:1191
+#: sysdeps/gnu/errlist.c:1204
msgid "Invalid request descriptor"
msgstr "Érvénytelen kérésleíró"
-#: sysdeps/gnu/errlist.c:1199
+#: sysdeps/gnu/errlist.c:1212
msgid "Exchange full"
msgstr "Az adatcsere megtelt"
-#: sysdeps/gnu/errlist.c:1207
+#: sysdeps/gnu/errlist.c:1220
msgid "No anode"
msgstr "Nincs anode"
-#: sysdeps/gnu/errlist.c:1215
+#: sysdeps/gnu/errlist.c:1228
msgid "Invalid request code"
msgstr "Érvénytelen kéréskód"
-#: sysdeps/gnu/errlist.c:1223
+#: sysdeps/gnu/errlist.c:1236
msgid "Invalid slot"
msgstr "Érvénytelen hely"
-#: sysdeps/gnu/errlist.c:1231
+#: sysdeps/gnu/errlist.c:1244
msgid "File locking deadlock error"
msgstr "Fájlzárolási holtponthiba"
-#: sysdeps/gnu/errlist.c:1239
+#: sysdeps/gnu/errlist.c:1252
msgid "Bad font file format"
msgstr "Hibás betűfájl-formátum"
-#: sysdeps/gnu/errlist.c:1247
+#: sysdeps/gnu/errlist.c:1260
msgid "Machine is not on the network"
msgstr "A gép nincs a hálózaton"
-#: sysdeps/gnu/errlist.c:1255
+#: sysdeps/gnu/errlist.c:1268
msgid "Package not installed"
msgstr "A csomag nincs telepítve"
-#: sysdeps/gnu/errlist.c:1263
+#: sysdeps/gnu/errlist.c:1276
msgid "Advertise error"
msgstr "Hirdetési hiba"
-#: sysdeps/gnu/errlist.c:1271
+#: sysdeps/gnu/errlist.c:1284
msgid "Srmount error"
msgstr "Srmount hiba"
-#: sysdeps/gnu/errlist.c:1279
+#: sysdeps/gnu/errlist.c:1292
msgid "Communication error on send"
msgstr "Kommunikációs hiba küldéskor"
-#: sysdeps/gnu/errlist.c:1287
+#: sysdeps/gnu/errlist.c:1300
msgid "RFS specific error"
msgstr "RFS-specifikus hiba"
-#: sysdeps/gnu/errlist.c:1295
+#: sysdeps/gnu/errlist.c:1308
msgid "Name not unique on network"
msgstr "A név nem egyértelmű a hálózaton"
-#: sysdeps/gnu/errlist.c:1303
+#: sysdeps/gnu/errlist.c:1316
msgid "File descriptor in bad state"
msgstr "Hibás állapotú fájlleíró"
-#: sysdeps/gnu/errlist.c:1311
+#: sysdeps/gnu/errlist.c:1324
msgid "Remote address changed"
msgstr "Távoli cím megváltozott"
-#: sysdeps/gnu/errlist.c:1319
+#: sysdeps/gnu/errlist.c:1332
msgid "Can not access a needed shared library"
msgstr "Egy szükséges osztott programkönyvtár nem érhető el"
-#: sysdeps/gnu/errlist.c:1327
+#: sysdeps/gnu/errlist.c:1340
msgid "Accessing a corrupted shared library"
msgstr "Sérült osztott programkönyvtár elérése"
-#: sysdeps/gnu/errlist.c:1335
+#: sysdeps/gnu/errlist.c:1348
msgid ".lib section in a.out corrupted"
msgstr "A .lib szakasz az a.out fájlban sérült"
-#: sysdeps/gnu/errlist.c:1343
+#: sysdeps/gnu/errlist.c:1356
msgid "Attempting to link in too many shared libraries"
msgstr "Kísérket túl sok osztott programkönyvtárban való linkelésre"
-#: sysdeps/gnu/errlist.c:1351
+#: sysdeps/gnu/errlist.c:1364
msgid "Cannot exec a shared library directly"
msgstr "Nem hajtható végre közvetlenül az osztott programkönyvtár"
-#: sysdeps/gnu/errlist.c:1359
+#: sysdeps/gnu/errlist.c:1372
msgid "Streams pipe error"
msgstr "Adatcsatorna-hiba az adatfolyamokban"
-#: sysdeps/gnu/errlist.c:1367
+#: sysdeps/gnu/errlist.c:1380
msgid "Structure needs cleaning"
msgstr "A struktúrát meg kell tisztítani"
-#: sysdeps/gnu/errlist.c:1375
+#: sysdeps/gnu/errlist.c:1388
msgid "Not a XENIX named type file"
msgstr "Nem XENIX megnevezett típusú fájl"
-#: sysdeps/gnu/errlist.c:1383
+#: sysdeps/gnu/errlist.c:1396
msgid "No XENIX semaphores available"
msgstr "Nem érhetők el XENIX szemaforok"
-#: sysdeps/gnu/errlist.c:1391
+#: sysdeps/gnu/errlist.c:1404
msgid "Is a named type file"
msgstr "Ez egy megnevezett típusú fájl"
-#: sysdeps/gnu/errlist.c:1399
+#: sysdeps/gnu/errlist.c:1412
msgid "Remote I/O error"
msgstr "Távoli ki-/bemeneti hiba"
-#: sysdeps/gnu/errlist.c:1407
+#: sysdeps/gnu/errlist.c:1420
msgid "No medium found"
msgstr "Nem található adathordozó"
-#: sysdeps/gnu/errlist.c:1415
+#: sysdeps/gnu/errlist.c:1428
msgid "Wrong medium type"
msgstr "Hibás adathordozó-típus"
-#: sysdeps/gnu/errlist.c:1423
+#: sysdeps/gnu/errlist.c:1436
msgid "Required key not available"
msgstr "A szükséges kulcs nem érhető el"
-#: sysdeps/gnu/errlist.c:1431
+#: sysdeps/gnu/errlist.c:1444
msgid "Key has expired"
msgstr "A kulcs lejárt"
-#: sysdeps/gnu/errlist.c:1439
+#: sysdeps/gnu/errlist.c:1452
msgid "Key has been revoked"
msgstr "A kulcsot visszavonták"
-#: sysdeps/gnu/errlist.c:1447
+#: sysdeps/gnu/errlist.c:1460
msgid "Key was rejected by service"
msgstr "A kulcsot a szolgáltatás elutasította"
-#: sysdeps/gnu/errlist.c:1455
+#: sysdeps/gnu/errlist.c:1468
#, fuzzy
#| msgid "Operation not permitted"
msgid "Operation not possible due to RF-kill"
msgstr "A művelet nem engedélyezett"
-#: sysdeps/gnu/errlist.c:1463
+#: sysdeps/gnu/errlist.c:1476
msgid "Memory page has hardware error"
msgstr ""
@@ -6724,27 +6734,27 @@ msgstr ""
msgid "can't disable CET"
msgstr ""
-#: timezone/zdump.c:338
+#: timezone/zdump.c:332
msgid "has fewer than 3 characters"
msgstr ""
-#: timezone/zdump.c:340
+#: timezone/zdump.c:334
msgid "has more than 6 characters"
msgstr ""
-#: timezone/zdump.c:342
+#: timezone/zdump.c:336
msgid "has characters other than ASCII alphanumerics, '-' or '+'"
msgstr ""
-#: timezone/zdump.c:347
+#: timezone/zdump.c:341
#, c-format
msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n"
msgstr ""
-#: timezone/zdump.c:393
+#: timezone/zdump.c:387
#, c-format
msgid ""
-"%s: usage: %s OPTIONS ZONENAME ...\n"
+"%s: usage: %s OPTIONS TIMEZONE ...\n"
"Options include:\n"
" -c [L,]U Start at year L (default -500), end before year U (default 2500)\n"
" -t [L,]U Start at time L, end before time U (in seconds since 1970)\n"
@@ -6757,442 +6767,467 @@ msgid ""
"Report bugs to %s.\n"
msgstr ""
-#: timezone/zdump.c:479
+#: timezone/zdump.c:473
#, c-format
msgid "%s: wild -c argument %s\n"
msgstr ""
-#: timezone/zdump.c:512
+#: timezone/zdump.c:506
#, fuzzy, c-format
#| msgid "%s: Too many arguments\n"
msgid "%s: wild -t argument %s\n"
msgstr "%s: Túl sok argumentum\n"
-#: timezone/zic.c:398
+#: timezone/zic.c:429
#, c-format
msgid "%s: Memory exhausted: %s\n"
msgstr ""
-#: timezone/zic.c:406
+#: timezone/zic.c:437
msgid "size overflow"
msgstr ""
-#: timezone/zic.c:454
+#: timezone/zic.c:447
+msgid "alignment overflow"
+msgstr ""
+
+#: timezone/zic.c:495
#, fuzzy
#| msgid "internal error"
msgid "integer overflow"
msgstr "belső hiba"
-#: timezone/zic.c:488
+#: timezone/zic.c:529
#, c-format
msgid "\"%s\", line %<PRIdMAX>: "
msgstr ""
-#: timezone/zic.c:491
+#: timezone/zic.c:532
#, c-format
msgid " (rule from \"%s\", line %<PRIdMAX>)"
msgstr ""
-#: timezone/zic.c:510
+#: timezone/zic.c:551
#, c-format
msgid "warning: "
msgstr ""
-#: timezone/zic.c:535
+#: timezone/zic.c:576
#, c-format
msgid ""
"%s: usage is %s [ --version ] [ --help ] [ -v ] \\\n"
"\t[ -l localtime ] [ -p posixrules ] [ -d directory ] \\\n"
-"\t[ -L leapseconds ] [ filename ... ]\n"
+"\t[ -t localtime-link ] [ -L leapseconds ] [ filename ... ]\n"
"\n"
"Report bugs to %s.\n"
msgstr ""
-#: timezone/zic.c:558
+#: timezone/zic.c:599
#, c-format
msgid "%s: Can't chdir to %s: %s\n"
msgstr ""
-#: timezone/zic.c:590
+#: timezone/zic.c:632
msgid "wild compilation-time specification of zic_t"
msgstr ""
-#: timezone/zic.c:610
+#: timezone/zic.c:652
#, c-format
msgid "%s: More than one -d option specified\n"
msgstr ""
-#: timezone/zic.c:620
+#: timezone/zic.c:662
#, c-format
msgid "%s: More than one -l option specified\n"
msgstr ""
-#: timezone/zic.c:630
+#: timezone/zic.c:672
#, c-format
msgid "%s: More than one -p option specified\n"
msgstr ""
-#: timezone/zic.c:640
+#: timezone/zic.c:680
+#, c-format
+msgid "%s: More than one -t option specified\n"
+msgstr ""
+
+#: timezone/zic.c:689
+msgid "-y is obsolescent"
+msgstr ""
+
+#: timezone/zic.c:693
#, c-format
msgid "%s: More than one -y option specified\n"
msgstr ""
-#: timezone/zic.c:650
+#: timezone/zic.c:703
#, c-format
msgid "%s: More than one -L option specified\n"
msgstr ""
-#: timezone/zic.c:659
+#: timezone/zic.c:712
msgid "-s ignored"
msgstr ""
-#: timezone/zic.c:698
+#: timezone/zic.c:753
msgid "link to link"
msgstr ""
-#: timezone/zic.c:701 timezone/zic.c:705
+#: timezone/zic.c:756 timezone/zic.c:760
#, fuzzy
#| msgid "Too many links"
msgid "command line"
msgstr "Túl sok link"
-#: timezone/zic.c:721
+#: timezone/zic.c:776
msgid "empty file name"
msgstr ""
-#: timezone/zic.c:724
+#: timezone/zic.c:779
#, c-format
msgid "file name '%s' begins with '/'"
msgstr ""
-#: timezone/zic.c:734
+#: timezone/zic.c:789
#, c-format
msgid "file name '%s' contains '%.*s' component"
msgstr ""
-#: timezone/zic.c:740
+#: timezone/zic.c:795
#, c-format
msgid "file name '%s' component contains leading '-'"
msgstr ""
-#: timezone/zic.c:743
+#: timezone/zic.c:798
#, c-format
msgid "file name '%s' contains overlength component '%.*s...'"
msgstr ""
-#: timezone/zic.c:771
+#: timezone/zic.c:826
#, c-format
msgid "file name '%s' contains byte '%c'"
msgstr ""
-#: timezone/zic.c:772
+#: timezone/zic.c:827
#, c-format
msgid "file name '%s' contains byte '\\%o'"
msgstr ""
-#: timezone/zic.c:842
+#: timezone/zic.c:897
#, c-format
msgid "%s: link from %s/%s failed: %s\n"
msgstr ""
-#: timezone/zic.c:852 timezone/zic.c:1815
+#: timezone/zic.c:907 timezone/zic.c:1876
#, c-format
msgid "%s: Can't remove %s/%s: %s\n"
msgstr ""
-#: timezone/zic.c:874
+#: timezone/zic.c:931
#, c-format
msgid "symbolic link used because hard link failed: %s"
msgstr ""
-#: timezone/zic.c:882
+#: timezone/zic.c:939
#, c-format
msgid "%s: Can't read %s/%s: %s\n"
msgstr ""
-#: timezone/zic.c:889 timezone/zic.c:1828
+#: timezone/zic.c:946 timezone/zic.c:1889
#, c-format
msgid "%s: Can't create %s/%s: %s\n"
msgstr ""
-#: timezone/zic.c:898
+#: timezone/zic.c:955
#, c-format
msgid "copy used because hard link failed: %s"
msgstr ""
-#: timezone/zic.c:901
+#: timezone/zic.c:958
#, c-format
msgid "copy used because symbolic link failed: %s"
msgstr ""
-#: timezone/zic.c:1013 timezone/zic.c:1015
+#: timezone/zic.c:1032 timezone/zic.c:1034
msgid "same rule name in multiple files"
msgstr ""
-#: timezone/zic.c:1056
-msgid "unruly zone"
-msgstr ""
-
-#: timezone/zic.c:1063
+#: timezone/zic.c:1081
#, c-format
msgid "%s in ruleless zone"
msgstr ""
-#: timezone/zic.c:1083
+#: timezone/zic.c:1101
msgid "standard input"
msgstr "szabványos bemenet"
-#: timezone/zic.c:1088
+#: timezone/zic.c:1106
#, c-format
msgid "%s: Can't open %s: %s\n"
msgstr ""
-#: timezone/zic.c:1099
+#: timezone/zic.c:1117
#, fuzzy
msgid "line too long"
msgstr "a sor túl hosszú"
-#: timezone/zic.c:1119
+#: timezone/zic.c:1139
msgid "input line of unknown type"
msgstr ""
-#: timezone/zic.c:1134
-#, c-format
-msgid "%s: Leap line in non leap seconds file %s"
-msgstr ""
-
-#: timezone/zic.c:1142 timezone/zic.c:1547 timezone/zic.c:1569
+#: timezone/zic.c:1158 timezone/zic.c:1593 timezone/zic.c:1615
#, c-format
msgid "%s: panic: Invalid l_value %d\n"
msgstr ""
-#: timezone/zic.c:1151
+#: timezone/zic.c:1167
msgid "expected continuation line not found"
msgstr ""
-#: timezone/zic.c:1193 timezone/zic.c:2976
+#: timezone/zic.c:1203
+msgid "fractional seconds rejected by pre-2018 versions of zic"
+msgstr ""
+
+#: timezone/zic.c:1221 timezone/zic.c:3078
msgid "time overflow"
msgstr ""
-#: timezone/zic.c:1198
+#: timezone/zic.c:1227
msgid "values over 24 hours not handled by pre-2007 versions of zic"
msgstr ""
-#: timezone/zic.c:1209
-msgid "wrong number of fields on Rule line"
+#: timezone/zic.c:1245
+msgid "invalid saved time"
msgstr ""
-#: timezone/zic.c:1213
-msgid "nameless rule"
+#: timezone/zic.c:1256
+msgid "wrong number of fields on Rule line"
msgstr ""
-#: timezone/zic.c:1218
-msgid "invalid saved time"
-msgstr ""
+#: timezone/zic.c:1265
+#, fuzzy, c-format
+#| msgid "Invalid argument"
+msgid "Invalid rule name \"%s\""
+msgstr "Érvénytelen argumentum"
-#: timezone/zic.c:1235
+#: timezone/zic.c:1287
msgid "wrong number of fields on Zone line"
msgstr ""
-#: timezone/zic.c:1240
+#: timezone/zic.c:1292
#, c-format
msgid "\"Zone %s\" line and -l option are mutually exclusive"
msgstr ""
-#: timezone/zic.c:1246
+#: timezone/zic.c:1298
#, c-format
msgid "\"Zone %s\" line and -p option are mutually exclusive"
msgstr ""
-#: timezone/zic.c:1253
+#: timezone/zic.c:1305
#, c-format
msgid "duplicate zone name %s (file \"%s\", line %<PRIdMAX>)"
msgstr ""
-#: timezone/zic.c:1267
+#: timezone/zic.c:1319
msgid "wrong number of fields on Zone continuation line"
msgstr ""
-#: timezone/zic.c:1307
+#: timezone/zic.c:1359
#, fuzzy
#| msgid "invalid mode"
msgid "invalid UT offset"
msgstr "érvénytelen mód"
-#: timezone/zic.c:1311
+#: timezone/zic.c:1363
msgid "invalid abbreviation format"
msgstr ""
-#: timezone/zic.c:1320
+#: timezone/zic.c:1372
#, c-format
msgid "format '%s' not handled by pre-2015 versions of zic"
msgstr ""
-#: timezone/zic.c:1347
+#: timezone/zic.c:1399
msgid "Zone continuation line end time is not after end time of previous line"
msgstr ""
-#: timezone/zic.c:1374
+#: timezone/zic.c:1426
msgid "wrong number of fields on Leap line"
msgstr ""
-#: timezone/zic.c:1383
+#: timezone/zic.c:1435
msgid "invalid leaping year"
msgstr ""
-#: timezone/zic.c:1403 timezone/zic.c:1501
+#: timezone/zic.c:1455 timezone/zic.c:1547
msgid "invalid month name"
msgstr ""
-#: timezone/zic.c:1416 timezone/zic.c:1614 timezone/zic.c:1628
+#: timezone/zic.c:1468 timezone/zic.c:1663 timezone/zic.c:1677
msgid "invalid day of month"
msgstr ""
-#: timezone/zic.c:1421
+#: timezone/zic.c:1473
msgid "time too small"
msgstr ""
-#: timezone/zic.c:1425
+#: timezone/zic.c:1477
msgid "time too large"
msgstr ""
-#: timezone/zic.c:1429 timezone/zic.c:1530
+#: timezone/zic.c:1481 timezone/zic.c:1576
msgid "invalid time of day"
msgstr ""
-#: timezone/zic.c:1448
+#: timezone/zic.c:1494
msgid "illegal CORRECTION field on Leap line"
msgstr ""
-#: timezone/zic.c:1453
+#: timezone/zic.c:1499
msgid "illegal Rolling/Stationary field on Leap line"
msgstr ""
-#: timezone/zic.c:1459
-msgid "leap second precedes Big Bang"
+#: timezone/zic.c:1505
+msgid "leap second precedes Epoch"
msgstr ""
-#: timezone/zic.c:1472
+#: timezone/zic.c:1518
msgid "wrong number of fields on Link line"
msgstr ""
-#: timezone/zic.c:1476
+#: timezone/zic.c:1522
msgid "blank FROM field on Link line"
msgstr ""
-#: timezone/zic.c:1551
+#: timezone/zic.c:1597
msgid "invalid starting year"
msgstr ""
-#: timezone/zic.c:1573
+#: timezone/zic.c:1619
msgid "invalid ending year"
msgstr ""
-#: timezone/zic.c:1577
+#: timezone/zic.c:1623
msgid "starting year greater than ending year"
msgstr ""
-#: timezone/zic.c:1584
+#: timezone/zic.c:1630
msgid "typed single year"
msgstr ""
-#: timezone/zic.c:1619
+#: timezone/zic.c:1633
+#, c-format
+msgid "year type \"%s\" is obsolete; use \"-\" instead"
+msgstr ""
+
+#: timezone/zic.c:1668
msgid "invalid weekday name"
msgstr ""
-#: timezone/zic.c:1743
+#: timezone/zic.c:1800
#, c-format
msgid "reference clients mishandle more than %d transition times"
msgstr ""
-#: timezone/zic.c:1747
+#: timezone/zic.c:1804
msgid "pre-2014 clients may mishandle more than 1200 transition times"
msgstr ""
-#: timezone/zic.c:1858
+#: timezone/zic.c:1920
#, fuzzy
#| msgid "Too many open files"
msgid "too many transition times"
msgstr "Túl sok nyitott fájl"
-#: timezone/zic.c:2047
+#: timezone/zic.c:2107
#, c-format
-msgid "%%z UTC offset magnitude exceeds 99:59:59"
+msgid "%%z UT offset magnitude exceeds 99:59:59"
msgstr ""
-#: timezone/zic.c:2424
+#: timezone/zic.c:2488
msgid "no POSIX environment variable for zone"
msgstr ""
-#: timezone/zic.c:2430
+#: timezone/zic.c:2494
#, c-format
msgid "%s: pre-%d clients may mishandle distant timestamps"
msgstr ""
-#: timezone/zic.c:2566
+#: timezone/zic.c:2631
msgid "two rules for same instant"
msgstr ""
-#: timezone/zic.c:2627
+#: timezone/zic.c:2696
msgid "can't determine time zone abbreviation to use just after until time"
msgstr ""
-#: timezone/zic.c:2725
+#: timezone/zic.c:2785
msgid "too many local time types"
msgstr ""
-#: timezone/zic.c:2729
+#: timezone/zic.c:2789
#, fuzzy
#| msgid "Link number out of range"
msgid "UT offset out of range"
msgstr "Hivatkozás száma kívül esik a tartományon"
-#: timezone/zic.c:2753
+#: timezone/zic.c:2813
msgid "too many leap seconds"
msgstr ""
-#: timezone/zic.c:2759
-msgid "repeated leap second moment"
+#: timezone/zic.c:2844
+msgid "Leap seconds too close together"
msgstr ""
-#: timezone/zic.c:2830
+#: timezone/zic.c:2891
msgid "Wild result from command execution"
msgstr ""
-#: timezone/zic.c:2831
+#: timezone/zic.c:2892
#, c-format
msgid "%s: command was '%s', result was %d\n"
msgstr ""
-#: timezone/zic.c:2961
+#: timezone/zic.c:2998
+#, c-format
+msgid "\"%s\" is undocumented; use \"last%s\" instead"
+msgstr ""
+
+#: timezone/zic.c:3029
+#, c-format
+msgid "\"%s\" is ambiguous in pre-2017c zic"
+msgstr ""
+
+#: timezone/zic.c:3063
msgid "Odd number of quotation marks"
msgstr ""
-#: timezone/zic.c:3046
+#: timezone/zic.c:3157
msgid "use of 2/29 in non leap-year"
msgstr ""
-#: timezone/zic.c:3081
+#: timezone/zic.c:3192
msgid "rule goes past start/end of month; will not work with pre-2004 versions of zic"
msgstr ""
-#: timezone/zic.c:3108
+#: timezone/zic.c:3219
msgid "time zone abbreviation has fewer than 3 characters"
msgstr ""
-#: timezone/zic.c:3110
+#: timezone/zic.c:3221
msgid "time zone abbreviation has too many characters"
msgstr ""
-#: timezone/zic.c:3112
+#: timezone/zic.c:3223
msgid "time zone abbreviation differs from POSIX standard"
msgstr ""
-#: timezone/zic.c:3118
+#: timezone/zic.c:3229
msgid "too many, or too long, time zone abbreviations"
msgstr ""
-#: timezone/zic.c:3161
+#: timezone/zic.c:3275
#, fuzzy, c-format
#| msgid "Can't create temporary cache file %s"
msgid "%s: Can't create directory %s: %s"
@@ -7204,6 +7239,9 @@ msgstr "Nem hozható létre az ideiglenes gyorsítótárfájl (%s)"
#~ msgid "xtrace: option \\`$1' requires an argument.\\n"
#~ msgstr "xtrace: a(z) „$1†kapcsoló paramétert igényel.\\n"
+#~ msgid "cannot open zero fill device"
+#~ msgstr "nem nyitható meg a nullával kitöltő eszköz"
+
#~ msgid "cannot allocate TLS data structures for initial thread"
#~ msgstr "nem foglalhatók TLS adatszerkezetek a kiinduló szálhoz"
@@ -7213,6 +7251,9 @@ msgstr "Nem hozható létre az ideiglenes gyorsítótárfájl (%s)"
#~ msgid "invalid caller"
#~ msgstr "érvénytelen hívó"
+#~ msgid "relocation error"
+#~ msgstr "áthelyezési hiba"
+
#~ msgid "Character out of range for UTF-8"
#~ msgstr "A karakter az UTF-8 tartományon kívülre esik"
diff --git a/po/ia.po b/po/ia.po
index 9b0e9daeeb..cb0a647982 100644
--- a/po/ia.po
+++ b/po/ia.po
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: libc 2.17-pre1\n"
-"POT-Creation-Date: 2018-07-26 22:19-0400\n"
+"POT-Creation-Date: 2019-07-18 13:28-0400\n"
"PO-Revision-Date: 2013-04-26 04:10+0400\n"
"Last-Translator: Nik Kalach <nik.kalach@inbox.ru>\n"
"Language-Team: Interlingua <translation-team-ia@lists.sourceforge.net>\n"
@@ -147,10 +147,10 @@ msgstr ""
"[FILE-OUTPUT [FILE-INPUT]...]"
#: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:308
-#: elf/pldd.c:252 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
-#: iconv/iconvconfig.c:379 locale/programs/locale.c:275
-#: locale/programs/localedef.c:427 login/programs/pt_chown.c:89
-#: malloc/memusagestat.c:563 nss/getent.c:933 nss/makedb.c:369
+#: elf/pldd.c:247 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
+#: iconv/iconvconfig.c:379 locale/programs/locale.c:276
+#: locale/programs/localedef.c:437 login/programs/pt_chown.c:89
+#: malloc/memusagestat.c:563 nss/getent.c:953 nss/makedb.c:369
#: posix/getconf.c:503 sysdeps/unix/sysv/linux/lddlibc4.c:61
#, c-format
msgid ""
@@ -161,11 +161,11 @@ msgstr ""
"%s.\n"
#: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64
-#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75
+#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:263 elf/sotruss.sh:75
#: elf/sprof.c:389 iconv/iconv_prog.c:422 iconv/iconvconfig.c:396
-#: locale/programs/locale.c:292 locale/programs/localedef.c:453
+#: locale/programs/locale.c:293 locale/programs/localedef.c:463
#: login/programs/pt_chown.c:63 malloc/memusage.sh:71
-#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:87 nss/makedb.c:385
+#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:88 nss/makedb.c:385
#: posix/getconf.c:485 sysdeps/unix/sysv/linux/lddlibc4.c:68
#, c-format
msgid ""
@@ -178,10 +178,10 @@ msgstr ""
"NULLE garantia; atque pro MERCABILETATE o APTITUDE PRO UN PROPOSITO PARTICULAR.\n"
#: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68
-#: elf/ldconfig.c:329 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:427
-#: iconv/iconvconfig.c:401 locale/programs/locale.c:297
-#: locale/programs/localedef.c:458 malloc/memusage.sh:75
-#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:92 nss/makedb.c:390
+#: elf/ldconfig.c:329 elf/pldd.c:268 elf/sprof.c:395 iconv/iconv_prog.c:427
+#: iconv/iconvconfig.c:401 locale/programs/locale.c:298
+#: locale/programs/localedef.c:468 malloc/memusage.sh:75
+#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:93 nss/makedb.c:390
#: posix/getconf.c:490
#, c-format
msgid "Written by %s.\n"
@@ -252,21 +252,21 @@ msgstr "impossibile de aperir le file de output `%s'"
msgid "invalid escape sequence"
msgstr "sequentia de escappamento incorrecte"
-#: catgets/gencat.c:1209
+#: catgets/gencat.c:1211
msgid "unterminated message"
msgstr "message non terminate"
-#: catgets/gencat.c:1233
+#: catgets/gencat.c:1235
#, c-format
msgid "while opening old catalog file"
msgstr "durante del apertura del vetule file de catalogo"
-#: catgets/gencat.c:1324
+#: catgets/gencat.c:1326
#, c-format
msgid "conversion modules not available"
msgstr "modulos de conversion indisponibile"
-#: catgets/gencat.c:1350
+#: catgets/gencat.c:1352
#, c-format
msgid "cannot determine escape character"
msgstr "impossibile de determinar le character de escappamento"
@@ -393,7 +393,7 @@ msgstr "Systema operative incognite"
msgid ", OS ABI: %s %d.%d.%d"
msgstr ", ABI del systema operative: %s %d.%d.%d"
-#: elf/cache.c:163 elf/ldconfig.c:1332
+#: elf/cache.c:163 elf/ldconfig.c:1333
#, c-format
msgid "Can't open cache file %s\n"
msgstr "Impossibile de aperir le file de cache %s\n"
@@ -403,38 +403,38 @@ msgstr "Impossibile de aperir le file de cache %s\n"
msgid "mmap of cache file failed.\n"
msgstr "mmap sur le file de cache ha fallite.\n"
-#: elf/cache.c:181 elf/cache.c:195
+#: elf/cache.c:181 elf/cache.c:195 elf/cache.c:205
#, c-format
msgid "File is not a cache file.\n"
msgstr "Le file non es un file de cache.\n"
-#: elf/cache.c:228 elf/cache.c:238
+#: elf/cache.c:233 elf/cache.c:243
#, c-format
msgid "%d libs found in cache `%s'\n"
msgstr "%d bibliothecas trovate in le cache `%s'\n"
-#: elf/cache.c:432
+#: elf/cache.c:437
#, c-format
msgid "Can't create temporary cache file %s"
msgstr "Impossibile de crear le file de cache temporari %s"
-#: elf/cache.c:440 elf/cache.c:450 elf/cache.c:454 elf/cache.c:458
-#: elf/cache.c:468
+#: elf/cache.c:445 elf/cache.c:455 elf/cache.c:459 elf/cache.c:463
+#: elf/cache.c:473
#, c-format
msgid "Writing of cache data failed"
msgstr "Insuccesso al scriber le datos de cache"
-#: elf/cache.c:463
+#: elf/cache.c:468
#, c-format
msgid "Changing access rights of %s to %#o failed"
msgstr "Insuccesso del modification del derectos de accesso de %s a %#o"
-#: elf/cache.c:472
+#: elf/cache.c:477
#, c-format
msgid "Renaming of %s to %s failed"
msgstr "Insuccesso del cambiamento de nomine %s a %s"
-#: elf/dl-close.c:399 elf/dl-open.c:420
+#: elf/dl-close.c:399 elf/dl-open.c:424
msgid "cannot create scope list"
msgstr "impossibile de crear un lista de ambito"
@@ -517,121 +517,123 @@ msgstr "impossibile de crear un array del percurso de cerca"
msgid "cannot stat shared object"
msgstr "impossibile de effectuar stat sur le objecto condivise"
-#: elf/dl-load.c:960
-msgid "cannot open zero fill device"
-msgstr "impossibile de aperir un dispositovo de impletion con zeros"
-
-#: elf/dl-load.c:1007 elf/dl-load.c:2203
+#: elf/dl-load.c:992 elf/dl-load.c:2198
msgid "cannot create shared object descriptor"
msgstr "impossibile de crear un descriptor de objecto condivise"
-#: elf/dl-load.c:1026 elf/dl-load.c:1560 elf/dl-load.c:1673
+#: elf/dl-load.c:1011 elf/dl-load.c:1555 elf/dl-load.c:1668
msgid "cannot read file data"
msgstr "impossibile de leger datos del file"
-#: elf/dl-load.c:1072
+#: elf/dl-load.c:1057
msgid "ELF load command alignment not page-aligned"
msgstr "Le commando de cargar ELF non es alineate a un pagina"
-#: elf/dl-load.c:1079
+#: elf/dl-load.c:1064
msgid "ELF load command address/offset not properly aligned"
msgstr "Le adresso o displaciamento del commando de cargar ELF non es alineate correctemente"
-#: elf/dl-load.c:1161
+#: elf/dl-load.c:1146
#, fuzzy
#| msgid "cannot restore segment prot after reloc"
msgid "cannot process note segment"
msgstr "impossibile de restabilir le protection del segmento post le relocation"
-#: elf/dl-load.c:1172
+#: elf/dl-load.c:1157
msgid "object file has no loadable segments"
msgstr "le file de objecto non ha segmentos cargabile"
-#: elf/dl-load.c:1181 elf/dl-load.c:1652
+#: elf/dl-load.c:1170 elf/dl-load.c:1647
msgid "cannot dynamically load executable"
msgstr "impossibile de cargar dynamicamente un executabile"
-#: elf/dl-load.c:1202
+#: elf/dl-load.c:1191
msgid "object file has no dynamic section"
msgstr "le file de objecto non ha un section dynamic"
-#: elf/dl-load.c:1225
+#: elf/dl-load.c:1218
+#, fuzzy
+#| msgid "cannot dynamically load executable"
+msgid "cannot dynamically load position-independent executable"
+msgstr "impossibile de cargar dynamicamente un executabile"
+
+#: elf/dl-load.c:1220
msgid "shared object cannot be dlopen()ed"
msgstr "le objecto condivise non pote esser aperite via dlopen()"
-#: elf/dl-load.c:1238
+#: elf/dl-load.c:1233
msgid "cannot allocate memory for program header"
msgstr "impossibile de allocar le memoria pro un testa de programma"
-#: elf/dl-load.c:1271 elf/dl-load.h:130
+#: elf/dl-load.c:1266 elf/dl-load.h:130
msgid "cannot change memory protections"
msgstr "impossibile de modificar le protection de memoria"
-#: elf/dl-load.c:1291
+#: elf/dl-load.c:1286
msgid "cannot enable executable stack as shared object requires"
msgstr "impossibile de habilitar un pila executabile como le objecto condivise necessita"
-#: elf/dl-load.c:1304
+#: elf/dl-load.c:1299
msgid "cannot close file descriptor"
msgstr "impossibile de clauder un descriptor de file"
-#: elf/dl-load.c:1560
+#: elf/dl-load.c:1555
msgid "file too short"
msgstr "file troppo curte"
-#: elf/dl-load.c:1595
+#: elf/dl-load.c:1590
msgid "invalid ELF header"
msgstr "testa ELF incorrecte"
-#: elf/dl-load.c:1607
+#: elf/dl-load.c:1602
msgid "ELF file data encoding not big-endian"
msgstr "le codification de datos del file ELF non es big-endian"
-#: elf/dl-load.c:1609
+#: elf/dl-load.c:1604
msgid "ELF file data encoding not little-endian"
msgstr "le codification de datos del file ELF non es little-endian"
-#: elf/dl-load.c:1613
+#: elf/dl-load.c:1608
msgid "ELF file version ident does not match current one"
msgstr "le identificator de version del file ELF non corresponde con le version actual"
-#: elf/dl-load.c:1617
+#: elf/dl-load.c:1612
msgid "ELF file OS ABI invalid"
msgstr "ABI de systema operative del file ELF invalide"
-#: elf/dl-load.c:1620
+#: elf/dl-load.c:1615
msgid "ELF file ABI version invalid"
msgstr "Version de ABI del file ELF invalide"
-#: elf/dl-load.c:1623
+#: elf/dl-load.c:1618
msgid "nonzero padding in e_ident"
msgstr "impletion con non-zeros in e_ident"
-#: elf/dl-load.c:1626
+#: elf/dl-load.c:1621
msgid "internal error"
msgstr "error interne"
-#: elf/dl-load.c:1633
+#: elf/dl-load.c:1628
msgid "ELF file version does not match current one"
msgstr "Le version del file ELF non corresponde con le version actual"
-#: elf/dl-load.c:1641
+#: elf/dl-load.c:1636
msgid "only ET_DYN and ET_EXEC can be loaded"
msgstr "solo ET_DYN e ET_EXEC pote esser cargate"
-#: elf/dl-load.c:1657
+#: elf/dl-load.c:1652
msgid "ELF file's phentsize not the expected size"
msgstr "Le valor `phentsize' del file ELF non concorda con le expectation"
-#: elf/dl-load.c:2222
+#: elf/dl-load.c:2217
msgid "wrong ELF class: ELFCLASS64"
msgstr "classe ELF incorrecte: ELFCLASS64"
-#: elf/dl-load.c:2223
+#: elf/dl-load.c:2218
msgid "wrong ELF class: ELFCLASS32"
msgstr "classe ELF incorrecte: ELFCLASS32"
-#: elf/dl-load.c:2226
+#: elf/dl-load.c:2221
msgid "cannot open shared object file"
msgstr "impossibile de aperir un file de objecto condivise"
@@ -643,11 +645,7 @@ msgstr "insuccesso de mmap sur un objecto condivise"
msgid "cannot map zero-fill pages"
msgstr "impossibile de mmap paginas del dispositivo de impletion con zeros"
-#: elf/dl-lookup.c:835
-msgid "relocation error"
-msgstr "error de relocation"
-
-#: elf/dl-lookup.c:858
+#: elf/dl-lookup.c:830
msgid "symbol lookup error"
msgstr "error de cerca de symbolo"
@@ -655,19 +653,19 @@ msgstr "error de cerca de symbolo"
msgid "cannot extend global scope"
msgstr "impossibile de extender le ambito global"
-#: elf/dl-open.c:470
+#: elf/dl-open.c:474
msgid "TLS generation counter wrapped! Please report this."
msgstr "Le contator de generation TLS ha permitite! Reporta iste problema."
-#: elf/dl-open.c:534
+#: elf/dl-open.c:538
msgid "invalid mode for dlopen()"
msgstr "modo invalide pro dlopen()"
-#: elf/dl-open.c:551
+#: elf/dl-open.c:555
msgid "no more namespaces available for dlmopen()"
msgstr "necun altere spatios de nomines disponibile pro dlmopen()"
-#: elf/dl-open.c:575
+#: elf/dl-open.c:579
msgid "invalid target namespace in dlmopen()"
msgstr "spatio de nomines de destination invalide in dlmopen()"
@@ -675,20 +673,20 @@ msgstr "spatio de nomines de destination invalide in dlmopen()"
msgid "cannot allocate memory in static TLS block"
msgstr "impossibile de allocar memoria in un bloco TLS static"
-#: elf/dl-reloc.c:205
+#: elf/dl-reloc.c:213
msgid "cannot make segment writable for relocation"
msgstr "impossibile de render un segmento scribibile pro le relocation"
-#: elf/dl-reloc.c:276
+#: elf/dl-reloc.c:272
#, c-format
msgid "%s: out of memory to store relocation results for %s\n"
msgstr "%s: memoria exhauste pro immagazinar le resultatos de relocation pro %s\n"
-#: elf/dl-reloc.c:292
+#: elf/dl-reloc.c:288
msgid "cannot restore segment prot after reloc"
msgstr "impossibile de restabilir le protection del segmento post le relocation"
-#: elf/dl-reloc.c:323
+#: elf/dl-reloc.c:319
msgid "cannot apply additional memory protection after relocation"
msgstr "impossibile de applicar le protection de memoria additional post le relocation"
@@ -908,22 +906,22 @@ msgstr "il es necessari usar le nomine absolute pro le file de configuration qua
msgid "memory exhausted"
msgstr "memoria exhaurite"
-#: elf/ldconfig.c:1233
+#: elf/ldconfig.c:1234
#, c-format
msgid "%s:%u: cannot read directory %s"
msgstr "%s:%u: impossibile de leger le directorio %s"
-#: elf/ldconfig.c:1281
+#: elf/ldconfig.c:1282
#, c-format
msgid "relative path `%s' used to build cache"
msgstr "percurso relative `%s' usate pro construer le cache"
-#: elf/ldconfig.c:1311
+#: elf/ldconfig.c:1312
#, c-format
msgid "Can't chdir to /"
msgstr "Impossibile de effectuar chdir a /"
-#: elf/ldconfig.c:1352
+#: elf/ldconfig.c:1353
#, c-format
msgid "Can't open cache file directory %s\n"
msgstr "Impossibile de aperir le directorio de files de cache %s\n"
@@ -993,96 +991,101 @@ msgstr "ha sortite con le codice de retorno incognite"
msgid "error: you do not have read permission for"
msgstr "error: permission a leger manca pro"
-#: elf/pldd-xx.c:105
+#: elf/pldd-xx.c:102
#, c-format
msgid "cannot find program header of process"
msgstr "impossibile de trovar le testa de programma de un processo"
-#: elf/pldd-xx.c:110
+#: elf/pldd-xx.c:106
#, c-format
msgid "cannot read program header"
msgstr "impossibile de leger le testa de programma"
-#: elf/pldd-xx.c:135
+#: elf/pldd-xx.c:128
#, c-format
msgid "cannot read dynamic section"
msgstr "impossibile de leger le section dynamic"
-#: elf/pldd-xx.c:147
+#: elf/pldd-xx.c:137
#, c-format
msgid "cannot read r_debug"
msgstr "impossibile de leger r_debug"
-#: elf/pldd-xx.c:167
+#: elf/pldd-xx.c:154
#, c-format
msgid "cannot read program interpreter"
msgstr "impossibile de leger le interprete de programma"
-#: elf/pldd-xx.c:197
+#: elf/pldd-xx.c:183
#, c-format
msgid "cannot read link map"
msgstr "impossibile de leger le mappa de ligamines"
-#: elf/pldd-xx.c:209
+#: elf/pldd-xx.c:190
#, c-format
msgid "cannot read object name"
msgstr "impossibile de leger le nomine de objecto"
-#: elf/pldd-xx.c:219
+#: elf/pldd-xx.c:197
#, fuzzy, c-format
#| msgid "cannot allocate memory for program header"
msgid "cannot allocate buffer for object name"
msgstr "impossibile de allocar le memoria pro un testa de programma"
-#: elf/pldd.c:64
+#: elf/pldd.c:58
msgid "List dynamic shared objects loaded into process."
msgstr "Monstrar objectos condivise dynamic incargate in le processo."
-#: elf/pldd.c:68
+#: elf/pldd.c:62
msgid "PID"
msgstr "PID"
-#: elf/pldd.c:100
+#: elf/pldd.c:89
#, c-format
msgid "Exactly one parameter with process ID required.\n"
msgstr "Un parametro exactemente con le identificator de processo es necessari.\n"
-#: elf/pldd.c:112
+#: elf/pldd.c:103
#, c-format
msgid "invalid process ID '%s'"
msgstr "identificator de processo invalide '%s'"
-#: elf/pldd.c:120
+#: elf/pldd.c:111
#, c-format
msgid "cannot open %s"
msgstr "impossibile de aperir %s"
-#: elf/pldd.c:152
+#: elf/pldd.c:142
#, c-format
msgid "cannot open %s/task"
msgstr "impossibile de aperir %s/task"
-#: elf/pldd.c:155
+#: elf/pldd.c:145
#, c-format
msgid "cannot prepare reading %s/task"
msgstr "impossibile de preparar a leger %s/task"
-#: elf/pldd.c:168
+#: elf/pldd.c:158
#, c-format
msgid "invalid thread ID '%s'"
msgstr "identificator de filo invalide '%s'"
-#: elf/pldd.c:179
+#: elf/pldd.c:169
#, c-format
msgid "cannot attach to process %lu"
msgstr "impossibile de attaccar al processo %lu"
-#: elf/pldd.c:294
+#: elf/pldd.c:184
+#, c-format
+msgid "no valid %s/task entries"
+msgstr ""
+
+#: elf/pldd.c:290
#, c-format
msgid "cannot get information about process %lu"
msgstr "impossibile de obtener le information super le processo %lu"
-#: elf/pldd.c:307
+#: elf/pldd.c:303
#, c-format
msgid "process %lu is no ELF program"
msgstr "le processo %lu non es un programma ELF"
@@ -1402,7 +1405,7 @@ msgstr "Information:"
msgid "list all known coded character sets"
msgstr "monstrar tote le codificationes de characteres cognite"
-#: iconv/iconv_prog.c:64 locale/programs/localedef.c:120
+#: iconv/iconv_prog.c:64 locale/programs/localedef.c:124
msgid "Output control:"
msgstr "Gerentia del output:"
@@ -1411,8 +1414,8 @@ msgid "omit invalid characters from output"
msgstr "omitter characteres invalide del output"
#: iconv/iconv_prog.c:66 iconv/iconvconfig.c:128
-#: locale/programs/localedef.c:113 locale/programs/localedef.c:115
-#: locale/programs/localedef.c:117 locale/programs/localedef.c:144
+#: locale/programs/localedef.c:117 locale/programs/localedef.c:119
+#: locale/programs/localedef.c:121 locale/programs/localedef.c:150
#: malloc/memusagestat.c:56
#, fuzzy
#| msgid "[FILE]"
@@ -1521,7 +1524,7 @@ msgstr "Creation de un modulo de cargamento rapide del file de configuration ico
msgid "[DIR...]"
msgstr "[DIR...]"
-#: iconv/iconvconfig.c:126 locale/programs/localedef.c:123
+#: iconv/iconvconfig.c:126 locale/programs/localedef.c:129
msgid "PATH"
msgstr ""
@@ -1708,14 +1711,14 @@ msgstr "collectiones de characteres con le fixation de statos non es supportate"
#: locale/programs/charmap.c:503 locale/programs/charmap.c:557
#: locale/programs/charmap.c:589 locale/programs/charmap.c:683
-#: locale/programs/charmap.c:738 locale/programs/charmap.c:779
-#: locale/programs/charmap.c:820
+#: locale/programs/charmap.c:739 locale/programs/charmap.c:780
+#: locale/programs/charmap.c:821
#, c-format
msgid "syntax error in %s definition: %s"
msgstr "error de syntaxe in le definition de %s: %s"
#: locale/programs/charmap.c:504 locale/programs/charmap.c:684
-#: locale/programs/charmap.c:780 locale/programs/repertoire.c:229
+#: locale/programs/charmap.c:781 locale/programs/repertoire.c:229
msgid "no symbolic name given"
msgstr "necun nomine symbolic fornite"
@@ -1731,14 +1734,14 @@ msgstr "tro pauc de bytes in le codification de characteres"
msgid "too many bytes in character encoding"
msgstr "troppo de bytes in le codification de characteres"
-#: locale/programs/charmap.c:591 locale/programs/charmap.c:739
-#: locale/programs/charmap.c:822 locale/programs/repertoire.c:295
+#: locale/programs/charmap.c:591 locale/programs/charmap.c:740
+#: locale/programs/charmap.c:823 locale/programs/repertoire.c:295
msgid "no symbolic name given for end of range"
msgstr "necun nomine symbolic fornite pro le fin del intervallo"
#: locale/programs/charmap.c:615 locale/programs/ld-address.c:524
#: locale/programs/ld-collate.c:2616 locale/programs/ld-collate.c:3774
-#: locale/programs/ld-ctype.c:2117 locale/programs/ld-ctype.c:2829
+#: locale/programs/ld-ctype.c:2118 locale/programs/ld-ctype.c:2830
#: locale/programs/ld-identification.c:397
#: locale/programs/ld-measurement.c:213 locale/programs/ld-messages.c:295
#: locale/programs/ld-monetary.c:748 locale/programs/ld-name.c:262
@@ -1753,58 +1756,58 @@ msgstr "%1$s: le definition non termina con `END %1$s'"
msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
msgstr "solo le definitiones WIDTH es permittite sequer le definition CHARMAP"
-#: locale/programs/charmap.c:656 locale/programs/charmap.c:719
+#: locale/programs/charmap.c:656 locale/programs/charmap.c:720
#, c-format
msgid "value for %s must be an integer"
msgstr "le valor de %s debe esser un numero integre"
-#: locale/programs/charmap.c:847
+#: locale/programs/charmap.c:848
#, c-format
msgid "%s: error in state machine"
msgstr "%s: error in le automato de statos finite"
-#: locale/programs/charmap.c:855 locale/programs/ld-address.c:540
+#: locale/programs/charmap.c:856 locale/programs/ld-address.c:540
#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967
-#: locale/programs/ld-ctype.c:2114 locale/programs/ld-ctype.c:2846
+#: locale/programs/ld-ctype.c:2115 locale/programs/ld-ctype.c:2847
#: locale/programs/ld-identification.c:413
#: locale/programs/ld-measurement.c:229 locale/programs/ld-messages.c:311
#: locale/programs/ld-monetary.c:764 locale/programs/ld-name.c:278
#: locale/programs/ld-numeric.c:341 locale/programs/ld-paper.c:228
#: locale/programs/ld-telephone.c:292 locale/programs/ld-time.c:990
-#: locale/programs/locfile.c:997 locale/programs/repertoire.c:323
+#: locale/programs/locfile.c:1010 locale/programs/repertoire.c:323
#, c-format
msgid "%s: premature end of file"
msgstr "%s: fin prematur de file"
-#: locale/programs/charmap.c:874 locale/programs/charmap.c:885
+#: locale/programs/charmap.c:875 locale/programs/charmap.c:886
#, c-format
msgid "unknown character `%s'"
msgstr "character incognite `%s'"
-#: locale/programs/charmap.c:893
+#: locale/programs/charmap.c:894
#, c-format
msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d"
msgstr "le numero de bytes in le sequentia de initio e de fin del intervallo non es le mesme: %d contra %d"
-#: locale/programs/charmap.c:998 locale/programs/ld-collate.c:2893
+#: locale/programs/charmap.c:999 locale/programs/ld-collate.c:2893
#: locale/programs/repertoire.c:418
msgid "invalid names for character range"
msgstr "nomines invalide pro un intervallo de characteres"
-#: locale/programs/charmap.c:1010 locale/programs/repertoire.c:430
+#: locale/programs/charmap.c:1011 locale/programs/repertoire.c:430
msgid "hexadecimal range format should use only capital characters"
msgstr "le formato hexadecimal de un intervallo debe utilisar solmente litteras capital"
-#: locale/programs/charmap.c:1028 locale/programs/repertoire.c:448
+#: locale/programs/charmap.c:1029 locale/programs/repertoire.c:448
#, c-format
msgid "<%s> and <%s> are invalid names for range"
msgstr "<%s> e <%s> es nomines invalide pro un intervallo"
-#: locale/programs/charmap.c:1034 locale/programs/repertoire.c:455
+#: locale/programs/charmap.c:1035 locale/programs/repertoire.c:455
msgid "upper limit in range is smaller than lower limit"
msgstr "le limite alte in le intervallo es plus parve que le limite basse"
-#: locale/programs/charmap.c:1092
+#: locale/programs/charmap.c:1093
msgid "resulting bytes for range not representable."
msgstr "le bytes resultante pro le intervallo non es representabile."
@@ -1873,7 +1876,7 @@ msgid "%s: numeric country code `%d' not valid"
msgstr "%s: le codice numeric de pais `%d' non es valide"
#: locale/programs/ld-address.c:432 locale/programs/ld-address.c:469
-#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2478
+#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2479
#: locale/programs/ld-identification.c:309
#: locale/programs/ld-measurement.c:196 locale/programs/ld-messages.c:264
#: locale/programs/ld-monetary.c:503 locale/programs/ld-monetary.c:538
@@ -1896,7 +1899,7 @@ msgid "%s: unknown character in field `%s'"
msgstr "%s: character incognite in le campo `%s'"
#: locale/programs/ld-address.c:521 locale/programs/ld-collate.c:3772
-#: locale/programs/ld-ctype.c:2826 locale/programs/ld-identification.c:394
+#: locale/programs/ld-ctype.c:2827 locale/programs/ld-identification.c:394
#: locale/programs/ld-measurement.c:210 locale/programs/ld-messages.c:293
#: locale/programs/ld-monetary.c:746 locale/programs/ld-name.c:260
#: locale/programs/ld-numeric.c:323 locale/programs/ld-paper.c:210
@@ -1909,8 +1912,8 @@ msgstr "%s: linea `END' incomplete"
#: locale/programs/ld-collate.c:602 locale/programs/ld-collate.c:898
#: locale/programs/ld-collate.c:911 locale/programs/ld-collate.c:2582
#: locale/programs/ld-collate.c:2603 locale/programs/ld-collate.c:3957
-#: locale/programs/ld-ctype.c:1846 locale/programs/ld-ctype.c:2104
-#: locale/programs/ld-ctype.c:2676 locale/programs/ld-ctype.c:2837
+#: locale/programs/ld-ctype.c:1847 locale/programs/ld-ctype.c:2105
+#: locale/programs/ld-ctype.c:2677 locale/programs/ld-ctype.c:2838
#: locale/programs/ld-identification.c:404
#: locale/programs/ld-measurement.c:220 locale/programs/ld-messages.c:302
#: locale/programs/ld-monetary.c:755 locale/programs/ld-name.c:269
@@ -2255,131 +2258,131 @@ msgstr "le mappa de characteres `%s' jam ha essite definite"
msgid "implementation limit: no more than %d character maps allowed"
msgstr "limite de implementation: il se non permitte plus de %d mappas de characteres"
-#: locale/programs/ld-ctype.c:1434 locale/programs/ld-ctype.c:1559
-#: locale/programs/ld-ctype.c:1665 locale/programs/ld-ctype.c:2341
-#: locale/programs/ld-ctype.c:3299
+#: locale/programs/ld-ctype.c:1435 locale/programs/ld-ctype.c:1560
+#: locale/programs/ld-ctype.c:1666 locale/programs/ld-ctype.c:2342
+#: locale/programs/ld-ctype.c:3302
#, c-format
msgid "%s: field `%s' does not contain exactly ten entries"
msgstr "%s: le campo `%s' non contine exactemente dece entratas"
-#: locale/programs/ld-ctype.c:1462 locale/programs/ld-ctype.c:2036
+#: locale/programs/ld-ctype.c:1463 locale/programs/ld-ctype.c:2037
#, c-format
msgid "to-value <U%0*X> of range is smaller than from-value <U%0*X>"
msgstr "le valor final <U%0*X> del intervallo es plus parve que le valor initial <U%0*X>"
-#: locale/programs/ld-ctype.c:1589
+#: locale/programs/ld-ctype.c:1590
msgid "start and end character sequence of range must have the same length"
msgstr "le sequantias de characteres initial e final del intervallo debe haber le mesme longitude"
-#: locale/programs/ld-ctype.c:1596
+#: locale/programs/ld-ctype.c:1597
msgid "to-value character sequence is smaller than from-value sequence"
msgstr "le sequentia de characteres del valor final es plus parve que le sequentia del valor initial"
-#: locale/programs/ld-ctype.c:1956 locale/programs/ld-ctype.c:2007
+#: locale/programs/ld-ctype.c:1957 locale/programs/ld-ctype.c:2008
msgid "premature end of `translit_ignore' definition"
msgstr "le fin prematur del definition de `translit_ignore'"
-#: locale/programs/ld-ctype.c:1962 locale/programs/ld-ctype.c:2013
-#: locale/programs/ld-ctype.c:2055
+#: locale/programs/ld-ctype.c:1963 locale/programs/ld-ctype.c:2014
+#: locale/programs/ld-ctype.c:2056
msgid "syntax error"
msgstr "error de syntaxe"
-#: locale/programs/ld-ctype.c:2188
+#: locale/programs/ld-ctype.c:2189
#, c-format
msgid "%s: syntax error in definition of new character class"
msgstr "%s: error de syntaxe in le definition de un nove classe de characteres"
-#: locale/programs/ld-ctype.c:2203
+#: locale/programs/ld-ctype.c:2204
#, c-format
msgid "%s: syntax error in definition of new character map"
msgstr "%s: error de syntaxe in le definition de un nove mappa de characteres"
-#: locale/programs/ld-ctype.c:2363
+#: locale/programs/ld-ctype.c:2364
msgid "ellipsis range must be marked by two operands of same type"
msgstr "le intervallo de ellipse debe ser marcate per duo operandos del mesme typo"
-#: locale/programs/ld-ctype.c:2372
+#: locale/programs/ld-ctype.c:2373
msgid "with symbolic name range values the absolute ellipsis `...' must not be used"
msgstr "con intervallo definite per nomines symbolic le ellipse absolute `...' non debe ser utilisate"
-#: locale/programs/ld-ctype.c:2387
+#: locale/programs/ld-ctype.c:2388
msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'"
msgstr "con intervallo definite per UCS on debe usar le ellipse symbolic hexadecimal `..'"
-#: locale/programs/ld-ctype.c:2401
+#: locale/programs/ld-ctype.c:2402
msgid "with character code range values one must use the absolute ellipsis `...'"
msgstr "con intervallo definite per codices de characteres on debe usar le ellipse absolute `...'"
-#: locale/programs/ld-ctype.c:2552
+#: locale/programs/ld-ctype.c:2553
#, c-format
msgid "duplicated definition for mapping `%s'"
msgstr "definition duplicate del tabula `%s'"
-#: locale/programs/ld-ctype.c:2638 locale/programs/ld-ctype.c:2782
+#: locale/programs/ld-ctype.c:2639 locale/programs/ld-ctype.c:2783
#, c-format
msgid "%s: `translit_start' section does not end with `translit_end'"
msgstr "%s: le section `translit_start' non fini con `translit_end'"
-#: locale/programs/ld-ctype.c:2733
+#: locale/programs/ld-ctype.c:2734
#, c-format
msgid "%s: duplicate `default_missing' definition"
msgstr "%s: definition duplicate de `default_missing'"
-#: locale/programs/ld-ctype.c:2738
+#: locale/programs/ld-ctype.c:2739
msgid "previous definition was here"
msgstr "le definition previe era hic"
-#: locale/programs/ld-ctype.c:2760
+#: locale/programs/ld-ctype.c:2761
#, c-format
msgid "%s: no representable `default_missing' definition found"
msgstr "%s: necun definition `default_missing' representabile trovate"
-#: locale/programs/ld-ctype.c:2877 locale/programs/ld-ctype.c:2973
-#: locale/programs/ld-ctype.c:2992 locale/programs/ld-ctype.c:3012
-#: locale/programs/ld-ctype.c:3032 locale/programs/ld-ctype.c:3052
-#: locale/programs/ld-ctype.c:3072 locale/programs/ld-ctype.c:3111
-#: locale/programs/ld-ctype.c:3131 locale/programs/ld-ctype.c:3195
-#: locale/programs/ld-ctype.c:3236 locale/programs/ld-ctype.c:3259
+#: locale/programs/ld-ctype.c:2878 locale/programs/ld-ctype.c:2974
+#: locale/programs/ld-ctype.c:2993 locale/programs/ld-ctype.c:3013
+#: locale/programs/ld-ctype.c:3033 locale/programs/ld-ctype.c:3053
+#: locale/programs/ld-ctype.c:3073 locale/programs/ld-ctype.c:3112
+#: locale/programs/ld-ctype.c:3132 locale/programs/ld-ctype.c:3198
+#: locale/programs/ld-ctype.c:3239 locale/programs/ld-ctype.c:3262
#, c-format
msgid "%s: character `%s' not defined while needed as default value"
msgstr "%s: le character `%s' non es definite quando illo es necesse como valor predefinite"
-#: locale/programs/ld-ctype.c:2882 locale/programs/ld-ctype.c:2978
-#: locale/programs/ld-ctype.c:2997 locale/programs/ld-ctype.c:3017
-#: locale/programs/ld-ctype.c:3037 locale/programs/ld-ctype.c:3057
-#: locale/programs/ld-ctype.c:3077 locale/programs/ld-ctype.c:3116
-#: locale/programs/ld-ctype.c:3136 locale/programs/ld-ctype.c:3200
+#: locale/programs/ld-ctype.c:2883 locale/programs/ld-ctype.c:2979
+#: locale/programs/ld-ctype.c:2998 locale/programs/ld-ctype.c:3018
+#: locale/programs/ld-ctype.c:3038 locale/programs/ld-ctype.c:3058
+#: locale/programs/ld-ctype.c:3078 locale/programs/ld-ctype.c:3117
+#: locale/programs/ld-ctype.c:3137 locale/programs/ld-ctype.c:3203
#, c-format
msgid "%s: character `%s' in charmap not representable with one byte"
msgstr "%s: le character `%s' in tabula de characteres non es representabile con un byte"
-#: locale/programs/ld-ctype.c:3242 locale/programs/ld-ctype.c:3265
+#: locale/programs/ld-ctype.c:3245 locale/programs/ld-ctype.c:3268
#, c-format
msgid "%s: character `%s' needed as default value not representable with one byte"
msgstr "%s: le character `%s' requirite como valor predefinite non es representabile con un byte"
-#: locale/programs/ld-ctype.c:3321
+#: locale/programs/ld-ctype.c:3324
msgid "no output digits defined and none of the standard names in the charmap"
msgstr "necun cifras de output es definite e nihil del nomines standard es in le tabula de characteres"
-#: locale/programs/ld-ctype.c:3570
+#: locale/programs/ld-ctype.c:3573
#, c-format
msgid "%s: transliteration data from locale `%s' not available"
msgstr "%s: le datos de transliteration del localitate `%s' non es disponibile"
-#: locale/programs/ld-ctype.c:3669
+#: locale/programs/ld-ctype.c:3672
#, fuzzy, c-format
#| msgid "%s: table for class \"%s\": %lu bytes\n"
msgid "%s: table for class \"%s\": %lu bytes"
msgstr "%s: tabula pro le classe \"%s\": %lu bytes\n"
-#: locale/programs/ld-ctype.c:3733
+#: locale/programs/ld-ctype.c:3736
#, fuzzy, c-format
#| msgid "%s: table for map \"%s\": %lu bytes\n"
msgid "%s: table for map \"%s\": %lu bytes"
msgstr "%s: tabula de characteres \"%s\": %lu bytes\n"
-#: locale/programs/ld-ctype.c:3857
+#: locale/programs/ld-ctype.c:3860
#, fuzzy, c-format
#| msgid "%s: table for width: %lu bytes\n"
msgid "%s: table for width: %lu bytes"
@@ -2622,122 +2625,117 @@ msgstr ""
"NOMINE\n"
"[-a|-m]"
-#: locale/programs/locale.c:190
-#, c-format
-msgid "Cannot set LC_CTYPE to default locale"
-msgstr "Impossibile de initialisar LC_CTYPE al localitate predefinite"
-
-#: locale/programs/locale.c:192
+#: locale/programs/locale.c:522
#, c-format
-msgid "Cannot set LC_MESSAGES to default locale"
-msgstr "Impossibile de initialisar LC_MESSAGE al localitate predefinite"
-
-#: locale/programs/locale.c:205
-#, c-format
-msgid "Cannot set LC_COLLATE to default locale"
-msgstr "Impossibile de initialisar LC_COLLATE al localitate predefinite"
+msgid "while preparing output"
+msgstr "durante le preparation de output"
-#: locale/programs/locale.c:221
-#, c-format
-msgid "Cannot set LC_ALL to default locale"
+#: locale/programs/locale.c:998
+#, fuzzy, c-format
+#| msgid "Cannot set LC_ALL to default locale"
+msgid "Cannot set %s to default locale"
msgstr "Impossibile de initialisar LC_ALL al localitate predefinite"
-#: locale/programs/locale.c:521
+#: locale/programs/locale.c:1096
#, c-format
-msgid "while preparing output"
-msgstr "durante le preparation de output"
+msgid "warning: The LOCPATH variable is set to \"%s\"\n"
+msgstr ""
-#: locale/programs/localedef.c:112
+#: locale/programs/localedef.c:116
msgid "Input Files:"
msgstr "Files de input:"
-#: locale/programs/localedef.c:114
+#: locale/programs/localedef.c:118
msgid "Symbolic character names defined in FILE"
msgstr "Nomines symbolic de characteres es in FILE"
-#: locale/programs/localedef.c:116
+#: locale/programs/localedef.c:120
msgid "Source definitions are found in FILE"
msgstr "Le definitiones fontal es in FILE"
-#: locale/programs/localedef.c:118
+#: locale/programs/localedef.c:122
msgid "FILE contains mapping from symbolic names to UCS4 values"
msgstr "FILE contine mappage del nomines symbolic al valores UCS4"
-#: locale/programs/localedef.c:122
+#: locale/programs/localedef.c:126
msgid "Create output even if warning messages were issued"
msgstr "Crear le output etsi advertimentos era emittite"
-#: locale/programs/localedef.c:123
+#: locale/programs/localedef.c:128
+msgid "Do not create hard links between installed locales"
+msgstr ""
+
+#: locale/programs/localedef.c:129
msgid "Optional output file prefix"
msgstr "Prefixo optional del file de output"
-#: locale/programs/localedef.c:124
+#: locale/programs/localedef.c:130
#, fuzzy
#| msgid "Be strictly POSIX conform"
msgid "Strictly conform to POSIX"
msgstr "Conformar se strictemente a POSIX"
-#: locale/programs/localedef.c:126
+#: locale/programs/localedef.c:132
msgid "Suppress warnings and information messages"
msgstr "Supprimer advertimentos e messages informative"
-#: locale/programs/localedef.c:127
+#: locale/programs/localedef.c:133
msgid "Print more messages"
msgstr "Monstrar plus de messages"
-#: locale/programs/localedef.c:128 locale/programs/localedef.c:131
+#: locale/programs/localedef.c:134 locale/programs/localedef.c:137
msgid "<warnings>"
msgstr ""
-#: locale/programs/localedef.c:129
+#: locale/programs/localedef.c:135
msgid "Comma-separated list of warnings to disable; supported warnings are: ascii, intcurrsym"
msgstr ""
-#: locale/programs/localedef.c:132
+#: locale/programs/localedef.c:138
msgid "Comma-separated list of warnings to enable; supported warnings are: ascii, intcurrsym"
msgstr ""
-#: locale/programs/localedef.c:135
+#: locale/programs/localedef.c:141
msgid "Archive control:"
msgstr "Gerentia del archivo:"
-#: locale/programs/localedef.c:137
+#: locale/programs/localedef.c:143
msgid "Don't add new data to archive"
msgstr "Non adder nove datos al archivo"
-#: locale/programs/localedef.c:139
+#: locale/programs/localedef.c:145
msgid "Add locales named by parameters to archive"
msgstr "Adder al archivo le localitates designate per parametros"
-#: locale/programs/localedef.c:140
+#: locale/programs/localedef.c:146
msgid "Replace existing archive content"
msgstr "Reimplaciar le contento existente del archivo"
-#: locale/programs/localedef.c:142
+#: locale/programs/localedef.c:148
msgid "Remove locales named by parameters from archive"
msgstr "Remover del archivo le localitates designate per parametros"
-#: locale/programs/localedef.c:143
+#: locale/programs/localedef.c:149
msgid "List content of archive"
msgstr "Monstrar le contento del archivo"
-#: locale/programs/localedef.c:145
+#: locale/programs/localedef.c:151
msgid "locale.alias file to consult when making archive"
msgstr "Le file locale.alias a consultar durante le creation del archivo"
-#: locale/programs/localedef.c:147
+#: locale/programs/localedef.c:153
msgid "Generate little-endian output"
msgstr ""
-#: locale/programs/localedef.c:149
+#: locale/programs/localedef.c:155
msgid "Generate big-endian output"
msgstr ""
-#: locale/programs/localedef.c:154
+#: locale/programs/localedef.c:160
msgid "Compile locale specification"
msgstr "Compilar le specification de localitate"
-#: locale/programs/localedef.c:157
+#: locale/programs/localedef.c:163
msgid ""
"NAME\n"
"[--add-to-archive|--delete-from-archive] FILE...\n"
@@ -2747,33 +2745,33 @@ msgstr ""
"[--add-to-archive|--delete-from-archive] FILE...\n"
"--list-archive [FILE]"
-#: locale/programs/localedef.c:232
+#: locale/programs/localedef.c:238
#, c-format
msgid "cannot create directory for output files"
msgstr ""
-#: locale/programs/localedef.c:243
+#: locale/programs/localedef.c:249
msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
msgstr ""
-#: locale/programs/localedef.c:257 locale/programs/localedef.c:273
-#: locale/programs/localedef.c:663 locale/programs/localedef.c:683
+#: locale/programs/localedef.c:263 locale/programs/localedef.c:279
+#: locale/programs/localedef.c:673 locale/programs/localedef.c:693
#, c-format
msgid "cannot open locale definition file `%s'"
msgstr ""
-#: locale/programs/localedef.c:297
+#: locale/programs/localedef.c:303
#, c-format
msgid "cannot write output files to `%s'"
msgstr ""
-#: locale/programs/localedef.c:303
+#: locale/programs/localedef.c:309
#, fuzzy
#| msgid "no output file produced because warnings were issued"
msgid "no output file produced because errors were issued"
msgstr "necun file de output producite a causa de advertimentos reportate"
-#: locale/programs/localedef.c:431
+#: locale/programs/localedef.c:441
#, c-format
msgid ""
"System's directory for character maps : %s\n"
@@ -2782,11 +2780,11 @@ msgid ""
"%s"
msgstr ""
-#: locale/programs/localedef.c:631
+#: locale/programs/localedef.c:641
msgid "circular dependencies between locale definitions"
msgstr ""
-#: locale/programs/localedef.c:637
+#: locale/programs/localedef.c:647
#, c-format
msgid "cannot add already read locale `%s' a second time"
msgstr ""
@@ -2943,24 +2941,24 @@ msgstr ""
msgid "failure while writing data for category `%s'"
msgstr ""
-#: locale/programs/locfile.c:917
+#: locale/programs/locfile.c:930
#, c-format
msgid "cannot create output file `%s' for category `%s'"
msgstr ""
-#: locale/programs/locfile.c:953
+#: locale/programs/locfile.c:966
msgid "expecting string argument for `copy'"
msgstr ""
-#: locale/programs/locfile.c:957
+#: locale/programs/locfile.c:970
msgid "locale name should consist only of portable characters"
msgstr ""
-#: locale/programs/locfile.c:976
+#: locale/programs/locfile.c:989
msgid "no other keyword shall be specified when `copy' is used"
msgstr ""
-#: locale/programs/locfile.c:990
+#: locale/programs/locfile.c:1003
#, c-format
msgid "`%1$s' definition does not end with `END %1$s'"
msgstr ""
@@ -3757,12 +3755,12 @@ msgstr ""
msgid "yp_update: cannot get server address\n"
msgstr ""
-#: nscd/aicache.c:83 nscd/hstcache.c:452
+#: nscd/aicache.c:82 nscd/hstcache.c:452
#, c-format
msgid "Haven't found \"%s\" in hosts cache!"
msgstr ""
-#: nscd/aicache.c:85 nscd/hstcache.c:454
+#: nscd/aicache.c:84 nscd/hstcache.c:454
#, c-format
msgid "Reloading \"%s\" in hosts cache!"
msgstr ""
@@ -4085,22 +4083,22 @@ msgstr ""
msgid "no more memory for database '%s'"
msgstr ""
-#: nscd/netgroupcache.c:121
+#: nscd/netgroupcache.c:122
#, c-format
msgid "Haven't found \"%s\" in netgroup cache!"
msgstr ""
-#: nscd/netgroupcache.c:123
+#: nscd/netgroupcache.c:124
#, c-format
msgid "Reloading \"%s\" in netgroup cache!"
msgstr ""
-#: nscd/netgroupcache.c:469
+#: nscd/netgroupcache.c:470
#, c-format
msgid "Haven't found \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr ""
-#: nscd/netgroupcache.c:472
+#: nscd/netgroupcache.c:473
#, c-format
msgid "Reloading \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr ""
@@ -4153,7 +4151,7 @@ msgstr ""
msgid "Name Service Cache Daemon."
msgstr ""
-#: nscd/nscd.c:155 nss/getent.c:967 nss/makedb.c:206
+#: nscd/nscd.c:155 nss/getent.c:987 nss/makedb.c:206
#, c-format
msgid "wrong number of arguments"
msgstr ""
@@ -4263,27 +4261,27 @@ msgstr ""
msgid "Must specify user name for server-user option"
msgstr ""
-#: nscd/nscd_conf.c:198
+#: nscd/nscd_conf.c:201
#, c-format
msgid "Must specify user name for stat-user option"
msgstr ""
-#: nscd/nscd_conf.c:255
+#: nscd/nscd_conf.c:259
#, c-format
msgid "Must specify value for restart-interval option"
msgstr ""
-#: nscd/nscd_conf.c:269
+#: nscd/nscd_conf.c:273
#, c-format
msgid "Unknown option: %s %s %s"
msgstr ""
-#: nscd/nscd_conf.c:282
+#: nscd/nscd_conf.c:286
#, c-format
msgid "cannot get current working directory: %s; disabling paranoia mode"
msgstr ""
-#: nscd/nscd_conf.c:302
+#: nscd/nscd_conf.c:306
#, c-format
msgid "maximum file size for %s database too small"
msgstr ""
@@ -4502,48 +4500,48 @@ msgstr ""
msgid "Reloading \"%s\" in services cache!"
msgstr ""
-#: nss/getent.c:54
+#: nss/getent.c:55
msgid "database [key ...]"
msgstr ""
-#: nss/getent.c:59
+#: nss/getent.c:60
#, fuzzy
#| msgid "CONF"
msgid "CONFIG"
msgstr "CONF"
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "Service configuration to be used"
msgstr ""
-#: nss/getent.c:60
+#: nss/getent.c:61
msgid "disable IDN encoding"
msgstr ""
-#: nss/getent.c:65
+#: nss/getent.c:66
msgid "Get entries from administrative database."
msgstr ""
-#: nss/getent.c:149 nss/getent.c:442 nss/getent.c:489
+#: nss/getent.c:150 nss/getent.c:462 nss/getent.c:509
#, c-format
msgid "Enumeration not supported on %s\n"
msgstr ""
-#: nss/getent.c:497 nss/getent.c:510
+#: nss/getent.c:517 nss/getent.c:530
#, c-format
msgid "Could not allocate group list: %m\n"
msgstr ""
-#: nss/getent.c:881
+#: nss/getent.c:901
#, c-format
msgid "Unknown database name"
msgstr ""
-#: nss/getent.c:911
+#: nss/getent.c:931
msgid "Supported databases:\n"
msgstr ""
-#: nss/getent.c:977
+#: nss/getent.c:997
#, c-format
msgid "Unknown database: %s\n"
msgstr ""
@@ -4793,11 +4791,11 @@ msgstr ""
msgid "Unmatched ) or \\)"
msgstr ""
-#: posix/regcomp.c:689
+#: posix/regcomp.c:676
msgid "No previous regular expression"
msgstr ""
-#: posix/wordexp.c:1815
+#: posix/wordexp.c:1816
msgid "parameter null or not set"
msgstr ""
@@ -4982,7 +4980,7 @@ msgstr ""
msgid "Input message available"
msgstr ""
-#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:381 timezone/zic.c:520
+#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:375 timezone/zic.c:561
msgid "I/O error"
msgstr ""
@@ -5065,7 +5063,7 @@ msgstr ""
#: sunrpc/auth_unix.c:112 sunrpc/clnt_tcp.c:124 sunrpc/clnt_udp.c:139
#: sunrpc/clnt_unix.c:125 sunrpc/svc_tcp.c:189 sunrpc/svc_tcp.c:233
#: sunrpc/svc_udp.c:161 sunrpc/svc_unix.c:189 sunrpc/svc_unix.c:229
-#: sunrpc/xdr.c:628 sunrpc/xdr.c:788 sunrpc/xdr_array.c:102
+#: sunrpc/xdr.c:631 sunrpc/xdr.c:791 sunrpc/xdr_array.c:102
#: sunrpc/xdr_rec.c:153 sunrpc/xdr_ref.c:79
msgid "out of memory\n"
msgstr ""
@@ -6315,56 +6313,69 @@ msgid "You really blew it this time"
msgstr ""
#. TRANS Go home and have a glass of warm, dairy-fresh milk.
-#: sysdeps/gnu/errlist.c:978
+#. TRANS @c Okay. Since you are dying to know, I'll tell you.
+#. TRANS @c This is a joke, obviously. There is a children's song which begins,
+#. TRANS @c "Old McDonald had a farm, e-i-e-i-o." Every time I see the (real)
+#. TRANS @c errno macro EIO, I think about that song. Probably most of my
+#. TRANS @c compatriots who program on Unix do, too. One of them must have stayed
+#. TRANS @c up a little too late one night and decided to add it to Hurd or Glibc.
+#. TRANS @c Whoever did it should be castigated, but it made me laugh.
+#. TRANS @c --jtobey@channel1.com
+#. TRANS @c
+#. TRANS @c "bought the farm" means "died". -jtobey
+#. TRANS @c
+#. TRANS @c Translators, please do not translate this litteraly, translate it into
+#. TRANS @c an idiomatic funny way of saying that the computer died.
+#: sysdeps/gnu/errlist.c:991
msgid "Computer bought the farm"
msgstr ""
#. TRANS This error code has no purpose.
-#: sysdeps/gnu/errlist.c:987
+#: sysdeps/gnu/errlist.c:1000
msgid "Gratuitous error"
msgstr ""
-#: sysdeps/gnu/errlist.c:995
+#: sysdeps/gnu/errlist.c:1008
msgid "Bad message"
msgstr ""
-#: sysdeps/gnu/errlist.c:1003
+#: sysdeps/gnu/errlist.c:1016
msgid "Identifier removed"
msgstr ""
-#: sysdeps/gnu/errlist.c:1011
+#: sysdeps/gnu/errlist.c:1024
msgid "Multihop attempted"
msgstr ""
-#: sysdeps/gnu/errlist.c:1019
+#: sysdeps/gnu/errlist.c:1032
msgid "No data available"
msgstr ""
-#: sysdeps/gnu/errlist.c:1027
+#: sysdeps/gnu/errlist.c:1040
msgid "Link has been severed"
msgstr ""
-#: sysdeps/gnu/errlist.c:1035
+#: sysdeps/gnu/errlist.c:1048
msgid "No message of desired type"
msgstr ""
-#: sysdeps/gnu/errlist.c:1043
+#: sysdeps/gnu/errlist.c:1056
msgid "Out of streams resources"
msgstr ""
-#: sysdeps/gnu/errlist.c:1051
+#: sysdeps/gnu/errlist.c:1064
msgid "Device not a stream"
msgstr ""
-#: sysdeps/gnu/errlist.c:1059
+#: sysdeps/gnu/errlist.c:1072
msgid "Value too large for defined data type"
msgstr ""
-#: sysdeps/gnu/errlist.c:1067
+#: sysdeps/gnu/errlist.c:1080
msgid "Protocol error"
msgstr ""
-#: sysdeps/gnu/errlist.c:1075
+#: sysdeps/gnu/errlist.c:1088
msgid "Timer expired"
msgstr ""
@@ -6372,195 +6383,195 @@ msgstr ""
#. TRANS completed. @xref{Asynchronous I/O}. When you call @code{aio_cancel},
#. TRANS the normal result is for the operations affected to complete with this
#. TRANS error; @pxref{Cancel AIO Operations}.
-#: sysdeps/gnu/errlist.c:1087
+#: sysdeps/gnu/errlist.c:1100
msgid "Operation canceled"
msgstr ""
-#: sysdeps/gnu/errlist.c:1095
+#: sysdeps/gnu/errlist.c:1108
msgid "Owner died"
msgstr ""
-#: sysdeps/gnu/errlist.c:1103
+#: sysdeps/gnu/errlist.c:1116
msgid "State not recoverable"
msgstr ""
-#: sysdeps/gnu/errlist.c:1111
+#: sysdeps/gnu/errlist.c:1124
msgid "Interrupted system call should be restarted"
msgstr ""
-#: sysdeps/gnu/errlist.c:1119
+#: sysdeps/gnu/errlist.c:1132
msgid "Channel number out of range"
msgstr ""
-#: sysdeps/gnu/errlist.c:1127
+#: sysdeps/gnu/errlist.c:1140
msgid "Level 2 not synchronized"
msgstr ""
-#: sysdeps/gnu/errlist.c:1135
+#: sysdeps/gnu/errlist.c:1148
msgid "Level 3 halted"
msgstr ""
-#: sysdeps/gnu/errlist.c:1143
+#: sysdeps/gnu/errlist.c:1156
msgid "Level 3 reset"
msgstr ""
-#: sysdeps/gnu/errlist.c:1151
+#: sysdeps/gnu/errlist.c:1164
msgid "Link number out of range"
msgstr ""
-#: sysdeps/gnu/errlist.c:1159
+#: sysdeps/gnu/errlist.c:1172
msgid "Protocol driver not attached"
msgstr ""
-#: sysdeps/gnu/errlist.c:1167
+#: sysdeps/gnu/errlist.c:1180
msgid "No CSI structure available"
msgstr ""
-#: sysdeps/gnu/errlist.c:1175
+#: sysdeps/gnu/errlist.c:1188
msgid "Level 2 halted"
msgstr ""
-#: sysdeps/gnu/errlist.c:1183
+#: sysdeps/gnu/errlist.c:1196
msgid "Invalid exchange"
msgstr ""
-#: sysdeps/gnu/errlist.c:1191
+#: sysdeps/gnu/errlist.c:1204
msgid "Invalid request descriptor"
msgstr ""
-#: sysdeps/gnu/errlist.c:1199
+#: sysdeps/gnu/errlist.c:1212
msgid "Exchange full"
msgstr ""
-#: sysdeps/gnu/errlist.c:1207
+#: sysdeps/gnu/errlist.c:1220
msgid "No anode"
msgstr ""
-#: sysdeps/gnu/errlist.c:1215
+#: sysdeps/gnu/errlist.c:1228
msgid "Invalid request code"
msgstr ""
-#: sysdeps/gnu/errlist.c:1223
+#: sysdeps/gnu/errlist.c:1236
msgid "Invalid slot"
msgstr ""
-#: sysdeps/gnu/errlist.c:1231
+#: sysdeps/gnu/errlist.c:1244
msgid "File locking deadlock error"
msgstr ""
-#: sysdeps/gnu/errlist.c:1239
+#: sysdeps/gnu/errlist.c:1252
msgid "Bad font file format"
msgstr ""
-#: sysdeps/gnu/errlist.c:1247
+#: sysdeps/gnu/errlist.c:1260
msgid "Machine is not on the network"
msgstr ""
-#: sysdeps/gnu/errlist.c:1255
+#: sysdeps/gnu/errlist.c:1268
msgid "Package not installed"
msgstr ""
-#: sysdeps/gnu/errlist.c:1263
+#: sysdeps/gnu/errlist.c:1276
msgid "Advertise error"
msgstr ""
-#: sysdeps/gnu/errlist.c:1271
+#: sysdeps/gnu/errlist.c:1284
msgid "Srmount error"
msgstr ""
-#: sysdeps/gnu/errlist.c:1279
+#: sysdeps/gnu/errlist.c:1292
msgid "Communication error on send"
msgstr ""
-#: sysdeps/gnu/errlist.c:1287
+#: sysdeps/gnu/errlist.c:1300
msgid "RFS specific error"
msgstr ""
-#: sysdeps/gnu/errlist.c:1295
+#: sysdeps/gnu/errlist.c:1308
msgid "Name not unique on network"
msgstr ""
-#: sysdeps/gnu/errlist.c:1303
+#: sysdeps/gnu/errlist.c:1316
msgid "File descriptor in bad state"
msgstr ""
-#: sysdeps/gnu/errlist.c:1311
+#: sysdeps/gnu/errlist.c:1324
msgid "Remote address changed"
msgstr ""
-#: sysdeps/gnu/errlist.c:1319
+#: sysdeps/gnu/errlist.c:1332
msgid "Can not access a needed shared library"
msgstr ""
-#: sysdeps/gnu/errlist.c:1327
+#: sysdeps/gnu/errlist.c:1340
msgid "Accessing a corrupted shared library"
msgstr ""
-#: sysdeps/gnu/errlist.c:1335
+#: sysdeps/gnu/errlist.c:1348
msgid ".lib section in a.out corrupted"
msgstr ""
-#: sysdeps/gnu/errlist.c:1343
+#: sysdeps/gnu/errlist.c:1356
msgid "Attempting to link in too many shared libraries"
msgstr ""
-#: sysdeps/gnu/errlist.c:1351
+#: sysdeps/gnu/errlist.c:1364
msgid "Cannot exec a shared library directly"
msgstr ""
-#: sysdeps/gnu/errlist.c:1359
+#: sysdeps/gnu/errlist.c:1372
msgid "Streams pipe error"
msgstr ""
-#: sysdeps/gnu/errlist.c:1367
+#: sysdeps/gnu/errlist.c:1380
msgid "Structure needs cleaning"
msgstr ""
-#: sysdeps/gnu/errlist.c:1375
+#: sysdeps/gnu/errlist.c:1388
msgid "Not a XENIX named type file"
msgstr ""
-#: sysdeps/gnu/errlist.c:1383
+#: sysdeps/gnu/errlist.c:1396
msgid "No XENIX semaphores available"
msgstr ""
-#: sysdeps/gnu/errlist.c:1391
+#: sysdeps/gnu/errlist.c:1404
msgid "Is a named type file"
msgstr ""
-#: sysdeps/gnu/errlist.c:1399
+#: sysdeps/gnu/errlist.c:1412
msgid "Remote I/O error"
msgstr ""
-#: sysdeps/gnu/errlist.c:1407
+#: sysdeps/gnu/errlist.c:1420
msgid "No medium found"
msgstr ""
-#: sysdeps/gnu/errlist.c:1415
+#: sysdeps/gnu/errlist.c:1428
msgid "Wrong medium type"
msgstr ""
-#: sysdeps/gnu/errlist.c:1423
+#: sysdeps/gnu/errlist.c:1436
msgid "Required key not available"
msgstr ""
-#: sysdeps/gnu/errlist.c:1431
+#: sysdeps/gnu/errlist.c:1444
msgid "Key has expired"
msgstr ""
-#: sysdeps/gnu/errlist.c:1439
+#: sysdeps/gnu/errlist.c:1452
msgid "Key has been revoked"
msgstr ""
-#: sysdeps/gnu/errlist.c:1447
+#: sysdeps/gnu/errlist.c:1460
msgid "Key was rejected by service"
msgstr ""
-#: sysdeps/gnu/errlist.c:1455
+#: sysdeps/gnu/errlist.c:1468
msgid "Operation not possible due to RF-kill"
msgstr ""
-#: sysdeps/gnu/errlist.c:1463
+#: sysdeps/gnu/errlist.c:1476
msgid "Memory page has hardware error"
msgstr ""
@@ -6685,27 +6696,27 @@ msgstr ""
msgid "can't disable CET"
msgstr ""
-#: timezone/zdump.c:338
+#: timezone/zdump.c:332
msgid "has fewer than 3 characters"
msgstr ""
-#: timezone/zdump.c:340
+#: timezone/zdump.c:334
msgid "has more than 6 characters"
msgstr ""
-#: timezone/zdump.c:342
+#: timezone/zdump.c:336
msgid "has characters other than ASCII alphanumerics, '-' or '+'"
msgstr ""
-#: timezone/zdump.c:347
+#: timezone/zdump.c:341
#, c-format
msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n"
msgstr ""
-#: timezone/zdump.c:393
+#: timezone/zdump.c:387
#, c-format
msgid ""
-"%s: usage: %s OPTIONS ZONENAME ...\n"
+"%s: usage: %s OPTIONS TIMEZONE ...\n"
"Options include:\n"
" -c [L,]U Start at year L (default -500), end before year U (default 2500)\n"
" -t [L,]U Start at time L, end before time U (in seconds since 1970)\n"
@@ -6718,442 +6729,470 @@ msgid ""
"Report bugs to %s.\n"
msgstr ""
-#: timezone/zdump.c:479
+#: timezone/zdump.c:473
#, c-format
msgid "%s: wild -c argument %s\n"
msgstr ""
-#: timezone/zdump.c:512
+#: timezone/zdump.c:506
#, fuzzy, c-format
#| msgid "%s: Too many arguments\n"
msgid "%s: wild -t argument %s\n"
msgstr "%s: Tro de argumentos\n"
-#: timezone/zic.c:398
+#: timezone/zic.c:429
#, c-format
msgid "%s: Memory exhausted: %s\n"
msgstr ""
-#: timezone/zic.c:406
+#: timezone/zic.c:437
msgid "size overflow"
msgstr ""
-#: timezone/zic.c:454
+#: timezone/zic.c:447
+msgid "alignment overflow"
+msgstr ""
+
+#: timezone/zic.c:495
#, fuzzy
#| msgid "internal error"
msgid "integer overflow"
msgstr "error interne"
-#: timezone/zic.c:488
+#: timezone/zic.c:529
#, c-format
msgid "\"%s\", line %<PRIdMAX>: "
msgstr ""
-#: timezone/zic.c:491
+#: timezone/zic.c:532
#, c-format
msgid " (rule from \"%s\", line %<PRIdMAX>)"
msgstr ""
-#: timezone/zic.c:510
+#: timezone/zic.c:551
#, c-format
msgid "warning: "
msgstr ""
-#: timezone/zic.c:535
+#: timezone/zic.c:576
#, c-format
msgid ""
"%s: usage is %s [ --version ] [ --help ] [ -v ] \\\n"
"\t[ -l localtime ] [ -p posixrules ] [ -d directory ] \\\n"
-"\t[ -L leapseconds ] [ filename ... ]\n"
+"\t[ -t localtime-link ] [ -L leapseconds ] [ filename ... ]\n"
"\n"
"Report bugs to %s.\n"
msgstr ""
-#: timezone/zic.c:558
+#: timezone/zic.c:599
#, fuzzy, c-format
#| msgid "Can't chdir to /"
msgid "%s: Can't chdir to %s: %s\n"
msgstr "Impossibile de effectuar chdir a /"
-#: timezone/zic.c:590
+#: timezone/zic.c:632
msgid "wild compilation-time specification of zic_t"
msgstr ""
-#: timezone/zic.c:610
+#: timezone/zic.c:652
#, c-format
msgid "%s: More than one -d option specified\n"
msgstr ""
-#: timezone/zic.c:620
+#: timezone/zic.c:662
#, c-format
msgid "%s: More than one -l option specified\n"
msgstr ""
-#: timezone/zic.c:630
+#: timezone/zic.c:672
#, c-format
msgid "%s: More than one -p option specified\n"
msgstr ""
-#: timezone/zic.c:640
+#: timezone/zic.c:680
+#, c-format
+msgid "%s: More than one -t option specified\n"
+msgstr ""
+
+#: timezone/zic.c:689
+msgid "-y is obsolescent"
+msgstr ""
+
+#: timezone/zic.c:693
#, c-format
msgid "%s: More than one -y option specified\n"
msgstr ""
-#: timezone/zic.c:650
+#: timezone/zic.c:703
#, c-format
msgid "%s: More than one -L option specified\n"
msgstr ""
-#: timezone/zic.c:659
+#: timezone/zic.c:712
msgid "-s ignored"
msgstr ""
-#: timezone/zic.c:698
+#: timezone/zic.c:753
msgid "link to link"
msgstr ""
-#: timezone/zic.c:701 timezone/zic.c:705
+#: timezone/zic.c:756 timezone/zic.c:760
msgid "command line"
msgstr ""
-#: timezone/zic.c:721
+#: timezone/zic.c:776
msgid "empty file name"
msgstr ""
-#: timezone/zic.c:724
+#: timezone/zic.c:779
#, c-format
msgid "file name '%s' begins with '/'"
msgstr ""
-#: timezone/zic.c:734
+#: timezone/zic.c:789
#, c-format
msgid "file name '%s' contains '%.*s' component"
msgstr ""
-#: timezone/zic.c:740
+#: timezone/zic.c:795
#, c-format
msgid "file name '%s' component contains leading '-'"
msgstr ""
-#: timezone/zic.c:743
+#: timezone/zic.c:798
#, c-format
msgid "file name '%s' contains overlength component '%.*s...'"
msgstr ""
-#: timezone/zic.c:771
+#: timezone/zic.c:826
#, c-format
msgid "file name '%s' contains byte '%c'"
msgstr ""
-#: timezone/zic.c:772
+#: timezone/zic.c:827
#, c-format
msgid "file name '%s' contains byte '\\%o'"
msgstr ""
-#: timezone/zic.c:842
+#: timezone/zic.c:897
#, fuzzy, c-format
#| msgid "Invalid link from \"%s\" to \"%s\": %s\n"
msgid "%s: link from %s/%s failed: %s\n"
msgstr "Ligamine invalide de \"%s\" a \"%s\": %s\n"
-#: timezone/zic.c:852 timezone/zic.c:1815
+#: timezone/zic.c:907 timezone/zic.c:1876
#, c-format
msgid "%s: Can't remove %s/%s: %s\n"
msgstr ""
-#: timezone/zic.c:874
+#: timezone/zic.c:931
#, c-format
msgid "symbolic link used because hard link failed: %s"
msgstr ""
-#: timezone/zic.c:882
+#: timezone/zic.c:939
#, c-format
msgid "%s: Can't read %s/%s: %s\n"
msgstr ""
-#: timezone/zic.c:889 timezone/zic.c:1828
+#: timezone/zic.c:946 timezone/zic.c:1889
#, c-format
msgid "%s: Can't create %s/%s: %s\n"
msgstr ""
-#: timezone/zic.c:898
+#: timezone/zic.c:955
#, c-format
msgid "copy used because hard link failed: %s"
msgstr ""
-#: timezone/zic.c:901
+#: timezone/zic.c:958
#, c-format
msgid "copy used because symbolic link failed: %s"
msgstr ""
-#: timezone/zic.c:1013 timezone/zic.c:1015
+#: timezone/zic.c:1032 timezone/zic.c:1034
msgid "same rule name in multiple files"
msgstr ""
-#: timezone/zic.c:1056
-msgid "unruly zone"
-msgstr ""
-
-#: timezone/zic.c:1063
+#: timezone/zic.c:1081
#, c-format
msgid "%s in ruleless zone"
msgstr ""
-#: timezone/zic.c:1083
+#: timezone/zic.c:1101
msgid "standard input"
msgstr ""
-#: timezone/zic.c:1088
+#: timezone/zic.c:1106
#, c-format
msgid "%s: Can't open %s: %s\n"
msgstr ""
-#: timezone/zic.c:1099
+#: timezone/zic.c:1117
msgid "line too long"
msgstr ""
-#: timezone/zic.c:1119
+#: timezone/zic.c:1139
msgid "input line of unknown type"
msgstr ""
-#: timezone/zic.c:1134
-#, c-format
-msgid "%s: Leap line in non leap seconds file %s"
-msgstr ""
-
-#: timezone/zic.c:1142 timezone/zic.c:1547 timezone/zic.c:1569
+#: timezone/zic.c:1158 timezone/zic.c:1593 timezone/zic.c:1615
#, c-format
msgid "%s: panic: Invalid l_value %d\n"
msgstr ""
-#: timezone/zic.c:1151
+#: timezone/zic.c:1167
msgid "expected continuation line not found"
msgstr ""
-#: timezone/zic.c:1193 timezone/zic.c:2976
+#: timezone/zic.c:1203
+msgid "fractional seconds rejected by pre-2018 versions of zic"
+msgstr ""
+
+#: timezone/zic.c:1221 timezone/zic.c:3078
msgid "time overflow"
msgstr ""
-#: timezone/zic.c:1198
+#: timezone/zic.c:1227
msgid "values over 24 hours not handled by pre-2007 versions of zic"
msgstr ""
-#: timezone/zic.c:1209
-msgid "wrong number of fields on Rule line"
+#: timezone/zic.c:1245
+msgid "invalid saved time"
msgstr ""
-#: timezone/zic.c:1213
-msgid "nameless rule"
+#: timezone/zic.c:1256
+msgid "wrong number of fields on Rule line"
msgstr ""
-#: timezone/zic.c:1218
-msgid "invalid saved time"
-msgstr ""
+#: timezone/zic.c:1265
+#, fuzzy, c-format
+#| msgid "invalid namespace"
+msgid "Invalid rule name \"%s\""
+msgstr "spatio de nomines invalide"
-#: timezone/zic.c:1235
+#: timezone/zic.c:1287
msgid "wrong number of fields on Zone line"
msgstr ""
-#: timezone/zic.c:1240
+#: timezone/zic.c:1292
#, c-format
msgid "\"Zone %s\" line and -l option are mutually exclusive"
msgstr ""
-#: timezone/zic.c:1246
+#: timezone/zic.c:1298
#, c-format
msgid "\"Zone %s\" line and -p option are mutually exclusive"
msgstr ""
-#: timezone/zic.c:1253
+#: timezone/zic.c:1305
#, c-format
msgid "duplicate zone name %s (file \"%s\", line %<PRIdMAX>)"
msgstr ""
-#: timezone/zic.c:1267
+#: timezone/zic.c:1319
msgid "wrong number of fields on Zone continuation line"
msgstr ""
-#: timezone/zic.c:1307
+#: timezone/zic.c:1359
#, fuzzy
#| msgid "invalid mode"
msgid "invalid UT offset"
msgstr "modo invalide"
-#: timezone/zic.c:1311
+#: timezone/zic.c:1363
msgid "invalid abbreviation format"
msgstr ""
-#: timezone/zic.c:1320
+#: timezone/zic.c:1372
#, c-format
msgid "format '%s' not handled by pre-2015 versions of zic"
msgstr ""
-#: timezone/zic.c:1347
+#: timezone/zic.c:1399
msgid "Zone continuation line end time is not after end time of previous line"
msgstr ""
-#: timezone/zic.c:1374
+#: timezone/zic.c:1426
msgid "wrong number of fields on Leap line"
msgstr ""
-#: timezone/zic.c:1383
+#: timezone/zic.c:1435
msgid "invalid leaping year"
msgstr ""
-#: timezone/zic.c:1403 timezone/zic.c:1501
+#: timezone/zic.c:1455 timezone/zic.c:1547
msgid "invalid month name"
msgstr ""
-#: timezone/zic.c:1416 timezone/zic.c:1614 timezone/zic.c:1628
+#: timezone/zic.c:1468 timezone/zic.c:1663 timezone/zic.c:1677
msgid "invalid day of month"
msgstr ""
-#: timezone/zic.c:1421
+#: timezone/zic.c:1473
msgid "time too small"
msgstr ""
-#: timezone/zic.c:1425
+#: timezone/zic.c:1477
msgid "time too large"
msgstr ""
-#: timezone/zic.c:1429 timezone/zic.c:1530
+#: timezone/zic.c:1481 timezone/zic.c:1576
msgid "invalid time of day"
msgstr ""
-#: timezone/zic.c:1448
+#: timezone/zic.c:1494
msgid "illegal CORRECTION field on Leap line"
msgstr ""
-#: timezone/zic.c:1453
+#: timezone/zic.c:1499
msgid "illegal Rolling/Stationary field on Leap line"
msgstr ""
-#: timezone/zic.c:1459
-msgid "leap second precedes Big Bang"
+#: timezone/zic.c:1505
+msgid "leap second precedes Epoch"
msgstr ""
-#: timezone/zic.c:1472
+#: timezone/zic.c:1518
msgid "wrong number of fields on Link line"
msgstr ""
-#: timezone/zic.c:1476
+#: timezone/zic.c:1522
msgid "blank FROM field on Link line"
msgstr ""
-#: timezone/zic.c:1551
+#: timezone/zic.c:1597
msgid "invalid starting year"
msgstr ""
-#: timezone/zic.c:1573
+#: timezone/zic.c:1619
msgid "invalid ending year"
msgstr ""
-#: timezone/zic.c:1577
+#: timezone/zic.c:1623
msgid "starting year greater than ending year"
msgstr ""
-#: timezone/zic.c:1584
+#: timezone/zic.c:1630
msgid "typed single year"
msgstr ""
-#: timezone/zic.c:1619
+#: timezone/zic.c:1633
+#, c-format
+msgid "year type \"%s\" is obsolete; use \"-\" instead"
+msgstr ""
+
+#: timezone/zic.c:1668
msgid "invalid weekday name"
msgstr ""
-#: timezone/zic.c:1743
+#: timezone/zic.c:1800
#, c-format
msgid "reference clients mishandle more than %d transition times"
msgstr ""
-#: timezone/zic.c:1747
+#: timezone/zic.c:1804
msgid "pre-2014 clients may mishandle more than 1200 transition times"
msgstr ""
-#: timezone/zic.c:1858
+#: timezone/zic.c:1920
msgid "too many transition times"
msgstr ""
-#: timezone/zic.c:2047
+#: timezone/zic.c:2107
#, c-format
-msgid "%%z UTC offset magnitude exceeds 99:59:59"
+msgid "%%z UT offset magnitude exceeds 99:59:59"
msgstr ""
-#: timezone/zic.c:2424
+#: timezone/zic.c:2488
msgid "no POSIX environment variable for zone"
msgstr ""
-#: timezone/zic.c:2430
+#: timezone/zic.c:2494
#, c-format
msgid "%s: pre-%d clients may mishandle distant timestamps"
msgstr ""
-#: timezone/zic.c:2566
+#: timezone/zic.c:2631
msgid "two rules for same instant"
msgstr ""
-#: timezone/zic.c:2627
+#: timezone/zic.c:2696
msgid "can't determine time zone abbreviation to use just after until time"
msgstr ""
-#: timezone/zic.c:2725
+#: timezone/zic.c:2785
msgid "too many local time types"
msgstr ""
-#: timezone/zic.c:2729
+#: timezone/zic.c:2789
msgid "UT offset out of range"
msgstr ""
-#: timezone/zic.c:2753
+#: timezone/zic.c:2813
msgid "too many leap seconds"
msgstr ""
-#: timezone/zic.c:2759
-msgid "repeated leap second moment"
+#: timezone/zic.c:2844
+msgid "Leap seconds too close together"
msgstr ""
-#: timezone/zic.c:2830
+#: timezone/zic.c:2891
msgid "Wild result from command execution"
msgstr ""
-#: timezone/zic.c:2831
+#: timezone/zic.c:2892
#, c-format
msgid "%s: command was '%s', result was %d\n"
msgstr ""
-#: timezone/zic.c:2961
+#: timezone/zic.c:2998
+#, c-format
+msgid "\"%s\" is undocumented; use \"last%s\" instead"
+msgstr ""
+
+#: timezone/zic.c:3029
+#, c-format
+msgid "\"%s\" is ambiguous in pre-2017c zic"
+msgstr ""
+
+#: timezone/zic.c:3063
msgid "Odd number of quotation marks"
msgstr ""
-#: timezone/zic.c:3046
+#: timezone/zic.c:3157
msgid "use of 2/29 in non leap-year"
msgstr ""
-#: timezone/zic.c:3081
+#: timezone/zic.c:3192
msgid "rule goes past start/end of month; will not work with pre-2004 versions of zic"
msgstr ""
-#: timezone/zic.c:3108
+#: timezone/zic.c:3219
msgid "time zone abbreviation has fewer than 3 characters"
msgstr ""
-#: timezone/zic.c:3110
+#: timezone/zic.c:3221
msgid "time zone abbreviation has too many characters"
msgstr ""
-#: timezone/zic.c:3112
+#: timezone/zic.c:3223
msgid "time zone abbreviation differs from POSIX standard"
msgstr ""
-#: timezone/zic.c:3118
+#: timezone/zic.c:3229
msgid "too many, or too long, time zone abbreviations"
msgstr ""
-#: timezone/zic.c:3161
+#: timezone/zic.c:3275
#, fuzzy, c-format
#| msgid "%s:%u: cannot read directory %s"
msgid "%s: Can't create directory %s: %s"
msgstr "%s:%u: impossibile de leger le directorio %s"
+#~ msgid "cannot open zero fill device"
+#~ msgstr "impossibile de aperir un dispositovo de impletion con zeros"
+
#~ msgid "cannot allocate TLS data structures for initial thread"
#~ msgstr "impossibile de allocar le structura de datos TLS pro le filo initial"
@@ -7163,6 +7202,9 @@ msgstr "%s:%u: impossibile de leger le directorio %s"
#~ msgid "invalid caller"
#~ msgstr "appellante invalide"
+#~ msgid "relocation error"
+#~ msgstr "error de relocation"
+
#~ msgid "cannot load any more object with static TLS"
#~ msgstr "impossibile de cargar necun altere objectos con TLS static"
@@ -7184,5 +7226,14 @@ msgstr "%s:%u: impossibile de leger le directorio %s"
#~ msgid "non-symbolic character value should not be used"
#~ msgstr "un valor de character non-symbolic non deberea usar se"
+#~ msgid "Cannot set LC_CTYPE to default locale"
+#~ msgstr "Impossibile de initialisar LC_CTYPE al localitate predefinite"
+
+#~ msgid "Cannot set LC_MESSAGES to default locale"
+#~ msgstr "Impossibile de initialisar LC_MESSAGE al localitate predefinite"
+
+#~ msgid "Cannot set LC_COLLATE to default locale"
+#~ msgstr "Impossibile de initialisar LC_COLLATE al localitate predefinite"
+
#~ msgid "Create old-style tables"
#~ msgstr "Crear le tabellas de vetule stilo"
diff --git a/po/id.po b/po/id.po
index 0d602e4219..57030ebe06 100644
--- a/po/id.po
+++ b/po/id.po
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: libc 2.10.1\n"
-"POT-Creation-Date: 2018-07-26 22:19-0400\n"
+"POT-Creation-Date: 2019-07-18 13:28-0400\n"
"PO-Revision-Date: 2009-06-23 12:30+0700\n"
"Last-Translator: Arif E. Nugroho <arif_endro@yahoo.com>\n"
"Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
@@ -146,10 +146,10 @@ msgstr ""
"[BERKAS-KELUARAN [BERKAS-MASUKAN]...]"
#: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:308
-#: elf/pldd.c:252 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
-#: iconv/iconvconfig.c:379 locale/programs/locale.c:275
-#: locale/programs/localedef.c:427 login/programs/pt_chown.c:89
-#: malloc/memusagestat.c:563 nss/getent.c:933 nss/makedb.c:369
+#: elf/pldd.c:247 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
+#: iconv/iconvconfig.c:379 locale/programs/locale.c:276
+#: locale/programs/localedef.c:437 login/programs/pt_chown.c:89
+#: malloc/memusagestat.c:563 nss/getent.c:953 nss/makedb.c:369
#: posix/getconf.c:503 sysdeps/unix/sysv/linux/lddlibc4.c:61
#, fuzzy, c-format
#| msgid ""
@@ -163,11 +163,11 @@ msgstr ""
"<http://www.gnu.org/software/libc/bugs.html>.\n"
#: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64
-#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75
+#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:263 elf/sotruss.sh:75
#: elf/sprof.c:389 iconv/iconv_prog.c:422 iconv/iconvconfig.c:396
-#: locale/programs/locale.c:292 locale/programs/localedef.c:453
+#: locale/programs/locale.c:293 locale/programs/localedef.c:463
#: login/programs/pt_chown.c:63 malloc/memusage.sh:71
-#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:87 nss/makedb.c:385
+#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:88 nss/makedb.c:385
#: posix/getconf.c:485 sysdeps/unix/sysv/linux/lddlibc4.c:68
#, c-format
msgid ""
@@ -180,10 +180,10 @@ msgstr ""
"garansi; bahkan untuk PERDAGANGAN atau KECOCOKAN UNTUK SEBUAH TUJUAN TERTENTU.\n"
#: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68
-#: elf/ldconfig.c:329 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:427
-#: iconv/iconvconfig.c:401 locale/programs/locale.c:297
-#: locale/programs/localedef.c:458 malloc/memusage.sh:75
-#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:92 nss/makedb.c:390
+#: elf/ldconfig.c:329 elf/pldd.c:268 elf/sprof.c:395 iconv/iconv_prog.c:427
+#: iconv/iconvconfig.c:401 locale/programs/locale.c:298
+#: locale/programs/localedef.c:468 malloc/memusage.sh:75
+#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:93 nss/makedb.c:390
#: posix/getconf.c:490
#, c-format
msgid "Written by %s.\n"
@@ -254,21 +254,21 @@ msgstr "tidak dapat membuka berkas keluaran `%s'"
msgid "invalid escape sequence"
msgstr "urutan escape tidak valid"
-#: catgets/gencat.c:1209
+#: catgets/gencat.c:1211
msgid "unterminated message"
msgstr "pesan tidak terselesaikan"
-#: catgets/gencat.c:1233
+#: catgets/gencat.c:1235
#, c-format
msgid "while opening old catalog file"
msgstr "ketika membuka berkas katalog lama"
-#: catgets/gencat.c:1324
+#: catgets/gencat.c:1326
#, c-format
msgid "conversion modules not available"
msgstr "modul konversi tidak tersedia"
-#: catgets/gencat.c:1350
+#: catgets/gencat.c:1352
#, c-format
msgid "cannot determine escape character"
msgstr "tidak dapat menentukan karakter escape"
@@ -405,7 +405,7 @@ msgstr "OS tidak diketahui"
msgid ", OS ABI: %s %d.%d.%d"
msgstr ", OS ABI: %s %d.%d.%d"
-#: elf/cache.c:163 elf/ldconfig.c:1332
+#: elf/cache.c:163 elf/ldconfig.c:1333
#, c-format
msgid "Can't open cache file %s\n"
msgstr "Tidak dapat membuka berkas cache %s\n"
@@ -415,38 +415,38 @@ msgstr "Tidak dapat membuka berkas cache %s\n"
msgid "mmap of cache file failed.\n"
msgstr "mmap dari berkas cache gagal.\n"
-#: elf/cache.c:181 elf/cache.c:195
+#: elf/cache.c:181 elf/cache.c:195 elf/cache.c:205
#, c-format
msgid "File is not a cache file.\n"
msgstr "Berkas bukan sebuah berkas cache.\n"
-#: elf/cache.c:228 elf/cache.c:238
+#: elf/cache.c:233 elf/cache.c:243
#, c-format
msgid "%d libs found in cache `%s'\n"
msgstr "%d libs ditemukan dalam cache `%s'\n"
-#: elf/cache.c:432
+#: elf/cache.c:437
#, c-format
msgid "Can't create temporary cache file %s"
msgstr "Tidak dapat membuat berkas cache %s sementara"
-#: elf/cache.c:440 elf/cache.c:450 elf/cache.c:454 elf/cache.c:458
-#: elf/cache.c:468
+#: elf/cache.c:445 elf/cache.c:455 elf/cache.c:459 elf/cache.c:463
+#: elf/cache.c:473
#, c-format
msgid "Writing of cache data failed"
msgstr "Penulisan dari cache data gagal"
-#: elf/cache.c:463
+#: elf/cache.c:468
#, c-format
msgid "Changing access rights of %s to %#o failed"
msgstr "Mengubah ijin akses dari %s ke %#o gagal"
-#: elf/cache.c:472
+#: elf/cache.c:477
#, c-format
msgid "Renaming of %s to %s failed"
msgstr "Mengubah nama dari %s ke %s gagal"
-#: elf/dl-close.c:399 elf/dl-open.c:420
+#: elf/dl-close.c:399 elf/dl-open.c:424
msgid "cannot create scope list"
msgstr "tidak dapat membuat daftar scope"
@@ -529,121 +529,123 @@ msgstr "tidak dapat membuah array jalur pencarian"
msgid "cannot stat shared object"
msgstr "tidak dapat memperoleh statistik objek terbagi"
-#: elf/dl-load.c:960
-msgid "cannot open zero fill device"
-msgstr "tidak dapat membuka perangkat pengisi nol"
-
-#: elf/dl-load.c:1007 elf/dl-load.c:2203
+#: elf/dl-load.c:992 elf/dl-load.c:2198
msgid "cannot create shared object descriptor"
msgstr "tidak dapat membuat deskripsi objek terbagi"
-#: elf/dl-load.c:1026 elf/dl-load.c:1560 elf/dl-load.c:1673
+#: elf/dl-load.c:1011 elf/dl-load.c:1555 elf/dl-load.c:1668
msgid "cannot read file data"
msgstr "tidak dapat membaca berkas data"
-#: elf/dl-load.c:1072
+#: elf/dl-load.c:1057
msgid "ELF load command alignment not page-aligned"
msgstr "ELF perintah angkut tidak teralign-halaman"
-#: elf/dl-load.c:1079
+#: elf/dl-load.c:1064
msgid "ELF load command address/offset not properly aligned"
msgstr "ELF perintah angkut alamat/ofset tidak secara benar ter-align"
-#: elf/dl-load.c:1161
+#: elf/dl-load.c:1146
#, fuzzy
#| msgid "cannot restore segment prot after reloc"
msgid "cannot process note segment"
msgstr "tidak dapat merestore segmen prot setelah relokasi"
-#: elf/dl-load.c:1172
+#: elf/dl-load.c:1157
msgid "object file has no loadable segments"
msgstr "berkas objek tidak memiliki segmen yang dapat diangkut"
-#: elf/dl-load.c:1181 elf/dl-load.c:1652
+#: elf/dl-load.c:1170 elf/dl-load.c:1647
msgid "cannot dynamically load executable"
msgstr "tidak dapat secara dinamis mengangkut aplikasi"
-#: elf/dl-load.c:1202
+#: elf/dl-load.c:1191
msgid "object file has no dynamic section"
msgstr "berkas objek tidak memiliki bagian dinamis"
-#: elf/dl-load.c:1225
+#: elf/dl-load.c:1218
+#, fuzzy
+#| msgid "cannot dynamically load executable"
+msgid "cannot dynamically load position-independent executable"
+msgstr "tidak dapat secara dinamis mengangkut aplikasi"
+
+#: elf/dl-load.c:1220
msgid "shared object cannot be dlopen()ed"
msgstr "objek terbagi tidak dapat di dlopen()ed"
-#: elf/dl-load.c:1238
+#: elf/dl-load.c:1233
msgid "cannot allocate memory for program header"
msgstr "tidak dapat mengalokasikan memori untuk aplikasi header"
-#: elf/dl-load.c:1271 elf/dl-load.h:130
+#: elf/dl-load.c:1266 elf/dl-load.h:130
msgid "cannot change memory protections"
msgstr "tidak dapat mengubah proteksi memori"
-#: elf/dl-load.c:1291
+#: elf/dl-load.c:1286
msgid "cannot enable executable stack as shared object requires"
msgstr "tidak dapat mengaktifkan stack aplikasi sebagai objek terbagi yang dibutuhkan"
-#: elf/dl-load.c:1304
+#: elf/dl-load.c:1299
msgid "cannot close file descriptor"
msgstr "tidak dapat menutup berkas deskripsi"
-#: elf/dl-load.c:1560
+#: elf/dl-load.c:1555
msgid "file too short"
msgstr "berkas terlalu pendek"
-#: elf/dl-load.c:1595
+#: elf/dl-load.c:1590
msgid "invalid ELF header"
msgstr "header ELF tidak valid"
-#: elf/dl-load.c:1607
+#: elf/dl-load.c:1602
msgid "ELF file data encoding not big-endian"
msgstr "berkas data enkoding ELF bukan big-endian"
-#: elf/dl-load.c:1609
+#: elf/dl-load.c:1604
msgid "ELF file data encoding not little-endian"
msgstr "berkas data enkoding ELF bukan little-endian"
-#: elf/dl-load.c:1613
+#: elf/dl-load.c:1608
msgid "ELF file version ident does not match current one"
msgstr "berkas versi ident ELF tidak cocok dengan yang sekarang"
-#: elf/dl-load.c:1617
+#: elf/dl-load.c:1612
msgid "ELF file OS ABI invalid"
msgstr "berkas OS ABI ELF tidak valid"
-#: elf/dl-load.c:1620
+#: elf/dl-load.c:1615
msgid "ELF file ABI version invalid"
msgstr "berkas versi ABI ELF tidak valid"
-#: elf/dl-load.c:1623
+#: elf/dl-load.c:1618
msgid "nonzero padding in e_ident"
msgstr ""
-#: elf/dl-load.c:1626
+#: elf/dl-load.c:1621
msgid "internal error"
msgstr "internal error"
-#: elf/dl-load.c:1633
+#: elf/dl-load.c:1628
msgid "ELF file version does not match current one"
msgstr "berkas versi ELF tidak cocok dengan yang sekarang"
-#: elf/dl-load.c:1641
+#: elf/dl-load.c:1636
msgid "only ET_DYN and ET_EXEC can be loaded"
msgstr "hanya ET_DYN dan ET_EXEC yang dapat diangkut"
-#: elf/dl-load.c:1657
+#: elf/dl-load.c:1652
msgid "ELF file's phentsize not the expected size"
msgstr "berkas phentsize ELF tidak seperti ukuran yang diduga"
-#: elf/dl-load.c:2222
+#: elf/dl-load.c:2217
msgid "wrong ELF class: ELFCLASS64"
msgstr "kelas ELF salah: ELFCLASS64"
-#: elf/dl-load.c:2223
+#: elf/dl-load.c:2218
msgid "wrong ELF class: ELFCLASS32"
msgstr "kelas ELF salah: ELFCLASS32"
-#: elf/dl-load.c:2226
+#: elf/dl-load.c:2221
msgid "cannot open shared object file"
msgstr "tidak dapat membuka berkas objek terbagi"
@@ -655,11 +657,7 @@ msgstr "gagal untuk memetakan segmen dari objek terbagi"
msgid "cannot map zero-fill pages"
msgstr "tidak dapat memetakan halaman pengisian-nol"
-#: elf/dl-lookup.c:835
-msgid "relocation error"
-msgstr "relokasi error"
-
-#: elf/dl-lookup.c:858
+#: elf/dl-lookup.c:830
msgid "symbol lookup error"
msgstr "simbol lookup error"
@@ -667,19 +665,19 @@ msgstr "simbol lookup error"
msgid "cannot extend global scope"
msgstr "tidak dapat mengeksten global scope"
-#: elf/dl-open.c:470
+#: elf/dl-open.c:474
msgid "TLS generation counter wrapped! Please report this."
msgstr "pembuatan TLS penghitung wrapped! Tolong laporkan ini."
-#: elf/dl-open.c:534
+#: elf/dl-open.c:538
msgid "invalid mode for dlopen()"
msgstr "mode untuk dlopen() tidak valid"
-#: elf/dl-open.c:551
+#: elf/dl-open.c:555
msgid "no more namespaces available for dlmopen()"
msgstr "tidak ada lagi ruang-nama yang tersedia untuk dlmopen()"
-#: elf/dl-open.c:575
+#: elf/dl-open.c:579
msgid "invalid target namespace in dlmopen()"
msgstr "target ruang-nama dalam dlmopen() tidak valid"
@@ -687,20 +685,20 @@ msgstr "target ruang-nama dalam dlmopen() tidak valid"
msgid "cannot allocate memory in static TLS block"
msgstr "tidak dapat mengalokasikan memori dalam blok TLS statis"
-#: elf/dl-reloc.c:205
+#: elf/dl-reloc.c:213
msgid "cannot make segment writable for relocation"
msgstr "tidak dapat membuat segmen dapat ditulis untuk relokasi"
-#: elf/dl-reloc.c:276
+#: elf/dl-reloc.c:272
#, c-format
msgid "%s: out of memory to store relocation results for %s\n"
msgstr "%s: kehabisan dari memori untuk menyimpan hasil relokasi untuk %s\n"
-#: elf/dl-reloc.c:292
+#: elf/dl-reloc.c:288
msgid "cannot restore segment prot after reloc"
msgstr "tidak dapat merestore segmen prot setelah relokasi"
-#: elf/dl-reloc.c:323
+#: elf/dl-reloc.c:319
msgid "cannot apply additional memory protection after relocation"
msgstr "tidak dapat mengaplikasikan proteksi memori tambahan setelah relokasi"
@@ -922,22 +920,22 @@ msgstr "membutuhkan nama berkas absolut untuk berkas konfigurasi ketika mengguna
msgid "memory exhausted"
msgstr "kehabisan memori"
-#: elf/ldconfig.c:1233
+#: elf/ldconfig.c:1234
#, c-format
msgid "%s:%u: cannot read directory %s"
msgstr "%s:%u: tidak dapat membaca direktori %s"
-#: elf/ldconfig.c:1281
+#: elf/ldconfig.c:1282
#, c-format
msgid "relative path `%s' used to build cache"
msgstr "jalur relatif `%s' digunakan untuk membuat cache"
-#: elf/ldconfig.c:1311
+#: elf/ldconfig.c:1312
#, c-format
msgid "Can't chdir to /"
msgstr "Tidak dapat chdir ke /"
-#: elf/ldconfig.c:1352
+#: elf/ldconfig.c:1353
#, c-format
msgid "Can't open cache file directory %s\n"
msgstr "Tidak dapat membuat berkas cache direktori %s\n"
@@ -1007,109 +1005,115 @@ msgstr "keluar dengan kode keluar yang tidak diketahui"
msgid "error: you do not have read permission for"
msgstr "error: anda tidak memiliki ijin membaca untuk"
-#: elf/pldd-xx.c:105
+#: elf/pldd-xx.c:102
#, fuzzy, c-format
#| msgid "cannot read header from `%s'"
msgid "cannot find program header of process"
msgstr "tidak dapat membaca header dari `%s'"
-#: elf/pldd-xx.c:110
+#: elf/pldd-xx.c:106
#, fuzzy, c-format
#| msgid "cannot read header"
msgid "cannot read program header"
msgstr "tidak dapat membaca header"
-#: elf/pldd-xx.c:135
+#: elf/pldd-xx.c:128
#, fuzzy, c-format
#| msgid "object file has no dynamic section"
msgid "cannot read dynamic section"
msgstr "berkas objek tidak memiliki bagian dinamis"
-#: elf/pldd-xx.c:147
+#: elf/pldd-xx.c:137
#, fuzzy, c-format
#| msgid "cannot read header"
msgid "cannot read r_debug"
msgstr "tidak dapat membaca header"
-#: elf/pldd-xx.c:167
+#: elf/pldd-xx.c:154
#, fuzzy, c-format
#| msgid "cannot read archive header"
msgid "cannot read program interpreter"
msgstr "tidak dapat membaca archive header"
-#: elf/pldd-xx.c:197
+#: elf/pldd-xx.c:183
#, fuzzy, c-format
#| msgid "cannot read file data"
msgid "cannot read link map"
msgstr "tidak dapat membaca berkas data"
-#: elf/pldd-xx.c:209
+#: elf/pldd-xx.c:190
#, fuzzy, c-format
#| msgid "cannot read header"
msgid "cannot read object name"
msgstr "tidak dapat membaca header"
-#: elf/pldd-xx.c:219
+#: elf/pldd-xx.c:197
#, fuzzy, c-format
#| msgid "cannot allocate memory for program header"
msgid "cannot allocate buffer for object name"
msgstr "tidak dapat mengalokasikan memori untuk aplikasi header"
-#: elf/pldd.c:64
+#: elf/pldd.c:58
msgid "List dynamic shared objects loaded into process."
msgstr ""
-#: elf/pldd.c:68
+#: elf/pldd.c:62
msgid "PID"
msgstr ""
-#: elf/pldd.c:100
+#: elf/pldd.c:89
#, c-format
msgid "Exactly one parameter with process ID required.\n"
msgstr ""
-#: elf/pldd.c:112
+#: elf/pldd.c:103
#, fuzzy, c-format
#| msgid "invalid pointer size"
msgid "invalid process ID '%s'"
msgstr "ukuran penunjuk tidak valid"
-#: elf/pldd.c:120
+#: elf/pldd.c:111
#, fuzzy, c-format
#| msgid "cannot open `%s'"
msgid "cannot open %s"
msgstr "tidak dapat membuka `%s'"
-#: elf/pldd.c:152
+#: elf/pldd.c:142
#, fuzzy, c-format
#| msgid "cannot open `%s'"
msgid "cannot open %s/task"
msgstr "tidak dapat membuka `%s'"
-#: elf/pldd.c:155
+#: elf/pldd.c:145
#, fuzzy, c-format
#| msgid "cannot create searchlist"
msgid "cannot prepare reading %s/task"
msgstr "tidak dapat membuat daftar pencarian"
-#: elf/pldd.c:168
+#: elf/pldd.c:158
#, fuzzy, c-format
#| msgid "invalid ELF header"
msgid "invalid thread ID '%s'"
msgstr "header ELF tidak valid"
-#: elf/pldd.c:179
+#: elf/pldd.c:169
#, fuzzy, c-format
#| msgid "cannot access '%s'"
msgid "cannot attach to process %lu"
msgstr "tidak dapat mengakses '%s'"
-#: elf/pldd.c:294
+#: elf/pldd.c:184
+#, fuzzy, c-format
+#| msgid "invalid saved time"
+msgid "no valid %s/task entries"
+msgstr "waktu disimpan tidak valid"
+
+#: elf/pldd.c:290
#, c-format
msgid "cannot get information about process %lu"
msgstr ""
-#: elf/pldd.c:307
+#: elf/pldd.c:303
#, c-format
msgid "process %lu is no ELF program"
msgstr ""
@@ -1423,7 +1427,7 @@ msgstr "Informasi:"
msgid "list all known coded character sets"
msgstr "daftar seluruh kode karakter set yang dikenal"
-#: iconv/iconv_prog.c:64 locale/programs/localedef.c:120
+#: iconv/iconv_prog.c:64 locale/programs/localedef.c:124
msgid "Output control:"
msgstr "Pengontrol keluaran:"
@@ -1432,8 +1436,8 @@ msgid "omit invalid characters from output"
msgstr "abaikan karakter tidak valid dari keluaran"
#: iconv/iconv_prog.c:66 iconv/iconvconfig.c:128
-#: locale/programs/localedef.c:113 locale/programs/localedef.c:115
-#: locale/programs/localedef.c:117 locale/programs/localedef.c:144
+#: locale/programs/localedef.c:117 locale/programs/localedef.c:119
+#: locale/programs/localedef.c:121 locale/programs/localedef.c:150
#: malloc/memusagestat.c:56
#, fuzzy
#| msgid "[FILE]"
@@ -1542,7 +1546,7 @@ msgstr "Buat berkas konfigurasi fastloading iconv modul."
msgid "[DIR...]"
msgstr "[DIR...]"
-#: iconv/iconvconfig.c:126 locale/programs/localedef.c:123
+#: iconv/iconvconfig.c:126 locale/programs/localedef.c:129
msgid "PATH"
msgstr ""
@@ -1729,14 +1733,14 @@ msgstr "set karakter dengan status terkunci tidak didukung"
#: locale/programs/charmap.c:503 locale/programs/charmap.c:557
#: locale/programs/charmap.c:589 locale/programs/charmap.c:683
-#: locale/programs/charmap.c:738 locale/programs/charmap.c:779
-#: locale/programs/charmap.c:820
+#: locale/programs/charmap.c:739 locale/programs/charmap.c:780
+#: locale/programs/charmap.c:821
#, c-format
msgid "syntax error in %s definition: %s"
msgstr "sintaks error dalam %s definisi: %s"
#: locale/programs/charmap.c:504 locale/programs/charmap.c:684
-#: locale/programs/charmap.c:780 locale/programs/repertoire.c:229
+#: locale/programs/charmap.c:781 locale/programs/repertoire.c:229
msgid "no symbolic name given"
msgstr "tidak ada nama simbolis yang diberikan"
@@ -1752,14 +1756,14 @@ msgstr "terlalu sedikit bytes dalam pengkodean karakter"
msgid "too many bytes in character encoding"
msgstr "terlalu banyak bytes dalam karakter pengkodean"
-#: locale/programs/charmap.c:591 locale/programs/charmap.c:739
-#: locale/programs/charmap.c:822 locale/programs/repertoire.c:295
+#: locale/programs/charmap.c:591 locale/programs/charmap.c:740
+#: locale/programs/charmap.c:823 locale/programs/repertoire.c:295
msgid "no symbolic name given for end of range"
msgstr "tidak ada nama simbolis yang diberikan untuk akhir dari jangkauan"
#: locale/programs/charmap.c:615 locale/programs/ld-address.c:524
#: locale/programs/ld-collate.c:2616 locale/programs/ld-collate.c:3774
-#: locale/programs/ld-ctype.c:2117 locale/programs/ld-ctype.c:2829
+#: locale/programs/ld-ctype.c:2118 locale/programs/ld-ctype.c:2830
#: locale/programs/ld-identification.c:397
#: locale/programs/ld-measurement.c:213 locale/programs/ld-messages.c:295
#: locale/programs/ld-monetary.c:748 locale/programs/ld-name.c:262
@@ -1774,58 +1778,58 @@ msgstr "%1$s: definisi tidak berakhir dengan `END %1$s'"
msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
msgstr "hanya definisi WIDTH yang diijinkan untuk mengikuti definisi CHARMAP"
-#: locale/programs/charmap.c:656 locale/programs/charmap.c:719
+#: locale/programs/charmap.c:656 locale/programs/charmap.c:720
#, c-format
msgid "value for %s must be an integer"
msgstr "nilai untuk %s harus berupa sebuah integer"
-#: locale/programs/charmap.c:847
+#: locale/programs/charmap.c:848
#, c-format
msgid "%s: error in state machine"
msgstr "%s: error dalam mesin status"
-#: locale/programs/charmap.c:855 locale/programs/ld-address.c:540
+#: locale/programs/charmap.c:856 locale/programs/ld-address.c:540
#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967
-#: locale/programs/ld-ctype.c:2114 locale/programs/ld-ctype.c:2846
+#: locale/programs/ld-ctype.c:2115 locale/programs/ld-ctype.c:2847
#: locale/programs/ld-identification.c:413
#: locale/programs/ld-measurement.c:229 locale/programs/ld-messages.c:311
#: locale/programs/ld-monetary.c:764 locale/programs/ld-name.c:278
#: locale/programs/ld-numeric.c:341 locale/programs/ld-paper.c:228
#: locale/programs/ld-telephone.c:292 locale/programs/ld-time.c:990
-#: locale/programs/locfile.c:997 locale/programs/repertoire.c:323
+#: locale/programs/locfile.c:1010 locale/programs/repertoire.c:323
#, c-format
msgid "%s: premature end of file"
msgstr "%s: prematur akhir dari berkas"
-#: locale/programs/charmap.c:874 locale/programs/charmap.c:885
+#: locale/programs/charmap.c:875 locale/programs/charmap.c:886
#, c-format
msgid "unknown character `%s'"
msgstr "karakter `%s' tidak dikenal"
-#: locale/programs/charmap.c:893
+#: locale/programs/charmap.c:894
#, c-format
msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d"
msgstr "jumlah dari bytes untuk urutan byte dari awal dan akhir dari jangkauan tidak sama: %d vs %d"
-#: locale/programs/charmap.c:998 locale/programs/ld-collate.c:2893
+#: locale/programs/charmap.c:999 locale/programs/ld-collate.c:2893
#: locale/programs/repertoire.c:418
msgid "invalid names for character range"
msgstr "nama tidak valid untuk jangkauan karakter"
-#: locale/programs/charmap.c:1010 locale/programs/repertoire.c:430
+#: locale/programs/charmap.c:1011 locale/programs/repertoire.c:430
msgid "hexadecimal range format should use only capital characters"
msgstr "format jangkauan heksadesimal seharusnya hanya menggunakan huruf besar"
-#: locale/programs/charmap.c:1028 locale/programs/repertoire.c:448
+#: locale/programs/charmap.c:1029 locale/programs/repertoire.c:448
#, c-format
msgid "<%s> and <%s> are invalid names for range"
msgstr "<%s> dan <%s> nama tidak valid untuk jangkauan"
-#: locale/programs/charmap.c:1034 locale/programs/repertoire.c:455
+#: locale/programs/charmap.c:1035 locale/programs/repertoire.c:455
msgid "upper limit in range is smaller than lower limit"
msgstr "batas atas dalam jangkauan adalah lebih kecil daripada batas bawah"
-#: locale/programs/charmap.c:1092
+#: locale/programs/charmap.c:1093
msgid "resulting bytes for range not representable."
msgstr "menghasilkan bytes untuk jangkauan tidak dapat direpresentasikan."
@@ -1894,7 +1898,7 @@ msgid "%s: numeric country code `%d' not valid"
msgstr "%s: kode negara numerik `%d' tidak valid"
#: locale/programs/ld-address.c:432 locale/programs/ld-address.c:469
-#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2478
+#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2479
#: locale/programs/ld-identification.c:309
#: locale/programs/ld-measurement.c:196 locale/programs/ld-messages.c:264
#: locale/programs/ld-monetary.c:503 locale/programs/ld-monetary.c:538
@@ -1917,7 +1921,7 @@ msgid "%s: unknown character in field `%s'"
msgstr "%s: karakter dalam daerah `%s' tidak dikenal"
#: locale/programs/ld-address.c:521 locale/programs/ld-collate.c:3772
-#: locale/programs/ld-ctype.c:2826 locale/programs/ld-identification.c:394
+#: locale/programs/ld-ctype.c:2827 locale/programs/ld-identification.c:394
#: locale/programs/ld-measurement.c:210 locale/programs/ld-messages.c:293
#: locale/programs/ld-monetary.c:746 locale/programs/ld-name.c:260
#: locale/programs/ld-numeric.c:323 locale/programs/ld-paper.c:210
@@ -1930,8 +1934,8 @@ msgstr "%s: tidak lengkap `END' baris"
#: locale/programs/ld-collate.c:602 locale/programs/ld-collate.c:898
#: locale/programs/ld-collate.c:911 locale/programs/ld-collate.c:2582
#: locale/programs/ld-collate.c:2603 locale/programs/ld-collate.c:3957
-#: locale/programs/ld-ctype.c:1846 locale/programs/ld-ctype.c:2104
-#: locale/programs/ld-ctype.c:2676 locale/programs/ld-ctype.c:2837
+#: locale/programs/ld-ctype.c:1847 locale/programs/ld-ctype.c:2105
+#: locale/programs/ld-ctype.c:2677 locale/programs/ld-ctype.c:2838
#: locale/programs/ld-identification.c:404
#: locale/programs/ld-measurement.c:220 locale/programs/ld-messages.c:302
#: locale/programs/ld-monetary.c:755 locale/programs/ld-name.c:269
@@ -2276,131 +2280,131 @@ msgstr "peta karakter `%s' telah terdefinisi"
msgid "implementation limit: no more than %d character maps allowed"
msgstr "batas implementasi: tidak lebih dari %d peta karakter diperbolehkan"
-#: locale/programs/ld-ctype.c:1434 locale/programs/ld-ctype.c:1559
-#: locale/programs/ld-ctype.c:1665 locale/programs/ld-ctype.c:2341
-#: locale/programs/ld-ctype.c:3299
+#: locale/programs/ld-ctype.c:1435 locale/programs/ld-ctype.c:1560
+#: locale/programs/ld-ctype.c:1666 locale/programs/ld-ctype.c:2342
+#: locale/programs/ld-ctype.c:3302
#, c-format
msgid "%s: field `%s' does not contain exactly ten entries"
msgstr "%s: daerah `%s' tidak berisi tepat sepuluh masukan"
-#: locale/programs/ld-ctype.c:1462 locale/programs/ld-ctype.c:2036
+#: locale/programs/ld-ctype.c:1463 locale/programs/ld-ctype.c:2037
#, c-format
msgid "to-value <U%0*X> of range is smaller than from-value <U%0*X>"
msgstr "ke-nilai <U%0*X> dari jangkauan adalah lebih kecil dari dari-nilai <U%0*X>"
-#: locale/programs/ld-ctype.c:1589
+#: locale/programs/ld-ctype.c:1590
msgid "start and end character sequence of range must have the same length"
msgstr "awal dan akhir urutan karakter dari jangkauan harus memiliki panjang yang sama"
-#: locale/programs/ld-ctype.c:1596
+#: locale/programs/ld-ctype.c:1597
msgid "to-value character sequence is smaller than from-value sequence"
msgstr "ke-nilai urutan karakter lebih kecil daripada urutan dari-nilai"
-#: locale/programs/ld-ctype.c:1956 locale/programs/ld-ctype.c:2007
+#: locale/programs/ld-ctype.c:1957 locale/programs/ld-ctype.c:2008
msgid "premature end of `translit_ignore' definition"
msgstr "prematur akhir dari `translit_ignore' definisi"
-#: locale/programs/ld-ctype.c:1962 locale/programs/ld-ctype.c:2013
-#: locale/programs/ld-ctype.c:2055
+#: locale/programs/ld-ctype.c:1963 locale/programs/ld-ctype.c:2014
+#: locale/programs/ld-ctype.c:2056
msgid "syntax error"
msgstr "sintaks error"
-#: locale/programs/ld-ctype.c:2188
+#: locale/programs/ld-ctype.c:2189
#, c-format
msgid "%s: syntax error in definition of new character class"
msgstr "%s: sintaks error dalam definisi dari kelas karakter baru"
-#: locale/programs/ld-ctype.c:2203
+#: locale/programs/ld-ctype.c:2204
#, c-format
msgid "%s: syntax error in definition of new character map"
msgstr "%s: sintaks error dalam definisi dari peta karakter baru"
-#: locale/programs/ld-ctype.c:2363
+#: locale/programs/ld-ctype.c:2364
msgid "ellipsis range must be marked by two operands of same type"
msgstr "jangkauan ellipsis harus ditandai dengan dua operan dari tipe yang sama"
-#: locale/programs/ld-ctype.c:2372
+#: locale/programs/ld-ctype.c:2373
msgid "with symbolic name range values the absolute ellipsis `...' must not be used"
msgstr "dengann nilai jangkauan nama simbol absolut ellipsis `...' tidak boleh digunakan"
-#: locale/programs/ld-ctype.c:2387
+#: locale/programs/ld-ctype.c:2388
msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'"
msgstr "dengan nilai jangkauan UCS salah satu harus menggunakan heksadesimal simbolis ellipsis `..'"
-#: locale/programs/ld-ctype.c:2401
+#: locale/programs/ld-ctype.c:2402
msgid "with character code range values one must use the absolute ellipsis `...'"
msgstr "dengan nilai jangkauan kode karakter salah satu harus menggunakan ellipsis absolut `...'"
-#: locale/programs/ld-ctype.c:2552
+#: locale/programs/ld-ctype.c:2553
#, c-format
msgid "duplicated definition for mapping `%s'"
msgstr "duplikasi definisi untuk pemetaan `%s'"
-#: locale/programs/ld-ctype.c:2638 locale/programs/ld-ctype.c:2782
+#: locale/programs/ld-ctype.c:2639 locale/programs/ld-ctype.c:2783
#, c-format
msgid "%s: `translit_start' section does not end with `translit_end'"
msgstr "%s: `translit_start' daerah tidak berakhir dengan `translit_end'"
-#: locale/programs/ld-ctype.c:2733
+#: locale/programs/ld-ctype.c:2734
#, c-format
msgid "%s: duplicate `default_missing' definition"
msgstr "%s: duplikasi `default_missing' definisi"
-#: locale/programs/ld-ctype.c:2738
+#: locale/programs/ld-ctype.c:2739
msgid "previous definition was here"
msgstr "definisi sebelumnya ada disini"
-#: locale/programs/ld-ctype.c:2760
+#: locale/programs/ld-ctype.c:2761
#, c-format
msgid "%s: no representable `default_missing' definition found"
msgstr "%s: tidak ada representasi `default_missing' definisi ditemukan"
-#: locale/programs/ld-ctype.c:2877 locale/programs/ld-ctype.c:2973
-#: locale/programs/ld-ctype.c:2992 locale/programs/ld-ctype.c:3012
-#: locale/programs/ld-ctype.c:3032 locale/programs/ld-ctype.c:3052
-#: locale/programs/ld-ctype.c:3072 locale/programs/ld-ctype.c:3111
-#: locale/programs/ld-ctype.c:3131 locale/programs/ld-ctype.c:3195
-#: locale/programs/ld-ctype.c:3236 locale/programs/ld-ctype.c:3259
+#: locale/programs/ld-ctype.c:2878 locale/programs/ld-ctype.c:2974
+#: locale/programs/ld-ctype.c:2993 locale/programs/ld-ctype.c:3013
+#: locale/programs/ld-ctype.c:3033 locale/programs/ld-ctype.c:3053
+#: locale/programs/ld-ctype.c:3073 locale/programs/ld-ctype.c:3112
+#: locale/programs/ld-ctype.c:3132 locale/programs/ld-ctype.c:3198
+#: locale/programs/ld-ctype.c:3239 locale/programs/ld-ctype.c:3262
#, c-format
msgid "%s: character `%s' not defined while needed as default value"
msgstr "%s: karakter `%s' tidak terdefinisi ketika dibutuhkan sebagai nilai default"
-#: locale/programs/ld-ctype.c:2882 locale/programs/ld-ctype.c:2978
-#: locale/programs/ld-ctype.c:2997 locale/programs/ld-ctype.c:3017
-#: locale/programs/ld-ctype.c:3037 locale/programs/ld-ctype.c:3057
-#: locale/programs/ld-ctype.c:3077 locale/programs/ld-ctype.c:3116
-#: locale/programs/ld-ctype.c:3136 locale/programs/ld-ctype.c:3200
+#: locale/programs/ld-ctype.c:2883 locale/programs/ld-ctype.c:2979
+#: locale/programs/ld-ctype.c:2998 locale/programs/ld-ctype.c:3018
+#: locale/programs/ld-ctype.c:3038 locale/programs/ld-ctype.c:3058
+#: locale/programs/ld-ctype.c:3078 locale/programs/ld-ctype.c:3117
+#: locale/programs/ld-ctype.c:3137 locale/programs/ld-ctype.c:3203
#, c-format
msgid "%s: character `%s' in charmap not representable with one byte"
msgstr "%s: karakter `%s' dalam charmap tidak dapat direpresentasikan dengan satu byte"
-#: locale/programs/ld-ctype.c:3242 locale/programs/ld-ctype.c:3265
+#: locale/programs/ld-ctype.c:3245 locale/programs/ld-ctype.c:3268
#, c-format
msgid "%s: character `%s' needed as default value not representable with one byte"
msgstr "%s: karakter `%s' dibutuhkan sebagai nilai baku tidak dapat direpresentasikan dengan satu byte"
-#: locale/programs/ld-ctype.c:3321
+#: locale/programs/ld-ctype.c:3324
msgid "no output digits defined and none of the standard names in the charmap"
msgstr "tidak ada keluaran digital terdefinisi dan tidak ada nama baku dalam charmaps"
-#: locale/programs/ld-ctype.c:3570
+#: locale/programs/ld-ctype.c:3573
#, c-format
msgid "%s: transliteration data from locale `%s' not available"
msgstr "%s: transliteration data dari lokal `%s' tidak tersedia"
-#: locale/programs/ld-ctype.c:3669
+#: locale/programs/ld-ctype.c:3672
#, fuzzy, c-format
#| msgid "%s: table for class \"%s\": %lu bytes\n"
msgid "%s: table for class \"%s\": %lu bytes"
msgstr "%s: tabel untuk kelas \"%s\": %lu bytes\n"
-#: locale/programs/ld-ctype.c:3733
+#: locale/programs/ld-ctype.c:3736
#, fuzzy, c-format
#| msgid "%s: table for map \"%s\": %lu bytes\n"
msgid "%s: table for map \"%s\": %lu bytes"
msgstr "%s: tabel untuk peta \"%s\": %lu bytes\n"
-#: locale/programs/ld-ctype.c:3857
+#: locale/programs/ld-ctype.c:3860
#, fuzzy, c-format
#| msgid "%s: table for width: %lu bytes\n"
msgid "%s: table for width: %lu bytes"
@@ -2644,124 +2648,119 @@ msgstr ""
"NAMA\n"
"[-a|-m]"
-#: locale/programs/locale.c:190
+#: locale/programs/locale.c:522
#, c-format
-msgid "Cannot set LC_CTYPE to default locale"
-msgstr "Tidak dapat menset lokal baku ke LC_CTYPE"
-
-#: locale/programs/locale.c:192
-#, c-format
-msgid "Cannot set LC_MESSAGES to default locale"
-msgstr "Tidak dapat menset lokal baku ke LC_MESSAGES"
-
-#: locale/programs/locale.c:205
-#, c-format
-msgid "Cannot set LC_COLLATE to default locale"
-msgstr "Tidak dapat menset lokal baku ke LC_COLLATE"
+msgid "while preparing output"
+msgstr "ketika menyiapkan keluaran"
-#: locale/programs/locale.c:221
-#, c-format
-msgid "Cannot set LC_ALL to default locale"
+#: locale/programs/locale.c:998
+#, fuzzy, c-format
+#| msgid "Cannot set LC_ALL to default locale"
+msgid "Cannot set %s to default locale"
msgstr "Tidak dapat menset lokal baku ke LC_ALL"
-#: locale/programs/locale.c:521
+#: locale/programs/locale.c:1096
#, c-format
-msgid "while preparing output"
-msgstr "ketika menyiapkan keluaran"
+msgid "warning: The LOCPATH variable is set to \"%s\"\n"
+msgstr ""
-#: locale/programs/localedef.c:112
+#: locale/programs/localedef.c:116
msgid "Input Files:"
msgstr "Berkas Masukan:"
-#: locale/programs/localedef.c:114
+#: locale/programs/localedef.c:118
msgid "Symbolic character names defined in FILE"
msgstr "Nama karakter simbolis didefinisikan dalam BERKAS"
-#: locale/programs/localedef.c:116
+#: locale/programs/localedef.c:120
msgid "Source definitions are found in FILE"
msgstr "Definisi sumber ditemukan dalam BERKAS"
-#: locale/programs/localedef.c:118
+#: locale/programs/localedef.c:122
msgid "FILE contains mapping from symbolic names to UCS4 values"
msgstr "BERKAS berisi pemetaan dari nama simbolis ke nilai UCS4"
-#: locale/programs/localedef.c:122
+#: locale/programs/localedef.c:126
msgid "Create output even if warning messages were issued"
msgstr "Membuat keluaran walaupun jika pesan peringatan diberikan"
-#: locale/programs/localedef.c:123
+#: locale/programs/localedef.c:128
+msgid "Do not create hard links between installed locales"
+msgstr ""
+
+#: locale/programs/localedef.c:129
msgid "Optional output file prefix"
msgstr "Awalan berkas keluaran opsional"
-#: locale/programs/localedef.c:124
+#: locale/programs/localedef.c:130
#, fuzzy
#| msgid "Be strictly POSIX conform"
msgid "Strictly conform to POSIX"
msgstr "Konform terhada POSIX secara patuh"
-#: locale/programs/localedef.c:126
+#: locale/programs/localedef.c:132
msgid "Suppress warnings and information messages"
msgstr "Tekan peringatan dan pesan informasi"
-#: locale/programs/localedef.c:127
+#: locale/programs/localedef.c:133
msgid "Print more messages"
msgstr "Tampilkan lebih banyak pesan"
-#: locale/programs/localedef.c:128 locale/programs/localedef.c:131
+#: locale/programs/localedef.c:134 locale/programs/localedef.c:137
#, fuzzy
#| msgid "warning: "
msgid "<warnings>"
msgstr "peringatan: "
-#: locale/programs/localedef.c:129
+#: locale/programs/localedef.c:135
msgid "Comma-separated list of warnings to disable; supported warnings are: ascii, intcurrsym"
msgstr ""
-#: locale/programs/localedef.c:132
+#: locale/programs/localedef.c:138
msgid "Comma-separated list of warnings to enable; supported warnings are: ascii, intcurrsym"
msgstr ""
-#: locale/programs/localedef.c:135
+#: locale/programs/localedef.c:141
msgid "Archive control:"
msgstr "Pengontrol archive:"
-#: locale/programs/localedef.c:137
+#: locale/programs/localedef.c:143
msgid "Don't add new data to archive"
msgstr "Jangan tambahkan data baru ke archive"
-#: locale/programs/localedef.c:139
+#: locale/programs/localedef.c:145
msgid "Add locales named by parameters to archive"
msgstr "Tambahkan nama lokal dengan parameter ke archive"
-#: locale/programs/localedef.c:140
+#: locale/programs/localedef.c:146
msgid "Replace existing archive content"
msgstr "Gantikan isi archive yang sudah ada"
-#: locale/programs/localedef.c:142
+#: locale/programs/localedef.c:148
msgid "Remove locales named by parameters from archive"
msgstr "Hapus lokal nama dengan parameter dari archive"
-#: locale/programs/localedef.c:143
+#: locale/programs/localedef.c:149
msgid "List content of archive"
msgstr "Daftar isi dari archive"
-#: locale/programs/localedef.c:145
+#: locale/programs/localedef.c:151
msgid "locale.alias file to consult when making archive"
msgstr "berkas locale.alias untuk konsultasi ketika membuat archive"
-#: locale/programs/localedef.c:147
+#: locale/programs/localedef.c:153
msgid "Generate little-endian output"
msgstr ""
-#: locale/programs/localedef.c:149
+#: locale/programs/localedef.c:155
msgid "Generate big-endian output"
msgstr ""
-#: locale/programs/localedef.c:154
+#: locale/programs/localedef.c:160
msgid "Compile locale specification"
msgstr "Kompile spesifikasi lokal"
-#: locale/programs/localedef.c:157
+#: locale/programs/localedef.c:163
msgid ""
"NAME\n"
"[--add-to-archive|--delete-from-archive] FILE...\n"
@@ -2771,33 +2770,33 @@ msgstr ""
"[--add-to-archive|--delete-from-archive] BERKAS...\n"
"--list-archive [BERKAS]"
-#: locale/programs/localedef.c:232
+#: locale/programs/localedef.c:238
#, c-format
msgid "cannot create directory for output files"
msgstr "tidak dapat membuat direktori untuk berkas keluaran"
-#: locale/programs/localedef.c:243
+#: locale/programs/localedef.c:249
msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
msgstr "FATAL: sistem tidak dapat mendefinisikan `_POSIX2_LOCALDEF'"
-#: locale/programs/localedef.c:257 locale/programs/localedef.c:273
-#: locale/programs/localedef.c:663 locale/programs/localedef.c:683
+#: locale/programs/localedef.c:263 locale/programs/localedef.c:279
+#: locale/programs/localedef.c:673 locale/programs/localedef.c:693
#, c-format
msgid "cannot open locale definition file `%s'"
msgstr "tidak dapat membuka berkas definisi lokal `%s'"
-#: locale/programs/localedef.c:297
+#: locale/programs/localedef.c:303
#, c-format
msgid "cannot write output files to `%s'"
msgstr "tidak dapat menulis berkas keluaran ke `%s'"
-#: locale/programs/localedef.c:303
+#: locale/programs/localedef.c:309
#, fuzzy
#| msgid "no output file produced because warnings were issued"
msgid "no output file produced because errors were issued"
msgstr "tidak ada berkas keluaran yang dihasilkan karena peringatan diberikan"
-#: locale/programs/localedef.c:431
+#: locale/programs/localedef.c:441
#, fuzzy, c-format
#| msgid ""
#| "System's directory for character maps : %s\n"
@@ -2815,11 +2814,11 @@ msgstr ""
" jalur lokal : %s\n"
"%s"
-#: locale/programs/localedef.c:631
+#: locale/programs/localedef.c:641
msgid "circular dependencies between locale definitions"
msgstr "circular ketergantungan diantara definisi lokal"
-#: locale/programs/localedef.c:637
+#: locale/programs/localedef.c:647
#, c-format
msgid "cannot add already read locale `%s' a second time"
msgstr "tidak dapat menambahkan lokal yang sudah dibaca `%s' untuk kedua kali"
@@ -2978,24 +2977,24 @@ msgstr "tidak dapat membuka berkas keluaran `%s' untuk kategori `%s'"
msgid "failure while writing data for category `%s'"
msgstr "gagal ketika menulis data untuk kategori `%s'"
-#: locale/programs/locfile.c:917
+#: locale/programs/locfile.c:930
#, c-format
msgid "cannot create output file `%s' for category `%s'"
msgstr "tidak dapat membuat berkas keluaran `%s' untuk kategori `%s'"
-#: locale/programs/locfile.c:953
+#: locale/programs/locfile.c:966
msgid "expecting string argument for `copy'"
msgstr "diduga argumen string untuk `copy'"
-#: locale/programs/locfile.c:957
+#: locale/programs/locfile.c:970
msgid "locale name should consist only of portable characters"
msgstr "nama lokal seharusnya hanya terdiri dari karakter portabel"
-#: locale/programs/locfile.c:976
+#: locale/programs/locfile.c:989
msgid "no other keyword shall be specified when `copy' is used"
msgstr "tidak ada kata-kunci lain yang akan dispesifikasikan ketika `copy' digunakan"
-#: locale/programs/locfile.c:990
+#: locale/programs/locfile.c:1003
#, c-format
msgid "`%1$s' definition does not end with `END %1$s'"
msgstr "`%1$s' definisi tidak berakhir dengan `END %1$s'"
@@ -3835,12 +3834,12 @@ msgstr "yp_update: tidak dapat mengubah host ke netname\n"
msgid "yp_update: cannot get server address\n"
msgstr "yp_update: tidak dapat memperoleh alamat server\n"
-#: nscd/aicache.c:83 nscd/hstcache.c:452
+#: nscd/aicache.c:82 nscd/hstcache.c:452
#, c-format
msgid "Haven't found \"%s\" in hosts cache!"
msgstr "Belum ditemukan \"%s\" dalam cache host!"
-#: nscd/aicache.c:85 nscd/hstcache.c:454
+#: nscd/aicache.c:84 nscd/hstcache.c:454
#, c-format
msgid "Reloading \"%s\" in hosts cache!"
msgstr "Reloading \"%s\" dalam cache host !"
@@ -4167,25 +4166,25 @@ msgstr "dibebaskan %zu bytes dalam %s cache"
msgid "no more memory for database '%s'"
msgstr "tidak ada memori lagi untuk basis data '%s'"
-#: nscd/netgroupcache.c:121
+#: nscd/netgroupcache.c:122
#, fuzzy, c-format
#| msgid "Haven't found \"%s\" in group cache!"
msgid "Haven't found \"%s\" in netgroup cache!"
msgstr "Belum ditemukan \"%s\" dalam grup cache!"
-#: nscd/netgroupcache.c:123
+#: nscd/netgroupcache.c:124
#, fuzzy, c-format
#| msgid "Reloading \"%s\" in group cache!"
msgid "Reloading \"%s\" in netgroup cache!"
msgstr "Reloading \"%s\" dalam grup cache!"
-#: nscd/netgroupcache.c:469
+#: nscd/netgroupcache.c:470
#, fuzzy, c-format
#| msgid "Haven't found \"%s\" in group cache!"
msgid "Haven't found \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr "Belum ditemukan \"%s\" dalam grup cache!"
-#: nscd/netgroupcache.c:472
+#: nscd/netgroupcache.c:473
#, fuzzy, c-format
#| msgid "Reloading \"%s\" in group cache!"
msgid "Reloading \"%s (%s,%s,%s)\" in netgroup cache!"
@@ -4239,7 +4238,7 @@ msgstr "Gunakan pemisah cache untuk setiap pengguna"
msgid "Name Service Cache Daemon."
msgstr "Cache Layanan Pengguna Daemon."
-#: nscd/nscd.c:155 nss/getent.c:967 nss/makedb.c:206
+#: nscd/nscd.c:155 nss/getent.c:987 nss/makedb.c:206
#, c-format
msgid "wrong number of arguments"
msgstr "jumlah salah dari argumen"
@@ -4345,27 +4344,27 @@ msgstr "Parse error: %s"
msgid "Must specify user name for server-user option"
msgstr "Harus menspesifikasikan nama pengguna untuk pilihan server-pengguna"
-#: nscd/nscd_conf.c:198
+#: nscd/nscd_conf.c:201
#, c-format
msgid "Must specify user name for stat-user option"
msgstr "Harus menspesifikasikan nama pengguna untuk pilihan stat-user"
-#: nscd/nscd_conf.c:255
+#: nscd/nscd_conf.c:259
#, c-format
msgid "Must specify value for restart-interval option"
msgstr "Harus menspesifikasikan nilai untuk pilihan restart-interval"
-#: nscd/nscd_conf.c:269
+#: nscd/nscd_conf.c:273
#, c-format
msgid "Unknown option: %s %s %s"
msgstr "Pilihan tidak dikenal: %s %s %s"
-#: nscd/nscd_conf.c:282
+#: nscd/nscd_conf.c:286
#, c-format
msgid "cannot get current working directory: %s; disabling paranoia mode"
msgstr "tidak dapat memperoleh direktori kerja sekarang: %s; menonaktifkan mode paranoia"
-#: nscd/nscd_conf.c:302
+#: nscd/nscd_conf.c:306
#, c-format
msgid "maximum file size for %s database too small"
msgstr "ukuran berkas maksimal untuk %s basis data terlalu kecil"
@@ -4636,49 +4635,49 @@ msgstr "Belum ditemukan \"%s\" dalam layanan cache!"
msgid "Reloading \"%s\" in services cache!"
msgstr "Reloading \"%s\" dalam layanan cache!"
-#: nss/getent.c:54
+#: nss/getent.c:55
msgid "database [key ...]"
msgstr "basis data [kunci ...]"
-#: nss/getent.c:59
+#: nss/getent.c:60
#, fuzzy
#| msgid "CONF"
msgid "CONFIG"
msgstr "CONF"
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "Service configuration to be used"
msgstr "Konfigurasi layanan yang akan digunakan"
-#: nss/getent.c:60
+#: nss/getent.c:61
msgid "disable IDN encoding"
msgstr ""
-#: nss/getent.c:65
+#: nss/getent.c:66
msgid "Get entries from administrative database."
msgstr "Dapatkan masukan dari basis data administrasi."
-#: nss/getent.c:149 nss/getent.c:442 nss/getent.c:489
+#: nss/getent.c:150 nss/getent.c:462 nss/getent.c:509
#, c-format
msgid "Enumeration not supported on %s\n"
msgstr "Enumerasi tidak didukung di %s\n"
-#: nss/getent.c:497 nss/getent.c:510
+#: nss/getent.c:517 nss/getent.c:530
#, fuzzy, c-format
#| msgid "Could not create log file"
msgid "Could not allocate group list: %m\n"
msgstr "Tidak dapat membuat berkas log"
-#: nss/getent.c:881
+#: nss/getent.c:901
#, c-format
msgid "Unknown database name"
msgstr "Nama basis data tidak dikenal"
-#: nss/getent.c:911
+#: nss/getent.c:931
msgid "Supported databases:\n"
msgstr "Basis data yang didukung:\n"
-#: nss/getent.c:977
+#: nss/getent.c:997
#, c-format
msgid "Unknown database: %s\n"
msgstr "Basis data tidak dikenal: %s\n"
@@ -4952,11 +4951,11 @@ msgstr "Ekspresi regular terlalu besar"
msgid "Unmatched ) or \\)"
msgstr "Tidak cocok ) atau \\)"
-#: posix/regcomp.c:689
+#: posix/regcomp.c:676
msgid "No previous regular expression"
msgstr "Tidak ada ekspresi regular sebelumnya"
-#: posix/wordexp.c:1815
+#: posix/wordexp.c:1816
msgid "parameter null or not set"
msgstr "parameter kosong atau tidak diset"
@@ -5179,7 +5178,7 @@ msgstr "Tidak ada ruang penyangga yang tersedia"
msgid "Input message available"
msgstr "Tidak ada ruang penyangga yang tersedia"
-#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:381 timezone/zic.c:520
+#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:375 timezone/zic.c:561
#, fuzzy
#| msgid "Remote I/O error"
msgid "I/O error"
@@ -5267,7 +5266,7 @@ msgstr "Sinyal %d tidak dikenal"
#: sunrpc/auth_unix.c:112 sunrpc/clnt_tcp.c:124 sunrpc/clnt_udp.c:139
#: sunrpc/clnt_unix.c:125 sunrpc/svc_tcp.c:189 sunrpc/svc_tcp.c:233
#: sunrpc/svc_udp.c:161 sunrpc/svc_unix.c:189 sunrpc/svc_unix.c:229
-#: sunrpc/xdr.c:628 sunrpc/xdr.c:788 sunrpc/xdr_array.c:102
+#: sunrpc/xdr.c:631 sunrpc/xdr.c:791 sunrpc/xdr_array.c:102
#: sunrpc/xdr_rec.c:153 sunrpc/xdr_ref.c:79
msgid "out of memory\n"
msgstr "kehabisan memori\n"
@@ -6527,56 +6526,69 @@ msgid "You really blew it this time"
msgstr "Anda benar benar menghancurkannya saat ini"
#. TRANS Go home and have a glass of warm, dairy-fresh milk.
-#: sysdeps/gnu/errlist.c:978
+#. TRANS @c Okay. Since you are dying to know, I'll tell you.
+#. TRANS @c This is a joke, obviously. There is a children's song which begins,
+#. TRANS @c "Old McDonald had a farm, e-i-e-i-o." Every time I see the (real)
+#. TRANS @c errno macro EIO, I think about that song. Probably most of my
+#. TRANS @c compatriots who program on Unix do, too. One of them must have stayed
+#. TRANS @c up a little too late one night and decided to add it to Hurd or Glibc.
+#. TRANS @c Whoever did it should be castigated, but it made me laugh.
+#. TRANS @c --jtobey@channel1.com
+#. TRANS @c
+#. TRANS @c "bought the farm" means "died". -jtobey
+#. TRANS @c
+#. TRANS @c Translators, please do not translate this litteraly, translate it into
+#. TRANS @c an idiomatic funny way of saying that the computer died.
+#: sysdeps/gnu/errlist.c:991
msgid "Computer bought the farm"
msgstr "Komputer membeli perkebunan"
#. TRANS This error code has no purpose.
-#: sysdeps/gnu/errlist.c:987
+#: sysdeps/gnu/errlist.c:1000
msgid "Gratuitous error"
msgstr "Gratuitous error"
-#: sysdeps/gnu/errlist.c:995
+#: sysdeps/gnu/errlist.c:1008
msgid "Bad message"
msgstr "Pesan buruk"
-#: sysdeps/gnu/errlist.c:1003
+#: sysdeps/gnu/errlist.c:1016
msgid "Identifier removed"
msgstr "Identifier dihapus"
-#: sysdeps/gnu/errlist.c:1011
+#: sysdeps/gnu/errlist.c:1024
msgid "Multihop attempted"
msgstr "Mencoba multihop"
-#: sysdeps/gnu/errlist.c:1019
+#: sysdeps/gnu/errlist.c:1032
msgid "No data available"
msgstr "Tidak ada data yang tersedia"
-#: sysdeps/gnu/errlist.c:1027
+#: sysdeps/gnu/errlist.c:1040
msgid "Link has been severed"
msgstr "Sambungan telah rusak"
-#: sysdeps/gnu/errlist.c:1035
+#: sysdeps/gnu/errlist.c:1048
msgid "No message of desired type"
msgstr "Tidak ada pesan dari tipe yang diinginkan"
-#: sysdeps/gnu/errlist.c:1043
+#: sysdeps/gnu/errlist.c:1056
msgid "Out of streams resources"
msgstr "Kehabisan sumber daya stream"
-#: sysdeps/gnu/errlist.c:1051
+#: sysdeps/gnu/errlist.c:1064
msgid "Device not a stream"
msgstr "Perangkat bukan sebuah stream"
-#: sysdeps/gnu/errlist.c:1059
+#: sysdeps/gnu/errlist.c:1072
msgid "Value too large for defined data type"
msgstr "Nilai terlalu besar untuk tipe data yang didefinisikan"
-#: sysdeps/gnu/errlist.c:1067
+#: sysdeps/gnu/errlist.c:1080
msgid "Protocol error"
msgstr "Protokol error"
-#: sysdeps/gnu/errlist.c:1075
+#: sysdeps/gnu/errlist.c:1088
msgid "Timer expired"
msgstr "Pewaktu ekspired"
@@ -6584,197 +6596,197 @@ msgstr "Pewaktu ekspired"
#. TRANS completed. @xref{Asynchronous I/O}. When you call @code{aio_cancel},
#. TRANS the normal result is for the operations affected to complete with this
#. TRANS error; @pxref{Cancel AIO Operations}.
-#: sysdeps/gnu/errlist.c:1087
+#: sysdeps/gnu/errlist.c:1100
msgid "Operation canceled"
msgstr "Operasi dibatalkan"
-#: sysdeps/gnu/errlist.c:1095
+#: sysdeps/gnu/errlist.c:1108
msgid "Owner died"
msgstr "Pemilik meninggal"
-#: sysdeps/gnu/errlist.c:1103
+#: sysdeps/gnu/errlist.c:1116
msgid "State not recoverable"
msgstr "Status tidak dapat direkover"
-#: sysdeps/gnu/errlist.c:1111
+#: sysdeps/gnu/errlist.c:1124
msgid "Interrupted system call should be restarted"
msgstr "Pemanggilan sistem terinterupsi seharusnya diulang"
-#: sysdeps/gnu/errlist.c:1119
+#: sysdeps/gnu/errlist.c:1132
msgid "Channel number out of range"
msgstr "Jumlah channel diluar dari jangkauan"
-#: sysdeps/gnu/errlist.c:1127
+#: sysdeps/gnu/errlist.c:1140
msgid "Level 2 not synchronized"
msgstr "Tingkat 2 tidak tersinkron"
-#: sysdeps/gnu/errlist.c:1135
+#: sysdeps/gnu/errlist.c:1148
msgid "Level 3 halted"
msgstr "Tingkat 3 berhenti"
-#: sysdeps/gnu/errlist.c:1143
+#: sysdeps/gnu/errlist.c:1156
msgid "Level 3 reset"
msgstr "Tingkat 3 reset"
-#: sysdeps/gnu/errlist.c:1151
+#: sysdeps/gnu/errlist.c:1164
msgid "Link number out of range"
msgstr "Jumlah sambungan diluar dari jangkauan"
-#: sysdeps/gnu/errlist.c:1159
+#: sysdeps/gnu/errlist.c:1172
msgid "Protocol driver not attached"
msgstr "Driver protokol tidak terpasang"
-#: sysdeps/gnu/errlist.c:1167
+#: sysdeps/gnu/errlist.c:1180
msgid "No CSI structure available"
msgstr "Tidak ada struktur CSI yang tersedia"
-#: sysdeps/gnu/errlist.c:1175
+#: sysdeps/gnu/errlist.c:1188
msgid "Level 2 halted"
msgstr "Tingkat 2 berhenti"
-#: sysdeps/gnu/errlist.c:1183
+#: sysdeps/gnu/errlist.c:1196
msgid "Invalid exchange"
msgstr "Pertukaran tidak valid"
-#: sysdeps/gnu/errlist.c:1191
+#: sysdeps/gnu/errlist.c:1204
msgid "Invalid request descriptor"
msgstr "Deskripsi permintaan tidak valid"
-#: sysdeps/gnu/errlist.c:1199
+#: sysdeps/gnu/errlist.c:1212
msgid "Exchange full"
msgstr "Pertukaran penuh"
-#: sysdeps/gnu/errlist.c:1207
+#: sysdeps/gnu/errlist.c:1220
msgid "No anode"
msgstr "Bukan anode"
-#: sysdeps/gnu/errlist.c:1215
+#: sysdeps/gnu/errlist.c:1228
msgid "Invalid request code"
msgstr "Permintaan kode tidak valid"
-#: sysdeps/gnu/errlist.c:1223
+#: sysdeps/gnu/errlist.c:1236
msgid "Invalid slot"
msgstr "Slot tidak valid"
-#: sysdeps/gnu/errlist.c:1231
+#: sysdeps/gnu/errlist.c:1244
msgid "File locking deadlock error"
msgstr "Penguncian berkas deadlock error"
-#: sysdeps/gnu/errlist.c:1239
+#: sysdeps/gnu/errlist.c:1252
msgid "Bad font file format"
msgstr "Format berkas font buruk"
-#: sysdeps/gnu/errlist.c:1247
+#: sysdeps/gnu/errlist.c:1260
msgid "Machine is not on the network"
msgstr "Mesin tidak dalam jaringan"
-#: sysdeps/gnu/errlist.c:1255
+#: sysdeps/gnu/errlist.c:1268
msgid "Package not installed"
msgstr "Paket tidak terpasang"
-#: sysdeps/gnu/errlist.c:1263
+#: sysdeps/gnu/errlist.c:1276
msgid "Advertise error"
msgstr "Advertise error"
-#: sysdeps/gnu/errlist.c:1271
+#: sysdeps/gnu/errlist.c:1284
msgid "Srmount error"
msgstr "Srmount error"
-#: sysdeps/gnu/errlist.c:1279
+#: sysdeps/gnu/errlist.c:1292
msgid "Communication error on send"
msgstr "Komunikasi error dalam pengiriman"
-#: sysdeps/gnu/errlist.c:1287
+#: sysdeps/gnu/errlist.c:1300
msgid "RFS specific error"
msgstr "RFS spesifik error"
-#: sysdeps/gnu/errlist.c:1295
+#: sysdeps/gnu/errlist.c:1308
msgid "Name not unique on network"
msgstr "Nama tidak unik di network"
-#: sysdeps/gnu/errlist.c:1303
+#: sysdeps/gnu/errlist.c:1316
msgid "File descriptor in bad state"
msgstr "Deskripsi berkas dalam keadaan buruk"
-#: sysdeps/gnu/errlist.c:1311
+#: sysdeps/gnu/errlist.c:1324
msgid "Remote address changed"
msgstr "Alamat remote berubah"
-#: sysdeps/gnu/errlist.c:1319
+#: sysdeps/gnu/errlist.c:1332
msgid "Can not access a needed shared library"
msgstr "Tidak dapat mengakses sebuah perpustakaan terbagi yang dibutuhkan"
-#: sysdeps/gnu/errlist.c:1327
+#: sysdeps/gnu/errlist.c:1340
msgid "Accessing a corrupted shared library"
msgstr "Mengakses sebuah perpustakaan terbagi terkorupsi"
-#: sysdeps/gnu/errlist.c:1335
+#: sysdeps/gnu/errlist.c:1348
msgid ".lib section in a.out corrupted"
msgstr "daerah .lib dalam a.out terkorupsi"
-#: sysdeps/gnu/errlist.c:1343
+#: sysdeps/gnu/errlist.c:1356
msgid "Attempting to link in too many shared libraries"
msgstr "Mencoba menyambukan dalam terlalu banyak perpustakaan terbagi"
-#: sysdeps/gnu/errlist.c:1351
+#: sysdeps/gnu/errlist.c:1364
msgid "Cannot exec a shared library directly"
msgstr "Tidak dapat exec sebuah perpustakaan terbagi secara langsung"
-#: sysdeps/gnu/errlist.c:1359
+#: sysdeps/gnu/errlist.c:1372
msgid "Streams pipe error"
msgstr "Pipa streams error"
-#: sysdeps/gnu/errlist.c:1367
+#: sysdeps/gnu/errlist.c:1380
msgid "Structure needs cleaning"
msgstr "Struktur membutuhkan pembersihan"
-#: sysdeps/gnu/errlist.c:1375
+#: sysdeps/gnu/errlist.c:1388
msgid "Not a XENIX named type file"
msgstr "Bukan sebuah tipe berkas XENIX"
-#: sysdeps/gnu/errlist.c:1383
+#: sysdeps/gnu/errlist.c:1396
msgid "No XENIX semaphores available"
msgstr "Tidak ada XENIX semaphores tersedia"
-#: sysdeps/gnu/errlist.c:1391
+#: sysdeps/gnu/errlist.c:1404
msgid "Is a named type file"
msgstr "Bukan sebuah tipe berkas bernama"
-#: sysdeps/gnu/errlist.c:1399
+#: sysdeps/gnu/errlist.c:1412
msgid "Remote I/O error"
msgstr "Remote I/O error"
-#: sysdeps/gnu/errlist.c:1407
+#: sysdeps/gnu/errlist.c:1420
msgid "No medium found"
msgstr "Tidak ada medium ditemukan"
-#: sysdeps/gnu/errlist.c:1415
+#: sysdeps/gnu/errlist.c:1428
msgid "Wrong medium type"
msgstr "Tipe medium salah"
-#: sysdeps/gnu/errlist.c:1423
+#: sysdeps/gnu/errlist.c:1436
msgid "Required key not available"
msgstr "Kunci yang dibutuhkan tidak tersedia"
-#: sysdeps/gnu/errlist.c:1431
+#: sysdeps/gnu/errlist.c:1444
msgid "Key has expired"
msgstr "Kunci telah ekspired"
-#: sysdeps/gnu/errlist.c:1439
+#: sysdeps/gnu/errlist.c:1452
msgid "Key has been revoked"
msgstr "Kunci telah direvok"
-#: sysdeps/gnu/errlist.c:1447
+#: sysdeps/gnu/errlist.c:1460
msgid "Key was rejected by service"
msgstr "Kunci telah ditolah oleh layanan"
-#: sysdeps/gnu/errlist.c:1455
+#: sysdeps/gnu/errlist.c:1468
#, fuzzy
#| msgid "Operation not permitted"
msgid "Operation not possible due to RF-kill"
msgstr "Operasi tidak diijinkan"
-#: sysdeps/gnu/errlist.c:1463
+#: sysdeps/gnu/errlist.c:1476
msgid "Memory page has hardware error"
msgstr ""
@@ -6903,31 +6915,31 @@ msgstr ""
msgid "can't disable CET"
msgstr ""
-#: timezone/zdump.c:338
+#: timezone/zdump.c:332
#, fuzzy
#| msgid "has fewer than 3 alphabetics"
msgid "has fewer than 3 characters"
msgstr "memiliki lebih kecil dari 3 alphabet"
-#: timezone/zdump.c:340
+#: timezone/zdump.c:334
#, fuzzy
#| msgid "has more than 6 alphabetics"
msgid "has more than 6 characters"
msgstr "lebih dari 6 alphabet"
-#: timezone/zdump.c:342
+#: timezone/zdump.c:336
msgid "has characters other than ASCII alphanumerics, '-' or '+'"
msgstr ""
-#: timezone/zdump.c:347
+#: timezone/zdump.c:341
#, c-format
msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n"
msgstr "%s: peringatan: daerah \"%s\" kependekan \"%s\" %s\n"
-#: timezone/zdump.c:393
+#: timezone/zdump.c:387
#, c-format
msgid ""
-"%s: usage: %s OPTIONS ZONENAME ...\n"
+"%s: usage: %s OPTIONS TIMEZONE ...\n"
"Options include:\n"
" -c [L,]U Start at year L (default -500), end before year U (default 2500)\n"
" -t [L,]U Start at time L, end before time U (in seconds since 1970)\n"
@@ -6940,52 +6952,58 @@ msgid ""
"Report bugs to %s.\n"
msgstr ""
-#: timezone/zdump.c:479
+#: timezone/zdump.c:473
#, c-format
msgid "%s: wild -c argument %s\n"
msgstr "%s: argumen -c ganas %s\n"
-#: timezone/zdump.c:512
+#: timezone/zdump.c:506
#, fuzzy, c-format
#| msgid "%s: wild -c argument %s\n"
msgid "%s: wild -t argument %s\n"
msgstr "%s: argumen -c ganas %s\n"
-#: timezone/zic.c:398
+#: timezone/zic.c:429
#, c-format
msgid "%s: Memory exhausted: %s\n"
msgstr "%s: Kehabisan memori: %s\n"
-#: timezone/zic.c:406
+#: timezone/zic.c:437
#, fuzzy
#| msgid "time overflow"
msgid "size overflow"
msgstr "waktu overflow"
-#: timezone/zic.c:454
+#: timezone/zic.c:447
+#, fuzzy
+#| msgid "time overflow"
+msgid "alignment overflow"
+msgstr "waktu overflow"
+
+#: timezone/zic.c:495
#, fuzzy
#| msgid "time overflow"
msgid "integer overflow"
msgstr "waktu overflow"
-#: timezone/zic.c:488
+#: timezone/zic.c:529
#, fuzzy, c-format
#| msgid "\"%s\", line %d: %s"
msgid "\"%s\", line %<PRIdMAX>: "
msgstr "\"%s\", baris %d: %s"
-#: timezone/zic.c:491
+#: timezone/zic.c:532
#, fuzzy, c-format
#| msgid " (rule from \"%s\", line %d)"
msgid " (rule from \"%s\", line %<PRIdMAX>)"
msgstr " (aturan dari \"%s\", baris %d)"
-#: timezone/zic.c:510
+#: timezone/zic.c:551
#, c-format
msgid "warning: "
msgstr "peringatan: "
-#: timezone/zic.c:535
+#: timezone/zic.c:576
#, fuzzy, c-format
#| msgid ""
#| "%s: usage is %s [ --version ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n"
@@ -6993,411 +7011,434 @@ msgstr "peringatan: "
msgid ""
"%s: usage is %s [ --version ] [ --help ] [ -v ] \\\n"
"\t[ -l localtime ] [ -p posixrules ] [ -d directory ] \\\n"
-"\t[ -L leapseconds ] [ filename ... ]\n"
+"\t[ -t localtime-link ] [ -L leapseconds ] [ filename ... ]\n"
"\n"
"Report bugs to %s.\n"
msgstr ""
"%s: penggunaan adalah %s [ --version ] [ -v ] [ -l waktu-lokal ] [ -p posixrules ] \\\n"
"\t[ -d direktori ] [ -L leapseconds ] [ -y tahun-adalah-tipe ] [ nama-berkas ... ]\n"
-#: timezone/zic.c:558
+#: timezone/zic.c:599
#, fuzzy, c-format
#| msgid "%s: Can't create %s: %s\n"
msgid "%s: Can't chdir to %s: %s\n"
msgstr "%s: Tidak dapat membuat %s: %s\n"
-#: timezone/zic.c:590
+#: timezone/zic.c:632
msgid "wild compilation-time specification of zic_t"
msgstr "spesifikasi waktu-kompilasi ganas dari zic_t"
-#: timezone/zic.c:610
+#: timezone/zic.c:652
#, c-format
msgid "%s: More than one -d option specified\n"
msgstr "%s: Lebih dari satu pilihan -d dispesifikasikan\n"
-#: timezone/zic.c:620
+#: timezone/zic.c:662
#, c-format
msgid "%s: More than one -l option specified\n"
msgstr "%s: Lebih dari satu pilihan -l dispesifikasikan\n"
-#: timezone/zic.c:630
+#: timezone/zic.c:672
#, c-format
msgid "%s: More than one -p option specified\n"
msgstr "%s: Lebih dari satu pilihan -p dispesifikasikan\n"
-#: timezone/zic.c:640
+#: timezone/zic.c:680
+#, fuzzy, c-format
+#| msgid "%s: More than one -d option specified\n"
+msgid "%s: More than one -t option specified\n"
+msgstr "%s: Lebih dari satu pilihan -d dispesifikasikan\n"
+
+#: timezone/zic.c:689
+msgid "-y is obsolescent"
+msgstr ""
+
+#: timezone/zic.c:693
#, c-format
msgid "%s: More than one -y option specified\n"
msgstr "%s: Lebih dari satu pilihan -y dispesifikasikan\n"
-#: timezone/zic.c:650
+#: timezone/zic.c:703
#, c-format
msgid "%s: More than one -L option specified\n"
msgstr "%s: Lebih dari satu pilihan -L dispesifikasikan\n"
-#: timezone/zic.c:659
+#: timezone/zic.c:712
msgid "-s ignored"
msgstr ""
-#: timezone/zic.c:698
+#: timezone/zic.c:753
msgid "link to link"
msgstr "link ke link"
-#: timezone/zic.c:701 timezone/zic.c:705
+#: timezone/zic.c:756 timezone/zic.c:760
#, fuzzy
#| msgid "Too many links"
msgid "command line"
msgstr "Terlalu banyak sambungan"
-#: timezone/zic.c:721
+#: timezone/zic.c:776
msgid "empty file name"
msgstr ""
-#: timezone/zic.c:724
+#: timezone/zic.c:779
#, c-format
msgid "file name '%s' begins with '/'"
msgstr ""
-#: timezone/zic.c:734
+#: timezone/zic.c:789
#, c-format
msgid "file name '%s' contains '%.*s' component"
msgstr ""
-#: timezone/zic.c:740
+#: timezone/zic.c:795
#, c-format
msgid "file name '%s' component contains leading '-'"
msgstr ""
-#: timezone/zic.c:743
+#: timezone/zic.c:798
#, c-format
msgid "file name '%s' contains overlength component '%.*s...'"
msgstr ""
-#: timezone/zic.c:771
+#: timezone/zic.c:826
#, c-format
msgid "file name '%s' contains byte '%c'"
msgstr ""
-#: timezone/zic.c:772
+#: timezone/zic.c:827
#, c-format
msgid "file name '%s' contains byte '\\%o'"
msgstr ""
-#: timezone/zic.c:842
+#: timezone/zic.c:897
#, fuzzy, c-format
#| msgid "%s: Can't link from %s to %s: %s\n"
msgid "%s: link from %s/%s failed: %s\n"
msgstr "%s: Tidak dapat menghubungkan dari %s ke %s: %s\n"
-#: timezone/zic.c:852 timezone/zic.c:1815
+#: timezone/zic.c:907 timezone/zic.c:1876
#, fuzzy, c-format
#| msgid "%s: Can't remove %s: %s\n"
msgid "%s: Can't remove %s/%s: %s\n"
msgstr "%s: Tidak dapat menghapus %s: %s\n"
-#: timezone/zic.c:874
+#: timezone/zic.c:931
#, c-format
msgid "symbolic link used because hard link failed: %s"
msgstr ""
-#: timezone/zic.c:882
+#: timezone/zic.c:939
#, fuzzy, c-format
#| msgid "%s: Can't create %s: %s\n"
msgid "%s: Can't read %s/%s: %s\n"
msgstr "%s: Tidak dapat membuat %s: %s\n"
-#: timezone/zic.c:889 timezone/zic.c:1828
+#: timezone/zic.c:946 timezone/zic.c:1889
#, fuzzy, c-format
#| msgid "%s: Can't create %s: %s\n"
msgid "%s: Can't create %s/%s: %s\n"
msgstr "%s: Tidak dapat membuat %s: %s\n"
-#: timezone/zic.c:898
+#: timezone/zic.c:955
#, c-format
msgid "copy used because hard link failed: %s"
msgstr ""
-#: timezone/zic.c:901
+#: timezone/zic.c:958
#, c-format
msgid "copy used because symbolic link failed: %s"
msgstr ""
-#: timezone/zic.c:1013 timezone/zic.c:1015
+#: timezone/zic.c:1032 timezone/zic.c:1034
msgid "same rule name in multiple files"
msgstr "nama aturan sama dalam beberapa berkas"
-#: timezone/zic.c:1056
-msgid "unruly zone"
-msgstr "daerah unruly"
-
-#: timezone/zic.c:1063
+#: timezone/zic.c:1081
#, c-format
msgid "%s in ruleless zone"
msgstr "%s dalam daerah tidak beraturan"
-#: timezone/zic.c:1083
+#: timezone/zic.c:1101
msgid "standard input"
msgstr "masukan standar"
-#: timezone/zic.c:1088
+#: timezone/zic.c:1106
#, c-format
msgid "%s: Can't open %s: %s\n"
msgstr "%s: Tidak dapat membuka %s: %s\n"
-#: timezone/zic.c:1099
+#: timezone/zic.c:1117
msgid "line too long"
msgstr "baris terlalu panjang"
-#: timezone/zic.c:1119
+#: timezone/zic.c:1139
msgid "input line of unknown type"
msgstr "baris masukan dari tipe yang tidak dikenal"
-#: timezone/zic.c:1134
-#, fuzzy, c-format
-#| msgid "%s: Leap line in non leap seconds file %s\n"
-msgid "%s: Leap line in non leap seconds file %s"
-msgstr "%s: Baris leap dalam bukan leap detik berkas %s\n"
-
-#: timezone/zic.c:1142 timezone/zic.c:1547 timezone/zic.c:1569
+#: timezone/zic.c:1158 timezone/zic.c:1593 timezone/zic.c:1615
#, c-format
msgid "%s: panic: Invalid l_value %d\n"
msgstr "%s: panic: l_value %d tidak valid\n"
-#: timezone/zic.c:1151
+#: timezone/zic.c:1167
msgid "expected continuation line not found"
msgstr "diduga baris kelanjutan tidak ditemukan"
-#: timezone/zic.c:1193 timezone/zic.c:2976
+#: timezone/zic.c:1203
+#, fuzzy
+#| msgid "24:00 not handled by pre-1998 versions of zic"
+msgid "fractional seconds rejected by pre-2018 versions of zic"
+msgstr "24:00 tidak ditangani oleh versi sebelum 1998 dari zic"
+
+#: timezone/zic.c:1221 timezone/zic.c:3078
msgid "time overflow"
msgstr "waktu overflow"
-#: timezone/zic.c:1198
+#: timezone/zic.c:1227
msgid "values over 24 hours not handled by pre-2007 versions of zic"
msgstr "nilai lebih 24 jam tidak ditangani oleh versi sebelum 2007 dari zic"
-#: timezone/zic.c:1209
+#: timezone/zic.c:1245
+msgid "invalid saved time"
+msgstr "waktu disimpan tidak valid"
+
+#: timezone/zic.c:1256
msgid "wrong number of fields on Rule line"
msgstr "jumlah dari daerah salah dalam baris Aturan"
-#: timezone/zic.c:1213
-msgid "nameless rule"
-msgstr "aturan tidak bernama"
-
-#: timezone/zic.c:1218
-msgid "invalid saved time"
-msgstr "waktu disimpan tidak valid"
+#: timezone/zic.c:1265
+#, fuzzy, c-format
+#| msgid "Invalid numeric gid \"%s\"!"
+msgid "Invalid rule name \"%s\""
+msgstr "Numerik gid \"%s\" tidak valid !"
-#: timezone/zic.c:1235
+#: timezone/zic.c:1287
msgid "wrong number of fields on Zone line"
msgstr "jumlah dari daerah dalam baris daerah salah"
-#: timezone/zic.c:1240
+#: timezone/zic.c:1292
#, c-format
msgid "\"Zone %s\" line and -l option are mutually exclusive"
msgstr "\"Daerah %s\" baris dan pilihan -l secara mutual ekslusif"
-#: timezone/zic.c:1246
+#: timezone/zic.c:1298
#, c-format
msgid "\"Zone %s\" line and -p option are mutually exclusive"
msgstr "\"Daerah %s\" baris dan pilihan -p secara mutual ekslusif"
-#: timezone/zic.c:1253
+#: timezone/zic.c:1305
#, fuzzy, c-format
#| msgid "duplicate zone name %s (file \"%s\", line %d)"
msgid "duplicate zone name %s (file \"%s\", line %<PRIdMAX>)"
msgstr "duplikasi nama daerah %s (berkas \"%s\", baris %d)"
-#: timezone/zic.c:1267
+#: timezone/zic.c:1319
msgid "wrong number of fields on Zone continuation line"
msgstr "jumlah dari daerah salah di baris kelanjutan Daerah"
-#: timezone/zic.c:1307
+#: timezone/zic.c:1359
#, fuzzy
#| msgid "invalid UTC offset"
msgid "invalid UT offset"
msgstr "ofset UTC tidak valid"
-#: timezone/zic.c:1311
+#: timezone/zic.c:1363
msgid "invalid abbreviation format"
msgstr "format kependekan tidak valid"
-#: timezone/zic.c:1320
+#: timezone/zic.c:1372
#, fuzzy, c-format
#| msgid "24:00 not handled by pre-1998 versions of zic"
msgid "format '%s' not handled by pre-2015 versions of zic"
msgstr "24:00 tidak ditangani oleh versi sebelum 1998 dari zic"
-#: timezone/zic.c:1347
+#: timezone/zic.c:1399
msgid "Zone continuation line end time is not after end time of previous line"
msgstr "baris kelanjutan Daerah akhir waktu tidak setelah akhir waktu dari baris sebelumnya"
-#: timezone/zic.c:1374
+#: timezone/zic.c:1426
msgid "wrong number of fields on Leap line"
msgstr "jumlah dari daerah salah di baris Leap"
-#: timezone/zic.c:1383
+#: timezone/zic.c:1435
msgid "invalid leaping year"
msgstr "tahun leapin tidak valid"
-#: timezone/zic.c:1403 timezone/zic.c:1501
+#: timezone/zic.c:1455 timezone/zic.c:1547
msgid "invalid month name"
msgstr "nama bulan tidak valid"
-#: timezone/zic.c:1416 timezone/zic.c:1614 timezone/zic.c:1628
+#: timezone/zic.c:1468 timezone/zic.c:1663 timezone/zic.c:1677
msgid "invalid day of month"
msgstr "hari dari bulan tidak valid"
-#: timezone/zic.c:1421
+#: timezone/zic.c:1473
msgid "time too small"
msgstr "waktu terlalu kecil"
-#: timezone/zic.c:1425
+#: timezone/zic.c:1477
msgid "time too large"
msgstr "waktu terlalu besar"
-#: timezone/zic.c:1429 timezone/zic.c:1530
+#: timezone/zic.c:1481 timezone/zic.c:1576
msgid "invalid time of day"
msgstr "waktu dari hari tidak valid"
-#: timezone/zic.c:1448
+#: timezone/zic.c:1494
msgid "illegal CORRECTION field on Leap line"
msgstr "daerah KOREKSI tidak legal di baris Leap"
-#: timezone/zic.c:1453
+#: timezone/zic.c:1499
msgid "illegal Rolling/Stationary field on Leap line"
msgstr "daerah Rolling/Stationary tidak legal di baris Leap"
-#: timezone/zic.c:1459
-msgid "leap second precedes Big Bang"
+#: timezone/zic.c:1505
+msgid "leap second precedes Epoch"
msgstr ""
-#: timezone/zic.c:1472
+#: timezone/zic.c:1518
msgid "wrong number of fields on Link line"
msgstr "jumlah dari daerah salah di baris sambungan"
-#: timezone/zic.c:1476
+#: timezone/zic.c:1522
msgid "blank FROM field on Link line"
msgstr "daerah FROM kosong di baris Link"
-#: timezone/zic.c:1551
+#: timezone/zic.c:1597
msgid "invalid starting year"
msgstr "awal tahun tidak valid"
-#: timezone/zic.c:1573
+#: timezone/zic.c:1619
msgid "invalid ending year"
msgstr "akhir tahun tidak valid"
-#: timezone/zic.c:1577
+#: timezone/zic.c:1623
msgid "starting year greater than ending year"
msgstr "awal tahun lebih besar dari akhir tahun"
-#: timezone/zic.c:1584
+#: timezone/zic.c:1630
msgid "typed single year"
msgstr "tipe tahun tunggal"
-#: timezone/zic.c:1619
+#: timezone/zic.c:1633
+#, c-format
+msgid "year type \"%s\" is obsolete; use \"-\" instead"
+msgstr ""
+
+#: timezone/zic.c:1668
msgid "invalid weekday name"
msgstr "nama hari-minggu tidak valid"
-#: timezone/zic.c:1743
+#: timezone/zic.c:1800
#, c-format
msgid "reference clients mishandle more than %d transition times"
msgstr ""
-#: timezone/zic.c:1747
+#: timezone/zic.c:1804
msgid "pre-2014 clients may mishandle more than 1200 transition times"
msgstr ""
-#: timezone/zic.c:1858
+#: timezone/zic.c:1920
#, fuzzy
#| msgid "too many transitions?!"
msgid "too many transition times"
msgstr "terlalu banyak perubahan?!"
-#: timezone/zic.c:2047
+#: timezone/zic.c:2107
#, c-format
-msgid "%%z UTC offset magnitude exceeds 99:59:59"
+msgid "%%z UT offset magnitude exceeds 99:59:59"
msgstr ""
-#: timezone/zic.c:2424
+#: timezone/zic.c:2488
msgid "no POSIX environment variable for zone"
msgstr "tidak ada variabel lingkungan POSIX untuk daerah"
-#: timezone/zic.c:2430
+#: timezone/zic.c:2494
#, c-format
msgid "%s: pre-%d clients may mishandle distant timestamps"
msgstr ""
-#: timezone/zic.c:2566
+#: timezone/zic.c:2631
msgid "two rules for same instant"
msgstr ""
-#: timezone/zic.c:2627
+#: timezone/zic.c:2696
msgid "can't determine time zone abbreviation to use just after until time"
msgstr "tidak dapat menentukan kependekan daerah waktu untuk digunakan setelah waktu"
-#: timezone/zic.c:2725
+#: timezone/zic.c:2785
msgid "too many local time types"
msgstr "terlalu banyak tipe waktu lokal"
-#: timezone/zic.c:2729
+#: timezone/zic.c:2789
#, fuzzy
#| msgid "UTC offset out of range"
msgid "UT offset out of range"
msgstr "ofset UTC diluar dari jangkauan"
-#: timezone/zic.c:2753
+#: timezone/zic.c:2813
msgid "too many leap seconds"
msgstr "terlalu banyak leap detik"
-#: timezone/zic.c:2759
-msgid "repeated leap second moment"
-msgstr "pengulangan momen leap detik"
+#: timezone/zic.c:2844
+msgid "Leap seconds too close together"
+msgstr ""
-#: timezone/zic.c:2830
+#: timezone/zic.c:2891
msgid "Wild result from command execution"
msgstr "Hasil ganas dari eksekusi perintah"
-#: timezone/zic.c:2831
+#: timezone/zic.c:2892
#, c-format
msgid "%s: command was '%s', result was %d\n"
msgstr "%s: perintah adalah '%s', hasil adalah %d\n"
-#: timezone/zic.c:2961
+#: timezone/zic.c:2998
+#, c-format
+msgid "\"%s\" is undocumented; use \"last%s\" instead"
+msgstr ""
+
+#: timezone/zic.c:3029
+#, c-format
+msgid "\"%s\" is ambiguous in pre-2017c zic"
+msgstr ""
+
+#: timezone/zic.c:3063
msgid "Odd number of quotation marks"
msgstr "Jumlah dari tanda kuotasi ganjil"
-#: timezone/zic.c:3046
+#: timezone/zic.c:3157
msgid "use of 2/29 in non leap-year"
msgstr "penggunaan dari 2/29 dalam bukan leap-year"
-#: timezone/zic.c:3081
+#: timezone/zic.c:3192
#, fuzzy
#| msgid "rule goes past start/end of month--will not work with pre-2004 versions of zic"
msgid "rule goes past start/end of month; will not work with pre-2004 versions of zic"
msgstr "aturan melewati awal/akhir dari bulan -- tidak akan bekerja dengan versi sebelum 2004 dari zic"
-#: timezone/zic.c:3108
+#: timezone/zic.c:3219
#, fuzzy
#| msgid "time zone abbreviation has more than 3 alphabetics"
msgid "time zone abbreviation has fewer than 3 characters"
msgstr "kependekan daerah waktu memiliki lebih dari 3 alphabet"
-#: timezone/zic.c:3110
+#: timezone/zic.c:3221
#, fuzzy
#| msgid "time zone abbreviation has too many alphabetics"
msgid "time zone abbreviation has too many characters"
msgstr "kependekan daerah waktu memiliki terlalu banyak alphabet"
-#: timezone/zic.c:3112
+#: timezone/zic.c:3223
msgid "time zone abbreviation differs from POSIX standard"
msgstr "kependekan daerah waktu berbeda dari standar POSIX"
-#: timezone/zic.c:3118
+#: timezone/zic.c:3229
msgid "too many, or too long, time zone abbreviations"
msgstr "terlalu banyak, atau terlalu panjang, kependekan daerah waktu"
-#: timezone/zic.c:3161
+#: timezone/zic.c:3275
#, fuzzy, c-format
#| msgid "%s: Can't create directory %s: %s\n"
msgid "%s: Can't create directory %s: %s"
@@ -7409,6 +7450,9 @@ msgstr "%s: Tidak dapat membuat direktori %s: %s\n"
#~ msgid "xtrace: option \\`$1' requires an argument.\\n"
#~ msgstr "xtrace: pilihan \\`$1' membutuhkan sebuah argumen.\\n"
+#~ msgid "cannot open zero fill device"
+#~ msgstr "tidak dapat membuka perangkat pengisi nol"
+
#~ msgid "cannot allocate TLS data structures for initial thread"
#~ msgstr "tidak dapat mengalokasikan struktur data TLS untuk inisial thread"
@@ -7418,6 +7462,9 @@ msgstr "%s: Tidak dapat membuat direktori %s: %s\n"
#~ msgid "invalid caller"
#~ msgstr "pemanggil tidak valid"
+#~ msgid "relocation error"
+#~ msgstr "relokasi error"
+
#~ msgid "%s: no PLTREL found in object %s\n"
#~ msgstr "%s: tidak ada PLTREL ditemukan dalam objek %s\n"
@@ -7439,6 +7486,15 @@ msgstr "%s: Tidak dapat membuat direktori %s: %s\n"
#~ msgid "non-symbolic character value should not be used"
#~ msgstr "nilai karakter bukan simbolis seharusnya tidak digunakan"
+#~ msgid "Cannot set LC_CTYPE to default locale"
+#~ msgstr "Tidak dapat menset lokal baku ke LC_CTYPE"
+
+#~ msgid "Cannot set LC_MESSAGES to default locale"
+#~ msgstr "Tidak dapat menset lokal baku ke LC_MESSAGES"
+
+#~ msgid "Cannot set LC_COLLATE to default locale"
+#~ msgstr "Tidak dapat menset lokal baku ke LC_COLLATE"
+
#~ msgid "Create old-style tables"
#~ msgstr "Membuat tabel gaya-lama"
@@ -7574,12 +7630,21 @@ msgstr "%s: Tidak dapat membuat direktori %s: %s\n"
#~ msgid "hard link failed, symbolic link used"
#~ msgstr "sambungan keras gagal, menggunakan sambungan simbolis"
+#~ msgid "unruly zone"
+#~ msgstr "daerah unruly"
+
+#~ msgid "%s: Leap line in non leap seconds file %s\n"
+#~ msgstr "%s: Baris leap dalam bukan leap detik berkas %s\n"
+
#~ msgid "%s: Error reading %s\n"
#~ msgstr "%s: Error membaca %s\n"
#~ msgid "%s: Error closing %s: %s\n"
#~ msgstr "%s: Error menutup %s: %s\n"
+#~ msgid "nameless rule"
+#~ msgstr "aturan tidak bernama"
+
#~ msgid "time before zero"
#~ msgstr "waktu sebelum nol"
@@ -7598,6 +7663,9 @@ msgstr "%s: Tidak dapat membuat direktori %s: %s\n"
#~ msgid "internal error - addtype called with bad ttisgmt"
#~ msgstr "internal error - addtype dipanggil dengan ttisgmt buruk"
+#~ msgid "repeated leap second moment"
+#~ msgstr "pengulangan momen leap detik"
+
#~ msgid "time zone abbreviation lacks alphabetic at start"
#~ msgstr "kependekan daerah waktu kurang alphabet di awal"
diff --git a/po/it.po b/po/it.po
index 2750575a10..e8203a053c 100644
--- a/po/it.po
+++ b/po/it.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libc-2.14\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-07-26 22:19-0400\n"
+"POT-Creation-Date: 2019-07-18 13:28-0400\n"
"PO-Revision-Date: 2011-10-17 14:21+0200\n"
"Last-Translator: Sergio Zanchetta <primes2h@ubuntu.com>\n"
"Language-Team: Italian <tp@lists.linux.it>\n"
@@ -159,10 +159,10 @@ msgstr ""
"[FILE-OUTPUT [FILE-INPUT]...]"
#: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:308
-#: elf/pldd.c:252 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
-#: iconv/iconvconfig.c:379 locale/programs/locale.c:275
-#: locale/programs/localedef.c:427 login/programs/pt_chown.c:89
-#: malloc/memusagestat.c:563 nss/getent.c:933 nss/makedb.c:369
+#: elf/pldd.c:247 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
+#: iconv/iconvconfig.c:379 locale/programs/locale.c:276
+#: locale/programs/localedef.c:437 login/programs/pt_chown.c:89
+#: malloc/memusagestat.c:563 nss/getent.c:953 nss/makedb.c:369
#: posix/getconf.c:503 sysdeps/unix/sysv/linux/lddlibc4.c:61
#, fuzzy, c-format
#| msgid ""
@@ -176,11 +176,11 @@ msgstr ""
"<http://www.gnu.org/software/libc/bugs.html>.\n"
#: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64
-#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75
+#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:263 elf/sotruss.sh:75
#: elf/sprof.c:389 iconv/iconv_prog.c:422 iconv/iconvconfig.c:396
-#: locale/programs/locale.c:292 locale/programs/localedef.c:453
+#: locale/programs/locale.c:293 locale/programs/localedef.c:463
#: login/programs/pt_chown.c:63 malloc/memusage.sh:71
-#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:87 nss/makedb.c:385
+#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:88 nss/makedb.c:385
#: posix/getconf.c:485 sysdeps/unix/sysv/linux/lddlibc4.c:68
#, c-format
msgid ""
@@ -195,10 +195,10 @@ msgstr ""
# lf
#: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68
-#: elf/ldconfig.c:329 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:427
-#: iconv/iconvconfig.c:401 locale/programs/locale.c:297
-#: locale/programs/localedef.c:458 malloc/memusage.sh:75
-#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:92 nss/makedb.c:390
+#: elf/ldconfig.c:329 elf/pldd.c:268 elf/sprof.c:395 iconv/iconv_prog.c:427
+#: iconv/iconvconfig.c:401 locale/programs/locale.c:298
+#: locale/programs/localedef.c:468 malloc/memusage.sh:75
+#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:93 nss/makedb.c:390
#: posix/getconf.c:490
#, c-format
msgid "Written by %s.\n"
@@ -278,21 +278,21 @@ msgid "invalid escape sequence"
msgstr "sequenza di escape non valida"
# lf
-#: catgets/gencat.c:1209
+#: catgets/gencat.c:1211
msgid "unterminated message"
msgstr "messaggio non terminato"
-#: catgets/gencat.c:1233
+#: catgets/gencat.c:1235
#, c-format
msgid "while opening old catalog file"
msgstr "durante l'apertura del vecchio file di catalogo"
-#: catgets/gencat.c:1324
+#: catgets/gencat.c:1326
#, c-format
msgid "conversion modules not available"
msgstr "moduli di conversione non disponibili"
-#: catgets/gencat.c:1350
+#: catgets/gencat.c:1352
#, c-format
msgid "cannot determine escape character"
msgstr "impossibile determinare il carattere di escape"
@@ -434,7 +434,7 @@ msgstr "Sistema operativo sconosciuto"
msgid ", OS ABI: %s %d.%d.%d"
msgstr ", ABI del sistema operativo: %s %d.%d.%d"
-#: elf/cache.c:163 elf/ldconfig.c:1332
+#: elf/cache.c:163 elf/ldconfig.c:1333
#, c-format
msgid "Can't open cache file %s\n"
msgstr "Impossibile aprire il file di cache %s\n"
@@ -445,42 +445,42 @@ msgstr "Impossibile aprire il file di cache %s\n"
msgid "mmap of cache file failed.\n"
msgstr "mmap del file di cache non riuscita.\n"
-#: elf/cache.c:181 elf/cache.c:195
+#: elf/cache.c:181 elf/cache.c:195 elf/cache.c:205
#, c-format
msgid "File is not a cache file.\n"
msgstr "Il file non è di cache.\n"
-#: elf/cache.c:228 elf/cache.c:238
+#: elf/cache.c:233 elf/cache.c:243
#, c-format
msgid "%d libs found in cache `%s'\n"
msgstr "%d librerie trovate nella cache \"%s\"\n"
-#: elf/cache.c:432
+#: elf/cache.c:437
#, c-format
msgid "Can't create temporary cache file %s"
msgstr "Impossibile creare il file temporaneo di cache %s"
# lf
-#: elf/cache.c:440 elf/cache.c:450 elf/cache.c:454 elf/cache.c:458
-#: elf/cache.c:468
+#: elf/cache.c:445 elf/cache.c:455 elf/cache.c:459 elf/cache.c:463
+#: elf/cache.c:473
#, c-format
msgid "Writing of cache data failed"
msgstr "Scrittura dei dati di cache non riuscita"
-#: elf/cache.c:463
+#: elf/cache.c:468
#, c-format
msgid "Changing access rights of %s to %#o failed"
msgstr "Modifica dei diritti di accesso di %s a %#o non riuscita"
# lf
-#: elf/cache.c:472
+#: elf/cache.c:477
#, c-format
msgid "Renaming of %s to %s failed"
msgstr "Rinomina di %s a %s non riuscita"
# lf
#
-#: elf/dl-close.c:399 elf/dl-open.c:420
+#: elf/dl-close.c:399 elf/dl-open.c:424
msgid "cannot create scope list"
msgstr "impossibile creare l'elenco di ambito"
@@ -576,140 +576,143 @@ msgstr "impossibile creare l'array dei percorsi di ricerca"
msgid "cannot stat shared object"
msgstr "impossibile fare stat sull'oggetto condiviso"
-#: elf/dl-load.c:960
-msgid "cannot open zero fill device"
-msgstr "impossibile aprire il device riempito con zeri"
-
# lf
-#: elf/dl-load.c:1007 elf/dl-load.c:2203
+#: elf/dl-load.c:992 elf/dl-load.c:2198
msgid "cannot create shared object descriptor"
msgstr "impossibile creare il descrittore di oggetto condiviso"
# lf
-#: elf/dl-load.c:1026 elf/dl-load.c:1560 elf/dl-load.c:1673
+#: elf/dl-load.c:1011 elf/dl-load.c:1555 elf/dl-load.c:1668
msgid "cannot read file data"
msgstr "impossibile leggere il file di dati"
# lf
-#: elf/dl-load.c:1072
+#: elf/dl-load.c:1057
msgid "ELF load command alignment not page-aligned"
msgstr "comando di caricamento ELF non allineato alla pagina"
# lf
-#: elf/dl-load.c:1079
+#: elf/dl-load.c:1064
msgid "ELF load command address/offset not properly aligned"
msgstr "indirizzo/offset del comando di caricamento ELF non propriamente allineato"
-#: elf/dl-load.c:1161
+#: elf/dl-load.c:1146
#, fuzzy
#| msgid "cannot restore segment prot after reloc"
msgid "cannot process note segment"
msgstr "impossibile ripristinare la protezione del segmento dopo la rilocazione"
# lf
-#: elf/dl-load.c:1172
+#: elf/dl-load.c:1157
msgid "object file has no loadable segments"
msgstr "il file oggetto non presenta segmenti caricabili"
# lf
-#: elf/dl-load.c:1181 elf/dl-load.c:1652
+#: elf/dl-load.c:1170 elf/dl-load.c:1647
msgid "cannot dynamically load executable"
msgstr "impossibile caricare dinamicamente l'eseguibile"
# lf
#
-#: elf/dl-load.c:1202
+#: elf/dl-load.c:1191
msgid "object file has no dynamic section"
msgstr "il file oggetto non presenta una sezione dinamica"
# lf
-#: elf/dl-load.c:1225
+#: elf/dl-load.c:1218
+#, fuzzy
+#| msgid "cannot dynamically load executable"
+msgid "cannot dynamically load position-independent executable"
+msgstr "impossibile caricare dinamicamente l'eseguibile"
+
+# lf
+#: elf/dl-load.c:1220
msgid "shared object cannot be dlopen()ed"
msgstr "impossibile eseguire dlopen() sull'oggetto condiviso"
# lf
-#: elf/dl-load.c:1238
+#: elf/dl-load.c:1233
msgid "cannot allocate memory for program header"
msgstr "impossibile allocare memoria per l'intestazione di programma"
# lf
-#: elf/dl-load.c:1271 elf/dl-load.h:130
+#: elf/dl-load.c:1266 elf/dl-load.h:130
msgid "cannot change memory protections"
msgstr "impossibile cambiare le protezioni della memoria"
# lf
-#: elf/dl-load.c:1291
+#: elf/dl-load.c:1286
msgid "cannot enable executable stack as shared object requires"
msgstr "impossibile abilitare lo stack eseguibile come richiesto dall'oggetto condiviso"
-#: elf/dl-load.c:1304
+#: elf/dl-load.c:1299
msgid "cannot close file descriptor"
msgstr "impossibile chiudere il descrittore di file"
# lf
-#: elf/dl-load.c:1560
+#: elf/dl-load.c:1555
msgid "file too short"
msgstr "file troppo corto"
# lf
-#: elf/dl-load.c:1595
+#: elf/dl-load.c:1590
msgid "invalid ELF header"
msgstr "intestazione ELF non valida"
# lf
-#: elf/dl-load.c:1607
+#: elf/dl-load.c:1602
msgid "ELF file data encoding not big-endian"
msgstr "la codifica dati del file ELF non è big-endian"
# lf
-#: elf/dl-load.c:1609
+#: elf/dl-load.c:1604
msgid "ELF file data encoding not little-endian"
msgstr "la codifica dati del file ELF non è little-endian"
-#: elf/dl-load.c:1613
+#: elf/dl-load.c:1608
msgid "ELF file version ident does not match current one"
msgstr "l'identificatore di versione del file ELF non corrisponde a quello attuale"
-#: elf/dl-load.c:1617
+#: elf/dl-load.c:1612
msgid "ELF file OS ABI invalid"
msgstr "ABI del file ELF del sistema operativo non valido"
-#: elf/dl-load.c:1620
+#: elf/dl-load.c:1615
msgid "ELF file ABI version invalid"
msgstr "versione ABI del file ELF non valida"
-#: elf/dl-load.c:1623
+#: elf/dl-load.c:1618
msgid "nonzero padding in e_ident"
msgstr "riempimento con valori diversi da zero in e_ident"
# lf
-#: elf/dl-load.c:1626
+#: elf/dl-load.c:1621
msgid "internal error"
msgstr "errore interno"
-#: elf/dl-load.c:1633
+#: elf/dl-load.c:1628
msgid "ELF file version does not match current one"
msgstr "La versione del file ELF non corrisponde a quella attuale"
# lf
-#: elf/dl-load.c:1641
+#: elf/dl-load.c:1636
msgid "only ET_DYN and ET_EXEC can be loaded"
msgstr "è possibile caricare solo ET_DYN ed ET_EXEC"
-#: elf/dl-load.c:1657
+#: elf/dl-load.c:1652
msgid "ELF file's phentsize not the expected size"
msgstr "La phentsize del file ELF non corrisponde a quella attesa"
-#: elf/dl-load.c:2222
+#: elf/dl-load.c:2217
msgid "wrong ELF class: ELFCLASS64"
msgstr "classe ELF errata: ELFCLASS64"
-#: elf/dl-load.c:2223
+#: elf/dl-load.c:2218
msgid "wrong ELF class: ELFCLASS32"
msgstr "classe ELF errata: ELFCLASS32"
# lf
-#: elf/dl-load.c:2226
+#: elf/dl-load.c:2221
msgid "cannot open shared object file"
msgstr "impossibile aprire il file oggetto condiviso"
@@ -724,12 +727,7 @@ msgstr "mappatura del segmento dall'oggetto condiviso non riuscita"
msgid "cannot map zero-fill pages"
msgstr "impossibile mappare le pagine riempite con zeri"
-# lf
-#: elf/dl-lookup.c:835
-msgid "relocation error"
-msgstr "errore di rilocazione"
-
-#: elf/dl-lookup.c:858
+#: elf/dl-lookup.c:830
msgid "symbol lookup error"
msgstr "errore nella ricerca del simbolo"
@@ -739,20 +737,20 @@ msgstr "errore nella ricerca del simbolo"
msgid "cannot extend global scope"
msgstr "impossibile estendere l'ambito globale"
-#: elf/dl-open.c:470
+#: elf/dl-open.c:474
msgid "TLS generation counter wrapped! Please report this."
msgstr "contatore TLS di generazione azzerato. Segnalare questo problema."
# ls
-#: elf/dl-open.c:534
+#: elf/dl-open.c:538
msgid "invalid mode for dlopen()"
msgstr "modo non valido per dlopen()"
-#: elf/dl-open.c:551
+#: elf/dl-open.c:555
msgid "no more namespaces available for dlmopen()"
msgstr "nessuno spazio dei nomi disponibile per dlmopen()"
-#: elf/dl-open.c:575
+#: elf/dl-open.c:579
msgid "invalid target namespace in dlmopen()"
msgstr "spazio dei nomi di destinazione non valido in dlmopen()"
@@ -762,20 +760,20 @@ msgid "cannot allocate memory in static TLS block"
msgstr "impossibile allocare memoria nel blocco statico TLS"
# lf
-#: elf/dl-reloc.c:205
+#: elf/dl-reloc.c:213
msgid "cannot make segment writable for relocation"
msgstr "impossibile rendere il segmento scrivibile per la rilocazione"
-#: elf/dl-reloc.c:276
+#: elf/dl-reloc.c:272
#, c-format
msgid "%s: out of memory to store relocation results for %s\n"
msgstr "%s: memoria esaurita per memorizzare i risultati della rilocazione per %s\n"
-#: elf/dl-reloc.c:292
+#: elf/dl-reloc.c:288
msgid "cannot restore segment prot after reloc"
msgstr "impossibile ripristinare la protezione del segmento dopo la rilocazione"
-#: elf/dl-reloc.c:323
+#: elf/dl-reloc.c:319
msgid "cannot apply additional memory protection after relocation"
msgstr "impossibile applicare una protezione supplementare della memoria dopo la rilocazione"
@@ -1018,23 +1016,23 @@ msgstr "se viene usato -r è necessario un nome file assoluto per il file di con
msgid "memory exhausted"
msgstr "memoria esaurita"
-#: elf/ldconfig.c:1233
+#: elf/ldconfig.c:1234
#, c-format
msgid "%s:%u: cannot read directory %s"
msgstr "%s:%u: impossibile leggere la directory %s"
# lf
-#: elf/ldconfig.c:1281
+#: elf/ldconfig.c:1282
#, c-format
msgid "relative path `%s' used to build cache"
msgstr "usato il percorso relativo \"%s\" per creare la cache"
-#: elf/ldconfig.c:1311
+#: elf/ldconfig.c:1312
#, c-format
msgid "Can't chdir to /"
msgstr "Impossibile fare chdir a /"
-#: elf/ldconfig.c:1352
+#: elf/ldconfig.c:1353
#, c-format
msgid "Can't open cache file directory %s\n"
msgstr "Impossibile aprire la directory del file di cache %s\n"
@@ -1106,14 +1104,14 @@ msgid "error: you do not have read permission for"
msgstr "errore: permessi di lettura mancanti per"
# lf
-#: elf/pldd-xx.c:105
+#: elf/pldd-xx.c:102
#, fuzzy, c-format
#| msgid "cannot read header from `%s'"
msgid "cannot find program header of process"
msgstr "impossibile leggere l'intestazione da \"%s\""
# lf
-#: elf/pldd-xx.c:110
+#: elf/pldd-xx.c:106
#, fuzzy, c-format
#| msgid "cannot read header"
msgid "cannot read program header"
@@ -1121,104 +1119,110 @@ msgstr "impossibile leggere l'intestazione"
# lf
#
-#: elf/pldd-xx.c:135
+#: elf/pldd-xx.c:128
#, fuzzy, c-format
#| msgid "object file has no dynamic section"
msgid "cannot read dynamic section"
msgstr "il file oggetto non presenta una sezione dinamica"
# lf
-#: elf/pldd-xx.c:147
+#: elf/pldd-xx.c:137
#, fuzzy, c-format
#| msgid "cannot read header"
msgid "cannot read r_debug"
msgstr "impossibile leggere l'intestazione"
-#: elf/pldd-xx.c:167
+#: elf/pldd-xx.c:154
#, fuzzy, c-format
#| msgid "cannot read archive header"
msgid "cannot read program interpreter"
msgstr "impossibile leggere l'intestazione dell'archivio"
# lf
-#: elf/pldd-xx.c:197
+#: elf/pldd-xx.c:183
#, fuzzy, c-format
#| msgid "cannot read file data"
msgid "cannot read link map"
msgstr "impossibile leggere il file di dati"
# lf
-#: elf/pldd-xx.c:209
+#: elf/pldd-xx.c:190
#, fuzzy, c-format
#| msgid "cannot read header"
msgid "cannot read object name"
msgstr "impossibile leggere l'intestazione"
# lf
-#: elf/pldd-xx.c:219
+#: elf/pldd-xx.c:197
#, fuzzy, c-format
#| msgid "cannot allocate memory for program header"
msgid "cannot allocate buffer for object name"
msgstr "impossibile allocare memoria per l'intestazione di programma"
-#: elf/pldd.c:64
+#: elf/pldd.c:58
msgid "List dynamic shared objects loaded into process."
msgstr ""
-#: elf/pldd.c:68
+#: elf/pldd.c:62
msgid "PID"
msgstr ""
-#: elf/pldd.c:100
+#: elf/pldd.c:89
#, c-format
msgid "Exactly one parameter with process ID required.\n"
msgstr ""
# lf
-#: elf/pldd.c:112
+#: elf/pldd.c:103
#, fuzzy, c-format
#| msgid "invalid pointer size"
msgid "invalid process ID '%s'"
msgstr "dimensione puntatore non valida"
# lf
-#: elf/pldd.c:120
+#: elf/pldd.c:111
#, fuzzy, c-format
#| msgid "cannot open `%s'"
msgid "cannot open %s"
msgstr "impossibile aprire \"%s\""
# lf
-#: elf/pldd.c:152
+#: elf/pldd.c:142
#, fuzzy, c-format
#| msgid "cannot open `%s'"
msgid "cannot open %s/task"
msgstr "impossibile aprire \"%s\""
-#: elf/pldd.c:155
+#: elf/pldd.c:145
#, c-format
msgid "cannot prepare reading %s/task"
msgstr ""
# lf
-#: elf/pldd.c:168
+#: elf/pldd.c:158
#, fuzzy, c-format
#| msgid "invalid ELF header"
msgid "invalid thread ID '%s'"
msgstr "intestazione ELF non valida"
-#: elf/pldd.c:179
+#: elf/pldd.c:169
#, fuzzy, c-format
#| msgid "cannot access '%s'"
msgid "cannot attach to process %lu"
msgstr "impossibile accedere a \"%s\""
-#: elf/pldd.c:294
+#: elf/pldd.c:184
+#, fuzzy, c-format
+#| msgid "invalid saved time"
+msgid "no valid %s/task entries"
+msgstr "orario memorizzato non valido"
+
+#: elf/pldd.c:290
#, c-format
msgid "cannot get information about process %lu"
msgstr ""
-#: elf/pldd.c:307
+#: elf/pldd.c:303
#, c-format
msgid "process %lu is no ELF program"
msgstr ""
@@ -1577,7 +1581,7 @@ msgstr "Informazioni:"
msgid "list all known coded character sets"
msgstr "Elenca tutti i set di caratteri codificati conosciuti"
-#: iconv/iconv_prog.c:64 locale/programs/localedef.c:120
+#: iconv/iconv_prog.c:64 locale/programs/localedef.c:124
msgid "Output control:"
msgstr "Controllo dell'output:"
@@ -1587,8 +1591,8 @@ msgid "omit invalid characters from output"
msgstr "Omette caratteri non validi dall'output"
#: iconv/iconv_prog.c:66 iconv/iconvconfig.c:128
-#: locale/programs/localedef.c:113 locale/programs/localedef.c:115
-#: locale/programs/localedef.c:117 locale/programs/localedef.c:144
+#: locale/programs/localedef.c:117 locale/programs/localedef.c:119
+#: locale/programs/localedef.c:121 locale/programs/localedef.c:150
#: malloc/memusagestat.c:56
#, fuzzy
#| msgid "[FILE]"
@@ -1711,7 +1715,7 @@ msgstr "Crea file di configurazione per moduli iconv a caricamento rapido."
msgid "[DIR...]"
msgstr "[DIR...]"
-#: iconv/iconvconfig.c:126 locale/programs/localedef.c:123
+#: iconv/iconvconfig.c:126 locale/programs/localedef.c:129
msgid "PATH"
msgstr ""
@@ -1914,15 +1918,15 @@ msgstr "i set di caratteri ad accesso esclusivo non sono supportati"
# lf
#: locale/programs/charmap.c:503 locale/programs/charmap.c:557
#: locale/programs/charmap.c:589 locale/programs/charmap.c:683
-#: locale/programs/charmap.c:738 locale/programs/charmap.c:779
-#: locale/programs/charmap.c:820
+#: locale/programs/charmap.c:739 locale/programs/charmap.c:780
+#: locale/programs/charmap.c:821
#, c-format
msgid "syntax error in %s definition: %s"
msgstr "errore di sintassi nella definizione %s: %s"
# lf
#: locale/programs/charmap.c:504 locale/programs/charmap.c:684
-#: locale/programs/charmap.c:780 locale/programs/repertoire.c:229
+#: locale/programs/charmap.c:781 locale/programs/repertoire.c:229
msgid "no symbolic name given"
msgstr "nessun nome simbolico fornito"
@@ -1941,14 +1945,14 @@ msgstr "troppi pochi byte nella codifica di carattere"
msgid "too many bytes in character encoding"
msgstr "troppi byte nella codifica di carattere"
-#: locale/programs/charmap.c:591 locale/programs/charmap.c:739
-#: locale/programs/charmap.c:822 locale/programs/repertoire.c:295
+#: locale/programs/charmap.c:591 locale/programs/charmap.c:740
+#: locale/programs/charmap.c:823 locale/programs/repertoire.c:295
msgid "no symbolic name given for end of range"
msgstr "nessun nome simbolico fornito per la fine dell'intervallo"
#: locale/programs/charmap.c:615 locale/programs/ld-address.c:524
#: locale/programs/ld-collate.c:2616 locale/programs/ld-collate.c:3774
-#: locale/programs/ld-ctype.c:2117 locale/programs/ld-ctype.c:2829
+#: locale/programs/ld-ctype.c:2118 locale/programs/ld-ctype.c:2830
#: locale/programs/ld-identification.c:397
#: locale/programs/ld-measurement.c:213 locale/programs/ld-messages.c:295
#: locale/programs/ld-monetary.c:748 locale/programs/ld-name.c:262
@@ -1964,60 +1968,60 @@ msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
msgstr "solo alle definizioni WIDTH è consentito seguire la definizione CHARMAP"
# lf
-#: locale/programs/charmap.c:656 locale/programs/charmap.c:719
+#: locale/programs/charmap.c:656 locale/programs/charmap.c:720
#, c-format
msgid "value for %s must be an integer"
msgstr "il valore per %s deve essere un intero"
-#: locale/programs/charmap.c:847
+#: locale/programs/charmap.c:848
#, c-format
msgid "%s: error in state machine"
msgstr "%s: errore nella macchina a stati"
-#: locale/programs/charmap.c:855 locale/programs/ld-address.c:540
+#: locale/programs/charmap.c:856 locale/programs/ld-address.c:540
#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967
-#: locale/programs/ld-ctype.c:2114 locale/programs/ld-ctype.c:2846
+#: locale/programs/ld-ctype.c:2115 locale/programs/ld-ctype.c:2847
#: locale/programs/ld-identification.c:413
#: locale/programs/ld-measurement.c:229 locale/programs/ld-messages.c:311
#: locale/programs/ld-monetary.c:764 locale/programs/ld-name.c:278
#: locale/programs/ld-numeric.c:341 locale/programs/ld-paper.c:228
#: locale/programs/ld-telephone.c:292 locale/programs/ld-time.c:990
-#: locale/programs/locfile.c:997 locale/programs/repertoire.c:323
+#: locale/programs/locfile.c:1010 locale/programs/repertoire.c:323
#, c-format
msgid "%s: premature end of file"
msgstr "%s: fine prematura del file"
# lf
-#: locale/programs/charmap.c:874 locale/programs/charmap.c:885
+#: locale/programs/charmap.c:875 locale/programs/charmap.c:886
#, c-format
msgid "unknown character `%s'"
msgstr "carattere \"%s\" sconosciuto"
-#: locale/programs/charmap.c:893
+#: locale/programs/charmap.c:894
#, c-format
msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d"
msgstr "il numero di byte per la sequenza d'inizio e di fine dell'intervallo non sono gli stessi: %d contro %d"
# lf
-#: locale/programs/charmap.c:998 locale/programs/ld-collate.c:2893
+#: locale/programs/charmap.c:999 locale/programs/ld-collate.c:2893
#: locale/programs/repertoire.c:418
msgid "invalid names for character range"
msgstr "nomi non validi per l'intervallo di caratteri"
-#: locale/programs/charmap.c:1010 locale/programs/repertoire.c:430
+#: locale/programs/charmap.c:1011 locale/programs/repertoire.c:430
msgid "hexadecimal range format should use only capital characters"
msgstr "il formato esadecimale dovrebbe usare solo lettere maiuscole"
-#: locale/programs/charmap.c:1028 locale/programs/repertoire.c:448
+#: locale/programs/charmap.c:1029 locale/programs/repertoire.c:448
#, c-format
msgid "<%s> and <%s> are invalid names for range"
msgstr "<%s> e <%s> non sono nomi validi per l'intervallo"
-#: locale/programs/charmap.c:1034 locale/programs/repertoire.c:455
+#: locale/programs/charmap.c:1035 locale/programs/repertoire.c:455
msgid "upper limit in range is smaller than lower limit"
msgstr "Il limite superiore dell'intervallo è più piccolo del limite inferiore"
-#: locale/programs/charmap.c:1092
+#: locale/programs/charmap.c:1093
msgid "resulting bytes for range not representable."
msgstr "i byte risultanti per l'intervallo non sono rappresentabili."
@@ -2088,7 +2092,7 @@ msgid "%s: numeric country code `%d' not valid"
msgstr "%s: codice numerico di nazione \"%d\" non valido"
#: locale/programs/ld-address.c:432 locale/programs/ld-address.c:469
-#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2478
+#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2479
#: locale/programs/ld-identification.c:309
#: locale/programs/ld-measurement.c:196 locale/programs/ld-messages.c:264
#: locale/programs/ld-monetary.c:503 locale/programs/ld-monetary.c:538
@@ -2112,7 +2116,7 @@ msgid "%s: unknown character in field `%s'"
msgstr "%s: carattere sconosciuto nel campo \"%s\""
#: locale/programs/ld-address.c:521 locale/programs/ld-collate.c:3772
-#: locale/programs/ld-ctype.c:2826 locale/programs/ld-identification.c:394
+#: locale/programs/ld-ctype.c:2827 locale/programs/ld-identification.c:394
#: locale/programs/ld-measurement.c:210 locale/programs/ld-messages.c:293
#: locale/programs/ld-monetary.c:746 locale/programs/ld-name.c:260
#: locale/programs/ld-numeric.c:323 locale/programs/ld-paper.c:210
@@ -2125,8 +2129,8 @@ msgstr "%s: riga \"END\" incompleta"
#: locale/programs/ld-collate.c:602 locale/programs/ld-collate.c:898
#: locale/programs/ld-collate.c:911 locale/programs/ld-collate.c:2582
#: locale/programs/ld-collate.c:2603 locale/programs/ld-collate.c:3957
-#: locale/programs/ld-ctype.c:1846 locale/programs/ld-ctype.c:2104
-#: locale/programs/ld-ctype.c:2676 locale/programs/ld-ctype.c:2837
+#: locale/programs/ld-ctype.c:1847 locale/programs/ld-ctype.c:2105
+#: locale/programs/ld-ctype.c:2677 locale/programs/ld-ctype.c:2838
#: locale/programs/ld-identification.c:404
#: locale/programs/ld-measurement.c:220 locale/programs/ld-messages.c:302
#: locale/programs/ld-monetary.c:755 locale/programs/ld-name.c:269
@@ -2478,137 +2482,137 @@ msgstr "mappa caratteri \"%s\" già definita"
msgid "implementation limit: no more than %d character maps allowed"
msgstr "limite di implementazione: non sono ammesse più di %d mappe caratteri"
-#: locale/programs/ld-ctype.c:1434 locale/programs/ld-ctype.c:1559
-#: locale/programs/ld-ctype.c:1665 locale/programs/ld-ctype.c:2341
-#: locale/programs/ld-ctype.c:3299
+#: locale/programs/ld-ctype.c:1435 locale/programs/ld-ctype.c:1560
+#: locale/programs/ld-ctype.c:1666 locale/programs/ld-ctype.c:2342
+#: locale/programs/ld-ctype.c:3302
#, c-format
msgid "%s: field `%s' does not contain exactly ten entries"
msgstr "%s: il campo \"%s\" non contiene esattamente dieci voci"
-#: locale/programs/ld-ctype.c:1462 locale/programs/ld-ctype.c:2036
+#: locale/programs/ld-ctype.c:1463 locale/programs/ld-ctype.c:2037
#, c-format
msgid "to-value <U%0*X> of range is smaller than from-value <U%0*X>"
msgstr "Il valore <U%0*X> \"fino a\" dell'intervallo è più piccolo del valore <U%0*X> \"da\""
-#: locale/programs/ld-ctype.c:1589
+#: locale/programs/ld-ctype.c:1590
msgid "start and end character sequence of range must have the same length"
msgstr "la sequenza di caratteri iniziale e finale dell'intervallo devono avere la stessa lunghezza"
-#: locale/programs/ld-ctype.c:1596
+#: locale/programs/ld-ctype.c:1597
msgid "to-value character sequence is smaller than from-value sequence"
msgstr "Il valore \"fino a\" della sequenza di caratteri è più piccolo del valore \"da\" della sequenza"
-#: locale/programs/ld-ctype.c:1956 locale/programs/ld-ctype.c:2007
+#: locale/programs/ld-ctype.c:1957 locale/programs/ld-ctype.c:2008
msgid "premature end of `translit_ignore' definition"
msgstr "fine prematura della definizione di \"translit_ignore\""
-#: locale/programs/ld-ctype.c:1962 locale/programs/ld-ctype.c:2013
-#: locale/programs/ld-ctype.c:2055
+#: locale/programs/ld-ctype.c:1963 locale/programs/ld-ctype.c:2014
+#: locale/programs/ld-ctype.c:2056
msgid "syntax error"
msgstr "errore di sintassi"
-#: locale/programs/ld-ctype.c:2188
+#: locale/programs/ld-ctype.c:2189
#, c-format
msgid "%s: syntax error in definition of new character class"
msgstr "%s: errore di sintassi nella definizione della nuova classe di caratteri"
-#: locale/programs/ld-ctype.c:2203
+#: locale/programs/ld-ctype.c:2204
#, c-format
msgid "%s: syntax error in definition of new character map"
msgstr "%s: errore di sintassi nella definizione della nuova mappa di caratteri"
-#: locale/programs/ld-ctype.c:2363
+#: locale/programs/ld-ctype.c:2364
msgid "ellipsis range must be marked by two operands of same type"
msgstr "l'intervallo con ellissi deve essere marcato da due operandi dello stesso tipo"
-#: locale/programs/ld-ctype.c:2372
+#: locale/programs/ld-ctype.c:2373
msgid "with symbolic name range values the absolute ellipsis `...' must not be used"
msgstr "con nomi simbolici come valori dell'intervallo non deve essere usata l'ellissi assoluta \"...\""
-#: locale/programs/ld-ctype.c:2387
+#: locale/programs/ld-ctype.c:2388
msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'"
msgstr "con valori UCS per l'intervallo, deve essere usata l'ellissi simbolica esadecimale \"..\""
-#: locale/programs/ld-ctype.c:2401
+#: locale/programs/ld-ctype.c:2402
msgid "with character code range values one must use the absolute ellipsis `...'"
msgstr "con codici carattere come valori dell'intervallo deve essere usata l'ellissi assoluta \"...\""
# lf
-#: locale/programs/ld-ctype.c:2552
+#: locale/programs/ld-ctype.c:2553
#, c-format
msgid "duplicated definition for mapping `%s'"
msgstr "definizione duplicata per la mappatura \"%s\""
# lf
-#: locale/programs/ld-ctype.c:2638 locale/programs/ld-ctype.c:2782
+#: locale/programs/ld-ctype.c:2639 locale/programs/ld-ctype.c:2783
#, c-format
msgid "%s: `translit_start' section does not end with `translit_end'"
msgstr "%s: la sezione \"translit_start\" non termina con \"translit_end\""
-#: locale/programs/ld-ctype.c:2733
+#: locale/programs/ld-ctype.c:2734
#, c-format
msgid "%s: duplicate `default_missing' definition"
msgstr "%s: definizione duplicata di \"default_missing\""
# lf
-#: locale/programs/ld-ctype.c:2738
+#: locale/programs/ld-ctype.c:2739
msgid "previous definition was here"
msgstr "la definizione precedente era qui"
# lf
-#: locale/programs/ld-ctype.c:2760
+#: locale/programs/ld-ctype.c:2761
#, c-format
msgid "%s: no representable `default_missing' definition found"
msgstr "%s: nessuna definizione \"default_missing\" rappresentabile trovata"
-#: locale/programs/ld-ctype.c:2877 locale/programs/ld-ctype.c:2973
-#: locale/programs/ld-ctype.c:2992 locale/programs/ld-ctype.c:3012
-#: locale/programs/ld-ctype.c:3032 locale/programs/ld-ctype.c:3052
-#: locale/programs/ld-ctype.c:3072 locale/programs/ld-ctype.c:3111
-#: locale/programs/ld-ctype.c:3131 locale/programs/ld-ctype.c:3195
-#: locale/programs/ld-ctype.c:3236 locale/programs/ld-ctype.c:3259
+#: locale/programs/ld-ctype.c:2878 locale/programs/ld-ctype.c:2974
+#: locale/programs/ld-ctype.c:2993 locale/programs/ld-ctype.c:3013
+#: locale/programs/ld-ctype.c:3033 locale/programs/ld-ctype.c:3053
+#: locale/programs/ld-ctype.c:3073 locale/programs/ld-ctype.c:3112
+#: locale/programs/ld-ctype.c:3132 locale/programs/ld-ctype.c:3198
+#: locale/programs/ld-ctype.c:3239 locale/programs/ld-ctype.c:3262
#, c-format
msgid "%s: character `%s' not defined while needed as default value"
msgstr "%s: carattere \"%s\" non definito nonostante sia necessario come valore predefinito"
# lf
-#: locale/programs/ld-ctype.c:2882 locale/programs/ld-ctype.c:2978
-#: locale/programs/ld-ctype.c:2997 locale/programs/ld-ctype.c:3017
-#: locale/programs/ld-ctype.c:3037 locale/programs/ld-ctype.c:3057
-#: locale/programs/ld-ctype.c:3077 locale/programs/ld-ctype.c:3116
-#: locale/programs/ld-ctype.c:3136 locale/programs/ld-ctype.c:3200
+#: locale/programs/ld-ctype.c:2883 locale/programs/ld-ctype.c:2979
+#: locale/programs/ld-ctype.c:2998 locale/programs/ld-ctype.c:3018
+#: locale/programs/ld-ctype.c:3038 locale/programs/ld-ctype.c:3058
+#: locale/programs/ld-ctype.c:3078 locale/programs/ld-ctype.c:3117
+#: locale/programs/ld-ctype.c:3137 locale/programs/ld-ctype.c:3203
#, c-format
msgid "%s: character `%s' in charmap not representable with one byte"
msgstr "%s: carattere \"%s\" nella mappa caratteri non rappresentabile con un byte"
# lf
-#: locale/programs/ld-ctype.c:3242 locale/programs/ld-ctype.c:3265
+#: locale/programs/ld-ctype.c:3245 locale/programs/ld-ctype.c:3268
#, c-format
msgid "%s: character `%s' needed as default value not representable with one byte"
msgstr "%s: carattere \"%s\" necessario come valore predefinito non rappresentabile con un byte"
-#: locale/programs/ld-ctype.c:3321
+#: locale/programs/ld-ctype.c:3324
msgid "no output digits defined and none of the standard names in the charmap"
msgstr "nessuna cifra di output definita e nessun nome standard nella mappa caratteri"
-#: locale/programs/ld-ctype.c:3570
+#: locale/programs/ld-ctype.c:3573
#, c-format
msgid "%s: transliteration data from locale `%s' not available"
msgstr "%s: dati di traslitterazione dalla localizzazione \"%s\" non disponibili"
-#: locale/programs/ld-ctype.c:3669
+#: locale/programs/ld-ctype.c:3672
#, fuzzy, c-format
#| msgid "%s: table for class \"%s\": %lu bytes\n"
msgid "%s: table for class \"%s\": %lu bytes"
msgstr "%s: tabella per la classe \"%s\": %lu byte\n"
-#: locale/programs/ld-ctype.c:3733
+#: locale/programs/ld-ctype.c:3736
#, fuzzy, c-format
#| msgid "%s: table for map \"%s\": %lu bytes\n"
msgid "%s: table for map \"%s\": %lu bytes"
msgstr "%s: tabella per la mappa \"%s\": %lu byte\n"
-#: locale/programs/ld-ctype.c:3857
+#: locale/programs/ld-ctype.c:3860
#, fuzzy, c-format
#| msgid "%s: table for width: %lu bytes\n"
msgid "%s: table for width: %lu bytes"
@@ -2869,128 +2873,123 @@ msgstr ""
"NOME\n"
"[-a|-m]"
-#: locale/programs/locale.c:190
-#, c-format
-msgid "Cannot set LC_CTYPE to default locale"
-msgstr "Impossibile impostare LC_CTYPE alla localizzazione predefinita"
-
-#: locale/programs/locale.c:192
-#, c-format
-msgid "Cannot set LC_MESSAGES to default locale"
-msgstr "Impossibile impostare LC_MESSAGES alla localizzazione predefinita"
-
-#: locale/programs/locale.c:205
+# lf
+#: locale/programs/locale.c:522
#, c-format
-msgid "Cannot set LC_COLLATE to default locale"
-msgstr "Impossibile impostare LC_COLLATE alla localizzazione predefinita"
+msgid "while preparing output"
+msgstr "durante la preparazione dell'output"
-#: locale/programs/locale.c:221
-#, c-format
-msgid "Cannot set LC_ALL to default locale"
+#: locale/programs/locale.c:998
+#, fuzzy, c-format
+#| msgid "Cannot set LC_ALL to default locale"
+msgid "Cannot set %s to default locale"
msgstr "Impossibile impostare LC_ALL alla localizzazione predefinita"
-# lf
-#: locale/programs/locale.c:521
+#: locale/programs/locale.c:1096
#, c-format
-msgid "while preparing output"
-msgstr "durante la preparazione dell'output"
+msgid "warning: The LOCPATH variable is set to \"%s\"\n"
+msgstr ""
-#: locale/programs/localedef.c:112
+#: locale/programs/localedef.c:116
msgid "Input Files:"
msgstr "File di input:"
-#: locale/programs/localedef.c:114
+#: locale/programs/localedef.c:118
msgid "Symbolic character names defined in FILE"
msgstr "Nomi simbolici dei caratteri definiti in FILE"
-#: locale/programs/localedef.c:116
+#: locale/programs/localedef.c:120
msgid "Source definitions are found in FILE"
msgstr "Le definizioni originarie si trovano in FILE"
# lf
-#: locale/programs/localedef.c:118
+#: locale/programs/localedef.c:122
msgid "FILE contains mapping from symbolic names to UCS4 values"
msgstr "FILE contiene la mappatura dai nomi simbolici ai valori UCS4"
-#: locale/programs/localedef.c:122
+#: locale/programs/localedef.c:126
msgid "Create output even if warning messages were issued"
msgstr "Crea l'output anche se sono stati emessi messaggi di avvertimento"
+#: locale/programs/localedef.c:128
+msgid "Do not create hard links between installed locales"
+msgstr ""
+
# lf
-#: locale/programs/localedef.c:123
+#: locale/programs/localedef.c:129
msgid "Optional output file prefix"
msgstr "Prefisso opzionale per il file di output"
-#: locale/programs/localedef.c:124
+#: locale/programs/localedef.c:130
#, fuzzy
#| msgid "Be strictly POSIX conform"
msgid "Strictly conform to POSIX"
msgstr "Segue rigorosamente la conformità POSIX"
-#: locale/programs/localedef.c:126
+#: locale/programs/localedef.c:132
msgid "Suppress warnings and information messages"
msgstr "Non visualizza i messaggi di avvertimento e informativi"
-#: locale/programs/localedef.c:127
+#: locale/programs/localedef.c:133
msgid "Print more messages"
msgstr "Visualizza maggiori messaggi"
# lf
-#: locale/programs/localedef.c:128 locale/programs/localedef.c:131
+#: locale/programs/localedef.c:134 locale/programs/localedef.c:137
#, fuzzy
#| msgid "warning: "
msgid "<warnings>"
msgstr "avviso: "
-#: locale/programs/localedef.c:129
+#: locale/programs/localedef.c:135
msgid "Comma-separated list of warnings to disable; supported warnings are: ascii, intcurrsym"
msgstr ""
-#: locale/programs/localedef.c:132
+#: locale/programs/localedef.c:138
msgid "Comma-separated list of warnings to enable; supported warnings are: ascii, intcurrsym"
msgstr ""
-#: locale/programs/localedef.c:135
+#: locale/programs/localedef.c:141
msgid "Archive control:"
msgstr "Controllo dell'archivio:"
-#: locale/programs/localedef.c:137
+#: locale/programs/localedef.c:143
msgid "Don't add new data to archive"
msgstr "Non aggiunge nuovi dati all'archivio"
-#: locale/programs/localedef.c:139
+#: locale/programs/localedef.c:145
msgid "Add locales named by parameters to archive"
msgstr "Aggiunge all'archivio le localizzazioni nominate dai parametri"
-#: locale/programs/localedef.c:140
+#: locale/programs/localedef.c:146
msgid "Replace existing archive content"
msgstr "Sostituisce l'attuale contenuto dell'archivio"
-#: locale/programs/localedef.c:142
+#: locale/programs/localedef.c:148
msgid "Remove locales named by parameters from archive"
msgstr "Rimuove dall'archivio le localizzazioni nominate dai parametri"
-#: locale/programs/localedef.c:143
+#: locale/programs/localedef.c:149
msgid "List content of archive"
msgstr "Elenca il contenuto dell'archivio"
-#: locale/programs/localedef.c:145
+#: locale/programs/localedef.c:151
msgid "locale.alias file to consult when making archive"
msgstr "File locale.alias da consultare quando viene creato l'archivio"
-#: locale/programs/localedef.c:147
+#: locale/programs/localedef.c:153
msgid "Generate little-endian output"
msgstr ""
-#: locale/programs/localedef.c:149
+#: locale/programs/localedef.c:155
msgid "Generate big-endian output"
msgstr ""
-#: locale/programs/localedef.c:154
+#: locale/programs/localedef.c:160
msgid "Compile locale specification"
msgstr "Compila la specifica di localizzazione"
-#: locale/programs/localedef.c:157
+#: locale/programs/localedef.c:163
msgid ""
"NAME\n"
"[--add-to-archive|--delete-from-archive] FILE...\n"
@@ -3001,33 +3000,33 @@ msgstr ""
"--list-archive [FILE]"
# lf
-#: locale/programs/localedef.c:232
+#: locale/programs/localedef.c:238
#, c-format
msgid "cannot create directory for output files"
msgstr "impossibile creare la directory per i file di output"
-#: locale/programs/localedef.c:243
+#: locale/programs/localedef.c:249
msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
msgstr "FATALE: il sistema non definisce \"_POSIX2_LOCALEDEF\""
-#: locale/programs/localedef.c:257 locale/programs/localedef.c:273
-#: locale/programs/localedef.c:663 locale/programs/localedef.c:683
+#: locale/programs/localedef.c:263 locale/programs/localedef.c:279
+#: locale/programs/localedef.c:673 locale/programs/localedef.c:693
#, c-format
msgid "cannot open locale definition file `%s'"
msgstr "impossibile aprire il file di definizione della localizzazione \"%s\""
-#: locale/programs/localedef.c:297
+#: locale/programs/localedef.c:303
#, c-format
msgid "cannot write output files to `%s'"
msgstr "impossibile scrivere i file di output in \"%s\""
-#: locale/programs/localedef.c:303
+#: locale/programs/localedef.c:309
#, fuzzy
#| msgid "no output file produced because warnings were issued"
msgid "no output file produced because errors were issued"
msgstr "nessun file di output prodotto a causa degli avvertimenti riportati"
-#: locale/programs/localedef.c:431
+#: locale/programs/localedef.c:441
#, c-format
msgid ""
"System's directory for character maps : %s\n"
@@ -3040,11 +3039,11 @@ msgstr ""
"\t\t percorso localizzazioni: %s\n"
"%s"
-#: locale/programs/localedef.c:631
+#: locale/programs/localedef.c:641
msgid "circular dependencies between locale definitions"
msgstr "dipendenze circolari nelle definizioni delle localizzazioni"
-#: locale/programs/localedef.c:637
+#: locale/programs/localedef.c:647
#, c-format
msgid "cannot add already read locale `%s' a second time"
msgstr "impossibile aggiungere una seconda volta la localizzazione \"%s\" già letta"
@@ -3205,24 +3204,24 @@ msgstr "impossibile aprire il file di output \"%s\" per la categoria \"%s\""
msgid "failure while writing data for category `%s'"
msgstr "errore durante la scrittura dati per la categoria \"%s\""
-#: locale/programs/locfile.c:917
+#: locale/programs/locfile.c:930
#, c-format
msgid "cannot create output file `%s' for category `%s'"
msgstr "impossibile creare il file di output \"%s\" per la categoria \"%s\""
-#: locale/programs/locfile.c:953
+#: locale/programs/locfile.c:966
msgid "expecting string argument for `copy'"
msgstr "atteso un argomento stringa per \"copy\""
-#: locale/programs/locfile.c:957
+#: locale/programs/locfile.c:970
msgid "locale name should consist only of portable characters"
msgstr "il nome della localizzazione dovrebbe consistere solo di caratteri portabili"
-#: locale/programs/locfile.c:976
+#: locale/programs/locfile.c:989
msgid "no other keyword shall be specified when `copy' is used"
msgstr "quando è usata \"copy\" non verranno specificate altre parole chiave"
-#: locale/programs/locfile.c:990
+#: locale/programs/locfile.c:1003
#, c-format
msgid "`%1$s' definition does not end with `END %1$s'"
msgstr "\"%1$s\": la definizione non termina con \"END %1$s\""
@@ -4118,12 +4117,12 @@ msgstr "yp_update: impossibile convertire l'host in netname\n"
msgid "yp_update: cannot get server address\n"
msgstr "yp_update: impossibile ottenere l'indirizzo del server\n"
-#: nscd/aicache.c:83 nscd/hstcache.c:452
+#: nscd/aicache.c:82 nscd/hstcache.c:452
#, c-format
msgid "Haven't found \"%s\" in hosts cache!"
msgstr "\"%s\" non trovato nella cache degli host."
-#: nscd/aicache.c:85 nscd/hstcache.c:454
+#: nscd/aicache.c:84 nscd/hstcache.c:454
#, c-format
msgid "Reloading \"%s\" in hosts cache!"
msgstr "Ricaricamento di \"%s\" nella cache degli host."
@@ -4467,25 +4466,25 @@ msgstr "liberati %zu byte nella cache %s"
msgid "no more memory for database '%s'"
msgstr "memoria esaurita per il database \"%s\""
-#: nscd/netgroupcache.c:121
+#: nscd/netgroupcache.c:122
#, fuzzy, c-format
#| msgid "Haven't found \"%s\" in group cache!"
msgid "Haven't found \"%s\" in netgroup cache!"
msgstr "\"%s\" non trovato nella cache dei gruppi."
-#: nscd/netgroupcache.c:123
+#: nscd/netgroupcache.c:124
#, fuzzy, c-format
#| msgid "Reloading \"%s\" in group cache!"
msgid "Reloading \"%s\" in netgroup cache!"
msgstr "Ricaricamento di \"%s\" nella cache dei gruppi."
-#: nscd/netgroupcache.c:469
+#: nscd/netgroupcache.c:470
#, fuzzy, c-format
#| msgid "Haven't found \"%s\" in group cache!"
msgid "Haven't found \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr "\"%s\" non trovato nella cache dei gruppi."
-#: nscd/netgroupcache.c:472
+#: nscd/netgroupcache.c:473
#, fuzzy, c-format
#| msgid "Reloading \"%s\" in group cache!"
msgid "Reloading \"%s (%s,%s,%s)\" in netgroup cache!"
@@ -4544,7 +4543,7 @@ msgstr "Usa una cache separata per ciascun utente"
msgid "Name Service Cache Daemon."
msgstr "Demone di cache dei nomi di servizio (NSCD)."
-#: nscd/nscd.c:155 nss/getent.c:967 nss/makedb.c:206
+#: nscd/nscd.c:155 nss/getent.c:987 nss/makedb.c:206
#, c-format
msgid "wrong number of arguments"
msgstr "numero di argomenti errato"
@@ -4653,27 +4652,27 @@ msgstr "Errore di analisi: %s"
msgid "Must specify user name for server-user option"
msgstr "Deve essere specificato un nome utente per l'opzione server-user"
-#: nscd/nscd_conf.c:198
+#: nscd/nscd_conf.c:201
#, c-format
msgid "Must specify user name for stat-user option"
msgstr "Deve essere specificato un nome utente per l'opzione stat-user"
-#: nscd/nscd_conf.c:255
+#: nscd/nscd_conf.c:259
#, c-format
msgid "Must specify value for restart-interval option"
msgstr "Deve essere specificato un valore per l'opzione restart-interval"
-#: nscd/nscd_conf.c:269
+#: nscd/nscd_conf.c:273
#, c-format
msgid "Unknown option: %s %s %s"
msgstr "Opzione sconosciuta: %s %s %s"
-#: nscd/nscd_conf.c:282
+#: nscd/nscd_conf.c:286
#, c-format
msgid "cannot get current working directory: %s; disabling paranoia mode"
msgstr "impossibile acquisire l'attuale cartella di lavoro: %s; modalità paranoia disabilitata"
-#: nscd/nscd_conf.c:302
+#: nscd/nscd_conf.c:306
#, c-format
msgid "maximum file size for %s database too small"
msgstr "dimensione massima del file per il database %s troppo piccola"
@@ -4940,49 +4939,49 @@ msgstr "\"%s\" non trovato nella cache dei servizi."
msgid "Reloading \"%s\" in services cache!"
msgstr "Ricaricamento di \"%s\" nella cache dei servizi."
-#: nss/getent.c:54
+#: nss/getent.c:55
msgid "database [key ...]"
msgstr "database [chiave ...]"
-#: nss/getent.c:59
+#: nss/getent.c:60
#, fuzzy
#| msgid "CONF"
msgid "CONFIG"
msgstr "CONF"
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "Service configuration to be used"
msgstr "Configurazione da usare del servizio"
-#: nss/getent.c:60
+#: nss/getent.c:61
msgid "disable IDN encoding"
msgstr "disabilita codifica IDN"
-#: nss/getent.c:65
+#: nss/getent.c:66
msgid "Get entries from administrative database."
msgstr "Ottiene voci da un database amministrativo."
-#: nss/getent.c:149 nss/getent.c:442 nss/getent.c:489
+#: nss/getent.c:150 nss/getent.c:462 nss/getent.c:509
#, c-format
msgid "Enumeration not supported on %s\n"
msgstr "Enumerazione non supportata su %s\n"
-#: nss/getent.c:497 nss/getent.c:510
+#: nss/getent.c:517 nss/getent.c:530
#, fuzzy, c-format
#| msgid "Could not create log file"
msgid "Could not allocate group list: %m\n"
msgstr "Impossibile creare il file di registro"
-#: nss/getent.c:881
+#: nss/getent.c:901
#, c-format
msgid "Unknown database name"
msgstr "Nome del database sconosciuto"
-#: nss/getent.c:911
+#: nss/getent.c:931
msgid "Supported databases:\n"
msgstr "Database supportati:\n"
-#: nss/getent.c:977
+#: nss/getent.c:997
#, c-format
msgid "Unknown database: %s\n"
msgstr "Database sconosciuto: %s\n"
@@ -5269,12 +5268,12 @@ msgid "Unmatched ) or \\)"
msgstr ") o \\) senza corrispondenza"
# lf
-#: posix/regcomp.c:689
+#: posix/regcomp.c:676
msgid "No previous regular expression"
msgstr "Nessuna espressione regolare precedente"
# lf
-#: posix/wordexp.c:1815
+#: posix/wordexp.c:1816
msgid "parameter null or not set"
msgstr "parametro nullo o non impostato"
@@ -5478,7 +5477,7 @@ msgid "Input message available"
msgstr "Messaggio di input disponibile"
# lf
-#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:381 timezone/zic.c:520
+#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:375 timezone/zic.c:561
msgid "I/O error"
msgstr "Errore di I/O"
@@ -5563,7 +5562,7 @@ msgstr "Segnale %d sconosciuto"
#: sunrpc/auth_unix.c:112 sunrpc/clnt_tcp.c:124 sunrpc/clnt_udp.c:139
#: sunrpc/clnt_unix.c:125 sunrpc/svc_tcp.c:189 sunrpc/svc_tcp.c:233
#: sunrpc/svc_udp.c:161 sunrpc/svc_unix.c:189 sunrpc/svc_unix.c:229
-#: sunrpc/xdr.c:628 sunrpc/xdr.c:788 sunrpc/xdr_array.c:102
+#: sunrpc/xdr.c:631 sunrpc/xdr.c:791 sunrpc/xdr_array.c:102
#: sunrpc/xdr_rec.c:153 sunrpc/xdr_ref.c:79
msgid "out of memory\n"
msgstr "memoria esaurita\n"
@@ -6922,65 +6921,78 @@ msgid "You really blew it this time"
msgstr "Grande Giove! L'hai disintegrato"
#. TRANS Go home and have a glass of warm, dairy-fresh milk.
-#: sysdeps/gnu/errlist.c:978
+#. TRANS @c Okay. Since you are dying to know, I'll tell you.
+#. TRANS @c This is a joke, obviously. There is a children's song which begins,
+#. TRANS @c "Old McDonald had a farm, e-i-e-i-o." Every time I see the (real)
+#. TRANS @c errno macro EIO, I think about that song. Probably most of my
+#. TRANS @c compatriots who program on Unix do, too. One of them must have stayed
+#. TRANS @c up a little too late one night and decided to add it to Hurd or Glibc.
+#. TRANS @c Whoever did it should be castigated, but it made me laugh.
+#. TRANS @c --jtobey@channel1.com
+#. TRANS @c
+#. TRANS @c "bought the farm" means "died". -jtobey
+#. TRANS @c
+#. TRANS @c Translators, please do not translate this litteraly, translate it into
+#. TRANS @c an idiomatic funny way of saying that the computer died.
+#: sysdeps/gnu/errlist.c:991
msgid "Computer bought the farm"
msgstr "Il computer ha tirato le cuoia"
#. TRANS This error code has no purpose.
-#: sysdeps/gnu/errlist.c:987
+#: sysdeps/gnu/errlist.c:1000
msgid "Gratuitous error"
msgstr "Errore gratuito"
# lf
-#: sysdeps/gnu/errlist.c:995
+#: sysdeps/gnu/errlist.c:1008
msgid "Bad message"
msgstr "Messaggio errato"
# lf
-#: sysdeps/gnu/errlist.c:1003
+#: sysdeps/gnu/errlist.c:1016
msgid "Identifier removed"
msgstr "Identificatore rimosso"
-#: sysdeps/gnu/errlist.c:1011
+#: sysdeps/gnu/errlist.c:1024
msgid "Multihop attempted"
msgstr "Tentato un multihop"
# lf
-#: sysdeps/gnu/errlist.c:1019
+#: sysdeps/gnu/errlist.c:1032
msgid "No data available"
msgstr "Nessun dato disponibile"
-#: sysdeps/gnu/errlist.c:1027
+#: sysdeps/gnu/errlist.c:1040
msgid "Link has been severed"
msgstr "Il collegamento è stato interrotto"
# lf
-#: sysdeps/gnu/errlist.c:1035
+#: sysdeps/gnu/errlist.c:1048
msgid "No message of desired type"
msgstr "Nessun messaggio del tipo desiderato"
# lf
-#: sysdeps/gnu/errlist.c:1043
+#: sysdeps/gnu/errlist.c:1056
msgid "Out of streams resources"
msgstr "Risorse fuori dagli stream"
-#: sysdeps/gnu/errlist.c:1051
+#: sysdeps/gnu/errlist.c:1064
msgid "Device not a stream"
msgstr "Il dispositivo non è uno stream"
# lf
-#: sysdeps/gnu/errlist.c:1059
+#: sysdeps/gnu/errlist.c:1072
msgid "Value too large for defined data type"
msgstr "Valore troppo grande per il tipo di dati definito"
# lf
-#: sysdeps/gnu/errlist.c:1067
+#: sysdeps/gnu/errlist.c:1080
msgid "Protocol error"
msgstr "Errore di protocollo"
# lf
#
-#: sysdeps/gnu/errlist.c:1075
+#: sysdeps/gnu/errlist.c:1088
msgid "Timer expired"
msgstr "Timer scaduto"
@@ -6989,218 +7001,218 @@ msgstr "Timer scaduto"
#. TRANS completed. @xref{Asynchronous I/O}. When you call @code{aio_cancel},
#. TRANS the normal result is for the operations affected to complete with this
#. TRANS error; @pxref{Cancel AIO Operations}.
-#: sysdeps/gnu/errlist.c:1087
+#: sysdeps/gnu/errlist.c:1100
msgid "Operation canceled"
msgstr "Operazione annullata"
-#: sysdeps/gnu/errlist.c:1095
+#: sysdeps/gnu/errlist.c:1108
msgid "Owner died"
msgstr "Proprietario terminato"
-#: sysdeps/gnu/errlist.c:1103
+#: sysdeps/gnu/errlist.c:1116
msgid "State not recoverable"
msgstr "Stato non recuperabile"
# lf
-#: sysdeps/gnu/errlist.c:1111
+#: sysdeps/gnu/errlist.c:1124
msgid "Interrupted system call should be restarted"
msgstr "La chiamata di sistema interrotta dovrebbe essere riavviata"
-#: sysdeps/gnu/errlist.c:1119
+#: sysdeps/gnu/errlist.c:1132
msgid "Channel number out of range"
msgstr "Numero del canale fuori dall'intervallo"
# lf
-#: sysdeps/gnu/errlist.c:1127
+#: sysdeps/gnu/errlist.c:1140
msgid "Level 2 not synchronized"
msgstr "Livello 2 non sincronizzato"
# lf
-#: sysdeps/gnu/errlist.c:1135
+#: sysdeps/gnu/errlist.c:1148
msgid "Level 3 halted"
msgstr "Livello 3 interrotto"
# lf
-#: sysdeps/gnu/errlist.c:1143
+#: sysdeps/gnu/errlist.c:1156
msgid "Level 3 reset"
msgstr "Livello 3 azzerato"
# lf
-#: sysdeps/gnu/errlist.c:1151
+#: sysdeps/gnu/errlist.c:1164
msgid "Link number out of range"
msgstr "Numero del collegamento fuori dall'intervallo"
# lf
-#: sysdeps/gnu/errlist.c:1159
+#: sysdeps/gnu/errlist.c:1172
msgid "Protocol driver not attached"
msgstr "Driver di protocollo non allegato"
# lf
#
-#: sysdeps/gnu/errlist.c:1167
+#: sysdeps/gnu/errlist.c:1180
msgid "No CSI structure available"
msgstr "Nessuna struttura CSI disponibile"
# lf
-#: sysdeps/gnu/errlist.c:1175
+#: sysdeps/gnu/errlist.c:1188
msgid "Level 2 halted"
msgstr "Livello 2 interrotto"
# lf
-#: sysdeps/gnu/errlist.c:1183
+#: sysdeps/gnu/errlist.c:1196
msgid "Invalid exchange"
msgstr "Scambio non valido"
-#: sysdeps/gnu/errlist.c:1191
+#: sysdeps/gnu/errlist.c:1204
msgid "Invalid request descriptor"
msgstr "Descrittore di richiesta non valido"
-#: sysdeps/gnu/errlist.c:1199
+#: sysdeps/gnu/errlist.c:1212
msgid "Exchange full"
msgstr "Scambio pieno"
-#: sysdeps/gnu/errlist.c:1207
+#: sysdeps/gnu/errlist.c:1220
msgid "No anode"
msgstr "Nessun anode"
-#: sysdeps/gnu/errlist.c:1215
+#: sysdeps/gnu/errlist.c:1228
msgid "Invalid request code"
msgstr "Codice di richiesta non valido"
# lf
-#: sysdeps/gnu/errlist.c:1223
+#: sysdeps/gnu/errlist.c:1236
msgid "Invalid slot"
msgstr "Slot non valido"
-#: sysdeps/gnu/errlist.c:1231
+#: sysdeps/gnu/errlist.c:1244
msgid "File locking deadlock error"
msgstr "Errore di stallo durante il lock del file (deadlock)"
-#: sysdeps/gnu/errlist.c:1239
+#: sysdeps/gnu/errlist.c:1252
msgid "Bad font file format"
msgstr "Formato non valido per il file di carattere"
# lf
-#: sysdeps/gnu/errlist.c:1247
+#: sysdeps/gnu/errlist.c:1260
msgid "Machine is not on the network"
msgstr "La macchina non è in rete"
# lf
-#: sysdeps/gnu/errlist.c:1255
+#: sysdeps/gnu/errlist.c:1268
msgid "Package not installed"
msgstr "Pacchetto non installato"
-#: sysdeps/gnu/errlist.c:1263
+#: sysdeps/gnu/errlist.c:1276
msgid "Advertise error"
msgstr "Errore di segnalazione"
-#: sysdeps/gnu/errlist.c:1271
+#: sysdeps/gnu/errlist.c:1284
msgid "Srmount error"
msgstr "Errore di srmount"
-#: sysdeps/gnu/errlist.c:1279
+#: sysdeps/gnu/errlist.c:1292
msgid "Communication error on send"
msgstr "Errore di comunicazione in invio"
-#: sysdeps/gnu/errlist.c:1287
+#: sysdeps/gnu/errlist.c:1300
msgid "RFS specific error"
msgstr "Errore specifico di RFS"
# ls
-#: sysdeps/gnu/errlist.c:1295
+#: sysdeps/gnu/errlist.c:1308
msgid "Name not unique on network"
msgstr "Nome non univoco sulla rete"
# lf
-#: sysdeps/gnu/errlist.c:1303
+#: sysdeps/gnu/errlist.c:1316
msgid "File descriptor in bad state"
msgstr "Il descrittore del file è danneggiato"
-#: sysdeps/gnu/errlist.c:1311
+#: sysdeps/gnu/errlist.c:1324
msgid "Remote address changed"
msgstr "Indirizzo remoto modificato"
-#: sysdeps/gnu/errlist.c:1319
+#: sysdeps/gnu/errlist.c:1332
msgid "Can not access a needed shared library"
msgstr "Impossibile accedere a una libreria condivisa necessaria"
-#: sysdeps/gnu/errlist.c:1327
+#: sysdeps/gnu/errlist.c:1340
msgid "Accessing a corrupted shared library"
msgstr "Accesso a una libreria condivisa danneggiata"
-#: sysdeps/gnu/errlist.c:1335
+#: sysdeps/gnu/errlist.c:1348
msgid ".lib section in a.out corrupted"
msgstr "Sezione .lib in a.out danneggiata"
-#: sysdeps/gnu/errlist.c:1343
+#: sysdeps/gnu/errlist.c:1356
msgid "Attempting to link in too many shared libraries"
msgstr "Tentativo di fare il link in troppe librerie condivise"
-#: sysdeps/gnu/errlist.c:1351
+#: sysdeps/gnu/errlist.c:1364
msgid "Cannot exec a shared library directly"
msgstr "Impossibile eseguire direttamente una libreria condivisa"
-#: sysdeps/gnu/errlist.c:1359
+#: sysdeps/gnu/errlist.c:1372
msgid "Streams pipe error"
msgstr "Errore di pipe degli stream"
# lf
-#: sysdeps/gnu/errlist.c:1367
+#: sysdeps/gnu/errlist.c:1380
msgid "Structure needs cleaning"
msgstr "La struttura necessita di una pulizia"
# lf
-#: sysdeps/gnu/errlist.c:1375
+#: sysdeps/gnu/errlist.c:1388
msgid "Not a XENIX named type file"
msgstr "Non è un tipo di file XENIX con nome"
# lf
-#: sysdeps/gnu/errlist.c:1383
+#: sysdeps/gnu/errlist.c:1396
msgid "No XENIX semaphores available"
msgstr "Nessun semaforo XENIX disponibile"
# lf
-#: sysdeps/gnu/errlist.c:1391
+#: sysdeps/gnu/errlist.c:1404
msgid "Is a named type file"
msgstr "È un tipo di file con nome"
# lf
-#: sysdeps/gnu/errlist.c:1399
+#: sysdeps/gnu/errlist.c:1412
msgid "Remote I/O error"
msgstr "Errore di I/O remoto"
# lf
-#: sysdeps/gnu/errlist.c:1407
+#: sysdeps/gnu/errlist.c:1420
msgid "No medium found"
msgstr "Nessun supporto trovato"
# lf
-#: sysdeps/gnu/errlist.c:1415
+#: sysdeps/gnu/errlist.c:1428
msgid "Wrong medium type"
msgstr "Tipo di supporto errato"
-#: sysdeps/gnu/errlist.c:1423
+#: sysdeps/gnu/errlist.c:1436
msgid "Required key not available"
msgstr "La chiave richiesta non è disponibile"
-#: sysdeps/gnu/errlist.c:1431
+#: sysdeps/gnu/errlist.c:1444
msgid "Key has expired"
msgstr "La chiave è scaduta"
-#: sysdeps/gnu/errlist.c:1439
+#: sysdeps/gnu/errlist.c:1452
msgid "Key has been revoked"
msgstr "La chiave è stata revocata"
-#: sysdeps/gnu/errlist.c:1447
+#: sysdeps/gnu/errlist.c:1460
msgid "Key was rejected by service"
msgstr "La chiave è stata rifiutata dal servizio"
# lf
-#: sysdeps/gnu/errlist.c:1455
+#: sysdeps/gnu/errlist.c:1468
msgid "Operation not possible due to RF-kill"
msgstr "Operazione non possibile a causa di un RF-kill"
-#: sysdeps/gnu/errlist.c:1463
+#: sysdeps/gnu/errlist.c:1476
#, fuzzy
#| msgid "Object-specific hardware error"
msgid "Memory page has hardware error"
@@ -7352,31 +7364,31 @@ msgstr ""
msgid "can't disable CET"
msgstr ""
-#: timezone/zdump.c:338
+#: timezone/zdump.c:332
#, fuzzy
#| msgid "has fewer than 3 alphabetics"
msgid "has fewer than 3 characters"
msgstr "ha meno di 3 caratteri alfabetici"
-#: timezone/zdump.c:340
+#: timezone/zdump.c:334
#, fuzzy
#| msgid "has more than 6 alphabetics"
msgid "has more than 6 characters"
msgstr "ha più di 6 caratteri alfabetici"
-#: timezone/zdump.c:342
+#: timezone/zdump.c:336
msgid "has characters other than ASCII alphanumerics, '-' or '+'"
msgstr ""
-#: timezone/zdump.c:347
+#: timezone/zdump.c:341
#, c-format
msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n"
msgstr "%s: attenzione: fuso orario \"%s\" abbreviazione \"%s\" %s\n"
-#: timezone/zdump.c:393
+#: timezone/zdump.c:387
#, c-format
msgid ""
-"%s: usage: %s OPTIONS ZONENAME ...\n"
+"%s: usage: %s OPTIONS TIMEZONE ...\n"
"Options include:\n"
" -c [L,]U Start at year L (default -500), end before year U (default 2500)\n"
" -t [L,]U Start at time L, end before time U (in seconds since 1970)\n"
@@ -7389,53 +7401,59 @@ msgid ""
"Report bugs to %s.\n"
msgstr ""
-#: timezone/zdump.c:479
+#: timezone/zdump.c:473
#, c-format
msgid "%s: wild -c argument %s\n"
msgstr "%s: argomento di -c errato %s\n"
-#: timezone/zdump.c:512
+#: timezone/zdump.c:506
#, fuzzy, c-format
#| msgid "%s: wild -c argument %s\n"
msgid "%s: wild -t argument %s\n"
msgstr "%s: argomento di -c errato %s\n"
-#: timezone/zic.c:398
+#: timezone/zic.c:429
#, c-format
msgid "%s: Memory exhausted: %s\n"
msgstr "%s: memoria esaurita: %s\n"
-#: timezone/zic.c:406
+#: timezone/zic.c:437
#, fuzzy
#| msgid "time overflow"
msgid "size overflow"
msgstr "overflow dell'orario"
-#: timezone/zic.c:454
+#: timezone/zic.c:447
+#, fuzzy
+#| msgid "time overflow"
+msgid "alignment overflow"
+msgstr "overflow dell'orario"
+
+#: timezone/zic.c:495
#, fuzzy
#| msgid "Integer overflow"
msgid "integer overflow"
msgstr "Overflow dell'intero"
-#: timezone/zic.c:488
+#: timezone/zic.c:529
#, fuzzy, c-format
#| msgid "\"%s\", line %d: %s"
msgid "\"%s\", line %<PRIdMAX>: "
msgstr "\"%s\", riga %d: %s"
-#: timezone/zic.c:491
+#: timezone/zic.c:532
#, fuzzy, c-format
#| msgid " (rule from \"%s\", line %d)"
msgid " (rule from \"%s\", line %<PRIdMAX>)"
msgstr " (regola da \"%s\", riga %d)"
# lf
-#: timezone/zic.c:510
+#: timezone/zic.c:551
#, c-format
msgid "warning: "
msgstr "avviso: "
-#: timezone/zic.c:535
+#: timezone/zic.c:576
#, fuzzy, c-format
#| msgid ""
#| "%s: usage is %s [ --version ] [ --help ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n"
@@ -7445,7 +7463,7 @@ msgstr "avviso: "
msgid ""
"%s: usage is %s [ --version ] [ --help ] [ -v ] \\\n"
"\t[ -l localtime ] [ -p posixrules ] [ -d directory ] \\\n"
-"\t[ -L leapseconds ] [ filename ... ]\n"
+"\t[ -t localtime-link ] [ -L leapseconds ] [ filename ... ]\n"
"\n"
"Report bugs to %s.\n"
msgstr ""
@@ -7454,430 +7472,452 @@ msgstr ""
"\n"
"Segnalare i bug a tz@elsie.nci.nih.gov.\n"
-#: timezone/zic.c:558
+#: timezone/zic.c:599
#, fuzzy, c-format
#| msgid "%s: Can't create %s: %s\n"
msgid "%s: Can't chdir to %s: %s\n"
msgstr "%s: impossibile creare %s: %s\n"
-#: timezone/zic.c:590
+#: timezone/zic.c:632
msgid "wild compilation-time specification of zic_t"
msgstr "specifica del tempo di compilazione di zic_t errata"
-#: timezone/zic.c:610
+#: timezone/zic.c:652
#, c-format
msgid "%s: More than one -d option specified\n"
msgstr "%s: è stata specificata più di una opzione -d\n"
-#: timezone/zic.c:620
+#: timezone/zic.c:662
#, c-format
msgid "%s: More than one -l option specified\n"
msgstr "%s: è stata specificata più di una opzione -l\n"
-#: timezone/zic.c:630
+#: timezone/zic.c:672
#, c-format
msgid "%s: More than one -p option specified\n"
msgstr "%s: è stata specificata più di una opzione -p\n"
-#: timezone/zic.c:640
+#: timezone/zic.c:680
+#, fuzzy, c-format
+#| msgid "%s: More than one -d option specified\n"
+msgid "%s: More than one -t option specified\n"
+msgstr "%s: è stata specificata più di una opzione -d\n"
+
+#: timezone/zic.c:689
+msgid "-y is obsolescent"
+msgstr ""
+
+#: timezone/zic.c:693
#, c-format
msgid "%s: More than one -y option specified\n"
msgstr "%s: è stata specificata più di una opzione -y\n"
-#: timezone/zic.c:650
+#: timezone/zic.c:703
#, c-format
msgid "%s: More than one -L option specified\n"
msgstr "%s: è stata specificata più di una opzione -L\n"
-#: timezone/zic.c:659
+#: timezone/zic.c:712
msgid "-s ignored"
msgstr ""
-#: timezone/zic.c:698
+#: timezone/zic.c:753
msgid "link to link"
msgstr "collegamento a un collegamento"
# lf
-#: timezone/zic.c:701 timezone/zic.c:705
+#: timezone/zic.c:756 timezone/zic.c:760
#, fuzzy
#| msgid "Too many links"
msgid "command line"
msgstr "Troppi collegamenti"
-#: timezone/zic.c:721
+#: timezone/zic.c:776
msgid "empty file name"
msgstr ""
-#: timezone/zic.c:724
+#: timezone/zic.c:779
#, c-format
msgid "file name '%s' begins with '/'"
msgstr ""
-#: timezone/zic.c:734
+#: timezone/zic.c:789
#, c-format
msgid "file name '%s' contains '%.*s' component"
msgstr ""
-#: timezone/zic.c:740
+#: timezone/zic.c:795
#, c-format
msgid "file name '%s' component contains leading '-'"
msgstr ""
-#: timezone/zic.c:743
+#: timezone/zic.c:798
#, c-format
msgid "file name '%s' contains overlength component '%.*s...'"
msgstr ""
-#: timezone/zic.c:771
+#: timezone/zic.c:826
#, c-format
msgid "file name '%s' contains byte '%c'"
msgstr ""
-#: timezone/zic.c:772
+#: timezone/zic.c:827
#, c-format
msgid "file name '%s' contains byte '\\%o'"
msgstr ""
# lf
-#: timezone/zic.c:842
+#: timezone/zic.c:897
#, fuzzy, c-format
#| msgid "%s: Can't link from %s to %s: %s\n"
msgid "%s: link from %s/%s failed: %s\n"
msgstr "%s: impossibile creare un collegamento da %s a %s: %s\n"
-#: timezone/zic.c:852 timezone/zic.c:1815
+#: timezone/zic.c:907 timezone/zic.c:1876
#, fuzzy, c-format
#| msgid "%s: Can't remove %s: %s\n"
msgid "%s: Can't remove %s/%s: %s\n"
msgstr "%s: impossibile rimuovere %s: %s\n"
-#: timezone/zic.c:874
+#: timezone/zic.c:931
#, c-format
msgid "symbolic link used because hard link failed: %s"
msgstr ""
-#: timezone/zic.c:882
+#: timezone/zic.c:939
#, fuzzy, c-format
#| msgid "%s: Can't create %s: %s\n"
msgid "%s: Can't read %s/%s: %s\n"
msgstr "%s: impossibile creare %s: %s\n"
-#: timezone/zic.c:889 timezone/zic.c:1828
+#: timezone/zic.c:946 timezone/zic.c:1889
#, fuzzy, c-format
#| msgid "%s: Can't create %s: %s\n"
msgid "%s: Can't create %s/%s: %s\n"
msgstr "%s: impossibile creare %s: %s\n"
-#: timezone/zic.c:898
+#: timezone/zic.c:955
#, c-format
msgid "copy used because hard link failed: %s"
msgstr ""
-#: timezone/zic.c:901
+#: timezone/zic.c:958
#, c-format
msgid "copy used because symbolic link failed: %s"
msgstr ""
# lf
-#: timezone/zic.c:1013 timezone/zic.c:1015
+#: timezone/zic.c:1032 timezone/zic.c:1034
msgid "same rule name in multiple files"
msgstr "stesso nome della regola in file multipli"
-# lf
-#: timezone/zic.c:1056
-msgid "unruly zone"
-msgstr "fuso orario senza regole"
-
-#: timezone/zic.c:1063
+#: timezone/zic.c:1081
#, c-format
msgid "%s in ruleless zone"
msgstr "%s in un fuso orario senza regole"
-#: timezone/zic.c:1083
+#: timezone/zic.c:1101
msgid "standard input"
msgstr "standard input"
-#: timezone/zic.c:1088
+#: timezone/zic.c:1106
#, c-format
msgid "%s: Can't open %s: %s\n"
msgstr "%s: impossibile aprire %s: %s\n"
# lf
-#: timezone/zic.c:1099
+#: timezone/zic.c:1117
msgid "line too long"
msgstr "riga troppo lunga"
# lf
-#: timezone/zic.c:1119
+#: timezone/zic.c:1139
msgid "input line of unknown type"
msgstr "riga di input di tipo sconosciuto"
-#: timezone/zic.c:1134
-#, fuzzy, c-format
-#| msgid "%s: Leap line in non leap seconds file %s\n"
-msgid "%s: Leap line in non leap seconds file %s"
-msgstr "%s: riga \"Leap\" in un file che non è di secondi intercalari %s\n"
-
-#: timezone/zic.c:1142 timezone/zic.c:1547 timezone/zic.c:1569
+#: timezone/zic.c:1158 timezone/zic.c:1593 timezone/zic.c:1615
#, c-format
msgid "%s: panic: Invalid l_value %d\n"
msgstr "%s: errore fatale: l_value %d non valido\n"
# lf
-#: timezone/zic.c:1151
+#: timezone/zic.c:1167
msgid "expected continuation line not found"
msgstr "continuazione di riga attesa ma non trovata"
-#: timezone/zic.c:1193 timezone/zic.c:2976
+#: timezone/zic.c:1203
+#, fuzzy
+#| msgid "24:00 not handled by pre-1998 versions of zic"
+msgid "fractional seconds rejected by pre-2018 versions of zic"
+msgstr "24:00 non gestito dalle versioni di zic precedenti al 1998"
+
+#: timezone/zic.c:1221 timezone/zic.c:3078
msgid "time overflow"
msgstr "overflow dell'orario"
-#: timezone/zic.c:1198
+#: timezone/zic.c:1227
msgid "values over 24 hours not handled by pre-2007 versions of zic"
msgstr "i valori oltre le 24 ore non sono gestiti dalle versioni di zic precedenti al 2007"
+#: timezone/zic.c:1245
+msgid "invalid saved time"
+msgstr "orario memorizzato non valido"
+
# lf
-#: timezone/zic.c:1209
+#: timezone/zic.c:1256
msgid "wrong number of fields on Rule line"
msgstr "numero di campi errato nella riga \"Rule\""
# lf
-#: timezone/zic.c:1213
-msgid "nameless rule"
-msgstr "regola senza nome"
-
-#: timezone/zic.c:1218
-msgid "invalid saved time"
-msgstr "orario memorizzato non valido"
+#: timezone/zic.c:1265
+#, fuzzy, c-format
+#| msgid "Invalid numeric gid \"%s\"!"
+msgid "Invalid rule name \"%s\""
+msgstr "GID numerico \"%s\" non valido."
# lf
-#: timezone/zic.c:1235
+#: timezone/zic.c:1287
msgid "wrong number of fields on Zone line"
msgstr "numero di campi errato nella riga \"Zone\""
-#: timezone/zic.c:1240
+#: timezone/zic.c:1292
#, c-format
msgid "\"Zone %s\" line and -l option are mutually exclusive"
msgstr "La riga \"Zone %s\" e l'opzione -l sono mutuamente esclusive"
-#: timezone/zic.c:1246
+#: timezone/zic.c:1298
#, c-format
msgid "\"Zone %s\" line and -p option are mutually exclusive"
msgstr "La riga \"Zone %s\" e l'opzione -p sono mutuamente esclusive"
# ls
-#: timezone/zic.c:1253
+#: timezone/zic.c:1305
#, fuzzy, c-format
#| msgid "duplicate zone name %s (file \"%s\", line %d)"
msgid "duplicate zone name %s (file \"%s\", line %<PRIdMAX>)"
msgstr "nome del fuso %s duplicato (file \"%s\", riga %d)"
# lf
-#: timezone/zic.c:1267
+#: timezone/zic.c:1319
msgid "wrong number of fields on Zone continuation line"
msgstr "numero di campi errato nella continuazione di riga di \"Zone\""
# lf
-#: timezone/zic.c:1307
+#: timezone/zic.c:1359
#, fuzzy
#| msgid "invalid UTC offset"
msgid "invalid UT offset"
msgstr "scostamento da UTC non valido"
# ls
-#: timezone/zic.c:1311
+#: timezone/zic.c:1363
msgid "invalid abbreviation format"
msgstr "formato di abbreviazione non valido"
-#: timezone/zic.c:1320
+#: timezone/zic.c:1372
#, fuzzy, c-format
#| msgid "24:00 not handled by pre-1998 versions of zic"
msgid "format '%s' not handled by pre-2015 versions of zic"
msgstr "24:00 non gestito dalle versioni di zic precedenti al 1998"
-#: timezone/zic.c:1347
+#: timezone/zic.c:1399
msgid "Zone continuation line end time is not after end time of previous line"
msgstr "L'orario finale del fuso nella continuazione di riga non è successivo all'orario finale della riga precedente"
# lf
-#: timezone/zic.c:1374
+#: timezone/zic.c:1426
msgid "wrong number of fields on Leap line"
msgstr "numero di campi errato nella riga \"Leap\""
-#: timezone/zic.c:1383
+#: timezone/zic.c:1435
msgid "invalid leaping year"
msgstr "anno bisestile non valido"
# lf
-#: timezone/zic.c:1403 timezone/zic.c:1501
+#: timezone/zic.c:1455 timezone/zic.c:1547
msgid "invalid month name"
msgstr "nome di mese non valido"
# lf
-#: timezone/zic.c:1416 timezone/zic.c:1614 timezone/zic.c:1628
+#: timezone/zic.c:1468 timezone/zic.c:1663 timezone/zic.c:1677
msgid "invalid day of month"
msgstr "giorno del mese non valido"
-#: timezone/zic.c:1421
+#: timezone/zic.c:1473
msgid "time too small"
msgstr "orario troppo piccolo"
-#: timezone/zic.c:1425
+#: timezone/zic.c:1477
msgid "time too large"
msgstr "orario troppo grande"
-#: timezone/zic.c:1429 timezone/zic.c:1530
+#: timezone/zic.c:1481 timezone/zic.c:1576
msgid "invalid time of day"
msgstr "ora giornaliera non valida"
# lf
-#: timezone/zic.c:1448
+#: timezone/zic.c:1494
msgid "illegal CORRECTION field on Leap line"
msgstr "campo CORRECTION non consentito nella riga \"Leap\""
# lf
-#: timezone/zic.c:1453
+#: timezone/zic.c:1499
msgid "illegal Rolling/Stationary field on Leap line"
msgstr "campo Rolling/Stationary non consentito nella riga \"Leap\""
-#: timezone/zic.c:1459
-msgid "leap second precedes Big Bang"
+#: timezone/zic.c:1505
+msgid "leap second precedes Epoch"
msgstr ""
# lf
-#: timezone/zic.c:1472
+#: timezone/zic.c:1518
msgid "wrong number of fields on Link line"
msgstr "numero di campi errato nella riga \"Link\""
# lf
-#: timezone/zic.c:1476
+#: timezone/zic.c:1522
msgid "blank FROM field on Link line"
msgstr "campo FROM vuoto nella riga \"Link\""
# lf
#
# o significa "inizio dell'anno" ??
-#: timezone/zic.c:1551
+#: timezone/zic.c:1597
msgid "invalid starting year"
msgstr "anno di inizio non valido"
-#: timezone/zic.c:1573
+#: timezone/zic.c:1619
msgid "invalid ending year"
msgstr "anno di fine non valido"
-#: timezone/zic.c:1577
+#: timezone/zic.c:1623
msgid "starting year greater than ending year"
msgstr "anno di inizio più grande dell'anno di fine"
-#: timezone/zic.c:1584
+#: timezone/zic.c:1630
msgid "typed single year"
msgstr "digitato un singolo anno"
+#: timezone/zic.c:1633
+#, c-format
+msgid "year type \"%s\" is obsolete; use \"-\" instead"
+msgstr ""
+
# lf
-#: timezone/zic.c:1619
+#: timezone/zic.c:1668
msgid "invalid weekday name"
msgstr "nome del giorno della settimana non valido"
-#: timezone/zic.c:1743
+#: timezone/zic.c:1800
#, c-format
msgid "reference clients mishandle more than %d transition times"
msgstr ""
-#: timezone/zic.c:1747
+#: timezone/zic.c:1804
msgid "pre-2014 clients may mishandle more than 1200 transition times"
msgstr ""
# ls
-#: timezone/zic.c:1858
+#: timezone/zic.c:1920
#, fuzzy
#| msgid "too many transitions?!"
msgid "too many transition times"
msgstr "troppe transizioni."
-#: timezone/zic.c:2047
+#: timezone/zic.c:2107
#, c-format
-msgid "%%z UTC offset magnitude exceeds 99:59:59"
+msgid "%%z UT offset magnitude exceeds 99:59:59"
msgstr ""
-#: timezone/zic.c:2424
+#: timezone/zic.c:2488
msgid "no POSIX environment variable for zone"
msgstr "nessuna variable d'ambiente POSIX per il fuso orario"
-#: timezone/zic.c:2430
+#: timezone/zic.c:2494
#, c-format
msgid "%s: pre-%d clients may mishandle distant timestamps"
msgstr ""
-#: timezone/zic.c:2566
+#: timezone/zic.c:2631
msgid "two rules for same instant"
msgstr ""
-#: timezone/zic.c:2627
+#: timezone/zic.c:2696
msgid "can't determine time zone abbreviation to use just after until time"
msgstr "impossibile determinare l'abbreviazione del fuso orario da usare subito dopo l'orario raggiunto"
-#: timezone/zic.c:2725
+#: timezone/zic.c:2785
msgid "too many local time types"
msgstr "troppi tipi di orari locali"
-#: timezone/zic.c:2729
+#: timezone/zic.c:2789
#, fuzzy
#| msgid "UTC offset out of range"
msgid "UT offset out of range"
msgstr "scostamento da UTC fuori dall'intervallo"
-#: timezone/zic.c:2753
+#: timezone/zic.c:2813
msgid "too many leap seconds"
msgstr "troppi secondi intercalari"
-#: timezone/zic.c:2759
-msgid "repeated leap second moment"
-msgstr "secondo intercalare ripetuto"
+#: timezone/zic.c:2844
+msgid "Leap seconds too close together"
+msgstr ""
-#: timezone/zic.c:2830
+#: timezone/zic.c:2891
msgid "Wild result from command execution"
msgstr "Risultato bizzarro dall'esecuzione del comando"
-#: timezone/zic.c:2831
+#: timezone/zic.c:2892
#, c-format
msgid "%s: command was '%s', result was %d\n"
msgstr "%s: il comando era \"%s\", il risultato %d\n"
-#: timezone/zic.c:2961
+#: timezone/zic.c:2998
+#, c-format
+msgid "\"%s\" is undocumented; use \"last%s\" instead"
+msgstr ""
+
+#: timezone/zic.c:3029
+#, c-format
+msgid "\"%s\" is ambiguous in pre-2017c zic"
+msgstr ""
+
+#: timezone/zic.c:3063
msgid "Odd number of quotation marks"
msgstr "Numero dispari di apici"
-#: timezone/zic.c:3046
+#: timezone/zic.c:3157
msgid "use of 2/29 in non leap-year"
msgstr "usato 29/2 in un anno non bisestile"
-#: timezone/zic.c:3081
+#: timezone/zic.c:3192
#, fuzzy
#| msgid "rule goes past start/end of month--will not work with pre-2004 versions of zic"
msgid "rule goes past start/end of month; will not work with pre-2004 versions of zic"
msgstr "la regola che agisce prima dell'inizio/fine del mese non funzionerà con le versioni pre-2004 di zic"
-#: timezone/zic.c:3108
+#: timezone/zic.c:3219
#, fuzzy
#| msgid "time zone abbreviation has more than 3 alphabetics"
msgid "time zone abbreviation has fewer than 3 characters"
msgstr "l'abbreviazione del fuso orario ha più di 3 caratteri alfabetici"
-#: timezone/zic.c:3110
+#: timezone/zic.c:3221
#, fuzzy
#| msgid "time zone abbreviation has too many alphabetics"
msgid "time zone abbreviation has too many characters"
msgstr "l'abbreviazione del fuso orario ha troppi caratteri alfabetici"
-#: timezone/zic.c:3112
+#: timezone/zic.c:3223
msgid "time zone abbreviation differs from POSIX standard"
msgstr "l'abbreviazione del fuso orario è diversa dagli standard POSIX"
-#: timezone/zic.c:3118
+#: timezone/zic.c:3229
msgid "too many, or too long, time zone abbreviations"
msgstr "le abbreviazioni del fuso orario sono troppe o troppo lunghe"
-#: timezone/zic.c:3161
+#: timezone/zic.c:3275
#, fuzzy, c-format
#| msgid "%s: Can't create directory %s: %s\n"
msgid "%s: Can't create directory %s: %s"
@@ -7886,6 +7926,9 @@ msgstr "%s: impossibile creare la directory %s: %s\n"
#~ msgid "Try \\`%s --help' or `%s --usage' for more information.\\n"
#~ msgstr "Usare \\\"%s --help\" o \"%s --usage\" per ulteriori informazioni.\\n"
+#~ msgid "cannot open zero fill device"
+#~ msgstr "impossibile aprire il device riempito con zeri"
+
# lf
#~ msgid "cannot allocate TLS data structures for initial thread"
#~ msgstr "impossibile allocare strutture dati TLS per il thread iniziale"
@@ -7898,6 +7941,10 @@ msgstr "%s: impossibile creare la directory %s: %s\n"
#~ msgstr "chiamante non valido"
# lf
+#~ msgid "relocation error"
+#~ msgstr "errore di rilocazione"
+
+# lf
#~ msgid "cannot load any more object with static TLS"
#~ msgstr "impossibile caricare altri oggetti con un TLS statico"
@@ -7925,6 +7972,15 @@ msgstr "%s: impossibile creare la directory %s: %s\n"
#~ msgid "non-symbolic character value should not be used"
#~ msgstr "non dovrebbe essere usato un valore non simbolico per il carattere"
+#~ msgid "Cannot set LC_CTYPE to default locale"
+#~ msgstr "Impossibile impostare LC_CTYPE alla localizzazione predefinita"
+
+#~ msgid "Cannot set LC_MESSAGES to default locale"
+#~ msgstr "Impossibile impostare LC_MESSAGES alla localizzazione predefinita"
+
+#~ msgid "Cannot set LC_COLLATE to default locale"
+#~ msgstr "Impossibile impostare LC_COLLATE alla localizzazione predefinita"
+
#~ msgid "Create old-style tables"
#~ msgstr "Crea le tabelle vecchio stile"
@@ -8075,12 +8131,23 @@ msgstr "%s: impossibile creare la directory %s: %s\n"
#~ msgid "hard link failed, symbolic link used"
#~ msgstr "collegamento fisico fallito, usato il collegamento simbolico"
+# lf
+#~ msgid "unruly zone"
+#~ msgstr "fuso orario senza regole"
+
+#~ msgid "%s: Leap line in non leap seconds file %s\n"
+#~ msgstr "%s: riga \"Leap\" in un file che non è di secondi intercalari %s\n"
+
#~ msgid "%s: Error reading %s\n"
#~ msgstr "%s: errore nel leggere %s\n"
#~ msgid "%s: Error closing %s: %s\n"
#~ msgstr "%s: errore nel chiudere %s: %s\n"
+# lf
+#~ msgid "nameless rule"
+#~ msgstr "regola senza nome"
+
#~ msgid "time before zero"
#~ msgstr "orario prima di zero"
@@ -8100,6 +8167,9 @@ msgstr "%s: impossibile creare la directory %s: %s\n"
#~ msgid "internal error - addtype called with bad ttisgmt"
#~ msgstr "errore interno - chiamata addtype con ttisgmt errata"
+#~ msgid "repeated leap second moment"
+#~ msgstr "secondo intercalare ripetuto"
+
#~ msgid "time zone abbreviation lacks alphabetic at start"
#~ msgstr "manca un carattere alfabetico iniziale all'abbreviazione del fuso orario"
diff --git a/po/ja.po b/po/ja.po
index bd9b7ffbbd..d6315307f6 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: libc 2.14\n"
-"POT-Creation-Date: 2018-07-26 22:19-0400\n"
+"POT-Creation-Date: 2019-07-18 13:28-0400\n"
"PO-Revision-Date: 2011-10-08 23:43+0900\n"
"Last-Translator: Yasuaki Taniguchi <yasuakit@gmail.com>\n"
"Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
@@ -149,10 +149,10 @@ msgstr ""
"[OUTPUT-FILE [INPUT-FILE]...]"
#: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:308
-#: elf/pldd.c:252 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
-#: iconv/iconvconfig.c:379 locale/programs/locale.c:275
-#: locale/programs/localedef.c:427 login/programs/pt_chown.c:89
-#: malloc/memusagestat.c:563 nss/getent.c:933 nss/makedb.c:369
+#: elf/pldd.c:247 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
+#: iconv/iconvconfig.c:379 locale/programs/locale.c:276
+#: locale/programs/localedef.c:437 login/programs/pt_chown.c:89
+#: malloc/memusagestat.c:563 nss/getent.c:953 nss/makedb.c:369
#: posix/getconf.c:503 sysdeps/unix/sysv/linux/lddlibc4.c:61
#, fuzzy, c-format
#| msgid ""
@@ -166,11 +166,11 @@ msgstr ""
"<http://www.gnu.org/software/libc/bugs.html>.\n"
#: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64
-#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75
+#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:263 elf/sotruss.sh:75
#: elf/sprof.c:389 iconv/iconv_prog.c:422 iconv/iconvconfig.c:396
-#: locale/programs/locale.c:292 locale/programs/localedef.c:453
+#: locale/programs/locale.c:293 locale/programs/localedef.c:463
#: login/programs/pt_chown.c:63 malloc/memusage.sh:71
-#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:87 nss/makedb.c:385
+#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:88 nss/makedb.c:385
#: posix/getconf.c:485 sysdeps/unix/sysv/linux/lddlibc4.c:68
#, c-format
msgid ""
@@ -183,10 +183,10 @@ msgstr ""
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
#: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68
-#: elf/ldconfig.c:329 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:427
-#: iconv/iconvconfig.c:401 locale/programs/locale.c:297
-#: locale/programs/localedef.c:458 malloc/memusage.sh:75
-#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:92 nss/makedb.c:390
+#: elf/ldconfig.c:329 elf/pldd.c:268 elf/sprof.c:395 iconv/iconv_prog.c:427
+#: iconv/iconvconfig.c:401 locale/programs/locale.c:298
+#: locale/programs/localedef.c:468 malloc/memusage.sh:75
+#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:93 nss/makedb.c:390
#: posix/getconf.c:490
#, c-format
msgid "Written by %s.\n"
@@ -257,21 +257,21 @@ msgstr "出力ファイル`%s'ã‚’é–‹ã‘ã¾ã›ã‚“"
msgid "invalid escape sequence"
msgstr "無効ãªã‚¨ã‚¹ã‚±ãƒ¼ãƒ—シーケンスã§ã™"
-#: catgets/gencat.c:1209
+#: catgets/gencat.c:1211
msgid "unterminated message"
msgstr "終端ã—ã¦ã„ãªã„メッセージã§ã™"
-#: catgets/gencat.c:1233
+#: catgets/gencat.c:1235
#, c-format
msgid "while opening old catalog file"
msgstr "å¤ã„カタログファイルオープン中"
-#: catgets/gencat.c:1324
+#: catgets/gencat.c:1326
#, c-format
msgid "conversion modules not available"
msgstr "変æ›ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒä½¿ç”¨å‡ºæ¥ã¾ã›ã‚“"
-#: catgets/gencat.c:1350
+#: catgets/gencat.c:1352
#, c-format
msgid "cannot determine escape character"
msgstr "エスケープ文字を決定ã§ãã¾ã›ã‚“"
@@ -403,7 +403,7 @@ msgstr "ä¸æ˜Žãª OS ã§ã™"
msgid ", OS ABI: %s %d.%d.%d"
msgstr ", OS ABI: %s %d.%d.%d"
-#: elf/cache.c:163 elf/ldconfig.c:1332
+#: elf/cache.c:163 elf/ldconfig.c:1333
#, c-format
msgid "Can't open cache file %s\n"
msgstr "キャッシュファイル %s ã‚’é–‹ã‘ã¾ã›ã‚“\n"
@@ -413,38 +413,38 @@ msgstr "キャッシュファイル %s ã‚’é–‹ã‘ã¾ã›ã‚“\n"
msgid "mmap of cache file failed.\n"
msgstr "キャッシュファイル㮠mmap ã«å¤±æ•—ã—ã¾ã—ãŸã€‚\n"
-#: elf/cache.c:181 elf/cache.c:195
+#: elf/cache.c:181 elf/cache.c:195 elf/cache.c:205
#, c-format
msgid "File is not a cache file.\n"
msgstr "ファイルã¯ã‚­ãƒ£ãƒƒã‚·ãƒ¥ãƒ•ã‚¡ã‚¤ãƒ«ã§ã¯ã‚ã‚Šã¾ã›ã‚“.\n"
-#: elf/cache.c:228 elf/cache.c:238
+#: elf/cache.c:233 elf/cache.c:243
#, c-format
msgid "%d libs found in cache `%s'\n"
msgstr "%d 個ã®ãƒ©ã‚¤ãƒ–ラリãŒã‚­ãƒ£ãƒƒã‚·ãƒ¥ `%s' 内ã§è¦‹ã¤ã‹ã‚Šã¾ã—ãŸ\n"
-#: elf/cache.c:432
+#: elf/cache.c:437
#, c-format
msgid "Can't create temporary cache file %s"
msgstr "一時キャッシュファイル %s を作æˆã§ãã¾ã›ã‚“"
-#: elf/cache.c:440 elf/cache.c:450 elf/cache.c:454 elf/cache.c:458
-#: elf/cache.c:468
+#: elf/cache.c:445 elf/cache.c:455 elf/cache.c:459 elf/cache.c:463
+#: elf/cache.c:473
#, c-format
msgid "Writing of cache data failed"
msgstr "キャッシュデータã®æ›¸è¾¼ã¿ã«å¤±æ•—ã—ã¾ã—ãŸ"
-#: elf/cache.c:463
+#: elf/cache.c:468
#, c-format
msgid "Changing access rights of %s to %#o failed"
msgstr "%s ã®ã‚¢ã‚¯ã‚»ã‚¹æ¨©é™ã‚’ %#o ã¸å¤‰æ›´ã™ã‚‹ã®ã«å¤±æ•—ã—ã¾ã—ãŸ"
-#: elf/cache.c:472
+#: elf/cache.c:477
#, c-format
msgid "Renaming of %s to %s failed"
msgstr "%s ã‹ã‚‰ %s ã¸ã®åå‰å¤‰æ›´ã«å¤±æ•—ã—ã¾ã—ãŸ"
-#: elf/dl-close.c:399 elf/dl-open.c:420
+#: elf/dl-close.c:399 elf/dl-open.c:424
msgid "cannot create scope list"
msgstr "スコープリストを作æˆã§ãã¾ã›ã‚“"
@@ -527,121 +527,123 @@ msgstr "探索パスé…列を作æˆã§ãã¾ã›ã‚“"
msgid "cannot stat shared object"
msgstr "共有オブジェクトã®çŠ¶æ…‹å–å¾— (stat) ãŒã§ãã¾ã›ã‚“"
-#: elf/dl-load.c:960
-msgid "cannot open zero fill device"
-msgstr "ゼロã§åŸ‹ã‚られãŸãƒ‡ãƒã‚¤ã‚¹ã‚’é–‹ã‘ã¾ã›ã‚“"
-
-#: elf/dl-load.c:1007 elf/dl-load.c:2203
+#: elf/dl-load.c:992 elf/dl-load.c:2198
msgid "cannot create shared object descriptor"
msgstr "共有オブジェクト記述å­ã‚’作æˆã§ãã¾ã›ã‚“"
-#: elf/dl-load.c:1026 elf/dl-load.c:1560 elf/dl-load.c:1673
+#: elf/dl-load.c:1011 elf/dl-load.c:1555 elf/dl-load.c:1668
msgid "cannot read file data"
msgstr "ファイルデータを読ã¿è¾¼ã‚ã¾ã›ã‚“"
-#: elf/dl-load.c:1072
+#: elf/dl-load.c:1057
msgid "ELF load command alignment not page-aligned"
msgstr "ELF ロードコマンド整列ãŒãƒšãƒ¼ã‚¸ã§æ•´åˆ—ã•ã‚Œã¦ã„ã¾ã›ã‚“"
-#: elf/dl-load.c:1079
+#: elf/dl-load.c:1064
msgid "ELF load command address/offset not properly aligned"
msgstr "ELF ロードコマンドã®ã‚¢ãƒ‰ãƒ¬ã‚¹/オフセットãŒé©åˆ‡ã«æ•´åˆ—ã•ã‚Œã¦ã„ã¾ã›ã‚“"
-#: elf/dl-load.c:1161
+#: elf/dl-load.c:1146
#, fuzzy
#| msgid "cannot restore segment prot after reloc"
msgid "cannot process note segment"
msgstr "å†é…置後ã«ã‚»ã‚°ãƒ¡ãƒ³ãƒˆã® prot を復元ã§ãã¾ã›ã‚“"
-#: elf/dl-load.c:1172
+#: elf/dl-load.c:1157
msgid "object file has no loadable segments"
msgstr "オブジェクトファイルã¯ãƒ­ãƒ¼ãƒ‰å¯èƒ½ã‚»ã‚°ãƒ¡ãƒ³ãƒˆã‚’æŒã£ã¦ã„ã¾ã›ã‚“"
-#: elf/dl-load.c:1181 elf/dl-load.c:1652
+#: elf/dl-load.c:1170 elf/dl-load.c:1647
msgid "cannot dynamically load executable"
msgstr "実行ファイルを動的ã«ãƒ­ãƒ¼ãƒ‰ã§ãã¾ã›ã‚“"
-#: elf/dl-load.c:1202
+#: elf/dl-load.c:1191
msgid "object file has no dynamic section"
msgstr "オブジェクトファイルã¯å‹•çš„セクションをæŒã£ã¦ã„ã¾ã›ã‚“"
-#: elf/dl-load.c:1225
+#: elf/dl-load.c:1218
+#, fuzzy
+#| msgid "cannot dynamically load executable"
+msgid "cannot dynamically load position-independent executable"
+msgstr "実行ファイルを動的ã«ãƒ­ãƒ¼ãƒ‰ã§ãã¾ã›ã‚“"
+
+#: elf/dl-load.c:1220
msgid "shared object cannot be dlopen()ed"
msgstr "共有オブジェクト㯠dlopen() ã§ãã¾ã›ã‚“"
-#: elf/dl-load.c:1238
+#: elf/dl-load.c:1233
msgid "cannot allocate memory for program header"
msgstr "プログラムヘッダー用ã®ãƒ¡ãƒ¢ãƒªã‚’é…ç½®ã§ãã¾ã›ã‚“"
-#: elf/dl-load.c:1271 elf/dl-load.h:130
+#: elf/dl-load.c:1266 elf/dl-load.h:130
msgid "cannot change memory protections"
msgstr "メモリä¿è­·ã‚’変更ã§ãã¾ã›ã‚“"
-#: elf/dl-load.c:1291
+#: elf/dl-load.c:1286
msgid "cannot enable executable stack as shared object requires"
msgstr "共有オブジェクトãŒå¿…è¦ã¨ã—ã¦ã„る実行å¯èƒ½ã‚¹ã‚¿ãƒƒã‚¯ã‚’有効ã«ã§ãã¾ã›ã‚“"
-#: elf/dl-load.c:1304
+#: elf/dl-load.c:1299
msgid "cannot close file descriptor"
msgstr "ファイル記述å­ã‚’é–‰ã˜ã‚‰ã‚Œã¾ã›ã‚“"
-#: elf/dl-load.c:1560
+#: elf/dl-load.c:1555
msgid "file too short"
msgstr "ファイルãŒå°ã•ã™ãŽã¾ã™"
-#: elf/dl-load.c:1595
+#: elf/dl-load.c:1590
msgid "invalid ELF header"
msgstr "無効㪠ELF ヘッダーã§ã™"
-#: elf/dl-load.c:1607
+#: elf/dl-load.c:1602
msgid "ELF file data encoding not big-endian"
msgstr "ELF ファイルデータã®ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ãŒãƒ“ッグエンディアンã§ã¯ã‚ã‚Šã¾ã›ã‚“"
-#: elf/dl-load.c:1609
+#: elf/dl-load.c:1604
msgid "ELF file data encoding not little-endian"
msgstr "ELF ファイルデータã®ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ãŒãƒªãƒˆãƒ«ã‚¨ãƒ³ãƒ‡ã‚£ã‚¢ãƒ³ã§ã¯ã‚ã‚Šã¾ã›ã‚“"
-#: elf/dl-load.c:1613
+#: elf/dl-load.c:1608
msgid "ELF file version ident does not match current one"
msgstr "ELF ファイルãƒãƒ¼ã‚¸ãƒ§ãƒ³è­˜åˆ¥å­ãŒç¾åœ¨ã®ã‚‚ã®ã¨ä¸€è‡´ã—ã¦ã„ã¾ã›ã‚“"
-#: elf/dl-load.c:1617
+#: elf/dl-load.c:1612
msgid "ELF file OS ABI invalid"
msgstr "ELF ファイル OS ABI ãŒç„¡åŠ¹ã§ã™"
-#: elf/dl-load.c:1620
+#: elf/dl-load.c:1615
msgid "ELF file ABI version invalid"
msgstr "ELF ファイル ABI ãƒãƒ¼ã‚¸ãƒ§ãƒ³ãŒç„¡åŠ¹ã§ã™"
-#: elf/dl-load.c:1623
+#: elf/dl-load.c:1618
msgid "nonzero padding in e_ident"
msgstr "e_ident 内ã«ã‚¼ãƒ­ã§ãªã„è©°ã‚文字ãŒã‚ã‚Šã¾ã™"
-#: elf/dl-load.c:1626
+#: elf/dl-load.c:1621
msgid "internal error"
msgstr "内部エラー"
-#: elf/dl-load.c:1633
+#: elf/dl-load.c:1628
msgid "ELF file version does not match current one"
msgstr "ELFファイルã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ç•ªå·ãŒç¾åœ¨ã®ãƒ•ã‚¡ã‚¤ãƒ«ã«ä¸€è‡´ã—ã¦ã„ã¾ã›ã‚“"
-#: elf/dl-load.c:1641
+#: elf/dl-load.c:1636
msgid "only ET_DYN and ET_EXEC can be loaded"
msgstr "ET_DYN 㨠ET_EXEC ã®ã¿ãƒ­ãƒ¼ãƒ‰å¯èƒ½ã§ã™"
-#: elf/dl-load.c:1657
+#: elf/dl-load.c:1652
msgid "ELF file's phentsize not the expected size"
msgstr "ELF ファイル㮠phentsize ãŒäºˆæœŸã•ã‚ŒãŸã‚µã‚¤ã‚ºã§ã¯ã‚ã‚Šã¾ã›ã‚“"
-#: elf/dl-load.c:2222
+#: elf/dl-load.c:2217
msgid "wrong ELF class: ELFCLASS64"
msgstr "é–“é•ã£ãŸ ELF クラスã§ã™: ELFCLASS64"
-#: elf/dl-load.c:2223
+#: elf/dl-load.c:2218
msgid "wrong ELF class: ELFCLASS32"
msgstr "é–“é•ã£ãŸ ELF クラスã§ã™: ELFCLASS32"
-#: elf/dl-load.c:2226
+#: elf/dl-load.c:2221
msgid "cannot open shared object file"
msgstr "共有オブジェクトファイルを開ã‘ã¾ã›ã‚“"
@@ -653,11 +655,7 @@ msgstr "共有オブジェクトã®ã‚»ã‚°ãƒ¡ãƒ³ãƒˆã‚’マップã™ã‚‹ã®ã«å¤±æ•—
msgid "cannot map zero-fill pages"
msgstr "ゼロã§åŸ‹ã‚られãŸãƒšãƒ¼ã‚¸ã‚’マップã§ãã¾ã›ã‚“"
-#: elf/dl-lookup.c:835
-msgid "relocation error"
-msgstr "å†é…置エラーã§ã™"
-
-#: elf/dl-lookup.c:858
+#: elf/dl-lookup.c:830
msgid "symbol lookup error"
msgstr "シンボル検索エラーã§ã™"
@@ -665,19 +663,19 @@ msgstr "シンボル検索エラーã§ã™"
msgid "cannot extend global scope"
msgstr "大域スコープを拡張ã§ãã¾ã›ã‚“"
-#: elf/dl-open.c:470
+#: elf/dl-open.c:474
msgid "TLS generation counter wrapped! Please report this."
msgstr "TLS 生æˆã‚«ã‚¦ãƒ³ã‚¿ãŒä¸€å‘¨ã—ã¾ã—ãŸ! ã“れを報告ã—ã¦ãã ã•ã„。"
-#: elf/dl-open.c:534
+#: elf/dl-open.c:538
msgid "invalid mode for dlopen()"
msgstr "dlopen() 用ã®ç„¡åŠ¹ãªãƒ¢ãƒ¼ãƒ‰ã§ã™"
-#: elf/dl-open.c:551
+#: elf/dl-open.c:555
msgid "no more namespaces available for dlmopen()"
msgstr "dlmopen() 用ã«ã“れ以上åå‰ç©ºé–“を使用出æ¥ã¾ã›ã‚“"
-#: elf/dl-open.c:575
+#: elf/dl-open.c:579
msgid "invalid target namespace in dlmopen()"
msgstr "dlmopen() 内ã§ç„¡åŠ¹ãªã‚¿ãƒ¼ã‚²ãƒƒãƒˆåå‰ç©ºé–“ã§ã™"
@@ -685,20 +683,20 @@ msgstr "dlmopen() 内ã§ç„¡åŠ¹ãªã‚¿ãƒ¼ã‚²ãƒƒãƒˆåå‰ç©ºé–“ã§ã™"
msgid "cannot allocate memory in static TLS block"
msgstr "é™çš„ TLS ブロック内ã«ãƒ¡ãƒ¢ãƒªã‚’é…置出æ¥ã¾ã›ã‚“"
-#: elf/dl-reloc.c:205
+#: elf/dl-reloc.c:213
msgid "cannot make segment writable for relocation"
msgstr "セグメントをå†é…置用ã«æ›¸ãè¾¼ã¿å¯èƒ½ã«å‡ºæ¥ã¾ã›ã‚“"
-#: elf/dl-reloc.c:276
+#: elf/dl-reloc.c:272
#, c-format
msgid "%s: out of memory to store relocation results for %s\n"
msgstr "%s: %s 用ã®å†é…ç½®çµæžœã‚’ä¿å­˜ã™ã‚‹ã¨ãã«ãƒ¡ãƒ¢ãƒªãŒè¶³ã‚Šãªããªã‚Šã¾ã—ãŸ\n"
-#: elf/dl-reloc.c:292
+#: elf/dl-reloc.c:288
msgid "cannot restore segment prot after reloc"
msgstr "å†é…置後ã«ã‚»ã‚°ãƒ¡ãƒ³ãƒˆã® prot を復元ã§ãã¾ã›ã‚“"
-#: elf/dl-reloc.c:323
+#: elf/dl-reloc.c:319
msgid "cannot apply additional memory protection after relocation"
msgstr "å†é…置後ã«è¿½åŠ ã®ãƒ¡ãƒ¢ãƒªä¿è­·ã‚’é©ç”¨ã§ãã¾ã›ã‚“"
@@ -918,22 +916,22 @@ msgstr "-r を使用ã—ã¦ã„ã‚‹ã¨ãã¯è¨­å®šãƒ•ã‚¡ã‚¤ãƒ«åã¨ã—ã¦çµ¶å¯¾ãƒ‘
msgid "memory exhausted"
msgstr "メモリを使ã„æžœãŸã—ã¾ã—ãŸ"
-#: elf/ldconfig.c:1233
+#: elf/ldconfig.c:1234
#, c-format
msgid "%s:%u: cannot read directory %s"
msgstr "%s:%u: ディレクトリ %s を読ã¿è¾¼ã‚ã¾ã›ã‚“"
-#: elf/ldconfig.c:1281
+#: elf/ldconfig.c:1282
#, c-format
msgid "relative path `%s' used to build cache"
msgstr "キャッシュ生æˆæ™‚ã«ç›¸å¯¾ãƒ‘ス `%s' ãŒä½¿ç”¨ã•ã‚Œã¾ã—ãŸ"
-#: elf/ldconfig.c:1311
+#: elf/ldconfig.c:1312
#, c-format
msgid "Can't chdir to /"
msgstr "/ ã¸ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªç§»å‹• (chdir) 出æ¥ã¾ã›ã‚“"
-#: elf/ldconfig.c:1352
+#: elf/ldconfig.c:1353
#, c-format
msgid "Can't open cache file directory %s\n"
msgstr "キャッシュファイルディレクトリ %s ã‚’é–‹ã‘ã¾ã›ã‚“\n"
@@ -1003,109 +1001,115 @@ msgstr "ä¸æ˜Žãªçµ‚了コードã§çµ‚了ã—ã¾ã—ãŸ"
msgid "error: you do not have read permission for"
msgstr "エラー: 読ã¿è¾¼ã¿ãƒ‘ーミッションãŒã‚ã‚Šã¾ã›ã‚“:"
-#: elf/pldd-xx.c:105
+#: elf/pldd-xx.c:102
#, fuzzy, c-format
#| msgid "cannot read header from `%s'"
msgid "cannot find program header of process"
msgstr "`%s'ã®ãƒ˜ãƒƒãƒ€ãƒ¼ã‚’読ã‚ã¾ã›ã‚“"
-#: elf/pldd-xx.c:110
+#: elf/pldd-xx.c:106
#, fuzzy, c-format
#| msgid "cannot read header"
msgid "cannot read program header"
msgstr "ヘッダーを読ã¿è¾¼ã‚ã¾ã›ã‚“"
-#: elf/pldd-xx.c:135
+#: elf/pldd-xx.c:128
#, fuzzy, c-format
#| msgid "object file has no dynamic section"
msgid "cannot read dynamic section"
msgstr "オブジェクトファイルã¯å‹•çš„セクションをæŒã£ã¦ã„ã¾ã›ã‚“"
-#: elf/pldd-xx.c:147
+#: elf/pldd-xx.c:137
#, fuzzy, c-format
#| msgid "cannot read header"
msgid "cannot read r_debug"
msgstr "ヘッダーを読ã¿è¾¼ã‚ã¾ã›ã‚“"
-#: elf/pldd-xx.c:167
+#: elf/pldd-xx.c:154
#, fuzzy, c-format
#| msgid "cannot read archive header"
msgid "cannot read program interpreter"
msgstr "書庫ヘッダーを読ã¿è¾¼ã‚ã¾ã›ã‚“"
-#: elf/pldd-xx.c:197
+#: elf/pldd-xx.c:183
#, fuzzy, c-format
#| msgid "cannot read file data"
msgid "cannot read link map"
msgstr "ファイルデータを読ã¿è¾¼ã‚ã¾ã›ã‚“"
-#: elf/pldd-xx.c:209
+#: elf/pldd-xx.c:190
#, fuzzy, c-format
#| msgid "cannot read header"
msgid "cannot read object name"
msgstr "ヘッダーを読ã¿è¾¼ã‚ã¾ã›ã‚“"
-#: elf/pldd-xx.c:219
+#: elf/pldd-xx.c:197
#, fuzzy, c-format
#| msgid "cannot allocate memory for program header"
msgid "cannot allocate buffer for object name"
msgstr "プログラムヘッダー用ã®ãƒ¡ãƒ¢ãƒªã‚’é…ç½®ã§ãã¾ã›ã‚“"
-#: elf/pldd.c:64
+#: elf/pldd.c:58
msgid "List dynamic shared objects loaded into process."
msgstr ""
-#: elf/pldd.c:68
+#: elf/pldd.c:62
msgid "PID"
msgstr ""
-#: elf/pldd.c:100
+#: elf/pldd.c:89
#, c-format
msgid "Exactly one parameter with process ID required.\n"
msgstr ""
-#: elf/pldd.c:112
+#: elf/pldd.c:103
#, fuzzy, c-format
#| msgid "invalid argument %s for %s"
msgid "invalid process ID '%s'"
msgstr "%2$s ã«å¯¾ã™ã‚‹å¼•æ•° %1$s ãŒé–“é•ã£ã¦ã„ã¾ã™"
-#: elf/pldd.c:120
+#: elf/pldd.c:111
#, fuzzy, c-format
#| msgid "cannot open `%s'"
msgid "cannot open %s"
msgstr "`%s'ã‚’é–‹ã‘ã¾ã›ã‚“"
-#: elf/pldd.c:152
+#: elf/pldd.c:142
#, fuzzy, c-format
#| msgid "cannot open `%s'"
msgid "cannot open %s/task"
msgstr "`%s'ã‚’é–‹ã‘ã¾ã›ã‚“"
-#: elf/pldd.c:155
+#: elf/pldd.c:145
#, fuzzy, c-format
#| msgid "cannot create searchlist"
msgid "cannot prepare reading %s/task"
msgstr "サーãƒãƒªã‚¹ãƒˆã‚’作æˆã§ãã¾ã›ã‚“"
-#: elf/pldd.c:168
+#: elf/pldd.c:158
#, fuzzy, c-format
#| msgid "invalid ELF header"
msgid "invalid thread ID '%s'"
msgstr "無効㪠ELF ヘッダーã§ã™"
-#: elf/pldd.c:179
+#: elf/pldd.c:169
#, fuzzy, c-format
#| msgid "cannot access '%s'"
msgid "cannot attach to process %lu"
msgstr "'%s' ã«ã‚¢ã‚¯ã‚»ã‚¹å‡ºæ¥ã¾ã›ã‚“"
-#: elf/pldd.c:294
+#: elf/pldd.c:184
+#, fuzzy, c-format
+#| msgid "invalid saved time"
+msgid "no valid %s/task entries"
+msgstr "ä¸æ­£ãªä¿å­˜æ™‚刻ã§ã™"
+
+#: elf/pldd.c:290
#, c-format
msgid "cannot get information about process %lu"
msgstr ""
-#: elf/pldd.c:307
+#: elf/pldd.c:303
#, c-format
msgid "process %lu is no ELF program"
msgstr ""
@@ -1438,7 +1442,7 @@ msgstr "情報:"
msgid "list all known coded character sets"
msgstr "å…¨ã¦ã®æ—¢çŸ¥ã®ç¬¦å·åŒ–ã•ã‚ŒãŸæ–‡å­—集åˆã‚’一覧表示ã—ã¾ã™"
-#: iconv/iconv_prog.c:64 locale/programs/localedef.c:120
+#: iconv/iconv_prog.c:64 locale/programs/localedef.c:124
msgid "Output control:"
msgstr "出力制御:"
@@ -1447,8 +1451,8 @@ msgid "omit invalid characters from output"
msgstr "出力ã‹ã‚‰ç„¡åŠ¹ãªæ–‡å­—ã‚’å–り除ã"
#: iconv/iconv_prog.c:66 iconv/iconvconfig.c:128
-#: locale/programs/localedef.c:113 locale/programs/localedef.c:115
-#: locale/programs/localedef.c:117 locale/programs/localedef.c:144
+#: locale/programs/localedef.c:117 locale/programs/localedef.c:119
+#: locale/programs/localedef.c:121 locale/programs/localedef.c:150
#: malloc/memusagestat.c:56
#, fuzzy
#| msgid "[FILE]"
@@ -1557,7 +1561,7 @@ msgstr "高速読込ã¿ç”¨ iconv モジュール設定ファイルを作æˆã—ã
msgid "[DIR...]"
msgstr "[DIR...]"
-#: iconv/iconvconfig.c:126 locale/programs/localedef.c:123
+#: iconv/iconvconfig.c:126 locale/programs/localedef.c:129
msgid "PATH"
msgstr ""
@@ -1744,14 +1748,14 @@ msgstr "ロック状態をæŒã¤æ–‡å­—集åˆã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“
#: locale/programs/charmap.c:503 locale/programs/charmap.c:557
#: locale/programs/charmap.c:589 locale/programs/charmap.c:683
-#: locale/programs/charmap.c:738 locale/programs/charmap.c:779
-#: locale/programs/charmap.c:820
+#: locale/programs/charmap.c:739 locale/programs/charmap.c:780
+#: locale/programs/charmap.c:821
#, c-format
msgid "syntax error in %s definition: %s"
msgstr "%s ã®å®šç¾©å†…ã§æ§‹æ–‡ã‚¨ãƒ©ãƒ¼ã§ã™: %s"
#: locale/programs/charmap.c:504 locale/programs/charmap.c:684
-#: locale/programs/charmap.c:780 locale/programs/repertoire.c:229
+#: locale/programs/charmap.c:781 locale/programs/repertoire.c:229
msgid "no symbolic name given"
msgstr "シンボルåãŒä¸Žãˆã‚‰ã‚Œã¦ã„ã¾ã›ã‚“"
@@ -1767,14 +1771,14 @@ msgstr "文字エンコーディング中ã®ãƒã‚¤ãƒˆæ•°ãŒå°‘ãªã™ãŽã¾ã™"
msgid "too many bytes in character encoding"
msgstr "文字エンコーディング中ã®ãƒã‚¤ãƒˆæ•°ãŒå¤šã™ãŽã¾ã™"
-#: locale/programs/charmap.c:591 locale/programs/charmap.c:739
-#: locale/programs/charmap.c:822 locale/programs/repertoire.c:295
+#: locale/programs/charmap.c:591 locale/programs/charmap.c:740
+#: locale/programs/charmap.c:823 locale/programs/repertoire.c:295
msgid "no symbolic name given for end of range"
msgstr "領域ã®æœ€å¾Œã«ã‚·ãƒ³ãƒœãƒ«åãŒä¸Žãˆã‚‰ã‚Œã¦ã„ã¾ã›ã‚“"
#: locale/programs/charmap.c:615 locale/programs/ld-address.c:524
#: locale/programs/ld-collate.c:2616 locale/programs/ld-collate.c:3774
-#: locale/programs/ld-ctype.c:2117 locale/programs/ld-ctype.c:2829
+#: locale/programs/ld-ctype.c:2118 locale/programs/ld-ctype.c:2830
#: locale/programs/ld-identification.c:397
#: locale/programs/ld-measurement.c:213 locale/programs/ld-messages.c:295
#: locale/programs/ld-monetary.c:748 locale/programs/ld-name.c:262
@@ -1789,58 +1793,58 @@ msgstr "%1$s: 定義㌠`END %1$s' ã§çµ‚ã£ã¦ã„ã¾ã›ã‚“"
msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
msgstr "WIDTH 定義㯠CHARMAP 定義ã«å¾“ã†ã“ã¨ã®ã¿è¨±ã•ã‚Œã¾ã™"
-#: locale/programs/charmap.c:656 locale/programs/charmap.c:719
+#: locale/programs/charmap.c:656 locale/programs/charmap.c:720
#, c-format
msgid "value for %s must be an integer"
msgstr "%s ã®å€¤ã¯æ•´æ•°ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“"
-#: locale/programs/charmap.c:847
+#: locale/programs/charmap.c:848
#, c-format
msgid "%s: error in state machine"
msgstr "%s: 状態マシン内ã§ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ"
-#: locale/programs/charmap.c:855 locale/programs/ld-address.c:540
+#: locale/programs/charmap.c:856 locale/programs/ld-address.c:540
#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967
-#: locale/programs/ld-ctype.c:2114 locale/programs/ld-ctype.c:2846
+#: locale/programs/ld-ctype.c:2115 locale/programs/ld-ctype.c:2847
#: locale/programs/ld-identification.c:413
#: locale/programs/ld-measurement.c:229 locale/programs/ld-messages.c:311
#: locale/programs/ld-monetary.c:764 locale/programs/ld-name.c:278
#: locale/programs/ld-numeric.c:341 locale/programs/ld-paper.c:228
#: locale/programs/ld-telephone.c:292 locale/programs/ld-time.c:990
-#: locale/programs/locfile.c:997 locale/programs/repertoire.c:323
+#: locale/programs/locfile.c:1010 locale/programs/repertoire.c:323
#, c-format
msgid "%s: premature end of file"
msgstr "%s: ファイル終端 (EOF) ãŒæ—©ã™ãŽã¾ã™"
-#: locale/programs/charmap.c:874 locale/programs/charmap.c:885
+#: locale/programs/charmap.c:875 locale/programs/charmap.c:886
#, c-format
msgid "unknown character `%s'"
msgstr "ä¸æ˜Žãªæ–‡å­— `%s' ã§ã™"
-#: locale/programs/charmap.c:893
+#: locale/programs/charmap.c:894
#, c-format
msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d"
msgstr "ãƒã‚¤ãƒˆã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã®é–‹å§‹ã‹ã‚‰çµ‚了ã¾ã§ã®ãƒã‚¤ãƒˆæ•°ã¨ã€ç¯„囲ã®çµ‚ã‚ã‚Šã¨ãŒä¸€è‡´ã—ã¾ã›ã‚“: %d 㨠%d"
-#: locale/programs/charmap.c:998 locale/programs/ld-collate.c:2893
+#: locale/programs/charmap.c:999 locale/programs/ld-collate.c:2893
#: locale/programs/repertoire.c:418
msgid "invalid names for character range"
msgstr "キャラクタ範囲ã¨ã—ã¦ä¸æ­£ãªåå‰ã§ã™"
-#: locale/programs/charmap.c:1010 locale/programs/repertoire.c:430
+#: locale/programs/charmap.c:1011 locale/programs/repertoire.c:430
msgid "hexadecimal range format should use only capital characters"
msgstr "16進数ã®ç¯„囲形å¼ã¯è‹±å¤§æ–‡å­—ã§ã®ã¿ä½¿ç”¨ã™ã¹ãã§ã™"
-#: locale/programs/charmap.c:1028 locale/programs/repertoire.c:448
+#: locale/programs/charmap.c:1029 locale/programs/repertoire.c:448
#, c-format
msgid "<%s> and <%s> are invalid names for range"
msgstr "<%s> 㨠<%s> ã¯ç¯„囲ã¨ã—ã¦ã¯ç„¡åŠ¹ãªåå‰ã§ã™"
-#: locale/programs/charmap.c:1034 locale/programs/repertoire.c:455
+#: locale/programs/charmap.c:1035 locale/programs/repertoire.c:455
msgid "upper limit in range is smaller than lower limit"
msgstr "範囲ã®ä¸Šé™ãŒä¸‹é™ã‚ˆã‚Šå°ã•ã„ã§ã™"
-#: locale/programs/charmap.c:1092
+#: locale/programs/charmap.c:1093
msgid "resulting bytes for range not representable."
msgstr "範囲ã®çµæžœãƒã‚¤ãƒˆãŒè¡¨ç¤ºå¯èƒ½ã§ã¯ã‚ã‚Šã¾ã›ã‚“。"
@@ -1909,7 +1913,7 @@ msgid "%s: numeric country code `%d' not valid"
msgstr "%s: æ•°å­—ã®å›½ã‚³ãƒ¼ãƒ‰ `%d' ãŒç„¡åŠ¹ã§ã™"
#: locale/programs/ld-address.c:432 locale/programs/ld-address.c:469
-#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2478
+#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2479
#: locale/programs/ld-identification.c:309
#: locale/programs/ld-measurement.c:196 locale/programs/ld-messages.c:264
#: locale/programs/ld-monetary.c:503 locale/programs/ld-monetary.c:538
@@ -1932,7 +1936,7 @@ msgid "%s: unknown character in field `%s'"
msgstr "%s: フィールド `%s' 内ã«ä¸æ˜Žãªæ–‡å­—ãŒã‚ã‚Šã¾ã™"
#: locale/programs/ld-address.c:521 locale/programs/ld-collate.c:3772
-#: locale/programs/ld-ctype.c:2826 locale/programs/ld-identification.c:394
+#: locale/programs/ld-ctype.c:2827 locale/programs/ld-identification.c:394
#: locale/programs/ld-measurement.c:210 locale/programs/ld-messages.c:293
#: locale/programs/ld-monetary.c:746 locale/programs/ld-name.c:260
#: locale/programs/ld-numeric.c:323 locale/programs/ld-paper.c:210
@@ -1945,8 +1949,8 @@ msgstr "%s: ä¸å®Œå…¨ãª `END' è¡Œã§ã™"
#: locale/programs/ld-collate.c:602 locale/programs/ld-collate.c:898
#: locale/programs/ld-collate.c:911 locale/programs/ld-collate.c:2582
#: locale/programs/ld-collate.c:2603 locale/programs/ld-collate.c:3957
-#: locale/programs/ld-ctype.c:1846 locale/programs/ld-ctype.c:2104
-#: locale/programs/ld-ctype.c:2676 locale/programs/ld-ctype.c:2837
+#: locale/programs/ld-ctype.c:1847 locale/programs/ld-ctype.c:2105
+#: locale/programs/ld-ctype.c:2677 locale/programs/ld-ctype.c:2838
#: locale/programs/ld-identification.c:404
#: locale/programs/ld-measurement.c:220 locale/programs/ld-messages.c:302
#: locale/programs/ld-monetary.c:755 locale/programs/ld-name.c:269
@@ -2291,131 +2295,131 @@ msgstr "文字マップ `%s' ã¯æ—¢ã«å®šç¾©ã•ã‚Œã¦ã„ã¾ã™"
msgid "implementation limit: no more than %d character maps allowed"
msgstr "実装上ã®åˆ¶é™: %d より大ãã„文字マップã¯è¨±å¯ã•ã‚Œã¦ã„ã¾ã›ã‚“"
-#: locale/programs/ld-ctype.c:1434 locale/programs/ld-ctype.c:1559
-#: locale/programs/ld-ctype.c:1665 locale/programs/ld-ctype.c:2341
-#: locale/programs/ld-ctype.c:3299
+#: locale/programs/ld-ctype.c:1435 locale/programs/ld-ctype.c:1560
+#: locale/programs/ld-ctype.c:1666 locale/programs/ld-ctype.c:2342
+#: locale/programs/ld-ctype.c:3302
#, c-format
msgid "%s: field `%s' does not contain exactly ten entries"
msgstr "%s: フィールド `%s' ã¯åŽ³å¯†ã«10項目をå«ã‚“ã§ã„ã¾ã›ã‚“"
-#: locale/programs/ld-ctype.c:1462 locale/programs/ld-ctype.c:2036
+#: locale/programs/ld-ctype.c:1463 locale/programs/ld-ctype.c:2037
#, c-format
msgid "to-value <U%0*X> of range is smaller than from-value <U%0*X>"
msgstr "範囲㮠to ã®å€¤ <U%0*X> 㯠from ã®å€¤ <U%0*X> よりå°ã•ã„ã§ã™"
-#: locale/programs/ld-ctype.c:1589
+#: locale/programs/ld-ctype.c:1590
msgid "start and end character sequence of range must have the same length"
msgstr "範囲ã®é–‹å§‹ã¨çµ‚了文字シーケンスã¯åŒä¸€é•·ã§ãªã‘ã‚Œã°ã„ã‘ã¾ã›ã‚“"
-#: locale/programs/ld-ctype.c:1596
+#: locale/programs/ld-ctype.c:1597
msgid "to-value character sequence is smaller than from-value sequence"
msgstr "to 値ã®æ–‡å­—シーケンス㯠from 値ã®æ–‡å­—シーケンスよりもå°ã•ã™ãŽã¾ã™"
-#: locale/programs/ld-ctype.c:1956 locale/programs/ld-ctype.c:2007
+#: locale/programs/ld-ctype.c:1957 locale/programs/ld-ctype.c:2008
msgid "premature end of `translit_ignore' definition"
msgstr "`translit_ignore' 定義ã®çµ‚端ãŒæ—©ã™ãŽã¾ã™"
-#: locale/programs/ld-ctype.c:1962 locale/programs/ld-ctype.c:2013
-#: locale/programs/ld-ctype.c:2055
+#: locale/programs/ld-ctype.c:1963 locale/programs/ld-ctype.c:2014
+#: locale/programs/ld-ctype.c:2056
msgid "syntax error"
msgstr "構文エラーã§ã™"
-#: locale/programs/ld-ctype.c:2188
+#: locale/programs/ld-ctype.c:2189
#, c-format
msgid "%s: syntax error in definition of new character class"
msgstr "%s: æ–°ã—ã„文字クラスã®å®šç¾©å†…ã§æ§‹æ–‡ã‚¨ãƒ©ãƒ¼ã§ã™"
-#: locale/programs/ld-ctype.c:2203
+#: locale/programs/ld-ctype.c:2204
#, c-format
msgid "%s: syntax error in definition of new character map"
msgstr "%s: æ–°ã—ã„文字マップã®å®šç¾©å†…ã§æ§‹æ–‡ã‚¨ãƒ©ãƒ¼ã§ã™"
-#: locale/programs/ld-ctype.c:2363
+#: locale/programs/ld-ctype.c:2364
msgid "ellipsis range must be marked by two operands of same type"
msgstr "çœç•¥ã®ç¯„囲ã¯åŒã˜åž‹ã®äºŒå€‹ã®è¢«æ¼”ç®—å­ã«ã‚ˆã‚Šãƒžãƒ¼ã‚¯ã•ã‚Œã¦ã„ãªã‘ã‚Œã°ã„ã‘ã¾ã›ã‚“"
-#: locale/programs/ld-ctype.c:2372
+#: locale/programs/ld-ctype.c:2373
msgid "with symbolic name range values the absolute ellipsis `...' must not be used"
msgstr "シンボルåã®å€¤ã®ç¯„囲ã¨ã—ã¦çµ¶å¯¾çœç•¥ `...' ã¯ä½¿ç”¨ã—ã¦ã¯ã„ã‘ã¾ã›ã‚“"
-#: locale/programs/ld-ctype.c:2387
+#: locale/programs/ld-ctype.c:2388
msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'"
msgstr "UCS ã®å€¤ã®ç¯„囲ã¨ã—ã¦16進シンボルçœç•¥ `..' を使用ã—ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“"
-#: locale/programs/ld-ctype.c:2401
+#: locale/programs/ld-ctype.c:2402
msgid "with character code range values one must use the absolute ellipsis `...'"
msgstr "文字コードã®å€¤ã®ç¯„囲ã¨ã—ã¦çµ¶å¯¾çœç•¥ `...' を使用ã—ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“"
-#: locale/programs/ld-ctype.c:2552
+#: locale/programs/ld-ctype.c:2553
#, c-format
msgid "duplicated definition for mapping `%s'"
msgstr "é‡è¤‡ã—ãŸãƒžãƒƒãƒ”ング `%s' ã®å®šç¾©ã§ã™"
-#: locale/programs/ld-ctype.c:2638 locale/programs/ld-ctype.c:2782
+#: locale/programs/ld-ctype.c:2639 locale/programs/ld-ctype.c:2783
#, c-format
msgid "%s: `translit_start' section does not end with `translit_end'"
msgstr "%s: `translit_start' セクション㌠`translit_end' ã§çµ‚ã£ã¦ã„ã¾ã›ã‚“"
-#: locale/programs/ld-ctype.c:2733
+#: locale/programs/ld-ctype.c:2734
#, c-format
msgid "%s: duplicate `default_missing' definition"
msgstr "%s: é‡è¤‡ã—㟠`default_missing' 定義ã§ã™"
-#: locale/programs/ld-ctype.c:2738
+#: locale/programs/ld-ctype.c:2739
msgid "previous definition was here"
msgstr "å‰ã®å®šç¾©ãŒã“ã“ã«ã‚ã‚Šã¾ã—ãŸ"
-#: locale/programs/ld-ctype.c:2760
+#: locale/programs/ld-ctype.c:2761
#, c-format
msgid "%s: no representable `default_missing' definition found"
msgstr "%s: 表ç¾å¯èƒ½ãª `default_missing' 定義ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“"
-#: locale/programs/ld-ctype.c:2877 locale/programs/ld-ctype.c:2973
-#: locale/programs/ld-ctype.c:2992 locale/programs/ld-ctype.c:3012
-#: locale/programs/ld-ctype.c:3032 locale/programs/ld-ctype.c:3052
-#: locale/programs/ld-ctype.c:3072 locale/programs/ld-ctype.c:3111
-#: locale/programs/ld-ctype.c:3131 locale/programs/ld-ctype.c:3195
-#: locale/programs/ld-ctype.c:3236 locale/programs/ld-ctype.c:3259
+#: locale/programs/ld-ctype.c:2878 locale/programs/ld-ctype.c:2974
+#: locale/programs/ld-ctype.c:2993 locale/programs/ld-ctype.c:3013
+#: locale/programs/ld-ctype.c:3033 locale/programs/ld-ctype.c:3053
+#: locale/programs/ld-ctype.c:3073 locale/programs/ld-ctype.c:3112
+#: locale/programs/ld-ctype.c:3132 locale/programs/ld-ctype.c:3198
+#: locale/programs/ld-ctype.c:3239 locale/programs/ld-ctype.c:3262
#, c-format
msgid "%s: character `%s' not defined while needed as default value"
msgstr "%s: 文字 `%s' ãŒãƒ‡ãƒ•ã‚©ãƒ«ãƒˆå€¤ã¨ã—ã¦å¿…è¦ã§ã™ãŒå®šç¾©ã•ã‚Œã¦ã„ã¾ã›ã‚“"
-#: locale/programs/ld-ctype.c:2882 locale/programs/ld-ctype.c:2978
-#: locale/programs/ld-ctype.c:2997 locale/programs/ld-ctype.c:3017
-#: locale/programs/ld-ctype.c:3037 locale/programs/ld-ctype.c:3057
-#: locale/programs/ld-ctype.c:3077 locale/programs/ld-ctype.c:3116
-#: locale/programs/ld-ctype.c:3136 locale/programs/ld-ctype.c:3200
+#: locale/programs/ld-ctype.c:2883 locale/programs/ld-ctype.c:2979
+#: locale/programs/ld-ctype.c:2998 locale/programs/ld-ctype.c:3018
+#: locale/programs/ld-ctype.c:3038 locale/programs/ld-ctype.c:3058
+#: locale/programs/ld-ctype.c:3078 locale/programs/ld-ctype.c:3117
+#: locale/programs/ld-ctype.c:3137 locale/programs/ld-ctype.c:3203
#, c-format
msgid "%s: character `%s' in charmap not representable with one byte"
msgstr "%s: 文字マップ内ã®æ–‡å­— `%s' ã¯ä¸€ãƒã‚¤ãƒˆã§è¡¨ç¾ã§ãã¾ã›ã‚“"
-#: locale/programs/ld-ctype.c:3242 locale/programs/ld-ctype.c:3265
+#: locale/programs/ld-ctype.c:3245 locale/programs/ld-ctype.c:3268
#, c-format
msgid "%s: character `%s' needed as default value not representable with one byte"
msgstr "%s: デフォルト値ã¨ã—ã¦å¿…è¦ãªæ–‡å­— `%s' ãŒä¸€ãƒã‚¤ãƒˆã§è¡¨ç¾ã§ãã¾ã›ã‚“"
-#: locale/programs/ld-ctype.c:3321
+#: locale/programs/ld-ctype.c:3324
msgid "no output digits defined and none of the standard names in the charmap"
msgstr "出力æ¡ãŒå®šç¾©ã•ã‚Œã¦ã„ãªã„ã‹ã€æ–‡å­—マップ内ã«æ¨™æº–åãŒã‚ã‚Šã¾ã›ã‚“"
-#: locale/programs/ld-ctype.c:3570
+#: locale/programs/ld-ctype.c:3573
#, c-format
msgid "%s: transliteration data from locale `%s' not available"
msgstr "%s: ロケール `%s' ã‹ã‚‰ã®ãƒªãƒ†ãƒ©ãƒ«å¤‰æ›ãƒ‡ãƒ¼ã‚¿ãŒä½¿ç”¨å‡ºæ¥ã¾ã›ã‚“"
-#: locale/programs/ld-ctype.c:3669
+#: locale/programs/ld-ctype.c:3672
#, fuzzy, c-format
#| msgid "%s: table for class \"%s\": %lu bytes\n"
msgid "%s: table for class \"%s\": %lu bytes"
msgstr "%s: クラス \"%s\" 用ã®è¡¨: %lu ãƒã‚¤ãƒˆ\n"
-#: locale/programs/ld-ctype.c:3733
+#: locale/programs/ld-ctype.c:3736
#, fuzzy, c-format
#| msgid "%s: table for map \"%s\": %lu bytes\n"
msgid "%s: table for map \"%s\": %lu bytes"
msgstr "%s: マップ \"%s\" 用ã®è¡¨: %lu ãƒã‚¤ãƒˆ\n"
-#: locale/programs/ld-ctype.c:3857
+#: locale/programs/ld-ctype.c:3860
#, fuzzy, c-format
#| msgid "%s: table for width: %lu bytes\n"
msgid "%s: table for width: %lu bytes"
@@ -2658,124 +2662,119 @@ msgstr ""
"NAME\n"
"[-a|-m]"
-#: locale/programs/locale.c:190
+#: locale/programs/locale.c:522
#, c-format
-msgid "Cannot set LC_CTYPE to default locale"
-msgstr "LC_CTYPE をデフォルトロケールã¸è¨­å®šã§ãã¾ã›ã‚“"
-
-#: locale/programs/locale.c:192
-#, c-format
-msgid "Cannot set LC_MESSAGES to default locale"
-msgstr "LC_MESSAGES をデフォルトロケールã¸è¨­å®šã§ãã¾ã›ã‚“"
-
-#: locale/programs/locale.c:205
-#, c-format
-msgid "Cannot set LC_COLLATE to default locale"
-msgstr "LC_COLLATE をデフォルトロケールã¸è¨­å®šã§ãã¾ã›ã‚“"
+msgid "while preparing output"
+msgstr "出力を準備中"
-#: locale/programs/locale.c:221
-#, c-format
-msgid "Cannot set LC_ALL to default locale"
+#: locale/programs/locale.c:998
+#, fuzzy, c-format
+#| msgid "Cannot set LC_ALL to default locale"
+msgid "Cannot set %s to default locale"
msgstr "LC_ALLをデフォルトロケールã¸è¨­å®šã§ãã¾ã›ã‚“"
-#: locale/programs/locale.c:521
+#: locale/programs/locale.c:1096
#, c-format
-msgid "while preparing output"
-msgstr "出力を準備中"
+msgid "warning: The LOCPATH variable is set to \"%s\"\n"
+msgstr ""
-#: locale/programs/localedef.c:112
+#: locale/programs/localedef.c:116
msgid "Input Files:"
msgstr "入力ファイル:"
-#: locale/programs/localedef.c:114
+#: locale/programs/localedef.c:118
msgid "Symbolic character names defined in FILE"
msgstr "シンボル文字å㯠FILE 内ã§å®šç¾©ã•ã‚Œã¦ã„ã¾ã™"
-#: locale/programs/localedef.c:116
+#: locale/programs/localedef.c:120
msgid "Source definitions are found in FILE"
msgstr "FILE 内ã§ã‚½ãƒ¼ã‚¹å®šç¾©ãŒè¦‹ã¤ã‹ã‚Šã¾ã—ãŸ"
-#: locale/programs/localedef.c:118
+#: locale/programs/localedef.c:122
msgid "FILE contains mapping from symbolic names to UCS4 values"
msgstr "FILE ã«ã¯ã‚·ãƒ³ãƒœãƒ«åã‹ã‚‰ UCS4 値ã¸ã®ãƒžãƒƒãƒ—ãŒå«ã¾ã‚Œã¾ã™"
-#: locale/programs/localedef.c:122
+#: locale/programs/localedef.c:126
msgid "Create output even if warning messages were issued"
msgstr "警告メッセージãŒã‚ã£ã¦ã‚‚出力を作æˆã™ã‚‹"
-#: locale/programs/localedef.c:123
+#: locale/programs/localedef.c:128
+msgid "Do not create hard links between installed locales"
+msgstr ""
+
+#: locale/programs/localedef.c:129
msgid "Optional output file prefix"
msgstr "出力ファイルã«ã‚ªãƒ—ションã®æŽ¥é ­è¾žã‚’付加ã™ã‚‹"
-#: locale/programs/localedef.c:124
+#: locale/programs/localedef.c:130
#, fuzzy
#| msgid "Be strictly POSIX conform"
msgid "Strictly conform to POSIX"
msgstr "厳密㫠POSIX è¦æ ¼ã«æº–æ‹ ã™ã‚‹"
-#: locale/programs/localedef.c:126
+#: locale/programs/localedef.c:132
msgid "Suppress warnings and information messages"
msgstr "警告ã¨æƒ…報メッセージを抑制ã™ã‚‹"
-#: locale/programs/localedef.c:127
+#: locale/programs/localedef.c:133
msgid "Print more messages"
msgstr "詳細ãªãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’表示ã™ã‚‹"
-#: locale/programs/localedef.c:128 locale/programs/localedef.c:131
+#: locale/programs/localedef.c:134 locale/programs/localedef.c:137
#, fuzzy
#| msgid "warning: "
msgid "<warnings>"
msgstr "警告: "
-#: locale/programs/localedef.c:129
+#: locale/programs/localedef.c:135
msgid "Comma-separated list of warnings to disable; supported warnings are: ascii, intcurrsym"
msgstr ""
-#: locale/programs/localedef.c:132
+#: locale/programs/localedef.c:138
msgid "Comma-separated list of warnings to enable; supported warnings are: ascii, intcurrsym"
msgstr ""
-#: locale/programs/localedef.c:135
+#: locale/programs/localedef.c:141
msgid "Archive control:"
msgstr "書庫制御:"
-#: locale/programs/localedef.c:137
+#: locale/programs/localedef.c:143
msgid "Don't add new data to archive"
msgstr "書庫ã«æ–°ã—ã„データを追加ã—ãªã„"
-#: locale/programs/localedef.c:139
+#: locale/programs/localedef.c:145
msgid "Add locales named by parameters to archive"
msgstr "パラメータã§æŒ‡å®šã•ã‚ŒãŸåå‰ã®ãƒ­ã‚±ãƒ¼ãƒ«ã‚’書庫ã«è¿½åŠ ã™ã‚‹"
-#: locale/programs/localedef.c:140
+#: locale/programs/localedef.c:146
msgid "Replace existing archive content"
msgstr "既存ã®æ›¸åº«ã®å†…容を置æ›ã™ã‚‹"
-#: locale/programs/localedef.c:142
+#: locale/programs/localedef.c:148
msgid "Remove locales named by parameters from archive"
msgstr "パラメータã§æŒ‡å®šã•ã‚ŒãŸåå‰ã®ãƒ­ã‚±ãƒ¼ãƒ«ã‚’書庫ã‹ã‚‰å‰Šé™¤ã™ã‚‹"
-#: locale/programs/localedef.c:143
+#: locale/programs/localedef.c:149
msgid "List content of archive"
msgstr "書庫ã®å†…容ã®ãƒªã‚¹ãƒˆã‚’表示ã™ã‚‹"
-#: locale/programs/localedef.c:145
+#: locale/programs/localedef.c:151
msgid "locale.alias file to consult when making archive"
msgstr "書庫を作æˆã™ã‚‹æ™‚ã« locale.alias ファイルをå‚ç…§ã™ã‚‹"
-#: locale/programs/localedef.c:147
+#: locale/programs/localedef.c:153
msgid "Generate little-endian output"
msgstr ""
-#: locale/programs/localedef.c:149
+#: locale/programs/localedef.c:155
msgid "Generate big-endian output"
msgstr ""
-#: locale/programs/localedef.c:154
+#: locale/programs/localedef.c:160
msgid "Compile locale specification"
msgstr "ロケール仕様をコンパイルã™ã‚‹"
-#: locale/programs/localedef.c:157
+#: locale/programs/localedef.c:163
msgid ""
"NAME\n"
"[--add-to-archive|--delete-from-archive] FILE...\n"
@@ -2785,33 +2784,33 @@ msgstr ""
"[--add-to-archive|--delete-from-archive] FILE...\n"
"--list-archive [FILE]"
-#: locale/programs/localedef.c:232
+#: locale/programs/localedef.c:238
#, c-format
msgid "cannot create directory for output files"
msgstr "出力ファイル用ディレクトリãŒä½œæˆã§ãã¾ã›ã‚“"
-#: locale/programs/localedef.c:243
+#: locale/programs/localedef.c:249
msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
msgstr "致命的: システム㯠`_POSIX2_LOCALEDEF' を定義ã—ã¾ã›ã‚“"
-#: locale/programs/localedef.c:257 locale/programs/localedef.c:273
-#: locale/programs/localedef.c:663 locale/programs/localedef.c:683
+#: locale/programs/localedef.c:263 locale/programs/localedef.c:279
+#: locale/programs/localedef.c:673 locale/programs/localedef.c:693
#, c-format
msgid "cannot open locale definition file `%s'"
msgstr "ロケール定義ファイル `%s' ã‚’é–‹ã‘ã¾ã›ã‚“"
-#: locale/programs/localedef.c:297
+#: locale/programs/localedef.c:303
#, c-format
msgid "cannot write output files to `%s'"
msgstr "出力ファイル `%s' ã¸æ›¸ãè¾¼ã‚ã¾ã›ã‚“"
-#: locale/programs/localedef.c:303
+#: locale/programs/localedef.c:309
#, fuzzy
#| msgid "no output file produced because warnings were issued"
msgid "no output file produced because errors were issued"
msgstr "警告ãŒå‡ºã•ã‚ŒãŸãŸã‚出力ファイルãŒä½œæˆã•ã‚Œã¾ã›ã‚“ã§ã—ãŸ"
-#: locale/programs/localedef.c:431
+#: locale/programs/localedef.c:441
#, c-format
msgid ""
"System's directory for character maps : %s\n"
@@ -2824,11 +2823,11 @@ msgstr ""
"ロケールパス用ã®ã‚·ã‚¹ãƒ†ãƒ ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª : %s\n"
"%s"
-#: locale/programs/localedef.c:631
+#: locale/programs/localedef.c:641
msgid "circular dependencies between locale definitions"
msgstr "ロケール定義間ã§ä¾å­˜é–¢ä¿‚ãŒå¾ªç’°ã—ã¦ã„ã¾ã™"
-#: locale/programs/localedef.c:637
+#: locale/programs/localedef.c:647
#, c-format
msgid "cannot add already read locale `%s' a second time"
msgstr "読ã¿è¾¼ã¿æ¸ˆã¿ã®ãƒ­ã‚±ãƒ¼ãƒ« `%s' ã®äºŒå›žç›®ã®è¿½åŠ ã¯å‡ºæ¥ã¾ã›ã‚“"
@@ -2985,24 +2984,24 @@ msgstr "カテゴリ `%2$s' 用ã®å‡ºåŠ›ãƒ•ã‚¡ã‚¤ãƒ« `%1$s' ã‚’é–‹ã‘ã¾ã›ã‚“"
msgid "failure while writing data for category `%s'"
msgstr "カテゴリ `%s' 用ã®ãƒ‡ãƒ¼ã‚¿æ›¸ãè¾¼ã¿ä¸­ã«å¤±æ•—ã—ã¾ã—ãŸ"
-#: locale/programs/locfile.c:917
+#: locale/programs/locfile.c:930
#, c-format
msgid "cannot create output file `%s' for category `%s'"
msgstr "カテゴリ `%2$s' 用ã®å‡ºåŠ›ãƒ•ã‚¡ã‚¤ãƒ« `%1$s' を作æˆã§ãã¾ã›ã‚“"
-#: locale/programs/locfile.c:953
+#: locale/programs/locfile.c:966
msgid "expecting string argument for `copy'"
msgstr "`copy' 用ã«ã¯æ–‡å­—列引数ãŒäºˆæœŸã•ã‚Œã¾ã™"
-#: locale/programs/locfile.c:957
+#: locale/programs/locfile.c:970
msgid "locale name should consist only of portable characters"
msgstr "ロケールåã¯ç§»æ¤æ€§ãŒã‚る文字ã ã‘ã§æ§‹æˆã™ã¹ãã§ã™"
-#: locale/programs/locfile.c:976
+#: locale/programs/locfile.c:989
msgid "no other keyword shall be specified when `copy' is used"
msgstr "`copy' を使用ã—ãŸã¨ãã«ä»–ã®ã„ã‹ãªã‚‹ã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ã‚‚指定ã•ã‚Œã¾ã›ã‚“ã§ã—ãŸ"
-#: locale/programs/locfile.c:990
+#: locale/programs/locfile.c:1003
#, c-format
msgid "`%1$s' definition does not end with `END %1$s'"
msgstr "定義`%1$s' ㌠`END %1$s' ã§çµ‚ã£ã¦ã„ã¾ã›ã‚“"
@@ -3834,12 +3833,12 @@ msgstr "yp_update: ホストをãƒãƒƒãƒˆåã¸å¤‰æ›ã§ãã¾ã›ã‚“\n"
msgid "yp_update: cannot get server address\n"
msgstr "yp_update: サーãƒãƒ¼ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’å–å¾—ã§ãã¾ã›ã‚“\n"
-#: nscd/aicache.c:83 nscd/hstcache.c:452
+#: nscd/aicache.c:82 nscd/hstcache.c:452
#, c-format
msgid "Haven't found \"%s\" in hosts cache!"
msgstr "ホストキャッシュ内㫠\"%s\" ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“!"
-#: nscd/aicache.c:85 nscd/hstcache.c:454
+#: nscd/aicache.c:84 nscd/hstcache.c:454
#, c-format
msgid "Reloading \"%s\" in hosts cache!"
msgstr "ホストキャッシュ内㮠\"%s\" ã‚’å†ãƒ­ãƒ¼ãƒ‰ã—ã¦ã„ã¾ã™"
@@ -4167,25 +4166,25 @@ msgstr "%zu ãƒã‚¤ãƒˆè§£æ”¾ã•ã‚Œã¾ã—㟠(%s キャッシュ内)"
msgid "no more memory for database '%s'"
msgstr "データベース '%s' 用ã®ãƒ¡ãƒ¢ãƒªãŒã“れ以上ã‚ã‚Šã¾ã›ã‚“"
-#: nscd/netgroupcache.c:121
+#: nscd/netgroupcache.c:122
#, fuzzy, c-format
#| msgid "Haven't found \"%s\" in group cache!"
msgid "Haven't found \"%s\" in netgroup cache!"
msgstr "グループキャッシュ内㫠\"%s\" ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“!"
-#: nscd/netgroupcache.c:123
+#: nscd/netgroupcache.c:124
#, fuzzy, c-format
#| msgid "Reloading \"%s\" in group cache!"
msgid "Reloading \"%s\" in netgroup cache!"
msgstr "グループキャッシュ内㮠\"%s\" ã‚’å†ãƒ­ãƒ¼ãƒ‰ã—ã¦ã„ã¾ã™!"
-#: nscd/netgroupcache.c:469
+#: nscd/netgroupcache.c:470
#, fuzzy, c-format
#| msgid "Haven't found \"%s\" in group cache!"
msgid "Haven't found \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr "グループキャッシュ内㫠\"%s\" ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“!"
-#: nscd/netgroupcache.c:472
+#: nscd/netgroupcache.c:473
#, fuzzy, c-format
#| msgid "Reloading \"%s\" in group cache!"
msgid "Reloading \"%s (%s,%s,%s)\" in netgroup cache!"
@@ -4239,7 +4238,7 @@ msgstr "ユーザã”ã¨ã«ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã‚’分離ã™ã‚‹"
msgid "Name Service Cache Daemon."
msgstr "åå‰ã‚µãƒ¼ãƒ“スキャッシュデーモン。"
-#: nscd/nscd.c:155 nss/getent.c:967 nss/makedb.c:206
+#: nscd/nscd.c:155 nss/getent.c:987 nss/makedb.c:206
#, c-format
msgid "wrong number of arguments"
msgstr "引数ã®æ•°ãŒé–“é•ã£ã¦ã„ã¾ã™"
@@ -4345,27 +4344,27 @@ msgstr "構文解æžã‚¨ãƒ©ãƒ¼: %s"
msgid "Must specify user name for server-user option"
msgstr "server-user オプション用ã«ãƒ¦ãƒ¼ã‚¶åを指定ã—ãªã‘ã‚Œã°ã„ã‘ã¾ã›ã‚“"
-#: nscd/nscd_conf.c:198
+#: nscd/nscd_conf.c:201
#, c-format
msgid "Must specify user name for stat-user option"
msgstr "stat-user オプション用ã«ãƒ¦ãƒ¼ã‚¶åを指定ã—ãªã‘ã‚Œã°ã„ã‘ã¾ã›ã‚“"
-#: nscd/nscd_conf.c:255
+#: nscd/nscd_conf.c:259
#, c-format
msgid "Must specify value for restart-interval option"
msgstr "restart-interval オプション用ã«å€¤ã‚’指定ã—ãªã‘ã‚Œã°ã„ã‘ã¾ã›ã‚“"
-#: nscd/nscd_conf.c:269
+#: nscd/nscd_conf.c:273
#, c-format
msgid "Unknown option: %s %s %s"
msgstr "ä¸æ˜Žãªã‚ªãƒ—ションã§ã™: %s %s %s"
-#: nscd/nscd_conf.c:282
+#: nscd/nscd_conf.c:286
#, c-format
msgid "cannot get current working directory: %s; disabling paranoia mode"
msgstr "ç¾åœ¨ã®ä½œæ¥­ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãƒ¼ã‚’å–å¾—ã§ãã¾ã›ã‚“: %s; paranoia モードを無効ã«ã—ã¦ã„ã¾ã™"
-#: nscd/nscd_conf.c:302
+#: nscd/nscd_conf.c:306
#, c-format
msgid "maximum file size for %s database too small"
msgstr "%s データベース用ã®æœ€å¤§ã‚µã‚¤ã‚ºãŒå°ã•ã™ãŽã¾ã™"
@@ -4631,49 +4630,49 @@ msgstr "サービスキャッシュ内㫠\"%s\" ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“!"
msgid "Reloading \"%s\" in services cache!"
msgstr "サービスキャッシュ内㮠\"%s\" ã‚’å†ãƒ­ãƒ¼ãƒ‰ã—ã¦ã„ã¾ã™!"
-#: nss/getent.c:54
+#: nss/getent.c:55
msgid "database [key ...]"
msgstr "database [key ...]"
-#: nss/getent.c:59
+#: nss/getent.c:60
#, fuzzy
#| msgid "CONF"
msgid "CONFIG"
msgstr "CONF"
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "Service configuration to be used"
msgstr "使用ã•ã‚Œã‚‹ã‚µãƒ¼ãƒ“ス設定"
-#: nss/getent.c:60
+#: nss/getent.c:61
msgid "disable IDN encoding"
msgstr "IDN エンコーディングを無効ã«ã™ã‚‹"
-#: nss/getent.c:65
+#: nss/getent.c:66
msgid "Get entries from administrative database."
msgstr "管ç†ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã‹ã‚‰ã‚¨ãƒ³ãƒˆãƒªã‚’å–å¾—ã—ã¾ã™ã€‚"
-#: nss/getent.c:149 nss/getent.c:442 nss/getent.c:489
+#: nss/getent.c:150 nss/getent.c:462 nss/getent.c:509
#, c-format
msgid "Enumeration not supported on %s\n"
msgstr "エミュレーション㯠%s 上ã§ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“\n"
-#: nss/getent.c:497 nss/getent.c:510
+#: nss/getent.c:517 nss/getent.c:530
#, fuzzy, c-format
#| msgid "Could not create log file"
msgid "Could not allocate group list: %m\n"
msgstr "ログファイルを作æˆã§ãã¾ã›ã‚“ã§ã—ãŸ"
-#: nss/getent.c:881
+#: nss/getent.c:901
#, c-format
msgid "Unknown database name"
msgstr "ä¸æ˜Žãªãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹åã§ã™"
-#: nss/getent.c:911
+#: nss/getent.c:931
msgid "Supported databases:\n"
msgstr "サãƒãƒ¼ãƒˆã•ã‚Œã¦ã„るデータベース:\n"
-#: nss/getent.c:977
+#: nss/getent.c:997
#, c-format
msgid "Unknown database: %s\n"
msgstr "ä¸æ˜Žãªãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã§ã™: %s\n"
@@ -4947,11 +4946,11 @@ msgstr "æ­£è¦è¡¨ç¾ãŒå¤§ãã™ãŽã¾ã™"
msgid "Unmatched ) or \\)"
msgstr ") ã¾ãŸã¯ \\) ãŒä¸ä¸€è‡´ã§ã™"
-#: posix/regcomp.c:689
+#: posix/regcomp.c:676
msgid "No previous regular expression"
msgstr "以å‰ã«æ­£è¦è¡¨ç¾ãŒã‚ã‚Šã¾ã›ã‚“"
-#: posix/wordexp.c:1815
+#: posix/wordexp.c:1816
msgid "parameter null or not set"
msgstr "パラメータ㌠NULL ã§ã‚ã‚‹ã‹è¨­å®šã•ã‚Œã¦ã„ã¾ã›ã‚“"
@@ -5138,7 +5137,7 @@ msgstr "出力ãƒãƒƒãƒ•ã‚¡ãƒ¼ãŒä½¿ç”¨å¯èƒ½ã§ã™"
msgid "Input message available"
msgstr "入力メッセージãŒä½¿ç”¨å¯èƒ½ã§ã™"
-#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:381 timezone/zic.c:520
+#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:375 timezone/zic.c:561
msgid "I/O error"
msgstr "I/Oエラーã§ã™"
@@ -5221,7 +5220,7 @@ msgstr "ä¸æ˜Žãªã‚·ã‚°ãƒŠãƒ« %d"
#: sunrpc/auth_unix.c:112 sunrpc/clnt_tcp.c:124 sunrpc/clnt_udp.c:139
#: sunrpc/clnt_unix.c:125 sunrpc/svc_tcp.c:189 sunrpc/svc_tcp.c:233
#: sunrpc/svc_udp.c:161 sunrpc/svc_unix.c:189 sunrpc/svc_unix.c:229
-#: sunrpc/xdr.c:628 sunrpc/xdr.c:788 sunrpc/xdr_array.c:102
+#: sunrpc/xdr.c:631 sunrpc/xdr.c:791 sunrpc/xdr_array.c:102
#: sunrpc/xdr_rec.c:153 sunrpc/xdr_ref.c:79
msgid "out of memory\n"
msgstr "メモリãŒè¶³ã‚Šãªããªã‚Šã¾ã—ãŸ\n"
@@ -6479,56 +6478,69 @@ msgid "You really blew it this time"
msgstr "You really blew it this time"
#. TRANS Go home and have a glass of warm, dairy-fresh milk.
-#: sysdeps/gnu/errlist.c:978
+#. TRANS @c Okay. Since you are dying to know, I'll tell you.
+#. TRANS @c This is a joke, obviously. There is a children's song which begins,
+#. TRANS @c "Old McDonald had a farm, e-i-e-i-o." Every time I see the (real)
+#. TRANS @c errno macro EIO, I think about that song. Probably most of my
+#. TRANS @c compatriots who program on Unix do, too. One of them must have stayed
+#. TRANS @c up a little too late one night and decided to add it to Hurd or Glibc.
+#. TRANS @c Whoever did it should be castigated, but it made me laugh.
+#. TRANS @c --jtobey@channel1.com
+#. TRANS @c
+#. TRANS @c "bought the farm" means "died". -jtobey
+#. TRANS @c
+#. TRANS @c Translators, please do not translate this litteraly, translate it into
+#. TRANS @c an idiomatic funny way of saying that the computer died.
+#: sysdeps/gnu/errlist.c:991
msgid "Computer bought the farm"
msgstr "コンピュータãŒã€Œæˆ¦æ­»ã€ã—ã¾ã—ãŸ"
#. TRANS This error code has no purpose.
-#: sysdeps/gnu/errlist.c:987
+#: sysdeps/gnu/errlist.c:1000
msgid "Gratuitous error"
msgstr "ä¸å¿…è¦ãªã‚¨ãƒ©ãƒ¼"
-#: sysdeps/gnu/errlist.c:995
+#: sysdeps/gnu/errlist.c:1008
msgid "Bad message"
msgstr "ä¸æ­£ãªãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã§ã™"
-#: sysdeps/gnu/errlist.c:1003
+#: sysdeps/gnu/errlist.c:1016
msgid "Identifier removed"
msgstr "識別å­ã‚’除去ã—ã¾ã—ãŸ"
-#: sysdeps/gnu/errlist.c:1011
+#: sysdeps/gnu/errlist.c:1024
msgid "Multihop attempted"
msgstr "多é‡ãƒ›ãƒƒãƒ—ãŒä¼ã¦ã‚‰ã‚Œã¾ã—ãŸ"
-#: sysdeps/gnu/errlist.c:1019
+#: sysdeps/gnu/errlist.c:1032
msgid "No data available"
msgstr "利用å¯èƒ½ãªãƒ‡ãƒ¼ã‚¿ãŒã‚ã‚Šã¾ã›ã‚“"
-#: sysdeps/gnu/errlist.c:1027
+#: sysdeps/gnu/errlist.c:1040
msgid "Link has been severed"
msgstr "リンクãŒåˆ‡ã‚Œã¦ã„ã¾ã™"
-#: sysdeps/gnu/errlist.c:1035
+#: sysdeps/gnu/errlist.c:1048
msgid "No message of desired type"
msgstr "è¦æ±‚ã—ãŸå½¢å¼ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã¯ã‚ã‚Šã¾ã›ã‚“"
-#: sysdeps/gnu/errlist.c:1043
+#: sysdeps/gnu/errlist.c:1056
msgid "Out of streams resources"
msgstr "ストリームリソース外ã§ã™"
-#: sysdeps/gnu/errlist.c:1051
+#: sysdeps/gnu/errlist.c:1064
msgid "Device not a stream"
msgstr "デãƒã‚¤ã‚¹ã¯ã‚¹ãƒˆãƒªãƒ¼ãƒ åž‹ã§ã¯ã‚ã‚Šã¾ã›ã‚“"
-#: sysdeps/gnu/errlist.c:1059
+#: sysdeps/gnu/errlist.c:1072
msgid "Value too large for defined data type"
msgstr "定義ã•ã‚ŒãŸãƒ‡ãƒ¼ã‚¿åž‹ã«å¯¾ã—ã¦å€¤ãŒå¤§ãã™ãŽã¾ã™"
-#: sysdeps/gnu/errlist.c:1067
+#: sysdeps/gnu/errlist.c:1080
msgid "Protocol error"
msgstr "プロトコルエラー"
-#: sysdeps/gnu/errlist.c:1075
+#: sysdeps/gnu/errlist.c:1088
msgid "Timer expired"
msgstr "タイマãŒç ´æ£„ã•ã‚Œã¾ã—ãŸ"
@@ -6536,195 +6548,195 @@ msgstr "タイマãŒç ´æ£„ã•ã‚Œã¾ã—ãŸ"
#. TRANS completed. @xref{Asynchronous I/O}. When you call @code{aio_cancel},
#. TRANS the normal result is for the operations affected to complete with this
#. TRANS error; @pxref{Cancel AIO Operations}.
-#: sysdeps/gnu/errlist.c:1087
+#: sysdeps/gnu/errlist.c:1100
msgid "Operation canceled"
msgstr "æ“作ã¯ä¸­æ–­ã•ã‚Œã¾ã—ãŸ"
-#: sysdeps/gnu/errlist.c:1095
+#: sysdeps/gnu/errlist.c:1108
msgid "Owner died"
msgstr "所有者ãŒç„¡ããªã‚Šã¾ã—ãŸ"
-#: sysdeps/gnu/errlist.c:1103
+#: sysdeps/gnu/errlist.c:1116
msgid "State not recoverable"
msgstr "状態ã®å¾©å¸°ãŒå‡ºæ¥ã¾ã›ã‚“"
-#: sysdeps/gnu/errlist.c:1111
+#: sysdeps/gnu/errlist.c:1124
msgid "Interrupted system call should be restarted"
msgstr "割り込ã¾ã‚ŒãŸã‚·ã‚¹ãƒ†ãƒ ã‚³ãƒ¼ãƒ«ã¯å†ã‚¹ã‚¿ãƒ¼ãƒˆã•ã›ã‚‹ã¹ãã§ã™"
-#: sysdeps/gnu/errlist.c:1119
+#: sysdeps/gnu/errlist.c:1132
msgid "Channel number out of range"
msgstr "ãƒãƒ£ãƒ³ãƒãƒ«ç•ªå·ãŒç¯„囲外ã§ã™"
-#: sysdeps/gnu/errlist.c:1127
+#: sysdeps/gnu/errlist.c:1140
msgid "Level 2 not synchronized"
msgstr "レベル2ã¯åŒæœŸã—ã¦ã„ã¾ã›ã‚“"
-#: sysdeps/gnu/errlist.c:1135
+#: sysdeps/gnu/errlist.c:1148
msgid "Level 3 halted"
msgstr "レベル3åœæ­¢"
-#: sysdeps/gnu/errlist.c:1143
+#: sysdeps/gnu/errlist.c:1156
msgid "Level 3 reset"
msgstr "レベル3ã¯ãƒªã‚»ãƒƒãƒˆã—ã¾ã—ãŸ"
-#: sysdeps/gnu/errlist.c:1151
+#: sysdeps/gnu/errlist.c:1164
msgid "Link number out of range"
msgstr "リンク数ãŒç¯„囲外ã§ã™"
-#: sysdeps/gnu/errlist.c:1159
+#: sysdeps/gnu/errlist.c:1172
msgid "Protocol driver not attached"
msgstr "プロトコルドライãƒãŒã‚¢ã‚¿ãƒƒãƒã•ã‚Œã¦ã„ã¾ã›ã‚“"
-#: sysdeps/gnu/errlist.c:1167
+#: sysdeps/gnu/errlist.c:1180
msgid "No CSI structure available"
msgstr "CSI 構造ãŒåˆ©ç”¨ã§ãã¾ã›ã‚“"
-#: sysdeps/gnu/errlist.c:1175
+#: sysdeps/gnu/errlist.c:1188
msgid "Level 2 halted"
msgstr "レベル2åœæ­¢"
-#: sysdeps/gnu/errlist.c:1183
+#: sysdeps/gnu/errlist.c:1196
msgid "Invalid exchange"
msgstr "無効ãªäº¤æ›ã§ã™"
-#: sysdeps/gnu/errlist.c:1191
+#: sysdeps/gnu/errlist.c:1204
msgid "Invalid request descriptor"
msgstr "無効ãªãƒªã‚¯ã‚¨ã‚¹ãƒˆè¨˜è¿°å­ã§ã™"
-#: sysdeps/gnu/errlist.c:1199
+#: sysdeps/gnu/errlist.c:1212
msgid "Exchange full"
msgstr "Exchange full"
-#: sysdeps/gnu/errlist.c:1207
+#: sysdeps/gnu/errlist.c:1220
msgid "No anode"
msgstr "アノードãŒã‚ã‚Šã¾ã›ã‚“"
-#: sysdeps/gnu/errlist.c:1215
+#: sysdeps/gnu/errlist.c:1228
msgid "Invalid request code"
msgstr "無効ãªãƒªã‚¯ã‚¨ã‚¹ãƒˆã‚³ãƒ¼ãƒ‰ã§ã™"
-#: sysdeps/gnu/errlist.c:1223
+#: sysdeps/gnu/errlist.c:1236
msgid "Invalid slot"
msgstr "無効ãªã‚¹ãƒ­ãƒƒãƒˆã§ã™"
-#: sysdeps/gnu/errlist.c:1231
+#: sysdeps/gnu/errlist.c:1244
msgid "File locking deadlock error"
msgstr "ファイルロックã®ãƒ‡ãƒƒãƒ‰ãƒ­ãƒƒã‚¯ã‚¨ãƒ©ãƒ¼ã§ã™"
-#: sysdeps/gnu/errlist.c:1239
+#: sysdeps/gnu/errlist.c:1252
msgid "Bad font file format"
msgstr "ä¸æ­£ãªãƒ•ã‚©ãƒ³ãƒˆãƒ•ã‚¡ã‚¤ãƒ«å½¢å¼ã§ã™"
-#: sysdeps/gnu/errlist.c:1247
+#: sysdeps/gnu/errlist.c:1260
msgid "Machine is not on the network"
msgstr "マシンã¯ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã«ã¤ãªãŒã£ã¦ã„ã¾ã›ã‚“"
-#: sysdeps/gnu/errlist.c:1255
+#: sysdeps/gnu/errlist.c:1268
msgid "Package not installed"
msgstr "パッケージã¯ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•ã‚Œã¦ã„ã¾ã›ã‚“"
-#: sysdeps/gnu/errlist.c:1263
+#: sysdeps/gnu/errlist.c:1276
msgid "Advertise error"
msgstr "Advertiseエラー"
-#: sysdeps/gnu/errlist.c:1271
+#: sysdeps/gnu/errlist.c:1284
msgid "Srmount error"
msgstr "Srmount エラー"
-#: sysdeps/gnu/errlist.c:1279
+#: sysdeps/gnu/errlist.c:1292
msgid "Communication error on send"
msgstr "é€ä¿¡ä¸­ã®é€šä¿¡ã‚¨ãƒ©ãƒ¼"
-#: sysdeps/gnu/errlist.c:1287
+#: sysdeps/gnu/errlist.c:1300
msgid "RFS specific error"
msgstr "RFS特定エラー"
-#: sysdeps/gnu/errlist.c:1295
+#: sysdeps/gnu/errlist.c:1308
msgid "Name not unique on network"
msgstr "åå‰ãŒãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ä¸Šã§é‡è¤‡ã—ã¦ã„ã¾ã™"
-#: sysdeps/gnu/errlist.c:1303
+#: sysdeps/gnu/errlist.c:1316
msgid "File descriptor in bad state"
msgstr "ファイル記述å­ãŒä¸æ­£ã®çŠ¶æ…‹ã«ã‚ã‚Šã¾ã™"
-#: sysdeps/gnu/errlist.c:1311
+#: sysdeps/gnu/errlist.c:1324
msgid "Remote address changed"
msgstr "é éš”アドレスãŒå¤‰æ›´ã•ã‚Œã¾ã—ãŸ"
-#: sysdeps/gnu/errlist.c:1319
+#: sysdeps/gnu/errlist.c:1332
msgid "Can not access a needed shared library"
msgstr "å¿…è¦ãªå…±æœ‰ãƒ©ã‚¤ãƒ–ラリã«ã‚¢ã‚¯ã‚»ã‚¹ã§ãã¾ã›ã‚“"
-#: sysdeps/gnu/errlist.c:1327
+#: sysdeps/gnu/errlist.c:1340
msgid "Accessing a corrupted shared library"
msgstr "壊れãŸå…±æœ‰ãƒ©ã‚¤ãƒ–ラリã«ã‚¢ã‚¯ã‚»ã‚¹ã—ã¦ã„ã¾ã™"
-#: sysdeps/gnu/errlist.c:1335
+#: sysdeps/gnu/errlist.c:1348
msgid ".lib section in a.out corrupted"
msgstr "a.out 中㮠.lib セクションãŒå£Šã‚Œã¦ã„ã¾ã™"
-#: sysdeps/gnu/errlist.c:1343
+#: sysdeps/gnu/errlist.c:1356
msgid "Attempting to link in too many shared libraries"
msgstr "ã‚ã¾ã‚Šã«å¤šéŽãŽã‚‹å…±æœ‰ãƒ©ã‚¤ãƒ–ラリã¸ãƒªãƒ³ã‚¯ã—よã†ã¨ã—ã¦ã„ã¾ã™"
-#: sysdeps/gnu/errlist.c:1351
+#: sysdeps/gnu/errlist.c:1364
msgid "Cannot exec a shared library directly"
msgstr "共有ライブラリã¯ç›´æŽ¥å®Ÿè¡Œã§ãã¾ã›ã‚“"
-#: sysdeps/gnu/errlist.c:1359
+#: sysdeps/gnu/errlist.c:1372
msgid "Streams pipe error"
msgstr "ストリームパイプエラー"
-#: sysdeps/gnu/errlist.c:1367
+#: sysdeps/gnu/errlist.c:1380
msgid "Structure needs cleaning"
msgstr "構造体を内容消去ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™"
-#: sysdeps/gnu/errlist.c:1375
+#: sysdeps/gnu/errlist.c:1388
msgid "Not a XENIX named type file"
msgstr "XENIX ã®åå‰ä»˜ãファイルã§ã¯ã‚ã‚Šã¾ã›ã‚“"
-#: sysdeps/gnu/errlist.c:1383
+#: sysdeps/gnu/errlist.c:1396
msgid "No XENIX semaphores available"
msgstr "XENIX セマフォãŒåˆ©ç”¨ã§ãã¾ã›ã‚“"
-#: sysdeps/gnu/errlist.c:1391
+#: sysdeps/gnu/errlist.c:1404
msgid "Is a named type file"
msgstr "åå‰ä»˜ãファイルã§ã™"
-#: sysdeps/gnu/errlist.c:1399
+#: sysdeps/gnu/errlist.c:1412
msgid "Remote I/O error"
msgstr "é éš”I/Oエラーã§ã™"
-#: sysdeps/gnu/errlist.c:1407
+#: sysdeps/gnu/errlist.c:1420
msgid "No medium found"
msgstr "メディアãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“"
-#: sysdeps/gnu/errlist.c:1415
+#: sysdeps/gnu/errlist.c:1428
msgid "Wrong medium type"
msgstr "ä¸æ­£ãªãƒ¡ãƒ‡ã‚£ã‚¢å½¢å¼ã§ã™"
-#: sysdeps/gnu/errlist.c:1423
+#: sysdeps/gnu/errlist.c:1436
msgid "Required key not available"
msgstr "è¦æ±‚ã•ã‚ŒãŸã‚­ãƒ¼ãŒåˆ©ç”¨ã§ãã¾ã›ã‚“"
-#: sysdeps/gnu/errlist.c:1431
+#: sysdeps/gnu/errlist.c:1444
msgid "Key has expired"
msgstr "キーãŒæœŸé™åˆ‡ã‚Œã§ã™"
-#: sysdeps/gnu/errlist.c:1439
+#: sysdeps/gnu/errlist.c:1452
msgid "Key has been revoked"
msgstr "キーãŒç ´æ£„ã•ã‚Œã¦ã„ã¾ã™"
-#: sysdeps/gnu/errlist.c:1447
+#: sysdeps/gnu/errlist.c:1460
msgid "Key was rejected by service"
msgstr "キーãŒã‚µãƒ¼ãƒ“スã«ã‚ˆã£ã¦æ‹’å¦ã•ã‚Œã¾ã—ãŸ"
-#: sysdeps/gnu/errlist.c:1455
+#: sysdeps/gnu/errlist.c:1468
msgid "Operation not possible due to RF-kill"
msgstr "RF-kill ã®ãŸã‚æ“作ã¯ä¸å¯èƒ½ã§ã™"
-#: sysdeps/gnu/errlist.c:1463
+#: sysdeps/gnu/errlist.c:1476
#, fuzzy
#| msgid "Object-specific hardware error"
msgid "Memory page has hardware error"
@@ -6855,31 +6867,31 @@ msgstr ""
msgid "can't disable CET"
msgstr ""
-#: timezone/zdump.c:338
+#: timezone/zdump.c:332
#, fuzzy
#| msgid "has fewer than 3 alphabetics"
msgid "has fewer than 3 characters"
msgstr "アルファベット㌠3 文字より少ãªã„ã§ã™"
-#: timezone/zdump.c:340
+#: timezone/zdump.c:334
#, fuzzy
#| msgid "has more than 6 alphabetics"
msgid "has more than 6 characters"
msgstr "アルファベット㌠6 文字を超ãˆã¦ã„ã¾ã™"
-#: timezone/zdump.c:342
+#: timezone/zdump.c:336
msgid "has characters other than ASCII alphanumerics, '-' or '+'"
msgstr ""
-#: timezone/zdump.c:347
+#: timezone/zdump.c:341
#, c-format
msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n"
msgstr "%s: 警告: ゾーン \"%s\" çœç•¥å½¢ \"%s\" %s\n"
-#: timezone/zdump.c:393
+#: timezone/zdump.c:387
#, c-format
msgid ""
-"%s: usage: %s OPTIONS ZONENAME ...\n"
+"%s: usage: %s OPTIONS TIMEZONE ...\n"
"Options include:\n"
" -c [L,]U Start at year L (default -500), end before year U (default 2500)\n"
" -t [L,]U Start at time L, end before time U (in seconds since 1970)\n"
@@ -6892,52 +6904,58 @@ msgid ""
"Report bugs to %s.\n"
msgstr ""
-#: timezone/zdump.c:479
+#: timezone/zdump.c:473
#, c-format
msgid "%s: wild -c argument %s\n"
msgstr ""
-#: timezone/zdump.c:512
+#: timezone/zdump.c:506
#, fuzzy, c-format
#| msgid "%s: Too many arguments\n"
msgid "%s: wild -t argument %s\n"
msgstr "%s: 引数ãŒå¤šã™ãŽã¾ã™\n"
-#: timezone/zic.c:398
+#: timezone/zic.c:429
#, c-format
msgid "%s: Memory exhausted: %s\n"
msgstr "%s: メモリãŒè¶³ã‚Šã¾ã›ã‚“: %s\n"
-#: timezone/zic.c:406
+#: timezone/zic.c:437
#, fuzzy
#| msgid "time overflow"
msgid "size overflow"
msgstr "時間オーãƒãƒ¼ãƒ•ãƒ­ãƒ¼"
-#: timezone/zic.c:454
+#: timezone/zic.c:447
+#, fuzzy
+#| msgid "time overflow"
+msgid "alignment overflow"
+msgstr "時間オーãƒãƒ¼ãƒ•ãƒ­ãƒ¼"
+
+#: timezone/zic.c:495
#, fuzzy
#| msgid "Integer overflow"
msgid "integer overflow"
msgstr "æ•´æ•°ã®ã‚ªãƒ¼ãƒãƒ¼ãƒ•ãƒ­ãƒ¼ã§ã™"
-#: timezone/zic.c:488
+#: timezone/zic.c:529
#, fuzzy, c-format
#| msgid "\"%s\", line %d: %s"
msgid "\"%s\", line %<PRIdMAX>: "
msgstr "\"%s\", %d行: %s"
-#: timezone/zic.c:491
+#: timezone/zic.c:532
#, fuzzy, c-format
#| msgid " (rule from \"%s\", line %d)"
msgid " (rule from \"%s\", line %<PRIdMAX>)"
msgstr " (\"%s\"ã‹ã‚‰ã®è¦å‰‡, %dè¡Œ)"
-#: timezone/zic.c:510
+#: timezone/zic.c:551
#, c-format
msgid "warning: "
msgstr "警告: "
-#: timezone/zic.c:535
+#: timezone/zic.c:576
#, fuzzy, c-format
#| msgid ""
#| "%s: usage is %s [ --version ] [ --help ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n"
@@ -6947,7 +6965,7 @@ msgstr "警告: "
msgid ""
"%s: usage is %s [ --version ] [ --help ] [ -v ] \\\n"
"\t[ -l localtime ] [ -p posixrules ] [ -d directory ] \\\n"
-"\t[ -L leapseconds ] [ filename ... ]\n"
+"\t[ -t localtime-link ] [ -L leapseconds ] [ filename ... ]\n"
"\n"
"Report bugs to %s.\n"
msgstr ""
@@ -6957,406 +6975,429 @@ msgstr ""
"ãƒã‚°ã‚’発見ã—ãŸã‚‰ <tz@elsie.nci.nih.gov> ã«å ±å‘Šã—ã¦ãã ã•ã„。\n"
"翻訳ã«é–¢ã™ã‚‹ãƒã‚°ã¯<translation-team-ja@lists.sourceforge.net>ã«å ±å‘Šã—ã¦ãã ã•ã„。\n"
-#: timezone/zic.c:558
+#: timezone/zic.c:599
#, fuzzy, c-format
#| msgid "%s: Can't create %s: %s\n"
msgid "%s: Can't chdir to %s: %s\n"
msgstr "%s: %sを作æˆã§ãã¾ã›ã‚“: %s\n"
-#: timezone/zic.c:590
+#: timezone/zic.c:632
msgid "wild compilation-time specification of zic_t"
msgstr ""
-#: timezone/zic.c:610
+#: timezone/zic.c:652
#, c-format
msgid "%s: More than one -d option specified\n"
msgstr "%s: -d オプションãŒè¤‡æ•°æŒ‡å®šã•ã‚Œã¦ã„ã¾ã™\n"
-#: timezone/zic.c:620
+#: timezone/zic.c:662
#, c-format
msgid "%s: More than one -l option specified\n"
msgstr "%s: -l オプションãŒè¤‡æ•°æŒ‡å®šã•ã‚Œã¦ã„ã¾ã™\n"
-#: timezone/zic.c:630
+#: timezone/zic.c:672
#, c-format
msgid "%s: More than one -p option specified\n"
msgstr "%s: -p オプションãŒè¤‡æ•°æŒ‡å®šã•ã‚Œã¦ã„ã¾ã™\n"
-#: timezone/zic.c:640
+#: timezone/zic.c:680
+#, fuzzy, c-format
+#| msgid "%s: More than one -d option specified\n"
+msgid "%s: More than one -t option specified\n"
+msgstr "%s: -d オプションãŒè¤‡æ•°æŒ‡å®šã•ã‚Œã¦ã„ã¾ã™\n"
+
+#: timezone/zic.c:689
+msgid "-y is obsolescent"
+msgstr ""
+
+#: timezone/zic.c:693
#, c-format
msgid "%s: More than one -y option specified\n"
msgstr "%s: -y オプションãŒè¤‡æ•°æŒ‡å®šã•ã‚Œã¦ã„ã¾ã™\n"
-#: timezone/zic.c:650
+#: timezone/zic.c:703
#, c-format
msgid "%s: More than one -L option specified\n"
msgstr "%s: -L オプションãŒè¤‡æ•°æŒ‡å®šã•ã‚Œã¦ã„ã¾ã™\n"
-#: timezone/zic.c:659
+#: timezone/zic.c:712
msgid "-s ignored"
msgstr ""
-#: timezone/zic.c:698
+#: timezone/zic.c:753
msgid "link to link"
msgstr ""
-#: timezone/zic.c:701 timezone/zic.c:705
+#: timezone/zic.c:756 timezone/zic.c:760
#, fuzzy
#| msgid "Too many links"
msgid "command line"
msgstr "リンクãŒå¤šã™ãŽã¾ã™"
-#: timezone/zic.c:721
+#: timezone/zic.c:776
#, fuzzy
#| msgid "regular empty file"
msgid "empty file name"
msgstr "通常ã®ç©ºãƒ•ã‚¡ã‚¤ãƒ«"
-#: timezone/zic.c:724
+#: timezone/zic.c:779
#, c-format
msgid "file name '%s' begins with '/'"
msgstr ""
-#: timezone/zic.c:734
+#: timezone/zic.c:789
#, c-format
msgid "file name '%s' contains '%.*s' component"
msgstr ""
-#: timezone/zic.c:740
+#: timezone/zic.c:795
#, c-format
msgid "file name '%s' component contains leading '-'"
msgstr ""
-#: timezone/zic.c:743
+#: timezone/zic.c:798
#, c-format
msgid "file name '%s' contains overlength component '%.*s...'"
msgstr ""
-#: timezone/zic.c:771
+#: timezone/zic.c:826
#, c-format
msgid "file name '%s' contains byte '%c'"
msgstr ""
-#: timezone/zic.c:772
+#: timezone/zic.c:827
#, c-format
msgid "file name '%s' contains byte '\\%o'"
msgstr ""
-#: timezone/zic.c:842
+#: timezone/zic.c:897
#, fuzzy, c-format
#| msgid "%s: Can't link from %s to %s: %s\n"
msgid "%s: link from %s/%s failed: %s\n"
msgstr "%s: %sã‹ã‚‰%sã¸ãƒªãƒ³ã‚¯ã‚’張れã¾ã›ã‚“: %s\n"
-#: timezone/zic.c:852 timezone/zic.c:1815
+#: timezone/zic.c:907 timezone/zic.c:1876
#, fuzzy, c-format
#| msgid "%s: Can't remove %s: %s\n"
msgid "%s: Can't remove %s/%s: %s\n"
msgstr "%s: %sを削除ã§ãã¾ã›ã‚“: %s\n"
-#: timezone/zic.c:874
+#: timezone/zic.c:931
#, c-format
msgid "symbolic link used because hard link failed: %s"
msgstr ""
-#: timezone/zic.c:882
+#: timezone/zic.c:939
#, fuzzy, c-format
#| msgid "%s: Can't create %s: %s\n"
msgid "%s: Can't read %s/%s: %s\n"
msgstr "%s: %sを作æˆã§ãã¾ã›ã‚“: %s\n"
-#: timezone/zic.c:889 timezone/zic.c:1828
+#: timezone/zic.c:946 timezone/zic.c:1889
#, fuzzy, c-format
#| msgid "%s: Can't create %s: %s\n"
msgid "%s: Can't create %s/%s: %s\n"
msgstr "%s: %sを作æˆã§ãã¾ã›ã‚“: %s\n"
-#: timezone/zic.c:898
+#: timezone/zic.c:955
#, c-format
msgid "copy used because hard link failed: %s"
msgstr ""
-#: timezone/zic.c:901
+#: timezone/zic.c:958
#, c-format
msgid "copy used because symbolic link failed: %s"
msgstr ""
-#: timezone/zic.c:1013 timezone/zic.c:1015
+#: timezone/zic.c:1032 timezone/zic.c:1034
msgid "same rule name in multiple files"
msgstr "複数ファイルã«åŒã˜ãƒ«ãƒ¼ãƒ«åãŒã‚ã‚Šã¾ã™"
-#: timezone/zic.c:1056
-msgid "unruly zone"
-msgstr ""
-
-#: timezone/zic.c:1063
+#: timezone/zic.c:1081
#, c-format
msgid "%s in ruleless zone"
msgstr ""
-#: timezone/zic.c:1083
+#: timezone/zic.c:1101
msgid "standard input"
msgstr "標準入力"
-#: timezone/zic.c:1088
+#: timezone/zic.c:1106
#, c-format
msgid "%s: Can't open %s: %s\n"
msgstr "%s: %sã‚’é–‹ã‘ã¾ã›ã‚“: %s\n"
-#: timezone/zic.c:1099
+#: timezone/zic.c:1117
msgid "line too long"
msgstr "è¡ŒãŒé•·ã™ãŽã¾ã™"
-#: timezone/zic.c:1119
+#: timezone/zic.c:1139
msgid "input line of unknown type"
msgstr "ä¸æ˜Žãªå½¢å¼ã®å…¥åŠ›è¡Œã§ã™"
-#: timezone/zic.c:1134
-#, fuzzy, c-format
-#| msgid "%s: Leap line in non leap seconds file %s\n"
-msgid "%s: Leap line in non leap seconds file %s"
-msgstr "%s: é–秒ファイルã§ãªã„ファイル %s ã« Leap è¡ŒãŒã‚ã‚Šã¾ã™\n"
-
-#: timezone/zic.c:1142 timezone/zic.c:1547 timezone/zic.c:1569
+#: timezone/zic.c:1158 timezone/zic.c:1593 timezone/zic.c:1615
#, c-format
msgid "%s: panic: Invalid l_value %d\n"
msgstr "%s: パニック: 無効㪠l_value %d ã§ã™\n"
-#: timezone/zic.c:1151
+#: timezone/zic.c:1167
msgid "expected continuation line not found"
msgstr "継続行ãŒæœŸå¾…ã•ã‚Œã¾ã—ãŸãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“"
-#: timezone/zic.c:1193 timezone/zic.c:2976
+#: timezone/zic.c:1203
+#, fuzzy
+#| msgid "24:00 not handled by pre-1998 versions of zic"
+msgid "fractional seconds rejected by pre-2018 versions of zic"
+msgstr "1998 以å‰ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã® zic ã§ã¯ 24:00 ã¯æ‰±ãˆã¾ã›ã‚“"
+
+#: timezone/zic.c:1221 timezone/zic.c:3078
msgid "time overflow"
msgstr "時間オーãƒãƒ¼ãƒ•ãƒ­ãƒ¼"
-#: timezone/zic.c:1198
+#: timezone/zic.c:1227
msgid "values over 24 hours not handled by pre-2007 versions of zic"
msgstr "2007 以å‰ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã® zic ã§ã¯24時間を超ãˆã‚‹å€¤ã¯æ‰±ãˆã¾ã›ã‚“"
-#: timezone/zic.c:1209
+#: timezone/zic.c:1245
+msgid "invalid saved time"
+msgstr "ä¸æ­£ãªä¿å­˜æ™‚刻ã§ã™"
+
+#: timezone/zic.c:1256
msgid "wrong number of fields on Rule line"
msgstr "Ruleè¡Œã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰æ•°ãŒé–“é•ã£ã¦ã„ã¾ã™"
-#: timezone/zic.c:1213
-msgid "nameless rule"
-msgstr "åå‰ãŒãªã„ルールã§ã™"
-
-#: timezone/zic.c:1218
-msgid "invalid saved time"
-msgstr "ä¸æ­£ãªä¿å­˜æ™‚刻ã§ã™"
+#: timezone/zic.c:1265
+#, fuzzy, c-format
+#| msgid "Invalid numeric gid \"%s\"!"
+msgid "Invalid rule name \"%s\""
+msgstr "無効㪠gid ã®æ•°å€¤ \"%s\"!"
-#: timezone/zic.c:1235
+#: timezone/zic.c:1287
msgid "wrong number of fields on Zone line"
msgstr "Zoneè¡Œã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰æ•°ãŒé–“é•ã£ã¦ã„ã¾ã™"
-#: timezone/zic.c:1240
+#: timezone/zic.c:1292
#, c-format
msgid "\"Zone %s\" line and -l option are mutually exclusive"
msgstr "\"Zone %s\"行㨠-l オプションã¯åŒæ™‚指定ã§ãã¾ã›ã‚“"
-#: timezone/zic.c:1246
+#: timezone/zic.c:1298
#, c-format
msgid "\"Zone %s\" line and -p option are mutually exclusive"
msgstr "\"Zone %s\"行㨠-p オプションã¯åŒæ™‚指定ã§ãã¾ã›ã‚“"
-#: timezone/zic.c:1253
+#: timezone/zic.c:1305
#, fuzzy, c-format
#| msgid "duplicate zone name %s (file \"%s\", line %d)"
msgid "duplicate zone name %s (file \"%s\", line %<PRIdMAX>)"
msgstr "ゾーンå %s ãŒé‡è¤‡ã—ã¦ã„ã¾ã™(ファイル\"%s\", %d è¡Œ)"
-#: timezone/zic.c:1267
+#: timezone/zic.c:1319
msgid "wrong number of fields on Zone continuation line"
msgstr "Zone continuationè¡Œã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰æ•°ãŒé–“é•ã£ã¦ã„ã¾ã™"
-#: timezone/zic.c:1307
+#: timezone/zic.c:1359
#, fuzzy
#| msgid "invalid UTC offset"
msgid "invalid UT offset"
msgstr "無効ãªUTCオフセットã§ã™"
-#: timezone/zic.c:1311
+#: timezone/zic.c:1363
msgid "invalid abbreviation format"
msgstr "無効ãªçœç•¥å½¢ã§ã™"
-#: timezone/zic.c:1320
+#: timezone/zic.c:1372
#, fuzzy, c-format
#| msgid "24:00 not handled by pre-1998 versions of zic"
msgid "format '%s' not handled by pre-2015 versions of zic"
msgstr "1998 以å‰ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã® zic ã§ã¯ 24:00 ã¯æ‰±ãˆã¾ã›ã‚“"
-#: timezone/zic.c:1347
+#: timezone/zic.c:1399
msgid "Zone continuation line end time is not after end time of previous line"
msgstr "ゾーン連続行 end time ã¯å‰ã®è¡Œã® end time よりも後ã§ã‚ã£ã¦ã¯ãªã‚Šã¾ã›ã‚“"
-#: timezone/zic.c:1374
+#: timezone/zic.c:1426
msgid "wrong number of fields on Leap line"
msgstr "Leapè¡Œã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰æ•°ãŒé–“é•ã£ã¦ã„ã¾ã™"
-#: timezone/zic.c:1383
+#: timezone/zic.c:1435
msgid "invalid leaping year"
msgstr "無効ãªã†ã‚‹ã†å¹´ã§ã™"
-#: timezone/zic.c:1403 timezone/zic.c:1501
+#: timezone/zic.c:1455 timezone/zic.c:1547
msgid "invalid month name"
msgstr "無効ãªãªæœˆåã§ã™"
-#: timezone/zic.c:1416 timezone/zic.c:1614 timezone/zic.c:1628
+#: timezone/zic.c:1468 timezone/zic.c:1663 timezone/zic.c:1677
msgid "invalid day of month"
msgstr "一月ã‚ãŸã‚Šã®æ—¥ã«ã¡ãŒç„¡åŠ¹ã§ã™"
-#: timezone/zic.c:1421
+#: timezone/zic.c:1473
msgid "time too small"
msgstr "時刻ãŒå°ã•ã™ãŽã¾ã™"
-#: timezone/zic.c:1425
+#: timezone/zic.c:1477
msgid "time too large"
msgstr "時刻ãŒå¤§ãã™ãŽã¾ã™"
-#: timezone/zic.c:1429 timezone/zic.c:1530
+#: timezone/zic.c:1481 timezone/zic.c:1576
msgid "invalid time of day"
msgstr "1æ—¥ã‚ãŸã‚Šã®æ™‚é–“ãŒç„¡åŠ¹ã§ã™"
-#: timezone/zic.c:1448
+#: timezone/zic.c:1494
msgid "illegal CORRECTION field on Leap line"
msgstr "Leap è¡Œã«ä¸æ­£ãª CORRECTION フィールドãŒã‚ã‚Šã¾ã™"
-#: timezone/zic.c:1453
+#: timezone/zic.c:1499
msgid "illegal Rolling/Stationary field on Leap line"
msgstr "Leap è¡Œã«ä¸æ­£ãª Rolling/Stationary フィールドãŒã‚ã‚Šã¾ã™"
-#: timezone/zic.c:1459
-msgid "leap second precedes Big Bang"
+#: timezone/zic.c:1505
+msgid "leap second precedes Epoch"
msgstr ""
-#: timezone/zic.c:1472
+#: timezone/zic.c:1518
msgid "wrong number of fields on Link line"
msgstr "Linkè¡Œã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰æ•°ãŒé–“é•ã£ã¦ã„ã¾ã™"
-#: timezone/zic.c:1476
+#: timezone/zic.c:1522
msgid "blank FROM field on Link line"
msgstr "Link 行㮠FROM フィールドãŒç©ºæ¬„ã§ã™"
-#: timezone/zic.c:1551
+#: timezone/zic.c:1597
msgid "invalid starting year"
msgstr "無効ãªé–‹å§‹å¹´ã§ã™"
-#: timezone/zic.c:1573
+#: timezone/zic.c:1619
msgid "invalid ending year"
msgstr "無効ãªçµ‚了年ã§ã™"
-#: timezone/zic.c:1577
+#: timezone/zic.c:1623
msgid "starting year greater than ending year"
msgstr "開始年ãŒçµ‚了年より大ãããªã£ã¦ã„ã¾ã™"
-#: timezone/zic.c:1584
+#: timezone/zic.c:1630
msgid "typed single year"
msgstr ""
-#: timezone/zic.c:1619
+#: timezone/zic.c:1633
+#, c-format
+msgid "year type \"%s\" is obsolete; use \"-\" instead"
+msgstr ""
+
+#: timezone/zic.c:1668
msgid "invalid weekday name"
msgstr "無効ãªæ›œæ—¥åã§ã™"
-#: timezone/zic.c:1743
+#: timezone/zic.c:1800
#, c-format
msgid "reference clients mishandle more than %d transition times"
msgstr ""
-#: timezone/zic.c:1747
+#: timezone/zic.c:1804
msgid "pre-2014 clients may mishandle more than 1200 transition times"
msgstr ""
-#: timezone/zic.c:1858
+#: timezone/zic.c:1920
#, fuzzy
#| msgid "too many transitions?!"
msgid "too many transition times"
msgstr "é·ç§»å…ˆãŒå¤šã™ãŽã¾ã™?!"
-#: timezone/zic.c:2047
+#: timezone/zic.c:2107
#, c-format
-msgid "%%z UTC offset magnitude exceeds 99:59:59"
+msgid "%%z UT offset magnitude exceeds 99:59:59"
msgstr ""
-#: timezone/zic.c:2424
+#: timezone/zic.c:2488
msgid "no POSIX environment variable for zone"
msgstr "ゾーン用㮠POSIX 環境変数ã§ã¯ã‚ã‚Šã¾ã›ã‚“"
-#: timezone/zic.c:2430
+#: timezone/zic.c:2494
#, c-format
msgid "%s: pre-%d clients may mishandle distant timestamps"
msgstr ""
-#: timezone/zic.c:2566
+#: timezone/zic.c:2631
msgid "two rules for same instant"
msgstr ""
-#: timezone/zic.c:2627
+#: timezone/zic.c:2696
msgid "can't determine time zone abbreviation to use just after until time"
msgstr "ã¡ã‚‡ã†ã©ãã®æ™‚刻を使用ã™ã‚‹ã‚¿ã‚¤ãƒ ã‚¾ãƒ¼ãƒ³ã®çœç•¥å½¢ã‚’決定ã§ãã¾ã›ã‚“"
-#: timezone/zic.c:2725
+#: timezone/zic.c:2785
msgid "too many local time types"
msgstr "ローカル時間形å¼ãŒå¤šã™ãŽã¾ã™"
-#: timezone/zic.c:2729
+#: timezone/zic.c:2789
#, fuzzy
#| msgid "UTC offset out of range"
msgid "UT offset out of range"
msgstr "UTC オフセットãŒç¯„囲外ã§ã™"
-#: timezone/zic.c:2753
+#: timezone/zic.c:2813
msgid "too many leap seconds"
msgstr "ã†ã‚‹ã†ç§’ãŒå¤§ãã™ãŽã¾ã™"
-#: timezone/zic.c:2759
-msgid "repeated leap second moment"
-msgstr "循環é–秒ã®çž¬é–“"
+#: timezone/zic.c:2844
+msgid "Leap seconds too close together"
+msgstr ""
-#: timezone/zic.c:2830
+#: timezone/zic.c:2891
msgid "Wild result from command execution"
msgstr "コマンド実行ã‹ã‚‰ã®ç²—ã„çµæžœ"
-#: timezone/zic.c:2831
+#: timezone/zic.c:2892
#, c-format
msgid "%s: command was '%s', result was %d\n"
msgstr "%s: コマンドã¯'%s', çµæžœã¯ %dã§ã—ãŸ\n"
-#: timezone/zic.c:2961
+#: timezone/zic.c:2998
+#, c-format
+msgid "\"%s\" is undocumented; use \"last%s\" instead"
+msgstr ""
+
+#: timezone/zic.c:3029
+#, c-format
+msgid "\"%s\" is ambiguous in pre-2017c zic"
+msgstr ""
+
+#: timezone/zic.c:3063
msgid "Odd number of quotation marks"
msgstr "クォートã™ã‚‹ãƒžãƒ¼ã‚¯ãŒå¥‡æ•°å€‹åˆ†ã—ã‹ã‚ã‚Šã¾ã›ã‚“"
-#: timezone/zic.c:3046
+#: timezone/zic.c:3157
msgid "use of 2/29 in non leap-year"
msgstr "ã†ã‚‹ã†å¹´ã§ã¯ãªã„ã®ã«2/29を使ã£ã¦ã„ã¾ã™"
-#: timezone/zic.c:3081
+#: timezone/zic.c:3192
#, fuzzy
#| msgid "rule goes past start/end of month--will not work with pre-2004 versions of zic"
msgid "rule goes past start/end of month; will not work with pre-2004 versions of zic"
msgstr "月ã®é–‹å§‹ã¨çµ‚了ã§éŽåŽ»ã«ã•ã‹ã®ã¼ã£ã¦ã„るルールã§ã™ -- 2004 以å‰ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã® zic ã§ã¯å‹•ä½œã—ã¾ã›ã‚“"
-#: timezone/zic.c:3108
+#: timezone/zic.c:3219
#, fuzzy
#| msgid "time zone abbreviation has more than 3 alphabetics"
msgid "time zone abbreviation has fewer than 3 characters"
msgstr "タイムゾーンçœç•¥åãŒã‚¢ãƒ«ãƒ•ã‚¡ãƒ™ãƒƒãƒˆ4文字以上ã§ã™"
-#: timezone/zic.c:3110
+#: timezone/zic.c:3221
#, fuzzy
#| msgid "time zone abbreviation has too many alphabetics"
msgid "time zone abbreviation has too many characters"
msgstr "タイムゾーンçœç•¥åã«å«ã¾ã‚Œã‚‹ã‚¢ãƒ«ãƒ•ã‚¡ãƒ™ãƒƒãƒˆãŒå¤šã™ãŽã¾ã™"
-#: timezone/zic.c:3112
+#: timezone/zic.c:3223
msgid "time zone abbreviation differs from POSIX standard"
msgstr "タイムゾーンçœç•¥å㌠POSIX 標準ã¨ç•°ãªã‚Šã¾ã™"
-#: timezone/zic.c:3118
+#: timezone/zic.c:3229
msgid "too many, or too long, time zone abbreviations"
msgstr "タイムゾーンçœç•¥åãŒå¤šã™ãŽã‚‹ã‹é•·ã™ãŽã¾ã™"
-#: timezone/zic.c:3161
+#: timezone/zic.c:3275
#, fuzzy, c-format
#| msgid "%s: Can't create directory %s: %s\n"
msgid "%s: Can't create directory %s: %s"
@@ -7365,6 +7406,9 @@ msgstr "%s: ディレクトリ%sを作æˆã§ãã¾ã›ã‚“: %s\n"
#~ msgid "Try \\`%s --help' or `%s --usage' for more information.\\n"
#~ msgstr "詳細㯠\\`%s --help' ã¾ãŸã¯ `%s --usage' を実行ã—ã¦ãã ã•ã„。\\n"
+#~ msgid "cannot open zero fill device"
+#~ msgstr "ゼロã§åŸ‹ã‚られãŸãƒ‡ãƒã‚¤ã‚¹ã‚’é–‹ã‘ã¾ã›ã‚“"
+
#~ msgid "cannot allocate TLS data structures for initial thread"
#~ msgstr "åˆæœŸã‚¹ãƒ¬ãƒƒãƒ‰ç”¨ã® TLS データ構造体ãŒé…ç½®ã§ãã¾ã›ã‚“"
@@ -7374,6 +7418,9 @@ msgstr "%s: ディレクトリ%sを作æˆã§ãã¾ã›ã‚“: %s\n"
#~ msgid "invalid caller"
#~ msgstr "無効ãªå‘¼ã³å‡ºã—å…ƒã§ã™"
+#~ msgid "relocation error"
+#~ msgstr "å†é…置エラーã§ã™"
+
#~ msgid "cannot load any more object with static TLS"
#~ msgstr "é™çš„ TLS ブロックã§ã¯ã“れ以上オブジェクトをロードã§ãã¾ã›ã‚“"
@@ -7398,6 +7445,15 @@ msgstr "%s: ディレクトリ%sを作æˆã§ãã¾ã›ã‚“: %s\n"
#~ msgid "non-symbolic character value should not be used"
#~ msgstr "éžã‚·ãƒ³ãƒœãƒ«æ–‡å­—値ã¯ä½¿ç”¨ã™ã¹ãã§ã¯ã‚ã‚Šã¾ã›ã‚“"
+#~ msgid "Cannot set LC_CTYPE to default locale"
+#~ msgstr "LC_CTYPE をデフォルトロケールã¸è¨­å®šã§ãã¾ã›ã‚“"
+
+#~ msgid "Cannot set LC_MESSAGES to default locale"
+#~ msgstr "LC_MESSAGES をデフォルトロケールã¸è¨­å®šã§ãã¾ã›ã‚“"
+
+#~ msgid "Cannot set LC_COLLATE to default locale"
+#~ msgstr "LC_COLLATE をデフォルトロケールã¸è¨­å®šã§ãã¾ã›ã‚“"
+
#~ msgid "Create old-style tables"
#~ msgstr "å¤ã„スタイルã®è¡¨ã‚’作æˆã™ã‚‹"
@@ -7536,12 +7592,18 @@ msgstr "%s: ディレクトリ%sを作æˆã§ãã¾ã›ã‚“: %s\n"
#~ msgid "hard link failed, symbolic link used"
#~ msgstr "ãƒãƒ¼ãƒ‰ãƒªãƒ³ã‚¯ã«å¤±æ•—ã—ãŸãŸã‚ã€ã‚·ãƒ³ãƒœãƒªãƒƒã‚¯ãƒªãƒ³ã‚¯ã‚’使ã„ã¾ã™"
+#~ msgid "%s: Leap line in non leap seconds file %s\n"
+#~ msgstr "%s: é–秒ファイルã§ãªã„ファイル %s ã« Leap è¡ŒãŒã‚ã‚Šã¾ã™\n"
+
#~ msgid "%s: Error reading %s\n"
#~ msgstr "%s: %s を読ã¿è¾¼ã¿ä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ\n"
#~ msgid "%s: Error closing %s: %s\n"
#~ msgstr "%s: %s ã‚’é–‰ã˜ã¦ã„ã‚‹é–“ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ: %s\n"
+#~ msgid "nameless rule"
+#~ msgstr "åå‰ãŒãªã„ルールã§ã™"
+
#~ msgid "time before zero"
#~ msgstr "ゼロå‰ã®æ™‚刻"
@@ -7560,6 +7622,9 @@ msgstr "%s: ディレクトリ%sを作æˆã§ãã¾ã›ã‚“: %s\n"
#~ msgid "internal error - addtype called with bad ttisgmt"
#~ msgstr "内部エラー - é–“é•ã£ãŸ ttisgmt ã¨ã¨ã‚‚ã« addtype ãŒå‘¼ã°ã‚Œã¾ã—ãŸ"
+#~ msgid "repeated leap second moment"
+#~ msgstr "循環é–秒ã®çž¬é–“"
+
#~ msgid "time zone abbreviation lacks alphabetic at start"
#~ msgstr "タイムゾーンçœç•¥åãŒã‚¢ãƒ«ãƒ•ã‚¡ãƒ™ãƒƒãƒˆã§é–‹å§‹ã—ã¦ã„ã¾ã›ã‚“"
diff --git a/po/ko.po b/po/ko.po
index a5f55fb877..7a9f60fffd 100644
--- a/po/ko.po
+++ b/po/ko.po
@@ -7,7 +7,7 @@
msgid ""
msgstr ""
"Project-Id-Version: GNU libc 2.26.9000\n"
-"POT-Creation-Date: 2018-07-26 22:19-0400\n"
+"POT-Creation-Date: 2019-07-18 13:28-0400\n"
"PO-Revision-Date: 2018-01-11 14:24+0900\n"
"Last-Translator: Changwoo Ryu <cwryu@debian.org>\n"
"Language-Team: Korean <translation-team-ko@googlegroups.com>\n"
@@ -147,10 +147,10 @@ msgstr ""
"[<출력-파ì¼> [<ìž…ë ¥-파ì¼>]...]"
#: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:308
-#: elf/pldd.c:252 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
-#: iconv/iconvconfig.c:379 locale/programs/locale.c:275
-#: locale/programs/localedef.c:427 login/programs/pt_chown.c:89
-#: malloc/memusagestat.c:563 nss/getent.c:933 nss/makedb.c:369
+#: elf/pldd.c:247 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
+#: iconv/iconvconfig.c:379 locale/programs/locale.c:276
+#: locale/programs/localedef.c:437 login/programs/pt_chown.c:89
+#: malloc/memusagestat.c:563 nss/getent.c:953 nss/makedb.c:369
#: posix/getconf.c:503 sysdeps/unix/sysv/linux/lddlibc4.c:61
#, c-format
msgid ""
@@ -161,11 +161,11 @@ msgstr ""
"%s.\n"
#: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64
-#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75
+#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:263 elf/sotruss.sh:75
#: elf/sprof.c:389 iconv/iconv_prog.c:422 iconv/iconvconfig.c:396
-#: locale/programs/locale.c:292 locale/programs/localedef.c:453
+#: locale/programs/locale.c:293 locale/programs/localedef.c:463
#: login/programs/pt_chown.c:63 malloc/memusage.sh:71
-#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:87 nss/makedb.c:385
+#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:88 nss/makedb.c:385
#: posix/getconf.c:485 sysdeps/unix/sysv/linux/lddlibc4.c:68
#, c-format
msgid ""
@@ -178,10 +178,10 @@ msgstr ""
"ì´ë‚˜ 특정 목ì ì— 대한 ì í•©ì„±ì„ 비롯하여 ì–´ë– í•œ ë³´ì¦ë„ 하지 않습니다.\n"
#: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68
-#: elf/ldconfig.c:329 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:427
-#: iconv/iconvconfig.c:401 locale/programs/locale.c:297
-#: locale/programs/localedef.c:458 malloc/memusage.sh:75
-#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:92 nss/makedb.c:390
+#: elf/ldconfig.c:329 elf/pldd.c:268 elf/sprof.c:395 iconv/iconv_prog.c:427
+#: iconv/iconvconfig.c:401 locale/programs/locale.c:298
+#: locale/programs/localedef.c:468 malloc/memusage.sh:75
+#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:93 nss/makedb.c:390
#: posix/getconf.c:490
#, c-format
msgid "Written by %s.\n"
@@ -252,21 +252,21 @@ msgstr "출력 íŒŒì¼ `%s' 파ì¼ì„ ì—´ 수 없습니다"
msgid "invalid escape sequence"
msgstr "ì´ìŠ¤ì¼€ì´í”„ ìˆœì„œì—´ì´ ìž˜ëª»ë¨"
-#: catgets/gencat.c:1209
+#: catgets/gencat.c:1211
msgid "unterminated message"
msgstr "종료하지 ì•Šì€ ë©”ì‹œì§€"
-#: catgets/gencat.c:1233
+#: catgets/gencat.c:1235
#, c-format
msgid "while opening old catalog file"
msgstr "ì˜¤ëž˜ëœ ëª©ë¡ íŒŒì¼ì„ 여는 ë™ì•ˆ"
-#: catgets/gencat.c:1324
+#: catgets/gencat.c:1326
#, c-format
msgid "conversion modules not available"
msgstr "변환 ëª¨ë“ˆì´ ì‚¬ìš© 불가능합니다"
-#: catgets/gencat.c:1350
+#: catgets/gencat.c:1352
#, c-format
msgid "cannot determine escape character"
msgstr "ì´ìŠ¤ì¼€ì´í”„ 문ìžë¥¼ ê²°ì •í•  수가 없습니다"
@@ -392,7 +392,7 @@ msgstr "ì•Œ 수 없는 ìš´ì˜ì²´ì œ"
msgid ", OS ABI: %s %d.%d.%d"
msgstr ", OS ABI: %s %d.%d.%d"
-#: elf/cache.c:163 elf/ldconfig.c:1332
+#: elf/cache.c:163 elf/ldconfig.c:1333
#, c-format
msgid "Can't open cache file %s\n"
msgstr "ìºì‹œ íŒŒì¼ `%s'ì„(를) ì—´ 수 없습니다\n"
@@ -402,38 +402,38 @@ msgstr "ìºì‹œ íŒŒì¼ `%s'ì„(를) ì—´ 수 없습니다\n"
msgid "mmap of cache file failed.\n"
msgstr "ìºì‹œ 파ì¼ì„ mmap하는 ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤.\n"
-#: elf/cache.c:181 elf/cache.c:195
+#: elf/cache.c:181 elf/cache.c:195 elf/cache.c:205
#, c-format
msgid "File is not a cache file.\n"
msgstr "파ì¼ì´ ìºì‹œ 파ì¼ì´ 아닙니다.\n"
-#: elf/cache.c:228 elf/cache.c:238
+#: elf/cache.c:233 elf/cache.c:243
#, c-format
msgid "%d libs found in cache `%s'\n"
msgstr "%2$s ìºì‹œì— ë¼ì´ë¸ŒëŸ¬ë¦¬ê°€ %1$dê°œ 있습니다\n"
-#: elf/cache.c:432
+#: elf/cache.c:437
#, c-format
msgid "Can't create temporary cache file %s"
msgstr "ìž„ì‹œ ìºì‹œ íŒŒì¼ %sì„(를) ì—´ 수 없습니다"
-#: elf/cache.c:440 elf/cache.c:450 elf/cache.c:454 elf/cache.c:458
-#: elf/cache.c:468
+#: elf/cache.c:445 elf/cache.c:455 elf/cache.c:459 elf/cache.c:463
+#: elf/cache.c:473
#, c-format
msgid "Writing of cache data failed"
msgstr "ìºì‹œ ë°ì´í„° 쓰기가 실패"
-#: elf/cache.c:463
+#: elf/cache.c:468
#, c-format
msgid "Changing access rights of %s to %#o failed"
msgstr "%sì˜ ì ‘ê·¼ê¶Œí•œì„ to %#oë¡œ(으로) 바꾸는 ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤"
-#: elf/cache.c:472
+#: elf/cache.c:477
#, c-format
msgid "Renaming of %s to %s failed"
msgstr "%sì—ì„œ %s으로(ë¡œ) ì´ë¦„ì„ ë°”ê¾¸ëŠ” ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤"
-#: elf/dl-close.c:399 elf/dl-open.c:420
+#: elf/dl-close.c:399 elf/dl-open.c:424
msgid "cannot create scope list"
msgstr "스코프 목ë¡ì„ 만들 수 없습니다"
@@ -520,121 +520,123 @@ msgstr "검색 경로 ë°°ì—´ì„ ë§Œë“¤ 수 없습니다"
msgid "cannot stat shared object"
msgstr "ë™ì  오브ì íŠ¸ì— 대해 stat()ì´ ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤"
-#: elf/dl-load.c:960
-msgid "cannot open zero fill device"
-msgstr "0으로 채운 장치를 열 수 없습니다"
-
-#: elf/dl-load.c:1007 elf/dl-load.c:2203
+#: elf/dl-load.c:992 elf/dl-load.c:2198
msgid "cannot create shared object descriptor"
msgstr "공유 오브ì íŠ¸ 디스í¬ë¦½í„°ë¥¼ 만들 수 없습니다"
-#: elf/dl-load.c:1026 elf/dl-load.c:1560 elf/dl-load.c:1673
+#: elf/dl-load.c:1011 elf/dl-load.c:1555 elf/dl-load.c:1668
msgid "cannot read file data"
msgstr "íŒŒì¼ ë°ì´í„°ë¥¼ ì½ì„ 수 없습니다"
-#: elf/dl-load.c:1072
+#: elf/dl-load.c:1057
msgid "ELF load command alignment not page-aligned"
msgstr "ELF 로드 명령ì˜ì˜ alignì´ íŽ˜ì´ì§€ì— alignë˜ì–´ 있지 않습니다"
-#: elf/dl-load.c:1079
+#: elf/dl-load.c:1064
msgid "ELF load command address/offset not properly aligned"
msgstr "ELF 로드 ëª…ë ¹ì˜ ì£¼ì†Œ/ì˜¤í”„ì…‹ì´ ì˜¬ë°”ë¥´ê²Œ alignë˜ì–´ 있지 않습니다"
-#: elf/dl-load.c:1161
+#: elf/dl-load.c:1146
#, fuzzy
#| msgid "cannot restore segment prot after reloc"
msgid "cannot process note segment"
msgstr "리로케ì´ì…˜ ë’¤ì— prot 세그먼트를 복구할 수 없습니다"
-#: elf/dl-load.c:1172
+#: elf/dl-load.c:1157
msgid "object file has no loadable segments"
msgstr "오브ì íŠ¸ 파ì¼ì— ì½ì–´ë“¤ì¼ 수 있는 ì„¹ì…˜ì´ ì—†ìŠµë‹ˆë‹¤"
-#: elf/dl-load.c:1181 elf/dl-load.c:1652
+#: elf/dl-load.c:1170 elf/dl-load.c:1647
msgid "cannot dynamically load executable"
msgstr "ë™ì ìœ¼ë¡œ 실행파ì¼ì„ 로드할 수 없습니다"
-#: elf/dl-load.c:1202
+#: elf/dl-load.c:1191
msgid "object file has no dynamic section"
msgstr "오브ì íŠ¸ 파ì¼ì— ë™ì  ì„¹ì…˜ì´ ì—†ìŠµë‹ˆë‹¤"
-#: elf/dl-load.c:1225
+#: elf/dl-load.c:1218
+#, fuzzy
+#| msgid "cannot dynamically load executable"
+msgid "cannot dynamically load position-independent executable"
+msgstr "ë™ì ìœ¼ë¡œ 실행파ì¼ì„ 로드할 수 없습니다"
+
+#: elf/dl-load.c:1220
msgid "shared object cannot be dlopen()ed"
msgstr "ë™ì  오브ì íŠ¸ëŠ” dlopen()ë  ìˆ˜ 없습니다"
-#: elf/dl-load.c:1238
+#: elf/dl-load.c:1233
msgid "cannot allocate memory for program header"
msgstr "프로그램 í—¤ë”ì— ëŒ€í•œ 메모리를 할당할 수 없습니다"
-#: elf/dl-load.c:1271 elf/dl-load.h:130
+#: elf/dl-load.c:1266 elf/dl-load.h:130
msgid "cannot change memory protections"
msgstr "메모리 보호를 바꿀 수 없습니다"
-#: elf/dl-load.c:1291
+#: elf/dl-load.c:1286
msgid "cannot enable executable stack as shared object requires"
msgstr "실행할 수 있는 스íƒì„ 공유 오브ì íŠ¸ 필수요소로 만들 수 없습니다"
-#: elf/dl-load.c:1304
+#: elf/dl-load.c:1299
msgid "cannot close file descriptor"
msgstr "íŒŒì¼ ë””ìŠ¤í¬ë¦½í„°ë¥¼ ë‹«ì„ ìˆ˜ 없습니다"
-#: elf/dl-load.c:1560
+#: elf/dl-load.c:1555
msgid "file too short"
msgstr "파ì¼ì´ 너무 짧습니다"
-#: elf/dl-load.c:1595
+#: elf/dl-load.c:1590
msgid "invalid ELF header"
msgstr "ELF í—¤ë”ê°€ 잘못ë¨"
-#: elf/dl-load.c:1607
+#: elf/dl-load.c:1602
msgid "ELF file data encoding not big-endian"
msgstr "ELF íŒŒì¼ ë°ì´í„° ì¸ì½”ë”©ì´ ë¹…ì¸ë””ì•ˆì´ ì•„ë‹™ë‹ˆë‹¤"
-#: elf/dl-load.c:1609
+#: elf/dl-load.c:1604
msgid "ELF file data encoding not little-endian"
msgstr "ELF íŒŒì¼ ë°ì´í„° ì¸ì½”ë”©ì´ ë¦¬í‹€ì¸ë””ì•ˆì´ ì•„ë‹™ë‹ˆë‹¤"
-#: elf/dl-load.c:1613
+#: elf/dl-load.c:1608
msgid "ELF file version ident does not match current one"
msgstr "ELF íŒŒì¼ ë²„ì „ identê°€ 현재 ident와 맞지 않습니다"
-#: elf/dl-load.c:1617
+#: elf/dl-load.c:1612
msgid "ELF file OS ABI invalid"
msgstr "ELF íŒŒì¼ OS ABIê°€ 잘못ë˜ì—ˆìŠµë‹ˆë‹¤"
-#: elf/dl-load.c:1620
+#: elf/dl-load.c:1615
msgid "ELF file ABI version invalid"
msgstr "ELF íŒŒì¼ ABI ë²„ì „ì´ ìž˜ëª»ë˜ì—ˆìŠµë‹ˆë‹¤"
-#: elf/dl-load.c:1623
+#: elf/dl-load.c:1618
msgid "nonzero padding in e_ident"
msgstr "e_ident ì•ˆì— 0ì´ ì•„ë‹Œ 채움"
-#: elf/dl-load.c:1626
+#: elf/dl-load.c:1621
msgid "internal error"
msgstr "내부 오류"
-#: elf/dl-load.c:1633
+#: elf/dl-load.c:1628
msgid "ELF file version does not match current one"
msgstr "ELF íŒŒì¼ ë²„ì „ì´ í˜„ìž¬ 버전과 맞지 않습니다"
-#: elf/dl-load.c:1641
+#: elf/dl-load.c:1636
msgid "only ET_DYN and ET_EXEC can be loaded"
msgstr "ET_DYNê³¼ ET_EXECë§Œì„ ì½ì–´ë“¤ì¼ 수 있습니다"
-#: elf/dl-load.c:1657
+#: elf/dl-load.c:1652
msgid "ELF file's phentsize not the expected size"
msgstr "ELF 파ì¼ì˜ phentsizeê°€ 예ìƒê³¼ 맞지 않습니다"
-#: elf/dl-load.c:2222
+#: elf/dl-load.c:2217
msgid "wrong ELF class: ELFCLASS64"
msgstr "ELF í´ëž˜ìŠ¤ê°€ 틀렸습니다: ELFCLASS64"
-#: elf/dl-load.c:2223
+#: elf/dl-load.c:2218
msgid "wrong ELF class: ELFCLASS32"
msgstr "ELF í´ëž˜ìŠ¤ê°€ 틀렸습니다: ELFCLASS32"
-#: elf/dl-load.c:2226
+#: elf/dl-load.c:2221
msgid "cannot open shared object file"
msgstr "ë™ì  오브ì íŠ¸ 파ì¼ì„ ì—´ 수 없습니다"
@@ -646,11 +648,7 @@ msgstr "ë™ì  오브ì íŠ¸ì˜ 세그먼트를 매핑하는 실패"
msgid "cannot map zero-fill pages"
msgstr "0으로 채운 페ì´ì§€ë¥¼ 매핑할 수 없습니다"
-#: elf/dl-lookup.c:835
-msgid "relocation error"
-msgstr "리로케ì´ì…˜ 오류"
-
-#: elf/dl-lookup.c:858
+#: elf/dl-lookup.c:830
msgid "symbol lookup error"
msgstr "심볼 찾기 오류"
@@ -658,19 +656,19 @@ msgstr "심볼 찾기 오류"
msgid "cannot extend global scope"
msgstr "전역 스코프를 확장할 수 없습니다"
-#: elf/dl-open.c:470
+#: elf/dl-open.c:474
msgid "TLS generation counter wrapped! Please report this."
msgstr "TLS 만들기 ì¹´ìš´í„°ê°€ 겹쳤습니다! ì´ ë¬¸ì œë¥¼ 알려 주십시오."
-#: elf/dl-open.c:534
+#: elf/dl-open.c:538
msgid "invalid mode for dlopen()"
msgstr "dlopen()ì— ëª¨ë“œê°€ 잘못ë¨"
-#: elf/dl-open.c:551
+#: elf/dl-open.c:555
msgid "no more namespaces available for dlmopen()"
msgstr "dlmopen()ì— ì‚¬ìš©í•  수 있는 네임스페ì´ìŠ¤ê°€ ë” ì´ìƒ 없습니다"
-#: elf/dl-open.c:575
+#: elf/dl-open.c:579
msgid "invalid target namespace in dlmopen()"
msgstr "dlmopen()ì— ëŒ€ìƒ ë„¤ìž„ìŠ¤íŽ˜ì´ìŠ¤ê°€ 잘못ë˜ì—ˆìŠµë‹ˆë‹¤"
@@ -678,20 +676,20 @@ msgstr "dlmopen()ì— ëŒ€ìƒ ë„¤ìž„ìŠ¤íŽ˜ì´ìŠ¤ê°€ 잘못ë˜ì—ˆìŠµë‹ˆë‹¤"
msgid "cannot allocate memory in static TLS block"
msgstr "ì •ì  TLS 블럭ì—는 메모리를 할당할 수 없습니다"
-#: elf/dl-reloc.c:205
+#: elf/dl-reloc.c:213
msgid "cannot make segment writable for relocation"
msgstr "리로케ì´ì…˜ì„ 위해 세그먼트를 쓰기 가능하ë„ë¡ ë§Œë“¤ 수 없습니다"
-#: elf/dl-reloc.c:276
+#: elf/dl-reloc.c:272
#, c-format
msgid "%s: out of memory to store relocation results for %s\n"
msgstr "%s: %sì— ëŒ€í•œ 리로케ì´ì…˜ 결과를 저장할 메모리가 부족합니다\n"
-#: elf/dl-reloc.c:292
+#: elf/dl-reloc.c:288
msgid "cannot restore segment prot after reloc"
msgstr "리로케ì´ì…˜ ë’¤ì— prot 세그먼트를 복구할 수 없습니다"
-#: elf/dl-reloc.c:323
+#: elf/dl-reloc.c:319
msgid "cannot apply additional memory protection after relocation"
msgstr "리로케ì´ì…˜ ë’¤ì— ì¶”ê°€ë¡œ 메모리 보호를 ì ìš©í•  수 없습니다"
@@ -909,22 +907,22 @@ msgstr "-r ì˜µì…˜ì„ ì‚¬ìš©í•  경우 설정 파ì¼ì˜ 절대 íŒŒì¼ ì´ë¦„ì´ í
msgid "memory exhausted"
msgstr "메모리가 바닥남"
-#: elf/ldconfig.c:1233
+#: elf/ldconfig.c:1234
#, c-format
msgid "%s:%u: cannot read directory %s"
msgstr "%s:%u: %s 디렉터리를 ì½ì„ 수 없습니다"
-#: elf/ldconfig.c:1281
+#: elf/ldconfig.c:1282
#, c-format
msgid "relative path `%s' used to build cache"
msgstr "ìºì‹œë¥¼ ë§Œë“œëŠ”ë° ìƒëŒ€ ê²½ë¡œì¸ `%s' 경로를 사용했습니다"
-#: elf/ldconfig.c:1311
+#: elf/ldconfig.c:1312
#, c-format
msgid "Can't chdir to /"
msgstr "/ë¡œ 디렉터리를 ì´ë™í•  수 없습니다"
-#: elf/ldconfig.c:1352
+#: elf/ldconfig.c:1353
#, c-format
msgid "Can't open cache file directory %s\n"
msgstr "ìºì‹œ íŒŒì¼ ë””ë ‰í„°ë¦¬ `%s'ì„(를) ì—´ 수 없습니다\n"
@@ -994,95 +992,101 @@ msgstr "ì•Œ 수 없는 오류 코드로 ë났습니다"
msgid "error: you do not have read permission for"
msgstr "오류: 다ìŒì— 대해 ì½ê¸° ê¶Œí•œì´ ì—†ìŠµë‹ˆë‹¤"
-#: elf/pldd-xx.c:105
+#: elf/pldd-xx.c:102
#, c-format
msgid "cannot find program header of process"
msgstr "í”„ë¡œì„¸ìŠ¤ì˜ í”„ë¡œê·¸ëž¨ í—¤ë”를 ì°¾ì„ ìˆ˜ 없습니다"
-#: elf/pldd-xx.c:110
+#: elf/pldd-xx.c:106
#, c-format
msgid "cannot read program header"
msgstr "프로그램 í—¤ë”를 ì½ì„ 수 없습니다"
-#: elf/pldd-xx.c:135
+#: elf/pldd-xx.c:128
#, c-format
msgid "cannot read dynamic section"
msgstr "ë™ì  ì„¹ì…˜ì„ ì½ì„ 수 없습니다"
-#: elf/pldd-xx.c:147
+#: elf/pldd-xx.c:137
#, c-format
msgid "cannot read r_debug"
msgstr "r_debug를 ì½ì„ 수 없습니다"
-#: elf/pldd-xx.c:167
+#: elf/pldd-xx.c:154
#, c-format
msgid "cannot read program interpreter"
msgstr "프로그램 ì¸í„°í”„리터를 ì½ì„ 수 없습니다"
-#: elf/pldd-xx.c:197
+#: elf/pldd-xx.c:183
#, c-format
msgid "cannot read link map"
msgstr "ë§í¬ ë§µì„ ì½ì„ 수 없습니다"
-#: elf/pldd-xx.c:209
+#: elf/pldd-xx.c:190
#, c-format
msgid "cannot read object name"
msgstr "오브ì íŠ¸ ì´ë¦„ì„ ì½ì„ 수 없습니다"
-#: elf/pldd-xx.c:219
+#: elf/pldd-xx.c:197
#, c-format
msgid "cannot allocate buffer for object name"
msgstr "오브ì íŠ¸ ì´ë¦„ì— ëŒ€í•œ 버í¼ë¥¼ 할당할 수 없습니다"
-#: elf/pldd.c:64
+#: elf/pldd.c:58
msgid "List dynamic shared objects loaded into process."
msgstr "프로세스가 ì½ì–´ë“¤ì¸ ë™ì  공유 오브ì íŠ¸ì˜ 목ë¡ì„ 표시합니다."
-#: elf/pldd.c:68
+#: elf/pldd.c:62
msgid "PID"
msgstr "<PID>"
-#: elf/pldd.c:100
+#: elf/pldd.c:89
#, c-format
msgid "Exactly one parameter with process ID required.\n"
msgstr "정확히 1ê°œì˜ í”„ë¡œì„¸ìŠ¤ ID 파ë¼ë¯¸í„°ê°€ 필요합니다.\n"
-#: elf/pldd.c:112
+#: elf/pldd.c:103
#, c-format
msgid "invalid process ID '%s'"
msgstr "프로세스 IDê°€ 잘못ë¨, '%s'"
-#: elf/pldd.c:120
+#: elf/pldd.c:111
#, c-format
msgid "cannot open %s"
msgstr "%sì„(를) ì—´ 수 없습니다"
-#: elf/pldd.c:152
+#: elf/pldd.c:142
#, c-format
msgid "cannot open %s/task"
msgstr "%s/task를 열 수 없습니다"
-#: elf/pldd.c:155
+#: elf/pldd.c:145
#, c-format
msgid "cannot prepare reading %s/task"
msgstr "%s/task ì½ê¸°ë¥¼ 준비할 수 없습니다"
-#: elf/pldd.c:168
+#: elf/pldd.c:158
#, c-format
msgid "invalid thread ID '%s'"
msgstr "스레드 IDê°€ 잘못ë¨, '%s'"
-#: elf/pldd.c:179
+#: elf/pldd.c:169
#, c-format
msgid "cannot attach to process %lu"
msgstr "프로세스 %luë²ˆì— ë¶™ì¼ ìˆ˜ 없습니다"
-#: elf/pldd.c:294
+#: elf/pldd.c:184
+#, fuzzy, c-format
+#| msgid "invalid saved time"
+msgid "no valid %s/task entries"
+msgstr "절약 ì‹œê°„ì´ ë¶€ì ì ˆí•¨"
+
+#: elf/pldd.c:290
#, c-format
msgid "cannot get information about process %lu"
msgstr "프로세스 %luë²ˆì˜ ì •ë³´ë¥¼ ì–»ì„ ìˆ˜ 없습니다"
-#: elf/pldd.c:307
+#: elf/pldd.c:303
#, c-format
msgid "process %lu is no ELF program"
msgstr "프로세스 %luë²ˆì€ ELF í”„ë¡œê·¸ëž¨ì´ ì•„ë‹™ë‹ˆë‹¤"
@@ -1402,7 +1406,7 @@ msgstr "ì •ë³´:"
msgid "list all known coded character sets"
msgstr "알려진 모든 문ìžì…‹ 코드를 열거함"
-#: iconv/iconv_prog.c:64 locale/programs/localedef.c:120
+#: iconv/iconv_prog.c:64 locale/programs/localedef.c:124
msgid "Output control:"
msgstr "출력 조정:"
@@ -1411,8 +1415,8 @@ msgid "omit invalid characters from output"
msgstr "출력ì—ì„œ ìž˜ëª»ëœ ë¬¸ìžë¥¼ 제외합니다"
#: iconv/iconv_prog.c:66 iconv/iconvconfig.c:128
-#: locale/programs/localedef.c:113 locale/programs/localedef.c:115
-#: locale/programs/localedef.c:117 locale/programs/localedef.c:144
+#: locale/programs/localedef.c:117 locale/programs/localedef.c:119
+#: locale/programs/localedef.c:121 locale/programs/localedef.c:150
#: malloc/memusagestat.c:56
msgid "FILE"
msgstr "<파ì¼>"
@@ -1511,7 +1515,7 @@ msgstr "ê³ ì†ë¡œë”© iconv 모듈 설정 파ì¼ì„ 만들 수 없습니다."
msgid "[DIR...]"
msgstr "[디렉터리...]"
-#: iconv/iconvconfig.c:126 locale/programs/localedef.c:123
+#: iconv/iconvconfig.c:126 locale/programs/localedef.c:129
msgid "PATH"
msgstr "<경로>"
@@ -1697,14 +1701,14 @@ msgstr "잠금ìƒíƒœì˜ 문ìžì…‹ì€ 지ì›í•˜ì§€ 않습니다"
#: locale/programs/charmap.c:503 locale/programs/charmap.c:557
#: locale/programs/charmap.c:589 locale/programs/charmap.c:683
-#: locale/programs/charmap.c:738 locale/programs/charmap.c:779
-#: locale/programs/charmap.c:820
+#: locale/programs/charmap.c:739 locale/programs/charmap.c:780
+#: locale/programs/charmap.c:821
#, c-format
msgid "syntax error in %s definition: %s"
msgstr "%s ì •ì˜ ë¶€ë¶„ì— ë¬¸ë²• 오류: %s"
#: locale/programs/charmap.c:504 locale/programs/charmap.c:684
-#: locale/programs/charmap.c:780 locale/programs/repertoire.c:229
+#: locale/programs/charmap.c:781 locale/programs/repertoire.c:229
msgid "no symbolic name given"
msgstr "ê¸°í˜¸ëª…ì´ ì£¼ì–´ì§€ì§€ ì•ŠìŒ"
@@ -1720,14 +1724,14 @@ msgstr "ë¬¸ìž ì¸ì½”ë”©ì— ë°”ì´íŠ¸ê°€ 너무 ì ìŠµë‹ˆë‹¤"
msgid "too many bytes in character encoding"
msgstr "ë¬¸ìž ì¸ì½”ë”©ì— ë°”ì´íŠ¸ê°€ 너무 많습니다"
-#: locale/programs/charmap.c:591 locale/programs/charmap.c:739
-#: locale/programs/charmap.c:822 locale/programs/repertoire.c:295
+#: locale/programs/charmap.c:591 locale/programs/charmap.c:740
+#: locale/programs/charmap.c:823 locale/programs/repertoire.c:295
msgid "no symbolic name given for end of range"
msgstr "ë²”ìœ„ì˜ ë까지 기호 ì´ë¦„ì´ ì—†ìŠµë‹ˆë‹¤"
#: locale/programs/charmap.c:615 locale/programs/ld-address.c:524
#: locale/programs/ld-collate.c:2616 locale/programs/ld-collate.c:3774
-#: locale/programs/ld-ctype.c:2117 locale/programs/ld-ctype.c:2829
+#: locale/programs/ld-ctype.c:2118 locale/programs/ld-ctype.c:2830
#: locale/programs/ld-identification.c:397
#: locale/programs/ld-measurement.c:213 locale/programs/ld-messages.c:295
#: locale/programs/ld-monetary.c:748 locale/programs/ld-name.c:262
@@ -1742,59 +1746,59 @@ msgstr "%1$s: ì •ì˜ê°€ `END %1$s'(으)ë¡œ ë나지 않습니다"
msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
msgstr "CHARMAP ì •ì˜ ë°”ë¡œ 다ìŒì—는 WIDTH ì •ì˜ë§Œì´ 가능합니다"
-#: locale/programs/charmap.c:656 locale/programs/charmap.c:719
+#: locale/programs/charmap.c:656 locale/programs/charmap.c:720
#, c-format
msgid "value for %s must be an integer"
msgstr "%sì— ëŒ€í•œ ê°’ì€ ì •ìˆ˜ì—¬ì•¼ 합니다"
-#: locale/programs/charmap.c:847
+#: locale/programs/charmap.c:848
#, c-format
msgid "%s: error in state machine"
msgstr "%s: ìƒíƒœ ê¸°ê³„ì— ì˜¤ë¥˜ ë°œìƒ"
-#: locale/programs/charmap.c:855 locale/programs/ld-address.c:540
+#: locale/programs/charmap.c:856 locale/programs/ld-address.c:540
#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967
-#: locale/programs/ld-ctype.c:2114 locale/programs/ld-ctype.c:2846
+#: locale/programs/ld-ctype.c:2115 locale/programs/ld-ctype.c:2847
#: locale/programs/ld-identification.c:413
#: locale/programs/ld-measurement.c:229 locale/programs/ld-messages.c:311
#: locale/programs/ld-monetary.c:764 locale/programs/ld-name.c:278
#: locale/programs/ld-numeric.c:341 locale/programs/ld-paper.c:228
#: locale/programs/ld-telephone.c:292 locale/programs/ld-time.c:990
-#: locale/programs/locfile.c:997 locale/programs/repertoire.c:323
+#: locale/programs/locfile.c:1010 locale/programs/repertoire.c:323
#, c-format
msgid "%s: premature end of file"
msgstr "%s: 파ì¼ì´ 완결하지 ì•Šì€ ì±„ ë남"
-#: locale/programs/charmap.c:874 locale/programs/charmap.c:885
+#: locale/programs/charmap.c:875 locale/programs/charmap.c:886
#, c-format
msgid "unknown character `%s'"
msgstr "ì•Œ 수 없는 ë¬¸ìž `%s'"
# 뭔 소리여?
-#: locale/programs/charmap.c:893
+#: locale/programs/charmap.c:894
#, c-format
msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d"
msgstr "ë²”ìœ„ì˜ ì‹œìž‘ê³¼ ëì˜ ë°”ì´íŠ¸ 시퀀스 ë°”ì´íŠ¸ 수가 다릅니다: %d ë° %d"
-#: locale/programs/charmap.c:998 locale/programs/ld-collate.c:2893
+#: locale/programs/charmap.c:999 locale/programs/ld-collate.c:2893
#: locale/programs/repertoire.c:418
msgid "invalid names for character range"
msgstr "문ìžì˜ 범위로 ìž˜ëª»ëœ ì´ë¦„"
-#: locale/programs/charmap.c:1010 locale/programs/repertoire.c:430
+#: locale/programs/charmap.c:1011 locale/programs/repertoire.c:430
msgid "hexadecimal range format should use only capital characters"
msgstr "16진수 범위 í¬ë§·ì€ 대문ìžë§Œì„ 사용해야 합니다"
-#: locale/programs/charmap.c:1028 locale/programs/repertoire.c:448
+#: locale/programs/charmap.c:1029 locale/programs/repertoire.c:448
#, c-format
msgid "<%s> and <%s> are invalid names for range"
msgstr "<%s>ê³¼(와) <%s>ì€(는) 문ìžì˜ 범위로 ìž˜ëª»ëœ ì´ë¦„입니다"
-#: locale/programs/charmap.c:1034 locale/programs/repertoire.c:455
+#: locale/programs/charmap.c:1035 locale/programs/repertoire.c:455
msgid "upper limit in range is smaller than lower limit"
msgstr "ë²”ìœ„ì˜ ìƒí•œê°’ì´ í•˜í•œê°’ë³´ë‹¤ 작습니다"
-#: locale/programs/charmap.c:1092
+#: locale/programs/charmap.c:1093
msgid "resulting bytes for range not representable."
msgstr "ë²”ìœ„ì˜ ìµœì¢… ë°”ì´íŠ¸ìˆ˜ë¥¼ 표시할 수 없습니다."
@@ -1864,7 +1868,7 @@ msgid "%s: numeric country code `%d' not valid"
msgstr "%s: êµ­ê°€ 코드 ìˆ«ìž `%d'ë²ˆì€ ì˜¬ë°”ë¥´ì§€ 않습니다"
#: locale/programs/ld-address.c:432 locale/programs/ld-address.c:469
-#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2478
+#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2479
#: locale/programs/ld-identification.c:309
#: locale/programs/ld-measurement.c:196 locale/programs/ld-messages.c:264
#: locale/programs/ld-monetary.c:503 locale/programs/ld-monetary.c:538
@@ -1887,7 +1891,7 @@ msgid "%s: unknown character in field `%s'"
msgstr "%s: `%s' í•„ë“œì— ì•Œë ¤ì§€ì§€ ì•Šì€ ë¬¸ìžê°€ 있습니다"
#: locale/programs/ld-address.c:521 locale/programs/ld-collate.c:3772
-#: locale/programs/ld-ctype.c:2826 locale/programs/ld-identification.c:394
+#: locale/programs/ld-ctype.c:2827 locale/programs/ld-identification.c:394
#: locale/programs/ld-measurement.c:210 locale/programs/ld-messages.c:293
#: locale/programs/ld-monetary.c:746 locale/programs/ld-name.c:260
#: locale/programs/ld-numeric.c:323 locale/programs/ld-paper.c:210
@@ -1900,8 +1904,8 @@ msgstr "%s: 불완전한 `END' 줄"
#: locale/programs/ld-collate.c:602 locale/programs/ld-collate.c:898
#: locale/programs/ld-collate.c:911 locale/programs/ld-collate.c:2582
#: locale/programs/ld-collate.c:2603 locale/programs/ld-collate.c:3957
-#: locale/programs/ld-ctype.c:1846 locale/programs/ld-ctype.c:2104
-#: locale/programs/ld-ctype.c:2676 locale/programs/ld-ctype.c:2837
+#: locale/programs/ld-ctype.c:1847 locale/programs/ld-ctype.c:2105
+#: locale/programs/ld-ctype.c:2677 locale/programs/ld-ctype.c:2838
#: locale/programs/ld-identification.c:404
#: locale/programs/ld-measurement.c:220 locale/programs/ld-messages.c:302
#: locale/programs/ld-monetary.c:755 locale/programs/ld-name.c:269
@@ -2251,133 +2255,133 @@ msgstr "`%s' ë¬¸ìž ì§€ë„는 ì´ë¯¸ ì •ì˜í–ˆìŠµë‹ˆë‹¤"
msgid "implementation limit: no more than %d character maps allowed"
msgstr "구현ìƒì˜ 제한: %d ê°œ ì´ìƒì˜ ë¬¸ìž ì§€ë„는 허용하지 않습니다"
-#: locale/programs/ld-ctype.c:1434 locale/programs/ld-ctype.c:1559
-#: locale/programs/ld-ctype.c:1665 locale/programs/ld-ctype.c:2341
-#: locale/programs/ld-ctype.c:3299
+#: locale/programs/ld-ctype.c:1435 locale/programs/ld-ctype.c:1560
+#: locale/programs/ld-ctype.c:1666 locale/programs/ld-ctype.c:2342
+#: locale/programs/ld-ctype.c:3302
#, c-format
msgid "%s: field `%s' does not contain exactly ten entries"
msgstr "%s: `%s' í•„ë“œì— ë“¤ì–´ 있는 í•­ëª©ì´ 10개가 아닙니다"
-#: locale/programs/ld-ctype.c:1462 locale/programs/ld-ctype.c:2036
+#: locale/programs/ld-ctype.c:1463 locale/programs/ld-ctype.c:2037
#, c-format
msgid "to-value <U%0*X> of range is smaller than from-value <U%0*X>"
msgstr "ë²”ìœ„ì˜ to-value <U%0*X>ì´(ê°€) from-value <U%0*X>보다 작습니다"
-#: locale/programs/ld-ctype.c:1589
+#: locale/programs/ld-ctype.c:1590
msgid "start and end character sequence of range must have the same length"
msgstr "ë²”ìœ„ì˜ ì‹œìž‘ ë¬¸ìž ìˆœì„œì—´ê³¼ ë ë¬¸ìž ìˆœì„œì—´ì€ ê¸¸ì´ê°€ 같아야 합니다"
-#: locale/programs/ld-ctype.c:1596
+#: locale/programs/ld-ctype.c:1597
msgid "to-value character sequence is smaller than from-value sequence"
msgstr "to-value ë¬¸ìž ìˆœì„œì—´ì´ from-value 순서열보다 작습니다"
-#: locale/programs/ld-ctype.c:1956 locale/programs/ld-ctype.c:2007
+#: locale/programs/ld-ctype.c:1957 locale/programs/ld-ctype.c:2008
msgid "premature end of `translit_ignore' definition"
msgstr "`translit_ignore' ì •ì˜ê°€ 완결하지 ì•Šì€ ì±„ ë났습니다"
-#: locale/programs/ld-ctype.c:1962 locale/programs/ld-ctype.c:2013
-#: locale/programs/ld-ctype.c:2055
+#: locale/programs/ld-ctype.c:1963 locale/programs/ld-ctype.c:2014
+#: locale/programs/ld-ctype.c:2056
msgid "syntax error"
msgstr "문법 오류"
-#: locale/programs/ld-ctype.c:2188
+#: locale/programs/ld-ctype.c:2189
#, c-format
msgid "%s: syntax error in definition of new character class"
msgstr "%s: 새로운 ë¬¸ìž í´ëž˜ìŠ¤ ì •ì˜ì— 문법 오류가 있습니다"
-#: locale/programs/ld-ctype.c:2203
+#: locale/programs/ld-ctype.c:2204
#, c-format
msgid "%s: syntax error in definition of new character map"
msgstr "%s: 새로운 ë¬¸ìž ë§µ ì •ì˜ì— 문법 오류가 있습니다"
-#: locale/programs/ld-ctype.c:2363
+#: locale/programs/ld-ctype.c:2364
msgid "ellipsis range must be marked by two operands of same type"
msgstr "ë§ì¤„ìž„í‘œ 범위는 ê°™ì€ íƒ€ìž…ì˜ ë‘ ê°œì˜ í”¼ì—°ì‚°ìžë¡œ 표시해야 합니다"
-#: locale/programs/ld-ctype.c:2372
+#: locale/programs/ld-ctype.c:2373
msgid "with symbolic name range values the absolute ellipsis `...' must not be used"
msgstr "기호ì´ë¦„ 범위 ê°’ì—서는 절대 ë§ì¤„ìž„í‘œ `..'ì„ ì“°ì§€ ë§ì•„야 합니다"
# 번역: 뭔소리야?
-#: locale/programs/ld-ctype.c:2387
+#: locale/programs/ld-ctype.c:2388
msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'"
msgstr "UCS 범위 ê°’ì—서는 16진수 기호 ë§ì¤„ìž„í‘œ `..'ì„ ì¨ì•¼ 합니다"
# 번역: 뭔 소리야?
-#: locale/programs/ld-ctype.c:2401
+#: locale/programs/ld-ctype.c:2402
msgid "with character code range values one must use the absolute ellipsis `...'"
msgstr "문ìžì½”ë“œ 범위 ê°’ì—서는 절대 ë§ì¤„ìž„í‘œ `..'ì„ ì¨ì•¼ 합니다"
-#: locale/programs/ld-ctype.c:2552
+#: locale/programs/ld-ctype.c:2553
#, c-format
msgid "duplicated definition for mapping `%s'"
msgstr "매핑 `%s'ì´(ê°€) 중복 ì •ì˜ë˜ì–´ 있습니다"
-#: locale/programs/ld-ctype.c:2638 locale/programs/ld-ctype.c:2782
+#: locale/programs/ld-ctype.c:2639 locale/programs/ld-ctype.c:2783
#, c-format
msgid "%s: `translit_start' section does not end with `translit_end'"
msgstr "%s: `translit_start' ì„¹ì…˜ì´ `translit_end'ë¡œ ë나지 않습니다."
-#: locale/programs/ld-ctype.c:2733
+#: locale/programs/ld-ctype.c:2734
#, c-format
msgid "%s: duplicate `default_missing' definition"
msgstr "%s: `default_missing' ì •ì˜ê°€ 중복ë˜ì—ˆìŠµë‹ˆë‹¤"
-#: locale/programs/ld-ctype.c:2738
+#: locale/programs/ld-ctype.c:2739
msgid "previous definition was here"
msgstr "ì´ì „ ì •ì˜ê°€ 여기 있습니다"
# 번역: representableì´ ì—¬ê¸°ì„œ??
-#: locale/programs/ld-ctype.c:2760
+#: locale/programs/ld-ctype.c:2761
#, c-format
msgid "%s: no representable `default_missing' definition found"
msgstr "%s: 표시할 수 있는 `default_missing' ì •ì˜ê°€ 없습니다"
-#: locale/programs/ld-ctype.c:2877 locale/programs/ld-ctype.c:2973
-#: locale/programs/ld-ctype.c:2992 locale/programs/ld-ctype.c:3012
-#: locale/programs/ld-ctype.c:3032 locale/programs/ld-ctype.c:3052
-#: locale/programs/ld-ctype.c:3072 locale/programs/ld-ctype.c:3111
-#: locale/programs/ld-ctype.c:3131 locale/programs/ld-ctype.c:3195
-#: locale/programs/ld-ctype.c:3236 locale/programs/ld-ctype.c:3259
+#: locale/programs/ld-ctype.c:2878 locale/programs/ld-ctype.c:2974
+#: locale/programs/ld-ctype.c:2993 locale/programs/ld-ctype.c:3013
+#: locale/programs/ld-ctype.c:3033 locale/programs/ld-ctype.c:3053
+#: locale/programs/ld-ctype.c:3073 locale/programs/ld-ctype.c:3112
+#: locale/programs/ld-ctype.c:3132 locale/programs/ld-ctype.c:3198
+#: locale/programs/ld-ctype.c:3239 locale/programs/ld-ctype.c:3262
#, c-format
msgid "%s: character `%s' not defined while needed as default value"
msgstr "%s: `%s' 문ìžëŠ” 기본값으로 필요하지만 ì •ì˜í•˜ì§€ 않았습니다"
-#: locale/programs/ld-ctype.c:2882 locale/programs/ld-ctype.c:2978
-#: locale/programs/ld-ctype.c:2997 locale/programs/ld-ctype.c:3017
-#: locale/programs/ld-ctype.c:3037 locale/programs/ld-ctype.c:3057
-#: locale/programs/ld-ctype.c:3077 locale/programs/ld-ctype.c:3116
-#: locale/programs/ld-ctype.c:3136 locale/programs/ld-ctype.c:3200
+#: locale/programs/ld-ctype.c:2883 locale/programs/ld-ctype.c:2979
+#: locale/programs/ld-ctype.c:2998 locale/programs/ld-ctype.c:3018
+#: locale/programs/ld-ctype.c:3038 locale/programs/ld-ctype.c:3058
+#: locale/programs/ld-ctype.c:3078 locale/programs/ld-ctype.c:3117
+#: locale/programs/ld-ctype.c:3137 locale/programs/ld-ctype.c:3203
#, c-format
msgid "%s: character `%s' in charmap not representable with one byte"
msgstr "%s: 문ìžë§µì˜ `%s' 문ìžëŠ” í•œ ë°”ì´íŠ¸ë¡œ 표현할 수 없습니다"
-#: locale/programs/ld-ctype.c:3242 locale/programs/ld-ctype.c:3265
+#: locale/programs/ld-ctype.c:3245 locale/programs/ld-ctype.c:3268
#, c-format
msgid "%s: character `%s' needed as default value not representable with one byte"
msgstr "%s: 기본값 `%s' 문ìžëŠ” í•œ ë°”ì´íŠ¸ë¡œ 표현할 수 없습니다"
-#: locale/programs/ld-ctype.c:3321
+#: locale/programs/ld-ctype.c:3324
msgid "no output digits defined and none of the standard names in the charmap"
msgstr "출력 숫ìžê°€ ì •ì˜í•˜ì§€ 않았고 문ìžë§µì— 표준 ì´ë¦„ì´ ì—†ìŠµë‹ˆë‹¤"
# transliteration: ê³ ì³ì”€, ìŒì—­
-#: locale/programs/ld-ctype.c:3570
+#: locale/programs/ld-ctype.c:3573
#, c-format
msgid "%s: transliteration data from locale `%s' not available"
msgstr "%s: 로캘 `%s'ì˜ ê³ ì³ì”€ ë°ì´í„°ê°€ 없습니다"
-#: locale/programs/ld-ctype.c:3669
+#: locale/programs/ld-ctype.c:3672
#, c-format
msgid "%s: table for class \"%s\": %lu bytes"
msgstr "%s: \"%s\" í´ëž˜ìŠ¤ì— 대한 í…Œì´ë¸”: %lu ë°”ì´íŠ¸"
-#: locale/programs/ld-ctype.c:3733
+#: locale/programs/ld-ctype.c:3736
#, c-format
msgid "%s: table for map \"%s\": %lu bytes"
msgstr "%s: \"%s\" ë§µì— ëŒ€í•œ í…Œì´ë¸”: %lu ë°”ì´íŠ¸"
-#: locale/programs/ld-ctype.c:3857
+#: locale/programs/ld-ctype.c:3860
#, c-format
msgid "%s: table for width: %lu bytes"
msgstr "%s: í­ì— 대한 í…Œì´ë¸”: %lu bytes"
@@ -2618,120 +2622,115 @@ msgstr ""
"<ì´ë¦„>\n"
"[-a|-m]"
-#: locale/programs/locale.c:190
+#: locale/programs/locale.c:522
#, c-format
-msgid "Cannot set LC_CTYPE to default locale"
-msgstr "LC_CTYPEì„ ê¸°ë³¸ 로캘로 설정할 수 없습니다"
-
-#: locale/programs/locale.c:192
-#, c-format
-msgid "Cannot set LC_MESSAGES to default locale"
-msgstr "LC_MESSAGESì„ ê¸°ë³¸ 로캘로 설정할 수 없습니다"
-
-#: locale/programs/locale.c:205
-#, c-format
-msgid "Cannot set LC_COLLATE to default locale"
-msgstr "LC_COLLATEì„ ê¸°ë³¸ 로캘로 설정할 수 없습니다"
+msgid "while preparing output"
+msgstr "ì¶œë ¥ì„ ì¤€ë¹„í•˜ëŠ” ë™ì•ˆ"
-#: locale/programs/locale.c:221
-#, c-format
-msgid "Cannot set LC_ALL to default locale"
+#: locale/programs/locale.c:998
+#, fuzzy, c-format
+#| msgid "Cannot set LC_ALL to default locale"
+msgid "Cannot set %s to default locale"
msgstr "LC_ALLì„ ê¸°ë³¸ 로캘로 설정할 수 없습니다"
-#: locale/programs/locale.c:521
+#: locale/programs/locale.c:1096
#, c-format
-msgid "while preparing output"
-msgstr "ì¶œë ¥ì„ ì¤€ë¹„í•˜ëŠ” ë™ì•ˆ"
+msgid "warning: The LOCPATH variable is set to \"%s\"\n"
+msgstr ""
-#: locale/programs/localedef.c:112
+#: locale/programs/localedef.c:116
msgid "Input Files:"
msgstr "ìž…ë ¥ 파ì¼:"
-#: locale/programs/localedef.c:114
+#: locale/programs/localedef.c:118
msgid "Symbolic character names defined in FILE"
msgstr "<파ì¼>ì— ê¸°í˜¸ë¡œ 표시한 ë¬¸ìž ì´ë¦„ì„ ì •ì˜í•¨"
-#: locale/programs/localedef.c:116
+#: locale/programs/localedef.c:120
msgid "Source definitions are found in FILE"
msgstr "<파ì¼>ì— ì†ŒìŠ¤ ì •ì˜ê°€ 있습니다"
-#: locale/programs/localedef.c:118
+#: locale/programs/localedef.c:122
msgid "FILE contains mapping from symbolic names to UCS4 values"
msgstr "<파ì¼>ì€ ê¸°í˜¸ë¡œ 표시한 ì´ë¦„ì—ì„œ UCS4 ê°’ìœ¼ë¡œì˜ ë§¤í•‘ì„ ê°–ê³  있습니다"
-#: locale/programs/localedef.c:122
+#: locale/programs/localedef.c:126
msgid "Create output even if warning messages were issued"
msgstr "경고 메시지가 나올 경우ì—ë„ ì¶œë ¥í•¨"
-#: locale/programs/localedef.c:123
+#: locale/programs/localedef.c:128
+msgid "Do not create hard links between installed locales"
+msgstr ""
+
+#: locale/programs/localedef.c:129
msgid "Optional output file prefix"
msgstr "출력 íŒŒì¼ ì ‘ë‘ì–´(옵션)"
-#: locale/programs/localedef.c:124
+#: locale/programs/localedef.c:130
msgid "Strictly conform to POSIX"
msgstr "엄격하게 POSIX를 따름"
-#: locale/programs/localedef.c:126
+#: locale/programs/localedef.c:132
msgid "Suppress warnings and information messages"
msgstr "경고 메시지와 관련 ì •ë³´ 메시지를 표시하지 ì•ŠìŒ"
-#: locale/programs/localedef.c:127
+#: locale/programs/localedef.c:133
msgid "Print more messages"
msgstr "ë” ë§Žì€ ë©”ì‹œì§€ 표시"
-#: locale/programs/localedef.c:128 locale/programs/localedef.c:131
+#: locale/programs/localedef.c:134 locale/programs/localedef.c:137
msgid "<warnings>"
msgstr "<경고>"
-#: locale/programs/localedef.c:129
+#: locale/programs/localedef.c:135
msgid "Comma-separated list of warnings to disable; supported warnings are: ascii, intcurrsym"
msgstr "사용하지 ì•Šì„ ê²½ê³ ì˜ ëª©ë¡ (쉼표로 구분). 지ì›í•˜ëŠ” 경고는: ascii, intcurrsym"
-#: locale/programs/localedef.c:132
+#: locale/programs/localedef.c:138
msgid "Comma-separated list of warnings to enable; supported warnings are: ascii, intcurrsym"
msgstr "사용할 ê²½ê³ ì˜ ëª©ë¡ (쉼표로 구분). 지ì›í•˜ëŠ” 경고는: ascii, intcurrsym"
-#: locale/programs/localedef.c:135
+#: locale/programs/localedef.c:141
msgid "Archive control:"
msgstr "ì•„ì¹´ì´ë¸Œ 컨트롤:"
-#: locale/programs/localedef.c:137
+#: locale/programs/localedef.c:143
msgid "Don't add new data to archive"
msgstr "ì•„ì¹´ì´ë¸Œì— 새 ë°ì´í„°ë¥¼ ë”하지 않습니다"
-#: locale/programs/localedef.c:139
+#: locale/programs/localedef.c:145
msgid "Add locales named by parameters to archive"
msgstr "ì•„ì¹´ì´ë¸Œì— ì¸ìˆ˜ë¡œ 지정한 ì´ë¦„ì˜ ë¡œìº˜ì„ ë”합니다"
-#: locale/programs/localedef.c:140
+#: locale/programs/localedef.c:146
msgid "Replace existing archive content"
msgstr "현재 ì•„ì¹´ì´ë¸Œ ë‚´ìš©ì„ ë°”ê¿‰ë‹ˆë‹¤"
-#: locale/programs/localedef.c:142
+#: locale/programs/localedef.c:148
msgid "Remove locales named by parameters from archive"
msgstr "ì•„ì¹´ì´ë¸Œì—ì„œ ì¸ìˆ˜ë¡œ 지정한 ì´ë¦„ì˜ ë¡œìº˜ì„ ì§€ì›ë‹ˆë‹¤"
-#: locale/programs/localedef.c:143
+#: locale/programs/localedef.c:149
msgid "List content of archive"
msgstr "ì•„ì¹´ì´ë¸Œì˜ ë‚´ìš©ì„ ë´…ë‹ˆë‹¤"
-#: locale/programs/localedef.c:145
+#: locale/programs/localedef.c:151
msgid "locale.alias file to consult when making archive"
msgstr "ì•„ì¹´ì´ë¸Œë¥¼ 만들 ë•Œ 들여다 ë³¼ locale.alias 파ì¼"
-#: locale/programs/localedef.c:147
+#: locale/programs/localedef.c:153
msgid "Generate little-endian output"
msgstr "리틀 엔디안으로 출력합니다"
-#: locale/programs/localedef.c:149
+#: locale/programs/localedef.c:155
msgid "Generate big-endian output"
msgstr "빅 엔디안으로 출력합니다"
-#: locale/programs/localedef.c:154
+#: locale/programs/localedef.c:160
msgid "Compile locale specification"
msgstr "로캘 명세를 컴파ì¼"
-#: locale/programs/localedef.c:157
+#: locale/programs/localedef.c:163
msgid ""
"NAME\n"
"[--add-to-archive|--delete-from-archive] FILE...\n"
@@ -2741,31 +2740,31 @@ msgstr ""
"[--add-to-archive|--delete-from-archive] <파ì¼>...\n"
"--list-archive [파ì¼]"
-#: locale/programs/localedef.c:232
+#: locale/programs/localedef.c:238
#, c-format
msgid "cannot create directory for output files"
msgstr "출력 파ì¼ì˜ 디렉터리를 만들 수 없습니다"
-#: locale/programs/localedef.c:243
+#: locale/programs/localedef.c:249
msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
msgstr "중요: ì‹œìŠ¤í…œì— `_POSIX2_LOCALEDEF'를 ì •ì˜í•˜ì§€ 않았습니다"
-#: locale/programs/localedef.c:257 locale/programs/localedef.c:273
-#: locale/programs/localedef.c:663 locale/programs/localedef.c:683
+#: locale/programs/localedef.c:263 locale/programs/localedef.c:279
+#: locale/programs/localedef.c:673 locale/programs/localedef.c:693
#, c-format
msgid "cannot open locale definition file `%s'"
msgstr "로캘 ì •ì˜ íŒŒì¼ `%s' 파ì¼ì„ ì—´ 수 없습니다"
-#: locale/programs/localedef.c:297
+#: locale/programs/localedef.c:303
#, c-format
msgid "cannot write output files to `%s'"
msgstr "출력 파ì¼ì„ `%s'ì— ê¸°ë¡í•  수 없습니다"
-#: locale/programs/localedef.c:303
+#: locale/programs/localedef.c:309
msgid "no output file produced because errors were issued"
msgstr "오류가 나왔으므로 출력 파ì¼ì„ 만들지 않았습니다"
-#: locale/programs/localedef.c:431
+#: locale/programs/localedef.c:441
#, c-format
msgid ""
"System's directory for character maps : %s\n"
@@ -2778,11 +2777,11 @@ msgstr ""
"\t\t 로캘 경로 : %s\n"
"%s"
-#: locale/programs/localedef.c:631
+#: locale/programs/localedef.c:641
msgid "circular dependencies between locale definitions"
msgstr "로캘 ì •ì˜ë“¤ 사ì´ì— ìƒí˜¸ ì˜ì¡´ì„±"
-#: locale/programs/localedef.c:637
+#: locale/programs/localedef.c:647
#, c-format
msgid "cannot add already read locale `%s' a second time"
msgstr "ì´ë¯¸ ì½ì–´ë“¤ì¸ `%s' ë¡œìº˜ì„ ë‘ ë²ˆ ë”í•  수 없습니다"
@@ -2938,24 +2937,24 @@ msgstr "출력 íŒŒì¼ `%s' 파ì¼ì„ 범주 `%s'ì— ëŒ€í•´ ì—´ 수 없습니다"
msgid "failure while writing data for category `%s'"
msgstr "범주 `%s'ì˜ ìžë£Œë¥¼ 쓰는 ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤"
-#: locale/programs/locfile.c:917
+#: locale/programs/locfile.c:930
#, c-format
msgid "cannot create output file `%s' for category `%s'"
msgstr "출력 íŒŒì¼ `%s' 파ì¼ì„ 범주 `%s'ì— ëŒ€í•´ 만들 수 없습니다"
-#: locale/programs/locfile.c:953
+#: locale/programs/locfile.c:966
msgid "expecting string argument for `copy'"
msgstr "`copy'ì— ëŒ€í•œ 문ìžì—´ ì¸ìˆ˜ê°€ 필요합니다"
-#: locale/programs/locfile.c:957
+#: locale/programs/locfile.c:970
msgid "locale name should consist only of portable characters"
msgstr "로캘 ì´ë¦„ì€ í¬í„°ë¸”í•œ 문ìžë¡œ 구성해야 합니다"
-#: locale/programs/locfile.c:976
+#: locale/programs/locfile.c:989
msgid "no other keyword shall be specified when `copy' is used"
msgstr "`copy'ê°€ ì‚¬ìš©ë  ë• ë‹¤ë¥¸ 키워드를 지정하면 안 ë©ë‹ˆë‹¤"
-#: locale/programs/locfile.c:990
+#: locale/programs/locfile.c:1003
#, c-format
msgid "`%1$s' definition does not end with `END %1$s'"
msgstr "`%1$s' ì •ì˜ê°€ `END %1$s'(으)ë¡œ ë나지 않습니다"
@@ -3788,12 +3787,12 @@ msgstr "yp_update: 호스트를 네트ì´ë¦„으로 바꿀 수 없습니다\n"
msgid "yp_update: cannot get server address\n"
msgstr "yp_update: 서버 주소를 ì–»ì„ ìˆ˜ 없습니다\n"
-#: nscd/aicache.c:83 nscd/hstcache.c:452
+#: nscd/aicache.c:82 nscd/hstcache.c:452
#, c-format
msgid "Haven't found \"%s\" in hosts cache!"
msgstr "호스트 ìºì‹œì—ì„œ \"%s\"ì„(를) ì°¾ì„ ìˆ˜ 없었습니다!"
-#: nscd/aicache.c:85 nscd/hstcache.c:454
+#: nscd/aicache.c:84 nscd/hstcache.c:454
#, c-format
msgid "Reloading \"%s\" in hosts cache!"
msgstr "호스트 ìºì‹œì—ì„œ \"%s\"ì„(를) 다시 ì½ì–´ë“¤ìž…니다!"
@@ -4118,22 +4117,22 @@ msgstr "%zu ë°”ì´íŠ¸ 메모리 í•´ì œ(%s ìºì‹œ) "
msgid "no more memory for database '%s'"
msgstr "'%s' ë°ì´í„°ë² ì´ìŠ¤ì— 메모리가 ë” ì´ìƒ 없습니다"
-#: nscd/netgroupcache.c:121
+#: nscd/netgroupcache.c:122
#, c-format
msgid "Haven't found \"%s\" in netgroup cache!"
msgstr "네트그룹 ìºì‹œì—ì„œ \"%s\"ì„(를) ì°¾ì„ ìˆ˜ 없습니다!"
-#: nscd/netgroupcache.c:123
+#: nscd/netgroupcache.c:124
#, c-format
msgid "Reloading \"%s\" in netgroup cache!"
msgstr "네트그룹 ìºì‹œì—ì„œ \"%s\"ì„(를) 다시 ì½ì–´ë“¤ìž…니다!"
-#: nscd/netgroupcache.c:469
+#: nscd/netgroupcache.c:470
#, c-format
msgid "Haven't found \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr "네트그룹 ìºì‹œì—ì„œ \"%s (%s,%s,%s)\"ì„(를) ì°¾ì„ ìˆ˜ 없습니다!"
-#: nscd/netgroupcache.c:472
+#: nscd/netgroupcache.c:473
#, c-format
msgid "Reloading \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr "네트그룹 ìºì‹œì—ì„œ \"%s (%s,%s,%s)\"ì„(를) 다시 ì½ì–´ë“¤ìž…니다!"
@@ -4186,7 +4185,7 @@ msgstr "사용ìžë³„ë¡œ 별ë„ì˜ ìºì‹œ 사용"
msgid "Name Service Cache Daemon."
msgstr "네임 서비스 ìºì‹œ ë°ëª¬."
-#: nscd/nscd.c:155 nss/getent.c:967 nss/makedb.c:206
+#: nscd/nscd.c:155 nss/getent.c:987 nss/makedb.c:206
#, c-format
msgid "wrong number of arguments"
msgstr "ì¸ìˆ˜ì˜ 개수가 잘못ë˜ì—ˆìŒ"
@@ -4294,27 +4293,27 @@ msgstr "파싱 오류: %s"
msgid "Must specify user name for server-user option"
msgstr "server-user 옵션ì—ì„œ 사용ìžì´ë¦„ì„ ì§€ì •í•´ì•¼ 합니다"
-#: nscd/nscd_conf.c:198
+#: nscd/nscd_conf.c:201
#, c-format
msgid "Must specify user name for stat-user option"
msgstr "stat-user 옵션ì—ì„œ 사용ìžì´ë¦„ì„ ì§€ì •í•´ì•¼ 합니다"
-#: nscd/nscd_conf.c:255
+#: nscd/nscd_conf.c:259
#, c-format
msgid "Must specify value for restart-interval option"
msgstr "restart-interval ì˜µì…˜ì˜ ê°’ì„ ì§€ì •í•´ì•¼ 합니다"
-#: nscd/nscd_conf.c:269
+#: nscd/nscd_conf.c:273
#, c-format
msgid "Unknown option: %s %s %s"
msgstr "알 수 없는 옵션: %s %s %s"
-#: nscd/nscd_conf.c:282
+#: nscd/nscd_conf.c:286
#, c-format
msgid "cannot get current working directory: %s; disabling paranoia mode"
msgstr "현재 ìž‘ì—… 디렉터리를 ì–»ì„ ìˆ˜ 없습니다: %s: 파ë¼ë…¸ì´ì•„ 모드를 사용하지 않습니다"
-#: nscd/nscd_conf.c:302
+#: nscd/nscd_conf.c:306
#, c-format
msgid "maximum file size for %s database too small"
msgstr "%s ë°ì´í„°ë² ì´ìŠ¤ì˜ 최대 íŒŒì¼ í¬ê¸°ê°€ 너무 작습니다"
@@ -4578,47 +4577,47 @@ msgstr "서비스 ìºì‹œì—ì„œ \"%s\"ì„(를) ì°¾ì„ ìˆ˜ 없습니다!"
msgid "Reloading \"%s\" in services cache!"
msgstr "서비스 ìºì‹œì—ì„œ \"%s\"ì„(를) 다시 ì½ì–´ë“¤ìž…니다!"
-#: nss/getent.c:54
+#: nss/getent.c:55
msgid "database [key ...]"
msgstr "ë°ì´í„°ë² ì´ìŠ¤ [키 ...]"
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "CONFIG"
msgstr "<설정>"
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "Service configuration to be used"
msgstr "사용할 서비스 설정"
-#: nss/getent.c:60
+#: nss/getent.c:61
msgid "disable IDN encoding"
msgstr "IDN ì¸ì½”딩 사용하지 않기"
-#: nss/getent.c:65
+#: nss/getent.c:66
msgid "Get entries from administrative database."
msgstr "ê´€ë¦¬ìž ë°ì´í„°ë² ì´ìŠ¤ì—ì„œ í•­ëª©ì„ ì½ìŠµë‹ˆë‹¤."
-#: nss/getent.c:149 nss/getent.c:442 nss/getent.c:489
+#: nss/getent.c:150 nss/getent.c:462 nss/getent.c:509
#, c-format
msgid "Enumeration not supported on %s\n"
msgstr "%sì— ì´ë‰´ë¨¸ë ˆì´ì…˜ì„ 지ì›í•˜ì§€ 않습니다\n"
-#: nss/getent.c:497 nss/getent.c:510
+#: nss/getent.c:517 nss/getent.c:530
#, fuzzy, c-format
#| msgid "Could not create log file"
msgid "Could not allocate group list: %m\n"
msgstr "ê¸°ë¡ íŒŒì¼ì„ 만들 수 없습니다"
-#: nss/getent.c:881
+#: nss/getent.c:901
#, c-format
msgid "Unknown database name"
msgstr "ì•Œ 수 없는 ë°ì´í„°ë² ì´ìŠ¤ ì´ë¦„"
-#: nss/getent.c:911
+#: nss/getent.c:931
msgid "Supported databases:\n"
msgstr "지ì›í•˜ëŠ” ë°ì´í„°ë² ì´ìŠ¤:\n"
-#: nss/getent.c:977
+#: nss/getent.c:997
#, c-format
msgid "Unknown database: %s\n"
msgstr "ì•Œ 수 없는 ë°ì´í„°ë² ì´ìŠ¤: `%s'\n"
@@ -4875,11 +4874,11 @@ msgstr "ì •ê·œì‹ì´ 너무 í½ë‹ˆë‹¤"
msgid "Unmatched ) or \\)"
msgstr "ì§ì´ 맞지 않는 ) ë˜ëŠ” \\)"
-#: posix/regcomp.c:689
+#: posix/regcomp.c:676
msgid "No previous regular expression"
msgstr "ì´ì „ì˜ ì •ê·œì‹ì´ ì—†ìŒ"
-#: posix/wordexp.c:1815
+#: posix/wordexp.c:1816
msgid "parameter null or not set"
msgstr "ì¸ìžê°€ NULLì´ê±°ë‚˜ ì¸ìžë¥¼ 지정하지 않았습니다"
@@ -5064,7 +5063,7 @@ msgstr "출력 버í¼ê°€ 있ìŒ"
msgid "Input message available"
msgstr "ìž…ë ¥ 메시지가 있ìŒ"
-#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:381 timezone/zic.c:520
+#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:375 timezone/zic.c:561
msgid "I/O error"
msgstr "입출력 오류"
@@ -5147,7 +5146,7 @@ msgstr "ì•Œ 수 없는 ì‹œê·¸ë„ %d번"
#: sunrpc/auth_unix.c:112 sunrpc/clnt_tcp.c:124 sunrpc/clnt_udp.c:139
#: sunrpc/clnt_unix.c:125 sunrpc/svc_tcp.c:189 sunrpc/svc_tcp.c:233
#: sunrpc/svc_udp.c:161 sunrpc/svc_unix.c:189 sunrpc/svc_unix.c:229
-#: sunrpc/xdr.c:628 sunrpc/xdr.c:788 sunrpc/xdr_array.c:102
+#: sunrpc/xdr.c:631 sunrpc/xdr.c:791 sunrpc/xdr_array.c:102
#: sunrpc/xdr_rec.c:153 sunrpc/xdr_ref.c:79
msgid "out of memory\n"
msgstr "메모리 부족\n"
@@ -6398,56 +6397,69 @@ msgid "You really blew it this time"
msgstr "ì´ë²ˆì—” ì •ë§ë¡œ 날려버렸습니다"
#. TRANS Go home and have a glass of warm, dairy-fresh milk.
-#: sysdeps/gnu/errlist.c:978
+#. TRANS @c Okay. Since you are dying to know, I'll tell you.
+#. TRANS @c This is a joke, obviously. There is a children's song which begins,
+#. TRANS @c "Old McDonald had a farm, e-i-e-i-o." Every time I see the (real)
+#. TRANS @c errno macro EIO, I think about that song. Probably most of my
+#. TRANS @c compatriots who program on Unix do, too. One of them must have stayed
+#. TRANS @c up a little too late one night and decided to add it to Hurd or Glibc.
+#. TRANS @c Whoever did it should be castigated, but it made me laugh.
+#. TRANS @c --jtobey@channel1.com
+#. TRANS @c
+#. TRANS @c "bought the farm" means "died". -jtobey
+#. TRANS @c
+#. TRANS @c Translators, please do not translate this litteraly, translate it into
+#. TRANS @c an idiomatic funny way of saying that the computer died.
+#: sysdeps/gnu/errlist.c:991
msgid "Computer bought the farm"
msgstr "컴퓨터가 ë†ìž¥ì„ 샀습니다"
#. TRANS This error code has no purpose.
-#: sysdeps/gnu/errlist.c:987
+#: sysdeps/gnu/errlist.c:1000
msgid "Gratuitous error"
msgstr "ì´ìœ ì—†ëŠ” 오류"
-#: sysdeps/gnu/errlist.c:995
+#: sysdeps/gnu/errlist.c:1008
msgid "Bad message"
msgstr "메시지가 잘못ë¨"
-#: sysdeps/gnu/errlist.c:1003
+#: sysdeps/gnu/errlist.c:1016
msgid "Identifier removed"
msgstr "ì‹ë³„ìž ì œê±°"
-#: sysdeps/gnu/errlist.c:1011
+#: sysdeps/gnu/errlist.c:1024
msgid "Multihop attempted"
msgstr "ì—¬ëŸ¬ê°œì˜ hopì´ ì‹œë„ë¨"
-#: sysdeps/gnu/errlist.c:1019
+#: sysdeps/gnu/errlist.c:1032
msgid "No data available"
msgstr "사용 가능한 ìžë£Œê°€ ì—†ìŒ"
-#: sysdeps/gnu/errlist.c:1027
+#: sysdeps/gnu/errlist.c:1040
msgid "Link has been severed"
msgstr "ë§í¬ê°€ ì†ìƒë˜ì—ˆìŠµë‹ˆë‹¤"
-#: sysdeps/gnu/errlist.c:1035
+#: sysdeps/gnu/errlist.c:1048
msgid "No message of desired type"
msgstr "ì ë‹¹í•œ í˜•ì„ ê°€ì§„ 메시지가 ì—†ìŒ"
-#: sysdeps/gnu/errlist.c:1043
+#: sysdeps/gnu/errlist.c:1056
msgid "Out of streams resources"
msgstr "스트림 ìžì› 부족"
-#: sysdeps/gnu/errlist.c:1051
+#: sysdeps/gnu/errlist.c:1064
msgid "Device not a stream"
msgstr "장치가 ìŠ¤íŠ¸ë¦¼ì´ ì•„ë‹˜"
-#: sysdeps/gnu/errlist.c:1059
+#: sysdeps/gnu/errlist.c:1072
msgid "Value too large for defined data type"
msgstr "ì •ì˜í•œ ìžë£Œí˜•ìœ¼ë¡œ 쓰기엔 너무 í° ê°’"
-#: sysdeps/gnu/errlist.c:1067
+#: sysdeps/gnu/errlist.c:1080
msgid "Protocol error"
msgstr "규약 오류"
-#: sysdeps/gnu/errlist.c:1075
+#: sysdeps/gnu/errlist.c:1088
msgid "Timer expired"
msgstr "타ì´ë¨¸ 만료"
@@ -6455,195 +6467,195 @@ msgstr "타ì´ë¨¸ 만료"
#. TRANS completed. @xref{Asynchronous I/O}. When you call @code{aio_cancel},
#. TRANS the normal result is for the operations affected to complete with this
#. TRANS error; @pxref{Cancel AIO Operations}.
-#: sysdeps/gnu/errlist.c:1087
+#: sysdeps/gnu/errlist.c:1100
msgid "Operation canceled"
msgstr "ëª…ë ¹ì„ ì·¨ì†Œí•˜ì˜€ìŠµë‹ˆë‹¤"
-#: sysdeps/gnu/errlist.c:1095
+#: sysdeps/gnu/errlist.c:1108
msgid "Owner died"
msgstr "소유ìžê°€ 죽었습니다"
-#: sysdeps/gnu/errlist.c:1103
+#: sysdeps/gnu/errlist.c:1116
msgid "State not recoverable"
msgstr "ìƒíƒœë¥¼ 복구할 수 없습니다"
-#: sysdeps/gnu/errlist.c:1111
+#: sysdeps/gnu/errlist.c:1124
msgid "Interrupted system call should be restarted"
msgstr "ì¤‘ë‹¨ëœ ì‹œìŠ¤í…œ ì½œì„ ë‹¤ì‹œ 시작해야 합니다"
-#: sysdeps/gnu/errlist.c:1119
+#: sysdeps/gnu/errlist.c:1132
msgid "Channel number out of range"
msgstr "범위를 ë²—ì–´ë‚œ ì±„ë„ ë²ˆí˜¸"
-#: sysdeps/gnu/errlist.c:1127
+#: sysdeps/gnu/errlist.c:1140
msgid "Level 2 not synchronized"
msgstr "등급 2ê°€ ë™ê¸°í™”ë˜ì§€ ì•ŠìŒ"
-#: sysdeps/gnu/errlist.c:1135
+#: sysdeps/gnu/errlist.c:1148
msgid "Level 3 halted"
msgstr "등급 3 ë©Žì—ˆìŒ"
-#: sysdeps/gnu/errlist.c:1143
+#: sysdeps/gnu/errlist.c:1156
msgid "Level 3 reset"
msgstr "등급 3 리셋"
-#: sysdeps/gnu/errlist.c:1151
+#: sysdeps/gnu/errlist.c:1164
msgid "Link number out of range"
msgstr "범위를 ë²—ì–´ë‚œ ë§í¬ 번호"
-#: sysdeps/gnu/errlist.c:1159
+#: sysdeps/gnu/errlist.c:1172
msgid "Protocol driver not attached"
msgstr "규약 구ë™ê¸°ì— ì—°ê²°ë˜ì§€ ì•ŠìŒ"
-#: sysdeps/gnu/errlist.c:1167
+#: sysdeps/gnu/errlist.c:1180
msgid "No CSI structure available"
msgstr "사용 가능한 CSI 구조가 ì—†ìŒ"
-#: sysdeps/gnu/errlist.c:1175
+#: sysdeps/gnu/errlist.c:1188
msgid "Level 2 halted"
msgstr "등급 2 ë©Žì—ˆìŒ"
-#: sysdeps/gnu/errlist.c:1183
+#: sysdeps/gnu/errlist.c:1196
msgid "Invalid exchange"
msgstr "부ì ì ˆí•œ êµí™˜"
-#: sysdeps/gnu/errlist.c:1191
+#: sysdeps/gnu/errlist.c:1204
msgid "Invalid request descriptor"
msgstr "요청 디스í¬ë¦½í„°ê°€ 잘못ë¨"
-#: sysdeps/gnu/errlist.c:1199
+#: sysdeps/gnu/errlist.c:1212
msgid "Exchange full"
msgstr "êµí™˜ì´ ê°€ë“ ì°¸"
-#: sysdeps/gnu/errlist.c:1207
+#: sysdeps/gnu/errlist.c:1220
msgid "No anode"
msgstr "anode가 없습니다"
-#: sysdeps/gnu/errlist.c:1215
+#: sysdeps/gnu/errlist.c:1228
msgid "Invalid request code"
msgstr "부ì ì ˆí•œ 요청 코드"
-#: sysdeps/gnu/errlist.c:1223
+#: sysdeps/gnu/errlist.c:1236
msgid "Invalid slot"
msgstr "부ì ì ˆí•œ 슬롯"
-#: sysdeps/gnu/errlist.c:1231
+#: sysdeps/gnu/errlist.c:1244
msgid "File locking deadlock error"
msgstr "íŒŒì¼ ìž ê¸ˆ êµì°©ìƒíƒœ 오류"
-#: sysdeps/gnu/errlist.c:1239
+#: sysdeps/gnu/errlist.c:1252
msgid "Bad font file format"
msgstr "글꼴 íŒŒì¼ í˜•ì‹ì´ 틀렸습니다"
-#: sysdeps/gnu/errlist.c:1247
+#: sysdeps/gnu/errlist.c:1260
msgid "Machine is not on the network"
msgstr "컴퓨터가 네트워í¬ì— 붙어 있지 않습니다"
-#: sysdeps/gnu/errlist.c:1255
+#: sysdeps/gnu/errlist.c:1268
msgid "Package not installed"
msgstr "패키지를 설치하지 않았습니다"
-#: sysdeps/gnu/errlist.c:1263
+#: sysdeps/gnu/errlist.c:1276
msgid "Advertise error"
msgstr "선전 오류"
-#: sysdeps/gnu/errlist.c:1271
+#: sysdeps/gnu/errlist.c:1284
msgid "Srmount error"
msgstr "srmount 오류"
-#: sysdeps/gnu/errlist.c:1279
+#: sysdeps/gnu/errlist.c:1292
msgid "Communication error on send"
msgstr "전송 중 통신 오류"
-#: sysdeps/gnu/errlist.c:1287
+#: sysdeps/gnu/errlist.c:1300
msgid "RFS specific error"
msgstr "RFS 관련 오류"
-#: sysdeps/gnu/errlist.c:1295
+#: sysdeps/gnu/errlist.c:1308
msgid "Name not unique on network"
msgstr "ì´ë¦„ì´ ë„¤íŠ¸ì›Œí¬ ìƒì—ì„œ 단ì¼í•˜ì§€ 않습니다"
-#: sysdeps/gnu/errlist.c:1303
+#: sysdeps/gnu/errlist.c:1316
msgid "File descriptor in bad state"
msgstr "íŒŒì¼ ë””ìŠ¤í¬ë¦½í„°ê°€ ìž˜ëª»ëœ ìƒíƒœì— 있습니다"
-#: sysdeps/gnu/errlist.c:1311
+#: sysdeps/gnu/errlist.c:1324
msgid "Remote address changed"
msgstr "ì›ê²© 주소가 바뀌었습니다"
-#: sysdeps/gnu/errlist.c:1319
+#: sysdeps/gnu/errlist.c:1332
msgid "Can not access a needed shared library"
msgstr "필요한 공유 ë¼ì´ë¸ŒëŸ¬ë¦¬ì— 접근할 수 없습니다"
-#: sysdeps/gnu/errlist.c:1327
+#: sysdeps/gnu/errlist.c:1340
msgid "Accessing a corrupted shared library"
msgstr "ì†ìƒëœ 공유 ë¼ì´ë¸ŒëŸ¬ë¦¬ì— 접근합니다"
-#: sysdeps/gnu/errlist.c:1335
+#: sysdeps/gnu/errlist.c:1348
msgid ".lib section in a.out corrupted"
msgstr "a.outì˜ .lib ì„¹ì…˜ì´ ì†ìƒë˜ì—ˆìŠµë‹ˆë‹¤"
-#: sysdeps/gnu/errlist.c:1343
+#: sysdeps/gnu/errlist.c:1356
msgid "Attempting to link in too many shared libraries"
msgstr "너무 ë§Žì€ ë™ì  ë¼ì´ë¸ŒëŸ¬ë¦¬ì™€ ë§í¬í•˜ë ¤ê³  ì‹œë„합니다"
-#: sysdeps/gnu/errlist.c:1351
+#: sysdeps/gnu/errlist.c:1364
msgid "Cannot exec a shared library directly"
msgstr "공유 ë¼ì´ë¸ŒëŸ¬ë¦¬ë¥¼ ì§ì ‘ 실행할 수 없습니다"
-#: sysdeps/gnu/errlist.c:1359
+#: sysdeps/gnu/errlist.c:1372
msgid "Streams pipe error"
msgstr "스트림 파ì´í”„ 오류"
-#: sysdeps/gnu/errlist.c:1367
+#: sysdeps/gnu/errlist.c:1380
msgid "Structure needs cleaning"
msgstr "êµ¬ì¡°ì— ì²­ì†Œê°€ 필요합니다"
-#: sysdeps/gnu/errlist.c:1375
+#: sysdeps/gnu/errlist.c:1388
msgid "Not a XENIX named type file"
msgstr "XENIX named 타입 파ì¼ì´ 아닙니다"
-#: sysdeps/gnu/errlist.c:1383
+#: sysdeps/gnu/errlist.c:1396
msgid "No XENIX semaphores available"
msgstr "사용 가능한 XENIX 세마í¬ì–´ê°€ 없습니다"
-#: sysdeps/gnu/errlist.c:1391
+#: sysdeps/gnu/errlist.c:1404
msgid "Is a named type file"
msgstr "named 타입 파ì¼ìž…니다"
-#: sysdeps/gnu/errlist.c:1399
+#: sysdeps/gnu/errlist.c:1412
msgid "Remote I/O error"
msgstr "ì›ê²© 입출력 오류"
-#: sysdeps/gnu/errlist.c:1407
+#: sysdeps/gnu/errlist.c:1420
msgid "No medium found"
msgstr "미디어가 ì—†ìŒ"
-#: sysdeps/gnu/errlist.c:1415
+#: sysdeps/gnu/errlist.c:1428
msgid "Wrong medium type"
msgstr "미디어 종류가 잘못ë¨"
-#: sysdeps/gnu/errlist.c:1423
+#: sysdeps/gnu/errlist.c:1436
msgid "Required key not available"
msgstr "필요한 키가 없습니다"
-#: sysdeps/gnu/errlist.c:1431
+#: sysdeps/gnu/errlist.c:1444
msgid "Key has expired"
msgstr "키가 만료ë˜ì—ˆìŠµë‹ˆë‹¤"
-#: sysdeps/gnu/errlist.c:1439
+#: sysdeps/gnu/errlist.c:1452
msgid "Key has been revoked"
msgstr "키가 종료ë˜ì—ˆìŠµë‹ˆë‹¤"
-#: sysdeps/gnu/errlist.c:1447
+#: sysdeps/gnu/errlist.c:1460
msgid "Key was rejected by service"
msgstr "서비스가 키를 거부했습니다"
-#: sysdeps/gnu/errlist.c:1455
+#: sysdeps/gnu/errlist.c:1468
msgid "Operation not possible due to RF-kill"
msgstr "ìž‘ì—…ì´ ë¶ˆê°€ëŠ¥, RF-kill 때문"
-#: sysdeps/gnu/errlist.c:1463
+#: sysdeps/gnu/errlist.c:1476
msgid "Memory page has hardware error"
msgstr "메모리 페ì´ì§€ì— 하드웨어 오류"
@@ -6772,27 +6784,39 @@ msgstr ""
msgid "can't disable CET"
msgstr ""
-#: timezone/zdump.c:338
+#: timezone/zdump.c:332
msgid "has fewer than 3 characters"
msgstr "3ìžë³´ë‹¤ ì ìŠµë‹ˆë‹¤"
-#: timezone/zdump.c:340
+#: timezone/zdump.c:334
msgid "has more than 6 characters"
msgstr "6ìžë³´ë‹¤ 많습니다"
-#: timezone/zdump.c:342
+#: timezone/zdump.c:336
msgid "has characters other than ASCII alphanumerics, '-' or '+'"
msgstr "ASCII 알파벳 ë° ìˆ«ìž, '-', '+'ê°€ ì•„ë‹Œ 문ìžê°€ 있습니다"
-#: timezone/zdump.c:347
+#: timezone/zdump.c:341
#, c-format
msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n"
msgstr "%s: 경고: 지역 \"%s\" 약어 \"%s\" %s\n"
-#: timezone/zdump.c:393
-#, c-format
+#: timezone/zdump.c:387
+#, fuzzy, c-format
+#| msgid ""
+#| "%s: usage: %s OPTIONS ZONENAME ...\n"
+#| "Options include:\n"
+#| " -c [L,]U Start at year L (default -500), end before year U (default 2500)\n"
+#| " -t [L,]U Start at time L, end before time U (in seconds since 1970)\n"
+#| " -i List transitions briefly (format is experimental)\n"
+#| " -v List transitions verbosely\n"
+#| " -V List transitions a bit less verbosely\n"
+#| " --help Output this help\n"
+#| " --version Output version info\n"
+#| "\n"
+#| "Report bugs to %s.\n"
msgid ""
-"%s: usage: %s OPTIONS ZONENAME ...\n"
+"%s: usage: %s OPTIONS TIMEZONE ...\n"
"Options include:\n"
" -c [L,]U Start at year L (default -500), end before year U (default 2500)\n"
" -t [L,]U Start at time L, end before time U (in seconds since 1970)\n"
@@ -6816,50 +6840,62 @@ msgstr ""
"\n"
"Report bugs to %s.\n"
-#: timezone/zdump.c:479
+#: timezone/zdump.c:473
#, c-format
msgid "%s: wild -c argument %s\n"
msgstr "%s: ì œë©‹ëŒ€ë¡œì¸ -c ì¸ìˆ˜ %s\n"
-#: timezone/zdump.c:512
+#: timezone/zdump.c:506
#, c-format
msgid "%s: wild -t argument %s\n"
msgstr "%s: ì œë©‹ëŒ€ë¡œì¸ -t ì¸ìˆ˜ %s\n"
-#: timezone/zic.c:398
+#: timezone/zic.c:429
#, c-format
msgid "%s: Memory exhausted: %s\n"
msgstr "%s: 메모리가 바닥남: %s\n"
-#: timezone/zic.c:406
+#: timezone/zic.c:437
msgid "size overflow"
msgstr "í¬ê¸° 오버플로"
-#: timezone/zic.c:454
+#: timezone/zic.c:447
+#, fuzzy
+#| msgid "time overflow"
+msgid "alignment overflow"
+msgstr "시간 값 오버플로"
+
+#: timezone/zic.c:495
msgid "integer overflow"
msgstr "정수 값 오버플로"
-#: timezone/zic.c:488
+#: timezone/zic.c:529
#, c-format
msgid "\"%s\", line %<PRIdMAX>: "
msgstr "\"%s\", í–‰ %<PRIdMAX>: "
-#: timezone/zic.c:491
+#: timezone/zic.c:532
#, c-format
msgid " (rule from \"%s\", line %<PRIdMAX>)"
msgstr " (\"%s\"ì— ìžˆëŠ” 규칙, í–‰ %<PRIdMAX>)"
-#: timezone/zic.c:510
+#: timezone/zic.c:551
#, c-format
msgid "warning: "
msgstr "경고: "
-#: timezone/zic.c:535
-#, c-format
+#: timezone/zic.c:576
+#, fuzzy, c-format
+#| msgid ""
+#| "%s: usage is %s [ --version ] [ --help ] [ -v ] \\\n"
+#| "\t[ -l localtime ] [ -p posixrules ] [ -d directory ] \\\n"
+#| "\t[ -L leapseconds ] [ filename ... ]\n"
+#| "\n"
+#| "Report bugs to %s.\n"
msgid ""
"%s: usage is %s [ --version ] [ --help ] [ -v ] \\\n"
"\t[ -l localtime ] [ -p posixrules ] [ -d directory ] \\\n"
-"\t[ -L leapseconds ] [ filename ... ]\n"
+"\t[ -t localtime-link ] [ -L leapseconds ] [ filename ... ]\n"
"\n"
"Report bugs to %s.\n"
msgstr ""
@@ -6869,392 +6905,434 @@ msgstr ""
"\n"
"문제ì ì€ %s 주소로 알려 주십시오.\n"
-#: timezone/zic.c:558
+#: timezone/zic.c:599
#, c-format
msgid "%s: Can't chdir to %s: %s\n"
msgstr "%s: %s 디렉터리로 ì´ë™í•  수 없습니다: %s\n"
-#: timezone/zic.c:590
+#: timezone/zic.c:632
msgid "wild compilation-time specification of zic_t"
msgstr "ì œë©‹ëŒ€ë¡œì¸ zic_tì˜ ì»´íŒŒì¼ íƒ€ìž„ 명세"
-#: timezone/zic.c:610
+#: timezone/zic.c:652
#, c-format
msgid "%s: More than one -d option specified\n"
msgstr "%s: 하나 ì´ìƒì˜ -d ì˜µì…˜ì„ ì§€ì •í–ˆìŠµë‹ˆë‹¤\n"
-#: timezone/zic.c:620
+#: timezone/zic.c:662
#, c-format
msgid "%s: More than one -l option specified\n"
msgstr "%s: 하나 ì´ìƒì˜ -l ì˜µì…˜ì„ ì§€ì •í–ˆìŠµë‹ˆë‹¤\n"
-#: timezone/zic.c:630
+#: timezone/zic.c:672
#, c-format
msgid "%s: More than one -p option specified\n"
msgstr "%s: 하나 ì´ìƒì˜ -p ì˜µì…˜ì„ ì§€ì •í–ˆìŠµë‹ˆë‹¤\n"
-#: timezone/zic.c:640
+#: timezone/zic.c:680
+#, fuzzy, c-format
+#| msgid "%s: More than one -d option specified\n"
+msgid "%s: More than one -t option specified\n"
+msgstr "%s: 하나 ì´ìƒì˜ -d ì˜µì…˜ì„ ì§€ì •í–ˆìŠµë‹ˆë‹¤\n"
+
+#: timezone/zic.c:689
+msgid "-y is obsolescent"
+msgstr ""
+
+#: timezone/zic.c:693
#, c-format
msgid "%s: More than one -y option specified\n"
msgstr "%s: 하나 ì´ìƒì˜ -y ì˜µì…˜ì„ ì§€ì •í–ˆìŠµë‹ˆë‹¤\n"
-#: timezone/zic.c:650
+#: timezone/zic.c:703
#, c-format
msgid "%s: More than one -L option specified\n"
msgstr "%s: 하나 ì´ìƒì˜ -L ì˜µì…˜ì„ ì§€ì •í–ˆìŠµë‹ˆë‹¤\n"
-#: timezone/zic.c:659
+#: timezone/zic.c:712
msgid "-s ignored"
msgstr "-s 무시ë¨"
-#: timezone/zic.c:698
+#: timezone/zic.c:753
msgid "link to link"
msgstr "ë§í¬ë¡œ ë§í¬"
-#: timezone/zic.c:701 timezone/zic.c:705
+#: timezone/zic.c:756 timezone/zic.c:760
msgid "command line"
msgstr "명령행"
-#: timezone/zic.c:721
+#: timezone/zic.c:776
msgid "empty file name"
msgstr "빈 íŒŒì¼ ì´ë¦„"
-#: timezone/zic.c:724
+#: timezone/zic.c:779
#, c-format
msgid "file name '%s' begins with '/'"
msgstr "'%s' íŒŒì¼ ì´ë¦„ì´ '/'ë¡œ 시작합니다"
-#: timezone/zic.c:734
+#: timezone/zic.c:789
#, c-format
msgid "file name '%s' contains '%.*s' component"
msgstr "'%s' íŒŒì¼ ì´ë¦„ì— '%.*s' ë‚´ìš©ì´ ë“¤ì–´ 있습니다"
-#: timezone/zic.c:740
+#: timezone/zic.c:795
#, c-format
msgid "file name '%s' component contains leading '-'"
msgstr "'%s' íŒŒì¼ ì´ë¦„ì— ì•žì— '-'ê°€ 들어 있습니다"
-#: timezone/zic.c:743
+#: timezone/zic.c:798
#, c-format
msgid "file name '%s' contains overlength component '%.*s...'"
msgstr "'%s' íŒŒì¼ ì´ë¦„ì— ê¸¸ì´ê°€ 제한보다 긴 '%.*s...' ë‚´ìš©ì´ ë“¤ì–´ 있습니다"
-#: timezone/zic.c:771
+#: timezone/zic.c:826
#, c-format
msgid "file name '%s' contains byte '%c'"
msgstr "'%s' íŒŒì¼ ì´ë¦„ì— '%c' ë°”ì´íŠ¸ê°€ 들어 있습니다"
-#: timezone/zic.c:772
+#: timezone/zic.c:827
#, c-format
msgid "file name '%s' contains byte '\\%o'"
msgstr "'%s' íŒŒì¼ ì´ë¦„ì— '\\%o' ë°”ì´íŠ¸ê°€ 들어 있습니다"
-#: timezone/zic.c:842
+#: timezone/zic.c:897
#, c-format
msgid "%s: link from %s/%s failed: %s\n"
msgstr "%s: %s/%sì—ì„œ ì—°ê²° 실패: %s\n"
-#: timezone/zic.c:852 timezone/zic.c:1815
+#: timezone/zic.c:907 timezone/zic.c:1876
#, c-format
msgid "%s: Can't remove %s/%s: %s\n"
msgstr "%s: %s/%sì„(를) 제거할 수 없습니다: %s\n"
-#: timezone/zic.c:874
+#: timezone/zic.c:931
#, c-format
msgid "symbolic link used because hard link failed: %s"
msgstr "하드 ë§í¬ê°€ 실패해서 심볼릭 ë§í¬ë¥¼ 사용합니다: %s"
-#: timezone/zic.c:882
+#: timezone/zic.c:939
#, c-format
msgid "%s: Can't read %s/%s: %s\n"
msgstr "%s: %s/%sì„(를) ì½ì„ 수 없습니다: %s\n"
-#: timezone/zic.c:889 timezone/zic.c:1828
+#: timezone/zic.c:946 timezone/zic.c:1889
#, c-format
msgid "%s: Can't create %s/%s: %s\n"
msgstr "%s: %s/%sì„(를) 만들 수 없습니다: %s\n"
-#: timezone/zic.c:898
+#: timezone/zic.c:955
#, c-format
msgid "copy used because hard link failed: %s"
msgstr "하드 ë§í¬ê°€ 실패해서 복사를 사용합니다: %s"
-#: timezone/zic.c:901
+#: timezone/zic.c:958
#, c-format
msgid "copy used because symbolic link failed: %s"
msgstr "심볼릭 ë§í¬ê°€ 실패해서 복사를 사용합니다: %s"
-#: timezone/zic.c:1013 timezone/zic.c:1015
+#: timezone/zic.c:1032 timezone/zic.c:1034
msgid "same rule name in multiple files"
msgstr "여러 파ì¼ì— ê°™ì€ ì´ë¦„ì˜ ê·œì¹™ì´ ìžˆìŒ"
-#: timezone/zic.c:1056
-msgid "unruly zone"
-msgstr "규칙없는 지역"
-
-#: timezone/zic.c:1063
+#: timezone/zic.c:1081
#, c-format
msgid "%s in ruleless zone"
msgstr "규칙없는 ì§€ì—­ì— %s 있ìŒ"
-#: timezone/zic.c:1083
+#: timezone/zic.c:1101
msgid "standard input"
msgstr "표준 입력"
-#: timezone/zic.c:1088
+#: timezone/zic.c:1106
#, c-format
msgid "%s: Can't open %s: %s\n"
msgstr "%s: %sì„(를) ì—´ 수 없습니다: %s\n"
-#: timezone/zic.c:1099
+#: timezone/zic.c:1117
msgid "line too long"
msgstr "í–‰ì´ ë„ˆë¬´ ê¹ë‹ˆë‹¤"
-#: timezone/zic.c:1119
+#: timezone/zic.c:1139
msgid "input line of unknown type"
msgstr "ì•Œ 수 없는 í˜•íƒœì˜ ìž…ë ¥í–‰"
-#: timezone/zic.c:1134
-#, c-format
-msgid "%s: Leap line in non leap seconds file %s"
-msgstr "%s: 윤초 파ì¼ì´ ì•„ë‹Œ %s 파ì¼ì— Leap ì¤„ì´ ìžˆìŒ"
-
-#: timezone/zic.c:1142 timezone/zic.c:1547 timezone/zic.c:1569
+#: timezone/zic.c:1158 timezone/zic.c:1593 timezone/zic.c:1615
#, c-format
msgid "%s: panic: Invalid l_value %d\n"
msgstr "%s: 문제ìƒíƒœ: ìž˜ëª»ëœ ì¢Œë³€ê°’ %d\n"
-#: timezone/zic.c:1151
+#: timezone/zic.c:1167
msgid "expected continuation line not found"
msgstr "예ìƒí–ˆë˜ ì—°ì† í–‰ì„ ì°¾ì§€ 못했ìŒ"
-#: timezone/zic.c:1193 timezone/zic.c:2976
+#: timezone/zic.c:1203
+#, fuzzy
+#| msgid "format '%s' not handled by pre-2015 versions of zic"
+msgid "fractional seconds rejected by pre-2018 versions of zic"
+msgstr "'%s' í¬ë§·ì€ 2015ë…„ ì „ ë²„ì „ì˜ zic는 처리하지 못합니다"
+
+#: timezone/zic.c:1221 timezone/zic.c:3078
msgid "time overflow"
msgstr "시간 값 오버플로"
-#: timezone/zic.c:1198
+#: timezone/zic.c:1227
msgid "values over 24 hours not handled by pre-2007 versions of zic"
msgstr "24보다 í° ê°’ì€ 2007ë…„ ì „ ë²„ì „ì˜ zic는 처리하지 못합니다"
-#: timezone/zic.c:1209
+#: timezone/zic.c:1245
+msgid "invalid saved time"
+msgstr "절약 ì‹œê°„ì´ ë¶€ì ì ˆí•¨"
+
+#: timezone/zic.c:1256
msgid "wrong number of fields on Rule line"
msgstr "Rule ì¤„ì— í•„ë“œì˜ ê°œìˆ˜ê°€ 잘못ë˜ì—ˆìŒ"
-#: timezone/zic.c:1213
-msgid "nameless rule"
-msgstr "ì´ë¦„없는 규칙"
-
-#: timezone/zic.c:1218
-msgid "invalid saved time"
-msgstr "절약 ì‹œê°„ì´ ë¶€ì ì ˆí•¨"
+#: timezone/zic.c:1265
+#, fuzzy, c-format
+#| msgid "Invalid numeric gid \"%s\"!"
+msgid "Invalid rule name \"%s\""
+msgstr "gid 번호 \"%s\"ë²ˆì´ ìž˜ëª»ë˜ì—ˆìŠµë‹ˆë‹¤!"
-#: timezone/zic.c:1235
+#: timezone/zic.c:1287
msgid "wrong number of fields on Zone line"
msgstr "Zone ì¤„ì— í•„ë“œì˜ ê°¯ìˆ˜ê°€ 잘못ë˜ì—ˆìŒ"
-#: timezone/zic.c:1240
+#: timezone/zic.c:1292
#, c-format
msgid "\"Zone %s\" line and -l option are mutually exclusive"
msgstr "\"지역 %s\" 행과 -l ì˜µì…˜ì€ ìƒí˜¸ 배타ì ìž…니다"
-#: timezone/zic.c:1246
+#: timezone/zic.c:1298
#, c-format
msgid "\"Zone %s\" line and -p option are mutually exclusive"
msgstr "\"지역 %s\" 행과 -p ì˜µì…˜ì€ ìƒí˜¸ 배타ì ìž…니다"
-#: timezone/zic.c:1253
+#: timezone/zic.c:1305
#, c-format
msgid "duplicate zone name %s (file \"%s\", line %<PRIdMAX>)"
msgstr "지역명 %s (íŒŒì¼ \"%s\", í–‰ %<PRIdMAX>) 중복ë˜ì–´ 있습니다"
-#: timezone/zic.c:1267
+#: timezone/zic.c:1319
msgid "wrong number of fields on Zone continuation line"
msgstr "Zone continuation ì¤„ì— í•„ë“œì˜ ê°œìˆ˜ê°€ 잘못ë˜ì—ˆìŒ"
-#: timezone/zic.c:1307
+#: timezone/zic.c:1359
msgid "invalid UT offset"
msgstr "UT ì˜µì…‹ì´ ìž˜ëª»ë¨"
-#: timezone/zic.c:1311
+#: timezone/zic.c:1363
msgid "invalid abbreviation format"
msgstr "약어 형ì‹ì´ 잘못ë¨"
-#: timezone/zic.c:1320
+#: timezone/zic.c:1372
#, c-format
msgid "format '%s' not handled by pre-2015 versions of zic"
msgstr "'%s' í¬ë§·ì€ 2015ë…„ ì „ ë²„ì „ì˜ zic는 처리하지 못합니다"
-#: timezone/zic.c:1347
+#: timezone/zic.c:1399
msgid "Zone continuation line end time is not after end time of previous line"
msgstr "계ì†ë˜ëŠ” Zone ì¤„ì— ìžˆëŠ” ë ì‹œê°ì´ 윗 ì¤„ì— ìžˆëŠ” ëì‹œê°ë³´ë‹¤ ëŠ¦ì€ ì‹œê°ì´ 아닙니다"
-#: timezone/zic.c:1374
+#: timezone/zic.c:1426
msgid "wrong number of fields on Leap line"
msgstr "Leap ì¤„ì— í•„ë“œì˜ ê°œìˆ˜ê°€ 잘못ë˜ì—ˆìŒ"
-#: timezone/zic.c:1383
+#: timezone/zic.c:1435
msgid "invalid leaping year"
msgstr "ìœ¤ë…„ì´ ìž˜ëª»ë¨"
-#: timezone/zic.c:1403 timezone/zic.c:1501
+#: timezone/zic.c:1455 timezone/zic.c:1547
msgid "invalid month name"
msgstr "달 ì´ë¦„ì´ ìž˜ëª»ë¨"
-#: timezone/zic.c:1416 timezone/zic.c:1614 timezone/zic.c:1628
+#: timezone/zic.c:1468 timezone/zic.c:1663 timezone/zic.c:1677
msgid "invalid day of month"
msgstr "ë‹¬ì˜ ë‚ ì§œ 수가 잘못ë¨"
-#: timezone/zic.c:1421
+#: timezone/zic.c:1473
msgid "time too small"
msgstr "시간 ê°’ì´ ë„ˆë¬´ 작습니다"
-#: timezone/zic.c:1425
+#: timezone/zic.c:1477
msgid "time too large"
msgstr "시간 ê°’ì´ ë„ˆë¬´ í½ë‹ˆë‹¤"
-#: timezone/zic.c:1429 timezone/zic.c:1530
+#: timezone/zic.c:1481 timezone/zic.c:1576
msgid "invalid time of day"
msgstr "하루 중 ì‹œê°ì´ 잘못ë¨"
-#: timezone/zic.c:1448
+#: timezone/zic.c:1494
msgid "illegal CORRECTION field on Leap line"
msgstr "Leap ì¤„ì— CORRECTION 필드가 잘못ë¨"
-#: timezone/zic.c:1453
+#: timezone/zic.c:1499
msgid "illegal Rolling/Stationary field on Leap line"
msgstr "Leap ì¤„ì— Rolling/Stationary 필드가 잘못ë¨"
-#: timezone/zic.c:1459
-msgid "leap second precedes Big Bang"
+#: timezone/zic.c:1505
+#, fuzzy
+#| msgid "leap second precedes Big Bang"
+msgid "leap second precedes Epoch"
msgstr "윤초가 ì›ì ë³´ë‹¤ 앞섬"
-#: timezone/zic.c:1472
+#: timezone/zic.c:1518
msgid "wrong number of fields on Link line"
msgstr "Link ì¤„ì— í•„ë“œì˜ ìˆ˜ê°€ 틀렸ìŒ"
-#: timezone/zic.c:1476
+#: timezone/zic.c:1522
msgid "blank FROM field on Link line"
msgstr "Link ì¤„ì— FROM 필드가 ì—†ìŒ"
-#: timezone/zic.c:1551
+#: timezone/zic.c:1597
msgid "invalid starting year"
msgstr "시작하는 í•´ê°€ 잘못ë¨"
-#: timezone/zic.c:1573
+#: timezone/zic.c:1619
msgid "invalid ending year"
msgstr "ë나는 í•´ê°€ 잘못ë¨"
-#: timezone/zic.c:1577
+#: timezone/zic.c:1623
msgid "starting year greater than ending year"
msgstr "시작하는 í•´ê°€ ë나는 해보다 í½ë‹ˆë‹¤"
-#: timezone/zic.c:1584
+#: timezone/zic.c:1630
msgid "typed single year"
msgstr "ì—°ë„를 한개 입력했습니다"
-#: timezone/zic.c:1619
+#: timezone/zic.c:1633
+#, c-format
+msgid "year type \"%s\" is obsolete; use \"-\" instead"
+msgstr ""
+
+#: timezone/zic.c:1668
msgid "invalid weekday name"
msgstr "ìš”ì¼ ì´ë¦„ì´ ìž˜ëª»ë¨"
-#: timezone/zic.c:1743
+#: timezone/zic.c:1800
#, c-format
msgid "reference clients mishandle more than %d transition times"
msgstr "ë ˆí¼ëŸ°ìŠ¤ í´ë¼ì´ì–¸íŠ¸ëŠ” ì´í–‰ ê³¼ì •ì„ %d번 넘게 잘못 처리합니다"
-#: timezone/zic.c:1747
+#: timezone/zic.c:1804
msgid "pre-2014 clients may mishandle more than 1200 transition times"
msgstr "2014년보다 ì „ì˜ í´ë¼ì´ì–¸íŠ¸ëŠ” ì´í–‰ ê³¼ì •ì„ 1200번 ì´ìƒ 잘못 처리할 ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤"
-#: timezone/zic.c:1858
+#: timezone/zic.c:1920
msgid "too many transition times"
msgstr "ì‹œê° ì´í–‰ì´ 너무 많습니다"
-#: timezone/zic.c:2047
-#, c-format
-msgid "%%z UTC offset magnitude exceeds 99:59:59"
+#: timezone/zic.c:2107
+#, fuzzy, c-format
+#| msgid "%%z UTC offset magnitude exceeds 99:59:59"
+msgid "%%z UT offset magnitude exceeds 99:59:59"
msgstr "%%z UTC 오프셋 í¬ê¸°ê°€ 99:59:59를 넘어갑니다"
-#: timezone/zic.c:2424
+#: timezone/zic.c:2488
msgid "no POSIX environment variable for zone"
msgstr "ì§€ì—­ì— ëŒ€í•´ POSIX 환경 변수가 없습니다"
-#: timezone/zic.c:2430
+#: timezone/zic.c:2494
#, c-format
msgid "%s: pre-%d clients may mishandle distant timestamps"
msgstr "%s: %d년보다 ì „ì˜ í´ë¼ì´ì–¸íŠ¸ëŠ” 타임스탬프를 잘못 처리할 ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤."
-#: timezone/zic.c:2566
+#: timezone/zic.c:2631
msgid "two rules for same instant"
msgstr "ê°™ì€ ìˆœê°„ì— ëŒ€í•´ 규칙 2ê°œ"
-#: timezone/zic.c:2627
+#: timezone/zic.c:2696
msgid "can't determine time zone abbreviation to use just after until time"
msgstr "단지 ì¢…ë£Œì‹œê° ì´í›„ì— ì‚¬ìš©í•˜ê¸° 위한 시간대 약어를 ê²°ì •í•  수 없습니다"
-#: timezone/zic.c:2725
+#: timezone/zic.c:2785
msgid "too many local time types"
msgstr "지역 ì‹œê°ì˜ 종류가 너무 많습니다"
-#: timezone/zic.c:2729
+#: timezone/zic.c:2789
msgid "UT offset out of range"
msgstr "UT ì˜¤í”„ì…‹ì´ ë²”ìœ„ë¥¼ 벗어났습니다"
-#: timezone/zic.c:2753
+#: timezone/zic.c:2813
msgid "too many leap seconds"
msgstr "윤초가 너무 많습니다"
-#: timezone/zic.c:2759
-msgid "repeated leap second moment"
-msgstr "ìœ¤ì´ˆì˜ í¬ê¸°ê°€ 중복ë˜ì—ˆìŠµë‹ˆë‹¤"
+#: timezone/zic.c:2844
+msgid "Leap seconds too close together"
+msgstr ""
-#: timezone/zic.c:2830
+#: timezone/zic.c:2891
msgid "Wild result from command execution"
msgstr "명령 실행ì—ì„œ ì œ ë©‹ëŒ€ë¡œì˜ ê²°ê³¼ê°€ 나왔습니다"
-#: timezone/zic.c:2831
+#: timezone/zic.c:2892
#, c-format
msgid "%s: command was '%s', result was %d\n"
msgstr "%s: ëª…ë ¹ì€ '%s'였고, 결과는 %d였습니다\n"
-#: timezone/zic.c:2961
+#: timezone/zic.c:2998
+#, c-format
+msgid "\"%s\" is undocumented; use \"last%s\" instead"
+msgstr ""
+
+#: timezone/zic.c:3029
+#, c-format
+msgid "\"%s\" is ambiguous in pre-2017c zic"
+msgstr ""
+
+#: timezone/zic.c:3063
msgid "Odd number of quotation marks"
msgstr "따옴표 수가 홀수입니다"
-#: timezone/zic.c:3046
+#: timezone/zic.c:3157
msgid "use of 2/29 in non leap-year"
msgstr "í‰ë…„ì— 2ì›” 29ì¼ì„ 사용"
-#: timezone/zic.c:3081
+#: timezone/zic.c:3192
msgid "rule goes past start/end of month; will not work with pre-2004 versions of zic"
msgstr "ë‹¬ì˜ ì‹œìž‘/ëì„ ë„˜ì–´ê°€ëŠ” ê·œì¹™ì€ 2004ë…„ ì „ ë²„ì „ì˜ zicì—서는 ë™ìž‘하지 않습니다"
-#: timezone/zic.c:3108
+#: timezone/zic.c:3219
msgid "time zone abbreviation has fewer than 3 characters"
msgstr "시간대 약어가 3ìžë³´ë‹¤ 짧습니다"
-#: timezone/zic.c:3110
+#: timezone/zic.c:3221
msgid "time zone abbreviation has too many characters"
msgstr "시간대 ì•½ì–´ì— ê¸€ìžê°€ 너무 많습니다"
-#: timezone/zic.c:3112
+#: timezone/zic.c:3223
msgid "time zone abbreviation differs from POSIX standard"
msgstr "시간대 약어가 POSIX 표준과 다릅니다"
-#: timezone/zic.c:3118
+#: timezone/zic.c:3229
msgid "too many, or too long, time zone abbreviations"
msgstr "너무 많거나 너무 긴 시간대 약어"
-#: timezone/zic.c:3161
+#: timezone/zic.c:3275
#, c-format
msgid "%s: Can't create directory %s: %s"
msgstr "%s: %s 디렉터리를 만들 수 없습니다: %s"
+#~ msgid "cannot open zero fill device"
+#~ msgstr "0으로 채운 장치를 열 수 없습니다"
+
#~ msgid "invalid caller"
#~ msgstr "호출한 ì¸¡ì´ ì˜¬ë°”ë¥´ì§€ 않습니다"
+#~ msgid "relocation error"
+#~ msgstr "리로케ì´ì…˜ 오류"
+
#~ msgid "Character out of range for UTF-8"
#~ msgstr "UTF-8 범위를 ë²—ì–´ë‚œ 문ìž"
+#~ msgid "Cannot set LC_CTYPE to default locale"
+#~ msgstr "LC_CTYPEì„ ê¸°ë³¸ 로캘로 설정할 수 없습니다"
+
+#~ msgid "Cannot set LC_MESSAGES to default locale"
+#~ msgstr "LC_MESSAGESì„ ê¸°ë³¸ 로캘로 설정할 수 없습니다"
+
+#~ msgid "Cannot set LC_COLLATE to default locale"
+#~ msgstr "LC_COLLATEì„ ê¸°ë³¸ 로캘로 설정할 수 없습니다"
+
#~ msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode"
#~ msgstr "/proc/self/cmdlineì„ ì½ì„ 수 없습니다: %s: 파ë¼ë…¸ì´ì•„ 모드를 사용하지 않습니다"
@@ -7266,3 +7344,15 @@ msgstr "%s: %s 디렉터리를 만들 수 없습니다: %s"
#~ msgid "This implementation doesn't support newstyle or MT-safe code!\n"
#~ msgstr "ì´ êµ¬í˜„ë¬¼ì€ newstyleì´ë‚˜ MT-safe 코드를 지ì›í•˜ì§€ 않습니다!\n"
+
+#~ msgid "unruly zone"
+#~ msgstr "규칙없는 지역"
+
+#~ msgid "%s: Leap line in non leap seconds file %s"
+#~ msgstr "%s: 윤초 파ì¼ì´ ì•„ë‹Œ %s 파ì¼ì— Leap ì¤„ì´ ìžˆìŒ"
+
+#~ msgid "nameless rule"
+#~ msgstr "ì´ë¦„없는 규칙"
+
+#~ msgid "repeated leap second moment"
+#~ msgstr "ìœ¤ì´ˆì˜ í¬ê¸°ê°€ 중복ë˜ì—ˆìŠµë‹ˆë‹¤"
diff --git a/po/libc.pot b/po/libc.pot
index 884baa712b..36f549ca9b 100644
--- a/po/libc.pot
+++ b/po/libc.pot
@@ -5,8 +5,8 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: libc 2.27.9000\n"
-"POT-Creation-Date: 2018-07-26 22:19-0400\n"
+"Project-Id-Version: libc 2.29.9000\n"
+"POT-Creation-Date: 2019-07-18 13:28-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -139,10 +139,10 @@ msgid ""
msgstr ""
#: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:308
-#: elf/pldd.c:252 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
-#: iconv/iconvconfig.c:379 locale/programs/locale.c:275
-#: locale/programs/localedef.c:427 login/programs/pt_chown.c:89
-#: malloc/memusagestat.c:563 nss/getent.c:933 nss/makedb.c:369
+#: elf/pldd.c:247 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
+#: iconv/iconvconfig.c:379 locale/programs/locale.c:276
+#: locale/programs/localedef.c:437 login/programs/pt_chown.c:89
+#: malloc/memusagestat.c:563 nss/getent.c:953 nss/makedb.c:369
#: posix/getconf.c:503 sysdeps/unix/sysv/linux/lddlibc4.c:61
#, c-format
msgid ""
@@ -151,11 +151,11 @@ msgid ""
msgstr ""
#: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64
-#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75
+#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:263 elf/sotruss.sh:75
#: elf/sprof.c:389 iconv/iconv_prog.c:422 iconv/iconvconfig.c:396
-#: locale/programs/locale.c:292 locale/programs/localedef.c:453
+#: locale/programs/locale.c:293 locale/programs/localedef.c:463
#: login/programs/pt_chown.c:63 malloc/memusage.sh:71 malloc/memusagestat.c:581
-#: nscd/nscd.c:509 nss/getent.c:87 nss/makedb.c:385 posix/getconf.c:485
+#: nscd/nscd.c:509 nss/getent.c:88 nss/makedb.c:385 posix/getconf.c:485
#: sysdeps/unix/sysv/linux/lddlibc4.c:68
#, c-format
msgid ""
@@ -165,10 +165,10 @@ msgid ""
msgstr ""
#: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68
-#: elf/ldconfig.c:329 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:427
-#: iconv/iconvconfig.c:401 locale/programs/locale.c:297
-#: locale/programs/localedef.c:458 malloc/memusage.sh:75
-#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:92 nss/makedb.c:390
+#: elf/ldconfig.c:329 elf/pldd.c:268 elf/sprof.c:395 iconv/iconv_prog.c:427
+#: iconv/iconvconfig.c:401 locale/programs/locale.c:298
+#: locale/programs/localedef.c:468 malloc/memusage.sh:75
+#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:93 nss/makedb.c:390
#: posix/getconf.c:490
#, c-format
msgid "Written by %s.\n"
@@ -239,21 +239,21 @@ msgstr ""
msgid "invalid escape sequence"
msgstr ""
-#: catgets/gencat.c:1209
+#: catgets/gencat.c:1211
msgid "unterminated message"
msgstr ""
-#: catgets/gencat.c:1233
+#: catgets/gencat.c:1235
#, c-format
msgid "while opening old catalog file"
msgstr ""
-#: catgets/gencat.c:1324
+#: catgets/gencat.c:1326
#, c-format
msgid "conversion modules not available"
msgstr ""
-#: catgets/gencat.c:1350
+#: catgets/gencat.c:1352
#, c-format
msgid "cannot determine escape character"
msgstr ""
@@ -371,7 +371,7 @@ msgstr ""
msgid ", OS ABI: %s %d.%d.%d"
msgstr ""
-#: elf/cache.c:163 elf/ldconfig.c:1332
+#: elf/cache.c:163 elf/ldconfig.c:1333
#, c-format
msgid "Can't open cache file %s\n"
msgstr ""
@@ -381,38 +381,38 @@ msgstr ""
msgid "mmap of cache file failed.\n"
msgstr ""
-#: elf/cache.c:181 elf/cache.c:195
+#: elf/cache.c:181 elf/cache.c:195 elf/cache.c:205
#, c-format
msgid "File is not a cache file.\n"
msgstr ""
-#: elf/cache.c:228 elf/cache.c:238
+#: elf/cache.c:233 elf/cache.c:243
#, c-format
msgid "%d libs found in cache `%s'\n"
msgstr ""
-#: elf/cache.c:432
+#: elf/cache.c:437
#, c-format
msgid "Can't create temporary cache file %s"
msgstr ""
-#: elf/cache.c:440 elf/cache.c:450 elf/cache.c:454 elf/cache.c:458
-#: elf/cache.c:468
+#: elf/cache.c:445 elf/cache.c:455 elf/cache.c:459 elf/cache.c:463
+#: elf/cache.c:473
#, c-format
msgid "Writing of cache data failed"
msgstr ""
-#: elf/cache.c:463
+#: elf/cache.c:468
#, c-format
msgid "Changing access rights of %s to %#o failed"
msgstr ""
-#: elf/cache.c:472
+#: elf/cache.c:477
#, c-format
msgid "Renaming of %s to %s failed"
msgstr ""
-#: elf/dl-close.c:399 elf/dl-open.c:420
+#: elf/dl-close.c:399 elf/dl-open.c:424
msgid "cannot create scope list"
msgstr ""
@@ -495,119 +495,119 @@ msgstr ""
msgid "cannot stat shared object"
msgstr ""
-#: elf/dl-load.c:960
-msgid "cannot open zero fill device"
-msgstr ""
-
-#: elf/dl-load.c:1007 elf/dl-load.c:2203
+#: elf/dl-load.c:992 elf/dl-load.c:2198
msgid "cannot create shared object descriptor"
msgstr ""
-#: elf/dl-load.c:1026 elf/dl-load.c:1560 elf/dl-load.c:1673
+#: elf/dl-load.c:1011 elf/dl-load.c:1555 elf/dl-load.c:1668
msgid "cannot read file data"
msgstr ""
-#: elf/dl-load.c:1072
+#: elf/dl-load.c:1057
msgid "ELF load command alignment not page-aligned"
msgstr ""
-#: elf/dl-load.c:1079
+#: elf/dl-load.c:1064
msgid "ELF load command address/offset not properly aligned"
msgstr ""
-#: elf/dl-load.c:1161
+#: elf/dl-load.c:1146
msgid "cannot process note segment"
msgstr ""
-#: elf/dl-load.c:1172
+#: elf/dl-load.c:1157
msgid "object file has no loadable segments"
msgstr ""
-#: elf/dl-load.c:1181 elf/dl-load.c:1652
+#: elf/dl-load.c:1170 elf/dl-load.c:1647
msgid "cannot dynamically load executable"
msgstr ""
-#: elf/dl-load.c:1202
+#: elf/dl-load.c:1191
msgid "object file has no dynamic section"
msgstr ""
-#: elf/dl-load.c:1225
+#: elf/dl-load.c:1218
+msgid "cannot dynamically load position-independent executable"
+msgstr ""
+
+#: elf/dl-load.c:1220
msgid "shared object cannot be dlopen()ed"
msgstr ""
-#: elf/dl-load.c:1238
+#: elf/dl-load.c:1233
msgid "cannot allocate memory for program header"
msgstr ""
-#: elf/dl-load.c:1271 elf/dl-load.h:130
+#: elf/dl-load.c:1266 elf/dl-load.h:130
msgid "cannot change memory protections"
msgstr ""
-#: elf/dl-load.c:1291
+#: elf/dl-load.c:1286
msgid "cannot enable executable stack as shared object requires"
msgstr ""
-#: elf/dl-load.c:1304
+#: elf/dl-load.c:1299
msgid "cannot close file descriptor"
msgstr ""
-#: elf/dl-load.c:1560
+#: elf/dl-load.c:1555
msgid "file too short"
msgstr ""
-#: elf/dl-load.c:1595
+#: elf/dl-load.c:1590
msgid "invalid ELF header"
msgstr ""
-#: elf/dl-load.c:1607
+#: elf/dl-load.c:1602
msgid "ELF file data encoding not big-endian"
msgstr ""
-#: elf/dl-load.c:1609
+#: elf/dl-load.c:1604
msgid "ELF file data encoding not little-endian"
msgstr ""
-#: elf/dl-load.c:1613
+#: elf/dl-load.c:1608
msgid "ELF file version ident does not match current one"
msgstr ""
-#: elf/dl-load.c:1617
+#: elf/dl-load.c:1612
msgid "ELF file OS ABI invalid"
msgstr ""
-#: elf/dl-load.c:1620
+#: elf/dl-load.c:1615
msgid "ELF file ABI version invalid"
msgstr ""
-#: elf/dl-load.c:1623
+#: elf/dl-load.c:1618
msgid "nonzero padding in e_ident"
msgstr ""
-#: elf/dl-load.c:1626
+#: elf/dl-load.c:1621
msgid "internal error"
msgstr ""
-#: elf/dl-load.c:1633
+#: elf/dl-load.c:1628
msgid "ELF file version does not match current one"
msgstr ""
-#: elf/dl-load.c:1641
+#: elf/dl-load.c:1636
msgid "only ET_DYN and ET_EXEC can be loaded"
msgstr ""
-#: elf/dl-load.c:1657
+#: elf/dl-load.c:1652
msgid "ELF file's phentsize not the expected size"
msgstr ""
-#: elf/dl-load.c:2222
+#: elf/dl-load.c:2217
msgid "wrong ELF class: ELFCLASS64"
msgstr ""
-#: elf/dl-load.c:2223
+#: elf/dl-load.c:2218
msgid "wrong ELF class: ELFCLASS32"
msgstr ""
-#: elf/dl-load.c:2226
+#: elf/dl-load.c:2221
msgid "cannot open shared object file"
msgstr ""
@@ -619,11 +619,7 @@ msgstr ""
msgid "cannot map zero-fill pages"
msgstr ""
-#: elf/dl-lookup.c:835
-msgid "relocation error"
-msgstr ""
-
-#: elf/dl-lookup.c:858
+#: elf/dl-lookup.c:830
msgid "symbol lookup error"
msgstr ""
@@ -631,19 +627,19 @@ msgstr ""
msgid "cannot extend global scope"
msgstr ""
-#: elf/dl-open.c:470
+#: elf/dl-open.c:474
msgid "TLS generation counter wrapped! Please report this."
msgstr ""
-#: elf/dl-open.c:534
+#: elf/dl-open.c:538
msgid "invalid mode for dlopen()"
msgstr ""
-#: elf/dl-open.c:551
+#: elf/dl-open.c:555
msgid "no more namespaces available for dlmopen()"
msgstr ""
-#: elf/dl-open.c:575
+#: elf/dl-open.c:579
msgid "invalid target namespace in dlmopen()"
msgstr ""
@@ -651,20 +647,20 @@ msgstr ""
msgid "cannot allocate memory in static TLS block"
msgstr ""
-#: elf/dl-reloc.c:205
+#: elf/dl-reloc.c:213
msgid "cannot make segment writable for relocation"
msgstr ""
-#: elf/dl-reloc.c:276
+#: elf/dl-reloc.c:272
#, c-format
msgid "%s: out of memory to store relocation results for %s\n"
msgstr ""
-#: elf/dl-reloc.c:292
+#: elf/dl-reloc.c:288
msgid "cannot restore segment prot after reloc"
msgstr ""
-#: elf/dl-reloc.c:323
+#: elf/dl-reloc.c:319
msgid "cannot apply additional memory protection after relocation"
msgstr ""
@@ -884,22 +880,22 @@ msgstr ""
msgid "memory exhausted"
msgstr ""
-#: elf/ldconfig.c:1233
+#: elf/ldconfig.c:1234
#, c-format
msgid "%s:%u: cannot read directory %s"
msgstr ""
-#: elf/ldconfig.c:1281
+#: elf/ldconfig.c:1282
#, c-format
msgid "relative path `%s' used to build cache"
msgstr ""
-#: elf/ldconfig.c:1311
+#: elf/ldconfig.c:1312
#, c-format
msgid "Can't chdir to /"
msgstr ""
-#: elf/ldconfig.c:1352
+#: elf/ldconfig.c:1353
#, c-format
msgid "Can't open cache file directory %s\n"
msgstr ""
@@ -962,95 +958,100 @@ msgstr ""
msgid "error: you do not have read permission for"
msgstr ""
-#: elf/pldd-xx.c:105
+#: elf/pldd-xx.c:102
#, c-format
msgid "cannot find program header of process"
msgstr ""
-#: elf/pldd-xx.c:110
+#: elf/pldd-xx.c:106
#, c-format
msgid "cannot read program header"
msgstr ""
-#: elf/pldd-xx.c:135
+#: elf/pldd-xx.c:128
#, c-format
msgid "cannot read dynamic section"
msgstr ""
-#: elf/pldd-xx.c:147
+#: elf/pldd-xx.c:137
#, c-format
msgid "cannot read r_debug"
msgstr ""
-#: elf/pldd-xx.c:167
+#: elf/pldd-xx.c:154
#, c-format
msgid "cannot read program interpreter"
msgstr ""
-#: elf/pldd-xx.c:197
+#: elf/pldd-xx.c:183
#, c-format
msgid "cannot read link map"
msgstr ""
-#: elf/pldd-xx.c:209
+#: elf/pldd-xx.c:190
#, c-format
msgid "cannot read object name"
msgstr ""
-#: elf/pldd-xx.c:219
+#: elf/pldd-xx.c:197
#, c-format
msgid "cannot allocate buffer for object name"
msgstr ""
-#: elf/pldd.c:64
+#: elf/pldd.c:58
msgid "List dynamic shared objects loaded into process."
msgstr ""
-#: elf/pldd.c:68
+#: elf/pldd.c:62
msgid "PID"
msgstr ""
-#: elf/pldd.c:100
+#: elf/pldd.c:89
#, c-format
msgid "Exactly one parameter with process ID required.\n"
msgstr ""
-#: elf/pldd.c:112
+#: elf/pldd.c:103
#, c-format
msgid "invalid process ID '%s'"
msgstr ""
-#: elf/pldd.c:120
+#: elf/pldd.c:111
#, c-format
msgid "cannot open %s"
msgstr ""
-#: elf/pldd.c:152
+#: elf/pldd.c:142
#, c-format
msgid "cannot open %s/task"
msgstr ""
-#: elf/pldd.c:155
+#: elf/pldd.c:145
#, c-format
msgid "cannot prepare reading %s/task"
msgstr ""
-#: elf/pldd.c:168
+#: elf/pldd.c:158
#, c-format
msgid "invalid thread ID '%s'"
msgstr ""
-#: elf/pldd.c:179
+#: elf/pldd.c:169
#, c-format
msgid "cannot attach to process %lu"
msgstr ""
-#: elf/pldd.c:294
+#: elf/pldd.c:184
+#, c-format
+msgid "no valid %s/task entries"
+msgstr ""
+
+#: elf/pldd.c:290
#, c-format
msgid "cannot get information about process %lu"
msgstr ""
-#: elf/pldd.c:307
+#: elf/pldd.c:303
#, c-format
msgid "process %lu is no ELF program"
msgstr ""
@@ -1355,7 +1356,7 @@ msgstr ""
msgid "list all known coded character sets"
msgstr ""
-#: iconv/iconv_prog.c:64 locale/programs/localedef.c:120
+#: iconv/iconv_prog.c:64 locale/programs/localedef.c:124
msgid "Output control:"
msgstr ""
@@ -1364,8 +1365,8 @@ msgid "omit invalid characters from output"
msgstr ""
#: iconv/iconv_prog.c:66 iconv/iconvconfig.c:128
-#: locale/programs/localedef.c:113 locale/programs/localedef.c:115
-#: locale/programs/localedef.c:117 locale/programs/localedef.c:144
+#: locale/programs/localedef.c:117 locale/programs/localedef.c:119
+#: locale/programs/localedef.c:121 locale/programs/localedef.c:150
#: malloc/memusagestat.c:56
msgid "FILE"
msgstr ""
@@ -1458,7 +1459,7 @@ msgstr ""
msgid "[DIR...]"
msgstr ""
-#: iconv/iconvconfig.c:126 locale/programs/localedef.c:123
+#: iconv/iconvconfig.c:126 locale/programs/localedef.c:129
msgid "PATH"
msgstr ""
@@ -1646,14 +1647,14 @@ msgstr ""
#: locale/programs/charmap.c:503 locale/programs/charmap.c:557
#: locale/programs/charmap.c:589 locale/programs/charmap.c:683
-#: locale/programs/charmap.c:738 locale/programs/charmap.c:779
-#: locale/programs/charmap.c:820
+#: locale/programs/charmap.c:739 locale/programs/charmap.c:780
+#: locale/programs/charmap.c:821
#, c-format
msgid "syntax error in %s definition: %s"
msgstr ""
#: locale/programs/charmap.c:504 locale/programs/charmap.c:684
-#: locale/programs/charmap.c:780 locale/programs/repertoire.c:229
+#: locale/programs/charmap.c:781 locale/programs/repertoire.c:229
msgid "no symbolic name given"
msgstr ""
@@ -1669,14 +1670,14 @@ msgstr ""
msgid "too many bytes in character encoding"
msgstr ""
-#: locale/programs/charmap.c:591 locale/programs/charmap.c:739
-#: locale/programs/charmap.c:822 locale/programs/repertoire.c:295
+#: locale/programs/charmap.c:591 locale/programs/charmap.c:740
+#: locale/programs/charmap.c:823 locale/programs/repertoire.c:295
msgid "no symbolic name given for end of range"
msgstr ""
#: locale/programs/charmap.c:615 locale/programs/ld-address.c:524
#: locale/programs/ld-collate.c:2616 locale/programs/ld-collate.c:3774
-#: locale/programs/ld-ctype.c:2117 locale/programs/ld-ctype.c:2829
+#: locale/programs/ld-ctype.c:2118 locale/programs/ld-ctype.c:2830
#: locale/programs/ld-identification.c:397 locale/programs/ld-measurement.c:213
#: locale/programs/ld-messages.c:295 locale/programs/ld-monetary.c:748
#: locale/programs/ld-name.c:262 locale/programs/ld-numeric.c:325
@@ -1690,60 +1691,60 @@ msgstr ""
msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
msgstr ""
-#: locale/programs/charmap.c:656 locale/programs/charmap.c:719
+#: locale/programs/charmap.c:656 locale/programs/charmap.c:720
#, c-format
msgid "value for %s must be an integer"
msgstr ""
-#: locale/programs/charmap.c:847
+#: locale/programs/charmap.c:848
#, c-format
msgid "%s: error in state machine"
msgstr ""
-#: locale/programs/charmap.c:855 locale/programs/ld-address.c:540
+#: locale/programs/charmap.c:856 locale/programs/ld-address.c:540
#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967
-#: locale/programs/ld-ctype.c:2114 locale/programs/ld-ctype.c:2846
+#: locale/programs/ld-ctype.c:2115 locale/programs/ld-ctype.c:2847
#: locale/programs/ld-identification.c:413 locale/programs/ld-measurement.c:229
#: locale/programs/ld-messages.c:311 locale/programs/ld-monetary.c:764
#: locale/programs/ld-name.c:278 locale/programs/ld-numeric.c:341
#: locale/programs/ld-paper.c:228 locale/programs/ld-telephone.c:292
-#: locale/programs/ld-time.c:990 locale/programs/locfile.c:997
+#: locale/programs/ld-time.c:990 locale/programs/locfile.c:1010
#: locale/programs/repertoire.c:323
#, c-format
msgid "%s: premature end of file"
msgstr ""
-#: locale/programs/charmap.c:874 locale/programs/charmap.c:885
+#: locale/programs/charmap.c:875 locale/programs/charmap.c:886
#, c-format
msgid "unknown character `%s'"
msgstr ""
-#: locale/programs/charmap.c:893
+#: locale/programs/charmap.c:894
#, c-format
msgid ""
"number of bytes for byte sequence of beginning and end of range not the "
"same: %d vs %d"
msgstr ""
-#: locale/programs/charmap.c:998 locale/programs/ld-collate.c:2893
+#: locale/programs/charmap.c:999 locale/programs/ld-collate.c:2893
#: locale/programs/repertoire.c:418
msgid "invalid names for character range"
msgstr ""
-#: locale/programs/charmap.c:1010 locale/programs/repertoire.c:430
+#: locale/programs/charmap.c:1011 locale/programs/repertoire.c:430
msgid "hexadecimal range format should use only capital characters"
msgstr ""
-#: locale/programs/charmap.c:1028 locale/programs/repertoire.c:448
+#: locale/programs/charmap.c:1029 locale/programs/repertoire.c:448
#, c-format
msgid "<%s> and <%s> are invalid names for range"
msgstr ""
-#: locale/programs/charmap.c:1034 locale/programs/repertoire.c:455
+#: locale/programs/charmap.c:1035 locale/programs/repertoire.c:455
msgid "upper limit in range is smaller than lower limit"
msgstr ""
-#: locale/programs/charmap.c:1092
+#: locale/programs/charmap.c:1093
msgid "resulting bytes for range not representable."
msgstr ""
@@ -1812,7 +1813,7 @@ msgid "%s: numeric country code `%d' not valid"
msgstr ""
#: locale/programs/ld-address.c:432 locale/programs/ld-address.c:469
-#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2478
+#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2479
#: locale/programs/ld-identification.c:309 locale/programs/ld-measurement.c:196
#: locale/programs/ld-messages.c:264 locale/programs/ld-monetary.c:503
#: locale/programs/ld-monetary.c:538 locale/programs/ld-monetary.c:579
@@ -1834,7 +1835,7 @@ msgid "%s: unknown character in field `%s'"
msgstr ""
#: locale/programs/ld-address.c:521 locale/programs/ld-collate.c:3772
-#: locale/programs/ld-ctype.c:2826 locale/programs/ld-identification.c:394
+#: locale/programs/ld-ctype.c:2827 locale/programs/ld-identification.c:394
#: locale/programs/ld-measurement.c:210 locale/programs/ld-messages.c:293
#: locale/programs/ld-monetary.c:746 locale/programs/ld-name.c:260
#: locale/programs/ld-numeric.c:323 locale/programs/ld-paper.c:210
@@ -1847,8 +1848,8 @@ msgstr ""
#: locale/programs/ld-collate.c:602 locale/programs/ld-collate.c:898
#: locale/programs/ld-collate.c:911 locale/programs/ld-collate.c:2582
#: locale/programs/ld-collate.c:2603 locale/programs/ld-collate.c:3957
-#: locale/programs/ld-ctype.c:1846 locale/programs/ld-ctype.c:2104
-#: locale/programs/ld-ctype.c:2676 locale/programs/ld-ctype.c:2837
+#: locale/programs/ld-ctype.c:1847 locale/programs/ld-ctype.c:2105
+#: locale/programs/ld-ctype.c:2677 locale/programs/ld-ctype.c:2838
#: locale/programs/ld-identification.c:404 locale/programs/ld-measurement.c:220
#: locale/programs/ld-messages.c:302 locale/programs/ld-monetary.c:755
#: locale/programs/ld-name.c:269 locale/programs/ld-numeric.c:332
@@ -2197,133 +2198,133 @@ msgstr ""
msgid "implementation limit: no more than %d character maps allowed"
msgstr ""
-#: locale/programs/ld-ctype.c:1434 locale/programs/ld-ctype.c:1559
-#: locale/programs/ld-ctype.c:1665 locale/programs/ld-ctype.c:2341
-#: locale/programs/ld-ctype.c:3299
+#: locale/programs/ld-ctype.c:1435 locale/programs/ld-ctype.c:1560
+#: locale/programs/ld-ctype.c:1666 locale/programs/ld-ctype.c:2342
+#: locale/programs/ld-ctype.c:3302
#, c-format
msgid "%s: field `%s' does not contain exactly ten entries"
msgstr ""
-#: locale/programs/ld-ctype.c:1462 locale/programs/ld-ctype.c:2036
+#: locale/programs/ld-ctype.c:1463 locale/programs/ld-ctype.c:2037
#, c-format
msgid "to-value <U%0*X> of range is smaller than from-value <U%0*X>"
msgstr ""
-#: locale/programs/ld-ctype.c:1589
+#: locale/programs/ld-ctype.c:1590
msgid "start and end character sequence of range must have the same length"
msgstr ""
-#: locale/programs/ld-ctype.c:1596
+#: locale/programs/ld-ctype.c:1597
msgid "to-value character sequence is smaller than from-value sequence"
msgstr ""
-#: locale/programs/ld-ctype.c:1956 locale/programs/ld-ctype.c:2007
+#: locale/programs/ld-ctype.c:1957 locale/programs/ld-ctype.c:2008
msgid "premature end of `translit_ignore' definition"
msgstr ""
-#: locale/programs/ld-ctype.c:1962 locale/programs/ld-ctype.c:2013
-#: locale/programs/ld-ctype.c:2055
+#: locale/programs/ld-ctype.c:1963 locale/programs/ld-ctype.c:2014
+#: locale/programs/ld-ctype.c:2056
msgid "syntax error"
msgstr ""
-#: locale/programs/ld-ctype.c:2188
+#: locale/programs/ld-ctype.c:2189
#, c-format
msgid "%s: syntax error in definition of new character class"
msgstr ""
-#: locale/programs/ld-ctype.c:2203
+#: locale/programs/ld-ctype.c:2204
#, c-format
msgid "%s: syntax error in definition of new character map"
msgstr ""
-#: locale/programs/ld-ctype.c:2363
+#: locale/programs/ld-ctype.c:2364
msgid "ellipsis range must be marked by two operands of same type"
msgstr ""
-#: locale/programs/ld-ctype.c:2372
+#: locale/programs/ld-ctype.c:2373
msgid ""
"with symbolic name range values the absolute ellipsis `...' must not be used"
msgstr ""
-#: locale/programs/ld-ctype.c:2387
+#: locale/programs/ld-ctype.c:2388
msgid ""
"with UCS range values one must use the hexadecimal symbolic ellipsis `..'"
msgstr ""
-#: locale/programs/ld-ctype.c:2401
+#: locale/programs/ld-ctype.c:2402
msgid ""
"with character code range values one must use the absolute ellipsis `...'"
msgstr ""
-#: locale/programs/ld-ctype.c:2552
+#: locale/programs/ld-ctype.c:2553
#, c-format
msgid "duplicated definition for mapping `%s'"
msgstr ""
-#: locale/programs/ld-ctype.c:2638 locale/programs/ld-ctype.c:2782
+#: locale/programs/ld-ctype.c:2639 locale/programs/ld-ctype.c:2783
#, c-format
msgid "%s: `translit_start' section does not end with `translit_end'"
msgstr ""
-#: locale/programs/ld-ctype.c:2733
+#: locale/programs/ld-ctype.c:2734
#, c-format
msgid "%s: duplicate `default_missing' definition"
msgstr ""
-#: locale/programs/ld-ctype.c:2738
+#: locale/programs/ld-ctype.c:2739
msgid "previous definition was here"
msgstr ""
-#: locale/programs/ld-ctype.c:2760
+#: locale/programs/ld-ctype.c:2761
#, c-format
msgid "%s: no representable `default_missing' definition found"
msgstr ""
-#: locale/programs/ld-ctype.c:2877 locale/programs/ld-ctype.c:2973
-#: locale/programs/ld-ctype.c:2992 locale/programs/ld-ctype.c:3012
-#: locale/programs/ld-ctype.c:3032 locale/programs/ld-ctype.c:3052
-#: locale/programs/ld-ctype.c:3072 locale/programs/ld-ctype.c:3111
-#: locale/programs/ld-ctype.c:3131 locale/programs/ld-ctype.c:3195
-#: locale/programs/ld-ctype.c:3236 locale/programs/ld-ctype.c:3259
+#: locale/programs/ld-ctype.c:2878 locale/programs/ld-ctype.c:2974
+#: locale/programs/ld-ctype.c:2993 locale/programs/ld-ctype.c:3013
+#: locale/programs/ld-ctype.c:3033 locale/programs/ld-ctype.c:3053
+#: locale/programs/ld-ctype.c:3073 locale/programs/ld-ctype.c:3112
+#: locale/programs/ld-ctype.c:3132 locale/programs/ld-ctype.c:3198
+#: locale/programs/ld-ctype.c:3239 locale/programs/ld-ctype.c:3262
#, c-format
msgid "%s: character `%s' not defined while needed as default value"
msgstr ""
-#: locale/programs/ld-ctype.c:2882 locale/programs/ld-ctype.c:2978
-#: locale/programs/ld-ctype.c:2997 locale/programs/ld-ctype.c:3017
-#: locale/programs/ld-ctype.c:3037 locale/programs/ld-ctype.c:3057
-#: locale/programs/ld-ctype.c:3077 locale/programs/ld-ctype.c:3116
-#: locale/programs/ld-ctype.c:3136 locale/programs/ld-ctype.c:3200
+#: locale/programs/ld-ctype.c:2883 locale/programs/ld-ctype.c:2979
+#: locale/programs/ld-ctype.c:2998 locale/programs/ld-ctype.c:3018
+#: locale/programs/ld-ctype.c:3038 locale/programs/ld-ctype.c:3058
+#: locale/programs/ld-ctype.c:3078 locale/programs/ld-ctype.c:3117
+#: locale/programs/ld-ctype.c:3137 locale/programs/ld-ctype.c:3203
#, c-format
msgid "%s: character `%s' in charmap not representable with one byte"
msgstr ""
-#: locale/programs/ld-ctype.c:3242 locale/programs/ld-ctype.c:3265
+#: locale/programs/ld-ctype.c:3245 locale/programs/ld-ctype.c:3268
#, c-format
msgid ""
"%s: character `%s' needed as default value not representable with one byte"
msgstr ""
-#: locale/programs/ld-ctype.c:3321
+#: locale/programs/ld-ctype.c:3324
msgid "no output digits defined and none of the standard names in the charmap"
msgstr ""
-#: locale/programs/ld-ctype.c:3570
+#: locale/programs/ld-ctype.c:3573
#, c-format
msgid "%s: transliteration data from locale `%s' not available"
msgstr ""
-#: locale/programs/ld-ctype.c:3669
+#: locale/programs/ld-ctype.c:3672
#, c-format
msgid "%s: table for class \"%s\": %lu bytes"
msgstr ""
-#: locale/programs/ld-ctype.c:3733
+#: locale/programs/ld-ctype.c:3736
#, c-format
msgid "%s: table for map \"%s\": %lu bytes"
msgstr ""
-#: locale/programs/ld-ctype.c:3857
+#: locale/programs/ld-ctype.c:3860
#, c-format
msgid "%s: table for width: %lu bytes"
msgstr ""
@@ -2564,155 +2565,149 @@ msgid ""
"[-a|-m]"
msgstr ""
-#: locale/programs/locale.c:190
-#, c-format
-msgid "Cannot set LC_CTYPE to default locale"
-msgstr ""
-
-#: locale/programs/locale.c:192
+#: locale/programs/locale.c:522
#, c-format
-msgid "Cannot set LC_MESSAGES to default locale"
+msgid "while preparing output"
msgstr ""
-#: locale/programs/locale.c:205
+#: locale/programs/locale.c:998
#, c-format
-msgid "Cannot set LC_COLLATE to default locale"
+msgid "Cannot set %s to default locale"
msgstr ""
-#: locale/programs/locale.c:221
+#: locale/programs/locale.c:1096
#, c-format
-msgid "Cannot set LC_ALL to default locale"
+msgid "warning: The LOCPATH variable is set to \"%s\"\n"
msgstr ""
-#: locale/programs/locale.c:521
-#, c-format
-msgid "while preparing output"
-msgstr ""
-
-#: locale/programs/localedef.c:112
+#: locale/programs/localedef.c:116
msgid "Input Files:"
msgstr ""
-#: locale/programs/localedef.c:114
+#: locale/programs/localedef.c:118
msgid "Symbolic character names defined in FILE"
msgstr ""
-#: locale/programs/localedef.c:116
+#: locale/programs/localedef.c:120
msgid "Source definitions are found in FILE"
msgstr ""
-#: locale/programs/localedef.c:118
+#: locale/programs/localedef.c:122
msgid "FILE contains mapping from symbolic names to UCS4 values"
msgstr ""
-#: locale/programs/localedef.c:122
+#: locale/programs/localedef.c:126
msgid "Create output even if warning messages were issued"
msgstr ""
-#: locale/programs/localedef.c:123
+#: locale/programs/localedef.c:128
+msgid "Do not create hard links between installed locales"
+msgstr ""
+
+#: locale/programs/localedef.c:129
msgid "Optional output file prefix"
msgstr ""
-#: locale/programs/localedef.c:124
+#: locale/programs/localedef.c:130
msgid "Strictly conform to POSIX"
msgstr ""
-#: locale/programs/localedef.c:126
+#: locale/programs/localedef.c:132
msgid "Suppress warnings and information messages"
msgstr ""
-#: locale/programs/localedef.c:127
+#: locale/programs/localedef.c:133
msgid "Print more messages"
msgstr ""
-#: locale/programs/localedef.c:128 locale/programs/localedef.c:131
+#: locale/programs/localedef.c:134 locale/programs/localedef.c:137
msgid "<warnings>"
msgstr ""
-#: locale/programs/localedef.c:129
+#: locale/programs/localedef.c:135
msgid ""
"Comma-separated list of warnings to disable; supported warnings are: ascii, "
"intcurrsym"
msgstr ""
-#: locale/programs/localedef.c:132
+#: locale/programs/localedef.c:138
msgid ""
"Comma-separated list of warnings to enable; supported warnings are: ascii, "
"intcurrsym"
msgstr ""
-#: locale/programs/localedef.c:135
+#: locale/programs/localedef.c:141
msgid "Archive control:"
msgstr ""
-#: locale/programs/localedef.c:137
+#: locale/programs/localedef.c:143
msgid "Don't add new data to archive"
msgstr ""
-#: locale/programs/localedef.c:139
+#: locale/programs/localedef.c:145
msgid "Add locales named by parameters to archive"
msgstr ""
-#: locale/programs/localedef.c:140
+#: locale/programs/localedef.c:146
msgid "Replace existing archive content"
msgstr ""
-#: locale/programs/localedef.c:142
+#: locale/programs/localedef.c:148
msgid "Remove locales named by parameters from archive"
msgstr ""
-#: locale/programs/localedef.c:143
+#: locale/programs/localedef.c:149
msgid "List content of archive"
msgstr ""
-#: locale/programs/localedef.c:145
+#: locale/programs/localedef.c:151
msgid "locale.alias file to consult when making archive"
msgstr ""
-#: locale/programs/localedef.c:147
+#: locale/programs/localedef.c:153
msgid "Generate little-endian output"
msgstr ""
-#: locale/programs/localedef.c:149
+#: locale/programs/localedef.c:155
msgid "Generate big-endian output"
msgstr ""
-#: locale/programs/localedef.c:154
+#: locale/programs/localedef.c:160
msgid "Compile locale specification"
msgstr ""
-#: locale/programs/localedef.c:157
+#: locale/programs/localedef.c:163
msgid ""
"NAME\n"
"[--add-to-archive|--delete-from-archive] FILE...\n"
"--list-archive [FILE]"
msgstr ""
-#: locale/programs/localedef.c:232
+#: locale/programs/localedef.c:238
#, c-format
msgid "cannot create directory for output files"
msgstr ""
-#: locale/programs/localedef.c:243
+#: locale/programs/localedef.c:249
msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
msgstr ""
-#: locale/programs/localedef.c:257 locale/programs/localedef.c:273
-#: locale/programs/localedef.c:663 locale/programs/localedef.c:683
+#: locale/programs/localedef.c:263 locale/programs/localedef.c:279
+#: locale/programs/localedef.c:673 locale/programs/localedef.c:693
#, c-format
msgid "cannot open locale definition file `%s'"
msgstr ""
-#: locale/programs/localedef.c:297
+#: locale/programs/localedef.c:303
#, c-format
msgid "cannot write output files to `%s'"
msgstr ""
-#: locale/programs/localedef.c:303
+#: locale/programs/localedef.c:309
msgid "no output file produced because errors were issued"
msgstr ""
-#: locale/programs/localedef.c:431
+#: locale/programs/localedef.c:441
#, c-format
msgid ""
"System's directory for character maps : %s\n"
@@ -2721,11 +2716,11 @@ msgid ""
"%s"
msgstr ""
-#: locale/programs/localedef.c:631
+#: locale/programs/localedef.c:641
msgid "circular dependencies between locale definitions"
msgstr ""
-#: locale/programs/localedef.c:637
+#: locale/programs/localedef.c:647
#, c-format
msgid "cannot add already read locale `%s' a second time"
msgstr ""
@@ -2881,24 +2876,24 @@ msgstr ""
msgid "failure while writing data for category `%s'"
msgstr ""
-#: locale/programs/locfile.c:917
+#: locale/programs/locfile.c:930
#, c-format
msgid "cannot create output file `%s' for category `%s'"
msgstr ""
-#: locale/programs/locfile.c:953
+#: locale/programs/locfile.c:966
msgid "expecting string argument for `copy'"
msgstr ""
-#: locale/programs/locfile.c:957
+#: locale/programs/locfile.c:970
msgid "locale name should consist only of portable characters"
msgstr ""
-#: locale/programs/locfile.c:976
+#: locale/programs/locfile.c:989
msgid "no other keyword shall be specified when `copy' is used"
msgstr ""
-#: locale/programs/locfile.c:990
+#: locale/programs/locfile.c:1003
#, c-format
msgid "`%1$s' definition does not end with `END %1$s'"
msgstr ""
@@ -3705,12 +3700,12 @@ msgstr ""
msgid "yp_update: cannot get server address\n"
msgstr ""
-#: nscd/aicache.c:83 nscd/hstcache.c:452
+#: nscd/aicache.c:82 nscd/hstcache.c:452
#, c-format
msgid "Haven't found \"%s\" in hosts cache!"
msgstr ""
-#: nscd/aicache.c:85 nscd/hstcache.c:454
+#: nscd/aicache.c:84 nscd/hstcache.c:454
#, c-format
msgid "Reloading \"%s\" in hosts cache!"
msgstr ""
@@ -4035,22 +4030,22 @@ msgstr ""
msgid "no more memory for database '%s'"
msgstr ""
-#: nscd/netgroupcache.c:121
+#: nscd/netgroupcache.c:122
#, c-format
msgid "Haven't found \"%s\" in netgroup cache!"
msgstr ""
-#: nscd/netgroupcache.c:123
+#: nscd/netgroupcache.c:124
#, c-format
msgid "Reloading \"%s\" in netgroup cache!"
msgstr ""
-#: nscd/netgroupcache.c:469
+#: nscd/netgroupcache.c:470
#, c-format
msgid "Haven't found \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr ""
-#: nscd/netgroupcache.c:472
+#: nscd/netgroupcache.c:473
#, c-format
msgid "Reloading \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr ""
@@ -4103,7 +4098,7 @@ msgstr ""
msgid "Name Service Cache Daemon."
msgstr ""
-#: nscd/nscd.c:155 nss/getent.c:967 nss/makedb.c:206
+#: nscd/nscd.c:155 nss/getent.c:987 nss/makedb.c:206
#, c-format
msgid "wrong number of arguments"
msgstr ""
@@ -4206,27 +4201,27 @@ msgstr ""
msgid "Must specify user name for server-user option"
msgstr ""
-#: nscd/nscd_conf.c:198
+#: nscd/nscd_conf.c:201
#, c-format
msgid "Must specify user name for stat-user option"
msgstr ""
-#: nscd/nscd_conf.c:255
+#: nscd/nscd_conf.c:259
#, c-format
msgid "Must specify value for restart-interval option"
msgstr ""
-#: nscd/nscd_conf.c:269
+#: nscd/nscd_conf.c:273
#, c-format
msgid "Unknown option: %s %s %s"
msgstr ""
-#: nscd/nscd_conf.c:282
+#: nscd/nscd_conf.c:286
#, c-format
msgid "cannot get current working directory: %s; disabling paranoia mode"
msgstr ""
-#: nscd/nscd_conf.c:302
+#: nscd/nscd_conf.c:306
#, c-format
msgid "maximum file size for %s database too small"
msgstr ""
@@ -4445,46 +4440,46 @@ msgstr ""
msgid "Reloading \"%s\" in services cache!"
msgstr ""
-#: nss/getent.c:54
+#: nss/getent.c:55
msgid "database [key ...]"
msgstr ""
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "CONFIG"
msgstr ""
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "Service configuration to be used"
msgstr ""
-#: nss/getent.c:60
+#: nss/getent.c:61
msgid "disable IDN encoding"
msgstr ""
-#: nss/getent.c:65
+#: nss/getent.c:66
msgid "Get entries from administrative database."
msgstr ""
-#: nss/getent.c:149 nss/getent.c:442 nss/getent.c:489
+#: nss/getent.c:150 nss/getent.c:462 nss/getent.c:509
#, c-format
msgid "Enumeration not supported on %s\n"
msgstr ""
-#: nss/getent.c:497 nss/getent.c:510
+#: nss/getent.c:517 nss/getent.c:530
#, c-format
msgid "Could not allocate group list: %m\n"
msgstr ""
-#: nss/getent.c:881
+#: nss/getent.c:901
#, c-format
msgid "Unknown database name"
msgstr ""
-#: nss/getent.c:911
+#: nss/getent.c:931
msgid "Supported databases:\n"
msgstr ""
-#: nss/getent.c:977
+#: nss/getent.c:997
#, c-format
msgid "Unknown database: %s\n"
msgstr ""
@@ -4729,11 +4724,11 @@ msgstr ""
msgid "Unmatched ) or \\)"
msgstr ""
-#: posix/regcomp.c:689
+#: posix/regcomp.c:676
msgid "No previous regular expression"
msgstr ""
-#: posix/wordexp.c:1815
+#: posix/wordexp.c:1816
msgid "parameter null or not set"
msgstr ""
@@ -4918,7 +4913,7 @@ msgstr ""
msgid "Input message available"
msgstr ""
-#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:381 timezone/zic.c:520
+#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:375 timezone/zic.c:561
msgid "I/O error"
msgstr ""
@@ -5002,7 +4997,7 @@ msgstr ""
#: sunrpc/auth_unix.c:112 sunrpc/clnt_tcp.c:124 sunrpc/clnt_udp.c:139
#: sunrpc/clnt_unix.c:125 sunrpc/svc_tcp.c:189 sunrpc/svc_tcp.c:233
#: sunrpc/svc_udp.c:161 sunrpc/svc_unix.c:189 sunrpc/svc_unix.c:229
-#: sunrpc/xdr.c:628 sunrpc/xdr.c:788 sunrpc/xdr_array.c:102
+#: sunrpc/xdr.c:631 sunrpc/xdr.c:791 sunrpc/xdr_array.c:102
#: sunrpc/xdr_rec.c:153 sunrpc/xdr_ref.c:79
msgid "out of memory\n"
msgstr ""
@@ -6252,56 +6247,69 @@ msgid "You really blew it this time"
msgstr ""
#. TRANS Go home and have a glass of warm, dairy-fresh milk.
-#: sysdeps/gnu/errlist.c:978
+#. TRANS @c Okay. Since you are dying to know, I'll tell you.
+#. TRANS @c This is a joke, obviously. There is a children's song which begins,
+#. TRANS @c "Old McDonald had a farm, e-i-e-i-o." Every time I see the (real)
+#. TRANS @c errno macro EIO, I think about that song. Probably most of my
+#. TRANS @c compatriots who program on Unix do, too. One of them must have stayed
+#. TRANS @c up a little too late one night and decided to add it to Hurd or Glibc.
+#. TRANS @c Whoever did it should be castigated, but it made me laugh.
+#. TRANS @c --jtobey@channel1.com
+#. TRANS @c
+#. TRANS @c "bought the farm" means "died". -jtobey
+#. TRANS @c
+#. TRANS @c Translators, please do not translate this litteraly, translate it into
+#. TRANS @c an idiomatic funny way of saying that the computer died.
+#: sysdeps/gnu/errlist.c:991
msgid "Computer bought the farm"
msgstr ""
#. TRANS This error code has no purpose.
-#: sysdeps/gnu/errlist.c:987
+#: sysdeps/gnu/errlist.c:1000
msgid "Gratuitous error"
msgstr ""
-#: sysdeps/gnu/errlist.c:995
+#: sysdeps/gnu/errlist.c:1008
msgid "Bad message"
msgstr ""
-#: sysdeps/gnu/errlist.c:1003
+#: sysdeps/gnu/errlist.c:1016
msgid "Identifier removed"
msgstr ""
-#: sysdeps/gnu/errlist.c:1011
+#: sysdeps/gnu/errlist.c:1024
msgid "Multihop attempted"
msgstr ""
-#: sysdeps/gnu/errlist.c:1019
+#: sysdeps/gnu/errlist.c:1032
msgid "No data available"
msgstr ""
-#: sysdeps/gnu/errlist.c:1027
+#: sysdeps/gnu/errlist.c:1040
msgid "Link has been severed"
msgstr ""
-#: sysdeps/gnu/errlist.c:1035
+#: sysdeps/gnu/errlist.c:1048
msgid "No message of desired type"
msgstr ""
-#: sysdeps/gnu/errlist.c:1043
+#: sysdeps/gnu/errlist.c:1056
msgid "Out of streams resources"
msgstr ""
-#: sysdeps/gnu/errlist.c:1051
+#: sysdeps/gnu/errlist.c:1064
msgid "Device not a stream"
msgstr ""
-#: sysdeps/gnu/errlist.c:1059
+#: sysdeps/gnu/errlist.c:1072
msgid "Value too large for defined data type"
msgstr ""
-#: sysdeps/gnu/errlist.c:1067
+#: sysdeps/gnu/errlist.c:1080
msgid "Protocol error"
msgstr ""
-#: sysdeps/gnu/errlist.c:1075
+#: sysdeps/gnu/errlist.c:1088
msgid "Timer expired"
msgstr ""
@@ -6309,195 +6317,195 @@ msgstr ""
#. TRANS completed. @xref{Asynchronous I/O}. When you call @code{aio_cancel},
#. TRANS the normal result is for the operations affected to complete with this
#. TRANS error; @pxref{Cancel AIO Operations}.
-#: sysdeps/gnu/errlist.c:1087
+#: sysdeps/gnu/errlist.c:1100
msgid "Operation canceled"
msgstr ""
-#: sysdeps/gnu/errlist.c:1095
+#: sysdeps/gnu/errlist.c:1108
msgid "Owner died"
msgstr ""
-#: sysdeps/gnu/errlist.c:1103
+#: sysdeps/gnu/errlist.c:1116
msgid "State not recoverable"
msgstr ""
-#: sysdeps/gnu/errlist.c:1111
+#: sysdeps/gnu/errlist.c:1124
msgid "Interrupted system call should be restarted"
msgstr ""
-#: sysdeps/gnu/errlist.c:1119
+#: sysdeps/gnu/errlist.c:1132
msgid "Channel number out of range"
msgstr ""
-#: sysdeps/gnu/errlist.c:1127
+#: sysdeps/gnu/errlist.c:1140
msgid "Level 2 not synchronized"
msgstr ""
-#: sysdeps/gnu/errlist.c:1135
+#: sysdeps/gnu/errlist.c:1148
msgid "Level 3 halted"
msgstr ""
-#: sysdeps/gnu/errlist.c:1143
+#: sysdeps/gnu/errlist.c:1156
msgid "Level 3 reset"
msgstr ""
-#: sysdeps/gnu/errlist.c:1151
+#: sysdeps/gnu/errlist.c:1164
msgid "Link number out of range"
msgstr ""
-#: sysdeps/gnu/errlist.c:1159
+#: sysdeps/gnu/errlist.c:1172
msgid "Protocol driver not attached"
msgstr ""
-#: sysdeps/gnu/errlist.c:1167
+#: sysdeps/gnu/errlist.c:1180
msgid "No CSI structure available"
msgstr ""
-#: sysdeps/gnu/errlist.c:1175
+#: sysdeps/gnu/errlist.c:1188
msgid "Level 2 halted"
msgstr ""
-#: sysdeps/gnu/errlist.c:1183
+#: sysdeps/gnu/errlist.c:1196
msgid "Invalid exchange"
msgstr ""
-#: sysdeps/gnu/errlist.c:1191
+#: sysdeps/gnu/errlist.c:1204
msgid "Invalid request descriptor"
msgstr ""
-#: sysdeps/gnu/errlist.c:1199
+#: sysdeps/gnu/errlist.c:1212
msgid "Exchange full"
msgstr ""
-#: sysdeps/gnu/errlist.c:1207
+#: sysdeps/gnu/errlist.c:1220
msgid "No anode"
msgstr ""
-#: sysdeps/gnu/errlist.c:1215
+#: sysdeps/gnu/errlist.c:1228
msgid "Invalid request code"
msgstr ""
-#: sysdeps/gnu/errlist.c:1223
+#: sysdeps/gnu/errlist.c:1236
msgid "Invalid slot"
msgstr ""
-#: sysdeps/gnu/errlist.c:1231
+#: sysdeps/gnu/errlist.c:1244
msgid "File locking deadlock error"
msgstr ""
-#: sysdeps/gnu/errlist.c:1239
+#: sysdeps/gnu/errlist.c:1252
msgid "Bad font file format"
msgstr ""
-#: sysdeps/gnu/errlist.c:1247
+#: sysdeps/gnu/errlist.c:1260
msgid "Machine is not on the network"
msgstr ""
-#: sysdeps/gnu/errlist.c:1255
+#: sysdeps/gnu/errlist.c:1268
msgid "Package not installed"
msgstr ""
-#: sysdeps/gnu/errlist.c:1263
+#: sysdeps/gnu/errlist.c:1276
msgid "Advertise error"
msgstr ""
-#: sysdeps/gnu/errlist.c:1271
+#: sysdeps/gnu/errlist.c:1284
msgid "Srmount error"
msgstr ""
-#: sysdeps/gnu/errlist.c:1279
+#: sysdeps/gnu/errlist.c:1292
msgid "Communication error on send"
msgstr ""
-#: sysdeps/gnu/errlist.c:1287
+#: sysdeps/gnu/errlist.c:1300
msgid "RFS specific error"
msgstr ""
-#: sysdeps/gnu/errlist.c:1295
+#: sysdeps/gnu/errlist.c:1308
msgid "Name not unique on network"
msgstr ""
-#: sysdeps/gnu/errlist.c:1303
+#: sysdeps/gnu/errlist.c:1316
msgid "File descriptor in bad state"
msgstr ""
-#: sysdeps/gnu/errlist.c:1311
+#: sysdeps/gnu/errlist.c:1324
msgid "Remote address changed"
msgstr ""
-#: sysdeps/gnu/errlist.c:1319
+#: sysdeps/gnu/errlist.c:1332
msgid "Can not access a needed shared library"
msgstr ""
-#: sysdeps/gnu/errlist.c:1327
+#: sysdeps/gnu/errlist.c:1340
msgid "Accessing a corrupted shared library"
msgstr ""
-#: sysdeps/gnu/errlist.c:1335
+#: sysdeps/gnu/errlist.c:1348
msgid ".lib section in a.out corrupted"
msgstr ""
-#: sysdeps/gnu/errlist.c:1343
+#: sysdeps/gnu/errlist.c:1356
msgid "Attempting to link in too many shared libraries"
msgstr ""
-#: sysdeps/gnu/errlist.c:1351
+#: sysdeps/gnu/errlist.c:1364
msgid "Cannot exec a shared library directly"
msgstr ""
-#: sysdeps/gnu/errlist.c:1359
+#: sysdeps/gnu/errlist.c:1372
msgid "Streams pipe error"
msgstr ""
-#: sysdeps/gnu/errlist.c:1367
+#: sysdeps/gnu/errlist.c:1380
msgid "Structure needs cleaning"
msgstr ""
-#: sysdeps/gnu/errlist.c:1375
+#: sysdeps/gnu/errlist.c:1388
msgid "Not a XENIX named type file"
msgstr ""
-#: sysdeps/gnu/errlist.c:1383
+#: sysdeps/gnu/errlist.c:1396
msgid "No XENIX semaphores available"
msgstr ""
-#: sysdeps/gnu/errlist.c:1391
+#: sysdeps/gnu/errlist.c:1404
msgid "Is a named type file"
msgstr ""
-#: sysdeps/gnu/errlist.c:1399
+#: sysdeps/gnu/errlist.c:1412
msgid "Remote I/O error"
msgstr ""
-#: sysdeps/gnu/errlist.c:1407
+#: sysdeps/gnu/errlist.c:1420
msgid "No medium found"
msgstr ""
-#: sysdeps/gnu/errlist.c:1415
+#: sysdeps/gnu/errlist.c:1428
msgid "Wrong medium type"
msgstr ""
-#: sysdeps/gnu/errlist.c:1423
+#: sysdeps/gnu/errlist.c:1436
msgid "Required key not available"
msgstr ""
-#: sysdeps/gnu/errlist.c:1431
+#: sysdeps/gnu/errlist.c:1444
msgid "Key has expired"
msgstr ""
-#: sysdeps/gnu/errlist.c:1439
+#: sysdeps/gnu/errlist.c:1452
msgid "Key has been revoked"
msgstr ""
-#: sysdeps/gnu/errlist.c:1447
+#: sysdeps/gnu/errlist.c:1460
msgid "Key was rejected by service"
msgstr ""
-#: sysdeps/gnu/errlist.c:1455
+#: sysdeps/gnu/errlist.c:1468
msgid "Operation not possible due to RF-kill"
msgstr ""
-#: sysdeps/gnu/errlist.c:1463
+#: sysdeps/gnu/errlist.c:1476
msgid "Memory page has hardware error"
msgstr ""
@@ -6620,27 +6628,27 @@ msgstr ""
msgid "can't disable CET"
msgstr ""
-#: timezone/zdump.c:338
+#: timezone/zdump.c:332
msgid "has fewer than 3 characters"
msgstr ""
-#: timezone/zdump.c:340
+#: timezone/zdump.c:334
msgid "has more than 6 characters"
msgstr ""
-#: timezone/zdump.c:342
+#: timezone/zdump.c:336
msgid "has characters other than ASCII alphanumerics, '-' or '+'"
msgstr ""
-#: timezone/zdump.c:347
+#: timezone/zdump.c:341
#, c-format
msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n"
msgstr ""
-#: timezone/zdump.c:393
+#: timezone/zdump.c:387
#, c-format
msgid ""
-"%s: usage: %s OPTIONS ZONENAME ...\n"
+"%s: usage: %s OPTIONS TIMEZONE ...\n"
"Options include:\n"
" -c [L,]U Start at year L (default -500), end before year U (default "
"2500)\n"
@@ -6654,432 +6662,456 @@ msgid ""
"Report bugs to %s.\n"
msgstr ""
-#: timezone/zdump.c:479
+#: timezone/zdump.c:473
#, c-format
msgid "%s: wild -c argument %s\n"
msgstr ""
-#: timezone/zdump.c:512
+#: timezone/zdump.c:506
#, c-format
msgid "%s: wild -t argument %s\n"
msgstr ""
-#: timezone/zic.c:398
+#: timezone/zic.c:429
#, c-format
msgid "%s: Memory exhausted: %s\n"
msgstr ""
-#: timezone/zic.c:406
+#: timezone/zic.c:437
msgid "size overflow"
msgstr ""
-#: timezone/zic.c:454
+#: timezone/zic.c:447
+msgid "alignment overflow"
+msgstr ""
+
+#: timezone/zic.c:495
msgid "integer overflow"
msgstr ""
-#: timezone/zic.c:488
+#: timezone/zic.c:529
#, c-format
msgid "\"%s\", line %<PRIdMAX>: "
msgstr ""
-#: timezone/zic.c:491
+#: timezone/zic.c:532
#, c-format
msgid " (rule from \"%s\", line %<PRIdMAX>)"
msgstr ""
-#: timezone/zic.c:510
+#: timezone/zic.c:551
#, c-format
msgid "warning: "
msgstr ""
-#: timezone/zic.c:535
+#: timezone/zic.c:576
#, c-format
msgid ""
"%s: usage is %s [ --version ] [ --help ] [ -v ] \\\n"
"\t[ -l localtime ] [ -p posixrules ] [ -d directory ] \\\n"
-"\t[ -L leapseconds ] [ filename ... ]\n"
+"\t[ -t localtime-link ] [ -L leapseconds ] [ filename ... ]\n"
"\n"
"Report bugs to %s.\n"
msgstr ""
-#: timezone/zic.c:558
+#: timezone/zic.c:599
#, c-format
msgid "%s: Can't chdir to %s: %s\n"
msgstr ""
-#: timezone/zic.c:590
+#: timezone/zic.c:632
msgid "wild compilation-time specification of zic_t"
msgstr ""
-#: timezone/zic.c:610
+#: timezone/zic.c:652
#, c-format
msgid "%s: More than one -d option specified\n"
msgstr ""
-#: timezone/zic.c:620
+#: timezone/zic.c:662
#, c-format
msgid "%s: More than one -l option specified\n"
msgstr ""
-#: timezone/zic.c:630
+#: timezone/zic.c:672
#, c-format
msgid "%s: More than one -p option specified\n"
msgstr ""
-#: timezone/zic.c:640
+#: timezone/zic.c:680
+#, c-format
+msgid "%s: More than one -t option specified\n"
+msgstr ""
+
+#: timezone/zic.c:689
+msgid "-y is obsolescent"
+msgstr ""
+
+#: timezone/zic.c:693
#, c-format
msgid "%s: More than one -y option specified\n"
msgstr ""
-#: timezone/zic.c:650
+#: timezone/zic.c:703
#, c-format
msgid "%s: More than one -L option specified\n"
msgstr ""
-#: timezone/zic.c:659
+#: timezone/zic.c:712
msgid "-s ignored"
msgstr ""
-#: timezone/zic.c:698
+#: timezone/zic.c:753
msgid "link to link"
msgstr ""
-#: timezone/zic.c:701 timezone/zic.c:705
+#: timezone/zic.c:756 timezone/zic.c:760
msgid "command line"
msgstr ""
-#: timezone/zic.c:721
+#: timezone/zic.c:776
msgid "empty file name"
msgstr ""
-#: timezone/zic.c:724
+#: timezone/zic.c:779
#, c-format
msgid "file name '%s' begins with '/'"
msgstr ""
-#: timezone/zic.c:734
+#: timezone/zic.c:789
#, c-format
msgid "file name '%s' contains '%.*s' component"
msgstr ""
-#: timezone/zic.c:740
+#: timezone/zic.c:795
#, c-format
msgid "file name '%s' component contains leading '-'"
msgstr ""
-#: timezone/zic.c:743
+#: timezone/zic.c:798
#, c-format
msgid "file name '%s' contains overlength component '%.*s...'"
msgstr ""
-#: timezone/zic.c:771
+#: timezone/zic.c:826
#, c-format
msgid "file name '%s' contains byte '%c'"
msgstr ""
-#: timezone/zic.c:772
+#: timezone/zic.c:827
#, c-format
msgid "file name '%s' contains byte '\\%o'"
msgstr ""
-#: timezone/zic.c:842
+#: timezone/zic.c:897
#, c-format
msgid "%s: link from %s/%s failed: %s\n"
msgstr ""
-#: timezone/zic.c:852 timezone/zic.c:1815
+#: timezone/zic.c:907 timezone/zic.c:1876
#, c-format
msgid "%s: Can't remove %s/%s: %s\n"
msgstr ""
-#: timezone/zic.c:874
+#: timezone/zic.c:931
#, c-format
msgid "symbolic link used because hard link failed: %s"
msgstr ""
-#: timezone/zic.c:882
+#: timezone/zic.c:939
#, c-format
msgid "%s: Can't read %s/%s: %s\n"
msgstr ""
-#: timezone/zic.c:889 timezone/zic.c:1828
+#: timezone/zic.c:946 timezone/zic.c:1889
#, c-format
msgid "%s: Can't create %s/%s: %s\n"
msgstr ""
-#: timezone/zic.c:898
+#: timezone/zic.c:955
#, c-format
msgid "copy used because hard link failed: %s"
msgstr ""
-#: timezone/zic.c:901
+#: timezone/zic.c:958
#, c-format
msgid "copy used because symbolic link failed: %s"
msgstr ""
-#: timezone/zic.c:1013 timezone/zic.c:1015
+#: timezone/zic.c:1032 timezone/zic.c:1034
msgid "same rule name in multiple files"
msgstr ""
-#: timezone/zic.c:1056
-msgid "unruly zone"
-msgstr ""
-
-#: timezone/zic.c:1063
+#: timezone/zic.c:1081
#, c-format
msgid "%s in ruleless zone"
msgstr ""
-#: timezone/zic.c:1083
+#: timezone/zic.c:1101
msgid "standard input"
msgstr ""
-#: timezone/zic.c:1088
+#: timezone/zic.c:1106
#, c-format
msgid "%s: Can't open %s: %s\n"
msgstr ""
-#: timezone/zic.c:1099
+#: timezone/zic.c:1117
msgid "line too long"
msgstr ""
-#: timezone/zic.c:1119
+#: timezone/zic.c:1139
msgid "input line of unknown type"
msgstr ""
-#: timezone/zic.c:1134
-#, c-format
-msgid "%s: Leap line in non leap seconds file %s"
-msgstr ""
-
-#: timezone/zic.c:1142 timezone/zic.c:1547 timezone/zic.c:1569
+#: timezone/zic.c:1158 timezone/zic.c:1593 timezone/zic.c:1615
#, c-format
msgid "%s: panic: Invalid l_value %d\n"
msgstr ""
-#: timezone/zic.c:1151
+#: timezone/zic.c:1167
msgid "expected continuation line not found"
msgstr ""
-#: timezone/zic.c:1193 timezone/zic.c:2976
+#: timezone/zic.c:1203
+msgid "fractional seconds rejected by pre-2018 versions of zic"
+msgstr ""
+
+#: timezone/zic.c:1221 timezone/zic.c:3078
msgid "time overflow"
msgstr ""
-#: timezone/zic.c:1198
+#: timezone/zic.c:1227
msgid "values over 24 hours not handled by pre-2007 versions of zic"
msgstr ""
-#: timezone/zic.c:1209
-msgid "wrong number of fields on Rule line"
+#: timezone/zic.c:1245
+msgid "invalid saved time"
msgstr ""
-#: timezone/zic.c:1213
-msgid "nameless rule"
+#: timezone/zic.c:1256
+msgid "wrong number of fields on Rule line"
msgstr ""
-#: timezone/zic.c:1218
-msgid "invalid saved time"
+#: timezone/zic.c:1265
+#, c-format
+msgid "Invalid rule name \"%s\""
msgstr ""
-#: timezone/zic.c:1235
+#: timezone/zic.c:1287
msgid "wrong number of fields on Zone line"
msgstr ""
-#: timezone/zic.c:1240
+#: timezone/zic.c:1292
#, c-format
msgid "\"Zone %s\" line and -l option are mutually exclusive"
msgstr ""
-#: timezone/zic.c:1246
+#: timezone/zic.c:1298
#, c-format
msgid "\"Zone %s\" line and -p option are mutually exclusive"
msgstr ""
-#: timezone/zic.c:1253
+#: timezone/zic.c:1305
#, c-format
msgid "duplicate zone name %s (file \"%s\", line %<PRIdMAX>)"
msgstr ""
-#: timezone/zic.c:1267
+#: timezone/zic.c:1319
msgid "wrong number of fields on Zone continuation line"
msgstr ""
-#: timezone/zic.c:1307
+#: timezone/zic.c:1359
msgid "invalid UT offset"
msgstr ""
-#: timezone/zic.c:1311
+#: timezone/zic.c:1363
msgid "invalid abbreviation format"
msgstr ""
-#: timezone/zic.c:1320
+#: timezone/zic.c:1372
#, c-format
msgid "format '%s' not handled by pre-2015 versions of zic"
msgstr ""
-#: timezone/zic.c:1347
+#: timezone/zic.c:1399
msgid "Zone continuation line end time is not after end time of previous line"
msgstr ""
-#: timezone/zic.c:1374
+#: timezone/zic.c:1426
msgid "wrong number of fields on Leap line"
msgstr ""
-#: timezone/zic.c:1383
+#: timezone/zic.c:1435
msgid "invalid leaping year"
msgstr ""
-#: timezone/zic.c:1403 timezone/zic.c:1501
+#: timezone/zic.c:1455 timezone/zic.c:1547
msgid "invalid month name"
msgstr ""
-#: timezone/zic.c:1416 timezone/zic.c:1614 timezone/zic.c:1628
+#: timezone/zic.c:1468 timezone/zic.c:1663 timezone/zic.c:1677
msgid "invalid day of month"
msgstr ""
-#: timezone/zic.c:1421
+#: timezone/zic.c:1473
msgid "time too small"
msgstr ""
-#: timezone/zic.c:1425
+#: timezone/zic.c:1477
msgid "time too large"
msgstr ""
-#: timezone/zic.c:1429 timezone/zic.c:1530
+#: timezone/zic.c:1481 timezone/zic.c:1576
msgid "invalid time of day"
msgstr ""
-#: timezone/zic.c:1448
+#: timezone/zic.c:1494
msgid "illegal CORRECTION field on Leap line"
msgstr ""
-#: timezone/zic.c:1453
+#: timezone/zic.c:1499
msgid "illegal Rolling/Stationary field on Leap line"
msgstr ""
-#: timezone/zic.c:1459
-msgid "leap second precedes Big Bang"
+#: timezone/zic.c:1505
+msgid "leap second precedes Epoch"
msgstr ""
-#: timezone/zic.c:1472
+#: timezone/zic.c:1518
msgid "wrong number of fields on Link line"
msgstr ""
-#: timezone/zic.c:1476
+#: timezone/zic.c:1522
msgid "blank FROM field on Link line"
msgstr ""
-#: timezone/zic.c:1551
+#: timezone/zic.c:1597
msgid "invalid starting year"
msgstr ""
-#: timezone/zic.c:1573
+#: timezone/zic.c:1619
msgid "invalid ending year"
msgstr ""
-#: timezone/zic.c:1577
+#: timezone/zic.c:1623
msgid "starting year greater than ending year"
msgstr ""
-#: timezone/zic.c:1584
+#: timezone/zic.c:1630
msgid "typed single year"
msgstr ""
-#: timezone/zic.c:1619
+#: timezone/zic.c:1633
+#, c-format
+msgid "year type \"%s\" is obsolete; use \"-\" instead"
+msgstr ""
+
+#: timezone/zic.c:1668
msgid "invalid weekday name"
msgstr ""
-#: timezone/zic.c:1743
+#: timezone/zic.c:1800
#, c-format
msgid "reference clients mishandle more than %d transition times"
msgstr ""
-#: timezone/zic.c:1747
+#: timezone/zic.c:1804
msgid "pre-2014 clients may mishandle more than 1200 transition times"
msgstr ""
-#: timezone/zic.c:1858
+#: timezone/zic.c:1920
msgid "too many transition times"
msgstr ""
-#: timezone/zic.c:2047
+#: timezone/zic.c:2107
#, c-format
-msgid "%%z UTC offset magnitude exceeds 99:59:59"
+msgid "%%z UT offset magnitude exceeds 99:59:59"
msgstr ""
-#: timezone/zic.c:2424
+#: timezone/zic.c:2488
msgid "no POSIX environment variable for zone"
msgstr ""
-#: timezone/zic.c:2430
+#: timezone/zic.c:2494
#, c-format
msgid "%s: pre-%d clients may mishandle distant timestamps"
msgstr ""
-#: timezone/zic.c:2566
+#: timezone/zic.c:2631
msgid "two rules for same instant"
msgstr ""
-#: timezone/zic.c:2627
+#: timezone/zic.c:2696
msgid "can't determine time zone abbreviation to use just after until time"
msgstr ""
-#: timezone/zic.c:2725
+#: timezone/zic.c:2785
msgid "too many local time types"
msgstr ""
-#: timezone/zic.c:2729
+#: timezone/zic.c:2789
msgid "UT offset out of range"
msgstr ""
-#: timezone/zic.c:2753
+#: timezone/zic.c:2813
msgid "too many leap seconds"
msgstr ""
-#: timezone/zic.c:2759
-msgid "repeated leap second moment"
+#: timezone/zic.c:2844
+msgid "Leap seconds too close together"
msgstr ""
-#: timezone/zic.c:2830
+#: timezone/zic.c:2891
msgid "Wild result from command execution"
msgstr ""
-#: timezone/zic.c:2831
+#: timezone/zic.c:2892
#, c-format
msgid "%s: command was '%s', result was %d\n"
msgstr ""
-#: timezone/zic.c:2961
+#: timezone/zic.c:2998
+#, c-format
+msgid "\"%s\" is undocumented; use \"last%s\" instead"
+msgstr ""
+
+#: timezone/zic.c:3029
+#, c-format
+msgid "\"%s\" is ambiguous in pre-2017c zic"
+msgstr ""
+
+#: timezone/zic.c:3063
msgid "Odd number of quotation marks"
msgstr ""
-#: timezone/zic.c:3046
+#: timezone/zic.c:3157
msgid "use of 2/29 in non leap-year"
msgstr ""
-#: timezone/zic.c:3081
+#: timezone/zic.c:3192
msgid ""
"rule goes past start/end of month; will not work with pre-2004 versions of "
"zic"
msgstr ""
-#: timezone/zic.c:3108
+#: timezone/zic.c:3219
msgid "time zone abbreviation has fewer than 3 characters"
msgstr ""
-#: timezone/zic.c:3110
+#: timezone/zic.c:3221
msgid "time zone abbreviation has too many characters"
msgstr ""
-#: timezone/zic.c:3112
+#: timezone/zic.c:3223
msgid "time zone abbreviation differs from POSIX standard"
msgstr ""
-#: timezone/zic.c:3118
+#: timezone/zic.c:3229
msgid "too many, or too long, time zone abbreviations"
msgstr ""
-#: timezone/zic.c:3161
+#: timezone/zic.c:3275
#, c-format
msgid "%s: Can't create directory %s: %s"
msgstr ""
diff --git a/po/lt.po b/po/lt.po
index 7419e1c33a..00e5263d58 100644
--- a/po/lt.po
+++ b/po/lt.po
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: libc-2.7\n"
-"POT-Creation-Date: 2018-07-26 22:19-0400\n"
+"POT-Creation-Date: 2019-07-18 13:28-0400\n"
"PO-Revision-Date: 2009-02-12 05:24+0200\n"
"Last-Translator: Gintautas Miliauskas <gintas@akl.lt>\n"
"Language-Team: Lithuanian <komp_lt@konferencijos.lt>\n"
@@ -145,10 +145,10 @@ msgstr ""
"[IŠVEDIMO-FAILAS [DUOMENŲ-FAILAS]...]"
#: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:308
-#: elf/pldd.c:252 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
-#: iconv/iconvconfig.c:379 locale/programs/locale.c:275
-#: locale/programs/localedef.c:427 login/programs/pt_chown.c:89
-#: malloc/memusagestat.c:563 nss/getent.c:933 nss/makedb.c:369
+#: elf/pldd.c:247 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
+#: iconv/iconvconfig.c:379 locale/programs/locale.c:276
+#: locale/programs/localedef.c:437 login/programs/pt_chown.c:89
+#: malloc/memusagestat.c:563 nss/getent.c:953 nss/makedb.c:369
#: posix/getconf.c:503 sysdeps/unix/sysv/linux/lddlibc4.c:61
#, c-format
msgid ""
@@ -157,11 +157,11 @@ msgid ""
msgstr ""
#: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64
-#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75
+#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:263 elf/sotruss.sh:75
#: elf/sprof.c:389 iconv/iconv_prog.c:422 iconv/iconvconfig.c:396
-#: locale/programs/locale.c:292 locale/programs/localedef.c:453
+#: locale/programs/locale.c:293 locale/programs/localedef.c:463
#: login/programs/pt_chown.c:63 malloc/memusage.sh:71
-#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:87 nss/makedb.c:385
+#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:88 nss/makedb.c:385
#: posix/getconf.c:485 sysdeps/unix/sysv/linux/lddlibc4.c:68
#, c-format
msgid ""
@@ -171,10 +171,10 @@ msgid ""
msgstr ""
#: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68
-#: elf/ldconfig.c:329 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:427
-#: iconv/iconvconfig.c:401 locale/programs/locale.c:297
-#: locale/programs/localedef.c:458 malloc/memusage.sh:75
-#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:92 nss/makedb.c:390
+#: elf/ldconfig.c:329 elf/pldd.c:268 elf/sprof.c:395 iconv/iconv_prog.c:427
+#: iconv/iconvconfig.c:401 locale/programs/locale.c:298
+#: locale/programs/localedef.c:468 malloc/memusage.sh:75
+#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:93 nss/makedb.c:390
#: posix/getconf.c:490
#, c-format
msgid "Written by %s.\n"
@@ -247,21 +247,21 @@ msgstr "nepavyko atverti išvedimo failo: „%s“"
msgid "invalid escape sequence"
msgstr "netaisyklingas naudotojas"
-#: catgets/gencat.c:1209
+#: catgets/gencat.c:1211
msgid "unterminated message"
msgstr "neužbaigtas pranešimas"
-#: catgets/gencat.c:1233
+#: catgets/gencat.c:1235
#, fuzzy, c-format
msgid "while opening old catalog file"
msgstr "rašant duomenų bazės failą"
-#: catgets/gencat.c:1324
+#: catgets/gencat.c:1326
#, fuzzy, c-format
msgid "conversion modules not available"
msgstr "RPC programa nerasta"
-#: catgets/gencat.c:1350
+#: catgets/gencat.c:1352
#, c-format
msgid "cannot determine escape character"
msgstr ""
@@ -383,7 +383,7 @@ msgstr "Nežinoma OS"
msgid ", OS ABI: %s %d.%d.%d"
msgstr ", OS ABI: %s %d.%d.%d"
-#: elf/cache.c:163 elf/ldconfig.c:1332
+#: elf/cache.c:163 elf/ldconfig.c:1333
#, c-format
msgid "Can't open cache file %s\n"
msgstr "Nepavyko atverti podÄ—lio failo %s\n"
@@ -393,38 +393,38 @@ msgstr "Nepavyko atverti podÄ—lio failo %s\n"
msgid "mmap of cache file failed.\n"
msgstr "Nepavyko atverti podÄ—lio failo %s\n"
-#: elf/cache.c:181 elf/cache.c:195
+#: elf/cache.c:181 elf/cache.c:195 elf/cache.c:205
#, c-format
msgid "File is not a cache file.\n"
msgstr "Failas nÄ—ra podÄ—lio failas.\n"
-#: elf/cache.c:228 elf/cache.c:238
+#: elf/cache.c:233 elf/cache.c:243
#, c-format
msgid "%d libs found in cache `%s'\n"
msgstr "Rasta %d bibliotekų podėlyje „%s“\n"
-#: elf/cache.c:432
+#: elf/cache.c:437
#, fuzzy, c-format
msgid "Can't create temporary cache file %s"
msgstr "Nepavyko atverti podÄ—lio failo %s\n"
-#: elf/cache.c:440 elf/cache.c:450 elf/cache.c:454 elf/cache.c:458
-#: elf/cache.c:468
+#: elf/cache.c:445 elf/cache.c:455 elf/cache.c:459 elf/cache.c:463
+#: elf/cache.c:473
#, c-format
msgid "Writing of cache data failed"
msgstr ""
-#: elf/cache.c:463
+#: elf/cache.c:468
#, fuzzy, c-format
msgid "Changing access rights of %s to %#o failed"
msgstr "%s pervardinimas į %s nesėkmingas"
-#: elf/cache.c:472
+#: elf/cache.c:477
#, c-format
msgid "Renaming of %s to %s failed"
msgstr "%s pervadinimas į %s nesėkmingas"
-#: elf/dl-close.c:399 elf/dl-open.c:420
+#: elf/dl-close.c:399 elf/dl-open.c:424
#, fuzzy
msgid "cannot create scope list"
msgstr "nepavyko sukurti paieškos sąrašo"
@@ -514,125 +514,125 @@ msgstr "nepavyko sukurti paieškos sąrašo"
msgid "cannot stat shared object"
msgstr "nepavyko atverti bendrojo objekto failo"
-#: elf/dl-load.c:960
-#, fuzzy
-msgid "cannot open zero fill device"
-msgstr "nepavyko atverti duomenų failo „%s“"
-
-#: elf/dl-load.c:1007 elf/dl-load.c:2203
+#: elf/dl-load.c:992 elf/dl-load.c:2198
#, fuzzy
msgid "cannot create shared object descriptor"
msgstr "nepavyko užverti failo deskriptoriaus"
-#: elf/dl-load.c:1026 elf/dl-load.c:1560 elf/dl-load.c:1673
+#: elf/dl-load.c:1011 elf/dl-load.c:1555 elf/dl-load.c:1668
msgid "cannot read file data"
msgstr "nepavyko nuskaityti failo duomenų"
-#: elf/dl-load.c:1072
+#: elf/dl-load.c:1057
msgid "ELF load command alignment not page-aligned"
msgstr ""
-#: elf/dl-load.c:1079
+#: elf/dl-load.c:1064
msgid "ELF load command address/offset not properly aligned"
msgstr ""
-#: elf/dl-load.c:1161
+#: elf/dl-load.c:1146
#, fuzzy
#| msgid "Cannot register service"
msgid "cannot process note segment"
msgstr "Nepavyko užregistruoti tarnybos"
-#: elf/dl-load.c:1172
+#: elf/dl-load.c:1157
msgid "object file has no loadable segments"
msgstr "objektiniame faile nėra įkeliamų segmentų"
-#: elf/dl-load.c:1181 elf/dl-load.c:1652
+#: elf/dl-load.c:1170 elf/dl-load.c:1647
#, fuzzy
msgid "cannot dynamically load executable"
msgstr "\tne dinaminis paleidžiamasis failas"
-#: elf/dl-load.c:1202
+#: elf/dl-load.c:1191
msgid "object file has no dynamic section"
msgstr "objektiniame faile nÄ—ra dinaminÄ—s sekcijos"
-#: elf/dl-load.c:1225
+#: elf/dl-load.c:1218
+#, fuzzy
+msgid "cannot dynamically load position-independent executable"
+msgstr "\tne dinaminis paleidžiamasis failas"
+
+#: elf/dl-load.c:1220
msgid "shared object cannot be dlopen()ed"
msgstr "bendrasis objektas negali būti atvertas su dlopen()"
-#: elf/dl-load.c:1238
+#: elf/dl-load.c:1233
msgid "cannot allocate memory for program header"
msgstr "nepavyko išskirti atminties programos antraštei"
-#: elf/dl-load.c:1271 elf/dl-load.h:130
+#: elf/dl-load.c:1266 elf/dl-load.h:130
#, fuzzy
msgid "cannot change memory protections"
msgstr "nepavyko išskirti atminties programos antraštei"
-#: elf/dl-load.c:1291
+#: elf/dl-load.c:1286
msgid "cannot enable executable stack as shared object requires"
msgstr ""
-#: elf/dl-load.c:1304
+#: elf/dl-load.c:1299
msgid "cannot close file descriptor"
msgstr "nepavyko užverti failo deskriptoriaus"
-#: elf/dl-load.c:1560
+#: elf/dl-load.c:1555
msgid "file too short"
msgstr "failas per trumpas"
-#: elf/dl-load.c:1595
+#: elf/dl-load.c:1590
msgid "invalid ELF header"
msgstr "netaisyklinga ELF antraštė"
-#: elf/dl-load.c:1607
+#: elf/dl-load.c:1602
msgid "ELF file data encoding not big-endian"
msgstr "ELF failo duomenų koduotė ne big-endian"
-#: elf/dl-load.c:1609
+#: elf/dl-load.c:1604
msgid "ELF file data encoding not little-endian"
msgstr "ELF failo duomenų koduotė ne little-endian"
-#: elf/dl-load.c:1613
+#: elf/dl-load.c:1608
msgid "ELF file version ident does not match current one"
msgstr "ELF failo versijos identifikatorius neatitinka esamo"
-#: elf/dl-load.c:1617
+#: elf/dl-load.c:1612
msgid "ELF file OS ABI invalid"
msgstr "ELF failo OS ABI netaisyklingas"
-#: elf/dl-load.c:1620
+#: elf/dl-load.c:1615
msgid "ELF file ABI version invalid"
msgstr "ELF failo ABI versija netaisyklinga"
-#: elf/dl-load.c:1623
+#: elf/dl-load.c:1618
msgid "nonzero padding in e_ident"
msgstr ""
-#: elf/dl-load.c:1626
+#: elf/dl-load.c:1621
msgid "internal error"
msgstr "vidinÄ— klaida"
-#: elf/dl-load.c:1633
+#: elf/dl-load.c:1628
msgid "ELF file version does not match current one"
msgstr "ELF failo versija neatitinka esamos"
-#: elf/dl-load.c:1641
+#: elf/dl-load.c:1636
msgid "only ET_DYN and ET_EXEC can be loaded"
msgstr ""
-#: elf/dl-load.c:1657
+#: elf/dl-load.c:1652
msgid "ELF file's phentsize not the expected size"
msgstr ""
-#: elf/dl-load.c:2222
+#: elf/dl-load.c:2217
msgid "wrong ELF class: ELFCLASS64"
msgstr "klaidinga ELF klasÄ—: ELFCLASS64"
-#: elf/dl-load.c:2223
+#: elf/dl-load.c:2218
msgid "wrong ELF class: ELFCLASS32"
msgstr "klaidinga ELF klasÄ—: ELFCLASS32"
-#: elf/dl-load.c:2226
+#: elf/dl-load.c:2221
msgid "cannot open shared object file"
msgstr "nepavyko atverti bendrojo objekto failo"
@@ -644,11 +644,7 @@ msgstr ""
msgid "cannot map zero-fill pages"
msgstr ""
-#: elf/dl-lookup.c:835
-msgid "relocation error"
-msgstr "relokacijos klaida"
-
-#: elf/dl-lookup.c:858
+#: elf/dl-lookup.c:830
msgid "symbol lookup error"
msgstr "simbolio paieškos klaida"
@@ -656,19 +652,19 @@ msgstr "simbolio paieškos klaida"
msgid "cannot extend global scope"
msgstr ""
-#: elf/dl-open.c:470
+#: elf/dl-open.c:474
msgid "TLS generation counter wrapped! Please report this."
msgstr "TLS kartų skaitiklis persivertė! Prašytume apie tai pranešti."
-#: elf/dl-open.c:534
+#: elf/dl-open.c:538
msgid "invalid mode for dlopen()"
msgstr "netaisyklinga veiksena dlopen()"
-#: elf/dl-open.c:551
+#: elf/dl-open.c:555
msgid "no more namespaces available for dlmopen()"
msgstr ""
-#: elf/dl-open.c:575
+#: elf/dl-open.c:579
#, fuzzy
msgid "invalid target namespace in dlmopen()"
msgstr "netaisyklinga veiksena dlopen()"
@@ -678,20 +674,20 @@ msgstr "netaisyklinga veiksena dlopen()"
msgid "cannot allocate memory in static TLS block"
msgstr "Nepavyko išskirti atminties"
-#: elf/dl-reloc.c:205
+#: elf/dl-reloc.c:213
msgid "cannot make segment writable for relocation"
msgstr ""
-#: elf/dl-reloc.c:276
+#: elf/dl-reloc.c:272
#, c-format
msgid "%s: out of memory to store relocation results for %s\n"
msgstr ""
-#: elf/dl-reloc.c:292
+#: elf/dl-reloc.c:288
msgid "cannot restore segment prot after reloc"
msgstr ""
-#: elf/dl-reloc.c:323
+#: elf/dl-reloc.c:319
msgid "cannot apply additional memory protection after relocation"
msgstr ""
@@ -915,22 +911,22 @@ msgstr ""
msgid "memory exhausted"
msgstr "baigÄ—si atmintis"
-#: elf/ldconfig.c:1233
+#: elf/ldconfig.c:1234
#, c-format
msgid "%s:%u: cannot read directory %s"
msgstr "%s:%u: nepavyko atverti aplanko %s"
-#: elf/ldconfig.c:1281
+#: elf/ldconfig.c:1282
#, c-format
msgid "relative path `%s' used to build cache"
msgstr ""
-#: elf/ldconfig.c:1311
+#: elf/ldconfig.c:1312
#, fuzzy, c-format
msgid "Can't chdir to /"
msgstr "Nepavyko susaistyti (link) %s su %s"
-#: elf/ldconfig.c:1352
+#: elf/ldconfig.c:1353
#, c-format
msgid "Can't open cache file directory %s\n"
msgstr "Nepavyko atverti podÄ—lio failo aplanko %s\n"
@@ -994,106 +990,111 @@ msgstr "išėjo su nežinomu išėjimo kodu"
msgid "error: you do not have read permission for"
msgstr "klaida: neturite skaitymo teisių"
-#: elf/pldd-xx.c:105
+#: elf/pldd-xx.c:102
#, fuzzy, c-format
#| msgid "cannot read header from `%s'"
msgid "cannot find program header of process"
msgstr "nepavyko perskaityti „%s“ antraštės"
-#: elf/pldd-xx.c:110
+#: elf/pldd-xx.c:106
#, fuzzy, c-format
#| msgid "cannot read header"
msgid "cannot read program header"
msgstr "nepavyko perskaityti antraštės"
-#: elf/pldd-xx.c:135
+#: elf/pldd-xx.c:128
#, fuzzy, c-format
#| msgid "object file has no dynamic section"
msgid "cannot read dynamic section"
msgstr "objektiniame faile nÄ—ra dinaminÄ—s sekcijos"
-#: elf/pldd-xx.c:147
+#: elf/pldd-xx.c:137
#, fuzzy, c-format
#| msgid "cannot read header"
msgid "cannot read r_debug"
msgstr "nepavyko perskaityti antraštės"
-#: elf/pldd-xx.c:167
+#: elf/pldd-xx.c:154
#, fuzzy, c-format
msgid "cannot read program interpreter"
msgstr "nepavyko perskaityti antraštės"
-#: elf/pldd-xx.c:197
+#: elf/pldd-xx.c:183
#, fuzzy, c-format
#| msgid "cannot read file data"
msgid "cannot read link map"
msgstr "nepavyko nuskaityti failo duomenų"
-#: elf/pldd-xx.c:209
+#: elf/pldd-xx.c:190
#, fuzzy, c-format
#| msgid "cannot read header"
msgid "cannot read object name"
msgstr "nepavyko perskaityti antraštės"
-#: elf/pldd-xx.c:219
+#: elf/pldd-xx.c:197
#, fuzzy, c-format
#| msgid "cannot allocate memory for program header"
msgid "cannot allocate buffer for object name"
msgstr "nepavyko išskirti atminties programos antraštei"
-#: elf/pldd.c:64
+#: elf/pldd.c:58
msgid "List dynamic shared objects loaded into process."
msgstr ""
-#: elf/pldd.c:68
+#: elf/pldd.c:62
msgid "PID"
msgstr ""
-#: elf/pldd.c:100
+#: elf/pldd.c:89
#, c-format
msgid "Exactly one parameter with process ID required.\n"
msgstr ""
-#: elf/pldd.c:112
+#: elf/pldd.c:103
#, fuzzy, c-format
msgid "invalid process ID '%s'"
msgstr "netaisyklingas naudotojas"
-#: elf/pldd.c:120
+#: elf/pldd.c:111
#, fuzzy, c-format
#| msgid "cannot open `%s'"
msgid "cannot open %s"
msgstr "nepavyko atverti „%s“"
-#: elf/pldd.c:152
+#: elf/pldd.c:142
#, fuzzy, c-format
#| msgid "cannot open `%s'"
msgid "cannot open %s/task"
msgstr "nepavyko atverti „%s“"
-#: elf/pldd.c:155
+#: elf/pldd.c:145
#, fuzzy, c-format
#| msgid "cannot create searchlist"
msgid "cannot prepare reading %s/task"
msgstr "nepavyko sukurti paieškos sąrašo"
-#: elf/pldd.c:168
+#: elf/pldd.c:158
#, fuzzy, c-format
#| msgid "invalid ELF header"
msgid "invalid thread ID '%s'"
msgstr "netaisyklinga ELF antraštė"
-#: elf/pldd.c:179
+#: elf/pldd.c:169
#, fuzzy, c-format
msgid "cannot attach to process %lu"
msgstr "nepavyko atverti bendrojo objekto failo"
-#: elf/pldd.c:294
+#: elf/pldd.c:184
+#, fuzzy, c-format
+msgid "no valid %s/task entries"
+msgstr "netaisyklingas kvietÄ—jas"
+
+#: elf/pldd.c:290
#, c-format
msgid "cannot get information about process %lu"
msgstr ""
-#: elf/pldd.c:307
+#: elf/pldd.c:303
#, c-format
msgid "process %lu is no ELF program"
msgstr ""
@@ -1409,7 +1410,7 @@ msgstr "Informacija:"
msgid "list all known coded character sets"
msgstr ""
-#: iconv/iconv_prog.c:64 locale/programs/localedef.c:120
+#: iconv/iconv_prog.c:64 locale/programs/localedef.c:124
msgid "Output control:"
msgstr ""
@@ -1418,8 +1419,8 @@ msgid "omit invalid characters from output"
msgstr ""
#: iconv/iconv_prog.c:66 iconv/iconvconfig.c:128
-#: locale/programs/localedef.c:113 locale/programs/localedef.c:115
-#: locale/programs/localedef.c:117 locale/programs/localedef.c:144
+#: locale/programs/localedef.c:117 locale/programs/localedef.c:119
+#: locale/programs/localedef.c:121 locale/programs/localedef.c:150
#: malloc/memusagestat.c:56
#, fuzzy
#| msgid "[FILE]"
@@ -1519,7 +1520,7 @@ msgstr "Nepavyko atverti konfigūracijos failo %s"
msgid "[DIR...]"
msgstr "[FAILAS...]"
-#: iconv/iconvconfig.c:126 locale/programs/localedef.c:123
+#: iconv/iconvconfig.c:126 locale/programs/localedef.c:129
msgid "PATH"
msgstr ""
@@ -1708,14 +1709,14 @@ msgstr ""
#: locale/programs/charmap.c:503 locale/programs/charmap.c:557
#: locale/programs/charmap.c:589 locale/programs/charmap.c:683
-#: locale/programs/charmap.c:738 locale/programs/charmap.c:779
-#: locale/programs/charmap.c:820
+#: locale/programs/charmap.c:739 locale/programs/charmap.c:780
+#: locale/programs/charmap.c:821
#, fuzzy, c-format
msgid "syntax error in %s definition: %s"
msgstr "sintaksÄ—s klaida prologe: %s"
#: locale/programs/charmap.c:504 locale/programs/charmap.c:684
-#: locale/programs/charmap.c:780 locale/programs/repertoire.c:229
+#: locale/programs/charmap.c:781 locale/programs/repertoire.c:229
msgid "no symbolic name given"
msgstr "neduotas joks simbolinis vardas"
@@ -1731,15 +1732,15 @@ msgstr "per mažai baitų simbolio koduotėje"
msgid "too many bytes in character encoding"
msgstr "per daug baitų simbolio koduotėje"
-#: locale/programs/charmap.c:591 locale/programs/charmap.c:739
-#: locale/programs/charmap.c:822 locale/programs/repertoire.c:295
+#: locale/programs/charmap.c:591 locale/programs/charmap.c:740
+#: locale/programs/charmap.c:823 locale/programs/repertoire.c:295
#, fuzzy
msgid "no symbolic name given for end of range"
msgstr "neduotas joks simbolinis vardas"
#: locale/programs/charmap.c:615 locale/programs/ld-address.c:524
#: locale/programs/ld-collate.c:2616 locale/programs/ld-collate.c:3774
-#: locale/programs/ld-ctype.c:2117 locale/programs/ld-ctype.c:2829
+#: locale/programs/ld-ctype.c:2118 locale/programs/ld-ctype.c:2830
#: locale/programs/ld-identification.c:397
#: locale/programs/ld-measurement.c:213 locale/programs/ld-messages.c:295
#: locale/programs/ld-monetary.c:748 locale/programs/ld-name.c:262
@@ -1754,59 +1755,59 @@ msgstr "%1$s: apibrėžimas neužbaigtas „END %1$s“"
msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
msgstr ""
-#: locale/programs/charmap.c:656 locale/programs/charmap.c:719
+#: locale/programs/charmap.c:656 locale/programs/charmap.c:720
#, c-format
msgid "value for %s must be an integer"
msgstr "%s reikÅ¡mÄ— turi bÅ«ti sveikasis skaiÄius"
-#: locale/programs/charmap.c:847
+#: locale/programs/charmap.c:848
#, c-format
msgid "%s: error in state machine"
msgstr "%s: klaida būsenų automate"
-#: locale/programs/charmap.c:855 locale/programs/ld-address.c:540
+#: locale/programs/charmap.c:856 locale/programs/ld-address.c:540
#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967
-#: locale/programs/ld-ctype.c:2114 locale/programs/ld-ctype.c:2846
+#: locale/programs/ld-ctype.c:2115 locale/programs/ld-ctype.c:2847
#: locale/programs/ld-identification.c:413
#: locale/programs/ld-measurement.c:229 locale/programs/ld-messages.c:311
#: locale/programs/ld-monetary.c:764 locale/programs/ld-name.c:278
#: locale/programs/ld-numeric.c:341 locale/programs/ld-paper.c:228
#: locale/programs/ld-telephone.c:292 locale/programs/ld-time.c:990
-#: locale/programs/locfile.c:997 locale/programs/repertoire.c:323
+#: locale/programs/locfile.c:1010 locale/programs/repertoire.c:323
#, c-format
msgid "%s: premature end of file"
msgstr "%s: ankstyva failo pabaiga"
-#: locale/programs/charmap.c:874 locale/programs/charmap.c:885
+#: locale/programs/charmap.c:875 locale/programs/charmap.c:886
#, c-format
msgid "unknown character `%s'"
msgstr "nežinomas simbolis „%s“"
-#: locale/programs/charmap.c:893
+#: locale/programs/charmap.c:894
#, c-format
msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d"
msgstr ""
-#: locale/programs/charmap.c:998 locale/programs/ld-collate.c:2893
+#: locale/programs/charmap.c:999 locale/programs/ld-collate.c:2893
#: locale/programs/repertoire.c:418
#, fuzzy
msgid "invalid names for character range"
msgstr "netaisyklingas kabuÄių simbolis"
-#: locale/programs/charmap.c:1010 locale/programs/repertoire.c:430
+#: locale/programs/charmap.c:1011 locale/programs/repertoire.c:430
msgid "hexadecimal range format should use only capital characters"
msgstr ""
-#: locale/programs/charmap.c:1028 locale/programs/repertoire.c:448
+#: locale/programs/charmap.c:1029 locale/programs/repertoire.c:448
#, c-format
msgid "<%s> and <%s> are invalid names for range"
msgstr ""
-#: locale/programs/charmap.c:1034 locale/programs/repertoire.c:455
+#: locale/programs/charmap.c:1035 locale/programs/repertoire.c:455
msgid "upper limit in range is smaller than lower limit"
msgstr "viršutinė riba mažesnė už apatinę ribą"
-#: locale/programs/charmap.c:1092
+#: locale/programs/charmap.c:1093
msgid "resulting bytes for range not representable."
msgstr ""
@@ -1875,7 +1876,7 @@ msgid "%s: numeric country code `%d' not valid"
msgstr ""
#: locale/programs/ld-address.c:432 locale/programs/ld-address.c:469
-#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2478
+#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2479
#: locale/programs/ld-identification.c:309
#: locale/programs/ld-measurement.c:196 locale/programs/ld-messages.c:264
#: locale/programs/ld-monetary.c:503 locale/programs/ld-monetary.c:538
@@ -1898,7 +1899,7 @@ msgid "%s: unknown character in field `%s'"
msgstr "%s: nežinomas simbolis lauke „%s“"
#: locale/programs/ld-address.c:521 locale/programs/ld-collate.c:3772
-#: locale/programs/ld-ctype.c:2826 locale/programs/ld-identification.c:394
+#: locale/programs/ld-ctype.c:2827 locale/programs/ld-identification.c:394
#: locale/programs/ld-measurement.c:210 locale/programs/ld-messages.c:293
#: locale/programs/ld-monetary.c:746 locale/programs/ld-name.c:260
#: locale/programs/ld-numeric.c:323 locale/programs/ld-paper.c:210
@@ -1911,8 +1912,8 @@ msgstr "%s: nepilna „END“ eilutė"
#: locale/programs/ld-collate.c:602 locale/programs/ld-collate.c:898
#: locale/programs/ld-collate.c:911 locale/programs/ld-collate.c:2582
#: locale/programs/ld-collate.c:2603 locale/programs/ld-collate.c:3957
-#: locale/programs/ld-ctype.c:1846 locale/programs/ld-ctype.c:2104
-#: locale/programs/ld-ctype.c:2676 locale/programs/ld-ctype.c:2837
+#: locale/programs/ld-ctype.c:1847 locale/programs/ld-ctype.c:2105
+#: locale/programs/ld-ctype.c:2677 locale/programs/ld-ctype.c:2838
#: locale/programs/ld-identification.c:404
#: locale/programs/ld-measurement.c:220 locale/programs/ld-messages.c:302
#: locale/programs/ld-monetary.c:755 locale/programs/ld-name.c:269
@@ -2257,129 +2258,129 @@ msgstr ""
msgid "implementation limit: no more than %d character maps allowed"
msgstr ""
-#: locale/programs/ld-ctype.c:1434 locale/programs/ld-ctype.c:1559
-#: locale/programs/ld-ctype.c:1665 locale/programs/ld-ctype.c:2341
-#: locale/programs/ld-ctype.c:3299
+#: locale/programs/ld-ctype.c:1435 locale/programs/ld-ctype.c:1560
+#: locale/programs/ld-ctype.c:1666 locale/programs/ld-ctype.c:2342
+#: locale/programs/ld-ctype.c:3302
#, fuzzy, c-format
msgid "%s: field `%s' does not contain exactly ten entries"
msgstr "%s: laukas „%s“ apibrėžtas daugiau negu vieną kartą"
-#: locale/programs/ld-ctype.c:1462 locale/programs/ld-ctype.c:2036
+#: locale/programs/ld-ctype.c:1463 locale/programs/ld-ctype.c:2037
#, c-format
msgid "to-value <U%0*X> of range is smaller than from-value <U%0*X>"
msgstr ""
-#: locale/programs/ld-ctype.c:1589
+#: locale/programs/ld-ctype.c:1590
msgid "start and end character sequence of range must have the same length"
msgstr ""
-#: locale/programs/ld-ctype.c:1596
+#: locale/programs/ld-ctype.c:1597
msgid "to-value character sequence is smaller than from-value sequence"
msgstr ""
-#: locale/programs/ld-ctype.c:1956 locale/programs/ld-ctype.c:2007
+#: locale/programs/ld-ctype.c:1957 locale/programs/ld-ctype.c:2008
msgid "premature end of `translit_ignore' definition"
msgstr ""
-#: locale/programs/ld-ctype.c:1962 locale/programs/ld-ctype.c:2013
-#: locale/programs/ld-ctype.c:2055
+#: locale/programs/ld-ctype.c:1963 locale/programs/ld-ctype.c:2014
+#: locale/programs/ld-ctype.c:2056
msgid "syntax error"
msgstr "sintaksÄ—s klaida"
-#: locale/programs/ld-ctype.c:2188
+#: locale/programs/ld-ctype.c:2189
#, fuzzy, c-format
msgid "%s: syntax error in definition of new character class"
msgstr "sintaksės klaida %s aprašyme: %s"
-#: locale/programs/ld-ctype.c:2203
+#: locale/programs/ld-ctype.c:2204
#, c-format
msgid "%s: syntax error in definition of new character map"
msgstr ""
-#: locale/programs/ld-ctype.c:2363
+#: locale/programs/ld-ctype.c:2364
msgid "ellipsis range must be marked by two operands of same type"
msgstr ""
-#: locale/programs/ld-ctype.c:2372
+#: locale/programs/ld-ctype.c:2373
msgid "with symbolic name range values the absolute ellipsis `...' must not be used"
msgstr ""
-#: locale/programs/ld-ctype.c:2387
+#: locale/programs/ld-ctype.c:2388
msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'"
msgstr ""
-#: locale/programs/ld-ctype.c:2401
+#: locale/programs/ld-ctype.c:2402
msgid "with character code range values one must use the absolute ellipsis `...'"
msgstr ""
-#: locale/programs/ld-ctype.c:2552
+#: locale/programs/ld-ctype.c:2553
#, fuzzy, c-format
msgid "duplicated definition for mapping `%s'"
msgstr "kartotinis <%s> apibrėžimas"
-#: locale/programs/ld-ctype.c:2638 locale/programs/ld-ctype.c:2782
+#: locale/programs/ld-ctype.c:2639 locale/programs/ld-ctype.c:2783
#, fuzzy, c-format
msgid "%s: `translit_start' section does not end with `translit_end'"
msgstr "%1$s: apibrėžimas neužbaigtas „END %1$s“"
-#: locale/programs/ld-ctype.c:2733
+#: locale/programs/ld-ctype.c:2734
#, fuzzy, c-format
msgid "%s: duplicate `default_missing' definition"
msgstr "pakartotinis rinkinio apibrėžimas"
-#: locale/programs/ld-ctype.c:2738
+#: locale/programs/ld-ctype.c:2739
msgid "previous definition was here"
msgstr ""
-#: locale/programs/ld-ctype.c:2760
+#: locale/programs/ld-ctype.c:2761
#, c-format
msgid "%s: no representable `default_missing' definition found"
msgstr ""
-#: locale/programs/ld-ctype.c:2877 locale/programs/ld-ctype.c:2973
-#: locale/programs/ld-ctype.c:2992 locale/programs/ld-ctype.c:3012
-#: locale/programs/ld-ctype.c:3032 locale/programs/ld-ctype.c:3052
-#: locale/programs/ld-ctype.c:3072 locale/programs/ld-ctype.c:3111
-#: locale/programs/ld-ctype.c:3131 locale/programs/ld-ctype.c:3195
-#: locale/programs/ld-ctype.c:3236 locale/programs/ld-ctype.c:3259
+#: locale/programs/ld-ctype.c:2878 locale/programs/ld-ctype.c:2974
+#: locale/programs/ld-ctype.c:2993 locale/programs/ld-ctype.c:3013
+#: locale/programs/ld-ctype.c:3033 locale/programs/ld-ctype.c:3053
+#: locale/programs/ld-ctype.c:3073 locale/programs/ld-ctype.c:3112
+#: locale/programs/ld-ctype.c:3132 locale/programs/ld-ctype.c:3198
+#: locale/programs/ld-ctype.c:3239 locale/programs/ld-ctype.c:3262
#, c-format
msgid "%s: character `%s' not defined while needed as default value"
msgstr ""
-#: locale/programs/ld-ctype.c:2882 locale/programs/ld-ctype.c:2978
-#: locale/programs/ld-ctype.c:2997 locale/programs/ld-ctype.c:3017
-#: locale/programs/ld-ctype.c:3037 locale/programs/ld-ctype.c:3057
-#: locale/programs/ld-ctype.c:3077 locale/programs/ld-ctype.c:3116
-#: locale/programs/ld-ctype.c:3136 locale/programs/ld-ctype.c:3200
+#: locale/programs/ld-ctype.c:2883 locale/programs/ld-ctype.c:2979
+#: locale/programs/ld-ctype.c:2998 locale/programs/ld-ctype.c:3018
+#: locale/programs/ld-ctype.c:3038 locale/programs/ld-ctype.c:3058
+#: locale/programs/ld-ctype.c:3078 locale/programs/ld-ctype.c:3117
+#: locale/programs/ld-ctype.c:3137 locale/programs/ld-ctype.c:3203
#, c-format
msgid "%s: character `%s' in charmap not representable with one byte"
msgstr ""
-#: locale/programs/ld-ctype.c:3242 locale/programs/ld-ctype.c:3265
+#: locale/programs/ld-ctype.c:3245 locale/programs/ld-ctype.c:3268
#, c-format
msgid "%s: character `%s' needed as default value not representable with one byte"
msgstr ""
-#: locale/programs/ld-ctype.c:3321
+#: locale/programs/ld-ctype.c:3324
msgid "no output digits defined and none of the standard names in the charmap"
msgstr ""
-#: locale/programs/ld-ctype.c:3570
+#: locale/programs/ld-ctype.c:3573
#, c-format
msgid "%s: transliteration data from locale `%s' not available"
msgstr ""
-#: locale/programs/ld-ctype.c:3669
+#: locale/programs/ld-ctype.c:3672
#, fuzzy, c-format
msgid "%s: table for class \"%s\": %lu bytes"
msgstr "%s: nepavyko atverti %s: %m\n"
-#: locale/programs/ld-ctype.c:3733
+#: locale/programs/ld-ctype.c:3736
#, fuzzy, c-format
msgid "%s: table for map \"%s\": %lu bytes"
msgstr "%s: nepavyko atverti %s: %m\n"
-#: locale/programs/ld-ctype.c:3857
+#: locale/programs/ld-ctype.c:3860
#, fuzzy, c-format
msgid "%s: table for width: %lu bytes"
msgstr "%s: nepavyko atverti %s: %m\n"
@@ -2621,156 +2622,151 @@ msgid ""
"[-a|-m]"
msgstr ""
-#: locale/programs/locale.c:190
-#, c-format
-msgid "Cannot set LC_CTYPE to default locale"
-msgstr "Nepavyko nustatyti LC_CTYPE į numatytąją lokalę"
-
-#: locale/programs/locale.c:192
-#, c-format
-msgid "Cannot set LC_MESSAGES to default locale"
-msgstr "Nepavyko nustatyti LC_MESSAGES į numatytąją lokalę"
-
-#: locale/programs/locale.c:205
-#, c-format
-msgid "Cannot set LC_COLLATE to default locale"
-msgstr "Nepavyko nustatyti LC_COLLATE į numatytąją lokalę"
-
-#: locale/programs/locale.c:221
-#, c-format
-msgid "Cannot set LC_ALL to default locale"
-msgstr "Nepavyko nustatyti LC_ALL į numatytąją lokalę"
-
-#: locale/programs/locale.c:521
+#: locale/programs/locale.c:522
#, fuzzy, c-format
msgid "while preparing output"
msgstr "skaitant duomenų bazę"
-#: locale/programs/localedef.c:112
+#: locale/programs/locale.c:998
+#, fuzzy, c-format
+#| msgid "Cannot set LC_ALL to default locale"
+msgid "Cannot set %s to default locale"
+msgstr "Nepavyko nustatyti LC_ALL į numatytąją lokalę"
+
+#: locale/programs/locale.c:1096
+#, c-format
+msgid "warning: The LOCPATH variable is set to \"%s\"\n"
+msgstr ""
+
+#: locale/programs/localedef.c:116
msgid "Input Files:"
msgstr ""
-#: locale/programs/localedef.c:114
+#: locale/programs/localedef.c:118
msgid "Symbolic character names defined in FILE"
msgstr ""
-#: locale/programs/localedef.c:116
+#: locale/programs/localedef.c:120
#, fuzzy
msgid "Source definitions are found in FILE"
msgstr "Nerastas %s kategorijos apibrėžimas"
-#: locale/programs/localedef.c:118
+#: locale/programs/localedef.c:122
msgid "FILE contains mapping from symbolic names to UCS4 values"
msgstr ""
-#: locale/programs/localedef.c:122
+#: locale/programs/localedef.c:126
msgid "Create output even if warning messages were issued"
msgstr ""
-#: locale/programs/localedef.c:123
+#: locale/programs/localedef.c:128
+msgid "Do not create hard links between installed locales"
+msgstr ""
+
+#: locale/programs/localedef.c:129
#, fuzzy
msgid "Optional output file prefix"
msgstr "netaisyklinga grupÄ—"
-#: locale/programs/localedef.c:124
+#: locale/programs/localedef.c:130
msgid "Strictly conform to POSIX"
msgstr ""
-#: locale/programs/localedef.c:126
+#: locale/programs/localedef.c:132
msgid "Suppress warnings and information messages"
msgstr ""
-#: locale/programs/localedef.c:127
+#: locale/programs/localedef.c:133
#, fuzzy
msgid "Print more messages"
msgstr "neužbaigtas pranešimas"
-#: locale/programs/localedef.c:128 locale/programs/localedef.c:131
+#: locale/programs/localedef.c:134 locale/programs/localedef.c:137
#, fuzzy
msgid "<warnings>"
msgstr "įspėjimas: "
-#: locale/programs/localedef.c:129
+#: locale/programs/localedef.c:135
msgid "Comma-separated list of warnings to disable; supported warnings are: ascii, intcurrsym"
msgstr ""
-#: locale/programs/localedef.c:132
+#: locale/programs/localedef.c:138
msgid "Comma-separated list of warnings to enable; supported warnings are: ascii, intcurrsym"
msgstr ""
-#: locale/programs/localedef.c:135
+#: locale/programs/localedef.c:141
msgid "Archive control:"
msgstr ""
-#: locale/programs/localedef.c:137
+#: locale/programs/localedef.c:143
msgid "Don't add new data to archive"
msgstr ""
-#: locale/programs/localedef.c:139
+#: locale/programs/localedef.c:145
msgid "Add locales named by parameters to archive"
msgstr ""
-#: locale/programs/localedef.c:140
+#: locale/programs/localedef.c:146
msgid "Replace existing archive content"
msgstr ""
-#: locale/programs/localedef.c:142
+#: locale/programs/localedef.c:148
msgid "Remove locales named by parameters from archive"
msgstr ""
-#: locale/programs/localedef.c:143
+#: locale/programs/localedef.c:149
msgid "List content of archive"
msgstr ""
-#: locale/programs/localedef.c:145
+#: locale/programs/localedef.c:151
msgid "locale.alias file to consult when making archive"
msgstr ""
-#: locale/programs/localedef.c:147
+#: locale/programs/localedef.c:153
msgid "Generate little-endian output"
msgstr ""
-#: locale/programs/localedef.c:149
+#: locale/programs/localedef.c:155
msgid "Generate big-endian output"
msgstr ""
-#: locale/programs/localedef.c:154
+#: locale/programs/localedef.c:160
#, fuzzy
msgid "Compile locale specification"
msgstr "%s: nÄ—ra baigimo specifikacijos"
-#: locale/programs/localedef.c:157
+#: locale/programs/localedef.c:163
msgid ""
"NAME\n"
"[--add-to-archive|--delete-from-archive] FILE...\n"
"--list-archive [FILE]"
msgstr ""
-#: locale/programs/localedef.c:232
+#: locale/programs/localedef.c:238
#, fuzzy, c-format
msgid "cannot create directory for output files"
msgstr "nepavyko atverti aplanko %s"
-#: locale/programs/localedef.c:243
+#: locale/programs/localedef.c:249
msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
msgstr ""
-#: locale/programs/localedef.c:257 locale/programs/localedef.c:273
-#: locale/programs/localedef.c:663 locale/programs/localedef.c:683
+#: locale/programs/localedef.c:263 locale/programs/localedef.c:279
+#: locale/programs/localedef.c:673 locale/programs/localedef.c:693
#, fuzzy, c-format
msgid "cannot open locale definition file `%s'"
msgstr "%s: nepavyko atverti laikinojo failo: %s"
-#: locale/programs/localedef.c:297
+#: locale/programs/localedef.c:303
#, fuzzy, c-format
msgid "cannot write output files to `%s'"
msgstr "%s: nepavyko atverti laikinojo failo: %s"
-#: locale/programs/localedef.c:303
+#: locale/programs/localedef.c:309
msgid "no output file produced because errors were issued"
msgstr ""
-#: locale/programs/localedef.c:431
+#: locale/programs/localedef.c:441
#, c-format
msgid ""
"System's directory for character maps : %s\n"
@@ -2779,11 +2775,11 @@ msgid ""
"%s"
msgstr ""
-#: locale/programs/localedef.c:631
+#: locale/programs/localedef.c:641
msgid "circular dependencies between locale definitions"
msgstr ""
-#: locale/programs/localedef.c:637
+#: locale/programs/localedef.c:647
#, c-format
msgid "cannot add already read locale `%s' a second time"
msgstr ""
@@ -2941,25 +2937,25 @@ msgstr "nepavyko atverti duomenų bazės failo „%s“: %s"
msgid "failure while writing data for category `%s'"
msgstr ""
-#: locale/programs/locfile.c:917
+#: locale/programs/locfile.c:930
#, fuzzy, c-format
msgid "cannot create output file `%s' for category `%s'"
msgstr "nepavyko sukurti laikino failo „here“ dokumentui: %s"
-#: locale/programs/locfile.c:953
+#: locale/programs/locfile.c:966
#, fuzzy
msgid "expecting string argument for `copy'"
msgstr "„%s“ trūksta parametro"
-#: locale/programs/locfile.c:957
+#: locale/programs/locfile.c:970
msgid "locale name should consist only of portable characters"
msgstr ""
-#: locale/programs/locfile.c:976
+#: locale/programs/locfile.c:989
msgid "no other keyword shall be specified when `copy' is used"
msgstr ""
-#: locale/programs/locfile.c:990
+#: locale/programs/locfile.c:1003
#, fuzzy, c-format
msgid "`%1$s' definition does not end with `END %1$s'"
msgstr "%1$s: apibrėžimas neužbaigtas „END %1$s“"
@@ -3789,12 +3785,12 @@ msgstr ""
msgid "yp_update: cannot get server address\n"
msgstr ""
-#: nscd/aicache.c:83 nscd/hstcache.c:452
+#: nscd/aicache.c:82 nscd/hstcache.c:452
#, c-format
msgid "Haven't found \"%s\" in hosts cache!"
msgstr ""
-#: nscd/aicache.c:85 nscd/hstcache.c:454
+#: nscd/aicache.c:84 nscd/hstcache.c:454
#, c-format
msgid "Reloading \"%s\" in hosts cache!"
msgstr ""
@@ -4122,22 +4118,22 @@ msgstr ""
msgid "no more memory for database '%s'"
msgstr ""
-#: nscd/netgroupcache.c:121
+#: nscd/netgroupcache.c:122
#, c-format
msgid "Haven't found \"%s\" in netgroup cache!"
msgstr ""
-#: nscd/netgroupcache.c:123
+#: nscd/netgroupcache.c:124
#, c-format
msgid "Reloading \"%s\" in netgroup cache!"
msgstr ""
-#: nscd/netgroupcache.c:469
+#: nscd/netgroupcache.c:470
#, c-format
msgid "Haven't found \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr ""
-#: nscd/netgroupcache.c:472
+#: nscd/netgroupcache.c:473
#, c-format
msgid "Reloading \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr ""
@@ -4193,7 +4189,7 @@ msgstr ""
msgid "Name Service Cache Daemon."
msgstr ""
-#: nscd/nscd.c:155 nss/getent.c:967 nss/makedb.c:206
+#: nscd/nscd.c:155 nss/getent.c:987 nss/makedb.c:206
#, fuzzy, c-format
msgid "wrong number of arguments"
msgstr "per daug argumentų"
@@ -4299,27 +4295,27 @@ msgstr "vidinÄ— klaida"
msgid "Must specify user name for server-user option"
msgstr ""
-#: nscd/nscd_conf.c:198
+#: nscd/nscd_conf.c:201
#, c-format
msgid "Must specify user name for stat-user option"
msgstr ""
-#: nscd/nscd_conf.c:255
+#: nscd/nscd_conf.c:259
#, c-format
msgid "Must specify value for restart-interval option"
msgstr ""
-#: nscd/nscd_conf.c:269
+#: nscd/nscd_conf.c:273
#, c-format
msgid "Unknown option: %s %s %s"
msgstr ""
-#: nscd/nscd_conf.c:282
+#: nscd/nscd_conf.c:286
#, c-format
msgid "cannot get current working directory: %s; disabling paranoia mode"
msgstr ""
-#: nscd/nscd_conf.c:302
+#: nscd/nscd_conf.c:306
#, c-format
msgid "maximum file size for %s database too small"
msgstr ""
@@ -4539,48 +4535,48 @@ msgstr ""
msgid "Reloading \"%s\" in services cache!"
msgstr ""
-#: nss/getent.c:54
+#: nss/getent.c:55
msgid "database [key ...]"
msgstr ""
-#: nss/getent.c:59
+#: nss/getent.c:60
#, fuzzy
#| msgid "CONF"
msgid "CONFIG"
msgstr "KONF"
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "Service configuration to be used"
msgstr ""
-#: nss/getent.c:60
+#: nss/getent.c:61
msgid "disable IDN encoding"
msgstr ""
-#: nss/getent.c:65
+#: nss/getent.c:66
msgid "Get entries from administrative database."
msgstr ""
-#: nss/getent.c:149 nss/getent.c:442 nss/getent.c:489
+#: nss/getent.c:150 nss/getent.c:462 nss/getent.c:509
#, fuzzy, c-format
msgid "Enumeration not supported on %s\n"
msgstr "Operacija nepalaikoma"
-#: nss/getent.c:497 nss/getent.c:510
+#: nss/getent.c:517 nss/getent.c:530
#, c-format
msgid "Could not allocate group list: %m\n"
msgstr ""
-#: nss/getent.c:881
+#: nss/getent.c:901
#, c-format
msgid "Unknown database name"
msgstr "Nežinomas duomenų bazės vardas"
-#: nss/getent.c:911
+#: nss/getent.c:931
msgid "Supported databases:\n"
msgstr "Palaikomos duomenų bazės:\n"
-#: nss/getent.c:977
+#: nss/getent.c:997
#, c-format
msgid "Unknown database: %s\n"
msgstr "Nežinoma duomenų bazė: %s\n"
@@ -4840,11 +4836,11 @@ msgstr "Reguliarioji išraiška per didelė"
msgid "Unmatched ) or \\)"
msgstr "Nesuderintas ) arba \\)"
-#: posix/regcomp.c:689
+#: posix/regcomp.c:676
msgid "No previous regular expression"
msgstr "Nėra ankstesniosios reguliariosios išraiškos"
-#: posix/wordexp.c:1815
+#: posix/wordexp.c:1816
msgid "parameter null or not set"
msgstr "parametras tuÅ¡Äias arba nenustatytas"
@@ -5055,7 +5051,7 @@ msgstr "NÄ—ra vietos buferyje"
msgid "Input message available"
msgstr "NÄ—ra vietos buferyje"
-#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:381 timezone/zic.c:520
+#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:375 timezone/zic.c:561
#, fuzzy
#| msgid "Remote I/O error"
msgid "I/O error"
@@ -5143,7 +5139,7 @@ msgstr "Nežinomas signalas %d"
#: sunrpc/auth_unix.c:112 sunrpc/clnt_tcp.c:124 sunrpc/clnt_udp.c:139
#: sunrpc/clnt_unix.c:125 sunrpc/svc_tcp.c:189 sunrpc/svc_tcp.c:233
#: sunrpc/svc_udp.c:161 sunrpc/svc_unix.c:189 sunrpc/svc_unix.c:229
-#: sunrpc/xdr.c:628 sunrpc/xdr.c:788 sunrpc/xdr_array.c:102
+#: sunrpc/xdr.c:631 sunrpc/xdr.c:791 sunrpc/xdr_array.c:102
#: sunrpc/xdr_rec.c:153 sunrpc/xdr_ref.c:79
#, fuzzy
#| msgid "out of memory"
@@ -6420,56 +6416,69 @@ msgid "You really blew it this time"
msgstr "Šįkart susimovei kaip reikiant"
#. TRANS Go home and have a glass of warm, dairy-fresh milk.
-#: sysdeps/gnu/errlist.c:978
+#. TRANS @c Okay. Since you are dying to know, I'll tell you.
+#. TRANS @c This is a joke, obviously. There is a children's song which begins,
+#. TRANS @c "Old McDonald had a farm, e-i-e-i-o." Every time I see the (real)
+#. TRANS @c errno macro EIO, I think about that song. Probably most of my
+#. TRANS @c compatriots who program on Unix do, too. One of them must have stayed
+#. TRANS @c up a little too late one night and decided to add it to Hurd or Glibc.
+#. TRANS @c Whoever did it should be castigated, but it made me laugh.
+#. TRANS @c --jtobey@channel1.com
+#. TRANS @c
+#. TRANS @c "bought the farm" means "died". -jtobey
+#. TRANS @c
+#. TRANS @c Translators, please do not translate this litteraly, translate it into
+#. TRANS @c an idiomatic funny way of saying that the computer died.
+#: sysdeps/gnu/errlist.c:991
msgid "Computer bought the farm"
msgstr "Kompiuteris nupirko fermÄ…"
#. TRANS This error code has no purpose.
-#: sysdeps/gnu/errlist.c:987
+#: sysdeps/gnu/errlist.c:1000
msgid "Gratuitous error"
msgstr "PerteklinÄ— klaida"
-#: sysdeps/gnu/errlist.c:995
+#: sysdeps/gnu/errlist.c:1008
msgid "Bad message"
msgstr "Blogas pranešimas"
-#: sysdeps/gnu/errlist.c:1003
+#: sysdeps/gnu/errlist.c:1016
msgid "Identifier removed"
msgstr "Identifikatorius pašalintas"
-#: sysdeps/gnu/errlist.c:1011
+#: sysdeps/gnu/errlist.c:1024
msgid "Multihop attempted"
msgstr "Bandomas daugybinis Å¡uolis (multihop)"
-#: sysdeps/gnu/errlist.c:1019
+#: sysdeps/gnu/errlist.c:1032
msgid "No data available"
msgstr "Nėra duomenų"
-#: sysdeps/gnu/errlist.c:1027
+#: sysdeps/gnu/errlist.c:1040
msgid "Link has been severed"
msgstr "Saitas nutrauktas"
-#: sysdeps/gnu/errlist.c:1035
+#: sysdeps/gnu/errlist.c:1048
msgid "No message of desired type"
msgstr "Nerasta norimo tipo pranešimų"
-#: sysdeps/gnu/errlist.c:1043
+#: sysdeps/gnu/errlist.c:1056
msgid "Out of streams resources"
msgstr "Baigėsi srautų resursai"
-#: sysdeps/gnu/errlist.c:1051
+#: sysdeps/gnu/errlist.c:1064
msgid "Device not a stream"
msgstr "Įrenginys nėra srautas"
-#: sysdeps/gnu/errlist.c:1059
+#: sysdeps/gnu/errlist.c:1072
msgid "Value too large for defined data type"
msgstr "Reikšmė per didelė apibrėžtam duomenų tipui"
-#: sysdeps/gnu/errlist.c:1067
+#: sysdeps/gnu/errlist.c:1080
msgid "Protocol error"
msgstr "Protokolo klaida"
-#: sysdeps/gnu/errlist.c:1075
+#: sysdeps/gnu/errlist.c:1088
#, fuzzy
msgid "Timer expired"
msgstr "BaigÄ—si rakto galiojimo laikas"
@@ -6478,201 +6487,201 @@ msgstr "BaigÄ—si rakto galiojimo laikas"
#. TRANS completed. @xref{Asynchronous I/O}. When you call @code{aio_cancel},
#. TRANS the normal result is for the operations affected to complete with this
#. TRANS error; @pxref{Cancel AIO Operations}.
-#: sysdeps/gnu/errlist.c:1087
+#: sysdeps/gnu/errlist.c:1100
msgid "Operation canceled"
msgstr "Operacija nutraukta"
-#: sysdeps/gnu/errlist.c:1095
+#: sysdeps/gnu/errlist.c:1108
msgid "Owner died"
msgstr ""
-#: sysdeps/gnu/errlist.c:1103
+#: sysdeps/gnu/errlist.c:1116
msgid "State not recoverable"
msgstr "BÅ«sena neatstatoma"
-#: sysdeps/gnu/errlist.c:1111
+#: sysdeps/gnu/errlist.c:1124
msgid "Interrupted system call should be restarted"
msgstr "Pertrauktas sistemos iškvietimas turėtų būti įvykdytas iš naujo"
-#: sysdeps/gnu/errlist.c:1119
+#: sysdeps/gnu/errlist.c:1132
msgid "Channel number out of range"
msgstr "Kanalo numeris už ribų"
-#: sysdeps/gnu/errlist.c:1127
+#: sysdeps/gnu/errlist.c:1140
msgid "Level 2 not synchronized"
msgstr "2 lygmuo nesinchronizuotas"
-#: sysdeps/gnu/errlist.c:1135
+#: sysdeps/gnu/errlist.c:1148
msgid "Level 3 halted"
msgstr "3 lygmuo sustabdytas"
-#: sysdeps/gnu/errlist.c:1143
+#: sysdeps/gnu/errlist.c:1156
#, fuzzy
msgid "Level 3 reset"
msgstr "3 lygmuo sustabdytas"
-#: sysdeps/gnu/errlist.c:1151
+#: sysdeps/gnu/errlist.c:1164
#, fuzzy
msgid "Link number out of range"
msgstr "%s: eilutės numeris už ribų"
-#: sysdeps/gnu/errlist.c:1159
+#: sysdeps/gnu/errlist.c:1172
msgid "Protocol driver not attached"
msgstr "Neprijungta protokolo tvarkyklÄ—"
-#: sysdeps/gnu/errlist.c:1167
+#: sysdeps/gnu/errlist.c:1180
msgid "No CSI structure available"
msgstr "Nėra CSI struktūros"
-#: sysdeps/gnu/errlist.c:1175
+#: sysdeps/gnu/errlist.c:1188
msgid "Level 2 halted"
msgstr "2 lygmuo sustabdytas"
-#: sysdeps/gnu/errlist.c:1183
+#: sysdeps/gnu/errlist.c:1196
#, fuzzy
msgid "Invalid exchange"
msgstr "netaisyklingas kvietÄ—jas"
-#: sysdeps/gnu/errlist.c:1191
+#: sysdeps/gnu/errlist.c:1204
msgid "Invalid request descriptor"
msgstr "Netaisyklingas užklausos deskriptorius"
-#: sysdeps/gnu/errlist.c:1199
+#: sysdeps/gnu/errlist.c:1212
msgid "Exchange full"
msgstr ""
-#: sysdeps/gnu/errlist.c:1207
+#: sysdeps/gnu/errlist.c:1220
msgid "No anode"
msgstr "NÄ—ra anodo"
-#: sysdeps/gnu/errlist.c:1215
+#: sysdeps/gnu/errlist.c:1228
msgid "Invalid request code"
msgstr "Netinkamas užklausos kodas"
-#: sysdeps/gnu/errlist.c:1223
+#: sysdeps/gnu/errlist.c:1236
msgid "Invalid slot"
msgstr "Netinkamas lizdas (slot)"
-#: sysdeps/gnu/errlist.c:1231
+#: sysdeps/gnu/errlist.c:1244
msgid "File locking deadlock error"
msgstr "Failų rakinimo aklavietės (deadlock) klaida"
-#: sysdeps/gnu/errlist.c:1239
+#: sysdeps/gnu/errlist.c:1252
msgid "Bad font file format"
msgstr "Netinkamas šriftų failo formatas"
-#: sysdeps/gnu/errlist.c:1247
+#: sysdeps/gnu/errlist.c:1260
msgid "Machine is not on the network"
msgstr "Kompiuterio nÄ—ra tinkle"
-#: sysdeps/gnu/errlist.c:1255
+#: sysdeps/gnu/errlist.c:1268
msgid "Package not installed"
msgstr "Paketas neįdiegtas"
-#: sysdeps/gnu/errlist.c:1263
+#: sysdeps/gnu/errlist.c:1276
#, fuzzy
msgid "Advertise error"
msgstr "vidinÄ— klaida"
-#: sysdeps/gnu/errlist.c:1271
+#: sysdeps/gnu/errlist.c:1284
msgid "Srmount error"
msgstr "Srmount klaida"
-#: sysdeps/gnu/errlist.c:1279
+#: sysdeps/gnu/errlist.c:1292
msgid "Communication error on send"
msgstr "Komunikacijos klaida siunÄiant"
-#: sysdeps/gnu/errlist.c:1287
+#: sysdeps/gnu/errlist.c:1300
msgid "RFS specific error"
msgstr "RFS specifinÄ— klaida"
-#: sysdeps/gnu/errlist.c:1295
+#: sysdeps/gnu/errlist.c:1308
msgid "Name not unique on network"
msgstr "Vardas tinkle neunikalus"
-#: sysdeps/gnu/errlist.c:1303
+#: sysdeps/gnu/errlist.c:1316
msgid "File descriptor in bad state"
msgstr "Failo deskriptorius nekorektiškoje būsenoje"
-#: sysdeps/gnu/errlist.c:1311
+#: sysdeps/gnu/errlist.c:1324
msgid "Remote address changed"
msgstr "Nutolęs adresas pasikeitė"
-#: sysdeps/gnu/errlist.c:1319
+#: sysdeps/gnu/errlist.c:1332
msgid "Can not access a needed shared library"
msgstr "Nepavyko pasiekti reikiamos bendrosios bibliotekos"
-#: sysdeps/gnu/errlist.c:1327
+#: sysdeps/gnu/errlist.c:1340
msgid "Accessing a corrupted shared library"
msgstr "Kreipiamasi į sugadintą bendrąją biblioteką"
-#: sysdeps/gnu/errlist.c:1335
+#: sysdeps/gnu/errlist.c:1348
msgid ".lib section in a.out corrupted"
msgstr ".lib sekcija a.out faile sugadinta"
-#: sysdeps/gnu/errlist.c:1343
+#: sysdeps/gnu/errlist.c:1356
msgid "Attempting to link in too many shared libraries"
msgstr "Bandoma įkelti per daug bendrųjų bibliotekų"
-#: sysdeps/gnu/errlist.c:1351
+#: sysdeps/gnu/errlist.c:1364
msgid "Cannot exec a shared library directly"
msgstr "Negalima tiesiogiai paleisti bibliotekos"
-#: sysdeps/gnu/errlist.c:1359
+#: sysdeps/gnu/errlist.c:1372
msgid "Streams pipe error"
msgstr "Srautų jungties (pipe) klaida"
-#: sysdeps/gnu/errlist.c:1367
+#: sysdeps/gnu/errlist.c:1380
msgid "Structure needs cleaning"
msgstr "Reikia išvalyti struktūrą"
-#: sysdeps/gnu/errlist.c:1375
+#: sysdeps/gnu/errlist.c:1388
msgid "Not a XENIX named type file"
msgstr "Ne XENIX vardinio tipo failas"
-#: sysdeps/gnu/errlist.c:1383
+#: sysdeps/gnu/errlist.c:1396
msgid "No XENIX semaphores available"
msgstr "Nėra laisvų XENIX semaforų"
-#: sysdeps/gnu/errlist.c:1391
+#: sysdeps/gnu/errlist.c:1404
msgid "Is a named type file"
msgstr "Vardinio tipo failas"
-#: sysdeps/gnu/errlist.c:1399
+#: sysdeps/gnu/errlist.c:1412
msgid "Remote I/O error"
msgstr "Nutolusio įvedimo/išvedimo klaida"
-#: sysdeps/gnu/errlist.c:1407
+#: sysdeps/gnu/errlist.c:1420
msgid "No medium found"
msgstr "Nerasta laikmena"
-#: sysdeps/gnu/errlist.c:1415
+#: sysdeps/gnu/errlist.c:1428
msgid "Wrong medium type"
msgstr "Netinkamas laikmenos tipas"
-#: sysdeps/gnu/errlist.c:1423
+#: sysdeps/gnu/errlist.c:1436
msgid "Required key not available"
msgstr "Reikalingas raktas nerastas"
-#: sysdeps/gnu/errlist.c:1431
+#: sysdeps/gnu/errlist.c:1444
msgid "Key has expired"
msgstr "BaigÄ—si rakto galiojimo laikas"
-#: sysdeps/gnu/errlist.c:1439
+#: sysdeps/gnu/errlist.c:1452
msgid "Key has been revoked"
msgstr "Raktas atšauktas"
-#: sysdeps/gnu/errlist.c:1447
+#: sysdeps/gnu/errlist.c:1460
msgid "Key was rejected by service"
msgstr "Raktas atmestas tarnybos"
-#: sysdeps/gnu/errlist.c:1455
+#: sysdeps/gnu/errlist.c:1468
#, fuzzy
#| msgid "Operation not permitted"
msgid "Operation not possible due to RF-kill"
msgstr "Operacija neleidžiama"
-#: sysdeps/gnu/errlist.c:1463
+#: sysdeps/gnu/errlist.c:1476
msgid "Memory page has hardware error"
msgstr ""
@@ -6796,29 +6805,29 @@ msgstr ""
msgid "can't disable CET"
msgstr ""
-#: timezone/zdump.c:338
+#: timezone/zdump.c:332
#, fuzzy
msgid "has fewer than 3 characters"
msgstr "laiko zonos santrumpoje yra daugiau negu 3 raidÄ—s"
-#: timezone/zdump.c:340
+#: timezone/zdump.c:334
#, fuzzy
msgid "has more than 6 characters"
msgstr "laiko zonos santrumpoje yra daugiau negu 3 raidÄ—s"
-#: timezone/zdump.c:342
+#: timezone/zdump.c:336
msgid "has characters other than ASCII alphanumerics, '-' or '+'"
msgstr ""
-#: timezone/zdump.c:347
+#: timezone/zdump.c:341
#, c-format
msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n"
msgstr ""
-#: timezone/zdump.c:393
+#: timezone/zdump.c:387
#, c-format
msgid ""
-"%s: usage: %s OPTIONS ZONENAME ...\n"
+"%s: usage: %s OPTIONS TIMEZONE ...\n"
"Options include:\n"
" -c [L,]U Start at year L (default -500), end before year U (default 2500)\n"
" -t [L,]U Start at time L, end before time U (in seconds since 1970)\n"
@@ -6831,451 +6840,476 @@ msgid ""
"Report bugs to %s.\n"
msgstr ""
-#: timezone/zdump.c:479
+#: timezone/zdump.c:473
#, fuzzy, c-format
msgid "%s: wild -c argument %s\n"
msgstr "%s: Per daug argumentų\n"
-#: timezone/zdump.c:512
+#: timezone/zdump.c:506
#, fuzzy, c-format
msgid "%s: wild -t argument %s\n"
msgstr "%s: Per daug argumentų\n"
-#: timezone/zic.c:398
+#: timezone/zic.c:429
#, fuzzy, c-format
msgid "%s: Memory exhausted: %s\n"
msgstr "BaigÄ—si atmintis"
-#: timezone/zic.c:406
+#: timezone/zic.c:437
msgid "size overflow"
msgstr ""
-#: timezone/zic.c:454
+#: timezone/zic.c:447
+msgid "alignment overflow"
+msgstr ""
+
+#: timezone/zic.c:495
#, fuzzy
#| msgid "internal error"
msgid "integer overflow"
msgstr "vidinÄ— klaida"
-#: timezone/zic.c:488
+#: timezone/zic.c:529
#, c-format
msgid "\"%s\", line %<PRIdMAX>: "
msgstr ""
-#: timezone/zic.c:491
+#: timezone/zic.c:532
#, c-format
msgid " (rule from \"%s\", line %<PRIdMAX>)"
msgstr ""
-#: timezone/zic.c:510
+#: timezone/zic.c:551
#, fuzzy, c-format
msgid "warning: "
msgstr "įspėjimas: "
-#: timezone/zic.c:535
+#: timezone/zic.c:576
#, c-format
msgid ""
"%s: usage is %s [ --version ] [ --help ] [ -v ] \\\n"
"\t[ -l localtime ] [ -p posixrules ] [ -d directory ] \\\n"
-"\t[ -L leapseconds ] [ filename ... ]\n"
+"\t[ -t localtime-link ] [ -L leapseconds ] [ filename ... ]\n"
"\n"
"Report bugs to %s.\n"
msgstr ""
-#: timezone/zic.c:558
+#: timezone/zic.c:599
#, fuzzy, c-format
msgid "%s: Can't chdir to %s: %s\n"
msgstr "%s:%u: nepavyko perskaityti aplanko %s"
-#: timezone/zic.c:590
+#: timezone/zic.c:632
#, fuzzy
msgid "wild compilation-time specification of zic_t"
msgstr "%s: nÄ—ra baigimo specifikacijos"
-#: timezone/zic.c:610
+#: timezone/zic.c:652
#, fuzzy, c-format
msgid "%s: More than one -d option specified\n"
msgstr "%s: nÄ—ra baigimo specifikacijos"
-#: timezone/zic.c:620
+#: timezone/zic.c:662
#, fuzzy, c-format
msgid "%s: More than one -l option specified\n"
msgstr "%s: nÄ—ra baigimo specifikacijos"
-#: timezone/zic.c:630
+#: timezone/zic.c:672
#, fuzzy, c-format
msgid "%s: More than one -p option specified\n"
msgstr "%s: nÄ—ra baigimo specifikacijos"
-#: timezone/zic.c:640
+#: timezone/zic.c:680
+#, fuzzy, c-format
+msgid "%s: More than one -t option specified\n"
+msgstr "%s: nÄ—ra baigimo specifikacijos"
+
+#: timezone/zic.c:689
+msgid "-y is obsolescent"
+msgstr ""
+
+#: timezone/zic.c:693
#, fuzzy, c-format
msgid "%s: More than one -y option specified\n"
msgstr "%s: nÄ—ra baigimo specifikacijos"
-#: timezone/zic.c:650
+#: timezone/zic.c:703
#, fuzzy, c-format
msgid "%s: More than one -L option specified\n"
msgstr "%s: nÄ—ra baigimo specifikacijos"
-#: timezone/zic.c:659
+#: timezone/zic.c:712
msgid "-s ignored"
msgstr ""
-#: timezone/zic.c:698
+#: timezone/zic.c:753
msgid "link to link"
msgstr ""
-#: timezone/zic.c:701 timezone/zic.c:705
+#: timezone/zic.c:756 timezone/zic.c:760
#, fuzzy
#| msgid "bad command type"
msgid "command line"
msgstr "blogas komandos tipas"
-#: timezone/zic.c:721
+#: timezone/zic.c:776
msgid "empty file name"
msgstr ""
-#: timezone/zic.c:724
+#: timezone/zic.c:779
#, c-format
msgid "file name '%s' begins with '/'"
msgstr ""
-#: timezone/zic.c:734
+#: timezone/zic.c:789
#, c-format
msgid "file name '%s' contains '%.*s' component"
msgstr ""
-#: timezone/zic.c:740
+#: timezone/zic.c:795
#, c-format
msgid "file name '%s' component contains leading '-'"
msgstr ""
-#: timezone/zic.c:743
+#: timezone/zic.c:798
#, c-format
msgid "file name '%s' contains overlength component '%.*s...'"
msgstr ""
-#: timezone/zic.c:771
+#: timezone/zic.c:826
#, c-format
msgid "file name '%s' contains byte '%c'"
msgstr ""
-#: timezone/zic.c:772
+#: timezone/zic.c:827
#, c-format
msgid "file name '%s' contains byte '\\%o'"
msgstr ""
-#: timezone/zic.c:842
+#: timezone/zic.c:897
#, fuzzy, c-format
msgid "%s: link from %s/%s failed: %s\n"
msgstr "Nepavyko susaistyti (link) %s su %s"
-#: timezone/zic.c:852 timezone/zic.c:1815
+#: timezone/zic.c:907 timezone/zic.c:1876
#, fuzzy, c-format
msgid "%s: Can't remove %s/%s: %s\n"
msgstr "%s:%u: nepavyko perskaityti aplanko %s"
-#: timezone/zic.c:874
+#: timezone/zic.c:931
#, c-format
msgid "symbolic link used because hard link failed: %s"
msgstr ""
-#: timezone/zic.c:882
+#: timezone/zic.c:939
#, fuzzy, c-format
msgid "%s: Can't read %s/%s: %s\n"
msgstr "%s:%u: nepavyko perskaityti aplanko %s"
-#: timezone/zic.c:889 timezone/zic.c:1828
+#: timezone/zic.c:946 timezone/zic.c:1889
#, fuzzy, c-format
msgid "%s: Can't create %s/%s: %s\n"
msgstr "%s:%u: nepavyko perskaityti aplanko %s"
-#: timezone/zic.c:898
+#: timezone/zic.c:955
#, c-format
msgid "copy used because hard link failed: %s"
msgstr ""
-#: timezone/zic.c:901
+#: timezone/zic.c:958
#, c-format
msgid "copy used because symbolic link failed: %s"
msgstr ""
-#: timezone/zic.c:1013 timezone/zic.c:1015
+#: timezone/zic.c:1032 timezone/zic.c:1034
msgid "same rule name in multiple files"
msgstr ""
-#: timezone/zic.c:1056
-msgid "unruly zone"
-msgstr ""
-
-#: timezone/zic.c:1063
+#: timezone/zic.c:1081
#, c-format
msgid "%s in ruleless zone"
msgstr ""
-#: timezone/zic.c:1083
+#: timezone/zic.c:1101
msgid "standard input"
msgstr ""
-#: timezone/zic.c:1088
+#: timezone/zic.c:1106
#, fuzzy, c-format
msgid "%s: Can't open %s: %s\n"
msgstr "nepavyko atverti"
-#: timezone/zic.c:1099
+#: timezone/zic.c:1117
#, fuzzy
msgid "line too long"
msgstr "Failo vardas per ilgas"
-#: timezone/zic.c:1119
+#: timezone/zic.c:1139
msgid "input line of unknown type"
msgstr ""
-#: timezone/zic.c:1134
-#, c-format
-msgid "%s: Leap line in non leap seconds file %s"
-msgstr ""
-
-#: timezone/zic.c:1142 timezone/zic.c:1547 timezone/zic.c:1569
+#: timezone/zic.c:1158 timezone/zic.c:1593 timezone/zic.c:1615
#, c-format
msgid "%s: panic: Invalid l_value %d\n"
msgstr ""
-#: timezone/zic.c:1151
+#: timezone/zic.c:1167
msgid "expected continuation line not found"
msgstr ""
-#: timezone/zic.c:1193 timezone/zic.c:2976
-msgid "time overflow"
-msgstr ""
-
-#: timezone/zic.c:1198
-msgid "values over 24 hours not handled by pre-2007 versions of zic"
+#: timezone/zic.c:1203
+msgid "fractional seconds rejected by pre-2018 versions of zic"
msgstr ""
-#: timezone/zic.c:1209
-msgid "wrong number of fields on Rule line"
+#: timezone/zic.c:1221 timezone/zic.c:3078
+msgid "time overflow"
msgstr ""
-#: timezone/zic.c:1213
-msgid "nameless rule"
+#: timezone/zic.c:1227
+msgid "values over 24 hours not handled by pre-2007 versions of zic"
msgstr ""
-#: timezone/zic.c:1218
+#: timezone/zic.c:1245
#, fuzzy
msgid "invalid saved time"
msgstr "netaisyklingas kvietÄ—jas"
-#: timezone/zic.c:1235
+#: timezone/zic.c:1256
+msgid "wrong number of fields on Rule line"
+msgstr ""
+
+#: timezone/zic.c:1265
+#, fuzzy, c-format
+msgid "Invalid rule name \"%s\""
+msgstr "nekorektiška eilutė"
+
+#: timezone/zic.c:1287
msgid "wrong number of fields on Zone line"
msgstr ""
-#: timezone/zic.c:1240
+#: timezone/zic.c:1292
#, c-format
msgid "\"Zone %s\" line and -l option are mutually exclusive"
msgstr ""
-#: timezone/zic.c:1246
+#: timezone/zic.c:1298
#, c-format
msgid "\"Zone %s\" line and -p option are mutually exclusive"
msgstr ""
-#: timezone/zic.c:1253
+#: timezone/zic.c:1305
#, c-format
msgid "duplicate zone name %s (file \"%s\", line %<PRIdMAX>)"
msgstr ""
-#: timezone/zic.c:1267
+#: timezone/zic.c:1319
msgid "wrong number of fields on Zone continuation line"
msgstr ""
-#: timezone/zic.c:1307
+#: timezone/zic.c:1359
#, fuzzy
msgid "invalid UT offset"
msgstr "netaisyklingas kvietÄ—jas"
-#: timezone/zic.c:1311
+#: timezone/zic.c:1363
#, fuzzy
msgid "invalid abbreviation format"
msgstr "netinkamas mÄ—nesio pavadinimas"
-#: timezone/zic.c:1320
+#: timezone/zic.c:1372
#, c-format
msgid "format '%s' not handled by pre-2015 versions of zic"
msgstr ""
-#: timezone/zic.c:1347
+#: timezone/zic.c:1399
msgid "Zone continuation line end time is not after end time of previous line"
msgstr ""
-#: timezone/zic.c:1374
+#: timezone/zic.c:1426
msgid "wrong number of fields on Leap line"
msgstr ""
-#: timezone/zic.c:1383
+#: timezone/zic.c:1435
#, fuzzy
msgid "invalid leaping year"
msgstr "nurodyta netaisyklinga koduotÄ—"
-#: timezone/zic.c:1403 timezone/zic.c:1501
+#: timezone/zic.c:1455 timezone/zic.c:1547
#, fuzzy
msgid "invalid month name"
msgstr "netaisyklinga veiksena"
-#: timezone/zic.c:1416 timezone/zic.c:1614 timezone/zic.c:1628
+#: timezone/zic.c:1468 timezone/zic.c:1663 timezone/zic.c:1677
msgid "invalid day of month"
msgstr "netinkama mÄ—nesio diena"
-#: timezone/zic.c:1421
+#: timezone/zic.c:1473
msgid "time too small"
msgstr ""
-#: timezone/zic.c:1425
+#: timezone/zic.c:1477
#, fuzzy
msgid "time too large"
msgstr "Failas per didelis"
-#: timezone/zic.c:1429 timezone/zic.c:1530
+#: timezone/zic.c:1481 timezone/zic.c:1576
#, fuzzy
msgid "invalid time of day"
msgstr "netaisyklinga veiksena"
-#: timezone/zic.c:1448
+#: timezone/zic.c:1494
msgid "illegal CORRECTION field on Leap line"
msgstr ""
-#: timezone/zic.c:1453
+#: timezone/zic.c:1499
msgid "illegal Rolling/Stationary field on Leap line"
msgstr ""
-#: timezone/zic.c:1459
-msgid "leap second precedes Big Bang"
+#: timezone/zic.c:1505
+msgid "leap second precedes Epoch"
msgstr ""
-#: timezone/zic.c:1472
+#: timezone/zic.c:1518
msgid "wrong number of fields on Link line"
msgstr ""
-#: timezone/zic.c:1476
+#: timezone/zic.c:1522
msgid "blank FROM field on Link line"
msgstr ""
-#: timezone/zic.c:1551
+#: timezone/zic.c:1597
#, fuzzy
msgid "invalid starting year"
msgstr "netaisyklingas naudotojas"
-#: timezone/zic.c:1573
+#: timezone/zic.c:1619
#, fuzzy
msgid "invalid ending year"
msgstr "nurodyta netaisyklinga koduotÄ—"
-#: timezone/zic.c:1577
+#: timezone/zic.c:1623
msgid "starting year greater than ending year"
msgstr ""
-#: timezone/zic.c:1584
+#: timezone/zic.c:1630
msgid "typed single year"
msgstr ""
-#: timezone/zic.c:1619
+#: timezone/zic.c:1633
+#, c-format
+msgid "year type \"%s\" is obsolete; use \"-\" instead"
+msgstr ""
+
+#: timezone/zic.c:1668
msgid "invalid weekday name"
msgstr "netinkamas savaitÄ—s dienos pavadinimas"
-#: timezone/zic.c:1743
+#: timezone/zic.c:1800
#, c-format
msgid "reference clients mishandle more than %d transition times"
msgstr ""
-#: timezone/zic.c:1747
+#: timezone/zic.c:1804
msgid "pre-2014 clients may mishandle more than 1200 transition times"
msgstr ""
-#: timezone/zic.c:1858
+#: timezone/zic.c:1920
#, fuzzy
msgid "too many transition times"
msgstr "per daug keliamųjų sekundžių"
-#: timezone/zic.c:2047
+#: timezone/zic.c:2107
#, c-format
-msgid "%%z UTC offset magnitude exceeds 99:59:59"
+msgid "%%z UT offset magnitude exceeds 99:59:59"
msgstr ""
-#: timezone/zic.c:2424
+#: timezone/zic.c:2488
msgid "no POSIX environment variable for zone"
msgstr ""
-#: timezone/zic.c:2430
+#: timezone/zic.c:2494
#, c-format
msgid "%s: pre-%d clients may mishandle distant timestamps"
msgstr ""
-#: timezone/zic.c:2566
+#: timezone/zic.c:2631
msgid "two rules for same instant"
msgstr ""
-#: timezone/zic.c:2627
+#: timezone/zic.c:2696
msgid "can't determine time zone abbreviation to use just after until time"
msgstr ""
-#: timezone/zic.c:2725
+#: timezone/zic.c:2785
msgid "too many local time types"
msgstr "per daug lokalaus laiko tipų"
-#: timezone/zic.c:2729
+#: timezone/zic.c:2789
#, fuzzy
msgid "UT offset out of range"
msgstr "UTC poslinkis už ribų"
-#: timezone/zic.c:2753
+#: timezone/zic.c:2813
msgid "too many leap seconds"
msgstr "per daug keliamųjų sekundžių"
-#: timezone/zic.c:2759
-msgid "repeated leap second moment"
-msgstr "Pakartotinis keliamosios sekundÄ—s momentas"
+#: timezone/zic.c:2844
+msgid "Leap seconds too close together"
+msgstr ""
-#: timezone/zic.c:2830
+#: timezone/zic.c:2891
msgid "Wild result from command execution"
msgstr ""
-#: timezone/zic.c:2831
+#: timezone/zic.c:2892
#, c-format
msgid "%s: command was '%s', result was %d\n"
msgstr ""
-#: timezone/zic.c:2961
+#: timezone/zic.c:2998
+#, c-format
+msgid "\"%s\" is undocumented; use \"last%s\" instead"
+msgstr ""
+
+#: timezone/zic.c:3029
+#, fuzzy, c-format
+#| msgid "%s: ambiguous job spec"
+msgid "\"%s\" is ambiguous in pre-2017c zic"
+msgstr "%s: dviprasmis darbo aprašymas"
+
+#: timezone/zic.c:3063
msgid "Odd number of quotation marks"
msgstr "Nelyginis kabuÄių skaiÄius"
-#: timezone/zic.c:3046
+#: timezone/zic.c:3157
msgid "use of 2/29 in non leap-year"
msgstr "vasario 29 d. nekeliamuosiuose metuose"
-#: timezone/zic.c:3081
+#: timezone/zic.c:3192
msgid "rule goes past start/end of month; will not work with pre-2004 versions of zic"
msgstr ""
-#: timezone/zic.c:3108
+#: timezone/zic.c:3219
#, fuzzy
#| msgid "time zone abbreviation has more than 3 alphabetics"
msgid "time zone abbreviation has fewer than 3 characters"
msgstr "laiko zonos santrumpoje yra daugiau negu 3 raidÄ—s"
-#: timezone/zic.c:3110
+#: timezone/zic.c:3221
#, fuzzy
msgid "time zone abbreviation has too many characters"
msgstr "laiko zonos santrumpoje yra daugiau negu 3 raidÄ—s"
-#: timezone/zic.c:3112
+#: timezone/zic.c:3223
#, fuzzy
msgid "time zone abbreviation differs from POSIX standard"
msgstr "laiko zonos santrumpos pradžioje nėra raidės"
-#: timezone/zic.c:3118
+#: timezone/zic.c:3229
msgid "too many, or too long, time zone abbreviations"
msgstr ""
-#: timezone/zic.c:3161
+#: timezone/zic.c:3275
#, fuzzy, c-format
msgid "%s: Can't create directory %s: %s"
msgstr "Nepavyko atverti aplanko %s"
@@ -7288,6 +7322,10 @@ msgstr "Nepavyko atverti aplanko %s"
#~ msgid "xtrace: option \\`$1' requires an argument.\\n"
#~ msgstr "memusage: parametrui „$1“ reikia argumento"
+#, fuzzy
+#~ msgid "cannot open zero fill device"
+#~ msgstr "nepavyko atverti duomenų failo „%s“"
+
#~ msgid "cannot handle TLS data"
#~ msgstr "nepavyko apdoroti TLS duomenų"
@@ -7295,6 +7333,9 @@ msgstr "Nepavyko atverti aplanko %s"
#~ msgid "invalid caller"
#~ msgstr "netaisyklingas kvietÄ—jas"
+#~ msgid "relocation error"
+#~ msgstr "relokacijos klaida"
+
#~ msgid "%s: no PLTREL found in object %s\n"
#~ msgstr "%s: objekte %s nerasta PLTREL\n"
@@ -7312,6 +7353,15 @@ msgstr "Nepavyko atverti aplanko %s"
#~ msgid "Character out of range for UTF-8"
#~ msgstr "Kanalo numeris už ribų"
+#~ msgid "Cannot set LC_CTYPE to default locale"
+#~ msgstr "Nepavyko nustatyti LC_CTYPE į numatytąją lokalę"
+
+#~ msgid "Cannot set LC_MESSAGES to default locale"
+#~ msgstr "Nepavyko nustatyti LC_MESSAGES į numatytąją lokalę"
+
+#~ msgid "Cannot set LC_COLLATE to default locale"
+#~ msgstr "Nepavyko nustatyti LC_COLLATE į numatytąją lokalę"
+
#~ msgid "Try \\`memusage --help' for more information."
#~ msgstr "Pabandykite „memusage --help“, jei norite gauti daugiau informacijos."
@@ -7426,6 +7476,9 @@ msgstr "Nepavyko atverti aplanko %s"
#~ msgid "%s: Error writing %s\n"
#~ msgstr "%s: Klaida rašant %s\n"
+#~ msgid "repeated leap second moment"
+#~ msgstr "Pakartotinis keliamosios sekundÄ—s momentas"
+
#~ msgid "time zone abbreviation lacks alphabetic at start"
#~ msgstr "laiko zonos santrumpos pradžioje nėra raidės"
@@ -7509,9 +7562,6 @@ msgstr "Nepavyko atverti aplanko %s"
#~ msgid "%s: error retrieving current directory: %s: %s\n"
#~ msgstr "%s: Nepavyko sukurti aplanko %s: %s\n"
-#~ msgid "%s: ambiguous job spec"
-#~ msgstr "%s: dviprasmis darbo aprašymas"
-
#~ msgid "warning: -F option may not work as you expect"
#~ msgstr "įspėjimas: parametras -F gali neveikti taip, kaip tikitės"
diff --git a/po/nb.po b/po/nb.po
index f83e4c11bd..be61829f8b 100644
--- a/po/nb.po
+++ b/po/nb.po
@@ -7,7 +7,7 @@
msgid ""
msgstr ""
"Project-Id-Version: libc 2.3.2\n"
-"POT-Creation-Date: 2018-07-26 22:19-0400\n"
+"POT-Creation-Date: 2019-07-18 13:28-0400\n"
"PO-Revision-Date: 2003-08-28 09:27+0100\n"
"Last-Translator: Eivind Tagseth <eivindt@multinet.no>\n"
"Language-Team: Norwegian <i18n-nb@lister.ping.uio.no>\n"
@@ -148,10 +148,10 @@ msgstr ""
"[UTFIL [INNFIL]...]"
#: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:308
-#: elf/pldd.c:252 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
-#: iconv/iconvconfig.c:379 locale/programs/locale.c:275
-#: locale/programs/localedef.c:427 login/programs/pt_chown.c:89
-#: malloc/memusagestat.c:563 nss/getent.c:933 nss/makedb.c:369
+#: elf/pldd.c:247 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
+#: iconv/iconvconfig.c:379 locale/programs/locale.c:276
+#: locale/programs/localedef.c:437 login/programs/pt_chown.c:89
+#: malloc/memusagestat.c:563 nss/getent.c:953 nss/makedb.c:369
#: posix/getconf.c:503 sysdeps/unix/sysv/linux/lddlibc4.c:61
#, c-format
msgid ""
@@ -160,11 +160,11 @@ msgid ""
msgstr ""
#: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64
-#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75
+#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:263 elf/sotruss.sh:75
#: elf/sprof.c:389 iconv/iconv_prog.c:422 iconv/iconvconfig.c:396
-#: locale/programs/locale.c:292 locale/programs/localedef.c:453
+#: locale/programs/locale.c:293 locale/programs/localedef.c:463
#: login/programs/pt_chown.c:63 malloc/memusage.sh:71
-#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:87 nss/makedb.c:385
+#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:88 nss/makedb.c:385
#: posix/getconf.c:485 sysdeps/unix/sysv/linux/lddlibc4.c:68
#, c-format
msgid ""
@@ -178,10 +178,10 @@ msgstr ""
"TIL NOEN SPESIELL OPPGAVE.\n"
#: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68
-#: elf/ldconfig.c:329 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:427
-#: iconv/iconvconfig.c:401 locale/programs/locale.c:297
-#: locale/programs/localedef.c:458 malloc/memusage.sh:75
-#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:92 nss/makedb.c:390
+#: elf/ldconfig.c:329 elf/pldd.c:268 elf/sprof.c:395 iconv/iconv_prog.c:427
+#: iconv/iconvconfig.c:401 locale/programs/locale.c:298
+#: locale/programs/localedef.c:468 malloc/memusage.sh:75
+#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:93 nss/makedb.c:390
#: posix/getconf.c:490
#, c-format
msgid "Written by %s.\n"
@@ -256,21 +256,21 @@ msgstr "kan ikke åpne utfil «%s»"
msgid "invalid escape sequence"
msgstr "ugyldig lagret tid"
-#: catgets/gencat.c:1209
+#: catgets/gencat.c:1211
msgid "unterminated message"
msgstr "uavsluttet melding"
-#: catgets/gencat.c:1233
+#: catgets/gencat.c:1235
#, c-format
msgid "while opening old catalog file"
msgstr "da den gamle katalogfilen ble åpnet"
-#: catgets/gencat.c:1324
+#: catgets/gencat.c:1326
#, fuzzy, c-format
msgid "conversion modules not available"
msgstr "program %lu versjon %lu er ikke tilgjengelig\n"
-#: catgets/gencat.c:1350
+#: catgets/gencat.c:1352
#, fuzzy, c-format
msgid "cannot determine escape character"
msgstr "kan ikke opprette intern deskriptor"
@@ -405,7 +405,7 @@ msgstr "Ukjent vert"
msgid ", OS ABI: %s %d.%d.%d"
msgstr ""
-#: elf/cache.c:163 elf/ldconfig.c:1332
+#: elf/cache.c:163 elf/ldconfig.c:1333
#, fuzzy, c-format
msgid "Can't open cache file %s\n"
msgstr "kan ikke åpne innfil «%s»"
@@ -415,38 +415,38 @@ msgstr "kan ikke åpne innfil «%s»"
msgid "mmap of cache file failed.\n"
msgstr "mapping av seksjonsoverskrifter feilet"
-#: elf/cache.c:181 elf/cache.c:195
+#: elf/cache.c:181 elf/cache.c:195 elf/cache.c:205
#, c-format
msgid "File is not a cache file.\n"
msgstr ""
-#: elf/cache.c:228 elf/cache.c:238
+#: elf/cache.c:233 elf/cache.c:243
#, c-format
msgid "%d libs found in cache `%s'\n"
msgstr ""
-#: elf/cache.c:432
+#: elf/cache.c:437
#, fuzzy, c-format
msgid "Can't create temporary cache file %s"
msgstr "kan ikke lese lokalefil «%s»"
-#: elf/cache.c:440 elf/cache.c:450 elf/cache.c:454 elf/cache.c:458
-#: elf/cache.c:468
+#: elf/cache.c:445 elf/cache.c:455 elf/cache.c:459 elf/cache.c:463
+#: elf/cache.c:473
#, c-format
msgid "Writing of cache data failed"
msgstr ""
-#: elf/cache.c:463
+#: elf/cache.c:468
#, c-format
msgid "Changing access rights of %s to %#o failed"
msgstr ""
-#: elf/cache.c:472
+#: elf/cache.c:477
#, fuzzy, c-format
msgid "Renaming of %s to %s failed"
msgstr "mapping av seksjonsoverskrifter feilet"
-#: elf/dl-close.c:399 elf/dl-open.c:420
+#: elf/dl-close.c:399 elf/dl-open.c:424
#, fuzzy
msgid "cannot create scope list"
msgstr "kan ikke skrive til klient"
@@ -540,132 +540,131 @@ msgstr "kan ikke opprette intern deskriptor"
msgid "cannot stat shared object"
msgstr "klarte ikke å laste delt objekt «%s»"
-#: elf/dl-load.c:960
-#, fuzzy
-msgid "cannot open zero fill device"
-msgstr "kan ikke åpne utfil"
-
-#: elf/dl-load.c:1007 elf/dl-load.c:2203
+#: elf/dl-load.c:992 elf/dl-load.c:2198
#, fuzzy
msgid "cannot create shared object descriptor"
msgstr "kan ikke opprette intern deskriptor"
-#: elf/dl-load.c:1026 elf/dl-load.c:1560 elf/dl-load.c:1673
+#: elf/dl-load.c:1011 elf/dl-load.c:1555 elf/dl-load.c:1668
#, fuzzy
msgid "cannot read file data"
msgstr "kan ikke laste inn profileringsdata"
-#: elf/dl-load.c:1072
+#: elf/dl-load.c:1057
msgid "ELF load command alignment not page-aligned"
msgstr ""
-#: elf/dl-load.c:1079
+#: elf/dl-load.c:1064
msgid "ELF load command address/offset not properly aligned"
msgstr ""
-#: elf/dl-load.c:1161
+#: elf/dl-load.c:1146
#, fuzzy
#| msgid "Cannot register service"
msgid "cannot process note segment"
msgstr "Kan ikke registrere tjeneste"
-#: elf/dl-load.c:1172
+#: elf/dl-load.c:1157
msgid "object file has no loadable segments"
msgstr ""
-#: elf/dl-load.c:1181 elf/dl-load.c:1652
+#: elf/dl-load.c:1170 elf/dl-load.c:1647
msgid "cannot dynamically load executable"
msgstr ""
-#: elf/dl-load.c:1202
+#: elf/dl-load.c:1191
msgid "object file has no dynamic section"
msgstr ""
-#: elf/dl-load.c:1225
+#: elf/dl-load.c:1218
+msgid "cannot dynamically load position-independent executable"
+msgstr ""
+
+#: elf/dl-load.c:1220
msgid "shared object cannot be dlopen()ed"
msgstr ""
-#: elf/dl-load.c:1238
+#: elf/dl-load.c:1233
#, fuzzy
msgid "cannot allocate memory for program header"
msgstr "Kan ikke tildele minne"
-#: elf/dl-load.c:1271 elf/dl-load.h:130
+#: elf/dl-load.c:1266 elf/dl-load.h:130
#, fuzzy
msgid "cannot change memory protections"
msgstr "kan ikke behandle spesifikasjon av rekkefølge"
-#: elf/dl-load.c:1291
+#: elf/dl-load.c:1286
#, fuzzy
msgid "cannot enable executable stack as shared object requires"
msgstr "kan ikke opprette intern deskriptor"
-#: elf/dl-load.c:1304
+#: elf/dl-load.c:1299
#, fuzzy
#| msgid "cannot create internal descriptor"
msgid "cannot close file descriptor"
msgstr "kan ikke opprette intern deskriptor"
-#: elf/dl-load.c:1560
+#: elf/dl-load.c:1555
#, fuzzy
msgid "file too short"
msgstr "For stor fil"
-#: elf/dl-load.c:1595
+#: elf/dl-load.c:1590
#, fuzzy
msgid "invalid ELF header"
msgstr "ugyldig sluttår"
-#: elf/dl-load.c:1607
+#: elf/dl-load.c:1602
msgid "ELF file data encoding not big-endian"
msgstr ""
-#: elf/dl-load.c:1609
+#: elf/dl-load.c:1604
msgid "ELF file data encoding not little-endian"
msgstr ""
-#: elf/dl-load.c:1613
+#: elf/dl-load.c:1608
msgid "ELF file version ident does not match current one"
msgstr ""
-#: elf/dl-load.c:1617
+#: elf/dl-load.c:1612
msgid "ELF file OS ABI invalid"
msgstr ""
-#: elf/dl-load.c:1620
+#: elf/dl-load.c:1615
msgid "ELF file ABI version invalid"
msgstr ""
-#: elf/dl-load.c:1623
+#: elf/dl-load.c:1618
msgid "nonzero padding in e_ident"
msgstr ""
-#: elf/dl-load.c:1626
+#: elf/dl-load.c:1621
#, fuzzy
msgid "internal error"
msgstr "Intern NIS-feil"
-#: elf/dl-load.c:1633
+#: elf/dl-load.c:1628
msgid "ELF file version does not match current one"
msgstr ""
-#: elf/dl-load.c:1641
+#: elf/dl-load.c:1636
msgid "only ET_DYN and ET_EXEC can be loaded"
msgstr ""
-#: elf/dl-load.c:1657
+#: elf/dl-load.c:1652
msgid "ELF file's phentsize not the expected size"
msgstr ""
-#: elf/dl-load.c:2222
+#: elf/dl-load.c:2217
msgid "wrong ELF class: ELFCLASS64"
msgstr ""
-#: elf/dl-load.c:2223
+#: elf/dl-load.c:2218
msgid "wrong ELF class: ELFCLASS32"
msgstr ""
-#: elf/dl-load.c:2226
+#: elf/dl-load.c:2221
#, fuzzy
msgid "cannot open shared object file"
msgstr "kan ikke åpne utfil"
@@ -680,12 +679,7 @@ msgstr "klarte ikke å laste delt objekt «%s»"
msgid "cannot map zero-fill pages"
msgstr "kan ikke laste inn profileringsdata"
-#: elf/dl-lookup.c:835
-#, fuzzy
-msgid "relocation error"
-msgstr "Autentiseringsfeil"
-
-#: elf/dl-lookup.c:858
+#: elf/dl-lookup.c:830
msgid "symbol lookup error"
msgstr ""
@@ -693,19 +687,19 @@ msgstr ""
msgid "cannot extend global scope"
msgstr ""
-#: elf/dl-open.c:470
+#: elf/dl-open.c:474
msgid "TLS generation counter wrapped! Please report this."
msgstr ""
-#: elf/dl-open.c:534
+#: elf/dl-open.c:538
msgid "invalid mode for dlopen()"
msgstr "ugyldig modus for dlopen()"
-#: elf/dl-open.c:551
+#: elf/dl-open.c:555
msgid "no more namespaces available for dlmopen()"
msgstr ""
-#: elf/dl-open.c:575
+#: elf/dl-open.c:579
#, fuzzy
#| msgid "invalid mode for dlopen()"
msgid "invalid target namespace in dlmopen()"
@@ -717,20 +711,20 @@ msgstr "ugyldig modus for dlopen()"
msgid "cannot allocate memory in static TLS block"
msgstr "Kan ikke tildele minne"
-#: elf/dl-reloc.c:205
+#: elf/dl-reloc.c:213
msgid "cannot make segment writable for relocation"
msgstr ""
-#: elf/dl-reloc.c:276
+#: elf/dl-reloc.c:272
#, c-format
msgid "%s: out of memory to store relocation results for %s\n"
msgstr ""
-#: elf/dl-reloc.c:292
+#: elf/dl-reloc.c:288
msgid "cannot restore segment prot after reloc"
msgstr ""
-#: elf/dl-reloc.c:323
+#: elf/dl-reloc.c:319
#, fuzzy
msgid "cannot apply additional memory protection after relocation"
msgstr "kan ikke behandle spesifikasjon av rekkefølge"
@@ -957,23 +951,23 @@ msgstr ""
msgid "memory exhausted"
msgstr "minnet oppbrukt"
-#: elf/ldconfig.c:1233
+#: elf/ldconfig.c:1234
#, fuzzy, c-format
#| msgid "%s: Can't create directory %s: %s\n"
msgid "%s:%u: cannot read directory %s"
msgstr "%s: Kan ikke opprette filkatalog %s: %s\n"
-#: elf/ldconfig.c:1281
+#: elf/ldconfig.c:1282
#, c-format
msgid "relative path `%s' used to build cache"
msgstr ""
-#: elf/ldconfig.c:1311
+#: elf/ldconfig.c:1312
#, c-format
msgid "Can't chdir to /"
msgstr ""
-#: elf/ldconfig.c:1352
+#: elf/ldconfig.c:1353
#, fuzzy, c-format
msgid "Can't open cache file directory %s\n"
msgstr "kan ikke lese filkatalogen for lokaler, «%s»"
@@ -1046,100 +1040,106 @@ msgstr ""
msgid "error: you do not have read permission for"
msgstr ""
-#: elf/pldd-xx.c:105
+#: elf/pldd-xx.c:102
#, fuzzy, c-format
#| msgid "cannot read header from `%s'"
msgid "cannot find program header of process"
msgstr "kan ikke lese hode fra «%s»"
-#: elf/pldd-xx.c:110
+#: elf/pldd-xx.c:106
#, fuzzy, c-format
msgid "cannot read program header"
msgstr "kan ikke lese hode fra «%s»"
-#: elf/pldd-xx.c:135
+#: elf/pldd-xx.c:128
#, fuzzy, c-format
#| msgid "cannot read statistics data"
msgid "cannot read dynamic section"
msgstr "kan ikke lese statisitkkdata"
-#: elf/pldd-xx.c:147
+#: elf/pldd-xx.c:137
#, fuzzy, c-format
msgid "cannot read r_debug"
msgstr "kan ikke lese hode fra «%s»"
-#: elf/pldd-xx.c:167
+#: elf/pldd-xx.c:154
#, fuzzy, c-format
msgid "cannot read program interpreter"
msgstr "kan ikke lese hode fra «%s»"
-#: elf/pldd-xx.c:197
+#: elf/pldd-xx.c:183
#, fuzzy, c-format
msgid "cannot read link map"
msgstr "kan ikke laste inn profileringsdata"
-#: elf/pldd-xx.c:209
+#: elf/pldd-xx.c:190
#, fuzzy, c-format
msgid "cannot read object name"
msgstr "kan ikke lese hode fra «%s»"
-#: elf/pldd-xx.c:219
+#: elf/pldd-xx.c:197
#, fuzzy, c-format
msgid "cannot allocate buffer for object name"
msgstr "Kan ikke tildele minne"
-#: elf/pldd.c:64
+#: elf/pldd.c:58
msgid "List dynamic shared objects loaded into process."
msgstr ""
-#: elf/pldd.c:68
+#: elf/pldd.c:62
msgid "PID"
msgstr ""
-#: elf/pldd.c:100
+#: elf/pldd.c:89
#, c-format
msgid "Exactly one parameter with process ID required.\n"
msgstr ""
-#: elf/pldd.c:112
+#: elf/pldd.c:103
#, fuzzy, c-format
msgid "invalid process ID '%s'"
msgstr "ugyldig månedsnavn"
-#: elf/pldd.c:120
+#: elf/pldd.c:111
#, fuzzy, c-format
#| msgid "cannot open `%s'"
msgid "cannot open %s"
msgstr "kan ikke åpne «%s»"
-#: elf/pldd.c:152
+#: elf/pldd.c:142
#, fuzzy, c-format
#| msgid "cannot open `%s'"
msgid "cannot open %s/task"
msgstr "kan ikke åpne «%s»"
-#: elf/pldd.c:155
+#: elf/pldd.c:145
#, fuzzy, c-format
msgid "cannot prepare reading %s/task"
msgstr "kan ikke lese fra klient"
-#: elf/pldd.c:168
+#: elf/pldd.c:158
#, fuzzy, c-format
msgid "invalid thread ID '%s'"
msgstr "ugyldig sluttår"
-#: elf/pldd.c:179
+#: elf/pldd.c:169
#, fuzzy, c-format
#| msgid "cannot find C preprocessor: %s \n"
msgid "cannot attach to process %lu"
msgstr "kan ikke finn C-preprosessor: %s \n"
-#: elf/pldd.c:294
+#: elf/pldd.c:184
+#, fuzzy, c-format
+#| msgid "invalid saved time"
+msgid "no valid %s/task entries"
+msgstr "ugyldig lagret tid"
+
+#: elf/pldd.c:290
#, c-format
msgid "cannot get information about process %lu"
msgstr ""
-#: elf/pldd.c:307
+#: elf/pldd.c:303
#, c-format
msgid "process %lu is no ELF program"
msgstr ""
@@ -1462,7 +1462,7 @@ msgstr "Informasjon:"
msgid "list all known coded character sets"
msgstr "list opp alle kjente kodede tegnsett"
-#: iconv/iconv_prog.c:64 locale/programs/localedef.c:120
+#: iconv/iconv_prog.c:64 locale/programs/localedef.c:124
#, fuzzy
msgid "Output control:"
msgstr "Utskriftskontroll:"
@@ -1473,8 +1473,8 @@ msgid "omit invalid characters from output"
msgstr "ikke ta med ugyldige tegn i utskrift"
#: iconv/iconv_prog.c:66 iconv/iconvconfig.c:128
-#: locale/programs/localedef.c:113 locale/programs/localedef.c:115
-#: locale/programs/localedef.c:117 locale/programs/localedef.c:144
+#: locale/programs/localedef.c:117 locale/programs/localedef.c:119
+#: locale/programs/localedef.c:121 locale/programs/localedef.c:150
#: malloc/memusagestat.c:56
#, fuzzy
msgid "FILE"
@@ -1583,7 +1583,7 @@ msgstr "Opprett hurtiglastende moduloppsettsfil for iconv"
msgid "[DIR...]"
msgstr "[KATALOG...]"
-#: iconv/iconvconfig.c:126 locale/programs/localedef.c:123
+#: iconv/iconvconfig.c:126 locale/programs/localedef.c:129
msgid "PATH"
msgstr ""
@@ -1775,14 +1775,14 @@ msgstr "tegnsett med låsetilstander er ikke støttet"
#: locale/programs/charmap.c:503 locale/programs/charmap.c:557
#: locale/programs/charmap.c:589 locale/programs/charmap.c:683
-#: locale/programs/charmap.c:738 locale/programs/charmap.c:779
-#: locale/programs/charmap.c:820
+#: locale/programs/charmap.c:739 locale/programs/charmap.c:780
+#: locale/programs/charmap.c:821
#, c-format
msgid "syntax error in %s definition: %s"
msgstr "syntaksfeil i definisjon av %s: %s"
#: locale/programs/charmap.c:504 locale/programs/charmap.c:684
-#: locale/programs/charmap.c:780 locale/programs/repertoire.c:229
+#: locale/programs/charmap.c:781 locale/programs/repertoire.c:229
msgid "no symbolic name given"
msgstr "ikke noe symbolsk navn gitt"
@@ -1798,14 +1798,14 @@ msgstr "for få bytes i tegnkoding"
msgid "too many bytes in character encoding"
msgstr "for mange tegn i tegnkoding"
-#: locale/programs/charmap.c:591 locale/programs/charmap.c:739
-#: locale/programs/charmap.c:822 locale/programs/repertoire.c:295
+#: locale/programs/charmap.c:591 locale/programs/charmap.c:740
+#: locale/programs/charmap.c:823 locale/programs/repertoire.c:295
msgid "no symbolic name given for end of range"
msgstr "ikke noe symbolsk navn gitt for slutten på området"
#: locale/programs/charmap.c:615 locale/programs/ld-address.c:524
#: locale/programs/ld-collate.c:2616 locale/programs/ld-collate.c:3774
-#: locale/programs/ld-ctype.c:2117 locale/programs/ld-ctype.c:2829
+#: locale/programs/ld-ctype.c:2118 locale/programs/ld-ctype.c:2830
#: locale/programs/ld-identification.c:397
#: locale/programs/ld-measurement.c:213 locale/programs/ld-messages.c:295
#: locale/programs/ld-monetary.c:748 locale/programs/ld-name.c:262
@@ -1820,60 +1820,60 @@ msgstr "«%1$s» definisjonen slutter ikke med «END %1$s»"
msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
msgstr "bare definisjon av «WIDTH» får komme etter definisjon av «CHARMAP»"
-#: locale/programs/charmap.c:656 locale/programs/charmap.c:719
+#: locale/programs/charmap.c:656 locale/programs/charmap.c:720
#, c-format
msgid "value for %s must be an integer"
msgstr "verdien på %s må være heltall"
-#: locale/programs/charmap.c:847
+#: locale/programs/charmap.c:848
#, c-format
msgid "%s: error in state machine"
msgstr "%s: feil i tilstandsmaskinen"
-#: locale/programs/charmap.c:855 locale/programs/ld-address.c:540
+#: locale/programs/charmap.c:856 locale/programs/ld-address.c:540
#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967
-#: locale/programs/ld-ctype.c:2114 locale/programs/ld-ctype.c:2846
+#: locale/programs/ld-ctype.c:2115 locale/programs/ld-ctype.c:2847
#: locale/programs/ld-identification.c:413
#: locale/programs/ld-measurement.c:229 locale/programs/ld-messages.c:311
#: locale/programs/ld-monetary.c:764 locale/programs/ld-name.c:278
#: locale/programs/ld-numeric.c:341 locale/programs/ld-paper.c:228
#: locale/programs/ld-telephone.c:292 locale/programs/ld-time.c:990
-#: locale/programs/locfile.c:997 locale/programs/repertoire.c:323
+#: locale/programs/locfile.c:1010 locale/programs/repertoire.c:323
#, c-format
msgid "%s: premature end of file"
msgstr "%s: for tidlig slutt på filen"
-#: locale/programs/charmap.c:874 locale/programs/charmap.c:885
+#: locale/programs/charmap.c:875 locale/programs/charmap.c:886
#, c-format
msgid "unknown character `%s'"
msgstr "ukjent tegn «%s»"
-#: locale/programs/charmap.c:893
+#: locale/programs/charmap.c:894
#, c-format
msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d"
msgstr "antall bytes for bytesekvens på begynnelse og slutt av område er ikke de samme: %d mot %d"
-#: locale/programs/charmap.c:998 locale/programs/ld-collate.c:2893
+#: locale/programs/charmap.c:999 locale/programs/ld-collate.c:2893
#: locale/programs/repertoire.c:418
msgid "invalid names for character range"
msgstr "ulovlige navn for tegnområde"
-#: locale/programs/charmap.c:1010 locale/programs/repertoire.c:430
+#: locale/programs/charmap.c:1011 locale/programs/repertoire.c:430
msgid "hexadecimal range format should use only capital characters"
msgstr "heksadesimalt områdeformat skal bare bruke store bokstaver"
-#: locale/programs/charmap.c:1028 locale/programs/repertoire.c:448
+#: locale/programs/charmap.c:1029 locale/programs/repertoire.c:448
#, fuzzy, c-format
msgid "<%s> and <%s> are invalid names for range"
msgstr "<%s> og <%s> er ulovlige navn for tegnområde"
-#: locale/programs/charmap.c:1034 locale/programs/repertoire.c:455
+#: locale/programs/charmap.c:1035 locale/programs/repertoire.c:455
#, fuzzy
#| msgid "upper limit in range is not smaller then lower limit"
msgid "upper limit in range is smaller than lower limit"
msgstr "øvre grense i område er ikke mindre enn nedre grense"
-#: locale/programs/charmap.c:1092
+#: locale/programs/charmap.c:1093
msgid "resulting bytes for range not representable."
msgstr "resulterende bytes for område kan ikke representerbare"
@@ -1943,7 +1943,7 @@ msgid "%s: numeric country code `%d' not valid"
msgstr "%s: nummerisk landkode «%d» er ugyldig"
#: locale/programs/ld-address.c:432 locale/programs/ld-address.c:469
-#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2478
+#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2479
#: locale/programs/ld-identification.c:309
#: locale/programs/ld-measurement.c:196 locale/programs/ld-messages.c:264
#: locale/programs/ld-monetary.c:503 locale/programs/ld-monetary.c:538
@@ -1966,7 +1966,7 @@ msgid "%s: unknown character in field `%s'"
msgstr "%s: ukjent tegn i felt «%s»"
#: locale/programs/ld-address.c:521 locale/programs/ld-collate.c:3772
-#: locale/programs/ld-ctype.c:2826 locale/programs/ld-identification.c:394
+#: locale/programs/ld-ctype.c:2827 locale/programs/ld-identification.c:394
#: locale/programs/ld-measurement.c:210 locale/programs/ld-messages.c:293
#: locale/programs/ld-monetary.c:746 locale/programs/ld-name.c:260
#: locale/programs/ld-numeric.c:323 locale/programs/ld-paper.c:210
@@ -1979,8 +1979,8 @@ msgstr "%s: ugyldig «END»-linje"
#: locale/programs/ld-collate.c:602 locale/programs/ld-collate.c:898
#: locale/programs/ld-collate.c:911 locale/programs/ld-collate.c:2582
#: locale/programs/ld-collate.c:2603 locale/programs/ld-collate.c:3957
-#: locale/programs/ld-ctype.c:1846 locale/programs/ld-ctype.c:2104
-#: locale/programs/ld-ctype.c:2676 locale/programs/ld-ctype.c:2837
+#: locale/programs/ld-ctype.c:1847 locale/programs/ld-ctype.c:2105
+#: locale/programs/ld-ctype.c:2677 locale/programs/ld-ctype.c:2838
#: locale/programs/ld-identification.c:404
#: locale/programs/ld-measurement.c:220 locale/programs/ld-messages.c:302
#: locale/programs/ld-monetary.c:755 locale/programs/ld-name.c:269
@@ -2330,131 +2330,131 @@ msgstr "tegnkartet «%s» allerede definert"
msgid "implementation limit: no more than %d character maps allowed"
msgstr "implementasjonsbegrensning: ikke flere enn %d tegnkart tillatt"
-#: locale/programs/ld-ctype.c:1434 locale/programs/ld-ctype.c:1559
-#: locale/programs/ld-ctype.c:1665 locale/programs/ld-ctype.c:2341
-#: locale/programs/ld-ctype.c:3299
+#: locale/programs/ld-ctype.c:1435 locale/programs/ld-ctype.c:1560
+#: locale/programs/ld-ctype.c:1666 locale/programs/ld-ctype.c:2342
+#: locale/programs/ld-ctype.c:3302
#, c-format
msgid "%s: field `%s' does not contain exactly ten entries"
msgstr ""
-#: locale/programs/ld-ctype.c:1462 locale/programs/ld-ctype.c:2036
+#: locale/programs/ld-ctype.c:1463 locale/programs/ld-ctype.c:2037
#, c-format
msgid "to-value <U%0*X> of range is smaller than from-value <U%0*X>"
msgstr ""
-#: locale/programs/ld-ctype.c:1589
+#: locale/programs/ld-ctype.c:1590
msgid "start and end character sequence of range must have the same length"
msgstr ""
-#: locale/programs/ld-ctype.c:1596
+#: locale/programs/ld-ctype.c:1597
msgid "to-value character sequence is smaller than from-value sequence"
msgstr ""
-#: locale/programs/ld-ctype.c:1956 locale/programs/ld-ctype.c:2007
+#: locale/programs/ld-ctype.c:1957 locale/programs/ld-ctype.c:2008
#, fuzzy
msgid "premature end of `translit_ignore' definition"
msgstr "For tidlig slutt på regulært uttrykk"
-#: locale/programs/ld-ctype.c:1962 locale/programs/ld-ctype.c:2013
-#: locale/programs/ld-ctype.c:2055
+#: locale/programs/ld-ctype.c:1963 locale/programs/ld-ctype.c:2014
+#: locale/programs/ld-ctype.c:2056
#, fuzzy
msgid "syntax error"
msgstr "Systemfeil"
-#: locale/programs/ld-ctype.c:2188
+#: locale/programs/ld-ctype.c:2189
#, fuzzy, c-format
msgid "%s: syntax error in definition of new character class"
msgstr "syntaksfeil i definisjon av ny tegnklasse"
-#: locale/programs/ld-ctype.c:2203
+#: locale/programs/ld-ctype.c:2204
#, fuzzy, c-format
msgid "%s: syntax error in definition of new character map"
msgstr "syntaksfeil i definisjon av nytt tegnkart"
-#: locale/programs/ld-ctype.c:2363
+#: locale/programs/ld-ctype.c:2364
msgid "ellipsis range must be marked by two operands of same type"
msgstr ""
-#: locale/programs/ld-ctype.c:2372
+#: locale/programs/ld-ctype.c:2373
msgid "with symbolic name range values the absolute ellipsis `...' must not be used"
msgstr ""
-#: locale/programs/ld-ctype.c:2387
+#: locale/programs/ld-ctype.c:2388
msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'"
msgstr ""
-#: locale/programs/ld-ctype.c:2401
+#: locale/programs/ld-ctype.c:2402
msgid "with character code range values one must use the absolute ellipsis `...'"
msgstr ""
-#: locale/programs/ld-ctype.c:2552
+#: locale/programs/ld-ctype.c:2553
#, fuzzy, c-format
msgid "duplicated definition for mapping `%s'"
msgstr "duplisert definisjon av tegn «%.*s»"
-#: locale/programs/ld-ctype.c:2638 locale/programs/ld-ctype.c:2782
+#: locale/programs/ld-ctype.c:2639 locale/programs/ld-ctype.c:2783
#, c-format
msgid "%s: `translit_start' section does not end with `translit_end'"
msgstr ""
-#: locale/programs/ld-ctype.c:2733
+#: locale/programs/ld-ctype.c:2734
#, fuzzy, c-format
msgid "%s: duplicate `default_missing' definition"
msgstr "duplisert definition av sett"
-#: locale/programs/ld-ctype.c:2738
+#: locale/programs/ld-ctype.c:2739
msgid "previous definition was here"
msgstr ""
-#: locale/programs/ld-ctype.c:2760
+#: locale/programs/ld-ctype.c:2761
#, c-format
msgid "%s: no representable `default_missing' definition found"
msgstr ""
-#: locale/programs/ld-ctype.c:2877 locale/programs/ld-ctype.c:2973
-#: locale/programs/ld-ctype.c:2992 locale/programs/ld-ctype.c:3012
-#: locale/programs/ld-ctype.c:3032 locale/programs/ld-ctype.c:3052
-#: locale/programs/ld-ctype.c:3072 locale/programs/ld-ctype.c:3111
-#: locale/programs/ld-ctype.c:3131 locale/programs/ld-ctype.c:3195
-#: locale/programs/ld-ctype.c:3236 locale/programs/ld-ctype.c:3259
+#: locale/programs/ld-ctype.c:2878 locale/programs/ld-ctype.c:2974
+#: locale/programs/ld-ctype.c:2993 locale/programs/ld-ctype.c:3013
+#: locale/programs/ld-ctype.c:3033 locale/programs/ld-ctype.c:3053
+#: locale/programs/ld-ctype.c:3073 locale/programs/ld-ctype.c:3112
+#: locale/programs/ld-ctype.c:3132 locale/programs/ld-ctype.c:3198
+#: locale/programs/ld-ctype.c:3239 locale/programs/ld-ctype.c:3262
#, fuzzy, c-format
msgid "%s: character `%s' not defined while needed as default value"
msgstr "tegnet «%s» ikke definert, men behøves som standardverdi"
-#: locale/programs/ld-ctype.c:2882 locale/programs/ld-ctype.c:2978
-#: locale/programs/ld-ctype.c:2997 locale/programs/ld-ctype.c:3017
-#: locale/programs/ld-ctype.c:3037 locale/programs/ld-ctype.c:3057
-#: locale/programs/ld-ctype.c:3077 locale/programs/ld-ctype.c:3116
-#: locale/programs/ld-ctype.c:3136 locale/programs/ld-ctype.c:3200
+#: locale/programs/ld-ctype.c:2883 locale/programs/ld-ctype.c:2979
+#: locale/programs/ld-ctype.c:2998 locale/programs/ld-ctype.c:3018
+#: locale/programs/ld-ctype.c:3038 locale/programs/ld-ctype.c:3058
+#: locale/programs/ld-ctype.c:3078 locale/programs/ld-ctype.c:3117
+#: locale/programs/ld-ctype.c:3137 locale/programs/ld-ctype.c:3203
#, c-format
msgid "%s: character `%s' in charmap not representable with one byte"
msgstr ""
-#: locale/programs/ld-ctype.c:3242 locale/programs/ld-ctype.c:3265
+#: locale/programs/ld-ctype.c:3245 locale/programs/ld-ctype.c:3268
#, c-format
msgid "%s: character `%s' needed as default value not representable with one byte"
msgstr ""
-#: locale/programs/ld-ctype.c:3321
+#: locale/programs/ld-ctype.c:3324
msgid "no output digits defined and none of the standard names in the charmap"
msgstr ""
-#: locale/programs/ld-ctype.c:3570
+#: locale/programs/ld-ctype.c:3573
#, c-format
msgid "%s: transliteration data from locale `%s' not available"
msgstr ""
-#: locale/programs/ld-ctype.c:3669
+#: locale/programs/ld-ctype.c:3672
#, c-format
msgid "%s: table for class \"%s\": %lu bytes"
msgstr ""
-#: locale/programs/ld-ctype.c:3733
+#: locale/programs/ld-ctype.c:3736
#, fuzzy, c-format
msgid "%s: table for map \"%s\": %lu bytes"
msgstr "%s: kan ikke åpne "
-#: locale/programs/ld-ctype.c:3857
+#: locale/programs/ld-ctype.c:3860
#, c-format
msgid "%s: table for width: %lu bytes"
msgstr ""
@@ -2702,159 +2702,151 @@ msgstr ""
"NAVN\n"
"[-a|-m]"
-#: locale/programs/locale.c:190
-#, fuzzy, c-format
-#| msgid "cannot insert into result table"
-msgid "Cannot set LC_CTYPE to default locale"
-msgstr "kan ikke sette inn i resultattabell"
-
-#: locale/programs/locale.c:192
+#: locale/programs/locale.c:522
#, c-format
-msgid "Cannot set LC_MESSAGES to default locale"
-msgstr ""
-
-#: locale/programs/locale.c:205
-#, fuzzy, c-format
-#| msgid "cannot insert into result table"
-msgid "Cannot set LC_COLLATE to default locale"
-msgstr "kan ikke sette inn i resultattabell"
+msgid "while preparing output"
+msgstr "da utdata ble forberedt"
-#: locale/programs/locale.c:221
+#: locale/programs/locale.c:998
#, fuzzy, c-format
#| msgid "cannot insert into result table"
-msgid "Cannot set LC_ALL to default locale"
+msgid "Cannot set %s to default locale"
msgstr "kan ikke sette inn i resultattabell"
-#: locale/programs/locale.c:521
+#: locale/programs/locale.c:1096
#, c-format
-msgid "while preparing output"
-msgstr "da utdata ble forberedt"
+msgid "warning: The LOCPATH variable is set to \"%s\"\n"
+msgstr ""
-#: locale/programs/localedef.c:112
+#: locale/programs/localedef.c:116
msgid "Input Files:"
msgstr "Innfiler:"
-#: locale/programs/localedef.c:114
+#: locale/programs/localedef.c:118
msgid "Symbolic character names defined in FILE"
msgstr "Symbolske tegnnavn definert i FIL"
-#: locale/programs/localedef.c:116
+#: locale/programs/localedef.c:120
msgid "Source definitions are found in FILE"
msgstr "Kildedefinisjoner ikke funnet i FIL"
-#: locale/programs/localedef.c:118
+#: locale/programs/localedef.c:122
msgid "FILE contains mapping from symbolic names to UCS4 values"
msgstr "FIL inneholder mapping fra symbolske navn til UCS4-verdier"
-#: locale/programs/localedef.c:122
+#: locale/programs/localedef.c:126
msgid "Create output even if warning messages were issued"
msgstr "Lag utdata selv om advarsler ble gitt"
-#: locale/programs/localedef.c:123
+#: locale/programs/localedef.c:128
+msgid "Do not create hard links between installed locales"
+msgstr ""
+
+#: locale/programs/localedef.c:129
#, fuzzy
msgid "Optional output file prefix"
msgstr "kan ikke åpne utfil"
-#: locale/programs/localedef.c:124
+#: locale/programs/localedef.c:130
#, fuzzy
#| msgid "Be strictly POSIX conform"
msgid "Strictly conform to POSIX"
msgstr "Vær strengt POSIX-konform"
-#: locale/programs/localedef.c:126
+#: locale/programs/localedef.c:132
msgid "Suppress warnings and information messages"
msgstr "Undertrykk advarsler og informasjonsmeldinger"
-#: locale/programs/localedef.c:127
+#: locale/programs/localedef.c:133
msgid "Print more messages"
msgstr "Skriv flere meldinger"
-#: locale/programs/localedef.c:128 locale/programs/localedef.c:131
+#: locale/programs/localedef.c:134 locale/programs/localedef.c:137
msgid "<warnings>"
msgstr ""
-#: locale/programs/localedef.c:129
+#: locale/programs/localedef.c:135
msgid "Comma-separated list of warnings to disable; supported warnings are: ascii, intcurrsym"
msgstr ""
-#: locale/programs/localedef.c:132
+#: locale/programs/localedef.c:138
msgid "Comma-separated list of warnings to enable; supported warnings are: ascii, intcurrsym"
msgstr ""
-#: locale/programs/localedef.c:135
+#: locale/programs/localedef.c:141
msgid "Archive control:"
msgstr ""
-#: locale/programs/localedef.c:137
+#: locale/programs/localedef.c:143
msgid "Don't add new data to archive"
msgstr ""
-#: locale/programs/localedef.c:139
+#: locale/programs/localedef.c:145
msgid "Add locales named by parameters to archive"
msgstr ""
-#: locale/programs/localedef.c:140
+#: locale/programs/localedef.c:146
msgid "Replace existing archive content"
msgstr ""
-#: locale/programs/localedef.c:142
+#: locale/programs/localedef.c:148
msgid "Remove locales named by parameters from archive"
msgstr ""
-#: locale/programs/localedef.c:143
+#: locale/programs/localedef.c:149
msgid "List content of archive"
msgstr ""
-#: locale/programs/localedef.c:145
+#: locale/programs/localedef.c:151
msgid "locale.alias file to consult when making archive"
msgstr ""
-#: locale/programs/localedef.c:147
+#: locale/programs/localedef.c:153
msgid "Generate little-endian output"
msgstr ""
-#: locale/programs/localedef.c:149
+#: locale/programs/localedef.c:155
msgid "Generate big-endian output"
msgstr ""
-#: locale/programs/localedef.c:154
+#: locale/programs/localedef.c:160
msgid "Compile locale specification"
msgstr "Kompiler lokal-spesifikasjon"
-#: locale/programs/localedef.c:157
+#: locale/programs/localedef.c:163
msgid ""
"NAME\n"
"[--add-to-archive|--delete-from-archive] FILE...\n"
"--list-archive [FILE]"
msgstr ""
-#: locale/programs/localedef.c:232
+#: locale/programs/localedef.c:238
#, fuzzy, c-format
msgid "cannot create directory for output files"
msgstr "kan ikke åpne utfil"
-#: locale/programs/localedef.c:243
+#: locale/programs/localedef.c:249
msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
msgstr "FATALT: systemet definerer ikke «_POSIX2_LOCALEDEF»"
-#: locale/programs/localedef.c:257 locale/programs/localedef.c:273
-#: locale/programs/localedef.c:663 locale/programs/localedef.c:683
+#: locale/programs/localedef.c:263 locale/programs/localedef.c:279
+#: locale/programs/localedef.c:673 locale/programs/localedef.c:693
#, c-format
msgid "cannot open locale definition file `%s'"
msgstr "kan ikke åpne lokaledefinisjonsfil «%s»"
-#: locale/programs/localedef.c:297
+#: locale/programs/localedef.c:303
#, c-format
msgid "cannot write output files to `%s'"
msgstr "kan ikke skrive utfiler til «%s»"
-#: locale/programs/localedef.c:303
+#: locale/programs/localedef.c:309
#, fuzzy
#| msgid "no output file produced because warning were issued"
msgid "no output file produced because errors were issued"
msgstr "på grunn av advarsler ble ingen utfil opprettet"
-#: locale/programs/localedef.c:431
+#: locale/programs/localedef.c:441
#, fuzzy, c-format
msgid ""
"System's directory for character maps : %s\n"
@@ -2867,11 +2859,11 @@ msgstr ""
" lokal-sti: %s\n"
"%s"
-#: locale/programs/localedef.c:631
+#: locale/programs/localedef.c:641
msgid "circular dependencies between locale definitions"
msgstr ""
-#: locale/programs/localedef.c:637
+#: locale/programs/localedef.c:647
#, c-format
msgid "cannot add already read locale `%s' a second time"
msgstr ""
@@ -3028,26 +3020,26 @@ msgstr "kan ikke åpne utfil «%s» for kategori «%s»"
msgid "failure while writing data for category `%s'"
msgstr "feil ved skriving av data for kategori «%s»"
-#: locale/programs/locfile.c:917
+#: locale/programs/locfile.c:930
#, fuzzy, c-format
msgid "cannot create output file `%s' for category `%s'"
msgstr "kan ikke åpne utfil «%s» for kategori «%s»"
-#: locale/programs/locfile.c:953
+#: locale/programs/locfile.c:966
#, fuzzy
#| msgid "expect string argument for `copy'"
msgid "expecting string argument for `copy'"
msgstr "forventet strengargument for «copy»"
-#: locale/programs/locfile.c:957
+#: locale/programs/locfile.c:970
msgid "locale name should consist only of portable characters"
msgstr ""
-#: locale/programs/locfile.c:976
+#: locale/programs/locfile.c:989
msgid "no other keyword shall be specified when `copy' is used"
msgstr "ingen andre nøkkelord skal angis når «copy» brukes"
-#: locale/programs/locfile.c:990
+#: locale/programs/locfile.c:1003
#, c-format
msgid "`%1$s' definition does not end with `END %1$s'"
msgstr "«%1$s» definisjon slutter ikke med «END %1$s»"
@@ -3879,12 +3871,12 @@ msgstr "yp_update: kan ikke konvertere vert til nettnavn\n"
msgid "yp_update: cannot get server address\n"
msgstr "yp_update: kan ikke hente tjeneradresse\n"
-#: nscd/aicache.c:83 nscd/hstcache.c:452
+#: nscd/aicache.c:82 nscd/hstcache.c:452
#, c-format
msgid "Haven't found \"%s\" in hosts cache!"
msgstr "Har ikke funnet «%s» i verts-nærbuffer!"
-#: nscd/aicache.c:85 nscd/hstcache.c:454
+#: nscd/aicache.c:84 nscd/hstcache.c:454
#, fuzzy, c-format
#| msgid "Haven't found \"%s\" in hosts cache!"
msgid "Reloading \"%s\" in hosts cache!"
@@ -4221,25 +4213,25 @@ msgstr ""
msgid "no more memory for database '%s'"
msgstr "Ingen flere poster i tabellen"
-#: nscd/netgroupcache.c:121
+#: nscd/netgroupcache.c:122
#, fuzzy, c-format
#| msgid "Haven't found \"%s\" in group cache!"
msgid "Haven't found \"%s\" in netgroup cache!"
msgstr "Har ikke funnet «%s» i gruppe-nærbuffer!"
-#: nscd/netgroupcache.c:123
+#: nscd/netgroupcache.c:124
#, fuzzy, c-format
#| msgid "Haven't found \"%s\" in group cache!"
msgid "Reloading \"%s\" in netgroup cache!"
msgstr "Har ikke funnet «%s» i gruppe-nærbuffer!"
-#: nscd/netgroupcache.c:469
+#: nscd/netgroupcache.c:470
#, fuzzy, c-format
#| msgid "Haven't found \"%s\" in group cache!"
msgid "Haven't found \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr "Har ikke funnet «%s» i gruppe-nærbuffer!"
-#: nscd/netgroupcache.c:472
+#: nscd/netgroupcache.c:473
#, fuzzy, c-format
#| msgid "Haven't found \"%s\" in group cache!"
msgid "Reloading \"%s (%s,%s,%s)\" in netgroup cache!"
@@ -4298,7 +4290,7 @@ msgstr ""
msgid "Name Service Cache Daemon."
msgstr "Demon for buffring av navnetjeneste"
-#: nscd/nscd.c:155 nss/getent.c:967 nss/makedb.c:206
+#: nscd/nscd.c:155 nss/getent.c:987 nss/makedb.c:206
#, c-format
msgid "wrong number of arguments"
msgstr "feil antall argumenter"
@@ -4409,27 +4401,27 @@ msgstr "Feil under tolkning: %s"
msgid "Must specify user name for server-user option"
msgstr ""
-#: nscd/nscd_conf.c:198
+#: nscd/nscd_conf.c:201
#, c-format
msgid "Must specify user name for stat-user option"
msgstr ""
-#: nscd/nscd_conf.c:255
+#: nscd/nscd_conf.c:259
#, c-format
msgid "Must specify value for restart-interval option"
msgstr ""
-#: nscd/nscd_conf.c:269
+#: nscd/nscd_conf.c:273
#, c-format
msgid "Unknown option: %s %s %s"
msgstr "Ukjent flagg: %s %s %s"
-#: nscd/nscd_conf.c:282
+#: nscd/nscd_conf.c:286
#, c-format
msgid "cannot get current working directory: %s; disabling paranoia mode"
msgstr ""
-#: nscd/nscd_conf.c:302
+#: nscd/nscd_conf.c:306
#, c-format
msgid "maximum file size for %s database too small"
msgstr ""
@@ -4689,51 +4681,51 @@ msgstr "Har ikke funnet «%s» i verts-nærbuffer!"
msgid "Reloading \"%s\" in services cache!"
msgstr "Har ikke funnet «%s» i verts-nærbuffer!"
-#: nss/getent.c:54
+#: nss/getent.c:55
msgid "database [key ...]"
msgstr "database [nøkkel ...]"
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "CONFIG"
msgstr ""
-#: nss/getent.c:59
+#: nss/getent.c:60
#, fuzzy
msgid "Service configuration to be used"
msgstr "Skriv ut nåværende konfigurasjonsstatistikk"
-#: nss/getent.c:60
+#: nss/getent.c:61
msgid "disable IDN encoding"
msgstr ""
-#: nss/getent.c:65
+#: nss/getent.c:66
#, fuzzy
#| msgid "getent - get entries from administrative database."
msgid "Get entries from administrative database."
msgstr "getent - hent innslag fra administrativ database."
-#: nss/getent.c:149 nss/getent.c:442 nss/getent.c:489
+#: nss/getent.c:150 nss/getent.c:462 nss/getent.c:509
#, fuzzy, c-format
msgid "Enumeration not supported on %s\n"
msgstr "Operasjonen er ikke støttet"
-#: nss/getent.c:497 nss/getent.c:510
+#: nss/getent.c:517 nss/getent.c:530
#, fuzzy, c-format
#| msgid "Could not create log file \"%s\""
msgid "Could not allocate group list: %m\n"
msgstr "Kunne ikke opprette loggfil «%s»"
-#: nss/getent.c:881
+#: nss/getent.c:901
#, fuzzy, c-format
#| msgid "Unknown database: %s\n"
msgid "Unknown database name"
msgstr "Ukjent database: %s\n"
-#: nss/getent.c:911
+#: nss/getent.c:931
msgid "Supported databases:\n"
msgstr ""
-#: nss/getent.c:977
+#: nss/getent.c:997
#, c-format
msgid "Unknown database: %s\n"
msgstr "Ukjent database: %s\n"
@@ -4998,11 +4990,11 @@ msgstr "Regulært uttrykk for stort"
msgid "Unmatched ) or \\)"
msgstr "Ubalansert ) eller \\)"
-#: posix/regcomp.c:689
+#: posix/regcomp.c:676
msgid "No previous regular expression"
msgstr "Intet foregående regulært uttrykk"
-#: posix/wordexp.c:1815
+#: posix/wordexp.c:1816
msgid "parameter null or not set"
msgstr ""
@@ -5224,7 +5216,7 @@ msgstr "Ikke mer buffer-plass tilgjengelig"
msgid "Input message available"
msgstr "Ikke mer buffer-plass tilgjengelig"
-#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:381 timezone/zic.c:520
+#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:375 timezone/zic.c:561
#, fuzzy
msgid "I/O error"
msgstr "I/O-feil på fjern maskin"
@@ -5315,7 +5307,7 @@ msgstr "Ukjent signal %d"
#: sunrpc/auth_unix.c:112 sunrpc/clnt_tcp.c:124 sunrpc/clnt_udp.c:139
#: sunrpc/clnt_unix.c:125 sunrpc/svc_tcp.c:189 sunrpc/svc_tcp.c:233
#: sunrpc/svc_udp.c:161 sunrpc/svc_unix.c:189 sunrpc/svc_unix.c:229
-#: sunrpc/xdr.c:628 sunrpc/xdr.c:788 sunrpc/xdr_array.c:102
+#: sunrpc/xdr.c:631 sunrpc/xdr.c:791 sunrpc/xdr_array.c:102
#: sunrpc/xdr_rec.c:153 sunrpc/xdr_ref.c:79
#, fuzzy
msgid "out of memory\n"
@@ -6587,56 +6579,69 @@ msgid "You really blew it this time"
msgstr "Denne gangen rotet du det virkelig til"
#. TRANS Go home and have a glass of warm, dairy-fresh milk.
-#: sysdeps/gnu/errlist.c:978
+#. TRANS @c Okay. Since you are dying to know, I'll tell you.
+#. TRANS @c This is a joke, obviously. There is a children's song which begins,
+#. TRANS @c "Old McDonald had a farm, e-i-e-i-o." Every time I see the (real)
+#. TRANS @c errno macro EIO, I think about that song. Probably most of my
+#. TRANS @c compatriots who program on Unix do, too. One of them must have stayed
+#. TRANS @c up a little too late one night and decided to add it to Hurd or Glibc.
+#. TRANS @c Whoever did it should be castigated, but it made me laugh.
+#. TRANS @c --jtobey@channel1.com
+#. TRANS @c
+#. TRANS @c "bought the farm" means "died". -jtobey
+#. TRANS @c
+#. TRANS @c Translators, please do not translate this litteraly, translate it into
+#. TRANS @c an idiomatic funny way of saying that the computer died.
+#: sysdeps/gnu/errlist.c:991
msgid "Computer bought the farm"
msgstr "Datamaskinen tok ferie"
#. TRANS This error code has no purpose.
-#: sysdeps/gnu/errlist.c:987
+#: sysdeps/gnu/errlist.c:1000
msgid "Gratuitous error"
msgstr "Umotivert feil"
-#: sysdeps/gnu/errlist.c:995
+#: sysdeps/gnu/errlist.c:1008
msgid "Bad message"
msgstr "Ugyldig melding"
-#: sysdeps/gnu/errlist.c:1003
+#: sysdeps/gnu/errlist.c:1016
msgid "Identifier removed"
msgstr "Identifikator tatt bort"
-#: sysdeps/gnu/errlist.c:1011
+#: sysdeps/gnu/errlist.c:1024
msgid "Multihop attempted"
msgstr "Forsøkte viderehopp"
-#: sysdeps/gnu/errlist.c:1019
+#: sysdeps/gnu/errlist.c:1032
msgid "No data available"
msgstr "Ingen data er tilgjengelige"
-#: sysdeps/gnu/errlist.c:1027
+#: sysdeps/gnu/errlist.c:1040
msgid "Link has been severed"
msgstr "Linken har blitt skadet"
-#: sysdeps/gnu/errlist.c:1035
+#: sysdeps/gnu/errlist.c:1048
msgid "No message of desired type"
msgstr "Ingen meldinger av ønsket type"
-#: sysdeps/gnu/errlist.c:1043
+#: sysdeps/gnu/errlist.c:1056
msgid "Out of streams resources"
msgstr "Ikke flere streams-ressurser"
-#: sysdeps/gnu/errlist.c:1051
+#: sysdeps/gnu/errlist.c:1064
msgid "Device not a stream"
msgstr "Enheten er ikke en stream"
-#: sysdeps/gnu/errlist.c:1059
+#: sysdeps/gnu/errlist.c:1072
msgid "Value too large for defined data type"
msgstr "Verdien er for stor for den definerte datatypen"
-#: sysdeps/gnu/errlist.c:1067
+#: sysdeps/gnu/errlist.c:1080
msgid "Protocol error"
msgstr "Protokollfeil"
-#: sysdeps/gnu/errlist.c:1075
+#: sysdeps/gnu/errlist.c:1088
msgid "Timer expired"
msgstr "Tidsgrense løp ut"
@@ -6644,203 +6649,203 @@ msgstr "Tidsgrense løp ut"
#. TRANS completed. @xref{Asynchronous I/O}. When you call @code{aio_cancel},
#. TRANS the normal result is for the operations affected to complete with this
#. TRANS error; @pxref{Cancel AIO Operations}.
-#: sysdeps/gnu/errlist.c:1087
+#: sysdeps/gnu/errlist.c:1100
#, fuzzy
msgid "Operation canceled"
msgstr "Operasjonen er ikke tillatt"
-#: sysdeps/gnu/errlist.c:1095
+#: sysdeps/gnu/errlist.c:1108
msgid "Owner died"
msgstr ""
-#: sysdeps/gnu/errlist.c:1103
+#: sysdeps/gnu/errlist.c:1116
msgid "State not recoverable"
msgstr ""
-#: sysdeps/gnu/errlist.c:1111
+#: sysdeps/gnu/errlist.c:1124
msgid "Interrupted system call should be restarted"
msgstr "Avbrutt systemkall burde startes om"
-#: sysdeps/gnu/errlist.c:1119
+#: sysdeps/gnu/errlist.c:1132
msgid "Channel number out of range"
msgstr "Kanalnummer utenfor gyldig intervall"
-#: sysdeps/gnu/errlist.c:1127
+#: sysdeps/gnu/errlist.c:1140
msgid "Level 2 not synchronized"
msgstr "Nivå 2 ikke synkronisert"
-#: sysdeps/gnu/errlist.c:1135
+#: sysdeps/gnu/errlist.c:1148
msgid "Level 3 halted"
msgstr "Nivå 3 stoppet"
-#: sysdeps/gnu/errlist.c:1143
+#: sysdeps/gnu/errlist.c:1156
msgid "Level 3 reset"
msgstr "Nivå 3 startet om"
-#: sysdeps/gnu/errlist.c:1151
+#: sysdeps/gnu/errlist.c:1164
msgid "Link number out of range"
msgstr "Linknummer utenfor gyldig område"
-#: sysdeps/gnu/errlist.c:1159
+#: sysdeps/gnu/errlist.c:1172
msgid "Protocol driver not attached"
msgstr "Protokolldriver er ikke tilkoblet"
-#: sysdeps/gnu/errlist.c:1167
+#: sysdeps/gnu/errlist.c:1180
msgid "No CSI structure available"
msgstr "Ingen CSI-strukturer tilgjengelige"
-#: sysdeps/gnu/errlist.c:1175
+#: sysdeps/gnu/errlist.c:1188
msgid "Level 2 halted"
msgstr "Nivå 2 stoppet"
-#: sysdeps/gnu/errlist.c:1183
+#: sysdeps/gnu/errlist.c:1196
msgid "Invalid exchange"
msgstr "Ugyldig veksel"
-#: sysdeps/gnu/errlist.c:1191
+#: sysdeps/gnu/errlist.c:1204
msgid "Invalid request descriptor"
msgstr "Ugyldig forespørseldeskriptor"
-#: sysdeps/gnu/errlist.c:1199
+#: sysdeps/gnu/errlist.c:1212
msgid "Exchange full"
msgstr "Veksel full"
-#: sysdeps/gnu/errlist.c:1207
+#: sysdeps/gnu/errlist.c:1220
msgid "No anode"
msgstr "Ingen anode"
-#: sysdeps/gnu/errlist.c:1215
+#: sysdeps/gnu/errlist.c:1228
msgid "Invalid request code"
msgstr "Ugyldig tilgangskode"
-#: sysdeps/gnu/errlist.c:1223
+#: sysdeps/gnu/errlist.c:1236
msgid "Invalid slot"
msgstr "Ugyldig plass"
-#: sysdeps/gnu/errlist.c:1231
+#: sysdeps/gnu/errlist.c:1244
msgid "File locking deadlock error"
msgstr "Fillåsing feilet på grunn av vranglås"
-#: sysdeps/gnu/errlist.c:1239
+#: sysdeps/gnu/errlist.c:1252
msgid "Bad font file format"
msgstr "Ugyldig format på typesnittsfil"
-#: sysdeps/gnu/errlist.c:1247
+#: sysdeps/gnu/errlist.c:1260
msgid "Machine is not on the network"
msgstr "Maskinen er ikke på nettverket"
-#: sysdeps/gnu/errlist.c:1255
+#: sysdeps/gnu/errlist.c:1268
msgid "Package not installed"
msgstr "Pakken er ikke installert"
-#: sysdeps/gnu/errlist.c:1263
+#: sysdeps/gnu/errlist.c:1276
msgid "Advertise error"
msgstr "Annonseringsfeil"
-#: sysdeps/gnu/errlist.c:1271
+#: sysdeps/gnu/errlist.c:1284
msgid "Srmount error"
msgstr "Srmount-feil"
-#: sysdeps/gnu/errlist.c:1279
+#: sysdeps/gnu/errlist.c:1292
msgid "Communication error on send"
msgstr "Kommunikasjonsfeil ved sending"
-#: sysdeps/gnu/errlist.c:1287
+#: sysdeps/gnu/errlist.c:1300
msgid "RFS specific error"
msgstr "RFS-spesifikk feil"
-#: sysdeps/gnu/errlist.c:1295
+#: sysdeps/gnu/errlist.c:1308
msgid "Name not unique on network"
msgstr "Navnet er ikke unikt på nettverket"
-#: sysdeps/gnu/errlist.c:1303
+#: sysdeps/gnu/errlist.c:1316
msgid "File descriptor in bad state"
msgstr "Fildeskriptor i ugyldig tilstand"
-#: sysdeps/gnu/errlist.c:1311
+#: sysdeps/gnu/errlist.c:1324
msgid "Remote address changed"
msgstr "Fjernadresse endret"
-#: sysdeps/gnu/errlist.c:1319
+#: sysdeps/gnu/errlist.c:1332
msgid "Can not access a needed shared library"
msgstr "Kan ikke aksessere et nødvendig delt bibliotek"
-#: sysdeps/gnu/errlist.c:1327
+#: sysdeps/gnu/errlist.c:1340
msgid "Accessing a corrupted shared library"
msgstr "Aksesserer et skadet delt bibliotek"
-#: sysdeps/gnu/errlist.c:1335
+#: sysdeps/gnu/errlist.c:1348
msgid ".lib section in a.out corrupted"
msgstr ".lib-seksjon i a.out skadet"
-#: sysdeps/gnu/errlist.c:1343
+#: sysdeps/gnu/errlist.c:1356
msgid "Attempting to link in too many shared libraries"
msgstr "Forsøker å linke inn for mange delte biblioteker"
-#: sysdeps/gnu/errlist.c:1351
+#: sysdeps/gnu/errlist.c:1364
msgid "Cannot exec a shared library directly"
msgstr "Kan ikke eksekvere et delt bibliotek direkte"
-#: sysdeps/gnu/errlist.c:1359
+#: sysdeps/gnu/errlist.c:1372
msgid "Streams pipe error"
msgstr "Streams-rørfeil"
-#: sysdeps/gnu/errlist.c:1367
+#: sysdeps/gnu/errlist.c:1380
msgid "Structure needs cleaning"
msgstr "Strukturen trenger opprydding"
-#: sysdeps/gnu/errlist.c:1375
+#: sysdeps/gnu/errlist.c:1388
msgid "Not a XENIX named type file"
msgstr "Ikke en XENIX navngitt fil"
-#: sysdeps/gnu/errlist.c:1383
+#: sysdeps/gnu/errlist.c:1396
msgid "No XENIX semaphores available"
msgstr "Ingen XENIX-semaforer tilgjengelige"
-#: sysdeps/gnu/errlist.c:1391
+#: sysdeps/gnu/errlist.c:1404
msgid "Is a named type file"
msgstr "Er en navngitt filtype"
-#: sysdeps/gnu/errlist.c:1399
+#: sysdeps/gnu/errlist.c:1412
msgid "Remote I/O error"
msgstr "I/O-feil på fjern maskin"
-#: sysdeps/gnu/errlist.c:1407
+#: sysdeps/gnu/errlist.c:1420
msgid "No medium found"
msgstr "Medium ikke funnet"
-#: sysdeps/gnu/errlist.c:1415
+#: sysdeps/gnu/errlist.c:1428
msgid "Wrong medium type"
msgstr "Gal mediatype"
-#: sysdeps/gnu/errlist.c:1423
+#: sysdeps/gnu/errlist.c:1436
#, fuzzy
#| msgid "Resource temporarily unavailable"
msgid "Required key not available"
msgstr "Ressursen midlertidig utilgjengelig"
-#: sysdeps/gnu/errlist.c:1431
+#: sysdeps/gnu/errlist.c:1444
#, fuzzy
#| msgid "Timer expired"
msgid "Key has expired"
msgstr "Tidsgrense løp ut"
-#: sysdeps/gnu/errlist.c:1439
+#: sysdeps/gnu/errlist.c:1452
#, fuzzy
#| msgid "Link has been severed"
msgid "Key has been revoked"
msgstr "Linken har blitt skadet"
-#: sysdeps/gnu/errlist.c:1447
+#: sysdeps/gnu/errlist.c:1460
msgid "Key was rejected by service"
msgstr ""
-#: sysdeps/gnu/errlist.c:1455
+#: sysdeps/gnu/errlist.c:1468
#, fuzzy
msgid "Operation not possible due to RF-kill"
msgstr "Operasjonen er ikke tillatt"
-#: sysdeps/gnu/errlist.c:1463
+#: sysdeps/gnu/errlist.c:1476
msgid "Memory page has hardware error"
msgstr ""
@@ -6971,27 +6976,27 @@ msgstr ""
msgid "can't disable CET"
msgstr ""
-#: timezone/zdump.c:338
+#: timezone/zdump.c:332
msgid "has fewer than 3 characters"
msgstr ""
-#: timezone/zdump.c:340
+#: timezone/zdump.c:334
msgid "has more than 6 characters"
msgstr ""
-#: timezone/zdump.c:342
+#: timezone/zdump.c:336
msgid "has characters other than ASCII alphanumerics, '-' or '+'"
msgstr ""
-#: timezone/zdump.c:347
+#: timezone/zdump.c:341
#, c-format
msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n"
msgstr ""
-#: timezone/zdump.c:393
+#: timezone/zdump.c:387
#, c-format
msgid ""
-"%s: usage: %s OPTIONS ZONENAME ...\n"
+"%s: usage: %s OPTIONS TIMEZONE ...\n"
"Options include:\n"
" -c [L,]U Start at year L (default -500), end before year U (default 2500)\n"
" -t [L,]U Start at time L, end before time U (in seconds since 1970)\n"
@@ -7004,458 +7009,485 @@ msgid ""
"Report bugs to %s.\n"
msgstr ""
-#: timezone/zdump.c:479
+#: timezone/zdump.c:473
#, fuzzy, c-format
#| msgid "%s: Too many arguments\n"
msgid "%s: wild -c argument %s\n"
msgstr "%s: For mange argumenter\n"
-#: timezone/zdump.c:512
+#: timezone/zdump.c:506
#, fuzzy, c-format
#| msgid "%s: Too many arguments\n"
msgid "%s: wild -t argument %s\n"
msgstr "%s: For mange argumenter\n"
-#: timezone/zic.c:398
+#: timezone/zic.c:429
#, c-format
msgid "%s: Memory exhausted: %s\n"
msgstr "%s: Minnet oppbrukt: %s\n"
-#: timezone/zic.c:406
+#: timezone/zic.c:437
#, fuzzy
#| msgid "time overflow"
msgid "size overflow"
msgstr "for stor tidsverdi"
-#: timezone/zic.c:454
+#: timezone/zic.c:447
+#, fuzzy
+#| msgid "time overflow"
+msgid "alignment overflow"
+msgstr "for stor tidsverdi"
+
+#: timezone/zic.c:495
#, fuzzy
#| msgid "time overflow"
msgid "integer overflow"
msgstr "for stor tidsverdi"
-#: timezone/zic.c:488
+#: timezone/zic.c:529
#, fuzzy, c-format
#| msgid "\"%s\", line %d: %s"
msgid "\"%s\", line %<PRIdMAX>: "
msgstr "«%s», linje %d: %s"
-#: timezone/zic.c:491
+#: timezone/zic.c:532
#, fuzzy, c-format
#| msgid " (rule from \"%s\", line %d)"
msgid " (rule from \"%s\", line %<PRIdMAX>)"
msgstr " (regel fra «%s», linje %d)"
-#: timezone/zic.c:510
+#: timezone/zic.c:551
#, c-format
msgid "warning: "
msgstr ""
-#: timezone/zic.c:535
+#: timezone/zic.c:576
#, fuzzy, c-format
msgid ""
"%s: usage is %s [ --version ] [ --help ] [ -v ] \\\n"
"\t[ -l localtime ] [ -p posixrules ] [ -d directory ] \\\n"
-"\t[ -L leapseconds ] [ filename ... ]\n"
+"\t[ -t localtime-link ] [ -L leapseconds ] [ filename ... ]\n"
"\n"
"Report bugs to %s.\n"
msgstr ""
"%s: bruk er %s [ -s ] [ -v ] [ -l lokaltid ] [ -p posixregler ] [ -d katalog ]\n"
"\t[ -L skuddsekunder ] [ -y årkontrollprogram ] [ filnavn ... ]\n"
-#: timezone/zic.c:558
+#: timezone/zic.c:599
#, fuzzy, c-format
#| msgid "%s: Can't create %s: %s\n"
msgid "%s: Can't chdir to %s: %s\n"
msgstr "%s: Kan ikke opprette %s: %s\n"
-#: timezone/zic.c:590
+#: timezone/zic.c:632
msgid "wild compilation-time specification of zic_t"
msgstr ""
-#: timezone/zic.c:610
+#: timezone/zic.c:652
#, c-format
msgid "%s: More than one -d option specified\n"
msgstr "%s: Mer enn ett -d-flagg spesifisert\n"
-#: timezone/zic.c:620
+#: timezone/zic.c:662
#, c-format
msgid "%s: More than one -l option specified\n"
msgstr "%s: Mer enn ett -l-flagg spesifisert\n"
-#: timezone/zic.c:630
+#: timezone/zic.c:672
#, c-format
msgid "%s: More than one -p option specified\n"
msgstr "%s: Mer enn ett -p-flagg spesifisert\n"
-#: timezone/zic.c:640
+#: timezone/zic.c:680
+#, fuzzy, c-format
+#| msgid "%s: More than one -d option specified\n"
+msgid "%s: More than one -t option specified\n"
+msgstr "%s: Mer enn ett -d-flagg spesifisert\n"
+
+#: timezone/zic.c:689
+msgid "-y is obsolescent"
+msgstr ""
+
+#: timezone/zic.c:693
#, c-format
msgid "%s: More than one -y option specified\n"
msgstr "%s: Mer enn ett -y-flagg spesifisert\n"
-#: timezone/zic.c:650
+#: timezone/zic.c:703
#, c-format
msgid "%s: More than one -L option specified\n"
msgstr "%s: Mer enn ett -L-flagg spesifisert\n"
-#: timezone/zic.c:659
+#: timezone/zic.c:712
msgid "-s ignored"
msgstr ""
-#: timezone/zic.c:698
+#: timezone/zic.c:753
msgid "link to link"
msgstr ""
-#: timezone/zic.c:701 timezone/zic.c:705
+#: timezone/zic.c:756 timezone/zic.c:760
#, fuzzy
#| msgid "Too many links"
msgid "command line"
msgstr "For mange linker"
-#: timezone/zic.c:721
+#: timezone/zic.c:776
#, fuzzy
msgid "empty file name"
msgstr "Ugyldig fildeskriptor"
-#: timezone/zic.c:724
+#: timezone/zic.c:779
#, c-format
msgid "file name '%s' begins with '/'"
msgstr ""
-#: timezone/zic.c:734
+#: timezone/zic.c:789
#, c-format
msgid "file name '%s' contains '%.*s' component"
msgstr ""
-#: timezone/zic.c:740
+#: timezone/zic.c:795
#, c-format
msgid "file name '%s' component contains leading '-'"
msgstr ""
-#: timezone/zic.c:743
+#: timezone/zic.c:798
#, c-format
msgid "file name '%s' contains overlength component '%.*s...'"
msgstr ""
-#: timezone/zic.c:771
+#: timezone/zic.c:826
#, c-format
msgid "file name '%s' contains byte '%c'"
msgstr ""
-#: timezone/zic.c:772
+#: timezone/zic.c:827
#, c-format
msgid "file name '%s' contains byte '\\%o'"
msgstr ""
-#: timezone/zic.c:842
+#: timezone/zic.c:897
#, fuzzy, c-format
#| msgid "%s: Can't link from %s to %s: %s\n"
msgid "%s: link from %s/%s failed: %s\n"
msgstr "%s: Kan ikke opprette link fra %s til %s: %s\n"
-#: timezone/zic.c:852 timezone/zic.c:1815
+#: timezone/zic.c:907 timezone/zic.c:1876
#, fuzzy, c-format
#| msgid "%s: Can't remove %s: %s\n"
msgid "%s: Can't remove %s/%s: %s\n"
msgstr "%s: Kan ikke fjerne %s: %s\n"
-#: timezone/zic.c:874
+#: timezone/zic.c:931
#, c-format
msgid "symbolic link used because hard link failed: %s"
msgstr ""
-#: timezone/zic.c:882
+#: timezone/zic.c:939
#, fuzzy, c-format
#| msgid "%s: Can't create %s: %s\n"
msgid "%s: Can't read %s/%s: %s\n"
msgstr "%s: Kan ikke opprette %s: %s\n"
-#: timezone/zic.c:889 timezone/zic.c:1828
+#: timezone/zic.c:946 timezone/zic.c:1889
#, fuzzy, c-format
#| msgid "%s: Can't create %s: %s\n"
msgid "%s: Can't create %s/%s: %s\n"
msgstr "%s: Kan ikke opprette %s: %s\n"
-#: timezone/zic.c:898
+#: timezone/zic.c:955
#, c-format
msgid "copy used because hard link failed: %s"
msgstr ""
-#: timezone/zic.c:901
+#: timezone/zic.c:958
#, c-format
msgid "copy used because symbolic link failed: %s"
msgstr ""
-#: timezone/zic.c:1013 timezone/zic.c:1015
+#: timezone/zic.c:1032 timezone/zic.c:1034
msgid "same rule name in multiple files"
msgstr "samme regel i flere filer"
-#: timezone/zic.c:1056
-msgid "unruly zone"
-msgstr "vanskelig sone"
-
-#: timezone/zic.c:1063
+#: timezone/zic.c:1081
#, c-format
msgid "%s in ruleless zone"
msgstr "%s i sone uten regel"
-#: timezone/zic.c:1083
+#: timezone/zic.c:1101
msgid "standard input"
msgstr "standard innkanal"
-#: timezone/zic.c:1088
+#: timezone/zic.c:1106
#, c-format
msgid "%s: Can't open %s: %s\n"
msgstr "%s: Kan ikke åpne %s: %s\n"
-#: timezone/zic.c:1099
+#: timezone/zic.c:1117
msgid "line too long"
msgstr "for lang linje"
-#: timezone/zic.c:1119
+#: timezone/zic.c:1139
msgid "input line of unknown type"
msgstr "innlinje av ukjent type"
-#: timezone/zic.c:1134
-#, fuzzy, c-format
-#| msgid "%s: Leap line in non leap seconds file %s\n"
-msgid "%s: Leap line in non leap seconds file %s"
-msgstr "%s: «Leap»-linje i fil %s som ikke er skuddsekundsfil\n"
-
-#: timezone/zic.c:1142 timezone/zic.c:1547 timezone/zic.c:1569
+#: timezone/zic.c:1158 timezone/zic.c:1593 timezone/zic.c:1615
#, c-format
msgid "%s: panic: Invalid l_value %d\n"
msgstr "%s: panikk: ugyldig l_value %d\n"
-#: timezone/zic.c:1151
+#: timezone/zic.c:1167
msgid "expected continuation line not found"
msgstr "forventet fortsettelseslinje ikke funnet"
-#: timezone/zic.c:1193 timezone/zic.c:2976
+#: timezone/zic.c:1203
+msgid "fractional seconds rejected by pre-2018 versions of zic"
+msgstr ""
+
+#: timezone/zic.c:1221 timezone/zic.c:3078
msgid "time overflow"
msgstr "for stor tidsverdi"
-#: timezone/zic.c:1198
+#: timezone/zic.c:1227
msgid "values over 24 hours not handled by pre-2007 versions of zic"
msgstr ""
-#: timezone/zic.c:1209
+#: timezone/zic.c:1245
+msgid "invalid saved time"
+msgstr "ugyldig lagret tid"
+
+#: timezone/zic.c:1256
msgid "wrong number of fields on Rule line"
msgstr "feil antall felt på «Rule»-linje"
-#: timezone/zic.c:1213
-msgid "nameless rule"
-msgstr "navnløs regel"
-
-#: timezone/zic.c:1218
-msgid "invalid saved time"
-msgstr "ugyldig lagret tid"
+#: timezone/zic.c:1265
+#, fuzzy, c-format
+#| msgid "Invalid argument"
+msgid "Invalid rule name \"%s\""
+msgstr "Ugyldig argument"
-#: timezone/zic.c:1235
+#: timezone/zic.c:1287
msgid "wrong number of fields on Zone line"
msgstr "feil antall felt på «Zone»-linje"
-#: timezone/zic.c:1240
+#: timezone/zic.c:1292
#, c-format
msgid "\"Zone %s\" line and -l option are mutually exclusive"
msgstr "«Zone %s»-linje og flagget -l utelukker hverandre"
-#: timezone/zic.c:1246
+#: timezone/zic.c:1298
#, c-format
msgid "\"Zone %s\" line and -p option are mutually exclusive"
msgstr "«Zone %s»-linje og flagget -p utelukker hverandre"
-#: timezone/zic.c:1253
+#: timezone/zic.c:1305
#, fuzzy, c-format
#| msgid "duplicate zone name %s (file \"%s\", line %d)"
msgid "duplicate zone name %s (file \"%s\", line %<PRIdMAX>)"
msgstr "duplisert sonenavn %s (fil «%s», linje %d)"
-#: timezone/zic.c:1267
+#: timezone/zic.c:1319
msgid "wrong number of fields on Zone continuation line"
msgstr "feil antall felt på «Zone»-fortsettelseslinje"
-#: timezone/zic.c:1307
+#: timezone/zic.c:1359
#, fuzzy
#| msgid "invalid UTC offset"
msgid "invalid UT offset"
msgstr "ugyldig UTC-forskyvning"
-#: timezone/zic.c:1311
+#: timezone/zic.c:1363
msgid "invalid abbreviation format"
msgstr "ugyldig forkortningsformat"
-#: timezone/zic.c:1320
+#: timezone/zic.c:1372
#, c-format
msgid "format '%s' not handled by pre-2015 versions of zic"
msgstr ""
-#: timezone/zic.c:1347
+#: timezone/zic.c:1399
msgid "Zone continuation line end time is not after end time of previous line"
msgstr "Sluttiden på fortsetningslinjen til en sone kommer før sluttiden på foregående linje"
-#: timezone/zic.c:1374
+#: timezone/zic.c:1426
msgid "wrong number of fields on Leap line"
msgstr "feil antall felt på «Leap»-linje"
-#: timezone/zic.c:1383
+#: timezone/zic.c:1435
msgid "invalid leaping year"
msgstr "ugyldig skuddår"
-#: timezone/zic.c:1403 timezone/zic.c:1501
+#: timezone/zic.c:1455 timezone/zic.c:1547
msgid "invalid month name"
msgstr "ugyldig månedsnavn"
-#: timezone/zic.c:1416 timezone/zic.c:1614 timezone/zic.c:1628
+#: timezone/zic.c:1468 timezone/zic.c:1663 timezone/zic.c:1677
msgid "invalid day of month"
msgstr "ugyldig dag i måneden"
-#: timezone/zic.c:1421
+#: timezone/zic.c:1473
msgid "time too small"
msgstr ""
-#: timezone/zic.c:1425
+#: timezone/zic.c:1477
#, fuzzy
#| msgid "File too large"
msgid "time too large"
msgstr "For stor fil"
-#: timezone/zic.c:1429 timezone/zic.c:1530
+#: timezone/zic.c:1481 timezone/zic.c:1576
msgid "invalid time of day"
msgstr "ugyldig tid på dagen"
-#: timezone/zic.c:1448
+#: timezone/zic.c:1494
msgid "illegal CORRECTION field on Leap line"
msgstr "ulovlig «CORRECTION»-felt på «Leap»-linje"
-#: timezone/zic.c:1453
+#: timezone/zic.c:1499
msgid "illegal Rolling/Stationary field on Leap line"
msgstr "ulovlig «Rolling/Stationary»-felt på «Leap»-linje"
-#: timezone/zic.c:1459
-msgid "leap second precedes Big Bang"
+#: timezone/zic.c:1505
+msgid "leap second precedes Epoch"
msgstr ""
-#: timezone/zic.c:1472
+#: timezone/zic.c:1518
msgid "wrong number of fields on Link line"
msgstr "feil antall felt på «Link»-linje"
-#: timezone/zic.c:1476
+#: timezone/zic.c:1522
msgid "blank FROM field on Link line"
msgstr "tomt «FROM»-felt på «Link»-linje"
-#: timezone/zic.c:1551
+#: timezone/zic.c:1597
msgid "invalid starting year"
msgstr "ugyldig startår"
-#: timezone/zic.c:1573
+#: timezone/zic.c:1619
msgid "invalid ending year"
msgstr "ugyldig sluttår"
-#: timezone/zic.c:1577
+#: timezone/zic.c:1623
msgid "starting year greater than ending year"
msgstr "startår er større enn sluttår"
-#: timezone/zic.c:1584
+#: timezone/zic.c:1630
msgid "typed single year"
msgstr "satte type på bare ett år"
-#: timezone/zic.c:1619
+#: timezone/zic.c:1633
+#, c-format
+msgid "year type \"%s\" is obsolete; use \"-\" instead"
+msgstr ""
+
+#: timezone/zic.c:1668
msgid "invalid weekday name"
msgstr "ugyldig ukedagsnavn"
-#: timezone/zic.c:1743
+#: timezone/zic.c:1800
#, c-format
msgid "reference clients mishandle more than %d transition times"
msgstr ""
-#: timezone/zic.c:1747
+#: timezone/zic.c:1804
msgid "pre-2014 clients may mishandle more than 1200 transition times"
msgstr ""
-#: timezone/zic.c:1858
+#: timezone/zic.c:1920
#, fuzzy
#| msgid "too many transitions?!"
msgid "too many transition times"
msgstr "for mange overganger?!"
-#: timezone/zic.c:2047
+#: timezone/zic.c:2107
#, c-format
-msgid "%%z UTC offset magnitude exceeds 99:59:59"
+msgid "%%z UT offset magnitude exceeds 99:59:59"
msgstr ""
-#: timezone/zic.c:2424
+#: timezone/zic.c:2488
msgid "no POSIX environment variable for zone"
msgstr ""
-#: timezone/zic.c:2430
+#: timezone/zic.c:2494
#, c-format
msgid "%s: pre-%d clients may mishandle distant timestamps"
msgstr ""
-#: timezone/zic.c:2566
+#: timezone/zic.c:2631
msgid "two rules for same instant"
msgstr ""
-#: timezone/zic.c:2627
+#: timezone/zic.c:2696
msgid "can't determine time zone abbreviation to use just after until time"
msgstr "kan ikke avgjøre tidssoneforkortning for bruk rett etter «until»-tid"
-#: timezone/zic.c:2725
+#: timezone/zic.c:2785
msgid "too many local time types"
msgstr "for mange lokale tidstyper"
-#: timezone/zic.c:2729
+#: timezone/zic.c:2789
#, fuzzy
#| msgid "Link number out of range"
msgid "UT offset out of range"
msgstr "Linknummer utenfor gyldig område"
-#: timezone/zic.c:2753
+#: timezone/zic.c:2813
msgid "too many leap seconds"
msgstr "for mange skuddsekunder"
-#: timezone/zic.c:2759
-msgid "repeated leap second moment"
-msgstr "repetert skuddsekundstidspunkt"
+#: timezone/zic.c:2844
+msgid "Leap seconds too close together"
+msgstr ""
-#: timezone/zic.c:2830
+#: timezone/zic.c:2891
msgid "Wild result from command execution"
msgstr "Vilt resultat fra eksekvering av kommando"
-#: timezone/zic.c:2831
+#: timezone/zic.c:2892
#, c-format
msgid "%s: command was '%s', result was %d\n"
msgstr "%s: kommandoen var '%s', resultatet ble %d\n"
-#: timezone/zic.c:2961
+#: timezone/zic.c:2998
+#, c-format
+msgid "\"%s\" is undocumented; use \"last%s\" instead"
+msgstr ""
+
+#: timezone/zic.c:3029
+#, c-format
+msgid "\"%s\" is ambiguous in pre-2017c zic"
+msgstr ""
+
+#: timezone/zic.c:3063
msgid "Odd number of quotation marks"
msgstr "Odde antall siteringstegn"
-#: timezone/zic.c:3046
+#: timezone/zic.c:3157
msgid "use of 2/29 in non leap-year"
msgstr "bruker 29/2 i ikke-skuddår"
-#: timezone/zic.c:3081
+#: timezone/zic.c:3192
msgid "rule goes past start/end of month; will not work with pre-2004 versions of zic"
msgstr ""
-#: timezone/zic.c:3108
+#: timezone/zic.c:3219
msgid "time zone abbreviation has fewer than 3 characters"
msgstr ""
-#: timezone/zic.c:3110
+#: timezone/zic.c:3221
msgid "time zone abbreviation has too many characters"
msgstr ""
-#: timezone/zic.c:3112
+#: timezone/zic.c:3223
msgid "time zone abbreviation differs from POSIX standard"
msgstr ""
-#: timezone/zic.c:3118
+#: timezone/zic.c:3229
msgid "too many, or too long, time zone abbreviations"
msgstr "for mange eller for lange tidssoneforkortelser"
-#: timezone/zic.c:3161
+#: timezone/zic.c:3275
#, fuzzy, c-format
#| msgid "%s: Can't create directory %s: %s\n"
msgid "%s: Can't create directory %s: %s"
@@ -7739,12 +7771,21 @@ msgstr "%s: Kan ikke opprette filkatalog %s: %s\n"
#~ msgid "hard link failed, symbolic link used"
#~ msgstr "hard link feilet, symbolsk link brukt"
+#~ msgid "unruly zone"
+#~ msgstr "vanskelig sone"
+
+#~ msgid "%s: Leap line in non leap seconds file %s\n"
+#~ msgstr "%s: «Leap»-linje i fil %s som ikke er skuddsekundsfil\n"
+
#~ msgid "%s: Error reading %s\n"
#~ msgstr "%s: Feil ved lesing fra %s\n"
#~ msgid "%s: Error closing %s: %s\n"
#~ msgstr "%s: Feil ved lukking av %s: %s\n"
+#~ msgid "nameless rule"
+#~ msgstr "navnløs regel"
+
#~ msgid "time before zero"
#~ msgstr "tid før null"
@@ -7769,6 +7810,9 @@ msgstr "%s: Kan ikke opprette filkatalog %s: %s\n"
#~ msgid "internal error - addtype called with bad ttisgmt"
#~ msgstr "intern feil - addtype kalt med feilaktig ttisgmt"
+#~ msgid "repeated leap second moment"
+#~ msgstr "repetert skuddsekundstidspunkt"
+
#~ msgid "no day in month matches rule"
#~ msgstr "ingen dag i måneden passer til regelen"
@@ -7932,10 +7976,18 @@ msgstr "%s: Kan ikke opprette filkatalog %s: %s\n"
#~ msgstr "Har ikke funnet «%d» i passord-nærbuffer!"
#, fuzzy
+#~ msgid "cannot open zero fill device"
+#~ msgstr "kan ikke åpne utfil"
+
+#, fuzzy
#~ msgid "cannot handle TLS data"
#~ msgstr "kan ikke allokere symboldata"
#, fuzzy
+#~ msgid "relocation error"
+#~ msgstr "Autentiseringsfeil"
+
+#, fuzzy
#~ msgid "Can't open configuration file %s"
#~ msgstr "kan ikke åpne innfil «%s»"
diff --git a/po/nl.po b/po/nl.po
index d5d4fd5af4..79f847c196 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -1,19 +1,19 @@
# Dutch translations for GNU libc.
-# Copyright (C) 2018 Free Software Foundation, Inc.
+# Copyright (C) 2019 Free Software Foundation, Inc.
# This file is distributed under the same license as the glibc package.
#
-# "When du ein Fehler machst, hast du kein Zahnschmerzen mehr."
+# "When du ein Fehler machst, hast du keine Zahnschmerzen mehr."
#
# Elros Cyriatan <cyriatan@fastmail.fm>, 2004.
# Erwin Poeze <erwin.poeze@gmail.com>, 2009.
# Benno Schulenberg <benno@vertaalt.nl>, 2006, 2007, 2008, 2010, 2011, 2012.
-# Benno Schulenberg <benno@vertaalt.nl>, 2013, 2014, 2015, 2017, 2018.
+# Benno Schulenberg <benno@vertaalt.nl>, 2013, 2014, 2015, 2017, 2018, 2019.
msgid ""
msgstr ""
-"Project-Id-Version: libc-2.26.9000\n"
+"Project-Id-Version: libc-2.29.9000\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-07-26 22:19-0400\n"
-"PO-Revision-Date: 2018-06-10 18:20+0200\n"
+"POT-Creation-Date: 2019-07-18 13:28-0400\n"
+"PO-Revision-Date: 2019-07-30 10:21+0200\n"
"Last-Translator: Benno Schulenberg <vertaling@coevern.nl>\n"
"Language-Team: Dutch <vertaling@vrijschrift.org>\n"
"Language: nl\n"
@@ -22,7 +22,6 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 2.0.6\n"
#: argp/argp-help.c:227
#, c-format
@@ -113,12 +112,13 @@ msgid "(PROGRAM ERROR) Option should have been recognized!?"
msgstr "**Interne programmafout**: optie had herkend moeten worden!?"
#: assert/assert-perr.c:35
-#, fuzzy, c-format
-#| msgid "%s%s%s:%u: %s%sUnexpected error: %s.\n"
+#, c-format
msgid ""
"%s%s%s:%u: %s%sUnexpected error: %s.\n"
"%n"
-msgstr "%s%s%s:%u: %s%sOnverwachte fout: %s.\n"
+msgstr ""
+"%s%s%s:%u: %s%sOnverwachte fout: %s.\n"
+"%n"
#: assert/assert.c:101
#, c-format
@@ -159,10 +159,10 @@ msgstr ""
"[UITVOERBESTAND [INVOERBESTAND...]]"
#: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:308
-#: elf/pldd.c:252 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
-#: iconv/iconvconfig.c:379 locale/programs/locale.c:275
-#: locale/programs/localedef.c:427 login/programs/pt_chown.c:89
-#: malloc/memusagestat.c:563 nss/getent.c:933 nss/makedb.c:369
+#: elf/pldd.c:247 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
+#: iconv/iconvconfig.c:379 locale/programs/locale.c:276
+#: locale/programs/localedef.c:437 login/programs/pt_chown.c:89
+#: malloc/memusagestat.c:563 nss/getent.c:953 nss/makedb.c:369
#: posix/getconf.c:503 sysdeps/unix/sysv/linux/lddlibc4.c:61
#, c-format
msgid ""
@@ -173,11 +173,11 @@ msgstr ""
" %s.\n"
#: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64
-#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75
+#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:263 elf/sotruss.sh:75
#: elf/sprof.c:389 iconv/iconv_prog.c:422 iconv/iconvconfig.c:396
-#: locale/programs/locale.c:292 locale/programs/localedef.c:453
+#: locale/programs/locale.c:293 locale/programs/localedef.c:463
#: login/programs/pt_chown.c:63 malloc/memusage.sh:71
-#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:87 nss/makedb.c:385
+#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:88 nss/makedb.c:385
#: posix/getconf.c:485 sysdeps/unix/sysv/linux/lddlibc4.c:68
#, c-format
msgid ""
@@ -191,10 +191,10 @@ msgstr ""
"VOOR EEN BEPAALD DOEL.\n"
#: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68
-#: elf/ldconfig.c:329 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:427
-#: iconv/iconvconfig.c:401 locale/programs/locale.c:297
-#: locale/programs/localedef.c:458 malloc/memusage.sh:75
-#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:92 nss/makedb.c:390
+#: elf/ldconfig.c:329 elf/pldd.c:268 elf/sprof.c:395 iconv/iconv_prog.c:427
+#: iconv/iconvconfig.c:401 locale/programs/locale.c:298
+#: locale/programs/localedef.c:468 malloc/memusage.sh:75
+#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:93 nss/makedb.c:390
#: posix/getconf.c:490
#, c-format
msgid "Written by %s.\n"
@@ -265,21 +265,21 @@ msgstr "kan uitvoerbestand '%s' niet openen"
msgid "invalid escape sequence"
msgstr "ongeldige stuurcode"
-#: catgets/gencat.c:1209
+#: catgets/gencat.c:1211
msgid "unterminated message"
msgstr "onafgesloten bericht"
-#: catgets/gencat.c:1233
+#: catgets/gencat.c:1235
#, c-format
msgid "while opening old catalog file"
msgstr "bij openen van oude catalogusbestand"
-#: catgets/gencat.c:1324
+#: catgets/gencat.c:1326
#, c-format
msgid "conversion modules not available"
msgstr "conversiemodules zijn niet beschikbaar"
-#: catgets/gencat.c:1350
+#: catgets/gencat.c:1352
#, c-format
msgid "cannot determine escape character"
msgstr "kan niet bepalen wat het escapeteken is"
@@ -406,7 +406,7 @@ msgstr "onbekend besturingssysteem"
msgid ", OS ABI: %s %d.%d.%d"
msgstr ", OS-ABI: %s %d.%d.%d"
-#: elf/cache.c:163 elf/ldconfig.c:1332
+#: elf/cache.c:163 elf/ldconfig.c:1333
#, c-format
msgid "Can't open cache file %s\n"
msgstr "Kan cachebestand %s niet openen\n"
@@ -416,38 +416,38 @@ msgstr "Kan cachebestand %s niet openen\n"
msgid "mmap of cache file failed.\n"
msgstr "mmap() van cachebestand is mislukt\n"
-#: elf/cache.c:181 elf/cache.c:195
+#: elf/cache.c:181 elf/cache.c:195 elf/cache.c:205
#, c-format
msgid "File is not a cache file.\n"
msgstr "Bestand is geen cachebestand\n"
-#: elf/cache.c:228 elf/cache.c:238
+#: elf/cache.c:233 elf/cache.c:243
#, c-format
msgid "%d libs found in cache `%s'\n"
msgstr "%d bibliotheken gevonden in cache '%s'\n"
-#: elf/cache.c:432
+#: elf/cache.c:437
#, c-format
msgid "Can't create temporary cache file %s"
msgstr "Kan tijdelijk cachebestand %s niet aanmaken"
-#: elf/cache.c:440 elf/cache.c:450 elf/cache.c:454 elf/cache.c:458
-#: elf/cache.c:468
+#: elf/cache.c:445 elf/cache.c:455 elf/cache.c:459 elf/cache.c:463
+#: elf/cache.c:473
#, c-format
msgid "Writing of cache data failed"
msgstr "Schrijven van cachegegevens is mislukt"
-#: elf/cache.c:463
+#: elf/cache.c:468
#, c-format
msgid "Changing access rights of %s to %#o failed"
msgstr "Wijzigen van toegangsrechten van %s naar %#o is mislukt"
-#: elf/cache.c:472
+#: elf/cache.c:477
#, c-format
msgid "Renaming of %s to %s failed"
msgstr "Naamswijziging van %s naar %s is mislukt"
-#: elf/dl-close.c:399 elf/dl-open.c:420
+#: elf/dl-close.c:399 elf/dl-open.c:424
msgid "cannot create scope list"
msgstr "kan lijst voor geldigheidsbereik niet aanmaken"
@@ -469,10 +469,8 @@ msgid "cannot load auxiliary `%s' because of empty dynamic string token substitu
msgstr "kan helper '%s' niet laden vanwege lege DST-vervanging\n"
#: elf/dl-deps.c:220
-#, fuzzy
-#| msgid "cannot allocate dependency list"
msgid "cannot allocate dependency buffer"
-msgstr "kan geen geheugen reserveren voor afhankelijkhedenlijst"
+msgstr "kan geen geheugen reserveren voor afhankelijkhedenbuffer"
#: elf/dl-deps.c:443
msgid "cannot allocate dependency list"
@@ -530,121 +528,119 @@ msgstr "kan zoekpad-array niet aanmaken"
msgid "cannot stat shared object"
msgstr "kan gedeeld object niet vinden"
-#: elf/dl-load.c:960
-msgid "cannot open zero fill device"
-msgstr "kan nullenapparaat niet openen"
-
-#: elf/dl-load.c:1007 elf/dl-load.c:2203
+#: elf/dl-load.c:992 elf/dl-load.c:2198
msgid "cannot create shared object descriptor"
msgstr "kan descriptor voor gedeeld object niet aanmaken"
-#: elf/dl-load.c:1026 elf/dl-load.c:1560 elf/dl-load.c:1673
+#: elf/dl-load.c:1011 elf/dl-load.c:1555 elf/dl-load.c:1668
msgid "cannot read file data"
msgstr "kan bestandsgegevens niet lezen"
-#: elf/dl-load.c:1072
+#: elf/dl-load.c:1057
msgid "ELF load command alignment not page-aligned"
msgstr "uitlijning in ELF-laadopdracht ligt niet op een paginagrens"
-#: elf/dl-load.c:1079
+#: elf/dl-load.c:1064
msgid "ELF load command address/offset not properly aligned"
msgstr "adres/positie in ELF-laadopdracht is niet correct uitgelijnd"
-#: elf/dl-load.c:1161
-#, fuzzy
-#| msgid "cannot restore segment prot after reloc"
+#: elf/dl-load.c:1146
msgid "cannot process note segment"
-msgstr "kan segmentbescherming niet herstellen na verplaatsing"
+msgstr "kan notitiesegment niet verwerken"
-#: elf/dl-load.c:1172
+#: elf/dl-load.c:1157
msgid "object file has no loadable segments"
msgstr "objectbestand heeft geen laadbare segmenten"
-#: elf/dl-load.c:1181 elf/dl-load.c:1652
+#: elf/dl-load.c:1170 elf/dl-load.c:1647
msgid "cannot dynamically load executable"
msgstr "kan uitvoerbaar bestand niet dynamisch laden"
-#: elf/dl-load.c:1202
+#: elf/dl-load.c:1191
msgid "object file has no dynamic section"
msgstr "objectbestand heeft geen dynamische sectie"
-#: elf/dl-load.c:1225
+#: elf/dl-load.c:1218
+msgid "cannot dynamically load position-independent executable"
+msgstr "kan positie-onafhankelijk uitvoerbaar bestand niet dynamisch laden"
+
+#: elf/dl-load.c:1220
msgid "shared object cannot be dlopen()ed"
msgstr "gedeeld object kan niet met dlopen() geopend worden -- heeft DF_1_NOOPEN-vlag"
-#: elf/dl-load.c:1238
+#: elf/dl-load.c:1233
msgid "cannot allocate memory for program header"
msgstr "kan geen geheugen reserveren voor programmakop"
-#: elf/dl-load.c:1271 elf/dl-load.h:130
+#: elf/dl-load.c:1266 elf/dl-load.h:130
msgid "cannot change memory protections"
msgstr "kan geheugenbeschermingen niet veranderen"
-#: elf/dl-load.c:1291
+#: elf/dl-load.c:1286
msgid "cannot enable executable stack as shared object requires"
msgstr "kan uitvoerbare stack niet aanzetten zoals gedeeld object vereist"
-#: elf/dl-load.c:1304
+#: elf/dl-load.c:1299
msgid "cannot close file descriptor"
msgstr "kan bestandsdescriptor niet sluiten"
-#: elf/dl-load.c:1560
+#: elf/dl-load.c:1555
msgid "file too short"
msgstr "bestand is te kort"
-#: elf/dl-load.c:1595
+#: elf/dl-load.c:1590
msgid "invalid ELF header"
msgstr "ongeldige ELF-header"
-#: elf/dl-load.c:1607
+#: elf/dl-load.c:1602
msgid "ELF file data encoding not big-endian"
msgstr "gegevenscodering van ELF-bestand is niet big-endian"
-#: elf/dl-load.c:1609
+#: elf/dl-load.c:1604
msgid "ELF file data encoding not little-endian"
msgstr "gegevenscodering van ELF-bestand is niet little-endian"
-#: elf/dl-load.c:1613
+#: elf/dl-load.c:1608
msgid "ELF file version ident does not match current one"
msgstr "ELF-bestands-identversie komt niet overeen met huidige"
-#: elf/dl-load.c:1617
+#: elf/dl-load.c:1612
msgid "ELF file OS ABI invalid"
msgstr "OS-ABI van ELF-bestand is ongeldig"
-#: elf/dl-load.c:1620
+#: elf/dl-load.c:1615
msgid "ELF file ABI version invalid"
msgstr "ABI-versie van ELF-bestand is ongeldig"
-#: elf/dl-load.c:1623
+#: elf/dl-load.c:1618
msgid "nonzero padding in e_ident"
msgstr "opvulling met niet-nullen in e_ident()"
-#: elf/dl-load.c:1626
+#: elf/dl-load.c:1621
msgid "internal error"
msgstr "**interne fout**"
-#: elf/dl-load.c:1633
+#: elf/dl-load.c:1628
msgid "ELF file version does not match current one"
msgstr "ELF-bestandsversie komt niet overeen met huidige"
-#: elf/dl-load.c:1641
+#: elf/dl-load.c:1636
msgid "only ET_DYN and ET_EXEC can be loaded"
msgstr "alleen ET_DYN en ET_EXEC kunnen worden geladen"
-#: elf/dl-load.c:1657
+#: elf/dl-load.c:1652
msgid "ELF file's phentsize not the expected size"
msgstr "'phentsize' van ELF-bestand heeft niet de verwachte grootte"
-#: elf/dl-load.c:2222
+#: elf/dl-load.c:2217
msgid "wrong ELF class: ELFCLASS64"
msgstr "verkeerde ELF-klasse: ELFCLASS64"
-#: elf/dl-load.c:2223
+#: elf/dl-load.c:2218
msgid "wrong ELF class: ELFCLASS32"
msgstr "verkeerde ELF-klasse: ELFCLASS32"
-#: elf/dl-load.c:2226
+#: elf/dl-load.c:2221
msgid "cannot open shared object file"
msgstr "kan gedeeld objectbestand niet openen"
@@ -656,11 +652,7 @@ msgstr "kan segment van gedeeld object niet in het geheugen plaatsen"
msgid "cannot map zero-fill pages"
msgstr "kan nul-gevulde pagina's niet in het geheugen plaatsen"
-#: elf/dl-lookup.c:835
-msgid "relocation error"
-msgstr "verplaatsingsfout"
-
-#: elf/dl-lookup.c:858
+#: elf/dl-lookup.c:830
msgid "symbol lookup error"
msgstr "opzoekfout voor symbool"
@@ -668,21 +660,21 @@ msgstr "opzoekfout voor symbool"
msgid "cannot extend global scope"
msgstr "kan globaal geldigheidsbereik niet uitbreiden"
-#: elf/dl-open.c:470
+#: elf/dl-open.c:474
msgid "TLS generation counter wrapped! Please report this."
msgstr ""
"De TLS-generatieteller is opnieuw bij nul begonnen!\n"
"Dit is een **programmafout**. Graag rapporteren."
-#: elf/dl-open.c:534
+#: elf/dl-open.c:538
msgid "invalid mode for dlopen()"
msgstr "ongeldige modus voor dlopen()"
-#: elf/dl-open.c:551
+#: elf/dl-open.c:555
msgid "no more namespaces available for dlmopen()"
msgstr "geen naamsruimten meer beschikbaar voor dlmopen()"
-#: elf/dl-open.c:575
+#: elf/dl-open.c:579
msgid "invalid target namespace in dlmopen()"
msgstr "ongeldige doelnaamsruimte in dlmopen()"
@@ -690,20 +682,20 @@ msgstr "ongeldige doelnaamsruimte in dlmopen()"
msgid "cannot allocate memory in static TLS block"
msgstr "kan geen geheugen reserveren binnen statisch TLS-blok"
-#: elf/dl-reloc.c:205
+#: elf/dl-reloc.c:213
msgid "cannot make segment writable for relocation"
msgstr "kan segment niet schrijfbaar maken voor verplaatsing"
-#: elf/dl-reloc.c:276
+#: elf/dl-reloc.c:272
#, c-format
msgid "%s: out of memory to store relocation results for %s\n"
msgstr "%s: onvoldoende geheugen om verplaatsingsresultaten van %s op te slaan\n"
-#: elf/dl-reloc.c:292
+#: elf/dl-reloc.c:288
msgid "cannot restore segment prot after reloc"
msgstr "kan segmentbescherming niet herstellen na verplaatsing"
-#: elf/dl-reloc.c:323
+#: elf/dl-reloc.c:319
msgid "cannot apply additional memory protection after relocation"
msgstr "kan extra geheugenbescherming niet toepassen na verplaatsing"
@@ -925,22 +917,22 @@ msgstr "bij gebruik van '-r' is voor het configuratiebestand een absoluut pad ve
msgid "memory exhausted"
msgstr "onvoldoende geheugen beschikbaar"
-#: elf/ldconfig.c:1233
+#: elf/ldconfig.c:1234
#, c-format
msgid "%s:%u: cannot read directory %s"
msgstr "%s:%u: kan map %s niet lezen"
-#: elf/ldconfig.c:1281
+#: elf/ldconfig.c:1282
#, c-format
msgid "relative path `%s' used to build cache"
msgstr "relatief pad '%s' wordt gebruikt bij opbouwen van cache"
-#: elf/ldconfig.c:1311
+#: elf/ldconfig.c:1312
#, c-format
msgid "Can't chdir to /"
msgstr "Kan niet naar hoofdmap ('/') gaan"
-#: elf/ldconfig.c:1352
+#: elf/ldconfig.c:1353
#, c-format
msgid "Can't open cache file directory %s\n"
msgstr "Kan map %s voor cachebestand niet openen\n"
@@ -1013,95 +1005,100 @@ msgstr "eindigde met een onbekende afsluitwaarde"
msgid "error: you do not have read permission for"
msgstr "fout: u hebt geen leesrechten voor"
-#: elf/pldd-xx.c:105
+#: elf/pldd-xx.c:102
#, c-format
msgid "cannot find program header of process"
msgstr "kan programmakop van proces niet vinden"
-#: elf/pldd-xx.c:110
+#: elf/pldd-xx.c:106
#, c-format
msgid "cannot read program header"
msgstr "kan programmakop niet lezen"
-#: elf/pldd-xx.c:135
+#: elf/pldd-xx.c:128
#, c-format
msgid "cannot read dynamic section"
msgstr "kan dynamische sectie niet lezen"
-#: elf/pldd-xx.c:147
+#: elf/pldd-xx.c:137
#, c-format
msgid "cannot read r_debug"
msgstr "kan 'r_debug' niet lezen"
-#: elf/pldd-xx.c:167
+#: elf/pldd-xx.c:154
#, c-format
msgid "cannot read program interpreter"
msgstr "kan programma-interpreter niet lezen"
-#: elf/pldd-xx.c:197
+#: elf/pldd-xx.c:183
#, c-format
msgid "cannot read link map"
msgstr "kan link-kaart niet lezen"
-#: elf/pldd-xx.c:209
+#: elf/pldd-xx.c:190
#, c-format
msgid "cannot read object name"
msgstr "kan objectnaam niet lezen"
-#: elf/pldd-xx.c:219
+#: elf/pldd-xx.c:197
#, c-format
msgid "cannot allocate buffer for object name"
msgstr "kan geen geheugen reserveren voor objectnaambuffer"
-#: elf/pldd.c:64
+#: elf/pldd.c:58
msgid "List dynamic shared objects loaded into process."
msgstr "Dynamische gedeelde objecten tonen die in proces geladen zijn."
-#: elf/pldd.c:68
+#: elf/pldd.c:62
msgid "PID"
msgstr "PID"
-#: elf/pldd.c:100
+#: elf/pldd.c:89
#, c-format
msgid "Exactly one parameter with process ID required.\n"
msgstr "Precies één argument met proces-ID is vereist.\n"
-#: elf/pldd.c:112
+#: elf/pldd.c:103
#, c-format
msgid "invalid process ID '%s'"
msgstr "ongeldig proces-ID: '%s'"
-#: elf/pldd.c:120
+#: elf/pldd.c:111
#, c-format
msgid "cannot open %s"
msgstr "kan '%s' niet openen"
-#: elf/pldd.c:152
+#: elf/pldd.c:142
#, c-format
msgid "cannot open %s/task"
msgstr "kan '%s/task' niet openen"
-#: elf/pldd.c:155
+#: elf/pldd.c:145
#, c-format
msgid "cannot prepare reading %s/task"
msgstr "kan lezen van '%s/task' niet voorbereiden"
-#: elf/pldd.c:168
+#: elf/pldd.c:158
#, c-format
msgid "invalid thread ID '%s'"
msgstr "ongeldig thread-ID: '%s'"
-#: elf/pldd.c:179
+#: elf/pldd.c:169
#, c-format
msgid "cannot attach to process %lu"
msgstr "kan niet aanhechten aan proces %lu"
-#: elf/pldd.c:294
+#: elf/pldd.c:184
+#, c-format
+msgid "no valid %s/task entries"
+msgstr "geen geldige '%s/task' items"
+
+#: elf/pldd.c:290
#, c-format
msgid "cannot get information about process %lu"
msgstr "kan geen informatie verkrijgen over proces %lu"
-#: elf/pldd.c:307
+#: elf/pldd.c:303
#, c-format
msgid "process %lu is no ELF program"
msgstr "proces %lu is geen ELF-programma"
@@ -1423,7 +1420,7 @@ msgstr "Informatie:"
msgid "list all known coded character sets"
msgstr "alle bekende gecodeerde tekensets opsommen"
-#: iconv/iconv_prog.c:64 locale/programs/localedef.c:120
+#: iconv/iconv_prog.c:64 locale/programs/localedef.c:124
msgid "Output control:"
msgstr "Uitvoerbeheer:"
@@ -1432,8 +1429,8 @@ msgid "omit invalid characters from output"
msgstr "ongeldige tekens in uitvoer overslaan"
#: iconv/iconv_prog.c:66 iconv/iconvconfig.c:128
-#: locale/programs/localedef.c:113 locale/programs/localedef.c:115
-#: locale/programs/localedef.c:117 locale/programs/localedef.c:144
+#: locale/programs/localedef.c:117 locale/programs/localedef.c:119
+#: locale/programs/localedef.c:121 locale/programs/localedef.c:150
#: malloc/memusagestat.c:56
msgid "FILE"
msgstr "BESTAND"
@@ -1534,7 +1531,7 @@ msgstr "Maakt een snelladend configuratiebestand voor een iconv-module."
msgid "[DIR...]"
msgstr "[MAP...]"
-#: iconv/iconvconfig.c:126 locale/programs/localedef.c:123
+#: iconv/iconvconfig.c:126 locale/programs/localedef.c:129
msgid "PATH"
msgstr "PAD"
@@ -1644,10 +1641,8 @@ msgid "Error: .netrc file is readable by others."
msgstr "Fout: .netrc-bestand is leesbaar voor anderen."
#: inet/ruserpass.c:180
-#, fuzzy
-#| msgid "Remove password or make file unreadable by others."
msgid "Remove 'password' line or make file unreadable by others."
-msgstr "Verwijder het wachtwoord of maak het bestand onleesbaar voor anderen."
+msgstr "Verwijder de regel met 'password', of maak het bestand onleesbaar voor anderen."
#: inet/ruserpass.c:199
#, c-format
@@ -1720,14 +1715,14 @@ msgstr "tekensets met blokkerende toestanden worden niet ondersteund"
#: locale/programs/charmap.c:503 locale/programs/charmap.c:557
#: locale/programs/charmap.c:589 locale/programs/charmap.c:683
-#: locale/programs/charmap.c:738 locale/programs/charmap.c:779
-#: locale/programs/charmap.c:820
+#: locale/programs/charmap.c:739 locale/programs/charmap.c:780
+#: locale/programs/charmap.c:821
#, c-format
msgid "syntax error in %s definition: %s"
msgstr "syntaxfout in definitie van %s: %s"
#: locale/programs/charmap.c:504 locale/programs/charmap.c:684
-#: locale/programs/charmap.c:780 locale/programs/repertoire.c:229
+#: locale/programs/charmap.c:781 locale/programs/repertoire.c:229
msgid "no symbolic name given"
msgstr "geen symbolische naam gegeven"
@@ -1743,14 +1738,14 @@ msgstr "te weinig bytes in tekencodering"
msgid "too many bytes in character encoding"
msgstr "te veel bytes in tekencodering"
-#: locale/programs/charmap.c:591 locale/programs/charmap.c:739
-#: locale/programs/charmap.c:822 locale/programs/repertoire.c:295
+#: locale/programs/charmap.c:591 locale/programs/charmap.c:740
+#: locale/programs/charmap.c:823 locale/programs/repertoire.c:295
msgid "no symbolic name given for end of range"
msgstr "geen symbolische naam gegeven voor einde-van-bereik"
#: locale/programs/charmap.c:615 locale/programs/ld-address.c:524
#: locale/programs/ld-collate.c:2616 locale/programs/ld-collate.c:3774
-#: locale/programs/ld-ctype.c:2117 locale/programs/ld-ctype.c:2829
+#: locale/programs/ld-ctype.c:2118 locale/programs/ld-ctype.c:2830
#: locale/programs/ld-identification.c:397
#: locale/programs/ld-measurement.c:213 locale/programs/ld-messages.c:295
#: locale/programs/ld-monetary.c:748 locale/programs/ld-name.c:262
@@ -1765,58 +1760,58 @@ msgstr "%1$s: definitie eindigt niet met 'END %1$s'"
msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
msgstr "na de definitie van CHARMAP zijn alleen definities van WIDTH toegestaan"
-#: locale/programs/charmap.c:656 locale/programs/charmap.c:719
+#: locale/programs/charmap.c:656 locale/programs/charmap.c:720
#, c-format
msgid "value for %s must be an integer"
msgstr "de waarde van %s moet een geheel getal zijn"
-#: locale/programs/charmap.c:847
+#: locale/programs/charmap.c:848
#, c-format
msgid "%s: error in state machine"
msgstr "%s: **interne fout** in toestandsmachine"
-#: locale/programs/charmap.c:855 locale/programs/ld-address.c:540
+#: locale/programs/charmap.c:856 locale/programs/ld-address.c:540
#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967
-#: locale/programs/ld-ctype.c:2114 locale/programs/ld-ctype.c:2846
+#: locale/programs/ld-ctype.c:2115 locale/programs/ld-ctype.c:2847
#: locale/programs/ld-identification.c:413
#: locale/programs/ld-measurement.c:229 locale/programs/ld-messages.c:311
#: locale/programs/ld-monetary.c:764 locale/programs/ld-name.c:278
#: locale/programs/ld-numeric.c:341 locale/programs/ld-paper.c:228
#: locale/programs/ld-telephone.c:292 locale/programs/ld-time.c:990
-#: locale/programs/locfile.c:997 locale/programs/repertoire.c:323
+#: locale/programs/locfile.c:1010 locale/programs/repertoire.c:323
#, c-format
msgid "%s: premature end of file"
msgstr "%s: voortijdig einde van bestand"
-#: locale/programs/charmap.c:874 locale/programs/charmap.c:885
+#: locale/programs/charmap.c:875 locale/programs/charmap.c:886
#, c-format
msgid "unknown character `%s'"
msgstr "onbekend teken '%s'"
-#: locale/programs/charmap.c:893
+#: locale/programs/charmap.c:894
#, c-format
msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d"
msgstr "het aantal bytes in de bytereeks is voor begin en einde van het bereik niet hetzelfde: %d tegenover %d"
-#: locale/programs/charmap.c:998 locale/programs/ld-collate.c:2893
+#: locale/programs/charmap.c:999 locale/programs/ld-collate.c:2893
#: locale/programs/repertoire.c:418
msgid "invalid names for character range"
msgstr "ongeldige namen voor tekenbereik"
-#: locale/programs/charmap.c:1010 locale/programs/repertoire.c:430
+#: locale/programs/charmap.c:1011 locale/programs/repertoire.c:430
msgid "hexadecimal range format should use only capital characters"
msgstr "hexadecimale bereikopgave mag alleen hoofdletters bevatten"
-#: locale/programs/charmap.c:1028 locale/programs/repertoire.c:448
+#: locale/programs/charmap.c:1029 locale/programs/repertoire.c:448
#, c-format
msgid "<%s> and <%s> are invalid names for range"
msgstr "<%s> en <%s> zijn ongeldige namen voor een bereik"
-#: locale/programs/charmap.c:1034 locale/programs/repertoire.c:455
+#: locale/programs/charmap.c:1035 locale/programs/repertoire.c:455
msgid "upper limit in range is smaller than lower limit"
msgstr "bovengrens in bereik is kleiner dan ondergrens"
-#: locale/programs/charmap.c:1092
+#: locale/programs/charmap.c:1093
msgid "resulting bytes for range not representable."
msgstr "resulterende bytes voor bereik zijn niet te representeren"
@@ -1885,7 +1880,7 @@ msgid "%s: numeric country code `%d' not valid"
msgstr "%s: numerieke landcode '%d' is ongeldig"
#: locale/programs/ld-address.c:432 locale/programs/ld-address.c:469
-#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2478
+#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2479
#: locale/programs/ld-identification.c:309
#: locale/programs/ld-measurement.c:196 locale/programs/ld-messages.c:264
#: locale/programs/ld-monetary.c:503 locale/programs/ld-monetary.c:538
@@ -1908,7 +1903,7 @@ msgid "%s: unknown character in field `%s'"
msgstr "%s: onbekend teken in het veld '%s'"
#: locale/programs/ld-address.c:521 locale/programs/ld-collate.c:3772
-#: locale/programs/ld-ctype.c:2826 locale/programs/ld-identification.c:394
+#: locale/programs/ld-ctype.c:2827 locale/programs/ld-identification.c:394
#: locale/programs/ld-measurement.c:210 locale/programs/ld-messages.c:293
#: locale/programs/ld-monetary.c:746 locale/programs/ld-name.c:260
#: locale/programs/ld-numeric.c:323 locale/programs/ld-paper.c:210
@@ -1921,8 +1916,8 @@ msgstr "%s: onvolledige 'END'-regel"
#: locale/programs/ld-collate.c:602 locale/programs/ld-collate.c:898
#: locale/programs/ld-collate.c:911 locale/programs/ld-collate.c:2582
#: locale/programs/ld-collate.c:2603 locale/programs/ld-collate.c:3957
-#: locale/programs/ld-ctype.c:1846 locale/programs/ld-ctype.c:2104
-#: locale/programs/ld-ctype.c:2676 locale/programs/ld-ctype.c:2837
+#: locale/programs/ld-ctype.c:1847 locale/programs/ld-ctype.c:2105
+#: locale/programs/ld-ctype.c:2677 locale/programs/ld-ctype.c:2838
#: locale/programs/ld-identification.c:404
#: locale/programs/ld-measurement.c:220 locale/programs/ld-messages.c:302
#: locale/programs/ld-monetary.c:755 locale/programs/ld-name.c:269
@@ -2266,132 +2261,132 @@ msgstr "tekensetdefinitie '%s' is al gedefinieerd"
msgid "implementation limit: no more than %d character maps allowed"
msgstr "implementatiegrens: er zijn niet meer dan %d tekensetdefinities toegestaan"
-#: locale/programs/ld-ctype.c:1434 locale/programs/ld-ctype.c:1559
-#: locale/programs/ld-ctype.c:1665 locale/programs/ld-ctype.c:2341
-#: locale/programs/ld-ctype.c:3299
+#: locale/programs/ld-ctype.c:1435 locale/programs/ld-ctype.c:1560
+#: locale/programs/ld-ctype.c:1666 locale/programs/ld-ctype.c:2342
+#: locale/programs/ld-ctype.c:3302
#, c-format
msgid "%s: field `%s' does not contain exactly ten entries"
msgstr "%s: het veld '%s' bevat niet precies tien items"
-#: locale/programs/ld-ctype.c:1462 locale/programs/ld-ctype.c:2036
+#: locale/programs/ld-ctype.c:1463 locale/programs/ld-ctype.c:2037
#, c-format
msgid "to-value <U%0*X> of range is smaller than from-value <U%0*X>"
msgstr "eindwaarde <U%0*X> van bereik is kleiner dan beginwaarde <U%0*X>"
-#: locale/programs/ld-ctype.c:1589
+#: locale/programs/ld-ctype.c:1590
msgid "start and end character sequence of range must have the same length"
msgstr "begin- en eindbytereeks van bereik moeten dezelfde lengte hebben"
-#: locale/programs/ld-ctype.c:1596
+#: locale/programs/ld-ctype.c:1597
msgid "to-value character sequence is smaller than from-value sequence"
msgstr "eindwaarde is kleiner dan beginwaarde"
-#: locale/programs/ld-ctype.c:1956 locale/programs/ld-ctype.c:2007
+#: locale/programs/ld-ctype.c:1957 locale/programs/ld-ctype.c:2008
msgid "premature end of `translit_ignore' definition"
msgstr "voortijdig einde van definitie van 'translit_ignore'"
#
# This error message is issued when yacc finds an error at parse time.
#
-#: locale/programs/ld-ctype.c:1962 locale/programs/ld-ctype.c:2013
-#: locale/programs/ld-ctype.c:2055
+#: locale/programs/ld-ctype.c:1963 locale/programs/ld-ctype.c:2014
+#: locale/programs/ld-ctype.c:2056
msgid "syntax error"
msgstr "syntaxfout"
-#: locale/programs/ld-ctype.c:2188
+#: locale/programs/ld-ctype.c:2189
#, c-format
msgid "%s: syntax error in definition of new character class"
msgstr "%s: syntaxfout in definitie van nieuwe tekenklasse"
-#: locale/programs/ld-ctype.c:2203
+#: locale/programs/ld-ctype.c:2204
#, c-format
msgid "%s: syntax error in definition of new character map"
msgstr "%s: syntaxfout in nieuwe tekensetdefinitie"
-#: locale/programs/ld-ctype.c:2363
+#: locale/programs/ld-ctype.c:2364
msgid "ellipsis range must be marked by two operands of same type"
msgstr "een bereik met een beletselteken moet twee parameters van dezelfde soort bevatten"
-#: locale/programs/ld-ctype.c:2372
+#: locale/programs/ld-ctype.c:2373
msgid "with symbolic name range values the absolute ellipsis `...' must not be used"
msgstr "in een bereik met symbolische namen mag het absolute beletselteken '...' niet gebruikt worden"
-#: locale/programs/ld-ctype.c:2387
+#: locale/programs/ld-ctype.c:2388
msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'"
msgstr "in een bereik met UCS-waarden moet het hexadecimale symbolische beletselsteken '..' gebruikt worden"
-#: locale/programs/ld-ctype.c:2401
+#: locale/programs/ld-ctype.c:2402
msgid "with character code range values one must use the absolute ellipsis `...'"
msgstr "in een bereik met tekencodes moet het absolute beletselteken '...' gebruikt worden"
-#: locale/programs/ld-ctype.c:2552
+#: locale/programs/ld-ctype.c:2553
#, c-format
msgid "duplicated definition for mapping `%s'"
msgstr "dubbele definitie van afbeelding '%s'"
-#: locale/programs/ld-ctype.c:2638 locale/programs/ld-ctype.c:2782
+#: locale/programs/ld-ctype.c:2639 locale/programs/ld-ctype.c:2783
#, c-format
msgid "%s: `translit_start' section does not end with `translit_end'"
msgstr "%s: sectie 'translit_start' eindigt niet met 'translit_end'"
-#: locale/programs/ld-ctype.c:2733
+#: locale/programs/ld-ctype.c:2734
#, c-format
msgid "%s: duplicate `default_missing' definition"
msgstr "%s: dubbele definitie van 'default_missing'"
-#: locale/programs/ld-ctype.c:2738
+#: locale/programs/ld-ctype.c:2739
msgid "previous definition was here"
msgstr "de vorige definitie was hier"
-#: locale/programs/ld-ctype.c:2760
+#: locale/programs/ld-ctype.c:2761
#, c-format
msgid "%s: no representable `default_missing' definition found"
msgstr "%s: geen representeerbare definitie van 'default_missing' gevonden"
-#: locale/programs/ld-ctype.c:2877 locale/programs/ld-ctype.c:2973
-#: locale/programs/ld-ctype.c:2992 locale/programs/ld-ctype.c:3012
-#: locale/programs/ld-ctype.c:3032 locale/programs/ld-ctype.c:3052
-#: locale/programs/ld-ctype.c:3072 locale/programs/ld-ctype.c:3111
-#: locale/programs/ld-ctype.c:3131 locale/programs/ld-ctype.c:3195
-#: locale/programs/ld-ctype.c:3236 locale/programs/ld-ctype.c:3259
+#: locale/programs/ld-ctype.c:2878 locale/programs/ld-ctype.c:2974
+#: locale/programs/ld-ctype.c:2993 locale/programs/ld-ctype.c:3013
+#: locale/programs/ld-ctype.c:3033 locale/programs/ld-ctype.c:3053
+#: locale/programs/ld-ctype.c:3073 locale/programs/ld-ctype.c:3112
+#: locale/programs/ld-ctype.c:3132 locale/programs/ld-ctype.c:3198
+#: locale/programs/ld-ctype.c:3239 locale/programs/ld-ctype.c:3262
#, c-format
msgid "%s: character `%s' not defined while needed as default value"
msgstr "%s: teken '%s' is niet gedefinieerd maar is nodig als standaardwaarde"
-#: locale/programs/ld-ctype.c:2882 locale/programs/ld-ctype.c:2978
-#: locale/programs/ld-ctype.c:2997 locale/programs/ld-ctype.c:3017
-#: locale/programs/ld-ctype.c:3037 locale/programs/ld-ctype.c:3057
-#: locale/programs/ld-ctype.c:3077 locale/programs/ld-ctype.c:3116
-#: locale/programs/ld-ctype.c:3136 locale/programs/ld-ctype.c:3200
+#: locale/programs/ld-ctype.c:2883 locale/programs/ld-ctype.c:2979
+#: locale/programs/ld-ctype.c:2998 locale/programs/ld-ctype.c:3018
+#: locale/programs/ld-ctype.c:3038 locale/programs/ld-ctype.c:3058
+#: locale/programs/ld-ctype.c:3078 locale/programs/ld-ctype.c:3117
+#: locale/programs/ld-ctype.c:3137 locale/programs/ld-ctype.c:3203
#, c-format
msgid "%s: character `%s' in charmap not representable with one byte"
msgstr "%s: teken '%s' in de tekensetdefinitie is niet te representeren met één byte"
-#: locale/programs/ld-ctype.c:3242 locale/programs/ld-ctype.c:3265
+#: locale/programs/ld-ctype.c:3245 locale/programs/ld-ctype.c:3268
#, c-format
msgid "%s: character `%s' needed as default value not representable with one byte"
msgstr "%s: teken '%s' is nodig als standaardwaarde maar niet te representeren met één byte"
-#: locale/programs/ld-ctype.c:3321
+#: locale/programs/ld-ctype.c:3324
msgid "no output digits defined and none of the standard names in the charmap"
msgstr "er zijn geen uitvoercijfers gedefinieerd en geen van de standaardnamen zit in de tekensetdefinitie"
-#: locale/programs/ld-ctype.c:3570
+#: locale/programs/ld-ctype.c:3573
#, c-format
msgid "%s: transliteration data from locale `%s' not available"
msgstr "%s: transliteratiegegevens van taalregio '%s' zijn niet beschikbaar"
-#: locale/programs/ld-ctype.c:3669
+#: locale/programs/ld-ctype.c:3672
#, c-format
msgid "%s: table for class \"%s\": %lu bytes"
msgstr "%s: tabel voor klasse \"%s\": %lu bytes"
-#: locale/programs/ld-ctype.c:3733
+#: locale/programs/ld-ctype.c:3736
#, c-format
msgid "%s: table for map \"%s\": %lu bytes"
msgstr "%s: tabel voor kaart \"%s\": %lu bytes"
-#: locale/programs/ld-ctype.c:3857
+#: locale/programs/ld-ctype.c:3860
#, c-format
msgid "%s: table for width: %lu bytes"
msgstr "%s: tabel voor breedte: %lu bytes"
@@ -2631,122 +2626,116 @@ msgstr ""
"NAAM\n"
"[-a|-m]"
-#: locale/programs/locale.c:190
-#, c-format
-msgid "Cannot set LC_CTYPE to default locale"
-msgstr "Kan LC_TYPE niet op de standaard-taalregio instellen"
-
-#: locale/programs/locale.c:192
-#, c-format
-msgid "Cannot set LC_MESSAGES to default locale"
-msgstr "Kan LC_MESSAGES niet op de standaard-taalregio instellen"
-
-#: locale/programs/locale.c:205
+#: locale/programs/locale.c:522
#, c-format
-msgid "Cannot set LC_COLLATE to default locale"
-msgstr "Kan LC_COLLATE niet op de standaard-taalregio instellen"
+msgid "while preparing output"
+msgstr "tijdens voorbereiden van uitvoer"
-#: locale/programs/locale.c:221
+#: locale/programs/locale.c:998
#, c-format
-msgid "Cannot set LC_ALL to default locale"
-msgstr "Kan LC_ALL niet op de standaard-taalregio instellen"
+msgid "Cannot set %s to default locale"
+msgstr "Kan %s niet op de standaard taalregio instellen"
-#: locale/programs/locale.c:521
+#: locale/programs/locale.c:1096
#, c-format
-msgid "while preparing output"
-msgstr "tijdens voorbereiden van uitvoer"
+msgid "warning: The LOCPATH variable is set to \"%s\"\n"
+msgstr "waarschuwing: de variabele 'LOCPATH' is ingesteld op \"%s\"\n"
-#: locale/programs/localedef.c:112
+#: locale/programs/localedef.c:116
msgid "Input Files:"
msgstr "Invoerbestanden:"
# FIXME: option descriptions should start with lowercase (next 17)
-#: locale/programs/localedef.c:114
+#: locale/programs/localedef.c:118
msgid "Symbolic character names defined in FILE"
msgstr "bestand dat tekennamen op codes afbeeldt"
-#: locale/programs/localedef.c:116
+#: locale/programs/localedef.c:120
msgid "Source definitions are found in FILE"
msgstr "bestand met brondefinities"
-#: locale/programs/localedef.c:118
+#: locale/programs/localedef.c:122
msgid "FILE contains mapping from symbolic names to UCS4 values"
msgstr "bestand dat tekennamen op UCS4-waarden afbeeldt"
-#: locale/programs/localedef.c:122
+#: locale/programs/localedef.c:126
msgid "Create output even if warning messages were issued"
msgstr "ook uitvoer genereren na waarschuwingen"
-#: locale/programs/localedef.c:123
+#: locale/programs/localedef.c:128
+msgid "Do not create hard links between installed locales"
+msgstr "geen harde koppelingen maken tussen geïnstalleerde taalregios"
+
+#: locale/programs/localedef.c:129
msgid "Optional output file prefix"
msgstr "optioneel voorvoegsel voor uitvoerbestand"
-#: locale/programs/localedef.c:124
+#: locale/programs/localedef.c:130
msgid "Strictly conform to POSIX"
msgstr "strict de POSIX-voorschriften volgen"
-#: locale/programs/localedef.c:126
+#: locale/programs/localedef.c:132
msgid "Suppress warnings and information messages"
msgstr "waarschuwingen en meldingen onderdrukken"
-#: locale/programs/localedef.c:127
+#: locale/programs/localedef.c:133
msgid "Print more messages"
msgstr "gedetailleerde uitvoer produceren"
-#: locale/programs/localedef.c:128 locale/programs/localedef.c:131
+#: locale/programs/localedef.c:134 locale/programs/localedef.c:137
msgid "<warnings>"
msgstr "<waarschuwingen>"
-#: locale/programs/localedef.c:129
+#: locale/programs/localedef.c:135
msgid "Comma-separated list of warnings to disable; supported warnings are: ascii, intcurrsym"
msgstr "Kommagescheiden lijst van uit te schakelen waarschuwingen; mogelijke waarschuwingen zijn: ascii, intcurrsym"
-#: locale/programs/localedef.c:132
+#: locale/programs/localedef.c:138
msgid "Comma-separated list of warnings to enable; supported warnings are: ascii, intcurrsym"
msgstr "Kommagescheiden lijst van in te schakelen waarschuwingen; mogelijke waarschuwingen zijn: ascii, intcurrsym"
-#: locale/programs/localedef.c:135
+#: locale/programs/localedef.c:141
msgid "Archive control:"
msgstr "Archiefbeheer:"
-#: locale/programs/localedef.c:137
+#: locale/programs/localedef.c:143
msgid "Don't add new data to archive"
msgstr "geen nieuwe gegevens aan archief toevoegen"
-#: locale/programs/localedef.c:139
+#: locale/programs/localedef.c:145
msgid "Add locales named by parameters to archive"
msgstr "genoemde taalregio's aan archief toevoegen"
-#: locale/programs/localedef.c:140
+#: locale/programs/localedef.c:146
msgid "Replace existing archive content"
msgstr "bestaande inhoud van archief vervangen"
-#: locale/programs/localedef.c:142
+#: locale/programs/localedef.c:148
msgid "Remove locales named by parameters from archive"
msgstr "genoemde taalregio's uit archief verwijderen"
-#: locale/programs/localedef.c:143
+#: locale/programs/localedef.c:149
msgid "List content of archive"
msgstr "inhoud van archief weergeven"
-#: locale/programs/localedef.c:145
+#: locale/programs/localedef.c:151
msgid "locale.alias file to consult when making archive"
msgstr "te raadplegen aliassenbestand tijdens archivering"
-#: locale/programs/localedef.c:147
+#: locale/programs/localedef.c:153
msgid "Generate little-endian output"
msgstr "little-endian uitvoer produceren"
-#: locale/programs/localedef.c:149
+#: locale/programs/localedef.c:155
msgid "Generate big-endian output"
msgstr "big-endian uitvoer produceren"
# FIXME: this is a docstring, it should end in a period
-#: locale/programs/localedef.c:154
+#: locale/programs/localedef.c:160
msgid "Compile locale specification"
msgstr "Compileert de definitie van een taalregio."
-#: locale/programs/localedef.c:157
+#: locale/programs/localedef.c:163
msgid ""
"NAME\n"
"[--add-to-archive|--delete-from-archive] FILE...\n"
@@ -2756,31 +2745,31 @@ msgstr ""
"[--add-to-archive|--delete-from-archive] BESTAND...\n"
"--list-archive [BESTAND]"
-#: locale/programs/localedef.c:232
+#: locale/programs/localedef.c:238
#, c-format
msgid "cannot create directory for output files"
msgstr "kan map voor uitvoerbestanden niet aanmaken"
-#: locale/programs/localedef.c:243
+#: locale/programs/localedef.c:249
msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
msgstr "FATAAL: systeem definieert '_POSIX2_LOCALEDEF' niet"
-#: locale/programs/localedef.c:257 locale/programs/localedef.c:273
-#: locale/programs/localedef.c:663 locale/programs/localedef.c:683
+#: locale/programs/localedef.c:263 locale/programs/localedef.c:279
+#: locale/programs/localedef.c:673 locale/programs/localedef.c:693
#, c-format
msgid "cannot open locale definition file `%s'"
msgstr "kan taalregiodefinitiebestand '%s' niet openen"
-#: locale/programs/localedef.c:297
+#: locale/programs/localedef.c:303
#, c-format
msgid "cannot write output files to `%s'"
msgstr "kan uitvoerbestanden niet naar '%s' schrijven"
-#: locale/programs/localedef.c:303
+#: locale/programs/localedef.c:309
msgid "no output file produced because errors were issued"
msgstr "geen uitvoerbestand aangemaakt omdat er fouten werden gerapporteerd"
-#: locale/programs/localedef.c:431
+#: locale/programs/localedef.c:441
#, c-format
msgid ""
"System's directory for character maps : %s\n"
@@ -2794,11 +2783,11 @@ msgstr ""
"\n"
"%s"
-#: locale/programs/localedef.c:631
+#: locale/programs/localedef.c:641
msgid "circular dependencies between locale definitions"
msgstr "circulaire afhankelijkheid tussen taalregiodefinities"
-#: locale/programs/localedef.c:637
+#: locale/programs/localedef.c:647
#, c-format
msgid "cannot add already read locale `%s' a second time"
msgstr "kan de reeds gelezen taalregio '%s' niet nogmaals toevoegen"
@@ -2954,24 +2943,24 @@ msgstr "kan uitvoerbestand '%s' niet openen voor categorie '%s'"
msgid "failure while writing data for category `%s'"
msgstr "fout bij schrijven van gegevens voor categorie '%s'"
-#: locale/programs/locfile.c:917
+#: locale/programs/locfile.c:930
#, c-format
msgid "cannot create output file `%s' for category `%s'"
msgstr "kan uitvoerbestand '%s' niet aanmaken voor categorie '%s'"
-#: locale/programs/locfile.c:953
+#: locale/programs/locfile.c:966
msgid "expecting string argument for `copy'"
msgstr "argument van 'copy' dient een tekenreeks te zijn"
-#: locale/programs/locfile.c:957
+#: locale/programs/locfile.c:970
msgid "locale name should consist only of portable characters"
msgstr "een taalregionaam mag alleen uit overdraagbare tekens bestaan"
-#: locale/programs/locfile.c:976
+#: locale/programs/locfile.c:989
msgid "no other keyword shall be specified when `copy' is used"
msgstr "als 'copy' gebruikt wordt, zijn geen andere sleutelwoorden toegestaan"
-#: locale/programs/locfile.c:990
+#: locale/programs/locfile.c:1003
#, c-format
msgid "`%1$s' definition does not end with `END %1$s'"
msgstr "%1$s: definitie eindigt niet met 'END %1$s'"
@@ -3811,12 +3800,12 @@ msgstr "yp_update: kan host niet converteren naar netnaam\n"
msgid "yp_update: cannot get server address\n"
msgstr "yp_update: kan server-adres niet opvragen\n"
-#: nscd/aicache.c:83 nscd/hstcache.c:452
+#: nscd/aicache.c:82 nscd/hstcache.c:452
#, c-format
msgid "Haven't found \"%s\" in hosts cache!"
msgstr "Item \"%s\" niet gevonden in hosts-cache!"
-#: nscd/aicache.c:85 nscd/hstcache.c:454
+#: nscd/aicache.c:84 nscd/hstcache.c:454
#, c-format
msgid "Reloading \"%s\" in hosts cache!"
msgstr "Herladen van \"%s\" in hosts-cache!"
@@ -3983,10 +3972,9 @@ msgid "error getting caller's id: %s"
msgstr "fout bij opvragen van ID van aanroeper: %s"
#: nscd/connections.c:1349
-#, fuzzy, c-format
-#| msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode"
+#, c-format
msgid "cannot open /proc/self/cmdline: %m; disabling paranoia mode"
-msgstr "kan '/proc/self/cmdline' niet openen: %s -- paranoia-modus is uitgeschakeld"
+msgstr "kan '/proc/self/cmdline' niet openen: %m -- paranoia-modus is uitgeschakeld"
#: nscd/connections.c:1372
#, c-format
@@ -4143,22 +4131,22 @@ msgstr "%zu bytes in cache %s zijn vrijgegeven"
msgid "no more memory for database '%s'"
msgstr "onvoldoende geheugen beschikbaar voor gegevensbank '%s'"
-#: nscd/netgroupcache.c:121
+#: nscd/netgroupcache.c:122
#, c-format
msgid "Haven't found \"%s\" in netgroup cache!"
msgstr "Item \"%s\" niet gevonden in groeps-cache!"
-#: nscd/netgroupcache.c:123
+#: nscd/netgroupcache.c:124
#, c-format
msgid "Reloading \"%s\" in netgroup cache!"
msgstr "Herladen van \"%s\" in groeps-cache!"
-#: nscd/netgroupcache.c:469
+#: nscd/netgroupcache.c:470
#, c-format
msgid "Haven't found \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr "Item \"%s (%s,%s,%s)\" niet gevonden in groeps-cache!"
-#: nscd/netgroupcache.c:472
+#: nscd/netgroupcache.c:473
#, c-format
msgid "Reloading \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr "Herladen van \"%s (%s,%s,%s)\" in groeps-cache!"
@@ -4213,7 +4201,7 @@ msgstr ""
" \n"
"Daemon voor namen-cache."
-#: nscd/nscd.c:155 nss/getent.c:967 nss/makedb.c:206
+#: nscd/nscd.c:155 nss/getent.c:987 nss/makedb.c:206
#, c-format
msgid "wrong number of arguments"
msgstr "onjuist aantal argumenten"
@@ -4321,27 +4309,27 @@ msgstr "Ontledingsfout: %s"
msgid "Must specify user name for server-user option"
msgstr "De optie 'server-user' vereist een gebruikersnaam als argument"
-#: nscd/nscd_conf.c:198
+#: nscd/nscd_conf.c:201
#, c-format
msgid "Must specify user name for stat-user option"
msgstr "De optie 'stat-user' vereist een gebruikersnaam als argument"
-#: nscd/nscd_conf.c:255
+#: nscd/nscd_conf.c:259
#, c-format
msgid "Must specify value for restart-interval option"
msgstr "De optie 'restart-interval' vereist een waarde als argument"
-#: nscd/nscd_conf.c:269
+#: nscd/nscd_conf.c:273
#, c-format
msgid "Unknown option: %s %s %s"
msgstr "Onbekende optie: %s %s %s"
-#: nscd/nscd_conf.c:282
+#: nscd/nscd_conf.c:286
#, c-format
msgid "cannot get current working directory: %s; disabling paranoia mode"
msgstr "Kan huidige werkmap niet bepalen: %s -- paranoia-modus is uitgeschakeld"
-#: nscd/nscd_conf.c:302
+#: nscd/nscd_conf.c:306
#, c-format
msgid "maximum file size for %s database too small"
msgstr "Maximum bestandsgrootte voor %s-gegevensbank is te klein"
@@ -4474,16 +4462,14 @@ msgstr ""
"%15s /etc/%s controleren op wijzigingen\n"
#: nscd/pwdcache.c:407
-#, fuzzy, c-format
-#| msgid "Haven't found \"%s\" in hosts cache!"
+#, c-format
msgid "Haven't found \"%s\" in user database cache!"
-msgstr "Item \"%s\" niet gevonden in hosts-cache!"
+msgstr "Item \"%s\" niet gevonden in gebruikers-cache!"
#: nscd/pwdcache.c:409
-#, fuzzy, c-format
-#| msgid "Reloading \"%s\" in hosts cache!"
+#, c-format
msgid "Reloading \"%s\" in user database cache!"
-msgstr "Herladen van \"%s\" in hosts-cache!"
+msgstr "Herladen van \"%s\" in gebruikers-cache!"
#: nscd/pwdcache.c:471
#, c-format
@@ -4605,47 +4591,46 @@ msgstr "Item \"%s\" niet gevonden in diensten-cache!"
msgid "Reloading \"%s\" in services cache!"
msgstr "Herladen van \"%s\" in diensten-cache!"
-#: nss/getent.c:54
+#: nss/getent.c:55
msgid "database [key ...]"
msgstr "gegevensbank [sleutel...]"
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "CONFIG"
msgstr "CONFIG"
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "Service configuration to be used"
msgstr "te gebruiken configuratie"
-#: nss/getent.c:60
+#: nss/getent.c:61
msgid "disable IDN encoding"
msgstr "IDN-codering uitschakelen"
-#: nss/getent.c:65
+#: nss/getent.c:66
msgid "Get entries from administrative database."
msgstr "Haalt items op uit een administratieve gegevensbank."
-#: nss/getent.c:149 nss/getent.c:442 nss/getent.c:489
+#: nss/getent.c:150 nss/getent.c:462 nss/getent.c:509
#, c-format
msgid "Enumeration not supported on %s\n"
msgstr "Opsomming wordt niet ondersteund op %s\n"
-#: nss/getent.c:497 nss/getent.c:510
-#, fuzzy, c-format
-#| msgid "Could not create log file"
+#: nss/getent.c:517 nss/getent.c:530
+#, c-format
msgid "Could not allocate group list: %m\n"
-msgstr "Kan geen logbestand aanmaken"
+msgstr "Kan geen geheugen reserveren voor groepslijst: %m\n"
-#: nss/getent.c:881
+#: nss/getent.c:901
#, c-format
msgid "Unknown database name"
msgstr "Onbekende gegevensbanknaam"
-#: nss/getent.c:911
+#: nss/getent.c:931
msgid "Supported databases:\n"
msgstr "Ondersteunde gegevensbanken:\n"
-#: nss/getent.c:977
+#: nss/getent.c:997
#, c-format
msgid "Unknown database: %s\n"
msgstr "Onbekende gegevensbank: %s\n"
@@ -4864,10 +4849,8 @@ msgid "Invalid back reference"
msgstr "Ongeldige terugverwijzing"
#: posix/regcomp.c:156
-#, fuzzy
-#| msgid "Unmatched [ or [^"
msgid "Unmatched [, [^, [:, [., or [="
-msgstr "Ongepaarde [ of [^"
+msgstr "Ongepaarde [, [^, [:, [., of [="
#: posix/regcomp.c:159
msgid "Unmatched ( or \\("
@@ -4905,11 +4888,11 @@ msgstr "Reguliere expressie is te groot"
msgid "Unmatched ) or \\)"
msgstr "Ongepaarde ) of \\)"
-#: posix/regcomp.c:689
+#: posix/regcomp.c:676
msgid "No previous regular expression"
msgstr "Geen eerdere reguliere expressie"
-#: posix/wordexp.c:1815
+#: posix/wordexp.c:1816
msgid "parameter null or not set"
msgstr "parameter is null of niet ingesteld"
@@ -5094,7 +5077,7 @@ msgstr "Uitvoerbuffers zijn beschikbaar"
msgid "Input message available"
msgstr "Invoerbericht is beschikbaar"
-#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:381 timezone/zic.c:520
+#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:375 timezone/zic.c:561
msgid "I/O error"
msgstr "Invoer-/uitvoerfout"
@@ -5177,7 +5160,7 @@ msgstr "Onbekend signaal %d"
#: sunrpc/auth_unix.c:112 sunrpc/clnt_tcp.c:124 sunrpc/clnt_udp.c:139
#: sunrpc/clnt_unix.c:125 sunrpc/svc_tcp.c:189 sunrpc/svc_tcp.c:233
#: sunrpc/svc_udp.c:161 sunrpc/svc_unix.c:189 sunrpc/svc_unix.c:229
-#: sunrpc/xdr.c:628 sunrpc/xdr.c:788 sunrpc/xdr_array.c:102
+#: sunrpc/xdr.c:631 sunrpc/xdr.c:791 sunrpc/xdr_array.c:102
#: sunrpc/xdr_rec.c:153 sunrpc/xdr_ref.c:79
msgid "out of memory\n"
msgstr "onvoldoende geheugen beschikbaar\n"
@@ -6435,56 +6418,69 @@ msgid "You really blew it this time"
msgstr "Deze keer hebt u het echt verknald"
#. TRANS Go home and have a glass of warm, dairy-fresh milk.
-#: sysdeps/gnu/errlist.c:978
+#. TRANS @c Okay. Since you are dying to know, I'll tell you.
+#. TRANS @c This is a joke, obviously. There is a children's song which begins,
+#. TRANS @c "Old McDonald had a farm, e-i-e-i-o." Every time I see the (real)
+#. TRANS @c errno macro EIO, I think about that song. Probably most of my
+#. TRANS @c compatriots who program on Unix do, too. One of them must have stayed
+#. TRANS @c up a little too late one night and decided to add it to Hurd or Glibc.
+#. TRANS @c Whoever did it should be castigated, but it made me laugh.
+#. TRANS @c --jtobey@channel1.com
+#. TRANS @c
+#. TRANS @c "bought the farm" means "died". -jtobey
+#. TRANS @c
+#. TRANS @c Translators, please do not translate this litteraly, translate it into
+#. TRANS @c an idiomatic funny way of saying that the computer died.
+#: sysdeps/gnu/errlist.c:991
msgid "Computer bought the farm"
msgstr "Ga er even rustig bij zitten"
#. TRANS This error code has no purpose.
-#: sysdeps/gnu/errlist.c:987
+#: sysdeps/gnu/errlist.c:1000
msgid "Gratuitous error"
msgstr "Zinloze fout"
-#: sysdeps/gnu/errlist.c:995
+#: sysdeps/gnu/errlist.c:1008
msgid "Bad message"
msgstr "Ongeldig bericht"
-#: sysdeps/gnu/errlist.c:1003
+#: sysdeps/gnu/errlist.c:1016
msgid "Identifier removed"
msgstr "Naam is verwijderd"
-#: sysdeps/gnu/errlist.c:1011
+#: sysdeps/gnu/errlist.c:1024
msgid "Multihop attempted"
msgstr "Multihop geprobeerd"
-#: sysdeps/gnu/errlist.c:1019
+#: sysdeps/gnu/errlist.c:1032
msgid "No data available"
msgstr "Geen gegevens beschikbaar"
-#: sysdeps/gnu/errlist.c:1027
+#: sysdeps/gnu/errlist.c:1040
msgid "Link has been severed"
msgstr "Koppeling is verbroken"
-#: sysdeps/gnu/errlist.c:1035
+#: sysdeps/gnu/errlist.c:1048
msgid "No message of desired type"
msgstr "Geen bericht van de gewenste soort"
-#: sysdeps/gnu/errlist.c:1043
+#: sysdeps/gnu/errlist.c:1056
msgid "Out of streams resources"
msgstr "Geen hulpbronnen voor stromen meer beschikbaar"
-#: sysdeps/gnu/errlist.c:1051
+#: sysdeps/gnu/errlist.c:1064
msgid "Device not a stream"
msgstr "Apparaat is geen stroom"
-#: sysdeps/gnu/errlist.c:1059
+#: sysdeps/gnu/errlist.c:1072
msgid "Value too large for defined data type"
msgstr "Waarde is te groot voor gedefinieerde gegevenssoort"
-#: sysdeps/gnu/errlist.c:1067
+#: sysdeps/gnu/errlist.c:1080
msgid "Protocol error"
msgstr "Protocolfout"
-#: sysdeps/gnu/errlist.c:1075
+#: sysdeps/gnu/errlist.c:1088
msgid "Timer expired"
msgstr "Timer is verlopen"
@@ -6492,195 +6488,195 @@ msgstr "Timer is verlopen"
#. TRANS completed. @xref{Asynchronous I/O}. When you call @code{aio_cancel},
#. TRANS the normal result is for the operations affected to complete with this
#. TRANS error; @pxref{Cancel AIO Operations}.
-#: sysdeps/gnu/errlist.c:1087
+#: sysdeps/gnu/errlist.c:1100
msgid "Operation canceled"
msgstr "Actie is geannuleerd"
-#: sysdeps/gnu/errlist.c:1095
+#: sysdeps/gnu/errlist.c:1108
msgid "Owner died"
msgstr "Eigenaar bestaat niet meer"
-#: sysdeps/gnu/errlist.c:1103
+#: sysdeps/gnu/errlist.c:1116
msgid "State not recoverable"
msgstr "Toestand is onherstelbaar"
-#: sysdeps/gnu/errlist.c:1111
+#: sysdeps/gnu/errlist.c:1124
msgid "Interrupted system call should be restarted"
msgstr "Onderbroken systeemaanroep moet worden herstart"
-#: sysdeps/gnu/errlist.c:1119
+#: sysdeps/gnu/errlist.c:1132
msgid "Channel number out of range"
msgstr "Kanaalnummer valt buiten bereik"
-#: sysdeps/gnu/errlist.c:1127
+#: sysdeps/gnu/errlist.c:1140
msgid "Level 2 not synchronized"
msgstr "Niveau 2 is niet gesynchroniseerd"
-#: sysdeps/gnu/errlist.c:1135
+#: sysdeps/gnu/errlist.c:1148
msgid "Level 3 halted"
msgstr "Niveau 3 staat stil"
-#: sysdeps/gnu/errlist.c:1143
+#: sysdeps/gnu/errlist.c:1156
msgid "Level 3 reset"
msgstr "Niveau 3 reset"
-#: sysdeps/gnu/errlist.c:1151
+#: sysdeps/gnu/errlist.c:1164
msgid "Link number out of range"
msgstr "Koppelingsnummer valt buiten bereik"
-#: sysdeps/gnu/errlist.c:1159
+#: sysdeps/gnu/errlist.c:1172
msgid "Protocol driver not attached"
msgstr "Protocolstuurprogramma is niet aangehecht"
-#: sysdeps/gnu/errlist.c:1167
+#: sysdeps/gnu/errlist.c:1180
msgid "No CSI structure available"
msgstr "Geen CSI-structuur beschikbaar"
-#: sysdeps/gnu/errlist.c:1175
+#: sysdeps/gnu/errlist.c:1188
msgid "Level 2 halted"
msgstr "Niveau 2 staat stil"
-#: sysdeps/gnu/errlist.c:1183
+#: sysdeps/gnu/errlist.c:1196
msgid "Invalid exchange"
msgstr "Ongeldige uitwisseling"
-#: sysdeps/gnu/errlist.c:1191
+#: sysdeps/gnu/errlist.c:1204
msgid "Invalid request descriptor"
msgstr "Ongeldige verzoeksdescriptor"
-#: sysdeps/gnu/errlist.c:1199
+#: sysdeps/gnu/errlist.c:1212
msgid "Exchange full"
msgstr "Uitwisseling is vol"
-#: sysdeps/gnu/errlist.c:1207
+#: sysdeps/gnu/errlist.c:1220
msgid "No anode"
msgstr "Geen anode"
-#: sysdeps/gnu/errlist.c:1215
+#: sysdeps/gnu/errlist.c:1228
msgid "Invalid request code"
msgstr "Ongeldige verzoekscode"
-#: sysdeps/gnu/errlist.c:1223
+#: sysdeps/gnu/errlist.c:1236
msgid "Invalid slot"
msgstr "Ongeldige sleuf"
-#: sysdeps/gnu/errlist.c:1231
+#: sysdeps/gnu/errlist.c:1244
msgid "File locking deadlock error"
msgstr "Bestandsvergrendelingsfout; totale blokkering"
-#: sysdeps/gnu/errlist.c:1239
+#: sysdeps/gnu/errlist.c:1252
msgid "Bad font file format"
msgstr "Ongeldige bestandsindeling voor lettertype"
-#: sysdeps/gnu/errlist.c:1247
+#: sysdeps/gnu/errlist.c:1260
msgid "Machine is not on the network"
msgstr "Machine is niet op netwerk aangesloten"
-#: sysdeps/gnu/errlist.c:1255
+#: sysdeps/gnu/errlist.c:1268
msgid "Package not installed"
msgstr "Pakket is niet geïnstalleerd"
-#: sysdeps/gnu/errlist.c:1263
+#: sysdeps/gnu/errlist.c:1276
msgid "Advertise error"
msgstr "Adverteerfout"
-#: sysdeps/gnu/errlist.c:1271
+#: sysdeps/gnu/errlist.c:1284
msgid "Srmount error"
msgstr "Srmount-fout"
-#: sysdeps/gnu/errlist.c:1279
+#: sysdeps/gnu/errlist.c:1292
msgid "Communication error on send"
msgstr "Communicatiefout bij verzenden"
-#: sysdeps/gnu/errlist.c:1287
+#: sysdeps/gnu/errlist.c:1300
msgid "RFS specific error"
msgstr "RFS-specifieke fout"
-#: sysdeps/gnu/errlist.c:1295
+#: sysdeps/gnu/errlist.c:1308
msgid "Name not unique on network"
msgstr "Naam is niet uniek op het netwerk"
-#: sysdeps/gnu/errlist.c:1303
+#: sysdeps/gnu/errlist.c:1316
msgid "File descriptor in bad state"
msgstr "Bestandsdescriptor is in ongeldige toestand"
-#: sysdeps/gnu/errlist.c:1311
+#: sysdeps/gnu/errlist.c:1324
msgid "Remote address changed"
msgstr "Ginds adres is veranderd"
-#: sysdeps/gnu/errlist.c:1319
+#: sysdeps/gnu/errlist.c:1332
msgid "Can not access a needed shared library"
msgstr "Kan geen toegang krijgen tot benodigde gedeelde bibliotheek"
-#: sysdeps/gnu/errlist.c:1327
+#: sysdeps/gnu/errlist.c:1340
msgid "Accessing a corrupted shared library"
msgstr "Er wordt toegang gezocht tot een beschadigde gedeelde bibliotheek"
-#: sysdeps/gnu/errlist.c:1335
+#: sysdeps/gnu/errlist.c:1348
msgid ".lib section in a.out corrupted"
msgstr ".lib-sectie in a.out is beschadigd"
-#: sysdeps/gnu/errlist.c:1343
+#: sysdeps/gnu/errlist.c:1356
msgid "Attempting to link in too many shared libraries"
msgstr "Er wordt geprobeerd te veel gedeelde bibliotheken te linken"
-#: sysdeps/gnu/errlist.c:1351
+#: sysdeps/gnu/errlist.c:1364
msgid "Cannot exec a shared library directly"
msgstr "Kan een gedeelde bibliotheek niet direct uitvoeren"
-#: sysdeps/gnu/errlist.c:1359
+#: sysdeps/gnu/errlist.c:1372
msgid "Streams pipe error"
msgstr "Pijpfout bij stromen"
-#: sysdeps/gnu/errlist.c:1367
+#: sysdeps/gnu/errlist.c:1380
msgid "Structure needs cleaning"
msgstr "Structure moet worden opgeschoond"
-#: sysdeps/gnu/errlist.c:1375
+#: sysdeps/gnu/errlist.c:1388
msgid "Not a XENIX named type file"
msgstr "Niet een XENIX-bestand met naam"
-#: sysdeps/gnu/errlist.c:1383
+#: sysdeps/gnu/errlist.c:1396
msgid "No XENIX semaphores available"
msgstr "Geen XENIX-semaforen beschikbaar"
-#: sysdeps/gnu/errlist.c:1391
+#: sysdeps/gnu/errlist.c:1404
msgid "Is a named type file"
msgstr "Is een bestand met naam"
-#: sysdeps/gnu/errlist.c:1399
+#: sysdeps/gnu/errlist.c:1412
msgid "Remote I/O error"
msgstr "Gindse invoer-/uitvoerfout"
-#: sysdeps/gnu/errlist.c:1407
+#: sysdeps/gnu/errlist.c:1420
msgid "No medium found"
msgstr "Geen medium gevonden"
-#: sysdeps/gnu/errlist.c:1415
+#: sysdeps/gnu/errlist.c:1428
msgid "Wrong medium type"
msgstr "Verkeerde mediumsoort"
-#: sysdeps/gnu/errlist.c:1423
+#: sysdeps/gnu/errlist.c:1436
msgid "Required key not available"
msgstr "Vereiste sleutel is niet beschikbaar"
-#: sysdeps/gnu/errlist.c:1431
+#: sysdeps/gnu/errlist.c:1444
msgid "Key has expired"
msgstr "Sleutel is verlopen"
-#: sysdeps/gnu/errlist.c:1439
+#: sysdeps/gnu/errlist.c:1452
msgid "Key has been revoked"
msgstr "Sleutel is herroepen"
-#: sysdeps/gnu/errlist.c:1447
+#: sysdeps/gnu/errlist.c:1460
msgid "Key was rejected by service"
msgstr "Sleutel werd geweigerd door service"
-#: sysdeps/gnu/errlist.c:1455
+#: sysdeps/gnu/errlist.c:1468
msgid "Operation not possible due to RF-kill"
msgstr "Actie is niet mogelijk vanwege RF-kill"
-#: sysdeps/gnu/errlist.c:1463
+#: sysdeps/gnu/errlist.c:1476
msgid "Memory page has hardware error"
msgstr "Geheugenpagina bevat een hardware-fout"
@@ -6787,49 +6783,45 @@ msgstr "kan kop van '%s' niet lezen"
#: sysdeps/x86/dl-cet.c:202
msgid "mprotect legacy bitmap failed"
-msgstr ""
+msgstr "'mprotect' voor verouderde bitkaart is mislukt"
#: sysdeps/x86/dl-cet.c:217
-#, fuzzy
-#| msgid "Data input available"
msgid "legacy bitmap isn't available"
-msgstr "Gegevensinvoer is beschikbaar"
+msgstr "verouderde bitkaart is niet beschikbaar"
#: sysdeps/x86/dl-cet.c:247
-#, fuzzy
-#| msgid "failed to start conversion processing"
msgid "failed to mark legacy code region"
-msgstr "beginnen van conversieproces is mislukt"
+msgstr "markeren van verouderd codeblok is mislukt"
#: sysdeps/x86/dl-cet.c:269
msgid "shadow stack isn't enabled"
-msgstr ""
+msgstr "schaduw-stack is niet ingeschakeld"
#: sysdeps/x86/dl-cet.c:290
msgid "can't disable CET"
-msgstr ""
+msgstr "kan CET niet uitschakelen"
-#: timezone/zdump.c:338
+#: timezone/zdump.c:332
msgid "has fewer than 3 characters"
msgstr "heeft minder dan drie tekens"
-#: timezone/zdump.c:340
+#: timezone/zdump.c:334
msgid "has more than 6 characters"
msgstr "heeft meer dan zes tekens"
-#: timezone/zdump.c:342
+#: timezone/zdump.c:336
msgid "has characters other than ASCII alphanumerics, '-' or '+'"
msgstr "bevat andere tekens dan ASCII-letters en -cijfers en '+' en '-'"
-#: timezone/zdump.c:347
+#: timezone/zdump.c:341
#, c-format
msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n"
msgstr "%s: Waarschuwing: zone \"%s\", afkorting \"%s\" %s\n"
-#: timezone/zdump.c:393
+#: timezone/zdump.c:387
#, c-format
msgid ""
-"%s: usage: %s OPTIONS ZONENAME ...\n"
+"%s: usage: %s OPTIONS TIMEZONE ...\n"
"Options include:\n"
" -c [L,]U Start at year L (default -500), end before year U (default 2500)\n"
" -t [L,]U Start at time L, end before time U (in seconds since 1970)\n"
@@ -6852,186 +6844,196 @@ msgstr ""
" --help deze hulptekst tonen\n"
" --version programmaversie tonen\n"
"\n"
-"Rapporteer programmagebreken aan %s;\n"
+"Rapporteer gebreken in het programma aan %s;\n"
"meld fouten in de vertaling aan <vertaling@vrijschrift.nl>.\n"
-#: timezone/zdump.c:479
+#: timezone/zdump.c:473
#, c-format
msgid "%s: wild -c argument %s\n"
msgstr "%s: extra argument %s bij optie -c\n"
-#: timezone/zdump.c:512
+#: timezone/zdump.c:506
#, c-format
msgid "%s: wild -t argument %s\n"
msgstr "%s: extra argument %s bij optie -t\n"
-#: timezone/zic.c:398
+#: timezone/zic.c:429
#, c-format
msgid "%s: Memory exhausted: %s\n"
msgstr "%s: Onvoldoende geheugen beschikbaar: %s\n"
-#: timezone/zic.c:406
+#: timezone/zic.c:437
msgid "size overflow"
msgstr "grootteoverloop"
-#: timezone/zic.c:454
+#: timezone/zic.c:447
+msgid "alignment overflow"
+msgstr "uitlijningsoverloop"
+
+#: timezone/zic.c:495
msgid "integer overflow"
msgstr "geheelgetaloverloop"
-#: timezone/zic.c:488
+#: timezone/zic.c:529
#, c-format
msgid "\"%s\", line %<PRIdMAX>: "
msgstr "\"%s\", regel %<PRIdMAX>: "
-#: timezone/zic.c:491
+#: timezone/zic.c:532
#, c-format
msgid " (rule from \"%s\", line %<PRIdMAX>)"
msgstr " (voorschrift uit \"%s\", regel %<PRIdMAX>)"
-#: timezone/zic.c:510
+#: timezone/zic.c:551
#, c-format
msgid "warning: "
msgstr "waarschuwing: "
-#: timezone/zic.c:535
+#: timezone/zic.c:576
#, c-format
msgid ""
"%s: usage is %s [ --version ] [ --help ] [ -v ] \\\n"
"\t[ -l localtime ] [ -p posixrules ] [ -d directory ] \\\n"
-"\t[ -L leapseconds ] [ filename ... ]\n"
+"\t[ -t localtime-link ] [ -L leapseconds ] [ filename ... ]\n"
"\n"
"Report bugs to %s.\n"
msgstr ""
"Gebruik: %s [-v] [-d map] [-l lokaletijdzone] [-p posixvoorschriftenzone]\\\n"
-" [-L schrikkelsecondenbestand] [bestand...]\n"
+" [-t lokaletijdlink] [-L schrikkelsecondenbestand] [bestand...]\n"
" of: %s [--version] [--help]\n"
"\n"
-"Rapporteer programmafouten aan %s.\n"
+"Rapporteer gebreken in het programma aan %s;\n"
+"meld fouten in de vertaling aan <vertaling@vrijschrift.nl>.\n"
-#: timezone/zic.c:558
+#: timezone/zic.c:599
#, c-format
msgid "%s: Can't chdir to %s: %s\n"
msgstr "%s: Kan huidige map niet wijzigen naar %s: %s\n"
-#: timezone/zic.c:590
+#: timezone/zic.c:632
msgid "wild compilation-time specification of zic_t"
msgstr "compilatiefout: type 'zic_t' heeft te weinig bits"
-#: timezone/zic.c:610
+#: timezone/zic.c:652
#, c-format
msgid "%s: More than one -d option specified\n"
msgstr "%s: Optie -d is meermaals gegeven\n"
-#: timezone/zic.c:620
+#: timezone/zic.c:662
#, c-format
msgid "%s: More than one -l option specified\n"
msgstr "%s: Optie -l is meermaals gegeven\n"
-#: timezone/zic.c:630
+#: timezone/zic.c:672
#, c-format
msgid "%s: More than one -p option specified\n"
msgstr "%s: Optie -p is meermaals gegeven\n"
-#: timezone/zic.c:640
+#: timezone/zic.c:680
+#, c-format
+msgid "%s: More than one -t option specified\n"
+msgstr "%s: Optie -t is meermaals gegeven\n"
+
+#: timezone/zic.c:689
+msgid "-y is obsolescent"
+msgstr "-y is verouderd"
+
+#: timezone/zic.c:693
#, c-format
msgid "%s: More than one -y option specified\n"
msgstr "%s: Optie -y is meermaals gegeven\n"
-#: timezone/zic.c:650
+#: timezone/zic.c:703
#, c-format
msgid "%s: More than one -L option specified\n"
msgstr "%s: Optie -L is meermaals gegeven\n"
-#: timezone/zic.c:659
+#: timezone/zic.c:712
msgid "-s ignored"
msgstr "optie '-s' is genegeerd"
-#: timezone/zic.c:698
+#: timezone/zic.c:753
msgid "link to link"
msgstr "koppeling naar een andere koppeling"
-#: timezone/zic.c:701 timezone/zic.c:705
+#: timezone/zic.c:756 timezone/zic.c:760
msgid "command line"
msgstr "opdrachtregel"
-#: timezone/zic.c:721
+#: timezone/zic.c:776
msgid "empty file name"
msgstr "lege bestandsnaam"
-#: timezone/zic.c:724
+#: timezone/zic.c:779
#, c-format
msgid "file name '%s' begins with '/'"
msgstr "bestandsnaam '%s' begint met '/'"
-#: timezone/zic.c:734
+#: timezone/zic.c:789
#, c-format
msgid "file name '%s' contains '%.*s' component"
msgstr "bestandsnaam '%s' bevat een '%.*s'-component"
-#: timezone/zic.c:740
+#: timezone/zic.c:795
#, c-format
msgid "file name '%s' component contains leading '-'"
msgstr "bestandsnaam '%s' bevat component met een leidende '-'"
-#: timezone/zic.c:743
+#: timezone/zic.c:798
#, c-format
msgid "file name '%s' contains overlength component '%.*s...'"
msgstr "bestandsnaam '%s' bevat overlange component '%.*s...'"
-#: timezone/zic.c:771
+#: timezone/zic.c:826
#, c-format
msgid "file name '%s' contains byte '%c'"
msgstr "bestandsnaam '%s' bevat byte '%c'"
-#: timezone/zic.c:772
+#: timezone/zic.c:827
#, c-format
msgid "file name '%s' contains byte '\\%o'"
msgstr "bestandsnaam '%s' bevat byte '\\%o'"
-#: timezone/zic.c:842
+#: timezone/zic.c:897
#, c-format
msgid "%s: link from %s/%s failed: %s\n"
msgstr "%s: aanmaken van koppeling vanaf %s/%s is mislukt: %s\n"
-#: timezone/zic.c:852 timezone/zic.c:1815
+#: timezone/zic.c:907 timezone/zic.c:1876
#, c-format
msgid "%s: Can't remove %s/%s: %s\n"
msgstr "%s: Kan %s/%s niet verwijderen: %s\n"
-#: timezone/zic.c:874
+#: timezone/zic.c:931
#, c-format
msgid "symbolic link used because hard link failed: %s"
msgstr "symbolische koppeling gemaakt omdat harde koppeling mislukte: %s"
-#: timezone/zic.c:882
+#: timezone/zic.c:939
#, c-format
msgid "%s: Can't read %s/%s: %s\n"
msgstr "%s: Kan %s/%s niet lezen: %s\n"
-#: timezone/zic.c:889 timezone/zic.c:1828
+#: timezone/zic.c:946 timezone/zic.c:1889
#, c-format
msgid "%s: Can't create %s/%s: %s\n"
msgstr "%s: Kan %s/%s niet aanmaken: %s\n"
-#: timezone/zic.c:898
+#: timezone/zic.c:955
#, c-format
msgid "copy used because hard link failed: %s"
msgstr "kopie gemaakt omdat harde koppeling mislukte: %s"
-#: timezone/zic.c:901
+#: timezone/zic.c:958
#, c-format
msgid "copy used because symbolic link failed: %s"
msgstr "kopie gemaakt omdat symbolische koppeling mislukte: %s"
-#: timezone/zic.c:1013 timezone/zic.c:1015
+#: timezone/zic.c:1032 timezone/zic.c:1034
msgid "same rule name in multiple files"
msgstr "dezelfde voorschriftnaam in meerdere bestanden"
-#: timezone/zic.c:1056
-msgid "unruly zone"
-msgstr "onhandelbare zone"
-
-#: timezone/zic.c:1063
+#: timezone/zic.c:1081
#, c-format
msgid "%s in ruleless zone"
msgstr "%s in voorschriftloze zone"
@@ -7040,260 +7042,290 @@ msgstr "%s in voorschriftloze zone"
# This is the name of the program's standard input. The place input
# from getchar (et al) comes from.
#
-#: timezone/zic.c:1083
+#: timezone/zic.c:1101
msgid "standard input"
msgstr "standaardinvoer"
-#: timezone/zic.c:1088
+#: timezone/zic.c:1106
#, c-format
msgid "%s: Can't open %s: %s\n"
msgstr "%s: Kan %s niet openen: %s\n"
-#: timezone/zic.c:1099
+#: timezone/zic.c:1117
msgid "line too long"
msgstr "regel is te lang"
-#: timezone/zic.c:1119
+#: timezone/zic.c:1139
msgid "input line of unknown type"
msgstr "invoerregel is van onbekende soort"
-#: timezone/zic.c:1134
-#, c-format
-msgid "%s: Leap line in non leap seconds file %s"
-msgstr "%s: Schrikkelregel in niet-schrikkelsecondenbestand %s"
-
-#: timezone/zic.c:1142 timezone/zic.c:1547 timezone/zic.c:1569
+#: timezone/zic.c:1158 timezone/zic.c:1593 timezone/zic.c:1615
#, c-format
msgid "%s: panic: Invalid l_value %d\n"
msgstr "%s: **interne fout** -- ongeldige regelcode %d\n"
-#: timezone/zic.c:1151
+#: timezone/zic.c:1167
msgid "expected continuation line not found"
msgstr "verwachte regelcontinuering is niet gevonden"
-#: timezone/zic.c:1193 timezone/zic.c:2976
+#: timezone/zic.c:1203
+msgid "fractional seconds rejected by pre-2018 versions of zic"
+msgstr "fractionele seconden worden geweigerd door versies van 'zic' van voor 2018"
+
+#: timezone/zic.c:1221 timezone/zic.c:3078
msgid "time overflow"
msgstr "tijdsoverloop"
-#: timezone/zic.c:1198
+#: timezone/zic.c:1227
msgid "values over 24 hours not handled by pre-2007 versions of zic"
msgstr "versies van 'zic' van voor 2007 kunnen uren boven de 24 niet aan"
-#: timezone/zic.c:1209
+#: timezone/zic.c:1245
+msgid "invalid saved time"
+msgstr "ongeldige opgeslagen tijd"
+
+#: timezone/zic.c:1256
msgid "wrong number of fields on Rule line"
msgstr "verkeerd aantal velden op 'Rule'-regel"
-#: timezone/zic.c:1213
-msgid "nameless rule"
-msgstr "naamloos voorschrift"
-
-#: timezone/zic.c:1218
-msgid "invalid saved time"
-msgstr "ongeldige opgeslagen tijd"
+#: timezone/zic.c:1265
+#, c-format
+msgid "Invalid rule name \"%s\""
+msgstr "Ongeldige regelnaam \"%s\""
-#: timezone/zic.c:1235
+#: timezone/zic.c:1287
msgid "wrong number of fields on Zone line"
msgstr "verkeerd aantal velden op 'Zone'-regel"
-#: timezone/zic.c:1240
+#: timezone/zic.c:1292
#, c-format
msgid "\"Zone %s\" line and -l option are mutually exclusive"
msgstr "De regel \"Zone %s\" en optie -l sluiten elkaar uit"
-#: timezone/zic.c:1246
+#: timezone/zic.c:1298
#, c-format
msgid "\"Zone %s\" line and -p option are mutually exclusive"
msgstr "De regel \"Zone %s\" en optie -p sluiten elkaar uit"
-#: timezone/zic.c:1253
+#: timezone/zic.c:1305
#, c-format
msgid "duplicate zone name %s (file \"%s\", line %<PRIdMAX>)"
msgstr "dubbele zonenaam '%s' (in bestand %s, regel %<PRIdMAX>)"
-#: timezone/zic.c:1267
+#: timezone/zic.c:1319
msgid "wrong number of fields on Zone continuation line"
msgstr "verkeerd aantal velden op 'Zone'-continueringsregel"
-#: timezone/zic.c:1307
+#: timezone/zic.c:1359
msgid "invalid UT offset"
msgstr "ongeldige verschuiving ten opzichte van UTC"
-#: timezone/zic.c:1311
+#: timezone/zic.c:1363
msgid "invalid abbreviation format"
msgstr "ongeldige opmaak voor afkorting"
-#: timezone/zic.c:1320
+#: timezone/zic.c:1372
#, c-format
msgid "format '%s' not handled by pre-2015 versions of zic"
msgstr "opmaak '%s' werkt niet in versies van 'zic' van voor 2015"
-#: timezone/zic.c:1347
+#: timezone/zic.c:1399
msgid "Zone continuation line end time is not after end time of previous line"
msgstr "'Zone'-continueringsregel: eindtijd ligt niet na eindtijd van vorige regel"
-#: timezone/zic.c:1374
+#: timezone/zic.c:1426
msgid "wrong number of fields on Leap line"
msgstr "verkeerd aantal velden op 'Leap'-regel"
-#: timezone/zic.c:1383
+#: timezone/zic.c:1435
msgid "invalid leaping year"
msgstr "ongeldig schrikkeljaar"
-#: timezone/zic.c:1403 timezone/zic.c:1501
+#: timezone/zic.c:1455 timezone/zic.c:1547
msgid "invalid month name"
msgstr "ongeldige maandnaam"
-#: timezone/zic.c:1416 timezone/zic.c:1614 timezone/zic.c:1628
+#: timezone/zic.c:1468 timezone/zic.c:1663 timezone/zic.c:1677
msgid "invalid day of month"
msgstr "ongeldige dag van maand"
-#: timezone/zic.c:1421
+#: timezone/zic.c:1473
msgid "time too small"
msgstr "tijdswaarde is te klein"
-#: timezone/zic.c:1425
+#: timezone/zic.c:1477
msgid "time too large"
msgstr "tijdswaarde is te groot"
-#: timezone/zic.c:1429 timezone/zic.c:1530
+#: timezone/zic.c:1481 timezone/zic.c:1576
msgid "invalid time of day"
msgstr "ongeldige tijd van de dag"
-#: timezone/zic.c:1448
+#: timezone/zic.c:1494
msgid "illegal CORRECTION field on Leap line"
msgstr "ongeldig CORRECTION-veld op 'Leap'-regel"
-#: timezone/zic.c:1453
+#: timezone/zic.c:1499
msgid "illegal Rolling/Stationary field on Leap line"
msgstr "ongeldig 'Rolling'/'Stationary'-veld op 'Leap'-regel"
-#: timezone/zic.c:1459
-msgid "leap second precedes Big Bang"
-msgstr "schrikkelseconde valt voor de oerknal"
+#: timezone/zic.c:1505
+msgid "leap second precedes Epoch"
+msgstr "schrikkelseconde valt voor begin van tijdperk"
-#: timezone/zic.c:1472
+#: timezone/zic.c:1518
msgid "wrong number of fields on Link line"
msgstr "verkeerd aantal velden op 'Link'-regel"
-#: timezone/zic.c:1476
+#: timezone/zic.c:1522
msgid "blank FROM field on Link line"
msgstr "leeg FROM-veld op 'Link'-regel"
-#: timezone/zic.c:1551
+#: timezone/zic.c:1597
msgid "invalid starting year"
msgstr "ongeldig beginjaar"
-#: timezone/zic.c:1573
+#: timezone/zic.c:1619
msgid "invalid ending year"
msgstr "ongeldig eindjaar"
-#: timezone/zic.c:1577
+#: timezone/zic.c:1623
msgid "starting year greater than ending year"
msgstr "beginjaar is groter dan eindjaar"
-#: timezone/zic.c:1584
+#: timezone/zic.c:1630
msgid "typed single year"
msgstr "begin- en eindjaar zijn gelijk"
-#: timezone/zic.c:1619
+#: timezone/zic.c:1633
+#, c-format
+msgid "year type \"%s\" is obsolete; use \"-\" instead"
+msgstr "jaartype \"%s\" verouderd; gebruik hiervoor in de plaats \"-\""
+
+#: timezone/zic.c:1668
msgid "invalid weekday name"
msgstr "ongeldige naam voor weekdag"
-#: timezone/zic.c:1743
+#: timezone/zic.c:1800
#, c-format
msgid "reference clients mishandle more than %d transition times"
msgstr "meer dan %d overgangstijden worden door referentie-clients onjuist behandeld"
-#: timezone/zic.c:1747
+#: timezone/zic.c:1804
msgid "pre-2014 clients may mishandle more than 1200 transition times"
msgstr "clients van voor 2014 zouden meer dan 1200 overgangstijden onjuist kunnen behandelen"
-#: timezone/zic.c:1858
+#: timezone/zic.c:1920
msgid "too many transition times"
msgstr "te veel overgangstijden"
-#: timezone/zic.c:2047
+#: timezone/zic.c:2107
#, c-format
-msgid "%%z UTC offset magnitude exceeds 99:59:59"
-msgstr "verschuiving %%z t.o.v. UTC is groter dan 99:59:59"
+msgid "%%z UT offset magnitude exceeds 99:59:59"
+msgstr "verschuiving %%z t.o.v. UT is groter dan 99:59:59"
-#: timezone/zic.c:2424
+#: timezone/zic.c:2488
msgid "no POSIX environment variable for zone"
msgstr "geen POSIX-omgevingsvariabele voor tijdzone"
-#: timezone/zic.c:2430
+#: timezone/zic.c:2494
#, c-format
msgid "%s: pre-%d clients may mishandle distant timestamps"
msgstr "%s: clients van voor %d zouden verre tijdsstempels onjuist kunnen behandelen"
-#: timezone/zic.c:2566
+#: timezone/zic.c:2631
msgid "two rules for same instant"
msgstr "twee voorschriften voor hetzelfde moment"
-#: timezone/zic.c:2627
+#: timezone/zic.c:2696
msgid "can't determine time zone abbreviation to use just after until time"
msgstr "kan tijdzone-afkorting voor gebruik na een tot-tijd niet bepalen"
-#: timezone/zic.c:2725
+#: timezone/zic.c:2785
msgid "too many local time types"
msgstr "te veel soorten lokale tijd"
-#: timezone/zic.c:2729
+#: timezone/zic.c:2789
msgid "UT offset out of range"
msgstr "verschuiving ten opzichte van UTC valt buiten bereik"
-#: timezone/zic.c:2753
+#: timezone/zic.c:2813
msgid "too many leap seconds"
msgstr "te veel schrikkelseconden"
-#: timezone/zic.c:2759
-msgid "repeated leap second moment"
-msgstr "herhaald schrikkelseconde-moment"
+#: timezone/zic.c:2844
+msgid "Leap seconds too close together"
+msgstr "schrikkelseconden liggen te dicht bij elkaar"
-#: timezone/zic.c:2830
+#: timezone/zic.c:2891
msgid "Wild result from command execution"
msgstr "Vreemd resultaat van uitgevoerde opdracht"
-#: timezone/zic.c:2831
+#: timezone/zic.c:2892
#, c-format
msgid "%s: command was '%s', result was %d\n"
msgstr "%s: opdracht was '%s', resultaat was %d\n"
-#: timezone/zic.c:2961
+#: timezone/zic.c:2998
+#, c-format
+msgid "\"%s\" is undocumented; use \"last%s\" instead"
+msgstr "\"%s\" is ongedocumenteerd; gebruik hiervoor in de plaats \"last%s\""
+
+#: timezone/zic.c:3029
+#, c-format
+msgid "\"%s\" is ambiguous in pre-2017c zic"
+msgstr "\"%s\" is niet eenduidig in 'zic' van voor 2017"
+
+#: timezone/zic.c:3063
msgid "Odd number of quotation marks"
msgstr "Oneven aantal aanhalingstekens"
-#: timezone/zic.c:3046
+#: timezone/zic.c:3157
msgid "use of 2/29 in non leap-year"
msgstr "'29-2' gebruikt in een niet-schrikkeljaar"
-#: timezone/zic.c:3081
+#: timezone/zic.c:3192
msgid "rule goes past start/end of month; will not work with pre-2004 versions of zic"
msgstr ""
"voorschrift gaat voorbij begin of einde van maand --\n"
"dit zal niet werken met versies van 'zic' van voor 2004"
-#: timezone/zic.c:3108
+#: timezone/zic.c:3219
msgid "time zone abbreviation has fewer than 3 characters"
msgstr "tijdzone-afkorting heeft minder dan drie tekens"
-#: timezone/zic.c:3110
+#: timezone/zic.c:3221
msgid "time zone abbreviation has too many characters"
msgstr "tijdzone-afkorting heeft te veel tekens"
-#: timezone/zic.c:3112
+#: timezone/zic.c:3223
msgid "time zone abbreviation differs from POSIX standard"
msgstr "tijdzone-afkorting verschilt van de POSIX-standaard"
-#: timezone/zic.c:3118
+#: timezone/zic.c:3229
msgid "too many, or too long, time zone abbreviations"
msgstr "te veel of te lange tijdzone-afkortingen"
-#: timezone/zic.c:3161
+#: timezone/zic.c:3275
#, c-format
msgid "%s: Can't create directory %s: %s"
msgstr "%s: Kan map %s niet aanmaken: %s"
+#~ msgid "cannot open zero fill device"
+#~ msgstr "kan nullenapparaat niet openen"
+
+#~ msgid "relocation error"
+#~ msgstr "verplaatsingsfout"
+
+#~ msgid "Cannot set LC_CTYPE to default locale"
+#~ msgstr "Kan LC_TYPE niet op de standaard-taalregio instellen"
+
+#~ msgid "Cannot set LC_MESSAGES to default locale"
+#~ msgstr "Kan LC_MESSAGES niet op de standaard-taalregio instellen"
+
+#~ msgid "Cannot set LC_COLLATE to default locale"
+#~ msgstr "Kan LC_COLLATE niet op de standaard-taalregio instellen"
+
#~ msgid "invalid caller"
#~ msgstr "ongeldige aanroeper"
@@ -7312,6 +7344,18 @@ msgstr "%s: Kan map %s niet aanmaken: %s"
#~ msgid "This implementation doesn't support newstyle or MT-safe code!\n"
#~ msgstr "Deze implementatie ondersteunt geen 'newstyle'- of 'MT-safe'-code\n"
+#~ msgid "unruly zone"
+#~ msgstr "onhandelbare zone"
+
+#~ msgid "%s: Leap line in non leap seconds file %s"
+#~ msgstr "%s: Schrikkelregel in niet-schrikkelsecondenbestand %s"
+
+#~ msgid "nameless rule"
+#~ msgstr "naamloos voorschrift"
+
+#~ msgid "repeated leap second moment"
+#~ msgstr "herhaald schrikkelseconde-moment"
+
#~ msgid "no definition of `UNDEFINED'"
#~ msgstr "geen definitie van 'UNDEFINED'"
@@ -7344,9 +7388,6 @@ msgstr "%s: Kan map %s niet aanmaken: %s"
#~ "Voor het rapporteren van programmafouten, zie:\n"
#~ " %s.\n"
-#~ msgid "int overflow"
-#~ msgstr "geheelgetaloverloop"
-
#~ msgid "hard link failed, symbolic link used"
#~ msgstr "harde koppeling is mislukt; symbolische wordt gebruikt"
diff --git a/po/pl.po b/po/pl.po
index 7ceaea464f..cfca3ba509 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -1,14 +1,14 @@
# Polish translation for GNU libc.
-# Copyright (C) 1996, 1997, 1998, 1999, 2002, 2003, 2004, 2005, 2006, 2007, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2017, 2018 Free Software Foundation, Inc.
+# Copyright (C) 1996, 1997, 1998, 1999, 2002, 2003, 2004, 2005, 2006, 2007, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2017, 2018, 2019 Free Software Foundation, Inc.
# This file is distributed under the same license as the glibc package.
# Paweł Krawczyk <kravietz@ceti.pl>, 1996-1999.
-# Jakub Bogusz <qboosh@pld-linux.org>, 2002-2018.
+# Jakub Bogusz <qboosh@pld-linux.org>, 2002-2019.
#
msgid ""
msgstr ""
-"Project-Id-Version: libc 2.27.9000\n"
-"POT-Creation-Date: 2018-07-26 22:19-0400\n"
-"PO-Revision-Date: 2018-07-27 21:15+0200\n"
+"Project-Id-Version: libc 2.29.9000\n"
+"POT-Creation-Date: 2019-07-18 13:28-0400\n"
+"PO-Revision-Date: 2019-07-24 20:30+0200\n"
"Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
"Language: pl\n"
@@ -148,10 +148,10 @@ msgstr ""
"[PLIK-WY [PLIK-WE]...]"
#: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:308
-#: elf/pldd.c:252 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
-#: iconv/iconvconfig.c:379 locale/programs/locale.c:275
-#: locale/programs/localedef.c:427 login/programs/pt_chown.c:89
-#: malloc/memusagestat.c:563 nss/getent.c:933 nss/makedb.c:369
+#: elf/pldd.c:247 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
+#: iconv/iconvconfig.c:379 locale/programs/locale.c:276
+#: locale/programs/localedef.c:437 login/programs/pt_chown.c:89
+#: malloc/memusagestat.c:563 nss/getent.c:953 nss/makedb.c:369
#: posix/getconf.c:503 sysdeps/unix/sysv/linux/lddlibc4.c:61
#, c-format
msgid ""
@@ -162,11 +162,11 @@ msgstr ""
"%s.\n"
#: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64
-#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75
+#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:263 elf/sotruss.sh:75
#: elf/sprof.c:389 iconv/iconv_prog.c:422 iconv/iconvconfig.c:396
-#: locale/programs/locale.c:292 locale/programs/localedef.c:453
+#: locale/programs/locale.c:293 locale/programs/localedef.c:463
#: login/programs/pt_chown.c:63 malloc/memusage.sh:71
-#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:87 nss/makedb.c:385
+#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:88 nss/makedb.c:385
#: posix/getconf.c:485 sysdeps/unix/sysv/linux/lddlibc4.c:68
#, c-format
msgid ""
@@ -181,10 +181,10 @@ msgstr ""
# w %s wchodzi nazwisko autora danego programu/procedury -PK
#: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68
-#: elf/ldconfig.c:329 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:427
-#: iconv/iconvconfig.c:401 locale/programs/locale.c:297
-#: locale/programs/localedef.c:458 malloc/memusage.sh:75
-#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:92 nss/makedb.c:390
+#: elf/ldconfig.c:329 elf/pldd.c:268 elf/sprof.c:395 iconv/iconv_prog.c:427
+#: iconv/iconvconfig.c:401 locale/programs/locale.c:298
+#: locale/programs/localedef.c:468 malloc/memusage.sh:75
+#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:93 nss/makedb.c:390
#: posix/getconf.c:490
#, c-format
msgid "Written by %s.\n"
@@ -255,21 +255,21 @@ msgstr "nie można otworzyć pliku wyjściowego `%s'"
msgid "invalid escape sequence"
msgstr "błędna sekwencja escape"
-#: catgets/gencat.c:1209
+#: catgets/gencat.c:1211
msgid "unterminated message"
msgstr "nie zakończony komunikat"
-#: catgets/gencat.c:1233
+#: catgets/gencat.c:1235
#, c-format
msgid "while opening old catalog file"
msgstr "podczas otwierania starego pliku katalogu"
-#: catgets/gencat.c:1324
+#: catgets/gencat.c:1326
#, c-format
msgid "conversion modules not available"
msgstr "moduły konwersji niedostępny"
-#: catgets/gencat.c:1350
+#: catgets/gencat.c:1352
#, c-format
msgid "cannot determine escape character"
msgstr "nie można określić znaku escape"
@@ -397,7 +397,7 @@ msgstr "Nieznany system"
msgid ", OS ABI: %s %d.%d.%d"
msgstr ", ABI systemu: %s %d.%d.%d"
-#: elf/cache.c:163 elf/ldconfig.c:1332
+#: elf/cache.c:163 elf/ldconfig.c:1333
#, c-format
msgid "Can't open cache file %s\n"
msgstr "Nie można otworzyć pliku pamięci podręcznej %s\n"
@@ -407,38 +407,38 @@ msgstr "Nie można otworzyć pliku pamięci podręcznej %s\n"
msgid "mmap of cache file failed.\n"
msgstr "mmap pliku pamięci podręcznej nie powiodło się.\n"
-#: elf/cache.c:181 elf/cache.c:195
+#: elf/cache.c:181 elf/cache.c:195 elf/cache.c:205
#, c-format
msgid "File is not a cache file.\n"
msgstr "Plik nie jest plikiem pamięci podręcznej.\n"
-#: elf/cache.c:228 elf/cache.c:238
+#: elf/cache.c:233 elf/cache.c:243
#, c-format
msgid "%d libs found in cache `%s'\n"
msgstr "Znaleziono %d bibliotek w pamięci podręcznej `%s'\n"
-#: elf/cache.c:432
+#: elf/cache.c:437
#, c-format
msgid "Can't create temporary cache file %s"
msgstr "Nie można utworzyć tymczasowego pliku pamięci podręcznej %s"
-#: elf/cache.c:440 elf/cache.c:450 elf/cache.c:454 elf/cache.c:458
-#: elf/cache.c:468
+#: elf/cache.c:445 elf/cache.c:455 elf/cache.c:459 elf/cache.c:463
+#: elf/cache.c:473
#, c-format
msgid "Writing of cache data failed"
msgstr "Zapis danych pamięci podręcznej nie powiódł się"
-#: elf/cache.c:463
+#: elf/cache.c:468
#, c-format
msgid "Changing access rights of %s to %#o failed"
msgstr "Zmiana praw dostępu %s na %#o nie powiodła się"
-#: elf/cache.c:472
+#: elf/cache.c:477
#, c-format
msgid "Renaming of %s to %s failed"
msgstr "Zmiana nazwy %s na %s nie powiodła się"
-#: elf/dl-close.c:399 elf/dl-open.c:420
+#: elf/dl-close.c:399 elf/dl-open.c:424
msgid "cannot create scope list"
msgstr "nie można utworzyć listy zakresów"
@@ -519,119 +519,119 @@ msgstr "nie można utworzyć tablicy ścieżki przeszukiwania"
msgid "cannot stat shared object"
msgstr "nie można wykonać stat na obiekcie dzielonym"
-#: elf/dl-load.c:960
-msgid "cannot open zero fill device"
-msgstr "nie można otworzyć urządzenia wypełniającego zerami"
-
-#: elf/dl-load.c:1007 elf/dl-load.c:2203
+#: elf/dl-load.c:992 elf/dl-load.c:2198
msgid "cannot create shared object descriptor"
msgstr "nie można utworzyć deskryptora obiektu dzielonego"
-#: elf/dl-load.c:1026 elf/dl-load.c:1560 elf/dl-load.c:1673
+#: elf/dl-load.c:1011 elf/dl-load.c:1555 elf/dl-load.c:1668
msgid "cannot read file data"
msgstr "nie można odczytać danych z pliku"
-#: elf/dl-load.c:1072
+#: elf/dl-load.c:1057
msgid "ELF load command alignment not page-aligned"
msgstr "wyrównanie polecenia wczytania ELF nie wyrównane do granicy stron"
-#: elf/dl-load.c:1079
+#: elf/dl-load.c:1064
msgid "ELF load command address/offset not properly aligned"
msgstr "adres/przesunięcie polecenia wczytania ELF niewłaściwie wyrównane"
-#: elf/dl-load.c:1161
+#: elf/dl-load.c:1146
msgid "cannot process note segment"
msgstr "nie można przetworzyć segmentu notatki"
-#: elf/dl-load.c:1172
+#: elf/dl-load.c:1157
msgid "object file has no loadable segments"
msgstr "plik obiektu nie ma segmentów ładowalnych"
-#: elf/dl-load.c:1181 elf/dl-load.c:1652
+#: elf/dl-load.c:1170 elf/dl-load.c:1647
msgid "cannot dynamically load executable"
-msgstr "nie można dynamicznie wczytać pliku wykonywalnego"
+msgstr "nie można dynamicznie załadować pliku wykonywalnego"
-#: elf/dl-load.c:1202
+#: elf/dl-load.c:1191
msgid "object file has no dynamic section"
msgstr "plik obiektu nie ma sekcji dynamicznej"
-#: elf/dl-load.c:1225
+#: elf/dl-load.c:1218
+msgid "cannot dynamically load position-independent executable"
+msgstr "nie można dynamicznie załadować pliku wykonywalnego niezależnego od położenia"
+
+#: elf/dl-load.c:1220
msgid "shared object cannot be dlopen()ed"
msgstr "obiekt dzielony nie może być otwarty przez dlopen()"
-#: elf/dl-load.c:1238
+#: elf/dl-load.c:1233
msgid "cannot allocate memory for program header"
msgstr "nie można przydzielić pamięci na nagłówek programu"
-#: elf/dl-load.c:1271 elf/dl-load.h:130
+#: elf/dl-load.c:1266 elf/dl-load.h:130
msgid "cannot change memory protections"
msgstr "nie można zmienić ochrony pamięci"
-#: elf/dl-load.c:1291
+#: elf/dl-load.c:1286
msgid "cannot enable executable stack as shared object requires"
msgstr "nie można włączyć wykonywalnego stosu wymaganego przez obiekt dzielony"
-#: elf/dl-load.c:1304
+#: elf/dl-load.c:1299
msgid "cannot close file descriptor"
msgstr "nie można zamknąć deskryptora pliku"
-#: elf/dl-load.c:1560
+#: elf/dl-load.c:1555
msgid "file too short"
msgstr "plik za krótki"
-#: elf/dl-load.c:1595
+#: elf/dl-load.c:1590
msgid "invalid ELF header"
msgstr "nieprawidłowy nagłówek ELF"
-#: elf/dl-load.c:1607
+#: elf/dl-load.c:1602
msgid "ELF file data encoding not big-endian"
msgstr "kodowanie danych w pliku ELF nie jest big-endian"
-#: elf/dl-load.c:1609
+#: elf/dl-load.c:1604
msgid "ELF file data encoding not little-endian"
msgstr "kodowanie danych w pliku ELF nie jest little-endian"
-#: elf/dl-load.c:1613
+#: elf/dl-load.c:1608
msgid "ELF file version ident does not match current one"
msgstr "identyfikator wersji pliku ELF nie zgadza siÄ™ z aktualnym"
-#: elf/dl-load.c:1617
+#: elf/dl-load.c:1612
msgid "ELF file OS ABI invalid"
msgstr "niepoprawne ABI systemu w pliku ELF"
-#: elf/dl-load.c:1620
+#: elf/dl-load.c:1615
msgid "ELF file ABI version invalid"
msgstr "niepoprawna wersja ABI w pliku ELF"
-#: elf/dl-load.c:1623
+#: elf/dl-load.c:1618
msgid "nonzero padding in e_ident"
msgstr "niezerowe wypełnienie w e_ident"
-#: elf/dl-load.c:1626
+#: elf/dl-load.c:1621
msgid "internal error"
msgstr "błąd wewnętrzny"
-#: elf/dl-load.c:1633
+#: elf/dl-load.c:1628
msgid "ELF file version does not match current one"
msgstr "wersja pliku ELF nie zgadza siÄ™ z aktualnÄ…"
-#: elf/dl-load.c:1641
+#: elf/dl-load.c:1636
msgid "only ET_DYN and ET_EXEC can be loaded"
msgstr "tylko ET_DYN i ET_EXEC mogą być wczytane"
-#: elf/dl-load.c:1657
+#: elf/dl-load.c:1652
msgid "ELF file's phentsize not the expected size"
msgstr "phentsize w pliku ELF nie jest oczekiwanym rozmiarem"
-#: elf/dl-load.c:2222
+#: elf/dl-load.c:2217
msgid "wrong ELF class: ELFCLASS64"
msgstr "niewłaściwa klasa ELF: ELFCLASS64"
-#: elf/dl-load.c:2223
+#: elf/dl-load.c:2218
msgid "wrong ELF class: ELFCLASS32"
msgstr "niewłaściwa klasa ELF: ELFCLASS32"
-#: elf/dl-load.c:2226
+#: elf/dl-load.c:2221
msgid "cannot open shared object file"
msgstr "nie można otworzyć pliku obiektu dzielonego"
@@ -643,11 +643,7 @@ msgstr "odwzorowanie segmentu z obiektu dzielonego nie powiodło się"
msgid "cannot map zero-fill pages"
msgstr "nie można odwzorować stron wypełnionych zerami"
-#: elf/dl-lookup.c:835
-msgid "relocation error"
-msgstr "błąd relokacji"
-
-#: elf/dl-lookup.c:858
+#: elf/dl-lookup.c:830
msgid "symbol lookup error"
msgstr "błąd wyszukiwania symbolu"
@@ -655,19 +651,19 @@ msgstr "błąd wyszukiwania symbolu"
msgid "cannot extend global scope"
msgstr "nie można rozszerzyć zakresu globalnego"
-#: elf/dl-open.c:470
+#: elf/dl-open.c:474
msgid "TLS generation counter wrapped! Please report this."
msgstr "Licznik generacji TLS przekręcił się! Proszę to zgłosić."
-#: elf/dl-open.c:534
+#: elf/dl-open.c:538
msgid "invalid mode for dlopen()"
msgstr "błędny typ dla dlopen()"
-#: elf/dl-open.c:551
+#: elf/dl-open.c:555
msgid "no more namespaces available for dlmopen()"
msgstr "nie ma więcej dostępnych przestrzeni nazw dla dlmopen()"
-#: elf/dl-open.c:575
+#: elf/dl-open.c:579
msgid "invalid target namespace in dlmopen()"
msgstr "błędna przestrzeń nazw dla celu w dlmopen()"
@@ -675,20 +671,20 @@ msgstr "błędna przestrzeń nazw dla celu w dlmopen()"
msgid "cannot allocate memory in static TLS block"
msgstr "nie można przydzielić pamięci w statycznym bloku TLS"
-#: elf/dl-reloc.c:205
+#: elf/dl-reloc.c:213
msgid "cannot make segment writable for relocation"
msgstr "nie można uczynić segmentu zapisywalnym w celu relokacji"
-#: elf/dl-reloc.c:276
+#: elf/dl-reloc.c:272
#, c-format
msgid "%s: out of memory to store relocation results for %s\n"
msgstr "%s: brak pamięci na zapisanie wyników relokacji dla %s\n"
-#: elf/dl-reloc.c:292
+#: elf/dl-reloc.c:288
msgid "cannot restore segment prot after reloc"
msgstr "nie można odtworzyć ochrony segmentu po relokacji"
-#: elf/dl-reloc.c:323
+#: elf/dl-reloc.c:319
msgid "cannot apply additional memory protection after relocation"
msgstr "nie można nałożyć dodatkowej ochrony pamięci po relokacji"
@@ -906,22 +902,22 @@ msgstr "opcja -r wymaga bezwzględnej ścieżki pliku konfiguracyjnego"
msgid "memory exhausted"
msgstr "pamięć wyczerpana"
-#: elf/ldconfig.c:1233
+#: elf/ldconfig.c:1234
#, c-format
msgid "%s:%u: cannot read directory %s"
msgstr "%s:%u: nie można odczytać %s"
-#: elf/ldconfig.c:1281
+#: elf/ldconfig.c:1282
#, c-format
msgid "relative path `%s' used to build cache"
msgstr "użyto względnej ścieżki `%s' do utworzenia pamięci podręcznej"
-#: elf/ldconfig.c:1311
+#: elf/ldconfig.c:1312
#, c-format
msgid "Can't chdir to /"
msgstr "Nie można przejść do katalogu /"
-#: elf/ldconfig.c:1352
+#: elf/ldconfig.c:1353
#, c-format
msgid "Can't open cache file directory %s\n"
msgstr "Nie można otworzyć katalogu pliku pamięci podręcznej %s\n"
@@ -991,95 +987,100 @@ msgstr "zakończył działanie z nieznanym kodem wyjścia"
msgid "error: you do not have read permission for"
msgstr "błąd: brak uprawnień do odczytu"
-#: elf/pldd-xx.c:105
+#: elf/pldd-xx.c:102
#, c-format
msgid "cannot find program header of process"
msgstr "nie można odnaleźć nagłówka programu procesu"
-#: elf/pldd-xx.c:110
+#: elf/pldd-xx.c:106
#, c-format
msgid "cannot read program header"
msgstr "nie można odczytać nagłówka programu"
-#: elf/pldd-xx.c:135
+#: elf/pldd-xx.c:128
#, c-format
msgid "cannot read dynamic section"
msgstr "nie można odczytać sekcji dynamicznej"
-#: elf/pldd-xx.c:147
+#: elf/pldd-xx.c:137
#, c-format
msgid "cannot read r_debug"
msgstr "nie można odczytać r_debug"
-#: elf/pldd-xx.c:167
+#: elf/pldd-xx.c:154
#, c-format
msgid "cannot read program interpreter"
msgstr "nie można odczytać interpretera programu"
-#: elf/pldd-xx.c:197
+#: elf/pldd-xx.c:183
#, c-format
msgid "cannot read link map"
msgstr "nie można odczytać mapy linkowania"
-#: elf/pldd-xx.c:209
+#: elf/pldd-xx.c:190
#, c-format
msgid "cannot read object name"
msgstr "nie można odczytać nazwy obiektu"
-#: elf/pldd-xx.c:219
+#: elf/pldd-xx.c:197
#, c-format
msgid "cannot allocate buffer for object name"
msgstr "nie można przydzielić bufora dla nazwy obiektu"
-#: elf/pldd.c:64
+#: elf/pldd.c:58
msgid "List dynamic shared objects loaded into process."
msgstr "Lista dynamicznych obiektów współdzielonych załadowanych do procesu."
-#: elf/pldd.c:68
+#: elf/pldd.c:62
msgid "PID"
msgstr "PID"
-#: elf/pldd.c:100
+#: elf/pldd.c:89
#, c-format
msgid "Exactly one parameter with process ID required.\n"
msgstr "Wymagany jest dokładnie jeden parametr będący ID procesu.\n"
-#: elf/pldd.c:112
+#: elf/pldd.c:103
#, c-format
msgid "invalid process ID '%s'"
msgstr "błędny ID procesu '%s'"
-#: elf/pldd.c:120
+#: elf/pldd.c:111
#, c-format
msgid "cannot open %s"
msgstr "nie można otworzyć %s"
-#: elf/pldd.c:152
+#: elf/pldd.c:142
#, c-format
msgid "cannot open %s/task"
msgstr "nie można otworzyć %s/task"
-#: elf/pldd.c:155
+#: elf/pldd.c:145
#, c-format
msgid "cannot prepare reading %s/task"
msgstr "nie można przygotować odczytu %s/task"
-#: elf/pldd.c:168
+#: elf/pldd.c:158
#, c-format
msgid "invalid thread ID '%s'"
msgstr "błędny ID wątku '%s'"
-#: elf/pldd.c:179
+#: elf/pldd.c:169
#, c-format
msgid "cannot attach to process %lu"
msgstr "nie można podłączyć się do procesu %lu"
-#: elf/pldd.c:294
+#: elf/pldd.c:184
+#, c-format
+msgid "no valid %s/task entries"
+msgstr "brak poprawnych wpisów %s/task"
+
+#: elf/pldd.c:290
#, c-format
msgid "cannot get information about process %lu"
msgstr "nie można uzyskać informacji o procesie %lu"
-#: elf/pldd.c:307
+#: elf/pldd.c:303
#, c-format
msgid "process %lu is no ELF program"
msgstr "proces %lu nie jest programem ELF"
@@ -1401,7 +1402,7 @@ msgstr "Informacje:"
msgid "list all known coded character sets"
msgstr "wyświetlenie wszystkich znanych zestawów znaków"
-#: iconv/iconv_prog.c:64 locale/programs/localedef.c:120
+#: iconv/iconv_prog.c:64 locale/programs/localedef.c:124
msgid "Output control:"
msgstr "Kontrola wyjścia:"
@@ -1410,8 +1411,8 @@ msgid "omit invalid characters from output"
msgstr "pominięcie nieprawidłowych znaków z wyjścia"
#: iconv/iconv_prog.c:66 iconv/iconvconfig.c:128
-#: locale/programs/localedef.c:113 locale/programs/localedef.c:115
-#: locale/programs/localedef.c:117 locale/programs/localedef.c:144
+#: locale/programs/localedef.c:117 locale/programs/localedef.c:119
+#: locale/programs/localedef.c:121 locale/programs/localedef.c:150
#: malloc/memusagestat.c:56
msgid "FILE"
msgstr "PLIK"
@@ -1510,7 +1511,7 @@ msgstr "Tworzenie pliku konfiguracyjnego do szybkiego wczytywania modułów icon
msgid "[DIR...]"
msgstr "[KATALOG...]"
-#: iconv/iconvconfig.c:126 locale/programs/localedef.c:123
+#: iconv/iconvconfig.c:126 locale/programs/localedef.c:129
msgid "PATH"
msgstr "ŚCIEŻKA"
@@ -1694,14 +1695,14 @@ msgstr "zestawy znaków ze stanami blokowania nie są obsługiwane"
#: locale/programs/charmap.c:503 locale/programs/charmap.c:557
#: locale/programs/charmap.c:589 locale/programs/charmap.c:683
-#: locale/programs/charmap.c:738 locale/programs/charmap.c:779
-#: locale/programs/charmap.c:820
+#: locale/programs/charmap.c:739 locale/programs/charmap.c:780
+#: locale/programs/charmap.c:821
#, c-format
msgid "syntax error in %s definition: %s"
msgstr "błąd składni w definicji %s: %s"
#: locale/programs/charmap.c:504 locale/programs/charmap.c:684
-#: locale/programs/charmap.c:780 locale/programs/repertoire.c:229
+#: locale/programs/charmap.c:781 locale/programs/repertoire.c:229
msgid "no symbolic name given"
msgstr "brak nazwy symbolicznej"
@@ -1717,14 +1718,14 @@ msgstr "za mało bajtów w kodzie znaku"
msgid "too many bytes in character encoding"
msgstr "za dużo bajtów w kodzie znaku"
-#: locale/programs/charmap.c:591 locale/programs/charmap.c:739
-#: locale/programs/charmap.c:822 locale/programs/repertoire.c:295
+#: locale/programs/charmap.c:591 locale/programs/charmap.c:740
+#: locale/programs/charmap.c:823 locale/programs/repertoire.c:295
msgid "no symbolic name given for end of range"
msgstr "brak nazwy symbolicznej dla końca przedziału"
#: locale/programs/charmap.c:615 locale/programs/ld-address.c:524
#: locale/programs/ld-collate.c:2616 locale/programs/ld-collate.c:3774
-#: locale/programs/ld-ctype.c:2117 locale/programs/ld-ctype.c:2829
+#: locale/programs/ld-ctype.c:2118 locale/programs/ld-ctype.c:2830
#: locale/programs/ld-identification.c:397
#: locale/programs/ld-measurement.c:213 locale/programs/ld-messages.c:295
#: locale/programs/ld-monetary.c:748 locale/programs/ld-name.c:262
@@ -1739,60 +1740,60 @@ msgstr "%1$s: definicja nie kończy się przez `END %1$s'"
msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
msgstr "po definicji CHARMAP mogą występować tylko definicje WIDTH"
-#: locale/programs/charmap.c:656 locale/programs/charmap.c:719
+#: locale/programs/charmap.c:656 locale/programs/charmap.c:720
#, c-format
msgid "value for %s must be an integer"
msgstr "wartość %s musi być liczbą całkowitą"
# state machine = finite state machine =
# automat skończony -PK
-#: locale/programs/charmap.c:847
+#: locale/programs/charmap.c:848
#, c-format
msgid "%s: error in state machine"
msgstr "%s: błąd w automacie skończonym"
-#: locale/programs/charmap.c:855 locale/programs/ld-address.c:540
+#: locale/programs/charmap.c:856 locale/programs/ld-address.c:540
#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967
-#: locale/programs/ld-ctype.c:2114 locale/programs/ld-ctype.c:2846
+#: locale/programs/ld-ctype.c:2115 locale/programs/ld-ctype.c:2847
#: locale/programs/ld-identification.c:413
#: locale/programs/ld-measurement.c:229 locale/programs/ld-messages.c:311
#: locale/programs/ld-monetary.c:764 locale/programs/ld-name.c:278
#: locale/programs/ld-numeric.c:341 locale/programs/ld-paper.c:228
#: locale/programs/ld-telephone.c:292 locale/programs/ld-time.c:990
-#: locale/programs/locfile.c:997 locale/programs/repertoire.c:323
+#: locale/programs/locfile.c:1010 locale/programs/repertoire.c:323
#, c-format
msgid "%s: premature end of file"
msgstr "%s: przedwczesny koniec pliku"
-#: locale/programs/charmap.c:874 locale/programs/charmap.c:885
+#: locale/programs/charmap.c:875 locale/programs/charmap.c:886
#, c-format
msgid "unknown character `%s'"
msgstr "nieznany znak `%s'"
-#: locale/programs/charmap.c:893
+#: locale/programs/charmap.c:894
#, c-format
msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d"
msgstr "liczba bajtów dla sekwencji bajtów początku i końca przedziału jest różna: %d i %d"
-#: locale/programs/charmap.c:998 locale/programs/ld-collate.c:2893
+#: locale/programs/charmap.c:999 locale/programs/ld-collate.c:2893
#: locale/programs/repertoire.c:418
msgid "invalid names for character range"
msgstr "nieprawidłowe nazwy dla przedziału znaków"
-#: locale/programs/charmap.c:1010 locale/programs/repertoire.c:430
+#: locale/programs/charmap.c:1011 locale/programs/repertoire.c:430
msgid "hexadecimal range format should use only capital characters"
msgstr "w szesnastkowym formacie przedziału powinny być używane wielkie litery"
-#: locale/programs/charmap.c:1028 locale/programs/repertoire.c:448
+#: locale/programs/charmap.c:1029 locale/programs/repertoire.c:448
#, c-format
msgid "<%s> and <%s> are invalid names for range"
msgstr "<%s> i <%s> są niepoprawnymi nazwami dla przedziału"
-#: locale/programs/charmap.c:1034 locale/programs/repertoire.c:455
+#: locale/programs/charmap.c:1035 locale/programs/repertoire.c:455
msgid "upper limit in range is smaller than lower limit"
msgstr "górna granica przedziału nie jest mniejsza niż dolna"
-#: locale/programs/charmap.c:1092
+#: locale/programs/charmap.c:1093
msgid "resulting bytes for range not representable."
msgstr "wynikowe bajty dla przedziału nie mogą zostać wyrażone."
@@ -1861,7 +1862,7 @@ msgid "%s: numeric country code `%d' not valid"
msgstr "%s: liczbowy kod kraju `%d' jest niepoprawny"
#: locale/programs/ld-address.c:432 locale/programs/ld-address.c:469
-#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2478
+#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2479
#: locale/programs/ld-identification.c:309
#: locale/programs/ld-measurement.c:196 locale/programs/ld-messages.c:264
#: locale/programs/ld-monetary.c:503 locale/programs/ld-monetary.c:538
@@ -1884,7 +1885,7 @@ msgid "%s: unknown character in field `%s'"
msgstr "%s: nieznany znak w polu `%s'"
#: locale/programs/ld-address.c:521 locale/programs/ld-collate.c:3772
-#: locale/programs/ld-ctype.c:2826 locale/programs/ld-identification.c:394
+#: locale/programs/ld-ctype.c:2827 locale/programs/ld-identification.c:394
#: locale/programs/ld-measurement.c:210 locale/programs/ld-messages.c:293
#: locale/programs/ld-monetary.c:746 locale/programs/ld-name.c:260
#: locale/programs/ld-numeric.c:323 locale/programs/ld-paper.c:210
@@ -1897,8 +1898,8 @@ msgstr "%s: niekompletna linia `END'"
#: locale/programs/ld-collate.c:602 locale/programs/ld-collate.c:898
#: locale/programs/ld-collate.c:911 locale/programs/ld-collate.c:2582
#: locale/programs/ld-collate.c:2603 locale/programs/ld-collate.c:3957
-#: locale/programs/ld-ctype.c:1846 locale/programs/ld-ctype.c:2104
-#: locale/programs/ld-ctype.c:2676 locale/programs/ld-ctype.c:2837
+#: locale/programs/ld-ctype.c:1847 locale/programs/ld-ctype.c:2105
+#: locale/programs/ld-ctype.c:2677 locale/programs/ld-ctype.c:2838
#: locale/programs/ld-identification.c:404
#: locale/programs/ld-measurement.c:220 locale/programs/ld-messages.c:302
#: locale/programs/ld-monetary.c:755 locale/programs/ld-name.c:269
@@ -2244,129 +2245,129 @@ msgstr "tablica znaków `%s' jest już zdefiniowana"
msgid "implementation limit: no more than %d character maps allowed"
msgstr "ograniczenie implementacji: dozwolone maksymalnie %d tablic znaków"
-#: locale/programs/ld-ctype.c:1434 locale/programs/ld-ctype.c:1559
-#: locale/programs/ld-ctype.c:1665 locale/programs/ld-ctype.c:2341
-#: locale/programs/ld-ctype.c:3299
+#: locale/programs/ld-ctype.c:1435 locale/programs/ld-ctype.c:1560
+#: locale/programs/ld-ctype.c:1666 locale/programs/ld-ctype.c:2342
+#: locale/programs/ld-ctype.c:3302
#, c-format
msgid "%s: field `%s' does not contain exactly ten entries"
msgstr "%s: pole `%s' nie zawiera dokładnie dziesięciu elementów"
-#: locale/programs/ld-ctype.c:1462 locale/programs/ld-ctype.c:2036
+#: locale/programs/ld-ctype.c:1463 locale/programs/ld-ctype.c:2037
#, c-format
msgid "to-value <U%0*X> of range is smaller than from-value <U%0*X>"
msgstr "wartość-do <U%0*X> przedziału jest mniejsza niż wartość-od <U%0*X>"
-#: locale/programs/ld-ctype.c:1589
+#: locale/programs/ld-ctype.c:1590
msgid "start and end character sequence of range must have the same length"
msgstr "początkowa i końcowa sekwencja znaków przedziału muszą mieć tę samą długość"
-#: locale/programs/ld-ctype.c:1596
+#: locale/programs/ld-ctype.c:1597
msgid "to-value character sequence is smaller than from-value sequence"
msgstr "sekwencja znaków wartość-do jest mniejsza niż sekwencja wartość-od"
-#: locale/programs/ld-ctype.c:1956 locale/programs/ld-ctype.c:2007
+#: locale/programs/ld-ctype.c:1957 locale/programs/ld-ctype.c:2008
msgid "premature end of `translit_ignore' definition"
msgstr "przedwczesny koniec definicji `translit_ignore'"
-#: locale/programs/ld-ctype.c:1962 locale/programs/ld-ctype.c:2013
-#: locale/programs/ld-ctype.c:2055
+#: locale/programs/ld-ctype.c:1963 locale/programs/ld-ctype.c:2014
+#: locale/programs/ld-ctype.c:2056
msgid "syntax error"
msgstr "błąd składni"
-#: locale/programs/ld-ctype.c:2188
+#: locale/programs/ld-ctype.c:2189
#, c-format
msgid "%s: syntax error in definition of new character class"
msgstr "%s: błąd składni w definicji nowej klasy znaków"
-#: locale/programs/ld-ctype.c:2203
+#: locale/programs/ld-ctype.c:2204
#, c-format
msgid "%s: syntax error in definition of new character map"
msgstr "%s: błąd składni w definicji nowej tablicy znaków"
-#: locale/programs/ld-ctype.c:2363
+#: locale/programs/ld-ctype.c:2364
msgid "ellipsis range must be marked by two operands of same type"
msgstr "przedział wyrzutni musi być oznaczony dwoma argumentami tego samego typu"
-#: locale/programs/ld-ctype.c:2372
+#: locale/programs/ld-ctype.c:2373
msgid "with symbolic name range values the absolute ellipsis `...' must not be used"
msgstr "dla wartości przedziału będących nazwami nie można użyć bezwzględnej wyrzutni `...'"
-#: locale/programs/ld-ctype.c:2387
+#: locale/programs/ld-ctype.c:2388
msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'"
msgstr "dla wartości przedziału w kodzie UCS trzeba użyć wyrzutni szesnastkowej `..'"
-#: locale/programs/ld-ctype.c:2401
+#: locale/programs/ld-ctype.c:2402
msgid "with character code range values one must use the absolute ellipsis `...'"
msgstr "dla wartości przedziału z kodami znaków trzeba użyć bezwzględnej wyrzutni `...'"
-#: locale/programs/ld-ctype.c:2552
+#: locale/programs/ld-ctype.c:2553
#, c-format
msgid "duplicated definition for mapping `%s'"
msgstr "powtórzona definicja odwzorowania `%s'"
-#: locale/programs/ld-ctype.c:2638 locale/programs/ld-ctype.c:2782
+#: locale/programs/ld-ctype.c:2639 locale/programs/ld-ctype.c:2783
#, c-format
msgid "%s: `translit_start' section does not end with `translit_end'"
msgstr "%s: sekcja `translit_start' nie kończy się przez `translit_end'"
-#: locale/programs/ld-ctype.c:2733
+#: locale/programs/ld-ctype.c:2734
#, c-format
msgid "%s: duplicate `default_missing' definition"
msgstr "%s: powtórzona definicja `default_missing'"
-#: locale/programs/ld-ctype.c:2738
+#: locale/programs/ld-ctype.c:2739
msgid "previous definition was here"
msgstr "tutaj była poprzednia definicja"
-#: locale/programs/ld-ctype.c:2760
+#: locale/programs/ld-ctype.c:2761
#, c-format
msgid "%s: no representable `default_missing' definition found"
msgstr "%s: nie znaleziono dającej się wyrazić definicji `default_missing'"
-#: locale/programs/ld-ctype.c:2877 locale/programs/ld-ctype.c:2973
-#: locale/programs/ld-ctype.c:2992 locale/programs/ld-ctype.c:3012
-#: locale/programs/ld-ctype.c:3032 locale/programs/ld-ctype.c:3052
-#: locale/programs/ld-ctype.c:3072 locale/programs/ld-ctype.c:3111
-#: locale/programs/ld-ctype.c:3131 locale/programs/ld-ctype.c:3195
-#: locale/programs/ld-ctype.c:3236 locale/programs/ld-ctype.c:3259
+#: locale/programs/ld-ctype.c:2878 locale/programs/ld-ctype.c:2974
+#: locale/programs/ld-ctype.c:2993 locale/programs/ld-ctype.c:3013
+#: locale/programs/ld-ctype.c:3033 locale/programs/ld-ctype.c:3053
+#: locale/programs/ld-ctype.c:3073 locale/programs/ld-ctype.c:3112
+#: locale/programs/ld-ctype.c:3132 locale/programs/ld-ctype.c:3198
+#: locale/programs/ld-ctype.c:3239 locale/programs/ld-ctype.c:3262
#, c-format
msgid "%s: character `%s' not defined while needed as default value"
msgstr "%s: znak `%s', wymagany jako domyślny, nie został zdefiniowany"
-#: locale/programs/ld-ctype.c:2882 locale/programs/ld-ctype.c:2978
-#: locale/programs/ld-ctype.c:2997 locale/programs/ld-ctype.c:3017
-#: locale/programs/ld-ctype.c:3037 locale/programs/ld-ctype.c:3057
-#: locale/programs/ld-ctype.c:3077 locale/programs/ld-ctype.c:3116
-#: locale/programs/ld-ctype.c:3136 locale/programs/ld-ctype.c:3200
+#: locale/programs/ld-ctype.c:2883 locale/programs/ld-ctype.c:2979
+#: locale/programs/ld-ctype.c:2998 locale/programs/ld-ctype.c:3018
+#: locale/programs/ld-ctype.c:3038 locale/programs/ld-ctype.c:3058
+#: locale/programs/ld-ctype.c:3078 locale/programs/ld-ctype.c:3117
+#: locale/programs/ld-ctype.c:3137 locale/programs/ld-ctype.c:3203
#, c-format
msgid "%s: character `%s' in charmap not representable with one byte"
msgstr "%s: znak `%s' z tablicy znaków nie może być wyrażony w jednym bajcie"
-#: locale/programs/ld-ctype.c:3242 locale/programs/ld-ctype.c:3265
+#: locale/programs/ld-ctype.c:3245 locale/programs/ld-ctype.c:3268
#, c-format
msgid "%s: character `%s' needed as default value not representable with one byte"
msgstr "%s: znak `%s', wymagany jako domyślny, nie może być wyrażony w jednym bajcie"
-#: locale/programs/ld-ctype.c:3321
+#: locale/programs/ld-ctype.c:3324
msgid "no output digits defined and none of the standard names in the charmap"
msgstr "brak definicji cyfr wyjściowych ani żadnej standardowej nazwy w tablicy znaków"
-#: locale/programs/ld-ctype.c:3570
+#: locale/programs/ld-ctype.c:3573
#, c-format
msgid "%s: transliteration data from locale `%s' not available"
msgstr "%s: dane do transliteracji z lokalizacji `%s' niedostępne"
-#: locale/programs/ld-ctype.c:3669
+#: locale/programs/ld-ctype.c:3672
#, c-format
msgid "%s: table for class \"%s\": %lu bytes"
msgstr "%s: tablica dla klasy \"%s\": %lu bajtów"
-#: locale/programs/ld-ctype.c:3733
+#: locale/programs/ld-ctype.c:3736
#, c-format
msgid "%s: table for map \"%s\": %lu bytes"
msgstr "%s: tablica dla odwzorowania \"%s\": %lu bajtów"
-#: locale/programs/ld-ctype.c:3857
+#: locale/programs/ld-ctype.c:3860
#, c-format
msgid "%s: table for width: %lu bytes"
msgstr "%s: tablica dla szerokości: %lu bajtów"
@@ -2606,120 +2607,114 @@ msgstr ""
"NAZWA\n"
"[-a|-m]"
-#: locale/programs/locale.c:190
+#: locale/programs/locale.c:522
#, c-format
-msgid "Cannot set LC_CTYPE to default locale"
-msgstr "Nie można ustawić LC_CTYPE na domyślną lokalizację"
-
-#: locale/programs/locale.c:192
-#, c-format
-msgid "Cannot set LC_MESSAGES to default locale"
-msgstr "Nie można ustawić LC_MESSAGES na domyślną lokalizację"
-
-#: locale/programs/locale.c:205
-#, c-format
-msgid "Cannot set LC_COLLATE to default locale"
-msgstr "Nie można ustawić LC_COLLATE na domyślną lokalizację"
+msgid "while preparing output"
+msgstr "podczas przygotowywania wyników"
-#: locale/programs/locale.c:221
+#: locale/programs/locale.c:998
#, c-format
-msgid "Cannot set LC_ALL to default locale"
-msgstr "Nie można ustawić LC_ALL na domyślną lokalizację"
+msgid "Cannot set %s to default locale"
+msgstr "Nie można ustawić %s na domyślną lokalizację"
-#: locale/programs/locale.c:521
+#: locale/programs/locale.c:1096
#, c-format
-msgid "while preparing output"
-msgstr "podczas przygotowywania wyników"
+msgid "warning: The LOCPATH variable is set to \"%s\"\n"
+msgstr "uwaga: zmienna LOCPATH jest ustawiona na \"%s\"\n"
-#: locale/programs/localedef.c:112
+#: locale/programs/localedef.c:116
msgid "Input Files:"
msgstr "Pliki wejściowe:"
-#: locale/programs/localedef.c:114
+#: locale/programs/localedef.c:118
msgid "Symbolic character names defined in FILE"
msgstr "Nazwy symboliczne znaków są zdefiniowane w PLIKU"
-#: locale/programs/localedef.c:116
+#: locale/programs/localedef.c:120
msgid "Source definitions are found in FILE"
msgstr "Definicje źródłowe znajdują się w PLIKU"
-#: locale/programs/localedef.c:118
+#: locale/programs/localedef.c:122
msgid "FILE contains mapping from symbolic names to UCS4 values"
msgstr "PLIK zawiera odwzorowania nazw symbolicznych na wartości UCS4"
-#: locale/programs/localedef.c:122
+#: locale/programs/localedef.c:126
msgid "Create output even if warning messages were issued"
msgstr "Tworzenie pliku wyjściowego nawet jeśli wystąpiły ostrzeżenia"
-#: locale/programs/localedef.c:123
+#: locale/programs/localedef.c:128
+msgid "Do not create hard links between installed locales"
+msgstr "Bez tworzenia twardych dowiązań między zainstalowanymi lokalizacjami"
+
+#: locale/programs/localedef.c:129
msgid "Optional output file prefix"
msgstr "Opcjonalny prefiks plików wyjściowych"
-#: locale/programs/localedef.c:124
+#: locale/programs/localedef.c:130
msgid "Strictly conform to POSIX"
msgstr "Ścisłe przestrzeganie POSIX"
-#: locale/programs/localedef.c:126
+#: locale/programs/localedef.c:132
msgid "Suppress warnings and information messages"
msgstr "Pominięcie wyświetlania ostrzeżeń i informacji"
-#: locale/programs/localedef.c:127
+#: locale/programs/localedef.c:133
msgid "Print more messages"
msgstr "Wyświetlanie więcej liczby komunikatów"
-#: locale/programs/localedef.c:128 locale/programs/localedef.c:131
+#: locale/programs/localedef.c:134 locale/programs/localedef.c:137
msgid "<warnings>"
msgstr "<ostrzeżenia>"
-#: locale/programs/localedef.c:129
+#: locale/programs/localedef.c:135
msgid "Comma-separated list of warnings to disable; supported warnings are: ascii, intcurrsym"
msgstr "Oddzielona przecinkami lista ostrzeżeń do wyłączenia; obsługiwane: ascii, intcurrsym"
-#: locale/programs/localedef.c:132
+#: locale/programs/localedef.c:138
msgid "Comma-separated list of warnings to enable; supported warnings are: ascii, intcurrsym"
msgstr "Oddzielona przecinkami lista ostrzeżeń do włączenia; obsługiwane: ascii, intcurrsym"
-#: locale/programs/localedef.c:135
+#: locale/programs/localedef.c:141
msgid "Archive control:"
msgstr "Kontrola archiwum:"
-#: locale/programs/localedef.c:137
+#: locale/programs/localedef.c:143
msgid "Don't add new data to archive"
msgstr "Bez dodawania nowych danych do archiwum"
-#: locale/programs/localedef.c:139
+#: locale/programs/localedef.c:145
msgid "Add locales named by parameters to archive"
msgstr "Dodanie do archiwum lokalizacji określonych parametrami"
-#: locale/programs/localedef.c:140
+#: locale/programs/localedef.c:146
msgid "Replace existing archive content"
msgstr "Zastąpienie aktualnej zawartości archiwum"
-#: locale/programs/localedef.c:142
+#: locale/programs/localedef.c:148
msgid "Remove locales named by parameters from archive"
msgstr "Usunięcie z archiwum lokalizacji określonych parametrami"
-#: locale/programs/localedef.c:143
+#: locale/programs/localedef.c:149
msgid "List content of archive"
msgstr "Lista zawartości archiwum"
-#: locale/programs/localedef.c:145
+#: locale/programs/localedef.c:151
msgid "locale.alias file to consult when making archive"
msgstr "Plik locale.alias używany przy tworzeniu archiwum"
-#: locale/programs/localedef.c:147
+#: locale/programs/localedef.c:153
msgid "Generate little-endian output"
msgstr "Utworzenie wyjścia w formacie little-endian"
-#: locale/programs/localedef.c:149
+#: locale/programs/localedef.c:155
msgid "Generate big-endian output"
msgstr "Utworzenie wyjścia w formacie big-endian"
-#: locale/programs/localedef.c:154
+#: locale/programs/localedef.c:160
msgid "Compile locale specification"
msgstr "Kompilowanie specyfikacji lokalizacji"
-#: locale/programs/localedef.c:157
+#: locale/programs/localedef.c:163
msgid ""
"NAME\n"
"[--add-to-archive|--delete-from-archive] FILE...\n"
@@ -2729,31 +2724,31 @@ msgstr ""
"[--add-to-archive|--delete-from-archive] PLIK...\n"
"--list-archive [PLIK]"
-#: locale/programs/localedef.c:232
+#: locale/programs/localedef.c:238
#, c-format
msgid "cannot create directory for output files"
msgstr "nie można utworzyć katalogu na pliki wyjściowe"
-#: locale/programs/localedef.c:243
+#: locale/programs/localedef.c:249
msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
msgstr "OSTATECZNE: system nie definiuje `_POSIX2_LOCALEDEF'"
-#: locale/programs/localedef.c:257 locale/programs/localedef.c:273
-#: locale/programs/localedef.c:663 locale/programs/localedef.c:683
+#: locale/programs/localedef.c:263 locale/programs/localedef.c:279
+#: locale/programs/localedef.c:673 locale/programs/localedef.c:693
#, c-format
msgid "cannot open locale definition file `%s'"
msgstr "nie można otworzyć pliku definicji lokalizacji `%s'"
-#: locale/programs/localedef.c:297
+#: locale/programs/localedef.c:303
#, c-format
msgid "cannot write output files to `%s'"
msgstr "nie można zapisać plików wyjściowych do `%s'"
-#: locale/programs/localedef.c:303
+#: locale/programs/localedef.c:309
msgid "no output file produced because errors were issued"
msgstr "nie utworzono pliku wyjściowego, ponieważ wystąpiły błędy"
-#: locale/programs/localedef.c:431
+#: locale/programs/localedef.c:441
#, c-format
msgid ""
"System's directory for character maps : %s\n"
@@ -2766,11 +2761,11 @@ msgstr ""
" ścieżka lokalizacji: %s\n"
"%s"
-#: locale/programs/localedef.c:631
+#: locale/programs/localedef.c:641
msgid "circular dependencies between locale definitions"
msgstr "zapętlone zależności pomiędzy definicjami lokalizacji"
-#: locale/programs/localedef.c:637
+#: locale/programs/localedef.c:647
#, c-format
msgid "cannot add already read locale `%s' a second time"
msgstr "nie można dodać po raz drugi już odczytanej lokalizacji `%s'"
@@ -2926,24 +2921,24 @@ msgstr "nie można otworzyć pliku wyjściowego `%s' dla kategorii `%s'"
msgid "failure while writing data for category `%s'"
msgstr "niepowodzenie podczas zapisu danych dla kategorii `%s'"
-#: locale/programs/locfile.c:917
+#: locale/programs/locfile.c:930
#, c-format
msgid "cannot create output file `%s' for category `%s'"
msgstr "nie można utworzyć pliku wyjściowego `%s' dla kategorii `%s'"
-#: locale/programs/locfile.c:953
+#: locale/programs/locfile.c:966
msgid "expecting string argument for `copy'"
msgstr "spodziewanym argumentem dla `copy' jest łańcuch"
-#: locale/programs/locfile.c:957
+#: locale/programs/locfile.c:970
msgid "locale name should consist only of portable characters"
msgstr "nazwa lokalizacji powinna składać się wyłącznie ze znaków przenośnych"
-#: locale/programs/locfile.c:976
+#: locale/programs/locfile.c:989
msgid "no other keyword shall be specified when `copy' is used"
msgstr "żadne inne słowo kluczowe nie powinno występować razem z `copy'"
-#: locale/programs/locfile.c:990
+#: locale/programs/locfile.c:1003
#, c-format
msgid "`%1$s' definition does not end with `END %1$s'"
msgstr "definicja `%1$s' musi kończyć się wyrażeniem `END %1$s'"
@@ -3779,12 +3774,12 @@ msgstr "yp_update: nie można przekonwertować nazwy hosta na nazwę sieci\n"
msgid "yp_update: cannot get server address\n"
msgstr "yp_update: nie można uzyskać adresu serwera\n"
-#: nscd/aicache.c:83 nscd/hstcache.c:452
+#: nscd/aicache.c:82 nscd/hstcache.c:452
#, c-format
msgid "Haven't found \"%s\" in hosts cache!"
msgstr "Nie znaleziono \"%s\" w pamięci podręcznej hostów!"
-#: nscd/aicache.c:85 nscd/hstcache.c:454
+#: nscd/aicache.c:84 nscd/hstcache.c:454
#, c-format
msgid "Reloading \"%s\" in hosts cache!"
msgstr "Przeładowywanie \"%s\" w pamięci podręcznej hostów!"
@@ -4105,22 +4100,22 @@ msgstr "zwolniono %zu bajtów w pamięci podręcznej %s"
msgid "no more memory for database '%s'"
msgstr "nie ma więcej pamięci dla bazy danych '%s'"
-#: nscd/netgroupcache.c:121
+#: nscd/netgroupcache.c:122
#, c-format
msgid "Haven't found \"%s\" in netgroup cache!"
msgstr "Nie znaleziono \"%s\" w pamięci podręcznej netgroup!"
-#: nscd/netgroupcache.c:123
+#: nscd/netgroupcache.c:124
#, c-format
msgid "Reloading \"%s\" in netgroup cache!"
msgstr "Przeładowywanie \"%s\" w pamięci podręcznej netgroup!"
-#: nscd/netgroupcache.c:469
+#: nscd/netgroupcache.c:470
#, c-format
msgid "Haven't found \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr "Nie znaleziono \"%s (%s,%s,%s)\" w pamięci podręcznej netgroup!"
-#: nscd/netgroupcache.c:472
+#: nscd/netgroupcache.c:473
#, c-format
msgid "Reloading \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr "Przeładowywanie \"%s (%s,%s,%s)\" w pamięci podręcznej netgroup!"
@@ -4174,7 +4169,7 @@ msgstr "Użycie oddzielnego bufora dla każdego użytkownika"
msgid "Name Service Cache Daemon."
msgstr "Demon buforujący usługi odwzorowania nazw."
-#: nscd/nscd.c:155 nss/getent.c:967 nss/makedb.c:206
+#: nscd/nscd.c:155 nss/getent.c:987 nss/makedb.c:206
#, c-format
msgid "wrong number of arguments"
msgstr "zła liczba argumentów"
@@ -4282,27 +4277,27 @@ msgstr "BÅ‚Ä…d analizowania: %s"
msgid "Must specify user name for server-user option"
msgstr "Trzeba podać nazwę użytkownika dla opcji server-user"
-#: nscd/nscd_conf.c:198
+#: nscd/nscd_conf.c:201
#, c-format
msgid "Must specify user name for stat-user option"
msgstr "Trzeba podać nazwę użytkownika dla opcji stat-user"
-#: nscd/nscd_conf.c:255
+#: nscd/nscd_conf.c:259
#, c-format
msgid "Must specify value for restart-interval option"
msgstr "Trzeba podać wartość dla opcji restart-interval"
-#: nscd/nscd_conf.c:269
+#: nscd/nscd_conf.c:273
#, c-format
msgid "Unknown option: %s %s %s"
msgstr "Nieznana opcja: %s %s %s"
-#: nscd/nscd_conf.c:282
+#: nscd/nscd_conf.c:286
#, c-format
msgid "cannot get current working directory: %s; disabling paranoia mode"
msgstr "nie można pobrać bieżącego katalogu: %s; wyłączono tryb paranoiczny"
-#: nscd/nscd_conf.c:302
+#: nscd/nscd_conf.c:306
#, c-format
msgid "maximum file size for %s database too small"
msgstr "maksymalny rozmiar pliku dla bazy danych %s jest zbyt mały"
@@ -4564,46 +4559,46 @@ msgstr "Nie znaleziono \"%s\" w pamięci podręcznej usług!"
msgid "Reloading \"%s\" in services cache!"
msgstr "Przeładowywanie \"%s\" w pamięci podręcznej usług!"
-#: nss/getent.c:54
+#: nss/getent.c:55
msgid "database [key ...]"
msgstr "baza [klucz ...]"
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "CONFIG"
msgstr "KONFIGURACJA"
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "Service configuration to be used"
msgstr "Użycie tej konfiguracji usługi rozwiązywania nazw"
-#: nss/getent.c:60
+#: nss/getent.c:61
msgid "disable IDN encoding"
msgstr "wyłączenie kodowania IDN"
-#: nss/getent.c:65
+#: nss/getent.c:66
msgid "Get entries from administrative database."
msgstr "Odczyt wpisów z bazy administracyjnej."
-#: nss/getent.c:149 nss/getent.c:442 nss/getent.c:489
+#: nss/getent.c:150 nss/getent.c:462 nss/getent.c:509
#, c-format
msgid "Enumeration not supported on %s\n"
msgstr "Wyliczanie nie obsługiwane dla %s\n"
-#: nss/getent.c:497 nss/getent.c:510
+#: nss/getent.c:517 nss/getent.c:530
#, c-format
msgid "Could not allocate group list: %m\n"
msgstr "Nie udało się przydzielić pamięci dla listy grup: %m\n"
-#: nss/getent.c:881
+#: nss/getent.c:901
#, c-format
msgid "Unknown database name"
msgstr "Nieznana baza danych"
-#: nss/getent.c:911
+#: nss/getent.c:931
msgid "Supported databases:\n"
msgstr "Obsługiwane bazy danych:\n"
-#: nss/getent.c:977
+#: nss/getent.c:997
#, c-format
msgid "Unknown database: %s\n"
msgstr "Nieznana baza `%s'\n"
@@ -4858,11 +4853,11 @@ msgstr "Wyrażenie regularne jest za duże"
msgid "Unmatched ) or \\)"
msgstr "Niesparowane ) lub \\)"
-#: posix/regcomp.c:689
+#: posix/regcomp.c:676
msgid "No previous regular expression"
msgstr "Brak wyrażenia regularnego"
-#: posix/wordexp.c:1815
+#: posix/wordexp.c:1816
msgid "parameter null or not set"
msgstr "parametr pusty lub nie ustawiony"
@@ -5047,7 +5042,7 @@ msgstr "Dostępne bufory wyjściowe"
msgid "Input message available"
msgstr "Dostępny komunikat wejściowy"
-#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:381 timezone/zic.c:520
+#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:375 timezone/zic.c:561
msgid "I/O error"
msgstr "BÅ‚Ä…d we/wy"
@@ -5130,7 +5125,7 @@ msgstr "Nieznany sygnał %d"
#: sunrpc/auth_unix.c:112 sunrpc/clnt_tcp.c:124 sunrpc/clnt_udp.c:139
#: sunrpc/clnt_unix.c:125 sunrpc/svc_tcp.c:189 sunrpc/svc_tcp.c:233
#: sunrpc/svc_udp.c:161 sunrpc/svc_unix.c:189 sunrpc/svc_unix.c:229
-#: sunrpc/xdr.c:628 sunrpc/xdr.c:788 sunrpc/xdr_array.c:102
+#: sunrpc/xdr.c:631 sunrpc/xdr.c:791 sunrpc/xdr_array.c:102
#: sunrpc/xdr_rec.c:153 sunrpc/xdr_ref.c:79
msgid "out of memory\n"
msgstr "brak pamięci\n"
@@ -6384,57 +6379,70 @@ msgid "You really blew it this time"
msgstr "Tym razem dałeś popalić"
#. TRANS Go home and have a glass of warm, dairy-fresh milk.
-#: sysdeps/gnu/errlist.c:978
+#. TRANS @c Okay. Since you are dying to know, I'll tell you.
+#. TRANS @c This is a joke, obviously. There is a children's song which begins,
+#. TRANS @c "Old McDonald had a farm, e-i-e-i-o." Every time I see the (real)
+#. TRANS @c errno macro EIO, I think about that song. Probably most of my
+#. TRANS @c compatriots who program on Unix do, too. One of them must have stayed
+#. TRANS @c up a little too late one night and decided to add it to Hurd or Glibc.
+#. TRANS @c Whoever did it should be castigated, but it made me laugh.
+#. TRANS @c --jtobey@channel1.com
+#. TRANS @c
+#. TRANS @c "bought the farm" means "died". -jtobey
+#. TRANS @c
+#. TRANS @c Translators, please do not translate this litteraly, translate it into
+#. TRANS @c an idiomatic funny way of saying that the computer died.
+#: sysdeps/gnu/errlist.c:991
msgid "Computer bought the farm"
msgstr "Komputer wyjechał na wakacje"
#. TRANS This error code has no purpose.
-#: sysdeps/gnu/errlist.c:987
+#: sysdeps/gnu/errlist.c:1000
msgid "Gratuitous error"
msgstr "Nieoczekiwany błąd"
-#: sysdeps/gnu/errlist.c:995
+#: sysdeps/gnu/errlist.c:1008
msgid "Bad message"
msgstr "Błędny komunikat"
-#: sysdeps/gnu/errlist.c:1003
+#: sysdeps/gnu/errlist.c:1016
msgid "Identifier removed"
msgstr "Identyfikator został usunięty"
# wydaje mi sie ze tu chodzi o wyczerpanie TTL i stad 'zbyt' -PK
-#: sysdeps/gnu/errlist.c:1011
+#: sysdeps/gnu/errlist.c:1024
msgid "Multihop attempted"
msgstr "Próba przejścia przez zbyt wiele ruterów"
-#: sysdeps/gnu/errlist.c:1019
+#: sysdeps/gnu/errlist.c:1032
msgid "No data available"
msgstr "Brak danych"
-#: sysdeps/gnu/errlist.c:1027
+#: sysdeps/gnu/errlist.c:1040
msgid "Link has been severed"
msgstr "Połączenie zostało przerwane"
-#: sysdeps/gnu/errlist.c:1035
+#: sysdeps/gnu/errlist.c:1048
msgid "No message of desired type"
msgstr "Brak komunikatu o pożądanym typie"
-#: sysdeps/gnu/errlist.c:1043
+#: sysdeps/gnu/errlist.c:1056
msgid "Out of streams resources"
msgstr "Brak dodatkowych strumieni"
-#: sysdeps/gnu/errlist.c:1051
+#: sysdeps/gnu/errlist.c:1064
msgid "Device not a stream"
msgstr "UrzÄ…dzenie nie jest strumieniem"
-#: sysdeps/gnu/errlist.c:1059
+#: sysdeps/gnu/errlist.c:1072
msgid "Value too large for defined data type"
msgstr "Wartość za duża dla zdefiniowanego typu danych"
-#: sysdeps/gnu/errlist.c:1067
+#: sysdeps/gnu/errlist.c:1080
msgid "Protocol error"
msgstr "Błąd protokołu"
-#: sysdeps/gnu/errlist.c:1075
+#: sysdeps/gnu/errlist.c:1088
msgid "Timer expired"
msgstr "Upłynął czas stopera"
@@ -6442,195 +6450,195 @@ msgstr "Upłynął czas stopera"
#. TRANS completed. @xref{Asynchronous I/O}. When you call @code{aio_cancel},
#. TRANS the normal result is for the operations affected to complete with this
#. TRANS error; @pxref{Cancel AIO Operations}.
-#: sysdeps/gnu/errlist.c:1087
+#: sysdeps/gnu/errlist.c:1100
msgid "Operation canceled"
msgstr "Operacja anulowana"
-#: sysdeps/gnu/errlist.c:1095
+#: sysdeps/gnu/errlist.c:1108
msgid "Owner died"
msgstr "Właściciel zmarł"
-#: sysdeps/gnu/errlist.c:1103
+#: sysdeps/gnu/errlist.c:1116
msgid "State not recoverable"
msgstr "Stan bez możliwości wyjścia"
-#: sysdeps/gnu/errlist.c:1111
+#: sysdeps/gnu/errlist.c:1124
msgid "Interrupted system call should be restarted"
msgstr "Należy wznowić przerwane wywołanie systemowe"
-#: sysdeps/gnu/errlist.c:1119
+#: sysdeps/gnu/errlist.c:1132
msgid "Channel number out of range"
msgstr "Numer kanału poza zakresem"
-#: sysdeps/gnu/errlist.c:1127
+#: sysdeps/gnu/errlist.c:1140
msgid "Level 2 not synchronized"
msgstr "Poziom 2 nie zsynchronizowany"
-#: sysdeps/gnu/errlist.c:1135
+#: sysdeps/gnu/errlist.c:1148
msgid "Level 3 halted"
msgstr "Poziom 3 zatrzymany"
-#: sysdeps/gnu/errlist.c:1143
+#: sysdeps/gnu/errlist.c:1156
msgid "Level 3 reset"
msgstr "Poziom 3 wyzerowany"
-#: sysdeps/gnu/errlist.c:1151
+#: sysdeps/gnu/errlist.c:1164
msgid "Link number out of range"
msgstr "Numer dowiÄ…zania poza zakresem"
-#: sysdeps/gnu/errlist.c:1159
+#: sysdeps/gnu/errlist.c:1172
msgid "Protocol driver not attached"
msgstr "Sterownik protokołu nie jest podłączony"
-#: sysdeps/gnu/errlist.c:1167
+#: sysdeps/gnu/errlist.c:1180
msgid "No CSI structure available"
msgstr "Struktura CSI niedostępna"
-#: sysdeps/gnu/errlist.c:1175
+#: sysdeps/gnu/errlist.c:1188
msgid "Level 2 halted"
msgstr "Poziom 2 zatrzymany"
-#: sysdeps/gnu/errlist.c:1183
+#: sysdeps/gnu/errlist.c:1196
msgid "Invalid exchange"
msgstr "Błędna wymiana"
-#: sysdeps/gnu/errlist.c:1191
+#: sysdeps/gnu/errlist.c:1204
msgid "Invalid request descriptor"
msgstr "Błędny deskryptor żądania"
-#: sysdeps/gnu/errlist.c:1199
+#: sysdeps/gnu/errlist.c:1212
msgid "Exchange full"
msgstr "Przepełniona wymiana"
-#: sysdeps/gnu/errlist.c:1207
+#: sysdeps/gnu/errlist.c:1220
msgid "No anode"
msgstr "Brak anody"
-#: sysdeps/gnu/errlist.c:1215
+#: sysdeps/gnu/errlist.c:1228
msgid "Invalid request code"
msgstr "Zły kod żądania"
-#: sysdeps/gnu/errlist.c:1223
+#: sysdeps/gnu/errlist.c:1236
msgid "Invalid slot"
msgstr "Błędny kanał"
-#: sysdeps/gnu/errlist.c:1231
+#: sysdeps/gnu/errlist.c:1244
msgid "File locking deadlock error"
msgstr "Podczas blokowania pliku wystąpiło zakleszczenie"
-#: sysdeps/gnu/errlist.c:1239
+#: sysdeps/gnu/errlist.c:1252
msgid "Bad font file format"
msgstr "Błędny format pliku fontu"
-#: sysdeps/gnu/errlist.c:1247
+#: sysdeps/gnu/errlist.c:1260
msgid "Machine is not on the network"
msgstr "Maszyna nie znajduje siÄ™ w tej sieci"
-#: sysdeps/gnu/errlist.c:1255
+#: sysdeps/gnu/errlist.c:1268
msgid "Package not installed"
msgstr "Pakiet nie jest zainstalowany"
-#: sysdeps/gnu/errlist.c:1263
+#: sysdeps/gnu/errlist.c:1276
msgid "Advertise error"
msgstr "Błąd podczas ogłaszania"
-#: sysdeps/gnu/errlist.c:1271
+#: sysdeps/gnu/errlist.c:1284
msgid "Srmount error"
msgstr "BÅ‚Ä…d srmount"
-#: sysdeps/gnu/errlist.c:1279
+#: sysdeps/gnu/errlist.c:1292
msgid "Communication error on send"
msgstr "Błąd komunikacji podczas wysyłania"
-#: sysdeps/gnu/errlist.c:1287
+#: sysdeps/gnu/errlist.c:1300
msgid "RFS specific error"
msgstr "BÅ‚Ä…d RFS"
-#: sysdeps/gnu/errlist.c:1295
+#: sysdeps/gnu/errlist.c:1308
msgid "Name not unique on network"
msgstr "Nazwa nie jest unikalna w sieci"
-#: sysdeps/gnu/errlist.c:1303
+#: sysdeps/gnu/errlist.c:1316
msgid "File descriptor in bad state"
msgstr "Deskryptor pliku w złym stanie"
-#: sysdeps/gnu/errlist.c:1311
+#: sysdeps/gnu/errlist.c:1324
msgid "Remote address changed"
msgstr "Zmienił się adres drugiego końca"
-#: sysdeps/gnu/errlist.c:1319
+#: sysdeps/gnu/errlist.c:1332
msgid "Can not access a needed shared library"
msgstr "Brak dostępu do wymaganej biblioteki dzielonej"
-#: sysdeps/gnu/errlist.c:1327
+#: sysdeps/gnu/errlist.c:1340
msgid "Accessing a corrupted shared library"
msgstr "Próba użycia uszkodzonej biblioteki dzielonej"
-#: sysdeps/gnu/errlist.c:1335
+#: sysdeps/gnu/errlist.c:1348
msgid ".lib section in a.out corrupted"
msgstr "Sekcja .lib w a.out jest uszkodzona"
-#: sysdeps/gnu/errlist.c:1343
+#: sysdeps/gnu/errlist.c:1356
msgid "Attempting to link in too many shared libraries"
msgstr "Próba łączenia ze zbyt wieloma bibliotekami dzielonymi"
-#: sysdeps/gnu/errlist.c:1351
+#: sysdeps/gnu/errlist.c:1364
msgid "Cannot exec a shared library directly"
msgstr "Nie można bezpośrednio uruchomić biblioteki dzielonej"
-#: sysdeps/gnu/errlist.c:1359
+#: sysdeps/gnu/errlist.c:1372
msgid "Streams pipe error"
msgstr "BÅ‚Ä…d potoku biblioteki strumieni"
-#: sysdeps/gnu/errlist.c:1367
+#: sysdeps/gnu/errlist.c:1380
msgid "Structure needs cleaning"
msgstr "Struktura wymaga wyczyszczenia"
-#: sysdeps/gnu/errlist.c:1375
+#: sysdeps/gnu/errlist.c:1388
msgid "Not a XENIX named type file"
msgstr "Nie jest XENIXowym plikiem nazwanego typu"
-#: sysdeps/gnu/errlist.c:1383
+#: sysdeps/gnu/errlist.c:1396
msgid "No XENIX semaphores available"
msgstr "Brak dostępnych semaforów XENIXowych"
-#: sysdeps/gnu/errlist.c:1391
+#: sysdeps/gnu/errlist.c:1404
msgid "Is a named type file"
msgstr "Jest plikiem nazwanym"
-#: sysdeps/gnu/errlist.c:1399
+#: sysdeps/gnu/errlist.c:1412
msgid "Remote I/O error"
msgstr "Błąd we/wy w odległym systemie"
-#: sysdeps/gnu/errlist.c:1407
+#: sysdeps/gnu/errlist.c:1420
msgid "No medium found"
msgstr "Brak medium"
-#: sysdeps/gnu/errlist.c:1415
+#: sysdeps/gnu/errlist.c:1428
msgid "Wrong medium type"
msgstr "Niewłaściwy typ medium"
-#: sysdeps/gnu/errlist.c:1423
+#: sysdeps/gnu/errlist.c:1436
msgid "Required key not available"
msgstr "Wymagany klucz niedostępny"
-#: sysdeps/gnu/errlist.c:1431
+#: sysdeps/gnu/errlist.c:1444
msgid "Key has expired"
msgstr "Klucz wygasł"
-#: sysdeps/gnu/errlist.c:1439
+#: sysdeps/gnu/errlist.c:1452
msgid "Key has been revoked"
msgstr "Klucz został unieważniony"
-#: sysdeps/gnu/errlist.c:1447
+#: sysdeps/gnu/errlist.c:1460
msgid "Key was rejected by service"
msgstr "Klucz został odrzucony przez usługę"
-#: sysdeps/gnu/errlist.c:1455
+#: sysdeps/gnu/errlist.c:1468
msgid "Operation not possible due to RF-kill"
msgstr "Operacja niemożliwa ze względu na RF-kill"
-#: sysdeps/gnu/errlist.c:1463
+#: sysdeps/gnu/errlist.c:1476
msgid "Memory page has hardware error"
msgstr "Strona pamięci ma błąd sprzętowy"
@@ -6755,27 +6763,27 @@ msgstr "stos ukryty nie jest włączony"
msgid "can't disable CET"
msgstr "nie można wyłączyć CET"
-#: timezone/zdump.c:338
+#: timezone/zdump.c:332
msgid "has fewer than 3 characters"
msgstr "ma mniej niż 3 znaki"
-#: timezone/zdump.c:340
+#: timezone/zdump.c:334
msgid "has more than 6 characters"
msgstr "ma więcej niż 6 znaków"
-#: timezone/zdump.c:342
+#: timezone/zdump.c:336
msgid "has characters other than ASCII alphanumerics, '-' or '+'"
msgstr "zawiera znaki inne niż ASCII alfanumeryczne, '-' lub '+'"
-#: timezone/zdump.c:347
+#: timezone/zdump.c:341
#, c-format
msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n"
msgstr "%s: uwaga: skrót strefy \"%s\" \"%s\" %s\n"
-#: timezone/zdump.c:393
+#: timezone/zdump.c:387
#, c-format
msgid ""
-"%s: usage: %s OPTIONS ZONENAME ...\n"
+"%s: usage: %s OPTIONS TIMEZONE ...\n"
"Options include:\n"
" -c [L,]U Start at year L (default -500), end before year U (default 2500)\n"
" -t [L,]U Start at time L, end before time U (in seconds since 1970)\n"
@@ -6787,7 +6795,7 @@ msgid ""
"\n"
"Report bugs to %s.\n"
msgstr ""
-"%s: składnia: %s OPCJE NAZWA_STREFY ...\n"
+"%s: składnia: %s OPCJE STREFA ...\n"
"Opcje:\n"
" -c [D,]G Rozpoczęcie od roku D (domyślnie -500), koniec przed G (dom. 2500)\n"
" -t [D,]G Rozpoczęcie od czasu T, koniec przed G (w sekundach od 1970)\n"
@@ -6799,436 +6807,460 @@ msgstr ""
"\n"
"Błędy prosimy zgłaszać na adres %s.\n"
-#: timezone/zdump.c:479
+#: timezone/zdump.c:473
#, c-format
msgid "%s: wild -c argument %s\n"
msgstr "%s: niepoprawny argument opcji -c: %s\n"
-#: timezone/zdump.c:512
+#: timezone/zdump.c:506
#, c-format
msgid "%s: wild -t argument %s\n"
msgstr "%s: niepoprawny argument opcji -t: %s\n"
-#: timezone/zic.c:398
+#: timezone/zic.c:429
#, c-format
msgid "%s: Memory exhausted: %s\n"
msgstr "%s: Brak pamięci: %s\n"
-#: timezone/zic.c:406
+#: timezone/zic.c:437
msgid "size overflow"
msgstr "przepełnienie rozmiaru"
-#: timezone/zic.c:454
+#: timezone/zic.c:447
+msgid "alignment overflow"
+msgstr "przepełnienie wyrównania"
+
+#: timezone/zic.c:495
msgid "integer overflow"
msgstr "przepełnienie liczby całkowitej"
-#: timezone/zic.c:488
+#: timezone/zic.c:529
#, c-format
msgid "\"%s\", line %<PRIdMAX>: "
msgstr "\"%s\", linia %<PRIdMAX>: "
-#: timezone/zic.c:491
+#: timezone/zic.c:532
#, c-format
msgid " (rule from \"%s\", line %<PRIdMAX>)"
msgstr " (reguła z \"%s\", linia %<PRIdMAX>)"
-#: timezone/zic.c:510
+#: timezone/zic.c:551
#, c-format
msgid "warning: "
msgstr "uwaga: "
-#: timezone/zic.c:535
+#: timezone/zic.c:576
#, c-format
msgid ""
"%s: usage is %s [ --version ] [ --help ] [ -v ] \\\n"
"\t[ -l localtime ] [ -p posixrules ] [ -d directory ] \\\n"
-"\t[ -L leapseconds ] [ filename ... ]\n"
+"\t[ -t localtime-link ] [ -L leapseconds ] [ filename ... ]\n"
"\n"
"Report bugs to %s.\n"
msgstr ""
"%s: składnia: %s [ --version ] [ --help ] [ -v ] \\\n"
"\t[ -l czas_lokalny ] [ -p reguły_POSIX ] [ -d katalog ] \\\n"
-"\t[ -L sek_przestępne ] [ plik ... ]\n"
+"\t[ -t dowiązanie_czasu_lokalnego ] [ -L sek_przestępne ] [ plik ... ]\n"
"\n"
"Błędy prosimy zgłaszać na adres %s.\n"
-#: timezone/zic.c:558
+#: timezone/zic.c:599
#, c-format
msgid "%s: Can't chdir to %s: %s\n"
msgstr "%s: Nie można zmienić katalogu na %s: %s\n"
-#: timezone/zic.c:590
+#: timezone/zic.c:632
msgid "wild compilation-time specification of zic_t"
msgstr "niepoprawna specyfikacja zic_t w czasie kompilacji"
-#: timezone/zic.c:610
+#: timezone/zic.c:652
#, c-format
msgid "%s: More than one -d option specified\n"
msgstr "%s: Podano więcej niż jedną opcję -d\n"
-#: timezone/zic.c:620
+#: timezone/zic.c:662
#, c-format
msgid "%s: More than one -l option specified\n"
msgstr "%s: Podano więcej niż jedną opcję -l\n"
-#: timezone/zic.c:630
+#: timezone/zic.c:672
#, c-format
msgid "%s: More than one -p option specified\n"
msgstr "%s: Podano więcej niż jedną opcję -p\n"
-#: timezone/zic.c:640
+#: timezone/zic.c:680
+#, c-format
+msgid "%s: More than one -t option specified\n"
+msgstr "%s: Podano więcej niż jedną opcję -t\n"
+
+#: timezone/zic.c:689
+msgid "-y is obsolescent"
+msgstr "-y jest przestarzałe"
+
+#: timezone/zic.c:693
#, c-format
msgid "%s: More than one -y option specified\n"
msgstr "%s: Podano więcej niż jedną opcję -y\n"
-#: timezone/zic.c:650
+#: timezone/zic.c:703
#, c-format
msgid "%s: More than one -L option specified\n"
msgstr "%s: Podano więcej niż jedną opcję -L\n"
-#: timezone/zic.c:659
+#: timezone/zic.c:712
msgid "-s ignored"
msgstr "-s zignorowano"
-#: timezone/zic.c:698
+#: timezone/zic.c:753
msgid "link to link"
msgstr "dowiÄ…zanie do dowiÄ…zania"
-#: timezone/zic.c:701 timezone/zic.c:705
+#: timezone/zic.c:756 timezone/zic.c:760
msgid "command line"
msgstr "linia poleceń"
-#: timezone/zic.c:721
+#: timezone/zic.c:776
msgid "empty file name"
msgstr "pusta nazwa pliku"
-#: timezone/zic.c:724
+#: timezone/zic.c:779
#, c-format
msgid "file name '%s' begins with '/'"
msgstr "nazwa pliku '%s' zaczyna siÄ™ od '/'"
-#: timezone/zic.c:734
+#: timezone/zic.c:789
#, c-format
msgid "file name '%s' contains '%.*s' component"
msgstr "nazwa pliku '%s' zawiera element '%.*s'"
-#: timezone/zic.c:740
+#: timezone/zic.c:795
#, c-format
msgid "file name '%s' component contains leading '-'"
msgstr "element nazwy pliku '%s' zawiera wiodÄ…cy '-'"
-#: timezone/zic.c:743
+#: timezone/zic.c:798
#, c-format
msgid "file name '%s' contains overlength component '%.*s...'"
msgstr "nazwa pliku '%s' zawiera zbyt długi element '%.*s...'"
-#: timezone/zic.c:771
+#: timezone/zic.c:826
#, c-format
msgid "file name '%s' contains byte '%c'"
msgstr "nazwa pliku '%s' zawiera bajt '%c'"
-#: timezone/zic.c:772
+#: timezone/zic.c:827
#, c-format
msgid "file name '%s' contains byte '\\%o'"
msgstr "nazwa pliku '%s' zawiera bajt '\\%o'"
-#: timezone/zic.c:842
+#: timezone/zic.c:897
#, c-format
msgid "%s: link from %s/%s failed: %s\n"
msgstr "%s: dowiązanie z %s/%s nie powiodło się: %s\n"
-#: timezone/zic.c:852 timezone/zic.c:1815
+#: timezone/zic.c:907 timezone/zic.c:1876
#, c-format
msgid "%s: Can't remove %s/%s: %s\n"
msgstr "%s: Nie można usunąć %s/%s: %s\n"
-#: timezone/zic.c:874
+#: timezone/zic.c:931
#, c-format
msgid "symbolic link used because hard link failed: %s"
msgstr "użyto dowiązania symbolicznego, ponieważ zwykłe nie powiodło się: %s"
-#: timezone/zic.c:882
+#: timezone/zic.c:939
#, c-format
msgid "%s: Can't read %s/%s: %s\n"
msgstr "%s: Nie można odczytać %s/%s: %s\n"
-#: timezone/zic.c:889 timezone/zic.c:1828
+#: timezone/zic.c:946 timezone/zic.c:1889
#, c-format
msgid "%s: Can't create %s/%s: %s\n"
msgstr "%s: Nie można utworzyć %s/%s: %s\n"
-#: timezone/zic.c:898
+#: timezone/zic.c:955
#, c-format
msgid "copy used because hard link failed: %s"
msgstr "użyto kopii, ponieważ dowiązanie zwykłe nie powiodło się: %s"
-#: timezone/zic.c:901
+#: timezone/zic.c:958
#, c-format
msgid "copy used because symbolic link failed: %s"
msgstr "użyto kopii, ponieważ dowiązanie symboliczne nie powiodło się: %s"
-#: timezone/zic.c:1013 timezone/zic.c:1015
+#: timezone/zic.c:1032 timezone/zic.c:1034
msgid "same rule name in multiple files"
msgstr "ta sama nazwa nazwa reguły w różnych plikach"
-#: timezone/zic.c:1056
-msgid "unruly zone"
-msgstr "strefa bez reguł"
-
-#: timezone/zic.c:1063
+#: timezone/zic.c:1081
#, c-format
msgid "%s in ruleless zone"
msgstr "%s w strefie dla której nie zdefiniowano reguł"
-#: timezone/zic.c:1083
+#: timezone/zic.c:1101
msgid "standard input"
msgstr "standardowe wejście"
-#: timezone/zic.c:1088
+#: timezone/zic.c:1106
#, c-format
msgid "%s: Can't open %s: %s\n"
msgstr "%s: Nie można otworzyć %s: %s\n"
-#: timezone/zic.c:1099
+#: timezone/zic.c:1117
msgid "line too long"
msgstr "za długa linia"
-#: timezone/zic.c:1119
+#: timezone/zic.c:1139
msgid "input line of unknown type"
msgstr "nieznany typ linii wejściowej"
-#: timezone/zic.c:1134
-#, c-format
-msgid "%s: Leap line in non leap seconds file %s"
-msgstr "%s: linia Leap nie znajduje się w pliku sekund przestępnych %s"
-
-#: timezone/zic.c:1142 timezone/zic.c:1547 timezone/zic.c:1569
+#: timezone/zic.c:1158 timezone/zic.c:1593 timezone/zic.c:1615
#, c-format
msgid "%s: panic: Invalid l_value %d\n"
msgstr "%s: panika: Błędna l-wartość %d\n"
-#: timezone/zic.c:1151
+#: timezone/zic.c:1167
msgid "expected continuation line not found"
msgstr "brak spodziewanej linii kontynuacji"
-#: timezone/zic.c:1193 timezone/zic.c:2976
+#: timezone/zic.c:1203
+msgid "fractional seconds rejected by pre-2018 versions of zic"
+msgstr "ułamki sekund są odrzucane przez wersje zic sprzed 2018 roku"
+
+#: timezone/zic.c:1221 timezone/zic.c:3078
msgid "time overflow"
msgstr "przepełnienie czasu"
-#: timezone/zic.c:1198
+#: timezone/zic.c:1227
msgid "values over 24 hours not handled by pre-2007 versions of zic"
msgstr "wartości większe niż 24 godziny nie były obsługiwane przez zic sprzed 2007 roku"
-#: timezone/zic.c:1209
+#: timezone/zic.c:1245
+msgid "invalid saved time"
+msgstr "błędny czas oszczędności"
+
+#: timezone/zic.c:1256
msgid "wrong number of fields on Rule line"
msgstr "zła liczba pól w linii Rule"
-#: timezone/zic.c:1213
-msgid "nameless rule"
-msgstr "bezimienna reguła"
-
-#: timezone/zic.c:1218
-msgid "invalid saved time"
-msgstr "błędny czas oszczędności"
+#: timezone/zic.c:1265
+#, c-format
+msgid "Invalid rule name \"%s\""
+msgstr "Nieprawidłowa nazwa reguły \"%s\""
-#: timezone/zic.c:1235
+#: timezone/zic.c:1287
msgid "wrong number of fields on Zone line"
msgstr "zła liczba pól w linii Zone"
-#: timezone/zic.c:1240
+#: timezone/zic.c:1292
#, c-format
msgid "\"Zone %s\" line and -l option are mutually exclusive"
msgstr "Linia \"Zone %s\" i opcja -l wykluczajÄ… siÄ™ wzajemnie"
-#: timezone/zic.c:1246
+#: timezone/zic.c:1298
#, c-format
msgid "\"Zone %s\" line and -p option are mutually exclusive"
msgstr "Linia \"Zone %s\" i opcja -p wykluczajÄ… siÄ™ wzajemnie"
-#: timezone/zic.c:1253
+#: timezone/zic.c:1305
#, c-format
msgid "duplicate zone name %s (file \"%s\", line %<PRIdMAX>)"
msgstr "powtórzona nazwa strefy %s (plik \"%s\", linia %<PRIdMAX>)"
-#: timezone/zic.c:1267
+#: timezone/zic.c:1319
msgid "wrong number of fields on Zone continuation line"
msgstr "zła liczba pól w linii kontynuacji Zone"
-#: timezone/zic.c:1307
+#: timezone/zic.c:1359
msgid "invalid UT offset"
msgstr "nieprawidłowe przesunięcie UT"
-#: timezone/zic.c:1311
+#: timezone/zic.c:1363
msgid "invalid abbreviation format"
msgstr "nieprawidłowy format skrótu"
-#: timezone/zic.c:1320
+#: timezone/zic.c:1372
#, c-format
msgid "format '%s' not handled by pre-2015 versions of zic"
msgstr "format '%s' nie jest obsługiwany przez wersje zic sprzed 2015 roku"
-#: timezone/zic.c:1347
+#: timezone/zic.c:1399
msgid "Zone continuation line end time is not after end time of previous line"
msgstr "Czas końcowy linii kontynuacji Zone nie jest po czasie końcowym poprzedniej linii"
-#: timezone/zic.c:1374
+#: timezone/zic.c:1426
msgid "wrong number of fields on Leap line"
msgstr "zła liczba pól w linii Leap"
-#: timezone/zic.c:1383
+#: timezone/zic.c:1435
msgid "invalid leaping year"
msgstr "nieprawidłowy rok przestępny"
-#: timezone/zic.c:1403 timezone/zic.c:1501
+#: timezone/zic.c:1455 timezone/zic.c:1547
msgid "invalid month name"
msgstr "nieprawidłowa nazwa miesiąca"
-#: timezone/zic.c:1416 timezone/zic.c:1614 timezone/zic.c:1628
+#: timezone/zic.c:1468 timezone/zic.c:1663 timezone/zic.c:1677
msgid "invalid day of month"
msgstr "nieprawidłowy dzień miesiąca"
-#: timezone/zic.c:1421
+#: timezone/zic.c:1473
msgid "time too small"
msgstr "czas zbyt mały"
-#: timezone/zic.c:1425
+#: timezone/zic.c:1477
msgid "time too large"
msgstr "czas zbyt duży"
-#: timezone/zic.c:1429 timezone/zic.c:1530
+#: timezone/zic.c:1481 timezone/zic.c:1576
msgid "invalid time of day"
msgstr "nieprawidłowa pora dnia"
-#: timezone/zic.c:1448
+#: timezone/zic.c:1494
msgid "illegal CORRECTION field on Leap line"
msgstr "błędne pole CORRECTION w linii Leap"
-#: timezone/zic.c:1453
+#: timezone/zic.c:1499
msgid "illegal Rolling/Stationary field on Leap line"
msgstr "błędne pole Rolling/Stationary w linii Leap"
-#: timezone/zic.c:1459
-msgid "leap second precedes Big Bang"
-msgstr "sekunda przestępna sprzed Wielkiego Wybuchu"
+#: timezone/zic.c:1505
+msgid "leap second precedes Epoch"
+msgstr "sekunda przestępna sprzed Epoki"
-#: timezone/zic.c:1472
+#: timezone/zic.c:1518
msgid "wrong number of fields on Link line"
msgstr "zła liczba pól w linii Link"
-#: timezone/zic.c:1476
+#: timezone/zic.c:1522
msgid "blank FROM field on Link line"
msgstr "puste pole FROM w linii Link"
-#: timezone/zic.c:1551
+#: timezone/zic.c:1597
msgid "invalid starting year"
msgstr "nieprawidłowy rok początkowy"
-#: timezone/zic.c:1573
+#: timezone/zic.c:1619
msgid "invalid ending year"
msgstr "nieprawidłowy rok końcowy"
-#: timezone/zic.c:1577
+#: timezone/zic.c:1623
msgid "starting year greater than ending year"
msgstr "rok początkowy jest późniejszy niż końcowy"
-#: timezone/zic.c:1584
+#: timezone/zic.c:1630
msgid "typed single year"
msgstr "podano pojedynczy rok"
-#: timezone/zic.c:1619
+#: timezone/zic.c:1633
+#, c-format
+msgid "year type \"%s\" is obsolete; use \"-\" instead"
+msgstr "typ roku \"%s\" jest przestarzały; zamiast tego należy użyć \"-\""
+
+#: timezone/zic.c:1668
msgid "invalid weekday name"
msgstr "nieprawidłowa nazwa dnia tygodnia"
-#: timezone/zic.c:1743
+#: timezone/zic.c:1800
#, c-format
msgid "reference clients mishandle more than %d transition times"
msgstr "klienci referencyjni mogą źle obsługiwać więcej niż %d zmian czasu"
-#: timezone/zic.c:1747
+#: timezone/zic.c:1804
msgid "pre-2014 clients may mishandle more than 1200 transition times"
msgstr "klienci sprzed 2014 roku mogą źle obsługiwać więcej niż 1200 zmian czasu"
-#: timezone/zic.c:1858
+#: timezone/zic.c:1920
msgid "too many transition times"
msgstr "za dużo zmian czasu"
-#: timezone/zic.c:2047
+#: timezone/zic.c:2107
#, c-format
-msgid "%%z UTC offset magnitude exceeds 99:59:59"
-msgstr "wielkość przesunięcia %%z względem UTC przekracza 99:59:59"
+msgid "%%z UT offset magnitude exceeds 99:59:59"
+msgstr "wielkość przesunięcia %%z względem czasu uniwersalnego przekracza 99:59:59"
-#: timezone/zic.c:2424
+#: timezone/zic.c:2488
msgid "no POSIX environment variable for zone"
msgstr "brak zmiennej środowiskowej POSIX dla strefy"
-#: timezone/zic.c:2430
+#: timezone/zic.c:2494
#, c-format
msgid "%s: pre-%d clients may mishandle distant timestamps"
msgstr "%s: klienci sprzed wersji %d mogą źle obsługiwać odległe oznaczenia czasu"
-#: timezone/zic.c:2566
+#: timezone/zic.c:2631
msgid "two rules for same instant"
msgstr "dwie reguły dla tej samej chwili"
# jak ladnie przetlumaczyc ten until time? -PK
-#: timezone/zic.c:2627
+#: timezone/zic.c:2696
msgid "can't determine time zone abbreviation to use just after until time"
msgstr "nie można określić skrótu strefy czasowej po końcu przedziału czasu"
-#: timezone/zic.c:2725
+#: timezone/zic.c:2785
msgid "too many local time types"
msgstr "za dużo lokalnych typów czasu"
-#: timezone/zic.c:2729
+#: timezone/zic.c:2789
msgid "UT offset out of range"
msgstr "przesunięcie względem UT poza zakresem"
-#: timezone/zic.c:2753
+#: timezone/zic.c:2813
msgid "too many leap seconds"
msgstr "za dużo sekund przestępnych"
-#: timezone/zic.c:2759
-msgid "repeated leap second moment"
-msgstr "powtórzona chwila występowania sekund przestępnych"
+#: timezone/zic.c:2844
+msgid "Leap seconds too close together"
+msgstr "Sekundy przestępne zbyt bliskie"
-#: timezone/zic.c:2830
+#: timezone/zic.c:2891
msgid "Wild result from command execution"
msgstr "Osobliwy wynik wykonania polecenia"
-#: timezone/zic.c:2831
+#: timezone/zic.c:2892
#, c-format
msgid "%s: command was '%s', result was %d\n"
msgstr "%s: polecenie `%s' zwróciło %d\n"
-#: timezone/zic.c:2961
+#: timezone/zic.c:2998
+#, c-format
+msgid "\"%s\" is undocumented; use \"last%s\" instead"
+msgstr "\"%s\" nie jest udokumentowane; zamiast tego należy używać \"last%s\""
+
+#: timezone/zic.c:3029
+#, c-format
+msgid "\"%s\" is ambiguous in pre-2017c zic"
+msgstr "\"%s\" jest niejednoznaczne w zic sprzed wersji 2017c"
+
+#: timezone/zic.c:3063
msgid "Odd number of quotation marks"
msgstr "Nieparzysta liczba cudzysłowów"
-#: timezone/zic.c:3046
+#: timezone/zic.c:3157
msgid "use of 2/29 in non leap-year"
msgstr "użycie 2/29 w roku nieprzestępnym"
-#: timezone/zic.c:3081
+#: timezone/zic.c:3192
msgid "rule goes past start/end of month; will not work with pre-2004 versions of zic"
msgstr "reguła przekracza początek/koniec miesiąca; nie zadziała z wersjami zic sprzed 2004 roku"
-#: timezone/zic.c:3108
+#: timezone/zic.c:3219
msgid "time zone abbreviation has fewer than 3 characters"
msgstr "skrót nazwy strefy czasowej ma mniej niż 3 znaki"
-#: timezone/zic.c:3110
+#: timezone/zic.c:3221
msgid "time zone abbreviation has too many characters"
msgstr "skrót nazwy strefy czasowej ma zbyt dużo znaków"
-#: timezone/zic.c:3112
+#: timezone/zic.c:3223
msgid "time zone abbreviation differs from POSIX standard"
msgstr "skrót nazwy strefy czasowej różni się od standardu POSIX"
-#: timezone/zic.c:3118
+#: timezone/zic.c:3229
msgid "too many, or too long, time zone abbreviations"
msgstr "za długie lub za dużo skrótów stref czasowych"
-#: timezone/zic.c:3161
+#: timezone/zic.c:3275
#, c-format
msgid "%s: Can't create directory %s: %s"
msgstr "%s: Nie można utworzyć katalogu %s: %s"
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 7994f93be7..dc788a5d84 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -1,17 +1,17 @@
# Brazilian Portuguese translation for glibc.
-# Copyright © 2018 Free Software Foundation, Inc.
+# Copyright © 2019 Free Software Foundation, Inc.
# This file is distributed under the same license as the glibc package.
# Fabio Dorival Victorelli <fabio@conectiva.com.br>, 1998.
# Márcio Macedo <marciom@conectiva.com.br>, 1998.
# Arnaldo Carvalho de Mello <acme@conectiva.com.br>, 1998.
# Sandro Nunes Henrique <sandro@conectiva.com.br>, 1998.
# Rodrigo Stulzer Lopes <rodrigo@conectiva.com.br>, 1999.
-# Rafael Fontenelle <rafaelff@gnome.org>, 2018.
+# Rafael Fontenelle <rafaelff@gnome.org>, 2018, 2019.
msgid ""
msgstr ""
-"Project-Id-Version: libc 2.27.9000\n"
-"POT-Creation-Date: 2018-07-26 22:19-0400\n"
-"PO-Revision-Date: 2018-07-30 12:50-0200\n"
+"Project-Id-Version: libc 2.29.9000\n"
+"POT-Creation-Date: 2019-07-18 13:28-0400\n"
+"PO-Revision-Date: 2019-07-24 15:55-0200\n"
"Last-Translator: Rafael Fontenelle <rafaelff@gnome.org>\n"
"Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge.net>\n"
"Language: pt_BR\n"
@@ -153,10 +153,10 @@ msgstr ""
"[ARQUIVO-SAÃDA [ARQUIVO-ENTRADA...]"
#: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:308
-#: elf/pldd.c:252 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
-#: iconv/iconvconfig.c:379 locale/programs/locale.c:275
-#: locale/programs/localedef.c:427 login/programs/pt_chown.c:89
-#: malloc/memusagestat.c:563 nss/getent.c:933 nss/makedb.c:369
+#: elf/pldd.c:247 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
+#: iconv/iconvconfig.c:379 locale/programs/locale.c:276
+#: locale/programs/localedef.c:437 login/programs/pt_chown.c:89
+#: malloc/memusagestat.c:563 nss/getent.c:953 nss/makedb.c:369
#: posix/getconf.c:503 sysdeps/unix/sysv/linux/lddlibc4.c:61
#, c-format
msgid ""
@@ -167,11 +167,11 @@ msgstr ""
"%s.\n"
#: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64
-#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75
+#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:263 elf/sotruss.sh:75
#: elf/sprof.c:389 iconv/iconv_prog.c:422 iconv/iconvconfig.c:396
-#: locale/programs/locale.c:292 locale/programs/localedef.c:453
+#: locale/programs/locale.c:293 locale/programs/localedef.c:463
#: login/programs/pt_chown.c:63 malloc/memusage.sh:71
-#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:87 nss/makedb.c:385
+#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:88 nss/makedb.c:385
#: posix/getconf.c:485 sysdeps/unix/sysv/linux/lddlibc4.c:68
#, c-format
msgid ""
@@ -185,10 +185,10 @@ msgstr ""
"PROPÓSITO EME PARTICULAR.\n"
#: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68
-#: elf/ldconfig.c:329 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:427
-#: iconv/iconvconfig.c:401 locale/programs/locale.c:297
-#: locale/programs/localedef.c:458 malloc/memusage.sh:75
-#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:92 nss/makedb.c:390
+#: elf/ldconfig.c:329 elf/pldd.c:268 elf/sprof.c:395 iconv/iconv_prog.c:427
+#: iconv/iconvconfig.c:401 locale/programs/locale.c:298
+#: locale/programs/localedef.c:468 malloc/memusage.sh:75
+#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:93 nss/makedb.c:390
#: posix/getconf.c:490
#, c-format
msgid "Written by %s.\n"
@@ -259,21 +259,21 @@ msgstr "não é possível abrir arquivo de saída “%sâ€"
msgid "invalid escape sequence"
msgstr "sequência de escape inválida"
-#: catgets/gencat.c:1209
+#: catgets/gencat.c:1211
msgid "unterminated message"
msgstr "mensagem não terminada"
-#: catgets/gencat.c:1233
+#: catgets/gencat.c:1235
#, c-format
msgid "while opening old catalog file"
msgstr "enquanto abrindo antigo arquivo de catálogo"
-#: catgets/gencat.c:1324
+#: catgets/gencat.c:1326
#, c-format
msgid "conversion modules not available"
msgstr "módulos de conversão não estão disponíveis"
-#: catgets/gencat.c:1350
+#: catgets/gencat.c:1352
#, c-format
msgid "cannot determine escape character"
msgstr "não é possível determinar caractere de escape"
@@ -401,7 +401,7 @@ msgstr "SO desconhecido"
msgid ", OS ABI: %s %d.%d.%d"
msgstr ", ABI de SO: %s %d.%d.%d"
-#: elf/cache.c:163 elf/ldconfig.c:1332
+#: elf/cache.c:163 elf/ldconfig.c:1333
#, c-format
msgid "Can't open cache file %s\n"
msgstr "Não foi possível abrir arquivo de cache %s\n"
@@ -411,39 +411,39 @@ msgstr "Não foi possível abrir arquivo de cache %s\n"
msgid "mmap of cache file failed.\n"
msgstr "mmap de arquivo de cache falhou.\n"
-#: elf/cache.c:181 elf/cache.c:195
+#: elf/cache.c:181 elf/cache.c:195 elf/cache.c:205
#, c-format
msgid "File is not a cache file.\n"
msgstr "Arquivo não é um arquivo de cache.\n"
# %d = número (quantidade) de bibliotecas
-#: elf/cache.c:228 elf/cache.c:238
+#: elf/cache.c:233 elf/cache.c:243
#, c-format
msgid "%d libs found in cache `%s'\n"
msgstr "%d bibliotecas localizadas no cache “%sâ€\n"
-#: elf/cache.c:432
+#: elf/cache.c:437
#, c-format
msgid "Can't create temporary cache file %s"
msgstr "Não foi possível criar arquivo temporário de cache %s"
-#: elf/cache.c:440 elf/cache.c:450 elf/cache.c:454 elf/cache.c:458
-#: elf/cache.c:468
+#: elf/cache.c:445 elf/cache.c:455 elf/cache.c:459 elf/cache.c:463
+#: elf/cache.c:473
#, c-format
msgid "Writing of cache data failed"
msgstr "Escrita de dados de cache falhou"
-#: elf/cache.c:463
+#: elf/cache.c:468
#, c-format
msgid "Changing access rights of %s to %#o failed"
msgstr "Mudança de direitos de acesso de %s para %#o falhou"
-#: elf/cache.c:472
+#: elf/cache.c:477
#, c-format
msgid "Renaming of %s to %s failed"
msgstr "Renomeio de %s para %s falhou"
-#: elf/dl-close.c:399 elf/dl-open.c:420
+#: elf/dl-close.c:399 elf/dl-open.c:424
msgid "cannot create scope list"
msgstr "não é possível criar lista de escopo"
@@ -524,119 +524,119 @@ msgstr "não foi possível criar vetor de caminho de pesquisa"
msgid "cannot stat shared object"
msgstr "não foi possível obter estado do objeto compartilhado"
-#: elf/dl-load.c:960
-msgid "cannot open zero fill device"
-msgstr "não foi possível abrir dispositivo preenchido com zero"
-
-#: elf/dl-load.c:1007 elf/dl-load.c:2203
+#: elf/dl-load.c:992 elf/dl-load.c:2198
msgid "cannot create shared object descriptor"
msgstr "não foi possível criar descritor de objeto compartilhado"
-#: elf/dl-load.c:1026 elf/dl-load.c:1560 elf/dl-load.c:1673
+#: elf/dl-load.c:1011 elf/dl-load.c:1555 elf/dl-load.c:1668
msgid "cannot read file data"
msgstr "não foi possível carregar dados do arquivo"
-#: elf/dl-load.c:1072
+#: elf/dl-load.c:1057
msgid "ELF load command alignment not page-aligned"
msgstr "alinhamento de comando de carregamento de ELF não está alinhado por página"
-#: elf/dl-load.c:1079
+#: elf/dl-load.c:1064
msgid "ELF load command address/offset not properly aligned"
msgstr "endereço/deslocamento de comando de carregamento de ELF não alinhado adequadamente"
-#: elf/dl-load.c:1161
+#: elf/dl-load.c:1146
msgid "cannot process note segment"
msgstr "não foi possível processar o segmento de nota"
-#: elf/dl-load.c:1172
+#: elf/dl-load.c:1157
msgid "object file has no loadable segments"
msgstr "arquivo de objeto não possui segmentos carregáveis"
-#: elf/dl-load.c:1181 elf/dl-load.c:1652
+#: elf/dl-load.c:1170 elf/dl-load.c:1647
msgid "cannot dynamically load executable"
msgstr "não foi possível carregar dinamicamente o executável"
-#: elf/dl-load.c:1202
+#: elf/dl-load.c:1191
msgid "object file has no dynamic section"
msgstr "arquivo de objeto não possui seção dinâmica"
-#: elf/dl-load.c:1225
+#: elf/dl-load.c:1218
+msgid "cannot dynamically load position-independent executable"
+msgstr "não foi possível carregar dinamicamente o executável independente de posição"
+
+#: elf/dl-load.c:1220
msgid "shared object cannot be dlopen()ed"
msgstr "objeto compartilhado não pode ser dlopen()ado"
-#: elf/dl-load.c:1238
+#: elf/dl-load.c:1233
msgid "cannot allocate memory for program header"
msgstr "não foi possível alocar memória para cabeçalho do programa"
-#: elf/dl-load.c:1271 elf/dl-load.h:130
+#: elf/dl-load.c:1266 elf/dl-load.h:130
msgid "cannot change memory protections"
msgstr "não é possível alterar proteções de memória"
-#: elf/dl-load.c:1291
+#: elf/dl-load.c:1286
msgid "cannot enable executable stack as shared object requires"
msgstr "não foi possível habilitar pilhas de executável como requisitado pelo objeto compartilhado"
-#: elf/dl-load.c:1304
+#: elf/dl-load.c:1299
msgid "cannot close file descriptor"
msgstr "não é possível fechar o descritor de arquivo"
-#: elf/dl-load.c:1560
+#: elf/dl-load.c:1555
msgid "file too short"
msgstr "arquivo pequeno demais"
-#: elf/dl-load.c:1595
+#: elf/dl-load.c:1590
msgid "invalid ELF header"
msgstr "cabeçalho de ELF inválido"
-#: elf/dl-load.c:1607
+#: elf/dl-load.c:1602
msgid "ELF file data encoding not big-endian"
msgstr "codificação de dados de arquivo ELF não é big-endian"
-#: elf/dl-load.c:1609
+#: elf/dl-load.c:1604
msgid "ELF file data encoding not little-endian"
msgstr "codificação de dados de arquivo ELF não é little-endian"
-#: elf/dl-load.c:1613
+#: elf/dl-load.c:1608
msgid "ELF file version ident does not match current one"
msgstr "identificação de versão de arquivo ELF não corresponde ao atual"
-#: elf/dl-load.c:1617
+#: elf/dl-load.c:1612
msgid "ELF file OS ABI invalid"
msgstr "ABI de SO do arquivo ELF inválido"
-#: elf/dl-load.c:1620
+#: elf/dl-load.c:1615
msgid "ELF file ABI version invalid"
msgstr "versão de ABI do arquivo ELF inválido"
-#: elf/dl-load.c:1623
+#: elf/dl-load.c:1618
msgid "nonzero padding in e_ident"
msgstr "espaçamento não-zero em e_ident"
-#: elf/dl-load.c:1626
+#: elf/dl-load.c:1621
msgid "internal error"
msgstr "erro interno"
-#: elf/dl-load.c:1633
+#: elf/dl-load.c:1628
msgid "ELF file version does not match current one"
msgstr "versão de arquivo ELF não corresponde à atual"
-#: elf/dl-load.c:1641
+#: elf/dl-load.c:1636
msgid "only ET_DYN and ET_EXEC can be loaded"
msgstr "apenas ET_DYN e ET_EXEC podem ser carregados"
-#: elf/dl-load.c:1657
+#: elf/dl-load.c:1652
msgid "ELF file's phentsize not the expected size"
msgstr "phentsize do arquivo ELF não está no tamanho esperado"
-#: elf/dl-load.c:2222
+#: elf/dl-load.c:2217
msgid "wrong ELF class: ELFCLASS64"
msgstr "classe ELF errada: ELFCLASS64"
-#: elf/dl-load.c:2223
+#: elf/dl-load.c:2218
msgid "wrong ELF class: ELFCLASS32"
msgstr "classe ELF errada: ELFCLASS32"
-#: elf/dl-load.c:2226
+#: elf/dl-load.c:2221
msgid "cannot open shared object file"
msgstr "não é possível abrir arquivo compartilhado"
@@ -648,11 +648,7 @@ msgstr "falha no mapeamento de segmento do objeto compartilhado"
msgid "cannot map zero-fill pages"
msgstr "não é possível mapear páginas preenchidas com zero"
-#: elf/dl-lookup.c:835
-msgid "relocation error"
-msgstr "erro de realocação"
-
-#: elf/dl-lookup.c:858
+#: elf/dl-lookup.c:830
msgid "symbol lookup error"
msgstr "erro de procura por símbolo"
@@ -660,19 +656,19 @@ msgstr "erro de procura por símbolo"
msgid "cannot extend global scope"
msgstr "não foi possível estender escopo global"
-#: elf/dl-open.c:470
+#: elf/dl-open.c:474
msgid "TLS generation counter wrapped! Please report this."
msgstr "Contador de geração TLS envolto! Por favor, relate isso."
-#: elf/dl-open.c:534
+#: elf/dl-open.c:538
msgid "invalid mode for dlopen()"
msgstr "modo inválido para dlopen()"
-#: elf/dl-open.c:551
+#: elf/dl-open.c:555
msgid "no more namespaces available for dlmopen()"
msgstr "não há mais espaços de nomes disponíveis para dlmopen()"
-#: elf/dl-open.c:575
+#: elf/dl-open.c:579
msgid "invalid target namespace in dlmopen()"
msgstr "espaço de nomes de alvo inválido em dlmopen()"
@@ -680,20 +676,20 @@ msgstr "espaço de nomes de alvo inválido em dlmopen()"
msgid "cannot allocate memory in static TLS block"
msgstr "não foi possível alocar memória em bloco TLS estático"
-#: elf/dl-reloc.c:205
+#: elf/dl-reloc.c:213
msgid "cannot make segment writable for relocation"
msgstr "não foi possível fazer segmento gravável para realocação"
-#: elf/dl-reloc.c:276
+#: elf/dl-reloc.c:272
#, c-format
msgid "%s: out of memory to store relocation results for %s\n"
msgstr "%s: memória insuficiente para armazenar resultados de realocação para %s\n"
-#: elf/dl-reloc.c:292
+#: elf/dl-reloc.c:288
msgid "cannot restore segment prot after reloc"
msgstr "não foi possível restaurar proteção de segmento após realocação"
-#: elf/dl-reloc.c:323
+#: elf/dl-reloc.c:319
msgid "cannot apply additional memory protection after relocation"
msgstr "não foi possível aplicar proteção de memória adicional após realocação"
@@ -827,7 +823,7 @@ msgstr " (IGNORADO)\n"
msgid "Can't find %s"
msgstr "Não foi possível localizar %s"
-# `lstat' similar a stat(), mas para links; `stat' = obtém estado de arquivo
+# `lstat' similar a stat(), mas para links; `stat' = obtém estado de arquivo
#: elf/ldconfig.c:603 elf/ldconfig.c:769 elf/ldconfig.c:825 elf/ldconfig.c:857
#, c-format
msgid "Cannot lstat %s"
@@ -914,22 +910,22 @@ msgstr "necessita de nome de arquivo absoluto para arquivo de configuração qua
msgid "memory exhausted"
msgstr "memória esgotada"
-#: elf/ldconfig.c:1233
+#: elf/ldconfig.c:1234
#, c-format
msgid "%s:%u: cannot read directory %s"
msgstr "%s:%u: não foi possível ler diretório %s"
-#: elf/ldconfig.c:1281
+#: elf/ldconfig.c:1282
#, c-format
msgid "relative path `%s' used to build cache"
msgstr "caminho relativo “%s†usado para compilar o cache"
-#: elf/ldconfig.c:1311
+#: elf/ldconfig.c:1312
#, c-format
msgid "Can't chdir to /"
msgstr "Não foi possível mudar o diretório para /"
-#: elf/ldconfig.c:1352
+#: elf/ldconfig.c:1353
#, c-format
msgid "Can't open cache file directory %s\n"
msgstr "Não foi possível abrir o diretório de arquivo cache %s\n"
@@ -1001,95 +997,100 @@ msgstr "saiu com código de saída desconhecido"
msgid "error: you do not have read permission for"
msgstr "erro: você não possui permissão de leitura para"
-#: elf/pldd-xx.c:105
+#: elf/pldd-xx.c:102
#, c-format
msgid "cannot find program header of process"
msgstr "não foi possível localizar cabeçalho do programa do processo"
-#: elf/pldd-xx.c:110
+#: elf/pldd-xx.c:106
#, c-format
msgid "cannot read program header"
msgstr "não foi possível ler o cabeçalho do programa"
-#: elf/pldd-xx.c:135
+#: elf/pldd-xx.c:128
#, c-format
msgid "cannot read dynamic section"
msgstr "não foi possível ler a seção dinâmica"
-#: elf/pldd-xx.c:147
+#: elf/pldd-xx.c:137
#, c-format
msgid "cannot read r_debug"
msgstr "não foi possível ler r_debug"
-#: elf/pldd-xx.c:167
+#: elf/pldd-xx.c:154
#, c-format
msgid "cannot read program interpreter"
msgstr "não foi possível ler o interpretador de programa"
-#: elf/pldd-xx.c:197
+#: elf/pldd-xx.c:183
#, c-format
msgid "cannot read link map"
msgstr "não foi possível ler o mapa de links"
-#: elf/pldd-xx.c:209
+#: elf/pldd-xx.c:190
#, c-format
msgid "cannot read object name"
msgstr "não foi possível ler o nome do objeto"
-#: elf/pldd-xx.c:219
+#: elf/pldd-xx.c:197
#, c-format
msgid "cannot allocate buffer for object name"
msgstr "não foi possível alocar buffer para o nome de objeto"
-#: elf/pldd.c:64
+#: elf/pldd.c:58
msgid "List dynamic shared objects loaded into process."
msgstr "Lista objetos compartilhados dinâmicos carregados no processo."
-#: elf/pldd.c:68
+#: elf/pldd.c:62
msgid "PID"
msgstr "PID"
-#: elf/pldd.c:100
+#: elf/pldd.c:89
#, c-format
msgid "Exactly one parameter with process ID required.\n"
msgstr "É necessário exatamente um parâmetro com ID de processo.\n"
-#: elf/pldd.c:112
+#: elf/pldd.c:103
#, c-format
msgid "invalid process ID '%s'"
msgstr "ID de processo inválido “%sâ€"
-#: elf/pldd.c:120
+#: elf/pldd.c:111
#, c-format
msgid "cannot open %s"
msgstr "não foi possível abrir %s"
-#: elf/pldd.c:152
+#: elf/pldd.c:142
#, c-format
msgid "cannot open %s/task"
msgstr "não foi possível abrir %s/tarefa"
-#: elf/pldd.c:155
+#: elf/pldd.c:145
#, c-format
msgid "cannot prepare reading %s/task"
msgstr "não foi possível preparar a leitura de %s/tarefa"
-#: elf/pldd.c:168
+#: elf/pldd.c:158
#, c-format
msgid "invalid thread ID '%s'"
msgstr "ID de thread “%s†inválido"
-#: elf/pldd.c:179
+#: elf/pldd.c:169
#, c-format
msgid "cannot attach to process %lu"
msgstr "não foi possível anexar ao processado %lu"
-#: elf/pldd.c:294
+#: elf/pldd.c:184
+#, c-format
+msgid "no valid %s/task entries"
+msgstr "nenhuma entrada %s/tarefa válida"
+
+#: elf/pldd.c:290
#, c-format
msgid "cannot get information about process %lu"
msgstr "não foi possível obter informação sobre o processo %lu"
-#: elf/pldd.c:307
+#: elf/pldd.c:303
#, c-format
msgid "process %lu is no ELF program"
msgstr "processo %lu não é um programa ELF"
@@ -1410,7 +1411,7 @@ msgstr "Informação:"
msgid "list all known coded character sets"
msgstr "lista todas as coleções de caracteres codificados"
-#: iconv/iconv_prog.c:64 locale/programs/localedef.c:120
+#: iconv/iconv_prog.c:64 locale/programs/localedef.c:124
msgid "Output control:"
msgstr "Controle de saída:"
@@ -1419,8 +1420,8 @@ msgid "omit invalid characters from output"
msgstr "omite caracteres inválidos da saída"
#: iconv/iconv_prog.c:66 iconv/iconvconfig.c:128
-#: locale/programs/localedef.c:113 locale/programs/localedef.c:115
-#: locale/programs/localedef.c:117 locale/programs/localedef.c:144
+#: locale/programs/localedef.c:117 locale/programs/localedef.c:119
+#: locale/programs/localedef.c:121 locale/programs/localedef.c:150
#: malloc/memusagestat.c:56
msgid "FILE"
msgstr "ARQUIVO"
@@ -1519,7 +1520,7 @@ msgstr "Cria um arquivo de configuração para carregamento rápido de módulos
msgid "[DIR...]"
msgstr "[DIR...]"
-#: iconv/iconvconfig.c:126 locale/programs/localedef.c:123
+#: iconv/iconvconfig.c:126 locale/programs/localedef.c:129
msgid "PATH"
msgstr "CAMINHO"
@@ -1703,14 +1704,14 @@ msgstr "não há suporte a conjuntos de caracteres com estados de trava"
#: locale/programs/charmap.c:503 locale/programs/charmap.c:557
#: locale/programs/charmap.c:589 locale/programs/charmap.c:683
-#: locale/programs/charmap.c:738 locale/programs/charmap.c:779
-#: locale/programs/charmap.c:820
+#: locale/programs/charmap.c:739 locale/programs/charmap.c:780
+#: locale/programs/charmap.c:821
#, c-format
msgid "syntax error in %s definition: %s"
msgstr "erro de sintaxe na definição %s: %s"
#: locale/programs/charmap.c:504 locale/programs/charmap.c:684
-#: locale/programs/charmap.c:780 locale/programs/repertoire.c:229
+#: locale/programs/charmap.c:781 locale/programs/repertoire.c:229
msgid "no symbolic name given"
msgstr "nenhum nome simbólico dado"
@@ -1726,14 +1727,14 @@ msgstr "poucos bytes na codificação do caractere"
msgid "too many bytes in character encoding"
msgstr "muitos bytes na codificação do caractere"
-#: locale/programs/charmap.c:591 locale/programs/charmap.c:739
-#: locale/programs/charmap.c:822 locale/programs/repertoire.c:295
+#: locale/programs/charmap.c:591 locale/programs/charmap.c:740
+#: locale/programs/charmap.c:823 locale/programs/repertoire.c:295
msgid "no symbolic name given for end of range"
msgstr "nenhum nome simbólico dado para fim do intervalo"
#: locale/programs/charmap.c:615 locale/programs/ld-address.c:524
#: locale/programs/ld-collate.c:2616 locale/programs/ld-collate.c:3774
-#: locale/programs/ld-ctype.c:2117 locale/programs/ld-ctype.c:2829
+#: locale/programs/ld-ctype.c:2118 locale/programs/ld-ctype.c:2830
#: locale/programs/ld-identification.c:397
#: locale/programs/ld-measurement.c:213 locale/programs/ld-messages.c:295
#: locale/programs/ld-monetary.c:748 locale/programs/ld-name.c:262
@@ -1748,58 +1749,58 @@ msgstr "%1$s: definição não termina com “END %1$sâ€"
msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
msgstr "apenas definições de WIDTH são permitidas em seguida à definição de CHARMAP"
-#: locale/programs/charmap.c:656 locale/programs/charmap.c:719
+#: locale/programs/charmap.c:656 locale/programs/charmap.c:720
#, c-format
msgid "value for %s must be an integer"
msgstr "o valor para %s deve ser um inteiro"
-#: locale/programs/charmap.c:847
+#: locale/programs/charmap.c:848
#, c-format
msgid "%s: error in state machine"
msgstr "%s: erro na máquina de estados"
-#: locale/programs/charmap.c:855 locale/programs/ld-address.c:540
+#: locale/programs/charmap.c:856 locale/programs/ld-address.c:540
#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967
-#: locale/programs/ld-ctype.c:2114 locale/programs/ld-ctype.c:2846
+#: locale/programs/ld-ctype.c:2115 locale/programs/ld-ctype.c:2847
#: locale/programs/ld-identification.c:413
#: locale/programs/ld-measurement.c:229 locale/programs/ld-messages.c:311
#: locale/programs/ld-monetary.c:764 locale/programs/ld-name.c:278
#: locale/programs/ld-numeric.c:341 locale/programs/ld-paper.c:228
#: locale/programs/ld-telephone.c:292 locale/programs/ld-time.c:990
-#: locale/programs/locfile.c:997 locale/programs/repertoire.c:323
+#: locale/programs/locfile.c:1010 locale/programs/repertoire.c:323
#, c-format
msgid "%s: premature end of file"
msgstr "%s: fim de arquivo prematuro"
-#: locale/programs/charmap.c:874 locale/programs/charmap.c:885
+#: locale/programs/charmap.c:875 locale/programs/charmap.c:886
#, c-format
msgid "unknown character `%s'"
msgstr "caractere desconhecido “%sâ€"
-#: locale/programs/charmap.c:893
+#: locale/programs/charmap.c:894
#, c-format
msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d"
msgstr "número de bytes para a sequência de bytes de começo e término de intervalo não é o mesmo: %d vs %d"
-#: locale/programs/charmap.c:998 locale/programs/ld-collate.c:2893
+#: locale/programs/charmap.c:999 locale/programs/ld-collate.c:2893
#: locale/programs/repertoire.c:418
msgid "invalid names for character range"
msgstr "nomes inválidos para intervalo de caracteres"
-#: locale/programs/charmap.c:1010 locale/programs/repertoire.c:430
+#: locale/programs/charmap.c:1011 locale/programs/repertoire.c:430
msgid "hexadecimal range format should use only capital characters"
msgstr "formato de intervalo hexadecimal deve usar apenas caracteres maiúsculos"
-#: locale/programs/charmap.c:1028 locale/programs/repertoire.c:448
+#: locale/programs/charmap.c:1029 locale/programs/repertoire.c:448
#, c-format
msgid "<%s> and <%s> are invalid names for range"
msgstr "<%s> e <%s> são nomes inválidos para o intervalo"
-#: locale/programs/charmap.c:1034 locale/programs/repertoire.c:455
+#: locale/programs/charmap.c:1035 locale/programs/repertoire.c:455
msgid "upper limit in range is smaller than lower limit"
msgstr "o limite superior do intervalo é menor que o limite inferior"
-#: locale/programs/charmap.c:1092
+#: locale/programs/charmap.c:1093
msgid "resulting bytes for range not representable."
msgstr "bytes resultantes para o intervalo não representáveis."
@@ -1868,7 +1869,7 @@ msgid "%s: numeric country code `%d' not valid"
msgstr "%s: código numérico do país “%d†não válido"
#: locale/programs/ld-address.c:432 locale/programs/ld-address.c:469
-#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2478
+#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2479
#: locale/programs/ld-identification.c:309
#: locale/programs/ld-measurement.c:196 locale/programs/ld-messages.c:264
#: locale/programs/ld-monetary.c:503 locale/programs/ld-monetary.c:538
@@ -1891,7 +1892,7 @@ msgid "%s: unknown character in field `%s'"
msgstr "%s: caractere desconhecido no campo “%sâ€"
#: locale/programs/ld-address.c:521 locale/programs/ld-collate.c:3772
-#: locale/programs/ld-ctype.c:2826 locale/programs/ld-identification.c:394
+#: locale/programs/ld-ctype.c:2827 locale/programs/ld-identification.c:394
#: locale/programs/ld-measurement.c:210 locale/programs/ld-messages.c:293
#: locale/programs/ld-monetary.c:746 locale/programs/ld-name.c:260
#: locale/programs/ld-numeric.c:323 locale/programs/ld-paper.c:210
@@ -1904,8 +1905,8 @@ msgstr "%s: linha “END†incompleta"
#: locale/programs/ld-collate.c:602 locale/programs/ld-collate.c:898
#: locale/programs/ld-collate.c:911 locale/programs/ld-collate.c:2582
#: locale/programs/ld-collate.c:2603 locale/programs/ld-collate.c:3957
-#: locale/programs/ld-ctype.c:1846 locale/programs/ld-ctype.c:2104
-#: locale/programs/ld-ctype.c:2676 locale/programs/ld-ctype.c:2837
+#: locale/programs/ld-ctype.c:1847 locale/programs/ld-ctype.c:2105
+#: locale/programs/ld-ctype.c:2677 locale/programs/ld-ctype.c:2838
#: locale/programs/ld-identification.c:404
#: locale/programs/ld-measurement.c:220 locale/programs/ld-messages.c:302
#: locale/programs/ld-monetary.c:755 locale/programs/ld-name.c:269
@@ -2249,129 +2250,129 @@ msgstr "mapa de caracteres “%s†já definido"
msgid "implementation limit: no more than %d character maps allowed"
msgstr "limite de implementação: não são permitidos mais que %d mapas de caracteres"
-#: locale/programs/ld-ctype.c:1434 locale/programs/ld-ctype.c:1559
-#: locale/programs/ld-ctype.c:1665 locale/programs/ld-ctype.c:2341
-#: locale/programs/ld-ctype.c:3299
+#: locale/programs/ld-ctype.c:1435 locale/programs/ld-ctype.c:1560
+#: locale/programs/ld-ctype.c:1666 locale/programs/ld-ctype.c:2342
+#: locale/programs/ld-ctype.c:3302
#, c-format
msgid "%s: field `%s' does not contain exactly ten entries"
msgstr "%s: campo “%s†não contém exatamente dez entradas"
-#: locale/programs/ld-ctype.c:1462 locale/programs/ld-ctype.c:2036
+#: locale/programs/ld-ctype.c:1463 locale/programs/ld-ctype.c:2037
#, c-format
msgid "to-value <U%0*X> of range is smaller than from-value <U%0*X>"
msgstr "valor-para <U%0*X> de intervalo é menor que o valor-de <U%0*X>"
-#: locale/programs/ld-ctype.c:1589
+#: locale/programs/ld-ctype.c:1590
msgid "start and end character sequence of range must have the same length"
msgstr "sequência de caracteres de início e término de intervalo devem ter o mesmo comprimento"
-#: locale/programs/ld-ctype.c:1596
+#: locale/programs/ld-ctype.c:1597
msgid "to-value character sequence is smaller than from-value sequence"
msgstr "sequência de caracteres do valor-para é menor que a sequência de valor-de"
-#: locale/programs/ld-ctype.c:1956 locale/programs/ld-ctype.c:2007
+#: locale/programs/ld-ctype.c:1957 locale/programs/ld-ctype.c:2008
msgid "premature end of `translit_ignore' definition"
msgstr "fim prematuro da definição “translit_ignoreâ€"
-#: locale/programs/ld-ctype.c:1962 locale/programs/ld-ctype.c:2013
-#: locale/programs/ld-ctype.c:2055
+#: locale/programs/ld-ctype.c:1963 locale/programs/ld-ctype.c:2014
+#: locale/programs/ld-ctype.c:2056
msgid "syntax error"
msgstr "erro de sintaxe"
-#: locale/programs/ld-ctype.c:2188
+#: locale/programs/ld-ctype.c:2189
#, c-format
msgid "%s: syntax error in definition of new character class"
msgstr "%s: erro de sintaxe na definição da nova classe de caracteres"
-#: locale/programs/ld-ctype.c:2203
+#: locale/programs/ld-ctype.c:2204
#, c-format
msgid "%s: syntax error in definition of new character map"
msgstr "%s: erro de sintaxe na definição do novo mapa de caracteres"
-#: locale/programs/ld-ctype.c:2363
+#: locale/programs/ld-ctype.c:2364
msgid "ellipsis range must be marked by two operands of same type"
msgstr "intervalo de elipse deve estar marcado per dois operandos do mesmo tipo"
-#: locale/programs/ld-ctype.c:2372
+#: locale/programs/ld-ctype.c:2373
msgid "with symbolic name range values the absolute ellipsis `...' must not be used"
msgstr "com valores de intervalo com nome simbólico, a elipse absoluta “...†não pode ser usada"
-#: locale/programs/ld-ctype.c:2387
+#: locale/programs/ld-ctype.c:2388
msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'"
msgstr "com valores de intervalo de UCS, deve-se usar a elipse hexadecimal simbólica “..â€"
-#: locale/programs/ld-ctype.c:2401
+#: locale/programs/ld-ctype.c:2402
msgid "with character code range values one must use the absolute ellipsis `...'"
msgstr "com valores de intervalo de código de caracteres, deve-se usar a elipse absoluta “…â€"
-#: locale/programs/ld-ctype.c:2552
+#: locale/programs/ld-ctype.c:2553
#, c-format
msgid "duplicated definition for mapping `%s'"
msgstr "definição duplicada para o mapeamento “%sâ€"
-#: locale/programs/ld-ctype.c:2638 locale/programs/ld-ctype.c:2782
+#: locale/programs/ld-ctype.c:2639 locale/programs/ld-ctype.c:2783
#, c-format
msgid "%s: `translit_start' section does not end with `translit_end'"
msgstr "%s: a seção “translit_start†não termina com “translit_endâ€"
-#: locale/programs/ld-ctype.c:2733
+#: locale/programs/ld-ctype.c:2734
#, c-format
msgid "%s: duplicate `default_missing' definition"
msgstr "%s: definição duplicada de “default_missingâ€"
-#: locale/programs/ld-ctype.c:2738
+#: locale/programs/ld-ctype.c:2739
msgid "previous definition was here"
msgstr "definição anterior estava aqui"
-#: locale/programs/ld-ctype.c:2760
+#: locale/programs/ld-ctype.c:2761
#, c-format
msgid "%s: no representable `default_missing' definition found"
msgstr "%s: nenhuma definição representável de “default_missing†localizada"
-#: locale/programs/ld-ctype.c:2877 locale/programs/ld-ctype.c:2973
-#: locale/programs/ld-ctype.c:2992 locale/programs/ld-ctype.c:3012
-#: locale/programs/ld-ctype.c:3032 locale/programs/ld-ctype.c:3052
-#: locale/programs/ld-ctype.c:3072 locale/programs/ld-ctype.c:3111
-#: locale/programs/ld-ctype.c:3131 locale/programs/ld-ctype.c:3195
-#: locale/programs/ld-ctype.c:3236 locale/programs/ld-ctype.c:3259
+#: locale/programs/ld-ctype.c:2878 locale/programs/ld-ctype.c:2974
+#: locale/programs/ld-ctype.c:2993 locale/programs/ld-ctype.c:3013
+#: locale/programs/ld-ctype.c:3033 locale/programs/ld-ctype.c:3053
+#: locale/programs/ld-ctype.c:3073 locale/programs/ld-ctype.c:3112
+#: locale/programs/ld-ctype.c:3132 locale/programs/ld-ctype.c:3198
+#: locale/programs/ld-ctype.c:3239 locale/programs/ld-ctype.c:3262
#, c-format
msgid "%s: character `%s' not defined while needed as default value"
msgstr "%s: caractere “%s†não definido enquanto necessário como valor padrão"
-#: locale/programs/ld-ctype.c:2882 locale/programs/ld-ctype.c:2978
-#: locale/programs/ld-ctype.c:2997 locale/programs/ld-ctype.c:3017
-#: locale/programs/ld-ctype.c:3037 locale/programs/ld-ctype.c:3057
-#: locale/programs/ld-ctype.c:3077 locale/programs/ld-ctype.c:3116
-#: locale/programs/ld-ctype.c:3136 locale/programs/ld-ctype.c:3200
+#: locale/programs/ld-ctype.c:2883 locale/programs/ld-ctype.c:2979
+#: locale/programs/ld-ctype.c:2998 locale/programs/ld-ctype.c:3018
+#: locale/programs/ld-ctype.c:3038 locale/programs/ld-ctype.c:3058
+#: locale/programs/ld-ctype.c:3078 locale/programs/ld-ctype.c:3117
+#: locale/programs/ld-ctype.c:3137 locale/programs/ld-ctype.c:3203
#, c-format
msgid "%s: character `%s' in charmap not representable with one byte"
msgstr "%s: caractere “%s†no mapa de caracteres não representável com um byte"
-#: locale/programs/ld-ctype.c:3242 locale/programs/ld-ctype.c:3265
+#: locale/programs/ld-ctype.c:3245 locale/programs/ld-ctype.c:3268
#, c-format
msgid "%s: character `%s' needed as default value not representable with one byte"
msgstr "%s: caractere “%s†necessário como valor padrão não representável com um byte"
-#: locale/programs/ld-ctype.c:3321
+#: locale/programs/ld-ctype.c:3324
msgid "no output digits defined and none of the standard names in the charmap"
msgstr "nenhum dígito de saída definido e nenhum dos nomes padrões no mapa de caracteres"
-#: locale/programs/ld-ctype.c:3570
+#: locale/programs/ld-ctype.c:3573
#, c-format
msgid "%s: transliteration data from locale `%s' not available"
msgstr "%s: dados de transliteração da localidade “%s†não disponíveis"
-#: locale/programs/ld-ctype.c:3669
+#: locale/programs/ld-ctype.c:3672
#, c-format
msgid "%s: table for class \"%s\": %lu bytes"
msgstr "%s: tabela para a classe “%sâ€: %lu bytes"
-#: locale/programs/ld-ctype.c:3733
+#: locale/programs/ld-ctype.c:3736
#, c-format
msgid "%s: table for map \"%s\": %lu bytes"
msgstr "%s: tabela para o mapa “%sâ€: %lu bytes"
-#: locale/programs/ld-ctype.c:3857
+#: locale/programs/ld-ctype.c:3860
#, c-format
msgid "%s: table for width: %lu bytes"
msgstr "%s: tabela para largura: %lu bytes"
@@ -2611,120 +2612,114 @@ msgstr ""
"NOME\n"
"[-a|-m]"
-#: locale/programs/locale.c:190
+#: locale/programs/locale.c:522
#, c-format
-msgid "Cannot set LC_CTYPE to default locale"
-msgstr "Não foi possível definir LC_CTYPE para a localidade padrão"
-
-#: locale/programs/locale.c:192
-#, c-format
-msgid "Cannot set LC_MESSAGES to default locale"
-msgstr "Não foi possível definir LC_MESSAGES para a localidade padrão"
+msgid "while preparing output"
+msgstr "enquanto preparava a saída"
-#: locale/programs/locale.c:205
+#: locale/programs/locale.c:998
#, c-format
-msgid "Cannot set LC_COLLATE to default locale"
-msgstr "Não foi possível definir LC_COLLATE para a localidade padrão"
+msgid "Cannot set %s to default locale"
+msgstr "Não foi possível definir %s para a localidade padrão"
-#: locale/programs/locale.c:221
+#: locale/programs/locale.c:1096
#, c-format
-msgid "Cannot set LC_ALL to default locale"
-msgstr "Não foi possível definir LC_ALL para a localidade padrão"
+msgid "warning: The LOCPATH variable is set to \"%s\"\n"
+msgstr "aviso: A variável LOCPATH está definida com “%sâ€\n"
-#: locale/programs/locale.c:521
-#, c-format
-msgid "while preparing output"
-msgstr "enquanto preparava a saída"
-
-#: locale/programs/localedef.c:112
+#: locale/programs/localedef.c:116
msgid "Input Files:"
msgstr "Arquivos de entrada:"
-#: locale/programs/localedef.c:114
+#: locale/programs/localedef.c:118
msgid "Symbolic character names defined in FILE"
msgstr "Nomes de caracteres simbólicos definido no ARQUIVO"
-#: locale/programs/localedef.c:116
+#: locale/programs/localedef.c:120
msgid "Source definitions are found in FILE"
msgstr "Definições fonte são encontradas no ARQUIVO"
-#: locale/programs/localedef.c:118
+#: locale/programs/localedef.c:122
msgid "FILE contains mapping from symbolic names to UCS4 values"
msgstr "ARQUIVO contém mapas de nomes simbólicos para valores UCS4"
-#: locale/programs/localedef.c:122
+#: locale/programs/localedef.c:126
msgid "Create output even if warning messages were issued"
msgstr "Cria saída mesmo que mensagens de aviso forem produzidas"
-#: locale/programs/localedef.c:123
+#: locale/programs/localedef.c:128
+msgid "Do not create hard links between installed locales"
+msgstr "Não cria links absolutos entre localidades instaladas"
+
+#: locale/programs/localedef.c:129
msgid "Optional output file prefix"
msgstr "Prefixo opcional de arquivo de saída"
-#: locale/programs/localedef.c:124
+#: locale/programs/localedef.c:130
msgid "Strictly conform to POSIX"
msgstr "Adapta estritamente ao POSIX"
-#: locale/programs/localedef.c:126
+#: locale/programs/localedef.c:132
msgid "Suppress warnings and information messages"
msgstr "Suprime avisos e mensagens de informação"
-#: locale/programs/localedef.c:127
+#: locale/programs/localedef.c:133
msgid "Print more messages"
msgstr "Mostra mais mensagens"
-#: locale/programs/localedef.c:128 locale/programs/localedef.c:131
+#: locale/programs/localedef.c:134 locale/programs/localedef.c:137
msgid "<warnings>"
msgstr "<avisos>"
-#: locale/programs/localedef.c:129
+#: locale/programs/localedef.c:135
msgid "Comma-separated list of warnings to disable; supported warnings are: ascii, intcurrsym"
msgstr "Lista separada por vírgulas de avisos para desabilitar; há suporte para os avisos: ascii, intcurrsym"
-#: locale/programs/localedef.c:132
+#: locale/programs/localedef.c:138
msgid "Comma-separated list of warnings to enable; supported warnings are: ascii, intcurrsym"
msgstr "Lista separada por vírgulas de avisos para habilitar; há suporte para os avisos: ascii, intcurrsym"
-#: locale/programs/localedef.c:135
+#: locale/programs/localedef.c:141
msgid "Archive control:"
msgstr "Controle de pacote:"
-#: locale/programs/localedef.c:137
+#: locale/programs/localedef.c:143
msgid "Don't add new data to archive"
msgstr "Não adiciona novos dados ao pacote"
-#: locale/programs/localedef.c:139
+#: locale/programs/localedef.c:145
msgid "Add locales named by parameters to archive"
msgstr "Adiciona localidades nomeadas por parâmetros ao pacote"
-#: locale/programs/localedef.c:140
+#: locale/programs/localedef.c:146
msgid "Replace existing archive content"
msgstr "Substitui o conteúdo de pacote existente"
-#: locale/programs/localedef.c:142
+#: locale/programs/localedef.c:148
msgid "Remove locales named by parameters from archive"
msgstr "Remove localidades nomeadas por parâmetros do pacote"
-#: locale/programs/localedef.c:143
+#: locale/programs/localedef.c:149
msgid "List content of archive"
msgstr "Lista conteúdo do pacote"
-#: locale/programs/localedef.c:145
+#: locale/programs/localedef.c:151
msgid "locale.alias file to consult when making archive"
msgstr "arquivo localidade.apelido a ser consultado ao criar pacote"
-#: locale/programs/localedef.c:147
+#: locale/programs/localedef.c:153
msgid "Generate little-endian output"
msgstr "Gera saída em little-endian"
-#: locale/programs/localedef.c:149
+#: locale/programs/localedef.c:155
msgid "Generate big-endian output"
msgstr "Gera saída em big-endian"
-#: locale/programs/localedef.c:154
+#: locale/programs/localedef.c:160
msgid "Compile locale specification"
msgstr "Compila especificação localizada"
-#: locale/programs/localedef.c:157
+#: locale/programs/localedef.c:163
msgid ""
"NAME\n"
"[--add-to-archive|--delete-from-archive] FILE...\n"
@@ -2734,31 +2729,31 @@ msgstr ""
"[--add-to-archive|--delete-from-archive] ARQUIVO...\n"
"--list-archive [ARQUIVO]"
-#: locale/programs/localedef.c:232
+#: locale/programs/localedef.c:238
#, c-format
msgid "cannot create directory for output files"
msgstr "não foi possível criar diretório para os arquivos de saída"
-#: locale/programs/localedef.c:243
+#: locale/programs/localedef.c:249
msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
msgstr "FATAL: sistema não define “_POSIX2_LOCALEDEFâ€"
-#: locale/programs/localedef.c:257 locale/programs/localedef.c:273
-#: locale/programs/localedef.c:663 locale/programs/localedef.c:683
+#: locale/programs/localedef.c:263 locale/programs/localedef.c:279
+#: locale/programs/localedef.c:673 locale/programs/localedef.c:693
#, c-format
msgid "cannot open locale definition file `%s'"
msgstr "não é possível abrir arquivo de definição da localidade “%sâ€"
-#: locale/programs/localedef.c:297
+#: locale/programs/localedef.c:303
#, c-format
msgid "cannot write output files to `%s'"
msgstr "não é possível escrever arquivo de saída para “%sâ€"
-#: locale/programs/localedef.c:303
+#: locale/programs/localedef.c:309
msgid "no output file produced because errors were issued"
msgstr "nenhum arquivo de saída foi produzido porque erros foram emitidos"
-#: locale/programs/localedef.c:431
+#: locale/programs/localedef.c:441
#, c-format
msgid ""
"System's directory for character maps : %s\n"
@@ -2771,11 +2766,11 @@ msgstr ""
" caminho da localidade: %s\n"
"%s"
-#: locale/programs/localedef.c:631
+#: locale/programs/localedef.c:641
msgid "circular dependencies between locale definitions"
msgstr "dependências circulares entre definições de localidade"
-#: locale/programs/localedef.c:637
+#: locale/programs/localedef.c:647
#, c-format
msgid "cannot add already read locale `%s' a second time"
msgstr "não foi possível adicionar localidade já lida “%s†uma segunda vez"
@@ -2931,24 +2926,24 @@ msgstr "não foi possível abrir o arquivo de saída “%s†para a categoria â
msgid "failure while writing data for category `%s'"
msgstr "falha ao escrever dados para categoria “%sâ€"
-#: locale/programs/locfile.c:917
+#: locale/programs/locfile.c:930
#, c-format
msgid "cannot create output file `%s' for category `%s'"
msgstr "não foi possível criar o arquivo de saída “%s†para a categoria “%sâ€"
-#: locale/programs/locfile.c:953
+#: locale/programs/locfile.c:966
msgid "expecting string argument for `copy'"
msgstr "esperando argumento em string para “copyâ€"
-#: locale/programs/locfile.c:957
+#: locale/programs/locfile.c:970
msgid "locale name should consist only of portable characters"
msgstr "nome de localidade deve consistir apenas em caracteres portáteis"
-#: locale/programs/locfile.c:976
+#: locale/programs/locfile.c:989
msgid "no other keyword shall be specified when `copy' is used"
msgstr "nenhuma outra palavra-chave deve ser especificada quando “copy†é usado"
-#: locale/programs/locfile.c:990
+#: locale/programs/locfile.c:1003
#, c-format
msgid "`%1$s' definition does not end with `END %1$s'"
msgstr "“%1$s†definição não termina com “END %1$sâ€"
@@ -3783,12 +3778,12 @@ msgstr "yp_update: não foi possível converter host para netname\n"
msgid "yp_update: cannot get server address\n"
msgstr "yp_update: não foi possível obter o endereço do servidor\n"
-#: nscd/aicache.c:83 nscd/hstcache.c:452
+#: nscd/aicache.c:82 nscd/hstcache.c:452
#, c-format
msgid "Haven't found \"%s\" in hosts cache!"
msgstr "Não foi encontrado “%s†no cache de máquinas!"
-#: nscd/aicache.c:85 nscd/hstcache.c:454
+#: nscd/aicache.c:84 nscd/hstcache.c:454
#, c-format
msgid "Reloading \"%s\" in hosts cache!"
msgstr "Recarregando “%s†no cache de máquinas!"
@@ -4109,22 +4104,22 @@ msgstr "liberados %zu bytes no cache de %s"
msgid "no more memory for database '%s'"
msgstr "não há mais memória para o banco de dados “%sâ€"
-#: nscd/netgroupcache.c:121
+#: nscd/netgroupcache.c:122
#, c-format
msgid "Haven't found \"%s\" in netgroup cache!"
msgstr "Não foi encontrado “%s†no cache de netgroup!"
-#: nscd/netgroupcache.c:123
+#: nscd/netgroupcache.c:124
#, c-format
msgid "Reloading \"%s\" in netgroup cache!"
msgstr "Recarregando “%s†no cache de netgroup!"
-#: nscd/netgroupcache.c:469
+#: nscd/netgroupcache.c:470
#, c-format
msgid "Haven't found \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr "Não foi encontrado “%s (%s,%s,%s)†no cache de netgroup!"
-#: nscd/netgroupcache.c:472
+#: nscd/netgroupcache.c:473
#, c-format
msgid "Reloading \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr "Recarregando “%s (%s,%s,%s)†no cache de netgroup!"
@@ -4178,7 +4173,7 @@ msgstr "Usa um cache separado para cada usuário"
msgid "Name Service Cache Daemon."
msgstr "Daemon de cache de serviço de nomes."
-#: nscd/nscd.c:155 nss/getent.c:967 nss/makedb.c:206
+#: nscd/nscd.c:155 nss/getent.c:987 nss/makedb.c:206
#, c-format
msgid "wrong number of arguments"
msgstr "número incorreto de argumentos"
@@ -4286,27 +4281,27 @@ msgstr "Erro de análise: %s"
msgid "Must specify user name for server-user option"
msgstr "Deve-se especificar o nome do usuário para a opção “server-userâ€"
-#: nscd/nscd_conf.c:198
+#: nscd/nscd_conf.c:201
#, c-format
msgid "Must specify user name for stat-user option"
msgstr "Deve-se especificar o nome do usuário para a opção “stat-userâ€"
-#: nscd/nscd_conf.c:255
+#: nscd/nscd_conf.c:259
#, c-format
msgid "Must specify value for restart-interval option"
msgstr "Deve-se especificar valor para a opção “restart-intervalâ€"
-#: nscd/nscd_conf.c:269
+#: nscd/nscd_conf.c:273
#, c-format
msgid "Unknown option: %s %s %s"
msgstr "Opção desconhecida: %s %s %s"
-#: nscd/nscd_conf.c:282
+#: nscd/nscd_conf.c:286
#, c-format
msgid "cannot get current working directory: %s; disabling paranoia mode"
msgstr "não foi possível obter o diretório de trabalho: %s; desabilitando modo paranoia"
-#: nscd/nscd_conf.c:302
+#: nscd/nscd_conf.c:306
#, c-format
msgid "maximum file size for %s database too small"
msgstr "tamanho máximo de arquivo para o banco de dados %s é pequeno demais"
@@ -4568,46 +4563,46 @@ msgstr "Não foi encontrado “%s†no cache de serviços!"
msgid "Reloading \"%s\" in services cache!"
msgstr "Recarregando “%s†no cache de serviços!"
-#: nss/getent.c:54
+#: nss/getent.c:55
msgid "database [key ...]"
msgstr "base_de_dados [chave ...]"
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "CONFIG"
msgstr "CONFIG"
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "Service configuration to be used"
msgstr "Serviço de configuração a ser usado"
-#: nss/getent.c:60
+#: nss/getent.c:61
msgid "disable IDN encoding"
msgstr "desabilita codificação de IDN"
-#: nss/getent.c:65
+#: nss/getent.c:66
msgid "Get entries from administrative database."
msgstr "Obtém registros de banco de dados administrativo."
-#: nss/getent.c:149 nss/getent.c:442 nss/getent.c:489
+#: nss/getent.c:150 nss/getent.c:462 nss/getent.c:509
#, c-format
msgid "Enumeration not supported on %s\n"
msgstr "Sem suporte a enumeração no %s\n"
-#: nss/getent.c:497 nss/getent.c:510
+#: nss/getent.c:517 nss/getent.c:530
#, c-format
msgid "Could not allocate group list: %m\n"
msgstr "Não foi possível alocar lista de grupos: %m\n"
-#: nss/getent.c:881
+#: nss/getent.c:901
#, c-format
msgid "Unknown database name"
msgstr "Nome de banco de dados desconhecido"
-#: nss/getent.c:911
+#: nss/getent.c:931
msgid "Supported databases:\n"
msgstr "Há suporte aos seguintes bancos de dados:\n"
-#: nss/getent.c:977
+#: nss/getent.c:997
#, c-format
msgid "Unknown database: %s\n"
msgstr "Base de dados desconhecida: %s\n"
@@ -4862,11 +4857,11 @@ msgstr "Expressão regular muito longa"
msgid "Unmatched ) or \\)"
msgstr ") ou \\) descasados"
-#: posix/regcomp.c:689
+#: posix/regcomp.c:676
msgid "No previous regular expression"
msgstr "Não há expressão regular anterior"
-#: posix/wordexp.c:1815
+#: posix/wordexp.c:1816
msgid "parameter null or not set"
msgstr "parâmetro nulo ou não definido"
@@ -5051,7 +5046,7 @@ msgstr "Buffers de saída disponíveis"
msgid "Input message available"
msgstr "Mensagem de entrada disponível"
-#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:381 timezone/zic.c:520
+#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:375 timezone/zic.c:561
msgid "I/O error"
msgstr "Erro de E/S"
@@ -5134,7 +5129,7 @@ msgstr "Sinal desconhecido %d"
#: sunrpc/auth_unix.c:112 sunrpc/clnt_tcp.c:124 sunrpc/clnt_udp.c:139
#: sunrpc/clnt_unix.c:125 sunrpc/svc_tcp.c:189 sunrpc/svc_tcp.c:233
#: sunrpc/svc_udp.c:161 sunrpc/svc_unix.c:189 sunrpc/svc_unix.c:229
-#: sunrpc/xdr.c:628 sunrpc/xdr.c:788 sunrpc/xdr_array.c:102
+#: sunrpc/xdr.c:631 sunrpc/xdr.c:791 sunrpc/xdr_array.c:102
#: sunrpc/xdr_rec.c:153 sunrpc/xdr_ref.c:79
msgid "out of memory\n"
msgstr "memória insuficiente\n"
@@ -6385,56 +6380,69 @@ msgid "You really blew it this time"
msgstr "Você realmente estragou desta vez"
#. TRANS Go home and have a glass of warm, dairy-fresh milk.
-#: sysdeps/gnu/errlist.c:978
+#. TRANS @c Okay. Since you are dying to know, I'll tell you.
+#. TRANS @c This is a joke, obviously. There is a children's song which begins,
+#. TRANS @c "Old McDonald had a farm, e-i-e-i-o." Every time I see the (real)
+#. TRANS @c errno macro EIO, I think about that song. Probably most of my
+#. TRANS @c compatriots who program on Unix do, too. One of them must have stayed
+#. TRANS @c up a little too late one night and decided to add it to Hurd or Glibc.
+#. TRANS @c Whoever did it should be castigated, but it made me laugh.
+#. TRANS @c --jtobey@channel1.com
+#. TRANS @c
+#. TRANS @c "bought the farm" means "died". -jtobey
+#. TRANS @c
+#. TRANS @c Translators, please do not translate this litteraly, translate it into
+#. TRANS @c an idiomatic funny way of saying that the computer died.
+#: sysdeps/gnu/errlist.c:991
msgid "Computer bought the farm"
msgstr "O computador comprou a fazenda"
#. TRANS This error code has no purpose.
-#: sysdeps/gnu/errlist.c:987
+#: sysdeps/gnu/errlist.c:1000
msgid "Gratuitous error"
msgstr "Erro gratuito"
-#: sysdeps/gnu/errlist.c:995
+#: sysdeps/gnu/errlist.c:1008
msgid "Bad message"
msgstr "Mensagem inválida"
-#: sysdeps/gnu/errlist.c:1003
+#: sysdeps/gnu/errlist.c:1016
msgid "Identifier removed"
msgstr "Identificador removido"
-#: sysdeps/gnu/errlist.c:1011
+#: sysdeps/gnu/errlist.c:1024
msgid "Multihop attempted"
msgstr "Tentativa de Multihop"
-#: sysdeps/gnu/errlist.c:1019
+#: sysdeps/gnu/errlist.c:1032
msgid "No data available"
msgstr "Não há dados disponíveis"
-#: sysdeps/gnu/errlist.c:1027
+#: sysdeps/gnu/errlist.c:1040
msgid "Link has been severed"
msgstr "Link foi cortado"
-#: sysdeps/gnu/errlist.c:1035
+#: sysdeps/gnu/errlist.c:1048
msgid "No message of desired type"
msgstr "Não há mensagens do tipo desejado"
-#: sysdeps/gnu/errlist.c:1043
+#: sysdeps/gnu/errlist.c:1056
msgid "Out of streams resources"
msgstr "Sem recursos de streams"
-#: sysdeps/gnu/errlist.c:1051
+#: sysdeps/gnu/errlist.c:1064
msgid "Device not a stream"
msgstr "Dispositivo não é um stream"
-#: sysdeps/gnu/errlist.c:1059
+#: sysdeps/gnu/errlist.c:1072
msgid "Value too large for defined data type"
msgstr "Valor muito grande para o tipo de dados definido"
-#: sysdeps/gnu/errlist.c:1067
+#: sysdeps/gnu/errlist.c:1080
msgid "Protocol error"
msgstr "Erro de protocolo"
-#: sysdeps/gnu/errlist.c:1075
+#: sysdeps/gnu/errlist.c:1088
msgid "Timer expired"
msgstr "Tempo expirado"
@@ -6442,195 +6450,195 @@ msgstr "Tempo expirado"
#. TRANS completed. @xref{Asynchronous I/O}. When you call @code{aio_cancel},
#. TRANS the normal result is for the operations affected to complete with this
#. TRANS error; @pxref{Cancel AIO Operations}.
-#: sysdeps/gnu/errlist.c:1087
+#: sysdeps/gnu/errlist.c:1100
msgid "Operation canceled"
msgstr "Operação cancelada"
-#: sysdeps/gnu/errlist.c:1095
+#: sysdeps/gnu/errlist.c:1108
msgid "Owner died"
msgstr "Dono morto"
-#: sysdeps/gnu/errlist.c:1103
+#: sysdeps/gnu/errlist.c:1116
msgid "State not recoverable"
msgstr "Estado não recuperável"
-#: sysdeps/gnu/errlist.c:1111
+#: sysdeps/gnu/errlist.c:1124
msgid "Interrupted system call should be restarted"
msgstr "Chamada de sistema interrompida deve ser reiniciada"
-#: sysdeps/gnu/errlist.c:1119
+#: sysdeps/gnu/errlist.c:1132
msgid "Channel number out of range"
msgstr "Número do canal fora do intervalo"
-#: sysdeps/gnu/errlist.c:1127
+#: sysdeps/gnu/errlist.c:1140
msgid "Level 2 not synchronized"
msgstr "Nível 2 não sincronizado"
-#: sysdeps/gnu/errlist.c:1135
+#: sysdeps/gnu/errlist.c:1148
msgid "Level 3 halted"
msgstr "Nível 3 parado"
-#: sysdeps/gnu/errlist.c:1143
+#: sysdeps/gnu/errlist.c:1156
msgid "Level 3 reset"
msgstr "Nível 3 reiniciado"
-#: sysdeps/gnu/errlist.c:1151
+#: sysdeps/gnu/errlist.c:1164
msgid "Link number out of range"
msgstr "Número de link fora da faixa"
-#: sysdeps/gnu/errlist.c:1159
+#: sysdeps/gnu/errlist.c:1172
msgid "Protocol driver not attached"
msgstr "Driver de protocolo não anexado"
-#: sysdeps/gnu/errlist.c:1167
+#: sysdeps/gnu/errlist.c:1180
msgid "No CSI structure available"
msgstr "Não há estrutura CSI disponível"
-#: sysdeps/gnu/errlist.c:1175
+#: sysdeps/gnu/errlist.c:1188
msgid "Level 2 halted"
msgstr "Parada de sistema nível 2"
-#: sysdeps/gnu/errlist.c:1183
+#: sysdeps/gnu/errlist.c:1196
msgid "Invalid exchange"
msgstr "Troca inválida"
-#: sysdeps/gnu/errlist.c:1191
+#: sysdeps/gnu/errlist.c:1204
msgid "Invalid request descriptor"
msgstr "Descritor de requisição inválido"
-#: sysdeps/gnu/errlist.c:1199
+#: sysdeps/gnu/errlist.c:1212
msgid "Exchange full"
msgstr "Troca completa"
-#: sysdeps/gnu/errlist.c:1207
+#: sysdeps/gnu/errlist.c:1220
msgid "No anode"
msgstr "Sem anode"
-#: sysdeps/gnu/errlist.c:1215
+#: sysdeps/gnu/errlist.c:1228
msgid "Invalid request code"
msgstr "Código de requisição inválido"
-#: sysdeps/gnu/errlist.c:1223
+#: sysdeps/gnu/errlist.c:1236
msgid "Invalid slot"
msgstr "Slot inválido"
-#: sysdeps/gnu/errlist.c:1231
+#: sysdeps/gnu/errlist.c:1244
msgid "File locking deadlock error"
msgstr "Erro de bloqueio em arquivo (deadlock)"
-#: sysdeps/gnu/errlist.c:1239
+#: sysdeps/gnu/errlist.c:1252
msgid "Bad font file format"
msgstr "Formato do arquivo fonte inválido"
-#: sysdeps/gnu/errlist.c:1247
+#: sysdeps/gnu/errlist.c:1260
msgid "Machine is not on the network"
msgstr "A maquina não está na rede"
-#: sysdeps/gnu/errlist.c:1255
+#: sysdeps/gnu/errlist.c:1268
msgid "Package not installed"
msgstr "Pacote não instalado"
-#: sysdeps/gnu/errlist.c:1263
+#: sysdeps/gnu/errlist.c:1276
msgid "Advertise error"
msgstr "Erro de aviso"
-#: sysdeps/gnu/errlist.c:1271
+#: sysdeps/gnu/errlist.c:1284
msgid "Srmount error"
msgstr "Erro de srmount"
-#: sysdeps/gnu/errlist.c:1279
+#: sysdeps/gnu/errlist.c:1292
msgid "Communication error on send"
msgstr "Erro de comunicação ao enviar"
-#: sysdeps/gnu/errlist.c:1287
+#: sysdeps/gnu/errlist.c:1300
msgid "RFS specific error"
msgstr "Erro específico de RFS"
-#: sysdeps/gnu/errlist.c:1295
+#: sysdeps/gnu/errlist.c:1308
msgid "Name not unique on network"
msgstr "O nome não é único na rede"
-#: sysdeps/gnu/errlist.c:1303
+#: sysdeps/gnu/errlist.c:1316
msgid "File descriptor in bad state"
msgstr "Descritor de arquivo em mal estado"
-#: sysdeps/gnu/errlist.c:1311
+#: sysdeps/gnu/errlist.c:1324
msgid "Remote address changed"
msgstr "Endereço remoto alterado"
-#: sysdeps/gnu/errlist.c:1319
+#: sysdeps/gnu/errlist.c:1332
msgid "Can not access a needed shared library"
msgstr "Não foi possível acessar uma biblioteca compartilhada"
-#: sysdeps/gnu/errlist.c:1327
+#: sysdeps/gnu/errlist.c:1340
msgid "Accessing a corrupted shared library"
msgstr "Acessando uma biblioteca compartilhado corrompida"
-#: sysdeps/gnu/errlist.c:1335
+#: sysdeps/gnu/errlist.c:1348
msgid ".lib section in a.out corrupted"
msgstr "Seção .lib corrompida em a.out"
-#: sysdeps/gnu/errlist.c:1343
+#: sysdeps/gnu/errlist.c:1356
msgid "Attempting to link in too many shared libraries"
msgstr "Tentando vincular em muitas bibliotecas compartilhadas"
-#: sysdeps/gnu/errlist.c:1351
+#: sysdeps/gnu/errlist.c:1364
msgid "Cannot exec a shared library directly"
msgstr "Não foi possível executar uma biblioteca compartilhado diretamente"
-#: sysdeps/gnu/errlist.c:1359
+#: sysdeps/gnu/errlist.c:1372
msgid "Streams pipe error"
msgstr "Erro de fluxos de pipe"
-#: sysdeps/gnu/errlist.c:1367
+#: sysdeps/gnu/errlist.c:1380
msgid "Structure needs cleaning"
msgstr "A estrutura necessita de limpeza"
-#: sysdeps/gnu/errlist.c:1375
+#: sysdeps/gnu/errlist.c:1388
msgid "Not a XENIX named type file"
msgstr "Não é um arquivo nomeável XENIX"
-#: sysdeps/gnu/errlist.c:1383
+#: sysdeps/gnu/errlist.c:1396
msgid "No XENIX semaphores available"
msgstr "Não há semáforos XENIX disponíveis"
-#: sysdeps/gnu/errlist.c:1391
+#: sysdeps/gnu/errlist.c:1404
msgid "Is a named type file"
msgstr "É um arquivo tipo nomeável"
-#: sysdeps/gnu/errlist.c:1399
+#: sysdeps/gnu/errlist.c:1412
msgid "Remote I/O error"
msgstr "Erro de E/S remota"
-#: sysdeps/gnu/errlist.c:1407
+#: sysdeps/gnu/errlist.c:1420
msgid "No medium found"
msgstr "Mídia não encontrada"
-#: sysdeps/gnu/errlist.c:1415
+#: sysdeps/gnu/errlist.c:1428
msgid "Wrong medium type"
msgstr "Tipo de mídia incorreta"
-#: sysdeps/gnu/errlist.c:1423
+#: sysdeps/gnu/errlist.c:1436
msgid "Required key not available"
msgstr "Chave necessária não disponível"
-#: sysdeps/gnu/errlist.c:1431
+#: sysdeps/gnu/errlist.c:1444
msgid "Key has expired"
msgstr "A chave expirou"
-#: sysdeps/gnu/errlist.c:1439
+#: sysdeps/gnu/errlist.c:1452
msgid "Key has been revoked"
msgstr "A chave foi revogada"
-#: sysdeps/gnu/errlist.c:1447
+#: sysdeps/gnu/errlist.c:1460
msgid "Key was rejected by service"
msgstr "A chave foi rejeitada pelo serviço"
-#: sysdeps/gnu/errlist.c:1455
+#: sysdeps/gnu/errlist.c:1468
msgid "Operation not possible due to RF-kill"
msgstr "Operação não permitida em razão de RF-kill"
-#: sysdeps/gnu/errlist.c:1463
+#: sysdeps/gnu/errlist.c:1476
msgid "Memory page has hardware error"
msgstr "Página de memória possui um erro de hardware"
@@ -6760,27 +6768,27 @@ msgstr "pilha de sombra não está habilitado"
msgid "can't disable CET"
msgstr "não foi possível desabilitar CET"
-#: timezone/zdump.c:338
+#: timezone/zdump.c:332
msgid "has fewer than 3 characters"
msgstr "possui menos de 3 caracteres"
-#: timezone/zdump.c:340
+#: timezone/zdump.c:334
msgid "has more than 6 characters"
msgstr "possui mais de 6 caracteres"
-#: timezone/zdump.c:342
+#: timezone/zdump.c:336
msgid "has characters other than ASCII alphanumerics, '-' or '+'"
msgstr "possui caracteres além de “-â€, “+†ou alfanuméricos ASCII"
-#: timezone/zdump.c:347
+#: timezone/zdump.c:341
#, c-format
msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n"
msgstr "%s: aviso: fuso “%s†abreviação “%s†%s\n"
-#: timezone/zdump.c:393
+#: timezone/zdump.c:387
#, c-format
msgid ""
-"%s: usage: %s OPTIONS ZONENAME ...\n"
+"%s: usage: %s OPTIONS TIMEZONE ...\n"
"Options include:\n"
" -c [L,]U Start at year L (default -500), end before year U (default 2500)\n"
" -t [L,]U Start at time L, end before time U (in seconds since 1970)\n"
@@ -6792,7 +6800,7 @@ msgid ""
"\n"
"Report bugs to %s.\n"
msgstr ""
-"%s: uso: %s OPÇÕES NOMEFUSO ...\n"
+"%s: uso: %s OPÇÕES FUSOHORÃRIO ...\n"
"Opções incluem:\n"
" -c [L,]U Inicia no ano L (padrão -500), termina até o ano U (padrão 2500)\n"
" -t [L,]U Inicia no tempo L, termina até o tempo U (em segundos desde 1970)\n"
@@ -6804,439 +6812,490 @@ msgstr ""
"\n"
"Relate erros para %s.\n"
-#: timezone/zdump.c:479
+#: timezone/zdump.c:473
#, c-format
msgid "%s: wild -c argument %s\n"
msgstr "%s: argumento -c insensato %s\n"
-#: timezone/zdump.c:512
+#: timezone/zdump.c:506
#, c-format
msgid "%s: wild -t argument %s\n"
msgstr "%s: argumento -t insensato %s\n"
-#: timezone/zic.c:398
+#: timezone/zic.c:429
#, c-format
msgid "%s: Memory exhausted: %s\n"
msgstr "%s: Memória esgotada: %s\n"
-#: timezone/zic.c:406
+#: timezone/zic.c:437
msgid "size overflow"
msgstr "estouro de tamanho"
-#: timezone/zic.c:454
+#: timezone/zic.c:447
+msgid "alignment overflow"
+msgstr "estouro de alinhamento"
+
+#: timezone/zic.c:495
msgid "integer overflow"
msgstr "estouro de valor inteiro"
-#: timezone/zic.c:488
+#: timezone/zic.c:529
#, c-format
msgid "\"%s\", line %<PRIdMAX>: "
msgstr "“%sâ€, linha %<PRIdMAX>: "
-#: timezone/zic.c:491
+#: timezone/zic.c:532
#, c-format
msgid " (rule from \"%s\", line %<PRIdMAX>)"
msgstr " (regra de “%sâ€, linha %<PRIdMAX>)"
-#: timezone/zic.c:510
+#: timezone/zic.c:551
#, c-format
msgid "warning: "
msgstr "aviso: "
-#: timezone/zic.c:535
+#: timezone/zic.c:576
#, c-format
msgid ""
"%s: usage is %s [ --version ] [ --help ] [ -v ] \\\n"
"\t[ -l localtime ] [ -p posixrules ] [ -d directory ] \\\n"
-"\t[ -L leapseconds ] [ filename ... ]\n"
+"\t[ -t localtime-link ] [ -L leapseconds ] [ filename ... ]\n"
"\n"
"Report bugs to %s.\n"
msgstr ""
"%s: uso é %s [ --version ] [ --help ] [ -h ] \\\n"
"\t[ -l tempolocal ] [ -p regrasposix ] [ -d diretório ] \\\n"
-"\t[ -L segundos bissextos ] [ nome do arquivo ... ]\n"
+"\t[ -t link-tempolocal ] [ -L segundos bissextos ] [ arquivo ... ]\n"
"\n"
"Relate erros para %s.\n"
-#: timezone/zic.c:558
+#: timezone/zic.c:599
#, c-format
msgid "%s: Can't chdir to %s: %s\n"
msgstr "%s: Não foi fazer chdir criar %s: %s\n"
-#: timezone/zic.c:590
+#: timezone/zic.c:632
msgid "wild compilation-time specification of zic_t"
msgstr "especificação insensata de tempo de compilação de zic_t"
-#: timezone/zic.c:610
+#: timezone/zic.c:652
#, c-format
msgid "%s: More than one -d option specified\n"
msgstr "%s: Mais de uma opção -d foi especificada\n"
-#: timezone/zic.c:620
+#: timezone/zic.c:662
#, c-format
msgid "%s: More than one -l option specified\n"
msgstr "%s: Mais de uma opção -l especificada\n"
-#: timezone/zic.c:630
+#: timezone/zic.c:672
#, c-format
msgid "%s: More than one -p option specified\n"
msgstr "%s: Mais de uma opção -p especificada\n"
-#: timezone/zic.c:640
+#: timezone/zic.c:680
+#, c-format
+msgid "%s: More than one -t option specified\n"
+msgstr "%s: Mais de uma opção -t foi especificada\n"
+
+#: timezone/zic.c:689
+msgid "-y is obsolescent"
+msgstr "-y está obsoleto"
+
+#: timezone/zic.c:693
#, c-format
msgid "%s: More than one -y option specified\n"
msgstr "%s: Mais de uma opção -y especificada\n"
-#: timezone/zic.c:650
+#: timezone/zic.c:703
#, c-format
msgid "%s: More than one -L option specified\n"
msgstr "%s: Mais de uma opção -L foi especificada\n"
-#: timezone/zic.c:659
+#: timezone/zic.c:712
msgid "-s ignored"
msgstr "-s ignorada"
-#: timezone/zic.c:698
+#: timezone/zic.c:753
msgid "link to link"
msgstr "link para o link"
-#: timezone/zic.c:701 timezone/zic.c:705
+#: timezone/zic.c:756 timezone/zic.c:760
msgid "command line"
msgstr "linha de comando"
-#: timezone/zic.c:721
+#: timezone/zic.c:776
msgid "empty file name"
msgstr "arquivo com nome vazio"
-#: timezone/zic.c:724
+#: timezone/zic.c:779
#, c-format
msgid "file name '%s' begins with '/'"
msgstr "nome de arquivo “%s†começa com “/â€"
-#: timezone/zic.c:734
+#: timezone/zic.c:789
#, c-format
msgid "file name '%s' contains '%.*s' component"
msgstr "nome de arquivo “%s†contém componente “%.*sâ€"
-#: timezone/zic.c:740
+#: timezone/zic.c:795
#, c-format
msgid "file name '%s' component contains leading '-'"
msgstr "um componente do nome de arquivo “%s†inicia com “-â€"
-#: timezone/zic.c:743
+#: timezone/zic.c:798
#, c-format
msgid "file name '%s' contains overlength component '%.*s...'"
msgstr "nome de arquivo “%s†contém componente “%.*s...†comprido demais"
-#: timezone/zic.c:771
+#: timezone/zic.c:826
#, c-format
msgid "file name '%s' contains byte '%c'"
msgstr "nome de arquivo “%s†contém byte “%câ€"
-#: timezone/zic.c:772
+#: timezone/zic.c:827
#, c-format
msgid "file name '%s' contains byte '\\%o'"
msgstr "nome de arquivo “%s†contém byte “\\%oâ€"
-#: timezone/zic.c:842
+#: timezone/zic.c:897
#, c-format
msgid "%s: link from %s/%s failed: %s\n"
msgstr "%s: link de %s/%s falhou: %s\n"
-#: timezone/zic.c:852 timezone/zic.c:1815
+#: timezone/zic.c:907 timezone/zic.c:1876
#, c-format
msgid "%s: Can't remove %s/%s: %s\n"
msgstr "%s: Não é possível remover %s/%s: %s\n"
-#: timezone/zic.c:874
+#: timezone/zic.c:931
#, c-format
msgid "symbolic link used because hard link failed: %s"
msgstr "link simbólico usado porque link absoluto falhou: %s"
-#: timezone/zic.c:882
+#: timezone/zic.c:939
#, c-format
msgid "%s: Can't read %s/%s: %s\n"
msgstr "%s: Não foi possível ler %s/%s: %s\n"
-#: timezone/zic.c:889 timezone/zic.c:1828
+#: timezone/zic.c:946 timezone/zic.c:1889
#, c-format
msgid "%s: Can't create %s/%s: %s\n"
msgstr "%s: Não é possível criar %s/%s (%s)\n"
-#: timezone/zic.c:898
+#: timezone/zic.c:955
#, c-format
msgid "copy used because hard link failed: %s"
msgstr "cópia usada porque link absoluto falhou: %s"
-#: timezone/zic.c:901
+#: timezone/zic.c:958
#, c-format
msgid "copy used because symbolic link failed: %s"
msgstr "cópia usada porque link simbólico falhou: %s"
-#: timezone/zic.c:1013 timezone/zic.c:1015
+#: timezone/zic.c:1032 timezone/zic.c:1034
msgid "same rule name in multiple files"
msgstr "mesmo nome de regra em múltiplos arquivos"
-#: timezone/zic.c:1056
-msgid "unruly zone"
-msgstr "fuso horário sem regras"
-
-#: timezone/zic.c:1063
+#: timezone/zic.c:1081
#, c-format
msgid "%s in ruleless zone"
msgstr "%s em uma fuso horário sem regras"
-#: timezone/zic.c:1083
+#: timezone/zic.c:1101
msgid "standard input"
msgstr "entrada padrão"
-#: timezone/zic.c:1088
+#: timezone/zic.c:1106
#, c-format
msgid "%s: Can't open %s: %s\n"
msgstr "%s: Não é possível abrir %s: %s\n"
-#: timezone/zic.c:1099
+#: timezone/zic.c:1117
msgid "line too long"
msgstr "linha muito longa"
-#: timezone/zic.c:1119
+#: timezone/zic.c:1139
msgid "input line of unknown type"
msgstr "linha de entrada de tipo desconhecido"
-#: timezone/zic.c:1134
-#, c-format
-msgid "%s: Leap line in non leap seconds file %s"
-msgstr "%s: linha Leap em arquivo de segundos não bissextos %s"
-
-#: timezone/zic.c:1142 timezone/zic.c:1547 timezone/zic.c:1569
+#: timezone/zic.c:1158 timezone/zic.c:1593 timezone/zic.c:1615
#, c-format
msgid "%s: panic: Invalid l_value %d\n"
msgstr "%s: pânico: l_value inválido %d\n"
-#: timezone/zic.c:1151
+#: timezone/zic.c:1167
msgid "expected continuation line not found"
msgstr "linha de continuação não foi localizada"
-#: timezone/zic.c:1193 timezone/zic.c:2976
+#: timezone/zic.c:1203
+msgid "fractional seconds rejected by pre-2018 versions of zic"
+msgstr "segundos fracionais rejeitados por versões pré-2018 do zic"
+
+#: timezone/zic.c:1221 timezone/zic.c:3078
msgid "time overflow"
msgstr "estouro de tempo"
-#: timezone/zic.c:1198
+#: timezone/zic.c:1227
msgid "values over 24 hours not handled by pre-2007 versions of zic"
msgstr "valor sobre 24 horas não tratado por versões anteriores a 2007 do zic"
-#: timezone/zic.c:1209
+#: timezone/zic.c:1245
+msgid "invalid saved time"
+msgstr "tempo gravado inválido"
+
+#: timezone/zic.c:1256
msgid "wrong number of fields on Rule line"
msgstr "número incorreto de campos na linha Rule"
-#: timezone/zic.c:1213
-msgid "nameless rule"
-msgstr "regra sem nome"
-
-#: timezone/zic.c:1218
-msgid "invalid saved time"
-msgstr "tempo gravado inválido"
+#: timezone/zic.c:1265
+#, c-format
+msgid "Invalid rule name \"%s\""
+msgstr "Nome de regra inválido “%sâ€"
-#: timezone/zic.c:1235
+#: timezone/zic.c:1287
msgid "wrong number of fields on Zone line"
msgstr "número incorreto de campos na linha Zone"
-#: timezone/zic.c:1240
+#: timezone/zic.c:1292
#, c-format
msgid "\"Zone %s\" line and -l option are mutually exclusive"
msgstr "A linha “Zone %s†e a opção -l são mutuamente exclusivas"
-#: timezone/zic.c:1246
+#: timezone/zic.c:1298
#, c-format
msgid "\"Zone %s\" line and -p option are mutually exclusive"
msgstr "A linha “Zone %s†e a opção -p são mutuamente exclusivas"
-#: timezone/zic.c:1253
+#: timezone/zic.c:1305
#, c-format
msgid "duplicate zone name %s (file \"%s\", line %<PRIdMAX>)"
msgstr "nome de fuso horário duplicado %s (arquivo “%sâ€, linha %<PRIdMAX>)"
-#: timezone/zic.c:1267
+#: timezone/zic.c:1319
msgid "wrong number of fields on Zone continuation line"
msgstr "número incorreto de campos na linha de continuação de Zone"
-#: timezone/zic.c:1307
+#: timezone/zic.c:1359
msgid "invalid UT offset"
msgstr "deslocamento de UT inválido"
-#: timezone/zic.c:1311
+#: timezone/zic.c:1363
msgid "invalid abbreviation format"
msgstr "formato de abreviação inválido"
-#: timezone/zic.c:1320
+#: timezone/zic.c:1372
#, c-format
msgid "format '%s' not handled by pre-2015 versions of zic"
msgstr "formato “%s†não tratado por versões pré-2015 do zic"
-#: timezone/zic.c:1347
+#: timezone/zic.c:1399
msgid "Zone continuation line end time is not after end time of previous line"
msgstr "Hora final da linha de fuso horário não está após o tempo final da linha anterior"
-#: timezone/zic.c:1374
+#: timezone/zic.c:1426
msgid "wrong number of fields on Leap line"
msgstr "número incorreto de campos na linha Leap"
-#: timezone/zic.c:1383
+#: timezone/zic.c:1435
msgid "invalid leaping year"
msgstr "ano bissexto inválido"
-#: timezone/zic.c:1403 timezone/zic.c:1501
+#: timezone/zic.c:1455 timezone/zic.c:1547
msgid "invalid month name"
msgstr "nome do mês inválido"
-#: timezone/zic.c:1416 timezone/zic.c:1614 timezone/zic.c:1628
+#: timezone/zic.c:1468 timezone/zic.c:1663 timezone/zic.c:1677
msgid "invalid day of month"
msgstr "dia do mês inválido"
-#: timezone/zic.c:1421
+#: timezone/zic.c:1473
msgid "time too small"
msgstr "hora pequena demais"
-#: timezone/zic.c:1425
+#: timezone/zic.c:1477
msgid "time too large"
msgstr "hora grande demais"
-#: timezone/zic.c:1429 timezone/zic.c:1530
+#: timezone/zic.c:1481 timezone/zic.c:1576
msgid "invalid time of day"
msgstr "hora do dia inválida"
-#: timezone/zic.c:1448
+#: timezone/zic.c:1494
msgid "illegal CORRECTION field on Leap line"
msgstr "Campo CORRECTION ilegal em linha Leap (ajuste)"
-#: timezone/zic.c:1453
+#: timezone/zic.c:1499
msgid "illegal Rolling/Stationary field on Leap line"
msgstr "campo Rolling/Stationary ilegal em linha Leap (ajuste)"
-#: timezone/zic.c:1459
-msgid "leap second precedes Big Bang"
-msgstr "segundo bissexto precede Big Bang"
+#: timezone/zic.c:1505
+msgid "leap second precedes Epoch"
+msgstr "segundo bissexto precede Epoch"
-#: timezone/zic.c:1472
+#: timezone/zic.c:1518
msgid "wrong number of fields on Link line"
msgstr "número incorreto de campos na linha Link"
-#: timezone/zic.c:1476
+#: timezone/zic.c:1522
msgid "blank FROM field on Link line"
msgstr "campo FROM em branco na linha Link"
-#: timezone/zic.c:1551
+#: timezone/zic.c:1597
msgid "invalid starting year"
msgstr "ano inicial inválido"
-#: timezone/zic.c:1573
+#: timezone/zic.c:1619
msgid "invalid ending year"
msgstr "ano final inválido"
-#: timezone/zic.c:1577
+#: timezone/zic.c:1623
msgid "starting year greater than ending year"
msgstr "ano inicial maior que ano final"
-#: timezone/zic.c:1584
+#: timezone/zic.c:1630
msgid "typed single year"
msgstr "digitado ano simples"
-#: timezone/zic.c:1619
+#: timezone/zic.c:1633
+#, c-format
+msgid "year type \"%s\" is obsolete; use \"-\" instead"
+msgstr "tipo de ano “%s†está obsoleto; use “-â€"
+
+#: timezone/zic.c:1668
msgid "invalid weekday name"
msgstr "nome de dia de semana inválido"
-#: timezone/zic.c:1743
+#: timezone/zic.c:1800
#, c-format
msgid "reference clients mishandle more than %d transition times"
msgstr "clientes de referência lidam incorretamente com mais %d tempos de transição"
-#: timezone/zic.c:1747
+#: timezone/zic.c:1804
msgid "pre-2014 clients may mishandle more than 1200 transition times"
msgstr "clientes pré-2014 podem não lidar corretamente comais de 1200 tempos de transições"
-#: timezone/zic.c:1858
+#: timezone/zic.c:1920
msgid "too many transition times"
msgstr "tempos de transição em excesso"
-#: timezone/zic.c:2047
+#: timezone/zic.c:2107
#, c-format
-msgid "%%z UTC offset magnitude exceeds 99:59:59"
-msgstr "a magnitude do deslocamento de %%z UTC excede 99:59:59"
+msgid "%%z UT offset magnitude exceeds 99:59:59"
+msgstr "a magnitude do deslocamento de %%z UT excede 99:59:59"
-#: timezone/zic.c:2424
+#: timezone/zic.c:2488
msgid "no POSIX environment variable for zone"
msgstr "nenhuma variável de ambiente POSIX para o fuso horário"
-#: timezone/zic.c:2430
+#: timezone/zic.c:2494
#, c-format
msgid "%s: pre-%d clients may mishandle distant timestamps"
msgstr "%s: clientes pré-%d podem não lidar corretamente com marcas de tempo distantes"
-#: timezone/zic.c:2566
+#: timezone/zic.c:2631
msgid "two rules for same instant"
msgstr "duas regras para o mesmo instante"
-#: timezone/zic.c:2627
+#: timezone/zic.c:2696
msgid "can't determine time zone abbreviation to use just after until time"
msgstr "não é possível determinar abreviação de fuso horário para usar apenas após um tempo"
-#: timezone/zic.c:2725
+#: timezone/zic.c:2785
msgid "too many local time types"
msgstr "tipos de tempo local em excesso"
-#: timezone/zic.c:2729
+#: timezone/zic.c:2789
msgid "UT offset out of range"
msgstr "deslocamento de UT fora da faixa"
-#: timezone/zic.c:2753
+#: timezone/zic.c:2813
msgid "too many leap seconds"
msgstr "número excessivo de segundos bissextos"
-#: timezone/zic.c:2759
-msgid "repeated leap second moment"
-msgstr "momento de segundo bissexto repetido"
+#: timezone/zic.c:2844
+msgid "Leap seconds too close together"
+msgstr "Segundos bissextos muito próximos"
-#: timezone/zic.c:2830
+#: timezone/zic.c:2891
msgid "Wild result from command execution"
msgstr "Resultado insensato da execução do comando"
-#: timezone/zic.c:2831
+#: timezone/zic.c:2892
#, c-format
msgid "%s: command was '%s', result was %d\n"
msgstr "%s: comando era “%sâ€, resultado era %d\n"
-#: timezone/zic.c:2961
+#: timezone/zic.c:2998
+#, c-format
+msgid "\"%s\" is undocumented; use \"last%s\" instead"
+msgstr "“%s†não está documento; use “last%sâ€"
+
+#: timezone/zic.c:3029
+#, c-format
+msgid "\"%s\" is ambiguous in pre-2017c zic"
+msgstr "“%s†é ambíguo em zic pré-2017c"
+
+#: timezone/zic.c:3063
msgid "Odd number of quotation marks"
msgstr "Número ímpar de aspas"
-#: timezone/zic.c:3046
+#: timezone/zic.c:3157
msgid "use of 2/29 in non leap-year"
msgstr "uso de 2/29 em ano não bissexto"
-#: timezone/zic.c:3081
+#: timezone/zic.c:3192
msgid "rule goes past start/end of month; will not work with pre-2004 versions of zic"
msgstr "regra vai de início/fim do mês; não vai funcionar em versões pré-2004 do zic"
-#: timezone/zic.c:3108
+#: timezone/zic.c:3219
msgid "time zone abbreviation has fewer than 3 characters"
msgstr "abreviação de fuso horário possui menos de 3 caracteres"
-#: timezone/zic.c:3110
+#: timezone/zic.c:3221
msgid "time zone abbreviation has too many characters"
msgstr "abreviação de fuso horário possui um número excessivo de caracteres"
-#: timezone/zic.c:3112
+#: timezone/zic.c:3223
msgid "time zone abbreviation differs from POSIX standard"
msgstr "abreviação de fuso horário difere do padrão POSIX"
-#: timezone/zic.c:3118
+#: timezone/zic.c:3229
msgid "too many, or too long, time zone abbreviations"
msgstr "abreviações de fuso horário em excesso ou muito extensas"
-#: timezone/zic.c:3161
+#: timezone/zic.c:3275
#, c-format
msgid "%s: Can't create directory %s: %s"
msgstr "%s: Não foi possível criar o diretório %s: %s"
+#~ msgid "cannot open zero fill device"
+#~ msgstr "não foi possível abrir dispositivo preenchido com zero"
+
+#~ msgid "relocation error"
+#~ msgstr "erro de realocação"
+
+#~ msgid "Cannot set LC_CTYPE to default locale"
+#~ msgstr "Não foi possível definir LC_CTYPE para a localidade padrão"
+
+#~ msgid "Cannot set LC_MESSAGES to default locale"
+#~ msgstr "Não foi possível definir LC_MESSAGES para a localidade padrão"
+
+#~ msgid "Cannot set LC_COLLATE to default locale"
+#~ msgstr "Não foi possível definir LC_COLLATE para a localidade padrão"
+
+#~ msgid "unruly zone"
+#~ msgstr "fuso horário sem regras"
+
+#~ msgid "%s: Leap line in non leap seconds file %s"
+#~ msgstr "%s: linha Leap em arquivo de segundos não bissextos %s"
+
+#~ msgid "nameless rule"
+#~ msgstr "regra sem nome"
+
+#~ msgid "repeated leap second moment"
+#~ msgstr "momento de segundo bissexto repetido"
+
#~ msgid "invalid caller"
#~ msgstr "chamador inválido"
diff --git a/po/ru.po b/po/ru.po
index c8ee610de4..75a5c88a0a 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -8,12 +8,12 @@
# Dimitriy Ryazantcev <DJm00n@mail.ru>, 2009.
# Pavel Maryanov <acid_jack@ukr.net>, 2009.
# Dmitry V. Levin <ldv@altlinux.org>, 2012.
-# Yuri Kozlov <yuray@komyakino.ru>, 2009, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018.
+# Yuri Kozlov <yuray@komyakino.ru>, 2009, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019.
msgid ""
msgstr ""
-"Project-Id-Version: libc 2.26.9000\n"
-"POT-Creation-Date: 2018-07-26 22:19-0400\n"
-"PO-Revision-Date: 2018-01-13 10:46+0300\n"
+"Project-Id-Version: libc 2.28.9000\n"
+"POT-Creation-Date: 2019-07-18 13:28-0400\n"
+"PO-Revision-Date: 2019-01-17 21:07+0300\n"
"Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
"Language-Team: Russian <gnu@d07.ru>\n"
"Language: ru\n"
@@ -109,12 +109,13 @@ msgid "(PROGRAM ERROR) Option should have been recognized!?"
msgstr "(ОШИБКРПРОГРÐММЫ) Ключ должен быть раÑпознан!?"
#: assert/assert-perr.c:35
-#, fuzzy, c-format
-#| msgid "%s%s%s:%u: %s%sUnexpected error: %s.\n"
+#, c-format
msgid ""
"%s%s%s:%u: %s%sUnexpected error: %s.\n"
"%n"
-msgstr "%s%s%s:%u: %s%sÐÐµÐ¾Ð¶Ð¸Ð´Ð°Ð½Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°: %s.\n"
+msgstr ""
+"%s%s%s:%u: %s%sÐÐµÐ¾Ð¶Ð¸Ð´Ð°Ð½Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°: %s.\n"
+"%n"
#: assert/assert.c:101
#, c-format
@@ -154,10 +155,10 @@ msgstr ""
"[ВЫХОДÐОЙ-ФÐЙЛ [ВХОДÐОЙ-ФÐЙЛ]…]"
#: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:308
-#: elf/pldd.c:252 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
-#: iconv/iconvconfig.c:379 locale/programs/locale.c:275
-#: locale/programs/localedef.c:427 login/programs/pt_chown.c:89
-#: malloc/memusagestat.c:563 nss/getent.c:933 nss/makedb.c:369
+#: elf/pldd.c:247 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
+#: iconv/iconvconfig.c:379 locale/programs/locale.c:276
+#: locale/programs/localedef.c:437 login/programs/pt_chown.c:89
+#: malloc/memusagestat.c:563 nss/getent.c:953 nss/makedb.c:369
#: posix/getconf.c:503 sysdeps/unix/sysv/linux/lddlibc4.c:61
#, c-format
msgid ""
@@ -168,11 +169,11 @@ msgstr ""
"%s.\n"
#: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64
-#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75
+#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:263 elf/sotruss.sh:75
#: elf/sprof.c:389 iconv/iconv_prog.c:422 iconv/iconvconfig.c:396
-#: locale/programs/locale.c:292 locale/programs/localedef.c:453
+#: locale/programs/locale.c:293 locale/programs/localedef.c:463
#: login/programs/pt_chown.c:63 malloc/memusage.sh:71
-#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:87 nss/makedb.c:385
+#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:88 nss/makedb.c:385
#: posix/getconf.c:485 sysdeps/unix/sysv/linux/lddlibc4.c:68
#, c-format
msgid ""
@@ -186,10 +187,10 @@ msgstr ""
"КОММЕРЧЕСКОЙ ПРИГОДÐОСТИ или ПРИГОДÐОСТИ ДЛЯ КÐКОЙ-ЛИБО ЦЕЛИ.\n"
#: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68
-#: elf/ldconfig.c:329 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:427
-#: iconv/iconvconfig.c:401 locale/programs/locale.c:297
-#: locale/programs/localedef.c:458 malloc/memusage.sh:75
-#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:92 nss/makedb.c:390
+#: elf/ldconfig.c:329 elf/pldd.c:268 elf/sprof.c:395 iconv/iconv_prog.c:427
+#: iconv/iconvconfig.c:401 locale/programs/locale.c:298
+#: locale/programs/localedef.c:468 malloc/memusage.sh:75
+#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:93 nss/makedb.c:390
#: posix/getconf.c:490
#, c-format
msgid "Written by %s.\n"
@@ -260,21 +261,21 @@ msgstr "невозможно открыть выходной файл «%s»"
msgid "invalid escape sequence"
msgstr "Ð½ÐµÐ²ÐµÑ€Ð½Ð°Ñ ÑƒÐ¿Ñ€Ð°Ð²Ð»ÑÑŽÑ‰Ð°Ñ Ð¿Ð¾ÑледовательноÑÑ‚ÑŒ"
-#: catgets/gencat.c:1209
+#: catgets/gencat.c:1211
msgid "unterminated message"
msgstr "незавершенное Ñообщение"
-#: catgets/gencat.c:1233
+#: catgets/gencat.c:1235
#, c-format
msgid "while opening old catalog file"
msgstr "при открытии Ñтарого файла каталога"
-#: catgets/gencat.c:1324
+#: catgets/gencat.c:1326
#, c-format
msgid "conversion modules not available"
msgstr "модули Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½ÐµÐ´Ð¾Ñтупны"
-#: catgets/gencat.c:1350
+#: catgets/gencat.c:1352
#, c-format
msgid "cannot determine escape character"
msgstr "невозможно определить знак выхода"
@@ -401,7 +402,7 @@ msgstr "ÐеизвеÑÑ‚Ð½Ð°Ñ ÐžÐ¡"
msgid ", OS ABI: %s %d.%d.%d"
msgstr ", ABI ОС: %s %d.%d.%d"
-#: elf/cache.c:163 elf/ldconfig.c:1332
+#: elf/cache.c:163 elf/ldconfig.c:1333
#, c-format
msgid "Can't open cache file %s\n"
msgstr "Ðевозможно открыть кÑш-файл %s\n"
@@ -411,38 +412,38 @@ msgstr "Ðевозможно открыть кÑш-файл %s\n"
msgid "mmap of cache file failed.\n"
msgstr "отображение кÑш-файла в памÑÑ‚ÑŒ не удалоÑÑŒ.\n"
-#: elf/cache.c:181 elf/cache.c:195
+#: elf/cache.c:181 elf/cache.c:195 elf/cache.c:205
#, c-format
msgid "File is not a cache file.\n"
msgstr "Это не кÑш-файл.\n"
-#: elf/cache.c:228 elf/cache.c:238
+#: elf/cache.c:233 elf/cache.c:243
#, c-format
msgid "%d libs found in cache `%s'\n"
msgstr "%d библиотек найдено в кÑше «%s»\n"
-#: elf/cache.c:432
+#: elf/cache.c:437
#, c-format
msgid "Can't create temporary cache file %s"
msgstr "Ðевозможно Ñоздать временный кÑш-файл %s"
-#: elf/cache.c:440 elf/cache.c:450 elf/cache.c:454 elf/cache.c:458
-#: elf/cache.c:468
+#: elf/cache.c:445 elf/cache.c:455 elf/cache.c:459 elf/cache.c:463
+#: elf/cache.c:473
#, c-format
msgid "Writing of cache data failed"
msgstr "ЗапиÑÑŒ данных кÑша завершилаÑÑŒ неудачно"
-#: elf/cache.c:463
+#: elf/cache.c:468
#, c-format
msgid "Changing access rights of %s to %#o failed"
msgstr "Изменение прав доÑтупа Ð´Ð»Ñ %s на %#o завершилоÑÑŒ неудачно"
-#: elf/cache.c:472
+#: elf/cache.c:477
#, c-format
msgid "Renaming of %s to %s failed"
msgstr "Переименование %s в %s завершилоÑÑŒ неудачно"
-#: elf/dl-close.c:399 elf/dl-open.c:420
+#: elf/dl-close.c:399 elf/dl-open.c:424
msgid "cannot create scope list"
msgstr "невозможно Ñоздать ÑпиÑок облаÑтей"
@@ -464,10 +465,8 @@ msgid "cannot load auxiliary `%s' because of empty dynamic string token substitu
msgstr "невозможно загрузить вÑпомогательное «%s» из-за Ð²Ñ…Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¿ÑƒÑтого динамичеÑкого Ñтрокового токена\n"
#: elf/dl-deps.c:220
-#, fuzzy
-#| msgid "cannot allocate dependency list"
msgid "cannot allocate dependency buffer"
-msgstr "невозможно выделить памÑÑ‚ÑŒ под ÑпиÑок завиÑимоÑтей"
+msgstr "невозможно выделить памÑÑ‚ÑŒ под буфер завиÑимоÑтей"
#: elf/dl-deps.c:443
msgid "cannot allocate dependency list"
@@ -525,122 +524,122 @@ msgstr "невозможно Ñоздать маÑÑив путей поиÑка
msgid "cannot stat shared object"
msgstr "невозможно выполнить stat Ð´Ð»Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ñемого объекта"
-#: elf/dl-load.c:960
-msgid "cannot open zero fill device"
-msgstr "невозможно открыть файл-иÑточник нулей"
-
-#: elf/dl-load.c:1007 elf/dl-load.c:2203
+#: elf/dl-load.c:992 elf/dl-load.c:2198
msgid "cannot create shared object descriptor"
msgstr "невозможно Ñоздать деÑкриптор разделÑемого объекта"
-#: elf/dl-load.c:1026 elf/dl-load.c:1560 elf/dl-load.c:1673
+#: elf/dl-load.c:1011 elf/dl-load.c:1555 elf/dl-load.c:1668
msgid "cannot read file data"
msgstr "невозможно прочитать данные файла"
-#: elf/dl-load.c:1072
+#: elf/dl-load.c:1057
msgid "ELF load command alignment not page-aligned"
msgstr "выравнивание команды загрузки ELF не выровнено по Ñтранице"
-#: elf/dl-load.c:1079
+#: elf/dl-load.c:1064
msgid "ELF load command address/offset not properly aligned"
msgstr "адреÑ/Ñмещение команды загрузки ELF не выровнено правильно"
-#: elf/dl-load.c:1161
-#, fuzzy
-#| msgid "cannot restore segment prot after reloc"
+#: elf/dl-load.c:1146
msgid "cannot process note segment"
-msgstr "невозможно воÑÑтановить защиту Ñегмента поÑле перемещениÑ"
+msgstr "невозможно обработать Ñегмент note"
-#: elf/dl-load.c:1172
+#: elf/dl-load.c:1157
msgid "object file has no loadable segments"
msgstr "в объектном файле нет загружаемых Ñегментов"
-#: elf/dl-load.c:1181 elf/dl-load.c:1652
+#: elf/dl-load.c:1170 elf/dl-load.c:1647
msgid "cannot dynamically load executable"
msgstr "невозможно динамичеÑки загрузить иÑполнÑемый файл"
-#: elf/dl-load.c:1202
+#: elf/dl-load.c:1191
msgid "object file has no dynamic section"
msgstr "в объектном файле нет динамичеÑкой Ñекции"
-#: elf/dl-load.c:1225
+#: elf/dl-load.c:1218
+#, fuzzy
+#| msgid "cannot dynamically load executable"
+msgid "cannot dynamically load position-independent executable"
+msgstr "невозможно динамичеÑки загрузить иÑполнÑемый файл"
+
+#: elf/dl-load.c:1220
msgid "shared object cannot be dlopen()ed"
msgstr "невозможно применить dlopen() к разделÑемому объекту"
-#: elf/dl-load.c:1238
+#: elf/dl-load.c:1233
msgid "cannot allocate memory for program header"
msgstr "невозможно выделить памÑÑ‚ÑŒ под заголовок программы"
-#: elf/dl-load.c:1271 elf/dl-load.h:130
+#: elf/dl-load.c:1266 elf/dl-load.h:130
msgid "cannot change memory protections"
msgstr "невозможно изменить защиту памÑти"
-#: elf/dl-load.c:1291
+#: elf/dl-load.c:1286
msgid "cannot enable executable stack as shared object requires"
msgstr "невозможно задейÑтвовать иÑполнÑемый Ñтек, как требует разделÑемый объект"
-#: elf/dl-load.c:1304
+#: elf/dl-load.c:1299
msgid "cannot close file descriptor"
msgstr "невозможно закрыть деÑкриптор файла"
-#: elf/dl-load.c:1560
+#: elf/dl-load.c:1555
msgid "file too short"
msgstr "файл Ñлишком мал"
-#: elf/dl-load.c:1595
+#: elf/dl-load.c:1590
msgid "invalid ELF header"
msgstr "неверный заголовок ELF"
-#: elf/dl-load.c:1607
+#: elf/dl-load.c:1602
msgid "ELF file data encoding not big-endian"
msgstr "кодировка данных в ELF-файле не тупоконечнаÑ"
-#: elf/dl-load.c:1609
+#: elf/dl-load.c:1604
msgid "ELF file data encoding not little-endian"
msgstr "кодировка данных в ELF-файле не оÑтроконечнаÑ"
-#: elf/dl-load.c:1613
+#: elf/dl-load.c:1608
msgid "ELF file version ident does not match current one"
msgstr "идентификатор верÑии ELF-файла не ÑоответÑтвует текущей верÑии"
-#: elf/dl-load.c:1617
+#: elf/dl-load.c:1612
msgid "ELF file OS ABI invalid"
msgstr "неверный ABI ОС ELF-файла"
-#: elf/dl-load.c:1620
+#: elf/dl-load.c:1615
msgid "ELF file ABI version invalid"
msgstr "Ð½ÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ ABI ELF-файла"
-#: elf/dl-load.c:1623
+#: elf/dl-load.c:1618
msgid "nonzero padding in e_ident"
msgstr "заполнение в e_ident не равно нулю"
-#: elf/dl-load.c:1626
+#: elf/dl-load.c:1621
msgid "internal error"
msgstr "внутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°"
-#: elf/dl-load.c:1633
+#: elf/dl-load.c:1628
msgid "ELF file version does not match current one"
msgstr "верÑÐ¸Ñ ELF-файла не ÑоответÑтвует текущей верÑии"
-#: elf/dl-load.c:1641
+#: elf/dl-load.c:1636
msgid "only ET_DYN and ET_EXEC can be loaded"
msgstr "можно загрузить только ET_DYN и ET_EXEC"
# ???
-#: elf/dl-load.c:1657
+#: elf/dl-load.c:1652
msgid "ELF file's phentsize not the expected size"
msgstr "phentsize ELF-файла не Ñовпадает Ñ Ð¾Ð¶Ð¸Ð´Ð°ÐµÐ¼Ñ‹Ð¼ размером"
-#: elf/dl-load.c:2222
+#: elf/dl-load.c:2217
msgid "wrong ELF class: ELFCLASS64"
msgstr "неправильный клаÑÑ ELF: ELFCLASS64"
-#: elf/dl-load.c:2223
+#: elf/dl-load.c:2218
msgid "wrong ELF class: ELFCLASS32"
msgstr "неправильный клаÑÑ ELF: ELFCLASS32"
-#: elf/dl-load.c:2226
+#: elf/dl-load.c:2221
msgid "cannot open shared object file"
msgstr "невозможно открыть разделÑемый объектный файл"
@@ -652,11 +651,7 @@ msgstr "Ñбой Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ñегмента из разделÑем
msgid "cannot map zero-fill pages"
msgstr "невозможно отобразить Ñтраницы Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð½ÑƒÐ»Ñми"
-#: elf/dl-lookup.c:835
-msgid "relocation error"
-msgstr "ошибка перемещениÑ"
-
-#: elf/dl-lookup.c:858
+#: elf/dl-lookup.c:830
msgid "symbol lookup error"
msgstr "ошибка поиÑка Ñимвола"
@@ -664,19 +659,19 @@ msgstr "ошибка поиÑка Ñимвола"
msgid "cannot extend global scope"
msgstr "невозможно раÑширить глобальную облаÑÑ‚ÑŒ"
-#: elf/dl-open.c:470
+#: elf/dl-open.c:474
msgid "TLS generation counter wrapped! Please report this."
msgstr "Переполнение Ñчетчика поколений TLS! ПожалуйÑта, Ñообщите об Ñтом."
-#: elf/dl-open.c:534
+#: elf/dl-open.c:538
msgid "invalid mode for dlopen()"
msgstr "неверный режим Ð´Ð»Ñ dlopen()"
-#: elf/dl-open.c:551
+#: elf/dl-open.c:555
msgid "no more namespaces available for dlmopen()"
msgstr "больше нет доÑтупных проÑтранÑтв имен Ð´Ð»Ñ dlmopen()"
-#: elf/dl-open.c:575
+#: elf/dl-open.c:579
msgid "invalid target namespace in dlmopen()"
msgstr "неверное целевое проÑтранÑтво имен в dlmopen()"
@@ -684,20 +679,20 @@ msgstr "неверное целевое проÑтранÑтво имен в dlm
msgid "cannot allocate memory in static TLS block"
msgstr "невозможно выделить памÑÑ‚ÑŒ в Ñтатичном блоке TLS"
-#: elf/dl-reloc.c:205
+#: elf/dl-reloc.c:213
msgid "cannot make segment writable for relocation"
msgstr "невозможно Ñделать Ñегмент запиÑываемым Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ"
-#: elf/dl-reloc.c:276
+#: elf/dl-reloc.c:272
#, c-format
msgid "%s: out of memory to store relocation results for %s\n"
msgstr "%s: недоÑтаточно памÑти Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи результатов Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ %s\n"
-#: elf/dl-reloc.c:292
+#: elf/dl-reloc.c:288
msgid "cannot restore segment prot after reloc"
msgstr "невозможно воÑÑтановить защиту Ñегмента поÑле перемещениÑ"
-#: elf/dl-reloc.c:323
+#: elf/dl-reloc.c:319
msgid "cannot apply additional memory protection after relocation"
msgstr "невозможно применить дополнительную защиту памÑти поÑле релокации"
@@ -915,22 +910,22 @@ msgstr "при иÑпользовании -r необходимо задават
msgid "memory exhausted"
msgstr "памÑÑ‚ÑŒ иÑчерпана"
-#: elf/ldconfig.c:1233
+#: elf/ldconfig.c:1234
#, c-format
msgid "%s:%u: cannot read directory %s"
msgstr "%s:%u: невозможно прочитать каталог %s"
-#: elf/ldconfig.c:1281
+#: elf/ldconfig.c:1282
#, c-format
msgid "relative path `%s' used to build cache"
msgstr "Ð´Ð»Ñ Ð¿Ð¾ÑÑ‚Ñ€Ð¾ÐµÐ½Ð¸Ñ ÐºÑша иÑпользован отноÑительный путь «%s»"
-#: elf/ldconfig.c:1311
+#: elf/ldconfig.c:1312
#, c-format
msgid "Can't chdir to /"
msgstr "Ðевозможно перейти в каталог /"
-#: elf/ldconfig.c:1352
+#: elf/ldconfig.c:1353
#, c-format
msgid "Can't open cache file directory %s\n"
msgstr "Ðевозможно открыть каталог кÑш-файла %s\n"
@@ -1000,95 +995,101 @@ msgstr "завершено Ñ Ð½ÐµÐ¸Ð·Ð²ÐµÑтным выходным кодом
msgid "error: you do not have read permission for"
msgstr "ошибка: у Ð²Ð°Ñ Ð½ÐµÑ‚ Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð½Ð° чтение"
-#: elf/pldd-xx.c:105
+#: elf/pldd-xx.c:102
#, c-format
msgid "cannot find program header of process"
msgstr "не удалоÑÑŒ найти программный заголовок в процеÑÑе"
-#: elf/pldd-xx.c:110
+#: elf/pldd-xx.c:106
#, c-format
msgid "cannot read program header"
msgstr "не удалоÑÑŒ прочитать программный заголовок"
-#: elf/pldd-xx.c:135
+#: elf/pldd-xx.c:128
#, c-format
msgid "cannot read dynamic section"
msgstr "не удалоÑÑŒ прочитать динамичеÑкий раздел"
-#: elf/pldd-xx.c:147
+#: elf/pldd-xx.c:137
#, c-format
msgid "cannot read r_debug"
msgstr "не удалоÑÑŒ прочитать r_debug"
-#: elf/pldd-xx.c:167
+#: elf/pldd-xx.c:154
#, c-format
msgid "cannot read program interpreter"
msgstr "не удалоÑÑŒ прочитать программный интерпретатор"
-#: elf/pldd-xx.c:197
+#: elf/pldd-xx.c:183
#, c-format
msgid "cannot read link map"
msgstr "не удалоÑÑŒ прочитать карту ÑÑылок"
-#: elf/pldd-xx.c:209
+#: elf/pldd-xx.c:190
#, c-format
msgid "cannot read object name"
msgstr "не удалоÑÑŒ прочитать Ð¸Ð¼Ñ Ð¾Ð±ÑŠÐµÐºÑ‚Ð°"
-#: elf/pldd-xx.c:219
+#: elf/pldd-xx.c:197
#, c-format
msgid "cannot allocate buffer for object name"
msgstr "невозможно выделить буфер под Ð¸Ð¼Ñ Ð¾Ð±ÑŠÐµÐºÑ‚Ð°"
-#: elf/pldd.c:64
+#: elf/pldd.c:58
msgid "List dynamic shared objects loaded into process."
msgstr "СпиÑок динамичеÑких общих объектов загружен в процеÑÑ."
-#: elf/pldd.c:68
+#: elf/pldd.c:62
msgid "PID"
msgstr "PID"
-#: elf/pldd.c:100
+#: elf/pldd.c:89
#, c-format
msgid "Exactly one parameter with process ID required.\n"
msgstr "Ð”Ð»Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑÑа Ñ ID требуетÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ один параметр.\n"
-#: elf/pldd.c:112
+#: elf/pldd.c:103
#, c-format
msgid "invalid process ID '%s'"
msgstr "Ðеверный идентификатор процеÑÑа «%s»"
-#: elf/pldd.c:120
+#: elf/pldd.c:111
#, c-format
msgid "cannot open %s"
msgstr "не удалоÑÑŒ открыть %s"
-#: elf/pldd.c:152
+#: elf/pldd.c:142
#, c-format
msgid "cannot open %s/task"
msgstr "не удалоÑÑŒ открыть %s/задачу"
-#: elf/pldd.c:155
+#: elf/pldd.c:145
#, c-format
msgid "cannot prepare reading %s/task"
msgstr "не удалоÑÑŒ подготовитÑÑ Ðº чтению %s/задачи"
-#: elf/pldd.c:168
+#: elf/pldd.c:158
#, c-format
msgid "invalid thread ID '%s'"
msgstr "неверный идентификатор нити «%s»"
-#: elf/pldd.c:179
+#: elf/pldd.c:169
#, c-format
msgid "cannot attach to process %lu"
msgstr "не удалоÑÑŒ приÑоединитьÑÑ Ðº процеÑÑу %lu"
-#: elf/pldd.c:294
+#: elf/pldd.c:184
+#, fuzzy, c-format
+#| msgid "invalid saved time"
+msgid "no valid %s/task entries"
+msgstr "неверное Ñохраненное времÑ"
+
+#: elf/pldd.c:290
#, c-format
msgid "cannot get information about process %lu"
msgstr "не удалоÑÑŒ получить информацию о процеÑÑе %lu"
-#: elf/pldd.c:307
+#: elf/pldd.c:303
#, c-format
msgid "process %lu is no ELF program"
msgstr "процеÑÑ %lu не ÑвлÑетÑÑ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð¾Ð¹ в формате ELF"
@@ -1409,7 +1410,7 @@ msgstr "ИнформациÑ:"
msgid "list all known coded character sets"
msgstr "перечиÑлить вÑе извеÑтные вÑтроенные кодировки"
-#: iconv/iconv_prog.c:64 locale/programs/localedef.c:120
+#: iconv/iconv_prog.c:64 locale/programs/localedef.c:124
msgid "Output control:"
msgstr "Управление выводом:"
@@ -1418,8 +1419,8 @@ msgid "omit invalid characters from output"
msgstr "пропуÑкать на выводе недопуÑтимые знаки"
#: iconv/iconv_prog.c:66 iconv/iconvconfig.c:128
-#: locale/programs/localedef.c:113 locale/programs/localedef.c:115
-#: locale/programs/localedef.c:117 locale/programs/localedef.c:144
+#: locale/programs/localedef.c:117 locale/programs/localedef.c:119
+#: locale/programs/localedef.c:121 locale/programs/localedef.c:150
#: malloc/memusagestat.c:56
msgid "FILE"
msgstr "ФÐЙЛ"
@@ -1518,7 +1519,7 @@ msgstr "Создаёт быÑтрозагружаемый конфигураци
msgid "[DIR...]"
msgstr "[КÐТÐЛОГ…]"
-#: iconv/iconvconfig.c:126 locale/programs/localedef.c:123
+#: iconv/iconvconfig.c:126 locale/programs/localedef.c:129
msgid "PATH"
msgstr "ПУТЬ"
@@ -1628,10 +1629,8 @@ msgid "Error: .netrc file is readable by others."
msgstr "Ошибка: файл .netrc может запиÑыватьÑÑ Ð´Ñ€ÑƒÐ³Ð¸Ð¼Ð¸."
#: inet/ruserpass.c:180
-#, fuzzy
-#| msgid "Remove password or make file unreadable by others."
msgid "Remove 'password' line or make file unreadable by others."
-msgstr "Удалите пароль или Ñделайте файл недоÑтупным Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ð´Ñ€ÑƒÐ³Ð¸Ð¼Ð¸."
+msgstr "Удалите Ñтроку «password» или Ñделайте файл недоÑтупным Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ð´Ñ€ÑƒÐ³Ð¸Ð¼Ð¸."
#: inet/ruserpass.c:199
#, c-format
@@ -1704,14 +1703,14 @@ msgstr "кодировки Ñ Ð±Ð»Ð¾ÐºÐ¸Ñ€ÑƒÑŽÑ‰Ð¸Ð¼Ð¸ ÑоÑтоÑниÑми н
#: locale/programs/charmap.c:503 locale/programs/charmap.c:557
#: locale/programs/charmap.c:589 locale/programs/charmap.c:683
-#: locale/programs/charmap.c:738 locale/programs/charmap.c:779
-#: locale/programs/charmap.c:820
+#: locale/programs/charmap.c:739 locale/programs/charmap.c:780
+#: locale/programs/charmap.c:821
#, c-format
msgid "syntax error in %s definition: %s"
msgstr "ÑинтакÑичеÑÐºÐ°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° в определении %s: %s"
#: locale/programs/charmap.c:504 locale/programs/charmap.c:684
-#: locale/programs/charmap.c:780 locale/programs/repertoire.c:229
+#: locale/programs/charmap.c:781 locale/programs/repertoire.c:229
msgid "no symbolic name given"
msgstr "не задано Ñимвольное имÑ"
@@ -1727,14 +1726,14 @@ msgstr "Ñлишком мало байт в кодировке знака"
msgid "too many bytes in character encoding"
msgstr "Ñлишком много байт в кодировке знака"
-#: locale/programs/charmap.c:591 locale/programs/charmap.c:739
-#: locale/programs/charmap.c:822 locale/programs/repertoire.c:295
+#: locale/programs/charmap.c:591 locale/programs/charmap.c:740
+#: locale/programs/charmap.c:823 locale/programs/repertoire.c:295
msgid "no symbolic name given for end of range"
msgstr "не задано Ñимвольное Ð¸Ð¼Ñ Ð´Ð»Ñ ÐºÐ¾Ð½Ñ†Ð° диапазона"
#: locale/programs/charmap.c:615 locale/programs/ld-address.c:524
#: locale/programs/ld-collate.c:2616 locale/programs/ld-collate.c:3774
-#: locale/programs/ld-ctype.c:2117 locale/programs/ld-ctype.c:2829
+#: locale/programs/ld-ctype.c:2118 locale/programs/ld-ctype.c:2830
#: locale/programs/ld-identification.c:397
#: locale/programs/ld-measurement.c:213 locale/programs/ld-messages.c:295
#: locale/programs/ld-monetary.c:748 locale/programs/ld-name.c:262
@@ -1749,58 +1748,58 @@ msgstr "%1$s: определение не заканчиваетÑÑ Ð½Ð° «END
msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
msgstr "поÑле Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ CHARMAP могут Ñледовать только Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ WIDTH"
-#: locale/programs/charmap.c:656 locale/programs/charmap.c:719
+#: locale/programs/charmap.c:656 locale/programs/charmap.c:720
#, c-format
msgid "value for %s must be an integer"
msgstr "значение Ð´Ð»Ñ %s должно быть целым чиÑлом"
-#: locale/programs/charmap.c:847
+#: locale/programs/charmap.c:848
#, c-format
msgid "%s: error in state machine"
msgstr "%s: ошибка в автомате"
-#: locale/programs/charmap.c:855 locale/programs/ld-address.c:540
+#: locale/programs/charmap.c:856 locale/programs/ld-address.c:540
#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967
-#: locale/programs/ld-ctype.c:2114 locale/programs/ld-ctype.c:2846
+#: locale/programs/ld-ctype.c:2115 locale/programs/ld-ctype.c:2847
#: locale/programs/ld-identification.c:413
#: locale/programs/ld-measurement.c:229 locale/programs/ld-messages.c:311
#: locale/programs/ld-monetary.c:764 locale/programs/ld-name.c:278
#: locale/programs/ld-numeric.c:341 locale/programs/ld-paper.c:228
#: locale/programs/ld-telephone.c:292 locale/programs/ld-time.c:990
-#: locale/programs/locfile.c:997 locale/programs/repertoire.c:323
+#: locale/programs/locfile.c:1010 locale/programs/repertoire.c:323
#, c-format
msgid "%s: premature end of file"
msgstr "%s: преждевременный конец файла"
-#: locale/programs/charmap.c:874 locale/programs/charmap.c:885
+#: locale/programs/charmap.c:875 locale/programs/charmap.c:886
#, c-format
msgid "unknown character `%s'"
msgstr "неизвеÑтный знак «%s»"
-#: locale/programs/charmap.c:893
+#: locale/programs/charmap.c:894
#, c-format
msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d"
msgstr "чиÑло байт Ð´Ð»Ñ Ð¿Ð¾ÑледовательноÑти байт начала и конца диапазона не Ñовпадают: %d и %d"
-#: locale/programs/charmap.c:998 locale/programs/ld-collate.c:2893
+#: locale/programs/charmap.c:999 locale/programs/ld-collate.c:2893
#: locale/programs/repertoire.c:418
msgid "invalid names for character range"
msgstr "недопуÑтимые имена Ð´Ð»Ñ Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½Ð° знаков"
-#: locale/programs/charmap.c:1010 locale/programs/repertoire.c:430
+#: locale/programs/charmap.c:1011 locale/programs/repertoire.c:430
msgid "hexadecimal range format should use only capital characters"
msgstr "в шеÑтнадцатеричном формате диапазона Ñледует иÑпользовать только заглавные буквы"
-#: locale/programs/charmap.c:1028 locale/programs/repertoire.c:448
+#: locale/programs/charmap.c:1029 locale/programs/repertoire.c:448
#, c-format
msgid "<%s> and <%s> are invalid names for range"
msgstr "<%s> и <%s> не ÑвлÑÑŽÑ‚ÑÑ Ð´Ð¾Ð¿ÑƒÑтимыми именами диапазона"
-#: locale/programs/charmap.c:1034 locale/programs/repertoire.c:455
+#: locale/programs/charmap.c:1035 locale/programs/repertoire.c:455
msgid "upper limit in range is smaller than lower limit"
msgstr "верхнÑÑ Ð³Ñ€Ð°Ð½Ð¸Ñ†Ð° диапазона меньше нижней"
-#: locale/programs/charmap.c:1092
+#: locale/programs/charmap.c:1093
msgid "resulting bytes for range not representable."
msgstr "результирующие байты Ð´Ð»Ñ Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½Ð° невозможно машинно предÑтавить."
@@ -1869,7 +1868,7 @@ msgid "%s: numeric country code `%d' not valid"
msgstr "%s: неверный чиÑловой код Ñтраны «%d»"
#: locale/programs/ld-address.c:432 locale/programs/ld-address.c:469
-#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2478
+#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2479
#: locale/programs/ld-identification.c:309
#: locale/programs/ld-measurement.c:196 locale/programs/ld-messages.c:264
#: locale/programs/ld-monetary.c:503 locale/programs/ld-monetary.c:538
@@ -1892,7 +1891,7 @@ msgid "%s: unknown character in field `%s'"
msgstr "%s: неизвеÑтный знак в поле «%s»"
#: locale/programs/ld-address.c:521 locale/programs/ld-collate.c:3772
-#: locale/programs/ld-ctype.c:2826 locale/programs/ld-identification.c:394
+#: locale/programs/ld-ctype.c:2827 locale/programs/ld-identification.c:394
#: locale/programs/ld-measurement.c:210 locale/programs/ld-messages.c:293
#: locale/programs/ld-monetary.c:746 locale/programs/ld-name.c:260
#: locale/programs/ld-numeric.c:323 locale/programs/ld-paper.c:210
@@ -1905,8 +1904,8 @@ msgstr "%s: Ð½ÐµÐ·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ð°Ñ Ñтрока «END»"
#: locale/programs/ld-collate.c:602 locale/programs/ld-collate.c:898
#: locale/programs/ld-collate.c:911 locale/programs/ld-collate.c:2582
#: locale/programs/ld-collate.c:2603 locale/programs/ld-collate.c:3957
-#: locale/programs/ld-ctype.c:1846 locale/programs/ld-ctype.c:2104
-#: locale/programs/ld-ctype.c:2676 locale/programs/ld-ctype.c:2837
+#: locale/programs/ld-ctype.c:1847 locale/programs/ld-ctype.c:2105
+#: locale/programs/ld-ctype.c:2677 locale/programs/ld-ctype.c:2838
#: locale/programs/ld-identification.c:404
#: locale/programs/ld-measurement.c:220 locale/programs/ld-messages.c:302
#: locale/programs/ld-monetary.c:755 locale/programs/ld-name.c:269
@@ -2250,129 +2249,129 @@ msgstr "отображение знаков «%s» уже определено"
msgid "implementation limit: no more than %d character maps allowed"
msgstr "ограничение реализации: допуÑкаетÑÑ Ð½Ðµ более %d отображений знаков"
-#: locale/programs/ld-ctype.c:1434 locale/programs/ld-ctype.c:1559
-#: locale/programs/ld-ctype.c:1665 locale/programs/ld-ctype.c:2341
-#: locale/programs/ld-ctype.c:3299
+#: locale/programs/ld-ctype.c:1435 locale/programs/ld-ctype.c:1560
+#: locale/programs/ld-ctype.c:1666 locale/programs/ld-ctype.c:2342
+#: locale/programs/ld-ctype.c:3302
#, c-format
msgid "%s: field `%s' does not contain exactly ten entries"
msgstr "%s: поле «%s» не Ñодержит ровно деÑÑÑ‚ÑŒ вхождений"
-#: locale/programs/ld-ctype.c:1462 locale/programs/ld-ctype.c:2036
+#: locale/programs/ld-ctype.c:1463 locale/programs/ld-ctype.c:2037
#, c-format
msgid "to-value <U%0*X> of range is smaller than from-value <U%0*X>"
msgstr "верхнее значение диапазона <U%0*X> меньше чем нижнее значение <U%0*X>"
-#: locale/programs/ld-ctype.c:1589
+#: locale/programs/ld-ctype.c:1590
msgid "start and end character sequence of range must have the same length"
msgstr "Ð½Ð°Ñ‡Ð°Ð»ÑŒÐ½Ð°Ñ Ð¸ ÐºÐ¾Ð½ÐµÑ‡Ð½Ð°Ñ Ð¿Ð¾ÑледовательноÑти знаков диапазона должны быть одинаковой длины"
-#: locale/programs/ld-ctype.c:1596
+#: locale/programs/ld-ctype.c:1597
msgid "to-value character sequence is smaller than from-value sequence"
msgstr "ÐºÐ¾Ð½ÐµÑ‡Ð½Ð°Ñ Ð¿Ð¾ÑледовательноÑÑ‚ÑŒ знаков диапазона меньше чем начальнаÑ"
-#: locale/programs/ld-ctype.c:1956 locale/programs/ld-ctype.c:2007
+#: locale/programs/ld-ctype.c:1957 locale/programs/ld-ctype.c:2008
msgid "premature end of `translit_ignore' definition"
msgstr "преждевременный конец Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Â«translit_ignore»"
-#: locale/programs/ld-ctype.c:1962 locale/programs/ld-ctype.c:2013
-#: locale/programs/ld-ctype.c:2055
+#: locale/programs/ld-ctype.c:1963 locale/programs/ld-ctype.c:2014
+#: locale/programs/ld-ctype.c:2056
msgid "syntax error"
msgstr "ÑинтакÑичеÑÐºÐ°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°"
-#: locale/programs/ld-ctype.c:2188
+#: locale/programs/ld-ctype.c:2189
#, c-format
msgid "%s: syntax error in definition of new character class"
msgstr "%s: ÑинтакÑичеÑÐºÐ°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° в определении нового клаÑÑа знаков"
-#: locale/programs/ld-ctype.c:2203
+#: locale/programs/ld-ctype.c:2204
#, c-format
msgid "%s: syntax error in definition of new character map"
msgstr "%s: ÑинтакÑичеÑÐºÐ°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° в определении нового Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð·Ð½Ð°ÐºÐ¾Ð²"
-#: locale/programs/ld-ctype.c:2363
+#: locale/programs/ld-ctype.c:2364
msgid "ellipsis range must be marked by two operands of same type"
msgstr "диапазон Ñ ÑллипÑиÑом должен быть помечен Ð´Ð²ÑƒÐ¼Ñ Ð¾Ð¿ÐµÑ€Ð°Ð½Ð´Ð°Ð¼Ð¸ одного типа"
-#: locale/programs/ld-ctype.c:2372
+#: locale/programs/ld-ctype.c:2373
msgid "with symbolic name range values the absolute ellipsis `...' must not be used"
msgstr "Ñ Ñимвольными именами значений диапазона Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать абÑолютный ÑллипÑÐ¸Ñ Â«â€¦Â»"
-#: locale/programs/ld-ctype.c:2387
+#: locale/programs/ld-ctype.c:2388
msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'"
msgstr "Ñ UCS-значениÑми диапазона Ñледует иÑпользовать шеÑтнадцатеричный Ñимвольный ÑллипÑÐ¸Ñ Â«..»"
-#: locale/programs/ld-ctype.c:2401
+#: locale/programs/ld-ctype.c:2402
msgid "with character code range values one must use the absolute ellipsis `...'"
msgstr "Ñо знаковыми кодами значений диапазона Ñледует иÑпользовать абÑолютный ÑллипÑÐ¸Ñ Â«â€¦Â»"
-#: locale/programs/ld-ctype.c:2552
+#: locale/programs/ld-ctype.c:2553
#, c-format
msgid "duplicated definition for mapping `%s'"
msgstr "повторное определение Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Â«%s»"
-#: locale/programs/ld-ctype.c:2638 locale/programs/ld-ctype.c:2782
+#: locale/programs/ld-ctype.c:2639 locale/programs/ld-ctype.c:2783
#, c-format
msgid "%s: `translit_start' section does not end with `translit_end'"
msgstr "%s: ÑÐµÐºÑ†Ð¸Ñ Â«translit_start» не заканчиваетÑÑ Ð½Ð° «translit_end»"
-#: locale/programs/ld-ctype.c:2733
+#: locale/programs/ld-ctype.c:2734
#, c-format
msgid "%s: duplicate `default_missing' definition"
msgstr "%s: повторное определение «default_missing»"
-#: locale/programs/ld-ctype.c:2738
+#: locale/programs/ld-ctype.c:2739
msgid "previous definition was here"
msgstr "предыдущее определение было здеÑÑŒ"
-#: locale/programs/ld-ctype.c:2760
+#: locale/programs/ld-ctype.c:2761
#, c-format
msgid "%s: no representable `default_missing' definition found"
msgstr "%s: не найдено предÑтавимого Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Â«default_missing»"
-#: locale/programs/ld-ctype.c:2877 locale/programs/ld-ctype.c:2973
-#: locale/programs/ld-ctype.c:2992 locale/programs/ld-ctype.c:3012
-#: locale/programs/ld-ctype.c:3032 locale/programs/ld-ctype.c:3052
-#: locale/programs/ld-ctype.c:3072 locale/programs/ld-ctype.c:3111
-#: locale/programs/ld-ctype.c:3131 locale/programs/ld-ctype.c:3195
-#: locale/programs/ld-ctype.c:3236 locale/programs/ld-ctype.c:3259
+#: locale/programs/ld-ctype.c:2878 locale/programs/ld-ctype.c:2974
+#: locale/programs/ld-ctype.c:2993 locale/programs/ld-ctype.c:3013
+#: locale/programs/ld-ctype.c:3033 locale/programs/ld-ctype.c:3053
+#: locale/programs/ld-ctype.c:3073 locale/programs/ld-ctype.c:3112
+#: locale/programs/ld-ctype.c:3132 locale/programs/ld-ctype.c:3198
+#: locale/programs/ld-ctype.c:3239 locale/programs/ld-ctype.c:3262
#, c-format
msgid "%s: character `%s' not defined while needed as default value"
msgstr "%s: знак «%s» не определен, Ñ…Ð¾Ñ‚Ñ Ð¾Ð½ нужен как значение по умолчанию"
-#: locale/programs/ld-ctype.c:2882 locale/programs/ld-ctype.c:2978
-#: locale/programs/ld-ctype.c:2997 locale/programs/ld-ctype.c:3017
-#: locale/programs/ld-ctype.c:3037 locale/programs/ld-ctype.c:3057
-#: locale/programs/ld-ctype.c:3077 locale/programs/ld-ctype.c:3116
-#: locale/programs/ld-ctype.c:3136 locale/programs/ld-ctype.c:3200
+#: locale/programs/ld-ctype.c:2883 locale/programs/ld-ctype.c:2979
+#: locale/programs/ld-ctype.c:2998 locale/programs/ld-ctype.c:3018
+#: locale/programs/ld-ctype.c:3038 locale/programs/ld-ctype.c:3058
+#: locale/programs/ld-ctype.c:3078 locale/programs/ld-ctype.c:3117
+#: locale/programs/ld-ctype.c:3137 locale/programs/ld-ctype.c:3203
#, c-format
msgid "%s: character `%s' in charmap not representable with one byte"
msgstr "%s: знак «%s» в отображении знаков не предÑтавим одним байтом"
-#: locale/programs/ld-ctype.c:3242 locale/programs/ld-ctype.c:3265
+#: locale/programs/ld-ctype.c:3245 locale/programs/ld-ctype.c:3268
#, c-format
msgid "%s: character `%s' needed as default value not representable with one byte"
msgstr "%s: знак «%s» нужен как значение по умолчанию, но его Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€ÐµÐ´Ñтавить одним байтом"
-#: locale/programs/ld-ctype.c:3321
+#: locale/programs/ld-ctype.c:3324
msgid "no output digits defined and none of the standard names in the charmap"
msgstr "не указаны выходные цифры или Ñтандартные имена в таблице Ñимволов"
-#: locale/programs/ld-ctype.c:3570
+#: locale/programs/ld-ctype.c:3573
#, c-format
msgid "%s: transliteration data from locale `%s' not available"
msgstr "%s: нет данных Ð´Ð»Ñ Ñ‚Ñ€Ð°Ð½Ñлитерации из локали «%s»"
-#: locale/programs/ld-ctype.c:3669
+#: locale/programs/ld-ctype.c:3672
#, c-format
msgid "%s: table for class \"%s\": %lu bytes"
msgstr "%s: таблица Ð´Ð»Ñ ÐºÐ»Ð°ÑÑа «%s»: %lu байт"
-#: locale/programs/ld-ctype.c:3733
+#: locale/programs/ld-ctype.c:3736
#, c-format
msgid "%s: table for map \"%s\": %lu bytes"
msgstr "%s: таблица Ð´Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Â«%s»: %lu байт"
-#: locale/programs/ld-ctype.c:3857
+#: locale/programs/ld-ctype.c:3860
#, c-format
msgid "%s: table for width: %lu bytes"
msgstr "%s: таблица Ð´Ð»Ñ ÑˆÐ¸Ñ€Ð¸Ð½Ñ‹: %lu байт"
@@ -2612,120 +2611,115 @@ msgstr ""
"ИМЯ\n"
"[-a|-m]"
-#: locale/programs/locale.c:190
+#: locale/programs/locale.c:522
#, c-format
-msgid "Cannot set LC_CTYPE to default locale"
-msgstr "Ðевозможно уÑтановить LC_CTYPE в локаль по умолчанию."
-
-#: locale/programs/locale.c:192
-#, c-format
-msgid "Cannot set LC_MESSAGES to default locale"
-msgstr "Ðевозможно уÑтановить LC_MESSAGES в локаль по умолчанию."
-
-#: locale/programs/locale.c:205
-#, c-format
-msgid "Cannot set LC_COLLATE to default locale"
-msgstr "Ðевозможно уÑтановить LC_COLLATE в локаль по умолчанию."
+msgid "while preparing output"
+msgstr "при подготовке вывода"
-#: locale/programs/locale.c:221
-#, c-format
-msgid "Cannot set LC_ALL to default locale"
+#: locale/programs/locale.c:998
+#, fuzzy, c-format
+#| msgid "Cannot set LC_ALL to default locale"
+msgid "Cannot set %s to default locale"
msgstr "Ðевозможно уÑтановить LC_ALL в локаль по умолчанию."
-#: locale/programs/locale.c:521
+#: locale/programs/locale.c:1096
#, c-format
-msgid "while preparing output"
-msgstr "при подготовке вывода"
+msgid "warning: The LOCPATH variable is set to \"%s\"\n"
+msgstr ""
-#: locale/programs/localedef.c:112
+#: locale/programs/localedef.c:116
msgid "Input Files:"
msgstr "Входные файлы:"
-#: locale/programs/localedef.c:114
+#: locale/programs/localedef.c:118
msgid "Symbolic character names defined in FILE"
msgstr "Символьные имена знаков объÑвлены в ФÐЙЛЕ"
-#: locale/programs/localedef.c:116
+#: locale/programs/localedef.c:120
msgid "Source definitions are found in FILE"
msgstr "ИÑходные Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð½Ð°Ñ…Ð¾Ð´ÑÑ‚ÑÑ Ð² ФÐЙЛЕ"
-#: locale/programs/localedef.c:118
+#: locale/programs/localedef.c:122
msgid "FILE contains mapping from symbolic names to UCS4 values"
msgstr "ФÐЙЛ Ñодержит Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð¸Ð· Ñимвольных имен в Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ UCS4"
-#: locale/programs/localedef.c:122
+#: locale/programs/localedef.c:126
msgid "Create output even if warning messages were issued"
msgstr "Создавать вывод, даже еÑли были предупреждениÑ"
-#: locale/programs/localedef.c:123
+#: locale/programs/localedef.c:128
+msgid "Do not create hard links between installed locales"
+msgstr "Ðе Ñоздавать жёÑткие ÑÑылки между уÑтановленными локалÑми"
+
+#: locale/programs/localedef.c:129
msgid "Optional output file prefix"
msgstr "ÐеобÑзательный Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ Ð´Ð»Ñ Ð²Ñ‹Ñ…Ð¾Ð´Ð½Ñ‹Ñ… файлов"
-#: locale/programs/localedef.c:124
+#: locale/programs/localedef.c:130
msgid "Strictly conform to POSIX"
msgstr "Строго Ñледовать POSIX"
-#: locale/programs/localedef.c:126
+#: locale/programs/localedef.c:132
msgid "Suppress warnings and information messages"
msgstr "Ðе выводить Ð¿Ñ€ÐµÐ´ÑƒÐ¿Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ð¸ информационные ÑообщениÑ"
-#: locale/programs/localedef.c:127
+#: locale/programs/localedef.c:133
msgid "Print more messages"
msgstr "Печатать больше Ñообщений"
-#: locale/programs/localedef.c:128 locale/programs/localedef.c:131
+#: locale/programs/localedef.c:134 locale/programs/localedef.c:137
msgid "<warnings>"
msgstr "<предупреждениÑ>"
-#: locale/programs/localedef.c:129
+#: locale/programs/localedef.c:135
msgid "Comma-separated list of warnings to disable; supported warnings are: ascii, intcurrsym"
msgstr "Разделенный запÑтыми ÑпиÑок отключённых предупреждений; поддерживаемые предупреждениÑ: ascii, intcurrsym"
-#: locale/programs/localedef.c:132
+#: locale/programs/localedef.c:138
msgid "Comma-separated list of warnings to enable; supported warnings are: ascii, intcurrsym"
msgstr "Разделенный запÑтыми ÑпиÑок включённых предупреждений; поддерживаемые предупреждениÑ: ascii, intcurrsym"
-#: locale/programs/localedef.c:135
+#: locale/programs/localedef.c:141
msgid "Archive control:"
msgstr "Управление архивом:"
-#: locale/programs/localedef.c:137
+#: locale/programs/localedef.c:143
msgid "Don't add new data to archive"
msgstr "Ðе добавлÑÑ‚ÑŒ в архив новые данные"
-#: locale/programs/localedef.c:139
+#: locale/programs/localedef.c:145
msgid "Add locales named by parameters to archive"
msgstr "Добавить в архив локали, указанные в параметрах"
-#: locale/programs/localedef.c:140
+#: locale/programs/localedef.c:146
msgid "Replace existing archive content"
msgstr "Заменить ÑущеÑтвующее Ñодержимое архива"
-#: locale/programs/localedef.c:142
+#: locale/programs/localedef.c:148
msgid "Remove locales named by parameters from archive"
msgstr "Удалить из архива локали, указанные в параметрах"
-#: locale/programs/localedef.c:143
+#: locale/programs/localedef.c:149
msgid "List content of archive"
msgstr "ПеречиÑлить Ñодержимое архива"
-#: locale/programs/localedef.c:145
+#: locale/programs/localedef.c:151
msgid "locale.alias file to consult when making archive"
msgstr "файл locale.alias, к которому Ñледует обращатьÑÑ Ð¿Ñ€Ð¸ Ñоздании архива"
-#: locale/programs/localedef.c:147
+#: locale/programs/localedef.c:153
msgid "Generate little-endian output"
msgstr "Генерировать вывод Ñ Ð¾Ð±Ñ€Ð°Ñ‚Ð½Ñ‹Ð¼ порÑдком байт (little endian)"
-#: locale/programs/localedef.c:149
+#: locale/programs/localedef.c:155
msgid "Generate big-endian output"
msgstr "Генерировать вывод Ñ Ð¿Ñ€Ñмым порÑдком байт (big endian)"
-#: locale/programs/localedef.c:154
+#: locale/programs/localedef.c:160
msgid "Compile locale specification"
msgstr "Компилирует Ñпецификацию локали"
-#: locale/programs/localedef.c:157
+#: locale/programs/localedef.c:163
msgid ""
"NAME\n"
"[--add-to-archive|--delete-from-archive] FILE...\n"
@@ -2735,31 +2729,31 @@ msgstr ""
"[--add-to-archive|--delete-from-archive] ФÐЙЛ…\n"
"--list-archive [ФÐЙЛ]"
-#: locale/programs/localedef.c:232
+#: locale/programs/localedef.c:238
#, c-format
msgid "cannot create directory for output files"
msgstr "невозможно Ñоздать каталог Ð´Ð»Ñ Ð²Ñ‹Ñ…Ð¾Ð´Ð½Ñ‹Ñ… файлов"
-#: locale/programs/localedef.c:243
+#: locale/programs/localedef.c:249
msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
msgstr "ФÐТÐЛЬÐÐЯ ОШИБКÐ: ÑиÑтема не определÑет «_POSIX2_LOCALEDEF»"
-#: locale/programs/localedef.c:257 locale/programs/localedef.c:273
-#: locale/programs/localedef.c:663 locale/programs/localedef.c:683
+#: locale/programs/localedef.c:263 locale/programs/localedef.c:279
+#: locale/programs/localedef.c:673 locale/programs/localedef.c:693
#, c-format
msgid "cannot open locale definition file `%s'"
msgstr "невозможно открыть файл Ñ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸ÐµÐ¼ локали «%s»"
-#: locale/programs/localedef.c:297
+#: locale/programs/localedef.c:303
#, c-format
msgid "cannot write output files to `%s'"
msgstr "невозможно запиÑать выходные файлы в «%s»"
-#: locale/programs/localedef.c:303
+#: locale/programs/localedef.c:309
msgid "no output file produced because errors were issued"
msgstr "выходной файл не Ñоздан, поÑкольку были ошибки"
-#: locale/programs/localedef.c:431
+#: locale/programs/localedef.c:441
#, c-format
msgid ""
"System's directory for character maps : %s\n"
@@ -2772,11 +2766,11 @@ msgstr ""
" путь локали : %s\n"
"%s"
-#: locale/programs/localedef.c:631
+#: locale/programs/localedef.c:641
msgid "circular dependencies between locale definitions"
msgstr "цикличеÑкие завиÑимоÑти между определениÑми локалей"
-#: locale/programs/localedef.c:637
+#: locale/programs/localedef.c:647
#, c-format
msgid "cannot add already read locale `%s' a second time"
msgstr "невозможно добавить уже Ñчитанную локаль «%s» второй раз"
@@ -2932,24 +2926,24 @@ msgstr "невозможно открыть выходной файл «%s» дÐ
msgid "failure while writing data for category `%s'"
msgstr "ошибка при запиÑи данных Ð´Ð»Ñ ÐºÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ð¸Â«%s»"
-#: locale/programs/locfile.c:917
+#: locale/programs/locfile.c:930
#, c-format
msgid "cannot create output file `%s' for category `%s'"
msgstr "невозможно Ñоздать выходной файл «%s» Ð´Ð»Ñ ÐºÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ð¸ «%s»"
-#: locale/programs/locfile.c:953
+#: locale/programs/locfile.c:966
msgid "expecting string argument for `copy'"
msgstr "Ð´Ð»Ñ Â«copy» ожидаетÑÑ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚-Ñтрока"
-#: locale/programs/locfile.c:957
+#: locale/programs/locfile.c:970
msgid "locale name should consist only of portable characters"
msgstr "Ð¸Ð¼Ñ Ð»Ð¾ÐºÐ°Ð»Ð¸ должно ÑоÑтоÑÑ‚ÑŒ только из переноÑимых знаков"
-#: locale/programs/locfile.c:976
+#: locale/programs/locfile.c:989
msgid "no other keyword shall be specified when `copy' is used"
msgstr "при иÑпользовании «copy» Ð½ÐµÐ»ÑŒÐ·Ñ Ð·Ð°Ð´Ð°Ð²Ð°Ñ‚ÑŒ другие ключевые Ñлова"
-#: locale/programs/locfile.c:990
+#: locale/programs/locfile.c:1003
#, c-format
msgid "`%1$s' definition does not end with `END %1$s'"
msgstr "определение «%1$s» не заканчиваетÑÑ Ð½Ð° «END %1$s»"
@@ -3784,12 +3778,12 @@ msgstr "yp_update: невозможно преобразовать узел в Ñ
msgid "yp_update: cannot get server address\n"
msgstr "yp_update: невозможно получить Ð°Ð´Ñ€ÐµÑ Ñервера\n"
-#: nscd/aicache.c:83 nscd/hstcache.c:452
+#: nscd/aicache.c:82 nscd/hstcache.c:452
#, c-format
msgid "Haven't found \"%s\" in hosts cache!"
msgstr "Ðе найдено «%s» в кÑше узлов!"
-#: nscd/aicache.c:85 nscd/hstcache.c:454
+#: nscd/aicache.c:84 nscd/hstcache.c:454
#, c-format
msgid "Reloading \"%s\" in hosts cache!"
msgstr "Перезагрузка «%s» в кÑше узлов!"
@@ -3954,10 +3948,9 @@ msgid "error getting caller's id: %s"
msgstr "ошибка при получении идентификатора вызывающей Ñтороны: %s"
#: nscd/connections.c:1349
-#, fuzzy, c-format
-#| msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode"
+#, c-format
msgid "cannot open /proc/self/cmdline: %m; disabling paranoia mode"
-msgstr "невозможно открыть /proc/self/cmdline: %s; параноидальный режим выключен"
+msgstr "невозможно открыть /proc/self/cmdline: %m; выключаем параноидальный режим"
#: nscd/connections.c:1372
#, c-format
@@ -4111,22 +4104,22 @@ msgstr "оÑвобождено %zu байт в кÑше %s"
msgid "no more memory for database '%s'"
msgstr "недоÑтаточно памÑти Ð´Ð»Ñ Ð±Ð°Ð·Ñ‹ данных «%s»"
-#: nscd/netgroupcache.c:121
+#: nscd/netgroupcache.c:122
#, c-format
msgid "Haven't found \"%s\" in netgroup cache!"
msgstr "Ðе найдено «%s» в кÑше netgroup!"
-#: nscd/netgroupcache.c:123
+#: nscd/netgroupcache.c:124
#, c-format
msgid "Reloading \"%s\" in netgroup cache!"
msgstr "Перезагрузка «%s» в кÑше netgroup!"
-#: nscd/netgroupcache.c:469
+#: nscd/netgroupcache.c:470
#, c-format
msgid "Haven't found \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr "Ðе найдено «%s (%s,%s,%s)» в кÑше netgroup!"
-#: nscd/netgroupcache.c:472
+#: nscd/netgroupcache.c:473
#, c-format
msgid "Reloading \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr "Перезагрузка «%s (%s,%s,%s)» в кÑше netgroup!"
@@ -4179,7 +4172,7 @@ msgstr "ИÑпользовать отдельный кÑш Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾
msgid "Name Service Cache Daemon."
msgstr "Демон кÑша Ñлужбы имен."
-#: nscd/nscd.c:155 nss/getent.c:967 nss/makedb.c:206
+#: nscd/nscd.c:155 nss/getent.c:987 nss/makedb.c:206
#, c-format
msgid "wrong number of arguments"
msgstr "Ðеправильное чиÑло аргументов"
@@ -4287,27 +4280,27 @@ msgstr "Ошибка разбора: %s"
msgid "Must specify user name for server-user option"
msgstr "Ðужно указать Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð´Ð»Ñ ÐºÐ»ÑŽÑ‡Ð° server-user"
-#: nscd/nscd_conf.c:198
+#: nscd/nscd_conf.c:201
#, c-format
msgid "Must specify user name for stat-user option"
msgstr "Ðужно указать Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð´Ð»Ñ ÐºÐ»ÑŽÑ‡Ð° stat-user"
-#: nscd/nscd_conf.c:255
+#: nscd/nscd_conf.c:259
#, c-format
msgid "Must specify value for restart-interval option"
msgstr "Ðужно указать значение Ð´Ð»Ñ ÐºÐ»ÑŽÑ‡Ð° restart-interval"
-#: nscd/nscd_conf.c:269
+#: nscd/nscd_conf.c:273
#, c-format
msgid "Unknown option: %s %s %s"
msgstr "ÐеизвеÑтный ключ: %s %s %s"
-#: nscd/nscd_conf.c:282
+#: nscd/nscd_conf.c:286
#, c-format
msgid "cannot get current working directory: %s; disabling paranoia mode"
msgstr "невозможно получить текущий рабочий каталог: %s; параноидальный режим выключен"
-#: nscd/nscd_conf.c:302
+#: nscd/nscd_conf.c:306
#, c-format
msgid "maximum file size for %s database too small"
msgstr "макÑимальный размер файла Ð´Ð»Ñ Ð±Ð°Ð·Ñ‹ данных %s Ñлишком мал"
@@ -4440,16 +4433,14 @@ msgstr ""
"%15s отÑлеживаютÑÑ Ð»Ð¸ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ /etc/%s \n"
#: nscd/pwdcache.c:407
-#, fuzzy, c-format
-#| msgid "Haven't found \"%s\" in hosts cache!"
+#, c-format
msgid "Haven't found \"%s\" in user database cache!"
-msgstr "Ðе найдено «%s» в кÑше узлов!"
+msgstr "Ðе найдено «%s» в кÑше базы данных пользователей!"
#: nscd/pwdcache.c:409
-#, fuzzy, c-format
-#| msgid "Reloading \"%s\" in hosts cache!"
+#, c-format
msgid "Reloading \"%s\" in user database cache!"
-msgstr "Перезагрузка «%s» в кÑше узлов!"
+msgstr "Перезагрузка «%s» в кÑше базы данных пользователей!"
#: nscd/pwdcache.c:471
#, c-format
@@ -4571,47 +4562,46 @@ msgstr "Ðе найдено «%s» в кÑше ÑервиÑов!"
msgid "Reloading \"%s\" in services cache!"
msgstr "Перезагрузка «%s» в кÑше ÑервиÑов!"
-#: nss/getent.c:54
+#: nss/getent.c:55
msgid "database [key ...]"
msgstr "база-данных [ключ …]"
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "CONFIG"
msgstr "КОÐФИГУРÐЦИЯ"
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "Service configuration to be used"
msgstr "ИÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÐµÐ¼Ð°Ñ ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ñлужбы"
-#: nss/getent.c:60
+#: nss/getent.c:61
msgid "disable IDN encoding"
msgstr "выключить кодирование IDN"
-#: nss/getent.c:65
+#: nss/getent.c:66
msgid "Get entries from administrative database."
msgstr "Получить запиÑи из управлÑющей базы данных."
-#: nss/getent.c:149 nss/getent.c:442 nss/getent.c:489
+#: nss/getent.c:150 nss/getent.c:462 nss/getent.c:509
#, c-format
msgid "Enumeration not supported on %s\n"
msgstr "ПеречиÑление не поддерживаетÑÑ Ð´Ð»Ñ %s\n"
-#: nss/getent.c:497 nss/getent.c:510
-#, fuzzy, c-format
-#| msgid "Could not create log file"
+#: nss/getent.c:517 nss/getent.c:530
+#, c-format
msgid "Could not allocate group list: %m\n"
-msgstr "Ðе удалоÑÑŒ Ñоздать файл протокола"
+msgstr "Ðе удалоÑÑŒ выделить ÑпиÑок групп: %m\n"
-#: nss/getent.c:881
+#: nss/getent.c:901
#, c-format
msgid "Unknown database name"
msgstr "ÐеизвеÑтное Ð¸Ð¼Ñ Ð±Ð°Ð·Ñ‹ данных"
-#: nss/getent.c:911
+#: nss/getent.c:931
msgid "Supported databases:\n"
msgstr "Поддерживаемые базы данных:\n"
-#: nss/getent.c:977
+#: nss/getent.c:997
#, c-format
msgid "Unknown database: %s\n"
msgstr "ÐеизвеÑÑ‚Ð½Ð°Ñ Ð±Ð°Ð·Ð° данных: %s\n"
@@ -4827,10 +4817,8 @@ msgid "Invalid back reference"
msgstr "ÐÐµÐ²ÐµÑ€Ð½Ð°Ñ ÑÑылка назад"
#: posix/regcomp.c:156
-#, fuzzy
-#| msgid "Unmatched [ or [^"
msgid "Unmatched [, [^, [:, [., or [="
-msgstr "ÐÐµÐ¿Ð°Ñ€Ð½Ð°Ñ [ или [^"
+msgstr "ÐÐµÐ¿Ð°Ñ€Ð½Ð°Ñ [, [^, [:, [. или [="
#: posix/regcomp.c:159
msgid "Unmatched ( or \\("
@@ -4868,11 +4856,11 @@ msgstr "РегулÑрное выражение Ñлишком велико"
msgid "Unmatched ) or \\)"
msgstr "ÐÐµÐ¿Ð°Ñ€Ð½Ð°Ñ ) или \\)"
-#: posix/regcomp.c:689
+#: posix/regcomp.c:676
msgid "No previous regular expression"
msgstr "Ðет предшеÑтвующего регулÑрного выражениÑ"
-#: posix/wordexp.c:1815
+#: posix/wordexp.c:1816
msgid "parameter null or not set"
msgstr "параметр пуÑÑ‚ или не задан"
@@ -5057,7 +5045,7 @@ msgstr "ДоÑтупны выходные буферы"
msgid "Input message available"
msgstr "ДоÑтупно входное Ñообщение"
-#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:381 timezone/zic.c:520
+#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:375 timezone/zic.c:561
msgid "I/O error"
msgstr "Ошибка ввода/вывода"
@@ -5140,7 +5128,7 @@ msgstr "ÐеизвеÑтный Ñигнал %d"
#: sunrpc/auth_unix.c:112 sunrpc/clnt_tcp.c:124 sunrpc/clnt_udp.c:139
#: sunrpc/clnt_unix.c:125 sunrpc/svc_tcp.c:189 sunrpc/svc_tcp.c:233
#: sunrpc/svc_udp.c:161 sunrpc/svc_unix.c:189 sunrpc/svc_unix.c:229
-#: sunrpc/xdr.c:628 sunrpc/xdr.c:788 sunrpc/xdr_array.c:102
+#: sunrpc/xdr.c:631 sunrpc/xdr.c:791 sunrpc/xdr_array.c:102
#: sunrpc/xdr_rec.c:153 sunrpc/xdr_ref.c:79
msgid "out of memory\n"
msgstr "недоÑтаточно памÑти\n"
@@ -6392,56 +6380,69 @@ msgid "You really blew it this time"
msgstr "Ðа Ñтот раз вы вÑех опрокинули"
#. TRANS Go home and have a glass of warm, dairy-fresh milk.
-#: sysdeps/gnu/errlist.c:978
+#. TRANS @c Okay. Since you are dying to know, I'll tell you.
+#. TRANS @c This is a joke, obviously. There is a children's song which begins,
+#. TRANS @c "Old McDonald had a farm, e-i-e-i-o." Every time I see the (real)
+#. TRANS @c errno macro EIO, I think about that song. Probably most of my
+#. TRANS @c compatriots who program on Unix do, too. One of them must have stayed
+#. TRANS @c up a little too late one night and decided to add it to Hurd or Glibc.
+#. TRANS @c Whoever did it should be castigated, but it made me laugh.
+#. TRANS @c --jtobey@channel1.com
+#. TRANS @c
+#. TRANS @c "bought the farm" means "died". -jtobey
+#. TRANS @c
+#. TRANS @c Translators, please do not translate this litteraly, translate it into
+#. TRANS @c an idiomatic funny way of saying that the computer died.
+#: sysdeps/gnu/errlist.c:991
msgid "Computer bought the farm"
msgstr "Компьютер отброÑил копыта"
#. TRANS This error code has no purpose.
-#: sysdeps/gnu/errlist.c:987
+#: sysdeps/gnu/errlist.c:1000
msgid "Gratuitous error"
msgstr "Ð‘ÐµÐ·Ð²Ð¾Ð·Ð¼ÐµÐ·Ð´Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°"
-#: sysdeps/gnu/errlist.c:995
+#: sysdeps/gnu/errlist.c:1008
msgid "Bad message"
msgstr "Ðеправильное Ñообщение"
-#: sysdeps/gnu/errlist.c:1003
+#: sysdeps/gnu/errlist.c:1016
msgid "Identifier removed"
msgstr "Идентификатор был удален"
-#: sysdeps/gnu/errlist.c:1011
+#: sysdeps/gnu/errlist.c:1024
msgid "Multihop attempted"
msgstr "Попытка Multihop"
-#: sysdeps/gnu/errlist.c:1019
+#: sysdeps/gnu/errlist.c:1032
msgid "No data available"
msgstr "Ðет доÑтупных данных"
-#: sysdeps/gnu/errlist.c:1027
+#: sysdeps/gnu/errlist.c:1040
msgid "Link has been severed"
msgstr "Соединение было разорвано"
-#: sysdeps/gnu/errlist.c:1035
+#: sysdeps/gnu/errlist.c:1048
msgid "No message of desired type"
msgstr "Ðет ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¶ÐµÐ»Ð°ÐµÐ¼Ð¾Ð³Ð¾ типа"
-#: sysdeps/gnu/errlist.c:1043
+#: sysdeps/gnu/errlist.c:1056
msgid "Out of streams resources"
msgstr "ÐедоÑтаточно потоковых реÑурÑов"
-#: sysdeps/gnu/errlist.c:1051
+#: sysdeps/gnu/errlist.c:1064
msgid "Device not a stream"
msgstr "УÑтройÑтво не ÑвлÑетÑÑ Ð¿Ð¾Ñ‚Ð¾ÐºÐ¾Ð¼"
-#: sysdeps/gnu/errlist.c:1059
+#: sysdeps/gnu/errlist.c:1072
msgid "Value too large for defined data type"
msgstr "Значение Ñлишком велико Ð´Ð»Ñ Ñ‚Ð°ÐºÐ¾Ð³Ð¾ типа данных"
-#: sysdeps/gnu/errlist.c:1067
+#: sysdeps/gnu/errlist.c:1080
msgid "Protocol error"
msgstr "Ошибка протокола"
-#: sysdeps/gnu/errlist.c:1075
+#: sysdeps/gnu/errlist.c:1088
msgid "Timer expired"
msgstr "Таймер иÑтек"
@@ -6449,195 +6450,195 @@ msgstr "Таймер иÑтек"
#. TRANS completed. @xref{Asynchronous I/O}. When you call @code{aio_cancel},
#. TRANS the normal result is for the operations affected to complete with this
#. TRANS error; @pxref{Cancel AIO Operations}.
-#: sysdeps/gnu/errlist.c:1087
+#: sysdeps/gnu/errlist.c:1100
msgid "Operation canceled"
msgstr "ÐžÐ¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð¾Ñ‚Ð¼ÐµÐ½ÐµÐ½Ð°"
-#: sysdeps/gnu/errlist.c:1095
+#: sysdeps/gnu/errlist.c:1108
msgid "Owner died"
msgstr "Владелец умер"
-#: sysdeps/gnu/errlist.c:1103
+#: sysdeps/gnu/errlist.c:1116
msgid "State not recoverable"
msgstr "СоÑтоÑние Ð½ÐµÐ»ÑŒÐ·Ñ Ð²Ð¾ÑÑтановить"
-#: sysdeps/gnu/errlist.c:1111
+#: sysdeps/gnu/errlist.c:1124
msgid "Interrupted system call should be restarted"
msgstr "Прерванный ÑиÑтемный вызов Ñледует перезапуÑтить"
-#: sysdeps/gnu/errlist.c:1119
+#: sysdeps/gnu/errlist.c:1132
msgid "Channel number out of range"
msgstr "Ðомер канала вне диапазона"
-#: sysdeps/gnu/errlist.c:1127
+#: sysdeps/gnu/errlist.c:1140
msgid "Level 2 not synchronized"
msgstr "Уровень 2 не Ñинхронизирован"
-#: sysdeps/gnu/errlist.c:1135
+#: sysdeps/gnu/errlist.c:1148
msgid "Level 3 halted"
msgstr "Уровень 3 оÑтановлен"
-#: sysdeps/gnu/errlist.c:1143
+#: sysdeps/gnu/errlist.c:1156
msgid "Level 3 reset"
msgstr "Уровень 3 Ñброшен"
-#: sysdeps/gnu/errlist.c:1151
+#: sysdeps/gnu/errlist.c:1164
msgid "Link number out of range"
msgstr "ЧиÑло ÑÑылок вне допуÑтимого диапазона"
-#: sysdeps/gnu/errlist.c:1159
+#: sysdeps/gnu/errlist.c:1172
msgid "Protocol driver not attached"
msgstr "Драйвер протокола не подÑоединен"
-#: sysdeps/gnu/errlist.c:1167
+#: sysdeps/gnu/errlist.c:1180
msgid "No CSI structure available"
msgstr "Ðет доÑтупной CSI-Ñтруктуры"
-#: sysdeps/gnu/errlist.c:1175
+#: sysdeps/gnu/errlist.c:1188
msgid "Level 2 halted"
msgstr "Уровень 2 оÑтановлен"
-#: sysdeps/gnu/errlist.c:1183
+#: sysdeps/gnu/errlist.c:1196
msgid "Invalid exchange"
msgstr "Ðекорректный обмен"
-#: sysdeps/gnu/errlist.c:1191
+#: sysdeps/gnu/errlist.c:1204
msgid "Invalid request descriptor"
msgstr "Ðеверный деÑкриптор запроÑа"
-#: sysdeps/gnu/errlist.c:1199
+#: sysdeps/gnu/errlist.c:1212
msgid "Exchange full"
msgstr "Обмен полный"
-#: sysdeps/gnu/errlist.c:1207
+#: sysdeps/gnu/errlist.c:1220
msgid "No anode"
msgstr "Ðет anode"
-#: sysdeps/gnu/errlist.c:1215
+#: sysdeps/gnu/errlist.c:1228
msgid "Invalid request code"
msgstr "Ðеверный код запроÑа"
-#: sysdeps/gnu/errlist.c:1223
+#: sysdeps/gnu/errlist.c:1236
msgid "Invalid slot"
msgstr "Ðекорректный Ñлот"
-#: sysdeps/gnu/errlist.c:1231
+#: sysdeps/gnu/errlist.c:1244
msgid "File locking deadlock error"
msgstr "Ошибка: тупик при блокировке файла"
-#: sysdeps/gnu/errlist.c:1239
+#: sysdeps/gnu/errlist.c:1252
msgid "Bad font file format"
msgstr "Ðеверный формат файла Ñо шрифтом"
-#: sysdeps/gnu/errlist.c:1247
+#: sysdeps/gnu/errlist.c:1260
msgid "Machine is not on the network"
msgstr "Машина не в Ñети"
-#: sysdeps/gnu/errlist.c:1255
+#: sysdeps/gnu/errlist.c:1268
msgid "Package not installed"
msgstr "Пакет не уÑтановлен"
-#: sysdeps/gnu/errlist.c:1263
+#: sysdeps/gnu/errlist.c:1276
msgid "Advertise error"
msgstr "Ошибка объÑвлениÑ"
-#: sysdeps/gnu/errlist.c:1271
+#: sysdeps/gnu/errlist.c:1284
msgid "Srmount error"
msgstr "Ошибка Srmount"
-#: sysdeps/gnu/errlist.c:1279
+#: sysdeps/gnu/errlist.c:1292
msgid "Communication error on send"
msgstr "Ошибка ÑвÑзи при отправке"
-#: sysdeps/gnu/errlist.c:1287
+#: sysdeps/gnu/errlist.c:1300
msgid "RFS specific error"
msgstr "Ð¡Ð¿ÐµÑ†Ð¸Ñ„Ð¸Ñ‡Ð½Ð°Ñ Ð´Ð»Ñ RFS ошибка"
-#: sysdeps/gnu/errlist.c:1295
+#: sysdeps/gnu/errlist.c:1308
msgid "Name not unique on network"
msgstr "Ð˜Ð¼Ñ Ð½Ðµ уникально в Ñети"
-#: sysdeps/gnu/errlist.c:1303
+#: sysdeps/gnu/errlist.c:1316
msgid "File descriptor in bad state"
msgstr "ДеÑкриптор файла в плохом ÑоÑтоÑнии"
-#: sysdeps/gnu/errlist.c:1311
+#: sysdeps/gnu/errlist.c:1324
msgid "Remote address changed"
msgstr "Удаленный Ð°Ð´Ñ€ÐµÑ Ð±Ñ‹Ð» изменен"
-#: sysdeps/gnu/errlist.c:1319
+#: sysdeps/gnu/errlist.c:1332
msgid "Can not access a needed shared library"
msgstr "Ðевозможно получить доÑтуп к нужной разделÑемой библиотеке"
-#: sysdeps/gnu/errlist.c:1327
+#: sysdeps/gnu/errlist.c:1340
msgid "Accessing a corrupted shared library"
msgstr "Обращение к поврежденной разделÑемой библиотеке"
-#: sysdeps/gnu/errlist.c:1335
+#: sysdeps/gnu/errlist.c:1348
msgid ".lib section in a.out corrupted"
msgstr "Ð¡ÐµÐºÑ†Ð¸Ñ .lib в a.out повреждена"
-#: sysdeps/gnu/errlist.c:1343
+#: sysdeps/gnu/errlist.c:1356
msgid "Attempting to link in too many shared libraries"
msgstr "Попытка подключить Ñлишком много разделÑемый библиотек"
-#: sysdeps/gnu/errlist.c:1351
+#: sysdeps/gnu/errlist.c:1364
msgid "Cannot exec a shared library directly"
msgstr "Ðевозможно непоÑредÑтвенно выполнить разделÑемую библиотеку"
-#: sysdeps/gnu/errlist.c:1359
+#: sysdeps/gnu/errlist.c:1372
msgid "Streams pipe error"
msgstr "Ошибка потоков канала"
-#: sysdeps/gnu/errlist.c:1367
+#: sysdeps/gnu/errlist.c:1380
msgid "Structure needs cleaning"
msgstr "Структуру необходимо почиÑтить"
-#: sysdeps/gnu/errlist.c:1375
+#: sysdeps/gnu/errlist.c:1388
msgid "Not a XENIX named type file"
msgstr "Ðе ÑвлÑетÑÑ Ñ„Ð°Ð¹Ð»Ð¾Ð¼ именованного типа XENIX"
-#: sysdeps/gnu/errlist.c:1383
+#: sysdeps/gnu/errlist.c:1396
msgid "No XENIX semaphores available"
msgstr "Семафоры XENIX недоÑтупны"
-#: sysdeps/gnu/errlist.c:1391
+#: sysdeps/gnu/errlist.c:1404
msgid "Is a named type file"
msgstr "ЯвлÑетÑÑ Ñ„Ð°Ð¹Ð»Ð¾Ð¼ именованного типа"
-#: sysdeps/gnu/errlist.c:1399
+#: sysdeps/gnu/errlist.c:1412
msgid "Remote I/O error"
msgstr "Ошибка удаленного ввода/вывода"
-#: sysdeps/gnu/errlist.c:1407
+#: sysdeps/gnu/errlist.c:1420
msgid "No medium found"
msgstr "ÐоÑитель не найден"
-#: sysdeps/gnu/errlist.c:1415
+#: sysdeps/gnu/errlist.c:1428
msgid "Wrong medium type"
msgstr "Ðеправильный тип ноÑителÑ"
-#: sysdeps/gnu/errlist.c:1423
+#: sysdeps/gnu/errlist.c:1436
msgid "Required key not available"
msgstr "Требуемый ключ недоÑтупен"
-#: sysdeps/gnu/errlist.c:1431
+#: sysdeps/gnu/errlist.c:1444
msgid "Key has expired"
msgstr "Ð’Ñ€ÐµÐ¼Ñ Ð¶Ð¸Ð·Ð½Ð¸ ключа иÑтекло"
-#: sysdeps/gnu/errlist.c:1439
+#: sysdeps/gnu/errlist.c:1452
msgid "Key has been revoked"
msgstr "Ключ был отозван"
-#: sysdeps/gnu/errlist.c:1447
+#: sysdeps/gnu/errlist.c:1460
msgid "Key was rejected by service"
msgstr "Ключ был отвергнут Ñлужбой"
-#: sysdeps/gnu/errlist.c:1455
+#: sysdeps/gnu/errlist.c:1468
msgid "Operation not possible due to RF-kill"
msgstr "ÐžÐ¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð½Ðµ позволÑетÑÑ Ð¸Ð·-за RF-kill"
-#: sysdeps/gnu/errlist.c:1463
+#: sysdeps/gnu/errlist.c:1476
msgid "Memory page has hardware error"
msgstr "Ð’ Ñтранице памÑти Ð°Ð¿Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°"
@@ -6744,49 +6745,45 @@ msgstr "невозможно Ñчитать заголовок из «%s»"
#: sysdeps/x86/dl-cet.c:202
msgid "mprotect legacy bitmap failed"
-msgstr ""
+msgstr "ошибка mprotect при работе Ñ ÑƒÑтаревшим битовым маÑÑивом"
#: sysdeps/x86/dl-cet.c:217
-#, fuzzy
-#| msgid "Data input available"
msgid "legacy bitmap isn't available"
-msgstr "ДоÑтупны входные данные"
+msgstr "уÑтаревший битовый маÑÑив недоÑтупен"
#: sysdeps/x86/dl-cet.c:247
-#, fuzzy
-#| msgid "failed to start conversion processing"
msgid "failed to mark legacy code region"
-msgstr "не удалоÑÑŒ начать преобразование"
+msgstr "ошибка при маркировке облаÑти уÑтаревшего кода"
#: sysdeps/x86/dl-cet.c:269
msgid "shadow stack isn't enabled"
-msgstr ""
+msgstr "теневой Ñтек не включен"
#: sysdeps/x86/dl-cet.c:290
msgid "can't disable CET"
-msgstr ""
+msgstr "невозможно выключить CET"
-#: timezone/zdump.c:338
+#: timezone/zdump.c:332
msgid "has fewer than 3 characters"
msgstr "Ñодержит менее 3 Ñимволов"
-#: timezone/zdump.c:340
+#: timezone/zdump.c:334
msgid "has more than 6 characters"
msgstr "Ñодержит более 6 Ñимволов"
-#: timezone/zdump.c:342
+#: timezone/zdump.c:336
msgid "has characters other than ASCII alphanumerics, '-' or '+'"
msgstr "Ñодержит Ñимволы помимо буквенно-цифровых ASCII, «-» или «+»"
-#: timezone/zdump.c:347
+#: timezone/zdump.c:341
#, c-format
msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n"
msgstr "%s: предупреждение: зона «%s» Ñокращение «%s» %s\n"
-#: timezone/zdump.c:393
+#: timezone/zdump.c:387
#, c-format
msgid ""
-"%s: usage: %s OPTIONS ZONENAME ...\n"
+"%s: usage: %s OPTIONS TIMEZONE ...\n"
"Options include:\n"
" -c [L,]U Start at year L (default -500), end before year U (default 2500)\n"
" -t [L,]U Start at time L, end before time U (in seconds since 1970)\n"
@@ -6798,7 +6795,7 @@ msgid ""
"\n"
"Report bugs to %s.\n"
msgstr ""
-"%s: иÑпользование: %s ПÐРÐМЕТРЫ ИМЯ_ЗОÐЫ …\n"
+"%s: иÑпользование: %s ПÐРÐМЕТРЫ ЧÐСОВОЙ_ПОЯС …\n"
"Параметры:\n"
" -c [L,]U Ð½Ð°Ñ‡Ð¸Ð½Ð°Ñ Ñ Ð³Ð¾Ð´Ð° L (по умолчанию -500) по U (по умолчанию 2500)\n"
" -t [L,]U Ð½Ð°Ñ‡Ð¸Ð½Ð°Ñ Ñ Ð²Ñ€ÐµÐ¼ÐµÐ½Ð¸ L по U (в Ñекундах Ð½Ð°Ñ‡Ð¸Ð½Ð°Ñ Ñ 1970)\n"
@@ -6810,439 +6807,478 @@ msgstr ""
"\n"
"Ð¡Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¾Ð± ошибках отправлÑйте по адреÑу %s.\n"
-#: timezone/zdump.c:479
+#: timezone/zdump.c:473
#, c-format
msgid "%s: wild -c argument %s\n"
msgstr "%s: не обработан аргумент -c, %s\n"
-#: timezone/zdump.c:512
+#: timezone/zdump.c:506
#, c-format
msgid "%s: wild -t argument %s\n"
msgstr "%s: не обработан аргумент -t, %s\n"
-#: timezone/zic.c:398
+#: timezone/zic.c:429
#, c-format
msgid "%s: Memory exhausted: %s\n"
msgstr "%s: ПамÑÑ‚ÑŒ иÑчерпана: %s\n"
-#: timezone/zic.c:406
+#: timezone/zic.c:437
msgid "size overflow"
msgstr "переполнение размера"
-#: timezone/zic.c:454
+#: timezone/zic.c:447
+msgid "alignment overflow"
+msgstr "переполнение выравниваниÑ"
+
+#: timezone/zic.c:495
msgid "integer overflow"
msgstr "целочиÑленное переполнение"
-#: timezone/zic.c:488
+#: timezone/zic.c:529
#, c-format
msgid "\"%s\", line %<PRIdMAX>: "
msgstr "«%s», Ñтрока %<PRIdMAX>: "
-#: timezone/zic.c:491
+#: timezone/zic.c:532
#, c-format
msgid " (rule from \"%s\", line %<PRIdMAX>)"
msgstr " (правило из «%s», Ñтрока %<PRIdMAX>)"
-#: timezone/zic.c:510
+#: timezone/zic.c:551
#, c-format
msgid "warning: "
msgstr "предупреждение: "
-#: timezone/zic.c:535
+#: timezone/zic.c:576
#, c-format
msgid ""
"%s: usage is %s [ --version ] [ --help ] [ -v ] \\\n"
"\t[ -l localtime ] [ -p posixrules ] [ -d directory ] \\\n"
-"\t[ -L leapseconds ] [ filename ... ]\n"
+"\t[ -t localtime-link ] [ -L leapseconds ] [ filename ... ]\n"
"\n"
"Report bugs to %s.\n"
msgstr ""
"%s: иÑпользование: %s [ --version ] [ --help ] [ -v ] \\\n"
"\t[ -l меÑтное_Ð²Ñ€ÐµÐ¼Ñ ] [ -p правила_posix ] [ -d каталог ] \\\n"
-"\t[ -L виÑокоÑ_Ñек. ] [ имÑ_файла … ]\n"
+"\t[ -t ÑÑылка-localtime ] [ -L виÑокоÑ_Ñек. ] [ имÑ_файла … ]\n"
"\n"
"Ð¡Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¾Ð± ошибках отправлÑйте на %s.\n"
-#: timezone/zic.c:558
+#: timezone/zic.c:599
#, c-format
msgid "%s: Can't chdir to %s: %s\n"
msgstr "%s: Ðевозможно выполнить chdir в %s: %s\n"
-#: timezone/zic.c:590
+#: timezone/zic.c:632
msgid "wild compilation-time specification of zic_t"
msgstr "Ð¿Ð»Ð¾Ñ…Ð°Ñ ÑÐ¿ÐµÑ†Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð¿Ñ€Ð¸ компилÑции Ð´Ð»Ñ zic_t"
-#: timezone/zic.c:610
+#: timezone/zic.c:652
#, c-format
msgid "%s: More than one -d option specified\n"
msgstr "%s: Задано более одного ключа -d\n"
-#: timezone/zic.c:620
+#: timezone/zic.c:662
#, c-format
msgid "%s: More than one -l option specified\n"
msgstr "%s: Задано более одного ключа -l\n"
-#: timezone/zic.c:630
+#: timezone/zic.c:672
#, c-format
msgid "%s: More than one -p option specified\n"
msgstr "%s: Задано более одного ключа -p\n"
-#: timezone/zic.c:640
+#: timezone/zic.c:680
+#, c-format
+msgid "%s: More than one -t option specified\n"
+msgstr "%s: Задано более одного ключа -t\n"
+
+#: timezone/zic.c:689
+msgid "-y is obsolescent"
+msgstr "-y уÑтарел"
+
+#: timezone/zic.c:693
#, c-format
msgid "%s: More than one -y option specified\n"
msgstr "%s: Задано более одного ключа -y\n"
-#: timezone/zic.c:650
+#: timezone/zic.c:703
#, c-format
msgid "%s: More than one -L option specified\n"
msgstr "%s: Задано более одного ключа -L\n"
-#: timezone/zic.c:659
+#: timezone/zic.c:712
msgid "-s ignored"
msgstr "-s игнорировать"
-#: timezone/zic.c:698
+#: timezone/zic.c:753
msgid "link to link"
msgstr "ÑÑылка на ÑÑылку"
-#: timezone/zic.c:701 timezone/zic.c:705
+#: timezone/zic.c:756 timezone/zic.c:760
msgid "command line"
msgstr "ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð°Ñ Ñтрока"
-#: timezone/zic.c:721
+#: timezone/zic.c:776
msgid "empty file name"
msgstr "пуÑтое Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°"
-#: timezone/zic.c:724
+#: timezone/zic.c:779
#, c-format
msgid "file name '%s' begins with '/'"
msgstr "Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° «%s» начинаетÑÑ Ñ Â«/»"
-#: timezone/zic.c:734
+#: timezone/zic.c:789
#, c-format
msgid "file name '%s' contains '%.*s' component"
msgstr "Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° «%s» Ñодержит компонент «%.*s»"
-#: timezone/zic.c:740
+#: timezone/zic.c:795
#, c-format
msgid "file name '%s' component contains leading '-'"
msgstr "компонент имени файла «%s» начинаетÑÑ Ñ Â«-»"
-#: timezone/zic.c:743
+#: timezone/zic.c:798
#, c-format
msgid "file name '%s' contains overlength component '%.*s...'"
msgstr "Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° «%s» Ñодержит Ñлишком длинный компонент «%.*s...»"
-#: timezone/zic.c:771
+#: timezone/zic.c:826
#, c-format
msgid "file name '%s' contains byte '%c'"
msgstr "Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° «%s» Ñодержит байт «%c»"
-#: timezone/zic.c:772
+#: timezone/zic.c:827
#, c-format
msgid "file name '%s' contains byte '\\%o'"
msgstr "Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° «\\%s» Ñодержит байт «\\%o»"
-#: timezone/zic.c:842
+#: timezone/zic.c:897
#, c-format
msgid "%s: link from %s/%s failed: %s\n"
msgstr "%s: ошибки при ÑÑылке из %s/%s: %s\n"
-#: timezone/zic.c:852 timezone/zic.c:1815
+#: timezone/zic.c:907 timezone/zic.c:1876
#, c-format
msgid "%s: Can't remove %s/%s: %s\n"
msgstr "%s: Ðевозможно удалить %s/%s: %s\n"
-#: timezone/zic.c:874
+#: timezone/zic.c:931
#, c-format
msgid "symbolic link used because hard link failed: %s"
msgstr "иÑпользуетÑÑ ÑÐ¸Ð¼Ð²Ð¾Ð»ÑŒÐ½Ð°Ñ ÑÑылка, так как жёÑÑ‚ÐºÐ°Ñ ÑÑылка привела к ошибке: %s"
-#: timezone/zic.c:882
+#: timezone/zic.c:939
#, c-format
msgid "%s: Can't read %s/%s: %s\n"
msgstr "%s: Ðевозможно прочитать %s/%s: %s\n"
-#: timezone/zic.c:889 timezone/zic.c:1828
+#: timezone/zic.c:946 timezone/zic.c:1889
#, c-format
msgid "%s: Can't create %s/%s: %s\n"
msgstr "%s: Ðевозможно Ñоздать %s/%s: %s\n"
-#: timezone/zic.c:898
+#: timezone/zic.c:955
#, c-format
msgid "copy used because hard link failed: %s"
msgstr "иÑпользуетÑÑ ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ðµ, так как жёÑÑ‚ÐºÐ°Ñ ÑÑылка привела к ошибке: %s"
-#: timezone/zic.c:901
+#: timezone/zic.c:958
#, c-format
msgid "copy used because symbolic link failed: %s"
msgstr "иÑпользуетÑÑ ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ðµ, так как ÑÐ¸Ð¼Ð²Ð¾Ð»ÑŒÐ½Ð°Ñ ÑÑылка привела к ошибке: %s"
-#: timezone/zic.c:1013 timezone/zic.c:1015
+#: timezone/zic.c:1032 timezone/zic.c:1034
msgid "same rule name in multiple files"
msgstr "одинаковое Ð¸Ð¼Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð° в неÑкольких файлах"
-#: timezone/zic.c:1056
-msgid "unruly zone"
-msgstr "не подчинÑющаÑÑÑ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð°Ð¼ зона"
-
-#: timezone/zic.c:1063
+#: timezone/zic.c:1081
#, c-format
msgid "%s in ruleless zone"
msgstr "%s в зоне без правил"
-#: timezone/zic.c:1083
+#: timezone/zic.c:1101
msgid "standard input"
msgstr "Ñтандартный ввод"
-#: timezone/zic.c:1088
+#: timezone/zic.c:1106
#, c-format
msgid "%s: Can't open %s: %s\n"
msgstr "%s: Ðевозможно открыть %s: %s\n"
-#: timezone/zic.c:1099
+#: timezone/zic.c:1117
msgid "line too long"
msgstr "Ñтрока Ñлишком длиннаÑ"
-#: timezone/zic.c:1119
+#: timezone/zic.c:1139
msgid "input line of unknown type"
msgstr "Ð²Ñ…Ð¾Ð´Ð½Ð°Ñ Ñтрока неизвеÑтного типа"
-#: timezone/zic.c:1134
-#, c-format
-msgid "%s: Leap line in non leap seconds file %s"
-msgstr "%s: ВиÑокоÑÐ½Ð°Ñ Ñтрока не в файле виÑокоÑных Ñекунд %s"
-
-#: timezone/zic.c:1142 timezone/zic.c:1547 timezone/zic.c:1569
+#: timezone/zic.c:1158 timezone/zic.c:1593 timezone/zic.c:1615
#, c-format
msgid "%s: panic: Invalid l_value %d\n"
msgstr "%s: паника: ÐедопуÑтимое l_value %d\n"
-#: timezone/zic.c:1151
+#: timezone/zic.c:1167
msgid "expected continuation line not found"
msgstr "Ð¾Ð¶Ð¸Ð´Ð°ÐµÐ¼Ð°Ñ Ñтрока Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ Ð½Ðµ найдена"
-#: timezone/zic.c:1193 timezone/zic.c:2976
+#: timezone/zic.c:1203
+msgid "fractional seconds rejected by pre-2018 versions of zic"
+msgstr "дробные Ñекунды не поддерживаютÑÑ zic до верÑии pre-2018"
+
+#: timezone/zic.c:1221 timezone/zic.c:3078
msgid "time overflow"
msgstr "переполнение времени"
-#: timezone/zic.c:1198
+#: timezone/zic.c:1227
msgid "values over 24 hours not handled by pre-2007 versions of zic"
msgstr "Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð±Ð¾Ð»ÑŒÑˆÐµ 24 чаÑов не поддерживаетÑÑ Ð²ÐµÑ€ÑиÑми zic Ñтарше 2007 года"
-#: timezone/zic.c:1209
+#: timezone/zic.c:1245
+msgid "invalid saved time"
+msgstr "неверное Ñохраненное времÑ"
+
+#: timezone/zic.c:1256
msgid "wrong number of fields on Rule line"
msgstr "неправильное чиÑло полей в Ñтроке Rule"
-#: timezone/zic.c:1213
-msgid "nameless rule"
-msgstr "безымÑнное правило"
-
-#: timezone/zic.c:1218
-msgid "invalid saved time"
-msgstr "неверное Ñохраненное времÑ"
+#: timezone/zic.c:1265
+#, c-format
+msgid "Invalid rule name \"%s\""
+msgstr "Ðеверное Ð¸Ð¼Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð° «%s»"
-#: timezone/zic.c:1235
+#: timezone/zic.c:1287
msgid "wrong number of fields on Zone line"
msgstr "неверное чиÑло полей в Ñтроке Zone"
-#: timezone/zic.c:1240
+#: timezone/zic.c:1292
#, c-format
msgid "\"Zone %s\" line and -l option are mutually exclusive"
msgstr "Ñтрока «Zone %s» и ключ -l взаимно иÑключаютÑÑ"
-#: timezone/zic.c:1246
+#: timezone/zic.c:1298
#, c-format
msgid "\"Zone %s\" line and -p option are mutually exclusive"
msgstr "Ñтрока «Zone %s» и ключ -p взаимно иÑключаютÑÑ"
-#: timezone/zic.c:1253
+#: timezone/zic.c:1305
#, c-format
msgid "duplicate zone name %s (file \"%s\", line %<PRIdMAX>)"
msgstr "повторное Ð¸Ð¼Ñ Ð·Ð¾Ð½Ñ‹ %s (файл «%s», Ñтрока %<PRIdMAX>)"
-#: timezone/zic.c:1267
+#: timezone/zic.c:1319
msgid "wrong number of fields on Zone continuation line"
msgstr "неправильное чиÑло полей в Ñтроке Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ Zone"
-#: timezone/zic.c:1307
+#: timezone/zic.c:1359
msgid "invalid UT offset"
msgstr "неверное Ñмещение UT"
-#: timezone/zic.c:1311
+#: timezone/zic.c:1363
msgid "invalid abbreviation format"
msgstr "неверный формат ÑокращениÑ"
-#: timezone/zic.c:1320
+#: timezone/zic.c:1372
#, c-format
msgid "format '%s' not handled by pre-2015 versions of zic"
msgstr "формат «%s» не поддерживаетÑÑ Ð²ÐµÑ€ÑиÑми zic Ñтарше 2015 года"
-#: timezone/zic.c:1347
+#: timezone/zic.c:1399
msgid "Zone continuation line end time is not after end time of previous line"
msgstr "конечное Ð²Ñ€ÐµÐ¼Ñ Ð² Ñтроке Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ Zone не позднее конечного времени в предыдущей Ñтроке"
-#: timezone/zic.c:1374
+#: timezone/zic.c:1426
msgid "wrong number of fields on Leap line"
msgstr "неверное чиÑло полей в Ñтроке Leap"
-#: timezone/zic.c:1383
+#: timezone/zic.c:1435
msgid "invalid leaping year"
msgstr "неверный виÑокоÑный год"
-#: timezone/zic.c:1403 timezone/zic.c:1501
+#: timezone/zic.c:1455 timezone/zic.c:1547
msgid "invalid month name"
msgstr "неверное название меÑÑца"
-#: timezone/zic.c:1416 timezone/zic.c:1614 timezone/zic.c:1628
+#: timezone/zic.c:1468 timezone/zic.c:1663 timezone/zic.c:1677
msgid "invalid day of month"
msgstr "неверный день меÑÑца"
-#: timezone/zic.c:1421
+#: timezone/zic.c:1473
msgid "time too small"
msgstr "Ð²Ñ€ÐµÐ¼Ñ Ñлишком мало"
-#: timezone/zic.c:1425
+#: timezone/zic.c:1477
msgid "time too large"
msgstr "Ð²Ñ€ÐµÐ¼Ñ Ñлишком велико"
-#: timezone/zic.c:1429 timezone/zic.c:1530
+#: timezone/zic.c:1481 timezone/zic.c:1576
msgid "invalid time of day"
msgstr "неверное Ð²Ñ€ÐµÐ¼Ñ Ð´Ð½Ñ"
-#: timezone/zic.c:1448
+#: timezone/zic.c:1494
msgid "illegal CORRECTION field on Leap line"
msgstr "неверное поле CORRECTION в Ñтроке Leap"
-#: timezone/zic.c:1453
+#: timezone/zic.c:1499
msgid "illegal Rolling/Stationary field on Leap line"
msgstr "неверное поле Rolling/Stationary в Ñтроке Leap"
-#: timezone/zic.c:1459
-msgid "leap second precedes Big Bang"
-msgstr "виÑокоÑÐ½Ð°Ñ Ñекунда раньше Большого взрыва"
+#: timezone/zic.c:1505
+msgid "leap second precedes Epoch"
+msgstr "виÑокоÑÐ½Ð°Ñ Ñекунда раньше Эпохи"
-#: timezone/zic.c:1472
+#: timezone/zic.c:1518
msgid "wrong number of fields on Link line"
msgstr "неверное чиÑло полей в Ñтроке Link"
-#: timezone/zic.c:1476
+#: timezone/zic.c:1522
msgid "blank FROM field on Link line"
msgstr "пуÑтое поле FROM в Ñтроке Link"
-#: timezone/zic.c:1551
+#: timezone/zic.c:1597
msgid "invalid starting year"
msgstr "неверный начальный год"
-#: timezone/zic.c:1573
+#: timezone/zic.c:1619
msgid "invalid ending year"
msgstr "неверный конечный год"
-#: timezone/zic.c:1577
+#: timezone/zic.c:1623
msgid "starting year greater than ending year"
msgstr "начальный год больше конечного"
-#: timezone/zic.c:1584
+#: timezone/zic.c:1630
msgid "typed single year"
msgstr "один типизированный год"
-#: timezone/zic.c:1619
+#: timezone/zic.c:1633
+#, c-format
+msgid "year type \"%s\" is obsolete; use \"-\" instead"
+msgstr "тип года «%s» уÑтарел; вмеÑто Ñтого иÑпользуйте «-»"
+
+#: timezone/zic.c:1668
msgid "invalid weekday name"
msgstr "неверное Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ð´Ð½Ñ Ð½ÐµÐ´ÐµÐ»Ð¸"
-#: timezone/zic.c:1743
+#: timezone/zic.c:1800
#, c-format
msgid "reference clients mishandle more than %d transition times"
msgstr "Ñтандартные клиенты неправильно работают при выполнении более чем %d переводов времени"
-#: timezone/zic.c:1747
+#: timezone/zic.c:1804
msgid "pre-2014 clients may mishandle more than 1200 transition times"
msgstr "клиенты до верÑии pre-2014 могут неправильно работать при выполнении более чем 1200 переводов времени"
-#: timezone/zic.c:1858
+#: timezone/zic.c:1920
msgid "too many transition times"
msgstr "Ñлишком много переводов времени"
-#: timezone/zic.c:2047
+#: timezone/zic.c:2107
#, c-format
-msgid "%%z UTC offset magnitude exceeds 99:59:59"
-msgstr "порÑдок величин ÑÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ %%z UTC превышает 99:59:59"
+msgid "%%z UT offset magnitude exceeds 99:59:59"
+msgstr "порÑдок величин ÑÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ %%z UT превышает 99:59:59"
-#: timezone/zic.c:2424
+#: timezone/zic.c:2488
msgid "no POSIX environment variable for zone"
msgstr "нет переменной Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ POSIX Ð´Ð»Ñ Ñ‡Ð°Ñового поÑÑа"
-#: timezone/zic.c:2430
+#: timezone/zic.c:2494
#, c-format
msgid "%s: pre-%d clients may mishandle distant timestamps"
msgstr "%s: клиенты до верÑии pre-%d могут неправильно понÑÑ‚ÑŒ удалённые метки времени"
-#: timezone/zic.c:2566
+#: timezone/zic.c:2631
msgid "two rules for same instant"
msgstr "два правила Ð´Ð»Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ мгновениÑ"
-#: timezone/zic.c:2627
+#: timezone/zic.c:2696
msgid "can't determine time zone abbreviation to use just after until time"
msgstr "не удалоÑÑŒ определить аббревиатуру чаÑового поÑÑа Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ñразу поÑле прошедшего времени"
-#: timezone/zic.c:2725
+#: timezone/zic.c:2785
msgid "too many local time types"
msgstr "Ñлишком много типов меÑтного времени"
-#: timezone/zic.c:2729
+#: timezone/zic.c:2789
msgid "UT offset out of range"
msgstr "Ñмещение UT вне диапазона"
-#: timezone/zic.c:2753
+#: timezone/zic.c:2813
msgid "too many leap seconds"
msgstr "Ñлишком много виÑокоÑных Ñекунд"
-#: timezone/zic.c:2759
-msgid "repeated leap second moment"
-msgstr "повторÑющийÑÑ Ð¼Ð¾Ð¼ÐµÐ½Ñ‚ виÑокоÑной Ñекунды"
+#: timezone/zic.c:2844
+msgid "Leap seconds too close together"
+msgstr "ВиÑокоÑные Ñекунды Ñлишком близко друг к другу"
-#: timezone/zic.c:2830
+#: timezone/zic.c:2891
msgid "Wild result from command execution"
msgstr "Ðеадекватный результат Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ‹"
-#: timezone/zic.c:2831
+#: timezone/zic.c:2892
#, c-format
msgid "%s: command was '%s', result was %d\n"
msgstr "%s: команда была »%s», результат был %d\n"
-#: timezone/zic.c:2961
+#: timezone/zic.c:2998
+#, c-format
+msgid "\"%s\" is undocumented; use \"last%s\" instead"
+msgstr "«%s» нет в документации; вмеÑто Ñтого иÑпользуйте «last%s»"
+
+#: timezone/zic.c:3029
+#, c-format
+msgid "\"%s\" is ambiguous in pre-2017c zic"
+msgstr "ÑмыÑл «%s» неоднозначен Ð´Ð»Ñ zic верÑии pre-2017c"
+
+#: timezone/zic.c:3063
msgid "Odd number of quotation marks"
msgstr "Ðечётное чиÑло кавычек"
-#: timezone/zic.c:3046
+#: timezone/zic.c:3157
msgid "use of 2/29 in non leap-year"
msgstr "иÑпользование 29 Ñ„ÐµÐ²Ñ€Ð°Ð»Ñ Ð² не-виÑокоÑном году"
-#: timezone/zic.c:3081
+#: timezone/zic.c:3192
msgid "rule goes past start/end of month; will not work with pre-2004 versions of zic"
msgstr "правило переходит за начало/конец меÑÑца; Ñто не будет работать в верÑиÑÑ… zic Ñтарше 2004 года"
-#: timezone/zic.c:3108
+#: timezone/zic.c:3219
msgid "time zone abbreviation has fewer than 3 characters"
msgstr "в аббревиатуре чаÑового поÑÑа ÑодержитÑÑ Ð±Ð¾Ð»ÐµÐµ трёх Ñимволов"
-#: timezone/zic.c:3110
+#: timezone/zic.c:3221
msgid "time zone abbreviation has too many characters"
msgstr "в аббревиатуре чаÑового поÑÑа ÑодержитÑÑ Ñлишком много Ñимволов"
-#: timezone/zic.c:3112
+#: timezone/zic.c:3223
msgid "time zone abbreviation differs from POSIX standard"
msgstr "аббревиатура чаÑового поÑÑа отличаетÑÑ Ð¾Ñ‚ Ñтандартной POSIX"
-#: timezone/zic.c:3118
+#: timezone/zic.c:3229
msgid "too many, or too long, time zone abbreviations"
msgstr "Ñлишком много аббревиатур чаÑовых поÑÑов или они Ñлишком длинные"
-#: timezone/zic.c:3161
+#: timezone/zic.c:3275
#, c-format
msgid "%s: Can't create directory %s: %s"
msgstr "%s: Ðевозможно Ñоздать каталог %s: %s"
+#~ msgid "cannot open zero fill device"
+#~ msgstr "невозможно открыть файл-иÑточник нулей"
+
+#~ msgid "relocation error"
+#~ msgstr "ошибка перемещениÑ"
+
+#~ msgid "Cannot set LC_CTYPE to default locale"
+#~ msgstr "Ðевозможно уÑтановить LC_CTYPE в локаль по умолчанию."
+
+#~ msgid "Cannot set LC_MESSAGES to default locale"
+#~ msgstr "Ðевозможно уÑтановить LC_MESSAGES в локаль по умолчанию."
+
+#~ msgid "Cannot set LC_COLLATE to default locale"
+#~ msgstr "Ðевозможно уÑтановить LC_COLLATE в локаль по умолчанию."
+
#~ msgid "invalid caller"
#~ msgstr "Ð½ÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð²Ñ‹Ð·Ñ‹Ð²Ð°ÑŽÑ‰Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ"
@@ -7261,6 +7297,18 @@ msgstr "%s: Ðевозможно Ñоздать каталог %s: %s"
#~ msgid "This implementation doesn't support newstyle or MT-safe code!\n"
#~ msgstr "Эта Ñ€ÐµÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð½Ðµ поддерживает код нового ÑÑ‚Ð¸Ð»Ñ Ð¸Ð»Ð¸ безопаÑный многопоточный код!\n"
+#~ msgid "unruly zone"
+#~ msgstr "не подчинÑющаÑÑÑ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð°Ð¼ зона"
+
+#~ msgid "%s: Leap line in non leap seconds file %s"
+#~ msgstr "%s: ВиÑокоÑÐ½Ð°Ñ Ñтрока не в файле виÑокоÑных Ñекунд %s"
+
+#~ msgid "nameless rule"
+#~ msgstr "безымÑнное правило"
+
+#~ msgid "repeated leap second moment"
+#~ msgstr "повторÑющийÑÑ Ð¼Ð¾Ð¼ÐµÐ½Ñ‚ виÑокоÑной Ñекунды"
+
#~ msgid "no definition of `UNDEFINED'"
#~ msgstr "нет Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Â«UNDEFINED»"
@@ -7291,9 +7339,6 @@ msgstr "%s: Ðевозможно Ñоздать каталог %s: %s"
#~ "\n"
#~ "Ð¡Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¾Ð± ошибках отправлÑйте на %s.\n"
-#~ msgid "int overflow"
-#~ msgstr "переполнение целого"
-
#~ msgid "hard link failed, symbolic link used"
#~ msgstr "не удалоÑÑŒ Ñделать жеÑткую ÑÑылку, иÑпользуетÑÑ ÑимвольнаÑ"
diff --git a/po/rw.po b/po/rw.po
index f96062f7ec..6ecb07dab7 100644
--- a/po/rw.po
+++ b/po/rw.po
@@ -14,7 +14,7 @@
msgid ""
msgstr ""
"Project-Id-Version: libc 2.3\n"
-"POT-Creation-Date: 2018-07-26 22:19-0400\n"
+"POT-Creation-Date: 2019-07-18 13:28-0400\n"
"PO-Revision-Date: 2005-04-04 10:55-0700\n"
"Last-Translator: Steven Michael Murphy <murf@e-tools.com>\n"
"Language-Team: Kinyarwanda <translation-team-rw@lists.sourceforge.net>\n"
@@ -178,10 +178,10 @@ msgid ""
msgstr "-o"
#: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:308
-#: elf/pldd.c:252 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
-#: iconv/iconvconfig.c:379 locale/programs/locale.c:275
-#: locale/programs/localedef.c:427 login/programs/pt_chown.c:89
-#: malloc/memusagestat.c:563 nss/getent.c:933 nss/makedb.c:369
+#: elf/pldd.c:247 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
+#: iconv/iconvconfig.c:379 locale/programs/locale.c:276
+#: locale/programs/localedef.c:437 login/programs/pt_chown.c:89
+#: malloc/memusagestat.c:563 nss/getent.c:953 nss/makedb.c:369
#: posix/getconf.c:503 sysdeps/unix/sysv/linux/lddlibc4.c:61
#, c-format
msgid ""
@@ -190,11 +190,11 @@ msgid ""
msgstr ""
#: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64
-#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75
+#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:263 elf/sotruss.sh:75
#: elf/sprof.c:389 iconv/iconv_prog.c:422 iconv/iconvconfig.c:396
-#: locale/programs/locale.c:292 locale/programs/localedef.c:453
+#: locale/programs/locale.c:293 locale/programs/localedef.c:463
#: login/programs/pt_chown.c:63 malloc/memusage.sh:71
-#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:87 nss/makedb.c:385
+#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:88 nss/makedb.c:385
#: posix/getconf.c:485 sysdeps/unix/sysv/linux/lddlibc4.c:68
#, fuzzy, c-format
msgid ""
@@ -204,10 +204,10 @@ msgid ""
msgstr "C ni Kigenga i Inkomoko kugirango ni OYA ATARIIGIHARWE kugirango Cyangwa A"
#: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68
-#: elf/ldconfig.c:329 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:427
-#: iconv/iconvconfig.c:401 locale/programs/locale.c:297
-#: locale/programs/localedef.c:458 malloc/memusage.sh:75
-#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:92 nss/makedb.c:390
+#: elf/ldconfig.c:329 elf/pldd.c:268 elf/sprof.c:395 iconv/iconv_prog.c:427
+#: iconv/iconvconfig.c:401 locale/programs/locale.c:298
+#: locale/programs/localedef.c:468 malloc/memusage.sh:75
+#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:93 nss/makedb.c:390
#: posix/getconf.c:490
#, fuzzy, c-format
msgid "Written by %s.\n"
@@ -289,22 +289,22 @@ msgstr "Gufungura Ibisohoka IDOSIYE"
msgid "invalid escape sequence"
msgstr "Sibyo"
-#: catgets/gencat.c:1209
+#: catgets/gencat.c:1211
#, fuzzy
msgid "unterminated message"
msgstr "Ubutumwa"
-#: catgets/gencat.c:1233
+#: catgets/gencat.c:1235
#, fuzzy, c-format
msgid "while opening old catalog file"
msgstr "Gufungura%S ki/ bishaje Agatabo IDOSIYE"
-#: catgets/gencat.c:1324
+#: catgets/gencat.c:1326
#, fuzzy, c-format
msgid "conversion modules not available"
msgstr "Ihindurangero Modire OYA Bihari"
-#: catgets/gencat.c:1350
+#: catgets/gencat.c:1352
#, fuzzy, c-format
msgid "cannot determine escape character"
msgstr "Inyuguti"
@@ -440,7 +440,7 @@ msgstr ""
"X- Generator: KBabel 1. 0\n"
"."
-#: elf/cache.c:163 elf/ldconfig.c:1332
+#: elf/cache.c:163 elf/ldconfig.c:1333
#, fuzzy, c-format
msgid "Can't open cache file %s\n"
msgstr "Gufungura Ubwihisho IDOSIYE"
@@ -450,38 +450,38 @@ msgstr "Gufungura Ubwihisho IDOSIYE"
msgid "mmap of cache file failed.\n"
msgstr "Bya Ubwihisho IDOSIYE Byanze"
-#: elf/cache.c:181 elf/cache.c:195
+#: elf/cache.c:181 elf/cache.c:195 elf/cache.c:205
#, fuzzy, c-format
msgid "File is not a cache file.\n"
msgstr "Idosiye ni OYA a Ubwihisho IDOSIYE"
-#: elf/cache.c:228 elf/cache.c:238
+#: elf/cache.c:233 elf/cache.c:243
#, fuzzy, c-format
msgid "%d libs found in cache `%s'\n"
msgstr "%dByabonetse in Ubwihisho"
-#: elf/cache.c:432
+#: elf/cache.c:437
#, fuzzy, c-format
msgid "Can't create temporary cache file %s"
msgstr "Kurema By'igihe gito Ubwihisho IDOSIYE"
-#: elf/cache.c:440 elf/cache.c:450 elf/cache.c:454 elf/cache.c:458
-#: elf/cache.c:468
+#: elf/cache.c:445 elf/cache.c:455 elf/cache.c:459 elf/cache.c:463
+#: elf/cache.c:473
#, fuzzy, c-format
msgid "Writing of cache data failed"
msgstr "Bya Ubwihisho Ibyatanzwe Byanze"
-#: elf/cache.c:463
+#: elf/cache.c:468
#, fuzzy, c-format
msgid "Changing access rights of %s to %#o failed"
msgstr "Bya Kuri Byanze"
-#: elf/cache.c:472
+#: elf/cache.c:477
#, fuzzy, c-format
msgid "Renaming of %s to %s failed"
msgstr "Bya Kuri Byanze"
-#: elf/dl-close.c:399 elf/dl-open.c:420
+#: elf/dl-close.c:399 elf/dl-open.c:424
#, fuzzy
msgid "cannot create scope list"
msgstr "Kurema Ingano: Urutonde"
@@ -579,144 +579,144 @@ msgstr "Kurema Gushaka Inzira Imbonerahamwe"
msgid "cannot stat shared object"
msgstr "Igikoresho"
-#: elf/dl-load.c:960
-#, fuzzy
-msgid "cannot open zero fill device"
-msgstr "Gufungura Zeru Kuzuza APAREYE"
-
-#: elf/dl-load.c:1007 elf/dl-load.c:2203
+#: elf/dl-load.c:992 elf/dl-load.c:2198
#, fuzzy
msgid "cannot create shared object descriptor"
msgstr "Kurema Igikoresho"
-#: elf/dl-load.c:1026 elf/dl-load.c:1560 elf/dl-load.c:1673
+#: elf/dl-load.c:1011 elf/dl-load.c:1555 elf/dl-load.c:1668
#, fuzzy
msgid "cannot read file data"
msgstr "Gusoma IDOSIYE Ibyatanzwe"
-#: elf/dl-load.c:1072
+#: elf/dl-load.c:1057
#, fuzzy
msgid "ELF load command alignment not page-aligned"
msgstr "Ibirimo Komandi: Itunganya OYA Ipaji"
-#: elf/dl-load.c:1079
+#: elf/dl-load.c:1064
#, fuzzy
msgid "ELF load command address/offset not properly aligned"
msgstr "Ibirimo Komandi: Aderesi Nta- boneza OYA"
-#: elf/dl-load.c:1161
+#: elf/dl-load.c:1146
#, fuzzy
msgid "cannot process note segment"
msgstr "Kugarura Nyuma"
-#: elf/dl-load.c:1172
+#: elf/dl-load.c:1157
#, fuzzy
msgid "object file has no loadable segments"
msgstr "Igikoresho IDOSIYE Oya Icyiciro"
-#: elf/dl-load.c:1181 elf/dl-load.c:1652
+#: elf/dl-load.c:1170 elf/dl-load.c:1647
#, fuzzy
msgid "cannot dynamically load executable"
msgstr "Ibirimo"
-#: elf/dl-load.c:1202
+#: elf/dl-load.c:1191
#, fuzzy
msgid "object file has no dynamic section"
msgstr "Igikoresho IDOSIYE Oya Icyiciro"
-#: elf/dl-load.c:1225
+#: elf/dl-load.c:1218
+#, fuzzy
+msgid "cannot dynamically load position-independent executable"
+msgstr "Ibirimo"
+
+#: elf/dl-load.c:1220
#, fuzzy
msgid "shared object cannot be dlopen()ed"
msgstr "Igikoresho"
-#: elf/dl-load.c:1238
+#: elf/dl-load.c:1233
#, fuzzy
msgid "cannot allocate memory for program header"
msgstr "Ububiko kugirango Porogaramu Umutwempangano"
-#: elf/dl-load.c:1271 elf/dl-load.h:130
+#: elf/dl-load.c:1266 elf/dl-load.h:130
#, fuzzy
msgid "cannot change memory protections"
msgstr "Guhindura>> Ububiko"
-#: elf/dl-load.c:1291
+#: elf/dl-load.c:1286
#, fuzzy
msgid "cannot enable executable stack as shared object requires"
msgstr "Kurema Igikoresho"
-#: elf/dl-load.c:1304
+#: elf/dl-load.c:1299
#, fuzzy
msgid "cannot close file descriptor"
msgstr "Kurema By'imbere"
-#: elf/dl-load.c:1560
+#: elf/dl-load.c:1555
#, fuzzy
msgid "file too short"
msgstr "IDOSIYE"
-#: elf/dl-load.c:1595
+#: elf/dl-load.c:1590
#, fuzzy
msgid "invalid ELF header"
msgstr "Sibyo Umutwempangano"
-#: elf/dl-load.c:1607
+#: elf/dl-load.c:1602
#, fuzzy
msgid "ELF file data encoding not big-endian"
msgstr "IDOSIYE Ibyatanzwe Imisobekere: OYA"
-#: elf/dl-load.c:1609
+#: elf/dl-load.c:1604
#, fuzzy
msgid "ELF file data encoding not little-endian"
msgstr "IDOSIYE Ibyatanzwe Imisobekere: OYA"
-#: elf/dl-load.c:1613
+#: elf/dl-load.c:1608
#, fuzzy
msgid "ELF file version ident does not match current one"
msgstr "IDOSIYE Verisiyo OYA BIHUYE KIGEZWEHO"
-#: elf/dl-load.c:1617
+#: elf/dl-load.c:1612
#, fuzzy
msgid "ELF file OS ABI invalid"
msgstr "IDOSIYE Sibyo"
-#: elf/dl-load.c:1620
+#: elf/dl-load.c:1615
#, fuzzy
msgid "ELF file ABI version invalid"
msgstr "IDOSIYE Verisiyo Sibyo"
-#: elf/dl-load.c:1623
+#: elf/dl-load.c:1618
msgid "nonzero padding in e_ident"
msgstr ""
-#: elf/dl-load.c:1626
+#: elf/dl-load.c:1621
#, fuzzy
msgid "internal error"
msgstr "Ikosa ry'imbere"
-#: elf/dl-load.c:1633
+#: elf/dl-load.c:1628
#, fuzzy
msgid "ELF file version does not match current one"
msgstr "IDOSIYE Verisiyo OYA BIHUYE KIGEZWEHO"
-#: elf/dl-load.c:1641
+#: elf/dl-load.c:1636
#, fuzzy
msgid "only ET_DYN and ET_EXEC can be loaded"
msgstr "Na"
-#: elf/dl-load.c:1657
+#: elf/dl-load.c:1652
#, fuzzy
msgid "ELF file's phentsize not the expected size"
msgstr "OYA i Ikitezwe: Ingano"
-#: elf/dl-load.c:2222
+#: elf/dl-load.c:2217
msgid "wrong ELF class: ELFCLASS64"
msgstr ""
-#: elf/dl-load.c:2223
+#: elf/dl-load.c:2218
msgid "wrong ELF class: ELFCLASS32"
msgstr ""
-#: elf/dl-load.c:2226
+#: elf/dl-load.c:2221
#, fuzzy
msgid "cannot open shared object file"
msgstr "Gufungura Igikoresho IDOSIYE"
@@ -731,12 +731,7 @@ msgstr "Byanze Kuri Bivuye Igikoresho"
msgid "cannot map zero-fill pages"
msgstr "Zeru Kuzuza Amapaji"
-#: elf/dl-lookup.c:835
-#, fuzzy
-msgid "relocation error"
-msgstr "Ikosa"
-
-#: elf/dl-lookup.c:858
+#: elf/dl-lookup.c:830
msgid "symbol lookup error"
msgstr ""
@@ -745,21 +740,21 @@ msgstr ""
msgid "cannot extend global scope"
msgstr "Ingano:"
-#: elf/dl-open.c:470
+#: elf/dl-open.c:474
#, fuzzy
msgid "TLS generation counter wrapped! Please report this."
msgstr "Kohereza Icyegeranyo Na: i IYANDIKA"
-#: elf/dl-open.c:534
+#: elf/dl-open.c:538
#, fuzzy
msgid "invalid mode for dlopen()"
msgstr "Sibyo Ubwoko kugirango"
-#: elf/dl-open.c:551
+#: elf/dl-open.c:555
msgid "no more namespaces available for dlmopen()"
msgstr ""
-#: elf/dl-open.c:575
+#: elf/dl-open.c:579
#, fuzzy
msgid "invalid target namespace in dlmopen()"
msgstr "Sibyo Ubwoko kugirango"
@@ -769,22 +764,22 @@ msgstr "Sibyo Ubwoko kugirango"
msgid "cannot allocate memory in static TLS block"
msgstr "Ububiko"
-#: elf/dl-reloc.c:205
+#: elf/dl-reloc.c:213
#, fuzzy
msgid "cannot make segment writable for relocation"
msgstr "Ubwoko kugirango"
-#: elf/dl-reloc.c:276
+#: elf/dl-reloc.c:272
#, c-format
msgid "%s: out of memory to store relocation results for %s\n"
msgstr ""
-#: elf/dl-reloc.c:292
+#: elf/dl-reloc.c:288
#, fuzzy
msgid "cannot restore segment prot after reloc"
msgstr "Kugarura Nyuma"
-#: elf/dl-reloc.c:323
+#: elf/dl-reloc.c:319
#, fuzzy
msgid "cannot apply additional memory protection after relocation"
msgstr "Guhindura>> Ububiko"
@@ -1019,22 +1014,22 @@ msgstr ""
msgid "memory exhausted"
msgstr "Ububiko"
-#: elf/ldconfig.c:1233
+#: elf/ldconfig.c:1234
#, fuzzy, c-format
msgid "%s:%u: cannot read directory %s"
msgstr "%s:Kurema bushyinguro"
-#: elf/ldconfig.c:1281
+#: elf/ldconfig.c:1282
#, c-format
msgid "relative path `%s' used to build cache"
msgstr ""
-#: elf/ldconfig.c:1311
+#: elf/ldconfig.c:1312
#, fuzzy, c-format
msgid "Can't chdir to /"
msgstr "Kuri"
-#: elf/ldconfig.c:1352
+#: elf/ldconfig.c:1353
#, fuzzy, c-format
msgid "Can't open cache file directory %s\n"
msgstr "Gufungura Ubwihisho IDOSIYE bushyinguro"
@@ -1105,95 +1100,100 @@ msgstr ""
msgid "error: you do not have read permission for"
msgstr ""
-#: elf/pldd-xx.c:105
+#: elf/pldd-xx.c:102
#, fuzzy, c-format
msgid "cannot find program header of process"
msgstr "Gusoma Umutwempangano Bivuye"
-#: elf/pldd-xx.c:110
+#: elf/pldd-xx.c:106
#, fuzzy, c-format
msgid "cannot read program header"
msgstr "Gusoma Umutwempangano"
-#: elf/pldd-xx.c:135
+#: elf/pldd-xx.c:128
#, fuzzy, c-format
msgid "cannot read dynamic section"
msgstr "Igikoresho IDOSIYE Oya Icyiciro"
-#: elf/pldd-xx.c:147
+#: elf/pldd-xx.c:137
#, fuzzy, c-format
msgid "cannot read r_debug"
msgstr "Gusoma Umutwempangano"
-#: elf/pldd-xx.c:167
+#: elf/pldd-xx.c:154
#, fuzzy, c-format
msgid "cannot read program interpreter"
msgstr "Gusoma Umutwempangano"
-#: elf/pldd-xx.c:197
+#: elf/pldd-xx.c:183
#, fuzzy, c-format
msgid "cannot read link map"
msgstr "Gusoma IDOSIYE Ibyatanzwe"
-#: elf/pldd-xx.c:209
+#: elf/pldd-xx.c:190
#, fuzzy, c-format
msgid "cannot read object name"
msgstr "Gusoma Umutwempangano"
-#: elf/pldd-xx.c:219
+#: elf/pldd-xx.c:197
#, fuzzy, c-format
msgid "cannot allocate buffer for object name"
msgstr "Ububiko kugirango Porogaramu Umutwempangano"
-#: elf/pldd.c:64
+#: elf/pldd.c:58
msgid "List dynamic shared objects loaded into process."
msgstr ""
-#: elf/pldd.c:68
+#: elf/pldd.c:62
msgid "PID"
msgstr ""
-#: elf/pldd.c:100
+#: elf/pldd.c:89
#, c-format
msgid "Exactly one parameter with process ID required.\n"
msgstr ""
-#: elf/pldd.c:112
+#: elf/pldd.c:103
#, fuzzy, c-format
msgid "invalid process ID '%s'"
msgstr "Sibyo Mweretsi Ingano"
-#: elf/pldd.c:120
+#: elf/pldd.c:111
#, fuzzy, c-format
msgid "cannot open %s"
msgstr "Gufungura"
-#: elf/pldd.c:152
+#: elf/pldd.c:142
#, fuzzy, c-format
msgid "cannot open %s/task"
msgstr "Gufungura"
-#: elf/pldd.c:155
+#: elf/pldd.c:145
#, fuzzy, c-format
msgid "cannot prepare reading %s/task"
msgstr "Kurema"
-#: elf/pldd.c:168
+#: elf/pldd.c:158
#, fuzzy, c-format
msgid "invalid thread ID '%s'"
msgstr "Sibyo Umutwempangano"
-#: elf/pldd.c:179
+#: elf/pldd.c:169
#, fuzzy, c-format
msgid "cannot attach to process %lu"
msgstr "Gushaka C"
-#: elf/pldd.c:294
+#: elf/pldd.c:184
+#, fuzzy, c-format
+msgid "no valid %s/task entries"
+msgstr "Sibyo Igihe"
+
+#: elf/pldd.c:290
#, c-format
msgid "cannot get information about process %lu"
msgstr ""
-#: elf/pldd.c:307
+#: elf/pldd.c:303
#, c-format
msgid "process %lu is no ELF program"
msgstr ""
@@ -1508,7 +1508,7 @@ msgstr "Ibisobanuro:"
msgid "list all known coded character sets"
msgstr "Urutonde Byose Inyuguti"
-#: iconv/iconv_prog.c:64 locale/programs/localedef.c:120
+#: iconv/iconv_prog.c:64 locale/programs/localedef.c:124
#, fuzzy
msgid "Output control:"
msgstr "Igenzura"
@@ -1519,8 +1519,8 @@ msgid "omit invalid characters from output"
msgstr "Sibyo Inyuguti Bivuye Ibisohoka"
#: iconv/iconv_prog.c:66 iconv/iconvconfig.c:128
-#: locale/programs/localedef.c:113 locale/programs/localedef.c:115
-#: locale/programs/localedef.c:117 locale/programs/localedef.c:144
+#: locale/programs/localedef.c:117 locale/programs/localedef.c:119
+#: locale/programs/localedef.c:121 locale/programs/localedef.c:150
#: malloc/memusagestat.c:56
#, fuzzy
msgid "FILE"
@@ -1621,7 +1621,7 @@ msgstr "Modire Iboneza IDOSIYE"
msgid "[DIR...]"
msgstr ""
-#: iconv/iconvconfig.c:126 locale/programs/localedef.c:123
+#: iconv/iconvconfig.c:126 locale/programs/localedef.c:129
msgid "PATH"
msgstr ""
@@ -1819,14 +1819,14 @@ msgstr "Inyuguti Na: OYA"
#: locale/programs/charmap.c:503 locale/programs/charmap.c:557
#: locale/programs/charmap.c:589 locale/programs/charmap.c:683
-#: locale/programs/charmap.c:738 locale/programs/charmap.c:779
-#: locale/programs/charmap.c:820
+#: locale/programs/charmap.c:739 locale/programs/charmap.c:780
+#: locale/programs/charmap.c:821
#, fuzzy, c-format
msgid "syntax error in %s definition: %s"
msgstr "Ikosa in Insobanuro"
#: locale/programs/charmap.c:504 locale/programs/charmap.c:684
-#: locale/programs/charmap.c:780 locale/programs/repertoire.c:229
+#: locale/programs/charmap.c:781 locale/programs/repertoire.c:229
#, fuzzy
msgid "no symbolic name given"
msgstr "Oya Izina:"
@@ -1846,15 +1846,15 @@ msgstr "Bayite in Inyuguti Imisobekere:"
msgid "too many bytes in character encoding"
msgstr "Bayite in Inyuguti Imisobekere:"
-#: locale/programs/charmap.c:591 locale/programs/charmap.c:739
-#: locale/programs/charmap.c:822 locale/programs/repertoire.c:295
+#: locale/programs/charmap.c:591 locale/programs/charmap.c:740
+#: locale/programs/charmap.c:823 locale/programs/repertoire.c:295
#, fuzzy
msgid "no symbolic name given for end of range"
msgstr "Oya Izina: kugirango Impera Bya Urutonde"
#: locale/programs/charmap.c:615 locale/programs/ld-address.c:524
#: locale/programs/ld-collate.c:2616 locale/programs/ld-collate.c:3774
-#: locale/programs/ld-ctype.c:2117 locale/programs/ld-ctype.c:2829
+#: locale/programs/ld-ctype.c:2118 locale/programs/ld-ctype.c:2830
#: locale/programs/ld-identification.c:397
#: locale/programs/ld-measurement.c:213 locale/programs/ld-messages.c:295
#: locale/programs/ld-monetary.c:748 locale/programs/ld-name.c:262
@@ -1870,61 +1870,61 @@ msgstr "%1$S Insobanuro OYA Impera Na:"
msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
msgstr "Kuri i Insobanuro"
-#: locale/programs/charmap.c:656 locale/programs/charmap.c:719
+#: locale/programs/charmap.c:656 locale/programs/charmap.c:720
#, fuzzy, c-format
msgid "value for %s must be an integer"
msgstr "Agaciro kugirango Umubare wuzuye"
-#: locale/programs/charmap.c:847
+#: locale/programs/charmap.c:848
#, fuzzy, c-format
msgid "%s: error in state machine"
msgstr "%s:Ikosa in Leta"
-#: locale/programs/charmap.c:855 locale/programs/ld-address.c:540
+#: locale/programs/charmap.c:856 locale/programs/ld-address.c:540
#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967
-#: locale/programs/ld-ctype.c:2114 locale/programs/ld-ctype.c:2846
+#: locale/programs/ld-ctype.c:2115 locale/programs/ld-ctype.c:2847
#: locale/programs/ld-identification.c:413
#: locale/programs/ld-measurement.c:229 locale/programs/ld-messages.c:311
#: locale/programs/ld-monetary.c:764 locale/programs/ld-name.c:278
#: locale/programs/ld-numeric.c:341 locale/programs/ld-paper.c:228
#: locale/programs/ld-telephone.c:292 locale/programs/ld-time.c:990
-#: locale/programs/locfile.c:997 locale/programs/repertoire.c:323
+#: locale/programs/locfile.c:1010 locale/programs/repertoire.c:323
#, fuzzy, c-format
msgid "%s: premature end of file"
msgstr "%s:Impera Bya IDOSIYE"
-#: locale/programs/charmap.c:874 locale/programs/charmap.c:885
+#: locale/programs/charmap.c:875 locale/programs/charmap.c:886
#, fuzzy, c-format
msgid "unknown character `%s'"
msgstr "Kitazwi Inyuguti"
-#: locale/programs/charmap.c:893
+#: locale/programs/charmap.c:894
#, fuzzy, c-format
msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d"
msgstr "Umubare Bya Bayite kugirango Bayite Bya Itangiriro Na Impera Bya Urutonde OYA i"
-#: locale/programs/charmap.c:998 locale/programs/ld-collate.c:2893
+#: locale/programs/charmap.c:999 locale/programs/ld-collate.c:2893
#: locale/programs/repertoire.c:418
#, fuzzy
msgid "invalid names for character range"
msgstr "Sibyo Amazina kugirango Inyuguti Urutonde"
-#: locale/programs/charmap.c:1010 locale/programs/repertoire.c:430
+#: locale/programs/charmap.c:1011 locale/programs/repertoire.c:430
#, fuzzy
msgid "hexadecimal range format should use only capital characters"
msgstr "Urutonde Imiterere Gukoresha Inyuguti"
-#: locale/programs/charmap.c:1028 locale/programs/repertoire.c:448
+#: locale/programs/charmap.c:1029 locale/programs/repertoire.c:448
#, fuzzy, c-format
msgid "<%s> and <%s> are invalid names for range"
msgstr "<%s>Na Sibyo Amazina kugirango Urutonde"
-#: locale/programs/charmap.c:1034 locale/programs/repertoire.c:455
+#: locale/programs/charmap.c:1035 locale/programs/repertoire.c:455
#, fuzzy
msgid "upper limit in range is smaller than lower limit"
msgstr "Nkuru in Urutonde ni OYA Gitoya Hanyuma Ntoya"
-#: locale/programs/charmap.c:1092
+#: locale/programs/charmap.c:1093
#, fuzzy
msgid "resulting bytes for range not representable."
msgstr "Bayite kugirango Urutonde OYA"
@@ -1994,7 +1994,7 @@ msgid "%s: numeric country code `%d' not valid"
msgstr "%s:Bikurikije umubare Igihugu ITEGEKONGENGA OYA Byemewe"
#: locale/programs/ld-address.c:432 locale/programs/ld-address.c:469
-#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2478
+#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2479
#: locale/programs/ld-identification.c:309
#: locale/programs/ld-measurement.c:196 locale/programs/ld-messages.c:264
#: locale/programs/ld-monetary.c:503 locale/programs/ld-monetary.c:538
@@ -2017,7 +2017,7 @@ msgid "%s: unknown character in field `%s'"
msgstr "%s:Kitazwi Inyuguti in Umwanya"
#: locale/programs/ld-address.c:521 locale/programs/ld-collate.c:3772
-#: locale/programs/ld-ctype.c:2826 locale/programs/ld-identification.c:394
+#: locale/programs/ld-ctype.c:2827 locale/programs/ld-identification.c:394
#: locale/programs/ld-measurement.c:210 locale/programs/ld-messages.c:293
#: locale/programs/ld-monetary.c:746 locale/programs/ld-name.c:260
#: locale/programs/ld-numeric.c:323 locale/programs/ld-paper.c:210
@@ -2031,8 +2031,8 @@ msgstr "%s:Umurongo"
#: locale/programs/ld-collate.c:602 locale/programs/ld-collate.c:898
#: locale/programs/ld-collate.c:911 locale/programs/ld-collate.c:2582
#: locale/programs/ld-collate.c:2603 locale/programs/ld-collate.c:3957
-#: locale/programs/ld-ctype.c:1846 locale/programs/ld-ctype.c:2104
-#: locale/programs/ld-ctype.c:2676 locale/programs/ld-ctype.c:2837
+#: locale/programs/ld-ctype.c:1847 locale/programs/ld-ctype.c:2105
+#: locale/programs/ld-ctype.c:2677 locale/programs/ld-ctype.c:2838
#: locale/programs/ld-identification.c:404
#: locale/programs/ld-measurement.c:220 locale/programs/ld-messages.c:302
#: locale/programs/ld-monetary.c:755 locale/programs/ld-name.c:269
@@ -2417,59 +2417,59 @@ msgstr "Inyuguti"
msgid "implementation limit: no more than %d character maps allowed"
msgstr "Oya Birenzeho Inyuguti Amakarita"
-#: locale/programs/ld-ctype.c:1434 locale/programs/ld-ctype.c:1559
-#: locale/programs/ld-ctype.c:1665 locale/programs/ld-ctype.c:2341
-#: locale/programs/ld-ctype.c:3299
+#: locale/programs/ld-ctype.c:1435 locale/programs/ld-ctype.c:1560
+#: locale/programs/ld-ctype.c:1666 locale/programs/ld-ctype.c:2342
+#: locale/programs/ld-ctype.c:3302
#, fuzzy, c-format
msgid "%s: field `%s' does not contain exactly ten entries"
msgstr "%s:Umwanya OYA Ibyinjijwe"
-#: locale/programs/ld-ctype.c:1462 locale/programs/ld-ctype.c:2036
+#: locale/programs/ld-ctype.c:1463 locale/programs/ld-ctype.c:2037
#, fuzzy, c-format
msgid "to-value <U%0*X> of range is smaller than from-value <U%0*X>"
msgstr "Kuri Agaciro U Bya Urutonde ni Gitoya Bivuye Agaciro U"
-#: locale/programs/ld-ctype.c:1589
+#: locale/programs/ld-ctype.c:1590
#, fuzzy
msgid "start and end character sequence of range must have the same length"
msgstr "Gutangira Na Impera Inyuguti Bya Urutonde i Uburebure"
-#: locale/programs/ld-ctype.c:1596
+#: locale/programs/ld-ctype.c:1597
#, fuzzy
msgid "to-value character sequence is smaller than from-value sequence"
msgstr "Kuri Agaciro Inyuguti ni Gitoya Bivuye Agaciro"
-#: locale/programs/ld-ctype.c:1956 locale/programs/ld-ctype.c:2007
+#: locale/programs/ld-ctype.c:1957 locale/programs/ld-ctype.c:2008
#, fuzzy
msgid "premature end of `translit_ignore' definition"
msgstr "Impera Bya Insobanuro"
-#: locale/programs/ld-ctype.c:1962 locale/programs/ld-ctype.c:2013
-#: locale/programs/ld-ctype.c:2055
+#: locale/programs/ld-ctype.c:1963 locale/programs/ld-ctype.c:2014
+#: locale/programs/ld-ctype.c:2056
msgid "syntax error"
msgstr "Ikosa mu myandikire"
-#: locale/programs/ld-ctype.c:2188
+#: locale/programs/ld-ctype.c:2189
#, fuzzy, c-format
msgid "%s: syntax error in definition of new character class"
msgstr "%s:Ikosa in Insobanuro Bya Gishya Inyuguti ishuri"
-#: locale/programs/ld-ctype.c:2203
+#: locale/programs/ld-ctype.c:2204
#, fuzzy, c-format
msgid "%s: syntax error in definition of new character map"
msgstr "%s:Ikosa in Insobanuro Bya Gishya Inyuguti"
-#: locale/programs/ld-ctype.c:2363
+#: locale/programs/ld-ctype.c:2364
#, fuzzy
msgid "ellipsis range must be marked by two operands of same type"
msgstr "Urutonde cy/ byagarajwe ku Bya Ubwoko"
-#: locale/programs/ld-ctype.c:2372
+#: locale/programs/ld-ctype.c:2373
#, fuzzy
msgid "with symbolic name range values the absolute ellipsis `...' must not be used"
msgstr "Na: Izina: Urutonde Uduciro i OYA"
-#: locale/programs/ld-ctype.c:2387
+#: locale/programs/ld-ctype.c:2388
#, fuzzy
msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'"
msgstr ""
@@ -2482,81 +2482,81 @@ msgstr ""
"X- Generator: KBabel 1. 0\n"
"."
-#: locale/programs/ld-ctype.c:2401
+#: locale/programs/ld-ctype.c:2402
#, fuzzy
msgid "with character code range values one must use the absolute ellipsis `...'"
msgstr "Na: Inyuguti ITEGEKONGENGA Urutonde Uduciro Gukoresha i"
-#: locale/programs/ld-ctype.c:2552
+#: locale/programs/ld-ctype.c:2553
#, fuzzy, c-format
msgid "duplicated definition for mapping `%s'"
msgstr "Insobanuro kugirango Igereranya"
-#: locale/programs/ld-ctype.c:2638 locale/programs/ld-ctype.c:2782
+#: locale/programs/ld-ctype.c:2639 locale/programs/ld-ctype.c:2783
#, fuzzy, c-format
msgid "%s: `translit_start' section does not end with `translit_end'"
msgstr "%s:`Icyiciro OYA Impera Na:"
-#: locale/programs/ld-ctype.c:2733
+#: locale/programs/ld-ctype.c:2734
#, fuzzy, c-format
msgid "%s: duplicate `default_missing' definition"
msgstr "%s:Gusubiramo Insobanuro"
-#: locale/programs/ld-ctype.c:2738
+#: locale/programs/ld-ctype.c:2739
#, fuzzy
msgid "previous definition was here"
msgstr "Ibanjirije Insobanuro"
-#: locale/programs/ld-ctype.c:2760
+#: locale/programs/ld-ctype.c:2761
#, fuzzy, c-format
msgid "%s: no representable `default_missing' definition found"
msgstr "%s:Oya Insobanuro Byabonetse"
-#: locale/programs/ld-ctype.c:2877 locale/programs/ld-ctype.c:2973
-#: locale/programs/ld-ctype.c:2992 locale/programs/ld-ctype.c:3012
-#: locale/programs/ld-ctype.c:3032 locale/programs/ld-ctype.c:3052
-#: locale/programs/ld-ctype.c:3072 locale/programs/ld-ctype.c:3111
-#: locale/programs/ld-ctype.c:3131 locale/programs/ld-ctype.c:3195
-#: locale/programs/ld-ctype.c:3236 locale/programs/ld-ctype.c:3259
+#: locale/programs/ld-ctype.c:2878 locale/programs/ld-ctype.c:2974
+#: locale/programs/ld-ctype.c:2993 locale/programs/ld-ctype.c:3013
+#: locale/programs/ld-ctype.c:3033 locale/programs/ld-ctype.c:3053
+#: locale/programs/ld-ctype.c:3073 locale/programs/ld-ctype.c:3112
+#: locale/programs/ld-ctype.c:3132 locale/programs/ld-ctype.c:3198
+#: locale/programs/ld-ctype.c:3239 locale/programs/ld-ctype.c:3262
#, fuzzy, c-format
msgid "%s: character `%s' not defined while needed as default value"
msgstr "%s:Inyuguti OYA Nka Mburabuzi Agaciro"
-#: locale/programs/ld-ctype.c:2882 locale/programs/ld-ctype.c:2978
-#: locale/programs/ld-ctype.c:2997 locale/programs/ld-ctype.c:3017
-#: locale/programs/ld-ctype.c:3037 locale/programs/ld-ctype.c:3057
-#: locale/programs/ld-ctype.c:3077 locale/programs/ld-ctype.c:3116
-#: locale/programs/ld-ctype.c:3136 locale/programs/ld-ctype.c:3200
+#: locale/programs/ld-ctype.c:2883 locale/programs/ld-ctype.c:2979
+#: locale/programs/ld-ctype.c:2998 locale/programs/ld-ctype.c:3018
+#: locale/programs/ld-ctype.c:3038 locale/programs/ld-ctype.c:3058
+#: locale/programs/ld-ctype.c:3078 locale/programs/ld-ctype.c:3117
+#: locale/programs/ld-ctype.c:3137 locale/programs/ld-ctype.c:3203
#, fuzzy, c-format
msgid "%s: character `%s' in charmap not representable with one byte"
msgstr "%s:Inyuguti in OYA Na: Bayite"
-#: locale/programs/ld-ctype.c:3242 locale/programs/ld-ctype.c:3265
+#: locale/programs/ld-ctype.c:3245 locale/programs/ld-ctype.c:3268
#, fuzzy, c-format
msgid "%s: character `%s' needed as default value not representable with one byte"
msgstr "%s:Inyuguti Nka Mburabuzi Agaciro OYA Na: Bayite"
-#: locale/programs/ld-ctype.c:3321
+#: locale/programs/ld-ctype.c:3324
#, fuzzy
msgid "no output digits defined and none of the standard names in the charmap"
msgstr "Oya Ibisohoka Na Ntacyo Bya i Bisanzwe Amazina in i"
-#: locale/programs/ld-ctype.c:3570
+#: locale/programs/ld-ctype.c:3573
#, fuzzy, c-format
msgid "%s: transliteration data from locale `%s' not available"
msgstr "%s:Ibyatanzwe Bivuye Umwanya OYA Bihari"
-#: locale/programs/ld-ctype.c:3669
+#: locale/programs/ld-ctype.c:3672
#, fuzzy, c-format
msgid "%s: table for class \"%s\": %lu bytes"
msgstr "%s:imbonerahamwe# kugirango ishuri"
-#: locale/programs/ld-ctype.c:3733
+#: locale/programs/ld-ctype.c:3736
#, fuzzy, c-format
msgid "%s: table for map \"%s\": %lu bytes"
msgstr "%s:imbonerahamwe# kugirango"
-#: locale/programs/ld-ctype.c:3857
+#: locale/programs/ld-ctype.c:3860
#, fuzzy, c-format
msgid "%s: table for width: %lu bytes"
msgstr "%s:imbonerahamwe# kugirango Ubugari"
@@ -2811,136 +2811,130 @@ msgid ""
"[-a|-m]"
msgstr "a M"
-#: locale/programs/locale.c:190
-#, c-format
-msgid "Cannot set LC_CTYPE to default locale"
-msgstr ""
-
-#: locale/programs/locale.c:192
-#, c-format
-msgid "Cannot set LC_MESSAGES to default locale"
-msgstr ""
+#: locale/programs/locale.c:522
+#, fuzzy, c-format
+msgid "while preparing output"
+msgstr "Mugutegura... Ibisohoka"
-#: locale/programs/locale.c:205
+#: locale/programs/locale.c:998
#, c-format
-msgid "Cannot set LC_COLLATE to default locale"
+msgid "Cannot set %s to default locale"
msgstr ""
-#: locale/programs/locale.c:221
+#: locale/programs/locale.c:1096
#, c-format
-msgid "Cannot set LC_ALL to default locale"
+msgid "warning: The LOCPATH variable is set to \"%s\"\n"
msgstr ""
-#: locale/programs/locale.c:521
-#, fuzzy, c-format
-msgid "while preparing output"
-msgstr "Mugutegura... Ibisohoka"
-
-#: locale/programs/localedef.c:112
+#: locale/programs/localedef.c:116
msgid "Input Files:"
msgstr ""
-#: locale/programs/localedef.c:114
+#: locale/programs/localedef.c:118
#, fuzzy
msgid "Symbolic character names defined in FILE"
msgstr "Inyuguti Amazina in"
-#: locale/programs/localedef.c:116
+#: locale/programs/localedef.c:120
#, fuzzy
msgid "Source definitions are found in FILE"
msgstr "Byabonetse in"
-#: locale/programs/localedef.c:118
+#: locale/programs/localedef.c:122
#, fuzzy
msgid "FILE contains mapping from symbolic names to UCS4 values"
msgstr "Kirimo Igereranya Bivuye Amazina Kuri Uduciro"
-#: locale/programs/localedef.c:122
+#: locale/programs/localedef.c:126
#, fuzzy
msgid "Create output even if warning messages were issued"
msgstr "Ibisohoka ATARIIGIHARWE NIBA Iburira Ubutumwa Byasohowe"
-#: locale/programs/localedef.c:123
+#: locale/programs/localedef.c:128
+msgid "Do not create hard links between installed locales"
+msgstr ""
+
+#: locale/programs/localedef.c:129
#, fuzzy
msgid "Optional output file prefix"
msgstr "Ibisohoka IDOSIYE Imbanziriza"
-#: locale/programs/localedef.c:124
+#: locale/programs/localedef.c:130
msgid "Strictly conform to POSIX"
msgstr ""
-#: locale/programs/localedef.c:126
+#: locale/programs/localedef.c:132
#, fuzzy
msgid "Suppress warnings and information messages"
msgstr "Iburira Na Ibisobanuro Ubutumwa"
-#: locale/programs/localedef.c:127
+#: locale/programs/localedef.c:133
#, fuzzy
msgid "Print more messages"
msgstr "Birenzeho Ubutumwa"
-#: locale/programs/localedef.c:128 locale/programs/localedef.c:131
+#: locale/programs/localedef.c:134 locale/programs/localedef.c:137
#, fuzzy
msgid "<warnings>"
msgstr "Iburira!"
-#: locale/programs/localedef.c:129
+#: locale/programs/localedef.c:135
msgid "Comma-separated list of warnings to disable; supported warnings are: ascii, intcurrsym"
msgstr ""
-#: locale/programs/localedef.c:132
+#: locale/programs/localedef.c:138
msgid "Comma-separated list of warnings to enable; supported warnings are: ascii, intcurrsym"
msgstr ""
-#: locale/programs/localedef.c:135
+#: locale/programs/localedef.c:141
#, fuzzy
msgid "Archive control:"
msgstr "Igenzura"
-#: locale/programs/localedef.c:137
+#: locale/programs/localedef.c:143
#, fuzzy
msgid "Don't add new data to archive"
msgstr "Kongeramo Gishya Ibyatanzwe Kuri"
-#: locale/programs/localedef.c:139
+#: locale/programs/localedef.c:145
#, fuzzy
msgid "Add locales named by parameters to archive"
msgstr "ku Ibigenga Kuri"
-#: locale/programs/localedef.c:140
+#: locale/programs/localedef.c:146
#, fuzzy
msgid "Replace existing archive content"
msgstr "Ibikubiyemo"
-#: locale/programs/localedef.c:142
+#: locale/programs/localedef.c:148
#, fuzzy
msgid "Remove locales named by parameters from archive"
msgstr "ku Ibigenga Bivuye"
-#: locale/programs/localedef.c:143
+#: locale/programs/localedef.c:149
#, fuzzy
msgid "List content of archive"
msgstr "Ibikubiyemo Bya"
-#: locale/programs/localedef.c:145
+#: locale/programs/localedef.c:151
#, fuzzy
msgid "locale.alias file to consult when making archive"
msgstr "Umwanya."
-#: locale/programs/localedef.c:147
+#: locale/programs/localedef.c:153
msgid "Generate little-endian output"
msgstr ""
-#: locale/programs/localedef.c:149
+#: locale/programs/localedef.c:155
msgid "Generate big-endian output"
msgstr ""
-#: locale/programs/localedef.c:154
+#: locale/programs/localedef.c:160
#, fuzzy
msgid "Compile locale specification"
msgstr "Umwanya"
-#: locale/programs/localedef.c:157
+#: locale/programs/localedef.c:163
#, fuzzy
msgid ""
"NAME\n"
@@ -2948,33 +2942,33 @@ msgid ""
"--list-archive [FILE]"
msgstr "Kongeramo Kuri Gusiba Bivuye Urutonde"
-#: locale/programs/localedef.c:232
+#: locale/programs/localedef.c:238
#, fuzzy, c-format
msgid "cannot create directory for output files"
msgstr "Kurema bushyinguro kugirango Ibisohoka Idosiye"
-#: locale/programs/localedef.c:243
+#: locale/programs/localedef.c:249
#, fuzzy
msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
msgstr "Sisitemu OYA Kugaragaza..."
-#: locale/programs/localedef.c:257 locale/programs/localedef.c:273
-#: locale/programs/localedef.c:663 locale/programs/localedef.c:683
+#: locale/programs/localedef.c:263 locale/programs/localedef.c:279
+#: locale/programs/localedef.c:673 locale/programs/localedef.c:693
#, fuzzy, c-format
msgid "cannot open locale definition file `%s'"
msgstr "Gufungura Umwanya Insobanuro IDOSIYE"
-#: locale/programs/localedef.c:297
+#: locale/programs/localedef.c:303
#, fuzzy, c-format
msgid "cannot write output files to `%s'"
msgstr "Kwandika Ibisohoka Idosiye Kuri"
-#: locale/programs/localedef.c:303
+#: locale/programs/localedef.c:309
#, fuzzy
msgid "no output file produced because errors were issued"
msgstr "Oya Ibisohoka IDOSIYE Iburira Byasohowe"
-#: locale/programs/localedef.c:431
+#: locale/programs/localedef.c:441
#, fuzzy, c-format
msgid ""
"System's directory for character maps : %s\n"
@@ -2983,12 +2977,12 @@ msgid ""
"%s"
msgstr "bushyinguro kugirango Inyuguti Amakarita Amakarita Umwanya Inzira"
-#: locale/programs/localedef.c:631
+#: locale/programs/localedef.c:641
#, fuzzy
msgid "circular dependencies between locale definitions"
msgstr "Cy'uruziga hagati Umwanya"
-#: locale/programs/localedef.c:637
+#: locale/programs/localedef.c:647
#, fuzzy, c-format
msgid "cannot add already read locale `%s' a second time"
msgstr "Kongeramo Gusoma Umwanya a ISEGONDA Igihe"
@@ -3146,27 +3140,27 @@ msgstr "Gufungura Ibisohoka IDOSIYE kugirango Icyiciro"
msgid "failure while writing data for category `%s'"
msgstr "Ibyatanzwe kugirango Icyiciro"
-#: locale/programs/locfile.c:917
+#: locale/programs/locfile.c:930
#, fuzzy, c-format
msgid "cannot create output file `%s' for category `%s'"
msgstr "Kurema Ibisohoka IDOSIYE kugirango Icyiciro"
-#: locale/programs/locfile.c:953
+#: locale/programs/locfile.c:966
#, fuzzy
msgid "expecting string argument for `copy'"
msgstr "Ikurikiranyanyuguti kugirango"
-#: locale/programs/locfile.c:957
+#: locale/programs/locfile.c:970
#, fuzzy
msgid "locale name should consist only of portable characters"
msgstr "Umwanya Izina: Bya Inyuguti"
-#: locale/programs/locfile.c:976
+#: locale/programs/locfile.c:989
#, fuzzy
msgid "no other keyword shall be specified when `copy' is used"
msgstr "Oya Ikindi Ijambo- banze Ryari: ni"
-#: locale/programs/locfile.c:990
+#: locale/programs/locfile.c:1003
#, fuzzy, c-format
msgid "`%1$s' definition does not end with `END %1$s'"
msgstr "`%1$Insobanuro OYA Impera Na:"
@@ -4084,12 +4078,12 @@ msgstr "GUHINDURA Ubuturo Kuri"
msgid "yp_update: cannot get server address\n"
msgstr "Kubona Seriveri"
-#: nscd/aicache.c:83 nscd/hstcache.c:452
+#: nscd/aicache.c:82 nscd/hstcache.c:452
#, fuzzy, c-format
msgid "Haven't found \"%s\" in hosts cache!"
msgstr "Byabonetse in Ubwihisho"
-#: nscd/aicache.c:85 nscd/hstcache.c:454
+#: nscd/aicache.c:84 nscd/hstcache.c:454
#, fuzzy, c-format
msgid "Reloading \"%s\" in hosts cache!"
msgstr "Byabonetse in Ubwihisho"
@@ -4418,22 +4412,22 @@ msgstr ""
msgid "no more memory for database '%s'"
msgstr "Birenzeho Ibyabitswe in Ububikoshingiro"
-#: nscd/netgroupcache.c:121
+#: nscd/netgroupcache.c:122
#, fuzzy, c-format
msgid "Haven't found \"%s\" in netgroup cache!"
msgstr "Byabonetse in Itsinda Ubwihisho"
-#: nscd/netgroupcache.c:123
+#: nscd/netgroupcache.c:124
#, fuzzy, c-format
msgid "Reloading \"%s\" in netgroup cache!"
msgstr "Byabonetse in Itsinda Ubwihisho"
-#: nscd/netgroupcache.c:469
+#: nscd/netgroupcache.c:470
#, fuzzy, c-format
msgid "Haven't found \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr "Byabonetse in Itsinda Ubwihisho"
-#: nscd/netgroupcache.c:472
+#: nscd/netgroupcache.c:473
#, fuzzy, c-format
msgid "Reloading \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr "Byabonetse in Itsinda Ubwihisho"
@@ -4496,7 +4490,7 @@ msgstr "Ubwihisho kugirango Ukoresha:"
msgid "Name Service Cache Daemon."
msgstr ""
-#: nscd/nscd.c:155 nss/getent.c:967 nss/makedb.c:206
+#: nscd/nscd.c:155 nss/getent.c:987 nss/makedb.c:206
#, fuzzy, c-format
msgid "wrong number of arguments"
msgstr "Umubare Bya ingingo"
@@ -4600,27 +4594,27 @@ msgstr "Ikosa"
msgid "Must specify user name for server-user option"
msgstr "Ukoresha: Izina: kugirango Seriveri Ukoresha: Ihitamo"
-#: nscd/nscd_conf.c:198
+#: nscd/nscd_conf.c:201
#, fuzzy, c-format
msgid "Must specify user name for stat-user option"
msgstr "Ukoresha: Izina: kugirango Seriveri Ukoresha: Ihitamo"
-#: nscd/nscd_conf.c:255
+#: nscd/nscd_conf.c:259
#, fuzzy, c-format
msgid "Must specify value for restart-interval option"
msgstr "Ukoresha: Izina: kugirango Seriveri Ukoresha: Ihitamo"
-#: nscd/nscd_conf.c:269
+#: nscd/nscd_conf.c:273
#, fuzzy, c-format
msgid "Unknown option: %s %s %s"
msgstr "Ihitamo ritazwi:"
-#: nscd/nscd_conf.c:282
+#: nscd/nscd_conf.c:286
#, c-format
msgid "cannot get current working directory: %s; disabling paranoia mode"
msgstr ""
-#: nscd/nscd_conf.c:302
+#: nscd/nscd_conf.c:306
#, c-format
msgid "maximum file size for %s database too small"
msgstr ""
@@ -4844,50 +4838,50 @@ msgstr "Byabonetse in Ubwihisho"
msgid "Reloading \"%s\" in services cache!"
msgstr "Byabonetse in Ubwihisho"
-#: nss/getent.c:54
+#: nss/getent.c:55
#, fuzzy
msgid "database [key ...]"
msgstr "Ububikoshingiro Urufunguzo"
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "CONFIG"
msgstr ""
-#: nss/getent.c:59
+#: nss/getent.c:60
#, fuzzy
msgid "Service configuration to be used"
msgstr "Iboneza Kuri"
-#: nss/getent.c:60
+#: nss/getent.c:61
msgid "disable IDN encoding"
msgstr ""
-#: nss/getent.c:65
+#: nss/getent.c:66
#, fuzzy
msgid "Get entries from administrative database."
msgstr "Kubona Ibyinjijwe Bivuye Ububikoshingiro"
-#: nss/getent.c:149 nss/getent.c:442 nss/getent.c:489
+#: nss/getent.c:150 nss/getent.c:462 nss/getent.c:509
#, fuzzy, c-format
msgid "Enumeration not supported on %s\n"
msgstr "OYA ku"
-#: nss/getent.c:497 nss/getent.c:510
+#: nss/getent.c:517 nss/getent.c:530
#, fuzzy, c-format
msgid "Could not allocate group list: %m\n"
msgstr "OYA Kurema LOG IDOSIYE"
-#: nss/getent.c:881
+#: nss/getent.c:901
#, fuzzy, c-format
msgid "Unknown database name"
msgstr "Ububikoshingiro"
-#: nss/getent.c:911
+#: nss/getent.c:931
#, fuzzy
msgid "Supported databases:\n"
msgstr "Ububikoshingiro"
-#: nss/getent.c:977
+#: nss/getent.c:997
#, fuzzy, c-format
msgid "Unknown database: %s\n"
msgstr "Ububikoshingiro"
@@ -5146,12 +5140,12 @@ msgstr "imvugo"
msgid "Unmatched ) or \\)"
msgstr "Cyangwa"
-#: posix/regcomp.c:689
+#: posix/regcomp.c:676
#, fuzzy
msgid "No previous regular expression"
msgstr "Ibanjirije Ibisanzwe imvugo"
-#: posix/wordexp.c:1815
+#: posix/wordexp.c:1816
#, fuzzy
msgid "parameter null or not set"
msgstr "NTAGIHARI Cyangwa OYA Gushyiraho"
@@ -5360,7 +5354,7 @@ msgstr "Umwanya Bihari"
msgid "Input message available"
msgstr "Umwanya Bihari"
-#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:381 timezone/zic.c:520
+#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:375 timezone/zic.c:561
#, fuzzy
msgid "I/O error"
msgstr "Ikosa"
@@ -5449,7 +5443,7 @@ msgstr ""
#: sunrpc/auth_unix.c:112 sunrpc/clnt_tcp.c:124 sunrpc/clnt_udp.c:139
#: sunrpc/clnt_unix.c:125 sunrpc/svc_tcp.c:189 sunrpc/svc_tcp.c:233
#: sunrpc/svc_udp.c:161 sunrpc/svc_unix.c:189 sunrpc/svc_unix.c:229
-#: sunrpc/xdr.c:628 sunrpc/xdr.c:788 sunrpc/xdr_array.c:102
+#: sunrpc/xdr.c:631 sunrpc/xdr.c:791 sunrpc/xdr_array.c:102
#: sunrpc/xdr_rec.c:153 sunrpc/xdr_ref.c:79
#, fuzzy
#| msgid "out of memory"
@@ -6834,65 +6828,78 @@ msgid "You really blew it this time"
msgstr "iyi Igihe"
#. TRANS Go home and have a glass of warm, dairy-fresh milk.
-#: sysdeps/gnu/errlist.c:978
+#. TRANS @c Okay. Since you are dying to know, I'll tell you.
+#. TRANS @c This is a joke, obviously. There is a children's song which begins,
+#. TRANS @c "Old McDonald had a farm, e-i-e-i-o." Every time I see the (real)
+#. TRANS @c errno macro EIO, I think about that song. Probably most of my
+#. TRANS @c compatriots who program on Unix do, too. One of them must have stayed
+#. TRANS @c up a little too late one night and decided to add it to Hurd or Glibc.
+#. TRANS @c Whoever did it should be castigated, but it made me laugh.
+#. TRANS @c --jtobey@channel1.com
+#. TRANS @c
+#. TRANS @c "bought the farm" means "died". -jtobey
+#. TRANS @c
+#. TRANS @c Translators, please do not translate this litteraly, translate it into
+#. TRANS @c an idiomatic funny way of saying that the computer died.
+#: sysdeps/gnu/errlist.c:991
#, fuzzy
msgid "Computer bought the farm"
msgstr "i"
#. TRANS This error code has no purpose.
-#: sysdeps/gnu/errlist.c:987
+#: sysdeps/gnu/errlist.c:1000
#, fuzzy
msgid "Gratuitous error"
msgstr "Ikosa"
-#: sysdeps/gnu/errlist.c:995
+#: sysdeps/gnu/errlist.c:1008
#, fuzzy
msgid "Bad message"
msgstr "Ubutumwa"
-#: sysdeps/gnu/errlist.c:1003
+#: sysdeps/gnu/errlist.c:1016
#, fuzzy
msgid "Identifier removed"
msgstr "Cyavanyweho"
-#: sysdeps/gnu/errlist.c:1011
+#: sysdeps/gnu/errlist.c:1024
msgid "Multihop attempted"
msgstr ""
-#: sysdeps/gnu/errlist.c:1019
+#: sysdeps/gnu/errlist.c:1032
#, fuzzy
msgid "No data available"
msgstr "Ibyatanzwe Bihari"
-#: sysdeps/gnu/errlist.c:1027
+#: sysdeps/gnu/errlist.c:1040
msgid "Link has been severed"
msgstr ""
-#: sysdeps/gnu/errlist.c:1035
+#: sysdeps/gnu/errlist.c:1048
#, fuzzy
msgid "No message of desired type"
msgstr "Ubutumwa Bya Ubwoko"
-#: sysdeps/gnu/errlist.c:1043
+#: sysdeps/gnu/errlist.c:1056
#, fuzzy
msgid "Out of streams resources"
msgstr "Bya"
-#: sysdeps/gnu/errlist.c:1051
+#: sysdeps/gnu/errlist.c:1064
#, fuzzy
msgid "Device not a stream"
msgstr "OYA a"
-#: sysdeps/gnu/errlist.c:1059
+#: sysdeps/gnu/errlist.c:1072
#, fuzzy
msgid "Value too large for defined data type"
msgstr "Binini kugirango Ibyatanzwe Ubwoko"
-#: sysdeps/gnu/errlist.c:1067
+#: sysdeps/gnu/errlist.c:1080
msgid "Protocol error"
msgstr "Ikosa rya Protocol"
-#: sysdeps/gnu/errlist.c:1075
+#: sysdeps/gnu/errlist.c:1088
#, fuzzy
msgid "Timer expired"
msgstr "Byarengeje igihe"
@@ -6901,155 +6908,155 @@ msgstr "Byarengeje igihe"
#. TRANS completed. @xref{Asynchronous I/O}. When you call @code{aio_cancel},
#. TRANS the normal result is for the operations affected to complete with this
#. TRANS error; @pxref{Cancel AIO Operations}.
-#: sysdeps/gnu/errlist.c:1087
+#: sysdeps/gnu/errlist.c:1100
msgid "Operation canceled"
msgstr ""
-#: sysdeps/gnu/errlist.c:1095
+#: sysdeps/gnu/errlist.c:1108
msgid "Owner died"
msgstr ""
-#: sysdeps/gnu/errlist.c:1103
+#: sysdeps/gnu/errlist.c:1116
msgid "State not recoverable"
msgstr ""
-#: sysdeps/gnu/errlist.c:1111
+#: sysdeps/gnu/errlist.c:1124
#, fuzzy
msgid "Interrupted system call should be restarted"
msgstr "Sisitemu"
-#: sysdeps/gnu/errlist.c:1119
+#: sysdeps/gnu/errlist.c:1132
#, fuzzy
msgid "Channel number out of range"
msgstr "Umubare Inyuma Bya Urutonde"
-#: sysdeps/gnu/errlist.c:1127
+#: sysdeps/gnu/errlist.c:1140
#, fuzzy
msgid "Level 2 not synchronized"
msgstr "2. OYA"
-#: sysdeps/gnu/errlist.c:1135
+#: sysdeps/gnu/errlist.c:1148
#, fuzzy
msgid "Level 3 halted"
msgstr "3."
-#: sysdeps/gnu/errlist.c:1143
+#: sysdeps/gnu/errlist.c:1156
#, fuzzy
msgid "Level 3 reset"
msgstr "3. Kugarura"
-#: sysdeps/gnu/errlist.c:1151
+#: sysdeps/gnu/errlist.c:1164
#, fuzzy
msgid "Link number out of range"
msgstr "Umubare Inyuma Bya Urutonde"
-#: sysdeps/gnu/errlist.c:1159
+#: sysdeps/gnu/errlist.c:1172
#, fuzzy
msgid "Protocol driver not attached"
msgstr "Musomyi: OYA"
-#: sysdeps/gnu/errlist.c:1167
+#: sysdeps/gnu/errlist.c:1180
#, fuzzy
msgid "No CSI structure available"
msgstr "Imiterere Bihari"
-#: sysdeps/gnu/errlist.c:1175
+#: sysdeps/gnu/errlist.c:1188
#, fuzzy
msgid "Level 2 halted"
msgstr "2."
-#: sysdeps/gnu/errlist.c:1183
+#: sysdeps/gnu/errlist.c:1196
msgid "Invalid exchange"
msgstr ""
-#: sysdeps/gnu/errlist.c:1191
+#: sysdeps/gnu/errlist.c:1204
#, fuzzy
msgid "Invalid request descriptor"
msgstr "Kubaza..."
-#: sysdeps/gnu/errlist.c:1199
+#: sysdeps/gnu/errlist.c:1212
msgid "Exchange full"
msgstr ""
-#: sysdeps/gnu/errlist.c:1207
+#: sysdeps/gnu/errlist.c:1220
msgid "No anode"
msgstr ""
-#: sysdeps/gnu/errlist.c:1215
+#: sysdeps/gnu/errlist.c:1228
#, fuzzy
msgid "Invalid request code"
msgstr "Kubaza... ITEGEKONGENGA"
-#: sysdeps/gnu/errlist.c:1223
+#: sysdeps/gnu/errlist.c:1236
msgid "Invalid slot"
msgstr ""
-#: sysdeps/gnu/errlist.c:1231
+#: sysdeps/gnu/errlist.c:1244
#, fuzzy
msgid "File locking deadlock error"
msgstr "Idosiye Ikosa"
-#: sysdeps/gnu/errlist.c:1239
+#: sysdeps/gnu/errlist.c:1252
#, fuzzy
msgid "Bad font file format"
msgstr "Intego- nyuguti IDOSIYE Imiterere"
-#: sysdeps/gnu/errlist.c:1247
+#: sysdeps/gnu/errlist.c:1260
#, fuzzy
msgid "Machine is not on the network"
msgstr "ni OYA ku i urusobe"
-#: sysdeps/gnu/errlist.c:1255
+#: sysdeps/gnu/errlist.c:1268
#, fuzzy
msgid "Package not installed"
msgstr "OYA"
-#: sysdeps/gnu/errlist.c:1263
+#: sysdeps/gnu/errlist.c:1276
#, fuzzy
msgid "Advertise error"
msgstr "Ikosa"
-#: sysdeps/gnu/errlist.c:1271
+#: sysdeps/gnu/errlist.c:1284
#, fuzzy
msgid "Srmount error"
msgstr "Ikosa"
-#: sysdeps/gnu/errlist.c:1279
+#: sysdeps/gnu/errlist.c:1292
#, fuzzy
msgid "Communication error on send"
msgstr "Ikosa ku Kohereza"
-#: sysdeps/gnu/errlist.c:1287
+#: sysdeps/gnu/errlist.c:1300
#, fuzzy
msgid "RFS specific error"
msgstr "Ikosa"
-#: sysdeps/gnu/errlist.c:1295
+#: sysdeps/gnu/errlist.c:1308
#, fuzzy
msgid "Name not unique on network"
msgstr "OYA Cyo nyine ku urusobe"
-#: sysdeps/gnu/errlist.c:1303
+#: sysdeps/gnu/errlist.c:1316
#, fuzzy
msgid "File descriptor in bad state"
msgstr "Idosiye in Leta"
-#: sysdeps/gnu/errlist.c:1311
+#: sysdeps/gnu/errlist.c:1324
#, fuzzy
msgid "Remote address changed"
msgstr "Aderesi Byahinduwe"
-#: sysdeps/gnu/errlist.c:1319
+#: sysdeps/gnu/errlist.c:1332
#, fuzzy
msgid "Can not access a needed shared library"
msgstr "OYA a Isomero"
-#: sysdeps/gnu/errlist.c:1327
+#: sysdeps/gnu/errlist.c:1340
#, fuzzy
msgid "Accessing a corrupted shared library"
msgstr "a Isomero"
-#: sysdeps/gnu/errlist.c:1335
+#: sysdeps/gnu/errlist.c:1348
#, fuzzy
msgid ".lib section in a.out corrupted"
msgstr ""
@@ -7062,79 +7069,79 @@ msgstr ""
"X- Generator: KBabel 1. 0\n"
"."
-#: sysdeps/gnu/errlist.c:1343
+#: sysdeps/gnu/errlist.c:1356
#, fuzzy
msgid "Attempting to link in too many shared libraries"
msgstr "Kuri Ihuza in Amasomero"
-#: sysdeps/gnu/errlist.c:1351
+#: sysdeps/gnu/errlist.c:1364
#, fuzzy
msgid "Cannot exec a shared library directly"
msgstr "a Isomero"
-#: sysdeps/gnu/errlist.c:1359
+#: sysdeps/gnu/errlist.c:1372
#, fuzzy
msgid "Streams pipe error"
msgstr "Ikosa"
-#: sysdeps/gnu/errlist.c:1367
+#: sysdeps/gnu/errlist.c:1380
msgid "Structure needs cleaning"
msgstr ""
-#: sysdeps/gnu/errlist.c:1375
+#: sysdeps/gnu/errlist.c:1388
#, fuzzy
msgid "Not a XENIX named type file"
msgstr "a Ubwoko IDOSIYE"
-#: sysdeps/gnu/errlist.c:1383
+#: sysdeps/gnu/errlist.c:1396
#, fuzzy
msgid "No XENIX semaphores available"
msgstr "Bihari"
-#: sysdeps/gnu/errlist.c:1391
+#: sysdeps/gnu/errlist.c:1404
#, fuzzy
msgid "Is a named type file"
msgstr "a Ubwoko IDOSIYE"
-#: sysdeps/gnu/errlist.c:1399
+#: sysdeps/gnu/errlist.c:1412
#, fuzzy
msgid "Remote I/O error"
msgstr "Ikosa"
-#: sysdeps/gnu/errlist.c:1407
+#: sysdeps/gnu/errlist.c:1420
#, fuzzy
msgid "No medium found"
msgstr "biringaniye Byabonetse"
-#: sysdeps/gnu/errlist.c:1415
+#: sysdeps/gnu/errlist.c:1428
#, fuzzy
msgid "Wrong medium type"
msgstr "biringaniye Ubwoko"
-#: sysdeps/gnu/errlist.c:1423
+#: sysdeps/gnu/errlist.c:1436
#, fuzzy
msgid "Required key not available"
msgstr "Porogaramu OYA Bihari"
-#: sysdeps/gnu/errlist.c:1431
+#: sysdeps/gnu/errlist.c:1444
#, fuzzy
msgid "Key has expired"
msgstr "Byarengeje igihe"
-#: sysdeps/gnu/errlist.c:1439
+#: sysdeps/gnu/errlist.c:1452
msgid "Key has been revoked"
msgstr ""
-#: sysdeps/gnu/errlist.c:1447
+#: sysdeps/gnu/errlist.c:1460
msgid "Key was rejected by service"
msgstr ""
-#: sysdeps/gnu/errlist.c:1455
+#: sysdeps/gnu/errlist.c:1468
#, fuzzy
msgid "Operation not possible due to RF-kill"
msgstr "OYA"
-#: sysdeps/gnu/errlist.c:1463
+#: sysdeps/gnu/errlist.c:1476
msgid "Memory page has hardware error"
msgstr ""
@@ -7274,27 +7281,27 @@ msgstr ""
msgid "can't disable CET"
msgstr ""
-#: timezone/zdump.c:338
+#: timezone/zdump.c:332
msgid "has fewer than 3 characters"
msgstr ""
-#: timezone/zdump.c:340
+#: timezone/zdump.c:334
msgid "has more than 6 characters"
msgstr ""
-#: timezone/zdump.c:342
+#: timezone/zdump.c:336
msgid "has characters other than ASCII alphanumerics, '-' or '+'"
msgstr ""
-#: timezone/zdump.c:347
+#: timezone/zdump.c:341
#, c-format
msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n"
msgstr ""
-#: timezone/zdump.c:393
+#: timezone/zdump.c:387
#, c-format
msgid ""
-"%s: usage: %s OPTIONS ZONENAME ...\n"
+"%s: usage: %s OPTIONS TIMEZONE ...\n"
"Options include:\n"
" -c [L,]U Start at year L (default -500), end before year U (default 2500)\n"
" -t [L,]U Start at time L, end before time U (in seconds since 1970)\n"
@@ -7307,472 +7314,496 @@ msgid ""
"Report bugs to %s.\n"
msgstr ""
-#: timezone/zdump.c:479
+#: timezone/zdump.c:473
#, c-format
msgid "%s: wild -c argument %s\n"
msgstr ""
-#: timezone/zdump.c:512
+#: timezone/zdump.c:506
#, c-format
msgid "%s: wild -t argument %s\n"
msgstr ""
-#: timezone/zic.c:398
+#: timezone/zic.c:429
#, c-format
msgid "%s: Memory exhausted: %s\n"
msgstr ""
-#: timezone/zic.c:406
+#: timezone/zic.c:437
#, fuzzy
msgid "size overflow"
msgstr "Igihe Byarenze urugero"
-#: timezone/zic.c:454
+#: timezone/zic.c:447
+#, fuzzy
+msgid "alignment overflow"
+msgstr "Igihe Byarenze urugero"
+
+#: timezone/zic.c:495
#, fuzzy
msgid "integer overflow"
msgstr "Igihe Byarenze urugero"
-#: timezone/zic.c:488
+#: timezone/zic.c:529
#, fuzzy, c-format
msgid "\"%s\", line %<PRIdMAX>: "
msgstr "\"%s\",Umurongo"
-#: timezone/zic.c:491
+#: timezone/zic.c:532
#, fuzzy, c-format
msgid " (rule from \"%s\", line %<PRIdMAX>)"
msgstr "(Bivuye Umurongo"
-#: timezone/zic.c:510
+#: timezone/zic.c:551
#, fuzzy, c-format
msgid "warning: "
msgstr "Iburira!"
-#: timezone/zic.c:535
+#: timezone/zic.c:576
#, fuzzy, c-format
msgid ""
"%s: usage is %s [ --version ] [ --help ] [ -v ] \\\n"
"\t[ -l localtime ] [ -p posixrules ] [ -d directory ] \\\n"
-"\t[ -L leapseconds ] [ filename ... ]\n"
+"\t[ -t localtime-link ] [ -L leapseconds ] [ filename ... ]\n"
"\n"
"Report bugs to %s.\n"
msgstr "%s:Ikoresha: ni S v L P D bushyinguro Y Izina ry'idosiye:"
-#: timezone/zic.c:558
+#: timezone/zic.c:599
#, fuzzy, c-format
msgid "%s: Can't chdir to %s: %s\n"
msgstr "%s:Kurema"
-#: timezone/zic.c:590
+#: timezone/zic.c:632
msgid "wild compilation-time specification of zic_t"
msgstr ""
-#: timezone/zic.c:610
+#: timezone/zic.c:652
#, fuzzy, c-format
msgid "%s: More than one -d option specified\n"
msgstr "%s:D Ihitamo"
-#: timezone/zic.c:620
+#: timezone/zic.c:662
#, fuzzy, c-format
msgid "%s: More than one -l option specified\n"
msgstr "%s:L Ihitamo"
-#: timezone/zic.c:630
+#: timezone/zic.c:672
#, fuzzy, c-format
msgid "%s: More than one -p option specified\n"
msgstr "%s:P Ihitamo"
-#: timezone/zic.c:640
+#: timezone/zic.c:680
+#, fuzzy, c-format
+msgid "%s: More than one -t option specified\n"
+msgstr "%s:D Ihitamo"
+
+#: timezone/zic.c:689
+msgid "-y is obsolescent"
+msgstr ""
+
+#: timezone/zic.c:693
#, fuzzy, c-format
msgid "%s: More than one -y option specified\n"
msgstr "%s:Y Ihitamo"
-#: timezone/zic.c:650
+#: timezone/zic.c:703
#, fuzzy, c-format
msgid "%s: More than one -L option specified\n"
msgstr "%s:Ihitamo"
-#: timezone/zic.c:659
+#: timezone/zic.c:712
msgid "-s ignored"
msgstr ""
-#: timezone/zic.c:698
+#: timezone/zic.c:753
msgid "link to link"
msgstr ""
-#: timezone/zic.c:701 timezone/zic.c:705
+#: timezone/zic.c:756 timezone/zic.c:760
#, fuzzy
msgid "command line"
msgstr "amahuza"
-#: timezone/zic.c:721
+#: timezone/zic.c:776
#, fuzzy
msgid "empty file name"
msgstr "IDOSIYE Umubare"
-#: timezone/zic.c:724
+#: timezone/zic.c:779
#, c-format
msgid "file name '%s' begins with '/'"
msgstr ""
-#: timezone/zic.c:734
+#: timezone/zic.c:789
#, c-format
msgid "file name '%s' contains '%.*s' component"
msgstr ""
-#: timezone/zic.c:740
+#: timezone/zic.c:795
#, c-format
msgid "file name '%s' component contains leading '-'"
msgstr ""
-#: timezone/zic.c:743
+#: timezone/zic.c:798
#, c-format
msgid "file name '%s' contains overlength component '%.*s...'"
msgstr ""
-#: timezone/zic.c:771
+#: timezone/zic.c:826
#, c-format
msgid "file name '%s' contains byte '%c'"
msgstr ""
-#: timezone/zic.c:772
+#: timezone/zic.c:827
#, c-format
msgid "file name '%s' contains byte '\\%o'"
msgstr ""
-#: timezone/zic.c:842
+#: timezone/zic.c:897
#, fuzzy, c-format
msgid "%s: link from %s/%s failed: %s\n"
msgstr "%s:Ihuza Bivuye Kuri"
-#: timezone/zic.c:852 timezone/zic.c:1815
+#: timezone/zic.c:907 timezone/zic.c:1876
#, fuzzy, c-format
msgid "%s: Can't remove %s/%s: %s\n"
msgstr "%s:Gukuraho..."
-#: timezone/zic.c:874
+#: timezone/zic.c:931
#, c-format
msgid "symbolic link used because hard link failed: %s"
msgstr ""
-#: timezone/zic.c:882
+#: timezone/zic.c:939
#, fuzzy, c-format
msgid "%s: Can't read %s/%s: %s\n"
msgstr "%s:Kurema"
-#: timezone/zic.c:889 timezone/zic.c:1828
+#: timezone/zic.c:946 timezone/zic.c:1889
#, fuzzy, c-format
msgid "%s: Can't create %s/%s: %s\n"
msgstr "%s:Kurema"
-#: timezone/zic.c:898
+#: timezone/zic.c:955
#, c-format
msgid "copy used because hard link failed: %s"
msgstr ""
-#: timezone/zic.c:901
+#: timezone/zic.c:958
#, c-format
msgid "copy used because symbolic link failed: %s"
msgstr ""
-#: timezone/zic.c:1013 timezone/zic.c:1015
+#: timezone/zic.c:1032 timezone/zic.c:1034
#, fuzzy
msgid "same rule name in multiple files"
msgstr "Izina: in Igikubo Idosiye"
-#: timezone/zic.c:1056
-msgid "unruly zone"
-msgstr ""
-
-#: timezone/zic.c:1063
+#: timezone/zic.c:1081
#, fuzzy, c-format
msgid "%s in ruleless zone"
msgstr "%sin"
-#: timezone/zic.c:1083
+#: timezone/zic.c:1101
#, fuzzy
msgid "standard input"
msgstr "Bisanzwe Iyinjiza"
-#: timezone/zic.c:1088
+#: timezone/zic.c:1106
#, fuzzy, c-format
msgid "%s: Can't open %s: %s\n"
msgstr "%s:Gufungura"
-#: timezone/zic.c:1099
+#: timezone/zic.c:1117
#, fuzzy
msgid "line too long"
msgstr "Umurongo"
-#: timezone/zic.c:1119
+#: timezone/zic.c:1139
#, fuzzy
msgid "input line of unknown type"
msgstr "Iyinjiza Umurongo Bya Kitazwi Ubwoko"
-#: timezone/zic.c:1134
-#, fuzzy, c-format
-msgid "%s: Leap line in non leap seconds file %s"
-msgstr "%s:Umurongo in amasogonda IDOSIYE"
-
-#: timezone/zic.c:1142 timezone/zic.c:1547 timezone/zic.c:1569
+#: timezone/zic.c:1158 timezone/zic.c:1593 timezone/zic.c:1615
#, c-format
msgid "%s: panic: Invalid l_value %d\n"
msgstr ""
-#: timezone/zic.c:1151
+#: timezone/zic.c:1167
#, fuzzy
msgid "expected continuation line not found"
msgstr "Ikitezwe: Umurongo OYA Byabonetse"
-#: timezone/zic.c:1193 timezone/zic.c:2976
+#: timezone/zic.c:1203
+msgid "fractional seconds rejected by pre-2018 versions of zic"
+msgstr ""
+
+#: timezone/zic.c:1221 timezone/zic.c:3078
#, fuzzy
msgid "time overflow"
msgstr "Igihe Byarenze urugero"
-#: timezone/zic.c:1198
+#: timezone/zic.c:1227
msgid "values over 24 hours not handled by pre-2007 versions of zic"
msgstr ""
-#: timezone/zic.c:1209
+#: timezone/zic.c:1245
+#, fuzzy
+msgid "invalid saved time"
+msgstr "Sibyo Igihe"
+
+#: timezone/zic.c:1256
#, fuzzy
msgid "wrong number of fields on Rule line"
msgstr "Umubare Bya Imyanya ku Umurongo"
-#: timezone/zic.c:1213
-msgid "nameless rule"
-msgstr ""
-
-#: timezone/zic.c:1218
-#, fuzzy
-msgid "invalid saved time"
-msgstr "Sibyo Igihe"
+#: timezone/zic.c:1265
+#, fuzzy, c-format
+msgid "Invalid rule name \"%s\""
+msgstr "Bikurikije umubare"
-#: timezone/zic.c:1235
+#: timezone/zic.c:1287
#, fuzzy
msgid "wrong number of fields on Zone line"
msgstr "Umubare Bya Imyanya ku Umurongo"
-#: timezone/zic.c:1240
+#: timezone/zic.c:1292
#, fuzzy, c-format
msgid "\"Zone %s\" line and -l option are mutually exclusive"
msgstr "\"Umurongo Na L Ihitamo"
-#: timezone/zic.c:1246
+#: timezone/zic.c:1298
#, fuzzy, c-format
msgid "\"Zone %s\" line and -p option are mutually exclusive"
msgstr "\"Umurongo Na P Ihitamo"
-#: timezone/zic.c:1253
+#: timezone/zic.c:1305
#, fuzzy, c-format
msgid "duplicate zone name %s (file \"%s\", line %<PRIdMAX>)"
msgstr "Gusubiramo Izina: IDOSIYE Umurongo"
-#: timezone/zic.c:1267
+#: timezone/zic.c:1319
#, fuzzy
msgid "wrong number of fields on Zone continuation line"
msgstr "Umubare Bya Imyanya ku Umurongo"
-#: timezone/zic.c:1307
+#: timezone/zic.c:1359
#, fuzzy
msgid "invalid UT offset"
msgstr "Sibyo Nta- boneza"
-#: timezone/zic.c:1311
+#: timezone/zic.c:1363
#, fuzzy
msgid "invalid abbreviation format"
msgstr "Sibyo Impine Imiterere"
-#: timezone/zic.c:1320
+#: timezone/zic.c:1372
#, c-format
msgid "format '%s' not handled by pre-2015 versions of zic"
msgstr ""
-#: timezone/zic.c:1347
+#: timezone/zic.c:1399
#, fuzzy
msgid "Zone continuation line end time is not after end time of previous line"
msgstr "Umurongo Impera Igihe ni OYA Nyuma Impera Igihe Bya Ibanjirije Umurongo"
-#: timezone/zic.c:1374
+#: timezone/zic.c:1426
#, fuzzy
msgid "wrong number of fields on Leap line"
msgstr "Umubare Bya Imyanya ku Umurongo"
-#: timezone/zic.c:1383
+#: timezone/zic.c:1435
#, fuzzy
msgid "invalid leaping year"
msgstr "Sibyo Umwaka"
-#: timezone/zic.c:1403 timezone/zic.c:1501
+#: timezone/zic.c:1455 timezone/zic.c:1547
#, fuzzy
msgid "invalid month name"
msgstr "Sibyo Ukwezi Izina:"
-#: timezone/zic.c:1416 timezone/zic.c:1614 timezone/zic.c:1628
+#: timezone/zic.c:1468 timezone/zic.c:1663 timezone/zic.c:1677
#, fuzzy
msgid "invalid day of month"
msgstr "Sibyo UMUNSI Bya Ukwezi"
-#: timezone/zic.c:1421
+#: timezone/zic.c:1473
msgid "time too small"
msgstr ""
-#: timezone/zic.c:1425
+#: timezone/zic.c:1477
#, fuzzy
msgid "time too large"
msgstr "Idosiye Binini"
-#: timezone/zic.c:1429 timezone/zic.c:1530
+#: timezone/zic.c:1481 timezone/zic.c:1576
#, fuzzy
msgid "invalid time of day"
msgstr "Sibyo Igihe Bya UMUNSI"
-#: timezone/zic.c:1448
+#: timezone/zic.c:1494
#, fuzzy
msgid "illegal CORRECTION field on Leap line"
msgstr "Umwanya ku Umurongo"
-#: timezone/zic.c:1453
+#: timezone/zic.c:1499
#, fuzzy
msgid "illegal Rolling/Stationary field on Leap line"
msgstr "Umwanya ku Umurongo"
-#: timezone/zic.c:1459
-msgid "leap second precedes Big Bang"
+#: timezone/zic.c:1505
+msgid "leap second precedes Epoch"
msgstr ""
-#: timezone/zic.c:1472
+#: timezone/zic.c:1518
#, fuzzy
msgid "wrong number of fields on Link line"
msgstr "Umubare Bya Imyanya ku Umurongo"
-#: timezone/zic.c:1476
+#: timezone/zic.c:1522
#, fuzzy
msgid "blank FROM field on Link line"
msgstr "Ahatanditseho Umwanya ku Umurongo"
-#: timezone/zic.c:1551
+#: timezone/zic.c:1597
#, fuzzy
msgid "invalid starting year"
msgstr "Sibyo Umwaka"
-#: timezone/zic.c:1573
+#: timezone/zic.c:1619
#, fuzzy
msgid "invalid ending year"
msgstr "Sibyo Umwaka"
-#: timezone/zic.c:1577
+#: timezone/zic.c:1623
#, fuzzy
msgid "starting year greater than ending year"
msgstr "Umwaka Biruta Umwaka"
-#: timezone/zic.c:1584
+#: timezone/zic.c:1630
#, fuzzy
msgid "typed single year"
msgstr "UMWE Umwaka"
-#: timezone/zic.c:1619
+#: timezone/zic.c:1633
+#, c-format
+msgid "year type \"%s\" is obsolete; use \"-\" instead"
+msgstr ""
+
+#: timezone/zic.c:1668
#, fuzzy
msgid "invalid weekday name"
msgstr "Sibyo UMUNSIICYUMWERU Izina:"
-#: timezone/zic.c:1743
+#: timezone/zic.c:1800
#, c-format
msgid "reference clients mishandle more than %d transition times"
msgstr ""
-#: timezone/zic.c:1747
+#: timezone/zic.c:1804
msgid "pre-2014 clients may mishandle more than 1200 transition times"
msgstr ""
-#: timezone/zic.c:1858
+#: timezone/zic.c:1920
#, fuzzy
msgid "too many transition times"
msgstr "Igihe"
-#: timezone/zic.c:2047
+#: timezone/zic.c:2107
#, c-format
-msgid "%%z UTC offset magnitude exceeds 99:59:59"
+msgid "%%z UT offset magnitude exceeds 99:59:59"
msgstr ""
-#: timezone/zic.c:2424
+#: timezone/zic.c:2488
msgid "no POSIX environment variable for zone"
msgstr ""
-#: timezone/zic.c:2430
+#: timezone/zic.c:2494
#, c-format
msgid "%s: pre-%d clients may mishandle distant timestamps"
msgstr ""
-#: timezone/zic.c:2566
+#: timezone/zic.c:2631
msgid "two rules for same instant"
msgstr ""
-#: timezone/zic.c:2627
+#: timezone/zic.c:2696
#, fuzzy
msgid "can't determine time zone abbreviation to use just after until time"
msgstr "Igihe Impine Kuri Gukoresha Nyuma Igihe"
-#: timezone/zic.c:2725
+#: timezone/zic.c:2785
#, fuzzy
msgid "too many local time types"
msgstr "Igihe"
-#: timezone/zic.c:2729
+#: timezone/zic.c:2789
#, fuzzy
msgid "UT offset out of range"
msgstr "Umubare Inyuma Bya Urutonde"
-#: timezone/zic.c:2753
+#: timezone/zic.c:2813
#, fuzzy
msgid "too many leap seconds"
msgstr "amasogonda"
-#: timezone/zic.c:2759
-#, fuzzy
-msgid "repeated leap second moment"
-msgstr "byasubiyemo ISEGONDA"
+#: timezone/zic.c:2844
+msgid "Leap seconds too close together"
+msgstr ""
-#: timezone/zic.c:2830
+#: timezone/zic.c:2891
#, fuzzy
msgid "Wild result from command execution"
msgstr "Igisubizo Bivuye Komandi:"
-#: timezone/zic.c:2831
+#: timezone/zic.c:2892
#, fuzzy, c-format
msgid "%s: command was '%s', result was %d\n"
msgstr "%s:Komandi: Igisubizo"
-#: timezone/zic.c:2961
+#: timezone/zic.c:2998
+#, c-format
+msgid "\"%s\" is undocumented; use \"last%s\" instead"
+msgstr ""
+
+#: timezone/zic.c:3029
+#, c-format
+msgid "\"%s\" is ambiguous in pre-2017c zic"
+msgstr ""
+
+#: timezone/zic.c:3063
#, fuzzy
msgid "Odd number of quotation marks"
msgstr "Umubare Bya Gusubiramo ibyavuzwe"
-#: timezone/zic.c:3046
+#: timezone/zic.c:3157
#, fuzzy
msgid "use of 2/29 in non leap-year"
msgstr "Gukoresha Bya 2. in Umwaka"
-#: timezone/zic.c:3081
+#: timezone/zic.c:3192
msgid "rule goes past start/end of month; will not work with pre-2004 versions of zic"
msgstr ""
-#: timezone/zic.c:3108
+#: timezone/zic.c:3219
msgid "time zone abbreviation has fewer than 3 characters"
msgstr ""
-#: timezone/zic.c:3110
+#: timezone/zic.c:3221
msgid "time zone abbreviation has too many characters"
msgstr ""
-#: timezone/zic.c:3112
+#: timezone/zic.c:3223
msgid "time zone abbreviation differs from POSIX standard"
msgstr ""
-#: timezone/zic.c:3118
+#: timezone/zic.c:3229
#, fuzzy
msgid "too many, or too long, time zone abbreviations"
msgstr "Cyangwa Igihe"
-#: timezone/zic.c:3161
+#: timezone/zic.c:3275
#, fuzzy, c-format
msgid "%s: Can't create directory %s: %s"
msgstr "%s:Kurema bushyinguro"
@@ -7973,6 +8004,10 @@ msgstr "%s:Kurema bushyinguro"
#~ msgstr "Ikomeye Ihuza Byanze Ihuza"
#, fuzzy
+#~ msgid "%s: Leap line in non leap seconds file %s\n"
+#~ msgstr "%s:Umurongo in amasogonda IDOSIYE"
+
+#, fuzzy
#~ msgid "time before zero"
#~ msgstr "Igihe Mbere Zeru"
@@ -8001,6 +8036,10 @@ msgstr "%s:Kurema bushyinguro"
#~ msgstr "By'imbere Ikosa Na:"
#, fuzzy
+#~ msgid "repeated leap second moment"
+#~ msgstr "byasubiyemo ISEGONDA"
+
+#, fuzzy
#~ msgid "no day in month matches rule"
#~ msgstr "Oya UMUNSI in Ukwezi"
@@ -8225,6 +8264,14 @@ msgstr "%s:Kurema bushyinguro"
#~ msgstr "ubusa Ikurikiranyanyuguti"
#, fuzzy
+#~ msgid "cannot open zero fill device"
+#~ msgstr "Gufungura Zeru Kuzuza APAREYE"
+
+#, fuzzy
+#~ msgid "relocation error"
+#~ msgstr "Ikosa"
+
+#, fuzzy
#~ msgid "%s: profiler found no PLTREL in object %s\n"
#~ msgstr "%s:Byabonetse Oya in Igikoresho"
diff --git a/po/sk.po b/po/sk.po
index ea1519e5b2..3d72b08d79 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: libc 2.3.3\n"
-"POT-Creation-Date: 2018-07-26 22:19-0400\n"
+"POT-Creation-Date: 2019-07-18 13:28-0400\n"
"PO-Revision-Date: 2004-08-05 22:19+0200\n"
"Last-Translator: Marcel Telka <marcel@telka.sk>\n"
"Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
@@ -145,10 +145,10 @@ msgstr ""
"[VÃSTUPNÃ_SÚBOR [VSTUPNÃ_SÚBOR]...]"
#: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:308
-#: elf/pldd.c:252 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
-#: iconv/iconvconfig.c:379 locale/programs/locale.c:275
-#: locale/programs/localedef.c:427 login/programs/pt_chown.c:89
-#: malloc/memusagestat.c:563 nss/getent.c:933 nss/makedb.c:369
+#: elf/pldd.c:247 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
+#: iconv/iconvconfig.c:379 locale/programs/locale.c:276
+#: locale/programs/localedef.c:437 login/programs/pt_chown.c:89
+#: malloc/memusagestat.c:563 nss/getent.c:953 nss/makedb.c:369
#: posix/getconf.c:503 sysdeps/unix/sysv/linux/lddlibc4.c:61
#, c-format
msgid ""
@@ -157,11 +157,11 @@ msgid ""
msgstr ""
#: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64
-#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75
+#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:263 elf/sotruss.sh:75
#: elf/sprof.c:389 iconv/iconv_prog.c:422 iconv/iconvconfig.c:396
-#: locale/programs/locale.c:292 locale/programs/localedef.c:453
+#: locale/programs/locale.c:293 locale/programs/localedef.c:463
#: login/programs/pt_chown.c:63 malloc/memusage.sh:71
-#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:87 nss/makedb.c:385
+#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:88 nss/makedb.c:385
#: posix/getconf.c:485 sysdeps/unix/sysv/linux/lddlibc4.c:68
#, c-format
msgid ""
@@ -175,10 +175,10 @@ msgstr ""
"NA KONKRÉTNY ÚČEL.\n"
#: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68
-#: elf/ldconfig.c:329 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:427
-#: iconv/iconvconfig.c:401 locale/programs/locale.c:297
-#: locale/programs/localedef.c:458 malloc/memusage.sh:75
-#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:92 nss/makedb.c:390
+#: elf/ldconfig.c:329 elf/pldd.c:268 elf/sprof.c:395 iconv/iconv_prog.c:427
+#: iconv/iconvconfig.c:401 locale/programs/locale.c:298
+#: locale/programs/localedef.c:468 malloc/memusage.sh:75
+#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:93 nss/makedb.c:390
#: posix/getconf.c:490
#, c-format
msgid "Written by %s.\n"
@@ -249,21 +249,21 @@ msgstr "nie je možné otvoriť výstupný súbor `%s'"
msgid "invalid escape sequence"
msgstr "neprípustná escape-sekvencia"
-#: catgets/gencat.c:1209
+#: catgets/gencat.c:1211
msgid "unterminated message"
msgstr "neukonÄená správa"
-#: catgets/gencat.c:1233
+#: catgets/gencat.c:1235
#, c-format
msgid "while opening old catalog file"
msgstr "poÄas otvárania starého katalógu"
-#: catgets/gencat.c:1324
+#: catgets/gencat.c:1326
#, c-format
msgid "conversion modules not available"
msgstr "moduly konverzie nie sú dostupné"
-#: catgets/gencat.c:1350
+#: catgets/gencat.c:1352
#, c-format
msgid "cannot determine escape character"
msgstr "nie je možné urÄiÅ¥ znak escape"
@@ -394,7 +394,7 @@ msgstr "Neznámy OS"
msgid ", OS ABI: %s %d.%d.%d"
msgstr ", OS ABI: %s %d.%d.%d"
-#: elf/cache.c:163 elf/ldconfig.c:1332
+#: elf/cache.c:163 elf/ldconfig.c:1333
#, c-format
msgid "Can't open cache file %s\n"
msgstr "Nie je možné otvoriť cache súbor %s\n"
@@ -404,38 +404,38 @@ msgstr "Nie je možné otvoriť cache súbor %s\n"
msgid "mmap of cache file failed.\n"
msgstr "zlyhalo mapovanie cache súboru\n"
-#: elf/cache.c:181 elf/cache.c:195
+#: elf/cache.c:181 elf/cache.c:195 elf/cache.c:205
#, c-format
msgid "File is not a cache file.\n"
msgstr "Súbor nie je cache súborom.\n"
-#: elf/cache.c:228 elf/cache.c:238
+#: elf/cache.c:233 elf/cache.c:243
#, c-format
msgid "%d libs found in cache `%s'\n"
msgstr "%d knižníc nájdených v cache `%s'\n"
-#: elf/cache.c:432
+#: elf/cache.c:437
#, c-format
msgid "Can't create temporary cache file %s"
msgstr "Nie je možné vytvoriÅ¥ doÄasný cache súbor %s"
-#: elf/cache.c:440 elf/cache.c:450 elf/cache.c:454 elf/cache.c:458
-#: elf/cache.c:468
+#: elf/cache.c:445 elf/cache.c:455 elf/cache.c:459 elf/cache.c:463
+#: elf/cache.c:473
#, c-format
msgid "Writing of cache data failed"
msgstr "Zápi údajov do cache zlyhal"
-#: elf/cache.c:463
+#: elf/cache.c:468
#, c-format
msgid "Changing access rights of %s to %#o failed"
msgstr "Zmena prístupových práv %s na %#o zlyhala"
-#: elf/cache.c:472
+#: elf/cache.c:477
#, c-format
msgid "Renaming of %s to %s failed"
msgstr "Premenovanie %s na %s zlyhalo"
-#: elf/dl-close.c:399 elf/dl-open.c:420
+#: elf/dl-close.c:399 elf/dl-open.c:424
msgid "cannot create scope list"
msgstr "nie je možné vytvoriť zoznam pôsobnosti"
@@ -522,123 +522,125 @@ msgstr "nie je možné vytvoriť pole ciest"
msgid "cannot stat shared object"
msgstr "nepodarilo sa zistiť stav zdieľaného objektu"
-#: elf/dl-load.c:960
-msgid "cannot open zero fill device"
-msgstr "nie je možné otvoriť zariadenie pre naplnenie nulami"
-
-#: elf/dl-load.c:1007 elf/dl-load.c:2203
+#: elf/dl-load.c:992 elf/dl-load.c:2198
msgid "cannot create shared object descriptor"
msgstr "nie je možné vytvoriť deskriptor zdieľaného objektu"
-#: elf/dl-load.c:1026 elf/dl-load.c:1560 elf/dl-load.c:1673
+#: elf/dl-load.c:1011 elf/dl-load.c:1555 elf/dl-load.c:1668
msgid "cannot read file data"
msgstr "nie je možné naÄítaÅ¥ údaje súboru"
-#: elf/dl-load.c:1072
+#: elf/dl-load.c:1057
msgid "ELF load command alignment not page-aligned"
msgstr "ELF zarovnanie príkazu nie je zarovnané na stránku"
-#: elf/dl-load.c:1079
+#: elf/dl-load.c:1064
msgid "ELF load command address/offset not properly aligned"
msgstr "ELF zavádzacia adresa/posunutie nie je správne zarovnaná"
-#: elf/dl-load.c:1161
+#: elf/dl-load.c:1146
#, fuzzy
#| msgid "cannot restore segment prot after reloc"
msgid "cannot process note segment"
msgstr "nie je možné obnoviť segment prot po reloc"
-#: elf/dl-load.c:1172
+#: elf/dl-load.c:1157
msgid "object file has no loadable segments"
msgstr "objektový súbor neobsahuje žiadny nahrateľný segment"
-#: elf/dl-load.c:1181 elf/dl-load.c:1652
+#: elf/dl-load.c:1170 elf/dl-load.c:1647
msgid "cannot dynamically load executable"
msgstr "nie je možné dynamicky naÄítaÅ¥ spustiteľný súbor"
-#: elf/dl-load.c:1202
+#: elf/dl-load.c:1191
msgid "object file has no dynamic section"
msgstr "objektový súbor neobsahuje žiadnu dynamickú sekciu"
-#: elf/dl-load.c:1225
+#: elf/dl-load.c:1218
+#, fuzzy
+#| msgid "cannot dynamically load executable"
+msgid "cannot dynamically load position-independent executable"
+msgstr "nie je možné dynamicky naÄítaÅ¥ spustiteľný súbor"
+
+#: elf/dl-load.c:1220
msgid "shared object cannot be dlopen()ed"
msgstr "zdieľaný objekt nemôže byť otvorený pomocou dlopen()"
-#: elf/dl-load.c:1238
+#: elf/dl-load.c:1233
msgid "cannot allocate memory for program header"
msgstr "nie je možné prideliÅ¥ pamäť pre hlaviÄku programu"
-#: elf/dl-load.c:1271 elf/dl-load.h:130
+#: elf/dl-load.c:1266 elf/dl-load.h:130
msgid "cannot change memory protections"
msgstr "nie je možné zmeniť ochranu pamäti"
-#: elf/dl-load.c:1291
+#: elf/dl-load.c:1286
msgid "cannot enable executable stack as shared object requires"
msgstr "nie je možné povoliť spustiteľný zásobník ako vyžaduje zdieľaný objekt"
-#: elf/dl-load.c:1304
+#: elf/dl-load.c:1299
#, fuzzy
#| msgid "cannot create internal descriptor"
msgid "cannot close file descriptor"
msgstr "nie je možné vytvoriť interný deskriptor"
-#: elf/dl-load.c:1560
+#: elf/dl-load.c:1555
msgid "file too short"
msgstr "súbor je príliš krátky"
-#: elf/dl-load.c:1595
+#: elf/dl-load.c:1590
msgid "invalid ELF header"
msgstr "neprípustná ELF hlaviÄka"
-#: elf/dl-load.c:1607
+#: elf/dl-load.c:1602
msgid "ELF file data encoding not big-endian"
msgstr "Kódovanie dát v ELF súbore nie je big-endian"
-#: elf/dl-load.c:1609
+#: elf/dl-load.c:1604
msgid "ELF file data encoding not little-endian"
msgstr "Kódovanie dát v ELF súbore nie je little-endian"
-#: elf/dl-load.c:1613
+#: elf/dl-load.c:1608
msgid "ELF file version ident does not match current one"
msgstr "Identifikácia verzie ELF súboru sa nezhoduje s aktuálnou"
-#: elf/dl-load.c:1617
+#: elf/dl-load.c:1612
msgid "ELF file OS ABI invalid"
msgstr "Neplatný OS ABI ELF súboru"
-#: elf/dl-load.c:1620
+#: elf/dl-load.c:1615
msgid "ELF file ABI version invalid"
msgstr "Neplatná verzia ABI ELF súboru"
-#: elf/dl-load.c:1623
+#: elf/dl-load.c:1618
msgid "nonzero padding in e_ident"
msgstr ""
-#: elf/dl-load.c:1626
+#: elf/dl-load.c:1621
msgid "internal error"
msgstr "interná chyba"
-#: elf/dl-load.c:1633
+#: elf/dl-load.c:1628
msgid "ELF file version does not match current one"
msgstr "Verzia súboru ELF sa nezhoduje s aktuálnou"
-#: elf/dl-load.c:1641
+#: elf/dl-load.c:1636
msgid "only ET_DYN and ET_EXEC can be loaded"
msgstr "iba ET_DYN a ET_EXEC môžu byÅ¥ naÄítané"
-#: elf/dl-load.c:1657
+#: elf/dl-load.c:1652
msgid "ELF file's phentsize not the expected size"
msgstr "phentsize ELF súboru nie je oÄakávaná"
-#: elf/dl-load.c:2222
+#: elf/dl-load.c:2217
msgid "wrong ELF class: ELFCLASS64"
msgstr ""
-#: elf/dl-load.c:2223
+#: elf/dl-load.c:2218
msgid "wrong ELF class: ELFCLASS32"
msgstr ""
-#: elf/dl-load.c:2226
+#: elf/dl-load.c:2221
msgid "cannot open shared object file"
msgstr "nie je možné otvoriť súbor zdieľaného objektu"
@@ -650,11 +652,7 @@ msgstr "nepodarilo sa namapovať segment zo zdieľaného objektu"
msgid "cannot map zero-fill pages"
msgstr "nie je možné namapovať stránky vyplnené nulami"
-#: elf/dl-lookup.c:835
-msgid "relocation error"
-msgstr "chyba relokácie"
-
-#: elf/dl-lookup.c:858
+#: elf/dl-lookup.c:830
msgid "symbol lookup error"
msgstr ""
@@ -662,21 +660,21 @@ msgstr ""
msgid "cannot extend global scope"
msgstr "nie je možné rozšíriť globálny rozsah"
-#: elf/dl-open.c:470
+#: elf/dl-open.c:474
#, fuzzy
#| msgid "TLS generation counter wrapped! Please send report with the 'glibcbug' script."
msgid "TLS generation counter wrapped! Please report this."
msgstr "PoÄítadlo generovania TLS pretieklo! Prosím poÅ¡lite správu pomocou skriptu 'glibcbug'."
-#: elf/dl-open.c:534
+#: elf/dl-open.c:538
msgid "invalid mode for dlopen()"
msgstr "neprípustný mód pre dlopen()"
-#: elf/dl-open.c:551
+#: elf/dl-open.c:555
msgid "no more namespaces available for dlmopen()"
msgstr ""
-#: elf/dl-open.c:575
+#: elf/dl-open.c:579
#, fuzzy
#| msgid "invalid mode for dlopen()"
msgid "invalid target namespace in dlmopen()"
@@ -686,20 +684,20 @@ msgstr "neprípustný mód pre dlopen()"
msgid "cannot allocate memory in static TLS block"
msgstr "nie je možné prideliť pamäť v statickom bloku TLS"
-#: elf/dl-reloc.c:205
+#: elf/dl-reloc.c:213
msgid "cannot make segment writable for relocation"
msgstr "nie je možné zmeniť segment na zapisovateľný pre relokáciu"
-#: elf/dl-reloc.c:276
+#: elf/dl-reloc.c:272
#, c-format
msgid "%s: out of memory to store relocation results for %s\n"
msgstr ""
-#: elf/dl-reloc.c:292
+#: elf/dl-reloc.c:288
msgid "cannot restore segment prot after reloc"
msgstr "nie je možné obnoviť segment prot po reloc"
-#: elf/dl-reloc.c:323
+#: elf/dl-reloc.c:319
#, fuzzy
#| msgid "cannot change memory protections"
msgid "cannot apply additional memory protection after relocation"
@@ -924,23 +922,23 @@ msgstr ""
msgid "memory exhausted"
msgstr "nedostatok pamäti"
-#: elf/ldconfig.c:1233
+#: elf/ldconfig.c:1234
#, fuzzy, c-format
#| msgid "%s: Can't create directory %s: %s\n"
msgid "%s:%u: cannot read directory %s"
msgstr "%s: Nie je možné vytvoriť adresár %s: %s\n"
-#: elf/ldconfig.c:1281
+#: elf/ldconfig.c:1282
#, c-format
msgid "relative path `%s' used to build cache"
msgstr "relatívna cesta `%s' použitá na vytvorenie cache"
-#: elf/ldconfig.c:1311
+#: elf/ldconfig.c:1312
#, c-format
msgid "Can't chdir to /"
msgstr "Nie je možné zmeniť adresár na /"
-#: elf/ldconfig.c:1352
+#: elf/ldconfig.c:1353
#, c-format
msgid "Can't open cache file directory %s\n"
msgstr "Nie je možné otvoriť adresár cache súboru %s\n"
@@ -1015,109 +1013,115 @@ msgstr ""
msgid "error: you do not have read permission for"
msgstr ""
-#: elf/pldd-xx.c:105
+#: elf/pldd-xx.c:102
#, fuzzy, c-format
#| msgid "cannot read header from `%s'"
msgid "cannot find program header of process"
msgstr "nie je možné preÄítaÅ¥ hlaviÄku z `%s'"
-#: elf/pldd-xx.c:110
+#: elf/pldd-xx.c:106
#, fuzzy, c-format
#| msgid "cannot read header"
msgid "cannot read program header"
msgstr "nie je možné preÄítaÅ¥ hlaviÄku"
-#: elf/pldd-xx.c:135
+#: elf/pldd-xx.c:128
#, fuzzy, c-format
#| msgid "object file has no dynamic section"
msgid "cannot read dynamic section"
msgstr "objektový súbor neobsahuje žiadnu dynamickú sekciu"
-#: elf/pldd-xx.c:147
+#: elf/pldd-xx.c:137
#, fuzzy, c-format
#| msgid "cannot read header"
msgid "cannot read r_debug"
msgstr "nie je možné preÄítaÅ¥ hlaviÄku"
-#: elf/pldd-xx.c:167
+#: elf/pldd-xx.c:154
#, fuzzy, c-format
#| msgid "cannot read archive header"
msgid "cannot read program interpreter"
msgstr "nie je možné preÄítaÅ¥ hlaviÄku archívu"
-#: elf/pldd-xx.c:197
+#: elf/pldd-xx.c:183
#, fuzzy, c-format
#| msgid "cannot read file data"
msgid "cannot read link map"
msgstr "nie je možné naÄítaÅ¥ údaje súboru"
-#: elf/pldd-xx.c:209
+#: elf/pldd-xx.c:190
#, fuzzy, c-format
#| msgid "cannot read header"
msgid "cannot read object name"
msgstr "nie je možné preÄítaÅ¥ hlaviÄku"
-#: elf/pldd-xx.c:219
+#: elf/pldd-xx.c:197
#, fuzzy, c-format
#| msgid "cannot allocate memory for program header"
msgid "cannot allocate buffer for object name"
msgstr "nie je možné prideliÅ¥ pamäť pre hlaviÄku programu"
-#: elf/pldd.c:64
+#: elf/pldd.c:58
msgid "List dynamic shared objects loaded into process."
msgstr ""
-#: elf/pldd.c:68
+#: elf/pldd.c:62
msgid "PID"
msgstr ""
-#: elf/pldd.c:100
+#: elf/pldd.c:89
#, c-format
msgid "Exactly one parameter with process ID required.\n"
msgstr ""
-#: elf/pldd.c:112
+#: elf/pldd.c:103
#, fuzzy, c-format
#| msgid "invalid pointer size"
msgid "invalid process ID '%s'"
msgstr "neprípustná veľkostť ukazovateľa"
-#: elf/pldd.c:120
+#: elf/pldd.c:111
#, fuzzy, c-format
#| msgid "cannot open `%s'"
msgid "cannot open %s"
msgstr "nie je možné otvoriť `%s'"
-#: elf/pldd.c:152
+#: elf/pldd.c:142
#, fuzzy, c-format
#| msgid "cannot open `%s'"
msgid "cannot open %s/task"
msgstr "nie je možné otvoriť `%s'"
-#: elf/pldd.c:155
+#: elf/pldd.c:145
#, fuzzy, c-format
#| msgid "cannot create searchlist"
msgid "cannot prepare reading %s/task"
msgstr "nie je možné vytvoriť vyhľadávací zoznam"
-#: elf/pldd.c:168
+#: elf/pldd.c:158
#, fuzzy, c-format
#| msgid "invalid ELF header"
msgid "invalid thread ID '%s'"
msgstr "neprípustná ELF hlaviÄka"
-#: elf/pldd.c:179
+#: elf/pldd.c:169
#, fuzzy, c-format
#| msgid "cannot find C preprocessor: %s \n"
msgid "cannot attach to process %lu"
msgstr "nie je možné nájsť preprocesor: %s \n"
-#: elf/pldd.c:294
+#: elf/pldd.c:184
+#, fuzzy, c-format
+#| msgid "invalid saved time"
+msgid "no valid %s/task entries"
+msgstr "neprípustný uložený Äas"
+
+#: elf/pldd.c:290
#, c-format
msgid "cannot get information about process %lu"
msgstr ""
-#: elf/pldd.c:307
+#: elf/pldd.c:303
#, c-format
msgid "process %lu is no ELF program"
msgstr ""
@@ -1441,7 +1445,7 @@ msgstr "Informácia:"
msgid "list all known coded character sets"
msgstr "vypíš všetky známe znakové sady"
-#: iconv/iconv_prog.c:64 locale/programs/localedef.c:120
+#: iconv/iconv_prog.c:64 locale/programs/localedef.c:124
msgid "Output control:"
msgstr "Riadenie výstupu:"
@@ -1450,8 +1454,8 @@ msgid "omit invalid characters from output"
msgstr "vynechať z výstupu neplatné znaky"
#: iconv/iconv_prog.c:66 iconv/iconvconfig.c:128
-#: locale/programs/localedef.c:113 locale/programs/localedef.c:115
-#: locale/programs/localedef.c:117 locale/programs/localedef.c:144
+#: locale/programs/localedef.c:117 locale/programs/localedef.c:119
+#: locale/programs/localedef.c:121 locale/programs/localedef.c:150
#: malloc/memusagestat.c:56
#, fuzzy
#| msgid "[FILE]"
@@ -1560,7 +1564,7 @@ msgstr "Nie je možné rýchlo naÄítaÅ¥ konfiguraÄný súbor iconv modulu."
msgid "[DIR...]"
msgstr "[ADRESÃR...]"
-#: iconv/iconvconfig.c:126 locale/programs/localedef.c:123
+#: iconv/iconvconfig.c:126 locale/programs/localedef.c:129
msgid "PATH"
msgstr ""
@@ -1748,14 +1752,14 @@ msgstr "znakové sady so zamykacími stavmi nie sú podporované"
#: locale/programs/charmap.c:503 locale/programs/charmap.c:557
#: locale/programs/charmap.c:589 locale/programs/charmap.c:683
-#: locale/programs/charmap.c:738 locale/programs/charmap.c:779
-#: locale/programs/charmap.c:820
+#: locale/programs/charmap.c:739 locale/programs/charmap.c:780
+#: locale/programs/charmap.c:821
#, c-format
msgid "syntax error in %s definition: %s"
msgstr "chyba syntaxe v definícii %s: %s"
#: locale/programs/charmap.c:504 locale/programs/charmap.c:684
-#: locale/programs/charmap.c:780 locale/programs/repertoire.c:229
+#: locale/programs/charmap.c:781 locale/programs/repertoire.c:229
msgid "no symbolic name given"
msgstr "nebolo zadané žiadne symbolické meno"
@@ -1771,14 +1775,14 @@ msgstr "primálo bajtov v kódovaní znaku"
msgid "too many bytes in character encoding"
msgstr "priveľa bajtov v kódovaní znaku"
-#: locale/programs/charmap.c:591 locale/programs/charmap.c:739
-#: locale/programs/charmap.c:822 locale/programs/repertoire.c:295
+#: locale/programs/charmap.c:591 locale/programs/charmap.c:740
+#: locale/programs/charmap.c:823 locale/programs/repertoire.c:295
msgid "no symbolic name given for end of range"
msgstr "nebolo zadané žiadne symbolické meno pre koniec rozsahu"
#: locale/programs/charmap.c:615 locale/programs/ld-address.c:524
#: locale/programs/ld-collate.c:2616 locale/programs/ld-collate.c:3774
-#: locale/programs/ld-ctype.c:2117 locale/programs/ld-ctype.c:2829
+#: locale/programs/ld-ctype.c:2118 locale/programs/ld-ctype.c:2830
#: locale/programs/ld-identification.c:397
#: locale/programs/ld-measurement.c:213 locale/programs/ld-messages.c:295
#: locale/programs/ld-monetary.c:748 locale/programs/ld-name.c:262
@@ -1793,60 +1797,60 @@ msgstr "%1$s: Definícia nekonÄí `END %1$s'"
msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
msgstr "po definícii CHARMAP môžu nasledovať iba definície WIDTH"
-#: locale/programs/charmap.c:656 locale/programs/charmap.c:719
+#: locale/programs/charmap.c:656 locale/programs/charmap.c:720
#, c-format
msgid "value for %s must be an integer"
msgstr "hodnota pre %s musí byÅ¥ celé Äíslo"
-#: locale/programs/charmap.c:847
+#: locale/programs/charmap.c:848
#, c-format
msgid "%s: error in state machine"
msgstr "%s: chyba v stavovom automate"
-#: locale/programs/charmap.c:855 locale/programs/ld-address.c:540
+#: locale/programs/charmap.c:856 locale/programs/ld-address.c:540
#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967
-#: locale/programs/ld-ctype.c:2114 locale/programs/ld-ctype.c:2846
+#: locale/programs/ld-ctype.c:2115 locale/programs/ld-ctype.c:2847
#: locale/programs/ld-identification.c:413
#: locale/programs/ld-measurement.c:229 locale/programs/ld-messages.c:311
#: locale/programs/ld-monetary.c:764 locale/programs/ld-name.c:278
#: locale/programs/ld-numeric.c:341 locale/programs/ld-paper.c:228
#: locale/programs/ld-telephone.c:292 locale/programs/ld-time.c:990
-#: locale/programs/locfile.c:997 locale/programs/repertoire.c:323
+#: locale/programs/locfile.c:1010 locale/programs/repertoire.c:323
#, c-format
msgid "%s: premature end of file"
msgstr "%s: predÄasný koniec súboru"
-#: locale/programs/charmap.c:874 locale/programs/charmap.c:885
+#: locale/programs/charmap.c:875 locale/programs/charmap.c:886
#, c-format
msgid "unknown character `%s'"
msgstr "neznámy znak `%s'"
-#: locale/programs/charmap.c:893
+#: locale/programs/charmap.c:894
#, c-format
msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d"
msgstr "poÄet bajtov pre postupnosÅ¥ bajtov zaÄiatku a konca rozsahu nie sú rovnaké: %d a %d"
-#: locale/programs/charmap.c:998 locale/programs/ld-collate.c:2893
+#: locale/programs/charmap.c:999 locale/programs/ld-collate.c:2893
#: locale/programs/repertoire.c:418
msgid "invalid names for character range"
msgstr "neprípustné mená pre rozsah znakov"
-#: locale/programs/charmap.c:1010 locale/programs/repertoire.c:430
+#: locale/programs/charmap.c:1011 locale/programs/repertoire.c:430
msgid "hexadecimal range format should use only capital characters"
msgstr "hexadecimálny formát rozsahu by mal používať iba veľké písmená"
-#: locale/programs/charmap.c:1028 locale/programs/repertoire.c:448
+#: locale/programs/charmap.c:1029 locale/programs/repertoire.c:448
#, c-format
msgid "<%s> and <%s> are invalid names for range"
msgstr "<%s> a <%s> sú neprípustné názvy pre rozsah"
-#: locale/programs/charmap.c:1034 locale/programs/repertoire.c:455
+#: locale/programs/charmap.c:1035 locale/programs/repertoire.c:455
#, fuzzy
#| msgid "upper limit in range is not smaller then lower limit"
msgid "upper limit in range is smaller than lower limit"
msgstr "horný limit rozsahu je menší ako dolný"
-#: locale/programs/charmap.c:1092
+#: locale/programs/charmap.c:1093
msgid "resulting bytes for range not representable."
msgstr "výsledné bajty rozsahu nie sú zobraziteľné"
@@ -1916,7 +1920,7 @@ msgid "%s: numeric country code `%d' not valid"
msgstr "%s: Äíselný kód krajiny `%d' nie je platný"
#: locale/programs/ld-address.c:432 locale/programs/ld-address.c:469
-#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2478
+#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2479
#: locale/programs/ld-identification.c:309
#: locale/programs/ld-measurement.c:196 locale/programs/ld-messages.c:264
#: locale/programs/ld-monetary.c:503 locale/programs/ld-monetary.c:538
@@ -1939,7 +1943,7 @@ msgid "%s: unknown character in field `%s'"
msgstr "%s: neznámy znak v poli `%s'"
#: locale/programs/ld-address.c:521 locale/programs/ld-collate.c:3772
-#: locale/programs/ld-ctype.c:2826 locale/programs/ld-identification.c:394
+#: locale/programs/ld-ctype.c:2827 locale/programs/ld-identification.c:394
#: locale/programs/ld-measurement.c:210 locale/programs/ld-messages.c:293
#: locale/programs/ld-monetary.c:746 locale/programs/ld-name.c:260
#: locale/programs/ld-numeric.c:323 locale/programs/ld-paper.c:210
@@ -1952,8 +1956,8 @@ msgstr "%s: nekompletný riadok `END'"
#: locale/programs/ld-collate.c:602 locale/programs/ld-collate.c:898
#: locale/programs/ld-collate.c:911 locale/programs/ld-collate.c:2582
#: locale/programs/ld-collate.c:2603 locale/programs/ld-collate.c:3957
-#: locale/programs/ld-ctype.c:1846 locale/programs/ld-ctype.c:2104
-#: locale/programs/ld-ctype.c:2676 locale/programs/ld-ctype.c:2837
+#: locale/programs/ld-ctype.c:1847 locale/programs/ld-ctype.c:2105
+#: locale/programs/ld-ctype.c:2677 locale/programs/ld-ctype.c:2838
#: locale/programs/ld-identification.c:404
#: locale/programs/ld-measurement.c:220 locale/programs/ld-messages.c:302
#: locale/programs/ld-monetary.c:755 locale/programs/ld-name.c:269
@@ -2302,131 +2306,131 @@ msgstr "znaková sada `%s' je už definovaná"
msgid "implementation limit: no more than %d character maps allowed"
msgstr "limit implementácie: maximálne množstvo sád znakov je %d"
-#: locale/programs/ld-ctype.c:1434 locale/programs/ld-ctype.c:1559
-#: locale/programs/ld-ctype.c:1665 locale/programs/ld-ctype.c:2341
-#: locale/programs/ld-ctype.c:3299
+#: locale/programs/ld-ctype.c:1435 locale/programs/ld-ctype.c:1560
+#: locale/programs/ld-ctype.c:1666 locale/programs/ld-ctype.c:2342
+#: locale/programs/ld-ctype.c:3302
#, c-format
msgid "%s: field `%s' does not contain exactly ten entries"
msgstr "%s: pole `%s' neobsahuje presne desať položiek"
-#: locale/programs/ld-ctype.c:1462 locale/programs/ld-ctype.c:2036
+#: locale/programs/ld-ctype.c:1463 locale/programs/ld-ctype.c:2037
#, c-format
msgid "to-value <U%0*X> of range is smaller than from-value <U%0*X>"
msgstr "to-value <U%0*X> rozsahu je menšia ako from-value <U%0*X>"
-#: locale/programs/ld-ctype.c:1589
+#: locale/programs/ld-ctype.c:1590
msgid "start and end character sequence of range must have the same length"
msgstr "úvodná a koncová znaková sekvencia rozsahu musia mať rovnakú dĺžku"
-#: locale/programs/ld-ctype.c:1596
+#: locale/programs/ld-ctype.c:1597
msgid "to-value character sequence is smaller than from-value sequence"
msgstr "to-value sekvencia znakov je menšia ako sekvencia from-value"
-#: locale/programs/ld-ctype.c:1956 locale/programs/ld-ctype.c:2007
+#: locale/programs/ld-ctype.c:1957 locale/programs/ld-ctype.c:2008
msgid "premature end of `translit_ignore' definition"
msgstr "predÄasný koniec definície `translit_ignore'"
-#: locale/programs/ld-ctype.c:1962 locale/programs/ld-ctype.c:2013
-#: locale/programs/ld-ctype.c:2055
+#: locale/programs/ld-ctype.c:1963 locale/programs/ld-ctype.c:2014
+#: locale/programs/ld-ctype.c:2056
msgid "syntax error"
msgstr "chyba syntaxe"
-#: locale/programs/ld-ctype.c:2188
+#: locale/programs/ld-ctype.c:2189
#, c-format
msgid "%s: syntax error in definition of new character class"
msgstr "%s: chyba syntaxe v definícii novej triedy znakov"
-#: locale/programs/ld-ctype.c:2203
+#: locale/programs/ld-ctype.c:2204
#, c-format
msgid "%s: syntax error in definition of new character map"
msgstr "%s: chyba syntaxe v definícii novej znakovej mapy"
-#: locale/programs/ld-ctype.c:2363
+#: locale/programs/ld-ctype.c:2364
msgid "ellipsis range must be marked by two operands of same type"
msgstr "rozsah pokraÄovania musí byÅ¥ oznaÄený dvomi operandami rovnakého typu"
-#: locale/programs/ld-ctype.c:2372
+#: locale/programs/ld-ctype.c:2373
msgid "with symbolic name range values the absolute ellipsis `...' must not be used"
msgstr "v symbolickom rozsahu hodnôt nesmie byÅ¥ použité absolútne pokraÄovanie `...'"
-#: locale/programs/ld-ctype.c:2387
+#: locale/programs/ld-ctype.c:2388
msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'"
msgstr "v rozsahu hodnôt UCS treba použiÅ¥ hexadecimálne symbolické pokraÄovanie `..'"
-#: locale/programs/ld-ctype.c:2401
+#: locale/programs/ld-ctype.c:2402
msgid "with character code range values one must use the absolute ellipsis `...'"
msgstr "v rozsahu hodnôt kódov znakov treba použiÅ¥ absolútne pokraÄovanie `...'"
-#: locale/programs/ld-ctype.c:2552
+#: locale/programs/ld-ctype.c:2553
#, c-format
msgid "duplicated definition for mapping `%s'"
msgstr "duplicitná definícia mapovania `%s'"
-#: locale/programs/ld-ctype.c:2638 locale/programs/ld-ctype.c:2782
+#: locale/programs/ld-ctype.c:2639 locale/programs/ld-ctype.c:2783
#, c-format
msgid "%s: `translit_start' section does not end with `translit_end'"
msgstr "%s: sekcia `translit_start' nekonÄí `translit_end'"
-#: locale/programs/ld-ctype.c:2733
+#: locale/programs/ld-ctype.c:2734
#, c-format
msgid "%s: duplicate `default_missing' definition"
msgstr "%s: duplicitná definícia `default_missing'"
-#: locale/programs/ld-ctype.c:2738
+#: locale/programs/ld-ctype.c:2739
msgid "previous definition was here"
msgstr "predchádzajúca definícia bola tu"
-#: locale/programs/ld-ctype.c:2760
+#: locale/programs/ld-ctype.c:2761
#, c-format
msgid "%s: no representable `default_missing' definition found"
msgstr "%s: nenájdená zobraziteľná definícia `default_missing'"
-#: locale/programs/ld-ctype.c:2877 locale/programs/ld-ctype.c:2973
-#: locale/programs/ld-ctype.c:2992 locale/programs/ld-ctype.c:3012
-#: locale/programs/ld-ctype.c:3032 locale/programs/ld-ctype.c:3052
-#: locale/programs/ld-ctype.c:3072 locale/programs/ld-ctype.c:3111
-#: locale/programs/ld-ctype.c:3131 locale/programs/ld-ctype.c:3195
-#: locale/programs/ld-ctype.c:3236 locale/programs/ld-ctype.c:3259
+#: locale/programs/ld-ctype.c:2878 locale/programs/ld-ctype.c:2974
+#: locale/programs/ld-ctype.c:2993 locale/programs/ld-ctype.c:3013
+#: locale/programs/ld-ctype.c:3033 locale/programs/ld-ctype.c:3053
+#: locale/programs/ld-ctype.c:3073 locale/programs/ld-ctype.c:3112
+#: locale/programs/ld-ctype.c:3132 locale/programs/ld-ctype.c:3198
+#: locale/programs/ld-ctype.c:3239 locale/programs/ld-ctype.c:3262
#, c-format
msgid "%s: character `%s' not defined while needed as default value"
msgstr "%s: znak `%s' nie je definovaný a je potrebný ako implicitná hodnota"
-#: locale/programs/ld-ctype.c:2882 locale/programs/ld-ctype.c:2978
-#: locale/programs/ld-ctype.c:2997 locale/programs/ld-ctype.c:3017
-#: locale/programs/ld-ctype.c:3037 locale/programs/ld-ctype.c:3057
-#: locale/programs/ld-ctype.c:3077 locale/programs/ld-ctype.c:3116
-#: locale/programs/ld-ctype.c:3136 locale/programs/ld-ctype.c:3200
+#: locale/programs/ld-ctype.c:2883 locale/programs/ld-ctype.c:2979
+#: locale/programs/ld-ctype.c:2998 locale/programs/ld-ctype.c:3018
+#: locale/programs/ld-ctype.c:3038 locale/programs/ld-ctype.c:3058
+#: locale/programs/ld-ctype.c:3078 locale/programs/ld-ctype.c:3117
+#: locale/programs/ld-ctype.c:3137 locale/programs/ld-ctype.c:3203
#, c-format
msgid "%s: character `%s' in charmap not representable with one byte"
msgstr "%s: znak `%s' v znakovej mape nie je vyjadriteľný jedným bajtom"
-#: locale/programs/ld-ctype.c:3242 locale/programs/ld-ctype.c:3265
+#: locale/programs/ld-ctype.c:3245 locale/programs/ld-ctype.c:3268
#, c-format
msgid "%s: character `%s' needed as default value not representable with one byte"
msgstr "%s: znak `%s' je potrebný ako prednastavená hodnota nevyjadriteľná jedným bajtom"
-#: locale/programs/ld-ctype.c:3321
+#: locale/programs/ld-ctype.c:3324
msgid "no output digits defined and none of the standard names in the charmap"
msgstr "neboli definované žiadne výstupné Äíslice a v znakovej mape nie je žiadne zo Å¡tandardných mien"
-#: locale/programs/ld-ctype.c:3570
+#: locale/programs/ld-ctype.c:3573
#, c-format
msgid "%s: transliteration data from locale `%s' not available"
msgstr "%s: transliteraÄné údaje prostredia `%s' nie sú dostupné"
-#: locale/programs/ld-ctype.c:3669
+#: locale/programs/ld-ctype.c:3672
#, fuzzy, c-format
#| msgid "%s: table for class \"%s\": %lu bytes\n"
msgid "%s: table for class \"%s\": %lu bytes"
msgstr "%s: tabuľka triedy \"%s\": %lu bajtov\n"
-#: locale/programs/ld-ctype.c:3733
+#: locale/programs/ld-ctype.c:3736
#, fuzzy, c-format
#| msgid "%s: table for map \"%s\": %lu bytes\n"
msgid "%s: table for map \"%s\": %lu bytes"
msgstr "%s: tabuľka mapy \"%s\": %lu bajtov\n"
-#: locale/programs/ld-ctype.c:3857
+#: locale/programs/ld-ctype.c:3860
#, fuzzy, c-format
#| msgid "%s: table for width: %lu bytes\n"
msgid "%s: table for width: %lu bytes"
@@ -2670,124 +2674,119 @@ msgstr ""
"NÃZOV\n"
"[-a|-m]"
-#: locale/programs/locale.c:190
-#, c-format
-msgid "Cannot set LC_CTYPE to default locale"
-msgstr "Nepodarilo sa nastaviť LC_CTYPE na predvolené národné prostredie"
-
-#: locale/programs/locale.c:192
+#: locale/programs/locale.c:522
#, c-format
-msgid "Cannot set LC_MESSAGES to default locale"
-msgstr "Nepodarilo sa nastaviť LC_MESSAGES na predvolené národné prostredie"
-
-#: locale/programs/locale.c:205
-#, c-format
-msgid "Cannot set LC_COLLATE to default locale"
-msgstr "Nepodarilo sa nastaviť LC_COLLATE na predvolené národné prostredie"
+msgid "while preparing output"
+msgstr "poÄas prípravy výstupu"
-#: locale/programs/locale.c:221
-#, c-format
-msgid "Cannot set LC_ALL to default locale"
+#: locale/programs/locale.c:998
+#, fuzzy, c-format
+#| msgid "Cannot set LC_ALL to default locale"
+msgid "Cannot set %s to default locale"
msgstr "Nepodarilo sa nastaviť LC_ALL na predvolené národné prostredie"
-#: locale/programs/locale.c:521
+#: locale/programs/locale.c:1096
#, c-format
-msgid "while preparing output"
-msgstr "poÄas prípravy výstupu"
+msgid "warning: The LOCPATH variable is set to \"%s\"\n"
+msgstr ""
-#: locale/programs/localedef.c:112
+#: locale/programs/localedef.c:116
msgid "Input Files:"
msgstr "Vstupné súbory:"
-#: locale/programs/localedef.c:114
+#: locale/programs/localedef.c:118
msgid "Symbolic character names defined in FILE"
msgstr "Symbolické názvy znakov sú definované v SÚBORe"
-#: locale/programs/localedef.c:116
+#: locale/programs/localedef.c:120
msgid "Source definitions are found in FILE"
msgstr "Zdrojové definície sa nachádzajú v SÚBORe"
-#: locale/programs/localedef.c:118
+#: locale/programs/localedef.c:122
msgid "FILE contains mapping from symbolic names to UCS4 values"
msgstr "SÚBOR obsahuje mapovanie symbolických názvov na UCS4 hodnoty"
-#: locale/programs/localedef.c:122
+#: locale/programs/localedef.c:126
msgid "Create output even if warning messages were issued"
msgstr "Vytvoriť výstupný súbor aj pri výskyte varovaní"
-#: locale/programs/localedef.c:123
+#: locale/programs/localedef.c:128
+msgid "Do not create hard links between installed locales"
+msgstr ""
+
+#: locale/programs/localedef.c:129
msgid "Optional output file prefix"
msgstr "Voliteľný prefix výstupného súboru"
-#: locale/programs/localedef.c:124
+#: locale/programs/localedef.c:130
#, fuzzy
#| msgid "Be strictly POSIX conform"
msgid "Strictly conform to POSIX"
msgstr "Presný súlad s POSIX"
-#: locale/programs/localedef.c:126
+#: locale/programs/localedef.c:132
msgid "Suppress warnings and information messages"
msgstr "PotlaÄiÅ¥ varovné a informaÄné správy"
-#: locale/programs/localedef.c:127
+#: locale/programs/localedef.c:133
msgid "Print more messages"
msgstr "Vypísať viac správ"
-#: locale/programs/localedef.c:128 locale/programs/localedef.c:131
+#: locale/programs/localedef.c:134 locale/programs/localedef.c:137
#, fuzzy
#| msgid "warning: "
msgid "<warnings>"
msgstr "varovanie: "
-#: locale/programs/localedef.c:129
+#: locale/programs/localedef.c:135
msgid "Comma-separated list of warnings to disable; supported warnings are: ascii, intcurrsym"
msgstr ""
-#: locale/programs/localedef.c:132
+#: locale/programs/localedef.c:138
msgid "Comma-separated list of warnings to enable; supported warnings are: ascii, intcurrsym"
msgstr ""
-#: locale/programs/localedef.c:135
+#: locale/programs/localedef.c:141
msgid "Archive control:"
msgstr "Práca s archívom:"
-#: locale/programs/localedef.c:137
+#: locale/programs/localedef.c:143
msgid "Don't add new data to archive"
msgstr "Nepridávať nové dáta do archívu"
-#: locale/programs/localedef.c:139
+#: locale/programs/localedef.c:145
msgid "Add locales named by parameters to archive"
msgstr "Pridať národné prostredia pomenované podľa parametrov do archívu"
-#: locale/programs/localedef.c:140
+#: locale/programs/localedef.c:146
msgid "Replace existing archive content"
msgstr "Nahradiť existujúci obsah archívu"
-#: locale/programs/localedef.c:142
+#: locale/programs/localedef.c:148
msgid "Remove locales named by parameters from archive"
msgstr "Odstrániť národné prostredia pomenované podľa parametrov z archívu"
-#: locale/programs/localedef.c:143
+#: locale/programs/localedef.c:149
msgid "List content of archive"
msgstr "Vypísať obsah archívu"
-#: locale/programs/localedef.c:145
+#: locale/programs/localedef.c:151
msgid "locale.alias file to consult when making archive"
msgstr "súbor locale.alias, aby sa zistilo, kedy vytvárať archív"
-#: locale/programs/localedef.c:147
+#: locale/programs/localedef.c:153
msgid "Generate little-endian output"
msgstr ""
-#: locale/programs/localedef.c:149
+#: locale/programs/localedef.c:155
msgid "Generate big-endian output"
msgstr ""
-#: locale/programs/localedef.c:154
+#: locale/programs/localedef.c:160
msgid "Compile locale specification"
msgstr "Kompilácia špecifikácie národného prostredia"
-#: locale/programs/localedef.c:157
+#: locale/programs/localedef.c:163
msgid ""
"NAME\n"
"[--add-to-archive|--delete-from-archive] FILE...\n"
@@ -2797,33 +2796,33 @@ msgstr ""
"[--add-to-archive|--delete-from-archive] SÚBOR...\n"
"--list-archive [SÚBOR]"
-#: locale/programs/localedef.c:232
+#: locale/programs/localedef.c:238
#, c-format
msgid "cannot create directory for output files"
msgstr "nie je možné vytvoriť adresár pre výstupné súbory"
-#: locale/programs/localedef.c:243
+#: locale/programs/localedef.c:249
msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
msgstr "FATÃLNA CHYBA: systém nedefinuje `_POSIX2_LOCALEDEF'"
-#: locale/programs/localedef.c:257 locale/programs/localedef.c:273
-#: locale/programs/localedef.c:663 locale/programs/localedef.c:683
+#: locale/programs/localedef.c:263 locale/programs/localedef.c:279
+#: locale/programs/localedef.c:673 locale/programs/localedef.c:693
#, c-format
msgid "cannot open locale definition file `%s'"
msgstr "nie je možné otvoriť súbor definície národného prostredia `%s'"
-#: locale/programs/localedef.c:297
+#: locale/programs/localedef.c:303
#, c-format
msgid "cannot write output files to `%s'"
msgstr "nie je možné zapísať výstupné súbory do `%s'"
-#: locale/programs/localedef.c:303
+#: locale/programs/localedef.c:309
#, fuzzy
#| msgid "no output file produced because warning were issued"
msgid "no output file produced because errors were issued"
msgstr "výstupný súbor nebol vytvorený kvôli výskytu varovaní"
-#: locale/programs/localedef.c:431
+#: locale/programs/localedef.c:441
#, fuzzy, c-format
#| msgid ""
#| "System's directory for character maps : %s\n"
@@ -2841,11 +2840,11 @@ msgstr ""
" cestu locale : %s\n"
"%s"
-#: locale/programs/localedef.c:631
+#: locale/programs/localedef.c:641
msgid "circular dependencies between locale definitions"
msgstr "kruhová závislosť medzi definíciami prostredí"
-#: locale/programs/localedef.c:637
+#: locale/programs/localedef.c:647
#, c-format
msgid "cannot add already read locale `%s' a second time"
msgstr "nie je možné znovu pridaÅ¥ už naÄítané prostredie `%s'"
@@ -3004,26 +3003,26 @@ msgstr "nie je možné otvoriť výstupný súbor `%s' pre kategóriu `%s'"
msgid "failure while writing data for category `%s'"
msgstr "chyba poÄas zápisu údajov kategórie `%s'"
-#: locale/programs/locfile.c:917
+#: locale/programs/locfile.c:930
#, c-format
msgid "cannot create output file `%s' for category `%s'"
msgstr "nie je možné vytvoriť výstupný súbor `%s' pre kategóriu `%s'"
-#: locale/programs/locfile.c:953
+#: locale/programs/locfile.c:966
#, fuzzy
#| msgid "expect string argument for `copy'"
msgid "expecting string argument for `copy'"
msgstr "pre `copy' je oÄakávaný reÅ¥azcový argyment"
-#: locale/programs/locfile.c:957
+#: locale/programs/locfile.c:970
msgid "locale name should consist only of portable characters"
msgstr "názov prostredia by malo obsahovať iba prenositeľné znaky"
-#: locale/programs/locfile.c:976
+#: locale/programs/locfile.c:989
msgid "no other keyword shall be specified when `copy' is used"
msgstr "pri použití `copy' nemá byÅ¥ zadané žiadne iné kľúÄové slovo"
-#: locale/programs/locfile.c:990
+#: locale/programs/locfile.c:1003
#, c-format
msgid "`%1$s' definition does not end with `END %1$s'"
msgstr "Definícia `%1$s' nekonÄí `END %1$s'"
@@ -3842,12 +3841,12 @@ msgstr "yp_update: nie je možné konvertovaÅ¥ meno poÄítaÄa na meno siete\n"
msgid "yp_update: cannot get server address\n"
msgstr "yp_update: nie je možné zístiť adresu servera\n"
-#: nscd/aicache.c:83 nscd/hstcache.c:452
+#: nscd/aicache.c:82 nscd/hstcache.c:452
#, c-format
msgid "Haven't found \"%s\" in hosts cache!"
msgstr "Nenájdené \"%s\" v cache poÄítaÄov!"
-#: nscd/aicache.c:85 nscd/hstcache.c:454
+#: nscd/aicache.c:84 nscd/hstcache.c:454
#, fuzzy, c-format
#| msgid "Haven't found \"%s\" in hosts cache!"
msgid "Reloading \"%s\" in hosts cache!"
@@ -4190,25 +4189,25 @@ msgstr ""
msgid "no more memory for database '%s'"
msgstr "Žiadne ÄalÅ¡ie záznamy v databáze"
-#: nscd/netgroupcache.c:121
+#: nscd/netgroupcache.c:122
#, fuzzy, c-format
#| msgid "Haven't found \"%s\" in group cache!"
msgid "Haven't found \"%s\" in netgroup cache!"
msgstr "Nenájdené \"%s\" v cache skupín!"
-#: nscd/netgroupcache.c:123
+#: nscd/netgroupcache.c:124
#, fuzzy, c-format
#| msgid "Haven't found \"%s\" in group cache!"
msgid "Reloading \"%s\" in netgroup cache!"
msgstr "Nenájdené \"%s\" v cache skupín!"
-#: nscd/netgroupcache.c:469
+#: nscd/netgroupcache.c:470
#, fuzzy, c-format
#| msgid "Haven't found \"%s\" in group cache!"
msgid "Haven't found \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr "Nenájdené \"%s\" v cache skupín!"
-#: nscd/netgroupcache.c:472
+#: nscd/netgroupcache.c:473
#, fuzzy, c-format
#| msgid "Haven't found \"%s\" in group cache!"
msgid "Reloading \"%s (%s,%s,%s)\" in netgroup cache!"
@@ -4264,7 +4263,7 @@ msgstr "Použiť samostatnú cache pre každého používateľa"
msgid "Name Service Cache Daemon."
msgstr "Démon cache služby názvov."
-#: nscd/nscd.c:155 nss/getent.c:967 nss/makedb.c:206
+#: nscd/nscd.c:155 nss/getent.c:987 nss/makedb.c:206
#, c-format
msgid "wrong number of arguments"
msgstr "chybný poÄet argumentov"
@@ -4378,28 +4377,28 @@ msgstr "Chyba analýzy: %s"
msgid "Must specify user name for server-user option"
msgstr "Pre voľbu server-user je potrebné zadať meno používateľa"
-#: nscd/nscd_conf.c:198
+#: nscd/nscd_conf.c:201
#, c-format
msgid "Must specify user name for stat-user option"
msgstr "Pre voľbu stat-user je potrebné zadať meno používateľa"
-#: nscd/nscd_conf.c:255
+#: nscd/nscd_conf.c:259
#, fuzzy, c-format
#| msgid "Must specify user name for stat-user option"
msgid "Must specify value for restart-interval option"
msgstr "Pre voľbu stat-user je potrebné zadať meno používateľa"
-#: nscd/nscd_conf.c:269
+#: nscd/nscd_conf.c:273
#, c-format
msgid "Unknown option: %s %s %s"
msgstr "Neznáma voľba: %s %s %s"
-#: nscd/nscd_conf.c:282
+#: nscd/nscd_conf.c:286
#, c-format
msgid "cannot get current working directory: %s; disabling paranoia mode"
msgstr ""
-#: nscd/nscd_conf.c:302
+#: nscd/nscd_conf.c:306
#, c-format
msgid "maximum file size for %s database too small"
msgstr ""
@@ -4672,52 +4671,52 @@ msgstr "Nenájdené \"%s\" v cache poÄítaÄov!"
msgid "Reloading \"%s\" in services cache!"
msgstr "Nenájdené \"%s\" v cache poÄítaÄov!"
-#: nss/getent.c:54
+#: nss/getent.c:55
msgid "database [key ...]"
msgstr "databáza [kÄ¾ÃºÄ ...]"
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "CONFIG"
msgstr ""
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "Service configuration to be used"
msgstr "Konfigurácia služby, ktorá má byť použitá"
-#: nss/getent.c:60
+#: nss/getent.c:61
msgid "disable IDN encoding"
msgstr ""
-#: nss/getent.c:65
+#: nss/getent.c:66
#, fuzzy
#| msgid "getent - get entries from administrative database."
msgid "Get entries from administrative database."
msgstr "getent - získať záznamy z administratívnej databázy."
-#: nss/getent.c:149 nss/getent.c:442 nss/getent.c:489
+#: nss/getent.c:150 nss/getent.c:462 nss/getent.c:509
#, c-format
msgid "Enumeration not supported on %s\n"
msgstr "Enumerácia %s nie je podporované\n"
-#: nss/getent.c:497 nss/getent.c:510
+#: nss/getent.c:517 nss/getent.c:530
#, fuzzy, c-format
#| msgid "Could not create log file \"%s\""
msgid "Could not allocate group list: %m\n"
msgstr "Nie je možné vytvoriť žurnálový súbor \"%s\""
-#: nss/getent.c:881
+#: nss/getent.c:901
#, fuzzy, c-format
#| msgid "Unknown database: %s\n"
msgid "Unknown database name"
msgstr "Neznáma databáza %s\n"
-#: nss/getent.c:911
+#: nss/getent.c:931
#, fuzzy
#| msgid "Supported databases:"
msgid "Supported databases:\n"
msgstr "Podporované databázy:"
-#: nss/getent.c:977
+#: nss/getent.c:997
#, c-format
msgid "Unknown database: %s\n"
msgstr "Neznáma databáza %s\n"
@@ -4990,11 +4989,11 @@ msgstr "Regulérny výraz príliš veľký"
msgid "Unmatched ) or \\)"
msgstr "Nepárová ) or \\)"
-#: posix/regcomp.c:689
+#: posix/regcomp.c:676
msgid "No previous regular expression"
msgstr "Žiadny predchádzajúci regulérny výraz"
-#: posix/wordexp.c:1815
+#: posix/wordexp.c:1816
msgid "parameter null or not set"
msgstr "prázdny alebo nenastavený parameter"
@@ -5217,7 +5216,7 @@ msgstr "Nie je možné prideliť pamäť pre V/V operácie"
msgid "Input message available"
msgstr "Nie je možné prideliť pamäť pre V/V operácie"
-#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:381 timezone/zic.c:520
+#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:375 timezone/zic.c:561
msgid "I/O error"
msgstr "V/V chyba"
@@ -5305,7 +5304,7 @@ msgstr "Neznámy signál %d"
#: sunrpc/auth_unix.c:112 sunrpc/clnt_tcp.c:124 sunrpc/clnt_udp.c:139
#: sunrpc/clnt_unix.c:125 sunrpc/svc_tcp.c:189 sunrpc/svc_tcp.c:233
#: sunrpc/svc_udp.c:161 sunrpc/svc_unix.c:189 sunrpc/svc_unix.c:229
-#: sunrpc/xdr.c:628 sunrpc/xdr.c:788 sunrpc/xdr_array.c:102
+#: sunrpc/xdr.c:631 sunrpc/xdr.c:791 sunrpc/xdr_array.c:102
#: sunrpc/xdr_rec.c:153 sunrpc/xdr_ref.c:79
#, fuzzy
#| msgid "out of memory"
@@ -6580,56 +6579,69 @@ msgid "You really blew it this time"
msgstr "Tentokrát si to skutoÄne poondial"
#. TRANS Go home and have a glass of warm, dairy-fresh milk.
-#: sysdeps/gnu/errlist.c:978
+#. TRANS @c Okay. Since you are dying to know, I'll tell you.
+#. TRANS @c This is a joke, obviously. There is a children's song which begins,
+#. TRANS @c "Old McDonald had a farm, e-i-e-i-o." Every time I see the (real)
+#. TRANS @c errno macro EIO, I think about that song. Probably most of my
+#. TRANS @c compatriots who program on Unix do, too. One of them must have stayed
+#. TRANS @c up a little too late one night and decided to add it to Hurd or Glibc.
+#. TRANS @c Whoever did it should be castigated, but it made me laugh.
+#. TRANS @c --jtobey@channel1.com
+#. TRANS @c
+#. TRANS @c "bought the farm" means "died". -jtobey
+#. TRANS @c
+#. TRANS @c Translators, please do not translate this litteraly, translate it into
+#. TRANS @c an idiomatic funny way of saying that the computer died.
+#: sysdeps/gnu/errlist.c:991
msgid "Computer bought the farm"
msgstr "PoÄítaÄ kúpil farmu"
#. TRANS This error code has no purpose.
-#: sysdeps/gnu/errlist.c:987
+#: sysdeps/gnu/errlist.c:1000
msgid "Gratuitous error"
msgstr "VÄaÄná chyba"
-#: sysdeps/gnu/errlist.c:995
+#: sysdeps/gnu/errlist.c:1008
msgid "Bad message"
msgstr "Chybná správa"
-#: sysdeps/gnu/errlist.c:1003
+#: sysdeps/gnu/errlist.c:1016
msgid "Identifier removed"
msgstr "Identifikátor odstránený"
-#: sysdeps/gnu/errlist.c:1011
+#: sysdeps/gnu/errlist.c:1024
msgid "Multihop attempted"
msgstr "Pokus o spojenie cez viac uzlov"
-#: sysdeps/gnu/errlist.c:1019
+#: sysdeps/gnu/errlist.c:1032
msgid "No data available"
msgstr "Dáta nie sú k dispozícii"
-#: sysdeps/gnu/errlist.c:1027
+#: sysdeps/gnu/errlist.c:1040
msgid "Link has been severed"
msgstr "Odkaz bol zniÄený"
-#: sysdeps/gnu/errlist.c:1035
+#: sysdeps/gnu/errlist.c:1048
msgid "No message of desired type"
msgstr "Žiadna správa želaného typu"
-#: sysdeps/gnu/errlist.c:1043
+#: sysdeps/gnu/errlist.c:1056
msgid "Out of streams resources"
msgstr "Prúdové zdroje vyÄerpané"
-#: sysdeps/gnu/errlist.c:1051
+#: sysdeps/gnu/errlist.c:1064
msgid "Device not a stream"
msgstr "Zariadenie nie je prúd"
-#: sysdeps/gnu/errlist.c:1059
+#: sysdeps/gnu/errlist.c:1072
msgid "Value too large for defined data type"
msgstr "Hodnota je pre daný dátový typ priveľká"
-#: sysdeps/gnu/errlist.c:1067
+#: sysdeps/gnu/errlist.c:1080
msgid "Protocol error"
msgstr "Chyba protokolu"
-#: sysdeps/gnu/errlist.c:1075
+#: sysdeps/gnu/errlist.c:1088
msgid "Timer expired"
msgstr "ÄŒasovaÄ vyprÅ¡al"
@@ -6637,203 +6649,203 @@ msgstr "ÄŒasovaÄ vyprÅ¡al"
#. TRANS completed. @xref{Asynchronous I/O}. When you call @code{aio_cancel},
#. TRANS the normal result is for the operations affected to complete with this
#. TRANS error; @pxref{Cancel AIO Operations}.
-#: sysdeps/gnu/errlist.c:1087
+#: sysdeps/gnu/errlist.c:1100
msgid "Operation canceled"
msgstr "Operácia zrušená"
-#: sysdeps/gnu/errlist.c:1095
+#: sysdeps/gnu/errlist.c:1108
msgid "Owner died"
msgstr ""
-#: sysdeps/gnu/errlist.c:1103
+#: sysdeps/gnu/errlist.c:1116
msgid "State not recoverable"
msgstr ""
-#: sysdeps/gnu/errlist.c:1111
+#: sysdeps/gnu/errlist.c:1124
msgid "Interrupted system call should be restarted"
msgstr "Prerušené volanie systému by malo byť znovu spustené"
-#: sysdeps/gnu/errlist.c:1119
+#: sysdeps/gnu/errlist.c:1132
msgid "Channel number out of range"
msgstr "Číslo kanálu mimo povoleného rozsahu"
-#: sysdeps/gnu/errlist.c:1127
+#: sysdeps/gnu/errlist.c:1140
msgid "Level 2 not synchronized"
msgstr "Úroveň 2 nie je synchronizovaná"
-#: sysdeps/gnu/errlist.c:1135
+#: sysdeps/gnu/errlist.c:1148
msgid "Level 3 halted"
msgstr "Úroveň 3 zastavená"
-#: sysdeps/gnu/errlist.c:1143
+#: sysdeps/gnu/errlist.c:1156
msgid "Level 3 reset"
msgstr "Úroveň 3 nastavená na východzie hodnoty"
-#: sysdeps/gnu/errlist.c:1151
+#: sysdeps/gnu/errlist.c:1164
msgid "Link number out of range"
msgstr "Číslo odkazu mimo rozsahu"
-#: sysdeps/gnu/errlist.c:1159
+#: sysdeps/gnu/errlist.c:1172
msgid "Protocol driver not attached"
msgstr "OvládaÄ protokolu nepripojený"
-#: sysdeps/gnu/errlist.c:1167
+#: sysdeps/gnu/errlist.c:1180
msgid "No CSI structure available"
msgstr "CSI štruktúra nedostupná"
-#: sysdeps/gnu/errlist.c:1175
+#: sysdeps/gnu/errlist.c:1188
msgid "Level 2 halted"
msgstr "Úroveň 2 zastavená"
-#: sysdeps/gnu/errlist.c:1183
+#: sysdeps/gnu/errlist.c:1196
msgid "Invalid exchange"
msgstr "Neprípustná výmena"
-#: sysdeps/gnu/errlist.c:1191
+#: sysdeps/gnu/errlist.c:1204
msgid "Invalid request descriptor"
msgstr "Neprípustný deskriptor žiadosti"
-#: sysdeps/gnu/errlist.c:1199
+#: sysdeps/gnu/errlist.c:1212
msgid "Exchange full"
msgstr "Stredisko plné"
-#: sysdeps/gnu/errlist.c:1207
+#: sysdeps/gnu/errlist.c:1220
msgid "No anode"
msgstr "Žiadny anode"
-#: sysdeps/gnu/errlist.c:1215
+#: sysdeps/gnu/errlist.c:1228
msgid "Invalid request code"
msgstr "Neprípustný kód žiadosti"
-#: sysdeps/gnu/errlist.c:1223
+#: sysdeps/gnu/errlist.c:1236
msgid "Invalid slot"
msgstr "Neplatná priehradka"
-#: sysdeps/gnu/errlist.c:1231
+#: sysdeps/gnu/errlist.c:1244
msgid "File locking deadlock error"
msgstr "Vzájomné zablokovanie pri zamykaní súboru"
-#: sysdeps/gnu/errlist.c:1239
+#: sysdeps/gnu/errlist.c:1252
msgid "Bad font file format"
msgstr "Chybný formát súboru rezov písma"
-#: sysdeps/gnu/errlist.c:1247
+#: sysdeps/gnu/errlist.c:1260
msgid "Machine is not on the network"
msgstr "PoÄítaÄ nie je zapojený v sieti"
-#: sysdeps/gnu/errlist.c:1255
+#: sysdeps/gnu/errlist.c:1268
msgid "Package not installed"
msgstr "Balík nie je nainštalovaný"
-#: sysdeps/gnu/errlist.c:1263
+#: sysdeps/gnu/errlist.c:1276
msgid "Advertise error"
msgstr "Chyba pri zverejnení"
-#: sysdeps/gnu/errlist.c:1271
+#: sysdeps/gnu/errlist.c:1284
msgid "Srmount error"
msgstr "Chyba srmount"
-#: sysdeps/gnu/errlist.c:1279
+#: sysdeps/gnu/errlist.c:1292
msgid "Communication error on send"
msgstr "Chyba komunikácie pri vysielaní"
-#: sysdeps/gnu/errlist.c:1287
+#: sysdeps/gnu/errlist.c:1300
msgid "RFS specific error"
msgstr "RFS-špecifická chyba"
-#: sysdeps/gnu/errlist.c:1295
+#: sysdeps/gnu/errlist.c:1308
msgid "Name not unique on network"
msgstr "Meno nie je v sieti jednoznaÄné"
-#: sysdeps/gnu/errlist.c:1303
+#: sysdeps/gnu/errlist.c:1316
msgid "File descriptor in bad state"
msgstr "Deskriptor súboru v chybnom stave"
-#: sysdeps/gnu/errlist.c:1311
+#: sysdeps/gnu/errlist.c:1324
msgid "Remote address changed"
msgstr "Vzdialená adresa sa zmenila"
-#: sysdeps/gnu/errlist.c:1319
+#: sysdeps/gnu/errlist.c:1332
msgid "Can not access a needed shared library"
msgstr "Prístup k potrebnej zdieľanej knižnici nie je možný"
-#: sysdeps/gnu/errlist.c:1327
+#: sysdeps/gnu/errlist.c:1340
msgid "Accessing a corrupted shared library"
msgstr "Prístup k poškodenej zdieľanej knižnici"
-#: sysdeps/gnu/errlist.c:1335
+#: sysdeps/gnu/errlist.c:1348
msgid ".lib section in a.out corrupted"
msgstr "Poškodená sekcia .lib v a.out"
-#: sysdeps/gnu/errlist.c:1343
+#: sysdeps/gnu/errlist.c:1356
msgid "Attempting to link in too many shared libraries"
msgstr "Pokus o použitie priveľa zdieľaných knižníc"
-#: sysdeps/gnu/errlist.c:1351
+#: sysdeps/gnu/errlist.c:1364
msgid "Cannot exec a shared library directly"
msgstr "Nie je možné priamo spustiť zdieľanú knižnicu"
-#: sysdeps/gnu/errlist.c:1359
+#: sysdeps/gnu/errlist.c:1372
msgid "Streams pipe error"
msgstr "Chyba rúry prúdov"
-#: sysdeps/gnu/errlist.c:1367
+#: sysdeps/gnu/errlist.c:1380
msgid "Structure needs cleaning"
msgstr "Štruktúra potrebuje opravu"
-#: sysdeps/gnu/errlist.c:1375
+#: sysdeps/gnu/errlist.c:1388
msgid "Not a XENIX named type file"
msgstr "Nejde o pomenovaný XENIX súbor"
-#: sysdeps/gnu/errlist.c:1383
+#: sysdeps/gnu/errlist.c:1396
msgid "No XENIX semaphores available"
msgstr "XENIX semafóry nedostupné"
-#: sysdeps/gnu/errlist.c:1391
+#: sysdeps/gnu/errlist.c:1404
msgid "Is a named type file"
msgstr "Je pomenovaný súbor typu"
-#: sysdeps/gnu/errlist.c:1399
+#: sysdeps/gnu/errlist.c:1412
msgid "Remote I/O error"
msgstr "Vzdialená V/V chyba"
-#: sysdeps/gnu/errlist.c:1407
+#: sysdeps/gnu/errlist.c:1420
msgid "No medium found"
msgstr "Nenájdené žiadne médium"
-#: sysdeps/gnu/errlist.c:1415
+#: sysdeps/gnu/errlist.c:1428
msgid "Wrong medium type"
msgstr "Chybný typ média"
-#: sysdeps/gnu/errlist.c:1423
+#: sysdeps/gnu/errlist.c:1436
#, fuzzy
#| msgid "Resource temporarily unavailable"
msgid "Required key not available"
msgstr "Zdroj je doÄasne neprístupný"
-#: sysdeps/gnu/errlist.c:1431
+#: sysdeps/gnu/errlist.c:1444
#, fuzzy
#| msgid "Timer expired"
msgid "Key has expired"
msgstr "ÄŒasovaÄ vyprÅ¡al"
-#: sysdeps/gnu/errlist.c:1439
+#: sysdeps/gnu/errlist.c:1452
#, fuzzy
#| msgid "Link has been severed"
msgid "Key has been revoked"
msgstr "Odkaz bol zniÄený"
-#: sysdeps/gnu/errlist.c:1447
+#: sysdeps/gnu/errlist.c:1460
msgid "Key was rejected by service"
msgstr ""
-#: sysdeps/gnu/errlist.c:1455
+#: sysdeps/gnu/errlist.c:1468
#, fuzzy
#| msgid "Operation not applicable"
msgid "Operation not possible due to RF-kill"
msgstr "Operácia nie je aplikovateľná"
-#: sysdeps/gnu/errlist.c:1463
+#: sysdeps/gnu/errlist.c:1476
msgid "Memory page has hardware error"
msgstr ""
@@ -6960,27 +6972,27 @@ msgstr ""
msgid "can't disable CET"
msgstr ""
-#: timezone/zdump.c:338
+#: timezone/zdump.c:332
msgid "has fewer than 3 characters"
msgstr ""
-#: timezone/zdump.c:340
+#: timezone/zdump.c:334
msgid "has more than 6 characters"
msgstr ""
-#: timezone/zdump.c:342
+#: timezone/zdump.c:336
msgid "has characters other than ASCII alphanumerics, '-' or '+'"
msgstr ""
-#: timezone/zdump.c:347
+#: timezone/zdump.c:341
#, c-format
msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n"
msgstr ""
-#: timezone/zdump.c:393
+#: timezone/zdump.c:387
#, c-format
msgid ""
-"%s: usage: %s OPTIONS ZONENAME ...\n"
+"%s: usage: %s OPTIONS TIMEZONE ...\n"
"Options include:\n"
" -c [L,]U Start at year L (default -500), end before year U (default 2500)\n"
" -t [L,]U Start at time L, end before time U (in seconds since 1970)\n"
@@ -6993,53 +7005,59 @@ msgid ""
"Report bugs to %s.\n"
msgstr ""
-#: timezone/zdump.c:479
+#: timezone/zdump.c:473
#, fuzzy, c-format
#| msgid "%s: Too many arguments\n"
msgid "%s: wild -c argument %s\n"
msgstr "%s: Priveľa argumentov\n"
-#: timezone/zdump.c:512
+#: timezone/zdump.c:506
#, fuzzy, c-format
#| msgid "%s: Too many arguments\n"
msgid "%s: wild -t argument %s\n"
msgstr "%s: Priveľa argumentov\n"
-#: timezone/zic.c:398
+#: timezone/zic.c:429
#, c-format
msgid "%s: Memory exhausted: %s\n"
msgstr "%s: Nedostatok pamäti: %s\n"
-#: timezone/zic.c:406
+#: timezone/zic.c:437
#, fuzzy
#| msgid "time overflow"
msgid "size overflow"
msgstr "preteÄenie Äasu"
-#: timezone/zic.c:454
+#: timezone/zic.c:447
+#, fuzzy
+#| msgid "time overflow"
+msgid "alignment overflow"
+msgstr "preteÄenie Äasu"
+
+#: timezone/zic.c:495
#, fuzzy
#| msgid "time overflow"
msgid "integer overflow"
msgstr "preteÄenie Äasu"
-#: timezone/zic.c:488
+#: timezone/zic.c:529
#, fuzzy, c-format
#| msgid "\"%s\", line %d: %s"
msgid "\"%s\", line %<PRIdMAX>: "
msgstr "\"%s\", riadok %d: %s"
-#: timezone/zic.c:491
+#: timezone/zic.c:532
#, fuzzy, c-format
#| msgid " (rule from \"%s\", line %d)"
msgid " (rule from \"%s\", line %<PRIdMAX>)"
msgstr " (pravidlo z \"%s\", riadok %d)"
-#: timezone/zic.c:510
+#: timezone/zic.c:551
#, c-format
msgid "warning: "
msgstr "varovanie: "
-#: timezone/zic.c:535
+#: timezone/zic.c:576
#, fuzzy, c-format
#| msgid ""
#| "%s: usage is %s [ --version ] [ -s ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n"
@@ -7047,406 +7065,427 @@ msgstr "varovanie: "
msgid ""
"%s: usage is %s [ --version ] [ --help ] [ -v ] \\\n"
"\t[ -l localtime ] [ -p posixrules ] [ -d directory ] \\\n"
-"\t[ -L leapseconds ] [ filename ... ]\n"
+"\t[ -t localtime-link ] [ -L leapseconds ] [ filename ... ]\n"
"\n"
"Report bugs to %s.\n"
msgstr ""
"%s: použitie je %s [ --version ] [ -s ] [ -v ] [ -l lokálny_Äas ] [ -p posix_pravidlá ] \\\n"
"\t[ -d adresár ] [ -L priestupné_sekundy ] [ -y typ_roku ] [ súbor ... ]\n"
-#: timezone/zic.c:558
+#: timezone/zic.c:599
#, fuzzy, c-format
#| msgid "%s: Can't create %s: %s\n"
msgid "%s: Can't chdir to %s: %s\n"
msgstr "%s: Nie je možné vytvoriť %s: %s\n"
-#: timezone/zic.c:590
+#: timezone/zic.c:632
msgid "wild compilation-time specification of zic_t"
msgstr ""
-#: timezone/zic.c:610
+#: timezone/zic.c:652
#, c-format
msgid "%s: More than one -d option specified\n"
msgstr "%s: Voľba -d zadaná viac ako raz\n"
-#: timezone/zic.c:620
+#: timezone/zic.c:662
#, c-format
msgid "%s: More than one -l option specified\n"
msgstr "%s: Voľba -l zadaná viac ako raz\n"
-#: timezone/zic.c:630
+#: timezone/zic.c:672
#, c-format
msgid "%s: More than one -p option specified\n"
msgstr "%s: Voľba -p zadaná viac ako raz\n"
-#: timezone/zic.c:640
+#: timezone/zic.c:680
+#, fuzzy, c-format
+#| msgid "%s: More than one -d option specified\n"
+msgid "%s: More than one -t option specified\n"
+msgstr "%s: Voľba -d zadaná viac ako raz\n"
+
+#: timezone/zic.c:689
+msgid "-y is obsolescent"
+msgstr ""
+
+#: timezone/zic.c:693
#, c-format
msgid "%s: More than one -y option specified\n"
msgstr "%s: Voľba -y zadaná viac ako raz\n"
-#: timezone/zic.c:650
+#: timezone/zic.c:703
#, c-format
msgid "%s: More than one -L option specified\n"
msgstr "%s: Voľba -L zadaná viac ako raz\n"
-#: timezone/zic.c:659
+#: timezone/zic.c:712
msgid "-s ignored"
msgstr ""
-#: timezone/zic.c:698
+#: timezone/zic.c:753
msgid "link to link"
msgstr ""
-#: timezone/zic.c:701 timezone/zic.c:705
+#: timezone/zic.c:756 timezone/zic.c:760
#, fuzzy
#| msgid "Too many links"
msgid "command line"
msgstr "Priveľa odkazov"
-#: timezone/zic.c:721
+#: timezone/zic.c:776
#, fuzzy
#| msgid "Bad file number"
msgid "empty file name"
msgstr "Chybné Äíslo súboru"
-#: timezone/zic.c:724
+#: timezone/zic.c:779
#, c-format
msgid "file name '%s' begins with '/'"
msgstr ""
-#: timezone/zic.c:734
+#: timezone/zic.c:789
#, c-format
msgid "file name '%s' contains '%.*s' component"
msgstr ""
-#: timezone/zic.c:740
+#: timezone/zic.c:795
#, c-format
msgid "file name '%s' component contains leading '-'"
msgstr ""
-#: timezone/zic.c:743
+#: timezone/zic.c:798
#, c-format
msgid "file name '%s' contains overlength component '%.*s...'"
msgstr ""
-#: timezone/zic.c:771
+#: timezone/zic.c:826
#, c-format
msgid "file name '%s' contains byte '%c'"
msgstr ""
-#: timezone/zic.c:772
+#: timezone/zic.c:827
#, c-format
msgid "file name '%s' contains byte '\\%o'"
msgstr ""
-#: timezone/zic.c:842
+#: timezone/zic.c:897
#, fuzzy, c-format
#| msgid "%s: Can't link from %s to %s: %s\n"
msgid "%s: link from %s/%s failed: %s\n"
msgstr "%s: Nie je možné vytvoriť prepojenie z %s na %s: %s\n"
-#: timezone/zic.c:852 timezone/zic.c:1815
+#: timezone/zic.c:907 timezone/zic.c:1876
#, fuzzy, c-format
#| msgid "%s: Can't remove %s: %s\n"
msgid "%s: Can't remove %s/%s: %s\n"
msgstr "%s: Nie je možné odstrániť %s: %s\n"
-#: timezone/zic.c:874
+#: timezone/zic.c:931
#, c-format
msgid "symbolic link used because hard link failed: %s"
msgstr ""
-#: timezone/zic.c:882
+#: timezone/zic.c:939
#, fuzzy, c-format
#| msgid "%s: Can't create %s: %s\n"
msgid "%s: Can't read %s/%s: %s\n"
msgstr "%s: Nie je možné vytvoriť %s: %s\n"
-#: timezone/zic.c:889 timezone/zic.c:1828
+#: timezone/zic.c:946 timezone/zic.c:1889
#, fuzzy, c-format
#| msgid "%s: Can't create %s: %s\n"
msgid "%s: Can't create %s/%s: %s\n"
msgstr "%s: Nie je možné vytvoriť %s: %s\n"
-#: timezone/zic.c:898
+#: timezone/zic.c:955
#, c-format
msgid "copy used because hard link failed: %s"
msgstr ""
-#: timezone/zic.c:901
+#: timezone/zic.c:958
#, c-format
msgid "copy used because symbolic link failed: %s"
msgstr ""
-#: timezone/zic.c:1013 timezone/zic.c:1015
+#: timezone/zic.c:1032 timezone/zic.c:1034
msgid "same rule name in multiple files"
msgstr "rovnaké meno pravidla vo viacerých súboroch"
-#: timezone/zic.c:1056
-msgid "unruly zone"
-msgstr "zóna bez pravidiel"
-
-#: timezone/zic.c:1063
+#: timezone/zic.c:1081
#, c-format
msgid "%s in ruleless zone"
msgstr "%s v zóne bez pravidiel"
-#: timezone/zic.c:1083
+#: timezone/zic.c:1101
msgid "standard input"
msgstr "štandardný vstup"
-#: timezone/zic.c:1088
+#: timezone/zic.c:1106
#, c-format
msgid "%s: Can't open %s: %s\n"
msgstr "%s: Nie je možné otvoriť %s: %s\n"
-#: timezone/zic.c:1099
+#: timezone/zic.c:1117
msgid "line too long"
msgstr "pridlhý riadok"
-#: timezone/zic.c:1119
+#: timezone/zic.c:1139
msgid "input line of unknown type"
msgstr "vstupný riadok neznámeho typu"
-#: timezone/zic.c:1134
-#, fuzzy, c-format
-#| msgid "%s: Leap line in non leap seconds file %s\n"
-msgid "%s: Leap line in non leap seconds file %s"
-msgstr "%s: Priestupný riadok v súbore nepriestupných sekúnd %s\n"
-
-#: timezone/zic.c:1142 timezone/zic.c:1547 timezone/zic.c:1569
+#: timezone/zic.c:1158 timezone/zic.c:1593 timezone/zic.c:1615
#, c-format
msgid "%s: panic: Invalid l_value %d\n"
msgstr "%s: fatálna chyba: Neprípustná l_hodnota %d\n"
-#: timezone/zic.c:1151
+#: timezone/zic.c:1167
msgid "expected continuation line not found"
msgstr "oÄakávaný pokraÄovací riadok nebol nájdený"
-#: timezone/zic.c:1193 timezone/zic.c:2976
+#: timezone/zic.c:1203
+msgid "fractional seconds rejected by pre-2018 versions of zic"
+msgstr ""
+
+#: timezone/zic.c:1221 timezone/zic.c:3078
msgid "time overflow"
msgstr "preteÄenie Äasu"
-#: timezone/zic.c:1198
+#: timezone/zic.c:1227
msgid "values over 24 hours not handled by pre-2007 versions of zic"
msgstr ""
-#: timezone/zic.c:1209
+#: timezone/zic.c:1245
+msgid "invalid saved time"
+msgstr "neprípustný uložený Äas"
+
+#: timezone/zic.c:1256
msgid "wrong number of fields on Rule line"
msgstr "chybný poÄÅ¡t polí v riadku Rule"
-#: timezone/zic.c:1213
-msgid "nameless rule"
-msgstr "bezmenné pravidlo"
-
-#: timezone/zic.c:1218
-msgid "invalid saved time"
-msgstr "neprípustný uložený Äas"
+#: timezone/zic.c:1265
+#, fuzzy, c-format
+#| msgid "Invalid numeric gid \"%s\"!"
+msgid "Invalid rule name \"%s\""
+msgstr "Neplatné Äíselné gid \"%s\"!"
-#: timezone/zic.c:1235
+#: timezone/zic.c:1287
msgid "wrong number of fields on Zone line"
msgstr "chybný poÄet polí v riadku Zone"
-#: timezone/zic.c:1240
+#: timezone/zic.c:1292
#, c-format
msgid "\"Zone %s\" line and -l option are mutually exclusive"
msgstr "Riadok \"Zone %s\" a voľba -l sa navzájom vyluÄujú"
-#: timezone/zic.c:1246
+#: timezone/zic.c:1298
#, c-format
msgid "\"Zone %s\" line and -p option are mutually exclusive"
msgstr "Riadok \"Zone %s\" a voľba -p sa navzájom vyluÄujú"
-#: timezone/zic.c:1253
+#: timezone/zic.c:1305
#, fuzzy, c-format
#| msgid "duplicate zone name %s (file \"%s\", line %d)"
msgid "duplicate zone name %s (file \"%s\", line %<PRIdMAX>)"
msgstr "duplicitné meno zóny %s (súbor \"%s\", riadok %d)"
-#: timezone/zic.c:1267
+#: timezone/zic.c:1319
msgid "wrong number of fields on Zone continuation line"
msgstr "chybný poÄet polí v pokraÄovacom riadku Zone"
-#: timezone/zic.c:1307
+#: timezone/zic.c:1359
#, fuzzy
#| msgid "invalid UTC offset"
msgid "invalid UT offset"
msgstr "neprípustné posunutie voÄi UTC"
-#: timezone/zic.c:1311
+#: timezone/zic.c:1363
msgid "invalid abbreviation format"
msgstr "neprípustný formát skratky"
-#: timezone/zic.c:1320
+#: timezone/zic.c:1372
#, c-format
msgid "format '%s' not handled by pre-2015 versions of zic"
msgstr ""
-#: timezone/zic.c:1347
+#: timezone/zic.c:1399
msgid "Zone continuation line end time is not after end time of previous line"
msgstr "Koncový Äas pokraÄovacieho riadku zóny nie je väÄší ako koncový Äas predchádzajúceho riadku"
-#: timezone/zic.c:1374
+#: timezone/zic.c:1426
msgid "wrong number of fields on Leap line"
msgstr "chybný poÄet polí v riadku Leap"
-#: timezone/zic.c:1383
+#: timezone/zic.c:1435
msgid "invalid leaping year"
msgstr "neprípustný priestupný rok"
-#: timezone/zic.c:1403 timezone/zic.c:1501
+#: timezone/zic.c:1455 timezone/zic.c:1547
msgid "invalid month name"
msgstr "neprípustný názov mesiaca"
-#: timezone/zic.c:1416 timezone/zic.c:1614 timezone/zic.c:1628
+#: timezone/zic.c:1468 timezone/zic.c:1663 timezone/zic.c:1677
msgid "invalid day of month"
msgstr "neprípustný deň mesiaca"
-#: timezone/zic.c:1421
+#: timezone/zic.c:1473
msgid "time too small"
msgstr "Äas je príliÅ¡ malý"
-#: timezone/zic.c:1425
+#: timezone/zic.c:1477
msgid "time too large"
msgstr "Äas je príliÅ¡ veľký"
-#: timezone/zic.c:1429 timezone/zic.c:1530
+#: timezone/zic.c:1481 timezone/zic.c:1576
msgid "invalid time of day"
msgstr "neprípustný Äas v dni"
-#: timezone/zic.c:1448
+#: timezone/zic.c:1494
msgid "illegal CORRECTION field on Leap line"
msgstr "neprípustné pole CORRECTION v riadku Leap"
-#: timezone/zic.c:1453
+#: timezone/zic.c:1499
msgid "illegal Rolling/Stationary field on Leap line"
msgstr "neprípustné pole Rolling/Stationary v riadku Leap"
-#: timezone/zic.c:1459
-msgid "leap second precedes Big Bang"
+#: timezone/zic.c:1505
+msgid "leap second precedes Epoch"
msgstr ""
-#: timezone/zic.c:1472
+#: timezone/zic.c:1518
msgid "wrong number of fields on Link line"
msgstr "chybný poÄet polí v riadku Link"
-#: timezone/zic.c:1476
+#: timezone/zic.c:1522
msgid "blank FROM field on Link line"
msgstr "prázdne pole OD v riadku Link"
-#: timezone/zic.c:1551
+#: timezone/zic.c:1597
msgid "invalid starting year"
msgstr "neprípustný poÄiatoÄný rok"
-#: timezone/zic.c:1573
+#: timezone/zic.c:1619
msgid "invalid ending year"
msgstr "neprípustný koncový rok"
-#: timezone/zic.c:1577
+#: timezone/zic.c:1623
msgid "starting year greater than ending year"
msgstr "poÄiatoÄný rok väÄší ako koncový"
-#: timezone/zic.c:1584
+#: timezone/zic.c:1630
msgid "typed single year"
msgstr "zadaný jeden rok"
-#: timezone/zic.c:1619
+#: timezone/zic.c:1633
+#, c-format
+msgid "year type \"%s\" is obsolete; use \"-\" instead"
+msgstr ""
+
+#: timezone/zic.c:1668
msgid "invalid weekday name"
msgstr "neprípustný názov dňa"
-#: timezone/zic.c:1743
+#: timezone/zic.c:1800
#, c-format
msgid "reference clients mishandle more than %d transition times"
msgstr ""
-#: timezone/zic.c:1747
+#: timezone/zic.c:1804
msgid "pre-2014 clients may mishandle more than 1200 transition times"
msgstr ""
-#: timezone/zic.c:1858
+#: timezone/zic.c:1920
#, fuzzy
#| msgid "too many transitions?!"
msgid "too many transition times"
msgstr "priveľa prechodov?!"
-#: timezone/zic.c:2047
+#: timezone/zic.c:2107
#, c-format
-msgid "%%z UTC offset magnitude exceeds 99:59:59"
+msgid "%%z UT offset magnitude exceeds 99:59:59"
msgstr ""
-#: timezone/zic.c:2424
+#: timezone/zic.c:2488
msgid "no POSIX environment variable for zone"
msgstr ""
-#: timezone/zic.c:2430
+#: timezone/zic.c:2494
#, c-format
msgid "%s: pre-%d clients may mishandle distant timestamps"
msgstr ""
-#: timezone/zic.c:2566
+#: timezone/zic.c:2631
msgid "two rules for same instant"
msgstr ""
-#: timezone/zic.c:2627
+#: timezone/zic.c:2696
msgid "can't determine time zone abbreviation to use just after until time"
msgstr "nie je možné nájsÅ¥ skratku Äasovej zóny pre použitie hneÄ po koncovom Äase"
-#: timezone/zic.c:2725
+#: timezone/zic.c:2785
msgid "too many local time types"
msgstr "priveľa lokálnych typov Äasu"
-#: timezone/zic.c:2729
+#: timezone/zic.c:2789
#, fuzzy
#| msgid "Link number out of range"
msgid "UT offset out of range"
msgstr "Číslo odkazu mimo rozsahu"
-#: timezone/zic.c:2753
+#: timezone/zic.c:2813
msgid "too many leap seconds"
msgstr "priveľa priestupných sekúnd"
-#: timezone/zic.c:2759
-msgid "repeated leap second moment"
-msgstr "opakovaný moment priestupnej sekundy"
+#: timezone/zic.c:2844
+msgid "Leap seconds too close together"
+msgstr ""
-#: timezone/zic.c:2830
+#: timezone/zic.c:2891
msgid "Wild result from command execution"
msgstr "Čudný výsledok vykonania programu"
-#: timezone/zic.c:2831
+#: timezone/zic.c:2892
#, c-format
msgid "%s: command was '%s', result was %d\n"
msgstr "%s: príkaz bol '%s', výsledok bol %d\n"
-#: timezone/zic.c:2961
+#: timezone/zic.c:2998
+#, c-format
+msgid "\"%s\" is undocumented; use \"last%s\" instead"
+msgstr ""
+
+#: timezone/zic.c:3029
+#, c-format
+msgid "\"%s\" is ambiguous in pre-2017c zic"
+msgstr ""
+
+#: timezone/zic.c:3063
msgid "Odd number of quotation marks"
msgstr "Nepárny poÄet úvodzoviek"
-#: timezone/zic.c:3046
+#: timezone/zic.c:3157
msgid "use of 2/29 in non leap-year"
msgstr "29. február použitý v nepriestupnom roku"
-#: timezone/zic.c:3081
+#: timezone/zic.c:3192
msgid "rule goes past start/end of month; will not work with pre-2004 versions of zic"
msgstr ""
-#: timezone/zic.c:3108
+#: timezone/zic.c:3219
msgid "time zone abbreviation has fewer than 3 characters"
msgstr ""
-#: timezone/zic.c:3110
+#: timezone/zic.c:3221
msgid "time zone abbreviation has too many characters"
msgstr ""
-#: timezone/zic.c:3112
+#: timezone/zic.c:3223
msgid "time zone abbreviation differs from POSIX standard"
msgstr ""
-#: timezone/zic.c:3118
+#: timezone/zic.c:3229
msgid "too many, or too long, time zone abbreviations"
msgstr "príliÅ¡ veľa alebo príliÅ¡ dlhé skratku Äasovej zóny"
-#: timezone/zic.c:3161
+#: timezone/zic.c:3275
#, fuzzy, c-format
#| msgid "%s: Can't create directory %s: %s\n"
msgid "%s: Can't create directory %s: %s"
@@ -7482,6 +7521,15 @@ msgstr "%s: Nie je možné vytvoriť adresár %s: %s\n"
#~ msgid "non-symbolic character value should not be used"
#~ msgstr "nesymbolické hodnoty znakov by nemali byť používané"
+#~ msgid "Cannot set LC_CTYPE to default locale"
+#~ msgstr "Nepodarilo sa nastaviť LC_CTYPE na predvolené národné prostredie"
+
+#~ msgid "Cannot set LC_MESSAGES to default locale"
+#~ msgstr "Nepodarilo sa nastaviť LC_MESSAGES na predvolené národné prostredie"
+
+#~ msgid "Cannot set LC_COLLATE to default locale"
+#~ msgstr "Nepodarilo sa nastaviť LC_COLLATE na predvolené národné prostredie"
+
#~ msgid "Create old-style tables"
#~ msgstr "Vytvoriť tabuľky na starý spôsob"
@@ -7695,12 +7743,21 @@ msgstr "%s: Nie je možné vytvoriť adresár %s: %s\n"
#~ msgid "hard link failed, symbolic link used"
#~ msgstr "pevný odkaz zlyhal, použitý symbolický"
+#~ msgid "unruly zone"
+#~ msgstr "zóna bez pravidiel"
+
+#~ msgid "%s: Leap line in non leap seconds file %s\n"
+#~ msgstr "%s: Priestupný riadok v súbore nepriestupných sekúnd %s\n"
+
#~ msgid "%s: Error reading %s\n"
#~ msgstr "%s: Chyba pri Äítaní %s\n"
#~ msgid "%s: Error closing %s: %s\n"
#~ msgstr "%s: Chyba pri uzatváraní %s: %s\n"
+#~ msgid "nameless rule"
+#~ msgstr "bezmenné pravidlo"
+
#~ msgid "time before zero"
#~ msgstr "Äas menší ako nula"
@@ -7731,6 +7788,9 @@ msgstr "%s: Nie je možné vytvoriť adresár %s: %s\n"
#~ msgid "internal error - addtype called with bad ttisgmt"
#~ msgstr "vnútorná chyba - addtype zavolaný s chybným ttisgmt"
+#~ msgid "repeated leap second moment"
+#~ msgstr "opakovaný moment priestupnej sekundy"
+
#~ msgid "no day in month matches rule"
#~ msgstr "s pravidlom sa nezhoduje žiadny deň v mesiaci"
@@ -7908,12 +7968,18 @@ msgstr "%s: Nie je možné vytvoriť adresár %s: %s\n"
#~ msgid "empty dynamics string token substitution"
#~ msgstr "prázdna substitúcia tokenu reťazca dynamiky"
+#~ msgid "cannot open zero fill device"
+#~ msgstr "nie je možné otvoriť zariadenie pre naplnenie nulami"
+
#~ msgid "cannot allocate TLS data structures for initial thread"
#~ msgstr "nie je možné prideliÅ¥ dátové Å¡truktúry TLS pre poÄiatoÄné vlákno"
#~ msgid "cannot handle TLS data"
#~ msgstr "nie je možné spracovať TLS dáta"
+#~ msgid "relocation error"
+#~ msgstr "chyba relokácie"
+
#~ msgid "%s: profiler found no PLTREL in object %s\n"
#~ msgstr "%s: profiler nenašiel PLTREL v objekte %s\n"
diff --git a/po/sl.po b/po/sl.po
index 6d548e7116..0ec1605f85 100644
--- a/po/sl.po
+++ b/po/sl.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libc 2.22-pre1\n"
"Report-Msgid-Bugs-To: bug-coreutils@gnu.org\n"
-"POT-Creation-Date: 2018-07-26 22:19-0400\n"
+"POT-Creation-Date: 2019-07-18 13:28-0400\n"
"PO-Revision-Date: 2016-01-04 23:59+0100\n"
"Last-Translator: Primož Peterlin <primozz.peterlin@gmail.com>\n"
"Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net>\n"
@@ -146,10 +146,10 @@ msgstr ""
"[IZHODNA_DATOTEKA [VHODNA_DATOTEKA]...]"
#: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:308
-#: elf/pldd.c:252 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
-#: iconv/iconvconfig.c:379 locale/programs/locale.c:275
-#: locale/programs/localedef.c:427 login/programs/pt_chown.c:89
-#: malloc/memusagestat.c:563 nss/getent.c:933 nss/makedb.c:369
+#: elf/pldd.c:247 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
+#: iconv/iconvconfig.c:379 locale/programs/locale.c:276
+#: locale/programs/localedef.c:437 login/programs/pt_chown.c:89
+#: malloc/memusagestat.c:563 nss/getent.c:953 nss/makedb.c:369
#: posix/getconf.c:503 sysdeps/unix/sysv/linux/lddlibc4.c:61
#, c-format
msgid ""
@@ -160,11 +160,11 @@ msgstr ""
"%s.\n"
#: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64
-#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75
+#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:263 elf/sotruss.sh:75
#: elf/sprof.c:389 iconv/iconv_prog.c:422 iconv/iconvconfig.c:396
-#: locale/programs/locale.c:292 locale/programs/localedef.c:453
+#: locale/programs/locale.c:293 locale/programs/localedef.c:463
#: login/programs/pt_chown.c:63 malloc/memusage.sh:71
-#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:87 nss/makedb.c:385
+#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:88 nss/makedb.c:385
#: posix/getconf.c:485 sysdeps/unix/sysv/linux/lddlibc4.c:68
#, c-format
msgid ""
@@ -178,10 +178,10 @@ msgstr ""
"niti jamstev USTREZNOSTI ZA PRODAJO ali PRIMERNOSTI ZA RABO.\n"
#: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68
-#: elf/ldconfig.c:329 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:427
-#: iconv/iconvconfig.c:401 locale/programs/locale.c:297
-#: locale/programs/localedef.c:458 malloc/memusage.sh:75
-#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:92 nss/makedb.c:390
+#: elf/ldconfig.c:329 elf/pldd.c:268 elf/sprof.c:395 iconv/iconv_prog.c:427
+#: iconv/iconvconfig.c:401 locale/programs/locale.c:298
+#: locale/programs/localedef.c:468 malloc/memusage.sh:75
+#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:93 nss/makedb.c:390
#: posix/getconf.c:490
#, c-format
msgid "Written by %s.\n"
@@ -252,21 +252,21 @@ msgstr "izhodne datoteke »%s« ni mogoÄe odpreti"
msgid "invalid escape sequence"
msgstr "neveljavno ubežno zaporedje"
-#: catgets/gencat.c:1209
+#: catgets/gencat.c:1211
msgid "unterminated message"
msgstr "nezakljuÄeno sporoÄilo"
-#: catgets/gencat.c:1233
+#: catgets/gencat.c:1235
#, c-format
msgid "while opening old catalog file"
msgstr "ob odpiranju starega kataloga"
-#: catgets/gencat.c:1324
+#: catgets/gencat.c:1326
#, c-format
msgid "conversion modules not available"
msgstr "moduli za pretvorbo niso na voljo"
-#: catgets/gencat.c:1350
+#: catgets/gencat.c:1352
#, c-format
msgid "cannot determine escape character"
msgstr "ubežnega znaka ni mogoÄe ugotoviti"
@@ -391,7 +391,7 @@ msgstr "Neznan OS"
msgid ", OS ABI: %s %d.%d.%d"
msgstr ", OS ABI: %s %d.%d.%d"
-#: elf/cache.c:163 elf/ldconfig.c:1332
+#: elf/cache.c:163 elf/ldconfig.c:1333
#, c-format
msgid "Can't open cache file %s\n"
msgstr "Ni mogoÄe odpreti predpomnilniÅ¡ke datoteke %s\n"
@@ -401,38 +401,38 @@ msgstr "Ni mogoÄe odpreti predpomnilniÅ¡ke datoteke %s\n"
msgid "mmap of cache file failed.\n"
msgstr "mmap predpomnilniške datoteke ni uspel.\n"
-#: elf/cache.c:181 elf/cache.c:195
+#: elf/cache.c:181 elf/cache.c:195 elf/cache.c:205
#, c-format
msgid "File is not a cache file.\n"
msgstr "Datoteka ni predpomnilniška datoteka.\n"
-#: elf/cache.c:228 elf/cache.c:238
+#: elf/cache.c:233 elf/cache.c:243
#, c-format
msgid "%d libs found in cache `%s'\n"
msgstr "%d knjižnic najdeno v predpomnilniku »%s«\n"
-#: elf/cache.c:432
+#: elf/cache.c:437
#, c-format
msgid "Can't create temporary cache file %s"
msgstr "ZaÄasne predpomnilniÅ¡ke datoteke %s ni mogoÄe ustvariti"
-#: elf/cache.c:440 elf/cache.c:450 elf/cache.c:454 elf/cache.c:458
-#: elf/cache.c:468
+#: elf/cache.c:445 elf/cache.c:455 elf/cache.c:459 elf/cache.c:463
+#: elf/cache.c:473
#, c-format
msgid "Writing of cache data failed"
msgstr "Zapisovanje predpomnilniških podatkov ni uspelo"
-#: elf/cache.c:463
+#: elf/cache.c:468
#, c-format
msgid "Changing access rights of %s to %#o failed"
msgstr "Sprememba pravic dostopa za %s na %#o ni uspela"
-#: elf/cache.c:472
+#: elf/cache.c:477
#, c-format
msgid "Renaming of %s to %s failed"
msgstr "Preimenovanje %s v %s ni uspelo"
-#: elf/dl-close.c:399 elf/dl-open.c:420
+#: elf/dl-close.c:399 elf/dl-open.c:424
msgid "cannot create scope list"
msgstr "seznama podroÄja ni mogoÄe ustvariti"
@@ -515,121 +515,123 @@ msgstr "polja iskalnih poti ni mogoÄe ustvariti"
msgid "cannot stat shared object"
msgstr "statusa deljenega predmeta ni mogoÄe ugotoviti"
-#: elf/dl-load.c:960
-msgid "cannot open zero fill device"
-msgstr "ni mogoÄe odpreti naprave /dev/zero"
-
-#: elf/dl-load.c:1007 elf/dl-load.c:2203
+#: elf/dl-load.c:992 elf/dl-load.c:2198
msgid "cannot create shared object descriptor"
msgstr "deljenega predmetnega deskriptorja ni mogoÄe ustvariti"
-#: elf/dl-load.c:1026 elf/dl-load.c:1560 elf/dl-load.c:1673
+#: elf/dl-load.c:1011 elf/dl-load.c:1555 elf/dl-load.c:1668
msgid "cannot read file data"
msgstr "podatkov datoteke ni mogoÄe prebrati"
-#: elf/dl-load.c:1072
+#: elf/dl-load.c:1057
msgid "ELF load command alignment not page-aligned"
msgstr "poravnava ukaza ELF za nalaganje ni poravnana s stranjo"
-#: elf/dl-load.c:1079
+#: elf/dl-load.c:1064
msgid "ELF load command address/offset not properly aligned"
msgstr "naslov/odmik ukaza ELF za nalaganje ni primerno poravnan"
-#: elf/dl-load.c:1161
+#: elf/dl-load.c:1146
#, fuzzy
#| msgid "cannot restore segment prot after reloc"
msgid "cannot process note segment"
msgstr "zaÅ¡Äite segmenta po premiku ni mogoÄe povrniti"
-#: elf/dl-load.c:1172
+#: elf/dl-load.c:1157
msgid "object file has no loadable segments"
msgstr "predmetna datoteka nima vÄitljivega segmenta"
-#: elf/dl-load.c:1181 elf/dl-load.c:1652
+#: elf/dl-load.c:1170 elf/dl-load.c:1647
msgid "cannot dynamically load executable"
msgstr "dinamiÄno nalaganje izvedljive datoteke ni mogoÄe"
-#: elf/dl-load.c:1202
+#: elf/dl-load.c:1191
msgid "object file has no dynamic section"
msgstr "predmetna datoteka nima dinamiÄne sekcije"
-#: elf/dl-load.c:1225
+#: elf/dl-load.c:1218
+#, fuzzy
+#| msgid "cannot dynamically load executable"
+msgid "cannot dynamically load position-independent executable"
+msgstr "dinamiÄno nalaganje izvedljive datoteke ni mogoÄe"
+
+#: elf/dl-load.c:1220
msgid "shared object cannot be dlopen()ed"
msgstr "dlopen() na deljenih predmetih ni mogoÄ"
-#: elf/dl-load.c:1238
+#: elf/dl-load.c:1233
msgid "cannot allocate memory for program header"
msgstr "dodelitev pomnilnika za glavo programa ni mogoÄa"
-#: elf/dl-load.c:1271 elf/dl-load.h:130
+#: elf/dl-load.c:1266 elf/dl-load.h:130
msgid "cannot change memory protections"
msgstr "sprememba zaÅ¡Äite pomnilnika ni mogoÄa"
-#: elf/dl-load.c:1291
+#: elf/dl-load.c:1286
msgid "cannot enable executable stack as shared object requires"
msgstr "izvedljivega sklada ni mogoÄe omogoÄiti, kot to zahteva deljeni predmet"
-#: elf/dl-load.c:1304
+#: elf/dl-load.c:1299
msgid "cannot close file descriptor"
msgstr "datoteÄnega deskriptorja ni mogoÄe zapreti"
-#: elf/dl-load.c:1560
+#: elf/dl-load.c:1555
msgid "file too short"
msgstr "datoteka je prekratka"
-#: elf/dl-load.c:1595
+#: elf/dl-load.c:1590
msgid "invalid ELF header"
msgstr "neveljavna glava ELF"
-#: elf/dl-load.c:1607
+#: elf/dl-load.c:1602
msgid "ELF file data encoding not big-endian"
msgstr "kodiranje podatkov datoteke ELF ni »big-endian«"
-#: elf/dl-load.c:1609
+#: elf/dl-load.c:1604
msgid "ELF file data encoding not little-endian"
msgstr "kodiranje podatkov datoteke ELF ni »little-endian«"
-#: elf/dl-load.c:1613
+#: elf/dl-load.c:1608
msgid "ELF file version ident does not match current one"
msgstr "identifikator razliÄice datoteke ELF se ne ujema s trenutnim"
-#: elf/dl-load.c:1617
+#: elf/dl-load.c:1612
msgid "ELF file OS ABI invalid"
msgstr "OS ABI datoteke ELF ni veljaven"
-#: elf/dl-load.c:1620
+#: elf/dl-load.c:1615
msgid "ELF file ABI version invalid"
msgstr "razliÄica ABI datoteke ELF ni veljavna"
-#: elf/dl-load.c:1623
+#: elf/dl-load.c:1618
msgid "nonzero padding in e_ident"
msgstr "neniÄelno zapolnjenje pri e_ident"
-#: elf/dl-load.c:1626
+#: elf/dl-load.c:1621
msgid "internal error"
msgstr "interna napaka"
-#: elf/dl-load.c:1633
+#: elf/dl-load.c:1628
msgid "ELF file version does not match current one"
msgstr "razliÄica datoteke ELF se ne ujema s trenutno"
-#: elf/dl-load.c:1641
+#: elf/dl-load.c:1636
msgid "only ET_DYN and ET_EXEC can be loaded"
msgstr "samo ET_DYN in ET_EXEC je mogoÄe naložiti"
-#: elf/dl-load.c:1657
+#: elf/dl-load.c:1652
msgid "ELF file's phentsize not the expected size"
msgstr "phentsize datoteke ELF ni priÄakovane velikosti"
-#: elf/dl-load.c:2222
+#: elf/dl-load.c:2217
msgid "wrong ELF class: ELFCLASS64"
msgstr "napaÄen razred ELF: ELFCLASS64"
-#: elf/dl-load.c:2223
+#: elf/dl-load.c:2218
msgid "wrong ELF class: ELFCLASS32"
msgstr "napaÄen razred ELF: ELFCLASS32"
-#: elf/dl-load.c:2226
+#: elf/dl-load.c:2221
msgid "cannot open shared object file"
msgstr "deljene predmetne datoteke ni mogoÄe odpreti"
@@ -641,11 +643,7 @@ msgstr "preslikava segmenta iz deljenega predmeta ni uspela"
msgid "cannot map zero-fill pages"
msgstr "niÄelnih strani ni mogoÄe preslikati"
-#: elf/dl-lookup.c:835
-msgid "relocation error"
-msgstr "napaka pri premikanju"
-
-#: elf/dl-lookup.c:858
+#: elf/dl-lookup.c:830
msgid "symbol lookup error"
msgstr "napaka pri iskanju simbola"
@@ -653,19 +651,19 @@ msgstr "napaka pri iskanju simbola"
msgid "cannot extend global scope"
msgstr "ni mogoÄe razÅ¡iriti globalnega podroÄja"
-#: elf/dl-open.c:470
+#: elf/dl-open.c:474
msgid "TLS generation counter wrapped! Please report this."
msgstr "Zapletanje Å¡tevca generacij TLS! Prosim, javite to napako."
-#: elf/dl-open.c:534
+#: elf/dl-open.c:538
msgid "invalid mode for dlopen()"
msgstr "neveljavni naÄin za dlopen()"
-#: elf/dl-open.c:551
+#: elf/dl-open.c:555
msgid "no more namespaces available for dlmopen()"
msgstr "nobenega imenskega prostora za dlmopen() ni veÄ na voljo"
-#: elf/dl-open.c:575
+#: elf/dl-open.c:579
msgid "invalid target namespace in dlmopen()"
msgstr "neveljavni ciljni imenski prostor pri dlmopen()"
@@ -673,20 +671,20 @@ msgstr "neveljavni ciljni imenski prostor pri dlmopen()"
msgid "cannot allocate memory in static TLS block"
msgstr "ni mogoÄe dodeliti pomnilnika v statiÄnem bloku TLS"
-#: elf/dl-reloc.c:205
+#: elf/dl-reloc.c:213
msgid "cannot make segment writable for relocation"
msgstr "segmenta se ne da odÅ¡Äititi za pisanje pred premikom"
-#: elf/dl-reloc.c:276
+#: elf/dl-reloc.c:272
#, c-format
msgid "%s: out of memory to store relocation results for %s\n"
msgstr "%s: pomnilnika ni dovolj za shranjevanje rezultatov premikanja %s\n"
-#: elf/dl-reloc.c:292
+#: elf/dl-reloc.c:288
msgid "cannot restore segment prot after reloc"
msgstr "zaÅ¡Äite segmenta po premiku ni mogoÄe povrniti"
-#: elf/dl-reloc.c:323
+#: elf/dl-reloc.c:319
msgid "cannot apply additional memory protection after relocation"
msgstr "dodatne zaÅ¡Äite pomnilnika po premiku ni mogoÄe uporabiti"
@@ -912,22 +910,22 @@ msgstr "ob izbiri -r je potrebo absolutno ime za nastavitveno datoteko"
msgid "memory exhausted"
msgstr "pomnilnik porabljen"
-#: elf/ldconfig.c:1233
+#: elf/ldconfig.c:1234
#, c-format
msgid "%s:%u: cannot read directory %s"
msgstr "%s:%u: imenika %s ni mogoÄe prebrati"
-#: elf/ldconfig.c:1281
+#: elf/ldconfig.c:1282
#, c-format
msgid "relative path `%s' used to build cache"
msgstr "relativna pot »%s« uporabljena za izgradnjo predpomnilnika"
-#: elf/ldconfig.c:1311
+#: elf/ldconfig.c:1312
#, c-format
msgid "Can't chdir to /"
msgstr "Sprememba imenika na / ni mogoÄa"
-#: elf/ldconfig.c:1352
+#: elf/ldconfig.c:1353
#, c-format
msgid "Can't open cache file directory %s\n"
msgstr "Ni mogoÄe odpreti imenika %s s predpomnilniÅ¡ko datoteko\n"
@@ -997,95 +995,100 @@ msgstr "zakljuÄek z neznano izhodno kodo"
msgid "error: you do not have read permission for"
msgstr "napaka: nimate dovoljenja za branje za"
-#: elf/pldd-xx.c:105
+#: elf/pldd-xx.c:102
#, c-format
msgid "cannot find program header of process"
msgstr "programske glave procesa ni mogoÄe najti"
-#: elf/pldd-xx.c:110
+#: elf/pldd-xx.c:106
#, c-format
msgid "cannot read program header"
msgstr "programske glave ni mogoÄe prebrati"
-#: elf/pldd-xx.c:135
+#: elf/pldd-xx.c:128
#, c-format
msgid "cannot read dynamic section"
msgstr "dinamiÄne sekcije ni mogoÄe prebrati"
-#: elf/pldd-xx.c:147
+#: elf/pldd-xx.c:137
#, c-format
msgid "cannot read r_debug"
msgstr "branje r_debug ni mogoÄe"
-#: elf/pldd-xx.c:167
+#: elf/pldd-xx.c:154
#, c-format
msgid "cannot read program interpreter"
msgstr "programskega tolmaÄa ni mogoÄe prebrati"
-#: elf/pldd-xx.c:197
+#: elf/pldd-xx.c:183
#, c-format
msgid "cannot read link map"
msgstr "preslikave povezav ni mogoÄe prebrati"
-#: elf/pldd-xx.c:209
+#: elf/pldd-xx.c:190
#, c-format
msgid "cannot read object name"
msgstr "imena predmeta ni mogoÄe prebrati"
-#: elf/pldd-xx.c:219
+#: elf/pldd-xx.c:197
#, c-format
msgid "cannot allocate buffer for object name"
msgstr "dodelitev medpomnilnika za ime predmeta ni mogoÄa"
-#: elf/pldd.c:64
+#: elf/pldd.c:58
msgid "List dynamic shared objects loaded into process."
msgstr "IzpiÅ¡i seznam dinamiÄnih deljenih predmetov, naloženih v proces."
-#: elf/pldd.c:68
+#: elf/pldd.c:62
msgid "PID"
msgstr "PID"
-#: elf/pldd.c:100
+#: elf/pldd.c:89
#, c-format
msgid "Exactly one parameter with process ID required.\n"
msgstr "Zahtevan je natanÄno en parameter z ID procesa.\n"
-#: elf/pldd.c:112
+#: elf/pldd.c:103
#, c-format
msgid "invalid process ID '%s'"
msgstr "neveljavna identifikacijska številka procesa »%s«"
-#: elf/pldd.c:120
+#: elf/pldd.c:111
#, c-format
msgid "cannot open %s"
msgstr "ni mogoÄe odpreti %s"
-#: elf/pldd.c:152
+#: elf/pldd.c:142
#, c-format
msgid "cannot open %s/task"
msgstr "ni mogoÄe odpreti %s/task"
-#: elf/pldd.c:155
+#: elf/pldd.c:145
#, c-format
msgid "cannot prepare reading %s/task"
msgstr "ni mogoÄe pripraviti %s/task za branje"
-#: elf/pldd.c:168
+#: elf/pldd.c:158
#, c-format
msgid "invalid thread ID '%s'"
msgstr "neveljavna identifikacijska številka niti »%s«"
-#: elf/pldd.c:179
+#: elf/pldd.c:169
#, c-format
msgid "cannot attach to process %lu"
msgstr "pripenjanje k procesu %lu ni mogoÄe"
-#: elf/pldd.c:294
+#: elf/pldd.c:184
+#, fuzzy, c-format
+msgid "no valid %s/task entries"
+msgstr "neveljavna specifikacija"
+
+#: elf/pldd.c:290
#, c-format
msgid "cannot get information about process %lu"
msgstr "informacije o procesu %lu niso na voljo"
-#: elf/pldd.c:307
+#: elf/pldd.c:303
#, c-format
msgid "process %lu is no ELF program"
msgstr "proces %lu ni program ELF"
@@ -1407,7 +1410,7 @@ msgstr "Informacija:"
msgid "list all known coded character sets"
msgstr "seznam vseh znanih naborov znakov"
-#: iconv/iconv_prog.c:64 locale/programs/localedef.c:120
+#: iconv/iconv_prog.c:64 locale/programs/localedef.c:124
msgid "Output control:"
msgstr "Nadzor nad izhodom:"
@@ -1416,8 +1419,8 @@ msgid "omit invalid characters from output"
msgstr "izpusti neveljavne znake na izhodu"
#: iconv/iconv_prog.c:66 iconv/iconvconfig.c:128
-#: locale/programs/localedef.c:113 locale/programs/localedef.c:115
-#: locale/programs/localedef.c:117 locale/programs/localedef.c:144
+#: locale/programs/localedef.c:117 locale/programs/localedef.c:119
+#: locale/programs/localedef.c:121 locale/programs/localedef.c:150
#: malloc/memusagestat.c:56
msgid "FILE"
msgstr "DATOTEKA"
@@ -1516,7 +1519,7 @@ msgstr "Ustvarjam konfiguracijsko datoteko za hitro-naložljiv modul iconv."
msgid "[DIR...]"
msgstr "[IMENIK...]"
-#: iconv/iconvconfig.c:126 locale/programs/localedef.c:123
+#: iconv/iconvconfig.c:126 locale/programs/localedef.c:129
msgid "PATH"
msgstr "POT"
@@ -1703,14 +1706,14 @@ msgstr "nabori znakov z zaklepnimi stanji niso podprti"
#: locale/programs/charmap.c:503 locale/programs/charmap.c:557
#: locale/programs/charmap.c:589 locale/programs/charmap.c:683
-#: locale/programs/charmap.c:738 locale/programs/charmap.c:779
-#: locale/programs/charmap.c:820
+#: locale/programs/charmap.c:739 locale/programs/charmap.c:780
+#: locale/programs/charmap.c:821
#, c-format
msgid "syntax error in %s definition: %s"
msgstr "skladenjska napaka v definiciji %s: %s"
#: locale/programs/charmap.c:504 locale/programs/charmap.c:684
-#: locale/programs/charmap.c:780 locale/programs/repertoire.c:229
+#: locale/programs/charmap.c:781 locale/programs/repertoire.c:229
msgid "no symbolic name given"
msgstr "simbolno ime ni podano"
@@ -1726,14 +1729,14 @@ msgstr "premalo bajtov v kodiranju znakov"
msgid "too many bytes in character encoding"
msgstr "preveÄ bajtov v kodiranju znakov"
-#: locale/programs/charmap.c:591 locale/programs/charmap.c:739
-#: locale/programs/charmap.c:822 locale/programs/repertoire.c:295
+#: locale/programs/charmap.c:591 locale/programs/charmap.c:740
+#: locale/programs/charmap.c:823 locale/programs/repertoire.c:295
msgid "no symbolic name given for end of range"
msgstr "simbolno ime za konec razpona ni podano"
#: locale/programs/charmap.c:615 locale/programs/ld-address.c:524
#: locale/programs/ld-collate.c:2616 locale/programs/ld-collate.c:3774
-#: locale/programs/ld-ctype.c:2117 locale/programs/ld-ctype.c:2829
+#: locale/programs/ld-ctype.c:2118 locale/programs/ld-ctype.c:2830
#: locale/programs/ld-identification.c:397
#: locale/programs/ld-measurement.c:213 locale/programs/ld-messages.c:295
#: locale/programs/ld-monetary.c:748 locale/programs/ld-name.c:262
@@ -1748,58 +1751,58 @@ msgstr "%1$s: definicija se ne zakljuÄi z »END %1$s«"
msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
msgstr "definiciji CHARMAP smejo slediti le definicije WIDTH"
-#: locale/programs/charmap.c:656 locale/programs/charmap.c:719
+#: locale/programs/charmap.c:656 locale/programs/charmap.c:720
#, c-format
msgid "value for %s must be an integer"
msgstr "vrednost %s mora biti celo Å¡tevilo"
-#: locale/programs/charmap.c:847
+#: locale/programs/charmap.c:848
#, c-format
msgid "%s: error in state machine"
msgstr "%s: napaka v stroju stanj"
-#: locale/programs/charmap.c:855 locale/programs/ld-address.c:540
+#: locale/programs/charmap.c:856 locale/programs/ld-address.c:540
#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967
-#: locale/programs/ld-ctype.c:2114 locale/programs/ld-ctype.c:2846
+#: locale/programs/ld-ctype.c:2115 locale/programs/ld-ctype.c:2847
#: locale/programs/ld-identification.c:413
#: locale/programs/ld-measurement.c:229 locale/programs/ld-messages.c:311
#: locale/programs/ld-monetary.c:764 locale/programs/ld-name.c:278
#: locale/programs/ld-numeric.c:341 locale/programs/ld-paper.c:228
#: locale/programs/ld-telephone.c:292 locale/programs/ld-time.c:990
-#: locale/programs/locfile.c:997 locale/programs/repertoire.c:323
+#: locale/programs/locfile.c:1010 locale/programs/repertoire.c:323
#, c-format
msgid "%s: premature end of file"
msgstr "%s: predÄasen konec datoteke"
-#: locale/programs/charmap.c:874 locale/programs/charmap.c:885
+#: locale/programs/charmap.c:875 locale/programs/charmap.c:886
#, c-format
msgid "unknown character `%s'"
msgstr "neznani znak »%s«"
-#: locale/programs/charmap.c:893
+#: locale/programs/charmap.c:894
#, c-format
msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d"
msgstr "Å¡tevilo bajtov v zaporedju bajtov za zaÄetek in konec razpona ni enako: %d proti %d"
-#: locale/programs/charmap.c:998 locale/programs/ld-collate.c:2893
+#: locale/programs/charmap.c:999 locale/programs/ld-collate.c:2893
#: locale/programs/repertoire.c:418
msgid "invalid names for character range"
msgstr "neveljavna imena za razpon znakov"
-#: locale/programs/charmap.c:1010 locale/programs/repertoire.c:430
+#: locale/programs/charmap.c:1011 locale/programs/repertoire.c:430
msgid "hexadecimal range format should use only capital characters"
msgstr "v Å¡estnajstiÅ¡kem zapisu razpona so dovoljene le velike Ärke"
-#: locale/programs/charmap.c:1028 locale/programs/repertoire.c:448
+#: locale/programs/charmap.c:1029 locale/programs/repertoire.c:448
#, c-format
msgid "<%s> and <%s> are invalid names for range"
msgstr "<%s> in <%s> sta neveljavni imeni za razpon"
-#: locale/programs/charmap.c:1034 locale/programs/repertoire.c:455
+#: locale/programs/charmap.c:1035 locale/programs/repertoire.c:455
msgid "upper limit in range is smaller than lower limit"
msgstr "zgornja meja v razponu je manjša od spodnje meje"
-#: locale/programs/charmap.c:1092
+#: locale/programs/charmap.c:1093
#, fuzzy
msgid "resulting bytes for range not representable."
msgstr "vrednost %s je tolikšna, da ni strojno predstavljiva"
@@ -1869,7 +1872,7 @@ msgid "%s: numeric country code `%d' not valid"
msgstr "%s: Å¡tevilÄna koda države »%d« ni doloÄena"
#: locale/programs/ld-address.c:432 locale/programs/ld-address.c:469
-#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2478
+#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2479
#: locale/programs/ld-identification.c:309
#: locale/programs/ld-measurement.c:196 locale/programs/ld-messages.c:264
#: locale/programs/ld-monetary.c:503 locale/programs/ld-monetary.c:538
@@ -1892,7 +1895,7 @@ msgid "%s: unknown character in field `%s'"
msgstr "%s: neznani znak v polju »%s«"
#: locale/programs/ld-address.c:521 locale/programs/ld-collate.c:3772
-#: locale/programs/ld-ctype.c:2826 locale/programs/ld-identification.c:394
+#: locale/programs/ld-ctype.c:2827 locale/programs/ld-identification.c:394
#: locale/programs/ld-measurement.c:210 locale/programs/ld-messages.c:293
#: locale/programs/ld-monetary.c:746 locale/programs/ld-name.c:260
#: locale/programs/ld-numeric.c:323 locale/programs/ld-paper.c:210
@@ -1905,8 +1908,8 @@ msgstr "%s: nepopolna vrstica »END«"
#: locale/programs/ld-collate.c:602 locale/programs/ld-collate.c:898
#: locale/programs/ld-collate.c:911 locale/programs/ld-collate.c:2582
#: locale/programs/ld-collate.c:2603 locale/programs/ld-collate.c:3957
-#: locale/programs/ld-ctype.c:1846 locale/programs/ld-ctype.c:2104
-#: locale/programs/ld-ctype.c:2676 locale/programs/ld-ctype.c:2837
+#: locale/programs/ld-ctype.c:1847 locale/programs/ld-ctype.c:2105
+#: locale/programs/ld-ctype.c:2677 locale/programs/ld-ctype.c:2838
#: locale/programs/ld-identification.c:404
#: locale/programs/ld-measurement.c:220 locale/programs/ld-messages.c:302
#: locale/programs/ld-monetary.c:755 locale/programs/ld-name.c:269
@@ -2253,130 +2256,130 @@ msgstr "znakovna enota"
msgid "implementation limit: no more than %d character maps allowed"
msgstr ""
-#: locale/programs/ld-ctype.c:1434 locale/programs/ld-ctype.c:1559
-#: locale/programs/ld-ctype.c:1665 locale/programs/ld-ctype.c:2341
-#: locale/programs/ld-ctype.c:3299
+#: locale/programs/ld-ctype.c:1435 locale/programs/ld-ctype.c:1560
+#: locale/programs/ld-ctype.c:1666 locale/programs/ld-ctype.c:2342
+#: locale/programs/ld-ctype.c:3302
#, c-format
msgid "%s: field `%s' does not contain exactly ten entries"
msgstr ""
-#: locale/programs/ld-ctype.c:1462 locale/programs/ld-ctype.c:2036
+#: locale/programs/ld-ctype.c:1463 locale/programs/ld-ctype.c:2037
#, c-format
msgid "to-value <U%0*X> of range is smaller than from-value <U%0*X>"
msgstr ""
-#: locale/programs/ld-ctype.c:1589
+#: locale/programs/ld-ctype.c:1590
msgid "start and end character sequence of range must have the same length"
msgstr ""
-#: locale/programs/ld-ctype.c:1596
+#: locale/programs/ld-ctype.c:1597
msgid "to-value character sequence is smaller than from-value sequence"
msgstr ""
-#: locale/programs/ld-ctype.c:1956 locale/programs/ld-ctype.c:2007
+#: locale/programs/ld-ctype.c:1957 locale/programs/ld-ctype.c:2008
#, fuzzy
msgid "premature end of `translit_ignore' definition"
msgstr "PredÄasen zakljuÄek regularnega izraza"
-#: locale/programs/ld-ctype.c:1962 locale/programs/ld-ctype.c:2013
-#: locale/programs/ld-ctype.c:2055
+#: locale/programs/ld-ctype.c:1963 locale/programs/ld-ctype.c:2014
+#: locale/programs/ld-ctype.c:2056
msgid "syntax error"
msgstr "napaka v skladnji"
-#: locale/programs/ld-ctype.c:2188
+#: locale/programs/ld-ctype.c:2189
#, c-format
msgid "%s: syntax error in definition of new character class"
msgstr ""
-#: locale/programs/ld-ctype.c:2203
+#: locale/programs/ld-ctype.c:2204
#, c-format
msgid "%s: syntax error in definition of new character map"
msgstr ""
-#: locale/programs/ld-ctype.c:2363
+#: locale/programs/ld-ctype.c:2364
msgid "ellipsis range must be marked by two operands of same type"
msgstr ""
-#: locale/programs/ld-ctype.c:2372
+#: locale/programs/ld-ctype.c:2373
msgid "with symbolic name range values the absolute ellipsis `...' must not be used"
msgstr ""
-#: locale/programs/ld-ctype.c:2387
+#: locale/programs/ld-ctype.c:2388
msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'"
msgstr ""
-#: locale/programs/ld-ctype.c:2401
+#: locale/programs/ld-ctype.c:2402
msgid "with character code range values one must use the absolute ellipsis `...'"
msgstr ""
-#: locale/programs/ld-ctype.c:2552
+#: locale/programs/ld-ctype.c:2553
#, fuzzy, c-format
msgid "duplicated definition for mapping `%s'"
msgstr "podvojena definicija sporoÄila"
-#: locale/programs/ld-ctype.c:2638 locale/programs/ld-ctype.c:2782
+#: locale/programs/ld-ctype.c:2639 locale/programs/ld-ctype.c:2783
#, c-format
msgid "%s: `translit_start' section does not end with `translit_end'"
msgstr ""
-#: locale/programs/ld-ctype.c:2733
+#: locale/programs/ld-ctype.c:2734
#, fuzzy, c-format
msgid "%s: duplicate `default_missing' definition"
msgstr "podvojena definicija sporoÄila"
-#: locale/programs/ld-ctype.c:2738
+#: locale/programs/ld-ctype.c:2739
msgid "previous definition was here"
msgstr ""
-#: locale/programs/ld-ctype.c:2760
+#: locale/programs/ld-ctype.c:2761
#, c-format
msgid "%s: no representable `default_missing' definition found"
msgstr ""
-#: locale/programs/ld-ctype.c:2877 locale/programs/ld-ctype.c:2973
-#: locale/programs/ld-ctype.c:2992 locale/programs/ld-ctype.c:3012
-#: locale/programs/ld-ctype.c:3032 locale/programs/ld-ctype.c:3052
-#: locale/programs/ld-ctype.c:3072 locale/programs/ld-ctype.c:3111
-#: locale/programs/ld-ctype.c:3131 locale/programs/ld-ctype.c:3195
-#: locale/programs/ld-ctype.c:3236 locale/programs/ld-ctype.c:3259
+#: locale/programs/ld-ctype.c:2878 locale/programs/ld-ctype.c:2974
+#: locale/programs/ld-ctype.c:2993 locale/programs/ld-ctype.c:3013
+#: locale/programs/ld-ctype.c:3033 locale/programs/ld-ctype.c:3053
+#: locale/programs/ld-ctype.c:3073 locale/programs/ld-ctype.c:3112
+#: locale/programs/ld-ctype.c:3132 locale/programs/ld-ctype.c:3198
+#: locale/programs/ld-ctype.c:3239 locale/programs/ld-ctype.c:3262
#, c-format
msgid "%s: character `%s' not defined while needed as default value"
msgstr ""
-#: locale/programs/ld-ctype.c:2882 locale/programs/ld-ctype.c:2978
-#: locale/programs/ld-ctype.c:2997 locale/programs/ld-ctype.c:3017
-#: locale/programs/ld-ctype.c:3037 locale/programs/ld-ctype.c:3057
-#: locale/programs/ld-ctype.c:3077 locale/programs/ld-ctype.c:3116
-#: locale/programs/ld-ctype.c:3136 locale/programs/ld-ctype.c:3200
+#: locale/programs/ld-ctype.c:2883 locale/programs/ld-ctype.c:2979
+#: locale/programs/ld-ctype.c:2998 locale/programs/ld-ctype.c:3018
+#: locale/programs/ld-ctype.c:3038 locale/programs/ld-ctype.c:3058
+#: locale/programs/ld-ctype.c:3078 locale/programs/ld-ctype.c:3117
+#: locale/programs/ld-ctype.c:3137 locale/programs/ld-ctype.c:3203
#, c-format
msgid "%s: character `%s' in charmap not representable with one byte"
msgstr ""
-#: locale/programs/ld-ctype.c:3242 locale/programs/ld-ctype.c:3265
+#: locale/programs/ld-ctype.c:3245 locale/programs/ld-ctype.c:3268
#, c-format
msgid "%s: character `%s' needed as default value not representable with one byte"
msgstr ""
-#: locale/programs/ld-ctype.c:3321
+#: locale/programs/ld-ctype.c:3324
msgid "no output digits defined and none of the standard names in the charmap"
msgstr ""
-#: locale/programs/ld-ctype.c:3570
+#: locale/programs/ld-ctype.c:3573
#, c-format
msgid "%s: transliteration data from locale `%s' not available"
msgstr ""
-#: locale/programs/ld-ctype.c:3669
+#: locale/programs/ld-ctype.c:3672
#, fuzzy, c-format
msgid "%s: table for class \"%s\": %lu bytes"
msgstr "%s: Zapisanih samo %lu od skupno %lu bajtov"
-#: locale/programs/ld-ctype.c:3733
+#: locale/programs/ld-ctype.c:3736
#, fuzzy, c-format
msgid "%s: table for map \"%s\": %lu bytes"
msgstr "%s: Zapisanih samo %lu od skupno %lu bajtov"
-#: locale/programs/ld-ctype.c:3857
+#: locale/programs/ld-ctype.c:3860
#, fuzzy, c-format
msgid "%s: table for width: %lu bytes"
msgstr "%s: Zapisanih samo %lu od skupno %lu bajtov"
@@ -2621,162 +2624,156 @@ msgid ""
"[-a|-m]"
msgstr ""
-#: locale/programs/locale.c:190
-#, c-format
-msgid "Cannot set LC_CTYPE to default locale"
-msgstr ""
-
-#: locale/programs/locale.c:192
+#: locale/programs/locale.c:522
#, c-format
-msgid "Cannot set LC_MESSAGES to default locale"
-msgstr ""
+msgid "while preparing output"
+msgstr "med pripravo izpisa"
-#: locale/programs/locale.c:205
+#: locale/programs/locale.c:998
#, c-format
-msgid "Cannot set LC_COLLATE to default locale"
+msgid "Cannot set %s to default locale"
msgstr ""
-#: locale/programs/locale.c:221
+#: locale/programs/locale.c:1096
#, c-format
-msgid "Cannot set LC_ALL to default locale"
+msgid "warning: The LOCPATH variable is set to \"%s\"\n"
msgstr ""
-#: locale/programs/locale.c:521
-#, c-format
-msgid "while preparing output"
-msgstr "med pripravo izpisa"
-
-#: locale/programs/localedef.c:112
+#: locale/programs/localedef.c:116
#, fuzzy
msgid "Input Files:"
msgstr "Skladnja vhodne datoteke:\n"
-#: locale/programs/localedef.c:114
+#: locale/programs/localedef.c:118
msgid "Symbolic character names defined in FILE"
msgstr ""
-#: locale/programs/localedef.c:116
+#: locale/programs/localedef.c:120
msgid "Source definitions are found in FILE"
msgstr ""
-#: locale/programs/localedef.c:118
+#: locale/programs/localedef.c:122
msgid "FILE contains mapping from symbolic names to UCS4 values"
msgstr ""
-#: locale/programs/localedef.c:122
+#: locale/programs/localedef.c:126
msgid "Create output even if warning messages were issued"
msgstr ""
-#: locale/programs/localedef.c:123
+#: locale/programs/localedef.c:128
+msgid "Do not create hard links between installed locales"
+msgstr ""
+
+#: locale/programs/localedef.c:129
#, fuzzy
msgid "Optional output file prefix"
msgstr "zapiramo izhodno datoteko %s"
-#: locale/programs/localedef.c:124
+#: locale/programs/localedef.c:130
msgid "Strictly conform to POSIX"
msgstr ""
-#: locale/programs/localedef.c:126
+#: locale/programs/localedef.c:132
msgid "Suppress warnings and information messages"
msgstr ""
-#: locale/programs/localedef.c:127
+#: locale/programs/localedef.c:133
msgid "Print more messages"
msgstr ""
-#: locale/programs/localedef.c:128 locale/programs/localedef.c:131
+#: locale/programs/localedef.c:134 locale/programs/localedef.c:137
#, fuzzy
#| msgid "warning: "
msgid "<warnings>"
msgstr "opozorilo: "
-#: locale/programs/localedef.c:129
+#: locale/programs/localedef.c:135
msgid "Comma-separated list of warnings to disable; supported warnings are: ascii, intcurrsym"
msgstr ""
-#: locale/programs/localedef.c:132
+#: locale/programs/localedef.c:138
msgid "Comma-separated list of warnings to enable; supported warnings are: ascii, intcurrsym"
msgstr ""
-#: locale/programs/localedef.c:135
+#: locale/programs/localedef.c:141
#, fuzzy
msgid "Archive control:"
msgstr "Nadzor nad pisanjem prek:"
-#: locale/programs/localedef.c:137
+#: locale/programs/localedef.c:143
#, fuzzy
msgid "Don't add new data to archive"
msgstr "ustvarjanje novega arhiva"
-#: locale/programs/localedef.c:139
+#: locale/programs/localedef.c:145
msgid "Add locales named by parameters to archive"
msgstr ""
-#: locale/programs/localedef.c:140
+#: locale/programs/localedef.c:146
msgid "Replace existing archive content"
msgstr ""
-#: locale/programs/localedef.c:142
+#: locale/programs/localedef.c:148
msgid "Remove locales named by parameters from archive"
msgstr ""
-#: locale/programs/localedef.c:143
+#: locale/programs/localedef.c:149
#, fuzzy
msgid "List content of archive"
msgstr "izpiši vsebino arhiva"
-#: locale/programs/localedef.c:145
+#: locale/programs/localedef.c:151
#, fuzzy
msgid "locale.alias file to consult when making archive"
msgstr "pri arhiviranju izpusti datoteke na nelokalnih datoteÄnih sistemih"
-#: locale/programs/localedef.c:147
+#: locale/programs/localedef.c:153
msgid "Generate little-endian output"
msgstr ""
-#: locale/programs/localedef.c:149
+#: locale/programs/localedef.c:155
msgid "Generate big-endian output"
msgstr ""
-#: locale/programs/localedef.c:154
+#: locale/programs/localedef.c:160
#, fuzzy
msgid "Compile locale specification"
msgstr "%s zahteva doloÄitev \"-l locale\""
-#: locale/programs/localedef.c:157
+#: locale/programs/localedef.c:163
msgid ""
"NAME\n"
"[--add-to-archive|--delete-from-archive] FILE...\n"
"--list-archive [FILE]"
msgstr ""
-#: locale/programs/localedef.c:232
+#: locale/programs/localedef.c:238
#, fuzzy, c-format
msgid "cannot create directory for output files"
msgstr "imenika %s ni mogoÄe ustvariti"
-#: locale/programs/localedef.c:243
+#: locale/programs/localedef.c:249
msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
msgstr ""
-#: locale/programs/localedef.c:257 locale/programs/localedef.c:273
-#: locale/programs/localedef.c:663 locale/programs/localedef.c:683
+#: locale/programs/localedef.c:263 locale/programs/localedef.c:279
+#: locale/programs/localedef.c:673 locale/programs/localedef.c:693
#, fuzzy, c-format
msgid "cannot open locale definition file `%s'"
msgstr "Vhodne datoteke %s ni mogoÄe odpreti"
-#: locale/programs/localedef.c:297
+#: locale/programs/localedef.c:303
#, fuzzy, c-format
msgid "cannot write output files to `%s'"
msgstr "izhodne datoteke \"%s\" ni mogoÄe ustvariti"
-#: locale/programs/localedef.c:303
+#: locale/programs/localedef.c:309
#, fuzzy
#| msgid "no output file produced because warnings were issued"
msgid "no output file produced because errors were issued"
msgstr "zaradi opozoril med potekom izhodna datoteka ni bila ustvarjena"
-#: locale/programs/localedef.c:431
+#: locale/programs/localedef.c:441
#, c-format
msgid ""
"System's directory for character maps : %s\n"
@@ -2785,11 +2782,11 @@ msgid ""
"%s"
msgstr ""
-#: locale/programs/localedef.c:631
+#: locale/programs/localedef.c:641
msgid "circular dependencies between locale definitions"
msgstr ""
-#: locale/programs/localedef.c:637
+#: locale/programs/localedef.c:647
#, c-format
msgid "cannot add already read locale `%s' a second time"
msgstr ""
@@ -2950,27 +2947,27 @@ msgstr "varnostne kopije %s ni mogoÄe odpreti za pisanje"
msgid "failure while writing data for category `%s'"
msgstr ""
-#: locale/programs/locfile.c:917
+#: locale/programs/locfile.c:930
#, fuzzy, c-format
msgid "cannot create output file `%s' for category `%s'"
msgstr "izhodne datoteke \"%s\" ni mogoÄe ustvariti"
-#: locale/programs/locfile.c:953
+#: locale/programs/locfile.c:966
#, fuzzy
msgid "expecting string argument for `copy'"
msgstr "manjkajoÄ argument k »%s«"
-#: locale/programs/locfile.c:957
+#: locale/programs/locfile.c:970
#, fuzzy
msgid "locale name should consist only of portable characters"
msgstr "datoteka vsebuje znak NUL"
-#: locale/programs/locfile.c:976
+#: locale/programs/locfile.c:989
#, fuzzy
msgid "no other keyword shall be specified when `copy' is used"
msgstr "tip ne sme biti doloÄen, kadar iznaÅ¡amo nize"
-#: locale/programs/locfile.c:990
+#: locale/programs/locfile.c:1003
#, c-format
msgid "`%1$s' definition does not end with `END %1$s'"
msgstr ""
@@ -3803,12 +3800,12 @@ msgstr ""
msgid "yp_update: cannot get server address\n"
msgstr ""
-#: nscd/aicache.c:83 nscd/hstcache.c:452
+#: nscd/aicache.c:82 nscd/hstcache.c:452
#, c-format
msgid "Haven't found \"%s\" in hosts cache!"
msgstr ""
-#: nscd/aicache.c:85 nscd/hstcache.c:454
+#: nscd/aicache.c:84 nscd/hstcache.c:454
#, c-format
msgid "Reloading \"%s\" in hosts cache!"
msgstr ""
@@ -4138,22 +4135,22 @@ msgstr ""
msgid "no more memory for database '%s'"
msgstr ""
-#: nscd/netgroupcache.c:121
+#: nscd/netgroupcache.c:122
#, c-format
msgid "Haven't found \"%s\" in netgroup cache!"
msgstr ""
-#: nscd/netgroupcache.c:123
+#: nscd/netgroupcache.c:124
#, c-format
msgid "Reloading \"%s\" in netgroup cache!"
msgstr ""
-#: nscd/netgroupcache.c:469
+#: nscd/netgroupcache.c:470
#, c-format
msgid "Haven't found \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr ""
-#: nscd/netgroupcache.c:472
+#: nscd/netgroupcache.c:473
#, c-format
msgid "Reloading \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr ""
@@ -4206,7 +4203,7 @@ msgstr ""
msgid "Name Service Cache Daemon."
msgstr ""
-#: nscd/nscd.c:155 nss/getent.c:967 nss/makedb.c:206
+#: nscd/nscd.c:155 nss/getent.c:987 nss/makedb.c:206
#, c-format
msgid "wrong number of arguments"
msgstr "napaÄno Å¡tevilo argumentov"
@@ -4315,27 +4312,27 @@ msgstr "napaka pri branju: %s"
msgid "Must specify user name for server-user option"
msgstr "navesti morate izbiro izravnalnega naÄina"
-#: nscd/nscd_conf.c:198
+#: nscd/nscd_conf.c:201
#, fuzzy, c-format
msgid "Must specify user name for stat-user option"
msgstr "navesti morate izbiro izravnalnega naÄina"
-#: nscd/nscd_conf.c:255
+#: nscd/nscd_conf.c:259
#, fuzzy, c-format
msgid "Must specify value for restart-interval option"
msgstr "navesti morate izbiro izravnalnega naÄina"
-#: nscd/nscd_conf.c:269
+#: nscd/nscd_conf.c:273
#, fuzzy, c-format
msgid "Unknown option: %s %s %s"
msgstr "neznana izbira pri ukazu »s«"
-#: nscd/nscd_conf.c:282
+#: nscd/nscd_conf.c:286
#, fuzzy, c-format
msgid "cannot get current working directory: %s; disabling paranoia mode"
msgstr "trenutnega imenika ni mogoÄe povrniti"
-#: nscd/nscd_conf.c:302
+#: nscd/nscd_conf.c:306
#, c-format
msgid "maximum file size for %s database too small"
msgstr ""
@@ -4563,46 +4560,46 @@ msgstr ""
msgid "Reloading \"%s\" in services cache!"
msgstr ""
-#: nss/getent.c:54
+#: nss/getent.c:55
msgid "database [key ...]"
msgstr ""
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "CONFIG"
msgstr ""
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "Service configuration to be used"
msgstr ""
-#: nss/getent.c:60
+#: nss/getent.c:61
msgid "disable IDN encoding"
msgstr ""
-#: nss/getent.c:65
+#: nss/getent.c:66
msgid "Get entries from administrative database."
msgstr ""
-#: nss/getent.c:149 nss/getent.c:442 nss/getent.c:489
+#: nss/getent.c:150 nss/getent.c:462 nss/getent.c:509
#, fuzzy, c-format
msgid "Enumeration not supported on %s\n"
msgstr "Operacija ni podprta"
-#: nss/getent.c:497 nss/getent.c:510
+#: nss/getent.c:517 nss/getent.c:530
#, fuzzy, c-format
msgid "Could not allocate group list: %m\n"
msgstr "%s: Ni mogoÄe ustvariti datoteke"
-#: nss/getent.c:881
+#: nss/getent.c:901
#, fuzzy, c-format
msgid "Unknown database name"
msgstr "Neznana format datuma"
-#: nss/getent.c:911
+#: nss/getent.c:931
msgid "Supported databases:\n"
msgstr ""
-#: nss/getent.c:977
+#: nss/getent.c:997
#, fuzzy, c-format
msgid "Unknown database: %s\n"
msgstr "Neznano ime signala: %s"
@@ -4859,11 +4856,11 @@ msgstr "Regularni izraz je preobsežen"
msgid "Unmatched ) or \\)"
msgstr "Zaklepaj ) ali \\) brez para"
-#: posix/regcomp.c:689
+#: posix/regcomp.c:676
msgid "No previous regular expression"
msgstr "ManjkajoÄ prejÅ¡nji regularni izraz"
-#: posix/wordexp.c:1815
+#: posix/wordexp.c:1816
msgid "parameter null or not set"
msgstr ""
@@ -5071,7 +5068,7 @@ msgstr ""
msgid "Input message available"
msgstr ""
-#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:381 timezone/zic.c:520
+#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:375 timezone/zic.c:561
msgid "I/O error"
msgstr "V/I napaka"
@@ -5156,7 +5153,7 @@ msgstr "Neznani signal %d"
#: sunrpc/auth_unix.c:112 sunrpc/clnt_tcp.c:124 sunrpc/clnt_udp.c:139
#: sunrpc/clnt_unix.c:125 sunrpc/svc_tcp.c:189 sunrpc/svc_tcp.c:233
#: sunrpc/svc_udp.c:161 sunrpc/svc_unix.c:189 sunrpc/svc_unix.c:229
-#: sunrpc/xdr.c:628 sunrpc/xdr.c:788 sunrpc/xdr_array.c:102
+#: sunrpc/xdr.c:631 sunrpc/xdr.c:791 sunrpc/xdr_array.c:102
#: sunrpc/xdr_rec.c:153 sunrpc/xdr_ref.c:79
#, fuzzy
msgid "out of memory\n"
@@ -6441,62 +6438,75 @@ msgid "You really blew it this time"
msgstr ""
#. TRANS Go home and have a glass of warm, dairy-fresh milk.
-#: sysdeps/gnu/errlist.c:978
+#. TRANS @c Okay. Since you are dying to know, I'll tell you.
+#. TRANS @c This is a joke, obviously. There is a children's song which begins,
+#. TRANS @c "Old McDonald had a farm, e-i-e-i-o." Every time I see the (real)
+#. TRANS @c errno macro EIO, I think about that song. Probably most of my
+#. TRANS @c compatriots who program on Unix do, too. One of them must have stayed
+#. TRANS @c up a little too late one night and decided to add it to Hurd or Glibc.
+#. TRANS @c Whoever did it should be castigated, but it made me laugh.
+#. TRANS @c --jtobey@channel1.com
+#. TRANS @c
+#. TRANS @c "bought the farm" means "died". -jtobey
+#. TRANS @c
+#. TRANS @c Translators, please do not translate this litteraly, translate it into
+#. TRANS @c an idiomatic funny way of saying that the computer died.
+#: sysdeps/gnu/errlist.c:991
msgid "Computer bought the farm"
msgstr ""
#. TRANS This error code has no purpose.
-#: sysdeps/gnu/errlist.c:987
+#: sysdeps/gnu/errlist.c:1000
#, fuzzy
msgid "Gratuitous error"
msgstr "napaka pri pisanju"
-#: sysdeps/gnu/errlist.c:995
+#: sysdeps/gnu/errlist.c:1008
#, fuzzy
msgid "Bad message"
msgstr "%d prevedenih sporoÄil"
-#: sysdeps/gnu/errlist.c:1003
+#: sysdeps/gnu/errlist.c:1016
msgid "Identifier removed"
msgstr ""
-#: sysdeps/gnu/errlist.c:1011
+#: sysdeps/gnu/errlist.c:1024
msgid "Multihop attempted"
msgstr ""
-#: sysdeps/gnu/errlist.c:1019
+#: sysdeps/gnu/errlist.c:1032
#, fuzzy
msgid "No data available"
msgstr "Na voljo"
-#: sysdeps/gnu/errlist.c:1027
+#: sysdeps/gnu/errlist.c:1040
msgid "Link has been severed"
msgstr ""
-#: sysdeps/gnu/errlist.c:1035
+#: sysdeps/gnu/errlist.c:1048
msgid "No message of desired type"
msgstr ""
-#: sysdeps/gnu/errlist.c:1043
+#: sysdeps/gnu/errlist.c:1056
msgid "Out of streams resources"
msgstr ""
-#: sysdeps/gnu/errlist.c:1051
+#: sysdeps/gnu/errlist.c:1064
#, fuzzy
msgid "Device not a stream"
msgstr "Å tevilka enote izven obsega"
-#: sysdeps/gnu/errlist.c:1059
+#: sysdeps/gnu/errlist.c:1072
#, fuzzy
msgid "Value too large for defined data type"
msgstr "vrednost je prevelika, da bi bila lahko pretvorjena: %s"
-#: sysdeps/gnu/errlist.c:1067
+#: sysdeps/gnu/errlist.c:1080
#, fuzzy
msgid "Protocol error"
msgstr "napaka pri pisanju"
-#: sysdeps/gnu/errlist.c:1075
+#: sysdeps/gnu/errlist.c:1088
#, fuzzy
msgid "Timer expired"
msgstr "Iztek virtualne Å¡toparice"
@@ -6505,213 +6515,213 @@ msgstr "Iztek virtualne Å¡toparice"
#. TRANS completed. @xref{Asynchronous I/O}. When you call @code{aio_cancel},
#. TRANS the normal result is for the operations affected to complete with this
#. TRANS error; @pxref{Cancel AIO Operations}.
-#: sysdeps/gnu/errlist.c:1087
+#: sysdeps/gnu/errlist.c:1100
#, fuzzy
msgid "Operation canceled"
msgstr "NaÄin delovanja:\n"
-#: sysdeps/gnu/errlist.c:1095
+#: sysdeps/gnu/errlist.c:1108
msgid "Owner died"
msgstr ""
-#: sysdeps/gnu/errlist.c:1103
+#: sysdeps/gnu/errlist.c:1116
msgid "State not recoverable"
msgstr ""
-#: sysdeps/gnu/errlist.c:1111
+#: sysdeps/gnu/errlist.c:1124
msgid "Interrupted system call should be restarted"
msgstr ""
-#: sysdeps/gnu/errlist.c:1119
+#: sysdeps/gnu/errlist.c:1132
#, fuzzy
msgid "Channel number out of range"
msgstr "%s: Å¡tevilka vrstice izven razpona"
-#: sysdeps/gnu/errlist.c:1127
+#: sysdeps/gnu/errlist.c:1140
msgid "Level 2 not synchronized"
msgstr ""
-#: sysdeps/gnu/errlist.c:1135
+#: sysdeps/gnu/errlist.c:1148
msgid "Level 3 halted"
msgstr ""
-#: sysdeps/gnu/errlist.c:1143
+#: sysdeps/gnu/errlist.c:1156
msgid "Level 3 reset"
msgstr ""
-#: sysdeps/gnu/errlist.c:1151
+#: sysdeps/gnu/errlist.c:1164
#, fuzzy
msgid "Link number out of range"
msgstr "%s: Å¡tevilka vrstice izven razpona"
-#: sysdeps/gnu/errlist.c:1159
+#: sysdeps/gnu/errlist.c:1172
msgid "Protocol driver not attached"
msgstr ""
-#: sysdeps/gnu/errlist.c:1167
+#: sysdeps/gnu/errlist.c:1180
msgid "No CSI structure available"
msgstr ""
-#: sysdeps/gnu/errlist.c:1175
+#: sysdeps/gnu/errlist.c:1188
msgid "Level 2 halted"
msgstr ""
-#: sysdeps/gnu/errlist.c:1183
+#: sysdeps/gnu/errlist.c:1196
#, fuzzy
msgid "Invalid exchange"
msgstr "Neveljavna zgornja meja razpona"
-#: sysdeps/gnu/errlist.c:1191
+#: sysdeps/gnu/errlist.c:1204
#, fuzzy
msgid "Invalid request descriptor"
msgstr "Neveljavna smer iskanja"
-#: sysdeps/gnu/errlist.c:1199
+#: sysdeps/gnu/errlist.c:1212
msgid "Exchange full"
msgstr ""
-#: sysdeps/gnu/errlist.c:1207
+#: sysdeps/gnu/errlist.c:1220
msgid "No anode"
msgstr ""
-#: sysdeps/gnu/errlist.c:1215
+#: sysdeps/gnu/errlist.c:1228
#, fuzzy
msgid "Invalid request code"
msgstr "Neveljavna dolžina zapisa"
-#: sysdeps/gnu/errlist.c:1223
+#: sysdeps/gnu/errlist.c:1236
#, fuzzy
msgid "Invalid slot"
msgstr "Neveljaven odmik pri seek"
-#: sysdeps/gnu/errlist.c:1231
+#: sysdeps/gnu/errlist.c:1244
#, fuzzy
msgid "File locking deadlock error"
msgstr "Opazna napaka zaradi dolgih imen"
-#: sysdeps/gnu/errlist.c:1239
+#: sysdeps/gnu/errlist.c:1252
msgid "Bad font file format"
msgstr "Okvarjen zapis datoteke s pisavo"
-#: sysdeps/gnu/errlist.c:1247
+#: sysdeps/gnu/errlist.c:1260
msgid "Machine is not on the network"
msgstr ""
-#: sysdeps/gnu/errlist.c:1255
+#: sysdeps/gnu/errlist.c:1268
msgid "Package not installed"
msgstr ""
-#: sysdeps/gnu/errlist.c:1263
+#: sysdeps/gnu/errlist.c:1276
#, fuzzy
msgid "Advertise error"
msgstr "napaka pri pisanju"
-#: sysdeps/gnu/errlist.c:1271
+#: sysdeps/gnu/errlist.c:1284
#, fuzzy
msgid "Srmount error"
msgstr "napaka pri pisanju"
-#: sysdeps/gnu/errlist.c:1279
+#: sysdeps/gnu/errlist.c:1292
msgid "Communication error on send"
msgstr ""
-#: sysdeps/gnu/errlist.c:1287
+#: sysdeps/gnu/errlist.c:1300
msgid "RFS specific error"
msgstr ""
-#: sysdeps/gnu/errlist.c:1295
+#: sysdeps/gnu/errlist.c:1308
msgid "Name not unique on network"
msgstr ""
-#: sysdeps/gnu/errlist.c:1303
+#: sysdeps/gnu/errlist.c:1316
msgid "File descriptor in bad state"
msgstr ""
-#: sysdeps/gnu/errlist.c:1311
+#: sysdeps/gnu/errlist.c:1324
#, fuzzy
msgid "Remote address changed"
msgstr "regularni izraz z nezakljuÄenim naslovom"
-#: sysdeps/gnu/errlist.c:1319
+#: sysdeps/gnu/errlist.c:1332
msgid "Can not access a needed shared library"
msgstr ""
-#: sysdeps/gnu/errlist.c:1327
+#: sysdeps/gnu/errlist.c:1340
msgid "Accessing a corrupted shared library"
msgstr ""
-#: sysdeps/gnu/errlist.c:1335
+#: sysdeps/gnu/errlist.c:1348
msgid ".lib section in a.out corrupted"
msgstr ""
# POZOR! Grdo!
-#: sysdeps/gnu/errlist.c:1343
+#: sysdeps/gnu/errlist.c:1356
#, fuzzy
msgid "Attempting to link in too many shared libraries"
msgstr "Simbolne povezave poskusimo dearhivirati kot trde"
-#: sysdeps/gnu/errlist.c:1351
+#: sysdeps/gnu/errlist.c:1364
#, fuzzy
msgid "Cannot exec a shared library directly"
msgstr "Ni mogoÄe pognati lupine %s"
-#: sysdeps/gnu/errlist.c:1359
+#: sysdeps/gnu/errlist.c:1372
#, fuzzy
msgid "Streams pipe error"
msgstr "Sistemska napaka"
-#: sysdeps/gnu/errlist.c:1367
+#: sysdeps/gnu/errlist.c:1380
msgid "Structure needs cleaning"
msgstr ""
-#: sysdeps/gnu/errlist.c:1375
+#: sysdeps/gnu/errlist.c:1388
msgid "Not a XENIX named type file"
msgstr ""
-#: sysdeps/gnu/errlist.c:1383
+#: sysdeps/gnu/errlist.c:1396
msgid "No XENIX semaphores available"
msgstr ""
-#: sysdeps/gnu/errlist.c:1391
+#: sysdeps/gnu/errlist.c:1404
msgid "Is a named type file"
msgstr ""
-#: sysdeps/gnu/errlist.c:1399
+#: sysdeps/gnu/errlist.c:1412
msgid "Remote I/O error"
msgstr "Oddaljena V/I napaka"
-#: sysdeps/gnu/errlist.c:1407
+#: sysdeps/gnu/errlist.c:1420
msgid "No medium found"
msgstr ""
-#: sysdeps/gnu/errlist.c:1415
+#: sysdeps/gnu/errlist.c:1428
msgid "Wrong medium type"
msgstr ""
-#: sysdeps/gnu/errlist.c:1423
+#: sysdeps/gnu/errlist.c:1436
#, fuzzy
msgid "Required key not available"
msgstr "exec/tcp: Storitev ni dosegljiva"
-#: sysdeps/gnu/errlist.c:1431
+#: sysdeps/gnu/errlist.c:1444
msgid "Key has expired"
msgstr ""
-#: sysdeps/gnu/errlist.c:1439
+#: sysdeps/gnu/errlist.c:1452
#, fuzzy
msgid "Key has been revoked"
msgstr "%s: Imenik je bil preimenovan"
-#: sysdeps/gnu/errlist.c:1447
+#: sysdeps/gnu/errlist.c:1460
msgid "Key was rejected by service"
msgstr ""
-#: sysdeps/gnu/errlist.c:1455
+#: sysdeps/gnu/errlist.c:1468
#, fuzzy
msgid "Operation not possible due to RF-kill"
msgstr "Operacija ni podprta"
-#: sysdeps/gnu/errlist.c:1463
+#: sysdeps/gnu/errlist.c:1476
msgid "Memory page has hardware error"
msgstr ""
@@ -6839,28 +6849,28 @@ msgstr ""
msgid "can't disable CET"
msgstr ""
-#: timezone/zdump.c:338
+#: timezone/zdump.c:332
msgid "has fewer than 3 characters"
msgstr ""
-#: timezone/zdump.c:340
+#: timezone/zdump.c:334
#, fuzzy
msgid "has more than 6 characters"
msgstr "nobena izbira za pretvorbo ni podana"
-#: timezone/zdump.c:342
+#: timezone/zdump.c:336
msgid "has characters other than ASCII alphanumerics, '-' or '+'"
msgstr ""
-#: timezone/zdump.c:347
+#: timezone/zdump.c:341
#, c-format
msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n"
msgstr ""
-#: timezone/zdump.c:393
+#: timezone/zdump.c:387
#, c-format
msgid ""
-"%s: usage: %s OPTIONS ZONENAME ...\n"
+"%s: usage: %s OPTIONS TIMEZONE ...\n"
"Options include:\n"
" -c [L,]U Start at year L (default -500), end before year U (default 2500)\n"
" -t [L,]U Start at time L, end before time U (in seconds since 1970)\n"
@@ -6873,12 +6883,12 @@ msgid ""
"Report bugs to %s.\n"
msgstr ""
-#: timezone/zdump.c:479
+#: timezone/zdump.c:473
#, fuzzy, c-format
msgid "%s: wild -c argument %s\n"
msgstr "neveljavni --%s argument %s"
-#: timezone/zdump.c:512
+#: timezone/zdump.c:506
#, fuzzy, c-format
msgid "%s: wild -t argument %s\n"
msgstr "neveljavni --%s argument %s"
@@ -6887,462 +6897,490 @@ msgstr "neveljavni --%s argument %s"
# ! INEXACT
# #-#-#-#-# gnulib-3.0.0.6062.a6b16.sl.po (gnulib 3.0.0.6062.a6b16) #-#-#-#-#
# ! INEXACT
-#: timezone/zic.c:398
+#: timezone/zic.c:429
#, c-format
msgid "%s: Memory exhausted: %s\n"
msgstr "%s: Pomnilnik porabljen: %s\n"
-#: timezone/zic.c:406
+#: timezone/zic.c:437
#, fuzzy
msgid "size overflow"
msgstr "prekoraÄitev sklada"
-#: timezone/zic.c:454
+#: timezone/zic.c:447
+#, fuzzy
+msgid "alignment overflow"
+msgstr "prekoraÄitev sklada"
+
+#: timezone/zic.c:495
#, fuzzy
msgid "integer overflow"
msgstr "prekoraÄitev Å¡tevilke vrstice"
-#: timezone/zic.c:488
+#: timezone/zic.c:529
#, fuzzy, c-format
msgid "\"%s\", line %<PRIdMAX>: "
msgstr "%s: datoteka %s vrstica %lu: %s\n"
-#: timezone/zic.c:491
+#: timezone/zic.c:532
#, c-format
msgid " (rule from \"%s\", line %<PRIdMAX>)"
msgstr ""
-#: timezone/zic.c:510
+#: timezone/zic.c:551
#, c-format
msgid "warning: "
msgstr "opozorilo: "
-#: timezone/zic.c:535
+#: timezone/zic.c:576
#, c-format
msgid ""
"%s: usage is %s [ --version ] [ --help ] [ -v ] \\\n"
"\t[ -l localtime ] [ -p posixrules ] [ -d directory ] \\\n"
-"\t[ -L leapseconds ] [ filename ... ]\n"
+"\t[ -t localtime-link ] [ -L leapseconds ] [ filename ... ]\n"
"\n"
"Report bugs to %s.\n"
msgstr ""
-#: timezone/zic.c:558
+#: timezone/zic.c:599
#, fuzzy, c-format
#| msgid "%s: Can't create %s: %s\n"
msgid "%s: Can't chdir to %s: %s\n"
msgstr "%s: ni mogoÄe ustvariti %s: %s\n"
-#: timezone/zic.c:590
+#: timezone/zic.c:632
msgid "wild compilation-time specification of zic_t"
msgstr ""
-#: timezone/zic.c:610
+#: timezone/zic.c:652
#, fuzzy, c-format
msgid "%s: More than one -d option specified\n"
msgstr "nobena izbira za pretvorbo ni podana"
-#: timezone/zic.c:620
+#: timezone/zic.c:662
#, fuzzy, c-format
msgid "%s: More than one -l option specified\n"
msgstr "nobena izbira za pretvorbo ni podana"
-#: timezone/zic.c:630
+#: timezone/zic.c:672
#, fuzzy, c-format
msgid "%s: More than one -p option specified\n"
msgstr "nobena izbira za pretvorbo ni podana"
-#: timezone/zic.c:640
+#: timezone/zic.c:680
+#, fuzzy, c-format
+msgid "%s: More than one -t option specified\n"
+msgstr "nobena izbira za pretvorbo ni podana"
+
+#: timezone/zic.c:689
+msgid "-y is obsolescent"
+msgstr ""
+
+#: timezone/zic.c:693
#, fuzzy, c-format
msgid "%s: More than one -y option specified\n"
msgstr "nobena izbira za pretvorbo ni podana"
-#: timezone/zic.c:650
+#: timezone/zic.c:703
#, fuzzy, c-format
msgid "%s: More than one -L option specified\n"
msgstr "nobena izbira za pretvorbo ni podana"
-#: timezone/zic.c:659
+#: timezone/zic.c:712
msgid "-s ignored"
msgstr ""
-#: timezone/zic.c:698
+#: timezone/zic.c:753
#, fuzzy
msgid "link to link"
msgstr " povezava na %s\n"
-#: timezone/zic.c:701 timezone/zic.c:705
+#: timezone/zic.c:756 timezone/zic.c:760
#, fuzzy
#| msgid "Too many links"
msgid "command line"
msgstr "PreveÄ povezav"
-#: timezone/zic.c:721
+#: timezone/zic.c:776
msgid "empty file name"
msgstr ""
-#: timezone/zic.c:724
+#: timezone/zic.c:779
#, c-format
msgid "file name '%s' begins with '/'"
msgstr ""
-#: timezone/zic.c:734
+#: timezone/zic.c:789
#, c-format
msgid "file name '%s' contains '%.*s' component"
msgstr ""
-#: timezone/zic.c:740
+#: timezone/zic.c:795
#, c-format
msgid "file name '%s' component contains leading '-'"
msgstr ""
-#: timezone/zic.c:743
+#: timezone/zic.c:798
#, c-format
msgid "file name '%s' contains overlength component '%.*s...'"
msgstr ""
-#: timezone/zic.c:771
+#: timezone/zic.c:826
#, c-format
msgid "file name '%s' contains byte '%c'"
msgstr ""
-#: timezone/zic.c:772
+#: timezone/zic.c:827
#, c-format
msgid "file name '%s' contains byte '\\%o'"
msgstr ""
-#: timezone/zic.c:842
+#: timezone/zic.c:897
#, fuzzy, c-format
msgid "%s: link from %s/%s failed: %s\n"
msgstr "%s: Simbolna povezava na %s ni mogoÄa"
-#: timezone/zic.c:852 timezone/zic.c:1815
+#: timezone/zic.c:907 timezone/zic.c:1876
#, fuzzy, c-format
#| msgid "%s: Can't remove %s: %s\n"
msgid "%s: Can't remove %s/%s: %s\n"
msgstr "%s: ni mogoÄe odstraniti %s: %s\n"
-#: timezone/zic.c:874
+#: timezone/zic.c:931
#, c-format
msgid "symbolic link used because hard link failed: %s"
msgstr ""
-#: timezone/zic.c:882
+#: timezone/zic.c:939
#, fuzzy, c-format
msgid "%s: Can't read %s/%s: %s\n"
msgstr "%s: ni mogoÄe ustvariti %s: %s\n"
-#: timezone/zic.c:889 timezone/zic.c:1828
+#: timezone/zic.c:946 timezone/zic.c:1889
#, fuzzy, c-format
#| msgid "%s: Can't create %s: %s\n"
msgid "%s: Can't create %s/%s: %s\n"
msgstr "%s: ni mogoÄe ustvariti %s: %s\n"
-#: timezone/zic.c:898
+#: timezone/zic.c:955
#, c-format
msgid "copy used because hard link failed: %s"
msgstr ""
-#: timezone/zic.c:901
+#: timezone/zic.c:958
#, c-format
msgid "copy used because symbolic link failed: %s"
msgstr ""
-#: timezone/zic.c:1013 timezone/zic.c:1015
+#: timezone/zic.c:1032 timezone/zic.c:1034
#, fuzzy
msgid "same rule name in multiple files"
msgstr "kljuÄ %lu je Å¡tevilÄen in se razteza prek veÄ polj"
-#: timezone/zic.c:1056
-msgid "unruly zone"
-msgstr ""
-
-#: timezone/zic.c:1063
+#: timezone/zic.c:1081
#, c-format
msgid "%s in ruleless zone"
msgstr ""
-#: timezone/zic.c:1083
+#: timezone/zic.c:1101
msgid "standard input"
msgstr "standardni vhod"
-#: timezone/zic.c:1088
+#: timezone/zic.c:1106
#, fuzzy, c-format
msgid "%s: Can't open %s: %s\n"
msgstr "%s: %s ni mogoÄe prebrati: %s\n"
-#: timezone/zic.c:1099
+#: timezone/zic.c:1117
#, fuzzy
msgid "line too long"
msgstr "vrstica z argumenti je predolga"
-#: timezone/zic.c:1119
+#: timezone/zic.c:1139
#, fuzzy
msgid "input line of unknown type"
msgstr "vhodna vrstica je predolga"
-#: timezone/zic.c:1134
-#, c-format
-msgid "%s: Leap line in non leap seconds file %s"
-msgstr ""
-
-#: timezone/zic.c:1142 timezone/zic.c:1547 timezone/zic.c:1569
+#: timezone/zic.c:1158 timezone/zic.c:1593 timezone/zic.c:1615
#, fuzzy, c-format
msgid "%s: panic: Invalid l_value %d\n"
msgstr "neveljavna vrednost polja %s"
-#: timezone/zic.c:1151
+#: timezone/zic.c:1167
msgid "expected continuation line not found"
msgstr ""
-#: timezone/zic.c:1193 timezone/zic.c:2976
+#: timezone/zic.c:1203
+msgid "fractional seconds rejected by pre-2018 versions of zic"
+msgstr ""
+
+#: timezone/zic.c:1221 timezone/zic.c:3078
#, fuzzy
msgid "time overflow"
msgstr "prekoraÄitev sklada"
-#: timezone/zic.c:1198
+#: timezone/zic.c:1227
msgid "values over 24 hours not handled by pre-2007 versions of zic"
msgstr ""
-#: timezone/zic.c:1209
+#: timezone/zic.c:1245
+#, fuzzy
+msgid "invalid saved time"
+msgstr "neveljavna specifikacija"
+
+#: timezone/zic.c:1256
#, fuzzy
msgid "wrong number of fields on Rule line"
msgstr "neveljavno Å¡tevilo preskoÄenih polj"
-#: timezone/zic.c:1213
-msgid "nameless rule"
-msgstr ""
-
-#: timezone/zic.c:1218
-#, fuzzy
-msgid "invalid saved time"
-msgstr "neveljavna specifikacija"
+#: timezone/zic.c:1265
+#, fuzzy, c-format
+msgid "Invalid rule name \"%s\""
+msgstr "neveljavno Å¡tevilo %s"
-#: timezone/zic.c:1235
+#: timezone/zic.c:1287
#, fuzzy
msgid "wrong number of fields on Zone line"
msgstr "neveljavno Å¡tevilo preskoÄenih polj"
-#: timezone/zic.c:1240
+#: timezone/zic.c:1292
#, fuzzy, c-format
msgid "\"Zone %s\" line and -l option are mutually exclusive"
msgstr ""
"\n"
"Izbiri -r in -s se medsebojno izkljuÄujeta.\n"
-#: timezone/zic.c:1246
+#: timezone/zic.c:1298
#, fuzzy, c-format
msgid "\"Zone %s\" line and -p option are mutually exclusive"
msgstr ""
"\n"
"Izbiri -r in -s se medsebojno izkljuÄujeta.\n"
-#: timezone/zic.c:1253
+#: timezone/zic.c:1305
#, c-format
msgid "duplicate zone name %s (file \"%s\", line %<PRIdMAX>)"
msgstr ""
-#: timezone/zic.c:1267
+#: timezone/zic.c:1319
msgid "wrong number of fields on Zone continuation line"
msgstr ""
-#: timezone/zic.c:1307
+#: timezone/zic.c:1359
#, fuzzy
msgid "invalid UT offset"
msgstr "Neveljaven odmik pri seek"
-#: timezone/zic.c:1311
+#: timezone/zic.c:1363
#, fuzzy
msgid "invalid abbreviation format"
msgstr "neveljavna oblika datuma %s"
-#: timezone/zic.c:1320
+#: timezone/zic.c:1372
#, c-format
msgid "format '%s' not handled by pre-2015 versions of zic"
msgstr ""
-#: timezone/zic.c:1347
+#: timezone/zic.c:1399
msgid "Zone continuation line end time is not after end time of previous line"
msgstr ""
-#: timezone/zic.c:1374
+#: timezone/zic.c:1426
#, fuzzy
msgid "wrong number of fields on Leap line"
msgstr "neveljavno Å¡tevilo preskoÄenih polj"
-#: timezone/zic.c:1383
+#: timezone/zic.c:1435
#, fuzzy
msgid "invalid leaping year"
msgstr "neveljavni padajoÄi razpon"
-#: timezone/zic.c:1403 timezone/zic.c:1501
+#: timezone/zic.c:1455 timezone/zic.c:1547
#, fuzzy
msgid "invalid month name"
msgstr "napaÄna zaÅ¡Äita"
-#: timezone/zic.c:1416 timezone/zic.c:1614 timezone/zic.c:1628
+#: timezone/zic.c:1468 timezone/zic.c:1663 timezone/zic.c:1677
#, fuzzy
msgid "invalid day of month"
msgstr "neveljavna oblika datuma %s"
-#: timezone/zic.c:1421
+#: timezone/zic.c:1473
#, fuzzy
msgid "time too small"
msgstr "Medpomnilnik za argumente premajhen"
-#: timezone/zic.c:1425
+#: timezone/zic.c:1477
#, fuzzy
msgid "time too large"
msgstr "%s je preveliko"
-#: timezone/zic.c:1429 timezone/zic.c:1530
+#: timezone/zic.c:1481 timezone/zic.c:1576
#, fuzzy
msgid "invalid time of day"
msgstr "neveljavno Å¡tevilo bajtov"
-#: timezone/zic.c:1448
+#: timezone/zic.c:1494
msgid "illegal CORRECTION field on Leap line"
msgstr ""
-#: timezone/zic.c:1453
+#: timezone/zic.c:1499
msgid "illegal Rolling/Stationary field on Leap line"
msgstr ""
-#: timezone/zic.c:1459
-msgid "leap second precedes Big Bang"
+#: timezone/zic.c:1505
+msgid "leap second precedes Epoch"
msgstr ""
-#: timezone/zic.c:1472
+#: timezone/zic.c:1518
#, fuzzy
msgid "wrong number of fields on Link line"
msgstr "neveljavno Å¡tevilo preskoÄenih polj"
-#: timezone/zic.c:1476
+#: timezone/zic.c:1522
msgid "blank FROM field on Link line"
msgstr ""
-#: timezone/zic.c:1551
+#: timezone/zic.c:1597
#, fuzzy
msgid "invalid starting year"
msgstr "neveljavna zaÄetna Å¡tevilka vrstice: %s"
-#: timezone/zic.c:1573
+#: timezone/zic.c:1619
#, fuzzy
msgid "invalid ending year"
msgstr "neveljaven vrstni red bajtov: %s"
-#: timezone/zic.c:1577
+#: timezone/zic.c:1623
msgid "starting year greater than ending year"
msgstr ""
-#: timezone/zic.c:1584
+#: timezone/zic.c:1630
msgid "typed single year"
msgstr ""
-#: timezone/zic.c:1619
+#: timezone/zic.c:1633
+#, c-format
+msgid "year type \"%s\" is obsolete; use \"-\" instead"
+msgstr ""
+
+#: timezone/zic.c:1668
#, fuzzy
msgid "invalid weekday name"
msgstr "neveljavni padajoÄi razpon"
-#: timezone/zic.c:1743
+#: timezone/zic.c:1800
#, c-format
msgid "reference clients mishandle more than %d transition times"
msgstr ""
-#: timezone/zic.c:1747
+#: timezone/zic.c:1804
msgid "pre-2014 clients may mishandle more than 1200 transition times"
msgstr ""
-#: timezone/zic.c:1858
+#: timezone/zic.c:1920
#, fuzzy
msgid "too many transition times"
msgstr "preveÄ vrstic na vhodu"
-#: timezone/zic.c:2047
+#: timezone/zic.c:2107
#, c-format
-msgid "%%z UTC offset magnitude exceeds 99:59:59"
+msgid "%%z UT offset magnitude exceeds 99:59:59"
msgstr ""
-#: timezone/zic.c:2424
+#: timezone/zic.c:2488
#, fuzzy
msgid "no POSIX environment variable for zone"
msgstr "nastavitev spremenljivke okolja %s ni uspela"
-#: timezone/zic.c:2430
+#: timezone/zic.c:2494
#, c-format
msgid "%s: pre-%d clients may mishandle distant timestamps"
msgstr ""
-#: timezone/zic.c:2566
+#: timezone/zic.c:2631
msgid "two rules for same instant"
msgstr ""
-#: timezone/zic.c:2627
+#: timezone/zic.c:2696
msgid "can't determine time zone abbreviation to use just after until time"
msgstr ""
-#: timezone/zic.c:2725
+#: timezone/zic.c:2785
#, fuzzy
msgid "too many local time types"
msgstr "preveÄ predlog"
-#: timezone/zic.c:2729
+#: timezone/zic.c:2789
#, fuzzy
msgid "UT offset out of range"
msgstr "Odmik pri seek izven obsega"
-#: timezone/zic.c:2753
+#: timezone/zic.c:2813
#, fuzzy
msgid "too many leap seconds"
msgstr "preveÄ argumentov datoteke"
-#: timezone/zic.c:2759
-msgid "repeated leap second moment"
+#: timezone/zic.c:2844
+msgid "Leap seconds too close together"
msgstr ""
-#: timezone/zic.c:2830
+#: timezone/zic.c:2891
msgid "Wild result from command execution"
msgstr ""
-#: timezone/zic.c:2831
+#: timezone/zic.c:2892
#, c-format
msgid "%s: command was '%s', result was %d\n"
msgstr ""
-#: timezone/zic.c:2961
+#: timezone/zic.c:2998
+#, c-format
+msgid "\"%s\" is undocumented; use \"last%s\" instead"
+msgstr ""
+
+#: timezone/zic.c:3029
+#, c-format
+msgid "\"%s\" is ambiguous in pre-2017c zic"
+msgstr ""
+
+#: timezone/zic.c:3063
#, fuzzy
msgid "Odd number of quotation marks"
msgstr "neveljavno Å¡tevilo primerjanih bajtov"
-#: timezone/zic.c:3046
+#: timezone/zic.c:3157
msgid "use of 2/29 in non leap-year"
msgstr ""
-#: timezone/zic.c:3081
+#: timezone/zic.c:3192
msgid "rule goes past start/end of month; will not work with pre-2004 versions of zic"
msgstr ""
-#: timezone/zic.c:3108
+#: timezone/zic.c:3219
msgid "time zone abbreviation has fewer than 3 characters"
msgstr ""
-#: timezone/zic.c:3110
+#: timezone/zic.c:3221
msgid "time zone abbreviation has too many characters"
msgstr ""
-#: timezone/zic.c:3112
+#: timezone/zic.c:3223
msgid "time zone abbreviation differs from POSIX standard"
msgstr ""
-#: timezone/zic.c:3118
+#: timezone/zic.c:3229
msgid "too many, or too long, time zone abbreviations"
msgstr ""
-#: timezone/zic.c:3161
+#: timezone/zic.c:3275
#, fuzzy, c-format
msgid "%s: Can't create directory %s: %s"
msgstr "imenika %s ni mogoÄe ustvariti"
+#~ msgid "cannot open zero fill device"
+#~ msgstr "ni mogoÄe odpreti naprave /dev/zero"
+
#~ msgid "cannot allocate TLS data structures for initial thread"
#~ msgstr "podatkovnih struktur TLS za zaÄetno nit ni mogoÄe dodeliti"
@@ -7352,6 +7390,9 @@ msgstr "imenika %s ni mogoÄe ustvariti"
#~ msgid "invalid caller"
#~ msgstr "neveljaven klicatelj"
+#~ msgid "relocation error"
+#~ msgstr "napaka pri premikanju"
+
#~ msgid "Don't generate links"
#~ msgstr "Ne ustvarjaj povezav"
diff --git a/po/sv.po b/po/sv.po
index a13b74a2c7..af597919a0 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -1,16 +1,16 @@
# GNU libc message catalog for Swedish
-# Copyright © 1996, 1998, 2001, 2002, 2003, 2006, 2008, 2009, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 Free Software Foundation, Inc.
+# Copyright © 1996, 1998, 2001, 2002, 2003, 2006, 2008, 2009, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Free Software Foundation, Inc.
# This file is distributed under the same license as the glibc package.
#
# Jan Djärv <jan.h.d@swipnet.se>, 1996, 1998, 2001, 2002, 2003, 2006, 2007, 2008, 2009, 2011, 2012, 2013, 2014, 2015.
-# Göran Uddeborg <goeran@uddeborg.se>, 2016, 2017, 2018.
+# Göran Uddeborg <goeran@uddeborg.se>, 2016, 2017, 2018, 2019.
#
-# $Revision: 1.15 $
+# $Revision: 1.19 $
msgid ""
msgstr ""
-"Project-Id-Version: libc 2.27.9000\n"
-"POT-Creation-Date: 2018-07-26 22:19-0400\n"
-"PO-Revision-Date: 2018-07-29 13:17+0200\n"
+"Project-Id-Version: libc 2.29.9000\n"
+"POT-Creation-Date: 2019-07-18 13:28-0400\n"
+"PO-Revision-Date: 2019-07-25 13:07+0200\n"
"Last-Translator: Göran Uddeborg <goeran@uddeborg.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
"Language: sv\n"
@@ -152,10 +152,10 @@ msgstr ""
"[UTFIL [INFIL]...]"
#: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:308
-#: elf/pldd.c:252 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
-#: iconv/iconvconfig.c:379 locale/programs/locale.c:275
-#: locale/programs/localedef.c:427 login/programs/pt_chown.c:89
-#: malloc/memusagestat.c:563 nss/getent.c:933 nss/makedb.c:369
+#: elf/pldd.c:247 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
+#: iconv/iconvconfig.c:379 locale/programs/locale.c:276
+#: locale/programs/localedef.c:437 login/programs/pt_chown.c:89
+#: malloc/memusagestat.c:563 nss/getent.c:953 nss/makedb.c:369
#: posix/getconf.c:503 sysdeps/unix/sysv/linux/lddlibc4.c:61
#, c-format
msgid ""
@@ -167,11 +167,11 @@ msgstr ""
"Rapportera fel eller synpunkter på översättningen till <tp-sv@listor.tp-sv.se>.\n"
#: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64
-#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75
+#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:263 elf/sotruss.sh:75
#: elf/sprof.c:389 iconv/iconv_prog.c:422 iconv/iconvconfig.c:396
-#: locale/programs/locale.c:292 locale/programs/localedef.c:453
+#: locale/programs/locale.c:293 locale/programs/localedef.c:463
#: login/programs/pt_chown.c:63 malloc/memusage.sh:71
-#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:87 nss/makedb.c:385
+#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:88 nss/makedb.c:385
#: posix/getconf.c:485 sysdeps/unix/sysv/linux/lddlibc4.c:68
#, c-format
msgid ""
@@ -185,10 +185,10 @@ msgstr ""
"ÄNDAMÅL.\n"
#: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68
-#: elf/ldconfig.c:329 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:427
-#: iconv/iconvconfig.c:401 locale/programs/locale.c:297
-#: locale/programs/localedef.c:458 malloc/memusage.sh:75
-#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:92 nss/makedb.c:390
+#: elf/ldconfig.c:329 elf/pldd.c:268 elf/sprof.c:395 iconv/iconv_prog.c:427
+#: iconv/iconvconfig.c:401 locale/programs/locale.c:298
+#: locale/programs/localedef.c:468 malloc/memusage.sh:75
+#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:93 nss/makedb.c:390
#: posix/getconf.c:490
#, c-format
msgid "Written by %s.\n"
@@ -219,7 +219,7 @@ msgstr "detta är den första definitionen"
#: catgets/gencat.c:516
#, c-format
msgid "unknown set `%s'"
-msgstr "okänd mängd \"%s\""
+msgstr "okänd mängd â€%sâ€"
#: catgets/gencat.c:557
msgid "invalid quote character"
@@ -228,7 +228,7 @@ msgstr "ogiltigt citattecken"
#: catgets/gencat.c:570
#, c-format
msgid "unknown directive `%s': line ignored"
-msgstr "okänt direktiv \"%s\": rad ignorerad"
+msgstr "okänt direktiv â€%sâ€: raden ignorerad"
#: catgets/gencat.c:615
msgid "duplicated message number"
@@ -253,27 +253,27 @@ msgstr "felaktig rad ignorerad"
#: catgets/gencat.c:984 catgets/gencat.c:1025
#, c-format
msgid "cannot open output file `%s'"
-msgstr "kan inte öppna utfil \"%s\""
+msgstr "kan inte öppna utfilen â€%sâ€"
#: catgets/gencat.c:1187 locale/programs/linereader.c:560
msgid "invalid escape sequence"
msgstr "ogiltig kontrollsekvens"
-#: catgets/gencat.c:1209
+#: catgets/gencat.c:1211
msgid "unterminated message"
msgstr "oavslutat meddelande"
-#: catgets/gencat.c:1233
+#: catgets/gencat.c:1235
#, c-format
msgid "while opening old catalog file"
msgstr "när gammal katalogfil öppnades"
-#: catgets/gencat.c:1324
+#: catgets/gencat.c:1326
#, c-format
msgid "conversion modules not available"
msgstr "konverteringsmoduler inte tillgängliga"
-#: catgets/gencat.c:1350
+#: catgets/gencat.c:1352
#, c-format
msgid "cannot determine escape character"
msgstr "kan inte avgöra kontrolltecken"
@@ -399,7 +399,7 @@ msgstr "Okänt OS"
msgid ", OS ABI: %s %d.%d.%d"
msgstr ", OS ABI: %s %d.%d.%d"
-#: elf/cache.c:163 elf/ldconfig.c:1332
+#: elf/cache.c:163 elf/ldconfig.c:1333
#, c-format
msgid "Can't open cache file %s\n"
msgstr "Kan inte öppna cache-filen %s\n"
@@ -409,38 +409,38 @@ msgstr "Kan inte öppna cache-filen %s\n"
msgid "mmap of cache file failed.\n"
msgstr "minnesmappning av cache-fil misslyckades.\n"
-#: elf/cache.c:181 elf/cache.c:195
+#: elf/cache.c:181 elf/cache.c:195 elf/cache.c:205
#, c-format
msgid "File is not a cache file.\n"
msgstr "Filen är inte en cache-fil.\n"
-#: elf/cache.c:228 elf/cache.c:238
+#: elf/cache.c:233 elf/cache.c:243
#, c-format
msgid "%d libs found in cache `%s'\n"
-msgstr "%d bibliotek hittades i cache \"%s\"\n"
+msgstr "%d bibliotek hittades i cachen â€%sâ€\n"
-#: elf/cache.c:432
+#: elf/cache.c:437
#, c-format
msgid "Can't create temporary cache file %s"
msgstr "Kan inte skapa en temporär cache-fil %s"
-#: elf/cache.c:440 elf/cache.c:450 elf/cache.c:454 elf/cache.c:458
-#: elf/cache.c:468
+#: elf/cache.c:445 elf/cache.c:455 elf/cache.c:459 elf/cache.c:463
+#: elf/cache.c:473
#, c-format
msgid "Writing of cache data failed"
msgstr "Skrivning av cache-data misslyckades"
-#: elf/cache.c:463
+#: elf/cache.c:468
#, c-format
msgid "Changing access rights of %s to %#o failed"
msgstr "Misslyckades med att byta åtkomsträttigheter för %s till %#o"
-#: elf/cache.c:472
+#: elf/cache.c:477
#, c-format
msgid "Renaming of %s to %s failed"
msgstr "Namnbyte på %s till %s misslyckades"
-#: elf/dl-close.c:399 elf/dl-open.c:420
+#: elf/dl-close.c:399 elf/dl-open.c:424
msgid "cannot create scope list"
msgstr "kan inte skapa omfångslista"
@@ -523,119 +523,119 @@ msgstr "kan inte skapa sökvägslista"
msgid "cannot stat shared object"
msgstr "kan inte ta status på delat objekt"
-#: elf/dl-load.c:960
-msgid "cannot open zero fill device"
-msgstr "kan inte öppna nollfyllnadsenhet"
-
-#: elf/dl-load.c:1007 elf/dl-load.c:2203
+#: elf/dl-load.c:992 elf/dl-load.c:2198
msgid "cannot create shared object descriptor"
msgstr "kan inte skapa delad objektdeskriptor"
-#: elf/dl-load.c:1026 elf/dl-load.c:1560 elf/dl-load.c:1673
+#: elf/dl-load.c:1011 elf/dl-load.c:1555 elf/dl-load.c:1668
msgid "cannot read file data"
msgstr "kan inte läsa fildata"
-#: elf/dl-load.c:1072
+#: elf/dl-load.c:1057
msgid "ELF load command alignment not page-aligned"
msgstr "ELF-laddkommando är inte på sidgräns"
-#: elf/dl-load.c:1079
+#: elf/dl-load.c:1064
msgid "ELF load command address/offset not properly aligned"
msgstr "Adress/position för ELF-laddkommando är inte på rätt bytegräns"
-#: elf/dl-load.c:1161
+#: elf/dl-load.c:1146
msgid "cannot process note segment"
msgstr "kan inte återställa bearbeta noteringssegmentet"
-#: elf/dl-load.c:1172
+#: elf/dl-load.c:1157
msgid "object file has no loadable segments"
msgstr "objektfilen har inga laddbara segment"
-#: elf/dl-load.c:1181 elf/dl-load.c:1652
+#: elf/dl-load.c:1170 elf/dl-load.c:1647
msgid "cannot dynamically load executable"
msgstr "kan inte ladda exekverbar fil dynamiskt"
-#: elf/dl-load.c:1202
+#: elf/dl-load.c:1191
msgid "object file has no dynamic section"
msgstr "objektfilen har ingen dynamisk sektion"
-#: elf/dl-load.c:1225
+#: elf/dl-load.c:1218
+msgid "cannot dynamically load position-independent executable"
+msgstr "kan inte ladda positionsoberoende exekverbar fil dynamiskt"
+
+#: elf/dl-load.c:1220
msgid "shared object cannot be dlopen()ed"
msgstr "delat objekt kan inte göras dlopen() på"
-#: elf/dl-load.c:1238
+#: elf/dl-load.c:1233
msgid "cannot allocate memory for program header"
msgstr "kan inte allokera minne för programhuvud"
-#: elf/dl-load.c:1271 elf/dl-load.h:130
+#: elf/dl-load.c:1266 elf/dl-load.h:130
msgid "cannot change memory protections"
msgstr "kan inte ändra minnesskydd"
-#: elf/dl-load.c:1291
+#: elf/dl-load.c:1286
msgid "cannot enable executable stack as shared object requires"
msgstr "kan inte skapa exekverbar stack som delat objekt kräver"
-#: elf/dl-load.c:1304
+#: elf/dl-load.c:1299
msgid "cannot close file descriptor"
msgstr "kan inte stänga filidentifierare"
-#: elf/dl-load.c:1560
+#: elf/dl-load.c:1555
msgid "file too short"
msgstr "fil för kort"
-#: elf/dl-load.c:1595
+#: elf/dl-load.c:1590
msgid "invalid ELF header"
msgstr "ogiltigt ELF-huvud"
-#: elf/dl-load.c:1607
+#: elf/dl-load.c:1602
msgid "ELF file data encoding not big-endian"
msgstr "Kodning för ELF-fildata är inte rak byteordning"
-#: elf/dl-load.c:1609
+#: elf/dl-load.c:1604
msgid "ELF file data encoding not little-endian"
msgstr "Kodning för ELF-fildata är inte omvänd byteordning"
-#: elf/dl-load.c:1613
+#: elf/dl-load.c:1608
msgid "ELF file version ident does not match current one"
msgstr "ELF-filens versionsidentitet stämmer inte med nuvarande"
-#: elf/dl-load.c:1617
+#: elf/dl-load.c:1612
msgid "ELF file OS ABI invalid"
msgstr "ELF-fil har felaktig version på OS-ABI"
-#: elf/dl-load.c:1620
+#: elf/dl-load.c:1615
msgid "ELF file ABI version invalid"
msgstr "ELF-fil har felaktig version på ABI"
-#: elf/dl-load.c:1623
+#: elf/dl-load.c:1618
msgid "nonzero padding in e_ident"
msgstr "utfyllnad med annat än nolltecken i e_ident"
-#: elf/dl-load.c:1626
+#: elf/dl-load.c:1621
msgid "internal error"
msgstr "internt fel"
-#: elf/dl-load.c:1633
+#: elf/dl-load.c:1628
msgid "ELF file version does not match current one"
msgstr "ELF-filens version stämmer inte med nuvarande"
-#: elf/dl-load.c:1641
+#: elf/dl-load.c:1636
msgid "only ET_DYN and ET_EXEC can be loaded"
msgstr "bara ET_DYN och ET_EXEC kan laddas"
-#: elf/dl-load.c:1657
+#: elf/dl-load.c:1652
msgid "ELF file's phentsize not the expected size"
msgstr "ELF-filens värde på \"phentsize\" är inte den förväntade"
-#: elf/dl-load.c:2222
+#: elf/dl-load.c:2217
msgid "wrong ELF class: ELFCLASS64"
msgstr "fel ELF-klass: ELFCLASS64"
-#: elf/dl-load.c:2223
+#: elf/dl-load.c:2218
msgid "wrong ELF class: ELFCLASS32"
msgstr "fel ELF-klass: ELFCLASS32"
-#: elf/dl-load.c:2226
+#: elf/dl-load.c:2221
msgid "cannot open shared object file"
msgstr "kan inte öppna delad objektfil"
@@ -647,11 +647,7 @@ msgstr "misslyckades att mappa segment från delat objekt"
msgid "cannot map zero-fill pages"
msgstr "kan inte mappa nollfyllda sidor"
-#: elf/dl-lookup.c:835
-msgid "relocation error"
-msgstr "fel vid relokering"
-
-#: elf/dl-lookup.c:858
+#: elf/dl-lookup.c:830
msgid "symbol lookup error"
msgstr "fel vid symboluppslagning"
@@ -659,19 +655,19 @@ msgstr "fel vid symboluppslagning"
msgid "cannot extend global scope"
msgstr "kan inte utöka globalt område"
-#: elf/dl-open.c:470
+#: elf/dl-open.c:474
msgid "TLS generation counter wrapped! Please report this."
msgstr "Generationsräknare för TLS slog runt! Var snäll och rapportera detta."
-#: elf/dl-open.c:534
+#: elf/dl-open.c:538
msgid "invalid mode for dlopen()"
msgstr "ogiltiga flaggor för dlopen()"
-#: elf/dl-open.c:551
+#: elf/dl-open.c:555
msgid "no more namespaces available for dlmopen()"
msgstr "inga fler namnrymder tillgängliga för dlmopen()"
-#: elf/dl-open.c:575
+#: elf/dl-open.c:579
msgid "invalid target namespace in dlmopen()"
msgstr "ogiltig målnamnrymd för dlmopen()"
@@ -679,20 +675,20 @@ msgstr "ogiltig målnamnrymd för dlmopen()"
msgid "cannot allocate memory in static TLS block"
msgstr "kan inte allokera minne i statiskt TLS-block"
-#: elf/dl-reloc.c:205
+#: elf/dl-reloc.c:213
msgid "cannot make segment writable for relocation"
msgstr "kan inte göra segment skrivbart för relokering"
-#: elf/dl-reloc.c:276
+#: elf/dl-reloc.c:272
#, c-format
msgid "%s: out of memory to store relocation results for %s\n"
msgstr "%s: slut på minne för att lagra relokeringsresultat för %s\n"
-#: elf/dl-reloc.c:292
+#: elf/dl-reloc.c:288
msgid "cannot restore segment prot after reloc"
msgstr "kan inte återställa segmenträttigheter efter relokering"
-#: elf/dl-reloc.c:323
+#: elf/dl-reloc.c:319
msgid "cannot apply additional memory protection after relocation"
msgstr "kan inte applicera extra minnesskydd efter relokering"
@@ -910,22 +906,22 @@ msgstr "behöver absolut filnamn för konfigurationsfil när -r används"
msgid "memory exhausted"
msgstr "minne slut"
-#: elf/ldconfig.c:1233
+#: elf/ldconfig.c:1234
#, c-format
msgid "%s:%u: cannot read directory %s"
msgstr "%s:%u: kan inte läsa katalog %s"
-#: elf/ldconfig.c:1281
+#: elf/ldconfig.c:1282
#, c-format
msgid "relative path `%s' used to build cache"
msgstr "relativ sökväg \"%s\" använd för att bygga cache"
-#: elf/ldconfig.c:1311
+#: elf/ldconfig.c:1312
#, c-format
msgid "Can't chdir to /"
msgstr "Kan inte byta katalog till /"
-#: elf/ldconfig.c:1352
+#: elf/ldconfig.c:1353
#, c-format
msgid "Can't open cache file directory %s\n"
msgstr "Kan inte läsa cache-filkatalog \"%s\"\n"
@@ -995,95 +991,100 @@ msgstr "avslutade med okänd slutstatus"
msgid "error: you do not have read permission for"
msgstr "fel: du har inte läsrättigheter för"
-#: elf/pldd-xx.c:105
+#: elf/pldd-xx.c:102
#, c-format
msgid "cannot find program header of process"
msgstr "kan inte hitta programhuvud för process"
-#: elf/pldd-xx.c:110
+#: elf/pldd-xx.c:106
#, c-format
msgid "cannot read program header"
msgstr "kan inte läsa programhuvud"
-#: elf/pldd-xx.c:135
+#: elf/pldd-xx.c:128
#, c-format
msgid "cannot read dynamic section"
msgstr "kan inte läsa dynamisk sektion"
-#: elf/pldd-xx.c:147
+#: elf/pldd-xx.c:137
#, c-format
msgid "cannot read r_debug"
msgstr "kan inte läsa r_debug"
-#: elf/pldd-xx.c:167
+#: elf/pldd-xx.c:154
#, c-format
msgid "cannot read program interpreter"
msgstr "kan inte läsa programtolk"
-#: elf/pldd-xx.c:197
+#: elf/pldd-xx.c:183
#, c-format
msgid "cannot read link map"
msgstr "kan inte läsa länkmappning"
-#: elf/pldd-xx.c:209
+#: elf/pldd-xx.c:190
#, c-format
msgid "cannot read object name"
msgstr "kan inte läsa objektnamn"
-#: elf/pldd-xx.c:219
+#: elf/pldd-xx.c:197
#, c-format
msgid "cannot allocate buffer for object name"
msgstr "kan inte allokera en buffert för objektnamn"
-#: elf/pldd.c:64
+#: elf/pldd.c:58
msgid "List dynamic shared objects loaded into process."
msgstr "Visa dynamiska bibliotek som laddats i processen."
-#: elf/pldd.c:68
+#: elf/pldd.c:62
msgid "PID"
msgstr "PID"
-#: elf/pldd.c:100
+#: elf/pldd.c:89
#, c-format
msgid "Exactly one parameter with process ID required.\n"
msgstr "Exakt en parameter med process-ID krävs.\n"
-#: elf/pldd.c:112
+#: elf/pldd.c:103
#, c-format
msgid "invalid process ID '%s'"
msgstr "ogiltig process-ID \"%s\""
-#: elf/pldd.c:120
+#: elf/pldd.c:111
#, c-format
msgid "cannot open %s"
msgstr "kan inte öppna %s"
-#: elf/pldd.c:152
+#: elf/pldd.c:142
#, c-format
msgid "cannot open %s/task"
msgstr "kan inte öppna %s/task"
-#: elf/pldd.c:155
+#: elf/pldd.c:145
#, c-format
msgid "cannot prepare reading %s/task"
msgstr "kan inte förbereda läsning av %s/task"
-#: elf/pldd.c:168
+#: elf/pldd.c:158
#, c-format
msgid "invalid thread ID '%s'"
msgstr "ogiltig tråd-ID \"%s\""
-#: elf/pldd.c:179
+#: elf/pldd.c:169
#, c-format
msgid "cannot attach to process %lu"
msgstr "kan inte binda till process %lu"
-#: elf/pldd.c:294
+#: elf/pldd.c:184
+#, c-format
+msgid "no valid %s/task entries"
+msgstr "inga giltiga %s/task poster"
+
+#: elf/pldd.c:290
#, c-format
msgid "cannot get information about process %lu"
msgstr "kan inte hämta information om process %lu"
-#: elf/pldd.c:307
+#: elf/pldd.c:303
#, c-format
msgid "process %lu is no ELF program"
msgstr "process %lu är inte ett ELF-program"
@@ -1404,7 +1405,7 @@ msgstr "Information:"
msgid "list all known coded character sets"
msgstr "visa alla kända teckenuppsättningar"
-#: iconv/iconv_prog.c:64 locale/programs/localedef.c:120
+#: iconv/iconv_prog.c:64 locale/programs/localedef.c:124
msgid "Output control:"
msgstr "Val av utdata:"
@@ -1413,8 +1414,8 @@ msgid "omit invalid characters from output"
msgstr "visa inte ogiltiga tecken i utdata"
#: iconv/iconv_prog.c:66 iconv/iconvconfig.c:128
-#: locale/programs/localedef.c:113 locale/programs/localedef.c:115
-#: locale/programs/localedef.c:117 locale/programs/localedef.c:144
+#: locale/programs/localedef.c:117 locale/programs/localedef.c:119
+#: locale/programs/localedef.c:121 locale/programs/localedef.c:150
#: malloc/memusagestat.c:56
msgid "FILE"
msgstr "FIL"
@@ -1513,7 +1514,7 @@ msgstr "Skapa en snabbladdande modulkonfigurationsfil för iconv."
msgid "[DIR...]"
msgstr "[KATALOG...]"
-#: iconv/iconvconfig.c:126 locale/programs/localedef.c:123
+#: iconv/iconvconfig.c:126 locale/programs/localedef.c:129
msgid "PATH"
msgstr "VÄG"
@@ -1697,14 +1698,14 @@ msgstr "teckenuppsättningar med låsta tillstånd stöds ej"
#: locale/programs/charmap.c:503 locale/programs/charmap.c:557
#: locale/programs/charmap.c:589 locale/programs/charmap.c:683
-#: locale/programs/charmap.c:738 locale/programs/charmap.c:779
-#: locale/programs/charmap.c:820
+#: locale/programs/charmap.c:739 locale/programs/charmap.c:780
+#: locale/programs/charmap.c:821
#, c-format
msgid "syntax error in %s definition: %s"
msgstr "syntaxfel i definition av %s: %s"
#: locale/programs/charmap.c:504 locale/programs/charmap.c:684
-#: locale/programs/charmap.c:780 locale/programs/repertoire.c:229
+#: locale/programs/charmap.c:781 locale/programs/repertoire.c:229
msgid "no symbolic name given"
msgstr "inget symboliskt namn givet"
@@ -1720,14 +1721,14 @@ msgstr "för få byte i teckenkodning"
msgid "too many bytes in character encoding"
msgstr "för många tecken i teckenkodning"
-#: locale/programs/charmap.c:591 locale/programs/charmap.c:739
-#: locale/programs/charmap.c:822 locale/programs/repertoire.c:295
+#: locale/programs/charmap.c:591 locale/programs/charmap.c:740
+#: locale/programs/charmap.c:823 locale/programs/repertoire.c:295
msgid "no symbolic name given for end of range"
msgstr "inget symboliskt namn givet för slutet av intervallet"
#: locale/programs/charmap.c:615 locale/programs/ld-address.c:524
#: locale/programs/ld-collate.c:2616 locale/programs/ld-collate.c:3774
-#: locale/programs/ld-ctype.c:2117 locale/programs/ld-ctype.c:2829
+#: locale/programs/ld-ctype.c:2118 locale/programs/ld-ctype.c:2830
#: locale/programs/ld-identification.c:397
#: locale/programs/ld-measurement.c:213 locale/programs/ld-messages.c:295
#: locale/programs/ld-monetary.c:748 locale/programs/ld-name.c:262
@@ -1742,60 +1743,60 @@ msgstr "%1$s: definition slutar inte med \"END %1$s\""
msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
msgstr "endast definition av \"WIDTH\" får komma efter definitionen av \"CHARMAP\""
-#: locale/programs/charmap.c:656 locale/programs/charmap.c:719
+#: locale/programs/charmap.c:656 locale/programs/charmap.c:720
#, c-format
msgid "value for %s must be an integer"
msgstr "värdet på %s måste vara heltal"
-#: locale/programs/charmap.c:847
+#: locale/programs/charmap.c:848
#, c-format
msgid "%s: error in state machine"
msgstr "%s: fel i tillståndsmaskin"
-#: locale/programs/charmap.c:855 locale/programs/ld-address.c:540
+#: locale/programs/charmap.c:856 locale/programs/ld-address.c:540
#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967
-#: locale/programs/ld-ctype.c:2114 locale/programs/ld-ctype.c:2846
+#: locale/programs/ld-ctype.c:2115 locale/programs/ld-ctype.c:2847
#: locale/programs/ld-identification.c:413
#: locale/programs/ld-measurement.c:229 locale/programs/ld-messages.c:311
#: locale/programs/ld-monetary.c:764 locale/programs/ld-name.c:278
#: locale/programs/ld-numeric.c:341 locale/programs/ld-paper.c:228
#: locale/programs/ld-telephone.c:292 locale/programs/ld-time.c:990
-#: locale/programs/locfile.c:997 locale/programs/repertoire.c:323
+#: locale/programs/locfile.c:1010 locale/programs/repertoire.c:323
#, c-format
msgid "%s: premature end of file"
msgstr "%s: för tidigt filslut"
-#: locale/programs/charmap.c:874 locale/programs/charmap.c:885
+#: locale/programs/charmap.c:875 locale/programs/charmap.c:886
#, c-format
msgid "unknown character `%s'"
msgstr "okänt tecken \"%s\""
-#: locale/programs/charmap.c:893
+#: locale/programs/charmap.c:894
#, c-format
msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d"
msgstr ""
"antal byte för bytesekvens angivet i början respektive slutet av intervallet\n"
"skiljer sig: %d respektive %d"
-#: locale/programs/charmap.c:998 locale/programs/ld-collate.c:2893
+#: locale/programs/charmap.c:999 locale/programs/ld-collate.c:2893
#: locale/programs/repertoire.c:418
msgid "invalid names for character range"
msgstr "ogiltiga namn för teckenintervall"
-#: locale/programs/charmap.c:1010 locale/programs/repertoire.c:430
+#: locale/programs/charmap.c:1011 locale/programs/repertoire.c:430
msgid "hexadecimal range format should use only capital characters"
msgstr "hexadecimalt intervallformat bör endast använda versaler"
-#: locale/programs/charmap.c:1028 locale/programs/repertoire.c:448
+#: locale/programs/charmap.c:1029 locale/programs/repertoire.c:448
#, c-format
msgid "<%s> and <%s> are invalid names for range"
msgstr "<%s> och <%s> är ogiltiga namn för intervall"
-#: locale/programs/charmap.c:1034 locale/programs/repertoire.c:455
+#: locale/programs/charmap.c:1035 locale/programs/repertoire.c:455
msgid "upper limit in range is smaller than lower limit"
msgstr "övre gräns i intervall är mindre än undre gräns"
-#: locale/programs/charmap.c:1092
+#: locale/programs/charmap.c:1093
msgid "resulting bytes for range not representable."
msgstr "resulterande byte för intervall är inte representerbara."
@@ -1864,7 +1865,7 @@ msgid "%s: numeric country code `%d' not valid"
msgstr "%s: numerisk landkod \"%d\" är inte giltig"
#: locale/programs/ld-address.c:432 locale/programs/ld-address.c:469
-#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2478
+#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2479
#: locale/programs/ld-identification.c:309
#: locale/programs/ld-measurement.c:196 locale/programs/ld-messages.c:264
#: locale/programs/ld-monetary.c:503 locale/programs/ld-monetary.c:538
@@ -1887,7 +1888,7 @@ msgid "%s: unknown character in field `%s'"
msgstr "%s: okänt tecken i fält \"%s\""
#: locale/programs/ld-address.c:521 locale/programs/ld-collate.c:3772
-#: locale/programs/ld-ctype.c:2826 locale/programs/ld-identification.c:394
+#: locale/programs/ld-ctype.c:2827 locale/programs/ld-identification.c:394
#: locale/programs/ld-measurement.c:210 locale/programs/ld-messages.c:293
#: locale/programs/ld-monetary.c:746 locale/programs/ld-name.c:260
#: locale/programs/ld-numeric.c:323 locale/programs/ld-paper.c:210
@@ -1900,8 +1901,8 @@ msgstr "%s: ofullständig \"END\"-rad"
#: locale/programs/ld-collate.c:602 locale/programs/ld-collate.c:898
#: locale/programs/ld-collate.c:911 locale/programs/ld-collate.c:2582
#: locale/programs/ld-collate.c:2603 locale/programs/ld-collate.c:3957
-#: locale/programs/ld-ctype.c:1846 locale/programs/ld-ctype.c:2104
-#: locale/programs/ld-ctype.c:2676 locale/programs/ld-ctype.c:2837
+#: locale/programs/ld-ctype.c:1847 locale/programs/ld-ctype.c:2105
+#: locale/programs/ld-ctype.c:2677 locale/programs/ld-ctype.c:2838
#: locale/programs/ld-identification.c:404
#: locale/programs/ld-measurement.c:220 locale/programs/ld-messages.c:302
#: locale/programs/ld-monetary.c:755 locale/programs/ld-name.c:269
@@ -2245,129 +2246,129 @@ msgstr "teckenuppsättning \"%s\" redan definierad"
msgid "implementation limit: no more than %d character maps allowed"
msgstr "implementationsbegränsning: inte fler än %d teckenuppsättningar tillåtet"
-#: locale/programs/ld-ctype.c:1434 locale/programs/ld-ctype.c:1559
-#: locale/programs/ld-ctype.c:1665 locale/programs/ld-ctype.c:2341
-#: locale/programs/ld-ctype.c:3299
+#: locale/programs/ld-ctype.c:1435 locale/programs/ld-ctype.c:1560
+#: locale/programs/ld-ctype.c:1666 locale/programs/ld-ctype.c:2342
+#: locale/programs/ld-ctype.c:3302
#, c-format
msgid "%s: field `%s' does not contain exactly ten entries"
msgstr "%s: fält \"%s\" innehåller inte exakt tio poster"
-#: locale/programs/ld-ctype.c:1462 locale/programs/ld-ctype.c:2036
+#: locale/programs/ld-ctype.c:1463 locale/programs/ld-ctype.c:2037
#, c-format
msgid "to-value <U%0*X> of range is smaller than from-value <U%0*X>"
msgstr "tillvärdet <U%0*X> i intervallet är mindre än frånvärdet <U%0*X>"
-#: locale/programs/ld-ctype.c:1589
+#: locale/programs/ld-ctype.c:1590
msgid "start and end character sequence of range must have the same length"
msgstr "start- och slutteckensekvens för intervall måste ha samma längd"
-#: locale/programs/ld-ctype.c:1596
+#: locale/programs/ld-ctype.c:1597
msgid "to-value character sequence is smaller than from-value sequence"
msgstr "tillvärdets teckensekvens är mindre än frånvärdets sekvens"
-#: locale/programs/ld-ctype.c:1956 locale/programs/ld-ctype.c:2007
+#: locale/programs/ld-ctype.c:1957 locale/programs/ld-ctype.c:2008
msgid "premature end of `translit_ignore' definition"
msgstr "för tidigt slut på definition för \"translit_ignore\""
-#: locale/programs/ld-ctype.c:1962 locale/programs/ld-ctype.c:2013
-#: locale/programs/ld-ctype.c:2055
+#: locale/programs/ld-ctype.c:1963 locale/programs/ld-ctype.c:2014
+#: locale/programs/ld-ctype.c:2056
msgid "syntax error"
msgstr "syntaxfel"
-#: locale/programs/ld-ctype.c:2188
+#: locale/programs/ld-ctype.c:2189
#, c-format
msgid "%s: syntax error in definition of new character class"
msgstr "%s: syntaxfel i definition av ny teckenklass"
-#: locale/programs/ld-ctype.c:2203
+#: locale/programs/ld-ctype.c:2204
#, c-format
msgid "%s: syntax error in definition of new character map"
msgstr "%s: syntaxfel i definition av ny teckenuppsättning"
-#: locale/programs/ld-ctype.c:2363
+#: locale/programs/ld-ctype.c:2364
msgid "ellipsis range must be marked by two operands of same type"
msgstr "intervall måste markeras med två operander av samma typ"
-#: locale/programs/ld-ctype.c:2372
+#: locale/programs/ld-ctype.c:2373
msgid "with symbolic name range values the absolute ellipsis `...' must not be used"
msgstr "med symboliska namn som intervallvärden kan inte absoluta intervallet \"...\" användas"
-#: locale/programs/ld-ctype.c:2387
+#: locale/programs/ld-ctype.c:2388
msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'"
msgstr "med UCS som intervallvärden måste man använda symboliska hexadecimala intervallet \"..\""
-#: locale/programs/ld-ctype.c:2401
+#: locale/programs/ld-ctype.c:2402
msgid "with character code range values one must use the absolute ellipsis `...'"
msgstr "med teckenkoder som intervallvärden måste man använda absoluta intervallet \"...\""
-#: locale/programs/ld-ctype.c:2552
+#: locale/programs/ld-ctype.c:2553
#, c-format
msgid "duplicated definition for mapping `%s'"
msgstr "dubblerad definition för mappning \"%s\""
-#: locale/programs/ld-ctype.c:2638 locale/programs/ld-ctype.c:2782
+#: locale/programs/ld-ctype.c:2639 locale/programs/ld-ctype.c:2783
#, c-format
msgid "%s: `translit_start' section does not end with `translit_end'"
msgstr "%s: sektion \"translit_start\" avslutas inte med \"translit_end\""
-#: locale/programs/ld-ctype.c:2733
+#: locale/programs/ld-ctype.c:2734
#, c-format
msgid "%s: duplicate `default_missing' definition"
msgstr "%s: dubbla definitioner av \"default_missing\""
-#: locale/programs/ld-ctype.c:2738
+#: locale/programs/ld-ctype.c:2739
msgid "previous definition was here"
msgstr "här var föregående definition"
-#: locale/programs/ld-ctype.c:2760
+#: locale/programs/ld-ctype.c:2761
#, c-format
msgid "%s: no representable `default_missing' definition found"
msgstr "%s: ingen representerbar definition av \"default_missing\" hittades"
-#: locale/programs/ld-ctype.c:2877 locale/programs/ld-ctype.c:2973
-#: locale/programs/ld-ctype.c:2992 locale/programs/ld-ctype.c:3012
-#: locale/programs/ld-ctype.c:3032 locale/programs/ld-ctype.c:3052
-#: locale/programs/ld-ctype.c:3072 locale/programs/ld-ctype.c:3111
-#: locale/programs/ld-ctype.c:3131 locale/programs/ld-ctype.c:3195
-#: locale/programs/ld-ctype.c:3236 locale/programs/ld-ctype.c:3259
+#: locale/programs/ld-ctype.c:2878 locale/programs/ld-ctype.c:2974
+#: locale/programs/ld-ctype.c:2993 locale/programs/ld-ctype.c:3013
+#: locale/programs/ld-ctype.c:3033 locale/programs/ld-ctype.c:3053
+#: locale/programs/ld-ctype.c:3073 locale/programs/ld-ctype.c:3112
+#: locale/programs/ld-ctype.c:3132 locale/programs/ld-ctype.c:3198
+#: locale/programs/ld-ctype.c:3239 locale/programs/ld-ctype.c:3262
#, c-format
msgid "%s: character `%s' not defined while needed as default value"
msgstr "%s: tecken \"%s\" inte definierat men behövs som standardvärde"
-#: locale/programs/ld-ctype.c:2882 locale/programs/ld-ctype.c:2978
-#: locale/programs/ld-ctype.c:2997 locale/programs/ld-ctype.c:3017
-#: locale/programs/ld-ctype.c:3037 locale/programs/ld-ctype.c:3057
-#: locale/programs/ld-ctype.c:3077 locale/programs/ld-ctype.c:3116
-#: locale/programs/ld-ctype.c:3136 locale/programs/ld-ctype.c:3200
+#: locale/programs/ld-ctype.c:2883 locale/programs/ld-ctype.c:2979
+#: locale/programs/ld-ctype.c:2998 locale/programs/ld-ctype.c:3018
+#: locale/programs/ld-ctype.c:3038 locale/programs/ld-ctype.c:3058
+#: locale/programs/ld-ctype.c:3078 locale/programs/ld-ctype.c:3117
+#: locale/programs/ld-ctype.c:3137 locale/programs/ld-ctype.c:3203
#, c-format
msgid "%s: character `%s' in charmap not representable with one byte"
msgstr "%s: tecken \"%s\" i teckenuppsättning kan inte representeras med en byte"
-#: locale/programs/ld-ctype.c:3242 locale/programs/ld-ctype.c:3265
+#: locale/programs/ld-ctype.c:3245 locale/programs/ld-ctype.c:3268
#, c-format
msgid "%s: character `%s' needed as default value not representable with one byte"
msgstr "%s: tecken \"%s\" som behövs som standardvärde kan inte representeras med en byte"
-#: locale/programs/ld-ctype.c:3321
+#: locale/programs/ld-ctype.c:3324
msgid "no output digits defined and none of the standard names in the charmap"
msgstr "inga siffror för utdata definierade och inga standardnamn finns i teckenuppsättningen"
-#: locale/programs/ld-ctype.c:3570
+#: locale/programs/ld-ctype.c:3573
#, c-format
msgid "%s: transliteration data from locale `%s' not available"
msgstr "%s: transkriberingsdata för lokal \"%s\" är inte tillgänglig"
-#: locale/programs/ld-ctype.c:3669
+#: locale/programs/ld-ctype.c:3672
#, c-format
msgid "%s: table for class \"%s\": %lu bytes"
msgstr "%s: tabell för klass â€%sâ€: %lu byte"
-#: locale/programs/ld-ctype.c:3733
+#: locale/programs/ld-ctype.c:3736
#, c-format
msgid "%s: table for map \"%s\": %lu bytes"
msgstr "%s: tabell för â€%sâ€: %lu byte"
-#: locale/programs/ld-ctype.c:3857
+#: locale/programs/ld-ctype.c:3860
#, c-format
msgid "%s: table for width: %lu bytes"
msgstr "%s: tabell för teckenstorlek: %lu byte"
@@ -2607,120 +2608,114 @@ msgstr ""
"NAMN\n"
"[-a|-m]"
-#: locale/programs/locale.c:190
+#: locale/programs/locale.c:522
#, c-format
-msgid "Cannot set LC_CTYPE to default locale"
-msgstr "Kan inte sätta LC_CTYPE till standardlokalen"
-
-#: locale/programs/locale.c:192
-#, c-format
-msgid "Cannot set LC_MESSAGES to default locale"
-msgstr "Kan inte sätta LC_MESSAGES till standardlokalen"
-
-#: locale/programs/locale.c:205
-#, c-format
-msgid "Cannot set LC_COLLATE to default locale"
-msgstr "Kan inte sätta LC_COLLATE till standardlokalen"
+msgid "while preparing output"
+msgstr "när utdata förbereddes"
-#: locale/programs/locale.c:221
+#: locale/programs/locale.c:998
#, c-format
-msgid "Cannot set LC_ALL to default locale"
-msgstr "Kan inte sätta LC_ALL till standardlokalen"
+msgid "Cannot set %s to default locale"
+msgstr "Kan inte sätta %s till standardlokalen"
-#: locale/programs/locale.c:521
+#: locale/programs/locale.c:1096
#, c-format
-msgid "while preparing output"
-msgstr "när utdata förbereddes"
+msgid "warning: The LOCPATH variable is set to \"%s\"\n"
+msgstr "varning: variabeln LOCPATH är satt till â€%sâ€\n"
-#: locale/programs/localedef.c:112
+#: locale/programs/localedef.c:116
msgid "Input Files:"
msgstr "Infiler:"
-#: locale/programs/localedef.c:114
+#: locale/programs/localedef.c:118
msgid "Symbolic character names defined in FILE"
msgstr "Symboliska teckennamn definierade i FILE"
-#: locale/programs/localedef.c:116
+#: locale/programs/localedef.c:120
msgid "Source definitions are found in FILE"
msgstr "Källdefinitioner finns i FIL"
-#: locale/programs/localedef.c:118
+#: locale/programs/localedef.c:122
msgid "FILE contains mapping from symbolic names to UCS4 values"
msgstr "FIL innehåller avbildning från symboliska namn till UCS4-värden"
-#: locale/programs/localedef.c:122
+#: locale/programs/localedef.c:126
msgid "Create output even if warning messages were issued"
msgstr "Skapa utfil även om varningsmeddelanden genererades"
-#: locale/programs/localedef.c:123
+#: locale/programs/localedef.c:128
+msgid "Do not create hard links between installed locales"
+msgstr "Skapa inte hårda länkar mellan installerade lokaler"
+
+#: locale/programs/localedef.c:129
msgid "Optional output file prefix"
msgstr "Valfri utfilsprefix"
-#: locale/programs/localedef.c:124
+#: locale/programs/localedef.c:130
msgid "Strictly conform to POSIX"
msgstr "Var strikt POSIX-konform"
-#: locale/programs/localedef.c:126
+#: locale/programs/localedef.c:132
msgid "Suppress warnings and information messages"
msgstr "Undertryck varningar och informationsmeddelanden"
-#: locale/programs/localedef.c:127
+#: locale/programs/localedef.c:133
msgid "Print more messages"
msgstr "Skriv mer meddelanden"
-#: locale/programs/localedef.c:128 locale/programs/localedef.c:131
+#: locale/programs/localedef.c:134 locale/programs/localedef.c:137
msgid "<warnings>"
msgstr "<varningar>"
-#: locale/programs/localedef.c:129
+#: locale/programs/localedef.c:135
msgid "Comma-separated list of warnings to disable; supported warnings are: ascii, intcurrsym"
msgstr "Kommaseparerad lista av varningar att avaktivera; varningar som stödjs är: ascii, intcurrsym"
-#: locale/programs/localedef.c:132
+#: locale/programs/localedef.c:138
msgid "Comma-separated list of warnings to enable; supported warnings are: ascii, intcurrsym"
msgstr "Kommaseparerad lista av varningar att aktivera; varningar som stödjs är: ascii, intcurrsym"
-#: locale/programs/localedef.c:135
+#: locale/programs/localedef.c:141
msgid "Archive control:"
msgstr "Arkivkontroll:"
-#: locale/programs/localedef.c:137
+#: locale/programs/localedef.c:143
msgid "Don't add new data to archive"
msgstr "Lägg inte till nya data till arkivet"
-#: locale/programs/localedef.c:139
+#: locale/programs/localedef.c:145
msgid "Add locales named by parameters to archive"
msgstr "Lägg till lokaler namngivna av parametrar till arkivet"
-#: locale/programs/localedef.c:140
+#: locale/programs/localedef.c:146
msgid "Replace existing archive content"
msgstr "Ersätt befintligt arkivinnehåll"
-#: locale/programs/localedef.c:142
+#: locale/programs/localedef.c:148
msgid "Remove locales named by parameters from archive"
msgstr "Ta bort lokaler namngivna av parametrar från arkivet"
-#: locale/programs/localedef.c:143
+#: locale/programs/localedef.c:149
msgid "List content of archive"
msgstr "Visa innehållet i arkivet"
-#: locale/programs/localedef.c:145
+#: locale/programs/localedef.c:151
msgid "locale.alias file to consult when making archive"
msgstr "locale.alias-fil som ska användas när arkivet skapas"
-#: locale/programs/localedef.c:147
+#: locale/programs/localedef.c:153
msgid "Generate little-endian output"
msgstr "Generera utdata med omvänd byteordning"
-#: locale/programs/localedef.c:149
+#: locale/programs/localedef.c:155
msgid "Generate big-endian output"
msgstr "Generera utdata med rak byteordning"
-#: locale/programs/localedef.c:154
+#: locale/programs/localedef.c:160
msgid "Compile locale specification"
msgstr "Kompilera lokalspecifikation"
-#: locale/programs/localedef.c:157
+#: locale/programs/localedef.c:163
msgid ""
"NAME\n"
"[--add-to-archive|--delete-from-archive] FILE...\n"
@@ -2730,31 +2725,31 @@ msgstr ""
"[--add-to-archive|--delete-from-archive] FIL...\n"
"--list-archive [FIL]"
-#: locale/programs/localedef.c:232
+#: locale/programs/localedef.c:238
#, c-format
msgid "cannot create directory for output files"
msgstr "kan inte skapa katalog för utfiler"
-#: locale/programs/localedef.c:243
+#: locale/programs/localedef.c:249
msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
msgstr "FATALT: systemet definierar inte \"_POSIX2_LOCALEDEF\""
-#: locale/programs/localedef.c:257 locale/programs/localedef.c:273
-#: locale/programs/localedef.c:663 locale/programs/localedef.c:683
+#: locale/programs/localedef.c:263 locale/programs/localedef.c:279
+#: locale/programs/localedef.c:673 locale/programs/localedef.c:693
#, c-format
msgid "cannot open locale definition file `%s'"
msgstr "kan inte öppna lokaldefinitionsfil \"%s\""
-#: locale/programs/localedef.c:297
+#: locale/programs/localedef.c:303
#, c-format
msgid "cannot write output files to `%s'"
msgstr "kan inte skriva utfiler till \"%s\""
-#: locale/programs/localedef.c:303
+#: locale/programs/localedef.c:309
msgid "no output file produced because errors were issued"
msgstr "ingen utfil skapad på grund av fel"
-#: locale/programs/localedef.c:431
+#: locale/programs/localedef.c:441
#, c-format
msgid ""
"System's directory for character maps : %s\n"
@@ -2767,11 +2762,11 @@ msgstr ""
"\t\t lokal-sökväg : %s\n"
"%s"
-#: locale/programs/localedef.c:631
+#: locale/programs/localedef.c:641
msgid "circular dependencies between locale definitions"
msgstr "cirkulärt beroende mellan lokaldefinitioner"
-#: locale/programs/localedef.c:637
+#: locale/programs/localedef.c:647
#, c-format
msgid "cannot add already read locale `%s' a second time"
msgstr "kan inte lägga till en redan inläst lokal \"%s\" en andra gång"
@@ -2927,24 +2922,24 @@ msgstr "kan inte öppna utfil \"%s\" för kategori \"%s\""
msgid "failure while writing data for category `%s'"
msgstr "misslyckades skriva data för kategori \"%s\""
-#: locale/programs/locfile.c:917
+#: locale/programs/locfile.c:930
#, c-format
msgid "cannot create output file `%s' for category `%s'"
msgstr "kan inte skapa utfil \"%s\" för kategori \"%s\""
-#: locale/programs/locfile.c:953
+#: locale/programs/locfile.c:966
msgid "expecting string argument for `copy'"
msgstr "förväntar strängargument för \"copy\""
-#: locale/programs/locfile.c:957
+#: locale/programs/locfile.c:970
msgid "locale name should consist only of portable characters"
msgstr "lokalnamn får endast bestå av portabla tecken"
-#: locale/programs/locfile.c:976
+#: locale/programs/locfile.c:989
msgid "no other keyword shall be specified when `copy' is used"
msgstr "inget annat nyckelord får anges när \"copy\" används"
-#: locale/programs/locfile.c:990
+#: locale/programs/locfile.c:1003
#, c-format
msgid "`%1$s' definition does not end with `END %1$s'"
msgstr "definition av \"%1$s\" slutar inte med \"END %1$s\""
@@ -3776,12 +3771,12 @@ msgstr "yp_update: kan inte omvandla värd till nätnamn\n"
msgid "yp_update: cannot get server address\n"
msgstr "yp_update: kan inte hämta serveradress\n"
-#: nscd/aicache.c:83 nscd/hstcache.c:452
+#: nscd/aicache.c:82 nscd/hstcache.c:452
#, c-format
msgid "Haven't found \"%s\" in hosts cache!"
msgstr "Hittar inte \"%s\" i värdcache!"
-#: nscd/aicache.c:85 nscd/hstcache.c:454
+#: nscd/aicache.c:84 nscd/hstcache.c:454
#, c-format
msgid "Reloading \"%s\" in hosts cache!"
msgstr "Omladdar \"%s\" i värdcache!"
@@ -4102,22 +4097,22 @@ msgstr "frigjorde %zu byte i %s cache"
msgid "no more memory for database '%s'"
msgstr "inget mer minne för databas \"%s\""
-#: nscd/netgroupcache.c:121
+#: nscd/netgroupcache.c:122
#, c-format
msgid "Haven't found \"%s\" in netgroup cache!"
msgstr "Hittar inte \"%s\" i nätgruppscache!"
-#: nscd/netgroupcache.c:123
+#: nscd/netgroupcache.c:124
#, c-format
msgid "Reloading \"%s\" in netgroup cache!"
msgstr "Omladdar \"%s\" i nätgruppscache!"
-#: nscd/netgroupcache.c:469
+#: nscd/netgroupcache.c:470
#, c-format
msgid "Haven't found \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr "Hittar inte \"%s (%s,%s,%s)\" i nätgruppscache!"
-#: nscd/netgroupcache.c:472
+#: nscd/netgroupcache.c:473
#, c-format
msgid "Reloading \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr "Omladdar \"%s (%s,%s,%s)\" i nätgruppscache!"
@@ -4170,7 +4165,7 @@ msgstr "Använd separat cache för varje användare"
msgid "Name Service Cache Daemon."
msgstr "Cache-demon för namntjänsten."
-#: nscd/nscd.c:155 nss/getent.c:967 nss/makedb.c:206
+#: nscd/nscd.c:155 nss/getent.c:987 nss/makedb.c:206
#, c-format
msgid "wrong number of arguments"
msgstr "fel antal argument"
@@ -4278,27 +4273,27 @@ msgstr "Parsfel: %s"
msgid "Must specify user name for server-user option"
msgstr "Användarnamn krävs för \"server-user\"-flaggan"
-#: nscd/nscd_conf.c:198
+#: nscd/nscd_conf.c:201
#, c-format
msgid "Must specify user name for stat-user option"
msgstr "Användarnamn krävs för \"stat-user\"-flaggan"
-#: nscd/nscd_conf.c:255
+#: nscd/nscd_conf.c:259
#, c-format
msgid "Must specify value for restart-interval option"
msgstr "Måste ge värde för \"restart-interval\"-flaggan"
-#: nscd/nscd_conf.c:269
+#: nscd/nscd_conf.c:273
#, c-format
msgid "Unknown option: %s %s %s"
msgstr "Okänd flagga: %s %s %s"
-#: nscd/nscd_conf.c:282
+#: nscd/nscd_conf.c:286
#, c-format
msgid "cannot get current working directory: %s; disabling paranoia mode"
msgstr "kan inte hämta aktuell katalog: %s; kopplar ut paranoialäge"
-#: nscd/nscd_conf.c:302
+#: nscd/nscd_conf.c:306
#, c-format
msgid "maximum file size for %s database too small"
msgstr "maximal filstorlek för \"%s\"-databasen är för liten"
@@ -4560,46 +4555,46 @@ msgstr "Hittar inte \"%s\" i servicecache!"
msgid "Reloading \"%s\" in services cache!"
msgstr "Omladdar \"%s\" i servicecache!"
-#: nss/getent.c:54
+#: nss/getent.c:55
msgid "database [key ...]"
msgstr "databas [nyckel ...]"
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "CONFIG"
msgstr "CONFIG"
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "Service configuration to be used"
msgstr "Tjänstekonfiguration som ska användas"
-#: nss/getent.c:60
+#: nss/getent.c:61
msgid "disable IDN encoding"
msgstr "inaktivera DIN-kodning"
-#: nss/getent.c:65
+#: nss/getent.c:66
msgid "Get entries from administrative database."
msgstr "Hämta poster från den administrativa databasen."
-#: nss/getent.c:149 nss/getent.c:442 nss/getent.c:489
+#: nss/getent.c:150 nss/getent.c:462 nss/getent.c:509
#, c-format
msgid "Enumeration not supported on %s\n"
msgstr "Uppräkning stödjs ej på %s\n"
-#: nss/getent.c:497 nss/getent.c:510
+#: nss/getent.c:517 nss/getent.c:530
#, c-format
msgid "Could not allocate group list: %m\n"
msgstr "Kunde inte allokera en grupplista: %m\n"
-#: nss/getent.c:881
+#: nss/getent.c:901
#, c-format
msgid "Unknown database name"
msgstr "Okänt databasnamn"
-#: nss/getent.c:911
+#: nss/getent.c:931
msgid "Supported databases:\n"
msgstr "Databaser som stöds:\n"
-#: nss/getent.c:977
+#: nss/getent.c:997
#, c-format
msgid "Unknown database: %s\n"
msgstr "Okänd databas: %s\n"
@@ -4854,11 +4849,11 @@ msgstr "Reguljärt uttryck för stort"
msgid "Unmatched ) or \\)"
msgstr "Obalanserade ) eller \\)"
-#: posix/regcomp.c:689
+#: posix/regcomp.c:676
msgid "No previous regular expression"
msgstr "Inget föregående reguljärt uttryck"
-#: posix/wordexp.c:1815
+#: posix/wordexp.c:1816
msgid "parameter null or not set"
msgstr "parameter är tom eller inte satt"
@@ -5043,7 +5038,7 @@ msgstr "Buffertplats för utdata tillgängligt"
msgid "Input message available"
msgstr "Inkommande meddelande tillgängligt"
-#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:381 timezone/zic.c:520
+#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:375 timezone/zic.c:561
msgid "I/O error"
msgstr "I/O-fel"
@@ -5126,7 +5121,7 @@ msgstr "Okänd signal %d"
#: sunrpc/auth_unix.c:112 sunrpc/clnt_tcp.c:124 sunrpc/clnt_udp.c:139
#: sunrpc/clnt_unix.c:125 sunrpc/svc_tcp.c:189 sunrpc/svc_tcp.c:233
#: sunrpc/svc_udp.c:161 sunrpc/svc_unix.c:189 sunrpc/svc_unix.c:229
-#: sunrpc/xdr.c:628 sunrpc/xdr.c:788 sunrpc/xdr_array.c:102
+#: sunrpc/xdr.c:631 sunrpc/xdr.c:791 sunrpc/xdr_array.c:102
#: sunrpc/xdr_rec.c:153 sunrpc/xdr_ref.c:79
msgid "out of memory\n"
msgstr "minnet slut\n"
@@ -6378,56 +6373,69 @@ msgid "You really blew it this time"
msgstr "Du strulade till det den här gången"
#. TRANS Go home and have a glass of warm, dairy-fresh milk.
-#: sysdeps/gnu/errlist.c:978
+#. TRANS @c Okay. Since you are dying to know, I'll tell you.
+#. TRANS @c This is a joke, obviously. There is a children's song which begins,
+#. TRANS @c "Old McDonald had a farm, e-i-e-i-o." Every time I see the (real)
+#. TRANS @c errno macro EIO, I think about that song. Probably most of my
+#. TRANS @c compatriots who program on Unix do, too. One of them must have stayed
+#. TRANS @c up a little too late one night and decided to add it to Hurd or Glibc.
+#. TRANS @c Whoever did it should be castigated, but it made me laugh.
+#. TRANS @c --jtobey@channel1.com
+#. TRANS @c
+#. TRANS @c "bought the farm" means "died". -jtobey
+#. TRANS @c
+#. TRANS @c Translators, please do not translate this litteraly, translate it into
+#. TRANS @c an idiomatic funny way of saying that the computer died.
+#: sysdeps/gnu/errlist.c:991
msgid "Computer bought the farm"
msgstr "Datorn packade ihop"
#. TRANS This error code has no purpose.
-#: sysdeps/gnu/errlist.c:987
+#: sysdeps/gnu/errlist.c:1000
msgid "Gratuitous error"
msgstr "Omotiverat fel"
-#: sysdeps/gnu/errlist.c:995
+#: sysdeps/gnu/errlist.c:1008
msgid "Bad message"
msgstr "Felaktigt meddelande"
-#: sysdeps/gnu/errlist.c:1003
+#: sysdeps/gnu/errlist.c:1016
msgid "Identifier removed"
msgstr "Identifierare borttagen"
-#: sysdeps/gnu/errlist.c:1011
+#: sysdeps/gnu/errlist.c:1024
msgid "Multihop attempted"
msgstr "Flerhopp försöktes"
-#: sysdeps/gnu/errlist.c:1019
+#: sysdeps/gnu/errlist.c:1032
msgid "No data available"
msgstr "Inga data tillgängliga"
-#: sysdeps/gnu/errlist.c:1027
+#: sysdeps/gnu/errlist.c:1040
msgid "Link has been severed"
msgstr "Länken har brutits"
-#: sysdeps/gnu/errlist.c:1035
+#: sysdeps/gnu/errlist.c:1048
msgid "No message of desired type"
msgstr "Inget meddelande av önskad typ"
-#: sysdeps/gnu/errlist.c:1043
+#: sysdeps/gnu/errlist.c:1056
msgid "Out of streams resources"
msgstr "Stream-resurserna är slut"
-#: sysdeps/gnu/errlist.c:1051
+#: sysdeps/gnu/errlist.c:1064
msgid "Device not a stream"
msgstr "Enheten är inte en stream"
-#: sysdeps/gnu/errlist.c:1059
+#: sysdeps/gnu/errlist.c:1072
msgid "Value too large for defined data type"
msgstr "Värdet för stort för definierad datatyp"
-#: sysdeps/gnu/errlist.c:1067
+#: sysdeps/gnu/errlist.c:1080
msgid "Protocol error"
msgstr "Protokollfel"
-#: sysdeps/gnu/errlist.c:1075
+#: sysdeps/gnu/errlist.c:1088
msgid "Timer expired"
msgstr "Klockan ringde"
@@ -6435,195 +6443,195 @@ msgstr "Klockan ringde"
#. TRANS completed. @xref{Asynchronous I/O}. When you call @code{aio_cancel},
#. TRANS the normal result is for the operations affected to complete with this
#. TRANS error; @pxref{Cancel AIO Operations}.
-#: sysdeps/gnu/errlist.c:1087
+#: sysdeps/gnu/errlist.c:1100
msgid "Operation canceled"
msgstr "Operationen avbruten"
-#: sysdeps/gnu/errlist.c:1095
+#: sysdeps/gnu/errlist.c:1108
msgid "Owner died"
msgstr "Ägaren dog"
-#: sysdeps/gnu/errlist.c:1103
+#: sysdeps/gnu/errlist.c:1116
msgid "State not recoverable"
msgstr "Det går inte att återhämta från tillståndet"
-#: sysdeps/gnu/errlist.c:1111
+#: sysdeps/gnu/errlist.c:1124
msgid "Interrupted system call should be restarted"
msgstr "Avbrutet systemanrop borde omstartas"
-#: sysdeps/gnu/errlist.c:1119
+#: sysdeps/gnu/errlist.c:1132
msgid "Channel number out of range"
msgstr "Kanalnummer utanför giltigt intervall"
-#: sysdeps/gnu/errlist.c:1127
+#: sysdeps/gnu/errlist.c:1140
msgid "Level 2 not synchronized"
msgstr "Nivå 2 inte synkroniserad"
-#: sysdeps/gnu/errlist.c:1135
+#: sysdeps/gnu/errlist.c:1148
msgid "Level 3 halted"
msgstr "Nivå 3 stannad"
-#: sysdeps/gnu/errlist.c:1143
+#: sysdeps/gnu/errlist.c:1156
msgid "Level 3 reset"
msgstr "Nivå 3 omstartad"
-#: sysdeps/gnu/errlist.c:1151
+#: sysdeps/gnu/errlist.c:1164
msgid "Link number out of range"
msgstr "Länkantal utanför giltigt intervall"
-#: sysdeps/gnu/errlist.c:1159
+#: sysdeps/gnu/errlist.c:1172
msgid "Protocol driver not attached"
msgstr "Styrprogram för protokoll inte anslutet"
-#: sysdeps/gnu/errlist.c:1167
+#: sysdeps/gnu/errlist.c:1180
msgid "No CSI structure available"
msgstr "Inga CSI-strukturer tillgängliga"
-#: sysdeps/gnu/errlist.c:1175
+#: sysdeps/gnu/errlist.c:1188
msgid "Level 2 halted"
msgstr "Nivå 2 stannad"
-#: sysdeps/gnu/errlist.c:1183
+#: sysdeps/gnu/errlist.c:1196
msgid "Invalid exchange"
msgstr "Ogiltig växel"
-#: sysdeps/gnu/errlist.c:1191
+#: sysdeps/gnu/errlist.c:1204
msgid "Invalid request descriptor"
msgstr "Ogiltig begärandeidentifierare"
-#: sysdeps/gnu/errlist.c:1199
+#: sysdeps/gnu/errlist.c:1212
msgid "Exchange full"
msgstr "Växeln full"
-#: sysdeps/gnu/errlist.c:1207
+#: sysdeps/gnu/errlist.c:1220
msgid "No anode"
msgstr "Ingen anod"
-#: sysdeps/gnu/errlist.c:1215
+#: sysdeps/gnu/errlist.c:1228
msgid "Invalid request code"
msgstr "Ogiltig begärandekod"
-#: sysdeps/gnu/errlist.c:1223
+#: sysdeps/gnu/errlist.c:1236
msgid "Invalid slot"
msgstr "Ogiltig plats"
-#: sysdeps/gnu/errlist.c:1231
+#: sysdeps/gnu/errlist.c:1244
msgid "File locking deadlock error"
msgstr "Fillåsning gav dödläge"
-#: sysdeps/gnu/errlist.c:1239
+#: sysdeps/gnu/errlist.c:1252
msgid "Bad font file format"
msgstr "Felaktigt format på typsnittsfil"
-#: sysdeps/gnu/errlist.c:1247
+#: sysdeps/gnu/errlist.c:1260
msgid "Machine is not on the network"
msgstr "Maskinen finns inte på nätverket"
-#: sysdeps/gnu/errlist.c:1255
+#: sysdeps/gnu/errlist.c:1268
msgid "Package not installed"
msgstr "Paketet är inte installerat"
-#: sysdeps/gnu/errlist.c:1263
+#: sysdeps/gnu/errlist.c:1276
msgid "Advertise error"
msgstr "Annonseringsfel"
-#: sysdeps/gnu/errlist.c:1271
+#: sysdeps/gnu/errlist.c:1284
msgid "Srmount error"
msgstr "Srmount-fel"
-#: sysdeps/gnu/errlist.c:1279
+#: sysdeps/gnu/errlist.c:1292
msgid "Communication error on send"
msgstr "Kommunikationsfel vid sändning"
-#: sysdeps/gnu/errlist.c:1287
+#: sysdeps/gnu/errlist.c:1300
msgid "RFS specific error"
msgstr "RFS-specifikt fel"
-#: sysdeps/gnu/errlist.c:1295
+#: sysdeps/gnu/errlist.c:1308
msgid "Name not unique on network"
msgstr "Namnet inte unikt i nätverket"
-#: sysdeps/gnu/errlist.c:1303
+#: sysdeps/gnu/errlist.c:1316
msgid "File descriptor in bad state"
msgstr "Filidentifierare i felaktigt tillstånd"
-#: sysdeps/gnu/errlist.c:1311
+#: sysdeps/gnu/errlist.c:1324
msgid "Remote address changed"
msgstr "Fjärradress ändrades"
-#: sysdeps/gnu/errlist.c:1319
+#: sysdeps/gnu/errlist.c:1332
msgid "Can not access a needed shared library"
msgstr "Kan inte komma åt ett nödvändigt delat bibliotek"
-#: sysdeps/gnu/errlist.c:1327
+#: sysdeps/gnu/errlist.c:1340
msgid "Accessing a corrupted shared library"
msgstr "Öppnar ett korrupt delat bibliotek"
-#: sysdeps/gnu/errlist.c:1335
+#: sysdeps/gnu/errlist.c:1348
msgid ".lib section in a.out corrupted"
msgstr ".lib-sektion i a.out korrupt"
-#: sysdeps/gnu/errlist.c:1343
+#: sysdeps/gnu/errlist.c:1356
msgid "Attempting to link in too many shared libraries"
msgstr "Försöker att länka in för många delade bibliotek"
-#: sysdeps/gnu/errlist.c:1351
+#: sysdeps/gnu/errlist.c:1364
msgid "Cannot exec a shared library directly"
msgstr "Kan inte köra ett delat bibliotek direkt"
-#: sysdeps/gnu/errlist.c:1359
+#: sysdeps/gnu/errlist.c:1372
msgid "Streams pipe error"
msgstr "Streams-rörfel"
-#: sysdeps/gnu/errlist.c:1367
+#: sysdeps/gnu/errlist.c:1380
msgid "Structure needs cleaning"
msgstr "Strukturen behöver städas"
-#: sysdeps/gnu/errlist.c:1375
+#: sysdeps/gnu/errlist.c:1388
msgid "Not a XENIX named type file"
msgstr "Inte en XENIX-namngiven fil"
-#: sysdeps/gnu/errlist.c:1383
+#: sysdeps/gnu/errlist.c:1396
msgid "No XENIX semaphores available"
msgstr "Inga XENIX-semaforer tillgängliga"
-#: sysdeps/gnu/errlist.c:1391
+#: sysdeps/gnu/errlist.c:1404
msgid "Is a named type file"
msgstr "Är av typ namnfil"
-#: sysdeps/gnu/errlist.c:1399
+#: sysdeps/gnu/errlist.c:1412
msgid "Remote I/O error"
msgstr "I/O-fel på fjärrmaskin"
-#: sysdeps/gnu/errlist.c:1407
+#: sysdeps/gnu/errlist.c:1420
msgid "No medium found"
msgstr "Inget medium funnet"
-#: sysdeps/gnu/errlist.c:1415
+#: sysdeps/gnu/errlist.c:1428
msgid "Wrong medium type"
msgstr "Fel medietyp"
-#: sysdeps/gnu/errlist.c:1423
+#: sysdeps/gnu/errlist.c:1436
msgid "Required key not available"
msgstr "Obligatorisk nyckel inte tillgänglig"
-#: sysdeps/gnu/errlist.c:1431
+#: sysdeps/gnu/errlist.c:1444
msgid "Key has expired"
msgstr "Nyckeln har gått ut"
-#: sysdeps/gnu/errlist.c:1439
+#: sysdeps/gnu/errlist.c:1452
msgid "Key has been revoked"
msgstr "Nyckeln har återkallats"
-#: sysdeps/gnu/errlist.c:1447
+#: sysdeps/gnu/errlist.c:1460
msgid "Key was rejected by service"
msgstr "Nyckeln accepterades inte av tjänsten"
-#: sysdeps/gnu/errlist.c:1455
+#: sysdeps/gnu/errlist.c:1468
msgid "Operation not possible due to RF-kill"
msgstr "Operationen inte möjlig p.g.a. RF-kill"
-#: sysdeps/gnu/errlist.c:1463
+#: sysdeps/gnu/errlist.c:1476
msgid "Memory page has hardware error"
msgstr "Minnessida har hårdvarufel"
@@ -6748,27 +6756,27 @@ msgstr "skuggstacken är inte aktiverad"
msgid "can't disable CET"
msgstr "kan inte avaktivera CET"
-#: timezone/zdump.c:338
+#: timezone/zdump.c:332
msgid "has fewer than 3 characters"
msgstr "har färre än 3 tecken"
-#: timezone/zdump.c:340
+#: timezone/zdump.c:334
msgid "has more than 6 characters"
msgstr "har fler än 6 tecken"
-#: timezone/zdump.c:342
+#: timezone/zdump.c:336
msgid "has characters other than ASCII alphanumerics, '-' or '+'"
msgstr "har andra tecken än ASCII alfanumeriska, â€-†eller â€+â€"
-#: timezone/zdump.c:347
+#: timezone/zdump.c:341
#, c-format
msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n"
msgstr "%s: varning: zon \"%s\" förkortning \"%s\": %s\n"
-#: timezone/zdump.c:393
+#: timezone/zdump.c:387
#, c-format
msgid ""
-"%s: usage: %s OPTIONS ZONENAME ...\n"
+"%s: usage: %s OPTIONS TIMEZONE ...\n"
"Options include:\n"
" -c [L,]U Start at year L (default -500), end before year U (default 2500)\n"
" -t [L,]U Start at time L, end before time U (in seconds since 1970)\n"
@@ -6780,10 +6788,10 @@ msgid ""
"\n"
"Report bugs to %s.\n"
msgstr ""
-"%s: användning: %s FLAGGOR ZONNAMN …\n"
+"%s: användning: %s FLAGGOR TIDSZON …\n"
"Flaggorna inkluderar:\n"
-" -c [L,]Ö Starta vid år L (standard -500), och sluta före år Ö (standard 2500)\n"
-" -t [L,]Ö Starta vid tid L, och sluta före tid Ö (i sekunder sedan 1970)\n"
+" -c [N,]Ö Starta vid år N (standard -500), och sluta före år Ö (standard 2500)\n"
+" -t [N,]Ö Starta vid tid N, och sluta före tid Ö (i sekunder sedan 1970)\n"
" -i Lista övergångar kort (formatet är experimentellt)\n"
" -v Lista övergångar utförligt\n"
" -V Lista övergångar lite mindre utförligt\n"
@@ -6793,436 +6801,460 @@ msgstr ""
"Rapportera fel till %s.\n"
"Rapportera fel eller synpunkter på översättningen till <tp-sv@listor.tp-sv.se>.\n"
-#: timezone/zdump.c:479
+#: timezone/zdump.c:473
#, c-format
msgid "%s: wild -c argument %s\n"
msgstr "%s: argument \"%s\" till flaggan -c har fel format\n"
-#: timezone/zdump.c:512
+#: timezone/zdump.c:506
#, c-format
msgid "%s: wild -t argument %s\n"
msgstr "%s: argument \"%s\" till flaggan -t har fel format\n"
-#: timezone/zic.c:398
+#: timezone/zic.c:429
#, c-format
msgid "%s: Memory exhausted: %s\n"
msgstr "%s: Minnet slut: %s\n"
-#: timezone/zic.c:406
+#: timezone/zic.c:437
msgid "size overflow"
msgstr "för stor storlek"
-#: timezone/zic.c:454
+#: timezone/zic.c:447
+msgid "alignment overflow"
+msgstr "spill i justering"
+
+#: timezone/zic.c:495
msgid "integer overflow"
msgstr "heltalsspill"
-#: timezone/zic.c:488
+#: timezone/zic.c:529
#, c-format
msgid "\"%s\", line %<PRIdMAX>: "
msgstr "â€%sâ€, rad %<PRIdMAX>: "
-#: timezone/zic.c:491
+#: timezone/zic.c:532
#, c-format
msgid " (rule from \"%s\", line %<PRIdMAX>)"
msgstr " (regel frÃ¥n â€%sâ€, rad %<PRIdMAX>)"
-#: timezone/zic.c:510
+#: timezone/zic.c:551
#, c-format
msgid "warning: "
msgstr "varning: "
-#: timezone/zic.c:535
+#: timezone/zic.c:576
#, c-format
msgid ""
"%s: usage is %s [ --version ] [ --help ] [ -v ] \\\n"
"\t[ -l localtime ] [ -p posixrules ] [ -d directory ] \\\n"
-"\t[ -L leapseconds ] [ filename ... ]\n"
+"\t[ -t localtime-link ] [ -L leapseconds ] [ filename ... ]\n"
"\n"
"Report bugs to %s.\n"
msgstr ""
"%s: användning är %s [ --version ] [ --help ] [ -v ] \\\n"
"\t[ -l lokaltid ] [ -p posixregler ] [ -d katalog ] \\\n"
-"\t[ -L skottsekunder ] [ filnamn … ]\n"
+"\t[ -t lokaltidslänk ] [ -L skottsekunder ] [ filnamn … ]\n"
"\n"
"Rapportera fel till %s.\n"
"Rapportera fel eller synpunkter på översättningen till <tp-sv@listor.tp-sv.se>.\n"
-#: timezone/zic.c:558
+#: timezone/zic.c:599
#, c-format
msgid "%s: Can't chdir to %s: %s\n"
msgstr "%s: Kan inte byta katalog till %s: %s\n"
-#: timezone/zic.c:590
+#: timezone/zic.c:632
msgid "wild compilation-time specification of zic_t"
msgstr "definitionen av zic_t vid kompilering är orimlig"
-#: timezone/zic.c:610
+#: timezone/zic.c:652
#, c-format
msgid "%s: More than one -d option specified\n"
msgstr "%s: Flaggan -d given mer än en gång\n"
-#: timezone/zic.c:620
+#: timezone/zic.c:662
#, c-format
msgid "%s: More than one -l option specified\n"
msgstr "%s: Flaggan -l given mer än en gång\n"
-#: timezone/zic.c:630
+#: timezone/zic.c:672
#, c-format
msgid "%s: More than one -p option specified\n"
msgstr "%s: Flaggan -p given mer än en gång\n"
-#: timezone/zic.c:640
+#: timezone/zic.c:680
+#, c-format
+msgid "%s: More than one -t option specified\n"
+msgstr "%s: Flaggan -t given mer än en gång\n"
+
+#: timezone/zic.c:689
+msgid "-y is obsolescent"
+msgstr "-y är föråldrat"
+
+#: timezone/zic.c:693
#, c-format
msgid "%s: More than one -y option specified\n"
msgstr "%s: Flaggan -y given mer än en gång\n"
-#: timezone/zic.c:650
+#: timezone/zic.c:703
#, c-format
msgid "%s: More than one -L option specified\n"
msgstr "%s: Flaggan -L given mer än en gång\n"
-#: timezone/zic.c:659
+#: timezone/zic.c:712
msgid "-s ignored"
msgstr "-s ignoreras"
-#: timezone/zic.c:698
+#: timezone/zic.c:753
msgid "link to link"
msgstr "länk till länk"
-#: timezone/zic.c:701 timezone/zic.c:705
+#: timezone/zic.c:756 timezone/zic.c:760
msgid "command line"
msgstr "kommandorad"
-#: timezone/zic.c:721
+#: timezone/zic.c:776
msgid "empty file name"
msgstr "tomt filnamn"
-#: timezone/zic.c:724
+#: timezone/zic.c:779
#, c-format
msgid "file name '%s' begins with '/'"
msgstr "filnamnet â€%s†börjar med â€/â€"
-#: timezone/zic.c:734
+#: timezone/zic.c:789
#, c-format
msgid "file name '%s' contains '%.*s' component"
msgstr "filnamnet â€%s†innehÃ¥ller en komponent â€%.*sâ€"
-#: timezone/zic.c:740
+#: timezone/zic.c:795
#, c-format
msgid "file name '%s' component contains leading '-'"
msgstr "en komponent i filnamnet â€%s†innehÃ¥ller en inledande â€-â€"
-#: timezone/zic.c:743
+#: timezone/zic.c:798
#, c-format
msgid "file name '%s' contains overlength component '%.*s...'"
msgstr "filnamnet â€%s†innehÃ¥ller en för lÃ¥ng komponent â€%.*s…â€"
-#: timezone/zic.c:771
+#: timezone/zic.c:826
#, c-format
msgid "file name '%s' contains byte '%c'"
msgstr "filnamnet â€%s†innehÃ¥ller en byte â€%câ€"
-#: timezone/zic.c:772
+#: timezone/zic.c:827
#, c-format
msgid "file name '%s' contains byte '\\%o'"
msgstr "filnamnet â€%s†innehÃ¥ller en byte â€\\%oâ€"
-#: timezone/zic.c:842
+#: timezone/zic.c:897
#, c-format
msgid "%s: link from %s/%s failed: %s\n"
msgstr "%s: länk från %s/%s misslyckades: %s\n"
-#: timezone/zic.c:852 timezone/zic.c:1815
+#: timezone/zic.c:907 timezone/zic.c:1876
#, c-format
msgid "%s: Can't remove %s/%s: %s\n"
msgstr "%s: Kan inte ta bort %s/%s: %s\n"
-#: timezone/zic.c:874
+#: timezone/zic.c:931
#, c-format
msgid "symbolic link used because hard link failed: %s"
msgstr "symbolisk länk använd eftersom en hård länk misslyckades: %s"
-#: timezone/zic.c:882
+#: timezone/zic.c:939
#, c-format
msgid "%s: Can't read %s/%s: %s\n"
msgstr "%s: Kan inte läsa %s/%s: %s\n"
-#: timezone/zic.c:889 timezone/zic.c:1828
+#: timezone/zic.c:946 timezone/zic.c:1889
#, c-format
msgid "%s: Can't create %s/%s: %s\n"
msgstr "%s: Kan inte skapa %s/%s: %s\n"
-#: timezone/zic.c:898
+#: timezone/zic.c:955
#, c-format
msgid "copy used because hard link failed: %s"
msgstr "kopiering använd eftersom en hård länk misslyckades: %s"
-#: timezone/zic.c:901
+#: timezone/zic.c:958
#, c-format
msgid "copy used because symbolic link failed: %s"
msgstr "kopiering använd eftersom en symbolisk länk misslyckades: %s"
-#: timezone/zic.c:1013 timezone/zic.c:1015
+#: timezone/zic.c:1032 timezone/zic.c:1034
msgid "same rule name in multiple files"
msgstr "samma regelnamn i flera filer"
-#: timezone/zic.c:1056
-msgid "unruly zone"
-msgstr "besvärlig zon"
-
-#: timezone/zic.c:1063
+#: timezone/zic.c:1081
#, c-format
msgid "%s in ruleless zone"
msgstr "%s i zon utan regler"
-#: timezone/zic.c:1083
+#: timezone/zic.c:1101
msgid "standard input"
msgstr "standard in"
-#: timezone/zic.c:1088
+#: timezone/zic.c:1106
#, c-format
msgid "%s: Can't open %s: %s\n"
msgstr "%s: Kan inte öppna %s: %s\n"
-#: timezone/zic.c:1099
+#: timezone/zic.c:1117
msgid "line too long"
msgstr "för lång rad"
-#: timezone/zic.c:1119
+#: timezone/zic.c:1139
msgid "input line of unknown type"
msgstr "inrad av okänd typ"
-#: timezone/zic.c:1134
-#, c-format
-msgid "%s: Leap line in non leap seconds file %s"
-msgstr "%s: \"Leap\"-rad i fil %s som inte är skottsekundsfil"
-
-#: timezone/zic.c:1142 timezone/zic.c:1547 timezone/zic.c:1569
+#: timezone/zic.c:1158 timezone/zic.c:1593 timezone/zic.c:1615
#, c-format
msgid "%s: panic: Invalid l_value %d\n"
msgstr "%s: panik: Ogiltigt l_value %d\n"
-#: timezone/zic.c:1151
+#: timezone/zic.c:1167
msgid "expected continuation line not found"
msgstr "förväntad fortsättningsrad inte funnen"
-#: timezone/zic.c:1193 timezone/zic.c:2976
+#: timezone/zic.c:1203
+msgid "fractional seconds rejected by pre-2018 versions of zic"
+msgstr "bråkdelar av sekunder avvisas av versioner av zic före 2018"
+
+#: timezone/zic.c:1221 timezone/zic.c:3078
msgid "time overflow"
msgstr "för stort tidsvärde"
-#: timezone/zic.c:1198
+#: timezone/zic.c:1227
msgid "values over 24 hours not handled by pre-2007 versions of zic"
msgstr "värden större än 24 timmar hanteras inte av zic-versioner före 2007"
-#: timezone/zic.c:1209
+#: timezone/zic.c:1245
+msgid "invalid saved time"
+msgstr "ogiltig sparad tid"
+
+#: timezone/zic.c:1256
msgid "wrong number of fields on Rule line"
msgstr "fel antal fält på \"Rule\"-rad"
-#: timezone/zic.c:1213
-msgid "nameless rule"
-msgstr "namnlös regel"
-
-#: timezone/zic.c:1218
-msgid "invalid saved time"
-msgstr "ogiltig sparad tid"
+#: timezone/zic.c:1265
+#, c-format
+msgid "Invalid rule name \"%s\""
+msgstr "Ogiltigt regelnamn â€%sâ€"
-#: timezone/zic.c:1235
+#: timezone/zic.c:1287
msgid "wrong number of fields on Zone line"
msgstr "fel antal fält på \"Zone\"-rad"
-#: timezone/zic.c:1240
+#: timezone/zic.c:1292
#, c-format
msgid "\"Zone %s\" line and -l option are mutually exclusive"
msgstr "\"Zone %s\"-rad och flaggan -l är ömsesidigt uteslutande"
-#: timezone/zic.c:1246
+#: timezone/zic.c:1298
#, c-format
msgid "\"Zone %s\" line and -p option are mutually exclusive"
msgstr "\"Zone %s\"-rad och flaggan -p är ömsesidigt uteslutande"
-#: timezone/zic.c:1253
+#: timezone/zic.c:1305
#, c-format
msgid "duplicate zone name %s (file \"%s\", line %<PRIdMAX>)"
msgstr "dubblerat zonnamn %s (filen â€%sâ€, rad %<PRIdMAX>)"
-#: timezone/zic.c:1267
+#: timezone/zic.c:1319
msgid "wrong number of fields on Zone continuation line"
msgstr "fel antal fält på \"Zone\"-fortsättningsrad"
-#: timezone/zic.c:1307
+#: timezone/zic.c:1359
msgid "invalid UT offset"
msgstr "ogiltigt UT-tillägg"
-#: timezone/zic.c:1311
+#: timezone/zic.c:1363
msgid "invalid abbreviation format"
msgstr "ogiltigt förkortningsformat"
-#: timezone/zic.c:1320
+#: timezone/zic.c:1372
#, c-format
msgid "format '%s' not handled by pre-2015 versions of zic"
msgstr "formatet â€%s†hanteras inte av versioner av zic före 2015"
-#: timezone/zic.c:1347
+#: timezone/zic.c:1399
msgid "Zone continuation line end time is not after end time of previous line"
msgstr "Zon-fortsättningsradens sluttid är inte efter sluttiden på föregående rad"
-#: timezone/zic.c:1374
+#: timezone/zic.c:1426
msgid "wrong number of fields on Leap line"
msgstr "fel antal fält på \"Leap\"-rad"
-#: timezone/zic.c:1383
+#: timezone/zic.c:1435
msgid "invalid leaping year"
msgstr "ogiltigt skottår"
-#: timezone/zic.c:1403 timezone/zic.c:1501
+#: timezone/zic.c:1455 timezone/zic.c:1547
msgid "invalid month name"
msgstr "ogiltigt månadsnamn"
-#: timezone/zic.c:1416 timezone/zic.c:1614 timezone/zic.c:1628
+#: timezone/zic.c:1468 timezone/zic.c:1663 timezone/zic.c:1677
msgid "invalid day of month"
msgstr "ogiltig dag i månaden"
-#: timezone/zic.c:1421
+#: timezone/zic.c:1473
msgid "time too small"
msgstr "tid för kort"
-#: timezone/zic.c:1425
+#: timezone/zic.c:1477
msgid "time too large"
msgstr "tid för lång"
-#: timezone/zic.c:1429 timezone/zic.c:1530
+#: timezone/zic.c:1481 timezone/zic.c:1576
msgid "invalid time of day"
msgstr "ogiltig tid på dagen"
-#: timezone/zic.c:1448
+#: timezone/zic.c:1494
msgid "illegal CORRECTION field on Leap line"
msgstr "otillåtet \"CORRECTION\"-fält på \"Leap\"-rad"
-#: timezone/zic.c:1453
+#: timezone/zic.c:1499
msgid "illegal Rolling/Stationary field on Leap line"
msgstr "otillåtet \"Rolling/Stationary\"-fält på \"Leap\"-rad"
-#: timezone/zic.c:1459
-msgid "leap second precedes Big Bang"
-msgstr "skottsekund föregår Big Bang"
+#: timezone/zic.c:1505
+msgid "leap second precedes Epoch"
+msgstr "skottsekund föregår epoken"
-#: timezone/zic.c:1472
+#: timezone/zic.c:1518
msgid "wrong number of fields on Link line"
msgstr "fel antal fält på \"Link\"-rad"
-#: timezone/zic.c:1476
+#: timezone/zic.c:1522
msgid "blank FROM field on Link line"
msgstr "tomt \"FROM\"-fält på \"Link\"-rad"
-#: timezone/zic.c:1551
+#: timezone/zic.c:1597
msgid "invalid starting year"
msgstr "ogiltigt startår"
-#: timezone/zic.c:1573
+#: timezone/zic.c:1619
msgid "invalid ending year"
msgstr "ogiltigt slutår"
-#: timezone/zic.c:1577
+#: timezone/zic.c:1623
msgid "starting year greater than ending year"
msgstr "startår är större än slutår"
-#: timezone/zic.c:1584
+#: timezone/zic.c:1630
msgid "typed single year"
msgstr "satte typ på endast ett år"
-#: timezone/zic.c:1619
+#: timezone/zic.c:1633
+#, c-format
+msgid "year type \"%s\" is obsolete; use \"-\" instead"
+msgstr "Ã¥r av typ â€%s†är förÃ¥ldrat, använd â€-†istället"
+
+#: timezone/zic.c:1668
msgid "invalid weekday name"
msgstr "ogiltigt veckodagsnamn"
-#: timezone/zic.c:1743
+#: timezone/zic.c:1800
#, c-format
msgid "reference clients mishandle more than %d transition times"
msgstr "referensklienter hanterar fler än %d övergångstider felaktigt"
-#: timezone/zic.c:1747
+#: timezone/zic.c:1804
msgid "pre-2014 clients may mishandle more than 1200 transition times"
msgstr "klienter från före 2014 kan hantera fler än 1200 övergångstider felaktigt"
-#: timezone/zic.c:1858
+#: timezone/zic.c:1920
msgid "too many transition times"
msgstr "för många övergångstider"
-#: timezone/zic.c:2047
+#: timezone/zic.c:2107
#, c-format
-msgid "%%z UTC offset magnitude exceeds 99:59:59"
-msgstr "%%z storleken på avståndet från UTC överstiger 99.59.59"
+msgid "%%z UT offset magnitude exceeds 99:59:59"
+msgstr "%%z storleken på avståndet från UT överstiger 99.59.59"
-#: timezone/zic.c:2424
+#: timezone/zic.c:2488
msgid "no POSIX environment variable for zone"
msgstr "ingen POSIX-miljövariabel för zon"
-#: timezone/zic.c:2430
+#: timezone/zic.c:2494
#, c-format
msgid "%s: pre-%d clients may mishandle distant timestamps"
msgstr "%s: klienter före %d kan hantera avlägsna tidsstämplar felaktigt"
-#: timezone/zic.c:2566
+#: timezone/zic.c:2631
msgid "two rules for same instant"
msgstr "två regler för samma tillfälle"
-#: timezone/zic.c:2627
+#: timezone/zic.c:2696
msgid "can't determine time zone abbreviation to use just after until time"
msgstr "kan inte avgöra tidszonsförkortning att använda just efter \"until\"-tid"
-#: timezone/zic.c:2725
+#: timezone/zic.c:2785
msgid "too many local time types"
msgstr "för många lokala tidstyper"
-#: timezone/zic.c:2729
+#: timezone/zic.c:2789
msgid "UT offset out of range"
msgstr "UT-offset utanför giltigt intervall"
-#: timezone/zic.c:2753
+#: timezone/zic.c:2813
msgid "too many leap seconds"
msgstr "för många skottsekunder"
-#: timezone/zic.c:2759
-msgid "repeated leap second moment"
-msgstr "upprepat skottsekundstillfälle"
+#: timezone/zic.c:2844
+msgid "Leap seconds too close together"
+msgstr "Skottsekunder är för nära ihop"
-#: timezone/zic.c:2830
+#: timezone/zic.c:2891
msgid "Wild result from command execution"
msgstr "Vilt resultat från kommandokörning"
-#: timezone/zic.c:2831
+#: timezone/zic.c:2892
#, c-format
msgid "%s: command was '%s', result was %d\n"
msgstr "%s: kommandot var \"%s\", resultatet blev %d\n"
-#: timezone/zic.c:2961
+#: timezone/zic.c:2998
+#, c-format
+msgid "\"%s\" is undocumented; use \"last%s\" instead"
+msgstr "â€%s†är odokumenterad; använd â€last%s†istället"
+
+#: timezone/zic.c:3029
+#, c-format
+msgid "\"%s\" is ambiguous in pre-2017c zic"
+msgstr "â€%s†är tvetidyg i zic före 2017c"
+
+#: timezone/zic.c:3063
msgid "Odd number of quotation marks"
msgstr "Ojämnt antal citationstecken"
-#: timezone/zic.c:3046
+#: timezone/zic.c:3157
msgid "use of 2/29 in non leap-year"
msgstr "använder 29/2 i icke-skottår"
-#: timezone/zic.c:3081
+#: timezone/zic.c:3192
msgid "rule goes past start/end of month; will not work with pre-2004 versions of zic"
msgstr "regeln går utanför start/slut på månad; fungerar inte med versioner av zic före 2004"
-#: timezone/zic.c:3108
+#: timezone/zic.c:3219
msgid "time zone abbreviation has fewer than 3 characters"
msgstr "tidszonsförkortning har färre än 3 tecken"
-#: timezone/zic.c:3110
+#: timezone/zic.c:3221
msgid "time zone abbreviation has too many characters"
msgstr "tidszonsförkortning har för många tecken"
-#: timezone/zic.c:3112
+#: timezone/zic.c:3223
msgid "time zone abbreviation differs from POSIX standard"
msgstr "tidszonsförkortning skiljer sig från POSIX-standarden"
-#: timezone/zic.c:3118
+#: timezone/zic.c:3229
msgid "too many, or too long, time zone abbreviations"
msgstr "för många eller för långa tidszonsförkortningar"
-#: timezone/zic.c:3161
+#: timezone/zic.c:3275
#, c-format
msgid "%s: Can't create directory %s: %s"
msgstr "%s: Kan inte skapa katalog %s: %s"
diff --git a/po/tr.po b/po/tr.po
index f480517e18..2fc1ce05a5 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -8,7 +8,7 @@
msgid ""
msgstr ""
"Project-Id-Version: libc 2.25-pre1\n"
-"POT-Creation-Date: 2018-07-26 22:19-0400\n"
+"POT-Creation-Date: 2019-07-18 13:28-0400\n"
"PO-Revision-Date: 2017-01-11 17:27+0530\n"
"Last-Translator: Mehmet Kececi <mkececi@mehmetkececi.com>\n"
"Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
@@ -149,10 +149,10 @@ msgstr ""
"[ÇIKTI-DOSYASI [GİRDİ-DOSYASI]...]"
#: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:308
-#: elf/pldd.c:252 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
-#: iconv/iconvconfig.c:379 locale/programs/locale.c:275
-#: locale/programs/localedef.c:427 login/programs/pt_chown.c:89
-#: malloc/memusagestat.c:563 nss/getent.c:933 nss/makedb.c:369
+#: elf/pldd.c:247 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
+#: iconv/iconvconfig.c:379 locale/programs/locale.c:276
+#: locale/programs/localedef.c:437 login/programs/pt_chown.c:89
+#: malloc/memusagestat.c:563 nss/getent.c:953 nss/makedb.c:369
#: posix/getconf.c:503 sysdeps/unix/sysv/linux/lddlibc4.c:61
#, fuzzy, c-format
#| msgid ""
@@ -167,11 +167,11 @@ msgstr ""
"Çeviri hatalarını <nilgun (at) buguner.name.tr> adresine bildiriniz.\n"
#: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64
-#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75
+#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:263 elf/sotruss.sh:75
#: elf/sprof.c:389 iconv/iconv_prog.c:422 iconv/iconvconfig.c:396
-#: locale/programs/locale.c:292 locale/programs/localedef.c:453
+#: locale/programs/locale.c:293 locale/programs/localedef.c:463
#: login/programs/pt_chown.c:63 malloc/memusage.sh:71
-#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:87 nss/makedb.c:385
+#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:88 nss/makedb.c:385
#: posix/getconf.c:485 sysdeps/unix/sysv/linux/lddlibc4.c:68
#, c-format
msgid ""
@@ -185,10 +185,10 @@ msgstr ""
"UYGUNLUĞU için bile garanti verilmez.\n"
#: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68
-#: elf/ldconfig.c:329 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:427
-#: iconv/iconvconfig.c:401 locale/programs/locale.c:297
-#: locale/programs/localedef.c:458 malloc/memusage.sh:75
-#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:92 nss/makedb.c:390
+#: elf/ldconfig.c:329 elf/pldd.c:268 elf/sprof.c:395 iconv/iconv_prog.c:427
+#: iconv/iconvconfig.c:401 locale/programs/locale.c:298
+#: locale/programs/localedef.c:468 malloc/memusage.sh:75
+#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:93 nss/makedb.c:390
#: posix/getconf.c:490
#, c-format
msgid "Written by %s.\n"
@@ -259,21 +259,21 @@ msgstr "`%s' çıktı dosyası açılamıyor"
msgid "invalid escape sequence"
msgstr "geçersiz escape dizisi"
-#: catgets/gencat.c:1209
+#: catgets/gencat.c:1211
msgid "unterminated message"
msgstr "sonlandırılmamış ileti"
-#: catgets/gencat.c:1233
+#: catgets/gencat.c:1235
#, c-format
msgid "while opening old catalog file"
msgstr "eski katalog dosyası açılırken"
-#: catgets/gencat.c:1324
+#: catgets/gencat.c:1326
#, c-format
msgid "conversion modules not available"
msgstr "dönüşüm modülleri yok"
-#: catgets/gencat.c:1350
+#: catgets/gencat.c:1352
#, c-format
msgid "cannot determine escape character"
msgstr "öncelem karakteri saptanamıyor"
@@ -428,7 +428,7 @@ msgstr "Bilinmeyen iÅŸletim sistemi"
msgid ", OS ABI: %s %d.%d.%d"
msgstr ", OS ABI: %s %d.%d.%d"
-#: elf/cache.c:163 elf/ldconfig.c:1332
+#: elf/cache.c:163 elf/ldconfig.c:1333
#, c-format
msgid "Can't open cache file %s\n"
msgstr "Arabellek dosyası %s açılamıyor\n"
@@ -438,38 +438,38 @@ msgstr "Arabellek dosyası %s açılamıyor\n"
msgid "mmap of cache file failed.\n"
msgstr "arabellek dosyasının mmap'lenmesi başarısız\n"
-#: elf/cache.c:181 elf/cache.c:195
+#: elf/cache.c:181 elf/cache.c:195 elf/cache.c:205
#, c-format
msgid "File is not a cache file.\n"
msgstr "Bir arabellek dosyası değil.\n"
-#: elf/cache.c:228 elf/cache.c:238
+#: elf/cache.c:233 elf/cache.c:243
#, c-format
msgid "%d libs found in cache `%s'\n"
msgstr "%d kitaplık, `%s' arabelleğinde bulundu\n"
-#: elf/cache.c:432
+#: elf/cache.c:437
#, c-format
msgid "Can't create temporary cache file %s"
msgstr "Geçici arabellek dosyası %s oluşturulamıyor"
-#: elf/cache.c:440 elf/cache.c:450 elf/cache.c:454 elf/cache.c:458
-#: elf/cache.c:468
+#: elf/cache.c:445 elf/cache.c:455 elf/cache.c:459 elf/cache.c:463
+#: elf/cache.c:473
#, c-format
msgid "Writing of cache data failed"
msgstr "Arabellek verisini yazmada hata"
-#: elf/cache.c:463
+#: elf/cache.c:468
#, c-format
msgid "Changing access rights of %s to %#o failed"
msgstr "%s erişim hakları %#o olarak değiştirilemedi"
-#: elf/cache.c:472
+#: elf/cache.c:477
#, c-format
msgid "Renaming of %s to %s failed"
msgstr "%s'in ismi %s olarak deÄŸiÅŸtirilemedi"
-#: elf/dl-close.c:399 elf/dl-open.c:420
+#: elf/dl-close.c:399 elf/dl-open.c:424
msgid "cannot create scope list"
msgstr "etki alanı listesi oluşturulamıyor"
@@ -552,121 +552,123 @@ msgstr "dosya arama yolu dizisi oluşturulamıyor"
msgid "cannot stat shared object"
msgstr "paylaşımlı nesne durumlanamıyor"
-#: elf/dl-load.c:960
-msgid "cannot open zero fill device"
-msgstr "sıfırlar içeren aygıt açılamaz"
-
-#: elf/dl-load.c:1007 elf/dl-load.c:2203
+#: elf/dl-load.c:992 elf/dl-load.c:2198
msgid "cannot create shared object descriptor"
msgstr "paylaşımlı nesne tanımlayıcı oluşturulamıyor"
-#: elf/dl-load.c:1026 elf/dl-load.c:1560 elf/dl-load.c:1673
+#: elf/dl-load.c:1011 elf/dl-load.c:1555 elf/dl-load.c:1668
msgid "cannot read file data"
msgstr "dosya verisi okunamıyor"
-#: elf/dl-load.c:1072
+#: elf/dl-load.c:1057
msgid "ELF load command alignment not page-aligned"
msgstr "ELF yükleme komutu hizalaması sayfa-hizalamalı değil"
-#: elf/dl-load.c:1079
+#: elf/dl-load.c:1064
msgid "ELF load command address/offset not properly aligned"
msgstr "ELF yükleme komutu adresi/başvurusu gereği gibi hizalanamıyor"
-#: elf/dl-load.c:1161
+#: elf/dl-load.c:1146
#, fuzzy
#| msgid "cannot restore segment prot after reloc"
msgid "cannot process note segment"
msgstr "reloc işleminden sonra prot segmanı eski haline getirilemedi"
-#: elf/dl-load.c:1172
+#: elf/dl-load.c:1157
msgid "object file has no loadable segments"
msgstr "nesne dosyasının yüklenebilir segmanı yok"
-#: elf/dl-load.c:1181 elf/dl-load.c:1652
+#: elf/dl-load.c:1170 elf/dl-load.c:1647
msgid "cannot dynamically load executable"
msgstr "çalıştırılabilir dosya dinamik olarak yüklenemiyor"
-#: elf/dl-load.c:1202
+#: elf/dl-load.c:1191
msgid "object file has no dynamic section"
msgstr "nesne dosyasının dinamik bölümü yok"
-#: elf/dl-load.c:1225
+#: elf/dl-load.c:1218
+#, fuzzy
+#| msgid "cannot dynamically load executable"
+msgid "cannot dynamically load position-independent executable"
+msgstr "çalıştırılabilir dosya dinamik olarak yüklenemiyor"
+
+#: elf/dl-load.c:1220
msgid "shared object cannot be dlopen()ed"
msgstr "paylaşımlı nesne dlopen()'lanamıyor"
-#: elf/dl-load.c:1238
+#: elf/dl-load.c:1233
msgid "cannot allocate memory for program header"
msgstr "uygulama başlığı için bellek ayrılamadı"
-#: elf/dl-load.c:1271 elf/dl-load.h:130
+#: elf/dl-load.c:1266 elf/dl-load.h:130
msgid "cannot change memory protections"
msgstr "bellek korumaları değiştirilemiyor"
-#: elf/dl-load.c:1291
+#: elf/dl-load.c:1286
msgid "cannot enable executable stack as shared object requires"
msgstr "paylaşımlı nesnenin gerektirdiği çalıştırılabilir yığıt etkinleştirilemiyor"
-#: elf/dl-load.c:1304
+#: elf/dl-load.c:1299
msgid "cannot close file descriptor"
msgstr "dosya tanıtıcı kapatılamıyor"
-#: elf/dl-load.c:1560
+#: elf/dl-load.c:1555
msgid "file too short"
msgstr "dosya çok küçük"
-#: elf/dl-load.c:1595
+#: elf/dl-load.c:1590
msgid "invalid ELF header"
msgstr "ELF başlığı geçersiz"
-#: elf/dl-load.c:1607
+#: elf/dl-load.c:1602
msgid "ELF file data encoding not big-endian"
msgstr "ELF dosyası verisinin kodlaması en-kıymetli-bayt-ilk (big-endian) değil"
-#: elf/dl-load.c:1609
+#: elf/dl-load.c:1604
msgid "ELF file data encoding not little-endian"
msgstr "ELF dosyası verisinin kodlaması en-kıymetli-bayt-son (little-endian) değil"
-#: elf/dl-load.c:1613
+#: elf/dl-load.c:1608
msgid "ELF file version ident does not match current one"
msgstr "ELF dosyası sürüm kimliği mevcut biriyle eşleşmiyor"
-#: elf/dl-load.c:1617
+#: elf/dl-load.c:1612
msgid "ELF file OS ABI invalid"
msgstr "ELF dosyası OS ABI geçersiz"
-#: elf/dl-load.c:1620
+#: elf/dl-load.c:1615
msgid "ELF file ABI version invalid"
msgstr "ELF dosyası ABI sürümü geçersiz"
-#: elf/dl-load.c:1623
+#: elf/dl-load.c:1618
msgid "nonzero padding in e_ident"
msgstr "e_ident içinde sıfır olmayan dolgu"
-#: elf/dl-load.c:1626
+#: elf/dl-load.c:1621
msgid "internal error"
msgstr "iç hata"
-#: elf/dl-load.c:1633
+#: elf/dl-load.c:1628
msgid "ELF file version does not match current one"
msgstr "ELF dosyası sürümü mevcut biriyle eşleşmiyor"
-#: elf/dl-load.c:1641
+#: elf/dl-load.c:1636
msgid "only ET_DYN and ET_EXEC can be loaded"
msgstr "sadece ET_DYN ve ET_EXEC yüklü olabilir"
-#: elf/dl-load.c:1657
+#: elf/dl-load.c:1652
msgid "ELF file's phentsize not the expected size"
msgstr "ELF dosyasının phent uzunluğu beklenen uzunlukta değil"
-#: elf/dl-load.c:2222
+#: elf/dl-load.c:2217
msgid "wrong ELF class: ELFCLASS64"
msgstr "yanlış ELF sınıfı: ELFCLASS64"
-#: elf/dl-load.c:2223
+#: elf/dl-load.c:2218
msgid "wrong ELF class: ELFCLASS32"
msgstr "yanlış ELF sınıfı: ELFCLASS32"
-#: elf/dl-load.c:2226
+#: elf/dl-load.c:2221
msgid "cannot open shared object file"
msgstr "paylaşımlı nesne dosyası açılamıyor"
@@ -678,11 +680,7 @@ msgstr "parça paylaşımlı nesneden eşleştirilemedi"
msgid "cannot map zero-fill pages"
msgstr "sıfırlar içeren sayfalar eşleştirilemez"
-#: elf/dl-lookup.c:835
-msgid "relocation error"
-msgstr "yeniden konumlama hatası"
-
-#: elf/dl-lookup.c:858
+#: elf/dl-lookup.c:830
msgid "symbol lookup error"
msgstr "simge arama hatası"
@@ -690,19 +688,19 @@ msgstr "simge arama hatası"
msgid "cannot extend global scope"
msgstr "genel kapsam geniÅŸletilemiyor"
-#: elf/dl-open.c:470
+#: elf/dl-open.c:474
msgid "TLS generation counter wrapped! Please report this."
msgstr "TLS üretecinin sayacı başa döndü! Bunu lütfen bildirin."
-#: elf/dl-open.c:534
+#: elf/dl-open.c:538
msgid "invalid mode for dlopen()"
msgstr "dlopen() için kip geçersiz"
-#: elf/dl-open.c:551
+#: elf/dl-open.c:555
msgid "no more namespaces available for dlmopen()"
msgstr "dlmopen() için artık isim alanı kalmadı"
-#: elf/dl-open.c:575
+#: elf/dl-open.c:579
msgid "invalid target namespace in dlmopen()"
msgstr "dlmopen() için hedef isim alanı geçersiz"
@@ -710,20 +708,20 @@ msgstr "dlmopen() için hedef isim alanı geçersiz"
msgid "cannot allocate memory in static TLS block"
msgstr "durağan TLS bloğunda bellek ayrılamıyor"
-#: elf/dl-reloc.c:205
+#: elf/dl-reloc.c:213
msgid "cannot make segment writable for relocation"
msgstr "yeniden konumlama için parça yazılabilir yapılamıyor"
-#: elf/dl-reloc.c:276
+#: elf/dl-reloc.c:272
#, c-format
msgid "%s: out of memory to store relocation results for %s\n"
msgstr "%s: %s için yeniden ayırma işleminin sonuçlarını saklamak için bellek yetersiz\n"
-#: elf/dl-reloc.c:292
+#: elf/dl-reloc.c:288
msgid "cannot restore segment prot after reloc"
msgstr "reloc işleminden sonra prot segmanı eski haline getirilemedi"
-#: elf/dl-reloc.c:323
+#: elf/dl-reloc.c:319
msgid "cannot apply additional memory protection after relocation"
msgstr "yeniden ayırma işleminden sonra ek bellek koruması uygulanamaz"
@@ -945,22 +943,22 @@ msgstr "-r kullanılırken yapılandırma dosyası için soyut dosya ismi gereki
msgid "memory exhausted"
msgstr "bellek tükendi"
-#: elf/ldconfig.c:1233
+#: elf/ldconfig.c:1234
#, c-format
msgid "%s:%u: cannot read directory %s"
msgstr "%s:%u: %s dizini okunamıyor"
-#: elf/ldconfig.c:1281
+#: elf/ldconfig.c:1282
#, c-format
msgid "relative path `%s' used to build cache"
msgstr "arabelleğin oluşturulduğu göreli yol `%s'"
-#: elf/ldconfig.c:1311
+#: elf/ldconfig.c:1312
#, c-format
msgid "Can't chdir to /"
msgstr "/ dizinine geçilemiyor"
-#: elf/ldconfig.c:1352
+#: elf/ldconfig.c:1353
#, c-format
msgid "Can't open cache file directory %s\n"
msgstr "Arabellek dosyasının dizini %s açılamıyor\n"
@@ -1044,109 +1042,115 @@ msgstr "bilinmeyen bir çıkış koduyla durdu"
msgid "error: you do not have read permission for"
msgstr "hata: bunun için okuma yetkiniz yok:"
-#: elf/pldd-xx.c:105
+#: elf/pldd-xx.c:102
#, fuzzy, c-format
#| msgid "cannot read header from `%s'"
msgid "cannot find program header of process"
msgstr "başlık `%s'den okunamıyor"
-#: elf/pldd-xx.c:110
+#: elf/pldd-xx.c:106
#, fuzzy, c-format
#| msgid "cannot read header"
msgid "cannot read program header"
msgstr "başlık okunamıyor"
-#: elf/pldd-xx.c:135
+#: elf/pldd-xx.c:128
#, fuzzy, c-format
#| msgid "object file has no dynamic section"
msgid "cannot read dynamic section"
msgstr "nesne dosyasının dinamik bölümü yok"
-#: elf/pldd-xx.c:147
+#: elf/pldd-xx.c:137
#, fuzzy, c-format
#| msgid "cannot read header"
msgid "cannot read r_debug"
msgstr "başlık okunamıyor"
-#: elf/pldd-xx.c:167
+#: elf/pldd-xx.c:154
#, fuzzy, c-format
#| msgid "cannot read archive header"
msgid "cannot read program interpreter"
msgstr "arşiv başlığı okunamıyor"
-#: elf/pldd-xx.c:197
+#: elf/pldd-xx.c:183
#, fuzzy, c-format
#| msgid "cannot read file data"
msgid "cannot read link map"
msgstr "dosya verisi okunamıyor"
-#: elf/pldd-xx.c:209
+#: elf/pldd-xx.c:190
#, fuzzy, c-format
#| msgid "cannot read header"
msgid "cannot read object name"
msgstr "başlık okunamıyor"
-#: elf/pldd-xx.c:219
+#: elf/pldd-xx.c:197
#, fuzzy, c-format
#| msgid "cannot allocate memory for program header"
msgid "cannot allocate buffer for object name"
msgstr "uygulama başlığı için bellek ayrılamadı"
-#: elf/pldd.c:64
+#: elf/pldd.c:58
msgid "List dynamic shared objects loaded into process."
msgstr "İşlemeye yüklenen dinamik paylaşılan nesneleri listeleyin."
-#: elf/pldd.c:68
+#: elf/pldd.c:62
msgid "PID"
msgstr "PID"
-#: elf/pldd.c:100
+#: elf/pldd.c:89
#, c-format
msgid "Exactly one parameter with process ID required.\n"
msgstr "Ä°ÅŸlem ID'sine sahip bir parametre gereklidir.\n"
-#: elf/pldd.c:112
+#: elf/pldd.c:103
#, fuzzy, c-format
#| msgid "invalid pointer size"
msgid "invalid process ID '%s'"
msgstr "imleyici uzunluğu geçersiz"
-#: elf/pldd.c:120
+#: elf/pldd.c:111
#, fuzzy, c-format
#| msgid "cannot open `%s'"
msgid "cannot open %s"
msgstr "`%s' açılamıyor"
-#: elf/pldd.c:152
+#: elf/pldd.c:142
#, fuzzy, c-format
#| msgid "cannot open `%s'"
msgid "cannot open %s/task"
msgstr "`%s' açılamıyor"
-#: elf/pldd.c:155
+#: elf/pldd.c:145
#, fuzzy, c-format
#| msgid "cannot create searchlist"
msgid "cannot prepare reading %s/task"
msgstr "arama listesi oluşturulamıyor"
-#: elf/pldd.c:168
+#: elf/pldd.c:158
#, fuzzy, c-format
#| msgid "invalid ELF header"
msgid "invalid thread ID '%s'"
msgstr "ELF başlığı geçersiz"
-#: elf/pldd.c:179
+#: elf/pldd.c:169
#, fuzzy, c-format
#| msgid "cannot find C preprocessor: %s \n"
msgid "cannot attach to process %lu"
msgstr "C ön işlemci bulunamıyor: %s \n"
-#: elf/pldd.c:294
+#: elf/pldd.c:184
+#, fuzzy, c-format
+#| msgid "invalid saved time"
+msgid "no valid %s/task entries"
+msgstr "kazanılmış zaman geçersiz"
+
+#: elf/pldd.c:290
#, c-format
msgid "cannot get information about process %lu"
msgstr "%lu işlemi hakkında bilgi edinemiyorum"
-#: elf/pldd.c:307
+#: elf/pldd.c:303
#, c-format
msgid "process %lu is no ELF program"
msgstr "işlem %lu ELF programı değildir"
@@ -1463,7 +1467,7 @@ msgstr "Bilgi:"
msgid "list all known coded character sets"
msgstr "tüm bilinen kodlu karakter kümelerini listeler"
-#: iconv/iconv_prog.c:64 locale/programs/localedef.c:120
+#: iconv/iconv_prog.c:64 locale/programs/localedef.c:124
msgid "Output control:"
msgstr "Çıktı kontrolu:"
@@ -1472,8 +1476,8 @@ msgid "omit invalid characters from output"
msgstr "geçersiz karakterleri çıktıya yazmaz"
#: iconv/iconv_prog.c:66 iconv/iconvconfig.c:128
-#: locale/programs/localedef.c:113 locale/programs/localedef.c:115
-#: locale/programs/localedef.c:117 locale/programs/localedef.c:144
+#: locale/programs/localedef.c:117 locale/programs/localedef.c:119
+#: locale/programs/localedef.c:121 locale/programs/localedef.c:150
#: malloc/memusagestat.c:56
#, fuzzy
#| msgid "[FILE]"
@@ -1582,7 +1586,7 @@ msgstr "Hızlı yükleme iconv modülü yapılandırma dosyası oluşturulur."
msgid "[DIR...]"
msgstr "[DÄ°ZÄ°N...]"
-#: iconv/iconvconfig.c:126 locale/programs/localedef.c:123
+#: iconv/iconvconfig.c:126 locale/programs/localedef.c:129
msgid "PATH"
msgstr "PATH"
@@ -1769,14 +1773,14 @@ msgstr "tuş kilitlemeli karakter kümeleri desteklenmiyor"
#: locale/programs/charmap.c:503 locale/programs/charmap.c:557
#: locale/programs/charmap.c:589 locale/programs/charmap.c:683
-#: locale/programs/charmap.c:738 locale/programs/charmap.c:779
-#: locale/programs/charmap.c:820
+#: locale/programs/charmap.c:739 locale/programs/charmap.c:780
+#: locale/programs/charmap.c:821
#, c-format
msgid "syntax error in %s definition: %s"
msgstr "%s tanımında sözdizimi hatası: %s"
#: locale/programs/charmap.c:504 locale/programs/charmap.c:684
-#: locale/programs/charmap.c:780 locale/programs/repertoire.c:229
+#: locale/programs/charmap.c:781 locale/programs/repertoire.c:229
msgid "no symbolic name given"
msgstr "sembolik isim verilmemiÅŸ"
@@ -1792,14 +1796,14 @@ msgstr "karakter kodlamada bayt sayısı çok az"
msgid "too many bytes in character encoding"
msgstr "karakter kodlamada bayt sayısı çok fazla"
-#: locale/programs/charmap.c:591 locale/programs/charmap.c:739
-#: locale/programs/charmap.c:822 locale/programs/repertoire.c:295
+#: locale/programs/charmap.c:591 locale/programs/charmap.c:740
+#: locale/programs/charmap.c:823 locale/programs/repertoire.c:295
msgid "no symbolic name given for end of range"
msgstr "kapsam sonu için sembolik isim verilmemiş"
#: locale/programs/charmap.c:615 locale/programs/ld-address.c:524
#: locale/programs/ld-collate.c:2616 locale/programs/ld-collate.c:3774
-#: locale/programs/ld-ctype.c:2117 locale/programs/ld-ctype.c:2829
+#: locale/programs/ld-ctype.c:2118 locale/programs/ld-ctype.c:2830
#: locale/programs/ld-identification.c:397
#: locale/programs/ld-measurement.c:213 locale/programs/ld-messages.c:295
#: locale/programs/ld-monetary.c:748 locale/programs/ld-name.c:262
@@ -1814,58 +1818,58 @@ msgstr "%1$s: tanım `END %1$s' ile bitmiyor"
msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
msgstr "CHARMAP tanımını sadece genişlik tanımları izleyebilir"
-#: locale/programs/charmap.c:656 locale/programs/charmap.c:719
+#: locale/programs/charmap.c:656 locale/programs/charmap.c:720
#, c-format
msgid "value for %s must be an integer"
msgstr "%s için değer bir tamsayı olmalı"
-#: locale/programs/charmap.c:847
+#: locale/programs/charmap.c:848
#, c-format
msgid "%s: error in state machine"
msgstr "%s: durum motorunda hata"
-#: locale/programs/charmap.c:855 locale/programs/ld-address.c:540
+#: locale/programs/charmap.c:856 locale/programs/ld-address.c:540
#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967
-#: locale/programs/ld-ctype.c:2114 locale/programs/ld-ctype.c:2846
+#: locale/programs/ld-ctype.c:2115 locale/programs/ld-ctype.c:2847
#: locale/programs/ld-identification.c:413
#: locale/programs/ld-measurement.c:229 locale/programs/ld-messages.c:311
#: locale/programs/ld-monetary.c:764 locale/programs/ld-name.c:278
#: locale/programs/ld-numeric.c:341 locale/programs/ld-paper.c:228
#: locale/programs/ld-telephone.c:292 locale/programs/ld-time.c:990
-#: locale/programs/locfile.c:997 locale/programs/repertoire.c:323
+#: locale/programs/locfile.c:1010 locale/programs/repertoire.c:323
#, c-format
msgid "%s: premature end of file"
msgstr "%s: dosya sonu erken geldi"
-#: locale/programs/charmap.c:874 locale/programs/charmap.c:885
+#: locale/programs/charmap.c:875 locale/programs/charmap.c:886
#, c-format
msgid "unknown character `%s'"
msgstr "`%s' karakteri bilinmiyor"
-#: locale/programs/charmap.c:893
+#: locale/programs/charmap.c:894
#, c-format
msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d"
msgstr "aralığın başındaki ve sonundaki bayt dizilerideki baytların sayısı aynı değil: %d ve %d"
-#: locale/programs/charmap.c:998 locale/programs/ld-collate.c:2893
+#: locale/programs/charmap.c:999 locale/programs/ld-collate.c:2893
#: locale/programs/repertoire.c:418
msgid "invalid names for character range"
msgstr "karakter kapsamı için geçersiz isimler"
-#: locale/programs/charmap.c:1010 locale/programs/repertoire.c:430
+#: locale/programs/charmap.c:1011 locale/programs/repertoire.c:430
msgid "hexadecimal range format should use only capital characters"
msgstr "onaltılık kapsam biçimi sadece büyük harfleri kullanacaktır"
-#: locale/programs/charmap.c:1028 locale/programs/repertoire.c:448
+#: locale/programs/charmap.c:1029 locale/programs/repertoire.c:448
#, c-format
msgid "<%s> and <%s> are invalid names for range"
msgstr "<%s> ve <%s> kapsam için geçersiz isimler"
-#: locale/programs/charmap.c:1034 locale/programs/repertoire.c:455
+#: locale/programs/charmap.c:1035 locale/programs/repertoire.c:455
msgid "upper limit in range is smaller than lower limit"
msgstr "aralığın üst sınırı alt sınırdan küçük"
-#: locale/programs/charmap.c:1092
+#: locale/programs/charmap.c:1093
msgid "resulting bytes for range not representable."
msgstr "sonuçlanan baytlar kapsam için gösterilebilir değil."
@@ -1934,7 +1938,7 @@ msgid "%s: numeric country code `%d' not valid"
msgstr "%s: sayısal ülke kodu `%d' geçersiz"
#: locale/programs/ld-address.c:432 locale/programs/ld-address.c:469
-#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2478
+#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2479
#: locale/programs/ld-identification.c:309
#: locale/programs/ld-measurement.c:196 locale/programs/ld-messages.c:264
#: locale/programs/ld-monetary.c:503 locale/programs/ld-monetary.c:538
@@ -1957,7 +1961,7 @@ msgid "%s: unknown character in field `%s'"
msgstr "%s: `%s' alanında bilinmeyen karakter"
#: locale/programs/ld-address.c:521 locale/programs/ld-collate.c:3772
-#: locale/programs/ld-ctype.c:2826 locale/programs/ld-identification.c:394
+#: locale/programs/ld-ctype.c:2827 locale/programs/ld-identification.c:394
#: locale/programs/ld-measurement.c:210 locale/programs/ld-messages.c:293
#: locale/programs/ld-monetary.c:746 locale/programs/ld-name.c:260
#: locale/programs/ld-numeric.c:323 locale/programs/ld-paper.c:210
@@ -1970,8 +1974,8 @@ msgstr "%s: tamamlanmamış `END' satırı"
#: locale/programs/ld-collate.c:602 locale/programs/ld-collate.c:898
#: locale/programs/ld-collate.c:911 locale/programs/ld-collate.c:2582
#: locale/programs/ld-collate.c:2603 locale/programs/ld-collate.c:3957
-#: locale/programs/ld-ctype.c:1846 locale/programs/ld-ctype.c:2104
-#: locale/programs/ld-ctype.c:2676 locale/programs/ld-ctype.c:2837
+#: locale/programs/ld-ctype.c:1847 locale/programs/ld-ctype.c:2105
+#: locale/programs/ld-ctype.c:2677 locale/programs/ld-ctype.c:2838
#: locale/programs/ld-identification.c:404
#: locale/programs/ld-measurement.c:220 locale/programs/ld-messages.c:302
#: locale/programs/ld-monetary.c:755 locale/programs/ld-name.c:269
@@ -2316,131 +2320,131 @@ msgstr "`%s' karakter eşlem zaten atanmış"
msgid "implementation limit: no more than %d character maps allowed"
msgstr "tamamlama sınırı: %d karakterden fazla olmayan karakter eşleşme listesine izin verilmedi"
-#: locale/programs/ld-ctype.c:1434 locale/programs/ld-ctype.c:1559
-#: locale/programs/ld-ctype.c:1665 locale/programs/ld-ctype.c:2341
-#: locale/programs/ld-ctype.c:3299
+#: locale/programs/ld-ctype.c:1435 locale/programs/ld-ctype.c:1560
+#: locale/programs/ld-ctype.c:1666 locale/programs/ld-ctype.c:2342
+#: locale/programs/ld-ctype.c:3302
#, c-format
msgid "%s: field `%s' does not contain exactly ten entries"
msgstr "%s: `%s' alanı tamı tamına 10 girdi içeremez"
-#: locale/programs/ld-ctype.c:1462 locale/programs/ld-ctype.c:2036
+#: locale/programs/ld-ctype.c:1463 locale/programs/ld-ctype.c:2037
#, c-format
msgid "to-value <U%0*X> of range is smaller than from-value <U%0*X>"
msgstr "kapsamdaki <U%0*X> `to' değeri <U%0*X> `from' değerinden daha küçük"
-#: locale/programs/ld-ctype.c:1589
+#: locale/programs/ld-ctype.c:1590
msgid "start and end character sequence of range must have the same length"
msgstr "kapsamın başlangıç ve bitiş karakter zincirleri aynı uzunlukta olmalı"
-#: locale/programs/ld-ctype.c:1596
+#: locale/programs/ld-ctype.c:1597
msgid "to-value character sequence is smaller than from-value sequence"
msgstr "karakter dizisindeki `to' değeri `from' değerinden daha küçük"
-#: locale/programs/ld-ctype.c:1956 locale/programs/ld-ctype.c:2007
+#: locale/programs/ld-ctype.c:1957 locale/programs/ld-ctype.c:2008
msgid "premature end of `translit_ignore' definition"
msgstr "`translit_ignore' tanımının sonu eksik"
-#: locale/programs/ld-ctype.c:1962 locale/programs/ld-ctype.c:2013
-#: locale/programs/ld-ctype.c:2055
+#: locale/programs/ld-ctype.c:1963 locale/programs/ld-ctype.c:2014
+#: locale/programs/ld-ctype.c:2056
msgid "syntax error"
msgstr "sözdizimi hatası"
-#: locale/programs/ld-ctype.c:2188
+#: locale/programs/ld-ctype.c:2189
#, c-format
msgid "%s: syntax error in definition of new character class"
msgstr "%s: yeni karakter sınıfının tanımında sözdizimi hatası"
-#: locale/programs/ld-ctype.c:2203
+#: locale/programs/ld-ctype.c:2204
#, c-format
msgid "%s: syntax error in definition of new character map"
msgstr "%s: yeni karakter eşlemleri tanımında sözdizimi hatası"
-#: locale/programs/ld-ctype.c:2363
+#: locale/programs/ld-ctype.c:2364
msgid "ellipsis range must be marked by two operands of same type"
msgstr "elips kapsamı aynı türde iki veri öğesi ile sınırlanmış olmalıdır"
-#: locale/programs/ld-ctype.c:2372
+#: locale/programs/ld-ctype.c:2373
msgid "with symbolic name range values the absolute ellipsis `...' must not be used"
msgstr "mutlak elips `...' sembolik isim kapsamındaki değerlerle kullanılmamalı"
-#: locale/programs/ld-ctype.c:2387
+#: locale/programs/ld-ctype.c:2388
msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'"
msgstr "onaltılık sembolik elips `..' UCS kapsam değerlerinden biriyle kullanılmalı"
-#: locale/programs/ld-ctype.c:2401
+#: locale/programs/ld-ctype.c:2402
msgid "with character code range values one must use the absolute ellipsis `...'"
msgstr "mutlak elips `...' karakter kod değerlerinden biriyle kullanılmalı"
-#: locale/programs/ld-ctype.c:2552
+#: locale/programs/ld-ctype.c:2553
#, c-format
msgid "duplicated definition for mapping `%s'"
msgstr "`%s' eşlemi için atama tekrarlanmış"
-#: locale/programs/ld-ctype.c:2638 locale/programs/ld-ctype.c:2782
+#: locale/programs/ld-ctype.c:2639 locale/programs/ld-ctype.c:2783
#, c-format
msgid "%s: `translit_start' section does not end with `translit_end'"
msgstr "%s: `translit_start' bölümü `translit_end' ile bitmiyor"
-#: locale/programs/ld-ctype.c:2733
+#: locale/programs/ld-ctype.c:2734
#, c-format
msgid "%s: duplicate `default_missing' definition"
msgstr "%s: `default_missing' tanımı tekrarlanmış"
-#: locale/programs/ld-ctype.c:2738
+#: locale/programs/ld-ctype.c:2739
msgid "previous definition was here"
msgstr "önceki tanım burasıydı"
-#: locale/programs/ld-ctype.c:2760
+#: locale/programs/ld-ctype.c:2761
#, c-format
msgid "%s: no representable `default_missing' definition found"
msgstr "%s: temsil edilebilir `default_missing' ataması bulunamadı"
-#: locale/programs/ld-ctype.c:2877 locale/programs/ld-ctype.c:2973
-#: locale/programs/ld-ctype.c:2992 locale/programs/ld-ctype.c:3012
-#: locale/programs/ld-ctype.c:3032 locale/programs/ld-ctype.c:3052
-#: locale/programs/ld-ctype.c:3072 locale/programs/ld-ctype.c:3111
-#: locale/programs/ld-ctype.c:3131 locale/programs/ld-ctype.c:3195
-#: locale/programs/ld-ctype.c:3236 locale/programs/ld-ctype.c:3259
+#: locale/programs/ld-ctype.c:2878 locale/programs/ld-ctype.c:2974
+#: locale/programs/ld-ctype.c:2993 locale/programs/ld-ctype.c:3013
+#: locale/programs/ld-ctype.c:3033 locale/programs/ld-ctype.c:3053
+#: locale/programs/ld-ctype.c:3073 locale/programs/ld-ctype.c:3112
+#: locale/programs/ld-ctype.c:3132 locale/programs/ld-ctype.c:3198
+#: locale/programs/ld-ctype.c:3239 locale/programs/ld-ctype.c:3262
#, c-format
msgid "%s: character `%s' not defined while needed as default value"
msgstr "%s: öntanımlı değer olarak gerekli olmasına rağmen `%s' karakteri atanmamış"
-#: locale/programs/ld-ctype.c:2882 locale/programs/ld-ctype.c:2978
-#: locale/programs/ld-ctype.c:2997 locale/programs/ld-ctype.c:3017
-#: locale/programs/ld-ctype.c:3037 locale/programs/ld-ctype.c:3057
-#: locale/programs/ld-ctype.c:3077 locale/programs/ld-ctype.c:3116
-#: locale/programs/ld-ctype.c:3136 locale/programs/ld-ctype.c:3200
+#: locale/programs/ld-ctype.c:2883 locale/programs/ld-ctype.c:2979
+#: locale/programs/ld-ctype.c:2998 locale/programs/ld-ctype.c:3018
+#: locale/programs/ld-ctype.c:3038 locale/programs/ld-ctype.c:3058
+#: locale/programs/ld-ctype.c:3078 locale/programs/ld-ctype.c:3117
+#: locale/programs/ld-ctype.c:3137 locale/programs/ld-ctype.c:3203
#, c-format
msgid "%s: character `%s' in charmap not representable with one byte"
msgstr "%s: karakter eÅŸlem listesinde `%s' karakteri bir bayt ile temsil edilemez"
-#: locale/programs/ld-ctype.c:3242 locale/programs/ld-ctype.c:3265
+#: locale/programs/ld-ctype.c:3245 locale/programs/ld-ctype.c:3268
#, c-format
msgid "%s: character `%s' needed as default value not representable with one byte"
msgstr "%s: öntanımlı değer olarak gerekli olan `%s' karakteri tek bayt ile temsil edilemez"
-#: locale/programs/ld-ctype.c:3321
+#: locale/programs/ld-ctype.c:3324
msgid "no output digits defined and none of the standard names in the charmap"
msgstr "karakter eşleşme listesinde standart isimlerin hiç biri ve atanmış çıktı rakamları yok"
-#: locale/programs/ld-ctype.c:3570
+#: locale/programs/ld-ctype.c:3573
#, c-format
msgid "%s: transliteration data from locale `%s' not available"
msgstr "%s: `%s' yerelinden baÅŸka bir dilin alfabesinde yazma verisi yok"
-#: locale/programs/ld-ctype.c:3669
+#: locale/programs/ld-ctype.c:3672
#, fuzzy, c-format
#| msgid "%s: table for class \"%s\": %lu bytes\n"
msgid "%s: table for class \"%s\": %lu bytes"
msgstr "%s: \"%s\" sınıfının tablosu: %lu bayt\n"
-#: locale/programs/ld-ctype.c:3733
+#: locale/programs/ld-ctype.c:3736
#, fuzzy, c-format
#| msgid "%s: table for map \"%s\": %lu bytes\n"
msgid "%s: table for map \"%s\": %lu bytes"
msgstr "%s: \"%s\" eÅŸlemlerinin tablosu: %lu bayt\n"
-#: locale/programs/ld-ctype.c:3857
+#: locale/programs/ld-ctype.c:3860
#, fuzzy, c-format
#| msgid "%s: table for width: %lu bytes\n"
msgid "%s: table for width: %lu bytes"
@@ -2686,124 +2690,119 @@ msgstr ""
"Ä°SÄ°M\n"
"[-a|-m]"
-#: locale/programs/locale.c:190
-#, c-format
-msgid "Cannot set LC_CTYPE to default locale"
-msgstr "LC_CTYPE değişkenine öntanımlı yerel atanamaz"
-
-#: locale/programs/locale.c:192
-#, c-format
-msgid "Cannot set LC_MESSAGES to default locale"
-msgstr "LC_MESSAGES değişkenine öntanımlı yerel atanamaz"
-
-#: locale/programs/locale.c:205
+#: locale/programs/locale.c:522
#, c-format
-msgid "Cannot set LC_COLLATE to default locale"
-msgstr "LC_COLLATE değişkenine öntanımlı yerel atanamaz"
+msgid "while preparing output"
+msgstr "çıktıyı hazırlarken"
-#: locale/programs/locale.c:221
-#, c-format
-msgid "Cannot set LC_ALL to default locale"
+#: locale/programs/locale.c:998
+#, fuzzy, c-format
+#| msgid "Cannot set LC_ALL to default locale"
+msgid "Cannot set %s to default locale"
msgstr "LC_ALL değişkenine öntanımlı yerel atanamaz"
-#: locale/programs/locale.c:521
+#: locale/programs/locale.c:1096
#, c-format
-msgid "while preparing output"
-msgstr "çıktıyı hazırlarken"
+msgid "warning: The LOCPATH variable is set to \"%s\"\n"
+msgstr ""
-#: locale/programs/localedef.c:112
+#: locale/programs/localedef.c:116
msgid "Input Files:"
msgstr "Girdi Dosyaları:"
-#: locale/programs/localedef.c:114
+#: locale/programs/localedef.c:118
msgid "Symbolic character names defined in FILE"
msgstr "Sembolik karakter isimleri DOSYA dosyasında atandı"
-#: locale/programs/localedef.c:116
+#: locale/programs/localedef.c:120
msgid "Source definitions are found in FILE"
msgstr "Kaynak tanımları DOSYA da bulunur"
-#: locale/programs/localedef.c:118
+#: locale/programs/localedef.c:122
msgid "FILE contains mapping from symbolic names to UCS4 values"
msgstr "DOSYA sembolik isimlerden UCS4 değerlere eşlemler içerir"
-#: locale/programs/localedef.c:122
+#: locale/programs/localedef.c:126
msgid "Create output even if warning messages were issued"
msgstr "Uyarı iletileri yayınlansa bile çıktı dosyasını oluşturur"
-#: locale/programs/localedef.c:123
+#: locale/programs/localedef.c:128
+msgid "Do not create hard links between installed locales"
+msgstr ""
+
+#: locale/programs/localedef.c:129
msgid "Optional output file prefix"
msgstr "Çıktı dosyası öneki isteğe bağlı"
-#: locale/programs/localedef.c:124
+#: locale/programs/localedef.c:130
#, fuzzy
#| msgid "Be strictly POSIX conform"
msgid "Strictly conform to POSIX"
msgstr "Kesinlikle POSIX-uygun olur"
-#: locale/programs/localedef.c:126
+#: locale/programs/localedef.c:132
msgid "Suppress warnings and information messages"
msgstr "Uyarıları ve bilgilendirme iletilerini bastırır"
-#: locale/programs/localedef.c:127
+#: locale/programs/localedef.c:133
msgid "Print more messages"
msgstr "Daha fazla ileti basar"
-#: locale/programs/localedef.c:128 locale/programs/localedef.c:131
+#: locale/programs/localedef.c:134 locale/programs/localedef.c:137
#, fuzzy
#| msgid "warning: "
msgid "<warnings>"
msgstr "uyarı: "
-#: locale/programs/localedef.c:129
+#: locale/programs/localedef.c:135
msgid "Comma-separated list of warnings to disable; supported warnings are: ascii, intcurrsym"
msgstr ""
-#: locale/programs/localedef.c:132
+#: locale/programs/localedef.c:138
msgid "Comma-separated list of warnings to enable; supported warnings are: ascii, intcurrsym"
msgstr ""
-#: locale/programs/localedef.c:135
+#: locale/programs/localedef.c:141
msgid "Archive control:"
msgstr "ArÅŸiv denetimi:"
-#: locale/programs/localedef.c:137
+#: locale/programs/localedef.c:143
msgid "Don't add new data to archive"
msgstr "ArÅŸive yeni veri eklenmez"
-#: locale/programs/localedef.c:139
+#: locale/programs/localedef.c:145
msgid "Add locales named by parameters to archive"
msgstr "Parametrelerde isimleri belirtilen yerelleri arÅŸive ekler"
-#: locale/programs/localedef.c:140
+#: locale/programs/localedef.c:146
msgid "Replace existing archive content"
msgstr "Mevcut arşiv içeriğiyle değiştirilir "
-#: locale/programs/localedef.c:142
+#: locale/programs/localedef.c:148
msgid "Remove locales named by parameters from archive"
msgstr "Parametrelerde isimleri belirtilen yerelleri arÅŸivden siler"
-#: locale/programs/localedef.c:143
+#: locale/programs/localedef.c:149
msgid "List content of archive"
msgstr "Arşivin içindekiler"
-#: locale/programs/localedef.c:145
+#: locale/programs/localedef.c:151
msgid "locale.alias file to consult when making archive"
msgstr "arşiv oluşturulurken başvurulacak locale.alias dosyası"
-#: locale/programs/localedef.c:147
+#: locale/programs/localedef.c:153
msgid "Generate little-endian output"
msgstr "Little-endian çıktısı üret"
-#: locale/programs/localedef.c:149
+#: locale/programs/localedef.c:155
msgid "Generate big-endian output"
msgstr "Big-endian çıktısı üret"
-#: locale/programs/localedef.c:154
+#: locale/programs/localedef.c:160
msgid "Compile locale specification"
msgstr "Dil karakteristiklerini derler"
-#: locale/programs/localedef.c:157
+#: locale/programs/localedef.c:163
msgid ""
"NAME\n"
"[--add-to-archive|--delete-from-archive] FILE...\n"
@@ -2813,33 +2812,33 @@ msgstr ""
"[--add-to-archive|--delete-from-archive] DOSYA...\n"
"--list-archive [DOSYA]"
-#: locale/programs/localedef.c:232
+#: locale/programs/localedef.c:238
#, c-format
msgid "cannot create directory for output files"
msgstr "çıktı dosyaları için dizin oluşturulamıyor"
-#: locale/programs/localedef.c:243
+#: locale/programs/localedef.c:249
msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
msgstr "ÖLÜMCÜL: sistem `_POSIX2_LOCALEDEF' atamıyor"
-#: locale/programs/localedef.c:257 locale/programs/localedef.c:273
-#: locale/programs/localedef.c:663 locale/programs/localedef.c:683
+#: locale/programs/localedef.c:263 locale/programs/localedef.c:279
+#: locale/programs/localedef.c:673 locale/programs/localedef.c:693
#, c-format
msgid "cannot open locale definition file `%s'"
msgstr "Dil karakteristikleri tanımlama dosyası `%s' açılamıyor"
-#: locale/programs/localedef.c:297
+#: locale/programs/localedef.c:303
#, c-format
msgid "cannot write output files to `%s'"
msgstr "çıktı dosyaları `%s' dizinine yazılamıyor"
-#: locale/programs/localedef.c:303
+#: locale/programs/localedef.c:309
#, fuzzy
#| msgid "no output file produced because warnings were issued"
msgid "no output file produced because errors were issued"
msgstr "uyarılardan dolayı bir çıktı dosyası üretilmedi"
-#: locale/programs/localedef.c:431
+#: locale/programs/localedef.c:441
#, fuzzy, c-format
#| msgid ""
#| "System's directory for character maps : %s\n"
@@ -2857,11 +2856,11 @@ msgstr ""
" Dil karakteristikleri dizini: %s\n"
"%s"
-#: locale/programs/localedef.c:631
+#: locale/programs/localedef.c:641
msgid "circular dependencies between locale definitions"
msgstr "Dil karakteristikleri tanımları arasında bağımlılıklar kısır döngülü"
-#: locale/programs/localedef.c:637
+#: locale/programs/localedef.c:647
#, c-format
msgid "cannot add already read locale `%s' a second time"
msgstr "Zaten okunan `%s' dil karakteristikleri ikinci bir kez eklenemez"
@@ -3020,26 +3019,26 @@ msgstr "çıktı dosyası `%s' açılamadı; `%s' kategorisi için."
msgid "failure while writing data for category `%s'"
msgstr "`%s' kategorisi için veri yazılırken hata oluştu"
-#: locale/programs/locfile.c:917
+#: locale/programs/locfile.c:930
#, c-format
msgid "cannot create output file `%s' for category `%s'"
msgstr "çıktı dosyası `%s' `%s' kategorisi için oluşturulamıyor"
-#: locale/programs/locfile.c:953
+#: locale/programs/locfile.c:966
#, fuzzy
#| msgid "expect string argument for `copy'"
msgid "expecting string argument for `copy'"
msgstr "`copy' için dizge argüman gerekli"
-#: locale/programs/locfile.c:957
+#: locale/programs/locfile.c:970
msgid "locale name should consist only of portable characters"
msgstr "yer isimlerinin karakterleri ascii 127 içinden seçilmiş olmalı"
-#: locale/programs/locfile.c:976
+#: locale/programs/locfile.c:989
msgid "no other keyword shall be specified when `copy' is used"
msgstr "`copy' kullanıldığında belirtilmiş olacak diğer anahtar kelime yok"
-#: locale/programs/locfile.c:990
+#: locale/programs/locfile.c:1003
#, c-format
msgid "`%1$s' definition does not end with `END %1$s'"
msgstr "`%1$s' tanımı `END %1$s' ile bitmiyor"
@@ -3914,12 +3913,12 @@ msgstr "yp_update: makina ismi ağ ismine dönüştürülemiyor\n"
msgid "yp_update: cannot get server address\n"
msgstr "yp_update: sunucu adresi alınamıyor\n"
-#: nscd/aicache.c:83 nscd/hstcache.c:452
+#: nscd/aicache.c:82 nscd/hstcache.c:452
#, c-format
msgid "Haven't found \"%s\" in hosts cache!"
msgstr "\"%s\" makinalar arabelleÄŸinde yok!"
-#: nscd/aicache.c:85 nscd/hstcache.c:454
+#: nscd/aicache.c:84 nscd/hstcache.c:454
#, c-format
msgid "Reloading \"%s\" in hosts cache!"
msgstr "\"%s\" hosts arabelleğine yeniden yükleniyor!"
@@ -4254,25 +4253,25 @@ msgstr "%2$s arabelleğinde %1$zu bayt serbest bırakıldı"
msgid "no more memory for database '%s'"
msgstr "veritabanı '%s' için bellek kalmadı"
-#: nscd/netgroupcache.c:121
+#: nscd/netgroupcache.c:122
#, fuzzy, c-format
#| msgid "Haven't found \"%s\" in group cache!"
msgid "Haven't found \"%s\" in netgroup cache!"
msgstr "\"%s\" grup arabelleÄŸinde yok!"
-#: nscd/netgroupcache.c:123
+#: nscd/netgroupcache.c:124
#, fuzzy, c-format
#| msgid "Reloading \"%s\" in group cache!"
msgid "Reloading \"%s\" in netgroup cache!"
msgstr "\"%s\" grup arabelleğine yeniden yükleniyor!"
-#: nscd/netgroupcache.c:469
+#: nscd/netgroupcache.c:470
#, fuzzy, c-format
#| msgid "Haven't found \"%s\" in group cache!"
msgid "Haven't found \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr "\"%s\" grup arabelleÄŸinde yok!"
-#: nscd/netgroupcache.c:472
+#: nscd/netgroupcache.c:473
#, fuzzy, c-format
#| msgid "Reloading \"%s\" in group cache!"
msgid "Reloading \"%s (%s,%s,%s)\" in netgroup cache!"
@@ -4328,7 +4327,7 @@ msgstr "Her kullanıcı için ayrı arabellek kullanılır"
msgid "Name Service Cache Daemon."
msgstr "Name Service Cache Daemon."
-#: nscd/nscd.c:155 nss/getent.c:967 nss/makedb.c:206
+#: nscd/nscd.c:155 nss/getent.c:987 nss/makedb.c:206
#, c-format
msgid "wrong number of arguments"
msgstr "argüman sayısı hatalı"
@@ -4435,27 +4434,27 @@ msgstr "Çözümleme hatası: %s"
msgid "Must specify user name for server-user option"
msgstr "server-user seçeneği için kullanıcı ismi belirtilmelidir"
-#: nscd/nscd_conf.c:198
+#: nscd/nscd_conf.c:201
#, c-format
msgid "Must specify user name for stat-user option"
msgstr "stat-user seçeneği için kullanıcı ismi belirtilmelidir"
-#: nscd/nscd_conf.c:255
+#: nscd/nscd_conf.c:259
#, c-format
msgid "Must specify value for restart-interval option"
msgstr "restart-interval seçeneği için değer belirtilmelidir"
-#: nscd/nscd_conf.c:269
+#: nscd/nscd_conf.c:273
#, c-format
msgid "Unknown option: %s %s %s"
msgstr "Bilinmeyen seçenek: %s %s %s"
-#: nscd/nscd_conf.c:282
+#: nscd/nscd_conf.c:286
#, c-format
msgid "cannot get current working directory: %s; disabling paranoia mode"
msgstr "çalışılmakta olan dizin alınamıyor: %s; paranoya kipi iptal ediliyor"
-#: nscd/nscd_conf.c:302
+#: nscd/nscd_conf.c:306
#, c-format
msgid "maximum file size for %s database too small"
msgstr "%s veritabanı için azami dosya boyu çok küçük"
@@ -4726,49 +4725,49 @@ msgstr "\"%s\" services arabelleÄŸinde yok!"
msgid "Reloading \"%s\" in services cache!"
msgstr "\"%s\" services arabelleğine yeniden yükleniyor!"
-#: nss/getent.c:54
+#: nss/getent.c:55
msgid "database [key ...]"
msgstr "veritabanı [anahtar/tuş ...]"
-#: nss/getent.c:59
+#: nss/getent.c:60
#, fuzzy
#| msgid "CONF"
msgid "CONFIG"
msgstr "YAPL"
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "Service configuration to be used"
msgstr "Kullanılacak yapılandırmayı hizmete alır"
-#: nss/getent.c:60
+#: nss/getent.c:61
msgid "disable IDN encoding"
msgstr ""
-#: nss/getent.c:65
+#: nss/getent.c:66
msgid "Get entries from administrative database."
msgstr ""
-#: nss/getent.c:149 nss/getent.c:442 nss/getent.c:489
+#: nss/getent.c:150 nss/getent.c:462 nss/getent.c:509
#, c-format
msgid "Enumeration not supported on %s\n"
msgstr "Numaralama %s ile desteklenmiyor\n"
-#: nss/getent.c:497 nss/getent.c:510
+#: nss/getent.c:517 nss/getent.c:530
#, fuzzy, c-format
#| msgid "Could not create log file"
msgid "Could not allocate group list: %m\n"
msgstr "Günlük dosyası oluşturulamadı"
-#: nss/getent.c:881
+#: nss/getent.c:901
#, c-format
msgid "Unknown database name"
msgstr "Bilinmeyen veritabanı ismi"
-#: nss/getent.c:911
+#: nss/getent.c:931
msgid "Supported databases:\n"
msgstr "Desteklenen veritabanları:\n"
-#: nss/getent.c:977
+#: nss/getent.c:997
#, c-format
msgid "Unknown database: %s\n"
msgstr "Bilinmeyen veritabanı: %s\n"
@@ -5037,11 +5036,11 @@ msgstr "Düzenli ifade çok büyük"
msgid "Unmatched ) or \\)"
msgstr ") ya da \\) eÅŸleÅŸmiyor"
-#: posix/regcomp.c:689
+#: posix/regcomp.c:676
msgid "No previous regular expression"
msgstr "Önceki düzenli ifade yok"
-#: posix/wordexp.c:1815
+#: posix/wordexp.c:1816
msgid "parameter null or not set"
msgstr "parametre ya null ya da verilmemiÅŸ"
@@ -5264,7 +5263,7 @@ msgstr "G/Ç önbelleklerinin hepsi kullanımda"
msgid "Input message available"
msgstr "G/Ç önbelleklerinin hepsi kullanımda"
-#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:381 timezone/zic.c:520
+#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:375 timezone/zic.c:561
#, fuzzy
#| msgid "Remote I/O error"
msgid "I/O error"
@@ -5352,7 +5351,7 @@ msgstr "Bilinmeyen sinyal %d"
#: sunrpc/auth_unix.c:112 sunrpc/clnt_tcp.c:124 sunrpc/clnt_udp.c:139
#: sunrpc/clnt_unix.c:125 sunrpc/svc_tcp.c:189 sunrpc/svc_tcp.c:233
#: sunrpc/svc_udp.c:161 sunrpc/svc_unix.c:189 sunrpc/svc_unix.c:229
-#: sunrpc/xdr.c:628 sunrpc/xdr.c:788 sunrpc/xdr_array.c:102
+#: sunrpc/xdr.c:631 sunrpc/xdr.c:791 sunrpc/xdr_array.c:102
#: sunrpc/xdr_rec.c:153 sunrpc/xdr_ref.c:79
#, fuzzy
#| msgid "out of memory"
@@ -6618,56 +6617,69 @@ msgid "You really blew it this time"
msgstr " "
#. TRANS Go home and have a glass of warm, dairy-fresh milk.
-#: sysdeps/gnu/errlist.c:978
+#. TRANS @c Okay. Since you are dying to know, I'll tell you.
+#. TRANS @c This is a joke, obviously. There is a children's song which begins,
+#. TRANS @c "Old McDonald had a farm, e-i-e-i-o." Every time I see the (real)
+#. TRANS @c errno macro EIO, I think about that song. Probably most of my
+#. TRANS @c compatriots who program on Unix do, too. One of them must have stayed
+#. TRANS @c up a little too late one night and decided to add it to Hurd or Glibc.
+#. TRANS @c Whoever did it should be castigated, but it made me laugh.
+#. TRANS @c --jtobey@channel1.com
+#. TRANS @c
+#. TRANS @c "bought the farm" means "died". -jtobey
+#. TRANS @c
+#. TRANS @c Translators, please do not translate this litteraly, translate it into
+#. TRANS @c an idiomatic funny way of saying that the computer died.
+#: sysdeps/gnu/errlist.c:991
msgid "Computer bought the farm"
msgstr "Yatarken sütünü içtin mi?"
#. TRANS This error code has no purpose.
-#: sysdeps/gnu/errlist.c:987
+#: sysdeps/gnu/errlist.c:1000
msgid "Gratuitous error"
msgstr "Bu hata lotodan çıktı"
-#: sysdeps/gnu/errlist.c:995
+#: sysdeps/gnu/errlist.c:1008
msgid "Bad message"
msgstr "İleti hatalı"
-#: sysdeps/gnu/errlist.c:1003
+#: sysdeps/gnu/errlist.c:1016
msgid "Identifier removed"
msgstr "Tanıtıcı kaldırıldı"
-#: sysdeps/gnu/errlist.c:1011
+#: sysdeps/gnu/errlist.c:1024
msgid "Multihop attempted"
msgstr "Çoklusekmeye kalkışıldı"
-#: sysdeps/gnu/errlist.c:1019
+#: sysdeps/gnu/errlist.c:1032
msgid "No data available"
msgstr "Veri yok"
-#: sysdeps/gnu/errlist.c:1027
+#: sysdeps/gnu/errlist.c:1040
msgid "Link has been severed"
msgstr "BaÄŸ sadeleÅŸtirilmiÅŸti"
-#: sysdeps/gnu/errlist.c:1035
+#: sysdeps/gnu/errlist.c:1048
msgid "No message of desired type"
msgstr "Arzulanan türde ileti yok"
-#: sysdeps/gnu/errlist.c:1043
+#: sysdeps/gnu/errlist.c:1056
msgid "Out of streams resources"
msgstr "Veri akımları kaynakları yetersiz"
-#: sysdeps/gnu/errlist.c:1051
+#: sysdeps/gnu/errlist.c:1064
msgid "Device not a stream"
msgstr "Aygıt veri alışverişine uygun değil"
-#: sysdeps/gnu/errlist.c:1059
+#: sysdeps/gnu/errlist.c:1072
msgid "Value too large for defined data type"
msgstr "Atanan veri türü için değer çok büyük"
-#: sysdeps/gnu/errlist.c:1067
+#: sysdeps/gnu/errlist.c:1080
msgid "Protocol error"
msgstr "İletişim kurallarında hata"
-#: sysdeps/gnu/errlist.c:1075
+#: sysdeps/gnu/errlist.c:1088
msgid "Timer expired"
msgstr "Süre doldu"
@@ -6675,197 +6687,197 @@ msgstr "Süre doldu"
#. TRANS completed. @xref{Asynchronous I/O}. When you call @code{aio_cancel},
#. TRANS the normal result is for the operations affected to complete with this
#. TRANS error; @pxref{Cancel AIO Operations}.
-#: sysdeps/gnu/errlist.c:1087
+#: sysdeps/gnu/errlist.c:1100
msgid "Operation canceled"
msgstr "Ä°ÅŸlem iptal edildi"
-#: sysdeps/gnu/errlist.c:1095
+#: sysdeps/gnu/errlist.c:1108
msgid "Owner died"
msgstr "Sahibi öldü"
-#: sysdeps/gnu/errlist.c:1103
+#: sysdeps/gnu/errlist.c:1116
msgid "State not recoverable"
msgstr "Durum kurtarılabilir gibi değil"
-#: sysdeps/gnu/errlist.c:1111
+#: sysdeps/gnu/errlist.c:1124
msgid "Interrupted system call should be restarted"
msgstr "Kesme ile engellenen sistem çağrısı yeniden başlatılmalı"
-#: sysdeps/gnu/errlist.c:1119
+#: sysdeps/gnu/errlist.c:1132
msgid "Channel number out of range"
msgstr "Kanal numarası kapsam dışı"
-#: sysdeps/gnu/errlist.c:1127
+#: sysdeps/gnu/errlist.c:1140
msgid "Level 2 not synchronized"
msgstr "Seviye-2 eşzamanlı değil"
-#: sysdeps/gnu/errlist.c:1135
+#: sysdeps/gnu/errlist.c:1148
msgid "Level 3 halted"
msgstr "Seviye-3 durdu"
-#: sysdeps/gnu/errlist.c:1143
+#: sysdeps/gnu/errlist.c:1156
msgid "Level 3 reset"
msgstr "Seviye-3 başlangıçta"
-#: sysdeps/gnu/errlist.c:1151
+#: sysdeps/gnu/errlist.c:1164
msgid "Link number out of range"
msgstr "Bağ numarası kapsam dışı"
-#: sysdeps/gnu/errlist.c:1159
+#: sysdeps/gnu/errlist.c:1172
msgid "Protocol driver not attached"
msgstr "İletişim kuralları sürücüsü bağlı değil"
-#: sysdeps/gnu/errlist.c:1167
+#: sysdeps/gnu/errlist.c:1180
msgid "No CSI structure available"
msgstr "Hiç bir CSI değişken yapısı yok"
-#: sysdeps/gnu/errlist.c:1175
+#: sysdeps/gnu/errlist.c:1188
msgid "Level 2 halted"
msgstr "Seviye-2 durdu"
-#: sysdeps/gnu/errlist.c:1183
+#: sysdeps/gnu/errlist.c:1196
msgid "Invalid exchange"
msgstr "Değiş tokuş geçersiz"
-#: sysdeps/gnu/errlist.c:1191
+#: sysdeps/gnu/errlist.c:1204
msgid "Invalid request descriptor"
msgstr "İstem betimleyici geçersiz"
-#: sysdeps/gnu/errlist.c:1199
+#: sysdeps/gnu/errlist.c:1212
msgid "Exchange full"
msgstr "Değiş tokuş alanı dolu"
-#: sysdeps/gnu/errlist.c:1207
+#: sysdeps/gnu/errlist.c:1220
msgid "No anode"
msgstr "Anot yok"
-#: sysdeps/gnu/errlist.c:1215
+#: sysdeps/gnu/errlist.c:1228
msgid "Invalid request code"
msgstr "İstem kodu geçersiz"
-#: sysdeps/gnu/errlist.c:1223
+#: sysdeps/gnu/errlist.c:1236
msgid "Invalid slot"
msgstr "Geçersiz yuva"
-#: sysdeps/gnu/errlist.c:1231
+#: sysdeps/gnu/errlist.c:1244
msgid "File locking deadlock error"
msgstr "Dosya kilitlemede ölükilit hatası"
-#: sysdeps/gnu/errlist.c:1239
+#: sysdeps/gnu/errlist.c:1252
msgid "Bad font file format"
msgstr "Yazıtipi dosyası biçemi hatalı"
-#: sysdeps/gnu/errlist.c:1247
+#: sysdeps/gnu/errlist.c:1260
msgid "Machine is not on the network"
msgstr "Makina bir ağ üzerinde değil"
-#: sysdeps/gnu/errlist.c:1255
+#: sysdeps/gnu/errlist.c:1268
msgid "Package not installed"
msgstr "Paket yüklenmedi"
-#: sysdeps/gnu/errlist.c:1263
+#: sysdeps/gnu/errlist.c:1276
msgid "Advertise error"
msgstr "Tanıtım hatası"
-#: sysdeps/gnu/errlist.c:1271
+#: sysdeps/gnu/errlist.c:1284
msgid "Srmount error"
msgstr "Srmount hatası"
-#: sysdeps/gnu/errlist.c:1279
+#: sysdeps/gnu/errlist.c:1292
msgid "Communication error on send"
msgstr "Yollama sırasında haberleşme hatası"
-#: sysdeps/gnu/errlist.c:1287
+#: sysdeps/gnu/errlist.c:1300
msgid "RFS specific error"
msgstr "RFS-özgü hata"
-#: sysdeps/gnu/errlist.c:1295
+#: sysdeps/gnu/errlist.c:1308
msgid "Name not unique on network"
msgstr "Ağ üzerinde isim eşsiz değil"
-#: sysdeps/gnu/errlist.c:1303
+#: sysdeps/gnu/errlist.c:1316
msgid "File descriptor in bad state"
msgstr "Dosya betimleyici hatalı durumda"
-#: sysdeps/gnu/errlist.c:1311
+#: sysdeps/gnu/errlist.c:1324
msgid "Remote address changed"
msgstr "Uzak adres deÄŸiÅŸti"
-#: sysdeps/gnu/errlist.c:1319
+#: sysdeps/gnu/errlist.c:1332
msgid "Can not access a needed shared library"
msgstr "Gereken paylaşımlı kitaplığa erişilemiyor"
-#: sysdeps/gnu/errlist.c:1327
+#: sysdeps/gnu/errlist.c:1340
msgid "Accessing a corrupted shared library"
msgstr "Bir bozulmuş paylaşımlı kitaplığa erişiliyor"
-#: sysdeps/gnu/errlist.c:1335
+#: sysdeps/gnu/errlist.c:1348
msgid ".lib section in a.out corrupted"
msgstr "a.out içindeki .lib bölümü bozulmuş"
-#: sysdeps/gnu/errlist.c:1343
+#: sysdeps/gnu/errlist.c:1356
msgid "Attempting to link in too many shared libraries"
msgstr "Çok fazla sayıdaki paylaşımlı kitaplıkta bağ kurulmaya çalışılıyor"
-#: sysdeps/gnu/errlist.c:1351
+#: sysdeps/gnu/errlist.c:1364
msgid "Cannot exec a shared library directly"
msgstr "Bir paylaşımlı kitaplık doğrudan çalıştırılamaz"
-#: sysdeps/gnu/errlist.c:1359
+#: sysdeps/gnu/errlist.c:1372
msgid "Streams pipe error"
msgstr "Veri hattı hatası"
-#: sysdeps/gnu/errlist.c:1367
+#: sysdeps/gnu/errlist.c:1380
msgid "Structure needs cleaning"
msgstr "Veri ağacı temizlenmek ister"
-#: sysdeps/gnu/errlist.c:1375
+#: sysdeps/gnu/errlist.c:1388
msgid "Not a XENIX named type file"
msgstr "Bir XENIX named türü dosya değil"
-#: sysdeps/gnu/errlist.c:1383
+#: sysdeps/gnu/errlist.c:1396
msgid "No XENIX semaphores available"
msgstr "Hiç XENIX semaforu yok"
-#: sysdeps/gnu/errlist.c:1391
+#: sysdeps/gnu/errlist.c:1404
msgid "Is a named type file"
msgstr "Bir \"named\" türü dosya"
-#: sysdeps/gnu/errlist.c:1399
+#: sysdeps/gnu/errlist.c:1412
msgid "Remote I/O error"
msgstr "Uzak G/Ç hatası"
-#: sysdeps/gnu/errlist.c:1407
+#: sysdeps/gnu/errlist.c:1420
msgid "No medium found"
msgstr "medium yok"
-#: sysdeps/gnu/errlist.c:1415
+#: sysdeps/gnu/errlist.c:1428
msgid "Wrong medium type"
msgstr "Yanlış ortam türü"
-#: sysdeps/gnu/errlist.c:1423
+#: sysdeps/gnu/errlist.c:1436
msgid "Required key not available"
msgstr "Gerekli anahtar/tuş kullanılamaz durumda"
-#: sysdeps/gnu/errlist.c:1431
+#: sysdeps/gnu/errlist.c:1444
msgid "Key has expired"
msgstr "Anahtarın vakti doldu"
-#: sysdeps/gnu/errlist.c:1439
+#: sysdeps/gnu/errlist.c:1452
msgid "Key has been revoked"
msgstr "Anahtar yürürlükten kaldırılmıştı"
-#: sysdeps/gnu/errlist.c:1447
+#: sysdeps/gnu/errlist.c:1460
msgid "Key was rejected by service"
msgstr "Anahtar hizmet tarafından reddedildi"
-#: sysdeps/gnu/errlist.c:1455
+#: sysdeps/gnu/errlist.c:1468
#, fuzzy
#| msgid "Operation not permitted"
msgid "Operation not possible due to RF-kill"
msgstr "Ä°ÅŸleme izin verilmedi"
-#: sysdeps/gnu/errlist.c:1463
+#: sysdeps/gnu/errlist.c:1476
msgid "Memory page has hardware error"
msgstr "Bellek sayfasında donanım hatası var"
@@ -6994,31 +7006,31 @@ msgstr ""
msgid "can't disable CET"
msgstr ""
-#: timezone/zdump.c:338
+#: timezone/zdump.c:332
#, fuzzy
#| msgid "has fewer than 3 alphabetics"
msgid "has fewer than 3 characters"
msgstr "3 harften az"
-#: timezone/zdump.c:340
+#: timezone/zdump.c:334
#, fuzzy
#| msgid "has more than 6 alphabetics"
msgid "has more than 6 characters"
msgstr "6 harften az"
-#: timezone/zdump.c:342
+#: timezone/zdump.c:336
msgid "has characters other than ASCII alphanumerics, '-' or '+'"
msgstr ""
-#: timezone/zdump.c:347
+#: timezone/zdump.c:341
#, c-format
msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n"
msgstr "%s: uyarı: zaman dilimi \"%s\" kısaltma \"%s\" %s\n"
-#: timezone/zdump.c:393
+#: timezone/zdump.c:387
#, c-format
msgid ""
-"%s: usage: %s OPTIONS ZONENAME ...\n"
+"%s: usage: %s OPTIONS TIMEZONE ...\n"
"Options include:\n"
" -c [L,]U Start at year L (default -500), end before year U (default 2500)\n"
" -t [L,]U Start at time L, end before time U (in seconds since 1970)\n"
@@ -7031,52 +7043,58 @@ msgid ""
"Report bugs to %s.\n"
msgstr ""
-#: timezone/zdump.c:479
+#: timezone/zdump.c:473
#, c-format
msgid "%s: wild -c argument %s\n"
msgstr "%s: ilkel -c argümanı %s\n"
-#: timezone/zdump.c:512
+#: timezone/zdump.c:506
#, fuzzy, c-format
#| msgid "%s: wild -c argument %s\n"
msgid "%s: wild -t argument %s\n"
msgstr "%s: ilkel -c argümanı %s\n"
-#: timezone/zic.c:398
+#: timezone/zic.c:429
#, c-format
msgid "%s: Memory exhausted: %s\n"
msgstr "%s: Bellek tükendi: %s\n"
-#: timezone/zic.c:406
+#: timezone/zic.c:437
#, fuzzy
#| msgid "time overflow"
msgid "size overflow"
msgstr "zaman taşması"
-#: timezone/zic.c:454
+#: timezone/zic.c:447
+#, fuzzy
+#| msgid "time overflow"
+msgid "alignment overflow"
+msgstr "zaman taşması"
+
+#: timezone/zic.c:495
#, fuzzy
#| msgid "time overflow"
msgid "integer overflow"
msgstr "zaman taşması"
-#: timezone/zic.c:488
+#: timezone/zic.c:529
#, fuzzy, c-format
#| msgid "\"%s\", line %d: %s"
msgid "\"%s\", line %<PRIdMAX>: "
msgstr "\"%s\", satır %d: %s"
-#: timezone/zic.c:491
+#: timezone/zic.c:532
#, fuzzy, c-format
#| msgid " (rule from \"%s\", line %d)"
msgid " (rule from \"%s\", line %<PRIdMAX>)"
msgstr " (\"%s\", %d satırından kural)"
-#: timezone/zic.c:510
+#: timezone/zic.c:551
#, c-format
msgid "warning: "
msgstr "uyarı: "
-#: timezone/zic.c:535
+#: timezone/zic.c:576
#, fuzzy, c-format
#| msgid ""
#| "%s: usage is %s [ --version ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n"
@@ -7084,7 +7102,7 @@ msgstr "uyarı: "
msgid ""
"%s: usage is %s [ --version ] [ --help ] [ -v ] \\\n"
"\t[ -l localtime ] [ -p posixrules ] [ -d directory ] \\\n"
-"\t[ -L leapseconds ] [ filename ... ]\n"
+"\t[ -t localtime-link ] [ -L leapseconds ] [ filename ... ]\n"
"\n"
"Report bugs to %s.\n"
msgstr ""
@@ -7092,414 +7110,446 @@ msgstr ""
"\t[ -p posixKuralları ] [ -d dizin ] [ -L artıkSaniyeler ]\n"
"\t[ -y yıltürü ] [ dosyaismi ... ]\n"
-#: timezone/zic.c:558
+#: timezone/zic.c:599
#, fuzzy, c-format
#| msgid "%s: Can't create %s: %s\n"
msgid "%s: Can't chdir to %s: %s\n"
msgstr "%s: %s oluşturulamıyor: %s\n"
-#: timezone/zic.c:590
+#: timezone/zic.c:632
msgid "wild compilation-time specification of zic_t"
msgstr "zic_t'nin derleme zamanı belirtimine güvenilmez"
-#: timezone/zic.c:610
+#: timezone/zic.c:652
#, c-format
msgid "%s: More than one -d option specified\n"
msgstr "%s: Birden fazla -d seçeneği belirtilmiş\n"
-#: timezone/zic.c:620
+#: timezone/zic.c:662
#, c-format
msgid "%s: More than one -l option specified\n"
msgstr "%s: Birden fazla -l seçeneği belirtilmiş\n"
-#: timezone/zic.c:630
+#: timezone/zic.c:672
#, c-format
msgid "%s: More than one -p option specified\n"
msgstr "%s: Birden fazla -p seçeneği belirtilmiş\n"
-#: timezone/zic.c:640
+#: timezone/zic.c:680
+#, fuzzy, c-format
+#| msgid "%s: More than one -d option specified\n"
+msgid "%s: More than one -t option specified\n"
+msgstr "%s: Birden fazla -d seçeneği belirtilmiş\n"
+
+#: timezone/zic.c:689
+msgid "-y is obsolescent"
+msgstr ""
+
+#: timezone/zic.c:693
#, c-format
msgid "%s: More than one -y option specified\n"
msgstr "%s: Birden fazla -y seçeneği belirtilmiş\n"
-#: timezone/zic.c:650
+#: timezone/zic.c:703
#, c-format
msgid "%s: More than one -L option specified\n"
msgstr "%s: Birden fazla -L seçeneği belirtilmiş\n"
-#: timezone/zic.c:659
+#: timezone/zic.c:712
msgid "-s ignored"
msgstr "-s ihmal edildi"
-#: timezone/zic.c:698
+#: timezone/zic.c:753
msgid "link to link"
msgstr "bağlantıdan bağlantıya"
-#: timezone/zic.c:701 timezone/zic.c:705
+#: timezone/zic.c:756 timezone/zic.c:760
#, fuzzy
#| msgid "Too many links"
msgid "command line"
msgstr "Çok fazla bağ var"
-#: timezone/zic.c:721
+#: timezone/zic.c:776
msgid "empty file name"
msgstr "boş dosya adı"
-#: timezone/zic.c:724
+#: timezone/zic.c:779
#, c-format
msgid "file name '%s' begins with '/'"
msgstr ""
-#: timezone/zic.c:734
+#: timezone/zic.c:789
#, c-format
msgid "file name '%s' contains '%.*s' component"
msgstr ""
-#: timezone/zic.c:740
+#: timezone/zic.c:795
#, c-format
msgid "file name '%s' component contains leading '-'"
msgstr ""
-#: timezone/zic.c:743
+#: timezone/zic.c:798
#, c-format
msgid "file name '%s' contains overlength component '%.*s...'"
msgstr ""
-#: timezone/zic.c:771
+#: timezone/zic.c:826
#, c-format
msgid "file name '%s' contains byte '%c'"
msgstr ""
-#: timezone/zic.c:772
+#: timezone/zic.c:827
#, c-format
msgid "file name '%s' contains byte '\\%o'"
msgstr ""
-#: timezone/zic.c:842
+#: timezone/zic.c:897
#, fuzzy, c-format
#| msgid "%s: Can't link from %s to %s: %s\n"
msgid "%s: link from %s/%s failed: %s\n"
msgstr "%s: %s den %s e bağ kurulamıyor: %s\n"
-#: timezone/zic.c:852 timezone/zic.c:1815
+#: timezone/zic.c:907 timezone/zic.c:1876
#, fuzzy, c-format
#| msgid "%s: Can't remove %s: %s\n"
msgid "%s: Can't remove %s/%s: %s\n"
msgstr "%s: %s silinemiyor: %s\n"
-#: timezone/zic.c:874
+#: timezone/zic.c:931
#, c-format
msgid "symbolic link used because hard link failed: %s"
msgstr ""
-#: timezone/zic.c:882
+#: timezone/zic.c:939
#, fuzzy, c-format
#| msgid "%s: Can't create %s: %s\n"
msgid "%s: Can't read %s/%s: %s\n"
msgstr "%s: %s oluşturulamıyor: %s\n"
-#: timezone/zic.c:889 timezone/zic.c:1828
+#: timezone/zic.c:946 timezone/zic.c:1889
#, fuzzy, c-format
#| msgid "%s: Can't create %s: %s\n"
msgid "%s: Can't create %s/%s: %s\n"
msgstr "%s: %s oluşturulamıyor: %s\n"
-#: timezone/zic.c:898
+#: timezone/zic.c:955
#, c-format
msgid "copy used because hard link failed: %s"
msgstr ""
-#: timezone/zic.c:901
+#: timezone/zic.c:958
#, fuzzy, c-format
#| msgid "%s is not a symbolic link\n"
msgid "copy used because symbolic link failed: %s"
msgstr "%s bir sembolik baÄŸ deÄŸil\n"
-#: timezone/zic.c:1013 timezone/zic.c:1015
+#: timezone/zic.c:1032 timezone/zic.c:1034
msgid "same rule name in multiple files"
msgstr "bir çok dosyada aynı kural ismi var"
-#: timezone/zic.c:1056
-msgid "unruly zone"
-msgstr "kuralsız dilim"
-
-#: timezone/zic.c:1063
+#: timezone/zic.c:1081
#, c-format
msgid "%s in ruleless zone"
msgstr "%s kuralsız zaman diliminde"
-#: timezone/zic.c:1083
+#: timezone/zic.c:1101
msgid "standard input"
msgstr "standart girdi"
-#: timezone/zic.c:1088
+#: timezone/zic.c:1106
#, c-format
msgid "%s: Can't open %s: %s\n"
msgstr "%s: %s açılamıyor: %s\n"
-#: timezone/zic.c:1099
+#: timezone/zic.c:1117
msgid "line too long"
msgstr "satır çok uzun"
-#: timezone/zic.c:1119
+#: timezone/zic.c:1139
msgid "input line of unknown type"
msgstr "girdi satırının türü bilinmiyor"
-#: timezone/zic.c:1134
-#, fuzzy, c-format
-#| msgid "%s: Leap line in non leap seconds file %s\n"
-msgid "%s: Leap line in non leap seconds file %s"
-msgstr "%s: artık saniyeler olmayan %s dosyasında `Leap' satırı\n"
-
-#: timezone/zic.c:1142 timezone/zic.c:1547 timezone/zic.c:1569
+#: timezone/zic.c:1158 timezone/zic.c:1593 timezone/zic.c:1615
#, c-format
msgid "%s: panic: Invalid l_value %d\n"
msgstr "%s: panik: sol değer (l_value) %d geçersiz\n"
-#: timezone/zic.c:1151
+#: timezone/zic.c:1167
msgid "expected continuation line not found"
msgstr "gereken süreklilik satırı bulunamadı"
-#: timezone/zic.c:1193 timezone/zic.c:2976
+#: timezone/zic.c:1203
+#, fuzzy
+#| msgid "24:00 not handled by pre-1998 versions of zic"
+msgid "fractional seconds rejected by pre-2018 versions of zic"
+msgstr "zic'in 1998 öncesi sürümlerinde 24:00 elde edilemez"
+
+#: timezone/zic.c:1221 timezone/zic.c:3078
msgid "time overflow"
msgstr "zaman taşması"
-#: timezone/zic.c:1198
+#: timezone/zic.c:1227
msgid "values over 24 hours not handled by pre-2007 versions of zic"
msgstr "zic'in 2007 öncesi sürümlerinde 24 saatin üzerindeki değerlerle işlem yapılmaz"
-#: timezone/zic.c:1209
+#: timezone/zic.c:1245
+msgid "invalid saved time"
+msgstr "kazanılmış zaman geçersiz"
+
+#: timezone/zic.c:1256
msgid "wrong number of fields on Rule line"
msgstr "`Rule' satırının alanları eksik ya da fazla"
-#: timezone/zic.c:1213
-msgid "nameless rule"
-msgstr "adsız kural"
-
-#: timezone/zic.c:1218
-msgid "invalid saved time"
-msgstr "kazanılmış zaman geçersiz"
+#: timezone/zic.c:1265
+#, fuzzy, c-format
+#| msgid "Invalid numeric gid \"%s\"!"
+msgid "Invalid rule name \"%s\""
+msgstr "\"%s\" grup numarası geçersiz!"
-#: timezone/zic.c:1235
+#: timezone/zic.c:1287
msgid "wrong number of fields on Zone line"
msgstr "`Zone' satırının alanları eksik ya da fazla"
-#: timezone/zic.c:1240
+#: timezone/zic.c:1292
#, c-format
msgid "\"Zone %s\" line and -l option are mutually exclusive"
msgstr "\"Zone %s\" satırı ve -l seçeneği çelişiyor"
-#: timezone/zic.c:1246
+#: timezone/zic.c:1298
#, c-format
msgid "\"Zone %s\" line and -p option are mutually exclusive"
msgstr "\"Zone %s\" satırı ve -p seçeneği çelişiyor"
-#: timezone/zic.c:1253
+#: timezone/zic.c:1305
#, fuzzy, c-format
#| msgid "duplicate zone name %s (file \"%s\", line %d)"
msgid "duplicate zone name %s (file \"%s\", line %<PRIdMAX>)"
msgstr "dilim ismi %s tekrarlanmış (dosya \"%s\", satır %d)"
-#: timezone/zic.c:1267
+#: timezone/zic.c:1319
msgid "wrong number of fields on Zone continuation line"
msgstr "`Zone' devam satırının alanları eksik ya da fazla"
-#: timezone/zic.c:1307
+#: timezone/zic.c:1359
#, fuzzy
#| msgid "invalid UTC offset"
msgid "invalid UT offset"
msgstr "UTC offset geçersiz"
-#: timezone/zic.c:1311
+#: timezone/zic.c:1363
msgid "invalid abbreviation format"
msgstr "kısaltma biçemi geçersiz"
-#: timezone/zic.c:1320
+#: timezone/zic.c:1372
#, fuzzy, c-format
#| msgid "24:00 not handled by pre-1998 versions of zic"
msgid "format '%s' not handled by pre-2015 versions of zic"
msgstr "zic'in 1998 öncesi sürümlerinde 24:00 elde edilemez"
-#: timezone/zic.c:1347
+#: timezone/zic.c:1399
msgid "Zone continuation line end time is not after end time of previous line"
msgstr "`Zone' devamlılık satırının bitiş zamanı önceki satırın bitiş zamanından sonra değil"
-#: timezone/zic.c:1374
+#: timezone/zic.c:1426
msgid "wrong number of fields on Leap line"
msgstr "`Leap' satırının alanları eksik ya da fazla"
-#: timezone/zic.c:1383
+#: timezone/zic.c:1435
msgid "invalid leaping year"
msgstr "artık yıl geçersiz"
-#: timezone/zic.c:1403 timezone/zic.c:1501
+#: timezone/zic.c:1455 timezone/zic.c:1547
msgid "invalid month name"
msgstr "ay ismi geçersiz"
-#: timezone/zic.c:1416 timezone/zic.c:1614 timezone/zic.c:1628
+#: timezone/zic.c:1468 timezone/zic.c:1663 timezone/zic.c:1677
msgid "invalid day of month"
msgstr "ayın günü geçersiz"
-#: timezone/zic.c:1421
+#: timezone/zic.c:1473
msgid "time too small"
msgstr "süre çok kısa"
-#: timezone/zic.c:1425
+#: timezone/zic.c:1477
msgid "time too large"
msgstr "süre çok uzun"
-#: timezone/zic.c:1429 timezone/zic.c:1530
+#: timezone/zic.c:1481 timezone/zic.c:1576
msgid "invalid time of day"
msgstr "günün tarihi geçersiz"
-#: timezone/zic.c:1448
+#: timezone/zic.c:1494
msgid "illegal CORRECTION field on Leap line"
msgstr "`Sıçrama' satırında kuraldışı DÜZELTME alanı"
-#: timezone/zic.c:1453
+#: timezone/zic.c:1499
msgid "illegal Rolling/Stationary field on Leap line"
msgstr "`Sıçrama' satırında kuraldışı Değişken/Sabit alanı"
-#: timezone/zic.c:1459
-msgid "leap second precedes Big Bang"
+#: timezone/zic.c:1505
+#, fuzzy
+#| msgid "leap second precedes Big Bang"
+msgid "leap second precedes Epoch"
msgstr "sıçrama saniyesi Big Bang'den önce"
-#: timezone/zic.c:1472
+#: timezone/zic.c:1518
msgid "wrong number of fields on Link line"
msgstr "`Link' satırının alanları eksik ya da fazla"
-#: timezone/zic.c:1476
+#: timezone/zic.c:1522
msgid "blank FROM field on Link line"
msgstr "`Link' satırında FROM alanı boş"
-#: timezone/zic.c:1551
+#: timezone/zic.c:1597
msgid "invalid starting year"
msgstr "başlangıç yılı geçersiz"
-#: timezone/zic.c:1573
+#: timezone/zic.c:1619
msgid "invalid ending year"
msgstr "bitiş yılı geçersiz"
-#: timezone/zic.c:1577
+#: timezone/zic.c:1623
msgid "starting year greater than ending year"
msgstr "başlangıç yılı bitiş yılından büyük"
-#: timezone/zic.c:1584
+#: timezone/zic.c:1630
msgid "typed single year"
msgstr "türünde tek yıl"
-#: timezone/zic.c:1619
+#: timezone/zic.c:1633
+#, c-format
+msgid "year type \"%s\" is obsolete; use \"-\" instead"
+msgstr ""
+
+#: timezone/zic.c:1668
msgid "invalid weekday name"
msgstr "gün ismi geçersiz"
-#: timezone/zic.c:1743
+#: timezone/zic.c:1800
#, fuzzy, c-format
#| msgid "pre-2014 clients may mishandle more than 1200 transition times"
msgid "reference clients mishandle more than %d transition times"
msgstr "pre-2014 istemciler 1200 geçiş süresinden daha fazla kötü görev yapabilir"
-#: timezone/zic.c:1747
+#: timezone/zic.c:1804
msgid "pre-2014 clients may mishandle more than 1200 transition times"
msgstr "pre-2014 istemciler 1200 geçiş süresinden daha fazla kötü görev yapabilir"
-#: timezone/zic.c:1858
+#: timezone/zic.c:1920
#, fuzzy
#| msgid "too many transitions?!"
msgid "too many transition times"
msgstr "çok fazla geçiş?!"
-#: timezone/zic.c:2047
-#, c-format
-msgid "%%z UTC offset magnitude exceeds 99:59:59"
+#: timezone/zic.c:2107
+#, fuzzy, c-format
+#| msgid "%%z UTC offset magnitude exceeds 99:59:59"
+msgid "%%z UT offset magnitude exceeds 99:59:59"
msgstr "%%z UTC ofset büyüklüğünü aşıyor 99:59:59"
-#: timezone/zic.c:2424
+#: timezone/zic.c:2488
msgid "no POSIX environment variable for zone"
msgstr "zaman dilimi için POSIX ortam değişkeni yok"
-#: timezone/zic.c:2430
+#: timezone/zic.c:2494
#, c-format
msgid "%s: pre-%d clients may mishandle distant timestamps"
msgstr "%s: pre-%d istemciler uzaktaki zaman damgalarını yanlış görevlendirebilir"
-#: timezone/zic.c:2566
+#: timezone/zic.c:2631
msgid "two rules for same instant"
msgstr "aynlı anlık için iki kural"
-#: timezone/zic.c:2627
+#: timezone/zic.c:2696
msgid "can't determine time zone abbreviation to use just after until time"
msgstr "süreye değinden hemen sonra kullanılacak zaman dilimi kısaltması saptanamadı"
-#: timezone/zic.c:2725
+#: timezone/zic.c:2785
msgid "too many local time types"
msgstr "yerel zaman türleri çok fazla"
-#: timezone/zic.c:2729
+#: timezone/zic.c:2789
#, fuzzy
#| msgid "UTC offset out of range"
msgid "UT offset out of range"
msgstr "UTC'ye göre saat farkı aralık dışında"
-#: timezone/zic.c:2753
+#: timezone/zic.c:2813
msgid "too many leap seconds"
msgstr "çok fazla artık saniye"
-#: timezone/zic.c:2759
-msgid "repeated leap second moment"
-msgstr "tekrarlanan artık saniye anı"
+#: timezone/zic.c:2844
+msgid "Leap seconds too close together"
+msgstr ""
-#: timezone/zic.c:2830
+#: timezone/zic.c:2891
msgid "Wild result from command execution"
msgstr "Komut icrasından alınan sonuç garip"
-#: timezone/zic.c:2831
+#: timezone/zic.c:2892
#, c-format
msgid "%s: command was '%s', result was %d\n"
msgstr "%s: komut `%s' idi, sonuç %d oldu\n"
-#: timezone/zic.c:2961
+#: timezone/zic.c:2998
+#, c-format
+msgid "\"%s\" is undocumented; use \"last%s\" instead"
+msgstr ""
+
+#: timezone/zic.c:3029
+#, c-format
+msgid "\"%s\" is ambiguous in pre-2017c zic"
+msgstr ""
+
+#: timezone/zic.c:3063
msgid "Odd number of quotation marks"
msgstr "Tırnak işaretleri tek sayıda"
-#: timezone/zic.c:3046
+#: timezone/zic.c:3157
msgid "use of 2/29 in non leap-year"
msgstr "artık olmayan yıl içinde 2/29 kullanımı"
-#: timezone/zic.c:3081
+#: timezone/zic.c:3192
#, fuzzy
#| msgid "rule goes past start/end of month--will not work with pre-2004 versions of zic"
msgid "rule goes past start/end of month; will not work with pre-2004 versions of zic"
msgstr "ayın başına/sonuna giden kural zic'in 2004 öncesi sürümlerinde çalışmaz"
-#: timezone/zic.c:3108
+#: timezone/zic.c:3219
#, fuzzy
#| msgid "time zone abbreviation has more than 3 alphabetics"
msgid "time zone abbreviation has fewer than 3 characters"
msgstr "zaman dilimi kısaltmasında 3 harften az harf var"
-#: timezone/zic.c:3110
+#: timezone/zic.c:3221
#, fuzzy
#| msgid "time zone abbreviation has too many alphabetics"
msgid "time zone abbreviation has too many characters"
msgstr "zaman dilimi kısaltmasında çok fazla harf var"
-#: timezone/zic.c:3112
+#: timezone/zic.c:3223
msgid "time zone abbreviation differs from POSIX standard"
msgstr "zaman dilimi kısaltması POSIX standardından farklı"
-#: timezone/zic.c:3118
+#: timezone/zic.c:3229
msgid "too many, or too long, time zone abbreviations"
msgstr "çok fazla ya da çok uzun zaman dilimi kısaltmaları"
-#: timezone/zic.c:3161
+#: timezone/zic.c:3275
#, fuzzy, c-format
#| msgid "%s: Can't create directory %s: %s\n"
msgid "%s: Can't create directory %s: %s"
msgstr "%s: %s dizini oluşturulamıyor: %s\n"
+#~ msgid "cannot open zero fill device"
+#~ msgstr "sıfırlar içeren aygıt açılamaz"
+
#~ msgid "invalid caller"
#~ msgstr "çağrıcı geçersiz"
+#~ msgid "relocation error"
+#~ msgstr "yeniden konumlama hatası"
+
#~ msgid "Character out of range for UTF-8"
#~ msgstr "UTF-8 için karakter kapsam dışı"
@@ -7509,6 +7559,15 @@ msgstr "%s: %s dizini oluşturulamıyor: %s\n"
#~ msgid "non-symbolic character value should not be used"
#~ msgstr "sembolik olmayan karakter değeri kullanılmış olmayacaktı"
+#~ msgid "Cannot set LC_CTYPE to default locale"
+#~ msgstr "LC_CTYPE değişkenine öntanımlı yerel atanamaz"
+
+#~ msgid "Cannot set LC_MESSAGES to default locale"
+#~ msgstr "LC_MESSAGES değişkenine öntanımlı yerel atanamaz"
+
+#~ msgid "Cannot set LC_COLLATE to default locale"
+#~ msgstr "LC_COLLATE değişkenine öntanımlı yerel atanamaz"
+
#~ msgid "cannot set socket to close on exec: %s; disabling paranoia mode"
#~ msgstr "exec üzerinde kapatılacak soket atanamadı: %s; paranoya kipi iptal ediliyor"
@@ -7554,11 +7613,6 @@ msgstr "%s: %s dizini oluşturulamıyor: %s\n"
#~ "%s: kullanımı şöyledir: %s [ --version ] [ -v ] [ -c [ düşükyıl, ] yüksekyıl ]\n"
#~ "zamanDilimiÄ°smi ...\n"
-#, fuzzy
-#~| msgid "time overflow"
-#~ msgid "int overflow"
-#~ msgstr "zaman taşması"
-
#~ msgid "hard link failed, symbolic link used"
#~ msgstr "sabit bağ başarısız, sembolik bağ kullanıldı"
@@ -7567,6 +7621,20 @@ msgstr "%s: %s dizini oluşturulamıyor: %s\n"
#~ msgid "link failed, copy used"
#~ msgstr "sabit bağ başarısız, sembolik bağ kullanıldı"
+#~ msgid "unruly zone"
+#~ msgstr "kuralsız dilim"
+
+#, fuzzy
+#~| msgid "%s: Leap line in non leap seconds file %s\n"
+#~ msgid "%s: Leap line in non leap seconds file %s"
+#~ msgstr "%s: artık saniyeler olmayan %s dosyasında `Leap' satırı\n"
+
+#~ msgid "nameless rule"
+#~ msgstr "adsız kural"
+
+#~ msgid "repeated leap second moment"
+#~ msgstr "tekrarlanan artık saniye anı"
+
#~ msgid "Try \\`xtrace --help' for more information.\\n"
#~ msgstr "Daha fazla bilgi için \\`xtrace --help' yazınız.\\n"
diff --git a/po/uk.po b/po/uk.po
index d9b963b330..83426f096a 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -2,22 +2,22 @@
# Copyright (C) 2013 Free Software Foundation, Inc.
# This file is distributed under the same license as the glibc package.
#
-# Yuri Chornoivan <yurchor@ukr.net>, 2013, 2014, 2015, 2017, 2018.
+# Yuri Chornoivan <yurchor@ukr.net>, 2013, 2014, 2015, 2017, 2018, 2019.
# Volodymyr M. Lisivka <lvm@mystery.lviv.net>, 2013.
msgid ""
msgstr ""
-"Project-Id-Version: libc 2.27.9000\n"
-"POT-Creation-Date: 2018-07-26 22:19-0400\n"
-"PO-Revision-Date: 2018-07-27 22:09+0200\n"
+"Project-Id-Version: libc 2.29.9000\n"
+"POT-Creation-Date: 2019-07-18 13:28-0400\n"
+"PO-Revision-Date: 2019-07-24 21:22+0300\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
-"Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
+"Language-Team: Ukrainian <trans-uk@lists.fedoraproject.org>\n"
"Language: uk\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-"X-Generator: Lokalize 2.0\n"
+"X-Generator: Lokalize 19.07.70\n"
#: argp/argp-help.c:227
#, c-format
@@ -150,10 +150,10 @@ msgstr ""
"[ФÐЙЛ-ВИВЕДЕÐÐЯ [ФÐЙЛ-ВХІДÐИХ-ДÐÐИХ]...]"
#: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:308
-#: elf/pldd.c:252 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
-#: iconv/iconvconfig.c:379 locale/programs/locale.c:275
-#: locale/programs/localedef.c:427 login/programs/pt_chown.c:89
-#: malloc/memusagestat.c:563 nss/getent.c:933 nss/makedb.c:369
+#: elf/pldd.c:247 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
+#: iconv/iconvconfig.c:379 locale/programs/locale.c:276
+#: locale/programs/localedef.c:437 login/programs/pt_chown.c:89
+#: malloc/memusagestat.c:563 nss/getent.c:953 nss/makedb.c:369
#: posix/getconf.c:503 sysdeps/unix/sysv/linux/lddlibc4.c:61
#, c-format
msgid ""
@@ -164,11 +164,11 @@ msgstr ""
"%s.\n"
#: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64
-#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75
+#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:263 elf/sotruss.sh:75
#: elf/sprof.c:389 iconv/iconv_prog.c:422 iconv/iconvconfig.c:396
-#: locale/programs/locale.c:292 locale/programs/localedef.c:453
+#: locale/programs/locale.c:293 locale/programs/localedef.c:463
#: login/programs/pt_chown.c:63 malloc/memusage.sh:71
-#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:87 nss/makedb.c:385
+#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:88 nss/makedb.c:385
#: posix/getconf.c:485 sysdeps/unix/sysv/linux/lddlibc4.c:68
#, c-format
msgid ""
@@ -180,10 +180,10 @@ msgstr ""
"Це програмне Ð·Ð°Ð±ÐµÐ·Ð¿ÐµÑ‡ÐµÐ½Ð½Ñ Ñ” вільним, умови ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ Ð²Ð¸ÐºÐ»Ð°Ð´ÐµÐ½Ð¾ у його початкових кодах. Умовами Ð»Ñ–Ñ†ÐµÐ½Ð·ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ ÐЕ передбачено жодних гарантій, зокрема гарантій працездатноÑÑ‚Ñ– або придатноÑÑ‚Ñ– Ð´Ð»Ñ Ð¿ÐµÐ²Ð½Ð¾Ñ— мети.\n"
#: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68
-#: elf/ldconfig.c:329 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:427
-#: iconv/iconvconfig.c:401 locale/programs/locale.c:297
-#: locale/programs/localedef.c:458 malloc/memusage.sh:75
-#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:92 nss/makedb.c:390
+#: elf/ldconfig.c:329 elf/pldd.c:268 elf/sprof.c:395 iconv/iconv_prog.c:427
+#: iconv/iconvconfig.c:401 locale/programs/locale.c:298
+#: locale/programs/localedef.c:468 malloc/memusage.sh:75
+#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:93 nss/makedb.c:390
#: posix/getconf.c:490
#, c-format
msgid "Written by %s.\n"
@@ -254,21 +254,21 @@ msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ файл «%s» Ð´Ð»Ñ Ð²Ð¸Ð²ÐµÐ´Ðµ
msgid "invalid escape sequence"
msgstr "некоректна екранована поÑлідовніÑÑ‚ÑŒ Ñимволів"
-#: catgets/gencat.c:1209
+#: catgets/gencat.c:1211
msgid "unterminated message"
msgstr "незавершене повідомленнÑ"
-#: catgets/gencat.c:1233
+#: catgets/gencat.c:1235
#, c-format
msgid "while opening old catalog file"
msgstr "під Ñ‡Ð°Ñ Ñпроби відкрити Ñтарий файл каталогу"
-#: catgets/gencat.c:1324
+#: catgets/gencat.c:1326
#, c-format
msgid "conversion modules not available"
msgstr "модулі Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½ÐµÐ´Ð¾Ñтупні"
-#: catgets/gencat.c:1350
+#: catgets/gencat.c:1352
#, c-format
msgid "cannot determine escape character"
msgstr "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ Ñимвол екрануваннÑ"
@@ -395,7 +395,7 @@ msgstr "Ðевідома ОС"
msgid ", OS ABI: %s %d.%d.%d"
msgstr ", ABI ОС: %s %d.%d.%d"
-#: elf/cache.c:163 elf/ldconfig.c:1332
+#: elf/cache.c:163 elf/ldconfig.c:1333
#, c-format
msgid "Can't open cache file %s\n"
msgstr "Ðе вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ файл кешу %s\n"
@@ -405,38 +405,38 @@ msgstr "Ðе вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ файл кешу %s\n"
msgid "mmap of cache file failed.\n"
msgstr "Спроба виконати mmap Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ð° кешу зазнала невдачі.\n"
-#: elf/cache.c:181 elf/cache.c:195
+#: elf/cache.c:181 elf/cache.c:195 elf/cache.c:205
#, c-format
msgid "File is not a cache file.\n"
msgstr "Файл не є файлом кешу.\n"
-#: elf/cache.c:228 elf/cache.c:238
+#: elf/cache.c:233 elf/cache.c:243
#, c-format
msgid "%d libs found in cache `%s'\n"
msgstr "У кеші «%2$s» знайдено %1$d бібліотек\n"
-#: elf/cache.c:432
+#: elf/cache.c:437
#, c-format
msgid "Can't create temporary cache file %s"
msgstr "Ðе вдалоÑÑ Ñтворити тимчаÑовий файл кешу %s"
-#: elf/cache.c:440 elf/cache.c:450 elf/cache.c:454 elf/cache.c:458
-#: elf/cache.c:468
+#: elf/cache.c:445 elf/cache.c:455 elf/cache.c:459 elf/cache.c:463
+#: elf/cache.c:473
#, c-format
msgid "Writing of cache data failed"
msgstr "Спроба запиÑу до файла кешу зазнала невдачі"
-#: elf/cache.c:463
+#: elf/cache.c:468
#, c-format
msgid "Changing access rights of %s to %#o failed"
msgstr "Спроба змінити права доÑтупу до %s на %#o зазнала невдачі"
-#: elf/cache.c:472
+#: elf/cache.c:477
#, c-format
msgid "Renaming of %s to %s failed"
msgstr "Спроба перейменувати %s на %s зазнала невдачі"
-#: elf/dl-close.c:399 elf/dl-open.c:420
+#: elf/dl-close.c:399 elf/dl-open.c:424
msgid "cannot create scope list"
msgstr "не вдалоÑÑ Ñтворити ÑпиÑок облаÑтей дії"
@@ -517,119 +517,119 @@ msgstr "не вдалоÑÑ Ñтворити маÑив шлÑхів пошукÑ
msgid "cannot stat shared object"
msgstr "не вдалоÑÑ Ð²Ð¸ÐºÐ¾Ð½Ð°Ñ‚Ð¸ ÑтатиÑтичну обробку об’єкта Ñпільного викориÑтаннÑ"
-#: elf/dl-load.c:960
-msgid "cannot open zero fill device"
-msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ приÑтрій Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð½ÑƒÐ»Ñми"
-
-#: elf/dl-load.c:1007 elf/dl-load.c:2203
+#: elf/dl-load.c:992 elf/dl-load.c:2198
msgid "cannot create shared object descriptor"
msgstr "не вдалоÑÑ Ñтворити деÑкриптор об’єкта Ñпільного викориÑтаннÑ"
-#: elf/dl-load.c:1026 elf/dl-load.c:1560 elf/dl-load.c:1673
+#: elf/dl-load.c:1011 elf/dl-load.c:1555 elf/dl-load.c:1668
msgid "cannot read file data"
msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ дані файла"
-#: elf/dl-load.c:1072
+#: elf/dl-load.c:1057
msgid "ELF load command alignment not page-aligned"
msgstr "Ð’Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ ELF виконано не за Ñторінками пам’ÑÑ‚Ñ–"
-#: elf/dl-load.c:1079
+#: elf/dl-load.c:1064
msgid "ELF load command address/offset not properly aligned"
msgstr "адреÑа або Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ ELF неправильно вирівнÑно"
-#: elf/dl-load.c:1161
+#: elf/dl-load.c:1146
msgid "cannot process note segment"
msgstr "не вдалоÑÑ Ð¾Ð±Ñ€Ð¾Ð±Ð¸Ñ‚Ð¸ Ñегмент нотатки щодо процеÑу"
-#: elf/dl-load.c:1172
+#: elf/dl-load.c:1157
msgid "object file has no loadable segments"
msgstr "у об’єктному файлі немає придатних до Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñегментів"
-#: elf/dl-load.c:1181 elf/dl-load.c:1652
+#: elf/dl-load.c:1170 elf/dl-load.c:1647
msgid "cannot dynamically load executable"
msgstr "не вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ виконуваний файл у динамічному режимі"
-#: elf/dl-load.c:1202
+#: elf/dl-load.c:1191
msgid "object file has no dynamic section"
msgstr "у об’єктному файлі немає динамічного розділу"
-#: elf/dl-load.c:1225
+#: elf/dl-load.c:1218
+msgid "cannot dynamically load position-independent executable"
+msgstr "не вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ позиційно незалежний виконуваний файл у динамічному режимі"
+
+#: elf/dl-load.c:1220
msgid "shared object cannot be dlopen()ed"
msgstr "об’єкт Ñпільного викориÑÑ‚Ð°Ð½Ð½Ñ Ð½Ðµ може бути відкрито за допомогою dlopen()"
-#: elf/dl-load.c:1238
+#: elf/dl-load.c:1233
msgid "cannot allocate memory for program header"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ пам’ÑÑ‚ÑŒ Ð´Ð»Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° програми"
-#: elf/dl-load.c:1271 elf/dl-load.h:130
+#: elf/dl-load.c:1266 elf/dl-load.h:130
msgid "cannot change memory protections"
msgstr "зміна захиÑту облаÑÑ‚Ñ– пам’ÑÑ‚Ñ– неможлива"
-#: elf/dl-load.c:1291
+#: elf/dl-load.c:1286
msgid "cannot enable executable stack as shared object requires"
msgstr "не вдалоÑÑ ÑƒÐ²Ñ–Ð¼ÐºÐ½ÑƒÑ‚Ð¸ Ñтек виконаннÑ, Ñк цього вимагає об’єкт Ñпільного викориÑтаннÑ"
-#: elf/dl-load.c:1304
+#: elf/dl-load.c:1299
msgid "cannot close file descriptor"
msgstr "не вдалоÑÑ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ð¸ деÑкриптор файла"
-#: elf/dl-load.c:1560
+#: elf/dl-load.c:1555
msgid "file too short"
msgstr "файл є надто коротким"
-#: elf/dl-load.c:1595
+#: elf/dl-load.c:1590
msgid "invalid ELF header"
msgstr "некоректний заголовок ELF"
-#: elf/dl-load.c:1607
+#: elf/dl-load.c:1602
msgid "ELF file data encoding not big-endian"
msgstr "байти у даних файла ELF впорÑдковано не у зворотному порÑдку"
-#: elf/dl-load.c:1609
+#: elf/dl-load.c:1604
msgid "ELF file data encoding not little-endian"
msgstr "байти у даних файла ELF впорÑдковано не у прÑмому порÑдку"
-#: elf/dl-load.c:1613
+#: elf/dl-load.c:1608
msgid "ELF file version ident does not match current one"
msgstr "ідентифікатор верÑÑ–Ñ— файла ELF не відповідає поточному"
-#: elf/dl-load.c:1617
+#: elf/dl-load.c:1612
msgid "ELF file OS ABI invalid"
msgstr "некоректний ABI ОС у файлі ELF"
-#: elf/dl-load.c:1620
+#: elf/dl-load.c:1615
msgid "ELF file ABI version invalid"
msgstr "некоректна верÑÑ–Ñ ABI у файлі ELF"
-#: elf/dl-load.c:1623
+#: elf/dl-load.c:1618
msgid "nonzero padding in e_ident"
msgstr "ненульове Ð´Ð¾Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ñƒ e_ident"
-#: elf/dl-load.c:1626
+#: elf/dl-load.c:1621
msgid "internal error"
msgstr "Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°"
-#: elf/dl-load.c:1633
+#: elf/dl-load.c:1628
msgid "ELF file version does not match current one"
msgstr "верÑÑ–Ñ Ñ„Ð°Ð¹Ð»Ð° ELF не збігаєтьÑÑ Ð· поточною"
-#: elf/dl-load.c:1641
+#: elf/dl-load.c:1636
msgid "only ET_DYN and ET_EXEC can be loaded"
msgstr "можна завантажити лише ET_DYN і ET_EXEC"
-#: elf/dl-load.c:1657
+#: elf/dl-load.c:1652
msgid "ELF file's phentsize not the expected size"
msgstr "phentsize файла ELF не є очікуваним"
-#: elf/dl-load.c:2222
+#: elf/dl-load.c:2217
msgid "wrong ELF class: ELFCLASS64"
msgstr "помилковий ÐºÐ»Ð°Ñ ELF: ELFCLASS64"
-#: elf/dl-load.c:2223
+#: elf/dl-load.c:2218
msgid "wrong ELF class: ELFCLASS32"
msgstr "помилковий ÐºÐ»Ð°Ñ ELF: ELFCLASS32"
-#: elf/dl-load.c:2226
+#: elf/dl-load.c:2221
msgid "cannot open shared object file"
msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ файл об’єктів Ñпільного викориÑтаннÑ"
@@ -641,11 +641,7 @@ msgstr "не вдалоÑÑ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð·Ð¸Ñ‚Ð¸ Ñегмент з об’єк
msgid "cannot map zero-fill pages"
msgstr "не вдалоÑÑ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð·Ð¸Ñ‚Ð¸ Ñторінки Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð½ÑƒÐ»Ñми"
-#: elf/dl-lookup.c:835
-msgid "relocation error"
-msgstr "помилка переÑуваннÑ"
-
-#: elf/dl-lookup.c:858
+#: elf/dl-lookup.c:830
msgid "symbol lookup error"
msgstr "помилка під Ñ‡Ð°Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ Ñимволів"
@@ -653,19 +649,19 @@ msgstr "помилка під Ñ‡Ð°Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ Ñимволів"
msgid "cannot extend global scope"
msgstr "не вдалоÑÑ Ñ€Ð¾Ð·ÑˆÐ¸Ñ€Ð¸Ñ‚Ð¸ загальну облаÑÑ‚ÑŒ"
-#: elf/dl-open.c:470
+#: elf/dl-open.c:474
msgid "TLS generation counter wrapped! Please report this."
msgstr "Переповнено лічильник ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ TLS! Будь лаÑка, повідомте про цю помилку розробникам."
-#: elf/dl-open.c:534
+#: elf/dl-open.c:538
msgid "invalid mode for dlopen()"
msgstr "некоректний режим Ð´Ð»Ñ dlopen()"
-#: elf/dl-open.c:551
+#: elf/dl-open.c:555
msgid "no more namespaces available for dlmopen()"
msgstr "більше немає проÑторів назв Ð´Ð»Ñ dlmopen()"
-#: elf/dl-open.c:575
+#: elf/dl-open.c:579
msgid "invalid target namespace in dlmopen()"
msgstr "некоректний проÑÑ‚Ñ–Ñ€ назв Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñƒ dlmopen()"
@@ -673,20 +669,20 @@ msgstr "некоректний проÑÑ‚Ñ–Ñ€ назв Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñƒ
msgid "cannot allocate memory in static TLS block"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ облаÑÑ‚ÑŒ пам’ÑÑ‚Ñ– у Ñтатичному блоці TLS"
-#: elf/dl-reloc.c:205
+#: elf/dl-reloc.c:213
msgid "cannot make segment writable for relocation"
msgstr "не вдалоÑÑ Ñтворити Ñегмент придатний до запиÑу Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑуваннÑ"
-#: elf/dl-reloc.c:276
+#: elf/dl-reloc.c:272
#, c-format
msgid "%s: out of memory to store relocation results for %s\n"
msgstr "%s: не виÑтачає пам’ÑÑ‚Ñ– Ð´Ð»Ñ Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ð½Ð½Ñ Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ñ–Ð² переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ %s\n"
-#: elf/dl-reloc.c:292
+#: elf/dl-reloc.c:288
msgid "cannot restore segment prot after reloc"
msgstr "не вдалоÑÑ Ð²Ñ–Ð´Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ захиÑÑ‚ Ñегмент піÑÐ»Ñ Ð¿ÐµÑ€ÐµÑуваннÑ"
-#: elf/dl-reloc.c:323
+#: elf/dl-reloc.c:319
msgid "cannot apply additional memory protection after relocation"
msgstr "не вдалоÑÑ Ð·Ð°ÑтоÑувати додатковий захиÑÑ‚ пам’ÑÑ‚Ñ– піÑÐ»Ñ Ð¿ÐµÑ€ÐµÑуваннÑ"
@@ -904,22 +900,22 @@ msgstr "Ñкщо викориÑтано -r, Ñлід вказати абÑолю
msgid "memory exhausted"
msgstr "пам’ÑÑ‚ÑŒ вичерпано"
-#: elf/ldconfig.c:1233
+#: elf/ldconfig.c:1234
#, c-format
msgid "%s:%u: cannot read directory %s"
msgstr "%s:%u: не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ каталог %s"
-#: elf/ldconfig.c:1281
+#: elf/ldconfig.c:1282
#, c-format
msgid "relative path `%s' used to build cache"
msgstr "відноÑний шлÑÑ… «%s» викориÑтано Ð´Ð»Ñ Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ ÐºÐµÑˆÑƒ"
-#: elf/ldconfig.c:1311
+#: elf/ldconfig.c:1312
#, c-format
msgid "Can't chdir to /"
msgstr "Ðе вдалоÑÑ Ð·Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸ каталог на /"
-#: elf/ldconfig.c:1352
+#: elf/ldconfig.c:1353
#, c-format
msgid "Can't open cache file directory %s\n"
msgstr "Ðе вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ каталог файлів кешу %s\n"
@@ -989,95 +985,100 @@ msgstr "завершено з невідомим кодом виходу"
msgid "error: you do not have read permission for"
msgstr "помилка: у Ð²Ð°Ñ Ð½ÐµÐ¼Ð°Ñ” права на читаннÑ"
-#: elf/pldd-xx.c:105
+#: elf/pldd-xx.c:102
#, c-format
msgid "cannot find program header of process"
msgstr "не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ заголовок програми Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸"
-#: elf/pldd-xx.c:110
+#: elf/pldd-xx.c:106
#, c-format
msgid "cannot read program header"
msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ заголовок програми"
-#: elf/pldd-xx.c:135
+#: elf/pldd-xx.c:128
#, c-format
msgid "cannot read dynamic section"
msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ розділ dynamic"
-#: elf/pldd-xx.c:147
+#: elf/pldd-xx.c:137
#, c-format
msgid "cannot read r_debug"
msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ r_debug"
-#: elf/pldd-xx.c:167
+#: elf/pldd-xx.c:154
#, c-format
msgid "cannot read program interpreter"
msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ інтерпретатор програми"
-#: elf/pldd-xx.c:197
+#: elf/pldd-xx.c:183
#, c-format
msgid "cannot read link map"
msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ карту поÑилань"
-#: elf/pldd-xx.c:209
+#: elf/pldd-xx.c:190
#, c-format
msgid "cannot read object name"
msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ назву об’єкта"
-#: elf/pldd-xx.c:219
+#: elf/pldd-xx.c:197
#, c-format
msgid "cannot allocate buffer for object name"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ пам’ÑÑ‚ÑŒ Ð´Ð»Ñ Ð½Ð°Ð·Ð²Ð¸ об’єкта"
-#: elf/pldd.c:64
+#: elf/pldd.c:58
msgid "List dynamic shared objects loaded into process."
msgstr "Показати ÑпиÑок динамічних об’єктів Ñпільного викориÑтаннÑ, завантажених до процеÑу."
-#: elf/pldd.c:68
+#: elf/pldd.c:62
msgid "PID"
msgstr "PID"
-#: elf/pldd.c:100
+#: elf/pldd.c:89
#, c-format
msgid "Exactly one parameter with process ID required.\n"
msgstr "З ідентифікатором процеÑу має бути вказано точно один параметр.\n"
-#: elf/pldd.c:112
+#: elf/pldd.c:103
#, c-format
msgid "invalid process ID '%s'"
msgstr "некоректний ідентифікатор процеÑу «%s»"
-#: elf/pldd.c:120
+#: elf/pldd.c:111
#, c-format
msgid "cannot open %s"
msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ %s"
-#: elf/pldd.c:152
+#: elf/pldd.c:142
#, c-format
msgid "cannot open %s/task"
msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ %s/завданнÑ"
-#: elf/pldd.c:155
+#: elf/pldd.c:145
#, c-format
msgid "cannot prepare reading %s/task"
msgstr "не вдалоÑÑ Ð¿Ñ–Ð´Ð³Ð¾Ñ‚ÑƒÐ²Ð°Ñ‚Ð¸ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ %s/завданнÑ"
-#: elf/pldd.c:168
+#: elf/pldd.c:158
#, c-format
msgid "invalid thread ID '%s'"
msgstr "некоректний ідентифікатор потоку «%s»"
-#: elf/pldd.c:179
+#: elf/pldd.c:169
#, c-format
msgid "cannot attach to process %lu"
msgstr "не вдалоÑÑ Ð¿Ñ€Ð¸Ñ”Ð´Ð½Ð°Ñ‚Ð¸ÑÑ Ð´Ð¾ процеÑу %lu"
-#: elf/pldd.c:294
+#: elf/pldd.c:184
+#, c-format
+msgid "no valid %s/task entries"
+msgstr "немає коректних %s або запиÑів завдань"
+
+#: elf/pldd.c:290
#, c-format
msgid "cannot get information about process %lu"
msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ інформацію щодо процеÑу %lu"
-#: elf/pldd.c:307
+#: elf/pldd.c:303
#, c-format
msgid "process %lu is no ELF program"
msgstr "Ð¿Ñ€Ð¾Ñ†ÐµÑ %lu не Ñ” програмою ELF"
@@ -1397,7 +1398,7 @@ msgstr "ІнформаціÑ:"
msgid "list all known coded character sets"
msgstr "показати ÑпиÑок уÑÑ–Ñ… відомих програмі наборів Ñимволів"
-#: iconv/iconv_prog.c:64 locale/programs/localedef.c:120
+#: iconv/iconv_prog.c:64 locale/programs/localedef.c:124
msgid "Output control:"
msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ð²Ð¾Ð´Ð¾Ð¼:"
@@ -1406,8 +1407,8 @@ msgid "omit invalid characters from output"
msgstr "пропуÑкати некоректні Ñимволи у вхідних даних"
#: iconv/iconv_prog.c:66 iconv/iconvconfig.c:128
-#: locale/programs/localedef.c:113 locale/programs/localedef.c:115
-#: locale/programs/localedef.c:117 locale/programs/localedef.c:144
+#: locale/programs/localedef.c:117 locale/programs/localedef.c:119
+#: locale/programs/localedef.c:121 locale/programs/localedef.c:150
#: malloc/memusagestat.c:56
msgid "FILE"
msgstr "ФÐЙЛ"
@@ -1506,7 +1507,7 @@ msgstr "Створити швидкозавантажуваний файл наÐ
msgid "[DIR...]"
msgstr "[КÐТÐЛОГ...]"
-#: iconv/iconvconfig.c:126 locale/programs/localedef.c:123
+#: iconv/iconvconfig.c:126 locale/programs/localedef.c:129
msgid "PATH"
msgstr "ШЛЯХ"
@@ -1690,14 +1691,14 @@ msgstr "підтримки таблиць Ñимволів зі Ñтанами Ð
#: locale/programs/charmap.c:503 locale/programs/charmap.c:557
#: locale/programs/charmap.c:589 locale/programs/charmap.c:683
-#: locale/programs/charmap.c:738 locale/programs/charmap.c:779
-#: locale/programs/charmap.c:820
+#: locale/programs/charmap.c:739 locale/programs/charmap.c:780
+#: locale/programs/charmap.c:821
#, c-format
msgid "syntax error in %s definition: %s"
msgstr "ÑинтакÑична помилка у визначенні %s: %s"
#: locale/programs/charmap.c:504 locale/programs/charmap.c:684
-#: locale/programs/charmap.c:780 locale/programs/repertoire.c:229
+#: locale/programs/charmap.c:781 locale/programs/repertoire.c:229
msgid "no symbolic name given"
msgstr "не вказано Ñимволічної назви"
@@ -1713,14 +1714,14 @@ msgstr "у кодуванні Ñимволів надто мало байтів"
msgid "too many bytes in character encoding"
msgstr "у кодуванні Ñимволів надто багато байтів"
-#: locale/programs/charmap.c:591 locale/programs/charmap.c:739
-#: locale/programs/charmap.c:822 locale/programs/repertoire.c:295
+#: locale/programs/charmap.c:591 locale/programs/charmap.c:740
+#: locale/programs/charmap.c:823 locale/programs/repertoire.c:295
msgid "no symbolic name given for end of range"
msgstr "не вказано Ñимволічної назви Ð´Ð»Ñ ÐºÑ–Ð½Ñ†Ñ Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ñƒ"
#: locale/programs/charmap.c:615 locale/programs/ld-address.c:524
#: locale/programs/ld-collate.c:2616 locale/programs/ld-collate.c:3774
-#: locale/programs/ld-ctype.c:2117 locale/programs/ld-ctype.c:2829
+#: locale/programs/ld-ctype.c:2118 locale/programs/ld-ctype.c:2830
#: locale/programs/ld-identification.c:397
#: locale/programs/ld-measurement.c:213 locale/programs/ld-messages.c:295
#: locale/programs/ld-monetary.c:748 locale/programs/ld-name.c:262
@@ -1735,58 +1736,58 @@ msgstr "%1$s: Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð½Ðµ завершуєтьÑÑ Ð½Ð° «END %1$s
msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
msgstr "за визначеннÑм CHARMAP можуть бути лише Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ WIDTH"
-#: locale/programs/charmap.c:656 locale/programs/charmap.c:719
+#: locale/programs/charmap.c:656 locale/programs/charmap.c:720
#, c-format
msgid "value for %s must be an integer"
msgstr "значеннÑм %s має бути ціле чиÑло"
-#: locale/programs/charmap.c:847
+#: locale/programs/charmap.c:848
#, c-format
msgid "%s: error in state machine"
msgstr "%s: помилка у Ñкінченному автоматі"
-#: locale/programs/charmap.c:855 locale/programs/ld-address.c:540
+#: locale/programs/charmap.c:856 locale/programs/ld-address.c:540
#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967
-#: locale/programs/ld-ctype.c:2114 locale/programs/ld-ctype.c:2846
+#: locale/programs/ld-ctype.c:2115 locale/programs/ld-ctype.c:2847
#: locale/programs/ld-identification.c:413
#: locale/programs/ld-measurement.c:229 locale/programs/ld-messages.c:311
#: locale/programs/ld-monetary.c:764 locale/programs/ld-name.c:278
#: locale/programs/ld-numeric.c:341 locale/programs/ld-paper.c:228
#: locale/programs/ld-telephone.c:292 locale/programs/ld-time.c:990
-#: locale/programs/locfile.c:997 locale/programs/repertoire.c:323
+#: locale/programs/locfile.c:1010 locale/programs/repertoire.c:323
#, c-format
msgid "%s: premature end of file"
msgstr "%s: передчаÑне Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð°"
-#: locale/programs/charmap.c:874 locale/programs/charmap.c:885
+#: locale/programs/charmap.c:875 locale/programs/charmap.c:886
#, c-format
msgid "unknown character `%s'"
msgstr "невідомий Ñимвол «%s»"
-#: locale/programs/charmap.c:893
+#: locale/programs/charmap.c:894
#, c-format
msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d"
msgstr "кількіÑÑ‚ÑŒ байтів у поÑлідовноÑÑ‚ÑÑ… запиÑу початку Ñ– Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½ не Ñ” однаковою: %d Ñ– %d"
-#: locale/programs/charmap.c:998 locale/programs/ld-collate.c:2893
+#: locale/programs/charmap.c:999 locale/programs/ld-collate.c:2893
#: locale/programs/repertoire.c:418
msgid "invalid names for character range"
msgstr "некоректні назви Ð´Ð»Ñ Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ñƒ Ñимволів"
-#: locale/programs/charmap.c:1010 locale/programs/repertoire.c:430
+#: locale/programs/charmap.c:1011 locale/programs/repertoire.c:430
msgid "hexadecimal range format should use only capital characters"
msgstr "у шіÑтнадцÑтковому форматі діапазону мають викориÑтовуватиÑÑ Ð»Ð¸ÑˆÐµ великі літери"
-#: locale/programs/charmap.c:1028 locale/programs/repertoire.c:448
+#: locale/programs/charmap.c:1029 locale/programs/repertoire.c:448
#, c-format
msgid "<%s> and <%s> are invalid names for range"
msgstr "<%s> Ñ– <%s> Ñ” некоректними назвами Ð´Ð»Ñ Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ñƒ"
-#: locale/programs/charmap.c:1034 locale/programs/repertoire.c:455
+#: locale/programs/charmap.c:1035 locale/programs/repertoire.c:455
msgid "upper limit in range is smaller than lower limit"
msgstr "верхнє Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ñƒ діапазоні Ñ” меншим за нижнє обмеженнÑ"
-#: locale/programs/charmap.c:1092
+#: locale/programs/charmap.c:1093
msgid "resulting bytes for range not representable."
msgstr "байти результату Ð´Ð»Ñ Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ñƒ неможливо предÑтавити на комп’ютері."
@@ -1855,7 +1856,7 @@ msgid "%s: numeric country code `%d' not valid"
msgstr "%s: чиÑловий код країни «%d» Ñ” некоректним"
#: locale/programs/ld-address.c:432 locale/programs/ld-address.c:469
-#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2478
+#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2479
#: locale/programs/ld-identification.c:309
#: locale/programs/ld-measurement.c:196 locale/programs/ld-messages.c:264
#: locale/programs/ld-monetary.c:503 locale/programs/ld-monetary.c:538
@@ -1878,7 +1879,7 @@ msgid "%s: unknown character in field `%s'"
msgstr "%s: невідомий Ñимвол у полі «%s»"
#: locale/programs/ld-address.c:521 locale/programs/ld-collate.c:3772
-#: locale/programs/ld-ctype.c:2826 locale/programs/ld-identification.c:394
+#: locale/programs/ld-ctype.c:2827 locale/programs/ld-identification.c:394
#: locale/programs/ld-measurement.c:210 locale/programs/ld-messages.c:293
#: locale/programs/ld-monetary.c:746 locale/programs/ld-name.c:260
#: locale/programs/ld-numeric.c:323 locale/programs/ld-paper.c:210
@@ -1891,8 +1892,8 @@ msgstr "%s: незавершений Ñ€Ñдок «END»"
#: locale/programs/ld-collate.c:602 locale/programs/ld-collate.c:898
#: locale/programs/ld-collate.c:911 locale/programs/ld-collate.c:2582
#: locale/programs/ld-collate.c:2603 locale/programs/ld-collate.c:3957
-#: locale/programs/ld-ctype.c:1846 locale/programs/ld-ctype.c:2104
-#: locale/programs/ld-ctype.c:2676 locale/programs/ld-ctype.c:2837
+#: locale/programs/ld-ctype.c:1847 locale/programs/ld-ctype.c:2105
+#: locale/programs/ld-ctype.c:2677 locale/programs/ld-ctype.c:2838
#: locale/programs/ld-identification.c:404
#: locale/programs/ld-measurement.c:220 locale/programs/ld-messages.c:302
#: locale/programs/ld-monetary.c:755 locale/programs/ld-name.c:269
@@ -2236,129 +2237,129 @@ msgstr "таблицю Ñимволів «%s» вже визначено"
msgid "implementation limit: no more than %d character maps allowed"
msgstr "Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ñ€ÐµÐ°Ð»Ñ–Ð·Ð°Ñ†Ñ–Ñ—: передбачено підтримку не більше за %d таблиць Ñимволів"
-#: locale/programs/ld-ctype.c:1434 locale/programs/ld-ctype.c:1559
-#: locale/programs/ld-ctype.c:1665 locale/programs/ld-ctype.c:2341
-#: locale/programs/ld-ctype.c:3299
+#: locale/programs/ld-ctype.c:1435 locale/programs/ld-ctype.c:1560
+#: locale/programs/ld-ctype.c:1666 locale/programs/ld-ctype.c:2342
+#: locale/programs/ld-ctype.c:3302
#, c-format
msgid "%s: field `%s' does not contain exactly ten entries"
msgstr "%s: у полі «%s» не міÑтитьÑÑ Ñ‚Ð¾Ñ‡Ð½Ð¾ деÑÑÑ‚ÑŒ запиÑів"
-#: locale/programs/ld-ctype.c:1462 locale/programs/ld-ctype.c:2036
+#: locale/programs/ld-ctype.c:1463 locale/programs/ld-ctype.c:2037
#, c-format
msgid "to-value <U%0*X> of range is smaller than from-value <U%0*X>"
msgstr "верхнє Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ñƒ <U%0*X> Ñ” меншим за нижнє Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ <U%0*X>"
-#: locale/programs/ld-ctype.c:1589
+#: locale/programs/ld-ctype.c:1590
msgid "start and end character sequence of range must have the same length"
msgstr "початкова Ñ– кінцева поÑлідовноÑÑ‚Ñ– Ñимволів діапазону повинні бути однакової довжини"
-#: locale/programs/ld-ctype.c:1596
+#: locale/programs/ld-ctype.c:1597
msgid "to-value character sequence is smaller than from-value sequence"
msgstr "кінцева поÑлідовніÑÑ‚ÑŒ Ñимволу діапазону Ñ” меншою за початкову поÑлідовніÑÑ‚ÑŒ"
-#: locale/programs/ld-ctype.c:1956 locale/programs/ld-ctype.c:2007
+#: locale/programs/ld-ctype.c:1957 locale/programs/ld-ctype.c:2008
msgid "premature end of `translit_ignore' definition"
msgstr "передчаÑне Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Â«translit_ignore»"
-#: locale/programs/ld-ctype.c:1962 locale/programs/ld-ctype.c:2013
-#: locale/programs/ld-ctype.c:2055
+#: locale/programs/ld-ctype.c:1963 locale/programs/ld-ctype.c:2014
+#: locale/programs/ld-ctype.c:2056
msgid "syntax error"
msgstr "ÑинтакÑична помилка"
-#: locale/programs/ld-ctype.c:2188
+#: locale/programs/ld-ctype.c:2189
#, c-format
msgid "%s: syntax error in definition of new character class"
msgstr "%s: ÑинтакÑична помилка у визначенні нового клаÑу Ñимволів"
-#: locale/programs/ld-ctype.c:2203
+#: locale/programs/ld-ctype.c:2204
#, c-format
msgid "%s: syntax error in definition of new character map"
msgstr "%s: ÑинтакÑична помилка у визначенні нової таблиці Ñимволів"
-#: locale/programs/ld-ctype.c:2363
+#: locale/programs/ld-ctype.c:2364
msgid "ellipsis range must be marked by two operands of same type"
msgstr "діапазон з еліпÑиÑом має бути позначено двома операндами одного типу"
-#: locale/programs/ld-ctype.c:2372
+#: locale/programs/ld-ctype.c:2373
msgid "with symbolic name range values the absolute ellipsis `...' must not be used"
msgstr "з Ñимволічними назвами значень діапазону не можна викориÑтовувати абÑолютний еліпÑÐ¸Ñ Â«...»"
-#: locale/programs/ld-ctype.c:2387
+#: locale/programs/ld-ctype.c:2388
msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'"
msgstr "зі значеннÑми діапазону UCS Ñлід викориÑтовувати шіÑтнадцÑтковий Ñимвольний еліпÑÐ¸Ñ Â«..»"
-#: locale/programs/ld-ctype.c:2401
+#: locale/programs/ld-ctype.c:2402
msgid "with character code range values one must use the absolute ellipsis `...'"
msgstr "зі значеннÑм діапазону кодувань Ñимволів Ñлід викориÑтовувати абÑолютний еліпÑÐ¸Ñ Â«...»"
-#: locale/programs/ld-ctype.c:2552
+#: locale/programs/ld-ctype.c:2553
#, c-format
msgid "duplicated definition for mapping `%s'"
msgstr "дублікат Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Â«%s»"
-#: locale/programs/ld-ctype.c:2638 locale/programs/ld-ctype.c:2782
+#: locale/programs/ld-ctype.c:2639 locale/programs/ld-ctype.c:2783
#, c-format
msgid "%s: `translit_start' section does not end with `translit_end'"
msgstr "%s: розділ «translit_start» не завершуєтьÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾ÑŽ «translit_end»"
-#: locale/programs/ld-ctype.c:2733
+#: locale/programs/ld-ctype.c:2734
#, c-format
msgid "%s: duplicate `default_missing' definition"
msgstr "%s: повторне Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Â«default_missing»"
-#: locale/programs/ld-ctype.c:2738
+#: locale/programs/ld-ctype.c:2739
msgid "previous definition was here"
msgstr "попереднє Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð±ÑƒÐ»Ð¾ тут:"
-#: locale/programs/ld-ctype.c:2760
+#: locale/programs/ld-ctype.c:2761
#, c-format
msgid "%s: no representable `default_missing' definition found"
msgstr "%s: не знайдено придатного Ð´Ð»Ñ Ð¿Ñ€ÐµÐ´ÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Â«default_missing»"
-#: locale/programs/ld-ctype.c:2877 locale/programs/ld-ctype.c:2973
-#: locale/programs/ld-ctype.c:2992 locale/programs/ld-ctype.c:3012
-#: locale/programs/ld-ctype.c:3032 locale/programs/ld-ctype.c:3052
-#: locale/programs/ld-ctype.c:3072 locale/programs/ld-ctype.c:3111
-#: locale/programs/ld-ctype.c:3131 locale/programs/ld-ctype.c:3195
-#: locale/programs/ld-ctype.c:3236 locale/programs/ld-ctype.c:3259
+#: locale/programs/ld-ctype.c:2878 locale/programs/ld-ctype.c:2974
+#: locale/programs/ld-ctype.c:2993 locale/programs/ld-ctype.c:3013
+#: locale/programs/ld-ctype.c:3033 locale/programs/ld-ctype.c:3053
+#: locale/programs/ld-ctype.c:3073 locale/programs/ld-ctype.c:3112
+#: locale/programs/ld-ctype.c:3132 locale/programs/ld-ctype.c:3198
+#: locale/programs/ld-ctype.c:3239 locale/programs/ld-ctype.c:3262
#, c-format
msgid "%s: character `%s' not defined while needed as default value"
msgstr "%s: Ñимвол «%s» не визначено, хоча він Ñ– потрібен Ñк типове значеннÑ"
-#: locale/programs/ld-ctype.c:2882 locale/programs/ld-ctype.c:2978
-#: locale/programs/ld-ctype.c:2997 locale/programs/ld-ctype.c:3017
-#: locale/programs/ld-ctype.c:3037 locale/programs/ld-ctype.c:3057
-#: locale/programs/ld-ctype.c:3077 locale/programs/ld-ctype.c:3116
-#: locale/programs/ld-ctype.c:3136 locale/programs/ld-ctype.c:3200
+#: locale/programs/ld-ctype.c:2883 locale/programs/ld-ctype.c:2979
+#: locale/programs/ld-ctype.c:2998 locale/programs/ld-ctype.c:3018
+#: locale/programs/ld-ctype.c:3038 locale/programs/ld-ctype.c:3058
+#: locale/programs/ld-ctype.c:3078 locale/programs/ld-ctype.c:3117
+#: locale/programs/ld-ctype.c:3137 locale/programs/ld-ctype.c:3203
#, c-format
msgid "%s: character `%s' in charmap not representable with one byte"
msgstr "%s: Ñимвол «%s» у таблиці Ñимволів не можна предÑтавити одним байтом"
-#: locale/programs/ld-ctype.c:3242 locale/programs/ld-ctype.c:3265
+#: locale/programs/ld-ctype.c:3245 locale/programs/ld-ctype.c:3268
#, c-format
msgid "%s: character `%s' needed as default value not representable with one byte"
msgstr "%s: Ñимвол «%s», потрібний Ñк типове значеннÑ, не можна предÑтавити одним байтом"
-#: locale/programs/ld-ctype.c:3321
+#: locale/programs/ld-ctype.c:3324
msgid "no output digits defined and none of the standard names in the charmap"
msgstr "не визначено вихідних цифр Ñ– немає Ñтандартних назв у таблиці Ñимволів"
-#: locale/programs/ld-ctype.c:3570
+#: locale/programs/ld-ctype.c:3573
#, c-format
msgid "%s: transliteration data from locale `%s' not available"
msgstr "%s: дані транÑлітерації з локалі «%s» недоÑтупні"
-#: locale/programs/ld-ctype.c:3669
+#: locale/programs/ld-ctype.c:3672
#, c-format
msgid "%s: table for class \"%s\": %lu bytes"
msgstr "%s: Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ ÐºÐ»Ð°Ñу «%s»: %lu байт"
-#: locale/programs/ld-ctype.c:3733
+#: locale/programs/ld-ctype.c:3736
#, c-format
msgid "%s: table for map \"%s\": %lu bytes"
msgstr "%s: Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ ÐºÐ°Ñ€Ñ‚Ð¸ «%s»: %lu байт"
-#: locale/programs/ld-ctype.c:3857
+#: locale/programs/ld-ctype.c:3860
#, c-format
msgid "%s: table for width: %lu bytes"
msgstr "%s: Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ ÑˆÐ¸Ñ€Ð¸Ð½Ð¸: %lu байт"
@@ -2598,120 +2599,114 @@ msgstr ""
"ÐÐЗВÐ\n"
"[-a|-m]"
-#: locale/programs/locale.c:190
+#: locale/programs/locale.c:522
#, c-format
-msgid "Cannot set LC_CTYPE to default locale"
-msgstr "Ðе вдалоÑÑ Ð²Ñтановити Ð´Ð»Ñ LC_CTYPE типове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð»Ð¾ÐºÐ°Ð»Ñ–"
-
-#: locale/programs/locale.c:192
-#, c-format
-msgid "Cannot set LC_MESSAGES to default locale"
-msgstr "Ðе вдалоÑÑ Ð²Ñтановити Ð´Ð»Ñ LC_MESSAGES типове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð»Ð¾ÐºÐ°Ð»Ñ–"
+msgid "while preparing output"
+msgstr "під Ñ‡Ð°Ñ Ð¿Ñ€Ð¸Ð³Ð¾Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…"
-#: locale/programs/locale.c:205
+#: locale/programs/locale.c:998
#, c-format
-msgid "Cannot set LC_COLLATE to default locale"
-msgstr "Ðе вдалоÑÑ Ð²Ñтановити Ð´Ð»Ñ LC_COLLATE типове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð»Ð¾ÐºÐ°Ð»Ñ–"
+msgid "Cannot set %s to default locale"
+msgstr "Ðе вдалоÑÑ Ð²Ñтановити Ð´Ð»Ñ %s типове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð»Ð¾ÐºÐ°Ð»Ñ–"
-#: locale/programs/locale.c:221
+#: locale/programs/locale.c:1096
#, c-format
-msgid "Cannot set LC_ALL to default locale"
-msgstr "Ðе вдалоÑÑ Ð²Ñтановити Ð´Ð»Ñ LC_ALL типове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð»Ð¾ÐºÐ°Ð»Ñ–"
+msgid "warning: The LOCPATH variable is set to \"%s\"\n"
+msgstr "попередженнÑ: Ð´Ð»Ñ Ð·Ð¼Ñ–Ð½Ð½Ð¾Ñ— LOCPATH вÑтановлено Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Â«%s»\n"
-#: locale/programs/locale.c:521
-#, c-format
-msgid "while preparing output"
-msgstr "під Ñ‡Ð°Ñ Ð¿Ñ€Ð¸Ð³Ð¾Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…"
-
-#: locale/programs/localedef.c:112
+#: locale/programs/localedef.c:116
msgid "Input Files:"
msgstr "Файли вхідних даних:"
-#: locale/programs/localedef.c:114
+#: locale/programs/localedef.c:118
msgid "Symbolic character names defined in FILE"
msgstr "Символічні назви Ñимволів визначено у файлі ФÐЙЛ"
-#: locale/programs/localedef.c:116
+#: locale/programs/localedef.c:120
msgid "Source definitions are found in FILE"
msgstr "Початкові Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð¾Ð¶Ð½Ð° знайти у файлі ФÐЙЛ"
-#: locale/programs/localedef.c:118
+#: locale/programs/localedef.c:122
msgid "FILE contains mapping from symbolic names to UCS4 values"
msgstr "У файлі ФÐЙЛ міÑтитьÑÑ Ð¿Ñ€Ð¸Ð²â€™Ñзка Ñимвольних назв до значень UCS4"
-#: locale/programs/localedef.c:122
+#: locale/programs/localedef.c:126
msgid "Create output even if warning messages were issued"
msgstr "ВивеÑти дані результату, навіть Ñкщо було отримано попередженнÑ"
-#: locale/programs/localedef.c:123
+#: locale/programs/localedef.c:128
+msgid "Do not create hard links between installed locales"
+msgstr "Ðе Ñтворювати жорÑтких поÑилань між вÑтановленими локалÑми"
+
+#: locale/programs/localedef.c:129
msgid "Optional output file prefix"
msgstr "Ðеобов’Ñзковий Ð¿Ñ€ÐµÑ„Ñ–ÐºÑ Ð°Ð´Ñ€ÐµÑи файла виведених даних"
-#: locale/programs/localedef.c:124
+#: locale/programs/localedef.c:130
msgid "Strictly conform to POSIX"
msgstr "Строго дотримуватиÑÑ Ñтандарту POSIX"
-#: locale/programs/localedef.c:126
+#: locale/programs/localedef.c:132
msgid "Suppress warnings and information messages"
msgstr "Придушити Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½ÑŒ та інформаційних повідомлень"
-#: locale/programs/localedef.c:127
+#: locale/programs/localedef.c:133
msgid "Print more messages"
msgstr "ВивеÑти додаткові повідомленнÑ"
-#: locale/programs/localedef.c:128 locale/programs/localedef.c:131
+#: locale/programs/localedef.c:134 locale/programs/localedef.c:137
msgid "<warnings>"
msgstr "<попередженнÑ>"
-#: locale/programs/localedef.c:129
+#: locale/programs/localedef.c:135
msgid "Comma-separated list of warnings to disable; supported warnings are: ascii, intcurrsym"
msgstr "СпиÑок попереджень, Ñкі Ñлід вимкнути, відокремлених комами; передбачено підтримку таких попереджень: ascii, intcurrsym"
-#: locale/programs/localedef.c:132
+#: locale/programs/localedef.c:138
msgid "Comma-separated list of warnings to enable; supported warnings are: ascii, intcurrsym"
msgstr "СпиÑок попереджень, Ñкі Ñлід увімкнути, відокремлених комами; передбачено підтримку таких попереджень: ascii, intcurrsym"
-#: locale/programs/localedef.c:135
+#: locale/programs/localedef.c:141
msgid "Archive control:"
msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ñ€Ñ…Ñ–Ð²ÑƒÐ²Ð°Ð½Ð½Ñм:"
-#: locale/programs/localedef.c:137
+#: locale/programs/localedef.c:143
msgid "Don't add new data to archive"
msgstr "Ðе додавати нові дані до архіву"
-#: locale/programs/localedef.c:139
+#: locale/programs/localedef.c:145
msgid "Add locales named by parameters to archive"
msgstr "Додати локалі, визначені параметрами, до архіву"
-#: locale/programs/localedef.c:140
+#: locale/programs/localedef.c:146
msgid "Replace existing archive content"
msgstr "Замінити вміÑÑ‚ наÑвного архіву"
-#: locale/programs/localedef.c:142
+#: locale/programs/localedef.c:148
msgid "Remove locales named by parameters from archive"
msgstr "Вилучити вказані Ñк параметри локалі з архіву"
-#: locale/programs/localedef.c:143
+#: locale/programs/localedef.c:149
msgid "List content of archive"
msgstr "Показати ÑпиÑок вміÑту архіву"
-#: locale/programs/localedef.c:145
+#: locale/programs/localedef.c:151
msgid "locale.alias file to consult when making archive"
msgstr "файл locale.alias, дані у Ñкому Ñлід викориÑтовувати під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð°Ñ€Ñ…Ñ–Ð²Ñƒ"
-#: locale/programs/localedef.c:147
+#: locale/programs/localedef.c:153
msgid "Generate little-endian output"
msgstr "ВивеÑти результат з прÑмим порÑдком байтів"
-#: locale/programs/localedef.c:149
+#: locale/programs/localedef.c:155
msgid "Generate big-endian output"
msgstr "ВивеÑти результат зі зворотним порÑдком байтів"
-#: locale/programs/localedef.c:154
+#: locale/programs/localedef.c:160
msgid "Compile locale specification"
msgstr "Зібрати Ñпецифікацію локалі"
-#: locale/programs/localedef.c:157
+#: locale/programs/localedef.c:163
msgid ""
"NAME\n"
"[--add-to-archive|--delete-from-archive] FILE...\n"
@@ -2721,31 +2716,31 @@ msgstr ""
"[--add-to-archive|--delete-from-archive] ФÐЙЛ...\n"
"--list-archive [ФÐЙЛ]"
-#: locale/programs/localedef.c:232
+#: locale/programs/localedef.c:238
#, c-format
msgid "cannot create directory for output files"
msgstr "не вдалоÑÑ Ñтворити каталог Ð´Ð»Ñ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð²"
-#: locale/programs/localedef.c:243
+#: locale/programs/localedef.c:249
msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
msgstr "КРИТИЧÐРПОМИЛКÐ: у ÑиÑтемі не визначено «_POSIX2_LOCALEDEF»"
-#: locale/programs/localedef.c:257 locale/programs/localedef.c:273
-#: locale/programs/localedef.c:663 locale/programs/localedef.c:683
+#: locale/programs/localedef.c:263 locale/programs/localedef.c:279
+#: locale/programs/localedef.c:673 locale/programs/localedef.c:693
#, c-format
msgid "cannot open locale definition file `%s'"
msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ файл Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð»Ð¾ÐºÐ°Ð»Ñ– «%s»"
-#: locale/programs/localedef.c:297
+#: locale/programs/localedef.c:303
#, c-format
msgid "cannot write output files to `%s'"
msgstr "не вдалоÑÑ Ð²Ð¸Ð²ÐµÑти файли до «%s»"
-#: locale/programs/localedef.c:303
+#: locale/programs/localedef.c:309
msgid "no output file produced because errors were issued"
msgstr "файл результатів роботи не Ñтворено, оÑкільки виÑвлено помилки"
-#: locale/programs/localedef.c:431
+#: locale/programs/localedef.c:441
#, c-format
msgid ""
"System's directory for character maps : %s\n"
@@ -2758,11 +2753,11 @@ msgstr ""
"\t\t шлÑÑ… до локалі : %s\n"
"%s"
-#: locale/programs/localedef.c:631
+#: locale/programs/localedef.c:641
msgid "circular dependencies between locale definitions"
msgstr "циклічні залежноÑÑ‚Ñ– у визначеннÑÑ… локалей"
-#: locale/programs/localedef.c:637
+#: locale/programs/localedef.c:647
#, c-format
msgid "cannot add already read locale `%s' a second time"
msgstr "неможливо додати вже прочитану локаль «%s» удруге"
@@ -2918,24 +2913,24 @@ msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ файл виведених данÐ
msgid "failure while writing data for category `%s'"
msgstr "помилка під Ñ‡Ð°Ñ Ð´Ñ–Ñ— з запиÑÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ ÐºÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ñ–Ñ— «%s»"
-#: locale/programs/locfile.c:917
+#: locale/programs/locfile.c:930
#, c-format
msgid "cannot create output file `%s' for category `%s'"
msgstr "не вдалоÑÑ Ñтворити файл виведених даних «%s» Ð´Ð»Ñ ÐºÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ñ–Ñ— «%s»"
-#: locale/programs/locfile.c:953
+#: locale/programs/locfile.c:966
msgid "expecting string argument for `copy'"
msgstr "мало бути вказано аргумент-Ñ€Ñдок Ð´Ð»Ñ Â«copy»"
-#: locale/programs/locfile.c:957
+#: locale/programs/locfile.c:970
msgid "locale name should consist only of portable characters"
msgstr "назва локалі має ÑкладатиÑÑ Ð»Ð¸ÑˆÐµ з придатних до перенеÑÐµÐ½Ð½Ñ Ñимволів"
-#: locale/programs/locfile.c:976
+#: locale/programs/locfile.c:989
msgid "no other keyword shall be specified when `copy' is used"
msgstr "не можна вказувати інші ключові Ñлова, Ñкщо вже вказано «copy»"
-#: locale/programs/locfile.c:990
+#: locale/programs/locfile.c:1003
#, c-format
msgid "`%1$s' definition does not end with `END %1$s'"
msgstr "Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Â«%1$s» не завершуєтьÑÑ Ð½Ð° «END %1$s»"
@@ -3768,12 +3763,12 @@ msgstr "yp_update: не вдалоÑÑ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ адреÑу вуÐ
msgid "yp_update: cannot get server address\n"
msgstr "yp_update: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ адреÑу Ñервера\n"
-#: nscd/aicache.c:83 nscd/hstcache.c:452
+#: nscd/aicache.c:82 nscd/hstcache.c:452
#, c-format
msgid "Haven't found \"%s\" in hosts cache!"
msgstr "Ðе вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ «%s» у кеші вузлів!"
-#: nscd/aicache.c:85 nscd/hstcache.c:454
+#: nscd/aicache.c:84 nscd/hstcache.c:454
#, c-format
msgid "Reloading \"%s\" in hosts cache!"
msgstr "Перезавантажуємо «%s» у кеші вузлів!"
@@ -4094,22 +4089,22 @@ msgstr "вивільнено %zu байтів у кеші %s"
msgid "no more memory for database '%s'"
msgstr "недоÑтатньо пам’ÑÑ‚Ñ– Ð´Ð»Ñ Ð±Ð°Ð·Ð¸ даних «%s»"
-#: nscd/netgroupcache.c:121
+#: nscd/netgroupcache.c:122
#, c-format
msgid "Haven't found \"%s\" in netgroup cache!"
msgstr "Ðе вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ «%s» у кеші netgroup!"
-#: nscd/netgroupcache.c:123
+#: nscd/netgroupcache.c:124
#, c-format
msgid "Reloading \"%s\" in netgroup cache!"
msgstr "Перезавантажуємо «%s» до кешу netgroup!"
-#: nscd/netgroupcache.c:469
+#: nscd/netgroupcache.c:470
#, c-format
msgid "Haven't found \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr "Ðе вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ «%s (%s,%s,%s)» у кеші netgroup!"
-#: nscd/netgroupcache.c:472
+#: nscd/netgroupcache.c:473
#, c-format
msgid "Reloading \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr "Перезавантажуємо «%s (%s,%s,%s)» до кешу netgroup!"
@@ -4162,7 +4157,7 @@ msgstr "ВикориÑтовувати окремий кеш Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³
msgid "Name Service Cache Daemon."
msgstr "Фонова Ñлужба ÐºÐµÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ñлужби назв."
-#: nscd/nscd.c:155 nss/getent.c:967 nss/makedb.c:206
+#: nscd/nscd.c:155 nss/getent.c:987 nss/makedb.c:206
#, c-format
msgid "wrong number of arguments"
msgstr "помилкова кількіÑÑ‚ÑŒ параметрів"
@@ -4270,27 +4265,27 @@ msgstr "Помилка обробки: %s"
msgid "Must specify user name for server-user option"
msgstr "Ð”Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° server-user Ñлід вказати Ñ–Ð¼â€™Ñ ÐºÐ¾Ñ€Ð¸Ñтувача"
-#: nscd/nscd_conf.c:198
+#: nscd/nscd_conf.c:201
#, c-format
msgid "Must specify user name for stat-user option"
msgstr "Ð”Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° stat-user Ñлід вказати Ñ–Ð¼â€™Ñ ÐºÐ¾Ñ€Ð¸Ñтувача"
-#: nscd/nscd_conf.c:255
+#: nscd/nscd_conf.c:259
#, c-format
msgid "Must specify value for restart-interval option"
msgstr "Ð”Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° restart-interval Ñлід вказати значеннÑ"
-#: nscd/nscd_conf.c:269
+#: nscd/nscd_conf.c:273
#, c-format
msgid "Unknown option: %s %s %s"
msgstr "Ðевідомий параметр: %s %s %s"
-#: nscd/nscd_conf.c:282
+#: nscd/nscd_conf.c:286
#, c-format
msgid "cannot get current working directory: %s; disabling paranoia mode"
msgstr "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ поточний робочий каталог: %s; вимикаємо параноїдальний режим"
-#: nscd/nscd_conf.c:302
+#: nscd/nscd_conf.c:306
#, c-format
msgid "maximum file size for %s database too small"
msgstr "макÑимальний розмір файла Ð´Ð»Ñ Ð±Ð°Ð·Ð¸ даних %s Ñ” надто малим"
@@ -4552,46 +4547,46 @@ msgstr "Ðе вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ «%s» у кеші Ñлужб!"
msgid "Reloading \"%s\" in services cache!"
msgstr "Перезавантажуємо «%s» до кешу Ñлужб!"
-#: nss/getent.c:54
+#: nss/getent.c:55
msgid "database [key ...]"
msgstr "база даних [ключ ...]"
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "CONFIG"
msgstr "ÐÐЛÐШТУВÐÐÐЯ"
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "Service configuration to be used"
msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñлужби, Ñкі буде викориÑтано"
-#: nss/getent.c:60
+#: nss/getent.c:61
msgid "disable IDN encoding"
msgstr "вимкнути ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ IDN"
-#: nss/getent.c:65
+#: nss/getent.c:66
msgid "Get entries from administrative database."
msgstr "Отримати запиÑи з адмініÑтративної бази даних."
-#: nss/getent.c:149 nss/getent.c:442 nss/getent.c:489
+#: nss/getent.c:150 nss/getent.c:462 nss/getent.c:509
#, c-format
msgid "Enumeration not supported on %s\n"
msgstr "Ð”Ð»Ñ %s Ð½ÑƒÐ¼ÐµÑ€Ð°Ñ†Ñ–Ñ Ð½Ðµ підтримуєтьÑÑ\n"
-#: nss/getent.c:497 nss/getent.c:510
+#: nss/getent.c:517 nss/getent.c:530
#, c-format
msgid "Could not allocate group list: %m\n"
msgstr "Ðе вдалоÑÑ Ñ€Ð¾Ð·Ð¼Ñ–Ñтити ÑпиÑок груп у пам'ÑÑ‚Ñ–: %m\n"
-#: nss/getent.c:881
+#: nss/getent.c:901
#, c-format
msgid "Unknown database name"
msgstr "Ðевідома назва бази даних"
-#: nss/getent.c:911
+#: nss/getent.c:931
msgid "Supported databases:\n"
msgstr "Підтримувані бази даних:\n"
-#: nss/getent.c:977
+#: nss/getent.c:997
#, c-format
msgid "Unknown database: %s\n"
msgstr "Ðевідома база даних: %s\n"
@@ -4846,11 +4841,11 @@ msgstr "Занадто об’ємний формальний вираз"
msgid "Unmatched ) or \\)"
msgstr "Ðеврівноважена поÑлідовніÑÑ‚ÑŒ ) або \\)"
-#: posix/regcomp.c:689
+#: posix/regcomp.c:676
msgid "No previous regular expression"
msgstr "Ðе виÑвлено попереднього формального виразу"
-#: posix/wordexp.c:1815
+#: posix/wordexp.c:1816
msgid "parameter null or not set"
msgstr "параметр нульової довжини або його Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð½Ðµ вказано"
@@ -5035,7 +5030,7 @@ msgstr "ДоÑтупні буфери Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…"
msgid "Input message available"
msgstr "ДоÑтупне вхідне повідомленнÑ"
-#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:381 timezone/zic.c:520
+#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:375 timezone/zic.c:561
msgid "I/O error"
msgstr "помилка вводу/виводу"
@@ -5118,7 +5113,7 @@ msgstr "Ðевідомий Ñигнал %d"
#: sunrpc/auth_unix.c:112 sunrpc/clnt_tcp.c:124 sunrpc/clnt_udp.c:139
#: sunrpc/clnt_unix.c:125 sunrpc/svc_tcp.c:189 sunrpc/svc_tcp.c:233
#: sunrpc/svc_udp.c:161 sunrpc/svc_unix.c:189 sunrpc/svc_unix.c:229
-#: sunrpc/xdr.c:628 sunrpc/xdr.c:788 sunrpc/xdr_array.c:102
+#: sunrpc/xdr.c:631 sunrpc/xdr.c:791 sunrpc/xdr_array.c:102
#: sunrpc/xdr_rec.c:153 sunrpc/xdr_ref.c:79
msgid "out of memory\n"
msgstr "не виÑтачає пам'ÑÑ‚Ñ–\n"
@@ -6369,56 +6364,69 @@ msgid "You really blew it this time"
msgstr "Цього разу ви проÑто знищили уÑÑ–Ñ…"
#. TRANS Go home and have a glass of warm, dairy-fresh milk.
-#: sysdeps/gnu/errlist.c:978
+#. TRANS @c Okay. Since you are dying to know, I'll tell you.
+#. TRANS @c This is a joke, obviously. There is a children's song which begins,
+#. TRANS @c "Old McDonald had a farm, e-i-e-i-o." Every time I see the (real)
+#. TRANS @c errno macro EIO, I think about that song. Probably most of my
+#. TRANS @c compatriots who program on Unix do, too. One of them must have stayed
+#. TRANS @c up a little too late one night and decided to add it to Hurd or Glibc.
+#. TRANS @c Whoever did it should be castigated, but it made me laugh.
+#. TRANS @c --jtobey@channel1.com
+#. TRANS @c
+#. TRANS @c "bought the farm" means "died". -jtobey
+#. TRANS @c
+#. TRANS @c Translators, please do not translate this litteraly, translate it into
+#. TRANS @c an idiomatic funny way of saying that the computer died.
+#: sysdeps/gnu/errlist.c:991
msgid "Computer bought the farm"
msgstr "Комп’ютеру капець"
#. TRANS This error code has no purpose.
-#: sysdeps/gnu/errlist.c:987
+#: sysdeps/gnu/errlist.c:1000
msgid "Gratuitous error"
msgstr "Безпричинна помилка"
-#: sysdeps/gnu/errlist.c:995
+#: sysdeps/gnu/errlist.c:1008
msgid "Bad message"
msgstr "Помилкове повідомленнÑ"
-#: sysdeps/gnu/errlist.c:1003
+#: sysdeps/gnu/errlist.c:1016
msgid "Identifier removed"
msgstr "Ідентифікатор вилучено"
-#: sysdeps/gnu/errlist.c:1011
+#: sysdeps/gnu/errlist.c:1024
msgid "Multihop attempted"
msgstr "Спроба кратного переходу"
-#: sysdeps/gnu/errlist.c:1019
+#: sysdeps/gnu/errlist.c:1032
msgid "No data available"
msgstr "Ðе виÑвлено даних"
-#: sysdeps/gnu/errlist.c:1027
+#: sysdeps/gnu/errlist.c:1040
msgid "Link has been severed"
msgstr "Зв’Ñзок розірвано"
-#: sysdeps/gnu/errlist.c:1035
+#: sysdeps/gnu/errlist.c:1048
msgid "No message of desired type"
msgstr "Ðемає Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð±Ð°Ð¶Ð°Ð½Ð¾Ð³Ð¾ типу"
-#: sysdeps/gnu/errlist.c:1043
+#: sysdeps/gnu/errlist.c:1056
msgid "Out of streams resources"
msgstr "Ðе виÑтачає реÑурÑів потоків"
-#: sysdeps/gnu/errlist.c:1051
+#: sysdeps/gnu/errlist.c:1064
msgid "Device not a stream"
msgstr "ПриÑтрій не Ñ” потоковим"
-#: sysdeps/gnu/errlist.c:1059
+#: sysdeps/gnu/errlist.c:1072
msgid "Value too large for defined data type"
msgstr "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ” надто великим Ð´Ð»Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ð³Ð¾ типу даних"
-#: sysdeps/gnu/errlist.c:1067
+#: sysdeps/gnu/errlist.c:1080
msgid "Protocol error"
msgstr "Помилка протоколу"
-#: sysdeps/gnu/errlist.c:1075
+#: sysdeps/gnu/errlist.c:1088
msgid "Timer expired"
msgstr "Відлік на таймері завершено"
@@ -6426,195 +6434,195 @@ msgstr "Відлік на таймері завершено"
#. TRANS completed. @xref{Asynchronous I/O}. When you call @code{aio_cancel},
#. TRANS the normal result is for the operations affected to complete with this
#. TRANS error; @pxref{Cancel AIO Operations}.
-#: sysdeps/gnu/errlist.c:1087
+#: sysdeps/gnu/errlist.c:1100
msgid "Operation canceled"
msgstr "Дію ÑкаÑовано"
-#: sysdeps/gnu/errlist.c:1095
+#: sysdeps/gnu/errlist.c:1108
msgid "Owner died"
msgstr "ВлаÑник завершив роботу"
-#: sysdeps/gnu/errlist.c:1103
+#: sysdeps/gnu/errlist.c:1116
msgid "State not recoverable"
msgstr "Ðевідновлюваний Ñтан"
-#: sysdeps/gnu/errlist.c:1111
+#: sysdeps/gnu/errlist.c:1124
msgid "Interrupted system call should be restarted"
msgstr "Перерваний ÑиÑтемний виклик має бути перезапущено"
-#: sysdeps/gnu/errlist.c:1119
+#: sysdeps/gnu/errlist.c:1132
msgid "Channel number out of range"
msgstr "Ðомер каналу лежить поза припуÑтимим діапазоном"
-#: sysdeps/gnu/errlist.c:1127
+#: sysdeps/gnu/errlist.c:1140
msgid "Level 2 not synchronized"
msgstr "Рівень 2 не Ñинхронізовано"
-#: sysdeps/gnu/errlist.c:1135
+#: sysdeps/gnu/errlist.c:1148
msgid "Level 3 halted"
msgstr "Рівень 3 перервано"
-#: sysdeps/gnu/errlist.c:1143
+#: sysdeps/gnu/errlist.c:1156
msgid "Level 3 reset"
msgstr "Рівень 3 Ñкинуто"
-#: sysdeps/gnu/errlist.c:1151
+#: sysdeps/gnu/errlist.c:1164
msgid "Link number out of range"
msgstr "КількіÑÑ‚ÑŒ зв’Ñзків поза припуÑтимим діапазоном"
-#: sysdeps/gnu/errlist.c:1159
+#: sysdeps/gnu/errlist.c:1172
msgid "Protocol driver not attached"
msgstr "Драйвер протоколу не долучено"
-#: sysdeps/gnu/errlist.c:1167
+#: sysdeps/gnu/errlist.c:1180
msgid "No CSI structure available"
msgstr "Структура CSI недоÑтупна"
-#: sysdeps/gnu/errlist.c:1175
+#: sysdeps/gnu/errlist.c:1188
msgid "Level 2 halted"
msgstr "Рівень 2 перервано"
-#: sysdeps/gnu/errlist.c:1183
+#: sysdeps/gnu/errlist.c:1196
msgid "Invalid exchange"
msgstr "Ðекоректний обмін"
-#: sysdeps/gnu/errlist.c:1191
+#: sysdeps/gnu/errlist.c:1204
msgid "Invalid request descriptor"
msgstr "Ðекоректний деÑкриптор запиту"
-#: sysdeps/gnu/errlist.c:1199
+#: sysdeps/gnu/errlist.c:1212
msgid "Exchange full"
msgstr "Повний обмін"
-#: sysdeps/gnu/errlist.c:1207
+#: sysdeps/gnu/errlist.c:1220
msgid "No anode"
msgstr "Ðемає anode"
-#: sysdeps/gnu/errlist.c:1215
+#: sysdeps/gnu/errlist.c:1228
msgid "Invalid request code"
msgstr "Ðекоректний код запиту"
-#: sysdeps/gnu/errlist.c:1223
+#: sysdeps/gnu/errlist.c:1236
msgid "Invalid slot"
msgstr "Ðекоректний Ñлот"
-#: sysdeps/gnu/errlist.c:1231
+#: sysdeps/gnu/errlist.c:1244
msgid "File locking deadlock error"
msgstr "Помилка взаємного Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð°"
-#: sysdeps/gnu/errlist.c:1239
+#: sysdeps/gnu/errlist.c:1252
msgid "Bad font file format"
msgstr "Помилковий формат файла шрифту"
-#: sysdeps/gnu/errlist.c:1247
+#: sysdeps/gnu/errlist.c:1260
msgid "Machine is not on the network"
msgstr "Комп’ютер не перебуває у мережі"
-#: sysdeps/gnu/errlist.c:1255
+#: sysdeps/gnu/errlist.c:1268
msgid "Package not installed"
msgstr "Пакунок не вÑтановлено"
-#: sysdeps/gnu/errlist.c:1263
+#: sysdeps/gnu/errlist.c:1276
msgid "Advertise error"
msgstr "Помилка під Ñ‡Ð°Ñ Ð¾Ð³Ð¾Ð»Ð¾ÑˆÐµÐ½Ð½Ñ"
-#: sysdeps/gnu/errlist.c:1271
+#: sysdeps/gnu/errlist.c:1284
msgid "Srmount error"
msgstr "Помилка srmount"
-#: sysdeps/gnu/errlist.c:1279
+#: sysdeps/gnu/errlist.c:1292
msgid "Communication error on send"
msgstr "Помилка обміну даними під Ñ‡Ð°Ñ Ð½Ð°Ð´ÑиланнÑ"
-#: sysdeps/gnu/errlist.c:1287
+#: sysdeps/gnu/errlist.c:1300
msgid "RFS specific error"
msgstr "Специфічна Ð´Ð»Ñ RFS помилка"
-#: sysdeps/gnu/errlist.c:1295
+#: sysdeps/gnu/errlist.c:1308
msgid "Name not unique on network"
msgstr "Ðазва не Ñ” унікальною у мережі"
-#: sysdeps/gnu/errlist.c:1303
+#: sysdeps/gnu/errlist.c:1316
msgid "File descriptor in bad state"
msgstr "Файловий деÑкриптор у помилковому Ñтані"
-#: sysdeps/gnu/errlist.c:1311
+#: sysdeps/gnu/errlist.c:1324
msgid "Remote address changed"
msgstr "Віддалену адреÑу змінено"
-#: sysdeps/gnu/errlist.c:1319
+#: sysdeps/gnu/errlist.c:1332
msgid "Can not access a needed shared library"
msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ доÑтуп до потрібної бібліотеки Ñпільного викориÑтаннÑ"
-#: sysdeps/gnu/errlist.c:1327
+#: sysdeps/gnu/errlist.c:1340
msgid "Accessing a corrupted shared library"
msgstr "ДоÑтуп до пошкодженої бібліотеки Ñпільного викориÑтаннÑ"
-#: sysdeps/gnu/errlist.c:1335
+#: sysdeps/gnu/errlist.c:1348
msgid ".lib section in a.out corrupted"
msgstr "Розділ .lib у a.out пошкоджено"
-#: sysdeps/gnu/errlist.c:1343
+#: sysdeps/gnu/errlist.c:1356
msgid "Attempting to link in too many shared libraries"
msgstr "Спроба ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð°Ð´Ñ‚Ð¾ великої кількоÑÑ‚Ñ– бібліотек Ñпільного викориÑтаннÑ"
-#: sysdeps/gnu/errlist.c:1351
+#: sysdeps/gnu/errlist.c:1364
msgid "Cannot exec a shared library directly"
msgstr "Ðе можна виконувати бібліотеку Ñпільного викориÑÑ‚Ð°Ð½Ð½Ñ Ð±ÐµÐ·Ð¿Ð¾Ñередньо"
-#: sysdeps/gnu/errlist.c:1359
+#: sysdeps/gnu/errlist.c:1372
msgid "Streams pipe error"
msgstr "Помилка каналу потоків"
-#: sysdeps/gnu/errlist.c:1367
+#: sysdeps/gnu/errlist.c:1380
msgid "Structure needs cleaning"
msgstr "Структура потребує чищеннÑ"
-#: sysdeps/gnu/errlist.c:1375
+#: sysdeps/gnu/errlist.c:1388
msgid "Not a XENIX named type file"
msgstr "Ðе Ñ” файлом іменованих типів XENIX"
-#: sysdeps/gnu/errlist.c:1383
+#: sysdeps/gnu/errlist.c:1396
msgid "No XENIX semaphores available"
msgstr "Семафори XENIX недоÑтупні"
-#: sysdeps/gnu/errlist.c:1391
+#: sysdeps/gnu/errlist.c:1404
msgid "Is a named type file"
msgstr "Є файлом іменованих типів"
-#: sysdeps/gnu/errlist.c:1399
+#: sysdeps/gnu/errlist.c:1412
msgid "Remote I/O error"
msgstr "Помилка під Ñ‡Ð°Ñ Ð²Ñ–Ð´Ð´Ð°Ð»ÐµÐ½Ð¾Ð³Ð¾ введеннÑ-виведеннÑ"
-#: sysdeps/gnu/errlist.c:1407
+#: sysdeps/gnu/errlist.c:1420
msgid "No medium found"
msgstr "Ðе знайдено ноÑÑ–Ñ"
-#: sysdeps/gnu/errlist.c:1415
+#: sysdeps/gnu/errlist.c:1428
msgid "Wrong medium type"
msgstr "Помилковий тип ноÑÑ–Ñ"
-#: sysdeps/gnu/errlist.c:1423
+#: sysdeps/gnu/errlist.c:1436
msgid "Required key not available"
msgstr "Потрібний ключ недоÑтупний"
-#: sysdeps/gnu/errlist.c:1431
+#: sysdeps/gnu/errlist.c:1444
msgid "Key has expired"
msgstr "Строк дії ключа вичерпано"
-#: sysdeps/gnu/errlist.c:1439
+#: sysdeps/gnu/errlist.c:1452
msgid "Key has been revoked"
msgstr "Ключ було відкликано"
-#: sysdeps/gnu/errlist.c:1447
+#: sysdeps/gnu/errlist.c:1460
msgid "Key was rejected by service"
msgstr "Служба відмовилаÑÑ Ð¿Ñ€Ð¸Ð¹Ð½Ñти ключ"
-#: sysdeps/gnu/errlist.c:1455
+#: sysdeps/gnu/errlist.c:1468
msgid "Operation not possible due to RF-kill"
msgstr "Дію не може бути виконано через RF-kill"
-#: sysdeps/gnu/errlist.c:1463
+#: sysdeps/gnu/errlist.c:1476
msgid "Memory page has hardware error"
msgstr "Ðа Ñторінці пам’ÑÑ‚Ñ– виÑвлено апаратну помилку"
@@ -6739,27 +6747,27 @@ msgstr "тіньовий Ñтек не увімкнено"
msgid "can't disable CET"
msgstr "не вдалоÑÑ Ð²Ð¸Ð¼ÐºÐ½ÑƒÑ‚Ð¸ CET"
-#: timezone/zdump.c:338
+#: timezone/zdump.c:332
msgid "has fewer than 3 characters"
msgstr "ÑкладаєтьÑÑ Ð· менше ніж 3 Ñимволів"
-#: timezone/zdump.c:340
+#: timezone/zdump.c:334
msgid "has more than 6 characters"
msgstr "ÑкладаєтьÑÑ Ð· понад 6 Ñимволів"
-#: timezone/zdump.c:342
+#: timezone/zdump.c:336
msgid "has characters other than ASCII alphanumerics, '-' or '+'"
msgstr "міÑтить Ñимволи, Ñкі не Ñ” літерами або цифрами ASCII, Ñимволами «-» або «+»"
-#: timezone/zdump.c:347
+#: timezone/zdump.c:341
#, c-format
msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n"
msgstr "%s: попередженнÑ: ÑÐºÐ¾Ñ€Ð¾Ñ‡ÐµÐ½Ð½Ñ Ð·Ð¾Ð½Ð¸ «%s» «%s» %s\n"
-#: timezone/zdump.c:393
+#: timezone/zdump.c:387
#, c-format
msgid ""
-"%s: usage: %s OPTIONS ZONENAME ...\n"
+"%s: usage: %s OPTIONS TIMEZONE ...\n"
"Options include:\n"
" -c [L,]U Start at year L (default -500), end before year U (default 2500)\n"
" -t [L,]U Start at time L, end before time U (in seconds since 1970)\n"
@@ -6771,7 +6779,7 @@ msgid ""
"\n"
"Report bugs to %s.\n"
msgstr ""
-"%s: кориÑтуваннÑ: %s ПÐРÐМЕТРИ ÐÐЗВÐ_ЗОÐИ ...\n"
+"%s: кориÑтуваннÑ: %s ПÐРÐМЕТРИ ЧÐСОВИЙ_ПОЯС ...\n"
"Параметри:\n"
" -c [L,]U почати з року L (типово -500), завершити до року U (типово 2500)\n"
" -t [L,]U почати з чаÑу L, завершити до чаÑу U (у Ñекундах з 1970 року)\n"
@@ -6783,439 +6791,490 @@ msgstr ""
"\n"
"Про вади Ñлід повідомлÑти на адреÑу %s.\n"
-#: timezone/zdump.c:479
+#: timezone/zdump.c:473
#, c-format
msgid "%s: wild -c argument %s\n"
msgstr "%s: помилковий аргумент -c %s\n"
-#: timezone/zdump.c:512
+#: timezone/zdump.c:506
#, c-format
msgid "%s: wild -t argument %s\n"
msgstr "%s: помилковий аргумент -t %s\n"
-#: timezone/zic.c:398
+#: timezone/zic.c:429
#, c-format
msgid "%s: Memory exhausted: %s\n"
msgstr "%s: вичерпано пам’ÑÑ‚ÑŒ: %s\n"
-#: timezone/zic.c:406
+#: timezone/zic.c:437
msgid "size overflow"
msgstr "Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ"
-#: timezone/zic.c:454
+#: timezone/zic.c:447
+msgid "alignment overflow"
+msgstr "Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ"
+
+#: timezone/zic.c:495
msgid "integer overflow"
msgstr "Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ñ‚Ð¸Ð¿Ñƒ цілого значеннÑ"
-#: timezone/zic.c:488
+#: timezone/zic.c:529
#, c-format
msgid "\"%s\", line %<PRIdMAX>: "
msgstr "\"%s\", Ñ€Ñдок %<PRIdMAX>: "
-#: timezone/zic.c:491
+#: timezone/zic.c:532
#, c-format
msgid " (rule from \"%s\", line %<PRIdMAX>)"
msgstr " (правило з «%s», Ñ€Ñдок %<PRIdMAX>)"
-#: timezone/zic.c:510
+#: timezone/zic.c:551
#, c-format
msgid "warning: "
msgstr "попередженнÑ: "
-#: timezone/zic.c:535
+#: timezone/zic.c:576
#, c-format
msgid ""
"%s: usage is %s [ --version ] [ --help ] [ -v ] \\\n"
"\t[ -l localtime ] [ -p posixrules ] [ -d directory ] \\\n"
-"\t[ -L leapseconds ] [ filename ... ]\n"
+"\t[ -t localtime-link ] [ -L leapseconds ] [ filename ... ]\n"
"\n"
"Report bugs to %s.\n"
msgstr ""
"%s: кориÑтуваннÑ: %s [ --version ] [ --help ] [ -v ] \\\n"
"\t[ -l міÑцевий Ñ‡Ð°Ñ ] [ -p правила_posix ] [ -d каталог ] \\\n"
-"\t[ -L виÑокоÑ_Ñекунди ] [ назва файла ... ]\n"
+"\t[ -t поÑ-на-міÑцевий-Ñ‡Ð°Ñ ] [ -L виÑокоÑ_Ñекунди ] [ назва файла ... ]\n"
"\n"
"Про вади повідомлÑйте за адреÑою %s.\n"
-#: timezone/zic.c:558
+#: timezone/zic.c:599
#, c-format
msgid "%s: Can't chdir to %s: %s\n"
msgstr "%s: не вдалоÑÑ Ð·Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸ каталог на %s: %s\n"
-#: timezone/zic.c:590
+#: timezone/zic.c:632
msgid "wild compilation-time specification of zic_t"
msgstr "помилкова Ñпецифікації під Ñ‡Ð°Ñ Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ð´Ð»Ñ zic_t"
-#: timezone/zic.c:610
+#: timezone/zic.c:652
#, c-format
msgid "%s: More than one -d option specified\n"
msgstr "%s: вказано декілька параметрів -d\n"
-#: timezone/zic.c:620
+#: timezone/zic.c:662
#, c-format
msgid "%s: More than one -l option specified\n"
msgstr "%s: вказано декілька параметрів -l\n"
-#: timezone/zic.c:630
+#: timezone/zic.c:672
#, c-format
msgid "%s: More than one -p option specified\n"
msgstr "%s: вказано декілька параметрів -p\n"
-#: timezone/zic.c:640
+#: timezone/zic.c:680
+#, c-format
+msgid "%s: More than one -t option specified\n"
+msgstr "%s: вказано декілька параметрів -t\n"
+
+#: timezone/zic.c:689
+msgid "-y is obsolescent"
+msgstr "-y виходить з ужитку"
+
+#: timezone/zic.c:693
#, c-format
msgid "%s: More than one -y option specified\n"
msgstr "%s: вказано декілька параметрів -y\n"
-#: timezone/zic.c:650
+#: timezone/zic.c:703
#, c-format
msgid "%s: More than one -L option specified\n"
msgstr "%s: вказано декілька параметрів -L\n"
-#: timezone/zic.c:659
+#: timezone/zic.c:712
msgid "-s ignored"
msgstr "-s проігноровано"
-#: timezone/zic.c:698
+#: timezone/zic.c:753
msgid "link to link"
msgstr "поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° поÑиланнÑ"
-#: timezone/zic.c:701 timezone/zic.c:705
+#: timezone/zic.c:756 timezone/zic.c:760
msgid "command line"
msgstr "командний Ñ€Ñдок"
-#: timezone/zic.c:721
+#: timezone/zic.c:776
msgid "empty file name"
msgstr "Ð¿Ð¾Ñ€Ð¾Ð¶Ð½Ñ Ð½Ð°Ð·Ð²Ð° файла"
-#: timezone/zic.c:724
+#: timezone/zic.c:779
#, c-format
msgid "file name '%s' begins with '/'"
msgstr "назва файла «%s» починаєтьÑÑ Ð· «/»"
-#: timezone/zic.c:734
+#: timezone/zic.c:789
#, c-format
msgid "file name '%s' contains '%.*s' component"
msgstr "назва файла «%s» міÑтить компонент «%.*s»"
-#: timezone/zic.c:740
+#: timezone/zic.c:795
#, c-format
msgid "file name '%s' component contains leading '-'"
msgstr "компонента назви файла «%s» міÑтить початковий Ñимвол «-»"
-#: timezone/zic.c:743
+#: timezone/zic.c:798
#, c-format
msgid "file name '%s' contains overlength component '%.*s...'"
msgstr "назва файла «%s» міÑтить надто довгий компонент «%.*s...»"
-#: timezone/zic.c:771
+#: timezone/zic.c:826
#, c-format
msgid "file name '%s' contains byte '%c'"
msgstr "назва файла «%s» міÑтить байт «%c»"
-#: timezone/zic.c:772
+#: timezone/zic.c:827
#, c-format
msgid "file name '%s' contains byte '\\%o'"
msgstr "назва файла «%s» міÑтить байт «\\%o»"
-#: timezone/zic.c:842
+#: timezone/zic.c:897
#, c-format
msgid "%s: link from %s/%s failed: %s\n"
msgstr "%s: помилка поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð· %s/%s: %s\n"
-#: timezone/zic.c:852 timezone/zic.c:1815
+#: timezone/zic.c:907 timezone/zic.c:1876
#, c-format
msgid "%s: Can't remove %s/%s: %s\n"
msgstr "%s: не вдалоÑÑ Ð²Ð¸Ð»ÑƒÑ‡Ð¸Ñ‚Ð¸ %s/%s: %s\n"
-#: timezone/zic.c:874
+#: timezone/zic.c:931
#, c-format
msgid "symbolic link used because hard link failed: %s"
msgstr "викориÑтано Ñимволічне поÑиланнÑ, оÑкільки не вдалоÑÑ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñтати жорÑтке поÑиланнÑ: %s"
-#: timezone/zic.c:882
+#: timezone/zic.c:939
#, c-format
msgid "%s: Can't read %s/%s: %s\n"
msgstr "%s: не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ %s/%s: %s\n"
-#: timezone/zic.c:889 timezone/zic.c:1828
+#: timezone/zic.c:946 timezone/zic.c:1889
#, c-format
msgid "%s: Can't create %s/%s: %s\n"
msgstr "%s: не вдалоÑÑ Ñтворити %s/%s: %s\n"
-#: timezone/zic.c:898
+#: timezone/zic.c:955
#, c-format
msgid "copy used because hard link failed: %s"
msgstr "викориÑтано копіюваннÑ, оÑкільки не вдалоÑÑ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñтати жорÑтке поÑиланнÑ: %s"
-#: timezone/zic.c:901
+#: timezone/zic.c:958
#, c-format
msgid "copy used because symbolic link failed: %s"
msgstr "викориÑтано копіюваннÑ, оÑкільки не вдалоÑÑ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñтати Ñимволічне поÑиланнÑ: %s"
-#: timezone/zic.c:1013 timezone/zic.c:1015
+#: timezone/zic.c:1032 timezone/zic.c:1034
msgid "same rule name in multiple files"
msgstr "правило з однією назвою зберігаєтьÑÑ Ñƒ декількох файлах"
-#: timezone/zic.c:1056
-msgid "unruly zone"
-msgstr "зона без правил"
-
-#: timezone/zic.c:1063
+#: timezone/zic.c:1081
#, c-format
msgid "%s in ruleless zone"
msgstr "%s у зоні без правил"
-#: timezone/zic.c:1083
+#: timezone/zic.c:1101
msgid "standard input"
msgstr "Ñтандартне джерело даних"
-#: timezone/zic.c:1088
+#: timezone/zic.c:1106
#, c-format
msgid "%s: Can't open %s: %s\n"
msgstr "%s: не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ %s: %s\n"
-#: timezone/zic.c:1099
+#: timezone/zic.c:1117
msgid "line too long"
msgstr "Ñ€Ñдок надто довгий"
-#: timezone/zic.c:1119
+#: timezone/zic.c:1139
msgid "input line of unknown type"
msgstr "Ñ€Ñдок вхідних даних невідомого типу"
-#: timezone/zic.c:1134
-#, c-format
-msgid "%s: Leap line in non leap seconds file %s"
-msgstr "%s: виÑокоÑний Ñ€Ñдок у файлі без виÑокоÑних Ñекунд %s"
-
-#: timezone/zic.c:1142 timezone/zic.c:1547 timezone/zic.c:1569
+#: timezone/zic.c:1158 timezone/zic.c:1593 timezone/zic.c:1615
#, c-format
msgid "%s: panic: Invalid l_value %d\n"
msgstr "%s: паніка: некоректне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ l_value %d\n"
-#: timezone/zic.c:1151
+#: timezone/zic.c:1167
msgid "expected continuation line not found"
msgstr "очікуваного Ñ€Ñдка Ð¿Ñ€Ð¾Ð´Ð¾Ð²Ð¶ÐµÐ½Ð½Ñ Ð½Ðµ знайдено"
-#: timezone/zic.c:1193 timezone/zic.c:2976
+#: timezone/zic.c:1203
+msgid "fractional seconds rejected by pre-2018 versions of zic"
+msgstr "у zic до 2018 року не передбачено підтримки дробових чаÑток Ñекунди"
+
+#: timezone/zic.c:1221 timezone/zic.c:3078
msgid "time overflow"
msgstr "Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñу чаÑу"
-#: timezone/zic.c:1198
+#: timezone/zic.c:1227
msgid "values over 24 hours not handled by pre-2007 versions of zic"
msgstr "значеннÑ, більші за 24 годин не оброблÑÑŽÑ‚ÑŒÑÑ Ð²ÐµÑ€ÑÑ–Ñми zic до 2007 року"
-#: timezone/zic.c:1209
+#: timezone/zic.c:1245
+msgid "invalid saved time"
+msgstr "помилковий літній чаÑ"
+
+#: timezone/zic.c:1256
msgid "wrong number of fields on Rule line"
msgstr "помилкова кількіÑÑ‚ÑŒ полів у Ñ€Ñдку Rule"
-#: timezone/zic.c:1213
-msgid "nameless rule"
-msgstr "правило без назви"
-
-#: timezone/zic.c:1218
-msgid "invalid saved time"
-msgstr "помилковий літній чаÑ"
+#: timezone/zic.c:1265
+#, c-format
+msgid "Invalid rule name \"%s\""
+msgstr "Ðекоректна назва правила — «%s»"
-#: timezone/zic.c:1235
+#: timezone/zic.c:1287
msgid "wrong number of fields on Zone line"
msgstr "помилкова кількіÑÑ‚ÑŒ полів у Ñ€Ñдку Zone"
-#: timezone/zic.c:1240
+#: timezone/zic.c:1292
#, c-format
msgid "\"Zone %s\" line and -l option are mutually exclusive"
msgstr "РÑдок «Zone %s» Ñ– параметр -l не можна викориÑтовувати разом"
-#: timezone/zic.c:1246
+#: timezone/zic.c:1298
#, c-format
msgid "\"Zone %s\" line and -p option are mutually exclusive"
msgstr "РÑдок «Zone %s» Ñ– параметр -p не можна викориÑтовувати разом"
-#: timezone/zic.c:1253
+#: timezone/zic.c:1305
#, c-format
msgid "duplicate zone name %s (file \"%s\", line %<PRIdMAX>)"
msgstr "Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ð½Ð°Ð·Ð² поÑÑів %s (файл «%s», Ñ€Ñдок %<PRIdMAX>)"
-#: timezone/zic.c:1267
+#: timezone/zic.c:1319
msgid "wrong number of fields on Zone continuation line"
msgstr "помилкова кількіÑÑ‚ÑŒ полів у Ñ€Ñдку Ð¿Ñ€Ð¾Ð´Ð¾Ð²Ð¶ÐµÐ½Ð½Ñ Zone"
-#: timezone/zic.c:1307
+#: timezone/zic.c:1359
msgid "invalid UT offset"
msgstr "некоректне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ€Ñ–Ð·Ð½Ð¸Ñ†Ñ– з Грінвичем"
-#: timezone/zic.c:1311
+#: timezone/zic.c:1363
msgid "invalid abbreviation format"
msgstr "некоректний формат абревіатури"
-#: timezone/zic.c:1320
+#: timezone/zic.c:1372
#, c-format
msgid "format '%s' not handled by pre-2015 versions of zic"
msgstr "у zic до 2015 року не передбачено підтримки формату «%s»"
-#: timezone/zic.c:1347
+#: timezone/zic.c:1399
msgid "Zone continuation line end time is not after end time of previous line"
msgstr "кінцевий Ñ‡Ð°Ñ Ñƒ Ñ€Ñдку Ð¿Ñ€Ð¾Ð´Ð¾Ð²Ð¶ÐµÐ½Ð½Ñ Zone не перевищує кінцевого чаÑу у попередньому Ñ€Ñдку"
-#: timezone/zic.c:1374
+#: timezone/zic.c:1426
msgid "wrong number of fields on Leap line"
msgstr "помилкова кількіÑÑ‚ÑŒ полів у Ñ€Ñдку Leap"
-#: timezone/zic.c:1383
+#: timezone/zic.c:1435
msgid "invalid leaping year"
msgstr "некоректний виÑокоÑний рік"
-#: timezone/zic.c:1403 timezone/zic.c:1501
+#: timezone/zic.c:1455 timezone/zic.c:1547
msgid "invalid month name"
msgstr "некоректна назва міÑÑцÑ"
-#: timezone/zic.c:1416 timezone/zic.c:1614 timezone/zic.c:1628
+#: timezone/zic.c:1468 timezone/zic.c:1663 timezone/zic.c:1677
msgid "invalid day of month"
msgstr "некоректний день міÑÑцÑ"
-#: timezone/zic.c:1421
+#: timezone/zic.c:1473
msgid "time too small"
msgstr "надто малий чаÑ"
-#: timezone/zic.c:1425
+#: timezone/zic.c:1477
msgid "time too large"
msgstr "надто великий чаÑ"
-#: timezone/zic.c:1429 timezone/zic.c:1530
+#: timezone/zic.c:1481 timezone/zic.c:1576
msgid "invalid time of day"
msgstr "некоректний Ñ‡Ð°Ñ Ð´Ð¾Ð±Ð¸"
-#: timezone/zic.c:1448
+#: timezone/zic.c:1494
msgid "illegal CORRECTION field on Leap line"
msgstr "некоректне поле CORRECTION у Ñ€Ñдку Leap"
-#: timezone/zic.c:1453
+#: timezone/zic.c:1499
msgid "illegal Rolling/Stationary field on Leap line"
msgstr "некоректне поле Rolling/Stationary у Ñ€Ñдку Leap"
-#: timezone/zic.c:1459
-msgid "leap second precedes Big Bang"
-msgstr "виÑокоÑна Ñекунда до Великого вибуху"
+#: timezone/zic.c:1505
+msgid "leap second precedes Epoch"
+msgstr "виÑокоÑна Ñекунда до початку епохи"
-#: timezone/zic.c:1472
+#: timezone/zic.c:1518
msgid "wrong number of fields on Link line"
msgstr "помилкова кількіÑÑ‚ÑŒ полів у Ñ€Ñдку Link"
-#: timezone/zic.c:1476
+#: timezone/zic.c:1522
msgid "blank FROM field on Link line"
msgstr "порожнє поле FROM у Ñ€Ñдку Link"
-#: timezone/zic.c:1551
+#: timezone/zic.c:1597
msgid "invalid starting year"
msgstr "некоректний рік початку"
-#: timezone/zic.c:1573
+#: timezone/zic.c:1619
msgid "invalid ending year"
msgstr "некоректний рік завершеннÑ"
-#: timezone/zic.c:1577
+#: timezone/zic.c:1623
msgid "starting year greater than ending year"
msgstr "Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÐ¾Ð²Ð¾Ð³Ð¾ року перевищує Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÐºÑ–Ð½Ñ†ÐµÐ²Ð¾Ð³Ð¾ року"
-#: timezone/zic.c:1584
+#: timezone/zic.c:1630
msgid "typed single year"
msgstr "типізований одинарний рік"
-#: timezone/zic.c:1619
+#: timezone/zic.c:1633
+#, c-format
+msgid "year type \"%s\" is obsolete; use \"-\" instead"
+msgstr "тип року «%s» Ñ” заÑтарілим; ÑкориÑтайтеÑÑ Ð·Ð°Ð¼Ñ–ÑÑ‚ÑŒ нього «-»"
+
+#: timezone/zic.c:1668
msgid "invalid weekday name"
msgstr "некоректна назва Ð´Ð½Ñ Ñ‚Ð¸Ð¶Ð½Ñ"
-#: timezone/zic.c:1743
+#: timezone/zic.c:1800
#, c-format
msgid "reference clients mishandle more than %d transition times"
msgstr "еталонні клієнтÑькі чаÑтини оброблÑÑŽÑ‚ÑŒ Ð¿ÐµÑ€ÐµÐ²ÐµÐ´ÐµÐ½Ð½Ñ Ñ‡Ð°Ñу, кількіÑÑ‚ÑŒ Ñких перевищує %d, з помилками"
-#: timezone/zic.c:1747
+#: timezone/zic.c:1804
msgid "pre-2014 clients may mishandle more than 1200 transition times"
msgstr "клієнтÑькі чаÑтини до верÑÑ–Ñ— 2014 можуть оброблÑти Ð¿ÐµÑ€ÐµÐ²ÐµÐ´ÐµÐ½Ð½Ñ Ñ‡Ð°Ñу, що перевищують за величиною 1200, з помилками"
-#: timezone/zic.c:1858
+#: timezone/zic.c:1920
msgid "too many transition times"
msgstr "забагато переведень чаÑу"
-#: timezone/zic.c:2047
+#: timezone/zic.c:2107
#, c-format
-msgid "%%z UTC offset magnitude exceeds 99:59:59"
-msgstr "Величина зÑуву щодо UTC %%z перевищує 99:59:59"
+msgid "%%z UT offset magnitude exceeds 99:59:59"
+msgstr "Величина зÑуву щодо UT %%z перевищує 99:59:59"
-#: timezone/zic.c:2424
+#: timezone/zic.c:2488
msgid "no POSIX environment variable for zone"
msgstr "немає змінної Ñередовища POSIX Ð´Ð»Ñ Ñ‡Ð°Ñового поÑÑу"
-#: timezone/zic.c:2430
+#: timezone/zic.c:2494
#, c-format
msgid "%s: pre-%d clients may mishandle distant timestamps"
msgstr "%s: клієнтÑькі чаÑтини до верÑÑ–Ñ— %d можуть оброблÑти віддалені чаÑові позначки з помилками"
-#: timezone/zic.c:2566
+#: timezone/zic.c:2631
msgid "two rules for same instant"
msgstr "одночаÑно два правила Ð´Ð»Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ випадку"
-#: timezone/zic.c:2627
+#: timezone/zic.c:2696
msgid "can't determine time zone abbreviation to use just after until time"
msgstr "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ ÑÐºÐ¾Ñ€Ð¾Ñ‡ÐµÐ½Ð½Ñ Ñ‡Ð°Ñового поÑÑу, Ñким Ñлід ÑкориÑтатиÑÑ Ð±ÐµÐ·Ð¿Ð¾Ñередньо піÑÐ»Ñ Ñ‡Ð°Ñу завершеннÑ"
-#: timezone/zic.c:2725
+#: timezone/zic.c:2785
msgid "too many local time types"
msgstr "забагато типів міÑцевого чаÑу"
-#: timezone/zic.c:2729
+#: timezone/zic.c:2789
msgid "UT offset out of range"
msgstr "зÑув відноÑно чаÑу за Грівичем поза межами припуÑтимого діапазону"
-#: timezone/zic.c:2753
+#: timezone/zic.c:2813
msgid "too many leap seconds"
msgstr "забагато виÑокоÑних Ñекунд"
-#: timezone/zic.c:2759
-msgid "repeated leap second moment"
-msgstr "повторюваний момент виÑокоÑної Ñекунди"
+#: timezone/zic.c:2844
+msgid "Leap seconds too close together"
+msgstr "ВиÑокоÑні Ñекунди Ñ” надто близькими одна до одної"
-#: timezone/zic.c:2830
+#: timezone/zic.c:2891
msgid "Wild result from command execution"
msgstr "Ðеочікуваний результат Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸"
-#: timezone/zic.c:2831
+#: timezone/zic.c:2892
#, c-format
msgid "%s: command was '%s', result was %d\n"
msgstr "%s: команда — «%s», результат — %d\n"
-#: timezone/zic.c:2961
+#: timezone/zic.c:2998
+#, c-format
+msgid "\"%s\" is undocumented; use \"last%s\" instead"
+msgstr "«%s» Ñ” недокументованим; ÑкориÑтайтеÑÑ Ð·Ð°Ð¼Ñ–ÑÑ‚ÑŒ нього «last%s»"
+
+#: timezone/zic.c:3029
+#, c-format
+msgid "\"%s\" is ambiguous in pre-2017c zic"
+msgstr "«%s» є ноднозначним у zic до 2017c"
+
+#: timezone/zic.c:3063
msgid "Odd number of quotation marks"
msgstr "Ðепарна кількіÑÑ‚ÑŒ лапок"
-#: timezone/zic.c:3046
+#: timezone/zic.c:3157
msgid "use of 2/29 in non leap-year"
msgstr "викориÑÑ‚Ð°Ð½Ð½Ñ 29 лютого у невиÑокоÑному році"
-#: timezone/zic.c:3081
+#: timezone/zic.c:3192
msgid "rule goes past start/end of month; will not work with pre-2004 versions of zic"
msgstr "правило виходить за межі початку або ÐºÑ–Ð½Ñ†Ñ Ð¼Ñ–ÑÑцÑ; це не працюватиме з верÑÑ–Ñми zic до 2004 року"
-#: timezone/zic.c:3108
+#: timezone/zic.c:3219
msgid "time zone abbreviation has fewer than 3 characters"
msgstr "ÑÐºÐ¾Ñ€Ð¾Ñ‡ÐµÐ½Ð½Ñ Ð½Ð°Ð·Ð²Ð¸ чаÑового поÑÑу ÑкладаєтьÑÑ Ð· менше ніж 3 Ñимволів"
-#: timezone/zic.c:3110
+#: timezone/zic.c:3221
msgid "time zone abbreviation has too many characters"
msgstr "ÑÐºÐ¾Ñ€Ð¾Ñ‡ÐµÐ½Ð½Ñ Ð½Ð°Ð·Ð²Ð¸ чаÑового поÑÑу ÑкладаєтьÑÑ Ð· надто великої кількоÑÑ‚Ñ– Ñимволів"
-#: timezone/zic.c:3112
+#: timezone/zic.c:3223
msgid "time zone abbreviation differs from POSIX standard"
msgstr "ÑÐºÐ¾Ñ€Ð¾Ñ‡ÐµÐ½Ð½Ñ Ð½Ð°Ð·Ð²Ð¸ чаÑового поÑÑу Ñуперечить Ñтандарту POSIX"
-#: timezone/zic.c:3118
+#: timezone/zic.c:3229
msgid "too many, or too long, time zone abbreviations"
msgstr "забагато Ñкорочень назв чаÑових поÑÑів або вони Ñ” надто довгими"
-#: timezone/zic.c:3161
+#: timezone/zic.c:3275
#, c-format
msgid "%s: Can't create directory %s: %s"
msgstr "%s: не вдалоÑÑ Ñтворити каталог %s: %s"
+#~ msgid "cannot open zero fill device"
+#~ msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ приÑтрій Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð½ÑƒÐ»Ñми"
+
+#~ msgid "relocation error"
+#~ msgstr "помилка переÑуваннÑ"
+
+#~ msgid "Cannot set LC_CTYPE to default locale"
+#~ msgstr "Ðе вдалоÑÑ Ð²Ñтановити Ð´Ð»Ñ LC_CTYPE типове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð»Ð¾ÐºÐ°Ð»Ñ–"
+
+#~ msgid "Cannot set LC_MESSAGES to default locale"
+#~ msgstr "Ðе вдалоÑÑ Ð²Ñтановити Ð´Ð»Ñ LC_MESSAGES типове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð»Ð¾ÐºÐ°Ð»Ñ–"
+
+#~ msgid "Cannot set LC_COLLATE to default locale"
+#~ msgstr "Ðе вдалоÑÑ Ð²Ñтановити Ð´Ð»Ñ LC_COLLATE типове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð»Ð¾ÐºÐ°Ð»Ñ–"
+
+#~ msgid "unruly zone"
+#~ msgstr "зона без правил"
+
+#~ msgid "%s: Leap line in non leap seconds file %s"
+#~ msgstr "%s: виÑокоÑний Ñ€Ñдок у файлі без виÑокоÑних Ñекунд %s"
+
+#~ msgid "nameless rule"
+#~ msgstr "правило без назви"
+
+#~ msgid "repeated leap second moment"
+#~ msgstr "повторюваний момент виÑокоÑної Ñекунди"
+
#~ msgid "invalid caller"
#~ msgstr "некоректна Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ Ð²Ð¸ÐºÐ»Ð¸ÐºÑƒ"
@@ -7264,9 +7323,6 @@ msgstr "%s: не вдалоÑÑ Ñтворити каталог %s: %s"
#~ "\n"
#~ "Про вади повідомлÑйте за адреÑою %s.\n"
-#~ msgid "int overflow"
-#~ msgstr "Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ñ†Ñ–Ð»Ð¾Ð³Ð¾ типу"
-
#~ msgid "hard link failed, symbolic link used"
#~ msgstr "ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¶Ð¾Ñ€Ñткого поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð·Ð°Ð·Ð½Ð°Ð»Ð¾ невдачі, викориÑтано Ñимволічне поÑиланнÑ"
diff --git a/po/vi.po b/po/vi.po
index 0d34334d45..284c8ae319 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -9,15 +9,15 @@ msgid ""
msgstr ""
"Project-Id-Version: libc 2.27.9000\n"
"Report-Msgid-Bugs-To: http://www.gnu.org/software/libc/bugs.html\n"
-"POT-Creation-Date: 2018-07-26 22:19-0400\n"
+"POT-Creation-Date: 2019-07-18 13:28-0400\n"
"PO-Revision-Date: 2018-07-28 13:46+0700\n"
"Last-Translator: Trần Ngá»c Quân <vnwildman@gmail.com>\n"
"Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
"Language: vi\n"
-"X-Bugs: Report translation errors to the Language-Team address.\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Language-Team-Website: <http://translationproject.org/team/vi.html>\n"
"X-Generator: Gtranslator 2.91.7\n"
@@ -157,10 +157,10 @@ msgstr ""
"[TẬP-TIN-ÄẦU-RA [TẬP-TIN-ÄẦU-VÀO]…]"
#: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:308
-#: elf/pldd.c:252 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
-#: iconv/iconvconfig.c:379 locale/programs/locale.c:275
-#: locale/programs/localedef.c:427 login/programs/pt_chown.c:89
-#: malloc/memusagestat.c:563 nss/getent.c:933 nss/makedb.c:369
+#: elf/pldd.c:247 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
+#: iconv/iconvconfig.c:379 locale/programs/locale.c:276
+#: locale/programs/localedef.c:437 login/programs/pt_chown.c:89
+#: malloc/memusagestat.c:563 nss/getent.c:953 nss/makedb.c:369
#: posix/getconf.c:503 sysdeps/unix/sysv/linux/lddlibc4.c:61
#, c-format
msgid ""
@@ -172,11 +172,11 @@ msgstr ""
"Thông báo lỗi dịch cho: <http://translationproject.org/team/vi.html>.\n"
#: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64
-#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75
+#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:263 elf/sotruss.sh:75
#: elf/sprof.c:389 iconv/iconv_prog.c:422 iconv/iconvconfig.c:396
-#: locale/programs/locale.c:292 locale/programs/localedef.c:453
+#: locale/programs/locale.c:293 locale/programs/localedef.c:463
#: login/programs/pt_chown.c:63 malloc/memusage.sh:71
-#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:87 nss/makedb.c:385
+#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:88 nss/makedb.c:385
#: posix/getconf.c:485 sysdeps/unix/sysv/linux/lddlibc4.c:68
#, c-format
msgid ""
@@ -189,10 +189,10 @@ msgstr ""
"KHÔNG CÓ BẢO HÀNH GÃŒ CẢ; NGAY CẢ KHI NÓ ÄƯỢC BÃN HAY THÃCH HỢP CHO MỤC ÄÃCH Cà NHÂN.\n"
#: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68
-#: elf/ldconfig.c:329 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:427
-#: iconv/iconvconfig.c:401 locale/programs/locale.c:297
-#: locale/programs/localedef.c:458 malloc/memusage.sh:75
-#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:92 nss/makedb.c:390
+#: elf/ldconfig.c:329 elf/pldd.c:268 elf/sprof.c:395 iconv/iconv_prog.c:427
+#: iconv/iconvconfig.c:401 locale/programs/locale.c:298
+#: locale/programs/localedef.c:468 malloc/memusage.sh:75
+#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:93 nss/makedb.c:390
#: posix/getconf.c:490
#, c-format
msgid "Written by %s.\n"
@@ -263,21 +263,21 @@ msgstr "không thể mở tập tin kết xuất “%sâ€"
msgid "invalid escape sequence"
msgstr "dây thoát không hợp lệ"
-#: catgets/gencat.c:1209
+#: catgets/gencat.c:1211
msgid "unterminated message"
msgstr "thông điệp chưa chấm dứt"
-#: catgets/gencat.c:1233
+#: catgets/gencat.c:1235
#, c-format
msgid "while opening old catalog file"
msgstr "trong khi mở tập tin phân loại cũ"
-#: catgets/gencat.c:1324
+#: catgets/gencat.c:1326
#, c-format
msgid "conversion modules not available"
msgstr "mô-đun chuyển đổi không sẵn sàng"
-#: catgets/gencat.c:1350
+#: catgets/gencat.c:1352
#, c-format
msgid "cannot determine escape character"
msgstr "không thể giải quyết ký tự thoát chuỗi"
@@ -404,7 +404,7 @@ msgstr "Hệ Ä‘iá»u hành không biết"
msgid ", OS ABI: %s %d.%d.%d"
msgstr ", OS ABI: %s %d.%d.%d"
-#: elf/cache.c:163 elf/ldconfig.c:1332
+#: elf/cache.c:163 elf/ldconfig.c:1333
#, c-format
msgid "Can't open cache file %s\n"
msgstr "Không thể mở tập tin nhớ tạm %s\n"
@@ -414,38 +414,38 @@ msgstr "Không thể mở tập tin nhớ tạm %s\n"
msgid "mmap of cache file failed.\n"
msgstr "gặp lỗi khi mmap tập tin nhớ tạm.\n"
-#: elf/cache.c:181 elf/cache.c:195
+#: elf/cache.c:181 elf/cache.c:195 elf/cache.c:205
#, c-format
msgid "File is not a cache file.\n"
msgstr "Tập tin không phải là một tập tin nhớ tạm.\n"
-#: elf/cache.c:228 elf/cache.c:238
+#: elf/cache.c:233 elf/cache.c:243
#, c-format
msgid "%d libs found in cache `%s'\n"
msgstr "Tìm thấy %d thÆ° viện trong bá»™ nhá»› tạm “%sâ€\n"
-#: elf/cache.c:432
+#: elf/cache.c:437
#, c-format
msgid "Can't create temporary cache file %s"
msgstr "Không thể tạo tập tin nhá»› tạm kiểu tạm thá»i %s"
-#: elf/cache.c:440 elf/cache.c:450 elf/cache.c:454 elf/cache.c:458
-#: elf/cache.c:468
+#: elf/cache.c:445 elf/cache.c:455 elf/cache.c:459 elf/cache.c:463
+#: elf/cache.c:473
#, c-format
msgid "Writing of cache data failed"
msgstr "Gặp lỗi khi ghi dữ liệu nhớ tạm"
-#: elf/cache.c:463
+#: elf/cache.c:468
#, c-format
msgid "Changing access rights of %s to %#o failed"
msgstr "Gặp lá»—i khi thay đổi quyá»n truy cập của %s thành %#o"
-#: elf/cache.c:472
+#: elf/cache.c:477
#, c-format
msgid "Renaming of %s to %s failed"
msgstr "Gặp lỗi khi thay đổi tên %s thành %s"
-#: elf/dl-close.c:399 elf/dl-open.c:420
+#: elf/dl-close.c:399 elf/dl-open.c:424
msgid "cannot create scope list"
msgstr "không thể tạo danh sách phạm vi"
@@ -526,119 +526,121 @@ msgstr "không thể tạo mảng Ä‘Æ°á»ng dẫn tìm kiếm"
msgid "cannot stat shared object"
msgstr "không thể lấy trạng thái vỠđối tượng dùng chung"
-#: elf/dl-load.c:960
-msgid "cannot open zero fill device"
-msgstr "không thể mở thiết bị Ä‘iá»n số không"
-
-#: elf/dl-load.c:1007 elf/dl-load.c:2203
+#: elf/dl-load.c:992 elf/dl-load.c:2198
msgid "cannot create shared object descriptor"
msgstr "không thể tạo bộ mô tả đối tượng dùng chung"
-#: elf/dl-load.c:1026 elf/dl-load.c:1560 elf/dl-load.c:1673
+#: elf/dl-load.c:1011 elf/dl-load.c:1555 elf/dl-load.c:1668
msgid "cannot read file data"
msgstr "không thể Ä‘á»c dữ liệu tập tin"
-#: elf/dl-load.c:1072
+#: elf/dl-load.c:1057
msgid "ELF load command alignment not page-aligned"
msgstr "Sắp hàng câu lệnh nạp ELF không phải sắp hàng theo trang"
-#: elf/dl-load.c:1079
+#: elf/dl-load.c:1064
msgid "ELF load command address/offset not properly aligned"
msgstr "Äịa chỉ/bù của câu lệnh nạp ELF không phải được sắp hàng đúng"
-#: elf/dl-load.c:1161
+#: elf/dl-load.c:1146
msgid "cannot process note segment"
msgstr "không thể xử lý đoạn ghi chú"
-#: elf/dl-load.c:1172
+#: elf/dl-load.c:1157
msgid "object file has no loadable segments"
msgstr "tập tin đối tượng không có đoạn nạp được"
-#: elf/dl-load.c:1181 elf/dl-load.c:1652
+#: elf/dl-load.c:1170 elf/dl-load.c:1647
msgid "cannot dynamically load executable"
msgstr "không thể nạp động tập tin thực hiện được"
-#: elf/dl-load.c:1202
+#: elf/dl-load.c:1191
msgid "object file has no dynamic section"
msgstr "tập tin đối tượng không có phần động"
-#: elf/dl-load.c:1225
+#: elf/dl-load.c:1218
+#, fuzzy
+#| msgid "cannot dynamically load executable"
+msgid "cannot dynamically load position-independent executable"
+msgstr "không thể nạp động tập tin thực hiện được"
+
+#: elf/dl-load.c:1220
msgid "shared object cannot be dlopen()ed"
msgstr "đối tượng dùng chung không thể được dlopen()"
-#: elf/dl-load.c:1238
+#: elf/dl-load.c:1233
msgid "cannot allocate memory for program header"
msgstr "không thể cấp phát bộ nhớ cho phần đầu chương trình"
-#: elf/dl-load.c:1271 elf/dl-load.h:130
+#: elf/dl-load.c:1266 elf/dl-load.h:130
msgid "cannot change memory protections"
msgstr "không thể thay đổi sự bảo vệ bộ nhớ"
-#: elf/dl-load.c:1291
+#: elf/dl-load.c:1286
msgid "cannot enable executable stack as shared object requires"
msgstr "không thể hiệu lực ngăn xếp thực hiện được theo yêu cầu của đối tượng dùng chung"
-#: elf/dl-load.c:1304
+#: elf/dl-load.c:1299
msgid "cannot close file descriptor"
msgstr "không thể đóng bộ mô tả tập tin"
-#: elf/dl-load.c:1560
+#: elf/dl-load.c:1555
msgid "file too short"
msgstr "tập tin quá ngắn"
-#: elf/dl-load.c:1595
+#: elf/dl-load.c:1590
msgid "invalid ELF header"
msgstr "phần đầu ELF không hợp lệ"
-#: elf/dl-load.c:1607
+#: elf/dl-load.c:1602
msgid "ELF file data encoding not big-endian"
msgstr "Bảng mã dữ liệu tập tin ELF không có kiểu vỠcuối lớn (big-endian)"
-#: elf/dl-load.c:1609
+#: elf/dl-load.c:1604
msgid "ELF file data encoding not little-endian"
msgstr "Bảng mã dữ liệu tập tin ELF không có kiểu vỠcuối nhỠ(little-endian)"
-#: elf/dl-load.c:1613
+#: elf/dl-load.c:1608
msgid "ELF file version ident does not match current one"
msgstr "ident của phiên bản tập tin ELF không tÆ°Æ¡ng ứng vá»›i Ä‘iá»u hiện thá»i"
-#: elf/dl-load.c:1617
+#: elf/dl-load.c:1612
msgid "ELF file OS ABI invalid"
msgstr "Hệ Ä‘iá»u hành ABI của tập tin ELF không phải hợp lệ"
-#: elf/dl-load.c:1620
+#: elf/dl-load.c:1615
msgid "ELF file ABI version invalid"
msgstr "Phiên bản ABI của tập tin ELF không phải hợp lệ"
-#: elf/dl-load.c:1623
+#: elf/dl-load.c:1618
msgid "nonzero padding in e_ident"
msgstr "không có phần đệm số không trong e_ident"
-#: elf/dl-load.c:1626
+#: elf/dl-load.c:1621
msgid "internal error"
msgstr "lá»—i ná»™i bá»™"
-#: elf/dl-load.c:1633
+#: elf/dl-load.c:1628
msgid "ELF file version does not match current one"
msgstr "Phiên bản tập tin ELF không tÆ°Æ¡ng ứng vá»›i Ä‘iá»u hiện thá»i"
-#: elf/dl-load.c:1641
+#: elf/dl-load.c:1636
msgid "only ET_DYN and ET_EXEC can be loaded"
msgstr "chỉ có thể nạp ET_DYN và ET_EXEC"
-#: elf/dl-load.c:1657
+#: elf/dl-load.c:1652
msgid "ELF file's phentsize not the expected size"
msgstr "kích cỡ phentsize của tập tin ELF là bất thÆ°á»ng"
-#: elf/dl-load.c:2222
+#: elf/dl-load.c:2217
msgid "wrong ELF class: ELFCLASS64"
msgstr "lớp ELF không đúng: ELFCLASS64"
-#: elf/dl-load.c:2223
+#: elf/dl-load.c:2218
msgid "wrong ELF class: ELFCLASS32"
msgstr "lớp ELF không đúng: ELFCLASS32"
-#: elf/dl-load.c:2226
+#: elf/dl-load.c:2221
msgid "cannot open shared object file"
msgstr "không thể mở tập tin đối tượng dùng chung"
@@ -650,11 +652,7 @@ msgstr "lỗi ánh xạ đoạn từ đối tượng dùng chung"
msgid "cannot map zero-fill pages"
msgstr "không thể ánh xạ trang Ä‘iá»n số không"
-#: elf/dl-lookup.c:835
-msgid "relocation error"
-msgstr "lỗi tái định vị"
-
-#: elf/dl-lookup.c:858
+#: elf/dl-lookup.c:830
msgid "symbol lookup error"
msgstr "lỗi tra cứu ký hiệu"
@@ -662,19 +660,19 @@ msgstr "lỗi tra cứu ký hiệu"
msgid "cannot extend global scope"
msgstr "không thể kéo dài phạm vi toàn cục"
-#: elf/dl-open.c:470
+#: elf/dl-open.c:474
msgid "TLS generation counter wrapped! Please report this."
msgstr "Bá»™ đếm tạo TLS đã bao bá»c! Hãy thông báo lá»—i này."
-#: elf/dl-open.c:534
+#: elf/dl-open.c:538
msgid "invalid mode for dlopen()"
msgstr "chế độ không hợp lệ đối với dlopen()"
-#: elf/dl-open.c:551
+#: elf/dl-open.c:555
msgid "no more namespaces available for dlmopen()"
msgstr "không có sẵn miá»n tên thêm nữa đối vá»›i dlmopen()"
-#: elf/dl-open.c:575
+#: elf/dl-open.c:579
msgid "invalid target namespace in dlmopen()"
msgstr "miá»n tên đích không hợp lệ trong dlmopen()"
@@ -682,20 +680,20 @@ msgstr "miá»n tên đích không hợp lệ trong dlmopen()"
msgid "cannot allocate memory in static TLS block"
msgstr "không thể cấp phát bộ nhớ trong khối TLS tĩnh."
-#: elf/dl-reloc.c:205
+#: elf/dl-reloc.c:213
msgid "cannot make segment writable for relocation"
msgstr "không thể làm cho đoạn có khả năng ghi để tái định vị"
-#: elf/dl-reloc.c:276
+#: elf/dl-reloc.c:272
#, c-format
msgid "%s: out of memory to store relocation results for %s\n"
msgstr "%s: không đủ bộ nhớ để cất giữ kết quả tái định vị đối với %s\n"
-#: elf/dl-reloc.c:292
+#: elf/dl-reloc.c:288
msgid "cannot restore segment prot after reloc"
msgstr "không thể phục hồi giao thức (prot) đoạn sau khi tái định vị"
-#: elf/dl-reloc.c:323
+#: elf/dl-reloc.c:319
msgid "cannot apply additional memory protection after relocation"
msgstr "không thể áp dụng sự bảo vệ bộ nhớ thêm sau khi tái định vị"
@@ -913,22 +911,22 @@ msgstr "dùng tùy chá»n “-r†thì cÅ©ng cần tên tập tin tuyệt đố
msgid "memory exhausted"
msgstr "hết bộ nhớ"
-#: elf/ldconfig.c:1233
+#: elf/ldconfig.c:1234
#, c-format
msgid "%s:%u: cannot read directory %s"
msgstr "%s:%u: không thể Ä‘á»c thÆ° mục %s"
-#: elf/ldconfig.c:1281
+#: elf/ldconfig.c:1282
#, c-format
msgid "relative path `%s' used to build cache"
msgstr "Ä‘Æ°á»ng dẫn tÆ°Æ¡ng đối “%s†được dùng để xây dá»±ng bá»™ nhá»› tạm"
-#: elf/ldconfig.c:1311
+#: elf/ldconfig.c:1312
#, c-format
msgid "Can't chdir to /"
msgstr "Không thể chuyển đổi thư mục (chdir) sang /"
-#: elf/ldconfig.c:1352
+#: elf/ldconfig.c:1353
#, c-format
msgid "Can't open cache file directory %s\n"
msgstr "Không thể mở thư mục nhớ tạm %s\n"
@@ -998,95 +996,101 @@ msgstr "đã thoát với mã thoát không rõ"
msgid "error: you do not have read permission for"
msgstr "lá»—i: bạn không có quyá»n Ä‘á»c"
-#: elf/pldd-xx.c:105
+#: elf/pldd-xx.c:102
#, c-format
msgid "cannot find program header of process"
msgstr "không tìm thấy phần đầu của tiến trình"
-#: elf/pldd-xx.c:110
+#: elf/pldd-xx.c:106
#, c-format
msgid "cannot read program header"
msgstr "không thể Ä‘á»c phần đầu của chÆ°Æ¡ng trình"
-#: elf/pldd-xx.c:135
+#: elf/pldd-xx.c:128
#, c-format
msgid "cannot read dynamic section"
msgstr "không thể Ä‘á»c phần Ä‘á»™ng"
-#: elf/pldd-xx.c:147
+#: elf/pldd-xx.c:137
#, c-format
msgid "cannot read r_debug"
msgstr "không Ä‘á»c được r_debug"
-#: elf/pldd-xx.c:167
+#: elf/pldd-xx.c:154
#, c-format
msgid "cannot read program interpreter"
msgstr "không thể Ä‘á»c bá»™ giải dịch (phiên dịch) chÆ°Æ¡ng trình"
-#: elf/pldd-xx.c:197
+#: elf/pldd-xx.c:183
#, c-format
msgid "cannot read link map"
msgstr "không Ä‘á»c được ánh xạ liên kết"
-#: elf/pldd-xx.c:209
+#: elf/pldd-xx.c:190
#, c-format
msgid "cannot read object name"
msgstr "không thể Ä‘á»c tên đối tượng"
-#: elf/pldd-xx.c:219
+#: elf/pldd-xx.c:197
#, c-format
msgid "cannot allocate buffer for object name"
msgstr "không thể cấp phát bộ nhớ đệm cho tên đối tượng"
-#: elf/pldd.c:64
+#: elf/pldd.c:58
msgid "List dynamic shared objects loaded into process."
msgstr "Liệt kê các đối tượng chia sẻ động được tải vào một tiến trình."
-#: elf/pldd.c:68
+#: elf/pldd.c:62
msgid "PID"
msgstr "PID"
-#: elf/pldd.c:100
+#: elf/pldd.c:89
#, c-format
msgid "Exactly one parameter with process ID required.\n"
msgstr "Yêu cầu chính xác một tham số với ID tiến trình.\n"
-#: elf/pldd.c:112
+#: elf/pldd.c:103
#, c-format
msgid "invalid process ID '%s'"
msgstr "mã số ID tiến trình sai “%sâ€"
-#: elf/pldd.c:120
+#: elf/pldd.c:111
#, c-format
msgid "cannot open %s"
msgstr "không mở được %s"
-#: elf/pldd.c:152
+#: elf/pldd.c:142
#, c-format
msgid "cannot open %s/task"
msgstr "không thể mở %s/task"
-#: elf/pldd.c:155
+#: elf/pldd.c:145
#, c-format
msgid "cannot prepare reading %s/task"
msgstr "không thể chuẩn bị cho việc Ä‘á»c %s/task"
-#: elf/pldd.c:168
+#: elf/pldd.c:158
#, c-format
msgid "invalid thread ID '%s'"
msgstr "ID tuyến không hợp lệ “%sâ€"
-#: elf/pldd.c:179
+#: elf/pldd.c:169
#, c-format
msgid "cannot attach to process %lu"
msgstr "không thể gán cho tiến trình %lu"
-#: elf/pldd.c:294
+#: elf/pldd.c:184
+#, fuzzy, c-format
+#| msgid "invalid saved time"
+msgid "no valid %s/task entries"
+msgstr "thá»i gian đã lÆ°u không hợp lệ"
+
+#: elf/pldd.c:290
#, c-format
msgid "cannot get information about process %lu"
msgstr "không thể lấy thông tin vỠtiến trình %lu"
-#: elf/pldd.c:307
+#: elf/pldd.c:303
#, c-format
msgid "process %lu is no ELF program"
msgstr "tiến trình %lu không phải là chương trình kiểu ELF"
@@ -1406,7 +1410,7 @@ msgstr "Thông tin:"
msgid "list all known coded character sets"
msgstr "liệt kê tất cả các bộ ký tự đã mã hóa được biết"
-#: iconv/iconv_prog.c:64 locale/programs/localedef.c:120
+#: iconv/iconv_prog.c:64 locale/programs/localedef.c:124
msgid "Output control:"
msgstr "Äiá»u khiển xuất:"
@@ -1415,8 +1419,8 @@ msgid "omit invalid characters from output"
msgstr "bá» sót ký tá»± không hợp lệ khá»i kết xuất"
#: iconv/iconv_prog.c:66 iconv/iconvconfig.c:128
-#: locale/programs/localedef.c:113 locale/programs/localedef.c:115
-#: locale/programs/localedef.c:117 locale/programs/localedef.c:144
+#: locale/programs/localedef.c:117 locale/programs/localedef.c:119
+#: locale/programs/localedef.c:121 locale/programs/localedef.c:150
#: malloc/memusagestat.c:56
msgid "FILE"
msgstr "TẬP-TIN"
@@ -1515,7 +1519,7 @@ msgstr "Tạo tập tin cấu hình mô-đun iconv sẽ nạp nhanh."
msgid "[DIR...]"
msgstr "[THƯ_MỤC…]"
-#: iconv/iconvconfig.c:126 locale/programs/localedef.c:123
+#: iconv/iconvconfig.c:126 locale/programs/localedef.c:129
msgid "PATH"
msgstr "ÄƯỜNG-DẪN"
@@ -1699,14 +1703,14 @@ msgstr "không hỗ trợ bộ ký tự có tình trạng khóa"
#: locale/programs/charmap.c:503 locale/programs/charmap.c:557
#: locale/programs/charmap.c:589 locale/programs/charmap.c:683
-#: locale/programs/charmap.c:738 locale/programs/charmap.c:779
-#: locale/programs/charmap.c:820
+#: locale/programs/charmap.c:739 locale/programs/charmap.c:780
+#: locale/programs/charmap.c:821
#, c-format
msgid "syntax error in %s definition: %s"
msgstr "gặp lá»—i cú pháp trong lá»i định nghÄ©a %s: %s"
#: locale/programs/charmap.c:504 locale/programs/charmap.c:684
-#: locale/programs/charmap.c:780 locale/programs/repertoire.c:229
+#: locale/programs/charmap.c:781 locale/programs/repertoire.c:229
msgid "no symbolic name given"
msgstr "chưa đưa ra tên tượng trưng"
@@ -1722,14 +1726,14 @@ msgstr "bảng mã ký tự chứa quá ít byte"
msgid "too many bytes in character encoding"
msgstr "bảng mã ký tá»± chứa quá nhiá»u byte"
-#: locale/programs/charmap.c:591 locale/programs/charmap.c:739
-#: locale/programs/charmap.c:822 locale/programs/repertoire.c:295
+#: locale/programs/charmap.c:591 locale/programs/charmap.c:740
+#: locale/programs/charmap.c:823 locale/programs/repertoire.c:295
msgid "no symbolic name given for end of range"
msgstr "chưa đưa ra tên tượng trưng cho kết thúc phạm vi"
#: locale/programs/charmap.c:615 locale/programs/ld-address.c:524
#: locale/programs/ld-collate.c:2616 locale/programs/ld-collate.c:3774
-#: locale/programs/ld-ctype.c:2117 locale/programs/ld-ctype.c:2829
+#: locale/programs/ld-ctype.c:2118 locale/programs/ld-ctype.c:2830
#: locale/programs/ld-identification.c:397
#: locale/programs/ld-measurement.c:213 locale/programs/ld-messages.c:295
#: locale/programs/ld-monetary.c:748 locale/programs/ld-name.c:262
@@ -1744,58 +1748,58 @@ msgstr "%1$s: lá»i định nghÄ©a không kết thúc vá»›i: END %1$sâ€"
msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
msgstr "cho phép chỉ lá»i định nghÄ©a WIDTH (chiá»u rá»™ng) nằm sau lá»i định nghÄ©a CHARMAP (ánh xạ ký tá»±)"
-#: locale/programs/charmap.c:656 locale/programs/charmap.c:719
+#: locale/programs/charmap.c:656 locale/programs/charmap.c:720
#, c-format
msgid "value for %s must be an integer"
msgstr "giá trị cho %s phải là số nguyên"
-#: locale/programs/charmap.c:847
+#: locale/programs/charmap.c:848
#, c-format
msgid "%s: error in state machine"
msgstr "%s: lỗi trong cơ chế tình trạng"
-#: locale/programs/charmap.c:855 locale/programs/ld-address.c:540
+#: locale/programs/charmap.c:856 locale/programs/ld-address.c:540
#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967
-#: locale/programs/ld-ctype.c:2114 locale/programs/ld-ctype.c:2846
+#: locale/programs/ld-ctype.c:2115 locale/programs/ld-ctype.c:2847
#: locale/programs/ld-identification.c:413
#: locale/programs/ld-measurement.c:229 locale/programs/ld-messages.c:311
#: locale/programs/ld-monetary.c:764 locale/programs/ld-name.c:278
#: locale/programs/ld-numeric.c:341 locale/programs/ld-paper.c:228
#: locale/programs/ld-telephone.c:292 locale/programs/ld-time.c:990
-#: locale/programs/locfile.c:997 locale/programs/repertoire.c:323
+#: locale/programs/locfile.c:1010 locale/programs/repertoire.c:323
#, c-format
msgid "%s: premature end of file"
msgstr "%s: gặp kết thúc tập tin quá sớm"
-#: locale/programs/charmap.c:874 locale/programs/charmap.c:885
+#: locale/programs/charmap.c:875 locale/programs/charmap.c:886
#, c-format
msgid "unknown character `%s'"
msgstr "không rõ ký tá»± “%sâ€"
-#: locale/programs/charmap.c:893
+#: locale/programs/charmap.c:894
#, c-format
msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d"
msgstr "số byte cho dãy byte ở đầu và cuối của phạm vi không phải là trùng: %d so với %d"
-#: locale/programs/charmap.c:998 locale/programs/ld-collate.c:2893
+#: locale/programs/charmap.c:999 locale/programs/ld-collate.c:2893
#: locale/programs/repertoire.c:418
msgid "invalid names for character range"
msgstr "tên không hợp lệ cho phạm vi ký tự"
-#: locale/programs/charmap.c:1010 locale/programs/repertoire.c:430
+#: locale/programs/charmap.c:1011 locale/programs/repertoire.c:430
msgid "hexadecimal range format should use only capital characters"
msgstr "định dạng phạm vi thập lục chỉ nên dùng chữ HOA"
-#: locale/programs/charmap.c:1028 locale/programs/repertoire.c:448
+#: locale/programs/charmap.c:1029 locale/programs/repertoire.c:448
#, c-format
msgid "<%s> and <%s> are invalid names for range"
msgstr "<%s> và <%s> là tên không hợp lệ với phạm vi"
-#: locale/programs/charmap.c:1034 locale/programs/repertoire.c:455
+#: locale/programs/charmap.c:1035 locale/programs/repertoire.c:455
msgid "upper limit in range is smaller than lower limit"
msgstr "giới hạn trên của phạm vi là nhỠhơn giới hạn dưới"
-#: locale/programs/charmap.c:1092
+#: locale/programs/charmap.c:1093
msgid "resulting bytes for range not representable."
msgstr "không thể đại diện số byte kết quả cho phạm vi."
@@ -1864,7 +1868,7 @@ msgid "%s: numeric country code `%d' not valid"
msgstr "%s: mã quốc gia thuộc kiểu số “%d†là không hợp lệ"
#: locale/programs/ld-address.c:432 locale/programs/ld-address.c:469
-#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2478
+#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2479
#: locale/programs/ld-identification.c:309
#: locale/programs/ld-measurement.c:196 locale/programs/ld-messages.c:264
#: locale/programs/ld-monetary.c:503 locale/programs/ld-monetary.c:538
@@ -1887,7 +1891,7 @@ msgid "%s: unknown character in field `%s'"
msgstr "%s: không rõ ký tá»± trong trÆ°á»ng “%sâ€"
#: locale/programs/ld-address.c:521 locale/programs/ld-collate.c:3772
-#: locale/programs/ld-ctype.c:2826 locale/programs/ld-identification.c:394
+#: locale/programs/ld-ctype.c:2827 locale/programs/ld-identification.c:394
#: locale/programs/ld-measurement.c:210 locale/programs/ld-messages.c:293
#: locale/programs/ld-monetary.c:746 locale/programs/ld-name.c:260
#: locale/programs/ld-numeric.c:323 locale/programs/ld-paper.c:210
@@ -1900,8 +1904,8 @@ msgstr "%s: dòng “END†chưa hoàn thiện"
#: locale/programs/ld-collate.c:602 locale/programs/ld-collate.c:898
#: locale/programs/ld-collate.c:911 locale/programs/ld-collate.c:2582
#: locale/programs/ld-collate.c:2603 locale/programs/ld-collate.c:3957
-#: locale/programs/ld-ctype.c:1846 locale/programs/ld-ctype.c:2104
-#: locale/programs/ld-ctype.c:2676 locale/programs/ld-ctype.c:2837
+#: locale/programs/ld-ctype.c:1847 locale/programs/ld-ctype.c:2105
+#: locale/programs/ld-ctype.c:2677 locale/programs/ld-ctype.c:2838
#: locale/programs/ld-identification.c:404
#: locale/programs/ld-measurement.c:220 locale/programs/ld-messages.c:302
#: locale/programs/ld-monetary.c:755 locale/programs/ld-name.c:269
@@ -2245,129 +2249,129 @@ msgstr "ánh xạ ký tự “%s†đã được định nghĩa"
msgid "implementation limit: no more than %d character maps allowed"
msgstr "giới hạn thực hiện: không cho phép vượt quá %d ánh xạ ký tự"
-#: locale/programs/ld-ctype.c:1434 locale/programs/ld-ctype.c:1559
-#: locale/programs/ld-ctype.c:1665 locale/programs/ld-ctype.c:2341
-#: locale/programs/ld-ctype.c:3299
+#: locale/programs/ld-ctype.c:1435 locale/programs/ld-ctype.c:1560
+#: locale/programs/ld-ctype.c:1666 locale/programs/ld-ctype.c:2342
+#: locale/programs/ld-ctype.c:3302
#, c-format
msgid "%s: field `%s' does not contain exactly ten entries"
msgstr "%s: trÆ°á»ng “%s†không chứa chính xác mÆ°á»i mục nhập"
-#: locale/programs/ld-ctype.c:1462 locale/programs/ld-ctype.c:2036
+#: locale/programs/ld-ctype.c:1463 locale/programs/ld-ctype.c:2037
#, c-format
msgid "to-value <U%0*X> of range is smaller than from-value <U%0*X>"
msgstr "giá trị Äến <U%0*X> của phạm vi là nhá» hÆ¡n giá trị Từ <U%0*X>"
-#: locale/programs/ld-ctype.c:1589
+#: locale/programs/ld-ctype.c:1590
msgid "start and end character sequence of range must have the same length"
msgstr "dãy ký tá»± đầu và cuối của phạm vi phải có cùng má»™t chiá»u dài"
-#: locale/programs/ld-ctype.c:1596
+#: locale/programs/ld-ctype.c:1597
msgid "to-value character sequence is smaller than from-value sequence"
msgstr "dãy ký tá»± của giá trị Äến là nhá» hÆ¡n dãy ký tá»± của giá trị Từ"
-#: locale/programs/ld-ctype.c:1956 locale/programs/ld-ctype.c:2007
+#: locale/programs/ld-ctype.c:1957 locale/programs/ld-ctype.c:2008
msgid "premature end of `translit_ignore' definition"
msgstr "gặp kết thúc quá sá»›m của lá»i định nghÄ©a “translit_ignoreâ€"
-#: locale/programs/ld-ctype.c:1962 locale/programs/ld-ctype.c:2013
-#: locale/programs/ld-ctype.c:2055
+#: locale/programs/ld-ctype.c:1963 locale/programs/ld-ctype.c:2014
+#: locale/programs/ld-ctype.c:2056
msgid "syntax error"
msgstr "lỗi cú pháp"
-#: locale/programs/ld-ctype.c:2188
+#: locale/programs/ld-ctype.c:2189
#, c-format
msgid "%s: syntax error in definition of new character class"
msgstr "%s: gặp lá»—i cú pháp trong lá»i định nghÄ©a của lá»›p ký tá»± má»›i"
-#: locale/programs/ld-ctype.c:2203
+#: locale/programs/ld-ctype.c:2204
#, c-format
msgid "%s: syntax error in definition of new character map"
msgstr "%s: gặp lá»—i cú pháp trong lá»i định nghÄ©a của ánh xạ ký tá»± má»›i"
-#: locale/programs/ld-ctype.c:2363
+#: locale/programs/ld-ctype.c:2364
msgid "ellipsis range must be marked by two operands of same type"
msgstr "phạm vi dấu chấm lửng phải được đánh dấu bằng hai toán lớp cùng kiểu"
-#: locale/programs/ld-ctype.c:2372
+#: locale/programs/ld-ctype.c:2373
msgid "with symbolic name range values the absolute ellipsis `...' must not be used"
msgstr "đối vá»›i giá trị tên tượng trÆ°ng thì không cho phép dùng dấu chấm lá»­ng tuyệt đối “…â€"
-#: locale/programs/ld-ctype.c:2387
+#: locale/programs/ld-ctype.c:2388
msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'"
msgstr "đối vá»›i giá trị phạm vi UCS thì phải dùng dấu chấm lá»­ng tượng trÆ°ng thập lục “..â€"
-#: locale/programs/ld-ctype.c:2401
+#: locale/programs/ld-ctype.c:2402
msgid "with character code range values one must use the absolute ellipsis `...'"
msgstr "đối vá»›i giá trị phạm vi mã ký tá»± thì phải dùng dấu chấm lá»­ng tuyệt đối “…â€"
-#: locale/programs/ld-ctype.c:2552
+#: locale/programs/ld-ctype.c:2553
#, c-format
msgid "duplicated definition for mapping `%s'"
msgstr "gặp lá»i định nghÄ©a trùng của sá»± ánh xạ “%sâ€"
-#: locale/programs/ld-ctype.c:2638 locale/programs/ld-ctype.c:2782
+#: locale/programs/ld-ctype.c:2639 locale/programs/ld-ctype.c:2783
#, c-format
msgid "%s: `translit_start' section does not end with `translit_end'"
msgstr "%s: phần “translit_start†không kết thúc vá»›i “translit_endâ€"
-#: locale/programs/ld-ctype.c:2733
+#: locale/programs/ld-ctype.c:2734
#, c-format
msgid "%s: duplicate `default_missing' definition"
msgstr "%s: lá»i định nghÄ©a “default_missing†trùng"
-#: locale/programs/ld-ctype.c:2738
+#: locale/programs/ld-ctype.c:2739
msgid "previous definition was here"
msgstr "lá»i định nghÄ©a trÆ°á»›c ở đây"
-#: locale/programs/ld-ctype.c:2760
+#: locale/programs/ld-ctype.c:2761
#, c-format
msgid "%s: no representable `default_missing' definition found"
msgstr "%s: không tìm thấy lá»i định nghÄ©a “default_missing†có thể đại diện"
-#: locale/programs/ld-ctype.c:2877 locale/programs/ld-ctype.c:2973
-#: locale/programs/ld-ctype.c:2992 locale/programs/ld-ctype.c:3012
-#: locale/programs/ld-ctype.c:3032 locale/programs/ld-ctype.c:3052
-#: locale/programs/ld-ctype.c:3072 locale/programs/ld-ctype.c:3111
-#: locale/programs/ld-ctype.c:3131 locale/programs/ld-ctype.c:3195
-#: locale/programs/ld-ctype.c:3236 locale/programs/ld-ctype.c:3259
+#: locale/programs/ld-ctype.c:2878 locale/programs/ld-ctype.c:2974
+#: locale/programs/ld-ctype.c:2993 locale/programs/ld-ctype.c:3013
+#: locale/programs/ld-ctype.c:3033 locale/programs/ld-ctype.c:3053
+#: locale/programs/ld-ctype.c:3073 locale/programs/ld-ctype.c:3112
+#: locale/programs/ld-ctype.c:3132 locale/programs/ld-ctype.c:3198
+#: locale/programs/ld-ctype.c:3239 locale/programs/ld-ctype.c:3262
#, c-format
msgid "%s: character `%s' not defined while needed as default value"
msgstr "%s: chưa định nghĩa ký tự “%s†mà cần thiết làm giá trị mặc định"
-#: locale/programs/ld-ctype.c:2882 locale/programs/ld-ctype.c:2978
-#: locale/programs/ld-ctype.c:2997 locale/programs/ld-ctype.c:3017
-#: locale/programs/ld-ctype.c:3037 locale/programs/ld-ctype.c:3057
-#: locale/programs/ld-ctype.c:3077 locale/programs/ld-ctype.c:3116
-#: locale/programs/ld-ctype.c:3136 locale/programs/ld-ctype.c:3200
+#: locale/programs/ld-ctype.c:2883 locale/programs/ld-ctype.c:2979
+#: locale/programs/ld-ctype.c:2998 locale/programs/ld-ctype.c:3018
+#: locale/programs/ld-ctype.c:3038 locale/programs/ld-ctype.c:3058
+#: locale/programs/ld-ctype.c:3078 locale/programs/ld-ctype.c:3117
+#: locale/programs/ld-ctype.c:3137 locale/programs/ld-ctype.c:3203
#, c-format
msgid "%s: character `%s' in charmap not representable with one byte"
msgstr "%s: ký tự “%s†trong ánh xạ ký tự không thể được đại diện dùng một byte"
-#: locale/programs/ld-ctype.c:3242 locale/programs/ld-ctype.c:3265
+#: locale/programs/ld-ctype.c:3245 locale/programs/ld-ctype.c:3268
#, c-format
msgid "%s: character `%s' needed as default value not representable with one byte"
msgstr "%s: ký tự “%s†cần thiết làm giá trị mặc định mà không thể được đại diện dùng một byte"
-#: locale/programs/ld-ctype.c:3321
+#: locale/programs/ld-ctype.c:3324
msgid "no output digits defined and none of the standard names in the charmap"
msgstr "chưa định nghĩa chữ số kết xuất hoặc tên tiêu chuẩn trong ánh xạ ký tự"
-#: locale/programs/ld-ctype.c:3570
+#: locale/programs/ld-ctype.c:3573
#, c-format
msgid "%s: transliteration data from locale `%s' not available"
msgstr "%s: không có sẵn dữ liệu chuyển chữ từ miá»n địa phÆ°Æ¡ng “%sâ€"
-#: locale/programs/ld-ctype.c:3669
+#: locale/programs/ld-ctype.c:3672
#, c-format
msgid "%s: table for class \"%s\": %lu bytes"
msgstr "%s: bảng cho lá»›p “%sâ€: %lu byte"
-#: locale/programs/ld-ctype.c:3733
+#: locale/programs/ld-ctype.c:3736
#, c-format
msgid "%s: table for map \"%s\": %lu bytes"
msgstr "%s: bảng cho ánh xạ “%sâ€: %lu byte"
-#: locale/programs/ld-ctype.c:3857
+#: locale/programs/ld-ctype.c:3860
#, c-format
msgid "%s: table for width: %lu bytes"
msgstr "%s: bảng cho chiá»u rá»™ng: %lu byte"
@@ -2607,120 +2611,115 @@ msgstr ""
"TÊN\n"
"[-a|-m]"
-#: locale/programs/locale.c:190
+#: locale/programs/locale.c:522
#, c-format
-msgid "Cannot set LC_CTYPE to default locale"
-msgstr "Không thể đặt LC_TYPE thành miá»n địa phÆ°Æ¡ng mặc định"
-
-#: locale/programs/locale.c:192
-#, c-format
-msgid "Cannot set LC_MESSAGES to default locale"
-msgstr "Không thể đặt LC_MESSAGES thành miá»n địa phÆ°Æ¡ng mặc định"
-
-#: locale/programs/locale.c:205
-#, c-format
-msgid "Cannot set LC_COLLATE to default locale"
-msgstr "Không thể đặt LC_COLLATE thành miá»n địa phÆ°Æ¡ng mặc định"
+msgid "while preparing output"
+msgstr "trong khi chuẩn bị kết xuất"
-#: locale/programs/locale.c:221
-#, c-format
-msgid "Cannot set LC_ALL to default locale"
+#: locale/programs/locale.c:998
+#, fuzzy, c-format
+#| msgid "Cannot set LC_ALL to default locale"
+msgid "Cannot set %s to default locale"
msgstr "Không thể đặt LC_ALL thành miá»n địa phÆ°Æ¡ng mặc định"
-#: locale/programs/locale.c:521
+#: locale/programs/locale.c:1096
#, c-format
-msgid "while preparing output"
-msgstr "trong khi chuẩn bị kết xuất"
+msgid "warning: The LOCPATH variable is set to \"%s\"\n"
+msgstr ""
-#: locale/programs/localedef.c:112
+#: locale/programs/localedef.c:116
msgid "Input Files:"
msgstr "Các tập tin đầu vào:"
-#: locale/programs/localedef.c:114
+#: locale/programs/localedef.c:118
msgid "Symbolic character names defined in FILE"
msgstr "Các tên ký tự tượng trưng được định nghĩa trong TẬP-TIN"
-#: locale/programs/localedef.c:116
+#: locale/programs/localedef.c:120
msgid "Source definitions are found in FILE"
msgstr "Các lá»i định nghÄ©a nguồn nằm trong TẬP-TIN"
-#: locale/programs/localedef.c:118
+#: locale/programs/localedef.c:122
msgid "FILE contains mapping from symbolic names to UCS4 values"
msgstr "TẬP-TIN chứa sự ánh xạ từ tên tượng trưng đến giá trị UCS4"
-#: locale/programs/localedef.c:122
+#: locale/programs/localedef.c:126
msgid "Create output even if warning messages were issued"
msgstr "Tạo kết xuất thậm chí nếu có cảnh báo"
-#: locale/programs/localedef.c:123
+#: locale/programs/localedef.c:128
+msgid "Do not create hard links between installed locales"
+msgstr ""
+
+#: locale/programs/localedef.c:129
msgid "Optional output file prefix"
msgstr "Tiá»n tố tập tin xuất tùy chá»n"
-#: locale/programs/localedef.c:124
+#: locale/programs/localedef.c:130
msgid "Strictly conform to POSIX"
msgstr "Làm cho hợp hoàn toàn với POSIX"
-#: locale/programs/localedef.c:126
+#: locale/programs/localedef.c:132
msgid "Suppress warnings and information messages"
msgstr "Thu hồi các cảnh báo và thông điệp thông tin"
-#: locale/programs/localedef.c:127
+#: locale/programs/localedef.c:133
msgid "Print more messages"
msgstr "In thêm thông điệp"
-#: locale/programs/localedef.c:128 locale/programs/localedef.c:131
+#: locale/programs/localedef.c:134 locale/programs/localedef.c:137
msgid "<warnings>"
msgstr "<cảnh báo>"
-#: locale/programs/localedef.c:129
+#: locale/programs/localedef.c:135
msgid "Comma-separated list of warnings to disable; supported warnings are: ascii, intcurrsym"
msgstr "danh sách cảnh bảo ngăn cách bằng dấu phẩy bị tắt; các cảnh báo được hỗ trợ là: ascii, intcurrsym"
-#: locale/programs/localedef.c:132
+#: locale/programs/localedef.c:138
msgid "Comma-separated list of warnings to enable; supported warnings are: ascii, intcurrsym"
msgstr "danh sách cảnh bảo ngăn cách bằng dấu phẩy được bật; các cảnh báo được hỗ trợ là: ascii, intcurrsym"
-#: locale/programs/localedef.c:135
+#: locale/programs/localedef.c:141
msgid "Archive control:"
msgstr "Äiá»u khiển kho lÆ°u:"
-#: locale/programs/localedef.c:137
+#: locale/programs/localedef.c:143
msgid "Don't add new data to archive"
msgstr "Äừng thêm dữ liệu má»›i vào kho lÆ°u"
-#: locale/programs/localedef.c:139
+#: locale/programs/localedef.c:145
msgid "Add locales named by parameters to archive"
msgstr "Thêm vào kho lÆ°u các miá»n địa phÆ°Æ¡ng được tham số đặt tên"
-#: locale/programs/localedef.c:140
+#: locale/programs/localedef.c:146
msgid "Replace existing archive content"
msgstr "Thay thế nội dung kho lưu đã có"
-#: locale/programs/localedef.c:142
+#: locale/programs/localedef.c:148
msgid "Remove locales named by parameters from archive"
msgstr "Gỡ bá» các miá»n địa phÆ°Æ¡ng được đặt tên bằng tham số từ kho lÆ°u"
-#: locale/programs/localedef.c:143
+#: locale/programs/localedef.c:149
msgid "List content of archive"
msgstr "Liệt kê nội dung của kho lưu"
-#: locale/programs/localedef.c:145
+#: locale/programs/localedef.c:151
msgid "locale.alias file to consult when making archive"
msgstr "tập tin locale.alias cần Ä‘á»c khi tạo kho lÆ°u"
-#: locale/programs/localedef.c:147
+#: locale/programs/localedef.c:153
msgid "Generate little-endian output"
msgstr "Tạo kết xuất little-endian (nhỠtrước)"
-#: locale/programs/localedef.c:149
+#: locale/programs/localedef.c:155
msgid "Generate big-endian output"
msgstr "Tạo kết xuất big-endian (lớn trước)"
-#: locale/programs/localedef.c:154
+#: locale/programs/localedef.c:160
msgid "Compile locale specification"
msgstr "Biên dịch đặc tả miá»n địa phÆ°Æ¡ng"
-#: locale/programs/localedef.c:157
+#: locale/programs/localedef.c:163
msgid ""
"NAME\n"
"[--add-to-archive|--delete-from-archive] FILE...\n"
@@ -2730,31 +2729,31 @@ msgstr ""
"[--add-to-archive|--delete-from-archive] TẬP-TIN…\n"
"--list-archive [TẬP-TIN]"
-#: locale/programs/localedef.c:232
+#: locale/programs/localedef.c:238
#, c-format
msgid "cannot create directory for output files"
msgstr "không thể tạo thư mục cho tập tin kết xuất"
-#: locale/programs/localedef.c:243
+#: locale/programs/localedef.c:249
msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
msgstr "NGHIÊM TRỌNG: hệ thống không định nghÄ©a “_POSIX2_LOCALEDEFâ€"
-#: locale/programs/localedef.c:257 locale/programs/localedef.c:273
-#: locale/programs/localedef.c:663 locale/programs/localedef.c:683
+#: locale/programs/localedef.c:263 locale/programs/localedef.c:279
+#: locale/programs/localedef.c:673 locale/programs/localedef.c:693
#, c-format
msgid "cannot open locale definition file `%s'"
msgstr "không thể mở tập tin định nghÄ©a miá»n địa phÆ°Æ¡ng “%sâ€"
-#: locale/programs/localedef.c:297
+#: locale/programs/localedef.c:303
#, c-format
msgid "cannot write output files to `%s'"
msgstr "không thể ghi tập tin kết xuất vào “%sâ€"
-#: locale/programs/localedef.c:303
+#: locale/programs/localedef.c:309
msgid "no output file produced because errors were issued"
msgstr "chưa xuất ra tập tin do có lỗi phát sinh"
-#: locale/programs/localedef.c:431
+#: locale/programs/localedef.c:441
#, c-format
msgid ""
"System's directory for character maps : %s\n"
@@ -2767,11 +2766,11 @@ msgstr ""
" Ä‘Æ°á»ng dẫn miá»n địa phÆ°Æ¡ng: %s\n"
"%s"
-#: locale/programs/localedef.c:631
+#: locale/programs/localedef.c:641
msgid "circular dependencies between locale definitions"
msgstr "quan hệ phụ thuá»™c vòng tròn giữa các lá»i định nghÄ©a miá»n địa phÆ°Æ¡ng"
-#: locale/programs/localedef.c:637
+#: locale/programs/localedef.c:647
#, c-format
msgid "cannot add already read locale `%s' a second time"
msgstr "không thể thêm lần thứ hai miá»n địa phÆ°Æ¡ng đã Ä‘á»c “%sâ€"
@@ -2927,24 +2926,24 @@ msgstr "không thể mở tập tin kết xuất “%s†cho phân loại “%s
msgid "failure while writing data for category `%s'"
msgstr "gặp lá»—i khi ghi dữ liệu vá» phân loại “%sâ€"
-#: locale/programs/locfile.c:917
+#: locale/programs/locfile.c:930
#, c-format
msgid "cannot create output file `%s' for category `%s'"
msgstr "không thể tạo tập tin kết xuất “%s†cho phân loại “%sâ€"
-#: locale/programs/locfile.c:953
+#: locale/programs/locfile.c:966
msgid "expecting string argument for `copy'"
msgstr "mong đợi đối số chuỗi cho “copy†(sao chép)"
-#: locale/programs/locfile.c:957
+#: locale/programs/locfile.c:970
msgid "locale name should consist only of portable characters"
msgstr "tên miá»n địa phÆ°Æ¡ng nên chứa chỉ ký tá»± khả chuyển"
-#: locale/programs/locfile.c:976
+#: locale/programs/locfile.c:989
msgid "no other keyword shall be specified when `copy' is used"
msgstr "dùng “copy†(sao chép) thì không chỉ ra từ khóa khác"
-#: locale/programs/locfile.c:990
+#: locale/programs/locfile.c:1003
#, c-format
msgid "`%1$s' definition does not end with `END %1$s'"
msgstr "lá»i định nghÄ©a “%1$s†không kết thúc vá»›i “END %1$sâ€"
@@ -3780,12 +3779,12 @@ msgstr "yp_update: không thể chuyển đổi máy sang netname\n"
msgid "yp_update: cannot get server address\n"
msgstr "yp_update: không thể lấy địa chỉ của máy phục vụ\n"
-#: nscd/aicache.c:83 nscd/hstcache.c:452
+#: nscd/aicache.c:82 nscd/hstcache.c:452
#, c-format
msgid "Haven't found \"%s\" in hosts cache!"
msgstr "Không tìm thấy “%s†trong bộ nhớ tạm các máy phục vụ!"
-#: nscd/aicache.c:85 nscd/hstcache.c:454
+#: nscd/aicache.c:84 nscd/hstcache.c:454
#, c-format
msgid "Reloading \"%s\" in hosts cache!"
msgstr "Äang nạp lại “%s†trong bá»™ nhá»› tạm các máy phục vụ!"
@@ -4106,22 +4105,22 @@ msgstr "đã giải phóng %zu byte trong bộ nhớ tạm %s"
msgid "no more memory for database '%s'"
msgstr "không có bá»™ nhá»› còn lại cho cÆ¡ sở dữ liệu “%sâ€"
-#: nscd/netgroupcache.c:121
+#: nscd/netgroupcache.c:122
#, c-format
msgid "Haven't found \"%s\" in netgroup cache!"
msgstr "Không tìm thấy “%s†trong bộ nhớ tạm nhóm mạng (netgroup)!"
-#: nscd/netgroupcache.c:123
+#: nscd/netgroupcache.c:124
#, c-format
msgid "Reloading \"%s\" in netgroup cache!"
msgstr "Äang nạp lại “%s†trong bá»™ nhá»› tạm nhóm mạng (netgroup)!"
-#: nscd/netgroupcache.c:469
+#: nscd/netgroupcache.c:470
#, c-format
msgid "Haven't found \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr "Không tìm thấy “%s (%s,%s,%s)†trong bộ nhớ tạm nhóm mạng (netgroup)!"
-#: nscd/netgroupcache.c:472
+#: nscd/netgroupcache.c:473
#, c-format
msgid "Reloading \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr "Äang nạp lại “%s (%s,%s,%s)†trong bá»™ nhá»› tạm nhóm mạng (netgroup)!"
@@ -4174,7 +4173,7 @@ msgstr "Dùng bá»™ nhá»› tạm riêng cho má»—i ngÆ°á»i dùng"
msgid "Name Service Cache Daemon."
msgstr "Trình ná»n nhá»› tạm dịch vụ tên."
-#: nscd/nscd.c:155 nss/getent.c:967 nss/makedb.c:206
+#: nscd/nscd.c:155 nss/getent.c:987 nss/makedb.c:206
#, c-format
msgid "wrong number of arguments"
msgstr "số đối số không đúng"
@@ -4282,27 +4281,27 @@ msgstr "Lỗi phân tích: %s"
msgid "Must specify user name for server-user option"
msgstr "Phải chỉ ra tên ngÆ°á»i dùng cho tùy chá»n server-user (ngÆ°á»i dùng máy phục vụ)"
-#: nscd/nscd_conf.c:198
+#: nscd/nscd_conf.c:201
#, c-format
msgid "Must specify user name for stat-user option"
msgstr "Phải chỉ ra tên ngÆ°á»i dùng cho tùy chá»n stat-user (ngÆ°á»i dùng thống kê?)"
-#: nscd/nscd_conf.c:255
+#: nscd/nscd_conf.c:259
#, c-format
msgid "Must specify value for restart-interval option"
msgstr "Phải chỉ ra giá trị cho tùy chá»n restart-interval (khoảng khởi chạy lại)"
-#: nscd/nscd_conf.c:269
+#: nscd/nscd_conf.c:273
#, c-format
msgid "Unknown option: %s %s %s"
msgstr "Không rõ tùy chá»n %s %s %s"
-#: nscd/nscd_conf.c:282
+#: nscd/nscd_conf.c:286
#, c-format
msgid "cannot get current working directory: %s; disabling paranoia mode"
msgstr "không thể lấy thÆ° mục hoạt Ä‘á»™ng hiện thá»i: %s; Ä‘ang tắt chế Ä‘á»™ rất cẩn thận"
-#: nscd/nscd_conf.c:302
+#: nscd/nscd_conf.c:306
#, c-format
msgid "maximum file size for %s database too small"
msgstr "kích cỡ tập tin tối đa quá nhỠcho cơ sở dữ liệu %s"
@@ -4564,46 +4563,46 @@ msgstr "Không tìm thấy “%s†trong bộ nhớ tạm dịch vụ!"
msgid "Reloading \"%s\" in services cache!"
msgstr "Äang nạp lại “%s†trong bá»™ nhá»› tạm dịch vụ!"
-#: nss/getent.c:54
+#: nss/getent.c:55
msgid "database [key ...]"
msgstr "cơ sở dữ liệu [khóa …]"
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "CONFIG"
msgstr "CẤU_HÌNH"
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "Service configuration to be used"
msgstr "Cấu hình dịch vụ cần dùng"
-#: nss/getent.c:60
+#: nss/getent.c:61
msgid "disable IDN encoding"
msgstr "tắt mã hóa IDN"
-#: nss/getent.c:65
+#: nss/getent.c:66
msgid "Get entries from administrative database."
msgstr "Lấy các mục nhập từ cơ sở dữ liệu quản trị."
-#: nss/getent.c:149 nss/getent.c:442 nss/getent.c:489
+#: nss/getent.c:150 nss/getent.c:462 nss/getent.c:509
#, c-format
msgid "Enumeration not supported on %s\n"
msgstr "Chức năng đếm không được hỗ trợ trên %s\n"
-#: nss/getent.c:497 nss/getent.c:510
+#: nss/getent.c:517 nss/getent.c:530
#, c-format
msgid "Could not allocate group list: %m\n"
msgstr "Không cấp phát danh sách nhóm: %m\n"
-#: nss/getent.c:881
+#: nss/getent.c:901
#, c-format
msgid "Unknown database name"
msgstr "Không rõ tên cơ sở dữ liệu"
-#: nss/getent.c:911
+#: nss/getent.c:931
msgid "Supported databases:\n"
msgstr "Các cơ sở dữ liệu được hỗ trợ:\n"
-#: nss/getent.c:977
+#: nss/getent.c:997
#, c-format
msgid "Unknown database: %s\n"
msgstr "Không rõ cơ sở dữ liệu: %s\n"
@@ -4858,11 +4857,11 @@ msgstr "Biểu thức chính quy quá lớn"
msgid "Unmatched ) or \\)"
msgstr "ChÆ°a khá»›p ký tá»± “)†hay “\\)â€"
-#: posix/regcomp.c:689
+#: posix/regcomp.c:676
msgid "No previous regular expression"
msgstr "Không có biểu thức chính quy đi trước"
-#: posix/wordexp.c:1815
+#: posix/wordexp.c:1816
msgid "parameter null or not set"
msgstr "tham số vô giá trị hoặc chưa được đặt"
@@ -5047,7 +5046,7 @@ msgstr "Bộ đệm xuất sẵn dùng"
msgid "Input message available"
msgstr "Bộ đệm nhập sẵn dùng"
-#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:381 timezone/zic.c:520
+#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:375 timezone/zic.c:561
msgid "I/O error"
msgstr "Lá»—i V/R"
@@ -5130,7 +5129,7 @@ msgstr "Tín hiệu không rõ %d"
#: sunrpc/auth_unix.c:112 sunrpc/clnt_tcp.c:124 sunrpc/clnt_udp.c:139
#: sunrpc/clnt_unix.c:125 sunrpc/svc_tcp.c:189 sunrpc/svc_tcp.c:233
#: sunrpc/svc_udp.c:161 sunrpc/svc_unix.c:189 sunrpc/svc_unix.c:229
-#: sunrpc/xdr.c:628 sunrpc/xdr.c:788 sunrpc/xdr_array.c:102
+#: sunrpc/xdr.c:631 sunrpc/xdr.c:791 sunrpc/xdr_array.c:102
#: sunrpc/xdr_rec.c:153 sunrpc/xdr_ref.c:79
msgid "out of memory\n"
msgstr "hết bộ nhớ\n"
@@ -6382,56 +6381,69 @@ msgid "You really blew it this time"
msgstr "Chắc là má»™t trÆ°á»ng hợp sai"
#. TRANS Go home and have a glass of warm, dairy-fresh milk.
-#: sysdeps/gnu/errlist.c:978
+#. TRANS @c Okay. Since you are dying to know, I'll tell you.
+#. TRANS @c This is a joke, obviously. There is a children's song which begins,
+#. TRANS @c "Old McDonald had a farm, e-i-e-i-o." Every time I see the (real)
+#. TRANS @c errno macro EIO, I think about that song. Probably most of my
+#. TRANS @c compatriots who program on Unix do, too. One of them must have stayed
+#. TRANS @c up a little too late one night and decided to add it to Hurd or Glibc.
+#. TRANS @c Whoever did it should be castigated, but it made me laugh.
+#. TRANS @c --jtobey@channel1.com
+#. TRANS @c
+#. TRANS @c "bought the farm" means "died". -jtobey
+#. TRANS @c
+#. TRANS @c Translators, please do not translate this litteraly, translate it into
+#. TRANS @c an idiomatic funny way of saying that the computer died.
+#: sysdeps/gnu/errlist.c:991
msgid "Computer bought the farm"
msgstr "Máy tính đã chết"
#. TRANS This error code has no purpose.
-#: sysdeps/gnu/errlist.c:987
+#: sysdeps/gnu/errlist.c:1000
msgid "Gratuitous error"
msgstr "Lỗi không có lý do"
-#: sysdeps/gnu/errlist.c:995
+#: sysdeps/gnu/errlist.c:1008
msgid "Bad message"
msgstr "Thông điệp sai"
-#: sysdeps/gnu/errlist.c:1003
+#: sysdeps/gnu/errlist.c:1016
msgid "Identifier removed"
msgstr "Äịnh danh bị gỡ bá»"
-#: sysdeps/gnu/errlist.c:1011
+#: sysdeps/gnu/errlist.c:1024
msgid "Multihop attempted"
msgstr "Äa nhảy được thá»­"
-#: sysdeps/gnu/errlist.c:1019
+#: sysdeps/gnu/errlist.c:1032
msgid "No data available"
msgstr "Không có dữ liệu sẵn sàng"
-#: sysdeps/gnu/errlist.c:1027
+#: sysdeps/gnu/errlist.c:1040
msgid "Link has been severed"
msgstr "Liên kết đã bị ngắt"
-#: sysdeps/gnu/errlist.c:1035
+#: sysdeps/gnu/errlist.c:1048
msgid "No message of desired type"
msgstr "Không có thông điệp kiểu đã muốn"
-#: sysdeps/gnu/errlist.c:1043
+#: sysdeps/gnu/errlist.c:1056
msgid "Out of streams resources"
msgstr "Hết tài nguyên luồng dữ liệu"
-#: sysdeps/gnu/errlist.c:1051
+#: sysdeps/gnu/errlist.c:1064
msgid "Device not a stream"
msgstr "Thiết bị không phải luồng dữ liệu"
-#: sysdeps/gnu/errlist.c:1059
+#: sysdeps/gnu/errlist.c:1072
msgid "Value too large for defined data type"
msgstr "Giá trị quá lớn cho kiểu dữ liệu đã định nghĩa"
-#: sysdeps/gnu/errlist.c:1067
+#: sysdeps/gnu/errlist.c:1080
msgid "Protocol error"
msgstr "Lỗi giao thức"
-#: sysdeps/gnu/errlist.c:1075
+#: sysdeps/gnu/errlist.c:1088
msgid "Timer expired"
msgstr "Quá hạn"
@@ -6439,195 +6451,195 @@ msgstr "Quá hạn"
#. TRANS completed. @xref{Asynchronous I/O}. When you call @code{aio_cancel},
#. TRANS the normal result is for the operations affected to complete with this
#. TRANS error; @pxref{Cancel AIO Operations}.
-#: sysdeps/gnu/errlist.c:1087
+#: sysdeps/gnu/errlist.c:1100
msgid "Operation canceled"
msgstr "Thao tác bị hủy bá»"
-#: sysdeps/gnu/errlist.c:1095
+#: sysdeps/gnu/errlist.c:1108
msgid "Owner died"
msgstr "Chủ đã chết"
-#: sysdeps/gnu/errlist.c:1103
+#: sysdeps/gnu/errlist.c:1116
msgid "State not recoverable"
msgstr "Tình trạng không thể phục hồi được"
-#: sysdeps/gnu/errlist.c:1111
+#: sysdeps/gnu/errlist.c:1124
msgid "Interrupted system call should be restarted"
msgstr "Cuá»™c gá»i hệ thống bị gián Ä‘oạn nên được khởi chạy lại"
-#: sysdeps/gnu/errlist.c:1119
+#: sysdeps/gnu/errlist.c:1132
msgid "Channel number out of range"
msgstr "Số thứ tự kênh ở ngoài phạm vi"
-#: sysdeps/gnu/errlist.c:1127
+#: sysdeps/gnu/errlist.c:1140
msgid "Level 2 not synchronized"
msgstr "Cấp 2 không được đồng bộ"
-#: sysdeps/gnu/errlist.c:1135
+#: sysdeps/gnu/errlist.c:1148
msgid "Level 3 halted"
msgstr "Cấp 3 bị dừng"
-#: sysdeps/gnu/errlist.c:1143
+#: sysdeps/gnu/errlist.c:1156
msgid "Level 3 reset"
msgstr "Cấp 3 được đặt lại"
-#: sysdeps/gnu/errlist.c:1151
+#: sysdeps/gnu/errlist.c:1164
msgid "Link number out of range"
msgstr "Số thứ tự liên kết ở ngoài phạm vi"
-#: sysdeps/gnu/errlist.c:1159
+#: sysdeps/gnu/errlist.c:1172
msgid "Protocol driver not attached"
msgstr "Trình Ä‘iá»u khiển giao thức không được gắn nối"
-#: sysdeps/gnu/errlist.c:1167
+#: sysdeps/gnu/errlist.c:1180
msgid "No CSI structure available"
msgstr "Không có cấu trúc CSI sẵn sàng"
-#: sysdeps/gnu/errlist.c:1175
+#: sysdeps/gnu/errlist.c:1188
msgid "Level 2 halted"
msgstr "Cấp 2 bị dừng"
-#: sysdeps/gnu/errlist.c:1183
+#: sysdeps/gnu/errlist.c:1196
msgid "Invalid exchange"
msgstr "Trao đổi không hợp lệ"
-#: sysdeps/gnu/errlist.c:1191
+#: sysdeps/gnu/errlist.c:1204
msgid "Invalid request descriptor"
msgstr "Bộ mô tả yêu cầu không hợp lệ"
-#: sysdeps/gnu/errlist.c:1199
+#: sysdeps/gnu/errlist.c:1212
msgid "Exchange full"
msgstr "Trao đổi đầy đủ"
-#: sysdeps/gnu/errlist.c:1207
+#: sysdeps/gnu/errlist.c:1220
msgid "No anode"
msgstr "Không có dương cực"
-#: sysdeps/gnu/errlist.c:1215
+#: sysdeps/gnu/errlist.c:1228
msgid "Invalid request code"
msgstr "Mã yêu cầu không hợp lệ"
-#: sysdeps/gnu/errlist.c:1223
+#: sysdeps/gnu/errlist.c:1236
msgid "Invalid slot"
msgstr "Khoảng không hợp lệ"
-#: sysdeps/gnu/errlist.c:1231
+#: sysdeps/gnu/errlist.c:1244
msgid "File locking deadlock error"
msgstr "Lỗi khóa tập tin bế tắc"
-#: sysdeps/gnu/errlist.c:1239
+#: sysdeps/gnu/errlist.c:1252
msgid "Bad font file format"
msgstr "Äịnh dạng tập tin phông sai"
-#: sysdeps/gnu/errlist.c:1247
+#: sysdeps/gnu/errlist.c:1260
msgid "Machine is not on the network"
msgstr "Máy không nằm trên mạng"
-#: sysdeps/gnu/errlist.c:1255
+#: sysdeps/gnu/errlist.c:1268
msgid "Package not installed"
msgstr "Gói chưa được cài đặt"
-#: sysdeps/gnu/errlist.c:1263
+#: sysdeps/gnu/errlist.c:1276
msgid "Advertise error"
msgstr "Lỗi quảng cáo"
-#: sysdeps/gnu/errlist.c:1271
+#: sysdeps/gnu/errlist.c:1284
msgid "Srmount error"
msgstr "Lỗi gắn kết Srmount"
-#: sysdeps/gnu/errlist.c:1279
+#: sysdeps/gnu/errlist.c:1292
msgid "Communication error on send"
msgstr "Lỗi liên lạc khi gửi"
-#: sysdeps/gnu/errlist.c:1287
+#: sysdeps/gnu/errlist.c:1300
msgid "RFS specific error"
msgstr "Lỗi đặc trưng cho RFS"
-#: sysdeps/gnu/errlist.c:1295
+#: sysdeps/gnu/errlist.c:1308
msgid "Name not unique on network"
msgstr "Tên không duy nhất trên mạng"
-#: sysdeps/gnu/errlist.c:1303
+#: sysdeps/gnu/errlist.c:1316
msgid "File descriptor in bad state"
msgstr "Bộ mô tả tập tin ở tình trạng sai"
-#: sysdeps/gnu/errlist.c:1311
+#: sysdeps/gnu/errlist.c:1324
msgid "Remote address changed"
msgstr "Äịa chỉ ở xa đã thay đổi"
-#: sysdeps/gnu/errlist.c:1319
+#: sysdeps/gnu/errlist.c:1332
msgid "Can not access a needed shared library"
msgstr "Không thể truy cập vào một thư viện dùng chung cần thiết"
-#: sysdeps/gnu/errlist.c:1327
+#: sysdeps/gnu/errlist.c:1340
msgid "Accessing a corrupted shared library"
msgstr "Äang truy cập vào má»™t thÆ° viện dùng chung bị há»ng"
-#: sysdeps/gnu/errlist.c:1335
+#: sysdeps/gnu/errlist.c:1348
msgid ".lib section in a.out corrupted"
msgstr "Phần .lib trong a.out bị há»ng"
-#: sysdeps/gnu/errlist.c:1343
+#: sysdeps/gnu/errlist.c:1356
msgid "Attempting to link in too many shared libraries"
msgstr "Äang thá»­ liên kết trong quá nhiá»u thÆ° viện dùng chung"
-#: sysdeps/gnu/errlist.c:1351
+#: sysdeps/gnu/errlist.c:1364
msgid "Cannot exec a shared library directly"
msgstr "Không thể thực hiện trực tiếp một thư viện dùng chung"
-#: sysdeps/gnu/errlist.c:1359
+#: sysdeps/gnu/errlist.c:1372
msgid "Streams pipe error"
msgstr "Lỗi ống dẫn luồng"
-#: sysdeps/gnu/errlist.c:1367
+#: sysdeps/gnu/errlist.c:1380
msgid "Structure needs cleaning"
msgstr "Cấu trúc cần làm sạch"
-#: sysdeps/gnu/errlist.c:1375
+#: sysdeps/gnu/errlist.c:1388
msgid "Not a XENIX named type file"
msgstr "Không phải một tập tin kiểu đặt tên XENIX"
-#: sysdeps/gnu/errlist.c:1383
+#: sysdeps/gnu/errlist.c:1396
msgid "No XENIX semaphores available"
msgstr "Không có cỠhiệu XENIX sẵn sàng"
-#: sysdeps/gnu/errlist.c:1391
+#: sysdeps/gnu/errlist.c:1404
msgid "Is a named type file"
msgstr "Là một tập tin kiểu đặt tên"
-#: sysdeps/gnu/errlist.c:1399
+#: sysdeps/gnu/errlist.c:1412
msgid "Remote I/O error"
msgstr "Lỗi V/R ở xa"
-#: sysdeps/gnu/errlist.c:1407
+#: sysdeps/gnu/errlist.c:1420
msgid "No medium found"
msgstr "Không tìm đĩa đa phương tiện"
-#: sysdeps/gnu/errlist.c:1415
+#: sysdeps/gnu/errlist.c:1428
msgid "Wrong medium type"
msgstr "Kiểu đĩa đa phương tiện không đúng"
-#: sysdeps/gnu/errlist.c:1423
+#: sysdeps/gnu/errlist.c:1436
msgid "Required key not available"
msgstr "Khóa cần thiết không sẵn sàng"
-#: sysdeps/gnu/errlist.c:1431
+#: sysdeps/gnu/errlist.c:1444
msgid "Key has expired"
msgstr "Khóa đã quá hạn"
-#: sysdeps/gnu/errlist.c:1439
+#: sysdeps/gnu/errlist.c:1452
msgid "Key has been revoked"
msgstr "Khóa đã bị hủy bá»"
-#: sysdeps/gnu/errlist.c:1447
+#: sysdeps/gnu/errlist.c:1460
msgid "Key was rejected by service"
msgstr "Khóa bị dịch vụ từ chối"
-#: sysdeps/gnu/errlist.c:1455
+#: sysdeps/gnu/errlist.c:1468
msgid "Operation not possible due to RF-kill"
msgstr "Thao tác không được bởi vì RF-kill"
-#: sysdeps/gnu/errlist.c:1463
+#: sysdeps/gnu/errlist.c:1476
msgid "Memory page has hardware error"
msgstr "Trang nhớ có lỗi phần cứng"
@@ -6752,27 +6764,39 @@ msgstr "ngăn xếp bóng không được bật"
msgid "can't disable CET"
msgstr "không thể tắt CET"
-#: timezone/zdump.c:338
+#: timezone/zdump.c:332
msgid "has fewer than 3 characters"
msgstr "có ít hơn 3 ký tự"
-#: timezone/zdump.c:340
+#: timezone/zdump.c:334
msgid "has more than 6 characters"
msgstr "có nhiá»u hÆ¡n 6 ký tá»±"
-#: timezone/zdump.c:342
+#: timezone/zdump.c:336
msgid "has characters other than ASCII alphanumerics, '-' or '+'"
msgstr "có các ký tá»± không phải là chữ cái ASCII, “-†hay “+â€"
-#: timezone/zdump.c:347
+#: timezone/zdump.c:341
#, c-format
msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n"
msgstr "%s: cảnh báo: múi giỠ“%s†viết tắt “%s†%s\n"
-#: timezone/zdump.c:393
-#, c-format
+#: timezone/zdump.c:387
+#, fuzzy, c-format
+#| msgid ""
+#| "%s: usage: %s OPTIONS ZONENAME ...\n"
+#| "Options include:\n"
+#| " -c [L,]U Start at year L (default -500), end before year U (default 2500)\n"
+#| " -t [L,]U Start at time L, end before time U (in seconds since 1970)\n"
+#| " -i List transitions briefly (format is experimental)\n"
+#| " -v List transitions verbosely\n"
+#| " -V List transitions a bit less verbosely\n"
+#| " --help Output this help\n"
+#| " --version Output version info\n"
+#| "\n"
+#| "Report bugs to %s.\n"
msgid ""
-"%s: usage: %s OPTIONS ZONENAME ...\n"
+"%s: usage: %s OPTIONS TIMEZONE ...\n"
"Options include:\n"
" -c [L,]U Start at year L (default -500), end before year U (default 2500)\n"
" -t [L,]U Start at time L, end before time U (in seconds since 1970)\n"
@@ -6796,50 +6820,62 @@ msgstr ""
"\n"
"Báo cáo lỗi cho %s.\n"
-#: timezone/zdump.c:479
+#: timezone/zdump.c:473
#, c-format
msgid "%s: wild -c argument %s\n"
msgstr "%s: đối số “-c†đại diện %s\n"
-#: timezone/zdump.c:512
+#: timezone/zdump.c:506
#, c-format
msgid "%s: wild -t argument %s\n"
msgstr "%s: đối số “-t†đại diện %s\n"
-#: timezone/zic.c:398
+#: timezone/zic.c:429
#, c-format
msgid "%s: Memory exhausted: %s\n"
msgstr "%s: Hết bộ nhớ: %s\n"
-#: timezone/zic.c:406
+#: timezone/zic.c:437
msgid "size overflow"
msgstr "tràn cỡ"
-#: timezone/zic.c:454
+#: timezone/zic.c:447
+#, fuzzy
+#| msgid "int overflow"
+msgid "alignment overflow"
+msgstr "tràn số nguyên"
+
+#: timezone/zic.c:495
msgid "integer overflow"
msgstr "tràn số nguyên"
-#: timezone/zic.c:488
+#: timezone/zic.c:529
#, c-format
msgid "\"%s\", line %<PRIdMAX>: "
msgstr "“%sâ€, dòng %<PRIdMAX>: "
-#: timezone/zic.c:491
+#: timezone/zic.c:532
#, c-format
msgid " (rule from \"%s\", line %<PRIdMAX>)"
msgstr " (quy tắc từ “%sâ€, dòng %<PRIdMAX>)"
-#: timezone/zic.c:510
+#: timezone/zic.c:551
#, c-format
msgid "warning: "
msgstr "cảnh báo: "
-#: timezone/zic.c:535
-#, c-format
+#: timezone/zic.c:576
+#, fuzzy, c-format
+#| msgid ""
+#| "%s: usage is %s [ --version ] [ --help ] [ -v ] \\\n"
+#| "\t[ -l localtime ] [ -p posixrules ] [ -d directory ] \\\n"
+#| "\t[ -L leapseconds ] [ filename ... ]\n"
+#| "\n"
+#| "Report bugs to %s.\n"
msgid ""
"%s: usage is %s [ --version ] [ --help ] [ -v ] \\\n"
"\t[ -l localtime ] [ -p posixrules ] [ -d directory ] \\\n"
-"\t[ -L leapseconds ] [ filename ... ]\n"
+"\t[ -t localtime-link ] [ -L leapseconds ] [ filename ... ]\n"
"\n"
"Report bugs to %s.\n"
msgstr ""
@@ -6850,386 +6886,440 @@ msgstr ""
"Báo lỗi cho %s.\n"
"Thông báo lỗi dịch cho: <http://translationproject.org/team/vi.html>.\n"
-#: timezone/zic.c:558
+#: timezone/zic.c:599
#, c-format
msgid "%s: Can't chdir to %s: %s\n"
msgstr "%s: Không thể chuyển thư mục sang %s: %s\n"
-#: timezone/zic.c:590
+#: timezone/zic.c:632
msgid "wild compilation-time specification of zic_t"
msgstr "đặc tả thá»i gian biên dịch đại diện của zic_t"
-#: timezone/zic.c:610
+#: timezone/zic.c:652
#, c-format
msgid "%s: More than one -d option specified\n"
msgstr "%s: Äã chỉ ra nhiá»u hÆ¡n má»™t tùy chá»n “-dâ€\n"
-#: timezone/zic.c:620
+#: timezone/zic.c:662
#, c-format
msgid "%s: More than one -l option specified\n"
msgstr "%s: Äã chỉ ra nhiá»u hÆ¡n má»™t tùy chá»n “-lâ€\n"
-#: timezone/zic.c:630
+#: timezone/zic.c:672
#, c-format
msgid "%s: More than one -p option specified\n"
msgstr "%s: Äã chỉ ra nhiá»u hÆ¡n má»™t tùy chá»n “-pâ€\n"
-#: timezone/zic.c:640
+#: timezone/zic.c:680
+#, fuzzy, c-format
+#| msgid "%s: More than one -d option specified\n"
+msgid "%s: More than one -t option specified\n"
+msgstr "%s: Äã chỉ ra nhiá»u hÆ¡n má»™t tùy chá»n “-dâ€\n"
+
+#: timezone/zic.c:689
+msgid "-y is obsolescent"
+msgstr ""
+
+#: timezone/zic.c:693
#, c-format
msgid "%s: More than one -y option specified\n"
msgstr "%s: Äã chỉ ra nhiá»u hÆ¡n má»™t tùy chá»n “-yâ€\n"
-#: timezone/zic.c:650
+#: timezone/zic.c:703
#, c-format
msgid "%s: More than one -L option specified\n"
msgstr "%s: Äã chỉ ra nhiá»u hÆ¡n má»™t tùy chá»n “-Lâ€\n"
-#: timezone/zic.c:659
+#: timezone/zic.c:712
msgid "-s ignored"
msgstr "-s bị bỠqua"
-#: timezone/zic.c:698
+#: timezone/zic.c:753
msgid "link to link"
msgstr "liên kết đến liên kết"
-#: timezone/zic.c:701 timezone/zic.c:705
+#: timezone/zic.c:756 timezone/zic.c:760
msgid "command line"
msgstr "dòng lệnh"
-#: timezone/zic.c:721
+#: timezone/zic.c:776
msgid "empty file name"
msgstr "tên tập tin rỗng"
-#: timezone/zic.c:724
+#: timezone/zic.c:779
#, c-format
msgid "file name '%s' begins with '/'"
msgstr "tên tập tin “%s†bắt đầu bằng “/â€"
-#: timezone/zic.c:734
+#: timezone/zic.c:789
#, c-format
msgid "file name '%s' contains '%.*s' component"
msgstr "tên tập tin “%s†có chứa thành phần “%.*sâ€"
-#: timezone/zic.c:740
+#: timezone/zic.c:795
#, c-format
msgid "file name '%s' component contains leading '-'"
msgstr "thành phần tên tập tin “%s†có chứa “-†ở đầu"
-#: timezone/zic.c:743
+#: timezone/zic.c:798
#, c-format
msgid "file name '%s' contains overlength component '%.*s...'"
msgstr "tên tập tin “%s†có chứa thành phần quá dài “%.*s…â€"
-#: timezone/zic.c:771
+#: timezone/zic.c:826
#, c-format
msgid "file name '%s' contains byte '%c'"
msgstr "tên tập tin “%s†có chứa byte “%câ€"
-#: timezone/zic.c:772
+#: timezone/zic.c:827
#, c-format
msgid "file name '%s' contains byte '\\%o'"
msgstr "tên tập tin “%s†có chứa byte “\\%oâ€"
-#: timezone/zic.c:842
+#: timezone/zic.c:897
#, c-format
msgid "%s: link from %s/%s failed: %s\n"
msgstr "%s: liên kết từ %s/%s gặp lỗi: %s\n"
-#: timezone/zic.c:852 timezone/zic.c:1815
+#: timezone/zic.c:907 timezone/zic.c:1876
#, c-format
msgid "%s: Can't remove %s/%s: %s\n"
msgstr "%s: Không thể gỡ bỠ%s/%s: %s\n"
-#: timezone/zic.c:874
+#: timezone/zic.c:931
#, c-format
msgid "symbolic link used because hard link failed: %s"
msgstr "liên kết má»m được sá»­ dụng bởi vì liên kết cứng gặp lá»—i: %s"
-#: timezone/zic.c:882
+#: timezone/zic.c:939
#, c-format
msgid "%s: Can't read %s/%s: %s\n"
msgstr "%s: Không thể Ä‘á»c %s/%s: %s\n"
-#: timezone/zic.c:889 timezone/zic.c:1828
+#: timezone/zic.c:946 timezone/zic.c:1889
#, c-format
msgid "%s: Can't create %s/%s: %s\n"
msgstr "%s: Không thể tạo %s/%s: %s\n"
-#: timezone/zic.c:898
+#: timezone/zic.c:955
#, c-format
msgid "copy used because hard link failed: %s"
msgstr "sử dụng cách sao chép bởi vì liên kết cứng gặp lỗi: %s"
-#: timezone/zic.c:901
+#: timezone/zic.c:958
#, c-format
msgid "copy used because symbolic link failed: %s"
msgstr "sá»­ dụng cách sao chép bởi vì liên kết má»m gặp lá»—i: %s"
-#: timezone/zic.c:1013 timezone/zic.c:1015
+#: timezone/zic.c:1032 timezone/zic.c:1034
msgid "same rule name in multiple files"
msgstr "nhiá»u tập tin chứa cùng má»™t tên quy tắc"
-#: timezone/zic.c:1056
-msgid "unruly zone"
-msgstr "múi giỠphóng túng"
-
-#: timezone/zic.c:1063
+#: timezone/zic.c:1081
#, c-format
msgid "%s in ruleless zone"
msgstr "%s trong múi giỠkhông có quy tắc"
-#: timezone/zic.c:1083
+#: timezone/zic.c:1101
msgid "standard input"
msgstr "đầu vào tiêu chuẩn"
-#: timezone/zic.c:1088
+#: timezone/zic.c:1106
#, c-format
msgid "%s: Can't open %s: %s\n"
msgstr "%s: Không thể mở %s: %s\n"
-#: timezone/zic.c:1099
+#: timezone/zic.c:1117
msgid "line too long"
msgstr "dòng quá dài"
-#: timezone/zic.c:1119
+#: timezone/zic.c:1139
msgid "input line of unknown type"
msgstr "dòng đầu vào có kiểu không rõ"
-#: timezone/zic.c:1134
-#, c-format
-msgid "%s: Leap line in non leap seconds file %s"
-msgstr "%s: Dòng nhuận nằm trong tập tin giây không phải nhuận %s"
-
-#: timezone/zic.c:1142 timezone/zic.c:1547 timezone/zic.c:1569
+#: timezone/zic.c:1158 timezone/zic.c:1593 timezone/zic.c:1615
#, c-format
msgid "%s: panic: Invalid l_value %d\n"
msgstr "%s: không thể phục hồi: giá trị l_value không hợp lệ %d\n"
-#: timezone/zic.c:1151
+#: timezone/zic.c:1167
msgid "expected continuation line not found"
msgstr "không tìm thấy Ä‘Æ°á»ng tiếp tục cần"
-#: timezone/zic.c:1193 timezone/zic.c:2976
+#: timezone/zic.c:1203
+#, fuzzy
+#| msgid "format '%s' not handled by pre-2015 versions of zic"
+msgid "fractional seconds rejected by pre-2018 versions of zic"
+msgstr "định dạng “%s†không được xử lý bởi phiên bản zic trước năm 1998"
+
+#: timezone/zic.c:1221 timezone/zic.c:3078
msgid "time overflow"
msgstr "tràn thá»i gian"
-#: timezone/zic.c:1198
+#: timezone/zic.c:1227
msgid "values over 24 hours not handled by pre-2007 versions of zic"
msgstr "giá trị nhiá»u hÆ¡n 24 giá» không được xá»­ lý bởi phiên bản zic trÆ°á»›c năm 2007"
-#: timezone/zic.c:1209
+#: timezone/zic.c:1245
+msgid "invalid saved time"
+msgstr "thá»i gian đã lÆ°u không hợp lệ"
+
+#: timezone/zic.c:1256
msgid "wrong number of fields on Rule line"
msgstr "số trÆ°á»ng không đúng trên dòng Quy tắc (Rule)"
-#: timezone/zic.c:1213
-msgid "nameless rule"
-msgstr "quy tắc không tên"
-
-#: timezone/zic.c:1218
-msgid "invalid saved time"
-msgstr "thá»i gian đã lÆ°u không hợp lệ"
+#: timezone/zic.c:1265
+#, fuzzy, c-format
+#| msgid "Invalid numeric gid \"%s\"!"
+msgid "Invalid rule name \"%s\""
+msgstr "GID thuá»™c số không hợp lệ “%sâ€!"
-#: timezone/zic.c:1235
+#: timezone/zic.c:1287
msgid "wrong number of fields on Zone line"
msgstr "số trÆ°á»ng không đúng trên dòng Múi Giá» (Zone)"
-#: timezone/zic.c:1240
+#: timezone/zic.c:1292
#, c-format
msgid "\"Zone %s\" line and -l option are mutually exclusive"
msgstr "Dòng “Zone %s†và tùy chá»n “-l†loại từ lẫn nhau"
-#: timezone/zic.c:1246
+#: timezone/zic.c:1298
#, c-format
msgid "\"Zone %s\" line and -p option are mutually exclusive"
msgstr "Dòng “Zone %s†và tùy chá»n “-p†loại từ lẫn nhau"
-#: timezone/zic.c:1253
+#: timezone/zic.c:1305
#, c-format
msgid "duplicate zone name %s (file \"%s\", line %<PRIdMAX>)"
msgstr "tên múi giá» trùng %s (tập tin “%sâ€, dòng %<PRIdMAX>)"
-#: timezone/zic.c:1267
+#: timezone/zic.c:1319
msgid "wrong number of fields on Zone continuation line"
msgstr "số trÆ°á»ng không đúng trên dòng tiếp tục Múi Giá» (Zone)"
-#: timezone/zic.c:1307
+#: timezone/zic.c:1359
msgid "invalid UT offset"
msgstr "khoảng bù UT không hợp lệ"
-#: timezone/zic.c:1311
+#: timezone/zic.c:1363
msgid "invalid abbreviation format"
msgstr "định dạng viết tắt không hợp lệ"
-#: timezone/zic.c:1320
+#: timezone/zic.c:1372
#, c-format
msgid "format '%s' not handled by pre-2015 versions of zic"
msgstr "định dạng “%s†không được xử lý bởi phiên bản zic trước năm 1998"
-#: timezone/zic.c:1347
+#: timezone/zic.c:1399
msgid "Zone continuation line end time is not after end time of previous line"
msgstr "GiỠkết thúc dòng tiếp tục Múi GiỠkhông nằm sau giỠkết thúc của dòng trước"
-#: timezone/zic.c:1374
+#: timezone/zic.c:1426
msgid "wrong number of fields on Leap line"
msgstr "sai số của trÆ°á»ng trên dòng Leap (năm nhuận)"
-#: timezone/zic.c:1383
+#: timezone/zic.c:1435
msgid "invalid leaping year"
msgstr "năm nhuận không hợp lệ"
-#: timezone/zic.c:1403 timezone/zic.c:1501
+#: timezone/zic.c:1455 timezone/zic.c:1547
msgid "invalid month name"
msgstr "tên tháng không hợp lệ"
-#: timezone/zic.c:1416 timezone/zic.c:1614 timezone/zic.c:1628
+#: timezone/zic.c:1468 timezone/zic.c:1663 timezone/zic.c:1677
msgid "invalid day of month"
msgstr "ngày tháng không hợp lệ"
-#: timezone/zic.c:1421
+#: timezone/zic.c:1473
msgid "time too small"
msgstr "thá»i gian quá nhá»"
-#: timezone/zic.c:1425
+#: timezone/zic.c:1477
msgid "time too large"
msgstr "thá»i gian quá lá»›n"
-#: timezone/zic.c:1429 timezone/zic.c:1530
+#: timezone/zic.c:1481 timezone/zic.c:1576
msgid "invalid time of day"
msgstr "giỠngày không hợp lệ"
-#: timezone/zic.c:1448
+#: timezone/zic.c:1494
msgid "illegal CORRECTION field on Leap line"
msgstr "trÆ°á»ng CORRECTION (sá»­a lá»—i) không hợp lệ trên dòng Leap (năm nhuận)"
-#: timezone/zic.c:1453
+#: timezone/zic.c:1499
msgid "illegal Rolling/Stationary field on Leap line"
msgstr "trÆ°á»ng Rolling/Stationary (Ä‘ang lăn/không di chuyển) không hợp lệ trên dòng Leap (năm nhuận)"
-#: timezone/zic.c:1459
-msgid "leap second precedes Big Bang"
+#: timezone/zic.c:1505
+#, fuzzy
+#| msgid "leap second precedes Big Bang"
+msgid "leap second precedes Epoch"
msgstr "giây nhảy cách đứng trÆ°á»›c “Big Bangâ€"
-#: timezone/zic.c:1472
+#: timezone/zic.c:1518
msgid "wrong number of fields on Link line"
msgstr "số trÆ°á»ng không đúng trên dòng Link (liên kết)"
-#: timezone/zic.c:1476
+#: timezone/zic.c:1522
msgid "blank FROM field on Link line"
msgstr "trÆ°á»ng FROM (từ) rá»—ng trên dòng Link (liên kết)"
-#: timezone/zic.c:1551
+#: timezone/zic.c:1597
msgid "invalid starting year"
msgstr "năm bắt đầu không hợp lệ"
-#: timezone/zic.c:1573
+#: timezone/zic.c:1619
msgid "invalid ending year"
msgstr "năm kết thúc không hợp lệ"
-#: timezone/zic.c:1577
+#: timezone/zic.c:1623
msgid "starting year greater than ending year"
msgstr "năm bắt đầu nằm sau nằm kết thúc"
-#: timezone/zic.c:1584
+#: timezone/zic.c:1630
msgid "typed single year"
msgstr "đã gõ năm riêng lẻ"
-#: timezone/zic.c:1619
+#: timezone/zic.c:1633
+#, c-format
+msgid "year type \"%s\" is obsolete; use \"-\" instead"
+msgstr ""
+
+#: timezone/zic.c:1668
msgid "invalid weekday name"
msgstr "tên ngày tuần không hợp lệ"
-#: timezone/zic.c:1743
+#: timezone/zic.c:1800
#, c-format
msgid "reference clients mishandle more than %d transition times"
msgstr "các máy khách tham chiếu đã quên không xá»­ lý nhiá»u hÆ¡n %d thá»i Ä‘iểm quá Ä‘á»™"
-#: timezone/zic.c:1747
+#: timezone/zic.c:1804
msgid "pre-2014 clients may mishandle more than 1200 transition times"
msgstr "các máy khách trÆ°á»›c-2014 có lẽ đã quên không xá»­ lý nhiá»u hÆ¡n 1200 thá»i Ä‘iểm quá Ä‘á»™"
-#: timezone/zic.c:1858
+#: timezone/zic.c:1920
msgid "too many transition times"
msgstr "quá nhiá»u thá»i Ä‘iểm chuyển tiếp"
-#: timezone/zic.c:2047
-#, c-format
-msgid "%%z UTC offset magnitude exceeds 99:59:59"
+#: timezone/zic.c:2107
+#, fuzzy, c-format
+#| msgid "%%z UTC offset magnitude exceeds 99:59:59"
+msgid "%%z UT offset magnitude exceeds 99:59:59"
msgstr "%%z UTC đại lượng bù vượt quá 99:59:59"
-#: timezone/zic.c:2424
+#: timezone/zic.c:2488
msgid "no POSIX environment variable for zone"
msgstr "chÆ°a đặt biến môi trÆ°á»ng POSIX cho múi giá»"
-#: timezone/zic.c:2430
+#: timezone/zic.c:2494
#, c-format
msgid "%s: pre-%d clients may mishandle distant timestamps"
msgstr "%s: các máy khách trÆ°á»›c-%d có lẽ đã giải quyết dấu vết thá»i gian xa không đúng"
-#: timezone/zic.c:2566
+#: timezone/zic.c:2631
msgid "two rules for same instant"
msgstr "hai quy tắc cho cùng má»™t thá»i khắc"
-#: timezone/zic.c:2627
+#: timezone/zic.c:2696
msgid "can't determine time zone abbreviation to use just after until time"
msgstr "không thể dò tìm từ viết tắt múi giá» cần dùng đúng sau thá»i gian đích đến"
-#: timezone/zic.c:2725
+#: timezone/zic.c:2785
msgid "too many local time types"
msgstr "quá nhiá»u kiểu thá»i gian địa phÆ°Æ¡ng"
-#: timezone/zic.c:2729
+#: timezone/zic.c:2789
msgid "UT offset out of range"
msgstr "khoảng bù UT ở ngoài phạm vi"
-#: timezone/zic.c:2753
+#: timezone/zic.c:2813
msgid "too many leap seconds"
msgstr "quá nhiá»u giây năm nhuận"
-#: timezone/zic.c:2759
-msgid "repeated leap second moment"
-msgstr "lúc giây năm nhuận đã lặp lại"
+#: timezone/zic.c:2844
+msgid "Leap seconds too close together"
+msgstr ""
-#: timezone/zic.c:2830
+#: timezone/zic.c:2891
msgid "Wild result from command execution"
msgstr "Kết quả rất lạ khi thực hiện câu lệnh"
-#: timezone/zic.c:2831
+#: timezone/zic.c:2892
#, c-format
msgid "%s: command was '%s', result was %d\n"
msgstr "%s: câu lệnh là “%sâ€, kết quả là %d\n"
-#: timezone/zic.c:2961
+#: timezone/zic.c:2998
+#, c-format
+msgid "\"%s\" is undocumented; use \"last%s\" instead"
+msgstr ""
+
+#: timezone/zic.c:3029
+#, c-format
+msgid "\"%s\" is ambiguous in pre-2017c zic"
+msgstr ""
+
+#: timezone/zic.c:3063
msgid "Odd number of quotation marks"
msgstr "Số lẻ các dấu trích dẫn"
-#: timezone/zic.c:3046
+#: timezone/zic.c:3157
msgid "use of 2/29 in non leap-year"
msgstr "dùng 2/29 trong năm không nhuận"
-#: timezone/zic.c:3081
+#: timezone/zic.c:3192
msgid "rule goes past start/end of month; will not work with pre-2004 versions of zic"
msgstr "quy tắc vượt quá kết thúc của tháng nên sẽ không hoạt động được với phiên bản zic được phát hành trước năm 2004"
-#: timezone/zic.c:3108
+#: timezone/zic.c:3219
msgid "time zone abbreviation has fewer than 3 characters"
msgstr "từ viết tắt múi giỠphải ít hơn 3 ký tự"
-#: timezone/zic.c:3110
+#: timezone/zic.c:3221
msgid "time zone abbreviation has too many characters"
msgstr "từ viết tắt múi giá» chứa quá nhiá»u ký tá»±"
-#: timezone/zic.c:3112
+#: timezone/zic.c:3223
msgid "time zone abbreviation differs from POSIX standard"
msgstr "từ viết tắt múi giỠkhông tùy theo tiêu chuẩn POSIX"
-#: timezone/zic.c:3118
+#: timezone/zic.c:3229
msgid "too many, or too long, time zone abbreviations"
msgstr "quá nhiá»u hoặc quá dài các từ viết tắt múi giá»"
-#: timezone/zic.c:3161
+#: timezone/zic.c:3275
#, c-format
msgid "%s: Can't create directory %s: %s"
msgstr "%s: Không thể tạo thư mục %s: %s"
+#~ msgid "cannot open zero fill device"
+#~ msgstr "không thể mở thiết bị Ä‘iá»n số không"
+
+#~ msgid "relocation error"
+#~ msgstr "lỗi tái định vị"
+
+#~ msgid "Cannot set LC_CTYPE to default locale"
+#~ msgstr "Không thể đặt LC_TYPE thành miá»n địa phÆ°Æ¡ng mặc định"
+
+#~ msgid "Cannot set LC_MESSAGES to default locale"
+#~ msgstr "Không thể đặt LC_MESSAGES thành miá»n địa phÆ°Æ¡ng mặc định"
+
+#~ msgid "Cannot set LC_COLLATE to default locale"
+#~ msgstr "Không thể đặt LC_COLLATE thành miá»n địa phÆ°Æ¡ng mặc định"
+
+#~ msgid "unruly zone"
+#~ msgstr "múi giỠphóng túng"
+
+#~ msgid "%s: Leap line in non leap seconds file %s"
+#~ msgstr "%s: Dòng nhuận nằm trong tập tin giây không phải nhuận %s"
+
+#~ msgid "nameless rule"
+#~ msgstr "quy tắc không tên"
+
+#~ msgid "repeated leap second moment"
+#~ msgstr "lúc giây năm nhuận đã lặp lại"
+
#~ msgid "invalid caller"
#~ msgstr "bá»™ gá»i không hợp lệ"
@@ -7279,9 +7369,6 @@ msgstr "%s: Không thể tạo thư mục %s: %s"
#~ "Báo lỗi tới %s.\n"
#~ "Thông báo lỗi dịch cho: <http://translationproject.org/team/vi.html>.\n"
-#~ msgid "int overflow"
-#~ msgstr "tràn số nguyên"
-
#~ msgid "hard link failed, symbolic link used"
#~ msgstr "liên kết cứng không thành công nên dùng liên kết má»m"
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 2d0cd74645..badaa165ae 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -12,7 +12,7 @@
msgid ""
msgstr ""
"Project-Id-Version: libc 2.25-pre1\n"
-"POT-Creation-Date: 2018-07-26 22:19-0400\n"
+"POT-Creation-Date: 2019-07-18 13:28-0400\n"
"PO-Revision-Date: 2017-01-11 14:20-0500\n"
"Last-Translator: Mingye Wang (Arthur2e5) <arthur200126@gmail.com>\n"
"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
@@ -154,10 +154,10 @@ msgstr ""
"[输出文件 [输入文件]...]"
#: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:308
-#: elf/pldd.c:252 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
-#: iconv/iconvconfig.c:379 locale/programs/locale.c:275
-#: locale/programs/localedef.c:427 login/programs/pt_chown.c:89
-#: malloc/memusagestat.c:563 nss/getent.c:933 nss/makedb.c:369
+#: elf/pldd.c:247 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
+#: iconv/iconvconfig.c:379 locale/programs/locale.c:276
+#: locale/programs/localedef.c:437 login/programs/pt_chown.c:89
+#: malloc/memusagestat.c:563 nss/getent.c:953 nss/makedb.c:369
#: posix/getconf.c:503 sysdeps/unix/sysv/linux/lddlibc4.c:61
#, c-format
msgid ""
@@ -168,11 +168,11 @@ msgstr ""
"%s。\n"
#: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64
-#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75
+#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:263 elf/sotruss.sh:75
#: elf/sprof.c:389 iconv/iconv_prog.c:422 iconv/iconvconfig.c:396
-#: locale/programs/locale.c:292 locale/programs/localedef.c:453
+#: locale/programs/locale.c:293 locale/programs/localedef.c:463
#: login/programs/pt_chown.c:63 malloc/memusage.sh:71
-#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:87 nss/makedb.c:385
+#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:88 nss/makedb.c:385
#: posix/getconf.c:485 sysdeps/unix/sysv/linux/lddlibc4.c:68
#, c-format
msgid ""
@@ -185,10 +185,10 @@ msgstr ""
"或者适åˆæŸäº›ç‰¹æ®Šç›®çš„。\n"
#: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68
-#: elf/ldconfig.c:329 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:427
-#: iconv/iconvconfig.c:401 locale/programs/locale.c:297
-#: locale/programs/localedef.c:458 malloc/memusage.sh:75
-#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:92 nss/makedb.c:390
+#: elf/ldconfig.c:329 elf/pldd.c:268 elf/sprof.c:395 iconv/iconv_prog.c:427
+#: iconv/iconvconfig.c:401 locale/programs/locale.c:298
+#: locale/programs/localedef.c:468 malloc/memusage.sh:75
+#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:93 nss/makedb.c:390
#: posix/getconf.c:490
#, c-format
msgid "Written by %s.\n"
@@ -259,21 +259,21 @@ msgstr "无法打开输出文件“%sâ€"
msgid "invalid escape sequence"
msgstr "无效的转义åºåˆ—"
-#: catgets/gencat.c:1209
+#: catgets/gencat.c:1211
msgid "unterminated message"
msgstr "未终止的消æ¯"
-#: catgets/gencat.c:1233
+#: catgets/gencat.c:1235
#, c-format
msgid "while opening old catalog file"
msgstr "在打开旧分类文件时"
-#: catgets/gencat.c:1324
+#: catgets/gencat.c:1326
#, c-format
msgid "conversion modules not available"
msgstr "转æ¢æ¨¡å—ä¸å¯ç”¨"
-#: catgets/gencat.c:1350
+#: catgets/gencat.c:1352
#, c-format
msgid "cannot determine escape character"
msgstr "无法确定转义字符"
@@ -400,7 +400,7 @@ msgstr "未知的æ“作系统"
msgid ", OS ABI: %s %d.%d.%d"
msgstr ", OS ABI: %s %d.%d.%d"
-#: elf/cache.c:163 elf/ldconfig.c:1332
+#: elf/cache.c:163 elf/ldconfig.c:1333
#, c-format
msgid "Can't open cache file %s\n"
msgstr "无法打开缓冲文件 %s\n"
@@ -410,38 +410,38 @@ msgstr "无法打开缓冲文件 %s\n"
msgid "mmap of cache file failed.\n"
msgstr "缓冲文件的 mmap 失败。\n"
-#: elf/cache.c:181 elf/cache.c:195
+#: elf/cache.c:181 elf/cache.c:195 elf/cache.c:205
#, c-format
msgid "File is not a cache file.\n"
msgstr "文件ä¸æ˜¯ç¼“冲区文件。\n"
-#: elf/cache.c:228 elf/cache.c:238
+#: elf/cache.c:233 elf/cache.c:243
#, c-format
msgid "%d libs found in cache `%s'\n"
msgstr "在缓冲区“%2$sâ€ä¸­æ‰¾åˆ° %1$d 个库\n"
-#: elf/cache.c:432
+#: elf/cache.c:437
#, c-format
msgid "Can't create temporary cache file %s"
msgstr "无法创建临时缓冲文件 %s"
-#: elf/cache.c:440 elf/cache.c:450 elf/cache.c:454 elf/cache.c:458
-#: elf/cache.c:468
+#: elf/cache.c:445 elf/cache.c:455 elf/cache.c:459 elf/cache.c:463
+#: elf/cache.c:473
#, c-format
msgid "Writing of cache data failed"
msgstr "写缓冲数æ®å¤±è´¥"
-#: elf/cache.c:463
+#: elf/cache.c:468
#, c-format
msgid "Changing access rights of %s to %#o failed"
msgstr "å°† %s 的访问æƒé™æ”¹å˜ä¸º %#o 失败"
-#: elf/cache.c:472
+#: elf/cache.c:477
#, c-format
msgid "Renaming of %s to %s failed"
msgstr "å°† %s 改å为 %s 失败"
-#: elf/dl-close.c:399 elf/dl-open.c:420
+#: elf/dl-close.c:399 elf/dl-open.c:424
msgid "cannot create scope list"
msgstr "无法创建范围列表"
@@ -524,122 +524,124 @@ msgstr "无法创建æœç´¢è·¯å¾„数组"
msgid "cannot stat shared object"
msgstr "无法对共享目标进行 stat æ“作"
-#: elf/dl-load.c:960
-msgid "cannot open zero fill device"
-msgstr "无法打开零填充设备"
-
-#: elf/dl-load.c:1007 elf/dl-load.c:2203
+#: elf/dl-load.c:992 elf/dl-load.c:2198
msgid "cannot create shared object descriptor"
msgstr "无法创建共享对象æ述符"
-#: elf/dl-load.c:1026 elf/dl-load.c:1560 elf/dl-load.c:1673
+#: elf/dl-load.c:1011 elf/dl-load.c:1555 elf/dl-load.c:1668
msgid "cannot read file data"
msgstr "无法读入文件数æ®"
-#: elf/dl-load.c:1072
+#: elf/dl-load.c:1057
msgid "ELF load command alignment not page-aligned"
msgstr "ELF 加载命令对é½ä¸æ˜¯æŒ‰é¡µå¯¹é½çš„"
-#: elf/dl-load.c:1079
+#: elf/dl-load.c:1064
msgid "ELF load command address/offset not properly aligned"
msgstr "ELF 装入命令的地å€/å移é‡æ²¡æœ‰æ­£ç¡®åœ°å¯¹é½"
-#: elf/dl-load.c:1161
+#: elf/dl-load.c:1146
#, fuzzy
#| msgid "cannot restore segment prot after reloc"
msgid "cannot process note segment"
msgstr "é‡å®šä½åŽæ— æ³•æ¢å¤æ®µ prot"
-#: elf/dl-load.c:1172
+#: elf/dl-load.c:1157
msgid "object file has no loadable segments"
msgstr "目标文件没有å¯åŠ è½½æ®µ"
-#: elf/dl-load.c:1181 elf/dl-load.c:1652
+#: elf/dl-load.c:1170 elf/dl-load.c:1647
msgid "cannot dynamically load executable"
msgstr "无法动æ€è£…å…¥å¯æ‰§è¡Œæ–‡ä»¶"
-#: elf/dl-load.c:1202
+#: elf/dl-load.c:1191
msgid "object file has no dynamic section"
msgstr "目标文件没有动æ€èŠ‚"
-#: elf/dl-load.c:1225
+#: elf/dl-load.c:1218
+#, fuzzy
+#| msgid "cannot dynamically load executable"
+msgid "cannot dynamically load position-independent executable"
+msgstr "无法动æ€è£…å…¥å¯æ‰§è¡Œæ–‡ä»¶"
+
+#: elf/dl-load.c:1220
msgid "shared object cannot be dlopen()ed"
msgstr "无法用 dlopen() 打开共享库"
-#: elf/dl-load.c:1238
+#: elf/dl-load.c:1233
msgid "cannot allocate memory for program header"
msgstr "无法为程åºå¤´åˆ†é…内存"
-#: elf/dl-load.c:1271 elf/dl-load.h:130
+#: elf/dl-load.c:1266 elf/dl-load.h:130
msgid "cannot change memory protections"
msgstr "无法改å˜å†…å­˜ä¿æŠ¤"
-#: elf/dl-load.c:1291
+#: elf/dl-load.c:1286
msgid "cannot enable executable stack as shared object requires"
msgstr "无法å¯ç”¨å…±äº«ç›®æ ‡éœ€è¦çš„执行栈"
-#: elf/dl-load.c:1304
+#: elf/dl-load.c:1299
msgid "cannot close file descriptor"
msgstr "无法关闭文件æ述符"
-#: elf/dl-load.c:1560
+#: elf/dl-load.c:1555
msgid "file too short"
msgstr "文件过短"
-#: elf/dl-load.c:1595
+#: elf/dl-load.c:1590
msgid "invalid ELF header"
msgstr "无效的 ELF 头"
-#: elf/dl-load.c:1607
+#: elf/dl-load.c:1602
msgid "ELF file data encoding not big-endian"
msgstr "ELF 文件数æ®ç¼–ç ä¸æ˜¯å¤§ç«¯åº"
-#: elf/dl-load.c:1609
+#: elf/dl-load.c:1604
msgid "ELF file data encoding not little-endian"
msgstr "ELF 文件数æ®ç¼–ç ä¸æ˜¯å°ç«¯åº"
# e_ident[]
-#: elf/dl-load.c:1613
+#: elf/dl-load.c:1608
msgid "ELF file version ident does not match current one"
msgstr "ELF 文件的版本信æ¯ä¸ç¬¦åˆç›®å‰æ‰€ä½¿ç”¨çš„"
-#: elf/dl-load.c:1617
+#: elf/dl-load.c:1612
msgid "ELF file OS ABI invalid"
msgstr "ELF 文件 OS ABI 无效"
-#: elf/dl-load.c:1620
+#: elf/dl-load.c:1615
msgid "ELF file ABI version invalid"
msgstr "ELF 文件 ABI 版本无效"
-#: elf/dl-load.c:1623
+#: elf/dl-load.c:1618
msgid "nonzero padding in e_ident"
msgstr "在 e_ident 中填补éžé›¶å€¼"
-#: elf/dl-load.c:1626
+#: elf/dl-load.c:1621
msgid "internal error"
msgstr "内部错误"
-#: elf/dl-load.c:1633
+#: elf/dl-load.c:1628
msgid "ELF file version does not match current one"
msgstr "ELF 文件版本与当å‰ç‰ˆæœ¬ä¸åŒ¹é…"
-#: elf/dl-load.c:1641
+#: elf/dl-load.c:1636
msgid "only ET_DYN and ET_EXEC can be loaded"
msgstr "åªæœ‰ ET_DYN ä»¥åŠ ET_EXEC å¯ä»¥åŠ è½½"
-#: elf/dl-load.c:1657
+#: elf/dl-load.c:1652
msgid "ELF file's phentsize not the expected size"
msgstr "ELF 文件的标头项目大å°ï¼ˆphentsize)出乎æ„æ–™"
-#: elf/dl-load.c:2222
+#: elf/dl-load.c:2217
msgid "wrong ELF class: ELFCLASS64"
msgstr "ELF ç±»ä¸å¯¹ï¼šELFCLASS64"
-#: elf/dl-load.c:2223
+#: elf/dl-load.c:2218
msgid "wrong ELF class: ELFCLASS32"
msgstr "ELF ç±»ä¸å¯¹ï¼šELFCLASS32"
-#: elf/dl-load.c:2226
+#: elf/dl-load.c:2221
msgid "cannot open shared object file"
msgstr "无法打开共享对象文件"
@@ -651,11 +653,7 @@ msgstr "无法从共享目标中映射段"
msgid "cannot map zero-fill pages"
msgstr "无法映射用零填充的页"
-#: elf/dl-lookup.c:835
-msgid "relocation error"
-msgstr "é‡å®šä½é”™è¯¯"
-
-#: elf/dl-lookup.c:858
+#: elf/dl-lookup.c:830
msgid "symbol lookup error"
msgstr "符å·æŸ¥è¯¢é”™è¯¯"
@@ -663,19 +661,19 @@ msgstr "符å·æŸ¥è¯¢é”™è¯¯"
msgid "cannot extend global scope"
msgstr "无法扩展全局范围"
-#: elf/dl-open.c:470
+#: elf/dl-open.c:474
msgid "TLS generation counter wrapped! Please report this."
msgstr "TLS 产生计数器被转æ¢è¿è¡Œï¼ 请报告这个情况。"
-#: elf/dl-open.c:534
+#: elf/dl-open.c:538
msgid "invalid mode for dlopen()"
msgstr "无效的 dlopen() 模å¼"
-#: elf/dl-open.c:551
+#: elf/dl-open.c:555
msgid "no more namespaces available for dlmopen()"
msgstr "无更多命å空间å¯è§äºŽ dlmopen ()"
-#: elf/dl-open.c:575
+#: elf/dl-open.c:579
msgid "invalid target namespace in dlmopen()"
msgstr "dlmopen() 中无效的目标å字空间"
@@ -683,20 +681,20 @@ msgstr "dlmopen() 中无效的目标å字空间"
msgid "cannot allocate memory in static TLS block"
msgstr "无法在é™æ€ TLS å—中分é…内存"
-#: elf/dl-reloc.c:205
+#: elf/dl-reloc.c:213
msgid "cannot make segment writable for relocation"
msgstr "在é‡æ–°å¯»å€ä»¥åŽæ— æ³•å°†èŠ‚设为å¯å†™å…¥çŠ¶æ€"
-#: elf/dl-reloc.c:276
+#: elf/dl-reloc.c:272
#, c-format
msgid "%s: out of memory to store relocation results for %s\n"
msgstr "%s: 内存ä¸è¶³ä»¥ä¿å­˜é‡å¯»å€ç»“果用于 %s\n"
-#: elf/dl-reloc.c:292
+#: elf/dl-reloc.c:288
msgid "cannot restore segment prot after reloc"
msgstr "é‡å®šä½åŽæ— æ³•æ¢å¤æ®µ prot"
-#: elf/dl-reloc.c:323
+#: elf/dl-reloc.c:319
msgid "cannot apply additional memory protection after relocation"
msgstr "无法在é‡å®šä½åŽåº”用é¢å¤–的内存ä¿æŠ¤"
@@ -914,22 +912,22 @@ msgstr "需è¦ç»å¯¹æ–‡ä»¶å称用于组æ€æ–‡ä»¶æ—¶æ­£åœ¨ä½¿ç”¨ -r"
msgid "memory exhausted"
msgstr "内存耗尽"
-#: elf/ldconfig.c:1233
+#: elf/ldconfig.c:1234
#, c-format
msgid "%s:%u: cannot read directory %s"
msgstr "%s:%u: 无法读å–目录 %s"
-#: elf/ldconfig.c:1281
+#: elf/ldconfig.c:1282
#, c-format
msgid "relative path `%s' used to build cache"
msgstr "用æ¥å»ºç½®ç¼“存的相对路径 `%s'"
-#: elf/ldconfig.c:1311
+#: elf/ldconfig.c:1312
#, c-format
msgid "Can't chdir to /"
msgstr "无法改å˜ç›®å½•åˆ° /"
-#: elf/ldconfig.c:1352
+#: elf/ldconfig.c:1353
#, c-format
msgid "Can't open cache file directory %s\n"
msgstr "无法打开缓冲文件目录 %s\n"
@@ -999,95 +997,101 @@ msgstr "以未知的退出ç é€€å‡º"
msgid "error: you do not have read permission for"
msgstr "错误: 你没有读æƒé™ "
-#: elf/pldd-xx.c:105
+#: elf/pldd-xx.c:102
#, c-format
msgid "cannot find program header of process"
msgstr "找ä¸åˆ°è¿›ç¨‹çš„程åºæ ‡å¤´"
-#: elf/pldd-xx.c:110
+#: elf/pldd-xx.c:106
#, c-format
msgid "cannot read program header"
msgstr "无法读å–程åºæ ‡å¤´"
-#: elf/pldd-xx.c:135
+#: elf/pldd-xx.c:128
#, c-format
msgid "cannot read dynamic section"
msgstr "无法读å–动æ€èŠ‚"
-#: elf/pldd-xx.c:147
+#: elf/pldd-xx.c:137
#, c-format
msgid "cannot read r_debug"
msgstr "æ— æ³•è¯»å– r_debug"
-#: elf/pldd-xx.c:167
+#: elf/pldd-xx.c:154
#, c-format
msgid "cannot read program interpreter"
msgstr "无法读å–程åºè§£è¯‘器"
-#: elf/pldd-xx.c:197
+#: elf/pldd-xx.c:183
#, c-format
msgid "cannot read link map"
msgstr "无法读å–链结映射"
-#: elf/pldd-xx.c:209
+#: elf/pldd-xx.c:190
#, c-format
msgid "cannot read object name"
msgstr "无法读å–对象å称"
-#: elf/pldd-xx.c:219
+#: elf/pldd-xx.c:197
#, c-format
msgid "cannot allocate buffer for object name"
msgstr "无法为对象å称分é…缓冲区"
-#: elf/pldd.c:64
+#: elf/pldd.c:58
msgid "List dynamic shared objects loaded into process."
msgstr "列出已加载进程中的动æ€å…±ç”¨å¯¹è±¡ã€‚"
-#: elf/pldd.c:68
+#: elf/pldd.c:62
msgid "PID"
msgstr "进程识别å·"
-#: elf/pldd.c:100
+#: elf/pldd.c:89
#, c-format
msgid "Exactly one parameter with process ID required.\n"
msgstr "需è¦åˆšå¥½ä¸€ä¸ªé™„有进程识别å·çš„å‚数。\n"
-#: elf/pldd.c:112
+#: elf/pldd.c:103
#, c-format
msgid "invalid process ID '%s'"
msgstr "æ— æ•ˆçš„è¿›ç¨‹è¯†åˆ«å· %s"
-#: elf/pldd.c:120
+#: elf/pldd.c:111
#, c-format
msgid "cannot open %s"
msgstr "无法打开 %s"
-#: elf/pldd.c:152
+#: elf/pldd.c:142
#, c-format
msgid "cannot open %s/task"
msgstr "无法打开 %s/任务"
-#: elf/pldd.c:155
+#: elf/pldd.c:145
#, c-format
msgid "cannot prepare reading %s/task"
msgstr "æ— æ³•å‡†å¤‡è¯»å– %s/任务"
-#: elf/pldd.c:168
+#: elf/pldd.c:158
#, c-format
msgid "invalid thread ID '%s'"
msgstr "æ— æ•ˆçš„çº¿ç¨‹è¯†åˆ«å· %s"
-#: elf/pldd.c:179
+#: elf/pldd.c:169
#, c-format
msgid "cannot attach to process %lu"
msgstr "无法附加到进程 %lu"
-#: elf/pldd.c:294
+# zic_t r_stdoff; /* offset from standard time */
+#: elf/pldd.c:184
+#, fuzzy, c-format
+msgid "no valid %s/task entries"
+msgstr "无效的ä¿å­˜æ—¶é—´"
+
+#: elf/pldd.c:290
#, c-format
msgid "cannot get information about process %lu"
msgstr "无法获得进程 %lu 的相关信æ¯"
-#: elf/pldd.c:307
+#: elf/pldd.c:303
#, c-format
msgid "process %lu is no ELF program"
msgstr "进程 %lu å¹¶éž ELF 程åº"
@@ -1407,7 +1411,7 @@ msgstr "ä¿¡æ¯ï¼š"
msgid "list all known coded character sets"
msgstr "列举所有已知的字符集"
-#: iconv/iconv_prog.c:64 locale/programs/localedef.c:120
+#: iconv/iconv_prog.c:64 locale/programs/localedef.c:124
msgid "Output control:"
msgstr "输出控制:"
@@ -1416,8 +1420,8 @@ msgid "omit invalid characters from output"
msgstr "从输出中忽略无效的字符"
#: iconv/iconv_prog.c:66 iconv/iconvconfig.c:128
-#: locale/programs/localedef.c:113 locale/programs/localedef.c:115
-#: locale/programs/localedef.c:117 locale/programs/localedef.c:144
+#: locale/programs/localedef.c:117 locale/programs/localedef.c:119
+#: locale/programs/localedef.c:121 locale/programs/localedef.c:150
#: malloc/memusagestat.c:56
msgid "FILE"
msgstr "文件"
@@ -1515,7 +1519,7 @@ msgstr "创建快速装入 iconv 模å—é…置文件。"
msgid "[DIR...]"
msgstr "[目录...]"
-#: iconv/iconvconfig.c:126 locale/programs/localedef.c:123
+#: iconv/iconvconfig.c:126 locale/programs/localedef.c:129
msgid "PATH"
msgstr "路径"
@@ -1702,14 +1706,14 @@ msgstr "ä¸æ”¯æŒå¸¦æœ‰é”定状æ€çš„字符集"
#: locale/programs/charmap.c:503 locale/programs/charmap.c:557
#: locale/programs/charmap.c:589 locale/programs/charmap.c:683
-#: locale/programs/charmap.c:738 locale/programs/charmap.c:779
-#: locale/programs/charmap.c:820
+#: locale/programs/charmap.c:739 locale/programs/charmap.c:780
+#: locale/programs/charmap.c:821
#, c-format
msgid "syntax error in %s definition: %s"
msgstr "%s 的定义中的语法错误:%s"
#: locale/programs/charmap.c:504 locale/programs/charmap.c:684
-#: locale/programs/charmap.c:780 locale/programs/repertoire.c:229
+#: locale/programs/charmap.c:781 locale/programs/repertoire.c:229
msgid "no symbolic name given"
msgstr "没有给出符å·å"
@@ -1725,14 +1729,14 @@ msgstr "字符编ç ä¸­å­—节数过少"
msgid "too many bytes in character encoding"
msgstr "字符编ç ä¸­å­—节数过多"
-#: locale/programs/charmap.c:591 locale/programs/charmap.c:739
-#: locale/programs/charmap.c:822 locale/programs/repertoire.c:295
+#: locale/programs/charmap.c:591 locale/programs/charmap.c:740
+#: locale/programs/charmap.c:823 locale/programs/repertoire.c:295
msgid "no symbolic name given for end of range"
msgstr "没有为范围的结æŸç»™å‡ºç¬¦å·åŒ–çš„å称"
#: locale/programs/charmap.c:615 locale/programs/ld-address.c:524
#: locale/programs/ld-collate.c:2616 locale/programs/ld-collate.c:3774
-#: locale/programs/ld-ctype.c:2117 locale/programs/ld-ctype.c:2829
+#: locale/programs/ld-ctype.c:2118 locale/programs/ld-ctype.c:2830
#: locale/programs/ld-identification.c:397
#: locale/programs/ld-measurement.c:213 locale/programs/ld-messages.c:295
#: locale/programs/ld-monetary.c:748 locale/programs/ld-name.c:262
@@ -1747,58 +1751,58 @@ msgstr "%1$s:定义ä¸ä»¥â€œEND %1$sâ€ç»“å°¾"
msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
msgstr "åªæœ‰ WIDTH 定义æ‰èƒ½ç›´æŽ¥å†™åœ¨ CHARMAP 定义之åŽ"
-#: locale/programs/charmap.c:656 locale/programs/charmap.c:719
+#: locale/programs/charmap.c:656 locale/programs/charmap.c:720
#, c-format
msgid "value for %s must be an integer"
msgstr "%s 的值必须为整数"
-#: locale/programs/charmap.c:847
+#: locale/programs/charmap.c:848
#, c-format
msgid "%s: error in state machine"
msgstr "%s:状æ€æœºå‡ºé”™"
-#: locale/programs/charmap.c:855 locale/programs/ld-address.c:540
+#: locale/programs/charmap.c:856 locale/programs/ld-address.c:540
#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967
-#: locale/programs/ld-ctype.c:2114 locale/programs/ld-ctype.c:2846
+#: locale/programs/ld-ctype.c:2115 locale/programs/ld-ctype.c:2847
#: locale/programs/ld-identification.c:413
#: locale/programs/ld-measurement.c:229 locale/programs/ld-messages.c:311
#: locale/programs/ld-monetary.c:764 locale/programs/ld-name.c:278
#: locale/programs/ld-numeric.c:341 locale/programs/ld-paper.c:228
#: locale/programs/ld-telephone.c:292 locale/programs/ld-time.c:990
-#: locale/programs/locfile.c:997 locale/programs/repertoire.c:323
+#: locale/programs/locfile.c:1010 locale/programs/repertoire.c:323
#, c-format
msgid "%s: premature end of file"
msgstr "%s:文件ä¸å®Œæ•´"
-#: locale/programs/charmap.c:874 locale/programs/charmap.c:885
+#: locale/programs/charmap.c:875 locale/programs/charmap.c:886
#, c-format
msgid "unknown character `%s'"
msgstr "未知的字符“%sâ€"
-#: locale/programs/charmap.c:893
+#: locale/programs/charmap.c:894
#, c-format
msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d"
msgstr "在范围起始与结æŸçš„字节åºåˆ—中,字节的数目并ä¸ä¸€è‡´: %d vs %d"
-#: locale/programs/charmap.c:998 locale/programs/ld-collate.c:2893
+#: locale/programs/charmap.c:999 locale/programs/ld-collate.c:2893
#: locale/programs/repertoire.c:418
msgid "invalid names for character range"
msgstr "无效的字符范围å称"
-#: locale/programs/charmap.c:1010 locale/programs/repertoire.c:430
+#: locale/programs/charmap.c:1011 locale/programs/repertoire.c:430
msgid "hexadecimal range format should use only capital characters"
msgstr "在表示å六进制的范围时åªèƒ½ç”¨å¤§å†™çš„英文本æ¯è¡¨ç¤º"
-#: locale/programs/charmap.c:1028 locale/programs/repertoire.c:448
+#: locale/programs/charmap.c:1029 locale/programs/repertoire.c:448
#, c-format
msgid "<%s> and <%s> are invalid names for range"
msgstr "<%s> å’Œ <%s> 是无效的范围å"
-#: locale/programs/charmap.c:1034 locale/programs/repertoire.c:455
+#: locale/programs/charmap.c:1035 locale/programs/repertoire.c:455
msgid "upper limit in range is smaller than lower limit"
msgstr "范围的上é™å°äºŽä¸‹é™"
-#: locale/programs/charmap.c:1092
+#: locale/programs/charmap.c:1093
msgid "resulting bytes for range not representable."
msgstr "用æ¥å®šä¹‰èŒƒå›´çš„字节无法被表述出æ¥"
@@ -1867,7 +1871,7 @@ msgid "%s: numeric country code `%d' not valid"
msgstr "%s:数值国家编ç â€œ%dâ€æ— æ•ˆ"
#: locale/programs/ld-address.c:432 locale/programs/ld-address.c:469
-#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2478
+#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2479
#: locale/programs/ld-identification.c:309
#: locale/programs/ld-measurement.c:196 locale/programs/ld-messages.c:264
#: locale/programs/ld-monetary.c:503 locale/programs/ld-monetary.c:538
@@ -1890,7 +1894,7 @@ msgid "%s: unknown character in field `%s'"
msgstr "%s:域“%sâ€ä¸­å«æœ‰æœªçŸ¥å­—符"
#: locale/programs/ld-address.c:521 locale/programs/ld-collate.c:3772
-#: locale/programs/ld-ctype.c:2826 locale/programs/ld-identification.c:394
+#: locale/programs/ld-ctype.c:2827 locale/programs/ld-identification.c:394
#: locale/programs/ld-measurement.c:210 locale/programs/ld-messages.c:293
#: locale/programs/ld-monetary.c:746 locale/programs/ld-name.c:260
#: locale/programs/ld-numeric.c:323 locale/programs/ld-paper.c:210
@@ -1903,8 +1907,8 @@ msgstr "%s:ä¸å®Œæ•´çš„“ENDâ€è¡Œ"
#: locale/programs/ld-collate.c:602 locale/programs/ld-collate.c:898
#: locale/programs/ld-collate.c:911 locale/programs/ld-collate.c:2582
#: locale/programs/ld-collate.c:2603 locale/programs/ld-collate.c:3957
-#: locale/programs/ld-ctype.c:1846 locale/programs/ld-ctype.c:2104
-#: locale/programs/ld-ctype.c:2676 locale/programs/ld-ctype.c:2837
+#: locale/programs/ld-ctype.c:1847 locale/programs/ld-ctype.c:2105
+#: locale/programs/ld-ctype.c:2677 locale/programs/ld-ctype.c:2838
#: locale/programs/ld-identification.c:404
#: locale/programs/ld-measurement.c:220 locale/programs/ld-messages.c:302
#: locale/programs/ld-monetary.c:755 locale/programs/ld-name.c:269
@@ -2248,131 +2252,131 @@ msgstr "字集对照表 `%s' å·²ç»å®šä¹‰è¿‡äº†"
msgid "implementation limit: no more than %d character maps allowed"
msgstr "实现é™åˆ¶ï¼šä¸å¾—多于 %d 个字符映射表"
-#: locale/programs/ld-ctype.c:1434 locale/programs/ld-ctype.c:1559
-#: locale/programs/ld-ctype.c:1665 locale/programs/ld-ctype.c:2341
-#: locale/programs/ld-ctype.c:3299
+#: locale/programs/ld-ctype.c:1435 locale/programs/ld-ctype.c:1560
+#: locale/programs/ld-ctype.c:1666 locale/programs/ld-ctype.c:2342
+#: locale/programs/ld-ctype.c:3302
#, c-format
msgid "%s: field `%s' does not contain exactly ten entries"
msgstr "%s:域“%sâ€å«æœ‰æ¡ç›®çš„个数ä¸æ˜¯å个"
-#: locale/programs/ld-ctype.c:1462 locale/programs/ld-ctype.c:2036
+#: locale/programs/ld-ctype.c:1463 locale/programs/ld-ctype.c:2037
#, c-format
msgid "to-value <U%0*X> of range is smaller than from-value <U%0*X>"
msgstr "区域定义的结尾值 <U%0*X> 比起始值 <U%0*X> 还è¦å°"
-#: locale/programs/ld-ctype.c:1589
+#: locale/programs/ld-ctype.c:1590
msgid "start and end character sequence of range must have the same length"
msgstr "范围的起始和终止字符åºåˆ—必须具有相åŒçš„长度"
-#: locale/programs/ld-ctype.c:1596
+#: locale/programs/ld-ctype.c:1597
msgid "to-value character sequence is smaller than from-value sequence"
msgstr "字符åºåˆ—定义的结尾值比起始值还è¦å°"
-#: locale/programs/ld-ctype.c:1956 locale/programs/ld-ctype.c:2007
+#: locale/programs/ld-ctype.c:1957 locale/programs/ld-ctype.c:2008
msgid "premature end of `translit_ignore' definition"
msgstr "`translit_ignore' 定义没有按时结æŸ"
-#: locale/programs/ld-ctype.c:1962 locale/programs/ld-ctype.c:2013
-#: locale/programs/ld-ctype.c:2055
+#: locale/programs/ld-ctype.c:1963 locale/programs/ld-ctype.c:2014
+#: locale/programs/ld-ctype.c:2056
msgid "syntax error"
msgstr "语法错误"
-#: locale/programs/ld-ctype.c:2188
+#: locale/programs/ld-ctype.c:2189
#, c-format
msgid "%s: syntax error in definition of new character class"
msgstr "%s:在定义新字符集åˆä¸­å‡ºçŽ°è¯­æ³•é”™è¯¯"
-#: locale/programs/ld-ctype.c:2203
+#: locale/programs/ld-ctype.c:2204
#, c-format
msgid "%s: syntax error in definition of new character map"
msgstr "%s:在新字符映射中出现语法错误"
-#: locale/programs/ld-ctype.c:2363
+#: locale/programs/ld-ctype.c:2364
msgid "ellipsis range must be marked by two operands of same type"
msgstr "çœç•¥åŒºåŸŸå¿…须用两个型别相åŒçš„算符标示出æ¥"
-#: locale/programs/ld-ctype.c:2372
+#: locale/programs/ld-ctype.c:2373
msgid "with symbolic name range values the absolute ellipsis `...' must not be used"
msgstr "用符å·å称æ¥æŒ‡å®šå­—符编ç èŒƒå›´æ—¶ä¸å¯ä»¥ç”¨ç»å¯¹ä½ç½®çš„çœç•¥ç¬¦å· `…'"
-#: locale/programs/ld-ctype.c:2387
+#: locale/programs/ld-ctype.c:2388
msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'"
msgstr "用æ¥æŒ‡å®š UCS 值的范围时得用å六进制表示的çœç•¥ç¬¦å· `..'"
-#: locale/programs/ld-ctype.c:2401
+#: locale/programs/ld-ctype.c:2402
msgid "with character code range values one must use the absolute ellipsis `...'"
msgstr "用æ¥æŒ‡å®šå­—符编ç å€¼çš„范围时得用ç»å¯¹ä½ç½®çš„çœç•¥ç¬¦å· `…'"
-#: locale/programs/ld-ctype.c:2552
+#: locale/programs/ld-ctype.c:2553
#, c-format
msgid "duplicated definition for mapping `%s'"
msgstr "é‡å¤å®šä¹‰æ˜ å°„“%sâ€"
-#: locale/programs/ld-ctype.c:2638 locale/programs/ld-ctype.c:2782
+#: locale/programs/ld-ctype.c:2639 locale/programs/ld-ctype.c:2783
#, c-format
msgid "%s: `translit_start' section does not end with `translit_end'"
msgstr "%s:“translit_startâ€èŠ‚ä¸ä»¥â€œtranslit_endâ€ç»“æŸ"
-#: locale/programs/ld-ctype.c:2733
+#: locale/programs/ld-ctype.c:2734
#, c-format
msgid "%s: duplicate `default_missing' definition"
msgstr "%s:é‡å¤å®šä¹‰â€œdefault_missingâ€"
-#: locale/programs/ld-ctype.c:2738
+#: locale/programs/ld-ctype.c:2739
msgid "previous definition was here"
msgstr "å‰ä¸€ä¸ªå®šä¹‰åœ¨è¿™é‡Œ"
-#: locale/programs/ld-ctype.c:2760
+#: locale/programs/ld-ctype.c:2761
#, c-format
msgid "%s: no representable `default_missing' definition found"
msgstr "%s: 找ä¸åˆ°å¯è¡¨ç¤ºä¸º `default_missing' 的定义"
-#: locale/programs/ld-ctype.c:2877 locale/programs/ld-ctype.c:2973
-#: locale/programs/ld-ctype.c:2992 locale/programs/ld-ctype.c:3012
-#: locale/programs/ld-ctype.c:3032 locale/programs/ld-ctype.c:3052
-#: locale/programs/ld-ctype.c:3072 locale/programs/ld-ctype.c:3111
-#: locale/programs/ld-ctype.c:3131 locale/programs/ld-ctype.c:3195
-#: locale/programs/ld-ctype.c:3236 locale/programs/ld-ctype.c:3259
+#: locale/programs/ld-ctype.c:2878 locale/programs/ld-ctype.c:2974
+#: locale/programs/ld-ctype.c:2993 locale/programs/ld-ctype.c:3013
+#: locale/programs/ld-ctype.c:3033 locale/programs/ld-ctype.c:3053
+#: locale/programs/ld-ctype.c:3073 locale/programs/ld-ctype.c:3112
+#: locale/programs/ld-ctype.c:3132 locale/programs/ld-ctype.c:3198
+#: locale/programs/ld-ctype.c:3239 locale/programs/ld-ctype.c:3262
#, c-format
msgid "%s: character `%s' not defined while needed as default value"
msgstr "%s: 字符 `%s' 没有定义,但它是必需的默认值"
-#: locale/programs/ld-ctype.c:2882 locale/programs/ld-ctype.c:2978
-#: locale/programs/ld-ctype.c:2997 locale/programs/ld-ctype.c:3017
-#: locale/programs/ld-ctype.c:3037 locale/programs/ld-ctype.c:3057
-#: locale/programs/ld-ctype.c:3077 locale/programs/ld-ctype.c:3116
-#: locale/programs/ld-ctype.c:3136 locale/programs/ld-ctype.c:3200
+#: locale/programs/ld-ctype.c:2883 locale/programs/ld-ctype.c:2979
+#: locale/programs/ld-ctype.c:2998 locale/programs/ld-ctype.c:3018
+#: locale/programs/ld-ctype.c:3038 locale/programs/ld-ctype.c:3058
+#: locale/programs/ld-ctype.c:3078 locale/programs/ld-ctype.c:3117
+#: locale/programs/ld-ctype.c:3137 locale/programs/ld-ctype.c:3203
#, c-format
msgid "%s: character `%s' in charmap not representable with one byte"
msgstr "%s: 字集对照表中的字符 `%s' 无法表示为å•ä¸€å­—节"
-#: locale/programs/ld-ctype.c:3242 locale/programs/ld-ctype.c:3265
+#: locale/programs/ld-ctype.c:3245 locale/programs/ld-ctype.c:3268
#, c-format
msgid "%s: character `%s' needed as default value not representable with one byte"
msgstr "%s:需è¦ä½œä¸ºé»˜è®¤å€¼çš„字符“%sâ€æ— æ³•ä»¥å•ä¸ªå­—节æ¥è¡¨ç¤º"
-#: locale/programs/ld-ctype.c:3321
+#: locale/programs/ld-ctype.c:3324
msgid "no output digits defined and none of the standard names in the charmap"
msgstr "没有定义输出数字,在字集对照表中也找ä¸åˆ°ç›¸ç¬¦çš„标准å称"
-#: locale/programs/ld-ctype.c:3570
+#: locale/programs/ld-ctype.c:3573
#, c-format
msgid "%s: transliteration data from locale `%s' not available"
msgstr "%s: 语区数æ®`%s' 的音译数æ®ä¸å­˜åœ¨"
-#: locale/programs/ld-ctype.c:3669
+#: locale/programs/ld-ctype.c:3672
#, fuzzy, c-format
#| msgid "%s: table for class \"%s\": %lu bytes\n"
msgid "%s: table for class \"%s\": %lu bytes"
msgstr "%s: 类别 \"%s\" 表格: %lu 字节\n"
-#: locale/programs/ld-ctype.c:3733
+#: locale/programs/ld-ctype.c:3736
#, fuzzy, c-format
#| msgid "%s: table for map \"%s\": %lu bytes\n"
msgid "%s: table for map \"%s\": %lu bytes"
msgstr "%s: 映射表 \"%s\" 表格: %lu 字节\n"
-#: locale/programs/ld-ctype.c:3857
+#: locale/programs/ld-ctype.c:3860
#, fuzzy, c-format
#| msgid "%s: table for width: %lu bytes\n"
msgid "%s: table for width: %lu bytes"
@@ -2616,122 +2620,117 @@ msgstr ""
"å称\n"
"[-a|-m]"
-#: locale/programs/locale.c:190
+#: locale/programs/locale.c:522
#, c-format
-msgid "Cannot set LC_CTYPE to default locale"
-msgstr "无法将 LC_CTYPE 设置为缺çœçš„语区"
-
-#: locale/programs/locale.c:192
-#, c-format
-msgid "Cannot set LC_MESSAGES to default locale"
-msgstr "无法将 LC_MESSAGES 设置为缺çœçš„语区"
-
-#: locale/programs/locale.c:205
-#, c-format
-msgid "Cannot set LC_COLLATE to default locale"
-msgstr "无法将 LC_COLLATE 设置为缺çœçš„语区"
+msgid "while preparing output"
+msgstr "准备输出时"
-#: locale/programs/locale.c:221
-#, c-format
-msgid "Cannot set LC_ALL to default locale"
+#: locale/programs/locale.c:998
+#, fuzzy, c-format
+#| msgid "Cannot set LC_ALL to default locale"
+msgid "Cannot set %s to default locale"
msgstr "无法将 LC_ALL 设置为缺çœçš„语区"
-#: locale/programs/locale.c:521
+#: locale/programs/locale.c:1096
#, c-format
-msgid "while preparing output"
-msgstr "准备输出时"
+msgid "warning: The LOCPATH variable is set to \"%s\"\n"
+msgstr ""
-#: locale/programs/localedef.c:112
+#: locale/programs/localedef.c:116
msgid "Input Files:"
msgstr "输入文件:"
-#: locale/programs/localedef.c:114
+#: locale/programs/localedef.c:118
msgid "Symbolic character names defined in FILE"
msgstr "符å·å­—符的å称定义在文件 FILE 中"
-#: locale/programs/localedef.c:116
+#: locale/programs/localedef.c:120
msgid "Source definitions are found in FILE"
msgstr "在 FILE 中找到æºå®šä¹‰"
-#: locale/programs/localedef.c:118
+#: locale/programs/localedef.c:122
msgid "FILE contains mapping from symbolic names to UCS4 values"
msgstr "文件 FILE 内å«ç¬¦å·å与 UCS4 ç¼–ç ä¹‹é—´çš„映射"
-#: locale/programs/localedef.c:122
+#: locale/programs/localedef.c:126
msgid "Create output even if warning messages were issued"
msgstr "å³ä½¿å‡ºçŽ°è­¦å‘Šæ¶ˆæ¯ä¹Ÿåˆ›å»ºè¾“出"
-#: locale/programs/localedef.c:123
+#: locale/programs/localedef.c:128
+msgid "Do not create hard links between installed locales"
+msgstr ""
+
+#: locale/programs/localedef.c:129
msgid "Optional output file prefix"
msgstr "å¯é€‰çš„输出文件å‰ç¼€"
-#: locale/programs/localedef.c:124
+#: locale/programs/localedef.c:130
msgid "Strictly conform to POSIX"
msgstr "严格éµä»Ž POSIX"
-#: locale/programs/localedef.c:126
+#: locale/programs/localedef.c:132
msgid "Suppress warnings and information messages"
msgstr "关闭警告和信æ¯æ¶ˆæ¯"
-#: locale/programs/localedef.c:127
+#: locale/programs/localedef.c:133
msgid "Print more messages"
msgstr "打å°æ›´å¤šæ¶ˆæ¯"
-#: locale/programs/localedef.c:128 locale/programs/localedef.c:131
+#: locale/programs/localedef.c:134 locale/programs/localedef.c:137
#, fuzzy
#| msgid "warning: "
msgid "<warnings>"
msgstr "警告:"
-#: locale/programs/localedef.c:129
+#: locale/programs/localedef.c:135
msgid "Comma-separated list of warnings to disable; supported warnings are: ascii, intcurrsym"
msgstr ""
-#: locale/programs/localedef.c:132
+#: locale/programs/localedef.c:138
msgid "Comma-separated list of warnings to enable; supported warnings are: ascii, intcurrsym"
msgstr ""
-#: locale/programs/localedef.c:135
+#: locale/programs/localedef.c:141
msgid "Archive control:"
msgstr "归档控制:"
-#: locale/programs/localedef.c:137
+#: locale/programs/localedef.c:143
msgid "Don't add new data to archive"
msgstr "ä¸è¦å°†æ–°æ•°æ®æ·»åŠ åˆ°å½’档文件中"
-#: locale/programs/localedef.c:139
+#: locale/programs/localedef.c:145
msgid "Add locales named by parameters to archive"
msgstr "将由å‚数命å的区域添加到归档文件中"
-#: locale/programs/localedef.c:140
+#: locale/programs/localedef.c:146
msgid "Replace existing archive content"
msgstr "替æ¢çŽ°æœ‰çš„归档文件内容"
-#: locale/programs/localedef.c:142
+#: locale/programs/localedef.c:148
msgid "Remove locales named by parameters from archive"
msgstr "从归档文件中删除由å‚数命å的区域"
-#: locale/programs/localedef.c:143
+#: locale/programs/localedef.c:149
msgid "List content of archive"
msgstr "列出归档文件的内容"
-#: locale/programs/localedef.c:145
+#: locale/programs/localedef.c:151
msgid "locale.alias file to consult when making archive"
msgstr "在制作归档文件时å‚考 locale.alias 文件"
-#: locale/programs/localedef.c:147
+#: locale/programs/localedef.c:153
msgid "Generate little-endian output"
msgstr "生æˆå°ç«¯åºè¾“出"
-#: locale/programs/localedef.c:149
+#: locale/programs/localedef.c:155
msgid "Generate big-endian output"
msgstr "生æˆå¤§ç«¯åºè¾“出"
-#: locale/programs/localedef.c:154
+#: locale/programs/localedef.c:160
msgid "Compile locale specification"
msgstr "编译区域规范"
-#: locale/programs/localedef.c:157
+#: locale/programs/localedef.c:163
msgid ""
"NAME\n"
"[--add-to-archive|--delete-from-archive] FILE...\n"
@@ -2741,33 +2740,33 @@ msgstr ""
"[--add-to-archive|--delete-from-archive] 文件...\n"
"--list-archive [文件]"
-#: locale/programs/localedef.c:232
+#: locale/programs/localedef.c:238
#, c-format
msgid "cannot create directory for output files"
msgstr "无法为输出文件创建目录"
-#: locale/programs/localedef.c:243
+#: locale/programs/localedef.c:249
msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
msgstr "致命错误:系统未定义“_POSIX2_LOCALEDEFâ€"
-#: locale/programs/localedef.c:257 locale/programs/localedef.c:273
-#: locale/programs/localedef.c:663 locale/programs/localedef.c:683
+#: locale/programs/localedef.c:263 locale/programs/localedef.c:279
+#: locale/programs/localedef.c:673 locale/programs/localedef.c:693
#, c-format
msgid "cannot open locale definition file `%s'"
msgstr "无法打开区域定义文件“%sâ€"
-#: locale/programs/localedef.c:297
+#: locale/programs/localedef.c:303
#, c-format
msgid "cannot write output files to `%s'"
msgstr "无法将输出文件写入“%sâ€"
-#: locale/programs/localedef.c:303
+#: locale/programs/localedef.c:309
#, fuzzy
#| msgid "no output file produced because warnings were issued"
msgid "no output file produced because errors were issued"
msgstr "由于出现警告而未生æˆè¾“出文件"
-#: locale/programs/localedef.c:431
+#: locale/programs/localedef.c:441
#, c-format
msgid ""
"System's directory for character maps : %s\n"
@@ -2780,11 +2779,11 @@ msgstr ""
"\t\t 语区路径 :%s\n"
"%s"
-#: locale/programs/localedef.c:631
+#: locale/programs/localedef.c:641
msgid "circular dependencies between locale definitions"
msgstr "区域定义中的循环倚赖"
-#: locale/programs/localedef.c:637
+#: locale/programs/localedef.c:647
#, c-format
msgid "cannot add already read locale `%s' a second time"
msgstr "无法å†æ¬¡æ·»åŠ å·²ç»è¯»å…¥çš„“%sâ€"
@@ -2940,24 +2939,24 @@ msgstr "无法为范畴“%2$sâ€æ‰“开输出文件“%1$sâ€"
msgid "failure while writing data for category `%s'"
msgstr "为范畴“%sâ€å†™å…¥æ•°æ®å¤±è´¥"
-#: locale/programs/locfile.c:917
+#: locale/programs/locfile.c:930
#, c-format
msgid "cannot create output file `%s' for category `%s'"
msgstr "无法为范畴“%2$sâ€åˆ›å»ºè¾“出文件“%1$sâ€"
-#: locale/programs/locfile.c:953
+#: locale/programs/locfile.c:966
msgid "expecting string argument for `copy'"
msgstr "`copy' çš„å‚数应该是字串æ‰å¯¹"
-#: locale/programs/locfile.c:957
+#: locale/programs/locfile.c:970
msgid "locale name should consist only of portable characters"
msgstr "区域å称应该仅由å¯ç§»æ¤çš„字符组æˆ"
-#: locale/programs/locfile.c:976
+#: locale/programs/locfile.c:989
msgid "no other keyword shall be specified when `copy' is used"
msgstr "使用“copyâ€æ—¶ä¸åº”å†ä½¿ç”¨å…¶å®ƒå…³é”®å­—"
-#: locale/programs/locfile.c:990
+#: locale/programs/locfile.c:1003
#, c-format
msgid "`%1$s' definition does not end with `END %1$s'"
msgstr "对“%1$sâ€çš„定义并ä¸ä»¥â€œEND %1%sâ€ç»“æŸ"
@@ -3789,12 +3788,12 @@ msgstr "yp_update:无法将主机å转æ¢ä¸ºç½‘å\n"
msgid "yp_update: cannot get server address\n"
msgstr "yp_update:无法获å–æœåŠ¡å™¨åœ°å€\n"
-#: nscd/aicache.c:83 nscd/hstcache.c:452
+#: nscd/aicache.c:82 nscd/hstcache.c:452
#, c-format
msgid "Haven't found \"%s\" in hosts cache!"
msgstr "无法在主机缓冲区中找到“%sâ€ï¼"
-#: nscd/aicache.c:85 nscd/hstcache.c:454
+#: nscd/aicache.c:84 nscd/hstcache.c:454
#, c-format
msgid "Reloading \"%s\" in hosts cache!"
msgstr "在主机缓冲区中é‡æ–°åŠ è½½â€œ%sâ€ï¼"
@@ -4116,22 +4115,22 @@ msgstr "在 %2$s 缓存中 %1$zu 字节å¯ç”¨"
msgid "no more memory for database '%s'"
msgstr "无内存å¯ç”¨äºŽæ•°æ®åº“ “%s†"
-#: nscd/netgroupcache.c:121
+#: nscd/netgroupcache.c:122
#, c-format
msgid "Haven't found \"%s\" in netgroup cache!"
msgstr "尚未在网络群组缓存中找到 “%s†ï¼"
-#: nscd/netgroupcache.c:123
+#: nscd/netgroupcache.c:124
#, c-format
msgid "Reloading \"%s\" in netgroup cache!"
msgstr "é‡æ–°åœ¨ç½‘络群组缓存中加载 “%s†ï¼"
-#: nscd/netgroupcache.c:469
+#: nscd/netgroupcache.c:470
#, c-format
msgid "Haven't found \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr "尚未在网络群组缓存中找到 “%s (%s,%s,%s)†ï¼"
-#: nscd/netgroupcache.c:472
+#: nscd/netgroupcache.c:473
#, c-format
msgid "Reloading \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr "é‡æ–°åœ¨ç½‘络群组缓存中加载 “%s (%s,%s,%s)†ï¼"
@@ -4184,7 +4183,7 @@ msgstr "为æ¯ä¸ªç”¨æˆ·ä½¿ç”¨åˆ†ç¦»çš„缓冲区"
msgid "Name Service Cache Daemon."
msgstr "网域å称缓存精çµ"
-#: nscd/nscd.c:155 nss/getent.c:967 nss/makedb.c:206
+#: nscd/nscd.c:155 nss/getent.c:987 nss/makedb.c:206
#, c-format
msgid "wrong number of arguments"
msgstr "å‚数个数错误"
@@ -4292,27 +4291,27 @@ msgstr "解æžé”™è¯¯ï¼š%s"
msgid "Must specify user name for server-user option"
msgstr "必须为æœåŠ¡å™¨ç”¨æˆ·é€‰é¡¹æŒ‡å®šç”¨æˆ·å"
-#: nscd/nscd_conf.c:198
+#: nscd/nscd_conf.c:201
#, c-format
msgid "Must specify user name for stat-user option"
msgstr "必须为 stat 用户选项指定用户å"
-#: nscd/nscd_conf.c:255
+#: nscd/nscd_conf.c:259
#, c-format
msgid "Must specify value for restart-interval option"
msgstr "必须指定用于 restart-interval 选项的值"
-#: nscd/nscd_conf.c:269
+#: nscd/nscd_conf.c:273
#, c-format
msgid "Unknown option: %s %s %s"
msgstr "未知的选项:%s %s %s"
-#: nscd/nscd_conf.c:282
+#: nscd/nscd_conf.c:286
#, c-format
msgid "cannot get current working directory: %s; disabling paranoia mode"
msgstr "无法å–å¾—ç›®å‰çš„工作目录:%s; åœç”¨ paranoia 模å¼"
-#: nscd/nscd_conf.c:302
+#: nscd/nscd_conf.c:306
#, c-format
msgid "maximum file size for %s database too small"
msgstr "最大值文件大å°ç”¨äºŽ %s æ•°æ®åº“太å°"
@@ -4576,47 +4575,47 @@ msgstr "无法在æœåŠ¡ç¼“冲区中找到“%sâ€ï¼"
msgid "Reloading \"%s\" in services cache!"
msgstr "在æœåŠ¡ç¼“冲区中é‡æ–°åŠ è½½â€œ%sâ€ï¼"
-#: nss/getent.c:54
+#: nss/getent.c:55
msgid "database [key ...]"
msgstr "æ•°æ®åº“ [é”® ...]"
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "CONFIG"
msgstr "组æ€"
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "Service configuration to be used"
msgstr "è¦ä½¿ç”¨çš„æœåŠ¡é…ç½®"
-#: nss/getent.c:60
+#: nss/getent.c:61
msgid "disable IDN encoding"
msgstr "åœç”¨ IDN ç¼–ç "
-#: nss/getent.c:65
+#: nss/getent.c:66
msgid "Get entries from administrative database."
msgstr "从管ç†æ•°æ®åº“å–å¾—æ¡ç›®ã€‚"
-#: nss/getent.c:149 nss/getent.c:442 nss/getent.c:489
+#: nss/getent.c:150 nss/getent.c:462 nss/getent.c:509
#, c-format
msgid "Enumeration not supported on %s\n"
msgstr "%s ä¸æ”¯æŒæžšä¸¾\n"
-#: nss/getent.c:497 nss/getent.c:510
+#: nss/getent.c:517 nss/getent.c:530
#, fuzzy, c-format
#| msgid "Could not create log file"
msgid "Could not allocate group list: %m\n"
msgstr "无法创建日志文件"
-#: nss/getent.c:881
+#: nss/getent.c:901
#, c-format
msgid "Unknown database name"
msgstr "未知的数æ®åº“å"
-#: nss/getent.c:911
+#: nss/getent.c:931
msgid "Supported databases:\n"
msgstr "支æŒçš„æ•°æ®åº“:\n"
-#: nss/getent.c:977
+#: nss/getent.c:997
#, c-format
msgid "Unknown database: %s\n"
msgstr "未知的数æ®åº“:%s\n"
@@ -4878,11 +4877,11 @@ msgstr "常规表达å¼è¿‡å¤§"
msgid "Unmatched ) or \\)"
msgstr "ä¸åŒ¹é…çš„ ) 或 \\)"
-#: posix/regcomp.c:689
+#: posix/regcomp.c:676
msgid "No previous regular expression"
msgstr "没有å‰ä¸€ä¸ªå¸¸è§„表达å¼"
-#: posix/wordexp.c:1815
+#: posix/wordexp.c:1816
msgid "parameter null or not set"
msgstr "å‚数为 null 或未设置"
@@ -5067,7 +5066,7 @@ msgstr "输出缓冲区å¯ç”¨"
msgid "Input message available"
msgstr "输入消æ¯å¯ç”¨"
-#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:381 timezone/zic.c:520
+#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:375 timezone/zic.c:561
msgid "I/O error"
msgstr "I/O 错误"
@@ -5150,7 +5149,7 @@ msgstr "æœªçŸ¥ä¿¡å· %d"
#: sunrpc/auth_unix.c:112 sunrpc/clnt_tcp.c:124 sunrpc/clnt_udp.c:139
#: sunrpc/clnt_unix.c:125 sunrpc/svc_tcp.c:189 sunrpc/svc_tcp.c:233
#: sunrpc/svc_udp.c:161 sunrpc/svc_unix.c:189 sunrpc/svc_unix.c:229
-#: sunrpc/xdr.c:628 sunrpc/xdr.c:788 sunrpc/xdr_array.c:102
+#: sunrpc/xdr.c:631 sunrpc/xdr.c:791 sunrpc/xdr_array.c:102
#: sunrpc/xdr_rec.c:153 sunrpc/xdr_ref.c:79
msgid "out of memory\n"
msgstr "内存ä¸è¶³\n"
@@ -6433,56 +6432,69 @@ msgstr "这次真的被您打败了"
# 简å•çš„说,儿歌 "å”è€å…ˆç”Ÿæœ‰å—地...",然åŽå‘¢?? ;-p
#
#. TRANS Go home and have a glass of warm, dairy-fresh milk.
-#: sysdeps/gnu/errlist.c:978
+#. TRANS @c Okay. Since you are dying to know, I'll tell you.
+#. TRANS @c This is a joke, obviously. There is a children's song which begins,
+#. TRANS @c "Old McDonald had a farm, e-i-e-i-o." Every time I see the (real)
+#. TRANS @c errno macro EIO, I think about that song. Probably most of my
+#. TRANS @c compatriots who program on Unix do, too. One of them must have stayed
+#. TRANS @c up a little too late one night and decided to add it to Hurd or Glibc.
+#. TRANS @c Whoever did it should be castigated, but it made me laugh.
+#. TRANS @c --jtobey@channel1.com
+#. TRANS @c
+#. TRANS @c "bought the farm" means "died". -jtobey
+#. TRANS @c
+#. TRANS @c Translators, please do not translate this litteraly, translate it into
+#. TRANS @c an idiomatic funny way of saying that the computer died.
+#: sysdeps/gnu/errlist.c:991
msgid "Computer bought the farm"
msgstr "è¿™å°ç”µè„‘买了一å—地啰"
#. TRANS This error code has no purpose.
-#: sysdeps/gnu/errlist.c:987
+#: sysdeps/gnu/errlist.c:1000
msgid "Gratuitous error"
msgstr "无故的错误"
-#: sysdeps/gnu/errlist.c:995
+#: sysdeps/gnu/errlist.c:1008
msgid "Bad message"
msgstr "错误的消æ¯"
-#: sysdeps/gnu/errlist.c:1003
+#: sysdeps/gnu/errlist.c:1016
msgid "Identifier removed"
msgstr "标识符已删除"
-#: sysdeps/gnu/errlist.c:1011
+#: sysdeps/gnu/errlist.c:1024
msgid "Multihop attempted"
msgstr "å°è¯• Multihop"
-#: sysdeps/gnu/errlist.c:1019
+#: sysdeps/gnu/errlist.c:1032
msgid "No data available"
msgstr "没有å¯ç”¨çš„æ•°æ®"
-#: sysdeps/gnu/errlist.c:1027
+#: sysdeps/gnu/errlist.c:1040
msgid "Link has been severed"
msgstr "链接已有æœåŠ¡"
-#: sysdeps/gnu/errlist.c:1035
+#: sysdeps/gnu/errlist.c:1048
msgid "No message of desired type"
msgstr "没有符åˆéœ€æ±‚æ ¼å¼çš„消æ¯"
-#: sysdeps/gnu/errlist.c:1043
+#: sysdeps/gnu/errlist.c:1056
msgid "Out of streams resources"
msgstr "æµèµ„æºä¸è¶³"
-#: sysdeps/gnu/errlist.c:1051
+#: sysdeps/gnu/errlist.c:1064
msgid "Device not a stream"
msgstr "设备ä¸æ˜¯æµ"
-#: sysdeps/gnu/errlist.c:1059
+#: sysdeps/gnu/errlist.c:1072
msgid "Value too large for defined data type"
msgstr "对已定义的数æ®ç±»åž‹æ¥è¯´å€¼è¿‡å¤§"
-#: sysdeps/gnu/errlist.c:1067
+#: sysdeps/gnu/errlist.c:1080
msgid "Protocol error"
msgstr "å议错误"
-#: sysdeps/gnu/errlist.c:1075
+#: sysdeps/gnu/errlist.c:1088
msgid "Timer expired"
msgstr "计时器超时"
@@ -6490,195 +6502,195 @@ msgstr "计时器超时"
#. TRANS completed. @xref{Asynchronous I/O}. When you call @code{aio_cancel},
#. TRANS the normal result is for the operations affected to complete with this
#. TRANS error; @pxref{Cancel AIO Operations}.
-#: sysdeps/gnu/errlist.c:1087
+#: sysdeps/gnu/errlist.c:1100
msgid "Operation canceled"
msgstr "æ“作已å–消"
-#: sysdeps/gnu/errlist.c:1095
+#: sysdeps/gnu/errlist.c:1108
msgid "Owner died"
msgstr "拥有者已消é€"
-#: sysdeps/gnu/errlist.c:1103
+#: sysdeps/gnu/errlist.c:1116
msgid "State not recoverable"
msgstr "状æ€æ— æ³•å›žå¤"
-#: sysdeps/gnu/errlist.c:1111
+#: sysdeps/gnu/errlist.c:1124
msgid "Interrupted system call should be restarted"
msgstr "被中断的系统调用应该é‡æ–°å¯åŠ¨"
-#: sysdeps/gnu/errlist.c:1119
+#: sysdeps/gnu/errlist.c:1132
msgid "Channel number out of range"
msgstr "通é“ç¼–å·è¶…出范围"
-#: sysdeps/gnu/errlist.c:1127
+#: sysdeps/gnu/errlist.c:1140
msgid "Level 2 not synchronized"
msgstr "级别 2 尚未åŒæ­¥"
-#: sysdeps/gnu/errlist.c:1135
+#: sysdeps/gnu/errlist.c:1148
msgid "Level 3 halted"
msgstr "级别 3 已关闭"
-#: sysdeps/gnu/errlist.c:1143
+#: sysdeps/gnu/errlist.c:1156
msgid "Level 3 reset"
msgstr "级别 3 å·²é‡ç½®"
-#: sysdeps/gnu/errlist.c:1151
+#: sysdeps/gnu/errlist.c:1164
msgid "Link number out of range"
msgstr "链接数超出范围"
-#: sysdeps/gnu/errlist.c:1159
+#: sysdeps/gnu/errlist.c:1172
msgid "Protocol driver not attached"
msgstr "未加载å议驱动程åº"
-#: sysdeps/gnu/errlist.c:1167
+#: sysdeps/gnu/errlist.c:1180
msgid "No CSI structure available"
msgstr "没有å¯ç”¨çš„ CSI 结构"
-#: sysdeps/gnu/errlist.c:1175
+#: sysdeps/gnu/errlist.c:1188
msgid "Level 2 halted"
msgstr "级别 2 己关闭"
-#: sysdeps/gnu/errlist.c:1183
+#: sysdeps/gnu/errlist.c:1196
msgid "Invalid exchange"
msgstr "无效的交æ¢"
-#: sysdeps/gnu/errlist.c:1191
+#: sysdeps/gnu/errlist.c:1204
msgid "Invalid request descriptor"
msgstr "无效的请求æ述符"
-#: sysdeps/gnu/errlist.c:1199
+#: sysdeps/gnu/errlist.c:1212
msgid "Exchange full"
msgstr "交æ¢æ»¡"
-#: sysdeps/gnu/errlist.c:1207
+#: sysdeps/gnu/errlist.c:1220
msgid "No anode"
msgstr "没有 anode"
-#: sysdeps/gnu/errlist.c:1215
+#: sysdeps/gnu/errlist.c:1228
msgid "Invalid request code"
msgstr "无效的请求ç "
-#: sysdeps/gnu/errlist.c:1223
+#: sysdeps/gnu/errlist.c:1236
msgid "Invalid slot"
msgstr "ä¸é€‚用的 slot"
-#: sysdeps/gnu/errlist.c:1231
+#: sysdeps/gnu/errlist.c:1244
msgid "File locking deadlock error"
msgstr "文件é”æ­»é”错误"
-#: sysdeps/gnu/errlist.c:1239
+#: sysdeps/gnu/errlist.c:1252
msgid "Bad font file format"
msgstr "错误的字体文件格å¼"
-#: sysdeps/gnu/errlist.c:1247
+#: sysdeps/gnu/errlist.c:1260
msgid "Machine is not on the network"
msgstr "机器ä¸åœ¨ç½‘络中"
-#: sysdeps/gnu/errlist.c:1255
+#: sysdeps/gnu/errlist.c:1268
msgid "Package not installed"
msgstr "包未安装"
-#: sysdeps/gnu/errlist.c:1263
+#: sysdeps/gnu/errlist.c:1276
msgid "Advertise error"
msgstr "通知错误"
-#: sysdeps/gnu/errlist.c:1271
+#: sysdeps/gnu/errlist.c:1284
msgid "Srmount error"
msgstr "Srmount 错误"
-#: sysdeps/gnu/errlist.c:1279
+#: sysdeps/gnu/errlist.c:1292
msgid "Communication error on send"
msgstr "å‘é€æ—¶å‡ºçŽ°é€šè®¯é”™è¯¯"
-#: sysdeps/gnu/errlist.c:1287
+#: sysdeps/gnu/errlist.c:1300
msgid "RFS specific error"
msgstr "RFS 特定错误"
-#: sysdeps/gnu/errlist.c:1295
+#: sysdeps/gnu/errlist.c:1308
msgid "Name not unique on network"
msgstr "网络上的å称ä¸æ˜¯å”¯ä¸€çš„"
-#: sysdeps/gnu/errlist.c:1303
+#: sysdeps/gnu/errlist.c:1316
msgid "File descriptor in bad state"
msgstr "文件æ述符处于错误状æ€"
-#: sysdeps/gnu/errlist.c:1311
+#: sysdeps/gnu/errlist.c:1324
msgid "Remote address changed"
msgstr "远程地å€å·²æ”¹å˜"
-#: sysdeps/gnu/errlist.c:1319
+#: sysdeps/gnu/errlist.c:1332
msgid "Can not access a needed shared library"
msgstr "无法访问必须的共享库"
-#: sysdeps/gnu/errlist.c:1327
+#: sysdeps/gnu/errlist.c:1340
msgid "Accessing a corrupted shared library"
msgstr "正在访问一个已æ¯å的共享库"
-#: sysdeps/gnu/errlist.c:1335
+#: sysdeps/gnu/errlist.c:1348
msgid ".lib section in a.out corrupted"
msgstr "a.out 中的 .lib 节已æ¯å"
-#: sysdeps/gnu/errlist.c:1343
+#: sysdeps/gnu/errlist.c:1356
msgid "Attempting to link in too many shared libraries"
msgstr "试图与过多的共享库相链接"
-#: sysdeps/gnu/errlist.c:1351
+#: sysdeps/gnu/errlist.c:1364
msgid "Cannot exec a shared library directly"
msgstr "无法直接执行共享库"
-#: sysdeps/gnu/errlist.c:1359
+#: sysdeps/gnu/errlist.c:1372
msgid "Streams pipe error"
msgstr "æµç®¡é“错误"
-#: sysdeps/gnu/errlist.c:1367
+#: sysdeps/gnu/errlist.c:1380
msgid "Structure needs cleaning"
msgstr "结构需è¦æ¸…ç†"
-#: sysdeps/gnu/errlist.c:1375
+#: sysdeps/gnu/errlist.c:1388
msgid "Not a XENIX named type file"
msgstr "ä¸æ˜¯ XENIX 命å的类型文件"
-#: sysdeps/gnu/errlist.c:1383
+#: sysdeps/gnu/errlist.c:1396
msgid "No XENIX semaphores available"
msgstr "没有å¯ç”¨çš„ XENIX ä¿¡å·é‡"
-#: sysdeps/gnu/errlist.c:1391
+#: sysdeps/gnu/errlist.c:1404
msgid "Is a named type file"
msgstr "是一个有å类型文件"
-#: sysdeps/gnu/errlist.c:1399
+#: sysdeps/gnu/errlist.c:1412
msgid "Remote I/O error"
msgstr "远程 I/O 错误"
-#: sysdeps/gnu/errlist.c:1407
+#: sysdeps/gnu/errlist.c:1420
msgid "No medium found"
msgstr "找ä¸åˆ°ä»‹è´¨"
-#: sysdeps/gnu/errlist.c:1415
+#: sysdeps/gnu/errlist.c:1428
msgid "Wrong medium type"
msgstr "错误的介质类型"
-#: sysdeps/gnu/errlist.c:1423
+#: sysdeps/gnu/errlist.c:1436
msgid "Required key not available"
msgstr "需è¦çš„关键字ä¸å­˜åœ¨"
-#: sysdeps/gnu/errlist.c:1431
+#: sysdeps/gnu/errlist.c:1444
msgid "Key has expired"
msgstr "关键字已过期"
-#: sysdeps/gnu/errlist.c:1439
+#: sysdeps/gnu/errlist.c:1452
msgid "Key has been revoked"
msgstr "键值已å–消"
-#: sysdeps/gnu/errlist.c:1447
+#: sysdeps/gnu/errlist.c:1460
msgid "Key was rejected by service"
msgstr "键值被æœåŠ¡æ‰€æ‹’ç»"
-#: sysdeps/gnu/errlist.c:1455
+#: sysdeps/gnu/errlist.c:1468
msgid "Operation not possible due to RF-kill"
msgstr "由于 RF-kill 而无法æ“作"
-#: sysdeps/gnu/errlist.c:1463
+#: sysdeps/gnu/errlist.c:1476
msgid "Memory page has hardware error"
msgstr "内存分页有硬件错误"
@@ -6807,27 +6819,27 @@ msgstr ""
msgid "can't disable CET"
msgstr ""
-#: timezone/zdump.c:338
+#: timezone/zdump.c:332
msgid "has fewer than 3 characters"
msgstr "ä¸è¶³ 3 个字符"
-#: timezone/zdump.c:340
+#: timezone/zdump.c:334
msgid "has more than 6 characters"
msgstr "超过 6 个字符"
-#: timezone/zdump.c:342
+#: timezone/zdump.c:336
msgid "has characters other than ASCII alphanumerics, '-' or '+'"
msgstr "å«æœ‰ ASCII æ•°å­—ã€å­—æ¯ã€â€œ-â€ã€â€œ+â€ä¹‹å¤–的字符"
-#: timezone/zdump.c:347
+#: timezone/zdump.c:341
#, c-format
msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n"
msgstr "%s: 警告:区域 “%s†缩写 “%s†%s\n"
-#: timezone/zdump.c:393
+#: timezone/zdump.c:387
#, c-format
msgid ""
-"%s: usage: %s OPTIONS ZONENAME ...\n"
+"%s: usage: %s OPTIONS TIMEZONE ...\n"
"Options include:\n"
" -c [L,]U Start at year L (default -500), end before year U (default 2500)\n"
" -t [L,]U Start at time L, end before time U (in seconds since 1970)\n"
@@ -6840,54 +6852,66 @@ msgid ""
"Report bugs to %s.\n"
msgstr ""
-#: timezone/zdump.c:479
+#: timezone/zdump.c:473
#, c-format
msgid "%s: wild -c argument %s\n"
msgstr "%s: 怪异的 -c 选项 %s\n"
-#: timezone/zdump.c:512
+#: timezone/zdump.c:506
#, c-format
msgid "%s: wild -t argument %s\n"
msgstr "%s: wild -c å‚æ•° %s\n"
-#: timezone/zic.c:398
+#: timezone/zic.c:429
#, c-format
msgid "%s: Memory exhausted: %s\n"
msgstr "%s:内存耗尽:%s\n"
-#: timezone/zic.c:406
+#: timezone/zic.c:437
msgid "size overflow"
msgstr "大å°æº¢å‡º"
-#: timezone/zic.c:454
+#: timezone/zic.c:447
+#, fuzzy
+#| msgid "int overflow"
+msgid "alignment overflow"
+msgstr "整数溢出"
+
+#: timezone/zic.c:495
#, fuzzy
#| msgid "Integer overflow"
msgid "integer overflow"
msgstr "整数溢出"
-#: timezone/zic.c:488
+#: timezone/zic.c:529
#, fuzzy, c-format
#| msgid "\"%s\", line %d: "
msgid "\"%s\", line %<PRIdMAX>: "
msgstr "\"%s\", 第 %d 行: "
-#: timezone/zic.c:491
+#: timezone/zic.c:532
#, fuzzy, c-format
#| msgid " (rule from \"%s\", line %d)"
msgid " (rule from \"%s\", line %<PRIdMAX>)"
msgstr " (规则æ¥è‡ª \"%s\", 第 %d è¡Œ)"
-#: timezone/zic.c:510
+#: timezone/zic.c:551
#, c-format
msgid "warning: "
msgstr "警告:"
-#: timezone/zic.c:535
-#, c-format
+#: timezone/zic.c:576
+#, fuzzy, c-format
+#| msgid ""
+#| "%s: usage is %s [ --version ] [ --help ] [ -v ] \\\n"
+#| "\t[ -l localtime ] [ -p posixrules ] [ -d directory ] \\\n"
+#| "\t[ -L leapseconds ] [ filename ... ]\n"
+#| "\n"
+#| "Report bugs to %s.\n"
msgid ""
"%s: usage is %s [ --version ] [ --help ] [ -v ] \\\n"
"\t[ -l localtime ] [ -p posixrules ] [ -d directory ] \\\n"
-"\t[ -L leapseconds ] [ filename ... ]\n"
+"\t[ -t localtime-link ] [ -L leapseconds ] [ filename ... ]\n"
"\n"
"Report bugs to %s.\n"
msgstr ""
@@ -6897,402 +6921,435 @@ msgstr ""
"\n"
"将错误通报给 %s。\n"
-#: timezone/zic.c:558
+#: timezone/zic.c:599
#, fuzzy, c-format
#| msgid "%s: Can't create %s: %s\n"
msgid "%s: Can't chdir to %s: %s\n"
msgstr "%s:无法创建 %s:%s\n"
-#: timezone/zic.c:590
+#: timezone/zic.c:632
msgid "wild compilation-time specification of zic_t"
msgstr "zic_t 的万用编译时间规格"
-#: timezone/zic.c:610
+#: timezone/zic.c:652
#, c-format
msgid "%s: More than one -d option specified\n"
msgstr "%s:给出了多个 -d 选项\n"
-#: timezone/zic.c:620
+#: timezone/zic.c:662
#, c-format
msgid "%s: More than one -l option specified\n"
msgstr "%s:给出了多个 -l 选项\n"
-#: timezone/zic.c:630
+#: timezone/zic.c:672
#, c-format
msgid "%s: More than one -p option specified\n"
msgstr "%s:给出了多个 -p 选项\n"
-#: timezone/zic.c:640
+#: timezone/zic.c:680
+#, fuzzy, c-format
+#| msgid "%s: More than one -d option specified\n"
+msgid "%s: More than one -t option specified\n"
+msgstr "%s:给出了多个 -d 选项\n"
+
+#: timezone/zic.c:689
+msgid "-y is obsolescent"
+msgstr ""
+
+#: timezone/zic.c:693
#, c-format
msgid "%s: More than one -y option specified\n"
msgstr "%s:给出了多个 -y 选项\n"
-#: timezone/zic.c:650
+#: timezone/zic.c:703
#, c-format
msgid "%s: More than one -L option specified\n"
msgstr "%s:给出了多个 -L 选项\n"
-#: timezone/zic.c:659
+#: timezone/zic.c:712
msgid "-s ignored"
msgstr "-s 已被忽略"
-#: timezone/zic.c:698
+#: timezone/zic.c:753
msgid "link to link"
msgstr "链接到链接"
-#: timezone/zic.c:701 timezone/zic.c:705
+#: timezone/zic.c:756 timezone/zic.c:760
msgid "command line"
msgstr "命令行"
-#: timezone/zic.c:721
+#: timezone/zic.c:776
msgid "empty file name"
msgstr "空文件å"
-#: timezone/zic.c:724
+#: timezone/zic.c:779
#, c-format
msgid "file name '%s' begins with '/'"
msgstr "文件å“%sâ€ä»¥â€œ/â€å¼€å¤´"
-#: timezone/zic.c:734
+#: timezone/zic.c:789
#, c-format
msgid "file name '%s' contains '%.*s' component"
msgstr "文件å“%sâ€åŒ…å«â€œ%.*sâ€éƒ¨åˆ†"
-#: timezone/zic.c:740
+#: timezone/zic.c:795
#, c-format
msgid "file name '%s' component contains leading '-'"
msgstr "文件å“%sâ€éƒ¨åˆ†ä»¥â€œ-â€å¼€å¤´"
# component_len_max < component_len
-#: timezone/zic.c:743
+#: timezone/zic.c:798
#, c-format
msgid "file name '%s' contains overlength component '%.*s...'"
msgstr "文件å“%sâ€ä¸­çš„“%.*sâ€éƒ¨åˆ†è¿‡é•¿"
-#: timezone/zic.c:771
+#: timezone/zic.c:826
#, c-format
msgid "file name '%s' contains byte '%c'"
msgstr "文件å“%sâ€åŒ…å«å­—节“%câ€"
-#: timezone/zic.c:772
+#: timezone/zic.c:827
#, c-format
msgid "file name '%s' contains byte '\\%o'"
msgstr "文件å“%sâ€åŒ…å«å­—节“\\%oâ€"
-#: timezone/zic.c:842
+#: timezone/zic.c:897
#, fuzzy, c-format
#| msgid "%s: link from %s failed: %s"
msgid "%s: link from %s/%s failed: %s\n"
msgstr "%s:无法链接到 %s:%s"
-#: timezone/zic.c:852 timezone/zic.c:1815
+#: timezone/zic.c:907 timezone/zic.c:1876
#, fuzzy, c-format
#| msgid "%s: Can't remove %s: %s\n"
msgid "%s: Can't remove %s/%s: %s\n"
msgstr "%s:无法删除 %s:%s\n"
-#: timezone/zic.c:874
+#: timezone/zic.c:931
#, c-format
msgid "symbolic link used because hard link failed: %s"
msgstr ""
-#: timezone/zic.c:882
+#: timezone/zic.c:939
#, fuzzy, c-format
#| msgid "%s: Can't read %s: %s\n"
msgid "%s: Can't read %s/%s: %s\n"
msgstr "%s: æ— æ³•è¯»å– %s: %s\n"
-#: timezone/zic.c:889 timezone/zic.c:1828
+#: timezone/zic.c:946 timezone/zic.c:1889
#, fuzzy, c-format
#| msgid "%s: Can't create %s: %s\n"
msgid "%s: Can't create %s/%s: %s\n"
msgstr "%s:无法创建 %s:%s\n"
-#: timezone/zic.c:898
+#: timezone/zic.c:955
#, c-format
msgid "copy used because hard link failed: %s"
msgstr ""
-#: timezone/zic.c:901
+#: timezone/zic.c:958
#, fuzzy, c-format
#| msgid "Don't update symbolic links"
msgid "copy used because symbolic link failed: %s"
msgstr "ä¸æ›´æ–°ç¬¦å·é“¾æŽ¥"
-#: timezone/zic.c:1013 timezone/zic.c:1015
+#: timezone/zic.c:1032 timezone/zic.c:1034
msgid "same rule name in multiple files"
msgstr "多个文件中的相åŒè§„则å"
-#: timezone/zic.c:1056
-msgid "unruly zone"
-msgstr "没有规则的时区"
-
-#: timezone/zic.c:1063
+#: timezone/zic.c:1081
#, c-format
msgid "%s in ruleless zone"
msgstr "%s 在没有规则的节"
-#: timezone/zic.c:1083
+#: timezone/zic.c:1101
msgid "standard input"
msgstr "标准输入"
-#: timezone/zic.c:1088
+#: timezone/zic.c:1106
#, c-format
msgid "%s: Can't open %s: %s\n"
msgstr "%s:无法打开 %s:%s\n"
-#: timezone/zic.c:1099
+#: timezone/zic.c:1117
msgid "line too long"
msgstr "行过长"
-#: timezone/zic.c:1119
+#: timezone/zic.c:1139
msgid "input line of unknown type"
msgstr "未知类型的输入行"
-#: timezone/zic.c:1134
-#, c-format
-msgid "%s: Leap line in non leap seconds file %s"
-msgstr "%s: 闰时设置行出现在ä¸å«é—°ç§’的文件 %s 中"
-
-#: timezone/zic.c:1142 timezone/zic.c:1547 timezone/zic.c:1569
+#: timezone/zic.c:1158 timezone/zic.c:1593 timezone/zic.c:1615
#, c-format
msgid "%s: panic: Invalid l_value %d\n"
msgstr "%s: 严é‡é”™è¯¯: 错误的 l_value %d\n"
-#: timezone/zic.c:1151
+#: timezone/zic.c:1167
msgid "expected continuation line not found"
msgstr "找ä¸åˆ°åº”该出现的续行"
-#: timezone/zic.c:1193 timezone/zic.c:2976
+#: timezone/zic.c:1203
+#, fuzzy
+#| msgid "format '%s' not handled by pre-2015 versions of zic"
+msgid "fractional seconds rejected by pre-2018 versions of zic"
+msgstr "“%sâ€æ ¼å¼æ— æ³•ç”±æ—©äºŽ 2015 å¹´çš„ zic 版本所处ç†"
+
+#: timezone/zic.c:1221 timezone/zic.c:3078
msgid "time overflow"
msgstr "时间溢出"
-#: timezone/zic.c:1198
+#: timezone/zic.c:1227
msgid "values over 24 hours not handled by pre-2007 versions of zic"
msgstr "24 å°æ—¶ä»¥ä¸Šçš„值无法由早于 2007 çš„ zic 版本所处ç†"
-#: timezone/zic.c:1209
-msgid "wrong number of fields on Rule line"
-msgstr "规则行中域的个数错误"
-
-#: timezone/zic.c:1213
-msgid "nameless rule"
-msgstr "æ— å规则"
-
# zic_t r_stdoff; /* offset from standard time */
-#: timezone/zic.c:1218
+#: timezone/zic.c:1245
#, fuzzy
msgid "invalid saved time"
msgstr "无效的ä¿å­˜æ—¶é—´"
-#: timezone/zic.c:1235
+#: timezone/zic.c:1256
+msgid "wrong number of fields on Rule line"
+msgstr "规则行中域的个数错误"
+
+#: timezone/zic.c:1265
+#, fuzzy, c-format
+#| msgid "Invalid numeric gid \"%s\"!"
+msgid "Invalid rule name \"%s\""
+msgstr "无效的 gid 数值 \"%s\"!"
+
+#: timezone/zic.c:1287
msgid "wrong number of fields on Zone line"
msgstr "区域行中域的个数错误"
-#: timezone/zic.c:1240
+#: timezone/zic.c:1292
#, c-format
msgid "\"Zone %s\" line and -l option are mutually exclusive"
msgstr "\"Zone %s\" 行和 -l 选项是互斥的"
-#: timezone/zic.c:1246
+#: timezone/zic.c:1298
#, c-format
msgid "\"Zone %s\" line and -p option are mutually exclusive"
msgstr "\"Zone %s\" 行和 -p 选项是互斥的"
-#: timezone/zic.c:1253
+#: timezone/zic.c:1305
#, fuzzy, c-format
#| msgid "duplicate zone name %s (file \"%s\", line %d)"
msgid "duplicate zone name %s (file \"%s\", line %<PRIdMAX>)"
msgstr "é‡å¤çš„区域å %s (文件“%sâ€ï¼Œè¡Œ %d)"
-#: timezone/zic.c:1267
+#: timezone/zic.c:1319
msgid "wrong number of fields on Zone continuation line"
msgstr "时区接续行的字段数目ä¸å¯¹"
-#: timezone/zic.c:1307
+#: timezone/zic.c:1359
msgid "invalid UT offset"
msgstr "无效的 UT å移é‡"
-#: timezone/zic.c:1311
+#: timezone/zic.c:1363
msgid "invalid abbreviation format"
msgstr "无效的缩略格å¼"
-#: timezone/zic.c:1320
+#: timezone/zic.c:1372
#, c-format
msgid "format '%s' not handled by pre-2015 versions of zic"
msgstr "“%sâ€æ ¼å¼æ— æ³•ç”±æ—©äºŽ 2015 å¹´çš„ zic 版本所处ç†"
-#: timezone/zic.c:1347
+#: timezone/zic.c:1399
msgid "Zone continuation line end time is not after end time of previous line"
msgstr "时区接续行的结æŸæ—¶é—´ä¸åœ¨ä¸Šä¸€è¡Œçš„结æŸæ—¶é—´ä¹‹åŽ"
-#: timezone/zic.c:1374
+#: timezone/zic.c:1426
msgid "wrong number of fields on Leap line"
msgstr "闰时设置行的字段数目错误"
-#: timezone/zic.c:1383
+#: timezone/zic.c:1435
msgid "invalid leaping year"
msgstr "无效的闰年"
-#: timezone/zic.c:1403 timezone/zic.c:1501
+#: timezone/zic.c:1455 timezone/zic.c:1547
msgid "invalid month name"
msgstr "无效的月å称"
-#: timezone/zic.c:1416 timezone/zic.c:1614 timezone/zic.c:1628
+#: timezone/zic.c:1468 timezone/zic.c:1663 timezone/zic.c:1677
msgid "invalid day of month"
msgstr "无效的日"
-#: timezone/zic.c:1421
+#: timezone/zic.c:1473
msgid "time too small"
msgstr "时间太å°"
-#: timezone/zic.c:1425
+#: timezone/zic.c:1477
msgid "time too large"
msgstr "时间过大"
-#: timezone/zic.c:1429 timezone/zic.c:1530
+#: timezone/zic.c:1481 timezone/zic.c:1576
msgid "invalid time of day"
msgstr "无效的时间"
-#: timezone/zic.c:1448
+#: timezone/zic.c:1494
msgid "illegal CORRECTION field on Leap line"
msgstr "在闰时设置行中有ä¸åˆæ³•çš„ CORRECTION 字段"
-#: timezone/zic.c:1453
+#: timezone/zic.c:1499
msgid "illegal Rolling/Stationary field on Leap line"
msgstr "在闰时设置行中有ä¸åˆæ³•çš„ Rolling/Stationary 字段"
-#: timezone/zic.c:1459
-msgid "leap second precedes Big Bang"
+#: timezone/zic.c:1505
+#, fuzzy
+#| msgid "leap second precedes Big Bang"
+msgid "leap second precedes Epoch"
msgstr "闰秒出现在大爆炸之å‰"
-#: timezone/zic.c:1472
+#: timezone/zic.c:1518
msgid "wrong number of fields on Link line"
msgstr "链接行中域的个数错误"
-#: timezone/zic.c:1476
+#: timezone/zic.c:1522
msgid "blank FROM field on Link line"
msgstr "Link 行中空白的 FROM 域"
-#: timezone/zic.c:1551
+#: timezone/zic.c:1597
msgid "invalid starting year"
msgstr "无效的起始年份"
-#: timezone/zic.c:1573
+#: timezone/zic.c:1619
msgid "invalid ending year"
msgstr "无效的终止年份"
-#: timezone/zic.c:1577
+#: timezone/zic.c:1623
msgid "starting year greater than ending year"
msgstr "起始年份大于终止年份"
-#: timezone/zic.c:1584
+#: timezone/zic.c:1630
msgid "typed single year"
msgstr "输入的年分是åŒä¸€å¹´"
-#: timezone/zic.c:1619
+#: timezone/zic.c:1633
+#, c-format
+msgid "year type \"%s\" is obsolete; use \"-\" instead"
+msgstr ""
+
+#: timezone/zic.c:1668
msgid "invalid weekday name"
msgstr "无效的星期å"
-#: timezone/zic.c:1743
+#: timezone/zic.c:1800
#, fuzzy, c-format
#| msgid "pre-2014 clients may mishandle more than 1200 transition times"
msgid "reference clients mishandle more than %d transition times"
msgstr "2014 之å‰çš„客户端å¯èƒ½ä¼šé”™è¯¯å¤„ç†è¶…过 1200 次的改å˜æ¬¡æ•°"
-#: timezone/zic.c:1747
+#: timezone/zic.c:1804
msgid "pre-2014 clients may mishandle more than 1200 transition times"
msgstr "2014 之å‰çš„客户端å¯èƒ½ä¼šé”™è¯¯å¤„ç†è¶…过 1200 次的改å˜æ¬¡æ•°"
-#: timezone/zic.c:1858
+#: timezone/zic.c:1920
#, fuzzy
#| msgid "too many local time types"
msgid "too many transition times"
msgstr "过多的本地时间类型"
-#: timezone/zic.c:2047
-#, c-format
-msgid "%%z UTC offset magnitude exceeds 99:59:59"
+#: timezone/zic.c:2107
+#, fuzzy, c-format
+#| msgid "%%z UTC offset magnitude exceeds 99:59:59"
+msgid "%%z UT offset magnitude exceeds 99:59:59"
msgstr "%%z UTC å移大å°è¶…过了 99:59:59"
-#: timezone/zic.c:2424
+#: timezone/zic.c:2488
msgid "no POSIX environment variable for zone"
msgstr "æ—  POSIX 环境å˜é‡ç”¨äºŽåŒº"
-#: timezone/zic.c:2430
+#: timezone/zic.c:2494
#, c-format
msgid "%s: pre-%d clients may mishandle distant timestamps"
msgstr "%s: %d 之å‰çš„客户端å¯èƒ½ä¼šé”™è¯¯å¤„ç†ä¹…远的时间戳"
-#: timezone/zic.c:2566
+#: timezone/zic.c:2631
msgid "two rules for same instant"
msgstr "为åŒä¸€æ—¶é—´ç‚¹åˆ¶è®¢äº†ä¸¤ç§è§„则"
-#: timezone/zic.c:2627
+#: timezone/zic.c:2696
msgid "can't determine time zone abbreviation to use just after until time"
msgstr "无法决定在结æŸæ—¶é—´ä»¥åŽè¯¥ä½¿ç”¨çš„时区简写"
-#: timezone/zic.c:2725
+#: timezone/zic.c:2785
msgid "too many local time types"
msgstr "过多的本地时间类型"
-#: timezone/zic.c:2729
+#: timezone/zic.c:2789
msgid "UT offset out of range"
msgstr "UTC å移超出范围"
-#: timezone/zic.c:2753
+#: timezone/zic.c:2813
msgid "too many leap seconds"
msgstr "太多闰秒"
-#: timezone/zic.c:2759
-msgid "repeated leap second moment"
-msgstr "é‡å¤çš„闰秒设置"
+#: timezone/zic.c:2844
+msgid "Leap seconds too close together"
+msgstr ""
-#: timezone/zic.c:2830
+#: timezone/zic.c:2891
msgid "Wild result from command execution"
msgstr "命令è¿è¡Œå¯¼è‡´å¥‡æ€ªçš„结果"
-#: timezone/zic.c:2831
+#: timezone/zic.c:2892
#, c-format
msgid "%s: command was '%s', result was %d\n"
msgstr "%s:命令为“%sâ€ï¼Œç»“果为 %d\n"
-#: timezone/zic.c:2961
+#: timezone/zic.c:2998
+#, c-format
+msgid "\"%s\" is undocumented; use \"last%s\" instead"
+msgstr ""
+
+#: timezone/zic.c:3029
+#, c-format
+msgid "\"%s\" is ambiguous in pre-2017c zic"
+msgstr ""
+
+#: timezone/zic.c:3063
msgid "Odd number of quotation marks"
msgstr "奇数个引å·"
-#: timezone/zic.c:3046
+#: timezone/zic.c:3157
msgid "use of 2/29 in non leap-year"
msgstr "在éžé—°å¹´æ—¶ç”¨åˆ° 2/29 æ—¥"
-#: timezone/zic.c:3081
+#: timezone/zic.c:3192
msgid "rule goes past start/end of month; will not work with pre-2004 versions of zic"
msgstr "规则超过开始/结æŸæœˆåˆ†ï¼›å°†æ— æ³•ç”¨äºŽ 2004 年之å‰çš„ zic 版本"
-#: timezone/zic.c:3108
+#: timezone/zic.c:3219
msgid "time zone abbreviation has fewer than 3 characters"
msgstr "时区缩写少于 3 个字æ¯"
-#: timezone/zic.c:3110
+#: timezone/zic.c:3221
msgid "time zone abbreviation has too many characters"
msgstr "时区缩写字æ¯å¤ªå¤š"
-#: timezone/zic.c:3112
+#: timezone/zic.c:3223
msgid "time zone abbreviation differs from POSIX standard"
msgstr "时区缩写与 POSIX 标准ä¸åŒ"
-#: timezone/zic.c:3118
+#: timezone/zic.c:3229
msgid "too many, or too long, time zone abbreviations"
msgstr "过多或过长的时区缩写"
-#: timezone/zic.c:3161
+#: timezone/zic.c:3275
#, c-format
msgid "%s: Can't create directory %s: %s"
msgstr "%s:无法创建目录 %s:%s"
+#~ msgid "cannot open zero fill device"
+#~ msgstr "无法打开零填充设备"
+
#~ msgid "invalid caller"
#~ msgstr "无效的调用者"
+#~ msgid "relocation error"
+#~ msgstr "é‡å®šä½é”™è¯¯"
+
#~ msgid "Character out of range for UTF-8"
#~ msgstr "字符超出 UTF-8 的范围"
@@ -7302,6 +7359,15 @@ msgstr "%s:无法创建目录 %s:%s"
#~ msgid "non-symbolic character value should not be used"
#~ msgstr "ä¸åº”该使用éžç¬¦å·å­—符的值"
+#~ msgid "Cannot set LC_CTYPE to default locale"
+#~ msgstr "无法将 LC_CTYPE 设置为缺çœçš„语区"
+
+#~ msgid "Cannot set LC_MESSAGES to default locale"
+#~ msgstr "无法将 LC_MESSAGES 设置为缺çœçš„语区"
+
+#~ msgid "Cannot set LC_COLLATE to default locale"
+#~ msgstr "无法将 LC_COLLATE 设置为缺çœçš„语区"
+
#~ msgid "cannot set socket to close on exec: %s; disabling paranoia mode"
#~ msgstr "无法设置通信端到关闭于 exec:%s; åœç”¨ paranoia 模å¼"
@@ -7338,15 +7404,24 @@ msgstr "%s:无法创建目录 %s:%s"
#~ "\n"
#~ "将错误通报给 %s。\n"
-#~ msgid "int overflow"
-#~ msgstr "整数溢出"
-
#~ msgid "hard link failed, symbolic link used"
#~ msgstr "硬链接失败,使用符å·é“¾æŽ¥"
#~ msgid "link failed, copy used"
#~ msgstr "链接失败,使用å¤åˆ¶ä»£æ›¿"
+#~ msgid "unruly zone"
+#~ msgstr "没有规则的时区"
+
+#~ msgid "%s: Leap line in non leap seconds file %s"
+#~ msgstr "%s: 闰时设置行出现在ä¸å«é—°ç§’的文件 %s 中"
+
+#~ msgid "nameless rule"
+#~ msgstr "æ— å规则"
+
+#~ msgid "repeated leap second moment"
+#~ msgstr "é‡å¤çš„闰秒设置"
+
#~ msgid "cannot allocate TLS data structures for initial thread"
#~ msgstr "无法é…ç½® TLS æ•°æ®ç»“构用以起始线程"
diff --git a/po/zh_TW.po b/po/zh_TW.po
index ff0d76ca52..fa70c5b4f4 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -1,17 +1,24 @@
# Traditional Chinese Messages for libc.
# Copyright (C) 2011 Free Software Foundation, Inc.
# This file is distributed under the same license as the glibc package.
+# "# #" -> from gnulib
+#
+# # Yip Chi Lap <clyip@cs.hku.hk>, 1998.
+# # Yuan-Chung Cheng <platin@ms.ccafps.khc.edu.tw>, 1998.
+# # Abel Cheung <abelcheung@gmail.com>, 2002.
+# # Pofeng Lee <pofeng@linux.org.tw>, 1998, 2002.
# Tung-Han Hsieh <thhsieh@linux.org.tw>, 2000.
# Yuan-Chung Cheng <platin@ch.ntu.edu.tw>, 2000.
# Wei-Lun Chao <william.chao@ossii.com.tw>, 2005, 2008, 2011.
# Wei-Lun Chao <bluebat@member.fsf.org>, 2012, 2013.
+# pan93412 <pan93412@gmail.com>, 2019.
#
msgid ""
msgstr ""
-"Project-Id-Version: libc 2.17.90.20130724\n"
-"POT-Creation-Date: 2018-07-26 22:19-0400\n"
-"PO-Revision-Date: 2013-09-03 13:39+0800\n"
-"Last-Translator: Wei-Lun Chao <bluebat@member.fsf.org>\n"
+"Project-Id-Version: libc 2.29.9000\n"
+"POT-Creation-Date: 2019-07-18 13:28-0400\n"
+"PO-Revision-Date: 2019-07-25 18:38+0800\n"
+"Last-Translator: pan93412 <pan93412@gmail.com>\n"
"Language-Team: Chinese (traditional) <zh-l10n@linux.org.tw>\n"
"Language: zh_TW\n"
"MIME-Version: 1.0\n"
@@ -19,37 +26,38 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: Poedit 2.2.1\n"
#: argp/argp-help.c:227
#, c-format
msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
-msgstr "%.*s: ARGP_HELP_FMT åƒæ•¸éœ€è¦ä¸€å€‹å€¼"
+msgstr "%.*s:ARGP_HELP_FMT åƒæ•¸éœ€è¦ä¸€å€‹å€¼"
#: argp/argp-help.c:237
#, c-format
msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
-msgstr "%.*s: 未知的 ARGP_HELP_FMT åƒæ•¸"
+msgstr "%.*s:未知 ARGP_HELP_FMT åƒæ•¸"
#: argp/argp-help.c:250
#, c-format
msgid "Garbage in ARGP_HELP_FMT: %s"
-msgstr "ARGP_HELP_FMT 中無用的資訊: %s"
+msgstr "ARGP_HELP_FMT 中的廢棄內容:%s"
#: argp/argp-help.c:1214
msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
-msgstr "é•·é¸é …的必須或å¯é¸ç”¨çš„引數也是相å°æ‡‰çŸ­é¸é …的必須或å¯é¸ç”¨çš„引數。"
+msgstr "é•·é¸é …所使用的åƒæ•¸ï¼Œåœ¨ç›¸å°æ‡‰çš„短é¸é …也必須使用。"
#: argp/argp-help.c:1600
msgid "Usage:"
-msgstr "使用方å¼:"
+msgstr "用法:"
#: argp/argp-help.c:1604
msgid " or: "
-msgstr " 或者: "
+msgstr " 或:"
#: argp/argp-help.c:1616
msgid " [OPTION...]"
-msgstr " [åƒæ•¸â€¦]"
+msgstr " [é¸é ……]"
#: argp/argp-help.c:1643
#, c-format
@@ -59,7 +67,7 @@ msgstr "請試著用 `%s --help' 或 `%s --usage' 來ç²å¾—更多相關訊æ¯ã€‚
#: argp/argp-help.c:1671
#, c-format
msgid "Report bugs to %s.\n"
-msgstr "請將程å¼å•é¡Œå›žå ±è‡³ %s。\n"
+msgstr "è«‹å‘ %s 匯報錯誤。\n"
#: argp/argp-parse.c:101
msgid "Give this help list"
@@ -81,7 +89,7 @@ msgstr "設定程å¼å稱"
#: argp/argp-parse.c:105
msgid "SECS"
-msgstr "秒數"
+msgstr "秒"
#: argp/argp-parse.c:106
msgid "Hang for SECS seconds (default 3600)"
@@ -93,24 +101,25 @@ msgstr "å°å‡ºç¨‹å¼ç‰ˆæœ¬"
#: argp/argp-parse.c:183
msgid "(PROGRAM ERROR) No version known!?"
-msgstr "(程å¼éŒ¯èª¤) 沒有èªå¾—的版本!?"
+msgstr "(程å¼éŒ¯èª¤ï¼‰æ²’有已知版本?ï¼"
#: argp/argp-parse.c:623
#, c-format
msgid "%s: Too many arguments\n"
-msgstr "%s: 太多的引數\n"
+msgstr "%s:éŽå¤šåƒæ•¸\n"
#: argp/argp-parse.c:766
msgid "(PROGRAM ERROR) Option should have been recognized!?"
-msgstr "(程å¼éŒ¯èª¤) é¸é …應該已經å¯è¾¨è­˜!?"
+msgstr "(程å¼éŒ¯èª¤ï¼‰é¸é …應該已被識別?ï¼"
#: assert/assert-perr.c:35
-#, fuzzy, c-format
-#| msgid "%s%s%s:%u: %s%sUnexpected error: %s.\n"
+#, c-format
msgid ""
"%s%s%s:%u: %s%sUnexpected error: %s.\n"
"%n"
-msgstr "%s%s%s:%u: %s%s無法é æ–™çš„錯誤: %s。\n"
+msgstr ""
+"%s%s%s:%u: %s%séžé æœŸéŒ¯èª¤ï¼š%s。\n"
+"%n"
#: assert/assert.c:101
#, c-format
@@ -150,10 +159,10 @@ msgstr ""
"[輸出檔案å稱 [輸入檔案å稱]...]"
#: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:308
-#: elf/pldd.c:252 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
-#: iconv/iconvconfig.c:379 locale/programs/locale.c:275
-#: locale/programs/localedef.c:427 login/programs/pt_chown.c:89
-#: malloc/memusagestat.c:563 nss/getent.c:933 nss/makedb.c:369
+#: elf/pldd.c:247 elf/sln.c:77 elf/sprof.c:372 iconv/iconv_prog.c:405
+#: iconv/iconvconfig.c:379 locale/programs/locale.c:276
+#: locale/programs/localedef.c:437 login/programs/pt_chown.c:89
+#: malloc/memusagestat.c:563 nss/getent.c:953 nss/makedb.c:369
#: posix/getconf.c:503 sysdeps/unix/sysv/linux/lddlibc4.c:61
#, c-format
msgid ""
@@ -164,11 +173,11 @@ msgstr ""
"%s。\n"
#: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64
-#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:268 elf/sotruss.sh:75
+#: elf/ldconfig.c:324 elf/ldd.bash.in:38 elf/pldd.c:263 elf/sotruss.sh:75
#: elf/sprof.c:389 iconv/iconv_prog.c:422 iconv/iconvconfig.c:396
-#: locale/programs/locale.c:292 locale/programs/localedef.c:453
+#: locale/programs/locale.c:293 locale/programs/localedef.c:463
#: login/programs/pt_chown.c:63 malloc/memusage.sh:71
-#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:87 nss/makedb.c:385
+#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:88 nss/makedb.c:385
#: posix/getconf.c:485 sysdeps/unix/sysv/linux/lddlibc4.c:68
#, c-format
msgid ""
@@ -181,14 +190,14 @@ msgstr ""
"售或者é©åˆæŸäº›ç‰¹æ®Šç›®çš„。\n"
#: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68
-#: elf/ldconfig.c:329 elf/pldd.c:273 elf/sprof.c:395 iconv/iconv_prog.c:427
-#: iconv/iconvconfig.c:401 locale/programs/locale.c:297
-#: locale/programs/localedef.c:458 malloc/memusage.sh:75
-#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:92 nss/makedb.c:390
+#: elf/ldconfig.c:329 elf/pldd.c:268 elf/sprof.c:395 iconv/iconv_prog.c:427
+#: iconv/iconvconfig.c:401 locale/programs/locale.c:298
+#: locale/programs/localedef.c:468 malloc/memusage.sh:75
+#: malloc/memusagestat.c:586 nscd/nscd.c:514 nss/getent.c:93 nss/makedb.c:390
#: posix/getconf.c:490
#, c-format
msgid "Written by %s.\n"
-msgstr "作者 %s。\n"
+msgstr "由 %s 編寫。\n"
#: catgets/gencat.c:281
msgid "*standard input*"
@@ -255,21 +264,21 @@ msgstr "無法開啟輸出檔 `%s'"
msgid "invalid escape sequence"
msgstr "無效的跳脫åºåˆ—"
-#: catgets/gencat.c:1209
+#: catgets/gencat.c:1211
msgid "unterminated message"
msgstr "沒有çµå°¾çš„訊æ¯"
-#: catgets/gencat.c:1233
+#: catgets/gencat.c:1235
#, c-format
msgid "while opening old catalog file"
msgstr "在開啟舊的類別檔案時"
-#: catgets/gencat.c:1324
+#: catgets/gencat.c:1326
#, c-format
msgid "conversion modules not available"
msgstr "轉æ›æ¨¡çµ„ä¸å­˜åœ¨"
-#: catgets/gencat.c:1350
+#: catgets/gencat.c:1352
#, c-format
msgid "cannot determine escape character"
msgstr "無法決定跳脫字元"
@@ -396,7 +405,7 @@ msgstr "未知的作業系統"
msgid ", OS ABI: %s %d.%d.%d"
msgstr ", OS ABI: %s %d.%d.%d"
-#: elf/cache.c:163 elf/ldconfig.c:1332
+#: elf/cache.c:163 elf/ldconfig.c:1333
#, c-format
msgid "Can't open cache file %s\n"
msgstr "無法開啟快å–檔 %s\n"
@@ -406,38 +415,38 @@ msgstr "無法開啟快å–檔 %s\n"
msgid "mmap of cache file failed.\n"
msgstr "å¿«å–檔案 mmap 失敗。\n"
-#: elf/cache.c:181 elf/cache.c:195
+#: elf/cache.c:181 elf/cache.c:195 elf/cache.c:205
#, c-format
msgid "File is not a cache file.\n"
msgstr "檔案並éžå¿«å–檔。\n"
-#: elf/cache.c:228 elf/cache.c:238
+#: elf/cache.c:233 elf/cache.c:243
#, c-format
msgid "%d libs found in cache `%s'\n"
msgstr "%d 函å¼åº«åœ¨å¿«å– `%s' 中找到\n"
-#: elf/cache.c:432
+#: elf/cache.c:437
#, c-format
msgid "Can't create temporary cache file %s"
msgstr "無法產生暫時的快å–檔 %s"
-#: elf/cache.c:440 elf/cache.c:450 elf/cache.c:454 elf/cache.c:458
-#: elf/cache.c:468
+#: elf/cache.c:445 elf/cache.c:455 elf/cache.c:459 elf/cache.c:463
+#: elf/cache.c:473
#, c-format
msgid "Writing of cache data failed"
msgstr "寫入快å–資料時發生錯誤"
-#: elf/cache.c:463
+#: elf/cache.c:468
#, c-format
msgid "Changing access rights of %s to %#o failed"
msgstr "更改 %s çš„å­˜å–權é™ç‚º %#o 失敗"
-#: elf/cache.c:472
+#: elf/cache.c:477
#, c-format
msgid "Renaming of %s to %s failed"
msgstr "å°‡ %s 改å為 %s 失敗"
-#: elf/dl-close.c:399 elf/dl-open.c:420
+#: elf/dl-close.c:399 elf/dl-open.c:424
msgid "cannot create scope list"
msgstr "無法建立作用域列表"
@@ -459,10 +468,8 @@ msgid "cannot load auxiliary `%s' because of empty dynamic string token substitu
msgstr "由於空的動態字串字組替æ›è€Œç„¡æ³•è¼‰å…¥å¤–部的 `%s'\n"
#: elf/dl-deps.c:220
-#, fuzzy
-#| msgid "cannot allocate dependency list"
msgid "cannot allocate dependency buffer"
-msgstr "無法é…置相關性列表"
+msgstr "無法分é…ä¾è³´ç·©è¡å€"
#: elf/dl-deps.c:443
msgid "cannot allocate dependency list"
@@ -520,121 +527,121 @@ msgstr "無法建立æœå°‹è·¯å¾‘陣列"
msgid "cannot stat shared object"
msgstr "無法 stat 共用目的檔"
-#: elf/dl-load.c:960
-msgid "cannot open zero fill device"
-msgstr "無法開啟以零填滿的è£ç½®"
-
-#: elf/dl-load.c:1007 elf/dl-load.c:2203
+#: elf/dl-load.c:992 elf/dl-load.c:2198
msgid "cannot create shared object descriptor"
msgstr "無法建立共用目的檔敘述項"
-#: elf/dl-load.c:1026 elf/dl-load.c:1560 elf/dl-load.c:1673
+#: elf/dl-load.c:1011 elf/dl-load.c:1555 elf/dl-load.c:1668
msgid "cannot read file data"
msgstr "無法讀å–檔案資料"
-#: elf/dl-load.c:1072
+#: elf/dl-load.c:1057
msgid "ELF load command alignment not page-aligned"
msgstr "ELF 載入命令å°é½Šä¸¦æ²’æœ‰æŒ‰ç…§è¨˜æ†¶é«”åˆ†é  (page) å°é½Š"
-#: elf/dl-load.c:1079
+#: elf/dl-load.c:1064
msgid "ELF load command address/offset not properly aligned"
msgstr "ELF 載入命令ä½å€/ä½ç§»ä¸¦æ²’有é©ç•¶åœ°å°é½Š"
-#: elf/dl-load.c:1161
-#, fuzzy
-#| msgid "cannot restore segment prot after reloc"
+#: elf/dl-load.c:1146
msgid "cannot process note segment"
-msgstr "在 reloc 之後無法復原 segment prot"
+msgstr "ç„¡æ³•è™•ç† note segment"
-#: elf/dl-load.c:1172
+#: elf/dl-load.c:1157
msgid "object file has no loadable segments"
msgstr "目的檔中沒有å¯è¼‰å…¥çš„å€æ®µ"
-#: elf/dl-load.c:1181 elf/dl-load.c:1652
+#: elf/dl-load.c:1170 elf/dl-load.c:1647
msgid "cannot dynamically load executable"
msgstr "無法動態載入執行檔"
-#: elf/dl-load.c:1202
+#: elf/dl-load.c:1191
msgid "object file has no dynamic section"
msgstr "共用目的檔中沒有動態å€æ®µ"
-#: elf/dl-load.c:1225
+#: elf/dl-load.c:1218
+#, fuzzy
+#| msgid "cannot dynamically load executable"
+msgid "cannot dynamically load position-independent executable"
+msgstr "無法動態載入執行檔"
+
+#: elf/dl-load.c:1220
msgid "shared object cannot be dlopen()ed"
msgstr "共用目的檔無法被 dlopen()"
-#: elf/dl-load.c:1238
+#: elf/dl-load.c:1233
msgid "cannot allocate memory for program header"
msgstr "無法é…置記憶體給程å¼æ¨™é ­å€ä½¿ç”¨"
-#: elf/dl-load.c:1271 elf/dl-load.h:130
+#: elf/dl-load.c:1266 elf/dl-load.h:130
msgid "cannot change memory protections"
msgstr "無法改變記憶體ä¿è­·ç‹€æ…‹"
-#: elf/dl-load.c:1291
+#: elf/dl-load.c:1286
msgid "cannot enable executable stack as shared object requires"
msgstr "無法開啟å¯åŸ·è¡Œå †ç–Šåšç‚ºå…±ç”¨ç›®çš„檔"
-#: elf/dl-load.c:1304
+#: elf/dl-load.c:1299
msgid "cannot close file descriptor"
msgstr "無法關閉檔案æ述符號"
-#: elf/dl-load.c:1560
+#: elf/dl-load.c:1555
msgid "file too short"
msgstr "檔案太å°"
-#: elf/dl-load.c:1595
+#: elf/dl-load.c:1590
msgid "invalid ELF header"
msgstr "無效的 ELF 標頭"
-#: elf/dl-load.c:1607
+#: elf/dl-load.c:1602
msgid "ELF file data encoding not big-endian"
msgstr "ELF 檔資料編碼並éžå¤§å°¾åº"
-#: elf/dl-load.c:1609
+#: elf/dl-load.c:1604
msgid "ELF file data encoding not little-endian"
msgstr "ELF 檔資料編碼並éžå°å°¾åº"
-#: elf/dl-load.c:1613
+#: elf/dl-load.c:1608
msgid "ELF file version ident does not match current one"
msgstr "ELF 檔版本 ident ä¸ç¬¦åˆç›®å‰æ‰€ä½¿ç”¨çš„"
-#: elf/dl-load.c:1617
+#: elf/dl-load.c:1612
msgid "ELF file OS ABI invalid"
msgstr "ELF 檔 OS ABI 版本ä¸é©ç”¨"
-#: elf/dl-load.c:1620
+#: elf/dl-load.c:1615
msgid "ELF file ABI version invalid"
msgstr "ELF 檔 ABI 版本ä¸é©ç”¨"
-#: elf/dl-load.c:1623
+#: elf/dl-load.c:1618
msgid "nonzero padding in e_ident"
msgstr "在 e_ident 中填補éžé›¶å€¼"
-#: elf/dl-load.c:1626
+#: elf/dl-load.c:1621
msgid "internal error"
msgstr "內部錯誤"
-#: elf/dl-load.c:1633
+#: elf/dl-load.c:1628
msgid "ELF file version does not match current one"
msgstr "ELF 檔版本ä¸ç¬¦åˆç›®å‰çš„版本"
-#: elf/dl-load.c:1641
+#: elf/dl-load.c:1636
msgid "only ET_DYN and ET_EXEC can be loaded"
msgstr "åªæœ‰ ET_DYN ä»¥åŠ ET_EXEC å¯ä»¥è¼‰å…¥"
-#: elf/dl-load.c:1657
+#: elf/dl-load.c:1652
msgid "ELF file's phentsize not the expected size"
msgstr "ELF 檔的 phentsize 並ä¸æ˜¯é æœŸä¸­çš„大å°"
-#: elf/dl-load.c:2222
+#: elf/dl-load.c:2217
msgid "wrong ELF class: ELFCLASS64"
msgstr "錯誤 ELF 類別:ELFCLASS64"
-#: elf/dl-load.c:2223
+#: elf/dl-load.c:2218
msgid "wrong ELF class: ELFCLASS32"
msgstr "錯誤 ELF 類別:ELFCLASS32"
-#: elf/dl-load.c:2226
+#: elf/dl-load.c:2221
msgid "cannot open shared object file"
msgstr "無法開啟共用目的檔"
@@ -646,11 +653,7 @@ msgstr "從共用目的檔中å°æ˜ å€æ®µå¤±æ•—"
msgid "cannot map zero-fill pages"
msgstr "無法å°æ‡‰ä»¥é›¶å¡«æ»¿çš„分é å€"
-#: elf/dl-lookup.c:835
-msgid "relocation error"
-msgstr "é‡å®šå€éŒ¯èª¤"
-
-#: elf/dl-lookup.c:858
+#: elf/dl-lookup.c:830
msgid "symbol lookup error"
msgstr "符號查找錯誤"
@@ -658,19 +661,19 @@ msgstr "符號查找錯誤"
msgid "cannot extend global scope"
msgstr "無法延展全域變數的作用域"
-#: elf/dl-open.c:470
+#: elf/dl-open.c:474
msgid "TLS generation counter wrapped! Please report this."
msgstr "TLS 產生計數器被轉æ›åŸ·è¡Œï¼ 請報告這個情æ³ã€‚"
-#: elf/dl-open.c:534
+#: elf/dl-open.c:538
msgid "invalid mode for dlopen()"
msgstr "無效的 dlopen() 模å¼"
-#: elf/dl-open.c:551
+#: elf/dl-open.c:555
msgid "no more namespaces available for dlmopen()"
msgstr "無更多命å空間å¯è¦‹æ–¼ dlmopen ()"
-#: elf/dl-open.c:575
+#: elf/dl-open.c:579
msgid "invalid target namespace in dlmopen()"
msgstr "dlmopen() 中的無效目標命å空間"
@@ -678,20 +681,20 @@ msgstr "dlmopen() 中的無效目標命å空間"
msgid "cannot allocate memory in static TLS block"
msgstr "無法在éœæ…‹ TLS å€å¡Šä¸­é…置記憶體"
-#: elf/dl-reloc.c:205
+#: elf/dl-reloc.c:213
msgid "cannot make segment writable for relocation"
msgstr "在é‡æ–°å®šå€ä»¥å¾Œç„¡æ³•å°‡å€æ®µè¨­ç‚ºå¯å¯«å…¥ç‹€æ…‹"
-#: elf/dl-reloc.c:276
+#: elf/dl-reloc.c:272
#, c-format
msgid "%s: out of memory to store relocation results for %s\n"
msgstr "%s: 記憶體ä¸è¶³ä»¥å„²å­˜é‡å®šå€çµæžœç”¨æ–¼ %s\n"
-#: elf/dl-reloc.c:292
+#: elf/dl-reloc.c:288
msgid "cannot restore segment prot after reloc"
msgstr "在 reloc 之後無法復原 segment prot"
-#: elf/dl-reloc.c:323
+#: elf/dl-reloc.c:319
msgid "cannot apply additional memory protection after relocation"
msgstr "é‡å®šå€ä¹‹å¾Œç„¡æ³•å¥—用é¡å¤–記憶體ä¿è­·"
@@ -724,10 +727,8 @@ msgid "Don't build cache"
msgstr "ä¸å»ºç«‹å¿«å–"
#: elf/ldconfig.c:145
-#, fuzzy
-#| msgid "%s is not a symbolic link\n"
msgid "Don't update symbolic links"
-msgstr "%s ä¸æ˜¯ä¸€å€‹ç¬¦è™Ÿé€£æŽ¥æª”\n"
+msgstr "ä¸è¦æ›´æ–°ç¬¦è™Ÿé€£çµ"
#: elf/ldconfig.c:146
msgid "Change to and use ROOT as root directory"
@@ -755,7 +756,7 @@ msgstr "使用 CONF 當作設定檔"
#: elf/ldconfig.c:149
msgid "Only process directories specified on the command line. Don't build cache."
-msgstr "åªè™•ç†åœ¨å‘½ä»¤åˆ—引數中有指定的目錄,ä¸å»ºç«‹å¿«å–檔案。"
+msgstr "åªè™•ç†åœ¨æŒ‡ä»¤åˆ—引數中有指定的目錄,ä¸å»ºç«‹å¿«å–檔案。"
#: elf/ldconfig.c:150
msgid "Manually link individual libraries."
@@ -909,24 +910,24 @@ msgstr "需è¦çµ•å°æª”案å稱用於組態檔案時正在使用 -r"
#: malloc/obstack.c:418 posix/getconf.c:458 posix/getconf.c:697
#, c-format
msgid "memory exhausted"
-msgstr "記憶體耗盡"
+msgstr "記憶體用盡"
-#: elf/ldconfig.c:1233
+#: elf/ldconfig.c:1234
#, c-format
msgid "%s:%u: cannot read directory %s"
msgstr "%s:%u: 無法讀å–目錄 %s"
-#: elf/ldconfig.c:1281
+#: elf/ldconfig.c:1282
#, c-format
msgid "relative path `%s' used to build cache"
msgstr "用來建置快å–的相å°è·¯å¾‘ `%s'"
-#: elf/ldconfig.c:1311
+#: elf/ldconfig.c:1312
#, c-format
msgid "Can't chdir to /"
msgstr "無法變更目錄到 /"
-#: elf/ldconfig.c:1352
+#: elf/ldconfig.c:1353
#, c-format
msgid "Can't open cache file directory %s\n"
msgstr "無法開啟快å–檔案目錄 %s\n"
@@ -996,96 +997,100 @@ msgstr "離開的與ä¸æ˜Žçš„離開代碼"
msgid "error: you do not have read permission for"
msgstr "錯誤:您沒有讀å–許å¯æ¬Šç”¨æ–¼"
-#: elf/pldd-xx.c:105
+#: elf/pldd-xx.c:102
#, c-format
msgid "cannot find program header of process"
msgstr "找ä¸åˆ°è¡Œç¨‹çš„程å¼æ¨™é ­"
-#: elf/pldd-xx.c:110
+#: elf/pldd-xx.c:106
#, c-format
msgid "cannot read program header"
msgstr "無法讀å–程å¼æ¨™é ­"
-#: elf/pldd-xx.c:135
+#: elf/pldd-xx.c:128
#, c-format
msgid "cannot read dynamic section"
msgstr "無法讀å–å‹•æ…‹å€æ®µ"
-#: elf/pldd-xx.c:147
+#: elf/pldd-xx.c:137
#, c-format
msgid "cannot read r_debug"
msgstr "ç„¡æ³•è®€å– r_debug"
-#: elf/pldd-xx.c:167
+#: elf/pldd-xx.c:154
#, c-format
msgid "cannot read program interpreter"
msgstr "無法讀å–程å¼è§£è­¯å™¨"
-#: elf/pldd-xx.c:197
+#: elf/pldd-xx.c:183
#, c-format
msgid "cannot read link map"
msgstr "無法讀å–éˆçµæ˜ å°„"
-#: elf/pldd-xx.c:209
+#: elf/pldd-xx.c:190
#, c-format
msgid "cannot read object name"
msgstr "無法讀å–物件å稱"
-#: elf/pldd-xx.c:219
-#, fuzzy, c-format
-#| msgid "cannot allocate memory for program header"
+#: elf/pldd-xx.c:197
+#, c-format
msgid "cannot allocate buffer for object name"
-msgstr "無法é…置記憶體給程å¼æ¨™é ­å€ä½¿ç”¨"
+msgstr "無法為物件å稱分é…ç·©è¡å€"
-#: elf/pldd.c:64
+#: elf/pldd.c:58
msgid "List dynamic shared objects loaded into process."
msgstr "列出已載入行程中的動態共用物件。"
-#: elf/pldd.c:68
+#: elf/pldd.c:62
msgid "PID"
msgstr "行程識別號"
-#: elf/pldd.c:100
+#: elf/pldd.c:89
#, c-format
msgid "Exactly one parameter with process ID required.\n"
msgstr "需è¦å‰›å¥½ä¸€å€‹é™„有行程識別號的åƒæ•¸ã€‚\n"
-#: elf/pldd.c:112
+#: elf/pldd.c:103
#, c-format
msgid "invalid process ID '%s'"
msgstr "無效的行程識別號 %s"
-#: elf/pldd.c:120
+#: elf/pldd.c:111
#, c-format
msgid "cannot open %s"
msgstr "無法開啟 %s"
-#: elf/pldd.c:152
+#: elf/pldd.c:142
#, c-format
msgid "cannot open %s/task"
msgstr "無法開啟 %s/任務"
-#: elf/pldd.c:155
+#: elf/pldd.c:145
#, c-format
msgid "cannot prepare reading %s/task"
msgstr "ç„¡æ³•æº–å‚™è®€å– %s/任務"
-#: elf/pldd.c:168
+#: elf/pldd.c:158
#, c-format
msgid "invalid thread ID '%s'"
msgstr "無效的執行緒識別號 %s"
-#: elf/pldd.c:179
+#: elf/pldd.c:169
#, c-format
msgid "cannot attach to process %lu"
msgstr "無法附加到行程 %lu"
-#: elf/pldd.c:294
+#: elf/pldd.c:184
+#, fuzzy, c-format
+msgid "no valid %s/task entries"
+msgstr "沒有有效的 %s/作業項目"
+
+#: elf/pldd.c:290
#, c-format
msgid "cannot get information about process %lu"
msgstr "無法ç²å¾—行程 %lu 的相關資訊"
-#: elf/pldd.c:307
+#: elf/pldd.c:303
#, c-format
msgid "process %lu is no ELF program"
msgstr "行程 %lu ä¸¦éž ELF 程å¼"
@@ -1405,7 +1410,7 @@ msgstr "資料:"
msgid "list all known coded character sets"
msgstr "列出所有已知的編碼字元集"
-#: iconv/iconv_prog.c:64 locale/programs/localedef.c:120
+#: iconv/iconv_prog.c:64 locale/programs/localedef.c:124
msgid "Output control:"
msgstr "輸出控制:"
@@ -1414,8 +1419,8 @@ msgid "omit invalid characters from output"
msgstr "çœç•¥ç„¡æ•ˆå­—元的輸出"
#: iconv/iconv_prog.c:66 iconv/iconvconfig.c:128
-#: locale/programs/localedef.c:113 locale/programs/localedef.c:115
-#: locale/programs/localedef.c:117 locale/programs/localedef.c:144
+#: locale/programs/localedef.c:117 locale/programs/localedef.c:119
+#: locale/programs/localedef.c:121 locale/programs/localedef.c:150
#: malloc/memusagestat.c:56
msgid "FILE"
msgstr "檔案"
@@ -1491,14 +1496,6 @@ msgid "unknown iconv() error %d"
msgstr "ä¸æ˜Žçš„ iconv() 錯誤 %d"
#: iconv/iconv_prog.c:786
-#, fuzzy
-#| msgid ""
-#| "The following list contain all the coded character sets known. This does\n"
-#| "not necessarily mean that all combinations of these names can be used for\n"
-#| "the FROM and TO command line parameters. One coded character set can be\n"
-#| "listed with several different names (aliases).\n"
-#| "\n"
-#| " "
msgid ""
"The following list contains all the coded character sets known. This does\n"
"not necessarily mean that all combinations of these names can be used for\n"
@@ -1508,8 +1505,8 @@ msgid ""
" "
msgstr ""
"以下的列表包å«æ‰€æœ‰å·²çŸ¥çš„編碼字集,但這ä¸ä»£è¡¨æ‰€æœ‰çš„字集å稱組åˆçš†å¯ç”¨æ–¼\n"
-"命令列的 \"來æº\" ä»¥åŠ \"目的\" 引數。一個編碼字集å¯ä»¥ç”¨å¹¾å€‹ä¸åŒçš„å稱\n"
-"來表示 (å³ \"匿å\")。\n"
+"指令列的 <來æº> ä»¥åŠ <目的> 引數。一個編碼字集å¯ä»¥ç”¨å¹¾å€‹ä¸åŒçš„å稱\n"
+"來表示 (å³ã€Œåˆ¥åã€)。\n"
"\n"
" "
@@ -1521,7 +1518,7 @@ msgstr "建立快速載入 iconv 模組的設定檔案。"
msgid "[DIR...]"
msgstr "[目錄…]"
-#: iconv/iconvconfig.c:126 locale/programs/localedef.c:123
+#: iconv/iconvconfig.c:126 locale/programs/localedef.c:129
msgid "PATH"
msgstr "路徑"
@@ -1535,7 +1532,7 @@ msgstr "在 FILE 中置放輸出以代替已安è£çš„ä½ç½® (--prefix ä¸å¥—用å
#: iconv/iconvconfig.c:132
msgid "Do not search standard directories, only those on the command line"
-msgstr "ä¸æœå°‹æ¨™æº–目錄,åªæœ‰é‚£äº›åœ¨ä¹‹ä¸Šå‘½ä»¤åˆ—"
+msgstr "ä¸æœå°‹æ¨™æº–目錄,åªæœ‰é‚£äº›åœ¨ä¹‹ä¸ŠæŒ‡ä»¤åˆ—"
#: iconv/iconvconfig.c:299
#, c-format
@@ -1631,10 +1628,8 @@ msgid "Error: .netrc file is readable by others."
msgstr "錯誤: .netrc 檔å¯ä»¥è¢«åˆ¥äººè®€å–"
#: inet/ruserpass.c:180
-#, fuzzy
-#| msgid "Remove password or make file unreadable by others."
msgid "Remove 'password' line or make file unreadable by others."
-msgstr "移除密碼或讓他人無法讀å–檔案"
+msgstr "請移除「passwordã€å¯†ç¢¼è¡Œï¼Œæˆ–讓檔案無法被其他人讀å–。"
#: inet/ruserpass.c:199
#, c-format
@@ -1657,10 +1652,9 @@ msgid "default character map file `%s' not found"
msgstr "找ä¸åˆ°é è¨­çš„字集å°ç…§æª” `%s'"
#: locale/programs/charmap.c:265
-#, fuzzy, c-format
-#| msgid "character map `%s' is not ASCII compatible, locale not ISO C compliant\n"
+#, c-format
msgid "character map `%s' is not ASCII compatible, locale not ISO C compliant [--no-warnings=ascii]"
-msgstr "å­—å…ƒå°æ‡‰ `%s' ä¸æ˜¯ ASCII 相容碼,å€åŸŸåŒ–資料庫ä¸ç¬¦åˆ ISO C\n"
+msgstr "「%sã€å­—元映射ä¸ç›¸å®¹ ASCII,語系ä¸ç¬¦åˆ ISO C çš„è¦ç¯„ [--no-warnings=ascii]"
#: locale/programs/charmap.c:343
#, c-format
@@ -1708,14 +1702,14 @@ msgstr "ä¸æ”¯æ´ä½¿ç”¨ locking 狀態的字元集"
#: locale/programs/charmap.c:503 locale/programs/charmap.c:557
#: locale/programs/charmap.c:589 locale/programs/charmap.c:683
-#: locale/programs/charmap.c:738 locale/programs/charmap.c:779
-#: locale/programs/charmap.c:820
+#: locale/programs/charmap.c:739 locale/programs/charmap.c:780
+#: locale/programs/charmap.c:821
#, c-format
msgid "syntax error in %s definition: %s"
msgstr "定義 %s 的語法錯誤: %s"
#: locale/programs/charmap.c:504 locale/programs/charmap.c:684
-#: locale/programs/charmap.c:780 locale/programs/repertoire.c:229
+#: locale/programs/charmap.c:781 locale/programs/repertoire.c:229
msgid "no symbolic name given"
msgstr "沒有給予符號å稱"
@@ -1731,14 +1725,14 @@ msgstr "字元定義中的ä½å…ƒçµ„太少了"
msgid "too many bytes in character encoding"
msgstr "字元定義中的ä½å…ƒçµ„太多了"
-#: locale/programs/charmap.c:591 locale/programs/charmap.c:739
-#: locale/programs/charmap.c:822 locale/programs/repertoire.c:295
+#: locale/programs/charmap.c:591 locale/programs/charmap.c:740
+#: locale/programs/charmap.c:823 locale/programs/repertoire.c:295
msgid "no symbolic name given for end of range"
msgstr "沒有給此å€çš„最後一個字元符號å稱"
#: locale/programs/charmap.c:615 locale/programs/ld-address.c:524
#: locale/programs/ld-collate.c:2616 locale/programs/ld-collate.c:3774
-#: locale/programs/ld-ctype.c:2117 locale/programs/ld-ctype.c:2829
+#: locale/programs/ld-ctype.c:2118 locale/programs/ld-ctype.c:2830
#: locale/programs/ld-identification.c:397
#: locale/programs/ld-measurement.c:213 locale/programs/ld-messages.c:295
#: locale/programs/ld-monetary.c:748 locale/programs/ld-name.c:262
@@ -1753,58 +1747,58 @@ msgstr "%1$s: 定義並沒有以 `END %1$s' åšç‚ºçµæŸ"
msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
msgstr "åªæœ‰ WIDTH 定義æ‰èƒ½ç›´æŽ¥å¯«åœ¨ CHARMAP 定義之後"
-#: locale/programs/charmap.c:656 locale/programs/charmap.c:719
+#: locale/programs/charmap.c:656 locale/programs/charmap.c:720
#, c-format
msgid "value for %s must be an integer"
msgstr "%s 的值必須是整數æ‰è¡Œ"
-#: locale/programs/charmap.c:847
+#: locale/programs/charmap.c:848
#, c-format
msgid "%s: error in state machine"
msgstr "%s: 狀態機錯誤"
-#: locale/programs/charmap.c:855 locale/programs/ld-address.c:540
+#: locale/programs/charmap.c:856 locale/programs/ld-address.c:540
#: locale/programs/ld-collate.c:2613 locale/programs/ld-collate.c:3967
-#: locale/programs/ld-ctype.c:2114 locale/programs/ld-ctype.c:2846
+#: locale/programs/ld-ctype.c:2115 locale/programs/ld-ctype.c:2847
#: locale/programs/ld-identification.c:413
#: locale/programs/ld-measurement.c:229 locale/programs/ld-messages.c:311
#: locale/programs/ld-monetary.c:764 locale/programs/ld-name.c:278
#: locale/programs/ld-numeric.c:341 locale/programs/ld-paper.c:228
#: locale/programs/ld-telephone.c:292 locale/programs/ld-time.c:990
-#: locale/programs/locfile.c:997 locale/programs/repertoire.c:323
+#: locale/programs/locfile.c:1010 locale/programs/repertoire.c:323
#, c-format
msgid "%s: premature end of file"
msgstr "%s: 未完æˆå·²é”檔案的末尾"
-#: locale/programs/charmap.c:874 locale/programs/charmap.c:885
+#: locale/programs/charmap.c:875 locale/programs/charmap.c:886
#, c-format
msgid "unknown character `%s'"
msgstr "ä¸æ˜Žçš„å­—å…ƒ `%s'"
-#: locale/programs/charmap.c:893
+#: locale/programs/charmap.c:894
#, c-format
msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d"
msgstr "在範åœèµ·å§‹èˆ‡çµæŸçš„ä½å…ƒçµ„åºåˆ—中,ä½å…ƒçµ„的數目並ä¸ä¸€è‡´: %d vs %d"
-#: locale/programs/charmap.c:998 locale/programs/ld-collate.c:2893
+#: locale/programs/charmap.c:999 locale/programs/ld-collate.c:2893
#: locale/programs/repertoire.c:418
msgid "invalid names for character range"
msgstr "無效的字元範åœå稱"
-#: locale/programs/charmap.c:1010 locale/programs/repertoire.c:430
+#: locale/programs/charmap.c:1011 locale/programs/repertoire.c:430
msgid "hexadecimal range format should use only capital characters"
msgstr "在表示å六進ä½çš„範åœæ™‚åªèƒ½ç”¨å¤§å¯«çš„英文字æ¯è¡¨ç¤º"
-#: locale/programs/charmap.c:1028 locale/programs/repertoire.c:448
+#: locale/programs/charmap.c:1029 locale/programs/repertoire.c:448
#, c-format
msgid "<%s> and <%s> are invalid names for range"
msgstr "<%s> ä»¥åŠ <%s> 是ä¸é©ç”¨çš„範åœå稱"
-#: locale/programs/charmap.c:1034 locale/programs/repertoire.c:455
+#: locale/programs/charmap.c:1035 locale/programs/repertoire.c:455
msgid "upper limit in range is smaller than lower limit"
msgstr "範åœä¸­ä¸Šé™å°æ–¼ä¸‹é™"
-#: locale/programs/charmap.c:1092
+#: locale/programs/charmap.c:1093
msgid "resulting bytes for range not representable."
msgstr "用來定義範åœçš„ä½å…ƒçµ„無法被表述出來"
@@ -1873,7 +1867,7 @@ msgid "%s: numeric country code `%d' not valid"
msgstr "%s: 國家數字代碼 `%d' 錯誤"
#: locale/programs/ld-address.c:432 locale/programs/ld-address.c:469
-#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2478
+#: locale/programs/ld-address.c:507 locale/programs/ld-ctype.c:2479
#: locale/programs/ld-identification.c:309
#: locale/programs/ld-measurement.c:196 locale/programs/ld-messages.c:264
#: locale/programs/ld-monetary.c:503 locale/programs/ld-monetary.c:538
@@ -1896,7 +1890,7 @@ msgid "%s: unknown character in field `%s'"
msgstr "%s: æœªçŸ¥çš„å­—å…ƒåœ¨æ¬„ä½ `%s' 中"
#: locale/programs/ld-address.c:521 locale/programs/ld-collate.c:3772
-#: locale/programs/ld-ctype.c:2826 locale/programs/ld-identification.c:394
+#: locale/programs/ld-ctype.c:2827 locale/programs/ld-identification.c:394
#: locale/programs/ld-measurement.c:210 locale/programs/ld-messages.c:293
#: locale/programs/ld-monetary.c:746 locale/programs/ld-name.c:260
#: locale/programs/ld-numeric.c:323 locale/programs/ld-paper.c:210
@@ -1909,8 +1903,8 @@ msgstr "%s: ä¸å®Œæ•´çš„ `END' 列"
#: locale/programs/ld-collate.c:602 locale/programs/ld-collate.c:898
#: locale/programs/ld-collate.c:911 locale/programs/ld-collate.c:2582
#: locale/programs/ld-collate.c:2603 locale/programs/ld-collate.c:3957
-#: locale/programs/ld-ctype.c:1846 locale/programs/ld-ctype.c:2104
-#: locale/programs/ld-ctype.c:2676 locale/programs/ld-ctype.c:2837
+#: locale/programs/ld-ctype.c:1847 locale/programs/ld-ctype.c:2105
+#: locale/programs/ld-ctype.c:2677 locale/programs/ld-ctype.c:2838
#: locale/programs/ld-identification.c:404
#: locale/programs/ld-measurement.c:220 locale/programs/ld-messages.c:302
#: locale/programs/ld-monetary.c:755 locale/programs/ld-name.c:269
@@ -2051,8 +2045,7 @@ msgid "%s: nested conditionals not supported"
msgstr "%s: ä¸æ”¯æ´å·¢ç‹€æ¢ä»¶"
#: locale/programs/ld-collate.c:2526
-#, fuzzy, c-format
-#| msgid "%s: more then one 'else'"
+#, c-format
msgid "%s: more than one 'else'"
msgstr "%s: 使用多於一個「elseã€"
@@ -2255,135 +2248,132 @@ msgstr "字集å°ç…§æª” `%s' 已經定義éŽäº†"
msgid "implementation limit: no more than %d character maps allowed"
msgstr "程å¼å¯¦ä½œçš„é™åˆ¶: ä¸èƒ½ä½¿ç”¨è¶…éŽ %d 個字集å°ç…§æª”"
-#: locale/programs/ld-ctype.c:1434 locale/programs/ld-ctype.c:1559
-#: locale/programs/ld-ctype.c:1665 locale/programs/ld-ctype.c:2341
-#: locale/programs/ld-ctype.c:3299
+#: locale/programs/ld-ctype.c:1435 locale/programs/ld-ctype.c:1560
+#: locale/programs/ld-ctype.c:1666 locale/programs/ld-ctype.c:2342
+#: locale/programs/ld-ctype.c:3302
#, c-format
msgid "%s: field `%s' does not contain exactly ten entries"
msgstr "%s: `%s' 欄ä½æ²’有精確包å«å個項目"
-#: locale/programs/ld-ctype.c:1462 locale/programs/ld-ctype.c:2036
+#: locale/programs/ld-ctype.c:1463 locale/programs/ld-ctype.c:2037
#, c-format
msgid "to-value <U%0*X> of range is smaller than from-value <U%0*X>"
msgstr "å€åŸŸå®šç¾©çš„çµå°¾å€¼ <U%0*X> 比起始值 <U%0*X> é‚„è¦å°"
-#: locale/programs/ld-ctype.c:1589
+#: locale/programs/ld-ctype.c:1590
msgid "start and end character sequence of range must have the same length"
msgstr "從起始到çµæŸä¹‹é–“çš„å­—å…ƒåºåˆ—長度跟編碼範åœå¿…須相åŒ"
-#: locale/programs/ld-ctype.c:1596
+#: locale/programs/ld-ctype.c:1597
msgid "to-value character sequence is smaller than from-value sequence"
msgstr "å­—å…ƒåºåˆ—定義的çµå°¾å€¼æ¯”起始值還è¦å°"
-#: locale/programs/ld-ctype.c:1956 locale/programs/ld-ctype.c:2007
+#: locale/programs/ld-ctype.c:1957 locale/programs/ld-ctype.c:2008
msgid "premature end of `translit_ignore' definition"
msgstr "`translit_ignore' 定義沒有按時çµæŸ"
-#: locale/programs/ld-ctype.c:1962 locale/programs/ld-ctype.c:2013
-#: locale/programs/ld-ctype.c:2055
+#: locale/programs/ld-ctype.c:1963 locale/programs/ld-ctype.c:2014
+#: locale/programs/ld-ctype.c:2056
msgid "syntax error"
msgstr "語法錯誤"
-#: locale/programs/ld-ctype.c:2188
+#: locale/programs/ld-ctype.c:2189
#, c-format
msgid "%s: syntax error in definition of new character class"
msgstr "%s: 在定義新字元類別時語法錯誤"
-#: locale/programs/ld-ctype.c:2203
+#: locale/programs/ld-ctype.c:2204
#, c-format
msgid "%s: syntax error in definition of new character map"
msgstr "%s: 在定義新字元å°æ‡‰æ™‚語法錯誤"
-#: locale/programs/ld-ctype.c:2363
+#: locale/programs/ld-ctype.c:2364
msgid "ellipsis range must be marked by two operands of same type"
msgstr "çœç•¥å€åŸŸå¿…須用兩個型別相åŒçš„é‹ç®—元標示出來"
-#: locale/programs/ld-ctype.c:2372
+#: locale/programs/ld-ctype.c:2373
msgid "with symbolic name range values the absolute ellipsis `...' must not be used"
msgstr "用符號å稱來指定字元編碼範åœæ™‚ä¸å¯ä»¥ç”¨çµ•å°ä½ç½®çš„çœç•¥ç¬¦è™Ÿ `…'"
-#: locale/programs/ld-ctype.c:2387
+#: locale/programs/ld-ctype.c:2388
msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'"
msgstr "用來指定 UCS 值的範åœæ™‚得用å六進ä½è¡¨ç¤ºçš„çœç•¥ç¬¦è™Ÿ `..'"
-#: locale/programs/ld-ctype.c:2401
+#: locale/programs/ld-ctype.c:2402
msgid "with character code range values one must use the absolute ellipsis `...'"
msgstr "用來指定字元編碼值的範åœæ™‚得用絕å°ä½ç½®çš„çœç•¥ç¬¦è™Ÿ `…'"
-#: locale/programs/ld-ctype.c:2552
+#: locale/programs/ld-ctype.c:2553
#, c-format
msgid "duplicated definition for mapping `%s'"
msgstr "å°æ˜  `%s' 的定義é‡è¤‡äº†"
-#: locale/programs/ld-ctype.c:2638 locale/programs/ld-ctype.c:2782
+#: locale/programs/ld-ctype.c:2639 locale/programs/ld-ctype.c:2783
#, c-format
msgid "%s: `translit_start' section does not end with `translit_end'"
msgstr "%s: `translit_start' å°ç¯€ä¸¦æ²’有以 `translit_end' åšç‚ºçµæŸ"
-#: locale/programs/ld-ctype.c:2733
+#: locale/programs/ld-ctype.c:2734
#, c-format
msgid "%s: duplicate `default_missing' definition"
msgstr "%s: é‡è¤‡çš„ `default_missing' 定義"
-#: locale/programs/ld-ctype.c:2738
+#: locale/programs/ld-ctype.c:2739
msgid "previous definition was here"
msgstr "å…ˆå‰çš„設定在此"
-#: locale/programs/ld-ctype.c:2760
+#: locale/programs/ld-ctype.c:2761
#, c-format
msgid "%s: no representable `default_missing' definition found"
msgstr "%s: 找ä¸åˆ°å¯è¡¨ç¤ºç‚º `default_missing' 的定義"
-#: locale/programs/ld-ctype.c:2877 locale/programs/ld-ctype.c:2973
-#: locale/programs/ld-ctype.c:2992 locale/programs/ld-ctype.c:3012
-#: locale/programs/ld-ctype.c:3032 locale/programs/ld-ctype.c:3052
-#: locale/programs/ld-ctype.c:3072 locale/programs/ld-ctype.c:3111
-#: locale/programs/ld-ctype.c:3131 locale/programs/ld-ctype.c:3195
-#: locale/programs/ld-ctype.c:3236 locale/programs/ld-ctype.c:3259
+#: locale/programs/ld-ctype.c:2878 locale/programs/ld-ctype.c:2974
+#: locale/programs/ld-ctype.c:2993 locale/programs/ld-ctype.c:3013
+#: locale/programs/ld-ctype.c:3033 locale/programs/ld-ctype.c:3053
+#: locale/programs/ld-ctype.c:3073 locale/programs/ld-ctype.c:3112
+#: locale/programs/ld-ctype.c:3132 locale/programs/ld-ctype.c:3198
+#: locale/programs/ld-ctype.c:3239 locale/programs/ld-ctype.c:3262
#, c-format
msgid "%s: character `%s' not defined while needed as default value"
msgstr "%s: å­—å…ƒ `%s' 沒有定義,但它是必需的é è¨­å€¼"
-#: locale/programs/ld-ctype.c:2882 locale/programs/ld-ctype.c:2978
-#: locale/programs/ld-ctype.c:2997 locale/programs/ld-ctype.c:3017
-#: locale/programs/ld-ctype.c:3037 locale/programs/ld-ctype.c:3057
-#: locale/programs/ld-ctype.c:3077 locale/programs/ld-ctype.c:3116
-#: locale/programs/ld-ctype.c:3136 locale/programs/ld-ctype.c:3200
+#: locale/programs/ld-ctype.c:2883 locale/programs/ld-ctype.c:2979
+#: locale/programs/ld-ctype.c:2998 locale/programs/ld-ctype.c:3018
+#: locale/programs/ld-ctype.c:3038 locale/programs/ld-ctype.c:3058
+#: locale/programs/ld-ctype.c:3078 locale/programs/ld-ctype.c:3117
+#: locale/programs/ld-ctype.c:3137 locale/programs/ld-ctype.c:3203
#, c-format
msgid "%s: character `%s' in charmap not representable with one byte"
msgstr "%s: 字集å°ç…§è¡¨ä¸­çš„å­—å…ƒ `%s' 無法表示為單一ä½å…ƒçµ„"
-#: locale/programs/ld-ctype.c:3242 locale/programs/ld-ctype.c:3265
+#: locale/programs/ld-ctype.c:3245 locale/programs/ld-ctype.c:3268
#, c-format
msgid "%s: character `%s' needed as default value not representable with one byte"
msgstr "%s: åšç‚ºé è¨­å€¼æ‰€éœ€çš„å­—å…ƒ `%s' 無法表示為單一ä½å…ƒçµ„"
-#: locale/programs/ld-ctype.c:3321
+#: locale/programs/ld-ctype.c:3324
msgid "no output digits defined and none of the standard names in the charmap"
msgstr "沒有定義輸出數字,在字集å°ç…§æª”中也找ä¸åˆ°ç›¸ç¬¦çš„標準å稱"
-#: locale/programs/ld-ctype.c:3570
+#: locale/programs/ld-ctype.c:3573
#, c-format
msgid "%s: transliteration data from locale `%s' not available"
msgstr "%s: 語å€è³‡æ–™`%s' 的音譯資料ä¸å­˜åœ¨"
-#: locale/programs/ld-ctype.c:3669
-#, fuzzy, c-format
-#| msgid "%s: table for class \"%s\": %lu bytes\n"
+#: locale/programs/ld-ctype.c:3672
+#, c-format
msgid "%s: table for class \"%s\": %lu bytes"
-msgstr "%s: 類別 \"%s\" 表格: %lu ä½å…ƒçµ„\n"
+msgstr "%s: 類別「%sã€è¡¨æ ¼: %lu ä½å…ƒçµ„"
-#: locale/programs/ld-ctype.c:3733
-#, fuzzy, c-format
-#| msgid "%s: table for map \"%s\": %lu bytes\n"
+#: locale/programs/ld-ctype.c:3736
+#, c-format
msgid "%s: table for map \"%s\": %lu bytes"
-msgstr "%s: å°æ˜ è¡¨ \"%s\" 表格: %lu ä½å…ƒçµ„\n"
+msgstr "%s: å°ã€Œ%sã€æ˜ å°„的表格: %lu ä½å…ƒçµ„"
-#: locale/programs/ld-ctype.c:3857
-#, fuzzy, c-format
-#| msgid "%s: table for width: %lu bytes\n"
+#: locale/programs/ld-ctype.c:3860
+#, c-format
msgid "%s: table for width: %lu bytes"
-msgstr "%s: 寬度表格: %lu ä½å…ƒçµ„\n"
+msgstr "%s: 用於下述寬度的表格: %lu ä½å…ƒçµ„"
#: locale/programs/ld-identification.c:173
#, c-format
@@ -2391,10 +2381,9 @@ msgid "%s: no identification for category `%s'"
msgstr "%s: 類別 `%s' 沒有èªè­‰"
#: locale/programs/ld-identification.c:197
-#, fuzzy, c-format
-#| msgid "%s: no identification for category `%s'"
+#, c-format
msgid "%s: unknown standard `%s' for category `%s'"
-msgstr "%s: 類別 `%s' 沒有èªè­‰"
+msgstr "%1$s: 「%3$sã€åˆ†é¡žçš„「%2$sã€æ¨™æº–未知"
#: locale/programs/ld-identification.c:380
#, c-format
@@ -2428,10 +2417,9 @@ msgid "%s: value of field `int_curr_symbol' has wrong length"
msgstr "%s: æ¬„ä½ `int_curr_symbol' 值的長度錯誤"
#: locale/programs/ld-monetary.c:245
-#, fuzzy, c-format
-#| msgid "%s: value of field `int_curr_symbol' does not correspond to a valid name in ISO 4217"
+#, c-format
msgid "%s: value of field `int_curr_symbol' does not correspond to a valid name in ISO 4217 [--no-warnings=intcurrsym]"
-msgstr "%s: æ¬„ä½ `int_curr_symbol' 值並ä¸æ˜¯ ISO 4217 中åˆæ³•çš„å稱"
+msgstr "%s: 欄ä½ã€Œint_curr_symbolã€çš„值並ä¸æ˜¯ ISO 4217 中åˆæ³•çš„å稱 [--no-warnings=intcurrsym]"
#: locale/programs/ld-monetary.c:293 locale/programs/ld-monetary.c:322
#, c-format
@@ -2622,122 +2610,114 @@ msgstr ""
"å稱\n"
"[-a|-m]"
-#: locale/programs/locale.c:190
+#: locale/programs/locale.c:522
#, c-format
-msgid "Cannot set LC_CTYPE to default locale"
-msgstr "無法將 LC_CTYPE 設置為é è¨­çš„語å€"
-
-#: locale/programs/locale.c:192
-#, c-format
-msgid "Cannot set LC_MESSAGES to default locale"
-msgstr "無法將 LC_MESSAGES 設置為é è¨­çš„語å€"
-
-#: locale/programs/locale.c:205
-#, c-format
-msgid "Cannot set LC_COLLATE to default locale"
-msgstr "無法將 LC_COLLATE 設置為é è¨­çš„語å€"
+msgid "while preparing output"
+msgstr "在準備輸出時"
-#: locale/programs/locale.c:221
+#: locale/programs/locale.c:998
#, c-format
-msgid "Cannot set LC_ALL to default locale"
-msgstr "無法將 LC_ALL 設置為é è¨­çš„語å€"
+msgid "Cannot set %s to default locale"
+msgstr "無法將 %s 設æˆé è¨­èªžå€"
-#: locale/programs/locale.c:521
+#: locale/programs/locale.c:1096
#, c-format
-msgid "while preparing output"
-msgstr "在準備輸出時"
+msgid "warning: The LOCPATH variable is set to \"%s\"\n"
+msgstr "警告:LOCPATH 變數已設æˆã€Œ%sã€\n"
-#: locale/programs/localedef.c:112
+#: locale/programs/localedef.c:116
msgid "Input Files:"
msgstr "輸入檔:"
-#: locale/programs/localedef.c:114
+#: locale/programs/localedef.c:118
msgid "Symbolic character names defined in FILE"
msgstr "符號字元的å稱定義在檔案 FILE 中"
-#: locale/programs/localedef.c:116
+#: locale/programs/localedef.c:120
msgid "Source definitions are found in FILE"
msgstr "原始資料定義在檔案 FILE 中"
-#: locale/programs/localedef.c:118
+#: locale/programs/localedef.c:122
msgid "FILE contains mapping from symbolic names to UCS4 values"
msgstr "檔案 FILE å…§å«ç¬¦è™Ÿå與 UCS4 編碼之間的å°æ˜ "
-#: locale/programs/localedef.c:122
+#: locale/programs/localedef.c:126
msgid "Create output even if warning messages were issued"
msgstr "產生輸出å³ä½¿æ˜¯æœ‰è­¦å‘Šè¨Šæ¯"
-#: locale/programs/localedef.c:123
+#: locale/programs/localedef.c:128
+msgid "Do not create hard links between installed locales"
+msgstr "ä¸è¦åœ¨å®‰è£çš„語系之間建立實際連çµ"
+
+#: locale/programs/localedef.c:129
msgid "Optional output file prefix"
msgstr "å¯æœ‰å¯ç„¡çš„輸出檔路徑"
-#: locale/programs/localedef.c:124
+#: locale/programs/localedef.c:130
msgid "Strictly conform to POSIX"
msgstr "åš´æ ¼éµå¾ž POSIX"
-#: locale/programs/localedef.c:126
+#: locale/programs/localedef.c:132
msgid "Suppress warnings and information messages"
msgstr "忽略警告與æ示訊æ¯"
-#: locale/programs/localedef.c:127
+#: locale/programs/localedef.c:133
msgid "Print more messages"
msgstr "å°å‡ºæ›´å¤šçš„訊æ¯"
-#: locale/programs/localedef.c:128 locale/programs/localedef.c:131
-#, fuzzy
-#| msgid "warning: "
+#: locale/programs/localedef.c:134 locale/programs/localedef.c:137
msgid "<warnings>"
-msgstr "警告: "
+msgstr "<警告>"
-#: locale/programs/localedef.c:129
+#: locale/programs/localedef.c:135
msgid "Comma-separated list of warnings to disable; supported warnings are: ascii, intcurrsym"
-msgstr ""
+msgstr "è¦åœç”¨çš„警告(使用逗號分隔);支æ´çš„警告有:ascii, intcurrsym"
-#: locale/programs/localedef.c:132
+#: locale/programs/localedef.c:138
msgid "Comma-separated list of warnings to enable; supported warnings are: ascii, intcurrsym"
-msgstr ""
+msgstr "è¦å•Ÿç”¨çš„警告(使用逗號分隔);支æ´çš„警告有:ascii, intcurrsym"
-#: locale/programs/localedef.c:135
+#: locale/programs/localedef.c:141
msgid "Archive control:"
msgstr "ä¿å­˜æª”控制:"
-#: locale/programs/localedef.c:137
+#: locale/programs/localedef.c:143
msgid "Don't add new data to archive"
msgstr "ä¸è¦åŠ å…¥æ–°è³‡æ–™åˆ°ä¿å­˜æª”"
-#: locale/programs/localedef.c:139
+#: locale/programs/localedef.c:145
msgid "Add locales named by parameters to archive"
msgstr "藉由åƒæ•¸åŠ å…¥èªžå€å稱到ä¿å­˜æª”"
-#: locale/programs/localedef.c:140
+#: locale/programs/localedef.c:146
msgid "Replace existing archive content"
msgstr "替æ›å·²æœ‰çš„ä¿å­˜æª”內容"
-#: locale/programs/localedef.c:142
+#: locale/programs/localedef.c:148
msgid "Remove locales named by parameters from archive"
msgstr "藉由åƒæ•¸å¾žä¿å­˜æª”中刪除語å€å稱"
-#: locale/programs/localedef.c:143
+#: locale/programs/localedef.c:149
msgid "List content of archive"
msgstr "列出ä¿å­˜æª”的內容"
-#: locale/programs/localedef.c:145
+#: locale/programs/localedef.c:151
msgid "locale.alias file to consult when making archive"
msgstr "製作ä¿å­˜æª”時查閱 locale.alias 檔案"
-#: locale/programs/localedef.c:147
+#: locale/programs/localedef.c:153
msgid "Generate little-endian output"
-msgstr ""
+msgstr "產生å°ç«¯åºè¼¸å‡º"
-#: locale/programs/localedef.c:149
+#: locale/programs/localedef.c:155
msgid "Generate big-endian output"
-msgstr ""
+msgstr "產生大端åºè¼¸å‡º"
-#: locale/programs/localedef.c:154
+#: locale/programs/localedef.c:160
msgid "Compile locale specification"
msgstr "編譯語å€è³‡æ–™è¦æ ¼"
-#: locale/programs/localedef.c:157
+#: locale/programs/localedef.c:163
msgid ""
"NAME\n"
"[--add-to-archive|--delete-from-archive] FILE...\n"
@@ -2747,33 +2727,31 @@ msgstr ""
"[--add-to-archive|--delete-from-archive] 檔案...\n"
"--list-archive [檔案]"
-#: locale/programs/localedef.c:232
+#: locale/programs/localedef.c:238
#, c-format
msgid "cannot create directory for output files"
msgstr "無法為輸出檔建立目錄"
-#: locale/programs/localedef.c:243
+#: locale/programs/localedef.c:249
msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
msgstr "åš´é‡éŒ¯èª¤: 系統沒有定義 `_POSIX2_LOCALEDEF'"
-#: locale/programs/localedef.c:257 locale/programs/localedef.c:273
-#: locale/programs/localedef.c:663 locale/programs/localedef.c:683
+#: locale/programs/localedef.c:263 locale/programs/localedef.c:279
+#: locale/programs/localedef.c:673 locale/programs/localedef.c:693
#, c-format
msgid "cannot open locale definition file `%s'"
msgstr "無法開啟語å€è³‡æ–™å®šç¾©æª” `%s'"
-#: locale/programs/localedef.c:297
+#: locale/programs/localedef.c:303
#, c-format
msgid "cannot write output files to `%s'"
msgstr "無法將輸出檔案寫入 `%s'"
-#: locale/programs/localedef.c:303
-#, fuzzy
-#| msgid "no output file produced because warnings were issued"
+#: locale/programs/localedef.c:309
msgid "no output file produced because errors were issued"
-msgstr "因為發出éŽè­¦å‘Šè¨Šæ¯ï¼Œæ‰€ä»¥æ²’有製造任何輸出檔"
+msgstr "因為發出éŽéŒ¯èª¤è¨Šæ¯ï¼Œæ‰€ä»¥æ²’有產生出任何輸出檔"
-#: locale/programs/localedef.c:431
+#: locale/programs/localedef.c:441
#, c-format
msgid ""
"System's directory for character maps : %s\n"
@@ -2786,11 +2764,11 @@ msgstr ""
"\t\t 語å€è·¯å¾‘ :%s\n"
"%s"
-#: locale/programs/localedef.c:631
+#: locale/programs/localedef.c:641
msgid "circular dependencies between locale definitions"
msgstr "有語å€è³‡æ–™åœ¨å®šç¾©æ™‚發生循環相關的情æ³"
-#: locale/programs/localedef.c:637
+#: locale/programs/localedef.c:647
#, c-format
msgid "cannot add already read locale `%s' a second time"
msgstr " `%s' 語å€è³‡æ–™å·²ç¶“用éŽï¼Œä¸èƒ½é‡è¤‡åŠ å…¥"
@@ -2946,24 +2924,24 @@ msgstr "無法開啟輸出檔 `%s' 供類別 `%s' 使用"
msgid "failure while writing data for category `%s'"
msgstr "正在為類別 `%s' 寫入資料時發生錯誤"
-#: locale/programs/locfile.c:917
+#: locale/programs/locfile.c:930
#, c-format
msgid "cannot create output file `%s' for category `%s'"
msgstr "無法建立輸出檔 `%s' 供類別 `%s' 使用"
-#: locale/programs/locfile.c:953
+#: locale/programs/locfile.c:966
msgid "expecting string argument for `copy'"
msgstr "`copy' 的引數應該是字串æ‰å°"
-#: locale/programs/locfile.c:957
+#: locale/programs/locfile.c:970
msgid "locale name should consist only of portable characters"
msgstr "語å€è³‡æ–™çš„å稱應該以常用字元組æˆ"
-#: locale/programs/locfile.c:976
+#: locale/programs/locfile.c:989
msgid "no other keyword shall be specified when `copy' is used"
msgstr "使用 `copy' 的時候ä¸æ‡‰è©²å†ç”¨åˆ°ä»»ä½•å…¶ä»–çš„é—œéµå­—了"
-#: locale/programs/locfile.c:990
+#: locale/programs/locfile.c:1003
#, c-format
msgid "`%1$s' definition does not end with `END %1$s'"
msgstr "`%1$s' 定義沒有以 `END %1$s' çµæŸ"
@@ -2990,7 +2968,7 @@ msgstr "找ä¸åˆ°ç·¨ç¢¼å°æ˜ æª” `%s'"
#: login/programs/pt_chown.c:79
#, c-format
msgid "Set the owner, group and access permission of the slave pseudo terminal corresponding to the master pseudo terminal passed on file descriptor `%d'. This is the helper program for the `grantpt' function. It is not intended to be run directly from the command line.\n"
-msgstr "設定æ“有者ã€ç¾¤çµ„和存å–許å¯çš„從屬 pseudo 終端機相應到主 pseudo 終端機傳éžæ–¼æª”案æ述符號「%dã€ã€‚ 這是輔助程å¼ç¨‹å¼ç”¨æ–¼ã€Œgrantptã€å‡½å¼ã€‚ 它並未é æƒ³çš„為é‹è¡Œç›´æŽ¥çš„地從命令列。\n"
+msgstr "設定æ“有者ã€ç¾¤çµ„和存å–許å¯çš„從屬 pseudo 終端機相應到主 pseudo 終端機傳éžæ–¼æª”案æ述符號「%dã€ã€‚ 這是輔助程å¼ç¨‹å¼ç”¨æ–¼ã€Œgrantptã€å‡½å¼ã€‚ 它並未é æƒ³çš„為é‹è¡Œç›´æŽ¥çš„地從指令列。\n"
#: login/programs/pt_chown.c:93
#, c-format
@@ -3156,7 +3134,7 @@ msgstr "資料檔 [輸出檔]"
#: misc/error.c:192
msgid "Unknown system error"
-msgstr "未知的系統錯誤"
+msgstr "未知系統錯誤"
#: nis/nis_callback.c:188
msgid "unable to free arguments"
@@ -3795,12 +3773,12 @@ msgstr "yp_update: 無法轉æ›ä¸»æ©Ÿçš„網路å稱\n"
msgid "yp_update: cannot get server address\n"
msgstr "yp_update: 無法å–得伺æœå™¨ä½å€\n"
-#: nscd/aicache.c:83 nscd/hstcache.c:452
+#: nscd/aicache.c:82 nscd/hstcache.c:452
#, c-format
msgid "Haven't found \"%s\" in hosts cache!"
msgstr "尚未在 hosts å¿«å–中找到 \"%s\"!"
-#: nscd/aicache.c:85 nscd/hstcache.c:454
+#: nscd/aicache.c:84 nscd/hstcache.c:454
#, c-format
msgid "Reloading \"%s\" in hosts cache!"
msgstr "é‡æ–°è¼‰å…¥ã€Œ%sã€æ–¼ä¸»æ©Ÿå¿«å–ï¼"
@@ -3815,15 +3793,14 @@ msgid " (first)"
msgstr " (å…ˆ)"
#: nscd/cache.c:288
-#, fuzzy, c-format
-#| msgid "cannot stat() file `%s': %s"
+#, c-format
msgid "checking for monitored file `%s': %s"
-msgstr "無法 stat() 檔案 `%s': %s"
+msgstr "檢查監控中檔案「%sã€ä¸­ï¼š%s"
#: nscd/cache.c:298
#, c-format
msgid "monitored file `%s` changed (mtime)"
-msgstr ""
+msgstr "監控中檔案「%sã€é­è®Šæ›´ (mtime)"
#: nscd/cache.c:341
#, c-format
@@ -3904,34 +3881,32 @@ msgstr "無法開啟 socket 來接å—連線: %s"
#: nscd/connections.c:861
#, c-format
msgid "disabled inotify-based monitoring for file `%s': %s"
-msgstr ""
+msgstr "å·²åœç”¨ã€Œ%sã€æª”案基於 inotify 的監控:%s"
#: nscd/connections.c:865
#, c-format
msgid "monitoring file `%s` (%d)"
-msgstr ""
+msgstr "正在監控「%sã€æª”案 (%d)"
#: nscd/connections.c:878
#, c-format
msgid "disabled inotify-based monitoring for directory `%s': %s"
-msgstr ""
+msgstr "å·²åœç”¨ã€Œ%sã€ç›®éŒ„基於 inotify 的監控:%s"
#: nscd/connections.c:882
-#, fuzzy, c-format
-#| msgid "Can't open directory %s"
+#, c-format
msgid "monitoring directory `%s` (%d)"
-msgstr "無法開啟目錄 %s"
+msgstr "正在監控「%sã€ç›®éŒ„ (%d)"
#: nscd/connections.c:910
-#, fuzzy, c-format
-#| msgid "register trace file %s for database %s"
+#, c-format
msgid "monitoring file %s for database %s"
-msgstr "註冊追蹤檔案 %s 用於資料庫 %s"
+msgstr "正在監控 %2$s 資料庫的 %1$s 檔案"
#: nscd/connections.c:920
#, c-format
msgid "stat failed for file `%s'; will try again later: %s"
-msgstr ""
+msgstr "å–得「%sã€æª”案的資訊 (stat) 失敗;將會在ç¨å€™é‡æ–°å˜—試:%s"
#: nscd/connections.c:1039
#, c-format
@@ -3968,10 +3943,9 @@ msgid "error getting caller's id: %s"
msgstr "å–得呼å«ç¨‹å¼è­˜åˆ¥ç¢¼æ™‚發生錯誤: %s"
#: nscd/connections.c:1349
-#, fuzzy, c-format
-#| msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode"
+#, c-format
msgid "cannot open /proc/self/cmdline: %m; disabling paranoia mode"
-msgstr "無法開啟/proc/self/cmdline:%s; åœç”¨ paranoia 模å¼"
+msgstr "無法開啟 /proc/self/cmdline: %mï¼›åœç”¨ paranoia 模å¼"
#: nscd/connections.c:1372
#, c-format
@@ -4026,44 +4000,42 @@ msgstr "handle_request: è«‹æ±‚å·²è¢«æŽ¥å— (版本為 %d)"
#: nscd/connections.c:1838
#, c-format
msgid "ignored inotify event for `%s` (file exists)"
-msgstr ""
+msgstr "已忽略「%sã€çš„ inotify 事件(檔案已經存在)"
#: nscd/connections.c:1843
#, c-format
msgid "monitored file `%s` was %s, removing watch"
-msgstr ""
+msgstr "監控中檔案「%sã€åŽŸä¾†æ˜¯ %s,移除觀察"
#: nscd/connections.c:1851 nscd/connections.c:1893
#, c-format
msgid "failed to remove file watch `%s`: %s"
-msgstr ""
+msgstr "無法移除「%sã€æª”案觀察:%s"
#: nscd/connections.c:1866
#, c-format
msgid "monitored file `%s` was written to"
-msgstr ""
+msgstr "監控中檔案「%sã€å·²å¯«å…¥"
#: nscd/connections.c:1890
#, c-format
msgid "monitored parent directory `%s` was %s, removing watch on `%s`"
-msgstr ""
+msgstr "監控中上層目錄「%sã€åŽŸä¾†æ˜¯ %s,移除「%sã€ä¸Šçš„觀察"
#: nscd/connections.c:1916
#, c-format
msgid "monitored file `%s` was %s, adding watch"
-msgstr ""
+msgstr "監控中檔案「%sã€åŽŸä¾†æ˜¯ %s,新增觀察"
#: nscd/connections.c:1928
-#, fuzzy, c-format
-#| msgid "failed to load shared object `%s'"
+#, c-format
msgid "failed to add file watch `%s`: %s"
-msgstr "開啟共用目的檔 `%s' 失敗"
+msgstr "無法新增「%sã€æª”案觀察:%s"
#: nscd/connections.c:2106 nscd/connections.c:2271
-#, fuzzy, c-format
-#| msgid "disabled inotify after read error %d"
+#, c-format
msgid "disabled inotify-based monitoring after read error %d"
-msgstr "è®€å– %d 錯誤之後已åœç”¨ inotify"
+msgstr "在發生讀å–錯誤 %d 後,已åœç”¨åŸºæ–¼ inotify 的監控"
#: nscd/connections.c:2386
msgid "could not initialize conditional variable"
@@ -4127,22 +4099,22 @@ msgstr "在 %2$s å¿«å–中 %1$zu ä½å…ƒçµ„å¯ç”¨"
msgid "no more memory for database '%s'"
msgstr "無記憶體å¯ç”¨æ–¼è³‡æ–™åº«ã€Œ%sã€"
-#: nscd/netgroupcache.c:121
+#: nscd/netgroupcache.c:122
#, c-format
msgid "Haven't found \"%s\" in netgroup cache!"
msgstr "尚未在網路群組快å–中找到「%sã€ï¼"
-#: nscd/netgroupcache.c:123
+#: nscd/netgroupcache.c:124
#, c-format
msgid "Reloading \"%s\" in netgroup cache!"
msgstr "é‡æ–°åœ¨ç¶²è·¯ç¾¤çµ„å¿«å–中載入「%sã€ï¼"
-#: nscd/netgroupcache.c:469
+#: nscd/netgroupcache.c:470
#, c-format
msgid "Haven't found \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr "尚未在網路群組快å–中找到「%s (%s,%s,%s)ã€ï¼"
-#: nscd/netgroupcache.c:472
+#: nscd/netgroupcache.c:473
#, c-format
msgid "Reloading \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr "é‡æ–°åœ¨ç¶²è·¯ç¾¤çµ„å¿«å–中載入「%s (%s,%s,%s)ã€ï¼"
@@ -4195,7 +4167,7 @@ msgstr "å°ä¸åŒä½¿ç”¨è€…使用ä¸åŒçš„å¿«å–檔案"
msgid "Name Service Cache Daemon."
msgstr "網域å稱快å–ç²¾éˆ"
-#: nscd/nscd.c:155 nss/getent.c:967 nss/makedb.c:206
+#: nscd/nscd.c:155 nss/getent.c:987 nss/makedb.c:206
#, c-format
msgid "wrong number of arguments"
msgstr "åƒæ•¸æ•¸ç›®ä¸å°"
@@ -4211,10 +4183,9 @@ msgid "already running"
msgstr "已在執行"
#: nscd/nscd.c:194
-#, fuzzy, c-format
-#| msgid "cannot create directory for output files"
+#, c-format
msgid "cannot create a pipe to talk to the child"
-msgstr "無法為輸出檔建立目錄"
+msgstr "無法建立與å­ç¨‹åºé€šè¨Šçš„管é“"
#: nscd/nscd.c:198
#, c-format
@@ -4260,11 +4231,7 @@ msgid "secure services not implemented anymore"
msgstr "安全æœå‹™ä¸å†å¯¦ä½œ"
#: nscd/nscd.c:485
-#, fuzzy, c-format
-#| msgid ""
-#| "\n"
-#| "For bug reporting instructions, please see:\n"
-#| "%s.\n"
+#, c-format
msgid ""
"Supported tables:\n"
"%s\n"
@@ -4272,26 +4239,27 @@ msgid ""
"For bug reporting instructions, please see:\n"
"%s.\n"
msgstr ""
+"支æ´çš„表格:\n"
+"%s\n"
"\n"
-"è¦çŸ¥é“錯誤報告指令,請åƒçœ‹ï¼š\n"
+"è‹¥è¦å–得臭蟲回報指引,請åƒé–±ï¼š\n"
"%s。\n"
+"\n"
#: nscd/nscd.c:635
-#, fuzzy, c-format
-#| msgid "lstat failed"
+#, c-format
msgid "'wait' failed\n"
-msgstr "lstat 失敗"
+msgstr "'wait' 失敗\n"
#: nscd/nscd.c:642
#, c-format
msgid "child exited with status %d\n"
-msgstr ""
+msgstr "å­ç¨‹åºå·²çµæŸï¼Œå›žå‚³ç¢¼ï¼š%d\n"
#: nscd/nscd.c:647
-#, fuzzy, c-format
-#| msgid "Interrupted by a signal"
+#, c-format
msgid "child terminated by signal %d\n"
-msgstr "由訊號所中斷"
+msgstr "å­ç¨‹åºè¢« %d 信號終止\n"
#: nscd/nscd_conf.c:54
#, c-format
@@ -4308,27 +4276,27 @@ msgstr "解æžéŒ¯èª¤: %s"
msgid "Must specify user name for server-user option"
msgstr "必須為伺æœå™¨ä½¿ç”¨è€…é¸é …指定使用者å稱"
-#: nscd/nscd_conf.c:198
+#: nscd/nscd_conf.c:201
#, c-format
msgid "Must specify user name for stat-user option"
msgstr "必須為 stat 使用者é¸é …指定使用者å稱"
-#: nscd/nscd_conf.c:255
+#: nscd/nscd_conf.c:259
#, c-format
msgid "Must specify value for restart-interval option"
msgstr "必須指定用於 restart-interval é¸é …的值"
-#: nscd/nscd_conf.c:269
+#: nscd/nscd_conf.c:273
#, c-format
msgid "Unknown option: %s %s %s"
msgstr "未知的é¸é …: %s %s %s"
-#: nscd/nscd_conf.c:282
+#: nscd/nscd_conf.c:286
#, c-format
msgid "cannot get current working directory: %s; disabling paranoia mode"
msgstr "無法å–å¾—ç›®å‰çš„工作目錄:%s; åœç”¨ paranoia 模å¼"
-#: nscd/nscd_conf.c:302
+#: nscd/nscd_conf.c:306
#, c-format
msgid "maximum file size for %s database too small"
msgstr "最大值檔案大å°ç”¨æ–¼ %s 資料庫太å°"
@@ -4461,16 +4429,14 @@ msgstr ""
"%15s 檢查 /etc/%s 的變更\n"
#: nscd/pwdcache.c:407
-#, fuzzy, c-format
-#| msgid "Haven't found \"%s\" in hosts cache!"
+#, c-format
msgid "Haven't found \"%s\" in user database cache!"
-msgstr "尚未在 hosts å¿«å–中找到 \"%s\"!"
+msgstr "未在使用者資料庫快å–發ç¾ã€Œ%sã€ï¼"
#: nscd/pwdcache.c:409
-#, fuzzy, c-format
-#| msgid "Reloading \"%s\" in hosts cache!"
+#, c-format
msgid "Reloading \"%s\" in user database cache!"
-msgstr "é‡æ–°è¼‰å…¥ã€Œ%sã€æ–¼ä¸»æ©Ÿå¿«å–ï¼"
+msgstr "正在é‡æ–°è¼‰å…¥ä½¿ç”¨è€…資料庫快å–中的「%sã€ï¼"
#: nscd/pwdcache.c:471
#, c-format
@@ -4532,18 +4498,16 @@ msgstr "å­˜å–å‘é‡å¿«å– (AVC) 開始"
#: nscd/selinux.c:368
msgid "Error querying policy for undefined object classes or permissions."
-msgstr ""
+msgstr "查詢未定義物件類別或權é™çš„政策時發生錯誤。"
#: nscd/selinux.c:375
-#, fuzzy
-#| msgid "Error getting context of nscd"
msgid "Error getting security class for nscd."
-msgstr "å–å¾— nscd 的狀態組åˆæ™‚發生錯誤"
+msgstr "å–å¾— nscd 的安全性類別時發生錯誤。"
#: nscd/selinux.c:380
#, c-format
msgid "Error translating permission name \"%s\" to access vector bit."
-msgstr ""
+msgstr "將「%sã€æ¬Šé™å稱解譯æˆå­˜å–å‘é‡ä½å…ƒ (access vector bit) 時發生錯誤。"
#: nscd/selinux.c:390
msgid "Error getting context of socket peer"
@@ -4594,47 +4558,46 @@ msgstr "尚未在æœå‹™å¿«å–中找到「%sã€!"
msgid "Reloading \"%s\" in services cache!"
msgstr "é‡æ–°è¼‰å…¥ã€Œ%sã€æ–¼æœå‹™å¿«å–ï¼"
-#: nss/getent.c:54
+#: nss/getent.c:55
msgid "database [key ...]"
msgstr "資料庫 [éµå€¼â€¦]"
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "CONFIG"
msgstr "組態"
-#: nss/getent.c:59
+#: nss/getent.c:60
msgid "Service configuration to be used"
msgstr "å°‡è¦ä½¿ç”¨çš„æœå‹™çµ„æ…‹"
-#: nss/getent.c:60
+#: nss/getent.c:61
msgid "disable IDN encoding"
msgstr "åœç”¨ IDN 編碼"
-#: nss/getent.c:65
+#: nss/getent.c:66
msgid "Get entries from administrative database."
msgstr "從管ç†è³‡æ–™åº«å–å¾—æ¢ç›®ã€‚"
-#: nss/getent.c:149 nss/getent.c:442 nss/getent.c:489
+#: nss/getent.c:150 nss/getent.c:462 nss/getent.c:509
#, c-format
msgid "Enumeration not supported on %s\n"
msgstr "此項目在 %s 中ä¸è¢«æ”¯æ´\n"
-#: nss/getent.c:497 nss/getent.c:510
-#, fuzzy, c-format
-#| msgid "Could not create log file"
+#: nss/getent.c:517 nss/getent.c:530
+#, c-format
msgid "Could not allocate group list: %m\n"
-msgstr "無法建立記錄檔"
+msgstr "無法分é…群組列表:%m\n"
-#: nss/getent.c:881
+#: nss/getent.c:901
#, c-format
msgid "Unknown database name"
msgstr "ä¸æ˜Žçš„資料庫å稱"
-#: nss/getent.c:911
+#: nss/getent.c:931
msgid "Supported databases:\n"
msgstr "支æ´çš„資料庫:\n"
-#: nss/getent.c:977
+#: nss/getent.c:997
#, c-format
msgid "Unknown database: %s\n"
msgstr "未知的資料庫: %s\n"
@@ -4791,116 +4754,109 @@ msgid "Unrecognized variable `%s'"
msgstr "無法識別的變數 `%s'"
#: posix/getopt.c:277
-#, fuzzy, c-format
-#| msgid "%s: option '-W %s' is ambiguous\n"
+#, c-format
msgid "%s: option '%s%s' is ambiguous\n"
-msgstr "%s: é¸é … `-W %s' å«ç¾©ä¸æ¸…\n"
+msgstr "%s:「%s%sã€é¸é …ä¸æ˜Žç¢º\n"
#: posix/getopt.c:283
-#, fuzzy, c-format
-#| msgid "%s: option '%s' is ambiguous; possibilities:"
+#, c-format
msgid "%s: option '%s%s' is ambiguous; possibilities:"
-msgstr "%s:é¸é …『%sã€æ˜¯æ¨¡ç¨œå…©å¯çš„ï¼›å¯èƒ½æ˜¯ï¼š"
+msgstr "%s:「%s%sã€é¸é …ä¸æ˜Žç¢ºï¼›å¯èƒ½æ˜¯ï¼š"
#: posix/getopt.c:318
-#, fuzzy, c-format
-#| msgid "%s: unrecognized option '%c%s'\n"
+#, c-format
msgid "%s: unrecognized option '%s%s'\n"
-msgstr "%s: 未知的é¸é … `%c%s'\n"
+msgstr "%s:無法識別「%s%sã€é¸é …\n"
#: posix/getopt.c:344
-#, fuzzy, c-format
-#| msgid "%s: option '%c%s' doesn't allow an argument\n"
+#, c-format
msgid "%s: option '%s%s' doesn't allow an argument\n"
-msgstr "%s: é¸é … `%c%s' ä¸å…許附加引數\n"
+msgstr "%s:「%s%sã€é¸é …ä¸æŽ¥å—åƒæ•¸\n"
#: posix/getopt.c:359
-#, fuzzy, c-format
-#| msgid "%s: option '--%s' requires an argument\n"
+#, c-format
msgid "%s: option '%s%s' requires an argument\n"
-msgstr "%s:é¸é …『--%sã€éœ€è¦ä¸€å€‹å¼•æ•¸\n"
+msgstr "%s:「%s%sã€é¸é …需è¦åƒæ•¸\n"
#: posix/getopt.c:620
#, c-format
msgid "%s: invalid option -- '%c'\n"
-msgstr "%s: ä¸é©ç”¨çš„é¸é … -- %c\n"
+msgstr "%s:無效é¸é … -- '%c'\n"
#: posix/getopt.c:635 posix/getopt.c:681
#, c-format
msgid "%s: option requires an argument -- '%c'\n"
-msgstr "%s: é¸é …需è¦ä¸€å€‹å¼•æ•¸ -- %c\n"
+msgstr "%s:é¸é …需è¦åƒæ•¸ -- '%c'\n"
#: posix/regcomp.c:138
msgid "No match"
-msgstr "沒有符åˆçš„é …ç›®"
+msgstr "無符åˆé …ç›®"
#: posix/regcomp.c:141
msgid "Invalid regular expression"
-msgstr "ä¸é©ç”¨çš„常è¦è¡¨ç¤ºå¼"
+msgstr "æ­£è¦è¡¨ç¤ºå¼ç„¡æ•ˆ"
#: posix/regcomp.c:144
msgid "Invalid collation character"
-msgstr "ä¸é©ç”¨çš„å°ç…§å­—å…ƒ"
+msgstr "定åºå­—元無效"
#: posix/regcomp.c:147
msgid "Invalid character class name"
-msgstr "ä¸é©ç”¨çš„字元類別å"
+msgstr "字元類型å稱無效"
#: posix/regcomp.c:150
msgid "Trailing backslash"
-msgstr "尾端的å斜線"
+msgstr "末尾å斜線"
#: posix/regcomp.c:153
msgid "Invalid back reference"
-msgstr "ä¸é©ç”¨çš„後部索引"
+msgstr "å‘後åƒè€ƒç„¡æ•ˆ"
#: posix/regcomp.c:156
-#, fuzzy
-#| msgid "Unmatched [ or [^"
msgid "Unmatched [, [^, [:, [., or [="
-msgstr "[ 或 [^ ä¸èƒ½åŒ¹é…"
+msgstr "ä¸å°ç¨±çš„ [ã€[^ã€[:ã€[. 或 [="
#: posix/regcomp.c:159
msgid "Unmatched ( or \\("
-msgstr "( 或 \\( ä¸èƒ½åŒ¹é…"
+msgstr "ä¸å°ç¨±çš„ ( 或 \\("
#: posix/regcomp.c:162
msgid "Unmatched \\{"
-msgstr "\\{ ä¸èƒ½åŒ¹é…"
+msgstr "ä¸å°ç¨±çš„ \\{"
#: posix/regcomp.c:165
msgid "Invalid content of \\{\\}"
-msgstr "ä¸é©ç”¨çš„ \\{\\} 內容"
+msgstr "\\{\\} 中內容無效"
#: posix/regcomp.c:168
msgid "Invalid range end"
-msgstr "ä¸é©ç”¨çš„範åœçµæŸ"
+msgstr "çµæŸç¯„åœç„¡æ•ˆ"
#: posix/regcomp.c:171
msgid "Memory exhausted"
-msgstr "記憶體用完了"
+msgstr "記憶體用盡"
#: posix/regcomp.c:174
msgid "Invalid preceding regular expression"
-msgstr "ä¸é©ç”¨çš„å‰ç½®å¸¸è¦è¡¨ç¤ºå¼"
+msgstr "å‰ç½®æ­£è¦è¡¨ç¤ºå¼ç„¡æ•ˆ"
#: posix/regcomp.c:177
msgid "Premature end of regular expression"
-msgstr "常è¦è¡¨ç¤ºå¼å¤ªæ—©çµæŸäº†"
+msgstr "æ­£è¦è¡¨ç¤ºå¼éŽæ—©çµæŸ"
#: posix/regcomp.c:180
msgid "Regular expression too big"
-msgstr "æ­£è¦è¡¨ç¤ºå¼å¤ªé•·äº†"
+msgstr "æ­£è¦è¡¨ç¤ºå¼éŽé•·"
#: posix/regcomp.c:183
msgid "Unmatched ) or \\)"
-msgstr ") 或 \\) ä¸èƒ½åŒ¹é…"
+msgstr "ä¸å°ç¨±çš„ ) 或 \\)"
-#: posix/regcomp.c:689
+#: posix/regcomp.c:676
msgid "No previous regular expression"
-msgstr "å…ˆå‰ä¸¦æœªä½¿ç”¨éŽå¸¸è¦è¡¨ç¤ºå¼"
+msgstr "沒有上一個正è¦è¡¨ç¤ºå¼"
-#: posix/wordexp.c:1815
+#: posix/wordexp.c:1816
msgid "parameter null or not set"
msgstr "åƒæ•¸ç‚ºç©ºå­—元或是未設置"
@@ -5058,10 +5014,8 @@ msgid "Child has terminated abnormally and did not create a core file"
msgstr "å­è¡Œç¨‹å·²ç•°å¸¸çµ‚止且未建立記憶體檔案"
#: stdio-common/psiginfo-data.h:37
-#, fuzzy
-#| msgid "Child hat terminated abnormally and created a core file"
msgid "Child has terminated abnormally and created a core file"
-msgstr "å­è¡Œç¨‹å·²ç•°å¸¸çµ‚止並已建立了記憶體檔案"
+msgstr "å­ç¨‹åºå·²ç•°å¸¸çµ‚止並建立了核心檔案"
#: stdio-common/psiginfo-data.h:38
msgid "Traced child has trapped"
@@ -5087,7 +5041,7 @@ msgstr "輸出緩è¡å€å¯ç”¨"
msgid "Input message available"
msgstr "輸入訊æ¯å¯ç”¨"
-#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:381 timezone/zic.c:520
+#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:375 timezone/zic.c:561
msgid "I/O error"
msgstr "I/O 錯誤"
@@ -5155,22 +5109,22 @@ msgstr "未知的錯誤 "
#: string/strerror.c:41
msgid "Unknown error"
-msgstr "未知的錯誤"
+msgstr "未知錯誤"
#: string/strsignal.c:60
#, c-format
msgid "Real-time signal %d"
-msgstr "å³æ™‚的信號 %d"
+msgstr "å³æ™‚信號 %d"
#: string/strsignal.c:64
#, c-format
msgid "Unknown signal %d"
-msgstr "未知的信號 %d"
+msgstr "未知信號 %d"
#: sunrpc/auth_unix.c:112 sunrpc/clnt_tcp.c:124 sunrpc/clnt_udp.c:139
#: sunrpc/clnt_unix.c:125 sunrpc/svc_tcp.c:189 sunrpc/svc_tcp.c:233
#: sunrpc/svc_udp.c:161 sunrpc/svc_unix.c:189 sunrpc/svc_unix.c:229
-#: sunrpc/xdr.c:628 sunrpc/xdr.c:788 sunrpc/xdr_array.c:102
+#: sunrpc/xdr.c:631 sunrpc/xdr.c:791 sunrpc/xdr_array.c:102
#: sunrpc/xdr_rec.c:153 sunrpc/xdr_ref.c:79
msgid "out of memory\n"
msgstr "記憶體ä¸è¶³\n"
@@ -5564,19 +5518,17 @@ msgstr "-Y 路徑\t\tè¦å°‹æ‰¾ C å‰ç½®è™•ç†å™¨ (cpp) 的目錄å稱\n"
#: sunrpc/rpc_main.c:1436
#, c-format
msgid "-5\t\tSysVr4 compatibility mode\n"
-msgstr ""
+msgstr "-5\t\tSysVr4 相容模å¼\n"
#: sunrpc/rpc_main.c:1437
-#, fuzzy, c-format
-#| msgid "Give this help list"
+#, c-format
msgid "--help\t\tgive this help list\n"
-msgstr "給出這個使用方å¼åˆ—表"
+msgstr "--help\t\tæ供此說明列表\n"
#: sunrpc/rpc_main.c:1438
-#, fuzzy, c-format
-#| msgid "Print program version"
+#, c-format
msgid "--version\tprint program version\n"
-msgstr "å°å‡ºç¨‹å¼ç‰ˆæœ¬"
+msgstr "--version\t輸出程å¼ç‰ˆæœ¬\n"
#: sunrpc/rpc_main.c:1440
#, c-format
@@ -5707,31 +5659,31 @@ msgstr "掛斷"
#: sysdeps/generic/siglist.h:30
msgid "Interrupt"
-msgstr "中斷"
+msgstr "中止"
#: sysdeps/generic/siglist.h:31
msgid "Quit"
-msgstr "離開"
+msgstr "çµæŸ"
#: sysdeps/generic/siglist.h:32
msgid "Illegal instruction"
-msgstr "ä¸åˆæ³•çš„命令"
+msgstr "無效指令"
#: sysdeps/generic/siglist.h:33
msgid "Trace/breakpoint trap"
-msgstr "追蹤與中斷點陷阱"
+msgstr "追蹤 / 斷點陷阱"
#: sysdeps/generic/siglist.h:34
msgid "Aborted"
-msgstr "已經終止"
+msgstr "å–消"
#: sysdeps/generic/siglist.h:35
msgid "Floating point exception"
-msgstr "浮點數出錯"
+msgstr "期望浮點數"
#: sysdeps/generic/siglist.h:36
msgid "Killed"
-msgstr "å·²ç æŽ‰"
+msgstr "強制çµæŸ"
#: sysdeps/generic/siglist.h:37
msgid "Bus error"
@@ -5739,11 +5691,11 @@ msgstr "匯æµæŽ’錯誤"
#: sysdeps/generic/siglist.h:38
msgid "Bad system call"
-msgstr "錯誤的系統呼å«"
+msgstr "無效系統呼å«"
#: sysdeps/generic/siglist.h:39
msgid "Segmentation fault"
-msgstr "程å¼è¨˜æ†¶é«”å€æ®µéŒ¯èª¤"
+msgstr "分割錯誤"
#. TRANS There is no process reading from the other end of a pipe.
#. TRANS Every library function that returns this error code also generates a
@@ -5752,7 +5704,7 @@ msgstr "程å¼è¨˜æ†¶é«”å€æ®µéŒ¯èª¤"
#. TRANS unless it has handled or blocked @code{SIGPIPE}.
#: sysdeps/generic/siglist.h:40 sysdeps/gnu/errlist.c:360
msgid "Broken pipe"
-msgstr "中斷的管線"
+msgstr "管線æ壞"
#: sysdeps/generic/siglist.h:41
msgid "Alarm clock"
@@ -5764,11 +5716,11 @@ msgstr "終止"
#: sysdeps/generic/siglist.h:43
msgid "Urgent I/O condition"
-msgstr "緊急的輸出入狀態"
+msgstr "緊急 I/O æ¢ä»¶"
#: sysdeps/generic/siglist.h:44
msgid "Stopped (signal)"
-msgstr "åœæ­¢ (信號)"
+msgstr "åœæ­¢ï¼ˆä¿¡è™Ÿï¼‰"
#: sysdeps/generic/siglist.h:45
msgid "Stopped"
@@ -5780,47 +5732,47 @@ msgstr "繼續"
#: sysdeps/generic/siglist.h:47
msgid "Child exited"
-msgstr "å­è¡Œç¨‹çµæŸ"
+msgstr "å­ç¨‹åºé€€å‡º"
#: sysdeps/generic/siglist.h:48
msgid "Stopped (tty input)"
-msgstr "åœæ­¢ (tty 輸入)"
+msgstr "åœæ­¢ï¼ˆtty 輸入)"
#: sysdeps/generic/siglist.h:49
msgid "Stopped (tty output)"
-msgstr "åœæ­¢ (tty 輸出)"
+msgstr "åœæ­¢ï¼ˆtty 輸出)"
#: sysdeps/generic/siglist.h:50
msgid "I/O possible"
-msgstr "I/O å¯è¡Œ"
+msgstr "å¯èƒ½ I/O"
#: sysdeps/generic/siglist.h:51
msgid "CPU time limit exceeded"
-msgstr "CPU 時間上é™è¶…éŽäº†"
+msgstr "åˆ°é” CPU 時間上é™"
#: sysdeps/generic/siglist.h:52
msgid "File size limit exceeded"
-msgstr "檔案大å°è¶…éŽä¸Šé™"
+msgstr "到é”檔案大å°ä¸Šé™"
#: sysdeps/generic/siglist.h:53
msgid "Virtual timer expired"
-msgstr "虛擬計時器已éŽæ™‚å–消了"
+msgstr "虛擬計時器éŽæœŸ"
#: sysdeps/generic/siglist.h:54
msgid "Profiling timer expired"
-msgstr "測速評估用的計時器已éŽæ™‚å–消了"
+msgstr "分æžè¨ˆæ™‚器éŽæœŸ"
#: sysdeps/generic/siglist.h:55
msgid "User defined signal 1"
-msgstr "使用者定義的訊號 1"
+msgstr "使用者定義信號 1"
#: sysdeps/generic/siglist.h:56
msgid "User defined signal 2"
-msgstr "使用者定義的訊號 2"
+msgstr "使用者定義信號 2"
#: sysdeps/generic/siglist.h:57
msgid "Window changed"
-msgstr "範åœæ”¹è®Šäº†"
+msgstr "已變更視窗"
#: sysdeps/generic/siglist.h:61
msgid "EMT trap"
@@ -5832,15 +5784,15 @@ msgstr "堆疊錯誤"
#: sysdeps/generic/siglist.h:67
msgid "Power failure"
-msgstr "é›»æºåš´é‡éŒ¯èª¤"
+msgstr "é›»æºéŒ¯èª¤"
#: sysdeps/generic/siglist.h:70
msgid "Information request"
-msgstr "需è¦è³‡æ–™"
+msgstr "資訊請求"
#: sysdeps/generic/siglist.h:73
msgid "Resource lost"
-msgstr "資æºæ¼å¤±"
+msgstr "資æºéºå¤±"
#. TRANS Only the owner of the file (or other resource)
#. TRANS or processes with special privileges can perform the operation.
@@ -6455,56 +6407,69 @@ msgstr "這次真的被您打敗了"
# 簡單的說,兒歌 "å”è€å…ˆç”Ÿæœ‰å¡Šåœ°...",然後呢?? ;-p
#
#. TRANS Go home and have a glass of warm, dairy-fresh milk.
-#: sysdeps/gnu/errlist.c:978
+#. TRANS @c Okay. Since you are dying to know, I'll tell you.
+#. TRANS @c This is a joke, obviously. There is a children's song which begins,
+#. TRANS @c "Old McDonald had a farm, e-i-e-i-o." Every time I see the (real)
+#. TRANS @c errno macro EIO, I think about that song. Probably most of my
+#. TRANS @c compatriots who program on Unix do, too. One of them must have stayed
+#. TRANS @c up a little too late one night and decided to add it to Hurd or Glibc.
+#. TRANS @c Whoever did it should be castigated, but it made me laugh.
+#. TRANS @c --jtobey@channel1.com
+#. TRANS @c
+#. TRANS @c "bought the farm" means "died". -jtobey
+#. TRANS @c
+#. TRANS @c Translators, please do not translate this litteraly, translate it into
+#. TRANS @c an idiomatic funny way of saying that the computer died.
+#: sysdeps/gnu/errlist.c:991
msgid "Computer bought the farm"
msgstr "這臺電腦買了一塊地囉"
#. TRANS This error code has no purpose.
-#: sysdeps/gnu/errlist.c:987
+#: sysdeps/gnu/errlist.c:1000
msgid "Gratuitous error"
msgstr "無故的錯誤"
-#: sysdeps/gnu/errlist.c:995
+#: sysdeps/gnu/errlist.c:1008
msgid "Bad message"
msgstr "錯誤的訊æ¯"
-#: sysdeps/gnu/errlist.c:1003
+#: sysdeps/gnu/errlist.c:1016
msgid "Identifier removed"
msgstr "識別符號移除"
-#: sysdeps/gnu/errlist.c:1011
+#: sysdeps/gnu/errlist.c:1024
msgid "Multihop attempted"
msgstr "嘗試 Multihop"
-#: sysdeps/gnu/errlist.c:1019
+#: sysdeps/gnu/errlist.c:1032
msgid "No data available"
msgstr "沒有å¯ç”¨çš„資料"
-#: sysdeps/gnu/errlist.c:1027
+#: sysdeps/gnu/errlist.c:1040
msgid "Link has been severed"
msgstr "連çµå·²æœ‰æœå‹™"
-#: sysdeps/gnu/errlist.c:1035
+#: sysdeps/gnu/errlist.c:1048
msgid "No message of desired type"
msgstr "沒有符åˆéœ€æ±‚æ ¼å¼çš„訊æ¯"
-#: sysdeps/gnu/errlist.c:1043
+#: sysdeps/gnu/errlist.c:1056
msgid "Out of streams resources"
msgstr "所有資料æµçš„資æºéƒ½å·²ç”¨ç›¡"
-#: sysdeps/gnu/errlist.c:1051
+#: sysdeps/gnu/errlist.c:1064
msgid "Device not a stream"
msgstr "è£ç½®ä¸æ˜¯è³‡æ–™æµ"
-#: sysdeps/gnu/errlist.c:1059
+#: sysdeps/gnu/errlist.c:1072
msgid "Value too large for defined data type"
msgstr "有定義的資料型別值太大"
-#: sysdeps/gnu/errlist.c:1067
+#: sysdeps/gnu/errlist.c:1080
msgid "Protocol error"
msgstr "å”定錯誤"
-#: sysdeps/gnu/errlist.c:1075
+#: sysdeps/gnu/errlist.c:1088
msgid "Timer expired"
msgstr "計時器已逾時"
@@ -6512,195 +6477,195 @@ msgstr "計時器已逾時"
#. TRANS completed. @xref{Asynchronous I/O}. When you call @code{aio_cancel},
#. TRANS the normal result is for the operations affected to complete with this
#. TRANS error; @pxref{Cancel AIO Operations}.
-#: sysdeps/gnu/errlist.c:1087
+#: sysdeps/gnu/errlist.c:1100
msgid "Operation canceled"
msgstr "æ“作已被å–消"
-#: sysdeps/gnu/errlist.c:1095
+#: sysdeps/gnu/errlist.c:1108
msgid "Owner died"
msgstr "æ“有者已消é€"
-#: sysdeps/gnu/errlist.c:1103
+#: sysdeps/gnu/errlist.c:1116
msgid "State not recoverable"
msgstr "狀態無法回復"
-#: sysdeps/gnu/errlist.c:1111
+#: sysdeps/gnu/errlist.c:1124
msgid "Interrupted system call should be restarted"
msgstr "中斷的系統呼å«å¿…é ˆé‡æ–°å•Ÿå‹•"
-#: sysdeps/gnu/errlist.c:1119
+#: sysdeps/gnu/errlist.c:1132
msgid "Channel number out of range"
msgstr "通é“號碼超出範åœ"
-#: sysdeps/gnu/errlist.c:1127
+#: sysdeps/gnu/errlist.c:1140
msgid "Level 2 not synchronized"
msgstr "層級 2 沒有åŒæ­¥"
-#: sysdeps/gnu/errlist.c:1135
+#: sysdeps/gnu/errlist.c:1148
msgid "Level 3 halted"
msgstr "層級 3 åœæ­¢"
-#: sysdeps/gnu/errlist.c:1143
+#: sysdeps/gnu/errlist.c:1156
msgid "Level 3 reset"
msgstr "層級 3 é‡è¨­"
-#: sysdeps/gnu/errlist.c:1151
+#: sysdeps/gnu/errlist.c:1164
msgid "Link number out of range"
msgstr "連çµæ•¸ç›®è¶…éŽç¯„åœ"
-#: sysdeps/gnu/errlist.c:1159
+#: sysdeps/gnu/errlist.c:1172
msgid "Protocol driver not attached"
msgstr "å”定的驅動程å¼æœªé€£æŽ¥"
-#: sysdeps/gnu/errlist.c:1167
+#: sysdeps/gnu/errlist.c:1180
msgid "No CSI structure available"
msgstr "沒有å¯ç”¨çš„ CSI çµæ§‹äº†"
-#: sysdeps/gnu/errlist.c:1175
+#: sysdeps/gnu/errlist.c:1188
msgid "Level 2 halted"
msgstr "層級 2 åœæ­¢"
-#: sysdeps/gnu/errlist.c:1183
+#: sysdeps/gnu/errlist.c:1196
msgid "Invalid exchange"
msgstr "ä¸é©ç”¨çš„交æ›"
-#: sysdeps/gnu/errlist.c:1191
+#: sysdeps/gnu/errlist.c:1204
msgid "Invalid request descriptor"
msgstr "ä¸é©ç”¨çš„請求敘述項"
-#: sysdeps/gnu/errlist.c:1199
+#: sysdeps/gnu/errlist.c:1212
msgid "Exchange full"
msgstr "交æ›å·²æ»¿"
-#: sysdeps/gnu/errlist.c:1207
+#: sysdeps/gnu/errlist.c:1220
msgid "No anode"
msgstr "沒有 anode"
-#: sysdeps/gnu/errlist.c:1215
+#: sysdeps/gnu/errlist.c:1228
msgid "Invalid request code"
msgstr "ä¸é©ç”¨çš„請求碼"
-#: sysdeps/gnu/errlist.c:1223
+#: sysdeps/gnu/errlist.c:1236
msgid "Invalid slot"
msgstr "ä¸é©ç”¨çš„ slot"
-#: sysdeps/gnu/errlist.c:1231
+#: sysdeps/gnu/errlist.c:1244
msgid "File locking deadlock error"
msgstr "檔案鎖定åœé “錯誤"
-#: sysdeps/gnu/errlist.c:1239
+#: sysdeps/gnu/errlist.c:1252
msgid "Bad font file format"
msgstr "錯誤的字型檔格å¼"
-#: sysdeps/gnu/errlist.c:1247
+#: sysdeps/gnu/errlist.c:1260
msgid "Machine is not on the network"
msgstr "機器ä¸åœ¨ç¶²è·¯ä¸­"
-#: sysdeps/gnu/errlist.c:1255
+#: sysdeps/gnu/errlist.c:1268
msgid "Package not installed"
msgstr "套件並未安è£"
-#: sysdeps/gnu/errlist.c:1263
+#: sysdeps/gnu/errlist.c:1276
msgid "Advertise error"
msgstr "通知錯誤"
-#: sysdeps/gnu/errlist.c:1271
+#: sysdeps/gnu/errlist.c:1284
msgid "Srmount error"
msgstr "Srmount 錯誤"
-#: sysdeps/gnu/errlist.c:1279
+#: sysdeps/gnu/errlist.c:1292
msgid "Communication error on send"
msgstr "在傳é€æ™‚通訊錯誤"
-#: sysdeps/gnu/errlist.c:1287
+#: sysdeps/gnu/errlist.c:1300
msgid "RFS specific error"
msgstr "RFS 特定錯誤"
-#: sysdeps/gnu/errlist.c:1295
+#: sysdeps/gnu/errlist.c:1308
msgid "Name not unique on network"
msgstr "網路上的å稱ä¸æ˜¯å”¯ä¸€çš„"
-#: sysdeps/gnu/errlist.c:1303
+#: sysdeps/gnu/errlist.c:1316
msgid "File descriptor in bad state"
msgstr "檔案敘述項處於錯誤狀態"
-#: sysdeps/gnu/errlist.c:1311
+#: sysdeps/gnu/errlist.c:1324
msgid "Remote address changed"
msgstr "é ç«¯ä½å€æ”¹è®Šäº†"
-#: sysdeps/gnu/errlist.c:1319
+#: sysdeps/gnu/errlist.c:1332
msgid "Can not access a needed shared library"
msgstr "無法存å–所需的分享函å¼åº«"
-#: sysdeps/gnu/errlist.c:1327
+#: sysdeps/gnu/errlist.c:1340
msgid "Accessing a corrupted shared library"
msgstr "å­˜å–一個毀掉的分享函å¼åº«"
-#: sysdeps/gnu/errlist.c:1335
+#: sysdeps/gnu/errlist.c:1348
msgid ".lib section in a.out corrupted"
msgstr "a.out 中 .lib å€æ®µæ¯€æŽ‰äº†"
-#: sysdeps/gnu/errlist.c:1343
+#: sysdeps/gnu/errlist.c:1356
msgid "Attempting to link in too many shared libraries"
msgstr "嘗試去連çµå¤ªå¤šçš„分享資料庫"
-#: sysdeps/gnu/errlist.c:1351
+#: sysdeps/gnu/errlist.c:1364
msgid "Cannot exec a shared library directly"
msgstr "ä¸èƒ½ç›´æŽ¥åŸ·è¡Œä¸€å€‹åˆ†äº«å‡½å¼åº«"
-#: sysdeps/gnu/errlist.c:1359
+#: sysdeps/gnu/errlist.c:1372
msgid "Streams pipe error"
msgstr "資料æµç®¡ç·šéŒ¯èª¤"
-#: sysdeps/gnu/errlist.c:1367
+#: sysdeps/gnu/errlist.c:1380
msgid "Structure needs cleaning"
msgstr "çµæ§‹éœ€è¦æ¸…ç†"
-#: sysdeps/gnu/errlist.c:1375
+#: sysdeps/gnu/errlist.c:1388
msgid "Not a XENIX named type file"
msgstr "ä¸¦éž XENIX 命åæ ¼å¼çš„檔案"
-#: sysdeps/gnu/errlist.c:1383
+#: sysdeps/gnu/errlist.c:1396
msgid "No XENIX semaphores available"
msgstr "沒有å¯ç”¨çš„ XENIX 信號標誌了"
-#: sysdeps/gnu/errlist.c:1391
+#: sysdeps/gnu/errlist.c:1404
msgid "Is a named type file"
msgstr "是個具å的型態檔案"
-#: sysdeps/gnu/errlist.c:1399
+#: sysdeps/gnu/errlist.c:1412
msgid "Remote I/O error"
msgstr "é ç«¯è¼¸å‡ºå…¥éŒ¯èª¤"
-#: sysdeps/gnu/errlist.c:1407
+#: sysdeps/gnu/errlist.c:1420
msgid "No medium found"
msgstr "找ä¸åˆ°åª’é«”"
-#: sysdeps/gnu/errlist.c:1415
+#: sysdeps/gnu/errlist.c:1428
msgid "Wrong medium type"
msgstr "錯誤的媒體型態"
-#: sysdeps/gnu/errlist.c:1423
+#: sysdeps/gnu/errlist.c:1436
msgid "Required key not available"
msgstr "å¿…è¦éµå€¼ç„¡æ³•ä½¿ç”¨"
-#: sysdeps/gnu/errlist.c:1431
+#: sysdeps/gnu/errlist.c:1444
msgid "Key has expired"
msgstr "éµå€¼å·²éŽæœŸ"
-#: sysdeps/gnu/errlist.c:1439
+#: sysdeps/gnu/errlist.c:1452
msgid "Key has been revoked"
msgstr "éµå€¼å·²å–消"
-#: sysdeps/gnu/errlist.c:1447
+#: sysdeps/gnu/errlist.c:1460
msgid "Key was rejected by service"
msgstr "éµå€¼è¢«æœå‹™æ‰€æ‹’絕"
-#: sysdeps/gnu/errlist.c:1455
+#: sysdeps/gnu/errlist.c:1468
msgid "Operation not possible due to RF-kill"
msgstr "由於 RF-kill 而無法æ“作"
-#: sysdeps/gnu/errlist.c:1463
+#: sysdeps/gnu/errlist.c:1476
msgid "Memory page has hardware error"
msgstr "記憶體分é æœ‰ç¡¬é«”錯誤"
@@ -6710,43 +6675,43 @@ msgstr "未知系統錯誤: "
#: sysdeps/posix/gai_strerror-strs.h:1
msgid "Address family for hostname not supported"
-msgstr "hostname çš„ä½å€æ—群ä¸æ”¯æ´"
+msgstr "ä¸æ”¯æ´ä¸»æ©Ÿå稱的ä½å€å®¶æ—"
#: sysdeps/posix/gai_strerror-strs.h:2
msgid "Temporary failure in name resolution"
-msgstr "解æžå稱時發生暫時性的錯誤"
+msgstr "解æžå稱時發生暫時性錯誤"
#: sysdeps/posix/gai_strerror-strs.h:3
msgid "Bad value for ai_flags"
-msgstr "錯誤的 ai_flags 值"
+msgstr "ai_flags 的值無效"
#: sysdeps/posix/gai_strerror-strs.h:4
msgid "Non-recoverable failure in name resolution"
-msgstr "在解æžå稱時發生嚴é‡çš„錯誤"
+msgstr "解æžå稱時發生無法復原錯誤"
#: sysdeps/posix/gai_strerror-strs.h:5
msgid "ai_family not supported"
-msgstr "ai_family 沒有支æ´"
+msgstr "ä¸æ”¯æ´ ai_family"
#: sysdeps/posix/gai_strerror-strs.h:6
msgid "Memory allocation failure"
-msgstr "記憶體é…置失敗"
+msgstr "分é…記憶體失敗"
#: sysdeps/posix/gai_strerror-strs.h:7
msgid "No address associated with hostname"
-msgstr "沒有此主機å稱所å°æ‡‰çš„ä½å€"
+msgstr "沒有ä½å€é—œè¯è‡³æ­¤ä¸»æ©Ÿå稱"
#: sysdeps/posix/gai_strerror-strs.h:8
msgid "Name or service not known"
-msgstr "未知的å稱或æœå‹™"
+msgstr "å稱或æœå‹™æœªçŸ¥"
#: sysdeps/posix/gai_strerror-strs.h:9
msgid "Servname not supported for ai_socktype"
-msgstr "ä¸æ”¯æ´ ai_socktype 的伺æœå稱"
+msgstr "ai_socktype ä¸æ”¯æ´ä¼ºæœå™¨å稱 (Servname)"
#: sysdeps/posix/gai_strerror-strs.h:10
msgid "ai_socktype not supported"
-msgstr "ai_socktype 沒有支æ´"
+msgstr "ä¸æ”¯æ´ ai_socktype"
#: sysdeps/posix/gai_strerror-strs.h:11
msgid "System error"
@@ -6754,27 +6719,27 @@ msgstr "系統錯誤"
#: sysdeps/posix/gai_strerror-strs.h:12
msgid "Processing request in progress"
-msgstr "此項請求已經在處ç†ç•¶ä¸­"
+msgstr "正在處ç†è«‹æ±‚"
#: sysdeps/posix/gai_strerror-strs.h:13
msgid "Request canceled"
-msgstr "請求已被å–消"
+msgstr "å·²å–消請求"
#: sysdeps/posix/gai_strerror-strs.h:14
msgid "Request not canceled"
-msgstr "請求並未å–消"
+msgstr "未å–消請求"
#: sysdeps/posix/gai_strerror-strs.h:15
msgid "All requests done"
-msgstr "所有請求已完æˆ"
+msgstr "所有請求完æˆ"
#: sysdeps/posix/gai_strerror-strs.h:16
msgid "Interrupted by a signal"
-msgstr "由訊號所中斷"
+msgstr "é­ä¿¡è™Ÿä¸­æ­¢"
#: sysdeps/posix/gai_strerror-strs.h:17
msgid "Parameter string not correctly encoded"
-msgstr "åƒæ•¸å­—串無法正確編碼"
+msgstr "未正確編碼åƒæ•¸å­—串"
#: sysdeps/unix/sysv/linux/i386/readelflib.c:65
#, c-format
@@ -6807,53 +6772,45 @@ msgstr "無法從 `%s' 讀å–標頭資料"
#: sysdeps/x86/dl-cet.c:202
msgid "mprotect legacy bitmap failed"
-msgstr ""
+msgstr "mprotect legacy bitmap 失敗"
#: sysdeps/x86/dl-cet.c:217
-#, fuzzy
-#| msgid "Data input available"
msgid "legacy bitmap isn't available"
-msgstr "資料輸入å¯ç”¨"
+msgstr "æš«ä¸èƒ½ç”¨èˆŠç‰ˆ bitmap"
#: sysdeps/x86/dl-cet.c:247
-#, fuzzy
-#| msgid "failed to start conversion processing"
msgid "failed to mark legacy code region"
-msgstr "開始轉æ›ç¨‹åºå¤±æ•—"
+msgstr "無法標記舊版代碼å€åŸŸ"
#: sysdeps/x86/dl-cet.c:269
msgid "shadow stack isn't enabled"
-msgstr ""
+msgstr "陰影堆疊 (shadow stack) 未啟用"
#: sysdeps/x86/dl-cet.c:290
msgid "can't disable CET"
-msgstr ""
+msgstr "無法åœç”¨ CET"
-#: timezone/zdump.c:338
-#, fuzzy
-#| msgid "has fewer than 3 alphabetics"
+#: timezone/zdump.c:332
msgid "has fewer than 3 characters"
-msgstr "有更少的比 3 å­—æ¯é †åº"
+msgstr "少於 3 個字元"
-#: timezone/zdump.c:340
-#, fuzzy
-#| msgid "has more than 6 alphabetics"
+#: timezone/zdump.c:334
msgid "has more than 6 characters"
-msgstr "æœ‰è¶…éŽ 6 å­—æ¯é †åº"
+msgstr "多於 6 個字元"
-#: timezone/zdump.c:342
+#: timezone/zdump.c:336
msgid "has characters other than ASCII alphanumerics, '-' or '+'"
-msgstr ""
+msgstr "包å«é™¤ ASCII 數字ã€è‹±æ–‡å­—æ¯ã€ã€Œ-ã€åŠã€Œ+ã€ä»¥å¤–çš„å­—å…ƒ"
-#: timezone/zdump.c:347
+#: timezone/zdump.c:341
#, c-format
msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n"
msgstr "%s: 警告:å€åŸŸã€Œ%sã€ç¸®å¯«ã€Œ%sã€%s\n"
-#: timezone/zdump.c:393
+#: timezone/zdump.c:387
#, c-format
msgid ""
-"%s: usage: %s OPTIONS ZONENAME ...\n"
+"%s: usage: %s OPTIONS TIMEZONE ...\n"
"Options include:\n"
" -c [L,]U Start at year L (default -500), end before year U (default 2500)\n"
" -t [L,]U Start at time L, end before time U (in seconds since 1970)\n"
@@ -6865,644 +6822,488 @@ msgid ""
"\n"
"Report bugs to %s.\n"
msgstr ""
+"%s:用法:%s é¸é … æ™‚å€ ...\n"
+"<é¸é …> 包å«ï¼š\n"
+" -c [L,]U 從 L 年開始(é è¨­ -500),到 U å¹´çµæŸï¼ˆé è¨­ 2500)\n"
+" -t [L,]U 從 L 時間開始,到 U 時間çµæŸ (秒數,從 1970 年開始)\n"
+" -i 簡略列出轉æ›ï¼ˆæ ¼å¼ç‚ºå¯¦é©—性功能)\n"
+" -v 詳細列出轉æ›\n"
+" -V ç¨å¾®è©³ç´°åœ°åˆ—出轉æ›\n"
+" --help 輸出此說明\n"
+" --version 輸出版本資訊\n"
+"\n"
+"將臭蟲回報到 %s。\n"
-#: timezone/zdump.c:479
+#: timezone/zdump.c:473
#, c-format
msgid "%s: wild -c argument %s\n"
msgstr "%s: wild -c 引數 %s\n"
-#: timezone/zdump.c:512
-#, fuzzy, c-format
-#| msgid "%s: wild -c argument %s\n"
+#: timezone/zdump.c:506
+#, c-format
msgid "%s: wild -t argument %s\n"
-msgstr "%s: wild -c 引數 %s\n"
+msgstr "%s:wild -t 引數 %s\n"
-#: timezone/zic.c:398
+#: timezone/zic.c:429
#, c-format
msgid "%s: Memory exhausted: %s\n"
msgstr "%s: 記憶體已用完: %s\n"
-#: timezone/zic.c:406
-#, fuzzy
-#| msgid "time overflow"
+#: timezone/zic.c:437
msgid "size overflow"
-msgstr "時間溢ä½"
+msgstr "大å°æº¢ä½"
-#: timezone/zic.c:454
-#, fuzzy
-#| msgid "Integer overflow"
+#: timezone/zic.c:447
+msgid "alignment overflow"
+msgstr "å°é½Šæº¢ä½"
+
+#: timezone/zic.c:495
msgid "integer overflow"
msgstr "整數溢ä½"
-#: timezone/zic.c:488
-#, fuzzy, c-format
-#| msgid "\"%s\", line %d: %s"
+#: timezone/zic.c:529
+#, c-format
msgid "\"%s\", line %<PRIdMAX>: "
-msgstr "\"%s\", 第 %d 列: %s"
+msgstr "「%sã€ï¼Œç¬¬ %<PRIdMAX> 列:"
-#: timezone/zic.c:491
-#, fuzzy, c-format
-#| msgid " (rule from \"%s\", line %d)"
+#: timezone/zic.c:532
+#, c-format
msgid " (rule from \"%s\", line %<PRIdMAX>)"
-msgstr " (è¦å‰‡ä¾†è‡ª \"%s\", 第 %d 列)"
+msgstr "(è¦å‰‡ä¾†è‡ªã€Œ%sã€ï¼Œç¬¬ %<PRIdMAX> 行)"
-#: timezone/zic.c:510
+#: timezone/zic.c:551
#, c-format
msgid "warning: "
msgstr "警告: "
-#: timezone/zic.c:535
-#, fuzzy, c-format
-#| msgid ""
-#| "%s: usage is %s [ --version ] [ --help ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n"
-#| "\t[ -d directory ] [ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n"
-#| "\n"
-#| "Report bugs to %s.\n"
+#: timezone/zic.c:576
+#, c-format
msgid ""
"%s: usage is %s [ --version ] [ --help ] [ -v ] \\\n"
"\t[ -l localtime ] [ -p posixrules ] [ -d directory ] \\\n"
-"\t[ -L leapseconds ] [ filename ... ]\n"
+"\t[ -t localtime-link ] [ -L leapseconds ] [ filename ... ]\n"
"\n"
"Report bugs to %s.\n"
msgstr ""
-"%s:用法為 %s [ --version ] [ --help ] [ -v ] [ -l 本地時間 ] [ -p POSIXè¦å‰‡ ] \\\n"
-"\t[ -d 目錄 ] [ -L è·³èºç§’數 ] [ -y 年分類型 ] [ 檔å ... ]\n"
+"%s:用法為 %s[ --version ] [ --help ] [ -v ] \\\n"
+"\t[ -l 本機時間 ] [ -p POSIX è¦å‰‡ ] [ -d 目錄 ] \\\n"
+"\t[ -t æœ¬æ©Ÿæ™‚é–“é€£çµ ] [ -L leapseconds ] [ 檔å ... ]\n"
"\n"
-"將錯誤通報給 %s。\n"
+"將臭蟲回報至 %s。\n"
-#: timezone/zic.c:558
-#, fuzzy, c-format
-#| msgid "%s: Can't create %s: %s\n"
+#: timezone/zic.c:599
+#, c-format
msgid "%s: Can't chdir to %s: %s\n"
-msgstr "%s: 無法產生 %s: %s\n"
+msgstr "%s:無法切æ›ç›®éŒ„ (chdir) 至 %s:%s\n"
-#: timezone/zic.c:590
+#: timezone/zic.c:632
msgid "wild compilation-time specification of zic_t"
msgstr "zic_t çš„è¬ç”¨ç·¨è­¯æ™‚é–“è¦æ ¼"
-#: timezone/zic.c:610
+#: timezone/zic.c:652
#, c-format
msgid "%s: More than one -d option specified\n"
msgstr "%s: 您使用了超éŽä¸€å€‹ -d é¸é …\n"
-#: timezone/zic.c:620
+#: timezone/zic.c:662
#, c-format
msgid "%s: More than one -l option specified\n"
msgstr "%s: 您使用了超éŽä¸€å€‹ -l é¸é …\n"
-#: timezone/zic.c:630
+#: timezone/zic.c:672
#, c-format
msgid "%s: More than one -p option specified\n"
msgstr "%s: 您使用了超éŽä¸€å€‹ -p é¸é …\n"
-#: timezone/zic.c:640
+#: timezone/zic.c:680
+#, c-format
+msgid "%s: More than one -t option specified\n"
+msgstr "%s:指定了多於一個 -t é¸é …\n"
+
+#: timezone/zic.c:689
+msgid "-y is obsolescent"
+msgstr "-y 已經éŽæ™‚"
+
+#: timezone/zic.c:693
#, c-format
msgid "%s: More than one -y option specified\n"
msgstr "%s: 您使用了超éŽä¸€å€‹ -y é¸é …\n"
-#: timezone/zic.c:650
+#: timezone/zic.c:703
#, c-format
msgid "%s: More than one -L option specified\n"
msgstr "%s: 您使用了超éŽä¸€å€‹ -L é¸é …\n"
-#: timezone/zic.c:659
+#: timezone/zic.c:712
msgid "-s ignored"
-msgstr ""
+msgstr "-s 已被忽略"
-#: timezone/zic.c:698
+#: timezone/zic.c:753
msgid "link to link"
msgstr "連çµåˆ°é€£çµ"
-#: timezone/zic.c:701 timezone/zic.c:705
-#, fuzzy
-#| msgid "Too many links"
+#: timezone/zic.c:756 timezone/zic.c:760
msgid "command line"
-msgstr "太多連çµ"
+msgstr "指令行"
-#: timezone/zic.c:721
+#: timezone/zic.c:776
msgid "empty file name"
-msgstr ""
+msgstr "檔å為空"
-#: timezone/zic.c:724
+#: timezone/zic.c:779
#, c-format
msgid "file name '%s' begins with '/'"
-msgstr ""
+msgstr "「%sã€æª”å開頭為「/ã€"
-#: timezone/zic.c:734
+#: timezone/zic.c:789
#, c-format
msgid "file name '%s' contains '%.*s' component"
-msgstr ""
+msgstr "「%sã€æª”å包å«ã€Œ%.*sã€å…ƒä»¶"
-#: timezone/zic.c:740
+#: timezone/zic.c:795
#, c-format
msgid "file name '%s' component contains leading '-'"
-msgstr ""
+msgstr "「%sã€æª”å的元件包å«å‰ç½®ã€Œ-ã€"
-#: timezone/zic.c:743
+#: timezone/zic.c:798
#, c-format
msgid "file name '%s' contains overlength component '%.*s...'"
-msgstr ""
+msgstr "「%sã€æª”å包å«éŽé•·çš„「%.*s...ã€å…ƒä»¶"
-#: timezone/zic.c:771
+#: timezone/zic.c:826
#, c-format
msgid "file name '%s' contains byte '%c'"
-msgstr ""
+msgstr "「%sã€æª”å包å«ã€Œ%cã€ä½å…ƒ"
-#: timezone/zic.c:772
+#: timezone/zic.c:827
#, c-format
msgid "file name '%s' contains byte '\\%o'"
-msgstr ""
+msgstr "「%sã€æª”å包å«ã€Œ\\%oã€ä½å…ƒ"
-#: timezone/zic.c:842
-#, fuzzy, c-format
-#| msgid "%s: Can't link from %s to %s: %s\n"
+#: timezone/zic.c:897
+#, c-format
msgid "%s: link from %s/%s failed: %s\n"
-msgstr "%s: 無法從 %s 連çµåˆ° %s: %s\n"
+msgstr "%s:從 %s/%s 連çµå¤±æ•—:%s\n"
-#: timezone/zic.c:852 timezone/zic.c:1815
-#, fuzzy, c-format
-#| msgid "%s: Can't remove %s: %s\n"
+#: timezone/zic.c:907 timezone/zic.c:1876
+#, c-format
msgid "%s: Can't remove %s/%s: %s\n"
-msgstr "%s: 無法移除 %s: %s\n"
+msgstr "%s:無法移除 %s/%s:%s\n"
-#: timezone/zic.c:874
+#: timezone/zic.c:931
#, c-format
msgid "symbolic link used because hard link failed: %s"
-msgstr ""
+msgstr "因為建立實際連çµå¤±æ•—,因此改使用符號連çµï¼š%s"
-#: timezone/zic.c:882
-#, fuzzy, c-format
-#| msgid "%s: Can't create %s: %s\n"
+#: timezone/zic.c:939
+#, c-format
msgid "%s: Can't read %s/%s: %s\n"
-msgstr "%s: 無法產生 %s: %s\n"
+msgstr "%sï¼šç„¡æ³•è®€å– %s/%s:%s\n"
-#: timezone/zic.c:889 timezone/zic.c:1828
-#, fuzzy, c-format
-#| msgid "%s: Can't create %s: %s\n"
+#: timezone/zic.c:946 timezone/zic.c:1889
+#, c-format
msgid "%s: Can't create %s/%s: %s\n"
-msgstr "%s: 無法產生 %s: %s\n"
+msgstr "%s:無法建立 %s/%s:%s\n"
-#: timezone/zic.c:898
+#: timezone/zic.c:955
#, c-format
msgid "copy used because hard link failed: %s"
-msgstr ""
+msgstr "因為建立實際連çµå¤±æ•—,因此改複製:%s"
-#: timezone/zic.c:901
+#: timezone/zic.c:958
#, c-format
msgid "copy used because symbolic link failed: %s"
-msgstr ""
+msgstr "因為建立符號連çµå¤±æ•—,因此改複製:%s"
-#: timezone/zic.c:1013 timezone/zic.c:1015
+#: timezone/zic.c:1032 timezone/zic.c:1034
msgid "same rule name in multiple files"
msgstr "在多個檔案裡é¢æœ‰ç›¸åŒçš„è¦å‰‡å稱"
-#: timezone/zic.c:1056
-msgid "unruly zone"
-msgstr "沒有è¦å‰‡çš„時å€"
-
-#: timezone/zic.c:1063
+#: timezone/zic.c:1081
#, c-format
msgid "%s in ruleless zone"
msgstr "%s 在沒有è¦å‰‡çš„å€æ®µ"
-#: timezone/zic.c:1083
+#: timezone/zic.c:1101
msgid "standard input"
msgstr "標準輸入"
-#: timezone/zic.c:1088
+#: timezone/zic.c:1106
#, c-format
msgid "%s: Can't open %s: %s\n"
msgstr "%s: 無法開啟 %s: %s\n"
-#: timezone/zic.c:1099
+#: timezone/zic.c:1117
msgid "line too long"
msgstr "列的長度éŽé•·"
-#: timezone/zic.c:1119
+#: timezone/zic.c:1139
msgid "input line of unknown type"
msgstr "ä¸æ˜Žåž‹åˆ¥çš„輸入列"
-#: timezone/zic.c:1134
-#, fuzzy, c-format
-#| msgid "%s: Leap line in non leap seconds file %s\n"
-msgid "%s: Leap line in non leap seconds file %s"
-msgstr "%s: é–時設定列出ç¾åœ¨ä¸å«é–秒的設定檔 %s 中\n"
-
-#: timezone/zic.c:1142 timezone/zic.c:1547 timezone/zic.c:1569
+#: timezone/zic.c:1158 timezone/zic.c:1593 timezone/zic.c:1615
#, c-format
msgid "%s: panic: Invalid l_value %d\n"
msgstr "%s: åš´é‡éŒ¯èª¤: 錯誤的 l_value %d\n"
-#: timezone/zic.c:1151
+#: timezone/zic.c:1167
msgid "expected continuation line not found"
msgstr "找ä¸åˆ°é æœŸçš„接續列"
-#: timezone/zic.c:1193 timezone/zic.c:2976
+#: timezone/zic.c:1203
+#, fuzzy
+#| msgid "24:00 not handled by pre-1998 versions of zic"
+msgid "fractional seconds rejected by pre-2018 versions of zic"
+msgstr "24:00 無法由早於 1998 çš„ zic 版本所處ç†"
+
+#: timezone/zic.c:1221 timezone/zic.c:3078
msgid "time overflow"
msgstr "時間溢ä½"
-#: timezone/zic.c:1198
+#: timezone/zic.c:1227
msgid "values over 24 hours not handled by pre-2007 versions of zic"
msgstr "24 å°æ™‚以上的值無法由早於 2007 çš„ zic 版本所處ç†"
-#: timezone/zic.c:1209
+#: timezone/zic.c:1245
+msgid "invalid saved time"
+msgstr "無效的節約時間"
+
+#: timezone/zic.c:1256
msgid "wrong number of fields on Rule line"
msgstr "è¦å‰‡è¨­å®šåˆ—的欄ä½æ•¸ç›®éŒ¯èª¤"
-#: timezone/zic.c:1213
-msgid "nameless rule"
-msgstr "沒有å稱的è¦å‰‡"
-
-#: timezone/zic.c:1218
-msgid "invalid saved time"
-msgstr "無效的節約時間"
+#: timezone/zic.c:1265
+#, c-format
+msgid "Invalid rule name \"%s\""
+msgstr "è¦å‰‡å稱「%sã€ç„¡æ•ˆ"
-#: timezone/zic.c:1235
+#: timezone/zic.c:1287
msgid "wrong number of fields on Zone line"
msgstr "時å€è¨­å®šåˆ—的欄ä½æ•¸ç›®éŒ¯èª¤"
-#: timezone/zic.c:1240
+#: timezone/zic.c:1292
#, c-format
msgid "\"Zone %s\" line and -l option are mutually exclusive"
msgstr "\"å€æ®µ %s\" 列和 -l é¸é …是互斥的"
-#: timezone/zic.c:1246
+#: timezone/zic.c:1298
#, c-format
msgid "\"Zone %s\" line and -p option are mutually exclusive"
msgstr "\"å€æ®µ %s\" 列和 -p é¸é …是互斥的"
-#: timezone/zic.c:1253
-#, fuzzy, c-format
-#| msgid "duplicate zone name %s (file \"%s\", line %d)"
+#: timezone/zic.c:1305
+#, c-format
msgid "duplicate zone name %s (file \"%s\", line %<PRIdMAX>)"
-msgstr "複製時å€å稱 %s (檔案 \"%s\", 第 %d 列)"
+msgstr "時å€å稱 %s é‡è¤‡ï¼ˆã€Œ%sã€æª”案,第 %<PRIdMAX> 行)"
-#: timezone/zic.c:1267
+#: timezone/zic.c:1319
msgid "wrong number of fields on Zone continuation line"
msgstr "時å€æŽ¥çºŒåˆ—的欄ä½æ•¸ç›®ä¸å°"
-#: timezone/zic.c:1307
-#, fuzzy
-#| msgid "invalid UTC offset"
+#: timezone/zic.c:1359
msgid "invalid UT offset"
-msgstr "無效的 UTC ä½ç§»å€¼"
+msgstr "無效的 UT ä½ç§»"
-#: timezone/zic.c:1311
+#: timezone/zic.c:1363
msgid "invalid abbreviation format"
msgstr "無效的縮寫格å¼"
-#: timezone/zic.c:1320
-#, fuzzy, c-format
-#| msgid "24:00 not handled by pre-1998 versions of zic"
+#: timezone/zic.c:1372
+#, c-format
msgid "format '%s' not handled by pre-2015 versions of zic"
-msgstr "24:00 無法由早於 1998 çš„ zic 版本所處ç†"
+msgstr "「%sã€æ ¼å¼ä¸¦éžç”±æ—©æ–¼ 2015 çš„ zic 版本處ç†"
-#: timezone/zic.c:1347
+#: timezone/zic.c:1399
msgid "Zone continuation line end time is not after end time of previous line"
msgstr "時å€æŽ¥çºŒåˆ—çš„çµæŸæ™‚é–“ä¸åœ¨ä¸Šä¸€åˆ—çš„çµæŸæ™‚間之後"
-#: timezone/zic.c:1374
+#: timezone/zic.c:1426
msgid "wrong number of fields on Leap line"
msgstr "é–時設定列的欄ä½æ•¸ç›®éŒ¯èª¤"
-#: timezone/zic.c:1383
+#: timezone/zic.c:1435
msgid "invalid leaping year"
msgstr "無效的é–å¹´"
-#: timezone/zic.c:1403 timezone/zic.c:1501
+#: timezone/zic.c:1455 timezone/zic.c:1547
msgid "invalid month name"
-msgstr "無效的月分å稱"
+msgstr "無效的月份å稱"
-#: timezone/zic.c:1416 timezone/zic.c:1614 timezone/zic.c:1628
+#: timezone/zic.c:1468 timezone/zic.c:1663 timezone/zic.c:1677
msgid "invalid day of month"
msgstr "無效的日期數字"
-#: timezone/zic.c:1421
+#: timezone/zic.c:1473
msgid "time too small"
msgstr "時間太å°"
-#: timezone/zic.c:1425
+#: timezone/zic.c:1477
msgid "time too large"
msgstr "時間太大"
-#: timezone/zic.c:1429 timezone/zic.c:1530
+#: timezone/zic.c:1481 timezone/zic.c:1576
msgid "invalid time of day"
msgstr "無效的時間數字"
-#: timezone/zic.c:1448
+#: timezone/zic.c:1494
msgid "illegal CORRECTION field on Leap line"
msgstr "在é–時設定列中有ä¸åˆæ³•çš„ CORRECTION 欄ä½"
-#: timezone/zic.c:1453
+#: timezone/zic.c:1499
msgid "illegal Rolling/Stationary field on Leap line"
msgstr "在é–時設定列中有ä¸åˆæ³•çš„ Rolling/Stationary 欄ä½"
-#: timezone/zic.c:1459
-msgid "leap second precedes Big Bang"
+#: timezone/zic.c:1505
+msgid "leap second precedes Epoch"
msgstr ""
-#: timezone/zic.c:1472
+#: timezone/zic.c:1518
msgid "wrong number of fields on Link line"
msgstr "連çµè¨­å®šåˆ—的欄ä½æ•¸ç›®éŒ¯èª¤"
-#: timezone/zic.c:1476
+#: timezone/zic.c:1522
msgid "blank FROM field on Link line"
msgstr "連çµåˆ—中空白的 FROM 欄ä½"
-#: timezone/zic.c:1551
+#: timezone/zic.c:1597
msgid "invalid starting year"
msgstr "無效的起始年分"
-#: timezone/zic.c:1573
+#: timezone/zic.c:1619
msgid "invalid ending year"
msgstr "無效的çµæŸå¹´åˆ†"
-#: timezone/zic.c:1577
+#: timezone/zic.c:1623
msgid "starting year greater than ending year"
msgstr "起始年分比çµæŸå¹´åˆ†é‚„è¦å¤§"
-#: timezone/zic.c:1584
+#: timezone/zic.c:1630
msgid "typed single year"
msgstr "輸入的年分是åŒä¸€å¹´"
-#: timezone/zic.c:1619
+#: timezone/zic.c:1633
+#, c-format
+msgid "year type \"%s\" is obsolete; use \"-\" instead"
+msgstr "「%sã€å¹´ä»½é¡žåž‹å·²ç¶“éŽæ™‚;請改用「-ã€"
+
+#: timezone/zic.c:1668
msgid "invalid weekday name"
msgstr "無效的工作日å稱"
-#: timezone/zic.c:1743
+#: timezone/zic.c:1800
#, c-format
msgid "reference clients mishandle more than %d transition times"
-msgstr ""
+msgstr "åƒè€ƒå®¢æˆ¶ç«¯æœƒç„¡æ³•è™•ç†è¶…éŽ %d 次的轉æ›æ¬¡æ•¸"
-#: timezone/zic.c:1747
+#: timezone/zic.c:1804
msgid "pre-2014 clients may mishandle more than 1200 transition times"
-msgstr ""
+msgstr "æ—©æ–¼ 2014 的客戶端å¯èƒ½æœƒç„¡æ³•è™•ç†è¶…éŽ 1200 次的轉æ›æ¬¡æ•¸"
-#: timezone/zic.c:1858
-#, fuzzy
-#| msgid "too many transitions?!"
+#: timezone/zic.c:1920
msgid "too many transition times"
-msgstr "太多時間轉æ›äº†?!"
+msgstr "轉æ›æ¬¡æ•¸éŽå¤š"
-#: timezone/zic.c:2047
+#: timezone/zic.c:2107
#, c-format
-msgid "%%z UTC offset magnitude exceeds 99:59:59"
+msgid "%%z UT offset magnitude exceeds 99:59:59"
msgstr ""
-#: timezone/zic.c:2424
+#: timezone/zic.c:2488
msgid "no POSIX environment variable for zone"
msgstr "ç„¡ POSIX 環境變數用於å€"
-#: timezone/zic.c:2430
+#: timezone/zic.c:2494
#, c-format
msgid "%s: pre-%d clients may mishandle distant timestamps"
-msgstr ""
+msgstr "%s:早於 %d 的客戶端å¯èƒ½æœƒç„¡æ³•è™•ç†éŽä¹…的時間戳"
-#: timezone/zic.c:2566
+#: timezone/zic.c:2631
msgid "two rules for same instant"
msgstr ""
-#: timezone/zic.c:2627
+#: timezone/zic.c:2696
msgid "can't determine time zone abbreviation to use just after until time"
msgstr "無法決定在çµæŸæ™‚間以後該使用的時å€ç°¡å¯«"
-#: timezone/zic.c:2725
+#: timezone/zic.c:2785
msgid "too many local time types"
msgstr "太多本地時間格å¼"
-#: timezone/zic.c:2729
-#, fuzzy
-#| msgid "UTC offset out of range"
+#: timezone/zic.c:2789
msgid "UT offset out of range"
-msgstr "UTC å移超出範åœ"
+msgstr "UT ä½ç§»è¶…出範åœ"
-#: timezone/zic.c:2753
+#: timezone/zic.c:2813
msgid "too many leap seconds"
msgstr "太多é–秒"
-#: timezone/zic.c:2759
-msgid "repeated leap second moment"
-msgstr "é‡è¤‡çš„é–秒設定"
+#: timezone/zic.c:2844
+msgid "Leap seconds too close together"
+msgstr "é–秒之間éŽæ–¼æŽ¥è¿‘"
-#: timezone/zic.c:2830
+#: timezone/zic.c:2891
msgid "Wild result from command execution"
msgstr "命令執行導致奇怪的çµæžœ"
-#: timezone/zic.c:2831
+#: timezone/zic.c:2892
#, c-format
msgid "%s: command was '%s', result was %d\n"
msgstr "%s: 輸入命令為 '%s', çµæžœç‚º %d\n"
-#: timezone/zic.c:2961
+#: timezone/zic.c:2998
+#, c-format
+msgid "\"%s\" is undocumented; use \"last%s\" instead"
+msgstr "「%sã€æœªåœ¨æ–‡ä»¶ä¸­è¨˜è¼‰ï¼›è«‹æ”¹ç”¨ã€Œlast%sã€"
+
+#: timezone/zic.c:3029
+#, c-format
+msgid "\"%s\" is ambiguous in pre-2017c zic"
+msgstr "「%sã€åœ¨ pre-2017c zic 是ä¸æ˜Žç¢ºçš„"
+
+#: timezone/zic.c:3063
msgid "Odd number of quotation marks"
msgstr "引號數目為奇數"
-#: timezone/zic.c:3046
+#: timezone/zic.c:3157
msgid "use of 2/29 in non leap-year"
msgstr "在éžé–年時用到 2/29 æ—¥"
-#: timezone/zic.c:3081
-#, fuzzy
-#| msgid "rule goes past start/end of month--will not work with pre-2004 versions of zic"
+#: timezone/zic.c:3192
msgid "rule goes past start/end of month; will not work with pre-2004 versions of zic"
-msgstr "è¦å‰‡è¶…éŽé–‹å§‹/çµæŸæœˆåˆ†--將無法é©ç”¨æ—©æ–¼ 2004 çš„ zic 版本"
+msgstr "è¦å‰‡è¶…éŽé–‹å§‹ / çµæŸæœˆä»½ï¼›å°‡ç„¡æ³•é©ç”¨æ–¼æ—©æ–¼ 2004 çš„ zic 版本"
-#: timezone/zic.c:3108
-#, fuzzy
-#| msgid "time zone abbreviation has fewer than 3 alphabetics"
+#: timezone/zic.c:3219
msgid "time zone abbreviation has fewer than 3 characters"
-msgstr "時間å€ç¸®å¯«å°‘æ–¼ 3 個字æ¯"
+msgstr "時å€ç¸®å¯«å°æ–¼ 3 個字元"
-#: timezone/zic.c:3110
-#, fuzzy
-#| msgid "time zone abbreviation has too many alphabetics"
+#: timezone/zic.c:3221
msgid "time zone abbreviation has too many characters"
-msgstr "時å€ç¸®å¯«å¤ªå¤šå­—æ¯"
+msgstr "時å€ç¸®å¯«å­—數éŽå¤š"
-#: timezone/zic.c:3112
+#: timezone/zic.c:3223
msgid "time zone abbreviation differs from POSIX standard"
msgstr "時å€ç¸®å¯«èˆ‡ POSIX 標準ä¸åŒ"
-#: timezone/zic.c:3118
+#: timezone/zic.c:3229
msgid "too many, or too long, time zone abbreviations"
msgstr "時å€ç¸®å¯«å¤ªå¤šæˆ–者太長"
-#: timezone/zic.c:3161
-#, fuzzy, c-format
-#| msgid "%s: Can't create directory %s: %s\n"
+#: timezone/zic.c:3275
+#, c-format
msgid "%s: Can't create directory %s: %s"
-msgstr "%s: 無法建立目錄 %s: %s\n"
-
-#~ msgid "cannot allocate TLS data structures for initial thread"
-#~ msgstr "無法é…ç½® TLS 資料çµæ§‹ç”¨ä»¥èµ·å§‹åŸ·è¡Œç·’"
-
-#~ msgid "cannot handle TLS data"
-#~ msgstr "ç„¡æ³•è™•ç† TLS 資料"
-
-#~ msgid "invalid caller"
-#~ msgstr "無效的呼å«è€…"
-
-#~ msgid "cannot load any more object with static TLS"
-#~ msgstr "無法以éœæ…‹ TLS å†è¼‰å…¥ä»»ä½•ç‰©ä»¶"
-
-#~ msgid "%s: no PLTREL found in object %s\n"
-#~ msgstr "%s: 在目的檔 %s 中沒有找到 PLTREL\n"
-
-#~ msgid "Don't generate links"
-#~ msgstr "ä¸ç”¢ç”Ÿé€£çµ"
-
-#~ msgid "cannot create internal descriptors"
-#~ msgstr "無法建立內部敘述項"
-
-#~ msgid "Character out of range for UTF-8"
-#~ msgstr "字元超出 UTF-8 範åœ"
-
-#~ msgid "no definition of `UNDEFINED'"
-#~ msgstr "沒有找到 `UNDEFINED' 的定義"
-
-#~ msgid "non-symbolic character value should not be used"
-#~ msgstr "éžç¬¦è™Ÿæ€§çš„字元值ä¸æ‡‰è©²è¢«ä½¿ç”¨æ‰å°"
-
-#~ msgid "Create old-style tables"
-#~ msgstr "產生舊格å¼çš„表格"
-
-#~ msgid "cannot set socket to close on exec: %s; disabling paranoia mode"
-#~ msgstr "無法設定通訊端到關閉於 exec:%s; åœç”¨ paranoia 模å¼"
-
-#~ msgid "cannot change socket to nonblocking mode: %s"
-#~ msgstr "無法變更通訊端為éžå€å¡Šæ¨¡å¼ï¼š%s"
-
-#~ msgid "cannot set socket to close on exec: %s"
-#~ msgstr "無法設定通訊端於 exec:%s 時關閉"
-
-#~ msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode"
-#~ msgstr "無法讀å–/proc/self/cmdline:%s; åœç”¨ paranoia 模å¼"
-
-#~ msgid "Haven't found \"%s\" in password cache!"
-#~ msgstr "尚未在密碼快å–中找到 \"%s\"!"
-
-#~ msgid "Reloading \"%s\" in password cache!"
-#~ msgstr "é‡æ–°è¼‰å…¥ã€Œ%sã€æ–¼å¯†ç¢¼å¿«å–ï¼"
-
-#~ msgid "compile-time support for database policy missing"
-#~ msgstr "compile-time 支æ´ç”¨æ–¼è³‡æ–™åº«ç­–略缺少"
-
-#~ msgid "%s: option '--%s' doesn't allow an argument\n"
-#~ msgstr "%s: é¸é … `--%s' ä¸å…許附加引數\n"
-
-#~ msgid "%s: unrecognized option '--%s'\n"
-#~ msgstr "%s: 未知的é¸é … `--%s'\n"
-
-#~ msgid "%s: option '-W %s' doesn't allow an argument\n"
-#~ msgstr "%s: é¸é … `-W %s' ä¸å…許附加引數\n"
-
-#~ msgid "%s: option '-W %s' requires an argument\n"
-#~ msgstr "%s:é¸é …『-W %sã€éœ€è¦ä¸€å€‹å¼•æ•¸\n"
-
-#~ msgid "This implementation doesn't support newstyle or MT-safe code!\n"
-#~ msgstr "此實作方å¼ä¸æ”¯æ´æ–°çš„å½¢å¼æˆ–多安全執行åºçš„程å¼!\n"
-
-#~ msgid "program %lu is not available\n"
-#~ msgstr "ç¨‹å¼ %lu ä¸å­˜åœ¨\n"
-
-#~ msgid "program %lu version %lu is not available\n"
-#~ msgstr "ç¨‹å¼ %lu 的第 %lu 版並ä¸å­˜åœ¨\n"
-
-#~ msgid "program %lu version %lu ready and waiting\n"
-#~ msgstr "ç¨‹å¼ %lu 的第 %lu 版已經就緒並等待æœå‹™ä¸­\n"
-
-#~ msgid "rpcinfo: can't contact portmapper"
-#~ msgstr "rpcinfo: 無法建立跟 portmapper 之間的連線"
-
-#~ msgid "No remote programs registered.\n"
-#~ msgstr "沒有註冊éŽçš„é ç«¯æ‡‰ç”¨ç¨‹å¼\n"
-
-#~ msgid " program vers proto port\n"
-#~ msgstr " 程å¼æŽ¡ç”¨çš„å”定連接阜\n"
-
-#~ msgid "(unknown)"
-#~ msgstr "(未知)"
-
-#~ msgid "rpcinfo: broadcast failed: %s\n"
-#~ msgstr "rpcinfo: 廣播失敗: %s\n"
-
-#~ msgid "Sorry. You are not root\n"
-#~ msgstr "ä¸å¥½æ„æ€ï¼Œä½ ä¸¦ä¸æ˜¯ root 使用者\n"
-
-#~ msgid "rpcinfo: Could not delete registration for prog %s version %s\n"
-#~ msgstr "rpcinfo: ç„¡æ³•åˆªé™¤ç¨‹å¼ %s (第 %s 版) 的註冊資料\n"
-
-#~ msgid "Usage: rpcinfo [ -n portnum ] -u host prognum [ versnum ]\n"
-#~ msgstr "使用方å¼: rpcinfo [ -n portnum ] -u host prognum [ versnum ]\n"
-
-#~ msgid " rpcinfo [ -n portnum ] -t host prognum [ versnum ]\n"
-#~ msgstr " rpcinfo [ -n portnum ] -t host prognum [ versnum ]\n"
-
-#~ msgid " rpcinfo -p [ host ]\n"
-#~ msgstr " rpcinfo -p [ host ]\n"
-
-#~ msgid " rpcinfo -b prognum versnum\n"
-#~ msgstr " rpcinfo -b prognum versnum\n"
-
-#~ msgid " rpcinfo -d prognum versnum\n"
-#~ msgstr " rpcinfo -d prognum versnum\n"
-
-#~ msgid "rpcinfo: %s is unknown service\n"
-#~ msgstr "rpcinfo: %s 是ä¸æ˜Žçš„æœå‹™\n"
-
-#~ msgid "rpcinfo: %s is unknown host\n"
-#~ msgstr "rpcinfo: %s 是ä¸æ˜Žçš„主機\n"
-
-#~ msgid "lacks alphabetic at start"
-#~ msgstr "lacks å­—æ¯é †åºæ–¼é–‹å§‹"
-
-#~ msgid "differs from POSIX standard"
-#~ msgstr "differs 從 POSIX 標準"
-
-#~ msgid ""
-#~ "%s: usage is %s [ --version ] [ --help ] [ -v ] [ -c [loyear,]hiyear ] zonename ...\n"
-#~ "\n"
-#~ "Report bugs to %s.\n"
-#~ msgstr ""
-#~ "%s:用法為 %s [--version] [--help] [-v] [-c [低年分,]高年分 ] å€åŸŸå稱 ...\n"
-#~ "\n"
-#~ "將錯誤通報給 %s。\n"
-
-#~ msgid "Error writing to standard output"
-#~ msgstr "寫入標準輸出時錯誤"
-
-#~ msgid "%s: use of -v on system with floating time_t other than float or double\n"
-#~ msgstr "%s: 使用 -v 於具備浮點數 time_t 的系統而éžæµ®é»žæ•¸æˆ–é›™å€ç²¾åº¦\n"
-
-#~ msgid "hard link failed, symbolic link used"
-#~ msgstr "實體連çµå¤±æ•—,使用符號連çµä»£æ›¿"
-
-#~ msgid "%s: Error reading %s\n"
-#~ msgstr "%s: 讀å–錯誤 %s\n"
-
-#~ msgid "%s: Error closing %s: %s\n"
-#~ msgstr "%s: 關閉錯誤 %s: %s\n"
-
-#~ msgid "time before zero"
-#~ msgstr "在零之å‰çš„時間"
-
-#~ msgid "blank TO field on Link line"
-#~ msgstr "連çµåˆ—中空白的 TO 欄ä½"
-
-#~ msgid "%s: Error writing %s\n"
-#~ msgstr "%s: 寫入錯誤 %s\n"
+msgstr "%s:無法建立 %s 目錄:%s"
-#~ msgid "internal error - addtype called with bad isdst"
-#~ msgstr "內部錯誤 - 用錯誤的 isdst å‘¼å« addtype 函å¼"
+#~ msgid "cannot open zero fill device"
+#~ msgstr "無法開啟以零填滿的è£ç½®"
-#~ msgid "internal error - addtype called with bad ttisstd"
-#~ msgstr "內部錯誤 - 用錯誤的 ttisstd å‘¼å« addtype 函å¼"
+#~ msgid "relocation error"
+#~ msgstr "é‡å®šå€éŒ¯èª¤"
-#~ msgid "internal error - addtype called with bad ttisgmt"
-#~ msgstr "內部錯誤 - 用錯誤的 ttisgmt å‘¼å« addtype 函å¼"
+#~ msgid "Cannot set LC_CTYPE to default locale"
+#~ msgstr "無法將 LC_CTYPE 設置為é è¨­çš„語å€"
-#~ msgid "time zone abbreviation lacks alphabetic at start"
-#~ msgstr "時å€ç¸®å¯«é–‹é ­ç¼ºå°‘å­—æ¯"
+#~ msgid "Cannot set LC_MESSAGES to default locale"
+#~ msgstr "無法將 LC_MESSAGES 設置為é è¨­çš„語å€"
-#~ msgid "%s: %d did not sign extend correctly\n"
-#~ msgstr "%s: %d 無法正確地延展訊號\n"
+#~ msgid "Cannot set LC_COLLATE to default locale"
+#~ msgstr "無法將 LC_COLLATE 設置為é è¨­çš„語å€"
diff --git a/posix/Makefile b/posix/Makefile
index 00c62841a2..fe031eb450 100644
--- a/posix/Makefile
+++ b/posix/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1991-2018 Free Software Foundation, Inc.
+# Copyright (C) 1991-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
# Sub-makefile for POSIX portion of the library.
@@ -31,7 +31,8 @@ headers := sys/utsname.h sys/times.h sys/wait.h sys/types.h unistd.h \
bits/local_lim.h tar.h bits/utsname.h bits/confname.h \
bits/waitflags.h bits/waitstatus.h sys/unistd.h sched.h \
bits/sched.h bits/cpu-set.h re_comp.h wait.h bits/environments.h \
- cpio.h spawn.h bits/unistd.h bits/types/struct_sched_param.h
+ cpio.h spawn.h bits/unistd.h bits/types/struct_sched_param.h \
+ bits/unistd_ext.h
routines := \
uname \
@@ -55,6 +56,7 @@ routines := \
pread pwrite pread64 pwrite64 \
spawn_faction_init spawn_faction_destroy spawn_faction_addclose \
spawn_faction_addopen spawn_faction_adddup2 spawn_valid_fd \
+ spawn_faction_addchdir spawn_faction_addfchdir \
spawnattr_init spawnattr_destroy \
spawnattr_getdefault spawnattr_setdefault \
spawnattr_getflags spawnattr_setflags \
@@ -62,7 +64,8 @@ routines := \
spawnattr_getsigmask spawnattr_getschedpolicy spawnattr_getschedparam \
spawnattr_setsigmask spawnattr_setschedpolicy spawnattr_setschedparam \
posix_madvise \
- get_child_max sched_cpucount sched_cpualloc sched_cpufree
+ get_child_max sched_cpucount sched_cpualloc sched_cpufree \
+ streams-compat
aux := init-posix environ
tests := test-errno tstgetopt testfnm runtests runptests \
@@ -92,11 +95,13 @@ tests := test-errno tstgetopt testfnm runtests runptests \
bug-getopt5 tst-getopt_long1 bug-regex34 bug-regex35 \
tst-pathconf tst-rxspencer-no-utf8 \
tst-fnmatch3 bug-regex36 \
+ tst-fnmatch4 tst-fnmatch5 \
tst-posix_spawn-fd tst-posix_spawn-setsid \
tst-posix_fadvise tst-posix_fadvise64 \
tst-sysconf-empty-chroot tst-glob_symlinks tst-fexecve \
tst-glob-tilde test-ssize-max tst-spawn4 bug-regex37 \
- bug-regex38
+ bug-regex38 tst-regcomp-truncated tst-spawn-chdir \
+ tst-wordexp-nocmd
tests-internal := bug-regex5 bug-regex20 bug-regex33 \
tst-rfc3484 tst-rfc3484-2 tst-rfc3484-3 \
tst-glob_lstat_compat tst-spawn4-compat
@@ -114,7 +119,7 @@ others := getconf
install-bin := getconf
install-others-programs := $(inst_libexecdir)/getconf
-before-compile += testcases.h ptestcases.h $(objpfx)posix-conf-vars-def.h
+before-compile += $(objpfx)posix-conf-vars-def.h
# So they get cleaned up.
generated += $(addprefix wordexp-test-result, 1 2 3 4 5 6 7 8 9 10) \
@@ -128,7 +133,8 @@ generated += $(addprefix wordexp-test-result, 1 2 3 4 5 6 7 8 9 10) \
tst-boost.mtrace bug-ga2.mtrace bug-ga2-mem.out \
bug-glob2.mtrace bug-glob2-mem.out tst-vfork3-mem.out \
tst-vfork3.mtrace getconf.speclist tst-fnmatch-mem.out \
- tst-fnmatch.mtrace bug-regex36.mtrace
+ tst-fnmatch.mtrace bug-regex36.mtrace \
+ testcases.h ptestcases.h
ifeq ($(run-built-tests),yes)
ifeq (yes,$(build-shared))
@@ -166,7 +172,8 @@ $(objpfx)wordexp-tst.out: wordexp-tst.sh $(objpfx)wordexp-test
endif
LOCALES := cs_CZ.UTF-8 da_DK.ISO-8859-1 de_DE.ISO-8859-1 de_DE.UTF-8 \
- en_US.UTF-8 es_US.ISO-8859-1 es_US.UTF-8 ja_JP.EUC-JP tr_TR.UTF-8
+ en_US.UTF-8 es_US.ISO-8859-1 es_US.UTF-8 ja_JP.EUC-JP tr_TR.UTF-8 \
+ cs_CZ.ISO-8859-2
include ../gen-locales.mk
$(objpfx)bug-regex1.out: $(gen-locales)
@@ -194,6 +201,7 @@ $(objpfx)tst-regex2.out: $(gen-locales)
$(objpfx)tst-regexloc.out: $(gen-locales)
$(objpfx)tst-rxspencer.out: $(gen-locales)
$(objpfx)tst-rxspencer-no-utf8.out: $(gen-locales)
+$(objpfx)tst-regcomp-truncated.out: $(gen-locales)
endif
# If we will use the generic uname implementation, we must figure out what
@@ -259,13 +267,15 @@ bug-glob1-ARGS = "$(objpfx)"
tst-execvp3-ARGS = --test-dir=$(objpfx)
CFLAGS-tst-spawn3.c += -DOBJPFX=\"$(objpfx)\"
-testcases.h: TESTS TESTS2C.sed
+$(objpfx)testcases.h: TESTS TESTS2C.sed
LC_ALL=C sed -f TESTS2C.sed < $< > $@T
- mv -f $@T $@
+ mv $@T $@
+$(objpfx)runtests.o: $(objpfx)testcases.h
-ptestcases.h: PTESTS PTESTS2C.sed
+$(objpfx)ptestcases.h: PTESTS PTESTS2C.sed
LC_ALL=C sed -f PTESTS2C.sed < $< > $@T
- mv -f $@T $@
+ mv $@T $@
+$(objpfx)runptests.o: $(objpfx)ptestcases.h
$(objpfx)tst-getopt-cancel: $(shared-thread-library)
diff --git a/posix/Versions b/posix/Versions
index cad4c23e8c..7d06a6d0c0 100644
--- a/posix/Versions
+++ b/posix/Versions
@@ -80,6 +80,10 @@ libc {
# w*
waitid; wordexp; wordfree;
}
+ GLIBC_2.1 {
+ # Compat symbols for the obsolete, unimplemented XSI streams extension.
+ fattach; fdetach; getmsg; getpmsg; isastream; putmsg; putpmsg;
+ }
GLIBC_2.1.2 {
# functions used in other libraries
__vfork;
@@ -137,6 +141,12 @@ libc {
GLIBC_2.27 {
glob; glob64;
}
+ GLIBC_2.29 {
+ posix_spawn_file_actions_addchdir_np;
+ posix_spawn_file_actions_addfchdir_np;
+ }
+ GLIBC_2.30 {
+ }
GLIBC_PRIVATE {
__libc_fork; __libc_pread; __libc_pwrite;
__nanosleep_nocancel; __pause_nocancel;
diff --git a/posix/_exit.c b/posix/_exit.c
index 9ea1bf52d8..d694359777 100644
--- a/posix/_exit.c
+++ b/posix/_exit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <stdlib.h>
diff --git a/posix/alarm.c b/posix/alarm.c
index dd08de2f26..ca62d82a75 100644
--- a/posix/alarm.c
+++ b/posix/alarm.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/posix/annexc.c b/posix/annexc.c
index 66768dbe2a..5a2e678ce8 100644
--- a/posix/annexc.c
+++ b/posix/annexc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <fnmatch.h>
diff --git a/posix/bits/cpu-set.h b/posix/bits/cpu-set.h
index c5e919e862..9e2b79502f 100644
--- a/posix/bits/cpu-set.h
+++ b/posix/bits/cpu-set.h
@@ -1,6 +1,6 @@
/* Definition of the cpu_set_t structure used by the POSIX 1003.1b-1993
scheduling interface.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_CPU_SET_H
#define _BITS_CPU_SET_H 1
diff --git a/posix/bits/getopt_core.h b/posix/bits/getopt_core.h
index a13838faa8..7cfe2a3864 100644
--- a/posix/bits/getopt_core.h
+++ b/posix/bits/getopt_core.h
@@ -1,5 +1,5 @@
/* Declarations for getopt (basic, portable features only).
- Copyright (C) 1989-2018 Free Software Foundation, Inc.
+ Copyright (C) 1989-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library and is also part of gnulib.
Patches to this file should be submitted to both projects.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _GETOPT_CORE_H
#define _GETOPT_CORE_H 1
diff --git a/posix/bits/getopt_ext.h b/posix/bits/getopt_ext.h
index b4c68f1748..c1ac5e6d6c 100644
--- a/posix/bits/getopt_ext.h
+++ b/posix/bits/getopt_ext.h
@@ -1,5 +1,5 @@
/* Declarations for getopt (GNU extensions).
- Copyright (C) 1989-2018 Free Software Foundation, Inc.
+ Copyright (C) 1989-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library and is also part of gnulib.
Patches to this file should be submitted to both projects.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _GETOPT_EXT_H
#define _GETOPT_EXT_H 1
diff --git a/posix/bits/getopt_posix.h b/posix/bits/getopt_posix.h
index 1f90e84cba..64d8295686 100644
--- a/posix/bits/getopt_posix.h
+++ b/posix/bits/getopt_posix.h
@@ -1,5 +1,5 @@
/* Declarations for getopt (POSIX compatibility shim).
- Copyright (C) 1989-2018 Free Software Foundation, Inc.
+ Copyright (C) 1989-2019 Free Software Foundation, Inc.
Unlike the bulk of the getopt implementation, this file is NOT part
of gnulib.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _GETOPT_POSIX_H
#define _GETOPT_POSIX_H 1
diff --git a/posix/bits/posix1_lim.h b/posix/bits/posix1_lim.h
index 18ac47fb2b..3a7c4e2b3f 100644
--- a/posix/bits/posix1_lim.h
+++ b/posix/bits/posix1_lim.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* POSIX Standard: 2.9.2 Minimum Values Added to <limits.h>
diff --git a/posix/bits/posix2_lim.h b/posix/bits/posix2_lim.h
index c460ea266f..e5f7bb2fef 100644
--- a/posix/bits/posix2_lim.h
+++ b/posix/bits/posix2_lim.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* Never include this file directly; include <limits.h> instead.
diff --git a/posix/bits/types.h b/posix/bits/types.h
index 5e22ce41bf..4f10f22113 100644
--- a/posix/bits/types.h
+++ b/posix/bits/types.h
@@ -1,5 +1,5 @@
/* bits/types.h -- definitions of __*_t types underlying *_t types.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* Never include this file directly; use <sys/types.h> instead.
@@ -25,6 +25,7 @@
#include <features.h>
#include <bits/wordsize.h>
+#include <bits/timesize.h>
/* Convenience types. */
typedef unsigned char __u_char;
@@ -86,7 +87,7 @@ __extension__ typedef unsigned long long int __uintmax_t;
32 -- "natural" 32-bit type (always int)
64 -- "natural" 64-bit type (long or long long)
LONG32 -- 32-bit type, traditionally long
- QUAD -- 64-bit type, always long long
+ QUAD -- 64-bit type, traditionally long long
WORD -- natural type of __WORDSIZE bits (int or long)
LONGWORD -- type of __WORDSIZE bits, traditionally long
@@ -112,14 +113,14 @@ __extension__ typedef unsigned long long int __uintmax_t;
#define __SLONGWORD_TYPE long int
#define __ULONGWORD_TYPE unsigned long int
#if __WORDSIZE == 32
-# define __SQUAD_TYPE __quad_t
-# define __UQUAD_TYPE __u_quad_t
+# define __SQUAD_TYPE __int64_t
+# define __UQUAD_TYPE __uint64_t
# define __SWORD_TYPE int
# define __UWORD_TYPE unsigned int
# define __SLONG32_TYPE long int
# define __ULONG32_TYPE unsigned long int
-# define __S64_TYPE __quad_t
-# define __U64_TYPE __u_quad_t
+# define __S64_TYPE __int64_t
+# define __U64_TYPE __uint64_t
/* We want __extension__ before typedef's that use nonstandard base types
such as `long long' in C89 mode. */
# define __STD_TYPE __extension__ typedef
@@ -138,6 +139,7 @@ __extension__ typedef unsigned long long int __uintmax_t;
# error
#endif
#include <bits/typesizes.h> /* Defines __*_T_TYPE macros. */
+#include <bits/time64.h> /* Defines __TIME*_T_TYPE macros. */
__STD_TYPE __DEV_T_TYPE __dev_t; /* Type of device numbers. */
@@ -211,6 +213,15 @@ __STD_TYPE __U32_TYPE __socklen_t;
It is not currently necessary for this to be machine-specific. */
typedef int __sig_atomic_t;
+/* Seconds since the Epoch, visible to user code when time_t is too
+ narrow only for consistency with the old way of widening too-narrow
+ types. User code should never use __time64_t. */
+#if __TIMESIZE == 64 && defined __LIBC
+# define __time64_t __time_t
+#elif __TIMESIZE != 64
+__STD_TYPE __TIME64_T_TYPE __time64_t;
+#endif
+
#undef __STD_TYPE
#endif /* bits/types.h */
diff --git a/posix/bits/unistd.h b/posix/bits/unistd.h
index 9a749dccf8..103095b8e4 100644
--- a/posix/bits/unistd.h
+++ b/posix/bits/unistd.h
@@ -1,5 +1,5 @@
/* Checking macros for unistd functions.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _UNISTD_H
# error "Never include <bits/unistd.h> directly; use <unistd.h> instead."
diff --git a/posix/bsd-getpgrp.c b/posix/bsd-getpgrp.c
index 195b882711..62e1cc7e75 100644
--- a/posix/bsd-getpgrp.c
+++ b/posix/bsd-getpgrp.c
@@ -1,5 +1,5 @@
/* BSD-compatible versions of getpgrp function.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
diff --git a/posix/bug-glob2.c b/posix/bug-glob2.c
index 417568c043..6cadcb667b 100644
--- a/posix/bug-glob2.c
+++ b/posix/bug-glob2.c
@@ -1,6 +1,6 @@
/* Test glob memory management.
for the filesystem access functions.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <error.h>
diff --git a/posix/bug-regex10.c b/posix/bug-regex10.c
index 8599c606b8..319b5f941c 100644
--- a/posix/bug-regex10.c
+++ b/posix/bug-regex10.c
@@ -1,5 +1,5 @@
/* Test for re_match with non-zero start.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <locale.h>
#include <stdio.h>
diff --git a/posix/bug-regex11.c b/posix/bug-regex11.c
index 37707e9b92..fdd3a9ad33 100644
--- a/posix/bug-regex11.c
+++ b/posix/bug-regex11.c
@@ -1,5 +1,5 @@
/* Regular expression tests.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <mcheck.h>
diff --git a/posix/bug-regex12.c b/posix/bug-regex12.c
index 96ecac870e..e20da58697 100644
--- a/posix/bug-regex12.c
+++ b/posix/bug-regex12.c
@@ -1,5 +1,5 @@
/* Regular expression tests.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <mcheck.h>
diff --git a/posix/bug-regex13.c b/posix/bug-regex13.c
index 8cbcf98582..3e46378a0d 100644
--- a/posix/bug-regex13.c
+++ b/posix/bug-regex13.c
@@ -1,5 +1,5 @@
/* Regular expression tests.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <mcheck.h>
diff --git a/posix/bug-regex14.c b/posix/bug-regex14.c
index b2f1bd092c..518da6cdcb 100644
--- a/posix/bug-regex14.c
+++ b/posix/bug-regex14.c
@@ -1,5 +1,5 @@
/* Tests re_comp and re_exec.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _REGEX_RE_COMP
#include <sys/types.h>
diff --git a/posix/bug-regex17.c b/posix/bug-regex17.c
index 893b9654b8..28a02542c1 100644
--- a/posix/bug-regex17.c
+++ b/posix/bug-regex17.c
@@ -1,5 +1,5 @@
/* German regular expression tests.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <mcheck.h>
diff --git a/posix/bug-regex18.c b/posix/bug-regex18.c
index 3904cfbacf..75d3a0e043 100644
--- a/posix/bug-regex18.c
+++ b/posix/bug-regex18.c
@@ -1,5 +1,5 @@
/* Turkish regular expression tests.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <mcheck.h>
diff --git a/posix/bug-regex19.c b/posix/bug-regex19.c
index aca1ddb5c4..5d64b39468 100644
--- a/posix/bug-regex19.c
+++ b/posix/bug-regex19.c
@@ -1,5 +1,5 @@
/* Regular expression tests.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <mcheck.h>
diff --git a/posix/bug-regex2.c b/posix/bug-regex2.c
index 05e6be95ab..30663392e6 100644
--- a/posix/bug-regex2.c
+++ b/posix/bug-regex2.c
@@ -1,5 +1,5 @@
/* Test for memory handling in regex.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <mcheck.h>
diff --git a/posix/bug-regex20.c b/posix/bug-regex20.c
index 8126a3ce9f..5d1ca47e3b 100644
--- a/posix/bug-regex20.c
+++ b/posix/bug-regex20.c
@@ -1,5 +1,5 @@
/* Test for UTF-8 regular expression optimizations.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <mcheck.h>
diff --git a/posix/bug-regex21.c b/posix/bug-regex21.c
index a88c551dcd..9f468d0b40 100644
--- a/posix/bug-regex21.c
+++ b/posix/bug-regex21.c
@@ -1,5 +1,5 @@
/* Test for memory leaks in regcomp.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <mcheck.h>
#include <regex.h>
diff --git a/posix/bug-regex22.c b/posix/bug-regex22.c
index 2c561d8e43..2d354f0fa6 100644
--- a/posix/bug-regex22.c
+++ b/posix/bug-regex22.c
@@ -1,5 +1,5 @@
/* Test re.translate != NULL.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <locale.h>
@@ -99,8 +99,8 @@ main (void)
s = re_compile_pattern ("[[:DIGIT:]]", 11, &re);
if (s == NULL)
{
- printf ("compilation of \"[[:DIGIT:]]\" pattern unexpectedly succeeded: %s\n",
- s);
+ puts ("compilation of \"[[:DIGIT:]]\" pattern unexpectedly succeeded: "
+ "length 11");
result = 1;
}
@@ -109,8 +109,8 @@ main (void)
s = re_compile_pattern ("[[:DIGIT:]]", 2, &re);
if (s == NULL)
{
- printf ("compilation of \"[[:DIGIT:]]\" pattern unexpectedly succeeded: %s\n",
- s);
+ puts ("compilation of \"[[:DIGIT:]]\" pattern unexpectedly succeeded: "
+ "length 2");
result = 1;
}
diff --git a/posix/bug-regex23.c b/posix/bug-regex23.c
index 9289727316..60f1e7f7e3 100644
--- a/posix/bug-regex23.c
+++ b/posix/bug-regex23.c
@@ -1,5 +1,5 @@
/* Test we don't segfault on invalid UTF-8 sequence.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <locale.h>
#include <regex.h>
diff --git a/posix/bug-regex25.c b/posix/bug-regex25.c
index f76720ac7a..8023746665 100644
--- a/posix/bug-regex25.c
+++ b/posix/bug-regex25.c
@@ -1,5 +1,5 @@
/* Test re_search in multibyte locale other than UTF-8.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <locale.h>
#include <regex.h>
diff --git a/posix/bug-regex26.c b/posix/bug-regex26.c
index 02f0aafbf6..54e4be2af2 100644
--- a/posix/bug-regex26.c
+++ b/posix/bug-regex26.c
@@ -1,5 +1,5 @@
/* Test re_search with dotless i.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <locale.h>
#include <regex.h>
diff --git a/posix/bug-regex27.c b/posix/bug-regex27.c
index f010e545c6..da640c4a63 100644
--- a/posix/bug-regex27.c
+++ b/posix/bug-regex27.c
@@ -1,5 +1,5 @@
/* Test REG_NEWLINE.
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <regex.h>
#include <stdio.h>
diff --git a/posix/bug-regex28.c b/posix/bug-regex28.c
index ba263b27c8..27e4044e77 100644
--- a/posix/bug-regex28.c
+++ b/posix/bug-regex28.c
@@ -1,5 +1,5 @@
/* Test RE_HAT_LISTS_NOT_NEWLINE and RE_DOT_NEWLINE.
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <regex.h>
#include <stdio.h>
diff --git a/posix/bug-regex3.c b/posix/bug-regex3.c
index a8616aa3d5..6a6645293a 100644
--- a/posix/bug-regex3.c
+++ b/posix/bug-regex3.c
@@ -1,5 +1,5 @@
/* Test for case handling in regex.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <regex.h>
diff --git a/posix/bug-regex30.c b/posix/bug-regex30.c
index a8f5fd2899..20fb02238d 100644
--- a/posix/bug-regex30.c
+++ b/posix/bug-regex30.c
@@ -1,5 +1,5 @@
/* Russian regular expression tests.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Paolo Bonzini <pbonzini@redhat.com>, 2009.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <mcheck.h>
diff --git a/posix/bug-regex33.c b/posix/bug-regex33.c
index 015b73c1d1..855f5b9005 100644
--- a/posix/bug-regex33.c
+++ b/posix/bug-regex33.c
@@ -1,5 +1,5 @@
/* Test re_search with multi-byte characters in EUC-JP.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Stanislav Brabec <sbrabec@suse.cz>, 2012.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _GNU_SOURCE 1
#include <locale.h>
diff --git a/posix/bug-regex34.c b/posix/bug-regex34.c
index 4eeb704ee7..0b2b9684b5 100644
--- a/posix/bug-regex34.c
+++ b/posix/bug-regex34.c
@@ -1,5 +1,5 @@
/* Test re_search with multi-byte characters in UTF-8.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _GNU_SOURCE 1
#include <stdio.h>
diff --git a/posix/bug-regex35.c b/posix/bug-regex35.c
index 852e2b8a7a..6721a2679f 100644
--- a/posix/bug-regex35.c
+++ b/posix/bug-regex35.c
@@ -1,5 +1,5 @@
/* Test regcomp with collating symbols in bracket expressions
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <string.h>
diff --git a/posix/bug-regex36.c b/posix/bug-regex36.c
index d947dc4a64..5f8703ebae 100644
--- a/posix/bug-regex36.c
+++ b/posix/bug-regex36.c
@@ -1,5 +1,5 @@
/* Test regcomp not leaking memory on parse errors
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <mcheck.h>
#include <regex.h>
diff --git a/posix/bug-regex37.c b/posix/bug-regex37.c
index 87a0916914..847b261699 100644
--- a/posix/bug-regex37.c
+++ b/posix/bug-regex37.c
@@ -1,5 +1,5 @@
/* Test regcomp return for invalid expression (BZ #21163).
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <regex.h>
diff --git a/posix/bug-regex38.c b/posix/bug-regex38.c
index cb0eb7d214..c3bbcf80bd 100644
--- a/posix/bug-regex38.c
+++ b/posix/bug-regex38.c
@@ -1,5 +1,5 @@
/* Diagnose invalid back-reference in the ERE '()|\1' (BZ #18986).
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <regex.h>
diff --git a/posix/bug-regex4.c b/posix/bug-regex4.c
index 54be0c606d..ec0dcd7c2e 100644
--- a/posix/bug-regex4.c
+++ b/posix/bug-regex4.c
@@ -1,5 +1,5 @@
/* Test for re_search_2.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <locale.h>
#include <stdio.h>
diff --git a/posix/bug-regex6.c b/posix/bug-regex6.c
index af3a9c447d..7c329b5a07 100644
--- a/posix/bug-regex6.c
+++ b/posix/bug-regex6.c
@@ -1,5 +1,5 @@
/* Test for regexec.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <locale.h>
#include <stdio.h>
diff --git a/posix/bug-regex7.c b/posix/bug-regex7.c
index 6658606c01..a2fb44ec9b 100644
--- a/posix/bug-regex7.c
+++ b/posix/bug-regex7.c
@@ -1,5 +1,5 @@
/* Test for regs allocation in re_search and re_match.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Stepan Kasal <kasal@math.cas.cz>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <locale.h>
#include <stdio.h>
diff --git a/posix/bug-regex8.c b/posix/bug-regex8.c
index ee398039dd..09abdebddc 100644
--- a/posix/bug-regex8.c
+++ b/posix/bug-regex8.c
@@ -1,5 +1,5 @@
/* Test for the STOP parameter of re_match_2 and re_search_2.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Stepan Kasal <kasal@math.cas.cz>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <locale.h>
#include <stdio.h>
diff --git a/posix/bug-regex9.c b/posix/bug-regex9.c
index 104d797f04..0153f5d069 100644
--- a/posix/bug-regex9.c
+++ b/posix/bug-regex9.c
@@ -1,5 +1,5 @@
/* Test for memory handling in regex.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <mcheck.h>
diff --git a/posix/confstr.c b/posix/confstr.c
index de4cff76cc..8f78770d55 100644
--- a/posix/confstr.c
+++ b/posix/confstr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <errno.h>
@@ -29,7 +29,7 @@
of BUF with the value corresponding to NAME and zero-terminate BUF.
Return the number of bytes required to hold NAME's entire value. */
size_t
-confstr (int name, char *buf, size_t len)
+__confstr (int name, char *buf, size_t len)
{
const char *string = "";
size_t string_len = 1;
@@ -289,4 +289,6 @@ confstr (int name, char *buf, size_t len)
}
return string_len;
}
+libc_hidden_def (__confstr)
libc_hidden_def (confstr)
+weak_alias (__confstr, confstr)
diff --git a/posix/cpio.h b/posix/cpio.h
index dc6dc1c551..d0e1c0131f 100644
--- a/posix/cpio.h
+++ b/posix/cpio.h
@@ -1,6 +1,6 @@
/* Extended cpio format from POSIX.1.
This file is part of the GNU C Library.
- Copyright (C) 1992-2018 Free Software Foundation, Inc.
+ Copyright (C) 1992-2019 Free Software Foundation, Inc.
NOTE: The canonical source of this file is maintained with the GNU cpio.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _CPIO_H
#define _CPIO_H 1
diff --git a/posix/execl.c b/posix/execl.c
index 0f0a7db5cb..bbd423a85c 100644
--- a/posix/execl.c
+++ b/posix/execl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <errno.h>
diff --git a/posix/execle.c b/posix/execle.c
index d25dd423ad..2bb62c8b9c 100644
--- a/posix/execle.c
+++ b/posix/execle.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <stdarg.h>
diff --git a/posix/execlp.c b/posix/execlp.c
index 1e58569c0c..dbb46ecda0 100644
--- a/posix/execlp.c
+++ b/posix/execlp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <stdarg.h>
diff --git a/posix/execv.c b/posix/execv.c
index 782ade1b1d..103c8acab6 100644
--- a/posix/execv.c
+++ b/posix/execv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
diff --git a/posix/execve.c b/posix/execve.c
index 7ec7a0e1a6..6ba214d271 100644
--- a/posix/execve.c
+++ b/posix/execve.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/posix/execvp.c b/posix/execvp.c
index 627d7bcb51..eaf215c2b7 100644
--- a/posix/execvp.c
+++ b/posix/execvp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
diff --git a/posix/execvpe.c b/posix/execvpe.c
index ea67d19fcd..fd1e86c886 100644
--- a/posix/execvpe.c
+++ b/posix/execvpe.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <stdarg.h>
@@ -59,7 +59,7 @@ maybe_script_execute (const char *file, char *const argv[], char *const envp[])
new_argv[0] = (char *) _PATH_BSHELL;
new_argv[1] = (char *) file;
if (argc > 1)
- memcpy (new_argv + 2, argv + 1, argc * sizeof(char *));
+ memcpy (new_argv + 2, argv + 1, argc * sizeof (char *));
else
new_argv[2] = NULL;
diff --git a/posix/fexecve.c b/posix/fexecve.c
index 6cf90b52f4..0ad0c700ad 100644
--- a/posix/fexecve.c
+++ b/posix/fexecve.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/posix/flexmember.h b/posix/flexmember.h
index 2dff5181b6..8e79bce03f 100644
--- a/posix/flexmember.h
+++ b/posix/flexmember.h
@@ -1,6 +1,6 @@
/* Sizes of structs with flexible array members.
- Copyright 2016-2018 Free Software Foundation, Inc.
+ Copyright 2016-2019 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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
Written by Paul Eggert. */
diff --git a/posix/fnmatch.c b/posix/fnmatch.c
index a9b762624f..e43364138a 100644
--- a/posix/fnmatch.c
+++ b/posix/fnmatch.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if HAVE_CONFIG_H
# include <config.h>
@@ -53,7 +53,6 @@
we support a correct implementation only in glibc. */
#ifdef _LIBC
# include "../locale/localeinfo.h"
-# include "../locale/elem-hash.h"
# include "../locale/coll-lookup.h"
# include <shlib-compat.h>
@@ -237,6 +236,11 @@ __wcschrnul (const wchar_t *s, wint_t c)
# define MEMPCPY(D, S, N) __wmempcpy (D, S, N)
# define MEMCHR(S, C, N) __wmemchr (S, C, N)
# define STRCOLL(S1, S2) wcscoll (S1, S2)
+# ifdef _LIBC
+# define WMEMCMP(S1, S2, N) __wmemcmp (S1, S2, N)
+# else
+# define WMEMCMP(S1, S2, N) wmemcmp (S1, S2, N)
+# endif
# define WIDE_CHAR_VERSION 1
/* Change the name the header defines so it doesn't conflict with
the <locale/weight.h> version included above. */
diff --git a/posix/fnmatch.h b/posix/fnmatch.h
index 9f03eafbca..44c2f9a0b6 100644
--- a/posix/fnmatch.h
+++ b/posix/fnmatch.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FNMATCH_H
#define _FNMATCH_H 1
diff --git a/posix/fnmatch_loop.c b/posix/fnmatch_loop.c
index e298cac5dc..bb229aa9fc 100644
--- a/posix/fnmatch_loop.c
+++ b/posix/fnmatch_loop.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
@@ -494,26 +494,12 @@ FCT (const CHAR *pattern, const CHAR *string, const CHAR *string_end,
{
int32_t table_size;
const int32_t *symb_table;
-# if WIDE_CHAR_VERSION
- char str[c1];
- unsigned int strcnt;
-# else
-# define str (startp + 1)
-# endif
const unsigned char *extra;
int32_t idx;
int32_t elem;
- int32_t second;
- int32_t hash;
-
# if WIDE_CHAR_VERSION
- /* We have to convert the name to a single-byte
- string. This is possible since the names
- consist of ASCII characters and the internal
- representation is UCS4. */
- for (strcnt = 0; strcnt < c1; ++strcnt)
- str[strcnt] = startp[1 + strcnt];
-#endif
+ CHAR *wextra;
+# endif
table_size =
_NL_CURRENT_WORD (LC_COLLATE,
@@ -525,71 +511,54 @@ FCT (const CHAR *pattern, const CHAR *string, const CHAR *string_end,
_NL_CURRENT (LC_COLLATE,
_NL_COLLATE_SYMB_EXTRAMB);
- /* Locate the character in the hashing table. */
- hash = elem_hash (str, c1);
-
- idx = 0;
- elem = hash % table_size;
- if (symb_table[2 * elem] != 0)
- {
- second = hash % (table_size - 2) + 1;
-
- do
- {
- /* First compare the hashing value. */
- if (symb_table[2 * elem] == hash
- && (c1
- == extra[symb_table[2 * elem + 1]])
- && memcmp (str,
- &extra[symb_table[2 * elem
- + 1]
- + 1], c1) == 0)
- {
- /* Yep, this is the entry. */
- idx = symb_table[2 * elem + 1];
- idx += 1 + extra[idx];
- break;
- }
-
- /* Next entry. */
- elem += second;
- }
- while (symb_table[2 * elem] != 0);
- }
+ for (elem = 0; elem < table_size; elem++)
+ if (symb_table[2 * elem] != 0)
+ {
+ idx = symb_table[2 * elem + 1];
+ /* Skip the name of collating element. */
+ idx += 1 + extra[idx];
+# if WIDE_CHAR_VERSION
+ /* Skip the byte sequence of the
+ collating element. */
+ idx += 1 + extra[idx];
+ /* Adjust for the alignment. */
+ idx = (idx + 3) & ~3;
+
+ wextra = (CHAR *) &extra[idx + 4];
+
+ if (/* Compare the length of the sequence. */
+ c1 == wextra[0]
+ /* Compare the wide char sequence. */
+ && WMEMCMP (startp + 1, &wextra[1],
+ c1) == 0)
+ /* Yep, this is the entry. */
+ break;
+# else
+ if (/* Compare the length of the sequence. */
+ c1 == extra[idx]
+ /* Compare the byte sequence. */
+ && memcmp (startp + 1,
+ &extra[idx + 1], c1) == 0)
+ /* Yep, this is the entry. */
+ break;
+# endif
+ }
- if (symb_table[2 * elem] != 0)
+ if (elem < table_size)
{
/* Compare the byte sequence but only if
this is not part of a range. */
-# if WIDE_CHAR_VERSION
- int32_t *wextra;
+ if (! is_range
- idx += 1 + extra[idx];
- /* Adjust for the alignment. */
- idx = (idx + 3) & ~3;
-
- wextra = (int32_t *) &extra[idx + 4];
-# endif
-
- if (! is_range)
- {
# if WIDE_CHAR_VERSION
- for (c1 = 0;
- (int32_t) c1 < wextra[idx];
- ++c1)
- if (n[c1] != wextra[1 + c1])
- break;
-
- if ((int32_t) c1 == wextra[idx])
- goto matched;
+ && WMEMCMP (n, &wextra[1], c1) == 0
# else
- for (c1 = 0; c1 < extra[idx]; ++c1)
- if (n[c1] != extra[1 + c1])
- break;
-
- if (c1 == extra[idx])
- goto matched;
+ && memcmp (n, &extra[idx + 1], c1) == 0
# endif
+ )
+ {
+ n += c1 - 1;
+ goto matched;
}
/* Get the collation sequence value. */
@@ -597,9 +566,9 @@ FCT (const CHAR *pattern, const CHAR *string, const CHAR *string_end,
# if WIDE_CHAR_VERSION
cold = wextra[1 + wextra[idx]];
# else
- /* Adjust for the alignment. */
idx += 1 + extra[idx];
- idx = (idx + 3) & ~4;
+ /* Adjust for the alignment. */
+ idx = (idx + 3) & ~3;
cold = *((int32_t *) &extra[idx]);
# endif
@@ -609,10 +578,10 @@ FCT (const CHAR *pattern, const CHAR *string, const CHAR *string_end,
{
/* No valid character. Match it as a
single byte. */
- if (!is_range && *n == str[0])
+ if (!is_range && *n == startp[1])
goto matched;
- cold = str[0];
+ cold = startp[1];
c = *p++;
}
else
@@ -620,7 +589,6 @@ FCT (const CHAR *pattern, const CHAR *string, const CHAR *string_end,
}
}
else
-# undef str
#endif
{
c = FOLD (c);
@@ -712,25 +680,11 @@ FCT (const CHAR *pattern, const CHAR *string, const CHAR *string_end,
{
int32_t table_size;
const int32_t *symb_table;
-# if WIDE_CHAR_VERSION
- char str[c1];
- unsigned int strcnt;
-# else
-# define str (startp + 1)
-# endif
const unsigned char *extra;
int32_t idx;
int32_t elem;
- int32_t second;
- int32_t hash;
-
# if WIDE_CHAR_VERSION
- /* We have to convert the name to a single-byte
- string. This is possible since the names
- consist of ASCII characters and the internal
- representation is UCS4. */
- for (strcnt = 0; strcnt < c1; ++strcnt)
- str[strcnt] = startp[1 + strcnt];
+ CHAR *wextra;
# endif
table_size =
@@ -743,71 +697,63 @@ FCT (const CHAR *pattern, const CHAR *string, const CHAR *string_end,
_NL_CURRENT (LC_COLLATE,
_NL_COLLATE_SYMB_EXTRAMB);
- /* Locate the character in the hashing
- table. */
- hash = elem_hash (str, c1);
-
- idx = 0;
- elem = hash % table_size;
- if (symb_table[2 * elem] != 0)
- {
- second = hash % (table_size - 2) + 1;
-
- do
- {
- /* First compare the hashing value. */
- if (symb_table[2 * elem] == hash
- && (c1
- == extra[symb_table[2 * elem + 1]])
- && memcmp (str,
- &extra[symb_table[2 * elem + 1]
- + 1], c1) == 0)
- {
- /* Yep, this is the entry. */
- idx = symb_table[2 * elem + 1];
- idx += 1 + extra[idx];
- break;
- }
-
- /* Next entry. */
- elem += second;
- }
- while (symb_table[2 * elem] != 0);
- }
-
- if (symb_table[2 * elem] != 0)
- {
- /* Compare the byte sequence but only if
- this is not part of a range. */
+ for (elem = 0; elem < table_size; elem++)
+ if (symb_table[2 * elem] != 0)
+ {
+ idx = symb_table[2 * elem + 1];
+ /* Skip the name of collating
+ element. */
+ idx += 1 + extra[idx];
# if WIDE_CHAR_VERSION
- int32_t *wextra;
-
- idx += 1 + extra[idx];
- /* Adjust for the alignment. */
- idx = (idx + 3) & ~4;
-
- wextra = (int32_t *) &extra[idx + 4];
+ /* Skip the byte sequence of the
+ collating element. */
+ idx += 1 + extra[idx];
+ /* Adjust for the alignment. */
+ idx = (idx + 3) & ~3;
+
+ wextra = (CHAR *) &extra[idx + 4];
+
+ if (/* Compare the length of the
+ sequence. */
+ c1 == wextra[0]
+ /* Compare the wide char sequence. */
+ && WMEMCMP (startp + 1, &wextra[1],
+ c1) == 0)
+ /* Yep, this is the entry. */
+ break;
+# else
+ if (/* Compare the length of the
+ sequence. */
+ c1 == extra[idx]
+ /* Compare the byte sequence. */
+ && memcmp (startp + 1,
+ &extra[idx + 1], c1) == 0)
+ /* Yep, this is the entry. */
+ break;
# endif
+ }
+
+ if (elem < table_size)
+ {
/* Get the collation sequence value. */
is_seqval = 1;
# if WIDE_CHAR_VERSION
cend = wextra[1 + wextra[idx]];
# else
- /* Adjust for the alignment. */
idx += 1 + extra[idx];
- idx = (idx + 3) & ~4;
+ /* Adjust for the alignment. */
+ idx = (idx + 3) & ~3;
cend = *((int32_t *) &extra[idx]);
# endif
}
- else if (symb_table[2 * elem] != 0 && c1 == 1)
+ else if (c1 == 1)
{
- cend = str[0];
+ cend = startp[1];
c = *p++;
}
else
return FNM_NOMATCH;
}
-# undef str
}
else
{
diff --git a/posix/fork.c b/posix/fork.c
index 6f32a783d7..1cf3de6a44 100644
--- a/posix/fork.c
+++ b/posix/fork.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/posix/fpathconf.c b/posix/fpathconf.c
index 0ee2a4d260..3a7a205680 100644
--- a/posix/fpathconf.c
+++ b/posix/fpathconf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/posix/gai_strerror.c b/posix/gai_strerror.c
index 6463cd187c..b570d9bd91 100644
--- a/posix/gai_strerror.c
+++ b/posix/gai_strerror.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <netdb.h>
diff --git a/posix/get_child_max.c b/posix/get_child_max.c
index 0f0a9fffa1..3aa95574c6 100644
--- a/posix/get_child_max.c
+++ b/posix/get_child_max.c
@@ -1,5 +1,5 @@
/* Get POSIX {CHILD_MAX} run-time limit value. Stub version (no limit).
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <limits.h>
#include <sys/sysinfo.h>
diff --git a/posix/getaddrinfo.c b/posix/getaddrinfo.c
index 0edf77a1a5..26a4c80224 100644
--- a/posix/getaddrinfo.c
+++ b/posix/getaddrinfo.c
@@ -1,5 +1,5 @@
/* Stub version of getaddrinfo function.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <netdb.h>
diff --git a/posix/getconf-speclist.c b/posix/getconf-speclist.c
index 6406dbb3f2..b06a60da18 100644
--- a/posix/getconf-speclist.c
+++ b/posix/getconf-speclist.c
@@ -1,5 +1,5 @@
/* List POSIX compilation environments for this libc.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
diff --git a/posix/getconf.c b/posix/getconf.c
index 9f4d6af602..03e65baaa7 100644
--- a/posix/getconf.c
+++ b/posix/getconf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2019 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
@@ -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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <errno.h>
@@ -486,7 +486,7 @@ main (int argc, char *argv[])
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\
-"), "2018");
+"), "2019");
printf (gettext ("Written by %s.\n"), "Roland McGrath");
return 0;
}
diff --git a/posix/getegid.c b/posix/getegid.c
index bc141152a2..d09a1dbfe2 100644
--- a/posix/getegid.c
+++ b/posix/getegid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/posix/geteuid.c b/posix/geteuid.c
index d1b8b03478..f5ca0bd1c3 100644
--- a/posix/geteuid.c
+++ b/posix/geteuid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/posix/getgid.c b/posix/getgid.c
index 1a5ba2bd4e..1b044bf662 100644
--- a/posix/getgid.c
+++ b/posix/getgid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/posix/getgroups.c b/posix/getgroups.c
index e6834bc982..70e3e868d1 100644
--- a/posix/getgroups.c
+++ b/posix/getgroups.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/posix/getopt.c b/posix/getopt.c
index 4b832208f8..ee7f109434 100644
--- a/posix/getopt.c
+++ b/posix/getopt.c
@@ -1,5 +1,5 @@
/* Getopt for GNU.
- Copyright (C) 1987-2018 Free Software Foundation, Inc.
+ Copyright (C) 1987-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library and is also part of gnulib.
Patches to this file should be submitted to both projects.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LIBC
# include <config.h>
diff --git a/posix/getopt.h b/posix/getopt.h
index afd7f6bf44..aa22003f30 100644
--- a/posix/getopt.h
+++ b/posix/getopt.h
@@ -1,5 +1,5 @@
/* Declarations for getopt.
- Copyright (C) 1989-2018 Free Software Foundation, Inc.
+ Copyright (C) 1989-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Unlike the bulk of the getopt implementation, this file is NOT part
of gnulib; gnulib also has a getopt.h but it is different.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _GETOPT_H
#define _GETOPT_H 1
diff --git a/posix/getopt1.c b/posix/getopt1.c
index f3f274f4f3..db2c8d7c64 100644
--- a/posix/getopt1.c
+++ b/posix/getopt1.c
@@ -1,5 +1,5 @@
/* getopt_long and getopt_long_only entry points for GNU getopt.
- Copyright (C) 1987-2018 Free Software Foundation, Inc.
+ Copyright (C) 1987-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library and is also part of gnulib.
Patches to this file should be submitted to both projects.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LIBC
# include <config.h>
diff --git a/posix/getopt_int.h b/posix/getopt_int.h
index 502250388d..1f09068acd 100644
--- a/posix/getopt_int.h
+++ b/posix/getopt_int.h
@@ -1,5 +1,5 @@
/* Internal declarations for getopt.
- Copyright (C) 1989-2018 Free Software Foundation, Inc.
+ Copyright (C) 1989-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library and is also part of gnulib.
Patches to this file should be submitted to both projects.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _GETOPT_INT_H
#define _GETOPT_INT_H 1
diff --git a/posix/getpgid.c b/posix/getpgid.c
index 0670073199..be25ca5b21 100644
--- a/posix/getpgid.c
+++ b/posix/getpgid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <sys/types.h>
diff --git a/posix/getpgrp.c b/posix/getpgrp.c
index ff07d55394..07b5a8afc8 100644
--- a/posix/getpgrp.c
+++ b/posix/getpgrp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/posix/getpid.c b/posix/getpid.c
index e1123d60c1..452d063dba 100644
--- a/posix/getpid.c
+++ b/posix/getpid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/posix/getppid.c b/posix/getppid.c
index 824f83cc94..7ff81e3eb4 100644
--- a/posix/getppid.c
+++ b/posix/getppid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/posix/getresgid.c b/posix/getresgid.c
index 977fefbdd7..61b11acef5 100644
--- a/posix/getresgid.c
+++ b/posix/getresgid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/posix/getresuid.c b/posix/getresuid.c
index b1f7d2650b..a1e781f66c 100644
--- a/posix/getresuid.c
+++ b/posix/getresuid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/posix/getsid.c b/posix/getsid.c
index 60d14bbf5a..6375369c06 100644
--- a/posix/getsid.c
+++ b/posix/getsid.c
@@ -1,5 +1,5 @@
/* getsid -- Return session ID of a process. Stub version.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <unistd.h>
diff --git a/posix/getuid.c b/posix/getuid.c
index 5656c7c0a6..cf0d7d9ac4 100644
--- a/posix/getuid.c
+++ b/posix/getuid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/posix/glob-lstat-compat.c b/posix/glob-lstat-compat.c
index f78b02f909..9758fdf935 100644
--- a/posix/glob-lstat-compat.c
+++ b/posix/glob-lstat-compat.c
@@ -1,5 +1,5 @@
/* Compat glob which does not use gl_lstat for GLOB_ALTDIRFUNC.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <shlib-compat.h>
diff --git a/posix/glob.c b/posix/glob.c
index 8444b2f79e..4be7344204 100644
--- a/posix/glob.c
+++ b/posix/glob.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <glob.h>
diff --git a/posix/glob.h b/posix/glob.h
index b0d034b72d..1daf5aacec 100644
--- a/posix/glob.h
+++ b/posix/glob.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _GLOB_H
#define _GLOB_H 1
@@ -54,14 +54,14 @@ typedef __SIZE_TYPE__ size_t;
# define GLOB_ONLYDIR (1 << 13)/* Match only directories. */
# define GLOB_TILDE_CHECK (1 << 14)/* Like GLOB_TILDE but return an error
if the user name is not available. */
-# define __GLOB_FLAGS (GLOB_ERR|GLOB_MARK|GLOB_NOSORT|GLOB_DOOFFS| \
- GLOB_NOESCAPE|GLOB_NOCHECK|GLOB_APPEND| \
- GLOB_PERIOD|GLOB_ALTDIRFUNC|GLOB_BRACE| \
- GLOB_NOMAGIC|GLOB_TILDE|GLOB_ONLYDIR|GLOB_TILDE_CHECK)
+# define __GLOB_FLAGS (GLOB_ERR|GLOB_MARK|GLOB_NOSORT|GLOB_DOOFFS \
+ |GLOB_NOESCAPE|GLOB_NOCHECK|GLOB_APPEND \
+ |GLOB_PERIOD|GLOB_ALTDIRFUNC|GLOB_BRACE \
+ |GLOB_NOMAGIC|GLOB_TILDE|GLOB_ONLYDIR|GLOB_TILDE_CHECK)
#else
-# define __GLOB_FLAGS (GLOB_ERR|GLOB_MARK|GLOB_NOSORT|GLOB_DOOFFS| \
- GLOB_NOESCAPE|GLOB_NOCHECK|GLOB_APPEND| \
- GLOB_PERIOD)
+# define __GLOB_FLAGS (GLOB_ERR|GLOB_MARK|GLOB_NOSORT|GLOB_DOOFFS \
+ |GLOB_NOESCAPE|GLOB_NOCHECK|GLOB_APPEND \
+ |GLOB_PERIOD)
#endif
/* Error returns from `glob'. */
diff --git a/posix/glob64-lstat-compat.c b/posix/glob64-lstat-compat.c
index fe7b3e0bdc..d8d89d06a2 100644
--- a/posix/glob64-lstat-compat.c
+++ b/posix/glob64-lstat-compat.c
@@ -1,5 +1,5 @@
/* Compat glob which does not use gl_lstat for GLOB_ALTDIRFUNC.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <shlib-compat.h>
diff --git a/posix/glob64.c b/posix/glob64.c
index 6285a22fa8..4d55997c64 100644
--- a/posix/glob64.c
+++ b/posix/glob64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <sys/types.h>
diff --git a/posix/glob_internal.h b/posix/glob_internal.h
index 46a5f138ae..7be4fb0201 100644
--- a/posix/glob_internal.h
+++ b/posix/glob_internal.h
@@ -1,5 +1,5 @@
/* Shared definition for glob and glob_pattern_p.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef GLOB_INTERNAL_H
# define GLOB_INTERNAL_H
diff --git a/posix/glob_pattern_p.c b/posix/glob_pattern_p.c
index 0f72d186c8..1ca3e1332a 100644
--- a/posix/glob_pattern_p.c
+++ b/posix/glob_pattern_p.c
@@ -1,5 +1,5 @@
/* Return nonzero if PATTERN contains any metacharacters.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LIBC
# include <config.h>
diff --git a/posix/globfree.c b/posix/globfree.c
index 19d2a8e83b..0281de64bc 100644
--- a/posix/globfree.c
+++ b/posix/globfree.c
@@ -1,5 +1,5 @@
/* Frees the dynamically allocated storage from an earlier call to glob.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LIBC
# include <config.h>
diff --git a/posix/globfree64.c b/posix/globfree64.c
index eea942a607..a62f54fee6 100644
--- a/posix/globfree64.c
+++ b/posix/globfree64.c
@@ -1,5 +1,5 @@
/* Frees the dynamically allocated storage from an earlier call to glob.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LIBC
# include <config.h>
diff --git a/posix/globtest.c b/posix/globtest.c
index 7a8ccc4b59..0ca6687899 100644
--- a/posix/globtest.c
+++ b/posix/globtest.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <getopt.h>
#include <stdio.h>
diff --git a/posix/globtest.sh b/posix/globtest.sh
index 7f91e810f3..5a5c4ebd08 100755
--- a/posix/globtest.sh
+++ b/posix/globtest.sh
@@ -1,6 +1,6 @@
#!/bin/bash
# Test for glob(3).
-# Copyright (C) 1997-2018 Free Software Foundation, Inc.
+# Copyright (C) 1997-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
@@ -15,7 +15,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
set -e
diff --git a/posix/group_member.c b/posix/group_member.c
index 27795a5dc9..25dbbdb76e 100644
--- a/posix/group_member.c
+++ b/posix/group_member.c
@@ -1,5 +1,5 @@
/* `group_member' -- test if process is in a given group.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <unistd.h>
diff --git a/posix/nanosleep.c b/posix/nanosleep.c
index 3f13a1db48..ed41c8cce7 100644
--- a/posix/nanosleep.c
+++ b/posix/nanosleep.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <time.h>
@@ -24,10 +24,13 @@ int
__nanosleep (const struct timespec *requested_time,
struct timespec *remaining)
{
- __set_errno (ENOSYS);
- return -1;
+ int ret = __clock_nanosleep (CLOCK_REALTIME, 0, requested_time, remaining);
+ if (ret != 0)
+ {
+ __set_errno (ret);
+ return -1;
+ }
+ return 0;
}
-stub_warning (nanosleep)
-
-hidden_def (__nanosleep)
+libc_hidden_def (__nanosleep)
weak_alias (__nanosleep, nanosleep)
diff --git a/posix/pathconf.c b/posix/pathconf.c
index f4bc7eb257..eef8c4ad76 100644
--- a/posix/pathconf.c
+++ b/posix/pathconf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/posix/pause.c b/posix/pause.c
index 0ce286b76b..5a5056b64a 100644
--- a/posix/pause.c
+++ b/posix/pause.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/posix/posix-conf-vars.h b/posix/posix-conf-vars.h
index 20c9a5f4d6..dfc9ec9805 100644
--- a/posix/posix-conf-vars.h
+++ b/posix/posix-conf-vars.h
@@ -1,6 +1,6 @@
/* Macros to check if a POSIX configuration variable is defined or set.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _POSIX_CONF_VARS_H
#define _POSIX_CONF_VARS_H
diff --git a/posix/posix-envs.def b/posix/posix-envs.def
index 0f6c29a3c7..32b566e43e 100644
--- a/posix/posix-envs.def
+++ b/posix/posix-envs.def
@@ -1,5 +1,5 @@
/* Handle POSIX compilation environments that may or may not be present.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Before including this file, the including file must have included
<bits/environments.h> (generally via <unistd.h>) and must have
diff --git a/posix/posix_madvise.c b/posix/posix_madvise.c
index f789a9a862..135f0907bc 100644
--- a/posix/posix_madvise.c
+++ b/posix/posix_madvise.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <sys/mman.h>
diff --git a/posix/pread.c b/posix/pread.c
index 2da5743f28..70f3858068 100644
--- a/posix/pread.c
+++ b/posix/pread.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/posix/pread64.c b/posix/pread64.c
index e13917e9c0..3d34ba0423 100644
--- a/posix/pread64.c
+++ b/posix/pread64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/posix/ptestcases.h b/posix/ptestcases.h
deleted file mode 100644
index 506b1cce0f..0000000000
--- a/posix/ptestcases.h
+++ /dev/null
@@ -1,326 +0,0 @@
- { 0, 0, "2.8.2 Regular Expression General Requirement", NULL, },
- { 2, 4, "bb*", "abbbc", },
- { 2, 2, "bb*", "ababbbc", },
- { 7, 9, "A#*::", "A:A#:qA::qA#::qA##::q", },
- { 1, 5, "A#*::", "A##::A#::qA::qA#:q", },
- { 0, 0, "2.8.3.1.2 BRE Special Characters", NULL, },
- { 0, 0, "GA108", NULL, },
- { 2, 2, "\\.", "a.c", },
- { 2, 2, "\\[", "a[c", },
- { 2, 2, "\\\\", "a\\c", },
- { 2, 2, "\\*", "a*c", },
- { 2, 2, "\\^", "a^c", },
- { 2, 2, "\\$", "a$c", },
- { 7, 11, "X\\*Y\\*8", "Y*8X*8X*Y*8", },
- { 0, 0, "GA109", NULL, },
- { 2, 2, "[.]", "a.c", },
- { 2, 2, "[[]", "a[c", },
- { -1, -1, "[[]", "ac", },
- { 2, 2, "[\\]", "a\\c", },
- { 1, 1, "[\\a]", "abc", },
- { 2, 2, "[\\.]", "a\\.c", },
- { 2, 2, "[\\.]", "a.\\c", },
- { 2, 2, "[*]", "a*c", },
- { 2, 2, "[$]", "a$c", },
- { 2, 2, "[X*Y8]", "7*8YX", },
- { 0, 0, "GA110", NULL, },
- { 2, 2, "*", "a*c", },
- { 3, 4, "*a", "*b*a*c", },
- { 1, 5, "**9=", "***9=9", },
- { 0, 0, "GA111", NULL, },
- { 1, 1, "^*", "*bc", },
- { -1, -1, "^*", "a*c", },
- { -1, -1, "^*", "^*ab", },
- { 1, 5, "^**9=", "***9=", },
- { -1, -1, "^*5<*9", "5<9*5<*9", },
- { 0, 0, "GA112", NULL, },
- { 2, 3, "\\(*b\\)", "a*b", },
- { -1, -1, "\\(*b\\)", "ac", },
- { 1, 6, "A\\(**9\\)=", "A***9=79", },
- { 0, 0, "GA113(1)", NULL, },
- { 1, 3, "\\(^*ab\\)", "*ab", },
- { -1, -1, "\\(^*ab\\)", "^*ab", },
- { -1, -1, "\\(^*b\\)", "a*b", },
- { -1, -1, "\\(^*b\\)", "^*b", },
- { 0, 0, "GA114", NULL, },
- { 1, 3, "a^b", "a^b", },
- { 1, 3, "a\\^b", "a^b", },
- { 1, 1, "^^", "^bc", },
- { 2, 2, "\\^", "a^c", },
- { 1, 1, "[c^b]", "^abc", },
- { 1, 1, "[\\^ab]", "^ab", },
- { 2, 2, "[\\^ab]", "c\\d", },
- { -1, -1, "[^^]", "^", },
- { 1, 3, "\\(a^b\\)", "a^b", },
- { 1, 3, "\\(a\\^b\\)", "a^b", },
- { 2, 2, "\\(\\^\\)", "a^b", },
- { 0, 0, "GA115", NULL, },
- { 3, 3, "$$", "ab$", },
- { -1, -1, "$$", "$ab", },
- { 2, 3, "$c", "a$c", },
- { 2, 2, "[$]", "a$c", },
- { 1, 2, "\\$a", "$a", },
- { 3, 3, "\\$$", "ab$", },
- { 2, 6, "A\\([34]$[34]\\)B", "XA4$3BY", },
- { 0, 0, "2.8.3.1.3 Periods in BREs", NULL, },
- { 0, 0, "GA116", NULL, },
- { 1, 1, ".", "abc", },
- { -1, -1, ".ab", "abc", },
- { 1, 3, "ab.", "abc", },
- { 1, 3, "a.b", "a,b", },
- { -1, -1, ".......", "PqRs6", },
- { 1, 7, ".......", "PqRs6T8", },
- { 0, 0, "2.8.3.2 RE Bracket Expression", NULL, },
- { 0, 0, "GA118", NULL, },
- { 2, 2, "[abc]", "xbyz", },
- { -1, -1, "[abc]", "xyz", },
- { 2, 2, "[abc]", "xbay", },
- { 0, 0, "GA119", NULL, },
- { 2, 2, "[^a]", "abc", },
- { 4, 4, "[^]cd]", "cd]ef", },
- { 2, 2, "[^abc]", "axyz", },
- { -1, -1, "[^abc]", "abc", },
- { 3, 3, "[^[.a.]b]", "abc", },
- { 3, 3, "[^[=a=]b]", "abc", },
- { 2, 2, "[^-ac]", "abcde-", },
- { 2, 2, "[^ac-]", "abcde-", },
- { 3, 3, "[^a-b]", "abcde", },
- { 3, 3, "[^a-bd-e]", "dec", },
- { 2, 2, "[^---]", "-ab", },
- { 16, 16, "[^a-zA-Z0-9]", "pqrstVWXYZ23579#", },
- { 0, 0, "GA120(1)", NULL, },
- { 3, 3, "[]a]", "cd]ef", },
- { 1, 1, "[]-a]", "a_b", },
- { 3, 3, "[][.-.]-0]", "ab0-]", },
- { 1, 1, "[]^a-z]", "string", },
- { 0, 0, "GA120(2)", NULL, },
- { 4, 4, "[^]cd]", "cd]ef", },
- { 0, 0, "[^]]*", "]]]]]]]]X", },
- { 0, 0, "[^]]*", "]]]]]]]]", },
- { 9, 9, "[^]]\\{1,\\}", "]]]]]]]]X", },
- { -1, -1, "[^]]\\{1,\\}", "]]]]]]]]", },
- { 0, 0, "GA120(3)", NULL, },
- { 3, 3, "[c[.].]d]", "ab]cd", },
- { 2, 8, "[a-z]*[[.].]][A-Z]*", "Abcd]DEFg", },
- { 0, 0, "GA121", NULL, },
- { 2, 2, "[[.a.]b]", "Abc", },
- { 1, 1, "[[.a.]b]", "aBc", },
- { -1, -1, "[[.a.]b]", "ABc", },
- { 3, 3, "[^[.a.]b]", "abc", },
- { 3, 3, "[][.-.]-0]", "ab0-]", },
- { 3, 3, "[A-[.].]c]", "ab]!", },
- { 0, 0, "GA122", NULL, },
- { -2, -2, "[[.ch.]]", "abc", },
- { -2, -2, "[[.ab.][.CD.][.EF.]]", "yZabCDEFQ9", },
- { 0, 0, "GA125", NULL, },
- { 2, 2, "[[=a=]b]", "Abc", },
- { 1, 1, "[[=a=]b]", "aBc", },
- { -1, -1, "[[=a=]b]", "ABc", },
- { 3, 3, "[^[=a=]b]", "abc", },
- { 0, 0, "GA126", NULL, },
- { 0, 0, NULL, "the expected result for [[:alnum:]]* is 2-7 which is wrong" },
- { 0, 0, "[[:alnum:]]*", " aB28gH", },
- { 2, 7, "[[:alnum:]][[:alnum:]]*", " aB28gH", },
- { 0, 0, NULL, "the expected result for [^[:alnum:]]* is 2-5 which is wrong" },
- { 0, 0, "[^[:alnum:]]*", "2 ,a", },
- { 2, 5, "[^[:alnum:]][^[:alnum:]]*", "2 ,a", },
- { 0, 0, NULL, "the expected result for [[:alpha:]]* is 2-5 which is wrong" },
- { 0, 0, "[[:alpha:]]*", " aBgH2", },
- { 2, 5, "[[:alpha:]][[:alpha:]]*", " aBgH2", },
- { 1, 6, "[^[:alpha:]]*", "2 8,a", },
- { 1, 2, "[[:blank:]]*", " \r", },
- { 1, 8, "[^[:blank:]]*", "aB28gH, ", },
- { 1, 2, "[[:cntrl:]]*", "  ", },
- { 1, 8, "[^[:cntrl:]]*", "aB2 8gh,", },
- { 0, 0, NULL, "the expected result for [[:digit:]]* is 2-3 which is wrong" },
- { 0, 0, "[[:digit:]]*", "a28", },
- { 2, 3, "[[:digit:]][[:digit:]]*", "a28", },
- { 1, 8, "[^[:digit:]]*", "aB gH,", },
- { 1, 7, "[[:graph:]]*", "aB28gH, ", },
- { 1, 3, "[^[:graph:]]*", " ,", },
- { 1, 2, "[[:lower:]]*", "agB", },
- { 1, 8, "[^[:lower:]]*", "B2 8H,a", },
- { 1, 8, "[[:print:]]*", "aB2 8gH, ", },
- { 1, 2, "[^[:print:]]*", "  ", },
- { 0, 0, NULL, "the expected result for [[:punct:]]* is 2-2 which is wrong" },
- { 0, 0, "[[:punct:]]*", "a,2", },
- { 2, 3, "[[:punct:]][[:punct:]]*", "a,,2", },
- { 1, 9, "[^[:punct:]]*", "aB2 8gH", },
- { 1, 3, "[[:space:]]*", " \r", },
- { 0, 0, NULL, "the expected result for [^[:space:]]* is 2-9 which is wrong" },
- { 0, 0, "[^[:space:]]*", " aB28gH, ", },
- { 2, 9, "[^[:space:]][^[:space:]]*", " aB28gH, ", },
- { 0, 0, NULL, "the expected result for [[:upper:]]* is 2-3 which is wrong" },
- { 0, 0, "[[:upper:]]*", "aBH2", },
- { 2, 3, "[[:upper:]][[:upper:]]*", "aBH2", },
- { 1, 8, "[^[:upper:]]*", "a2 8g,B", },
- { 0, 0, NULL, "the expected result for [[:xdigit:]]* is 2-5 which is wrong" },
- { 0, 0, "[[:xdigit:]]*", "gaB28h", },
- { 2, 5, "[[:xdigit:]][[:xdigit:]]*", "gaB28h", },
- { 0, 0, NULL, "the expected result for [^[:xdigit:]]* is 2-7 which is wrong" },
- { 2, 7, "[^[:xdigit:]][^[:xdigit:]]*", "a gH,2", },
- { 0, 0, "GA127", NULL, },
- { -2, -2, "[b-a]", "abc", },
- { 1, 1, "[a-c]", "bbccde", },
- { 2, 2, "[a-b]", "-bc", },
- { 3, 3, "[a-z0-9]", "AB0", },
- { 3, 3, "[^a-b]", "abcde", },
- { 3, 3, "[^a-bd-e]", "dec", },
- { 1, 1, "[]-a]", "a_b", },
- { 2, 2, "[+--]", "a,b", },
- { 2, 2, "[--/]", "a.b", },
- { 2, 2, "[^---]", "-ab", },
- { 3, 3, "[][.-.]-0]", "ab0-]", },
- { 3, 3, "[A-[.].]c]", "ab]!", },
- { 2, 6, "bc[d-w]xy", "abchxyz", },
- { 0, 0, "GA129", NULL, },
- { 1, 1, "[a-cd-f]", "dbccde", },
- { -1, -1, "[a-ce-f]", "dBCCdE", },
- { 2, 4, "b[n-zA-M]Y", "absY9Z", },
- { 2, 4, "b[n-zA-M]Y", "abGY9Z", },
- { 0, 0, "GA130", NULL, },
- { 3, 3, "[-xy]", "ac-", },
- { 2, 4, "c[-xy]D", "ac-D+", },
- { 2, 2, "[--/]", "a.b", },
- { 2, 4, "c[--/]D", "ac.D+b", },
- { 2, 2, "[^-ac]", "abcde-", },
- { 1, 3, "a[^-ac]c", "abcde-", },
- { 3, 3, "[xy-]", "zc-", },
- { 2, 4, "c[xy-]7", "zc-786", },
- { 2, 2, "[^ac-]", "abcde-", },
- { 2, 4, "a[^ac-]c", "5abcde-", },
- { 2, 2, "[+--]", "a,b", },
- { 2, 4, "a[+--]B", "Xa,By", },
- { 2, 2, "[^---]", "-ab", },
- { 4, 6, "X[^---]Y", "X-YXaYXbY", },
- { 0, 0, "2.8.3.3 BREs Matching Multiple Characters", NULL, },
- { 0, 0, "GA131", NULL, },
- { 3, 4, "cd", "abcdeabcde", },
- { 1, 2, "ag*b", "abcde", },
- { -1, -1, "[a-c][e-f]", "abcdef", },
- { 3, 4, "[a-c][e-f]", "acbedf", },
- { 4, 8, "abc*XYZ", "890abXYZ#*", },
- { 4, 9, "abc*XYZ", "890abcXYZ#*", },
- { 4, 15, "abc*XYZ", "890abcccccccXYZ#*", },
- { -1, -1, "abc*XYZ", "890abc*XYZ#*", },
- { 0, 0, "GA132", NULL, },
- { 2, 4, "\\(*bc\\)", "a*bc", },
- { 1, 2, "\\(ab\\)", "abcde", },
- { 1, 10, "\\(a\\(b\\(c\\(d\\(e\\(f\\(g\\)h\\(i\\(j\\)\\)\\)\\)\\)\\)\\)\\)", "abcdefghijk", },
- { 3, 8, "43\\(2\\(6\\)*0\\)AB", "654320ABCD", },
- { 3, 9, "43\\(2\\(7\\)*0\\)AB", "6543270ABCD", },
- { 3, 12, "43\\(2\\(7\\)*0\\)AB", "6543277770ABCD", },
- { 0, 0, "GA133", NULL, },
- { 1, 10, "\\(a\\(b\\(c\\(d\\(e\\(f\\(g\\)h\\(i\\(j\\)\\)\\)\\)\\)\\)\\)\\)", "abcdefghijk", },
- { -1, -1, "\\(a\\(b\\(c\\(d\\(e\\(f\\(g\\)h\\(i\\(k\\)\\)\\)\\)\\)\\)\\)\\)", "abcdefghijk", },
- { 0, 0, "GA134", NULL, },
- { 2, 4, "\\(bb*\\)", "abbbc", },
- { 2, 2, "\\(bb*\\)", "ababbbc", },
- { 1, 6, "a\\(.*b\\)", "ababbbc", },
- { 1, 2, "a\\(b*\\)", "ababbbc", },
- { 1, 20, "a\\(.*b\\)c", "axcaxbbbcsxbbbbbbbbc", },
- { 0, 0, "GA135", NULL, },
- { 1, 7, "\\(a\\(b\\(c\\(d\\(e\\)\\)\\)\\)\\)\\4", "abcdededede", },
- { 0, 0, NULL, "POSIX does not really specify whether a\\(b\\)*c\\1 matches acb." },
- { 0, 0, NULL, "back references are supposed to expand to the last match, but what" },
- { 0, 0, NULL, "if there never was a match as in this case?" },
- { -1, -1, "a\\(b\\)*c\\1", "acb", },
- { 1, 11, "\\(a\\(b\\(c\\(d\\(e\\(f\\(g\\)h\\(i\\(j\\)\\)\\)\\)\\)\\)\\)\\)\\9", "abcdefghijjk", },
- { 0, 0, "GA136", NULL, },
- { 0, 0, NULL, "These two tests have the same problem as the test in GA135. No match" },
- { 0, 0, NULL, "of a subexpression, why should the back reference be usable?" },
- { 0, 0, NULL, "1 2 a\\(b\\)*c\\1 acb" },
- { 0, 0, NULL, "4 7 a\\(b\\(c\\(d\\(f\\)*\\)\\)\\)\\4¦xYzabcdePQRST" },
- { -1, -1, "a\\(b\\)*c\\1", "acb", },
- { -1, -1, "a\\(b\\(c\\(d\\(f\\)*\\)\\)\\)\\4", "xYzabcdePQRST", },
- { 0, 0, "GA137", NULL, },
- { -2, -2, "\\(a\\(b\\)\\)\\3", "foo", },
- { -2, -2, "\\(a\\(b\\)\\)\\(a\\(b\\)\\)\\5", "foo", },
- { 0, 0, "GA138", NULL, },
- { 1, 2, "ag*b", "abcde", },
- { 1, 10, "a.*b", "abababvbabc", },
- { 2, 5, "b*c", "abbbcdeabbbbbbcde", },
- { 2, 5, "bbb*c", "abbbcdeabbbbbbcde", },
- { 1, 5, "a\\(b\\)*c\\1", "abbcbbb", },
- { -1, -1, "a\\(b\\)*c\\1", "abbdbd", },
- { 0, 0, "\\([a-c]*\\)\\1", "abcacdef", },
- { 1, 6, "\\([a-c]*\\)\\1", "abcabcabcd", },
- { 1, 2, "a^*b", "ab", },
- { 1, 5, "a^*b", "a^^^b", },
- { 0, 0, "GA139", NULL, },
- { 1, 2, "a\\{2\\}", "aaaa", },
- { 1, 7, "\\([a-c]*\\)\\{0,\\}", "aabcaab", },
- { 1, 2, "\\(a\\)\\1\\{1,2\\}", "aabc", },
- { 1, 3, "\\(a\\)\\1\\{1,2\\}", "aaaabc", },
- { 0, 0, NULL, "the expression \\(\\(a\\)\\1\\)\\{1,2\\} is ill-formed, using \\2" },
- { 1, 4, "\\(\\(a\\)\\2\\)\\{1,2\\}", "aaaabc", },
- { 0, 0, "GA140", NULL, },
- { 1, 2, "a\\{2\\}", "aaaa", },
- { -1, -1, "a\\{2\\}", "abcd", },
- { 0, 0, "a\\{0\\}", "aaaa", },
- { 1, 64, "a\\{64\\}", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", },
- { 0, 0, "GA141", NULL, },
- { 1, 7, "\\([a-c]*\\)\\{0,\\}", "aabcaab", },
- { 0, 0, NULL, "the expected result for \\([a-c]*\\)\\{2,\\} is failure which isn't correct" },
- { 1, 3, "\\([a-c]*\\)\\{2,\\}", "abcdefg", },
- { 1, 3, "\\([a-c]*\\)\\{1,\\}", "abcdefg", },
- { -1, -1, "a\\{64,\\}", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", },
- { 0, 0, "GA142", NULL, },
- { 1, 3, "a\\{2,3\\}", "aaaa", },
- { -1, -1, "a\\{2,3\\}", "abcd", },
- { 0, 0, "\\([a-c]*\\)\\{0,0\\}", "foo", },
- { 1, 63, "a\\{1,63\\}", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", },
- { 0, 0, "2.8.3.4 BRE Precedence", NULL, },
- { 0, 0, "GA143", NULL, },
- { 0, 0, NULL, "There are numerous bugs in the original version." },
- { 2, 19, "\\^\\[[[.].]]\\\\(\\\\1\\\\)\\*\\\\{1,2\\\\}\\$", "a^[]\\(\\1\\)*\\{1,2\\}$b", },
- { 1, 6, "[[=*=]][[=\\=]][[=]=]][[===]][[...]][[:punct:]]", "*\\]=.;", },
- { 1, 6, "[$\\(*\\)^]*", "$\\()*^", },
- { 1, 1, "[\\1]", "1", },
- { 1, 1, "[\\{1,2\\}]", "{", },
- { 0, 0, NULL, "the expected result for \\(*\\)*\\1* is 2-2 which isn't correct" },
- { 0, 0, "\\(*\\)*\\1*", "a*b*11", },
- { 2, 3, "\\(*\\)*\\1*b", "a*b*11", },
- { 0, 0, NULL, "the expected result for \\(a\\(b\\{1,2\\}\\)\\{1,2\\}\\) is 1-5 which isn't correct" },
- { 1, 3, "\\(a\\(b\\{1,2\\}\\)\\{1,2\\}\\)", "abbab", },
- { 1, 5, "\\(a\\(b\\{1,2\\}\\)\\)\\{1,2\\}", "abbab", },
- { 1, 1, "^\\(^\\(^a$\\)$\\)$", "a", },
- { 1, 2, "\\(a\\)\\1$", "aa", },
- { 1, 3, "ab*", "abb", },
- { 1, 4, "ab\\{2,4\\}", "abbbc", },
- { 0, 0, "2.8.3.5 BRE Expression Anchoring", NULL, },
- { 0, 0, "GA144", NULL, },
- { 1, 1, "^a", "abc", },
- { -1, -1, "^b", "abc", },
- { -1, -1, "^[a-zA-Z]", "99Nine", },
- { 1, 4, "^[a-zA-Z]*", "Nine99", },
- { 0, 0, "GA145(1)", NULL, },
- { 1, 2, "\\(^a\\)\\1", "aabc", },
- { -1, -1, "\\(^a\\)\\1", "^a^abc", },
- { 1, 2, "\\(^^a\\)", "^a", },
- { 1, 1, "\\(^^\\)", "^^", },
- { 1, 3, "\\(^abc\\)", "abcdef", },
- { -1, -1, "\\(^def\\)", "abcdef", },
- { 0, 0, "GA146", NULL, },
- { 3, 3, "a$", "cba", },
- { -1, -1, "a$", "abc", },
- { 5, 7, "[a-z]*$", "99ZZxyz", },
- { 0, 0, NULL, "the expected result for [a-z]*$ is failure which isn't correct" },
- { 10, 9, "[a-z]*$", "99ZZxyz99", },
- { 3, 3, "$$", "ab$", },
- { -1, -1, "$$", "$ab", },
- { 3, 3, "\\$$", "ab$", },
- { 0, 0, "GA147(1)", NULL, },
- { -1, -1, "\\(a$\\)\\1", "bcaa", },
- { -1, -1, "\\(a$\\)\\1", "ba$", },
- { -1, -1, "\\(ab$\\)", "ab$", },
- { 1, 2, "\\(ab$\\)", "ab", },
- { 4, 6, "\\(def$\\)", "abcdef", },
- { -1, -1, "\\(abc$\\)", "abcdef", },
- { 0, 0, "GA148", NULL, },
- { 0, 0, "^$", "", },
- { 1, 3, "^abc$", "abc", },
- { -1, -1, "^xyz$", "^xyz^", },
- { -1, -1, "^234$", "^234$", },
- { 1, 9, "^[a-zA-Z0-9]*$", "2aA3bB9zZ", },
- { -1, -1, "^[a-z0-9]*$", "2aA3b#B9zZ", },
diff --git a/posix/pwrite.c b/posix/pwrite.c
index 35b7130377..10785dd76e 100644
--- a/posix/pwrite.c
+++ b/posix/pwrite.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/posix/pwrite64.c b/posix/pwrite64.c
index 04b3b094ff..a301705f02 100644
--- a/posix/pwrite64.c
+++ b/posix/pwrite64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/posix/re_comp.h b/posix/re_comp.h
index d011b26e02..b77b687899 100644
--- a/posix/re_comp.h
+++ b/posix/re_comp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _RE_COMP_H
#define _RE_COMP_H 1
diff --git a/posix/regcomp.c b/posix/regcomp.c
index 545d188468..3e8f1e6107 100644
--- a/posix/regcomp.c
+++ b/posix/regcomp.c
@@ -1,5 +1,5 @@
/* Extended regular expression matching and search library.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
@@ -233,9 +233,7 @@ re_compile_pattern (const char *pattern, size_t length,
return NULL;
return gettext (__re_error_msgid + __re_error_msgid_idx[(int) ret]);
}
-#ifdef _LIBC
weak_alias (__re_compile_pattern, re_compile_pattern)
-#endif
/* Set by 're_set_syntax' to the current regexp syntax to recognize. Can
also be assigned to arbitrarily: each pattern buffer stores its own
@@ -260,9 +258,7 @@ re_set_syntax (reg_syntax_t syntax)
re_syntax_options = syntax;
return ret;
}
-#ifdef _LIBC
weak_alias (__re_set_syntax, re_set_syntax)
-#endif
int
re_compile_fastmap (struct re_pattern_buffer *bufp)
@@ -281,9 +277,7 @@ re_compile_fastmap (struct re_pattern_buffer *bufp)
bufp->fastmap_accurate = 1;
return 0;
}
-#ifdef _LIBC
weak_alias (__re_compile_fastmap, re_compile_fastmap)
-#endif
static inline void
__attribute__ ((always_inline))
@@ -464,7 +458,7 @@ re_compile_fastmap_iter (regex_t *bufp, const re_dfastate_t *init_state,
the return codes and their meanings.) */
int
-regcomp (regex_t *_Restrict_ preg, const char *_Restrict_ pattern, int cflags)
+regcomp (regex_t *__restrict preg, const char *__restrict pattern, int cflags)
{
reg_errcode_t ret;
reg_syntax_t syntax = ((cflags & REG_EXTENDED) ? RE_SYNTAX_POSIX_EXTENDED
@@ -476,7 +470,7 @@ regcomp (regex_t *_Restrict_ preg, const char *_Restrict_ pattern, int cflags)
/* Try to allocate space for the fastmap. */
preg->fastmap = re_malloc (char, SBC_MAX);
- if (BE (preg->fastmap == NULL, 0))
+ if (__glibc_unlikely (preg->fastmap == NULL))
return REG_ESPACE;
syntax |= (cflags & REG_ICASE) ? RE_ICASE : 0;
@@ -502,7 +496,7 @@ regcomp (regex_t *_Restrict_ preg, const char *_Restrict_ pattern, int cflags)
ret = REG_EPAREN;
/* We have already checked preg->fastmap != NULL. */
- if (BE (ret == REG_NOERROR, 1))
+ if (__glibc_likely (ret == REG_NOERROR))
/* Compute the fastmap now, since regexec cannot modify the pattern
buffer. This function never fails in this implementation. */
(void) re_compile_fastmap (preg);
@@ -515,24 +509,21 @@ regcomp (regex_t *_Restrict_ preg, const char *_Restrict_ pattern, int cflags)
return (int) ret;
}
-#ifdef _LIBC
libc_hidden_def (__regcomp)
weak_alias (__regcomp, regcomp)
-#endif
/* Returns a message corresponding to an error code, ERRCODE, returned
from either regcomp or regexec. We don't use PREG here. */
size_t
-regerror (int errcode, const regex_t *_Restrict_ preg, char *_Restrict_ errbuf,
+regerror (int errcode, const regex_t *__restrict preg, char *__restrict errbuf,
size_t errbuf_size)
{
const char *msg;
size_t msg_size;
+ int nerrcodes = sizeof __re_error_msgid_idx / sizeof __re_error_msgid_idx[0];
- if (BE (errcode < 0
- || errcode >= (int) (sizeof (__re_error_msgid_idx)
- / sizeof (__re_error_msgid_idx[0])), 0))
+ if (__glibc_unlikely (errcode < 0 || errcode >= nerrcodes))
/* Only error codes returned by the rest of the code should be passed
to this routine. If we are given anything else, or if other regex
code generates an invalid error code, then the program has a bug.
@@ -543,10 +534,10 @@ regerror (int errcode, const regex_t *_Restrict_ preg, char *_Restrict_ errbuf,
msg_size = strlen (msg) + 1; /* Includes the null. */
- if (BE (errbuf_size != 0, 1))
+ if (__glibc_likely (errbuf_size != 0))
{
size_t cpy_size = msg_size;
- if (BE (msg_size > errbuf_size, 0))
+ if (__glibc_unlikely (msg_size > errbuf_size))
{
cpy_size = errbuf_size - 1;
errbuf[cpy_size] = '\0';
@@ -556,9 +547,7 @@ regerror (int errcode, const regex_t *_Restrict_ preg, char *_Restrict_ errbuf,
return msg_size;
}
-#ifdef _LIBC
weak_alias (__regerror, regerror)
-#endif
#ifdef RE_ENABLE_I18N
@@ -644,7 +633,7 @@ void
regfree (regex_t *preg)
{
re_dfa_t *dfa = preg->buffer;
- if (BE (dfa != NULL, 1))
+ if (__glibc_likely (dfa != NULL))
{
lock_fini (dfa->lock);
free_dfa_content (dfa);
@@ -658,10 +647,8 @@ regfree (regex_t *preg)
re_free (preg->translate);
preg->translate = NULL;
}
-#ifdef _LIBC
libc_hidden_def (__regfree)
weak_alias (__regfree, regfree)
-#endif
/* Entry points compatible with 4.2 BSD regex library. We don't define
them unless specifically requested. */
@@ -754,7 +741,7 @@ re_compile_internal (regex_t *preg, const char * pattern, size_t length,
/* Initialize the dfa. */
dfa = preg->buffer;
- if (BE (preg->allocated < sizeof (re_dfa_t), 0))
+ if (__glibc_unlikely (preg->allocated < sizeof (re_dfa_t)))
{
/* If zero allocated, but buffer is non-null, try to realloc
enough space. This loses if buffer's address is bogus, but
@@ -769,9 +756,9 @@ re_compile_internal (regex_t *preg, const char * pattern, size_t length,
preg->used = sizeof (re_dfa_t);
err = init_dfa (dfa, length);
- if (BE (err == REG_NOERROR && lock_init (dfa->lock) != 0, 0))
+ if (__glibc_unlikely (err == REG_NOERROR && lock_init (dfa->lock) != 0))
err = REG_ESPACE;
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
{
free_dfa_content (dfa);
preg->buffer = NULL;
@@ -786,7 +773,7 @@ re_compile_internal (regex_t *preg, const char * pattern, size_t length,
err = re_string_construct (&regexp, pattern, length, preg->translate,
(syntax & RE_ICASE) != 0, dfa);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
{
re_compile_internal_free_return:
free_workarea_compile (preg);
@@ -801,12 +788,12 @@ re_compile_internal (regex_t *preg, const char * pattern, size_t length,
/* Parse the regular expression, and build a structure tree. */
preg->re_nsub = 0;
dfa->str_tree = parse (&regexp, preg, syntax, &err);
- if (BE (dfa->str_tree == NULL, 0))
+ if (__glibc_unlikely (dfa->str_tree == NULL))
goto re_compile_internal_free_return;
/* Analyze the tree and create the nfa. */
err = analyze (preg);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
goto re_compile_internal_free_return;
#ifdef RE_ENABLE_I18N
@@ -822,7 +809,7 @@ re_compile_internal (regex_t *preg, const char * pattern, size_t length,
free_workarea_compile (preg);
re_string_destruct (&regexp);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
{
lock_fini (dfa->lock);
free_dfa_content (dfa);
@@ -864,7 +851,8 @@ init_dfa (re_dfa_t *dfa, size_t pat_len)
calculation below, and for similar doubling calculations
elsewhere. And it's <= rather than <, because some of the
doubling calculations add 1 afterwards. */
- if (BE (MIN (IDX_MAX, SIZE_MAX / max_object_size) / 2 <= pat_len, 0))
+ if (__glibc_unlikely (MIN (IDX_MAX, SIZE_MAX / max_object_size) / 2
+ <= pat_len))
return REG_ESPACE;
dfa->nodes_alloc = pat_len + 1;
@@ -908,7 +896,7 @@ init_dfa (re_dfa_t *dfa, size_t pat_len)
int i, j, ch;
dfa->sb_char = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1);
- if (BE (dfa->sb_char == NULL, 0))
+ if (__glibc_unlikely (dfa->sb_char == NULL))
return REG_ESPACE;
/* Set the bits corresponding to single byte chars. */
@@ -927,7 +915,7 @@ init_dfa (re_dfa_t *dfa, size_t pat_len)
}
#endif
- if (BE (dfa->nodes == NULL || dfa->state_table == NULL, 0))
+ if (__glibc_unlikely (dfa->nodes == NULL || dfa->state_table == NULL))
return REG_ESPACE;
return REG_NOERROR;
}
@@ -943,7 +931,7 @@ init_word_char (re_dfa_t *dfa)
int j;
int ch = 0;
dfa->word_ops_used = 1;
- if (BE (dfa->map_notascii == 0, 1))
+ if (__glibc_likely (dfa->map_notascii == 0))
{
/* Avoid uint32_t and uint64_t as some non-GCC platforms lack
them, an issue when this code is used in Gnulib. */
@@ -970,7 +958,7 @@ init_word_char (re_dfa_t *dfa)
goto general_case;
ch = 128;
- if (BE (dfa->is_utf8, 1))
+ if (__glibc_likely (dfa->is_utf8))
{
memset (&dfa->word_char[i], '\0', (SBC_MAX - ch) / 8);
return;
@@ -1017,7 +1005,7 @@ create_initial_state (re_dfa_t *dfa)
first = dfa->str_tree->first->node_idx;
dfa->init_node = first;
err = re_node_set_init_copy (&init_nodes, dfa->eclosures + first);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
/* The back-references which are in initial states can epsilon transit,
@@ -1061,7 +1049,7 @@ create_initial_state (re_dfa_t *dfa)
/* It must be the first time to invoke acquire_state. */
dfa->init_state = re_acquire_state_context (&err, dfa, &init_nodes, 0);
/* We don't check ERR here, since the initial state must not be NULL. */
- if (BE (dfa->init_state == NULL, 0))
+ if (__glibc_unlikely (dfa->init_state == NULL))
return err;
if (dfa->init_state->has_constraint)
{
@@ -1073,8 +1061,9 @@ create_initial_state (re_dfa_t *dfa)
&init_nodes,
CONTEXT_NEWLINE
| CONTEXT_BEGBUF);
- if (BE (dfa->init_state_word == NULL || dfa->init_state_nl == NULL
- || dfa->init_state_begbuf == NULL, 0))
+ if (__glibc_unlikely (dfa->init_state_word == NULL
+ || dfa->init_state_nl == NULL
+ || dfa->init_state_begbuf == NULL))
return err;
}
else
@@ -1181,8 +1170,8 @@ analyze (regex_t *preg)
dfa->org_indices = re_malloc (Idx, dfa->nodes_alloc);
dfa->edests = re_malloc (re_node_set, dfa->nodes_alloc);
dfa->eclosures = re_malloc (re_node_set, dfa->nodes_alloc);
- if (BE (dfa->nexts == NULL || dfa->org_indices == NULL || dfa->edests == NULL
- || dfa->eclosures == NULL, 0))
+ if (__glibc_unlikely (dfa->nexts == NULL || dfa->org_indices == NULL
+ || dfa->edests == NULL || dfa->eclosures == NULL))
return REG_ESPACE;
dfa->subexp_map = re_malloc (Idx, preg->re_nsub);
@@ -1203,17 +1192,17 @@ analyze (regex_t *preg)
}
ret = postorder (dfa->str_tree, lower_subexps, preg);
- if (BE (ret != REG_NOERROR, 0))
+ if (__glibc_unlikely (ret != REG_NOERROR))
return ret;
ret = postorder (dfa->str_tree, calc_first, dfa);
- if (BE (ret != REG_NOERROR, 0))
+ if (__glibc_unlikely (ret != REG_NOERROR))
return ret;
preorder (dfa->str_tree, calc_next, dfa);
ret = preorder (dfa->str_tree, link_nfa_nodes, dfa);
- if (BE (ret != REG_NOERROR, 0))
+ if (__glibc_unlikely (ret != REG_NOERROR))
return ret;
ret = calc_eclosure (dfa);
- if (BE (ret != REG_NOERROR, 0))
+ if (__glibc_unlikely (ret != REG_NOERROR))
return ret;
/* We only need this during the prune_impossible_nodes pass in regexec.c;
@@ -1222,7 +1211,7 @@ analyze (regex_t *preg)
|| dfa->nbackref)
{
dfa->inveclosures = re_malloc (re_node_set, dfa->nodes_len);
- if (BE (dfa->inveclosures == NULL, 0))
+ if (__glibc_unlikely (dfa->inveclosures == NULL))
return REG_ESPACE;
ret = calc_inveclosure (dfa);
}
@@ -1252,7 +1241,7 @@ postorder (bin_tree_t *root, reg_errcode_t (fn (void *, bin_tree_t *)),
do
{
reg_errcode_t err = fn (extra, node);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
if (node->parent == NULL)
return REG_NOERROR;
@@ -1274,7 +1263,7 @@ preorder (bin_tree_t *root, reg_errcode_t (fn (void *, bin_tree_t *)),
for (node = root; ; )
{
reg_errcode_t err = fn (extra, node);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
/* Go to the left node, or up and to the right. */
@@ -1375,7 +1364,8 @@ lower_subexp (reg_errcode_t *err, regex_t *preg, bin_tree_t *node)
cls = create_tree (dfa, NULL, NULL, OP_CLOSE_SUBEXP);
tree1 = body ? create_tree (dfa, body, cls, CONCAT) : cls;
tree = create_tree (dfa, op, tree1, CONCAT);
- if (BE (tree == NULL || tree1 == NULL || op == NULL || cls == NULL, 0))
+ if (__glibc_unlikely (tree == NULL || tree1 == NULL
+ || op == NULL || cls == NULL))
{
*err = REG_ESPACE;
return NULL;
@@ -1401,7 +1391,7 @@ calc_first (void *extra, bin_tree_t *node)
{
node->first = node;
node->node_idx = re_dfa_add_node (dfa, node->token);
- if (BE (node->node_idx == -1, 0))
+ if (__glibc_unlikely (node->node_idx == -1))
return REG_ESPACE;
if (node->token.type == ANCHOR)
dfa->nodes[node->node_idx].constraint = node->token.opr.ctx_type;
@@ -1446,7 +1436,7 @@ link_nfa_nodes (void *extra, bin_tree_t *node)
break;
case END_OF_RE:
- assert (node->next == NULL);
+ DEBUG_ASSERT (node->next == NULL);
break;
case OP_DUP_ASTERISK:
@@ -1462,8 +1452,8 @@ link_nfa_nodes (void *extra, bin_tree_t *node)
right = node->right->first->node_idx;
else
right = node->next->node_idx;
- assert (left > -1);
- assert (right > -1);
+ DEBUG_ASSERT (left > -1);
+ DEBUG_ASSERT (right > -1);
err = re_node_set_init_2 (dfa->edests + idx, left, right);
}
break;
@@ -1481,7 +1471,7 @@ link_nfa_nodes (void *extra, bin_tree_t *node)
break;
default:
- assert (!IS_EPSILON_NODE (node->token.type));
+ DEBUG_ASSERT (!IS_EPSILON_NODE (node->token.type));
dfa->nexts[idx] = node->next->node_idx;
break;
}
@@ -1512,11 +1502,11 @@ duplicate_node_closure (re_dfa_t *dfa, Idx top_org_node, Idx top_clone_node,
org_dest = dfa->nexts[org_node];
re_node_set_empty (dfa->edests + clone_node);
clone_dest = duplicate_node (dfa, org_dest, constraint);
- if (BE (clone_dest == -1, 0))
+ if (__glibc_unlikely (clone_dest == -1))
return REG_ESPACE;
dfa->nexts[clone_node] = dfa->nexts[org_node];
ok = re_node_set_insert (dfa->edests + clone_node, clone_dest);
- if (BE (! ok, 0))
+ if (__glibc_unlikely (! ok))
return REG_ESPACE;
}
else if (dfa->edests[org_node].nelem == 0)
@@ -1538,17 +1528,17 @@ duplicate_node_closure (re_dfa_t *dfa, Idx top_org_node, Idx top_clone_node,
if (org_node == root_node && clone_node != org_node)
{
ok = re_node_set_insert (dfa->edests + clone_node, org_dest);
- if (BE (! ok, 0))
+ if (__glibc_unlikely (! ok))
return REG_ESPACE;
break;
}
/* In case the node has another constraint, append it. */
constraint |= dfa->nodes[org_node].constraint;
clone_dest = duplicate_node (dfa, org_dest, constraint);
- if (BE (clone_dest == -1, 0))
+ if (__glibc_unlikely (clone_dest == -1))
return REG_ESPACE;
ok = re_node_set_insert (dfa->edests + clone_node, clone_dest);
- if (BE (! ok, 0))
+ if (__glibc_unlikely (! ok))
return REG_ESPACE;
}
else /* dfa->edests[org_node].nelem == 2 */
@@ -1564,14 +1554,14 @@ duplicate_node_closure (re_dfa_t *dfa, Idx top_org_node, Idx top_clone_node,
/* There is no such duplicated node, create a new one. */
reg_errcode_t err;
clone_dest = duplicate_node (dfa, org_dest, constraint);
- if (BE (clone_dest == -1, 0))
+ if (__glibc_unlikely (clone_dest == -1))
return REG_ESPACE;
ok = re_node_set_insert (dfa->edests + clone_node, clone_dest);
- if (BE (! ok, 0))
+ if (__glibc_unlikely (! ok))
return REG_ESPACE;
err = duplicate_node_closure (dfa, org_dest, clone_dest,
root_node, constraint);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
}
else
@@ -1579,16 +1569,16 @@ duplicate_node_closure (re_dfa_t *dfa, Idx top_org_node, Idx top_clone_node,
/* There is a duplicated node which satisfies the constraint,
use it to avoid infinite loop. */
ok = re_node_set_insert (dfa->edests + clone_node, clone_dest);
- if (BE (! ok, 0))
+ if (__glibc_unlikely (! ok))
return REG_ESPACE;
}
org_dest = dfa->edests[org_node].elems[1];
clone_dest = duplicate_node (dfa, org_dest, constraint);
- if (BE (clone_dest == -1, 0))
+ if (__glibc_unlikely (clone_dest == -1))
return REG_ESPACE;
ok = re_node_set_insert (dfa->edests + clone_node, clone_dest);
- if (BE (! ok, 0))
+ if (__glibc_unlikely (! ok))
return REG_ESPACE;
}
org_node = org_dest;
@@ -1622,7 +1612,7 @@ static Idx
duplicate_node (re_dfa_t *dfa, Idx org_idx, unsigned int constraint)
{
Idx dup_idx = re_dfa_add_node (dfa, dfa->nodes[org_idx]);
- if (BE (dup_idx != -1, 1))
+ if (__glibc_likely (dup_idx != -1))
{
dfa->nodes[dup_idx].constraint = constraint;
dfa->nodes[dup_idx].constraint |= dfa->nodes[org_idx].constraint;
@@ -1648,7 +1638,7 @@ calc_inveclosure (re_dfa_t *dfa)
for (idx = 0; idx < dfa->eclosures[src].nelem; ++idx)
{
ok = re_node_set_insert_last (dfa->inveclosures + elems[idx], src);
- if (BE (! ok, 0))
+ if (__glibc_unlikely (! ok))
return REG_ESPACE;
}
}
@@ -1663,9 +1653,7 @@ calc_eclosure (re_dfa_t *dfa)
{
Idx node_idx;
bool incomplete;
-#ifdef DEBUG
- assert (dfa->nodes_len > 0);
-#endif
+ DEBUG_ASSERT (dfa->nodes_len > 0);
incomplete = false;
/* For each nodes, calculate epsilon closure. */
for (node_idx = 0; ; ++node_idx)
@@ -1680,16 +1668,14 @@ calc_eclosure (re_dfa_t *dfa)
node_idx = 0;
}
-#ifdef DEBUG
- assert (dfa->eclosures[node_idx].nelem != -1);
-#endif
+ DEBUG_ASSERT (dfa->eclosures[node_idx].nelem != -1);
/* If we have already calculated, skip it. */
if (dfa->eclosures[node_idx].nelem != 0)
continue;
/* Calculate epsilon closure of 'node_idx'. */
err = calc_eclosure_iter (&eclosure_elem, dfa, node_idx, true);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
if (dfa->eclosures[node_idx].nelem == 0)
@@ -1712,7 +1698,7 @@ calc_eclosure_iter (re_node_set *new_set, re_dfa_t *dfa, Idx node, bool root)
bool ok;
bool incomplete = false;
err = re_node_set_alloc (&eclosure, dfa->edests[node].nelem + 1);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
/* This indicates that we are calculating this node now.
@@ -1727,7 +1713,7 @@ calc_eclosure_iter (re_node_set *new_set, re_dfa_t *dfa, Idx node, bool root)
{
err = duplicate_node_closure (dfa, node, node, node,
dfa->nodes[node].constraint);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
}
@@ -1749,14 +1735,14 @@ calc_eclosure_iter (re_node_set *new_set, re_dfa_t *dfa, Idx node, bool root)
if (dfa->eclosures[edest].nelem == 0)
{
err = calc_eclosure_iter (&eclosure_elem, dfa, edest, false);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
}
else
eclosure_elem = dfa->eclosures[edest];
/* Merge the epsilon closure of 'edest'. */
err = re_node_set_merge (&eclosure, &eclosure_elem);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
/* If the epsilon closure of 'edest' is incomplete,
the epsilon closure of this node is also incomplete. */
@@ -1769,7 +1755,7 @@ calc_eclosure_iter (re_node_set *new_set, re_dfa_t *dfa, Idx node, bool root)
/* An epsilon closure includes itself. */
ok = re_node_set_insert (&eclosure, node);
- if (BE (! ok, 0))
+ if (__glibc_unlikely (! ok))
return REG_ESPACE;
if (incomplete && !root)
dfa->eclosures[node].nelem = 0;
@@ -1810,8 +1796,8 @@ peek_token (re_token_t *token, re_string_t *input, reg_syntax_t syntax)
token->word_char = 0;
#ifdef RE_ENABLE_I18N
token->mb_partial = 0;
- if (input->mb_cur_max > 1 &&
- !re_string_first_byte (input, re_string_cur_idx (input)))
+ if (input->mb_cur_max > 1
+ && !re_string_first_byte (input, re_string_cur_idx (input)))
{
token->type = CHARACTER;
token->mb_partial = 1;
@@ -1998,8 +1984,8 @@ peek_token (re_token_t *token, re_string_t *input, reg_syntax_t syntax)
token->type = OP_PERIOD;
break;
case '^':
- if (!(syntax & (RE_CONTEXT_INDEP_ANCHORS | RE_CARET_ANCHORS_HERE)) &&
- re_string_cur_idx (input) != 0)
+ if (!(syntax & (RE_CONTEXT_INDEP_ANCHORS | RE_CARET_ANCHORS_HERE))
+ && re_string_cur_idx (input) != 0)
{
char prev = re_string_peek_byte (input, -1);
if (!(syntax & RE_NEWLINE_ALT) || prev != '\n')
@@ -2009,8 +1995,8 @@ peek_token (re_token_t *token, re_string_t *input, reg_syntax_t syntax)
token->opr.ctx_type = LINE_FIRST;
break;
case '$':
- if (!(syntax & RE_CONTEXT_INDEP_ANCHORS) &&
- re_string_cur_idx (input) + 1 != re_string_length (input))
+ if (!(syntax & RE_CONTEXT_INDEP_ANCHORS)
+ && re_string_cur_idx (input) + 1 != re_string_length (input))
{
re_token_t next;
re_string_skip_bytes (input, 1);
@@ -2044,8 +2030,8 @@ peek_token_bracket (re_token_t *token, re_string_t *input, reg_syntax_t syntax)
token->opr.c = c;
#ifdef RE_ENABLE_I18N
- if (input->mb_cur_max > 1 &&
- !re_string_first_byte (input, re_string_cur_idx (input)))
+ if (input->mb_cur_max > 1
+ && !re_string_first_byte (input, re_string_cur_idx (input)))
{
token->type = CHARACTER;
return 1;
@@ -2139,14 +2125,14 @@ parse (re_string_t *regexp, regex_t *preg, reg_syntax_t syntax,
dfa->syntax = syntax;
fetch_token (&current_token, regexp, syntax | RE_CARET_ANCHORS_HERE);
tree = parse_reg_exp (regexp, preg, &current_token, syntax, 0, err);
- if (BE (*err != REG_NOERROR && tree == NULL, 0))
+ if (__glibc_unlikely (*err != REG_NOERROR && tree == NULL))
return NULL;
eor = create_tree (dfa, NULL, NULL, END_OF_RE);
if (tree != NULL)
root = create_tree (dfa, tree, eor, CONCAT);
else
root = eor;
- if (BE (eor == NULL || root == NULL, 0))
+ if (__glibc_unlikely (eor == NULL || root == NULL))
{
*err = REG_ESPACE;
return NULL;
@@ -2171,7 +2157,7 @@ parse_reg_exp (re_string_t *regexp, regex_t *preg, re_token_t *token,
bin_tree_t *tree, *branch = NULL;
bitset_word_t initial_bkref_map = dfa->completed_bkref_map;
tree = parse_branch (regexp, preg, token, syntax, nest, err);
- if (BE (*err != REG_NOERROR && tree == NULL, 0))
+ if (__glibc_unlikely (*err != REG_NOERROR && tree == NULL))
return NULL;
while (token->type == OP_ALT)
@@ -2183,7 +2169,7 @@ parse_reg_exp (re_string_t *regexp, regex_t *preg, re_token_t *token,
bitset_word_t accumulated_bkref_map = dfa->completed_bkref_map;
dfa->completed_bkref_map = initial_bkref_map;
branch = parse_branch (regexp, preg, token, syntax, nest, err);
- if (BE (*err != REG_NOERROR && branch == NULL, 0))
+ if (__glibc_unlikely (*err != REG_NOERROR && branch == NULL))
{
if (tree != NULL)
postorder (tree, free_tree, NULL);
@@ -2194,7 +2180,7 @@ parse_reg_exp (re_string_t *regexp, regex_t *preg, re_token_t *token,
else
branch = NULL;
tree = create_tree (dfa, tree, branch, OP_ALT);
- if (BE (tree == NULL, 0))
+ if (__glibc_unlikely (tree == NULL))
{
*err = REG_ESPACE;
return NULL;
@@ -2219,14 +2205,14 @@ parse_branch (re_string_t *regexp, regex_t *preg, re_token_t *token,
bin_tree_t *tree, *expr;
re_dfa_t *dfa = preg->buffer;
tree = parse_expression (regexp, preg, token, syntax, nest, err);
- if (BE (*err != REG_NOERROR && tree == NULL, 0))
+ if (__glibc_unlikely (*err != REG_NOERROR && tree == NULL))
return NULL;
while (token->type != OP_ALT && token->type != END_OF_RE
&& (nest == 0 || token->type != OP_CLOSE_SUBEXP))
{
expr = parse_expression (regexp, preg, token, syntax, nest, err);
- if (BE (*err != REG_NOERROR && expr == NULL, 0))
+ if (__glibc_unlikely (*err != REG_NOERROR && expr == NULL))
{
if (tree != NULL)
postorder (tree, free_tree, NULL);
@@ -2267,7 +2253,7 @@ parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token,
{
case CHARACTER:
tree = create_token_tree (dfa, NULL, NULL, token);
- if (BE (tree == NULL, 0))
+ if (__glibc_unlikely (tree == NULL))
{
*err = REG_ESPACE;
return NULL;
@@ -2282,7 +2268,7 @@ parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token,
fetch_token (token, regexp, syntax);
mbc_remain = create_token_tree (dfa, NULL, NULL, token);
tree = create_tree (dfa, tree, mbc_remain, CONCAT);
- if (BE (mbc_remain == NULL || tree == NULL, 0))
+ if (__glibc_unlikely (mbc_remain == NULL || tree == NULL))
{
*err = REG_ESPACE;
return NULL;
@@ -2294,25 +2280,25 @@ parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token,
case OP_OPEN_SUBEXP:
tree = parse_sub_exp (regexp, preg, token, syntax, nest + 1, err);
- if (BE (*err != REG_NOERROR && tree == NULL, 0))
+ if (__glibc_unlikely (*err != REG_NOERROR && tree == NULL))
return NULL;
break;
case OP_OPEN_BRACKET:
tree = parse_bracket_exp (regexp, dfa, token, syntax, err);
- if (BE (*err != REG_NOERROR && tree == NULL, 0))
+ if (__glibc_unlikely (*err != REG_NOERROR && tree == NULL))
return NULL;
break;
case OP_BACK_REF:
- if (!BE (dfa->completed_bkref_map & (1 << token->opr.idx), 1))
+ if (!__glibc_likely (dfa->completed_bkref_map & (1 << token->opr.idx)))
{
*err = REG_ESUBREG;
return NULL;
}
dfa->used_bkref_map |= 1 << token->opr.idx;
tree = create_token_tree (dfa, NULL, NULL, token);
- if (BE (tree == NULL, 0))
+ if (__glibc_unlikely (tree == NULL))
{
*err = REG_ESPACE;
return NULL;
@@ -2343,8 +2329,8 @@ parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token,
}
FALLTHROUGH;
case OP_CLOSE_SUBEXP:
- if ((token->type == OP_CLOSE_SUBEXP) &&
- !(syntax & RE_UNMATCHED_RIGHT_PAREN_ORD))
+ if ((token->type == OP_CLOSE_SUBEXP)
+ && !(syntax & RE_UNMATCHED_RIGHT_PAREN_ORD))
{
*err = REG_ERPAREN;
return NULL;
@@ -2358,7 +2344,7 @@ parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token,
/* mb_partial and word_char bits should be initialized already
by peek_token. */
tree = create_token_tree (dfa, NULL, NULL, token);
- if (BE (tree == NULL, 0))
+ if (__glibc_unlikely (tree == NULL))
{
*err = REG_ESPACE;
return NULL;
@@ -2388,7 +2374,8 @@ parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token,
}
tree_last = create_token_tree (dfa, NULL, NULL, token);
tree = create_tree (dfa, tree_first, tree_last, OP_ALT);
- if (BE (tree_first == NULL || tree_last == NULL || tree == NULL, 0))
+ if (__glibc_unlikely (tree_first == NULL || tree_last == NULL
+ || tree == NULL))
{
*err = REG_ESPACE;
return NULL;
@@ -2397,7 +2384,7 @@ parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token,
else
{
tree = create_token_tree (dfa, NULL, NULL, token);
- if (BE (tree == NULL, 0))
+ if (__glibc_unlikely (tree == NULL))
{
*err = REG_ESPACE;
return NULL;
@@ -2412,7 +2399,7 @@ parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token,
case OP_PERIOD:
tree = create_token_tree (dfa, NULL, NULL, token);
- if (BE (tree == NULL, 0))
+ if (__glibc_unlikely (tree == NULL))
{
*err = REG_ESPACE;
return NULL;
@@ -2427,7 +2414,7 @@ parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token,
"alnum",
"_",
token->type == OP_NOTWORD, err);
- if (BE (*err != REG_NOERROR && tree == NULL, 0))
+ if (__glibc_unlikely (*err != REG_NOERROR && tree == NULL))
return NULL;
break;
@@ -2437,7 +2424,7 @@ parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token,
"space",
"",
token->type == OP_NOTSPACE, err);
- if (BE (*err != REG_NOERROR && tree == NULL, 0))
+ if (__glibc_unlikely (*err != REG_NOERROR && tree == NULL))
return NULL;
break;
@@ -2451,9 +2438,7 @@ parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token,
default:
/* Must not happen? */
-#ifdef DEBUG
- assert (0);
-#endif
+ DEBUG_ASSERT (false);
return NULL;
}
fetch_token (token, regexp, syntax);
@@ -2463,7 +2448,7 @@ parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token,
{
bin_tree_t *dup_tree = parse_dup_op (tree, regexp, dfa, token,
syntax, err);
- if (BE (*err != REG_NOERROR && dup_tree == NULL, 0))
+ if (__glibc_unlikely (*err != REG_NOERROR && dup_tree == NULL))
{
if (tree != NULL)
postorder (tree, free_tree, NULL);
@@ -2509,13 +2494,14 @@ parse_sub_exp (re_string_t *regexp, regex_t *preg, re_token_t *token,
else
{
tree = parse_reg_exp (regexp, preg, token, syntax, nest, err);
- if (BE (*err == REG_NOERROR && token->type != OP_CLOSE_SUBEXP, 0))
+ if (__glibc_unlikely (*err == REG_NOERROR
+ && token->type != OP_CLOSE_SUBEXP))
{
if (tree != NULL)
postorder (tree, free_tree, NULL);
*err = REG_EPAREN;
}
- if (BE (*err != REG_NOERROR, 0))
+ if (__glibc_unlikely (*err != REG_NOERROR))
return NULL;
}
@@ -2523,7 +2509,7 @@ parse_sub_exp (re_string_t *regexp, regex_t *preg, re_token_t *token,
dfa->completed_bkref_map |= 1 << cur_nsub;
tree = create_tree (dfa, tree, NULL, SUBEXP);
- if (BE (tree == NULL, 0))
+ if (__glibc_unlikely (tree == NULL))
{
*err = REG_ESPACE;
return NULL;
@@ -2556,17 +2542,17 @@ parse_dup_op (bin_tree_t *elem, re_string_t *regexp, re_dfa_t *dfa,
return NULL;
}
}
- if (BE (start != -2, 1))
+ if (__glibc_likely (start != -2))
{
/* We treat "{n}" as "{n,n}". */
end = ((token->type == OP_CLOSE_DUP_NUM) ? start
: ((token->type == CHARACTER && token->opr.c == ',')
? fetch_number (regexp, token, syntax) : -2));
}
- if (BE (start == -2 || end == -2, 0))
+ if (__glibc_unlikely (start == -2 || end == -2))
{
/* Invalid sequence. */
- if (BE (!(syntax & RE_INVALID_INTERVAL_ORD), 0))
+ if (__glibc_unlikely (!(syntax & RE_INVALID_INTERVAL_ORD)))
{
if (token->type == END_OF_RE)
*err = REG_EBRACE;
@@ -2585,15 +2571,15 @@ parse_dup_op (bin_tree_t *elem, re_string_t *regexp, re_dfa_t *dfa,
return elem;
}
- if (BE ((end != -1 && start > end)
- || token->type != OP_CLOSE_DUP_NUM, 0))
+ if (__glibc_unlikely ((end != -1 && start > end)
+ || token->type != OP_CLOSE_DUP_NUM))
{
/* First number greater than second. */
*err = REG_BADBR;
return NULL;
}
- if (BE (RE_DUP_MAX < (end == -1 ? start : end), 0))
+ if (__glibc_unlikely (RE_DUP_MAX < (end == -1 ? start : end)))
{
*err = REG_ESIZE;
return NULL;
@@ -2607,23 +2593,23 @@ parse_dup_op (bin_tree_t *elem, re_string_t *regexp, re_dfa_t *dfa,
fetch_token (token, regexp, syntax);
- if (BE (elem == NULL, 0))
+ if (__glibc_unlikely (elem == NULL))
return NULL;
- if (BE (start == 0 && end == 0, 0))
+ if (__glibc_unlikely (start == 0 && end == 0))
{
postorder (elem, free_tree, NULL);
return NULL;
}
/* Extract "<re>{n,m}" to "<re><re>...<re><re>{0,<m-n>}". */
- if (BE (start > 0, 0))
+ if (__glibc_unlikely (start > 0))
{
tree = elem;
for (i = 2; i <= start; ++i)
{
elem = duplicate_tree (elem, dfa);
tree = create_tree (dfa, tree, elem, CONCAT);
- if (BE (elem == NULL || tree == NULL, 0))
+ if (__glibc_unlikely (elem == NULL || tree == NULL))
goto parse_dup_op_espace;
}
@@ -2632,7 +2618,7 @@ parse_dup_op (bin_tree_t *elem, re_string_t *regexp, re_dfa_t *dfa,
/* Duplicate ELEM before it is marked optional. */
elem = duplicate_tree (elem, dfa);
- if (BE (elem == NULL, 0))
+ if (__glibc_unlikely (elem == NULL))
goto parse_dup_op_espace;
old_tree = tree;
}
@@ -2647,7 +2633,7 @@ parse_dup_op (bin_tree_t *elem, re_string_t *regexp, re_dfa_t *dfa,
tree = create_tree (dfa, elem, NULL,
(end == -1 ? OP_DUP_ASTERISK : OP_ALT));
- if (BE (tree == NULL, 0))
+ if (__glibc_unlikely (tree == NULL))
goto parse_dup_op_espace;
/* This loop is actually executed only when end != -1,
@@ -2658,11 +2644,11 @@ parse_dup_op (bin_tree_t *elem, re_string_t *regexp, re_dfa_t *dfa,
{
elem = duplicate_tree (elem, dfa);
tree = create_tree (dfa, tree, elem, CONCAT);
- if (BE (elem == NULL || tree == NULL, 0))
+ if (__glibc_unlikely (elem == NULL || tree == NULL))
goto parse_dup_op_espace;
tree = create_tree (dfa, tree, NULL, OP_ALT);
- if (BE (tree == NULL, 0))
+ if (__glibc_unlikely (tree == NULL))
goto parse_dup_op_espace;
}
@@ -2684,15 +2670,14 @@ parse_dup_op (bin_tree_t *elem, re_string_t *regexp, re_dfa_t *dfa,
# ifdef RE_ENABLE_I18N
/* Convert the byte B to the corresponding wide character. In a
- unibyte locale, treat B as itself if it is an encoding error.
- In a multibyte locale, return WEOF if B is an encoding error. */
+ unibyte locale, treat B as itself. In a multibyte locale, return
+ WEOF if B is an encoding error. */
static wint_t
parse_byte (unsigned char b, re_charset_t *mbcset)
{
- wint_t wc = __btowc (b);
- return wc == WEOF && !mbcset ? b : wc;
+ return mbcset == NULL ? b : __btowc (b);
}
-#endif
+# endif
/* Local function for parse_bracket_exp only used in case of NOT _LIBC.
Build the range expression which starts from START_ELEM, and ends
@@ -2718,17 +2703,18 @@ build_range_exp (const reg_syntax_t syntax,
{
unsigned int start_ch, end_ch;
/* Equivalence Classes and Character Classes can't be a range start/end. */
- if (BE (start_elem->type == EQUIV_CLASS || start_elem->type == CHAR_CLASS
- || end_elem->type == EQUIV_CLASS || end_elem->type == CHAR_CLASS,
- 0))
+ if (__glibc_unlikely (start_elem->type == EQUIV_CLASS
+ || start_elem->type == CHAR_CLASS
+ || end_elem->type == EQUIV_CLASS
+ || end_elem->type == CHAR_CLASS))
return REG_ERANGE;
/* We can handle no multi character collating elements without libc
support. */
- if (BE ((start_elem->type == COLL_SYM
- && strlen ((char *) start_elem->opr.name) > 1)
- || (end_elem->type == COLL_SYM
- && strlen ((char *) end_elem->opr.name) > 1), 0))
+ if (__glibc_unlikely ((start_elem->type == COLL_SYM
+ && strlen ((char *) start_elem->opr.name) > 1)
+ || (end_elem->type == COLL_SYM
+ && strlen ((char *) end_elem->opr.name) > 1)))
return REG_ECOLLATE;
# ifdef RE_ENABLE_I18N
@@ -2749,7 +2735,8 @@ build_range_exp (const reg_syntax_t syntax,
? parse_byte (end_ch, mbcset) : end_elem->opr.wch);
if (start_wc == WEOF || end_wc == WEOF)
return REG_ECOLLATE;
- else if (BE ((syntax & RE_NO_EMPTY_RANGES) && start_wc > end_wc, 0))
+ else if (__glibc_unlikely ((syntax & RE_NO_EMPTY_RANGES)
+ && start_wc > end_wc))
return REG_ERANGE;
/* Got valid collation sequence values, add them as a new entry.
@@ -2760,7 +2747,7 @@ build_range_exp (const reg_syntax_t syntax,
if (mbcset)
{
/* Check the space of the arrays. */
- if (BE (*range_alloc == mbcset->nranges, 0))
+ if (__glibc_unlikely (*range_alloc == mbcset->nranges))
{
/* There is not enough space, need realloc. */
wchar_t *new_array_start, *new_array_end;
@@ -2775,7 +2762,8 @@ build_range_exp (const reg_syntax_t syntax,
new_array_end = re_realloc (mbcset->range_ends, wchar_t,
new_nranges);
- if (BE (new_array_start == NULL || new_array_end == NULL, 0))
+ if (__glibc_unlikely (new_array_start == NULL
+ || new_array_end == NULL))
{
re_free (new_array_start);
re_free (new_array_end);
@@ -2835,7 +2823,7 @@ build_collating_symbol (bitset_t sbcset, const unsigned char *name)
# endif /* not RE_ENABLE_I18N */
{
size_t name_len = strlen ((const char *) name);
- if (BE (name_len != 1, 0))
+ if (__glibc_unlikely (name_len != 1))
return REG_ECOLLATE;
else
{
@@ -2970,18 +2958,21 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
/* Equivalence Classes and Character Classes can't be a range
start/end. */
- if (BE (start_elem->type == EQUIV_CLASS || start_elem->type == CHAR_CLASS
- || end_elem->type == EQUIV_CLASS || end_elem->type == CHAR_CLASS,
- 0))
+ if (__glibc_unlikely (start_elem->type == EQUIV_CLASS
+ || start_elem->type == CHAR_CLASS
+ || end_elem->type == EQUIV_CLASS
+ || end_elem->type == CHAR_CLASS))
return REG_ERANGE;
/* FIXME: Implement rational ranges here, too. */
start_collseq = lookup_collation_sequence_value (start_elem);
end_collseq = lookup_collation_sequence_value (end_elem);
/* Check start/end collation sequence values. */
- if (BE (start_collseq == UINT_MAX || end_collseq == UINT_MAX, 0))
+ if (__glibc_unlikely (start_collseq == UINT_MAX
+ || end_collseq == UINT_MAX))
return REG_ECOLLATE;
- if (BE ((syntax & RE_NO_EMPTY_RANGES) && start_collseq > end_collseq, 0))
+ if (__glibc_unlikely ((syntax & RE_NO_EMPTY_RANGES)
+ && start_collseq > end_collseq))
return REG_ERANGE;
/* Got valid collation sequence values, add them as a new entry.
@@ -2991,7 +2982,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
if (nrules > 0 || dfa->mb_cur_max > 1)
{
/* Check the space of the arrays. */
- if (BE (*range_alloc == mbcset->nranges, 0))
+ if (__glibc_unlikely (*range_alloc == mbcset->nranges))
{
/* There is not enough space, need realloc. */
uint32_t *new_array_start;
@@ -3005,7 +2996,8 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
new_array_end = re_realloc (mbcset->range_ends, uint32_t,
new_nranges);
- if (BE (new_array_start == NULL || new_array_end == NULL, 0))
+ if (__glibc_unlikely (new_array_start == NULL
+ || new_array_end == NULL))
return REG_ESPACE;
mbcset->range_starts = new_array_start;
@@ -3069,7 +3061,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
/* Got valid collation sequence, add it as a new entry. */
/* Check the space of the arrays. */
- if (BE (*coll_sym_alloc == mbcset->ncoll_syms, 0))
+ if (__glibc_unlikely (*coll_sym_alloc == mbcset->ncoll_syms))
{
/* Not enough, realloc it. */
/* +1 in case of mbcset->ncoll_syms is 0. */
@@ -3078,7 +3070,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
if *alloc == 0. */
int32_t *new_coll_syms = re_realloc (mbcset->coll_syms, int32_t,
new_coll_sym_alloc);
- if (BE (new_coll_syms == NULL, 0))
+ if (__glibc_unlikely (new_coll_syms == NULL))
return REG_ESPACE;
mbcset->coll_syms = new_coll_syms;
*coll_sym_alloc = new_coll_sym_alloc;
@@ -3088,7 +3080,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
}
else
{
- if (BE (name_len != 1, 0))
+ if (__glibc_unlikely (name_len != 1))
return REG_ECOLLATE;
else
{
@@ -3132,9 +3124,9 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
mbcset = (re_charset_t *) calloc (sizeof (re_charset_t), 1);
#endif /* RE_ENABLE_I18N */
#ifdef RE_ENABLE_I18N
- if (BE (sbcset == NULL || mbcset == NULL, 0))
+ if (__glibc_unlikely (sbcset == NULL || mbcset == NULL))
#else
- if (BE (sbcset == NULL, 0))
+ if (__glibc_unlikely (sbcset == NULL))
#endif /* RE_ENABLE_I18N */
{
re_free (sbcset);
@@ -3146,7 +3138,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
}
token_len = peek_token_bracket (token, regexp, syntax);
- if (BE (token->type == END_OF_RE, 0))
+ if (__glibc_unlikely (token->type == END_OF_RE))
{
*err = REG_BADPAT;
goto parse_bracket_exp_free_return;
@@ -3161,7 +3153,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
bitset_set (sbcset, '\n');
re_string_skip_bytes (regexp, token_len); /* Skip a token. */
token_len = peek_token_bracket (token, regexp, syntax);
- if (BE (token->type == END_OF_RE, 0))
+ if (__glibc_unlikely (token->type == END_OF_RE))
{
*err = REG_BADPAT;
goto parse_bracket_exp_free_return;
@@ -3186,7 +3178,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
start_elem.type = COLL_SYM;
ret = parse_bracket_element (&start_elem, regexp, token, token_len, dfa,
syntax, first_round);
- if (BE (ret != REG_NOERROR, 0))
+ if (__glibc_unlikely (ret != REG_NOERROR))
{
*err = ret;
goto parse_bracket_exp_free_return;
@@ -3199,7 +3191,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
/* Do not check for ranges if we know they are not allowed. */
if (start_elem.type != CHAR_CLASS && start_elem.type != EQUIV_CLASS)
{
- if (BE (token->type == END_OF_RE, 0))
+ if (__glibc_unlikely (token->type == END_OF_RE))
{
*err = REG_EBRACK;
goto parse_bracket_exp_free_return;
@@ -3208,7 +3200,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
{
re_string_skip_bytes (regexp, token_len); /* Skip '-'. */
token_len2 = peek_token_bracket (&token2, regexp, syntax);
- if (BE (token2.type == END_OF_RE, 0))
+ if (__glibc_unlikely (token2.type == END_OF_RE))
{
*err = REG_EBRACK;
goto parse_bracket_exp_free_return;
@@ -3230,7 +3222,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
end_elem.type = COLL_SYM;
ret = parse_bracket_element (&end_elem, regexp, &token2, token_len2,
dfa, syntax, true);
- if (BE (ret != REG_NOERROR, 0))
+ if (__glibc_unlikely (ret != REG_NOERROR))
{
*err = ret;
goto parse_bracket_exp_free_return;
@@ -3250,7 +3242,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
*err = build_range_exp (syntax, sbcset, &start_elem, &end_elem);
# endif
#endif /* RE_ENABLE_I18N */
- if (BE (*err != REG_NOERROR, 0))
+ if (__glibc_unlikely (*err != REG_NOERROR))
goto parse_bracket_exp_free_return;
}
else
@@ -3263,7 +3255,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
#ifdef RE_ENABLE_I18N
case MB_CHAR:
/* Check whether the array has enough space. */
- if (BE (mbchar_alloc == mbcset->nmbchars, 0))
+ if (__glibc_unlikely (mbchar_alloc == mbcset->nmbchars))
{
wchar_t *new_mbchars;
/* Not enough, realloc it. */
@@ -3272,7 +3264,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
/* Use realloc since array is NULL if *alloc == 0. */
new_mbchars = re_realloc (mbcset->mbchars, wchar_t,
mbchar_alloc);
- if (BE (new_mbchars == NULL, 0))
+ if (__glibc_unlikely (new_mbchars == NULL))
goto parse_bracket_exp_espace;
mbcset->mbchars = new_mbchars;
}
@@ -3285,7 +3277,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
mbcset, &equiv_class_alloc,
#endif /* RE_ENABLE_I18N */
start_elem.opr.name);
- if (BE (*err != REG_NOERROR, 0))
+ if (__glibc_unlikely (*err != REG_NOERROR))
goto parse_bracket_exp_free_return;
break;
case COLL_SYM:
@@ -3294,7 +3286,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
mbcset, &coll_sym_alloc,
#endif /* RE_ENABLE_I18N */
start_elem.opr.name);
- if (BE (*err != REG_NOERROR, 0))
+ if (__glibc_unlikely (*err != REG_NOERROR))
goto parse_bracket_exp_free_return;
break;
case CHAR_CLASS:
@@ -3304,15 +3296,15 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
#endif /* RE_ENABLE_I18N */
(const char *) start_elem.opr.name,
syntax);
- if (BE (*err != REG_NOERROR, 0))
+ if (__glibc_unlikely (*err != REG_NOERROR))
goto parse_bracket_exp_free_return;
break;
default:
- assert (0);
+ DEBUG_ASSERT (false);
break;
}
}
- if (BE (token->type == END_OF_RE, 0))
+ if (__glibc_unlikely (token->type == END_OF_RE))
{
*err = REG_EBRACK;
goto parse_bracket_exp_free_return;
@@ -3343,7 +3335,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
br_token.type = COMPLEX_BRACKET;
br_token.opr.mbcset = mbcset;
mbc_tree = create_token_tree (dfa, NULL, NULL, &br_token);
- if (BE (mbc_tree == NULL, 0))
+ if (__glibc_unlikely (mbc_tree == NULL))
goto parse_bracket_exp_espace;
for (sbc_idx = 0; sbc_idx < BITSET_WORDS; ++sbc_idx)
if (sbcset[sbc_idx])
@@ -3356,12 +3348,12 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
br_token.type = SIMPLE_BRACKET;
br_token.opr.sbcset = sbcset;
work_tree = create_token_tree (dfa, NULL, NULL, &br_token);
- if (BE (work_tree == NULL, 0))
+ if (__glibc_unlikely (work_tree == NULL))
goto parse_bracket_exp_espace;
/* Then join them by ALT node. */
work_tree = create_tree (dfa, work_tree, mbc_tree, OP_ALT);
- if (BE (work_tree == NULL, 0))
+ if (__glibc_unlikely (work_tree == NULL))
goto parse_bracket_exp_espace;
}
else
@@ -3380,7 +3372,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
br_token.type = SIMPLE_BRACKET;
br_token.opr.sbcset = sbcset;
work_tree = create_token_tree (dfa, NULL, NULL, &br_token);
- if (BE (work_tree == NULL, 0))
+ if (__glibc_unlikely (work_tree == NULL))
goto parse_bracket_exp_espace;
}
return work_tree;
@@ -3417,7 +3409,7 @@ parse_bracket_element (bracket_elem_t *elem, re_string_t *regexp,
if (token->type == OP_OPEN_COLL_ELEM || token->type == OP_OPEN_CHAR_CLASS
|| token->type == OP_OPEN_EQUIV_CLASS)
return parse_bracket_symbol (elem, regexp, token);
- if (BE (token->type == OP_CHARSET_RANGE, 0) && !accept_hyphen)
+ if (__glibc_unlikely (token->type == OP_CHARSET_RANGE) && !accept_hyphen)
{
/* A '-' must only appear as anything but a range indicator before
the closing bracket. Everything else is an error. */
@@ -3512,7 +3504,7 @@ build_equiv_class (bitset_t sbcset, const unsigned char *name)
indirect = (const int32_t *) _NL_CURRENT (LC_COLLATE,
_NL_COLLATE_INDIRECTMB);
idx1 = findidx (table, indirect, extra, &cp, -1);
- if (BE (idx1 == 0 || *cp != '\0', 0))
+ if (__glibc_unlikely (idx1 == 0 || *cp != '\0'))
/* This isn't a valid character. */
return REG_ECOLLATE;
@@ -3537,7 +3529,7 @@ build_equiv_class (bitset_t sbcset, const unsigned char *name)
bitset_set (sbcset, ch);
}
/* Check whether the array has enough space. */
- if (BE (*equiv_class_alloc == mbcset->nequiv_classes, 0))
+ if (__glibc_unlikely (*equiv_class_alloc == mbcset->nequiv_classes))
{
/* Not enough, realloc it. */
/* +1 in case of mbcset->nequiv_classes is 0. */
@@ -3546,7 +3538,7 @@ build_equiv_class (bitset_t sbcset, const unsigned char *name)
int32_t *new_equiv_classes = re_realloc (mbcset->equiv_classes,
int32_t,
new_equiv_class_alloc);
- if (BE (new_equiv_classes == NULL, 0))
+ if (__glibc_unlikely (new_equiv_classes == NULL))
return REG_ESPACE;
mbcset->equiv_classes = new_equiv_classes;
*equiv_class_alloc = new_equiv_class_alloc;
@@ -3556,7 +3548,7 @@ build_equiv_class (bitset_t sbcset, const unsigned char *name)
else
#endif /* _LIBC */
{
- if (BE (strlen ((const char *) name) != 1, 0))
+ if (__glibc_unlikely (strlen ((const char *) name) != 1))
return REG_ECOLLATE;
bitset_set (sbcset, *name);
}
@@ -3590,7 +3582,7 @@ build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset,
#ifdef RE_ENABLE_I18N
/* Check the space of the arrays. */
- if (BE (*char_class_alloc == mbcset->nchar_classes, 0))
+ if (__glibc_unlikely (*char_class_alloc == mbcset->nchar_classes))
{
/* Not enough, realloc it. */
/* +1 in case of mbcset->nchar_classes is 0. */
@@ -3598,7 +3590,7 @@ build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset,
/* Use realloc since array is NULL if *alloc == 0. */
wctype_t *new_char_classes = re_realloc (mbcset->char_classes, wctype_t,
new_char_class_alloc);
- if (BE (new_char_classes == NULL, 0))
+ if (__glibc_unlikely (new_char_classes == NULL))
return REG_ESPACE;
mbcset->char_classes = new_char_classes;
*char_class_alloc = new_char_class_alloc;
@@ -3608,7 +3600,7 @@ build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset,
#define BUILD_CHARCLASS_LOOP(ctype_func) \
do { \
- if (BE (trans != NULL, 0)) \
+ if (__glibc_unlikely (trans != NULL)) \
{ \
for (i = 0; i < SBC_MAX; ++i) \
if (ctype_func (i)) \
@@ -3664,18 +3656,17 @@ build_charclass_op (re_dfa_t *dfa, RE_TRANSLATE_TYPE trans,
Idx alloc = 0;
#endif /* not RE_ENABLE_I18N */
reg_errcode_t ret;
- re_token_t br_token;
bin_tree_t *tree;
sbcset = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1);
- if (BE (sbcset == NULL, 0))
+ if (__glibc_unlikely (sbcset == NULL))
{
*err = REG_ESPACE;
return NULL;
}
#ifdef RE_ENABLE_I18N
mbcset = (re_charset_t *) calloc (sizeof (re_charset_t), 1);
- if (BE (mbcset == NULL, 0))
+ if (__glibc_unlikely (mbcset == NULL))
{
re_free (sbcset);
*err = REG_ESPACE;
@@ -3691,7 +3682,7 @@ build_charclass_op (re_dfa_t *dfa, RE_TRANSLATE_TYPE trans,
#endif /* RE_ENABLE_I18N */
class_name, 0);
- if (BE (ret != REG_NOERROR, 0))
+ if (__glibc_unlikely (ret != REG_NOERROR))
{
re_free (sbcset);
#ifdef RE_ENABLE_I18N
@@ -3715,13 +3706,9 @@ build_charclass_op (re_dfa_t *dfa, RE_TRANSLATE_TYPE trans,
#endif
/* Build a tree for simple bracket. */
-#if defined GCC_LINT || defined lint
- memset (&br_token, 0, sizeof br_token);
-#endif
- br_token.type = SIMPLE_BRACKET;
- br_token.opr.sbcset = sbcset;
+ re_token_t br_token = { .type = SIMPLE_BRACKET, .opr.sbcset = sbcset };
tree = create_token_tree (dfa, NULL, NULL, &br_token);
- if (BE (tree == NULL, 0))
+ if (__glibc_unlikely (tree == NULL))
goto build_word_op_espace;
#ifdef RE_ENABLE_I18N
@@ -3733,11 +3720,11 @@ build_charclass_op (re_dfa_t *dfa, RE_TRANSLATE_TYPE trans,
br_token.opr.mbcset = mbcset;
dfa->has_mb_node = 1;
mbc_tree = create_token_tree (dfa, NULL, NULL, &br_token);
- if (BE (mbc_tree == NULL, 0))
+ if (__glibc_unlikely (mbc_tree == NULL))
goto build_word_op_espace;
/* Then join them by ALT node. */
tree = create_tree (dfa, tree, mbc_tree, OP_ALT);
- if (BE (mbc_tree != NULL, 1))
+ if (__glibc_likely (mbc_tree != NULL))
return tree;
}
else
@@ -3773,7 +3760,7 @@ fetch_number (re_string_t *input, re_token_t *token, reg_syntax_t syntax)
{
fetch_token (token, input, syntax);
c = token->opr.c;
- if (BE (token->type == END_OF_RE, 0))
+ if (__glibc_unlikely (token->type == END_OF_RE))
return -2;
if (token->type == OP_CLOSE_DUP_NUM || c == ',')
break;
@@ -3794,9 +3781,9 @@ free_charset (re_charset_t *cset)
# ifdef _LIBC
re_free (cset->coll_syms);
re_free (cset->equiv_classes);
+# endif
re_free (cset->range_starts);
re_free (cset->range_ends);
-# endif
re_free (cset->char_classes);
re_free (cset);
}
@@ -3810,11 +3797,7 @@ static bin_tree_t *
create_tree (re_dfa_t *dfa, bin_tree_t *left, bin_tree_t *right,
re_token_type_t type)
{
- re_token_t t;
-#if defined GCC_LINT || defined lint
- memset (&t, 0, sizeof t);
-#endif
- t.type = type;
+ re_token_t t = { .type = type };
return create_token_tree (dfa, left, right, &t);
}
@@ -3823,7 +3806,7 @@ create_token_tree (re_dfa_t *dfa, bin_tree_t *left, bin_tree_t *right,
const re_token_t *token)
{
bin_tree_t *tree;
- if (BE (dfa->str_tree_storage_idx == BIN_TREE_STORAGE_SIZE, 0))
+ if (__glibc_unlikely (dfa->str_tree_storage_idx == BIN_TREE_STORAGE_SIZE))
{
bin_tree_storage_t *storage = re_malloc (bin_tree_storage_t, 1);
diff --git a/posix/regex.c b/posix/regex.c
index d6591e8670..d4459f7b61 100644
--- a/posix/regex.c
+++ b/posix/regex.c
@@ -1,5 +1,5 @@
/* Extended regular expression matching and search library.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
@@ -18,12 +18,12 @@
<https://www.gnu.org/licenses/>. */
#ifndef _LIBC
-# include <config.h>
+# include <libc-config.h>
-# if (__GNUC__ == 4 && 6 <= __GNUC_MINOR__) || 4 < __GNUC__
+# if __GNUC_PREREQ (4, 6)
# pragma GCC diagnostic ignored "-Wsuggest-attribute=pure"
# endif
-# if (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) || 4 < __GNUC__
+# if __GNUC_PREREQ (4, 3)
# pragma GCC diagnostic ignored "-Wold-style-definition"
# pragma GCC diagnostic ignored "-Wtype-limits"
# endif
diff --git a/posix/regex.h b/posix/regex.h
index 32933bc6d5..840e51508e 100644
--- a/posix/regex.h
+++ b/posix/regex.h
@@ -1,6 +1,6 @@
/* Definitions for data structures and routines for the regular
expression library.
- Copyright (C) 1985, 1989-2018 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1989-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
diff --git a/posix/regex_internal.c b/posix/regex_internal.c
index 7f0083b918..6aa9116084 100644
--- a/posix/regex_internal.c
+++ b/posix/regex_internal.c
@@ -1,5 +1,5 @@
/* Extended regular expression matching and search library.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
@@ -59,7 +59,7 @@ re_string_allocate (re_string_t *pstr, const char *str, Idx len, Idx init_len,
re_string_construct_common (str, len, pstr, trans, icase, dfa);
ret = re_string_realloc_buffers (pstr, init_buf_len);
- if (BE (ret != REG_NOERROR, 0))
+ if (__glibc_unlikely (ret != REG_NOERROR))
return ret;
pstr->word_char = dfa->word_char;
@@ -84,7 +84,7 @@ re_string_construct (re_string_t *pstr, const char *str, Idx len,
if (len > 0)
{
ret = re_string_realloc_buffers (pstr, len + 1);
- if (BE (ret != REG_NOERROR, 0))
+ if (__glibc_unlikely (ret != REG_NOERROR))
return ret;
}
pstr->mbs = pstr->mbs_allocated ? pstr->mbs : (unsigned char *) str;
@@ -97,14 +97,14 @@ re_string_construct (re_string_t *pstr, const char *str, Idx len,
while (1)
{
ret = build_wcs_upper_buffer (pstr);
- if (BE (ret != REG_NOERROR, 0))
+ if (__glibc_unlikely (ret != REG_NOERROR))
return ret;
if (pstr->valid_raw_len >= len)
break;
if (pstr->bufs_len > pstr->valid_len + dfa->mb_cur_max)
break;
ret = re_string_realloc_buffers (pstr, pstr->bufs_len * 2);
- if (BE (ret != REG_NOERROR, 0))
+ if (__glibc_unlikely (ret != REG_NOERROR))
return ret;
}
}
@@ -146,17 +146,18 @@ re_string_realloc_buffers (re_string_t *pstr, Idx new_buf_len)
/* Avoid overflow in realloc. */
const size_t max_object_size = MAX (sizeof (wint_t), sizeof (Idx));
- if (BE (MIN (IDX_MAX, SIZE_MAX / max_object_size) < new_buf_len, 0))
+ if (__glibc_unlikely (MIN (IDX_MAX, SIZE_MAX / max_object_size)
+ < new_buf_len))
return REG_ESPACE;
new_wcs = re_realloc (pstr->wcs, wint_t, new_buf_len);
- if (BE (new_wcs == NULL, 0))
+ if (__glibc_unlikely (new_wcs == NULL))
return REG_ESPACE;
pstr->wcs = new_wcs;
if (pstr->offsets != NULL)
{
Idx *new_offsets = re_realloc (pstr->offsets, Idx, new_buf_len);
- if (BE (new_offsets == NULL, 0))
+ if (__glibc_unlikely (new_offsets == NULL))
return REG_ESPACE;
pstr->offsets = new_offsets;
}
@@ -166,7 +167,7 @@ re_string_realloc_buffers (re_string_t *pstr, Idx new_buf_len)
{
unsigned char *new_mbs = re_realloc (pstr->mbs, unsigned char,
new_buf_len);
- if (BE (new_mbs == NULL, 0))
+ if (__glibc_unlikely (new_mbs == NULL))
return REG_ESPACE;
pstr->mbs = new_mbs;
}
@@ -211,7 +212,7 @@ build_wcs_buffer (re_string_t *pstr)
{
#ifdef _LIBC
unsigned char buf[MB_LEN_MAX];
- assert (MB_LEN_MAX >= pstr->mb_cur_max);
+ DEBUG_ASSERT (MB_LEN_MAX >= pstr->mb_cur_max);
#else
unsigned char buf[64];
#endif
@@ -230,7 +231,7 @@ build_wcs_buffer (re_string_t *pstr)
remain_len = end_idx - byte_idx;
prev_st = pstr->cur_state;
/* Apply the translation if we need. */
- if (BE (pstr->trans != NULL, 0))
+ if (__glibc_unlikely (pstr->trans != NULL))
{
int i, ch;
@@ -244,17 +245,18 @@ build_wcs_buffer (re_string_t *pstr)
else
p = (const char *) pstr->raw_mbs + pstr->raw_mbs_idx + byte_idx;
mbclen = __mbrtowc (&wc, p, remain_len, &pstr->cur_state);
- if (BE (mbclen == (size_t) -1 || mbclen == 0
- || (mbclen == (size_t) -2 && pstr->bufs_len >= pstr->len), 0))
+ if (__glibc_unlikely (mbclen == (size_t) -1 || mbclen == 0
+ || (mbclen == (size_t) -2
+ && pstr->bufs_len >= pstr->len)))
{
/* We treat these cases as a singlebyte character. */
mbclen = 1;
wc = (wchar_t) pstr->raw_mbs[pstr->raw_mbs_idx + byte_idx];
- if (BE (pstr->trans != NULL, 0))
+ if (__glibc_unlikely (pstr->trans != NULL))
wc = pstr->trans[wc];
pstr->cur_state = prev_st;
}
- else if (BE (mbclen == (size_t) -2, 0))
+ else if (__glibc_unlikely (mbclen == (size_t) -2))
{
/* The buffer doesn't have enough space, finish to build. */
pstr->cur_state = prev_st;
@@ -283,7 +285,7 @@ build_wcs_upper_buffer (re_string_t *pstr)
size_t mbclen;
#ifdef _LIBC
char buf[MB_LEN_MAX];
- assert (MB_LEN_MAX >= pstr->mb_cur_max);
+ DEBUG_ASSERT (pstr->mb_cur_max <= MB_LEN_MAX);
#else
char buf[64];
#endif
@@ -317,7 +319,7 @@ build_wcs_upper_buffer (re_string_t *pstr)
mbclen = __mbrtowc (&wc,
((const char *) pstr->raw_mbs + pstr->raw_mbs_idx
+ byte_idx), remain_len, &pstr->cur_state);
- if (BE (mbclen < (size_t) -2, 1))
+ if (__glibc_likely (0 < mbclen && mbclen < (size_t) -2))
{
wchar_t wcu = __towupper (wc);
if (wcu != wc)
@@ -325,7 +327,7 @@ build_wcs_upper_buffer (re_string_t *pstr)
size_t mbcdlen;
mbcdlen = __wcrtomb (buf, wcu, &prev_st);
- if (BE (mbclen == mbcdlen, 1))
+ if (__glibc_likely (mbclen == mbcdlen))
memcpy (pstr->mbs + byte_idx, buf, mbclen);
else
{
@@ -350,7 +352,7 @@ build_wcs_upper_buffer (re_string_t *pstr)
pstr->mbs[byte_idx] = ch;
/* And also cast it to wide char. */
pstr->wcs[byte_idx++] = (wchar_t) ch;
- if (BE (mbclen == (size_t) -1, 0))
+ if (__glibc_unlikely (mbclen == (size_t) -1))
pstr->cur_state = prev_st;
}
else
@@ -372,7 +374,7 @@ build_wcs_upper_buffer (re_string_t *pstr)
offsets_needed:
remain_len = end_idx - byte_idx;
prev_st = pstr->cur_state;
- if (BE (pstr->trans != NULL, 0))
+ if (__glibc_unlikely (pstr->trans != NULL))
{
int i, ch;
@@ -386,7 +388,7 @@ build_wcs_upper_buffer (re_string_t *pstr)
else
p = (const char *) pstr->raw_mbs + pstr->raw_mbs_idx + src_idx;
mbclen = __mbrtowc (&wc, p, remain_len, &pstr->cur_state);
- if (BE (mbclen < (size_t) -2, 1))
+ if (__glibc_likely (0 < mbclen && mbclen < (size_t) -2))
{
wchar_t wcu = __towupper (wc);
if (wcu != wc)
@@ -394,7 +396,7 @@ build_wcs_upper_buffer (re_string_t *pstr)
size_t mbcdlen;
mbcdlen = __wcrtomb ((char *) buf, wcu, &prev_st);
- if (BE (mbclen == mbcdlen, 1))
+ if (__glibc_likely (mbclen == mbcdlen))
memcpy (pstr->mbs + byte_idx, buf, mbclen);
else if (mbcdlen != (size_t) -1)
{
@@ -444,7 +446,7 @@ build_wcs_upper_buffer (re_string_t *pstr)
else
memcpy (pstr->mbs + byte_idx, p, mbclen);
- if (BE (pstr->offsets_needed != 0, 0))
+ if (__glibc_unlikely (pstr->offsets_needed != 0))
{
size_t i;
for (i = 0; i < mbclen; ++i)
@@ -463,17 +465,17 @@ build_wcs_upper_buffer (re_string_t *pstr)
/* It is an invalid character or '\0'. Just use the byte. */
int ch = pstr->raw_mbs[pstr->raw_mbs_idx + src_idx];
- if (BE (pstr->trans != NULL, 0))
+ if (__glibc_unlikely (pstr->trans != NULL))
ch = pstr->trans [ch];
pstr->mbs[byte_idx] = ch;
- if (BE (pstr->offsets_needed != 0, 0))
+ if (__glibc_unlikely (pstr->offsets_needed != 0))
pstr->offsets[byte_idx] = src_idx;
++src_idx;
/* And also cast it to wide char. */
pstr->wcs[byte_idx++] = (wchar_t) ch;
- if (BE (mbclen == (size_t) -1, 0))
+ if (__glibc_unlikely (mbclen == (size_t) -1))
pstr->cur_state = prev_st;
}
else
@@ -508,7 +510,8 @@ re_string_skip_chars (re_string_t *pstr, Idx new_raw_idx, wint_t *last_wc)
prev_st = pstr->cur_state;
mbclen = __mbrtowc (&wc2, (const char *) pstr->raw_mbs + rawbuf_idx,
remain_len, &pstr->cur_state);
- if (BE (mbclen == (size_t) -2 || mbclen == (size_t) -1 || mbclen == 0, 0))
+ if (__glibc_unlikely (mbclen == (size_t) -2 || mbclen == (size_t) -1
+ || mbclen == 0))
{
/* We treat these cases as a single byte character. */
if (mbclen == 0 || remain_len == 0)
@@ -540,7 +543,7 @@ build_upper_buffer (re_string_t *pstr)
for (char_idx = pstr->valid_len; char_idx < end_idx; ++char_idx)
{
int ch = pstr->raw_mbs[pstr->raw_mbs_idx + char_idx];
- if (BE (pstr->trans != NULL, 0))
+ if (__glibc_unlikely (pstr->trans != NULL))
ch = pstr->trans[ch];
pstr->mbs[char_idx] = toupper (ch);
}
@@ -576,7 +579,7 @@ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags)
{
Idx offset;
- if (BE (pstr->raw_mbs_idx <= idx, 0))
+ if (__glibc_unlikely (pstr->raw_mbs_idx <= idx))
offset = idx - pstr->raw_mbs_idx;
else
{
@@ -598,14 +601,14 @@ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags)
offset = idx;
}
- if (BE (offset != 0, 1))
+ if (__glibc_likely (offset != 0))
{
/* Should the already checked characters be kept? */
- if (BE (offset < pstr->valid_raw_len, 1))
+ if (__glibc_likely (offset < pstr->valid_raw_len))
{
/* Yes, move them to the front of the buffer. */
#ifdef RE_ENABLE_I18N
- if (BE (pstr->offsets_needed, 0))
+ if (__glibc_unlikely (pstr->offsets_needed))
{
Idx low = 0, high = pstr->valid_len, mid;
do
@@ -677,14 +680,12 @@ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags)
memmove (pstr->wcs, pstr->wcs + offset,
(pstr->valid_len - offset) * sizeof (wint_t));
#endif /* RE_ENABLE_I18N */
- if (BE (pstr->mbs_allocated, 0))
+ if (__glibc_unlikely (pstr->mbs_allocated))
memmove (pstr->mbs, pstr->mbs + offset,
pstr->valid_len - offset);
pstr->valid_len -= offset;
pstr->valid_raw_len -= offset;
-#if defined DEBUG && DEBUG
- assert (pstr->valid_len > 0);
-#endif
+ DEBUG_ASSERT (pstr->valid_len > 0);
}
}
else
@@ -693,7 +694,7 @@ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags)
/* No, skip all characters until IDX. */
Idx prev_valid_len = pstr->valid_len;
- if (BE (pstr->offsets_needed, 0))
+ if (__glibc_unlikely (pstr->offsets_needed))
{
pstr->len = pstr->raw_len - idx + offset;
pstr->stop = pstr->raw_stop - idx + offset;
@@ -721,7 +722,7 @@ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags)
#ifdef _LIBC
/* We know the wchar_t encoding is UCS4, so for the simple
case, ASCII characters, skip the conversion step. */
- if (isascii (*p) && BE (pstr->trans == NULL, 1))
+ if (isascii (*p) && __glibc_likely (pstr->trans == NULL))
{
memset (&pstr->cur_state, '\0', sizeof (mbstate_t));
/* pstr->valid_len = 0; */
@@ -739,7 +740,7 @@ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags)
size_t mbclen;
const unsigned char *pp = p;
- if (BE (pstr->trans != NULL, 0))
+ if (__glibc_unlikely (pstr->trans != NULL))
{
int i = mlen < 6 ? mlen : 6;
while (--i >= 0)
@@ -769,13 +770,13 @@ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags)
pstr->tip_context
= re_string_context_at (pstr, prev_valid_len - 1, eflags);
else
- pstr->tip_context = ((BE (pstr->word_ops_used != 0, 0)
+ pstr->tip_context = ((__glibc_unlikely (pstr->word_ops_used != 0)
&& IS_WIDE_WORD_CHAR (wc))
? CONTEXT_WORD
: ((IS_WIDE_NEWLINE (wc)
&& pstr->newline_anchor)
? CONTEXT_NEWLINE : 0));
- if (BE (pstr->valid_len, 0))
+ if (__glibc_unlikely (pstr->valid_len))
{
for (wcs_idx = 0; wcs_idx < pstr->valid_len; ++wcs_idx)
pstr->wcs[wcs_idx] = WEOF;
@@ -797,7 +798,7 @@ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags)
? CONTEXT_NEWLINE : 0));
}
}
- if (!BE (pstr->mbs_allocated, 0))
+ if (!__glibc_unlikely (pstr->mbs_allocated))
pstr->mbs += offset;
}
pstr->raw_mbs_idx = idx;
@@ -811,7 +812,7 @@ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags)
if (pstr->icase)
{
reg_errcode_t ret = build_wcs_upper_buffer (pstr);
- if (BE (ret != REG_NOERROR, 0))
+ if (__glibc_unlikely (ret != REG_NOERROR))
return ret;
}
else
@@ -819,7 +820,7 @@ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags)
}
else
#endif /* RE_ENABLE_I18N */
- if (BE (pstr->mbs_allocated, 0))
+ if (__glibc_unlikely (pstr->mbs_allocated))
{
if (pstr->icase)
build_upper_buffer (pstr);
@@ -841,7 +842,7 @@ re_string_peek_byte_case (const re_string_t *pstr, Idx idx)
Idx off;
/* Handle the common (easiest) cases first. */
- if (BE (!pstr->mbs_allocated, 1))
+ if (__glibc_likely (!pstr->mbs_allocated))
return re_string_peek_byte (pstr, idx);
#ifdef RE_ENABLE_I18N
@@ -873,7 +874,7 @@ re_string_peek_byte_case (const re_string_t *pstr, Idx idx)
static unsigned char
re_string_fetch_byte_case (re_string_t *pstr)
{
- if (BE (!pstr->mbs_allocated, 1))
+ if (__glibc_likely (!pstr->mbs_allocated))
return re_string_fetch_byte (pstr);
#ifdef RE_ENABLE_I18N
@@ -924,11 +925,11 @@ static unsigned int
re_string_context_at (const re_string_t *input, Idx idx, int eflags)
{
int c;
- if (BE (idx < 0, 0))
+ if (__glibc_unlikely (idx < 0))
/* In this case, we use the value stored in input->tip_context,
since we can't know the character in input->mbs[-1] here. */
return input->tip_context;
- if (BE (idx == input->len, 0))
+ if (__glibc_unlikely (idx == input->len))
return ((eflags & REG_NOTEOL) ? CONTEXT_ENDBUF
: CONTEXT_NEWLINE | CONTEXT_ENDBUF);
#ifdef RE_ENABLE_I18N
@@ -938,16 +939,14 @@ re_string_context_at (const re_string_t *input, Idx idx, int eflags)
Idx wc_idx = idx;
while(input->wcs[wc_idx] == WEOF)
{
-#if defined DEBUG && DEBUG
- /* It must not happen. */
- assert (wc_idx >= 0);
-#endif
+ DEBUG_ASSERT (wc_idx >= 0);
--wc_idx;
if (wc_idx < 0)
return input->tip_context;
}
wc = input->wcs[wc_idx];
- if (BE (input->word_ops_used != 0, 0) && IS_WIDE_WORD_CHAR (wc))
+ if (__glibc_unlikely (input->word_ops_used != 0)
+ && IS_WIDE_WORD_CHAR (wc))
return CONTEXT_WORD;
return (IS_WIDE_NEWLINE (wc) && input->newline_anchor
? CONTEXT_NEWLINE : 0);
@@ -971,7 +970,8 @@ re_node_set_alloc (re_node_set *set, Idx size)
set->alloc = size;
set->nelem = 0;
set->elems = re_malloc (Idx, size);
- if (BE (set->elems == NULL, 0) && (MALLOC_0_IS_NONNULL || size != 0))
+ if (__glibc_unlikely (set->elems == NULL)
+ && (MALLOC_0_IS_NONNULL || size != 0))
return REG_ESPACE;
return REG_NOERROR;
}
@@ -983,7 +983,7 @@ re_node_set_init_1 (re_node_set *set, Idx elem)
set->alloc = 1;
set->nelem = 1;
set->elems = re_malloc (Idx, 1);
- if (BE (set->elems == NULL, 0))
+ if (__glibc_unlikely (set->elems == NULL))
{
set->alloc = set->nelem = 0;
return REG_ESPACE;
@@ -998,7 +998,7 @@ re_node_set_init_2 (re_node_set *set, Idx elem1, Idx elem2)
{
set->alloc = 2;
set->elems = re_malloc (Idx, 2);
- if (BE (set->elems == NULL, 0))
+ if (__glibc_unlikely (set->elems == NULL))
return REG_ESPACE;
if (elem1 == elem2)
{
@@ -1031,7 +1031,7 @@ re_node_set_init_copy (re_node_set *dest, const re_node_set *src)
{
dest->alloc = dest->nelem;
dest->elems = re_malloc (Idx, dest->alloc);
- if (BE (dest->elems == NULL, 0))
+ if (__glibc_unlikely (dest->elems == NULL))
{
dest->alloc = dest->nelem = 0;
return REG_ESPACE;
@@ -1062,7 +1062,7 @@ re_node_set_add_intersect (re_node_set *dest, const re_node_set *src1,
{
Idx new_alloc = src1->nelem + src2->nelem + dest->alloc;
Idx *new_elems = re_realloc (dest->elems, Idx, new_alloc);
- if (BE (new_elems == NULL, 0))
+ if (__glibc_unlikely (new_elems == NULL))
return REG_ESPACE;
dest->elems = new_elems;
dest->alloc = new_alloc;
@@ -1148,7 +1148,7 @@ re_node_set_init_union (re_node_set *dest, const re_node_set *src1,
{
dest->alloc = src1->nelem + src2->nelem;
dest->elems = re_malloc (Idx, dest->alloc);
- if (BE (dest->elems == NULL, 0))
+ if (__glibc_unlikely (dest->elems == NULL))
return REG_ESPACE;
}
else
@@ -1202,13 +1202,13 @@ re_node_set_merge (re_node_set *dest, const re_node_set *src)
{
Idx new_alloc = 2 * (src->nelem + dest->alloc);
Idx *new_buffer = re_realloc (dest->elems, Idx, new_alloc);
- if (BE (new_buffer == NULL, 0))
+ if (__glibc_unlikely (new_buffer == NULL))
return REG_ESPACE;
dest->elems = new_buffer;
dest->alloc = new_alloc;
}
- if (BE (dest->nelem == 0, 0))
+ if (__glibc_unlikely (dest->nelem == 0))
{
dest->nelem = src->nelem;
memcpy (dest->elems, src->elems, src->nelem * sizeof (Idx));
@@ -1281,9 +1281,9 @@ re_node_set_insert (re_node_set *set, Idx elem)
Idx idx;
/* In case the set is empty. */
if (set->alloc == 0)
- return BE (re_node_set_init_1 (set, elem) == REG_NOERROR, 1);
+ return __glibc_likely (re_node_set_init_1 (set, elem) == REG_NOERROR);
- if (BE (set->nelem, 0) == 0)
+ if (__glibc_unlikely (set->nelem) == 0)
{
/* We already guaranteed above that set->alloc != 0. */
set->elems[0] = elem;
@@ -1297,7 +1297,7 @@ re_node_set_insert (re_node_set *set, Idx elem)
Idx *new_elems;
set->alloc = set->alloc * 2;
new_elems = re_realloc (set->elems, Idx, set->alloc);
- if (BE (new_elems == NULL, 0))
+ if (__glibc_unlikely (new_elems == NULL))
return false;
set->elems = new_elems;
}
@@ -1306,7 +1306,6 @@ re_node_set_insert (re_node_set *set, Idx elem)
first element separately to skip a check in the inner loop. */
if (elem < set->elems[0])
{
- idx = 0;
for (idx = set->nelem; idx > 0; idx--)
set->elems[idx] = set->elems[idx - 1];
}
@@ -1336,7 +1335,7 @@ re_node_set_insert_last (re_node_set *set, Idx elem)
Idx *new_elems;
set->alloc = (set->alloc + 1) * 2;
new_elems = re_realloc (set->elems, Idx, set->alloc);
- if (BE (new_elems == NULL, 0))
+ if (__glibc_unlikely (new_elems == NULL))
return false;
set->elems = new_elems;
}
@@ -1403,7 +1402,7 @@ re_node_set_remove_at (re_node_set *set, Idx idx)
static Idx
re_dfa_add_node (re_dfa_t *dfa, re_token_t token)
{
- if (BE (dfa->nodes_len >= dfa->nodes_alloc, 0))
+ if (__glibc_unlikely (dfa->nodes_len >= dfa->nodes_alloc))
{
size_t new_nodes_alloc = dfa->nodes_alloc * 2;
Idx *new_nexts, *new_indices;
@@ -1414,19 +1413,20 @@ re_dfa_add_node (re_dfa_t *dfa, re_token_t token)
const size_t max_object_size = MAX (sizeof (re_token_t),
MAX (sizeof (re_node_set),
sizeof (Idx)));
- if (BE (MIN (IDX_MAX, SIZE_MAX / max_object_size) < new_nodes_alloc, 0))
+ if (__glibc_unlikely (MIN (IDX_MAX, SIZE_MAX / max_object_size)
+ < new_nodes_alloc))
return -1;
new_nodes = re_realloc (dfa->nodes, re_token_t, new_nodes_alloc);
- if (BE (new_nodes == NULL, 0))
+ if (__glibc_unlikely (new_nodes == NULL))
return -1;
dfa->nodes = new_nodes;
new_nexts = re_realloc (dfa->nexts, Idx, new_nodes_alloc);
new_indices = re_realloc (dfa->org_indices, Idx, new_nodes_alloc);
new_edests = re_realloc (dfa->edests, re_node_set, new_nodes_alloc);
new_eclosures = re_realloc (dfa->eclosures, re_node_set, new_nodes_alloc);
- if (BE (new_nexts == NULL || new_indices == NULL
- || new_edests == NULL || new_eclosures == NULL, 0))
+ if (__glibc_unlikely (new_nexts == NULL || new_indices == NULL
+ || new_edests == NULL || new_eclosures == NULL))
{
re_free (new_nexts);
re_free (new_indices);
@@ -1485,7 +1485,7 @@ re_acquire_state (reg_errcode_t *err, const re_dfa_t *dfa,
/* Suppress bogus uninitialized-variable warnings. */
*err = REG_NOERROR;
#endif
- if (BE (nodes->nelem == 0, 0))
+ if (__glibc_unlikely (nodes->nelem == 0))
{
*err = REG_NOERROR;
return NULL;
@@ -1504,7 +1504,7 @@ re_acquire_state (reg_errcode_t *err, const re_dfa_t *dfa,
/* There are no appropriate state in the dfa, create the new one. */
new_state = create_ci_newstate (dfa, nodes, hash);
- if (BE (new_state == NULL, 0))
+ if (__glibc_unlikely (new_state == NULL))
*err = REG_ESPACE;
return new_state;
@@ -1551,7 +1551,7 @@ re_acquire_state_context (reg_errcode_t *err, const re_dfa_t *dfa,
}
/* There are no appropriate state in 'dfa', create the new one. */
new_state = create_cd_newstate (dfa, nodes, context, hash);
- if (BE (new_state == NULL, 0))
+ if (__glibc_unlikely (new_state == NULL))
*err = REG_ESPACE;
return new_state;
@@ -1572,7 +1572,7 @@ register_state (const re_dfa_t *dfa, re_dfastate_t *newstate,
newstate->hash = hash;
err = re_node_set_alloc (&newstate->non_eps_nodes, newstate->nodes.nelem);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return REG_ESPACE;
for (i = 0; i < newstate->nodes.nelem; i++)
{
@@ -1583,12 +1583,12 @@ register_state (const re_dfa_t *dfa, re_dfastate_t *newstate,
}
spot = dfa->state_table + (hash & dfa->state_hash_mask);
- if (BE (spot->alloc <= spot->num, 0))
+ if (__glibc_unlikely (spot->alloc <= spot->num))
{
Idx new_alloc = 2 * spot->num + 2;
re_dfastate_t **new_array = re_realloc (spot->array, re_dfastate_t *,
new_alloc);
- if (BE (new_array == NULL, 0))
+ if (__glibc_unlikely (new_array == NULL))
return REG_ESPACE;
spot->array = new_array;
spot->alloc = new_alloc;
@@ -1626,10 +1626,10 @@ create_ci_newstate (const re_dfa_t *dfa, const re_node_set *nodes,
re_dfastate_t *newstate;
newstate = (re_dfastate_t *) calloc (sizeof (re_dfastate_t), 1);
- if (BE (newstate == NULL, 0))
+ if (__glibc_unlikely (newstate == NULL))
return NULL;
err = re_node_set_init_copy (&newstate->nodes, nodes);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
{
re_free (newstate);
return NULL;
@@ -1655,7 +1655,7 @@ create_ci_newstate (const re_dfa_t *dfa, const re_node_set *nodes,
newstate->has_constraint = 1;
}
err = register_state (dfa, newstate, hash);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
{
free_state (newstate);
newstate = NULL;
@@ -1676,10 +1676,10 @@ create_cd_newstate (const re_dfa_t *dfa, const re_node_set *nodes,
re_dfastate_t *newstate;
newstate = (re_dfastate_t *) calloc (sizeof (re_dfastate_t), 1);
- if (BE (newstate == NULL, 0))
+ if (__glibc_unlikely (newstate == NULL))
return NULL;
err = re_node_set_init_copy (&newstate->nodes, nodes);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
{
re_free (newstate);
return NULL;
@@ -1710,15 +1710,19 @@ create_cd_newstate (const re_dfa_t *dfa, const re_node_set *nodes,
{
if (newstate->entrance_nodes == &newstate->nodes)
{
- newstate->entrance_nodes = re_malloc (re_node_set, 1);
- if (BE (newstate->entrance_nodes == NULL, 0))
+ re_node_set *entrance_nodes = re_malloc (re_node_set, 1);
+ if (__glibc_unlikely (entrance_nodes == NULL))
{
free_state (newstate);
return NULL;
}
+ newstate->entrance_nodes = entrance_nodes;
if (re_node_set_init_copy (newstate->entrance_nodes, nodes)
!= REG_NOERROR)
- return NULL;
+ {
+ free_state (newstate);
+ return NULL;
+ }
nctx_nodes = 0;
newstate->has_constraint = 1;
}
@@ -1731,7 +1735,7 @@ create_cd_newstate (const re_dfa_t *dfa, const re_node_set *nodes,
}
}
err = register_state (dfa, newstate, hash);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
{
free_state (newstate);
newstate = NULL;
diff --git a/posix/regex_internal.h b/posix/regex_internal.h
index 3b836ed206..06957f0fc8 100644
--- a/posix/regex_internal.h
+++ b/posix/regex_internal.h
@@ -1,5 +1,5 @@
/* Extended regular expression matching and search library.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
@@ -20,7 +20,6 @@
#ifndef _REGEX_INTERNAL_H
#define _REGEX_INTERNAL_H 1
-#include <assert.h>
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
@@ -33,22 +32,14 @@
#include <stdbool.h>
#include <stdint.h>
-/* Properties of integers. Although Gnulib has intprops.h, glibc does
- without for now. */
-#ifndef _LIBC
-# include "intprops.h"
+#include <intprops.h>
+#include <verify.h>
+
+#if defined DEBUG && DEBUG != 0
+# include <assert.h>
+# define DEBUG_ASSERT(x) assert (x)
#else
-/* True if the real type T is signed. */
-# define TYPE_SIGNED(t) (! ((t) 0 < (t) -1))
-
-/* True if adding the nonnegative Idx values A and B would overflow.
- If false, set *R to A + B. A, B, and R may be evaluated more than
- once, or zero times. Although this is not a full implementation of
- Gnulib INT_ADD_WRAPV, it is good enough for glibc regex code.
- FIXME: This implementation is a fragile stopgap, and this file would
- be simpler and more robust if intprops.h were migrated into glibc. */
-# define INT_ADD_WRAPV(a, b, r) \
- (IDX_MAX - (a) < (b) ? true : (*(r) = (a) + (b), false))
+# define DEBUG_ASSERT(x) assume (x)
#endif
#ifdef _LIBC
@@ -60,22 +51,7 @@
# define lock_unlock(lock) __libc_lock_unlock (lock)
#elif defined GNULIB_LOCK && !defined USE_UNLOCKED_IO
# include "glthread/lock.h"
- /* Use gl_lock_define if empty macro arguments are known to work.
- Otherwise, fall back on less-portable substitutes. */
-# if ((defined __GNUC__ && !defined __STRICT_ANSI__) \
- || (defined __STDC_VERSION__ && 199901L <= __STDC_VERSION__))
-# define lock_define(name) gl_lock_define (, name)
-# elif USE_POSIX_THREADS
-# define lock_define(name) pthread_mutex_t name;
-# elif USE_PTH_THREADS
-# define lock_define(name) pth_mutex_t name;
-# elif USE_SOLARIS_THREADS
-# define lock_define(name) mutex_t name;
-# elif USE_WINDOWS_THREADS
-# define lock_define(name) gl_lock_t name;
-# else
-# define lock_define(name)
-# endif
+# define lock_define(name) gl_lock_define (, name)
# define lock_init(lock) glthread_lock_init (&(lock))
# define lock_fini(lock) glthread_lock_destroy (&(lock))
# define lock_lock(lock) glthread_lock_lock (&(lock))
@@ -132,8 +108,6 @@
# define RE_ENABLE_I18N
#endif
-#define BE(expr, val) __builtin_expect (expr, val)
-
/* Number of ASCII characters. */
#define ASCII_CHARS 0x80
@@ -149,7 +123,10 @@
/* Rename to standard API for using out of glibc. */
#ifndef _LIBC
# undef __wctype
+# undef __iswalnum
# undef __iswctype
+# undef __towlower
+# undef __towupper
# define __wctype wctype
# define __iswalnum iswalnum
# define __iswctype iswctype
@@ -159,13 +136,8 @@
# define __mbrtowc mbrtowc
# define __wcrtomb wcrtomb
# define __regfree regfree
-# define attribute_hidden
#endif /* not _LIBC */
-#if __GNUC__ < 3 + (__GNUC_MINOR__ < 1)
-# define __attribute__(arg)
-#endif
-
#ifndef SSIZE_MAX
# define SSIZE_MAX ((ssize_t) (SIZE_MAX / 2))
#endif
@@ -638,11 +610,7 @@ typedef struct
{
/* The string object corresponding to the input string. */
re_string_t input;
-#if defined _LIBC || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L)
const re_dfa_t *const dfa;
-#else
- const re_dfa_t *dfa;
-#endif
/* EFLAGS of the argument of regexec. */
int eflags;
/* Where the matching ends. */
@@ -883,23 +851,6 @@ re_string_elem_size_at (const re_string_t *pstr, Idx idx)
}
#endif /* RE_ENABLE_I18N */
-#ifndef __GNUC_PREREQ
-# if defined __GNUC__ && defined __GNUC_MINOR__
-# define __GNUC_PREREQ(maj, min) \
- ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
-# else
-# define __GNUC_PREREQ(maj, min) 0
-# endif
-#endif
-
-#if __GNUC_PREREQ (3,4)
-# undef __attribute_warn_unused_result__
-# define __attribute_warn_unused_result__ \
- __attribute__ ((__warn_unused_result__))
-#else
-# define __attribute_warn_unused_result__ /* empty */
-#endif
-
#ifndef FALLTHROUGH
# if __GNUC__ < 7
# define FALLTHROUGH ((void) 0)
diff --git a/posix/regexec.c b/posix/regexec.c
index 73644c2341..38b6d6719a 100644
--- a/posix/regexec.c
+++ b/posix/regexec.c
@@ -1,5 +1,5 @@
/* Extended regular expression matching and search library.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
@@ -189,7 +189,7 @@ static reg_errcode_t extend_buffers (re_match_context_t *mctx, int min_len);
We return 0 if we find a match and REG_NOMATCH if not. */
int
-regexec (const regex_t *_Restrict_ preg, const char *_Restrict_ string,
+regexec (const regex_t *__restrict preg, const char *__restrict string,
size_t nmatch, regmatch_t pmatch[], int eflags)
{
reg_errcode_t err;
@@ -232,8 +232,8 @@ __typeof__ (__regexec) __compat_regexec;
int
attribute_compat_text_section
-__compat_regexec (const regex_t *_Restrict_ preg,
- const char *_Restrict_ string, size_t nmatch,
+__compat_regexec (const regex_t *__restrict preg,
+ const char *__restrict string, size_t nmatch,
regmatch_t pmatch[], int eflags)
{
return regexec (preg, string, nmatch, pmatch,
@@ -328,9 +328,8 @@ re_search_2_stub (struct re_pattern_buffer *bufp, const char *string1,
Idx len;
char *s = NULL;
- if (BE ((length1 < 0 || length2 < 0 || stop < 0
- || INT_ADD_WRAPV (length1, length2, &len)),
- 0))
+ if (__glibc_unlikely ((length1 < 0 || length2 < 0 || stop < 0
+ || INT_ADD_WRAPV (length1, length2, &len))))
return -2;
/* Concatenate the strings. */
@@ -339,7 +338,7 @@ re_search_2_stub (struct re_pattern_buffer *bufp, const char *string1,
{
s = re_malloc (char, len);
- if (BE (s == NULL, 0))
+ if (__glibc_unlikely (s == NULL))
return -2;
#ifdef _LIBC
memcpy (__mempcpy (s, string1, length1), string2, length2);
@@ -379,11 +378,13 @@ re_search_stub (struct re_pattern_buffer *bufp, const char *string, Idx length,
Idx last_start = start + range;
/* Check for out-of-range. */
- if (BE (start < 0 || start > length, 0))
+ if (__glibc_unlikely (start < 0 || start > length))
return -1;
- if (BE (length < last_start || (0 <= range && last_start < start), 0))
+ if (__glibc_unlikely (length < last_start
+ || (0 <= range && last_start < start)))
last_start = length;
- else if (BE (last_start < 0 || (range < 0 && start <= last_start), 0))
+ else if (__glibc_unlikely (last_start < 0
+ || (range < 0 && start <= last_start)))
last_start = 0;
lock_lock (dfa->lock);
@@ -395,17 +396,17 @@ re_search_stub (struct re_pattern_buffer *bufp, const char *string, Idx length,
if (start < last_start && bufp->fastmap != NULL && !bufp->fastmap_accurate)
re_compile_fastmap (bufp);
- if (BE (bufp->no_sub, 0))
+ if (__glibc_unlikely (bufp->no_sub))
regs = NULL;
/* We need at least 1 register. */
if (regs == NULL)
nregs = 1;
- else if (BE (bufp->regs_allocated == REGS_FIXED
- && regs->num_regs <= bufp->re_nsub, 0))
+ else if (__glibc_unlikely (bufp->regs_allocated == REGS_FIXED
+ && regs->num_regs <= bufp->re_nsub))
{
nregs = regs->num_regs;
- if (BE (nregs < 1, 0))
+ if (__glibc_unlikely (nregs < 1))
{
/* Nothing can be copied to regs. */
regs = NULL;
@@ -415,7 +416,7 @@ re_search_stub (struct re_pattern_buffer *bufp, const char *string, Idx length,
else
nregs = bufp->re_nsub + 1;
pmatch = re_malloc (regmatch_t, nregs);
- if (BE (pmatch == NULL, 0))
+ if (__glibc_unlikely (pmatch == NULL))
{
rval = -2;
goto out;
@@ -434,15 +435,15 @@ re_search_stub (struct re_pattern_buffer *bufp, const char *string, Idx length,
/* If caller wants register contents data back, copy them. */
bufp->regs_allocated = re_copy_regs (regs, pmatch, nregs,
bufp->regs_allocated);
- if (BE (bufp->regs_allocated == REGS_UNALLOCATED, 0))
+ if (__glibc_unlikely (bufp->regs_allocated == REGS_UNALLOCATED))
rval = -2;
}
- if (BE (rval == 0, 1))
+ if (__glibc_likely (rval == 0))
{
if (ret_len)
{
- assert (pmatch[0].rm_so == start);
+ DEBUG_ASSERT (pmatch[0].rm_so == start);
rval = pmatch[0].rm_eo - start;
}
else
@@ -468,10 +469,10 @@ re_copy_regs (struct re_registers *regs, regmatch_t *pmatch, Idx nregs,
if (regs_allocated == REGS_UNALLOCATED)
{ /* No. So allocate them with malloc. */
regs->start = re_malloc (regoff_t, need_regs);
- if (BE (regs->start == NULL, 0))
+ if (__glibc_unlikely (regs->start == NULL))
return REGS_UNALLOCATED;
regs->end = re_malloc (regoff_t, need_regs);
- if (BE (regs->end == NULL, 0))
+ if (__glibc_unlikely (regs->end == NULL))
{
re_free (regs->start);
return REGS_UNALLOCATED;
@@ -482,14 +483,14 @@ re_copy_regs (struct re_registers *regs, regmatch_t *pmatch, Idx nregs,
{ /* Yes. If we need more elements than were already
allocated, reallocate them. If we need fewer, just
leave it alone. */
- if (BE (need_regs > regs->num_regs, 0))
+ if (__glibc_unlikely (need_regs > regs->num_regs))
{
regoff_t *new_start = re_realloc (regs->start, regoff_t, need_regs);
regoff_t *new_end;
- if (BE (new_start == NULL, 0))
+ if (__glibc_unlikely (new_start == NULL))
return REGS_UNALLOCATED;
new_end = re_realloc (regs->end, regoff_t, need_regs);
- if (BE (new_end == NULL, 0))
+ if (__glibc_unlikely (new_end == NULL))
{
re_free (new_start);
return REGS_UNALLOCATED;
@@ -501,9 +502,9 @@ re_copy_regs (struct re_registers *regs, regmatch_t *pmatch, Idx nregs,
}
else
{
- assert (regs_allocated == REGS_FIXED);
+ DEBUG_ASSERT (regs_allocated == REGS_FIXED);
/* This function may not be called with REGS_FIXED and nregs too big. */
- assert (regs->num_regs >= nregs);
+ DEBUG_ASSERT (nregs <= regs->num_regs);
rval = REGS_FIXED;
}
@@ -596,34 +597,24 @@ re_search_internal (const regex_t *preg, const char *string, Idx length,
Idx extra_nmatch;
bool sb;
int ch;
-#if defined _LIBC || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L)
re_match_context_t mctx = { .dfa = dfa };
-#else
- re_match_context_t mctx;
-#endif
char *fastmap = ((preg->fastmap != NULL && preg->fastmap_accurate
&& start != last_start && !preg->can_be_null)
? preg->fastmap : NULL);
RE_TRANSLATE_TYPE t = preg->translate;
-#if !(defined _LIBC || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L))
- memset (&mctx, '\0', sizeof (re_match_context_t));
- mctx.dfa = dfa;
-#endif
-
extra_nmatch = (nmatch > preg->re_nsub) ? nmatch - (preg->re_nsub + 1) : 0;
nmatch -= extra_nmatch;
/* Check if the DFA haven't been compiled. */
- if (BE (preg->used == 0 || dfa->init_state == NULL
- || dfa->init_state_word == NULL || dfa->init_state_nl == NULL
- || dfa->init_state_begbuf == NULL, 0))
+ if (__glibc_unlikely (preg->used == 0 || dfa->init_state == NULL
+ || dfa->init_state_word == NULL
+ || dfa->init_state_nl == NULL
+ || dfa->init_state_begbuf == NULL))
return REG_NOMATCH;
-#ifdef DEBUG
/* We assume front-end functions already check them. */
- assert (0 <= last_start && last_start <= length);
-#endif
+ DEBUG_ASSERT (0 <= last_start && last_start <= length);
/* If initial states with non-begbuf contexts have no elements,
the regex must be anchored. If preg->newline_anchor is set,
@@ -644,14 +635,14 @@ re_search_internal (const regex_t *preg, const char *string, Idx length,
err = re_string_allocate (&mctx.input, string, length, dfa->nodes_len + 1,
preg->translate, (preg->syntax & RE_ICASE) != 0,
dfa);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
goto free_return;
mctx.input.stop = stop;
mctx.input.raw_stop = stop;
mctx.input.newline_anchor = preg->newline_anchor;
err = match_ctx_init (&mctx, eflags, dfa->nbackref * 2);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
goto free_return;
/* We will log all the DFA states through which the dfa pass,
@@ -661,22 +652,20 @@ re_search_internal (const regex_t *preg, const char *string, Idx length,
if (nmatch > 1 || dfa->has_mb_node)
{
/* Avoid overflow. */
- if (BE ((MIN (IDX_MAX, SIZE_MAX / sizeof (re_dfastate_t *))
- <= mctx.input.bufs_len), 0))
+ if (__glibc_unlikely ((MIN (IDX_MAX, SIZE_MAX / sizeof (re_dfastate_t *))
+ <= mctx.input.bufs_len)))
{
err = REG_ESPACE;
goto free_return;
}
mctx.state_log = re_malloc (re_dfastate_t *, mctx.input.bufs_len + 1);
- if (BE (mctx.state_log == NULL, 0))
+ if (__glibc_unlikely (mctx.state_log == NULL))
{
err = REG_ESPACE;
goto free_return;
}
}
- else
- mctx.state_log = NULL;
match_first = start;
mctx.input.tip_context = (eflags & REG_NOTBOL) ? CONTEXT_BEGBUF
@@ -713,19 +702,19 @@ re_search_internal (const regex_t *preg, const char *string, Idx length,
case 7:
/* Fastmap with single-byte translation, match forward. */
- while (BE (match_first < right_lim, 1)
+ while (__glibc_likely (match_first < right_lim)
&& !fastmap[t[(unsigned char) string[match_first]]])
++match_first;
goto forward_match_found_start_or_reached_end;
case 6:
/* Fastmap without translation, match forward. */
- while (BE (match_first < right_lim, 1)
+ while (__glibc_likely (match_first < right_lim)
&& !fastmap[(unsigned char) string[match_first]])
++match_first;
forward_match_found_start_or_reached_end:
- if (BE (match_first == right_lim, 0))
+ if (__glibc_unlikely (match_first == right_lim))
{
ch = match_first >= length
? 0 : (unsigned char) string[match_first];
@@ -758,11 +747,12 @@ re_search_internal (const regex_t *preg, const char *string, Idx length,
/* If MATCH_FIRST is out of the valid range, reconstruct the
buffers. */
__re_size_t offset = match_first - mctx.input.raw_mbs_idx;
- if (BE (offset >= (__re_size_t) mctx.input.valid_raw_len, 0))
+ if (__glibc_unlikely (offset
+ >= (__re_size_t) mctx.input.valid_raw_len))
{
err = re_string_reconstruct (&mctx.input, match_first,
eflags);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
goto free_return;
offset = match_first - mctx.input.raw_mbs_idx;
@@ -786,7 +776,7 @@ re_search_internal (const regex_t *preg, const char *string, Idx length,
/* Reconstruct the buffers so that the matcher can assume that
the matching starts from the beginning of the buffer. */
err = re_string_reconstruct (&mctx.input, match_first, eflags);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
goto free_return;
#ifdef RE_ENABLE_I18N
@@ -803,7 +793,7 @@ re_search_internal (const regex_t *preg, const char *string, Idx length,
start <= last_start ? &match_first : NULL);
if (match_last != -1)
{
- if (BE (match_last == -2, 0))
+ if (__glibc_unlikely (match_last == -2))
{
err = REG_ESPACE;
goto free_return;
@@ -823,7 +813,7 @@ re_search_internal (const regex_t *preg, const char *string, Idx length,
err = prune_impossible_nodes (&mctx);
if (err == REG_NOERROR)
break;
- if (BE (err != REG_NOMATCH, 0))
+ if (__glibc_unlikely (err != REG_NOMATCH))
goto free_return;
match_last = -1;
}
@@ -835,10 +825,8 @@ re_search_internal (const regex_t *preg, const char *string, Idx length,
match_ctx_clean (&mctx);
}
-#ifdef DEBUG
- assert (match_last != -1);
- assert (err == REG_NOERROR);
-#endif
+ DEBUG_ASSERT (match_last != -1);
+ DEBUG_ASSERT (err == REG_NOERROR);
/* Set pmatch[] if we need. */
if (nmatch > 0)
@@ -860,7 +848,7 @@ re_search_internal (const regex_t *preg, const char *string, Idx length,
{
err = set_regs (preg, &mctx, nmatch, pmatch,
dfa->has_plural_match && dfa->nbackref > 0);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
goto free_return;
}
@@ -871,7 +859,7 @@ re_search_internal (const regex_t *preg, const char *string, Idx length,
if (pmatch[reg_idx].rm_so != -1)
{
#ifdef RE_ENABLE_I18N
- if (BE (mctx.input.offsets_needed != 0, 0))
+ if (__glibc_unlikely (mctx.input.offsets_needed != 0))
{
pmatch[reg_idx].rm_so =
(pmatch[reg_idx].rm_so == mctx.input.valid_len
@@ -883,7 +871,7 @@ re_search_internal (const regex_t *preg, const char *string, Idx length,
: mctx.input.offsets[pmatch[reg_idx].rm_eo]);
}
#else
- assert (mctx.input.offsets_needed == 0);
+ DEBUG_ASSERT (mctx.input.offsets_needed == 0);
#endif
pmatch[reg_idx].rm_so += match_first;
pmatch[reg_idx].rm_eo += match_first;
@@ -923,18 +911,17 @@ prune_impossible_nodes (re_match_context_t *mctx)
re_dfastate_t **sifted_states;
re_dfastate_t **lim_states = NULL;
re_sift_context_t sctx;
-#ifdef DEBUG
- assert (mctx->state_log != NULL);
-#endif
+ DEBUG_ASSERT (mctx->state_log != NULL);
match_last = mctx->match_last;
halt_node = mctx->last_node;
/* Avoid overflow. */
- if (BE (MIN (IDX_MAX, SIZE_MAX / sizeof (re_dfastate_t *)) <= match_last, 0))
+ if (__glibc_unlikely (MIN (IDX_MAX, SIZE_MAX / sizeof (re_dfastate_t *))
+ <= match_last))
return REG_ESPACE;
sifted_states = re_malloc (re_dfastate_t *, match_last + 1);
- if (BE (sifted_states == NULL, 0))
+ if (__glibc_unlikely (sifted_states == NULL))
{
ret = REG_ESPACE;
goto free_return;
@@ -942,7 +929,7 @@ prune_impossible_nodes (re_match_context_t *mctx)
if (dfa->nbackref)
{
lim_states = re_malloc (re_dfastate_t *, match_last + 1);
- if (BE (lim_states == NULL, 0))
+ if (__glibc_unlikely (lim_states == NULL))
{
ret = REG_ESPACE;
goto free_return;
@@ -955,7 +942,7 @@ prune_impossible_nodes (re_match_context_t *mctx)
match_last);
ret = sift_states_backward (mctx, &sctx);
re_node_set_free (&sctx.limits);
- if (BE (ret != REG_NOERROR, 0))
+ if (__glibc_unlikely (ret != REG_NOERROR))
goto free_return;
if (sifted_states[0] != NULL || lim_states[0] != NULL)
break;
@@ -977,7 +964,7 @@ prune_impossible_nodes (re_match_context_t *mctx)
match_last + 1);
re_free (lim_states);
lim_states = NULL;
- if (BE (ret != REG_NOERROR, 0))
+ if (__glibc_unlikely (ret != REG_NOERROR))
goto free_return;
}
else
@@ -985,7 +972,7 @@ prune_impossible_nodes (re_match_context_t *mctx)
sift_ctx_init (&sctx, sifted_states, lim_states, halt_node, match_last);
ret = sift_states_backward (mctx, &sctx);
re_node_set_free (&sctx.limits);
- if (BE (ret != REG_NOERROR, 0))
+ if (__glibc_unlikely (ret != REG_NOERROR))
goto free_return;
if (sifted_states[0] == NULL)
{
@@ -1068,9 +1055,9 @@ check_matching (re_match_context_t *mctx, bool fl_longest_match,
err = REG_NOERROR;
cur_state = acquire_init_state_context (&err, mctx, cur_str_idx);
/* An initial state must not be NULL (invalid). */
- if (BE (cur_state == NULL, 0))
+ if (__glibc_unlikely (cur_state == NULL))
{
- assert (err == REG_ESPACE);
+ DEBUG_ASSERT (err == REG_ESPACE);
return -2;
}
@@ -1080,24 +1067,24 @@ check_matching (re_match_context_t *mctx, bool fl_longest_match,
/* Check OP_OPEN_SUBEXP in the initial state in case that we use them
later. E.g. Processing back references. */
- if (BE (dfa->nbackref, 0))
+ if (__glibc_unlikely (dfa->nbackref))
{
at_init_state = false;
err = check_subexp_matching_top (mctx, &cur_state->nodes, 0);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
if (cur_state->has_backref)
{
err = transit_state_bkref (mctx, &cur_state->nodes);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
}
}
}
/* If the RE accepts NULL string. */
- if (BE (cur_state->halt, 0))
+ if (__glibc_unlikely (cur_state->halt))
{
if (!cur_state->has_constraint
|| check_halt_state_context (mctx, cur_state, cur_str_idx))
@@ -1117,15 +1104,15 @@ check_matching (re_match_context_t *mctx, bool fl_longest_match,
re_dfastate_t *old_state = cur_state;
Idx next_char_idx = re_string_cur_idx (&mctx->input) + 1;
- if ((BE (next_char_idx >= mctx->input.bufs_len, 0)
+ if ((__glibc_unlikely (next_char_idx >= mctx->input.bufs_len)
&& mctx->input.bufs_len < mctx->input.len)
- || (BE (next_char_idx >= mctx->input.valid_len, 0)
+ || (__glibc_unlikely (next_char_idx >= mctx->input.valid_len)
&& mctx->input.valid_len < mctx->input.len))
{
err = extend_buffers (mctx, next_char_idx + 1);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
{
- assert (err == REG_ESPACE);
+ DEBUG_ASSERT (err == REG_ESPACE);
return -2;
}
}
@@ -1139,7 +1126,7 @@ check_matching (re_match_context_t *mctx, bool fl_longest_match,
/* Reached the invalid state or an error. Try to recover a valid
state using the state log, if available and if we have not
already found a valid (even if not the longest) match. */
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return -2;
if (mctx->state_log == NULL
@@ -1148,7 +1135,7 @@ check_matching (re_match_context_t *mctx, bool fl_longest_match,
break;
}
- if (BE (at_init_state, 0))
+ if (__glibc_unlikely (at_init_state))
{
if (old_state == cur_state)
next_start_idx = next_char_idx;
@@ -1208,9 +1195,7 @@ check_halt_state_context (const re_match_context_t *mctx,
{
Idx i;
unsigned int context;
-#ifdef DEBUG
- assert (state->halt);
-#endif
+ DEBUG_ASSERT (state->halt);
context = re_string_context_at (&mctx->input, idx, mctx->eflags);
for (i = 0; i < state->nodes.nelem; ++i)
if (check_halt_node_context (mctx->dfa, state->nodes.elems[i], context))
@@ -1237,7 +1222,7 @@ proceed_next_node (const re_match_context_t *mctx, Idx nregs, regmatch_t *regs,
re_node_set *edests = &dfa->edests[node];
Idx dest_node;
ok = re_node_set_insert (eps_via_nodes, node);
- if (BE (! ok, 0))
+ if (__glibc_unlikely (! ok))
return -2;
/* Pick up a valid destination, or return -1 if none
is found. */
@@ -1281,16 +1266,21 @@ proceed_next_node (const re_match_context_t *mctx, Idx nregs, regmatch_t *regs,
if (type == OP_BACK_REF)
{
Idx subexp_idx = dfa->nodes[node].opr.idx + 1;
- naccepted = regs[subexp_idx].rm_eo - regs[subexp_idx].rm_so;
+ if (subexp_idx < nregs)
+ naccepted = regs[subexp_idx].rm_eo - regs[subexp_idx].rm_so;
if (fs != NULL)
{
- if (regs[subexp_idx].rm_so == -1 || regs[subexp_idx].rm_eo == -1)
+ if (subexp_idx >= nregs
+ || regs[subexp_idx].rm_so == -1
+ || regs[subexp_idx].rm_eo == -1)
return -1;
else if (naccepted)
{
char *buf = (char *) re_string_get_buffer (&mctx->input);
- if (memcmp (buf + regs[subexp_idx].rm_so, buf + *pidx,
- naccepted) != 0)
+ if (mctx->input.valid_len - *pidx < naccepted
+ || (memcmp (buf + regs[subexp_idx].rm_so, buf + *pidx,
+ naccepted)
+ != 0))
return -1;
}
}
@@ -1299,7 +1289,7 @@ proceed_next_node (const re_match_context_t *mctx, Idx nregs, regmatch_t *regs,
{
Idx dest_node;
ok = re_node_set_insert (eps_via_nodes, node);
- if (BE (! ok, 0))
+ if (__glibc_unlikely (! ok))
return -2;
dest_node = dfa->edests[node].elems[0];
if (re_node_set_contains (&mctx->state_log[*pidx]->nodes,
@@ -1356,7 +1346,7 @@ pop_fail_stack (struct re_fail_stack_t *fs, Idx *pidx, Idx nregs,
regmatch_t *regs, re_node_set *eps_via_nodes)
{
Idx num = --fs->num;
- assert (num >= 0);
+ DEBUG_ASSERT (num >= 0);
*pidx = fs->stack[num].idx;
memcpy (regs, fs->stack[num].regs, sizeof (regmatch_t) * nregs);
re_node_set_free (eps_via_nodes);
@@ -1383,10 +1373,8 @@ set_regs (const regex_t *preg, const re_match_context_t *mctx, size_t nmatch,
regmatch_t *prev_idx_match;
bool prev_idx_match_malloced = false;
-#ifdef DEBUG
- assert (nmatch > 1);
- assert (mctx->state_log != NULL);
-#endif
+ DEBUG_ASSERT (nmatch > 1);
+ DEBUG_ASSERT (mctx->state_log != NULL);
if (fl_backtrack)
{
fs = &fs_body;
@@ -1449,9 +1437,9 @@ set_regs (const regex_t *preg, const re_match_context_t *mctx, size_t nmatch,
cur_node = proceed_next_node (mctx, nmatch, pmatch, &idx, cur_node,
&eps_via_nodes, fs);
- if (BE (cur_node < 0, 0))
+ if (__glibc_unlikely (cur_node < 0))
{
- if (BE (cur_node == -2, 0))
+ if (__glibc_unlikely (cur_node == -2))
{
re_node_set_free (&eps_via_nodes);
if (prev_idx_match_malloced)
@@ -1572,17 +1560,15 @@ sift_states_backward (const re_match_context_t *mctx, re_sift_context_t *sctx)
Idx str_idx = sctx->last_str_idx;
re_node_set cur_dest;
-#ifdef DEBUG
- assert (mctx->state_log != NULL && mctx->state_log[str_idx] != NULL);
-#endif
+ DEBUG_ASSERT (mctx->state_log != NULL && mctx->state_log[str_idx] != NULL);
/* Build sifted state_log[str_idx]. It has the nodes which can epsilon
transit to the last_node and the last_node itself. */
err = re_node_set_init_1 (&cur_dest, sctx->last_node);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
err = update_cur_sifted_state (mctx, sctx, str_idx, &cur_dest);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
goto free_return;
/* Then check each states in the state_log. */
@@ -1603,7 +1589,7 @@ sift_states_backward (const re_match_context_t *mctx, re_sift_context_t *sctx)
if (mctx->state_log[str_idx])
{
err = build_sifted_states (mctx, sctx, str_idx, &cur_dest);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
goto free_return;
}
@@ -1612,7 +1598,7 @@ sift_states_backward (const re_match_context_t *mctx, re_sift_context_t *sctx)
- It is in CUR_SRC.
And update state_log. */
err = update_cur_sifted_state (mctx, sctx, str_idx, &cur_dest);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
goto free_return;
}
err = REG_NOERROR;
@@ -1642,11 +1628,8 @@ build_sifted_states (const re_match_context_t *mctx, re_sift_context_t *sctx,
Idx prev_node = cur_src->elems[i];
int naccepted = 0;
bool ok;
+ DEBUG_ASSERT (!IS_EPSILON_NODE (dfa->nodes[prev_node].type));
-#ifdef DEBUG
- re_token_type_t type = dfa->nodes[prev_node].type;
- assert (!IS_EPSILON_NODE (type));
-#endif
#ifdef RE_ENABLE_I18N
/* If the node may accept "multi byte". */
if (dfa->nodes[prev_node].accept_mb)
@@ -1674,7 +1657,7 @@ build_sifted_states (const re_match_context_t *mctx, re_sift_context_t *sctx,
continue;
}
ok = re_node_set_insert (cur_dest, prev_node);
- if (BE (! ok, 0))
+ if (__glibc_unlikely (! ok))
return REG_ESPACE;
}
@@ -1695,7 +1678,7 @@ clean_state_log_if_needed (re_match_context_t *mctx, Idx next_state_log_idx)
{
reg_errcode_t err;
err = extend_buffers (mctx, next_state_log_idx + 1);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
}
@@ -1723,11 +1706,11 @@ merge_state_array (const re_dfa_t *dfa, re_dfastate_t **dst,
re_node_set merged_set;
err = re_node_set_init_union (&merged_set, &dst[st_idx]->nodes,
&src[st_idx]->nodes);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
dst[st_idx] = re_acquire_state (&err, dfa, &merged_set);
re_node_set_free (&merged_set);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
}
}
@@ -1754,7 +1737,7 @@ update_cur_sifted_state (const re_match_context_t *mctx,
/* At first, add the nodes which can epsilon transit to a node in
DEST_NODE. */
err = add_epsilon_src_nodes (dfa, dest_nodes, candidates);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
/* Then, check the limitations in the current sift_context. */
@@ -1762,20 +1745,20 @@ update_cur_sifted_state (const re_match_context_t *mctx,
{
err = check_subexp_limits (dfa, dest_nodes, candidates, &sctx->limits,
mctx->bkref_ents, str_idx);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
}
}
sctx->sifted_states[str_idx] = re_acquire_state (&err, dfa, dest_nodes);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
}
if (candidates && mctx->state_log[str_idx]->has_backref)
{
err = sift_states_bkref (mctx, sctx, str_idx, candidates);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
}
return REG_NOERROR;
@@ -1790,19 +1773,19 @@ add_epsilon_src_nodes (const re_dfa_t *dfa, re_node_set *dest_nodes,
Idx i;
re_dfastate_t *state = re_acquire_state (&err, dfa, dest_nodes);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
if (!state->inveclosure.alloc)
{
err = re_node_set_alloc (&state->inveclosure, dest_nodes->nelem);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return REG_ESPACE;
for (i = 0; i < dest_nodes->nelem; i++)
{
err = re_node_set_merge (&state->inveclosure,
dfa->inveclosures + dest_nodes->elems[i]);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return REG_ESPACE;
}
}
@@ -1837,7 +1820,7 @@ sub_epsilon_src_nodes (const re_dfa_t *dfa, Idx node, re_node_set *dest_nodes,
{
err = re_node_set_add_intersect (&except_nodes, candidates,
dfa->inveclosures + cur_node);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
{
re_node_set_free (&except_nodes);
return err;
@@ -2043,7 +2026,7 @@ check_subexp_limits (const re_dfa_t *dfa, re_node_set *dest_nodes,
{
err = sub_epsilon_src_nodes (dfa, ops_node, dest_nodes,
candidates);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
}
@@ -2061,7 +2044,7 @@ check_subexp_limits (const re_dfa_t *dfa, re_node_set *dest_nodes,
Remove it form the current sifted state. */
err = sub_epsilon_src_nodes (dfa, node, dest_nodes,
candidates);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
--node_idx;
}
@@ -2081,7 +2064,7 @@ check_subexp_limits (const re_dfa_t *dfa, re_node_set *dest_nodes,
Remove it form the current sifted state. */
err = sub_epsilon_src_nodes (dfa, node, dest_nodes,
candidates);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
}
}
@@ -2147,27 +2130,27 @@ sift_states_bkref (const re_match_context_t *mctx, re_sift_context_t *sctx,
{
local_sctx = *sctx;
err = re_node_set_init_copy (&local_sctx.limits, &sctx->limits);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
goto free_return;
}
local_sctx.last_node = node;
local_sctx.last_str_idx = str_idx;
ok = re_node_set_insert (&local_sctx.limits, enabled_idx);
- if (BE (! ok, 0))
+ if (__glibc_unlikely (! ok))
{
err = REG_ESPACE;
goto free_return;
}
cur_state = local_sctx.sifted_states[str_idx];
err = sift_states_backward (mctx, &local_sctx);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
goto free_return;
if (sctx->limited_states != NULL)
{
err = merge_state_array (dfa, sctx->limited_states,
local_sctx.sifted_states,
str_idx + 1);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
goto free_return;
}
local_sctx.sifted_states[str_idx] = cur_state;
@@ -2198,12 +2181,12 @@ sift_states_iter_mb (const re_match_context_t *mctx, re_sift_context_t *sctx,
int naccepted;
/* Check the node can accept "multi byte". */
naccepted = check_node_accept_bytes (dfa, node_idx, &mctx->input, str_idx);
- if (naccepted > 0 && str_idx + naccepted <= max_str_idx &&
- !STATE_NODE_CONTAINS (sctx->sifted_states[str_idx + naccepted],
- dfa->nexts[node_idx]))
+ if (naccepted > 0 && str_idx + naccepted <= max_str_idx
+ && !STATE_NODE_CONTAINS (sctx->sifted_states[str_idx + naccepted],
+ dfa->nexts[node_idx]))
/* The node can't accept the "multi byte", or the
destination was already thrown away, then the node
- could't accept the current input "multi byte". */
+ couldn't accept the current input "multi byte". */
naccepted = 0;
/* Otherwise, it is sure that the node could accept
'naccepted' bytes input. */
@@ -2229,10 +2212,10 @@ transit_state (reg_errcode_t *err, re_match_context_t *mctx,
#ifdef RE_ENABLE_I18N
/* If the current state can accept multibyte. */
- if (BE (state->accept_mb, 0))
+ if (__glibc_unlikely (state->accept_mb))
{
*err = transit_state_mb (mctx, state);
- if (BE (*err != REG_NOERROR, 0))
+ if (__glibc_unlikely (*err != REG_NOERROR))
return NULL;
}
#endif /* RE_ENABLE_I18N */
@@ -2249,11 +2232,11 @@ transit_state (reg_errcode_t *err, re_match_context_t *mctx,
for (;;)
{
trtable = state->trtable;
- if (BE (trtable != NULL, 1))
+ if (__glibc_likely (trtable != NULL))
return trtable[ch];
trtable = state->word_trtable;
- if (BE (trtable != NULL, 1))
+ if (__glibc_likely (trtable != NULL))
{
unsigned int context;
context
@@ -2309,7 +2292,7 @@ merge_state_with_log (reg_errcode_t *err, re_match_context_t *mctx,
table_nodes = next_state->entrance_nodes;
*err = re_node_set_init_union (&next_nodes, table_nodes,
log_nodes);
- if (BE (*err != REG_NOERROR, 0))
+ if (__glibc_unlikely (*err != REG_NOERROR))
return NULL;
}
else
@@ -2329,21 +2312,21 @@ merge_state_with_log (reg_errcode_t *err, re_match_context_t *mctx,
re_node_set_free (&next_nodes);
}
- if (BE (dfa->nbackref, 0) && next_state != NULL)
+ if (__glibc_unlikely (dfa->nbackref) && next_state != NULL)
{
/* Check OP_OPEN_SUBEXP in the current state in case that we use them
later. We must check them here, since the back references in the
next state might use them. */
*err = check_subexp_matching_top (mctx, &next_state->nodes,
cur_idx);
- if (BE (*err != REG_NOERROR, 0))
+ if (__glibc_unlikely (*err != REG_NOERROR))
return NULL;
/* If the next state has back references. */
if (next_state->has_backref)
{
*err = transit_state_bkref (mctx, &next_state->nodes);
- if (BE (*err != REG_NOERROR, 0))
+ if (__glibc_unlikely (*err != REG_NOERROR))
return NULL;
next_state = mctx->state_log[cur_idx];
}
@@ -2407,7 +2390,7 @@ check_subexp_matching_top (re_match_context_t *mctx, re_node_set *cur_nodes,
& ((bitset_word_t) 1 << dfa->nodes[node].opr.idx)))
{
err = match_ctx_add_subtop (mctx, node, str_idx);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
}
}
@@ -2429,7 +2412,7 @@ transit_state_sb (reg_errcode_t *err, re_match_context_t *mctx,
unsigned int context;
*err = re_node_set_alloc (&next_nodes, state->nodes.nelem + 1);
- if (BE (*err != REG_NOERROR, 0))
+ if (__glibc_unlikely (*err != REG_NOERROR))
return NULL;
for (node_cnt = 0; node_cnt < state->nodes.nelem; ++node_cnt)
{
@@ -2438,7 +2421,7 @@ transit_state_sb (reg_errcode_t *err, re_match_context_t *mctx,
{
*err = re_node_set_merge (&next_nodes,
dfa->eclosures + dfa->nexts[cur_node]);
- if (BE (*err != REG_NOERROR, 0))
+ if (__glibc_unlikely (*err != REG_NOERROR))
{
re_node_set_free (&next_nodes);
return NULL;
@@ -2497,11 +2480,9 @@ transit_state_mb (re_match_context_t *mctx, re_dfastate_t *pstate)
mctx->max_mb_elem_len = ((mctx->max_mb_elem_len < naccepted) ? naccepted
: mctx->max_mb_elem_len);
err = clean_state_log_if_needed (mctx, dest_idx);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
-#ifdef DEBUG
- assert (dfa->nexts[cur_node_idx] != -1);
-#endif
+ DEBUG_ASSERT (dfa->nexts[cur_node_idx] != -1);
new_nodes = dfa->eclosures + dfa->nexts[cur_node_idx];
dest_state = mctx->state_log[dest_idx];
@@ -2511,7 +2492,7 @@ transit_state_mb (re_match_context_t *mctx, re_dfastate_t *pstate)
{
err = re_node_set_init_union (&dest_nodes,
dest_state->entrance_nodes, new_nodes);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
}
context = re_string_context_at (&mctx->input, dest_idx - 1,
@@ -2520,7 +2501,8 @@ transit_state_mb (re_match_context_t *mctx, re_dfastate_t *pstate)
= re_acquire_state_context (&err, dfa, &dest_nodes, context);
if (dest_state != NULL)
re_node_set_free (&dest_nodes);
- if (BE (mctx->state_log[dest_idx] == NULL && err != REG_NOERROR, 0))
+ if (__glibc_unlikely (mctx->state_log[dest_idx] == NULL
+ && err != REG_NOERROR))
return err;
}
return REG_NOERROR;
@@ -2559,14 +2541,12 @@ transit_state_bkref (re_match_context_t *mctx, const re_node_set *nodes)
Check the substring which the substring matched. */
bkc_idx = mctx->nbkref_ents;
err = get_subexp (mctx, node_idx, cur_str_idx);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
goto free_return;
/* And add the epsilon closures (which is 'new_dest_nodes') of
the backreference to appropriate state_log. */
-#ifdef DEBUG
- assert (dfa->nexts[node_idx] != -1);
-#endif
+ DEBUG_ASSERT (dfa->nexts[node_idx] != -1);
for (; bkc_idx < mctx->nbkref_ents; ++bkc_idx)
{
Idx subexp_len;
@@ -2592,8 +2572,8 @@ transit_state_bkref (re_match_context_t *mctx, const re_node_set *nodes)
mctx->state_log[dest_str_idx]
= re_acquire_state_context (&err, dfa, new_dest_nodes,
context);
- if (BE (mctx->state_log[dest_str_idx] == NULL
- && err != REG_NOERROR, 0))
+ if (__glibc_unlikely (mctx->state_log[dest_str_idx] == NULL
+ && err != REG_NOERROR))
goto free_return;
}
else
@@ -2602,7 +2582,7 @@ transit_state_bkref (re_match_context_t *mctx, const re_node_set *nodes)
err = re_node_set_init_union (&dest_nodes,
dest_state->entrance_nodes,
new_dest_nodes);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
{
re_node_set_free (&dest_nodes);
goto free_return;
@@ -2610,8 +2590,8 @@ transit_state_bkref (re_match_context_t *mctx, const re_node_set *nodes)
mctx->state_log[dest_str_idx]
= re_acquire_state_context (&err, dfa, &dest_nodes, context);
re_node_set_free (&dest_nodes);
- if (BE (mctx->state_log[dest_str_idx] == NULL
- && err != REG_NOERROR, 0))
+ if (__glibc_unlikely (mctx->state_log[dest_str_idx] == NULL
+ && err != REG_NOERROR))
goto free_return;
}
/* We need to check recursively if the backreference can epsilon
@@ -2621,10 +2601,10 @@ transit_state_bkref (re_match_context_t *mctx, const re_node_set *nodes)
{
err = check_subexp_matching_top (mctx, new_dest_nodes,
cur_str_idx);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
goto free_return;
err = transit_state_bkref (mctx, new_dest_nodes);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
goto free_return;
}
}
@@ -2685,7 +2665,8 @@ get_subexp (re_match_context_t *mctx, Idx bkref_node, Idx bkref_str_idx)
at the back reference? */
if (sl_str_diff > 0)
{
- if (BE (bkref_str_off + sl_str_diff > mctx->input.valid_len, 0))
+ if (__glibc_unlikely (bkref_str_off + sl_str_diff
+ > mctx->input.valid_len))
{
/* Not enough chars for a successful match. */
if (bkref_str_off + sl_str_diff > mctx->input.len)
@@ -2694,7 +2675,7 @@ get_subexp (re_match_context_t *mctx, Idx bkref_node, Idx bkref_str_idx)
err = clean_state_log_if_needed (mctx,
bkref_str_off
+ sl_str_diff);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
buf = (const char *) re_string_get_buffer (&mctx->input);
}
@@ -2713,7 +2694,7 @@ get_subexp (re_match_context_t *mctx, Idx bkref_node, Idx bkref_str_idx)
if (err == REG_NOMATCH)
continue;
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
}
@@ -2732,14 +2713,14 @@ get_subexp (re_match_context_t *mctx, Idx bkref_node, Idx bkref_str_idx)
at the back reference? */
if (sl_str_off > 0)
{
- if (BE (bkref_str_off >= mctx->input.valid_len, 0))
+ if (__glibc_unlikely (bkref_str_off >= mctx->input.valid_len))
{
/* If we are at the end of the input, we cannot match. */
if (bkref_str_off >= mctx->input.len)
break;
err = extend_buffers (mctx, bkref_str_off + 1);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
buf = (const char *) re_string_get_buffer (&mctx->input);
@@ -2770,15 +2751,18 @@ get_subexp (re_match_context_t *mctx, Idx bkref_node, Idx bkref_str_idx)
OP_CLOSE_SUBEXP);
if (err == REG_NOMATCH)
continue;
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
sub_last = match_ctx_add_sublast (sub_top, cls_node, sl_str);
- if (BE (sub_last == NULL, 0))
+ if (__glibc_unlikely (sub_last == NULL))
return REG_ESPACE;
err = get_subexp_sub (mctx, sub_top, sub_last, bkref_node,
bkref_str_idx);
+ buf = (const char *) re_string_get_buffer (&mctx->input);
if (err == REG_NOMATCH)
continue;
+ if (__glibc_unlikely (err != REG_NOERROR))
+ return err;
}
}
return REG_NOERROR;
@@ -2804,7 +2788,7 @@ get_subexp_sub (re_match_context_t *mctx, const re_sub_match_top_t *sub_top,
return err;
err = match_ctx_add_entry (mctx, bkref_node, bkref_str, sub_top->str_idx,
sub_last->str_idx);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
to_idx = bkref_str + sub_last->str_idx - sub_top->str_idx;
return clean_state_log_if_needed (mctx, to_idx);
@@ -2854,19 +2838,19 @@ check_arrival (re_match_context_t *mctx, state_array_t *path, Idx top_node,
subexp_num = dfa->nodes[top_node].opr.idx;
/* Extend the buffer if we need. */
- if (BE (path->alloc < last_str + mctx->max_mb_elem_len + 1, 0))
+ if (__glibc_unlikely (path->alloc < last_str + mctx->max_mb_elem_len + 1))
{
re_dfastate_t **new_array;
Idx old_alloc = path->alloc;
Idx incr_alloc = last_str + mctx->max_mb_elem_len + 1;
Idx new_alloc;
- if (BE (IDX_MAX - old_alloc < incr_alloc, 0))
+ if (__glibc_unlikely (IDX_MAX - old_alloc < incr_alloc))
return REG_ESPACE;
new_alloc = old_alloc + incr_alloc;
- if (BE (SIZE_MAX / sizeof (re_dfastate_t *) < new_alloc, 0))
+ if (__glibc_unlikely (SIZE_MAX / sizeof (re_dfastate_t *) < new_alloc))
return REG_ESPACE;
new_array = re_realloc (path->array, re_dfastate_t *, new_alloc);
- if (BE (new_array == NULL, 0))
+ if (__glibc_unlikely (new_array == NULL))
return REG_ESPACE;
path->array = new_array;
path->alloc = new_alloc;
@@ -2887,10 +2871,10 @@ check_arrival (re_match_context_t *mctx, state_array_t *path, Idx top_node,
if (str_idx == top_str)
{
err = re_node_set_init_1 (&next_nodes, top_node);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
err = check_arrival_expand_ecl (dfa, &next_nodes, subexp_num, type);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
{
re_node_set_free (&next_nodes);
return err;
@@ -2902,7 +2886,7 @@ check_arrival (re_match_context_t *mctx, state_array_t *path, Idx top_node,
if (cur_state && cur_state->has_backref)
{
err = re_node_set_init_copy (&next_nodes, &cur_state->nodes);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
}
else
@@ -2914,14 +2898,14 @@ check_arrival (re_match_context_t *mctx, state_array_t *path, Idx top_node,
{
err = expand_bkref_cache (mctx, &next_nodes, str_idx,
subexp_num, type);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
{
re_node_set_free (&next_nodes);
return err;
}
}
cur_state = re_acquire_state_context (&err, dfa, &next_nodes, context);
- if (BE (cur_state == NULL && err != REG_NOERROR, 0))
+ if (__glibc_unlikely (cur_state == NULL && err != REG_NOERROR))
{
re_node_set_free (&next_nodes);
return err;
@@ -2936,7 +2920,7 @@ check_arrival (re_match_context_t *mctx, state_array_t *path, Idx top_node,
{
err = re_node_set_merge (&next_nodes,
&mctx->state_log[str_idx + 1]->nodes);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
{
re_node_set_free (&next_nodes);
return err;
@@ -2947,7 +2931,7 @@ check_arrival (re_match_context_t *mctx, state_array_t *path, Idx top_node,
err = check_arrival_add_next_nodes (mctx, str_idx,
&cur_state->non_eps_nodes,
&next_nodes);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
{
re_node_set_free (&next_nodes);
return err;
@@ -2957,14 +2941,14 @@ check_arrival (re_match_context_t *mctx, state_array_t *path, Idx top_node,
if (next_nodes.nelem)
{
err = check_arrival_expand_ecl (dfa, &next_nodes, subexp_num, type);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
{
re_node_set_free (&next_nodes);
return err;
}
err = expand_bkref_cache (mctx, &next_nodes, str_idx,
subexp_num, type);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
{
re_node_set_free (&next_nodes);
return err;
@@ -2972,7 +2956,7 @@ check_arrival (re_match_context_t *mctx, state_array_t *path, Idx top_node,
}
context = re_string_context_at (&mctx->input, str_idx - 1, mctx->eflags);
cur_state = re_acquire_state_context (&err, dfa, &next_nodes, context);
- if (BE (cur_state == NULL && err != REG_NOERROR, 0))
+ if (__glibc_unlikely (cur_state == NULL && err != REG_NOERROR))
{
re_node_set_free (&next_nodes);
return err;
@@ -3021,10 +3005,8 @@ check_arrival_add_next_nodes (re_match_context_t *mctx, Idx str_idx,
{
int naccepted = 0;
Idx cur_node = cur_nodes->elems[cur_idx];
-#ifdef DEBUG
- re_token_type_t type = dfa->nodes[cur_node].type;
- assert (!IS_EPSILON_NODE (type));
-#endif
+ DEBUG_ASSERT (!IS_EPSILON_NODE (dfa->nodes[cur_node].type));
+
#ifdef RE_ENABLE_I18N
/* If the node may accept "multi byte". */
if (dfa->nodes[cur_node].accept_mb)
@@ -3041,22 +3023,22 @@ check_arrival_add_next_nodes (re_match_context_t *mctx, Idx str_idx,
if (dest_state)
{
err = re_node_set_merge (&union_set, &dest_state->nodes);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
{
re_node_set_free (&union_set);
return err;
}
}
ok = re_node_set_insert (&union_set, next_node);
- if (BE (! ok, 0))
+ if (__glibc_unlikely (! ok))
{
re_node_set_free (&union_set);
return REG_ESPACE;
}
mctx->state_log[next_idx] = re_acquire_state (&err, dfa,
&union_set);
- if (BE (mctx->state_log[next_idx] == NULL
- && err != REG_NOERROR, 0))
+ if (__glibc_unlikely (mctx->state_log[next_idx] == NULL
+ && err != REG_NOERROR))
{
re_node_set_free (&union_set);
return err;
@@ -3068,7 +3050,7 @@ check_arrival_add_next_nodes (re_match_context_t *mctx, Idx str_idx,
|| check_node_accept (mctx, dfa->nodes + cur_node, str_idx))
{
ok = re_node_set_insert (next_nodes, dfa->nexts[cur_node]);
- if (BE (! ok, 0))
+ if (__glibc_unlikely (! ok))
{
re_node_set_free (&union_set);
return REG_ESPACE;
@@ -3092,11 +3074,9 @@ check_arrival_expand_ecl (const re_dfa_t *dfa, re_node_set *cur_nodes,
reg_errcode_t err;
Idx idx, outside_node;
re_node_set new_nodes;
-#ifdef DEBUG
- assert (cur_nodes->nelem);
-#endif
+ DEBUG_ASSERT (cur_nodes->nelem);
err = re_node_set_alloc (&new_nodes, cur_nodes->nelem);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
/* Create a new node set NEW_NODES with the nodes which are epsilon
closures of the node in CUR_NODES. */
@@ -3110,7 +3090,7 @@ check_arrival_expand_ecl (const re_dfa_t *dfa, re_node_set *cur_nodes,
{
/* There are no problematic nodes, just merge them. */
err = re_node_set_merge (&new_nodes, eclosure);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
{
re_node_set_free (&new_nodes);
return err;
@@ -3121,7 +3101,7 @@ check_arrival_expand_ecl (const re_dfa_t *dfa, re_node_set *cur_nodes,
/* There are problematic nodes, re-calculate incrementally. */
err = check_arrival_expand_ecl_sub (dfa, &new_nodes, cur_node,
ex_subexp, type);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
{
re_node_set_free (&new_nodes);
return err;
@@ -3153,13 +3133,13 @@ check_arrival_expand_ecl_sub (const re_dfa_t *dfa, re_node_set *dst_nodes,
if (type == OP_CLOSE_SUBEXP)
{
ok = re_node_set_insert (dst_nodes, cur_node);
- if (BE (! ok, 0))
+ if (__glibc_unlikely (! ok))
return REG_ESPACE;
}
break;
}
ok = re_node_set_insert (dst_nodes, cur_node);
- if (BE (! ok, 0))
+ if (__glibc_unlikely (! ok))
return REG_ESPACE;
if (dfa->edests[cur_node].nelem == 0)
break;
@@ -3169,7 +3149,7 @@ check_arrival_expand_ecl_sub (const re_dfa_t *dfa, re_node_set *dst_nodes,
err = check_arrival_expand_ecl_sub (dfa, dst_nodes,
dfa->edests[cur_node].elems[1],
ex_subexp, type);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
}
cur_node = dfa->edests[cur_node].elems[0];
@@ -3221,8 +3201,8 @@ expand_bkref_cache (re_match_context_t *mctx, re_node_set *cur_nodes,
err2 = check_arrival_expand_ecl (dfa, &new_dests, subexp_num, type);
err3 = re_node_set_merge (cur_nodes, &new_dests);
re_node_set_free (&new_dests);
- if (BE (err != REG_NOERROR || err2 != REG_NOERROR
- || err3 != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR || err2 != REG_NOERROR
+ || err3 != REG_NOERROR))
{
err = (err != REG_NOERROR ? err
: (err2 != REG_NOERROR ? err2 : err3));
@@ -3244,7 +3224,7 @@ expand_bkref_cache (re_match_context_t *mctx, re_node_set *cur_nodes,
err = re_node_set_init_copy (&union_set,
&mctx->state_log[to_idx]->nodes);
ok = re_node_set_insert (&union_set, next_node);
- if (BE (err != REG_NOERROR || ! ok, 0))
+ if (__glibc_unlikely (err != REG_NOERROR || ! ok))
{
re_node_set_free (&union_set);
err = err != REG_NOERROR ? err : REG_ESPACE;
@@ -3254,13 +3234,13 @@ expand_bkref_cache (re_match_context_t *mctx, re_node_set *cur_nodes,
else
{
err = re_node_set_init_1 (&union_set, next_node);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
return err;
}
mctx->state_log[to_idx] = re_acquire_state (&err, dfa, &union_set);
re_node_set_free (&union_set);
- if (BE (mctx->state_log[to_idx] == NULL
- && err != REG_NOERROR, 0))
+ if (__glibc_unlikely (mctx->state_log[to_idx] == NULL
+ && err != REG_NOERROR))
return err;
}
}
@@ -3303,7 +3283,7 @@ build_trtable (const re_dfa_t *dfa, re_dfastate_t *state)
else
{
dests_alloc = re_malloc (struct dests_alloc, 1);
- if (BE (dests_alloc == NULL, 0))
+ if (__glibc_unlikely (dests_alloc == NULL))
return false;
dests_node_malloced = true;
}
@@ -3316,7 +3296,7 @@ build_trtable (const re_dfa_t *dfa, re_dfastate_t *state)
/* At first, group all nodes belonging to 'state' into several
destinations. */
ndests = group_nodes_into_DFAstates (dfa, state, dests_node, dests_ch);
- if (BE (ndests <= 0, 0))
+ if (__glibc_unlikely (ndests <= 0))
{
if (dests_node_malloced)
re_free (dests_alloc);
@@ -3325,7 +3305,7 @@ build_trtable (const re_dfa_t *dfa, re_dfastate_t *state)
{
state->trtable = (re_dfastate_t **)
calloc (sizeof (re_dfastate_t *), SBC_MAX);
- if (BE (state->trtable == NULL, 0))
+ if (__glibc_unlikely (state->trtable == NULL))
return false;
return true;
}
@@ -3333,14 +3313,14 @@ build_trtable (const re_dfa_t *dfa, re_dfastate_t *state)
}
err = re_node_set_alloc (&follows, ndests + 1);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
goto out_free;
/* Avoid arithmetic overflow in size calculation. */
- if (BE ((((SIZE_MAX - (sizeof (re_node_set) + sizeof (bitset_t)) * SBC_MAX)
- / (3 * sizeof (re_dfastate_t *)))
- < ndests),
- 0))
+ size_t ndests_max
+ = ((SIZE_MAX - (sizeof (re_node_set) + sizeof (bitset_t)) * SBC_MAX)
+ / (3 * sizeof (re_dfastate_t *)));
+ if (__glibc_unlikely (ndests_max < ndests))
goto out_free;
if (__libc_use_alloca ((sizeof (re_node_set) + sizeof (bitset_t)) * SBC_MAX
@@ -3350,7 +3330,7 @@ build_trtable (const re_dfa_t *dfa, re_dfastate_t *state)
else
{
dest_states = re_malloc (re_dfastate_t *, ndests * 3);
- if (BE (dest_states == NULL, 0))
+ if (__glibc_unlikely (dest_states == NULL))
{
out_free:
if (dest_states_malloced)
@@ -3380,12 +3360,12 @@ out_free:
if (next_node != -1)
{
err = re_node_set_merge (&follows, dfa->eclosures + next_node);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
goto out_free;
}
}
dest_states[i] = re_acquire_state_context (&err, dfa, &follows, 0);
- if (BE (dest_states[i] == NULL && err != REG_NOERROR, 0))
+ if (__glibc_unlikely (dest_states[i] == NULL && err != REG_NOERROR))
goto out_free;
/* If the new state has context constraint,
build appropriate states for these contexts. */
@@ -3393,7 +3373,8 @@ out_free:
{
dest_states_word[i] = re_acquire_state_context (&err, dfa, &follows,
CONTEXT_WORD);
- if (BE (dest_states_word[i] == NULL && err != REG_NOERROR, 0))
+ if (__glibc_unlikely (dest_states_word[i] == NULL
+ && err != REG_NOERROR))
goto out_free;
if (dest_states[i] != dest_states_word[i] && dfa->mb_cur_max > 1)
@@ -3401,7 +3382,7 @@ out_free:
dest_states_nl[i] = re_acquire_state_context (&err, dfa, &follows,
CONTEXT_NEWLINE);
- if (BE (dest_states_nl[i] == NULL && err != REG_NOERROR, 0))
+ if (__glibc_unlikely (dest_states_nl[i] == NULL && err != REG_NOERROR))
goto out_free;
}
else
@@ -3412,7 +3393,7 @@ out_free:
bitset_merge (acceptable, dests_ch[i]);
}
- if (!BE (need_word_trtable, 0))
+ if (!__glibc_unlikely (need_word_trtable))
{
/* We don't care about whether the following character is a word
character, or we are in a single-byte character set so we can
@@ -3420,7 +3401,7 @@ out_free:
256-entry transition table. */
trtable = state->trtable =
(re_dfastate_t **) calloc (sizeof (re_dfastate_t *), SBC_MAX);
- if (BE (trtable == NULL, 0))
+ if (__glibc_unlikely (trtable == NULL))
goto out_free;
/* For all characters ch...: */
@@ -3428,7 +3409,7 @@ out_free:
for (ch = i * BITSET_WORD_BITS, elem = acceptable[i], mask = 1;
elem;
mask <<= 1, elem >>= 1, ++ch)
- if (BE (elem & 1, 0))
+ if (__glibc_unlikely (elem & 1))
{
/* There must be exactly one destination which accepts
character ch. See group_nodes_into_DFAstates. */
@@ -3451,7 +3432,7 @@ out_free:
starting at trtable[SBC_MAX]. */
trtable = state->word_trtable =
(re_dfastate_t **) calloc (sizeof (re_dfastate_t *), 2 * SBC_MAX);
- if (BE (trtable == NULL, 0))
+ if (__glibc_unlikely (trtable == NULL))
goto out_free;
/* For all characters ch...: */
@@ -3459,7 +3440,7 @@ out_free:
for (ch = i * BITSET_WORD_BITS, elem = acceptable[i], mask = 1;
elem;
mask <<= 1, elem >>= 1, ++ch)
- if (BE (elem & 1, 0))
+ if (__glibc_unlikely (elem & 1))
{
/* There must be exactly one destination which accepts
character ch. See group_nodes_into_DFAstates. */
@@ -3658,14 +3639,14 @@ group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state,
bitset_copy (dests_ch[ndests], remains);
bitset_copy (dests_ch[j], intersec);
err = re_node_set_init_copy (dests_node + ndests, &dests_node[j]);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
goto error_return;
++ndests;
}
/* Put the position in the current group. */
ok = re_node_set_insert (&dests_node[j], cur_nodes->elems[i]);
- if (BE (! ok, 0))
+ if (__glibc_unlikely (! ok))
goto error_return;
/* If all characters are consumed, go to next node. */
@@ -3677,12 +3658,13 @@ group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state,
{
bitset_copy (dests_ch[ndests], accepts);
err = re_node_set_init_1 (dests_node + ndests, cur_nodes->elems[i]);
- if (BE (err != REG_NOERROR, 0))
+ if (__glibc_unlikely (err != REG_NOERROR))
goto error_return;
++ndests;
bitset_empty (accepts);
}
}
+ assume (ndests <= SBC_MAX);
return ndests;
error_return:
for (j = 0; j < ndests; ++j)
@@ -3711,10 +3693,10 @@ check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx,
int char_len, elem_len;
Idx i;
- if (BE (node->type == OP_UTF8_PERIOD, 0))
+ if (__glibc_unlikely (node->type == OP_UTF8_PERIOD))
{
unsigned char c = re_string_byte_at (input, str_idx), d;
- if (BE (c < 0xc2, 1))
+ if (__glibc_likely (c < 0xc2))
return 0;
if (str_idx + 2 > input->len)
@@ -3770,10 +3752,10 @@ check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx,
/* FIXME: I don't think this if is needed, as both '\n'
and '\0' are char_len == 1. */
/* '.' accepts any one character except the following two cases. */
- if ((!(dfa->syntax & RE_DOT_NEWLINE) &&
- re_string_byte_at (input, str_idx) == '\n') ||
- ((dfa->syntax & RE_DOT_NOT_NULL) &&
- re_string_byte_at (input, str_idx) == '\0'))
+ if ((!(dfa->syntax & RE_DOT_NEWLINE)
+ && re_string_byte_at (input, str_idx) == '\n')
+ || ((dfa->syntax & RE_DOT_NOT_NULL)
+ && re_string_byte_at (input, str_idx) == '\0'))
return 0;
return char_len;
}
@@ -4049,15 +4031,15 @@ extend_buffers (re_match_context_t *mctx, int min_len)
re_string_t *pstr = &mctx->input;
/* Avoid overflow. */
- if (BE (MIN (IDX_MAX, SIZE_MAX / sizeof (re_dfastate_t *)) / 2
- <= pstr->bufs_len, 0))
+ if (__glibc_unlikely (MIN (IDX_MAX, SIZE_MAX / sizeof (re_dfastate_t *)) / 2
+ <= pstr->bufs_len))
return REG_ESPACE;
/* Double the lengths of the buffers, but allocate at least MIN_LEN. */
ret = re_string_realloc_buffers (pstr,
MAX (min_len,
MIN (pstr->len, pstr->bufs_len * 2)));
- if (BE (ret != REG_NOERROR, 0))
+ if (__glibc_unlikely (ret != REG_NOERROR))
return ret;
if (mctx->state_log != NULL)
@@ -4068,7 +4050,7 @@ extend_buffers (re_match_context_t *mctx, int min_len)
does not have the right size. */
re_dfastate_t **new_array = re_realloc (mctx->state_log, re_dfastate_t *,
pstr->bufs_len + 1);
- if (BE (new_array == NULL, 0))
+ if (__glibc_unlikely (new_array == NULL))
return REG_ESPACE;
mctx->state_log = new_array;
}
@@ -4080,7 +4062,7 @@ extend_buffers (re_match_context_t *mctx, int min_len)
if (pstr->mb_cur_max > 1)
{
ret = build_wcs_upper_buffer (pstr);
- if (BE (ret != REG_NOERROR, 0))
+ if (__glibc_unlikely (ret != REG_NOERROR))
return ret;
}
else
@@ -4119,12 +4101,12 @@ match_ctx_init (re_match_context_t *mctx, int eflags, Idx n)
size_t max_object_size =
MAX (sizeof (struct re_backref_cache_entry),
sizeof (re_sub_match_top_t *));
- if (BE (MIN (IDX_MAX, SIZE_MAX / max_object_size) < n, 0))
+ if (__glibc_unlikely (MIN (IDX_MAX, SIZE_MAX / max_object_size) < n))
return REG_ESPACE;
mctx->bkref_ents = re_malloc (struct re_backref_cache_entry, n);
mctx->sub_tops = re_malloc (re_sub_match_top_t *, n);
- if (BE (mctx->bkref_ents == NULL || mctx->sub_tops == NULL, 0))
+ if (__glibc_unlikely (mctx->bkref_ents == NULL || mctx->sub_tops == NULL))
return REG_ESPACE;
}
/* Already zero-ed by the caller.
@@ -4195,7 +4177,7 @@ match_ctx_add_entry (re_match_context_t *mctx, Idx node, Idx str_idx, Idx from,
struct re_backref_cache_entry* new_entry;
new_entry = re_realloc (mctx->bkref_ents, struct re_backref_cache_entry,
mctx->abkref_ents * 2);
- if (BE (new_entry == NULL, 0))
+ if (__glibc_unlikely (new_entry == NULL))
{
re_free (mctx->bkref_ents);
return REG_ESPACE;
@@ -4260,23 +4242,21 @@ static reg_errcode_t
__attribute_warn_unused_result__
match_ctx_add_subtop (re_match_context_t *mctx, Idx node, Idx str_idx)
{
-#ifdef DEBUG
- assert (mctx->sub_tops != NULL);
- assert (mctx->asub_tops > 0);
-#endif
- if (BE (mctx->nsub_tops == mctx->asub_tops, 0))
+ DEBUG_ASSERT (mctx->sub_tops != NULL);
+ DEBUG_ASSERT (mctx->asub_tops > 0);
+ if (__glibc_unlikely (mctx->nsub_tops == mctx->asub_tops))
{
Idx new_asub_tops = mctx->asub_tops * 2;
re_sub_match_top_t **new_array = re_realloc (mctx->sub_tops,
re_sub_match_top_t *,
new_asub_tops);
- if (BE (new_array == NULL, 0))
+ if (__glibc_unlikely (new_array == NULL))
return REG_ESPACE;
mctx->sub_tops = new_array;
mctx->asub_tops = new_asub_tops;
}
mctx->sub_tops[mctx->nsub_tops] = calloc (1, sizeof (re_sub_match_top_t));
- if (BE (mctx->sub_tops[mctx->nsub_tops] == NULL, 0))
+ if (__glibc_unlikely (mctx->sub_tops[mctx->nsub_tops] == NULL))
return REG_ESPACE;
mctx->sub_tops[mctx->nsub_tops]->node = node;
mctx->sub_tops[mctx->nsub_tops++]->str_idx = str_idx;
@@ -4290,19 +4270,19 @@ static re_sub_match_last_t *
match_ctx_add_sublast (re_sub_match_top_t *subtop, Idx node, Idx str_idx)
{
re_sub_match_last_t *new_entry;
- if (BE (subtop->nlasts == subtop->alasts, 0))
+ if (__glibc_unlikely (subtop->nlasts == subtop->alasts))
{
Idx new_alasts = 2 * subtop->alasts + 1;
re_sub_match_last_t **new_array = re_realloc (subtop->lasts,
re_sub_match_last_t *,
new_alasts);
- if (BE (new_array == NULL, 0))
+ if (__glibc_unlikely (new_array == NULL))
return NULL;
subtop->lasts = new_array;
subtop->alasts = new_alasts;
}
new_entry = calloc (1, sizeof (re_sub_match_last_t));
- if (BE (new_entry != NULL, 1))
+ if (__glibc_likely (new_entry != NULL))
{
subtop->lasts[subtop->nlasts] = new_entry;
new_entry->node = node;
diff --git a/posix/runptests.c b/posix/runptests.c
index cc8512b297..48931b4d95 100644
--- a/posix/runptests.c
+++ b/posix/runptests.c
@@ -1,5 +1,5 @@
/* POSIX regex testsuite from IEEE 2003.2.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <regex.h>
diff --git a/posix/sched.h b/posix/sched.h
index 619b3b3a81..c063c9464f 100644
--- a/posix/sched.h
+++ b/posix/sched.h
@@ -1,5 +1,5 @@
/* Definitions for POSIX 1003.1b-1993 (aka POSIX.4) scheduling interface.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SCHED_H
#define _SCHED_H 1
diff --git a/posix/sched_cpualloc.c b/posix/sched_cpualloc.c
index e14c926812..5ca3b217a7 100644
--- a/posix/sched_cpualloc.c
+++ b/posix/sched_cpualloc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sched.h>
#include <stdlib.h>
diff --git a/posix/sched_cpucount.c b/posix/sched_cpucount.c
index 1853a400bf..21fa138f4c 100644
--- a/posix/sched_cpucount.c
+++ b/posix/sched_cpucount.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sched.h>
diff --git a/posix/sched_cpufree.c b/posix/sched_cpufree.c
index 0544f66183..b089277275 100644
--- a/posix/sched_cpufree.c
+++ b/posix/sched_cpufree.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sched.h>
#include <stdlib.h>
diff --git a/posix/sched_getaffinity.c b/posix/sched_getaffinity.c
index 8ad1417b1d..6587cba172 100644
--- a/posix/sched_getaffinity.c
+++ b/posix/sched_getaffinity.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sched.h>
diff --git a/posix/sched_getp.c b/posix/sched_getp.c
index fc62564a28..377fc15598 100644
--- a/posix/sched_getp.c
+++ b/posix/sched_getp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/types.h>
diff --git a/posix/sched_gets.c b/posix/sched_gets.c
index dc8c2766e0..f2de610b44 100644
--- a/posix/sched_gets.c
+++ b/posix/sched_gets.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sched.h>
diff --git a/posix/sched_primax.c b/posix/sched_primax.c
index 387896a7d3..2e0872b44a 100644
--- a/posix/sched_primax.c
+++ b/posix/sched_primax.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sched.h>
diff --git a/posix/sched_primin.c b/posix/sched_primin.c
index e57536ba15..bc4b7aa5a8 100644
--- a/posix/sched_primin.c
+++ b/posix/sched_primin.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sched.h>
diff --git a/posix/sched_rr_gi.c b/posix/sched_rr_gi.c
index e22371c301..c692d8e8e0 100644
--- a/posix/sched_rr_gi.c
+++ b/posix/sched_rr_gi.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sched.h>
diff --git a/posix/sched_setaffinity.c b/posix/sched_setaffinity.c
index e21b75a26e..b238f0d4fc 100644
--- a/posix/sched_setaffinity.c
+++ b/posix/sched_setaffinity.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/types.h>
diff --git a/posix/sched_setp.c b/posix/sched_setp.c
index 0e53e09c5c..f1835db53a 100644
--- a/posix/sched_setp.c
+++ b/posix/sched_setp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/types.h>
diff --git a/posix/sched_sets.c b/posix/sched_sets.c
index 556ed9a7bd..789f2b038c 100644
--- a/posix/sched_sets.c
+++ b/posix/sched_sets.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sched.h>
diff --git a/posix/sched_yield.c b/posix/sched_yield.c
index 6e39ce413e..c0957fdda9 100644
--- a/posix/sched_yield.c
+++ b/posix/sched_yield.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sched.h>
diff --git a/posix/setgid.c b/posix/setgid.c
index 782614aebf..b679ebc85f 100644
--- a/posix/setgid.c
+++ b/posix/setgid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/posix/setpgid.c b/posix/setpgid.c
index 5bdf7cc044..b0796efdcc 100644
--- a/posix/setpgid.c
+++ b/posix/setpgid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/posix/setpgrp.c b/posix/setpgrp.c
index 5900f8b921..d2b19490fd 100644
--- a/posix/setpgrp.c
+++ b/posix/setpgrp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
diff --git a/posix/setresgid.c b/posix/setresgid.c
index 7f617619d8..3ef357197e 100644
--- a/posix/setresgid.c
+++ b/posix/setresgid.c
@@ -1,5 +1,5 @@
/* setresgid -- set real group ID, effective group ID, and saved-set group ID
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/posix/setresuid.c b/posix/setresuid.c
index 0f3e1e8dbe..7ff87b07f7 100644
--- a/posix/setresuid.c
+++ b/posix/setresuid.c
@@ -1,5 +1,5 @@
/* setresuid -- set real user ID, effective user ID, and saved-set user ID
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/posix/setsid.c b/posix/setsid.c
index c365c6dd49..8b28797ee3 100644
--- a/posix/setsid.c
+++ b/posix/setsid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/posix/setuid.c b/posix/setuid.c
index 531a384ff4..f246739818 100644
--- a/posix/setuid.c
+++ b/posix/setuid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/posix/sleep.c b/posix/sleep.c
index 48fd8e15ae..2d87fe6b32 100644
--- a/posix/sleep.c
+++ b/posix/sleep.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <signal.h>
#include <time.h>
diff --git a/posix/spawn.c b/posix/spawn.c
index 51f67b2755..0cb65c014b 100644
--- a/posix/spawn.c
+++ b/posix/spawn.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <spawn.h>
#include "spawn_int.h"
@@ -30,6 +30,7 @@ __posix_spawn (pid_t *pid, const char *path,
return __spawni (pid, path, file_actions, attrp, argv, envp, 0);
}
versioned_symbol (libc, __posix_spawn, posix_spawn, GLIBC_2_15);
+libc_hidden_def (__posix_spawn)
#if SHLIB_COMPAT (libc, GLIBC_2_2, GLIBC_2_15)
diff --git a/posix/spawn.h b/posix/spawn.h
index aafb27611c..dc38f19cb7 100644
--- a/posix/spawn.h
+++ b/posix/spawn.h
@@ -1,5 +1,5 @@
/* Definitions for POSIX spawn interface.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SPAWN_H
#define _SPAWN_H 1
@@ -75,7 +75,8 @@ extern int posix_spawn (pid_t *__restrict __pid,
__file_actions,
const posix_spawnattr_t *__restrict __attrp,
char *const __argv[__restrict_arr],
- char *const __envp[__restrict_arr]);
+ char *const __envp[__restrict_arr])
+ __nonnull ((2, 5));
/* Similar to `posix_spawn' but search for FILE in the PATH.
@@ -84,85 +85,97 @@ extern int posix_spawn (pid_t *__restrict __pid,
extern int posix_spawnp (pid_t *__pid, const char *__file,
const posix_spawn_file_actions_t *__file_actions,
const posix_spawnattr_t *__attrp,
- char *const __argv[], char *const __envp[]);
+ char *const __argv[], char *const __envp[])
+ __nonnull ((2, 5));
/* Initialize data structure with attributes for `spawn' to default values. */
-extern int posix_spawnattr_init (posix_spawnattr_t *__attr) __THROW;
+extern int posix_spawnattr_init (posix_spawnattr_t *__attr)
+ __THROW __nonnull ((1));
/* Free resources associated with ATTR. */
-extern int posix_spawnattr_destroy (posix_spawnattr_t *__attr) __THROW;
+extern int posix_spawnattr_destroy (posix_spawnattr_t *__attr)
+ __THROW __nonnull ((1));
/* Store signal mask for signals with default handling from ATTR in
SIGDEFAULT. */
extern int posix_spawnattr_getsigdefault (const posix_spawnattr_t *
__restrict __attr,
sigset_t *__restrict __sigdefault)
- __THROW;
+ __THROW __nonnull ((1, 2));
/* Set signal mask for signals with default handling in ATTR to SIGDEFAULT. */
extern int posix_spawnattr_setsigdefault (posix_spawnattr_t *__restrict __attr,
const sigset_t *__restrict
__sigdefault)
- __THROW;
+ __THROW __nonnull ((1, 2));
/* Store signal mask for the new process from ATTR in SIGMASK. */
extern int posix_spawnattr_getsigmask (const posix_spawnattr_t *__restrict
__attr,
- sigset_t *__restrict __sigmask) __THROW;
+ sigset_t *__restrict __sigmask)
+ __THROW __nonnull ((1, 2));
/* Set signal mask for the new process in ATTR to SIGMASK. */
extern int posix_spawnattr_setsigmask (posix_spawnattr_t *__restrict __attr,
const sigset_t *__restrict __sigmask)
- __THROW;
+ __THROW __nonnull ((1, 2));
/* Get flag word from the attribute structure. */
extern int posix_spawnattr_getflags (const posix_spawnattr_t *__restrict
__attr,
- short int *__restrict __flags) __THROW;
+ short int *__restrict __flags)
+ __THROW __nonnull ((1, 2));
/* Store flags in the attribute structure. */
extern int posix_spawnattr_setflags (posix_spawnattr_t *_attr,
- short int __flags) __THROW;
+ short int __flags)
+ __THROW __nonnull ((1));
/* Get process group ID from the attribute structure. */
extern int posix_spawnattr_getpgroup (const posix_spawnattr_t *__restrict
__attr, pid_t *__restrict __pgroup)
- __THROW;
+ __THROW __nonnull ((1, 2));
/* Store process group ID in the attribute structure. */
extern int posix_spawnattr_setpgroup (posix_spawnattr_t *__attr,
- pid_t __pgroup) __THROW;
+ pid_t __pgroup)
+ __THROW __nonnull ((1));
/* Get scheduling policy from the attribute structure. */
extern int posix_spawnattr_getschedpolicy (const posix_spawnattr_t *
__restrict __attr,
int *__restrict __schedpolicy)
- __THROW;
+ __THROW __nonnull ((1, 2));
/* Store scheduling policy in the attribute structure. */
extern int posix_spawnattr_setschedpolicy (posix_spawnattr_t *__attr,
- int __schedpolicy) __THROW;
+ int __schedpolicy)
+ __THROW __nonnull ((1));
/* Get scheduling parameters from the attribute structure. */
extern int posix_spawnattr_getschedparam (const posix_spawnattr_t *
__restrict __attr,
struct sched_param *__restrict
- __schedparam) __THROW;
+ __schedparam)
+ __THROW __nonnull ((1, 2));
/* Store scheduling parameters in the attribute structure. */
extern int posix_spawnattr_setschedparam (posix_spawnattr_t *__restrict __attr,
const struct sched_param *
- __restrict __schedparam) __THROW;
+ __restrict __schedparam)
+ __THROW __nonnull ((1, 2));
/* Initialize data structure for file attribute for `spawn' call. */
extern int posix_spawn_file_actions_init (posix_spawn_file_actions_t *
- __file_actions) __THROW;
+ __file_actions)
+ __THROW __nonnull ((1));
/* Free resources associated with FILE-ACTIONS. */
extern int posix_spawn_file_actions_destroy (posix_spawn_file_actions_t *
- __file_actions) __THROW;
+ __file_actions)
+ __THROW __nonnull ((1));
/* Add an action to FILE-ACTIONS which tells the implementation to call
`open' for the given file during the `spawn' call. */
@@ -171,19 +184,36 @@ extern int posix_spawn_file_actions_addopen (posix_spawn_file_actions_t *
int __fd,
const char *__restrict __path,
int __oflag, mode_t __mode)
- __THROW;
+ __THROW __nonnull ((1, 3));
/* Add an action to FILE-ACTIONS which tells the implementation to call
`close' for the given file descriptor during the `spawn' call. */
extern int posix_spawn_file_actions_addclose (posix_spawn_file_actions_t *
__file_actions, int __fd)
- __THROW;
+ __THROW __nonnull ((1));
/* Add an action to FILE-ACTIONS which tells the implementation to call
`dup2' for the given file descriptors during the `spawn' call. */
extern int posix_spawn_file_actions_adddup2 (posix_spawn_file_actions_t *
__file_actions,
- int __fd, int __newfd) __THROW;
+ int __fd, int __newfd)
+ __THROW __nonnull ((1));
+
+#ifdef __USE_GNU
+/* Add an action changing the directory to PATH during spawn. This
+ affects the subsequent file actions. */
+extern int posix_spawn_file_actions_addchdir_np (posix_spawn_file_actions_t *
+ __restrict __actions,
+ const char *__restrict __path)
+ __THROW __nonnull ((1, 2));
+
+/* Add an action changing the directory to FD during spawn. This
+ affects the subsequent file actions. FD is not duplicated and must
+ be open when the file action is executed. */
+extern int posix_spawn_file_actions_addfchdir_np (posix_spawn_file_actions_t *,
+ int __fd)
+ __THROW __nonnull ((1));
+#endif
__END_DECLS
diff --git a/posix/spawn_faction_addchdir.c b/posix/spawn_faction_addchdir.c
new file mode 100644
index 0000000000..c08e22a171
--- /dev/null
+++ b/posix/spawn_faction_addchdir.c
@@ -0,0 +1,53 @@
+/* Add a directory change to a file action list for posix_spawn.
+ Copyright (C) 2000-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <spawn.h>
+#include <string.h>
+
+#include "spawn_int.h"
+
+int
+posix_spawn_file_actions_addchdir_np (posix_spawn_file_actions_t *file_actions,
+ const char *path)
+{
+ struct __spawn_action *rec;
+
+ char *path_copy = __strdup (path);
+ if (path_copy == NULL)
+ return ENOMEM;
+
+ /* Allocate more memory if needed. */
+ if (file_actions->__used == file_actions->__allocated
+ && __posix_spawn_file_actions_realloc (file_actions) != 0)
+ {
+ /* This can only mean we ran out of memory. */
+ free (path_copy);
+ return ENOMEM;
+ }
+
+ /* Add the new value. */
+ rec = &file_actions->__actions[file_actions->__used];
+ rec->tag = spawn_do_chdir;
+ rec->action.chdir_action.path = path_copy;
+
+ /* Account for the new entry. */
+ ++file_actions->__used;
+
+ return 0;
+}
diff --git a/posix/spawn_faction_addclose.c b/posix/spawn_faction_addclose.c
index 21081e19b5..c7842d0de0 100644
--- a/posix/spawn_faction_addclose.c
+++ b/posix/spawn_faction_addclose.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <spawn.h>
@@ -24,8 +24,8 @@
/* Add an action to FILE-ACTIONS which tells the implementation to call
`close' for the given file descriptor during the `spawn' call. */
int
-posix_spawn_file_actions_addclose (posix_spawn_file_actions_t *file_actions,
- int fd)
+__posix_spawn_file_actions_addclose (posix_spawn_file_actions_t *file_actions,
+ int fd)
{
struct __spawn_action *rec;
@@ -48,3 +48,5 @@ posix_spawn_file_actions_addclose (posix_spawn_file_actions_t *file_actions,
return 0;
}
+weak_alias (__posix_spawn_file_actions_addclose,
+ posix_spawn_file_actions_addclose)
diff --git a/posix/spawn_faction_adddup2.c b/posix/spawn_faction_adddup2.c
index 363bc29ae5..5f5b4b28ef 100644
--- a/posix/spawn_faction_adddup2.c
+++ b/posix/spawn_faction_adddup2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <spawn.h>
@@ -24,8 +24,8 @@
/* Add an action to FILE-ACTIONS which tells the implementation to call
`dup2' for the given file descriptors during the `spawn' call. */
int
-posix_spawn_file_actions_adddup2 (posix_spawn_file_actions_t *file_actions,
- int fd, int newfd)
+__posix_spawn_file_actions_adddup2 (posix_spawn_file_actions_t *file_actions,
+ int fd, int newfd)
{
struct __spawn_action *rec;
@@ -49,3 +49,5 @@ posix_spawn_file_actions_adddup2 (posix_spawn_file_actions_t *file_actions,
return 0;
}
+weak_alias (__posix_spawn_file_actions_adddup2,
+ posix_spawn_file_actions_adddup2)
diff --git a/posix/spawn_faction_addfchdir.c b/posix/spawn_faction_addfchdir.c
new file mode 100644
index 0000000000..e985f23636
--- /dev/null
+++ b/posix/spawn_faction_addfchdir.c
@@ -0,0 +1,46 @@
+/* Add a directory change to a file action list for posix_spawn.
+ Copyright (C) 2000-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <spawn.h>
+#include <string.h>
+
+#include "spawn_int.h"
+
+int
+posix_spawn_file_actions_addfchdir_np (posix_spawn_file_actions_t *actions,
+ int fd)
+{
+ struct __spawn_action *rec;
+
+ /* Allocate more memory if needed. */
+ if (actions->__used == actions->__allocated
+ && __posix_spawn_file_actions_realloc (actions) != 0)
+ /* This can only mean we ran out of memory. */
+ return ENOMEM;
+
+ /* Add the new value. */
+ rec = &actions->__actions[actions->__used];
+ rec->tag = spawn_do_fchdir;
+ rec->action.fchdir_action.fd = fd;
+
+ /* Account for the new entry. */
+ ++actions->__used;
+
+ return 0;
+}
diff --git a/posix/spawn_faction_addopen.c b/posix/spawn_faction_addopen.c
index 9f9c01faad..4fd64bb005 100644
--- a/posix/spawn_faction_addopen.c
+++ b/posix/spawn_faction_addopen.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
@@ -25,9 +25,9 @@
/* Add an action to FILE-ACTIONS which tells the implementation to call
`open' for the given file during the `spawn' call. */
int
-posix_spawn_file_actions_addopen (posix_spawn_file_actions_t *file_actions,
- int fd, const char *path, int oflag,
- mode_t mode)
+__posix_spawn_file_actions_addopen (posix_spawn_file_actions_t *file_actions,
+ int fd, const char *path, int oflag,
+ mode_t mode)
{
struct __spawn_action *rec;
@@ -60,3 +60,5 @@ posix_spawn_file_actions_addopen (posix_spawn_file_actions_t *file_actions,
return 0;
}
+weak_alias (__posix_spawn_file_actions_addopen,
+ posix_spawn_file_actions_addopen)
diff --git a/posix/spawn_faction_destroy.c b/posix/spawn_faction_destroy.c
index 46061ee347..d30804a1e3 100644
--- a/posix/spawn_faction_destroy.c
+++ b/posix/spawn_faction_destroy.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <spawn.h>
#include <stdlib.h>
@@ -22,7 +22,7 @@
/* Deallocate the file actions. */
int
-posix_spawn_file_actions_destroy (posix_spawn_file_actions_t *file_actions)
+__posix_spawn_file_actions_destroy (posix_spawn_file_actions_t *file_actions)
{
/* Free the paths in the open actions. */
for (int i = 0; i < file_actions->__used; ++i)
@@ -33,8 +33,12 @@ posix_spawn_file_actions_destroy (posix_spawn_file_actions_t *file_actions)
case spawn_do_open:
free (sa->action.open_action.path);
break;
+ case spawn_do_chdir:
+ free (sa->action.chdir_action.path);
+ break;
case spawn_do_close:
case spawn_do_dup2:
+ case spawn_do_fchdir:
/* No cleanup required. */
break;
}
@@ -44,3 +48,5 @@ posix_spawn_file_actions_destroy (posix_spawn_file_actions_t *file_actions)
free (file_actions->__actions);
return 0;
}
+weak_alias (__posix_spawn_file_actions_destroy,
+ posix_spawn_file_actions_destroy)
diff --git a/posix/spawn_faction_init.c b/posix/spawn_faction_init.c
index ddb42e6a77..a5521aed25 100644
--- a/posix/spawn_faction_init.c
+++ b/posix/spawn_faction_init.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <spawn.h>
@@ -45,9 +45,10 @@ __posix_spawn_file_actions_realloc (posix_spawn_file_actions_t *file_actions)
/* Initialize data structure for file attribute for `spawn' call. */
int
-posix_spawn_file_actions_init (posix_spawn_file_actions_t *file_actions)
+__posix_spawn_file_actions_init (posix_spawn_file_actions_t *file_actions)
{
/* Simply clear all the elements. */
memset (file_actions, '\0', sizeof (*file_actions));
return 0;
}
+weak_alias (__posix_spawn_file_actions_init, posix_spawn_file_actions_init)
diff --git a/posix/spawn_int.h b/posix/spawn_int.h
index 171f67c649..2655fec084 100644
--- a/posix/spawn_int.h
+++ b/posix/spawn_int.h
@@ -1,5 +1,5 @@
/* Internal definitions for posix_spawn functionality.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SPAWN_INT_H
#define _SPAWN_INT_H
@@ -29,7 +29,9 @@ struct __spawn_action
{
spawn_do_close,
spawn_do_dup2,
- spawn_do_open
+ spawn_do_open,
+ spawn_do_chdir,
+ spawn_do_fchdir,
} tag;
union
@@ -50,6 +52,14 @@ struct __spawn_action
int oflag;
mode_t mode;
} open_action;
+ struct
+ {
+ char *path;
+ } chdir_action;
+ struct
+ {
+ int fd;
+ } fchdir_action;
} action;
};
diff --git a/posix/spawn_valid_fd.c b/posix/spawn_valid_fd.c
index 81824ef23e..e03c5c28f1 100644
--- a/posix/spawn_valid_fd.c
+++ b/posix/spawn_valid_fd.c
@@ -1,5 +1,5 @@
/* File descriptor validity check for posix_spawn file actions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "spawn_int.h"
diff --git a/posix/spawnattr_destroy.c b/posix/spawnattr_destroy.c
index 603e00fffe..7eecf8c546 100644
--- a/posix/spawnattr_destroy.c
+++ b/posix/spawnattr_destroy.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -13,14 +13,15 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <spawn.h>
/* Initialize data structure for file attribute for `spawn' call. */
int
-posix_spawnattr_destroy (posix_spawnattr_t *attr)
+__posix_spawnattr_destroy (posix_spawnattr_t *attr)
{
/* Nothing to do in the moment. */
return 0;
}
+weak_alias (__posix_spawnattr_destroy, posix_spawnattr_destroy)
diff --git a/posix/spawnattr_getdefault.c b/posix/spawnattr_getdefault.c
index bd6a5e653f..df3e0a7fec 100644
--- a/posix/spawnattr_getdefault.c
+++ b/posix/spawnattr_getdefault.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <spawn.h>
#include <string.h>
diff --git a/posix/spawnattr_getflags.c b/posix/spawnattr_getflags.c
index 899eadff96..2372893891 100644
--- a/posix/spawnattr_getflags.c
+++ b/posix/spawnattr_getflags.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <spawn.h>
#include <string.h>
diff --git a/posix/spawnattr_getpgroup.c b/posix/spawnattr_getpgroup.c
index 052aa2f52f..bbcfebf904 100644
--- a/posix/spawnattr_getpgroup.c
+++ b/posix/spawnattr_getpgroup.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <spawn.h>
#include <string.h>
diff --git a/posix/spawnattr_getschedparam.c b/posix/spawnattr_getschedparam.c
index 73897249b0..f1bade71c3 100644
--- a/posix/spawnattr_getschedparam.c
+++ b/posix/spawnattr_getschedparam.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <spawn.h>
#include <string.h>
diff --git a/posix/spawnattr_getschedpolicy.c b/posix/spawnattr_getschedpolicy.c
index d314adb91a..b44f1e9a4d 100644
--- a/posix/spawnattr_getschedpolicy.c
+++ b/posix/spawnattr_getschedpolicy.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <spawn.h>
#include <string.h>
diff --git a/posix/spawnattr_getsigmask.c b/posix/spawnattr_getsigmask.c
index 091946b6bf..ac2d88620a 100644
--- a/posix/spawnattr_getsigmask.c
+++ b/posix/spawnattr_getsigmask.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <spawn.h>
#include <string.h>
diff --git a/posix/spawnattr_init.c b/posix/spawnattr_init.c
index bab464e62b..3ba4ba72d6 100644
--- a/posix/spawnattr_init.c
+++ b/posix/spawnattr_init.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -13,14 +13,14 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <spawn.h>
#include <string.h>
/* Initialize data structure for file attribute for `spawn' call. */
int
-posix_spawnattr_init (posix_spawnattr_t *attr)
+__posix_spawnattr_init (posix_spawnattr_t *attr)
{
/* All elements have to be initialized to the default values which
is generally zero. */
@@ -28,3 +28,4 @@ posix_spawnattr_init (posix_spawnattr_t *attr)
return 0;
}
+weak_alias (__posix_spawnattr_init, posix_spawnattr_init)
diff --git a/posix/spawnattr_setdefault.c b/posix/spawnattr_setdefault.c
index c77cda59be..f280883f33 100644
--- a/posix/spawnattr_setdefault.c
+++ b/posix/spawnattr_setdefault.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -13,18 +13,19 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <spawn.h>
#include <string.h>
/* Set signal mask for signals with default handling in ATTR to SIGDEFAULT. */
int
-posix_spawnattr_setsigdefault (posix_spawnattr_t *attr,
- const sigset_t *sigdefault)
+__posix_spawnattr_setsigdefault (posix_spawnattr_t *attr,
+ const sigset_t *sigdefault)
{
/* Copy the sigset_t data to the user buffer. */
memcpy (&attr->__sd, sigdefault, sizeof (sigset_t));
return 0;
}
+weak_alias (__posix_spawnattr_setsigdefault, posix_spawnattr_setsigdefault)
diff --git a/posix/spawnattr_setflags.c b/posix/spawnattr_setflags.c
index cf9a60181d..8a40a5bf32 100644
--- a/posix/spawnattr_setflags.c
+++ b/posix/spawnattr_setflags.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <spawn.h>
@@ -30,7 +30,7 @@
/* Store flags in the attribute structure. */
int
-posix_spawnattr_setflags (posix_spawnattr_t *attr, short int flags)
+__posix_spawnattr_setflags (posix_spawnattr_t *attr, short int flags)
{
/* Check no invalid bits are set. */
if (flags & ~ALL_FLAGS)
@@ -41,3 +41,4 @@ posix_spawnattr_setflags (posix_spawnattr_t *attr, short int flags)
return 0;
}
+weak_alias (__posix_spawnattr_setflags, posix_spawnattr_setflags)
diff --git a/posix/spawnattr_setpgroup.c b/posix/spawnattr_setpgroup.c
index 63f13ae9ba..404e5eb89d 100644
--- a/posix/spawnattr_setpgroup.c
+++ b/posix/spawnattr_setpgroup.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <spawn.h>
#include <string.h>
diff --git a/posix/spawnattr_setschedparam.c b/posix/spawnattr_setschedparam.c
index b5e4a7ecb6..3a4a6bc0ea 100644
--- a/posix/spawnattr_setschedparam.c
+++ b/posix/spawnattr_setschedparam.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <spawn.h>
#include <string.h>
diff --git a/posix/spawnattr_setschedpolicy.c b/posix/spawnattr_setschedpolicy.c
index cfc46c06bb..9dc69f203a 100644
--- a/posix/spawnattr_setschedpolicy.c
+++ b/posix/spawnattr_setschedpolicy.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <spawn.h>
diff --git a/posix/spawnattr_setsigmask.c b/posix/spawnattr_setsigmask.c
index 7ae81ad470..255e0bd63c 100644
--- a/posix/spawnattr_setsigmask.c
+++ b/posix/spawnattr_setsigmask.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -13,14 +13,14 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <spawn.h>
#include <string.h>
/* Set signal mask for the new process in ATTR to SIGMASK. */
int
-posix_spawnattr_setsigmask (posix_spawnattr_t *attr,
+__posix_spawnattr_setsigmask (posix_spawnattr_t *attr,
const sigset_t *sigmask)
{
/* Copy the sigset_t data to the user buffer. */
@@ -28,3 +28,4 @@ posix_spawnattr_setsigmask (posix_spawnattr_t *attr,
return 0;
}
+weak_alias (__posix_spawnattr_setsigmask, posix_spawnattr_setsigmask)
diff --git a/posix/spawni.c b/posix/spawni.c
index 3c99f09705..0478b84d98 100644
--- a/posix/spawni.c
+++ b/posix/spawni.c
@@ -1,5 +1,5 @@
/* Guts of POSIX spawn interface. Stub version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <spawn.h>
diff --git a/posix/spawnp.c b/posix/spawnp.c
index b26a5318b3..8801bd2d45 100644
--- a/posix/spawnp.c
+++ b/posix/spawnp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <spawn.h>
#include "spawn_int.h"
diff --git a/posix/streams-compat.c b/posix/streams-compat.c
new file mode 100644
index 0000000000..05c8f41a1b
--- /dev/null
+++ b/posix/streams-compat.c
@@ -0,0 +1,101 @@
+/* Compatibility symbols for the unimplemented XSI STREAMS extension.
+ Copyright (C) 1998-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <shlib-compat.h>
+
+#if SHLIB_COMPAT (libc, GLIBC_2_1, GLIBC_2_30)
+
+# include <errno.h>
+# include <fcntl.h>
+
+struct strbuf;
+
+int
+attribute_compat_text_section
+fattach (int fildes, const char *path)
+{
+ __set_errno (ENOSYS);
+ return -1;
+}
+compat_symbol (libc, fattach, fattach, GLIBC_2_1);
+
+int
+attribute_compat_text_section
+fdetach (const char *path)
+{
+ __set_errno (ENOSYS);
+ return -1;
+}
+compat_symbol (libc, fdetach, fdetach, GLIBC_2_1);
+
+
+int
+attribute_compat_text_section
+getmsg (int fildes, struct strbuf *ctlptr, struct strbuf *dataptr, int *flagsp)
+{
+ __set_errno (ENOSYS);
+ return -1;
+}
+compat_symbol (libc, getmsg, getmsg, GLIBC_2_1);
+
+int
+attribute_compat_text_section
+getpmsg (int fildes, struct strbuf *ctlptr, struct strbuf *dataptr, int *bandp,
+ int *flagsp)
+{
+ __set_errno (ENOSYS);
+ return -1;
+}
+compat_symbol (libc, getpmsg, getpmsg, GLIBC_2_1);
+
+int
+attribute_compat_text_section
+isastream (int fildes)
+{
+ /* In general we do not have a STREAMS implementation and therefore
+ return 0. But for invalid file descriptors we have to return an
+ error. */
+ if (__fcntl (fildes, F_GETFD) < 0)
+ return -1;
+
+ /* No STREAM. */
+ return 0;
+}
+compat_symbol (libc, isastream, isastream, GLIBC_2_1);
+
+int
+attribute_compat_text_section
+putmsg (int fildes, const struct strbuf *ctlptr, const struct strbuf *dataptr,
+ int flags)
+{
+ __set_errno (ENOSYS);
+ return -1;
+}
+compat_symbol (libc, putmsg, putmsg, GLIBC_2_1);
+
+int
+attribute_compat_text_section
+putpmsg (int fildes, const struct strbuf *ctlptr, const struct strbuf *dataptr,
+ int band, int flags)
+{
+ __set_errno (ENOSYS);
+ return -1;
+}
+compat_symbol (libc, putpmsg, putpmsg, GLIBC_2_1);
+
+#endif /* SHLIB_COMPAT */
diff --git a/posix/sys/times.h b/posix/sys/times.h
index d2db5689a2..584a9d11f6 100644
--- a/posix/sys/times.h
+++ b/posix/sys/times.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* POSIX Standard: 4.5.2 Process Times <sys/times.h>
diff --git a/posix/sys/types.h b/posix/sys/types.h
index db524d6cd1..13fe292f8b 100644
--- a/posix/sys/types.h
+++ b/posix/sys/types.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
@@ -154,37 +154,20 @@ typedef unsigned int uint;
#include <bits/stdint-intn.h>
-#if !__GNUC_PREREQ (2, 7)
-
/* These were defined by ISO C without the first `_'. */
-typedef unsigned char u_int8_t;
-typedef unsigned short int u_int16_t;
-typedef unsigned int u_int32_t;
-# if __WORDSIZE == 64
-typedef unsigned long int u_int64_t;
-# else
-__extension__ typedef unsigned long long int u_int64_t;
-# endif
-
-typedef int register_t;
-
-#else
-
-/* For GCC 2.7 and later, we can use specific type-size attributes. */
-# define __u_intN_t(N, MODE) \
- typedef unsigned int u_int##N##_t __attribute__ ((__mode__ (MODE)))
-
-__u_intN_t (8, __QI__);
-__u_intN_t (16, __HI__);
-__u_intN_t (32, __SI__);
-__u_intN_t (64, __DI__);
+typedef __uint8_t u_int8_t;
+typedef __uint16_t u_int16_t;
+typedef __uint32_t u_int32_t;
+typedef __uint64_t u_int64_t;
+#if __GNUC_PREREQ (2, 7)
typedef int register_t __attribute__ ((__mode__ (__word__)));
-
+#else
+typedef int register_t;
+#endif
/* Some code from BIND tests this macro to see if the types above are
defined. */
-#endif
#define __BIT_TYPES_DEFINED__ 1
diff --git a/posix/sys/utsname.h b/posix/sys/utsname.h
index 4f7b16da64..c26394adad 100644
--- a/posix/sys/utsname.h
+++ b/posix/sys/utsname.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* POSIX Standard: 4.4 System Identification <sys/utsname.h>
diff --git a/posix/sys/wait.h b/posix/sys/wait.h
index efd6c09020..7b1b54edd0 100644
--- a/posix/sys/wait.h
+++ b/posix/sys/wait.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* POSIX Standard: 3.2.1 Wait for Process Termination <sys/wait.h>
diff --git a/posix/sysconf.c b/posix/sysconf.c
index 09ebd95a98..bbbdab64cf 100644
--- a/posix/sysconf.c
+++ b/posix/sysconf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <grp.h>
diff --git a/posix/tar.h b/posix/tar.h
index 4e7364239a..f778b18f75 100644
--- a/posix/tar.h
+++ b/posix/tar.h
@@ -1,5 +1,5 @@
/* Extended tar format from POSIX.1.
- Copyright (C) 1992-2018 Free Software Foundation, Inc.
+ Copyright (C) 1992-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by David J. MacKenzie.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _TAR_H
#define _TAR_H 1
diff --git a/posix/test-errno.c b/posix/test-errno.c
index 8c43ae9bc5..094fab3937 100644
--- a/posix/test-errno.c
+++ b/posix/test-errno.c
@@ -1,6 +1,6 @@
/* Test that failing system calls do set errno to the correct value.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <limits.h>
diff --git a/posix/test-ssize-max.c b/posix/test-ssize-max.c
index 7cfd090aef..9368cb962f 100644
--- a/posix/test-ssize-max.c
+++ b/posix/test-ssize-max.c
@@ -1,5 +1,5 @@
/* Test SSIZE_MAX value and type.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <limits.h>
#include <sys/types.h>
diff --git a/posix/testcases.h b/posix/testcases.h
deleted file mode 100644
index 834f53049f..0000000000
--- a/posix/testcases.h
+++ /dev/null
@@ -1,167 +0,0 @@
- {0, "(.*)*\\1", "xx"},
- {0, "^", ""},
- {0, "$", ""},
- {0, "^$", ""},
- {0, "^a$", "a"},
- {0, "abc", "abc"},
- {1, "abc", "xbc"},
- {1, "abc", "axc"},
- {1, "abc", "abx"},
- {0, "abc", "xabcy"},
- {0, "abc", "ababc"},
- {0, "ab*c", "abc"},
- {0, "ab*bc", "abc"},
- {0, "ab*bc", "abbc"},
- {0, "ab*bc", "abbbbc"},
- {0, "ab+bc", "abbc"},
- {1, "ab+bc", "abc"},
- {1, "ab+bc", "abq"},
- {0, "ab+bc", "abbbbc"},
- {0, "ab?bc", "abbc"},
- {0, "ab?bc", "abc"},
- {1, "ab?bc", "abbbbc"},
- {0, "ab?c", "abc"},
- {0, "^abc$", "abc"},
- {1, "^abc$", "abcc"},
- {0, "^abc", "abcc"},
- {1, "^abc$", "aabc"},
- {0, "abc$", "aabc"},
- {0, "^", "abc"},
- {0, "$", "abc"},
- {0, "a.c", "abc"},
- {0, "a.c", "axc"},
- {0, "a.*c", "axyzc"},
- {1, "a.*c", "axyzd"},
- {1, "a[bc]d", "abc"},
- {0, "a[bc]d", "abd"},
- {1, "a[b-d]e", "abd"},
- {0, "a[b-d]e", "ace"},
- {0, "a[b-d]", "aac"},
- {0, "a[-b]", "a-"},
- {0, "a[b-]", "a-"},
- {2, "a[b-a]", "-"},
- {2, "a[]b", "-"},
- {2, "a[", "-"},
- {0, "a]", "a]"},
- {0, "a[]]b", "a]b"},
- {0, "a[^bc]d", "aed"},
- {1, "a[^bc]d", "abd"},
- {0, "a[^-b]c", "adc"},
- {1, "a[^-b]c", "a-c"},
- {1, "a[^]b]c", "a]c"},
- {0, "a[^]b]c", "adc"},
- {0, "ab|cd", "abc"},
- {0, "ab|cd", "abcd"},
- {0, "()ef", "def"},
- {0, "()*", "-"},
- {2, "*a", "-"},
- {2, "^*", "-"},
- {2, "$*", "-"},
- {2, "(*)b", "-"},
- {1, "$b", "b"},
- {2, "a\\", "-"},
- {0, "a\\(b", "a(b"},
- {0, "a\\(*b", "ab"},
- {0, "a\\(*b", "a((b"},
- {1, "a\\x", "a\\x"},
- {1, "abc)", "-"},
- {2, "(abc", "-"},
- {0, "((a))", "abc"},
- {0, "(a)b(c)", "abc"},
- {0, "a+b+c", "aabbabc"},
- {0, "a**", "-"},
- {0, "a*?", "-"},
- {0, "(a*)*", "-"},
- {0, "(a*)+", "-"},
- {0, "(a|)*", "-"},
- {0, "(a*|b)*", "-"},
- {0, "(a+|b)*", "ab"},
- {0, "(a+|b)+", "ab"},
- {0, "(a+|b)?", "ab"},
- {0, "[^ab]*", "cde"},
- {0, "(^)*", "-"},
- {0, "(ab|)*", "-"},
- {2, ")(", "-"},
- {1, "abc", ""},
- {1, "abc", ""},
- {0, "a*", ""},
- {0, "([abc])*d", "abbbcd"},
- {0, "([abc])*bcd", "abcd"},
- {0, "a|b|c|d|e", "e"},
- {0, "(a|b|c|d|e)f", "ef"},
- {0, "((a*|b))*", "-"},
- {0, "abcd*efg", "abcdefg"},
- {0, "ab*", "xabyabbbz"},
- {0, "ab*", "xayabbbz"},
- {0, "(ab|cd)e", "abcde"},
- {0, "[abhgefdc]ij", "hij"},
- {1, "^(ab|cd)e", "abcde"},
- {0, "(abc|)ef", "abcdef"},
- {0, "(a|b)c*d", "abcd"},
- {0, "(ab|ab*)bc", "abc"},
- {0, "a([bc]*)c*", "abc"},
- {0, "a([bc]*)(c*d)", "abcd"},
- {0, "a([bc]+)(c*d)", "abcd"},
- {0, "a([bc]*)(c+d)", "abcd"},
- {0, "a[bcd]*dcdcde", "adcdcde"},
- {1, "a[bcd]+dcdcde", "adcdcde"},
- {0, "(ab|a)b*c", "abc"},
- {0, "((a)(b)c)(d)", "abcd"},
- {0, "[A-Za-z_][A-Za-z0-9_]*", "alpha"},
- {0, "^a(bc+|b[eh])g|.h$", "abh"},
- {0, "(bc+d$|ef*g.|h?i(j|k))", "effgz"},
- {0, "(bc+d$|ef*g.|h?i(j|k))", "ij"},
- {1, "(bc+d$|ef*g.|h?i(j|k))", "effg"},
- {1, "(bc+d$|ef*g.|h?i(j|k))", "bcdd"},
- {0, "(bc+d$|ef*g.|h?i(j|k))", "reffgz"},
- {1, "((((((((((a))))))))))", "-"},
- {0, "(((((((((a)))))))))", "a"},
- {1, "multiple words of text", "uh-uh"},
- {0, "multiple words", "multiple words, yeah"},
- {0, "(.*)c(.*)", "abcde"},
- {1, "\\((.*),", "(.*)\\)"},
- {1, "[k]", "ab"},
- {0, "abcd", "abcd"},
- {0, "a(bc)d", "abcd"},
- {0, "a[-]?c", "ac"},
- {0, "(....).*\\1", "beriberi"},
- {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Muammar Qaddafi"},
- {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Mo'ammar Gadhafi"},
- {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Muammar Kaddafi"},
- {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Muammar Qadhafi"},
- {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Moammar El Kadhafi"},
- {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Muammar Gadafi"},
- {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Mu'ammar al-Qadafi"},
- {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Moamer El Kazzafi"},
- {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Moamar al-Gaddafi"},
- {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Mu'ammar Al Qathafi"},
- {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Muammar Al Qathafi"},
- {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Mo'ammar el-Gadhafi"},
- {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Moamar El Kadhafi"},
- {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Muammar al-Qadhafi"},
- {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Mu'ammar al-Qadhdhafi"},
- {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Mu'ammar Qadafi"},
- {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Moamar Gaddafi"},
- {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Mu'ammar Qadhdhafi"},
- {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Muammar Khaddafi"},
- {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Muammar al-Khaddafi"},
- {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Mu'amar al-Kadafi"},
- {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Muammar Ghaddafy"},
- {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Muammar Ghadafi"},
- {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Muammar Ghaddafi"},
- {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Muamar Kaddafi"},
- {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Muammar Quathafi"},
- {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Muammar Gheddafi"},
- {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Muamar Al-Kaddafi"},
- {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Moammar Khadafy "},
- {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Moammar Qudhafi"},
- {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Mu'ammar al-Qaddafi"},
- {0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Mulazim Awwal Mu'ammar Muhammad Abu Minyar al-Qadhafi"},
- {0, "[[:digit:]]+", "01234"},
- {1, "[[:alpha:]]+", "01234"},
- {0, "^[[:digit:]]*$", "01234"},
- {1, "^[[:digit:]]*$", "01234a"},
- {0, "^[[:alnum:]]*$", "01234a"},
- {0, "^[[:xdigit:]]*$", "01234a"},
- {1, "^[[:xdigit:]]*$", "01234g"},
- {0, "^[[:alnum:][:space:]]*$", "Hello world"},
diff --git a/posix/times.c b/posix/times.c
index df6297bf97..327cc25f76 100644
--- a/posix/times.c
+++ b/posix/times.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/times.h>
diff --git a/posix/tst-boost.c b/posix/tst-boost.c
index a3b1851c6e..d6859f9f73 100644
--- a/posix/tst-boost.c
+++ b/posix/tst-boost.c
@@ -1,5 +1,5 @@
/* Regular expression tests.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <mcheck.h>
diff --git a/posix/tst-chmod.c b/posix/tst-chmod.c
index 611a007822..e9074ba375 100644
--- a/posix/tst-chmod.c
+++ b/posix/tst-chmod.c
@@ -1,5 +1,5 @@
/* Test for chmod functions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dirent.h>
#include <errno.h>
@@ -369,9 +369,4 @@ do_test (int argc, char *argv[])
return result;
}
-
-/* We need a few seconds since we have a few sleeps in the code. */
-#define TIMEOUT 20
-
-
#include "../test-skeleton.c"
diff --git a/posix/tst-dir.c b/posix/tst-dir.c
index 794275dc4c..05aa973b10 100644
--- a/posix/tst-dir.c
+++ b/posix/tst-dir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dirent.h>
#include <errno.h>
diff --git a/posix/tst-exec.c b/posix/tst-exec.c
index fe8f0f1e77..c0375b1457 100644
--- a/posix/tst-exec.c
+++ b/posix/tst-exec.c
@@ -1,5 +1,5 @@
/* Tests for exec.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <error.h>
diff --git a/posix/tst-execvpe1.c b/posix/tst-execvpe1.c
index bf529dd438..58526ff04d 100644
--- a/posix/tst-execvpe1.c
+++ b/posix/tst-execvpe1.c
@@ -1,5 +1,5 @@
/* Check ENOENT failure for execvpe.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define EXECVP(file, argv) execvpe (file, argv, NULL)
#include <posix/tst-execvp1.c>
diff --git a/posix/tst-execvpe2.c b/posix/tst-execvpe2.c
index 439cde9ffa..1a733e3424 100644
--- a/posix/tst-execvpe2.c
+++ b/posix/tst-execvpe2.c
@@ -1,5 +1,5 @@
/* Check EACCES for execvpe.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define EXECVP(file, argv) execvpe (file, argv, NULL)
#include <posix/tst-execvp2.c>
diff --git a/posix/tst-execvpe3.c b/posix/tst-execvpe3.c
index d50615acb8..218b95b43b 100644
--- a/posix/tst-execvpe3.c
+++ b/posix/tst-execvpe3.c
@@ -1,5 +1,5 @@
/* Check script execution without shebang for execvpe.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define EXECVP(file, argv) execvpe (file, argv, NULL)
#include <posix/tst-execvp3.c>
diff --git a/posix/tst-execvpe4.c b/posix/tst-execvpe4.c
index 96f8ea94df..30bf5fc07e 100644
--- a/posix/tst-execvpe4.c
+++ b/posix/tst-execvpe4.c
@@ -1,5 +1,5 @@
/* Check unexistent binary for execvpe.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define EXECVP(file, argv) execvpe (file, argv, NULL)
#include <posix/tst-execvp4.c>
diff --git a/posix/tst-execvpe5.c b/posix/tst-execvpe5.c
index 044ceecacb..7217aa4b87 100644
--- a/posix/tst-execvpe5.c
+++ b/posix/tst-execvpe5.c
@@ -1,5 +1,5 @@
/* General tests for execpve.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/posix/tst-execvpe6.c b/posix/tst-execvpe6.c
index 8073aeaf36..387c0c640b 100644
--- a/posix/tst-execvpe6.c
+++ b/posix/tst-execvpe6.c
@@ -1,5 +1,5 @@
/* Check execvpe script argument handling.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
diff --git a/posix/tst-fexecve.c b/posix/tst-fexecve.c
index be4a09bf63..ac7b709eb8 100644
--- a/posix/tst-fexecve.c
+++ b/posix/tst-fexecve.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2017-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <errno.h>
diff --git a/posix/tst-fnmatch.c b/posix/tst-fnmatch.c
index 99d6ea1dc8..df68048f5a 100644
--- a/posix/tst-fnmatch.c
+++ b/posix/tst-fnmatch.c
@@ -1,5 +1,5 @@
/* Tests for fnmatch function.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <error.h>
diff --git a/posix/tst-fnmatch.input b/posix/tst-fnmatch.input
index dc2ca8d01a..8c5eb07e32 100644
--- a/posix/tst-fnmatch.input
+++ b/posix/tst-fnmatch.input
@@ -1,5 +1,5 @@
# Tests for fnmatch.
-# Copyright (C) 2000-2018 Free Software Foundation, Inc.
+# Copyright (C) 2000-2019 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# Contributes by Ulrich Drepper <drepper@redhat.com>.
#
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
# Derived from the IEEE 2003.2 text. The standard only contains some
diff --git a/posix/tst-fnmatch3.c b/posix/tst-fnmatch3.c
index ea1df76623..225e219e29 100644
--- a/posix/tst-fnmatch3.c
+++ b/posix/tst-fnmatch3.c
@@ -1,5 +1,5 @@
/* Test for fnmatch not reading past the end of the pattern.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fnmatch.h>
#include <sys/mman.h>
diff --git a/posix/tst-fnmatch4.c b/posix/tst-fnmatch4.c
new file mode 100644
index 0000000000..599422bde2
--- /dev/null
+++ b/posix/tst-fnmatch4.c
@@ -0,0 +1,41 @@
+/* Test for fnmatch handling of collating elements
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdio.h>
+#include <locale.h>
+#include <fnmatch.h>
+#include <support/check.h>
+
+static void
+do_test_locale (const char *locale)
+{
+ TEST_VERIFY_EXIT (setlocale (LC_ALL, locale) != NULL);
+
+ TEST_VERIFY (fnmatch ("[[.ch.]]", "ch", 0) == 0);
+}
+
+static int
+do_test (void)
+{
+ do_test_locale ("cs_CZ.ISO-8859-2");
+ do_test_locale ("cs_CZ.UTF-8");
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/posix/tst-fnmatch5.c b/posix/tst-fnmatch5.c
new file mode 100644
index 0000000000..1f72cf52b1
--- /dev/null
+++ b/posix/tst-fnmatch5.c
@@ -0,0 +1,46 @@
+/* Test for fnmatch handling of collating elements
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <fnmatch.h>
+#include <locale.h>
+#include <stdio.h>
+#include <string.h>
+#include <support/check.h>
+
+#define LENGTH 20000000
+
+static char pattern[LENGTH + 7];
+
+static int
+do_test (void)
+{
+ TEST_VERIFY_EXIT (setlocale (LC_ALL, "en_US.UTF-8") != NULL);
+
+ pattern[0] = '[';
+ pattern[1] = '[';
+ pattern[2] = '.';
+ memset (pattern + 3, 'a', LENGTH);
+ pattern[LENGTH + 3] = '.';
+ pattern[LENGTH + 4] = ']';
+ pattern[LENGTH + 5] = ']';
+ TEST_VERIFY (fnmatch (pattern, "a", 0) != 0);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/posix/tst-fork.c b/posix/tst-fork.c
index eb5c5442b1..78fca1554a 100644
--- a/posix/tst-fork.c
+++ b/posix/tst-fork.c
@@ -1,5 +1,5 @@
/* Tests for fork.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <error.h>
diff --git a/posix/tst-getaddrinfo.c b/posix/tst-getaddrinfo.c
index 1632f1c3a5..793a51e89a 100644
--- a/posix/tst-getaddrinfo.c
+++ b/posix/tst-getaddrinfo.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <string.h>
diff --git a/posix/tst-getaddrinfo4.c b/posix/tst-getaddrinfo4.c
index dc9e423448..83e008fe0f 100644
--- a/posix/tst-getaddrinfo4.c
+++ b/posix/tst-getaddrinfo4.c
@@ -1,5 +1,5 @@
/* Test getaddrinfo return value, [BZ #15339].
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <stdio.h>
@@ -64,5 +64,4 @@ do_test (void)
}
#define TEST_FUNCTION do_test ()
-#define TIMEOUT 10
#include "../test-skeleton.c"
diff --git a/posix/tst-getaddrinfo5.c b/posix/tst-getaddrinfo5.c
index f36121e87c..e3ed7a863b 100644
--- a/posix/tst-getaddrinfo5.c
+++ b/posix/tst-getaddrinfo5.c
@@ -1,5 +1,5 @@
/* Test host lookup with double dots at the end, [BZ #16469].
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <sys/socket.h>
@@ -66,5 +66,4 @@ test (void)
}
#define TEST_FUNCTION test ()
-#define TIMEOUT 10
#include "../test-skeleton.c"
diff --git a/posix/tst-getconf.sh b/posix/tst-getconf.sh
index b1c5dc8a87..9dbd709920 100644
--- a/posix/tst-getconf.sh
+++ b/posix/tst-getconf.sh
@@ -1,6 +1,6 @@
#!/bin/sh
# Test for getconf(1).
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-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
@@ -15,7 +15,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
set -e
diff --git a/posix/tst-getopt-cancel.c b/posix/tst-getopt-cancel.c
index 3c25a8e7c2..5f5cb4be52 100644
--- a/posix/tst-getopt-cancel.c
+++ b/posix/tst-getopt-cancel.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2017-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* fprintf is a cancellation point, but getopt is not supposed to be a
cancellation point, even when it prints error messages. */
diff --git a/posix/tst-glob-tilde.c b/posix/tst-glob-tilde.c
index 853b6896fe..e5bda11759 100644
--- a/posix/tst-glob-tilde.c
+++ b/posix/tst-glob-tilde.c
@@ -1,5 +1,5 @@
/* Check for GLOB_TIDLE heap allocation issues (bugs 22320, 22325, 22332).
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <glob.h>
#include <mcheck.h>
diff --git a/posix/tst-glob_lstat_compat.c b/posix/tst-glob_lstat_compat.c
index 22cd1f02f9..ed00a79a2a 100644
--- a/posix/tst-glob_lstat_compat.c
+++ b/posix/tst-glob_lstat_compat.c
@@ -1,5 +1,5 @@
/* Test glob compat symbol which avoid call GLOB_ALTDIRFUNC/gl_lstat.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <glob.h>
#include <errno.h>
diff --git a/posix/tst-glob_symlinks.c b/posix/tst-glob_symlinks.c
index df3baa8757..d8ab87e081 100644
--- a/posix/tst-glob_symlinks.c
+++ b/posix/tst-glob_symlinks.c
@@ -1,5 +1,5 @@
/* Test glob danglin symlink match (BZ #866).
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <string.h>
diff --git a/posix/tst-gnuglob-skeleton.c b/posix/tst-gnuglob-skeleton.c
index 0e5c87e6db..b20c0316e8 100644
--- a/posix/tst-gnuglob-skeleton.c
+++ b/posix/tst-gnuglob-skeleton.c
@@ -1,5 +1,5 @@
/* Template for tests of the GNU extension GLOB_ALTDIRFUNC.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* To use this skeleton, the following macros need to be defined
before inclusion of this file:
diff --git a/posix/tst-gnuglob.c b/posix/tst-gnuglob.c
index a02aa8990c..7508df9d98 100644
--- a/posix/tst-gnuglob.c
+++ b/posix/tst-gnuglob.c
@@ -1,5 +1,5 @@
/* Test glob with GLOB_ALTDIRFUNC.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define GLOB_FUNC glob
#define GLOB_TYPE glob_t
diff --git a/posix/tst-gnuglob64.c b/posix/tst-gnuglob64.c
index 2d6f1ecc06..0c3f1ca230 100644
--- a/posix/tst-gnuglob64.c
+++ b/posix/tst-gnuglob64.c
@@ -1,5 +1,5 @@
/* Test glob64 with GLOB_ALTDIRFUNC.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define GLOB_FUNC glob64
#define GLOB_TYPE glob64_t
diff --git a/posix/tst-mmap-offset.c b/posix/tst-mmap-offset.c
index 92ea794c5a..7b3ef258d8 100644
--- a/posix/tst-mmap-offset.c
+++ b/posix/tst-mmap-offset.c
@@ -1,6 +1,6 @@
-/* BZ #18877 and #21270 mmap offset test.
+/* BZ #18877, BZ #21270, and BZ #24699 mmap offset test.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
#include <stdio.h>
@@ -24,6 +24,7 @@
#include <unistd.h>
#include <errno.h>
#include <sys/mman.h>
+#include <mmap_info.h>
#include <support/check.h>
@@ -76,7 +77,7 @@ do_test_bz18877 (void)
/* Check if invalid offset are handled correctly by mmap. */
static int
-do_test_bz21270 (void)
+do_test_large_offset (void)
{
/* For architectures with sizeof (off_t) < sizeof (off64_t) mmap is
implemented with __SYS_mmap2 syscall and the offset is represented in
@@ -90,7 +91,7 @@ do_test_bz21270 (void)
const size_t length = 4096;
void *addr = mmap64 (NULL, length, prot, flags, fd, offset);
- if (sizeof (off_t) < sizeof (off64_t))
+ if (mmap64_maximum_offset (page_shift) < UINT64_MAX)
{
if ((addr != MAP_FAILED) && (errno != EINVAL))
FAIL_RET ("mmap succeed");
@@ -110,7 +111,7 @@ do_test (void)
int ret = 0;
ret += do_test_bz18877 ();
- ret += do_test_bz21270 ();
+ ret += do_test_large_offset ();
return ret;
}
diff --git a/posix/tst-nanosleep.c b/posix/tst-nanosleep.c
index a7d6a01826..0f503bfa7b 100644
--- a/posix/tst-nanosleep.c
+++ b/posix/tst-nanosleep.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdio.h>
diff --git a/posix/tst-nice.c b/posix/tst-nice.c
index 624843340b..3dfbd66f7c 100644
--- a/posix/tst-nice.c
+++ b/posix/tst-nice.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdio.h>
diff --git a/posix/tst-pathconf.c b/posix/tst-pathconf.c
index 26650f2517..53d1310883 100644
--- a/posix/tst-pathconf.c
+++ b/posix/tst-pathconf.c
@@ -1,5 +1,5 @@
/* Test that values of pathconf and fpathconf are consistent for a file.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fcntl.h>
#include <stdio.h>
diff --git a/posix/tst-pcre.c b/posix/tst-pcre.c
index b6fe495a69..eb96ad82ff 100644
--- a/posix/tst-pcre.c
+++ b/posix/tst-pcre.c
@@ -1,5 +1,5 @@
/* Regular expression tests.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <mcheck.h>
diff --git a/posix/tst-posix_fadvise-common.c b/posix/tst-posix_fadvise-common.c
index d42dde4846..4899b0775c 100644
--- a/posix/tst-posix_fadvise-common.c
+++ b/posix/tst-posix_fadvise-common.c
@@ -1,5 +1,5 @@
/* Common posix_fadvise tests definitions.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/posix/tst-posix_fadvise.c b/posix/tst-posix_fadvise.c
index 1b9f4b0bf1..916c527646 100644
--- a/posix/tst-posix_fadvise.c
+++ b/posix/tst-posix_fadvise.c
@@ -1,5 +1,5 @@
/* Basic posix_fadvise tests.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "tst-posix_fadvise-common.c"
diff --git a/posix/tst-posix_fadvise64.c b/posix/tst-posix_fadvise64.c
index 82fbaed23e..060a646137 100644
--- a/posix/tst-posix_fadvise64.c
+++ b/posix/tst-posix_fadvise64.c
@@ -1,5 +1,5 @@
/* Basic posix_fadvise64 tests.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _FILE_OFFSET_BITS 64
#include "tst-posix_fadvise-common.c"
diff --git a/posix/tst-posix_spawn-fd.c b/posix/tst-posix_spawn-fd.c
index ca9acc30a2..b79ed76343 100644
--- a/posix/tst-posix_spawn-fd.c
+++ b/posix/tst-posix_spawn-fd.c
@@ -1,5 +1,5 @@
/* Test that spawn file action functions work without file limit.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/posix/tst-posix_spawn-setsid.c b/posix/tst-posix_spawn-setsid.c
index 17de482a69..4237f1f116 100644
--- a/posix/tst-posix_spawn-setsid.c
+++ b/posix/tst-posix_spawn-setsid.c
@@ -1,5 +1,5 @@
/* Test posix_spawn setsid attribute.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/posix/tst-preadwrite-common.c b/posix/tst-preadwrite-common.c
index 9e7f020ff0..0aed3997df 100644
--- a/posix/tst-preadwrite-common.c
+++ b/posix/tst-preadwrite-common.c
@@ -1,5 +1,5 @@
/* Common definitions for pread and pwrite.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <error.h>
@@ -27,9 +27,6 @@ static void do_prepare (void);
static int do_test (void);
#define TEST_FUNCTION do_test ()
-/* We might need a bit longer timeout. */
-#define TIMEOUT 20 /* sec */
-
/* This defines the `main' function and some more. */
#include <test-skeleton.c>
diff --git a/posix/tst-preadwrite.c b/posix/tst-preadwrite.c
index 043c207f1c..33d719d8e8 100644
--- a/posix/tst-preadwrite.c
+++ b/posix/tst-preadwrite.c
@@ -1,5 +1,5 @@
/* Tests for pread and pwrite.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "tst-preadwrite-common.c"
diff --git a/posix/tst-preadwrite64.c b/posix/tst-preadwrite64.c
index 2a684e9d2f..be8056f2bc 100644
--- a/posix/tst-preadwrite64.c
+++ b/posix/tst-preadwrite64.c
@@ -1,5 +1,5 @@
/* Tests for pread64 and pwrite64.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _FILE_OFFSET_BITS 64
#include "tst-preadwrite-common.c"
diff --git a/posix/tst-regcomp-truncated.c b/posix/tst-regcomp-truncated.c
new file mode 100644
index 0000000000..bb7c589342
--- /dev/null
+++ b/posix/tst-regcomp-truncated.c
@@ -0,0 +1,191 @@
+/* Test compilation of truncated regular expressions.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+/* This test constructs various patterns in an attempt to trigger
+ over-reading the regular expression compiler, such as bug
+ 23578. */
+
+#include <array_length.h>
+#include <errno.h>
+#include <locale.h>
+#include <regex.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <support/check.h>
+#include <support/next_to_fault.h>
+#include <support/support.h>
+#include <support/test-driver.h>
+#include <wchar.h>
+
+/* Locales to test. */
+static const char locales[][17] =
+ {
+ "C",
+ "en_US.UTF-8",
+ "de_DE.ISO-8859-1",
+ };
+
+/* Syntax options. Will be combined with other flags. */
+static const reg_syntax_t syntaxes[] =
+ {
+ RE_SYNTAX_EMACS,
+ RE_SYNTAX_AWK,
+ RE_SYNTAX_GNU_AWK,
+ RE_SYNTAX_POSIX_AWK,
+ RE_SYNTAX_GREP,
+ RE_SYNTAX_EGREP,
+ RE_SYNTAX_POSIX_EGREP,
+ RE_SYNTAX_POSIX_BASIC,
+ RE_SYNTAX_POSIX_EXTENDED,
+ RE_SYNTAX_POSIX_MINIMAL_EXTENDED,
+ };
+
+/* Trailing characters placed after the initial character. */
+static const char trailing_strings[][4] =
+ {
+ "",
+ "[",
+ "\\",
+ "[\\",
+ "(",
+ "(\\",
+ "\\(",
+ };
+
+static int
+do_test (void)
+{
+ /* Staging buffer for the constructed regular expression. */
+ char buffer[16];
+
+ /* Allocation used to detect over-reading by the regular expression
+ compiler. */
+ struct support_next_to_fault ntf
+ = support_next_to_fault_allocate (sizeof (buffer));
+
+ /* Arbitrary Unicode codepoint at which we stop generating
+ characters. We do not probe the whole range because that would
+ take too long due to combinatorical exploision as the result of
+ combination with other flags. */
+ static const wchar_t last_character = 0xfff;
+
+ for (size_t locale_idx = 0; locale_idx < array_length (locales);
+ ++ locale_idx)
+ {
+ if (setlocale (LC_ALL, locales[locale_idx]) == NULL)
+ {
+ support_record_failure ();
+ printf ("error: setlocale (\"%s\"): %m", locales[locale_idx]);
+ continue;
+ }
+ if (test_verbose > 0)
+ printf ("info: testing locale \"%s\"\n", locales[locale_idx]);
+
+ for (wchar_t wc = 0; wc <= last_character; ++wc)
+ {
+ char *after_wc;
+ if (wc == 0)
+ {
+ /* wcrtomb treats L'\0' in a special way. */
+ *buffer = '\0';
+ after_wc = &buffer[1];
+ }
+ else
+ {
+ mbstate_t ps = { };
+ size_t ret = wcrtomb (buffer, wc, &ps);
+ if (ret == (size_t) -1)
+ {
+ /* EILSEQ means that the target character set
+ cannot encode the character. */
+ if (errno != EILSEQ)
+ {
+ support_record_failure ();
+ printf ("error: wcrtomb (0x%x) failed: %m\n",
+ (unsigned) wc);
+ }
+ continue;
+ }
+ TEST_VERIFY_EXIT (ret != 0);
+ after_wc = &buffer[ret];
+ }
+
+ for (size_t trailing_idx = 0;
+ trailing_idx < array_length (trailing_strings);
+ ++trailing_idx)
+ {
+ char *after_trailing
+ = stpcpy (after_wc, trailing_strings[trailing_idx]);
+
+ for (int do_nul = 0; do_nul < 2; ++do_nul)
+ {
+ char *after_nul;
+ if (do_nul)
+ {
+ *after_trailing = '\0';
+ after_nul = &after_trailing[1];
+ }
+ else
+ after_nul = after_trailing;
+
+ size_t length = after_nul - buffer;
+
+ /* Make sure that the faulting region starts
+ after the used portion of the buffer. */
+ char *ntf_start = ntf.buffer + sizeof (buffer) - length;
+ memcpy (ntf_start, buffer, length);
+
+ for (const reg_syntax_t *psyntax = syntaxes;
+ psyntax < array_end (syntaxes); ++psyntax)
+ for (int do_icase = 0; do_icase < 2; ++do_icase)
+ {
+ re_syntax_options = *psyntax;
+ if (do_icase)
+ re_syntax_options |= RE_ICASE;
+
+ regex_t reg;
+ memset (&reg, 0, sizeof (reg));
+ const char *msg = re_compile_pattern
+ (ntf_start, length, &reg);
+ if (msg != NULL)
+ {
+ if (test_verbose > 0)
+ {
+ char *quoted = support_quote_blob
+ (buffer, length);
+ printf ("info: compilation failed for pattern"
+ " \"%s\", syntax 0x%lx: %s\n",
+ quoted, re_syntax_options, msg);
+ free (quoted);
+ }
+ }
+ else
+ regfree (&reg);
+ }
+ }
+ }
+ }
+ }
+
+ support_next_to_fault_free (&ntf);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/posix/tst-regex.c b/posix/tst-regex.c
index 17d8ea7691..4c46f8dd62 100644
--- a/posix/tst-regex.c
+++ b/posix/tst-regex.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
@@ -67,7 +67,7 @@ do_test (void)
mtrace ();
/* Make the content of the file available in memory. */
- file = "../ChangeLog.old/ChangeLog.8";
+ file = "./tst-regex.input";
fd = open (file, O_RDONLY);
if (fd == -1)
error (EXIT_FAILURE, errno, "cannot open %s", basename (file));
@@ -86,27 +86,26 @@ do_test (void)
close (fd);
- /* We have to convert a few things from Latin-1 to UTF-8. */
- cd = iconv_open ("UTF-8", "ISO-8859-1");
+ /* We have to convert a few things from UTF-8 to Latin-1. */
+ cd = iconv_open ("ISO-8859-1", "UTF-8");
if (cd == (iconv_t) -1)
error (EXIT_FAILURE, errno, "cannot get conversion descriptor");
- /* For the second test we have to convert the file content to UTF-8.
- Since the text is mostly ASCII it should be enough to allocate
- twice as much memory for the UTF-8 text than for the Latin-1
- text. */
- umem = (char *) calloc (2, memlen);
+ /* For the second test we have to convert the file content to Latin-1.
+ This cannot grow the data. */
+ umem = (char *) malloc (memlen + 1);
if (umem == NULL)
error (EXIT_FAILURE, errno, "while allocating buffer");
inmem = mem;
inlen = memlen;
outmem = umem;
- outlen = 2 * memlen - 1;
+ outlen = memlen;
iconv (cd, &inmem, &inlen, &outmem, &outlen);
umemlen = outmem - umem;
if (inlen != 0)
error (EXIT_FAILURE, errno, "cannot convert buffer");
+ umem[umemlen] = '\0';
#if defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0
# if _POSIX_CPUTIME == 0
@@ -124,11 +123,11 @@ do_test (void)
/* Run the actual tests. All tests are run in a single-byte and a
multi-byte locale. */
- result = test_expr ("[äáàâéèêíìîñöóòôüúùû]", 2, 2);
+ result = test_expr ("[äáàâéèêíìîñöóòôüúùû]", 4, 4);
result |= test_expr ("G.ran", 2, 3);
result |= test_expr ("G.\\{1\\}ran", 2, 3);
result |= test_expr ("G.*ran", 3, 44);
- result |= test_expr ("[äáàâ]", 0, 0);
+ result |= test_expr ("[äáàâ]", 0, 0);
result |= test_expr ("Uddeborg", 2, 2);
result |= test_expr (".Uddeborg", 2, 2);
@@ -151,27 +150,27 @@ test_expr (const char *expr, int expected, int expectedicase)
size_t outlen;
char *uexpr;
- /* First test: search with an ISO-8859-1 locale. */
- if (setlocale (LC_ALL, "de_DE.ISO-8859-1") == NULL)
- error (EXIT_FAILURE, 0, "cannot set locale de_DE.ISO-8859-1");
+ /* First test: search with an UTF-8 locale. */
+ if (setlocale (LC_ALL, "de_DE.UTF-8") == NULL)
+ error (EXIT_FAILURE, 0, "cannot set locale de_DE.UTF-8");
- printf ("\nTest \"%s\" with 8-bit locale\n", expr);
+ printf ("\nTest \"%s\" with multi-byte locale\n", expr);
result = run_test (expr, mem, memlen, 0, expected);
- printf ("\nTest \"%s\" with 8-bit locale, case insensitive\n", expr);
+ printf ("\nTest \"%s\" with multi-byte locale, case insensitive\n", expr);
result |= run_test (expr, mem, memlen, 1, expectedicase);
- printf ("\nTest \"%s\" backwards with 8-bit locale\n", expr);
+ printf ("\nTest \"%s\" backwards with multi-byte locale\n", expr);
result |= run_test_backwards (expr, mem, memlen, 0, expected);
- printf ("\nTest \"%s\" backwards with 8-bit locale, case insensitive\n",
+ printf ("\nTest \"%s\" backwards with multi-byte locale, case insensitive\n",
expr);
result |= run_test_backwards (expr, mem, memlen, 1, expectedicase);
- /* Second test: search with an UTF-8 locale. */
- if (setlocale (LC_ALL, "de_DE.UTF-8") == NULL)
- error (EXIT_FAILURE, 0, "cannot set locale de_DE.UTF-8");
+ /* Second test: search with an ISO-8859-1 locale. */
+ if (setlocale (LC_ALL, "de_DE.ISO-8859-1") == NULL)
+ error (EXIT_FAILURE, 0, "cannot set locale de_DE.ISO-8859-1");
inmem = (char *) expr;
inlen = strlen (expr);
- outlen = inlen * MB_CUR_MAX;
+ outlen = inlen;
outmem = uexpr = alloca (outlen + 1);
memset (outmem, '\0', outlen + 1);
iconv (cd, &inmem, &inlen, &outmem, &outlen);
@@ -179,13 +178,13 @@ test_expr (const char *expr, int expected, int expectedicase)
error (EXIT_FAILURE, errno, "cannot convert expression");
/* Run the tests. */
- printf ("\nTest \"%s\" with multi-byte locale\n", expr);
+ printf ("\nTest \"%s\" with 8-bit locale\n", expr);
result |= run_test (uexpr, umem, umemlen, 0, expected);
- printf ("\nTest \"%s\" with multi-byte locale, case insensitive\n", expr);
+ printf ("\nTest \"%s\" with 8-bit locale, case insensitive\n", expr);
result |= run_test (uexpr, umem, umemlen, 1, expectedicase);
- printf ("\nTest \"%s\" backwards with multi-byte locale\n", expr);
+ printf ("\nTest \"%s\" backwards with 8-bit locale\n", expr);
result |= run_test_backwards (uexpr, umem, umemlen, 0, expected);
- printf ("\nTest \"%s\" backwards with multi-byte locale, case insensitive\n",
+ printf ("\nTest \"%s\" backwards with 8-bit locale, case insensitive\n",
expr);
result |= run_test_backwards (uexpr, umem, umemlen, 1, expectedicase);
diff --git a/posix/tst-regex.input b/posix/tst-regex.input
new file mode 100644
index 0000000000..c48660d23a
--- /dev/null
+++ b/posix/tst-regex.input
@@ -0,0 +1,12549 @@
+1998-08-11 14:05 Ulrich Drepper <drepper@cygnus.com>
+
+ * timezone/backward: Update from tzdata1998g.
+ * timezone/etcetera: Likewise.
+ * timezone/europe: Likewise.
+
+1998-08-11 Philip Blundell <pb@nexus.co.uk>
+
+ * sysdeps/generic/tempname.c (__path_search): Fix typo and
+ formatting.
+
+1998-08-11 H.J. Lu <hjl@gnu.org>
+
+ * malloc/malloc.c (free_check): Print pointer value using %p.
+ (realloc_check): Likewise.
+
+1998-08-11 13:57 Ulrich Drepper <drepper@cygnus.com>
+
+ * libio/fileops.c (_IO_file_sync): Use _IO_ssize_t for delta, not
+ _IO_size_t.
+
+1998-08-10 15:49 Ulrich Drepper <drepper@cygnus.com>
+
+ * include/dirent.h: Protect from double inclusion.
+
+1998-08-09 Mark Kettenis <kettenis@phys.uva.nl>
+
+ * posix/glob.h: Add LFS support for glob and globfree.
+ * posix/Versions [GLIBC_2.1]: Add glob64 and globfree64.
+ * posix/Makefile (routines): Add glob64.
+ * sysdeps/generic/glob64.c: New file.
+ * sysdeps/unix/sysv/linux/glob64.c: New file.
+ * sysdeps/unix/sysv/linux/alpha/glob64.c: New file.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/glob64.c: New file.
+ * sysdeps/generic/glob.c [_LIBC && glob] (__glob_pattern_p):
+ Elide function.
+ * sysdeps/unix/sysv/linux/alpha/glob.c: Add glob64 as a weak alias
+ for __new_glob. Likewise for globfree64.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/glob.c: New file.
+
+1998-08-09 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/unix/Makefile ($(common-objpfx)s-proto.d): Remove
+ -include flag from command.
+
+1998-08-10 Ulrich Drepper <drepper@cygnus.com>
+
+ * nss/nss_db/db-XXX.c (_nss_db_getXXX): If buffer is too small
+ decrement `entidx' to allow retrieving the same entry again.
+
+1998-08-09 22:32 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/powerpc/ffs.c: Fix typo. Add support for ffsl.
+ Patch by Matt McLean <keys@yikes.com>.
+
+1998-08-07 Geoff Keating <geoffk@ozemail.com.au>
+
+ * sysdeps/powerpc/bits/setjmp.h: Use word to save condition
+ registers.
+ * sysdeps/powerpc/setjmp.S: Save condition registers.
+ * sysdeps/powerpc/__longjmp.S: Restore condition registers.
+
+1998-08-09 09:40 Ulrich Drepper <drepper@cygnus.com>
+
+ * nss/nss_files/files-XXX.c (internal_getent): In case of an read
+ error do not trust errno value, set it to ENOENT.
+
+ * db2/db_185.h: Move __ prototypes into include/* header.
+ * dirent/dirent.h: Likewise.
+ * elf/dlfcn.h: Likewise.
+ * gmon/sys/gmon.h: Likewise.
+ * grp/grp.h: Likewise.
+ * intl/libintl.h: Likewise.
+ * io/fcntl.h: Likewise.
+ * io/sys/stat.h: Likewise.
+ * io/sys/statfs.h: Likewise.
+ * io/sys/statvfs.h: Likewise.
+ * libio/stdio.h: Likewise.
+ * login/utmp.h: Likewise.
+ * misc/mntent.h: Likewise.
+ * misc/search.h: Likewise.
+ * misc/sys/file.h: Likewise.
+ * misc/sys/ioctl.h: Likewise.
+ * misc/sys/select.h: Likewise.
+ * misc/sys/uio.h: Likewise.
+ * misc/sys/ustat.h: Likewise.
+ * posix/unistd.h: Likewise.
+ * posix/sys/times.h: Likewise.
+ * posix/sys/wait.h: Likewise.
+ * pwd/pwd.h: Likewise.
+ * resource/ulimit.h: Likewise.
+ * resource/sys/resource.h: Likewise.
+ * setjmp/setjmp.h: Likewise.
+ * shadow/shadow.h: Likewise.
+ * signal/signal.h: Likewise.
+ * socket/sys/socket.h: Likewise.
+ * stdlib/alloca.h: Likewise.
+ * stdlib/stdlib.h: Likewise.
+ * string/string.h: Likewise.
+ * sysdeps/generic/sys/mman.h: Likewise.
+ * sysdeps/unix/bsd/osf/sys/mman.h: Likewise.
+ * sysdeps/unix/bsd/sun/sunos4/sys/mman.h: Likewise.
+ * sysdeps/unix/bsd/ultrix4/sys/mman.h: Likewise.
+ * sysdeps/unix/sysv/irix4/sys/mman.h: Likewise.
+ * sysdeps/unix/sysv/linux/bits/sched.h: Likewise.
+ * sysdeps/unix/sysv/linux/sys/mman.h: Likewise.
+ * termios/termios.h: Likewise.
+ * time/time.h: Likewise.
+ * time/sys/time.h: Likewise.
+ * wcsmbs/wchar.h: Likewise.
+
+ * include/alloca.h: Add __ prototypes here.
+ * include/db_185.h: Likewise.
+ * include/dirent.h: Likewise.
+ * include/dlfcn.h: Likewise.
+ * include/fcntl.h: Likewise.
+ * include/grp.h: Likewise.
+ * include/libintl.h: Likewise.
+ * include/mntent.h: Likewise.
+ * include/pwd.h: Likewise.
+ * include/sched.h: Likewise.
+ * include/search.h: Likewise.
+ * include/setjmp.h: Likewise.
+ * include/shadow.h: Likewise.
+ * include/signal.h: Likewise.
+ * include/stdio.h: Likewise.
+ * include/stdlib.h: Likewise.
+ * include/string.h: Likewise.
+ * include/termios.h: Likewise.
+ * include/time.h: Likewise.
+ * include/ulimit.h: Likewise.
+ * include/unistd.h: Likewise.
+ * include/utmp.h: Likewise.
+ * include/wchar.h: Likewise.
+ * include/sys/file.h: Likewise.
+ * include/sys/gmon.h: Likewise.
+ * include/sys/ioctl.h: Likewise.
+ * include/sys/mman.h: Likewise.
+ * include/sys/resource.h: Likewise.
+ * include/sys/select.h: Likewise.
+ * include/sys/socket.h: Likewise.
+ * include/sys/stat.h: Likewise.
+ * include/sys/statfs.h: Likewise.
+ * include/sys/time.h: Likewise.
+ * include/sys/times.h: Likewise.
+ * include/sys/uio.h: Likewise.
+ * include/sys/wait.h: Likewise.
+
+ * Makeconfig (+includes): Search in $(..)include first.
+
+ * io/fstat.c: Undefine __fstat.
+ * io/lstat.c: Undefine __lstat.
+
+ * wcsmbs/Versions: Add __mbrlen.
+
+1998-08-09 Ulrich Drepper <drepper@cygnus.com>
+
+ * elf/dl-reloc.c (_dl_relocate_object): Implement DT_BIND_NOW.
+
+1998-07-31 17:59 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/generic/bits/byteswap.h: Fix problems with side effects.
+
+ * manual/filesys.texi: Document truncate and ftruncate.
+ Patch by Michael Deutschmann <michael@talamasca.wkpowerlink.com>.
+
+ * shadow/putspent.c: Lock stream while generating the output.
+
+ * sunrpc/clnt_unix.c: Use ucred instead of cmsgcred again.
+ (__msgwrite): Rewrite accordingly.
+ * sunrpc/svc_unix.c: Likewise.
+ * sysdeps/unix/sysv/linux/Dist: Remove __recvmsg.S and __sendmsg.S.
+ * sysdeps/unix/sysv/linux/Makefile [$(subdir)==socket]
+ (sysdep_routines): Remove __sendmsg and __recvmsg.
+ * sysdeps/unix/sysv/linux/__recvmsg.S: Removed.
+ * sysdeps/unix/sysv/linux/__sendmsg.S: Removed.
+ * sysdeps/unix/sysv/linux/recvmsg.c: Removed.
+ * sysdeps/unix/sysv/linux/sendmsg.c: Removed.
+ * sysdeps/unix/sysv/linux/recvmsg.S: New file.
+ * sysdeps/unix/sysv/linux/sendmsg.S: New file.
+ * sysdeps/unix/sysv/linux/bits/socket.h: Define SCM_CREDENTIALS and
+ struct ucred. Remove struct cmsgcred.
+ Patches by Thorsten Kukuk.
+
+1998-08-03 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * inet/rcmd.c (__ivaliduser): Allow '#' as comment character.
+
+1998-08-08 14:42 Ulrich Drepper <drepper@cygnus.com>
+
+ * argp/argp-help.c: Prepare to be used outside glibc without gcc by
+ adding usual alloca cruft.
+ Reported by Eleftherios Gkioulekas <lf@amath.washington.edu>.
+
+1998-04-05 Jim Meyering <meyering@ascend.com>
+
+ * lib/regex.c (WIDE_CHAR_SUPPORT): Define.
+ This now depends on HAVE_BTOWC so systems that lack btowc (like
+ solaris-2.5.1) don't lose.
+
+1998-08-07 Mark Kettenis <kettenis@phys.uva.nl>
+
+ * sysdeps/generic/bits/sigaction.h: Remove definition of SA_DISABLE.
+ * sysdeps/generic/bits/sigstack.h: Define SS_DISABLE, SS_ONSTACK,
+ MINSIGSTKZ and SIGSTKSZ. Definitions match BSD.
+ * hurd/sigunwind.c (_hurdsig_longjmp_from_handler): Use SS_ONSTACK
+ instead of SA_ONSTACK.
+ * sysdeps/mach/hurd/sigaltstack.c (__sigaltstack): Renamed from
+ sigaltstack, and created a weak alias. Use SS_DISABLE and
+ SS_ONSTACK instead of SA_DISABLE and SA_ONSTACK.
+ * sysdeps/mach/hurd/sigstack.c (sigstack): Use SS_ONSTACK instead
+ of SA_ONSTACK. Call __sigaltstack instead of sigaltstack.
+ * sysdeps/mach/hurd/i386/sigreturn.c (__sigreturn): Use SS_ONSTACK
+ instead of SA_ONSTACK.
+ * sysdeps/mach/hurd/alpha/sigreturn.c (__sigreturn): Likewise.
+ * sysdeps/mach/hurd/mips/sigreturn.c (__sigreturn): Likewise.
+ * sysdeps/mach/hurd/i386/trampoline.c (_hurd_setup_sighandler):
+ Use SS_DISABLE instead of SA_DISABLE. Use SS_ONSTACK instead of
+ SA_ONSTACK where appropriate.
+ * sysdeps/mach/hurd/alpha/trampoline.c (_hurd_setup_sighandler):
+ Likewise.
+ * sysdeps/mach/hurd/hppa/trampoline.c (_hurd_setup_sighandler):
+ Likewise.
+ * sysdeps/mach/hurd/mips/trampoline.c (_hurd_setup_sighandler):
+ Likewise.
+ * manual/signal.texi (Signal Stack): Talk about SS_DISABLE and
+ SS_ONSTACK instead of SA_DISABLE and SA_ONSTACK in discussion of
+ the `ss_flags' member of `struct sigaltstack'.
+
+1998-08-05 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * libio/Makefile (routines) [$(versioning)=yes]: Add oldtmpfile.
+ (shared-only-routines): Likewise.
+ * libio/oldtmpfile.c: New file
+ * stdio-common/tmpfile.c: Use __fdopen and __close.
+ [USE_IN_LIBIO]: Use _IO_fdopen instead of _IO_new_fdopen. Put
+ tmpfile on symbol version GLIBC_2.1.
+ * stdio-common/tmpfile64.c: Use __fdopen and __close.
+ [USE_IN_LIBIO]: Use _IO_fdopen instead of _IO_new_fdopen.
+ * stdio-common/Version [GLIBC_2.1]: Add tmpfile.
+ * stdio-common/tempnam.c: Use __strdup instead of strdup.
+ * sysdeps/posix/fdopen.c: Define __fdopen and make fdopen weak
+ alias.
+ * sysdeps/generic/fdopen.c: Likewise.
+ * sysdeps/mach/hurd/fdopen.c: Likewise.
+ * stdio/stdio.h: Declare __fdopen.
+ * sunrpc/openchild.c: Use __fdopen instead of fdopen.
+ [USE_IN_LIBIO]: Map __fdopen to _IO_fdopen.
+ * sysdeps/posix/tempname.c (__gen_tempname): Don't bother checking
+ __stub_open64, it is never defined.
+
+1998-08-05 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * libio/iofopen64.c: Fix typo. Avoid unnessary casts.
+ * libio/iopopen.c: Unlink file before freeing it if command
+ creation failed. Avoid unnessary casts.
+ * libio/iofdopen.c: Avoid unnecessary cast.
+ * pwd/fgetpwent_r.c [USE_IN_LIBIO]: Map funlockfile to
+ _IO_funlockfile.
+ * pwd/fgetspent_r.c [USE_IN_LIBIO]: Likewise.
+
+1998-08-06 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * grp/grp.h, pwd/pwd.h: Don't declare __grpopen, __grpread,
+ __grpalloc, __grpscan and the corresponding pwd functions, they
+ were removed long ago.
+
+1998-08-06 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * math/libm-test.c (csqrt_test): Adjust epsilons.
+ (casinh_test): Likewise.
+
+1998-08-06 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * posix/globtest.sh: Fix typo. Remove second test output file.
+
+1998-08-07 Cristian Gafton <gafton@redhat.com>
+
+ * pwd/putpwent.c (putpwent): Avoid writting (none) in the passwd file.
+ * shadow/putspent.c (putspent): Likewise.
+ * grp/putgrent.c: New file.
+ * grp/Makefile (routines): Add putgrent.
+ * grp/Versions [GLIBC_2.1]: Add putgrent.
+ * grp/grp.h: Add putgrent prototype.
+
+1998-08-04 19:33 Ulrich Drepper <drepper@cygnus.com>
+
+ * elf/elf.h: More ELF definitions.
+
+1998-08-04 16:53 Ulrich Drepper <drepper@cygnus.com>
+
+ * stdio-common/tmpfile.c: Include unistd.h for close prototype.
+ * stdio-common/tmpfile64.c: Likewise.
+
+ * db2/makedb.c: Generate output file with same access permissions
+ the input file has.
+
+ * signal/signal.h: Pretty printing.
+
+1998-08-04 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * misc/mktemp.c: Add include <stlib.h> for prototype, remove
+ unneccessary includes.
+ * misc/mkstemp.c: Likewise.
+
+1998-08-03 16:36 Ulrich Drepper <drepper@cygnus.com>
+
+ * catgets/catgets.c: Use mmap/munmap only is _POSIX_MAPPED_FILES
+ is defined.
+ * catgets/open_catalog.c: Likewise.
+ * iconv/iconv_prog.c: Likewise.
+ * intl/loadmsgcat.c: Likewise.
+ * locale/findlocale.c: Likewise.
+ * locale/loadlocale.c: Likewise.
+ * locale/programs/localedef.c: Likewise.
+ * malloc/malloc.c: Likewise.
+
+ * elf/elf.h: Fix typo.
+
+ * math/Makefile: Use $(LN_S) instead of ln.
+
+ * sysdeps/generic/getpgid.c: Fix return type.
+
+1998-08-01 02:49 -0400 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ * sysdeps/posix/tempname.c (__stdio_gen_tempname): Rename to
+ __gen_tempname and simplify the interface. Strip out the
+ code to do path search and create FILE objects. This function
+ now takes a mktemp() style template and returns either a name
+ or a file descriptor.
+ (__path_search): New function; searches for directories for
+ temp files.
+ * sysdeps/generic/tempname.c: Stub out __gen_tempname and
+ __path_search, not __stdio_gen_tempname.
+
+ * libio/stdio.h: Prototype __gen_tempname and __path_search,
+ not __stdio_gen_tempname.
+ * stdio/stdio.h: Likewise.
+
+ * stdio-common/tempnam.c: Use __path_search and __gen_tempname.
+ * stdio-common/tmpfile.c: Likewise.
+ * stdio-common/tmpfile64.c: Likewise.
+ * stdio-common/tmpnam.c: Likewise.
+ * stdio-common/tmpnam_r.c: Likewise.
+
+ * misc/mkstemp.c: New file. Use __gen_tempname.
+ * misc/mktemp.c: Likewise.
+
+ * sysdeps/posix/mkstemp.c: Removed.
+ * sysdeps/posix/mktemp.c: Removed.
+ * sysdeps/generic/mkstemp.c: Removed.
+ * sysdeps/generic/mktemp.c: Removed.
+
+1998-08-02 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
+
+ * configure.in: Check, if door add-on is installed.
+ * config.make.in: Add have_doors.
+ * sunrpc/Makefile: Add HAVE_DOOR define.
+ * sunrpc/key_call.c: Add keyserv/door interface.
+
+ * sunrpc/svc_unix.c: Call setsockopt only if SO_PASSCRED is defined.
+ * sunrpc/clnt_unix.c: Likewise.
+
+1998-08-02 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * inet/netinet/in.h (IN_CLASSC): Correct mask.
+ Reported by Ian Staniforth <I.Staniforth@sheffield.ac.uk> [fixes
+ PR libc/727].
+
+1998-08-03 10:23 Ulrich Drepper <drepper@cygnus.com>
+
+ * misc/Makefile: Fix installation problem with --disable-shared.
+ * posix/Makefile: Likewise.
+
+1998-08-02 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * posix/regex.c (re_search_2): Optimize searching for anchored
+ pattern if '^' cannot match at embedded newlines.
+ (regerror): Renamed from __regerror, which it should only be
+ called if _LIBC.
+
+1998-07-31 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sunrpc/svc_unix.c (__msgread): Check setsockopt return value.
+
+1998-07-31 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/generic/glob.c: Remove obsolete cast.
+
+1998-07-31 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * Rules (tests): Fix last change.
+
+1998-07-31 17:59 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/Makefile [subdir==misc] (sysdep_routines):
+ Add sys_setresuid.
+
+1998-07-30 Mark Kettenis <kettenis@phys.uva.nl>
+
+ * sysdeps/unix/sysv/linux/syscalls.list: Add __syscall_setresuid
+ as real name for system call and make setresuid a weak alias. Set
+ caller to seteuid.
+ * sysdeps/unix/sysv/linux/seteuid.c (seteuid): Implement using
+ `setresuid' syscall if availble. Fixes problems with sendmail
+ which expects `seteuid' to not set the saved user ID.
+
+1998-07-30 20:09 -0400 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ * time/tzset.c (__tzstring): Get rid of excessive cleverness
+ which was causing stack corruption.
+
+1998-07-31 16:41 -0400 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ * argp/argp-fmtstream.c (__argp_fmtstream_update): Correct
+ off-by-one in wordwrap algorithm when there' a space at the
+ beginning of the buffer.
+
+1998-07-31 15:45 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makerules (LDLIBS-c.so): Extend value instead of overwriting it.
+
+1998-07-31 11:10 Ulrich Drepper <drepper@cygnus.com>
+
+ * elf/elf.h: Add lots of new symbols from Irix and Solaris.
+
+ * sysdeps/unix/sysv/linux/sigstack.c: Include stddef.h to get NULL
+ definition.
+
+1998-07-31 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
+
+ * sunrpc/xcrypt.c: Use only the first 8 characters of the password.
+
+1998-07-30 21:06 -0400 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ * sysdeps/generic/glob.c: Undefine strdup before defining it,
+ because bits/string2.h may have defined it already.
+
+1998-07-29 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * stdio-common/vfscanf.c: Optimize looking for type modifiers.
+ Fix recognition of 'a' modifier vs. 'a' format.
+ (TYPEMOD): Removed.
+
+ * stdio-common/printf-parse.h (parse_one_spec): Optimize looking
+ for type modifiers. Fix recognition of 'hh' modifier.
+
+1998-07-31 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
+
+ * sunrpc/svc_unix.c: Fix typo.
+
+1998-07-31 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
+
+ * sysdeps/unix/sysv/linux/recvmsg.c: Don't check for SCM_CREDS before
+ syscall.
+
+1998-07-30 12:38 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/i386/ffs.c: Add ffsl entry point.
+ * sysdeps/i386/i686/ffs.c: Likewise.
+ * sysdeps/m68k/ffs.c: Likewise.
+ * sysdeps/powerpc/ffs.c: Likewise.
+
+ * sysdeps/i386/i486/bits/string.h: Add optimizations for ffs/ffsl
+ on i686.
+
+1998-07-30 Richard Henderson <rth@cygnus.com>
+
+ * elf/Makefile (ld-map): Move initialization below Makeconfig include.
+
+ * sysdeps/libm-ieee754/k_standard.c (zero): Make non-const to
+ work around gcc bug.
+
+ * string/string.h (ffsl, ffsll): Prototype.
+ * string/Version (GLIBC_2.1): Add them.
+ * sysdeps/alpha/ffs.S: Schedule for EV5. Add ffsl and ffsll
+ entry points.
+ * sysdeps/alpha/ffsll.S: New file. Empty.
+ * sysdeps/generic/ffs.c: Add ffsl and ffsll entry points.
+ * sysdeps/generic/ffsll.c: New file.
+ * string/Makefile (routines): Add ffsll.
+
+1998-07-30 10:03 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/alpha/bits/time.h: Don't define CLK_TCK for
+ strictly ISO C compliant programs.
+ * sysdeps/unix/sysv/linux/mips/bits/time.h: Likewise.
+
+1998-07-22 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * inet/protocols/rwhod.h: Correct typo in comment.
+
+ * configure.in: Use better regex for gettext.
+
+1998-07-29 21:29 Ulrich Drepper <drepper@cygnus.com>
+
+ * elf/elf.h: Define more EM_* constants, ELFCLASSNUM, ELFDATANUM,
+ EV_NUM, Elf32_Nhdr, Elf64_Nhdr and various note section values.
+
+ * elf/elf.h: Add DT_FLAGS_1 and the DF_1_* flag definitions.
+
+ * elf/sprof.c: Implement -c/--call-pairs option to emit list with
+ caller/callee and the number of calls.
+
+1998-07-29 Mark Kettenis <kettenis@phys.uva.nl>
+
+ * sysdeps/mach/hurd/dl-sysdep.c (__lseek): New function.
+ (__getpid): New function.
+ (abort): New function.
+
+1998-07-29 15:07 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/arm/fpu/Dist: New file. Add ieee754.h.
+
+ * nis/nis_cache2_xdr.c: Removed.
+ * nis/nis_cache.c: Removed.
+ * nis/nis_cache2.h: Removed.
+
+1998-07-29 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * Rules (tests): Depend on tests-static only if build-static == yes.
+
+ * misc/Makefile (install-lib): Compile libbsd-compat.a and libg.a
+ only if build-static == yes.
+
+1998-07-29 12:58 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/generic/glob.c: Windows compatibility stuff.
+ Patch received from Paul D. Smith <psmith@BayNetworks.COM>.
+
+1998-07-29 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * sunrpc/clnt_unix.c (__msgwrite)[!SCM_CRED]: Add return
+ statement, fix typo.
+ * sunrpc/svc_unix.c (__msgwrite)[!SCM_CRED]: Likewise.
+
+1998-07-29 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * manual/pattern.texi (More Flags for Globbing): Fix typo.
+
+ * manual/math.texi (Special Functions): Fix typo.
+
+ * sysdeps/unix/sysv/linux/bits/in.h (IPV6_ROUTER_ALERT): New
+ constant from Linux 2.1.112.
+
+ * posix/Makefile (install-lib): Compile libposix.a only if
+ build-static == yes.
+
+1998-07-28 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/generic/glob.c: Maintain const correctness. Move extern
+ declarations to file level. Cope with unsupported
+ _SC_GETPW_R_SIZE_MAX.
+
+1998-07-29 Ulrich Drepper <drepper@cygnus.com>
+
+ * stdio-common/tst-printf.c: %z is now recognized by printf.
+
+ * sysdeps/libm-ieee754/c_csqrt.c: Fix problems with some cancelation
+ errors.
+ * sysdeps/libm-ieee754/c_csqrtf.c: Likewise.
+ * sysdeps/libm-ieee754/c_csqrtlc: Likewise.
+ Patch by Stephen L Moshier <moshier@mediaone.net>.
+
+ * math/libm-test.c (csqrt_test): Correct typo in one test, add
+ another one.
+
+ * sysdeps/unix/sysv/linux/bits/siginfo.h: Adjust siginfo_t after
+ latest kernel change.
+
+1998-07-29 6:39 Kazushige Goto <goto@statabo.rim.or.jp>
+
+ * sysdeps/alpha/fpu/e_sqrt.c [!_IEEE_FP]: Correctly handle
+ inputs near DBL_MIN.
+
+1998-07-28 Ulrich Drepper <drepper@cygnus.com>
+
+ * resolv/nss_dns/dns-host.c (getanswer_r): Lower the priority of
+ warnings when DNSSEC related records are received.
+ * resolv/gethnamaddr.c (getanswer): Likewise.
+ Patch by Brian Wellington <bwelling@anomaly.munge.com>.
+
+ * signal/signal.h: Add prototype for sysv_signal.
+
+ * math/libm-test.c (tgamma_test): Remove redundant tests.
+
+ * sysdeps/generic/glob.c: Correct problems with */foo and GLOB_NOCHECK
+ where foo does not exist in any of the subdirectories.
+ Reported by Paul D. Smith <psmith@BayNetworks.COM>.
+
+ * posix/globtest.sh: Add test for this bug.
+
+ * posix/glob.h: Add GLOB_TILDE_CHECK.
+ * sysdeps/generic/glob.c: Implement GLOB_TILDE_CHECK.
+ * posix/globtest.c: Add option T to enable GLOB_TILDE_CHECK.
+ * posix/globtest.sh: Re-enable test with ~ and non-existing user name.
+
+1998-07-28 Mark Kettenis <kettenis@phys.uva.nl>
+
+ * io/sys/statfs.h: Fix typos.
+ * io/sys/statvfs.h: Fix typos.
+
+1998-07-28 Ulrich Drepper <drepper@cygnus.com>
+
+ * version.h (VERSION): Bump to 2.0.95.
+
+ * math/Makefile (libm-calls): Remove w_gamma, add w_tgamma.
+ * math/Versions [GLIBC_2.1]: Add tgamma, tgammaf, and tgammal.
+ * math/libm-test.c: Split old gamma_test and move half of it in new
+ function tgamma_test.
+ * math/bits/mathcalls.h: Add declaration of tgamma.
+ * sysdeps/libm-ieee754/k_standard.c: Change gamma errors into
+ tgamma errors.
+ * sysdeps/libm-ieee754/w_gamma.c: Remove lgamma compatibility code
+ and rename to ...
+ * sysdeps/libm-ieee754/w_tgamma.c: ... this. New file.
+ * sysdeps/libm-ieee754/w_gammaf.c: Remove lgammaf compatibility code
+ and rename to ...
+ * sysdeps/libm-ieee754/w_tgammaf.c: ... this. New file.
+ * sysdeps/libm-ieee754/w_gammal.c: Remove lgammal compatibility code
+ and rename to ...
+ * sysdeps/libm-ieee754/w_tgammal.c: ... this. New file.
+ * sysdeps/libm-ieee754/w_lgamma.c: Add gamma as weak alias.
+ * sysdeps/libm-ieee754/w_lgammaf.c: Likewise.
+ * sysdeps/libm-ieee754/w_lgammal.c: Likewise.
+
+ * stgdio-common/printf-parse.h: Implement handling of j, t, and z
+ modifiers.
+ * stdio-common/vfprintf.c: Likewise.
+ * stdio-common/vfscanf.c: Likewise.
+ * manual/stdio.texi: Document new printf/scanf modifiers.
+
+ * sysdeps/unix/sysv/linux/recvmsg.c: Remove alias __recvmsg.
+ * sysdeps/unix/sysv/linux/sendmsg.c: Remove alias __sendmsg.
+
+1998-07-28 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
+
+ * sunrpc/Makefile (routines): Add clnt_unix and svc_unix.
+ * sunrpc/Versions: Add new *unix_create functions.
+ * sunrpc/clnt_gen.c: Add support for RPC over AF_UNIX.
+ * sunrpc/clnt_unix.c: New, client side of RPC over AF_UNIX.
+ * sunrpc/key_call.c: Use RPC over AF_UNIX for communication
+ with keyserv daemon.
+ * sunrpc/rpc/clnt.h: Add AF_UNIX based RPC function prototypes.
+ * sunrpc/rpc/svc.h: Likewise.
+ * sunrpc/svc_authux.c: Copy internal auth flavor if none is given.
+ * sunrpc/svc_tcp.c: Fix typos.
+ * sunrpc/svc_unix.c: New, server side of AF_UNIX based RPC.
+
+ * nis/Makefile: Remove currently not working cache functions.
+ * nis/Versions: Add __nisbind_* functions for rpc.nisd.
+ * nis/nis_call.c: Rewrite binding to a NIS+ server to reuse
+ CLIENT handles.
+ * nis/nis_file.c: Fix memory leaks.
+ * nis/nis_intern.h: Move internal structs from here ...
+ * nis/rpcsvc/nislib.h: ... to here for NIS+ server and tools.
+ * nis/nis_lookup.c: Try at first if last client handle works.
+ * nis/nis_table.c: Likewise.
+ * nis/nis_checkpoint.c: Adjust __do_niscall2 parameters.
+ * nis/nis_mkdir.c: Likewise.
+ * nis/nis_ping.c: Likewise.
+ * nis/nis_rmdir.c: Likewise.
+ * nis/nis_server.c: Likewise.
+ * nis/nis_util.c: Likewise.
+ * nis/nis_findserv.c (__nis_findfastest): Little optimization.
+
+1998-07-28 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * stdlib/strtol.c (STRTOL_LONG_MAX): Correct typo in last patch -
+ define as LONG_MAX.
+
+1998-07-28 09:31 Ulrich Drepper <drepper@cygnus.com>
+
+ * nscd/connections.c (gr_send_answer): Deal with missing UIO_MAXIOV.
+ Correct test whether writev send all data.
+ * nscd/nscd_getgr_r.c (__nscd_getgr_r): Correct test whether readv
+ received all data.
+
+1998-07-28 Mark Kettenis <kettenis@phys.uva.nl>
+
+ * nscd/nscd_getgr_r.c (__nscd_getgr_r): Deal with missing UIO_MAXIOV.
+
+1998-07-28 Mark Kettenis <kettenis@phys.uva.nl>
+
+ * sysdeps/mach/hurd/dl-sysdep.c (open_file): Change assert call to
+ allow mode to be 0.
+ (__xstat): New function.
+ (__fxstat): New function.
+ (_dl_sysdep_read_whole_file): Removed. The implementation in
+ `elf/dl-misc.c' now also works for the Hurd.
+
+1998-07-27 22:25 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/generic/glob.c: Handle ~ and ~NAME case correctly.
+
+ * posix/globtest.sh: Also add directories with NSS modules into the
+ library path.
+
+1998-07-27 17:42 Ulrich Drepper <drepper@cygnus.com>
+
+ * nss/nss_files/files-parse.c (INT_FIELD): Use strtoul instead of
+ strtol.
+ (INT_FIELD_MAYBE_NULL): Likewise.
+
+ * posix/globtest.c: Rewrite for extended test suite.
+ * posix/globtest.sh: More tests.
+ Patch by Brian Wellington <bwelling@anomaly.munge.com>.
+
+ * stdlib/strtol.c: Don't redefine LONG_MAX, LONG_MIN, and ULONG_MAX.
+ Use new macro.
+
+ * sysdeps/generic/readv.c: Correct return type.
+ * sysdeps/generic/writev.c: Likewise.
+
+1998-07-24 Gordon Matzigkeit <gord@fig.org>
+
+ * argp/argp-help.c (_GNU_SOURCE): Define, to suck in
+ program_invocation_name when compiling outside of glibc.
+
+1998-07-26 Philip Blundell <philb@gnu.org>
+
+ * sysdeps/unix/sysv/linux/arm/siglist.c: New file; ARM tools don't
+ like `@' in .type directives.
+
+ * sysdeps/libm-ieee754/e_expf.c (__ieee754_expf): Check whether
+ FE_TONEAREST exists for this platform before using it.
+ * sysdeps/libm-ieee754/e_exp.c (__ieee754_exp): Likewise.
+
+ * sysdeps/arm/dl-machine.h (elf_machine_rel): Delete redundant
+ debugging code. Correct handling of PC24 relocs.
+
+ * elf/Makefile (ld-map): Only define if versioning is in use.
+
+ * sysdeps/arm/fpu_control.h: Move to ...
+ * sysdeps/arm/fpu/fpu_control.h: ... here.
+ * sysdeps/generic/fpu_control.h: Made usable as a dummy
+ implementation.
+
+ * sysdeps/unix/sysv/linux/arm/brk.c: New file.
+
+ * sysdeps/arm/machine-gmon.h: Improved profiling for ARM.
+ * sysdeps/arm/sysdep.h (CALL_MCOUNT): Replace stub with real
+ implementation.
+ * sysdeps/unix/sysv/linux/arm/clone.S: Likewise.
+ Based on patch from Scott Bambrough and Pat Beirne.
+
+ * shlib-versions: Add appropriate definitions for ARM machines.
+
+ * README.template: Mention that Linux/ARM with ELF works now.
+
+1998-07-18 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * Makerules: Generate compilation rules for all object suffixes,
+ not only those currently selected, for sources in the current or
+ object directory.
+
+1998-07-24 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * posix/fnmatch.c (fnmatch): Allow `/' in character class. Don't
+ match `/' in filename by a character class if requested.
+ * posix/testfnm.c: Rewritten.
+ * posix/testfnm.args: Removed.
+
+1998-07-25 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * posix/annexc.c (limits_syms): Add missing symbols.
+ (stdarg_syms): Move va_list to `maybe' list.
+ (stdio_syms): Add FOPEN_MAX.
+
+1998-07-25 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/i386/bits/byteswap.h (__bswap_64): Change __v to __w to
+ prevent conflict with __bswap_32.
+
+1998-07-24 21:29 Ulrich Drepper <drepper@cygnus.com>
+
+ * nscd/connections.c (pw_send_answer): Make one single writev call.
+ (gr_send_answer): Do the work in two writev calls. This change
+ changes the protocol.
+
+ * nscd/nscd_getgr_r.c (__nscd_getgr_r): Adjust for protocol change.
+ We now can do the job using two readv calls.
+
+1998-07-24 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/generic/glob.c (glob): Fix problems with handle tilde.
+ Reported by Brian Wellington <bwelling@anomaly.munge.com>.
+
+ * elf/elf.h: Really define Elf64_Verdef, Elf64_Verdaux, Elf64_Verneed,
+ and Elf64_Vernaux.
+
+1998-07-24 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * configure.in: Recognize pgcc as compiler.
+ Reported by sauron@angband.ee.ualberta.ca.
+
+1998-07-02 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
+
+ * nscd/dbg_log.c: Make sure, that debug message is really written.
+ * nscd/nscd.c: Don't use daemon(), set signal handler after fork.
+
+1998-07-23 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/generic/glob.c: Fix two problems with GLOB_DOOFFS.
+ Reported by bwelling@anomaly.munge.com [PR libc/720].
+
+ * sysdeps/libm-ieee754/k_standard.c: Return NAN for libm not in
+ SVID more for gamma(x) with x integer <= 0.
+ Reported by Stephen L Moshier <moshier@mediaone.net>.
+
+ * math/libm-test.c (gamma_test): Add test for gamma(-1) and gamma(0).
+ Correct test for SVID version of gamma.
+
+ * sysdeps/libm-ieee754/w_gamma.c: Use correct matherr call in SVID
+ emulation mode.
+ * sysdeps/libm-ieee754/w_gammaf.c: Likewise.
+ * sysdeps/libm-ieee754/w_gammal.c: Likewise.
+
+ * string/string.h: Don't use string function optimization for C++
+ as long as we use macros.
+
+1998-07-22 23:47 Ulrich Drepper <drepper@cygnus.com>
+
+ * posix/fnmatch.c: Fix completely broken range matching.
+
+1998-07-22 23:19 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/bits/siginfo.h: Fix typo.
+
+1998-07-22 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makefile (headers2_0): Add sigstack.h.
+
+ * sysdeps/unix/sysv/linux/alpha/getrusage.S: Also define __getrusage.
+
+1998-07-22 11:43 Ulrich Drepper <drepper@cygnus.com>
+
+ * libio/fileops.c (_IO_file_sync): Don't lock stream here.
+ Reported by Thorsten Kukuk.
+
+ * string/strcoll.c: Correct problem with empty strings.
+ * string/strxfrm.c: Likewise.
+ Reported by vbzoli@hbrt.hu [PR libc/719].
+
+1998-07-21 18:40 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ * sysdeps/posix/tempname.c: Use the random-name generator
+ already used by mktemp/mkstemp. Honor TMPDIR.
+
+1998-07-21 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * hurd/Makefile (routines): Remove cthreads.
+ * sysdeps/mach/hurd/Makefile (sysdep_routines): Add cthreads.
+
+ * sysdeps/unix/sysv/linux/i386/Dist: Add missing files.
+
+ * manual/Makefile (distribute): Add summary.texi.
+
+1998-07-20 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/unix/sysv/linux/m68k/sigcontextinfo.h: Fix typo.
+
+1998-07-21 Ulrich Drepper <drepper@cygnus.com>
+
+ * configure.in: Correct expression to match gcc version.
+
+ * configure.in: Move test for available port after machine
+ variable is defined.
+
+1998-07-21 16:08 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ * sysdeps/unix/sysv/linux/sendmsg.c: If passing a SCM_CREDS
+ message, copy the buffer and resize it to what the kernel
+ wants to see. Bug found and analyzed by Thorsten Kukuk
+ <kukuk@weber-eb.uni-paderborn.de>
+
+1998-07-20 Jose M. Moya <josem@gnu.org>
+
+ * hurd/hurdmsg.c (_S_msg_get_env_variable): Copy getenv return
+ value.
+
+1998-07-20 Roland McGrath <roland@baalperazim.frob.com>
+
+ * sysdeps/mach/hurd/getdomain.c: New file.
+ * sysdeps/mach/hurd/setdomain.c: New file.
+
+1998-07-20 Roland McGrath <roland@baalperazim.frob.com>
+
+ * sysdeps/unix/bsd/sigsuspend.c: Define __sigsuspend with sigsuspend as
+ a weak alias.
+
+1998-07-20 18:23 Ulrich Drepper <drepper@cygnus.com>
+
+ * libio/libioP.h: Use __PMT in typedef.
+ * libio/strfile.h: Likewise.
+
+1998-07-20 18:20 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/gethostname.c: Return ENAMETOOLONG if
+ buffer is too small.
+ Reported by John Levon <j_levon@ncc.co.uk>.
+
+1998-07-20 17:09 Ulrich Drepper <drepper@cygnus.com>
+
+ * shlib-versions: Remove definition for libSegFault.
+
+ * memory.texi: Comment out the relocating allocator description.
+ * manual/signal.texi: Remove reference to relocating allocator.
+ * manual/top-menu.texi: Regenerated.
+
+ * posix/fnmatch.c: Implement [: :] and change to recognize
+ ^ as negation only when not _POSIXLY_CORRECT.
+
+ * sysdeps/generic/glob.c: Add several optimizations.
+
+ * posix/glob.h: Undefine __PMT to prevent warnings.
+ Reported by Roland McGrath.
+
+ * posix/regex.c: Define namespace macros only for _LIBC.
+
+ * sysdeps/arm/dl-machine.h: Fix typo.
+
+ * sysdeps/unix/sysv/sysv4/solaris2/sigpending.c: New file.
+ * sysdeps/unix/sysv/sysv4/solaris2/sigstack.c: New file.
+ * sysdeps/unix/sysv/sysv4/solaris2/sigwaitinfo.c: New file.
+ * sysdeps/unix/sysv/sysv4/solaris2/syscalls.list: Add sigaltstack,
+ sigpending, sigqueue, and sigtimedwait.
+ * sysdeps/unix/sysv/sysv4/solaris2/sparc/sparc32/syscall.S: New file.
+
+ * timezone/leapseconds: Update from tzdata1998f.
+
+1998-07-18 Mark Kettenis <kettenis@phys.uva.nl>
+
+ * stdio/stdio.h [__USE_GNU]: Add prototype for fputs_unlocked.
+ * stdio/Versions [GLIBC_2.1]: Add fputs_unlocked.
+ * libio/stdio.h: Fix typo.
+
+1998-07-19 Roland McGrath <roland@baalperazim.frob.com>
+
+ * sysdeps/mach/hurd/dl-sysdep.c (_dl_sysdep_start): #if 0 out the
+ magic memobj port arg parsing stuff. Fix it someday when we are ready
+ to really use it.
+ (_dl_sysdep_output): New function, modified from _dl_sysdep_error.
+ (_dl_sysdep_error, _dl_sysdep_message, _dl_sysdep_fatal): Removed.
+
+1998-07-19 Roland McGrath <roland@baalperazim.frob.com>
+
+ * stdio/fputs.c: Add fputs_unlocked as weak alias for fputs.
+
+1998-07-19 Roland McGrath <roland@baalperazim.frob.com>
+
+ * sysdeps/posix/sigsuspend.c: Define __sigsuspend with sigsuspend as
+ a weak alias.
+ * sysdeps/mach/hurd/sigsuspend.c: Likewise.
+ * sysdeps/generic/sigsuspend.c: Likewise.
+
+1998-07-19 Roland McGrath <roland@baalperazim.frob.com>
+
+ * sysdeps/mach/hurd/i386/sigcontextinfo.h: New file.
+
+1998-07-19 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * Makerules (map-file): Don't use $(wildcard) to find the
+ generated version script, instead look in $(version-maps).
+ ($(common-objpfx)libc.so): Only depend on libc.map if versioning
+ is used.
+ * extra-lib.mk ($(objpfx)$(lib).so): Only depend on version script
+ if versioning is used. Don't use $(wildcard) to find the
+ generated version script, instead look in $(verson-maps).
+
+1998-07-17 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/generic/segfault.c: Rename GET_EIP to GET_PC. Remove
+ unused function handle.
+ * sysdeps/generic/sigcontextinfo.h: Rename GET_EIP to GET_PC.
+ * sysdeps/unix/sysv/linux/i386/sigcontextinfo.h: Likewise.
+ * debug/catchsegv.sh: Fix argument processing, quoting and various
+ typos. Put the crash info always in the current directory. Find
+ program in $PATH if it contains no directory component.
+ * Makerules (install-lib.so-versioned,
+ install-lib.so-unversioned): New variables.
+ (install-lib-nosubdir): Depend on unversioned libs in
+ slibdir, not libdir.
+
+1998-07-19 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * Make-dist (+tsrcs): Remove references to %-map variables and
+ *.map files. Add Versions in subdirs.
+ * Makerules (distinfo-vars): Don't write out %-map variables.
+
+1998-07-20 13:55 Ulrich Drepper <drepper@cygnus.com>
+
+ * inet/protocols/rwhod.h: Remove definition of _PATH_RWHODIR.
+ Include <paths.h> instead.
+ * sysdeps/generic/paths.h: Define _PATH_RWHODIR.
+ * sysdeps/unix/sysv/linux/paths.h: Likewise.
+ Reported by Dale Scheetz <dwarf@polaris.net>.
+
+1998-07-17 21:44 Ulrich Drepper <drepper@cygnus.com>
+
+ * catgets/open_catalog.c: Strictly check whether catalog file is
+ larger enough for the data. Reported by Andries.Brouwer@cwi.nl.
+
+1998-07-17 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/unix/sysv/linux/m68k/sigcontextinfo.h: New file.
+
+ * sysdeps/unix/sysv/linux/m68k/socket.S: Support NO_WEAK_ALIAS.
+
+1998-07-17 Ulrich Drepper <drepper@cygnus.com>
+
+ * debug/catchsegv.sh: Fix several stupid bugs.
+
+ * shlib-versions: Define version for libSegFault.
+ * debug/Makefile: Replace shared lib version number while rewriting.
+
+1998-07-17 Mark Kettenis <kettenis@phys.uva.nl>
+
+ * sysdeps/mach/hurd/dl-sysdep.c (__mmap): Add sanity check.
+ Suggested by Roland McGrath.
+
+1998-07-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * timezone/Makefile: Remove '-L (leapseconds)' for testdata
+ generation to control environment.
+
+1998-07-17 09:21 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/sysv4/solaris2/bits/signum.h: Define SIG_HOLD.
+ Patch by John Tobey <jtobey@banta-im.com>.
+
+ * manual/llio.texi: Document readv/writev and mmap functions.
+ Patch by Michael Deutschmann <michael@talamasca.wkpowerlink.com>.
+
+1998-07-16 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * manual/Makefile (texis): Depend on texis.awk.
+ (nonexamples): Filter out add-on chapters.
+ (chapters.% top-menu.%): Depend on libc-texinfo.sh.
+ (stamp-summary): Depend on $(texis) except summary.texi.
+ ($(inst_infodir)/libc.info): Simplify command.
+ * manual/libc-texinfo.sh: Cleaned up to use less temporary files.
+ Fix the generation of the detailed node listing to make it
+ complete again.
+ * manual/math.texi: Fix signature of lgamma_r.
+
+1998-07-16 23:06 Ulrich Drepper <drepper@cygnus.com>
+
+ * debug/Makefile (distribute): Add sigcontextinfo.h.
+ Add rules to generate and install catchsegv.
+ * debug/catchsegv.sh: New file.
+
+1998-07-16 Mark Kettenis <kettenis@phys.uva.nl>
+
+ * sysdeps/mach/hurd/dl-sysdep.c (open_file): Return a Hurd I/O
+ port instead of a Mach memory object.
+ (__open): Likewise.
+ (__libc_read): New function.
+ (__mmap): Change to take a Hurd I/O port instead of a Mach memory
+ object.
+
+1998-07-16 20:01 Ulrich Drepper <drepper@cygnus.com>
+
+ * debug/Makefile (routines): Add backtracesymsfd.
+ Add rules to generate libSegFault.
+ * debug/Versions: Add __backtrace_symbols_fd and backtrace_symbols_fd.
+ * debug/execinfo.h: Declare backtrace_symbols_fd.
+ * sysdeps/generic/backtracesymsfd.c: New file.
+ * sysdeps/generic/elf/backtracesymsfd.c: New file.
+ * sysdeps/generic/segfault.c: New file.
+ * sysdeps/generic/sigcontextinfo.h: New file.
+ * sysdeps/unix/sysv/linux/i386/sigcontextinfo.h: New file.
+
+ * sysdeps/generic/elf/backtracesyms.c: Remove unneeded +.
+
+1998-07-16 19:27 Ulrich Drepper <drepper@cygnus.com>
+
+ * elf/rtld.c (process_envvars): Also recognize on as LD_BIND_NOW value.
+ (process_envvars): Append .PID to LD_DEBUG_OUTPUT file name.
+
+1998-07-16 13:44 Ulrich Drepper <drepper@cygnus.com>
+
+ * argp/argp-fmtstream.c: Fix warnings introduced in last change.
+ * assert/assert-perr.c: Likewise.
+ * assert/assert.c: Likewise.
+ * gconv_conf.c: Likewise.
+ * libio/iofputs_u.c: Likewise.
+ * malloc/mtrace.c: Likewise.
+ * malloc/obstack.c: Likewise.
+ * misc/error.c: Likewise.
+ * misc/syslog.c: Likewise.
+ * stdio-common/asprintf.c: Likewise.
+ * stdio-common/dprintf.c: Likewise.
+ * stdio-common/getw.c: Likewise.
+ * stdio-common/putw.c: Likewise.
+ * stdio-common/snprintf.c: Likewise.
+ * stdio-common/sprintf.c: Likewise.
+ * stdio-common/sscanf.c: Likewise.
+ * sunrpc/svc_simple.c: Likewise.
+ * sysdeps/generic/abort.c: Likewise.
+
+ * rt/aio_cancel.c: Don't define ECANCELED here.
+ * sysdeps/unix/sysv/linux/bits/errno.h: Define ECANCELED correctly.
+
+1998-07-16 10:23 Ulrich Drepper <drepper@cygnus.com>
+
+ * argp/argp-fmtstream.c: Unify names of used global functions.
+ * argp/argp-help.c: Likewise.
+ * assert/assert-perr.c: Likewise
+ * assert/assert.c: Likewise
+ * dirent/scandir.c: Likewise
+ * dirent/scandir64.c: Likewise
+ * dirent/versionsort.c: Likewise
+ * dirent/versionsort64.c: Likewise
+ * gmon/bb_exit_func.c: Likewise.
+ * gmon/gmon.c: Likewise.
+ * grp/initgroups.c: Likewise.
+ * iconv/gconv_conf.c: Likewise.
+ * inet/getnameinfo.c: Likewise.
+ * inet/getnetgrent_r.c: Likewise.
+ * inet/inet_ntoa.c: Likewise.
+ * inet/rcmd.c: Likewise.
+ * inet/rexec.c: Likewise.
+ * inet/ruserpass.c: Likewise.
+ * io/fts.c: Likewise.
+ * io/ftw.c: Likewise.
+ * io/ftw64.c: Likewise.
+ * io/getdirname.c: Likewise.
+ * io/getwd.c: Likewise.
+ * io/lockf.c: Likewise.
+ * libio/iofdopen.c: Likewise.
+ * libio/iopopen.c: Likewise.
+ * login/utmp_daemon.c: Likewise.
+ * malloc/mtrace.c: Likewise.
+ * malloc/obstack.c
+ * misc/daemon.c: Likewise.
+ * misc/efgcvt_r.c: Likewise.
+ * misc/err.c: Likewise.
+ * misc/error.c: Likewise.
+ * misc/fstab.c: Likewise.
+ * misc/getpass.c: Likewise.
+ * misc/getttyent.c: Likewise.
+ * misc/mntent_r.c: Likewise.
+ * misc/search.h: Likewise.
+ * misc/syslog.c: Likewise.
+ * nscd/nscd_getgr_r.c: Likewise.
+ * nscd/nscd_getpw_r.c: Likewise.
+ * posix/getpgrp.c: Likewise.
+ * posix/wordexp.c: Likewise.
+ * pwd/fgetpwent_r.c: Likewise.
+ * pwd/getpw.c: Likewise.
+ * resolv/herror.c: Likewise.
+ * resolv/res_init.c: Likewise.
+ * shadow/fgetspent_r.c: Likewise.
+ * shadow/lckpwdf.c: Likewise.
+ * signal/sigrelse.c: Likewise.
+ * stdio-common/asprintf.c: Likewise.
+ * stdio-common/dprintf.c: Likewise.
+ * stdio-common/getw.c: Likewise.
+ * stdio-common/putw.c: Likewise.
+ * stdio-common/snprintf.c: Likewise.
+ * stdio-common/sprintf.c: Likewise.
+ * stdio-common/sscanf.c: Likewise.
+ * stdlib/lrand48_r.c: Likewise.
+ * stdlib/mrand48_r.c: Likewise.
+ * string/argz-replace.c: Likewise.
+ * string/envz.c: Likewise.
+ * sunrpc/auth_des.c: Likewise.
+ * sunrpc/auth_unix.c: Likewise.
+ * sunrpc/bindrsvprt.c: Likewise.
+ * sunrpc/clnt_gen.c: Likewise.
+ * sunrpc/clnt_perr.c: Likewise.
+ * sunrpc/clnt_simp.c: Likewise.
+ * sunrpc/clnt_tcp.c: Likewise.
+ * sunrpc/clnt_udp.c: Likewise.
+ * sunrpc/get_myaddr.c: Likewise.
+ * sunrpc/key_call.c: Likewise.
+ * sunrpc/netname.c: Likewise.
+ * sunrpc/openchild.c: Likewise.
+ * sunrpc/pmap_rmt.c: Likewise.
+ * sunrpc/rpc_dtable.c: Likewise.
+ * sunrpc/rtime.c: Likewise.
+ * sunrpc/svc_run.c: Likewise.
+ * sunrpc/svc_simple.c: Likewise.
+ * sunrpc/svc_tcp.c: Likewise.
+ * sunrpc/svc_udp.c: Likewise.
+ * sunrpc/svcauth_des.c: Likewise.
+ * sunrpc/xdr_array.c: Likewise.
+ * sunrpc/xdr_rec.c: Likewise.
+ * sunrpc/xdr_ref.c: Likewise.
+ * sunrpc/xdr_stdio.c: Likewise.
+ * sysdeps/generic/abort.c: Likewise.
+ * sysdeps/generic/dl-sysdep.c: Likewise.
+ * sysdeps/generic/fstatfs64.c: Likewise.
+ * sysdeps/generic/ftruncate64.c: Likewise.
+ * sysdeps/generic/getrlimit64.c: Likewise.
+ * sysdeps/generic/glob.c: Likewise.
+ * sysdeps/generic/prof-freq.c: Likewise.
+ * sysdeps/generic/putenv.c: Likewise.
+ * sysdeps/generic/statfs64.c: Likewise.
+ * sysdeps/generic/ttyname_r.c: Likewise.
+ * sysdeps/generic/utmp_file.c: Likewise.
+ * sysdeps/generic/vlimit.c: Likewise.
+ * sysdeps/generic/vtimes.c: Likewise.
+ * sysdeps/posix/cuserid.c: Likewise.
+ * sysdeps/posix/euidaccess.c: Likewise.
+ * sysdeps/posix/mkstemp.c: Likewise.
+ * sysdeps/posix/mktemp.c: Likewise.
+ * sysdeps/posix/pread.c: Likewise.
+ * sysdeps/posix/pread64.c: Likewise.
+ * sysdeps/posix/profil.c: Likewise.
+ * sysdeps/posix/pwrite.c: Likewise.
+ * sysdeps/posix/pwrite64.c: Likewise.
+ * sysdeps/posix/sigblock.c: Likewise.
+ * sysdeps/posix/sigpause.c: Likewise.
+ * sysdeps/posix/ttyname.c: Likewise.
+ * sysdeps/posix/ttyname_r.c: Likewise.
+ * sysdeps/posix/waitid.c: Likewise.
+ * sysdeps/unix/getlogin_r.c: Likewise.
+ * sysdeps/unix/grantpt.c: Likewise.
+ * sysdeps/unix/rewinddir.c: Likewise.
+ * sysdeps/unix/sysv/linux/gethostid.c: Likewise.
+ * sysdeps/unix/sysv/linux/getpt.c: Likewise.
+ * sysdeps/unix/sysv/linux/if_index.c: Likewise.
+ * sysdeps/unix/sysv/linux/ptsname.c: Likewise.
+ * sysdeps/unix/sysv/linux/sendmsg.c: Likewise.
+ * sysdeps/unix/sysv/linux/statvfs.c: Likewise.
+ * sysdeps/unix/sysv/linux/ttyname.c: Likewise.
+ * sysdeps/unix/sysv/linux/ttyname_r.c: Likewise.
+ * sysdeps/unix/sysv/linux/ulimit.c: Likewise.
+ * sysdeps/unix/sysv/linux/unlockpt.c: Likewise.
+ * sysvipc/sys/shm.h: Likewise.
+ * time/ctime_r.c: Likewise.
+ * time/strptime.c: Likewise.
+ * wcsmbs/mbrlen.c: Likewise.
+ * wcsmbs/wcsdup.c: Likewise.
+ * wcsmbs/wcsxfrm.c: Likewise.
+ * wctype/wcfuncs.c: Likewise.
+
+ * sysdeps/unix/sysv/linux/i386/socker.S: Change to honor NO_WEAK_ALIAS.
+ * sysdeps/unix/sysv/linux/accept.S: Don't generate __ name.
+ * sysdeps/unix/sysv/linux/bind.S: Likewise.
+ * sysdeps/unix/sysv/linux/getsockname.S: Likewise.
+ * sysdeps/unix/sysv/linux/listen.S: Likewise.
+ * sysdeps/unix/sysv/linux/recvfrom.S: Likewise.
+ * sysdeps/unix/sysv/linux/sendto.S: Likewise.
+ * sysdeps/unix/sysv/linux/setsockopt.S: Likewise.
+
+ * grp/fgetgrent_r.c: Use explicit locking of the stream.
+
+ * elf/Makefile (rtld-routines): Add dl-environ.
+ * sysdeps/generic/dl-sysdep.c: Move _dl_next_ld_env_entry and unsetenv
+ to...
+ * sysdeps/generic/dl-environ.c: here. New file.
+
+ * libio/Makefile [REENTRANT] (routines): Add iofputs_u.
+ * libio/Versions: Add fputs_unlocked.
+ * libio/iofputs_u.c: New file.
+ * libio/stdio.h: Add prototype for fputs_unlocked.
+
+ * sunrpc/rpc/auth.h: Use __PMT instead of __P in type definitions.
+ * sunrpc/rpc/clnt.h: Likewise.
+ * sunrpc/rpc/pmap_clnt.h: Likewise.
+ * sunrpc/rpc/svc.h: Likewise.
+ * sunrpc/rpc/xdr.h: Likewise.
+
+ * sysdeps/i386/memchr.S: Correct for more strict gas.
+ * sysdeps/i386/fpu/bits/mathinline.h: Likewise.
+ * sysdeps/libm-i387/i686/s_fdim.S: Likewise.
+ * sysdeps/libm-i387/i686/s_fdimf.S: Likewise.
+ * sysdeps/libm-i387/i686/s_fdiml.S: Likewise.
+
+1998-07-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * configure.in: Change message for binutils version from
+ 2.8.1.0.17->2.8.1.0.23.
+
+1998-07-15 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/sysv4/solaris2/sparc/sysdep.h: Define LOC.
+ Patch by John Tobey <jtobey@banta-im.com>.
+
+1998-07-14 Ulrich Drepper <drepper@cygnus.com>
+
+ * sunrpc/auth_unix.c (authunix_create_default): Use __sysconf
+ instead of sysconf.
+
+1998-07-14 19:39 Ulrich Drepper <drepper@cygnus.com>
+
+ * stdio-common/vfscanf.c (ungetc): Use _IO_sputbackc, not _IO_ungetc.
+ [_USE_IN_LIBIO] (encode_error): Free cancelation handler.
+ (conv_error): Likewise.
+ (input_error): Likewise.
+ (memory_error): Likewise.
+
+1998-07-12 Mark Kettenis <kettenis@phys.uva.nl>
+
+ * sysdeps/mach/hurd/dl-sysdep.c: Bring in sync with generic
+ implementation. Include <entry.h>. Replace references to symbol
+ _start with macro ENTRY_POINT.
+ (__libc_uid): Remove.
+ (__libc_multiple_libcs): New variable.
+ (__libc_stack_end): New variable.
+ (_dl_hwcap_mask): New variable.
+ (_dl_important_hwcaps): New function.
+ (_dl_show_auxv): Mark internal.
+
+1998-07-14 Mark Kettenis <kettenis@phys.uva.nl>
+
+ * mach/Makefile: Create target directory before generating
+ mach-syscalls.mk.
+ * mach/Machrules: Invoke awk using AWK variable. Create target
+ directory before generating server stubs.
+
+1998-07-14 Ulrich Drepper <drepper@cygnus.com>
+
+ * wcsmbs/wcslen.c (__wcslen): Fix comment.
+
+ * configure.in: Allow egcs-2.92.
+
+1998-07-10 18:14 -0400 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ * manual/Makefile: Overhauled. Generate libc.texinfo from the
+ chapter files. Exorcise the chapters, chapters-incl mess.
+ Support inserting doc chapters from add-on modules.
+ (chapters): New variable.
+ (add-chapters): New variable.
+ (appendices): New variable.
+ (libc.texinfo): New target.
+ (clean): Fix bugs.
+ (realclean): Fix bugs.
+
+ * manual/texis.awk: New file.
+ * manual/libc-texinfo.sh: New file.
+ * manual/libc-texinfo.in: New file.
+
+ * manual/conf.texi (top @node): Remove next pointer.
+ * manual/lang.texi (top @node): Remove prev pointer.
+
+ * manual/job.texi (top @node): Add explicit pointers.
+ * manual/message.texi (top @node): Add explicit pointers.
+ * manual/nss.texi (top @node): Add explicit pointers.
+ * manual/process.texi (top @node): Add explicit pointers.
+ * manual/startup.texi (top @node): Add explicit pointers.
+ * manual/terminal.texi (top @node): Add explicit pointers.
+ * manual/users.texi (top @node): Add explicit pointers.
+
+ * manual/arith.texi: Add %MENU% tag.
+ * manual/conf.texi: Add %MENU% tag.
+ * manual/contrib.texi: Add %MENU% tag.
+ * manual/ctype.texi: Add %MENU% tag.
+ * manual/errno.texi: Add %MENU% tag.
+ * manual/filesys.texi: Add %MENU% tag.
+ * manual/header.texi: Add %MENU% tag.
+ * manual/install.texi: Add %MENU% tag.
+ * manual/intro.texi: Add %MENU% tag.
+ * manual/io.texi: Add %MENU% tag.
+ * manual/job.texi: Add %MENU% tag.
+ * manual/lang.texi: Add %MENU% tag.
+ * manual/llio.texi: Add %MENU% tag.
+ * manual/locale.texi: Add %MENU% tag.
+ * manual/maint.texi: Add %MENU% tag.
+ * manual/math.texi: Add %MENU% tag.
+ * manual/mbyte.texi: Add %MENU% tag.
+ * manual/memory.texi: Add %MENU% tag.
+ * manual/message.texi: Add %MENU% tag.
+ * manual/nss.texi: Add %MENU% tag.
+ * manual/pattern.texi: Add %MENU% tag.
+ * manual/pipe.texi: Add %MENU% tag.
+ * manual/process.texi: Add %MENU% tag.
+ * manual/search.texi: Add %MENU% tag.
+ * manual/setjmp.texi: Add %MENU% tag.
+ * manual/signal.texi: Add %MENU% tag.
+ * manual/socket.texi: Add %MENU% tag.
+ * manual/startup.texi: Add %MENU% tag.
+ * manual/stdio.texi: Add %MENU% tag.
+ * manual/string.texi: Add %MENU% tag.
+ * manual/sysinfo.texi: Add %MENU% tag.
+ * manual/terminal.texi: Add %MENU% tag.
+ * manual/time.texi: Add %MENU% tag.
+ * manual/users.texi: Add %MENU% tag.
+
+1998-07-13 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/i386/dl-procinfo.h (x86_cap_flags):
+ Update.
+
+1998-07-11 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * sysdeps/unix/sysv/linux/recvmsg.c (__libc_recvmsg): Use ANSI
+ style declaration to avoid warning.
+ * sysdeps/unix/sysv/linux/sendmsg.c (__libc_sendmsg): Likewise.
+
+1998-07-04 Mark Kettenis <kettenis@phys.uva.nl>
+
+ * elf/rtld.c (process_dl_debug): Add missing continue.
+
+1998-07-12 Mark Kettenis <kettenis@phys.uva.nl>
+
+ * elf/rtld.c (_dl_skip_args): Make global because the Hurd startup
+ code needs it.
+
+1998-07-10 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * Makeconfig ($(common-objpfx)sysd-dirs): Write out definition of
+ sysd-dirs-done.
+ * Makerules: Don't generate version maps too early.
+ ($(common-objpfx)sysd-versions): Force regeneration if the list of
+ subdirs has changed.
+
+1998-07-10 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * elf/dlfcn.h (DL_CALL_FCT): Use portable comma expression.
+
+1998-07-11 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * iconv/gconv_db.c (gen_steps): Always set *handle and *nsteps.
+ * iconv/gconv_dl.c (__gconv_find_shlib): Correct use of tfind
+ return value.
+
+1998-07-12 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * elf/dl-open.c (dl_open_worker): New function.
+ (_dl_open): Call it to do the actual work while catching errors.
+ * elf/dl-close.c (_dl_close): Only call termination function if
+ the initialisation function was called.
+
+1998-07-13 Ulrich Drepper <drepper@cygnus.com>
+
+ * libio/libioP.h (_IO_cleanup_registration_needed): Use __PMT.
+ Reported by Felix von Leitner <leitner@amdiv.de>.
+
+1998-07-09 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * Make-dist (+sysdep-tsrcs): Add Versions.
+
+1998-07-09 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * math/Versions: Remove __log1p, __atan2, __fe_dfl_env,
+ __fe_enabled_env, __fe_nonieee_env and __fe_nomask_env.
+ * sysdeps/powerpc/Versions: New file.
+ * csu/Versions: Remove brk, sbrk, environ, __environ, _environ
+ and __errno_location.
+ * misc/Versions: Add brk and sbrk.
+ * posix/Versions: Add environ, __environ and _environ.
+ * sysdeps/unix/sysv/linux/Versions: Add __errno_location.
+
+1998-07-10 11:58 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makerules [no_defs]: Avoid dependency for loading sysd-versions.
+ Patch by Zack Weinberg.
+
+1998-07-10 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * posix/annexc.c (errno_maybe): EACCESS->EACCES.
+ (signal_maybe): Remove duplicate entry SIGEV_SIGNAL.
+ (mman_maybe): Remove duplicates MS_ASYNC, MS_INVALIDATE.
+
+1998-07-09 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * sysdeps/unix/sysv/linux/bits/fcntl.h: Fix typo.
+
+1998-07-09 Ulrich Drepper <drepper@cygnus.com>
+
+ * posix/unistd.h: Simplify #ifdefs.
+
+ * libio/libio.h: Undo last change due to possible C++ problems.
+ * libio/fileops.h: Likewise.
+
+1998-07-09 13:34 Ulrich Drepper <drepper@cygnus.com>
+
+ * grp/grp.h: Define gid_t also for __USE_XOPEN.
+ * io/fcntl.h: Include <sys/stat.h> also for __USE_XOPEN.
+ * io/utime.h: Define time_t also for __USE_XOPEN.
+ * io/sys/stat.h: Define time_t also for __USE_XOPEN.
+ Define *_t types except for pid_t also for __USE_XOPEN.
+ Define S_* macros also for __USE_XOPEN.
+ * locale/langinfo.h: Define CODESET, CRNCYSTR, RADIXCHAR, and
+ THOUSEP also for __USE_XOPEN.
+ * math/math.c: Define M_* macros also for __USE_XOPEN.
+ * math/bits/mathcalls.h: Declare hypot also for __USE_XOPEN.
+ * posix/fnmatch.h: Define FNM_NOSYS and for if _XOPEN_SOURCE is
+ defined.
+ * posix/glob.h: Likewise for GLOB_NOSYS.
+ * posix/regex.h: Likewise for REG_NOSYS.
+ * posix/wordexp.h: Likewise for WRDE_NOSYS.
+ * posix/unistd.h: Define *_t types also for __USE_XOPEN.
+ * posix/sys/wait.h: Define pid_t for __USE_XOPEN.
+ * pwd/pwd.h: Define gid_t and pid_t also for __USE_XOPEN.
+ * signal/signal.h: Define pid_t also for __USE_XOPEN.
+ * sysdeps/unix/sysv/linux/bits/fcntl.h: Define _RSYNC and O_DSYNC also
+ for __USE_POSIX199309.
+ * sysdeps/unix/sysv/linux/bits/termios.h: Define the various B*
+ constants also for __USE_XOPEN.
+ * wcsmbs/wchar.h: For XPG4 include wctype.h.
+
+ * intl/dcgettext.c (find_msg): Initialize act to prevent warning.
+ * locale/setlocale.c (new_composite_name): Likewise for last_len.
+
+ * libio/stdio.h: Don't declare fclose_unlocked.
+
+ * sysdeps/posix/fpathconf.c: Handle _PC_FILESIZEBITS.
+
+1998-07-08 Mark Kettenis <kettenis@phys.uva.nl>
+
+ * stdio/stdio.h: Add prototypes for fflush_unlocked,
+ getc_unlocked, getchar_unlocked, putc_unlocked, putchar_unlocked,
+ fgets_unlocked, fread_unlocked, fwrite_unlocked,
+ clearerr_unlocked, feof_unlocked, ferror_unlocked,
+ fileno_unlocked, flockfile, ftrylockfile, funlockfile.
+ [__USE_XOPEN && !__USE_GNU] Declare optarg, optind, opterr. Add
+ prototype for getopt.
+ * stdio/clearerr.c (clearerr_unlocked): Weak alias for clearerr.
+ * stdio/feof.c (feof_unlocked): Weak alias for feof.
+ * stdio/ferror.c (ferror_unlocked): Weak alias for ferror.
+ * stdio/fflush.c (fflush_unlocked): Weak alias for fflush.
+ * stdio/fgets.c (fgets_unlocked): Weak alias for fgets.
+ * stdio/fileno.c (fileno_unlocked): Weak alias for fileno.
+ * stdio/fputc.c (fputc_unlocked): Weak alias for fputc.
+ * stdio/fread.c (fread_unlocked): Weak alias for fread.
+ * stdio/fwrite.c (fwrite_unlocked): Weak alias for fwrite.
+ * stdio/getc.c (getchar_unlocked): Weak alias for getc.
+ * stdio/getchar.c (getchar_unlocked): Weak alias for getchar.
+ * stdio/putc.c (putc_unlocked): Weak alias for putc.
+ * stdio/putchar.c (putchar_unlocked): Weak alias for putchar.
+ * stdio/Versions [GLIBC_2.1]: Add clearerr_unlocked,
+ feof_unlocked, ferror_unlocked, fflush_unlocked, fgets_unlocked,
+ fileno_unlocked, fputc_unlocked, fread_unlocked, fwrite_unlocked,
+ getc_unlocked, getchar_unlocked, putc_unlocked and
+ putchar_unlocked.
+
+ * libio/Versions: Move flockfile, ftrylockfile and funlockfile
+ from here ...
+ * stdio-common/Versions: ... to here.
+
+1998-07-09 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * Makerules (versioning): Correct typo.
+
+1998-07-08 22:18 Ulrich Drepper <drepper@cygnus.com>
+
+ * elf/Versions: Add _dl_mcount_wrapper_check.
+ * elf/dlfcn.h (DL_CALL_FCT): Don't test _dl_profile_map, simply use
+ _dl_mcount_wrapper_check.
+ * iconv/skeleton.c: Use DL_CALL_FCT, not _CALL_DL_FCT.
+
+ * elf/dl-reloc.c (_dl_relocate_object): Don't declare using
+ internal_function.
+ * elf/ldsodefs.h: Likewise.
+
+ * io/fcntl.h: Define SEEK_SET, SEEK_CUR, and SEEK_END.
+
+ * libio/stdio.h: Make sure va_list is defined for X/Open.
+ Define P_tmpdir for X/Open.
+
+ * posix/regex.h: Fix typo.
+
+ * posix/unistd.h: Define intptr_t if not already happened.
+ Add pthread_atfork prototype.
+ * sysdeps/generic/bits/types.h: Define __intptr_t.
+ * sysdeps/unix/sysv/linux/alpha/bits/types.h: Likewise.
+ * sysdeps/unix/sysv/linux/bits/types.h: Likewise.
+ * sysdeps/unix/sysv/linux/bits/mips/types.h: Likewise.
+ * sysdeps/unix/sysv/linux/bits/sparc/sparc64/types.h: Likewise.
+ * sysdeps/unix/sysv/sysv4/solaris2/bits/types.h: Likewise.
+ * sysdeps/wordsize-32/stdint.h: Don't define intptr_t if already done.
+ * sysdeps/wordsize-64/stdint.h: Likewise.
+
+ * posix/bits/posix1_lim.h: Define _POSIX_CLOCKRES_MIN.
+
+ * signal/Makefile (headers): Add bits/sigthread.h.
+ * signal/signal.h: Include bits/sigthread.h.
+ * sysdeps/generic/bits/sigthread.h: New file.
+
+ * stdlib/stdlib.h: Declare rand_r use __USE_POSIX.
+
+ * sysdeps/generic/bits/confname.h: Define _PC_FILESIZEBITS.
+ * sysdeps/posix/pathconf.c: Handle _PC_FILESIZEBITS.
+ * sysdeps/unix/sysv/linux/alpha/fpathconf.c: New file.
+ * sysdeps/unix/sysv/linux/alpha/pathconf.c: New file.
+
+ * sysdeps/generic/bits/dlfcn.h: Define RTLD_LOCAL.
+
+ * elf/rtld.c: Remove preloading and loadpath variables in SUID
+ programs.
+ * sysdeps/generic/dl-sysdep.c: Define unsetenv.
+ * sysdeps/unix/sysv/linux/i386/dl-librecon.h: Define other envvar
+ names.
+
+ * sysdeps/unix/sysv/linux/bits/errno.h: Define ECANCELED.
+
+ * sysdeps/unix/sysv/linux/bits/fcntl.h: Define O_RSYNC and O_DSYNC.
+ Remove O_READ and O_WRITE definition.
+
+ * sysdeps/unix/sysv/linux/bits/resource.h: Define RLIM_SAVED_MAX
+ and RLIM_SAVED_CUR.
+
+ * sysdeps/unix/sysv/linux/fstatvfs.h: Handle UFS filesystem.
+
+1998-07-06 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * Makerules ($(common-objpfx)sysd-versions): Expect awk script in
+ scripts directory. Pass move-if-change to awk.
+ (common-generated): Add $(version-maps) and sysd-versions.
+ * versions.awk: Moved to...
+ * scripts/versions.awk: ... here. Use move-if-change to void
+ touching unchanged files. Print "version-maps = ..." instead of
+ "all-version-maps = ..." and without $(common-objpfx). Explain
+ expected variable names.
+ * Makefile (distribute): Updated.
+
+1998-07-06 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * misc/getttyent.c (getttyent): Don't return with locked stream.
+ * misc/mntent_r.c (__getmntent_r): Likewise.
+
+1998-07-07 18:24 Ulrich Drepper <drepper@cygnus.com>
+
+ * libio/fileops.c (_IO_do_write): Don't shrink wwrite buffer to zero
+ if stream is line buffered.
+ (_io_file_overflow): Likewise.
+ * libio/libio.h (_IO_putc_unlocked): Make sure that for line-buffered
+ streams writing '\n' flushes the string.
+
+1998-07-07 17:28 Ulrich Drepper <drepper@cygnus.com>
+
+ * elf/dl-profstub.c (_dl_profile_map): Only declare variable here.
+ * elf/dl-support.c: Define it here...
+ * elf/rtld.c: ...and here.
+
+1998-07-07 16:28 Ulrich Drepper <drepper@cygnus.com>
+
+ * grp/initgroups.c: Handle directives from nsswitch.conf file.
+
+1998-07-07 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/sparc/sparc64/bits/types.h: Add
+ __ino64_t definition.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/bits/types.h: Define
+ __off64_t. Reported by Felix von Leitner <leitner@math.fu-berlin.de>.
+
+ * sysdeps/unix/sysv/linux/ldd-rewrite.sed: Do not exit the shell
+ script if lddlibc4 failed.
+ Reported by B. D. Elliott <bde@accessone.com>.
+
+1998-07-06 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/generic/elf/backtracesyms.c (__backtrace_symbols):
+ Improve generated strings a bit.
+
+1998-07-06 14:36 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * posix/Makefile (generated): Remove $(objpfx) from the names.
+
+1998-07-05 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * stdio-common/test_rdwr.c: Use %Zu for size_t in printf
+ format string.
+
+ * libio/iofread_u.c: Include <stdio.h> for prototype.
+ * libio/iofwrite_u.c: Likewise.
+
+1998-07-06 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * db2/Versions: New file.
+
+1998-07-04 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * Makefile (lib-noranlib): Don't depend on sysd-versions.
+ ($(common-objpfx)sysd-versions): Remove rule.
+ * Makerules ($(common-objpfx)sysd-versions): Define here instead.
+ Pass name of Versions.def file to script and redirect output to
+ target. Include it and make all generated version maps depend on
+ it.
+ * versions.awk: Print out variable definition containing all
+ generated version maps. Print error messages to stderr. Remove
+ temp file.
+
+1998-07-04 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * posix/annexc.c (check_header): Terminate macro name before
+ comparing.
+ (get_null_defines): Allow builtin macros with parameters.
+ (fmt, testfmt): Add -D_LIBC.
+ * posix/Makefile: Remove bogus duplicate include directories from
+ annexc test command.
+
+1998-07-06 12:04 Ulrich Drepper <drepper@cygnus.com>
+
+ * nis/nss_nis/nis-pwd.c (internal_nis_getpwent_r): Handle adjunct
+ password scheme.
+ (_nss_nis_getpwnam_r): Likewise.
+ (_nss_nis_getpwuid_r): Likewise.
+
+1998-07-05 Mark Kettenis <kettenis@phys.uva.nl>
+
+ * libio/Versions: Move symbols whose source lives in
+ stdio-common to ...
+ * stdio-common/Versions: ... here.
+ * stdio/Versions: Add missing symbols.
+
+1998-07-05 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/__sendmsg.S: Define function as
+ __syscall_sendmsg.
+ * sysdeps/unix/sysv/linux/__recvmsg.S: Define function as
+ __syscall_recvmsg.
+ * sysdeps/unix/sysv/linux/recvmsg.c: Define function as __libc_recvmsg
+ and make __recvmsg and recvmsg weak aliases.
+ * sysdeps/unix/sysv/linux/sendmsg.c: Likewise for sendmsg.
+ * sysdeps/unix/sysv/linux/alpha/syscalls.list: Define __syscall_recvmsg
+ and __syscall_sendmsg.
+
+1998-07-05 11:49 Ulrich Drepper <drepper@cygnus.com>
+
+ * iconv/gconv_conf.c (read_conf_file): Use feof_unlocked on private
+ stream.
+ * inet/ruserpass.c (token): Likewise.
+ * nss/nsswitch.c (nss_parse_file): Likewise.
+ * intl/localealias.c: Likewise. Also for ferror.
+ * time/getdate.c (__getdate_r): Likewise.
+
+ * libio/Makefile (routines): Add iofgets_u.
+ * libio/iofgets_u.c: New file.
+ * libio/Versions: Add fgets_unlocked.
+ * libio/stdio.h: Add prototype for fgets_unlocked.
+
+ * misc/getttyent.c (getttyent): Use fgets_unlocked instead of fgets.
+ * misc/getusershell.c (initshells): Likewise.
+ * misc/mntent_r.c (__getmntent_r): Explicitly lock stream. Use
+ fgets_unlocked.
+ * nss/nss_files/files-XXX.c (internal_getent): Likewise.
+ * resolv/res_init.c (res_init): Likewise.
+ * sysdeps/unix/sysv/linux/getsysstats.c: Likewise.
+
+1998-05-23 Philip Blundell <Philip.Blundell@pobox.com>
+
+ * sysdeps/unix/sysv/linux/arm/syscalls.list: Add `syscall'.
+ * sysdeps/unix/sysv/linux/arm/syscall.S: Deleted.
+
+1998-07-05 Ulrich Drepper <drepper@cygnus.com>
+
+ * misc/getttyent.c (getttyent): Explicitly lock the FILE and use
+ _unlocked functions.
+
+ * inet/ruserpass.c (ruserpass): Use _unlocked functions since this
+ is a private FILE.
+
+1998-07-04 17:11 -0400 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ * csu/Makefile: Build crt files in lib pass.
+ * db2/Makefile (distribute): Add mutex/sco.cc.
+ * mach/Machrules: Don't generate .udeps files if no_deps is set.
+ * sysdeps/unix/Makefile: Don't generate sysd-syscalls or
+ s-proto.d if avoid-generated is set.
+
+ * sysdeps/alpha/Dist: List only one file per line.
+ * sysdeps/generic/Dist: Likewise.
+ * sysdeps/m68k/fpu/switch/Dist: Likewise.
+ * sysdeps/sparc/sparc32/Dist: Likewise.
+ * sysdeps/unix/Dist: Likewise.
+ * sysdeps/unix/sysv/irix4/Dist: Likewise.
+
+ * sysdeps/mach/hurd/i386/Dist: New file.
+ * sysdeps/generic/Dist: Add endutxent.c, getutxent.c, getutxid.c,
+ getutxline.c, pututxline.c, setutxent.c, updwtmpx.c, and utmpxname.c.
+ * sysdeps/unix/sysv/linux/Dist: Add getresuid.c and getresgid.c.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/Dist: Remove __sigtrampoline.S.
+
+1998-07-04 10:14 Ulrich Drepper <drepper@cygnus.com>
+
+ * libio/Makefile (routines): Add iofread_u and iofwrite_u.
+ * libio/Versions: Add fread_unlocked and fwrite_unlocked.
+
+ * Makerules (lib%.so): Adjust ignore pattern for last makefile change.
+
+ * time/tzfile.c (decode): Optimize by using bswap_32.
+ (__tzfile_read): Use _unlocked stream functions. Correct setting of
+ __tzname array values.
+ (__tzfile_compute): Correct setting of __tzname array values.
+ * time/tzset.c (__tzstring): Clean up a bit.
+
+1998-06-29 19:01 Jim Wilson <wilson@cygnus.com>
+
+ * posix/regex.c (re_comp): Add cast to char * before gettext calls.
+
+1998-06-30 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * sysdeps/unix/bsd/poll.c (__poll): Allocate fd_set dynamically so
+ that fd can be bigger than FD_SETSIZE.
+
+1998-07-01 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * nscd/grpcache.c: Include <unistd.h>.
+ * nscd/pwdcache.c: Likewise.
+
+ * nis/nis_modify.c: Include <string.h>.
+ * nis/nis_add.c: Likewise.
+ * nis/nis_checkpoint.c: Likewise.
+ * posix/runptests.c: Likewise.
+ * sysdeps/generic/statvfs64.c: Likewise.
+ * sysdeps/generic/fstatvfs64.c: Likewise.
+
+1998-07-03 13:16 Ulrich Drepper <drepper@cygnus.com>
+
+ * localedata/charmaps/ISO-8859-9: Change mapping for 0xea, 0xec, 0xef
+ to match data from Unicode.
+ Reported by Michael Deutschmann <michael@talamasca.wkpowerlink.com>.
+
+1998-07-03 11:45 Ulrich Drepper <drepper@cygnus.com>
+
+ * stdio-common/printf.h: Define printf_function and
+ printf_arginfo_function types using __PMT not __P.
+ Reported by Marc Lehmann.
+
+1998-07-02 14:07 -0400 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ * assert/test-assert.c: New test.
+ * assert/test-assert-perr.c: New test.
+ * assert/Makefile (tests): Add test-assert and test-assert-perr.
+
+1998-07-02 13:45 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ BSD-style SCM_CREDS support.
+
+ * sysdeps/unix/sysv/linux/socket.h: Define struct cmsgcred and
+ SCM_CREDS.
+ * sysdeps/unix/sysv/linux/sendmsg.c: New file. Convert user
+ visible SCM_CREDS packet to what the kernel wants.
+ * sysdeps/unix/sysv/linux/recvmsg.c: New file. Convert
+ SCM_CREDS packet output by kernel to what users want.
+
+ * sysdeps/unix/sysv/linux/sendmsg.S: Moved to...
+ * sysdeps/unix/sysv/linux/__sendmsg.S: here.
+ * sysdeps/unix/sysv/linux/recvmsg.S: Moved to...
+ * sysdeps/unix/sysv/linux/__recvmsg.S: here.
+
+ * sysdeps/unix/sysv/linux/Makefile [subdir=socket]: Add
+ __sendmsg and __recvmsg to sysdep_routines.
+ * sysdeps/unix/sysv/linux/Dist: Add __sendmsg.S and __recvmsg.S.
+
+1998-07-02 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
+
+ * nscd/grpcache.c: Fix gid pointer handling and debug messages.
+ * nscd/pwdcache.c: Fix uid pointer handling and debug messages.
+ * nscd/nscd.c: Check, if pthread_create fails.
+
+1998-07-02 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * stdio-common/test_rdwr.c (main): Use %Zu for size_t in printf
+ format strings.
+ * stdio-common/bug1.c (main): Likewise.
+ * stdio-common/bug5.c (main): Likewise.
+ * stdio-common/tstgetln.c (main): Likewise.
+ * elf/sprof.c (generate_call_graph): Likewise.
+ (load_shobj): Likewise.
+ * posix/runptests.c (main): Likewise.
+ * string/tst-strlen.c (main): Likewise.
+
+ * sysdeps/libm-ieee754/e_acos.c (__ieee754_acos): Remove unused
+ variable q3.
+ * sysdeps/libm-ieee754/e_asin.c (__ieee754_asin): Likewise
+
+1998-07-03 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * wctype/Versions: Add __towctrans.
+ Noticed by Alex Buell <alex.buell@tahallah.demon.co.uk>.
+
+1998-07-02 Mark Kettenis <kettenis@phys.uva.nl>
+
+ * grp/initgroups.c (compat_call): Only call dynamically loaded
+ functions if they are really present.
+
+1998-07-02 Mark Kettenis <kettenis@phys.uva.nl>
+
+ * sysdeps/unix/sysv/linux/bits/sched.h: Move __END_DECLS within
+ #ifdef that contains __BEGIN_DECLS.
+
+1998-07-02 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * libio/iofwrite.c: Fix return value when size == 0.
+
+1998-07-01 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * posix/Makefile (distribute): Add annexc.c.
+ (generated): Add $(objpfx)annexc and $(objpfx)annexc.out.
+
+1998-07-01 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
+ bits/pthreadtypes.h here, and do not clobber headers.
+
+ * sysdeps/unix/sysv/linux/Dist: Add bits/pthreadtypes.h.
+
+1998-07-03 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * timezone/tst-timezone.c: Add tests for tzname variable.
+
+1998-07-03 12:17 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ * Makefile [versioning=yes]: Build the mapfiles with a pattern
+ rule that lists all of them as targets.
+ (sysd-versions): Depend only on Versions.def. Write a Makefile
+ fragment that defines $(vers-libs) based on contents of that file;
+ then include it.
+ (lib-noranlib): Depend on lib-mapfiles not sysd-versions.
+ (lib-mapfiles): New target, depends on sysd-versions and $(vers-libs).
+ Predicate all this on avoid-generated unset as well as versioning.
+
+1998-07-03 14:35 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/unix/sysv/linux/m68k/Versions: New file.
+
+1998-07-02 21:51 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makeconfig: Define list of subdirs as all-subdirs and make subdirs
+ a copy.
+ * Makefile: Add rules to generate map files.
+ (distribute): Remove libc.map, add Versions.def and versions.awk.
+ * Makerules: Change rules to find map files on common-objpfx.
+ * elf/Makefile: Likewise.
+ * md5-crypt/Makefile: Likewise.
+ * nis/Makefile (libnsl-map): Remove.
+ * Versions.def: New file.
+ * versions.awk: New file.
+ * argp/Versions: New file.
+ * assert/Versions: New file.
+ * catgets/Versions: New file.
+ * csu/Versions: New file.
+ * ctype/Versions: New file.
+ * db/Versions: New file.
+ * debug/Versions: New file.
+ * dirent/Versions: New file.
+ * elf/Versions: New file.
+ * gmon/Versions: New file.
+ * grp/Versions: New file.
+ * hesiod/Versions: New file.
+ * hurd/Versions: New file.
+ * iconv/Versions: New file.
+ * inet/Versions: New file.
+ * intl/Versions: New file.
+ * io/Versions: New file.
+ * libio/Versions: New file.
+ * linuxthreads/Versions: New file.
+ * locale/Versions: New file.
+ * login/Versions: New file.
+ * malloc/Versions: New file.
+ * math/Versions: New file.
+ * md5-crypt/Versions: New file.
+ * misc/Versions: New file.
+ * nis/Versions: New file.
+ * nss/Versions: New file.
+ * posix/Versions: New file.
+ * pwd/Versions: New file.
+ * resolv/Versions: New file.
+ * resource/Versions: New file.
+ * rt/Versions: New file.
+ * setjmp/Versions: New file.
+ * shadow/Versions: New file.
+ * signal/Versions: New file.
+ * socket/Versions: New file.
+ * stdio/Versions: New file.
+ * stdio-common/Versions: New file.
+ * stdlib/Versions: New file.
+ * streams/Versions: New file.
+ * string/Versions: New file.
+ * sunrpc/Versions: New file.
+ * sysdeps/alpha/Versions: New file.
+ * sysdeps/alpha/fpu/Versions: New file.
+ * sysdeps/i386/Versions: New file.
+ * sysdeps/sparc/Versions: New file.
+ * sysdeps/unix/sysv/Versions: New file.
+ * sysdeps/unix/sysv/linux/Versions: New file.
+ * sysdeps/unix/sysv/linux/alpha/Versions: New file.
+ * sysdeps/unix/sysv/linux/i386/Versions: New file.
+ * sysdeps/unix/sysv/linux/mips/Versions: New file.
+ * sysvipc/Versions: New file.
+ * termios/Versions: New file.
+ * time/Versions: New file.
+ * wcsmbs/Versions: New file.
+ * wctype/Versions: New file.
+ * libc.map: Removed.
+ * db/libdb.map: Removed.
+ * elf/libdl.map: Removed.
+ * hesiod/libnss_hesiod.map: Removed.
+ * hurd/libhurduser.map: Removed.
+ * hurd/libmachuser.map: Removed.
+ * linuxthreads/libpthread.map: Removed.
+ * locale/libBrokenLocale.map: Removed.
+ * login/libutil.map: Removed.
+ * math/libm.map: Removed.
+ * md5-crypt/libcrypt.map: Removed.
+ * nis/libnsl.map: Removed.
+ * nis/libnsl_compat.map: Removed.
+ * nis/libnss_nis.map: Removed.
+ * nis/libnss_nisplus.map: Removed.
+ * nss/libnss_db.map: Removed.
+ * nss/libnss_files.map: Removed.
+ * resolv/libnss_dns.map: Removed.
+ * resolv/libresolv.map: Removed.
+ * rt/librt.map: Removed.
+
+ * elf/dl-load.c (fillin_rpath): Fix test for trusted directory.
+ Fix typos.
+
+ * elf/rtld.c (process_dl_debug): Recognize 'all'.
+ (process_envvars): LD_BIND_NOW must be followed by y, Y, or 1.
+
+ * sysdeps/generic/elf/backtracesyms.c: Allocate string memory of
+ correct size.
+
+1998-07-01 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/getsysstats.c (get_proc_path): Fix typo
+ in comment.
+
+ * nscd/nscd.c: Include unistd.h.
+
+1998-07-01 09:32 Ulrich Drepper <drepper@cygnus.com>
+
+ * math/libm-test.c: Adjust delta for indentities1_test because gcc
+ became cleverer.
+
+1998-06-29 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * resolv/inet_addr.c (inet_aton): Define variable base only if needed.
+
+1998-06-30 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * scripts/test-installation.pl: Include <stdio.h> in test program
+ to make it strictly conforming.
+
+1998-06-30 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/unix/sysv/linux/m68k/sysdep.S: Make _errno a weak alias,
+ not a strong alias.
+ * sysdeps/unix/sysv/linux/i386/sysdep.S: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.S: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.S: Likewise.
+ * sysdeps/unix/sysv/linux/arm/sysdep.S: Likewise.
+
+1998-06-30 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/unix/sysv/linux/m68k/sysdep.S: Make _errno a weak alias,
+ not a strong alias.
+
+1998-06-30 Ulrich Drepper <drepper@cygnus.com>
+
+ * posix/Makefile (headers): Remove bits/pthreadtypes.h.
+ * sysdeps/unix/sysv/linux/Makefile [subdir==posix] (headers): Add
+ bits/pthreadtypes.h.
+
+1998-06-30 11:47 Ulrich Drepper <drepper@cygnus.com>
+
+ * include/aio.h: New file.
+ * posix/Makefile (distribute): Add bits/pthreadtypes.h.
+ (tests): Build and run annexc program.
+ * posix/annexc.c: New file.
+ * posix/bits/posix1_lim.h: Add several more _POSIX_* limits.
+ * rt/aio.h: Remove __need_timespec_t. We can include the whole time.h.
+ * rt/aio_misc.c: Include limits.h.
+ * rt/aio_notify.c: Include errno.h.
+ * sysdeps/unix/sysv/linux/alpha/bits/types.h: Include pthreadtypes.h.
+ Define size_t.
+ * sysdeps/unix/sysv/linux/bits/types.h: Likewise.
+ * sysdeps/unix/sysv/linux/mips/bits/types.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/bits/types.h: Likewise.
+ * sysdeps/unix/sysv/linux/bits/errno.h: Define ENOTSUP though the
+ kernel doesn't do this.
+ * sysdeps/unix/sysv/linux/bits/fcntl.h: Define O_LARGEFILE only if
+ __USE_LARGEFILE64 is defined.
+ * sysdeps/unix/sysv/linux/bits/pthreadtypes.h: New file. Empty.
+ * sysdeps/unix/sysv/linux/bits/sched.h: Define __sched_param struct
+ if requested.
+ * sysdeps/unix/sysv/linux/bits/siginifo.h: Protect non-standard names.
+
+ * stdlib/isomac.c: Avoid include_next warning.
+
+1998-06-29 12:27 Ulrich Drepper <drepper@cygnus.com>
+
+ * argp/argp.h: Use __PMT instead of __P for function pointer.
+ * iconv/gconv.h: Likewise.
+ * io/fts.h: Likewise.
+ * io/ftw.h: Likewise.
+ * libio/libio.h: Likewise.
+ * malloc/mcheck.h: Likewise.
+ * misc/search.h: Likewise.
+ * posix/glob.h: Likewise.
+ * resolv/resolv.h: Likewise.
+ * signal/signal.h: Likewise.
+ * stdlib/stdlib.h: Likewise.
+ * sysdeps/unix/sysv/linux/bits/sigaction.h: Likewise.
+ * sysdeps/unix/sysv/linux/bits/siginfo.h: Likewise.
+
+1998-06-26 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * Makeconfig (CPPFLAGS): Use $($(subdir)-CPPFLAGS) only once.
+
+1998-06-27 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * posix/wordexp.c (parse_param): Fix memory leak.
+
+1998-06-27 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * libc.map: Export _IO_ftrylockfile.
+
+1998-06-27 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/unix/sysv/linux/aio_sigqueue.c: Use get[pu]id instead of
+ __get[pu]id.
+
+1998-06-28 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * elf/dl-misc.c (_dl_debug_message): Don't cache the pid.
+
+ * elf/dl-runtime.c (_dl_object_relocation_scope): Avoid adding the
+ same search list twice.
+
+1998-06-29 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * login/programs/utmpd.c (handle_requests): Set and use maximal fd
+ used to optimize loop/select.
+
+1998-06-24 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/generic/init-first.c: Don't define __libc_pid.
+ * sysdeps/unix/sysv/linux/init-first.c: Likewise.
+ * sysdeps/mach/hurd/i386/init-first.c: Likewise.
+ * sysdeps/mach/hurd/mips/init-first.c: Likewise.
+ * sysdeps/arm/init-first.c: Likewise.
+ * posix/getopt_init.c: Don't use __libc_pid.
+ * sysdeps/unix/sysv/linux/aio_sigqueue.c: Likewise.
+ * sysdeps/unix/sysv/linux/sigqueue.c: Likewise.
+ * libc.map: Remove __libc_uid and __libc_pid.
+
+1998-06-28 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * sunrpc/rtime.c (rtime): Use poll instead of select.
+
+1998-06-28 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * sunrpc/clnt_tcp.c (readtcp): Use poll instead of select.
+ * sunrpc/pmap_rmt.c (clnt_broadcast): Likewise.
+ * sunrpc/clnt_udp.c (clntudp_call): Likewise.
+ Patches from FreeBSD current.
+
+1998-06-28 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * nscd/connections.c (handle_new_request): Handle POLLHUP
+ correctly.
+ (close_sockets): Correct parameter to dbg_log.
+
+1998-06-27 David S. Miller <davem@pierdol.cobaltmicro.com>
+
+ * sysdeps/sparc/sparc32/dl-machine.h (elf_machine_matches_host):
+ Cleanup weak_extern usage for _dl_hwcap and _dl_hwcap_mask.
+ (elf_machine_fixup_plt): Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/getpagesize.c: When
+ _dl_pagesize not set, use system call to always get correct answer.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list
+ (__syscall_getpagesize): Add
+
+1998-06-27 Ulrich Drepper <drepper@cygnus.com>
+
+ * resolv/res_send.c (res_send): Fix typo.
+
+1998-06-25 Andi Kleen <ak@muc.de>
+
+ * inet/rcmd.c (rcmd): Change to use __poll instead of select.
+ * resolv/res_send.c (res_send): Likewise.
+
+1998-06-27 12:58 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/bsd/poll.c: Define __poll, make poll weak alias.
+ * sysdeps/unix/sysv/linux/poll.c: Likewise.
+
+1998-06-27 7:07 Richard Henderson <rth@cygnus.com>
+
+ * math/atest-exp.c (exp_mpn, main): Cast to mp_limb_t appropriately.
+ * math/atest-exp2.c (exp_mpn, main): Likewise.
+ * math/atest-sincos.c (main): Likewise.
+
+ * resolv/inet_addr.c (inet_aton): Check for 32-bit overflow. Move
+ base handling away from strtoul. Always reset errno.
+
+ * sysdeps/alpha/Makefile (elf): Kill -mno-fp-regs.
+
+ * sysdeps/alpha/dl-machine.h (elf_machine_runtime_setup): Only set
+ _dl_profile_map if _dl_name_match_p.
+ (RTLD_START): Fix .prologue. Set __libc_stack_end.
+ * sysdeps/alpha/elf/start.S: Pass sp as arg 7. Kill __data_start.
+
+ * sysdeps/alpha/fpu/fraiseexcpt.c (feraiseexcept): Mark tmp
+ as early-clobber.
+
+ * sysdeps/libm-ieee754/e_exp10.c: Include "math_private.h".
+ * sysdeps/libm-ieee754/e_exp10f.c: Likewise.
+ * sysdeps/libm-ieee754/e_exp10l.c: Likewise.
+
+1998-06-26 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/i386/fpu/bits/mathinline.h (__finite): Use alias-safe code.
+
+1998-06-26 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
+
+ * nis/nis_call.c: Don't copy server structure.
+ * nis/nis_intern.h: Remove unused entries.
+ * nis/nis_table.c: Rewrite __create_ib_request.
+
+1998-06-26 14:37 Ulrich Drepper <drepper@cygnus.com>
+
+ * configure.in: Check for -fexceptions.
+ * config.make.in: Define exceptions, not no-exceptions.
+ * misc/sys/cdefs.h: Define __PMT. When using modern g++ define
+ __P to use throw().
+ * misc/Makefile: Define CFLAGS-tsearch.c and CFLAGS-lsearch.c to
+ $(exceptions).
+ * stdlib/Makefile: Likewise for bsearch.c, msort.c, and qsort.c.
+ * misc/search.h: Use __PMT in tsearch, tfind, tdelete, twalk, tdestroy,
+ lfind, and lsearch prototpypes.
+ * stdlib/stdlib.h: Likewise for bsearch and qsort.
+
+1998-06-26 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/i386/fpu/bits/mathinline.h (__finite): Use C code, not asm.
+
+1998-06-25 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * Makefile (remove-old-headers): Make phony.
+
+ * configure.in: Substitute @old_glibc_headers@.
+
+1998-06-26 Ulrich Drepper <drepper@cygnus.com>
+
+ * libc.map: Remove __libc_uid.
+
+1998-06-24 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * manual/terminal.texi (Allocation, Pseudo-Terminal Pairs): Fix
+ typos.
+
+1998-06-26 Ulrich Drepper <drepper@cygnus.com>
+
+ * libc.map: Add Alpha-specific io function from protected namespace.
+
+1998-06-25 19:26 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makeconfig (CPPFLAGS): Use $($(subdir)-CPPFLAGS) if defined first.
+ * locale/Makefile: Define locale-CPPFLAGS instead of redefining
+ CPPFLAGS.
+
+ * libc.map: Export __sigaction.
+
+1998-06-25 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * sysdeps/unix/sysv/linux/bits/sched.h (CLONE_PTRACE): Add it
+ (from Linux 2.1.107).
+
+1998-06-24 Ulrich Drepper <drepper@cygnus.com>
+
+ * nss/nss_files/files-XXX.c (_nss_files_get,ENTNAME_r): Initialize
+ position when file was opened here.
+ Reported by Howard Chu <hyc@platinum.com>.
+
+ * sysdeps/generic/glob.c: Also protect FNM_* macros from being
+ undefined in a second inclusion.
+
+1998-06-20 Mark Kettenis <kettenis@phys.uva.nl>
+
+ * sysdeps/mach/hurd/i386/Makefile: New file.
+ * sysdeps/mach/hurd/i386/init-first.c [!PIC] (init1): Call
+ __libc_init_secure.
+ (_hurd_stack_setup): Renamed
+ from __libc_init_first.
+ (__libc_init_first): New function.
+ * sysdeps/mach/hurd/i386/static-start.S: New file.
+
+1998-05-30 Mark Kettenis <kettenis@phys.uva.nl>
+
+ * sysdeps/mach/hurd/i386/init-first.c
+
+1998-06-22 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * grp/initgroups.c: Use _CALL_DL_FCT.
+
+1998-06-23 Mark Kettenis <kettenis@phys.uva.nl>
+
+ * elf/rtld.c (process_dl_debug): Add missing continue.
+
+1998-06-23 Mark Kettenis <kettenis@phys.uva.nl>
+
+ * elf/dl-load.c (_dl_map_object_from_fd): Add missing cast.
+
+1998-06-23 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * manual/terminal.texi (Pseudo-Terminals): Correct typos.
+
+1998-06-23 Ulrich Drepper <drepper@cygnus.com>
+
+ * config.make.in: Remove LDAP support.
+ * nss/Makefile: Likewise.
+
+1998-06-22 17:02 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/generic/enbl-secure.c: Don't use __libc_uid.
+ * sysdeps/unix/sysv/linux/aio_sigqueue.c: Likewise.
+ * sysdeps/unix/sysv/linux/sigqueue.c: Likewise.
+ * sysdeps/unix/sysv/linux/init-first.c: Don't initialize __libc_uid.
+
+1998-06-02 Gordon Matzigkeit <gord@profitpress.com>
+
+ * mach/Makefile: Change `mv' invocations to `mv -f'.
+ * mach/Machrules: Likewise.
+
+1998-06-22 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * config.make.in (old-glibc-headers): Add it.
+
+ * configure.in: Add test for glibc 2.0.x headers.
+
+ * Makefile (headers2_0): New variable - contains so far only
+ Linux/Intel glibc 2.0.x headers.
+ (remove-old-headers): New rule to remove headers from glibc 2.0.x.
+ (install): Depend on remove-old-headers.
+
+1998-06-19 Mark Kettenis <kettenis@phys.uva.nl>
+
+ * sysdeps/generic/ftruncate.c: Define function as __ftruncate and
+ make ftruncate a weak alias.
+ * sysdeps/mach/hurd/ftruncate.c: Really define function as
+ __ftruncate.
+ * sysdeps/mach/hurd/truncate.c: Include <unistd.h>.
+ (truncate): Fix function defenition to match prototype.
+
+1998-06-20 Mark Kettenis <kettenis@phys.uva.nl>
+
+ * manual/terminal.texi: Document ttyname_r, getpt, grantpt,
+ unlockpt, ptsname, ptsname_r, openpty and forkpty.
+
+1998-06-22 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/generic/glob.c: Make it possible to include glob.h
+ before loading glob.c.
+ Reported by Felix von Leitner <leitner@math.fu-berlin.de>.
+
+1998-06-22 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * nscd/connections.c: Use poll() instead of select().
+
+1998-06-22 14:08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/generic/Dist: Fix typo.
+
+1998-06-20 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
+
+ * nis/nis_add.c: Avoid unnecessary strlen () calls.
+ * nis/nis_addmember.c: Likewise.
+ * nis/nis_call.c: Likewise.
+ * nis/nis_creategroup.c: Likewise.
+ * nis/nis_destroygroup.c: Likewise.
+ * nis/nis_findserv.c: Likewise.
+ * nis/nis_ismember.c: Likewise.
+ * nis/nis_print.c: Likewise.
+ * nis/nis_print_group_entry.c: Likewise.
+ * nis/nis_removemember.c: Likewise.
+ * nis/nis_verifygroup.c: Likewise.
+ * nis/ypclnt.c: Likewise.
+
+ * nis/nis_file.c: Close file handles.
+
+ * nis/nis_callback.c: Fix typo.
+
+1998-06-10 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
+
+ * nis/Makefile: Add nis-initgroups and compat-initgroups.
+ * nis/libnss_compat.map: Add _nss_compat_initgroups.
+ * nis/libnss_nis.map: Add _nss_nis_initgroups.
+ * nis/nss_compat/compat-initgroups.c: New, faster then getgrent().
+ * nis/nss_nis/nis-initgroups.c: Likewise.
+ * libc-work/nss/nsswitch.c: Rename nss_lookup_function to
+ __nss_lookup_function and make it public.
+ * grp/initgroups.c: Rewrite, to use initgroups function from NSS
+ module if exists, else use old method.
+
+1998-06-19 Ulrich Drepper <drepper@cygnus.com>
+
+ * nss/getXXbyYY_r.c (lookup_function): Correct return in type
+ definition.
+ * nss/getXXent_r.c (set_function, end_function, get_function):
+ Likewise. Reported by Thorsten Kukuk.
+
+ * sysdeps/unix/sysv/linux/sigstack.c: Mark sigstack as dangerous.
+
+1998-06-19 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * sysdeps/unix/sysv/linux/sparc/Dist: Follow change from
+ 1998-06-16 and distribute kernel_termios.h.
+
+ * nis/Makefile (distribute): Add nis_xdr.h.
+
+1998-06-19 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * sysdeps/unix/sysv/linux/sigstack.c (sigstack): Disable for
+ kernels that don't have sigaltstack.
+
+1998-06-19 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/generic/bits/sem.h: Don't define union semun.
+
+ * sysdeps/unix/sysv/linux/bits/sem.h: Fix typo.
+
+ * sysdeps/unix/sysv/linux/bits/ipc.h: Remove ipc_kludge definition
+ here.
+ * sysdeps/unix/sysv/linux/msgrcv.c (msgrcv): Add ipc_kludge
+ definition here.
+
+1998-06-18 21:45 Ulrich Drepper <drepper@cygnus.com>
+
+ * signal/signal.h: Add prototype for __sigaltstack.
+ * sysdeps/unix/sysv/linux/syscalls.list: Add __sigaltstack name.
+ Remove sigstack entry.
+ * sysdeps/unix/sysv/linux/alpha/syscalls.list: Add sigstack here.
+ * sysdeps/unix/sysv/linux/sigstack.c: New file.
+
+ * sysdeps/i386/backtrace.c: Add casts.
+
+1998-06-18 19:49 Ulrich Drepper <drepper@cygnus.com>
+
+ * intl/dcgettext.c: use complete type name.
+ * intl/hash-string.h: Likewise.
+
+ * intl/localealias.c: Undo patch from 1998-04-29.
+ * intl/l10nflist.c: Likewise.
+ * intl/loadinfo.h: Likewise.
+
+1998-06-18 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/i386/elf/start.S (_start): Ensure correct alignment.
+
+1998-06-18 16:40 Ulrich Drepper <drepper@cygnus.com>
+
+ * libc.map: Add _dl_profile_map, _dl_profile_output, _dl_start_profile,
+ _dl_mcount, _dl_mcount_wrapper.
+ * elf/Makefile (routines): Add dl-profstub.
+ * elf/dl-profstub.c: New file.
+ * elf/dl-support.c: Don't define _dl_profile_map.
+ * elf/rtld.c: Likewise.
+ * elf/dlfcn.h: Define DL_CALL_FCT macro.
+ * elf/ldsodefs.h: Declare _dl_profile_output, _dl_mcount_wrapper.
+ Define _CALL_DL_FCT.
+ * iconv/gconv.c: Use _CALL_DL_FCT to call function from dynamically
+ loaded object.
+ * iconv/gconv_db.c: Likewise.
+ * iconv/skeleton.c: Likewise.
+ * nss/getXXbyYY_r.c: Likewise.
+ * nss/getXXent_r.c: Likewise.
+ * nss/nsswitch.c: Likewise.
+
+1998-06-18 12:29 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/libm-i387/e_scalb.S: Fix bug in FPU stack handling.
+ * sysdeps/libm-i387/e_scalbf.S: Likewise.
+ * sysdeps/libm-i387/e_scalbl.S: Likewise.
+
+1998-06-18 Ulrich Drepper <drepper@cygnus.com>
+
+ * stdlib/tst-strtod.c (long_dbl): Provide receipe to regenerate
+ longestdbl.
+
+1998-06-18 10:26 Ulrich Drepper <drepper@cygnus.com>
+
+ * iconvdata/Makefile (modules): Add MACINTOSH.
+ (MACINTOSH-routines): New variable.
+ (distribute): Add macintosh.c.
+ (awk-generated-headers): Add macintosh.h.
+ Add rule for macintosh.h generation.
+ * iconvdata/gconv-modules: Add definitions for MACINTOSH.
+ * iconvdata/macintosh.c: New file.
+
+1998-06-17 Ulrich Drepper <drepper@cygnus.com>
+
+ * stdlib/tst-strtod.c (long_dbl): Add test for loooong numbers.
+
+ * stdlib/strtod.c (str_to_mpn): Fix extending of n array which
+ only should happen for cy != 0.
+
+ * sysdeps/unix/sysv/linux/alpha/glob.c: Include sys/types.h before
+ glob.h.
+
+1998-06-16 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/generic/backtrace.c (INNER_THAN): New definition, use it
+ to compare stack addresses.
+
+1998-06-17 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/alpha/glob.c: Include glob.h before
+ defining prototypes.
+
+1998-06-16 David S. Miller <davem@dm.cobaltmicro.com>
+
+ * sysdeps/sparc/sparc32/dl-machine.h
+ (elf_machine_fixup_plt): During rtld bootstrap, always perform
+ flushes as the kernel will emulate it when the underlying cpu does
+ not implement flush.
+
+ * sysdeps/unix/sysv/linux/sparc/sys/kernel_termios.h: Move...
+ * sysdeps/unix/sysv/linux/sparc/kernel_termios.h: ...to here.
+
+ * sysdeps/unix/sysv/linux/sparc/sparc32/__sigtrampoline.S: Remove.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/Makefile: No longer build
+ trampoline code.
+
+ * sysdeps/unix/sysv/linux/sparc/sparc32/clone.S
+ (__clone): Branch to label .Lerror not __clone_syscall_error.
+ (.Lerror): Fixup EINVAL setting.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/getgroups.c: New file.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/setgroups.c: New file.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list
+ (__syscall_getgroups, __syscall_setgroups): Add.
+
+ * sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c
+ (__sigaction): Member name is k_sa_handler. Use memcpy to copy
+ around sa_mask data.
+
+1998-06-16 Ulrich Drepper <drepper@cygnus.com>
+
+ * math/math.h: Include bits/nan.h when compiling for ISO C 9x.
+
+ * string/Makefile: Make sure test-ffs does not use builtins.
+
+1998-06-16 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
+
+ * sunrpc/svc.c: Check for NULL pointer.
+
+ * nis/libnsl.map: Add public NIS+ xdr functions.
+
+ * nis/rpcsvc/nis_callback.h: New file.
+ * nis/rpcsvc/nis.h: Move xdr_* functions from here ...
+ * nis/nis_xdr.h: ... here.
+
+ * nis/nis_add.c: Use internal _xdr_* functions, check for NULL
+ pointers, use NIS+ defines where possible.
+ * nis/nis_cache.c: Likewise.
+ * nis/nis_cache2_xdr.c: Likewise.
+ * nis/nis_call.c: Likewise.
+ * nis/nis_checkpoint.c: Likewise.
+ * nis/nis_clone_dir.c: Likewise.
+ * nis/nis_clone_obj.c: Likewise.
+ * nis/nis_clone_res.c: Likewise.
+ * nis/nis_creategroup.c: Likewise.
+ * nis/nis_file.c: Likewise.
+ * nis/nis_free.c: Likewise.
+ * nis/nis_getservlist.c: Likewise.
+ * nis/nis_local_names.c: likewise.
+ * nis/nis_lookup.c: Likewise.
+ * nis/nis_mkdir.c: Likewise.
+ * nis/nis_modify.c: Likewise.
+ * nis/nis_ping.c: Likewise.
+ * nis/nis_print.c: Likewise.
+ * nis/nis_remove.c: Likewise.
+ * nis/nis_removemember.c: Likewise.
+ * nis/nis_rmdir.c: Likewise.
+ * nis/nis_server.c: Likewise.
+ * nis/nis_table.c: Likewise.
+ * nis/nis_util.c: Likewise.
+ * nis/nis_verifygroup.c: Likewise.
+ * nis/nis_xdr.c: Likewise.
+ * nis/nis_callback.c: Likewise, and move xdr functions from here ...
+ * nis/nis_xdr.c: ... to here.
+
+1998-06-15 18:07 Ulrich Drepper <drepper@cygnus.com>
+
+ * iconvdata/ksc5601.h: Clean up a bit.
+
+1998-06-15 14:35 Ulrich Drepper <drepper@cygnus.com>
+
+ * sunrpc/svc_tcp.c (readtcp): Also listen to all the other connections
+ and process incoming data.
+ * sunrpc/xdr_rec.c (set_input_fragment): Only recognize zero length
+ fragments as invalid.
+ Patches by Thorsten Kukuk <kukuk@weber.uni-paderborn.de>.
+
+1998-06-13 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ Removal of duplicates like "the the".
+ * manual/time.texi (TZ Variable): Likewise.
+ * manual/users.texi (Manipulating the Database): Likewise.
+ * manual/sysinfo.texi (Filesystem handling): Likewise.
+ * manual/signal.texi (Signaling Yourself): Likewise.
+ * manual/message.texi (Message Translation): Likewise.
+ (Common Usage): Likewise.
+ * manual/llio.texi: Likewise.
+ * manual/arith.texi (Old-style number conversion): Likewise.
+ * manual/argp.texi (Argp): Likewise.
+ (Argp Parsers): Likewise.
+ (Argp Help Filtering): Likewise.
+
+ * hesiod/README.hesiod: Correct typo.
+
+ * manual/llio.texi: Correct typos.
+ * manual/sysinfo.texi: Likewise.
+
+1998-06-13 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * rt/aio.h: Rename __op to __operation for g++.
+
+1998-06-13 20:17 -0400 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ * iconvdata/gen-8bit-gap.sh: Use awk not perl. Clean up sed
+ script.
+ * iconvdata/gen-8bit-gap-1.sh: Likewise.
+ * iconvdata/gen-8bit.sh: Clean up sed script.
+
+ * iconvdata/Makefile: Remove all PERL conditionals; build all
+ the modules all the time. Export AWK.
+ (gen-8bit-gap): Delete setting of PERL.
+ (gen-8bit-gap-1): Likewise.
+ (perl-generated-headers): Renamed awk-generated-headers.
+
+ * iconvdata/gap.pl: Removed.
+ * iconvdata/gaptab.pl: Removed.
+ * iconvdata/gap.awk: New file.
+ * iconvdata/gaptab.awk: New file.
+
+1998-06-15 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/generic/Dist: Add errno-loc.c.
+
+ * sysdeps/unix/sysv/linux/alpha/glob.c: Add prototypes for the
+ __new_* functions.
+
+1998-06-14 14:21 -0400 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ * stdio-common/bug12.c: New test for fread()/fseek().
+ * stdio-common/Makefile (tests): Add bug12.
+
+1998-06-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/generic/elf/backtracesyms.c: Make array elements
+ constant.
+ * sysdeps/generic/backtracesyms.c: Likewise. Fix type of RESULT.
+ * debug/execinfo.h: Update declaration.
+
+1998-06-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/generic/elf/backtracesyms.c: Make array elements constant.
+ * sysdeps/generic/backtracesyms.c: Likewise. Fix type of RESULT.
+ * debug/execinfo.h: Update declaration.
+
+1998-06-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * manual/llio.texi: Fix spelling.
+ * manual/sysinfo.texi: Fix spelling.
+
+1998-06-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * misc/hsearch.c (__hdestroy): Renamed from hdestroy, create weak
+ alias for old name. Put this on __libc_subfreeres.
+ * misc/search.h: Declare it.
+
+1998-06-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * string/bits/string2.h (strcmp): Add missing parens around macro
+ parameters.
+
+1998-06-12 23:34 Ulrich Drepper <drepper@cygnus.com>
+
+ * manual/arith.texi: Fix problem with @math and texinfo.tex.
+
+ * manual/filesys.texi: Document LFS functions.
+ * manual/llio.texi: Likewise.
+ * manual/stdio.texi: Likewise.
+ * manual/time.texi: Likewise.
+
+ * manual/llio.texi: Document AIO functions.
+
+ * resource/sys/resource.h: Mark second argument of setrlimit as const.
+ * sysdeps/generic/setrlimit.c: Likewise.
+ * sysdeps/generic/setrlimit64.c: Likewise.
+ * sysdeps/mach/hurd/setrlimit.c: Likewise.
+ * sysdeps/unix/sysv/setrlimit.c: Likewise.
+
+1998-06-11 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/generic/getenv.c: Fix last change.
+
+1998-06-10 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/generic/backtrace.c: Provide generic implementation.
+
+1998-06-10 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * configure.in: Give visual feedback of the default directories we
+ added.
+
+1998-06-11 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * io/fts.c (fts_build): Define oflag only if needed.
+
+1998-06-11 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/libm-ieee754/w_exp10.c: Add missing close comment.
+
+1998-06-11 Ulrich Drepper <drepper@cygnus.com>
+
+ * libc.map: Don't export argp's fmtstream handling functions.
+
+ * manual/sysinfo.texi: Document fstab and mtab handling functions.
+ * manual/llio.texi: Document more LFS functions and start documenting
+ the AIO functions.
+
+1998-06-03 03:09 Geoff Keating <geoffk@ozemail.com.au>
+
+ * sysdeps/unix/sysv/linux/pread.c: Detect missing syscall, like poll().
+ * sysdeps/unix/sysv/linux/pread64.c: Likewise.
+ * sysdeps/unix/sysv/linux/pwrite.c: Likewise.
+ * sysdeps/unix/sysv/linux/pwrite64.c: Likewise.
+
+1998-06-03 03:09 Geoff Keating <geoffk@ozemail.com.au>
+
+ * sysdeps/powerpc/Makefile: Use -G0 on the startup file; this
+ makes it easier to undump emacs.
+ * sysdeps/powerpc/bits/endian.h: Use more informative error message
+ for when the endianness can't be determined.
+
+1998-06-04 13:19 Geoff Keating <geoffk@ozemail.com.au>
+
+ * nss/Makefile: Add files publickey database support.
+ * nss/libnss_files.map: Export the required functions.
+ * nss/nss_files/files-key.c: Implement it.
+ * sunrpc/rpc/auth_des.h: Correct typos in comments.
+
+1998-06-10 Ulrich Drepper <drepper@cygnus.com>
+
+ * iconv/gconv_builtin.h: Add aliases for CORBA.
+ * iconvdata/gconv-modules: Likewise.
+
+1998-06-10 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * math/libm-test.c (main): Call exp10_test.
+ (exp10_test): New function which tests exp10.
+
+1998-06-10 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/syscalls.list: Add sigaltstack and
+ sigstack.
+
+ * sysdeps/unix/sysv/linux/bits/sigstack.h: Add definitions of
+ SS_ONSTACK, SS_DISABLE, MINSIGSTKSZ and SIGSTKSZ.
+ * sysdeps/unix/sysv/linux/alpha/bits/sigstack.h: New file.
+
+1998-06-08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/i386/dl-machine.h (_dl_start_user): Store stack address
+ in the variable, not its GOT slot.
+
+1998-06-10 10:32 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/m68k/fpu/bits/mathinline.h: Define __ieee754_exp10 as
+ inline.
+ * sysdeps/m68k/fpu/e_exp10.c: New file.
+ * sysdeps/m68k/fpu/e_exp10f.c: New file.
+ * sysdeps/m68k/fpu/e_exp10l.c: New file.
+
+ * sysdeps/m68k/dl-machine.h (elf_machine_runtime_setup): Set
+ _dl_profile_map only if the name matches.
+ (_dl_start_user): Remember stack address.
+ * sysdeps/m68k/elf/start.S: Pass new argument to
+ __libc_start_user.
+
+ * sysdeps/unix/sysv/linux/m68k/sysdep.h (SYSCALL_ERROR_LABEL): New
+ definition.
+ (PSEUDO, SYSCALL_ERROR_HANDLER): Use it instead of syscall_error.
+ * sysdeps/unix/sysv/linux/m68k/clone.S: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/mmap.S: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/socket.S: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/syscall.S: Likewise.
+
+1998-06-09 18:16 Ulrich Drepper <drepper@cygnus.com>
+
+ * math/Makefile (libm-calls): Add w_exp10 and e_exp10.
+ * math/libm.map: Add exp10{,f,l} and pow10{,f,l}.
+ * math/math_private.h: Add prototypes for __ieee754_exp10{,f,l}.
+ * math/bits/mathcalls.h: Add definitions for exp10 and pow10
+ prototypes.
+ * sysdeps/libm-i387/e_exp10.S: New file.
+ * sysdeps/libm-i387/e_exp10f.S: New file.
+ * sysdeps/libm-i387/e_exp10l.S: New file.
+ * sysdeps/libm-ieee754/e_exp10.c: New file.
+ * sysdeps/libm-ieee754/e_exp10f.c: New file.
+ * sysdeps/libm-ieee754/e_exp10l.c: New file.
+ * sysdeps/libm-ieee754/w_exp10.c: New file.
+ * sysdeps/libm-ieee754/w_exp10f.c: New file.
+ * sysdeps/libm-ieee754/w_exp10l.c: New file.
+ * sysdeps/libm-ieee754/k_standard.c: Add exception code for exp10.
+
+1998-05-25 22:18 H.J. Lu <hjl@gnu.org>
+
+ * sysdeps/unix/sysv/linux/i386/Makefile (sysdep_headers): Add
+ sys/elf.h and sys/reg.h.
+ * sysdeps/unix/sysv/linux/i386/sys/elf.h: New file.
+ * sysdeps/unix/sysv/linux/i386/sys/reg.h: New file.
+ * sysdeps/unix/sysv/linux/i386/sys/procfs.h: New file.
+ * sysdeps/unix/sysv/linux/i386/sys/user.h: New file.
+
+ * sysdeps/unix/sysv/linux/sys/ptrace.h (PTRACE_GETREGS,
+ PTRACE_SETREGS, PTRACE_GETFPREGS, PTRACE_SETFPREGS): Added.
+
+1998-06-09 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/netinet/ip.h (struct ip_options): Define
+ __data member only for gcc. Reported by ak@muc.de.
+
+ * misc/mntent.h: Undo last patch.
+ * sysdeps/unix/sysv/linux/fstatvfs.c (fstatvfs): Undo last patch.
+ * misc/tst/mntent.c: Adjust code for this change.
+
+ * io/fts.c: Updated from a slightly more recent BSD version.
+ * io/fts.h: Likewise.
+
+ * libc.map: Add __libc_stack_end.
+
+ * db2/Makefile (routines): Add lock_region.
+ * db2/config.h: Update from db-2.4.14.
+ * db2/db.h: Likewise.
+ * db2/db_185.h: Likewise.
+ * db2/db_int.h: Likewise.
+ * db2/btree/bt_close.c: Likewise.
+ * db2/btree/bt_compare.c: Likewise.
+ * db2/btree/bt_conv.c: Likewise.
+ * db2/btree/bt_cursor.c: Likewise.
+ * db2/btree/bt_delete.c: Likewise.
+ * db2/btree/bt_open.c: Likewise.
+ * db2/btree/bt_page.c: Likewise.
+ * db2/btree/bt_put.c: Likewise.
+ * db2/btree/bt_rec.c: Likewise.
+ * db2/btree/bt_recno.c: Likewise.
+ * db2/btree/bt_rsearch.c: Likewise.
+ * db2/btree/bt_search.c: Likewise.
+ * db2/btree/bt_split.c: Likewise.
+ * db2/btree/bt_stat.c: Likewise.
+ * db2/btree/btree.src: Likewise.
+ * db2/btree/btree_auto.c: Likewise.
+ * db2/clib/getlong.c: Likewise.
+ * db2/common/db_appinit.c: Likewise.
+ * db2/common/db_apprec.c: Likewise.
+ * db2/common/db_byteorder.c: Likewise.
+ * db2/common/db_err.c: Likewise.
+ * db2/common/db_log2.c: Likewise.
+ * db2/common/db_region.c: Likewise.
+ * db2/common/db_salloc.c: Likewise.
+ * db2/common/db_shash.c: Likewise.
+ * db2/db/db.c: Likewise.
+ * db2/db/db.src: Likewise.
+ * db2/db/db_auto.c: Likewise.
+ * db2/db/db_conv.c: Likewise.
+ * db2/db/db_dispatch.c: Likewise.
+ * db2/db/db_dup.c: Likewise.
+ * db2/db/db_overflow.c: Likewise.
+ * db2/db/db_pr.c: Likewise.
+ * db2/db/db_rec.c: Likewise.
+ * db2/db/db_ret.c: Likewise.
+ * db2/db/db_thread.c: Likewise.
+ * db2/db185/db185.c: Likewise.
+ * db2/db185/db185_int.h: Likewise.
+ * db2/dbm/dbm.c: Likewise.
+ * db2/hash/hash.c: Likewise.
+ * db2/hash/hash.src: Likewise.
+ * db2/hash/hash_auto.c: Likewise.
+ * db2/hash/hash_conv.c: Likewise.
+ * db2/hash/hash_debug.c: Likewise.
+ * db2/hash/hash_dup.c: Likewise.
+ * db2/hash/hash_func.c: Likewise.
+ * db2/hash/hash_page.c: Likewise.
+ * db2/hash/hash_rec.c: Likewise.
+ * db2/hash/hash_stat.c: Likewise.
+ * db2/include/btree.h: Likewise.
+ * db2/include/btree_ext.h: Likewise.
+ * db2/include/clib_ext.h: Likewise.
+ * db2/include/common_ext.h: Likewise.
+ * db2/include/cxx_int.h: Likewise.
+ * db2/include/db.h.src: Likewise.
+ * db2/include/db_185.h.src: Likewise.
+ * db2/include/db_am.h: Likewise.
+ * db2/include/db_auto.h: Likewise.
+ * db2/include/db_cxx.h: Likewise.
+ * db2/include/db_dispatch.h: Likewise.
+ * db2/include/db_ext.h: Likewise.
+ * db2/include/db_int.h.src: Likewise.
+ * db2/include/db_page.h: Likewise.
+ * db2/include/db_shash.h: Likewise.
+ * db2/include/db_swap.h: Likewise.
+ * db2/include/hash.h: Likewise.
+ * db2/include/hash_ext.h: Likewise.
+ * db2/include/lock.h: Likewise.
+ * db2/include/lock_ext.h: Likewise.
+ * db2/include/log.h: Likewise.
+ * db2/include/log_ext.h: Likewise.
+ * db2/include/mp.h: Likewise.
+ * db2/include/mp_ext.h: Likewise.
+ * db2/include/mutex_ext.h: Likewise.
+ * db2/include/os_ext.h: Likewise.
+ * db2/include/os_func.h: Likewise.
+ * db2/include/queue.h: Likewise.
+ * db2/include/shqueue.h: Likewise.
+ * db2/include/txn.h: Likewise.
+ * db2/lock/lock.c: Likewise.
+ * db2/lock/lock_conflict.c: Likewise.
+ * db2/lock/lock_deadlock.c: Likewise.
+ * db2/lock/lock_region.c: Likewise.
+ * db2/lock/lock_util.c: Likewise.
+ * db2/log/log.c: Likewise.
+ * db2/log/log.src: Likewise.
+ * db2/log/log_archive.c: Likewise.
+ * db2/log/log_auto.c: Likewise.
+ * db2/log/log_compare.c: Likewise.
+ * db2/log/log_findckp.c: Likewise.
+ * db2/log/log_get.c: Likewise.
+ * db2/log/log_put.c: Likewise.
+ * db2/log/log_rec.c: Likewise.
+ * db2/log/log_register.c: Likewise.
+ * db2/mp/mp_bh.c: Likewise.
+ * db2/mp/mp_fget.c: Likewise.
+ * db2/mp/mp_fopen.c: Likewise.
+ * db2/mp/mp_fput.c: Likewise.
+ * db2/mp/mp_fset.c: Likewise.
+ * db2/mp/mp_open.c: Likewise.
+ * db2/mp/mp_pr.c: Likewise.
+ * db2/mp/mp_region.c: Likewise.
+ * db2/mp/mp_sync.c: Likewise.
+ * db2/mutex/68020.gcc: Likewise.
+ * db2/mutex/mutex.c: Likewise.
+ * db2/mutex/parisc.gcc: Likewise.
+ * db2/mutex/parisc.hp: Likewise.
+ * db2/mutex/sco.cc: Likewise.
+ * db2/os/os_abs.c: Likewise.
+ * db2/os/os_alloc.c: Likewise.
+ * db2/os/os_config.c: Likewise.
+ * db2/os/os_dir.c: Likewise.
+ * db2/os/os_fid.c: Likewise.
+ * db2/os/os_fsync.c: Likewise.
+ * db2/os/os_map.c: Likewise.
+ * db2/os/os_oflags.c: Likewise.
+ * db2/os/os_open.c: Likewise.
+ * db2/os/os_rpath.c: Likewise.
+ * db2/os/os_rw.c: Likewise.
+ * db2/os/os_seek.c: Likewise.
+ * db2/os/os_sleep.c: Likewise.
+ * db2/os/os_spin.c: Likewise.
+ * db2/os/os_stat.c: Likewise.
+ * db2/os/os_unlink.c: Likewise.
+ * db2/progs/db_archive/db_archive.c: Likewise.
+ * db2/progs/db_checkpoint/db_checkpoint.c: Likewise.
+ * db2/progs/db_deadlock/db_deadlock.c: Likewise.
+ * db2/progs/db_dump/db_dump.c: Likewise.
+ * db2/progs/db_dump185/db_dump185.c: Likewise.
+ * db2/progs/db_load/db_load.c: Likewise.
+ * db2/progs/db_printlog/db_printlog.c: Likewise.
+ * db2/progs/db_recover/db_recover.c: Likewise.
+ * db2/progs/db_stat/db_stat.c: Likewise.
+ * db2/txn/txn.c: Likewise.
+ * db2/txn/txn.src: Likewise.
+ * db2/txn/txn_auto.c: Likewise.
+ * db2/txn/txn_rec.c: Likewise.
+
+ * elf/rtld.c: Move definition of __libc_stack_end to ...
+ * sysdeps/generic/dl-sysdep.h: ...here.
+
+ * sysdeps/unix/sysv/linux/fstatvfs.c: Handle nodiratime option.
+ * sysdeps/unix/sysv/linux/bits/statvfs.h: Define ST_NODIRATIME.
+ * sysdeps/unix/sysv/linux/sys/mount.h: Define MS_NODIRATIME.
+
+ * sysdeps/generic/libc-start.c: Always set __libc_stack_end.
+ * sysdeps/i386/backtrace.c: Test whether frame pointer is legal
+ before following it.
+
+1998-06-08 21:44 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/fstatvfs.c: Handle constant option string
+ from mntent correctly.
+
+1998-06-06 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * sunrpc/Makefile (generated): Correct typo.
+
+1998-06-04 Philip Blundell <philb@gnu.org>
+
+ * elf/elf.h (EM_ARM, et al.): New definitions.
+ * sysdeps/arm/dl-machine.h: Update for new draft ARM ELF ABI.
+
+1998-06-08 21:33 Ulrich Drepper <drepper@cygnus.com>
+
+ * localedata/SUPPORTED: Add sk_SK.
+ * localedata/locales/sk_SK: New file.
+
+1998-06-08 18:57 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makeconfig (subdirs): Add debug.
+ * configure.in: Use sysdeps/generic/elf subdir if ELF platform.
+ * libc.map: Add __backtrace, __backtrace_symbols, backtrace and
+ backtrace_symbols.
+ * sysdeps/generic/backtrace.c: New file.
+ * sysdeps/generic/backtracesyms.c: New file.
+ * sysdeps/generic/elf/backtracesyms.c: New file.
+ * sysdeps/i386/backtrace.c: New file.
+ * debug/Makefile: New file.
+ * debug/backtrace-tst.c: New file.
+ * debug/execinfo.h: New file.
+
+1998-06-08 13:34 Ulrich Drepper <drepper@cygnus.com>
+
+ * elf/sprof.c: Implement call graph profiling.
+
+ * sysdeps/generic/getenv.c: Optimize to use strncmp less often.
+
+1998-06-07 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * pwd/fgetpwent_r.c (__fgetpwent_r): Correct buffer overflow fix.
+ * grp/fgetgrent_r.c (__fgetgrent_r): Likewise.
+ * shadow/fgetspent_r.c (__fgetspent_r): Likewise.
+ Noticed by Jake Garver <garver@valkyrie.net>.
+
+1998-06-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * libio/genops.c (__underflow): Read character from read pointer
+ as unsigned.
+ (__uflow): Likewise.
+
+1998-06-07 13:32 Ulrich Drepper <drepper@cygnus.com>
+
+ * libc.map: Add _dl_profile.
+ * elf/dl-reloc.c (_dl_relocate_object): Take extra argument, pass
+ this to ELF_DYNAMIC_RELOCATE.
+ Always allocate array for relocation result if LD_PROFILE is defined.
+ * elf/ldsodefs.h: Adjust prototypes.
+ * elf/dl-open.c (_dl_open): Call relocation function with extra
+ argument.
+ * elf/rtld.c: Likewise.
+ * elf/dl-profile.c (_dl_mcount): Don't mark as internal function.
+ Correct loop condition.
+ * elf/dynamic-link.h: Don't examine _dl_profile variable, pass
+ consider_profile to runtime setup function.
+ * sysdeps/i386/dl-machine.h (elf_machine_runtime_setup): Use
+ _dl_runtime_profile for all shared objects if LD_PROFILE is defined.
+
+ * elf/dl-support.c: Define __libc_stack_end.
+ * elf/rtld.c: Likewise.
+ * sysdeps/generic/libc-start.c: Store last stack address in
+ __libc_stack_end.
+ * sysdeps/i386/dl-machine.h (_dl_start_user): Store stack address.
+ * sysdeps/i386/elf/start.s: Call __libc_start_main with extra argument.
+
+ * elf/elf.h: Include <features.h>, not <sys/cdefs.h>.
+ Include <stdint.h>, not <inttypes.h>.
+
+ * elf/sprof.c: Implement flat profiling.
+
+ * libio/fgetc.c: Call _IO_cleanup_region_end with 0 and call
+ _IO_funlockfile explicitly.
+ * libio/fileops.c: Likewise.
+ * libio/fputc.c: Likewise.
+ * libio/freopen.c: Likewise.
+ * libio/freopen64.c: Likewise.
+ * libio/fseek.c: Likewise.
+ * libio/fseeko.c: Likewise.
+ * libio/fseeko64.c: Likewise.
+ * libio/ftello.c: Likewise.
+ * libio/ftello64.c: Likewise.
+ * libio/getc.c: Likewise.
+ * libio/getchar.c: Likewise.
+ * libio/iofclose.c: Likewise.
+ * libio/iofflush.c: Likewise.
+ * libio/iofgetpos.c: Likewise.
+ * libio/iofgetpos64.c: Likewise.
+ * libio/iofgets.c: Likewise.
+ * libio/iofputs.c: Likewise.
+ * libio/iofread.c: Likewise.
+ * libio/iofsetpos.c: Likewise.
+ * libio/iofsetpos64.c: Likewise.
+ * libio/ioftell.c: Likewise.
+ * libio/iofwrite.c: Likewise.
+ * libio/iogetdelim.c: Likewise.
+ * libio/iogets.c: Likewise.
+ * libio/ioputs.c: Likewise.
+ * libio/ioseekoff.c: Likewise.
+ * libio/ioseekpos.c: Likewise.
+ * libio/iosetbuffer.c: Likewise.
+ * libio/iosetvbuf.c: Likewise.
+ * libio/ioungetc.c: Likewise.
+ * libio/iovsprintf.c: Likewise.
+ * libio/iovsscanf.c: Likewise.
+ * libio/oldfileops.c: Likewise.
+ * libio/oldiofclose.c: Likewise.
+ * libio/peekc.c: Likewise.
+ * libio/putc.c: Likewise.
+ * libio/putchar.c: Likewise.
+ * libio/rewind.c: Likewise.
+
+ * malloc/mtrace.c: Pretty print.
+
+ * misc/mntent.h (struct mentent): Make string elements const char *.
+
+ * nis/nis_printf.c: Optimize I/O a little bit.
+
+ * signal/Makefile (distribute): Add sigset-cvt-mask.h.
+ * sysdeps/generic/sigset-cvt-mask.h: New file.
+ * sysdeps/unix/sysv/linux/sigset-cvt-mask.h: New file.
+ * sysdeps/unix/sysv/sysv4/sigset-cvt-mask.h: New file.
+ * sysdeps/posix/sigvec.c: Rewrite the use definitions from
+ sigset-cvt-mask.h to do the dirty work.
+ Patches by Joe Keane.
+
+ * sysdeps/posix/mkstemp.c: Save one precious byte of rodata.
+
+ * sysdeps/unix/sysv/linux/i386/sysdep.h: Rewrite PSEUDO etc to make
+ syscall_error label in case of PIC anonymous.
+ * sysdeps/unix/sysv/linux/i386/i686/sysdep.h: Likewise.
+ * sysdeps/unix/sysv/linux/i386/clone.S: Adapt for this change.
+ * sysdeps/unix/sysv/linux/i386/mmap.S: Adapt for this change.
+ * sysdeps/unix/sysv/linux/i386/s_pread64.S: Adapt for this change.
+ * sysdeps/unix/sysv/linux/i386/s_pwrite64.S: Adapt for this change.
+ * sysdeps/unix/sysv/linux/i386/socket.S: Adapt for this change.
+ * sysdeps/unix/sysv/linux/i386/syscall.S: Adapt for this change.
+
+1998-06-05 Ulrich Drepper <drepper@cygnus.com>
+
+ * sunrpc/xdr_rec.c (xdrrec_create): Add cast for *_ops array since
+ we cannot declare the struct element as const.
+ * sunrpc/xdr_mem.c (xdrmem_create): Likewise.
+ * sunrpc/xdr_stdio.c (xdrstdio_create): Likewise.
+
+1998-06-04 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * manual/Makefile: Include ../Makeconfig earlier.
+ (MAKEINFO, TEXI2DVI): Use defaults if ../Makeconfig does not
+ exist.
+ (dir-add.texinfo): Remove useless $(SHELL).
+
+1998-06-04 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * Makefile (others): Build programs from install-bin.
+ * configure.in: Modify config.make only if is was just created and
+ move that command to second argument of AC_OUTPUT. Add command to
+ set config_vars in config.status.
+
+1998-06-04 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * malloc/Makefile (address-width): Fix conditional.
+
+1998-06-03 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * libc.map: Add fattach, fdetach, getmsg, getpmsg, makecontext,
+ putmsg, putpmsg, scalbln, scalblnf, scalblnl, strtoimax,
+ strtoumax, swapcontext, waitid, wcsnlen, wcstoimax, wcstoumax with
+ version GLIBC_2.1.
+
+1998-06-04 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * manual/lang.texi (Range of Type): Change @end table->@end vtable.
+ (Floating Point Parameters): Likewise.
+
+1998-06-01 Gordon Matzigkeit <gord@profitpress.com>
+
+ * hurd/Makefile (routines): Add cthreads.
+
+1998-05-31 Mark Kettenis <kettenis@phys.uva.nl>
+
+ * login/login.c (login): Let pututline take care of finding the
+ positin to insert the UTMP entry. This corrects a bug where ssh
+ was not reusing UTMP entries marked as DEAD_PROCESS.
+ Reported by Herbert Xu <herbert@gondor.apana.org.au>.
+
+1998-05-31 Mark Kettenis <kettenis@phys.uva.nl>
+
+ * login/Makefile (tests): New variable, add tst-utmp and
+ tst-utmpx.
+ * login/tst-utmp.c: New file.
+ * login/tst-utmpx.c: New file.
+
+1998-06-01 Gordon Matzigkeit <gord@profitpress.com>
+
+ * sysdeps/mach/hurd/errlist.c (sys_nerr, _sys_nerr): Make weak
+ aliases for _hurd_nerr, for programs that don't use sys_errlist,
+ but need sys_err.
+
+1998-05-31 Mark Kettenis <kettenis@phys.uva.nl>
+
+ * sysdeps/generic/updwtmpx.c: Rename function to updwtmpx.
+ * libc.map: Add updwtmpx and utmpxname to GLIBC_2.1.
+
+1998-05-31 Mark Kettenis <kettenis@phys.uva.nl>
+
+ * sysdeps/mach/hurd/read.c: Rename function to __libc_read and
+ make __read a weak alias. Use ANSI-style function definition.
+ * sysdeps/mach/hurd/write.c: Likewise.
+
+1998-05-31 Mark Kettenis <kettenis@phys.uva.nl>
+
+ * sysdeps/mach/hurd/err_hurd.sub: Use _hurd_errlist instead of
+ _sys_errlist.
+
+1998-05-30 Mark Kettenis <kettenis@phys.uva.nl>
+
+ * sysdeps/mach/hurd/Makefile ($(objpfx)librtld.os):
+ Renamed from librtld.so.
+
+1998-06-02 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * libc.map: Remove _IO_getline_info which was erroneously
+ introduced in section GLIBC_2.0.
+ Noticed by Horst von Brand <vonbrand@sleipnir.valparaiso.cl>.
+
+1998-06-01 Gordon Matzigkeit <gord@profitpress.com>
+
+ * sysdeps/generic/socket.c (__socket): Renamed from socket, and
+ created a weak alias.
+ * sysdeps/mach/hurd/socket.c (__socket): Likewise.
+
+1998-05-31 Gordon Matzigkeit <gord@profitpress.com>
+
+ * sysdeps/mach/hurd/ftruncate.c (__ftruncate): Rename from old
+ ftruncate function, and create a weak alias to ftruncate.
+
+1998-06-01 Gordon Matzigkeit <gord@profitpress.com>
+
+ * grp/fgetgrent_r.c: Use &errno instead of __errno_location ().
+ * inet/getnetgrent_r.c: Likewise.
+ * nss/getXXbyYY_r.c: Likewise.
+ * nss/getXXent_r.c: Likewise.
+ * pwd/fgetpwent_r.c: Likewise.
+ * shadow/sgetspent_r.c: Likewise.
+ * shadow/fgetspent_r.c: Likewise.
+ * sunrpc/publickey.c: Likewise.
+
+1998-06-01 Gordon Matzigkeit <gord@profitpress.com>
+
+ * hurd/libhurduser.map: New file.
+ * mach/libmachuser.map: Likewise.
+
+ * libc.map: Add Hurd-specific functions to version 2.1.
+ Add __flshfp and __fillbf.
+
+1998-05-30 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * manual/signal.texi (Basic Signal Handling): Fix typo.
+ * manual/errno.texi (Error Codes): Likewise.
+
+1998-06-02 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/netipx/ipx.h: Include <bits/sockaddr.h>
+ instead of <sys/socket.h>.
+ Patch by NIIBE Yutaka <gniibe@mri.co.jp>
+
+ * sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c (DL_FIND_ARG_COMPONENTS):
+ Finally make it working.
+ Patch by Mark Hatle <fray@kernel.crashing.org>.
+
+1998-03-22 Paul Eggert <eggert@twinsun.com>
+
+ * posix/regex.c: Include <wchar.h> before <wctype.h>, to work around
+ a Solaris 2.6 bug.
+
+1998-05-30 Philip Blundell <Philip.Blundell@pobox.com>
+
+ * stdlib/gmp-impl.h: Support strange mixed-endian double format
+ used by ARM systems.
+ * sysdeps/arm/fpu/bits/fenv.h (FE_EXCEPTION_SHIFT): Rename to
+ FE_EXCEPT_SHIFT.
+ * sysdeps/arm/bits/fenv.h: Deleted.
+ * sysdeps/arm/fpu/ieee754.h: New file.
+ * sysdeps/arm/gmp-mparam.h: New file.
+ * stdlib/longlong.h (umul_ppmm): Temporarily disable broken ARM
+ implementation.
+
+1998-06-01 Ulrich Drepper <drepper@cygnus.com>
+
+ * sunrpc/rpc/xdr.h (struct XDR): Don't mark xdr_ops element as const.
+
+ * sysdeps/i386/fpu/bits/mathinline.h: Use ((__unused__)) instead
+ of ((unused)). Reported by Bruno Haible.
+
+1998-05-31 Philip Blundell <philb@gnu.org>
+
+ * sysdeps/unix/sysv/linux/arm/sysdep.S: Use C_SYMBOL_NAME when
+ referring to errno and _errno.
+
+ * sysdeps/arm/fpu/feholdexcpt.c: New file.
+
+ * sysdeps/i386/fpu_control.h: Fix typo.
+
+ * sysdeps/arm/bits/setjmp.h (__jmp_buf): Remove floating-point support.
+ (_JMPBUF_UNWINDS): Added.
+ * sysdeps/arm/fpu/bits/setjmp.h: New file.
+
+1998-05-25 Gordon Matzigkeit <gord@profitpress.com>
+
+ * sysdeps/mach/hurd/Makefile: Use the `before-compile' target in
+ order to build header files, not `generated'.
+
+ * Rules (before-compile): New target which depends on all
+ $(before-compile) files.
+
+1998-06-01 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
+
+ * nis/nis_call.c: Make directory search faster.
+
+ * nis/nis_callback.c: Insert public key of user in callback data.
+
+ * nis/nis_clone_obj.c: Make size from type u_long, not u_int.
+
+ * nis/nis_creategroup.c: Check for NULL pointer, fill in more fields.
+
+ * nis/nis_findserv.c: Rename __pmap_getport to __pmap_getnisport.
+
+ * nis/nis_intern.h: Remove duplicated prototype.
+
+1998-06-01 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
+
+ * sunrpc/auth_des.c: Move prototypes from here ...
+ * sunrpc/rpc/auth.h: ... to here.
+
+ * sunrpc/clnt_tcp.c: Add more control flags.
+ * sunrpc/clnt_udp.c: Likewise.
+
+ * sunrpc/netname.c (host2netname): Remove prefixing dot from
+ domainname.
+
+ * sunrpc/rpc/clnt.h: Document, which control flags are not
+ implementable.
+
+ * sunrpc/svcauth_des.c: Use key_decryptsession_pk to avoid deadlock.
+
+1998-05-29 Ulrich Drepper <drepper@cygnus.com>
+
+ * locale/loadlocale.c (_nl_load_locale): Don't allow too small
+ files crash the program.
+
+ * io/Makefile: Don't run ftwtest-sh if cross-compiling.
+ * string/Makefile: Don't run test on tst-svc.out if cross-compiling.
+ Reported by Deborah Wallach <kerr@pa.dec.com>.
+
+1998-05-28 00:53 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ * glibcbug.in: Send to bugs@gnu or libc-alpha@cygnus depending
+ on whether this is a stable release or not (keeps snapshot bug
+ reports out of the database).
+
+ * include/libc-symbols.h: Use __ASSEMBLER__ test macro not ASSEMBLER.
+ * sysdeps/arm/sysdep.h: Likewise.
+ * sysdeps/i386/sysdep.h: Likewise.
+ * sysdeps/m68k/sysdep.h: Likewise.
+ * sysdeps/mach/mips/sysdep.h: Likewise.
+ * sysdeps/mach/sys/reboot.h: Likewise.
+ * sysdeps/mach/sysdep.h: Likewise.
+ * sysdeps/unix/alpha/sysdep.h: Likewise.
+ * sysdeps/unix/bsd/hp/m68k/sysdep.h: Likewise.
+ * sysdeps/unix/bsd/osf/alpha/sysdep.h: Likewise.
+ * sysdeps/unix/bsd/sequent/i386/sysdep.h: Likewise.
+ * sysdeps/unix/bsd/sony/newsos/m68k/sysdep.h: Likewise.
+ * sysdeps/unix/bsd/sun/m68k/sysdep.h: Likewise.
+ * sysdeps/unix/bsd/vax/sysdep.h: Likewise.
+ * sysdeps/unix/i386/sysdep.h: Likewise.
+ * sysdeps/unix/mips/sysdep.h: Likewise.
+ * sysdeps/unix/sparc/sysdep.h: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/sysdep.h: Likewise.
+ * sysdeps/unix/sysv/linux/arm/sysdep.h: Likewise.
+ * sysdeps/unix/sysv/linux/i386/sysdep.h: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/sysdep.h: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/sysdep.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h: Likewise.
+ * sysdeps/unix/sysv/sysv4/solaris2/sparc/sysdep.h: Likewise.
+
+1998-05-27 Mark Kettenis <kettenis@phys.uva.nl>
+
+ * mach/Machrules: Use $(move-if-change).
+
+1998-05-27 Mark Kettenis <kettenis@phys.uva.nl>
+
+ * Makeconfig [elf=yes] (+interp): New variable, set to interp.os.
+ * Makerules (lib%.so): Depend on $(+interp).
+ (libc.so): Add interp.os to list of dependencies.
+ (interp-obj): Remove variable.
+ * mach/Machrules (+interp): Define to empty since libhurduser and
+ libmachuser don't need to have the interpreter set.
+
+1998-05-28 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * resolv/res_send.c: Security fixes from bind 4.9.7-REL.
+
+ * resolv/gethnamaddr.c: Likewise.
+
+ * resolv/res_comp.c: Likewise.
+
+1998-05-28 Mark Kettenis <kettenis@phys.uva.nl>
+
+ * sysdeps/mach/hurd/wait4.c (__wait4): Use ANSI-style definition
+ so that transparent union works.
+
+1998-05-29 08:58 Ulrich Drepper <drepper@cygnus.com>
+
+ * manual/texinfo.tex: Update to last available version.
+
+ * timezone/africa: Update from tzdata1998e.
+ * timezone/antarctica: Likewise.
+ * timezone/asia: Likewise.
+ * timezone/australasia: Likewise.
+ * timezone/europe: Likewise.
+ * timezone/iso3166.tab: Likewise.
+ * timezone/northamerica: Likewise.
+ * timezone/tzselect.ksh: Likewise.
+ * timezone/zone.tab: Likewise.
+
+1998-05-27 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/i386/chown.c: Fix comment.
+ Reported by Matt McLean <keys@brio.yikes.com>.
+
+1998-05-25 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * catgets/Makefile ($(objpfx)de.cat): Renamed from
+ do-gencat-test. Use automatic variables.
+ ($(objpfx)de.msg): Fix reference to po file.
+
+1998-05-26 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * Makeconfig ($(common-objpfx)gnu/lib-names.stmp): Use
+ $(move-if-change).
+
+1998-05-25 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * intl/dcgettext.c: Fix typo.
+
+1998-05-25 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * configure.in: Allow more make versions e.g 3.76.90.
+
+1998-05-25 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makeconfig (rpath-link): Find libc.so.6 in $(common-objdir).
+
+ * malloc/thread-m.h: Use __mutex_init function in mutex_init macro
+ for Hurd. Patch by Mark Kettenis.
+
+1998-04-18 Gordon Matzigkeit <gord@profitpress.com>
+
+ * mach/Machrules (+preinit, +postinit): Define these variables to
+ empty because libhurduser and libmachuser don't need startup
+ files.
+
+1998-04-22 Gordon Matzigkeit <gord@profitpress.com>
+
+ * sysdeps/mach/hurd/errlist.c (ERR_REMAP): Use err_get_code
+ instead of a raw bitmask.
+
+1998-05-23 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * Makeconfig (rpath-dirs): New variable.
+ (rpath-link): Use it.
+ (nssobjdir, nisobjdir, rtobjdir, resolvobjdir): Removed.
+ (db-objpfx): Removed.
+ * crypt/Makefile: Augment rpath-dirs instead of rpath-link.
+ * md5-crypt/Makefile: Likewise.
+ * sysdeps/mach/hurd/Makefile: Likewise.
+
+ * Makeconfig (move-if-change): New variable.
+ * iconvdata/Makefile (move-if-change): Removed.
+ * manual/Makefile (move-if-change): Set only if undefined, use
+ local script by default.
+ * sunrpc/Makefile (move-if-change): Removed.
+ * sysdeps/mach/hurd/Makefile ($(common-objpfx)stamp-errnos): Use
+ $(move-if-change).
+
+ * elf/Makefile: Remove all references to obsolete file
+ $(objpfx)rtldtbl.h.
+ ($(objpfx)trusted-dirs.h): Use stamp file. Cleanup command.
+
+1998-05-22 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * elf/dl-close.c (_dl_close): Add debugging message.
+
+1998-05-25 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * csu/Makefile ($(objpfx)version-info.h): Correct sed expression
+ to get Linux version and not gcc version.
+ Reported by Alan Curry <pacman@cqc.com>.
+
+1998-05-25 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * sysdeps/generic/_strerror.c (__strerror_r): Don't return NULL
+ pointers - return unknown error message instead.
+ Reported by Alan Curry <pacman@cqc.com>.
+
+1998-05-24 Mark Kettenis <kettenis@phys.uva.nl>
+
+ * iconvdata/Makefile (modules, sed-generated-headers,
+ perl-generated-headers): ibm424.h is perl generated. Make
+ necessary modifications to compile without perl.
+
+1998-05-24 Mark Kettenis <kettenis@phys.uva.nl>
+
+ * hesiod/hesiod.c (read_config_file): Fix typo.
+
+1998-05-24 Ulrich Drepper <drepper@cygnus.com>
+
+ * version.h: Bump VERSION.
+
+ * csu/Makefile (distribute): Add munch-tmpl.c.
+
+1998-05-23 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
+
+ * nis/nis_defaults.c: Fix buffer problems and typos.
+
+1998-05-23 08:42 Ulrich Drepper <drepper@cygnus.com>
+
+ * intl/dcgettext.c: Don't use any alloca hacks if C_ALLOCA is defined.
+ Patch by Fred Fish.
+
+1998-05-22 Ulrich Drepper <drepper@cygnus.com>
+
+ * stdlib/random_r.c (__random_r): Rewrite last patch to fix buffer
+ overwriting bugs.
+
+ * libio/strops.c (_IO_str_underflow): Read newly available
+ character from buffer as unsigned.
+
+1998-05-22 10:56 Ulrich Drepper <drepper@cygnus.com>
+
+ * catgets/Makefile (distribute): Add xopen-msg.h.
+ (generated): Add de.msg and de.cat.
+ (tests): Add do-gencat-test.
+ (do-gencat-test): New goal. Run gencat on a generated msg file.
+ * catgets/xopen-msg.h: New file.
+
+1998-05-22 Ulrich Drepper <drepper@cygnus.com>
+
+ * catgets/open_catalog.c (__open_catalog): Use byteswap.h
+ functions. Optimize filename creation a bit.
+
+1998-05-22 09:29 Ulrich Drepper <drepper@cygnus.com>
+
+ * stdlib/random_r.c: Help gcc to optimize the code.
+ Patch by Joe Keane <jgk@jgk.org>.
+
+1998-05-21 Ulrich Drepper <drepper@cygnus.com>
+
+ * iconv/iconv_prog.c (print_known_names): Use strverscmp in all
+ tsearch calls.
+
+1998-05-21 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * timezone/test-tz.c: The test with TZ=UTC0 seems to work - enable
+ it.
+
+1998-05-21 15:27 Ulrich Drepper <drepper@cygnus.com>
+
+ * wcsmbs/wcsnrtombs.c: Correct computation of result.
+ * wcsmbs/wcsrtombs.c: Likewise.
+
+ * wcsmbs/Makefile (tests): Add wcsmbs-tst1.c.
+ * wcsmbs/wcsmbs-tst1.c: New file.
+
+ * iconv/loop.c (COUNT_CONVERTED): Correct computation.
+
+ * locale/C-ctype.c (_nl_C_LC_CTYPE): Define MB_CUR_MAX for C locale
+ as 1.
+
+ * locale/setlocale.c: Don't make _nl_current_* and _nl_C_* references
+ weak.
+
+1998-05-21 Philip Blundell <philb@gnu.org>
+
+ * sysdeps/arm/fpu_control.h: Replace stub file with real
+ implementation.
+ * sysdeps/arm/fpu/bits/fenv.h: New file.
+ * sysdeps/arm/fpu/fesetround.c: Likewise.
+ * sysdeps/arm/fpu/fclrexcpt.c: Likewise.
+ * sysdeps/arm/fpu/fsetexcptflag.c: Likewise.
+ * sysdeps/arm/fpu/ftestexcpt.c: Likewise.
+ * sysdeps/arm/fpu/fraiseexcpt.c: Likewise.
+ * sysdeps/arm/fpu/fegetenv.c: Likewise.
+ * sysdeps/arm/fpu/fesetenv.c: Likewise.
+
+1998-05-21 16:34 Richard Henderson <rth@cygnus.com>
+
+ * elf/dl-load.c (_dl_map_object_from_fd): Get file header with
+ read instead of mmap.
+
+1998-05-21 8:16 Richard Henderson <rth@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/alpha/glob.c: Include sysdeps/generic/glob.c
+ directly instead of include_next. Add missing semicolons.
+ * sysdeps/unix/sysv/linux/alpha/oldglob.c: Include sys/types.h.
+ Add missing semicolons.
+
+1998-05-21 Ulrich Drepper <drepper@cygnus.com>
+
+ * iconvdata/gconv-modules: Add more aliases to please java
+ environments.
+
+1998-05-20 Ulrich Drepper <drepper@cygnus.com>
+
+ * stdio-common/vfprintf.c (process_arg): Fix typo.
+
+ * iconvdata/TESTS: New tests for EUC-KR.
+
+ * iconvdata/Makefile ($(objpfx)iconv-test.out): Also depend on TESTS.
+ * iconvdata/testdata/EUC-KR: New file.
+
+1998-05-20 07:26 H.J. Lu <hjl@gnu.org>
+
+ * math/libm-test.c (hypot_test): Fix a typo.
+
+1998-05-20 Ulrich Drepper <drepper@cygnus.com>
+
+ * stdio-common/vfprintf.c: When precision is specified for %ls or
+ %S handle it correctly.
+
+1998-05-20 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * sysdeps/unix/bsd/vax/vfork.S: Missed double occurences of "the
+ the" in one line - fixed it.
+ * sysdeps/unix/bsd/sun/m68k/vfork.S: Likewise.
+ * sysdeps/unix/bsd/hp/m68k/vfork.S: Likewise.
+ * posix/unistd.h: Likewise
+
+1998-05-20 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * Makeconfig (rpath-link): Add resolvobjdir.
+ (resolvobjdir): New variable.
+ Reported by Peter Breitenlohner <peb@mppmu.mpg.de> [fixes PR libc/633].
+
+1998-05-20 09:36 Ulrich Drepper <drepper@cygnus.com>
+
+ * elf/dl-close.c: Call shared object terminators at the right time.
+ Patch by Philippe Troin <phil@fifi.org>.
+
+1998-05-20 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * Make-dist (+tsrcs): Also add *.map for every member of
+ $(extra-libs).
+
+ * Makefile (distribute): Don't distribute scripts/printsources and
+ scripts/=__ify. Distribute FAQ.in.
+ (rpm/%): Don't pass subdirs to sub-make.
+
+ * timezone/Makefile: Protect inclusion of z.* by $(avoid-generated)
+ instead of $(no_deps).
+
+1998-05-19 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/generic/setenv.c: Protect against GNU C extension.
+ (KNOWN_VALUE, STORE_VALUE): Do it right.
+ (setenv): Remove unused variable.
+
+1998-05-18 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * timezone/Makefile (tz-cflags): Define TM_GMTOFF and TM_ZONE.
+ (CFLAGS-zdump.c): Add $(tz-cflags).
+
+ * timezone/zdump.c (abbr): Use TM_ZONE if defined. Add const to
+ return type.
+
+1998-05-18 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * time/tzfile.c (__tzfile_compute): Undo last change. Instead
+ take struct tm parameter and set tm_isdst, tm_zone and tm_offset
+ if use_localtime.
+ * time/tzset.c: Update prototype of __tzfile_compute.
+ (__tz_convert): Pass tp to __tzfile_compute. Don't set tm_isdst,
+ tm_zone and tm_offset here if __use_tzfile.
+
+1998-05-19 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * Makerules: Install libc.a even if there are no object file.
+
+1998-05-18 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * Makerules (do-makelib): Don't force creating library from
+ scratch, which is faster and gets correct behaviour if $(subdirs)
+ is incomplete.
+
+1998-05-19 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * Makerules (do-stamp): Make it work when building in source
+ directory.
+
+1998-05-20 00:10 Ulrich Drepper <drepper@cygnus.com>
+
+ * elf/dl-load.c: Rename option and variable from ignore-rpath to
+ inhibit-rpath.
+ * elf/dl-support.c: Likewise.
+ * elf/ldsodefs.h: Likewise.
+ * elf/rtld.c: Likewise.
+ * iconvdata/run-iconv-test.sh: Likewise.
+
+1998-05-19 23:08 Ulrich Drepper <drepper@cygnus.com>
+
+ * elf/rtld.c: Recognize --ignore-rpath argument and set _dl_ignore_path
+ variable using the value.
+ * elf/ldsodefs.h: Declare _dl_ignore_path.
+ * elf/dl-load.c (decompose_rpath): Compare name of handled shared
+ object against list in _dl_ignore_path and ignore RPATH if on the list.
+ * elf/dl-support.c: Define _dl_ignore_path for static binaries.
+ * iconvdata/run-iconv-test.sh: Call ld.so with --ignore-rpath parameter
+ to make sure we get the correct helper libraries loaded.
+
+ * elf/dl-load.c (decompose_rpath): Remove `room' parameter. Use
+ "RPATH" string in call to fillin_rpath instead.
+ (_dl_init_paths): Remove this parameter from call to decompose_rpath.
+
+1998-05-19 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/i386/i486/bits/string.h (__strstr_g): Initialize %edx
+ correctly. Patch by Horst von Brand <vonbrand@sleipnir.valparaiso.cl>.
+
+1998-05-19 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * manual/terminal.texi (I/O Queues): Fix typo.
+
+ * manual/stdio.texi (Closing Streams): Fix grammar.
+
+ * manual/arith.texi (Absolute Value): Correct typo.
+ Patches by Oskar Liljeblad <osk@hem.passagen.se>. [PR libc/630]
+
+1998-05-19 15:58 Ulrich Drepper <drepper@cygnus.com>
+
+ * elf/rtld.c (process_envvars): Fix typo. Don't handle
+ LD_PROFILE_OUTPUT in SUID binaries.
+ * intl/dcgettext.c: In SUID binaries don't let language part of
+ locale value contain path elements.
+ * intl/explodename.h: Define new function _nl_find_language.
+ * intl/loadinfo.h: Declare _nl_find_language.
+ * locale/findlocale.c (_nl_find_locale): Use _nl_find_locale to get
+ language part it drop the value is path element is contained.
+
+ * locale/setlocale.c: Fix typo.
+
+1998-05-18 Philip Blundell <Philip.Blundell@pobox.com>
+
+ * sysdeps/unix/sysv/linux/arm/socket.S: Correct handling of arguments.
+
+ * sysdeps/arm/strlen.S: Support both big and little endian processors.
+
+ * sysdeps/arm/sysdep.h (ALIGNARG): ELF .align directive uses a
+ log, not a byte-count.
+
+ * sysdeps/unix/arm/sysdep.S (syscall_error): Use C_SYMBOL_NAME for
+ a.out compatibility.
+
+1998-05-19 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * sysdeps/unix/bsd/vax/vfork.S: Fix the "the the" problems.
+ * sysdeps/unix/bsd/sun/m68k/vfork.S: Likewise.
+ * sysdeps/unix/bsd/hp/m68k/vfork.S: Likewise.
+ * posix/unistd.h: Likewise.
+ * math/math.h: Likewise.
+ * manual/users.texi (Manipulating the Database): Likewise.
+ * manual/signal.texi (Job Control Signals): Likewise.
+ * manual/message.texi (The gencat program): Likewise.
+ * manual/filesys.texi (Hard Links): Likewise.
+ * manual/math.texi (SVID Random): Likewise.
+ * manual/llio.texi (Waiting for I/O): Likewise.
+ * manual/io.texi (File Name Errors): Likewise.
+ * manual/conf.texi (String Parameters): Likewise.
+ * manual/arith.texi (Infinity): Likewise.
+ * malloc/malloc.c: Likewise.
+ * hurd/hurdsig.c (_hurd_internal_post_signal): Likewise.
+ * csu/Makefile: Likewise.
+
+1998-05-19 12:16 Ulrich Drepper <drepper@cygnus.com>
+
+ * manual/memory.texi: Add back accidently removed line.
+
+1998-04-25 Mark Kettenis <kettenis@phys.uva.nl>
+
+ * sysdeps/generic/utmp_file.c (TIMEOUT): New macro.
+ (timeout_handler): New function.
+ (LOCK_FILE, UNLOCK_FILE): New macros.
+ Implement file locking with timeout.
+ (getutent_r_file, internal_getut_r, getutline_r_file,
+ pututline_file, updwtmp_file): Use LOCK_FILE and UNLOCK_FILE for
+ locking.
+
+1998-05-18 11:38 Ulrich Drepper <drepper@cygnus.com>
+
+ * iconvdata/run-iconv-test.sh: Extend library-path by iconvdata
+ directory.
+
+1998-05-16 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * rpm/Makefile: Delete inclusion of version.mk.
+
+1998-05-17 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * libc.map: Add all libio functions needed libstdc++ with version
+ 2.0, sort entries.
+
+1998-05-18 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * iconvdata/Makefile (generated): Add *.stmp files.
+
+1998-05-17 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * timezone/Makefile (testdata, build-testdata): New variables, use
+ them in rules for test data.
+ ($(objpfx)tst-timezone.out): Depend on test data.
+ ($(testdata)/Europe/Berlin, $(testdata)/Universal,
+ $(testdata)/Australia/Melbourne, $(testdata)/America/Sao_Paulo):
+ New rules to build test data.
+ (tst-timezone-ENV): Pass TZDIR to point to test data.
+
+1998-05-18 Ulrich Drepper <drepper@cygnus.com>
+
+ * iconvdata/TESTS: ISO-2022-KR has not really ASCII as a subset
+ (the designation sequence is disturbing).
+
+1998-05-17 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
+
+ * sunrpc/svc_tcp.c: Add FreeBSD DoS patch.
+ * sunrpc/xdr_rec.c: Likewise.
+
+1998-05-15 Ulrich Drepper <drepper@cygnus.com>
+
+ * posix/Makefile (tests): Add runptests.
+ (distribute): Add PTESTS, PTESTS2C.sed, and ptestcases.h.
+ (before-compile): Add ptestcases.h.
+ (ptestscases.h): Add rule to generate from PTESTS.
+ * posix/runptests.c: New file.
+ * posix/PTESTS: New file.
+ * posix/PTESTS2C.sed: New file.
+
+1998-05-15 Ulrich Drepper <drepper@cygnus.com>
+
+ * iconv/loop.c: Let user add code to use and set paramaters.
+
+ * iconvdata/iso-2022-kr.c: Correct to-loop.
+
+ * iconvdata/iso-2022-kr.c (PREPARE_LOOP): Use correct variable to
+ point to output buffer.
+
+ * iconvdata/ksc5601.h (ksc5601_to_ucs4): Use correct value to find
+ hanja.
+
+ * iconvdata/TESTS: Add ISO-2022-KR test.
+ * iconvdata/testdata/ISO-2022-KR: New file.
+
+1998-05-15 21:07 Ulrich Drepper <drepper@cygnus.com>
+
+ * iconv/gconv.h (gconv_step_data): Add new fields invocation_counter
+ and internal_use.
+ * iconv/gconv_open.c (__gconv_open): Initialize invocation_counter
+ and internal_use.
+ * wcsmbs/btowc.c: Likewise.
+ * wcsmbs/mbrtowcs.c: Likewise.
+ * wcsmbs/mbsnrtowcs.c: Likewise.
+ * wcsmbs/mbsrtowcs.c: Likewise.
+ * wcsmbs/wcrtomb.c: Likewise.
+ * wcsmbs/wcsnrtombs.c: Likewise.
+ * wcsmbs/wcsrtombs.c: Likewise.
+ * wcsmbs/wctob.c: Likewise.
+ * iconv/skeleton.c: Increment invocation_counter.
+ * iconvdata/iso-2022-kr.c: When used in iconv() emit designator
+ sequence first.
+
+ * iconv/skeleton.c (FROM_DIRECTION): Completely embrace expression.
+ * iconvdata/iso-2022-jp.c: Likewise.
+ * iconvdata/iso646.c: Likewise.
+
+ * iconvdata/Makefile: Correct rpath definition for ISO-2022-KR.
+
+1998-05-15 Ulrich Drepper <drepper@cygnus.com>
+
+ * iconv/gconv_db.c (derivation_lookup): Use __tfind correctly.
+
+ * sysdeps/generic/setenv.c (setenv): Remove optimization for
+ overwriting existing values if it fits.
+
+1998-05-15 14:36 Ulrich Drepper <drepper@cygnus.com>
+
+ * posix/wordexp-test.c: Avoid duplicate messages.
+
+ * sysdeps/generic/setenv.c: Use __tfind and __tsearch, not tfind and
+ tsearch. Correctly interpret values returned by those functions.
+ (unsetenv): Store pointer to string, not pointer to string pointer.
+
+ * time/tzfile.c (__tzfile_compute): Take new arguments. Store
+ DST information and offset in them.
+ * time/tzset.c (__tz_convert): Pass extra parameters to
+ __tzfile_compute. Compute equivalent values for use of tz_rules.
+
+1998-05-15 00:49:11 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ * iconvdata/Makefile (gen-8bit-table): Use move-if-change and
+ stamp files to avoid unnecessary recompilation.
+ (gen-8bit-gap-table): Likewise.
+ (move-if-change): New variable.
+ (all generated .h rules): Change to be .stmp rules.
+ (%.h): New rule; depend on %.stmp; no commands.
+ (distribute): Add gen-8bit.sh, gen-8bit-gap.sh,
+ gen-8bit-gap-1.sh.
+
+1998-05-15 01:09 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ * Makerules (libc-map): Deleted.
+ (load-map-file): Set to the appropriate compiler switch, not
+ just the file name. If libfoo-map is not set, look for a
+ libfoo.map in the current directory and $(..).
+ (map-file): New variable, contains just the mapfile name.
+ (build-shlib): Adjust for new value of load-map-file.
+ (libc.so): Correct dependencies.
+
+ * extra-lib.mk: Correct shlib dependencies since libfoo-map
+ may not be set anymore.
+
+ * elf/Makefile: Set ld-map to $(..)libc.map, not $(libc-map).
+ Delete libdl-map. Tweak ld.so link rule to work with changed
+ variable settings in Makerules.
+ * iconvdata/Makefile: Tweak build-module to work with changed
+ variable settings in Makerules.
+
+ * db/Makefile: Delete libdb-map.
+ * hesiod/Makefile: Delete libnss_hesiod-map.
+ * linuxthreads/Makefile: Delete libpthread-map.
+ * locale/Makefile: Delete libBrokenLocale-map.
+ * login/Makefile: Delete libutil-map.
+ * math/Makefile: Delete libm-map.
+ * md5-crypt/Makefile: Delete libcrypt-map.
+ * nis/Makefile: Delete libnsl-map, libnss_nis-map,
+ libnss_nisplus-map, and libnss_compat-map.
+ * nss/Makefile: Delete libnss_files-map, libnss_db-map, and
+ libnss_ldap-map.
+ * resolv/Makefile: Delete libresolv-map and libnss_dns-map.
+ * rt/Makefile: Delete librt-map.
+
+1998-05-15 01:06 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ * configure.in: Instead of substituting `yes' or `no' for whether
+ --no-whole-archive is available, set @no_whole_archive@ to the
+ appropriate gcc switch or the empty string. Likewise for
+ -fno-exceptions.
+ * config.make.in: Replace have-no-whole-archive with
+ no-whole-archive and have-no-exceptions with no-exceptions.
+ * Makerules: Delete stanzas setting no-whole-archive and
+ no-exceptions.
+
+ * sunrpc/Makefile: Use move-if-change to update generated .h
+ and .c files.
+
+1998-05-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * wcsmbs/wcsmbsload.c (extract_charset_name): Use strcspn instead
+ of strchr loop.
+
+1998-05-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * time/tzfile.c (__tzfile_read): Remove unused variable info.
+ (__tzfile_compute): Likewise.
+
+1998-05-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * sysdeps/unix/sysv/linux/bits/socket.h (AF_SNA,PF_SNA): Add new
+ defines from Linux 2.1.102.
+
+1998-05-14 23:14 Ulrich Drepper <drepper@cygnus.com>
+
+ * locale/programs/ld-ctype.c: Write correct mb_cur_max value.
+
+1998-05-14 13:25 Ulrich Drepper <drepper@cygnus.com>
+
+ * inet/netinet/in.h: Add defines for multicast.
+ Reported by Jeremy Hall <jhall@UU.NET>.
+
+ * stdlib/stdlib.h: Add prototypes for __setenv and __unsetenv.
+ * sysdeps/generic/putenv.c: Use __setenv and __unsetenv, not setenv
+ and unsetenv. Optimize _LIBC case.
+ * sysdeps/generic/setenv.c: Prevent unnecessary memory leaks.
+ Define functions with leading __.
+
+ * time/tzfile.c: Correct handling of global variables daylight,
+ timezone, and tzname.
+ * time/tzset.c: Likewise.
+ * timezone/Makefile (tests): Add tst-timezone.
+ * timezone/tst-timezone.c: New file.
+
+1998-05-14 10:35 Ulrich Drepper <drepper@cygnus.com>
+
+ * timezone/asia: Update from tzdata1998d.
+ * timezone/australasia: Likewise.
+ * timezone/europe: Likewise.
+
+1998-05-13 Ulrich Drepper <drepper@cygnus.com>
+
+ * string/string.h: Don't use the optimized versions for the string
+ functions if optimizing for space.
+
+ * stdlib/tst-strtod.c: Add test for -0.0.
+
+ * io/ftwtest-sh: Prevent tests from being run by root.
+
+ * wcsmbs/wcsmbsload.c (extract_charset_name): Fix silly bugs in
+ last addition. Patch by wkpark@chem.skku.ac.kr.
+
+1998-05-12 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * iconvdata/8bit-gap.c (BODY): Don't fall off the end of the gap
+ table.
+
+1998-05-12 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * iconvdata/gen-8bit.sh: New file.
+ * iconvdata/gen-8bit-gap.sh: New file.
+ * iconvdata/gen-8bit-gap-1.sh: New file.
+ * iconvdata/Makefile (generate-8bit-table): Use shell script
+ instead of writing the commands directly.
+ (generate-8bit-gap-table): Likewise.
+ ($(objpfx)iso8859-7jp.h): Likewise.
+ (generated headers): Depend on shell script instead of Makefile.
+ (before-compile): Add $(perl-generated-headers) only if perl is
+ available.
+ (headers): Depend on $(perl-generated-headers) only if perl is
+ available.
+ (sed-generated-headers): Remove iso8859-7jp.h.
+
+1998-05-11 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * csu/Makefile ($(objpfx)abi-tag.h): Double $ in command. Clean up.
+ (/): Removed.
+
+1998-05-12 Ulrich Drepper <drepper@cygnus.com>
+
+ * wcsmbs/wcsmbsload.c (extract_charset_name): Pass correctly
+ formed charset names to getfct. Let user override charset
+ selection by mention charset in locale name.
+
+1998-05-12 12:15 Ulrich Drepper <drepper@cygnus.com>
+
+ * posix/glob.c: Move to ...
+ * sysdeps/generic/glob.c: ...here.
+ * posix/glob.h (glob_t): Use correct types for gl_pathc and gl_offs
+ elements.
+ * sysdeps/unix/sysv/linux/alpha/glob.c: New file.
+ * sysdeps/unix/sysv/linux/alpha/oldglob.c: New file.
+ * sysdeps/unix/sysv/linux/alpha/Dist: Add oldglob.c.
+ * sysdeps/unix/sysv/linux/alpha/Makefile: Compile oldglob in posix
+ subdir.
+ * libc.map [GLIBC_2.1]: Add glob and globfree.
+
+1998-05-12 Ulrich Drepper <drepper@cygnus.com>
+
+ * sunrpc/Makefile (generated): Restore old list.
+
+1998-05-11 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * rt/Makefile (tests): Define only if we have a thread library.
+
+ * nis/ypclnt.c: Add: #include <errno.h>.
+
+1998-05-10 15:39 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ * configure.in: Define and substitute RELEASE as well as
+ VERSION.
+ * config.make.in: Add RELEASE and VERSION to be substituted.
+ * Makeconfig: Delete all references to version.mk.
+ * Make-dist: Likewise.
+ * MakeTAGS: Likewise.
+ * elf/Makefile: Likewise.
+
+1998-05-10 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
+
+ * nis/ypclnt.c: Move "(none)" domainname check from __yp_check to
+ yp_get_default_domain.
+
+1998-05-12 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/posix/profil.c (__profil): Don't define act and timer
+ variables as static. Patch by Joe Keane <jgk@jgk.org>.
+
+1998-05-12 Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>
+
+ * malloc/malloc.c: Fix for NO_THREADS case.
+
+1998-05-11 18:02 Richard Henderson <rth@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/alpha/Makefile (sysdep_routines):
+ Remove statfs and fstatfs.
+ * sysdeps/unix/sysv/linux/alpha/syscalls.list: Don't mark pread
+ and pwrite as EXTRA.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
+
+1998-05-09 Ulrich Drepper <drepper@cygnus.com>
+
+ * libc.map: Add capget and capset.
+
+1998-05-08 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c
+ (DL_FIND_ARG_COMPONENTS): Find correct alignment for auxiliary
+ vector. Patch by Mark Hatle <fray@kernel.crashing.org>
+ and Matt McLean <keys@brio.yikes.com>.
+
+1998-05-08 23:49 Ulrich Drepper <drepper@cygnus.com>
+
+ * misc/Makefile (tests): Add tst-mntent.
+ * misc/tst-mntent.c: New file.
+
+1998-05-08 21:56 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ * autolock.sh: Removed.
+ * manual/move-if-change: Removed.
+
+ * scripts: New directory.
+ * =__ify: Moved to scripts.
+ * config.guess: Likewise.
+ * config.sub: Likewise.
+ * gen-FAQ.pl: Likewise.
+ * install-sh: Likewise.
+ * mkinstalldirs: Likewise.
+ * move-if-change: Likewise.
+ * printsources: Likewise.
+ * rellns.sh: Likewise.
+ * test-installation.pl: Likewise.
+
+ * configure.in: Look in scripts for config.guess, config.sub,
+ install-sh.
+ * Makefile: Distribute all above files in their
+ new home. Find gen-FAQ.pl and test-installation.pl in scripts.
+ * manual/Makefile: Find mkinstalldirs and move-if-change in
+ $(..)scripts. Drop them from distribute. Minor cleanups.
+ * Makerules: Find mkinstalldirs and rellns-sh in scripts.
+ * sysdeps/mach/hurd/Makefile: Find move-if-change in scripts.
+ * timezone/Makefile: Find rellns-sh in scripts.
+
+1998-05-08 Ulrich Drepper <drepper@cygnus.com>
+
+ * intl/locale.alias: Change italian to it_IT.ISO-8859-1.
+ Reported by Ottavio G. Rizzo <otto@mast.queensu.ca>.
+
+1998-05-08 19:24 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ * Makefile (+subdir-inits): Delete variable.
+ (+init_subdirs): Likewise.
+ (aux): Likewise.
+ (before-compile): Likewise.
+ (libc-init): Delete stanza.
+ (version-info.h): Delete rule and associated variable.
+ (distribute): Don't distribute moved files.
+ * Makerules (interp-obj): It lives in elf now. Only use it
+ if $(elf) is set. Delete rule to build it.
+ * csu/Makefile: Build set-init.o and/or munch-init.o. Build
+ version.o and version-info.h. Minor cleanups.
+ (routines): Add libc-init, sysdep, version.
+ (generated): Add version-info.h.
+ * elf/Makefile: Build interp.os.
+
+ * interp.c: Moved to elf.
+ * set-init.c: Moved to csu.
+ * munch-init.c: Likewise.
+ * munch.awk: Likewise.
+ * version.c: Likewise.
+
+ * Rules: Unconfuse syntax highlighting with a fake comment.
+
+1998-05-08 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/syscalls.list: Add capset and capget
+ syscalls.
+
+1998-05-08 16:36 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ * iconvdata/Makefile (generated): Set to *-generated-headers
+ plus gconv-modules.
+ (tests): Set to iconv-test.
+ * localedata/Makefile (generated-dirs): Add ld-test-names to list.
+ * posix/Makefile (generated): Set to wordexp-test-result*.
+ * sunrpc/Makefile (generated): Remove rpcsvc/*.
+ (generated-dirs): Add rpcsvc.
+ * libio/Makefile: Clean up.
+
+1998-05-08 14:55 Ulrich Drepper <drepper@cygnus.com>
+
+ * Make-dist (+tsrcs): Also use tests-statc where tests is used.
+ * Makerules: Likewise.
+ (+depfiles): Also add sysdep-others.
+ * Rules: Likewise.
+ * iconv/Makefile (distribute): Add loop.s and skeleton.c.
+ * iconvdata/Makefile (distribute): Add TESTS.
+ * localedata/Makefile (repertoires): Rename to repertoiremaps.
+ * sysdeps/gnu/Dist: Add utmpx.h and bits/utmpx.h.
+ * sysdeps/unix/sysv/linux/Dist: Add ldd-rewrite.sed.
+ * sysdeps/unix/sysv/linux/i386/Makefile [subdir=elf]: Define
+ sysdep-others, not others.
+ * sysdeps/unix/sysv/linux/m68k/Makefile: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/Dist: Add sys/kernel_termios.h.
+
+1998-05-08 12:26 Ulrich Drepper <drepper@cygnus.com>
+
+ * iconv/gconv_int.h (struct gconv_module): Remove cost field and add
+ cost_hi and cost_lo.
+ * iconv/gconv_conf.c (builtin_modules): Initialize cost_hi from
+ Cost parameter and set cost_lo to INT_MAX.
+ (add_module): Take new parameter and use it to initialize cost_lo.
+ (read_conf_file): Count modules being loaded and use counter for
+ new parameter to add_module.
+ * iconv/gconv_db.c (find_derivation): When look for cost examine
+ cost_hi and cost_lo.
+
+1998-05-08 10:52 Ulrich Drepper <drepper@cygnus.com>
+
+ * string/bits/string2.h: Don't use unsigned char * unless really
+ necessary since this disturbs C++.
+ * sysdeps/i386/i486/bits/string.h: Likewise.
+ Patch by Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>.
+
+1998-05-08 13:53 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * malloc/malloc.c (top_check): Fix last change.
+
+1998-05-07 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/powerpc/bits/setjmp.h (_JMPBUF_UNWINDS): Define.
+ Patch by Matt McLean <keys@brio.yikes.com>.
+
+1997-05-07 13:26 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * Makerules (lib): Put back dependency on lib-noranlib.
+ ($(subdirs-stamps)): Remove dependency on stamp.* again.
+
+1998-05-07 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/i386/fpu/bits/mathinline.h: Use long long int also for
+ test in __pow2 implementation.
+
+1998-04-16 07:42 Geoff Keating <geoffk@ozemail.com.au>
+
+ * Makeconfig [!build-static]: Link `static' binaries with libc_pic.a.
+ Still need *FLAGS-.o because we still sometimes build .o files.
+ * db2/Makefile: Don't build libndbm.a if !build-static.
+
+1998-05-07 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * malloc/malloc.c (top_check): Add void as parameter to silent gcc.
+
+1998-04-16 07:42 Geoff Keating <geoffk@ozemail.com.au>
+
+ * configure.in: New test for broken gcc on PowerPC.
+ * sysdeps/powerpc/atomicity.h: Use result of test.
+ * linuxthreads/sysdeps/powerpc/pt-machine.h: Use result of test.
+
+ * math/libm-test.c: Update many of the epsilon to match actual
+ performance.
+
+ * sysdeps/libm-ieee754/e_exp.c: Reduce the number of branches.
+ * sysdeps/libm-ieee754/e_expf.c: Likewise.
+ * sysdeps/libm-ieee754/s_exp2.c: Likewise.
+ * sysdeps/libm-ieee754/s_exp2f.c: Likewise.
+
+ * sysdeps/libm-ieee754/e_pow.c: Correct typo.
+
+ * sysdeps/powerpc/elf/libc-start.c: New file.
+ * sysdeps/powerpc/elf/start.S: New file, use libc-start.
+ * sysdeps/powerpc/elf/start.c: Delete.
+
+ * sysdeps/unix/sysv/linux/powerpc/Dist: Remove syscall.h
+ * sysdeps/unix/sysv/linux/powerpc/syscall.h: Delete. It was unused.
+
+ * sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c: Correct previous
+ few patches.
+
+1998-05-06 12:51 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/i386/fpu/bits/mathinline.h (pow): Use long long int for
+ test for integer.
+
+ * sysdeps/libm-i387/e_pow.S: Correctly shift double word.
+ * sysdeps/libm-i387/e_powl.S: Likewise.
+
+1998-03-31 Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>
+
+ * malloc/malloc.c (chunk2mem_check, top_check): New functions.
+ (malloc_check, free_check, realloc_check, memalign_check): Use
+ them to improve overrun checking. Overruns of a single byte and
+ corruption of the top chunk are now detected much more reliably.
+
+1998-05-06 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * math/libm-test.c (pow_test): Add test for special value from PR
+ libc/590.
+
+1998-05-06 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/bits/errno.h: Undefine EILSEQ before
+ including linux/errno.h.
+
+1998-05-06 09:49 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/sysv4/solaris2/bits/stat.h: Add LFS support.
+ Use correct types.
+ * sysdeps/unix/sysv/sysv4/solaris2/bits/types.h: New file.
+ * sysdeps/unix/sysv/sysv4/solaris2/bits/errno.h: New file.
+
+1998-05-05 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * Makerules (elide-routines.*): Fix assignments.
+ (do-makelib): Fix typo.
+ ($(subdirs-stamps)): Depend on $(objpfx)stamp.* if in parent
+ makefile.
+
+1998-05-04 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * Makefile (sysdep-subdirs, subdirs, $(common-objpfx)sysd-dirs,
+ $(objpfx)sysd-dirs): Move them...
+ * Makeconfig: ... here.
+ * Makerules (subdirs-stamps, subdirs-stamp-o): Always define.
+ (stubs): Fix circular depedency.
+ (do-makelib): Clean up.
+ (lib): Don't depend on lib-noranlib.
+ ($(objpfx)stamp.oS): Remove special case for empty
+ static-only-routines.
+ (elide-routines.o): Add $(static-only-routines).
+ (elide-routines$o): Define this instead of elide-routines.$o.
+ * manual/Makefile (stubs): Fix circular dependency.
+
+1998-05-05 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * libio/Makefile (routines): Remove duplicate oldiofclose.
+
+1998-05-05 Ulrich Drepper <drepper@cygnus.com>
+
+ * string/strcoll.c: Use uint32_t instead of u_int32_t.
+
+1998-05-05 Ulrich Drepper <drepper@cygnus.com>
+
+ * libio/stdio.h: Fix typo in __REDIRECT.
+ * io/sys/stat.h: Likewise.
+ Reported by Myles Uyema <myles@uyema.nws.net>.
+
+1998-05-04 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * locale/programs/localedef.c (options): Fix help message.
+
+1998-05-04 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/i386/dl-procinfo.h: Avoid nasty
+ relocations. Patch by Joe Keane <jgk@jgk.org>.
+
+1998-05-04 12:40 Ulrich Drepper <drepper@cygnus.com>
+
+ * malloc/malloc.c (ptmalloc_init_all): New function. Similar to
+ ptmalloc_unlock_all, but re-initializes the mutexes instead.
+ (ptmalloc_init): Use new function in thread_at_fork call.
+ (thread_atfork_static): Likewise.
+ Suggested by Wolfram Gloger and Xavier Leroy.
+
+1998-05-04 Ulrich Drepper <drepper@cygnus.com>
+
+ * signal/signal.h: Move definitions of struct sigstack and
+ struct sigaltstack into separate file and include it.
+ * sysdeps/generic/bits/sigstack.h: New file.
+ * sysdeps/unix/sysv/linux/bits/sigstack.h: New file.
+ * signal/Makefile (headers): Add bits/sigstack.h.
+
+1998-05-03 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * elf/rtld.c (dl_main): Fix check for number of references to
+ interpreter object.
+
+1998-05-03 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * elf/rtld.c (dl_main): Check has_interp after executing platform
+ specific code.
+
+1998-05-01 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * iconvdata/run-iconv-test.sh: Fix typo.
+
+1998-05-01 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * Makerules (+depfiles): Add depfiles for $(tests-static).
+ Simplified.
+
+1998-05-01 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * manual/terminal.texi (Special Characters): Fix description of
+ c_cc indexes.
+
+1998-05-01 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/unix/sysv/linux/tcsetattr.c: Use memcpy to copy the c_cc
+ array.
+ * sysdeps/unix/sysv/linux/tcgetattr.c: Likewise. Initialize rest
+ of c_cc array.
+
+1998-04-30 14:15 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ * sysdeps/unix/sysv/linux/netrose/rose.h: Don't include kernel headers.
+
+1998-05-01 Ulrich Drepper <drepper@cygnus.com>
+
+ * intl/locale.alias: Update russian entry.
+
+1998-05-01 21:54 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ * Makerules (static-only-routines): Reimplement in terms of
+ elide-routines.os.
+ (shared-only-routines): Reimplement in terms of
+ elide-routines.X [where X is all object-suffixes except .os].
+
+ (stubs): Create stubs file inside the subdir.
+ (common-mostlyclean): Remove stubs file from inside the subdir.
+ * Makefile (subdir-stubs): Look for stubs files inside the
+ subdirs.
+ * manual/Makefile (stubs): Create dummy stubs file inside the
+ subdir.
+
+1998-05-01 21:01 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ Build speed improvement: make ar less of a bottleneck.
+
+ * Makerules (stamp$o): Just record the object list for later
+ use.
+ (libc_foo.a): New rule, depends on subdir stamp files; builds
+ and ranlibs the library from the lists saved in those files.
+
+ (subdirs-stamps): Define also if subdir == elf (FIXME: kludge).
+ (subdirs-stamp-o): Likewise.
+
+ (ar-symtab-name): Delete variable.
+ (lib%.a): Delete target.
+ (libc_foo.a(bar.%)): Delete target.
+ (libc_foo.a($(ar-symtab-name))): Delete target.
+
+ (objects objs): Just depend on libobjs and extra-objs.
+ (libobjs): Depend on the stamp files, not the objects.
+ (extra-objs): New target, just depends on the extra-objs list.
+
+ (CREATE_ARFLAGS): Kill the `ar S' hack.
+
+ * config.make.in (have-ar-S): Deleted.
+ * configure.in: Delete test for `ar S'. Add test to determine
+ whether ranlib does anything useful.
+
+1998-05-01 Ulrich Drepper <drepper@cygnus.com>
+
+ * inet/tst-ether_aton.c: Include <stdio.h>.
+
+1998-04-30 16:45 Ulrich Drepper <drepper@cygnus.com>
+
+ * inet/ether_aton.c: Including netinet/if_ether.h is not necessary.
+
+ * locale/Makefile (distribute): Add programs/repertoire.h.
+ (localedef-modules): Add repertoire.
+ (CPPFLAGS): Define REPERTOIREMAP_PATH.
+ * locale/programs/repertoire.c: New file.
+ * locale/programs/repertoire.h: New file.
+ * locale/programs/charmap.c: Starting fixing character set handling
+ to handle multi-byte encodings.
+ * locale/programs/charset.c: Likewise.
+ * locale/programs/charset.h: Likewise.
+ * locale/programs/ld-collate.c: Likewise.
+ * locale/programs/ld-ctype.c: Likewise.
+ * locale/programs/linereader.c: Likewise.
+ * locale/programs/localedef.c: Likewise.
+ * locale/programs/locfile-kw.gperf: Likewise.
+ * locale/programs/locfile-kw.h: Likewise.
+ * locale/programs/locfile-token.h: Likewise.
+ * locale/programs/locfile.h: Likewise.
+ * locale/programs/stringtrans.c: Likewise.
+
+ * locale/programs/locfile.c: Interpret I18NPATH value as base of
+ path, extended with "/locales/".
+
+1998-04-18 Philip Blundell <Philip.Blundell@pobox.com>
+
+ * sysdeps/arm/memset.S: Fix off by one error.
+
+ * sysdeps/unix/sysv/linux/arm/sysdep.h (PSEUDO): On error, call
+ __syscall_error rather than syscall_error directly.
+
+1998-04-17 Philip Blundell <Philip.Blundell@pobox.com>
+
+ * sysdeps/unix/sysv/linux/arm/mmap.S: New file; implementation of
+ mmap() syscall for ARM.
+
+ * sysdeps/unix/arm/start.c: New file; startup code for ARM a.out
+ binaries.
+
+1998-04-30 Ulrich Drepper <drepper@cygnus.com>
+
+ * locale/programs/localedef.c: Recognize repertoire-map option.
+
+1998-04-29 Ulrich Drepper <drepper@cygnus.com>
+
+ * locale/programs/linereader.c (get_toplvl_escape): Fix typo in
+ converting non-hex numbers.
+ Patch by Won Kyu Park <bird@bird.kitel.co.kr>.
+
+1998-04-23 07:31 H.J. Lu <hjl@gnu.org>
+
+ * resolv/inet_addr.c (inet_aton): Use __strtoul_internal to
+ check overflow.
+ * resolv/Makefile (tests): New, add tst-aton.
+ * resolv/tst-aton.c: New file.
+
+1998-04-29 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/sparc/sparc32/dl-machine.h (WEAKADDR): Add missing
+ semicolon.
+
+1998-04-29 12:11 Ulrich Drepper <drepper@cygnus.com>
+
+ * wcsmbs/mbsnrtowcs.c: Remove variable to pass to conversion function
+ by letting the later modify the variable computing the total directly.
+ * wcsmbs/mbsrtowcs.c: Likewise.
+ * wcsmbs/wcsnrtombs.c: Likewise.
+ * wcsmbs/wcsrtombs.c: Likewise.
+
+ * wcsmbs/btowc.c (converted): Rename variable to dummy to make clear
+ it is not used.
+ * wcsmbs/wctoc.c: Likewise.
+
+ * wcsmbs/mbsrtowcs.c: Optimize a bit more.
+ * wcsmbs/wcsrtombs.c: Likewise.
+
+ * sysdeps/unix/sysv/linux/alpha/bits/signum.h: Add SIGCLD definition.
+
+1998-04-29 Ulrich Drepper <drepper@cygnus.com>
+
+ * iconv/skeleton.c: Correct counting of actually converted
+ characters.
+
+ * intl/localealias.c (read_alias_file): Use unsigned char for
+ local variables. Remove unused variable tp.
+ * intl/l10nflist.c (_nl_normalize_codeset): Use unsigned char *
+ for type of codeset. For loosing Solaris systems.
+ * intl/loadinfo.h: Adapt prototype of _nl_normalize_codeset.
+ * intl/bindtextdom.c (BINDTEXTDOMAIN): Don't define local variable
+ len if not needed.
+ Patches by Jim Meyering.
+
+ * stdio-common/vfprintf.c [%S]: Don't clear mbstate twice;
+ wcsrtombs must put it into initial state.
+
+1998-04-29 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * iconv/gconv_simple.c: Fix endian bug. Don't put side effects in
+ argument of bswap_XX macro.
+
+1998-04-28 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * iconvdata/Makefile (EBCDIC-DK-NO-A-routines): Fix typo in
+ variable name.
+
+1998-04-28 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/semctl.c (semctl): Define own union
+ semun and use stdarg macros to get the value.
+ * sysdeps/generic/semctl.c: Don't use union semun.
+
+ * sysvipc/sys/sem.h: Don't use union semun in semctl prototype.
+
+ * string/basename.c [!_LIBC]: Define function as gnu_basename.
+
+ * posix/getopt.c [!__GNU_LIBRARY__]: Include string.h or
+ strings.h.
+
+ * stdlib/grouping.h: Accept ungrouped numbers even if locale
+ defines grouping.
+
+ * intl/hash-string.h: Don't include values.h.
+
+ * inet/Makefile (tests): Add tst-ether_aton.
+ * inet/tst-ether_aton.c: New file.
+
+ * inet/ether_aton_r.c (ether_aton_r): Preserve high-nibble value
+ in hex conversion.
+ * inet/ether_aton.c (ether_aton): Declare result variable static.
+ Reported by ahyung@unixg.ubc.ca.
+
+ * sysdeps/unix/sysv/linux/bits/sem.h: Don't define union semun.
+ Define macro _SEM_SEMUN_UNDEFINED instead.
+ Reported by Dirk Laessig <d.laessig@tu-bs.de>.
+
+ * stdio-common/tst-wc-printf.c: New file. Test for %S and %C format.
+ * stdio-common/Makefile (tests): Add tst-wc-printf.
+
+1998-04-28 16:32 Philip Blundell <philb@gnu.org>
+
+ * manual/stdio.texi (Variable Arguments Output): Correct variable
+ name. Patch from Ewan Mellor <em@nexus.co.uk>
+
+1998-04-27 Ulrich Drepper <drepper@cygnus.com>
+
+ * intl/dcgettext.c: Remove unneeded definition of
+ internal_function.
+
+1998-04-27 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * iconvdata/Makefile ($(objpfx)iconv-test.out): Use this as target
+ instead of do-iconv-test.
+ ($(objpfx)gconv-modules): Define rule only if objpfx is not
+ empty.
+
+1998-04-27 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * string/string.h: Fix feature test.
+
+1998-04-27 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * iconvdata/iso646.c (BODY): Don't use character constants that
+ depend on signedness of char.
+
+1998-04-27 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/i386/Makefile [$(subdirs)=misc]
+ (sysdep_routines): Add s_pread64 and s_pwrite64.
+
+1998-04-27 09:54 Ulrich Drepper <drepper@cygnus.com>
+
+ * iconvdata/Makefile (distribute): Remove generated .h files.
+ * iconvdata/koi8-r.h: Removed.
+ * iconvdata/latin-greek-1.h: Removed.
+ * iconvdata/latin-greek.h: Removed.
+
+ * iconvdata/testdata/CP1258..UTF8: New iconv test source.
+ * iconvdata/KOI-8: Likewise.
+ * iconvdata/KOI-8..UTF8: Likewise.
+ * iconvdata/KOI8-R: Likewise.
+ * iconvdata/KOI8-R..UTF8: Likewise.
+
+1998-04-24 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * streams/Makefile (headers): Add sys/stropts.h.
+ * streams/sys/stropts.h: New file.
+
+1998-04-25 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/unix/sysv/linux/ttyname.c,
+ sysdeps/unix/sysv/linux/ttyname_r.c: New files, like
+ sysdeps/posix/ttyname*.c, but look in /dev/pts first.
+
+1998-04-25 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/unix/sysv/linux/ptsname.c: Fix off-by-one bug in second
+ argument of _itoa_word.
+
+1998-04-24 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/unix/sysv/linux/syscalls.list (s_getcwd, s_getdents,
+ s_pread64, s_pwrite64, s_reboot, s_sigpending, s_sigprocmask): Set
+ caller to getcwd, getdents, pread64, pwrite64, reboot, sigpending,
+ sigprocmask, resp., instead of EXTRA.
+
+ * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove
+ s_pread64 and s_pwrite64.
+
+1998-04-26 18:44 Ulrich Drepper <drepper@cygnus.com>
+
+ * iconvdata/Makefile: Correct rules to generate gap table.
+ * iconvdata/gap.pl: Simplify.
+
+ * iconvdata/TESTS: Name new tests.
+ * iconvdata/testdata/CP1250: New file.
+ * iconvdata/testdata/CP1250..UTF8: New file.
+ * iconvdata/testdata/CP1251: New file.
+ * iconvdata/testdata/CP1251..UTF8: New file.
+ * iconvdata/testdata/CP1252: New file.
+ * iconvdata/testdata/CP1252..UTF8: New file.
+ * iconvdata/testdata/CP1253: New file.
+ * iconvdata/testdata/CP1253..UTF8: New file.
+ * iconvdata/testdata/CP1254: New file.
+ * iconvdata/testdata/CP1254..UTF8: New file.
+ * iconvdata/testdata/CP1255: New file.
+ * iconvdata/testdata/CP1255..UTF8: New file.
+ * iconvdata/testdata/CP1256: New file.
+ * iconvdata/testdata/CP1256..UTF8: New file.
+ * iconvdata/testdata/CP1257: New file.
+ * iconvdata/testdata/CP1257..UTF8: New file.
+
+1998-04-26 Ulrich Drepper <drepper@cygnus.com>
+
+ * iconvdata/Makefile: Add rules for ISO-2022-KR.
+ * iconvdata/iso-2022-kr.c: New file.
+
+ * iconvdata/gconv-modules: Add entry for ISO-2022-JP, ISO-2022-JP-2,
+ and ISO-2022-KR.
+
+1998-04-25 18:39 Ulrich Drepper <drepper@cygnus.com>
+
+ * iconvdata/Makefile: Use gap method for iso8859-5, iso8859-7,
+ iso8859-8 and iso8859-10.
+ * iconvdata/iso8859-5.c: Change to use gap method.
+ * iconvdata/iso8859-7.c: Likewise.
+ * iconvdata/iso8859-8.c: Likewise.
+ * iconvdata/iso8859-10.c: Likewise.
+
+ * iconvdata/Makefile: Add rules for ISO-2022-JP module.
+ * iconv/skeleton.c: Allow END_LOOP do be defined and use it at the
+ end of the loop.
+ * iconvdata/iso-2022-jp.c: New file.
+
+ * iconvdata/ksc5601.c: Don't use uint16_t to represent byte sequence.
+ * iconvdata/ksc5601.h: Unify function interfaces.
+ * iconvdata/euckr.c: Adapt for changed ksc5601.h interface.
+ * iconvdata/uhc.c: Likewise.
+
+ * iconvdata/gb2312.h: Use correct types.
+
+ * iconvdata/iso646.c (gconv_open): Correctly initialize the character
+ size elements of data.
+
+1998-04-24 Ulrich Drepper <drepper@cygnus.com>
+
+ * string/tst-svc.expect: Adapt for change in .input.
+ * string/tst-svc.input: More tests.
+
+1998-04-24 17:15 Ulrich Drepper <drepper@cygnus.com>
+
+ * iconvdata/Makefile: Add rules for new modules.
+ * iconvdata/gconv-modules: Likewise.
+ * iconvdata/cp737.c: New file.
+ * iconvdata/cp737.h: New file.
+ * iconvdata/cp775.c: New file.
+ * iconvdata/cp775.h: New file.
+ * iconvdata/cp874.c: New file.
+ * iconvdata/cp874.h: New file.
+
+1998-04-24 16:30 Ulrich Drepper <drepper@cygnus.com>
+
+ * iconvdata/Makefile: Create target directory before generating
+ headers.
+
+1998-04-23 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * misc/sys/cdefs.h (__REDIRECT): Handle systems with non-empty
+ __USER_LABEL_PREFIX__.
+ (__ASMNAME, __ASMNAME2): New macros.
+
+1998-04-24 Ulrich Drepper <drepper@cygnus.com>
+
+ * elf/dl-load.c: Include sys/param.h for MAX.
+
+1998-04-24 21:44 Richard Henderson <rth@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/alpha/syscalls.list (ftruncate): Make
+ __ftruncate the strong symbol, and add weak alias.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
+
+1998-04-24 Ulrich Drepper <drepper@cygnus.com>
+
+ * termios/cfsetspeed.c: Make code cleaner and add missing const.
+ Patch by Joe Keane <jgk@jgk.org>.
+
+ * inet/rcmd.c (__ivaliduser): Check buf for being NULL before
+ free()ing.
+
+1998-04-24 13:56 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/generic/bits/socket.h: Add #defines for enum values.
+ Patch by Thomas Bushnell, n/BSG.
+
+1998-04-24 Ulrich Drepper <drepper@cygnus.com>
+
+ * inet/rcmd.c (iruserok): Initialize hostf variable to NULL.
+
+1998-04-24 Ulrich Drepper <drepper@cygnus.com>
+
+ * iconvdata/Makefile: Put generated headers in build directory.
+
+1998-04-23 22:43 Ulrich Drepper <drepper@cygnus.com>
+
+ * elf/dl-load.c (fillin_rpath): Handle empty element returned by
+ strsep as current directory.
+
+ * iconv/gconv_builtin.h: Add aliases unicode and unicodebig for
+ Java. Add definitions for unicodelittle implementation.
+ * iconv/gconv_int.h: Add declaration for unicodelittle functions.
+ * iconv/gconv_simple.c: Define unicodelittle functions.
+
+ * iconv/iconv_prog.c: Make program print information about position
+ of illegal character in input.
+
+ * iconv/skeleton.c: Use __strcasecmp instead of __strcasestr for
+ comparison of charset name.
+ * iconvdata/big5.c (CHARSET_NAME): Adapt for this.
+ * iconvdata/ebcdic-at-de-a.c: Likewise.
+ * iconvdata/ebcdic-at-de.c: Likewise.
+ * iconvdata/ebcdic-ca-fr.c: Likewise.
+ * iconvdata/euccn.c: Likewise.
+ * iconvdata/eucjp.c: Likewise.
+ * iconvdata/euckr.c: Likewise.
+ * iconvdata/euctw.c: Likewise.
+ * iconvdata/hp-roman8.c: Likewise.
+ * iconvdata/iso6937.c: Likewise.
+ * iconvdata/iso8859-1.c: Likewise.
+ * iconvdata/iso8859-10.c: Likewise.
+ * iconvdata/iso8859-2.c: Likewise.
+ * iconvdata/iso8859-3.c: Likewise.
+ * iconvdata/iso8859-4.c: Likewise.
+ * iconvdata/iso8859-5.c: Likewise.
+ * iconvdata/iso8859-6.c: Likewise.
+ * iconvdata/iso8859-7.c: Likewise.
+ * iconvdata/iso8859-8.c: Likewise.
+ * iconvdata/iso8859-9.c: Likewise.
+ * iconvdata/johab.c: Likewise.
+ * iconvdata/koi-8.c: Likewise.
+ * iconvdata/koi8-r.c: Likewise.
+ * iconvdata/latin-greek-1.c: Likewise.
+ * iconvdata/latin-greek.c: Likewise.
+ * iconvdata/sjis.c: Likewise.
+ * iconvdata/t61.c: Likewise.
+ * iconvdata/uhc.c: Likewise.
+
+ * iconvdata/iso646.c: Add support for more ISO 646 variants.
+ * iconvdata/TESTS: Add tests for ISO646 module.
+ * iconvdata/gconv-modules: Add new modules.
+ * iconvdata/testdate/CSA_Z243.4-1985-1: New tests for ISO646 module.
+ * iconvdata/testdate/CSA_Z243.4-1985-1..UCS2: Likewise.
+ * iconvdata/testdate/CSA_Z243.4-1985-2: Likewise.
+ * iconvdata/testdate/CSA_Z243.4-1985-2..UCS4: Likewise.
+ * iconvdata/testdate/DIN_66003: Likewise.
+ * iconvdata/testdate/DIN_66003..UTF8: Likewise.
+ * iconvdata/testdate/DS_2089: Likewise.
+ * iconvdata/testdate/DS_2089..UTF8: Likewise.
+ * iconvdata/testdate/ES: Likewise.
+ * iconvdata/testdate/ES..UTF8: Likewise.
+ * iconvdata/testdate/ES2: Likewise.
+ * iconvdata/testdate/ES2..UTF8: Likewise.
+ * iconvdata/testdate/GB_1988-80: Likewise.
+ * iconvdata/testdate/GB_1988-80..UTF8: Likewise.
+ * iconvdata/testdate/IT: Likewise.
+ * iconvdata/testdate/IT..UTF8: Likewise.
+ * iconvdata/testdate/JIS_C6220-1969-RO: Likewise.
+ * iconvdata/testdate/JIS_C6220-1969-RO..UTF8: Likewise.
+ * iconvdata/testdate/JIS_C6229-1984-B: Likewise.
+ * iconvdata/testdate/JIS_C6229-1984-B..UTF8: Likewise.
+ * iconvdata/testdate/JUS_I.B1.002: Likewise.
+ * iconvdata/testdate/JUS_I.B1.002..UTF8: Likewise.
+ * iconvdata/testdate/KSC5636: Likewise.
+ * iconvdata/testdate/KSC5636..UTF8: Likewise.
+ * iconvdata/testdate/MSZ_7795.3: Likewise.
+ * iconvdata/testdate/MSZ_7795.3..UTF8: Likewise.
+ * iconvdata/testdate/NC_NC00-10: Likewise.
+ * iconvdata/testdate/NC_NC00-10..UTF8: Likewise.
+ * iconvdata/testdate/NF_Z_62-010: Likewise.
+ * iconvdata/testdate/NF_Z_62-010..UTF8: Likewise.
+ * iconvdata/testdate/NF_Z_62-010_1973: Likewise.
+ * iconvdata/testdate/NF_Z_62-010_1973..UTF8: Likewise.
+ * iconvdata/testdate/NS_4551-1: Likewise.
+ * iconvdata/testdate/NS_4551-1..UTF8: Likewise.
+ * iconvdata/testdate/NS_4551-2: Likewise.
+ * iconvdata/testdate/NS_4551-2..UTF8: Likewise.
+ * iconvdata/testdate/PT: Likewise.
+ * iconvdata/testdate/PT..UTF8: Likewise.
+ * iconvdata/testdate/PT2: Likewise.
+ * iconvdata/testdate/PT2..UTF8: Likewise.
+ * iconvdata/testdate/SEN_850200_B: Likewise.
+ * iconvdata/testdate/SEN_850200_B..UTF8: Likewise.
+ * iconvdata/testdate/SEN_850200_C: Likewise.
+ * iconvdata/testdate/SEN_850200_C..UTF8: Likewise.
+
+ * iconvdata/cns11643.h: Use uint32_t instead of wchar_t.
+ * iconvdata/cns11643l1.h: Likewise.
+ * iconvdata/latin-greek-1.h: Likewise.
+ * iconvdata/latin-greek.h: Likewise.
+ * iconvdata/koi8-r.h: Likewise.
+ * iconvdata/jis0212.h: Likewise.
+ * iconvdata/gb2312.h: Likewise.
+ * iconvdata/ksc5601.h: Likewise.
+
+ * iconvdata/8bit-gap.c: Use 32 bit type for idx element of struct gap.
+
+ * iconvdata/Makefile: Add rules for lots of more modules.
+ * iconvdata/cp1250.c: New file.
+ * iconvdata/cp1251.c: New file.
+ * iconvdata/cp1252.c: New file.
+ * iconvdata/cp1253.c: New file.
+ * iconvdata/cp1254.c: New file.
+ * iconvdata/cp1255.c: New file.
+ * iconvdata/cp1256.c: New file.
+ * iconvdata/cp1257.c: New file.
+ * iconvdata/ebcdic-dk-no-a.c: New file.
+ * iconvdata/ebcdic-dk-no.c: New file.
+ * iconvdata/ebcdic-es-a.c: New file.
+ * iconvdata/ebcdic-es-s.c: New file.
+ * iconvdata/ebcdic-es.c: New file.
+ * iconvdata/ebcdic-fi-se-a.c: New file.
+ * iconvdata/ebcdic-fi-se.c: New file.
+ * iconvdata/ebcdic-fr.c: New file.
+ * iconvdata/ebcdic-is-friss.c: New file.
+ * iconvdata/ebcdic-it.c: New file.
+ * iconvdata/ebcdic-pt.c: New file.
+ * iconvdata/ebcdic-uk.c: New file.
+ * iconvdata/ebcdic-us.c: New file.
+ * iconvdata/ibm037.c: New file.
+ * iconvdata/ibm038.c: New file.
+ * iconvdata/ibm1004.c: New file.
+ * iconvdata/ibm1026.c: New file.
+ * iconvdata/ibm1047.c: New file.
+ * iconvdata/ibm256.c: New file.
+ * iconvdata/ibm273.c: New file.
+ * iconvdata/ibm274.c: New file.
+ * iconvdata/ibm275.c: New file.
+ * iconvdata/ibm277.c: New file.
+ * iconvdata/ibm278.c: New file.
+ * iconvdata/ibm280.c: New file.
+ * iconvdata/ibm281.c: New file.
+ * iconvdata/ibm284.c: New file.
+ * iconvdata/ibm285.c: New file.
+ * iconvdata/ibm290.c: New file.
+ * iconvdata/ibm297.c: New file.
+ * iconvdata/ibm420.c: New file.
+ * iconvdata/ibm423.c: New file.
+ * iconvdata/ibm424.c: New file.
+ * iconvdata/ibm437.c: New file.
+ * iconvdata/ibm500.c: New file.
+ * iconvdata/ibm850.c: New file.
+ * iconvdata/ibm851.c: New file.
+ * iconvdata/ibm852.c: New file.
+ * iconvdata/ibm855.c: New file.
+ * iconvdata/ibm857.c: New file.
+ * iconvdata/ibm860.c: New file.
+ * iconvdata/ibm861.c: New file.
+ * iconvdata/ibm862.c: New file.
+ * iconvdata/ibm863.c: New file.
+ * iconvdata/ibm864.c: New file.
+ * iconvdata/ibm865.c: New file.
+ * iconvdata/ibm868.c: New file.
+ * iconvdata/ibm869.c: New file.
+ * iconvdata/ibm870.c: New file.
+ * iconvdata/ibm871.c: New file.
+ * iconvdata/ibm875.c: New file.
+ * iconvdata/ibm880.c: New file.
+ * iconvdata/ibm891.c: New file.
+ * iconvdata/ibm903.c: New file.
+ * iconvdata/ibm904.c: New file.
+ * iconvdata/ibm905.c: New file.
+ * iconvdata/ibm918.c: New file.
+
+ * locale/iso-4217.def: Update.
+ * localedata/locales/pt_BR: Correct. Patches by Andreas Jaeger.
+
+ * stdio-common/vfscanf.h: Recognize nan and inf in floating-point
+ formats.
+
+1998-04-22 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * elf/dl-load.c (_dl_init_paths): ';' is also a terminal for
+ LD_LIBRARY_PATH.
+
+1998-04-22 Gordon Matzigkeit <gord@profitpress.com>
+
+ * Makerules: Change occurances of `cd dir; cmd' to `cd dir && cmd'.
+ * Makefile: Likewise.
+ * posix/Makefile: Likewise.
+ * sysdeps/mach/hurd/Makefile: Likewise.
+
+1998-04-22 Gordon Matzigkeit <gord@profitpress.com>
+
+ * sysdeps/mach/hurd/bits/dirent.h: New file.
+ * sysdeps/mach/hurd/readdir64.c: New file.
+ * sysdeps/mach/hurd/readdir64_r.c: New file.
+
+1998-04-21 Gordon Matzigkeit <gord@profitpress.com>
+
+ * stdio/stdio.h (vasprintf, __asprintf, asprintf, vdprintf,
+ dprintf): Synchronize declarations with libio/stdio.h.
+
+1998-04-21 Gordon Matzigkeit <gord@profitpress.com>
+
+ * elf/dlerror.c (dlerror): Don't assume that
+ __libc_internal_tsd_get is defined. __libc_getspecific is already
+ well-protected, so just use it directly.
+
+1998-04-22 Gordon Matzigkeit <gord@profitpress.com>
+
+ * io/ftw.h (ftw): Fix typo.
+
+1998-04-21 Gordon Matzigkeit <gord@profitpress.com>
+
+ * sysdeps/gnu/utmp_file.c: Fix typo.
+
+1998-04-22 11:06 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * iconvdata/run-iconv-test.sh: Fix more portability bugs. When
+ one part of a test fails move on to the next test.
+
+1998-04-24 5:45 Richard Henderson <rth@cygnus.com>
+
+ * sysdeps/alpha/bits/setjmp.h (_JMPBUF_UNWINDS): Added.
+
+1998-04-21 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/i386/bits/setjmp.h (_JMPBUF_UNWINDS): Compare addresses
+ as pointers, not signed integers.
+
+1998-04-22 11:06 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/m68k/bits/setjmp.h (_JMPBUF_UNWINDS): Added.
+
+1998-04-21 21:49 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ * misc/sys/cdefs.h: New macro __REDIRECT to support changing the
+ asm symbol name of functions.
+ * include/features.h: Kill redundant test.
+
+ * dirent/dirent.h: Use new macros to implement __USE_FILE_OFFSET64.
+ * io/ftw.h: Likewise.
+ * io/sys/stat.h: Likewise.
+ * io/sys/statfs.h: Likewise.
+ * io/sys/statvfs.h: Likewise.
+ * libio/stdio.h: Likewise.
+ * resource/sys/resource.h: Likewise.
+ * rt/aio.h: Likewise.
+
+ * posix/unistd.h: Use new macros for __USE_FILE_OFFSET64 and
+ __FAVOR_BSD.
+ * signal/signal.h: Use new macros for BSD vs. SysV signal().
+
+ * misc/Makefile: Drop bsd-compat.c. Make libbsd-compat.a
+ a dummy library.
+ * misc/bsd-compat.c: Removed.
+
+1998-04-21 20:32 Ulrich Drepper <drepper@cygnus.com>
+
+ * iconv/loop.c: Allow EXTRA_LOOP_DECLS be defined and use it in
+ function declaration.
+ * iconv/skeleton.c: Allow PREPARE_LOOP and EXTRA_LOOP_ARGS be defined
+ and use them in conversion function.
+ * iconvdata/Makefile (modules): Re-add ISO6446.
+ * iconvdata/TEST: Add tests for ASCII variants.
+ * iconvdata/iso646.c: Rewrite to use loop.c and skeleton.c.
+ * iconvdata/testdata/ANSI_X3.4-1968: New file.
+ * iconvdata/testdata/BS_4730: New file.
+ * iconvdata/testdata/BS_4730..UTF8: New file.
+
+1998-04-21 19:05 Ulrich Drepper <drepper@cygnus.com>
+
+ * iconv/gconv.h (struct gconv_step): Add element stateful.
+ * iconv/gconv_builtin.c (__gconv_builtin_trans): Initialize stateful
+ to zero for all internal conversions.
+ * iconv/skeleton.c: Initialize stateful depending on whether or not
+ RESET_STATE is defined to one or zero respectively.
+ * stdlib/mblen.c: Use stateful element of currently selected
+ converter for result if S is NULL.
+ * stdlib/mbtowc.c: Likewise.
+ * stdlib/wctomb.c: Likewise.
+
+1998-04-21 18:00 Ulrich Drepper <drepper@cygnus.com>
+
+ * iconv/gconv.c (__gconv): Remove bogus input buffer size computation.
+
+ * iconv/gconv_open.c (__gconv_open): Initialize outbufend element.
+
+ * iconv/gconv_simple.c (__gconv_transform_internal_ascii): Don't use
+ character in comparison with uint32_t.
+ (__gconv_transform_internal_utf8): Specify MAX_NEEDED_TO.
+ (__gconv_transform_utf8_internal): Specify MAX_NEEDED_FROM.
+ Optimize BODY a bit.
+
+ * iconv/loop.c: Require MIN_NEEDED_INPUT and MIN_NEEDED_OUTPUT to
+ be defined.
+
+ * iconv/skeleton.c: Also reset converted counter in case of an error.
+ Call reset function using correct value for output buffer start.
+
+ * iconvdata/Makefile: Re-enable tests.
+
+ * iconvdata/iso8859-1.c: Swap MIN_NEEDED_INPUT and MIN_NEEDED_OUTPUT
+ value for to-conversion.
+
+ * iconvdata/TESTS: Add new third column.
+ * iconvdata/run-iconv-test.sh: Add support for charsets which are
+ not ASCII based.
+ * iconvdata/testdata/suntzus: New file.
+
+ * elf/dl-minimal.c (__strtol_internal): Increment pointer to string
+ while reading. Correctly used base. Little optimization.
+ (__strtoul_internal): Likewise.
+
+ * elf/rtld.c (dl_main): Test to avoid duplicate call of _dl_init_paths
+ was wrong. Use explicit variable.
+
+1998-04-20 23:49 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ * configure.in: Check for awk.
+ * config.make.in: Add AWK to be substituted.
+
+ * manual/xtract-typefun.awk: Rewrite to eliminate gawk extensions.
+ * manual/users.texi: Fix typo exposed by above rewrite.
+
+ * Makefile: Invoke awk using AWK variable.
+ * csu/Makefile: Likewise.
+ * elf/Makefile: Likewise.
+ * mach/Makefile: Likewise.
+ * manual/Makefile: Likewise.
+ * sysdeps/gnu/Makefile: Likewise.
+ * sysdeps/mach/hurd/Makefile: Likewise.
+ * sysdeps/unix/Makefile: Likewise.
+ * timezone/Makefile: Likewise.
+
+1998-04-10 Gordon Matzigkeit <gord@profitpress.com>
+
+ * sysdeps/gnu/errlist.awk (ERR_REMAP): Implement error code to
+ array index translation.
+ (SYS_ERRLIST_ALIAS, SYS_NERR_ALIAS): Make weak aliases only if
+ these are defined.
+
+ * sysdeps/mach/hurd/Dist: Add errlist.c to distribution.
+
+ * sysdeps/mach/hurd/errlist.c: New file.
+ (ERR_TRANSLATE): Map Hurd error codes into errlist indices.
+ (_hurd_errlist): The Hurd error list doesn't have Unix sys_errlist
+ semantics, so rename it.
+
+1998-04-16 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * iconvdata/run-iconv-test.sh: Make portable. Always test all
+ conversions.
+
+1998-04-21 12:30 H.J. Lu <hjl@gnu.org>
+
+ * wcsmbs/wcsrtombs.c (__wcsrtombs): Initialize result to 0.
+ * wcsmbs/wcsnrtombs.c: Likewise.
+
+1998-04-21 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/generic/dl-sysdep.c: Handle _dl_hwcap correctly.
+
+ * wcsmbs/btowc.c (__btowc): Declare inptr as const char *.
+
+ * time/strftime.c (my_strftime): Initialize pad variable in
+ declaration.
+
+ * iconvdata/big5.c: Don't use character constants in comparisons
+ with unsigned value.
+
+1998-04-20 18:00 Ulrich Drepper <drepper@cygnus.com>
+
+ * libc.map: Add __dgettext to GLIBC_2.0 and __libc_longjmp, and
+ __libc_siglongjmp to GLIBC_2.1.
+
+ * elf/dl-minimal.c (__assert_perror_fail): Don't use strerror, use
+ __strerror_r.
+
+ * iconv/Makefile: Don't run tests now.
+
+ * iconv/iconv_prog.c (process_block): If loop is repeated, call iconv
+ with correct output buffer.
+
+ Major rewrite of the low-level gconv functionality.
+ * iconv/gconv.c: Rewritten.
+ * iconv/gconv.h: Likewise.
+ * iconv/gconv_builtin.c: Likewise.
+ * iconv/gconv_builtin.h: Likewise.
+ * iconv/gconv_conf.c: Likewise.
+ * iconv/gconv_int.h: Likewise.
+ * iconv/gconv_open.c: Likewise.
+ * iconv/gconv_simple.c: Likewise.
+ * iconv/iconv.c: Likewise.
+ * iconvdata/8bit-gap.c: Likewise.
+ * iconvdata/8bit-generic.c: Likewise.
+ * iconvdata/Makefile: Likewise.
+ * iconvdata/big5.c: Likewise.
+ * iconvdata/cns11643.c: Likewise.
+ * iconvdata/cns11643.h: Likewise.
+ * iconvdata/cns11643l1.c: Likewise.
+ * iconvdata/cns11643l1.h: Likewise.
+ * iconvdata/ebcdic-at-de-a.c: Likewise.
+ * iconvdata/ebcdic-at-de.c: Likewise.
+ * iconvdata/ebcdic-ca-fr.c: Likewise.
+ * iconvdata/euccn.c: Likewise.
+ * iconvdata/eucjp.c: Likewise.
+ * iconvdata/euckr.c: Likewise.
+ * iconvdata/euctw.c: Likewise.
+ * iconvdata/gb2312.c: Likewise.
+ * iconvdata/gb2312.h: Likewise.
+ * iconvdata/hp-roman8.c: Likewise.
+ * iconvdata/iso646.c: Likewise.
+ * iconvdata/iso6937.c: Likewise.
+ * iconvdata/iso8859-1.c: Likewise.
+ * iconvdata/iso8859-10.c: Likewise.
+ * iconvdata/iso8859-2.c: Likewise.
+ * iconvdata/iso8859-3.c: Likewise.
+ * iconvdata/iso8859-4.c: Likewise.
+ * iconvdata/iso8859-5.c: Likewise.
+ * iconvdata/iso8859-6.c: Likewise.
+ * iconvdata/iso8859-7.c: Likewise.
+ * iconvdata/iso8859-8.c: Likewise.
+ * iconvdata/iso8859-9.c: Likewise.
+ * iconvdata/jis0201.c: Likewise.
+ * iconvdata/jis0201.h: Likewise.
+ * iconvdata/jis0208.c: Likewise.
+ * iconvdata/jis0208.h: Likewise.
+ * iconvdata/jis0212.c: Likewise.
+ * iconvdata/jis0212.h: Likewise.
+ * iconvdata/johab.c: Likewise.
+ * iconvdata/koi-8.c: Likewise.
+ * iconvdata/koi8-r.c: Likewise.
+ * iconvdata/ksc5601.c: Likewise.
+ * iconvdata/ksc5601.h: Likewise.
+ * iconvdata/latin-greek-1.c: Likewise.
+ * iconvdata/latin-greek.c: Likewise.
+ * iconvdata/run-iconv-test.sh: Likewise.
+ * iconvdata/sjis.c: Likewise.
+ * iconvdata/t61.c: Likewise.
+ * iconvdata/uhc.c: Likewise.
+ * wcsmbs/btowc.c: Likewise.
+ * wcsmbs/mbrtowc.c: Likewise.
+ * wcsmbs/mbsnrtowcs.c: Likewise.
+ * wcsmbs/mbsrtowcs.c: Likewise.
+ * wcsmbs/wcrtomb.c: Likewise.
+ * wcsmbs/wcsmbsload.c: Likewise.
+ * wcsmbs/wcsnrtombs.c: Likewise.
+ * wcsmbs/wcsrtombs.c: Likewise.
+ * wcsmbs/wctob.c: Likewise.
+ * iconv/loop.c: New file.
+ * iconv/skeleton.c: New file.
+
+ * stdlib/mblen.c: Handle empty input string correctly.
+ * stdlib/mbtowc.c: Likewise.
+
+ * posix/getopt.c: Various cleanups.
+
+ * sysdeps/arm/bits/setjmp.h: Add copyright text.
+ * sysdeps/i386/bits/setjmp.h: Likewise.
+ * sysdeps/m68k/bits/setjmp.h: Likewise.
+ * sysdeps/powerpc/bits/setjmp.h: Likewise.
+ * sysdeps/sparc/sparc32/bits/setjmp.h: Likewise.
+
+ * sysdeps/generic/longjmp.c: Rename function to __libc_siglongjmp
+ and make longjmp weak alias.
+
+1998-04-18 20:29 Philip Blundell <Philip.Blundell@pobox.com>
+
+ * iconv/Makefile (routines): Only include gconv_dl if building for
+ an ELF system - dynamic linking is not available on a.out.
+ (CFLAGS-gconv_conf.c): Define STATIC_GCONV if omitting gconv_dl
+ due to above check.
+ * iconv/gconv_db.c: If STATIC_GCONV defined, don't try to call
+ routines from gconv_dl.
+
+1998-04-17 Gordon Matzigkeit <gord@profitpress.com>
+
+ * csu/init.c (_IO_stdin_used): Protect with USE_IN_LIBIO so that
+ we can compile without libio.
+
+1998-04-20 16:28 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/mach/hurd/Subdirs: Remove login.
+
+1998-04-11 Gordon Matzigkeit <gord@profitpress.com>
+
+ * db2/compat.h: Include <errno.h>, to make sure we get the
+ definition of EFTYPE before we define it ourselves.
+
+1998-04-10 Gordon Matzigkeit <gord@profitpress.com>
+
+ * sysdeps/generic/bits/socket.h: Protect against multiple inclusion.
+ * sysdeps/mach/hurd/bits/ioctls.h: Likewise.
+ Fix typo to allow inclusion from sys/ioctl.h again.
+
+1998-04-16 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * iconvdata/*.[ch]: Clean up namespace. Optimize character lookup.
+
+1998-04-16 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * libc.map: Export __strerror_r. Remove _strerror_internal.
+
+1998-04-16 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/generic/strcasestr.c: Undefine strcasestr, not strstr.
+ Also undefine __strcasestr.
+
+1998-04-16 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * posix/regex.c: Rename __re_max_failures back to re_max_failures,
+ aliases do not work with global variables due to copy relocations.
+
+1998-04-20 15:12 Ulrich Drepper <drepper@cygnus.com>
+
+ * manual/creature.texi: Fix type. Patch by Andreas Schwab.
+
+1998-04-20 13:47 Ulrich Drepper <drepper@cygnus.com>
+
+ * signal/sighold.c: Include stddef.h for NULL definition.
+ * signal/sigrelse.c: Likewise.
+ * sysdeps/posix/sigignore.c: Likewise.
+ * sysdeps/posix/sigset.c: Likewise.
+ * sysdeps/posix/waitid.c: Likewise.
+ * sysdeps/unix/sysv/linux/rt_sigsuspend.c: Likewise.
+ * sysdeps/unix/sysv/linux/rt_sigtimedwait.c: Likewise.
+ * sysdeps/unix/sysv/linux/sigwaitinfo.c: Likewise.
+ * wcsmbs/mbsrtowcs.c: Include stdlib.h for MB_CUR_MAX.
+ Patch by Franz Sirl <Franz.Sirl-kernel@lauterbach.com>.
+
+1998-04-13 Mark Kettenis <kettenis@phys.uva.nl>
+
+ * login/Makefile (headers): Remove utmpx.h and bits/utmpx.h.
+ * login/getutent.c (getutxent): Remove alias.
+ * login/getutent_r.c (setutxent, pututxline, endutxent):
+ Remove aliases.
+ * login/getutid.c (getutxid): Remove alias.
+ * login/getutline.c (getutxline): Remove alias.
+ * login/utmp.h: Add prototypes for __updwtmp, __getutent,
+ __getutid, __getutline and __pututline.
+ * login/utmpx.h: Moved to ...
+ * sysdeps/gnu/utmpx.h: ... here. [__USE_GNU]: Define UTMPX_FILE,
+ UTMPX_FILENAME, WTMPX_FILE and WTMPX_FILENAME, declare utmpxname
+ and updwtmpx.
+ * login/updwtmp.c: Moved to ...
+ * sysdeps/generic/updwtmp.c: ... here. (updwtmp): Generalized by
+ allowing file name transformation.
+ * sysdeps/gnu/updwtmp.c: New file. Use generic implementation with
+ additional file name transformation.
+ * sysdeps/unix/sysv/linux/updwtmp.c: Likewise.
+ * login/utmp_file.c: Moved to ...
+ * sysdeps/generic/utmp_file.c: ... here. (setutent_file):
+ Generalized by allowing file name transformation. Do not
+ print error message. Library functions should not print them.
+ Reported by Jim Meyering.
+ * sysdeps/gnu/utmp_file.c: New file. Use generic implementation
+ with additional file name transformation.
+ * sysdeps/unix/sysv/linux/utmp_file.c: Likewise.
+ * sysdeps/gnu/Makefile [$(subdir)=login] (sysdep_routines): Add
+ setutxent, getutxent, endutxent, getutxid, getutxid, getutxline,
+ pututxline, utmpxname and updwtmpx. (sysdep_headers): Add utmpx.h
+ and bits/utmpx.h.
+ * sysdeps/gnu/bits/utmpx.h [__USE_GNU] Include paths.h.
+ (_PATH_UTMPX): Define to _PATH_UTMP. (_PATH_WTMPX): Define to
+ _PATH_WTMPX. (RUN_LVL): Define only if __USE_GNU. (ACCOUNTING):
+ Define if __USE_GNU.
+ * sysdeps/generic/setutxent.c: New file.
+ * sysdeps/generic/getutxent.c: New file.
+ * sysdeps/generic/endutxent.c: New file.
+ * sysdeps/generic/getutxid.c: New file.
+ * sysdeps/generic/getutxline.c: New file.
+ * sysdeps/generic/pututxline.c: New file.
+ * sysdeps/generic/utmpxname.c: New file.
+ * sysdeps/generic/updwtmpx.c: New file.
+ * sysdeps/unix/sysv/linux/paths.h (_PATH_UTMP_DB): Remove.
+ * sysdeps/generic/bits/utmpx.h: Remove.
+
+1998-04-20 Ulrich Drepper <drepper@cygnus.com>
+
+ * posix/wordexp-test.c (main): Initialize ifs element of ts for
+ ~root test.
+
+1998-04-17 07:53 H.J. Lu <hjl@gnu.org>
+
+ * sysdeps/unix/sysv/linux/i386/s_pread64.S: Fix a typo.
+
+1998-04-17 11:32 Ulrich Drepper <drepper@cygnus.com>
+
+ * libio/oldfileops.c (_IO_old_file_seekoff): Define temporary st
+ variable using _G_stat64.
+ * libio/fileops.c: Remove macro definition of fstat, it is in the
+ global header.
+ Reported by Thorsten Kukuk <kukuk@weber.uni-paderborn.de>.
+
+1998-04-17 Philip Blundell <pb@nexus.co.uk>
+
+ * sysdeps/arm/strlen.S: New file, based on code by Matthew Wilcox
+ <willy@odie.barnet.ac.uk>.
+
+1998-04-16 Philip Blundell <Philip.Blundell@pobox.com>
+
+ * inet/netinet/in.h (IN6_IS_ADDR_MC_NODELOCAL): New macro,
+ required by IPv6 Basic API.
+ (IN6_IS_ADDR_MC_LINKLOCAL): Likewise.
+ (IN6_IS_ADDR_MC_SITELOCAL): Likewise.
+ (IN6_IS_ADDR_MC_ORGLOCAL): Likewise.
+ (IN6_IS_ADDR_MC_GLOBAL): Likewise.
+
+1998-04-15 16:41 Ulrich Drepper <drepper@cygnus.com>
+
+ Don't name internal representation since it might be different from
+ the external form (namely on little endian machines).
+ * iconv/gconv_builtin.h: Add UCS4 support. Change references to
+ UCS4 into references to INTERNAL.
+ * iconv/gconv_simple.c: Implement UCS4<->INTERNAL converters.
+ Add endianess support to UCS functions. Change references to
+ UCS4 into references to INTERNAL.
+ * iconv/gconv_int.h: Change references to UCS4 into references to
+ INTERNAL.
+ * iconv/iconv_prog.c: Don't mention INTERNAL in --list output.
+ * iconvdata/gconv-modules: Change accordingly.
+ * wcsmbs/wcsmbsload.c: Change names to use INTERNAL.
+
+ * iconv/gconv_simple.c: Adjust input buffer pointer for output buffer
+ overflow.
+ * iconvdata/8bit-gap.c: Likewise.
+ * iconvdata/8bit-generic.c: Likewise.
+ * iconvdata/big5.c: Likewise.
+ * iconvdata/euccn.c: Likewise.
+ * iconvdata/eucjp.c: Likewise.
+ * iconvdata/euckr.c: Likewise.
+ * iconvdata/euctw.c: Likewise.
+ * iconvdata/iso646.c: Likewise.
+ * iconvdata/iso6937.c: Likewise.
+ * iconvdata/iso8859-1.c: Likewise.
+ * iconvdata/johab.c: Likewise.
+ * iconvdata/sjis.c: Likewise.
+ * iconvdata/t61.c: Likewise.
+ * iconvdata/uhc.c: Likewise.
+
+ * iconvdata/8bit-gap.c: Correct access to to_ucs4 array.
+ * iconvdata/8bit-generic.c: Likewise.
+
+ * iconvdata/TESTS: Add more tests.
+
+ * sysdeps/i386/bits/byteswap.h: Change to use "=r" when ror is used.
+
+1998-04-15 11:47 Ulrich Drepper <drepper@cygnus.com>
+
+ * iconvdata/Makefile: Better rules to run tests.
+
+ * iconvdata/testdata/ISO-8859-1..UTF8: New file.
+ * iconvdata/testdata/ISO-8859-10: Likewise.
+ * iconvdata/testdata/ISO-8859-10..UCS2: Likewise.
+ * iconvdata/testdata/ISO-8859-2: Likewise.
+ * iconvdata/testdata/ISO-8859-2..UCS4: Likewise.
+ * iconvdata/testdata/ISO-8859-2..UTF8: Likewise.
+ * iconvdata/testdata/ISO-8859-3: Likewise.
+ * iconvdata/testdata/ISO-8859-4: Likewise.
+ * iconvdata/testdata/ISO-8859-5: Likewise.
+ * iconvdata/testdata/ISO-8859-6: Likewise.
+ * iconvdata/testdata/ISO-8859-7: Likewise.
+ * iconvdata/testdata/ISO-8859-8: Likewise.
+ * iconvdata/testdata/ISO-8859-9: Likewise.
+
+1998-04-15 Ulrich Drepper <drepper@cygnus.com>
+
+ * iconvdata/run-iconv-test.sh: Handle $from..$t file to compare
+ intermediate result (if available).
+
+ * iconv/gconv_simple.c (__gconv_transform_ucs4_ascii): Fix typo in
+ last change.
+
+ * iconvdata/Makefile: Add rules to run run-iconv-test.sh.
+ (distribute): Add run-iconv-test.sh and testdata/*.
+
+ * stdlib/testmb.c (main): Simplify mbc array handling.
+
+1998-04-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * elf/dl-minimal.c (__strtol_internal): Correct range check. Fix
+ return value on overflow.
+
+1998-04-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/posix/mkstemp.c (mkstemp): Change value and v to 64
+ bits.
+
+1998-04-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * malloc/mtrace.c (mtrace): Use standard function setvbuf instead
+ of non-standard function setbuffer.
+
+1998-04-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * stdio-common/perror.c: Include <string.h> for __strerror_r.
+
+1998-04-14 23:54 Ulrich Drepper <drepper@cygnus.com>
+
+ * iconvdata/Makefile: Add rules to run tests.
+ * iconvdata/TESTS: New file.
+ * iconvdata/run-iconv-test.sh: New file.
+ * iconvdata/testdata/ISO-8859-1: New file.
+
+ * iconv/iconv_prog.c (main): Call process_block with OUTPUT stream,
+ not stdout.
+
+1998-04-14 18:22 Ulrich Drepper <drepper@cygnus.com>
+
+ * iconv/gconv_builtin.c (__gconv_get_builtin_trans): Initialize
+ counter element of step.
+
+ * iconv/gconv_dl.c: Don't mark get_sym as internal function.
+
+ * iconv/gconv_simple.c (__gconv_transform_ucs4_ascii): Correct loop
+ termination test.
+ (__gconv_transform_ucs4_utf8): Likewise. Remove unnecessary variable
+ ACTUALLY.
+ (__gconv_transform_utf8_ucs4): Correct test for empty input.
+
+1998-04-14 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makefile: Include makeconfig before defining rule to regenerate
+ configure files.
+
+ * configure.in: Remove restriction on compiling without static
+ libs.
+
+1998-04-14 16:34 Ulrich Drepper <drepper@cygnus.com>
+
+ * test-skeleton.c: Provide hook for initializing code before the fork.
+ * rt/tst-aio.c: Use PREPARE hook to make suer temp files are always
+ removed.
+
+ * libio/fcloseall.c (__fcloseall): Return return value of _IO_cleanup.
+ * libio/genops.c (_IO_cleanup): Return return value of _IO_flush_all.
+ * libio/libioP.h: Adopt _IO_cleanup prototype.
+
+ * stdlib/Makefile (tests): Add test-canon2.
+ * stdlib/test-canon2.c: New file.
+ * stdlib/canonicalize.c (canonicalize): Allow RESOLVED parameter to
+ be NULL. Use __lxstat, not __lstat. Correctly recognize long
+ symlink sequences.
+ (__realpath): Make real function which checks RESOLVED parameter for
+ not being NULL.
+
+1998-04-14 Ulrich Drepper <drepper@cygnus.com>
+
+ * catgets/open_catalog.c (__open_catalog): Fix problems with
+ reading non-files. Always close file.
+ Reported by Cristian Gafton <gafton@redhat.com>.
+
+ * elf/dl-minimal.c (__strtol_internal): Prevent overflow warnings.
+
+1998-04-14 13:28 Ulrich Drepper <drepper@cygnus.com>
+
+ * libc.map: Add various low-level I/O functions.
+
+1998-04-14 10:35 Ulrich Drepper <drepper@cygnus.com>
+
+ * string/Makefile (routines): Remove strerror_r.
+ * string/strerror_r.c: Removed.
+ * string/strerror.c: Call __strerror_r for doing the real work.
+ * sysdeps/generic/_strerror.c: Rename function to __strerror_r and
+ add weak alias strerror_r.
+ * sysdeps/mach/_strerror.c: Likewise.
+ * assert/assert-perr.c: Use __strerror_r instead of _strerror_internal.
+ * elf/dl-error.c (_dl_signal_error): Likewise.
+ * elf/dl-profile.c (_dl_start_profile): Likewise.
+ * gmon/gmon.c (write_gmon): Likewise.
+ * stdio-common/perror.c: Likewise.
+ * stdio-common/vfprintf.c: Likewise.
+
+1998-04-10 Mark Kettenis <kettenis@phys.uva.nl>
+
+ * sysdeps/unix/sysv/linux/Makefile [$(subdir)=inet]
+ (sysdep_headers): Add netatalk/at.h.
+
+1998-04-12 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * manual/socket.texi, manual/creature.texi, manual/time.texi:
+ Formatting fixes.
+
+1998-04-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * posix/regex.c: Rename __re_syntax_options back to
+ re_syntax_options, aliases do not work with global variables due
+ to copy relocations.
+ (regex_compile): Use syntax parameter instead of
+ re_syntax_options.
+
+1998-04-14 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * configure.in: Document that enable-force-install is default.
+
+1998-04-13 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/posix/mktemp.c: Increment `value' in a way which touches
+ all needed 36 bits.
+ * sysdeps/posix/mkstemp.c: Likewise.
+
+1998-04-13 17:40 Ulrich Drepper <drepper@cygnus.com>
+
+ * iconvdata/8bit-gap.c: Simplify step data handling.
+ * iconvdata/8bit-generic.c: Likewise.
+ * iconvdata/big5.c: Likewise.
+ * iconvdata/euccn.c: Likewise.
+ * iconvdata/eucjp.c: Likewise.
+ * iconvdata/euckr.c: Likewise.
+ * iconvdata/euctw.c: Likewise.
+ * iconvdata/iso6937.c: Likewise.
+ * iconvdata/iso8859-1.c: Likewise.
+ * iconvdata/jis0208.h: Likewise.
+ * iconvdata/jis0212.c: Likewise.
+ * iconvdata/jis0212.h: Likewise.
+ * iconvdata/johab.c: Likewise.
+ * iconvdata/ksc5601.h: Likewise.
+ * iconvdata/sjis.c: Likewise.
+ * iconvdata/t61.c: Likewise.
+ * iconvdata/uhc.c: Likewise.
+
+1998-04-13 16:36 Ulrich Drepper <drepper@cygnus.com>
+
+ * manual/texinfo.texi: Updated from last version.
+
+1998-04-13 14:52 Ulrich Drepper <drepper@cygnus.com>
+
+ * iconvdata/cns11643.c: New file.
+ * iconvdata/cns11643.h: New file.
+ * iconvdata/cns11643l1.c: New file.
+ * iconvdata/cns11643l1.h: New file.
+ * iconvdata/euctw.c: New file.
+ * iconvdata/Makefile: Add rules for EUC-TW and CNS.
+ * iconvdata/gconv-modules: Likewise.
+
+ * iconvdata/eucjp.c: Several bug fixes and improvements.
+ * iconvdata/gb2312.h: Likewise.
+ * iconvdata/jis0201.h: Likewise.
+ * iconvdata/jis0208.h: Likewise.
+ * iconvdata/jis0212.h: Likewise.
+
+1998-04-13 09:11 Ulrich Drepper <drepper@cygnus.com>
+
+ * iconvdata/eucjp.c: New file.
+ * iconvdata/euccn.c: New file.
+ * iconvdata/gb2312.h: New file.
+ * iconvdata/gb2312.c: New file.
+ * iconvdata/Makefile: Add rules for EUC-JP and EUC-CN.
+ * iconvdata/gconv-modules: Likewise.
+
+ * iconvdata/euckr.c: Use stdint.h instead of inttypes.h.
+
+1998-04-12 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c
+ (DL_FIND_ARG_COMPONENTS): Always initialize auxv.
+ Patch by Mark Hatle <fray@kernel.crashing.org>.
+
+1998-04-12 22:47 Philip Blundell <Philip.Blundell@pobox.com>
+
+ * sysdeps/unix/sysv/linux/bits/socket.h (PF_APPLETALK): Correct
+ comment.
+ (PF_AAL5, AF_AAL5): Rename to *_ATMPVC.
+ (PF_ATMSVC, PF_ECONET, AF_ATMSVC, AF_ECONET): Added.
+
+1998-04-12 Ulrich Drepper <drepper@cygnus.com>
+
+ * iconvdata/sjis.c (gconv): Remove superfluous varaible declarations.
+
+ * iconvdata/Makefile: Add rules for big5 conversion.
+ * iconvdata/gconv-modules: Likewise.
+ * iconvdata/big5.c: New file.
+
+ * time/mktime.c (TYPE_MAXIMUM): Add missing cast.
+ Patch by Jim Meyering.
+
+1998-04-11 Ulrich Drepper <drepper@cygnus.com>
+
+ * rt/tst-aio.c: Add test for aio_read and lio_listio.
+
+ * rt/lio_listio.c: Correct total counter handling.
+
+ * rt/aio_misc.c (handle_fildes_io): Correctly dequeue elements
+ from request queue.
+
+ * test-skeleton.c (main): Make stdout unbuffered. Improve message
+ of signal on exit even more.
+
+ * rt/aio_suspend.c (aio_suspend): Use PTHREAD_COND_INITIALIZER
+ instead of call to pthread_cond_init.
+ * rt/lio_listio.c (lio_listio): Likewise.
+ * rt/lio_listio64.c (lio_listio64): Likewise.
+
+ * nis/nis_findserv.c: Include sys/socket.h.
+
+1998-04-11 09:33 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makeconfig (rtobjdir): New variable.
+ (rpath-link): Add rtobjdir and thread directory, if available.
+
+ * test-skeleton.c: Add support to remove temporary files.
+ Always define test_dir. Improve message about expected signal.
+
+ * rt/Makefile (tests): Add tst-aio.
+ Add rules for tst-aio to be linked with librt and thread library.
+ * rt/aio_misc.c: Correct fundamental bugs.
+ * rt/aio_suspend.c: Correct bug in test for available request.
+ Initialize conditional variable.
+ * rt/lio_listio.c: Initialize conditional variable.
+ * rt/lio_listio64.c: Likewise.
+ * rt/tst-aio.c: New file.
+
+ * sysdeps/libm-ieee754/s_signgam.c: Undo last change.
+ * sysdeps/libm-ieee754/w_gamma.c: Likewise. Adopt for ISO C 9x.
+ * sysdeps/libm-ieee754/w_gammaf.c: Likewise.
+ * sysdeps/libm-ieee754/w_gammal.c: Likewise.
+ * sysdeps/libm-ieee754/w_lgamma.c: Likewise.
+ * sysdeps/libm-ieee754/w_lgammaf.c: Likewise.
+ * sysdeps/libm-ieee754/w_lgammal.c: Likewise.
+
+1998-04-11 14:49 Mark Kettenis <kettenis@landau.phys.uva.nl>
+
+ * posix/regex.c [_LIBC] (__re_syntax_options): Initialize to 0.
+
+1998-04-10 Ulrich Drepper <drepper@cygnus.com>
+
+ * elf/dl-load.c (open_path): Use correct name for test whether
+ directory in load path exists.
+
+ * sysdeps/libm-ieee754/s_expm1.c: Remove variable one.
+ * sysdeps/libm-ieee754/e_pow.c: Fix typo.
+ Patches by Tom Rini <trini@kernel.crashing.org>.
+
+ * wcsmbs/wcstof_l.c: Declare ____wcstoull_l_internal.
+ * wcsmbs/wcstod_l.c: Likewise.
+ * wcsmbs/wcstold_l.c: Likewise.
+
+ * include/byteswap.h: New file.
+
+ * malloc/mtrace.c (mtrace): Use smaller output buffer to reduce
+ .bss segment size. Patch by Joe Keane <jgk@jgk.org>.
+
+ * inet/getnameinfo.c (getnameinfo): Change parameter to match
+ declaration. Patch by Richard Henderson.
+
+1998-04-10 12:40 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ * manual/process.texi (SIGCHLD example): Save errno.
+
+1998-04-09 Ulrich Drepper <drepper@cygnus.com>
+
+ * posix/regex.c: Define regerror really as __regerror.
+ * posix/regex.h: Add __ protected prototypes for regcomp, regexec,
+ regerror and regfree.
+
+ * stdlib/strtof_l.c: Declare ____strtoull_l_internal.
+ * stdlib/strtod_l.c: Likewise.
+ * stdlib/strtold_l.c: Likewise.
+
+ * intl/gettextP.h [_LIBC] (SWAP): Use byteswap.h macros.
+
+ * sysdeps/i386/i486/bits/string.h: Remove unused variables.
+
+ * misc/syslog.c (closelog_internal): Set LogTag to NULL.
+ Patch by Christian Gafton.
+
+1998-04-09 14:27 Ulrich Drepper <drepper@cygnus.com>
+
+ * manual/socket.texi (Interface Naming): Correct @deftypefun line
+ for if_indextoname.
+
+1998-04-07 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * sysdeps/unix/sysv/linux/bits/sockunion.h: Fix error message.
+
+ * manual/socket.texi (Interface Naming): Fix typo.
+
+1998-04-07 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * manual/examples/filesrv.c (main): Remove filename first.
+
+ * manual/socket.texi (Address Formats): Change ?F_LOCAL, ?F_FILE,
+ ?F_UNIX.
+
+ * manual/examples/mkfsock.c (make_named_socket): Use PF_LOCAL
+ instead of PF_UNIX.
+
+ * manual/examples/filecli.c (main): Use AF_LOCAL
+ instead of AF_UNIX.
+
+1998-04-09 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/libm-ieee754/s_signgam.c: Define __signgam and make
+ signgam weak alias.
+ * sysdeps/libm-ieee754/w_lgamma.c: Use __signgam not signgam.
+ * sysdeps/libm-ieee754/w_lgammaf.c: Likewise.
+ * sysdeps/libm-ieee754/w_lgammal.c: Likewise.
+ * sysdeps/libm-ieee754/w_gamma.c: Likewise.
+ * sysdeps/libm-ieee754/w_gammaf.c: Likewise.
+ * sysdeps/libm-ieee754/w_gammal.c: Likewise.
+
+ * login/utmp_daemon.c (open_socket): Use __connect not connect.
+
+1998-04-08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * configure.in: Add new option --enable-force-install. Substitute
+ force_install.
+ * config.make.in (force-install): Set from configure.
+ * Makerules (force-install): New phony target.
+ * Makeconfig (+force): New variable.
+ * Makefile: Use it in dependency list of installation targets.
+ * db/Makefile: Likewise.
+ * db2/Makefile: Likewise.
+ * elf/Makefile: Likewise.
+ * hurd/Makefile: Likewise.
+ * iconv/Makefile: Likewise.
+ * iconvdata/Makefile: Likewise.
+ * intl/Makefile: Likewise.
+ * localedata/Makefile: Likewise.
+ * login/Makefile: Likewise.
+ * po/Makefile: Likewise.
+ * sunrpc/Makefile: Likewise.
+ * sysdeps/mach/hurd/Makefile: Likewise.
+ * sysdeps/standalone/i386/force_cpu386/Makefile: Likewise.
+ * sysdeps/unix/sysv/linux/Makefile: Likewise.
+ * timezone/Makefile: Likewise.
+
+1998-04-08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/unix/sysv/linux/getcwd.c: Use PATH_MAX as default
+ alloc_size. Pass return value of getcwd syscall to realloc.
+
+1998-04-08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * manual/socket.texi: Spelling fixes.
+
+1998-04-08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * elf/dl-load.c (print_search_path): Remove unused variable.
+
+1998-04-08 Ulrich Drepper <drepper@cygnus.com>
+
+ * login/utmp_file.c: use __ftruncate not ftruncate.
+ * sysdeps/unix/common/syscalls.list: Add __ftruncate as real name
+ for system call and make ftruncate weak alias.
+ * posix/unistd.h: Add prototype for __ftruncate.
+ * login/utmp_daemon.c (open_socket): Use __socket not socket.
+ * nscd/nscd_getpw_r.c (__nscd_getpw_r): use __snprintf and __readv
+ instead of snprintf and readv.
+ * nscd/nscd_getgr_r.c (__nscd_getgr_r): Use __snprintf not
+ snprintf.
+ * stdlib/strtod.c: Call strtoull/wcstoull's internal functions
+ directly.
+
+1998-04-08 20:06 Ulrich Drepper <drepper@cygnus.com>
+
+ * iconv/gconv_conf.c (__gconv_read_conf): Use __realpath not realpath.
+ * iconv/gconv_db.c: Use __ protected regex functions.
+ * iconv/gconv_simple.c: Use __mbsinit not mbsinit.
+ * posix/getopt_init.c: Use __getpid not getpid.
+ * posix/regex.c: Rename all global functions to start with __ and
+ make old names weak aliases.
+ * posix/regex.h: Adopt prototypes for this.
+ * stdlib/canonicalize.c: Define __realpath, make canonicalize_file_name
+ a weak alias and use __getcwd instead of getcwd.
+ * stdlib/stdlib.h: Declare __realpath and __canonicalize_file_name.
+ * stdlib/strtod.c: Use __btowc instead of btowc.
+ * stdlib/strtol.c: Likewise.
+ * sysdeps/libm-ieee754/s_matherr.c: Weaken definition of matherr.
+ * sysdeps/unix/sysv/linux/errlist.c: Make sure definitions of sys_nerr
+ and sys_errlist are weak.
+ * wcsmbs/btowc.c: Define function as __btowc and make btowc weak alias.
+ * wcsmbs/mbrtowc.c: Use __mbsinit not mbsinit.
+ * wcsmbs/mbsnrtowcs.c: Likewise.
+ * wcsmbs/mbsrtowcs.c: Likewise.
+ * wcsmbs/wcsnrtombs.c: Likewise.
+ * wcsmbs/wcsrtombs.c: Likewise.
+ * wcsmbs/mbsinit.c: Define function as __mbsinit and make mbsinit
+ weak alias.
+ * wcsmbs/wchar.h: Declare __btowc and __mbsinit.
+ * wctype/wctype.c: Define function as __wctype and make wctype
+ weak alias.
+ * wctype/wctype.h: Declare __wctype.
+
+1998-04-08 Ulrich Drepper <drepper@cygnus.com>
+
+ * stdio-common/vfscanf.c: Perform test in %l[ handling correctly.
+
+1998-04-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/unix/sysv/linux/_G_config.h (_G_stat64): Define to
+ stat64.
+ (_G_OPEN64, _G_LSEEK64, _G_FSTAT64): Use namespace clean
+ functions.
+ * sysdeps/unix/sysv/linux/alpha/syscalls.list: Add __lseek64 alias
+ for __llseek.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
+ * sysdeps/unix/sysv/linux/llseek.c: Likewise.
+ * sysdeps/generic/lseek64.c (lseek64): Rename to __lseek64, and
+ make it a weak alias.
+ * posix/unistd.h: Declare __lseek64.
+
+ * libio/fileops.c (fstat) [_LIBC]: Use namespace clean function.
+ (_IO_file_stat): Fix typo.
+ (_IO_file_xsgetn): Update fd->_offset. Read a multiple of the
+ block size from the file. Use __mempcpy if _LIBC.
+
+1998-04-07 20:32 Ulrich Drepper <drepper@cygnus.com>
+
+ * wcsmbs/btowc.c: Fix dozends of bugs in untested code.
+ * wcsmbs/mbrtowc.c: Likewise.
+ * wcsmbs/mbsnrtowcs.c: Likewise.
+ * wcsmbs/mbsrtowcs.c: Likewise.
+ * wcsmbs/wcrtomb.c: Likewise.
+ * wcsmbs/wcsnrtombs.c: Likewise.
+ * wcsmbs/wcsrtombs.c: Likewise.
+ * wcsmbs/wctob.c: Likewise.
+
+ * iconv/gconv-simple.c (__gconv_transform_ascii_ucs4): Compute
+ position of next output character correctly.
+ (__gconv_transform_ucs4_ascii): Count used input bytes correctly.
+
+ * stdio-common/vfprintf.c (vfprintf): Clear state before used.
+
+ * stdlib/strtod.c: Don't use mbtowc.
+
+1998-04-07 19:07 H.J. Lu <hjl@gnu.org>
+
+ * libio/fileops.c (_IO_file_xsgetn): Call __underflow () when
+ what we want is smaller than a buffer.
+
+1998-04-07 18:14 Ulrich Drepper <drepper@cygnus.com>
+
+ * elf/dl-support.c (_dl_important_hwcaps): Define dummy version of
+ this function.
+
+1998-04-07 Ulrich Drepper <drepper@cygnus.com>
+
+ * configure.in: Recognize --with-headers flag and determine
+ commandline options to be used in compilation.
+ * Makeconfig (+includes): Use $(sysincludes).
+ * config.make.in (sysincludes): Define from SYSINCLUDES.
+ * glibcbug.in: Use SYSINCLUDES information.
+ Patches by Zack Weinberg.
+
+1998-04-07 19:03 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ * glibcbug.in: On linux, report version of kernel headers seen
+ by compiler.
+
+1998-04-07 16:18 Ulrich Drepper <drepper@cygnus.com>
+
+ * libc.map: Add __asprintf to GLIBC_2.1.
+ * elf/dlerror.c: Use __asprintf, not asprintf.
+ * libio/stdio.h: Declare __asprintf.
+ * stdio-common/asprintf.c: Define as __asprintf and make asprintf
+ a weak alias.
+
+ * elf/dl-minimal.c: Add definition of strtol and strtoul (und friends)
+ to avoid inclusion from libc_pic.a.
+
+ * elf/dl-runtime.c: Undo last patch.
+
+ * stdlib/strtod.c: Don't use mbtowc, use btowc.
+
+ * sysdeps/i386/dl-machine.h (dl_platform_init): Don't use "i386"
+ as default, use NULL.
+
+1998-04-04 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * resolv/Makefile: Include ../Makeconfig - needed for building
+ static NSS module.
+
+1998-04-04 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * hesiod/Makefile (libnss_hesiod-inhibit-o): Remove condition for
+ static-nss since we don't want hesiod in the static NSS.
+
+ * nss/Makefile: Build only nss_files as static.
+
+ * nss/function.def: Remove support for service db.
+
+1998-04-04 09:44 H.J. Lu <hjl@gnu.org>
+
+ * Makeconfig (CPPFLAGS-.oS): Add -DPIC.
+
+1998-04-04 18:29 Tim Waugh <tim@cyberelk.demon.co.uk>
+
+ * posix/wordexp-test.c: Make IFS per test-case.
+
+1998-04-07 17:50 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ * glibcbug.in: Report version of gcc in use. Remove unused variable
+ ENVIRONMENT.
+
+1998-04-07 Gordon Matzigkeit <gord@profitpress.com>
+
+ * aclocal.m4 (LIBC_PROG_BINUTILS): Use `-print-prog-name', not
+ `-print-file-name' to find as and ld.
+
+1998-04-07 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/posix/mkstemp.c (mkstemp): Correct return value in case
+ template is wrong. Remove unused varaible `ignored'.
+
+1998-04-07 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * libc.map: Export __libc_sa_len.
+
+ * iconv/gconv_conf.c (MAXPATHLEN): Define correctly.
+
+1998-04-07 08:51 Ulrich Drepper <drepper@cygnus.com>
+
+ * iconv/gconv.c: Take care for NULL arguments.
+ * iconv/gconv_dl.c: Make find_func function global.
+ * iconv/gconv_int.h: Add prototype for __gconv_find_func.
+ Add prototypes for ASCII conversion functions.
+ * iconv/gconv_simple.c: Add ASCII conversion functions.
+ * locale/C-ctype.c: Correct charset name.
+
+ * wcsmbs/Makefile (distribute): Add wcsmbsload.h.
+ (routines): Remove wmemrtowcs and wmemrtombs, add wcsnlen and
+ wcsmbsload.
+ * wcsmbs/btowc.c: Rewrite to use iconv functionality.
+ * wcsmbs/mbrtowc.c: Likewise.
+ * wcsmbs/mbsnrtowcs.c: Likewise.
+ * wcsmbs/mbsrtowcs.c: Likewise.
+ * wcsmbs/wcrtomb.c: Likewise.
+ * wcsmbs/wcsnrtombs.c: Likewise.
+ * wcsmbs/wcsrtombs.c: Likewise.
+ * wcsmbs/wctob.c: Likewise.
+ * wcsmbs/wchar.h: Add prototype for __wcslen, wcsnlen. Remove
+ prototypes for wmemr*.
+ * wcsmbs/wcslen.c: Rename to __wcslen and make wcslen weak alias.
+ * wcsmbs/wcsnlen.c: New file.
+ * wcsmbs/wcsmbsload.c: New file.
+ * wcsmbs/wcsmbsload.h: New file.
+
+ * manual/filesys.texi: Mention risks of tmpnam and mktemp.
+
+ * manual/install.texi: Describe some more critical points.
+
+ * string/string.h: Add prototype for __strnlen.
+ * string/strnlen.c: Rename to __strnlen and make strnlen weak alias.
+
+ * sysdeps/posix/mktemp.c: Rewrite to allow many more files and
+ much less predictable names.
+ * sysdeps/posix/mkstemp.c: Likewise.
+
+1998-04-05 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * manual/libc.texinfo (Top): Change "file namespace" to "local
+ namespace".
+
+ * manual/socket.texi: Change file namespace to local namespace.
+ (Out-of-Band Data): Remove unneeded variable link.
+ (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 Potortì <F.Potorti@cnuce.cnr.it>.
+
+1998-04-05 Philip Blundell <Philip.Blundell@pobox.com>
+
+ Update for draft-ietf-ipngwg-bsd-api-new-01.txt:
+
+ * resolv/netdb.h (getnameinfo): Use `socklen_t' not `size_t'.
+ (NI_NUMERICHOST, et al.): Tidy up and add comments.
+ (AI_NUMERICHOST): Define.
+ (getnodebyname): New prototype.
+ (AI_V4MAPPED, et al.): New constants.
+
+ * sysdeps/unix/bsd/bsd4.4/bits/sockaddr.h (SA_LEN): New macro.
+ * sysdeps/generic/bits/sockaddr.h (SA_LEN): Likewise.
+ * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Add sa_len
+ for socket.
+ * sysdeps/unix/sysv/linux/sa_len.c: New file.
+ * sysdeps/unix/sysv/linux/Dist: Add sa_len.c.
+
+ * sysdeps/unix/sysv/linux/bits/socket.h: Make multiple #inclusion safe.
+
+ * sysdeps/generic/bits/sockunion.h: New file, defining sockaddr_union.
+ * sysdeps/unix/sysv/linux/bits/sockunion.h: Likewise.
+ * socket/Makefile (headers): Add bits/sockunion.h.
+ * socket/sys/socket.h: Include <bits/sockunion.h>
+ * inet/netinet/in.h: Include <bits/sockaddr.h> rather than
+ <sys/socket.h>, to avoid getting sockaddr_union defined.
+ * sysdeps/generic/bits/socket.h: Allow inclusion from netinet.in.h.
+ * sysdeps/unix/sysv/linux/bits/socket.h: Likewise.
+ * sysdeps/unix/sysv/linux/mips/bits/socket.h: Likewise.
+
+ * sysdeps/unix/sysv/linux/if_index.c: Remove use of SIOCGIFCOUNT
+ (2.2.x kernels won't have it).
+
+1998-04-06 21:21 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/mach/hurd/bits/ioctls.h: Allow inclusion from hurd/ioctl.h.
+ * sysdeps/mach/hurd/dl-sysdep.c: Use __ptr_t not caddr_t.
+ * iconv/gconv_conf.c: Define MAXPATHLEN if not available before.
+ Patches by UCHIYAMA Yasushi <uch@nop.or.jp>.
+
+1998-04-05 Philip Blundell <Philip.Blundell@pobox.com>
+
+ * manual/socket.texi (Socket Addresses): Fix a typo.
+ (Interface Naming): New section.
+
+1998-04-05 23:29 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ * configure.in: Check for CC using $ac_tool_prefix, to handle
+ cross-compilation. Use AC_CHECK_TOOL to find MiG.
+ * config.make.in: Add MIG to be substituted.
+ * mach/Machrules: Don't define MIG variable.
+
+ Patch by Gordon Matzigkeit <gord@profitpress.com>.
+
+1998-04-05 Mark Kettenis <kettenis@phys.uva.nl>
+
+ * elf/dl-load.c (decompose_rpath): Use local_strdup instead of
+ strdupa to copy rpath.
+
+1998-04-05 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * configure.in: Fix gcc version check.
+
+ * aclocal.m4 (AC_PROG_CHECK_VER): Rewritten to make less
+ confusing.
+
+1998-03-31 Mark Kettenis <kettenis@phys.uva.nl>
+
+ * sysdeps/unix/bsd/unlockpt.c (unlockpt): Call __ptsname_r instead
+ of ptsname_r.
+
+ * stdlib/stdlib.h: Change prototype of ptsname_r to make it more
+ like ttyname_r.
+ * sysdeps/unix/sysv/linux/ptsname.c (__ptsname_r): Likewise.
+ * sysdeps/generic/ptsname.c (__ptsname_r): Likewise.
+ * sysdeps/unix/grantpt.c (grantpt): Change check of return value
+ of __ptsname_r accordingly.
+ * login/openpty.c (openpty): Likewise.
+
+1998-06-04 18:47 H.J. Lu <hjl@gnu.org>
+
+ * libio/fileops.c (_IO_file_xsgetn): Adjust pointers.
+
+1998-04-06 13:58 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * Makeconfig (libtypes): Redo H.J. Lu's change of 1998-03-27.
+
+ * Makerules: Re-add missing rule for $(objpfx)stamp.oS.
+
+1998-04-06 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
+
+ * nis/ypclnt.c: Don't give YPERR_RPC back, use the do_ypcall
+ return value for better error checking.
+
+1998-04-06 Jakub Jelinek <jj@sunsite.ms.mff.cuni.cz>
+
+ * elf/dl-runtime.c (fixup, profile_fixup): The final arg to
+ _dl_lookup_*symbol is DL_LOOKUP_NOPLT not ELF_MACHINE_JMP_SLOT.
+
+ * elf/elf.h (EM_SPARC64): Remove.
+ (EM_SPARC32PLUS, EM_SPARCV9): Add.
+ (HWCAP_SPARC_V9): Add.
+
+ * elf/ldsodefs.h (_dl_hwcap): Declare.
+ * sysdeps/sparc/sparc32/dl-machine.h (_dl_hwcap, _dl_hwcap_mask):
+ Weaken so dlopen from static progies works.
+ (WEAKADDR): New macro.
+ (elf_machine_matches_host): Accept EM_SPARC32PLUS on a v9 cpu.
+ (LD_SO_PRELOAD): New macro.
+ (elf_machine_fixup_plt): Cope with weak _dl_hwcap.
+ (elf_machine_rela): Weaken _dl_rtld_map.
+
+ * sysdeps/unix/sysv/linux/sparc/sparc32/clone.S: Rename __libc_clone
+ to __clone, and remove the later's alias.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/clone.S: Likewise.
+
+ * sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c: Copy to/from
+ the kernel's structure.
+
+ * sysdeps/unix/sysv/linux/sparc/sys/kernel_termios.h: New file.
+ Sparc needs a custom value of __KERNEL_NCCS.
+
+1998-04-06 Richard Henderson <rth@cygnus.com>
+
+ * sysdeps/generic/libc-start.c: Allow init and fini to be null.
+
+ * sysdeps/sparc/sparc32/elf/start.S: Rewrite for __libc_start_main.
+ * sysdeps/sparc/sparc64/elf/start.S: Likewise.
+
+1998-04-06 Richard Henderson <rth@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Revert 03-01 change,
+ as the buffer is not properly aligned.
+ Reported by Juan Cespedes <cespedes@debian.org>.
+
+1998-04-05 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * manual/examples/mkfsock.c (make_named_socket): Use AF_LOCAL
+ instead of AF_FILE.
+
+1998-04-05 Ulrich Drepper <drepper@cygnus.com>
+
+ * iconv/gconv_simple.c: Rewrite to not make use of the mb*towc*
+ and wc*tomb* functions.
+
+1998-04-04 15:16 Philip Blundell <Philip.Blundell@pobox.com>
+
+ * sysdeps/unix/start.c: Fix typo.
+
+1998-04-04 Ulrich Drepper <drepper@cygnus.com>
+
+ * iconv/gconv_db.c (__gconv_find_transform): Fix typo.
+
+1998-04-03 23:38 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/libm-ieee754/e_acos.c: Optimize by splitting large
+ expressions and using array variables.
+ * sysdeps/libm-ieee754/e_asin.c: Likewise.
+ * sysdeps/libm-ieee754/e_j0.c: Likewise.
+ * sysdeps/libm-ieee754/e_j1.c: Likewise.
+ * sysdeps/libm-ieee754/e_log.c: Likewise.
+ * sysdeps/libm-ieee754/e_pow.c: Likewise.
+ * sysdeps/libm-ieee754/k_cos.c: Likewise.
+ * sysdeps/libm-ieee754/k_sin.c: Likewise.
+ * sysdeps/libm-ieee754/k_tan.c: Likewise.
+ * sysdeps/libm-ieee754/s_atan.c: Likewise.
+ * sysdeps/libm-ieee754/s_erf.c: Likewise.
+ * sysdeps/libm-ieee754/s_expm1.c: Likewise.
+ * sysdeps/libm-ieee754/s_log1p.c: Likewise.
+ Patch by Naohiko Shimizu <nshimizu@et.u-tokai.ac.jp>.
+
+1998-04-03 23:17 Ulrich Drepper <drepper@cygnus.com>
+
+ * iconv/gconv.c: Rewrite of the low-level of gconv.
+ * iconv/gconv.h: Likewise.
+ * iconv/gconv_builtin.h: Likewise.
+ * iconv/gconv_close.c: Likewise.
+ * iconv/gconv_db.: Likewise.
+ * iconv/gconv_dl.c: Likewise.
+ * iconv/gconv_int.h: Likewise.
+ * iconv/gconv_open.c: Likewise.
+ * iconv/gconv_simple.c: Likewise.
+ * iconvdata/8bit-gap.c: Adapt for rewrite.
+ * iconvdata/8bit-generic.c: Likewise.
+ * iconvdata/euckr.c: Likewise.
+ * iconvdata/iso646.c: Likewise.
+ * iconvdata/iso6937.c: Likewise.
+ * iconvdata/iso8859-1.c: Likewise.
+ * iconvdata/johab.c: Likewise.
+ * iconvdata/sjis.c: Likewise.
+ * iconvdata/t61.c: Likewise.
+ * iconvdata/uhc.c: Likewise.
+
+1998-04-03 15:34 Ulrich Drepper <drepper@cygnus.com>
+
+ * iconv/gconv_int.h: New file. Internal header.
+ * iconv/Makefile (distribute): Add gconv_int.h.
+ * iconv/gconv.h: Remove definition which are now in gconv_int.h.
+ * iconv/gconv_builtin.c: Adopt for gconv_int.h introduction.
+ * iconv/gconv_close.c: Likewise.
+ * iconv/gconv_conf.c: Likewise.
+ * iconv/gconv_db.c: Likewise.
+ * iconv/gconv_dl.c: Likewise.
+ * iconv/gconv_int.h: Likewise.
+ * iconv/gconv_open.c: Likewise.
+ * iconv/iconv.c: Likewise.
+ * iconv/iconv_close.c: Likewise.
+ * iconv/iconv_open.c: Likewise.
+ * iconv/iconv_prog.c: Likewise.
+
+1998-04-03 Ulrich Drepper <drepper@cygnus.com>
+
+ * iconvdata/ksc5601.c: Correct Perl scripts and make them omit the
+ missing braces.
+
+1998-04-03 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
+
+ * nis/nis_table.c (nis_list): Fix FOLLOW_PATH and ALL_RESULTS flags.
+
+1998-04-03 16:29 Philip Blundell <pb@nexus.co.uk>
+
+ Based on patch from Pat Beirne:
+ * sysdeps/unix/sysv/linux/arm/sysdep.S (__syscall_error): Same for
+ PIC and non-PIC now. Correctly negate error number.
+ (errno): Use `%' not `@' in .type directives.
+
+1998-04-03 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/i386/strtok.S: Change to use single exit point.
+ * sysdeps/i386/i686/strtok.S: Likewise.
+
+1998-04-02 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/generic/dl-procinfo.h (_dl_hwcap_string): Provide
+ default.
+
+1998-04-02 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * Makerules (installed-libcs): Fix typo.
+
+1998-04-02 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * iconvdata/Makefile ($(objpfx)UHC.so): Link against libKSC.
+ (UHC-routines): Remove ksc5601.
+
+1998-04-03 16:29 Philip Blundell <pb@nexus.co.uk>
+
+ * sysdeps/unix/sysv/linux/arm/sysdep.h (PSEUDO): Fix typo
+ introduced in last change.
+
+1998-04-03 06:22 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/getcwd.c: Make compilable with kernels
+ before 2.1.92.
+
+1998-04-02 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/syscalls.list: Add s_getcwd entry.
+
+ * stdlib/isomac.c: Use -isystem instead of -I for system include
+ dir.
+
+1998-03-30 08:05 H.J. Lu <hjl@gnu.org>
+
+ * resolv/res_comp.c (underscorechar): New.
+ (middlechar): Allow '_'.
+
+1998-04-02 Ulrich Drepper <drepper@cygnus.com>
+
+ * intl/explodename.c (stdlib.h): Include that file only if
+ STDC_HEADERS or _LIBC.
+ (string.h): Include that file only if HAVE_STRING_H or _LIBC.
+ Patch by Philippe De Muyter <phdm@macqel.be>.
+
+1998-04-01 21:08 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ * aclocal.m4 (AC_PROG_CC_LOCAL): Remove superfluous tests.
+ (AC_PROG_CHECK_VER): New macro.
+ * configure.in: Use AC_PROG_CHECK_VER to check versions of
+ gcc, gmake, msgfmt, makeinfo. Remove superfluous tests.
+
+1998-04-02 15:13 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/i386/i686/sysdep.h: New file.
+ * sysdeps/i386/i686/strtok.S: New file
+ * sysdeps/i386/i686/strtok_r.S: New file
+
+1998-04-02 Mark Kettenis <kettenis@phys.uva.nl>
+
+ * posix/unistd.h: [__USE_FILE_OFFSET64] (lseek): Change return
+ type to __off64_t.
+ * libio/stdio.h [__USE_FILE_OFFSET64] (fseeko): Declare offset
+ parameter as __off64_t instead of __off_t.
+ (ftello): Make alias for ftello64 instead of ftello. Change
+ return type to __off64_t.
+
+1998-04-02 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/i386/bits/string.h: Fix various typos.
+ Patch by Horst von Brand <vonbrand@sleipnir.valparaiso.cl>.
+
+ * sysdeps/unix/sysv/linux/getcwd.c: Use getcwd syscall in Linux 2.1.92.
+
+1998-04-02 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/i386/chown.c: Handle old kernels without
+ lchown syscall correctly. [PR libc/541].
+
+1998-04-02 11:45 Ulrich Drepper <drepper@cygnus.com>
+
+ * localedata/Makefile: Correct testsuite rules.
+
+ * iconvdata/gconv-modules: Set cost of ISO646 module to 2.
+ * iconvdata/iso646.c: Fix conversion from UCS4.
+
+ * elf/ldsodefs.h: Mark internal function with internal_function.
+ * elf/dl-addr.c: Likewise.
+ * elf/dl-close.c: Likewise.
+ * elf/dl-debug.c: Likewise.
+ * elf/dl-deps.c: Likewise.
+ * elf/dl-error.c: Likewise.
+ * elf/dl-fini.c: Likewise.
+ * elf/dl-init.c: Likewise.
+ * elf/dl-load.c: Likewise.
+ * elf/dl-lookup.c: Likewise.
+ * elf/dl-object.c: Likewise.
+ * elf/dl-open.c: Likewise.
+ * elf/dl-profile.c: Likewise.
+ * elf/dl-reloc.c: Likewise.
+ * elf/dl-runtime.c: Likewise.
+ * elf/dl-symbol.c: Likewise.
+ * elf/dl-version.c: Likewise.
+ * elf/dlerror.c: Likewise.
+ * sysdeps/generic/dl-sysdep.c: Likewise.
+ * sysdeps/i386/dl-machine.h: Likewise.
+ * intl/finddomain.c: Likewise.
+ * intl/gettextP.h: Likewise.
+ * intl/loadmsgcat.c: Likewise.
+
+1998-04-01 17:38 Ulrich Drepper <drepper@cygnus.com>
+
+ * iconv/gconv_simple.c: New builtins for UCS en/decoding.
+ * iconv/gconv_builtin.h: Add definitions for new builtins.
+ * iconv/gconv.h: Add prototypes for new builtins.
+
+ * iconvdata/Makefile (modules): Add ISO646.
+ Add rules for ISO646 module.
+ (distribute): Add iso646.c.
+ * iconvdata/gconv-modules: Add module and alias definition for
+ ISO646 charsets.
+ * iconvdata/iso646.c: New file.
+
+1998-04-01 16:10 Ulrich Drepper <drepper@cygnus.com>
+
+ * libc.map: Add __gconv_alias_db, __gconv_nmodules, __gconv_modules_db.
+ * iconv/iconv_prog.c: Implement --list option to print available
+ coded character sets.
+
+1998-04-01 18:10 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ Make fread() read large blocks straight to the user buffer.
+
+ * libio/fileops.c (_IO_file_xsgetn): New function.
+ (_IO_file_jumps): Use it.
+ * libio/libioP.h: Prototype it.
+
+1998-04-01 Ulrich Drepper <drepper@cygnus.com>
+
+ * iconv/gconv_conf.c (builtin_aliases): New variable.
+ (__gconv_read_conf): Add builtin aliases.
+ * iconv/gconv_builtin.c (builtin_map): Define BUILTIN_ALIAS as an
+ noop macro before including gconv_builtin.h.
+ * iconv/gconv_builtin.h: Add alias names.
+
+ * iconv/gconv_simple.c (__gconv_transform_ucs4_utf8): Compute
+ number of converted bytes correctly.
+
+1998-04-01 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
+
+ * sunrpc/clnt_udp.c (clntudp_call): Don't check the xid if
+ we only wait for a replay.
+
+1998-04-01 Ulrich Drepper <drepper@cygnus.com>
+
+ * iconvdata/Makefile: Finally fix dependencies for JOHAB and
+ EUC-KR modules.
+
+1998-04-1 16:52 Philip Blundell <pb@nexus.co.uk>
+
+ * sysdeps/unix/sysv/linux/arm/socket.S: Correct test for error and
+ use PLTJMP() rather than explicit (PLT).
+
+ * sysdeps/arm/elf/start.S: Leave most of the initialisation for
+ __libc_start_main().
+
+ Based on patch from Pat Beirne:
+ * sysdeps/unix/sysv/linux/arm/sysdep.h (SYSCALL_ERROR_HANDLER):
+ Always define, not only #ifndef PIC.
+ (DO_CALL): Pass fifth argument correctly in R4.
+ (PSEUDO): Correct test for error, call syscall_error through PLT
+ if PIC.
+
+1998-03-31 10:51 Philip Blundell <pb@nexus.co.uk>
+
+ * sysdeps/unix/sysv/linux/netash/ash.h: Fix typos and add new
+ definitions.
+
+1998-04-01 Ulrich Drepper <drepper@cygnus.com>
+
+ * iconvdata/Makefile: Remove extra dependencies for EUC-KR.so and
+ JOHAB.so.
+
+1998-04-01 13:20 Mark Kettenis <kettenis@phys.uva.nl>
+
+ * io/Makefile (static-only-routines): Add stat64, fstat64 and
+ lstat64.
+
+1998-03-30 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * manual/Makefile: Use object-suffixes-for-libc instead of
+ object-suffixes.
+ * rpm/Makefile (install-lib): Likewise.
+
+1998-03-30 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/unix/sysv/linux/lddlibc4.c: Fix OB1 bug.
+
+ * sysdeps/unix/sysv/linux/configure.in: Match $machine against
+ `m68*', not only `m68k'.
+
+1998-04-01 10:50 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/unix/sysv/linux/m68k/dl-librecon.h: New file.
+
+ * sysdeps/unix/sysv/linux/m68k/Makefile [$(subdir)=elf]: Build and
+ install lddlibc4.
+
+1998-03-31 Ulrich Drepper <drepper@cygnus.com>
+
+ * iconvdata/Makefile: Use libKSC shared object in JOHAB and
+ EUC-KR.
+
+ * sysdeps/unix/sysv/linux/bits/socket.h (PF_FILE): Correct
+ comment.
+
+1998-03-30 08:43 H.J. Lu <hjl@gnu.org>
+
+ * sysdeps/alpha/elf/start.S: Let __libc_start_main do most of
+ the init stuff.
+
+1998-03-31 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/alpha/syscalls.list: Wrapper for
+ adjtimex syscall.
+ * sysdeps/unix/sysv/linux/alpha/Makefile (sysdep_routines): Add
+ adjtimex.
+ Patches by Dominik Kubla <kubla@sundiver.zdv.uni-mainz.de>.
+
+1998-03-31 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * Makerules (install): Change comment for libc.so following the
+ libc_nonshared changes.
+
+1998-03-31 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/generic/dl-sysdep.c (_dl_important_hwcaps): Fix typo.
+
+ * iconvdata/gap.pl: Avoid using %#06x.
+
+1998-03-31 19:55 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ * Makerules: Use $? instead of S^ when invoking ar.
+
+1998-03-31 Ulrich Drepper <drepper@cygnus.com>
+
+ * db2/compat.h: Allow EFTYPE being defined.
+ * sysdeps/unix/bsd/bits/signum.h: Add definition for SIG_HOLD.
+ * sysdeps/unix/bsd/ulimit.c: Include <ulimit.h>.
+ * sysdeps/mach/hurd/bits/fcntl.h: Add O_LARGEFILE.
+ * sysdeps/mach/bits/libc-lock.h: Fix typo.
+ (__libc_once): Correctly unlock semaphore.
+ * sysdeps/mach/hurd/dl-sysdep.c: Include <elf/ldsodefs.h>.
+ * sysdeps/unix/bsd/getpt.c: Fix typo.
+ Patches by UCHIYAMA Yasushi <uch@ddd.scei.sony.co.jp>.
+
+1998-03-31 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/bits/socket.h (MSG_*): Also define as
+ macros.
+
+1998-03-31 18:11 Ulrich Drepper <drepper@cygnus.com>
+
+ * include/mntent.h: New file.
+
+ * elf/Makefile (trusted-dirs.h): Append slash to filename.
+ * elf/dl-load.c: Rewrite search path handling.
+ * elf/ldsodefs.h (struct r_search_path_elem): Change for rewrite.
+ * elf/rtld.c (process_envvars): Recognize LD_HWCAP_MASK.
+ * sysdeps/generic/dl-sysdep.h (_dl_important_hwcap): New function.
+ * elf/ldsodefs.h: Add prototype.
+
+1998-03-30 Ulrich Drepper <drepper@cygnus.com>
+
+ * nss/nsswitch.c (__nss_lookup): Adjust comment.
+
+ * sysdeps/generic/dl-sysdep.c (_dl_important_hwcaps): New
+ function.
+
+ * sysdeps/generic/dl-procinfo.h (HWCAP_IMPORTANT): New definition.
+
+ * sysdeps/unix/sysv/linux/i386/dl-procinfo.h (_dl_hwcap_string):
+ New function.
+ (HWCAP_IMPORTANT): New definition.
+
+1998-03-30 17:26 H.J. Lu <hjl@gnu.org>
+
+ * elf/dl-open.c (_dl_open): Fix a typo.
+ (_dl_global_scope_alloc): Make it static.
+
+1998-03-30 17:20 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makerules: Remove duplicate rules to handle stamp.oS.
+
+1998-03-30 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * manual/examples/inetsrv.c (main): Change prototype of
+ make_socket following change in mkisock.c.
+
+ * manual/examples/inetcli.c (SERVERHOST): Use mescaline.gnu.org as
+ example host.
+ (main): Change prototype of init_sockaddr following change in
+ isockadd.c.
+
+ * manual/examples/mkisock.c (make_socket): Use uint16_t for port.
+ * manual/examples/isockad.c (init_sockaddr): Likewise.
+
+ * manual/examples/mkfsock.c (make_named_socket): Removed blank
+ lines for clarification.
+ (make_named_socket): Use strncpy instead of strcpy.
+ Reported by Francesco Potortì <F.Potorti@cnuce.cnr.it>.
+
+1998-03-30 13:28 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makefile (parent-mostlyclean): Use object-suffixes-for-libc for
+ determining libs to remove.
+ (postclean): Add soversions.mk.
+ * Makerules (common-mostlyclean): Add tests-static and generated
+ files.
+
+1998-03-30 12:53 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/i386/i486/bits/string.h (__strcat_c) [__i686__]: Correct
+ scanning for \0.
+ (__strncat_g): Add i686 specific code.
+
+1998-03-30 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * manual/install.texi (Reporting Bugs): Ask to include section
+ names in reports.
+
+1998-03-28 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/unix/sysv/linux/Makefile ($(objpfx)syscall-%.h): Emit
+ guard against direct inclusion.
+
+1998-03-28 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ Rework support for libc_nonshared.a:
+ * Makeconfig (object-suffixes-for-libc): New variable.
+ * Rules: Remove handling of static-only and shared-only routines.
+ * Makerules: Handle them here instead. Use
+ object-suffixes-for-libc instead of object-suffixes when dealing
+ with libc objects.
+ (object-suffixes-for-rules): Remove variable.
+ (elide-routines.oS): Elide all routines except static-only
+ routines.
+ ($(objpfx)stamp.oS): Special rule for when static-only-routines is
+ empty.
+ (installed-libcs): Remove special case for .oS.
+ (rmobjs): Likewise.
+
+1998-03-28 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * Makefile (do-collate-test, do-xfrm-test, do-tst-fmon,
+ do-tst-rpmatch): New targets.
+ (test): Use them.
+ (install-locales): Ignore comment lines.
+
+1998-03-28 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * elf/Makefile ($(objpfx)ld.so): Depend on version script.
+ ($(objpfx)trusted-dirs.h): Depend also on $(..)Makeconfig.
+ ($(objpfx)rtldtbl.h): Likewise.
+ (CPPFLAGS-dl-load.c): Fix reference to object directory.
+
+1998-03-30 09:36 Ulrich Drepper <drepper@cygnus.com>
+
+ * manual/string.texi (Finding Tokens in a String): Extend strsep
+ description and correct example.
+
+1998-03-28 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * manual/socket.texi: Remove misguided explicit line breaks and
+ fix the formatting problem instead by reformulating the
+ paragraphs.
+ * manual/filesys.texi: Likewise.
+ * manual/conf.texi: Likewise. Don't typeset table with index
+ fonts, that looks worse than a minimally overfull line.
+
+1998-03-28 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * nscd/Makefile (nscd-modules): Move definition outside of
+ conditional.
+
+ * pwd/Makefile: Use have-thread-library to test for thread
+ library.
+
+1998-03-30 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * nss/getXXent_r.c (INTERNAL): Remove unused variable current_nip.
+
+ * iconvdata/uhc.c (gconv): Remove unused variable idx.
+
+1998-03-30 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/Dist: Add lddlibc4.c.
+
+1998-03-29 Ulrich Drepper <drepper@cygnus.com>
+
+ * nss/getXXent_r.c: Correctly handle failing setXXent function.
+
+ * inet/netinet/in.h: Use cast to uint32_t in IPv4 macros.
+ Reported by Andreas Jaeger.
+
+1998-03-29 20:59 Ulrich Drepper <drepper@cygnus.com>
+
+ * elf/Makefile: Fix typo.
+ (distribute): Add dl-librecon.h.
+ * elf/ldd.bash.in: Collect output of ldd --verify in verify_out.
+ * elf/ldd.sh.in: Likewise.
+ * elf/ldsodefs.h: Declare _dl_correct_cache_id.
+ * elf/rtld.c (dl_main): In --verify mode allow platform specifc action.
+ Use strsep correctly.
+ (process_envvars): Allow platform specific variables.
+ * sysdeps/generic/dl-cache.c (_dl_correct_cache_id): New variable.
+ (_dl_load_cache_lookup): Test cache IDs found against
+ _dl_correct_cache_id.
+ * sysdeps/generic/dl-librecon.h: New file.
+ * sysdeps/unix/sysv/linux/dl-librecon.h: New file.
+
+ * sysdeps/unix/sysv/linux/lddlibc4.c: Include error.h.
+
+1998-03-29 16:50 Ulrich Drepper <drepper@cygnus.com>
+
+ * config.make.in (ldd-rewrite-script): New variable.
+ * configure.in: Substitute ldd-rewrite-script.
+ * elf/Makefile: Rewrite rules to generate ldd script.
+ * elf/ldd.bash.in: Allow handling of non-ELF binaries.
+ * elf/ldd.sh.in: Likewise.
+ * sysdeps/unix/sysv/linux/Makefile: Remove rule to install lddlibc4.
+ * sysdeps/unix/sysv/linux/configure.in: Define ldd_rewrite_script to
+ point to sed script for libc4 handling insertion for ix86, m68, SPARC.
+ * sysdeps/unix/sysv/linux/i386/Makefile: Add rule to install lddlibc4.
+ * sysdeps/unix/sysv/linux/ldd-rewrite.sed: New file.
+
+1998-03-26 15:20 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ * inet/rcmd.c (iruserok): Remain setuid to the local user
+ while .rhosts is actually read, to make .rhosts-over-NFS work
+ (PR libc/524). Use iruserfopen() for security checks on both
+ hosts.equiv and .rhosts. General cleanup.
+ (iruserfopen): New function, performs careful checking on
+ hosts.equiv/.rhosts files. Disallows all the old forbidden
+ stuff plus hard links to files.
+
+1998-03-29 09:26 Ulrich Drepper <drepper@cygnus.com>
+
+ * setjmp/tst-setjmp.c: Don't test __setjmp, test _setjmp instead.
+
+ * nss/getXXent_r.c (REENTRANT_GETNAME): Avoid endless loop.
+
+1998-03-29 02:02 H.J. Lu <hjl@gnu.org>
+
+ * sysdeps/i386/i486/bits/string.h: Fix typos.
+
+1998-03-28 00:13 H.J. Lu <hjl@gnu.org>
+
+ * sysdeps/unix/sysv/linux/alpha/readdir.c (__readdir64): New
+ strong alias.
+
+ * sysdeps/unix/sysv/linux/alpha/syscalls.list (socket): Added.
+
+ * libc.map (__ieee_get_fp_control, __ieee_set_fp_control):
+ Added. Used by libm.so on alpha.
+
+1998-03-28 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
+
+ * intl/bindtextdom.c [_LIBC]: Define strdup only if not yet
+ defined.
+
+1998-03-27 07:29 H.J. Lu <hjl@gnu.org>
+
+ * Makerules (object-suffixes-for-rules): Add .oS only for
+ building shared library.
+ Add ranlib rule for nonshared library.
+ (rmobjs): Fix typo.
+
+ * Makeconfig (libtype.oS, CFLAGS-.oS, CPPFLAGS-.oS): Moved
+ into for shared library only.
+ (CPPFLAGS-.oS): Add -DPIC.
+ (libtypes): Use $(object-suffixes-for-rules) instead of
+ $(object-suffixes).
+
+1998-03-28 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/Makefile (inhibit-stdio_lim): Compile
+ and install lddlibc4.
+
+1998-03-28 09:13 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ * iconvdata/gap.pl: Gobble rest of line with a scalar, not a
+ hash.
+ * iconvdata/gaptab.pl: Likewise.
+
+1998-03-27 22:46 Ulrich Drepper <drepper@cygnus.com>
+
+ * Rules: Allow Makefiles to specify test-static for tests which
+ cannot be linked dynamically.
+ * math/Makefile: Move atest-exp, atest-sincos, atest-exp2 to
+ tests-static.
+
+ * libc.map: Add __nss_passwd_lookup, __nss_group_lookup, __nss_next.
+
+ * misc/error.c: Pretty print.
+
+1998-03-27 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * Makerules (libc_nonshared-name): Remove variable.
+ (installed-libcs): Use libc-name instead.
+ ($(inst_libdir)/libc.so): Likewise. Remove explicit reference to
+ dynamic linker.
+
+ * Makeconfig (link-libc): Link against libc_nonshared.a instead of
+ libc.a. Remove explicit reference to dynamic linker.
+
+1998-03-27 Ulrich Drepper <drepper@cygnus.com>
+
+ * iconvdata/iso8859-1.c (gconv): Add cast to assignment from char
+ to wchar_t.
+ * iconv/iconv_prog.c: Correctly test for write failure.
+ * iconvdata/Makefile: Add rules for EUC-KR, UHC, and JOHAB conversions.
+ * iconvdata/gconv-modules: Likewise.
+ * iconvdata/euckr.c: New file.
+ * iconvdata/johab.c: New file.
+ * iconvdata/ksc5601.c: New file.
+ * iconvdata/ksc5601.h: New file.
+ * iconvdata/uhc.c: New file.
+ Contributed by Jungshik Shin <jshin@pantheon.yale.edu>.
+
+ * libio/fileops.c (_IO_file_fopen): Interpret x flag to fopen.
+ * stdio/fopen.c: Correct handling of 'x' flag.
+ Reported by Jason M. Petry <jason@ps.ohio-state.edu>.
+
+1998-03-27 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * sunrpc/rpc/key_prot.h: Prevent warning by unknown pragma ident.
+ * sunrpc/rpcsvc/key_prot.x: Likewise.
+ * sunrpc/key_prot.c: Likewise.
+
+1998-03-27 13:49 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/i386/bits/string.h: Correct things which never worked.
+ * sysdeps/i386/i486/bits/string.h: Add clobber marks.
+ Patches by Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>.
+
+1998-03-27 Ulrich Drepper <drepper@cygnus.com>
+
+ * intl/textdomain.c [_LIBC]: Define strdup only if not yet
+ defined. Reported by Thorsten Kukuk.
+
+1998-03-26 18:50 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/lddlibc4.c: New file.
+
+1998-03-26 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * manual/install.texi (Supported Configurations): Add
+ arm-linuxaout and arm-none.
+
+1998-03-26 Ulrich Drepper <drepper@cygnus.com>
+
+ * version.h (VERSION): Bump to 2.0.93.
+
+1998-03-25 07:30 H.J. Lu <hjl@gnu.org>
+
+ * configure.in (libc_cv_ar_S): New to indicate if ar S works.
+
+ * config.make.in (have-ar-S): New, substituted by libc_cv_ar_S.
+
+ * Makerules (CREATE_ARFLAGS): New determined by $(have-ar-S).
+ (do-ar, build-extra-lib): Use $(CREATE_ARFLAGS) for $(AR).
+
+1998-03-26 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makeconfig (link-libc): Add missing use of libc_nonshared.a.
+
+1998-03-26 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ Put the static-only routines in a separate library.
+ * Makeconfig (libtype.oS, CFLAGS-.oS, CPPFLAGS-.oS): New
+ variables.
+ (all-object-suffixes): Add .oS.
+ * Makerules (libc_static-name): New variable.
+ (installed-libcs): Add libc_nonshared.a.
+ ($(inst_libdir)/libc.so): Use libc_nonshared.a instead of libc.a.
+ (object-suffixes-for-rules): New variable. Use it instead of
+ object-suffixes for generating compilation rules.
+ (rmobjs): Also remove *.oS.
+ * Rules (subdir_lib): Depend on $(objpfx)stamp.oS.
+ ($(objpfx)stamp.oS): New target.
+
+1998-03-26 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makefile (FAQ): Automatically check in regenerated FAQ.
+
+1998-03-26 10:16 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ * Makefile (INSTALL): Depend on install.texi, not maint.texi.
+
+1998-03-25 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/sparc/sparc64/Dist: Add sizes.h.
+ * sysdeps/unix/sysv/linux/alpha/Dist: Likewise.
+
+ * sysdeps/generic/stub_warning: Removed.
+
+ * Makefile (distribute): Add include/des.h.
+
+ * manual/Makefile (distribute): Change dir-add.texi to
+ dir-add.texinfo.
+
+ * glibcbug.in: Create files safely when mktemp is not available.
+
+ * sysdeps/unix/sysv/linux/adjtime.c: Make weak alias appear again.
+ Patch by a sun <asun@saul1.u.washington.edu>.
+
+1998-03-25 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
+
+ * libc.map: Rename getname to getnetname.
+
+1998-03-25 13:35 Ulrich Drepper <drepper@cygnus.com>
+
+ * manual/maint.texi: Use supported platform in examples.
+
+ * manual/install.texi: Document some installation tips.
+
+1998-03-25 10:56 Ulrich Drepper <drepper@cygnus.com>
+
+ * posix/wordexp.c: Fix some memory leaks and makes $* more efficient.
+ Fix a bug so that it returns an error if a numeric parameter is
+ unset and WRDE_UNDEF is set.
+ Patch by Andreas Schwab and Tim Waugh.
+ * posix/wordexp-test.c: Add new new test.
+
+1998-03-25 Ulrich Drepper <drepper@cygnus.com>
+
+ * posix/regex.c (regex_compile): Last patch wasn't entirely
+ correct. Patch by Alain Magloire <alainm@rcsm.ece.mcgill.ca>.
+
+1998-03-24 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * manual/filesys.texi (Scanning Directory Content): Fix typo.
+
+1998-03-25 09:24 Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
+
+ * sysdeps/i386/bits/string.h: Fix all assembler statements so that
+ clobbered registers don't appear as operands.
+
+1998-03-24 Ulrich Drepper <drepper@cygnus.com>
+
+ * posix/regex.c: Undefine ISASCII and ISPRINT before defining for
+ Solaris' sake.
+
+ * posix/regex.c (regex_compile): Don't allow non-alphabet
+ characters in character set name.
+
+1998-03-25 00:00 Tim Waugh <tim@cyberelk.demon.co.uk>
+
+ * posix/wordexp.c (w_newword): New function.
+ (do_parse_glob): New function.
+ (parse_glob): Use do_parse_glob. Now handles the case where a
+ variable expansion causes a field-split.
+ (wordexp): Use w_newword.
+ (parse_arith): Likewise.
+ (exec_comm): Likewise.
+ (parse_comm): Likewise.
+ (parse_param): Likewise.
+ (parse_backtick): Likewise.
+
+1998-03-24 19:36 Tim Waugh <tim@cyberelk.demon.co.uk>
+
+ * posix/wordexp-tst.sh: Another test.
+
+ * posix/wordexp-test.c: Two new tests.
+
+ * posix/wordexp.c (parse_glob): Use w_addstr instead of realloc
+ directly (the code using realloc was buggy).
+ (parse_param): Fix typo in comment.
+
+1998-03-24 Ulrich Drepper <drepper@cygnus.com>
+
+ * elf/dl-close.c (_dl_close): Replace questionable memcpy by loop.
+
+1998-03-24 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
+
+ * libc.map: Add more rpc auth functions/variables.
+
+ * nscd/nscd.c: Add -g option to argp options.
+
+1998-03-24 Ulrich Drepper <drepper@cygnus.com>
+
+ * configure.in: Be prepared for gcc 2.9.10 and up.
+ * configure.in: Add missing disabling of quote characters in
+ compiler version check. Reported by HJ Lu.
+
+1998-03-24 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * malloc/mtrace.c: Include elf/ldsodefs.h instead of link.h.
+
+1998-03-24 Ulrich Drepper <drepper@cygnus.com>
+
+ * intl/locale.alias: Fix spelling of romanian.
+
+ * sunrpc/Makefile (headers): Add rpc/rpc_des.h.
+ (distribute): Remove des.h.
+ * include/des.h: New file.
+ * sunrpc/des.h: Moved to ...
+ * sunrpc/rpc/rpc_des.h: ...here.
+
+1998-03-22 NIIBE Yutaka <gniibe@mri.co.jp>
+
+ * inet/netinet/in.h (IN6_IS_ADDR_UNSPECIFIED, IN6_IS_ADDR_LOOPBACK):
+ Fix paren.
+
+1998-03-24 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/mach/hurd/setsockopt.c (setsockopt): Make OPTVAL
+ parameter const. Reported by UCHIYAMA Yasushi <uch@nop.or.jp>.
+
+1998-03-24 Ulrich Drepper <drepper@cygnus.com>
+
+ * elf/ldsodesf.h: New file.
+ * elf/Makefile (distribute): Add ldsodefs.h.
+ * elf/link.h: Separate internal information in exter header.
+ * elf/rtld.c: Include elf/ldsodefs.h not link.h.
+ * elf/dl-minimal.c: Likewise.
+ * sysdeps/generic/dl-sysdep.c: Likewise.
+ * elf/sprof.c: Likewise.
+ * elf/dlsym.c: Likewise.
+ * elf/dlvsym.c: Likewise.
+ * elf/dlerror.c: Likewise.
+ * elf/dladdr.c: Likewise.
+ * elf/dlclose.c: Likewise.
+ * elf/dlopen.c: Likewise.
+ * elf/dl-addr.c: Likewise.
+ * elf/dl-close.c: Likewise.
+ * elf/dl-debug.c: Likewise.
+ * elf/dl-deps.c: Likewise.
+ * elf/dl-error.c: Likewise.
+ * elf/dl-fini.c: Likewise.
+ * elf/dl-init.c: Likewise.
+ * elf/dl-load.c: Likewise.
+ * elf/dl-lookup.c: Likewise.
+ * elf/dl-object.c: Likewise.
+ * elf/dl-open.c: Likewise.
+ * elf/dl-profile.c: Likewise.
+ * elf/dl-reloc.c: Likewise.
+ * elf/dl-runtime.c: Likewise.
+ * elf/dl-support.c: Likewise.
+ * elf/dl-symbol.c: Likewise.
+ * elf/dl-version.c: Likewise.
+ * sysdeps/generic/dl-cache.c: Likewise.
+ * sysdeps/generic/libc-start.c: Likewise.
+ * iconv/gconv_dl.c: Likewise.
+ * nss/nsswitch.c: Likewise.
+
+1998-03-23 13:45 Ulrich Drepper <drepper@cygnus.com>
+
+ * manual/nss.texi: The database is not called network but networks.
+ Reported by Herbert Xu <herbert@gondor.apana.org.au>.
+
+1998-03-23 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * configure.in: Correct test for compiler version.
+ Check that LD_LIBRARY_PATH doesn't contain current path.
+
+1998-03-23 07:52 H.J. Lu <hjl@gnu.org>
+
+ * elf/dl-close.c (_dl_close): Fix byte count while removing
+ the shared object from the global scope list and optimize
+ a little bit.
+
+1998-03-22 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * manual/filesys.texi (Scanning Directory Content): Add missing
+ closing brace.
+ (Scanning Directory Content): Fix text.
+
+1998-03-22 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * manual/memory.texi (Heap Consistency Checking): Add paragraph
+ explaining difference of -lmcheck and MALLOC_CHECK_.
+
+1998-03-23 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * sysdeps/unix/sysv/linux/fstatvfs.c (fstatvfs): Correct some
+ typos in comments.
+
+1998-03-20 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * test-skeleton.c (main): Fix test for exit signal.
+
+1998-03-22 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/generic/strtok_r.c: Undefine __strtok_r.
+
+1998-03-22 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/generic/memcmp.c [_LIBC]: Define WORDS_BIGENDIAN as
+ appropriate.
+
+1998-03-23 11:14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * libc.map: Export __strtok_r.
+
+1998-03-23 Ulrich Drepper <drepper@cygnus.com>
+
+ * posix/regex.c (re_compile_fastmap): Remove unused variable
+ num_regs and adjust comment.
+ Patch by Jim Meyering <meyering@ascend.com>.
+
+ * math/math.h (M_*l): Extend long double constants to be usable
+ for 128 bit floats. Patch by Richard Henderson.
+
+1998-03-23 11:16 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/m68k/m68020/wordcopy.S: New file.
+
+1998-03-22 Ulrich Drepper <drepper@cygnus.com>
+
+ * posix/wordexp.c: Rewrite parse_param.
+ Patch by Tim Waugh and Andreas Schwab.
+
+1998-03-21 23:46 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ * Rules: Update timestamps on empty object files.
+
+1998-03-21 09:15 Ulrich Drepper <drepper@cygnus.com>
+
+ * manual/filesys.texi (Scanning Directory Content): Add description
+ of 64 bits scandir function and friends.
+
+1998-03-20 Ulrich Drepper <drepper@cygnus.com>
+
+ * glibcbug.in: Use mktemp to generate unique file name for
+ temporary files.
+
+ * sysdeps/unix/grantpt.c (grantpt): Use __ptsname_r and not
+ ptsname_r. Use cast for execve call.
+
+1998-03-20 16:24 Ulrich Drepper <drepper@cygnus.com>
+
+ * libc.map: Add statvfs, fstatvfs, statvfs64, and fstatvfs64.
+ * io/Makefile (headers): Add sys/statvfs.h and bits/statvfs.h.
+ * io/sys/statvfs.h: New file.
+ * sysdeps/generic/fstatvfs.h: New file.
+ * sysdeps/generic/statvfs.h: New file.
+ * sysdeps/generic/fstatvfs64.h: New file.
+ * sysdeps/generic/statvfs64.h: New file.
+ * sysdeps/generic/bits/statvfs.h: New file.
+ * sysdeps/unix/sysv/linux/fstatvfs.c: New file.
+ * sysdeps/unix/sysv/linux/statvfs.c: New file.
+ * sysdeps/unix/sysv/linux/bits/statvfs.h: New file.
+
+ * sysdeps/unix/sysv/linux/bits/statfs.h: Correct type for f_files
+ and f_ffree elements.
+
+ * sysdeps/unix/sysv/linux/sys/mount.h: Pretty print. Define
+ mount options in enum.
+
+1998-03-20 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * configure.in: Check for recent egcs/gcc.
+
+1998-03-20 Ulrich Drepper <drepper@cygnus.com>
+
+ * libc.map: Add alphasort64, scandir64, versionsort64.
+ * dirent/Makefile (routines): Add scandir64, alphasort64, and
+ versionsort64.
+ * dirent/alphasort64.c: New file.
+ * dirent/scandir64.c: New file.
+ * dirent/versionsort64.c: New file.
+ * dirent/dirent.h: Add LFS support for scandir, alphasort, and
+ versionsort.
+ * sysdeps/generic/readdir64.c: Rename to __readdir64 and make
+ old name weak alias.
+ * sysdeps/unix/sysv/linux/readdir64.c: Likewise.
+
+ * dirent/alphasort.c: Use strcoll instead of strcmp.
+
+ * dirent/scandir.c: Optimize a bit.
+
+ * dirent/versionsort.c: Pretty print.
+
+1998-03-20 Ulrich Drepper <drepper@cygnus.com>
+
+ * string/string.h: Add prototype for __strtok_r.
+
+1998-03-20 12:14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * posix/Makefile: Fix typo in last change.
+
+1998-03-20 Ulrich Drepper <drepper@cygnus.com>
+
+ * dirent/dirent.h (scandir): Make argument of select function const.
+ * dirent/scandir.c (scandir): Likewise.
+ Reported by David.Faure@insa-lyon.fr [PR libc/512].
+
+1998-03-19 14:28 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/generic/strtok_r.c: Make __strtok_r real name and strtok_r
+ weak alias.
+ * sysdeps/i386/strtok_r.c: Likewise.
+
+ * sysdeps/libm-i387/i686/s_fdim.S: Make it really work.
+ * sysdeps/libm-i387/i686/s_fdimf.S: Likewise.
+ * sysdeps/libm-i387/i686/s_fdiml.S: Likewise.
+ * sysdeps/libm-i387/i686/s_fmin.S: Likewise.
+ * sysdeps/libm-i387/i686/s_fminf.S: Likewise.
+ * sysdeps/libm-i387/i686/s_fminl.S: Likewise.
+
+1998-03-19 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * intl/localealias.c: Remove unneeded define for strdup.
+
+1998-03-19 13:45 Ulrich Drepper <drepper@cygnus.com>
+
+ * manual/argp.texi: Adjust for better TeX output.
+ * manual/arith.texi: Likewise.
+ * manual/conf.texi: Likewise.
+ * manual/filesys.texi: Likewise.
+ * manual/header.texi: Likewise.
+ * manual/lgpl.texinfo: Likewise.
+ * manual/math.texi: Likewise.
+ * manual/message.texi: Likewise.
+ * manual/pattern.texi: Likewise.
+ * manual/process.texi: Likewise.
+ * manual/signal.texi: Likewise.
+ * manual/socket.texi: Likewise.
+ * manual/startup.texi: Likewise.
+ * manual/stdio.texi: Likewise.
+ * manual/terminal.texi: Likewise.
+ * manual/examples/rprintf.c: Likewise.
+ * manual/examples/testopt.c: Likewise.
+ Patches by Zack Weinberg <zack@rabi.phys.columbia.edu>.
+
+1998-03-19 20:45 Tim Waugh <tim@cyberelk.demon.co.uk>
+
+ * posix/wordexp.c (parse_param): Don't immediately stop parsing a
+ parameter name after seeing a digit if it's enclosed in braces.
+
+1998-03-18 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/i386/i686/Implies: Add libm-i387/i686.
+
+1998-03-18 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * manual/memory.texi (Heap Consistency Checking): Document
+ MALLOC_CHECK_. Based on a text by Wolfram Gloger.
+
+1998-03-18 17:11 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ * manual/Makefile: Add missing rules.
+
+1998-03-18 Ulrich Drepper <drepper@cygnus.com>
+
+ * timezone/Makefile (generated): Define to remove all stamp files.
+
+ * sysdeps/generic/strsep.c: Also undefine __strsep.
+
+ * string/strdup.c: Undefine __strdup and strdup first.
+ * string/strndup.c: Likewise.
+
+ * string/bits/string2.h: Correct strtok_r and strsep.
+ Add strndup optimization.
+
+ * sysdeps/generic/strsep.c: Little optimization.
+
+1998-03-18 14:25 Ulrich Drepper <drepper@cygnus.com>
+
+ * string/bits/string2.h: Add optimization for strdup.
+ Always define __strsep and __strtok_r and make real names available
+ when feature select macros are defined.
+
+1998-03-18 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * manual/install.texi (Installation): Use i486-linux as example
+ instead of the unsupported sunos4.
+ (Reporting Bugs): Mention glibcbug script.
+ (Tools for Installation): gcc 2.8.1/egcs 1.0.2 is required.
+
+1998-03-16 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * posix/wordexp-tst.sh: Make portable. Add more tests.
+
+ * posix/Makefile (do-globtest do-wordexp-test): New targets.
+
+1998-03-18 13:38 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/libc-start.c: Moved to ...
+ * sysdeps/generic/libc-start.c: ...here, replacing former content.
+
+ * sysdeps/unix/sysv/linux/Dist: Add netash/ash.h and
+ netpacket/packet.h.
+
+ * sysdeps/unix/sysv/linux/bits/socket.h: Pretty print.
+
+1998-03-17 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/unix/sysv/linux/bits/resource.h: Remove trailing comma
+ in enumerator for strict standard compliance.
+ * sysdeps/generic/bits/resource.h: Likewise.
+
+1998-03-18 10:04 Philip Blundell <pb@nexus.co.uk>
+
+ * sysdeps/arm/sysdep.h (__ARM_USES_FP): Deleted.
+ (PLTJMP): New macro.
+
+ * sysdeps/arm/fpu/__longjmp.S: New file, implementation of
+ longjmp() when floating point enabled.
+ * sysdeps/arm/fpu/setjmp.S: Likewise for setjmp().
+ * sysdeps/arm/__longjmp.S: Remove floating point code.
+ * sysdeps/arm/setjmp.S: Likewise.
+
+ * sysdeps/arm/bsd-setjmp.S: Call __sigsetjmp by correct name.
+ * sysdeps/arm/bsd-_setjmp.S: Likewise.
+
+ * sysdeps/arm/memset.S: New file; optimised ARM implementation of
+ memset().
+
+ * sysdeps/generic/setsockopt.c (setsockopt): Keep in step with
+ prototype.
+
+1998-03-17 16:16 Philip Blundell <pb@nexus.co.uk>
+
+ Based on patches from Pat Beirne and Scott Bambrough:
+
+ * sysdeps/arm/__longjmp.S: Use ip, not r2, as temporary.
+
+ * sysdeps/arm/bits/fenv.h: New file.
+
+ * sysdeps/arm/dl-machine.h: New file. Add ELF support.
+ * sysdeps/arm/elf/setjmp.S: Likewise.
+ * sysdeps/arm/elf/start.S: Likewise.
+ * sysdeps/arm/init-first.c: Likewise.
+ * sysdeps/arm/setjmp.S: Call __sigjmp_save through PLT
+ * sysdeps/arm/sysdep.h: Change format of .type directive. Correct
+ comment about floating point to reflect current reality.
+
+ * sysdeps/unix/arm/brk.S: Support PIC.
+ * sysdeps/unix/arm/sysdep.S (syscall_error): Support PIC and
+ re-entrant code.
+ * sysdeps/unix/sysv/linux/arm/socket.S: Check correctly for error
+ return; call syscall_error through PLT.
+ * sysdeps/unix/sysv/linux/arm/sysdep.h (ENTRY): Correct error jump.
+
+1998-03-04 12:01 Philip Blundell <pb@nexus.co.uk>
+
+ * sysdeps/unix/sysv/linux/netpacket/packet.h: New file.
+ * sysdeps/unix/sysv/linux/netash/ash.h: Likewise.
+ * sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Install them.
+
+1998-03-18 Ulrich Drepper <drepper@cygnus.com>
+
+ * dirent/list.c (test): Return error value.
+ (main): Exit with error value.
+
+ * sysdeps/unix/opendir.c (__opendir): Add missing initialization.
+
+ * Makefile (distribute): Add test-skeleton.c.
+ * test-skeleton.c: New file.
+ * dirent/Makefile (tests): Add opendir-tst1.
+ * dirent/opendir-tst1.c: New file.
+
+1998-03-18 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/opendir.c (__opendir): Don't block on FIFOs etc.
+ Optimize memory handling.
+ * sysdeps/unix/closedir.c: Optmize memory handling.
+
+1998-03-17 Ulrich Drepper <drepper@cygnus.com>
+
+ * posix/wordexp.c (parse_param): Fix off-by-on error in $@
+ handling. Optimize a bit.
+
+1998-03-18 00:25 Tim Waugh <tim@cyberelk.demon.co.uk>
+
+ * posix/wordexp.c (parse_comm): Allow quoting inside $(...).
+ (parse_param): Fold in Andreas' fixes to do with when the end of
+ the parameter name has been reached, and quoting inside ${...}.
+ (parse_dollars): Fix differentiation between $(((1+3)*(4-2))) and
+ $((echo);(ls)).
+
+1998-03-16 22:10 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ * manual/maint.texi: Split out installation and contribution
+ sections to their own appendices. Misc cleanups.
+ * manual/install.texi: New file. Mention add-ons. Refer to FAQ.
+ * manual/contrib.texi: New file.
+ * manual/libc.texinfo: Pull in new appendices.
+ * manual/header.texi: Correct node pointer.
+
+1998-03-17 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * manual/process.texi (Process Completion): Clarify return value
+ of waitpid a bit. Patch by Zack Weinberg. [PR libc/490]
+
+1998-03-15 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * posix/wordexp-test.c: Add more tests.
+ (testit): Fix logic.
+
+ * posix/wordexp.c (exec_comm): In the child, redirect stderr to
+ /dev/null instead of closing it, close pipe. Always chop off all
+ trailing newlines. Kill and reap child before returning error.
+ (w_addword, parse_glob): Fix memory leak.
+ (wordexp): Fix dangling pointer problem.
+
+1998-03-16 Ulrich Drepper <drepper@cygnus.com>
+
+ * elf/dl-close.c (_dl_close): Correct and simplify unmapping.
+
+ * posix/wordexp-test.c (main): Fix little thinkos and typos.
+
+ * catgets/Makefile (CPPFLAGS): Change NLSPATH to also examine
+ directory index by only the language.
+
+1998-03-16 13:02 Tim Waugh <tim@cyberelk.demon.co.uk>
+
+ * posix/wordexp-tst.sh: Store test results in the
+ ${common_objpfx}posix directory.
+
+ * posix/wordexp-test.c: Remove temporary directory afterwards.
+
+1998-03-15 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * libc.map: Export internal versions of cancelable functions.
+
+1998-03-15 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * Makerules (MAKEFLAGS): Append `r'.
+
+1998-03-15 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * Makeconfig: Define have-thread-library, shared-thread-library
+ and static-thread-library if a thread library is available. Don't
+ define rt.
+ * nscd/Makefile: Compile nscd if have-thread-library. Rename
+ nscd-routines to nscd-modules. Use shared-thread-library and
+ static-thread-library in dependencies.
+ * rt/Makefile: Only compile librt if have-thread-library is
+ defined.
+ * Makefile (subdirs): Always include rt subdir.
+
+1998-03-15 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * Makeconfig ($(common-objpfx)gnu/lib-names.h): Add dummy command.
+
+1998-03-14 21:55 Ulrich Drepper <drepper@cygnus.com>
+
+ * configure.in: Recognize variations for 32 MIPS processors.
+ Don't assume ELF systems always have .weak, test for .weakext.
+
+1998-03-14 Ulrich Drepper <drepper@cygnus.com>
+
+ * configure.in: Irix6 is an ELF platform.
+
+1998-03-14 11:47 H.J. Lu <hjl@gnu.org>
+
+ * elf/dl-close.c (_dl_close): Stop unmapping the segments after
+ unmapping the last loaded segment.
+
+1998-03-14 15:54 Ulrich Drepper <drepper@cygnus.com>
+
+ * configure.in: Set base_os for Irix6.
+ Correct test for .weakext.
+
+1998-03-14 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * elf/dl-deps.c (_dl_map_object_deps): Add first parameter
+ (new_line) to _dl_debug_message call.
+
+1998-03-14 00:52 Tim Waugh <tim@cyberelk.demon.co.uk>
+
+ * posix/wordexp.c (parse_param): Perform field-splitting after
+ expanding positional parameter.
+
+ * posix/wordexp-tst.sh: Test that field-splitting is performed
+ after expanding positional parameter.
+
+ * posix/wordexp.c (parse_param): Fixed memory leak in
+ field-splitting after parameter expansion.
+
+1998-03-14 Ulrich Drepper <drepper@cygnus.com>
+
+ * locale/programs/linereader.c (lr_token): Return EOF token at EOF.
+ (get_toplvl_escape): Correctly terminate loop at EOF.
+ Patch by Cristian Gafton <gafton@redhat.com>.
+
+1998-03-13 16:55 Ulrich Drepper <drepper@cygnus.com>
+
+ * string/tester.c (test_strpbrk): Add more strpbrk tests.
+ (test_strsep): Likewise. Correct horrible bugs.
+
+ * string/bits/string2.h (strcspn): Optimize also reject string of
+ length 2 and 3.
+ (strspn): Likewise.
+ (strpbrk): Likewise.
+ (strsep): Likewise. Correct bug with successive separators and
+ separators at the end of the string.
+ * sysdeps/generic/strsep.c: Correct bug with successive separators
+ and separators at the end of the string.
+
+1998-03-13 13:11 Tim Waugh <tim@cyberelk.demon.co.uk>
+
+ * posix/wordexp.c (parse_param): Positional parameters ($1, $2
+ etc) now handled, as well as $$ (pid).
+
+ * posix/Makefile (tests): Execute wordexp-test.sh for `make check'.
+ (distribute): Add wordexp-tst.sh.
+
+ * posix/wordexp-tst.sh: New file.
+
+ * posix/wordexp.c (parse_param): $# (or ${#}) expands to the
+ number of positional parameters. Renamed substitute_length to
+ seen_hash.
+ Don't free(env) is env is NULL.
+
+1998-03-13 16:50 Ulrich Drepper <drepper@cygnus.com>
+
+ * libc.map: Add pthread_attr_init to GLIBC_2.1.
+
+1998-03-13 15:01 Ulrich Drepper <drepper@cygnus.com>
+
+ * gmon/gmon.c: Allow GMON_OUT_PREFIX variable to specify filename
+ for output file replacing gmon.out.
+ Patch by Dean Gaudet <dgaudet@arctic.org>.
+
+1998-03-12 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * elf/dl-misc.c (_dl_debug_message): Fix printing of pid. Clean
+ up namespace. Optimize finding end of line.
+
+1998-03-12 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * elf/rtld.c (process_envvars): Ignore LD_DEBUG_OUTPUT if running
+ securely. Optimized.
+ (process_dl_debug): Add ':' to list of separators. Optimized.
+
+1998-03-13 10:25 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/m68k/fpu/bits/mathinline.h (isgreater, isgreaterequal,
+ isless, islessequal, islessgreater, isunordered): Return zero or
+ one.
+
+1998-03-12 13:11 Tim Waugh <tim@cyberelk.demon.co.uk>
+
+ * posix/wordexp-test.c: More tests.
+ (main): Set up arena for pathname expansion tests (in a temporary
+ directory).
+ (testit): Don't check word count or word vector if return value is
+ non-zero.
+
+ * posix/wordexp.c (exec_comm): Always chop off terminating
+ linefeed (just like bash does).
+ (parse_param): Change lots of occurrences of "if (!*env)" to "if
+ (!env || !*env)".
+ (parse_param): For assignment inside parameter expansion, use all
+ expanded words in assignment rather than just the first.
+ (parse_param): Corrected return value for parameter expansion of
+ an unset variable when WRDE_UNDEF is in effect.
+ (parse_dollars): Don't field-split if quoted.
+ (wordexp): Opening brace character isn't allowed unquoted.
+
+1998-03-12 Ulrich Drepper <drepper@cygnus.com>
+
+ * elf/dlerror.c: Fix concurrency problems with error string and
+ number.
+
+ * elf/dl-deps.c (_dl_map_object_deps): Print debug info when
+ filter/auxiliary are being loaded.
+
+1998-03-12 14:24 Ulrich Drepper <drepper@cygnus.com>
+
+ * elf/dlerror.c (last_object_name): Removed.
+ (dlerror): Don't use last_object_name.
+ (_dl_error_run): Omit second argument to _dl_catch_error.
+ * elf/dl-error.c (struct catch): Remove objname member.
+ (_dl_signal_error): Construct string including objname when given.
+ (_dl_catch_error): Remove objname handling.
+ * elf/link.h (_dl_catch_error): Fix prototype and comment.
+ * elf/rtld.c (dl_main): Call _dl_catch_error correctly.
+ * elf/dl-deps.c (_dl_map_objet_deps): Likewise.
+ * nss/nsswitch.c (nss_dlerror_run): Likewise.
+ * iconv/gconv_dl.c (dlerror_run): Likewise.
+ [Corrects PR libc/501].
+
+1998-03-12 Matthias Urlichs <smurf@noris.de>
+
+ * nscd/nscd.c: Ignore SIGPIPE.
+
+1998-03-12 Ulrich Drepper <drepper@cygnus.com>
+
+ * nscd/nscd_getgr_r.c: Use __ protected names.
+ * nscd/nscd_getpw_r.c: Likewise.
+
+1998-03-12 Matthias Urlichs <smurf@noris.de>
+
+ * nscd/nscd_getpw_r.c: Use pw_*_len values correctly.
+ * nscd/nscd_getpw_r.c: Fix length calculation in result check,
+ null bytes are not transmitted.
+
+1998-03-12 00:40 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
+
+ * powerpc/syscalls.list: Correct typo.
+ * alpha/syscalls.list: Likewise.
+ * mips/syscalls.list: Likewise.
+
+1998-03-12 Ulrich Drepper <drepper@cygnus.com>
+
+ * socket/sys/socket.h: Add prototype for __socket.
+
+1998-03-10 Ulrich Drepper <drepper@cygnus.com>
+
+ * aclocal.m4 (LIBC_PROG_FOO_GNU): Don't depend on GNU grep.
+
+ * sysdeps/unix/sysv/linux/mips/bits/socket.h: Add various SOL_*
+ constants.
+
+ * sysdeps/unix/sysv/linux/bits/socket.h (SOL_ROSE): Remove
+ definition here.
+ * sysdeps/unix/sysv/linux/netrose/rose.h (SOL_ROSE): Add
+ definition here.
+
+ * sysdeps/unix/sysv/linux/mips/bits/socket.h: Adds lots of missing
+ AF_* and PF_* constants.
+
+ * sysdeps/unix/sysv/linux/bits/socket.h: Add PF_ASH and AF_ASH.
+
+1998-03-11 15:27 Ulrich Drepper <drepper@cygnus.com>
+
+ * elf/rtld.c: Update help message.
+ Install link maps for preloaded objects using main_map as loader.
+
+ * elf/dl-misc.c: Use __libc_write instead of __write for debugging.
+ * elf/dl-profile.c: Likewise.
+
+ * elf/dlsym.c: Little optimization.
+ * elf/dlvsym.c: Likewise.
+
+1998-03-11 14:56 Ulrich Drepper <drepper@cygnus.com>
+
+ * posix/wordexp-test.c: Move test for parameter list at the very
+ beginning.
+
+1998-03-11 00:16 Tim Waugh <tim@cyberelk.demon.co.uk>
+
+ * posix/wordexp.c (wordexp): Set we_wordc to zero initially unless
+ WRDE_REUSE flag is set.
+ (parse_param): Allow `*', `@', and numbers in parameter names.
+ (parse_dollars): Differentiate between arithmetic expansion and a
+ command substitution that starts immediately with a sub-shell
+ (like ``$((1+3))'' as opposed to ``$((echo);(ls))'').
+ (parse_param): Memory allocated with __alloca in a block was
+ referenced outside that block. Adjusted to use malloc/free.
+ (parse_param): Adjusted field-splitting algorithm so that there is
+ not necessarily a field split at the end of a parameter expansion.
+
+1998-03-10 19:52 Tim Waugh <tim@cyberelk.demon.co.uk>
+
+ * posix/wordexp.c (wordexp): If about to return WRDE_NOSPACE,
+ don't free words that have already been allocated.
+ (parse_param): A dollar sign on its own will never have a pattern
+ associated with it (like "${HOME%%/}" has), so don't try to free it.
+ (parse_glob): Attempt to glob when an unquoted `[' is found
+ (rather than an unquoted '{' (!)). Also for unquoted '?'.
+ (parse_glob): Sorted out quoting in a glob-able word.
+ (parse_param): Added $* and $@ handling.
+
+1998-03-11 Ulrich Drepper <drepper@cygnus.com>
+
+ * nss/nss_db/db-XXX.c (lookup): Copy data to safe place before
+ parsing it.
+
+1998-03-11 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * sysdeps/generic/dl-cache.c (_dl_load_cache_lookup): Use
+ _dl_debug_message.
+
+1998-03-12 Matthias Urlichs <smurf@noris.de>
+
+ * elf/dl-misc.c: Default for debug output should be stderr.
+ * elf/dl-misc.c: Spurious garbage bytes after the PID in debug output.
+ * elf/dl-lookup.c: reference_name may be NULL or empty.
+
+1998-03-11 10:30 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * aclocal.m4 (LIBC_PROG_FOO_GNU): Fix order of redirection.
+
+1998-03-11 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/Dist: Add scsi/scsi.h.
+
+ * sysdeps/unix/sysv/linux/scsi/sg.h: Include features.h.
+
+1998-03-10 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/unix/sysv/linux/scsi/scsi.h: New file.
+ * sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Install it.
+
+1998-03-11 10:30 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/m68k/elf/start.S: Let __libc_start_main do most of the
+ init stuff.
+
+1998-03-10 Ulrich Drepper <drepper@cygnus.com>
+
+ * libio/iovdprintf.c (_IO_vdprintf): Set _IO_DELETE_DONT_CLOSE
+ flag.
+
+ * misc/syslog.c (vsyslog): Don't try to send if not connected to
+ syslog daemon.
+ (closelog_internal): Don't do anything if not connected.
+
+1998-03-10 17:54 Ulrich Drepper <drepper@cygnus.com>
+
+ * libc.map: Add _dl_debug_message.
+ * elf/dl-misc.c: Make _dl_debug_message a function. Print the PID
+ before every line.
+ * elf/fini.c: Correctly use new _dl_debug_message function.
+ * elf/init.c: Likewise.
+ * elf/dl-lookup.c: Likewise.
+ * sysdeps/unix/sysv/linux/libc-start.c: Likewise.
+ * elf/dl-load.c: Likewise. Add more debugging prints.
+ * elf/dl-reloc.c: Likewise.
+ * elf/dl-version.c: Likewise.
+ * elf/dl-support.c: Add variables for debugging.
+ * elf/rtld.c: Likewise. Recognize new debug options.
+ * elf/link.h: Declare new variables.
+
+ * elf/dl-deps.c (_dl_map_object_deps): Little optimizations.
+
+1998-03-10 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/sys/quota.h: Extract information from
+ kernel headers. Patch by a sun <asun@saul7.u.washington.edu>.
+
+1998-03-11 00:16 Tim Waugh <tim@cyberelk.demon.co.uk>
+
+ * posix/wordexp-test.c (command_line_test): New function to allow
+ testing of specific cases from the command-line.
+
+1998-03-10 Ulrich Drepper <drepper@cygnus.com>
+
+ * elf/dl-init.c (_dl_init_next): Print nicer messages.
+ * elf/dl-fini.c (_dl_fini): Likewise.
+ * sysdeps/unix/sysv/linux/libc-start.c (__libc_start_main): Likewise.
+
+ * elf/dl-lookup.c (_dl_lookup_versioned_symbol): Print version
+ symbol in debug message.
+ (_dl_lookup_versioned_symbol_skip): Likewise.
+
+1998-03-10 19:43 Matthias Urlichs <urlichs@noris.de>
+
+ * sysdeps/unix/readdir_r.c: Zero out *result on EOF.
+ * sysdeps/unix/sysv/linux/readdir64_r.c: Likewise.
+ * manual/filesys/texi: Document this.
+
+1998-03-10 10:49 Ulrich Drepper <drepper@cygnus.com>
+
+ * manual/filesys.texi: Document the change below.
+
+1998-03-10 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * sysdeps/posix/mkstemp.c (mkstemp): Open temporary file mode 0600.
+ Reported by Greg Alexander <galexand@sietch.bloomington.in.us>.
+
+1998-03-10 00:10 Ulrich Drepper <drepper@cygnus.com>
+
+ * elf/dl-lookup.c (do_lookup): Remove list and n parameter and add
+ instead scope. If debugging display information about symbol
+ resolving.
+ (_dl_lookup_symbol): Call do_lookup with correct parameters.
+ (_dl_lookup_symbol_skip): Likewise.
+ (_dl_lookup_versioned_symbol): Likewise.
+ (_dl_lookup_versioned_symbol_skip): Likewise.
+ * elf/dl-support.c: Define _dl_debug_symbols.
+ * elf/link.h: Add declaration for _dl_debug_symbols.
+ * elf/rtld.c: Define _dl_debug_symbols.
+ (process_dl_debug): Recognize symbols option.
+
+1998-03-09 23:36 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/init-first.c [!PIC]: Expect arguments
+ in correct format.
+ * sysdeps/unix/sysv/linux/libc-start.c: Call __libc_init_first
+ with correct parameters.
+ [!PIC]: Initialize __libc_multiple_libcs.
+
+1998-03-09 18:21 Ulrich Drepper <drepper@cygnus.com>
+
+ * elf/dl-support.c (_dl_debug_bindings): Add definition.
+ * elf/rtld.c (_dl_debug_bindings): Add definition.
+ (process_dl_debug): Recognize bindings option. Update help message.
+ * elf/link.h (struct link_map): Add l_versyms member.
+ (_dl_debug_bindings): Add declaration.
+ * elf/version.c (_dl_check_map_versions): Initialize l_versyms.
+ * elf/dl-object.c (_dl_new_object): Don't initialize l_rpath_dirs
+ and l_reloc_result.
+ * elf/dl-lookup.c (do_lookup): Define verstab from l_versyms.
+ (sym_val): Remove a member, add m as link_map.
+ (do_lookup): Return result appropriately.
+ (_dl_lookup_symbol): If _dl_debug_bindings is defined print message.
+ Call do_lookup correctly.
+ (_dl_lookup_symbol_skip): Likewise.
+ (_dl_lookup_versioned_symbol): Likewise.
+ (_dl_lookup_versioned_symbol_skip): Likewise.
+
+1998-03-09 08:21 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/chown.c: Moved to ...
+ * sysdeps/unix/sysv/linux/i386/chown.c: ...here.
+
+ * sysdeps/unix/sysv/linux/i386/chown.c: Correct versioning information.
+ * libc.map: Add chown to GLIBC_2.1.
+ * sysdeps/unix/sysv/linux/i386/syscalls.list: Add s_chown here.
+ * sysdeps/unix/sysv/linux/syscalls.list: Remove s_chown here.
+
+1998-03-06 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/generic/ffs.S: Rename function to __ffs and make ffs a
+ weak alias.
+ * sysdeps/alpha/ffs.c: Likewise.
+ * sysdeps/am29k/ffs.c: Likewise.
+ * sysdeps/i386/ffs.c: Likewise.
+ * sysdeps/i960/ffs.c: Likewise.
+ * sysdeps/m68k/ffs.c: Likewise.
+ * sysdeps/m88k/ffs.c: Likewise.
+ * sysdeps/powerpc/ffs.c: Likewise.
+ * sysdeps/rs6000/ffs.c: Likewise.
+ * sysdeps/vax/ffs.s: Likewise.
+ * string/string.h: Declare __ffs.
+ * libc.map: Export it.
+ * elf/dl-profile.c (_dl_start_profile): Use __ffs instead of
+ __builtin_ffs, which is not guaranteed to be namespace clean.
+
+1998-03-06 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * elf/sprof.c: Rewrite symbol handling to use the normal symbol
+ table, which is much more likely to exist than debugging symbols.
+ (printsym): Remove const.
+ (load_shobj): Don't use _dl_pagesize. Fix mapping of section
+ header table.
+
+ * libc.map: Export __profile_frequency, used by elf/sprof, to
+ avoid infinite recursion during startup.
+
+1998-03-09 12:16 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/unix/sysv/linux/m68k/sysdep.h (SYSCALL_ERROR_HANDLER):
+ Readd lost negate.
+
+ * sysdeps/m68k/sysdep.h: Remove the stabs stuff again.
+
+1998-03-09 Ulrich Drepper <drepper@cygnus.com>
+
+ * elf/dl-support.c: Add definition of _dl_debug_impcalls.
+
+1998-03-08 Ulrich Drepper <drepper@cygnus.com>
+
+ * elf/rtld.c (process_envvars): Also recognize LD_LIBRARY_PATH,
+ LD_PRELOAD, and LD_VERBOSE.
+ (dl_main): Use global variables set by process_envvars instead of
+ calling getenv.
+ * elf/dl-load.c (_dl_init_paths): Don't call getenv to get
+ LD_LIBRARY_PATH value, this comes with the parameter.
+ * elf/dl-support.c (non_dynamic_init): Pass return value of getenv
+ ("LD_LIBRARY_PATH") to _dl_init_paths.
+
+1998-03-08 22:55 Ulrich Drepper <drepper@cygnus.com>
+
+ * elf/rtld.c (dl_main): Delay initialization of path structure if
+ the dynamically linker is invoked implicitly until we read the
+ dynamic section.
+
+1998-03-08 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/chown.c: Add versioning stuff.
+
+1998-03-07 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * sysdeps/unix/sysv/linux/chown.c: New file for compatibility of
+ Linux 2.0 and 2.1.
+
+ * sysdeps/unix/sysv/linux/syscalls.list: Add chown.
+
+1998-03-08 14:58 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makeconfig (nisobjdir): Set to path to nis directory.
+ (rpath-link): Add nisobjdir.
+ Patch by Sven Verdoolaege <skimo@kotnet.org>.
+
+ * elf/Makefile: Pretty print.
+ * elf/dl-lookup.c: Include unistd.h.
+ * elf/dl-runtime.c: Likewise.
+
+ * localedata/Makefile (test-srcs): Add tst-rpmatch.
+ (distribute): Add tst-rpmatch.sh.
+ (tests): Add tst-rpmatch to dependency list and run tst-rpmatch.sh.
+
+ New tests for rpmatch function by
+ Jochen Hein <jochen.hein@delphi.central.de>.
+ * localedata/tst-rpmatch.c: New file.
+ * localedata/tst-rpmatch.sh: New file.
+
+ * localedata/locales/de_DE: Correct yesexpr and noexpr.
+ * localedata/locales/de_AT: Likewise.
+
+ * posix/getopt.c: Update contact address.
+ * posix/getopt1.c: Pretty print.
+
+ * sysdeps/generic/libc-start.c: Do most of the initialization now
+ here instead of in start.S.
+ * sysdeps/unix/sysv/linux/libc-start.c: Likewise.
+ * sysdeps/i386/elf/start.S: Remove most of the initialization code.
+
+ * sysdeps/unix/sysv/linux/i386/profil-counter.h: No need for
+ profil_counter to be public.
+
+1998-03-08 13:06 Tim Waugh <tim@cyberelk.demon.co.uk>
+
+ * posix/wordexp.c (parse_arith): Now works for negative numbers too.
+ (parse_param): Coded parameter length expansion (${#var}).
+ (parse_param): Handling for "=", "+", "-", and the ":" versions added.
+ (parse_param): Cleaned up (fixed) error handling.
+
+ * posix/wordexp-test.c: IFS now includes non-whitespace character
+ (comma). Added more tests.
+
+1998-03-07 Ulrich Drepper <drepper@cygnus.com>
+
+ * elf/link.h: Fix typos.
+ Reported by Andreas Jaeger.
+
+ * nscd/nscd_getpw_r.c (__nscd_getpw_r): Remove false comment.
+ * nscd/nscd_getgr_r.c (__nscd_getgr_r): Likewise.
+
+1998-03-06 Ulrich Drepper <drepper@cygnus.com>
+
+ * argp/argp-help.c: Remove last bits of using gettext instead of
+ dgettext.
+
+1998-03-06 17:04 Ulrich Drepper <drepper@cygnus.com>
+
+ * libc.map: Add _dl_debug_impcalls, _dl_debug_fd, _dl_sysdep_output,
+ __libc_start_main.
+ * csu/Makefile (routines): Add libc-start.
+ * elf/dl-error.c: Remove declaration of _dl_argv. Include <unitsd.h>.
+ * elf/dl-lookup.c: Likewise.
+ * elf/dl-version.c: Likewise.
+ * sysdeps/i386/dl-machine.h: Likewise.
+ * elf/link.h: Declare _dl_argv, _dl_debug_fd.
+ Declare _dl_sysdep_output. Make _dl_sysdep_fatal, _dl_sysdep_error and
+ _dl_sysdep_message macros which use _dl_sysdep_output.
+ * elf/dl-fini.c: Write out which destructor is called while debugging.
+ * elf/dl-init.c: Likewise for constructor.
+ * elf/dl-load.c: Use _dl_debug_message instead of _dl_sysdep_message.
+ * elf/dl-misc.c: Remove _dl_sysdep_fatal, _dl_sysdep_error and
+ _dl_sysdep_message. Add _dl_sysdep_output.
+ * elf/rtld.c: Recognize LD_DEBUG_OUTPUT. Set _dl_debug_fd if
+ this file can be opened.
+ For LD_DEBUG=libs also set _dl_debug_impcalls.
+ * sysdeps/generic/dl-cache.c: Include unistd.h.
+ * sysdeps/generic/libc-start.c: New file.
+ * sysdeps/unix/sysv/linux/libc-start.c: New file.
+ * sysdeps/i386/elf/start.S: Don't call main directly, call
+ __libc_start_main instead.
+
+ * elf/Makefile ($(objpfx)ld.so): Add $(load-map-file) as dependency.
+
+1998-03-06 Ulrich Drepper <drepper@cygnus.com>
+
+ * nss/nsswitch.c (__nss_nscd_not_available): Removed.
+
+1998-03-06 12:42 Ulrich Drepper <drepper@cygnus.com>
+
+ * argp/argp.h (struct argp): Add new field domain.
+ * argp/argp-help.c: Change all gettext calls to dgettext and use
+ domain field from appropriate argp in call.
+ * argp/argp-parse.c: Likewise.
+
+1998-03-06 11:35 Ulrich Drepper <drepper@cygnus.com>
+
+ * posix/wordexp-test.c: Change testsuite so that it can run even
+ for ~root != /root.
+
+1998-03-06 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * math/libm-test.c (catanh_test): Change epsilon for gcc 2.8.1.
+
+1998-03-05 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/unix/sysv/linux/i386/sysdep.h (SYSCALL_ERROR_HANDLER):
+ Don't store into global errno if we already store through
+ __errno_location.
+ * sysdeps/unix/i386/sysdep.S: Likewise.
+ * sysdeps/unix/alpha/sysdep.S: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/brk.S: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/clone.S: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h: Likewise. Add
+ missing return to SYSCALL_ERROR_HANDLER for (!_LIBC_REENTRANT &&
+ PIC).
+
+1998-03-05 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/generic/sysdep.h (L): Remove definition.
+ * sysdeps/i386/sysdep.h (L): Define it here instead.
+
+1998-03-06 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * nis/nis_call.c (__do_niscall): Safe and reset errno.
+
+ * nis/ypclnt.c (do_ypcall, yp_all): Safe and reset errno.
+
+1998-03-01 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * sysdeps/generic/getresuid.c (__getresuid): Use ISO C
+ declaration style to avoid warnings.
+
+1998-03-06 11:48 Mark M. Kettenis <kettenis@hall.phys.uva.nl>
+
+ * elf/rtld.c (process_dl_debug): Fix typo: "DL_DEBUG" ->
+ "LD_DEBUG".
+
+1998-03-05 Ulrich Drepper <drepper@cygnus.com>
+
+ * posix/Makefile (tests): Add wordexp-test.
+ * posix/wordexp-test.c: New file. Testsuite for wrodexp.
+ Patches by Tim Waugh <tim@cyberelk.demon.co.uk>.
+
+1998-03-05 16:04 Ulrich Drepper <drepper@cygnus.com>
+
+ * elf/Makefile ($(objpfx)rtldtbl.h): Add genrtldtbl.awk to the
+ dependencies.
+
+ * elf/link.h (struct r_search_path_elem): Add two new field for
+ lib path debugging.
+ * elf/rtld.c: Recognize LD_DEBUG environment variable and set
+ variable accordingly.
+ * elf/dl-load.c: If _dl_debug_libs is nonzero print what library
+ is considered next along with information about load paths.
+ * sysdeps/generic/dl-cache.c: Likewise.
+ * elf/dl-support.c: Define _dl_debug_libs.
+ * elf/genrtldtbl.awk: Add initializers for two new field in
+ struct r_search_path_elem.
+
+1998-03-06 10:40 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/m68k/add_n.S: Use ENTRY and END macros.
+ * sysdeps/m68k/lshift.S: Likewise.
+ * sysdeps/m68k/rshift.S: Likewise.
+ * sysdeps/m68k/sub_n.S: Likewise.
+ * sysdeps/m68k/m68020/addmul_1.S: Likewise.
+ * sysdeps/m68k/m68020/mul_1.S: Likewise.
+ * sysdeps/m68k/m68020/submul_1.S: Likewise.
+
+ * sysdeps/unix/sysv/linux/m68k/sysdep.S: Use ENTRY macro.
+ [_LIBC_REENTRANT]: Don't store into global errno.
+
+ * sysdeps/m68k/sysdep.h: New file.
+ * sysdeps/unix/sysv/linux/m68k/sysdep.h: Use it. Use the macros
+ ENTRY, CALL_MCOUNT, JUMPTARGET and syscall_error from there.
+ (DO_CALL): Change to expect syscall name as argument.
+ (PSEUDO): Pass syscall_name to DO_CALL.
+ (SYSCALL_ERROR_HANDLER) [_LIBC_REENTRANT]: Don't store into global
+ errno.
+
+1998-03-05 Ulrich Drepper <drepper@cygnus.com>
+
+ * elf/rtld.c: Speed up processing of environment variables. Do
+ only one run on the environment by avoiding to call getenv.
+ * sysdeps/generic/dl-sysdep.c (_dl_next_ld_env_entry): New
+ function. Used by patch above.
+
+1998-03-05 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
+
+ * nss/getXXbyYY_r.c: Check __nss_not_use_nscd_* variable for
+ running nscd.
+ * nscd/nscd_getgr_r.c: Set __nss_not_use_nscd_group variable.
+ * nscd/nscd_getpw_r.c: Set __nss_not_use_nscd_passwd variable.
+ * nscd/nscd_proto.h: Declare __nss_not_use_nscd_* variables.
+
+1998-03-05 Ulrich Drepper <drepper@cygnus.com>
+
+ * nss/nsswitch.c (nss_lookup_function): Don't modify errno if NSS
+ module cannot be found. Reported by Andreas Jaeger.
+
+1998-03-05 11:40 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
+
+ * nscd/nscd_getgr_r.c: Change char to int to avoid compiler warning
+ on platforms which default to unsigned chars.
+ * nscd/nscd_getpw_r.c: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/sysdep.h: Undefine L before
+ defining it.
+
+1998-03-05 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * elf/Makefile (install-bin): Change = to += for sprof to install
+ ldd also.
+
+1998-03-04 16:12 H.J. Lu <hjl@gnu.org>
+
+ * libio/strops.c (_IO_str_seekoff): Handle MODE == 0.
+
+1998-03-04 16:19 Ulrich Drepper <drepper@cygnus.com>
+
+ * nscd/nscd_getgr_r.c: Follow nscd_getpw_r.c change.
+
+1998-03-04 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * nscd/nscd_getpw_r.c (nscd_open_socket): Safe and reset errno so
+ that a failure to connect to nscd doesn't change errno.
+
+1998-03-04 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * manual/maint.texi (Reporting Bugs): Change
+ bug-glibc@prep.ai.mit.edu to bug-glibc@gnu.org.
+
+ * locale/iso-4217.def: Likewise
+
+1998-03-04 12:43 Ulrich Drepper <drepper@cygnus.com>
+
+ * manual/texinfo.tex: Updated.
+
+1998-03-03 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/posix/fpathconf.c: Don't modify errno for an undefined
+ value.
+ * sysdeps/posix/pathconf.c: Likewise.
+ * posix/getconf.c: Print `undefined' if pathconf returns -1
+ without setting errno.
+
+1998-03-04 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c: Fix cut&paste
+ problem.
+ * sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h: New file.
+ Patches by Elliot Lee <sopwith@cuc.edu>.
+
+1998-03-04 09:43 Ulrich Drepper <drepper@cygnus.com>
+
+ * elf/link.h (struct link_map): Add new field l_reloc_result.
+ * elf/dl-reloc.c (_dl_relocate_object): Allocate array for results
+ of relocation for the object to be profiled.
+ * elf/dl-object.c (_dl_new_object): Initialize l_reloc_result field
+ to NULL.
+ * elf/rtld.c (_dl_start): Add comment that we must not allocate an
+ array here.
+ * elf/dl-runtime.c (profile_fixup): If l_reloc_result array already
+ contains a result from a previous run use this instead of computing
+ the value again.
+ * elf/dl-minimal.c (malloc): Remove limit for size of allocation.
+
+1998-03-04 11:32 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/m68k/dl-machine.h: (elf_machine_load_address): Use word
+ offsets into the GOT.
+ (RTLD_START): Likewise.
+
+1998-03-03 17:55 Ulrich Drepper <drepper@cygnus.com>
+
+ * elf/sprof.c: Cleanup a bit.
+
+1998-03-03 08:01 H.J. Lu <hjl@gnu.org>
+
+ * sysdeps/generic/sysdep.h (L): New. Define.
+
+ * sysdeps/unix/sysv/linux/i386/sysdep.h (L): New. Define.
+
+ * sysdeps/i386/i586/addmul_1.S: Fix a typo.
+
+ * sysdeps/unix/sysv/linux/i386/clone.S: Follow Intel's advice
+ to have only one exit point for functions.
+ * sysdeps/unix/sysv/linux/i386/mmap.S: Likewise.
+ * sysdeps/unix/sysv/linux/i386/s_pread64.S: Likewise.
+ * sysdeps/unix/sysv/linux/i386/s_pwrite64.S: Likewise.
+ * sysdeps/unix/sysv/linux/i386/socket.S: Likewise.
+ * sysdeps/unix/sysv/linux/i386/syscall.S: Likewise.
+
+1998-03-03 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * sysdeps/unix/sysv/linux/sigaction.c (__sigaction): Safe and
+ reset errno so that errno isn't set to ENOSYS in the first call.
+ * sysdeps/unix/sysv/linux/i386/sigaction.c (__sigaction): Likewise.
+ * sysdeps/unix/sysv/linux/sigsuspend.c (__sigsuspend): Likewise.
+ * sysdeps/unix/sysv/linux/sigprocmask.c (__sigprocmask): Likewise.
+ * sysdeps/unix/sysv/linux/sigpending.c (sigpending): Likewise.
+
+1998-03-02 17:55 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/i386/add_n.S: Change to use ENTRY and END macro.
+ * sysdeps/i386/addmul_1.S: Likewise.
+ * sysdeps/i386/lshift.S: Likewise.
+ * sysdeps/i386/mul_1.S: Likewise.
+ * sysdeps/i386/rshift.S: Likewise.
+ * sysdeps/i386/sub_n.S: Likewise.
+ * sysdeps/i386/submul_1.S: Likewise.
+ * sysdeps/i386/i586/add_n.S: Likewise.
+ * sysdeps/i386/i586/addmul_1.S: Likewise.
+ * sysdeps/i386/i586/lshift.S: Likewise.
+ * sysdeps/i386/i586/mul_1.S: Likewise.
+ * sysdeps/i386/i586/rshift.S: Likewise.
+ * sysdeps/i386/i586/sub_n.S: Likewise.
+ * sysdeps/i386/i586/submul_1.S: Likewise.
+
+ * sysdeps/i386/sysdep.h: Extend last change.
+
+ * sysdeps/unix/sysv/linux/i386/sysdep.h: Follow Intel's advice
+ to have only one exit point for functions.
+
+1998-03-02 Ulrich Drepper <drepper@cygnus.com>
+
+ * configure.in: Fix msgfmt test. Fix handling of //s in sysdeps
+ search.
+
+1998-03-02 13:28 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makerules: Generate libc.so with absolute paths for the used
+ shared objects.
+
+ * config.make.in: Add MAKEINFO definition.
+
+1998-03-02 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/i386/sysdep.h (ASM_SIZE_DIRECTIVE): Add ; at the end.
+ (ENTRY): Use STABS_FUN.
+ (END): Use STABS_FUN_END.
+ (STABS_FUN, STABS_FUN2, STABS_FUN_END): New macro to emit stabs info.
+
+ * elf/Makefile: Add rules to build sprof program.
+ * elf/sprof.c: New file.
+
+1998-02-28 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * misc/syslog.c (openlog_internal): Insert missing closing brace.
+
+1998-02-06 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * configure.in: Check for working msgfmt version (from GNU gettext
+ 0.10 or later).
+
+1998-03-02 Ulrich Drepper <drepper@cygnus.com>
+
+ * configure.in: Avoid //s in sysdirs.
+ Patch by Roland McGrath.
+
+ * stdlib/a64l.c (a64l): Rewrite by Joe Keane <jgk@jgk.org>.
+
+1998-03-02 07:17 H.J. Lu <hjl@gnu.org>
+
+ * elf/dl-open.c (_dl_open): Update _dl_global_scope_end when
+ setting _dl_global_scope for RTLD_GLOBAL.
+
+1998-02-27 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/unix/make-syscalls.sh: Fix last change so that all
+ possible lists of object-suffixes are taken care of.
+
+1998-03-02 10:16 Ulrich Drepper <drepper@cygnus.com>
+
+ * timezone/private.h: Update from tzcode1998c.
+ * timezone/zic.c: Likewise.
+ * timezone/antarctica: Updated from tzdata1998c.
+ * timezone/asia: Likewise.
+ * timezone/australasia: Likewise.
+ * timezone/europe: Likewise.
+ * timezone/southamerica: Likewise.
+
+1998-03-02 Ulrich Drepper <drepper@cygnus.com>
+
+ * posix/glob.c (glob_in_dir): Add support for cases insensitive
+ VMS. Patch by John W. Eaton <jwe@bevo.che.wisc.edu>.
+
+1998-03-01 19:05 H.J. Lu (hjl@gnu.org)
+
+ * sysdeps/libm-ieee754/e_exp.c (__ieee754_exp): Use __isinf.
+ Changed type of TWO43, TWO52 from float to double.
+ * sysdeps/libm-ieee754/e_expf.c (__ieee754_expf): Use __isinff.
+ * sysdeps/libm-ieee754/s_exp2.c (__ieee754_exp2): Use __isinf.
+ Changed type of TWO43 from float to double.
+ * sysdeps/libm-ieee754/s_exp2f.c (__ieee754_exp2f): Fix a typo.
+ Use __isinff.
+
+1998-03-01 18:52 H.J. Lu (hjl@gnu.org)
+
+ * sysdeps/unix/sysv/linux/alpha/syscalls.list (osf_settimeofday,
+ osf_getitimer, osf_setitimer, osf_utimes, osf_getrusage,
+ osf_wait4): Removed __xxxx symbol for GLIBC_2.0.
+
+1998-03-01 09:11 Richard Henderson <rth@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/sparc/bits/ioctls.h: Don't include
+ kernel_termios.h.
+ * sysdeps/unix/sysv/linux/sparc/bits/termios.h (CBAUD, CIBAUD): Fix.
+ Clean up random whitespace.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/brk.c: Tidy the asm.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Use std on the args.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.S: Fix use of .bss.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/sys/ucontext.h: New file.
+
+1998-03-01 08:31 Richard Henderson <rth@cygnus.com>
+
+ * shlib-versions: Match alpha*.
+ * sysdeps/unix/sysv/linux/alpha/syscalls.list: Add adjtimex.
+ * sysdeps/unix/sysv/linux/alpha/adjtimex.S: Remove.
+
+ * sysdeps/alpha/fpu/bits/mathinline.h (isunordered et al): New.
+ Implement copysign* with and without __ prefix.
+ Likewise for fabs; use builtin for gcc 2.8.
+ (floor*): New.
+ (fdim*): New.
+
+ * elf/elf.h (EF_SPARC*, EF_ALPHA*, SHT_ALPHA*, SHF_ALPHA*): New.
+ (R_SPARC*): Match current v9 ABI.
+
+ * sysdeps/wordsize-64/stdint.h (intptr_t): Is a long.
+
+ * sunrpc/clnt_udp.c (clntudp_call): Use socklen_t.
+ * sunrpc/pmap_rmt.c (clnt_broadcast): Likewise.
+ * sunrpc/svc_tcp.c (svctcp_create, rendezvous_request): Likewise.
+ * sysdeps/generic/getresgid.c: Use prototype form because of warning.
+ * sysdeps/unix/sysv/linux/getdents.c: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/adjtime.c: Likewise.
+ * sysdeps/unix/grantpt.c (argv): Fix consts.
+ * sysdeps/unix/sysv/linux/getpt.c: Include <string.h>
+ * sysdeps/unix/sysv/linux/sigaction.c: Likewise.
+
+1998-02-27 Ulrich Drepper <drepper@cygnus.com>
+
+ * misc/syslog.c: Change to allow user the interpretation of the
+ outcome even with syslog having no return value.
+
+1998-02-05 20:41 Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>
+
+ * elf/dl-addr.c: Fix search algorithms in dladdr(); don't assume
+ that the number of program headers is >0 (which is wrong for the
+ loader itself).
+
+1998-02-27 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makefile (distribute): Add README.libm.
+
+1998-02-27 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * time/clocktest.c (main): Correct typo: "--" -> "==".
+
+1998-02-25 20:53 H.J. Lu <hjl@gnu.org>
+
+ * sysdeps/alpha/fpu/bits/mathinline.h (atan): Removed the bogus
+ inline function.
+ (copysignf, __copysignf, copysign, fabsf, __fabsf, fabs): New
+ inline functions.
+
+ * math/libm.map (__atan2): Added.
+
+1998-02-27 Ulrich Drepper <drepper@cygnus.com>
+
+ * misc/efgcvt_r.c (APPEND): Handle printing of 0.0 correctly.
+ Reported by Göran Uddeborg <goeran@uddeborg.pp.se>.
+
+ * misc/tst-efgcvt.c (ecvt_tests): Add new test case for reported
+ bug.
+
+1998-02-25 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * manual/arith.texi (Old-style number conversion): Correct
+ typo. Reported by Göran Uddeborg <goeran@uddeborg.pp.se>.
+
+1998-02-27 Ulrich Drepper <drepper@cygnus.com>
+
+ * posix/execlp.c: POSIX.1 says that argv[0] *should* be provided,
+ but does not require it. Handle missing argv[] values gracefully.
+ * posix/execl.c: Likewise.
+ * posix/execle.c: Likewise.
+
+1998-02-25 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/libm-ieee754/s_isnanl.c: Ignore the explicit integer
+ bit.
+ * sysdeps/libm-ieee754/s_isinfl.c: Likewise.
+
+1998-02-27 Ulrich Drepper <drepper@cygnus.com>
+
+ * libc.map: Add __adjtimex.
+
+1998-02-26 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
+
+ * nis/nss_nisplus/nisplus-ethers.c (_nss_nisplus_getntohost_r):
+ Remove memset.
+
+1998-02-24 08:10 H.J. Lu <hjl@gnu.org>
+
+ * sysdeps/unix/sysv/linux/alpha/bits/signum.h (_NSIG): Changed
+ to 64.
+
+ * sysdeps/unix/alpha/sysdep.S (_errno): Add in addition to __errno.
+
+ * sysdeps/alpha/s_fabs.S: Added ".set noat"/".set at".
+ * sysdeps/unix/sysv/linux/alpha/wait4.S: Ditto.
+
+ * sysdeps/unix/make-syscalls.sh: Make versioned symbols only
+ for shared library.
+
+ * libc.map (adjtime, adjtimex): Added for GLIBC_2.1.
+
+ * sysdeps/unix/sysv/linux/alpha/Makefile (sysdep_routines):
+ Added adjtimex and old_adjtimex.
+
+ * sysdeps/unix/sysv/linux/alpha/syscalls.list (old_adjtimex):
+ New.
+ (osf_settimeofday, osf_getitimer, osf_setitimer, osf_utimes,
+ osf_getrusage, osf_wait4): Added __xxxx symbol for GLIBC_2.0.
+
+ * sysdeps/unix/sysv/linux/alpha/getitimer.S: Make versioned
+ symbols only for shared library.
+ * sysdeps/unix/sysv/linux/alpha/getrusage.S: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/gettimeofday.S: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/select.S: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/setitimer.S: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/settimeofday.S: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/utimes.S: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/wait4.S: Likewise.
+
+ * sysdeps/unix/sysv/linux/alpha/getitimer.S: Fix ENOSYS branch.
+ * sysdeps/unix/sysv/linux/alpha/getrusage.S: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/gettimeofday.S: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/select.S: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/setitimer.S: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/settimeofday.S: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/utimes.S: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/wait4.S: Likewise.
+
+ * sysdeps/unix/sysv/linux/alpha/wait4.S: Check the correct
+ rusage pointer.
+
+ * sysdeps/unix/sysv/linux/adjtime.c (TIMEVAL, TIMEX, ADJTIMEX):
+ New macros.
+ (__adjtime): Use TIMEVAL, TIMEX and ADJTIMEX instead of timeval,
+ timex and __adjtimex, respectively.
+
+ * sysdeps/unix/sysv/linux/alpha/adjtime.c: New.
+
+ * sysdeps/unix/sysv/linux/alpha/adjtimex.S: New.
+
+1998-02-25 08:28 H.J. Lu <hjl@gnu.org>
+
+ * sysdeps/alpha/fpu/fraiseexcpt.c (feraiseexcept): Use a dummy
+ for FE_DIVBYZERO. Kludge for FE_UNDERFLOW.
+
+1998-02-26 14:59 Ulrich Drepper <drepper@cygnus.com>
+
+ * stdio-common/vfscanf.c [!USE_IN_LIBIO] (inchar): Add missing braces.
+
+1998-02-19 11:00 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ * Makefile.in: Disable built-in rules.
+
+1998-02-21 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * sysdeps/i386/fpu/t_exp.c: Move to ...
+ * sysdeps/libm-i387/t_exp.c: ... here.
+
+1998-02-21 13:51 H.J. Lu <hjl@gnu.org>
+
+ * sysdeps/libm-ieee754/s_exp2f.c (__exp2f_deltatable): Renamed
+ from __exp2_deltatable.
+
+1998-02-26 Ulrich Drepper <drepper@cygnus.com>
+
+ * nis/ypclnt.c (yp_master): Check result of strdup.
+ Patch by Thorsten Kukuk.
+
+1998-02-26 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
+
+ * nis/ypclnt.c: Give clnt handle after error checking free, change
+ return codes to fix problems with rpc.nisd in YP mode on Ultra's.
+
+1998-02-26 09:00 Ulrich Drepper <drepper@cygnus.com>
+
+ * misc/fstab.c: Partly rewritten to use dynamically allocated buffer.
+ Patch by Joe Keane <jgk@jgk.org>.
+
+ * misc/fstab.h (struct fstab): Change fs_type member to be const.
+ * misc/fstab.c: Remove casts in fs_type assignments.
+
+1998-02-26 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * sysdeps/i386/fpu/bits/fenv.h: Correct typo. ISO C 9X defines
+ FE_TOWARDZERO and not FE_TOWARDSZERO. Reported by H.J. Lu.
+ * sysdeps/sparc/sparc64/fpu/bits/fenv.h: Likewise.
+ * sysdeps/sparc/sparc32/fpu/bits/fenv.h: Likewise.
+ * sysdeps/powerpc/bits/fenv.h: Likewise.
+ * sysdeps/m68k/fpu/bits/fenv.h: Likewise.
+ * sysdeps/generic/bits/fenv.h: Likewise.
+ * sysdeps/alpha/fpu/bits/fenv.h: Likewise.
+ * sysdeps/i386/fpu/fesetenv.c (fesetenv): Likewise.
+ * sysdeps/powerpc/test-arith.c (main): Likewise.
+
+1998-02-25 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/i386/fpu/bits/mathinline.h: Also fix i386 versions of
+ the comparison macros.
+
+1998-02-21 20:14 H.J. Lu <hjl@gnu.org>
+
+ * sysdeps/libm-ieee754/s_log2.c (ln2): Added.
+ (__log2): Fixed return values.
+ * sysdeps/libm-ieee754/s_log2f.c: Likewise.
+
+1998-02-25 Ulrich Drepper <drepper@cygnus.com>
+
+ * math/math.h (isunordered): Rename local variables to ensure
+ correct code. Reported by HJ Lu.
+
+1998-02-25 10:34 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdpes/i386/fpu/bits/mathinline.h (isgreater, isgreaterequal,
+ isless, islessequal, islessgreater, isunordered): Fix syntax for
+ fucompip instruction.
+ (isless, islessequal): Fix logic.
+
+1998-02-21 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * math/libm-test.c (sqrt_test): Add test for sqrt(2).
+ (comparisons_test): New tests for comparison macros.
+
+1998-02-24 15:12 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makeconfig: Filter out frame-pointer effecting options when
+ compiling profiling or debugging code.
+ * config.h.in (internal_function): Don't define here if PROF is
+ defined.
+ * gmon/gmon.c (__moncontrol): Don't change state if already in error
+ state.
+ (__monstartup): If calloc fails set error state and mark array as
+ not allocated.
+ (_mcleanup): Don't call write_gmon if in error state. Don't try
+ to free array if not successfully allocated.
+
+ * elf/dl-load.c (STRING): Define to __STRING to enble expansion.
+ Include elf.h to get macro definitions.
+ Use __ELF?NATIVE?CLASS in message, not __ELF_WORDSIZE.
+
+1998-02-24 09:40 Ulrich Drepper <drepper@cygnus.com>
+
+ * elf/ldd.sh.in: Add compatibility for broken old shells.
+ * elf/ldd.bash.in: Likewise.
+
+1998-02-24 08:11 H.J. Lu <hjl@gnu.org>
+
+ * sunrpc/rpc_main.c (open_input): Check pipe return error.
+
+ * time/clocktest.c (main): Check signal return error.
+
+1998-02-24 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * iconv/Makefile ($(inst_bindir)/iconv): Correct typo, add
+ "/" and use do-install-program. Reported by Mark M. Kettenis.
+ (subdir_install): Likewise.
+
+1998-02-22 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
+
+ * sunrpc/rpc_sample.c: Fix typo.
+
+ * nscd/connections.c: Use locale.
+ * nscd/grpcache.c: Add debug messages, gidtbl should get the
+ calloc result.
+ * nscd/nscd.c: Check if init functions fails.
+ * nscd/nscd_conf.c: Allow disabling of group cache.
+ * nscd/nscd_getgr_r.c: Fix return code if group not found.
+ * nscd/pwdcache.c: Fix debug messages.
+
+1998-02-22 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * libc.map: Add __monstartup and _mcleanup for profiling support.
+
+1998-02-20 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * libc.map: Export __getpagesize, for binary compatibility with
+ 2.0.
+
+1998-02-21 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * posix/globtest.sh: Use --library-path instead of
+ LD_LIBRARY_PATH.
+ * localedata/sort-test.sh: Likewise.
+ * localedata/tst-fmon.sh: Likewise. Avoid useless use of cat.
+
+1998-02-22 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/unix/sysv/linux/sigaction.c: Translate between struct
+ sigaction and struct kernel_sigaction for __syscall_rt_sigaction.
+ * sysdeps/unix/sysv/linux/i386/sigaction.c: Likewise.
+
+ * sysdeps/unix/sysv/linux/kernel_sigaction.h (struct
+ kernel_sigaction): Define.
+ * sysdeps/unix/sysv/linux/alpha/kernel_sigaction.h (struct
+ kernel_sigaction): Define.
+
+1998-02-23 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * math/libm-test.c: Change epsilons for libm-ieee754.
+
+1998-02-23 12:33 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/i386/__longjmp.S: Fix race condition.
+ Reported by Bruno Haible <haible@ilog.fr>.
+
+1998-02-20 18:43 Ulrich Drepper <drepper@cygnus.com>
+
+ * hesiod/hesiod.c: Pretty print. Don't use __ protected names.
+ * iconvdata/8bit-gap.c: Likewise.
+ * iconvdata/8bit-generic.c: Likewise.
+ * iconvdata/iso6937.c: Likewise.
+ * iconvdata/iso8859-1.c: Likewise.
+ * iconvdata/sjis.c: Likewise.
+ * iconvdata/t61.c: Likewise.
+
+1998-02-20 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/unix/sysv/linux/bits/termios.h: Replace all negative
+ feature tests by positive feature tests.
+
+1998-02-19 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/unix/sysv/linux/unlockpt.c: Always return a value.
+
+1998-02-20 Ulrich Drepper <drepper@cygnus.com>
+
+ * elf/dlvsym.c (dlvsym_doit): More corrections.
+ Patch by Andreas Jaeger.
+
+1998-02-19 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/sigqueue.c: Fix weak alias definition.
+
+1998-02-19 17:16 Ulrich Drepper <drepper@cygnus.com>
+
+ * libc.map: More reordering for GLIBC_2.1 symbols.
+
+1998-02-19 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * libc.map: Move some functions from version GLIBC_2.0 to
+ GLIBC_2.1, reorder declarations.
+
+1998-02-19 Ulrich Drepper <drepper@cygnus.com>
+
+ * resolv/gethnamaddr.c (addrsort): Make this function extern.
+ Patch by zab@thebrain.grumblesmurf.net.
+
+1998-02-19 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
+
+ * nis/libnsl.map: NIS+ support is new in glibc 2.1, add
+ NIS+ functions with version GLIBC_2.1.
+
+1998-02-19 14:05 Ulrich Drepper <drepper@cygnus.com>
+
+ * libc.map: Add __sbrk, __setpgid, __getpgid for binary compatibility
+ with 2.0 binaries. Reported by Thorsten Kukuk.
+
+1998-02-19 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * elf/dlvsym.c (dlvsym_doit): Correct last patch.
+
+ * elf/dlsym.c (dlsym_doit): Likewise.
+
+1998-02-19 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * elf/link.h: Correct typos.
+
+ * iconv/iconv_prog.c: Correct typo.
+
+1998-02-18 17:57 Ulrich Drepper <drepper@cygnus.com>
+
+ * iconv/Makefile: Add rules to build and install iconv program.
+ * iconv/iconv_prog.c: New file.
+
+1998-02-18 16:34 H.J. Lu <hjl@gnu.org>
+
+ * elf/dlsym.c (dlsym_doit): Fix scope and skip maps for
+ _dl_lookup_symbol_skip call.
+ * elf/dlvsym.c (dlvsym_doit): Likewise.
+
+1998-02-18 Ulrich Drepper <drepper@cygnus.com>
+
+ * libio/iovsscanf.c: Do not include errno.h.
+
+1998-02-17 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * elf/dl-load.c (add_name_to_object): Don't translate strings.
+ * elf/dl-minimal.c (_strerror_internal): Define it here to avoid
+ pulling in the whole error list.
+ (__dcgettext, dcgettext): Removed.
+ * libc.map: Export _strerror_internal.
+
+1998-02-18 10:50 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/i386/fpu/t_exp.c: New file.
+
+1998-02-18 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * nis/libnss_nisplus.map: NIS+ support is new in glibc 2.1, add
+ everything with version GLIBC_2.1.
+ * hesiod/libnss_hesiod.map: Likewise.
+
+1998-02-18 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * manual/arith.texi (Old-style number conversion): This node is a
+ section, not a subsection.
+
+1998-02-17 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * elf/dl-lookup.c (make_string): Use __stpcpy instead of stpcpy.
+
+1998-02-17 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * elf/rtld.c (dl_main): Make sure that the library search paths
+ have been initialized before the first call to _dl_map_object.
+
+1998-02-17 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * Makerules (common-generated): Add libc_pic.os.
+
+1998-02-17 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * elf/rtld.c (dl_main): Use PT_PHDR to figure out the load address
+ of the executable.
+
+1998-02-18 10:28 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/m68k/fpu/t_exp.c: New file.
+
+1998-02-17 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/bits/errno.h (__set_errno): Don't assign
+ to global errno variable anymore.
+
+1998-02-17 17:41 Ulrich Drepper <drepper@cygnus.com>
+
+ * elf/dl-load.c (open_path): Take extra argument PRELOADED.
+ If PRELOADED is nonzero check in case of an SUID application
+ whether the shared object has the SUID bit set.
+ Fix some other problems with handling shared objects in system
+ specific directories.
+ (_dl_map_object): Also take extra parameter and pass it to open_path.
+ * elf/link.h (_dl_map_object): Correct prototype and comment.
+ * elf/rtld.c (dl_main): Call _dl_map_object correctly.
+ * elf/dl-open.c (_dl_open): Likewise.
+ * elf/dl-deps.c (openaux, _dl_map_object_deps): Likewise.
+
+ * sysdeps/libm-ieee754/s_modfl.c: Handle numbers > 1.0 correctly.
+
+1998-02-17 Ulrich Drepper <drepper@cygnus.com>
+
+ * math/libm-test.c (modf_test): Add test for 1.5.
+
+ * sysdeps/generic/bits/select.h (__FD_ISSET): Compare result with
+ 0 to get always an int.
+
+1998-02-17 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * math/libm.map: Move all symbols that are new in glibc 2.1 to
+ version GLIBC_2.1.
+
+1998-02-17 Ulrich Drepper <drepper@cygnus.com>
+
+ * stdio-common/vfscanf.c (inchar): Check c for being EOF before
+ trying to read another character.
+
+1998-02-05 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * nis/nss_nis/nis-alias.c (_nss_nis_getaliasbyname_r): Convert
+ name to lowercase.
+
+ * nis/nss_nis/nis-network.c (_nss_nis_getnetbyname_r): Convert
+ name to lowercase, add test for big enough buffer.
+
+1998-02-03 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * sysdeps/unix/sysv/linux/alpha/rt_sigaction.S (rt_sigreturn):
+ Make compatible with older kernels. Patch by Richard Henderson.
+
+1998-02-17 15:10 Ulrich Drepper <drepper@cygnus.com>
+
+ * elf/dl-load.c (open_path): Use __xstat instead of stat.
+
+ * localedata/tst-locale.sh: Comment out first test for now.
+
+1998-02-14 14:58 H.J. Lu <hjl@gnu.org>
+
+ * sysdeps/generic/_G_config.h (_G_HAVE_IO_GETLINE_INFO): Defined
+ as 1.
+ * sysdeps/unix/sysv/linux/_G_config.h (_G_HAVE_IO_GETLINE_INFO):
+ Likewise.
+
+ * libio/iogetline.c (_IO_getline_info): Renamed from
+ _IO_getline.
+ (_IO_getline): Just call _IO_getline_info.
+
+ * libio/libioP.h (_IO_getline_info): New declaration.
+
+ * libc.map (_IO_getline_info, __write): Added.
+
+1998-02-17 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * sunrpc/rpc_cout.c (inline_struct): Change typo of plus to
+ const char* to shut up gcc.
+
+1998-02-17 11:37 Ulrich Drepper <drepper@cygnus.com>
+
+ * elf/dl-open.c (_dl_open): Assign correct value to new->l_global.
+ Patch forwarded by Cristian Gafton <gafton@redhat.com>.
+
+ * math/math.h: Define M_* constants always as `double' and add new
+ macros M_*l which are of type `long double'.
+ * sysdeps/libm-ieee754/s_cacoshl.c: Use M_*l constants now.
+ * sysdeps/libm-ieee754/s_cacosl.c: Likewise.
+ * sysdeps/libm-ieee754/s_casinhl.c: Likewise.
+ * sysdeps/libm-ieee754/s_catanhl.c: Likewise.
+ * sysdeps/libm-ieee754/s_catanl.c: Likewise.
+ * sysdeps/libm-ieee754/s_clog10l.c: Likewise.
+ * sysdeps/libm-ieee754/s_clogl.c: Likewise.
+ * math/libm-tst.c: Likewise.
+
+ * sysdeps/i386/fpu/bits/mathinline.h (__M_SQRT2): Don't use _Mdbl,
+ define as long double unconditionally.
+
+1998-02-17 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * manual/arith.texi (Old-style number conversion): Correct some
+ typos.
+
+1998-02-16 16:28 H.J. Lu <hjl@gnu.org>
+
+ * time/Makefile (tz-cflags, CFLAGS-tzfile.c, CFLAGS-tzset.c):
+ Restore.
+
+ * timezone/Makefile (CFLAGS-tzfile.c, CFLAGS-tzset.c): Deleted.
+
+1998-02-16 Ulrich Drepper <drepper@cygnus.com>
+
+ * elf/Makefile ($(objpfx)ld.so): Don't depend on rtld-script but
+ on $(rtld-ldscript).
+
+ * sysdeps/unix/sysv/linux/alpha/ioperm.c (_ioperm): Map all ports
+ starting from 0 not only from `from'.
+ Patch by Maciej W. Rozycki <macro@ds2.pg.gda.pl>.
+
+1998-02-16 17:33 Ulrich Drepper <drepper@cygnus.com>
+
+ * elf/rtld.c (dl_main): Recognize --library-path parameter and
+ pass value (or NULL) to _dl_init_paths.
+ * elf/dl-load.c (_dl_init_paths): Change to take one parameter,
+ replacing local variable llp. If llp is NULL examine LD_LIBRARY_PATH
+ environment variable.
+ * elf/link.h: Change prototype for _dl_init_paths.
+ * elf/dl-support.c: Pass NULL in _dl_init_paths call.
+
+ * localedata/Makefile (distribute): Add test files.
+
+1998-02-17 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * localedata/tests/{test1.cm, test2.cm, test3.cm, test4.cm,
+ test1.def, test2.def, test3.def, test4.def}: Simple input files
+ for localedef. Contributed by Yung-Ching Hsiao
+ <yhsiao@cae.wisc.edu>.
+
+ * localedata/Makefile (tests): Call tst-locale.sh.
+
+ * localedata/tst-locale.sh: New file, regression tests for some
+ localedef problems.
+
+1998-02-15 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
+
+ * nis/nss_nisplus/nisplus-alias.c: Use __stpncpy.
+
+ * nis/nss_nisplus/nisplus-hosts.c: Make sure buffer is always NUL
+ terminated.
+ * nis/nss_nisplus/nisplus-network.c: Likewise.
+ * nis/nss_nisplus/nisplus-proto.c: Likewise.
+ * nis/nss_nisplus/nisplus-rpc.c: Likewise.
+ * nis/nss_nisplus/nisplus-service.c: Likewise.
+
+ Add more changes from TI-RPC 2.3 for rpcgen to fix include/C++ bug
+ and support generating thread safe RPC code.
+ * sunrpc/rpc_main.c: Add changes.
+ * sunrpc/rpc_clntout.c: Likewise.
+ * sunrpc/rpc_cout.c: Likewise.
+ * sunrpc/rpc_hout.c: Likewise.
+ * sunrpc/rpc_parse.c: Likewise.
+ * sunrpc/rpc_sample.c: Likewise.
+ * sunrpc/rpc_scan.c: Likewise.
+ * sunrpc/rpc_svcout.c: Likewise.
+ * sunrpc/rpc_util.c: Likewise.
+ * sunrpc/rpc_util.h: Add new structs and prototypes.
+ * sunrpc/proto.h: Remove prototypes for static functions.
+
+1998-02-15 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * locale/programs/ld-messages.c (messages_finish): Don't skip
+ error checking when being quiet.
+ * locale/programs/ld-ctype.c (ctype_finish): Likewise.
+ (set_class_defaults): Likewise.
+ * locale/programs/charmap.c (parse_charmap): Likewise.
+ * locale/programs/ld-collate.c (collate_finish): Likewise.
+ * locale/programs/ld-monetary.c (monetary_finish): Likewise.
+ * locale/programs/ld-time.c (time_finish): Likewise.
+ * locale/programs/locfile.c (write_locale_data): Likewise.
+
+ * locale/programs/ld-ctype.c (ctype_class_to): Silently ignore
+ unknown characters and empty ranges.
+ * locale/programs/ld-collate.c (collate_order_elem): When
+ processing an ellipsis properly form a linked list in the result
+ table, fix typo when allocating ordering array.
+ [PR libc/419]
+
+1998-02-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * elf/Makefile (ld-map): Define.
+ (rtld-ldscript): Define. Change all `$(objpfx)rtld-ldscript' to
+ `$(rtld-ldscript)'.
+ ($(objpfx)ld.so): Combine the two versions of this rule. Depend
+ on $(ld-map).
+ (rtld-link): Combine the two versions of this definition. Fixed
+ to make it work when no symbol versioning is used.
+
+1998-02-16 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makeconfig (build-program-cmd): Use --library-path parameter to
+ ld.so instead of environment variable.
+
+ * sunrpc/Makefile (rpcgen-cmd): Don't use -$ parameter.
+ * sunrpc/rpc_main.c: Remove support for -$$ option again.
+
+1998-02-16 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * Make-dist: Respect with-cvs setting.
+ * MakeTAGS (all-pot): Likewise.
+ * sysdeps/sparc/sparc32/Makefile: Likewise.
+ * sysdeps/mach/hurd/Makefile: Likewise.
+ * stdlib/Makefile: Likewise.
+ * posix/Makefile: Likewise.
+ * intl/Makefile: Likewise.
+ * po/Makefile (linguas): Likewise
+
+1998-02-15 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
+
+ * nis/ypclnt.c (yp_all): Remove error message, user should print it.
+
+1998-02-15 Ulrich Drepper <drepper@cygnus.com>
+
+ * libc.map: Add __strcasecmp.
+
+ * nss/nsswitch.c (__nss_lookup): Return 1 if this was the last
+ module.
+
+ * nss/getXXent_r.c: If no more module is found don't try to call
+ setXXent functions but leave unsuccessfully.
+
+ * malloc/obstack.h: Cleanups.
+
+ * sysdeps/wordsize-32/stdint.h: New file.
+ * sysdeps/wordsize-64/stdint.h: New file.
+ * sysdeps/generic/stdint.h: New file.
+ * sysdeps/wordsize-32/inttypes.h: Adopt to use stdint.h.
+ * sysdeps/wordsize-64/inttypes.h: Likewise.
+ * stdlib/Makefile (headers): Add stdint.h.
+
+1998-02-03 Paul Eggert <eggert@twinsun.com>
+
+ * malloc/obstack.h (PTR_INT_TYPE): Use __PTRDIFF_TYPE__ if available.
+
+1998-02-13 17:59 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ * timezone: New directory.
+ * time/README, time/africa, time/antarctica, time/asia,
+ time/australasia, time/backward, time/checktab.awk,
+ time/etcetera, time/europe, time/factory, time/ialloc.c,
+ time/iso3166.tab, time/leapseconds, time/northamerica,
+ time/pacificnew, time/private.h, time/scheck.c,
+ time/solar87, time/solar88, time/solar89, time/southamerica,
+ time/systemv, time/test-tz.c, time/tzfile.h,
+ time/tzselect.ksh, time/yearistype, time/zdump.c,
+ time/zic.c, time/zone.tab: Moved to timezone.
+ * time/tzfile.c: Include tzfile.h from timezone subdir.
+ * time/tzset.c: Likewise.
+ * time/Makefile: Cut out all code relating to timezones...
+ * timezone/Makefile: ...and paste it in here.
+ * Makefile (subdirs): Add timezone.
+
+1998-02-13 18:45 H.J. Lu <hjl@gnu.org>
+
+ * libc.map (_sys_nerr): Added.
+
+ * sysdeps/unix/sysv/linux/errlist.c (_sys_nerr): Make it
+ versioned symbol.
+
+1998-02-15 17:16 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/bits/socket.h: Define PF_KEY and
+ pseudo_AF_KEY instead of pseudo_PF_KEY and AF_KEY.
+ Reported by Craig Metz <cmetz@inner.net>.
+
+1998-01-22 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * nss/nss_files/files-parse.c (LOOKUP_NAME_CASE): Use __strcasecmp
+ instead of strcasecmp.
+ * nss/nss_files/files-alias.c (get_next_alias): Likewise.
+
+ * wctype/wctype.h (_ISwbit): Avoid warning with gcc before 2.8.
+
+1998-02-15 16:55 Ulrich Drepper <drepper@cygnus.com>
+
+ * socket/sys/socket.h (setsockopt): Make OPTVAL parameter const.
+ Patch by Dean Gaudet <dgaudet@arctic.org>.
+
+1998-02-15 16:53 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/generic/Dist: Add getresgid.c and getresuid.c.
+
+1998-02-15 10:49 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ * sysdeps/unix/sysv/linux/poll.c: If compiled against a kernel
+ with no poll syscall, just include the BSD version.
+ * sysdeps/unix/sysv/linux/getresuid.c: If compiled against a
+ kernel without the syscall, include the stub version.
+ * sysdeps/unix/sysv/linux/getresgid.c: Likewise.
+ * sysdeps/generic/getresuid.c: New file.
+ * sysdeps/generic/getresgid.c: New file.
+
+1998-02-15 Ulrich Drepper <drepper@cygnus.com>
+
+ * stdio-common/vfscanf.c: Correct last change a bit.
+
+1998-02-13 17:39 Ulrich Drepper <drepper@cygnus.com>
+
+ * elf/Makefile: Don't use --version-script parameter to link ld.so
+ unconditionally.
+
+1998-01-02 04:19 Geoff Keating <geoffk@ozemail.com.au>
+
+ * math/Makefile: Add t_exp.
+ * math/libm-test.c: Tighten accuracy bounds for exp(), correct
+ constants.
+ * math/test-reduce.c: Remove temporarily, it seems to be broken.
+ * sysdeps/libm-ieee754/e_exp.c: Use accurate table method.
+ * sysdeps/libm-ieee754/e_expf.c: Use table & double precision for
+ better accuracy.
+ * sysdeps/libm-ieee754/s_exp2.c: Use better polynomial; correct
+ algorithm for very large/very small arguments.
+ * sysdeps/libm-ieee754/s_exp2f.c: Use slightly better polynomial;
+ correct algorithm for very large/very small arguments; adjust for
+ new table.
+ * sysdeps/libm-ieee754/t_exp.c: New file.
+ * sysdeps/libm-ieee754/t_exp2f.h: Use table with smaller deltas.
+
+ * sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c: Put 'strange test'
+ back, with comment that explains what breaks when you remove it :-(.
+
+ * localedata/xfrm-test.c: Avoid integer overflow.
+
+ * stdlib/strfmon.c: char is unsigned, sometimes.
+
+ * sysdeps/powerpc/Makefile: Remove quad float support.
+ * sysdeps/powerpc/q_*.c: Remove, they will become an add-on.
+ * sysdeps/powerpc/quad_float.h: Likewise.
+ * sysdeps/powerpc/test-arith.c: Likewise.
+ * sysdeps/powerpc/test-arithf.c: Likewise.
+
+ * sysdeps/generic/s_exp2.c: Remove, we have this implemented now.
+ * sysdeps/generic/s_exp2f.c: Likewise.
+
+ * sysdeps/powerpc/bits/mathinline.h: Use underscores around __asm__,
+ don't try anything if _SOFT_FLOAT.
+
+1997-12-31 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * locale/C-ctype.c (_nl_C_LC_CTYPE_class32): Undo last change.
+ * locale/programs/ld-ctype.c (CHAR_CLASS32_TRANS): Likewise.
+ * wctype/wctype.c: Likewise.
+ * wctype/wctype.h (_ISwxxx): Renamed from _ISxxx, all uses
+ changed. They are incompatible with the _ISxxx values from
+ <ctype.h> on little endian machines.
+ (_ISwbit) [__BYTE_ORDER == __LITTLE_ENDIAN]: Correctly transform
+ bit number. This fixes the real bug and restores the integrity of
+ the ctype locale file.
+ * wctype/wcfuncs.c: Change all _ISxxx to _ISwxxx.
+ * wctype/wcfuncs_l.c: Likewise.
+ * wctype/wcextra.c: Likewise.
+ * wctype/wctype_l.c [__BYTE_ORDER == __LITTLE_ENDIAN]: Use correct
+ byte swapping.
+
+1998-02-09 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.S (errno): Put it
+ into .bss segment instead of .common, so that aliases on it work.
+
+ * sysdeps/unix/sysv/linux/i386/sysdep.S (errno): Add .type and
+ .size directives, put into .bss segment instead of initializing it
+ to 4.
+
+1998-02-12 08:00 H.J. Lu <hjl@gnu.org>
+
+ * libc.map (gnu_get_libc_release, gnu_get_libc_version): Added.
+
+ * version.c (__gnu_get_libc_release, __gnu_get_libc_version): New
+ functions.
+ Make names without __ weak aliases.
+ (__libc_release, __libc_version): Make them static.
+
+ * include/gnu/libc-version.h: New file.
+ * Makefile (headers): Add gnu/libc-version.h.
+
+1998-02-13 Ulrich Drepper <drepper@cygnus.com>
+
+ * stdlib/stdlib.h (struct drand48_data): Leave X to user macros
+ and use x for member name.
+ Reported by Daniel Lyddy <daniell@cs.berkeley.edu>.
+
+ * stdlib/drand48.c: Change according to member name change.
+ * stdlib/drand48_r.c: Likewise.
+ * stdlib/lcong48_r.c: Likewise.
+ * stdlib/lrand48.c: Likewise.
+ * stdlib/lrand48_r.c: Likewise.
+ * stdlib/mrand48.c: Likewise.
+ * stdlib/mrand48_r.c: Likewise.
+ * stdlib/seed48.c: Likewise.
+ * stdlib/seed48_r.c: Likewise.
+ * stdlib/srand48_r.c: Likewise.
+
+1998-02-11 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * nss/test-netdb.c: Add some more test cases.
+
+1998-02-13 11:39 Ulrich Drepper <drepper@cygnus.com>
+
+ * libio/iovsscanf.c: Undo last change modifying errno.
+
+1998-02-12 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * stdio-common/vfscanf.c: Never try to read another character
+ after EOF. Don't decrement read_in after EOF, it wasn't
+ incremented in the first place.
+ (NEXT_WIDE_CHAR): Set First, not first.
+
+1998-02-06 07:48 H.J. Lu <hjl@gnu.org>
+
+ * db/Makefile ($(inst_libdir)/libndbm.a,
+ $(inst_libdir)/libndbm.so): New targets.
+ * db2/Makefile: Likewise.
+
+1998-02-12 08:20 H.J. Lu <hjl@gnu.org>
+
+ * sysdeps/gnu/errlist.awk (sys_errlist, sys_nerr): Create weak
+ aliases if HAVE_ELF or PIC or DO_VERSIONING is not defined.
+
+1998-02-12 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/generic/_G_config.h: Define _G_wchar_t, for C++
+ <streambuf.h>.
+ * sysdeps/unix/sysv/linux/_G_config.h: Likewise.
+
+1998-02-11 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/unix/make-syscalls.sh: Fix sed pattern when dealing with
+ versioned symbols.
+
+1998-02-13 08:14 H.J. Lu <hjl@gnu.org>
+
+ * libc.map (_dl_global_scope, _dl_lookup_symbol_skip,
+ _dl_lookup_versioned_symbol, _dl_lookup_versioned_symbol_skip):
+ Added for libdl.so.
+
+1998-02-09 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/unix/sysv/linux/syscalls.list: Don't mark lchown as
+ extra syscall.
+
+ * grp/Makefile: Fix logic when checking for thread package.
+ * pwd/Makefile: Likewise.
+
+1998-02-11 08:23 H.J. Lu <hjl@gnu.org>
+
+ * elf/Makefile (rtld-map): Replaced by libc-map.
+
+ * elf/rtld.map: Removed.
+
+ * libc.map (__libc_enable_secure, _dl_catch_error,
+ _dl_check_all_versions, _dl_debug_initialize, _dl_debug_state,
+ _dl_default_scope, _dl_global_scope_end, _dl_init_next,
+ _dl_lookup_symbol, _dl_map_object, _dl_map_object_deps,
+ _dl_object_relocation_scope, _dl_relocate_object,
+ _dl_signal_error, _dl_starting_up, _dl_sysdep_start,
+ _r_debug): Added for ld.so.
+
+1998-02-10 08:38 H.J. Lu <hjl@gnu.org>
+
+ * libio/iofclose.c: Check PIC && DO_VERSIONING instead of
+ DO_VERSIONING.
+ * libio/iofdopen.c: Ditto.
+ * libio/iofopen.c: Ditto.
+ * libio/oldfileops.c: Ditto.
+
+ * libc.map (sys_nerr, _sys_errlist, sys_errlist): Added for
+ version GLIBC_2.1.
+
+ * sysdeps/unix/sysv/linux/Makefile (stdio-common): Removed
+ oldsiglist from sysdep_routines and shared-only-routines.
+
+ * sysdeps/unix/sysv/linux/errlist.c: New.
+ * sysdeps/unix/sysv/linux/errlist.h: New.
+ * sysdeps/unix/sysv/linux/sizes.h: New.
+ * sysdeps/unix/sysv/linux/alpha/sizes.h: New.
+ * sysdeps/unix/sysv/linux/sparc64/sizes.h: New.
+
+ * sysdeps/unix/sysv/linux/oldsiglist.c: Removed.
+
+ * sysdeps/unix/sysv/linux/siglist.c: Include <sizes.h>.
+ (__old_sys_siglist, __old_sys_sigabbrev): Use ELF .size
+ directive.
+
+ * sysdeps/unix/sysv/linux/siglist.h (OLD_SIGLIST_SIZE_STR): New.
+
+ * sysdeps/unix/sysv/linux/Dist (errlist.h, sizes.h.): Added.
+ (oldsiglist.c): Removed.
+
+ * sysdeps/gnu/errlist.awk (SYS_SIGLIST, SYS_NERR): New.
+ (_sys_siglist): Use SYS_SIGLIST instead.
+ (_sys_nerr): Use SYS_NERR instead.
+
+ * sysdeps/gnu/errlist.c: Rebuilt.
+
+1998-02-11 08:35 H.J. Lu <hjl@gnu.org>
+
+ * elf/Makefile (others-static): New, set to ldconfig.
+ ($(objpfx)ldconfig): Removed.
+
+ * Rules (binaries-all, binaries-static, binaries-shared): New.
+ Create targets for $(binaries-static) and $(binaries-shared).
+
+ * Makeconfig (+link-static, link-libc-static,
+ link-extra-libs-static): New for static linking.
+
+1998-02-11 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * manual/memory.texi (Using the Memory Debugger): Fix typo.
+
+ * math/libm-test.c (modf_test): Add one more test for modf.
+
+1998-02-11 14:39 Ulrich Drepper <drepper@happy.cygnus.com>
+
+ * sysdeps/unix/sysv/linux/i386/sigaction.c (__libc_missing_rt_sigs):
+ Rename from __libc_have_rt_sigs and leave as COMMON data.
+
+1998-02-11 08:30 H.J. Lu <hjl@gnu.org>
+
+ * sysdeps/libm-ieee754/w_powl.c (__powl): Use __finitel instead
+ of __finite.
+
+1998-02-11 19:16 Richard Henderson <rth@cygnus.com>
+
+ * stdlib/strtod.c (STRTOF): Don't call lshift with zero count.
+
+1998-02-11 16:56 Ulrich Drepper <drepper@happy.cygnus.com>
+
+ * misc/tst-efgcvt.c: Add yet more tests.
+ * misc/efgcvt_r.c: And correct for these tests again.
+ Reported by HJ Lu.
+
+ * isomac.c: Move to...
+ * stdlib/isomac.c: ...here.
+ * Makefile: Move rules for handling isomac...
+ * stdlib/Makefile: ...to here.
+
+1998-02-10 23:57 Ulrich Drepper <drepper@happy.cygnus.com>
+
+ * misc/tst-efgcvt.c: Add more tests.
+ * misc/efgcvt_r.c: Correct result for above new tests.
+
+1998-02-06 17:22 H.J. Lu <hjl@gnu.org>
+
+ * misc/efgcvt_r.c (fcvt_r, ecvt_r): Correctly handle
+ NDIGIT <= 0.
+
+1998-02-10 16:48 Philip Blundell <pb@nexus.co.uk>
+
+ * Makerules (install-no-libc.a-nosubdir): Don't install-bin (etc)
+ if the programs weren't built.
+
+1998-02-09 10:12 Philip Blundell <pb@nexus.co.uk>
+
+ * sysdeps/libm-ieee754/s_exp2.c (__ieee754_exp2): If we don't have
+ FE_TONEAREST, soldier on regardless and do the best we can.
+ * sysdeps/libm-ieee754/s_exp2f.c (__ieee754_exp2f): likewise.
+
+1998-02-5 17:20 Philip Blundell <pb@nexus.co.uk>
+
+ * sysdeps/standalone/filedesc.h: Define __need_FOPEN_MAX, not
+ _STDIO_H, before including <bits/stdio_lim.h>.
+
+ * sysdeps/standalone/arm/bits/errno.h (EOVERFLOW): Added.
+
+ * io/fts.c (fts_build): Don't try to use d_type if it doesn't
+ exist.
+
+ * sysdeps/arm/sys/ucontext.h: New file.
+
+1998-02-04 10:11 Philip Blundell <pb@nexus.co.uk>
+
+ * manual/stdio.texi (Formatted Output Functions): Explicitly say
+ that the return value from snprintf() does not count the
+ terminating NUL as a character.
+
+1998-02-10 16:57 Ulrich Drepper <drepper@happy.cygnus.com>
+
+ * manual/users.texi: Rewrite to describe correct POSIX behaviour,
+ add description for sete[ug]id and general cleanup.
+ Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
+
+1998-01-04 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * Makefile (parent-clean): Don't remove makefile fragments here.
+ (postclean): New variable.
+ (clean): Remove makefile fragments here.
+ (realclean distclean): Likewise. Pass sysdep-subdirs to sub-make.
+ (generated): Add isomac and isomanc.out.
+ * Makeconfig ($(common-objpfx)soversions.mk): Don't generate if
+ avoid-generated is set.
+ (postclean-generated): Add soversion.mk.
+ ($(common-objpfx)version.mk): Don't include if avoid-generated is
+ set.
+ * Makerules: Still need to include $(+sysdir_pfx)sysd-Makefile if
+ avoid-generated is set.
+ (common-generated): Add libc.so and libc.so$(libc.so-version).
+ (generated): Add versioned libraries.
+ (common-mostlyclean): Also remove %.so and %_pic.a.
+ * csu/Makefile (generated): Add abi-tag.h.
+ * db2/Makefile (extra-objs): Add getlong.o.
+ * elf/Makefile (generated): Add ld.so, ldd and
+ $(rtld-installed-name).
+ (others): Add ldconfig here instead of ldconfig.o to extra-objs.
+ * malloc/Makefile (generated): Add mtrace.
+ * po/Makefile: Don't include version.mk, not needed any more.
+ * sunrpc/Makefile (generated): Add rpc-proto.d and rpcgen.
+ * sysdeps/unix/Makefile: Fix local_lim.h -> bits/local_lim.h,
+ syscall.h -> sys/syscall.h.
+ (common-generated): Add s-proto.d.
+ (postclean-generated): Add sysd-syscalls.
+ * localedata/Makefile (test-output): Add all output files.
+ (generated): Add test-input and test-output.
+ (generated-dirs): Add all the dirs.
+
+1998-01-04 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * Makefile (test-output, generated, generated-dirs): New
+ variables.
+
+1998-02-10 16:57 Ulrich Drepper <drepper@happy.cygnus.com>
+
+ * resolv/nss_dns/dns-host.c: Various code cleanups.
+
+1998-02-09 08:10 H.J. Lu <hjl@gnu.org>
+
+ * resolv/gethnamaddr.c (getanswer): Fix the PTR/CNAME bug.
+ From Philip Blundell <pb@nexus.co.uk>.
+ * resolv/nss_dns/dns-host.c (getanswer_r): Ditto.
+
+1998-02-08 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * libc.map: Add .rem, .div, .mul, .udiv, .umul, .urem for Sparc.
+ Suggested by debian/sparc porters.
+
+1998-02-07 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * misc/tst-efgcvt.c: Totally rewritten, added a lot of new tests
+ for ecvt and fcvt.
+
+1998-02-10 16:32 Ulrich Drepper <drepper@happy.cygnus.com>
+
+ * sysdeps/unix/sysv/linux/ptsname.c (__ptsname_r): Use __xstat and
+ __fxstat instead of stat and fstat. Use namespace clean __stpcpy.
+
+ * signal/signal.h: Always define sigset_t if __need_sigset_t is
+ defined even if __USE_POSIX is not defined.
+
+1998-02-02 20:51 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ * sysdeps/unix/sysv/linux/ptsname.c (__ptsname_r): Correct last patch
+ to support obsolete tty major numbers correctly.
+
+1998-02-02 08:47 H.J. Lu <hjl@gnu.org>
+
+ * login/Makefile ($(inst_libexecdir)/pt_chown): Make the target
+ directory first and ignore install error.
+
+ * sysdeps/unix/sysv/linux/ptsname.c (__ptsname_r): Substract
+ 128 from ptyno and fix a typo for the BSD style pty.
+
+1998-02-01 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/unix/Makefile ($(common-objpfx)s-proto.d): Depend on all
+ syscalls.list's.
+
+1998-02-01 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Add
+ getresuid and getresgid.
+
+ * sysdeps/unix/sysv/linux/getresuid.c: New file.
+ * sysdeps/unix/sysv/linux/getresgid.c: New file.
+
+ * sysdeps/unix/sysv/linux/syscalls.list: Remove getres[ug]id, add
+ s_getres[ug]id.
+
+ * sysdeps/unix/sysv/linux/alpha/syscalls.list: Add getres[ug]id.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
+ * sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/syscalls.list: Likewise.
+
+1998-02-02 08:11 H.J. Lu <hjl@gnu.org>
+
+ * nscd/grpcache.c: Include <stdlib.h>.
+
+1998-02-01 16:01 H.J. Lu <hjl@gnu.org>
+
+ * stdlib/atoll.c: Fix comments.
+
+ * sysdeps/posix/ttyname.c: Ignore stdin/stdout/stderr.
+ * sysdeps/posix/ttyname_r.c: Ditto.
+
+1998-02-03 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * io/sys/stat.h: Define S_IFLNK and S_IFSOCK if __USE_BSD or
+ __USE_MISC, independent of __USE_UNIX98.
+
+1998-02-10 19:18 Ulrich Drepper <drepper@happy.cygnus.com>
+
+ * sysdeps/unix/sysv/linux/i386/sigaction.c (__libc_missing_rt_sigs):
+ Rename from __libc_have_rt_sigs and leave as COMMON data.
+
+1998-02-04 11:58 Richard Henderson <rth@twiddle.rth.home>
+
+ * Makeconfig (CFLAGS-.os): Kill -fno-common.
+ * Makerules (libc.so): Prelink libc_pic.a, allocating commons.
+
+ * libc.map (GLIBC_2.1): Add Linux/Alpha tv64 symbols.
+ * elf/rtld.map: New file. Needed to define the GLIBC_2.*
+ version symbols.
+ * include/libc-symbols.h (symbol_version, default_symbol_version):
+ Provide asm versions and correct !DO_VERSIONING versions.
+ * sysdeps/unix/make-syscalls.sh: Recognize version symbols in
+ the weak symbol list.
+
+ * sysdeps/unix/sysv/linux/sigaction.c (__libc_missing_rt_sigs):
+ Rename from __libc_have_rt_sigs and leave as COMMON data.
+ * sysdeps/unix/sysv/linux/sigpending.c: Likewise.
+ * sysdeps/unix/sysv/linux/sigprocmask.c: Likewise.
+ * sysdeps/unix/sysv/linux/sigsuspend.c: Likewise.
+
+1998-02-04 16:41 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ * sunrpc/Makefile: Correct dependencies of rpcgen.
+
+1998-02-10 03:00 Ulrich Drepper <drepper@happy.cygnus.com>
+
+ * nscd/Makefile: Fix test for available linuxthreads add-on.
+ Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
+
+1998-02-05 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * sysdeps/unix/sysv/linux/syscalls.list: Fix typo in lchown.
+
+1998-02-03 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * sysdeps/gnu/Makefile: Respect with-cvs variable.
+
+ * manual/errno.texi (Error Messages): Correct description of
+ strerror_r. Pointed out by jonas@bagge.se.
+
+1998-01-29 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * manual/socket.texi (Host Address Functions): Clarify description
+ of inet_network.
+
+1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/unix/grantpt.c (argv): Move const to toplevel.
+ (grantpt): Delete superfluous cast.
+
+1998-02-06 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * Makefile ($(inst_slibdir)/libc-$(version).so): Depend on
+ elf/ldso_install instead of elf/subdir_install.
+ (elf/ldso_install): New target.
+
+ * elf/Makefile (ldso_install): New target.
+
+1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/unix/sysv/linux/powerpc/socket.S: Really do the change
+ of 1998-01-06.
+
+1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * string/bits/string2.h (strcmp): Use __string2_1bptr_p only for
+ constant expressions.
+
+1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * nss/test-netdb.c: Include <unistd.h> for gethostname and "nss.h"
+ for __nss_configure_lookup.
+ (output_hostent): Remove unused variable.
+
+1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * string/tst-inlcall.c: Fix format string.
+
+1998-02-09 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * inet/netinet/in.h: Rename second parameter of bindresvport to
+ avoid buggy gcc warning. [PR libc/412]
+
+1998-02-04 18:04 Richard Henderson <rth@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/alpha/clone.S: Elide terminal ldgp for PROF.
+ * sysdeps/unix/sysv/linux/alpha/rt_sigaction.S: Fix typos.
+
+ * sysdeps/unix/sysv/linux/alpha/bits/time.h (struct timeval):
+ Follow POSIX and make tv_sec a time_t.
+ * sysdeps/unix/sysv/linux/alpha/getitimer.S: New file to handle
+ new tv64 syscall as well as fall back to tv32.
+ * sysdeps/unix/sysv/linux/alpha/getrusage.S: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/gettimeofday.S: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/select.S: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/setitimer.S: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/settimeofday.S: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/utimes.S: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/wait4.S: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/syscalls.list: Add tv32 entries.
+
+ * include/rpcsvc/nis.h: New. Bounce to nis/rpcsvc.
+ * include/rpcsvc/nis_tags.h: Likewise.
+ * include/rpcsvc/nislib.h: Likewise.
+
+1998-02-02 01:12 Ulrich Drepper <drepper@cygnus.com>
+
+ * libc.map: Add _h_errno.
+ * inet/herrno.c: Make _h_errno weak alias.
+
+ * login/Makefile (distribute): Add pty-internal.h.
+
+ * nscd/Makefile (distribute): Add all the files missing.
+
+ * signal/allocrtsig.c: Fix problem with recognizing whether RT sigs
+ are available.
+
+ * stdio-common/tstscanf.c: Rewrite a bit to continue after errors
+ and report status at the end.
+
+ * sysdeps/unix/sysv/linux/syscalls.list: Add lchown.
+
+ * sysdeps/unix/sysv/linux/i386/sysdep.S: Make errno an initialized
+ variable.
+ * sysdeps/unix/sysv/linux/powerpc/sysdep.c: Add alias _errno for errno.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.S: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.S: Likewise.
+
+1998-01-03 20:47 Mark Kettenis <kettenis@phys.uva.nl>
+
+ * configure.in: Fix --enable-add-ons code.
+
+1998-02-01 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * elf/rtld.c (dl_main): Allow ":" as separator for LD_PRELOAD. Patch
+ by Rudolf Leitgeb <leitgeb@leland.stanford.edu>.
+ [PR libc/441]
+
+ * sysdeps/generic/dl-cache.c (_dl_load_cache_lookup): Use first
+ occurence in cache. Reported by Rudolf Leitgeb
+ <leitgeb@leland.stanford.edu>.
+ [PR libc/440]
+
+1998-02-01 21:18 Ulrich Drepper <drepper@cygnus.com>
+
+ * libio/iovsscanf.c: Set errno to 0 before calling _IO_vfscanf so
+ that it never is EINTR (which is tested for in _IO_vfscanf).
+
+ * Makefile.in: Call sub-make with CVSOPTS.
+
+ * elf/Makefile (distribute): Add dl-procinfo.h.
+
+ * sysdeps/unix/sysv/linux/alpha/Dist: Add rt_sigaction.S.
+
+1998-02-01 15:54 Ulrich Drepper <drepper@cygnus.com>
+
+ * version.h (VERSION): Bump to 2.0.92.
+
+1998-01-31 Phil Blundell <philb@gnu.org>
+
+ * sysdeps/unix/sysv/linux/siglist.c (_sys_siglist): Additional weak
+ alias for __new_sys_siglist.
+
+1998-02-01 00:53 Ulrich Drepper <drepper@cygnus.com>
+
+ * grp/Makefile: Define USE_NSCD in CFLAGS for getgrnam_r.c and
+ getgrgid_r.c if thread package is available.
+ * pwd/Makefile: Likewise.
+ * grp/getgrnam_r.c: Remove USE_NSCD definition.
+ * grp/getgrgid_r.c: Likewise.
+ * pwd/getpwnam_r.c: Likewise.
+ * pwd/getpwuid_r.c: Likewise.
+
+1998-01-31 23:46 Ulrich Drepper <drepper@cygnus.com>
+
+ * nss/getXXbyYY_r.c: If NSS function reports too small buffer return
+ with error to allow user intervention.
+ * nss/getXXent_r.c: Likewise.
+
+1998-01-31 21:18 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/generic/dl-sysdep.c (_dl_show_aux): Print newline after
+ AT_PLATFORM string. Pretty print AT_BASE info.
+
+ * sysdeps/generic/dl-sysdep.c: Include <dl-procinfo.h>.
+ (_dl_show_aux): Call _dl_procinfo to print AT_HWCAP info.
+ * sysdeps/generic/dl-procinfo.h: New file.
+ * sysdeps/unix/sysv/linux/i386/dl-procinfo.h: New file.
+
+1998-01-31 20:52 Ulrich Drepper <drepper@cygnus.com>
+
+ * nscd/grpcache.c (cache_grpinit): Let calloc do the multiplication.
+
+ * nscd/pwdcache.c (cache_pwdinit): Use thread attribute to detach
+ thread and not pthread_detach.
+
+ * nscd/nscd.c: Rewrite to use argp instead of getopt.
+
+1998-01-31 Phil Blundell <philb@gnu.org>
+
+ * configure.in: Add --without-cvs option to suppress automatic
+ checkin of regenerated files.
+ * config.make.in: Likewise.
+ * Makefile: Respect with-cvs setting.
+ * Makerules: Likewise.
+
+ * configure.in: Allow the standalone ARM port to be configured.
+
+1998-01-31 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
+
+ * grp/getgrgid_r.c: Define USE_NSCD.
+ * grp/getgrnam_r.c: Likewise.
+ * pwd/getpwuid_r.c: Likewise.
+ * pwd/getpwnam_r.c: Likewise.
+
+ * sysdeps/unix/inet/Subdirs: Add nscd subdir.
+
+ * nss/getXXbyYY_r.c: Try at first nscd.
+
+ * nscd/Makefile: New, for the Name Switch Cache Daemon (nscd).
+ * nscd/connections.c: New file.
+ * nscd/dbg_log.c: New file.
+ * nscd/dbg_log.h: New file.
+ * nscd/grpcache.c: New file.
+ * nscd/nscd.c: New file.
+ * nscd/nscd.h: New file.
+ * nscd/nscd_conf.c: New file.
+ * nscd/nscd_stat.c: New file.
+ * nscd/pwdcache.c: New file.
+
+ * nscd/nscd_getgr_r.c: New, client code, linked into libc.
+ * nscd/nscd_getpw_r.c: Likewise.
+ * nscd/nscd_proto.h: New, prototypes for client functions.
+
+ * nscd/nscd.conf: New, example for a configuration file.
+ * nscd/nscd.init: New, example for a startup script.
+
+ * nscd/getgrgid_r.c: Old grp/getgrgid_r version, used from nscd to
+ avoid deadlocks.
+ * nscd/getgrnam_r.c: Likewise.
+ * nscd/getpwnam_r.c: Likewise.
+ * nscd/getpwuid_r.c: Likewise.
+
+1998-01-31 11:44 Ulrich Drepper <drepper@cygnus.com>
+
+ * intl/Makefile: Use CVSOPTS in cvs invocation.
+ * po/Makefile: Likewise.
+ * posix/Makefile: Likewise.
+ * stdlib/Makefile: Likewise.
+
+1998-01-31 11:18 Ulrich Drepper <drepper@cygnus.com>
+
+ * misc/efgcvt_r.c (fcvt_r): Handle illegal NDIGIT correctly.
+ [PR libc/410]
+ * misc/Makefile (tests): Add tst-efgcvt.
+ * misc/tst-efgcvt.c: New file.
+
+1998-01-31 00:21 Ulrich Drepper <drepper@cygnus.com>
+
+ * posix/regex.c: Add some more cleanups by Akim Demaille.
+
+1998-01-30 23:55 Ulrich Drepper <drepper@cygnus.com>
+
+ * signal/signal.h: Revert last change.
+ * string/strsignal.c: Regard signal number NSGI as illegal.
+ * sysdeps/unix/sysv/linux/siglist.c: Define array only with NSIG
+ members.
+
+1998-01-30 23:37 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makefile.in: Add comment about CVSOPTS Makefile variable.
+ * Makerules: Use CVSOPTS in cvs invocation.
+ * Makefile: Likewise.
+ * MakeTAGS: Likewise.
+ * Make-dist: Likewise.
+
+1998-01-30 22:37 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/generic/memmem.c: Correct last change.
+
+1998-01-30 22:12 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/Makefile [$(subdir)==nis]: Define
+ CFLAGS-ypclnt.c to -DUSE_BINDINGDIR=1.
+
+1998-01-30 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
+
+ * nis/ypclnt.c: Try at first to use the binding file from ypbind
+ before using RPC.
+
+1998-01-28 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * manual/memory.texi (Heap Consistency Checking): mcheck is
+ declared in <mcheck.h>.
+ Suggested by Jochen Voss <voss@mathematik.uni-kl.de> [PR libc/438]
+
+1998-01-28 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * sysdeps/generic/memmem.c (memmem): An empty needle is at the
+ beginning of haystack.
+
+1998-01-29 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * nss/nss_files/files-service.c: Correct last patch.
+
+1998-01-30 21:29 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c: Define
+ __libc_have_rt_sigs.
+ * sysdeps/sparc/sparc32/__longjmp.S: Define _SETJMP_H before
+ including <bits/setjmp.h>.
+ * sysdeps/sparc/sparc32/setjmp.S: Likewise.
+ Patch from the Debian glibc/SPARC package.
+
+1997-12-12 07:57 H.J. Lu <hjl@gnu.org>
+
+ * sysdeps/alpha/bzero.S: Fix a typo.
+ * sysdeps/alpha/htonl.S: Ditto.
+ * sysdeps/alpha/htons.S: Ditto.
+
+1998-01-30 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
+
+ * nis/nss_nis/nis-hosts.c: Convert hostname to lowercase for NIS query.
+
+1998-01-30 19:58 Ulrich Drepper <drepper@cygnus.com>
+
+ * include/cpio.h: Move to ...
+ * posix/cpio.h: ...here.
+
+ * locale/programs/ld-collate.c: Fix typo.
+
+ * signal/signal.h: Declare _sys_siglist with NSIG+1 elements.
+
+ * stdio-common/tiformat.c: Add checks for %#.0o and friends.
+
+ * login/utmp_file.c (pututline_file): Don't always report success
+ if similar entry is found. Patch by Mark M. Kettenis.
+
+1998-01-30 16:06 Philip Blundell <pb@nexus.co.uk>
+
+ * manual/Makefile: Don't try to install the info files if makeinfo
+ is not available.
+
+1998-01-30 12:05 Philip Blundell <pb@nexus.co.uk>
+
+ * sysdeps/unix/sysv/linux/bits/ioctls.h: Include a copy of the
+ kernel's network ioctls, rather than using <linux/sockios.h> to
+ get them. This way we are sure of maintaining compatibility if
+ the kernel interface should change.
+
+1998-01-30 15:52 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/Dist: Add netrose/rose.h.
+
+1998-01-25 19:54 Philip Blundell <Philip.Blundell@pobox.com>
+
+ * sysdeps/unix/sysv/linux/netrose/rose.h: New file.
+ * sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Install it.
+
+1998-01-27 22:29 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ Implement System V pseudoterminal handling.
+
+ * login/Makefile
+ (routines): Add getpt, grantpt, unlockpt, ptsname.
+ (libutil-routines): Remove pty. Add openpty, forkpty.
+ (distribute): New internal header pty-internal.h.
+ (others): Add the helper program, pt_chown.
+ (install-others): Install it, in $(libexecdir), mode 4755.
+
+ * login/pty-internal.h: New file.
+ * login/openpty.c: New file.
+ * login/forkpty.c: New file.
+ * login/programs/pt_chown.c: New file.
+
+ * libc.map: Add getpt, grantpt, unlockpt, ptsname, ptsname_r.
+ * stdlib/stdlib.h: Prototype them.
+
+ * config.make.in: Define $(libexecdir).
+ * Makeconfig: Define $(inst_libexecdir).
+
+ * sysdeps/generic/pty.c: Removed.
+ * sysdeps/unix/sysv/linux/pty.c: Removed.
+
+ * sysdeps/generic/getpt.c: Stub out.
+ * sysdeps/generic/grantpt.c: Likewise.
+ * sysdeps/generic/ptsname.c: Likewise.
+ * sysdeps/generic/unlockpt.c: Likewise.
+
+ * sysdeps/unix/grantpt.c: New file.
+ * sysdeps/unix/bsd/getpt.c: New file.
+ * sysdeps/unix/bsd/unlockpt.c: New file.
+ * sysdeps/unix/sysv/linux/getpt.c: New file.
+ * sysdeps/unix/sysv/linux/ptsname.c: New file.
+ * sysdeps/unix/sysv/linux/unlockpt.c: New file.
+
+1998-01-29 23:56 Ulrich Drepper <drepper@cygnus.com>
+
+ * localedata/locales/ru_RU: Fix YESEXPR. Patch by lav@yars.free.net.
+
+1998-01-29 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * nss/Makefile (tests): Add rule for test-netdb.c.
+
+ * nss/test-netdb.c: New file.
+
+1998-01-29 02:38 Ulrich Drepper <drepper@cygnus.com>
+
+ * elf/dl-open.c (_dl_open): Make sure the variable `reloc' is
+ really kept as a variable. Patch by Richard Henderson,
+ reported by Jakub Jelinek <jj@sunsite.ms.mff.cuni.cz>.
+
+ * elf/rtld.c (dl_main): Call _dl_init_paths before handling preloading.
+ * elf/genrtldtbl.awk: Mark machine dependent directory of generated
+ entries as not existing.
+
+1998-01-26 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * stdio-common/vfprintf.c (process_arg): Fix printing of octal
+ zero in alternate form with precision of zero, which must produce
+ "0". Add braces to avoid ambiguous `else'.
+
+1998-01-26 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
+
+ * nis/nss_compat/compat-grp.c: Fix memory leak and trailing null
+ problem with strncpy.
+ * nis/nss_compat/compat-pwd.c: Likewise.
+ * nis/nss_compat/comapt-spwd.c: Likewise.
+
+1998-01-28 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * assert/assert.h (assert_perror): Correct test for errnum. Patch
+ by uch@nop.or.jp. [PR libc/437]
+
+1998-01-26 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * nis/nis_cache.c: Include <unistd.h> for declaration of close.
+
+1998-01-06 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * stdio-common/test-popen.c: Include <errno.h>.
+
+ * sysdeps/unix/sysv/linux/if_index.c: Include <unistd.h> for
+ close.
+
+ * inet/getnetgrent_r.c: Include <errno.h>.
+
+ * db2/db/db_conv.c: Include <string.h> for memcpy.
+
+ * gmon/bb_exit_func.c: Include <string.h> instead of <strings.h>
+ so that memcpy is declared.
+
+ * iconv/iconv_open.c: Include <stdlib.h> for alloca.
+
+ * misc/init-misc.c: Remove unneeded inclusion of <errno.h>.
+
+1998-01-26 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * pwd/fgetpwent_r.c (__fgetpwent_r): Correctly handle buffer
+ overflow while reading line with fgets.
+ * grp/fgetgrent_r.c (__fgetgrent_r): Likewise.
+
+1998-01-27 00:46 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/bits/types.h (__ipc_pid_t): Change to
+ unsigned short, not short.
+ Reported by Andreas Jaeger.
+
+1998-01-06 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * sysdeps/unix/sysv/linux/mips/syscalls.list: Correct typo
+ (ccept->accept).
+
+ * sysdeps/generic/inttypes.h: Fix spelling.
+
+1998-01-04 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * sysdeps/unix/sysv/linux/arm/Dist: Add bits/mman.h.
+
+ * sysdeps/unix/sysv/linux/alpha/Dist: Add net/route.h.
+
+1998-01-27 00:30 Ulrich Drepper <drepper@cygnus.com>
+
+ * stdio-common/printf.h (struct print_info): Add new bitfield is_char.
+ * stdio-common/printf-parse.h (parse_one_spec): Fill in is_char
+ field for hh modifier.
+ * stdio-common/vfprint.c: Use is_char field and do not depend in
+ is_short having the value 2.
+ Bug reported by Andreas Jaeger.
+
+1998-01-05 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * libio/freopen.c (freopen): Call _IO_old_freopen only if defined
+ PIC && DO_VERSIONING.
+
+1998-01-24 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * Rules: Add rules for $(common-objpfx)dummy$o.
+
+1998-01-26 Richard Henderson <rth@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/alpha/bits/mman.h: Dyke out the
+ unimplemented OSF/1 definitions so that they are not accidentally seen.
+
+ * sysdeps/alpha/dl-machine.h (TRAMPOLINE_TEMPLATE): Move declaration
+ of the trampoline function into the macro.
+ * sysdeps/unix/sysv/linux/alpha/clone.S: Fix ldgp for PROF.
+ * sysdeps/unix/sysv/linux/alpha/syscalls.list: Revert last change;
+ kernel 2.1.82 has this fixed.
+
+ * sysdeps/unix/sysv/linux/alpha/rt_sigaction.S: New file.
+ * sysdeps/unix/sysv/linux/alpha/sys/ucontext.h: New file.
+
+1998-01-26 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/alpha/syscalls.list: Add change to
+ support sigaction on kernels > 2.1.7x.
+
+1998-01-01 13:52 Ulrich Drepper <drepper@cygnus.com>
+
+ * elf/dl-misc.c (_dl_sysdep_read_whole_file): Don't map the file
+ if it is empty.
+
+ * elf/rtld.c (dl_main): Correct parsing of ld.so.preload file.
+ Patch by David Engel <david@sw.ods.com>.
+
+ * configure.in: Fix another typo in --enable-add-ons code.
+
+1998-01-26 03:48 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/siglist.c: Add copyright text.
+
+1998-01-26 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * nss/nss_files/files-network.c: Correct order of parameters for
+ getnetbyaddr.
+
+1998-01-26 00:57 Ulrich Drepper <drepper@cygnus.com>
+
+ * db2/Makefile (routines): Add os_alloc.
+ * db2/db.h: Update from db-2.3.16.
+ * db2/db_185.h: Likewise.
+ * db2/db_int.h: Likewise.
+ * db2/btree/bt_close.c: Likewise.
+ * db2/btree/bt_cursor.c: Likewise.
+ * db2/btree/bt_delete.c: Likewise.
+ * db2/btree/bt_open.c: Likewise.
+ * db2/btree/bt_page.c: Likewise.
+ * db2/btree/bt_put.c: Likewise.
+ * db2/btree/bt_rec.c: Likewise.
+ * db2/btree/bt_recno.c: Likewise.
+ * db2/btree/btree_auto.c: Likewise.
+ * db2/common/db_appinit.c: Likewise.
+ * db2/common/db_apprec.c: Likewise.
+ * db2/common/db_err.c: Likewise.
+ * db2/common/db_region.c: Likewise.
+ * db2/common/db_shash.c: Likewise.
+ * db2/db/db.c: Likewise.
+ * db2/db/db_auto.c: Likewise.
+ * db2/db/db_conv.c: Likewise.
+ * db2/db/db_dispatch.c: Likewise.
+ * db2/db/db_dup.c: Likewise.
+ * db2/db/db_pr.c: Likewise.
+ * db2/db/db_rec.c: Likewise.
+ * db2/db185/db185.c: Likewise.
+ * db2/dbm/dbm.c: Likewise.
+ * db2/hash/hash.c: Likewise.
+ * db2/hash/hash_auto.c: Likewise.
+ * db2/hash/hash_dup.c: Likewise.
+ * db2/hash/hash_page.c: Likewise.
+ * db2/hash/hash_rec.c: Likewise.
+ * db2/include/btree_ext.h: Likewise.
+ * db2/include/clib_ext.h: Likewise.
+ * db2/include/common_ext.h: Likewise.
+ * db2/include/db.h.src: Likewise.
+ * db2/include/db_185.h.src: Likewise.
+ * db2/include/db_am.h: Likewise.
+ * db2/include/db_ext.h: Likewise.
+ * db2/include/db_int.h.src: Likewise.
+ * db2/include/hash_ext.h: Likewise.
+ * db2/include/lock_ext.h: Likewise.
+ * db2/include/log.h: Likewise.
+ * db2/include/log_auto.h: Likewise.
+ * db2/include/log_ext.h: Likewise.
+ * db2/include/mp.h: Likewise.
+ * db2/include/mp_ext.h: Likewise.
+ * db2/include/mutex_ext.h: Likewise.
+ * db2/include/os_ext.h: Likewise.
+ * db2/include/os_func.h: Likewise.
+ * db2/include/txn_ext.h: Likewise.
+ * db2/lock/lock.c: Likewise.
+ * db2/lock/lock_util.c: Likewise.
+ * db2/log/log.c: Likewise.
+ * db2/log/log.src: Likewise.
+ * db2/log/log_archive.c: Likewise.
+ * db2/log/log_auto.c: Likewise.
+ * db2/log/log_get.c: Likewise.
+ * db2/log/log_put.c: Likewise.
+ * db2/log/log_rec.c: Likewise.
+ * db2/log/log_register.c: Likewise.
+ * db2/mp/mp_bh.c: Likewise.
+ * db2/mp/mp_fget.c: Likewise.
+ * db2/mp/mp_fopen.c: Likewise.
+ * db2/mp/mp_fput.c: Likewise.
+ * db2/mp/mp_pr.c: Likewise.
+ * db2/mp/mp_sync.c: Likewise.
+ * db2/mutex/mutex.c: Likewise.
+ * db2/os/os_alloc.c: Likewise.
+ * db2/os/os_config.c: Likewise.
+ * db2/os/os_stat.c: Likewise.
+ * db2/progs/db_checkpoint/db_checkpoint.c: Likewise.
+ * db2/progs/db_deadlock/db_deadlock.c: Likewise.
+ * db2/progs/db_load/db_load.c: Likewise.
+ * db2/progs/db_printlog/db_printlog.c: Likewise.
+ * db2/progs/db_recover/db_recover.c: Likewise.
+ * db2/progs/db_stat/db_stat.c: Likewise.
+ * db2/txn/txn.c: Likewise.
+
+ * elf/dl-close.c (_dl_close): Rename inner variable named map to imap.
+ Unmap memory blocks in reverse order of allocation.
+ Call munmap with load address added to offset.
+ Bug reported by Miguel de Icaza.
+
+ * locale/programs/ld-collate.c (collate_end_weight): Correctly fill
+ up weight array.
+
+ * localedata/locales/cs_CZ: Update by Michael Mraka
+ <michael@informatics.muni.cz>.
+
+ * misc/sys/syslog.h: Reformat a bit. Don't declare vsyslog unless
+ __USE_BSD.
+
+ * nis/nss_compat/compat-grp.c: Correctly handle buffer overflow while
+ reading line with fgets.
+ * nis/nss_compat/compat-pwd.c: Likewise.
+ * nis/nss_compat/compat-spwd.c: Likewise.
+ * nss/nss_files/files-XXX.c: Likewise.
+ * nss/nss_files/files-alias.c: Likewise.
+ * shadow/fgetspent_r.c: Likewise.
+
+ * string/strerror_r.c: Correct comment. Patch by Andreas Jaeger.
+
+ * sysdeps/unix/sysv/linux/bits/stat.h: Define _STATBUF_ST_RDEV.
+ * sysdeps/unix/sysv/linux/alpha/bits/stat.h: Likewise.
+ * sysdeps/unix/sysv/linux/mips/bits/stat.h: Likewise.
+
+ * sysdeps/unix/sysv/linux/i386/sys/ucontext.h: Allocate room for
+ FP register content in ucontext_t.
+
+1998-01-22 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * sysdeps/libm-ieee754/s_modfl.c (modf): Correct
+ calculation. Patch by Markus Schoder
+ <Markus.Schoder@dresdner-bank.de>.
+
+ * math/libm-test.c (modf_test): Add more tests for modf.
+
+ * sysdeps/unix/sysv/linux/sys/mman.h: Add const to mlock and
+ munlock according to Unix98.
+
+1998-01-25 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * nss/nss_files/files-network.c (LINE_PARSER): Set n_addrtype to
+ AF_INET.
+
+1998-01-21 07:22 H.J. Lu <hjl@gnu.org>
+
+ * sysdeps/posix/ttyname.c: Handle symbolic links.
+ * sysdeps/posix/ttyname_r.c: Ditto.
+
+1998-01-25 19:39 Ulrich Drepper <drepper@cygnus.com>
+
+ * db2/makedb.c (process_input): Write terminating \0 for value.
+ (print_database): Simply print value string, don't use length.
+
+1998-01-24 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * nss/nsswitch.c (__nss_configure_lookup): Correct test for early
+ exit of loop.
+
+1998-01-25 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
+
+ * nis/ypclnt.c: Don't set dom_client to NULL, or we will not
+ close all sockets.
+
+1998-01-25 14:54 Ulrich Drepper <drepper@cygnus.com>
+
+ * signal/Makefile (routines): Add sighold, sigrelse, sigignore, and
+ sigset.
+ * signal/sighold.c: New file.
+ * signal/sigrelse.c: New file.
+ * sysdeps/generic/sigignore.c: New file.
+ * sysdeps/generic/sigset.c: New file.
+ * sysdeps/posix/sigignore.c: New file.
+ * sysdeps/posix/sigset.c: New file.
+ * signal/signal.h: Add prototypes for new functions.
+
+ * sysdeps/unix/sysv/linux/alpha/bits/signum.h: Define SIG_HOLD.
+ * sysdeps/unix/sysv/linux/bits/signum.h: Likewise.
+ * sysdeps/unix/sysv/linux/mips/bits/signum.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/bits/signum.h: Likewise.
+
+1998-01-23 00:16 Tim Waugh <tim@cyberelk.demon.co.uk>
+
+ * posix/wordexp.c: Added IFS field-splitting in parameter and
+ command substitution. Fixed an IFS-related bug that caused an
+ infinite loop.
+
+1998-01-25 12:38 Ulrich Drepper <drepper@cygnus.com>
+
+ * stdlib/Makefile (routines): Add getcontext, setcontext, makecontext,
+ and swapcontext.
+ * stdlib/ucontext.h: Correct prototypes.
+ * sysdeps/generic/getcontext.c: New file.
+ * sysdeps/generic/setcontext.c: New file.
+ * sysdeps/generic/makecontext.c: New file.
+ * sysdeps/generic/swapcontext.c: New file.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/Makefile: Removed.
+
+1998-01-25 04:07 Ulrich Drepper <drepper@cygnus.com>
+
+ * resource/sys/resource.h: Remove #include of ulimit.h which is
+ not allowed by SUSv2 and not available on other systems.
+ * sysdeps/unix/sysv/linux/ulimit.c: Include ulimit.h.
+
+ * streams/Makefile: New file.
+ * streams/stropts.h: New file.
+ * sysdeps/generic/bits/stropts.h: New file.
+ * sysdeps/generic/isastream.c: New file.
+ * sysdeps/generic/getmsg.c: New file.
+ * sysdeps/generic/getpmsg.c: New file.
+ * sysdeps/generic/putmsg.c: New file.
+ * sysdeps/generic/putpmsg.c: New file.
+ * sysdeps/generic/fattach.c: New file.
+ * sysdeps/generic/fdetach.c: New file.
+ * sysdeps/unix/inet/Subdirs: Add streams.
+ * sysdeps/generic/bits/types.h: Add definition of __t_scalar_t and
+ __t_uscalar_t.
+ * sysdeps/unix/sysv/linux/bits/types.h: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/bits/types.h: Likewise.
+ * sysdeps/unix/sysv/linux/mips/bits/types.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/bits/types.h: Likewise.
+
+ * sysdeps/mach/_strerror.c: Follow changes of generic version to
+ handle small buffers correctly.
+
+1998-01-24 17:31 H.J. Lu <hjl@gnu.org>
+
+ * sysdeps/alpha/dl-machine.h (ELF_MACHINE_RUNTIME_TRAMPOLINE):
+ Remove the 3rd arg and add declaration for _dl_runtime_resolve
+ and _dl_runtime_profile.
+
+1998-01-25 02:42 Ulrich Drepper <drepper@cygnus.com>
+
+ * include/cpio.h: New file. Mainly copied from GNU cpio.
+ * posix/Makefile (headers): Add cpio.h.
+
+1998-01-24 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
+
+ * nis/Makefile: Distribute nis_cache2.h, add nis cache functions
+ to routines.
+ * nis/nis_cache.c: New file.
+ * nis/nis_cache2.h: New file.
+ * nis/nis_cache2_xdr.c: New file.
+ * nis/nis_call.c: Changes for cache2_info parameter.
+ * nis/nis_checkpoint.c: Likewise.
+ * nis/nis_intern.h: Likewise.
+ * nis/nis_mkdir.c: Likewise.
+ * nis/nis_ping.c: Likewise.
+ * nis/nis_rmdir.c: Likewise.
+ * nis/nis_server.c: Likewise.
+ * nis/nis_util.c: Likewise.
+
+1997-12-30 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
+
+ * nis/nss_nisplus/nisplus-alias.c: Fix bogus if case and
+ return/errnop codes.
+ * nis/nss_nisplus/nisplus-ethers.c: Likewise.
+ * nis/nss_nisplus/nisplus-grp.c: Likewise.
+ * nis/nss_nisplus/nisplus-hosts.c: Likewise.
+ * nis/nss_nisplus/nisplus-proto.c: Likewise.
+ * nis/nss_nisplus/nisplus-publickey.c: Likewise.
+ * nis/nss_nisplus/nisplus-pwd.c: Likewise.
+ * nis/nss_nisplus/nisplus-rpc.c: Likewise
+ * nis/nss_nisplus/nisplus-service.c: Likewise.
+ * nis/nss_nisplus/nisplus-spwd.c: Likewise.
+
+1997-12-28 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
+
+ * nis/nss_nis/nis-alias.c: Use errnop, not __set_errno().
+ * nis/nss_nis/nis-ethers.c: Likewise.
+ * nis/nss_nis/nis-grp.c: Likewise.
+ * nis/nss_nis/nis-hosts.c: Likewise.
+ * nis/nss_nis/nis-network.c: Likewise.
+ * nis/nss_nis/nis-proto.c: Likewise.
+ * nis/nss_nis/nis-hosts.c: Likewise.
+ * nis/nss_nis/nis-network.c: Likewise.
+ * nis/nss_nis/nis-proto.c: Likewise.
+ * nis/nss_nis/nis-publickey.c: Likewise.
+ * nis/nss_nis/nis-pwd.c: Likewise.
+ * nis/nss_nis/nis-rpc.c: Likewise.
+ * nis/nss_nis/nis-service.c: Likewise.
+ * nis/nss_nis/nis-spwd.c: Likewise.
+
+1998-01-24 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/net/if.h (ifr_bandwidth, ifr_qlen):
+ Added to follow latest kernel development.
+
+1998-01-24 15:13 Ulrich Drepper <drepper@happy.cygnus.com>
+
+ * nss/db-Makefile: Handle empty and comment lines better.
+ ($(VAR_DB)/services.db): Generate entries with missing protocol
+ value.
+
+1998-01-23 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * nss/nss_files/files-service.c (getservbyport): Allow proto ==
+ NULL.
+ (getservbyname): Allow proto == NULL.
+ Pointed out by David N. Welton <davidw@gate.cks.com>.
+ [PR libc/430].
+
+1998-01-24 11:34 Ulrich Drepper <drepper@happy.cygnus.com>
+
+ * nis/nislib/nislib.h: Finally removed.
+
+ * lib/mktime.c (__mktime_internal): Work around bug in Irix4.0.5's
+ C compiler. From Kaveh Ghazi.
+ (TYPE_MINIMUM): Define.
+ (TYPE_MAXIMUM): Define.
+ (TIME_T_MIN): Use TYPE_MINIMUM.
+ (TIME_T_MAX): Use TYPE_MAXIMUM.
+ Patch by Jim Meyering <meyering@ascend.com>.
+
+1998-01-22 00:55 Ulrich Drepper <drepper@happy.cygnus.com>
+
+ * libc.map: Add __libc_uid, __libc_pid, __syscall_rt_sigqueueinfo,
+ __pread64, __pwrite64, and __getpid.
+
+ * rt/aio_misc.c: Use pread and pwrite instead of __ protected
+ versions.
+
+1998-01-06 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/unix/sysv/linux/alpha/syscalls.list: Define the
+ cancelable socket functions as __libc_xxx with __xxx as weak
+ alias.
+ * sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
+
+ * sysdeps/unix/sysv/linux/m68k/socket.S: Allow __socket to be
+ redefined.
+ * sysdeps/unix/sysv/linux/i386/socket.S: Likewise.
+ * sysdeps/unix/sysv/linux/arm/socket.S: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/socket.S: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Likewise.
+
+ * sysdeps/unix/sysv/linux/accept.S: Make __libc_xxx the main name
+ and __xxx a weak alias.
+ * sysdeps/unix/sysv/linux/connect.S: Likewise.
+ * sysdeps/unix/sysv/linux/recv.S: Likewise.
+ * sysdeps/unix/sysv/linux/recvfrom.S: Likewise.
+ * sysdeps/unix/sysv/linux/recvmsg.S: Likewise.
+ * sysdeps/unix/sysv/linux/send.S: Likewise.
+ * sysdeps/unix/sysv/linux/sendmsg.S: Likewise.
+ * sysdeps/unix/sysv/linux/sendto.S: Likewise.
+
+1998-01-21 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * locale/langinfo.h: Add defines.
+
+ * dirent/dirent.h: Add defines for DT_*, check also for
+ _DIRENT_HAVE_D_TYPE.
+ Suggested by Roland McGrath.
+
+1998-01-16 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * sysdeps/unix/sysv/linux/netinet/ip_fw.h:
+ Update from Linux 2.1.73+79.
+
+ * README.template: Update information about possible
+ configurations.
+
+ * manual/mbyte.texi (Wide String Conversion): Fix declaration of
+ wcstombs. Pointed out by Jochen Voss <voss@mathematik.uni-kl.de>.
+ [PR libc/417].
+
+ * manual/time.texi (Priority): Correct description of
+ PRIO_MAX. Pointed out by Jochen Voss <voss@mathematik.uni-kl.de>.
+ [PR libc/416].
+
+11998-01-21 21:34 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/alpha/fpu/bits/mathdef.h: Add definition of FP_ILOGB0 and
+ FP_ILOGNAN. Patch by a sun <asun@zoology.washington.edu>.
+
+1998-01-21 17:53 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/generic/_strerror.c: Handle BUFLEN == 0. Reported by
+ Andreas Jaeger.
+
+1998-01-20 18:13 Ulrich Drepper <drepper@cygnus.com>
+
+ * locale/programs/ld-collate.c: Little optimizations.
+
+ * stdio-common/xbug.c: Unset LD_LIBRRARY_PATH variable.
+
+ * string/Makefile (tests): Add tst-inlcall.
+ * string/tst-inlcall.c: New file.
+
+ * string/strsignal.c: Add support for real-time signals.
+
+ * sysdeps/generic/_strerror.c: Fix Handling of unknown error in
+ presense of small buffer.
+
+ * sysdeps/i386/bits/string.h: Define _HAVE_STRING_ARCH_* macros.
+
+ * sysdeps/i386/i486/bits/string.h: Correct strrchr implementation
+ for i686.
+
+ * sysdeps/unix/sysv/linux/siglist.c: Change length of arrays to
+ _NSIG + 1.
+
+1998-01-02 15:10 Matthias Urlichs <urlichs@noris.de>
+
+ * Rules: Add explicit rule for dummy.o; at least one library needs
+ it and it isn't autogenerated by the default rules.
+
+1997-12-31 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * math/libm-test.c: Tweak epsilons.
+
+1997-12-31 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * math/test-fenv.c (feenv_nomask_test): Avoid dumping core in the
+ child.
+ (feenv_mask_test): Likewise.
+
+1998-01-01 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * Makeconfig: Don't export CPPFLAGS.
+
+1998-01-01 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sunrpc/rpc_main.c (parseargs): Use perror to print error
+ message.
+
+1998-01-15 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * nss/nss_db/db-alias.c (_nss_db_getaliasent_r): Don't include
+ terminating null in key size.
+
+1998-01-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * nss/nss_files/files-service.c: Fix allocation size to include
+ length of PROTO.
+
+ * nss/nss_db/db-XXX.c (lookup): Always set errno and h_errno if
+ applicable. Fix return value and error checking.
+ (CONCAT(_nss_db_get,ENTNAME_r)): Loop around to skip over
+ unparsable lines.
+ (DB_LOOKUP): Allocate space for terminating null byte.
+
+ * nss/db-Makefile ($(VAR_DB)/passwd.db): Don't handle duplicate
+ uids specially.
+
+ * db2/makedb.c (process_input): Continue processing if a duplicate
+ key is encountered.
+
+1998-01-19 15:20 Ulrich Drepper <drepper@cygnus.com>
+
+ * time/tzfile.h: Updated from tzcode1998b.
+ * time/zdump.c: Likewise.
+ * time/zic.c: Likewise.
+ * time/africa: Update from tzdata1998b.
+ * time/antarctica: Likewise.
+ * time/asia: Likewise.
+ * time/australasia: Likewise.
+ * time/etcetera: Likewise.
+ * time/europe: Likewise.
+ * time/leapseconds: Likewise.
+ * time/northamerica: Likewise.
+ * time/southamerica: Likewise.
+
+1998-01-12 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * nss/nss_files/files-alias.c (get_next_alias): Do mail alias
+ lookups ignoring case.
+ * nss/nss_files/files-network.c: Do network lookups ignoring
+ case.
+ * nss/nss_files/files-hosts.c: Do hostname lookups ignoring
+ case.
+ * nss/nss_files/files-parse.c (LOOKUP_NAME_CASE): New macro for
+ case insensitive comparing.
+ Patches by Cristian Gafton <gafton@redhat.com>.
+
+1998-01-09 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * sysdeps/unix/sysv/linux/net/if.h: Add IFF_*defines. Suggested
+ by Roland McGrath. [PR libc/395]
+
+1998-01-08 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * manual/arith.texi (Parsing of Integers): Correct description of
+ strtoul. Pointed out by Scott Snyder <snyder@fnald0.fnal.gov>.
+ [PR libc/396]
+
+1997-12-30 14:14 Matthias Urlichs <urlichs@noris.de>
+
+ * misc/lsearch.c (lsearch): Return a pointer to the new element
+ if one was "allocated".
+
+1997-12-26 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * string/strsignal.c: NSIG is not a valid index into
+ _sys_siglist. Don't zap the last character of the "Unknown
+ signal" message.
+
+1998-01-19 15:08 Ulrich Drepper <drepper@cygnus.com>
+
+ * locale/programs/charmap.c (parse_charmap): Correct parsing of
+ ellipsis expressions.
+
+ * locale/programs/charset.c (insert_char): Correctly insert value
+ of eliipsis expression.
+
+1997-12-28 15:08 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/powerpc/__longjmp.S: Define _SETJMP_H before including
+ <bits/setjmp.h>.
+ * sysdeps/powerpc/setjmp.S: Likewise.
+ Patches by Matt McLean <keys@keys.got.net>.
+
+ * Make-dist (sysdep_dirs): Ignore bits dirs while searching.
+
+ * Makefile: Undo last patch.
+ (distribute): Add test-installation.pl.
+
+ * configure.in: Correct handling of --enable-add-ons without parameter.
+ Correct address of WWW pages.
+
+ * libc.map: Add _nl_domain_bindings.
+
+ * db2/mutex/tsl_parisc.s: New file.
+
+ * iconvdata/Makefile (distribute): Add jis0201.c, jis0208.c, jis0212.c,
+ and extra-module.mk.
+
+ * localedata/Makefile (distribute): New. Add all the files.
+
+ * stdlib/Makefile (headers): Add inttypes.h.
+ (routines): Add strtoimax, strtoumax, wcstoimax, and wcstoumax.
+ * sysdeps/generic/inttypes.h: New file.
+ * sysdeps/generic/strtoimax.c: New file.
+ * sysdeps/generic/strtoumax.c: New file.
+ * sysdeps/generic/wcstoimax.c: New file.
+ * sysdeps/generic/wcstoumax.c: New file.
+ * sysdeps/wordsize-32/Dist: Removed.
+ * sysdeps/wordsize-32/Makefile: Removed.
+ * sysdeps/wordsize-64/Dist: Removed.
+ * sysdeps/wordsize-64/Makefile: Removed.
+ * sysdeps/generic/bits/environments.h: New file.
+
+ * include/limits.h: Define MB_LEN_MAX in any case to 6. The gcc
+ header is still not correct.
+
+ * io/fcntl.h [__USE_FILE_OFFSET64]: We have to use the __*64 types.
+ * posix/unistd.h: Likewise.
+ * sysdeps/generic/sys/mman.h: Likewise.
+ * sysdeps/unix/sysv/linux/sys/mman.h: Likewise.
+
+ * manual/arith.texi: Change definition of mul macro.
+ * manual/math.texi: Likewise.
+
+ * misc/Makefile (routines): Add mmap64.
+ * sysdeps/generic/mmap64.c: New file.
+ * sysdeps/unix/sysv/linux/alpha/mmap64.c: New file.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/mmap64.c: New file.
+ * sysdeps/unix/sysv/linux/alpha/syscalls.list: Add __mmap64 and mmap64
+ aliases to mmap.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
+
+ * sysdeps/generic/setrlimit64.c: Don't mark as stub.
+
+ * nis/nss_nis/nis-hosts.c (internal_nis_gethostent_r): Pretty print.
+
+ * nis(rpcsvc/nis_tags.h: Prevent warning by unknown pragma.
+
+ * sysdeps/posix/mk-stdiolim.c: Generate correct file which defines
+ FOPEN_MAX also when included by limits.h.
+ * sysdeps/unix/sysv/linux/stdio_lim.h.in: Likewise.
+
+ * sysdeps/unix/sysv/linux/Dist: Add oldsiglist.c, netax25/ax25.h,
+ and netrom/netrom.h.
+ * sysdeps/unix/sysv/linux/Makefile [$(subdir)=stdio-common]: Add
+ oldsiglist to sysdep_routines, not aux.
+ [$(subdir)=inet] (sysdep_headers): Add netax25/ax25.h, netrom/netrom.h.
+
+ * sysdeps/unix/sysv/linux/bits/socket.h: Remove SOL_AX25, SOL_ATALK,
+ and SOL_NETROM definition.
+
+ * sysdeps/unix/sysv/linux/i386/Dist: Add s_pwrite64.S and s_pread64.S.
+
+ * sysdeps/unix/sysv/linux/net/route.h: Pretty print.
+ * sysdeps/unix/sysv/linux/netatalk/at.h: Pretty print.
+
+1997-12-25 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/alpha/net/route.h: New file.
+
+ * sysdeps/unix/sysv/linux/alpha/kernel_sigaction.h: Replace
+ sa_handler with k_sa_handler.
+ * sysdeps/unix/sysv/linux/alpha/syscalls.list: Add __getrlimit as
+ strong alias.
+ Reported by a sun.
+
+ * sysdeps/unix/sysv/linux/sigsuspend.c: Don't define
+ __libc_have_rt_sigs here.
+ * sysdeps/unix/sysv/linux/sigaction.c: Do it instead here.
+ * sysdeps/unix/sysv/linux/i386/sigaction.c: Likewise.
+ * sysdeps/unix/sysv/linux/sigpending.c: Correct comment.
+ * sysdeps/unix/sysv/linux/sigprocmask.c: Likewise.
+
+1997-12-11 07:51 Geoff Keating <geoffk@ozemail.com.au>
+
+ * sysdeps/powerpc/atomicity.h: New file.
+ * sysdeps/mach/powerpc/machine-lock.h: New file.
+
+ * Rules: Use -fpic to build anything that might end up in a users'
+ shared library.
+
+ * sysdeps/powerpc/s_fdim.c: New file.
+ * sysdeps/powerpc/s_fdimf.c: New file.
+ * sysdeps/powerpc/s_fmax.S: New file.
+ * sysdeps/powerpc/s_fmaxf.S: New file.
+ * sysdeps/powerpc/s_fmin.S: New file.
+ * sysdeps/powerpc/s_fminf.S: New file.
+ * sysdeps/powerpc/s_llrint.c: Now is for double.
+ * sysdeps/powerpc/s_llrintf.c: New file.
+ * sysdeps/powerpc/s_llround.c: Now is for double.
+ * sysdeps/powerpc/s_llroundf.c: New file.
+ * sysdeps/powerpc/s_lrint.c: Now is for double.
+ * sysdeps/powerpc/s_lrintf.S: New file.
+ * sysdeps/powerpc/s_lround.c: Now is for double.
+ * sysdeps/powerpc/s_lroundf.c: New file.
+ * sysdeps/powerpc/bits/mathinlines.h: Add inline versions of lrint,
+ lrintf, fdim, fdimf.
+
+ * sysdeps/unix/sysv/linux/powerpc/kernel_termios.h: Don't use bits/
+ file directly, use its parent.
+
+ * sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c: Re-instate '++'
+ (for the third time).
+
+1997-12-20 13:50 Richard Henderson <rth@cygnus.com>
+
+ * posix/sched.h: timespec is in <time.h>.
+
+ * sysdeps/unix/sysv/linux/sys/kd.h: Don't redefine _LINUX_TYPES_H.
+
+1997-12-22 18:10 Ulrich Drepper <drepper@cygnus.com>
+
+ * configure.in: Stop with error if --disable-static is used when
+ the shared lib uses this library.
+
+ * gen-FAQ.pl: I've perl installed in /usr/bin.
+
+ * include/bits/xopen_lim.h (STREAM_MAX): Define using FOPEN_MAX.
+
+ Fix Unix98 conformance problems in the headers.
+ * catgets/nl_types.h: Define nl_item.
+ * grp/grp.h: Define gid_t.
+ * include/features.h [_POSIX_C_SOURCE]: Don't define _XOPEN_SOURCE.
+ * include/nl_types.h: New file.
+ * include/ulimit.h: New file.
+ * io/fcntl.h: Include sys/stat.h for Unix98. Don't define locking
+ constants in POSIX mode.
+ * io/utime.h: Get definition for time_t.
+ * io/sys/stat.h: Define dev_t, gid_t, ino_t, mode_t, nlink_t, off_t,
+ uid_t, pid_t. Define D_IFLNK and S_IFSOCK only if !__USE_UNIX98.
+ * libio/stdio.h: Define va_list. Make snprintf also available is
+ __USE_UNIX98. Declare getopt function and variables.
+ * locale/langinfo.h: Include nl_types.h. Don't define nl_item.
+ Define CODESET, CRNCYSTR, RADIXCHAR and THOUSEP as aliases.
+ * math/math.h: Defined M_* constants as double for Unix98 mode.
+ * posix/fnmatch.h: Pretty print. Define FNM_NOSYS.
+ * posix/glob.h: Pretty print. Define GLOB_NOSYS.
+ * posix/regex.h: Define REG_NOSYS.
+ * posix/wordexp.h: Define WRDE_NOSYS.
+ * posix/unistd.h: Define _POSIX2_VERSION. Define _XOPEN_VERSION to
+ 500 for Unix98.
+ * posix/sys/types.h: Alloc dev_t, mode_t, nlink_t to be defined
+ somewhere else as well. Define clock_t for Unix98.
+ * posix/sys/wait.h: Define pid_t.
+ * pwd/pwd.h: Define gid_t, uid_t.
+ * resource/Makefile (headers): Add ulimit.h.
+ * resource/ulimit.h: New file.
+ * sysdeps/generic/ulimit.c: Define according to X/Open using varargs
+ instead of second argument.
+ * sysdeps/unix/bsd/ulimit.c: Likewise. Use UL_* constants.
+ * sysdeps/unix/sysv/linux/ulimit.c: Likewise.
+ * resource/sys/resource.h: Don't declare ulimit here, include ulimit.h.
+ * signal/signal.h: Define pid_t.
+ * string/string.h: Don't declare BSD string functions in POSIX mode.
+ * sysdeps/generic/bits/confname.h: Define _PC_VDISABLE. Add
+ _SC_XOPEN_LEGACY, _SC_XOPEN_REALTIME and _SC_XOPEN_REALTIME_THREADS.
+ * sysdeps/unix/sysv/linux/bits/termios.h: Clean namespace for Unix98
+ and POSIX.
+
+ * inet/test_ifindex.c: Change test so that it does not fail for
+ interface aliases.
+
+ * locale/programs/locale.c (show_info): Use correct cast sequence
+ for 64bit machines.
+
+ * malloc/malloc.c: __malloc_initialized now signals three states:
+ uninitialized, initializing, initialized. Used in mcheck.
+ * malloc/mcheck.c (mabort): Add '\n' to messages.
+ (mcheck): Allow installation when malloc is uninitialized or is
+ just initializing.
+
+ * manual/memory.texi: Explain mtrace output a bit more.
+
+ * math/libm-test.c: Add more epsilons.
+
+ * misc/regexp.h (compile): Remove __ prefix from parameter names.
+
+ * nis/nss_nis/nis-ethers.c (internal_nis_getetherent_r): Use strncpy
+ instead of strcpy for security.
+ * nis/nss_nis/nis-proto.c (internal_nis_getprotoent_r): Likewise.
+ * nis/nss_nis/nis-rpc.c (internal_nis_getrpcent_r): Likewise.
+ * nis/nss_nis/nis-service.c (internal_nis_getservent_r): Likewise.
+
+ * nss/digits_dots.c: Pretty print.
+
+ * posix/getconf.c (vars): Add symbols for programming environment
+ recognition. Recognize --version.
+
+ * sysdeps/generic/sysconf.c: Handle _SC_XBS5_*, _SC_XOPEN_LEGACY,
+ _SC_XOPEN_REALTIME, and _SC_XOPEN_REALTIME_THREADS.
+ * sysdeps/posix/sysconf.c: Handle _SC_XBS5_* and new _XOPEN_* symbols.
+
+ * sysdeps/generic/bits/stdio_lim.h: Implement handling of
+ __need_FOPEN_MAX.
+ * sysdeps/unix/sysv/linux/stdio_lim.h.in: Likewise.
+ * sysdeps/posix/mk-stdiolim.c: Change to generate file handling
+ __need_FOPEN_MAX.
+
+ * sysdeps/unix/sysv/linux/Dist: Add rt_sigpending.c.
+ * sysdeps/unix/sysv/linux/rt_sigpending.c: New file.
+
+ * sysdeps/unix/sysv/linux/alpha/bits/types.h: Define __ipc_pid_t.
+ * sysdeps/unix/sysv/linux/bits/types.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/bits/types.h: Likewise.
+ * sysdeps/unix/sysv/linux/bits/msq.h: Use __ipc_pid_t.
+ * sysdeps/unix/sysv/linux/bits/shm.h: Likewise.
+ * sysdeps/unix/sysv/linux/mips/bits/types.h: New file.
+
+ * sysdeps/wordsize-32/inttypes.h: Add SCNd8, SCNi8, SCNo8, SCNx8,
+ SCNu*.
+ * sysdeps/wordsize-64/inttypes.h: Likewise.
+
+ * time/africa: Update from tzdata1997j.
+ * time/antarctica: Likewise.
+ * time/asia: Likewise.
+ * time/australasia: Likewise.
+ * time/backward: Likewise.
+ * time/etcetera: Likewise.
+ * time/europe: Likewise.
+ * time/factory: Likewise.
+ * time/northamerica: Likewise.
+ * time/pacificnew: Likewise.
+ * time/southamerica: Likewise.
+
+ * time/tzfile.h: Update from tzcode1997h.
+ * time/zic.c: Likewise.
+
+ * wcsmbs/wchar.h: Get definition of FILE. Define `struct tm' tag.
+ Declare wcwidth and wcswidth for __USE_XOPEN. Declare the
+ isw*() functions for Unix98.
+ * wctype/towctrans.c: Define as __towctrans, make towctrans weak alias.
+ * wctype/wctype.h: Declare isw*() functions also if __need_iswxxx
+ is defined.
+
+1997-12-21 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * locale/duplocale.c: Increase usage_count only if less than
+ MAX_USAGE_COUNT.
+ * locale/freelocale.c: Test usage_count against UNDELETABLE, not
+ MAX_USAGE_COUNT.
+ * locale/setlocale.c: Likewise.
+
+1997-12-20 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * Makefile ($(inst_includedir)/gnu/stubs.h): Use a more direct
+ dependency to make it easier to install it selectively.
+
+ * Makerules (.SUFFIXES): Don't define any suffixes.
+
+1997-12-20 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/generic/fstatfs64.c: Emulate using fstatfs.
+ * sysdeps/generic/statfs64.c: Emulate using statfs.
+ * sysdeps/generic/getrlimit64.c: Emulate using getrlimit.
+ * sysdeps/generic/setrlimit64.c: Emulate using setrlimit.
+ * sysdpes/generic/ftruncate64.c: New file.
+ * sysdpes/generic/truncate64.c: New file.
+
+ * sysdeps/generic/bits/stat.h: Add LFS support.
+ * sysdeps/generic/bits/statfs.h: Likewise.
+
+ * sysdeps/unix/bsd/sun/sunos4/bits/resource.h (RLIM_INFINITY)
+ [__USE_FILE_OFFSET64]: Make long long constant.
+ (RLIM64_INFINITY): Likewise.
+
+ * sysdeps/unix/sysv/linux/bits/resource.h (RLIM_INFINITY): Correct
+ for LFS support.
+ (RLIM64_INFINITY) [__USE_LARGEFILE64]: Define.
+ * sysdeps/generic/bits/resource.h: Likewise.
+
+ * misc/Makefile (routines): Add truncate64 and ftruncate64.
+
+ * include/features.h: Don't prevent LFS support from defining BSD
+ and SYSV things.
+
+ * dirent/dirent.h [__USE_FILE_OFFSET64]: Don't use xxx64 names.
+ * io/ftw.h [__USE_FILE_OFFSET64]: Likewise.
+ * io/sys/stat.h [__USE_FILE_OFFSET64]: Likewise.
+
+ * sysdeps/unix/sysv/linux/alpha/syscalls.list: Add xxx64 alias for
+ fstatfs, statfs, getrlimit, setrlimit, ftruncate and truncate.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
+
+ * sysdeps/unix/sysv/linux/alpha/fstatfs64.c: New file.
+ * sysdeps/unix/sysv/linux/alpha/statfs64.c: New file.
+ * sysdeps/unix/sysv/linux/alpha/getrlimit64.c: New file.
+ * sysdeps/unix/sysv/linux/alpha/setrlimit64.c: New file.
+ * sysdeps/unix/sysv/linux/alpha/ftruncate64.c: New file.
+ * sysdeps/unix/sysv/linux/alpha/truncate64.c: New file.
+ * sysdeps/unix/sysv/linux/alpha/readdir.c: New file.
+ * sysdeps/unix/sysv/linux/alpha/readdir64.c: New file.
+ * sysdeps/unix/sysv/linux/alpha/readdir64_r.c: New file.
+ * sysdeps/unix/sysv/linux/alpha/readdir_r.c: New file.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/fstatfs64.c: New file.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/statfs64.c: New file.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/getrlimit64.c: New file.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/setrlimit64.c: New file.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/ftruncate64.c: New file.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/truncate64.c: New file.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/readdir.c: New file.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/readdir64.c: New file.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/readdir64_r.c: New file.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/readdir_r.c: New file.
+
+ * sysdeps/unix/sysv/linux/fxstat64.c: New file.
+ * sysdeps/unix/sysv/linux/lxstat64.c: New file.
+ * sysdeps/unix/sysv/linux/xstat64.c: New file.
+ * sysdeps/unix/sysv/linux/readdir64.c: New file.
+ * sysdeps/unix/sysv/linux/readdir64_r.c: New file.
+
+ * sysdeps/unix/sysv/linux/getdents64.c: New file.
+ * sysdeps/unix/sysv/linux/Makefile (sysdep_routines)
+ [$(subdir)=dirent]: Add getdents64.
+ * sysdeps/unix/sysv/linux/Dist: Add getdents64.c.
+
+ * sysdeps/unix/sysv/linux/xstatconv.c: LFS support.
+
+1997-12-18 12:07 Philip Blundell <pb@nexus.co.uk>
+
+ * sysdeps/generic/bits/statfs.h (struct statfs64): Added.
+
+ * sysdeps/generic/getrlimit.c: Include <sys/types.h>.
+ * sysdeps/generic/getrlimit64.c: Likewise.
+ * sysdeps/generic/setrlimit.c: Likewise.
+ * sysdeps/generic/setrlimit64.c: Likewise.
+
+1997-12-17 13:57 Philip Blundell <pb@nexus.co.uk>
+
+ * sysdeps/unix/sysv/linux/siglist.c: Fix compile problem if not
+ using versioning.
+
+ * sysdeps/generic/waitid.c: Include <sys/types.h> for id_t.
+
+ * sysdeps/standalone/arm/bits/errno.h (EBUSY): Added.
+
+1997-12-16 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * locale/programs/ld-ctype.c (ctype_output): Clear out the padding
+ after the codeset name.
+
+1997-12-16 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * libc.map: Add get_kernel_syms.
+
+1997-12-16 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/generic/testrtsig.h (kernel_has_rtsig): Make
+ static.
+ * sysdeps/unix/sysv/linux/testrtsig.h (kernel_has_rtsig):
+ Likewise. Fix condition.
+
+1997-12-16 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * libio/Makefile (routines) [$(versioning)=yes]: Add oldiofdopen.
+
+1997-12-15 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/m68k/fpu/bits/mathinline.h: Don't define exp2 inline.
+ Define scalbln{,f,l} under __USE_ISOC9X, not __USE_MISC.
+
+1997-12-15 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/unix/sysv/linux/powerpc/syscall.S: Put back.
+ * sysdeps/unix/sysv/linux/powerpc/sigreturn.S: Delete this
+ instead. Oops.
+
+1997-12-16 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * configure.in (libc_cv_gcc_alpha_ng_prefix): Correct quoting.
+
+1997-12-16 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * math/libm-test.c (catanh_test): Change epsilon.
+ Reported by H.J. Lu.
+
+1997-12-14 19:39 H.J. Lu <hjl@gnu.org>
+
+ * libc.map (__getpid): Added for linuxthreads.
+
+1997-12-13 21:09 H.J. Lu <hjl@gnu.org>
+
+ * configure.in (HAVE_DWARF2_UNWIND_INFO_STATIC): Define
+ it if gcc uses static variable in DWARF2 unwind information
+ for exception support.
+
+ * config.h.in (HAVE_DWARF2_UNWIND_INFO_STATIC): New.
+
+ * elf/soinit.c (__libc_global_ctors, _fini): Handle
+ HAVE_DWARF2_UNWIND_INFO_STATIC.
+
+ * libc.map (__register_frame*, __deregister_frame*): Make them
+ global.
+
+1997-12-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * math/libm-test.c: Add more tests for "normal" values.
+
+1997-12-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * stdio-common/printf_fphex.c: Fix printing of long double number
+ with a biased exponent of zero. Fix rounding.
+
+1997-12-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sunrpc/rpc_main.c: Accept new flag -$.
+ * sunrpc/Makefile (rpcgen-cmd): Pass it here.
+
+1997-12-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * Makefile ($(inst_slibdir)/libc-$(version).so): Install the
+ dynamic linker first, in case the interface has changed.
+
+1997-12-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * nss/nss_files/files-alias.c (get_next_alias): Fix parameter
+ order.
+
+1997-12-12 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * math/tgmath.h: Check for double first, for architectures where
+ sizeof (long double) == sizeof (double).
+
+1997-12-07 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * math/libm-test.c: New tests for "normal" values added for most
+ functions.
+
+1997-12-14 21:33 Ulrich Drepper <drepper@cygnus.com>
+
+ * version.h (VERSION): Bump to 2.0.91.
+
+ * db2/makedb.c (process_input): Fix typo in message.
+ * sunrpc/rpcinfo.c (pmapdump): Unify messages.
+
+ * elf/dynamic-link.h: Pretty print.
+
+ * elf/rtld.c: Allow multiple preloading of a shared object.
+
+ * include/limits.h: Prevent multiple inclusion.
+
+ * malloc/Makefile (headers): Add mcheck.h.
+ (distribute): Remove it here.
+ * malloc/mcheck.h: Pretty print.
+ * malloc/mtrace.c (mallenv): Make `const'.
+ * malloc/mtrace.pl: Don't print table head for memory leaks if there
+ are none.
+ * manual/memory.texi: Update descriptor of malloc hooks.
+
+ * posix/Makefile (routines): Add waitid.
+ * posix/sys/types.h [__USE_SVID || __USE_POSIX]: Define id_t based
+ on __id_t.
+ * posix/sys/wait.h: Define idtype_t type.
+ Add prototype for waitid.
+ * signal/signal.h: Move definition of sigval_t to <bits/siginfo.h>.
+ * sysdeps/generic/waitid.c: Stub for waitid.
+ * sysdeps/generic/bits/siginfo.h: Define sigval_t. Arrange to work
+ the __need_siginfo_t defined.
+ * sysdeps/unix/sysv/linux/bits/siginfo: Likewise.
+ * sysdeps/generic/bits/types.h: Define __id_t.
+ Correct definition of __FDMASK.
+ * sysdeps/unix/sysv/linux/alpha/bits/types.h: Likewise.
+ * sysdeps/unix/sysv/linux/bits/types.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/bits/types.h: Likewise.
+
+ * sysdeps/posix/waitid.c: New file.
+ Provided by Zack Weinberg.
+
+ * rt/aio_misc.c: Rename __aio_free_req to __aio_free_request.
+
+ * sysdeps/alpha/dl-machine.h (ELF_MACHINE_RUNTIME_TRAMPOLINE):
+ Add missing parameters.
+
+ * sysdeps/generic/dl-sysdep.c: Don't call __libc_init_secure.
+ * sysdeps/generic/enbl-secure.c: Don't define __libc_uid.
+ * sysdeps/unix/sysv/linux/init-first.c: Define __libc_uid.
+ * sysdeps/unix/sysv/linux/sigqueue.c: Make sure __libc_uid is
+ initialized.
+
+ * sysdeps/i386/dl-machine.h: Little cleanup.
+
+ * sysdeps/i386/fpu/bits/mathinline.h: Use __signbit* inline functions.
+ (__finite): Mark function as const.
+ Add inline code for __ieee754_atan2.
+
+ * sysdeps/libm-ieee754/s_cacoshf.c: Add alternate implementation
+ (but don't use it now).
+ * sysdeps/libm-ieee754/s_catan.c: Use __ieee754_atan2 instead of
+ __atan.
+ * sysdeps/libm-ieee754/s_catanf.c: Likewise.
+ * sysdeps/libm-ieee754/s_catanl.c: Likewise.
+ * sysdeps/libm-ieee754/s_catanh.c: Likewise. Correct sign of
+ real part.
+ * sysdeps/libm-ieee754/s_catanhf.c: Likewise.
+ * sysdeps/libm-ieee754/s_catanhl.c: Likewise.
+ * sysdeps/libm-ieee754/s_clog10.c: Use factor to correct
+ __ieee754_atan2 to base 10.
+ * sysdeps/libm-ieee754/s_clog10f.c: Likewise.
+ * sysdeps/libm-ieee754/s_clog10l.c: Likewise.
+
+ * sysdeps/unix/sysv/linux/alpha/kernel_sigaction.h: Define as
+ old_kernel_sigaction.
+
+ * sysdeps/unix/sysv/linux/net/if_slip.h: Pretty print.
+
+ * wctype/Makefile (routines): Add wctype_l.
+ * wctype/wctype.h: Add declaration of __wctype_l.
+ * wctype/wctype_l.c: New file.
+
+1997-12-10 00:38 Ulrich Drepper <drepper@cygnus.com>
+
+ * locale/C-ctype.c: Correct data for isw* functions.
+ * locale/programs/ld-ctype.c: Write 32bit char classes in correct
+ byte order.
+ * wctype/test_wctype.c: Add test for isw* functions.
+ * wctype/wctype.c: Return value with expected byte order.
+
+1997-12-13 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
+
+ * libc-work/nis/ypclnt.c (do_ypcall): Don't free dom_binding twice.
+
+1997-12-05 20:19 H.J. Lu <hjl@gnu.org>
+
+ * iconvdata/Makefile: Fix a typo.
+
+ * sysdeps/unix/sysv/linux/Makefile (stdio-common): Add
+ oldsiglist for shared library.
+
+ * sysdeps/unix/sysv/linux/siglist.c (_sys_siglist, sys_siglist,
+ sys_sigabbrev): Make them as the default version GLIBC_2.1.
+
+ * sysdeps/unix/sysv/linux/oldsiglist.c (_sys_siglist,
+ sys_siglist, sys_sigabbrev): New file. Make them as the old
+ version GLIBC_2.0.
+
+ * libc.map (_sys_siglist, sys_siglist, sys_sigabbrev): Added
+ to GLIBC_2.1.
+
+1997-11-20 18:02 H.J. Lu <hjl@gnu.ai.mit.edu>
+
+ * libio/iofgets.c (_IO_fgets): Return an error only if there
+ is a new error.
+ * libio/iogets.c (_IO_gets): Ditto.
+
+1997-11-20 07:26 H.J. Lu <hjl@gnu.ai.mit.edu>
+
+ * libc.map (_IO_fdopen): Add support for GLIBC_2.0.
+
+ * libio/Makefile (routines, shared-only-routines): Add
+ oldiofdopen.
+
+ * libio/fileops.c: Don't use _IO_FILE_complete.
+ * libio/iofdopen.c: Ditto.
+ * libio/iofopen.c: Ditto.
+ * libio/iofopen64.c: Ditto.
+ * libio/iopopen.c: Ditto.
+ * libio/iovdprintf.c: Ditto.
+
+ * libio/genops.c (_IO_init): Set _vtable_offset to 0.
+
+ * libio/iofdopen.c (_IO_new_fdopen): Changed from _IO_fdopen
+ and make it for _IO_fdopen/fdopen version GLIBC_2.1.
+
+ * libio/iolibio.h (_IO_old_fclose, _IO_new_fclose,
+ _IO_old_fdopen, _IO_new_fdopen): New declaration.
+
+ * libio/libio.h (_IO_FILE): Add more fields.
+ (_IO_FILE_complete): Defined and make _IO_FILE be the old
+ one if _IO_USE_OLD_IO_FILE is defined
+ (_IO_2_1_stdin_, _IO_2_1_stdout_, _IO_2_1_stderr_): Make
+ them _IO_FILE_complete.
+
+ * libio/libioP.h (_IO_JUMPS_FUNC): New, use _vtable_offset
+ to adjust vtable.
+ (JUMP0, JUMP1, JUMP2, JUMP3): Use _IO_JUMPS_FUNC instead of
+ _IO_JUMPS.
+ (_IO_FILE_complete): Commented out.
+
+ * libio/oldfileops.c: Define _IO_USE_OLD_IO_FILE.
+ * libio/oldiofclose.c: Ditto.
+ * libio/oldiofopen.c: Ditto.
+ * libio/oldstdfiles.c: Ditto.
+
+ * libio/oldfileops.c (_IO_old_file_init): Set _vtable_offset
+ for the old _IO_FILE.
+
+ * libio/oldstdfiles.c (DEF_STDFILE): Remove INAME.
+ (_IO_check_libio): Set _vtable_offset for old stdin, stdout
+ and stderr.
+
+ * libio/stdfiles.c (DEF_STDFILE): Don't use _IO_FILE_complete
+ and remove INAME.
+
+ * libio/stdio.c (stdin, stdout, stdin): Don't use
+ _IO_FILE_complete.
+
+ * libio/oldiofdopen.c: New.
+
+ * stdio-common/vfprintf.c (buffered_vfprintf): Set
+ hp->_vtable_offset to 0.
+
+1997-11-18 08:03 H.J. Lu <hjl@gnu.ai.mit.edu>
+
+ * libc.map (_IO_file_open): Added.
+
+ * libio/libioP.h (_IO_file_open): Declared.
+
+ * libio/fileops.c (_IO_file_open): New.
+ (_IO_file_fopen): Call _IO_file_open ().
+
+ * sysdeps/generic/_G_config.h: Define _G_HAVE_IO_FILE_OPEN.
+ * sysdeps/unix/sysv/linux/_G_config.h: Likewise.
+
+1997-12-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * signal/signal.h: Fix selection of signal semantics to match
+ comment.
+
+1997-12-11 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/unix/sysv/linux/sigreturn.c: Stub out.
+ * sysdeps/unix/sysv/linux/syscalls.list: Remove sigreturn and
+ rt_sigreturn.
+ * sysdeps/unix/sysv/linux/Makefile (sysdep_routines)
+ [$(subdir)=signal]: Remove rt_sigreturn.
+ * sysdeps/unix/sysv/linux/powerpc/syscall.S: Deleted.
+ * sysdeps/unix/sysv/linux/m68k/sigreturn.S: Deleted.
+ * sysdeps/unix/sysv/linux/rt_sigreturn.c: Deleted.
+
+1997-12-11 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/unix/sysv/linux/sigaction.c: Include <errno.h>. Fix
+ declarations.
+
+1997-12-12 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * iconvdata/extra-module.mk: Expand extra-objs now.
+
+1997-12-09 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/m68k/fpu/bits/mathinline.h: Protect declarations of
+ inline functions by feature tests to avoid warning about missing
+ prototype declarations.
+
+1997-12-09 15:08 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
+
+ * nis/nss_compat/compat-grp.c: Reset the blacklist correct, fix
+ return code for non existent +name entries.
+ * nis/nss_compat/compat-pwd.c: Likewise.
+ * nis/nss_compat/compat-spwd.c: Likewise.
+
+1997-12-10 13:52 Philip Blundell <pb@nexus.co.uk>
+
+ * sysdeps/standalone/arm/bits/errno.h (EAGAIN): Added.
+ (EIO): Likewise.
+ (ENOSPC): Likewise.
+ (EEXIST): Likewise.
+ (__errno_location): Likewise.
+
+ * sysdeps/generic/sys/param.h (MAXPATHLEN): Added.
+
+ * sysdeps/generic/sigqueue.c: Include <sys/types.h> for pid_t.
+
+1997-12-09 08:10 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
+
+ * sunrpc/publickey.c: Use new NSS interface.
+
+1997-12-09 03:08 Ulrich Drepper <drepper@cygnus.com>
+
+ * manual/malloc.texi: Document mtrace/muntrace and the concept.
+
+1997-12-04 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/m68k/fpu/bits/fenv.h (fenv_t): Add member to hold fpiar
+ value, to match spirit of the standard.
+ * sysdeps/m68k/fpu/fegetenv.c: Save/restore fpiar.
+ * sysdeps/m68k/fpu/feholdexcpt.c: Likewise.
+ * sysdeps/m68k/fpu/fesetenv.c: Likewise.
+
+1997-12-02 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * manual/signal.texi (Signal Stack): Remove spurious @item.
+
+1997-12-08 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * rt/aio.h: Remove double semicolon.
+
+ * rt/librt.map: Add aio_init.
+
+1997-12-08 03:24 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makeconfig: Define $(rt) to rt if linuxthreads is available.
+ * Makefile (subdirs): Replace rt by $(rt).
+
+ * shlib-versions: Use version .2 for NSS modules.
+
+ * grp/fgetgrent_r.c (LINE_PARSER): Call parse_line with extra
+ argument.
+ * pwd/fgetpwent_r.c: Likewise.
+ * spwd/fgetspent_r.c: Likewise.
+ * spwd/sgetspent_r.c: Likewise.
+ * hesiod/nss_hesiod/hesiod-grp.c (lookup): Add new argument.
+ Store error number in *ERRNOP. Little optimization.
+ * hesiod/nss_hesiod/hesiod-pwd.c: Likewise.
+ * hesiod/nss_hesiod/hesiod-service.c: Likewise.
+ * inet/getnetgrent_r.c (__internal_setnetgrent_reuse): Likewise.
+ (__internal_getnetgrent_r): New argument.
+ Call __internal_setnetgrent_reuse with new argument.
+ (__getnetgrent_r): Call __internal_getnetgrent_r with new argument.
+ * inet/netgroup.h: Add argument to prototypes.
+ * nis/nisplus-parser.h: Likewise.
+ * nis/nss_compat/compat-grp.c: Change everything to store error
+ code through provided pointer and not use errno.
+ * nis/nss_compat/compat-pwd.c: Likewise.
+ * nis/nss_compat/compat-spwd.c: Likewise.
+ * nis/nss_nis/nis-alias.c: Likewise.
+ * nis/nss_nis/nis-ethers.c: Likewise.
+ * nis/nss_nis/nis-grp.c: Likewise.
+ * nis/nss_nis/nis-hosts.c: Likewise.
+ * nis/nss_nis/nis-netgrp.c: Likewise.
+ * nis/nss_nis/nis-network.c: Likewise.
+ * nis/nss_nis/nis-proto.c: Likewise.
+ * nis/nss_nis/nis-publickey.c: Likewise.
+ * nis/nss_nis/nis-pwd.c: Likewise.
+ * nis/nss_nis/nis-rpc.c: Likewise.
+ * nis/nss_nis/nis-service.c: Likewise.
+ * nis/nss_nis/nis-spwd.c: Likewise.
+ * nis/nss_nisplus/nisplus-alias.c: Likewise.
+ * nis/nss_nisplus/nisplus-ethers.c: Likewise.
+ * nis/nss_nisplus/nisplus-grp.c: Likewise.
+ * nis/nss_nisplus/nisplus-hosts.c: Likewise.
+ * nis/nss_nisplus/nisplus-netgrp.c: Likewise.
+ * nis/nss_nisplus/nisplus-network.c: Likewise.
+ * nis/nss_nisplus/nisplus-parser.c: Likewise.
+ * nis/nss_nisplus/nisplus-proto.c: Likewise.
+ * nis/nss_nisplus/nisplus-publickey.c: Likewise.
+ * nis/nss_nisplus/nisplus-pwd.c: Likewise.
+ * nis/nss_nisplus/nisplus-rpc.c: Likewise.
+ * nis/nss_nisplus/nisplus-service.c: Likewise.
+ * nis/nss_nisplus/nisplus-spwd.c: Likewise.
+ * nss/nss_db/db-XXX.c: Likewise.
+ * nss/nss_db/db-alias.c: Likewise.
+ * nss/nss_db/db-netgrp.c: Likewise.
+ * nss/nss_files/files-XXX.c: Likewise
+ * nss/nss_files/files-alias.c: Likewise
+ * nss/nss_files/files-netgrp.c: Likewise
+ * nss/nss_files/files-parse.c: Likewise
+ * nss/getXXbyYY_r.c: Call with __errno_location() as value for new
+ parameter of get functions.
+ * nss/getXXent_r.c: Likewise.
+
+ * localedata/tst-fmon.c: Print debug info if test fails.
+
+ * rt/Makefile (routines): Add aio_notify.
+ * rt/aio.h: Remove non-public definitions. Add aioinit stuff.
+ * rt/aio_cancel.c: Rewrite to support lio_listio and aio_suspend.
+ * rt/aio_fsync.c: Likewise.
+ * rt/aio_misc.c: Likewise.
+ * rt/aio_misc.h: Likewise.
+ * rt/aio_read.c: Likewise.
+ * rt/aio_read64.c: Likewise.
+ * rt/aio_suspend.c: Likewise.
+ * rt/aio_write.c: Likewise.
+ * rt/aio_write64.c: Likewise.
+ * rt/lio_listio.c: Likewise.
+ * rt/lio_listio64.c: Likewise.
+ * rt/aio_notify.c: New file.
+
+ * sysdeps/generic/bits/sigset.h: Pretty print.
+
+ * sysdeps/posix/pwrite.c: Define weak alias only if function is
+ really defined as __pwrite.
+
+ * sysdeps/unix/sysv/linux/pread.c: Rewrite to use syscall directly
+ instead of pread64.
+ * sysdeps/unix/sysv/linux/pwrite.c: Likewise.
+
+ * sysdeps/unix/sysv/linux/Makefile [$(subdir)=signal]
+ (sysdep_routines): Add rt_sigpending and rt_sigreturn.
+ * sysdeps/unix/sysv/linux/sigaction.c: Use correct value for sigset_t
+ size in syscall.
+ * sysdeps/unix/sysv/linux/sigpending.c: Likewise.
+ * sysdeps/unix/sysv/linux/sigprocmask.c: Likewise.
+ * sysdeps/unix/sysv/linux/sigreturn.c: Likewise.
+ * sysdeps/unix/sysv/linux/sigsuspend.c: Likewise.
+ * sysdeps/unix/sysv/linux/sigtimedwait.c: Likewise.
+ * sysdeps/unix/sysv/linux/sigwaitinfo.c: Likewise.
+ * sysdeps/unix/sysv/linux/i386/sigaction.c: Likewise. Take care
+ for ACT being NULL.
+ * sysdeps/unix/sysv/linux/syscalls.list: Don't mention user for
+ RT signals.
+ * sysdeps/unix/sysv/linux/i386/s_pread64.s: Return ENOSYS if
+ __NR_pread is not defined.
+ * sysdeps/unix/sysv/linux/i386/s_pwrite64.s: Return ENOSYS if
+ __NR_pwrite is not defined.
+
+1997-12-07 11:15 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
+
+ * nis/nss_compat/compat-grp.c: If buffer is to small, set the file
+ handle for /etc/group back in some more cases.
+ * nis/nss_compat/compat-pwd.c: If buffer is to small, set the file
+ handle for /etc/passwd back in some more cases.
+ * nis/nss_compat/compat-spwd.c: If buffer is to small, set the file
+ handle for /etc/shadow back in some more cases.
+
+1997-12-06 17:00 H.J. Lu <hjl@gnu.org>
+
+ * sysdeps/posix/sigblock.c (__sigblock): Don't check int mask
+ beyound its size.
+ * sysdeps/posix/sigsetmask.c (__sigsetmask): Ditto.
+ * sysdeps/posix/sigvec.c (convert_mask, __sigvec): Ditto.
+
+1997-12-06 04:38 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/wordsize-32/inttypes.h: Rewrite {str,wcs}to{i,u}max
+ handling. Don't use macros, we need functions. Use inline functions
+ for optimization.
+ * sysdeps/wordsize-64/inttypes.h: Likewise.
+ * sysdeps/wordsize-32/Makefile: Add strtoimax, stroumax, wcstoimax,
+ and wcstoumax.
+ * sysdeps/wordsize-64/Makefile: Likewise.
+ * sysdeps/wordsize-32/Dist: Likewise.
+ * sysdeps/wordsize-64/Dist: Likewise.
+ * sysdeps/wordsize-32/strtoimax.c: New file.
+ * sysdeps/wordsize-32/strtoumax.c: New file.
+ * sysdeps/wordsize-32/wcstoimax.c: New file.
+ * sysdeps/wordsize-32/wcstoumax.c: New file.
+ * sysdeps/wordsize-64/strtoimax.c: New file.
+ * sysdeps/wordsize-64/strtoumax.c: New file.
+ * sysdeps/wordsize-64/wcstoimax.c: New file.
+ * sysdeps/wordsize-64/wcstoumax.c: New file.
+
+1997-12-04 10:40 Philip Blundell <pb@nexus.co.uk>
+
+ * sysdeps/generic/wait3.c (__wait3): Use ANSI-style definition so
+ that transparent union works.
+ * sysdeps/generic/wait4.c (__wait4): Likewise.
+ * sysdeps/generic/wait.c (__wait): Likewise.
+
+ * sysdeps/generic/getpeername.c (getpeername): Use socklen_t not
+ size_t.
+
+ * sysdeps/generic/syscall.c (syscall): Return value and arg are
+ long, to match prototype.
+
+ * malloc/malloc.c (HAVE_MREMAP): Set to 0 for ARM, as we don't
+ have mremap() yet.
+
+ * sysdeps/generic/usleep.c (usleep): Returns void, to match prototype.
+
+ * sysdeps/unix/sysv/linux/arm/syscalls.list: New file.
+
+ * sysdeps/generic/bits/time.h: Use __time_t not time_t.
+
+ * sysdeps/generic/bits/resource.h: Include <bits/types.h> for
+ __rlim_t.
+
+ * sysdeps/standalone/arm/bits/errno.h (ENOTTY): Added.
+
+ * sysdeps/generic/bits/dirent.h (struct dirent64): Added.
+
+ * io/sys/stat.h (S_ISLNK): Always false if we don't have
+ __S_IFLNK.
+
+ * sysdeps/standalone/close.c (_STDIO_H): Define before including
+ <bits/stdio_lim.h>.
+ * sysdeps/standalone/filedesc.h (_STDIO_H): Likewise.
+
+1997-12-06 01:09 Ulrich Drepper <drepper@cygnus.com>
+
+ * posix/sys/wait.h: Don't use transparent unions in C++.
+
+1997-12-05 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * time/time.h: Add strfxtime.
+
+ * libc.map: Add tcgetsid, strcasestr, wmemrtombs, wmemrtowcs,
+ sysv_signal, strfxtime, pread64, pwrite64.
+
+1997-11-30 21:57 Richard Henderson <rth@cygnus.com>
+
+ Alpha changes for EGCS:
+ * config.h.in (ASM_ALPHA_NG_SYMBOL_PREFIX): New entry.
+ * configure.in (libc_cv_gcc_alpha_ng_prefix): New check.
+ * sysdeps/alpha/dl-machine.h (_dl_runtime_resolve): Care for prefix.
+ (_start): Likewise.
+ * sysdeps/unix/sysv/linux/alpha/init-first.h: Likewise.
+
+1997-12-05 00:01 Ulrich Drepper <drepper@cygnus.com>
+
+ The kernel expects the arguments in a different order.
+ * sysdeps/unix/sysv/linux/i386/s_pread64.S: New file.
+ * sysdeps/unix/sysv/linux/i386/s_pwrite64.S: New file.
+
+ * FAQ.in: New file.
+ * gen-FAQ.pl: New file.
+ * Makefile (FAQ): Add rule to generate from FAQ.in.
+
+ * iconvdata/Makefile: Treat libJIS like the other modules.
+
+ * rt/librt.map: New file.
+
+ * sysdeps/wordsize-32/bits/environments.h: Add test for direct
+ inclusion.
+ * sysdeps/wordsize-64/bits/environments.h: Likewise. Correct
+ comment.
+
+1997-12-04 22:29 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/rt_sigprocmask.c: Fix prototype.
+ * sysdeps/unix/sysv/linux/rt_sigsuspend.c: Likewise.
+ * sysdeps/unix/sysv/linux/rt_sigqueueinfo.c: Include <sys/types.h>.
+ Patches by Thorsten Kukuk <kukuk@weber.uni-paderborn.de>.
+
+1997-11-27 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * string/bits/string2.h: Fix spellings.
+
+ * string/string.h: Fix spellings.
+
+1997-12-04 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * sysdeps/unix/sysv/linux/i386/sigaction.c: Rename extern
+ declaration to __syscall_rt_sigaction.
+
+ * sysdeps/unix/sysv/linux/sigreturn.c: Remove inclusion of
+ non-existant <sigcontext.h>.
+
+1997-12-04 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * sysdeps/generic/enbl-secure.c (__libc_init_secure): Correct
+ typo.
+
+1997-12-04 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * sysdeps/wordsize-64/bits/environments.h: Correct spelling.
+
+ * Makeconfig (shared-thread-library): Correct spelling.
+
+ * sysdeps/unix/sysv/linux/sys/pci.h: Include <linux/pci.h> and not
+ <asm/pci.h>.
+
+1997-12-04 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * sysdeps/unix/sysv/linux/bits/socket.h: Add AF_* and PF_
+ constants from Linux headers. Pointed out by
+ csmall@scooter.o.i.net. [PR libc/369]
+
+1997-12-04 10:21 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
+
+ * sunrpc/xcrypt.c: Fix lower/upper characters in optimized hexval.
+
+1997-12-04 00:06 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ * configure.in: If --enable-add-ons is given without an
+ argument, set the addons list to all subdirs with a configure
+ script.
+
+1997-12-03 23:50 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makeconfig: Add shared-thread-library variable.
+
+ * math/Makfile (CPPFLAGS): Add -D__LIBC_INTERNAL_MATH_INLINES.
+ * sysdeps/i386/Makefile: Don't define ___LIBC_INTERNAL_MATH_INLINES
+ here.
+ * sysdeps/m68k/fpu/e_acos.c: Likewise.
+ * sysdeps/m68k/fpu/e_atan2.c: Likewise.
+ * sysdeps/m68k/fpu/e_fmod.c: Likewise.
+ * sysdeps/m68k/fpu/e_pow.c: Likewise.
+ * sysdeps/m68k/fpu/e_scalb.c: Likewise.
+ * sysdeps/m68k/fpu/k_cos.c: Likewise.
+ * sysdeps/m68k/fpu/k_sin.c: Likewise.
+ * sysdeps/m68k/fpu/k_tan.c: Likewise.
+ * sysdeps/m68k/fpu/s_atan.c: Likewise.
+ * sysdeps/m68k/fpu/s_ccos.c: Likewise.
+ * sysdeps/m68k/fpu/s_ccosh.c: Likewise.
+ * sysdeps/m68k/fpu/s_cexp.c: Likewise.
+ * sysdeps/m68k/fpu/s_csin.c: Likewise.
+ * sysdeps/m68k/fpu/s_csinh.c: Likewise.
+ * sysdeps/m68k/fpu/s_frexp.c: Likewise.
+ * sysdeps/m68k/fpu/s_ilogb.c: Likewise.
+ * sysdeps/m68k/fpu/s_isinf.c: Likewise.
+ * sysdeps/m68k/fpu/s_llrint.c: Likewise.
+ * sysdeps/m68k/fpu/s_llrintf.c: Likewise.
+ * sysdeps/m68k/fpu/s_llrintl.c: Likewise.
+ * sysdeps/m68k/fpu/s_lrint.c: Likewise.
+ * sysdeps/m68k/fpu/s_modf.c: Likewise.
+ * sysdeps/m68k/fpu/s_remquo.c: Likewise.
+ * sysdeps/m68k/fpu/s_scalbn.c: Likewise.
+ * sysdeps/m68k/fpu/s_sincos.c: Likewise.
+
+ * libc.map: Add __libc_current_sigrtmin, __libc_current_sigrtmax,
+ __libc_allocate_rtsig, sigqueue, sigtimedwait, sigwaitinfo.
+ * signal/Makefile (headers): Add bits/siginfo.h.
+ (routines): Add allocrtsig, sigtimedwait, sigwaitinfo, sigqueue.
+ (distribute): Add testrtsig.h.
+ * signal/allocrtsig.c: New file.
+ * signal/signal.h: Define `union sigval'. Include <bits/siginfo.h>.
+ Declare sigwaitinfo, sigtimedwait, sigqueue, __libc_current_sigrtmin,
+ __libc_current_sigrtmax.
+ * sysdeps/generic/sigqueue.c: New file.
+ * sysdeps/generic/sigtimedwait.c: New file.
+ * sysdeps/generic/sigwaitinfo.c: New file.
+ * sysdeps/generic/testrtsig.h: New file.
+ * sysdeps/generic/bits/siginfo.h: New file.
+ * sysdeps/unix/sysv/linux/bits/siginfo.h: New file.
+ * sysdeps/unix/sysv/linux/kernel_sigaction.h: Define struct as
+ old_kernel_sigaction and rename sa_handler member to k_sa_handler.
+ * sysdeps/unix/sysv/linux/rt_sigaction.c: New file.
+ * sysdeps/unix/sysv/linux/rt_sigprocmask.c: New file.
+ * sysdeps/unix/sysv/linux/rt_sigqueueinfo.c: New file.
+ * sysdeps/unix/sysv/linux/rt_sigreturn.c: New file.
+ * sysdeps/unix/sysv/linux/rt_sigsuspend.c: New file.
+ * sysdeps/unix/sysv/linux/rt_sigtimedwait.c: New file.
+ * sysdeps/unix/sysv/linux/sigpending.c: New file.
+ * sysdeps/unix/sysv/linux/sigprocmask.c: New file.
+ * sysdeps/unix/sysv/linux/sigqueue.c: New file.
+ * sysdeps/unix/sysv/linux/sigreturn.c: New file.
+ * sysdeps/unix/sysv/linux/sigtimedwait.c: New file.
+ * sysdeps/unix/sysv/linux/sigwaitinfo.c: New file.
+ * sysdeps/unix/sysv/linux/testrtsig.h: New file.
+ * sysdeps/unix/sysv/linux/sigsuspend.c: Update for AIO.
+ * sysdeps/unix/sysv/linux/syscalls.list: Update for AIO.
+ * sysdeps/unix/sysv/linux/sigaction.c: Update for AIO.
+ * sysdeps/unix/sysv/linux/bits/local_lim.h: Define AIO_PRIO_DELTA_MAX.
+ * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define _XOPEN_REALTIME
+ and _POSIX_REALTIME_SIGNALS.
+ * sysdeps/unix/sysv/linux/bits/sigaction.h: Update for AIO.
+ * sysdeps/unix/sysv/linux/bits/signum.h: Define SIGRTMIN/MAX and
+ update _NSIG.
+ * sysdeps/unix/sysv/linux/i386/sigaction.c: Update for AIO.
+ * sysdeps/unix/sysv/linux/i386/sys/ucontext.h: Linux/i386 specific
+ definitions.
+
+ * Makefile (subdirs): Add rt.
+ * shlib-versions: Add entry for librt.
+ * rt/Makefile: New file.
+ * rt/aio.h: New file.
+ * rt/aio_cancel.c: New file.
+ * rt/aio_error.c: New file.
+ * rt/aio_fsync.c: New file.
+ * rt/aio_misc.c: New file.
+ * rt/aio_misc.h: New file.
+ * rt/aio_read.c: New file.
+ * rt/aio_read64.c: New file.
+ * rt/aio_return.c: New file.
+ * rt/aio_suspend.c: New file.
+ * rt/aio_write.c: New file.
+ * rt/aio_write64.c: New file.
+ * rt/lio_listio.c: New file.
+ * rt/lio_listio64.c: New file.
+ * sysdeps/generic/aio_sigqueue.c: New file.
+ * sysdeps/unix/sysv/linux/aio_sigqueue.c: New file.
+ * sysdeps/unix/sysv/linux/Dist: Add new files
+ * sysdeps/unix/sysv/linux/Makefile [$(subdir)=signal]
+ (sysdep_routines): Add rt_sigsuspend, rt_sigprocmask, rt_sigtimedwait,
+ rt_sigqueueinfo, rt_sigaction.
+
+ * posix/Makefile (headers): Add bits/environments.h.
+ * posix/confstr.c: Correctly handle _CS_XBS5_ILP32_OFFBIG_CFLAGS
+ and _CS_LFS_CFLAGS on 64bit platforms.
+ * posix/unistd.h: Define _XOPEN_LEGACY. Explain _XOPEN_REALTIME
+ and _XOPEN_REALTIME_THREADS. Include bits/environments.h.
+ * sysdeps/generic/bits/confname.h: Define _SC_* constants for
+ compilation modules.
+ * sysdeps/wordsize-32/bits/environments.h: New file.
+ * sysdeps/wordsize-64/bits/environments.h: New file.
+
+ * posix/getopt.c: Remove declaration of getpid and __libc_pid.
+ * posix/getopt_init.c: Test for value 0xf00baa of uninitialized
+ __libc_pid.
+ * sysdeps/unix/sysv/linux/init-first.c: Initialize __libc_pid to
+ 0xf00baa.
+
+ * string/string.h: Add declaration of __strverscmp.
+ * string/strverscmp.c: Rename function ot __strverscmp and make old
+ name weak alias.
+
+ * sysdeps/generic/dl-sysdep.c: Declare and define __libc_uid.
+ * sysdeps/generic/enbl-secure.c: Likewise.
+ * sysdeps/mach/hurd/dl-sysdep.c: Likewise.
+
+ * sysdeps/unix/sysv/linux/bits/sigset.h: Pretty print.
+
+ * sysdeps/unix/sysv/linux/sys/pci.h: New file.
+
+1997-12-03 Ulrich Drepper <drepper@cygnus.com>
+
+ * posix/sys/wait.h: Use __transparent_union__ instead of
+ transparent_union. Reported by Roland McGrath.
+
+1997-12-03 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * resolv/inet_neta.c (inet_neta): Change type of first parameter
+ to u_int32_t. Suggested by John Lavagnino <John_Lavagnino@Brown.edu>
+ [PR libc/366].
+
+ * resolv/inet_addr.c (inet_addr): Change return type to u_int32_t.
+
+ * inet/arpa/inet.h: Change types of inet_neta and inet_addr.
+
+1997-12-03 20:40 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
+
+ * grp/initgroups.c: Increase buffer if it is too small.
+
+1997-12-03 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/netinet/ip.h: Don't use u_int8_t for bit
+ fields, this is no ISO C. Reported by Andreas Jaeger.
+
+1997-12-03 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * sysdeps/i386/sys/ucontext.h (enum): Add missing commata.
+
+1997-12-03 08:58 Philip Blundell <pb@nexus.co.uk>
+
+ * sysdeps/generic/bits/utsname.h: <sys/utsname.h> defines
+ _SYS_UTSNAME_H not _UTSNAME_H.
+
+1997-11-28 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * elf/dl-profile.c (_dl_start_profile): Avoid overflow when
+ computing s_scale.
+
+1997-11-29 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/libm-ieee754/s_csqrt.c: Use different formula for now.
+ * sysdeps/libm-ieee754/s_csqrtf.c: Likewise.
+ * sysdeps/libm-ieee754/s_csqrtl.c: Likewise.
+
+ * math/libm-test.c (csqrt_test): Add testcase.
+
+1997-12-03 15:44 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/sys/ultrasound.h: New file.
+ * sysdeps/unix/sysv/linux/sys/Dist: Add it.
+ * sysdeps/unix/sysv/linux/sys/Makefile [$(subdir)=misc]: Likewise.
+
+1997-11-30 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/unix/sysv/linux/sys/timex.h: Fix declaration.
+
+1997-12-01 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * math/libm-test.c (acos_test): Add more tests.
+ (asin_test): Likewise.
+ (atan_test): Likewise.
+ (exp_test): Likewise.
+ (sin_test): Likewise.
+ (sqrt_test): Likewise.
+ (cpow_test): Likewise.
+ (csqrt_test): Likewise.
+ (cexp_test): Correct typo in gcc version test.
+
+1997-12-02 17:14 Philip Blundell <pb@nexus.co.uk>
+
+ * sysdeps/arm/__longjmp.S: Define _SETJMP_H before including
+ <bits/setjmp.h>.
+ * sysdeps/arm/setjmp.S: Likewise.
+
+ * sysdeps/unix/sysv/linux/arm/bits/mman.h: New file.
+
+1997-12-02 18:07 Philip Blundell <pb@nexus.co.uk>
+
+ * stdio/stdio.h: Add prototype for tmpfile64().
+
+1997-12-02 17:47 Philip Blundell <pb@nexus.co.uk>
+
+ * stdio/stdio.h (__stdio_gen_tempname): Add extra argument to
+ prototype to keep in step with libio version.
+
+ * stdio-common/tmpfile64.c: Include <errno.h> for ENOSYS.
+
+1997-12-02 17:41 Philip Blundell <pb@nexus.co.uk>
+
+ * sysdeps/generic/Makefile: Don't try to use make_siglist if
+ cross-compiling.
+
+1997-12-02 01:18 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/i386/clone.S: When cloned process returns
+ load GOT ptr before jumping to _exit.
+ Reported by Xavier Leroy.
+
+1997-12-01 17:27 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makefile (subdirs): Add iconvdata and localedata.
+
+ * iconv/gconv.h: Define UNKNOWN_10646_CHAR as error value.
+
+ * iconv/gconv_conf.c (read_conf_file): Little optimization.
+
+ * iconvdata/8bit-gap.c: New file.
+ * iconvdata/8bit-generic.c: Renamed from ...
+ * iconvdata/iso8859-generic.c: ...this.
+ * iconvdata/configure: Removed.
+ * iconvdata/Makefile: Add new modules and better rules.
+ * iconvdata/iso6937.c: Minor bug fixes.
+ * iconvdata/iso8859-1.c: Likewise.
+ * iconvdata/t61.c: Likewise.
+ * iconvdata/iso8859-2.c: Change to use 8bit-generic.c.
+ Minor bug fixes.
+ * iconvdata/iso8859-3.c: Likewise.
+ * iconvdata/iso8859-4.c: Likewise.
+ * iconvdata/iso8859-5.c: Likewise.
+ * iconvdata/iso8859-6.c: Likewise.
+ * iconvdata/iso8859-7.c: Likewise.
+ * iconvdata/iso8859-8.c: Likewise.
+ * iconvdata/iso8859-9.c: Likewise.
+ * iconvdata/iso8859-10.c: Likewise.
+ * iconvdata/ebcdic-at-de-a.c: New file.
+ * iconvdata/ebcdic-at-de.c: New file.
+ * iconvdata/ebcdic-ca-fr.c: New file.
+ * iconvdata/hp-roman8.c: New file.
+ * iconvdata/koi-8.c: New file.
+ * iconvdata/koi8-r.c: New file.
+ * iconvdata/koi8-h.c: New file.
+ * iconvdata/latin-greek-1.c: New file.
+ * iconvdata/latin-greek-1.h: New file.
+ * iconvdata/latin-greek.c: New file.
+ * iconvdata/latin-greek.h: New file.
+ * iconvdata/jis0201.c: New file.
+ * iconvdata/jis0201.h: New file.
+ * iconvdata/jis0208.c: New file.
+ * iconvdata/jis0208.h: New file.
+ * iconvdata/jis0212.c: New file.
+ * iconvdata/jis0212.h: New file.
+ * iconvdata/sjis.c: New file.
+ * iconvdata/gap.pl: New file. Script to generate table header.
+ * iconvdata/gaptab.pl: New file.
+ * iconvdata/gconv-modules: Add info about new modules.
+
+ * locale/programs/charmap.c: Also examine alias names given in charmap
+ files.
+
+ * localedata/*: Add to here from add-on. We need the information
+ to generate tables for iconv.
+
+ Update from db-2.3.14.
+ * db2/Makefile: Updated.
+ * db2/config.h: Likewise.
+ * db2/db.h: Likewise.
+ * db2/db_int.h: Likewise.
+ * db2/btree/bt_cursor.c: Likewise.
+ * db2/btree/bt_delete.c: Likewise.
+ * db2/btree/bt_put.c: Likewise.
+ * db2/btree/bt_search.c: Likewise.
+ * db2/btree/bt_split.c: Likewise.
+ * db2/btree/btree_auto.c: Likewise.
+ * db2/common/db_appinit.c: Likewise.
+ * db2/common/db_apprec.c: Likewise.
+ * db2/common/db_err.c: Likewise.
+ * db2/common/db_region.c: Likewise.
+ * db2/db/db_auto.c: Likewise.
+ * db2/db/db_dispatch.c: Likewise.
+ * db2/db/db_ret.c: Likewise.
+ * db2/dbm/dbm.c: Likewise.
+ * db2/hash/hash_auto.c: Likewise.
+ * db2/include/btree_ext.h: Likewise.
+ * db2/include/common_ext.h: Likewise.
+ * db2/include/db.h.src: Likewise.
+ * db2/include/db_cxx.h: Likewise.
+ * db2/include/db_ext.h: Likewise.
+ * db2/include/db_int.h.src: Likewise.
+ * db2/include/lock.h: Likewise.
+ * db2/include/log.h: Likewise.
+ * db2/include/mp.h: Likewise.
+ * db2/include/mp_ext.h: Likewise.
+ * db2/include/os_ext.h: Likewise.
+ * db2/include/os_func.h: Likewise.
+ * db2/lock/lock.c: Likewise.
+ * db2/lock/lock_deadlock.c: Likewise.
+ * db2/log/log.c: Likewise.
+ * db2/log/log_archive.c: Likewise.
+ * db2/log/log_auto.c: Likewise.
+ * db2/log/log_get.c: Likewise.
+ * db2/log/log_put.c: Likewise.
+ * db2/mp/mp_bh.c: Likewise.
+ * db2/mp/mp_fget.c: Likewise.
+ * db2/mp/mp_fopen.c: Likewise.
+ * db2/mp/mp_fput.c: Likewise.
+ * db2/mp/mp_fset.c: Likewise.
+ * db2/mp/mp_open.c: Likewise.
+ * db2/mp/mp_pr.c: Likewise.
+ * db2/mp/mp_region.c: Likewise.
+ * db2/mp/mp_sync.c: Likewise.
+ * db2/mutex/README: Likewise.
+ * db2/mutex/mutex.c: Likewise.
+ * db2/os/os_open.c: Likewise.
+ * db2/os/os_func.c: Removed.
+ * db2/os/os_config.c: New file.
+ * db2/os/os_spin.c: New file.
+ * db2/txn/txn.c: Likewise.
+ * db2/txn/txn_auto.c: Likewise.
+
+1997-11-30 06:01 Ulrich Drepper <drepper@cygnus.com>
+
+ * posix/sys/wait.h (__WAIT_INT): Don't use complex version with
+ __typeof for C++ since this fails for class members.
+ Reported by Neal Becker <neal@ctd.comsat.com>.
+
+1997-11-28 11:21 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ * configure.in: Check for a working makeinfo (3.11 or better).
+ * config.make.in: Add MAKEINFO to be substituted.
+ * manual/Makefile: Don't update info if makeinfo is too old.
+
+1997-11-30 05:21 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/alpha/setjmp.S: Define _ASM and _SETJMP_H to get definitions.
+ * sysdeps/alpha/__longjmp.S: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/kernel_termios.h: Include <termios.h>
+ not <bits/termios.h>.
+
+ * sysdeps/unix/sysv/linux/alpha/syscalls.list: Define syscall as
+ __llseek and make llseek and lseek64 weak aliases.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
+ Patches by a sun <asun@zoology.washington.edu>.
+
+1997-11-29 19:19 Zack Weinberg <zack@rabi.phys.columbia.edu>
+
+ * misc/sys/syslog.h: Delete KERNEL preprocessor conditional.
+ * sysdeps/unix/sysv/linux/powerpc/bits/termios.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/bits/termios.h: Likewise.
+ * misc/sys/syslog.h: Clean up BSD header.
+
+1997-11-29 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * sysdeps/unix/sysv/linux/bits/in.h: Add changes from Linux 2.1.67.
+
+ * sysdeps/libm-ieee754/s_ctan.c (__ctan): Raise invalid exception
+ for ctan(+-inf,x).
+ * sysdeps/libm-ieee754/s_ctanl.c (__ctanl): Likewise.
+ * sysdeps/libm-ieee754/s_ctanf.c (__ctanf): Likewise.
+
+ * math/libm-test.c (csqrt_test): Add tests for cabs, carg, ctan,
+ csqrt (-1), ctanh(i*pi/4).
+
+1997-11-26 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/generic/bits/confname.h: Fix comma in enumerator.
+
+1997-11-28 13:28 Philip Blundell <Philip.Blundell@pobox.com>
+
+ * sysdeps/unix/sysv/linux/net/if_arp.h: Add more ARPHRD_ constants.
+
+1997-11-26 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * wcsmbs/wcrtomb.c (__wcrtomb): Remove unused variable fake.
+
+1997-11-26 21:28 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/posix/getcwd.c (GETCWD_STORYGE_CLASS): Remove definition
+ and use. Define GETCWD_RETURN_TYPE instead and use it.
+ * sysdeps/unix/sysv/linux/getcwd.c: Define GETCWD_RETURN_TYPE instead
+ of GETCWD_STORYGE_CLASS and put the return type and the
+ `internal_function' in the right order for gcc 2.7.2.
+
+1997-11-26 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * sysdeps/unix/sysv/linux/sys/module.h: Remove file. It's
+ incompatible with Linux 2.1.x. Packages using modules
+ (e.g. modutils) should/do provide their own version. Suggested by
+ Richard Henderson.
+
+ * sysdeps/unix/sysv/linux/Dist: Remove sys/module.h.
+
+ * sysdeps/unix/sysv/linux/Makefile (sysdep_headers)
+ [$(subdir)=socket]: Remove sys/module.h.
+
+1997-11-26 04:28 Ulrich Drepper <drepper@cygnus.com>
+
+ * eld/dl-profile.c (_dl_start_profile): Avoid FP calculation when
+ computing s_scale. Patch by a sun <asun@zoology.washington.edu>.
+
+ * iconv/gconv_close.c: Correct freeing of descriptor data.
+ * iconv/gconv_simple.c: Return correct error values for illegal or
+ incomplete characters.
+
+ * Makefile (iconvdata/%): Special goal to simplify iconvdata
+ development.
+ * iconvdata/Makefile: New file.
+ * iconvdata/configure: Likewise.
+ * iconvdata/extra-module.mk: Likewise.
+ * iconvdata/gconv-modules: Likewise.
+ * iconvdata/iso6937.c: Likewise.
+ * iconvdata/iso8859-1.c: Likewise.
+ * iconvdata/iso8859-10.c: Likewise.
+ * iconvdata/iso8859-10.h: Likewise.
+ * iconvdata/iso8859-2.c: Likewise.
+ * iconvdata/iso8859-2.h: Likewise.
+ * iconvdata/iso8859-3.c: Likewise.
+ * iconvdata/iso8859-3.h: Likewise.
+ * iconvdata/iso8859-4.c: Likewise.
+ * iconvdata/iso8859-4.h: Likewise.
+ * iconvdata/iso8859-5.c: Likewise.
+ * iconvdata/iso8859-5.h: Likewise.
+ * iconvdata/iso8859-6.c: Likewise.
+ * iconvdata/iso8859-6.h: Likewise.
+ * iconvdata/iso8859-7.c: Likewise.
+ * iconvdata/iso8859-7.h: Likewise.
+ * iconvdata/iso8859-8.c: Likewise.
+ * iconvdata/iso8859-8.h: Likewise.
+ * iconvdata/iso8859-9.c: Likewise.
+ * iconvdata/iso8859-9.h: Likewise.
+ * iconvdata/iso8859-generic.c: Likewise.
+ * iconvdata/t61.c: Likewise.
+
+ * string/Makefile (routines): Add strcasestr.
+ * string/string.h: Add prototype for strcasestr.
+ * sysdeps/generic/strcasestr.c: New file.
+ * wcsmbs/mbrtowc.c: Simplify special case a bit.
+ * wcsmbs/wcrtomb.c: Likewise.
+ * wcsmbs/mbsnrtowcs.c: Correctly handle incomplete characters.
+ * wcsmbs/wcsnrtombs.c: Likewise.
+ * wcsmbs/mbsrtowcs.c: Make sure SRC argument is correct when
+ partial character is read.
+ * wcsmbs/wcsrtombs.c: Likewise.
+ * wcsmbs/wmemrtombs.c: Likewise.
+ * wcsmbs/wmemrtowcs.c: Likewise.
+
+ * io/ftw.h: Include <sys/stat.h> instead of <bits/stat.h>.
+ * login/pty.h: Include <sys/ioctl.h> instead og <bits/ioctl-types.h>.
+ * sysdeps/i386/__longjmp.S: Define _SETJMP_H.
+ * sysdeps/i386/elf/setjmp.S: Likewise.
+ * sysdeps/unix/sysv/linux/kernel_termios.h: Do include
+ <bits/termios.h>.
+
+ * sysdeps/posix/mk-stdiolim.c: Output file with comment.
+ * sysdeps/unix/sysv/linux/stdio_lim.h.in: Add comment.
+
+ * sysdeps/unix/sysv/linux/sys/mman.h: Pretty print.
+ * sysvipc/sys/ipc.h: Likewise.
+ * sysvipc/sys/msg.h: Likewise.
+ * sysvipc/sys/sem.h: Likewise.
+ * sysvipc/sys/shm.h: Likewise.
+
+ * sysdeps/alpha/bits/endian.h: Issue error message if the header is
+ used directly.
+ * sysdeps/alpha/bits/setjmp.h: Likewise.
+ * sysdeps/alpha/fpu/bits/fenv.h: Likewise.
+ * sysdeps/arm/bits/endian.h: Likewise.
+ * sysdeps/arm/bits/setjmp.h: Likewise.
+ * sysdeps/generic/bits/byteswap.h: Likewise.
+ * sysdeps/generic/bits/confname.h: Likewise.
+ * sysdeps/generic/bits/dirent.h: Likewise.
+ * sysdeps/generic/bits/dlfcn.h: Likewise.
+ * sysdeps/generic/bits/endian.h: Likewise.
+ * sysdeps/generic/bits/fenv.h: Likewise.
+ * sysdeps/generic/bits/huge_val.h: Likewise.
+ * sysdeps/generic/bits/in.h: Likewise.
+ * sysdeps/generic/bits/ioctl-types.h: Likewise.
+ * sysdeps/generic/bits/ioctls.h: Likewise.
+ * sysdeps/generic/bits/ipc.h: Likewise.
+ * sysdeps/generic/bits/msq.h: Likewise.
+ * sysdeps/generic/bits/poll.h: Likewise.
+ * sysdeps/generic/bits/resource.h: Likewise.
+ * sysdeps/generic/bits/sched.h: Likewise.
+ * sysdeps/generic/bits/sem.h: Likewise.
+ * sysdeps/generic/bits/setjmp.h: Likewise.
+ * sysdeps/generic/bits/shm.h: Likewise.
+ * sysdeps/generic/bits/sigaction.h: Likewise.
+ * sysdeps/generic/bits/sigcontext.h: Likewise.
+ * sysdeps/generic/bits/socket.h: Likewise.
+ * sysdeps/generic/bits/stat.h: Likewise.
+ * sysdeps/generic/bits/statfs.h: Likewise.
+ * sysdeps/generic/bits/stdio_lim.h: Likewise.
+ * sysdeps/generic/bits/termios.h: Likewise.
+ * sysdeps/generic/bits/time.h: Likewise.
+ * sysdeps/generic/bits/uio.h: Likewise.
+ * sysdeps/generic/bits/utmp.h: Likewise.
+ * sysdeps/generic/bits/utmpx.h: Likewise.
+ * sysdeps/generic/bits/utsname.h: Likewise.
+ * sysdeps/generic/bits/waitflags.h: Likewise.
+ * sysdeps/generic/bits/waitstatus.h: Likewise.
+ * sysdeps/gnu/bits/utmp.h: Likewise.
+ * sysdeps/gnu/bits/utmpx.h: Likewise.
+ * sysdeps/i386/bits/byteswap.h: Likewise.
+ * sysdeps/i386/bits/endian.h: Likewise.
+ * sysdeps/i386/bits/huge_val.h: Likewise.
+ * sysdeps/i386/bits/setjmp.h: Likewise.
+ * sysdeps/i386/fpu/bits/fenv.h: Likewise.
+ * sysdeps/ieee754/bits/huge_val.h: Likewise.
+ * sysdeps/m68k/bits/byteswap.h: Likewise.
+ * sysdeps/m68k/bits/endian.h: Likewise.
+ * sysdeps/m68k/bits/setjmp.h: Likewise.
+ * sysdeps/m68k/fpu/bits/fenv.h: Likewise.
+ * sysdeps/mach/hurd/alpha/bits/sigcontext.h: Likewise.
+ * sysdeps/mach/hurd/bits/ioctls.h: Likewise.
+ * sysdeps/mach/hurd/bits/stat.h: Likewise.
+ * sysdeps/mach/hurd/hppa/bits/sigcontext.h: Likewise.
+ * sysdeps/mach/hurd/i386/bits/sigcontext.h: Likewise.
+ * sysdeps/mach/hurd/mips/bits/sigcontext.h: Likewise.
+ * sysdeps/mips/bits/dlfcn.h: Likewise.
+ * sysdeps/mips/bits/endian.h: Likewise.
+ * sysdeps/mips/bits/setjmp.h: Likewise.
+ * sysdeps/mips/dec/bits/endian.h: Likewise.
+ * sysdeps/mips/mips64/bits/setjmp.h: Likewise.
+ * sysdeps/mips/mipsel/bits/endian.h: Likewise.
+ * sysdeps/mips/p40/bits/endian.h: Likewise.
+ * sysdeps/powerpc/bits/endian.h: Likewise.
+ * sysdeps/powerpc/bits/fenv.h: Likewise.
+ * sysdeps/powerpc/bits/setjmp.h: Likewise.
+ * sysdeps/sparc/sparc32/bits/endian.h: Likewise.
+ * sysdeps/sparc/sparc32/bits/setjmp.h: Likewise.
+ * sysdeps/sparc/sparc32/fpu/bits/fenv.h: Likewise.
+ * sysdeps/sparc/sparc64/bits/endian.h: Likewise.
+ * sysdeps/sparc/sparc64/fpu/bits/fenv.h: Likewise.
+ * sysdeps/unix/bsd/bits/dirent.h: Likewise.
+ * sysdeps/unix/bsd/bits/stat.h: Likewise.
+ * sysdeps/unix/bsd/bits/waitflags.h: Likewise.
+ * sysdeps/unix/bsd/bsd4.4/bits/dirent.h: Likewise.
+ * sysdeps/unix/bsd/osf/alpha/bits/stat.h: Likewise.
+ * sysdeps/unix/bsd/osf/bits/sigaction.h: Likewise.
+ * sysdeps/unix/bsd/sun/m68k/bits/sigcontext.h: Likewise.
+ * sysdeps/unix/bsd/sun/sparc/bits/sigcontext.h: Likewise.
+ * sysdeps/unix/bsd/sun/sunos4/bits/resource.h: Likewise.
+ * sysdeps/unix/bsd/sun/sunos4/bits/termios.h: Likewise.
+ * sysdeps/unix/bsd/sun/sunos4/bits/utsname.h: Likewise.
+ * sysdeps/unix/bsd/ultrix4/bits/utsname.h: Likewise.
+ * sysdeps/unix/bsd/ultrix4/mips/bits/sigcontext.h: Likewise.
+ * sysdeps/unix/common/bits/dirent.h: Likewise.
+ * sysdeps/unix/sysv/bits/dirent.h: Likewise.
+ * sysdeps/unix/sysv/bits/stat.h: Likewise.
+ * sysdeps/unix/sysv/bits/utmp.h: Likewise.
+ * sysdeps/unix/sysv/bits/utsname.h: Likewise.
+ * sysdeps/unix/sysv/irix4/bits/confname.h: Likewise.
+ * sysdeps/unix/sysv/irix4/bits/stat.h: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/bits/ioctls.h: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/bits/ipc.h: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/bits/mman.h: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/bits/sigaction.h: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/bits/stat.h: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/bits/termios.h: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/bits/time.h: Likewise.
+ * sysdeps/unix/sysv/linux/bits/dirent.h: Likewise.
+ * sysdeps/unix/sysv/linux/bits/in.h: Likewise.
+ * sysdeps/unix/sysv/linux/bits/ioctl-types.h: Likewise.
+ * sysdeps/unix/sysv/linux/bits/ioctls.h: Likewise.
+ * sysdeps/unix/sysv/linux/bits/ipc.h: Likewise.
+ * sysdeps/unix/sysv/linux/bits/msq.h: Likewise.
+ * sysdeps/unix/sysv/linux/bits/poll.h: Likewise.
+ * sysdeps/unix/sysv/linux/bits/resource.h: Likewise.
+ * sysdeps/unix/sysv/linux/bits/sched.h: Likewise.
+ * sysdeps/unix/sysv/linux/bits/sem.h: Likewise.
+ * sysdeps/unix/sysv/linux/bits/shm.h: Likewise.
+ * sysdeps/unix/sysv/linux/bits/sigaction.h: Likewise.
+ * sysdeps/unix/sysv/linux/bits/sigcontext.h: Likewise.
+ * sysdeps/unix/sysv/linux/bits/socket.h: Likewise.
+ * sysdeps/unix/sysv/linux/bits/stat.h: Likewise.
+ * sysdeps/unix/sysv/linux/bits/statfs.h: Likewise.
+ * sysdeps/unix/sysv/linux/bits/termios.h: Likewise.
+ * sysdeps/unix/sysv/linux/bits/time.h: Likewise.
+ * sysdeps/unix/sysv/linux/bits/uio.h: Likewise.
+ * sysdeps/unix/sysv/linux/bits/utsname.h: Likewise.
+ * sysdeps/unix/sysv/linux/bits/waitflags.h: Likewise.
+ * sysdeps/unix/sysv/linux/i386/bits/mman.h: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/bits/mman.h: Likewise.
+ * sysdeps/unix/sysv/linux/m68k/bits/poll.h: Likewise.
+ * sysdeps/unix/sysv/linux/mips/bits/endian.h: Likewise.
+ * sysdeps/unix/sysv/linux/mips/bits/ioctl-types.h: Likewise.
+ * sysdeps/unix/sysv/linux/mips/bits/ipc.h: Likewise.
+ * sysdeps/unix/sysv/linux/mips/bits/mman.h: Likewise.
+ * sysdeps/unix/sysv/linux/mips/bits/poll.h: Likewise.
+ * sysdeps/unix/sysv/linux/mips/bits/shm.h: Likewise.
+ * sysdeps/unix/sysv/linux/mips/bits/sigaction.h: Likewise.
+ * sysdeps/unix/sysv/linux/mips/bits/socket.h: Likewise.
+ * sysdeps/unix/sysv/linux/mips/bits/stat.h: Likewise.
+ * sysdeps/unix/sysv/linux/mips/bits/statfs.h: Likewise.
+ * sysdeps/unix/sysv/linux/mips/bits/termios.h: Likewise.
+ * sysdeps/unix/sysv/linux/mips/bits/time.h: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/bits/ioctl-types.h: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/bits/mman.h: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/bits/termios.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/bits/ioctls.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/bits/poll.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/bits/sigaction.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/bits/termios.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/bits/mman.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/bits/mman.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/bits/setjmp.h: Likewise.
+ * sysdeps/unix/sysv/minix/bits/sigaction.h: Likewise.
+ * sysdeps/unix/sysv/sco3.2.4/bits/confname.h: Likewise.
+ * sysdeps/unix/sysv/sco3.2.4/bits/sigaction.h: Likewise.
+ * sysdeps/unix/sysv/sysv4/bits/sigaction.h: Likewise.
+ * sysdeps/unix/sysv/sysv4/bits/utsname.h: Likewise.
+ * sysdeps/unix/sysv/sysv4/bits/waitflags.h: Likewise.
+ * sysdeps/unix/sysv/sysv4/i386/bits/stat.h: Likewise.
+ * sysdeps/unix/sysv/sysv4/solaris2/bits/stat.h: Likewise.
+ * sysdeps/unix/sysv/sysv4/solaris2/sparc/bits/sigcontext.h: Likewise.
+ * sysdeps/vax/bits/huge_val.h: Likewise.
+ * sysdeps/vax/bits/setjmp.h: Likewise.
+ * sysdeps/wordsize-32/bits/elfclass.h: Likewise.
+ * sysdeps/wordsize-64/bits/elfclass.h: Likewise.
+
+1997-11-25 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * libio/stdio.h: Correct comment of sys_nerr/sys_errlist.
+
+1997-11-25 Paul Eggert <eggert@twinsun.com>
+
+ * strftime.c (strftime):
+ No longer any need to undef or declare if emacs is defined.
+ (my_strftime): When checking a -1 returned by mktime, don't blow up
+ if localtime_r returns NULL.
+
+1997-11-24 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * README.template: Fix spelling.
+
+1997-11-25 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * configure.in: Enhance --enable-add-ons description a wee bit.
+
+1997-11-24 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * glibcbug.in: Add more information of build environment and flags.
+
+1997-11-23 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/posix/getcwd.c: Recognize EOF from readdir and translate
+ it into ENOENT.
+
+1997-11-24 03:01 Ulrich Drepper <drepper@cygnus.com>
+
+ * elf/dl-support.c: Call __libc_init_secure to make sure
+ __libc_enable_secure is defined early.
+ * sysdeps/generic/enbl-secure.c: Change function name to
+ __libc_init_secure and make it global instead of a constructor.
+
+ * iconv/gconv.c: Fix lots of bugs.
+ * iconv/gconv.h: Likewise.
+ * iconv/gconv_builtin.h: Likewise.
+ * iconv/gconv_close.c: Likewise.
+ * iconv/gconv_conf.c: Likewise.
+ * iconv/gconv_db.c: Likewise.
+ * iconv/gconv_dl.c: Likewise.
+ * iconv/gconv_open.c: Likewise.
+ * iconv/gconv_simple.c: Likewise.
+ * iconv/iconv.c: Likewise.
+ * iconv/iconv_close.c: Likewise.
+ * iconv/iconv_open.c: Likewise.
+
+ * wcsmbs/Makefile (routines): Add wmemrtowcs and wmemrtombs.
+ * wcsmbs/wchar.h: Add prototypes for wmemrtowcs and wmemrtombs.
+ * wcsmbs/wmemrtombs.c: New file.
+ * wcsmbs/wmemrtowcs.c: New file.
+
+1997-11-22 19:28 Ulrich Drepper <drepper@cygnus.com>
+
+ * iconv/gconv_simple.c: Fix lots of bugs.
+ * iconv/iconv_open.c: Normalize names before passing them to
+ __gconv_open.
+
+ * libio/iolibio.h: Add prototypes for _IO_{new,old}_fclose.
+
+ * libio/iopopen.c: Check for correct mode argument and punt otherwise.
+ * stdio-common/test-popen.c: Add test for above change.
+
+ * math/libm-test.c: Print test results also using %a format,
+ specified in PRINTF_XEXPR macro.
+ * math/test-double.c: Define PRINTF_XEXPR.
+ * math/test-float.c: Likewise.
+ * math/test-ldouble.c: Likewise.
+ * math/test-idouble.c: Likewise.
+ * math/test-ifloat.c: Likewise.
+ * math/test-ildoubl.c: Likewise.
+
+ * stdio-common/vfscanf.c: Recognize a in format specifier only as
+ modifier if used before s, S, or [. Otherwise it's the hexadecimal
+ FP number format.
+
+ * stdlib/strtod.c: Little code cleanup.
+
+ * sysdeps/i386/Makefile: Define __LIBC_INTERNAL_MATH_INLINES for
+ compiling in math subdir.
+
+ * sysdeps/m68k/fpu/e_acos.c: Define __LIBC_INTERNAL_MATH_INLINES
+ instead of __LIBC_M81_MATH_INLINES.
+ * sysdeps/m68k/fpu/e_atan2.c: Likewise.
+ * sysdeps/m68k/fpu/e_fmod.c: Likewise.
+ * sysdeps/m68k/fpu/e_pow.c: Likewise.
+ * sysdeps/m68k/fpu/e_scalb.c: Likewise.
+ * sysdeps/m68k/fpu/k_cos.c: Likewise.
+ * sysdeps/m68k/fpu/k_sin.c: Likewise.
+ * sysdeps/m68k/fpu/k_tan.c: Likewise.
+ * sysdeps/m68k/fpu/s_atan.c: Likewise.
+ * sysdeps/m68k/fpu/s_ccos.c: Likewise.
+ * sysdeps/m68k/fpu/s_ccosh.c: Likewise.
+ * sysdeps/m68k/fpu/s_cexp.c: Likewise.
+ * sysdeps/m68k/fpu/s_csin.c: Likewise.
+ * sysdeps/m68k/fpu/s_csinh.c: Likewise.
+ * sysdeps/m68k/fpu/s_frexp.c: Likewise.
+ * sysdeps/m68k/fpu/s_ilogb.c: Likewise.
+ * sysdeps/m68k/fpu/s_isinf.c: Likewise.
+ * sysdeps/m68k/fpu/s_llrint.c: Likewise.
+ * sysdeps/m68k/fpu/s_llrintf.c: Likewise.
+ * sysdeps/m68k/fpu/s_llrintl.c: Likewise.
+ * sysdeps/m68k/fpu/s_lrint.c: Likewise.
+ * sysdeps/m68k/fpu/s_modf.c: Likewise.
+ * sysdeps/m68k/fpu/s_remquo.c: Likewise.
+ * sysdeps/m68k/fpu/s_scalbn.c: Likewise.
+ * sysdeps/m68k/fpu/s_sincos.c: Likewise.
+ * sysdeps/m68k/fpu/bits/mathinline.h: Define optimizations if
+ __LIBC_INTERNAL_MATH_INLINES is defined.
+
+ * sysdeps/i386/fpu/bits/mathinline.h: Define special i686 versions
+ of compare macros from ISO C 9X. Optimize generic versions a bit.
+ Define __signbit inline functions and __ieee754_sqrt which can be
+ used if the ompiler is fixed.
+
+ * sysdeps/posix/sysv_signal.c: Define sysv_signal as weak alias.
+
+1997-11-20 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * Makerules ($(common-objpfx)stub-$(subdir)): Look for
+ sysdeps/generic in the whole dep file, not only in the first line.
+
+1997-11-20 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/ieee754/bits/nan.h (__nan) [!__GNUC__]: Fix type.
+
+1997-11-19 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * manual/arith.texi (Imaginary Unit): Move @end deftypevr to right
+ place.
+
+1997-11-19 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * elf/dl-error.c (_dl_signal_error): Only print colon if OBJNAME
+ is non-empty.
+
+1997-11-20 16:51 Ulrich Drepper <drepper@cygnus.com>
+
+ * malloc/malloc.c (malloc_update_mallinfo): Initialize struct for
+ return value.
+
+1997-11-19 21:36 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/getcwd.c: Free allocated buffer if
+ readlink succeeds but the return value is too long.
+
+ * stdio-common/printf_fphex.c: Determine sign of number correctly.
+
+1997-11-19 02:45 Ulrich Drepper <drepper@cygnus.com>
+
+ * libc.map: Export __divl, __reml, __divq, __remq, __divqu and
+ __remqu for Alpha.
+
+1997-11-18 23:08 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/generic/sys/ucontext.h: Stub context file.
+
+ * libio/iofprintf.c: Removed. We use the stdio-common version.
+
+ * manual/Makefile (distribute): Add stdio-fp.c.
+
+ * sysdeps/powerpc/Dist: Add ppc-mcount.S.
+
+ * db2/Makefile (distribute): Add include/os_func.h, README and
+ mutex/tsl_parisc.s.
+
+ * hesiod/Makefile (distribute): Add README.hesiod.
+
+1997-11-18 22:14 Ulrich Drepper <drepper@cygnus.com>
+
+ * iconv/gconv.c: Correctly call transformation function.
+
+ * manual/maint.texi: Document need of binutils 2.8.1.0.17.
+
+1997-11-13 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * sysdeps/libm-ieee754/s_remquo.c (__remquo): Fix function (gave
+ wrong results for e.g. remquo (3,2, &x)).
+ * sysdeps/libm-ieee754/s_remquof.c (__remquof): Likewise.
+ * sysdeps/libm-ieee754/s_remquol.c (__remquol): Likewise.
+
+1997-11-18 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * configure.in (ld --version-script): Test if the same symbol
+ maybe defined in all versions (needed by recent changes to
+ libc.map and supported with binutils 2.8.1.0.17) and issue warning
+ if versioning is not supported/enabled.
+ (bash test): Correct test case.
+
+ * math/libm-test.c: Added counting/reporting of number of test cases.
+
+ * elf/Makefile ($(objpfx)rtldtbl.h): gawk is not longer required,
+ use awk instead.
+
+ * sysdeps/unix/sysv/linux/net/if.h: Add __BEGIN_DECLS/__END_DECLS.
+
+1997-11-18 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * elf/dl-load.c (_dl_init_paths): Correct __mempcpy logic.
+
+1997-11-18 18:04 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/generic/pty.c: Define REVOKE to use revoke function.
+ Replace revoke call by use of REVOKE.
+ * sysdeps/unix/sysv/linux/pty.c: New file. Define REVOKE as
+ empty and #include generic version.
+ Suggested by Zack Weinberg <zack@rabi.phys.columbia.edu>.
+
+1997-11-18 16:02 Ulrich Drepper <drepper@cygnus.com>
+
+ * libc.map: Add socket functions with __libc_* names.
+ Reported by Andreas Jaeger.
+
+1997-11-18 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * libc.map: Tidy up (remove duplicates, sort entries).
+
+1997-11-18 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * iconv/gconv.h: Add __BEGIN_DECLS/__END_DECLS.
+
+1997-11-18 06:45 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/generic/pty.c: Make thread safe. Fix bug when calling
+ again after successful call.
+ Patch by Marc Lehmann <pcg@goof.com>.
+
+1997-11-17 Paul Eggert <eggert@twinsun.com>
+
+ * time/mktime.c, time/strftime.c (_REENTRANT): #define,
+ as some hosts need this to declare localtime_r properly.
+
+1997-11-18 06:08 Ulrich Drepper <drepper@cygnus.com>
+
+ * libc.map: Add iconv_open, iconv, and iconv_close.
+
+1997-11-18 02:31 Ulrich Drepper <drepper@cygnus.com>
+
+ * iconv/Makefile: New file.
+ * iconv/gconv.c: New file.
+ * iconv/gconv.h: New file.
+ * iconv/gconv_builtin.c: New file.
+ * iconv/gconv_builtin.h: New file.
+ * iconv/gconv_close.c: New file.
+ * iconv/gconv_conf.c: New file.
+ * iconv/gconv_db.c: New file.
+ * iconv/gconv_dl.c: New file.
+ * iconv/gconv_open.c: New file.
+ * iconv/gconv_simple.c: New file.
+ * iconv/iconv.c: New file.
+ * iconv/iconv.h: New file.
+ * iconv/iconv_close.c: New file.
+ * iconv/iconv_open.c: New file.
+ * include/gconv.h: New file.
+
+ * Makeconfig: Define gconvdir.
+ * Makefile (subdirs): Add iconv.
+
+ * string/bits/string2.h: Add optimization for strtok_r.
+
+ * sysdeps/generic/_G_config.h: Define __need_NULL to get definition
+ for NULL.
+ * sysdeps/unix/sysv/linux/_G_config.h: Likewise.
+ Reported by H.J. Lu <hjl@gnu.ai.mit.edu>.
+
+ * configure.in: Correct test for bash2.
+ Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
+
+ * locale/Makefile (CFLAGS-charmap.c): Add -Wno-char-subscripts.
+ (CFLAGS-locfile.c): Likewise.
+ Suggested by Zack Weinberg <zack@rabi.phys.columbia.edu>.
+
+ * misc/hsearch_r.c (hsearch_r): Avoid undefinitely search for
+ non-existing entry if the table is full.
+
+ * posix/regex.h: Pretty print.
+
+ * stdio-common/printf_fp.c: Don't define NDEBUG if already defined.
+
+ * sysdeps/posix/ctermid.c: Simplify a bit.
+
+ * sysdeps/unix/sysv/linux/net/if.h: Pretty print.
+
+1997-11-17 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * sysdeps/unix/sysv/linux/sys/quota.h: Add include for
+ <sys/types.h> instead of <asm/types.h>.
+
+1997-11-16 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * math/libm-test.c (asin_test): Add epsilon for asin (0.5).
+
+1997-11-16 17:09 H.J. Lu <hjl@gnu.ai.mit.edu>
+
+ * libc.map (_IO_stdin_, _IO_stdout_, _IO_stderr_, _IO_fopen,
+ fopen, freopen, _IO_fclose, fclose): Added to GLIBC_2.0.
+ (_IO_stdin_, _IO_stdout_, _IO_stderr_): Removed from GLIBC_2.1.
+ (_IO_2_1_stdin_, _IO_2_1_stdout_, _IO_2_1_stderr_, _IO_fclose,
+ fclose): Added to GLIBC_2.1.
+
+ * libio/Makefile (routines, shared-only-routines): Add
+ oldiofclose. Remove oldfreopen.
+
+ * libio/freopen.c (freopen): When PIC is defined, call
+ _IO_old_freopen () for old stdio.
+
+ * libio/iofclose.c (_IO_new_fclose): Renamed from _IO_fclose.
+ (_IO_fclose, fclose): Use _IO_new_fclose as default version
+ for GLIBC_2.1.
+
+ * libio/iolibio.h (_IO_old_freopen): Use _IO_old_file_close_it
+ instead of _IO_file_close_it.
+
+ * libio/libio.h (_IO_stdin_, _IO_stdout_, _IO_stderr_): Changed
+ to _IO_2_1_stdxxx_.
+ (_IO_stdin, _IO_stdout, _IO_stderr): Declare as extern if _LIBC
+ is defined.
+
+ * libio/libioP.h (_IO_old_do_flush): New.
+
+ * libio/oldfileops.c (_IO_old_file_close_it,
+ _IO_old_file_finish, _IO_old_file_overflow, _IO_old_file_sync):
+ Call _IO_old_do_flush () instead of _IO_do_flush ().
+ (_IO_old_file_xsputn): Call _IO_old_do_write () instead of
+ _IO_do_write ().
+
+ * libio/oldiofopen.c (_IO_old_fopen): Call _IO_old_file_init ()
+ instead of _IO_file_init ().
+ Bind old symbols to version GLIBC_2.0.
+
+ * libio/oldstdfiles.c (DEF_STDFILE): Don't use symbol_version.
+ (_IO_old_stdin_, _IO_old_stdout_, _IO_old_stderr_): Changed to
+ _IO_stdxxx_.
+ (_IO_check_libio): New function in .init.
+
+ * libio/oldiofclose.c: New file.
+
+ * libio/stdfiles.c (_IO_new_stdin_, _IO_new_stdout_,
+ _IO_new_stderr_): Changed to _IO_2_1_stdxxx_.
+ (DEF_STDFILE): Don't use default_symbol_version.
+
+ * libio/stdio.c (stdin, stdout, stderr): Set to
+ _IO_2_1_stdxxx_._
+ (_IO_stdin, _IO_stdout, _IO_stderr): New, strong alias of
+ stdxxx.
+
+ * csu/Makefile (distribute): Add init.c.
+ (extra-objs): Add init.o for ELF.
+ (start-installed-name): Add $(objpfx)init.o.
+
+ * csu/init.c: New file.
+
+1997-11-12 08:02 H.J. Lu <hjl@gnu.ai.mit.edu>
+
+ * elf/dl-lookup.c (do_lookup): Don't use the hidden base
+ definition as the default.
+
+1997-08-27 Klaus Espenlaub <kespenla@hydra.informatik.uni-ulm.de>
+
+ * erand48_r.c (__erand48_r): Implement for 32 bit short int.
+
+1997-11-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * elf/genrtldtbl.awk: Replace gensub for compatibility with gawk2
+ (PR 351).
+
+1997-11-16 21:01 Philip Blundell <Philip.Blundell@pobox.com>
+
+ * sysdeps/arm/sysdep.h: Use __APCS_32__ to decide whether or not
+ to preserve condition codes on function call.
+
+1997-11-13 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * sysdeps/generic/s_exp2l.c: Change exp2l to __ieee754_exp2l.
+
+1997-11-14 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * math/libm-test.c (asin_test): Add epsilon for float.
+ (tan_test): Add epsilon for float.
+ (log1p_test): Add epsilon for float.
+ (inverse_functions): Add epsilons.
+
+ * sysdeps/unix/sysv/linux/Makefile (sysdep_headers) [socket]: Add
+ net/if_packet.h.
+
+ * sysdeps/unix/sysv/linux/Dist: Add net/if_packet.h.
+
+1997-11-10 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * md5-crypt/Makefile (extra-objs): Make recursively expanded
+ variable, since $(object-suffixes) is not defined yet.
+
+1997-11-11 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * db2/Makefile (distribute): db185/db185_int.src ->
+ db185/db185_int.h.
+
+1997-11-11 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * misc/tst-fdset.c: Don't require the value of FD_ISSET to be
+ exactly one.
+
+1997-11-11 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/generic/e_acoshl.c: Fix stub_warning: use the user level
+ name.
+ * sysdeps/generic/e_acosl.c: Likewise.
+ * sysdeps/generic/e_asinl.c: Likewise.
+ * sysdeps/generic/e_atan2l.c: Likewise.
+ * sysdeps/generic/e_expl.c: Likewise.
+ * sysdeps/generic/e_fmodl.c: Likewise.
+ * sysdeps/generic/e_j0l.c: Likewise.
+ * sysdeps/generic/e_j1l.c: Likewise.
+ * sysdeps/generic/e_jnl.c: Likewise.
+ * sysdeps/generic/e_lgammal_r.c: Likewise.
+ * sysdeps/generic/e_log10l.c: Likewise.
+ * sysdeps/generic/e_logl.c: Likewise.
+ * sysdeps/generic/e_powl.c: Likewise.
+ * sysdeps/generic/e_sqrtl.c: Likewise.
+ * sysdeps/generic/e_exp2l.c: Likewise.
+
+1997-11-11 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * Make-dist (+sysdep-names): Remove extra paren.
+ * Makefile (distribute): Add stub-tag.h.
+ * elf/Makefile (distribute): Add atomicity.h.
+ * stdlib/Makefile (headers): Add ucontext.h and sys/ucontext.h.
+ * sysdeps/unix/sysv/linux/Makefile (sysdep_headers)
+ [$(subdir)=socket]: Add net/if_packet.h.
+ * sysdeps/alpha/Dist: Remove setjmp_aux.c.
+ * sysdeps/unix/sysv/linux/Dist: Add s_pread64.c, s_pwrite64.c,
+ net/if_packet.h, scsi/sg.h.
+
+1997-11-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * Makefile (install): Quote $(CC) expansion.
+
+1997-11-14 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * sysdeps/unix/sysv/linux/getcwd.c (__getcwd): Added caching of
+ working /proc cwd and no restrictions on path length. Following
+ some ideas from Andi Kleen <ak@muc.de> (PR 350).
+
+1997-11-14 19:14 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
+
+ * nis/nss_compat/compat-grp.c: Remove buggy assert call.
+ * nis/nss_compat/compat-pwd.c: Likewise.
+ * nis/nss_compat/compat-spwd.c: Likewise.
+
+1997-11-14 22:23 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/libm-i387/s_fdim.S: New file.
+ * sysdeps/libm-i387/s_fdimf.S: New file.
+ * sysdeps/libm-i387/s_fdiml.S: New file.
+ * sysdeps/libm-i387/i686/s_fdim.S: New file.
+ * sysdeps/libm-i387/i686/s_fdimf.S: New file.
+ * sysdeps/libm-i387/i686/s_fdiml.S: New file.
+
+1997-11-12 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * string/bits/string2.h (strstr): Avoid warning if HAYSTACK is a
+ pointer to unsigned char.
+
+1997-11-13 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * sysdeps/libm-ieee754/s_llrintf.c (__llrintf): Fix function.
+
+ * sysdeps/libm-ieee754/s_lrintf.c (__lrintf): Fix function.
+
+ * sysdeps/libm-ieee754/s_lrint.c (__lrint): Fix function.
+
+1997-11-12 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * sysdeps/libm-ieee754/s_ilogbf.c: Correct return values for
+ ilogb(0/NaN).
+ * sysdeps/libm-ieee754/s_ilogbl.c: Likewise.
+ * sysdeps/libm-ieee754/s_ilogb.c: Likewise.
+
+1997-11-14 05:44 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/libm-i387/s_fmin.S: New file.
+ * sysdeps/libm-i387/s_fminf.S: New file.
+ * sysdeps/libm-i387/s_fminl.S: New file.
+ * sysdeps/libm-i387/s_fmax.S: New file.
+ * sysdeps/libm-i387/s_fmaxf.S: New file.
+ * sysdeps/libm-i387/s_fmaxl.S: New file.
+ * sysdeps/libm-i387/i686/s_fmin.S: New file.
+ * sysdeps/libm-i387/i686/s_fminf.S: New file.
+ * sysdeps/libm-i387/i686/s_fminl.S: New file.
+ * sysdeps/libm-i387/i686/s_fmax.S: New file.
+ * sysdeps/libm-i387/i686/s_fmaxf.S: New file.
+ * sysdeps/libm-i387/i686/s_fmaxl.S: New file.
+
+1997-11-14 03:06 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/accept.S: Add __libc_accept as alias.
+ * sysdeps/unix/sysv/linux/send.S: Likewise.
+ * sysdeps/unix/sysv/linux/recvfrom.S: Likewise.
+ * sysdeps/unix/sysv/linux/recvmsg.S: Likewise.
+ * sysdeps/unix/sysv/linux/sendmsg.S: Likewise.
+ * sysdeps/unix/sysv/linux/recv.S: Likewise.
+ * sysdeps/unix/sysv/linux/sendto.S: Likewise.
+ * sysdeps/unix/sysv/linux/connect.S: Likewise.
+ Reported by Christopher Wiles <wileyc@ai.cs.fujitsu.co.jp>.
+
+See ChangeLog.7 for earlier changes.
diff --git a/posix/tst-regex2.c b/posix/tst-regex2.c
index 5e624cb5c2..6fb532e784 100644
--- a/posix/tst-regex2.c
+++ b/posix/tst-regex2.c
@@ -244,6 +244,5 @@ do_test (void)
return 0;
}
-#define TIMEOUT 20
#define TEST_FUNCTION do_test ()
#include "../test-skeleton.c"
diff --git a/posix/tst-regexloc.c b/posix/tst-regexloc.c
index 3ed3b68a1a..c14a3f5d21 100644
--- a/posix/tst-regexloc.c
+++ b/posix/tst-regexloc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <regex.h>
diff --git a/posix/tst-rxspencer.c b/posix/tst-rxspencer.c
index 9d597ef3e9..51bd43224c 100644
--- a/posix/tst-rxspencer.c
+++ b/posix/tst-rxspencer.c
@@ -1,5 +1,5 @@
/* Regular expression tests.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <mcheck.h>
diff --git a/posix/tst-spawn-chdir.c b/posix/tst-spawn-chdir.c
new file mode 100644
index 0000000000..8dc5a91923
--- /dev/null
+++ b/posix/tst-spawn-chdir.c
@@ -0,0 +1,218 @@
+/* Test the posix_spawn_file_actions_addchdir_np function.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <array_length.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <spawn.h>
+#include <stdbool.h>
+#include <stdlib.h>
+#include <string.h>
+#include <support/check.h>
+#include <support/support.h>
+#include <support/temp_file.h>
+#include <support/test-driver.h>
+#include <support/xstdio.h>
+#include <support/xunistd.h>
+#include <unistd.h>
+
+/* Reads the file at PATH, which must consist of exactly one line.
+ Removes the line terminator at the end of the file. */
+static char *
+read_one_line (const char *path)
+{
+ FILE *fp = xfopen (path, "r");
+ char *buffer = NULL;
+ size_t length = 0;
+ ssize_t ret = getline (&buffer, &length, fp);
+ if (ferror (fp))
+ FAIL_EXIT1 ("getline: %m");
+ if (ret < 1)
+ FAIL_EXIT1 ("getline returned %zd", ret);
+ if (fgetc (fp) != EOF)
+ FAIL_EXIT1 ("trailing bytes in %s", path);
+ if (ferror (fp))
+ FAIL_EXIT1 ("fgetc: %m");
+ xfclose (fp);
+ if (buffer[ret - 1] != '\n')
+ FAIL_EXIT1 ("missing line terminator in %s", path);
+ buffer[ret - 1] = 0;
+ return buffer;
+}
+
+/* Return the path to the "pwd" program. */
+const char *
+get_pwd_program (void)
+{
+ const char *const paths[] = { "/bin/pwd", "/usr/bin/pwd" };
+ for (size_t i = 0; i < array_length (paths); ++i)
+ if (access (paths[i], X_OK) == 0)
+ return paths[i];
+ FAIL_EXIT1 ("cannot find pwd program");
+}
+
+/* Adds chdir operations to ACTIONS, using PATH. If DO_FCHDIR, use
+ the open function and TMPFD to emulate chdir using fchdir. */
+static void
+add_chdir (posix_spawn_file_actions_t *actions, const char *path,
+ bool do_fchdir, int tmpfd)
+{
+ if (do_fchdir)
+ {
+ TEST_COMPARE (posix_spawn_file_actions_addopen
+ (actions, tmpfd, path, O_DIRECTORY | O_RDONLY, 0), 0);
+ TEST_COMPARE (posix_spawn_file_actions_addfchdir_np
+ (actions, tmpfd), 0);
+ TEST_COMPARE (posix_spawn_file_actions_addclose (actions, tmpfd), 0);
+ }
+ else
+ TEST_COMPARE (posix_spawn_file_actions_addchdir_np (actions, path), 0);
+}
+
+static int
+do_test (void)
+{
+ /* Directory for temporary file data. Each subtest uses a numeric
+ subdirectory. */
+ char *directory = support_create_temp_directory ("tst-spawn-chdir-");
+ {
+ /* Avoid symbolic links, to get more consistent behavior from the
+ pwd command. */
+ char *tmp = realpath (directory, NULL);
+ if (tmp == NULL)
+ FAIL_EXIT1 ("realpath: %m");
+ free (directory);
+ directory = tmp;
+ }
+
+ char *original_cwd = get_current_dir_name ();
+ if (original_cwd == NULL)
+ FAIL_EXIT1 ("get_current_dir_name: %m");
+
+ int iteration = 0;
+ for (int do_spawnp = 0; do_spawnp < 2; ++do_spawnp)
+ for (int do_overwrite = 0; do_overwrite < 2; ++do_overwrite)
+ for (int do_fchdir = 0; do_fchdir < 2; ++do_fchdir)
+ {
+ /* This subtest does not make sense for fchdir. */
+ if (do_overwrite && do_fchdir)
+ continue;
+
+ ++iteration;
+ if (test_verbose > 0)
+ printf ("info: iteration=%d do_spawnp=%d do_overwrite=%d"
+ " do_fchdir=%d\n",
+ iteration, do_spawnp, do_overwrite, do_fchdir);
+
+ /* The "pwd" program runs in this directory. */
+ char *iteration_directory = xasprintf ("%s/%d", directory, iteration);
+ add_temp_file (iteration_directory);
+ xmkdir (iteration_directory, 0777);
+
+ /* This file receives output from "pwd". */
+ char *output_file_path
+ = xasprintf ("%s/output-file", iteration_directory);
+ add_temp_file (output_file_path);
+
+ /* This subdirectory is used for chdir ordering checks. */
+ char *subdir_path = xasprintf ("%s/subdir", iteration_directory);
+ add_temp_file (subdir_path);
+ xmkdir (subdir_path, 0777);
+
+ /* Also used for checking the order of actions. */
+ char *probe_file_path
+ = xasprintf ("%s/subdir/probe-file", iteration_directory);
+ add_temp_file (probe_file_path);
+ TEST_COMPARE (access (probe_file_path, F_OK), -1);
+ TEST_COMPARE (errno, ENOENT);
+
+ /* This symbolic link is used in a relative path with
+ posix_spawn. */
+ char *pwd_symlink_path
+ = xasprintf ("%s/subdir/pwd-symlink", iteration_directory);
+ xsymlink (get_pwd_program (), pwd_symlink_path);
+ add_temp_file (pwd_symlink_path);
+
+ posix_spawn_file_actions_t actions;
+ TEST_COMPARE (posix_spawn_file_actions_init (&actions), 0);
+ add_chdir (&actions, subdir_path, do_fchdir, 4);
+ TEST_COMPARE (posix_spawn_file_actions_addopen
+ (&actions, 3, /* Arbitrary unused descriptor. */
+ "probe-file",
+ O_WRONLY | O_CREAT | O_EXCL, 0777), 0);
+ TEST_COMPARE (posix_spawn_file_actions_addclose (&actions, 3), 0);
+ /* Run the actual in iteration_directory. */
+ add_chdir (&actions, "..", do_fchdir, 5);
+ TEST_COMPARE (posix_spawn_file_actions_addopen
+ (&actions, STDOUT_FILENO, "output-file",
+ O_WRONLY | O_CREAT | O_EXCL, 0777), 0);
+
+ /* Check that posix_spawn_file_actions_addchdir_np made a copy
+ of the path. */
+ if (do_overwrite)
+ subdir_path[0] = '\0';
+
+ char *const argv[] = { (char *) "pwd", NULL };
+ char *const envp[] = { NULL } ;
+ pid_t pid;
+ if (do_spawnp)
+ TEST_COMPARE (posix_spawnp (&pid, "pwd", &actions,
+ NULL, argv, envp), 0);
+ else
+ TEST_COMPARE (posix_spawn (&pid, "subdir/pwd-symlink", &actions,
+ NULL, argv, envp), 0);
+ TEST_VERIFY (pid > 0);
+ int status;
+ xwaitpid (pid, &status, 0);
+ TEST_COMPARE (status, 0);
+
+ /* Check that the current directory did not change. */
+ {
+ char *cwd = get_current_dir_name ();
+ if (cwd == NULL)
+ FAIL_EXIT1 ("get_current_dir_name: %m");
+ TEST_COMPARE_BLOB (original_cwd, strlen (original_cwd),
+ cwd, strlen (cwd));
+ free (cwd);
+ }
+
+
+ /* Check the output from "pwd". */
+ {
+ char *pwd = read_one_line (output_file_path);
+ TEST_COMPARE_BLOB (iteration_directory, strlen (iteration_directory),
+ pwd, strlen (pwd));
+ free (pwd);
+ }
+
+ /* This file must now exist. */
+ TEST_COMPARE (access (probe_file_path, F_OK), 0);
+
+ TEST_COMPARE (posix_spawn_file_actions_destroy (&actions), 0);
+ free (pwd_symlink_path);
+ free (probe_file_path);
+ free (subdir_path);
+ free (output_file_path);
+ }
+
+ free (directory);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/posix/tst-spawn.c b/posix/tst-spawn.c
index 7c785c430c..1993ed24b5 100644
--- a/posix/tst-spawn.c
+++ b/posix/tst-spawn.c
@@ -1,5 +1,5 @@
/* Tests for spawn.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 2000.
@@ -15,18 +15,22 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#include <stdio.h>
+#include <getopt.h>
#include <errno.h>
#include <error.h>
#include <fcntl.h>
#include <spawn.h>
#include <stdlib.h>
#include <string.h>
-#include <wait.h>
#include <sys/param.h>
+
#include <support/check.h>
#include <support/xunistd.h>
+#include <support/temp_file.h>
+#include <support/support.h>
/* Nonzero if the program gets called via `exec'. */
@@ -36,123 +40,108 @@ static int restart;
#define CMDLINE_OPTIONS \
{ "restart", no_argument, &restart, 1 },
-/* Prototype for our test function. */
-extern void do_prepare (int argc, char *argv[]);
-extern int do_test (int argc, char *argv[]);
-
-/* We have a preparation function. */
-#define PREPARE do_prepare
-
-#include "../test-skeleton.c"
-
-
/* Name of the temporary files. */
static char *name1;
static char *name2;
static char *name3;
+static char *name5;
/* Descriptors for the temporary files. */
static int temp_fd1 = -1;
static int temp_fd2 = -1;
static int temp_fd3 = -1;
+static int temp_fd5 = -1;
/* The contents of our files. */
static const char fd1string[] = "This file should get closed";
static const char fd2string[] = "This file should stay opened";
static const char fd3string[] = "This file will be opened";
+static const char fd5string[] = "This file should stay opened (O_CLOEXEC)";
/* We have a preparation function. */
-void
+static void
do_prepare (int argc, char *argv[])
{
/* We must not open any files in the restart case. */
if (restart)
return;
- temp_fd1 = create_temp_file ("spawn", &name1);
- temp_fd2 = create_temp_file ("spawn", &name2);
- temp_fd3 = create_temp_file ("spawn", &name3);
- if (temp_fd1 < 0 || temp_fd2 < 0 || temp_fd3 < 0)
- exit (1);
+ TEST_VERIFY_EXIT ((temp_fd1 = create_temp_file ("spawn", &name1)) != -1);
+ TEST_VERIFY_EXIT ((temp_fd2 = create_temp_file ("spawn", &name2)) != -1);
+ TEST_VERIFY_EXIT ((temp_fd3 = create_temp_file ("spawn", &name3)) != -1);
+ TEST_VERIFY_EXIT ((temp_fd5 = create_temp_file ("spawn", &name5)) != -1);
+
+ int flags;
+ TEST_VERIFY_EXIT ((flags = fcntl (temp_fd5, F_GETFD, &flags)) != -1);
+ TEST_COMPARE (fcntl (temp_fd5, F_SETFD, flags | FD_CLOEXEC), 0);
}
+#define PREPARE do_prepare
static int
handle_restart (const char *fd1s, const char *fd2s, const char *fd3s,
- const char *fd4s, const char *name)
+ const char *fd4s, const char *name, const char *fd5s)
{
char buf[100];
int fd1;
int fd2;
int fd3;
int fd4;
+ int fd5;
/* First get the descriptors. */
fd1 = atol (fd1s);
fd2 = atol (fd2s);
fd3 = atol (fd3s);
fd4 = atol (fd4s);
+ fd5 = atol (fd5s);
/* Sanity check. */
- if (fd1 == fd2)
- error (EXIT_FAILURE, 0, "value of fd1 and fd2 is the same");
- if (fd1 == fd3)
- error (EXIT_FAILURE, 0, "value of fd1 and fd3 is the same");
- if (fd1 == fd4)
- error (EXIT_FAILURE, 0, "value of fd1 and fd4 is the same");
- if (fd2 == fd3)
- error (EXIT_FAILURE, 0, "value of fd2 and fd3 is the same");
- if (fd2 == fd4)
- error (EXIT_FAILURE, 0, "value of fd2 and fd4 is the same");
- if (fd3 == fd4)
- error (EXIT_FAILURE, 0, "value of fd3 and fd4 is the same");
+ TEST_VERIFY_EXIT (fd1 != fd2);
+ TEST_VERIFY_EXIT (fd1 != fd3);
+ TEST_VERIFY_EXIT (fd1 != fd4);
+ TEST_VERIFY_EXIT (fd2 != fd3);
+ TEST_VERIFY_EXIT (fd2 != fd4);
+ TEST_VERIFY_EXIT (fd3 != fd4);
+ TEST_VERIFY_EXIT (fd4 != fd5);
/* First the easy part: read from the file descriptor which is
supposed to be open. */
- if (lseek (fd2, 0, SEEK_CUR) != strlen (fd2string))
- error (EXIT_FAILURE, errno, "file 2 not in right position");
+ TEST_COMPARE (xlseek (fd2, 0, SEEK_CUR), strlen (fd2string));
/* The duped descriptor must have the same position. */
- if (lseek (fd4, 0, SEEK_CUR) != strlen (fd2string))
- error (EXIT_FAILURE, errno, "file 4 not in right position");
- if (lseek (fd2, 0, SEEK_SET) != 0)
- error (EXIT_FAILURE, 0, "cannot reset position in file 2");
- if (lseek (fd4, 0, SEEK_CUR) != 0)
- error (EXIT_FAILURE, errno, "file 4 not set back, too");
- if (read (fd2, buf, sizeof buf) != strlen (fd2string))
- error (EXIT_FAILURE, 0, "cannot read file 2");
- if (memcmp (fd2string, buf, strlen (fd2string)) != 0)
- error (EXIT_FAILURE, 0, "file 2 does not match");
+ TEST_COMPARE (xlseek (fd4, 0, SEEK_CUR), strlen (fd2string));
+ TEST_COMPARE (xlseek (fd2, 0, SEEK_SET), 0);
+ TEST_COMPARE (xlseek (fd4, 0, SEEK_CUR), 0);
+ TEST_COMPARE (read (fd2, buf, sizeof buf), strlen (fd2string));
+ TEST_COMPARE_BLOB (fd2string, strlen (fd2string), buf, strlen (fd2string));
/* Now read from the third file. */
- if (read (fd3, buf, sizeof buf) != strlen (fd3string))
- error (EXIT_FAILURE, 0, "cannot read file 3");
- if (memcmp (fd3string, buf, strlen (fd3string)) != 0)
- error (EXIT_FAILURE, 0, "file 3 does not match");
+ TEST_COMPARE (read (fd3, buf, sizeof buf), strlen (fd3string));
+ TEST_COMPARE_BLOB (fd3string, strlen (fd3string), buf, strlen (fd3string));
/* Try to write to the file. This should not be allowed. */
- if (write (fd3, "boo!", 4) != -1 || errno != EBADF)
- error (EXIT_FAILURE, 0, "file 3 is writable");
+ TEST_COMPARE (write (fd3, "boo!", 4), -1);
+ TEST_COMPARE (errno, EBADF);
/* Now try to read the first file. First make sure it is not opened. */
- if (lseek (fd1, 0, SEEK_CUR) != (off_t) -1 || errno != EBADF)
- error (EXIT_FAILURE, 0, "file 1 (%d) is not closed", fd1);
+ TEST_COMPARE (lseek (fd1, 0, SEEK_CUR), (off_t) -1);
+ TEST_COMPARE (errno, EBADF);
/* Now open the file and read it. */
- fd1 = open (name, O_RDONLY);
- if (fd1 == -1)
- error (EXIT_FAILURE, errno,
- "cannot open first file \"%s\" for verification", name);
+ fd1 = xopen (name, O_RDONLY, 0600);
+
+ TEST_COMPARE (read (fd1, buf, sizeof buf), strlen (fd1string));
+ TEST_COMPARE_BLOB (fd1string, strlen (fd1string), buf, strlen (fd1string));
- if (read (fd1, buf, sizeof buf) != strlen (fd1string))
- error (EXIT_FAILURE, errno, "cannot read file 1");
- if (memcmp (fd1string, buf, strlen (fd1string)) != 0)
- error (EXIT_FAILURE, 0, "file 1 does not match");
+ TEST_COMPARE (xlseek (fd5, 0, SEEK_SET), 0);
+ TEST_COMPARE (read (fd5, buf, sizeof buf), strlen (fd5string));
+ TEST_COMPARE_BLOB (fd5string, strlen (fd5string), buf, strlen (fd5string));
return 0;
}
-int
+static int
do_test (int argc, char *argv[])
{
pid_t pid;
@@ -163,8 +152,9 @@ do_test (int argc, char *argv[])
char fd2name[18];
char fd3name[18];
char fd4name[18];
+ char fd5name[18];
char *name3_copy;
- char *spargv[12];
+ char *spargv[13];
int i;
/* We must have
@@ -173,93 +163,102 @@ do_test (int argc, char *argv[])
+ "--library-path" optional
+ the library path optional
+ the application name
- - five parameters left if called through re-execution
+ - six parameters left if called through re-execution
+ file descriptor number which is supposed to be closed
+ the open file descriptor
+ the newly opened file descriptor
- + thhe duped second descriptor
+ + the duped second descriptor
+ the name of the closed descriptor
+ + the duped fourth file descriptor which O_CLOEXEC should be
+ remove by adddup2.
*/
- if (argc != (restart ? 6 : 2) && argc != (restart ? 6 : 5))
- error (EXIT_FAILURE, 0, "wrong number of arguments (%d)", argc);
+ if (argc != (restart ? 7 : 2) && argc != (restart ? 7 : 5))
+ FAIL_EXIT1 ("wrong number of arguments (%d)", argc);
if (restart)
- return handle_restart (argv[1], argv[2], argv[3], argv[4], argv[5]);
+ return handle_restart (argv[1], argv[2], argv[3], argv[4], argv[5],
+ argv[6]);
- /* Prepare the test. We are creating two files: one which file descriptor
+ /* Prepare the test. We are creating four files: two which file descriptor
will be marked with FD_CLOEXEC, another which is not. */
- /* Write something in the files. */
- if (write (temp_fd1, fd1string, strlen (fd1string)) != strlen (fd1string))
- error (EXIT_FAILURE, errno, "cannot write to first file");
- if (write (temp_fd2, fd2string, strlen (fd2string)) != strlen (fd2string))
- error (EXIT_FAILURE, errno, "cannot write to second file");
- if (write (temp_fd3, fd3string, strlen (fd3string)) != strlen (fd3string))
- error (EXIT_FAILURE, errno, "cannot write to third file");
-
- /* Close the third file. It'll be opened by `spawn'. */
- close (temp_fd3);
-
- /* Tell `spawn' what to do. */
- if (posix_spawn_file_actions_init (&actions) != 0)
- error (EXIT_FAILURE, errno, "posix_spawn_file_actions_init");
- /* Close `temp_fd1'. */
- if (posix_spawn_file_actions_addclose (&actions, temp_fd1) != 0)
- error (EXIT_FAILURE, errno, "posix_spawn_file_actions_addclose");
- /* We want to open the third file. */
- name3_copy = strdup (name3);
- if (name3_copy == NULL)
- error (EXIT_FAILURE, errno, "strdup");
- if (posix_spawn_file_actions_addopen (&actions, temp_fd3, name3_copy,
- O_RDONLY, 0666) != 0)
- error (EXIT_FAILURE, errno, "posix_spawn_file_actions_addopen");
- /* Overwrite the name to check that a copy has been made. */
- memset (name3_copy, 'X', strlen (name3_copy));
-
- /* We dup the second descriptor. */
- fd4 = MAX (2, MAX (temp_fd1, MAX (temp_fd2, temp_fd3))) + 1;
- if (posix_spawn_file_actions_adddup2 (&actions, temp_fd2, fd4) != 0)
- error (EXIT_FAILURE, errno, "posix_spawn_file_actions_adddup2");
-
- /* Now spawn the process. */
- snprintf (fd1name, sizeof fd1name, "%d", temp_fd1);
- snprintf (fd2name, sizeof fd2name, "%d", temp_fd2);
- snprintf (fd3name, sizeof fd3name, "%d", temp_fd3);
- snprintf (fd4name, sizeof fd4name, "%d", fd4);
-
- for (i = 0; i < (argc == (restart ? 6 : 5) ? 4 : 1); i++)
- spargv[i] = argv[i + 1];
- spargv[i++] = (char *) "--direct";
- spargv[i++] = (char *) "--restart";
- spargv[i++] = fd1name;
- spargv[i++] = fd2name;
- spargv[i++] = fd3name;
- spargv[i++] = fd4name;
- spargv[i++] = name1;
- spargv[i] = NULL;
-
- if (posix_spawn (&pid, argv[1], &actions, NULL, spargv, environ) != 0)
- error (EXIT_FAILURE, errno, "posix_spawn");
-
- /* Same test but with a NULL pid argument. */
- if (posix_spawn (NULL, argv[1], &actions, NULL, spargv, environ) != 0)
- error (EXIT_FAILURE, errno, "posix_spawn");
-
- /* Cleanup. */
- if (posix_spawn_file_actions_destroy (&actions) != 0)
- error (EXIT_FAILURE, errno, "posix_spawn_file_actions_destroy");
- free (name3_copy);
+ /* Write something in the files. */
+ xwrite (temp_fd1, fd1string, strlen (fd1string));
+ xwrite (temp_fd2, fd2string, strlen (fd2string));
+ xwrite (temp_fd3, fd3string, strlen (fd3string));
+ xwrite (temp_fd5, fd5string, strlen (fd5string));
+
+ /* Close the third file. It'll be opened by `spawn'. */
+ xclose (temp_fd3);
+
+ /* Tell `spawn' what to do. */
+ TEST_COMPARE (posix_spawn_file_actions_init (&actions), 0);
+ /* Close `temp_fd1'. */
+ TEST_COMPARE (posix_spawn_file_actions_addclose (&actions, temp_fd1), 0);
+ /* We want to open the third file. */
+ name3_copy = xstrdup (name3);
+ TEST_COMPARE (posix_spawn_file_actions_addopen (&actions, temp_fd3,
+ name3_copy,
+ O_RDONLY, 0666),
+ 0);
+ /* Overwrite the name to check that a copy has been made. */
+ memset (name3_copy, 'X', strlen (name3_copy));
+
+ /* We dup the second descriptor. */
+ fd4 = MAX (2, MAX (temp_fd1, MAX (temp_fd2, MAX (temp_fd3, temp_fd5)))) + 1;
+ TEST_COMPARE (posix_spawn_file_actions_adddup2 (&actions, temp_fd2, fd4),
+ 0);
+
+ /* We clear the O_CLOEXEC on fourth descriptor, so it should be
+ stay open on child. */
+ TEST_COMPARE (posix_spawn_file_actions_adddup2 (&actions, temp_fd5,
+ temp_fd5),
+ 0);
+
+ /* Now spawn the process. */
+ snprintf (fd1name, sizeof fd1name, "%d", temp_fd1);
+ snprintf (fd2name, sizeof fd2name, "%d", temp_fd2);
+ snprintf (fd3name, sizeof fd3name, "%d", temp_fd3);
+ snprintf (fd4name, sizeof fd4name, "%d", fd4);
+ snprintf (fd5name, sizeof fd5name, "%d", temp_fd5);
+
+ for (i = 0; i < (argc == (restart ? 7 : 5) ? 4 : 1); i++)
+ spargv[i] = argv[i + 1];
+ spargv[i++] = (char *) "--direct";
+ spargv[i++] = (char *) "--restart";
+ spargv[i++] = fd1name;
+ spargv[i++] = fd2name;
+ spargv[i++] = fd3name;
+ spargv[i++] = fd4name;
+ spargv[i++] = name1;
+ spargv[i++] = fd5name;
+ spargv[i] = NULL;
+
+ TEST_COMPARE (posix_spawn (&pid, argv[1], &actions, NULL, spargv, environ),
+ 0);
/* Wait for the children. */
- TEST_VERIFY (xwaitpid (pid, &status, 0) == pid);
+ TEST_COMPARE (xwaitpid (pid, &status, 0), pid);
TEST_VERIFY (WIFEXITED (status));
TEST_VERIFY (!WIFSIGNALED (status));
- TEST_VERIFY (WEXITSTATUS (status) == 0);
+ TEST_COMPARE (WEXITSTATUS (status), 0);
+
+ /* Same test but with a NULL pid argument. */
+ TEST_COMPARE (posix_spawn (NULL, argv[1], &actions, NULL, spargv, environ),
+ 0);
+ /* Cleanup. */
+ TEST_COMPARE (posix_spawn_file_actions_destroy (&actions), 0);
+ free (name3_copy);
+
+ /* Wait for the children. */
xwaitpid (-1, &status, 0);
TEST_VERIFY (WIFEXITED (status));
TEST_VERIFY (!WIFSIGNALED (status));
- TEST_VERIFY (WEXITSTATUS (status) == 0);
+ TEST_COMPARE (WEXITSTATUS (status), 0);
return 0;
}
+
+#define TEST_FUNCTION_ARGV do_test
+#include <support/test-driver.c>
diff --git a/posix/tst-spawn2.c b/posix/tst-spawn2.c
index fc63cc1e75..62c1e68b7e 100644
--- a/posix/tst-spawn2.c
+++ b/posix/tst-spawn2.c
@@ -1,5 +1,5 @@
/* Further tests for spawn in case of invalid binary paths.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <spawn.h>
#include <error.h>
diff --git a/posix/tst-spawn3.c b/posix/tst-spawn3.c
index b60a783dd4..b490821ce9 100644
--- a/posix/tst-spawn3.c
+++ b/posix/tst-spawn3.c
@@ -1,5 +1,5 @@
/* Check posix_spawn add file actions.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <spawn.h>
@@ -84,8 +84,8 @@ do_test (void)
/* Executes a /bin/sh echo $$ 2>&1 > ${objpfx}tst-spawn3.pid . */
const char pidfile[] = OBJPFX "tst-spawn3.pid";
- if (posix_spawn_file_actions_addopen (&a, STDOUT_FILENO, pidfile, O_WRONLY |
- O_CREAT | O_TRUNC, 0644) != 0)
+ if (posix_spawn_file_actions_addopen (&a, STDOUT_FILENO, pidfile, O_WRONLY
+ | O_CREAT | O_TRUNC, 0644) != 0)
FAIL_EXIT1 ("posix_spawn_file_actions_addopen");
if (posix_spawn_file_actions_adddup2 (&a, STDOUT_FILENO, STDERR_FILENO) != 0)
diff --git a/posix/tst-spawn4-compat.c b/posix/tst-spawn4-compat.c
index 11f654b913..ab938cee29 100644
--- a/posix/tst-spawn4-compat.c
+++ b/posix/tst-spawn4-compat.c
@@ -1,5 +1,5 @@
/* Check if posix_spawn does handle correctly ENOEXEC files.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <spawn.h>
#include <errno.h>
diff --git a/posix/tst-spawn4.c b/posix/tst-spawn4.c
index e4a1fa3f00..ff6f0f0101 100644
--- a/posix/tst-spawn4.c
+++ b/posix/tst-spawn4.c
@@ -1,5 +1,5 @@
/* Check if posix_spawn does handle correctly ENOEXEC files.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <spawn.h>
#include <errno.h>
diff --git a/posix/tst-sysconf-empty-chroot.c b/posix/tst-sysconf-empty-chroot.c
index 0295c475e5..dd69acaf38 100644
--- a/posix/tst-sysconf-empty-chroot.c
+++ b/posix/tst-sysconf-empty-chroot.c
@@ -1,5 +1,5 @@
/* Test sysconf with an empty chroot.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
diff --git a/posix/tst-truncate-common.c b/posix/tst-truncate-common.c
index f9fb6d155d..705e53ba86 100644
--- a/posix/tst-truncate-common.c
+++ b/posix/tst-truncate-common.c
@@ -1,5 +1,5 @@
/* Common f{truncate} tests definitions.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <sys/types.h>
diff --git a/posix/tst-truncate.c b/posix/tst-truncate.c
index 258337e6a6..382015d972 100644
--- a/posix/tst-truncate.c
+++ b/posix/tst-truncate.c
@@ -1,5 +1,5 @@
/* Tests for ftruncate and truncate.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "tst-truncate-common.c"
diff --git a/posix/tst-truncate64.c b/posix/tst-truncate64.c
index bfb3bf7818..039c909bee 100644
--- a/posix/tst-truncate64.c
+++ b/posix/tst-truncate64.c
@@ -1,5 +1,5 @@
/* Tests for ftruncate64 and truncate64.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _FILE_OFFSET_BITS 64
#include "tst-truncate-common.c"
diff --git a/posix/tst-vfork1.c b/posix/tst-vfork1.c
index 2236ab1b2b..7702ad8426 100644
--- a/posix/tst-vfork1.c
+++ b/posix/tst-vfork1.c
@@ -1,5 +1,5 @@
/* Test for vfork functions.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdio.h>
diff --git a/posix/tst-vfork2.c b/posix/tst-vfork2.c
index 92997d8fd8..a91a8c96ae 100644
--- a/posix/tst-vfork2.c
+++ b/posix/tst-vfork2.c
@@ -1,5 +1,5 @@
/* Test for vfork functions.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/posix/tst-vfork3.c b/posix/tst-vfork3.c
index 0449b2486a..30f827a234 100644
--- a/posix/tst-vfork3.c
+++ b/posix/tst-vfork3.c
@@ -1,5 +1,5 @@
/* Test for vfork functions.
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/posix/tst-waitid.c b/posix/tst-waitid.c
index 4af8761afc..c82ec2b566 100644
--- a/posix/tst-waitid.c
+++ b/posix/tst-waitid.c
@@ -1,5 +1,5 @@
/* Tests for waitid.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdio.h>
@@ -23,8 +23,6 @@
#include <sys/wait.h>
#include <signal.h>
-#define TIMEOUT 15
-
static void
test_child (void)
{
diff --git a/posix/tst-wordexp-nocmd.c b/posix/tst-wordexp-nocmd.c
new file mode 100644
index 0000000000..cb6033e15f
--- /dev/null
+++ b/posix/tst-wordexp-nocmd.c
@@ -0,0 +1,179 @@
+/* Test for (lack of) command execution in wordexp.
+ Copyright (C) 1997-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
+ <https://www.gnu.org/licenses/>. */
+
+/* This test optionally counts PIDs in a PID namespace to detect
+ forks. Without kernel support for that, it will merely look at the
+ error codes from wordexp to check that no command execution
+ happens. */
+
+#include <sched.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <support/check.h>
+#include <support/namespace.h>
+#include <support/xunistd.h>
+#include <wordexp.h>
+
+/* Set to true if the test runs in a PID namespace and can therefore
+ use next_pid below. */
+static bool pid_tests_supported;
+
+/* The next PID, as returned from next_pid below. Only meaningful if
+ pid_tests_supported. */
+static pid_t expected_pid;
+
+/* Allocate the next PID and return it. The process is terminated.
+ Note that the test itself advances the next PID. */
+static pid_t
+next_pid (void)
+{
+ pid_t pid = xfork ();
+ if (pid == 0)
+ _exit (0);
+ xwaitpid (pid, NULL, 0);
+ return pid;
+}
+
+/* Check that evaluating PATTERN with WRDE_NOCMD results in
+ EXPECTED_ERROR. */
+static void
+expect_failure (const char *pattern, int expected_error)
+{
+ printf ("info: testing pattern: %s\n", pattern);
+ wordexp_t w;
+ TEST_COMPARE (wordexp (pattern, &w, WRDE_NOCMD), expected_error);
+ if (pid_tests_supported)
+ TEST_COMPARE (expected_pid++, next_pid ());
+}
+
+/* Run all the tests. Invoked with different IFS values. */
+static void
+run_tests (void)
+{
+ /* Integer overflow in division. */
+ {
+ static const char *const numbers[] = {
+ "0",
+ "1",
+ "65536",
+ "2147483648",
+ "4294967296"
+ "9223372036854775808",
+ "18446744073709551616",
+ "170141183460469231731687303715884105728",
+ "340282366920938463463374607431768211456",
+ NULL
+ };
+
+ for (const char *const *num = numbers; *num != NULL; ++num)
+ {
+ wordexp_t w;
+ char pattern[256];
+ snprintf (pattern, sizeof (pattern), "$[(-%s)/(-1)]", *num);
+ int ret = wordexp (pattern, &w, WRDE_NOCMD);
+ if (ret == 0)
+ {
+ /* If the call is successful, the result must match the
+ original number. */
+ TEST_COMPARE (w.we_wordc, 1);
+ TEST_COMPARE_STRING (w.we_wordv[0], *num);
+ TEST_COMPARE_STRING (w.we_wordv[1], NULL);
+ wordfree (&w);
+ }
+ else
+ /* Otherwise, the test must fail with a syntax error. */
+ TEST_COMPARE (ret, WRDE_SYNTAX);
+
+ /* In both cases, command execution is not permitted. */
+ if (pid_tests_supported)
+ TEST_COMPARE (expected_pid++, next_pid ());
+ }
+ }
+
+ /* (Lack of) command execution tests. */
+
+ expect_failure ("$(ls)", WRDE_CMDSUB);
+
+ /* Test for CVE-2014-7817. We test 3 combinations of command
+ substitution inside an arithmetic expression to make sure that
+ no commands are executed and error is returned. */
+ expect_failure ("$((`echo 1`))", WRDE_CMDSUB);
+ expect_failure ("$((1+`echo 1`))", WRDE_CMDSUB);
+ expect_failure ("$((1+$((`echo 1`))))", WRDE_CMDSUB);
+
+ expect_failure ("$[1/0]", WRDE_SYNTAX); /* BZ 18100. */
+}
+
+static void
+subprocess (void *closure)
+{
+ expected_pid = 2;
+ if (pid_tests_supported)
+ TEST_COMPARE (expected_pid++, next_pid ());
+
+ /* Check that triggering command execution via wordexp results in a
+ PID increase. */
+ if (pid_tests_supported)
+ {
+ wordexp_t w;
+ TEST_COMPARE (wordexp ("$(echo Test)", &w, 0), 0);
+ TEST_COMPARE (w.we_wordc, 1);
+ TEST_COMPARE_STRING (w.we_wordv[0], "Test");
+ TEST_COMPARE_STRING (w.we_wordv[1], NULL);
+ wordfree (&w);
+
+ pid_t n = next_pid ();
+ printf ("info: self-test resulted in PID %d (processes created: %d)\n",
+ (int) n, (int) (n - expected_pid));
+ TEST_VERIFY (n > expected_pid);
+ expected_pid = n + 1;
+ }
+
+ puts ("info: testing without IFS");
+ unsetenv ("IFS");
+ run_tests ();
+
+ puts ("info: testing with IFS");
+ TEST_COMPARE (setenv ("IFS", " \t\n", 1), 0);
+ run_tests ();
+}
+
+static int
+do_test (void)
+{
+ support_become_root ();
+
+#ifdef CLONE_NEWPID
+ if (unshare (CLONE_NEWPID) != 0)
+ printf ("warning: unshare (CLONE_NEWPID) failed: %m\n"
+ "warning: This leads to reduced test coverage.\n");
+ else
+ pid_tests_supported = true;
+#else
+ printf ("warning: CLONE_NEWPID not available.\n"
+ "warning: This leads to reduced test coverage.\n");
+#endif
+
+ /* CLONE_NEWPID only has an effect after fork. */
+ support_isolate_in_subprocess (subprocess, NULL);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/posix/uname-values.h b/posix/uname-values.h
index 1055d1ce5b..f1e6c1dac7 100644
--- a/posix/uname-values.h
+++ b/posix/uname-values.h
@@ -1,5 +1,5 @@
/* Constant values for the uname function to return. Generic version.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file exists so that it can be replaced by sysdeps variants.
It must define these macros with string values:
diff --git a/posix/uname.c b/posix/uname.c
index 0420404553..408676b896 100644
--- a/posix/uname.c
+++ b/posix/uname.c
@@ -1,5 +1,5 @@
/* uname -- Report basic information about the system. Generic version.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <string.h>
diff --git a/posix/unistd.h b/posix/unistd.h
index a8cf28b5e7..ede27215d8 100644
--- a/posix/unistd.h
+++ b/posix/unistd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* POSIX Standard: 2.10 Symbolic Constants <unistd.h>
@@ -1166,6 +1166,9 @@ int getentropy (void *__buffer, size_t __length) __wur;
# include <bits/unistd.h>
#endif
+/* System-specific extensions. */
+#include <bits/unistd_ext.h>
+
__END_DECLS
#endif /* unistd.h */
diff --git a/posix/vfork.c b/posix/vfork.c
index d4e76ad21e..ffb5f70d14 100644
--- a/posix/vfork.c
+++ b/posix/vfork.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/posix/wait.c b/posix/wait.c
index 379ab3267b..0acd1e4926 100644
--- a/posix/wait.c
+++ b/posix/wait.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/wait.h>
#include <errno.h>
diff --git a/posix/wait3.c b/posix/wait3.c
index 640ff05278..6b6e3a500d 100644
--- a/posix/wait3.c
+++ b/posix/wait3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/wait.h>
diff --git a/posix/wait4.c b/posix/wait4.c
index ab276c1955..eb4f7fb6de 100644
--- a/posix/wait4.c
+++ b/posix/wait4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <sys/wait.h>
diff --git a/posix/waitid.c b/posix/waitid.c
index 5acee85983..824e1e1bd1 100644
--- a/posix/waitid.c
+++ b/posix/waitid.c
@@ -1,5 +1,5 @@
/* Stub version of waitid.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/types.h>
diff --git a/posix/waitpid.c b/posix/waitpid.c
index 9a31175699..adae03918a 100644
--- a/posix/waitpid.c
+++ b/posix/waitpid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/wait.h>
diff --git a/posix/wordexp-test.c b/posix/wordexp-test.c
index cc29840355..7cbac030ab 100644
--- a/posix/wordexp-test.c
+++ b/posix/wordexp-test.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -13,41 +13,24 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <sys/mman.h>
+#include <wordexp.h>
+#include <stdio.h>
#include <fcntl.h>
-#include <unistd.h>
#include <pwd.h>
-#include <stdio.h>
-#include <stdint.h>
#include <stdlib.h>
#include <string.h>
-#include <wordexp.h>
+#include <sys/mman.h>
+
#include <libc-pointer-arith.h>
-#include <dso_handle.h>
+#include <array_length.h>
+#include <support/xunistd.h>
+#include <support/check.h>
+#include <support/next_to_fault.h>
#define IFS " \n\t"
-extern int __register_atfork (void (*) (void), void (*) (void), void (*) (void), void *);
-
-static int __app_register_atfork (void (*prepare) (void), void (*parent) (void), void (*child) (void))
-{
- return __register_atfork (prepare, parent, child, __dso_handle);
-}
-
-/* Number of forks seen. */
-static int registered_forks;
-
-/* For each fork increment the fork count. */
-static void
-register_fork (void)
-{
- registered_forks++;
-}
-
struct test_case_struct
{
int retval;
@@ -57,7 +40,7 @@ struct test_case_struct
size_t wordc;
const char *wordv[10];
const char *ifs;
-} test_case[] =
+} static test_case[] =
{
/* Simple word- and field-splitting */
{ 0, NULL, "one", 0, 1, { "one", }, IFS },
@@ -217,7 +200,6 @@ struct test_case_struct
{ WRDE_BADCHAR, NULL, "close-paren)", 0, 0, { NULL, }, IFS },
{ WRDE_BADCHAR, NULL, "{open-brace", 0, 0, { NULL, }, IFS },
{ WRDE_BADCHAR, NULL, "close-brace}", 0, 0, { NULL, }, IFS },
- { WRDE_CMDSUB, NULL, "$(ls)", WRDE_NOCMD, 0, { NULL, }, IFS },
{ WRDE_BADVAL, NULL, "$var", WRDE_UNDEF, 0, { NULL, }, IFS },
{ WRDE_BADVAL, NULL, "$9", WRDE_UNDEF, 0, { NULL, }, IFS },
{ WRDE_SYNTAX, NULL, "$[50+20))", 0, 0, { NULL, }, IFS },
@@ -227,19 +209,10 @@ struct test_case_struct
{ WRDE_SYNTAX, NULL, "$((2+))", 0, 0, { NULL, }, IFS },
{ WRDE_SYNTAX, NULL, "`", 0, 0, { NULL, }, IFS },
{ WRDE_SYNTAX, NULL, "$((010+4+))", 0, 0, { NULL }, IFS },
- /* Test for CVE-2014-7817. We test 3 combinations of command
- substitution inside an arithmetic expression to make sure that
- no commands are executed and error is returned. */
- { WRDE_CMDSUB, NULL, "$((`echo 1`))", WRDE_NOCMD, 0, { NULL, }, IFS },
- { WRDE_CMDSUB, NULL, "$((1+`echo 1`))", WRDE_NOCMD, 0, { NULL, }, IFS },
- { WRDE_CMDSUB, NULL, "$((1+$((`echo 1`))))", WRDE_NOCMD, 0, { NULL, }, IFS },
{ WRDE_SYNTAX, NULL, "`\\", 0, 0, { NULL, }, IFS }, /* BZ 18042 */
{ WRDE_SYNTAX, NULL, "${", 0, 0, { NULL, }, IFS }, /* BZ 18043 */
{ WRDE_SYNTAX, NULL, "L${a:", 0, 0, { NULL, }, IFS }, /* BZ 18043#c4 */
- { WRDE_SYNTAX, NULL, "$[1/0]", WRDE_NOCMD, 0, {NULL, }, IFS }, /* BZ 18100 */
-
- { -1, NULL, NULL, 0, 0, { NULL, }, IFS },
};
static int testit (struct test_case_struct *tc);
@@ -251,21 +224,19 @@ command_line_test (const char *words)
wordexp_t we;
int i;
int retval = wordexp (words, &we, 0);
- printf ("wordexp returned %d\n", retval);
+ printf ("info: wordexp returned %d\n", retval);
for (i = 0; i < we.we_wordc; i++)
- printf ("we_wordv[%d] = \"%s\"\n", i, we.we_wordv[i]);
+ printf ("info: we_wordv[%d] = \"%s\"\n", i, we.we_wordv[i]);
}
-int
-main (int argc, char *argv[])
+static int
+do_test (int argc, char *argv[])
{
- const char *globfile[] = { "one", "two", "three", NULL };
+ const char *globfile[] = { "one", "two", "three" };
char tmpdir[32];
struct passwd *pw;
const char *cwd;
int test;
- int fail = 0;
- int i;
struct test_case_struct ts;
if (argc > 1)
@@ -278,30 +249,18 @@ main (int argc, char *argv[])
/* Set up arena for pathname expansion */
tmpnam (tmpdir);
- if (mkdir (tmpdir, S_IRWXU) || chdir (tmpdir))
- return -1;
- else
- {
- int fd;
+ xmkdir (tmpdir, S_IRWXU);
+ TEST_VERIFY_EXIT (chdir (tmpdir) == 0);
- for (i = 0; globfile[i]; ++i)
- if ((fd = creat (globfile[i], S_IRUSR | S_IWUSR)) == -1
- || close (fd))
- return -1;
- }
-
- /* If we are not allowed to do command substitution, we install
- fork handlers to verify that no forks happened. No forks should
- happen at all if command substitution is disabled. */
- if (__app_register_atfork (register_fork, NULL, NULL) != 0)
+ for (int i = 0; i < array_length (globfile); ++i)
{
- printf ("Failed to register fork handler.\n");
- return -1;
+ int fd = xopen (globfile[i], O_WRONLY|O_CREAT|O_TRUNC,
+ S_IRUSR | S_IWUSR);
+ xclose (fd);
}
- for (test = 0; test_case[test].retval != -1; test++)
- if (testit (&test_case[test]))
- ++fail;
+ for (test = 0; test < array_length (test_case); test++)
+ TEST_COMPARE (testit (&test_case[test]), 0);
/* Tilde-expansion tests. */
pw = getpwnam ("root");
@@ -315,8 +274,7 @@ main (int argc, char *argv[])
ts.wordv[0] = pw->pw_dir;
ts.ifs = IFS;
- if (testit (&ts))
- ++fail;
+ TEST_COMPARE (testit (&ts), 0);
ts.retval = 0;
ts.env = pw->pw_dir;
@@ -326,8 +284,7 @@ main (int argc, char *argv[])
ts.wordv[0] = "x";
ts.ifs = IFS;
- if (testit (&ts))
- ++fail;
+ TEST_COMPARE (testit (&ts), 0);
}
/* "~" expands to value of $HOME when HOME is set */
@@ -342,8 +299,7 @@ main (int argc, char *argv[])
ts.wordv[1] = "/dummy/home/foo";
ts.ifs = IFS;
- if (testit (&ts))
- ++fail;
+ TEST_COMPARE (testit (&ts), 0);
/* "~" expands to home dir from passwd file if HOME is not set */
@@ -359,53 +315,13 @@ main (int argc, char *argv[])
ts.wordv[0] = pw->pw_dir;
ts.ifs = IFS;
- if (testit (&ts))
- ++fail;
+ TEST_COMPARE (testit (&ts), 0);
}
- /* Integer overflow in division. */
- {
- static const char *const numbers[] = {
- "0",
- "1",
- "65536",
- "2147483648",
- "4294967296"
- "9223372036854775808",
- "18446744073709551616",
- "170141183460469231731687303715884105728",
- "340282366920938463463374607431768211456",
- NULL
- };
-
- for (const char *const *num = numbers; *num; ++num)
- {
- wordexp_t p;
- char pattern[256];
- snprintf (pattern, sizeof (pattern), "$[(-%s)/(-1)]", *num);
- int ret = wordexp (pattern, &p, WRDE_NOCMD);
- if (ret == 0)
- {
- if (p.we_wordc != 1 || strcmp (p.we_wordv[0], *num) != 0)
- {
- printf ("Integer overflow for \"%s\" failed", pattern);
- ++fail;
- }
- wordfree (&p);
- }
- else if (ret != WRDE_SYNTAX)
- {
- printf ("Integer overflow for \"%s\" failed with %d",
- pattern, ret);
- ++fail;
- }
- }
- }
-
puts ("tests completed, now cleaning up");
/* Clean up */
- for (i = 0; globfile[i]; ++i)
+ for (int i = 0; i < array_length (globfile); ++i)
remove (globfile[i]);
if (cwd == NULL)
@@ -414,33 +330,20 @@ main (int argc, char *argv[])
chdir (cwd);
rmdir (tmpdir);
- printf ("tests failed: %d\n", fail);
-
- return fail != 0;
+ return 0;
}
-static const char *
+struct support_next_to_fault
at_page_end (const char *words)
{
- const int pagesize = getpagesize ();
- char *start = mmap (0, 2 * pagesize, PROT_READ|PROT_WRITE,
- MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
-
- if (start == MAP_FAILED)
- return start;
-
- if (mprotect (start + pagesize, pagesize, PROT_NONE))
- {
- munmap (start, 2 * pagesize);
- return MAP_FAILED;
- }
+ const size_t words_size = strlen (words) + 1;
+ struct support_next_to_fault ntf
+ = support_next_to_fault_allocate (words_size);
/* Includes terminating NUL. */
- const size_t words_size = strlen (words) + 1;
- char *words_start = start + pagesize - words_size;
- memcpy (words_start, words, words_size);
+ memcpy (ntf.buffer, words, words_size);
- return words_start;
+ return ntf;
}
static int
@@ -468,30 +371,20 @@ testit (struct test_case_struct *tc)
sav_we.we_offs = 3;
we = sav_we;
- printf ("Test %d (%s): ", ++tests, tc->words);
+ printf ("info: test %d (%s): ", ++tests, tc->words);
fflush (NULL);
- const char *words = at_page_end (tc->words);
-
- if (tc->flags & WRDE_NOCMD)
- registered_forks = 0;
+ struct support_next_to_fault words = at_page_end (tc->words);
if (tc->flags & WRDE_APPEND)
{
/* initial wordexp() call, to be appended to */
if (wordexp ("pre1 pre2", &we, tc->flags & ~WRDE_APPEND) != 0)
{
- printf ("FAILED setup\n");
+ printf ("info: FAILED setup\n");
return 1;
}
}
- retval = wordexp (words, &we, tc->flags);
-
- if ((tc->flags & WRDE_NOCMD)
- && (registered_forks > 0))
- {
- printf ("FAILED fork called for WRDE_NOCMD\n");
- return 1;
- }
+ retval = wordexp (words.buffer, &we, tc->flags);
if (tc->flags & WRDE_DOOFFS)
start_offs = sav_we.we_offs;
@@ -508,8 +401,8 @@ testit (struct test_case_struct *tc)
}
for (i = 0; i < we.we_wordc; ++i)
- if (we.we_wordv[i+start_offs] == NULL ||
- strcmp (tc->wordv[i], we.we_wordv[i+start_offs]) != 0)
+ if (we.we_wordv[i+start_offs] == NULL
+ || strcmp (tc->wordv[i], we.we_wordv[i+start_offs]) != 0)
{
bzzzt = 1;
break;
@@ -519,7 +412,7 @@ testit (struct test_case_struct *tc)
if (bzzzt)
{
printf ("FAILED\n");
- printf ("Test words: <%s>, need retval %d, wordc %Zd\n",
+ printf ("info: Test words: <%s>, need retval %d, wordc %Zd\n",
tc->words, tc->retval, tc->wordc);
if (start_offs != 0)
printf ("(preceded by %d NULLs)\n", start_offs);
@@ -534,10 +427,10 @@ testit (struct test_case_struct *tc)
}
printf ("\n");
}
- else if (retval != 0 && retval != WRDE_NOSPACE &&
- (we.we_wordc != sav_we.we_wordc ||
- we.we_wordv != sav_we.we_wordv ||
- we.we_offs != sav_we.we_offs))
+ else if (retval != 0 && retval != WRDE_NOSPACE
+ && (we.we_wordc != sav_we.we_wordc
+ || we.we_wordv != sav_we.we_wordv
+ || we.we_offs != sav_we.we_offs))
{
bzzzt = 1;
printf ("FAILED to restore wordexp_t members\n");
@@ -548,12 +441,11 @@ testit (struct test_case_struct *tc)
if (retval == 0 || retval == WRDE_NOSPACE)
wordfree (&we);
- const int page_size = getpagesize ();
- char *start = (char *) PTR_ALIGN_DOWN (words, page_size);
-
- if (munmap (start, 2 * page_size) != 0)
- return 1;
+ support_next_to_fault_free (&words);
fflush (NULL);
return bzzzt;
}
+
+#define TEST_FUNCTION_ARGV do_test
+#include <support/test-driver.c>
diff --git a/posix/wordexp-tst.sh b/posix/wordexp-tst.sh
index c6b6eb14ef..9991eb34e1 100755
--- a/posix/wordexp-tst.sh
+++ b/posix/wordexp-tst.sh
@@ -1,6 +1,6 @@
#!/bin/sh
# Test for wordexp(3).
-# Copyright (C) 1998-2018 Free Software Foundation, Inc.
+# Copyright (C) 1998-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
@@ -15,7 +15,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
set -e
diff --git a/posix/wordexp.c b/posix/wordexp.c
index 7548e0329f..2aa6085fb2 100644
--- a/posix/wordexp.c
+++ b/posix/wordexp.c
@@ -1,5 +1,5 @@
/* POSIX.2 wordexp implementation.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Tim Waugh <tim@cyberelk.demon.co.uk>.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <errno.h>
@@ -25,33 +25,18 @@
#include <libintl.h>
#include <paths.h>
#include <pwd.h>
-#include <signal.h>
#include <stdbool.h>
#include <stdio.h>
-#include <stdlib.h>
#include <string.h>
#include <sys/param.h>
-#include <sys/stat.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
-#include <wchar.h>
#include <wordexp.h>
-#include <kernel-features.h>
+#include <spawn.h>
#include <scratch_buffer.h>
-
-#include <libc-lock.h>
#include <_itoa.h>
-
-/* Undefine the following line for the production version. */
-/* #define NDEBUG 1 */
#include <assert.h>
-/* Get some device information. */
-#include <device-nrs.h>
-
/*
* This is a recursive-descent-style word expansion routine.
*/
@@ -285,8 +270,8 @@ parse_tilde (char **word, size_t *word_length, size_t *max_length,
for (i = 1 + *offset; words[i]; i++)
{
- if (words[i] == ':' || words[i] == '/' || words[i] == ' ' ||
- words[i] == '\t' || words[i] == 0 )
+ if (words[i] == ':' || words[i] == '/' || words[i] == ' '
+ || words[i] == '\t' || words[i] == 0 )
break;
if (words[i] == '\\')
@@ -799,6 +784,7 @@ parse_arith (char **word, size_t *word_length, size_t *max_length,
case '(':
++paren_depth;
+ /* Fall through. */
default:
expr = w_addchar (expr, &expr_length, &expr_maxlen, words[*offset]);
if (expr == NULL)
@@ -811,61 +797,76 @@ parse_arith (char **word, size_t *word_length, size_t *max_length,
return WRDE_SYNTAX;
}
+#define DYNARRAY_STRUCT strlist
+#define DYNARRAY_ELEMENT char *
+#define DYNARRAY_PREFIX strlist_
+/* Allocates about 512/1024 (32/64 bit) on stack. */
+#define DYNARRAY_INITIAL_SIZE 128
+#include <malloc/dynarray-skeleton.c>
+
/* Function called by child process in exec_comm() */
-static inline void
-__attribute__ ((always_inline))
-exec_comm_child (char *comm, int *fildes, int showerr, int noexec)
+static pid_t
+exec_comm_child (char *comm, int *fildes, bool showerr, bool noexec)
{
- const char *args[4] = { _PATH_BSHELL, "-c", comm, NULL };
+ pid_t pid = -1;
- /* Execute the command, or just check syntax? */
- if (noexec)
- args[1] = "-nc";
+ /* Execute the command, or just check syntax? */
+ const char *args[] = { _PATH_BSHELL, noexec ? "-nc" : "-c", comm, NULL };
+
+ posix_spawn_file_actions_t fa;
+ /* posix_spawn_file_actions_init does not fail. */
+ __posix_spawn_file_actions_init (&fa);
- /* Redirect output. */
- if (__glibc_likely (fildes[1] != STDOUT_FILENO))
+ /* Redirect output. For check syntax only (noexec being true), exec_comm
+ explicits sets fildes[1] to -1, so check its value to avoid a failure in
+ __posix_spawn_file_actions_adddup2. */
+ if (fildes[1] != -1)
{
- __dup2 (fildes[1], STDOUT_FILENO);
- __close (fildes[1]);
+ if (__glibc_likely (fildes[1] != STDOUT_FILENO))
+ {
+ if (__posix_spawn_file_actions_adddup2 (&fa, fildes[1],
+ STDOUT_FILENO) != 0
+ || __posix_spawn_file_actions_addclose (&fa, fildes[1]) != 0)
+ goto out;
+ }
+ else
+ /* Reset the close-on-exec flag (if necessary). */
+ if (__posix_spawn_file_actions_adddup2 (&fa, fildes[1], fildes[1])
+ != 0)
+ goto out;
}
- else
- /* Reset the close-on-exec flag (if necessary). */
- __fcntl (fildes[1], F_SETFD, 0);
/* Redirect stderr to /dev/null if we have to. */
- if (showerr == 0)
+ if (!showerr)
+ if (__posix_spawn_file_actions_addopen (&fa, STDERR_FILENO, _PATH_DEVNULL,
+ O_WRONLY, 0) != 0)
+ goto out;
+
+ struct strlist newenv;
+ strlist_init (&newenv);
+
+ bool recreate_env = getenv ("IFS") != NULL;
+ if (recreate_env)
{
- struct stat64 st;
- int fd;
- __close (STDERR_FILENO);
- fd = __open (_PATH_DEVNULL, O_WRONLY);
- if (fd >= 0 && fd != STDERR_FILENO)
- {
- __dup2 (fd, STDERR_FILENO);
- __close (fd);
- }
- /* Be paranoid. Check that we actually opened the /dev/null
- device. */
- if (__builtin_expect (__fxstat64 (_STAT_VER, STDERR_FILENO, &st), 0) != 0
- || __builtin_expect (S_ISCHR (st.st_mode), 1) == 0
-#if defined DEV_NULL_MAJOR && defined DEV_NULL_MINOR
- || st.st_rdev != __gnu_dev_makedev (DEV_NULL_MAJOR, DEV_NULL_MINOR)
-#endif
- )
- /* It's not the /dev/null device. Stop right here. The
- problem is: how do we stop? We use _exit() with an
- hopefully unusual exit code. */
- _exit (90);
+ for (char **ep = __environ; *ep != NULL; ep++)
+ if (strncmp (*ep, "IFS=", strlen ("IFS=")) != 0)
+ strlist_add (&newenv, *ep);
+ strlist_add (&newenv, NULL);
+ if (strlist_has_failed (&newenv))
+ goto out;
}
- /* Make sure the subshell doesn't field-split on our behalf. */
- __unsetenv ("IFS");
+ /* pid is not set if posix_spawn fails, so it keep the original value
+ of -1. */
+ __posix_spawn (&pid, _PATH_BSHELL, &fa, NULL, (char *const *) args,
+ recreate_env ? strlist_begin (&newenv) : __environ);
- __close (fildes[0]);
- __execve (_PATH_BSHELL, (char *const *) args, __environ);
+ strlist_free (&newenv);
+
+out:
+ __posix_spawn_file_actions_destroy (&fa);
- /* Bad. What now? */
- abort ();
+ return pid;
}
/* Function to execute a command and retrieve the results */
@@ -883,13 +884,13 @@ exec_comm (char *comm, char **word, size_t *word_length, size_t *max_length,
size_t maxnewlines = 0;
char buffer[bufsize];
pid_t pid;
- int noexec = 0;
+ bool noexec = false;
/* Do nothing if command substitution should not succeed. */
if (flags & WRDE_NOCMD)
return WRDE_CMDSUB;
- /* Don't fork() unless necessary */
+ /* Don't posix_spawn unless necessary */
if (!comm || !*comm)
return 0;
@@ -897,19 +898,15 @@ exec_comm (char *comm, char **word, size_t *word_length, size_t *max_length,
return WRDE_NOSPACE;
again:
- if ((pid = __fork ()) < 0)
+ pid = exec_comm_child (comm, fildes, noexec ? false : flags & WRDE_SHOWERR,
+ noexec);
+ if (pid < 0)
{
- /* Bad */
__close (fildes[0]);
__close (fildes[1]);
return WRDE_NOSPACE;
}
- if (pid == 0)
- exec_comm_child (comm, fildes, noexec ? 0 : flags & WRDE_SHOWERR, noexec);
-
- /* Parent */
-
/* If we are just testing the syntax, only wait. */
if (noexec)
return (TEMP_FAILURE_RETRY (__waitpid (pid, &status, 0)) == pid
@@ -1069,8 +1066,8 @@ exec_comm (char *comm, char **word, size_t *word_length, size_t *max_length,
/* Chop off trailing newlines (required by POSIX.2) */
/* Ensure we don't go back further than the beginning of the
substitution (i.e. remove maxnewlines bytes at most) */
- while (maxnewlines-- != 0 &&
- *word_length > 0 && (*word)[*word_length - 1] == '\n')
+ while (maxnewlines-- != 0
+ && *word_length > 0 && (*word)[*word_length - 1] == '\n')
{
(*word)[--*word_length] = '\0';
@@ -1090,7 +1087,7 @@ exec_comm (char *comm, char **word, size_t *word_length, size_t *max_length,
/* Check for syntax error (re-execute but with "-n" flag) */
if (buflen < 1 && status != 0)
{
- noexec = 1;
+ noexec = true;
goto again;
}
@@ -1142,26 +1139,9 @@ parse_comm (char **word, size_t *word_length, size_t *max_length,
/* Go -- give script to the shell */
if (comm)
{
-#ifdef __libc_ptf_call
- /* We do not want the exec_comm call to be cut short
- by a thread cancellation since cleanup is very
- ugly. Therefore disable cancellation for
- now. */
- // XXX Ideally we do want the thread being cancelable.
- // XXX If demand is there we'll change it.
- int state = PTHREAD_CANCEL_ENABLE;
- __libc_ptf_call (__pthread_setcancelstate,
- (PTHREAD_CANCEL_DISABLE, &state), 0);
-#endif
-
+ /* posix_spawn already handles thread cancellation. */
error = exec_comm (comm, word, word_length, max_length,
flags, pwordexp, ifs, ifs_white);
-
-#ifdef __libc_ptf_call
- __libc_ptf_call (__pthread_setcancelstate,
- (state, NULL), 0);
-#endif
-
free (comm);
}
@@ -2127,6 +2107,7 @@ parse_backtick (char **word, size_t *word_length, size_t *max_length,
case '\'':
squoting = 1 - squoting;
+ /* Fall through. */
default:
comm = w_addchar (comm, &comm_length, &comm_maxlen, words[*offset]);
if (comm == NULL)
diff --git a/posix/wordexp.h b/posix/wordexp.h
index 8da64fb1a0..37cc7964cc 100644
--- a/posix/wordexp.h
+++ b/posix/wordexp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _WORDEXP_H
#define _WORDEXP_H 1
@@ -33,8 +33,8 @@ enum
WRDE_REUSE = (1 << 3), /* Reuse storage in PWORDEXP. */
WRDE_SHOWERR = (1 << 4), /* Don't redirect stderr to /dev/null. */
WRDE_UNDEF = (1 << 5), /* Error for expanding undefined variables. */
- __WRDE_FLAGS = (WRDE_DOOFFS | WRDE_APPEND | WRDE_NOCMD |
- WRDE_REUSE | WRDE_SHOWERR | WRDE_UNDEF)
+ __WRDE_FLAGS = (WRDE_DOOFFS | WRDE_APPEND | WRDE_NOCMD
+ | WRDE_REUSE | WRDE_SHOWERR | WRDE_UNDEF)
};
/* Structure describing a word-expansion run. */
diff --git a/pwd/Makefile b/pwd/Makefile
index 698578acf2..009e716bc2 100644
--- a/pwd/Makefile
+++ b/pwd/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1991-2018 Free Software Foundation, Inc.
+# Copyright (C) 1991-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
# Sub-makefile for pwd portion of the library.
diff --git a/pwd/fgetpwent.c b/pwd/fgetpwent.c
index 7601857ee6..bc5bba142a 100644
--- a/pwd/fgetpwent.c
+++ b/pwd/fgetpwent.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <libc-lock.h>
diff --git a/pwd/fgetpwent_r.c b/pwd/fgetpwent_r.c
index ec21739b76..6c73796855 100644
--- a/pwd/fgetpwent_r.c
+++ b/pwd/fgetpwent_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <errno.h>
@@ -97,10 +97,10 @@ __fgetpwent_r (FILE *stream, struct passwd *resbuf, char *buffer,
/* Skip leading blanks. */
while (isspace (*p))
++p;
- } while (*p == '\0' || *p == '#' || /* Ignore empty and comment lines. */
+ } while (*p == '\0' || *p == '#' /* Ignore empty and comment lines. */
/* Parse the line. If it is invalid, loop to
get the next line of the file to parse. */
- ! parse_line (p, resbuf, (void *) buffer, buflen, &errno));
+ || ! parse_line (p, resbuf, (void *) buffer, buflen, &errno));
funlockfile (stream);
diff --git a/pwd/getpw.c b/pwd/getpw.c
index 7b324c9b8a..ac2141420d 100644
--- a/pwd/getpw.c
+++ b/pwd/getpw.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <alloca.h>
#include <errno.h>
diff --git a/pwd/getpwent.c b/pwd/getpwent.c
index 14f2b46d46..1a31897256 100644
--- a/pwd/getpwent.c
+++ b/pwd/getpwent.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pwd.h>
diff --git a/pwd/getpwent_r.c b/pwd/getpwent_r.c
index 69d040e1c5..6d88b89d4b 100644
--- a/pwd/getpwent_r.c
+++ b/pwd/getpwent_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pwd.h>
diff --git a/pwd/getpwnam.c b/pwd/getpwnam.c
index ec0f45b53c..e0ab96b87d 100644
--- a/pwd/getpwnam.c
+++ b/pwd/getpwnam.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pwd.h>
diff --git a/pwd/getpwnam_r.c b/pwd/getpwnam_r.c
index 2a208f4f54..6c223a9f25 100644
--- a/pwd/getpwnam_r.c
+++ b/pwd/getpwnam_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pwd.h>
diff --git a/pwd/getpwuid.c b/pwd/getpwuid.c
index 51f2f417b8..305d9e45d0 100644
--- a/pwd/getpwuid.c
+++ b/pwd/getpwuid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pwd.h>
diff --git a/pwd/getpwuid_r.c b/pwd/getpwuid_r.c
index d800fbe8fa..235f33fe23 100644
--- a/pwd/getpwuid_r.c
+++ b/pwd/getpwuid_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pwd.h>
diff --git a/pwd/putpwent.c b/pwd/putpwent.c
index ba4bd2b210..08fc03b4e6 100644
--- a/pwd/putpwent.c
+++ b/pwd/putpwent.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdio.h>
diff --git a/pwd/pwd.h b/pwd/pwd.h
index e6d20cd78b..791c6d9044 100644
--- a/pwd/pwd.h
+++ b/pwd/pwd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* POSIX Standard: 9.2.2 User Database Access <pwd.h>
diff --git a/pwd/tst-getpw.c b/pwd/tst-getpw.c
index 52c1686b96..64973a83e6 100644
--- a/pwd/tst-getpw.c
+++ b/pwd/tst-getpw.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <pwd.h>
diff --git a/pwd/tst-putpwent.c b/pwd/tst-putpwent.c
index 28253e75e1..2cadfee372 100644
--- a/pwd/tst-putpwent.c
+++ b/pwd/tst-putpwent.c
@@ -1,5 +1,5 @@
/* Test for processing of invalid passwd entries. [BZ #18724]
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pwd.h>
diff --git a/resolv/Makefile b/resolv/Makefile
index ea395ac3eb..cd097bd315 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1994-2018 Free Software Foundation, Inc.
+# Copyright (C) 1994-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
# Sub-makefile for resolv portion of the library.
@@ -34,6 +34,9 @@ routines := herror inet_addr inet_ntop inet_pton nsap_addr res_init \
tests = tst-aton tst-leaks tst-inet_ntop
xtests = tst-leaks2
+tests-internal += tst-inet_aton_exact
+
+
generate := mtrace-tst-leaks.out tst-leaks.mtrace tst-leaks2.mtrace
extra-libs := libresolv libnss_dns
@@ -49,13 +52,14 @@ tests += \
tst-ns_name_pton \
tst-res_hconf_reorder \
tst-res_hnok \
- tst-res_use_inet6 \
tst-resolv-basic \
tst-resolv-binary \
tst-resolv-edns \
tst-resolv-network \
+ tst-resolv-nondecimal \
tst-resolv-res_init-multi \
tst-resolv-search \
+ tst-resolv-trailing \
# These tests need libdl.
ifeq (yes,$(build-shared))
@@ -64,14 +68,12 @@ tests += \
tst-resolv-ai_idn-latin1 \
tst-resolv-ai_idn-nolibidn2 \
tst-resolv-canonname \
+ tst-resolv-trustad \
-# uses DEPRECATED_RES_USE_INET6 from <resolv-internal.h>.
+# Needs resolv_context.
tests-internal += \
tst-resolv-res_init \
tst-resolv-res_init-thread \
-
-# Needs resolv_context.
-tests-internal += \
tst-resolv-res_ninit \
tst-resolv-threads \
@@ -100,7 +102,7 @@ libresolv-routines := res_comp res_debug \
res_data res_mkquery res_query res_send \
inet_net_ntop inet_net_pton inet_neta base64 \
ns_parse ns_name ns_netint ns_ttl ns_print \
- ns_samedomain ns_date \
+ ns_samedomain ns_date res_enable_icmp \
compat-hooks compat-gethnamaddr
libanl-routines := gai_cancel gai_error gai_misc gai_notify gai_suspend \
@@ -170,7 +172,6 @@ $(objpfx)mtrace-tst-resolv-res_ninit.out: $(objpfx)tst-resolv-res_ninit.out
$(objpfx)tst-bug18665-tcp: $(objpfx)libresolv.so $(shared-thread-library)
$(objpfx)tst-bug18665: $(objpfx)libresolv.so $(shared-thread-library)
-$(objpfx)tst-res_use_inet6: $(objpfx)libresolv.so $(shared-thread-library)
$(objpfx)tst-resolv-ai_idn: \
$(libdl) $(objpfx)libresolv.so $(shared-thread-library)
$(objpfx)tst-resolv-ai_idn-latin1: \
@@ -190,13 +191,16 @@ $(objpfx)tst-resolv-res_init-multi: $(objpfx)libresolv.so \
$(shared-thread-library)
$(objpfx)tst-resolv-res_init-thread: $(libdl) $(objpfx)libresolv.so \
$(shared-thread-library)
+$(objpfx)tst-resolv-nondecimal: $(objpfx)libresolv.so $(shared-thread-library)
$(objpfx)tst-resolv-qtypes: $(objpfx)libresolv.so $(shared-thread-library)
$(objpfx)tst-resolv-rotate: $(objpfx)libresolv.so $(shared-thread-library)
$(objpfx)tst-resolv-search: $(objpfx)libresolv.so $(shared-thread-library)
+$(objpfx)tst-resolv-trailing: $(objpfx)libresolv.so $(shared-thread-library)
$(objpfx)tst-resolv-threads: \
$(libdl) $(objpfx)libresolv.so $(shared-thread-library)
$(objpfx)tst-resolv-canonname: \
$(libdl) $(objpfx)libresolv.so $(shared-thread-library)
+$(objpfx)tst-resolv-trustad: $(objpfx)libresolv.so $(shared-thread-library)
$(objpfx)tst-ns_name: $(objpfx)libresolv.so
$(objpfx)tst-ns_name.out: tst-ns_name.data
@@ -204,7 +208,3 @@ $(objpfx)tst-ns_name_compress: $(objpfx)libresolv.so
$(objpfx)tst-ns_name_pton: $(objpfx)libresolv.so
$(objpfx)tst-res_hnok: $(objpfx)libresolv.so
$(objpfx)tst-p_secstodate: $(objpfx)libresolv.so
-
-
-# This test case uses the deprecated RES_USE_INET6 resolver option.
-CFLAGS-tst-res_use_inet6.c += -Wno-error
diff --git a/resolv/Versions b/resolv/Versions
index b05778d965..9a82704af7 100644
--- a/resolv/Versions
+++ b/resolv/Versions
@@ -27,6 +27,7 @@ libc {
__h_errno; __resp;
__res_iclose;
+ __inet_aton_exact;
__inet_pton_length;
__resolv_context_get;
__resolv_context_get_preinit;
diff --git a/resolv/compat-gethnamaddr.c b/resolv/compat-gethnamaddr.c
index 259378b2be..0e24dcbbcc 100644
--- a/resolv/compat-gethnamaddr.c
+++ b/resolv/compat-gethnamaddr.c
@@ -119,21 +119,6 @@ typedef union {
extern int h_errno;
# endif
-# ifdef DEBUG
-static void
-Dprintf (char *msg, int num)
-{
- if (_res.options & RES_DEBUG) {
- int save = errno;
-
- printf(msg, num);
- __set_errno (save);
- }
-}
-# else
-# define Dprintf(msg, num) /*nada*/
-# endif
-
# define BOUNDED_INCR(x) \
do { \
cp += x; \
@@ -162,7 +147,6 @@ getanswer (const querybuf *answer, int anslen, const char *qname, int qtype)
char *bp, **ap, **hap;
int type, class, buflen, ancount, qdcount;
int haveanswer, had_error;
- int toobig = 0;
char tbuf[MAXDNAME];
const char *tname;
int (*name_ok) (const char *);
@@ -370,15 +354,10 @@ getanswer (const querybuf *answer, int anslen, const char *qname, int qtype)
bp += sizeof(align) - ((u_long)bp % sizeof(align));
if (bp + n >= &hostbuf[sizeof hostbuf]) {
- Dprintf("size (%d) too big\n", n);
had_error++;
continue;
}
if (hap >= &h_addr_ptrs[MAXADDRS-1]) {
- if (!toobig++) {
- Dprintf("Too many addresses (%d)\n",
- MAXADDRS);
- }
cp += n;
continue;
}
@@ -572,7 +551,6 @@ res_gethostbyname2_context (struct resolv_context *ctx,
&buf.ptr, NULL, NULL, NULL, NULL)) < 0) {
if (buf.buf != origbuf)
free (buf.buf);
- Dprintf("res_nsearch failed (%d)\n", n);
if (errno == ECONNREFUSED)
return (_gethtbyname2(name, af));
return (NULL);
@@ -671,7 +649,6 @@ res_gethostbyaddr_context (struct resolv_context *ctx,
if (n < 0) {
if (buf.buf != orig_buf)
free (buf.buf);
- Dprintf("res_nquery failed (%d)\n", n);
if (errno == ECONNREFUSED)
return (_gethtbyaddr(addr, len, af));
return (NULL);
diff --git a/resolv/compat-hooks.c b/resolv/compat-hooks.c
index 75228647ce..7c49184482 100644
--- a/resolv/compat-hooks.c
+++ b/resolv/compat-hooks.c
@@ -1,5 +1,5 @@
/* Compatibility functions for obsolete libresolv hooks.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* Copyright (c) 1995-1999 by Internet Software Consortium.
diff --git a/resolv/gai_cancel.c b/resolv/gai_cancel.c
index 07e5dd97e6..6483fafe89 100644
--- a/resolv/gai_cancel.c
+++ b/resolv/gai_cancel.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <netdb.h>
#include <pthread.h>
diff --git a/resolv/gai_error.c b/resolv/gai_error.c
index 48fda59f89..5cac6448de 100644
--- a/resolv/gai_error.c
+++ b/resolv/gai_error.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <netdb.h>
diff --git a/resolv/gai_misc.c b/resolv/gai_misc.c
index e7c3b63cc5..760c33ac29 100644
--- a/resolv/gai_misc.c
+++ b/resolv/gai_misc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
@@ -261,8 +261,11 @@ __gai_enqueue_request (struct gaicb *gaicbp)
/* We cannot create a thread in the moment and there is
also no thread running. This is a problem. `errno' is
set to EAGAIN if this is only a temporary problem. */
- assert (lastp->next == newp);
- lastp->next = NULL;
+ assert (requests == newp || lastp->next == newp);
+ if (lastp != NULL)
+ lastp->next = NULL;
+ else
+ requests = NULL;
requests_tail = lastp;
newp->next = freelist;
@@ -354,13 +357,13 @@ handle_requests (void *arg)
something to arrive in it. */
if (runp == NULL && optim.gai_idle_time >= 0)
{
- struct timeval now;
+ struct timespec now;
struct timespec wakeup_time;
++idle_thread_count;
- gettimeofday (&now, NULL);
+ __clock_gettime (CLOCK_REALTIME, &now);
wakeup_time.tv_sec = now.tv_sec + optim.gai_idle_time;
- wakeup_time.tv_nsec = now.tv_usec * 1000;
+ wakeup_time.tv_nsec = now.tv_nsec;
if (wakeup_time.tv_nsec >= 1000000000)
{
wakeup_time.tv_nsec -= 1000000000;
diff --git a/resolv/gai_misc.h b/resolv/gai_misc.h
index b788ffc483..510e934fe5 100644
--- a/resolv/gai_misc.h
+++ b/resolv/gai_misc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _GAI_MISC_H
#define _GAI_MISC_H 1
diff --git a/resolv/gai_notify.c b/resolv/gai_notify.c
index dad2546802..59d9618105 100644
--- a/resolv/gai_notify.c
+++ b/resolv/gai_notify.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <netdb.h>
#include <pthread.h>
diff --git a/resolv/gai_sigqueue.c b/resolv/gai_sigqueue.c
index f087e1cefa..0eaea5a023 100644
--- a/resolv/gai_sigqueue.c
+++ b/resolv/gai_sigqueue.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <aio.h>
#include <errno.h>
diff --git a/resolv/gai_suspend.c b/resolv/gai_suspend.c
index 1da7108118..b8c642bddc 100644
--- a/resolv/gai_suspend.c
+++ b/resolv/gai_suspend.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <netdb.h>
@@ -91,11 +91,11 @@ gai_suspend (const struct gaicb *const list[], int ent,
{
/* We have to convert the relative timeout value into an
absolute time value with pthread_cond_timedwait expects. */
- struct timeval now;
+ struct timespec now;
struct timespec abstime;
- __gettimeofday (&now, NULL);
- abstime.tv_nsec = timeout->tv_nsec + now.tv_usec * 1000;
+ __clock_gettime (CLOCK_REALTIME, &now);
+ abstime.tv_nsec = timeout->tv_nsec + now.tv_nsec;
abstime.tv_sec = timeout->tv_sec + now.tv_sec;
if (abstime.tv_nsec >= 1000000000)
{
diff --git a/resolv/getaddrinfo_a.c b/resolv/getaddrinfo_a.c
index 60e3140553..1307dc1632 100644
--- a/resolv/getaddrinfo_a.c
+++ b/resolv/getaddrinfo_a.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <netdb.h>
diff --git a/resolv/inet_addr.c b/resolv/inet_addr.c
index 022f7ea084..9ad7b240c1 100644
--- a/resolv/inet_addr.c
+++ b/resolv/inet_addr.c
@@ -1,3 +1,21 @@
+/* Legacy IPv4 text-to-address functions.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
/*
* Copyright (c) 1983, 1990, 1993
* The Regents of the University of California. All rights reserved.
@@ -78,106 +96,122 @@
#include <limits.h>
#include <errno.h>
-/*
- * Ascii internet address interpretation routine.
- * The value returned is in network order.
- */
-in_addr_t
-__inet_addr(const char *cp) {
- struct in_addr val;
-
- if (__inet_aton(cp, &val))
- return (val.s_addr);
- return (INADDR_NONE);
+/* Check whether "cp" is a valid ASCII representation of an IPv4
+ Internet address and convert it to a binary address. Returns 1 if
+ the address is valid, 0 if not. This replaces inet_addr, the
+ return value from which cannot distinguish between failure and a
+ local broadcast address. Write a pointer to the first
+ non-converted character to *endp. */
+static int
+inet_aton_end (const char *cp, struct in_addr *addr, const char **endp)
+{
+ static const in_addr_t max[4] = { 0xffffffff, 0xffffff, 0xffff, 0xff };
+ in_addr_t val;
+ char c;
+ union iaddr
+ {
+ uint8_t bytes[4];
+ uint32_t word;
+ } res;
+ uint8_t *pp = res.bytes;
+ int digit;
+
+ int saved_errno = errno;
+ __set_errno (0);
+
+ res.word = 0;
+
+ c = *cp;
+ for (;;)
+ {
+ /* Collect number up to ``.''. Values are specified as for C:
+ 0x=hex, 0=octal, isdigit=decimal. */
+ if (!isdigit (c))
+ goto ret_0;
+ {
+ char *endp;
+ unsigned long ul = strtoul (cp, &endp, 0);
+ if (ul == ULONG_MAX && errno == ERANGE)
+ goto ret_0;
+ if (ul > 0xfffffffful)
+ goto ret_0;
+ val = ul;
+ digit = cp != endp;
+ cp = endp;
+ }
+ c = *cp;
+ if (c == '.')
+ {
+ /* Internet format:
+ a.b.c.d
+ a.b.c (with c treated as 16 bits)
+ a.b (with b treated as 24 bits). */
+ if (pp > res.bytes + 2 || val > 0xff)
+ goto ret_0;
+ *pp++ = val;
+ c = *++cp;
+ }
+ else
+ break;
+ }
+ /* Check for trailing characters. */
+ if (c != '\0' && (!isascii (c) || !isspace (c)))
+ goto ret_0;
+ /* Did we get a valid digit? */
+ if (!digit)
+ goto ret_0;
+
+ /* Check whether the last part is in its limits depending on the
+ number of parts in total. */
+ if (val > max[pp - res.bytes])
+ goto ret_0;
+
+ if (addr != NULL)
+ addr->s_addr = res.word | htonl (val);
+ *endp = cp;
+
+ __set_errno (saved_errno);
+ return 1;
+
+ ret_0:
+ __set_errno (saved_errno);
+ return 0;
}
-weak_alias (__inet_addr, inet_addr)
-/*
- * Check whether "cp" is a valid ascii representation
- * of an Internet address and convert to a binary address.
- * Returns 1 if the address is valid, 0 if not.
- * This replaces inet_addr, the return value from which
- * cannot distinguish between failure and a local broadcast address.
- */
int
-__inet_aton(const char *cp, struct in_addr *addr)
+__inet_aton_exact (const char *cp, struct in_addr *addr)
{
- static const in_addr_t max[4] = { 0xffffffff, 0xffffff, 0xffff, 0xff };
- in_addr_t val;
- char c;
- union iaddr {
- uint8_t bytes[4];
- uint32_t word;
- } res;
- uint8_t *pp = res.bytes;
- int digit;
-
- int saved_errno = errno;
- __set_errno (0);
-
- res.word = 0;
-
- c = *cp;
- for (;;) {
- /*
- * Collect number up to ``.''.
- * Values are specified as for C:
- * 0x=hex, 0=octal, isdigit=decimal.
- */
- if (!isdigit(c))
- goto ret_0;
- {
- char *endp;
- unsigned long ul = strtoul (cp, (char **) &endp, 0);
- if (ul == ULONG_MAX && errno == ERANGE)
- goto ret_0;
- if (ul > 0xfffffffful)
- goto ret_0;
- val = ul;
- digit = cp != endp;
- cp = endp;
- }
- c = *cp;
- if (c == '.') {
- /*
- * Internet format:
- * a.b.c.d
- * a.b.c (with c treated as 16 bits)
- * a.b (with b treated as 24 bits)
- */
- if (pp > res.bytes + 2 || val > 0xff)
- goto ret_0;
- *pp++ = val;
- c = *++cp;
- } else
- break;
- }
- /*
- * Check for trailing characters.
- */
- if (c != '\0' && (!isascii(c) || !isspace(c)))
- goto ret_0;
- /*
- * Did we get a valid digit?
- */
- if (!digit)
- goto ret_0;
-
- /* Check whether the last part is in its limits depending on
- the number of parts in total. */
- if (val > max[pp - res.bytes])
- goto ret_0;
-
- if (addr != NULL)
- addr->s_addr = res.word | htonl (val);
+ struct in_addr val;
+ const char *endp;
+ /* Check that inet_aton_end parsed the entire string. */
+ if (inet_aton_end (cp, &val, &endp) != 0 && *endp == 0)
+ {
+ *addr = val;
+ return 1;
+ }
+ else
+ return 0;
+}
+libc_hidden_def (__inet_aton_exact)
- __set_errno (saved_errno);
- return (1);
+/* inet_aton ignores trailing garbage. */
+int
+__inet_aton_ignore_trailing (const char *cp, struct in_addr *addr)
+{
+ const char *endp;
+ return inet_aton_end (cp, addr, &endp);
+}
+weak_alias (__inet_aton_ignore_trailing, inet_aton)
-ret_0:
- __set_errno (saved_errno);
- return (0);
+/* ASCII IPv4 Internet address interpretation routine. The value
+ returned is in network order. */
+in_addr_t
+__inet_addr (const char *cp)
+{
+ struct in_addr val;
+ const char *endp;
+ if (inet_aton_end (cp, &val, &endp))
+ return val.s_addr;
+ return INADDR_NONE;
}
-weak_alias (__inet_aton, inet_aton)
-libc_hidden_def (__inet_aton)
-libc_hidden_weak (inet_aton)
+weak_alias (__inet_addr, inet_addr)
diff --git a/resolv/inet_pton.c b/resolv/inet_pton.c
index 9cb21f9f82..274b02db43 100644
--- a/resolv/inet_pton.c
+++ b/resolv/inet_pton.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* Copyright (c) 1996,1999 by Internet Software Consortium.
diff --git a/resolv/netdb.h b/resolv/netdb.h
index 003800e882..9d6bceebe5 100644
--- a/resolv/netdb.h
+++ b/resolv/netdb.h
@@ -1,4 +1,4 @@
- /* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ /* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* All data returned by the network data base library are supplied in
host order and returned in network order (suitable for use in
diff --git a/resolv/ns_ttl.c b/resolv/ns_ttl.c
index 079948790b..d29d9dc00c 100644
--- a/resolv/ns_ttl.c
+++ b/resolv/ns_ttl.c
@@ -113,9 +113,13 @@ ns_parse_ttl(const char *src, u_long *dst) {
ch = toupper(ch);
switch (ch) {
case 'W': tmp *= 7;
+ /* Fall through. */
case 'D': tmp *= 24;
+ /* Fall through. */
case 'H': tmp *= 60;
+ /* Fall through. */
case 'M': tmp *= 60;
+ /* Fall through. */
case 'S': break;
default: goto einval;
}
diff --git a/resolv/nss_dns/dns-canon.c b/resolv/nss_dns/dns-canon.c
index b9e32cae52..4da7b7e635 100644
--- a/resolv/nss_dns/dns-canon.c
+++ b/resolv/nss_dns/dns-canon.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <netdb.h>
diff --git a/resolv/nss_dns/dns-host.c b/resolv/nss_dns/dns-host.c
index 5dc2829cd1..5d472e87c6 100644
--- a/resolv/nss_dns/dns-host.c
+++ b/resolv/nss_dns/dns-host.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Extended from original form by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Parts of this file are plain copies of the file `gethtnamadr.c' from
the bind package and it has the following copyright. */
@@ -78,6 +78,7 @@
#include <stdlib.h>
#include <stddef.h>
#include <string.h>
+#include <libc-pointer-arith.h>
#include "nsswitch.h"
#include <arpa/nameser.h>
@@ -274,11 +275,26 @@ gethostbyname3_context (struct resolv_context *ctx,
return status;
}
+/* Verify that the name looks like a host name. There is no point in
+ sending a query which will not produce a usable name in the
+ response. */
+static enum nss_status
+check_name (const char *name, int *h_errnop)
+{
+ if (res_hnok (name))
+ return NSS_STATUS_SUCCESS;
+ *h_errnop = HOST_NOT_FOUND;
+ return NSS_STATUS_NOTFOUND;
+}
+
enum nss_status
_nss_dns_gethostbyname2_r (const char *name, int af, struct hostent *result,
char *buffer, size_t buflen, int *errnop,
int *h_errnop)
{
+ enum nss_status status = check_name (name, h_errnop);
+ if (status != NSS_STATUS_SUCCESS)
+ return status;
return _nss_dns_gethostbyname3_r (name, af, result, buffer, buflen, errnop,
h_errnop, NULL, NULL);
}
@@ -289,6 +305,9 @@ _nss_dns_gethostbyname_r (const char *name, struct hostent *result,
char *buffer, size_t buflen, int *errnop,
int *h_errnop)
{
+ enum nss_status status = check_name (name, h_errnop);
+ if (status != NSS_STATUS_SUCCESS)
+ return status;
struct resolv_context *ctx = __resolv_context_get ();
if (ctx == NULL)
{
@@ -296,7 +315,7 @@ _nss_dns_gethostbyname_r (const char *name, struct hostent *result,
*h_errnop = NETDB_INTERNAL;
return NSS_STATUS_UNAVAIL;
}
- enum nss_status status = NSS_STATUS_NOTFOUND;
+ status = NSS_STATUS_NOTFOUND;
if (res_use_inet6 ())
status = gethostbyname3_context (ctx, name, AF_INET6, result, buffer,
buflen, errnop, h_errnop, NULL, NULL);
@@ -313,6 +332,9 @@ _nss_dns_gethostbyname4_r (const char *name, struct gaih_addrtuple **pat,
char *buffer, size_t buflen, int *errnop,
int *herrnop, int32_t *ttlp)
{
+ enum nss_status status = check_name (name, herrnop);
+ if (status != NSS_STATUS_SUCCESS)
+ return status;
struct resolv_context *ctx = __resolv_context_get ();
if (ctx == NULL)
{
@@ -347,7 +369,6 @@ _nss_dns_gethostbyname4_r (const char *name, struct gaih_addrtuple **pat,
int ans2p_malloced = 0;
int olderr = errno;
- enum nss_status status;
int n = __res_context_search (ctx, name, C_IN, T_QUERY_A_AND_AAAA,
host_buffer.buf->buf, 2048, &host_buffer.ptr,
&ans2p, &nans2p, &resplen2, &ans2p_malloced);
@@ -686,9 +707,6 @@ getanswer_r (struct resolv_context *ctx,
n = -1;
}
- if (n > 0 && bp[0] == '.')
- bp[0] = '\0';
-
if (__glibc_unlikely (n < 0))
{
*errnop = errno;
@@ -930,8 +948,18 @@ getanswer_r (struct resolv_context *ctx,
linebuflen -= nn;
}
- linebuflen -= sizeof (align) - ((u_long) bp % sizeof (align));
- bp += sizeof (align) - ((u_long) bp % sizeof (align));
+ /* Provide sufficient alignment for both address
+ families. */
+ enum { align = 4 };
+ _Static_assert ((align % __alignof__ (struct in_addr)) == 0,
+ "struct in_addr alignment");
+ _Static_assert ((align % __alignof__ (struct in6_addr)) == 0,
+ "struct in6_addr alignment");
+ {
+ char *new_bp = PTR_ALIGN_UP (bp, align);
+ linebuflen -= new_bp - bp;
+ bp = new_bp;
+ }
if (__glibc_unlikely (n > linebuflen))
goto too_small;
diff --git a/resolv/nss_dns/dns-network.c b/resolv/nss_dns/dns-network.c
index 61bddd754f..c1fd44f368 100644
--- a/resolv/nss_dns/dns-network.c
+++ b/resolv/nss_dns/dns-network.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Extended from original form by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Parts of this file are plain copies of the file `getnetnamadr.c' from
the bind package and it has the following copyright. */
@@ -345,9 +345,6 @@ getanswer_r (const querybuf *answer, int anslen, struct netent *result,
n = -1;
}
- if (n > 0 && bp[0] == '.')
- bp[0] = '\0';
-
if (n < 0 || res_dnok (bp) == 0)
break;
cp += n;
diff --git a/resolv/res-close.c b/resolv/res-close.c
index 1c36dd5f1d..1cfa0e161f 100644
--- a/resolv/res-close.c
+++ b/resolv/res-close.c
@@ -1,5 +1,5 @@
/* Deallocation functions for the resolver state.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* Copyright (c) 1985, 1989, 1993
diff --git a/resolv/res-state.c b/resolv/res-state.c
index 010ae3707d..72e46d6ae4 100644
--- a/resolv/res-state.c
+++ b/resolv/res-state.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <resolv.h>
#include <tls.h>
diff --git a/resolv/res_comp.c b/resolv/res_comp.c
index 367ca3017d..562aedcee6 100644
--- a/resolv/res_comp.c
+++ b/resolv/res_comp.c
@@ -1,5 +1,5 @@
/* Domain name processing functions.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* Copyright (c) 1985, 1993
diff --git a/resolv/res_data.c b/resolv/res_data.c
index e586d96dc6..799c177b53 100644
--- a/resolv/res_data.c
+++ b/resolv/res_data.c
@@ -1,5 +1,5 @@
/* Miscellaneous definitions for libresolv.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* Copyright (c) 1995-1999 by Internet Software Consortium.
diff --git a/resolv/res_debug.c b/resolv/res_debug.c
index 7681ad4639..844269cffa 100644
--- a/resolv/res_debug.c
+++ b/resolv/res_debug.c
@@ -604,10 +604,7 @@ p_option(u_long option) {
case RES_DEFNAMES: return "defnam";
case RES_STAYOPEN: return "styopn";
case RES_DNSRCH: return "dnsrch";
- case RES_INSECURE1: return "insecure1";
- case RES_INSECURE2: return "insecure2";
case RES_NOALIASES: return "noaliases";
- case DEPRECATED_RES_USE_INET6: return "inet6";
case RES_ROTATE: return "rotate";
case RES_USE_EDNS0: return "edns0";
case RES_SNGLKUP: return "single-request";
@@ -615,6 +612,7 @@ p_option(u_long option) {
case RES_USE_DNSSEC: return "dnssec";
case RES_NOTLDQUERY: return "no-tld-query";
case RES_NORELOAD: return "no-reload";
+ case RES_TRUSTAD: return "trust-ad";
/* XXX nonreentrant */
default: sprintf(nbuf, "?0x%lx?", (u_long)option);
return (nbuf);
diff --git a/resolv/res_enable_icmp.c b/resolv/res_enable_icmp.c
new file mode 100644
index 0000000000..e0a1c91462
--- /dev/null
+++ b/resolv/res_enable_icmp.c
@@ -0,0 +1,37 @@
+/* Enable full ICMP errors on a socket.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <netinet/in.h>
+#include <sys/socket.h>
+
+int
+__res_enable_icmp (int family, int fd)
+{
+ int one = 1;
+ switch (family)
+ {
+ case AF_INET:
+ return setsockopt (fd, SOL_IP, IP_RECVERR, &one, sizeof (one));
+ case AF_INET6:
+ return setsockopt (fd, SOL_IPV6, IPV6_RECVERR, &one, sizeof (one));
+ default:
+ __set_errno (EAFNOSUPPORT);
+ return -1;
+ }
+}
diff --git a/resolv/res_hconf.c b/resolv/res_hconf.c
index 50b6d78711..3f7b2d6349 100644
--- a/resolv/res_hconf.c
+++ b/resolv/res_hconf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Mosberger (davidm@azstarnet.com).
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file provides a Linux /etc/host.conf compatible front end to
the various name resolvers (/etc/hosts, named, NIS server, etc.).
diff --git a/resolv/res_hconf.h b/resolv/res_hconf.h
index 49096b1f90..c29a1888a5 100644
--- a/resolv/res_hconf.h
+++ b/resolv/res_hconf.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Mosberger (davidm@azstarnet.com).
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _RES_HCONF_H_
#define _RES_HCONF_H_
diff --git a/resolv/res_init.c b/resolv/res_init.c
index f5e52cbbb9..c2f2c7b7e7 100644
--- a/resolv/res_init.c
+++ b/resolv/res_init.c
@@ -1,5 +1,5 @@
/* Resolver state initialization and resolv.conf parsing.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* Copyright (c) 1985, 1989, 1993
@@ -399,8 +399,16 @@ res_vinit_1 (FILE *fp, struct resolv_conf_parser *parser)
cp = parser->buffer + sizeof ("nameserver") - 1;
while (*cp == ' ' || *cp == '\t')
cp++;
+
+ /* Ignore trailing contents on the name server line. */
+ {
+ char *el;
+ if ((el = strpbrk (cp, " \t\n")) != NULL)
+ *el = '\0';
+ }
+
struct sockaddr *sa;
- if ((*cp != '\0') && (*cp != '\n') && __inet_aton (cp, &a))
+ if ((*cp != '\0') && (*cp != '\n') && __inet_aton_exact (cp, &a))
{
sa = allocate_address_v4 (a, NAMESERVER_PORT);
if (sa == NULL)
@@ -410,9 +418,6 @@ res_vinit_1 (FILE *fp, struct resolv_conf_parser *parser)
{
struct in6_addr a6;
char *el;
-
- if ((el = strpbrk (cp, " \t\n")) != NULL)
- *el = '\0';
if ((el = strchr (cp, SCOPE_DELIMITER)) != NULL)
*el = '\0';
if ((*cp != '\0') && (__inet_pton (AF_INET6, cp, &a6) > 0))
@@ -472,7 +477,7 @@ res_vinit_1 (FILE *fp, struct resolv_conf_parser *parser)
char separator = *cp;
*cp = 0;
struct resolv_sortlist_entry e;
- if (__inet_aton (net, &a))
+ if (__inet_aton_exact (net, &a))
{
e.addr = a;
if (is_sort_mask (separator))
@@ -484,7 +489,7 @@ res_vinit_1 (FILE *fp, struct resolv_conf_parser *parser)
cp++;
separator = *cp;
*cp = 0;
- if (__inet_aton (net, &a))
+ if (__inet_aton_exact (net, &a))
e.mask = a.s_addr;
else
e.mask = net_mask (e.addr);
@@ -667,7 +672,6 @@ res_setoptions (struct resolv_conf_parser *parser, const char *options)
unsigned long int flag;
} options[] = {
#define STRnLEN(str) str, sizeof (str) - 1
- { STRnLEN ("inet6"), 0, DEPRECATED_RES_USE_INET6 },
{ STRnLEN ("rotate"), 0, RES_ROTATE },
{ STRnLEN ("edns0"), 0, RES_USE_EDNS0 },
{ STRnLEN ("single-request-reopen"), 0, RES_SNGLKUPREOP },
@@ -675,7 +679,8 @@ res_setoptions (struct resolv_conf_parser *parser, const char *options)
{ STRnLEN ("no_tld_query"), 0, RES_NOTLDQUERY },
{ STRnLEN ("no-tld-query"), 0, RES_NOTLDQUERY },
{ STRnLEN ("no-reload"), 0, RES_NORELOAD },
- { STRnLEN ("use-vc"), 0, RES_USEVC }
+ { STRnLEN ("use-vc"), 0, RES_USEVC },
+ { STRnLEN ("trust-ad"), 0, RES_TRUSTAD },
};
#define noptions (sizeof (options) / sizeof (options[0]))
for (int i = 0; i < noptions; ++i)
diff --git a/resolv/res_libc.c b/resolv/res_libc.c
index 6d3e1d2c1a..ecff7d6d13 100644
--- a/resolv/res_libc.c
+++ b/resolv/res_libc.c
@@ -1,5 +1,5 @@
/* Definitions related to res_init linked into libc instead of libresolv.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* Copyright (c) 1995-1999 by Internet Software Consortium.
diff --git a/resolv/res_mkquery.c b/resolv/res_mkquery.c
index 213abeefad..0d39353b41 100644
--- a/resolv/res_mkquery.c
+++ b/resolv/res_mkquery.c
@@ -1,5 +1,5 @@
/* Creation of DNS query packets.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* Copyright (c) 1985, 1993
@@ -82,6 +82,7 @@
* SOFTWARE.
*/
+#include <stdint.h>
#include <sys/types.h>
#include <sys/param.h>
#include <netinet/in.h>
@@ -92,12 +93,7 @@
#include <string.h>
#include <sys/time.h>
#include <shlib-compat.h>
-
-#include <hp-timing.h>
-#include <stdint.h>
-#if HP_TIMING_AVAIL
-# define RANDOM_BITS(Var) { uint64_t v64; HP_TIMING_NOW (v64); Var = v64; }
-#endif
+#include <random-bits.h>
int
__res_context_mkquery (struct resolv_context *ctx, int op, const char *dname,
@@ -120,17 +116,10 @@ __res_context_mkquery (struct resolv_context *ctx, int op, const char *dname,
/* We randomize the IDs every time. The old code just incremented
by one after the initial randomization which still predictable if
the application does multiple requests. */
- int randombits;
-#ifdef RANDOM_BITS
- RANDOM_BITS (randombits);
-#else
- struct timeval tv;
- __gettimeofday (&tv, NULL);
- randombits = (tv.tv_sec << 8) ^ tv.tv_usec;
-#endif
-
- hp->id = randombits;
+ hp->id = random_bits ();
hp->opcode = op;
+ if (ctx->resp->options & RES_TRUSTAD)
+ hp->ad = 1;
hp->rd = (ctx->resp->options & RES_RECURSE) != 0;
hp->rcode = NOERROR;
cp = buf + HFIXEDSZ;
diff --git a/resolv/res_randomid.c b/resolv/res_randomid.c
index b96865c515..b08ef72a7e 100644
--- a/resolv/res_randomid.c
+++ b/resolv/res_randomid.c
@@ -1,5 +1,5 @@
/* Legacy libresolv random number generator.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* Copyright (c) 1985, 1989, 1993
diff --git a/resolv/res_send.c b/resolv/res_send.c
index 947ebf5212..fce810031f 100644
--- a/resolv/res_send.c
+++ b/resolv/res_send.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2016-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2016-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* Copyright (c) 1985, 1989, 1993
@@ -109,7 +109,7 @@
#include <unistd.h>
#include <kernel-features.h>
#include <libc-diag.h>
-#include <hp-timing.h>
+#include <random-bits.h>
#if PACKETSZ > 65536
#define MAXPACKET PACKETSZ
@@ -172,12 +172,7 @@ evCmpTime(struct timespec a, struct timespec b) {
static void
evNowTime(struct timespec *res) {
- struct timeval now;
-
- if (gettimeofday(&now, NULL) < 0)
- evConsTime(res, 0, 0);
- else
- TIMEVAL_TO_TIMESPEC (&now, res);
+ __clock_gettime(CLOCK_REALTIME, res);
}
@@ -309,15 +304,7 @@ nameserver_offset (struct __res_state *statp)
if ((offset & 1) == 0)
{
/* Initialization is required. */
-#if HP_TIMING_AVAIL
- uint64_t ticks;
- HP_TIMING_NOW (ticks);
- offset = ticks;
-#else
- struct timeval tv;
- __gettimeofday (&tv, NULL);
- offset = ((tv.tv_sec << 8) ^ tv.tv_usec);
-#endif
+ offset = random_bits ();
/* The lowest bit is the most random. Preserve it. */
offset <<= 1;
@@ -345,6 +332,15 @@ nameserver_offset (struct __res_state *statp)
}
}
+/* Clear the AD bit unless the trust-ad option was specified in the
+ resolver configuration. */
+static void
+mask_ad_bit (struct resolv_context *ctx, void *buf)
+{
+ if (!(ctx->resp->options & RES_TRUSTAD))
+ ((HEADER *) buf)->ad = 0;
+}
+
/* int
* res_queriesmatch(buf1, eom1, buf2, eom2)
* is there a 1:1 mapping of (name,type,class)
@@ -409,7 +405,18 @@ __res_context_send (struct resolv_context *ctx,
int *nansp2, int *resplen2, int *ansp2_malloced)
{
struct __res_state *statp = ctx->resp;
- int gotsomewhere, terrno, try, v_circuit, resplen, n;
+ int gotsomewhere, terrno, try, v_circuit, resplen;
+ /* On some architectures send_vc is inlined and the compiler might emit
+ a warning indicating 'resplen' may be used uninitialized. Note that
+ the warning belongs to resplen in send_vc which is used as return
+ value! There the maybe-uninitialized warning is already ignored as
+ it is a false-positive - see comment in send_vc.
+ Here the variable n is set to the return value of send_vc.
+ See below. */
+ DIAG_PUSH_NEEDS_COMMENT;
+ DIAG_IGNORE_NEEDS_COMMENT (9, "-Wmaybe-uninitialized");
+ int n;
+ DIAG_POP_NEEDS_COMMENT;
if (statp->nscount == 0) {
__set_errno (ESRCH);
@@ -503,8 +510,12 @@ __res_context_send (struct resolv_context *ctx,
ansp2_malloced);
if (n < 0)
return (-1);
+ /* See comment at the declaration of n. */
+ DIAG_PUSH_NEEDS_COMMENT;
+ DIAG_IGNORE_NEEDS_COMMENT (9, "-Wmaybe-uninitialized");
if (n == 0 && (buf2 == NULL || *resplen2 == 0))
goto next_ns;
+ DIAG_POP_NEEDS_COMMENT;
} else {
/* Use datagrams. */
n = send_dg(statp, buf, buflen, buf2, buflen2,
@@ -523,6 +534,18 @@ __res_context_send (struct resolv_context *ctx,
resplen = n;
+ /* Mask the AD bit in both responses unless it is
+ marked trusted. */
+ if (resplen > HFIXEDSZ)
+ {
+ if (ansp != NULL)
+ mask_ad_bit (ctx, *ansp);
+ else
+ mask_ad_bit (ctx, ans);
+ }
+ if (resplen2 != NULL && *resplen2 > HFIXEDSZ)
+ mask_ad_bit (ctx, *ansp2);
+
/*
* If we have temporarily opened a virtual circuit,
* or if we haven't been asked to keep a socket open,
@@ -943,6 +966,18 @@ reopen (res_state statp, int *terrno, int ns)
return (-1);
}
+ /* Enable full ICMP error reporting for this
+ socket. */
+ if (__res_enable_icmp (nsap->sa_family,
+ EXT (statp).nssocks[ns]) < 0)
+ {
+ int saved_errno = errno;
+ __res_iclose (statp, false);
+ __set_errno (saved_errno);
+ *terrno = saved_errno;
+ return -1;
+ }
+
/*
* On a 4.3BSD+ machine (client and server,
* actually), sending to a nameserver datagram
@@ -1312,31 +1347,25 @@ send_dg(res_state statp,
*/
goto wait;
}
- if (!(statp->options & RES_INSECURE1) &&
- !res_ourserver_p(statp, &from)) {
- /*
- * response from wrong server? ignore it.
- * XXX - potential security hazard could
- * be detected here.
- */
- goto wait;
- }
- if (!(statp->options & RES_INSECURE2)
- && (recvresp1 || !res_queriesmatch(buf, buf + buflen,
+
+ /* Paranoia check. Due to the connected UDP socket,
+ the kernel has already filtered invalid addresses
+ for us. */
+ if (!res_ourserver_p(statp, &from))
+ goto wait;
+
+ /* Check for the correct header layout and a matching
+ question. */
+ if ((recvresp1 || !res_queriesmatch(buf, buf + buflen,
*thisansp,
*thisansp
+ *thisanssizp))
&& (recvresp2 || !res_queriesmatch(buf2, buf2 + buflen2,
*thisansp,
*thisansp
- + *thisanssizp))) {
- /*
- * response contains wrong query? ignore it.
- * XXX - potential security hazard could
- * be detected here.
- */
- goto wait;
- }
+ + *thisanssizp)))
+ goto wait;
+
if (anhp->rcode == SERVFAIL ||
anhp->rcode == NOTIMP ||
anhp->rcode == REFUSED) {
diff --git a/resolv/res_use_inet6.h b/resolv/res_use_inet6.h
deleted file mode 100644
index dd5a31c54c..0000000000
--- a/resolv/res_use_inet6.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Support functions for handling RES_USE_INET6 in getaddrinfo/nscd.
- Copyright (C) 2017-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _RES_USE_INET6_H
-#define _RES_USE_INET6_H
-
-#include <resolv/resolv_context.h>
-#include <resolv/resolv-internal.h>
-
-/* Ensure that RES_USE_INET6 is disabled in *CTX. Return true if
- __resolv_context_enable_inet6 below should enable RES_USE_INET6
- again. */
-static inline bool
-__resolv_context_disable_inet6 (struct resolv_context *ctx)
-{
- if (ctx != NULL && ctx->resp->options & DEPRECATED_RES_USE_INET6)
- {
- ctx->resp->options &= ~DEPRECATED_RES_USE_INET6;
- return true;
- }
- else
- return false;
-}
-
-/* If ENABLE, re-enable RES_USE_INET6 in *CTX. To be paired with
- __resolv_context_disable_inet6. */
-static inline void
-__resolv_context_enable_inet6 (struct resolv_context *ctx, bool enable)
-{
- if (ctx != NULL && enable)
- ctx->resp->options |= DEPRECATED_RES_USE_INET6;
-}
-
-#endif
diff --git a/resolv/resolv-internal.h b/resolv/resolv-internal.h
index b8e447c726..e9fb8b9c55 100644
--- a/resolv/resolv-internal.h
+++ b/resolv/resolv-internal.h
@@ -1,5 +1,5 @@
/* libresolv interfaces for internal use across glibc.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _RESOLV_INTERNAL_H
#define _RESOLV_INTERNAL_H 1
@@ -27,15 +27,12 @@
#define RES_F_CONN 0x00000002 /* Socket is connected. */
#define RES_F_EDNS0ERR 0x00000004 /* EDNS0 caused errors. */
-
-/* Internal version of RES_USE_INET6 which does not trigger a
- deprecation warning. */
-#define DEPRECATED_RES_USE_INET6 0x00002000
-
+/* Legacy function. This needs to be removed once all NSS modules
+ have been adjusted. */
static inline bool
res_use_inet6 (void)
{
- return _res.options & DEPRECATED_RES_USE_INET6;
+ return false;
}
enum
@@ -100,4 +97,10 @@ libc_hidden_proto (__inet_pton_length)
/* Called as part of the thread shutdown sequence. */
void __res_thread_freeres (void) attribute_hidden;
+/* The Linux kernel does not enable all ICMP messages on a UDP socket
+ by default. A call this function enables full error reporting for
+ the socket FD. FAMILY must be AF_INET or AF_INET6. Returns 0 on
+ success, -1 on failure. */
+int __res_enable_icmp (int family, int fd) attribute_hidden;
+
#endif /* _RESOLV_INTERNAL_H */
diff --git a/resolv/resolv.h b/resolv/resolv.h
index 80a523e5e4..a039a9e636 100644
--- a/resolv/resolv.h
+++ b/resolv/resolv.h
@@ -115,11 +115,7 @@ struct res_sym {
#define RES_DEFNAMES 0x00000080 /* use default domain name */
#define RES_STAYOPEN 0x00000100 /* Keep TCP socket open */
#define RES_DNSRCH 0x00000200 /* search up local domain tree */
-#define RES_INSECURE1 0x00000400 /* type 1 security disabled */
-#define RES_INSECURE2 0x00000800 /* type 2 security disabled */
#define RES_NOALIASES 0x00001000 /* shuts off HOSTALIASES feature */
-#define RES_USE_INET6 \
- __glibc_macro_warning ("RES_USE_INET6 is deprecated") 0x00002000
#define RES_ROTATE 0x00004000 /* rotate ns list after each query */
#define RES_NOCHECKNAME \
__glibc_macro_warning ("RES_NOCHECKNAME is deprecated") 0x00008000
@@ -135,6 +131,7 @@ struct res_sym {
#define RES_NOTLDQUERY 0x01000000 /* Do not look up unqualified name
as a TLD. */
#define RES_NORELOAD 0x02000000 /* No automatic configuration reload. */
+#define RES_TRUSTAD 0x04000000 /* Request AD bit, keep it in responses. */
#define RES_DEFAULT (RES_RECURSE|RES_DEFNAMES|RES_DNSRCH)
diff --git a/resolv/resolv_conf.c b/resolv/resolv_conf.c
index 2f0ffbc524..be9ae7a167 100644
--- a/resolv/resolv_conf.c
+++ b/resolv/resolv_conf.c
@@ -1,5 +1,5 @@
/* Extended resolver state separate from struct __res_state.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <resolv_conf.h>
diff --git a/resolv/resolv_conf.h b/resolv/resolv_conf.h
index e903a206da..e16703598e 100644
--- a/resolv/resolv_conf.h
+++ b/resolv/resolv_conf.h
@@ -1,5 +1,5 @@
/* Extended resolver state separate from struct __res_state.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef RESOLV_STATE_H
#define RESOLV_STATE_H
diff --git a/resolv/resolv_context.c b/resolv/resolv_context.c
index 4bd79111f0..21922e246c 100644
--- a/resolv/resolv_context.c
+++ b/resolv/resolv_context.c
@@ -1,5 +1,5 @@
/* Temporary, thread-local resolver state.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <resolv_context.h>
#include <resolv_conf.h>
diff --git a/resolv/resolv_context.h b/resolv/resolv_context.h
index c1dff76cb9..787cb1a060 100644
--- a/resolv/resolv_context.h
+++ b/resolv/resolv_context.h
@@ -1,5 +1,5 @@
/* Temporary, thread-local resolver state.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* struct resolv_context objects are allocated on the heap,
initialized by __resolv_context_get (and its variants), and
@@ -26,9 +26,7 @@
allocating a new context. This prevents unexpected reloading of
the resolver configuration. Care is taken to keep the context in
sync with the thread-local _res object. (This does not happen with
- __resolv_context_get_override, and __resolv_context_get_no_inet6 may
- also interpose another context object if RES_USE_INET6 needs to be
- disabled.)
+ __resolv_context_get_override.)
In contrast to struct __res_state, struct resolv_context is not
affected by ABI compatibility concerns.
@@ -62,8 +60,8 @@ struct resolv_context
size_t __refcount; /* Count of reusages by the get functions. */
bool __from_res; /* True if created from _res. */
- /* If RES_USE_INET6 was disabled at this level, this field points to
- the previous context. */
+ /* Single-linked list of resolver contexts. Used for memory
+ deallocation on thread cancellation. */
struct resolv_context *__next;
};
@@ -75,8 +73,7 @@ struct resolv_context *__resolv_context_get (void)
libc_hidden_proto (__resolv_context_get)
/* Deallocate the temporary resolver context. Converse of
- __resolv_context_get. Restore the RES_USE_INET6 flag if necessary.
- Do nothing if CTX is NULL. */
+ __resolv_context_get. Do nothing if CTX is NULL. */
void __resolv_context_put (struct resolv_context *ctx);
libc_hidden_proto (__resolv_context_put)
diff --git a/resolv/tst-aton.c b/resolv/tst-aton.c
index 08110a007a..1f24c03d9f 100644
--- a/resolv/tst-aton.c
+++ b/resolv/tst-aton.c
@@ -1,11 +1,29 @@
+/* Test legacy IPv4 text-to-address function inet_aton.
+ Copyright (C) 1998-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <array_length.h>
#include <stdio.h>
#include <stdint.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
-
-static struct tests
+static const struct tests
{
const char *input;
int valid;
@@ -16,6 +34,7 @@ static struct tests
{ "-1", 0, 0 },
{ "256", 1, 0x00000100 },
{ "256.", 0, 0 },
+ { "255a", 0, 0 },
{ "256a", 0, 0 },
{ "0x100", 1, 0x00000100 },
{ "0200.0x123456", 1, 0x80123456 },
@@ -40,7 +59,12 @@ static struct tests
{ "1.2.256.4", 0, 0 },
{ "1.2.3.0x100", 0, 0 },
{ "323543357756889", 0, 0 },
- { "10.1.2.3.4", 0, 0},
+ { "10.1.2.3.4", 0, 0 },
+ { "192.0.2.1", 1, 0xc0000201 },
+ { "192.0.2.2\nX", 1, 0xc0000202 },
+ { "192.0.2.3 Y", 1, 0xc0000203 },
+ { "192.0.2.3Z", 0, 0 },
+ { "192.000.002.010", 1, 0xc0000208 },
};
@@ -50,7 +74,7 @@ do_test (void)
int result = 0;
size_t cnt;
- for (cnt = 0; cnt < sizeof (tests) / sizeof (tests[0]); ++cnt)
+ for (cnt = 0; cnt < array_length (tests); ++cnt)
{
struct in_addr addr;
@@ -73,5 +97,4 @@ do_test (void)
return result;
}
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/test-driver.c>
diff --git a/resolv/tst-bug18665-tcp.c b/resolv/tst-bug18665-tcp.c
index 52849fabb9..2e29d15d69 100644
--- a/resolv/tst-bug18665-tcp.c
+++ b/resolv/tst-bug18665-tcp.c
@@ -1,5 +1,5 @@
/* Test __libc_res_nsend buffer mismanagement, basic TCP coverage.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <netdb.h>
diff --git a/resolv/tst-bug18665.c b/resolv/tst-bug18665.c
index dc911f0468..795f5e8254 100644
--- a/resolv/tst-bug18665.c
+++ b/resolv/tst-bug18665.c
@@ -1,5 +1,5 @@
/* Test for __libc_res_nsend buffer mismanagent (bug 18665), UDP case.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <netdb.h>
diff --git a/resolv/tst-inet_aton_exact.c b/resolv/tst-inet_aton_exact.c
new file mode 100644
index 0000000000..c69f839f7c
--- /dev/null
+++ b/resolv/tst-inet_aton_exact.c
@@ -0,0 +1,47 @@
+/* Test internal legacy IPv4 text-to-address function __inet_aton_exact.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <arpa/inet.h>
+#include <support/check.h>
+
+static int
+do_test (void)
+{
+ struct in_addr addr = { };
+
+ TEST_COMPARE (__inet_aton_exact ("192.0.2.1", &addr), 1);
+ TEST_COMPARE (ntohl (addr.s_addr), 0xC0000201);
+
+ TEST_COMPARE (__inet_aton_exact ("192.000.002.010", &addr), 1);
+ TEST_COMPARE (ntohl (addr.s_addr), 0xC0000208);
+ TEST_COMPARE (__inet_aton_exact ("0xC0000234", &addr), 1);
+ TEST_COMPARE (ntohl (addr.s_addr), 0xC0000234);
+
+ /* Trailing content is not accepted. */
+ TEST_COMPARE (__inet_aton_exact ("192.0.2.2X", &addr), 0);
+ TEST_COMPARE (__inet_aton_exact ("192.0.2.3 Y", &addr), 0);
+ TEST_COMPARE (__inet_aton_exact ("192.0.2.4\nZ", &addr), 0);
+ TEST_COMPARE (__inet_aton_exact ("192.0.2.5\tT", &addr), 0);
+ TEST_COMPARE (__inet_aton_exact ("192.0.2.6 Y", &addr), 0);
+ TEST_COMPARE (__inet_aton_exact ("192.0.2.7\n", &addr), 0);
+ TEST_COMPARE (__inet_aton_exact ("192.0.2.8\t", &addr), 0);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/resolv/tst-inet_pton.c b/resolv/tst-inet_pton.c
index af12f38fa9..f1bfe744c3 100644
--- a/resolv/tst-inet_pton.c
+++ b/resolv/tst-inet_pton.c
@@ -1,5 +1,5 @@
/* Test inet_pton functions.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <arpa/inet.h>
#include <resolv/resolv-internal.h>
diff --git a/resolv/tst-leaks.c b/resolv/tst-leaks.c
index 5715f1ba34..92ef5d9862 100644
--- a/resolv/tst-leaks.c
+++ b/resolv/tst-leaks.c
@@ -1,5 +1,5 @@
/* Tests for res_query in libresolv
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <netinet/in.h>
#include <arpa/nameser.h>
diff --git a/resolv/tst-leaks2.c b/resolv/tst-leaks2.c
index 6a1fd6aa9c..8a235058b3 100644
--- a/resolv/tst-leaks2.c
+++ b/resolv/tst-leaks2.c
@@ -1,5 +1,5 @@
/* Tests for res_init in libresolv
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#undef gethostbyname
diff --git a/resolv/tst-ns_name.c b/resolv/tst-ns_name.c
index 970c3d6d15..08952aefa3 100644
--- a/resolv/tst-ns_name.c
+++ b/resolv/tst-ns_name.c
@@ -1,5 +1,5 @@
/* Test ns_name-related functions.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This test program processes the tst-ns_name.data file. */
diff --git a/resolv/tst-ns_name.data b/resolv/tst-ns_name.data
index 890a89a976..486ed3b898 100644
--- a/resolv/tst-ns_name.data
+++ b/resolv/tst-ns_name.data
@@ -1,5 +1,5 @@
# Test input for ns_name_unpack and ns_name_ntop.
-# Copyright (C) 2017-2018 Free Software Foundation, Inc.
+# Copyright (C) 2017-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
@@ -14,7 +14,7 @@
#
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
# This file contains test input and expected output for the
# ns_name_unpack and ns_name_ntop functions. Empty lines and comments
diff --git a/resolv/tst-ns_name_compress.c b/resolv/tst-ns_name_compress.c
index c1262e0ec1..93ecd38440 100644
--- a/resolv/tst-ns_name_compress.c
+++ b/resolv/tst-ns_name_compress.c
@@ -1,5 +1,5 @@
/* Test ns_name_compress corner cases.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <resolv.h>
#include <stdlib.h>
diff --git a/resolv/tst-ns_name_pton.c b/resolv/tst-ns_name_pton.c
index 6640ed3021..b2fd965dfe 100644
--- a/resolv/tst-ns_name_pton.c
+++ b/resolv/tst-ns_name_pton.c
@@ -1,5 +1,5 @@
/* Tests for ns_name_pton.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <arpa/nameser.h>
#include <array_length.h>
diff --git a/resolv/tst-p_secstodate.c b/resolv/tst-p_secstodate.c
index 8d5faa2fa1..2733d96ad3 100644
--- a/resolv/tst-p_secstodate.c
+++ b/resolv/tst-p_secstodate.c
@@ -1,5 +1,5 @@
/* Test __p_secstodate compat symbol.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <array_length.h>
#include <limits.h>
diff --git a/resolv/tst-res_hconf_reorder.c b/resolv/tst-res_hconf_reorder.c
index a16a6b2112..52c8b6d88a 100644
--- a/resolv/tst-res_hconf_reorder.c
+++ b/resolv/tst-res_hconf_reorder.c
@@ -1,6 +1,6 @@
/* BZ #17977 _res_hconf_reorder_addrs test.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdio.h>
diff --git a/resolv/tst-res_hnok.c b/resolv/tst-res_hnok.c
index a000cfd895..1c6f9e2229 100644
--- a/resolv/tst-res_hnok.c
+++ b/resolv/tst-res_hnok.c
@@ -1,5 +1,5 @@
/* Tests for res_hnok and related functions.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <array_length.h>
#include <resolv.h>
diff --git a/resolv/tst-res_use_inet6.c b/resolv/tst-res_use_inet6.c
deleted file mode 100644
index 0170335741..0000000000
--- a/resolv/tst-res_use_inet6.c
+++ /dev/null
@@ -1,509 +0,0 @@
-/* Basic functionality tests for inet6 option processing.
- Copyright (C) 2016-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <ctype.h>
-#include <netdb.h>
-#include <resolv.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <support/check.h>
-#include <support/check_nss.h>
-#include <support/resolv_test.h>
-#include <support/support.h>
-#include <support/xthread.h>
-
-/* Handle IPv4 reverse lookup responses. Product a PTR record
- A-B-C-D.v4.example. */
-static void
-response_ptr_v4 (const struct resolv_response_context *ctx,
- struct resolv_response_builder *b,
- const char *qname, uint16_t qclass, uint16_t qtype)
-{
- int bytes[4];
- int offset = -1;
- TEST_VERIFY (sscanf (qname, "%d.%d.%d.%d.in-addr.arpa%n",
- bytes + 0, bytes + 1, bytes + 2, bytes + 3,
- &offset) == 4);
- TEST_VERIFY (offset == strlen (qname));
- resolv_response_init (b, (struct resolv_response_flags) {});
- resolv_response_add_question (b, qname, qclass, qtype);
- resolv_response_section (b, ns_s_an);
- resolv_response_open_record (b, qname, qclass, T_PTR, 0);
- char *name = xasprintf ("%d-%d-%d-%d.v4.example",
- bytes[3], bytes[2], bytes[1], bytes[0]);
- resolv_response_add_name (b, name);
- free (name);
- resolv_response_close_record (b);
-}
-
-/* Handle IPv6 reverse lookup responses. Produce a PTR record
- <32 hex digits>.v6.example. */
-static void
-response_ptr_v6 (const struct resolv_response_context *ctx,
- struct resolv_response_builder *b,
- const char *qname, uint16_t qclass, uint16_t qtype)
-{
-
- TEST_VERIFY_EXIT (strlen (qname) > 64);
-
- char bytes[33];
- for (int i = 0; i < 64; ++i)
- if ((i % 2) == 0)
- {
- TEST_VERIFY (isxdigit ((unsigned char) qname[i]));
- bytes[31 - i / 2] = qname[i];
- }
- else
- TEST_VERIFY_EXIT (qname[i] == '.');
- bytes[32] = '\0';
-
- resolv_response_init (b, (struct resolv_response_flags) {});
- resolv_response_add_question (b, qname, qclass, qtype);
- resolv_response_section (b, ns_s_an);
- resolv_response_open_record (b, qname, qclass, T_PTR, 0);
- char *name = xasprintf ("%s.v6.example", bytes);
- resolv_response_add_name (b, name);
- free (name);
- resolv_response_close_record (b);
-}
-
-/* Produce a response based on QNAME: Certain characters in the first
- label of QNAME trigger the inclusion of resource records:
-
- 'a' A record (IPv4 address)
- 'q' AAAA record (quad A record, IPv6 address)
- 'p' PTR record
- 'm' record type must match QTYPE (no additional records)
- '6' stop flag processing if QTYPE == AAAA
-
- For 'a' and 'q', QTYPE is ignored for record type selection if 'm'
- is not specified.
-
- in-addr.arpa and ip6.arpa queries are handled separately in
- response_ptr_v4 and response_ptr_v6. */
-static void
-response (const struct resolv_response_context *ctx,
- struct resolv_response_builder *b,
- const char *qname, uint16_t qclass, uint16_t qtype)
-{
- if (strstr (qname, ".in-addr.arpa") != NULL)
- return response_ptr_v4 (ctx, b, qname, qclass, qtype);
- else if (strstr (qname, ".ip6.arpa") != NULL)
- return response_ptr_v6 (ctx, b, qname, qclass, qtype);
-
- bool include_a = false;
- bool include_aaaa = false;
- bool include_match = false;
- bool include_ptr = false;
- for (const char *p = qname; *p != '.' && *p != '\0'; ++p)
- {
- if (*p == 'a')
- include_a = true;
- else if (*p == 'q')
- include_aaaa = true;
- else if (*p == 'm')
- include_match = true;
- else if (*p == 'p')
- include_ptr = true;
- else if (*p == '6' && qtype == T_AAAA)
- break;
- }
- if (include_match)
- {
- if (qtype == T_A)
- include_aaaa = false;
- else if (qtype == T_AAAA)
- include_a = false;
- }
-
- resolv_response_init (b, (struct resolv_response_flags) {});
- resolv_response_add_question (b, qname, qclass, qtype);
- resolv_response_section (b, ns_s_an);
- if (include_a)
- {
- char ipv4[4] = {192, 0, 2, 17};
- resolv_response_open_record (b, qname, qclass, T_A, 0);
- resolv_response_add_data (b, &ipv4, sizeof (ipv4));
- resolv_response_close_record (b);
- }
- if (include_aaaa)
- {
- char ipv6[16]
- = {0x20, 0x01, 0xd, 0xb8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1};
- resolv_response_open_record (b, qname, qclass, T_AAAA, 0);
- resolv_response_add_data (b, &ipv6, sizeof (ipv6));
- resolv_response_close_record (b);
- }
- if (include_ptr)
- {
- resolv_response_open_record (b, qname, qclass, T_PTR, 0);
- resolv_response_add_name (b, "ptr-target.example");
- resolv_response_close_record (b);
- }
-}
-
-/* Test that getaddrinfo is not influenced by RES_USE_INET6. */
-static void
-test_gai (void)
-{
- {
- struct addrinfo hints =
- {
- .ai_family = AF_UNSPEC,
- .ai_socktype = SOCK_STREAM,
- .ai_protocol = IPPROTO_TCP,
- };
- struct addrinfo *ai;
- int ret = getaddrinfo ("qam.example", "80", &hints, &ai);
- check_addrinfo ("getaddrinfo AF_UNSPEC qam.example", ai, ret,
- "address: STREAM/TCP 192.0.2.17 80\n"
- "address: STREAM/TCP 2001:db8::1 80\n");
- if (ret == 0)
- freeaddrinfo (ai);
- ret = getaddrinfo ("am.example", "80", &hints, &ai);
- check_addrinfo ("getaddrinfo AF_UNSPEC am.example", ai, ret,
- "address: STREAM/TCP 192.0.2.17 80\n");
- if (ret == 0)
- freeaddrinfo (ai);
- ret = getaddrinfo ("qa.example", "80", &hints, &ai);
- /* Combined A/AAAA responses currently result in address
- duplication. */
- check_addrinfo ("getaddrinfo AF_UNSPEC qa.example", ai, ret,
- "address: STREAM/TCP 192.0.2.17 80\n"
- "address: STREAM/TCP 192.0.2.17 80\n"
- "address: STREAM/TCP 2001:db8::1 80\n"
- "address: STREAM/TCP 2001:db8::1 80\n");
- if (ret == 0)
- freeaddrinfo (ai);
- }
- {
- struct addrinfo hints =
- {
- .ai_family = AF_INET,
- .ai_socktype = SOCK_STREAM,
- .ai_protocol = IPPROTO_TCP,
- };
- struct addrinfo *ai;
- int ret = getaddrinfo ("qam.example", "80", &hints, &ai);
- check_addrinfo ("getaddrinfo AF_INET qam.example", ai, ret,
- "address: STREAM/TCP 192.0.2.17 80\n");
- if (ret == 0)
- freeaddrinfo (ai);
- ret = getaddrinfo ("am.example", "80", &hints, &ai);
- check_addrinfo ("getaddrinfo AF_INET am.example", ai, ret,
- "address: STREAM/TCP 192.0.2.17 80\n");
- if (ret == 0)
- freeaddrinfo (ai);
- ret = getaddrinfo ("qa.example", "80", &hints, &ai);
- check_addrinfo ("getaddrinfo AF_INET qa.example", ai, ret,
- "address: STREAM/TCP 192.0.2.17 80\n");
- if (ret == 0)
- freeaddrinfo (ai);
- }
- {
- struct addrinfo hints =
- {
- .ai_family = AF_INET6,
- .ai_socktype = SOCK_STREAM,
- .ai_protocol = IPPROTO_TCP,
- };
- struct addrinfo *ai;
- int ret = getaddrinfo ("qa.example", "80", &hints, &ai);
- check_addrinfo ("getaddrinfo (AF_INET6)", ai, ret,
- "address: STREAM/TCP 2001:db8::1 80\n");
- if (ret == 0)
- freeaddrinfo (ai);
- ret = getaddrinfo ("am.example", "80", &hints, &ai);
- check_addrinfo ("getaddrinfo AF_INET6 am.example", ai, ret,
- "error: No address associated with hostname\n");
- if (ret == 0)
- freeaddrinfo (ai);
- ret = getaddrinfo ("qam.example", "80", &hints, &ai);
- check_addrinfo ("getaddrinfo AF_INET6 qam.example", ai, ret,
- "address: STREAM/TCP 2001:db8::1 80\n");
- if (ret == 0)
- freeaddrinfo (ai);
- }
-}
-
-/* Test gethostbyaddr and getnameinfo. The results are independent of
- RES_USE_INET6. */
-static void
-test_reverse (void)
-{
- {
- char ipv4[4] = { 192, 0, 2, 17 };
- check_hostent ("gethostbyaddr AF_INET",
- gethostbyaddr (ipv4, sizeof (ipv4), AF_INET),
- "name: 192-0-2-17.v4.example\n"
- "address: 192.0.2.17\n");
- }
- {
- char ipv6[16]
- = {0x20, 0x01, 0xd, 0xb8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1};
- check_hostent ("gethostbyaddr AF_INET",
- gethostbyaddr (ipv6, sizeof (ipv6), AF_INET6),
- "name: 20010db8000000000000000000000001.v6.example\n"
- "address: 2001:db8::1\n");
- }
-
- {
- struct sockaddr_in addr =
- {
- .sin_family = AF_INET,
- .sin_addr = { .s_addr = htonl (0xc0000211) },
- .sin_port = htons (80)
- };
- char host[NI_MAXHOST];
- char service[NI_MAXSERV];
- int ret = getnameinfo ((struct sockaddr *) &addr, sizeof (addr),
- host, sizeof (host), service, sizeof (service),
- NI_NUMERICSERV);
- TEST_VERIFY (ret == 0);
- TEST_VERIFY (strcmp (host, "192-0-2-17.v4.example") == 0);
- TEST_VERIFY (strcmp (service, "80") == 0);
- }
- {
- char ipv6[16]
- = {0x20, 0x01, 0xd, 0xb8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1};
- struct sockaddr_in6 addr =
- {
- .sin6_family = AF_INET6,
- .sin6_port = htons (80),
- };
- TEST_VERIFY (sizeof (ipv6) == sizeof (addr.sin6_addr));
- memcpy (&addr.sin6_addr, ipv6, sizeof (addr.sin6_addr));
- char host[NI_MAXHOST];
- char service[NI_MAXSERV];
- int ret = getnameinfo ((struct sockaddr *) &addr, sizeof (addr),
- host, sizeof (host), service, sizeof (service),
- NI_NUMERICSERV);
- TEST_VERIFY (ret == 0);
- TEST_VERIFY
- (strcmp (host, "20010db8000000000000000000000001.v6.example") == 0);
- TEST_VERIFY (strcmp (service, "80") == 0);
- }
-}
-
-/* Test that gethostbyname2 is mostly not influenced by
- RES_USE_INET6. */
-static void
-test_get2_any (void)
-{
- check_hostent ("gethostbyname2 AF_INET am.example",
- gethostbyname2 ("am.example", AF_INET),
- "name: am.example\n"
- "address: 192.0.2.17\n");
- check_hostent ("gethostbyname2 AF_INET a.example",
- gethostbyname2 ("a.example", AF_INET),
- "name: a.example\n"
- "address: 192.0.2.17\n");
- check_hostent ("gethostbyname2 AF_INET qm.example",
- gethostbyname2 ("qm.example", AF_INET),
- "error: NO_ADDRESS\n");
- check_hostent ("gethostbyname2 AF_INET q.example",
- gethostbyname2 ("q.example", AF_INET),
- "error: NO_RECOVERY\n");
- check_hostent ("gethostbyname2 AF_INET qam.example",
- gethostbyname2 ("qam.example", AF_INET),
- "name: qam.example\n"
- "address: 192.0.2.17\n");
- check_hostent ("gethostbyname2 AF_INET qa.example",
- gethostbyname2 ("qa.example", AF_INET),
- "name: qa.example\n"
- "address: 192.0.2.17\n");
-
- check_hostent ("gethostbyname2 AF_INET6 qm.example",
- gethostbyname2 ("qm.example", AF_INET6),
- "name: qm.example\n"
- "address: 2001:db8::1\n");
- check_hostent ("gethostbyname2 AF_INET6 q.example",
- gethostbyname2 ("q.example", AF_INET6),
- "name: q.example\n"
- "address: 2001:db8::1\n");
- check_hostent ("gethostbyname2 AF_INET6 qam.example",
- gethostbyname2 ("qam.example", AF_INET6),
- "name: qam.example\n"
- "address: 2001:db8::1\n");
- check_hostent ("gethostbyname2 AF_INET6 qa.example",
- gethostbyname2 ("qa.example", AF_INET6),
- "name: qa.example\n"
- "address: 2001:db8::1\n");
- /* Additional AF_INET6 tests depend on RES_USE_INET6; see below. */
-
- test_reverse ();
-}
-
-/* gethostbyname2 tests with RES_USE_INET6 disabled. */
-static void
-test_get2_no_inet6 (void)
-{
- test_get2_any ();
-
- check_hostent ("gethostbyname2 AF_INET6 am.example",
- gethostbyname2 ("am.example", AF_INET6),
- "error: NO_ADDRESS\n");
- check_hostent ("gethostbyname2 AF_INET6 a.example",
- gethostbyname2 ("a.example", AF_INET6),
- "error: NO_RECOVERY\n");
-}
-
-/* gethostbyname2 tests with RES_USE_INET6 enabled. */
-static void
-test_get2_inet6 (void)
-{
- test_get2_any ();
-
- check_hostent ("gethostbyname2 AF_INET6 am.example",
- gethostbyname2 ("am.example", AF_INET6),
- "name: am.example\n"
- "address: ::ffff:192.0.2.17\n");
- check_hostent ("gethostbyname2 AF_INET6 a.example",
- gethostbyname2 ("a.example", AF_INET6),
- "error: NO_RECOVERY\n");
-}
-
-/* Collection of tests which assume no RES_USE_INET6 flag. */
-static void
-test_no_inet6 (void)
-{
- check_hostent ("gethostbyname (\"a.example\")",
- gethostbyname ("a.example"),
- "name: a.example\n"
- "address: 192.0.2.17\n");
- check_hostent ("gethostbyname (\"qa.example\")",
- gethostbyname ("qa.example"),
- "name: qa.example\n"
- "address: 192.0.2.17\n");
- check_hostent ("gethostbyname (\"am.example\")",
- gethostbyname ("am.example"),
- "name: am.example\n"
- "address: 192.0.2.17\n");
- check_hostent ("gethostbyname (\"amp.example\")",
- gethostbyname ("amp.example"),
- "name: amp.example\n"
- "address: 192.0.2.17\n");
- check_hostent ("gethostbyname (\"qam.example\")",
- gethostbyname ("qam.example"),
- "name: qam.example\n"
- "address: 192.0.2.17\n");
- check_hostent ("gethostbyname (\"q.example\")",
- gethostbyname ("q.example"),
- "error: NO_RECOVERY\n");
- check_hostent ("gethostbyname (\"qm.example\")",
- gethostbyname ("qm.example"),
- "error: NO_ADDRESS\n");
- test_get2_no_inet6 ();
- test_get2_no_inet6 ();
- test_gai ();
- test_get2_no_inet6 ();
- test_get2_no_inet6 ();
-}
-
-static void *
-threadfunc (void *ignored)
-{
- struct resolv_test *obj = resolv_test_start
- ((struct resolv_redirect_config)
- {
- .response_callback = response
- });
-
- TEST_VERIFY ((_res.options & RES_USE_INET6) == 0);
- test_no_inet6 ();
-
- _res.options |= RES_USE_INET6;
- check_hostent ("gethostbyname (\"a.inet6.example\")",
- gethostbyname ("a.inet6.example"),
- "error: NO_RECOVERY\n");
- check_hostent ("gethostbyname (\"am.inet6.example\")",
- gethostbyname ("am.inet6.example"),
- "name: am.inet6.example\n"
- "address: ::ffff:192.0.2.17\n");
- check_hostent ("gethostbyname (\"qa.inet6.example\")",
- gethostbyname ("qa.inet6.example"),
- "name: qa.inet6.example\n"
- "address: 2001:db8::1\n");
- check_hostent ("gethostbyname (\"qam.inet6.example\")",
- gethostbyname ("qam.inet6.example"),
- "name: qam.inet6.example\n"
- "address: 2001:db8::1\n");
- check_hostent ("gethostbyname (\"q.inet6.example\")",
- gethostbyname ("q.inet6.example"),
- "name: q.inet6.example\n"
- "address: 2001:db8::1\n");
- check_hostent ("gethostbyname (\"qm.inet6.example\")",
- gethostbyname ("qm.inet6.example"),
- "name: qm.inet6.example\n"
- "address: 2001:db8::1\n");
- check_hostent ("gethostbyname (\"amp.inet6.example\")",
- gethostbyname ("amp.inet6.example"),
- "error: NO_RECOVERY\n");
- check_hostent ("gethostbyname (\"qmp.inet6.example\")",
- gethostbyname ("qmp.inet6.example"),
- "name: qmp.inet6.example\n"
- "address: 2001:db8::1\n");
- check_hostent ("gethostbyname (\"ap.inet6.example\")",
- gethostbyname ("ap.inet6.example"),
- "error: NO_RECOVERY\n");
- check_hostent ("gethostbyname (\"6ap.inet6.example\")",
- gethostbyname ("6ap.inet6.example"),
- "name: 6ap.inet6.example\n"
- "address: ::ffff:192.0.2.17\n");
- check_hostent ("gethostbyname (\"am6p.inet6.example\")",
- gethostbyname ("am6p.inet6.example"),
- "name: am6p.inet6.example\n"
- "address: ::ffff:192.0.2.17\n");
- check_hostent ("gethostbyname (\"qp.inet6.example\")",
- gethostbyname ("qp.inet6.example"),
- "name: qp.inet6.example\n"
- "address: 2001:db8::1\n");
- test_get2_inet6 ();
- test_get2_inet6 ();
- test_gai ();
- test_get2_inet6 ();
- test_get2_inet6 ();
-
- TEST_VERIFY (_res.options & RES_USE_INET6);
- _res.options &= ~RES_USE_INET6;
- test_no_inet6 ();
-
- resolv_test_end (obj);
-
- return NULL;
-}
-
-static int
-do_test (void)
-{
- resolv_test_init ();
-
- /* Attempt to run on a non-main thread first. */
- {
- pthread_t thr = xpthread_create (NULL, threadfunc, NULL);
- xpthread_join (thr);
- }
-
- /* Try the main thread next. */
- threadfunc (NULL);
-
- return 0;
-}
-
-#include <support/test-driver.c>
diff --git a/resolv/tst-resolv-ai_idn-common.c b/resolv/tst-resolv-ai_idn-common.c
index e7c4030e1c..4a7eab7e70 100644
--- a/resolv/tst-resolv-ai_idn-common.c
+++ b/resolv/tst-resolv-ai_idn-common.c
@@ -1,5 +1,5 @@
/* Common code for AI_IDN/NI_IDN tests.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Before including this file, TEST_USE_UTF8 must be defined to 1 or
0, depending on whether a UTF-8 locale is used or a Latin-1
@@ -241,6 +241,7 @@ response (const struct resolv_response_context *ctx,
qname[0] };
resolv_response_add_data (b, &addr, sizeof (addr));
}
+ break;
default:
FAIL_EXIT1 ("invalid qtype: %d", qtype);
}
diff --git a/resolv/tst-resolv-ai_idn-latin1.c b/resolv/tst-resolv-ai_idn-latin1.c
index fb60f3261e..7837ecfcc3 100644
--- a/resolv/tst-resolv-ai_idn-latin1.c
+++ b/resolv/tst-resolv-ai_idn-latin1.c
@@ -1,5 +1,5 @@
/* Test getaddrinfo and getnameinfo with AI_IDN, NI_IDN (Latin-1).
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_USE_UTF8 0
@@ -29,6 +29,11 @@ do_test (void)
void *handle = dlopen (LIBIDN2_SONAME, RTLD_LAZY);
if (handle == NULL)
FAIL_UNSUPPORTED ("libidn2 not installed");
+ void *check_ver_sym = xdlsym (handle, "idn2_check_version");
+ const char *check_res
+ = ((const char *(*) (const char *)) check_ver_sym) ("2.0.5");
+ if (check_res == NULL)
+ FAIL_UNSUPPORTED ("libidn2 too old");
if (setlocale (LC_CTYPE, "en_US.ISO-8859-1") == NULL)
FAIL_EXIT1 ("setlocale: %m");
diff --git a/resolv/tst-resolv-ai_idn-nolibidn2.c b/resolv/tst-resolv-ai_idn-nolibidn2.c
index 7203c23f3c..79d6403264 100644
--- a/resolv/tst-resolv-ai_idn-nolibidn2.c
+++ b/resolv/tst-resolv-ai_idn-nolibidn2.c
@@ -1,5 +1,5 @@
/* Test getaddrinfo and getnameinfo without usable libidn2.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_USE_UTF8 1
#include "tst-resolv-ai_idn-common.c"
diff --git a/resolv/tst-resolv-ai_idn.c b/resolv/tst-resolv-ai_idn.c
index df8203b14a..1af846bb77 100644
--- a/resolv/tst-resolv-ai_idn.c
+++ b/resolv/tst-resolv-ai_idn.c
@@ -1,5 +1,5 @@
/* Test getaddrinfo and getnameinfo with AI_IDN, NI_IDN (UTF-8).
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_USE_UTF8 1
#include "tst-resolv-ai_idn-common.c"
@@ -28,6 +28,11 @@ do_test (void)
void *handle = dlopen (LIBIDN2_SONAME, RTLD_LAZY);
if (handle == NULL)
FAIL_UNSUPPORTED ("libidn2 not installed");
+ void *check_ver_sym = xdlsym (handle, "idn2_check_version");
+ const char *check_res
+ = ((const char *(*) (const char *)) check_ver_sym) ("2.0.5");
+ if (check_res == NULL)
+ FAIL_UNSUPPORTED ("libidn2 too old");
if (setlocale (LC_CTYPE, "en_US.UTF-8") == NULL)
FAIL_EXIT1 ("setlocale: %m");
diff --git a/resolv/tst-resolv-basic.c b/resolv/tst-resolv-basic.c
index e607d24084..b594dbf819 100644
--- a/resolv/tst-resolv-basic.c
+++ b/resolv/tst-resolv-basic.c
@@ -1,5 +1,5 @@
/* Test basic nss_dns functionality and the resolver test harness itself.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdio.h>
diff --git a/resolv/tst-resolv-binary.c b/resolv/tst-resolv-binary.c
index e7e6d87994..6f0e661c5d 100644
--- a/resolv/tst-resolv-binary.c
+++ b/resolv/tst-resolv-binary.c
@@ -1,5 +1,5 @@
/* Test handling of binary domain names with res_send.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <resolv.h>
#include <string.h>
diff --git a/resolv/tst-resolv-canonname.c b/resolv/tst-resolv-canonname.c
index 3f0e68b0f8..6a38ad23b3 100644
--- a/resolv/tst-resolv-canonname.c
+++ b/resolv/tst-resolv-canonname.c
@@ -1,5 +1,5 @@
/* Test _nss_dns_getcanonname_r corner cases.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <errno.h>
diff --git a/resolv/tst-resolv-edns.c b/resolv/tst-resolv-edns.c
index 3f2367ca57..d21ae75ee9 100644
--- a/resolv/tst-resolv-edns.c
+++ b/resolv/tst-resolv-edns.c
@@ -1,5 +1,5 @@
/* Test EDNS handling in the stub resolver.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <netdb.h>
diff --git a/resolv/tst-resolv-network.c b/resolv/tst-resolv-network.c
index 4b862d57e6..93e84918eb 100644
--- a/resolv/tst-resolv-network.c
+++ b/resolv/tst-resolv-network.c
@@ -1,5 +1,5 @@
/* Test getnetbyname and getnetbyaddr.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <netdb.h>
#include <stdlib.h>
@@ -149,6 +149,9 @@ handle_code (const struct resolv_response_context *ctx,
resolv_response_add_data (b, &rrtype, sizeof (rrtype));
}
break;
+ case 104:
+ send_ptr (b, qname, qclass, qtype, "host.example");
+ break;
default:
FAIL_EXIT1 ("invalid QNAME: %s (code %d)", qname, code);
}
@@ -257,6 +260,9 @@ do_test (void)
"error: TRY_AGAIN\n");
check_netent ("code103.example", getnetbyname ("code103.example"),
"error: NO_RECOVERY\n");
+ /* Test bug #17630. */
+ check_netent ("code104.example", getnetbyname ("code104.example"),
+ "error: TRY_AGAIN\n");
/* Lookup by address, success cases. */
check_reverse (1,
diff --git a/resolv/tst-resolv-nondecimal.c b/resolv/tst-resolv-nondecimal.c
new file mode 100644
index 0000000000..cfb926416f
--- /dev/null
+++ b/resolv/tst-resolv-nondecimal.c
@@ -0,0 +1,139 @@
+/* Test name resolution behavior for octal, hexadecimal IPv4 addresses.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <netdb.h>
+#include <stdlib.h>
+#include <support/check.h>
+#include <support/check_nss.h>
+#include <support/resolv_test.h>
+#include <support/support.h>
+
+static void
+response (const struct resolv_response_context *ctx,
+ struct resolv_response_builder *b,
+ const char *qname, uint16_t qclass, uint16_t qtype)
+{
+ /* The tests are not supposed send any DNS queries. */
+ FAIL_EXIT1 ("unexpected DNS query for %s/%d/%d", qname, qclass, qtype);
+}
+
+static void
+run_query_addrinfo (const char *query, const char *address)
+{
+ char *quoted_query = support_quote_string (query);
+
+ struct addrinfo *ai;
+ struct addrinfo hints =
+ {
+ .ai_socktype = SOCK_STREAM,
+ .ai_protocol = IPPROTO_TCP,
+ };
+
+ char *context = xasprintf ("getaddrinfo \"%s\" AF_INET", quoted_query);
+ char *expected = xasprintf ("address: STREAM/TCP %s 80\n", address);
+ hints.ai_family = AF_INET;
+ int ret = getaddrinfo (query, "80", &hints, &ai);
+ check_addrinfo (context, ai, ret, expected);
+ if (ret == 0)
+ freeaddrinfo (ai);
+ free (context);
+
+ context = xasprintf ("getaddrinfo \"%s\" AF_UNSPEC", quoted_query);
+ hints.ai_family = AF_UNSPEC;
+ ret = getaddrinfo (query, "80", &hints, &ai);
+ check_addrinfo (context, ai, ret, expected);
+ if (ret == 0)
+ freeaddrinfo (ai);
+ free (expected);
+ free (context);
+
+ context = xasprintf ("getaddrinfo \"%s\" AF_INET6", quoted_query);
+ expected = xasprintf ("flags: AI_V4MAPPED\n"
+ "address: STREAM/TCP ::ffff:%s 80\n",
+ address);
+ hints.ai_family = AF_INET6;
+ hints.ai_flags = AI_V4MAPPED;
+ ret = getaddrinfo (query, "80", &hints, &ai);
+ check_addrinfo (context, ai, ret, expected);
+ if (ret == 0)
+ freeaddrinfo (ai);
+ free (expected);
+ free (context);
+
+ free (quoted_query);
+}
+
+static void
+run_query (const char *query, const char *address)
+{
+ char *quoted_query = support_quote_string (query);
+ char *context = xasprintf ("gethostbyname (\"%s\")", quoted_query);
+ char *expected = xasprintf ("name: %s\n"
+ "address: %s\n", query, address);
+ check_hostent (context, gethostbyname (query), expected);
+ free (context);
+
+ context = xasprintf ("gethostbyname_r \"%s\"", quoted_query);
+ struct hostent storage;
+ char buf[4096];
+ struct hostent *e = NULL;
+ TEST_COMPARE (gethostbyname_r (query, &storage, buf, sizeof (buf),
+ &e, &h_errno), 0);
+ check_hostent (context, e, expected);
+ free (context);
+
+ context = xasprintf ("gethostbyname2 (\"%s\", AF_INET)", quoted_query);
+ check_hostent (context, gethostbyname2 (query, AF_INET), expected);
+ free (context);
+
+ context = xasprintf ("gethostbyname2_r \"%s\" AF_INET", quoted_query);
+ e = NULL;
+ TEST_COMPARE (gethostbyname2_r (query, AF_INET, &storage, buf, sizeof (buf),
+ &e, &h_errno), 0);
+ check_hostent (context, e, expected);
+ free (context);
+ free (expected);
+
+ free (quoted_query);
+
+ /* The gethostbyname tests are always valid for getaddrinfo, but not
+ vice versa. */
+ run_query_addrinfo (query, address);
+}
+
+static int
+do_test (void)
+{
+ struct resolv_test *aux = resolv_test_start
+ ((struct resolv_redirect_config)
+ {
+ .response_callback = response,
+ });
+
+ run_query ("192.000.002.010", "192.0.2.8");
+
+ /* Hexadecimal numbers are not accepted by gethostbyname. */
+ run_query_addrinfo ("0xc0000210", "192.0.2.16");
+ run_query_addrinfo ("192.0x234", "192.0.2.52");
+
+ resolv_test_end (aux);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/resolv/tst-resolv-qtypes.c b/resolv/tst-resolv-qtypes.c
index b207e82fc4..af4aa7bd03 100644
--- a/resolv/tst-resolv-qtypes.c
+++ b/resolv/tst-resolv-qtypes.c
@@ -1,5 +1,5 @@
/* Exercise low-level query functions with different QTYPEs.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <resolv.h>
#include <string.h>
diff --git a/resolv/tst-resolv-res_init-multi.c b/resolv/tst-resolv-res_init-multi.c
index 1aacea49ca..155da8d5a3 100644
--- a/resolv/tst-resolv-res_init-multi.c
+++ b/resolv/tst-resolv-res_init-multi.c
@@ -1,5 +1,5 @@
/* Multi-threaded test for resolver initialization.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <netdb.h>
#include <resolv.h>
diff --git a/resolv/tst-resolv-res_init-skeleton.c b/resolv/tst-resolv-res_init-skeleton.c
index a5061e6d4f..9934d2396b 100644
--- a/resolv/tst-resolv-res_init-skeleton.c
+++ b/resolv/tst-resolv-res_init-skeleton.c
@@ -1,5 +1,5 @@
/* Test parsing of /etc/resolv.conf. Genric version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Before including this file, TEST_THREAD has to be defined to 0 or
1, depending on whether the threading tests should be compiled
@@ -24,7 +24,6 @@
#include <errno.h>
#include <gnu/lib-names.h>
#include <netdb.h>
-#include <resolv/resolv-internal.h> /* For DEPRECATED_RES_USE_INET6. */
#include <resolv/resolv_context.h>
#include <stdio.h>
#include <stdlib.h>
@@ -120,7 +119,6 @@ print_resp (FILE *fp, res_state resp)
if (resp->retry != RES_DFLRETRY)
fprintf (fp, " attempts:%d", resp->retry);
print_option_flag (fp, &options, RES_USEVC, "use-vc");
- print_option_flag (fp, &options, DEPRECATED_RES_USE_INET6, "inet6");
print_option_flag (fp, &options, RES_ROTATE, "rotate");
print_option_flag (fp, &options, RES_USE_EDNS0, "edns0");
print_option_flag (fp, &options, RES_SNGLKUP,
@@ -129,6 +127,7 @@ print_resp (FILE *fp, res_state resp)
"single-request-reopen");
print_option_flag (fp, &options, RES_NOTLDQUERY, "no-tld-query");
print_option_flag (fp, &options, RES_NORELOAD, "no-reload");
+ print_option_flag (fp, &options, RES_TRUSTAD, "trust-ad");
fputc ('\n', fp);
if (options != 0)
fprintf (fp, "; error: unresolved option bits: 0x%x\n", options);
@@ -560,7 +559,7 @@ struct test_case test_cases[] =
"nameserver 192.0.2.1\n"
"nameserver ::1\n"
"nameserver 192.0.2.2\n",
- .expected = "options ndots:3 timeout:19 attempts:5 inet6 edns0\n"
+ .expected = "options ndots:3 timeout:19 attempts:5 edns0\n"
"search corp.example.com example.com\n"
"; search[0]: corp.example.com\n"
"; search[1]: example.com\n"
@@ -713,6 +712,15 @@ struct test_case test_cases[] =
"nameserver 192.0.2.1\n"
"; nameserver[0]: [192.0.2.1]:53\n"
},
+ {.name = "trust-ad flag",
+ .conf = "options trust-ad\n"
+ "nameserver 192.0.2.1\n",
+ .expected = "options trust-ad\n"
+ "search example.com\n"
+ "; search[0]: example.com\n"
+ "nameserver 192.0.2.1\n"
+ "; nameserver[0]: [192.0.2.1]:53\n"
+ },
{ NULL }
};
diff --git a/resolv/tst-resolv-res_init-thread.c b/resolv/tst-resolv-res_init-thread.c
index 8bb935e0f3..47c530fad5 100644
--- a/resolv/tst-resolv-res_init-thread.c
+++ b/resolv/tst-resolv-res_init-thread.c
@@ -1,5 +1,5 @@
/* Test parsing of /etc/resolv.conf, threading version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_THREAD 1
#include "tst-resolv-res_init-skeleton.c"
diff --git a/resolv/tst-resolv-res_init.c b/resolv/tst-resolv-res_init.c
index bb91c9e3ad..d5ba3c05be 100644
--- a/resolv/tst-resolv-res_init.c
+++ b/resolv/tst-resolv-res_init.c
@@ -1,5 +1,5 @@
/* Test parsing of /etc/resolv.conf, non-threading version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_THREAD 0
#include "tst-resolv-res_init-skeleton.c"
diff --git a/resolv/tst-resolv-res_ninit.c b/resolv/tst-resolv-res_ninit.c
index 46e72ab7ce..ef7dce31eb 100644
--- a/resolv/tst-resolv-res_ninit.c
+++ b/resolv/tst-resolv-res_ninit.c
@@ -1,5 +1,5 @@
/* Test the creation of many struct __res_state objects.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <mcheck.h>
#include <resolv.h>
diff --git a/resolv/tst-resolv-rotate.c b/resolv/tst-resolv-rotate.c
index 15f52d03e8..548c2c6c0a 100644
--- a/resolv/tst-resolv-rotate.c
+++ b/resolv/tst-resolv-rotate.c
@@ -1,5 +1,5 @@
/* Check that RES_ROTATE works with few nameserver entries (bug 13028).
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <netdb.h>
#include <resolv.h>
diff --git a/resolv/tst-resolv-search.c b/resolv/tst-resolv-search.c
index 307ecdcbd6..1feb3bd307 100644
--- a/resolv/tst-resolv-search.c
+++ b/resolv/tst-resolv-search.c
@@ -1,5 +1,5 @@
/* Test search/default domain name behavior.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <resolv.h>
#include <stdlib.h>
diff --git a/resolv/tst-resolv-threads.c b/resolv/tst-resolv-threads.c
index 4222331d71..ec43318f66 100644
--- a/resolv/tst-resolv-threads.c
+++ b/resolv/tst-resolv-threads.c
@@ -1,5 +1,5 @@
/* Test basic nss_dns functionality with multiple threads.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Unlike tst-resolv-basic, this test does not overwrite the _res
structure and relies on namespaces to achieve the redirection to
@@ -276,19 +276,12 @@ thread_byname2 (void *closure)
return byname (true);
}
-/* Call gethostbyname_r with RES_USE_INET6 (if do_2 is false), or
- gethostbyname_r with AF_INET6 (if do_2 is true). */
+/* Test gethostbyname2_r with AF_INET6. */
static void *
-byname_inet6 (bool do_2)
+thread_byname2_af_inet6 (void *closure)
{
int this_thread = get_thread_number ();
xpthread_barrier_wait (&barrier);
- if (!do_2)
- {
- res_init ();
- _res.options |= DEPRECATED_RES_USE_INET6;
- TEST_VERIFY (strcmp (_res.defdname, "example.com") == 0);
- }
for (int i = 0; i < queries_per_thread; ++i)
{
char qname[100];
@@ -298,46 +291,19 @@ byname_inet6 (bool do_2)
char buf[1000];
struct hostent *e = NULL;
int herrno;
- int ret;
- if (do_2)
- ret = gethostbyname2_r (qname, AF_INET6, &storage, buf, sizeof (buf),
- &e, &herrno);
- else
- ret = gethostbyname_r (qname, &storage, buf, sizeof (buf),
- &e, &herrno);
- check_hostent (__func__,
- do_2 ? "gethostbyname2_r" : "gethostbyname_r",
- qname, ret, e, AF_INET6, i);
+ int ret = gethostbyname2_r (qname, AF_INET6, &storage, buf, sizeof (buf),
+ &e, &herrno);
+ check_hostent (__func__, "gethostbyname2_r", qname, ret, e, AF_INET6, i);
}
return NULL;
}
-/* Test gethostbyname_r with AF_INET6. */
-static void *
-thread_byname_inet6 (void *closure)
-{
- return byname_inet6 (false);
-}
-
-/* Test gethostbyname2_r with AF_INET6. */
-static void *
-thread_byname2_af_inet6 (void *closure)
-{
- return byname_inet6 (true);
-}
-
/* Run getaddrinfo tests for FAMILY. */
static void *
-gai (int family, bool do_inet6)
+gai (int family)
{
int this_thread = get_thread_number ();
xpthread_barrier_wait (&barrier);
- if (do_inet6)
- {
- res_init ();
- _res.options |= DEPRECATED_RES_USE_INET6;
- check_have_conf ();
- }
for (int i = 0; i < queries_per_thread; ++i)
{
char qname[100];
@@ -362,42 +328,21 @@ gai (int family, bool do_inet6)
static void *
thread_gai_inet (void *closure)
{
- return gai (AF_INET, false);
+ return gai (AF_INET);
}
/* Test getaddrinfo with AF_INET6. */
static void *
thread_gai_inet6 (void *closure)
{
- return gai (AF_INET6, false);
+ return gai (AF_INET6);
}
/* Test getaddrinfo with AF_UNSPEC. */
static void *
thread_gai_unspec (void *closure)
{
- return gai (AF_UNSPEC, false);
-}
-
-/* Test getaddrinfo with AF_INET. */
-static void *
-thread_gai_inet_inet6 (void *closure)
-{
- return gai (AF_INET, true);
-}
-
-/* Test getaddrinfo with AF_INET6. */
-static void *
-thread_gai_inet6_inet6 (void *closure)
-{
- return gai (AF_INET6, true);
-}
-
-/* Test getaddrinfo with AF_UNSPEC. */
-static void *
-thread_gai_unspec_inet6 (void *closure)
-{
- return gai (AF_UNSPEC, true);
+ return gai (AF_UNSPEC);
}
/* Description of the chroot environment used to run the tests. */
@@ -451,7 +396,7 @@ do_test (void)
.server_address_overrides = server_addresses,
});
- enum { thread_count = 10 };
+ enum { thread_count = 6 };
xpthread_barrier_init (&barrier, NULL, thread_count + 1);
pthread_t threads[thread_count];
typedef void *(*thread_func) (void *);
@@ -459,14 +404,10 @@ do_test (void)
{
thread_byname,
thread_byname2,
- thread_byname_inet6,
thread_byname2_af_inet6,
thread_gai_inet,
thread_gai_inet6,
thread_gai_unspec,
- thread_gai_inet_inet6,
- thread_gai_inet6_inet6,
- thread_gai_unspec_inet6,
};
for (int i = 0; i < thread_count; ++i)
threads[i] = xpthread_create (NULL, thread_funcs[i], NULL);
diff --git a/resolv/tst-resolv-trailing.c b/resolv/tst-resolv-trailing.c
new file mode 100644
index 0000000000..758fc9c62d
--- /dev/null
+++ b/resolv/tst-resolv-trailing.c
@@ -0,0 +1,136 @@
+/* Test name resolution behavior with trailing characters.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <array_length.h>
+#include <netdb.h>
+#include <support/check.h>
+#include <support/check_nss.h>
+#include <support/resolv_test.h>
+#include <support/support.h>
+
+static void
+response (const struct resolv_response_context *ctx,
+ struct resolv_response_builder *b,
+ const char *qname, uint16_t qclass, uint16_t qtype)
+{
+ /* The tests are not supposed send any DNS queries. */
+ FAIL_EXIT1 ("unexpected DNS query for %s/%d/%d", qname, qclass, qtype);
+}
+
+static int
+do_test (void)
+{
+ struct resolv_test *aux = resolv_test_start
+ ((struct resolv_redirect_config)
+ {
+ .response_callback = response,
+ });
+
+ static const char *const queries[] =
+ {
+ "192.0.2.1 ",
+ "192.0.2.2\t",
+ "192.0.2.3\n",
+ "192.0.2.4 X",
+ "192.0.2.5\tY",
+ "192.0.2.6\nZ",
+ "192.0.2. ",
+ "192.0.2.\t",
+ "192.0.2.\n",
+ "192.0.2. X",
+ "192.0.2.\tY",
+ "192.0.2.\nZ",
+ "2001:db8::1 ",
+ "2001:db8::2\t",
+ "2001:db8::3\n",
+ "2001:db8::4 X",
+ "2001:db8::5\tY",
+ "2001:db8::6\nZ",
+ };
+ for (size_t query_idx = 0; query_idx < array_length (queries); ++query_idx)
+ {
+ const char *query = queries[query_idx];
+ struct hostent storage;
+ char buf[4096];
+ struct hostent *e;
+
+ h_errno = 0;
+ TEST_VERIFY (gethostbyname (query) == NULL);
+ TEST_COMPARE (h_errno, HOST_NOT_FOUND);
+
+ h_errno = 0;
+ e = NULL;
+ TEST_COMPARE (gethostbyname_r (query, &storage, buf, sizeof (buf),
+ &e, &h_errno), 0);
+ TEST_VERIFY (e == NULL);
+ TEST_COMPARE (h_errno, HOST_NOT_FOUND);
+
+ h_errno = 0;
+ TEST_VERIFY (gethostbyname2 (query, AF_INET) == NULL);
+ TEST_COMPARE (h_errno, HOST_NOT_FOUND);
+
+ h_errno = 0;
+ e = NULL;
+ TEST_COMPARE (gethostbyname2_r (query, AF_INET,
+ &storage, buf, sizeof (buf),
+ &e, &h_errno), 0);
+ TEST_VERIFY (e == NULL);
+ TEST_COMPARE (h_errno, HOST_NOT_FOUND);
+
+ h_errno = 0;
+ TEST_VERIFY (gethostbyname2 (query, AF_INET6) == NULL);
+ TEST_COMPARE (h_errno, HOST_NOT_FOUND);
+
+ h_errno = 0;
+ e = NULL;
+ TEST_COMPARE (gethostbyname2_r (query, AF_INET6,
+ &storage, buf, sizeof (buf),
+ &e, &h_errno), 0);
+ TEST_VERIFY (e == NULL);
+ TEST_COMPARE (h_errno, HOST_NOT_FOUND);
+
+ static const int gai_flags[] =
+ {
+ 0,
+ AI_ADDRCONFIG,
+ AI_NUMERICHOST,
+ AI_IDN,
+ AI_IDN | AI_NUMERICHOST,
+ AI_V4MAPPED,
+ AI_V4MAPPED | AI_NUMERICHOST,
+ };
+ for (size_t gai_flags_idx; gai_flags_idx < array_length (gai_flags);
+ ++gai_flags_idx)
+ {
+ struct addrinfo hints = { .ai_flags = gai_flags[gai_flags_idx], };
+ struct addrinfo *ai;
+ hints.ai_family = AF_INET;
+ TEST_COMPARE (getaddrinfo (query, "80", &hints, &ai), EAI_NONAME);
+ hints.ai_family = AF_INET6;
+ TEST_COMPARE (getaddrinfo (query, "80", &hints, &ai), EAI_NONAME);
+ hints.ai_family = AF_UNSPEC;
+ TEST_COMPARE (getaddrinfo (query, "80", &hints, &ai), EAI_NONAME);
+ }
+ };
+
+ resolv_test_end (aux);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/resolv/tst-resolv-trustad.c b/resolv/tst-resolv-trustad.c
new file mode 100644
index 0000000000..fc9ae540a2
--- /dev/null
+++ b/resolv/tst-resolv-trustad.c
@@ -0,0 +1,200 @@
+/* Test the behavior of the trust-ad option.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <resolv.h>
+#include <stdlib.h>
+#include <string.h>
+#include <support/check.h>
+#include <support/check_nss.h>
+#include <support/resolv_test.h>
+#include <support/support.h>
+
+/* This controls properties of the response. volatile because
+ __res_send is incorrectly declared as __THROW. */
+static volatile unsigned char response_number;
+static volatile bool response_ad_bit;
+static volatile bool query_ad_bit;
+
+static void
+response (const struct resolv_response_context *ctx,
+ struct resolv_response_builder *b,
+ const char *qname, uint16_t qclass, uint16_t qtype)
+{
+ TEST_COMPARE (qclass, C_IN);
+ TEST_COMPARE (qtype, T_A);
+ TEST_COMPARE_STRING (qname, "www.example");
+
+ HEADER header;
+ memcpy (&header, ctx->query_buffer, sizeof (header));
+ TEST_COMPARE (header.ad, query_ad_bit);
+
+ struct resolv_response_flags flags = { .ad = response_ad_bit, };
+ resolv_response_init (b, flags);
+ resolv_response_add_question (b, qname, qclass, qtype);
+ resolv_response_section (b, ns_s_an);
+ resolv_response_open_record (b, qname, qclass, T_A, 0x12345678);
+ char addr[4] = { 192, 0, 2, response_number };
+ resolv_response_add_data (b, addr, sizeof (addr));
+ resolv_response_close_record (b);
+}
+
+static void
+check_answer (const unsigned char *buffer, size_t buffer_length,
+ bool expected_ad)
+{
+ HEADER header;
+ TEST_VERIFY (buffer_length > sizeof (header));
+ memcpy (&header, buffer, sizeof (header));
+ TEST_COMPARE (0, header.aa);
+ TEST_COMPARE (expected_ad, header.ad);
+ TEST_COMPARE (0, header.opcode);
+ TEST_COMPARE (1, header.qr);
+ TEST_COMPARE (0, header.rcode);
+ TEST_COMPARE (1, header.rd);
+ TEST_COMPARE (0, header.tc);
+ TEST_COMPARE (1, ntohs (header.qdcount));
+ TEST_COMPARE (1, ntohs (header.ancount));
+ TEST_COMPARE (0, ntohs (header.nscount));
+ TEST_COMPARE (0, ntohs (header.arcount));
+
+ char *description = xasprintf ("response=%d ad=%d",
+ response_number, expected_ad);
+ char *expected = xasprintf ("name: www.example\n"
+ "address: 192.0.2.%d\n", response_number);
+ check_dns_packet (description, buffer, buffer_length, expected);
+ free (expected);
+ free (description);
+}
+
+static int
+do_test (void)
+{
+ struct resolv_test *aux = resolv_test_start
+ ((struct resolv_redirect_config)
+ {
+ .response_callback = response,
+ });
+
+ /* By default, the resolver is not trusted, and the AD bit is
+ cleared. */
+
+ static const unsigned char hand_crafted_query[] =
+ {
+ 10, 11, /* Transaction ID. */
+ 1, 0x20, /* Query with RD, AD flags. */
+ 0, 1, /* One question. */
+ 0, 0, 0, 0, 0, 0, /* The other sections are empty. */
+ 3, 'w', 'w', 'w', 7, 'e', 'x', 'a', 'm', 'p', 'l', 'e', 0,
+ 0, T_A, /* A query. */
+ 0, 1, /* Class IN. */
+ };
+
+ ++response_number;
+ response_ad_bit = false;
+
+ unsigned char buffer[512];
+ memset (buffer, 255, sizeof (buffer));
+ query_ad_bit = true;
+ int ret = res_send (hand_crafted_query, sizeof (hand_crafted_query),
+ buffer, sizeof (buffer));
+ TEST_VERIFY (ret > 0);
+ check_answer (buffer, ret, false);
+
+ ++response_number;
+ memset (buffer, 255, sizeof (buffer));
+ query_ad_bit = false;
+ ret = res_query ("www.example", C_IN, T_A, buffer, sizeof (buffer));
+ TEST_VERIFY (ret > 0);
+ check_answer (buffer, ret, false);
+ response_ad_bit = true;
+
+ response_ad_bit = true;
+
+ ++response_number;
+ query_ad_bit = true;
+ ret = res_send (hand_crafted_query, sizeof (hand_crafted_query),
+ buffer, sizeof (buffer));
+ TEST_VERIFY (ret > 0);
+ check_answer (buffer, ret, false);
+
+ ++response_number;
+ memset (buffer, 255, sizeof (buffer));
+ query_ad_bit = false;
+ ret = res_query ("www.example", C_IN, T_A, buffer, sizeof (buffer));
+ TEST_VERIFY (ret > 0);
+ check_answer (buffer, ret, false);
+
+ /* No AD bit set in generated queries. */
+ memset (buffer, 255, sizeof (buffer));
+ ret = res_mkquery (QUERY, "www.example", C_IN, T_A,
+ (const unsigned char *) "", 0, NULL,
+ buffer, sizeof (buffer));
+ HEADER header;
+ memcpy (&header, buffer, sizeof (header));
+ TEST_VERIFY (!header.ad);
+
+ /* With RES_TRUSTAD, the AD bit is passed through if it set in the
+ response. It is also included in queries. */
+
+ _res.options |= RES_TRUSTAD;
+ query_ad_bit = true;
+
+ response_ad_bit = false;
+
+ ++response_number;
+ memset (buffer, 255, sizeof (buffer));
+ ret = res_send (hand_crafted_query, sizeof (hand_crafted_query),
+ buffer, sizeof (buffer));
+ TEST_VERIFY (ret > 0);
+ check_answer (buffer, ret, false);
+
+ ++response_number;
+ memset (buffer, 255, sizeof (buffer));
+ ret = res_query ("www.example", C_IN, T_A, buffer, sizeof (buffer));
+ TEST_VERIFY (ret > 0);
+ check_answer (buffer, ret, false);
+
+ response_ad_bit = true;
+
+ ++response_number;
+ memset (buffer, 0, sizeof (buffer));
+ ret = res_send (hand_crafted_query, sizeof (hand_crafted_query),
+ buffer, sizeof (buffer));
+ TEST_VERIFY (ret > 0);
+ check_answer (buffer, ret, true);
+
+ ++response_number;
+ memset (buffer, 0, sizeof (buffer));
+ ret = res_query ("www.example", C_IN, T_A, buffer, sizeof (buffer));
+ TEST_VERIFY (ret > 0);
+ check_answer (buffer, ret, true);
+
+ /* AD bit set in generated queries. */
+ memset (buffer, 0, sizeof (buffer));
+ ret = res_mkquery (QUERY, "www.example", C_IN, T_A,
+ (const unsigned char *) "", 0, NULL,
+ buffer, sizeof (buffer));
+ memcpy (&header, buffer, sizeof (header));
+ TEST_VERIFY (header.ad);
+
+ resolv_test_end (aux);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/resource/Makefile b/resource/Makefile
index bf66294ac3..c923493656 100644
--- a/resource/Makefile
+++ b/resource/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1991-2018 Free Software Foundation, Inc.
+# Copyright (C) 1991-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
subdir := resource
diff --git a/resource/bits/types/struct_rusage.h b/resource/bits/types/struct_rusage.h
index 5dc0916aa7..fb8def5a08 100644
--- a/resource/bits/types/struct_rusage.h
+++ b/resource/bits/types/struct_rusage.h
@@ -1,5 +1,5 @@
/* Define struct rusage.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef __rusage_defined
#define __rusage_defined 1
@@ -22,7 +22,9 @@
#include <bits/types.h>
#include <bits/types/struct_timeval.h>
-/* Structure which says how much of each resource has been used. */
+/* Structure which says how much of each resource has been used. If
+ the system does not keep track of a particular value, the struct
+ field is always zero. */
/* The purpose of all the unions is to have the kernel-compatible layout
while keeping the API type as 'long int', and among machines where
@@ -42,7 +44,6 @@ struct rusage
};
/* Amount of sharing of text segment memory
with other processes (kilobyte-seconds). */
- /* Maximum resident set size (in kilobytes). */
__extension__ union
{
long int ru_ixrss;
diff --git a/resource/getpriority.c b/resource/getpriority.c
index fb3930d3a3..9f009440aa 100644
--- a/resource/getpriority.c
+++ b/resource/getpriority.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/resource.h>
diff --git a/resource/getrlimit.c b/resource/getrlimit.c
index 12faa7505d..31fdbcc3ef 100644
--- a/resource/getrlimit.c
+++ b/resource/getrlimit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/resource.h>
diff --git a/resource/getrlimit64.c b/resource/getrlimit64.c
index 955032fae4..a281558bc9 100644
--- a/resource/getrlimit64.c
+++ b/resource/getrlimit64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/resource.h>
diff --git a/resource/getrusage.c b/resource/getrusage.c
index c8f45845fe..aea9bbb9dd 100644
--- a/resource/getrusage.c
+++ b/resource/getrusage.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/resource.h>
#include <errno.h>
diff --git a/resource/nice.c b/resource/nice.c
index b247e66615..0d7bcf0be8 100644
--- a/resource/nice.c
+++ b/resource/nice.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/resource/setpriority.c b/resource/setpriority.c
index a63202fec5..8b1ff1b1ed 100644
--- a/resource/setpriority.c
+++ b/resource/setpriority.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/resource.h>
diff --git a/resource/setrlimit.c b/resource/setrlimit.c
index 5841302dda..2bb99542cf 100644
--- a/resource/setrlimit.c
+++ b/resource/setrlimit.c
@@ -1,5 +1,5 @@
/* Set process resource limits. Stub version.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/resource.h>
diff --git a/resource/setrlimit64.c b/resource/setrlimit64.c
index b83e10302d..26c607dcec 100644
--- a/resource/setrlimit64.c
+++ b/resource/setrlimit64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/resource.h>
diff --git a/resource/sys/resource.h b/resource/sys/resource.h
index 881db3970c..6913c6c164 100644
--- a/resource/sys/resource.h
+++ b/resource/sys/resource.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_RESOURCE_H
#define _SYS_RESOURCE_H 1
diff --git a/resource/sys/vlimit.h b/resource/sys/vlimit.h
index 8b1d24dd01..f834954a0b 100644
--- a/resource/sys/vlimit.h
+++ b/resource/sys/vlimit.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_VLIMIT_H
#define _SYS_VLIMIT_H 1
diff --git a/resource/sys/vtimes.h b/resource/sys/vtimes.h
index cb4b7fec86..da4f71fa69 100644
--- a/resource/sys/vtimes.h
+++ b/resource/sys/vtimes.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_VTIMES_H
#define _SYS_VTIMES_H 1
diff --git a/resource/tst-getrlimit.c b/resource/tst-getrlimit.c
index fb95a28a68..539ac02e63 100644
--- a/resource/tst-getrlimit.c
+++ b/resource/tst-getrlimit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdbool.h>
diff --git a/resource/ulimit.c b/resource/ulimit.c
index e78dc593ae..fbe520d0f8 100644
--- a/resource/ulimit.c
+++ b/resource/ulimit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/resource.h>
diff --git a/resource/ulimit.h b/resource/ulimit.h
index 554914cb73..898fe2c27c 100644
--- a/resource/ulimit.h
+++ b/resource/ulimit.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _ULIMIT_H
#define _ULIMIT_H 1
diff --git a/resource/vlimit.c b/resource/vlimit.c
index 2523d17dc1..1bc09f8f62 100644
--- a/resource/vlimit.c
+++ b/resource/vlimit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This is generic in the sense that it will work with the BSD, SYSV,
or stub versions of getrlimit. Separate versions could be written
diff --git a/resource/vtimes.c b/resource/vtimes.c
index f2387143b6..ce7128271a 100644
--- a/resource/vtimes.c
+++ b/resource/vtimes.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <sys/vtimes.h>
@@ -22,8 +22,8 @@
/* Return the number of 1/VTIMES_UNITS_PER_SECOND-second
units in the `struct timeval' TV. */
#define TIMEVAL_TO_VTIMES(tv) \
- ((tv.tv_sec * VTIMES_UNITS_PER_SECOND) + \
- (tv.tv_usec * VTIMES_UNITS_PER_SECOND / 1000000))
+ ((tv.tv_sec * VTIMES_UNITS_PER_SECOND) \
+ + (tv.tv_usec * VTIMES_UNITS_PER_SECOND / 1000000))
/* If VT is not NULL, write statistics for WHO into *VT.
Return 0 for success, -1 for failure. */
diff --git a/rt/Makefile b/rt/Makefile
index 6d6b896ee9..6c8365e0c0 100644
--- a/rt/Makefile
+++ b/rt/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1997-2018 Free Software Foundation, Inc.
+# Copyright (C) 1997-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
# Sub-makefile for real-time portion of the library.
@@ -28,9 +28,6 @@ aio-routines := aio_cancel aio_error aio_fsync aio_misc aio_read \
aio_read64 aio_return aio_suspend aio_write \
aio_write64 lio_listio lio_listio64 aio_sigqueue \
aio_notify
-clock-routines := get_clockfreq clock_getcpuclockid \
- clock_getres clock_gettime clock_settime \
- clock_nanosleep
timer-routines := timer_create timer_delete timer_getoverr \
timer_gettime timer_settime
shm-routines := shm_open shm_unlink
@@ -38,22 +35,18 @@ mq-routines := mq_open mq_close mq_unlink mq_getattr mq_setattr \
mq_notify mq_send mq_receive mq_timedsend \
mq_timedreceive
-routines = $(clock-routines)
-
librt-routines = $(aio-routines) \
$(timer-routines) \
- $(shm-routines) $(mq-routines) \
- clock-compat
+ $(shm-routines) $(mq-routines)
-tests := tst-shm tst-clock tst-clock_nanosleep tst-timer tst-timer2 \
+tests := tst-shm tst-timer tst-timer2 \
tst-aio tst-aio64 tst-aio2 tst-aio3 tst-aio4 tst-aio5 tst-aio6 \
tst-aio7 tst-aio8 tst-aio9 tst-aio10 \
tst-mqueue1 tst-mqueue2 tst-mqueue3 tst-mqueue4 \
tst-mqueue5 tst-mqueue6 tst-mqueue7 tst-mqueue8 tst-mqueue9 \
tst-timer3 tst-timer4 tst-timer5 \
- tst-cpuclock1 tst-cpuclock2 \
- tst-cputimer1 tst-cputimer2 tst-cputimer3 \
- tst-clock2 tst-shm-cancel
+ tst-cpuclock2 tst-cputimer1 tst-cputimer2 tst-cputimer3 \
+ tst-shm-cancel
extra-libs := librt
extra-libs-others := $(extra-libs)
@@ -63,7 +56,6 @@ include ../Rules
CFLAGS-aio_suspend.c += -fexceptions
CFLAGS-mq_timedreceive.c += -fexceptions -fasynchronous-unwind-tables
CFLAGS-mq_timedsend.c += -fexceptions -fasynchronous-unwind-tables
-CFLAGS-clock_nanosleep.c += -fexceptions -fasynchronous-unwind-tables
CFLAGS-librt-cancellation.c += -fasynchronous-unwind-tables
LDFLAGS-rt.so = -Wl,--enable-new-dtags,-z,nodelete
diff --git a/rt/Versions b/rt/Versions
index 91e3fd2a20..84d1345420 100644
--- a/rt/Versions
+++ b/rt/Versions
@@ -1,15 +1,3 @@
-libc {
- GLIBC_2.17 {
- # c*
- clock_getres; clock_gettime; clock_settime; clock_getcpuclockid;
- clock_nanosleep;
- }
- GLIBC_PRIVATE {
- __clock_getres; __clock_gettime; __clock_settime; __clock_getcpuclockid;
- __clock_nanosleep;
- }
-}
-
librt {
GLIBC_2.1 {
# AIO functions.
@@ -18,10 +6,6 @@ librt {
aio_suspend64; aio_write; aio_write64; lio_listio; lio_listio64;
}
GLIBC_2.2 {
- # These have moved to libc and are still here only for compatibility.
- clock_getres; clock_gettime; clock_settime; clock_getcpuclockid;
- clock_nanosleep;
-
# s*
shm_open; shm_unlink;
diff --git a/rt/aio.h b/rt/aio.h
index c3a1f4bd90..988ac76637 100644
--- a/rt/aio.h
+++ b/rt/aio.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* ISO/IEC 9945-1:1996 6.7: Asynchronous Input and Output
diff --git a/rt/aio_cancel.c b/rt/aio_cancel.c
index 5b866fe620..9abde1bb8f 100644
--- a/rt/aio_cancel.c
+++ b/rt/aio_cancel.c
@@ -1,5 +1,5 @@
/* Cancel requests associated with given file descriptor. Stub version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* We use an UGLY hack to prevent gcc from finding us cheating. The
diff --git a/rt/aio_error.c b/rt/aio_error.c
index b06ef7b84e..e73378ff23 100644
--- a/rt/aio_error.c
+++ b/rt/aio_error.c
@@ -1,5 +1,5 @@
/* Return error status of asynchronous I/O request.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* We use an UGLY hack to prevent gcc from finding us cheating. The
diff --git a/rt/aio_fsync.c b/rt/aio_fsync.c
index 7999672c53..265bce1994 100644
--- a/rt/aio_fsync.c
+++ b/rt/aio_fsync.c
@@ -1,5 +1,5 @@
/* Synchronize I/O in given file descriptor. Stub version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* We use an UGLY hack to prevent gcc from finding us cheating. The
diff --git a/rt/aio_misc.c b/rt/aio_misc.c
index 51af173e14..2fa48dee57 100644
--- a/rt/aio_misc.c
+++ b/rt/aio_misc.c
@@ -1,5 +1,5 @@
/* Handle general operations. Stub version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <aio.h>
#include <aio_misc.h>
diff --git a/rt/aio_notify.c b/rt/aio_notify.c
index 8ee822c1c0..9a02cfd629 100644
--- a/rt/aio_notify.c
+++ b/rt/aio_notify.c
@@ -1,5 +1,5 @@
/* Notify initiator of AIO request. Stub version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <aio.h>
#include <aio_misc.h>
diff --git a/rt/aio_read.c b/rt/aio_read.c
index 15572fe9e2..7386c9d9e3 100644
--- a/rt/aio_read.c
+++ b/rt/aio_read.c
@@ -1,5 +1,5 @@
/* Asynchronous read. Stub version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <aio.h>
#include <errno.h>
diff --git a/rt/aio_return.c b/rt/aio_return.c
index f8da674e03..32e583c40d 100644
--- a/rt/aio_return.c
+++ b/rt/aio_return.c
@@ -1,5 +1,5 @@
/* Return exit value of asynchronous I/O request.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* We use an UGLY hack to prevent gcc from finding us cheating. The
diff --git a/rt/aio_sigqueue.c b/rt/aio_sigqueue.c
index af16d080e0..fb3ed487c3 100644
--- a/rt/aio_sigqueue.c
+++ b/rt/aio_sigqueue.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <aio.h>
#include <errno.h>
diff --git a/rt/aio_suspend.c b/rt/aio_suspend.c
index b33397132a..095762b94a 100644
--- a/rt/aio_suspend.c
+++ b/rt/aio_suspend.c
@@ -1,5 +1,5 @@
/* Suspend until termination of a requests. Stub version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* We use an UGLY hack to prevent gcc from finding us cheating. The
diff --git a/rt/aio_write.c b/rt/aio_write.c
index d986b85612..67cb1d1ce0 100644
--- a/rt/aio_write.c
+++ b/rt/aio_write.c
@@ -1,5 +1,5 @@
/* Asynchronous write. Stub version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <aio.h>
#include <errno.h>
diff --git a/rt/bits/mqueue2.h b/rt/bits/mqueue2.h
index 7d84bda6af..9c187f2b9d 100644
--- a/rt/bits/mqueue2.h
+++ b/rt/bits/mqueue2.h
@@ -1,5 +1,5 @@
/* Checking macros for mq functions.
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FCNTL_H
# error "Never include <bits/mqueue2.h> directly; use <mqueue.h> instead."
diff --git a/rt/clock-compat.c b/rt/clock-compat.c
deleted file mode 100644
index f816973c05..0000000000
--- a/rt/clock-compat.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/* ABI compatibility redirects for clock_* symbols in librt.
- Copyright (C) 2012-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <shlib-compat.h>
-
-/* The clock_* symbols were originally defined in librt and so
- are part of its ABI. As of 2.17, they have moved to libc.
- So we supply definitions for librt that just redirect to
- their libc counterparts. */
-
-#if SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_17)
-
-#include <time.h>
-
-#if HAVE_IFUNC
-# undef INIT_ARCH
-# define INIT_ARCH()
-# define COMPAT_REDIRECT(name, proto, arglist) libc_ifunc (name, &__##name)
-#else
-# define COMPAT_REDIRECT(name, proto, arglist) \
- int \
- name proto \
- { \
- return __##name arglist; \
- }
-#endif
-
-COMPAT_REDIRECT (clock_getres,
- (clockid_t clock_id, struct timespec *res),
- (clock_id, res))
-COMPAT_REDIRECT (clock_gettime,
- (clockid_t clock_id, struct timespec *tp),
- (clock_id, tp))
-COMPAT_REDIRECT (clock_settime,
- (clockid_t clock_id, const struct timespec *tp),
- (clock_id, tp))
-COMPAT_REDIRECT (clock_getcpuclockid,
- (pid_t pid, clockid_t *clock_id),
- (pid, clock_id))
-COMPAT_REDIRECT (clock_nanosleep,
- (clockid_t clock_id, int flags,
- const struct timespec *req,
- struct timespec *rem),
- (clock_id, flags, req, rem))
-
-#endif
diff --git a/rt/clock_getcpuclockid.c b/rt/clock_getcpuclockid.c
deleted file mode 100644
index 6bc42a0863..0000000000
--- a/rt/clock_getcpuclockid.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Get a clockid_t for the process CPU clock of a given process. Generic.
- Copyright (C) 2000-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <time.h>
-#include <unistd.h>
-
-int
-__clock_getcpuclockid (pid_t pid, clockid_t *clock_id)
-{
- /* We don't allow any process ID but our own. */
- if (pid != 0 && pid != getpid ())
- return EPERM;
-
-#ifdef CLOCK_PROCESS_CPUTIME_ID
- /* Store the number. */
- *clock_id = CLOCK_PROCESS_CPUTIME_ID;
-
- return 0;
-#else
- /* We don't have a timer for that. */
- return ENOENT;
-#endif
-}
-weak_alias (__clock_getcpuclockid, clock_getcpuclockid)
diff --git a/rt/clock_getres.c b/rt/clock_getres.c
deleted file mode 100644
index 816f7b2a90..0000000000
--- a/rt/clock_getres.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Get the resolution of a clock. Stub version.
- Copyright (C) 1999-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <time.h>
-
-/* Get resolution of clock. */
-int
-__clock_getres (clockid_t clock_id, struct timespec *res)
-{
- __set_errno (ENOSYS);
- return -1;
-}
-weak_alias (__clock_getres, clock_getres)
-stub_warning (clock_getres)
diff --git a/rt/clock_gettime.c b/rt/clock_gettime.c
deleted file mode 100644
index 30a012473f..0000000000
--- a/rt/clock_gettime.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Get the current value of a clock. Stub version.
- Copyright (C) 1999-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <time.h>
-
-/* Get current value of CLOCK and store it in TP. */
-int
-__clock_gettime (clockid_t clock_id, struct timespec *tp)
-{
- __set_errno (ENOSYS);
- return -1;
-}
-weak_alias (__clock_gettime, clock_gettime)
-libc_hidden_def (__clock_gettime)
-stub_warning (clock_gettime)
diff --git a/rt/clock_nanosleep.c b/rt/clock_nanosleep.c
deleted file mode 100644
index 15aa6f7c4f..0000000000
--- a/rt/clock_nanosleep.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* High-resolution sleep with the specified clock. Stub version.
- Copyright (C) 2000-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <time.h>
-
-int
-__clock_nanosleep (clockid_t clock_id, int flags, const struct timespec *req,
- struct timespec *rem)
-{
- if (__builtin_expect (req->tv_nsec, 0) < 0
- || __builtin_expect (req->tv_nsec, 0) >= 1000000000)
- return EINVAL;
-
- if (flags != TIMER_ABSTIME && flags != 0)
- return EINVAL;
-
- /* Not implemented. */
- return ENOSYS;
-}
-weak_alias (__clock_nanosleep, clock_nanosleep)
-stub_warning (clock_nanosleep)
diff --git a/rt/clock_settime.c b/rt/clock_settime.c
deleted file mode 100644
index 0b6d4b2a2a..0000000000
--- a/rt/clock_settime.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Set a clock to a given value. Stub version.
- Copyright (C) 1999-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <time.h>
-
-/* Set CLOCK to value TP. */
-int
-__clock_settime (clockid_t clock_id, const struct timespec *tp)
-{
- __set_errno (ENOSYS);
- return -1;
-}
-weak_alias (__clock_settime, clock_settime)
-stub_warning (clock_settime)
diff --git a/rt/get_clockfreq.c b/rt/get_clockfreq.c
deleted file mode 100644
index e695a6018c..0000000000
--- a/rt/get_clockfreq.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Get frequency of the system processor.
- Copyright (C) 2000-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <libc-internal.h>
-
-hp_timing_t
-__get_clockfreq (void)
-{
- /* There is no generic way to find this out since we have in general
- no counter register either. */
- return 0;
-}
diff --git a/rt/lio_listio.c b/rt/lio_listio.c
index d8d95a9015..739d31b203 100644
--- a/rt/lio_listio.c
+++ b/rt/lio_listio.c
@@ -1,5 +1,5 @@
/* Enqueue a list of read or write requests. Stub version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <aio.h>
#include <errno.h>
diff --git a/rt/mq_close.c b/rt/mq_close.c
index 9c22b708d1..ae019d7160 100644
--- a/rt/mq_close.c
+++ b/rt/mq_close.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <mqueue.h>
diff --git a/rt/mq_getattr.c b/rt/mq_getattr.c
index 6d423cf06b..c4e0f7c107 100644
--- a/rt/mq_getattr.c
+++ b/rt/mq_getattr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <mqueue.h>
diff --git a/rt/mq_notify.c b/rt/mq_notify.c
index 9c4f61eb59..2f5e35fbea 100644
--- a/rt/mq_notify.c
+++ b/rt/mq_notify.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <mqueue.h>
diff --git a/rt/mq_open.c b/rt/mq_open.c
index 4ad985225d..cbf0c2b9a8 100644
--- a/rt/mq_open.c
+++ b/rt/mq_open.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <mqueue.h>
diff --git a/rt/mq_receive.c b/rt/mq_receive.c
index 318acf28cb..59f8ba170c 100644
--- a/rt/mq_receive.c
+++ b/rt/mq_receive.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <mqueue.h>
diff --git a/rt/mq_send.c b/rt/mq_send.c
index ee62e30f1e..6740ba8521 100644
--- a/rt/mq_send.c
+++ b/rt/mq_send.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <mqueue.h>
diff --git a/rt/mq_setattr.c b/rt/mq_setattr.c
index 25d4759ec8..79d7feaa0c 100644
--- a/rt/mq_setattr.c
+++ b/rt/mq_setattr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <mqueue.h>
diff --git a/rt/mq_timedreceive.c b/rt/mq_timedreceive.c
index 2c246f0a1d..5fc08eac6a 100644
--- a/rt/mq_timedreceive.c
+++ b/rt/mq_timedreceive.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <mqueue.h>
diff --git a/rt/mq_timedsend.c b/rt/mq_timedsend.c
index 74779dc9e5..d0c7e96481 100644
--- a/rt/mq_timedsend.c
+++ b/rt/mq_timedsend.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <mqueue.h>
diff --git a/rt/mq_unlink.c b/rt/mq_unlink.c
index 11031449e9..851be883c3 100644
--- a/rt/mq_unlink.c
+++ b/rt/mq_unlink.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <mqueue.h>
diff --git a/rt/mqueue.h b/rt/mqueue.h
index 5f354b4d76..5296e889bb 100644
--- a/rt/mqueue.h
+++ b/rt/mqueue.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MQUEUE_H
#define _MQUEUE_H 1
diff --git a/rt/shm_open.c b/rt/shm_open.c
index 777f0469a4..fb8af93565 100644
--- a/rt/shm_open.c
+++ b/rt/shm_open.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/mman.h>
diff --git a/rt/shm_unlink.c b/rt/shm_unlink.c
index 96a210b9d0..7e1de05228 100644
--- a/rt/shm_unlink.c
+++ b/rt/shm_unlink.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/mman.h>
diff --git a/rt/timer_create.c b/rt/timer_create.c
index 19aae41651..92555d6977 100644
--- a/rt/timer_create.c
+++ b/rt/timer_create.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <time.h>
diff --git a/rt/timer_delete.c b/rt/timer_delete.c
index ff7a60155e..c14d205d0e 100644
--- a/rt/timer_delete.c
+++ b/rt/timer_delete.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <time.h>
diff --git a/rt/timer_getoverr.c b/rt/timer_getoverr.c
index 7f38e661fd..f841d8507e 100644
--- a/rt/timer_getoverr.c
+++ b/rt/timer_getoverr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <time.h>
diff --git a/rt/timer_gettime.c b/rt/timer_gettime.c
index 16a2ec7b16..26734d1786 100644
--- a/rt/timer_gettime.c
+++ b/rt/timer_gettime.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <time.h>
diff --git a/rt/timer_settime.c b/rt/timer_settime.c
index d27c753e96..94f9e8dbb7 100644
--- a/rt/timer_settime.c
+++ b/rt/timer_settime.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <time.h>
diff --git a/rt/tst-aio.c b/rt/tst-aio.c
index f3b51d2183..397e9607d6 100644
--- a/rt/tst-aio.c
+++ b/rt/tst-aio.c
@@ -1,5 +1,5 @@
/* Tests for AIO in librt.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <aio.h>
#include <errno.h>
@@ -34,9 +34,6 @@ extern int do_test (int argc, char *argv[]);
/* We have a preparation function. */
#define PREPARE do_prepare
-/* We might need a bit longer timeout. */
-#define TIMEOUT 20 /* sec */
-
/* This defines the `main' function and some more. */
#include <test-skeleton.c>
diff --git a/rt/tst-aio10.c b/rt/tst-aio10.c
index 6e8f7b78c0..ebd0193b3c 100644
--- a/rt/tst-aio10.c
+++ b/rt/tst-aio10.c
@@ -115,5 +115,4 @@ do_test (void)
}
#define TEST_FUNCTION do_test ()
-#define TIMEOUT 5
#include "../test-skeleton.c"
diff --git a/rt/tst-aio2.c b/rt/tst-aio2.c
index 1d926431c8..1ba229fb3e 100644
--- a/rt/tst-aio2.c
+++ b/rt/tst-aio2.c
@@ -1,5 +1,5 @@
/* Test for notification mechanism in lio_listio.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <aio.h>
#include <signal.h>
diff --git a/rt/tst-aio3.c b/rt/tst-aio3.c
index ca2e6879ad..534248afbf 100644
--- a/rt/tst-aio3.c
+++ b/rt/tst-aio3.c
@@ -1,5 +1,5 @@
/* Test for notification mechanism in lio_listio.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <aio.h>
#include <signal.h>
diff --git a/rt/tst-aio4.c b/rt/tst-aio4.c
index a86496b432..433edba87a 100644
--- a/rt/tst-aio4.c
+++ b/rt/tst-aio4.c
@@ -1,5 +1,5 @@
/* Test for completion signal handling.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <aio.h>
#include <signal.h>
@@ -23,9 +23,6 @@
#include <unistd.h>
#include <errno.h>
-/* We might need a bit longer timeout. */
-#define TIMEOUT 10 /* sec */
-
int my_signo;
volatile sig_atomic_t flag;
diff --git a/rt/tst-aio5.c b/rt/tst-aio5.c
index 20182a205c..c207cc5b8f 100644
--- a/rt/tst-aio5.c
+++ b/rt/tst-aio5.c
@@ -1,5 +1,5 @@
/* Test for completion thread handling.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <aio.h>
#include <signal.h>
@@ -23,9 +23,6 @@
#include <unistd.h>
#include <errno.h>
-/* We might need a bit longer timeout. */
-#define TIMEOUT 10 /* sec */
-
#define MY_SIVAL 27
volatile sig_atomic_t flag;
diff --git a/rt/tst-aio6.c b/rt/tst-aio6.c
index 886b2d81c3..e71b126496 100644
--- a/rt/tst-aio6.c
+++ b/rt/tst-aio6.c
@@ -1,5 +1,5 @@
/* Test for timeout handling.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <aio.h>
#include <errno.h>
@@ -23,10 +23,6 @@
#include <sys/time.h>
-/* We expect to wait for 3 seconds so we have to increase the timeout. */
-#define TIMEOUT 10 /* sec */
-
-
#define TEST_FUNCTION do_test ()
static int
do_test (void)
diff --git a/rt/tst-aio64.c b/rt/tst-aio64.c
index f572fad1dc..ca37a7aa07 100644
--- a/rt/tst-aio64.c
+++ b/rt/tst-aio64.c
@@ -1,5 +1,5 @@
/* Tests for 64bit AIO in librt.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _LARGEFILE_SOURCE 1
#include <aio.h>
@@ -35,9 +35,6 @@ extern int do_test (int argc, char *argv[]);
/* We have a preparation function. */
#define PREPARE do_prepare
-/* We might need a bit longer timeout. */
-#define TIMEOUT 20 /* sec */
-
/* This defines the `main' function and some more. */
#include <test-skeleton.c>
diff --git a/rt/tst-aio7.c b/rt/tst-aio7.c
index e0df6b0aac..f1a0eae53b 100644
--- a/rt/tst-aio7.c
+++ b/rt/tst-aio7.c
@@ -1,5 +1,5 @@
/* Test for AIO POSIX compliance.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <aio.h>
#include <error.h>
@@ -25,10 +25,6 @@
#include <unistd.h>
-/* We might wait for 3 seconds, so increase timeout to 10 seconds. */
-#define TIMEOUT 10
-
-
#define TEST_FUNCTION do_test ()
static int
do_test (void)
diff --git a/rt/tst-aio9.c b/rt/tst-aio9.c
index eab4f6859a..c13d9f7e72 100644
--- a/rt/tst-aio9.c
+++ b/rt/tst-aio9.c
@@ -120,5 +120,4 @@ do_test (void)
}
#define TEST_FUNCTION do_test ()
-#define TIMEOUT 5
#include "../test-skeleton.c"
diff --git a/rt/tst-cpuclock2.c b/rt/tst-cpuclock2.c
index f57cfb4a0c..663a37789c 100644
--- a/rt/tst-cpuclock2.c
+++ b/rt/tst-cpuclock2.c
@@ -1,5 +1,5 @@
/* Test program for process and thread CPU clocks.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <stdint.h>
@@ -330,7 +330,6 @@ do_test (void)
return result;
}
-# define TIMEOUT 8
# define TEST_FUNCTION do_test ()
#endif
diff --git a/rt/tst-mqueue.h b/rt/tst-mqueue.h
index 6e84985a8a..3743e10974 100644
--- a/rt/tst-mqueue.h
+++ b/rt/tst-mqueue.h
@@ -1,5 +1,5 @@
/* Common code for message queue passing tests.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <mqueue.h>
#include <search.h>
diff --git a/rt/tst-mqueue1.c b/rt/tst-mqueue1.c
index 5138d95e19..64eb34b2c9 100644
--- a/rt/tst-mqueue1.c
+++ b/rt/tst-mqueue1.c
@@ -1,5 +1,5 @@
/* Test message queue passing.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/rt/tst-mqueue2.c b/rt/tst-mqueue2.c
index bc15e2907f..4767d8d28b 100644
--- a/rt/tst-mqueue2.c
+++ b/rt/tst-mqueue2.c
@@ -1,5 +1,5 @@
/* Test message queue passing.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
@@ -35,7 +35,6 @@ alrm_handler (int sig)
{
}
-#define TIMEOUT 10
#define TEST_FUNCTION do_test ()
static int
do_test (void)
diff --git a/rt/tst-mqueue3.c b/rt/tst-mqueue3.c
index 314525707b..0ed4377b14 100644
--- a/rt/tst-mqueue3.c
+++ b/rt/tst-mqueue3.c
@@ -1,5 +1,5 @@
/* Test SIGEV_THREAD handling for POSIX message queues.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <mqueue.h>
diff --git a/rt/tst-mqueue4.c b/rt/tst-mqueue4.c
index 4910755643..ad267e73ec 100644
--- a/rt/tst-mqueue4.c
+++ b/rt/tst-mqueue4.c
@@ -1,5 +1,5 @@
/* Test message queue passing.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
@@ -32,7 +32,6 @@
#include <unistd.h>
#include "tst-mqueue.h"
-#define TIMEOUT 4
#define TEST_FUNCTION do_test ()
static int
do_test (void)
diff --git a/rt/tst-mqueue5.c b/rt/tst-mqueue5.c
index e96d7c3dc5..76e83a13b6 100644
--- a/rt/tst-mqueue5.c
+++ b/rt/tst-mqueue5.c
@@ -1,5 +1,5 @@
/* Test mq_notify.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
@@ -33,8 +33,6 @@
#include <unistd.h>
#include "tst-mqueue.h"
-#define TIMEOUT 3
-
#if _POSIX_THREADS && defined SIGRTMIN && defined SA_SIGINFO
# include <pthread.h>
diff --git a/rt/tst-mqueue6.c b/rt/tst-mqueue6.c
index cd11863bdf..2438dcfa9e 100644
--- a/rt/tst-mqueue6.c
+++ b/rt/tst-mqueue6.c
@@ -1,5 +1,5 @@
/* Test mq_notify.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/rt/tst-mqueue7.c b/rt/tst-mqueue7.c
index 9bbf2461b2..52cf51bb5c 100644
--- a/rt/tst-mqueue7.c
+++ b/rt/tst-mqueue7.c
@@ -1,5 +1,5 @@
/* Test all open message queues descriptors are closed during exec*.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/rt/tst-mqueue8.c b/rt/tst-mqueue8.c
index ae23ca9739..0042215960 100644
--- a/rt/tst-mqueue8.c
+++ b/rt/tst-mqueue8.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <mqueue.h>
diff --git a/rt/tst-mqueue9.c b/rt/tst-mqueue9.c
index 6b959242fd..4c5d89b482 100644
--- a/rt/tst-mqueue9.c
+++ b/rt/tst-mqueue9.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <mqueue.h>
diff --git a/rt/tst-shm-cancel.c b/rt/tst-shm-cancel.c
index acea6bfcad..26ddfd207c 100644
--- a/rt/tst-shm-cancel.c
+++ b/rt/tst-shm-cancel.c
@@ -1,5 +1,5 @@
/* Test for shm_open cancellation handling: BZ #18243.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <sys/mman.h>
diff --git a/rt/tst-shm.c b/rt/tst-shm.c
index 618147b8cc..6c85e01653 100644
--- a/rt/tst-shm.c
+++ b/rt/tst-shm.c
@@ -1,5 +1,5 @@
/* Test program for POSIX shm_* functions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <error.h>
diff --git a/rt/tst-timer.c b/rt/tst-timer.c
index 776e222427..2654982b9d 100644
--- a/rt/tst-timer.c
+++ b/rt/tst-timer.c
@@ -1,5 +1,5 @@
/* Tests for POSIX timer implementation. Dummy version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
diff --git a/rt/tst-timer4.c b/rt/tst-timer4.c
index 80e3051379..848cba5905 100644
--- a/rt/tst-timer4.c
+++ b/rt/tst-timer4.c
@@ -1,5 +1,5 @@
/* Tests for POSIX timer implementation.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 2004
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
@@ -178,7 +178,6 @@ check_ts (const char *name, const struct timespec *start,
return 0;
}
-#define TIMEOUT 15
#define TEST_FUNCTION do_test ()
static int
do_test (void)
diff --git a/scripts/abilist.awk b/scripts/abilist.awk
index bad7c3807e..a43400d5b4 100644
--- a/scripts/abilist.awk
+++ b/scripts/abilist.awk
@@ -39,11 +39,14 @@ $2 == "l" { next }
# If the target uses ST_OTHER, it will be output before the symbol name.
$2 == "g" || $2 == "w" && (NF == 7 || NF == 8) {
- weak = $2;
type = $3;
size = $5;
sub(/^0*/, "", size);
- size = " 0x" size;
+ if (size == "") {
+ size = " 0x0";
+ } else {
+ size = " 0x" size;
+ }
version = $6;
symbol = $NF;
gsub(/[()]/, "", version);
@@ -55,7 +58,7 @@ $2 == "g" || $2 == "w" && (NF == 7 || NF == 8) {
if (version == "GLIBC_PRIVATE") next;
desc = "";
- if (type == "D" && $4 == ".tbss") {
+ if (type == "D" && ($4 == ".tbss" || $4 == ".tdata")) {
type = "T";
}
else if (type == "D" && $4 == ".opd") {
@@ -74,6 +77,9 @@ $2 == "g" || $2 == "w" && (NF == 7 || NF == 8) {
else if ($4 == "*ABS*") {
next;
}
+ else if (type == "D") {
+ # Accept unchanged.
+ }
else if (type == "DO") {
type = "D";
}
@@ -90,14 +96,10 @@ $2 == "g" || $2 == "w" && (NF == 7 || NF == 8) {
size = "";
}
else {
- desc = symbol " " version " " weak " ? " type " " $4 " " $5;
- }
- if (size == " 0x") {
- desc = symbol " " version " " weak " ? " type " " $4 " " $5;
+ print "ERROR: Unable to handle this type of symbol:", $0
+ exit 1
}
- # Disabled -- weakness should not matter to shared library ABIs any more.
- #if (weak == "w") type = tolower(type);
if (desc == "")
desc = symbol " " type size;
@@ -113,7 +115,8 @@ $2 == "g" || $2 == "w" && (NF == 7 || NF == 8) {
NF == 0 || /DYNAMIC SYMBOL TABLE/ || /file format/ { next }
{
- print "Don't grok this line:", $0
+ print "ERROR: Unable to interpret this line:", $0
+ exit 1
}
function emit(end) {
diff --git a/scripts/backport-support.sh b/scripts/backport-support.sh
index 4057e42d3c..57af3d98db 100644
--- a/scripts/backport-support.sh
+++ b/scripts/backport-support.sh
@@ -1,6 +1,6 @@
#!/bin/bash
# Create a patch which backports the support/ subdirectory.
-# Copyright (C) 2017-2018 Free Software Foundation, Inc.
+# Copyright (C) 2017-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
@@ -15,7 +15,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
# This script does not backport the Makefile tweaks outside the
# support/ directory (which need to be backported separately), or the
diff --git a/scripts/build-many-glibcs.py b/scripts/build-many-glibcs.py
index 8ef463f57a..193d49727b 100755
--- a/scripts/build-many-glibcs.py
+++ b/scripts/build-many-glibcs.py
@@ -1,6 +1,6 @@
#!/usr/bin/python3
# Build many configurations of glibc.
-# Copyright (C) 2016-2018 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
@@ -15,7 +15,7 @@
#
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
"""Build many configurations of glibc.
@@ -50,17 +50,6 @@ import time
import urllib.request
try:
- os.cpu_count
-except:
- import multiprocessing
- os.cpu_count = lambda: multiprocessing.cpu_count()
-
-try:
- re.fullmatch
-except:
- re.fullmatch = lambda p,s,f=0: re.match(p+"\\Z",s,f)
-
-try:
subprocess.run
except:
class _CompletedProcess:
@@ -91,13 +80,14 @@ class Context(object):
"""The global state associated with builds in a given directory."""
def __init__(self, topdir, parallelism, keep, replace_sources, strip,
- action):
+ full_gcc, action):
"""Initialize the context."""
self.topdir = topdir
self.parallelism = parallelism
self.keep = keep
self.replace_sources = replace_sources
self.strip = strip
+ self.full_gcc = full_gcc
self.srcdir = os.path.join(topdir, 'src')
self.versions_json = os.path.join(self.srcdir, 'versions.json')
self.build_state_json = os.path.join(topdir, 'build-state.json')
@@ -168,7 +158,9 @@ class Context(object):
self.add_config(arch='alpha',
os_name='linux-gnu')
self.add_config(arch='arm',
- os_name='linux-gnueabi')
+ os_name='linux-gnueabi',
+ extra_glibcs=[{'variant': 'v4t',
+ 'ccopts': '-march=armv4t'}])
self.add_config(arch='armeb',
os_name='linux-gnueabi')
self.add_config(arch='armeb',
@@ -191,6 +183,13 @@ class Context(object):
variant='be8',
gcc_cfg=['--with-float=hard', '--with-arch=armv7-a',
'--with-fpu=vfpv3'])
+ self.add_config(arch='csky',
+ os_name='linux-gnuabiv2',
+ variant='soft',
+ gcc_cfg=['--disable-multilib'])
+ self.add_config(arch='csky',
+ os_name='linux-gnuabiv2',
+ gcc_cfg=['--with-float=hard', '--disable-multilib'])
self.add_config(arch='hppa',
os_name='linux-gnu')
self.add_config(arch='i686',
@@ -302,6 +301,17 @@ class Context(object):
'ccopts': '-mabi=32'},
{'variant': 'n64-nan2008-soft',
'ccopts': '-mabi=64'}])
+ self.add_config(arch='mipsisa64r6el',
+ os_name='linux-gnu',
+ gcc_cfg=['--with-mips-plt', '--with-nan=2008',
+ '--with-arch-64=mips64r6',
+ '--with-arch-32=mips32r6',
+ '--with-float=hard'],
+ glibcs=[{'variant': 'n32'},
+ {'arch': 'mipsisa32r6el',
+ 'ccopts': '-mabi=32'},
+ {'variant': 'n64',
+ 'ccopts': '-mabi=64'}])
self.add_config(arch='nios2',
os_name='linux-gnu')
self.add_config(arch='powerpc',
@@ -321,15 +331,6 @@ class Context(object):
self.add_config(arch='powerpc64le',
os_name='linux-gnu',
gcc_cfg=['--disable-multilib', '--enable-secureplt'])
- self.add_config(arch='powerpc',
- os_name='linux-gnuspe',
- gcc_cfg=['--disable-multilib', '--enable-secureplt',
- '--enable-e500-double', '--enable-obsolete'])
- self.add_config(arch='powerpc',
- os_name='linux-gnuspe',
- variant='e500v1',
- gcc_cfg=['--disable-multilib', '--enable-secureplt',
- '--enable-obsolete'])
self.add_config(arch='riscv64',
os_name='linux-gnu',
variant='rv64imac-lp64',
@@ -369,12 +370,15 @@ class Context(object):
os_name='linux-gnu',
glibcs=[{},
{'arch': 'sparcv9',
- 'ccopts': '-m32 -mlong-double-128'}],
- extra_glibcs=[{'variant': 'disable-multi-arch',
+ 'ccopts': '-m32 -mlong-double-128 -mcpu=v9'}],
+ extra_glibcs=[{'variant': 'leon3',
+ 'arch' : 'sparcv8',
+ 'ccopts' : '-m32 -mlong-double-128 -mcpu=leon3'},
+ {'variant': 'disable-multi-arch',
'cfg': ['--disable-multi-arch']},
{'variant': 'disable-multi-arch',
'arch': 'sparcv9',
- 'ccopts': '-m32 -mlong-double-128',
+ 'ccopts': '-m32 -mlong-double-128 -mcpu=v9',
'cfg': ['--disable-multi-arch']}])
self.add_config(arch='x86_64',
os_name='linux-gnu',
@@ -384,6 +388,9 @@ class Context(object):
{'arch': 'i686', 'ccopts': '-m32 -march=i686'}],
extra_glibcs=[{'variant': 'disable-multi-arch',
'cfg': ['--disable-multi-arch']},
+ {'variant': 'enable-obsolete',
+ 'cfg': ['--enable-obsolete-rpc',
+ '--enable-obsolete-nsl']},
{'variant': 'static-pie',
'cfg': ['--enable-static-pie']},
{'variant': 'x32-static-pie',
@@ -397,6 +404,11 @@ class Context(object):
'arch': 'i686',
'ccopts': '-m32 -march=i686',
'cfg': ['--disable-multi-arch']},
+ {'variant': 'enable-obsolete',
+ 'arch': 'i686',
+ 'ccopts': '-m32 -march=i686',
+ 'cfg': ['--enable-obsolete-rpc',
+ '--enable-obsolete-nsl']},
{'arch': 'i486',
'ccopts': '-m32 -march=i486'},
{'arch': 'i586',
@@ -705,13 +717,13 @@ class Context(object):
def checkout(self, versions):
"""Check out the desired component versions."""
- default_versions = {'binutils': 'vcs-2.31',
- 'gcc': 'vcs-8',
+ default_versions = {'binutils': 'vcs-2.33',
+ 'gcc': 'vcs-9',
'glibc': 'vcs-mainline',
'gmp': '6.1.2',
- 'linux': '4.17',
+ 'linux': '5.4',
'mpc': '1.1.0',
- 'mpfr': '4.0.1',
+ 'mpfr': '4.0.2',
'mig': 'vcs-mainline',
'gnumach': 'vcs-mainline',
'hurd': 'vcs-mainline'}
@@ -843,6 +855,15 @@ class Context(object):
# Ensure that builds do not try to regenerate generated files
# in the source tree.
srcdir = self.component_srcdir('glibc')
+ # These files have Makefile dependencies to regenerate them in
+ # the source tree that may be active during a normal build.
+ # Some other files have such dependencies but do not need to
+ # be touched because nothing in a build depends on the files
+ # in question.
+ for f in ('sysdeps/gnu/errlist.c',
+ 'sysdeps/mach/hurd/bits/errno.h'):
+ to_touch = os.path.join(srcdir, f)
+ subprocess.run(['touch', '-c', to_touch], check=True)
for dirpath, dirnames, filenames in os.walk(srcdir):
for f in filenames:
if (f == 'configure' or
@@ -871,7 +892,7 @@ class Context(object):
url_map = {'binutils': 'https://ftp.gnu.org/gnu/binutils/binutils-%(version)s.tar.bz2',
'gcc': 'https://ftp.gnu.org/gnu/gcc/gcc-%(version)s/gcc-%(version)s.tar.gz',
'gmp': 'https://ftp.gnu.org/gnu/gmp/gmp-%(version)s.tar.xz',
- 'linux': 'https://www.kernel.org/pub/linux/kernel/v4.x/linux-%(version)s.tar.xz',
+ 'linux': 'https://www.kernel.org/pub/linux/kernel/v%(major)s.x/linux-%(version)s.tar.xz',
'mpc': 'https://ftp.gnu.org/gnu/mpc/mpc-%(version)s.tar.gz',
'mpfr': 'https://ftp.gnu.org/gnu/mpfr/mpfr-%(version)s.tar.xz',
'mig': 'https://ftp.gnu.org/gnu/mig/mig-%(version)s.tar.bz2',
@@ -880,7 +901,8 @@ class Context(object):
if component not in url_map:
print('error: component %s coming from tarball' % component)
exit(1)
- url = url_map[component] % {'version': version}
+ version_major = version.split('.')[0]
+ url = url_map[component] % {'version': version, 'major': version_major}
filename = os.path.join(self.srcdir, url.split('/')[-1])
response = urllib.request.urlopen(url)
data = response.read()
@@ -1114,6 +1136,8 @@ class Context(object):
"""Run a copy of this script with given options."""
cmd = [sys.executable, sys.argv[0], '--keep=none',
'-j%d' % self.parallelism]
+ if self.full_gcc:
+ cmd.append('--full-gcc')
cmd.extend(opts)
cmd.extend([self.topdir, action])
sys.stdout.flush()
@@ -1247,6 +1271,7 @@ class Config(object):
arch_map = {'aarch64': 'arm64',
'alpha': 'alpha',
'arm': 'arm',
+ 'csky': 'csky',
'hppa': 'parisc',
'i486': 'x86',
'i586': 'x86',
@@ -1320,15 +1345,13 @@ class Config(object):
def build_gcc(self, cmdlist, bootstrap):
"""Build GCC."""
- # libsanitizer commonly breaks because of glibc header
- # changes, or on unusual targets. libssp is of little
- # relevance with glibc's own stack checking support.
- # libcilkrts does not support GNU/Hurd (and has been removed
- # in GCC 8, so --disable-libcilkrts can be removed once glibc
- # no longer supports building with older GCC versions).
+ # libssp is of little relevance with glibc's own stack
+ # checking support. libcilkrts does not support GNU/Hurd (and
+ # has been removed in GCC 8, so --disable-libcilkrts can be
+ # removed once glibc no longer supports building with older
+ # GCC versions).
cfg_opts = list(self.gcc_cfg)
- cfg_opts += ['--disable-libsanitizer', '--disable-libssp',
- '--disable-libcilkrts']
+ cfg_opts += ['--disable-libssp', '--disable-libcilkrts']
host_libs = self.ctx.host_libraries_installdir
cfg_opts += ['--with-gmp=%s' % host_libs,
'--with-mpfr=%s' % host_libs,
@@ -1351,14 +1374,20 @@ class Config(object):
'--disable-libitm',
'--disable-libmpx',
'--disable-libquadmath',
+ '--disable-libsanitizer',
'--without-headers', '--with-newlib',
'--with-glibc-version=%s' % self.ctx.glibc_version
]
cfg_opts += self.first_gcc_cfg
else:
tool_build = 'gcc'
- cfg_opts += ['--enable-languages=c,c++', '--enable-shared',
- '--enable-threads']
+ # libsanitizer commonly breaks because of glibc header
+ # changes, or on unusual targets.
+ if not self.ctx.full_gcc:
+ cfg_opts += ['--disable-libsanitizer']
+ langs = 'all' if self.ctx.full_gcc else 'c,c++'
+ cfg_opts += ['--enable-languages=%s' % langs,
+ '--enable-shared', '--enable-threads']
self.build_cross_tool(cmdlist, 'gcc', tool_build, cfg_opts)
@@ -1422,25 +1451,14 @@ class Glibc(object):
self.compiler.name, 'glibc',
self.name)
installdir = self.compiler.sysroot
- srcdir_copy = self.ctx.component_builddir('compilers',
- self.compiler.name,
- 'glibc-src',
- self.name)
else:
builddir = self.ctx.component_builddir('glibcs', self.name,
'glibc')
installdir = self.ctx.glibc_installdir(self.name)
- srcdir_copy = self.ctx.component_builddir('glibcs', self.name,
- 'glibc-src')
cmdlist.create_use_dir(builddir)
- # glibc builds write into the source directory, and even if
- # not intentionally there is a risk of bugs that involve
- # writing into the working directory. To avoid possible
- # concurrency issues, copy the source directory.
- cmdlist.create_copy_dir(srcdir, srcdir_copy)
use_usr = self.os != 'gnu'
prefix = '/usr' if use_usr else ''
- cfg_cmd = [os.path.join(srcdir_copy, 'configure'),
+ cfg_cmd = [os.path.join(srcdir, 'configure'),
'--prefix=%s' % prefix,
'--enable-profile',
'--build=%s' % self.ctx.build_triplet,
@@ -1479,7 +1497,6 @@ class Glibc(object):
cmdlist.add_command('check', ['make', 'check'])
cmdlist.add_command('save-logs', [self.ctx.save_logs],
always_run=True)
- cmdlist.cleanup_dir('cleanup-src', srcdir_copy)
cmdlist.cleanup_dir()
@@ -1564,14 +1581,6 @@ class CommandList(object):
self.add_command_dir('mkdir', None, ['mkdir', '-p', dir])
self.use_dir(dir)
- def create_copy_dir(self, src, dest):
- """Remove a directory and recreate it as a copy from the given
- source."""
- self.add_command_dir('copy-rm', None, ['rm', '-rf', dest])
- parent = os.path.dirname(dest)
- self.add_command_dir('copy-mkdir', None, ['mkdir', '-p', parent])
- self.add_command_dir('copy', None, ['cp', '-a', src, dest])
-
def add_command_dir(self, desc, dir, command, always_run=False):
"""Add a command to run in a given directory."""
cmd = Command(self.desc_txt(desc), len(self.cmdlist), dir, self.path,
@@ -1650,6 +1659,8 @@ def get_parser():
'with the wrong version of a component')
parser.add_argument('--strip', action='store_true',
help='Strip installed glibc libraries')
+ parser.add_argument('--full-gcc', action='store_true',
+ help='Build GCC with all languages and libsanitizer')
parser.add_argument('topdir',
help='Toplevel working directory')
parser.add_argument('action',
@@ -1668,7 +1679,7 @@ def main(argv):
opts = parser.parse_args(argv)
topdir = os.path.abspath(opts.topdir)
ctx = Context(topdir, opts.parallelism, opts.keep, opts.replace_sources,
- opts.strip, opts.action)
+ opts.strip, opts.full_gcc, opts.action)
ctx.run_builds(opts.action, opts.configs)
diff --git a/scripts/check-c++-types.sh b/scripts/check-c++-types.sh
index d02e77d23b..782017c848 100755
--- a/scripts/check-c++-types.sh
+++ b/scripts/check-c++-types.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright (C) 2003-2018 Free Software Foundation, Inc.
+# Copyright (C) 2003-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
@@ -14,7 +14,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
# This script creates a list of data types where each type is followed
# by the C++ mangled name for that type. That list is then compared
diff --git a/scripts/check-initfini.awk b/scripts/check-initfini.awk
index 19514a98ad..1a0457eb56 100644
--- a/scripts/check-initfini.awk
+++ b/scripts/check-initfini.awk
@@ -1,4 +1,4 @@
-# Copyright (C) 2018 Free Software Foundation, Inc.
+# Copyright (C) 2018-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
# This awk script expects to get command-line files that are each
# the output of 'readelf -W --dyn-syms' on a single shared object.
diff --git a/scripts/check-installed-headers.sh b/scripts/check-installed-headers.sh
index 4a062e9cda..a204ee2e70 100644
--- a/scripts/check-installed-headers.sh
+++ b/scripts/check-installed-headers.sh
@@ -1,5 +1,5 @@
#! /bin/sh
-# Copyright (C) 2016-2018 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
@@ -14,13 +14,11 @@
#
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
-# Check installed headers for cleanliness. For each header, confirm
-# that it's possible to compile a file that includes that header and
-# does nothing else, in several different compilation modes. Also,
-# scan the header for a set of obsolete typedefs that should no longer
-# appear.
+# For each installed header, confirm that it's possible to compile a
+# file that includes that header and does nothing else, in several
+# different compilation modes.
# These compilation switches assume GCC or compatible, which is probably
# fine since we also assume that when _building_ glibc.
@@ -31,13 +29,6 @@ cxx_modes="-std=c++98 -std=gnu++98 -std=c++11 -std=gnu++11"
# These are probably the most commonly used three.
lib_modes="-D_DEFAULT_SOURCE=1 -D_GNU_SOURCE=1 -D_XOPEN_SOURCE=700"
-# sys/types.h+bits/types.h have to define the obsolete types.
-# rpc(svc)/* have the obsolete types too deeply embedded in their API
-# to remove.
-skip_obsolete_type_check='*/sys/types.h|*/bits/types.h|*/rpc/*|*/rpcsvc/*'
-obsolete_type_re=\
-'\<((__)?(quad_t|u(short|int|long|_(char|short|int([0-9]+_t)?|long|quad_t))))\>'
-
if [ $# -lt 3 ]; then
echo "usage: $0 c|c++ \"compile command\" header header header..." >&2
exit 2
@@ -46,14 +37,10 @@ case "$1" in
(c)
lang_modes="$c_modes"
cih_test_c=$(mktemp ${TMPDIR-/tmp}/cih_test_XXXXXX.c)
- already="$skip_obsolete_type_check"
;;
(c++)
lang_modes="$cxx_modes"
cih_test_c=$(mktemp ${TMPDIR-/tmp}/cih_test_XXXXXX.cc)
- # The obsolete-type check can be skipped for C++; it is
- # sufficient to do it for C.
- already="*"
;;
(*)
echo "usage: $0 c|c++ \"compile command\" header header header..." >&2
@@ -66,7 +53,6 @@ trap "rm -f '$cih_test_c'" 0
failed=0
is_x86_64=unknown
-is_x32=unknown
for header in "$@"; do
# Skip various headers for which this test gets a false failure.
case "$header" in
@@ -84,27 +70,14 @@ for header in "$@"; do
(sys/elf.h)
continue;;
- # sys/sysctl.h is unsupported for x32.
+ # Skip Fortran headers.
+ (finclude/*)
+ continue;;
+
+ # sys/sysctl.h produces a deprecation warning and therefore
+ # fails compilation with -Werror.
(sys/sysctl.h)
- case "$is_x32" in
- (yes) continue;;
- (no) ;;
- (unknown)
- cat >"$cih_test_c" <<EOF
-#if defined __x86_64__ && defined __ILP32__
-# error "is x32"
-#endif
-EOF
- if $cc_cmd -fsyntax-only "$cih_test_c" > /dev/null 2>&1
- then
- is_x32=no
- else
- is_x32=yes
- continue
- fi
- ;;
- esac
- ;;
+ continue;;
# sys/vm86.h is "unsupported on x86-64" and errors out on that target.
(sys/vm86.h)
@@ -151,22 +124,8 @@ $expanded_lib_mode
int avoid_empty_translation_unit;
EOF
if $cc_cmd -fsyntax-only $lang_mode "$cih_test_c" 2>&1
- then
- includes=$($cc_cmd -fsyntax-only -H $lang_mode \
- "$cih_test_c" 2>&1 | sed -ne 's/^[.][.]* //p')
- for h in $includes; do
- # Don't repeat work.
- eval 'case "$h" in ('"$already"') continue;; esac'
-
- if grep -qE "$obsolete_type_re" "$h"; then
- echo "*** Obsolete types detected:"
- grep -HE "$obsolete_type_re" "$h"
- failed=1
- fi
- already="$already|$h"
- done
- else
- failed=1
+ then :
+ else failed=1
fi
done
done
diff --git a/scripts/check-local-headers.sh b/scripts/check-local-headers.sh
index 0c45cc4079..960bf60df9 100755
--- a/scripts/check-local-headers.sh
+++ b/scripts/check-local-headers.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright (C) 2005-2018 Free Software Foundation, Inc.
+# Copyright (C) 2005-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
@@ -14,7 +14,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
includedir="$1"
objpfx="$2"
diff --git a/scripts/check-obsolete-constructs.py b/scripts/check-obsolete-constructs.py
new file mode 100755
index 0000000000..c1a522ee4d
--- /dev/null
+++ b/scripts/check-obsolete-constructs.py
@@ -0,0 +1,466 @@
+#! /usr/bin/python3
+# 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; if not, see
+# <https://www.gnu.org/licenses/>.
+
+"""Verifies that installed headers do not use any obsolete constructs:
+ * legacy BSD typedefs superseded by <stdint.h>:
+ ushort uint ulong u_char u_short u_int u_long u_intNN_t quad_t u_quad_t
+ (sys/types.h is allowed to _define_ these types, but not to use them
+ to define anything else).
+"""
+
+import argparse
+import collections
+import re
+import sys
+
+# Simplified lexical analyzer for C preprocessing tokens.
+# Does not implement trigraphs.
+# Does not implement backslash-newline in the middle of any lexical
+# item other than a string literal.
+# Does not implement universal-character-names in identifiers.
+# Treats prefixed strings (e.g. L"...") as two tokens (L and "...")
+# Accepts non-ASCII characters only within comments and strings.
+
+# Caution: The order of the outermost alternation matters.
+# STRING must be before BAD_STRING, CHARCONST before BAD_CHARCONST,
+# BLOCK_COMMENT before BAD_BLOCK_COM before PUNCTUATOR, and OTHER must
+# be last.
+# Caution: There should be no capturing groups other than the named
+# captures in the outermost alternation.
+
+# For reference, these are all of the C punctuators as of C11:
+# [ ] ( ) { } , ; ? ~
+# ! != * *= / /= ^ ^= = ==
+# # ##
+# % %= %> %: %:%:
+# & &= &&
+# | |= ||
+# + += ++
+# - -= -- ->
+# . ...
+# : :>
+# < <% <: << <<= <=
+# > >= >> >>=
+
+# The BAD_* tokens are not part of the official definition of pp-tokens;
+# they match unclosed strings, character constants, and block comments,
+# so that the regex engine doesn't have to backtrack all the way to the
+# beginning of a broken construct and then emit dozens of junk tokens.
+
+PP_TOKEN_RE_ = re.compile(r"""
+ (?P<STRING> \"(?:[^\"\\\r\n]|\\(?:[\r\n -~]|\r\n))*\")
+ |(?P<BAD_STRING> \"(?:[^\"\\\r\n]|\\[ -~])*)
+ |(?P<CHARCONST> \'(?:[^\'\\\r\n]|\\(?:[\r\n -~]|\r\n))*\')
+ |(?P<BAD_CHARCONST> \'(?:[^\'\\\r\n]|\\[ -~])*)
+ |(?P<BLOCK_COMMENT> /\*(?:\*(?!/)|[^*])*\*/)
+ |(?P<BAD_BLOCK_COM> /\*(?:\*(?!/)|[^*])*\*?)
+ |(?P<LINE_COMMENT> //[^\r\n]*)
+ |(?P<IDENT> [_a-zA-Z][_a-zA-Z0-9]*)
+ |(?P<PP_NUMBER> \.?[0-9](?:[0-9a-df-oq-zA-DF-OQ-Z_.]|[eEpP][+-]?)*)
+ |(?P<PUNCTUATOR>
+ [,;?~(){}\[\]]
+ | [!*/^=]=?
+ | \#\#?
+ | %(?:[=>]|:(?:%:)?)?
+ | &[=&]?
+ |\|[=|]?
+ |\+[=+]?
+ | -[=->]?
+ |\.(?:\.\.)?
+ | :>?
+ | <(?:[%:]|<(?:=|<=?)?)?
+ | >(?:=|>=?)?)
+ |(?P<ESCNL> \\(?:\r|\n|\r\n))
+ |(?P<WHITESPACE> [ \t\n\r\v\f]+)
+ |(?P<OTHER> .)
+""", re.DOTALL | re.VERBOSE)
+
+HEADER_NAME_RE_ = re.compile(r"""
+ < [^>\r\n]+ >
+ | " [^"\r\n]+ "
+""", re.DOTALL | re.VERBOSE)
+
+ENDLINE_RE_ = re.compile(r"""\r|\n|\r\n""")
+
+# based on the sample code in the Python re documentation
+Token_ = collections.namedtuple("Token", (
+ "kind", "text", "line", "column", "context"))
+Token_.__doc__ = """
+ One C preprocessing token, comment, or chunk of whitespace.
+ 'kind' identifies the token type, which will be one of:
+ STRING, CHARCONST, BLOCK_COMMENT, LINE_COMMENT, IDENT,
+ PP_NUMBER, PUNCTUATOR, ESCNL, WHITESPACE, HEADER_NAME,
+ or OTHER. The BAD_* alternatives in PP_TOKEN_RE_ are
+ handled within tokenize_c, below.
+
+ 'text' is the sequence of source characters making up the token;
+ no decoding whatsoever is performed.
+
+ 'line' and 'column' give the position of the first character of the
+ token within the source file. They are both 1-based.
+
+ 'context' indicates whether or not this token occurred within a
+ preprocessing directive; it will be None for running text,
+ '<null>' for the leading '#' of a directive line (because '#'
+ all by itself on a line is a "null directive"), or the name of
+ the directive for tokens within a directive line, starting with
+ the IDENT for the name itself.
+"""
+
+def tokenize_c(file_contents, reporter):
+ """Yield a series of Token objects, one for each preprocessing
+ token, comment, or chunk of whitespace within FILE_CONTENTS.
+ The REPORTER object is expected to have one method,
+ reporter.error(token, message), which will be called to
+ indicate a lexical error at the position of TOKEN.
+ If MESSAGE contains the four-character sequence '{!r}', that
+ is expected to be replaced by repr(token.text).
+ """
+
+ Token = Token_
+ PP_TOKEN_RE = PP_TOKEN_RE_
+ ENDLINE_RE = ENDLINE_RE_
+ HEADER_NAME_RE = HEADER_NAME_RE_
+
+ line_num = 1
+ line_start = 0
+ pos = 0
+ limit = len(file_contents)
+ directive = None
+ at_bol = True
+ while pos < limit:
+ if directive == "include":
+ mo = HEADER_NAME_RE.match(file_contents, pos)
+ if mo:
+ kind = "HEADER_NAME"
+ directive = "after_include"
+ else:
+ mo = PP_TOKEN_RE.match(file_contents, pos)
+ kind = mo.lastgroup
+ if kind != "WHITESPACE":
+ directive = "after_include"
+ else:
+ mo = PP_TOKEN_RE.match(file_contents, pos)
+ kind = mo.lastgroup
+
+ text = mo.group()
+ line = line_num
+ column = mo.start() - line_start
+ adj_line_start = 0
+ # only these kinds can contain a newline
+ if kind in ("WHITESPACE", "BLOCK_COMMENT", "LINE_COMMENT",
+ "STRING", "CHARCONST", "BAD_BLOCK_COM", "ESCNL"):
+ for tmo in ENDLINE_RE.finditer(text):
+ line_num += 1
+ adj_line_start = tmo.end()
+ if adj_line_start:
+ line_start = mo.start() + adj_line_start
+
+ # Track whether or not we are scanning a preprocessing directive.
+ if kind == "LINE_COMMENT" or (kind == "WHITESPACE" and adj_line_start):
+ at_bol = True
+ directive = None
+ else:
+ if kind == "PUNCTUATOR" and text == "#" and at_bol:
+ directive = "<null>"
+ elif kind == "IDENT" and directive == "<null>":
+ directive = text
+ at_bol = False
+
+ # Report ill-formed tokens and rewrite them as their well-formed
+ # equivalents, so downstream processing doesn't have to know about them.
+ # (Rewriting instead of discarding provides better error recovery.)
+ if kind == "BAD_BLOCK_COM":
+ reporter.error(Token("BAD_BLOCK_COM", "", line, column+1, ""),
+ "unclosed block comment")
+ text += "*/"
+ kind = "BLOCK_COMMENT"
+ elif kind == "BAD_STRING":
+ reporter.error(Token("BAD_STRING", "", line, column+1, ""),
+ "unclosed string")
+ text += "\""
+ kind = "STRING"
+ elif kind == "BAD_CHARCONST":
+ reporter.error(Token("BAD_CHARCONST", "", line, column+1, ""),
+ "unclosed char constant")
+ text += "'"
+ kind = "CHARCONST"
+
+ tok = Token(kind, text, line, column+1,
+ "include" if directive == "after_include" else directive)
+ # Do not complain about OTHER tokens inside macro definitions.
+ # $ and @ appear in macros defined by headers intended to be
+ # included from assembly language, e.g. sysdeps/mips/sys/asm.h.
+ if kind == "OTHER" and directive != "define":
+ self.error(tok, "stray {!r} in program")
+
+ yield tok
+ pos = mo.end()
+
+#
+# Base and generic classes for individual checks.
+#
+
+class ConstructChecker:
+ """Scan a stream of C preprocessing tokens and possibly report
+ problems with them. The REPORTER object passed to __init__ has
+ one method, reporter.error(token, message), which should be
+ called to indicate a problem detected at the position of TOKEN.
+ If MESSAGE contains the four-character sequence '{!r}' then that
+ will be replaced with a textual representation of TOKEN.
+ """
+ def __init__(self, reporter):
+ self.reporter = reporter
+
+ def examine(self, tok):
+ """Called once for each token in a header file.
+ Call self.reporter.error if a problem is detected.
+ """
+ raise NotImplementedError
+
+ def eof(self):
+ """Called once at the end of the stream. Subclasses need only
+ override this if it might have something to do."""
+ pass
+
+class NoCheck(ConstructChecker):
+ """Generic checker class which doesn't do anything. Substitute this
+ class for a real checker when a particular check should be skipped
+ for some file."""
+
+ def examine(self, tok):
+ pass
+
+#
+# Check for obsolete type names.
+#
+
+# The obsolete type names we're looking for:
+OBSOLETE_TYPE_RE_ = re.compile(r"""\A
+ (__)?
+ ( quad_t
+ | u(?: short | int | long
+ | _(?: char | short | int(?:[0-9]+_t)? | long | quad_t )))
+\Z""", re.VERBOSE)
+
+class ObsoleteNotAllowed(ConstructChecker):
+ """Don't allow any use of the obsolete typedefs."""
+ def examine(self, tok):
+ if OBSOLETE_TYPE_RE_.match(tok.text):
+ self.reporter.error(tok, "use of {!r}")
+
+class ObsoletePrivateDefinitionsAllowed(ConstructChecker):
+ """Allow definitions of the private versions of the
+ obsolete typedefs; that is, 'typedef [anything] __obsolete;'
+ """
+ def __init__(self, reporter):
+ super().__init__(reporter)
+ self.in_typedef = False
+ self.prev_token = None
+
+ def examine(self, tok):
+ # bits/types.h hides 'typedef' in a macro sometimes.
+ if (tok.kind == "IDENT"
+ and tok.text in ("typedef", "__STD_TYPE")
+ and tok.context is None):
+ self.in_typedef = True
+ elif tok.kind == "PUNCTUATOR" and tok.text == ";" and self.in_typedef:
+ self.in_typedef = False
+ if self.prev_token.kind == "IDENT":
+ m = OBSOLETE_TYPE_RE_.match(self.prev_token.text)
+ if m and m.group(1) != "__":
+ self.reporter.error(self.prev_token, "use of {!r}")
+ self.prev_token = None
+ else:
+ self._check_prev()
+
+ self.prev_token = tok
+
+ def eof(self):
+ self._check_prev()
+
+ def _check_prev(self):
+ if (self.prev_token is not None
+ and self.prev_token.kind == "IDENT"
+ and OBSOLETE_TYPE_RE_.match(self.prev_token.text)):
+ self.reporter.error(self.prev_token, "use of {!r}")
+
+class ObsoletePublicDefinitionsAllowed(ConstructChecker):
+ """Allow definitions of the public versions of the obsolete
+ typedefs. Only specific forms of definition are allowed:
+
+ typedef __obsolete obsolete; // identifiers must agree
+ typedef __uintN_t u_intN_t; // N must agree
+ typedef unsigned long int ulong;
+ typedef unsigned short int ushort;
+ typedef unsigned int uint;
+ """
+ def __init__(self, reporter):
+ super().__init__(reporter)
+ self.typedef_tokens = []
+
+ def examine(self, tok):
+ if tok.kind in ("WHITESPACE", "BLOCK_COMMENT",
+ "LINE_COMMENT", "NL", "ESCNL"):
+ pass
+
+ elif (tok.kind == "IDENT" and tok.text == "typedef"
+ and tok.context is None):
+ if self.typedef_tokens:
+ self.reporter.error(tok, "typedef inside typedef")
+ self._reset()
+ self.typedef_tokens.append(tok)
+
+ elif tok.kind == "PUNCTUATOR" and tok.text == ";":
+ self._finish()
+
+ elif self.typedef_tokens:
+ self.typedef_tokens.append(tok)
+
+ def eof(self):
+ self._reset()
+
+ def _reset(self):
+ while self.typedef_tokens:
+ tok = self.typedef_tokens.pop(0)
+ if tok.kind == "IDENT" and OBSOLETE_TYPE_RE_.match(tok.text):
+ self.reporter.error(tok, "use of {!r}")
+
+ def _finish(self):
+ if not self.typedef_tokens: return
+ if self.typedef_tokens[-1].kind == "IDENT":
+ m = OBSOLETE_TYPE_RE_.match(self.typedef_tokens[-1].text)
+ if m:
+ if self._permissible_public_definition(m):
+ self.typedef_tokens.clear()
+ self._reset()
+
+ def _permissible_public_definition(self, m):
+ if m.group(1) == "__": return False
+ name = m.group(2)
+ toks = self.typedef_tokens
+ ntok = len(toks)
+ if ntok == 3 and toks[1].kind == "IDENT":
+ defn = toks[1].text
+ n = OBSOLETE_TYPE_RE_.match(defn)
+ if n and n.group(1) == "__" and n.group(2) == name:
+ return True
+
+ if (name[:5] == "u_int" and name[-2:] == "_t"
+ and defn[:6] == "__uint" and defn[-2:] == "_t"
+ and name[5:-2] == defn[6:-2]):
+ return True
+
+ return False
+
+ if (name == "ulong" and ntok == 5
+ and toks[1].kind == "IDENT" and toks[1].text == "unsigned"
+ and toks[2].kind == "IDENT" and toks[2].text == "long"
+ and toks[3].kind == "IDENT" and toks[3].text == "int"):
+ return True
+
+ if (name == "ushort" and ntok == 5
+ and toks[1].kind == "IDENT" and toks[1].text == "unsigned"
+ and toks[2].kind == "IDENT" and toks[2].text == "short"
+ and toks[3].kind == "IDENT" and toks[3].text == "int"):
+ return True
+
+ if (name == "uint" and ntok == 4
+ and toks[1].kind == "IDENT" and toks[1].text == "unsigned"
+ and toks[2].kind == "IDENT" and toks[2].text == "int"):
+ return True
+
+ return False
+
+def ObsoleteTypedefChecker(reporter, fname):
+ """Factory: produce an instance of the appropriate
+ obsolete-typedef checker for FNAME."""
+
+ # The obsolete rpc/ and rpcsvc/ headers are allowed to use the
+ # obsolete types, because it would be more trouble than it's
+ # worth to remove them from headers that we intend to stop
+ # installing eventually anyway.
+ if (fname.startswith("rpc/")
+ or fname.startswith("rpcsvc/")
+ or "/rpc/" in fname
+ or "/rpcsvc/" in fname):
+ return NoCheck(reporter)
+
+ # bits/types.h is allowed to define the __-versions of the
+ # obsolete types.
+ if (fname == "bits/types.h"
+ or fname.endswith("/bits/types.h")):
+ return ObsoletePrivateDefinitionsAllowed(reporter)
+
+ # sys/types.h is allowed to use the __-versions of the
+ # obsolete types, but only to define the unprefixed versions.
+ if (fname == "sys/types.h"
+ or fname.endswith("/sys/types.h")):
+ return ObsoletePublicDefinitionsAllowed(reporter)
+
+ return ObsoleteNotAllowed(reporter)
+
+#
+# Master control
+#
+
+class HeaderChecker:
+ """Perform all of the checks on each header. This is also the
+ "reporter" object expected by tokenize_c and ConstructChecker.
+ """
+ def __init__(self):
+ self.fname = None
+ self.status = 0
+
+ def error(self, tok, message):
+ self.status = 1
+ if '{!r}' in message:
+ message = message.format(tok.text)
+ sys.stderr.write("{}:{}:{}: error: {}\n".format(
+ self.fname, tok.line, tok.column, message))
+
+ def check(self, fname):
+ self.fname = fname
+ try:
+ with open(fname, "rt", encoding="utf-8") as fp:
+ contents = fp.read()
+ except OSError as e:
+ sys.stderr.write("{}: {}\n".format(fname, e.strerror))
+ self.status = 1
+ return
+
+ typedef_checker = ObsoleteTypedefChecker(self, self.fname)
+
+ for tok in tokenize_c(contents, self):
+ typedef_checker.examine(tok)
+
+def main():
+ ap = argparse.ArgumentParser(description=__doc__)
+ ap.add_argument("headers", metavar="header", nargs="+",
+ help="one or more headers to scan for obsolete constructs")
+ args = ap.parse_args()
+
+ checker = HeaderChecker()
+ for fname in args.headers:
+ # Headers whose installed name begins with "finclude/" contain
+ # Fortran, not C, and this program should completely ignore them.
+ if not (fname.startswith("finclude/") or "/finclude/" in fname):
+ checker.check(fname)
+ sys.exit(checker.status)
+
+main()
diff --git a/scripts/check-wrapper-headers.py b/scripts/check-wrapper-headers.py
new file mode 100644
index 0000000000..84e0891e67
--- /dev/null
+++ b/scripts/check-wrapper-headers.py
@@ -0,0 +1,117 @@
+#!/usr/bin/python3
+# Check that a wrapper header exist for each non-sysdeps header.
+# 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; if not, see
+# <https://www.gnu.org/licenses/>.
+
+# Non-sysdeps subdirectories are not on the C include path, so
+# installed headers need to have a sysdep wrapper header.
+#
+# usage: scripts/checl-wrapper-headers.py \
+# --root=$(..) --subdir=$(subdir) $(headers) \
+# [--generated $(common-generated)]
+#
+# If invoked with --root=., the script is invoked from the root of the
+# source tree, so paths starting with "include/" are skipped (because
+# those do not require wrappers).
+
+import argparse
+import os
+import sys
+
+# Some subdirectories are only compiled for essentially one target.
+# In this case, we do not need to check for consistent wrapper
+# headers. Hurd uses a custom way to Hurd-specific inject wrapper
+# headers; see sysdeps/mach/Makefiles under "ifdef in-Makerules".
+SINGLE_TARGET_SUBDIRS = frozenset(("hurd", "mach"))
+
+# Name of the special subdirectory with the wrapper headers.
+INCLUDE = "include"
+
+def check_sysdeps_bits(args):
+ """Check that the directory sysdeps/generic/bits does not exist."""
+ bits = os.path.join(args.root, 'sysdeps', 'generic', 'bits')
+ if os.path.exists(bits):
+ # See commit c72565e5f1124c2dc72573e83406fe999e56091f and
+ # <https://sourceware.org/ml/libc-alpha/2016-05/msg00189.html>.
+ print('error: directory {} has been added, use bits/ instead'.format(
+ os.path.relpath(os.path.realpath(bits), args.root)))
+ return False
+ return True
+
+def check_headers_root(args):
+ """Check headers located at the top level of the source tree."""
+ good = True
+ generated = frozenset(args.generated)
+ for header in args.headers:
+ if not (header.startswith('bits/')
+ or os.path.exists(os.path.join(args.root, INCLUDE, header))
+ or header in generated):
+ print('error: top-level header {} must be in bits/ or {}/'
+ .format(header, INCLUDE))
+ good = False
+ return good
+
+def check_headers(args):
+ """Check headers located in a subdirectory."""
+ good = True
+ for header in args.headers:
+ # Whitelist .x files, which never have include wrappers.
+ if header.endswith(".x"):
+ continue
+
+ is_nonsysdep_header = os.access(header, os.R_OK)
+ if is_nonsysdep_header:
+ # Skip Fortran header files.
+ if header.startswith("finclude/"):
+ continue
+
+ include_path = os.path.join(args.root, INCLUDE, header)
+ if not os.access(include_path, os.R_OK):
+ print('error: missing wrapper header {} for {}'.format(
+ os.path.join(INCLUDE, header),
+ os.path.relpath(os.path.realpath(header), args.root)))
+ good = False
+ return good
+
+def main():
+ """The main entry point."""
+ parser = argparse.ArgumentParser(
+ description='Check for missing wrapper headers in include/.')
+ parser.add_argument('--root', metavar='DIRECTORY', required=True,
+ help='Path to the top-level of the source tree')
+ parser.add_argument('--subdir', metavar='DIRECTORY', required=True,
+ help='Name of the subdirectory being processed')
+ parser.add_argument('--generated', metavar='FILE', default="", nargs="*",
+ help="Generated files (which are ignored)")
+ parser.add_argument('headers', help='Header files to process', nargs='+')
+ args = parser.parse_args()
+
+ good = (args.root == '.') == (args.subdir == '.')
+ if not good:
+ print('error: --root/--subdir disagree about top-of-tree location')
+
+ if args.subdir == '.':
+ good &= check_sysdeps_bits(args)
+ good &= check_headers_root(args)
+ elif args.subdir not in SINGLE_TARGET_SUBDIRS:
+ good &= check_headers(args)
+
+ if not good:
+ sys.exit(1)
+
+if __name__ == '__main__':
+ main()
diff --git a/scripts/config.guess b/scripts/config.guess
index 588fe82a42..0f9b29c884 100755
--- a/scripts/config.guess
+++ b/scripts/config.guess
@@ -1,8 +1,8 @@
#! /bin/sh
# Attempt to guess a canonical system name.
-# Copyright 1992-2018 Free Software Foundation, Inc.
+# Copyright 1992-2019 Free Software Foundation, Inc.
-timestamp='2018-01-01'
+timestamp='2019-01-01'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -50,7 +50,7 @@ version="\
GNU config.guess ($timestamp)
Originally written by Per Bothner.
-Copyright 1992-2018 Free Software Foundation, Inc.
+Copyright 1992-2019 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."
@@ -84,8 +84,6 @@ if test $# != 0; then
exit 1
fi
-trap 'exit 1' 1 2 15
-
# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
# compiler to aid in system detection is discouraged as it requires
# temporary files to be created and, as you can see below, it is a
@@ -96,34 +94,38 @@ trap 'exit 1' 1 2 15
# Portable tmp directory creation inspired by the Autoconf team.
-set_cc_for_build='
-trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
-trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
-: ${TMPDIR=/tmp} ;
- { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
- { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
- { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
- { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
-dummy=$tmp/dummy ;
-tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
-case $CC_FOR_BUILD,$HOST_CC,$CC in
- ,,) echo "int x;" > $dummy.c ;
- for c in cc gcc c89 c99 ; do
- if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
- CC_FOR_BUILD="$c"; break ;
- fi ;
- done ;
- if test x"$CC_FOR_BUILD" = x ; then
- CC_FOR_BUILD=no_compiler_found ;
- fi
- ;;
- ,,*) CC_FOR_BUILD=$CC ;;
- ,*,*) CC_FOR_BUILD=$HOST_CC ;;
-esac ; set_cc_for_build= ;'
+tmp=
+# shellcheck disable=SC2172
+trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15
+
+set_cc_for_build() {
+ : "${TMPDIR=/tmp}"
+ # shellcheck disable=SC2039
+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } ||
+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } ||
+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; }
+ dummy=$tmp/dummy
+ case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in
+ ,,) echo "int x;" > "$dummy.c"
+ for driver in cc gcc c89 c99 ; do
+ if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
+ CC_FOR_BUILD="$driver"
+ break
+ fi
+ done
+ if test x"$CC_FOR_BUILD" = x ; then
+ CC_FOR_BUILD=no_compiler_found
+ fi
+ ;;
+ ,,*) CC_FOR_BUILD=$CC ;;
+ ,*,*) CC_FOR_BUILD=$HOST_CC ;;
+ esac
+}
# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
# (ghazi@noc.rutgers.edu 1994-08-24)
-if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+if test -f /.attbin/uname ; then
PATH=$PATH:/.attbin ; export PATH
fi
@@ -132,14 +134,14 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
-case "${UNAME_SYSTEM}" in
+case "$UNAME_SYSTEM" in
Linux|GNU|GNU/*)
# If the system lacks a compiler, then just pick glibc.
# We could probably try harder.
LIBC=gnu
- eval $set_cc_for_build
- cat <<-EOF > $dummy.c
+ set_cc_for_build
+ cat <<-EOF > "$dummy.c"
#include <features.h>
#if defined(__UCLIBC__)
LIBC=uclibc
@@ -149,13 +151,20 @@ Linux|GNU|GNU/*)
LIBC=gnu
#endif
EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
+ eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`"
+
+ # If ldd exists, use it to detect musl libc.
+ if command -v ldd >/dev/null && \
+ ldd --version 2>&1 | grep -q ^musl
+ then
+ LIBC=musl
+ fi
;;
esac
# Note: order is significant - the case branches are not exclusive.
-case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
*:NetBSD:*:*)
# NetBSD (nbsd) targets should (where applicable) match one or
# more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
@@ -169,30 +178,30 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# portion of the name. We always set it to "unknown".
sysctl="sysctl -n hw.machine_arch"
UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
- /sbin/$sysctl 2>/dev/null || \
- /usr/sbin/$sysctl 2>/dev/null || \
+ "/sbin/$sysctl" 2>/dev/null || \
+ "/usr/sbin/$sysctl" 2>/dev/null || \
echo unknown)`
- case "${UNAME_MACHINE_ARCH}" in
+ case "$UNAME_MACHINE_ARCH" in
armeb) machine=armeb-unknown ;;
arm*) machine=arm-unknown ;;
sh3el) machine=shl-unknown ;;
sh3eb) machine=sh-unknown ;;
sh5el) machine=sh5le-unknown ;;
earmv*)
- arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
- endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'`
- machine=${arch}${endian}-unknown
+ arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
+ endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'`
+ machine="${arch}${endian}"-unknown
;;
- *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+ *) machine="$UNAME_MACHINE_ARCH"-unknown ;;
esac
# The Operating System including object format, if it has switched
# to ELF recently (or will in the future) and ABI.
- case "${UNAME_MACHINE_ARCH}" in
+ case "$UNAME_MACHINE_ARCH" in
earm*)
os=netbsdelf
;;
arm*|i386|m68k|ns32k|sh3*|sparc|vax)
- eval $set_cc_for_build
+ set_cc_for_build
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ELF__
then
@@ -208,10 +217,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
;;
esac
# Determine ABI tags.
- case "${UNAME_MACHINE_ARCH}" in
+ case "$UNAME_MACHINE_ARCH" in
earm*)
expr='s/^earmv[0-9]/-eabi/;s/eb$//'
- abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"`
+ abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"`
;;
esac
# The OS release
@@ -219,51 +228,51 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# thus, need a distinct triplet. However, they do not need
# kernel version information, so it can be replaced with a
# suitable tag, in the style of linux-gnu.
- case "${UNAME_VERSION}" in
+ case "$UNAME_VERSION" in
Debian*)
release='-gnu'
;;
*)
- release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2`
+ release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2`
;;
esac
# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
# contains redundant information, the shorter form:
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
- echo "${machine}-${os}${release}${abi}"
+ echo "$machine-${os}${release}${abi-}"
exit ;;
*:Bitrig:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
- echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
+ echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE"
exit ;;
*:OpenBSD:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
- echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
+ echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE"
exit ;;
*:LibertyBSD:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
- echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE}
+ echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE"
exit ;;
*:MidnightBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-midnightbsd${UNAME_RELEASE}
+ echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE"
exit ;;
*:ekkoBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
+ echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE"
exit ;;
*:SolidBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
+ echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE"
exit ;;
macppc:MirBSD:*:*)
- echo powerpc-unknown-mirbsd${UNAME_RELEASE}
+ echo powerpc-unknown-mirbsd"$UNAME_RELEASE"
exit ;;
*:MirBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
+ echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE"
exit ;;
*:Sortix:*:*)
- echo ${UNAME_MACHINE}-unknown-sortix
+ echo "$UNAME_MACHINE"-unknown-sortix
exit ;;
*:Redox:*:*)
- echo ${UNAME_MACHINE}-unknown-redox
+ echo "$UNAME_MACHINE"-unknown-redox
exit ;;
mips:OSF1:*.*)
echo mips-dec-osf1
@@ -319,7 +328,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# A Tn.n version is a released field test version.
# A Xn.n version is an unreleased experimental baselevel.
# 1.2 uses "1.2" for uname -r.
- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
+ echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`"
# Reset EXIT trap before exiting to avoid spurious non-zero exit code.
exitcode=$?
trap '' 0
@@ -328,10 +337,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
echo m68k-unknown-sysv4
exit ;;
*:[Aa]miga[Oo][Ss]:*:*)
- echo ${UNAME_MACHINE}-unknown-amigaos
+ echo "$UNAME_MACHINE"-unknown-amigaos
exit ;;
*:[Mm]orph[Oo][Ss]:*:*)
- echo ${UNAME_MACHINE}-unknown-morphos
+ echo "$UNAME_MACHINE"-unknown-morphos
exit ;;
*:OS/390:*:*)
echo i370-ibm-openedition
@@ -343,7 +352,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
echo powerpc-ibm-os400
exit ;;
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
- echo arm-acorn-riscix${UNAME_RELEASE}
+ echo arm-acorn-riscix"$UNAME_RELEASE"
exit ;;
arm*:riscos:*:*|arm*:RISCOS:*:*)
echo arm-unknown-riscos
@@ -370,19 +379,19 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
sparc) echo sparc-icl-nx7; exit ;;
esac ;;
s390x:SunOS:*:*)
- echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
exit ;;
sun4H:SunOS:5.*:*)
- echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
exit ;;
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
- echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
exit ;;
i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
- echo i386-pc-auroraux${UNAME_RELEASE}
+ echo i386-pc-auroraux"$UNAME_RELEASE"
exit ;;
i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
- eval $set_cc_for_build
+ set_cc_for_build
SUN_ARCH=i386
# If there is a compiler, see if it is configured for 64-bit objects.
# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
@@ -395,13 +404,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
SUN_ARCH=x86_64
fi
fi
- echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
exit ;;
sun4*:SunOS:6*:*)
# According to config.sub, this is the proper way to canonicalize
# SunOS6. Hard to guess exactly what SunOS6 will be like, but
# it's likely to be more like Solaris than SunOS4.
- echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
exit ;;
sun4*:SunOS:*:*)
case "`/usr/bin/arch -k`" in
@@ -410,25 +419,25 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
;;
esac
# Japanese Language versions have a version number like `4.1.3-JL'.
- echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+ echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`"
exit ;;
sun3*:SunOS:*:*)
- echo m68k-sun-sunos${UNAME_RELEASE}
+ echo m68k-sun-sunos"$UNAME_RELEASE"
exit ;;
sun*:*:4.2BSD:*)
UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
- test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3
+ test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3
case "`/bin/arch`" in
sun3)
- echo m68k-sun-sunos${UNAME_RELEASE}
+ echo m68k-sun-sunos"$UNAME_RELEASE"
;;
sun4)
- echo sparc-sun-sunos${UNAME_RELEASE}
+ echo sparc-sun-sunos"$UNAME_RELEASE"
;;
esac
exit ;;
aushp:SunOS:*:*)
- echo sparc-auspex-sunos${UNAME_RELEASE}
+ echo sparc-auspex-sunos"$UNAME_RELEASE"
exit ;;
# The situation for MiNT is a little confusing. The machine name
# can be virtually everything (everything which is not
@@ -439,44 +448,44 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# MiNT. But MiNT is downward compatible to TOS, so this should
# be no problem.
atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
+ echo m68k-atari-mint"$UNAME_RELEASE"
exit ;;
atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
+ echo m68k-atari-mint"$UNAME_RELEASE"
exit ;;
*falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
+ echo m68k-atari-mint"$UNAME_RELEASE"
exit ;;
milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
- echo m68k-milan-mint${UNAME_RELEASE}
+ echo m68k-milan-mint"$UNAME_RELEASE"
exit ;;
hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
- echo m68k-hades-mint${UNAME_RELEASE}
+ echo m68k-hades-mint"$UNAME_RELEASE"
exit ;;
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
- echo m68k-unknown-mint${UNAME_RELEASE}
+ echo m68k-unknown-mint"$UNAME_RELEASE"
exit ;;
m68k:machten:*:*)
- echo m68k-apple-machten${UNAME_RELEASE}
+ echo m68k-apple-machten"$UNAME_RELEASE"
exit ;;
powerpc:machten:*:*)
- echo powerpc-apple-machten${UNAME_RELEASE}
+ echo powerpc-apple-machten"$UNAME_RELEASE"
exit ;;
RISC*:Mach:*:*)
echo mips-dec-mach_bsd4.3
exit ;;
RISC*:ULTRIX:*:*)
- echo mips-dec-ultrix${UNAME_RELEASE}
+ echo mips-dec-ultrix"$UNAME_RELEASE"
exit ;;
VAX*:ULTRIX*:*:*)
- echo vax-dec-ultrix${UNAME_RELEASE}
+ echo vax-dec-ultrix"$UNAME_RELEASE"
exit ;;
2020:CLIX:*:* | 2430:CLIX:*:*)
- echo clipper-intergraph-clix${UNAME_RELEASE}
+ echo clipper-intergraph-clix"$UNAME_RELEASE"
exit ;;
mips:*:*:UMIPS | mips:*:*:RISCos)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
+ set_cc_for_build
+ sed 's/^ //' << EOF > "$dummy.c"
#ifdef __cplusplus
#include <stdio.h> /* for printf() prototype */
int main (int argc, char *argv[]) {
@@ -497,11 +506,11 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
exit (-1);
}
EOF
- $CC_FOR_BUILD -o $dummy $dummy.c &&
- dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
- SYSTEM_NAME=`$dummy $dummyarg` &&
+ $CC_FOR_BUILD -o "$dummy" "$dummy.c" &&
+ dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` &&
+ SYSTEM_NAME=`"$dummy" "$dummyarg"` &&
{ echo "$SYSTEM_NAME"; exit; }
- echo mips-mips-riscos${UNAME_RELEASE}
+ echo mips-mips-riscos"$UNAME_RELEASE"
exit ;;
Motorola:PowerMAX_OS:*:*)
echo powerpc-motorola-powermax
@@ -527,17 +536,17 @@ EOF
AViiON:dgux:*:*)
# DG/UX returns AViiON for all architectures
UNAME_PROCESSOR=`/usr/bin/uname -p`
- if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+ if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ]
then
- if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
- [ ${TARGET_BINARY_INTERFACE}x = x ]
+ if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \
+ [ "$TARGET_BINARY_INTERFACE"x = x ]
then
- echo m88k-dg-dgux${UNAME_RELEASE}
+ echo m88k-dg-dgux"$UNAME_RELEASE"
else
- echo m88k-dg-dguxbcs${UNAME_RELEASE}
+ echo m88k-dg-dguxbcs"$UNAME_RELEASE"
fi
else
- echo i586-dg-dgux${UNAME_RELEASE}
+ echo i586-dg-dgux"$UNAME_RELEASE"
fi
exit ;;
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
@@ -554,7 +563,7 @@ EOF
echo m68k-tektronix-bsd
exit ;;
*:IRIX*:*:*)
- echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+ echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`"
exit ;;
????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
@@ -566,14 +575,14 @@ EOF
if [ -x /usr/bin/oslevel ] ; then
IBM_REV=`/usr/bin/oslevel`
else
- IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
fi
- echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+ echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV"
exit ;;
*:AIX:2:3)
if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
+ set_cc_for_build
+ sed 's/^ //' << EOF > "$dummy.c"
#include <sys/systemcfg.h>
main()
@@ -584,7 +593,7 @@ EOF
exit(0);
}
EOF
- if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
+ if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"`
then
echo "$SYSTEM_NAME"
else
@@ -598,7 +607,7 @@ EOF
exit ;;
*:AIX:*:[4567])
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
- if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+ if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then
IBM_ARCH=rs6000
else
IBM_ARCH=powerpc
@@ -607,9 +616,9 @@ EOF
IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
else
- IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
fi
- echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+ echo "$IBM_ARCH"-ibm-aix"$IBM_REV"
exit ;;
*:AIX:*:*)
echo rs6000-ibm-aix
@@ -618,7 +627,7 @@ EOF
echo romp-ibm-bsd4.4
exit ;;
ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
- echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
+ echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to
exit ;; # report: romp-ibm BSD 4.3
*:BOSX:*:*)
echo rs6000-bull-bosx
@@ -633,28 +642,28 @@ EOF
echo m68k-hp-bsd4.4
exit ;;
9000/[34678]??:HP-UX:*:*)
- HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
- case "${UNAME_MACHINE}" in
+ HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
+ case "$UNAME_MACHINE" in
9000/31?) HP_ARCH=m68000 ;;
9000/[34]??) HP_ARCH=m68k ;;
9000/[678][0-9][0-9])
if [ -x /usr/bin/getconf ]; then
sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
- case "${sc_cpu_version}" in
+ case "$sc_cpu_version" in
523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
532) # CPU_PA_RISC2_0
- case "${sc_kernel_bits}" in
+ case "$sc_kernel_bits" in
32) HP_ARCH=hppa2.0n ;;
64) HP_ARCH=hppa2.0w ;;
'') HP_ARCH=hppa2.0 ;; # HP-UX 10.20
esac ;;
esac
fi
- if [ "${HP_ARCH}" = "" ]; then
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
+ if [ "$HP_ARCH" = "" ]; then
+ set_cc_for_build
+ sed 's/^ //' << EOF > "$dummy.c"
#define _HPUX_SOURCE
#include <stdlib.h>
@@ -687,13 +696,13 @@ EOF
exit (0);
}
EOF
- (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+ (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"`
test -z "$HP_ARCH" && HP_ARCH=hppa
fi ;;
esac
- if [ ${HP_ARCH} = hppa2.0w ]
+ if [ "$HP_ARCH" = hppa2.0w ]
then
- eval $set_cc_for_build
+ set_cc_for_build
# hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
# 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
@@ -712,15 +721,15 @@ EOF
HP_ARCH=hppa64
fi
fi
- echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+ echo "$HP_ARCH"-hp-hpux"$HPUX_REV"
exit ;;
ia64:HP-UX:*:*)
- HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
- echo ia64-hp-hpux${HPUX_REV}
+ HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
+ echo ia64-hp-hpux"$HPUX_REV"
exit ;;
3050*:HI-UX:*:*)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
+ set_cc_for_build
+ sed 's/^ //' << EOF > "$dummy.c"
#include <unistd.h>
int
main ()
@@ -745,7 +754,7 @@ EOF
exit (0);
}
EOF
- $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
+ $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` &&
{ echo "$SYSTEM_NAME"; exit; }
echo unknown-hitachi-hiuxwe2
exit ;;
@@ -766,9 +775,9 @@ EOF
exit ;;
i*86:OSF1:*:*)
if [ -x /usr/sbin/sysversion ] ; then
- echo ${UNAME_MACHINE}-unknown-osf1mk
+ echo "$UNAME_MACHINE"-unknown-osf1mk
else
- echo ${UNAME_MACHINE}-unknown-osf1
+ echo "$UNAME_MACHINE"-unknown-osf1
fi
exit ;;
parisc*:Lites*:*:*)
@@ -793,109 +802,120 @@ EOF
echo c4-convex-bsd
exit ;;
CRAY*Y-MP:*:*:*)
- echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
exit ;;
CRAY*[A-Z]90:*:*:*)
- echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+ echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \
| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
-e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
-e 's/\.[^.]*$/.X/'
exit ;;
CRAY*TS:*:*:*)
- echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
exit ;;
CRAY*T3E:*:*:*)
- echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
exit ;;
CRAY*SV1:*:*:*)
- echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
exit ;;
*:UNICOS/mp:*:*)
- echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
exit ;;
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
- FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+ FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'`
echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
exit ;;
5000:UNIX_System_V:4.*:*)
FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
- FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
+ FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
exit ;;
i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
- echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+ echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE"
exit ;;
sparc*:BSD/OS:*:*)
- echo sparc-unknown-bsdi${UNAME_RELEASE}
+ echo sparc-unknown-bsdi"$UNAME_RELEASE"
exit ;;
*:BSD/OS:*:*)
- echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+ echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE"
+ exit ;;
+ arm:FreeBSD:*:*)
+ UNAME_PROCESSOR=`uname -p`
+ set_cc_for_build
+ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ARM_PCS_VFP
+ then
+ echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabi
+ else
+ echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabihf
+ fi
exit ;;
*:FreeBSD:*:*)
UNAME_PROCESSOR=`/usr/bin/uname -p`
- case ${UNAME_PROCESSOR} in
+ case "$UNAME_PROCESSOR" in
amd64)
UNAME_PROCESSOR=x86_64 ;;
i386)
UNAME_PROCESSOR=i586 ;;
esac
- echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+ echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
exit ;;
i*:CYGWIN*:*)
- echo ${UNAME_MACHINE}-pc-cygwin
+ echo "$UNAME_MACHINE"-pc-cygwin
exit ;;
*:MINGW64*:*)
- echo ${UNAME_MACHINE}-pc-mingw64
+ echo "$UNAME_MACHINE"-pc-mingw64
exit ;;
*:MINGW*:*)
- echo ${UNAME_MACHINE}-pc-mingw32
+ echo "$UNAME_MACHINE"-pc-mingw32
exit ;;
*:MSYS*:*)
- echo ${UNAME_MACHINE}-pc-msys
+ echo "$UNAME_MACHINE"-pc-msys
exit ;;
i*:PW*:*)
- echo ${UNAME_MACHINE}-pc-pw32
+ echo "$UNAME_MACHINE"-pc-pw32
exit ;;
*:Interix*:*)
- case ${UNAME_MACHINE} in
+ case "$UNAME_MACHINE" in
x86)
- echo i586-pc-interix${UNAME_RELEASE}
+ echo i586-pc-interix"$UNAME_RELEASE"
exit ;;
authenticamd | genuineintel | EM64T)
- echo x86_64-unknown-interix${UNAME_RELEASE}
+ echo x86_64-unknown-interix"$UNAME_RELEASE"
exit ;;
IA64)
- echo ia64-unknown-interix${UNAME_RELEASE}
+ echo ia64-unknown-interix"$UNAME_RELEASE"
exit ;;
esac ;;
i*:UWIN*:*)
- echo ${UNAME_MACHINE}-pc-uwin
+ echo "$UNAME_MACHINE"-pc-uwin
exit ;;
amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
- echo x86_64-unknown-cygwin
+ echo x86_64-pc-cygwin
exit ;;
prep*:SunOS:5.*:*)
- echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
exit ;;
*:GNU:*:*)
# the GNU system
- echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+ echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`"
exit ;;
*:GNU/*:*:*)
# other systems with GNU libc and userland
- echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
+ echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC"
exit ;;
- i*86:Minix:*:*)
- echo ${UNAME_MACHINE}-pc-minix
+ *:Minix:*:*)
+ echo "$UNAME_MACHINE"-unknown-minix
exit ;;
aarch64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
aarch64_be:Linux:*:*)
UNAME_MACHINE=aarch64_be
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
alpha:Linux:*:*)
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
@@ -909,63 +929,63 @@ EOF
esac
objdump --private-headers /bin/sh | grep -q ld.so.1
if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
arc:Linux:*:* | arceb:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
arm*:Linux:*:*)
- eval $set_cc_for_build
+ set_cc_for_build
if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_EABI__
then
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
else
if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_PCS_VFP
then
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi
else
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf
fi
fi
exit ;;
avr32*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
cris:Linux:*:*)
- echo ${UNAME_MACHINE}-axis-linux-${LIBC}
+ echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
exit ;;
crisv32:Linux:*:*)
- echo ${UNAME_MACHINE}-axis-linux-${LIBC}
+ echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
exit ;;
e2k:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
frv:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
hexagon:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
i*86:Linux:*:*)
- echo ${UNAME_MACHINE}-pc-linux-${LIBC}
+ echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
exit ;;
ia64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
k1om:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
m32r*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
m68*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
mips:Linux:*:* | mips64:Linux:*:*)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
+ set_cc_for_build
+ sed 's/^ //' << EOF > "$dummy.c"
#undef CPU
#undef ${UNAME_MACHINE}
#undef ${UNAME_MACHINE}el
@@ -979,70 +999,70 @@ EOF
#endif
#endif
EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
+ eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU'`"
+ test "x$CPU" != x && { echo "$CPU-unknown-linux-$LIBC"; exit; }
;;
mips64el:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
openrisc*:Linux:*:*)
- echo or1k-unknown-linux-${LIBC}
+ echo or1k-unknown-linux-"$LIBC"
exit ;;
or32:Linux:*:* | or1k*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
padre:Linux:*:*)
- echo sparc-unknown-linux-${LIBC}
+ echo sparc-unknown-linux-"$LIBC"
exit ;;
parisc64:Linux:*:* | hppa64:Linux:*:*)
- echo hppa64-unknown-linux-${LIBC}
+ echo hppa64-unknown-linux-"$LIBC"
exit ;;
parisc:Linux:*:* | hppa:Linux:*:*)
# Look for CPU level
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
- PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
- PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
- *) echo hppa-unknown-linux-${LIBC} ;;
+ PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;;
+ PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;;
+ *) echo hppa-unknown-linux-"$LIBC" ;;
esac
exit ;;
ppc64:Linux:*:*)
- echo powerpc64-unknown-linux-${LIBC}
+ echo powerpc64-unknown-linux-"$LIBC"
exit ;;
ppc:Linux:*:*)
- echo powerpc-unknown-linux-${LIBC}
+ echo powerpc-unknown-linux-"$LIBC"
exit ;;
ppc64le:Linux:*:*)
- echo powerpc64le-unknown-linux-${LIBC}
+ echo powerpc64le-unknown-linux-"$LIBC"
exit ;;
ppcle:Linux:*:*)
- echo powerpcle-unknown-linux-${LIBC}
+ echo powerpcle-unknown-linux-"$LIBC"
exit ;;
riscv32:Linux:*:* | riscv64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
s390:Linux:*:* | s390x:Linux:*:*)
- echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
+ echo "$UNAME_MACHINE"-ibm-linux-"$LIBC"
exit ;;
sh64*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
sh*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
sparc:Linux:*:* | sparc64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
tile*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
vax:Linux:*:*)
- echo ${UNAME_MACHINE}-dec-linux-${LIBC}
+ echo "$UNAME_MACHINE"-dec-linux-"$LIBC"
exit ;;
x86_64:Linux:*:*)
- echo ${UNAME_MACHINE}-pc-linux-${LIBC}
+ echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
exit ;;
xtensa*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
i*86:DYNIX/ptx:4*:*)
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
@@ -1056,34 +1076,34 @@ EOF
# I am not positive that other SVR4 systems won't match this,
# I just have to hope. -- rms.
# Use sysv4.2uw... so that sysv4* matches it.
- echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+ echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION"
exit ;;
i*86:OS/2:*:*)
# If we were able to find `uname', then EMX Unix compatibility
# is probably installed.
- echo ${UNAME_MACHINE}-pc-os2-emx
+ echo "$UNAME_MACHINE"-pc-os2-emx
exit ;;
i*86:XTS-300:*:STOP)
- echo ${UNAME_MACHINE}-unknown-stop
+ echo "$UNAME_MACHINE"-unknown-stop
exit ;;
i*86:atheos:*:*)
- echo ${UNAME_MACHINE}-unknown-atheos
+ echo "$UNAME_MACHINE"-unknown-atheos
exit ;;
i*86:syllable:*:*)
- echo ${UNAME_MACHINE}-pc-syllable
+ echo "$UNAME_MACHINE"-pc-syllable
exit ;;
i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
- echo i386-unknown-lynxos${UNAME_RELEASE}
+ echo i386-unknown-lynxos"$UNAME_RELEASE"
exit ;;
i*86:*DOS:*:*)
- echo ${UNAME_MACHINE}-pc-msdosdjgpp
+ echo "$UNAME_MACHINE"-pc-msdosdjgpp
exit ;;
i*86:*:4.*:*)
- UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+ UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'`
if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
- echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+ echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL"
else
- echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+ echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL"
fi
exit ;;
i*86:*:5:[678]*)
@@ -1093,12 +1113,12 @@ EOF
*Pentium) UNAME_MACHINE=i586 ;;
*Pent*|*Celeron) UNAME_MACHINE=i686 ;;
esac
- echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+ echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}{$UNAME_VERSION}"
exit ;;
i*86:*:3.2:*)
if test -f /usr/options/cb.name; then
UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
- echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+ echo "$UNAME_MACHINE"-pc-isc"$UNAME_REL"
elif /bin/uname -X 2>/dev/null >/dev/null ; then
UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
@@ -1108,9 +1128,9 @@ EOF
&& UNAME_MACHINE=i686
(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
&& UNAME_MACHINE=i686
- echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+ echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL"
else
- echo ${UNAME_MACHINE}-pc-sysv32
+ echo "$UNAME_MACHINE"-pc-sysv32
fi
exit ;;
pc:*:*:*)
@@ -1130,9 +1150,9 @@ EOF
exit ;;
i860:*:4.*:*) # i860-SVR4
if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
- echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+ echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4
else # Add other i860-SVR4 vendors below as they are discovered.
- echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
+ echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4
fi
exit ;;
mini*:CTIX:SYS*5:*)
@@ -1152,9 +1172,9 @@ EOF
test -r /etc/.relid \
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+ && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
- && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
&& { echo i486-ncr-sysv4; exit; } ;;
@@ -1163,28 +1183,28 @@ EOF
test -r /etc/.relid \
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+ && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
- && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
+ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; }
/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
- && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
- echo m68k-unknown-lynxos${UNAME_RELEASE}
+ echo m68k-unknown-lynxos"$UNAME_RELEASE"
exit ;;
mc68030:UNIX_System_V:4.*:*)
echo m68k-atari-sysv4
exit ;;
TSUNAMI:LynxOS:2.*:*)
- echo sparc-unknown-lynxos${UNAME_RELEASE}
+ echo sparc-unknown-lynxos"$UNAME_RELEASE"
exit ;;
rs6000:LynxOS:2.*:*)
- echo rs6000-unknown-lynxos${UNAME_RELEASE}
+ echo rs6000-unknown-lynxos"$UNAME_RELEASE"
exit ;;
PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
- echo powerpc-unknown-lynxos${UNAME_RELEASE}
+ echo powerpc-unknown-lynxos"$UNAME_RELEASE"
exit ;;
SM[BE]S:UNIX_SV:*:*)
- echo mips-dde-sysv${UNAME_RELEASE}
+ echo mips-dde-sysv"$UNAME_RELEASE"
exit ;;
RM*:ReliantUNIX-*:*:*)
echo mips-sni-sysv4
@@ -1195,7 +1215,7 @@ EOF
*:SINIX-*:*:*)
if uname -p 2>/dev/null >/dev/null ; then
UNAME_MACHINE=`(uname -p) 2>/dev/null`
- echo ${UNAME_MACHINE}-sni-sysv4
+ echo "$UNAME_MACHINE"-sni-sysv4
else
echo ns32k-sni-sysv
fi
@@ -1215,23 +1235,23 @@ EOF
exit ;;
i*86:VOS:*:*)
# From Paul.Green@stratus.com.
- echo ${UNAME_MACHINE}-stratus-vos
+ echo "$UNAME_MACHINE"-stratus-vos
exit ;;
*:VOS:*:*)
# From Paul.Green@stratus.com.
echo hppa1.1-stratus-vos
exit ;;
mc68*:A/UX:*:*)
- echo m68k-apple-aux${UNAME_RELEASE}
+ echo m68k-apple-aux"$UNAME_RELEASE"
exit ;;
news*:NEWS-OS:6*:*)
echo mips-sony-newsos6
exit ;;
R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
if [ -d /usr/nec ]; then
- echo mips-nec-sysv${UNAME_RELEASE}
+ echo mips-nec-sysv"$UNAME_RELEASE"
else
- echo mips-unknown-sysv${UNAME_RELEASE}
+ echo mips-unknown-sysv"$UNAME_RELEASE"
fi
exit ;;
BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
@@ -1250,39 +1270,39 @@ EOF
echo x86_64-unknown-haiku
exit ;;
SX-4:SUPER-UX:*:*)
- echo sx4-nec-superux${UNAME_RELEASE}
+ echo sx4-nec-superux"$UNAME_RELEASE"
exit ;;
SX-5:SUPER-UX:*:*)
- echo sx5-nec-superux${UNAME_RELEASE}
+ echo sx5-nec-superux"$UNAME_RELEASE"
exit ;;
SX-6:SUPER-UX:*:*)
- echo sx6-nec-superux${UNAME_RELEASE}
+ echo sx6-nec-superux"$UNAME_RELEASE"
exit ;;
SX-7:SUPER-UX:*:*)
- echo sx7-nec-superux${UNAME_RELEASE}
+ echo sx7-nec-superux"$UNAME_RELEASE"
exit ;;
SX-8:SUPER-UX:*:*)
- echo sx8-nec-superux${UNAME_RELEASE}
+ echo sx8-nec-superux"$UNAME_RELEASE"
exit ;;
SX-8R:SUPER-UX:*:*)
- echo sx8r-nec-superux${UNAME_RELEASE}
+ echo sx8r-nec-superux"$UNAME_RELEASE"
exit ;;
SX-ACE:SUPER-UX:*:*)
- echo sxace-nec-superux${UNAME_RELEASE}
+ echo sxace-nec-superux"$UNAME_RELEASE"
exit ;;
Power*:Rhapsody:*:*)
- echo powerpc-apple-rhapsody${UNAME_RELEASE}
+ echo powerpc-apple-rhapsody"$UNAME_RELEASE"
exit ;;
*:Rhapsody:*:*)
- echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+ echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE"
exit ;;
*:Darwin:*:*)
UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
- eval $set_cc_for_build
+ set_cc_for_build
if test "$UNAME_PROCESSOR" = unknown ; then
UNAME_PROCESSOR=powerpc
fi
- if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
+ if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then
if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
@@ -1310,7 +1330,7 @@ EOF
# that Apple uses in portable devices.
UNAME_PROCESSOR=x86_64
fi
- echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
+ echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE"
exit ;;
*:procnto*:*:* | *:QNX:[0123456789]*:*)
UNAME_PROCESSOR=`uname -p`
@@ -1318,22 +1338,25 @@ EOF
UNAME_PROCESSOR=i386
UNAME_MACHINE=pc
fi
- echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+ echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE"
exit ;;
*:QNX:*:4*)
echo i386-pc-qnx
exit ;;
NEO-*:NONSTOP_KERNEL:*:*)
- echo neo-tandem-nsk${UNAME_RELEASE}
+ echo neo-tandem-nsk"$UNAME_RELEASE"
exit ;;
NSE-*:NONSTOP_KERNEL:*:*)
- echo nse-tandem-nsk${UNAME_RELEASE}
+ echo nse-tandem-nsk"$UNAME_RELEASE"
exit ;;
NSR-*:NONSTOP_KERNEL:*:*)
- echo nsr-tandem-nsk${UNAME_RELEASE}
+ echo nsr-tandem-nsk"$UNAME_RELEASE"
+ exit ;;
+ NSV-*:NONSTOP_KERNEL:*:*)
+ echo nsv-tandem-nsk"$UNAME_RELEASE"
exit ;;
NSX-*:NONSTOP_KERNEL:*:*)
- echo nsx-tandem-nsk${UNAME_RELEASE}
+ echo nsx-tandem-nsk"$UNAME_RELEASE"
exit ;;
*:NonStop-UX:*:*)
echo mips-compaq-nonstopux
@@ -1342,18 +1365,19 @@ EOF
echo bs2000-siemens-sysv
exit ;;
DS/*:UNIX_System_V:*:*)
- echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+ echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE"
exit ;;
*:Plan9:*:*)
# "uname -m" is not consistent, so use $cputype instead. 386
# is converted to i386 for consistency with other x86
# operating systems.
+ # shellcheck disable=SC2154
if test "$cputype" = 386; then
UNAME_MACHINE=i386
else
UNAME_MACHINE="$cputype"
fi
- echo ${UNAME_MACHINE}-unknown-plan9
+ echo "$UNAME_MACHINE"-unknown-plan9
exit ;;
*:TOPS-10:*:*)
echo pdp10-unknown-tops10
@@ -1374,14 +1398,14 @@ EOF
echo pdp10-unknown-its
exit ;;
SEI:*:*:SEIUX)
- echo mips-sei-seiux${UNAME_RELEASE}
+ echo mips-sei-seiux"$UNAME_RELEASE"
exit ;;
*:DragonFly:*:*)
- echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+ echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
exit ;;
*:*VMS:*:*)
UNAME_MACHINE=`(uname -p) 2>/dev/null`
- case "${UNAME_MACHINE}" in
+ case "$UNAME_MACHINE" in
A*) echo alpha-dec-vms ; exit ;;
I*) echo ia64-dec-vms ; exit ;;
V*) echo vax-dec-vms ; exit ;;
@@ -1390,25 +1414,28 @@ EOF
echo i386-pc-xenix
exit ;;
i*86:skyos:*:*)
- echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'`
+ echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`"
exit ;;
i*86:rdos:*:*)
- echo ${UNAME_MACHINE}-pc-rdos
+ echo "$UNAME_MACHINE"-pc-rdos
exit ;;
i*86:AROS:*:*)
- echo ${UNAME_MACHINE}-pc-aros
+ echo "$UNAME_MACHINE"-pc-aros
exit ;;
x86_64:VMkernel:*:*)
- echo ${UNAME_MACHINE}-unknown-esx
+ echo "$UNAME_MACHINE"-unknown-esx
exit ;;
amd64:Isilon\ OneFS:*:*)
echo x86_64-unknown-onefs
exit ;;
+ *:Unleashed:*:*)
+ echo "$UNAME_MACHINE"-unknown-unleashed"$UNAME_RELEASE"
+ exit ;;
esac
echo "$0: unable to guess system type" >&2
-case "${UNAME_MACHINE}:${UNAME_SYSTEM}" in
+case "$UNAME_MACHINE:$UNAME_SYSTEM" in
mips:Linux | mips64:Linux)
# If we got here on MIPS GNU/Linux, output extra information.
cat >&2 <<EOF
@@ -1450,16 +1477,16 @@ hostinfo = `(hostinfo) 2>/dev/null`
/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
-UNAME_MACHINE = ${UNAME_MACHINE}
-UNAME_RELEASE = ${UNAME_RELEASE}
-UNAME_SYSTEM = ${UNAME_SYSTEM}
-UNAME_VERSION = ${UNAME_VERSION}
+UNAME_MACHINE = "$UNAME_MACHINE"
+UNAME_RELEASE = "$UNAME_RELEASE"
+UNAME_SYSTEM = "$UNAME_SYSTEM"
+UNAME_VERSION = "$UNAME_VERSION"
EOF
exit 1
# Local variables:
-# eval: (add-hook 'write-file-functions 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "timestamp='"
# time-stamp-format: "%:y-%02m-%02d"
# time-stamp-end: "'"
diff --git a/scripts/config.sub b/scripts/config.sub
index f2632cd8a2..a8f3f7e7cd 100755
--- a/scripts/config.sub
+++ b/scripts/config.sub
@@ -1,8 +1,8 @@
#! /bin/sh
# Configuration validation subroutine script.
-# Copyright 1992-2018 Free Software Foundation, Inc.
+# Copyright 1992-2019 Free Software Foundation, Inc.
-timestamp='2018-01-01'
+timestamp='2019-01-01'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -67,7 +67,7 @@ Report bugs and patches to <config-patches@gnu.org>."
version="\
GNU config.sub ($timestamp)
-Copyright 1992-2018 Free Software Foundation, Inc.
+Copyright 1992-2019 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."
@@ -89,12 +89,12 @@ while test $# -gt 0 ; do
- ) # Use stdin as input.
break ;;
-* )
- echo "$me: invalid option $1$help"
+ echo "$me: invalid option $1$help" >&2
exit 1 ;;
*local*)
# First pass through any local machine types.
- echo $1
+ echo "$1"
exit ;;
* )
@@ -110,1251 +110,1160 @@ case $# in
exit 1;;
esac
-# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
-# Here we must recognize all the valid KERNEL-OS combinations.
-maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
-case $maybe_os in
- nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
- linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
- knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \
- kopensolaris*-gnu* | cloudabi*-eabi* | \
- storm-chaos* | os2-emx* | rtmk-nova*)
- os=-$maybe_os
- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
- ;;
- android-linux)
- os=-linux-android
- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
- ;;
- *)
- basic_machine=`echo $1 | sed 's/-[^-]*$//'`
- if [ $basic_machine != $1 ]
- then os=`echo $1 | sed 's/.*-/-/'`
- else os=; fi
- ;;
-esac
+# Split fields of configuration type
+IFS="-" read field1 field2 field3 field4 <<EOF
+$1
+EOF
-### Let's recognize common machines as not being operating systems so
-### that things like config.sub decstation-3100 work. We also
-### recognize some manufacturers as not being operating systems, so we
-### can provide default operating systems below.
-case $os in
- -sun*os*)
- # Prevent following clause from handling this invalid input.
- ;;
- -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
- -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
- -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
- -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
- -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
- -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
- -apple | -axis | -knuth | -cray | -microblaze*)
- os=
- basic_machine=$1
- ;;
- -bluegene*)
- os=-cnk
- ;;
- -sim | -cisco | -oki | -wec | -winbond)
- os=
- basic_machine=$1
- ;;
- -scout)
- ;;
- -wrs)
- os=-vxworks
- basic_machine=$1
- ;;
- -chorusos*)
- os=-chorusos
- basic_machine=$1
- ;;
- -chorusrdb)
- os=-chorusrdb
- basic_machine=$1
- ;;
- -hiux*)
- os=-hiuxwe2
- ;;
- -sco6)
- os=-sco5v6
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco5)
- os=-sco3.2v5
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco4)
- os=-sco3.2v4
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco3.2.[4-9]*)
- os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco3.2v[4-9]*)
- # Don't forget version if it is 3.2v4 or newer.
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco5v6*)
- # Don't forget version if it is 3.2v4 or newer.
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco*)
- os=-sco3.2v2
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -udk*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -isc)
- os=-isc2.2
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -clix*)
- basic_machine=clipper-intergraph
- ;;
- -isc*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -lynx*178)
- os=-lynxos178
- ;;
- -lynx*5)
- os=-lynxos5
+# Separate into logical components for further validation
+case $1 in
+ *-*-*-*-*)
+ echo Invalid configuration \`"$1"\': more than four components >&2
+ exit 1
;;
- -lynx*)
- os=-lynxos
+ *-*-*-*)
+ basic_machine=$field1-$field2
+ os=$field3-$field4
;;
- -ptx*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+ *-*-*)
+ # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
+ # parts
+ maybe_os=$field2-$field3
+ case $maybe_os in
+ nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc \
+ | linux-newlib* | linux-musl* | linux-uclibc* | uclinux-uclibc* \
+ | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
+ | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
+ | storm-chaos* | os2-emx* | rtmk-nova*)
+ basic_machine=$field1
+ os=$maybe_os
+ ;;
+ android-linux)
+ basic_machine=$field1-unknown
+ os=linux-android
+ ;;
+ *)
+ basic_machine=$field1-$field2
+ os=$field3
+ ;;
+ esac
;;
- -psos*)
- os=-psos
+ *-*)
+ # A lone config we happen to match not fitting any pattern
+ case $field1-$field2 in
+ decstation-3100)
+ basic_machine=mips-dec
+ os=
+ ;;
+ *-*)
+ # Second component is usually, but not always the OS
+ case $field2 in
+ # Prevent following clause from handling this valid os
+ sun*os*)
+ basic_machine=$field1
+ os=$field2
+ ;;
+ # Manufacturers
+ dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
+ | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
+ | unicom* | ibm* | next | hp | isi* | apollo | altos* \
+ | convergent* | ncr* | news | 32* | 3600* | 3100* \
+ | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \
+ | ultra | tti* | harris | dolphin | highlevel | gould \
+ | cbm | ns | masscomp | apple | axis | knuth | cray \
+ | microblaze* | sim | cisco \
+ | oki | wec | wrs | winbond)
+ basic_machine=$field1-$field2
+ os=
+ ;;
+ *)
+ basic_machine=$field1
+ os=$field2
+ ;;
+ esac
+ ;;
+ esac
;;
- -mint | -mint[0-9]*)
- basic_machine=m68k-atari
- os=-mint
+ *)
+ # Convert single-component short-hands not valid as part of
+ # multi-component configurations.
+ case $field1 in
+ 386bsd)
+ basic_machine=i386-pc
+ os=bsd
+ ;;
+ a29khif)
+ basic_machine=a29k-amd
+ os=udi
+ ;;
+ adobe68k)
+ basic_machine=m68010-adobe
+ os=scout
+ ;;
+ alliant)
+ basic_machine=fx80-alliant
+ os=
+ ;;
+ altos | altos3068)
+ basic_machine=m68k-altos
+ os=
+ ;;
+ am29k)
+ basic_machine=a29k-none
+ os=bsd
+ ;;
+ amdahl)
+ basic_machine=580-amdahl
+ os=sysv
+ ;;
+ amiga)
+ basic_machine=m68k-unknown
+ os=
+ ;;
+ amigaos | amigados)
+ basic_machine=m68k-unknown
+ os=amigaos
+ ;;
+ amigaunix | amix)
+ basic_machine=m68k-unknown
+ os=sysv4
+ ;;
+ apollo68)
+ basic_machine=m68k-apollo
+ os=sysv
+ ;;
+ apollo68bsd)
+ basic_machine=m68k-apollo
+ os=bsd
+ ;;
+ aros)
+ basic_machine=i386-pc
+ os=aros
+ ;;
+ aux)
+ basic_machine=m68k-apple
+ os=aux
+ ;;
+ balance)
+ basic_machine=ns32k-sequent
+ os=dynix
+ ;;
+ blackfin)
+ basic_machine=bfin-unknown
+ os=linux
+ ;;
+ cegcc)
+ basic_machine=arm-unknown
+ os=cegcc
+ ;;
+ convex-c1)
+ basic_machine=c1-convex
+ os=bsd
+ ;;
+ convex-c2)
+ basic_machine=c2-convex
+ os=bsd
+ ;;
+ convex-c32)
+ basic_machine=c32-convex
+ os=bsd
+ ;;
+ convex-c34)
+ basic_machine=c34-convex
+ os=bsd
+ ;;
+ convex-c38)
+ basic_machine=c38-convex
+ os=bsd
+ ;;
+ cray)
+ basic_machine=j90-cray
+ os=unicos
+ ;;
+ crds | unos)
+ basic_machine=m68k-crds
+ os=
+ ;;
+ da30)
+ basic_machine=m68k-da30
+ os=
+ ;;
+ decstation | pmax | pmin | dec3100 | decstatn)
+ basic_machine=mips-dec
+ os=
+ ;;
+ delta88)
+ basic_machine=m88k-motorola
+ os=sysv3
+ ;;
+ dicos)
+ basic_machine=i686-pc
+ os=dicos
+ ;;
+ djgpp)
+ basic_machine=i586-pc
+ os=msdosdjgpp
+ ;;
+ ebmon29k)
+ basic_machine=a29k-amd
+ os=ebmon
+ ;;
+ es1800 | OSE68k | ose68k | ose | OSE)
+ basic_machine=m68k-ericsson
+ os=ose
+ ;;
+ gmicro)
+ basic_machine=tron-gmicro
+ os=sysv
+ ;;
+ go32)
+ basic_machine=i386-pc
+ os=go32
+ ;;
+ h8300hms)
+ basic_machine=h8300-hitachi
+ os=hms
+ ;;
+ h8300xray)
+ basic_machine=h8300-hitachi
+ os=xray
+ ;;
+ h8500hms)
+ basic_machine=h8500-hitachi
+ os=hms
+ ;;
+ harris)
+ basic_machine=m88k-harris
+ os=sysv3
+ ;;
+ hp300)
+ basic_machine=m68k-hp
+ ;;
+ hp300bsd)
+ basic_machine=m68k-hp
+ os=bsd
+ ;;
+ hp300hpux)
+ basic_machine=m68k-hp
+ os=hpux
+ ;;
+ hppaosf)
+ basic_machine=hppa1.1-hp
+ os=osf
+ ;;
+ hppro)
+ basic_machine=hppa1.1-hp
+ os=proelf
+ ;;
+ i386mach)
+ basic_machine=i386-mach
+ os=mach
+ ;;
+ vsta)
+ basic_machine=i386-pc
+ os=vsta
+ ;;
+ isi68 | isi)
+ basic_machine=m68k-isi
+ os=sysv
+ ;;
+ m68knommu)
+ basic_machine=m68k-unknown
+ os=linux
+ ;;
+ magnum | m3230)
+ basic_machine=mips-mips
+ os=sysv
+ ;;
+ merlin)
+ basic_machine=ns32k-utek
+ os=sysv
+ ;;
+ mingw64)
+ basic_machine=x86_64-pc
+ os=mingw64
+ ;;
+ mingw32)
+ basic_machine=i686-pc
+ os=mingw32
+ ;;
+ mingw32ce)
+ basic_machine=arm-unknown
+ os=mingw32ce
+ ;;
+ monitor)
+ basic_machine=m68k-rom68k
+ os=coff
+ ;;
+ morphos)
+ basic_machine=powerpc-unknown
+ os=morphos
+ ;;
+ moxiebox)
+ basic_machine=moxie-unknown
+ os=moxiebox
+ ;;
+ msdos)
+ basic_machine=i386-pc
+ os=msdos
+ ;;
+ msys)
+ basic_machine=i686-pc
+ os=msys
+ ;;
+ mvs)
+ basic_machine=i370-ibm
+ os=mvs
+ ;;
+ nacl)
+ basic_machine=le32-unknown
+ os=nacl
+ ;;
+ ncr3000)
+ basic_machine=i486-ncr
+ os=sysv4
+ ;;
+ netbsd386)
+ basic_machine=i386-pc
+ os=netbsd
+ ;;
+ netwinder)
+ basic_machine=armv4l-rebel
+ os=linux
+ ;;
+ news | news700 | news800 | news900)
+ basic_machine=m68k-sony
+ os=newsos
+ ;;
+ news1000)
+ basic_machine=m68030-sony
+ os=newsos
+ ;;
+ necv70)
+ basic_machine=v70-nec
+ os=sysv
+ ;;
+ nh3000)
+ basic_machine=m68k-harris
+ os=cxux
+ ;;
+ nh[45]000)
+ basic_machine=m88k-harris
+ os=cxux
+ ;;
+ nindy960)
+ basic_machine=i960-intel
+ os=nindy
+ ;;
+ mon960)
+ basic_machine=i960-intel
+ os=mon960
+ ;;
+ nonstopux)
+ basic_machine=mips-compaq
+ os=nonstopux
+ ;;
+ os400)
+ basic_machine=powerpc-ibm
+ os=os400
+ ;;
+ OSE68000 | ose68000)
+ basic_machine=m68000-ericsson
+ os=ose
+ ;;
+ os68k)
+ basic_machine=m68k-none
+ os=os68k
+ ;;
+ paragon)
+ basic_machine=i860-intel
+ os=osf
+ ;;
+ parisc)
+ basic_machine=hppa-unknown
+ os=linux
+ ;;
+ pw32)
+ basic_machine=i586-unknown
+ os=pw32
+ ;;
+ rdos | rdos64)
+ basic_machine=x86_64-pc
+ os=rdos
+ ;;
+ rdos32)
+ basic_machine=i386-pc
+ os=rdos
+ ;;
+ rom68k)
+ basic_machine=m68k-rom68k
+ os=coff
+ ;;
+ sa29200)
+ basic_machine=a29k-amd
+ os=udi
+ ;;
+ sei)
+ basic_machine=mips-sei
+ os=seiux
+ ;;
+ sequent)
+ basic_machine=i386-sequent
+ os=
+ ;;
+ sps7)
+ basic_machine=m68k-bull
+ os=sysv2
+ ;;
+ st2000)
+ basic_machine=m68k-tandem
+ os=
+ ;;
+ stratus)
+ basic_machine=i860-stratus
+ os=sysv4
+ ;;
+ sun2)
+ basic_machine=m68000-sun
+ os=
+ ;;
+ sun2os3)
+ basic_machine=m68000-sun
+ os=sunos3
+ ;;
+ sun2os4)
+ basic_machine=m68000-sun
+ os=sunos4
+ ;;
+ sun3)
+ basic_machine=m68k-sun
+ os=
+ ;;
+ sun3os3)
+ basic_machine=m68k-sun
+ os=sunos3
+ ;;
+ sun3os4)
+ basic_machine=m68k-sun
+ os=sunos4
+ ;;
+ sun4)
+ basic_machine=sparc-sun
+ os=
+ ;;
+ sun4os3)
+ basic_machine=sparc-sun
+ os=sunos3
+ ;;
+ sun4os4)
+ basic_machine=sparc-sun
+ os=sunos4
+ ;;
+ sun4sol2)
+ basic_machine=sparc-sun
+ os=solaris2
+ ;;
+ sun386 | sun386i | roadrunner)
+ basic_machine=i386-sun
+ os=
+ ;;
+ sv1)
+ basic_machine=sv1-cray
+ os=unicos
+ ;;
+ symmetry)
+ basic_machine=i386-sequent
+ os=dynix
+ ;;
+ t3e)
+ basic_machine=alphaev5-cray
+ os=unicos
+ ;;
+ t90)
+ basic_machine=t90-cray
+ os=unicos
+ ;;
+ toad1)
+ basic_machine=pdp10-xkl
+ os=tops20
+ ;;
+ tpf)
+ basic_machine=s390x-ibm
+ os=tpf
+ ;;
+ udi29k)
+ basic_machine=a29k-amd
+ os=udi
+ ;;
+ ultra3)
+ basic_machine=a29k-nyu
+ os=sym1
+ ;;
+ v810 | necv810)
+ basic_machine=v810-nec
+ os=none
+ ;;
+ vaxv)
+ basic_machine=vax-dec
+ os=sysv
+ ;;
+ vms)
+ basic_machine=vax-dec
+ os=vms
+ ;;
+ vxworks960)
+ basic_machine=i960-wrs
+ os=vxworks
+ ;;
+ vxworks68)
+ basic_machine=m68k-wrs
+ os=vxworks
+ ;;
+ vxworks29k)
+ basic_machine=a29k-wrs
+ os=vxworks
+ ;;
+ xbox)
+ basic_machine=i686-pc
+ os=mingw32
+ ;;
+ ymp)
+ basic_machine=ymp-cray
+ os=unicos
+ ;;
+ *)
+ basic_machine=$1
+ os=
+ ;;
+ esac
;;
esac
-# Decode aliases for certain CPU-COMPANY combinations.
+# Decode 1-component or ad-hoc basic machines
case $basic_machine in
- # Recognize the basic CPU types without company name.
- # Some are omitted here because they have special meanings below.
- 1750a | 580 \
- | a29k \
- | aarch64 | aarch64_be \
- | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
- | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
- | am33_2.0 \
- | arc | arceb \
- | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
- | avr | avr32 \
- | ba \
- | be32 | be64 \
- | bfin \
- | c4x | c8051 | clipper \
- | d10v | d30v | dlx | dsp16xx \
- | e2k | epiphany \
- | fido | fr30 | frv | ft32 \
- | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
- | hexagon \
- | i370 | i860 | i960 | ia16 | ia64 \
- | ip2k | iq2000 \
- | k1om \
- | le32 | le64 \
- | lm32 \
- | m32c | m32r | m32rle | m68000 | m68k | m88k \
- | maxq | mb | microblaze | microblazeel | mcore | mep | metag \
- | mips | mipsbe | mipseb | mipsel | mipsle \
- | mips16 \
- | mips64 | mips64el \
- | mips64octeon | mips64octeonel \
- | mips64orion | mips64orionel \
- | mips64r5900 | mips64r5900el \
- | mips64vr | mips64vrel \
- | mips64vr4100 | mips64vr4100el \
- | mips64vr4300 | mips64vr4300el \
- | mips64vr5000 | mips64vr5000el \
- | mips64vr5900 | mips64vr5900el \
- | mipsisa32 | mipsisa32el \
- | mipsisa32r2 | mipsisa32r2el \
- | mipsisa32r6 | mipsisa32r6el \
- | mipsisa64 | mipsisa64el \
- | mipsisa64r2 | mipsisa64r2el \
- | mipsisa64r6 | mipsisa64r6el \
- | mipsisa64sb1 | mipsisa64sb1el \
- | mipsisa64sr71k | mipsisa64sr71kel \
- | mipsr5900 | mipsr5900el \
- | mipstx39 | mipstx39el \
- | mn10200 | mn10300 \
- | moxie \
- | mt \
- | msp430 \
- | nds32 | nds32le | nds32be \
- | nios | nios2 | nios2eb | nios2el \
- | ns16k | ns32k \
- | open8 | or1k | or1knd | or32 \
- | pdp10 | pdp11 | pj | pjl \
- | powerpc | powerpc64 | powerpc64le | powerpcle \
- | pru \
- | pyramid \
- | riscv32 | riscv64 \
- | rl78 | rx \
- | score \
- | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
- | sh64 | sh64le \
- | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
- | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
- | spu \
- | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
- | ubicom32 \
- | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
- | visium \
- | wasm32 \
- | x86 | xc16x | xstormy16 | xtensa \
- | z8k | z80)
- basic_machine=$basic_machine-unknown
- ;;
- c54x)
- basic_machine=tic54x-unknown
- ;;
- c55x)
- basic_machine=tic55x-unknown
- ;;
- c6x)
- basic_machine=tic6x-unknown
- ;;
- leon|leon[3-9])
- basic_machine=sparc-$basic_machine
- ;;
- m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
- basic_machine=$basic_machine-unknown
- os=-none
+ # Here we handle the default manufacturer of certain CPU types. It is in
+ # some cases the only manufacturer, in others, it is the most popular.
+ w89k)
+ cpu=hppa1.1
+ vendor=winbond
;;
- m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+ op50n)
+ cpu=hppa1.1
+ vendor=oki
;;
- ms1)
- basic_machine=mt-unknown
+ op60c)
+ cpu=hppa1.1
+ vendor=oki
;;
-
- strongarm | thumb | xscale)
- basic_machine=arm-unknown
+ ibm*)
+ cpu=i370
+ vendor=ibm
;;
- xgate)
- basic_machine=$basic_machine-unknown
- os=-none
+ orion105)
+ cpu=clipper
+ vendor=highlevel
;;
- xscaleeb)
- basic_machine=armeb-unknown
+ mac | mpw | mac-mpw)
+ cpu=m68k
+ vendor=apple
;;
-
- xscaleel)
- basic_machine=armel-unknown
+ pmac | pmac-mpw)
+ cpu=powerpc
+ vendor=apple
;;
- # We use `pc' rather than `unknown'
- # because (1) that's what they normally are, and
- # (2) the word "unknown" tends to confuse beginning users.
- i*86 | x86_64)
- basic_machine=$basic_machine-pc
- ;;
- # Object if more than one company name word.
- *-*-*)
- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
- exit 1
- ;;
- # Recognize the basic CPU types with company name.
- 580-* \
- | a29k-* \
- | aarch64-* | aarch64_be-* \
- | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
- | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
- | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
- | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
- | avr-* | avr32-* \
- | ba-* \
- | be32-* | be64-* \
- | bfin-* | bs2000-* \
- | c[123]* | c30-* | [cjt]90-* | c4x-* \
- | c8051-* | clipper-* | craynv-* | cydra-* \
- | d10v-* | d30v-* | dlx-* \
- | e2k-* | elxsi-* \
- | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
- | h8300-* | h8500-* \
- | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
- | hexagon-* \
- | i*86-* | i860-* | i960-* | ia16-* | ia64-* \
- | ip2k-* | iq2000-* \
- | k1om-* \
- | le32-* | le64-* \
- | lm32-* \
- | m32c-* | m32r-* | m32rle-* \
- | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
- | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
- | microblaze-* | microblazeel-* \
- | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
- | mips16-* \
- | mips64-* | mips64el-* \
- | mips64octeon-* | mips64octeonel-* \
- | mips64orion-* | mips64orionel-* \
- | mips64r5900-* | mips64r5900el-* \
- | mips64vr-* | mips64vrel-* \
- | mips64vr4100-* | mips64vr4100el-* \
- | mips64vr4300-* | mips64vr4300el-* \
- | mips64vr5000-* | mips64vr5000el-* \
- | mips64vr5900-* | mips64vr5900el-* \
- | mipsisa32-* | mipsisa32el-* \
- | mipsisa32r2-* | mipsisa32r2el-* \
- | mipsisa32r6-* | mipsisa32r6el-* \
- | mipsisa64-* | mipsisa64el-* \
- | mipsisa64r2-* | mipsisa64r2el-* \
- | mipsisa64r6-* | mipsisa64r6el-* \
- | mipsisa64sb1-* | mipsisa64sb1el-* \
- | mipsisa64sr71k-* | mipsisa64sr71kel-* \
- | mipsr5900-* | mipsr5900el-* \
- | mipstx39-* | mipstx39el-* \
- | mmix-* \
- | mt-* \
- | msp430-* \
- | nds32-* | nds32le-* | nds32be-* \
- | nios-* | nios2-* | nios2eb-* | nios2el-* \
- | none-* | np1-* | ns16k-* | ns32k-* \
- | open8-* \
- | or1k*-* \
- | orion-* \
- | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
- | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
- | pru-* \
- | pyramid-* \
- | riscv32-* | riscv64-* \
- | rl78-* | romp-* | rs6000-* | rx-* \
- | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
- | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
- | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
- | sparclite-* \
- | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \
- | tahoe-* \
- | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
- | tile*-* \
- | tron-* \
- | ubicom32-* \
- | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
- | vax-* \
- | visium-* \
- | wasm32-* \
- | we32k-* \
- | x86-* | x86_64-* | xc16x-* | xps100-* \
- | xstormy16-* | xtensa*-* \
- | ymp-* \
- | z8k-* | z80-*)
- ;;
- # Recognize the basic CPU types without company name, with glob match.
- xtensa*)
- basic_machine=$basic_machine-unknown
- ;;
# Recognize the various machine names and aliases which stand
# for a CPU type and a company and sometimes even an OS.
- 386bsd)
- basic_machine=i386-unknown
- os=-bsd
- ;;
3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
- basic_machine=m68000-att
+ cpu=m68000
+ vendor=att
;;
3b*)
- basic_machine=we32k-att
- ;;
- a29khif)
- basic_machine=a29k-amd
- os=-udi
- ;;
- abacus)
- basic_machine=abacus-unknown
- ;;
- adobe68k)
- basic_machine=m68010-adobe
- os=-scout
- ;;
- alliant | fx80)
- basic_machine=fx80-alliant
- ;;
- altos | altos3068)
- basic_machine=m68k-altos
- ;;
- am29k)
- basic_machine=a29k-none
- os=-bsd
- ;;
- amd64)
- basic_machine=x86_64-pc
- ;;
- amd64-*)
- basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- amdahl)
- basic_machine=580-amdahl
- os=-sysv
- ;;
- amiga | amiga-*)
- basic_machine=m68k-unknown
- ;;
- amigaos | amigados)
- basic_machine=m68k-unknown
- os=-amigaos
- ;;
- amigaunix | amix)
- basic_machine=m68k-unknown
- os=-sysv4
- ;;
- apollo68)
- basic_machine=m68k-apollo
- os=-sysv
- ;;
- apollo68bsd)
- basic_machine=m68k-apollo
- os=-bsd
- ;;
- aros)
- basic_machine=i386-pc
- os=-aros
- ;;
- asmjs)
- basic_machine=asmjs-unknown
- ;;
- aux)
- basic_machine=m68k-apple
- os=-aux
- ;;
- balance)
- basic_machine=ns32k-sequent
- os=-dynix
- ;;
- blackfin)
- basic_machine=bfin-unknown
- os=-linux
- ;;
- blackfin-*)
- basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
- os=-linux
+ cpu=we32k
+ vendor=att
;;
bluegene*)
- basic_machine=powerpc-ibm
- os=-cnk
- ;;
- c54x-*)
- basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- c55x-*)
- basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- c6x-*)
- basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- c90)
- basic_machine=c90-cray
- os=-unicos
- ;;
- cegcc)
- basic_machine=arm-unknown
- os=-cegcc
- ;;
- convex-c1)
- basic_machine=c1-convex
- os=-bsd
- ;;
- convex-c2)
- basic_machine=c2-convex
- os=-bsd
- ;;
- convex-c32)
- basic_machine=c32-convex
- os=-bsd
- ;;
- convex-c34)
- basic_machine=c34-convex
- os=-bsd
- ;;
- convex-c38)
- basic_machine=c38-convex
- os=-bsd
- ;;
- cray | j90)
- basic_machine=j90-cray
- os=-unicos
- ;;
- craynv)
- basic_machine=craynv-cray
- os=-unicosmp
- ;;
- cr16 | cr16-*)
- basic_machine=cr16-unknown
- os=-elf
- ;;
- crds | unos)
- basic_machine=m68k-crds
- ;;
- crisv32 | crisv32-* | etraxfs*)
- basic_machine=crisv32-axis
- ;;
- cris | cris-* | etrax*)
- basic_machine=cris-axis
- ;;
- crx)
- basic_machine=crx-unknown
- os=-elf
- ;;
- da30 | da30-*)
- basic_machine=m68k-da30
- ;;
- decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
- basic_machine=mips-dec
+ cpu=powerpc
+ vendor=ibm
+ os=cnk
;;
decsystem10* | dec10*)
- basic_machine=pdp10-dec
- os=-tops10
+ cpu=pdp10
+ vendor=dec
+ os=tops10
;;
decsystem20* | dec20*)
- basic_machine=pdp10-dec
- os=-tops20
+ cpu=pdp10
+ vendor=dec
+ os=tops20
;;
delta | 3300 | motorola-3300 | motorola-delta \
| 3300-motorola | delta-motorola)
- basic_machine=m68k-motorola
- ;;
- delta88)
- basic_machine=m88k-motorola
- os=-sysv3
- ;;
- dicos)
- basic_machine=i686-pc
- os=-dicos
- ;;
- djgpp)
- basic_machine=i586-pc
- os=-msdosdjgpp
- ;;
- dpx20 | dpx20-*)
- basic_machine=rs6000-bull
- os=-bosx
+ cpu=m68k
+ vendor=motorola
;;
dpx2*)
- basic_machine=m68k-bull
- os=-sysv3
- ;;
- e500v[12])
- basic_machine=powerpc-unknown
- os=$os"spe"
- ;;
- e500v[12]-*)
- basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
- os=$os"spe"
- ;;
- ebmon29k)
- basic_machine=a29k-amd
- os=-ebmon
- ;;
- elxsi)
- basic_machine=elxsi-elxsi
- os=-bsd
+ cpu=m68k
+ vendor=bull
+ os=sysv3
;;
encore | umax | mmax)
- basic_machine=ns32k-encore
+ cpu=ns32k
+ vendor=encore
;;
- es1800 | OSE68k | ose68k | ose | OSE)
- basic_machine=m68k-ericsson
- os=-ose
+ elxsi)
+ cpu=elxsi
+ vendor=elxsi
+ os=${os:-bsd}
;;
fx2800)
- basic_machine=i860-alliant
+ cpu=i860
+ vendor=alliant
;;
genix)
- basic_machine=ns32k-ns
- ;;
- gmicro)
- basic_machine=tron-gmicro
- os=-sysv
- ;;
- go32)
- basic_machine=i386-pc
- os=-go32
+ cpu=ns32k
+ vendor=ns
;;
h3050r* | hiux*)
- basic_machine=hppa1.1-hitachi
- os=-hiuxwe2
- ;;
- h8300hms)
- basic_machine=h8300-hitachi
- os=-hms
- ;;
- h8300xray)
- basic_machine=h8300-hitachi
- os=-xray
- ;;
- h8500hms)
- basic_machine=h8500-hitachi
- os=-hms
- ;;
- harris)
- basic_machine=m88k-harris
- os=-sysv3
- ;;
- hp300-*)
- basic_machine=m68k-hp
- ;;
- hp300bsd)
- basic_machine=m68k-hp
- os=-bsd
- ;;
- hp300hpux)
- basic_machine=m68k-hp
- os=-hpux
+ cpu=hppa1.1
+ vendor=hitachi
+ os=hiuxwe2
;;
hp3k9[0-9][0-9] | hp9[0-9][0-9])
- basic_machine=hppa1.0-hp
+ cpu=hppa1.0
+ vendor=hp
;;
hp9k2[0-9][0-9] | hp9k31[0-9])
- basic_machine=m68000-hp
+ cpu=m68000
+ vendor=hp
;;
hp9k3[2-9][0-9])
- basic_machine=m68k-hp
+ cpu=m68k
+ vendor=hp
;;
hp9k6[0-9][0-9] | hp6[0-9][0-9])
- basic_machine=hppa1.0-hp
+ cpu=hppa1.0
+ vendor=hp
;;
hp9k7[0-79][0-9] | hp7[0-79][0-9])
- basic_machine=hppa1.1-hp
+ cpu=hppa1.1
+ vendor=hp
;;
hp9k78[0-9] | hp78[0-9])
# FIXME: really hppa2.0-hp
- basic_machine=hppa1.1-hp
+ cpu=hppa1.1
+ vendor=hp
;;
hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
# FIXME: really hppa2.0-hp
- basic_machine=hppa1.1-hp
+ cpu=hppa1.1
+ vendor=hp
;;
hp9k8[0-9][13679] | hp8[0-9][13679])
- basic_machine=hppa1.1-hp
+ cpu=hppa1.1
+ vendor=hp
;;
hp9k8[0-9][0-9] | hp8[0-9][0-9])
- basic_machine=hppa1.0-hp
- ;;
- hppa-next)
- os=-nextstep3
- ;;
- hppaosf)
- basic_machine=hppa1.1-hp
- os=-osf
- ;;
- hppro)
- basic_machine=hppa1.1-hp
- os=-proelf
- ;;
- i370-ibm* | ibm*)
- basic_machine=i370-ibm
+ cpu=hppa1.0
+ vendor=hp
;;
i*86v32)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv32
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ vendor=pc
+ os=sysv32
;;
i*86v4*)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv4
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ vendor=pc
+ os=sysv4
;;
i*86v)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ vendor=pc
+ os=sysv
;;
i*86sol2)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-solaris2
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ vendor=pc
+ os=solaris2
;;
- i386mach)
- basic_machine=i386-mach
- os=-mach
- ;;
- i386-vsta | vsta)
- basic_machine=i386-unknown
- os=-vsta
+ j90 | j90-cray)
+ cpu=j90
+ vendor=cray
+ os=${os:-unicos}
;;
iris | iris4d)
- basic_machine=mips-sgi
+ cpu=mips
+ vendor=sgi
case $os in
- -irix*)
+ irix*)
;;
*)
- os=-irix4
+ os=irix4
;;
esac
;;
- isi68 | isi)
- basic_machine=m68k-isi
- os=-sysv
- ;;
- leon-*|leon[3-9]-*)
- basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'`
- ;;
- m68knommu)
- basic_machine=m68k-unknown
- os=-linux
- ;;
- m68knommu-*)
- basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
- os=-linux
- ;;
- m88k-omron*)
- basic_machine=m88k-omron
- ;;
- magnum | m3230)
- basic_machine=mips-mips
- os=-sysv
- ;;
- merlin)
- basic_machine=ns32k-utek
- os=-sysv
- ;;
- microblaze*)
- basic_machine=microblaze-xilinx
- ;;
- mingw64)
- basic_machine=x86_64-pc
- os=-mingw64
- ;;
- mingw32)
- basic_machine=i686-pc
- os=-mingw32
- ;;
- mingw32ce)
- basic_machine=arm-unknown
- os=-mingw32ce
- ;;
miniframe)
- basic_machine=m68000-convergent
- ;;
- *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
- basic_machine=m68k-atari
- os=-mint
- ;;
- mips3*-*)
- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
- ;;
- mips3*)
- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
- ;;
- monitor)
- basic_machine=m68k-rom68k
- os=-coff
- ;;
- morphos)
- basic_machine=powerpc-unknown
- os=-morphos
- ;;
- moxiebox)
- basic_machine=moxie-unknown
- os=-moxiebox
- ;;
- msdos)
- basic_machine=i386-pc
- os=-msdos
- ;;
- ms1-*)
- basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
- ;;
- msys)
- basic_machine=i686-pc
- os=-msys
- ;;
- mvs)
- basic_machine=i370-ibm
- os=-mvs
+ cpu=m68000
+ vendor=convergent
;;
- nacl)
- basic_machine=le32-unknown
- os=-nacl
- ;;
- ncr3000)
- basic_machine=i486-ncr
- os=-sysv4
- ;;
- netbsd386)
- basic_machine=i386-unknown
- os=-netbsd
- ;;
- netwinder)
- basic_machine=armv4l-rebel
- os=-linux
- ;;
- news | news700 | news800 | news900)
- basic_machine=m68k-sony
- os=-newsos
- ;;
- news1000)
- basic_machine=m68030-sony
- os=-newsos
+ *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
+ cpu=m68k
+ vendor=atari
+ os=mint
;;
news-3600 | risc-news)
- basic_machine=mips-sony
- os=-newsos
- ;;
- necv70)
- basic_machine=v70-nec
- os=-sysv
+ cpu=mips
+ vendor=sony
+ os=newsos
;;
next | m*-next)
- basic_machine=m68k-next
+ cpu=m68k
+ vendor=next
case $os in
- -nextstep* )
+ nextstep* )
;;
- -ns2*)
- os=-nextstep2
+ ns2*)
+ os=nextstep2
;;
*)
- os=-nextstep3
+ os=nextstep3
;;
esac
;;
- nh3000)
- basic_machine=m68k-harris
- os=-cxux
- ;;
- nh[45]000)
- basic_machine=m88k-harris
- os=-cxux
- ;;
- nindy960)
- basic_machine=i960-intel
- os=-nindy
- ;;
- mon960)
- basic_machine=i960-intel
- os=-mon960
- ;;
- nonstopux)
- basic_machine=mips-compaq
- os=-nonstopux
- ;;
np1)
- basic_machine=np1-gould
- ;;
- neo-tandem)
- basic_machine=neo-tandem
- ;;
- nse-tandem)
- basic_machine=nse-tandem
- ;;
- nsr-tandem)
- basic_machine=nsr-tandem
- ;;
- nsx-tandem)
- basic_machine=nsx-tandem
+ cpu=np1
+ vendor=gould
;;
op50n-* | op60c-*)
- basic_machine=hppa1.1-oki
- os=-proelf
- ;;
- openrisc | openrisc-*)
- basic_machine=or32-unknown
- ;;
- os400)
- basic_machine=powerpc-ibm
- os=-os400
- ;;
- OSE68000 | ose68000)
- basic_machine=m68000-ericsson
- os=-ose
- ;;
- os68k)
- basic_machine=m68k-none
- os=-os68k
+ cpu=hppa1.1
+ vendor=oki
+ os=proelf
;;
pa-hitachi)
- basic_machine=hppa1.1-hitachi
- os=-hiuxwe2
- ;;
- paragon)
- basic_machine=i860-intel
- os=-osf
- ;;
- parisc)
- basic_machine=hppa-unknown
- os=-linux
- ;;
- parisc-*)
- basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
- os=-linux
+ cpu=hppa1.1
+ vendor=hitachi
+ os=hiuxwe2
;;
pbd)
- basic_machine=sparc-tti
+ cpu=sparc
+ vendor=tti
;;
pbb)
- basic_machine=m68k-tti
+ cpu=m68k
+ vendor=tti
;;
- pc532 | pc532-*)
- basic_machine=ns32k-pc532
- ;;
- pc98)
- basic_machine=i386-pc
- ;;
- pc98-*)
- basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentium | p5 | k5 | k6 | nexgen | viac3)
- basic_machine=i586-pc
- ;;
- pentiumpro | p6 | 6x86 | athlon | athlon_*)
- basic_machine=i686-pc
- ;;
- pentiumii | pentium2 | pentiumiii | pentium3)
- basic_machine=i686-pc
- ;;
- pentium4)
- basic_machine=i786-pc
- ;;
- pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
- basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentiumpro-* | p6-* | 6x86-* | athlon-*)
- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentium4-*)
- basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+ pc532)
+ cpu=ns32k
+ vendor=pc532
;;
pn)
- basic_machine=pn-gould
- ;;
- power) basic_machine=power-ibm
- ;;
- ppc | ppcbe) basic_machine=powerpc-unknown
- ;;
- ppc-* | ppcbe-*)
- basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- ppcle | powerpclittle)
- basic_machine=powerpcle-unknown
+ cpu=pn
+ vendor=gould
;;
- ppcle-* | powerpclittle-*)
- basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- ppc64) basic_machine=powerpc64-unknown
- ;;
- ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- ppc64le | powerpc64little)
- basic_machine=powerpc64le-unknown
- ;;
- ppc64le-* | powerpc64little-*)
- basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
+ power)
+ cpu=power
+ vendor=ibm
;;
ps2)
- basic_machine=i386-ibm
- ;;
- pw32)
- basic_machine=i586-unknown
- os=-pw32
- ;;
- rdos | rdos64)
- basic_machine=x86_64-pc
- os=-rdos
- ;;
- rdos32)
- basic_machine=i386-pc
- os=-rdos
- ;;
- rom68k)
- basic_machine=m68k-rom68k
- os=-coff
+ cpu=i386
+ vendor=ibm
;;
rm[46]00)
- basic_machine=mips-siemens
+ cpu=mips
+ vendor=siemens
;;
rtpc | rtpc-*)
- basic_machine=romp-ibm
- ;;
- s390 | s390-*)
- basic_machine=s390-ibm
- ;;
- s390x | s390x-*)
- basic_machine=s390x-ibm
- ;;
- sa29200)
- basic_machine=a29k-amd
- os=-udi
- ;;
- sb1)
- basic_machine=mipsisa64sb1-unknown
- ;;
- sb1el)
- basic_machine=mipsisa64sb1el-unknown
+ cpu=romp
+ vendor=ibm
;;
sde)
- basic_machine=mipsisa32-sde
- os=-elf
+ cpu=mipsisa32
+ vendor=sde
+ os=${os:-elf}
;;
- sei)
- basic_machine=mips-sei
- os=-seiux
+ simso-wrs)
+ cpu=sparclite
+ vendor=wrs
+ os=vxworks
;;
- sequent)
- basic_machine=i386-sequent
+ tower | tower-32)
+ cpu=m68k
+ vendor=ncr
;;
- sh)
- basic_machine=sh-hitachi
- os=-hms
+ vpp*|vx|vx-*)
+ cpu=f301
+ vendor=fujitsu
;;
- sh5el)
- basic_machine=sh5le-unknown
+ w65)
+ cpu=w65
+ vendor=wdc
;;
- sh64)
- basic_machine=sh64-unknown
+ w89k-*)
+ cpu=hppa1.1
+ vendor=winbond
+ os=proelf
;;
- sparclite-wrs | simso-wrs)
- basic_machine=sparclite-wrs
- os=-vxworks
+ none)
+ cpu=none
+ vendor=none
;;
- sps7)
- basic_machine=m68k-bull
- os=-sysv2
+ leon|leon[3-9])
+ cpu=sparc
+ vendor=$basic_machine
;;
- spur)
- basic_machine=spur-unknown
+ leon-*|leon[3-9]-*)
+ cpu=sparc
+ vendor=`echo "$basic_machine" | sed 's/-.*//'`
;;
- st2000)
- basic_machine=m68k-tandem
+
+ *-*)
+ IFS="-" read cpu vendor <<EOF
+$basic_machine
+EOF
;;
- stratus)
- basic_machine=i860-stratus
- os=-sysv4
+ # We use `pc' rather than `unknown'
+ # because (1) that's what they normally are, and
+ # (2) the word "unknown" tends to confuse beginning users.
+ i*86 | x86_64)
+ cpu=$basic_machine
+ vendor=pc
;;
- strongarm-* | thumb-*)
- basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
+ # These rules are duplicated from below for sake of the special case above;
+ # i.e. things that normalized to x86 arches should also default to "pc"
+ pc98)
+ cpu=i386
+ vendor=pc
;;
- sun2)
- basic_machine=m68000-sun
+ x64 | amd64)
+ cpu=x86_64
+ vendor=pc
;;
- sun2os3)
- basic_machine=m68000-sun
- os=-sunos3
+ # Recognize the basic CPU types without company name.
+ *)
+ cpu=$basic_machine
+ vendor=unknown
;;
- sun2os4)
- basic_machine=m68000-sun
- os=-sunos4
+esac
+
+unset -v basic_machine
+
+# Decode basic machines in the full and proper CPU-Company form.
+case $cpu-$vendor in
+ # Here we handle the default manufacturer of certain CPU types in canonical form. It is in
+ # some cases the only manufacturer, in others, it is the most popular.
+ craynv-unknown)
+ vendor=cray
+ os=${os:-unicosmp}
;;
- sun3os3)
- basic_machine=m68k-sun
- os=-sunos3
+ c90-unknown | c90-cray)
+ vendor=cray
+ os=${os:-unicos}
;;
- sun3os4)
- basic_machine=m68k-sun
- os=-sunos4
+ fx80-unknown)
+ vendor=alliant
;;
- sun4os3)
- basic_machine=sparc-sun
- os=-sunos3
+ romp-unknown)
+ vendor=ibm
;;
- sun4os4)
- basic_machine=sparc-sun
- os=-sunos4
+ mmix-unknown)
+ vendor=knuth
;;
- sun4sol2)
- basic_machine=sparc-sun
- os=-solaris2
+ microblaze-unknown | microblazeel-unknown)
+ vendor=xilinx
;;
- sun3 | sun3-*)
- basic_machine=m68k-sun
+ rs6000-unknown)
+ vendor=ibm
;;
- sun4)
- basic_machine=sparc-sun
+ vax-unknown)
+ vendor=dec
;;
- sun386 | sun386i | roadrunner)
- basic_machine=i386-sun
+ pdp11-unknown)
+ vendor=dec
;;
- sv1)
- basic_machine=sv1-cray
- os=-unicos
+ we32k-unknown)
+ vendor=att
;;
- symmetry)
- basic_machine=i386-sequent
- os=-dynix
+ cydra-unknown)
+ vendor=cydrome
;;
- t3e)
- basic_machine=alphaev5-cray
- os=-unicos
+ i370-ibm*)
+ vendor=ibm
;;
- t90)
- basic_machine=t90-cray
- os=-unicos
+ orion-unknown)
+ vendor=highlevel
;;
- tile*)
- basic_machine=$basic_machine-unknown
- os=-linux-gnu
+ xps-unknown | xps100-unknown)
+ cpu=xps100
+ vendor=honeywell
;;
- tx39)
- basic_machine=mipstx39-unknown
+
+ # Here we normalize CPU types with a missing or matching vendor
+ dpx20-unknown | dpx20-bull)
+ cpu=rs6000
+ vendor=bull
+ os=${os:-bosx}
;;
- tx39el)
- basic_machine=mipstx39el-unknown
+
+ # Here we normalize CPU types irrespective of the vendor
+ amd64-*)
+ cpu=x86_64
;;
- toad1)
- basic_machine=pdp10-xkl
- os=-tops20
+ blackfin-*)
+ cpu=bfin
+ os=linux
;;
- tower | tower-32)
- basic_machine=m68k-ncr
+ c54x-*)
+ cpu=tic54x
;;
- tpf)
- basic_machine=s390x-ibm
- os=-tpf
+ c55x-*)
+ cpu=tic55x
;;
- udi29k)
- basic_machine=a29k-amd
- os=-udi
+ c6x-*)
+ cpu=tic6x
;;
- ultra3)
- basic_machine=a29k-nyu
- os=-sym1
+ e500v[12]-*)
+ cpu=powerpc
+ os=$os"spe"
;;
- v810 | necv810)
- basic_machine=v810-nec
- os=-none
+ mips3*-*)
+ cpu=mips64
;;
- vaxv)
- basic_machine=vax-dec
- os=-sysv
+ ms1-*)
+ cpu=mt
;;
- vms)
- basic_machine=vax-dec
- os=-vms
+ m68knommu-*)
+ cpu=m68k
+ os=linux
;;
- vpp*|vx|vx-*)
- basic_machine=f301-fujitsu
+ m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
+ cpu=s12z
;;
- vxworks960)
- basic_machine=i960-wrs
- os=-vxworks
+ openrisc-*)
+ cpu=or32
;;
- vxworks68)
- basic_machine=m68k-wrs
- os=-vxworks
+ parisc-*)
+ cpu=hppa
+ os=linux
;;
- vxworks29k)
- basic_machine=a29k-wrs
- os=-vxworks
+ pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+ cpu=i586
;;
- wasm32)
- basic_machine=wasm32-unknown
+ pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
+ cpu=i686
;;
- w65*)
- basic_machine=w65-wdc
- os=-none
+ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+ cpu=i686
;;
- w89k-*)
- basic_machine=hppa1.1-winbond
- os=-proelf
+ pentium4-*)
+ cpu=i786
;;
- x64)
- basic_machine=x86_64-pc
+ pc98-*)
+ cpu=i386
;;
- xbox)
- basic_machine=i686-pc
- os=-mingw32
+ ppc-* | ppcbe-*)
+ cpu=powerpc
;;
- xps | xps100)
- basic_machine=xps100-honeywell
+ ppcle-* | powerpclittle-*)
+ cpu=powerpcle
;;
- xscale-* | xscalee[bl]-*)
- basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
+ ppc64-*)
+ cpu=powerpc64
;;
- ymp)
- basic_machine=ymp-cray
- os=-unicos
+ ppc64le-* | powerpc64little-*)
+ cpu=powerpc64le
;;
- z8k-*-coff)
- basic_machine=z8k-unknown
- os=-sim
+ sb1-*)
+ cpu=mipsisa64sb1
;;
- z80-*-coff)
- basic_machine=z80-unknown
- os=-sim
+ sb1el-*)
+ cpu=mipsisa64sb1el
;;
- none)
- basic_machine=none-none
- os=-none
+ sh5e[lb]-*)
+ cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
;;
-
-# Here we handle the default manufacturer of certain CPU types. It is in
-# some cases the only manufacturer, in others, it is the most popular.
- w89k)
- basic_machine=hppa1.1-winbond
+ spur-*)
+ cpu=spur
;;
- op50n)
- basic_machine=hppa1.1-oki
+ strongarm-* | thumb-*)
+ cpu=arm
;;
- op60c)
- basic_machine=hppa1.1-oki
+ tx39-*)
+ cpu=mipstx39
;;
- romp)
- basic_machine=romp-ibm
+ tx39el-*)
+ cpu=mipstx39el
;;
- mmix)
- basic_machine=mmix-knuth
+ x64-*)
+ cpu=x86_64
;;
- rs6000)
- basic_machine=rs6000-ibm
+ xscale-* | xscalee[bl]-*)
+ cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
;;
- vax)
- basic_machine=vax-dec
+
+ # Recognize the canonical CPU Types that limit and/or modify the
+ # company names they are paired with.
+ cr16-*)
+ os=${os:-elf}
;;
- pdp10)
- # there are many clones, so DEC is not a safe bet
- basic_machine=pdp10-unknown
+ crisv32-* | etraxfs*-*)
+ cpu=crisv32
+ vendor=axis
;;
- pdp11)
- basic_machine=pdp11-dec
+ cris-* | etrax*-*)
+ cpu=cris
+ vendor=axis
;;
- we32k)
- basic_machine=we32k-att
+ crx-*)
+ os=${os:-elf}
;;
- sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
- basic_machine=sh-unknown
+ neo-tandem)
+ cpu=neo
+ vendor=tandem
;;
- sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
- basic_machine=sparc-sun
+ nse-tandem)
+ cpu=nse
+ vendor=tandem
;;
- cydra)
- basic_machine=cydra-cydrome
+ nsr-tandem)
+ cpu=nsr
+ vendor=tandem
;;
- orion)
- basic_machine=orion-highlevel
+ nsv-tandem)
+ cpu=nsv
+ vendor=tandem
;;
- orion105)
- basic_machine=clipper-highlevel
+ nsx-tandem)
+ cpu=nsx
+ vendor=tandem
;;
- mac | mpw | mac-mpw)
- basic_machine=m68k-apple
+ s390-*)
+ cpu=s390
+ vendor=ibm
;;
- pmac | pmac-mpw)
- basic_machine=powerpc-apple
+ s390x-*)
+ cpu=s390x
+ vendor=ibm
;;
- *-unknown)
- # Make sure to match an already-canonicalized machine name.
+ tile*-*)
+ os=${os:-linux-gnu}
;;
+
*)
- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
- exit 1
+ # Recognize the canonical CPU types that are allowed with any
+ # company name.
+ case $cpu in
+ 1750a | 580 \
+ | a29k \
+ | aarch64 | aarch64_be \
+ | abacus \
+ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
+ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
+ | alphapca5[67] | alpha64pca5[67] \
+ | am33_2.0 \
+ | amdgcn \
+ | arc | arceb \
+ | arm | arm[lb]e | arme[lb] | armv* \
+ | avr | avr32 \
+ | asmjs \
+ | ba \
+ | be32 | be64 \
+ | bfin | bs2000 \
+ | c[123]* | c30 | [cjt]90 | c4x \
+ | c8051 | clipper | craynv | csky | cydra \
+ | d10v | d30v | dlx | dsp16xx \
+ | e2k | elxsi | epiphany \
+ | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
+ | h8300 | h8500 \
+ | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+ | hexagon \
+ | i370 | i*86 | i860 | i960 | ia16 | ia64 \
+ | ip2k | iq2000 \
+ | k1om \
+ | le32 | le64 \
+ | lm32 \
+ | m32c | m32r | m32rle \
+ | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k | v70 | w65 \
+ | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip \
+ | m88110 | m88k | maxq | mb | mcore | mep | metag \
+ | microblaze | microblazeel \
+ | mips | mipsbe | mipseb | mipsel | mipsle \
+ | mips16 \
+ | mips64 | mips64el \
+ | mips64octeon | mips64octeonel \
+ | mips64orion | mips64orionel \
+ | mips64r5900 | mips64r5900el \
+ | mips64vr | mips64vrel \
+ | mips64vr4100 | mips64vr4100el \
+ | mips64vr4300 | mips64vr4300el \
+ | mips64vr5000 | mips64vr5000el \
+ | mips64vr5900 | mips64vr5900el \
+ | mipsisa32 | mipsisa32el \
+ | mipsisa32r2 | mipsisa32r2el \
+ | mipsisa32r6 | mipsisa32r6el \
+ | mipsisa64 | mipsisa64el \
+ | mipsisa64r2 | mipsisa64r2el \
+ | mipsisa64r6 | mipsisa64r6el \
+ | mipsisa64sb1 | mipsisa64sb1el \
+ | mipsisa64sr71k | mipsisa64sr71kel \
+ | mipsr5900 | mipsr5900el \
+ | mipstx39 | mipstx39el \
+ | mmix \
+ | mn10200 | mn10300 \
+ | moxie \
+ | mt \
+ | msp430 \
+ | nds32 | nds32le | nds32be \
+ | nfp \
+ | nios | nios2 | nios2eb | nios2el \
+ | none | np1 | ns16k | ns32k \
+ | open8 \
+ | or1k* \
+ | or32 \
+ | orion \
+ | pdp10 | pdp11 | pj | pjl | pn | power \
+ | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
+ | pru \
+ | pyramid \
+ | riscv | riscv32 | riscv64 \
+ | rl78 | romp | rs6000 | rx \
+ | score \
+ | sh | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
+ | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
+ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
+ | sparclite \
+ | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
+ | spu \
+ | tahoe \
+ | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
+ | tron \
+ | ubicom32 \
+ | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
+ | vax \
+ | visium \
+ | wasm32 \
+ | we32k \
+ | x86 | x86_64 | xc16x | xgate | xps100 \
+ | xstormy16 | xtensa* \
+ | ymp \
+ | z8k | z80)
+ ;;
+
+ *)
+ echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2
+ exit 1
+ ;;
+ esac
;;
esac
# Here we canonicalize certain aliases for manufacturers.
-case $basic_machine in
- *-digital*)
- basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
+case $vendor in
+ digital*)
+ vendor=dec
;;
- *-commodore*)
- basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
+ commodore*)
+ vendor=cbm
;;
*)
;;
@@ -1362,213 +1271,246 @@ esac
# Decode manufacturer-specific aliases for certain operating systems.
-if [ x"$os" != x"" ]
+if [ x$os != x ]
then
case $os in
# First match some system type aliases that might get confused
# with valid system types.
- # -solaris* is a basic system type, with this one exception.
- -auroraux)
- os=-auroraux
+ # solaris* is a basic system type, with this one exception.
+ auroraux)
+ os=auroraux
;;
- -solaris1 | -solaris1.*)
- os=`echo $os | sed -e 's|solaris1|sunos4|'`
+ bluegene*)
+ os=cnk
;;
- -solaris)
- os=-solaris2
+ solaris1 | solaris1.*)
+ os=`echo $os | sed -e 's|solaris1|sunos4|'`
;;
- -svr4*)
- os=-sysv4
+ solaris)
+ os=solaris2
;;
- -unixware*)
- os=-sysv4.2uw
+ unixware*)
+ os=sysv4.2uw
;;
- -gnu/linux*)
+ gnu/linux*)
os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
;;
+ # es1800 is here to avoid being matched by es* (a different OS)
+ es1800*)
+ os=ose
+ ;;
+ # Some version numbers need modification
+ chorusos*)
+ os=chorusos
+ ;;
+ isc)
+ os=isc2.2
+ ;;
+ sco6)
+ os=sco5v6
+ ;;
+ sco5)
+ os=sco3.2v5
+ ;;
+ sco4)
+ os=sco3.2v4
+ ;;
+ sco3.2.[4-9]*)
+ os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+ ;;
+ sco3.2v[4-9]* | sco5v6*)
+ # Don't forget version if it is 3.2v4 or newer.
+ ;;
+ scout)
+ # Don't match below
+ ;;
+ sco*)
+ os=sco3.2v2
+ ;;
+ psos*)
+ os=psos
+ ;;
# Now accept the basic system types.
# The portable systems comes first.
# Each alternative MUST end in a * to match a version number.
- # -sysv* is not here because it comes later, after sysvr4.
- -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
- | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
- | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
- | -sym* | -kopensolaris* | -plan9* \
- | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
- | -aos* | -aros* | -cloudabi* | -sortix* \
- | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
- | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
- | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
- | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \
- | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
- | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
- | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
- | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
- | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \
- | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
- | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
- | -linux-newlib* | -linux-musl* | -linux-uclibc* \
- | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
- | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
- | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
- | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
- | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
- | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
- | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
- | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
- | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox* | -bme*)
+ # sysv* is not here because it comes later, after sysvr4.
+ gnu* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
+ | *vms* | esix* | aix* | cnk* | sunos | sunos[34]*\
+ | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
+ | sym* | kopensolaris* | plan9* \
+ | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
+ | aos* | aros* | cloudabi* | sortix* \
+ | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
+ | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
+ | knetbsd* | mirbsd* | netbsd* \
+ | bitrig* | openbsd* | solidbsd* | libertybsd* \
+ | ekkobsd* | kfreebsd* | freebsd* | riscix* | lynxos* \
+ | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
+ | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
+ | udi* | eabi* | lites* | ieee* | go32* | aux* | hcos* \
+ | chorusrdb* | cegcc* | glidix* \
+ | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
+ | midipix* | mingw32* | mingw64* | linux-gnu* | linux-android* \
+ | linux-newlib* | linux-musl* | linux-uclibc* \
+ | uxpv* | beos* | mpeix* | udk* | moxiebox* \
+ | interix* | uwin* | mks* | rhapsody* | darwin* \
+ | openstep* | oskit* | conix* | pw32* | nonstopux* \
+ | storm-chaos* | tops10* | tenex* | tops20* | its* \
+ | os2* | vos* | palmos* | uclinux* | nucleus* \
+ | morphos* | superux* | rtmk* | windiss* \
+ | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
+ | skyos* | haiku* | rdos* | toppers* | drops* | es* \
+ | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
+ | midnightbsd* | amdhsa* | unleashed* | emscripten*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
- -qnx*)
- case $basic_machine in
- x86-* | i*86-*)
+ qnx*)
+ case $cpu in
+ x86 | i*86)
;;
*)
- os=-nto$os
+ os=nto-$os
;;
esac
;;
- -nto-qnx*)
+ hiux*)
+ os=hiuxwe2
;;
- -nto*)
- os=`echo $os | sed -e 's|nto|nto-qnx|'`
+ nto-qnx*)
;;
- -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
- | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
- | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
+ nto*)
+ os=`echo $os | sed -e 's|nto|nto-qnx|'`
;;
- -mac*)
- os=`echo $os | sed -e 's|mac|macos|'`
+ sim | xray | os68k* | v88r* \
+ | windows* | osx | abug | netware* | os9* \
+ | macos* | mpw* | magic* | mmixware* | mon960* | lnews*)
;;
- -linux-dietlibc)
- os=-linux-dietlibc
+ linux-dietlibc)
+ os=linux-dietlibc
;;
- -linux*)
+ linux*)
os=`echo $os | sed -e 's|linux|linux-gnu|'`
;;
- -sunos5*)
- os=`echo $os | sed -e 's|sunos5|solaris2|'`
+ lynx*178)
+ os=lynxos178
;;
- -sunos6*)
- os=`echo $os | sed -e 's|sunos6|solaris3|'`
+ lynx*5)
+ os=lynxos5
;;
- -opened*)
- os=-openedition
+ lynx*)
+ os=lynxos
;;
- -os400*)
- os=-os400
+ mac*)
+ os=`echo "$os" | sed -e 's|mac|macos|'`
;;
- -wince*)
- os=-wince
+ opened*)
+ os=openedition
;;
- -osfrose*)
- os=-osfrose
+ os400*)
+ os=os400
;;
- -osf*)
- os=-osf
+ sunos5*)
+ os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
;;
- -utek*)
- os=-bsd
+ sunos6*)
+ os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
;;
- -dynix*)
- os=-bsd
+ wince*)
+ os=wince
;;
- -acis*)
- os=-aos
+ utek*)
+ os=bsd
;;
- -atheos*)
- os=-atheos
+ dynix*)
+ os=bsd
;;
- -syllable*)
- os=-syllable
+ acis*)
+ os=aos
;;
- -386bsd)
- os=-bsd
+ atheos*)
+ os=atheos
;;
- -ctix* | -uts*)
- os=-sysv
+ syllable*)
+ os=syllable
;;
- -nova*)
- os=-rtmk-nova
- ;;
- -ns2)
- os=-nextstep2
+ 386bsd)
+ os=bsd
;;
- -nsk*)
- os=-nsk
+ ctix* | uts*)
+ os=sysv
;;
- # Preserve the version number of sinix5.
- -sinix5.*)
- os=`echo $os | sed -e 's|sinix|sysv|'`
+ nova*)
+ os=rtmk-nova
;;
- -sinix*)
- os=-sysv4
+ ns2)
+ os=nextstep2
;;
- -tpf*)
- os=-tpf
+ nsk*)
+ os=nsk
;;
- -triton*)
- os=-sysv3
+ # Preserve the version number of sinix5.
+ sinix5.*)
+ os=`echo $os | sed -e 's|sinix|sysv|'`
;;
- -oss*)
- os=-sysv3
+ sinix*)
+ os=sysv4
;;
- -svr4)
- os=-sysv4
+ tpf*)
+ os=tpf
;;
- -svr3)
- os=-sysv3
+ triton*)
+ os=sysv3
;;
- -sysvr4)
- os=-sysv4
+ oss*)
+ os=sysv3
;;
- # This must come after -sysvr4.
- -sysv*)
+ svr4*)
+ os=sysv4
;;
- -ose*)
- os=-ose
+ svr3)
+ os=sysv3
;;
- -es1800*)
- os=-ose
+ sysvr4)
+ os=sysv4
;;
- -xenix)
- os=-xenix
+ # This must come after sysvr4.
+ sysv*)
;;
- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
- os=-mint
+ ose*)
+ os=ose
;;
- -aros*)
- os=-aros
+ *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
+ os=mint
;;
- -zvmoe)
- os=-zvmoe
+ zvmoe)
+ os=zvmoe
;;
- -dicos*)
- os=-dicos
+ dicos*)
+ os=dicos
;;
- -pikeos*)
+ pikeos*)
# Until real need of OS specific support for
# particular features comes up, bare metal
# configurations are quite functional.
- case $basic_machine in
+ case $cpu in
arm*)
- os=-eabi
+ os=eabi
;;
*)
- os=-elf
+ os=elf
;;
esac
;;
- -nacl*)
+ nacl*)
;;
- -ios)
+ ios)
;;
- -none)
+ none)
+ ;;
+ *-eabi)
;;
*)
- # Get rid of the `-' at the beginning of $os.
- os=`echo $os | sed 's/[^-]*-//'`
- echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
+ echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2
exit 1
;;
esac
@@ -1584,264 +1526,265 @@ else
# will signal an error saying that MANUFACTURER isn't an operating
# system, and we'll never get to this point.
-case $basic_machine in
+case $cpu-$vendor in
score-*)
- os=-elf
+ os=elf
;;
spu-*)
- os=-elf
+ os=elf
;;
*-acorn)
- os=-riscix1.2
+ os=riscix1.2
;;
arm*-rebel)
- os=-linux
+ os=linux
;;
arm*-semi)
- os=-aout
+ os=aout
;;
c4x-* | tic4x-*)
- os=-coff
+ os=coff
;;
c8051-*)
- os=-elf
+ os=elf
+ ;;
+ clipper-intergraph)
+ os=clix
;;
hexagon-*)
- os=-elf
+ os=elf
;;
tic54x-*)
- os=-coff
+ os=coff
;;
tic55x-*)
- os=-coff
+ os=coff
;;
tic6x-*)
- os=-coff
+ os=coff
;;
# This must come before the *-dec entry.
pdp10-*)
- os=-tops20
+ os=tops20
;;
pdp11-*)
- os=-none
+ os=none
;;
*-dec | vax-*)
- os=-ultrix4.2
+ os=ultrix4.2
;;
m68*-apollo)
- os=-domain
+ os=domain
;;
i386-sun)
- os=-sunos4.0.2
+ os=sunos4.0.2
;;
m68000-sun)
- os=-sunos3
+ os=sunos3
;;
m68*-cisco)
- os=-aout
+ os=aout
;;
mep-*)
- os=-elf
+ os=elf
;;
mips*-cisco)
- os=-elf
+ os=elf
;;
mips*-*)
- os=-elf
+ os=elf
;;
or32-*)
- os=-coff
+ os=coff
;;
*-tti) # must be before sparc entry or we get the wrong os.
- os=-sysv3
+ os=sysv3
;;
sparc-* | *-sun)
- os=-sunos4.1.1
+ os=sunos4.1.1
;;
pru-*)
- os=-elf
+ os=elf
;;
*-be)
- os=-beos
- ;;
- *-haiku)
- os=-haiku
+ os=beos
;;
*-ibm)
- os=-aix
+ os=aix
;;
*-knuth)
- os=-mmixware
+ os=mmixware
;;
*-wec)
- os=-proelf
+ os=proelf
;;
*-winbond)
- os=-proelf
+ os=proelf
;;
*-oki)
- os=-proelf
+ os=proelf
;;
*-hp)
- os=-hpux
+ os=hpux
;;
*-hitachi)
- os=-hiux
+ os=hiux
;;
i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
- os=-sysv
+ os=sysv
;;
*-cbm)
- os=-amigaos
+ os=amigaos
;;
*-dg)
- os=-dgux
+ os=dgux
;;
*-dolphin)
- os=-sysv3
+ os=sysv3
;;
m68k-ccur)
- os=-rtu
+ os=rtu
;;
m88k-omron*)
- os=-luna
+ os=luna
;;
*-next)
- os=-nextstep
+ os=nextstep
;;
*-sequent)
- os=-ptx
+ os=ptx
;;
*-crds)
- os=-unos
+ os=unos
;;
*-ns)
- os=-genix
+ os=genix
;;
i370-*)
- os=-mvs
- ;;
- *-next)
- os=-nextstep3
+ os=mvs
;;
*-gould)
- os=-sysv
+ os=sysv
;;
*-highlevel)
- os=-bsd
+ os=bsd
;;
*-encore)
- os=-bsd
+ os=bsd
;;
*-sgi)
- os=-irix
+ os=irix
;;
*-siemens)
- os=-sysv4
+ os=sysv4
;;
*-masscomp)
- os=-rtu
+ os=rtu
;;
f30[01]-fujitsu | f700-fujitsu)
- os=-uxpv
+ os=uxpv
;;
*-rom68k)
- os=-coff
+ os=coff
;;
*-*bug)
- os=-coff
+ os=coff
;;
*-apple)
- os=-macos
+ os=macos
;;
*-atari*)
- os=-mint
+ os=mint
+ ;;
+ *-wrs)
+ os=vxworks
;;
*)
- os=-none
+ os=none
;;
esac
fi
# Here we handle the case where we know the os, and the CPU type, but not the
# manufacturer. We pick the logical manufacturer.
-vendor=unknown
-case $basic_machine in
- *-unknown)
+case $vendor in
+ unknown)
case $os in
- -riscix*)
+ riscix*)
vendor=acorn
;;
- -sunos*)
+ sunos*)
vendor=sun
;;
- -cnk*|-aix*)
+ cnk*|-aix*)
vendor=ibm
;;
- -beos*)
+ beos*)
vendor=be
;;
- -hpux*)
+ hpux*)
vendor=hp
;;
- -mpeix*)
+ mpeix*)
vendor=hp
;;
- -hiux*)
+ hiux*)
vendor=hitachi
;;
- -unos*)
+ unos*)
vendor=crds
;;
- -dgux*)
+ dgux*)
vendor=dg
;;
- -luna*)
+ luna*)
vendor=omron
;;
- -genix*)
+ genix*)
vendor=ns
;;
- -mvs* | -opened*)
+ clix*)
+ vendor=intergraph
+ ;;
+ mvs* | opened*)
vendor=ibm
;;
- -os400*)
+ os400*)
vendor=ibm
;;
- -ptx*)
+ ptx*)
vendor=sequent
;;
- -tpf*)
+ tpf*)
vendor=ibm
;;
- -vxsim* | -vxworks* | -windiss*)
+ vxsim* | vxworks* | windiss*)
vendor=wrs
;;
- -aux*)
+ aux*)
vendor=apple
;;
- -hms*)
+ hms*)
vendor=hitachi
;;
- -mpw* | -macos*)
+ mpw* | macos*)
vendor=apple
;;
- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+ *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
vendor=atari
;;
- -vos*)
+ vos*)
vendor=stratus
;;
esac
- basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
;;
esac
-echo $basic_machine$os
+echo "$cpu-$vendor-$os"
exit
# Local variables:
-# eval: (add-hook 'write-file-functions 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "timestamp='"
# time-stamp-format: "%:y-%02m-%02d"
# time-stamp-end: "'"
diff --git a/scripts/cross-test-ssh.sh b/scripts/cross-test-ssh.sh
index 400ef7d595..6654495de9 100755
--- a/scripts/cross-test-ssh.sh
+++ b/scripts/cross-test-ssh.sh
@@ -1,6 +1,6 @@
#!/bin/bash
# Run a testcase on a remote system, via ssh.
-# Copyright (C) 2012-2018 Free Software Foundation, Inc.
+# Copyright (C) 2012-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
@@ -15,7 +15,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
# usage: cross-test-ssh.sh [--ssh SSH] HOST COMMAND ...
# Run with --help flag to get more detailed help.
diff --git a/scripts/evaluate-test.sh b/scripts/evaluate-test.sh
index b6420ea9fc..5ca0c8822e 100755
--- a/scripts/evaluate-test.sh
+++ b/scripts/evaluate-test.sh
@@ -1,6 +1,6 @@
#!/bin/sh
# Output a test status line.
-# Copyright (C) 2012-2018 Free Software Foundation, Inc.
+# Copyright (C) 2012-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
@@ -15,7 +15,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
# usage: evaluate-test.sh test_name rc xfail stop_on_failure
diff --git a/scripts/gen-as-const.awk b/scripts/gen-as-const.awk
deleted file mode 100644
index 1ffd5f2c1c..0000000000
--- a/scripts/gen-as-const.awk
+++ /dev/null
@@ -1,63 +0,0 @@
-# Script used in producing headers of assembly constants from C expressions.
-# The input to this script looks like:
-# #cpp-directive ...
-# NAME1
-# NAME2 expression ...
-# The output of this script is C code to be run through gcc -S and then
-# massaged to extract the integer constant values of the given C expressions.
-# A line giving just a name implies an expression consisting of just that name.
-
-BEGIN { started = 0 }
-
-# cpp directives go straight through.
-/^#/ { print; next }
-
-NF >= 1 && !started {
- if (test) {
- print "\n#include <inttypes.h>";
- print "\n#include <stdio.h>";
- print "\n#include <bits/wordsize.h>";
- print "\n#if __WORDSIZE == 64";
- print "\ntypedef uint64_t c_t;";
- print "\n#define U(n) UINT64_C (n)";
- print "\n#define PRI PRId64";
- print "\n#else";
- print "\ntypedef uint32_t c_t;";
- print "\n#define U(n) UINT32_C (n)";
- print "\n#define PRI PRId32";
- print "\n#endif";
- print "\nstatic int do_test (void)\n{\n int bad = 0, good = 0;\n";
- print "#define TEST(name, source, expr) \\\n" \
- " if (U (asconst_##name) != (c_t) (expr)) { ++bad;" \
- " fprintf (stderr, \"%s: %s is %\" PRI \" but %s is %\"PRI \"\\n\"," \
- " source, #name, U (asconst_##name), #expr, (c_t) (expr));" \
- " } else ++good;\n";
- }
- else
- print "void dummy(void) {";
- started = 1;
-}
-
-# Separator.
-$1 == "--" { next }
-
-NF == 1 { sub(/^.*$/, "& &"); }
-
-NF > 1 {
- name = $1;
- sub(/^[^ ]+[ ]+/, "");
- if (test)
- print " TEST (" name ", \"" FILENAME ":" FNR "\", " $0 ")";
- else
- printf "asm (\"@@@name@@@%s@@@value@@@%%0@@@end@@@\" : : \"i\" ((long) %s));\n",
- name, $0;
-}
-
-END {
- if (test) {
- print " printf (\"%d errors in %d tests\\n\", bad, good + bad);"
- print " return bad != 0 || good == 0;\n}\n";
- print "#define TEST_FUNCTION do_test ()";
- }
- else if (started) print "}";
-}
diff --git a/scripts/gen-as-const.py b/scripts/gen-as-const.py
new file mode 100644
index 0000000000..8a34ffdcb8
--- /dev/null
+++ b/scripts/gen-as-const.py
@@ -0,0 +1,120 @@
+#!/usr/bin/python3
+# Produce headers of assembly constants from C expressions.
+# Copyright (C) 2018-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
+# <https://www.gnu.org/licenses/>.
+
+# The input to this script looks like:
+# #cpp-directive ...
+# NAME1
+# NAME2 expression ...
+# A line giving just a name implies an expression consisting of just that name.
+
+import argparse
+
+import glibcextract
+
+
+def gen_test(sym_data):
+ """Generate a test for the values of some C constants.
+
+ The first argument is as for glibcextract.compute_c_consts.
+
+ """
+ out_lines = []
+ for arg in sym_data:
+ if isinstance(arg, str):
+ if arg == 'START':
+ out_lines.append('#include <stdint.h>\n'
+ '#include <stdio.h>\n'
+ '#include <bits/wordsize.h>\n'
+ '#if __WORDSIZE == 64\n'
+ 'typedef uint64_t c_t;\n'
+ '# define U(n) UINT64_C (n)\n'
+ '#else\n'
+ 'typedef uint32_t c_t;\n'
+ '# define U(n) UINT32_C (n)\n'
+ '#endif\n'
+ 'static int\n'
+ 'do_test (void)\n'
+ '{\n'
+ # Compilation test only, using static
+ # assertions.
+ ' return 0;\n'
+ '}\n'
+ '#include <support/test-driver.c>')
+ else:
+ out_lines.append(arg)
+ continue
+ name = arg[0]
+ value = arg[1]
+ out_lines.append('_Static_assert (U (asconst_%s) == (c_t) (%s), '
+ '"value of %s");'
+ % (name, value, name))
+ return '\n'.join(out_lines)
+
+
+def main():
+ """The main entry point."""
+ parser = argparse.ArgumentParser(
+ description='Produce headers of assembly constants.')
+ parser.add_argument('--cc', metavar='CC',
+ help='C compiler (including options) to use')
+ parser.add_argument('--test', action='store_true',
+ help='Generate test case instead of header')
+ parser.add_argument('--python', action='store_true',
+ help='Generate Python file instead of header')
+ parser.add_argument('sym_file',
+ help='.sym file to process')
+ args = parser.parse_args()
+ sym_data = []
+ with open(args.sym_file, 'r') as sym_file:
+ started = False
+ for line in sym_file:
+ line = line.strip()
+ if line == '':
+ continue
+ # Pass preprocessor directives through.
+ if line.startswith('#'):
+ sym_data.append(line)
+ continue
+ words = line.split(maxsplit=1)
+ if not started:
+ sym_data.append('START')
+ started = True
+ # Separator.
+ if words[0] == '--':
+ continue
+ name = words[0]
+ value = words[1] if len(words) > 1 else words[0]
+ sym_data.append((name, value))
+ if not started:
+ sym_data.append('START')
+ if args.test:
+ print(gen_test(sym_data))
+ elif args.python:
+ consts = glibcextract.compute_c_consts(sym_data, args.cc)
+ print('# GENERATED FILE\n'
+ '\n'
+ '# Constant definitions.\n'
+ '# See gen-as-const.py for details.\n')
+ print(''.join('%s = %s\n' % c for c in sorted(consts.items())), end='')
+ else:
+ consts = glibcextract.compute_c_consts(sym_data, args.cc)
+ print(''.join('#define %s %s\n' % c for c in sorted(consts.items())), end='')
+
+if __name__ == '__main__':
+ main()
diff --git a/scripts/gen-py-const.awk b/scripts/gen-py-const.awk
deleted file mode 100644
index 91220281c5..0000000000
--- a/scripts/gen-py-const.awk
+++ /dev/null
@@ -1,118 +0,0 @@
-# Script to generate constants for Python pretty printers.
-#
-# Copyright (C) 2016-2018 Free Software 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
-# <http://www.gnu.org/licenses/>.
-
-# This script is a smaller version of the clever gen-asm-const.awk hack used to
-# generate ASM constants from .sym files. We'll use this to generate constants
-# for Python pretty printers.
-#
-# The input to this script are .pysym files that look like:
-# #C_Preprocessor_Directive...
-# NAME1
-# NAME2 expression...
-#
-# A line giving just a name implies an expression consisting of just that name.
-# Comments start with '--'.
-#
-# The output of this script is a 'dummy' function containing 'asm' declarations
-# for each non-preprocessor line in the .pysym file. The expression values
-# will appear as input operands to the 'asm' declaration. For example, if we
-# have:
-#
-# /* header.h */
-# #define MACRO 42
-#
-# struct S {
-# char c1;
-# char c2;
-# char c3;
-# };
-#
-# enum E {
-# ZERO,
-# ONE
-# };
-#
-# /* symbols.pysym */
-# #include <stddef.h>
-# #include "header.h"
-# -- This is a comment
-# MACRO
-# C3_OFFSET offsetof(struct S, c3)
-# E_ONE ONE
-#
-# the output will be:
-#
-# #include <stddef.h>
-# #include "header.h"
-# void dummy(void)
-# {
-# asm ("@name@MACRO@value@%0@" : : "i" (MACRO));
-# asm ("@name@C3_OFFSET@value@%0@" : : "i" (offsetof(struct S, c3)));
-# asm ("@name@E_ONE@value@%0@" : : "i" (ONE));
-# }
-#
-# We'll later feed this output to gcc -S. Since '-S' tells gcc to compile but
-# not assemble, gcc will output something like:
-#
-# dummy:
-# ...
-# @name@MACRO@value@$42@
-# @name@C3_OFFSET@value@$2@
-# @name@E_ONE@value@$1@
-#
-# Finally, we can process that output to extract the constant values.
-# Notice gcc may prepend a special character such as '$' to each value.
-
-# found_symbol indicates whether we found a non-comment, non-preprocessor line.
-BEGIN { found_symbol = 0 }
-
-# C preprocessor directives go straight through.
-/^#/ { print; next; }
-
-# Skip comments.
-/--/ { next; }
-
-# Trim leading whitespace.
-{ sub(/^[[:blank:]]*/, ""); }
-
-# If we found a non-comment, non-preprocessor line, print the 'dummy' function
-# header.
-NF > 0 && !found_symbol {
- print "void dummy(void)\n{";
- found_symbol = 1;
-}
-
-# If the line contains just a name, duplicate it so we can use that name
-# as the value of the expression.
-NF == 1 { sub(/^.*$/, "& &"); }
-
-# If a line contains a name and an expression...
-NF > 1 {
- name = $1;
-
- # Remove any characters before the second field.
- sub(/^[^[:blank:]]+[[:blank:]]+/, "");
-
- # '$0' ends up being everything that appeared after the first field
- # separator.
- printf " asm (\"@name@%s@value@%0@\" : : \"i\" (%s));\n", name, $0;
-}
-
-# Close the 'dummy' function.
-END { if (found_symbol) print "}"; }
diff --git a/scripts/gen-rrtypes.py b/scripts/gen-rrtypes.py
index a71e1e108b..4c78175a3c 100644
--- a/scripts/gen-rrtypes.py
+++ b/scripts/gen-rrtypes.py
@@ -1,6 +1,6 @@
#!/usr/bin/python3
# Generate DNS RR type constants for resolv header files.
-# Copyright (C) 2016-2018 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
@@ -15,7 +15,7 @@
#
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
"""Generate DNS RR type constants for resolv header files.
diff --git a/scripts/gen-sorted.awk b/scripts/gen-sorted.awk
index f338807e8e..a6502bf2a4 100755
--- a/scripts/gen-sorted.awk
+++ b/scripts/gen-sorted.awk
@@ -1,7 +1,7 @@
#!/usr/bin/awk -f
# Generate sorted list of directories. The sorting is stable but with
# dependencies between directories resolved by moving dependees in front.
-# Copyright (C) 1998-2018 Free Software Foundation, Inc.
+# Copyright (C) 1998-2019 Free Software Foundation, Inc.
# Written by Ulrich Drepper <drepper@cygnus.com>, 1998.
BEGIN {
diff --git a/scripts/gitlog_to_changelog.py b/scripts/gitlog_to_changelog.py
new file mode 100755
index 0000000000..41c47bdf74
--- /dev/null
+++ b/scripts/gitlog_to_changelog.py
@@ -0,0 +1,138 @@
+#!/usr/bin/python3
+# Main VCSToChangeLog script.
+# Copyright (C) 2019 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
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program 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 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 <https://www.gnu.org/licenses/>.
+
+''' Generate a ChangeLog style output based on a VCS log.
+
+This script takes two revisions as input and generates a ChangeLog style output
+for all revisions between the two revisions.
+
+This script is intended to be executed from the project parent directory.
+
+The vcs_to_changelog directory has a file vcstocl_quirks.py that defines a
+function called get_project_quirks that returns a object of class type
+ProjectQuirks or a subclass of the same. The definition of the ProjectQuirks
+class is below and it specifies the properties that the project must set to
+ensure correct parsing of its contents.
+
+Among other things, ProjectQurks specifies the VCS to read from; the default is
+assumed to be git. The script then studies the VCS log and for each change,
+list out the nature of changes in the constituent files.
+
+Each file type may have parser frontends that can read files and construct
+objects that may be compared to determine the minimal changes that occured in
+each revision. For files that do not have parsers, we may only know the nature
+of changes at the top level depending on the information that the VCS stores.
+
+The parser frontend must have a compare() method that takes the old and new
+files as arrays of strings and prints the output in ChangeLog format.
+
+Currently implemented VCS:
+
+ git
+
+Currently implemented frontends:
+
+ C
+'''
+import sys
+import os
+import re
+import argparse
+from vcs_to_changelog.misc_util import *
+from vcs_to_changelog import frontend_c
+from vcs_to_changelog.vcs_git import *
+
+debug = DebugUtil(False)
+
+class ProjectQuirks:
+ # This is a list of regex substitutions for C/C++ macros that are known to
+ # break parsing of the C programs. Each member of this list is a dict with
+ # the key 'orig' having the regex and 'sub' having the substitution of the
+ # regex.
+ MACRO_QUIRKS = []
+
+ # This is a list of macro definitions that are extensively used and are
+ # known to break parsing due to some characteristic, mainly the lack of a
+ # semicolon at the end.
+ C_MACROS = []
+
+ # The repo type, defaults to git.
+ repo = 'git'
+
+ # List of files to ignore either because they are not needed (such as the
+ # ChangeLog) or because they are non-parseable. For example, glibc has a
+ # header file that is only assembly code, which breaks the C parser.
+ IGNORE_LIST = ['ChangeLog']
+
+
+# Load quirks file. We assume that the script is run from the top level source
+# directory.
+sys.path.append('/'.join([os.getcwd(), 'scripts', 'vcs_to_changelog']))
+try:
+ from vcstocl_quirks import *
+ project_quirks = get_project_quirks(debug)
+except:
+ project_quirks = ProjectQuirks()
+
+def analyze_diff(filename, oldfile, newfile, frontends):
+ ''' Parse the output of the old and new files and print the difference.
+
+ For input files OLDFILE and NEWFILE with name FILENAME, generate reduced
+ trees for them and compare them. We limit our comparison to only C source
+ files.
+ '''
+ name, ext = os.path.splitext(filename)
+
+ if not ext in frontends.keys():
+ return None
+ else:
+ frontend = frontends[ext]
+ frontend.compare(oldfile, newfile)
+
+
+def main(repo, frontends, refs):
+ ''' ChangeLog Generator Entry Point.
+ '''
+ commits = repo.list_commits(args.refs)
+ for commit in commits:
+ repo.list_changes(commit, frontends)
+
+
+if __name__ == '__main__':
+ parser = argparse.ArgumentParser()
+
+ parser.add_argument('refs', metavar='ref', type=str, nargs=2,
+ help='Refs to print ChangeLog entries between')
+
+ parser.add_argument('-d', '--debug', required=False, action='store_true',
+ help='Run the file parser debugger.')
+
+ args = parser.parse_args()
+
+ debug.debug = args.debug
+
+ if len(args.refs) < 2:
+ debug.eprint('Two refs needed to get a ChangeLog.')
+ sys.exit(os.EX_USAGE)
+
+ REPO = {'git': GitRepo(project_quirks.IGNORE_LIST, debug)}
+
+ fe_c = frontend_c.Frontend(project_quirks, debug)
+ FRONTENDS = {'.c': fe_c,
+ '.h': fe_c}
+
+ main(REPO[project_quirks.repo], FRONTENDS, args.refs)
diff --git a/scripts/glibcextract.py b/scripts/glibcextract.py
new file mode 100644
index 0000000000..42051ed2da
--- /dev/null
+++ b/scripts/glibcextract.py
@@ -0,0 +1,175 @@
+#!/usr/bin/python3
+# Extract information from C headers.
+# Copyright (C) 2018-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
+# <https://www.gnu.org/licenses/>.
+
+import os.path
+import re
+import subprocess
+import tempfile
+
+
+def compute_c_consts(sym_data, cc):
+ """Compute the values of some C constants.
+
+ The first argument is a list whose elements are either strings
+ (preprocessor directives, or the special string 'START' to
+ indicate this function should insert its initial boilerplate text
+ in the output there) or pairs of strings (a name and a C
+ expression for the corresponding value). Preprocessor directives
+ in the middle of the list may be used to select which constants
+ end up being evaluated using which expressions.
+
+ """
+ out_lines = []
+ for arg in sym_data:
+ if isinstance(arg, str):
+ if arg == 'START':
+ out_lines.append('void\ndummy (void)\n{')
+ else:
+ out_lines.append(arg)
+ continue
+ name = arg[0]
+ value = arg[1]
+ out_lines.append('asm ("@@@name@@@%s@@@value@@@%%0@@@end@@@" '
+ ': : \"i\" ((long int) (%s)));'
+ % (name, value))
+ out_lines.append('}')
+ out_lines.append('')
+ out_text = '\n'.join(out_lines)
+ with tempfile.TemporaryDirectory() as temp_dir:
+ c_file_name = os.path.join(temp_dir, 'test.c')
+ s_file_name = os.path.join(temp_dir, 'test.s')
+ with open(c_file_name, 'w') as c_file:
+ c_file.write(out_text)
+ # Compilation has to be from stdin to avoid the temporary file
+ # name being written into the generated dependencies.
+ cmd = ('%s -S -o %s -x c - < %s' % (cc, s_file_name, c_file_name))
+ subprocess.check_call(cmd, shell=True)
+ consts = {}
+ with open(s_file_name, 'r') as s_file:
+ for line in s_file:
+ match = re.search('@@@name@@@([^@]*)'
+ '@@@value@@@[^0-9Xxa-fA-F-]*'
+ '([0-9Xxa-fA-F-]+).*@@@end@@@', line)
+ if match:
+ if (match.group(1) in consts
+ and match.group(2) != consts[match.group(1)]):
+ raise ValueError('duplicate constant %s'
+ % match.group(1))
+ consts[match.group(1)] = match.group(2)
+ return consts
+
+
+def list_macros(source_text, cc):
+ """List the preprocessor macros defined by the given source code.
+
+ The return value is a pair of dicts, the first one mapping macro
+ names to their expansions and the second one mapping macro names
+ to lists of their arguments, or to None for object-like macros.
+
+ """
+ with tempfile.TemporaryDirectory() as temp_dir:
+ c_file_name = os.path.join(temp_dir, 'test.c')
+ i_file_name = os.path.join(temp_dir, 'test.i')
+ with open(c_file_name, 'w') as c_file:
+ c_file.write(source_text)
+ cmd = ('%s -E -dM -o %s %s' % (cc, i_file_name, c_file_name))
+ subprocess.check_call(cmd, shell=True)
+ macros_exp = {}
+ macros_args = {}
+ with open(i_file_name, 'r') as i_file:
+ for line in i_file:
+ match = re.fullmatch('#define ([0-9A-Za-z_]+)(.*)\n', line)
+ if not match:
+ raise ValueError('bad -dM output line: %s' % line)
+ name = match.group(1)
+ value = match.group(2)
+ if value.startswith(' '):
+ value = value[1:]
+ args = None
+ elif value.startswith('('):
+ match = re.fullmatch(r'\((.*?)\) (.*)', value)
+ if not match:
+ raise ValueError('bad -dM output line: %s' % line)
+ args = match.group(1).split(',')
+ value = match.group(2)
+ else:
+ raise ValueError('bad -dM output line: %s' % line)
+ if name in macros_exp:
+ raise ValueError('duplicate macro: %s' % line)
+ macros_exp[name] = value
+ macros_args[name] = args
+ return macros_exp, macros_args
+
+
+def compute_macro_consts(source_text, cc, macro_re, exclude_re=None):
+ """Compute the integer constant values of macros defined by source_text.
+
+ Macros must match the regular expression macro_re, and if
+ exclude_re is defined they must not match exclude_re. Values are
+ computed with compute_c_consts.
+
+ """
+ macros_exp, macros_args = list_macros(source_text, cc)
+ macros_set = {m for m in macros_exp
+ if (macros_args[m] is None
+ and re.fullmatch(macro_re, m)
+ and (exclude_re is None
+ or not re.fullmatch(exclude_re, m)))}
+ sym_data = [source_text, 'START']
+ sym_data.extend(sorted((m, m) for m in macros_set))
+ return compute_c_consts(sym_data, cc)
+
+
+def compare_macro_consts(source_1, source_2, cc, macro_re, exclude_re=None,
+ allow_extra_1=False, allow_extra_2=False):
+ """Compare the values of macros defined by two different sources.
+
+ The sources would typically be includes of a glibc header and a
+ kernel header. If allow_extra_1, the first source may define
+ extra macros (typically if the kernel headers are older than the
+ version glibc has taken definitions from); if allow_extra_2, the
+ second source may define extra macros (typically if the kernel
+ headers are newer than the version glibc has taken definitions
+ from). Return 1 if there were any differences other than those
+ allowed, 0 if the macro values were the same apart from any
+ allowed differences.
+
+ """
+ macros_1 = compute_macro_consts(source_1, cc, macro_re, exclude_re)
+ macros_2 = compute_macro_consts(source_2, cc, macro_re, exclude_re)
+ if macros_1 == macros_2:
+ return 0
+ print('First source:\n%s\n' % source_1)
+ print('Second source:\n%s\n' % source_2)
+ ret = 0
+ for name, value in sorted(macros_1.items()):
+ if name not in macros_2:
+ print('Only in first source: %s' % name)
+ if not allow_extra_1:
+ ret = 1
+ elif macros_1[name] != macros_2[name]:
+ print('Different values for %s: %s != %s'
+ % (name, macros_1[name], macros_2[name]))
+ ret = 1
+ for name in sorted(macros_2.keys()):
+ if name not in macros_1:
+ print('Only in second source: %s' % name)
+ if not allow_extra_2:
+ ret = 1
+ return ret
diff --git a/scripts/haveversions.awk b/scripts/haveversions.awk
new file mode 100644
index 0000000000..ce6f453761
--- /dev/null
+++ b/scripts/haveversions.awk
@@ -0,0 +1,23 @@
+# This script reads the contents of Versions.all and outputs a definition
+# of variable have-VERSION for each symbol version VERSION which is
+# defined.
+#
+# The have-VERSION variables can be used to check that a port supports a
+# particular symbol version in makefiles due to its base version. A test
+# for a compatibility symbol which was superseded with a GLIBC_2.15
+# version could be tested like this:
+#
+# ifdef HAVE-GLIBC_2.14
+# tests += tst-spawn4-compat
+# endif # HAVE-GLIBC_2.14
+#
+# (NB: GLIBC_2.14 is the symbol version that immediately precedes
+# GLIBC_2.15.)
+
+NF == 1 && $1 != "}" {
+ haveversion[$1] = 1
+}
+END {
+ for (i in haveversion)
+ printf "have-%s = yes\n", i
+}
diff --git a/scripts/install-sh b/scripts/install-sh
index ac159ceda4..8175c640fe 100755
--- a/scripts/install-sh
+++ b/scripts/install-sh
@@ -1,7 +1,7 @@
#!/bin/sh
# install - install a program, script, or datafile
-scriptversion=2017-09-23.17; # UTC
+scriptversion=2018-03-11.20; # UTC
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
@@ -332,34 +332,43 @@ do
# is incompatible with FreeBSD 'install' when (umask & 300) != 0.
;;
*)
+ # Note that $RANDOM variable is not portable (e.g. dash); Use it
+ # here however when possible just to lower collision chance.
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
- trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
+ trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0
+
+ # Because "mkdir -p" follows existing symlinks and we likely work
+ # directly in world-writeable /tmp, make sure that the '$tmpdir'
+ # directory is successfully created first before we actually test
+ # 'mkdir -p' feature.
if (umask $mkdir_umask &&
- exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
+ $mkdirprog $mkdir_mode "$tmpdir" &&
+ exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
then
if test -z "$dir_arg" || {
# Check for POSIX incompatibilities with -m.
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
# other-writable bit of parent directory when it shouldn't.
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
- ls_ld_tmpdir=`ls -ld "$tmpdir"`
+ test_tmpdir="$tmpdir/a"
+ ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
case $ls_ld_tmpdir in
d????-?r-*) different_mode=700;;
d????-?--*) different_mode=755;;
*) false;;
esac &&
- $mkdirprog -m$different_mode -p -- "$tmpdir" && {
- ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
+ $mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
+ ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
}
}
then posix_mkdir=:
fi
- rmdir "$tmpdir/d" "$tmpdir"
+ rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
else
# Remove any dirs left behind by ancient mkdir implementations.
- rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
+ rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
fi
trap '' 0;;
esac;;
@@ -501,7 +510,7 @@ do
done
# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
diff --git a/scripts/list-fixed-bugs.py b/scripts/list-fixed-bugs.py
index b62f3b2146..a47b55b793 100755
--- a/scripts/list-fixed-bugs.py
+++ b/scripts/list-fixed-bugs.py
@@ -1,5 +1,5 @@
#!/usr/bin/python3
-# Copyright (C) 2015-2018 Free Software Foundation, Inc.
+# Copyright (C) 2015-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
@@ -14,7 +14,7 @@
#
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
"""List fixed bugs for the NEWS file.
diff --git a/scripts/merge-test-results.sh b/scripts/merge-test-results.sh
index 24f2b3fc81..dd5d5f0199 100755
--- a/scripts/merge-test-results.sh
+++ b/scripts/merge-test-results.sh
@@ -1,6 +1,6 @@
#!/bin/sh
# Merge test results of individual tests or subdirectories.
-# Copyright (C) 2014-2018 Free Software Foundation, Inc.
+# Copyright (C) 2014-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
@@ -15,7 +15,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
# usage: merge-test-results.sh -s objpfx subdir test-name...
# (subdirectory tests; empty subdir at top level), or
diff --git a/scripts/mkinstalldirs b/scripts/mkinstalldirs
index a31ce6d029..36aa90953b 100755
--- a/scripts/mkinstalldirs
+++ b/scripts/mkinstalldirs
@@ -1,7 +1,7 @@
#! /bin/sh
# mkinstalldirs --- make directory hierarchy
-scriptversion=2016-01-11.22; # UTC
+scriptversion=2018-03-07.03; # UTC
# Original author: Noah Friedman <friedman@prep.ai.mit.edu>
# Created: 1993-05-16
@@ -154,7 +154,7 @@ exit $errstatus
# Local Variables:
# mode: shell-script
# sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
diff --git a/scripts/move-if-change b/scripts/move-if-change
index f15923613c..9538fdbac2 100755
--- a/scripts/move-if-change
+++ b/scripts/move-if-change
@@ -2,13 +2,13 @@
# Like mv $1 $2, but if the files are the same, just delete $1.
# Status is zero if successful, nonzero otherwise.
-VERSION='2017-09-13 06:45'; # UTC
+VERSION='2018-03-07 03:47'; # UTC
# The definition above must lie within the first 8 lines in order
# for the Emacs time-stamp write hook (at end) to update it.
# If you change this file with Emacs, please let the write hook
# do its job. Otherwise, update this string manually.
-# Copyright (C) 2002-2018 Free Software Foundation, Inc.
+# Copyright (C) 2002-2019 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
@@ -75,7 +75,7 @@ else
fi
## Local Variables:
-## eval: (add-hook 'write-file-hooks 'time-stamp)
+## eval: (add-hook 'before-save-hook 'time-stamp)
## time-stamp-start: "VERSION='"
## time-stamp-format: "%:y-%02m-%02d %02H:%02M"
## time-stamp-time-zone: "UTC0"
diff --git a/scripts/rellns-sh b/scripts/rellns-sh
index 9d4f4ab177..ac5ee980c6 100755
--- a/scripts/rellns-sh
+++ b/scripts/rellns-sh
@@ -1,6 +1,6 @@
#!/bin/sh
# rellns-sh - Simplified ln program to generate relative symbolic link.
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2019 Free Software Foundation, Inc.
# Written by Ulrich Drepper <drepper@cygnus.com>, October 1996
#
# This program is free software; you can redistribute it and/or modify
@@ -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 <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
# With -p, instead of creating the link print the computed relative link
# name.
diff --git a/scripts/test-installation.pl b/scripts/test-installation.pl
index b2e4ba7646..eda150461f 100755
--- a/scripts/test-installation.pl
+++ b/scripts/test-installation.pl
@@ -1,5 +1,5 @@
#!/usr/bin/perl -w
-# Copyright (C) 1997-2018 Free Software Foundation, Inc.
+# Copyright (C) 1997-2019 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# Contributed by Andreas Jaeger <aj@arthur.rhein-neckar.de>, 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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
$PACKAGE = "libc";
@@ -59,7 +59,7 @@ arglist: while (@ARGV) {
$ARGV[0] eq "--vers" || $ARGV[0] eq "--versi" ||
$ARGV[0] eq "--versio" || $ARGV[0] eq "--version") {
print "test-installation (GNU $PACKAGE)\n";
- print "Copyright (C) 2018 Free Software Foundation, Inc.\n";
+ print "Copyright (C) 2019 Free Software Foundation, Inc.\n";
print "This is free software; see the source for copying conditions. There is NO\n";
print "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n";
print "Written by Andreas Jaeger <aj\@arthur.rhein-neckar.de>\n";
diff --git a/scripts/test_printers_common.py b/scripts/test_printers_common.py
index cf4de5ae23..bea973c129 100644
--- a/scripts/test_printers_common.py
+++ b/scripts/test_printers_common.py
@@ -1,6 +1,6 @@
# Common functions and variables for testing the Python pretty printers.
#
-# Copyright (C) 2016-2018 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
@@ -15,7 +15,7 @@
#
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
"""These tests require PExpect 4.0 or newer.
@@ -60,6 +60,10 @@ TIMEOUTFACTOR = os.environ.get('TIMEOUTFACTOR')
if TIMEOUTFACTOR:
timeout = int(TIMEOUTFACTOR)
+# Otherwise GDB is run in interactive mode and readline may send escape
+# sequences confusing output for pexpect.
+os.environ["TERM"]="dumb"
+
try:
# Check the gdb version.
version_cmd = '{0} --version'.format(gdb_invocation, timeout=timeout)
diff --git a/scripts/test_printers_exceptions.py b/scripts/test_printers_exceptions.py
index cf10a356de..4c774dd511 100644
--- a/scripts/test_printers_exceptions.py
+++ b/scripts/test_printers_exceptions.py
@@ -1,6 +1,6 @@
# Exception classes used when testing the Python pretty printers.
#
-# Copyright (C) 2016-2018 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
@@ -15,7 +15,7 @@
#
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
class NoLineError(Exception):
"""Custom exception to indicate that a test file doesn't contain
diff --git a/scripts/update-abilist.sh b/scripts/update-abilist.sh
index 28953bfe28..56482bf9d1 100644
--- a/scripts/update-abilist.sh
+++ b/scripts/update-abilist.sh
@@ -1,6 +1,6 @@
#!/bin/sh
# Update abilist files based on differences on one architecture.
-# Copyright (C) 2015-2018 Free Software Foundation, Inc.
+# Copyright (C) 2015-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
@@ -15,7 +15,7 @@
#
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
set -e
export LC_ALL=C
diff --git a/scripts/update-copyrights b/scripts/update-copyrights
index f048600e2a..39991a5bf2 100755
--- a/scripts/update-copyrights
+++ b/scripts/update-copyrights
@@ -1,6 +1,6 @@
#!/bin/sh
# Update copyright year lists.
-# Copyright (C) 2012-2018 Free Software Foundation, Inc.
+# Copyright (C) 2012-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
@@ -15,7 +15,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
# Run this script with the first argument being the location of
# gnulib's update-copyright script. Any other arguments are ignored.
@@ -54,7 +54,7 @@ for f in $files; do
po/*.po)
# Files imported verbatim from the Translation Project.
;;
- INSTALL | locale/C-translit.h \
+ INSTALL \
| locale/programs/charmap-kw.h | locale/programs/locfile-kw.h \
| po/libc.pot | sysdeps/gnu/errlist.c)
# Generated files.
diff --git a/scripts/vcs_to_changelog/frontend_c.py b/scripts/vcs_to_changelog/frontend_c.py
new file mode 100644
index 0000000000..4191e86456
--- /dev/null
+++ b/scripts/vcs_to_changelog/frontend_c.py
@@ -0,0 +1,827 @@
+#!/usr/bin/python3
+# The C Parser.
+# Copyright (C) 2019 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
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program 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 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 <https://www.gnu.org/licenses/>.
+
+from enum import Enum
+import re
+from vcs_to_changelog.misc_util import *
+
+class block_flags(Enum):
+ ''' Flags for the code block.
+ '''
+ else_block = 1
+ macro_defined = 2
+ macro_redefined = 3
+
+
+class block_type(Enum):
+ ''' Type of code block.
+ '''
+ file = 1
+ macro_cond = 2
+ macro_def = 3
+ macro_undef = 4
+ macro_include = 5
+ macro_info = 6
+ decl = 7
+ func = 8
+ composite = 9
+ macrocall = 10
+ fndecl = 11
+ assign = 12
+ struct = 13
+ union = 14
+ enum = 15
+
+# A dictionary describing what each action (add, modify, delete) show up as in
+# the ChangeLog output.
+actions = {0:{'new': 'New', 'mod': 'Modified', 'del': 'Remove'},
+ block_type.file:{'new': 'New file', 'mod': 'Modified file',
+ 'del': 'Remove file'},
+ block_type.macro_cond:{'new': 'New', 'mod': 'Modified',
+ 'del': 'Remove'},
+ block_type.macro_def:{'new': 'New', 'mod': 'Modified',
+ 'del': 'Remove'},
+ block_type.macro_include:{'new': 'Include file', 'mod': 'Modified',
+ 'del': 'Remove include'},
+ block_type.macro_info:{'new': 'New preprocessor message',
+ 'mod': 'Modified', 'del': 'Remove'},
+ block_type.decl:{'new': 'New', 'mod': 'Modified', 'del': 'Remove'},
+ block_type.func:{'new': 'New function', 'mod': 'Modified function',
+ 'del': 'Remove function'},
+ block_type.composite:{'new': 'New', 'mod': 'Modified',
+ 'del': 'Remove'},
+ block_type.struct:{'new': 'New struct', 'mod': 'Modified struct',
+ 'del': 'Remove struct'},
+ block_type.union:{'new': 'New union', 'mod': 'Modified union',
+ 'del': 'Remove union'},
+ block_type.enum:{'new': 'New enum', 'mod': 'Modified enum',
+ 'del': 'Remove enum'},
+ block_type.macrocall:{'new': 'New', 'mod': 'Modified',
+ 'del': 'Remove'},
+ block_type.fndecl:{'new': 'New function', 'mod': 'Modified',
+ 'del': 'Remove'},
+ block_type.assign:{'new': 'New', 'mod': 'Modified', 'del': 'Remove'}}
+
+def new_block(name, type, contents, parent, flags = 0):
+ ''' Create a new code block with the parent as PARENT.
+
+ The code block is a basic structure around which the tree representation of
+ the source code is built. It has the following attributes:
+
+ - name: A name to refer it by in the ChangeLog
+ - type: Any one of the following types in BLOCK_TYPE.
+ - contents: The contents of the block. For a block of types file or
+ macro_cond, this would be a list of blocks that it nests. For other types
+ it is a list with a single string specifying its contents.
+ - parent: This is the parent of the current block, useful in setting up
+ #elif or #else blocks in the tree.
+ - flags: A special field to indicate some properties of the block. See
+ BLOCK_FLAGS for values.
+ '''
+ block = {}
+ block['matched'] = False
+ block['name'] = name
+ block['type'] = type
+ block['contents'] = contents
+ block['parent'] = parent
+ if parent:
+ parent['contents'].append(block)
+
+ block['flags'] = flags
+ block['actions'] = actions[type]
+
+ return block
+
+
+class ExprParser:
+ ''' Parent class of all of the C expression parsers.
+
+ It is necessary that the children override the parse_line() method.
+ '''
+ ATTRIBUTE = r'(((__attribute__\s*\(\([^;]+\)\))|(asm\s*\([?)]+\)))\s*)*'
+
+ def __init__(self, project_quirks, debug):
+ self.project_quirks = project_quirks
+ self.debug = debug
+
+ def fast_forward_scope(self, cur, op, loc):
+ ''' Consume lines in a code block.
+
+ Consume all lines of a block of code such as a composite type declaration or
+ a function declaration.
+
+ - CUR is the string to consume this expression from
+ - OP is the string array for the file
+ - LOC is the first unread location in CUR
+
+ - Returns: The next location to be read in the array as well as the updated
+ value of CUR, which will now have the body of the function or composite
+ type.
+ '''
+ nesting = cur.count('{') - cur.count('}')
+ while nesting > 0 and loc < len(op):
+ cur = cur + ' ' + op[loc]
+
+ nesting = nesting + op[loc].count('{')
+ nesting = nesting - op[loc].count('}')
+ loc = loc + 1
+
+ return (cur, loc)
+
+ def parse_line(self, cur, op, loc, code, macros):
+ ''' The parse method should always be overridden by the child.
+ '''
+ raise
+
+
+class FuncParser(ExprParser):
+ REGEX = re.compile(ExprParser.ATTRIBUTE + r'\s*(\w+)\s*\([^(][^{]+\)\s*{')
+
+ def parse_line(self, cur, op, loc, code, macros):
+ ''' Parse a function.
+
+ Match a function definition.
+
+ - CUR is the string to consume this expression from
+ - OP is the string array for the file
+ - LOC is the first unread location in CUR
+ - CODE is the block to which we add this
+
+ - Returns: The next location to be read in the array.
+ '''
+ found = re.search(self.REGEX, cur)
+ if not found:
+ return cur, loc
+
+ name = found.group(5)
+ self.debug.print('FOUND FUNC: %s' % name)
+
+ # Consume everything up to the ending brace of the function.
+ (cur, loc) = self.fast_forward_scope(cur, op, loc)
+
+ new_block(name, block_type.func, [cur], code)
+
+ return '', loc
+
+
+class CompositeParser(ExprParser):
+ # Composite types such as structs and unions.
+ REGEX = re.compile(r'(struct|union|enum)\s*(\w*)\s*{')
+
+ def parse_line(self, cur, op, loc, code, macros):
+ ''' Parse a composite type.
+
+ Match declaration of a composite type such as a sruct or a union..
+
+ - CUR is the string to consume this expression from
+ - OP is the string array for the file
+ - LOC is the first unread location in CUR
+ - CODE is the block to which we add this
+
+ - Returns: The next location to be read in the array.
+ '''
+ found = re.search(self.REGEX, cur)
+ if not found:
+ return cur, loc
+
+ # Lap up all of the struct definition.
+ (cur, loc) = self.fast_forward_scope(cur, op, loc)
+
+ name = found.group(2)
+
+ if not name:
+ if 'typedef' in cur:
+ name = re.sub(r'.*}\s*(\w+);$', r'\1', cur)
+ else:
+ name= '<anoymous>'
+
+ ctype = found.group(1)
+
+ if ctype == 'struct':
+ blocktype = block_type.struct
+ if ctype == 'enum':
+ blocktype = block_type.enum
+ if ctype == 'union':
+ blocktype = block_type.union
+
+ new_block(name, block_type.composite, [cur], code)
+
+ return '', loc
+
+
+class AssignParser(ExprParser):
+ # Static assignments.
+ REGEX = re.compile(r'(\w+)\s*(\[[^\]]*\])*\s*([^\s]*attribute[\s\w()]+)?\s*=')
+
+ def parse_line(self, cur, op, loc, code, macros):
+ ''' Parse an assignment statement.
+
+ This includes array assignments.
+
+ - CUR is the string to consume this expression from
+ - OP is the string array for the file
+ - LOC is the first unread location in CUR
+ - CODE is the block to which we add this
+
+ - Returns: The next location to be read in the array.
+ '''
+ found = re.search(self.REGEX, cur)
+ if not found:
+ return cur, loc
+
+ name = found.group(1)
+ self.debug.print('FOUND ASSIGN: %s' % name)
+ # Lap up everything up to semicolon.
+ while ';' not in cur and loc < len(op):
+ cur = op[loc]
+ loc = loc + 1
+
+ new_block(name, block_type.assign, [cur], code)
+
+ return '', loc
+
+
+class DeclParser(ExprParser):
+ # Function pointer typedefs.
+ TYPEDEF_FN_RE = re.compile(r'\(\*(\w+)\)\s*\([^)]+\);')
+
+ # Simple decls.
+ DECL_RE = re.compile(r'(\w+)(\[\w*\])*\s*' + ExprParser.ATTRIBUTE + ';')
+
+ # __typeof decls.
+ TYPEOF_RE = re.compile(r'__typeof\s*\([\w\s]+\)\s*(\w+)\s*' + \
+ ExprParser.ATTRIBUTE + ';')
+
+ # Function Declarations.
+ FNDECL_RE = re.compile(r'\s*(\w+)\s*\([^\(][^;]*\)\s*' +
+ ExprParser.ATTRIBUTE + ';')
+
+ def __init__(self, regex, blocktype, project_quirks, debug):
+ # The regex for the current instance.
+ self.REGEX = regex
+ self.blocktype = blocktype
+ super().__init__(project_quirks, debug)
+
+ def parse_line(self, cur, op, loc, code, macros):
+ ''' Parse a top level declaration.
+
+ All types of declarations except function declarations.
+
+ - CUR is the string to consume this expression from
+ - OP is the string array for the file
+ - LOC is the first unread location in CUR
+ - CODE is the block to which we add this function
+
+ - Returns: The next location to be read in the array.
+ '''
+ found = re.search(self.REGEX, cur)
+ if not found:
+ return cur, loc
+
+ # The name is the first group for all of the above regexes. This is a
+ # coincidence, so care must be taken if regexes are added or changed to
+ # ensure that this is true.
+ name = found.group(1)
+
+ self.debug.print('FOUND DECL: %s' % name)
+ new_block(name, self.blocktype, [cur], code)
+
+ return '', loc
+
+
+class MacroParser(ExprParser):
+ # The macrocall_re peeks into the next line to ensure that it doesn't
+ # eat up a FUNC by accident. The func_re regex is also quite crude and
+ # only intends to ensure that the function name gets picked up
+ # correctly.
+ MACROCALL_RE = re.compile(r'(\w+)\s*(\(.*\))*$')
+
+ def parse_line(self, cur, op, loc, code, macros):
+ ''' Parse a macro call.
+
+ Match a symbol hack macro calls that get added without semicolons.
+
+ - CUR is the string to consume this expression from
+ - OP is the string array for the file
+ - LOC is the first unread location in CUR
+ - CODE is the block to which we add this
+ - MACROS is the regex match object.
+
+ - Returns: The next location to be read in the array.
+ '''
+
+ # First we have the macros for symbol hacks and all macros we identified so
+ # far.
+ if cur.count('(') != cur.count(')'):
+ return cur, loc
+ if loc < len(op) and '{' in op[loc]:
+ return cur, loc
+
+ found = re.search(self.MACROCALL_RE, cur)
+ if found:
+ sym = found.group(1)
+ name = found.group(2)
+ if sym in macros or self.project_quirks and \
+ sym in self.project_quirks.C_MACROS:
+ self.debug.print('FOUND MACROCALL: %s (%s)' % (sym, name))
+ new_block(sym, block_type.macrocall, [cur], code)
+ return '', loc
+
+ # Next, there could be macros that get called right inside their #ifdef, but
+ # without the semi-colon.
+ if cur.strip() == code['name'].strip():
+ self.debug.print('FOUND MACROCALL (without brackets): %s' % (cur))
+ new_block(cur, block_type.macrocall, [cur], code)
+ return '',loc
+
+ return cur, loc
+
+
+class Frontend:
+ ''' The C Frontend implementation.
+ '''
+ KNOWN_MACROS = []
+
+ def __init__(self, project_quirks, debug):
+ self.op = []
+ self.debug = debug
+ self.project_quirks = project_quirks
+
+ self.c_expr_parsers = [
+ CompositeParser(project_quirks, debug),
+ AssignParser(project_quirks, debug),
+ DeclParser(DeclParser.TYPEOF_RE, block_type.decl,
+ project_quirks, debug),
+ DeclParser(DeclParser.TYPEDEF_FN_RE, block_type.decl,
+ project_quirks, debug),
+ DeclParser(DeclParser.FNDECL_RE, block_type.fndecl,
+ project_quirks, debug),
+ FuncParser(project_quirks, debug),
+ DeclParser(DeclParser.DECL_RE, block_type.decl, project_quirks,
+ debug),
+ MacroParser(project_quirks, debug)]
+
+
+ def remove_extern_c(self):
+ ''' Process extern "C"/"C++" block nesting.
+
+ The extern "C" nesting does not add much value so it's safe to almost always
+ drop it. Also drop extern "C++"
+ '''
+ new_op = []
+ nesting = 0
+ extern_nesting = 0
+ for l in self.op:
+ if '{' in l:
+ nesting = nesting + 1
+ if re.match(r'extern\s*"C"\s*{', l):
+ extern_nesting = nesting
+ continue
+ if '}' in l:
+ nesting = nesting - 1
+ if nesting < extern_nesting:
+ extern_nesting = 0
+ continue
+ new_op.append(l)
+
+ # Now drop all extern C++ blocks.
+ self.op = new_op
+ new_op = []
+ nesting = 0
+ extern_nesting = 0
+ in_cpp = False
+ for l in self.op:
+ if re.match(r'extern\s*"C\+\+"\s*{', l):
+ nesting = nesting + 1
+ in_cpp = True
+
+ if in_cpp:
+ if '{' in l:
+ nesting = nesting + 1
+ if '}' in l:
+ nesting = nesting - 1
+ if nesting == 0:
+ new_op.append(l)
+
+ self.op = new_op
+
+
+ def remove_comments(self, op):
+ ''' Remove comments.
+
+ Return OP by removing all comments from it.
+ '''
+ self.debug.print('REMOVE COMMENTS')
+
+ sep='\n'
+ opstr = sep.join(op)
+ opstr = re.sub(r'/\*.*?\*/', r'', opstr, flags=re.MULTILINE | re.DOTALL)
+ opstr = re.sub(r'\\\n', r' ', opstr, flags=re.MULTILINE | re.DOTALL)
+ new_op = list(filter(None, opstr.split(sep)))
+
+ return new_op
+
+
+ def normalize_condition(self, name):
+ ''' Make some minor transformations on macro conditions to make them more
+ readable.
+ '''
+ # Negation with a redundant bracket.
+ name = re.sub(r'!\s*\(\s*(\w+)\s*\)', r'! \1', name)
+ # Pull in negation of equality.
+ name = re.sub(r'!\s*\(\s*(\w+)\s*==\s*(\w+)\)', r'\1 != \2', name)
+ # Pull in negation of inequality.
+ name = re.sub(r'!\s*\(\s*(\w+)\s*!=\s*(\w+)\)', r'\1 == \2', name)
+ # Fix simple double negation.
+ name = re.sub(r'!\s*\(\s*!\s*(\w+)\s*\)', r'\1', name)
+ # Similar, but nesting a complex expression. Because of the greedy match,
+ # this matches only the outermost brackets.
+ name = re.sub(r'!\s*\(\s*!\s*\((.*)\)\s*\)$', r'\1', name)
+ return name
+
+
+ def parse_preprocessor(self, loc, code, start = ''):
+ ''' Parse a preprocessor directive.
+
+ In case a preprocessor condition (i.e. if/elif/else), create a new code
+ block to nest code into and in other cases, identify and add entities suchas
+ include files, defines, etc.
+
+ - OP is the string array for the file
+ - LOC is the first unread location in CUR
+ - CODE is the block to which we add this function
+ - START is the string that should continue to be expanded in case we step
+ into a new macro scope.
+
+ - Returns: The next location to be read in the array.
+ '''
+ cur = self.op[loc]
+ loc = loc + 1
+ endblock = False
+
+ self.debug.print('PARSE_MACRO: %s' % cur)
+
+ # Remove the # and strip spaces again.
+ cur = cur[1:].strip()
+
+ # Include file.
+ if cur.find('include') == 0:
+ m = re.search(r'include\s*["<]?([^">]+)[">]?', cur)
+ new_block(m.group(1), block_type.macro_include, [cur], code)
+
+ # Macro definition.
+ if cur.find('define') == 0:
+ m = re.search(r'define\s+([a-zA-Z0-9_]+)', cur)
+ name = m.group(1)
+ exists = False
+ # Find out if this is a redefinition.
+ for c in code['contents']:
+ if c['name'] == name and c['type'] == block_type.macro_def:
+ c['flags'] = block_flags.macro_redefined
+ exists = True
+ break
+ if not exists:
+ new_block(m.group(1), block_type.macro_def, [cur], code,
+ block_flags.macro_defined)
+ # Add macros as we encounter them.
+ self.KNOWN_MACROS.append(m.group(1))
+
+ # Macro undef.
+ if cur.find('undef') == 0:
+ m = re.search(r'undef\s+([a-zA-Z0-9_]+)', cur)
+ new_block(m.group(1), block_type.macro_def, [cur], code)
+
+ # #error and #warning macros.
+ if cur.find('error') == 0 or cur.find('warning') == 0:
+ m = re.search(r'(error|warning)\s+"?(.*)"?', cur)
+ if m:
+ name = m.group(2)
+ else:
+ name = '<blank>'
+ new_block(name, block_type.macro_info, [cur], code)
+
+ # Start of an #if or #ifdef block.
+ elif cur.find('if') == 0:
+ rem = re.sub(r'ifndef', r'!', cur).strip()
+ rem = re.sub(r'(ifdef|defined|if)', r'', rem).strip()
+ rem = self.normalize_condition(rem)
+ ifdef = new_block(rem, block_type.macro_cond, [], code)
+ ifdef['headcond'] = ifdef
+ ifdef['start'] = start
+ loc = self.parse_line(loc, ifdef, start)
+
+ # End the previous #if/#elif and begin a new block.
+ elif cur.find('elif') == 0 and code['parent']:
+ rem = self.normalize_condition(re.sub(r'(elif|defined)', r'', cur).strip())
+ # The #else and #elif blocks should go into the current block's parent.
+ ifdef = new_block(rem, block_type.macro_cond, [], code['parent'])
+ ifdef['headcond'] = code['headcond']
+ loc = self.parse_line(loc, ifdef, code['headcond']['start'])
+ endblock = True
+
+ # End the previous #if/#elif and begin a new block.
+ elif cur.find('else') == 0 and code['parent']:
+ name = self.normalize_condition('!(' + code['name'] + ')')
+ ifdef = new_block(name, block_type.macro_cond, [], code['parent'],
+ block_flags.else_block)
+ ifdef['headcond'] = code['headcond']
+ loc = self.parse_line(loc, ifdef, code['headcond']['start'])
+ endblock = True
+
+ elif cur.find('endif') == 0 and code['parent']:
+ # Insert an empty else block if there isn't one.
+ if code['flags'] != block_flags.else_block:
+ name = self.normalize_condition('!(' + code['name'] + ')')
+ ifdef = new_block(name, block_type.macro_cond, [], code['parent'],
+ block_flags.else_block)
+ ifdef['headcond'] = code['headcond']
+ loc = self.parse_line(loc - 1, ifdef, code['headcond']['start'])
+ endblock = True
+
+ return (loc, endblock)
+
+
+ def parse_c_expr(self, cur, loc, code):
+ ''' Parse a C expression.
+
+ CUR is the string to be parsed, which continues to grow until a match is
+ found. OP is the string array and LOC is the first unread location in the
+ string array. CODE is the block in which any identified expressions should
+ be added.
+ '''
+ self.debug.print('PARSING: %s' % cur)
+
+ for p in self.c_expr_parsers:
+ cur, loc = p.parse_line(cur, self.op, loc, code, self.KNOWN_MACROS)
+ if not cur:
+ break
+
+ return cur, loc
+
+
+ def expand_problematic_macros(self, cur):
+ ''' Replace problem macros with their substitutes in CUR.
+ '''
+ for p in self.project_quirks.MACRO_QUIRKS:
+ cur = re.sub(p['orig'], p['sub'], cur)
+
+ return cur
+
+
+ def parse_line(self, loc, code, start = ''):
+ '''
+ Parse the file line by line. The function assumes a mostly GNU coding
+ standard compliant input so it might barf with anything that is eligible for
+ the Obfuscated C code contest.
+
+ The basic idea of the parser is to identify macro conditional scopes and
+ definitions, includes, etc. and then parse the remaining C code in the
+ context of those macro scopes. The parser does not try to understand the
+ semantics of the code or even validate its syntax. It only records high
+ level symbols in the source and makes a tree structure to indicate the
+ declaration/definition of those symbols and their scope in the macro
+ definitions.
+
+ OP is the string array.
+ LOC is the first unparsed line.
+ CODE is the block scope within which the parsing is currently going on.
+ START is the string with which this parsing should start.
+ '''
+ cur = start
+ endblock = False
+ saved_cur = ''
+ saved_loc = 0
+ endblock_loc = loc
+
+ while loc < len(self.op):
+ nextline = self.op[loc]
+
+ # Macros.
+ if nextline[0] == '#':
+ (loc, endblock) = self.parse_preprocessor(loc, code, cur)
+ if endblock:
+ endblock_loc = loc
+ # Rest of C Code.
+ else:
+ cur = cur + ' ' + nextline
+ cur = self.expand_problematic_macros(cur).strip()
+ cur, loc = self.parse_c_expr(cur, loc + 1, code)
+
+ if endblock and not cur:
+ # If we are returning from the first #if block, we want to proceed
+ # beyond the current block, not repeat it for any preceding blocks.
+ if code['headcond'] == code:
+ return loc
+ else:
+ return endblock_loc
+
+ return loc
+
+ def drop_empty_blocks(self, tree):
+ ''' Drop empty macro conditional blocks.
+ '''
+ newcontents = []
+
+ for x in tree['contents']:
+ if x['type'] != block_type.macro_cond or len(x['contents']) > 0:
+ newcontents.append(x)
+
+ for t in newcontents:
+ if t['type'] == block_type.macro_cond:
+ self.drop_empty_blocks(t)
+
+ tree['contents'] = newcontents
+
+
+ def consolidate_tree_blocks(self, tree):
+ ''' Consolidate common macro conditional blocks.
+
+ Get macro conditional blocks at the same level but scatterred across the
+ file together into a single common block to allow for better comparison.
+ '''
+ # Nothing to do for non-nesting blocks.
+ if tree['type'] != block_type.macro_cond \
+ and tree['type'] != block_type.file:
+ return
+
+ # Now for nesting blocks, get the list of unique condition names and
+ # consolidate code under them. The result also bunches up all the
+ # conditions at the top.
+ newcontents = []
+
+ macros = [x for x in tree['contents'] \
+ if x['type'] == block_type.macro_cond]
+ macro_names = sorted(set([x['name'] for x in macros]))
+ for m in macro_names:
+ nc = [x['contents'] for x in tree['contents'] if x['name'] == m \
+ and x['type'] == block_type.macro_cond]
+ b = new_block(m, block_type.macro_cond, sum(nc, []), tree)
+ self.consolidate_tree_blocks(b)
+ newcontents.append(b)
+
+ newcontents.extend([x for x in tree['contents'] \
+ if x['type'] != block_type.macro_cond])
+
+ tree['contents'] = newcontents
+
+
+ def compact_tree(self, tree):
+ ''' Try to reduce the tree to its minimal form.
+
+ A source code tree in its simplest form may have a lot of duplicated
+ information that may be difficult to compare and come up with a minimal
+ difference.
+ '''
+
+ # First, drop all empty blocks.
+ self.drop_empty_blocks(tree)
+
+ # Macro conditions that nest the entire file aren't very interesting. This
+ # should take care of the header guards.
+ if tree['type'] == block_type.file \
+ and len(tree['contents']) == 1 \
+ and tree['contents'][0]['type'] == block_type.macro_cond:
+ tree['contents'] = tree['contents'][0]['contents']
+
+ # Finally consolidate all macro conditional blocks.
+ self.consolidate_tree_blocks(tree)
+
+
+ def parse(self, op):
+ ''' File parser.
+
+ Parse the input array of lines OP and generate a tree structure to
+ represent the file. This tree structure is then used for comparison between
+ the old and new file.
+ '''
+ self.KNOWN_MACROS = []
+ tree = new_block('', block_type.file, [], None)
+ self.op = self.remove_comments(op)
+ self.remove_extern_c()
+ self.op = [re.sub(r'#\s+', '#', x) for x in self.op]
+ self.parse_line(0, tree)
+ self.compact_tree(tree)
+ self.dump_tree(tree, 0)
+
+ return tree
+
+
+ def print_change(self, tree, action, prologue = ''):
+ ''' Print the nature of the differences found in the tree compared to the
+ other tree. TREE is the tree that changed, action is what the change was
+ (Added, Removed, Modified) and prologue specifies the macro scope the change
+ is in. The function calls itself recursively for all macro condition tree
+ nodes.
+ '''
+
+ if tree['type'] != block_type.macro_cond:
+ print('\t%s(%s): %s.' % (prologue, tree['name'], action))
+ return
+
+ prologue = '%s[%s]' % (prologue, tree['name'])
+ for t in tree['contents']:
+ if t['type'] == block_type.macro_cond:
+ self.print_change(t, action, prologue)
+ else:
+ print('\t%s(%s): %s.' % (prologue, t['name'], action))
+
+
+ def compare_trees(self, left, right, prologue = ''):
+ ''' Compare two trees and print the difference.
+
+ This routine is the entry point to compare two trees and print out their
+ differences. LEFT and RIGHT will always have the same name and type,
+ starting with block_type.file and '' at the top level.
+ '''
+
+ if left['type'] == block_type.macro_cond or left['type'] == block_type.file:
+
+ if left['type'] == block_type.macro_cond:
+ prologue = '%s[%s]' % (prologue, left['name'])
+
+ # Make sure that everything in the left tree exists in the right tree.
+ for cl in left['contents']:
+ found = False
+ for cr in right['contents']:
+ if not cl['matched'] and not cr['matched'] and \
+ cl['name'] == cr['name'] and cl['type'] == cr['type']:
+ cl['matched'] = cr['matched'] = True
+ self.compare_trees(cl, cr, prologue)
+ found = True
+ break
+ if not found:
+ self.print_change(cl, cl['actions']['del'], prologue)
+
+ # ... and vice versa. This time we only need to look at unmatched
+ # contents.
+ for cr in right['contents']:
+ if not cr['matched']:
+ self.print_change(cr, cr['actions']['new'], prologue)
+ else:
+ if left['contents'] != right['contents']:
+ self.print_change(left, left['actions']['mod'], prologue)
+
+
+ def dump_tree(self, tree, indent):
+ ''' Print the entire tree.
+ '''
+ if not self.debug.debug:
+ return
+
+ if tree['type'] == block_type.macro_cond or tree['type'] == block_type.file:
+ print('%sScope: %s' % (' ' * indent, tree['name']))
+ for c in tree['contents']:
+ self.dump_tree(c, indent + 4)
+ print('%sEndScope: %s' % (' ' * indent, tree['name']))
+ else:
+ if tree['type'] == block_type.func:
+ print('%sFUNC: %s' % (' ' * indent, tree['name']))
+ elif tree['type'] == block_type.composite:
+ print('%sCOMPOSITE: %s' % (' ' * indent, tree['name']))
+ elif tree['type'] == block_type.assign:
+ print('%sASSIGN: %s' % (' ' * indent, tree['name']))
+ elif tree['type'] == block_type.fndecl:
+ print('%sFNDECL: %s' % (' ' * indent, tree['name']))
+ elif tree['type'] == block_type.decl:
+ print('%sDECL: %s' % (' ' * indent, tree['name']))
+ elif tree['type'] == block_type.macrocall:
+ print('%sMACROCALL: %s' % (' ' * indent, tree['name']))
+ elif tree['type'] == block_type.macro_def:
+ print('%sDEFINE: %s' % (' ' * indent, tree['name']))
+ elif tree['type'] == block_type.macro_include:
+ print('%sINCLUDE: %s' % (' ' * indent, tree['name']))
+ elif tree['type'] == block_type.macro_undef:
+ print('%sUNDEF: %s' % (' ' * indent, tree['name']))
+ else:
+ print('%sMACRO LEAF: %s' % (' ' * indent, tree['name']))
+
+
+ def compare(self, oldfile, newfile):
+ ''' Entry point for the C backend.
+
+ Parse the two files into trees and compare them. Print the result of the
+ comparison in the ChangeLog-like format.
+ '''
+ self.debug.print('LEFT TREE')
+ self.debug.print('-' * 80)
+ left = self.parse(oldfile)
+
+ self.debug.print('RIGHT TREE')
+ self.debug.print('-' * 80)
+ right = self.parse(newfile)
+
+ self.compare_trees(left, right)
diff --git a/scripts/vcs_to_changelog/misc_util.py b/scripts/vcs_to_changelog/misc_util.py
new file mode 100644
index 0000000000..b425bec300
--- /dev/null
+++ b/scripts/vcs_to_changelog/misc_util.py
@@ -0,0 +1,51 @@
+# General Utility functions.
+# Copyright (C) 2019 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
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program 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 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 <https://www.gnu.org/licenses/>.
+
+import sys
+
+class DebugUtil:
+ debug = False
+ def __init__(self, debug):
+ self.debug = debug
+
+ def eprint(self, *args, **kwargs):
+ ''' Print to stderr.
+ '''
+ print(*args, file=sys.stderr, **kwargs)
+
+
+ def print(self, *args, **kwargs):
+ ''' Convenience function to print diagnostic information in the program.
+ '''
+ if self.debug:
+ self.eprint(*args, **kwargs)
+
+
+def decode(string):
+ ''' Attempt to decode a string.
+
+ Decode a string read from the source file. The multiple attempts are needed
+ due to the presence of the page break characters and some tests in locales.
+ '''
+ codecs = ['utf8', 'cp1252']
+
+ for i in codecs:
+ try:
+ return string.decode(i)
+ except UnicodeDecodeError:
+ pass
+
+ DebugUtil.eprint('Failed to decode: %s' % string)
diff --git a/scripts/vcs_to_changelog/vcs_git.py b/scripts/vcs_to_changelog/vcs_git.py
new file mode 100644
index 0000000000..c88e41ef62
--- /dev/null
+++ b/scripts/vcs_to_changelog/vcs_git.py
@@ -0,0 +1,164 @@
+# Git repo support.
+# Copyright (C) 2019 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
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program 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 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 <https://www.gnu.org/licenses/>.
+
+from gitlog_to_changelog import analyze_diff
+import subprocess
+import re
+from misc_util import *
+
+class GitRepo:
+ def __init__(self, ignore_list, debug):
+ self.ignore_list = ignore_list
+ self.debug = debug
+
+
+ def exec_git_cmd(self, args):
+ ''' Execute a git command and return its result as a list of strings.
+ '''
+ args.insert(0, 'git')
+ self.debug.print(args)
+ proc = subprocess.Popen(args, stdout=subprocess.PIPE)
+
+ # Clean up the output by removing trailing spaces, newlines and dropping
+ # blank lines.
+ op = [decode(x[:-1]).strip() for x in proc.stdout]
+ op = [re.sub(r'[\s\f]+', ' ', x) for x in op]
+ op = [x for x in op if x]
+ return op
+
+
+ def list_changes(self, commit, frontends):
+ ''' List changes in a single commit.
+
+ For the input commit id COMMIT, identify the files that have changed and the
+ nature of their changes. Print commit information in the ChangeLog format,
+ calling into helper functions as necessary.
+ '''
+
+ op = self.exec_git_cmd(['show', '--pretty=fuller', '--date=short',
+ '--raw', commit])
+ authors = []
+ date = ''
+ merge = False
+ copyright_exempt=''
+ subject= ''
+
+ for l in op:
+ if l.lower().find('copyright-paperwork-exempt:') == 0 \
+ and 'yes' in l.lower():
+ copyright_exempt=' (tiny change)'
+ elif l.lower().find('co-authored-by:') == 0 or \
+ l.find('Author:') == 0:
+ author = l.split(':')[1]
+ author = re.sub(r'([^ ]*)\s*(<.*)', r'\1 \2', author.strip())
+ authors.append(author)
+ elif l.find('CommitDate:') == 0:
+ date = l[11:].strip()
+ elif l.find('Merge:') == 0:
+ merge = True
+ elif not subject and date:
+ subject = l.strip()
+
+ # Find raw commit information for all non-ChangeLog files.
+ op = [x[1:] for x in op if len(x) > 0 and re.match(r'^:[0-9]+', x)]
+
+ # Skip all ignored files.
+ for ign in self.ignore_list:
+ op = [x for x in op if ign not in x]
+
+ # It was only the ChangeLog, ignore.
+ if len(op) == 0:
+ return
+
+ print('%s %s' % (date, authors[0]))
+
+ if (len(authors) > 1):
+ authors = authors[1:]
+ for author in authors:
+ print(' %s' % author)
+
+ print()
+
+ if merge:
+ print('\t MERGE COMMIT: %s\n' % commit)
+ return
+
+ print('\tCOMMIT%s: %s\n\t%s\n' % (copyright_exempt, commit, subject))
+
+ # Changes across a large number of files are typically mechanical (URL
+ # updates, copyright notice changes, etc.) and likely not interesting
+ # enough to produce a detailed ChangeLog entry.
+ if len(op) > 100:
+ print('\t* Suppressing diff as too many files differ.')
+ return
+
+ # Each of these lines has a space separated format like so:
+ # :<OLD MODE> <NEW MODE> <OLD REF> <NEW REF> <OPERATION> <FILE1> <FILE2>
+ #
+ # where OPERATION can be one of the following:
+ # A: File added
+ # D: File removed
+ # M[0-9]{3}: File modified
+ # R[0-9]{3}: File renamed, with the 3 digit number following it indicating
+ # what percentage of the file is intact.
+ # C[0-9]{3}: File copied. Same semantics as R.
+ # T: The permission bits of the file changed
+ # U: Unmerged. We should not encounter this, so we ignore it/
+ # X, or anything else: Most likely a bug. Report it.
+ #
+ # FILE2 is set only when OPERATION is R or C, to indicate the new file name.
+ #
+ # Also note that merge commits have a different format here, with three
+ # entries each for the modes and refs, but we don't bother with it for now.
+ #
+ # For more details: https://git-scm.com/docs/diff-format
+ for f in op:
+ data = f.split()
+ if data[4] == 'A':
+ print('\t* %s: New file.' % data[5])
+ elif data[4] == 'D':
+ print('\t* %s: Delete file.' % data[5])
+ elif data[4] == 'T':
+ print('\t* %s: Changed file permission bits from %s to %s' % \
+ (data[5], data[0], data[1]))
+ elif data[4][0] == 'M':
+ print('\t* %s: Modified.' % data[5])
+ analyze_diff(data[5],
+ self.exec_git_cmd(['show', data[2]]),
+ self.exec_git_cmd(['show', data[3]]), frontends)
+ elif data[4][0] == 'R' or data[4][0] == 'C':
+ change = int(data[4][1:])
+ print('\t* %s: Move to...' % data[5])
+ print('\t* %s: ... here.' % data[6])
+ if change < 100:
+ analyze_diff(data[6],
+ self.exec_git_cmd(['show', data[2]]),
+ self.exec_git_cmd(['show', data[3]]), frontends)
+ # We should never encounter this, so ignore for now.
+ elif data[4] == 'U':
+ pass
+ else:
+ eprint('%s: Unknown line format %s' % (commit, data[4]))
+ sys.exit(42)
+
+ print('')
+
+
+ def list_commits(self, revs):
+ ''' List commit IDs between the two revs in the REVS list.
+ '''
+ ref = revs[0] + '..' + revs[1]
+ return self.exec_git_cmd(['log', '--pretty=%H', ref])
diff --git a/scripts/vcs_to_changelog/vcstocl_quirks.py b/scripts/vcs_to_changelog/vcstocl_quirks.py
new file mode 100644
index 0000000000..b29ea56031
--- /dev/null
+++ b/scripts/vcs_to_changelog/vcstocl_quirks.py
@@ -0,0 +1,64 @@
+#!/usr/bin/python3
+# VCSToChangeLog Quirks for the GNU C Library.
+
+# Copyright (C) 2019 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
+# 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
+# <http://www.gnu.org/licenses/>.
+
+from frontend_c import Frontend
+from vcs_to_changelog import ProjectQuirks
+import re
+
+class GlibcProjectQuirks(ProjectQuirks):
+ repo = 'git'
+
+ IGNORE_LIST = [
+ 'ChangeLog',
+ 'sysdeps/x86_64/dl-trampoline.h'
+ ]
+
+ MACRO_QUIRKS = \
+ [{'orig': r'ElfW\((\w+)\)', 'sub': r'\1__ELF_NATIVE_CLASS_t'},
+ {'orig': r'(libc_freeres_fn)\s*\((\w+)\)', 'sub': r'static void \1__\2 (void)'},
+ {'orig': r'(IMPL)\s*\((\w+), .*\)$', 'sub': r'static void \1__\2 (void) {}'},
+ {'orig': r'__(BEGIN|END)_DECLS', 'sub': r''},
+ {'orig': 'weak_function', 'sub': '__attribute__ ((weak))'},
+ {'orig': r'ATTRIBUTE_(CONST|MALLOC|PURE|FORMAT)',
+ 'sub': r'__attribute__ ((\1))'},
+ {'orig': r'__THROW', 'sub': r'__attribute__ ((__nothrow__ __LEAF))'},
+ {'orig': r'__THROWNL', 'sub': r'__attribute__ ((__nothrow__))'},
+ {'orig': r'([^_])attribute_(\w+)', 'sub': r'\1__attribute__ ((\2))'},
+ {'orig': r'^attribute_(\w+)', 'sub': r'__attribute__ ((\1))'}]
+
+ def __init__(self, debug):
+ self.debug = debug
+ ''' Build a list of macro calls used for symbol versioning and attributes.
+
+ glibc uses a set of macro calls that do not end with a semi-colon and hence
+ breaks our parser. Identify those calls from include/libc-symbols.h and
+ filter them out.
+ '''
+ with open('include/libc-symbols.h') as macrofile:
+ op = macrofile.readlines()
+ op = Frontend.remove_comments(self, op)
+ self.C_MACROS = [re.sub(r'.*define (\w+).*', r'\1', x[:-1]) for x in op \
+ if 'define ' in x]
+
+ super().__init__()
+
+def get_project_quirks(debug):
+ ''' Accessor function.
+ '''
+ return GlibcProjectQuirks(debug)
diff --git a/scripts/versionlist.awk b/scripts/versionlist.awk
index fd51ff3fed..5df33d6940 100644
--- a/scripts/versionlist.awk
+++ b/scripts/versionlist.awk
@@ -1,5 +1,5 @@
# Extract ordered list of version sets from Versions files.
-# Copyright (C) 2014-2018 Free Software Foundation, Inc.
+# Copyright (C) 2014-2019 Free Software Foundation, Inc.
BEGIN { in_lib = ""; in_version = 0 }
diff --git a/scripts/versions.awk b/scripts/versions.awk
index a3df316c70..4fa3e9259a 100644
--- a/scripts/versions.awk
+++ b/scripts/versions.awk
@@ -1,5 +1,5 @@
# Combine version map fragments into version scripts for our shared objects.
-# Copyright (C) 1998-2018 Free Software Foundation, Inc.
+# Copyright (C) 1998-2019 Free Software Foundation, Inc.
# Written by Ulrich Drepper <drepper@cygnus.com>, 1998.
# This script expects the following variables to be defined:
diff --git a/setjmp/Makefile b/setjmp/Makefile
index dc2fcc62b6..7f8bbb7da7 100644
--- a/setjmp/Makefile
+++ b/setjmp/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1991-2018 Free Software Foundation, Inc.
+# Copyright (C) 1991-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
# Makefile for setjmp/longjmp routines
diff --git a/setjmp/__longjmp.c b/setjmp/__longjmp.c
index 0d0642476a..82bba117ea 100644
--- a/setjmp/__longjmp.c
+++ b/setjmp/__longjmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <setjmp.h>
diff --git a/setjmp/bits/setjmp2.h b/setjmp/bits/setjmp2.h
index e6e996699e..f05dad078a 100644
--- a/setjmp/bits/setjmp2.h
+++ b/setjmp/bits/setjmp2.h
@@ -1,5 +1,5 @@
/* Checking macros for setjmp functions.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SETJMP_H
# error "Never include <bits/setjmp2.h> directly; use <setjmp.h> instead."
diff --git a/setjmp/bsd-_setjmp.c b/setjmp/bsd-_setjmp.c
index 24fd4d1a57..63522ed2df 100644
--- a/setjmp/bsd-_setjmp.c
+++ b/setjmp/bsd-_setjmp.c
@@ -1,5 +1,5 @@
/* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'. Stub version.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <setjmp.h>
diff --git a/setjmp/bsd-setjmp.c b/setjmp/bsd-setjmp.c
index d8d154c142..060b2a73a9 100644
--- a/setjmp/bsd-setjmp.c
+++ b/setjmp/bsd-setjmp.c
@@ -1,5 +1,5 @@
/* BSD `setjmp' entry point to `sigsetjmp (..., 1)'. Stub version.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <setjmp.h>
diff --git a/setjmp/bug269-setjmp.c b/setjmp/bug269-setjmp.c
index b9a34834f2..99c1032a64 100644
--- a/setjmp/bug269-setjmp.c
+++ b/setjmp/bug269-setjmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Test case for Bugzilla # 269 */
diff --git a/setjmp/jmp-unwind.c b/setjmp/jmp-unwind.c
index 736ff48316..3443d36c4f 100644
--- a/setjmp/jmp-unwind.c
+++ b/setjmp/jmp-unwind.c
@@ -1,5 +1,5 @@
/* _longjmp_unwind -- Clean up stack frames unwound by longjmp. Stub version.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <setjmp.h>
diff --git a/setjmp/longjmp.c b/setjmp/longjmp.c
index 453889e103..edcef2bfb5 100644
--- a/setjmp/longjmp.c
+++ b/setjmp/longjmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <setjmpP.h>
diff --git a/setjmp/setjmp.c b/setjmp/setjmp.c
index 48fc7b7395..1a2cf3e9be 100644
--- a/setjmp/setjmp.c
+++ b/setjmp/setjmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <setjmp.h>
diff --git a/setjmp/setjmp.h b/setjmp/setjmp.h
index 1a244c4cc6..b9062033f1 100644
--- a/setjmp/setjmp.h
+++ b/setjmp/setjmp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* ISO C99 Standard: 7.13 Nonlocal jumps <setjmp.h>
diff --git a/setjmp/sigjmp.c b/setjmp/sigjmp.c
index d727ba5c27..564cdd0072 100644
--- a/setjmp/sigjmp.c
+++ b/setjmp/sigjmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <setjmpP.h>
@@ -26,9 +26,9 @@
int
__sigjmp_save (sigjmp_buf env, int savemask)
{
- env[0].__mask_was_saved = (savemask &&
- __sigprocmask (SIG_BLOCK, (sigset_t *) NULL,
- (sigset_t *) &env[0].__saved_mask) == 0);
+ env[0].__mask_was_saved = (savemask
+ && __sigprocmask (SIG_BLOCK, (sigset_t *) NULL,
+ (sigset_t *) &env[0].__saved_mask) == 0);
return 0;
}
diff --git a/setjmp/tst-setjmp-fp.c b/setjmp/tst-setjmp-fp.c
index 77046ea5a7..03d9f6fbf9 100644
--- a/setjmp/tst-setjmp-fp.c
+++ b/setjmp/tst-setjmp-fp.c
@@ -1,6 +1,6 @@
/* Test that setjmp/longjmp do not save and restore floating-point
exceptions and rounding modes.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <setjmp.h>
diff --git a/setjmp/tst-setjmp.c b/setjmp/tst-setjmp.c
index b750dbccd2..4026b20a11 100644
--- a/setjmp/tst-setjmp.c
+++ b/setjmp/tst-setjmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <setjmp.h>
@@ -22,7 +22,7 @@
static jmp_buf env;
static int last_value = -1, lose = 0;
-static void
+static __attribute__ ((__noreturn__)) void
jump (int val)
{
longjmp (env, val);
diff --git a/setjmp/tst-sigsetjmp.c b/setjmp/tst-sigsetjmp.c
index a9c5f84e40..f77daac85f 100644
--- a/setjmp/tst-sigsetjmp.c
+++ b/setjmp/tst-sigsetjmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2013-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Test case for BZ #15493 */
diff --git a/shadow/Makefile b/shadow/Makefile
index 1c28a01f73..17337b563c 100644
--- a/shadow/Makefile
+++ b/shadow/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
# Makefile for shadow.
diff --git a/shadow/fgetspent.c b/shadow/fgetspent.c
index 2884775c35..648a92e9e1 100644
--- a/shadow/fgetspent.c
+++ b/shadow/fgetspent.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <libc-lock.h>
diff --git a/shadow/fgetspent_r.c b/shadow/fgetspent_r.c
index 5a547b436d..0193468ce1 100644
--- a/shadow/fgetspent_r.c
+++ b/shadow/fgetspent_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <errno.h>
@@ -64,10 +64,10 @@ __fgetspent_r (FILE *stream, struct spwd *resbuf, char *buffer, size_t buflen,
/* Skip leading blanks. */
while (isspace (*p))
++p;
- } while (*p == '\0' || *p == '#' || /* Ignore empty and comment lines. */
+ } while (*p == '\0' || *p == '#' /* Ignore empty and comment lines. */
/* Parse the line. If it is invalid, loop to
get the next line of the file to parse. */
- ! parse_line (buffer, (void *) resbuf, NULL, 0, &errno));
+ || ! parse_line (buffer, (void *) resbuf, NULL, 0, &errno));
funlockfile (stream);
diff --git a/shadow/getspent.c b/shadow/getspent.c
index 8b2c376638..00eef7fe61 100644
--- a/shadow/getspent.c
+++ b/shadow/getspent.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <shadow.h>
diff --git a/shadow/getspent_r.c b/shadow/getspent_r.c
index 1690689940..0a8cdc8076 100644
--- a/shadow/getspent_r.c
+++ b/shadow/getspent_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <shadow.h>
diff --git a/shadow/getspnam.c b/shadow/getspnam.c
index 17b7a32f67..551766bdba 100644
--- a/shadow/getspnam.c
+++ b/shadow/getspnam.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <shadow.h>
diff --git a/shadow/getspnam_r.c b/shadow/getspnam_r.c
index fa4f03c991..93b1a076f6 100644
--- a/shadow/getspnam_r.c
+++ b/shadow/getspnam_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <shadow.h>
diff --git a/shadow/lckpwdf.c b/shadow/lckpwdf.c
index 9bbb175d4e..88d67c3367 100644
--- a/shadow/lckpwdf.c
+++ b/shadow/lckpwdf.c
@@ -1,5 +1,5 @@
/* Handle locking of password file.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fcntl.h>
#include <libc-lock.h>
diff --git a/shadow/putspent.c b/shadow/putspent.c
index edd79d238d..36edecdfa0 100644
--- a/shadow/putspent.c
+++ b/shadow/putspent.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <nss.h>
diff --git a/shadow/sgetspent.c b/shadow/sgetspent.c
index a6b2325df1..d5113ec44d 100644
--- a/shadow/sgetspent.c
+++ b/shadow/sgetspent.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <libc-lock.h>
diff --git a/shadow/sgetspent_r.c b/shadow/sgetspent_r.c
index 73a9e65cdf..41e3b7ae90 100644
--- a/shadow/sgetspent_r.c
+++ b/shadow/sgetspent_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <errno.h>
diff --git a/shadow/shadow.h b/shadow/shadow.h
index 351882e448..1053dedddd 100644
--- a/shadow/shadow.h
+++ b/shadow/shadow.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Declaration of types and functions for "shadow" storage of hashed
passphrases. The shadow database is like the user database, but is
diff --git a/shadow/tst-putspent.c b/shadow/tst-putspent.c
index f6d8d19f33..8e1fd9ffad 100644
--- a/shadow/tst-putspent.c
+++ b/shadow/tst-putspent.c
@@ -1,5 +1,5 @@
/* Test for processing of invalid shadow entries. [BZ #18724]
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <shadow.h>
diff --git a/signal/Makefile b/signal/Makefile
index aa63434f47..59595961c2 100644
--- a/signal/Makefile
+++ b/signal/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1991-2018 Free Software Foundation, Inc.
+# Copyright (C) 1991-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
# Makefile for signal routines.
@@ -31,7 +31,7 @@ headers := signal.h sys/signal.h \
bits/types/sigevent_t.h bits/types/siginfo_t.h \
bits/types/sigset_t.h bits/types/sigval_t.h \
bits/types/stack_t.h bits/types/struct_sigstack.h \
- bits/types/__sigval_t.h
+ bits/types/__sigval_t.h bits/signal_ext.h
routines := signal raise killpg \
sigaction sigprocmask kill \
@@ -47,6 +47,8 @@ routines := signal raise killpg \
tests := tst-signal tst-sigset tst-sigsimple tst-raise tst-sigset2 \
tst-sigwait-eintr tst-sigaction \
+ tst-minsigstksz-1 tst-minsigstksz-2 tst-minsigstksz-3 \
+ tst-minsigstksz-3a tst-minsigstksz-4 \
include ../Rules
@@ -57,3 +59,11 @@ CFLAGS-sigwait.c += -fexceptions -fasynchronous-unwind-tables
CFLAGS-sigwaitinfo.c += -fexceptions -fasynchronous-unwind-tables
CFLAGS-sigreturn.c += $(no-stack-protector)
+
+# We don't want to test the lazy resolution stack usage, just the
+# execution of the handler and the functions.
+LDFLAGS-tst-minsigstksz-1 = -Wl,-z,now
+LDFLAGS-tst-minsigstksz-2 = -Wl,-z,now
+LDFLAGS-tst-minsigstksz-3 = -Wl,-z,now
+LDFLAGS-tst-minsigstksz-3a = -Wl,-z,now
+LDFLAGS-tst-minsigstksz-4 = -Wl,-z,now
diff --git a/signal/allocrtsig.c b/signal/allocrtsig.c
index fa642a52ea..4de4191e1e 100644
--- a/signal/allocrtsig.c
+++ b/signal/allocrtsig.c
@@ -1,5 +1,5 @@
/* Handle real-time signal allocation. Generic version.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <signal.h>
diff --git a/signal/bits/types/__sigval_t.h b/signal/bits/types/__sigval_t.h
index 395ce501e9..7b61755efd 100644
--- a/signal/bits/types/__sigval_t.h
+++ b/signal/bits/types/__sigval_t.h
@@ -1,5 +1,5 @@
/* Define __sigval_t.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef ____sigval_t_defined
#define ____sigval_t_defined
diff --git a/signal/bits/types/struct_sigstack.h b/signal/bits/types/struct_sigstack.h
index 22da176654..6cc40caeb8 100644
--- a/signal/bits/types/struct_sigstack.h
+++ b/signal/bits/types/struct_sigstack.h
@@ -1,5 +1,5 @@
/* Define struct sigstack.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef __sigstack_defined
#define __sigstack_defined 1
diff --git a/signal/kill.c b/signal/kill.c
index 6368c2f10f..cff815fba8 100644
--- a/signal/kill.c
+++ b/signal/kill.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/signal/killpg.c b/signal/killpg.c
index 86b99464fc..612182654d 100644
--- a/signal/killpg.c
+++ b/signal/killpg.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/signal/raise.c b/signal/raise.c
index 2590adac4f..122d73c2c0 100644
--- a/signal/raise.c
+++ b/signal/raise.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <signal.h>
#include <errno.h>
diff --git a/signal/sigaction.c b/signal/sigaction.c
index c99001af42..fa25c5a930 100644
--- a/signal/sigaction.c
+++ b/signal/sigaction.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/signal/sigaddset.c b/signal/sigaddset.c
index cfb3373b13..3f95a266bc 100644
--- a/signal/sigaddset.c
+++ b/signal/sigaddset.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/signal/sigaltstack.c b/signal/sigaltstack.c
index 39e0cb4b70..fc704bfa03 100644
--- a/signal/sigaltstack.c
+++ b/signal/sigaltstack.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/signal/sigandset.c b/signal/sigandset.c
index 7bac42ce4d..2fa4c490e7 100644
--- a/signal/sigandset.c
+++ b/signal/sigandset.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/signal/sigblock.c b/signal/sigblock.c
index e04d6ee49d..8bd9953bec 100644
--- a/signal/sigblock.c
+++ b/signal/sigblock.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/signal/sigdelset.c b/signal/sigdelset.c
index 52f2ce6a36..d1d7a3374f 100644
--- a/signal/sigdelset.c
+++ b/signal/sigdelset.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/signal/sigempty.c b/signal/sigempty.c
index 446604d108..2dedec71c2 100644
--- a/signal/sigempty.c
+++ b/signal/sigempty.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/signal/sigfillset.c b/signal/sigfillset.c
index 83dd583b7b..f4012995f0 100644
--- a/signal/sigfillset.c
+++ b/signal/sigfillset.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/signal/siggetmask.c b/signal/siggetmask.c
index 200ed21c80..29e40e73eb 100644
--- a/signal/siggetmask.c
+++ b/signal/siggetmask.c
@@ -1,5 +1,5 @@
/* siggetmask -- useless alias for `sigblock (0)' for old Linux compatibility.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <signal.h>
diff --git a/signal/sighold.c b/signal/sighold.c
index 32a95288a6..b99a384143 100644
--- a/signal/sighold.c
+++ b/signal/sighold.c
@@ -1,5 +1,5 @@
/* Add SIG to the calling process' signal mask.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __need_NULL
#include <stddef.h>
diff --git a/signal/sigignore.c b/signal/sigignore.c
index 8ec1dcc2af..adea597626 100644
--- a/signal/sigignore.c
+++ b/signal/sigignore.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/signal/sigintr.c b/signal/sigintr.c
index c73c858fb6..28924203c0 100644
--- a/signal/sigintr.c
+++ b/signal/sigintr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/signal/sigisempty.c b/signal/sigisempty.c
index 949145ccc8..018a3b076e 100644
--- a/signal/sigisempty.c
+++ b/signal/sigisempty.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/signal/sigismem.c b/signal/sigismem.c
index a919b33c37..e54bd0da84 100644
--- a/signal/sigismem.c
+++ b/signal/sigismem.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/signal/signal.c b/signal/signal.c
index 05d6a954b3..f9a269c36c 100644
--- a/signal/signal.c
+++ b/signal/signal.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/signal/signal.h b/signal/signal.h
index 87dc82a998..b6829d3083 100644
--- a/signal/signal.h
+++ b/signal/signal.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* ISO C99 Standard: 7.14 Signal handling <signal.h>
@@ -370,6 +370,9 @@ extern int __libc_current_sigrtmax (void) __THROW;
#define SIGRTMIN (__libc_current_sigrtmin ())
#define SIGRTMAX (__libc_current_sigrtmax ())
+/* System-specific extensions. */
+#include <bits/signal_ext.h>
+
__END_DECLS
#endif /* not signal.h */
diff --git a/signal/sigorset.c b/signal/sigorset.c
index e6c66f12f3..bd3e361953 100644
--- a/signal/sigorset.c
+++ b/signal/sigorset.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/signal/sigpause.c b/signal/sigpause.c
index 43f570e55a..2799870a53 100644
--- a/signal/sigpause.c
+++ b/signal/sigpause.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define sigpause __rename_sigpause
#include <errno.h>
diff --git a/signal/sigpending.c b/signal/sigpending.c
index f474e8e17e..add1073e30 100644
--- a/signal/sigpending.c
+++ b/signal/sigpending.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/signal/sigprocmask.c b/signal/sigprocmask.c
index 55371d0b15..036de249f4 100644
--- a/signal/sigprocmask.c
+++ b/signal/sigprocmask.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/signal/sigqueue.c b/signal/sigqueue.c
index 8b2bfd6b4f..40ee26d95c 100644
--- a/signal/sigqueue.c
+++ b/signal/sigqueue.c
@@ -1,5 +1,5 @@
/* Implementation of sigqueue function from POSIX.1b.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/signal/sigrelse.c b/signal/sigrelse.c
index c08bbc8d56..cf43f65e3d 100644
--- a/signal/sigrelse.c
+++ b/signal/sigrelse.c
@@ -1,5 +1,5 @@
/* Remove SIG from the calling process' signal mask.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __need_NULL
#include <stddef.h>
diff --git a/signal/sigreturn.c b/signal/sigreturn.c
index 92aaae6dd3..f8d0548d35 100644
--- a/signal/sigreturn.c
+++ b/signal/sigreturn.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <signal.h>
#include <errno.h>
diff --git a/signal/sigset.c b/signal/sigset.c
index bd6d8b851b..52bd059d00 100644
--- a/signal/sigset.c
+++ b/signal/sigset.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/signal/sigsetmask.c b/signal/sigsetmask.c
index d223034df0..6e10d05ce7 100644
--- a/signal/sigsetmask.c
+++ b/signal/sigsetmask.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/signal/sigsetops.c b/signal/sigsetops.c
index 312b5e5b32..c2b9d67185 100644
--- a/signal/sigsetops.c
+++ b/signal/sigsetops.c
@@ -1,5 +1,5 @@
/* Compatibility symbols for old versions of signal.h.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <signal.h>
#include <sigsetops.h>
diff --git a/signal/sigstack.c b/signal/sigstack.c
index 1b28180042..81acf698fb 100644
--- a/signal/sigstack.c
+++ b/signal/sigstack.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/signal/sigsuspend.c b/signal/sigsuspend.c
index 55577578a4..330f7428e8 100644
--- a/signal/sigsuspend.c
+++ b/signal/sigsuspend.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/signal/sigtimedwait.c b/signal/sigtimedwait.c
index 308b9b95d7..7561ea3ff8 100644
--- a/signal/sigtimedwait.c
+++ b/signal/sigtimedwait.c
@@ -1,5 +1,5 @@
/* Implementation of sigtimedwait function from POSIX.1b.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/signal/sigvec.c b/signal/sigvec.c
index 48ca55428e..04ad372fcb 100644
--- a/signal/sigvec.c
+++ b/signal/sigvec.c
@@ -1,5 +1,5 @@
/* ABI compatibility for obsolete sigvec function from 4.2BSD.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <shlib-compat.h>
diff --git a/signal/sigwait.c b/signal/sigwait.c
index 4273281d9c..d2458ee639 100644
--- a/signal/sigwait.c
+++ b/signal/sigwait.c
@@ -1,5 +1,5 @@
/* sigwait - implementation of sigwait function from POSIX.1c.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/signal/sigwaitinfo.c b/signal/sigwaitinfo.c
index 44ac0223d2..af09e7e20a 100644
--- a/signal/sigwaitinfo.c
+++ b/signal/sigwaitinfo.c
@@ -1,5 +1,5 @@
/* Implementation of sigwaitinfo function from POSIX.1b.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/signal/sysv_signal.c b/signal/sysv_signal.c
index e4416cb25e..c321624e3f 100644
--- a/signal/sysv_signal.c
+++ b/signal/sysv_signal.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/signal/tst-minsigstksz-1.c b/signal/tst-minsigstksz-1.c
new file mode 100644
index 0000000000..9e2c62f635
--- /dev/null
+++ b/signal/tst-minsigstksz-1.c
@@ -0,0 +1,131 @@
+/* Tests of signal delivery on an alternate stack (nonlethal).
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <support/xsignal.h>
+#include <support/support.h>
+#include <support/check.h>
+
+/* C2011 7.4.1.1p5 specifies that only the following operations are
+ guaranteed to be well-defined inside an asynchronous signal handler:
+ * any operation on a lock-free atomic object
+ * assigning a value to an object declared as volatile sig_atomic_t
+ * calling abort, _Exit, quick_exit, or signal
+ * signal may only be called with its first argument equal to the
+ number of the signal that caused the handler to be called
+
+ We use this list as a guideline for the set of operations that ought
+ also to be safe in a _synchronous_ signal delivered on an alternate
+ signal stack with only MINSIGSTKSZ bytes of space.
+
+ This test program tests all of the above operations that do not,
+ one way or another, cause the program to be terminated. */
+
+/* We do not try to test atomic operations exhaustively, only a simple
+ atomic counter increment. This is only safe if atomic_[u]int is
+ unconditionally lock-free. */
+#ifdef __STDC_NO_ATOMICS__
+# define TEST_ATOMIC_OPS 0
+#else
+# include <stdatomic.h>
+# if ATOMIC_INT_LOCK_FREE != 2
+# define TEST_ATOMIC_OPS 0
+# else
+# define TEST_ATOMIC_OPS 1
+# endif
+#endif
+
+static volatile sig_atomic_t signal_flag = 0;
+static volatile sig_atomic_t signal_err = 0;
+static void
+handler_set_flag (int unused)
+{
+ signal_flag = 1;
+}
+
+static void
+handler_set_flag_once (int sig)
+{
+ signal_flag = 1;
+ if (signal (sig, SIG_IGN) == SIG_ERR)
+ /* It is not safe to call FAIL_EXIT1 here. Set another flag instead. */
+ signal_err = 1;
+}
+
+#if TEST_ATOMIC_OPS
+static atomic_uint signal_count = 0;
+static void
+handler_count_up_1 (int unused)
+{
+ atomic_fetch_add (&signal_count, 1);
+}
+#endif
+
+int
+do_test (void)
+{
+ void *sstk = xalloc_sigstack (0);
+ struct sigaction sa;
+
+ /* Test 1: setting a volatile sig_atomic_t flag. */
+ sa.sa_handler = handler_set_flag;
+ sa.sa_flags = SA_RESTART | SA_ONSTACK;
+ sigfillset (&sa.sa_mask);
+ if (sigaction (SIGUSR1, &sa, 0))
+ FAIL_EXIT1 ("sigaction (SIGUSR1, handler_set_flag): %m\n");
+
+ TEST_VERIFY_EXIT (signal_flag == 0);
+ raise (SIGUSR1);
+ TEST_VERIFY_EXIT (signal_flag == 1);
+ signal_flag = 0;
+ raise (SIGUSR1);
+ TEST_VERIFY_EXIT (signal_flag == 1);
+ signal_flag = 0;
+
+ /* Test 1: setting a volatile sig_atomic_t flag and then ignoring
+ further delivery of the signal. */
+ sa.sa_handler = handler_set_flag_once;
+ if (sigaction (SIGUSR1, &sa, 0))
+ FAIL_EXIT1 ("sigaction (SIGUSR1, handler_set_flag_once): %m\n");
+
+ raise (SIGUSR1);
+ TEST_VERIFY_EXIT (signal_flag == 1);
+ /* Note: if signal_err is 1, a system call failed, but we can't
+ report the error code because errno is indeterminate. */
+ TEST_VERIFY_EXIT (signal_err == 0);
+
+ signal_flag = 0;
+ raise (SIGUSR1);
+ TEST_VERIFY_EXIT (signal_flag == 0);
+ TEST_VERIFY_EXIT (signal_err == 0);
+
+#if TEST_ATOMIC_OPS
+ sa.sa_handler = handler_count_up_1;
+ if (sigaction (SIGUSR1, &sa, 0))
+ FAIL_EXIT1 ("sigaction (SIGUSR1, handler_count_up_1): %m\n");
+
+ raise (SIGUSR1);
+ TEST_VERIFY_EXIT (atomic_load (&signal_count) == 1);
+ raise (SIGUSR1);
+ TEST_VERIFY_EXIT (atomic_load (&signal_count) == 2);
+#endif
+
+ xfree_sigstack (sstk);
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/signal/tst-minsigstksz-2.c b/signal/tst-minsigstksz-2.c
new file mode 100644
index 0000000000..a022fb7ffc
--- /dev/null
+++ b/signal/tst-minsigstksz-2.c
@@ -0,0 +1,66 @@
+/* Tests of signal delivery on an alternate stack (abort).
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <support/xsignal.h>
+#include <support/support.h>
+#include <support/check.h>
+#include <stdlib.h>
+
+/* C2011 7.4.1.1p5 specifies that only the following operations are
+ guaranteed to be well-defined inside an asynchronous signal handler:
+ * any operation on a lock-free atomic object
+ * assigning a value to an object declared as volatile sig_atomic_t
+ * calling abort, _Exit, quick_exit, or signal
+ * signal may only be called with its first argument equal to the
+ number of the signal that caused the handler to be called
+
+ We use this list as a guideline for the set of operations that ought
+ also to be safe in a _synchronous_ signal delivered on an alternate
+ signal stack with only MINSIGSTKSZ bytes of space.
+
+ This test program tests calls to abort. Note that it does _not_
+ install a handler for SIGABRT, because that signal would also be
+ delivered on the alternate stack and MINSIGSTKSZ does not provide
+ enough space for delivery of nested signals. */
+
+static void
+handler (int unused)
+{
+ abort ();
+}
+
+int
+do_test (void)
+{
+ void *sstk = xalloc_sigstack (0);
+ struct sigaction sa;
+
+ sa.sa_handler = handler;
+ sa.sa_flags = SA_RESTART | SA_ONSTACK;
+ sigfillset (&sa.sa_mask);
+ if (sigaction (SIGUSR1, &sa, 0))
+ FAIL_RET ("sigaction (SIGUSR1, handler): %m\n");
+
+ raise (SIGUSR1);
+
+ xfree_sigstack (sstk);
+ FAIL_RET ("test process was not terminated by abort in signal handler");
+}
+
+#define EXPECTED_SIGNAL SIGABRT
+#include <support/test-driver.c>
diff --git a/signal/tst-minsigstksz-3.c b/signal/tst-minsigstksz-3.c
new file mode 100644
index 0000000000..e54cc09d1b
--- /dev/null
+++ b/signal/tst-minsigstksz-3.c
@@ -0,0 +1,64 @@
+/* Tests of signal delivery on an alternate stack (_Exit).
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <support/xsignal.h>
+#include <support/support.h>
+#include <support/check.h>
+#include <stdlib.h>
+
+/* C2011 7.4.1.1p5 specifies that only the following operations are
+ guaranteed to be well-defined inside an asynchronous signal handler:
+ * any operation on a lock-free atomic object
+ * assigning a value to an object declared as volatile sig_atomic_t
+ * calling abort, _Exit, quick_exit, or signal
+ * signal may only be called with its first argument equal to the
+ number of the signal that caused the handler to be called
+
+ We use this list as a guideline for the set of operations that ought
+ also to be safe in a _synchronous_ signal delivered on an alternate
+ signal stack with only MINSIGSTKSZ bytes of space.
+
+ This test program tests calls to _Exit. */
+
+#define EXPECTED_STATUS 3
+
+static void
+handler (int unused)
+{
+ _Exit (EXPECTED_STATUS);
+}
+
+int
+do_test (void)
+{
+ void *sstk = xalloc_sigstack (0);
+ struct sigaction sa;
+
+ sa.sa_handler = handler;
+ sa.sa_flags = SA_RESTART | SA_ONSTACK;
+ sigfillset (&sa.sa_mask);
+ if (sigaction (SIGUSR1, &sa, 0))
+ FAIL_RET ("sigaction (SIGUSR1, handler): %m\n");
+
+ raise (SIGUSR1);
+
+ xfree_sigstack (sstk);
+ FAIL_RET ("test process was not terminated by _Exit in signal handler");
+}
+
+#include <support/test-driver.c>
diff --git a/signal/tst-minsigstksz-3a.c b/signal/tst-minsigstksz-3a.c
new file mode 100644
index 0000000000..93883f88ff
--- /dev/null
+++ b/signal/tst-minsigstksz-3a.c
@@ -0,0 +1,69 @@
+/* Tests of signal delivery on an alternate stack (_exit).
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <support/xsignal.h>
+#include <support/support.h>
+#include <support/check.h>
+#include <unistd.h>
+
+/* C2011 7.4.1.1p5 specifies that only the following operations are
+ guaranteed to be well-defined inside an asynchronous signal handler:
+ * any operation on a lock-free atomic object
+ * assigning a value to an object declared as volatile sig_atomic_t
+ * calling abort, _Exit, quick_exit, or signal
+ * signal may only be called with its first argument equal to the
+ number of the signal that caused the handler to be called
+
+ We use this list as a guideline for the set of operations that ought
+ also to be safe in a _synchronous_ signal delivered on an alternate
+ signal stack with only MINSIGSTKSZ bytes of space.
+
+ This test program tests calls to _exit, which is the same function
+ as _Exit, but specified by POSIX rather than ISO C. For reasons
+ unknown to the author of this program, the C committee did not
+ think it could standardize _exit under that name; regardless, in a
+ POSIX-conformant environment, they should be completely
+ interchangeable. */
+
+#define EXPECTED_STATUS 3
+
+static void
+handler (int unused)
+{
+ _exit (EXPECTED_STATUS);
+}
+
+int
+do_test (void)
+{
+ void *sstk = xalloc_sigstack (0);
+ struct sigaction sa;
+
+ sa.sa_handler = handler;
+ sa.sa_flags = SA_RESTART | SA_ONSTACK;
+ sigfillset (&sa.sa_mask);
+ if (sigaction (SIGUSR1, &sa, 0))
+ FAIL_RET ("sigaction (SIGUSR1, handler): %m\n");
+
+ raise (SIGUSR1);
+
+ xfree_sigstack (sstk);
+ FAIL_RET ("test process was not terminated by _exit in signal handler");
+}
+
+#include <support/test-driver.c>
diff --git a/signal/tst-minsigstksz-4.c b/signal/tst-minsigstksz-4.c
new file mode 100644
index 0000000000..8d799b189f
--- /dev/null
+++ b/signal/tst-minsigstksz-4.c
@@ -0,0 +1,65 @@
+/* Tests of signal delivery on an alternate stack (quick_exit).
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <support/xsignal.h>
+#include <support/support.h>
+#include <support/check.h>
+#include <stdlib.h>
+
+/* C2011 7.4.1.1p5 specifies that only the following operations are
+ guaranteed to be well-defined inside an asynchronous signal handler:
+ * any operation on a lock-free atomic object
+ * assigning a value to an object declared as volatile sig_atomic_t
+ * calling abort, _Exit, quick_exit, or signal
+ * signal may only be called with its first argument equal to the
+ number of the signal that caused the handler to be called
+
+ We use this list as a guideline for the set of operations that ought
+ also to be safe in a _synchronous_ signal delivered on an alternate
+ signal stack with only MINSIGSTKSZ bytes of space.
+
+ This test program tests calls to quick_exit. Note that this is only
+ safe when there are no at_quick_exit callbacks. */
+
+#define EXPECTED_STATUS 3
+
+static void
+handler (int unused)
+{
+ quick_exit (EXPECTED_STATUS);
+}
+
+int
+do_test (void)
+{
+ void *sstk = xalloc_sigstack (0);
+ struct sigaction sa;
+
+ sa.sa_handler = handler;
+ sa.sa_flags = SA_RESTART | SA_ONSTACK;
+ sigfillset (&sa.sa_mask);
+ if (sigaction (SIGUSR1, &sa, 0))
+ FAIL_RET ("sigaction (SIGUSR1, handler): %m\n");
+
+ raise (SIGUSR1);
+
+ xfree_sigstack (sstk);
+ FAIL_RET ("test process was not terminated by quick_exit in signal handler");
+}
+
+#include <support/test-driver.c>
diff --git a/signal/tst-raise.c b/signal/tst-raise.c
index 0c51ad2869..a84e9af390 100644
--- a/signal/tst-raise.c
+++ b/signal/tst-raise.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <error.h>
diff --git a/signal/tst-sigaction.c b/signal/tst-sigaction.c
index c908e8f6f6..b50169c2c2 100644
--- a/signal/tst-sigaction.c
+++ b/signal/tst-sigaction.c
@@ -1,5 +1,5 @@
/* Test sigaction regression for BZ #23069.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <signal.h>
#include <unistd.h>
diff --git a/signal/tst-sigsimple.c b/signal/tst-sigsimple.c
index 20c3ea3782..6316b9e44a 100644
--- a/signal/tst-sigsimple.c
+++ b/signal/tst-sigsimple.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/signal/tst-sigwait-eintr.c b/signal/tst-sigwait-eintr.c
index d748a5432f..0bdeb61eac 100644
--- a/signal/tst-sigwait-eintr.c
+++ b/signal/tst-sigwait-eintr.c
@@ -1,5 +1,5 @@
/* Check that sigwait does not fail with EINTR (bug 22478).
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/socket/Makefile b/socket/Makefile
index b41eb07150..75ac20e7c0 100644
--- a/socket/Makefile
+++ b/socket/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1991-2018 Free Software Foundation, Inc.
+# Copyright (C) 1991-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
# Sub-makefile for socket portion of the library.
diff --git a/socket/accept.c b/socket/accept.c
index 84894a97d6..ae9d92b328 100644
--- a/socket/accept.c
+++ b/socket/accept.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/socket.h>
diff --git a/socket/accept4.c b/socket/accept4.c
index 88bcc231e0..0552cfcbcc 100644
--- a/socket/accept4.c
+++ b/socket/accept4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/socket.h>
diff --git a/socket/bind.c b/socket/bind.c
index 45cef47a72..f40f2586f3 100644
--- a/socket/bind.c
+++ b/socket/bind.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/socket.h>
diff --git a/socket/bits/socket2.h b/socket/bits/socket2.h
index a129e69735..5075467d6e 100644
--- a/socket/bits/socket2.h
+++ b/socket/bits/socket2.h
@@ -1,5 +1,5 @@
/* Checking macros for socket functions.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_SOCKET_H
# error "Never include <bits/socket2.h> directly; use <sys/socket.h> instead."
diff --git a/socket/connect.c b/socket/connect.c
index ceb7dc4a72..312eecc2f6 100644
--- a/socket/connect.c
+++ b/socket/connect.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/socket.h>
diff --git a/socket/getpeername.c b/socket/getpeername.c
index e273b6b1e8..3e4e979258 100644
--- a/socket/getpeername.c
+++ b/socket/getpeername.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/socket.h>
diff --git a/socket/getsockname.c b/socket/getsockname.c
index fe43b12b3d..464a5d6a80 100644
--- a/socket/getsockname.c
+++ b/socket/getsockname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/socket.h>
diff --git a/socket/getsockopt.c b/socket/getsockopt.c
index 508e80e992..e717d1d575 100644
--- a/socket/getsockopt.c
+++ b/socket/getsockopt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/socket.h>
diff --git a/socket/isfdtype.c b/socket/isfdtype.c
index a3dbf1a757..51d08f74c6 100644
--- a/socket/isfdtype.c
+++ b/socket/isfdtype.c
@@ -1,5 +1,5 @@
/* isfdtype - Determine whether descriptor has given property. Stub version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/stat.h>
diff --git a/socket/listen.c b/socket/listen.c
index 962b169d96..93b8f3e212 100644
--- a/socket/listen.c
+++ b/socket/listen.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/socket.h>
diff --git a/socket/opensock.c b/socket/opensock.c
index b065fb692c..eff064c2b8 100644
--- a/socket/opensock.c
+++ b/socket/opensock.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <sys/socket.h>
diff --git a/socket/recv.c b/socket/recv.c
index 6e8938d952..4c2a992a53 100644
--- a/socket/recv.c
+++ b/socket/recv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/socket.h>
diff --git a/socket/recvfrom.c b/socket/recvfrom.c
index 7b87d9436e..4ec00a310e 100644
--- a/socket/recvfrom.c
+++ b/socket/recvfrom.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/socket.h>
diff --git a/socket/recvmmsg.c b/socket/recvmmsg.c
index 2fc95c0fb7..a9d437ce4e 100644
--- a/socket/recvmmsg.c
+++ b/socket/recvmmsg.c
@@ -1,5 +1,5 @@
/* Receive multiple messages on a socket. Stub version.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/socket.h>
diff --git a/socket/recvmsg.c b/socket/recvmsg.c
index 2bd80c36b8..f0afe03064 100644
--- a/socket/recvmsg.c
+++ b/socket/recvmsg.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/socket.h>
diff --git a/socket/sa_len.c b/socket/sa_len.c
index 1efc1baeb5..62cec8d2d0 100644
--- a/socket/sa_len.c
+++ b/socket/sa_len.c
@@ -1,5 +1,5 @@
/* Helper for SA_LEN macro.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/socket.h>
diff --git a/socket/send.c b/socket/send.c
index 6a3b887d8e..38d863c8f7 100644
--- a/socket/send.c
+++ b/socket/send.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/socket.h>
diff --git a/socket/sendmmsg.c b/socket/sendmmsg.c
index bf34ed3c65..c56adc36c8 100644
--- a/socket/sendmmsg.c
+++ b/socket/sendmmsg.c
@@ -1,5 +1,5 @@
/* Send multiple messages on a socket. Stub version.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ 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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/socket.h>
diff --git a/socket/sendmsg.c b/socket/sendmsg.c
index 34ec5ead42..ed1c7cc720 100644
--- a/socket/sendmsg.c
+++ b/socket/sendmsg.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/socket.h>
diff --git a/socket/sendto.c b/socket/sendto.c
index b00a30c04a..18bee4074f 100644
--- a/socket/sendto.c
+++ b/socket/sendto.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/socket.h>
diff --git a/socket/setsockopt.c b/socket/setsockopt.c
index 6c54cce640..6556a62404 100644
--- a/socket/setsockopt.c
+++ b/socket/setsockopt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/socket.h>
diff --git a/socket/shutdown.c b/socket/shutdown.c
index 152ce655c5..982f14d56e 100644
--- a/socket/shutdown.c
+++ b/socket/shutdown.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/socket.h>
diff --git a/socket/sockatmark.c b/socket/sockatmark.c
index f8baa34bf3..12302d5659 100644
--- a/socket/sockatmark.c
+++ b/socket/sockatmark.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -13,12 +13,12 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/socket.h>
-/* Determine wheter socket is at a out-of-band mark. */
+/* Determine whether socket is at a out-of-band mark. */
int
sockatmark (int fd)
{
diff --git a/socket/socket.c b/socket/socket.c
index 7ef09d019b..4b01d93c6d 100644
--- a/socket/socket.c
+++ b/socket/socket.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/socket.h>
diff --git a/socket/socketpair.c b/socket/socketpair.c
index 01f54a1204..48c9e1d09a 100644
--- a/socket/socketpair.c
+++ b/socket/socketpair.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/socket.h>
diff --git a/socket/sys/socket.h b/socket/sys/socket.h
index 4a9c016456..3d51cb4c46 100644
--- a/socket/sys/socket.h
+++ b/socket/sys/socket.h
@@ -1,5 +1,5 @@
/* Declarations of socket constants, types, and functions.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_SOCKET_H
#define _SYS_SOCKET_H 1
@@ -251,7 +251,7 @@ extern int shutdown (int __fd, int __how) __THROW;
#ifdef __USE_XOPEN2K
-/* Determine wheter socket is at a out-of-band mark. */
+/* Determine whether socket is at a out-of-band mark. */
extern int sockatmark (int __fd) __THROW;
#endif
diff --git a/socket/sys/un.h b/socket/sys/un.h
index efc2194a3a..b1b1837e2e 100644
--- a/socket/sys/un.h
+++ b/socket/sys/un.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_UN_H
#define _SYS_UN_H 1
diff --git a/socket/tst-accept4.c b/socket/tst-accept4.c
index e1c61370b8..e9a426d476 100644
--- a/socket/tst-accept4.c
+++ b/socket/tst-accept4.c
@@ -1,5 +1,5 @@
/* Test the accept4 function with differing flags arguments.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <arpa/inet.h>
#include <errno.h>
diff --git a/soft-fp/Makefile b/soft-fp/Makefile
index 8b1d3eadb5..2ade114690 100644
--- a/soft-fp/Makefile
+++ b/soft-fp/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1997-2018 Free Software Foundation, Inc.
+# Copyright (C) 1997-2019 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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
# Makefile for software floating-point routines
diff --git a/soft-fp/adddf3.c b/soft-fp/adddf3.c
index 993790f26d..0b8c045cd8 100644
--- a/soft-fp/adddf3.c
+++ b/soft-fp/adddf3.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a + b
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "double.h"
diff --git a/soft-fp/addsf3.c b/soft-fp/addsf3.c
index ae16ae2002..3f452a784b 100644
--- a/soft-fp/addsf3.c
+++ b/soft-fp/addsf3.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a + b
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "single.h"
diff --git a/soft-fp/addtf3.c b/soft-fp/addtf3.c
index 905f913c5c..d0140f40fc 100644
--- a/soft-fp/addtf3.c
+++ b/soft-fp/addtf3.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a + b
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "quad.h"
diff --git a/soft-fp/divdf3.c b/soft-fp/divdf3.c
index 703e1416e5..cac7de5881 100644
--- a/soft-fp/divdf3.c
+++ b/soft-fp/divdf3.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a / b
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "double.h"
diff --git a/soft-fp/divsf3.c b/soft-fp/divsf3.c
index 282cbf1cda..a819fe8725 100644
--- a/soft-fp/divsf3.c
+++ b/soft-fp/divsf3.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a / b
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "single.h"
diff --git a/soft-fp/divtf3.c b/soft-fp/divtf3.c
index 885c70e299..fe103c8370 100644
--- a/soft-fp/divtf3.c
+++ b/soft-fp/divtf3.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a / b
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "quad.h"
diff --git a/soft-fp/double.h b/soft-fp/double.h
index 23d11ccf72..1ab9274011 100644
--- a/soft-fp/double.h
+++ b/soft-fp/double.h
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Definitions for IEEE Double Precision
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com),
Jakub Jelinek (jj@ultra.linux.cz),
@@ -28,7 +28,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef SOFT_FP_DOUBLE_H
#define SOFT_FP_DOUBLE_H 1
diff --git a/soft-fp/eqdf2.c b/soft-fp/eqdf2.c
index 5bc9b5243d..121a1e6a00 100644
--- a/soft-fp/eqdf2.c
+++ b/soft-fp/eqdf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 0 iff a == b, 1 otherwise
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "double.h"
diff --git a/soft-fp/eqsf2.c b/soft-fp/eqsf2.c
index 0d87f95a1e..2964823956 100644
--- a/soft-fp/eqsf2.c
+++ b/soft-fp/eqsf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 0 iff a == b, 1 otherwise
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "single.h"
diff --git a/soft-fp/eqtf2.c b/soft-fp/eqtf2.c
index 57666856b8..a575aece77 100644
--- a/soft-fp/eqtf2.c
+++ b/soft-fp/eqtf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 0 iff a == b, 1 otherwise
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "quad.h"
diff --git a/soft-fp/extenddftf2.c b/soft-fp/extenddftf2.c
index 31c7263efa..fd81aaa5b8 100644
--- a/soft-fp/extenddftf2.c
+++ b/soft-fp/extenddftf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a converted to IEEE quad
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define FP_NO_EXACT_UNDERFLOW
#include "soft-fp.h"
@@ -43,7 +43,7 @@ __extenddftf2 (DFtype a)
FP_INIT_EXCEPTIONS;
FP_UNPACK_RAW_D (A, a);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
FP_EXTEND (Q, D, 4, 2, R, A);
#else
FP_EXTEND (Q, D, 2, 1, R, A);
diff --git a/soft-fp/extended.h b/soft-fp/extended.h
index d2794320fa..8c942d42e5 100644
--- a/soft-fp/extended.h
+++ b/soft-fp/extended.h
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Definitions for IEEE Extended Precision.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek (jj@ultra.linux.cz).
@@ -25,7 +25,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef SOFT_FP_EXTENDED_H
#define SOFT_FP_EXTENDED_H 1
diff --git a/soft-fp/extendhftf2.c b/soft-fp/extendhftf2.c
index 7f1f89ed66..19cb3c26f7 100644
--- a/soft-fp/extendhftf2.c
+++ b/soft-fp/extendhftf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return an IEEE half converted to IEEE quad
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -24,7 +24,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define FP_NO_EXACT_UNDERFLOW
#include "soft-fp.h"
@@ -41,7 +41,7 @@ __extendhftf2 (HFtype a)
FP_INIT_EXCEPTIONS;
FP_UNPACK_RAW_H (A, a);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
FP_EXTEND (Q, H, 4, 1, R, A);
#else
FP_EXTEND (Q, H, 2, 1, R, A);
diff --git a/soft-fp/extendsfdf2.c b/soft-fp/extendsfdf2.c
index 6baab1176c..c99ac3f7ce 100644
--- a/soft-fp/extendsfdf2.c
+++ b/soft-fp/extendsfdf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a converted to IEEE double
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define FP_NO_EXACT_UNDERFLOW
#include "soft-fp.h"
diff --git a/soft-fp/extendsftf2.c b/soft-fp/extendsftf2.c
index e3f2e950bf..24dea58760 100644
--- a/soft-fp/extendsftf2.c
+++ b/soft-fp/extendsftf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a converted to IEEE quad
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define FP_NO_EXACT_UNDERFLOW
#include "soft-fp.h"
@@ -43,7 +43,7 @@ __extendsftf2 (SFtype a)
FP_INIT_EXCEPTIONS;
FP_UNPACK_RAW_S (A, a);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
FP_EXTEND (Q, S, 4, 1, R, A);
#else
FP_EXTEND (Q, S, 2, 1, R, A);
diff --git a/soft-fp/extendxftf2.c b/soft-fp/extendxftf2.c
index 2d12da1dde..1e3164ec19 100644
--- a/soft-fp/extendxftf2.c
+++ b/soft-fp/extendxftf2.c
@@ -1,8 +1,8 @@
/* Software floating-point emulation.
Return a converted to IEEE quad
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
- Contributed by Uros Bizjak (ubizjak@gmail.com).
+ Contributed by Uroš Bizjak (ubizjak@gmail.com).
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -25,7 +25,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "extended.h"
@@ -41,7 +41,7 @@ __extendxftf2 (XFtype a)
FP_INIT_TRAPPING_EXCEPTIONS;
FP_UNPACK_RAW_E (A, a);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
FP_EXTEND (Q, E, 4, 4, R, A);
#else
FP_EXTEND (Q, E, 2, 2, R, A);
diff --git a/soft-fp/fixdfdi.c b/soft-fp/fixdfdi.c
index e29139d519..edb66dcf6b 100644
--- a/soft-fp/fixdfdi.c
+++ b/soft-fp/fixdfdi.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a to 64bit signed integer
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "double.h"
diff --git a/soft-fp/fixdfsi.c b/soft-fp/fixdfsi.c
index 9bce678c1d..6f1ffba8d6 100644
--- a/soft-fp/fixdfsi.c
+++ b/soft-fp/fixdfsi.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a to 32bit signed integer
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "double.h"
diff --git a/soft-fp/fixdfti.c b/soft-fp/fixdfti.c
index ef31b16185..3209fe9a13 100644
--- a/soft-fp/fixdfti.c
+++ b/soft-fp/fixdfti.c
@@ -1,8 +1,8 @@
/* Software floating-point emulation.
Convert IEEE double to 128bit signed integer
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
- Contributed by Uros Bizjak (ubizjak@gmail.com).
+ Contributed by Uroš Bizjak (ubizjak@gmail.com).
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -25,7 +25,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "double.h"
diff --git a/soft-fp/fixhfti.c b/soft-fp/fixhfti.c
index 76e5166e33..3d24c39168 100644
--- a/soft-fp/fixhfti.c
+++ b/soft-fp/fixhfti.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert IEEE half to 128bit signed integer
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -24,7 +24,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "half.h"
diff --git a/soft-fp/fixsfdi.c b/soft-fp/fixsfdi.c
index d90ec6e213..255baf2a0b 100644
--- a/soft-fp/fixsfdi.c
+++ b/soft-fp/fixsfdi.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a to 64bit signed integer
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "single.h"
diff --git a/soft-fp/fixsfsi.c b/soft-fp/fixsfsi.c
index 367f68b348..2e01f5f739 100644
--- a/soft-fp/fixsfsi.c
+++ b/soft-fp/fixsfsi.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a to 32bit signed integer
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "single.h"
diff --git a/soft-fp/fixsfti.c b/soft-fp/fixsfti.c
index bfe861a9a8..798185ce37 100644
--- a/soft-fp/fixsfti.c
+++ b/soft-fp/fixsfti.c
@@ -1,8 +1,8 @@
/* Software floating-point emulation.
Convert IEEE single to 128bit signed integer
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
- Contributed by Uros Bizjak (ubizjak@gmail.com).
+ Contributed by Uroš Bizjak (ubizjak@gmail.com).
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -25,7 +25,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "single.h"
diff --git a/soft-fp/fixtfdi.c b/soft-fp/fixtfdi.c
index 7ea934d9c1..7a9b66b292 100644
--- a/soft-fp/fixtfdi.c
+++ b/soft-fp/fixtfdi.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a to 64bit signed integer
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "quad.h"
diff --git a/soft-fp/fixtfsi.c b/soft-fp/fixtfsi.c
index f71f1d5300..df22d39c7b 100644
--- a/soft-fp/fixtfsi.c
+++ b/soft-fp/fixtfsi.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a to 32bit signed integer
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "quad.h"
diff --git a/soft-fp/fixtfti.c b/soft-fp/fixtfti.c
index 7dd97b4746..9542311f65 100644
--- a/soft-fp/fixtfti.c
+++ b/soft-fp/fixtfti.c
@@ -1,8 +1,8 @@
/* Software floating-point emulation.
Convert IEEE quad to 128bit signed integer
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
- Contributed by Uros Bizjak (ubizjak@gmail.com).
+ Contributed by Uroš Bizjak (ubizjak@gmail.com).
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -25,7 +25,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "quad.h"
diff --git a/soft-fp/fixunsdfdi.c b/soft-fp/fixunsdfdi.c
index d66df51bb1..8907f105b8 100644
--- a/soft-fp/fixunsdfdi.c
+++ b/soft-fp/fixunsdfdi.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a to 64bit unsigned integer
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "double.h"
diff --git a/soft-fp/fixunsdfsi.c b/soft-fp/fixunsdfsi.c
index 0367fe1b68..cc2ee2e52f 100644
--- a/soft-fp/fixunsdfsi.c
+++ b/soft-fp/fixunsdfsi.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a to 32bit unsigned integer
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "double.h"
diff --git a/soft-fp/fixunsdfti.c b/soft-fp/fixunsdfti.c
index ffa7c20268..bae8b0ecd5 100644
--- a/soft-fp/fixunsdfti.c
+++ b/soft-fp/fixunsdfti.c
@@ -1,8 +1,8 @@
/* Software floating-point emulation.
Convert IEEE double to 128bit unsigned integer
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
- Contributed by Uros Bizjak (ubizjak@gmail.com).
+ Contributed by Uroš Bizjak (ubizjak@gmail.com).
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -25,7 +25,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "double.h"
diff --git a/soft-fp/fixunshfti.c b/soft-fp/fixunshfti.c
index 81aee8946e..c9090d5ef9 100644
--- a/soft-fp/fixunshfti.c
+++ b/soft-fp/fixunshfti.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert IEEE half to 128bit unsigned integer
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -24,7 +24,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "half.h"
diff --git a/soft-fp/fixunssfdi.c b/soft-fp/fixunssfdi.c
index 9e6851f2ab..db13911700 100644
--- a/soft-fp/fixunssfdi.c
+++ b/soft-fp/fixunssfdi.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a to 64bit unsigned integer
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "single.h"
diff --git a/soft-fp/fixunssfsi.c b/soft-fp/fixunssfsi.c
index c1940e8c6d..90286424b3 100644
--- a/soft-fp/fixunssfsi.c
+++ b/soft-fp/fixunssfsi.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a to 32bit unsigned integer
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "single.h"
diff --git a/soft-fp/fixunssfti.c b/soft-fp/fixunssfti.c
index 22b0705f34..c367e8bf83 100644
--- a/soft-fp/fixunssfti.c
+++ b/soft-fp/fixunssfti.c
@@ -1,8 +1,8 @@
/* Software floating-point emulation.
Convert IEEE single to 128bit unsigned integer
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
- Contributed by Uros Bizjak (ubizjak@gmail.com).
+ Contributed by Uroš Bizjak (ubizjak@gmail.com).
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -25,7 +25,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "single.h"
diff --git a/soft-fp/fixunstfdi.c b/soft-fp/fixunstfdi.c
index 453fa3d4f7..3f3f3041f9 100644
--- a/soft-fp/fixunstfdi.c
+++ b/soft-fp/fixunstfdi.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a to 64bit unsigned integer
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "quad.h"
diff --git a/soft-fp/fixunstfsi.c b/soft-fp/fixunstfsi.c
index b8081466e3..d923008f3a 100644
--- a/soft-fp/fixunstfsi.c
+++ b/soft-fp/fixunstfsi.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a to 32bit unsigned integer
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "quad.h"
diff --git a/soft-fp/fixunstfti.c b/soft-fp/fixunstfti.c
index 13653b0471..a11c00fbea 100644
--- a/soft-fp/fixunstfti.c
+++ b/soft-fp/fixunstfti.c
@@ -1,8 +1,8 @@
/* Software floating-point emulation.
Convert IEEE quad to 128bit unsigned integer
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
- Contributed by Uros Bizjak (ubizjak@gmail.com).
+ Contributed by Uroš Bizjak (ubizjak@gmail.com).
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -25,7 +25,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "quad.h"
diff --git a/soft-fp/floatdidf.c b/soft-fp/floatdidf.c
index a8601f33a3..8656a55fe2 100644
--- a/soft-fp/floatdidf.c
+++ b/soft-fp/floatdidf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a 64bit signed integer to IEEE double
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "double.h"
diff --git a/soft-fp/floatdisf.c b/soft-fp/floatdisf.c
index efc2bda287..74900d94b4 100644
--- a/soft-fp/floatdisf.c
+++ b/soft-fp/floatdisf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a 64bit signed integer to IEEE single
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "single.h"
diff --git a/soft-fp/floatditf.c b/soft-fp/floatditf.c
index e98b3fe559..ecad50ba20 100644
--- a/soft-fp/floatditf.c
+++ b/soft-fp/floatditf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a 64bit signed integer to IEEE quad
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define FP_NO_EXCEPTIONS
#include "soft-fp.h"
diff --git a/soft-fp/floatsidf.c b/soft-fp/floatsidf.c
index d37f680ada..e3a67da383 100644
--- a/soft-fp/floatsidf.c
+++ b/soft-fp/floatsidf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a 32bit signed integer to IEEE double
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define FP_NO_EXCEPTIONS
#include "soft-fp.h"
diff --git a/soft-fp/floatsisf.c b/soft-fp/floatsisf.c
index f9b5975b78..e67c0c29f7 100644
--- a/soft-fp/floatsisf.c
+++ b/soft-fp/floatsisf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a 32bit signed integer to IEEE single
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "single.h"
diff --git a/soft-fp/floatsitf.c b/soft-fp/floatsitf.c
index 07ea026af8..234e86c3a6 100644
--- a/soft-fp/floatsitf.c
+++ b/soft-fp/floatsitf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a 32bit signed integer to IEEE quad
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define FP_NO_EXCEPTIONS
#include "soft-fp.h"
diff --git a/soft-fp/floattidf.c b/soft-fp/floattidf.c
index b5d0396ea1..f6a13c9d26 100644
--- a/soft-fp/floattidf.c
+++ b/soft-fp/floattidf.c
@@ -1,8 +1,8 @@
/* Software floating-point emulation.
Convert a 128bit signed integer to IEEE double
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
- Contributed by Uros Bizjak (ubizjak@gmail.com).
+ Contributed by Uroš Bizjak (ubizjak@gmail.com).
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -25,7 +25,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "double.h"
diff --git a/soft-fp/floattihf.c b/soft-fp/floattihf.c
index fdc4e84bd7..aed106a1f3 100644
--- a/soft-fp/floattihf.c
+++ b/soft-fp/floattihf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a 128bit signed integer to IEEE half
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -24,7 +24,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "half.h"
diff --git a/soft-fp/floattisf.c b/soft-fp/floattisf.c
index 619e6f9807..66f07b512d 100644
--- a/soft-fp/floattisf.c
+++ b/soft-fp/floattisf.c
@@ -1,8 +1,8 @@
/* Software floating-point emulation.
Convert a 128bit signed integer to IEEE single
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
- Contributed by Uros Bizjak (ubizjak@gmail.com).
+ Contributed by Uroš Bizjak (ubizjak@gmail.com).
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -25,7 +25,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "single.h"
diff --git a/soft-fp/floattitf.c b/soft-fp/floattitf.c
index 78319a2aff..5ecf2872a2 100644
--- a/soft-fp/floattitf.c
+++ b/soft-fp/floattitf.c
@@ -1,8 +1,8 @@
/* Software floating-point emulation.
Convert a 128bit signed integer to IEEE quad
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
- Contributed by Uros Bizjak (ubizjak@gmail.com).
+ Contributed by Uroš Bizjak (ubizjak@gmail.com).
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -25,7 +25,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "quad.h"
diff --git a/soft-fp/floatundidf.c b/soft-fp/floatundidf.c
index 85b6fc735b..661a9b450f 100644
--- a/soft-fp/floatundidf.c
+++ b/soft-fp/floatundidf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a 64bit unsigned integer to IEEE double
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "double.h"
diff --git a/soft-fp/floatundisf.c b/soft-fp/floatundisf.c
index 8896ebc469..e3c0c78e09 100644
--- a/soft-fp/floatundisf.c
+++ b/soft-fp/floatundisf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a 64bit unsigned integer to IEEE single
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "single.h"
diff --git a/soft-fp/floatunditf.c b/soft-fp/floatunditf.c
index d1c1ca97ec..b6d32daca7 100644
--- a/soft-fp/floatunditf.c
+++ b/soft-fp/floatunditf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a 64bit unsigned integer to IEEE quad
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define FP_NO_EXCEPTIONS
#include "soft-fp.h"
diff --git a/soft-fp/floatunsidf.c b/soft-fp/floatunsidf.c
index a28f298692..457246706d 100644
--- a/soft-fp/floatunsidf.c
+++ b/soft-fp/floatunsidf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a 32bit unsigned integer to IEEE double
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define FP_NO_EXCEPTIONS
#include "soft-fp.h"
diff --git a/soft-fp/floatunsisf.c b/soft-fp/floatunsisf.c
index 8cede278ca..a19dc80c1e 100644
--- a/soft-fp/floatunsisf.c
+++ b/soft-fp/floatunsisf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a 32bit unsigned integer to IEEE single
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "single.h"
diff --git a/soft-fp/floatunsitf.c b/soft-fp/floatunsitf.c
index 671755f351..e6b966401a 100644
--- a/soft-fp/floatunsitf.c
+++ b/soft-fp/floatunsitf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a 32bit unsigned integer to IEEE quad
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define FP_NO_EXCEPTIONS
#include "soft-fp.h"
diff --git a/soft-fp/floatuntidf.c b/soft-fp/floatuntidf.c
index 8b1eff7d78..8be427be7f 100644
--- a/soft-fp/floatuntidf.c
+++ b/soft-fp/floatuntidf.c
@@ -1,8 +1,8 @@
/* Software floating-point emulation.
Convert a 128bit unsigned integer to IEEE double
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
- Contributed by Uros Bizjak (ubizjak@gmail.com).
+ Contributed by Uroš Bizjak (ubizjak@gmail.com).
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -25,7 +25,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "double.h"
diff --git a/soft-fp/floatuntihf.c b/soft-fp/floatuntihf.c
index 34700d933b..5bf103d7d1 100644
--- a/soft-fp/floatuntihf.c
+++ b/soft-fp/floatuntihf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a 128bit unsigned integer to IEEE half.
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -24,7 +24,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "half.h"
diff --git a/soft-fp/floatuntisf.c b/soft-fp/floatuntisf.c
index 4b618205c9..40fe1eb495 100644
--- a/soft-fp/floatuntisf.c
+++ b/soft-fp/floatuntisf.c
@@ -1,8 +1,8 @@
/* Software floating-point emulation.
Convert a 128bit unsigned integer to IEEE single
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
- Contributed by Uros Bizjak (ubizjak@gmail.com).
+ Contributed by Uroš Bizjak (ubizjak@gmail.com).
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -25,7 +25,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "single.h"
diff --git a/soft-fp/floatuntitf.c b/soft-fp/floatuntitf.c
index 13cd8732b5..562788eb5d 100644
--- a/soft-fp/floatuntitf.c
+++ b/soft-fp/floatuntitf.c
@@ -1,8 +1,8 @@
/* Software floating-point emulation.
Convert a 128bit unsigned integer to IEEE quad
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
- Contributed by Uros Bizjak (ubizjak@gmail.com).
+ Contributed by Uroš Bizjak (ubizjak@gmail.com).
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -25,7 +25,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "quad.h"
diff --git a/soft-fp/gedf2.c b/soft-fp/gedf2.c
index 840c9fb1e6..243813eb61 100644
--- a/soft-fp/gedf2.c
+++ b/soft-fp/gedf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 0 iff a == b, 1 iff a > b, -2 iff a ? b, -1 iff a < b
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "double.h"
diff --git a/soft-fp/gesf2.c b/soft-fp/gesf2.c
index 7a3ae25303..572fc09a91 100644
--- a/soft-fp/gesf2.c
+++ b/soft-fp/gesf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 0 iff a == b, 1 iff a > b, -2 iff a ? b, -1 iff a < b
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "single.h"
diff --git a/soft-fp/getf2.c b/soft-fp/getf2.c
index f418de2a07..0f63c334d3 100644
--- a/soft-fp/getf2.c
+++ b/soft-fp/getf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 0 iff a == b, 1 iff a > b, -2 iff a ? b, -1 iff a < b
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "quad.h"
diff --git a/soft-fp/half.h b/soft-fp/half.h
index a1fea7b007..e6c4f9518b 100644
--- a/soft-fp/half.h
+++ b/soft-fp/half.h
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Definitions for IEEE Half Precision.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -24,7 +24,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef SOFT_FP_HALF_H
#define SOFT_FP_HALF_H 1
diff --git a/soft-fp/ledf2.c b/soft-fp/ledf2.c
index b323b8ec5c..6f6bb91b5f 100644
--- a/soft-fp/ledf2.c
+++ b/soft-fp/ledf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 0 iff a == b, 1 iff a > b, 2 iff a ? b, -1 iff a < b
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "double.h"
diff --git a/soft-fp/lesf2.c b/soft-fp/lesf2.c
index 2c96c2327a..3567bc93ac 100644
--- a/soft-fp/lesf2.c
+++ b/soft-fp/lesf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 0 iff a == b, 1 iff a > b, 2 iff a ? b, -1 iff a < b
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "single.h"
diff --git a/soft-fp/letf2.c b/soft-fp/letf2.c
index 7e7b244cd2..b8cf0b542b 100644
--- a/soft-fp/letf2.c
+++ b/soft-fp/letf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 0 iff a == b, 1 iff a > b, 2 iff a ? b, -1 iff a < b
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "quad.h"
diff --git a/soft-fp/muldf3.c b/soft-fp/muldf3.c
index b2df20c978..8de987eafd 100644
--- a/soft-fp/muldf3.c
+++ b/soft-fp/muldf3.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a * b
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "double.h"
diff --git a/soft-fp/mulsf3.c b/soft-fp/mulsf3.c
index 6c5c44e7b4..84ec7d14dd 100644
--- a/soft-fp/mulsf3.c
+++ b/soft-fp/mulsf3.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a * b
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "single.h"
diff --git a/soft-fp/multf3.c b/soft-fp/multf3.c
index 75971c67cd..6bb7a3cb7d 100644
--- a/soft-fp/multf3.c
+++ b/soft-fp/multf3.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a * b
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "quad.h"
diff --git a/soft-fp/negdf2.c b/soft-fp/negdf2.c
index f6fe2727b2..b1d8952cc8 100644
--- a/soft-fp/negdf2.c
+++ b/soft-fp/negdf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return -a
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "double.h"
diff --git a/soft-fp/negsf2.c b/soft-fp/negsf2.c
index 1ce0090ccf..c9f400b157 100644
--- a/soft-fp/negsf2.c
+++ b/soft-fp/negsf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return -a
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "single.h"
diff --git a/soft-fp/negtf2.c b/soft-fp/negtf2.c
index 3b7f27c939..202866e94d 100644
--- a/soft-fp/negtf2.c
+++ b/soft-fp/negtf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return -a
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "quad.h"
diff --git a/soft-fp/op-1.h b/soft-fp/op-1.h
index bafa7f46e6..523402a883 100644
--- a/soft-fp/op-1.h
+++ b/soft-fp/op-1.h
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Basic one-word fraction declaration and manipulation.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com),
Jakub Jelinek (jj@ultra.linux.cz),
@@ -28,7 +28,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef SOFT_FP_OP_1_H
#define SOFT_FP_OP_1_H 1
diff --git a/soft-fp/op-2.h b/soft-fp/op-2.h
index 6020d663d4..1e73689d36 100644
--- a/soft-fp/op-2.h
+++ b/soft-fp/op-2.h
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Basic two-word fraction declaration and manipulation.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com),
Jakub Jelinek (jj@ultra.linux.cz),
@@ -28,7 +28,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef SOFT_FP_OP_2_H
#define SOFT_FP_OP_2_H 1
diff --git a/soft-fp/op-4.h b/soft-fp/op-4.h
index 01b87d01a1..7badc93e82 100644
--- a/soft-fp/op-4.h
+++ b/soft-fp/op-4.h
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Basic four-word fraction declaration and manipulation.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com),
Jakub Jelinek (jj@ultra.linux.cz),
@@ -28,7 +28,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef SOFT_FP_OP_4_H
#define SOFT_FP_OP_4_H 1
@@ -696,39 +696,46 @@
#endif
#ifndef __FP_FRAC_SUB_3
-# define __FP_FRAC_SUB_3(r2, r1, r0, x2, x1, x0, y2, y1, y0) \
- do \
- { \
- _FP_W_TYPE __FP_FRAC_SUB_3_c1, __FP_FRAC_SUB_3_c2; \
- r0 = x0 - y0; \
- __FP_FRAC_SUB_3_c1 = r0 > x0; \
- r1 = x1 - y1; \
- __FP_FRAC_SUB_3_c2 = r1 > x1; \
- r1 -= __FP_FRAC_SUB_3_c1; \
- __FP_FRAC_SUB_3_c2 |= __FP_FRAC_SUB_3_c1 && (y1 == x1); \
- r2 = x2 - y2 - __FP_FRAC_SUB_3_c2; \
- } \
+# define __FP_FRAC_SUB_3(r2, r1, r0, x2, x1, x0, y2, y1, y0) \
+ do \
+ { \
+ _FP_W_TYPE __FP_FRAC_SUB_3_tmp[2]; \
+ _FP_W_TYPE __FP_FRAC_SUB_3_c1, __FP_FRAC_SUB_3_c2; \
+ __FP_FRAC_SUB_3_tmp[0] = x0 - y0; \
+ __FP_FRAC_SUB_3_c1 = __FP_FRAC_SUB_3_tmp[0] > x0; \
+ __FP_FRAC_SUB_3_tmp[1] = x1 - y1; \
+ __FP_FRAC_SUB_3_c2 = __FP_FRAC_SUB_3_tmp[1] > x1; \
+ __FP_FRAC_SUB_3_tmp[1] -= __FP_FRAC_SUB_3_c1; \
+ __FP_FRAC_SUB_3_c2 |= __FP_FRAC_SUB_3_c1 && (y1 == x1); \
+ r2 = x2 - y2 - __FP_FRAC_SUB_3_c2; \
+ r1 = __FP_FRAC_SUB_3_tmp[1]; \
+ r0 = __FP_FRAC_SUB_3_tmp[0]; \
+ } \
while (0)
#endif
#ifndef __FP_FRAC_SUB_4
# define __FP_FRAC_SUB_4(r3, r2, r1, r0, x3, x2, x1, x0, y3, y2, y1, y0) \
- do \
- { \
- _FP_W_TYPE __FP_FRAC_SUB_4_c1, __FP_FRAC_SUB_4_c2; \
- _FP_W_TYPE __FP_FRAC_SUB_4_c3; \
- r0 = x0 - y0; \
- __FP_FRAC_SUB_4_c1 = r0 > x0; \
- r1 = x1 - y1; \
- __FP_FRAC_SUB_4_c2 = r1 > x1; \
- r1 -= __FP_FRAC_SUB_4_c1; \
- __FP_FRAC_SUB_4_c2 |= __FP_FRAC_SUB_4_c1 && (y1 == x1); \
- r2 = x2 - y2; \
- __FP_FRAC_SUB_4_c3 = r2 > x2; \
- r2 -= __FP_FRAC_SUB_4_c2; \
- __FP_FRAC_SUB_4_c3 |= __FP_FRAC_SUB_4_c2 && (y2 == x2); \
- r3 = x3 - y3 - __FP_FRAC_SUB_4_c3; \
- } \
+ do \
+ { \
+ _FP_W_TYPE __FP_FRAC_SUB_4_tmp[3]; \
+ _FP_W_TYPE __FP_FRAC_SUB_4_c1, __FP_FRAC_SUB_4_c2; \
+ _FP_W_TYPE __FP_FRAC_SUB_4_c3; \
+ __FP_FRAC_SUB_4_tmp[0] = x0 - y0; \
+ __FP_FRAC_SUB_4_c1 = __FP_FRAC_SUB_4_tmp[0] > x0; \
+ __FP_FRAC_SUB_4_tmp[1] = x1 - y1; \
+ __FP_FRAC_SUB_4_c2 = __FP_FRAC_SUB_4_tmp[1] > x1; \
+ __FP_FRAC_SUB_4_tmp[1] -= __FP_FRAC_SUB_4_c1; \
+ __FP_FRAC_SUB_4_c2 |= __FP_FRAC_SUB_4_c1 && (y1 == x1); \
+ __FP_FRAC_SUB_4_tmp[2] = x2 - y2; \
+ __FP_FRAC_SUB_4_c3 = __FP_FRAC_SUB_4_tmp[2] > x2; \
+ __FP_FRAC_SUB_4_tmp[2] -= __FP_FRAC_SUB_4_c2; \
+ __FP_FRAC_SUB_4_c3 |= __FP_FRAC_SUB_4_c2 && (y2 == x2); \
+ r3 = x3 - y3 - __FP_FRAC_SUB_4_c3; \
+ r2 = __FP_FRAC_SUB_4_tmp[2]; \
+ r1 = __FP_FRAC_SUB_4_tmp[1]; \
+ r0 = __FP_FRAC_SUB_4_tmp[0]; \
+ } \
while (0)
#endif
diff --git a/soft-fp/op-8.h b/soft-fp/op-8.h
index ffed258be1..466d49a993 100644
--- a/soft-fp/op-8.h
+++ b/soft-fp/op-8.h
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Basic eight-word fraction declaration and manipulation.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com),
Jakub Jelinek (jj@ultra.linux.cz) and
@@ -27,7 +27,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef SOFT_FP_OP_8_H
#define SOFT_FP_OP_8_H 1
@@ -35,6 +35,7 @@
/* We need just a few things from here for op-4, if we ever need some
other macros, they can be added. */
#define _FP_FRAC_DECL_8(X) _FP_W_TYPE X##_f[8]
+#define _FP_FRAC_SET_8(X, I) __FP_FRAC_SET_8 (X, I)
#define _FP_FRAC_HIGH_8(X) (X##_f[7])
#define _FP_FRAC_LOW_8(X) (X##_f[0])
#define _FP_FRAC_WORD_8(X, w) (X##_f[w])
@@ -147,4 +148,91 @@
} \
while (0)
+#define _FP_FRAC_ADD_8(R, X, Y) \
+ do \
+ { \
+ _FP_W_TYPE _FP_FRAC_ADD_8_c = 0; \
+ _FP_I_TYPE _FP_FRAC_ADD_8_i; \
+ for (_FP_FRAC_ADD_8_i = 0; _FP_FRAC_ADD_8_i < 8; ++_FP_FRAC_ADD_8_i) \
+ { \
+ R##_f[_FP_FRAC_ADD_8_i] \
+ = (X##_f[_FP_FRAC_ADD_8_i] + Y##_f[_FP_FRAC_ADD_8_i] \
+ + _FP_FRAC_ADD_8_c); \
+ _FP_FRAC_ADD_8_c \
+ = (_FP_FRAC_ADD_8_c \
+ ? R##_f[_FP_FRAC_ADD_8_i] <= X##_f[_FP_FRAC_ADD_8_i] \
+ : R##_f[_FP_FRAC_ADD_8_i] < X##_f[_FP_FRAC_ADD_8_i]); \
+ } \
+ } \
+ while (0)
+
+#define _FP_FRAC_SUB_8(R, X, Y) \
+ do \
+ { \
+ _FP_W_TYPE _FP_FRAC_SUB_8_tmp[8]; \
+ _FP_W_TYPE _FP_FRAC_SUB_8_c = 0; \
+ _FP_I_TYPE _FP_FRAC_SUB_8_i; \
+ for (_FP_FRAC_SUB_8_i = 0; _FP_FRAC_SUB_8_i < 8; ++_FP_FRAC_SUB_8_i) \
+ { \
+ _FP_FRAC_SUB_8_tmp[_FP_FRAC_SUB_8_i] \
+ = (X##_f[_FP_FRAC_SUB_8_i] - Y##_f[_FP_FRAC_SUB_8_i] \
+ - _FP_FRAC_SUB_8_c); \
+ _FP_FRAC_SUB_8_c \
+ = (_FP_FRAC_SUB_8_c \
+ ? (_FP_FRAC_SUB_8_tmp[_FP_FRAC_SUB_8_i] \
+ >= X##_f[_FP_FRAC_SUB_8_i]) \
+ : (_FP_FRAC_SUB_8_tmp[_FP_FRAC_SUB_8_i] \
+ > X##_f[_FP_FRAC_SUB_8_i])); \
+ } \
+ for (_FP_FRAC_SUB_8_i = 0; _FP_FRAC_SUB_8_i < 8; ++_FP_FRAC_SUB_8_i) \
+ R##_f[_FP_FRAC_SUB_8_i] = _FP_FRAC_SUB_8_tmp[_FP_FRAC_SUB_8_i]; \
+ } \
+ while (0)
+
+#define _FP_FRAC_CLZ_8(R, X) \
+ do \
+ { \
+ _FP_I_TYPE _FP_FRAC_CLZ_8_i; \
+ for (_FP_FRAC_CLZ_8_i = 7; _FP_FRAC_CLZ_8_i > 0; _FP_FRAC_CLZ_8_i--) \
+ if (X##_f[_FP_FRAC_CLZ_8_i]) \
+ break; \
+ __FP_CLZ ((R), X##_f[_FP_FRAC_CLZ_8_i]); \
+ (R) += _FP_W_TYPE_SIZE * (7 - _FP_FRAC_CLZ_8_i); \
+ } \
+ while (0)
+
+#define _FP_MINFRAC_8 0, 0, 0, 0, 0, 0, 0, 1
+
+#define _FP_FRAC_NEGP_8(X) ((_FP_WS_TYPE) X##_f[7] < 0)
+#define _FP_FRAC_ZEROP_8(X) \
+ ((X##_f[0] | X##_f[1] | X##_f[2] | X##_f[3] \
+ | X##_f[4] | X##_f[5] | X##_f[6] | X##_f[7]) == 0)
+#define _FP_FRAC_HIGHBIT_DW_8(fs, X) \
+ (_FP_FRAC_HIGH_DW_##fs (X) & _FP_HIGHBIT_DW_##fs)
+
+#define _FP_FRAC_COPY_4_8(D, S) \
+ do \
+ { \
+ D##_f[0] = S##_f[0]; \
+ D##_f[1] = S##_f[1]; \
+ D##_f[2] = S##_f[2]; \
+ D##_f[3] = S##_f[3]; \
+ } \
+ while (0)
+
+#define _FP_FRAC_COPY_8_4(D, S) \
+ do \
+ { \
+ D##_f[0] = S##_f[0]; \
+ D##_f[1] = S##_f[1]; \
+ D##_f[2] = S##_f[2]; \
+ D##_f[3] = S##_f[3]; \
+ D##_f[4] = D##_f[5] = D##_f[6] = D##_f[7]= 0; \
+ } \
+ while (0)
+
+#define __FP_FRAC_SET_8(X, I7, I6, I5, I4, I3, I2, I1, I0) \
+ (X##_f[7] = I7, X##_f[6] = I6, X##_f[5] = I5, X##_f[4] = I4, \
+ X##_f[3] = I3, X##_f[2] = I2, X##_f[1] = I1, X##_f[0] = I0)
+
#endif /* !SOFT_FP_OP_8_H */
diff --git a/soft-fp/op-common.h b/soft-fp/op-common.h
index d6f32aef33..d1bd78c80c 100644
--- a/soft-fp/op-common.h
+++ b/soft-fp/op-common.h
@@ -1,5 +1,5 @@
/* Software floating-point emulation. Common operations.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com),
Jakub Jelinek (jj@ultra.linux.cz),
@@ -27,7 +27,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef SOFT_FP_OP_COMMON_H
#define SOFT_FP_OP_COMMON_H 1
diff --git a/soft-fp/quad.h b/soft-fp/quad.h
index 9a9e4e71f7..09571b149a 100644
--- a/soft-fp/quad.h
+++ b/soft-fp/quad.h
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Definitions for IEEE Quad Precision.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com),
Jakub Jelinek (jj@ultra.linux.cz),
@@ -28,7 +28,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef SOFT_FP_QUAD_H
#define SOFT_FP_QUAD_H 1
diff --git a/soft-fp/single.h b/soft-fp/single.h
index d5c4a6d4a1..1cb70adc00 100644
--- a/soft-fp/single.h
+++ b/soft-fp/single.h
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Definitions for IEEE Single Precision.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com),
Jakub Jelinek (jj@ultra.linux.cz),
@@ -28,7 +28,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef SOFT_FP_SINGLE_H
#define SOFT_FP_SINGLE_H 1
diff --git a/soft-fp/soft-fp.h b/soft-fp/soft-fp.h
index a7a01334b7..8dc9a416b9 100644
--- a/soft-fp/soft-fp.h
+++ b/soft-fp/soft-fp.h
@@ -1,5 +1,5 @@
/* Software floating-point emulation.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com),
Jakub Jelinek (jj@ultra.linux.cz),
@@ -27,7 +27,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef SOFT_FP_H
#define SOFT_FP_H 1
diff --git a/soft-fp/subdf3.c b/soft-fp/subdf3.c
index 10035f40e7..de445bad40 100644
--- a/soft-fp/subdf3.c
+++ b/soft-fp/subdf3.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a - b
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "double.h"
diff --git a/soft-fp/subsf3.c b/soft-fp/subsf3.c
index b0ecd7caa5..d684fad6d5 100644
--- a/soft-fp/subsf3.c
+++ b/soft-fp/subsf3.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a - b
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "single.h"
diff --git a/soft-fp/subtf3.c b/soft-fp/subtf3.c
index 090f4afda0..c2be4e84a6 100644
--- a/soft-fp/subtf3.c
+++ b/soft-fp/subtf3.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a - b
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "quad.h"
diff --git a/soft-fp/truncdfsf2.c b/soft-fp/truncdfsf2.c
index 4db07c5d33..e09e8fb689 100644
--- a/soft-fp/truncdfsf2.c
+++ b/soft-fp/truncdfsf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Truncate IEEE double into IEEE single
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "single.h"
diff --git a/soft-fp/trunctfdf2.c b/soft-fp/trunctfdf2.c
index c0d1d34841..8059354e80 100644
--- a/soft-fp/trunctfdf2.c
+++ b/soft-fp/trunctfdf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Truncate IEEE quad into IEEE double
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "double.h"
@@ -42,7 +42,7 @@ __trunctfdf2 (TFtype a)
FP_INIT_ROUNDMODE;
FP_UNPACK_SEMIRAW_Q (A, a);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
FP_TRUNC (D, Q, 2, 4, R, A);
#else
FP_TRUNC (D, Q, 1, 2, R, A);
diff --git a/soft-fp/trunctfhf2.c b/soft-fp/trunctfhf2.c
index 8eddd14b2f..180aaa067a 100644
--- a/soft-fp/trunctfhf2.c
+++ b/soft-fp/trunctfhf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Truncate IEEE quad into IEEE half.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -24,7 +24,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "half.h"
@@ -40,7 +40,7 @@ __trunctfhf2 (TFtype a)
FP_INIT_ROUNDMODE;
FP_UNPACK_SEMIRAW_Q (A, a);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
FP_TRUNC (H, Q, 1, 4, R, A);
#else
FP_TRUNC (H, Q, 1, 2, R, A);
diff --git a/soft-fp/trunctfsf2.c b/soft-fp/trunctfsf2.c
index 4b04d698d2..8eab7f0ea5 100644
--- a/soft-fp/trunctfsf2.c
+++ b/soft-fp/trunctfsf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Truncate IEEE quad into IEEE single
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "single.h"
@@ -42,7 +42,7 @@ __trunctfsf2 (TFtype a)
FP_INIT_ROUNDMODE;
FP_UNPACK_SEMIRAW_Q (A, a);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
FP_TRUNC (S, Q, 1, 4, R, A);
#else
FP_TRUNC (S, Q, 1, 2, R, A);
diff --git a/soft-fp/trunctfxf2.c b/soft-fp/trunctfxf2.c
index 391de243ce..9c251d295c 100644
--- a/soft-fp/trunctfxf2.c
+++ b/soft-fp/trunctfxf2.c
@@ -1,8 +1,8 @@
/* Software floating-point emulation.
Truncate IEEE quad into IEEE extended
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
- Contributed by Uros Bizjak (ubizjak@gmail.com).
+ Contributed by Uroš Bizjak (ubizjak@gmail.com).
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -25,7 +25,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "extended.h"
@@ -41,7 +41,7 @@ __trunctfxf2 (TFtype a)
FP_INIT_ROUNDMODE;
FP_UNPACK_SEMIRAW_Q (A, a);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
FP_TRUNC (E, Q, 4, 4, R, A);
#else
FP_TRUNC (E, Q, 2, 2, R, A);
diff --git a/soft-fp/unorddf2.c b/soft-fp/unorddf2.c
index c11066a59a..ee4f4b0da8 100644
--- a/soft-fp/unorddf2.c
+++ b/soft-fp/unorddf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 iff a or b is a NaN, 0 otherwise.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Joseph Myers (joseph@codesourcery.com).
@@ -25,7 +25,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "double.h"
diff --git a/soft-fp/unordsf2.c b/soft-fp/unordsf2.c
index b262e180b2..037d521315 100644
--- a/soft-fp/unordsf2.c
+++ b/soft-fp/unordsf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 iff a or b is a NaN, 0 otherwise.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Joseph Myers (joseph@codesourcery.com).
@@ -25,7 +25,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "single.h"
diff --git a/soft-fp/unordtf2.c b/soft-fp/unordtf2.c
index 3d0abe5f38..9005cc6c79 100644
--- a/soft-fp/unordtf2.c
+++ b/soft-fp/unordtf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 iff a or b is a NaN, 0 otherwise.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Joseph Myers (joseph@codesourcery.com).
@@ -25,7 +25,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "quad.h"
diff --git a/stdio-common/Makefile b/stdio-common/Makefile
index a10f12ab3c..2715a95a09 100644
--- a/stdio-common/Makefile
+++ b/stdio-common/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1991-2018 Free Software Foundation, Inc.
+# Copyright (C) 1991-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
# Specific makefile for stdio-common.
@@ -39,7 +39,9 @@ routines := \
flockfile ftrylockfile funlockfile \
isoc99_scanf isoc99_vscanf isoc99_fscanf isoc99_vfscanf isoc99_sscanf \
isoc99_vsscanf \
- psiginfo gentempfd
+ psiginfo gentempfd \
+ vfscanf-internal vfwscanf-internal iovfscanf iovfwscanf \
+ vfprintf-internal vfwprintf-internal
aux := errlist siglist printf-parsemb printf-parsewc fxprintf
@@ -62,7 +64,9 @@ tests := tstscanf test_rdwr test-popen tstgetln test-fseek \
tst-vfprintf-user-type \
tst-vfprintf-mbs-prec \
tst-scanf-round \
- tst-renameat2 \
+ tst-renameat2 tst-bz11319 tst-bz11319-fortify2 \
+ scanf14a scanf16a \
+
test-srcs = tst-unbputc tst-printf tst-printfsz-islongdouble
@@ -144,13 +148,11 @@ CFLAGS-isoc99_scanf.c += -fexceptions
CFLAGS-errlist.c += $(fno-unit-at-a-time)
CFLAGS-siglist.c += $(fno-unit-at-a-time)
-# The following is a hack since we must compile scanf1{5,7}.c without any
-# GNU extension. The latter are needed, though, when internal headers
-# are used. So made sure we see the installed headers first.
-CFLAGS-scanf15.c += -I../libio -I../stdlib -I../wcsmbs -I../time -I../string \
- -I../wctype
-CFLAGS-scanf17.c += -I../libio -I../stdlib -I../wcsmbs -I../time -I../string \
- -I../wctype
+# scanf14a.c and scanf16a.c test a deprecated extension which is no
+# longer visible under most conformance levels; see the source files
+# for more detail.
+CFLAGS-scanf14a.c += -std=gnu89
+CFLAGS-scanf16a.c += -std=gnu89
CFLAGS-bug3.c += -DOBJPFX=\"$(objpfx)\"
CFLAGS-bug4.c += -DOBJPFX=\"$(objpfx)\"
@@ -162,6 +164,10 @@ CFLAGS-test_rdwr.c += -DOBJPFX=\"$(objpfx)\"
# tst-gets.c tests a deprecated function.
CFLAGS-tst-gets.c += -Wno-deprecated-declarations
+# BZ #11319 was first fixed for regular vdprintf, then reopened because
+# the fortified version had the same bug.
+CFLAGS-tst-bz11319-fortify2.c += -D_FORTIFY_SOURCE=2
+
CPPFLAGS += $(libio-mtsafe)
$(objpfx)tst-setvbuf1.out: /dev/null $(objpfx)tst-setvbuf1
diff --git a/stdio-common/Versions b/stdio-common/Versions
index b8217578c8..522f302198 100644
--- a/stdio-common/Versions
+++ b/stdio-common/Versions
@@ -60,6 +60,9 @@ libc {
GLIBC_2.28 {
renameat2;
}
+ GLIBC_2.29 {
+ # SHLIB_COMPAT(GLIBC_2_0, GLIBC_2_29) used in iovfscanf.c etc.
+ }
GLIBC_PRIVATE {
# global variables
_itoa_lower_digits;
diff --git a/stdio-common/_i18n_number.h b/stdio-common/_i18n_number.h
index 40797715c8..6489ac579d 100644
--- a/stdio-common/_i18n_number.h
+++ b/stdio-common/_i18n_number.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdbool.h>
#include <wchar.h>
diff --git a/stdio-common/_itoa.c b/stdio-common/_itoa.c
index 3749ee97e3..49314a104b 100644
--- a/stdio-common/_itoa.c
+++ b/stdio-common/_itoa.c
@@ -1,5 +1,5 @@
/* Internal function for converting integers to ASCII.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Torbjorn Granlund <tege@matematik.su.se>
and Ulrich Drepper <drepper@gnu.org>.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <gmp-mparam.h>
#include <gmp.h>
diff --git a/stdio-common/_itowa.c b/stdio-common/_itowa.c
index 531be71ab3..2a53562d67 100644
--- a/stdio-common/_itowa.c
+++ b/stdio-common/_itowa.c
@@ -1,5 +1,5 @@
/* Internal function for converting integers to ASCII.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Torbjorn Granlund <tege@matematik.su.se>
and Ulrich Drepper <drepper@gnu.org>.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <gmp-mparam.h>
#include <gmp.h>
diff --git a/stdio-common/_itowa.h b/stdio-common/_itowa.h
index b0c8f99c49..61e630518f 100644
--- a/stdio-common/_itowa.h
+++ b/stdio-common/_itowa.h
@@ -1,5 +1,5 @@
/* Internal function for converting integers to ASCII.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _ITOWA_H
#define _ITOWA_H 1
diff --git a/stdio-common/asprintf.c b/stdio-common/asprintf.c
index bff858e657..32925b6d15 100644
--- a/stdio-common/asprintf.c
+++ b/stdio-common/asprintf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -13,14 +13,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdarg.h>
-#include <stdio.h>
-
#include <libioP.h>
-#define vasprintf(s, f, a) _IO_vasprintf (s, f, a)
-#undef __asprintf
/* Write formatted output from FORMAT to a string which is
allocated with malloc and stored in *STRING_PTR. */
@@ -32,7 +28,7 @@ ___asprintf (char **string_ptr, const char *format, ...)
int done;
va_start (arg, format);
- done = vasprintf (string_ptr, format, arg);
+ done = __vasprintf_internal (string_ptr, format, arg, 0);
va_end (arg);
return done;
diff --git a/stdio-common/bits/printf-ldbl.h b/stdio-common/bits/printf-ldbl.h
index d61a68253e..844c1daa7a 100644
--- a/stdio-common/bits/printf-ldbl.h
+++ b/stdio-common/bits/printf-ldbl.h
@@ -1,5 +1,5 @@
/* -mlong-double-64 compatibility mode for <printf.h> functions.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _PRINTF_H
# error "Never include <bits/printf-ldbl.h> directly; use <printf.h> instead."
diff --git a/stdio-common/bug-vfprintf-nargs.c b/stdio-common/bug-vfprintf-nargs.c
index f06137968b..633b921798 100644
--- a/stdio-common/bug-vfprintf-nargs.c
+++ b/stdio-common/bug-vfprintf-nargs.c
@@ -1,5 +1,5 @@
/* Test for vfprintf nargs allocation overflow (BZ #13656).
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Kees Cook <keescook@chromium.org>, 2012.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
diff --git a/stdio-common/bug21.c b/stdio-common/bug21.c
index 7a8c6a3542..1f06c0dab4 100644
--- a/stdio-common/bug21.c
+++ b/stdio-common/bug21.c
@@ -1,5 +1,4 @@
#include <stdio.h>
-#include <libc-diag.h>
static int
do_test (void)
@@ -7,15 +6,7 @@ do_test (void)
static const char buf[] = " ";
char *str;
- /* GCC in C99 mode treats %a as the C99 format expecting float *,
- but glibc with _GNU_SOURCE treats %as as the GNU allocation
- extension, so resulting in "warning: format '%a' expects argument
- of type 'float *', but argument 3 has type 'char **'". This
- applies to the other %as, %aS and %a[] formats below as well. */
- DIAG_PUSH_NEEDS_COMMENT;
- DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wformat");
- int r = sscanf (buf, "%as", &str);
- DIAG_POP_NEEDS_COMMENT;
+ int r = sscanf (buf, "%ms", &str);
printf ("%d %p\n", r, str);
return r != -1 || str != NULL;
diff --git a/stdio-common/bug22.c b/stdio-common/bug22.c
index b26399acb7..b3d48eb8e1 100644
--- a/stdio-common/bug22.c
+++ b/stdio-common/bug22.c
@@ -1,6 +1,7 @@
/* BZ #5424 */
#include <stdio.h>
#include <errno.h>
+#include <libc-diag.h>
/* INT_MAX + 1 */
#define N 2147483648
@@ -30,12 +31,26 @@ do_test (void)
return 1;
}
+ /* GCC 9 warns about output of more than INT_MAX characters; this is
+ deliberately tested here. */
+ DIAG_PUSH_NEEDS_COMMENT;
+#if __GNUC_PREREQ (7, 0)
+ DIAG_IGNORE_NEEDS_COMMENT (9, "-Wformat-overflow=");
+#endif
ret = fprintf (fp, "%" SN "d", 1);
+ DIAG_POP_NEEDS_COMMENT;
printf ("ret = %d\n", ret);
if (ret != -1 || errno != EOVERFLOW)
return 1;
+ /* GCC 9 warns about output of more than INT_MAX characters; this is
+ deliberately tested here. */
+ DIAG_PUSH_NEEDS_COMMENT;
+#if __GNUC_PREREQ (7, 0)
+ DIAG_IGNORE_NEEDS_COMMENT (9, "-Wformat-overflow=");
+#endif
ret = fprintf (fp, "%." SN "d", 1);
+ DIAG_POP_NEEDS_COMMENT;
printf ("ret = %d\n", ret);
if (ret != -1 || errno != EOVERFLOW)
return 1;
@@ -45,7 +60,14 @@ do_test (void)
if (ret != -1 || errno != EOVERFLOW)
return 1;
+ /* GCC 9 warns about output of more than INT_MAX characters; this is
+ deliberately tested here. */
+ DIAG_PUSH_NEEDS_COMMENT;
+#if __GNUC_PREREQ (7, 0)
+ DIAG_IGNORE_NEEDS_COMMENT (9, "-Wformat-overflow=");
+#endif
ret = fprintf (fp, "%" SN2 "d%" SN2 "d", 1, 1);
+ DIAG_POP_NEEDS_COMMENT;
printf ("ret = %d\n", ret);
return ret != -1 || errno != EOVERFLOW;
diff --git a/stdio-common/bug26.c b/stdio-common/bug26.c
index 6b31f28920..3fce4b4016 100644
--- a/stdio-common/bug26.c
+++ b/stdio-common/bug26.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2013-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <string.h>
diff --git a/stdio-common/ctermid.c b/stdio-common/ctermid.c
index f4af8e98e9..1207cfdd24 100644
--- a/stdio-common/ctermid.c
+++ b/stdio-common/ctermid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdio.h>
diff --git a/stdio-common/cuserid.c b/stdio-common/cuserid.c
index bfae5bc038..e74c193a1c 100644
--- a/stdio-common/cuserid.c
+++ b/stdio-common/cuserid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <errno.h>
diff --git a/stdio-common/dprintf.c b/stdio-common/dprintf.c
index 11bd12b838..22d5b760e9 100644
--- a/stdio-common/dprintf.c
+++ b/stdio-common/dprintf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -13,13 +13,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdarg.h>
-#include <stdio.h>
-
#include <libioP.h>
-#define vdprintf(d, f, a) _IO_vdprintf (d, f, a)
/* Write formatted output to D, according to the format string FORMAT. */
/* VARARGS2 */
@@ -30,7 +27,7 @@ __dprintf (int d, const char *format, ...)
int done;
va_start (arg, format);
- done = vdprintf (d, format, arg);
+ done = __vdprintf_internal (d, format, arg, 0);
va_end (arg);
return done;
diff --git a/stdio-common/errlist.c b/stdio-common/errlist.c
index b94b4b4422..7bf513648c 100644
--- a/stdio-common/errlist.c
+++ b/stdio-common/errlist.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <array_length.h>
#include <stddef.h>
diff --git a/stdio-common/errnobug.c b/stdio-common/errnobug.c
index 7127c126fb..7150d769a6 100644
--- a/stdio-common/errnobug.c
+++ b/stdio-common/errnobug.c
@@ -1,6 +1,6 @@
/* Regression test for reported old bug that errno is clobbered
by the first successful output to a stream on an unseekable object.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdio.h>
diff --git a/stdio-common/flockfile.c b/stdio-common/flockfile.c
index 60ddd34087..d0feec79bb 100644
--- a/stdio-common/flockfile.c
+++ b/stdio-common/flockfile.c
@@ -1,5 +1,5 @@
/* Lock I/O stream. Singlethreaded version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
diff --git a/stdio-common/fprintf.c b/stdio-common/fprintf.c
index 2bbf14bf5d..c3b0158e4e 100644
--- a/stdio-common/fprintf.c
+++ b/stdio-common/fprintf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdarg.h>
#include <stdio.h>
@@ -29,7 +29,7 @@ __fprintf (FILE *stream, const char *format, ...)
int done;
va_start (arg, format);
- done = vfprintf (stream, format, arg);
+ done = __vfprintf_internal (stream, format, arg, 0);
va_end (arg);
return done;
diff --git a/stdio-common/fscanf.c b/stdio-common/fscanf.c
index b60a2a3b81..312a87a66e 100644
--- a/stdio-common/fscanf.c
+++ b/stdio-common/fscanf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -13,7 +13,12 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+
+/* This file defines one of the deprecated scanf variants. */
+#include <features.h>
+#undef __GLIBC_USE_DEPRECATED_SCANF
+#define __GLIBC_USE_DEPRECATED_SCANF 1
#include <libioP.h>
#include <stdarg.h>
diff --git a/stdio-common/ftrylockfile.c b/stdio-common/ftrylockfile.c
index 02e426b6f1..66ec41809f 100644
--- a/stdio-common/ftrylockfile.c
+++ b/stdio-common/ftrylockfile.c
@@ -1,5 +1,5 @@
/* Try locking I/O stream. Singlethreaded version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
diff --git a/stdio-common/funlockfile.c b/stdio-common/funlockfile.c
index a59a18c9a4..a98bb040c0 100644
--- a/stdio-common/funlockfile.c
+++ b/stdio-common/funlockfile.c
@@ -1,5 +1,5 @@
/* Unlock I/O stream. Singlethreaded version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
diff --git a/stdio-common/fxprintf.c b/stdio-common/fxprintf.c
index c4a1146b20..a86a06cc66 100644
--- a/stdio-common/fxprintf.c
+++ b/stdio-common/fxprintf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdarg.h>
#include <stdio.h>
@@ -24,10 +24,11 @@
#include <libioP.h>
static int
-locked_vfxprintf (FILE *fp, const char *fmt, va_list ap)
+locked_vfxprintf (FILE *fp, const char *fmt, va_list ap,
+ unsigned int mode_flags)
{
if (_IO_fwide (fp, 0) <= 0)
- return _IO_vfprintf (fp, fmt, ap);
+ return __vfprintf_internal (fp, fmt, ap, mode_flags);
/* We must convert the narrow format string to a wide one.
Each byte can produce at most one wide character. */
@@ -53,7 +54,7 @@ locked_vfxprintf (FILE *fp, const char *fmt, va_list ap)
res = __mbsrtowcs (wfmt, &fmt, len, &mbstate);
if (res != -1)
- res = _IO_vfwprintf (fp, wfmt, ap);
+ res = __vfwprintf_internal (fp, wfmt, ap, mode_flags);
if (used_malloc)
free (wfmt);
@@ -62,18 +63,23 @@ locked_vfxprintf (FILE *fp, const char *fmt, va_list ap)
}
int
-__fxprintf (FILE *fp, const char *fmt, ...)
+__vfxprintf (FILE *fp, const char *fmt, va_list ap,
+ unsigned int mode_flags)
{
if (fp == NULL)
fp = stderr;
+ _IO_flockfile (fp);
+ int res = locked_vfxprintf (fp, fmt, ap, mode_flags);
+ _IO_funlockfile (fp);
+ return res;
+}
+int
+__fxprintf (FILE *fp, const char *fmt, ...)
+{
va_list ap;
va_start (ap, fmt);
- _IO_flockfile (fp);
-
- int res = locked_vfxprintf (fp, fmt, ap);
-
- _IO_funlockfile (fp);
+ int res = __vfxprintf (fp, fmt, ap, 0);
va_end (ap);
return res;
}
@@ -90,7 +96,7 @@ __fxprintf_nocancel (FILE *fp, const char *fmt, ...)
int save_flags2 = fp->_flags2;
fp->_flags2 |= _IO_FLAGS2_NOTCANCEL;
- int res = locked_vfxprintf (fp, fmt, ap);
+ int res = locked_vfxprintf (fp, fmt, ap, 0);
fp->_flags2 = save_flags2;
_IO_funlockfile (fp);
diff --git a/stdio-common/gentempfd.c b/stdio-common/gentempfd.c
index d45cbb8588..3c456a5ac2 100644
--- a/stdio-common/gentempfd.c
+++ b/stdio-common/gentempfd.c
@@ -1,5 +1,5 @@
/* Generate a temporary file descriptor. Generic/POSIX version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
diff --git a/stdio-common/getline.c b/stdio-common/getline.c
index 77f77c2400..b6b4f2b070 100644
--- a/stdio-common/getline.c
+++ b/stdio-common/getline.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <stdio.h>
diff --git a/stdio-common/getw.c b/stdio-common/getw.c
index 781a0dc97b..24c340cd17 100644
--- a/stdio-common/getw.c
+++ b/stdio-common/getw.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
diff --git a/stdio-common/iovfscanf.c b/stdio-common/iovfscanf.c
new file mode 100644
index 0000000000..8660d84d79
--- /dev/null
+++ b/stdio-common/iovfscanf.c
@@ -0,0 +1,38 @@
+/* Implementation and symbols for _IO_vfscanf.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <libioP.h>
+#include <shlib-compat.h>
+
+/* This function is provided for ports older than GLIBC 2.29 because
+ external callers could theoretically exist. Newer ports do not need,
+ since it is not part of the API. */
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_29)
+
+int
+attribute_compat_text_section
+__IO_vfscanf (FILE *fp, const char *format, va_list ap, int *errp)
+{
+ int rv = __vfscanf_internal (fp, format, ap, 0);
+ if (__glibc_unlikely (errp != 0))
+ *errp = (rv == -1);
+ return rv;
+}
+ldbl_compat_symbol (libc, __IO_vfscanf, _IO_vfscanf, GLIBC_2_0);
+
+#endif
diff --git a/stdio-common/iovfwscanf.c b/stdio-common/iovfwscanf.c
new file mode 100644
index 0000000000..56c7c6697d
--- /dev/null
+++ b/stdio-common/iovfwscanf.c
@@ -0,0 +1,38 @@
+/* Implementation and symbols for _IO_vfwscanf.
+ Copyright (C) 1991-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <libioP.h>
+#include <shlib-compat.h>
+
+/* This function is provided for ports older than GLIBC 2.29 because
+ external callers could theoretically exist. Newer ports do not need,
+ since it is not part of the API. */
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_29)
+
+int
+attribute_compat_text_section
+__IO_vfwscanf (FILE *fp, const wchar_t *format, va_list ap, int *errp)
+{
+ int rv = __vfwscanf_internal (fp, format, ap, 0);
+ if (__glibc_unlikely (errp != 0))
+ *errp = (rv == -1);
+ return rv;
+}
+compat_symbol (libc, __IO_vfwscanf, _IO_vfwscanf, GLIBC_2_0);
+
+#endif
diff --git a/stdio-common/isoc99_fscanf.c b/stdio-common/isoc99_fscanf.c
index 9cdf85e679..09ac4180d0 100644
--- a/stdio-common/isoc99_fscanf.c
+++ b/stdio-common/isoc99_fscanf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -13,27 +13,22 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libioP.h>
#include <stdarg.h>
#include <stdio.h>
/* Read formatted input from STREAM according to the format string FORMAT. */
-/* VARARGS2 */
int
__isoc99_fscanf (FILE *stream, const char *format, ...)
{
va_list arg;
int done;
- _IO_acquire_lock_clear_flags2 (stream);
- stream->_flags2 |= _IO_FLAGS2_SCANF_STD;
-
va_start (arg, format);
- done = _IO_vfscanf (stream, format, arg, NULL);
+ done = __vfscanf_internal (stream, format, arg, SCANF_ISOC99_A);
va_end (arg);
- _IO_release_lock (stream);
return done;
}
diff --git a/stdio-common/isoc99_scanf.c b/stdio-common/isoc99_scanf.c
index bf7dbe86bb..2a93237ea2 100644
--- a/stdio-common/isoc99_scanf.c
+++ b/stdio-common/isoc99_scanf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -13,32 +13,22 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdarg.h>
#include <stdio.h>
#include <libioP.h>
-
/* Read formatted input from stdin according to the format string FORMAT. */
-/* VARARGS1 */
int
__isoc99_scanf (const char *format, ...)
{
va_list arg;
int done;
-#ifdef _IO_MTSAFE_IO
- _IO_acquire_lock_clear_flags2 (stdin);
-#endif
- stdin->_flags2 |= _IO_FLAGS2_SCANF_STD;
-
va_start (arg, format);
- done = _IO_vfscanf (stdin, format, arg, NULL);
+ done = __vfscanf_internal (stdin, format, arg, SCANF_ISOC99_A);
va_end (arg);
-#ifdef _IO_MTSAFE_IO
- _IO_release_lock (stdin);
-#endif
return done;
}
diff --git a/stdio-common/isoc99_sscanf.c b/stdio-common/isoc99_sscanf.c
index 56a60a2c05..82f3e3c022 100644
--- a/stdio-common/isoc99_sscanf.c
+++ b/stdio-common/isoc99_sscanf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -13,23 +13,24 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdarg.h>
-#include <stdio.h>
-#include <libioP.h>
+#include <libio/strfile.h>
/* Read formatted input from S, according to the format string FORMAT. */
-/* VARARGS2 */
int
__isoc99_sscanf (const char *s, const char *format, ...)
{
va_list arg;
int done;
+ _IO_strfile sf;
+ FILE *f = _IO_strfile_read (&sf, s);
va_start (arg, format);
- done = __isoc99_vsscanf (s, format, arg);
+ done = __vfscanf_internal (f, format, arg, SCANF_ISOC99_A);
va_end (arg);
return done;
}
+libc_hidden_def (__isoc99_sscanf)
diff --git a/stdio-common/isoc99_vfscanf.c b/stdio-common/isoc99_vfscanf.c
index b80e05f8db..d41ce6a493 100644
--- a/stdio-common/isoc99_vfscanf.c
+++ b/stdio-common/isoc99_vfscanf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -13,22 +13,15 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libioP.h>
#include <stdio.h>
/* Read formatted input from STREAM according to the format string FORMAT. */
-/* VARARGS2 */
int
__isoc99_vfscanf (FILE *stream, const char *format, va_list args)
{
- int done;
-
- _IO_acquire_lock_clear_flags2 (stream);
- stream->_flags2 |= _IO_FLAGS2_SCANF_STD;
- done = _IO_vfscanf (stream, format, args, NULL);
- _IO_release_lock (stream);
- return done;
+ return __vfscanf_internal (stream, format, args, SCANF_ISOC99_A);
}
libc_hidden_def (__isoc99_vfscanf)
diff --git a/stdio-common/isoc99_vscanf.c b/stdio-common/isoc99_vscanf.c
index 0b747f85ba..829075f14e 100644
--- a/stdio-common/isoc99_vscanf.c
+++ b/stdio-common/isoc99_vscanf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -13,21 +13,14 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libioP.h>
#include <stdio.h>
/* Read formatted input from STDIN according to the format string FORMAT. */
-/* VARARGS2 */
int
__isoc99_vscanf (const char *format, va_list args)
{
- int done;
-
- _IO_acquire_lock_clear_flags2 (stdin);
- stdin->_flags2 |= _IO_FLAGS2_SCANF_STD;
- done = _IO_vfscanf (stdin, format, args, NULL);
- _IO_release_lock (stdin);
- return done;
+ return __vfscanf_internal (stdin, format, args, SCANF_ISOC99_A);
}
diff --git a/stdio-common/isoc99_vsscanf.c b/stdio-common/isoc99_vsscanf.c
index ac85ef2d0d..8804ad2574 100644
--- a/stdio-common/isoc99_vsscanf.c
+++ b/stdio-common/isoc99_vsscanf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
As a special exception, if you link the code in this file with
files compiled with a GNU compiler to produce an executable,
@@ -24,23 +24,13 @@
This exception applies to code released by its copyright holders
in files containing the exception. */
-#include <libioP.h>
-#include <stdio.h>
-#include "../libio/strfile.h"
+#include <libio/strfile.h>
int
__isoc99_vsscanf (const char *string, const char *format, va_list args)
{
- int ret;
_IO_strfile sf;
-#ifdef _IO_MTSAFE_IO
- sf._sbf._f._lock = NULL;
-#endif
- _IO_no_init (&sf._sbf._f, _IO_USER_LOCK, -1, NULL, NULL);
- _IO_JUMPS (&sf._sbf) = &_IO_str_jumps;
- _IO_str_init_static_internal (&sf, (char*)string, 0, NULL);
- sf._sbf._f._flags2 |= _IO_FLAGS2_SCANF_STD;
- ret = _IO_vfscanf (&sf._sbf._f, format, args, NULL);
- return ret;
+ FILE *f = _IO_strfile_read (&sf, string);
+ return __vfscanf_internal (f, format, args, SCANF_ISOC99_A);
}
libc_hidden_def (__isoc99_vsscanf)
diff --git a/stdio-common/itoa-digits.c b/stdio-common/itoa-digits.c
index 00619521ed..4f4cf64b27 100644
--- a/stdio-common/itoa-digits.c
+++ b/stdio-common/itoa-digits.c
@@ -1,5 +1,5 @@
/* Digits.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <_itoa.h>
diff --git a/stdio-common/itoa-udigits.c b/stdio-common/itoa-udigits.c
index 607b08ee3b..5bfee8bf7d 100644
--- a/stdio-common/itoa-udigits.c
+++ b/stdio-common/itoa-udigits.c
@@ -1,5 +1,5 @@
/* Digits.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <_itoa.h>
diff --git a/stdio-common/itowa-digits.c b/stdio-common/itowa-digits.c
index 5727a4ec88..13b6a55fbe 100644
--- a/stdio-common/itowa-digits.c
+++ b/stdio-common/itowa-digits.c
@@ -1,5 +1,5 @@
/* Digits.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <wchar.h>
diff --git a/stdio-common/perror.c b/stdio-common/perror.c
index b6836c93f6..10a5bbf44e 100644
--- a/stdio-common/perror.c
+++ b/stdio-common/perror.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdio.h>
diff --git a/stdio-common/printf-parse.h b/stdio-common/printf-parse.h
index e07186ec83..603dea9d75 100644
--- a/stdio-common/printf-parse.h
+++ b/stdio-common/printf-parse.h
@@ -1,5 +1,5 @@
/* Internal header for parsing printf format strings.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of th GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <printf.h>
#include <stdint.h>
@@ -57,6 +57,9 @@ union printf_arg
unsigned long long int pa_u_long_long_int;
double pa_double;
long double pa_long_double;
+#if __HAVE_FLOAT128_UNLIKE_LDBL
+ _Float128 pa_float128;
+#endif
const char *pa_string;
const wchar_t *pa_wstring;
void *pa_pointer;
diff --git a/stdio-common/printf-parsemb.c b/stdio-common/printf-parsemb.c
index ecbc4e3169..143d3b77ca 100644
--- a/stdio-common/printf-parsemb.c
+++ b/stdio-common/printf-parsemb.c
@@ -1,5 +1,5 @@
/* Helper functions for parsing printf format strings.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of th GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <limits.h>
diff --git a/stdio-common/printf-prs.c b/stdio-common/printf-prs.c
index 93b872a875..d1e3fe6d06 100644
--- a/stdio-common/printf-prs.c
+++ b/stdio-common/printf-prs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <printf.h>
diff --git a/stdio-common/printf.c b/stdio-common/printf.c
index 205b5e42df..04ec31e379 100644
--- a/stdio-common/printf.c
+++ b/stdio-common/printf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libioP.h>
#include <stdarg.h>
@@ -30,7 +30,7 @@ __printf (const char *format, ...)
int done;
va_start (arg, format);
- done = vfprintf (stdout, format, arg);
+ done = __vfprintf_internal (stdout, format, arg, 0);
va_end (arg);
return done;
@@ -38,5 +38,4 @@ __printf (const char *format, ...)
#undef _IO_printf
ldbl_strong_alias (__printf, printf);
-/* This is for libg++. */
ldbl_strong_alias (__printf, _IO_printf);
diff --git a/stdio-common/printf.h b/stdio-common/printf.h
index 06d674359a..2eb0b51382 100644
--- a/stdio-common/printf.h
+++ b/stdio-common/printf.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _PRINTF_H
diff --git a/stdio-common/printf_fp.c b/stdio-common/printf_fp.c
index 66ab59bad2..47d2813af7 100644
--- a/stdio-common/printf_fp.c
+++ b/stdio-common/printf_fp.c
@@ -1,5 +1,5 @@
/* Floating point output for `printf'.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* The gmp headers need some configuration frobs. */
#define HAVE_ALLOCA 1
@@ -459,8 +459,8 @@ __printf_fp_l (FILE *fp, locale_t loc,
}
else
{
- cy = __mpn_lshift (p.frac +
- (p.exponent + to_shift) / BITS_PER_MP_LIMB,
+ cy = __mpn_lshift (p.frac
+ + (p.exponent + to_shift) / BITS_PER_MP_LIMB,
fp_input, p.fracsize,
(p.exponent + to_shift) % BITS_PER_MP_LIMB);
p.fracsize += (p.exponent + to_shift) / BITS_PER_MP_LIMB;
@@ -533,8 +533,8 @@ __printf_fp_l (FILE *fp, locale_t loc,
&__tens[powers->arrayoff
+ _FPIO_CONST_OFFSET],
powers->arraysize - _FPIO_CONST_OFFSET);
- p.tmpsize = p.scalesize +
- powers->arraysize - _FPIO_CONST_OFFSET;
+ p.tmpsize = p.scalesize
+ + powers->arraysize - _FPIO_CONST_OFFSET;
if (cy == 0)
--p.tmpsize;
}
@@ -717,10 +717,10 @@ __printf_fp_l (FILE *fp, locale_t loc,
multiplication was not valid. This is because we cannot
determine the number of bits in the result in advance. */
if (incr < p.exponent + 3
- || (incr == p.exponent + 3 &&
- (p.tmp[p.tmpsize - 1] < topval[1]
- || (p.tmp[p.tmpsize - 1] == topval[1]
- && p.tmp[p.tmpsize - 2] < topval[0]))))
+ || (incr == p.exponent + 3
+ && (p.tmp[p.tmpsize - 1] < topval[1]
+ || (p.tmp[p.tmpsize - 1] == topval[1]
+ && p.tmp[p.tmpsize - 2] < topval[0]))))
{
/* The factor is right. Adapt binary and decimal
exponents. */
@@ -809,8 +809,8 @@ __printf_fp_l (FILE *fp, locale_t loc,
numbers are in the range of 1.0 <= |fp| < 8.0. We simply
shift it to the right place and divide it by 1.0 to get the
leading digit. (Of course this division is not really made.) */
- assert (0 <= p.exponent && p.exponent < 3 &&
- p.exponent + to_shift < BITS_PER_MP_LIMB);
+ assert (0 <= p.exponent && p.exponent < 3
+ && p.exponent + to_shift < BITS_PER_MP_LIMB);
/* Now shift the input value to its right place. */
cy = __mpn_lshift (p.frac, fp_input, p.fracsize, (p.exponent + to_shift));
diff --git a/stdio-common/printf_fphex.c b/stdio-common/printf_fphex.c
index df3956316d..872b5dc246 100644
--- a/stdio-common/printf_fphex.c
+++ b/stdio-common/printf_fphex.c
@@ -1,5 +1,5 @@
/* Print floating point number in hexadecimal notation according to ISO C99.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <array_length.h>
#include <ctype.h>
diff --git a/stdio-common/printf_size.c b/stdio-common/printf_size.c
index 7e073c50d4..e2ded78e72 100644
--- a/stdio-common/printf_size.c
+++ b/stdio-common/printf_size.c
@@ -1,5 +1,5 @@
/* Print size value using units for orders of magnitude.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
Based on a proposal by Larry McVoy <lm@sgi.com>.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <ieee754.h>
diff --git a/stdio-common/psiginfo.c b/stdio-common/psiginfo.c
index 8f6c53aeb4..dc69232055 100644
--- a/stdio-common/psiginfo.c
+++ b/stdio-common/psiginfo.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <array_length.h>
#include <errno.h>
diff --git a/stdio-common/psignal.c b/stdio-common/psignal.c
index 9642a679eb..89bd1d89d4 100644
--- a/stdio-common/psignal.c
+++ b/stdio-common/psignal.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <signal.h>
diff --git a/stdio-common/putw.c b/stdio-common/putw.c
index 789cf0de3e..8bedec0a84 100644
--- a/stdio-common/putw.c
+++ b/stdio-common/putw.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <libio/iolibio.h>
diff --git a/stdio-common/reg-modifier.c b/stdio-common/reg-modifier.c
index 80f21e205c..d11f099c47 100644
--- a/stdio-common/reg-modifier.c
+++ b/stdio-common/reg-modifier.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <limits.h>
diff --git a/stdio-common/reg-printf.c b/stdio-common/reg-printf.c
index 35db28aa33..989e26f00f 100644
--- a/stdio-common/reg-printf.c
+++ b/stdio-common/reg-printf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <limits.h>
diff --git a/stdio-common/reg-type.c b/stdio-common/reg-type.c
index aac53f088d..5dd9fde13e 100644
--- a/stdio-common/reg-type.c
+++ b/stdio-common/reg-type.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <printf.h>
diff --git a/stdio-common/remove.c b/stdio-common/remove.c
index e01ba517da..95b6966a05 100644
--- a/stdio-common/remove.c
+++ b/stdio-common/remove.c
@@ -1,5 +1,5 @@
/* ANSI C `remove' function to delete a file or directory. Stub version.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdio.h>
diff --git a/stdio-common/rename.c b/stdio-common/rename.c
index 564e8852ac..4831f82709 100644
--- a/stdio-common/rename.c
+++ b/stdio-common/rename.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <errno.h>
diff --git a/stdio-common/renameat.c b/stdio-common/renameat.c
index 98c8f1d18b..1b798fd68f 100644
--- a/stdio-common/renameat.c
+++ b/stdio-common/renameat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/stdio-common/renameat2.c b/stdio-common/renameat2.c
index c2cedcd2cb..955e252423 100644
--- a/stdio-common/renameat2.c
+++ b/stdio-common/renameat2.c
@@ -1,5 +1,5 @@
/* Generic implementation of the renameat function.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,13 +14,13 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdio.h>
int
-renameat2 (int oldfd, const char *old, int newfd, const char *new,
+__renameat2 (int oldfd, const char *old, int newfd, const char *new,
unsigned int flags)
{
if (flags == 0)
@@ -28,3 +28,5 @@ renameat2 (int oldfd, const char *old, int newfd, const char *new,
__set_errno (EINVAL);
return -1;
}
+libc_hidden_def (__renameat2)
+weak_alias (__renameat2, renameat2)
diff --git a/stdio-common/scanf.c b/stdio-common/scanf.c
index e61b5f1ad3..5962f76d32 100644
--- a/stdio-common/scanf.c
+++ b/stdio-common/scanf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -13,7 +13,12 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+
+/* This file defines one of the deprecated scanf variants. */
+#include <features.h>
+#undef __GLIBC_USE_DEPRECATED_SCANF
+#define __GLIBC_USE_DEPRECATED_SCANF 1
#include <stdarg.h>
#include <stdio.h>
@@ -30,7 +35,7 @@ __scanf (const char *format, ...)
int done;
va_start (arg, format);
- done = _IO_vfscanf (stdin, format, arg, NULL);
+ done = __vfscanf_internal (stdin, format, arg, 0);
va_end (arg);
return done;
diff --git a/stdio-common/scanf11.c b/stdio-common/scanf11.c
index 1928da44cd..bdfa526607 100644
--- a/stdio-common/scanf11.c
+++ b/stdio-common/scanf11.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <stdio.h>
diff --git a/stdio-common/scanf14.c b/stdio-common/scanf14.c
index 2bcd9c9893..79efebde83 100644
--- a/stdio-common/scanf14.c
+++ b/stdio-common/scanf14.c
@@ -1,8 +1,28 @@
+/* Copyright (C) 2007-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
+ <https://www.gnu.org/licenses/>. */
+
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <wchar.h>
-#include <libc-diag.h>
+
+#if __GLIBC_USE_DEPRECATED_SCANF
+# error "This file should not be compiled with deprecated scanf"
+#endif
#define FAIL() \
do { \
@@ -24,14 +44,7 @@ main (void)
FAIL ();
else if (f != 0.25 || memcmp (c, "s x", 3) != 0)
FAIL ();
- /* GCC in C99 mode treats %a as the C99 format expecting float *,
- but glibc with _GNU_SOURCE treats %as as the GNU allocation
- extension, so resulting in "warning: format '%a' expects argument
- of type 'float *', but argument 3 has type 'char **'". This
- applies to the other %as, %aS and %a[] formats below as well. */
- DIAG_PUSH_NEEDS_COMMENT;
- DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wformat");
- if (sscanf (" 1.25s x", "%as%2c", &sp, c) != 2)
+ if (sscanf (" 1.25s x", "%ms%2c", &sp, c) != 2)
FAIL ();
else
{
@@ -40,15 +53,11 @@ main (void)
memset (sp, 'x', sizeof "1.25s");
free (sp);
}
- DIAG_POP_NEEDS_COMMENT;
if (sscanf (" 2.25s x", "%las%2c", &d, c) != 2)
FAIL ();
else if (d != 2.25 || memcmp (c, " x", 2) != 0)
FAIL ();
- /* See explanation above. */
- DIAG_PUSH_NEEDS_COMMENT;
- DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wformat");
- if (sscanf (" 3.25S x", "%4aS%3c", &lsp, c) != 2)
+ if (sscanf (" 3.25S x", "%4mS%3c", &lsp, c) != 2)
FAIL ();
else
{
@@ -57,7 +66,7 @@ main (void)
memset (lsp, 'x', sizeof L"3.25");
free (lsp);
}
- if (sscanf ("4.25[0-9.] x", "%a[0-9.]%8c", &sp, c) != 2)
+ if (sscanf ("4.25[0-9.] x", "%m[0-9.]%8c", &sp, c) != 2)
FAIL ();
else
{
@@ -66,7 +75,6 @@ main (void)
memset (sp, 'x', sizeof "4.25");
free (sp);
}
- DIAG_POP_NEEDS_COMMENT;
if (sscanf ("5.25[0-9.] x", "%la[0-9.]%2c", &d, c) != 2)
FAIL ();
else if (d != 5.25 || memcmp (c, " x", 2) != 0)
@@ -95,10 +103,7 @@ main (void)
FAIL ();
if (fseek (fp, 0, SEEK_SET) != 0)
FAIL ();
- /* See explanation above. */
- DIAG_PUSH_NEEDS_COMMENT;
- DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wformat");
- if (fscanf (fp, "%as%2c", &sp, c) != 2)
+ if (fscanf (fp, "%ms%2c", &sp, c) != 2)
FAIL ();
else
{
@@ -107,16 +112,12 @@ main (void)
memset (sp, 'x', sizeof "1.25s");
free (sp);
}
- DIAG_POP_NEEDS_COMMENT;
if (freopen (fname, "r", stdin) == NULL)
FAIL ();
else
{
- /* See explanation above. */
- DIAG_PUSH_NEEDS_COMMENT;
- DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wformat");
- if (scanf ("%as%2c", &sp, c) != 2)
+ if (scanf ("%ms%2c", &sp, c) != 2)
FAIL ();
else
{
@@ -125,7 +126,6 @@ main (void)
memset (sp, 'x', sizeof "1.25s");
free (sp);
}
- DIAG_POP_NEEDS_COMMENT;
}
fclose (fp);
diff --git a/stdio-common/scanf14a.c b/stdio-common/scanf14a.c
new file mode 100644
index 0000000000..ebb4296b18
--- /dev/null
+++ b/stdio-common/scanf14a.c
@@ -0,0 +1,143 @@
+/* Copyright (C) 2007-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
+ <https://www.gnu.org/licenses/>. */
+
+/* This test exercises the deprecated GNU %as, %aS, and %a[...] scanf
+ modifiers, which are not available to programs compiled as C99
+ anymore; therefore, this file is compiled with -std=gnu89 and C99
+ syntax must not be used. */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <wchar.h>
+
+#if !__GLIBC_USE_DEPRECATED_SCANF
+# error "This file should be compiled with deprecated scanf"
+#endif
+
+
+#define FAIL() \
+ do { \
+ result = 1; \
+ printf ("test at line %d failed\n", __LINE__); \
+ } while (0)
+
+int
+main (void)
+{
+ wchar_t *lsp;
+ char *sp;
+ float f;
+ double d;
+ char c[8];
+ int result = 0;
+
+ if (sscanf (" 0.25s x", "%e%3c", &f, c) != 2)
+ FAIL ();
+ else if (f != 0.25 || memcmp (c, "s x", 3) != 0)
+ FAIL ();
+ if (sscanf (" 1.25s x", "%as%2c", &sp, c) != 2)
+ FAIL ();
+ else
+ {
+ if (strcmp (sp, "1.25s") != 0 || memcmp (c, " x", 2) != 0)
+ FAIL ();
+ memset (sp, 'x', sizeof "1.25s");
+ free (sp);
+ }
+ if (sscanf (" 2.25s x", "%las%2c", &d, c) != 2)
+ FAIL ();
+ else if (d != 2.25 || memcmp (c, " x", 2) != 0)
+ FAIL ();
+ if (sscanf (" 3.25S x", "%4aS%3c", &lsp, c) != 2)
+ FAIL ();
+ else
+ {
+ if (wcscmp (lsp, L"3.25") != 0 || memcmp (c, "S x", 3) != 0)
+ FAIL ();
+ memset (lsp, 'x', sizeof L"3.25");
+ free (lsp);
+ }
+ if (sscanf ("4.25[0-9.] x", "%a[0-9.]%8c", &sp, c) != 2)
+ FAIL ();
+ else
+ {
+ if (strcmp (sp, "4.25") != 0 || memcmp (c, "[0-9.] x", 8) != 0)
+ FAIL ();
+ memset (sp, 'x', sizeof "4.25");
+ free (sp);
+ }
+ if (sscanf ("5.25[0-9.] x", "%la[0-9.]%2c", &d, c) != 2)
+ FAIL ();
+ else if (d != 5.25 || memcmp (c, " x", 2) != 0)
+ FAIL ();
+
+ const char *tmpdir = getenv ("TMPDIR");
+ if (tmpdir == NULL || tmpdir[0] == '\0')
+ tmpdir = "/tmp";
+
+ char fname[strlen (tmpdir) + sizeof "/tst-scanf14.XXXXXX"];
+ sprintf (fname, "%s/tst-scanf14.XXXXXX", tmpdir);
+ if (fname == NULL)
+ FAIL ();
+
+ /* Create a temporary file. */
+ int fd = mkstemp (fname);
+ if (fd == -1)
+ FAIL ();
+
+ FILE *fp = fdopen (fd, "w+");
+ if (fp == NULL)
+ FAIL ();
+ else
+ {
+ if (fputs (" 1.25s x", fp) == EOF)
+ FAIL ();
+ if (fseek (fp, 0, SEEK_SET) != 0)
+ FAIL ();
+ if (fscanf (fp, "%as%2c", &sp, c) != 2)
+ FAIL ();
+ else
+ {
+ if (strcmp (sp, "1.25s") != 0 || memcmp (c, " x", 2) != 0)
+ FAIL ();
+ memset (sp, 'x', sizeof "1.25s");
+ free (sp);
+ }
+
+ if (freopen (fname, "r", stdin) == NULL)
+ FAIL ();
+ else
+ {
+ if (scanf ("%as%2c", &sp, c) != 2)
+ FAIL ();
+ else
+ {
+ if (strcmp (sp, "1.25s") != 0 || memcmp (c, " x", 2) != 0)
+ FAIL ();
+ memset (sp, 'x', sizeof "1.25s");
+ free (sp);
+ }
+ }
+
+ fclose (fp);
+ }
+
+ remove (fname);
+
+ return result;
+}
diff --git a/stdio-common/scanf15.c b/stdio-common/scanf15.c
index a3ab15dea2..16c1c064bf 100644
--- a/stdio-common/scanf15.c
+++ b/stdio-common/scanf15.c
@@ -1,18 +1,29 @@
-#undef _GNU_SOURCE
-#define _XOPEN_SOURCE 600
-#undef _LIBC
-#undef _IO_MTSAFE_IO
-/* The following macro definitions are a hack. They word around disabling
- the GNU extension while still using a few internal headers. */
-#define u_char unsigned char
-#define u_short unsigned short
-#define u_int unsigned int
-#define u_long unsigned long
+/* Copyright (C) 2007-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
+ <https://www.gnu.org/licenses/>. */
+
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <wchar.h>
+#if __GLIBC_USE_DEPRECATED_SCANF
+# error "This file should not be compiled with deprecated scanf"
+#endif
+
#define FAIL() \
do { \
result = 1; \
diff --git a/stdio-common/scanf16.c b/stdio-common/scanf16.c
index 3e3cb417f2..ab9a9b3dc7 100644
--- a/stdio-common/scanf16.c
+++ b/stdio-common/scanf16.c
@@ -1,16 +1,37 @@
+/* Copyright (C) 2008-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
+ <https://www.gnu.org/licenses/>. */
+
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <wchar.h>
+#if __GLIBC_USE_DEPRECATED_SCANF
+# error "This file should not be compiled with deprecated scanf"
+#endif
+
#define FAIL() \
do { \
result = 1; \
printf ("test at line %d failed\n", __LINE__); \
} while (0)
-static int
+static int __attribute__ ((format (scanf, 2, 3)))
xsscanf (const char *str, const char *fmt, ...)
{
va_list ap;
@@ -20,7 +41,7 @@ xsscanf (const char *str, const char *fmt, ...)
return ret;
}
-static int
+static int __attribute__ ((format (scanf, 1, 2)))
xscanf (const char *fmt, ...)
{
va_list ap;
@@ -30,7 +51,7 @@ xscanf (const char *fmt, ...)
return ret;
}
-static int
+static int __attribute__ ((format (scanf, 2, 3)))
xfscanf (FILE *f, const char *fmt, ...)
{
va_list ap;
@@ -54,7 +75,7 @@ main (void)
FAIL ();
else if (f != 0.25 || memcmp (c, "s x", 3) != 0)
FAIL ();
- if (xsscanf (" 1.25s x", "%as%2c", &sp, c) != 2)
+ if (xsscanf (" 1.25s x", "%ms%2c", &sp, c) != 2)
FAIL ();
else
{
@@ -67,7 +88,7 @@ main (void)
FAIL ();
else if (d != 2.25 || memcmp (c, " x", 2) != 0)
FAIL ();
- if (xsscanf (" 3.25S x", "%4aS%3c", &lsp, c) != 2)
+ if (xsscanf (" 3.25S x", "%4mS%3c", &lsp, c) != 2)
FAIL ();
else
{
@@ -76,7 +97,7 @@ main (void)
memset (lsp, 'x', sizeof L"3.25");
free (lsp);
}
- if (xsscanf ("4.25[0-9.] x", "%a[0-9.]%8c", &sp, c) != 2)
+ if (xsscanf ("4.25[0-9.] x", "%m[0-9.]%8c", &sp, c) != 2)
FAIL ();
else
{
@@ -113,7 +134,7 @@ main (void)
FAIL ();
if (fseek (fp, 0, SEEK_SET) != 0)
FAIL ();
- if (xfscanf (fp, "%as%2c", &sp, c) != 2)
+ if (xfscanf (fp, "%ms%2c", &sp, c) != 2)
FAIL ();
else
{
@@ -127,7 +148,7 @@ main (void)
FAIL ();
else
{
- if (xscanf ("%as%2c", &sp, c) != 2)
+ if (xscanf ("%ms%2c", &sp, c) != 2)
FAIL ();
else
{
diff --git a/stdio-common/scanf16a.c b/stdio-common/scanf16a.c
new file mode 100644
index 0000000000..f589105267
--- /dev/null
+++ b/stdio-common/scanf16a.c
@@ -0,0 +1,173 @@
+/* Copyright (C) 2008-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
+ <https://www.gnu.org/licenses/>. */
+
+/* This test exercises the deprecated GNU %as, %aS, and %a[...] scanf
+ modifiers, which are not available to programs compiled as C99
+ anymore; therefore, this file is compiled with -std=gnu89 and C99
+ syntax must not be used. */
+
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <wchar.h>
+
+#if !__GLIBC_USE_DEPRECATED_SCANF
+# error "This file should be compiled with deprecated scanf"
+#endif
+
+#define FAIL() \
+ do { \
+ result = 1; \
+ printf ("test at line %d failed\n", __LINE__); \
+ } while (0)
+
+static int __attribute__ ((format (scanf, 2, 3)))
+xsscanf (const char *str, const char *fmt, ...)
+{
+ va_list ap;
+ va_start (ap, fmt);
+ int ret = vsscanf (str, fmt, ap);
+ va_end (ap);
+ return ret;
+}
+
+static int __attribute__ ((format (scanf, 1, 2)))
+xscanf (const char *fmt, ...)
+{
+ va_list ap;
+ va_start (ap, fmt);
+ int ret = vscanf (fmt, ap);
+ va_end (ap);
+ return ret;
+}
+
+static int __attribute__ ((format (scanf, 2, 3)))
+xfscanf (FILE *f, const char *fmt, ...)
+{
+ va_list ap;
+ va_start (ap, fmt);
+ int ret = vfscanf (f, fmt, ap);
+ va_end (ap);
+ return ret;
+}
+
+int
+main (void)
+{
+ wchar_t *lsp;
+ char *sp;
+ float f;
+ double d;
+ char c[8];
+ int result = 0;
+
+ if (xsscanf (" 0.25s x", "%e%3c", &f, c) != 2)
+ FAIL ();
+ else if (f != 0.25 || memcmp (c, "s x", 3) != 0)
+ FAIL ();
+ if (xsscanf (" 1.25s x", "%as%2c", &sp, c) != 2)
+ FAIL ();
+ else
+ {
+ if (strcmp (sp, "1.25s") != 0 || memcmp (c, " x", 2) != 0)
+ FAIL ();
+ memset (sp, 'x', sizeof "1.25s");
+ free (sp);
+ }
+ if (xsscanf (" 2.25s x", "%las%2c", &d, c) != 2)
+ FAIL ();
+ else if (d != 2.25 || memcmp (c, " x", 2) != 0)
+ FAIL ();
+ if (xsscanf (" 3.25S x", "%4aS%3c", &lsp, c) != 2)
+ FAIL ();
+ else
+ {
+ if (wcscmp (lsp, L"3.25") != 0 || memcmp (c, "S x", 3) != 0)
+ FAIL ();
+ memset (lsp, 'x', sizeof L"3.25");
+ free (lsp);
+ }
+ if (xsscanf ("4.25[0-9.] x", "%a[0-9.]%8c", &sp, c) != 2)
+ FAIL ();
+ else
+ {
+ if (strcmp (sp, "4.25") != 0 || memcmp (c, "[0-9.] x", 8) != 0)
+ FAIL ();
+ memset (sp, 'x', sizeof "4.25");
+ free (sp);
+ }
+ if (xsscanf ("5.25[0-9.] x", "%la[0-9.]%2c", &d, c) != 2)
+ FAIL ();
+ else if (d != 5.25 || memcmp (c, " x", 2) != 0)
+ FAIL ();
+
+ const char *tmpdir = getenv ("TMPDIR");
+ if (tmpdir == NULL || tmpdir[0] == '\0')
+ tmpdir = "/tmp";
+
+ char fname[strlen (tmpdir) + sizeof "/tst-scanf16.XXXXXX"];
+ sprintf (fname, "%s/tst-scanf16.XXXXXX", tmpdir);
+ if (fname == NULL)
+ FAIL ();
+
+ /* Create a temporary file. */
+ int fd = mkstemp (fname);
+ if (fd == -1)
+ FAIL ();
+
+ FILE *fp = fdopen (fd, "w+");
+ if (fp == NULL)
+ FAIL ();
+ else
+ {
+ if (fputs (" 1.25s x", fp) == EOF)
+ FAIL ();
+ if (fseek (fp, 0, SEEK_SET) != 0)
+ FAIL ();
+ if (xfscanf (fp, "%as%2c", &sp, c) != 2)
+ FAIL ();
+ else
+ {
+ if (strcmp (sp, "1.25s") != 0 || memcmp (c, " x", 2) != 0)
+ FAIL ();
+ memset (sp, 'x', sizeof "1.25s");
+ free (sp);
+ }
+
+ if (freopen (fname, "r", stdin) == NULL)
+ FAIL ();
+ else
+ {
+ if (xscanf ("%as%2c", &sp, c) != 2)
+ FAIL ();
+ else
+ {
+ if (strcmp (sp, "1.25s") != 0 || memcmp (c, " x", 2) != 0)
+ FAIL ();
+ memset (sp, 'x', sizeof "1.25s");
+ free (sp);
+ }
+ }
+
+ fclose (fp);
+ }
+
+ remove (fname);
+
+ return result;
+}
diff --git a/stdio-common/scanf17.c b/stdio-common/scanf17.c
index b6c0e63ab0..1100ce538c 100644
--- a/stdio-common/scanf17.c
+++ b/stdio-common/scanf17.c
@@ -1,19 +1,30 @@
-#undef _GNU_SOURCE
-#define _XOPEN_SOURCE 600
-#undef _LIBC
-#undef _IO_MTSAFE_IO
-/* The following macro definitions are a hack. They word around disabling
- the GNU extension while still using a few internal headers. */
-#define u_char unsigned char
-#define u_short unsigned short
-#define u_int unsigned int
-#define u_long unsigned long
+/* Copyright (C) 2008-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
+ <https://www.gnu.org/licenses/>. */
+
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <wchar.h>
+#if __GLIBC_USE_DEPRECATED_SCANF
+# error "This file should not be compiled with deprecated scanf"
+#endif
+
#define FAIL() \
do { \
result = 1; \
diff --git a/stdio-common/siglist.c b/stdio-common/siglist.c
index 722604f4c2..18ca756a3d 100644
--- a/stdio-common/siglist.c
+++ b/stdio-common/siglist.c
@@ -1,5 +1,5 @@
/* Define list of all signal numbers and their names.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <signal.h>
diff --git a/stdio-common/snprintf.c b/stdio-common/snprintf.c
index 29a169b08b..3f78b49104 100644
--- a/stdio-common/snprintf.c
+++ b/stdio-common/snprintf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -13,12 +13,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdarg.h>
-#include <stdio.h>
#include <libioP.h>
-#define __vsnprintf(s, l, f, a) _IO_vsnprintf (s, l, f, a)
/* Write formatted output into S, according to the format
string FORMAT, writing no more than MAXLEN characters. */
@@ -30,7 +28,7 @@ __snprintf (char *s, size_t maxlen, const char *format, ...)
int done;
va_start (arg, format);
- done = __vsnprintf (s, maxlen, format, arg);
+ done = __vsnprintf_internal (s, maxlen, format, arg, 0);
va_end (arg);
return done;
diff --git a/stdio-common/sprintf.c b/stdio-common/sprintf.c
index bf5671dde9..c4b419f233 100644
--- a/stdio-common/sprintf.c
+++ b/stdio-common/sprintf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -13,12 +13,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdarg.h>
-#include <stdio.h>
#include <libioP.h>
-#define vsprintf(s, f, a) _IO_vsprintf (s, f, a)
/* Write formatted output into S, according to the format string FORMAT. */
/* VARARGS2 */
@@ -29,7 +27,7 @@ __sprintf (char *s, const char *format, ...)
int done;
va_start (arg, format);
- done = vsprintf (s, format, arg);
+ done = __vsprintf_internal (s, -1, format, arg, 0);
va_end (arg);
return done;
diff --git a/stdio-common/sscanf.c b/stdio-common/sscanf.c
index 88cd641798..db30352d08 100644
--- a/stdio-common/sscanf.c
+++ b/stdio-common/sscanf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -13,29 +13,31 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+
+/* This file defines one of the deprecated scanf variants. */
+#include <features.h>
+#undef __GLIBC_USE_DEPRECATED_SCANF
+#define __GLIBC_USE_DEPRECATED_SCANF 1
#include <stdarg.h>
-#include <stdio.h>
-#include <libioP.h>
-#define __vsscanf(s, f, a) _IO_vsscanf (s, f, a)
+#include <libio/strfile.h>
/* Read formatted input from S, according to the format string FORMAT. */
-/* VARARGS2 */
+
int
__sscanf (const char *s, const char *format, ...)
{
va_list arg;
int done;
+ _IO_strfile sf;
+ FILE *f = _IO_strfile_read (&sf, s);
va_start (arg, format);
- done = __vsscanf (s, format, arg);
+ done = __vfscanf_internal (f, format, arg, 0);
va_end (arg);
return done;
}
-ldbl_hidden_def (__sscanf, sscanf)
ldbl_strong_alias (__sscanf, sscanf)
-#undef _IO_sscanf
-/* This is for libg++. */
ldbl_strong_alias (__sscanf, _IO_sscanf)
diff --git a/stdio-common/stdio_ext.h b/stdio-common/stdio_ext.h
index 62aa5fdfed..9b81ca3b20 100644
--- a/stdio-common/stdio_ext.h
+++ b/stdio-common/stdio_ext.h
@@ -1,5 +1,5 @@
/* Functions to access FILE structure internals.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This header contains the same definitions as the header of the same name
on Sun's Solaris OS. */
diff --git a/stdio-common/stdio_lim.h.in b/stdio-common/stdio_lim.h.in
index 9d18b16ace..eb05959124 100644
--- a/stdio-common/stdio_lim.h.in
+++ b/stdio-common/stdio_lim.h.in
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_STDIO_LIM_H
#define _BITS_STDIO_LIM_H 1
diff --git a/stdio-common/tempnam.c b/stdio-common/tempnam.c
index 5e64482b48..0377981138 100644
--- a/stdio-common/tempnam.c
+++ b/stdio-common/tempnam.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <string.h>
diff --git a/stdio-common/tempname.c b/stdio-common/tempname.c
index 015c1d0334..df0651b585 100644
--- a/stdio-common/tempname.c
+++ b/stdio-common/tempname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __need_size_t
#include <stddef.h>
diff --git a/stdio-common/test-fseek.c b/stdio-common/test-fseek.c
index 17cd90b053..d3f4a88996 100644
--- a/stdio-common/test-fseek.c
+++ b/stdio-common/test-fseek.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
diff --git a/stdio-common/test-popen.c b/stdio-common/test-popen.c
index 206f212468..0ccd9e5d32 100644
--- a/stdio-common/test-popen.c
+++ b/stdio-common/test-popen.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdio.h>
diff --git a/stdio-common/test-vfprintf.c b/stdio-common/test-vfprintf.c
index bc6b0a54bb..5169f063e4 100644
--- a/stdio-common/test-vfprintf.c
+++ b/stdio-common/test-vfprintf.c
@@ -1,5 +1,5 @@
/* Tests of *printf for very large strings.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <array_length.h>
#include <locale.h>
diff --git a/stdio-common/test_rdwr.c b/stdio-common/test_rdwr.c
index 348987351f..5a219c381d 100644
--- a/stdio-common/test_rdwr.c
+++ b/stdio-common/test_rdwr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdio.h>
diff --git a/stdio-common/tmpfile.c b/stdio-common/tmpfile.c
index 5ffecae60c..1d0d4a283c 100644
--- a/stdio-common/tmpfile.c
+++ b/stdio-common/tmpfile.c
@@ -1,5 +1,5 @@
/* Open a stdio stream on an anonymous temporary file. Generic/POSIX version.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fcntl.h>
#include <stdio.h>
diff --git a/stdio-common/tmpfile64.c b/stdio-common/tmpfile64.c
index 36f852d258..1eeda19a2b 100644
--- a/stdio-common/tmpfile64.c
+++ b/stdio-common/tmpfile64.c
@@ -1,5 +1,5 @@
/* Open a stdio stream on an anonymous, large temporary file. Generic version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fcntl.h>
diff --git a/stdio-common/tmpnam.c b/stdio-common/tmpnam.c
index 9b0b6114a3..46ca98d9ae 100644
--- a/stdio-common/tmpnam.c
+++ b/stdio-common/tmpnam.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <string.h>
diff --git a/stdio-common/tmpnam_r.c b/stdio-common/tmpnam_r.c
index baba861667..1c5e023b76 100644
--- a/stdio-common/tmpnam_r.c
+++ b/stdio-common/tmpnam_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
diff --git a/stdio-common/tst-bz11319-fortify2.c b/stdio-common/tst-bz11319-fortify2.c
new file mode 100644
index 0000000000..a8df9a39bd
--- /dev/null
+++ b/stdio-common/tst-bz11319-fortify2.c
@@ -0,0 +1 @@
+#include <tst-bz11319.c>
diff --git a/stdio-common/tst-bz11319.c b/stdio-common/tst-bz11319.c
new file mode 100644
index 0000000000..ae3e8a9bcd
--- /dev/null
+++ b/stdio-common/tst-bz11319.c
@@ -0,0 +1,49 @@
+/* Regression test for bug 11319.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#define _GNU_SOURCE 1
+
+#include <fcntl.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#include <support/check.h>
+#include <support/temp_file.h>
+#include <support/xunistd.h>
+
+static int
+do_test (void)
+{
+ char *tempfile;
+ int fd;
+
+ /* Create a temporary file and open it in read-only mode. */
+ TEST_VERIFY_EXIT (create_temp_file ("tst-bz11319", &tempfile));
+ fd = xopen (tempfile, O_RDONLY, 0660);
+
+ /* Try and write to the temporary file to intentionally fail, then
+ check that dprintf (or __dprintf_chk) return EOF. */
+ TEST_COMPARE (dprintf (fd, "%d", 0), EOF);
+
+ xclose (fd);
+ free (tempfile);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/stdio-common/tst-fileno.c b/stdio-common/tst-fileno.c
index 92ccbda5b5..620917bd3d 100644
--- a/stdio-common/tst-fileno.c
+++ b/stdio-common/tst-fileno.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
@@ -31,9 +31,9 @@ check (const char *name, FILE *stream, int fd)
static int
do_test (void)
{
- return (check ("stdin", stdin, STDIN_FILENO) ||
- check ("stdout", stdout, STDOUT_FILENO) ||
- check ("stderr", stderr, STDERR_FILENO));
+ return (check ("stdin", stdin, STDIN_FILENO)
+ || check ("stdout", stdout, STDOUT_FILENO)
+ || check ("stderr", stderr, STDERR_FILENO));
}
#define TEST_FUNCTION do_test ()
diff --git a/stdio-common/tst-fmemopen.c b/stdio-common/tst-fmemopen.c
index b030282273..702128059e 100644
--- a/stdio-common/tst-fmemopen.c
+++ b/stdio-common/tst-fmemopen.c
@@ -1,5 +1,5 @@
/* basic fmemopen interface testing.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/stdio-common/tst-fmemopen2.c b/stdio-common/tst-fmemopen2.c
index ac1e87a5e0..22dd88effa 100644
--- a/stdio-common/tst-fmemopen2.c
+++ b/stdio-common/tst-fmemopen2.c
@@ -1,5 +1,5 @@
/* fmemopen tests.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
diff --git a/stdio-common/tst-fmemopen3.c b/stdio-common/tst-fmemopen3.c
index 7878886e3d..8ca2b59a59 100644
--- a/stdio-common/tst-fmemopen3.c
+++ b/stdio-common/tst-fmemopen3.c
@@ -1,5 +1,5 @@
/* fmemopen tests for append and read mode.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <stdio.h>
diff --git a/stdio-common/tst-fmemopen4.c b/stdio-common/tst-fmemopen4.c
index a48fa361c4..a456768e0a 100644
--- a/stdio-common/tst-fmemopen4.c
+++ b/stdio-common/tst-fmemopen4.c
@@ -1,5 +1,5 @@
/* fmemopen tests for BZ#1930 and BZ#20005.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <stdio.h>
@@ -40,14 +40,14 @@ do_test (void)
size_t r = fwrite (test, sizeof (char), sizeof (test), stream);
if (r != sizeof (test))
{
- printf ("error: fwrite returned %zu, expected %zu\n", r, sizeof(test));
+ printf ("error: fwrite returned %zu, expected %zu\n", r, sizeof (test));
return 1;
}
r = ftell (stream);
if (r != sizeof (test))
{
- printf ("error: ftell return %zu, expected %zu\n", r, sizeof(test));
+ printf ("error: ftell return %zu, expected %zu\n", r, sizeof (test));
return 1;
}
@@ -60,7 +60,7 @@ do_test (void)
r = ftell (stream);
if (r != sizeof (test))
{
- printf ("error: ftell return %zu, expected %zu\n", r, sizeof(test));
+ printf ("error: ftell return %zu, expected %zu\n", r, sizeof (test));
return 1;
}
diff --git a/stdio-common/tst-fphex-wide.c b/stdio-common/tst-fphex-wide.c
index 04c27ba39d..fca50ad5d3 100644
--- a/stdio-common/tst-fphex-wide.c
+++ b/stdio-common/tst-fphex-wide.c
@@ -1,6 +1,6 @@
/* Test program for %a wprintf formats.
This file is part of the GNU C Library.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Marek Polacek <polacek@redhat.com>, 2012.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <wchar.h>
diff --git a/stdio-common/tst-fseek.c b/stdio-common/tst-fseek.c
index 9d5f7466f6..eb68273e72 100644
--- a/stdio-common/tst-fseek.c
+++ b/stdio-common/tst-fseek.c
@@ -1,5 +1,5 @@
/* Tests of fseek and fseeko.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <error.h>
#include <errno.h>
@@ -477,6 +477,5 @@ do_test (void)
return result;
}
-#define TIMEOUT 3
#define TEST_FUNCTION do_test ()
#include "../test-skeleton.c"
diff --git a/stdio-common/tst-gets.c b/stdio-common/tst-gets.c
index 7ecbee2ec8..32114c5bdb 100644
--- a/stdio-common/tst-gets.c
+++ b/stdio-common/tst-gets.c
@@ -1,5 +1,5 @@
/* Tests for gets.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file tests gets. Force it to be declared. */
#include <features.h>
diff --git a/stdio-common/tst-long-dbl-fphex.c b/stdio-common/tst-long-dbl-fphex.c
index 33dc73190d..6c2665dfa5 100644
--- a/stdio-common/tst-long-dbl-fphex.c
+++ b/stdio-common/tst-long-dbl-fphex.c
@@ -1,5 +1,5 @@
/* This file is part of the GNU C Library.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
Contributed by Marek Polacek <polacek@redhat.com>, 2012.
The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <array_length.h>
#include <wchar.h>
diff --git a/stdio-common/tst-popen.c b/stdio-common/tst-popen.c
index 87d1c37679..56a8575520 100644
--- a/stdio-common/tst-popen.c
+++ b/stdio-common/tst-popen.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <string.h>
diff --git a/stdio-common/tst-printf-bz18872.sh b/stdio-common/tst-printf-bz18872.sh
index 8b2aec42d9..c9a419c011 100644
--- a/stdio-common/tst-printf-bz18872.sh
+++ b/stdio-common/tst-printf-bz18872.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright (C) 2015-2018 Free Software Foundation, Inc.
+# Copyright (C) 2015-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
@@ -14,7 +14,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
# To test BZ #18872, we need a printf() with 10K arguments.
# Such a printf could be generated with non-trivial macro
diff --git a/stdio-common/tst-printf-round.c b/stdio-common/tst-printf-round.c
index d8b6345c39..17c0a2366c 100644
--- a/stdio-common/tst-printf-round.c
+++ b/stdio-common/tst-printf-round.c
@@ -1,5 +1,5 @@
/* Test for correct rounding of printf floating-point output.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <array_length.h>
#include <fenv.h>
diff --git a/stdio-common/tst-printf.c b/stdio-common/tst-printf.c
index 70d9e584b3..7e7a7699b4 100644
--- a/stdio-common/tst-printf.c
+++ b/stdio-common/tst-printf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifdef BSD
#include </usr/include/stdio.h>
@@ -110,7 +110,14 @@ I am ready for my first lesson today.";
printf("left-adjusted Z string:\t\"%-010s\"\n", shortstr);
printf("space-padded string:\t\"%10s\"\n", shortstr);
printf("left-adjusted S string:\t\"%-10s\"\n", shortstr);
+ /* GCC 9 warns about the NULL format argument; this is deliberately
+ tested here. */
+ DIAG_PUSH_NEEDS_COMMENT;
+#if __GNUC_PREREQ (7, 0)
+ DIAG_IGNORE_NEEDS_COMMENT (9, "-Wformat-overflow=");
+#endif
printf("null string:\t\"%s\"\n", (char *)NULL);
+ DIAG_POP_NEEDS_COMMENT;
printf("limited string:\t\"%.22s\"\n", longstr);
printf("a-style max:\t\"%a\"\n", DBL_MAX);
@@ -166,7 +173,7 @@ I am ready for my first lesson today.";
snprintf (buf, sizeof (buf), "%30s", "foo"), (int) sizeof (buf),
buf);
printf ("snprintf (\"%%.999999u\", 10) == %d\n",
- snprintf(buf2, sizeof(buf2), "%.999999u", 10));
+ snprintf (buf2, sizeof (buf2), "%.999999u", 10));
}
printf("%.8f\n", DBL_MAX);
diff --git a/stdio-common/tst-printf.sh b/stdio-common/tst-printf.sh
index b543cc646c..310939ca4f 100644
--- a/stdio-common/tst-printf.sh
+++ b/stdio-common/tst-printf.sh
@@ -1,6 +1,6 @@
#!/bin/sh
# Testing of printf.
-# Copyright (C) 2000-2018 Free Software Foundation, Inc.
+# Copyright (C) 2000-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
@@ -15,7 +15,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
set -e
diff --git a/stdio-common/tst-printfsz-islongdouble.c b/stdio-common/tst-printfsz-islongdouble.c
index a6a534bb3d..1674c1ae76 100644
--- a/stdio-common/tst-printfsz-islongdouble.c
+++ b/stdio-common/tst-printfsz-islongdouble.c
@@ -1,5 +1,5 @@
/* Test for the behaviour of 'is_long_double' in printf_size.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <printf.h>
#include <stdio.h>
diff --git a/stdio-common/tst-printfsz-islongdouble.sh b/stdio-common/tst-printfsz-islongdouble.sh
index 6eda634844..7f17ab39f7 100644
--- a/stdio-common/tst-printfsz-islongdouble.sh
+++ b/stdio-common/tst-printfsz-islongdouble.sh
@@ -1,6 +1,6 @@
#!/bin/sh
# Test for the behaviour of 'is_binary128' in printf_size.
-# Copyright (C) 2018 Free Software Foundation, Inc.
+# Copyright (C) 2018-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
@@ -15,7 +15,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
set -e
diff --git a/stdio-common/tst-put-error.c b/stdio-common/tst-put-error.c
index 4366ed6f2c..c367d42ff8 100644
--- a/stdio-common/tst-put-error.c
+++ b/stdio-common/tst-put-error.c
@@ -1,6 +1,6 @@
/* Verify that print functions return error when there is an I/O error.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <error.h>
diff --git a/stdio-common/tst-renameat2.c b/stdio-common/tst-renameat2.c
index 958b0918d6..5643d27217 100644
--- a/stdio-common/tst-renameat2.c
+++ b/stdio-common/tst-renameat2.c
@@ -1,5 +1,5 @@
/* Linux implementation for renameat2 function.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <array_length.h>
#include <errno.h>
diff --git a/stdio-common/tst-rndseek.c b/stdio-common/tst-rndseek.c
index cf53aa48e0..60b5528429 100644
--- a/stdio-common/tst-rndseek.c
+++ b/stdio-common/tst-rndseek.c
@@ -10,7 +10,6 @@ static char tempdata[65 * 1024];
static int do_test (void);
#define TEST_FUNCTION do_test ()
-#define TIMEOUT 10
#include "../test-skeleton.c"
diff --git a/stdio-common/tst-scanf-round.c b/stdio-common/tst-scanf-round.c
index a2fb620abf..d01299e404 100644
--- a/stdio-common/tst-scanf-round.c
+++ b/stdio-common/tst-scanf-round.c
@@ -1,6 +1,6 @@
/* Test for correct rounding of negative floating-point numbers by scanf
(bug 23280).
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <stdio.h>
diff --git a/stdio-common/tst-sprintf3.c b/stdio-common/tst-sprintf3.c
index deaee93803..4d6d50d2ae 100644
--- a/stdio-common/tst-sprintf3.c
+++ b/stdio-common/tst-sprintf3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Test bug #13941. */
diff --git a/stdio-common/tst-sscanf.c b/stdio-common/tst-sscanf.c
index 87a6c0defa..798ad90742 100644
--- a/stdio-common/tst-sscanf.c
+++ b/stdio-common/tst-sscanf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <array_length.h>
#include <stdlib.h>
diff --git a/stdio-common/tst-tmpnam.c b/stdio-common/tst-tmpnam.c
index f82576ad3e..529ddf1bcc 100644
--- a/stdio-common/tst-tmpnam.c
+++ b/stdio-common/tst-tmpnam.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
diff --git a/stdio-common/tst-unbputc.sh b/stdio-common/tst-unbputc.sh
index 90a810ccee..22c5dcf59a 100755
--- a/stdio-common/tst-unbputc.sh
+++ b/stdio-common/tst-unbputc.sh
@@ -1,6 +1,6 @@
#!/bin/sh
# Testing the stdio implementation
-# Copyright (C) 2000-2018 Free Software Foundation, Inc.
+# Copyright (C) 2000-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
@@ -15,7 +15,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
set -e
diff --git a/stdio-common/tst-unlockedio.c b/stdio-common/tst-unlockedio.c
index 4837fd2e4b..afe6d0bebd 100644
--- a/stdio-common/tst-unlockedio.c
+++ b/stdio-common/tst-unlockedio.c
@@ -1,5 +1,5 @@
/* Test for some *_unlocked stdio interfaces.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include <stdio.h>
diff --git a/stdio-common/tst-vfprintf-mbs-prec.c b/stdio-common/tst-vfprintf-mbs-prec.c
index 7f95e6cceb..555b4e0a20 100644
--- a/stdio-common/tst-vfprintf-mbs-prec.c
+++ b/stdio-common/tst-vfprintf-mbs-prec.c
@@ -1,5 +1,5 @@
/* Test for wchar_t/multi-byte conversion and precision in vfprintf.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <locale.h>
#include <stdbool.h>
diff --git a/stdio-common/tst-vfprintf-user-type.c b/stdio-common/tst-vfprintf-user-type.c
index 1ee86312d8..822aeaab50 100644
--- a/stdio-common/tst-vfprintf-user-type.c
+++ b/stdio-common/tst-vfprintf-user-type.c
@@ -1,5 +1,5 @@
/* Test for user-defined types in vfprintf.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This test contains a printf format specifier, %P, with a custom
type which is a long/double pair. If a precision is specified,
diff --git a/stdio-common/tst-vfprintf-width-prec.c b/stdio-common/tst-vfprintf-width-prec.c
index fa61f5c22c..be811944c9 100644
--- a/stdio-common/tst-vfprintf-width-prec.c
+++ b/stdio-common/tst-vfprintf-width-prec.c
@@ -1,5 +1,5 @@
/* Test for memory leak with large width and precision.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <mcheck.h>
#include <stdio.h>
diff --git a/stdio-common/tstgetln.c b/stdio-common/tstgetln.c
index 6960e68620..daa466b6fa 100644
--- a/stdio-common/tstgetln.c
+++ b/stdio-common/tstgetln.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
diff --git a/stdio-common/tstscanf.c b/stdio-common/tstscanf.c
index 019a5c8a4d..c30bf2eb5e 100644
--- a/stdio-common/tstscanf.c
+++ b/stdio-common/tstscanf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <array_length.h>
#ifdef BSD
diff --git a/stdio-common/vfprintf-internal.c b/stdio-common/vfprintf-internal.c
new file mode 100644
index 0000000000..547a3a868b
--- /dev/null
+++ b/stdio-common/vfprintf-internal.c
@@ -0,0 +1,2405 @@
+/* Copyright (C) 1991-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <array_length.h>
+#include <ctype.h>
+#include <limits.h>
+#include <printf.h>
+#include <stdarg.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+#include <errno.h>
+#include <wchar.h>
+#include <libc-lock.h>
+#include <sys/param.h>
+#include <_itoa.h>
+#include <locale/localeinfo.h>
+#include <stdio.h>
+#include <scratch_buffer.h>
+
+/* This code is shared between the standard stdio implementation found
+ in GNU C library and the libio implementation originally found in
+ GNU libg++.
+
+ Beside this it is also shared between the normal and wide character
+ implementation as defined in ISO/IEC 9899:1990/Amendment 1:1995. */
+
+#include <libioP.h>
+
+#ifdef COMPILE_WPRINTF
+#include <wctype.h>
+#endif
+
+/* In some cases we need extra space for all the output which is not
+ counted in the width of the string. We assume 32 characters is
+ enough. */
+#define EXTSIZ 32
+#define ARGCHECK(S, Format) \
+ do \
+ { \
+ /* Check file argument for consistence. */ \
+ CHECK_FILE (S, -1); \
+ if (S->_flags & _IO_NO_WRITES) \
+ { \
+ S->_flags |= _IO_ERR_SEEN; \
+ __set_errno (EBADF); \
+ return -1; \
+ } \
+ if (Format == NULL) \
+ { \
+ __set_errno (EINVAL); \
+ return -1; \
+ } \
+ } while (0)
+#define UNBUFFERED_P(S) ((S)->_flags & _IO_UNBUFFERED)
+
+#if __HAVE_FLOAT128_UNLIKE_LDBL
+# define PARSE_FLOAT_VA_ARG_EXTENDED(INFO) \
+ do \
+ { \
+ if (is_long_double \
+ && (mode_flags & PRINTF_LDBL_USES_FLOAT128) != 0) \
+ { \
+ INFO.is_binary128 = 1; \
+ the_arg.pa_float128 = va_arg (ap, _Float128); \
+ } \
+ else \
+ { \
+ PARSE_FLOAT_VA_ARG (INFO); \
+ } \
+ } \
+ while (0)
+#else
+# define PARSE_FLOAT_VA_ARG_EXTENDED(INFO) \
+ PARSE_FLOAT_VA_ARG (INFO);
+#endif
+
+#define PARSE_FLOAT_VA_ARG(INFO) \
+ do \
+ { \
+ INFO.is_binary128 = 0; \
+ if (is_long_double) \
+ the_arg.pa_long_double = va_arg (ap, long double); \
+ else \
+ the_arg.pa_double = va_arg (ap, double); \
+ } \
+ while (0)
+
+#if __HAVE_FLOAT128_UNLIKE_LDBL
+# define SETUP_FLOAT128_INFO(INFO) \
+ do \
+ { \
+ if ((mode_flags & PRINTF_LDBL_USES_FLOAT128) != 0) \
+ INFO.is_binary128 = is_long_double; \
+ else \
+ INFO.is_binary128 = 0; \
+ } \
+ while (0)
+#else
+# define SETUP_FLOAT128_INFO(INFO) \
+ do \
+ { \
+ INFO.is_binary128 = 0; \
+ } \
+ while (0)
+#endif
+
+#define done_add(val) \
+ do { \
+ unsigned int _val = val; \
+ assert ((unsigned int) done < (unsigned int) INT_MAX); \
+ if (__glibc_unlikely (INT_MAX - done < _val)) \
+ { \
+ done = -1; \
+ __set_errno (EOVERFLOW); \
+ goto all_done; \
+ } \
+ done += _val; \
+ } while (0)
+
+#ifndef COMPILE_WPRINTF
+# define vfprintf __vfprintf_internal
+# define CHAR_T char
+# define UCHAR_T unsigned char
+# define INT_T int
+typedef const char *THOUSANDS_SEP_T;
+# define L_(Str) Str
+# define ISDIGIT(Ch) ((unsigned int) ((Ch) - '0') < 10)
+# define STR_LEN(Str) strlen (Str)
+
+# define PUT(F, S, N) _IO_sputn ((F), (S), (N))
+# define PAD(Padchar) \
+ do { \
+ if (width > 0) \
+ { \
+ ssize_t written = _IO_padn (s, (Padchar), width); \
+ if (__glibc_unlikely (written != width)) \
+ { \
+ done = -1; \
+ goto all_done; \
+ } \
+ done_add (written); \
+ } \
+ } while (0)
+# define PUTC(C, F) _IO_putc_unlocked (C, F)
+# define ORIENT if (_IO_vtable_offset (s) == 0 && _IO_fwide (s, -1) != -1)\
+ return -1
+#else
+# define vfprintf __vfwprintf_internal
+# define CHAR_T wchar_t
+/* This is a hack!!! There should be a type uwchar_t. */
+# define UCHAR_T unsigned int /* uwchar_t */
+# define INT_T wint_t
+typedef wchar_t THOUSANDS_SEP_T;
+# define L_(Str) L##Str
+# define ISDIGIT(Ch) ((unsigned int) ((Ch) - L'0') < 10)
+# define STR_LEN(Str) __wcslen (Str)
+
+# include <_itowa.h>
+
+# define PUT(F, S, N) _IO_sputn ((F), (S), (N))
+# define PAD(Padchar) \
+ do { \
+ if (width > 0) \
+ { \
+ ssize_t written = _IO_wpadn (s, (Padchar), width); \
+ if (__glibc_unlikely (written != width)) \
+ { \
+ done = -1; \
+ goto all_done; \
+ } \
+ done_add (written); \
+ } \
+ } while (0)
+# define PUTC(C, F) _IO_putwc_unlocked (C, F)
+# define ORIENT if (_IO_fwide (s, 1) != 1) return -1
+
+# undef _itoa
+# define _itoa(Val, Buf, Base, Case) _itowa (Val, Buf, Base, Case)
+# define _itoa_word(Val, Buf, Base, Case) _itowa_word (Val, Buf, Base, Case)
+# undef EOF
+# define EOF WEOF
+#endif
+
+#include "_i18n_number.h"
+
+/* Include the shared code for parsing the format string. */
+#include "printf-parse.h"
+
+
+#define outchar(Ch) \
+ do \
+ { \
+ const INT_T outc = (Ch); \
+ if (PUTC (outc, s) == EOF || done == INT_MAX) \
+ { \
+ done = -1; \
+ goto all_done; \
+ } \
+ ++done; \
+ } \
+ while (0)
+
+#define outstring(String, Len) \
+ do \
+ { \
+ assert ((size_t) done <= (size_t) INT_MAX); \
+ if ((size_t) PUT (s, (String), (Len)) != (size_t) (Len)) \
+ { \
+ done = -1; \
+ goto all_done; \
+ } \
+ if (__glibc_unlikely (INT_MAX - done < (Len))) \
+ { \
+ done = -1; \
+ __set_errno (EOVERFLOW); \
+ goto all_done; \
+ } \
+ done += (Len); \
+ } \
+ while (0)
+
+/* For handling long_double and longlong we use the same flag. If
+ `long' and `long long' are effectively the same type define it to
+ zero. */
+#if LONG_MAX == LONG_LONG_MAX
+# define is_longlong 0
+#else
+# define is_longlong is_long_double
+#endif
+
+/* If `long' and `int' is effectively the same type we don't have to
+ handle `long separately. */
+#if INT_MAX == LONG_MAX
+# define is_long_num 0
+#else
+# define is_long_num is_long
+#endif
+
+
+/* Global constants. */
+static const CHAR_T null[] = L_("(null)");
+
+/* Size of the work_buffer variable (in characters, not bytes. */
+enum { WORK_BUFFER_SIZE = 1000 / sizeof (CHAR_T) };
+
+/* This table maps a character into a number representing a class. In
+ each step there is a destination label for each class. */
+static const uint8_t jump_table[] =
+ {
+ /* ' ' */ 1, 0, 0, /* '#' */ 4,
+ 0, /* '%' */ 14, 0, /* '\''*/ 6,
+ 0, 0, /* '*' */ 7, /* '+' */ 2,
+ 0, /* '-' */ 3, /* '.' */ 9, 0,
+ /* '0' */ 5, /* '1' */ 8, /* '2' */ 8, /* '3' */ 8,
+ /* '4' */ 8, /* '5' */ 8, /* '6' */ 8, /* '7' */ 8,
+ /* '8' */ 8, /* '9' */ 8, 0, 0,
+ 0, 0, 0, 0,
+ 0, /* 'A' */ 26, 0, /* 'C' */ 25,
+ 0, /* 'E' */ 19, /* F */ 19, /* 'G' */ 19,
+ 0, /* 'I' */ 29, 0, 0,
+ /* 'L' */ 12, 0, 0, 0,
+ 0, 0, 0, /* 'S' */ 21,
+ 0, 0, 0, 0,
+ /* 'X' */ 18, 0, /* 'Z' */ 13, 0,
+ 0, 0, 0, 0,
+ 0, /* 'a' */ 26, 0, /* 'c' */ 20,
+ /* 'd' */ 15, /* 'e' */ 19, /* 'f' */ 19, /* 'g' */ 19,
+ /* 'h' */ 10, /* 'i' */ 15, /* 'j' */ 28, 0,
+ /* 'l' */ 11, /* 'm' */ 24, /* 'n' */ 23, /* 'o' */ 17,
+ /* 'p' */ 22, /* 'q' */ 12, 0, /* 's' */ 21,
+ /* 't' */ 27, /* 'u' */ 16, 0, 0,
+ /* 'x' */ 18, 0, /* 'z' */ 13
+ };
+
+#define NOT_IN_JUMP_RANGE(Ch) ((Ch) < L_(' ') || (Ch) > L_('z'))
+#define CHAR_CLASS(Ch) (jump_table[(INT_T) (Ch) - L_(' ')])
+#define LABEL(Name) do_##Name
+#ifdef SHARED
+ /* 'int' is enough and it saves some space on 64 bit systems. */
+# define JUMP_TABLE_TYPE const int
+# define JUMP_TABLE_BASE_LABEL do_form_unknown
+# define REF(Name) &&do_##Name - &&JUMP_TABLE_BASE_LABEL
+# define JUMP(ChExpr, table) \
+ do \
+ { \
+ int offset; \
+ void *ptr; \
+ spec = (ChExpr); \
+ offset = NOT_IN_JUMP_RANGE (spec) ? REF (form_unknown) \
+ : table[CHAR_CLASS (spec)]; \
+ ptr = &&JUMP_TABLE_BASE_LABEL + offset; \
+ goto *ptr; \
+ } \
+ while (0)
+#else
+# define JUMP_TABLE_TYPE const void *const
+# define REF(Name) &&do_##Name
+# define JUMP(ChExpr, table) \
+ do \
+ { \
+ const void *ptr; \
+ spec = (ChExpr); \
+ ptr = NOT_IN_JUMP_RANGE (spec) ? REF (form_unknown) \
+ : table[CHAR_CLASS (spec)]; \
+ goto *ptr; \
+ } \
+ while (0)
+#endif
+
+#define STEP0_3_TABLE \
+ /* Step 0: at the beginning. */ \
+ static JUMP_TABLE_TYPE step0_jumps[30] = \
+ { \
+ REF (form_unknown), \
+ REF (flag_space), /* for ' ' */ \
+ REF (flag_plus), /* for '+' */ \
+ REF (flag_minus), /* for '-' */ \
+ REF (flag_hash), /* for '<hash>' */ \
+ REF (flag_zero), /* for '0' */ \
+ REF (flag_quote), /* for '\'' */ \
+ REF (width_asterics), /* for '*' */ \
+ REF (width), /* for '1'...'9' */ \
+ REF (precision), /* for '.' */ \
+ REF (mod_half), /* for 'h' */ \
+ REF (mod_long), /* for 'l' */ \
+ REF (mod_longlong), /* for 'L', 'q' */ \
+ REF (mod_size_t), /* for 'z', 'Z' */ \
+ REF (form_percent), /* for '%' */ \
+ REF (form_integer), /* for 'd', 'i' */ \
+ REF (form_unsigned), /* for 'u' */ \
+ REF (form_octal), /* for 'o' */ \
+ REF (form_hexa), /* for 'X', 'x' */ \
+ REF (form_float), /* for 'E', 'e', 'F', 'f', 'G', 'g' */ \
+ REF (form_character), /* for 'c' */ \
+ REF (form_string), /* for 's', 'S' */ \
+ REF (form_pointer), /* for 'p' */ \
+ REF (form_number), /* for 'n' */ \
+ REF (form_strerror), /* for 'm' */ \
+ REF (form_wcharacter), /* for 'C' */ \
+ REF (form_floathex), /* for 'A', 'a' */ \
+ REF (mod_ptrdiff_t), /* for 't' */ \
+ REF (mod_intmax_t), /* for 'j' */ \
+ REF (flag_i18n), /* for 'I' */ \
+ }; \
+ /* Step 1: after processing width. */ \
+ static JUMP_TABLE_TYPE step1_jumps[30] = \
+ { \
+ REF (form_unknown), \
+ REF (form_unknown), /* for ' ' */ \
+ REF (form_unknown), /* for '+' */ \
+ REF (form_unknown), /* for '-' */ \
+ REF (form_unknown), /* for '<hash>' */ \
+ REF (form_unknown), /* for '0' */ \
+ REF (form_unknown), /* for '\'' */ \
+ REF (form_unknown), /* for '*' */ \
+ REF (form_unknown), /* for '1'...'9' */ \
+ REF (precision), /* for '.' */ \
+ REF (mod_half), /* for 'h' */ \
+ REF (mod_long), /* for 'l' */ \
+ REF (mod_longlong), /* for 'L', 'q' */ \
+ REF (mod_size_t), /* for 'z', 'Z' */ \
+ REF (form_percent), /* for '%' */ \
+ REF (form_integer), /* for 'd', 'i' */ \
+ REF (form_unsigned), /* for 'u' */ \
+ REF (form_octal), /* for 'o' */ \
+ REF (form_hexa), /* for 'X', 'x' */ \
+ REF (form_float), /* for 'E', 'e', 'F', 'f', 'G', 'g' */ \
+ REF (form_character), /* for 'c' */ \
+ REF (form_string), /* for 's', 'S' */ \
+ REF (form_pointer), /* for 'p' */ \
+ REF (form_number), /* for 'n' */ \
+ REF (form_strerror), /* for 'm' */ \
+ REF (form_wcharacter), /* for 'C' */ \
+ REF (form_floathex), /* for 'A', 'a' */ \
+ REF (mod_ptrdiff_t), /* for 't' */ \
+ REF (mod_intmax_t), /* for 'j' */ \
+ REF (form_unknown) /* for 'I' */ \
+ }; \
+ /* Step 2: after processing precision. */ \
+ static JUMP_TABLE_TYPE step2_jumps[30] = \
+ { \
+ REF (form_unknown), \
+ REF (form_unknown), /* for ' ' */ \
+ REF (form_unknown), /* for '+' */ \
+ REF (form_unknown), /* for '-' */ \
+ REF (form_unknown), /* for '<hash>' */ \
+ REF (form_unknown), /* for '0' */ \
+ REF (form_unknown), /* for '\'' */ \
+ REF (form_unknown), /* for '*' */ \
+ REF (form_unknown), /* for '1'...'9' */ \
+ REF (form_unknown), /* for '.' */ \
+ REF (mod_half), /* for 'h' */ \
+ REF (mod_long), /* for 'l' */ \
+ REF (mod_longlong), /* for 'L', 'q' */ \
+ REF (mod_size_t), /* for 'z', 'Z' */ \
+ REF (form_percent), /* for '%' */ \
+ REF (form_integer), /* for 'd', 'i' */ \
+ REF (form_unsigned), /* for 'u' */ \
+ REF (form_octal), /* for 'o' */ \
+ REF (form_hexa), /* for 'X', 'x' */ \
+ REF (form_float), /* for 'E', 'e', 'F', 'f', 'G', 'g' */ \
+ REF (form_character), /* for 'c' */ \
+ REF (form_string), /* for 's', 'S' */ \
+ REF (form_pointer), /* for 'p' */ \
+ REF (form_number), /* for 'n' */ \
+ REF (form_strerror), /* for 'm' */ \
+ REF (form_wcharacter), /* for 'C' */ \
+ REF (form_floathex), /* for 'A', 'a' */ \
+ REF (mod_ptrdiff_t), /* for 't' */ \
+ REF (mod_intmax_t), /* for 'j' */ \
+ REF (form_unknown) /* for 'I' */ \
+ }; \
+ /* Step 3a: after processing first 'h' modifier. */ \
+ static JUMP_TABLE_TYPE step3a_jumps[30] = \
+ { \
+ REF (form_unknown), \
+ REF (form_unknown), /* for ' ' */ \
+ REF (form_unknown), /* for '+' */ \
+ REF (form_unknown), /* for '-' */ \
+ REF (form_unknown), /* for '<hash>' */ \
+ REF (form_unknown), /* for '0' */ \
+ REF (form_unknown), /* for '\'' */ \
+ REF (form_unknown), /* for '*' */ \
+ REF (form_unknown), /* for '1'...'9' */ \
+ REF (form_unknown), /* for '.' */ \
+ REF (mod_halfhalf), /* for 'h' */ \
+ REF (form_unknown), /* for 'l' */ \
+ REF (form_unknown), /* for 'L', 'q' */ \
+ REF (form_unknown), /* for 'z', 'Z' */ \
+ REF (form_percent), /* for '%' */ \
+ REF (form_integer), /* for 'd', 'i' */ \
+ REF (form_unsigned), /* for 'u' */ \
+ REF (form_octal), /* for 'o' */ \
+ REF (form_hexa), /* for 'X', 'x' */ \
+ REF (form_unknown), /* for 'E', 'e', 'F', 'f', 'G', 'g' */ \
+ REF (form_unknown), /* for 'c' */ \
+ REF (form_unknown), /* for 's', 'S' */ \
+ REF (form_unknown), /* for 'p' */ \
+ REF (form_number), /* for 'n' */ \
+ REF (form_unknown), /* for 'm' */ \
+ REF (form_unknown), /* for 'C' */ \
+ REF (form_unknown), /* for 'A', 'a' */ \
+ REF (form_unknown), /* for 't' */ \
+ REF (form_unknown), /* for 'j' */ \
+ REF (form_unknown) /* for 'I' */ \
+ }; \
+ /* Step 3b: after processing first 'l' modifier. */ \
+ static JUMP_TABLE_TYPE step3b_jumps[30] = \
+ { \
+ REF (form_unknown), \
+ REF (form_unknown), /* for ' ' */ \
+ REF (form_unknown), /* for '+' */ \
+ REF (form_unknown), /* for '-' */ \
+ REF (form_unknown), /* for '<hash>' */ \
+ REF (form_unknown), /* for '0' */ \
+ REF (form_unknown), /* for '\'' */ \
+ REF (form_unknown), /* for '*' */ \
+ REF (form_unknown), /* for '1'...'9' */ \
+ REF (form_unknown), /* for '.' */ \
+ REF (form_unknown), /* for 'h' */ \
+ REF (mod_longlong), /* for 'l' */ \
+ REF (form_unknown), /* for 'L', 'q' */ \
+ REF (form_unknown), /* for 'z', 'Z' */ \
+ REF (form_percent), /* for '%' */ \
+ REF (form_integer), /* for 'd', 'i' */ \
+ REF (form_unsigned), /* for 'u' */ \
+ REF (form_octal), /* for 'o' */ \
+ REF (form_hexa), /* for 'X', 'x' */ \
+ REF (form_float), /* for 'E', 'e', 'F', 'f', 'G', 'g' */ \
+ REF (form_character), /* for 'c' */ \
+ REF (form_string), /* for 's', 'S' */ \
+ REF (form_pointer), /* for 'p' */ \
+ REF (form_number), /* for 'n' */ \
+ REF (form_strerror), /* for 'm' */ \
+ REF (form_wcharacter), /* for 'C' */ \
+ REF (form_floathex), /* for 'A', 'a' */ \
+ REF (form_unknown), /* for 't' */ \
+ REF (form_unknown), /* for 'j' */ \
+ REF (form_unknown) /* for 'I' */ \
+ }
+
+#define STEP4_TABLE \
+ /* Step 4: processing format specifier. */ \
+ static JUMP_TABLE_TYPE step4_jumps[30] = \
+ { \
+ REF (form_unknown), \
+ REF (form_unknown), /* for ' ' */ \
+ REF (form_unknown), /* for '+' */ \
+ REF (form_unknown), /* for '-' */ \
+ REF (form_unknown), /* for '<hash>' */ \
+ REF (form_unknown), /* for '0' */ \
+ REF (form_unknown), /* for '\'' */ \
+ REF (form_unknown), /* for '*' */ \
+ REF (form_unknown), /* for '1'...'9' */ \
+ REF (form_unknown), /* for '.' */ \
+ REF (form_unknown), /* for 'h' */ \
+ REF (form_unknown), /* for 'l' */ \
+ REF (form_unknown), /* for 'L', 'q' */ \
+ REF (form_unknown), /* for 'z', 'Z' */ \
+ REF (form_percent), /* for '%' */ \
+ REF (form_integer), /* for 'd', 'i' */ \
+ REF (form_unsigned), /* for 'u' */ \
+ REF (form_octal), /* for 'o' */ \
+ REF (form_hexa), /* for 'X', 'x' */ \
+ REF (form_float), /* for 'E', 'e', 'F', 'f', 'G', 'g' */ \
+ REF (form_character), /* for 'c' */ \
+ REF (form_string), /* for 's', 'S' */ \
+ REF (form_pointer), /* for 'p' */ \
+ REF (form_number), /* for 'n' */ \
+ REF (form_strerror), /* for 'm' */ \
+ REF (form_wcharacter), /* for 'C' */ \
+ REF (form_floathex), /* for 'A', 'a' */ \
+ REF (form_unknown), /* for 't' */ \
+ REF (form_unknown), /* for 'j' */ \
+ REF (form_unknown) /* for 'I' */ \
+ }
+
+
+#define process_arg(fspec) \
+ /* Start real work. We know about all flags and modifiers and \
+ now process the wanted format specifier. */ \
+ LABEL (form_percent): \
+ /* Write a literal "%". */ \
+ outchar (L_('%')); \
+ break; \
+ \
+ LABEL (form_integer): \
+ /* Signed decimal integer. */ \
+ base = 10; \
+ \
+ if (is_longlong) \
+ { \
+ long long int signed_number; \
+ \
+ if (fspec == NULL) \
+ signed_number = va_arg (ap, long long int); \
+ else \
+ signed_number = args_value[fspec->data_arg].pa_long_long_int; \
+ \
+ is_negative = signed_number < 0; \
+ number.longlong = is_negative ? (- signed_number) : signed_number; \
+ \
+ goto LABEL (longlong_number); \
+ } \
+ else \
+ { \
+ long int signed_number; \
+ \
+ if (fspec == NULL) \
+ { \
+ if (is_long_num) \
+ signed_number = va_arg (ap, long int); \
+ else if (is_char) \
+ signed_number = (signed char) va_arg (ap, unsigned int); \
+ else if (!is_short) \
+ signed_number = va_arg (ap, int); \
+ else \
+ signed_number = (short int) va_arg (ap, unsigned int); \
+ } \
+ else \
+ if (is_long_num) \
+ signed_number = args_value[fspec->data_arg].pa_long_int; \
+ else if (is_char) \
+ signed_number = (signed char) \
+ args_value[fspec->data_arg].pa_u_int; \
+ else if (!is_short) \
+ signed_number = args_value[fspec->data_arg].pa_int; \
+ else \
+ signed_number = (short int) \
+ args_value[fspec->data_arg].pa_u_int; \
+ \
+ is_negative = signed_number < 0; \
+ number.word = is_negative ? (- signed_number) : signed_number; \
+ \
+ goto LABEL (number); \
+ } \
+ /* NOTREACHED */ \
+ \
+ LABEL (form_unsigned): \
+ /* Unsigned decimal integer. */ \
+ base = 10; \
+ goto LABEL (unsigned_number); \
+ /* NOTREACHED */ \
+ \
+ LABEL (form_octal): \
+ /* Unsigned octal integer. */ \
+ base = 8; \
+ goto LABEL (unsigned_number); \
+ /* NOTREACHED */ \
+ \
+ LABEL (form_hexa): \
+ /* Unsigned hexadecimal integer. */ \
+ base = 16; \
+ \
+ LABEL (unsigned_number): /* Unsigned number of base BASE. */ \
+ \
+ /* ISO specifies the `+' and ` ' flags only for signed \
+ conversions. */ \
+ is_negative = 0; \
+ showsign = 0; \
+ space = 0; \
+ \
+ if (is_longlong) \
+ { \
+ if (fspec == NULL) \
+ number.longlong = va_arg (ap, unsigned long long int); \
+ else \
+ number.longlong = args_value[fspec->data_arg].pa_u_long_long_int; \
+ \
+ LABEL (longlong_number): \
+ if (prec < 0) \
+ /* Supply a default precision if none was given. */ \
+ prec = 1; \
+ else \
+ /* We have to take care for the '0' flag. If a precision \
+ is given it must be ignored. */ \
+ pad = L_(' '); \
+ \
+ /* If the precision is 0 and the number is 0 nothing has to \
+ be written for the number, except for the 'o' format in \
+ alternate form. */ \
+ if (prec == 0 && number.longlong == 0) \
+ { \
+ string = workend; \
+ if (base == 8 && alt) \
+ *--string = L_('0'); \
+ } \
+ else \
+ { \
+ /* Put the number in WORK. */ \
+ string = _itoa (number.longlong, workend, base, \
+ spec == L_('X')); \
+ if (group && grouping) \
+ string = group_number (work_buffer, string, workend, \
+ grouping, thousands_sep); \
+ if (use_outdigits && base == 10) \
+ string = _i18n_number_rewrite (string, workend, workend); \
+ } \
+ /* Simplify further test for num != 0. */ \
+ number.word = number.longlong != 0; \
+ } \
+ else \
+ { \
+ if (fspec == NULL) \
+ { \
+ if (is_long_num) \
+ number.word = va_arg (ap, unsigned long int); \
+ else if (is_char) \
+ number.word = (unsigned char) va_arg (ap, unsigned int); \
+ else if (!is_short) \
+ number.word = va_arg (ap, unsigned int); \
+ else \
+ number.word = (unsigned short int) va_arg (ap, unsigned int); \
+ } \
+ else \
+ if (is_long_num) \
+ number.word = args_value[fspec->data_arg].pa_u_long_int; \
+ else if (is_char) \
+ number.word = (unsigned char) \
+ args_value[fspec->data_arg].pa_u_int; \
+ else if (!is_short) \
+ number.word = args_value[fspec->data_arg].pa_u_int; \
+ else \
+ number.word = (unsigned short int) \
+ args_value[fspec->data_arg].pa_u_int; \
+ \
+ LABEL (number): \
+ if (prec < 0) \
+ /* Supply a default precision if none was given. */ \
+ prec = 1; \
+ else \
+ /* We have to take care for the '0' flag. If a precision \
+ is given it must be ignored. */ \
+ pad = L_(' '); \
+ \
+ /* If the precision is 0 and the number is 0 nothing has to \
+ be written for the number, except for the 'o' format in \
+ alternate form. */ \
+ if (prec == 0 && number.word == 0) \
+ { \
+ string = workend; \
+ if (base == 8 && alt) \
+ *--string = L_('0'); \
+ } \
+ else \
+ { \
+ /* Put the number in WORK. */ \
+ string = _itoa_word (number.word, workend, base, \
+ spec == L_('X')); \
+ if (group && grouping) \
+ string = group_number (work_buffer, string, workend, \
+ grouping, thousands_sep); \
+ if (use_outdigits && base == 10) \
+ string = _i18n_number_rewrite (string, workend, workend); \
+ } \
+ } \
+ \
+ if (prec <= workend - string && number.word != 0 && alt && base == 8) \
+ /* Add octal marker. */ \
+ *--string = L_('0'); \
+ \
+ prec = MAX (0, prec - (workend - string)); \
+ \
+ if (!left) \
+ { \
+ width -= workend - string + prec; \
+ \
+ if (number.word != 0 && alt && base == 16) \
+ /* Account for 0X hex marker. */ \
+ width -= 2; \
+ \
+ if (is_negative || showsign || space) \
+ --width; \
+ \
+ if (pad == L_(' ')) \
+ { \
+ PAD (L_(' ')); \
+ width = 0; \
+ } \
+ \
+ if (is_negative) \
+ outchar (L_('-')); \
+ else if (showsign) \
+ outchar (L_('+')); \
+ else if (space) \
+ outchar (L_(' ')); \
+ \
+ if (number.word != 0 && alt && base == 16) \
+ { \
+ outchar (L_('0')); \
+ outchar (spec); \
+ } \
+ \
+ width += prec; \
+ PAD (L_('0')); \
+ \
+ outstring (string, workend - string); \
+ \
+ break; \
+ } \
+ else \
+ { \
+ if (is_negative) \
+ { \
+ outchar (L_('-')); \
+ --width; \
+ } \
+ else if (showsign) \
+ { \
+ outchar (L_('+')); \
+ --width; \
+ } \
+ else if (space) \
+ { \
+ outchar (L_(' ')); \
+ --width; \
+ } \
+ \
+ if (number.word != 0 && alt && base == 16) \
+ { \
+ outchar (L_('0')); \
+ outchar (spec); \
+ width -= 2; \
+ } \
+ \
+ width -= workend - string + prec; \
+ \
+ if (prec > 0) \
+ { \
+ int temp = width; \
+ width = prec; \
+ PAD (L_('0')); \
+ width = temp; \
+ } \
+ \
+ outstring (string, workend - string); \
+ \
+ PAD (L_(' ')); \
+ break; \
+ } \
+ \
+ LABEL (form_float): \
+ { \
+ /* Floating-point number. This is handled by printf_fp.c. */ \
+ const void *ptr; \
+ int function_done; \
+ \
+ if (fspec == NULL) \
+ { \
+ if (__glibc_unlikely ((mode_flags & PRINTF_LDBL_IS_DBL) != 0)) \
+ is_long_double = 0; \
+ \
+ struct printf_info info = { .prec = prec, \
+ .width = width, \
+ .spec = spec, \
+ .is_long_double = is_long_double, \
+ .is_short = is_short, \
+ .is_long = is_long, \
+ .alt = alt, \
+ .space = space, \
+ .left = left, \
+ .showsign = showsign, \
+ .group = group, \
+ .pad = pad, \
+ .extra = 0, \
+ .i18n = use_outdigits, \
+ .wide = sizeof (CHAR_T) != 1, \
+ .is_binary128 = 0}; \
+ \
+ PARSE_FLOAT_VA_ARG_EXTENDED (info); \
+ ptr = (const void *) &the_arg; \
+ \
+ function_done = __printf_fp (s, &info, &ptr); \
+ } \
+ else \
+ { \
+ ptr = (const void *) &args_value[fspec->data_arg]; \
+ if (__glibc_unlikely ((mode_flags & PRINTF_LDBL_IS_DBL) != 0)) \
+ { \
+ fspec->data_arg_type = PA_DOUBLE; \
+ fspec->info.is_long_double = 0; \
+ } \
+ SETUP_FLOAT128_INFO (fspec->info); \
+ \
+ function_done = __printf_fp (s, &fspec->info, &ptr); \
+ } \
+ \
+ if (function_done < 0) \
+ { \
+ /* Error in print handler; up to handler to set errno. */ \
+ done = -1; \
+ goto all_done; \
+ } \
+ \
+ done_add (function_done); \
+ } \
+ break; \
+ \
+ LABEL (form_floathex): \
+ { \
+ /* Floating point number printed as hexadecimal number. */ \
+ const void *ptr; \
+ int function_done; \
+ \
+ if (fspec == NULL) \
+ { \
+ if (__glibc_unlikely ((mode_flags & PRINTF_LDBL_IS_DBL) != 0)) \
+ is_long_double = 0; \
+ \
+ struct printf_info info = { .prec = prec, \
+ .width = width, \
+ .spec = spec, \
+ .is_long_double = is_long_double, \
+ .is_short = is_short, \
+ .is_long = is_long, \
+ .alt = alt, \
+ .space = space, \
+ .left = left, \
+ .showsign = showsign, \
+ .group = group, \
+ .pad = pad, \
+ .extra = 0, \
+ .wide = sizeof (CHAR_T) != 1, \
+ .is_binary128 = 0}; \
+ \
+ PARSE_FLOAT_VA_ARG_EXTENDED (info); \
+ ptr = (const void *) &the_arg; \
+ \
+ function_done = __printf_fphex (s, &info, &ptr); \
+ } \
+ else \
+ { \
+ ptr = (const void *) &args_value[fspec->data_arg]; \
+ if (__glibc_unlikely ((mode_flags & PRINTF_LDBL_IS_DBL) != 0)) \
+ fspec->info.is_long_double = 0; \
+ SETUP_FLOAT128_INFO (fspec->info); \
+ \
+ function_done = __printf_fphex (s, &fspec->info, &ptr); \
+ } \
+ \
+ if (function_done < 0) \
+ { \
+ /* Error in print handler; up to handler to set errno. */ \
+ done = -1; \
+ goto all_done; \
+ } \
+ \
+ done_add (function_done); \
+ } \
+ break; \
+ \
+ LABEL (form_pointer): \
+ /* Generic pointer. */ \
+ { \
+ const void *ptr; \
+ if (fspec == NULL) \
+ ptr = va_arg (ap, void *); \
+ else \
+ ptr = args_value[fspec->data_arg].pa_pointer; \
+ if (ptr != NULL) \
+ { \
+ /* If the pointer is not NULL, write it as a %#x spec. */ \
+ base = 16; \
+ number.word = (unsigned long int) ptr; \
+ is_negative = 0; \
+ alt = 1; \
+ group = 0; \
+ spec = L_('x'); \
+ goto LABEL (number); \
+ } \
+ else \
+ { \
+ /* Write "(nil)" for a nil pointer. */ \
+ string = (CHAR_T *) L_("(nil)"); \
+ /* Make sure the full string "(nil)" is printed. */ \
+ if (prec < 5) \
+ prec = 5; \
+ /* This is a wide string iff compiling wprintf. */ \
+ is_long = sizeof (CHAR_T) > 1; \
+ goto LABEL (print_string); \
+ } \
+ } \
+ /* NOTREACHED */ \
+ \
+ LABEL (form_number): \
+ if ((mode_flags & PRINTF_FORTIFY) != 0) \
+ { \
+ if (! readonly_format) \
+ { \
+ extern int __readonly_area (const void *, size_t) \
+ attribute_hidden; \
+ readonly_format \
+ = __readonly_area (format, ((STR_LEN (format) + 1) \
+ * sizeof (CHAR_T))); \
+ } \
+ if (readonly_format < 0) \
+ __libc_fatal ("*** %n in writable segment detected ***\n"); \
+ } \
+ /* Answer the count of characters written. */ \
+ if (fspec == NULL) \
+ { \
+ if (is_longlong) \
+ *(long long int *) va_arg (ap, void *) = done; \
+ else if (is_long_num) \
+ *(long int *) va_arg (ap, void *) = done; \
+ else if (is_char) \
+ *(char *) va_arg (ap, void *) = done; \
+ else if (!is_short) \
+ *(int *) va_arg (ap, void *) = done; \
+ else \
+ *(short int *) va_arg (ap, void *) = done; \
+ } \
+ else \
+ if (is_longlong) \
+ *(long long int *) args_value[fspec->data_arg].pa_pointer = done; \
+ else if (is_long_num) \
+ *(long int *) args_value[fspec->data_arg].pa_pointer = done; \
+ else if (is_char) \
+ *(char *) args_value[fspec->data_arg].pa_pointer = done; \
+ else if (!is_short) \
+ *(int *) args_value[fspec->data_arg].pa_pointer = done; \
+ else \
+ *(short int *) args_value[fspec->data_arg].pa_pointer = done; \
+ break; \
+ \
+ LABEL (form_strerror): \
+ /* Print description of error ERRNO. */ \
+ string = \
+ (CHAR_T *) __strerror_r (save_errno, (char *) work_buffer, \
+ WORK_BUFFER_SIZE * sizeof (CHAR_T)); \
+ is_long = 0; /* This is no wide-char string. */ \
+ goto LABEL (print_string)
+
+#ifdef COMPILE_WPRINTF
+# define process_string_arg(fspec) \
+ LABEL (form_character): \
+ /* Character. */ \
+ if (is_long) \
+ goto LABEL (form_wcharacter); \
+ --width; /* Account for the character itself. */ \
+ if (!left) \
+ PAD (L' '); \
+ if (fspec == NULL) \
+ outchar (__btowc ((unsigned char) va_arg (ap, int))); /* Promoted. */ \
+ else \
+ outchar (__btowc ((unsigned char) \
+ args_value[fspec->data_arg].pa_int)); \
+ if (left) \
+ PAD (L' '); \
+ break; \
+ \
+ LABEL (form_wcharacter): \
+ { \
+ /* Wide character. */ \
+ --width; \
+ if (!left) \
+ PAD (L' '); \
+ if (fspec == NULL) \
+ outchar (va_arg (ap, wchar_t)); \
+ else \
+ outchar (args_value[fspec->data_arg].pa_wchar); \
+ if (left) \
+ PAD (L' '); \
+ } \
+ break; \
+ \
+ LABEL (form_string): \
+ { \
+ size_t len; \
+ int string_malloced; \
+ \
+ /* The string argument could in fact be `char *' or `wchar_t *'. \
+ But this should not make a difference here. */ \
+ if (fspec == NULL) \
+ string = (CHAR_T *) va_arg (ap, const wchar_t *); \
+ else \
+ string = (CHAR_T *) args_value[fspec->data_arg].pa_wstring; \
+ \
+ /* Entry point for printing other strings. */ \
+ LABEL (print_string): \
+ \
+ string_malloced = 0; \
+ if (string == NULL) \
+ { \
+ /* Write "(null)" if there's space. */ \
+ if (prec == -1 || prec >= (int) array_length (null) - 1) \
+ { \
+ string = (CHAR_T *) null; \
+ len = array_length (null) - 1; \
+ } \
+ else \
+ { \
+ string = (CHAR_T *) L""; \
+ len = 0; \
+ } \
+ } \
+ else if (!is_long && spec != L_('S')) \
+ { \
+ /* This is complicated. We have to transform the multibyte \
+ string into a wide character string. */ \
+ const char *mbs = (const char *) string; \
+ mbstate_t mbstate; \
+ \
+ len = prec != -1 ? __strnlen (mbs, (size_t) prec) : strlen (mbs); \
+ \
+ /* Allocate dynamically an array which definitely is long \
+ enough for the wide character version. Each byte in the \
+ multi-byte string can produce at most one wide character. */ \
+ if (__glibc_unlikely (len > SIZE_MAX / sizeof (wchar_t))) \
+ { \
+ __set_errno (EOVERFLOW); \
+ done = -1; \
+ goto all_done; \
+ } \
+ else if (__libc_use_alloca (len * sizeof (wchar_t))) \
+ string = (CHAR_T *) alloca (len * sizeof (wchar_t)); \
+ else if ((string = (CHAR_T *) malloc (len * sizeof (wchar_t))) \
+ == NULL) \
+ { \
+ done = -1; \
+ goto all_done; \
+ } \
+ else \
+ string_malloced = 1; \
+ \
+ memset (&mbstate, '\0', sizeof (mbstate_t)); \
+ len = __mbsrtowcs (string, &mbs, len, &mbstate); \
+ if (len == (size_t) -1) \
+ { \
+ /* Illegal multibyte character. */ \
+ done = -1; \
+ goto all_done; \
+ } \
+ } \
+ else \
+ { \
+ if (prec != -1) \
+ /* Search for the end of the string, but don't search past \
+ the length specified by the precision. */ \
+ len = __wcsnlen (string, prec); \
+ else \
+ len = __wcslen (string); \
+ } \
+ \
+ if ((width -= len) < 0) \
+ { \
+ outstring (string, len); \
+ break; \
+ } \
+ \
+ if (!left) \
+ PAD (L' '); \
+ outstring (string, len); \
+ if (left) \
+ PAD (L' '); \
+ if (__glibc_unlikely (string_malloced)) \
+ free (string); \
+ } \
+ break;
+#else
+# define process_string_arg(fspec) \
+ LABEL (form_character): \
+ /* Character. */ \
+ if (is_long) \
+ goto LABEL (form_wcharacter); \
+ --width; /* Account for the character itself. */ \
+ if (!left) \
+ PAD (' '); \
+ if (fspec == NULL) \
+ outchar ((unsigned char) va_arg (ap, int)); /* Promoted. */ \
+ else \
+ outchar ((unsigned char) args_value[fspec->data_arg].pa_int); \
+ if (left) \
+ PAD (' '); \
+ break; \
+ \
+ LABEL (form_wcharacter): \
+ { \
+ /* Wide character. */ \
+ char buf[MB_LEN_MAX]; \
+ mbstate_t mbstate; \
+ size_t len; \
+ \
+ memset (&mbstate, '\0', sizeof (mbstate_t)); \
+ len = __wcrtomb (buf, (fspec == NULL ? va_arg (ap, wchar_t) \
+ : args_value[fspec->data_arg].pa_wchar), \
+ &mbstate); \
+ if (len == (size_t) -1) \
+ { \
+ /* Something went wrong during the conversion. Bail out. */ \
+ done = -1; \
+ goto all_done; \
+ } \
+ width -= len; \
+ if (!left) \
+ PAD (' '); \
+ outstring (buf, len); \
+ if (left) \
+ PAD (' '); \
+ } \
+ break; \
+ \
+ LABEL (form_string): \
+ { \
+ size_t len; \
+ int string_malloced; \
+ \
+ /* The string argument could in fact be `char *' or `wchar_t *'. \
+ But this should not make a difference here. */ \
+ if (fspec == NULL) \
+ string = (char *) va_arg (ap, const char *); \
+ else \
+ string = (char *) args_value[fspec->data_arg].pa_string; \
+ \
+ /* Entry point for printing other strings. */ \
+ LABEL (print_string): \
+ \
+ string_malloced = 0; \
+ if (string == NULL) \
+ { \
+ /* Write "(null)" if there's space. */ \
+ if (prec == -1 || prec >= (int) sizeof (null) - 1) \
+ { \
+ string = (char *) null; \
+ len = sizeof (null) - 1; \
+ } \
+ else \
+ { \
+ string = (char *) ""; \
+ len = 0; \
+ } \
+ } \
+ else if (!is_long && spec != L_('S')) \
+ { \
+ if (prec != -1) \
+ /* Search for the end of the string, but don't search past \
+ the length (in bytes) specified by the precision. */ \
+ len = __strnlen (string, prec); \
+ else \
+ len = strlen (string); \
+ } \
+ else \
+ { \
+ const wchar_t *s2 = (const wchar_t *) string; \
+ mbstate_t mbstate; \
+ \
+ memset (&mbstate, '\0', sizeof (mbstate_t)); \
+ \
+ if (prec >= 0) \
+ { \
+ /* The string `s2' might not be NUL terminated. */ \
+ if (__libc_use_alloca (prec)) \
+ string = (char *) alloca (prec); \
+ else if ((string = (char *) malloc (prec)) == NULL) \
+ { \
+ done = -1; \
+ goto all_done; \
+ } \
+ else \
+ string_malloced = 1; \
+ len = __wcsrtombs (string, &s2, prec, &mbstate); \
+ } \
+ else \
+ { \
+ len = __wcsrtombs (NULL, &s2, 0, &mbstate); \
+ if (len != (size_t) -1) \
+ { \
+ assert (__mbsinit (&mbstate)); \
+ s2 = (const wchar_t *) string; \
+ if (__libc_use_alloca (len + 1)) \
+ string = (char *) alloca (len + 1); \
+ else if ((string = (char *) malloc (len + 1)) == NULL) \
+ { \
+ done = -1; \
+ goto all_done; \
+ } \
+ else \
+ string_malloced = 1; \
+ (void) __wcsrtombs (string, &s2, len + 1, &mbstate); \
+ } \
+ } \
+ \
+ if (len == (size_t) -1) \
+ { \
+ /* Illegal wide-character string. */ \
+ done = -1; \
+ goto all_done; \
+ } \
+ } \
+ \
+ if ((width -= len) < 0) \
+ { \
+ outstring (string, len); \
+ break; \
+ } \
+ \
+ if (!left) \
+ PAD (' '); \
+ outstring (string, len); \
+ if (left) \
+ PAD (' '); \
+ if (__glibc_unlikely (string_malloced)) \
+ free (string); \
+ } \
+ break;
+#endif
+
+/* Helper function to provide temporary buffering for unbuffered streams. */
+static int buffered_vfprintf (FILE *stream, const CHAR_T *fmt, va_list,
+ unsigned int)
+ __THROW __attribute__ ((noinline));
+
+/* Handle positional format specifiers. */
+static int printf_positional (FILE *s,
+ const CHAR_T *format, int readonly_format,
+ va_list ap, va_list *ap_savep, int done,
+ int nspecs_done, const UCHAR_T *lead_str_end,
+ CHAR_T *work_buffer, int save_errno,
+ const char *grouping,
+ THOUSANDS_SEP_T thousands_sep,
+ unsigned int mode_flags);
+
+/* Handle unknown format specifier. */
+static int printf_unknown (FILE *, const struct printf_info *,
+ const void *const *) __THROW;
+
+/* Group digits of number string. */
+static CHAR_T *group_number (CHAR_T *, CHAR_T *, CHAR_T *, const char *,
+ THOUSANDS_SEP_T);
+
+/* The function itself. */
+int
+vfprintf (FILE *s, const CHAR_T *format, va_list ap, unsigned int mode_flags)
+{
+ /* The character used as thousands separator. */
+ THOUSANDS_SEP_T thousands_sep = 0;
+
+ /* The string describing the size of groups of digits. */
+ const char *grouping;
+
+ /* Place to accumulate the result. */
+ int done;
+
+ /* Current character in format string. */
+ const UCHAR_T *f;
+
+ /* End of leading constant string. */
+ const UCHAR_T *lead_str_end;
+
+ /* Points to next format specifier. */
+ const UCHAR_T *end_of_spec;
+
+ /* Buffer intermediate results. */
+ CHAR_T work_buffer[WORK_BUFFER_SIZE];
+ CHAR_T *workstart = NULL;
+ CHAR_T *workend;
+
+ /* We have to save the original argument pointer. */
+ va_list ap_save;
+
+ /* Count number of specifiers we already processed. */
+ int nspecs_done;
+
+ /* For the %m format we may need the current `errno' value. */
+ int save_errno = errno;
+
+ /* 1 if format is in read-only memory, -1 if it is in writable memory,
+ 0 if unknown. */
+ int readonly_format = 0;
+
+ /* Orient the stream. */
+#ifdef ORIENT
+ ORIENT;
+#endif
+
+ /* Sanity check of arguments. */
+ ARGCHECK (s, format);
+
+#ifdef ORIENT
+ /* Check for correct orientation. */
+ if (_IO_vtable_offset (s) == 0
+ && _IO_fwide (s, sizeof (CHAR_T) == 1 ? -1 : 1)
+ != (sizeof (CHAR_T) == 1 ? -1 : 1))
+ /* The stream is already oriented otherwise. */
+ return EOF;
+#endif
+
+ if (UNBUFFERED_P (s))
+ /* Use a helper function which will allocate a local temporary buffer
+ for the stream and then call us again. */
+ return buffered_vfprintf (s, format, ap, mode_flags);
+
+ /* Initialize local variables. */
+ done = 0;
+ grouping = (const char *) -1;
+#ifdef __va_copy
+ /* This macro will be available soon in gcc's <stdarg.h>. We need it
+ since on some systems `va_list' is not an integral type. */
+ __va_copy (ap_save, ap);
+#else
+ ap_save = ap;
+#endif
+ nspecs_done = 0;
+
+#ifdef COMPILE_WPRINTF
+ /* Find the first format specifier. */
+ f = lead_str_end = __find_specwc ((const UCHAR_T *) format);
+#else
+ /* Find the first format specifier. */
+ f = lead_str_end = __find_specmb ((const UCHAR_T *) format);
+#endif
+
+ /* Lock stream. */
+ _IO_cleanup_region_start ((void (*) (void *)) &_IO_funlockfile, s);
+ _IO_flockfile (s);
+
+ /* Write the literal text before the first format. */
+ outstring ((const UCHAR_T *) format,
+ lead_str_end - (const UCHAR_T *) format);
+
+ /* If we only have to print a simple string, return now. */
+ if (*f == L_('\0'))
+ goto all_done;
+
+ /* Use the slow path in case any printf handler is registered. */
+ if (__glibc_unlikely (__printf_function_table != NULL
+ || __printf_modifier_table != NULL
+ || __printf_va_arg_table != NULL))
+ goto do_positional;
+
+ /* Process whole format string. */
+ do
+ {
+ STEP0_3_TABLE;
+ STEP4_TABLE;
+
+ union printf_arg *args_value; /* This is not used here but ... */
+ int is_negative; /* Flag for negative number. */
+ union
+ {
+ unsigned long long int longlong;
+ unsigned long int word;
+ } number;
+ int base;
+ union printf_arg the_arg;
+ CHAR_T *string; /* Pointer to argument string. */
+ int alt = 0; /* Alternate format. */
+ int space = 0; /* Use space prefix if no sign is needed. */
+ int left = 0; /* Left-justify output. */
+ int showsign = 0; /* Always begin with plus or minus sign. */
+ int group = 0; /* Print numbers according grouping rules. */
+ int is_long_double = 0; /* Argument is long double/ long long int. */
+ int is_short = 0; /* Argument is short int. */
+ int is_long = 0; /* Argument is long int. */
+ int is_char = 0; /* Argument is promoted (unsigned) char. */
+ int width = 0; /* Width of output; 0 means none specified. */
+ int prec = -1; /* Precision of output; -1 means none specified. */
+ /* This flag is set by the 'I' modifier and selects the use of the
+ `outdigits' as determined by the current locale. */
+ int use_outdigits = 0;
+ UCHAR_T pad = L_(' ');/* Padding character. */
+ CHAR_T spec;
+
+ workstart = NULL;
+ workend = work_buffer + WORK_BUFFER_SIZE;
+
+ /* Get current character in format string. */
+ JUMP (*++f, step0_jumps);
+
+ /* ' ' flag. */
+ LABEL (flag_space):
+ space = 1;
+ JUMP (*++f, step0_jumps);
+
+ /* '+' flag. */
+ LABEL (flag_plus):
+ showsign = 1;
+ JUMP (*++f, step0_jumps);
+
+ /* The '-' flag. */
+ LABEL (flag_minus):
+ left = 1;
+ pad = L_(' ');
+ JUMP (*++f, step0_jumps);
+
+ /* The '#' flag. */
+ LABEL (flag_hash):
+ alt = 1;
+ JUMP (*++f, step0_jumps);
+
+ /* The '0' flag. */
+ LABEL (flag_zero):
+ if (!left)
+ pad = L_('0');
+ JUMP (*++f, step0_jumps);
+
+ /* The '\'' flag. */
+ LABEL (flag_quote):
+ group = 1;
+
+ if (grouping == (const char *) -1)
+ {
+#ifdef COMPILE_WPRINTF
+ thousands_sep = _NL_CURRENT_WORD (LC_NUMERIC,
+ _NL_NUMERIC_THOUSANDS_SEP_WC);
+#else
+ thousands_sep = _NL_CURRENT (LC_NUMERIC, THOUSANDS_SEP);
+#endif
+
+ grouping = _NL_CURRENT (LC_NUMERIC, GROUPING);
+ if (*grouping == '\0' || *grouping == CHAR_MAX
+#ifdef COMPILE_WPRINTF
+ || thousands_sep == L'\0'
+#else
+ || *thousands_sep == '\0'
+#endif
+ )
+ grouping = NULL;
+ }
+ JUMP (*++f, step0_jumps);
+
+ LABEL (flag_i18n):
+ use_outdigits = 1;
+ JUMP (*++f, step0_jumps);
+
+ /* Get width from argument. */
+ LABEL (width_asterics):
+ {
+ const UCHAR_T *tmp; /* Temporary value. */
+
+ tmp = ++f;
+ if (ISDIGIT (*tmp))
+ {
+ int pos = read_int (&tmp);
+
+ if (pos == -1)
+ {
+ __set_errno (EOVERFLOW);
+ done = -1;
+ goto all_done;
+ }
+
+ if (pos && *tmp == L_('$'))
+ /* The width comes from a positional parameter. */
+ goto do_positional;
+ }
+ width = va_arg (ap, int);
+
+ /* Negative width means left justified. */
+ if (width < 0)
+ {
+ width = -width;
+ pad = L_(' ');
+ left = 1;
+ }
+
+ if (__glibc_unlikely (width >= INT_MAX / sizeof (CHAR_T) - EXTSIZ))
+ {
+ __set_errno (EOVERFLOW);
+ done = -1;
+ goto all_done;
+ }
+
+ if (width >= WORK_BUFFER_SIZE - EXTSIZ)
+ {
+ /* We have to use a special buffer. */
+ size_t needed = ((size_t) width + EXTSIZ) * sizeof (CHAR_T);
+ if (__libc_use_alloca (needed))
+ workend = (CHAR_T *) alloca (needed) + width + EXTSIZ;
+ else
+ {
+ workstart = (CHAR_T *) malloc (needed);
+ if (workstart == NULL)
+ {
+ done = -1;
+ goto all_done;
+ }
+ workend = workstart + width + EXTSIZ;
+ }
+ }
+ }
+ JUMP (*f, step1_jumps);
+
+ /* Given width in format string. */
+ LABEL (width):
+ width = read_int (&f);
+
+ if (__glibc_unlikely (width == -1
+ || width >= INT_MAX / sizeof (CHAR_T) - EXTSIZ))
+ {
+ __set_errno (EOVERFLOW);
+ done = -1;
+ goto all_done;
+ }
+
+ if (width >= WORK_BUFFER_SIZE - EXTSIZ)
+ {
+ /* We have to use a special buffer. */
+ size_t needed = ((size_t) width + EXTSIZ) * sizeof (CHAR_T);
+ if (__libc_use_alloca (needed))
+ workend = (CHAR_T *) alloca (needed) + width + EXTSIZ;
+ else
+ {
+ workstart = (CHAR_T *) malloc (needed);
+ if (workstart == NULL)
+ {
+ done = -1;
+ goto all_done;
+ }
+ workend = workstart + width + EXTSIZ;
+ }
+ }
+ if (*f == L_('$'))
+ /* Oh, oh. The argument comes from a positional parameter. */
+ goto do_positional;
+ JUMP (*f, step1_jumps);
+
+ LABEL (precision):
+ ++f;
+ if (*f == L_('*'))
+ {
+ const UCHAR_T *tmp; /* Temporary value. */
+
+ tmp = ++f;
+ if (ISDIGIT (*tmp))
+ {
+ int pos = read_int (&tmp);
+
+ if (pos == -1)
+ {
+ __set_errno (EOVERFLOW);
+ done = -1;
+ goto all_done;
+ }
+
+ if (pos && *tmp == L_('$'))
+ /* The precision comes from a positional parameter. */
+ goto do_positional;
+ }
+ prec = va_arg (ap, int);
+
+ /* If the precision is negative the precision is omitted. */
+ if (prec < 0)
+ prec = -1;
+ }
+ else if (ISDIGIT (*f))
+ {
+ prec = read_int (&f);
+
+ /* The precision was specified in this case as an extremely
+ large positive value. */
+ if (prec == -1)
+ {
+ __set_errno (EOVERFLOW);
+ done = -1;
+ goto all_done;
+ }
+ }
+ else
+ prec = 0;
+ if (prec > width && prec > WORK_BUFFER_SIZE - EXTSIZ)
+ {
+ /* Deallocate any previously allocated buffer because it is
+ too small. */
+ if (__glibc_unlikely (workstart != NULL))
+ free (workstart);
+ workstart = NULL;
+ if (__glibc_unlikely (prec >= INT_MAX / sizeof (CHAR_T) - EXTSIZ))
+ {
+ __set_errno (EOVERFLOW);
+ done = -1;
+ goto all_done;
+ }
+ size_t needed = ((size_t) prec + EXTSIZ) * sizeof (CHAR_T);
+
+ if (__libc_use_alloca (needed))
+ workend = (CHAR_T *) alloca (needed) + prec + EXTSIZ;
+ else
+ {
+ workstart = (CHAR_T *) malloc (needed);
+ if (workstart == NULL)
+ {
+ done = -1;
+ goto all_done;
+ }
+ workend = workstart + prec + EXTSIZ;
+ }
+ }
+ JUMP (*f, step2_jumps);
+
+ /* Process 'h' modifier. There might another 'h' following. */
+ LABEL (mod_half):
+ is_short = 1;
+ JUMP (*++f, step3a_jumps);
+
+ /* Process 'hh' modifier. */
+ LABEL (mod_halfhalf):
+ is_short = 0;
+ is_char = 1;
+ JUMP (*++f, step4_jumps);
+
+ /* Process 'l' modifier. There might another 'l' following. */
+ LABEL (mod_long):
+ is_long = 1;
+ JUMP (*++f, step3b_jumps);
+
+ /* Process 'L', 'q', or 'll' modifier. No other modifier is
+ allowed to follow. */
+ LABEL (mod_longlong):
+ is_long_double = 1;
+ is_long = 1;
+ JUMP (*++f, step4_jumps);
+
+ LABEL (mod_size_t):
+ is_long_double = sizeof (size_t) > sizeof (unsigned long int);
+ is_long = sizeof (size_t) > sizeof (unsigned int);
+ JUMP (*++f, step4_jumps);
+
+ LABEL (mod_ptrdiff_t):
+ is_long_double = sizeof (ptrdiff_t) > sizeof (unsigned long int);
+ is_long = sizeof (ptrdiff_t) > sizeof (unsigned int);
+ JUMP (*++f, step4_jumps);
+
+ LABEL (mod_intmax_t):
+ is_long_double = sizeof (intmax_t) > sizeof (unsigned long int);
+ is_long = sizeof (intmax_t) > sizeof (unsigned int);
+ JUMP (*++f, step4_jumps);
+
+ /* Process current format. */
+ while (1)
+ {
+ process_arg (((struct printf_spec *) NULL));
+ process_string_arg (((struct printf_spec *) NULL));
+
+ LABEL (form_unknown):
+ if (spec == L_('\0'))
+ {
+ /* The format string ended before the specifier is complete. */
+ __set_errno (EINVAL);
+ done = -1;
+ goto all_done;
+ }
+
+ /* If we are in the fast loop force entering the complicated
+ one. */
+ goto do_positional;
+ }
+
+ /* The format is correctly handled. */
+ ++nspecs_done;
+
+ if (__glibc_unlikely (workstart != NULL))
+ free (workstart);
+ workstart = NULL;
+
+ /* Look for next format specifier. */
+#ifdef COMPILE_WPRINTF
+ f = __find_specwc ((end_of_spec = ++f));
+#else
+ f = __find_specmb ((end_of_spec = ++f));
+#endif
+
+ /* Write the following constant string. */
+ outstring (end_of_spec, f - end_of_spec);
+ }
+ while (*f != L_('\0'));
+
+ /* Unlock stream and return. */
+ goto all_done;
+
+ /* Hand off processing for positional parameters. */
+do_positional:
+ if (__glibc_unlikely (workstart != NULL))
+ {
+ free (workstart);
+ workstart = NULL;
+ }
+ done = printf_positional (s, format, readonly_format, ap, &ap_save,
+ done, nspecs_done, lead_str_end, work_buffer,
+ save_errno, grouping, thousands_sep, mode_flags);
+
+ all_done:
+ if (__glibc_unlikely (workstart != NULL))
+ free (workstart);
+ /* Unlock the stream. */
+ _IO_funlockfile (s);
+ _IO_cleanup_region_end (0);
+
+ return done;
+}
+
+static int
+printf_positional (FILE *s, const CHAR_T *format, int readonly_format,
+ va_list ap, va_list *ap_savep, int done, int nspecs_done,
+ const UCHAR_T *lead_str_end,
+ CHAR_T *work_buffer, int save_errno,
+ const char *grouping, THOUSANDS_SEP_T thousands_sep,
+ unsigned int mode_flags)
+{
+ /* For positional argument handling. */
+ struct scratch_buffer specsbuf;
+ scratch_buffer_init (&specsbuf);
+ struct printf_spec *specs = specsbuf.data;
+ size_t specs_limit = specsbuf.length / sizeof (specs[0]);
+
+ /* Used as a backing store for args_value, args_size, args_type
+ below. */
+ struct scratch_buffer argsbuf;
+ scratch_buffer_init (&argsbuf);
+
+ /* Array with information about the needed arguments. This has to
+ be dynamically extensible. */
+ size_t nspecs = 0;
+
+ /* The number of arguments the format string requests. This will
+ determine the size of the array needed to store the argument
+ attributes. */
+ size_t nargs = 0;
+
+ /* Positional parameters refer to arguments directly. This could
+ also determine the maximum number of arguments. Track the
+ maximum number. */
+ size_t max_ref_arg = 0;
+
+ /* Just a counter. */
+ size_t cnt;
+
+ CHAR_T *workstart = NULL;
+
+ if (grouping == (const char *) -1)
+ {
+#ifdef COMPILE_WPRINTF
+ thousands_sep = _NL_CURRENT_WORD (LC_NUMERIC,
+ _NL_NUMERIC_THOUSANDS_SEP_WC);
+#else
+ thousands_sep = _NL_CURRENT (LC_NUMERIC, THOUSANDS_SEP);
+#endif
+
+ grouping = _NL_CURRENT (LC_NUMERIC, GROUPING);
+ if (*grouping == '\0' || *grouping == CHAR_MAX)
+ grouping = NULL;
+ }
+
+ for (const UCHAR_T *f = lead_str_end; *f != L_('\0');
+ f = specs[nspecs++].next_fmt)
+ {
+ if (nspecs == specs_limit)
+ {
+ if (!scratch_buffer_grow_preserve (&specsbuf))
+ {
+ done = -1;
+ goto all_done;
+ }
+ specs = specsbuf.data;
+ specs_limit = specsbuf.length / sizeof (specs[0]);
+ }
+
+ /* Parse the format specifier. */
+#ifdef COMPILE_WPRINTF
+ nargs += __parse_one_specwc (f, nargs, &specs[nspecs], &max_ref_arg);
+#else
+ nargs += __parse_one_specmb (f, nargs, &specs[nspecs], &max_ref_arg);
+#endif
+ }
+
+ /* Determine the number of arguments the format string consumes. */
+ nargs = MAX (nargs, max_ref_arg);
+
+ union printf_arg *args_value;
+ int *args_size;
+ int *args_type;
+ {
+ /* Calculate total size needed to represent a single argument
+ across all three argument-related arrays. */
+ size_t bytes_per_arg
+ = sizeof (*args_value) + sizeof (*args_size) + sizeof (*args_type);
+ if (!scratch_buffer_set_array_size (&argsbuf, nargs, bytes_per_arg))
+ {
+ done = -1;
+ goto all_done;
+ }
+ args_value = argsbuf.data;
+ /* Set up the remaining two arrays to each point past the end of
+ the prior array, since space for all three has been allocated
+ now. */
+ args_size = &args_value[nargs].pa_int;
+ args_type = &args_size[nargs];
+ memset (args_type, (mode_flags & PRINTF_FORTIFY) != 0 ? '\xff' : '\0',
+ nargs * sizeof (*args_type));
+ }
+
+ /* XXX Could do sanity check here: If any element in ARGS_TYPE is
+ still zero after this loop, format is invalid. For now we
+ simply use 0 as the value. */
+
+ /* Fill in the types of all the arguments. */
+ for (cnt = 0; cnt < nspecs; ++cnt)
+ {
+ /* If the width is determined by an argument this is an int. */
+ if (specs[cnt].width_arg != -1)
+ args_type[specs[cnt].width_arg] = PA_INT;
+
+ /* If the precision is determined by an argument this is an int. */
+ if (specs[cnt].prec_arg != -1)
+ args_type[specs[cnt].prec_arg] = PA_INT;
+
+ switch (specs[cnt].ndata_args)
+ {
+ case 0: /* No arguments. */
+ break;
+ case 1: /* One argument; we already have the
+ type and size. */
+ args_type[specs[cnt].data_arg] = specs[cnt].data_arg_type;
+ args_size[specs[cnt].data_arg] = specs[cnt].size;
+ break;
+ default:
+ /* We have more than one argument for this format spec.
+ We must call the arginfo function again to determine
+ all the types. */
+ (void) (*__printf_arginfo_table[specs[cnt].info.spec])
+ (&specs[cnt].info,
+ specs[cnt].ndata_args, &args_type[specs[cnt].data_arg],
+ &args_size[specs[cnt].data_arg]);
+ break;
+ }
+ }
+
+ /* Now we know all the types and the order. Fill in the argument
+ values. */
+ for (cnt = 0; cnt < nargs; ++cnt)
+ switch (args_type[cnt])
+ {
+#define T(tag, mem, type) \
+ case tag: \
+ args_value[cnt].mem = va_arg (*ap_savep, type); \
+ break
+
+ T (PA_WCHAR, pa_wchar, wint_t);
+ case PA_CHAR: /* Promoted. */
+ case PA_INT|PA_FLAG_SHORT: /* Promoted. */
+#if LONG_MAX == INT_MAX
+ case PA_INT|PA_FLAG_LONG:
+#endif
+ T (PA_INT, pa_int, int);
+#if LONG_MAX == LONG_LONG_MAX
+ case PA_INT|PA_FLAG_LONG:
+#endif
+ T (PA_INT|PA_FLAG_LONG_LONG, pa_long_long_int, long long int);
+#if LONG_MAX != INT_MAX && LONG_MAX != LONG_LONG_MAX
+# error "he?"
+#endif
+ case PA_FLOAT: /* Promoted. */
+ T (PA_DOUBLE, pa_double, double);
+ case PA_DOUBLE|PA_FLAG_LONG_DOUBLE:
+ if (__glibc_unlikely ((mode_flags & PRINTF_LDBL_IS_DBL) != 0))
+ {
+ args_value[cnt].pa_double = va_arg (*ap_savep, double);
+ args_type[cnt] &= ~PA_FLAG_LONG_DOUBLE;
+ }
+#if __HAVE_FLOAT128_UNLIKE_LDBL
+ else if ((mode_flags & PRINTF_LDBL_USES_FLOAT128) != 0)
+ args_value[cnt].pa_float128 = va_arg (*ap_savep, _Float128);
+#endif
+ else
+ args_value[cnt].pa_long_double = va_arg (*ap_savep, long double);
+ break;
+ case PA_STRING: /* All pointers are the same */
+ case PA_WSTRING: /* All pointers are the same */
+ T (PA_POINTER, pa_pointer, void *);
+#undef T
+ default:
+ if ((args_type[cnt] & PA_FLAG_PTR) != 0)
+ args_value[cnt].pa_pointer = va_arg (*ap_savep, void *);
+ else if (__glibc_unlikely (__printf_va_arg_table != NULL)
+ && __printf_va_arg_table[args_type[cnt] - PA_LAST] != NULL)
+ {
+ args_value[cnt].pa_user = alloca (args_size[cnt]);
+ (*__printf_va_arg_table[args_type[cnt] - PA_LAST])
+ (args_value[cnt].pa_user, ap_savep);
+ }
+ else
+ memset (&args_value[cnt], 0, sizeof (args_value[cnt]));
+ break;
+ case -1:
+ /* Error case. Not all parameters appear in N$ format
+ strings. We have no way to determine their type. */
+ assert ((mode_flags & PRINTF_FORTIFY) != 0);
+ __libc_fatal ("*** invalid %N$ use detected ***\n");
+ }
+
+ /* Now walk through all format specifiers and process them. */
+ for (; (size_t) nspecs_done < nspecs; ++nspecs_done)
+ {
+ STEP4_TABLE;
+
+ int is_negative;
+ union
+ {
+ unsigned long long int longlong;
+ unsigned long int word;
+ } number;
+ int base;
+ union printf_arg the_arg;
+ CHAR_T *string; /* Pointer to argument string. */
+
+ /* Fill variables from values in struct. */
+ int alt = specs[nspecs_done].info.alt;
+ int space = specs[nspecs_done].info.space;
+ int left = specs[nspecs_done].info.left;
+ int showsign = specs[nspecs_done].info.showsign;
+ int group = specs[nspecs_done].info.group;
+ int is_long_double = specs[nspecs_done].info.is_long_double;
+ int is_short = specs[nspecs_done].info.is_short;
+ int is_char = specs[nspecs_done].info.is_char;
+ int is_long = specs[nspecs_done].info.is_long;
+ int width = specs[nspecs_done].info.width;
+ int prec = specs[nspecs_done].info.prec;
+ int use_outdigits = specs[nspecs_done].info.i18n;
+ char pad = specs[nspecs_done].info.pad;
+ CHAR_T spec = specs[nspecs_done].info.spec;
+
+ workstart = NULL;
+ CHAR_T *workend = work_buffer + WORK_BUFFER_SIZE;
+
+ /* Fill in last information. */
+ if (specs[nspecs_done].width_arg != -1)
+ {
+ /* Extract the field width from an argument. */
+ specs[nspecs_done].info.width =
+ args_value[specs[nspecs_done].width_arg].pa_int;
+
+ if (specs[nspecs_done].info.width < 0)
+ /* If the width value is negative left justification is
+ selected and the value is taken as being positive. */
+ {
+ specs[nspecs_done].info.width *= -1;
+ left = specs[nspecs_done].info.left = 1;
+ }
+ width = specs[nspecs_done].info.width;
+ }
+
+ if (specs[nspecs_done].prec_arg != -1)
+ {
+ /* Extract the precision from an argument. */
+ specs[nspecs_done].info.prec =
+ args_value[specs[nspecs_done].prec_arg].pa_int;
+
+ if (specs[nspecs_done].info.prec < 0)
+ /* If the precision is negative the precision is
+ omitted. */
+ specs[nspecs_done].info.prec = -1;
+
+ prec = specs[nspecs_done].info.prec;
+ }
+
+ /* Maybe the buffer is too small. */
+ if (MAX (prec, width) + EXTSIZ > WORK_BUFFER_SIZE)
+ {
+ if (__libc_use_alloca ((MAX (prec, width) + EXTSIZ)
+ * sizeof (CHAR_T)))
+ workend = ((CHAR_T *) alloca ((MAX (prec, width) + EXTSIZ)
+ * sizeof (CHAR_T))
+ + (MAX (prec, width) + EXTSIZ));
+ else
+ {
+ workstart = (CHAR_T *) malloc ((MAX (prec, width) + EXTSIZ)
+ * sizeof (CHAR_T));
+ if (workstart == NULL)
+ {
+ done = -1;
+ goto all_done;
+ }
+ workend = workstart + (MAX (prec, width) + EXTSIZ);
+ }
+ }
+
+ /* Process format specifiers. */
+ while (1)
+ {
+ extern printf_function **__printf_function_table;
+ int function_done;
+
+ if (spec <= UCHAR_MAX
+ && __printf_function_table != NULL
+ && __printf_function_table[(size_t) spec] != NULL)
+ {
+ const void **ptr = alloca (specs[nspecs_done].ndata_args
+ * sizeof (const void *));
+
+ /* Fill in an array of pointers to the argument values. */
+ for (unsigned int i = 0; i < specs[nspecs_done].ndata_args;
+ ++i)
+ ptr[i] = &args_value[specs[nspecs_done].data_arg + i];
+
+ /* Call the function. */
+ function_done = __printf_function_table[(size_t) spec]
+ (s, &specs[nspecs_done].info, ptr);
+
+ if (function_done != -2)
+ {
+ /* If an error occurred we don't have information
+ about # of chars. */
+ if (function_done < 0)
+ {
+ /* Function has set errno. */
+ done = -1;
+ goto all_done;
+ }
+
+ done_add (function_done);
+ break;
+ }
+ }
+
+ JUMP (spec, step4_jumps);
+
+ process_arg ((&specs[nspecs_done]));
+ process_string_arg ((&specs[nspecs_done]));
+
+ LABEL (form_unknown):
+ {
+ unsigned int i;
+ const void **ptr;
+
+ ptr = alloca (specs[nspecs_done].ndata_args
+ * sizeof (const void *));
+
+ /* Fill in an array of pointers to the argument values. */
+ for (i = 0; i < specs[nspecs_done].ndata_args; ++i)
+ ptr[i] = &args_value[specs[nspecs_done].data_arg + i];
+
+ /* Call the function. */
+ function_done = printf_unknown (s, &specs[nspecs_done].info,
+ ptr);
+
+ /* If an error occurred we don't have information about #
+ of chars. */
+ if (function_done < 0)
+ {
+ /* Function has set errno. */
+ done = -1;
+ goto all_done;
+ }
+
+ done_add (function_done);
+ }
+ break;
+ }
+
+ if (__glibc_unlikely (workstart != NULL))
+ free (workstart);
+ workstart = NULL;
+
+ /* Write the following constant string. */
+ outstring (specs[nspecs_done].end_of_fmt,
+ specs[nspecs_done].next_fmt
+ - specs[nspecs_done].end_of_fmt);
+ }
+ all_done:
+ if (__glibc_unlikely (workstart != NULL))
+ free (workstart);
+ scratch_buffer_free (&argsbuf);
+ scratch_buffer_free (&specsbuf);
+ return done;
+}
+
+/* Handle an unknown format specifier. This prints out a canonicalized
+ representation of the format spec itself. */
+static int
+printf_unknown (FILE *s, const struct printf_info *info,
+ const void *const *args)
+
+{
+ int done = 0;
+ CHAR_T work_buffer[MAX (sizeof (info->width), sizeof (info->prec)) * 3];
+ CHAR_T *const workend
+ = &work_buffer[sizeof (work_buffer) / sizeof (CHAR_T)];
+ CHAR_T *w;
+
+ outchar (L_('%'));
+
+ if (info->alt)
+ outchar (L_('#'));
+ if (info->group)
+ outchar (L_('\''));
+ if (info->showsign)
+ outchar (L_('+'));
+ else if (info->space)
+ outchar (L_(' '));
+ if (info->left)
+ outchar (L_('-'));
+ if (info->pad == L_('0'))
+ outchar (L_('0'));
+ if (info->i18n)
+ outchar (L_('I'));
+
+ if (info->width != 0)
+ {
+ w = _itoa_word (info->width, workend, 10, 0);
+ while (w < workend)
+ outchar (*w++);
+ }
+
+ if (info->prec != -1)
+ {
+ outchar (L_('.'));
+ w = _itoa_word (info->prec, workend, 10, 0);
+ while (w < workend)
+ outchar (*w++);
+ }
+
+ if (info->spec != L_('\0'))
+ outchar (info->spec);
+
+ all_done:
+ return done;
+}
+
+/* Group the digits from W to REAR_PTR according to the grouping rules
+ of the current locale. The interpretation of GROUPING is as in
+ `struct lconv' from <locale.h>. The grouped number extends from
+ the returned pointer until REAR_PTR. FRONT_PTR to W is used as a
+ scratch area. */
+static CHAR_T *
+group_number (CHAR_T *front_ptr, CHAR_T *w, CHAR_T *rear_ptr,
+ const char *grouping, THOUSANDS_SEP_T thousands_sep)
+{
+ /* Length of the current group. */
+ int len;
+#ifndef COMPILE_WPRINTF
+ /* Length of the separator (in wide mode, the separator is always a
+ single wide character). */
+ int tlen = strlen (thousands_sep);
+#endif
+
+ /* We treat all negative values like CHAR_MAX. */
+
+ if (*grouping == CHAR_MAX || *grouping <= 0)
+ /* No grouping should be done. */
+ return w;
+
+ len = *grouping++;
+
+ /* Copy existing string so that nothing gets overwritten. */
+ memmove (front_ptr, w, (rear_ptr - w) * sizeof (CHAR_T));
+ CHAR_T *s = front_ptr + (rear_ptr - w);
+
+ w = rear_ptr;
+
+ /* Process all characters in the string. */
+ while (s > front_ptr)
+ {
+ *--w = *--s;
+
+ if (--len == 0 && s > front_ptr)
+ {
+ /* A new group begins. */
+#ifdef COMPILE_WPRINTF
+ if (w != s)
+ *--w = thousands_sep;
+ else
+ /* Not enough room for the separator. */
+ goto copy_rest;
+#else
+ int cnt = tlen;
+ if (tlen < w - s)
+ do
+ *--w = thousands_sep[--cnt];
+ while (cnt > 0);
+ else
+ /* Not enough room for the separator. */
+ goto copy_rest;
+#endif
+
+ if (*grouping == CHAR_MAX
+#if CHAR_MIN < 0
+ || *grouping < 0
+#endif
+ )
+ {
+ copy_rest:
+ /* No further grouping to be done. Copy the rest of the
+ number. */
+ memmove (w, s, (front_ptr -s) * sizeof (CHAR_T));
+ break;
+ }
+ else if (*grouping != '\0')
+ len = *grouping++;
+ else
+ /* The previous grouping repeats ad infinitum. */
+ len = grouping[-1];
+ }
+ }
+ return w;
+}
+
+/* Helper "class" for `fprintf to unbuffered': creates a temporary buffer. */
+struct helper_file
+ {
+ struct _IO_FILE_plus _f;
+#ifdef COMPILE_WPRINTF
+ struct _IO_wide_data _wide_data;
+#endif
+ FILE *_put_stream;
+#ifdef _IO_MTSAFE_IO
+ _IO_lock_t lock;
+#endif
+ };
+
+static int
+_IO_helper_overflow (FILE *s, int c)
+{
+ FILE *target = ((struct helper_file*) s)->_put_stream;
+#ifdef COMPILE_WPRINTF
+ int used = s->_wide_data->_IO_write_ptr - s->_wide_data->_IO_write_base;
+ if (used)
+ {
+ size_t written = _IO_sputn (target, s->_wide_data->_IO_write_base, used);
+ if (written == 0 || written == WEOF)
+ return WEOF;
+ __wmemmove (s->_wide_data->_IO_write_base,
+ s->_wide_data->_IO_write_base + written,
+ used - written);
+ s->_wide_data->_IO_write_ptr -= written;
+ }
+#else
+ int used = s->_IO_write_ptr - s->_IO_write_base;
+ if (used)
+ {
+ size_t written = _IO_sputn (target, s->_IO_write_base, used);
+ if (written == 0 || written == EOF)
+ return EOF;
+ memmove (s->_IO_write_base, s->_IO_write_base + written,
+ used - written);
+ s->_IO_write_ptr -= written;
+ }
+#endif
+ return PUTC (c, s);
+}
+
+#ifdef COMPILE_WPRINTF
+static const struct _IO_jump_t _IO_helper_jumps libio_vtable =
+{
+ JUMP_INIT_DUMMY,
+ JUMP_INIT (finish, _IO_wdefault_finish),
+ JUMP_INIT (overflow, _IO_helper_overflow),
+ JUMP_INIT (underflow, _IO_default_underflow),
+ JUMP_INIT (uflow, _IO_default_uflow),
+ JUMP_INIT (pbackfail, (_IO_pbackfail_t) _IO_wdefault_pbackfail),
+ JUMP_INIT (xsputn, _IO_wdefault_xsputn),
+ JUMP_INIT (xsgetn, _IO_wdefault_xsgetn),
+ JUMP_INIT (seekoff, _IO_default_seekoff),
+ JUMP_INIT (seekpos, _IO_default_seekpos),
+ JUMP_INIT (setbuf, _IO_default_setbuf),
+ JUMP_INIT (sync, _IO_default_sync),
+ JUMP_INIT (doallocate, _IO_wdefault_doallocate),
+ JUMP_INIT (read, _IO_default_read),
+ JUMP_INIT (write, _IO_default_write),
+ JUMP_INIT (seek, _IO_default_seek),
+ JUMP_INIT (close, _IO_default_close),
+ JUMP_INIT (stat, _IO_default_stat)
+};
+#else
+static const struct _IO_jump_t _IO_helper_jumps libio_vtable =
+{
+ JUMP_INIT_DUMMY,
+ JUMP_INIT (finish, _IO_default_finish),
+ JUMP_INIT (overflow, _IO_helper_overflow),
+ JUMP_INIT (underflow, _IO_default_underflow),
+ JUMP_INIT (uflow, _IO_default_uflow),
+ JUMP_INIT (pbackfail, _IO_default_pbackfail),
+ JUMP_INIT (xsputn, _IO_default_xsputn),
+ JUMP_INIT (xsgetn, _IO_default_xsgetn),
+ JUMP_INIT (seekoff, _IO_default_seekoff),
+ JUMP_INIT (seekpos, _IO_default_seekpos),
+ JUMP_INIT (setbuf, _IO_default_setbuf),
+ JUMP_INIT (sync, _IO_default_sync),
+ JUMP_INIT (doallocate, _IO_default_doallocate),
+ JUMP_INIT (read, _IO_default_read),
+ JUMP_INIT (write, _IO_default_write),
+ JUMP_INIT (seek, _IO_default_seek),
+ JUMP_INIT (close, _IO_default_close),
+ JUMP_INIT (stat, _IO_default_stat)
+};
+#endif
+
+static int
+buffered_vfprintf (FILE *s, const CHAR_T *format, va_list args,
+ unsigned int mode_flags)
+{
+ CHAR_T buf[BUFSIZ];
+ struct helper_file helper;
+ FILE *hp = (FILE *) &helper._f;
+ int result, to_flush;
+
+ /* Orient the stream. */
+#ifdef ORIENT
+ ORIENT;
+#endif
+
+ /* Initialize helper. */
+ helper._put_stream = s;
+#ifdef COMPILE_WPRINTF
+ hp->_wide_data = &helper._wide_data;
+ _IO_wsetp (hp, buf, buf + sizeof buf / sizeof (CHAR_T));
+ hp->_mode = 1;
+#else
+ _IO_setp (hp, buf, buf + sizeof buf);
+ hp->_mode = -1;
+#endif
+ hp->_flags = _IO_MAGIC|_IO_NO_READS|_IO_USER_LOCK;
+#if _IO_JUMPS_OFFSET
+ hp->_vtable_offset = 0;
+#endif
+#ifdef _IO_MTSAFE_IO
+ hp->_lock = NULL;
+#endif
+ hp->_flags2 = s->_flags2;
+ _IO_JUMPS (&helper._f) = (struct _IO_jump_t *) &_IO_helper_jumps;
+
+ /* Now print to helper instead. */
+ result = vfprintf (hp, format, args, mode_flags);
+
+ /* Lock stream. */
+ __libc_cleanup_region_start (1, (void (*) (void *)) &_IO_funlockfile, s);
+ _IO_flockfile (s);
+
+ /* Now flush anything from the helper to the S. */
+#ifdef COMPILE_WPRINTF
+ if ((to_flush = (hp->_wide_data->_IO_write_ptr
+ - hp->_wide_data->_IO_write_base)) > 0)
+ {
+ if ((int) _IO_sputn (s, hp->_wide_data->_IO_write_base, to_flush)
+ != to_flush)
+ result = -1;
+ }
+#else
+ if ((to_flush = hp->_IO_write_ptr - hp->_IO_write_base) > 0)
+ {
+ if ((int) _IO_sputn (s, hp->_IO_write_base, to_flush) != to_flush)
+ result = -1;
+ }
+#endif
+
+ /* Unlock the stream. */
+ _IO_funlockfile (s);
+ __libc_cleanup_region_end (0);
+
+ return result;
+}
diff --git a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c
index ae412e4b84..1ad37fa71f 100644
--- a/stdio-common/vfprintf.c
+++ b/stdio-common/vfprintf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -13,2352 +13,15 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#include <array_length.h>
-#include <ctype.h>
-#include <limits.h>
-#include <printf.h>
-#include <stdarg.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-#include <wchar.h>
-#include <libc-lock.h>
-#include <sys/param.h>
-#include <_itoa.h>
-#include <locale/localeinfo.h>
-#include <stdio.h>
-#include <scratch_buffer.h>
+#include <libio/libioP.h>
-/* This code is shared between the standard stdio implementation found
- in GNU C library and the libio implementation originally found in
- GNU libg++.
-
- Beside this it is also shared between the normal and wide character
- implementation as defined in ISO/IEC 9899:1990/Amendment 1:1995. */
-
-#include <libioP.h>
-
-/* In some cases we need extra space for all the output which is not
- counted in the width of the string. We assume 32 characters is
- enough. */
-#define EXTSIZ 32
-#define ARGCHECK(S, Format) \
- do \
- { \
- /* Check file argument for consistence. */ \
- CHECK_FILE (S, -1); \
- if (S->_flags & _IO_NO_WRITES) \
- { \
- S->_flags |= _IO_ERR_SEEN; \
- __set_errno (EBADF); \
- return -1; \
- } \
- if (Format == NULL) \
- { \
- __set_errno (EINVAL); \
- return -1; \
- } \
- } while (0)
-#define UNBUFFERED_P(S) ((S)->_flags & _IO_UNBUFFERED)
-
-#define done_add(val) \
- do { \
- unsigned int _val = val; \
- assert ((unsigned int) done < (unsigned int) INT_MAX); \
- if (__glibc_unlikely (INT_MAX - done < _val)) \
- { \
- done = -1; \
- __set_errno (EOVERFLOW); \
- goto all_done; \
- } \
- done += _val; \
- } while (0)
-
-#ifndef COMPILE_WPRINTF
-# define vfprintf _IO_vfprintf_internal
-# define CHAR_T char
-# define UCHAR_T unsigned char
-# define INT_T int
-typedef const char *THOUSANDS_SEP_T;
-# define L_(Str) Str
-# define ISDIGIT(Ch) ((unsigned int) ((Ch) - '0') < 10)
-# define STR_LEN(Str) strlen (Str)
-
-# define PUT(F, S, N) _IO_sputn ((F), (S), (N))
-# define PAD(Padchar) \
- do { \
- if (width > 0) \
- { \
- ssize_t written = _IO_padn (s, (Padchar), width); \
- if (__glibc_unlikely (written != width)) \
- { \
- done = -1; \
- goto all_done; \
- } \
- done_add (written); \
- } \
- } while (0)
-# define PUTC(C, F) _IO_putc_unlocked (C, F)
-# define ORIENT if (_IO_vtable_offset (s) == 0 && _IO_fwide (s, -1) != -1)\
- return -1
-#else
-# define vfprintf _IO_vfwprintf
-# define CHAR_T wchar_t
-/* This is a hack!!! There should be a type uwchar_t. */
-# define UCHAR_T unsigned int /* uwchar_t */
-# define INT_T wint_t
-typedef wchar_t THOUSANDS_SEP_T;
-# define L_(Str) L##Str
-# define ISDIGIT(Ch) ((unsigned int) ((Ch) - L'0') < 10)
-# define STR_LEN(Str) __wcslen (Str)
-
-# include <_itowa.h>
-
-# define PUT(F, S, N) _IO_sputn ((F), (S), (N))
-# define PAD(Padchar) \
- do { \
- if (width > 0) \
- { \
- ssize_t written = _IO_wpadn (s, (Padchar), width); \
- if (__glibc_unlikely (written != width)) \
- { \
- done = -1; \
- goto all_done; \
- } \
- done_add (written); \
- } \
- } while (0)
-# define PUTC(C, F) _IO_putwc_unlocked (C, F)
-# define ORIENT if (_IO_fwide (s, 1) != 1) return -1
-
-# undef _itoa
-# define _itoa(Val, Buf, Base, Case) _itowa (Val, Buf, Base, Case)
-# define _itoa_word(Val, Buf, Base, Case) _itowa_word (Val, Buf, Base, Case)
-# undef EOF
-# define EOF WEOF
-#endif
-
-#include "_i18n_number.h"
-
-/* Include the shared code for parsing the format string. */
-#include "printf-parse.h"
-
-
-#define outchar(Ch) \
- do \
- { \
- const INT_T outc = (Ch); \
- if (PUTC (outc, s) == EOF || done == INT_MAX) \
- { \
- done = -1; \
- goto all_done; \
- } \
- ++done; \
- } \
- while (0)
-
-#define outstring(String, Len) \
- do \
- { \
- assert ((size_t) done <= (size_t) INT_MAX); \
- if ((size_t) PUT (s, (String), (Len)) != (size_t) (Len)) \
- { \
- done = -1; \
- goto all_done; \
- } \
- if (__glibc_unlikely (INT_MAX - done < (Len))) \
- { \
- done = -1; \
- __set_errno (EOVERFLOW); \
- goto all_done; \
- } \
- done += (Len); \
- } \
- while (0)
-
-/* For handling long_double and longlong we use the same flag. If
- `long' and `long long' are effectively the same type define it to
- zero. */
-#if LONG_MAX == LONG_LONG_MAX
-# define is_longlong 0
-#else
-# define is_longlong is_long_double
-#endif
-
-/* If `long' and `int' is effectively the same type we don't have to
- handle `long separately. */
-#if INT_MAX == LONG_MAX
-# define is_long_num 0
-#else
-# define is_long_num is_long
-#endif
-
-
-/* Global constants. */
-static const CHAR_T null[] = L_("(null)");
-
-/* Size of the work_buffer variable (in characters, not bytes. */
-enum { WORK_BUFFER_SIZE = 1000 / sizeof (CHAR_T) };
-
-/* This table maps a character into a number representing a class. In
- each step there is a destination label for each class. */
-static const uint8_t jump_table[] =
- {
- /* ' ' */ 1, 0, 0, /* '#' */ 4,
- 0, /* '%' */ 14, 0, /* '\''*/ 6,
- 0, 0, /* '*' */ 7, /* '+' */ 2,
- 0, /* '-' */ 3, /* '.' */ 9, 0,
- /* '0' */ 5, /* '1' */ 8, /* '2' */ 8, /* '3' */ 8,
- /* '4' */ 8, /* '5' */ 8, /* '6' */ 8, /* '7' */ 8,
- /* '8' */ 8, /* '9' */ 8, 0, 0,
- 0, 0, 0, 0,
- 0, /* 'A' */ 26, 0, /* 'C' */ 25,
- 0, /* 'E' */ 19, /* F */ 19, /* 'G' */ 19,
- 0, /* 'I' */ 29, 0, 0,
- /* 'L' */ 12, 0, 0, 0,
- 0, 0, 0, /* 'S' */ 21,
- 0, 0, 0, 0,
- /* 'X' */ 18, 0, /* 'Z' */ 13, 0,
- 0, 0, 0, 0,
- 0, /* 'a' */ 26, 0, /* 'c' */ 20,
- /* 'd' */ 15, /* 'e' */ 19, /* 'f' */ 19, /* 'g' */ 19,
- /* 'h' */ 10, /* 'i' */ 15, /* 'j' */ 28, 0,
- /* 'l' */ 11, /* 'm' */ 24, /* 'n' */ 23, /* 'o' */ 17,
- /* 'p' */ 22, /* 'q' */ 12, 0, /* 's' */ 21,
- /* 't' */ 27, /* 'u' */ 16, 0, 0,
- /* 'x' */ 18, 0, /* 'z' */ 13
- };
-
-#define NOT_IN_JUMP_RANGE(Ch) ((Ch) < L_(' ') || (Ch) > L_('z'))
-#define CHAR_CLASS(Ch) (jump_table[(INT_T) (Ch) - L_(' ')])
-#define LABEL(Name) do_##Name
-#ifdef SHARED
- /* 'int' is enough and it saves some space on 64 bit systems. */
-# define JUMP_TABLE_TYPE const int
-# define JUMP_TABLE_BASE_LABEL do_form_unknown
-# define REF(Name) &&do_##Name - &&JUMP_TABLE_BASE_LABEL
-# define JUMP(ChExpr, table) \
- do \
- { \
- int offset; \
- void *ptr; \
- spec = (ChExpr); \
- offset = NOT_IN_JUMP_RANGE (spec) ? REF (form_unknown) \
- : table[CHAR_CLASS (spec)]; \
- ptr = &&JUMP_TABLE_BASE_LABEL + offset; \
- goto *ptr; \
- } \
- while (0)
-#else
-# define JUMP_TABLE_TYPE const void *const
-# define REF(Name) &&do_##Name
-# define JUMP(ChExpr, table) \
- do \
- { \
- const void *ptr; \
- spec = (ChExpr); \
- ptr = NOT_IN_JUMP_RANGE (spec) ? REF (form_unknown) \
- : table[CHAR_CLASS (spec)]; \
- goto *ptr; \
- } \
- while (0)
-#endif
-
-#define STEP0_3_TABLE \
- /* Step 0: at the beginning. */ \
- static JUMP_TABLE_TYPE step0_jumps[30] = \
- { \
- REF (form_unknown), \
- REF (flag_space), /* for ' ' */ \
- REF (flag_plus), /* for '+' */ \
- REF (flag_minus), /* for '-' */ \
- REF (flag_hash), /* for '<hash>' */ \
- REF (flag_zero), /* for '0' */ \
- REF (flag_quote), /* for '\'' */ \
- REF (width_asterics), /* for '*' */ \
- REF (width), /* for '1'...'9' */ \
- REF (precision), /* for '.' */ \
- REF (mod_half), /* for 'h' */ \
- REF (mod_long), /* for 'l' */ \
- REF (mod_longlong), /* for 'L', 'q' */ \
- REF (mod_size_t), /* for 'z', 'Z' */ \
- REF (form_percent), /* for '%' */ \
- REF (form_integer), /* for 'd', 'i' */ \
- REF (form_unsigned), /* for 'u' */ \
- REF (form_octal), /* for 'o' */ \
- REF (form_hexa), /* for 'X', 'x' */ \
- REF (form_float), /* for 'E', 'e', 'F', 'f', 'G', 'g' */ \
- REF (form_character), /* for 'c' */ \
- REF (form_string), /* for 's', 'S' */ \
- REF (form_pointer), /* for 'p' */ \
- REF (form_number), /* for 'n' */ \
- REF (form_strerror), /* for 'm' */ \
- REF (form_wcharacter), /* for 'C' */ \
- REF (form_floathex), /* for 'A', 'a' */ \
- REF (mod_ptrdiff_t), /* for 't' */ \
- REF (mod_intmax_t), /* for 'j' */ \
- REF (flag_i18n), /* for 'I' */ \
- }; \
- /* Step 1: after processing width. */ \
- static JUMP_TABLE_TYPE step1_jumps[30] = \
- { \
- REF (form_unknown), \
- REF (form_unknown), /* for ' ' */ \
- REF (form_unknown), /* for '+' */ \
- REF (form_unknown), /* for '-' */ \
- REF (form_unknown), /* for '<hash>' */ \
- REF (form_unknown), /* for '0' */ \
- REF (form_unknown), /* for '\'' */ \
- REF (form_unknown), /* for '*' */ \
- REF (form_unknown), /* for '1'...'9' */ \
- REF (precision), /* for '.' */ \
- REF (mod_half), /* for 'h' */ \
- REF (mod_long), /* for 'l' */ \
- REF (mod_longlong), /* for 'L', 'q' */ \
- REF (mod_size_t), /* for 'z', 'Z' */ \
- REF (form_percent), /* for '%' */ \
- REF (form_integer), /* for 'd', 'i' */ \
- REF (form_unsigned), /* for 'u' */ \
- REF (form_octal), /* for 'o' */ \
- REF (form_hexa), /* for 'X', 'x' */ \
- REF (form_float), /* for 'E', 'e', 'F', 'f', 'G', 'g' */ \
- REF (form_character), /* for 'c' */ \
- REF (form_string), /* for 's', 'S' */ \
- REF (form_pointer), /* for 'p' */ \
- REF (form_number), /* for 'n' */ \
- REF (form_strerror), /* for 'm' */ \
- REF (form_wcharacter), /* for 'C' */ \
- REF (form_floathex), /* for 'A', 'a' */ \
- REF (mod_ptrdiff_t), /* for 't' */ \
- REF (mod_intmax_t), /* for 'j' */ \
- REF (form_unknown) /* for 'I' */ \
- }; \
- /* Step 2: after processing precision. */ \
- static JUMP_TABLE_TYPE step2_jumps[30] = \
- { \
- REF (form_unknown), \
- REF (form_unknown), /* for ' ' */ \
- REF (form_unknown), /* for '+' */ \
- REF (form_unknown), /* for '-' */ \
- REF (form_unknown), /* for '<hash>' */ \
- REF (form_unknown), /* for '0' */ \
- REF (form_unknown), /* for '\'' */ \
- REF (form_unknown), /* for '*' */ \
- REF (form_unknown), /* for '1'...'9' */ \
- REF (form_unknown), /* for '.' */ \
- REF (mod_half), /* for 'h' */ \
- REF (mod_long), /* for 'l' */ \
- REF (mod_longlong), /* for 'L', 'q' */ \
- REF (mod_size_t), /* for 'z', 'Z' */ \
- REF (form_percent), /* for '%' */ \
- REF (form_integer), /* for 'd', 'i' */ \
- REF (form_unsigned), /* for 'u' */ \
- REF (form_octal), /* for 'o' */ \
- REF (form_hexa), /* for 'X', 'x' */ \
- REF (form_float), /* for 'E', 'e', 'F', 'f', 'G', 'g' */ \
- REF (form_character), /* for 'c' */ \
- REF (form_string), /* for 's', 'S' */ \
- REF (form_pointer), /* for 'p' */ \
- REF (form_number), /* for 'n' */ \
- REF (form_strerror), /* for 'm' */ \
- REF (form_wcharacter), /* for 'C' */ \
- REF (form_floathex), /* for 'A', 'a' */ \
- REF (mod_ptrdiff_t), /* for 't' */ \
- REF (mod_intmax_t), /* for 'j' */ \
- REF (form_unknown) /* for 'I' */ \
- }; \
- /* Step 3a: after processing first 'h' modifier. */ \
- static JUMP_TABLE_TYPE step3a_jumps[30] = \
- { \
- REF (form_unknown), \
- REF (form_unknown), /* for ' ' */ \
- REF (form_unknown), /* for '+' */ \
- REF (form_unknown), /* for '-' */ \
- REF (form_unknown), /* for '<hash>' */ \
- REF (form_unknown), /* for '0' */ \
- REF (form_unknown), /* for '\'' */ \
- REF (form_unknown), /* for '*' */ \
- REF (form_unknown), /* for '1'...'9' */ \
- REF (form_unknown), /* for '.' */ \
- REF (mod_halfhalf), /* for 'h' */ \
- REF (form_unknown), /* for 'l' */ \
- REF (form_unknown), /* for 'L', 'q' */ \
- REF (form_unknown), /* for 'z', 'Z' */ \
- REF (form_percent), /* for '%' */ \
- REF (form_integer), /* for 'd', 'i' */ \
- REF (form_unsigned), /* for 'u' */ \
- REF (form_octal), /* for 'o' */ \
- REF (form_hexa), /* for 'X', 'x' */ \
- REF (form_unknown), /* for 'E', 'e', 'F', 'f', 'G', 'g' */ \
- REF (form_unknown), /* for 'c' */ \
- REF (form_unknown), /* for 's', 'S' */ \
- REF (form_unknown), /* for 'p' */ \
- REF (form_number), /* for 'n' */ \
- REF (form_unknown), /* for 'm' */ \
- REF (form_unknown), /* for 'C' */ \
- REF (form_unknown), /* for 'A', 'a' */ \
- REF (form_unknown), /* for 't' */ \
- REF (form_unknown), /* for 'j' */ \
- REF (form_unknown) /* for 'I' */ \
- }; \
- /* Step 3b: after processing first 'l' modifier. */ \
- static JUMP_TABLE_TYPE step3b_jumps[30] = \
- { \
- REF (form_unknown), \
- REF (form_unknown), /* for ' ' */ \
- REF (form_unknown), /* for '+' */ \
- REF (form_unknown), /* for '-' */ \
- REF (form_unknown), /* for '<hash>' */ \
- REF (form_unknown), /* for '0' */ \
- REF (form_unknown), /* for '\'' */ \
- REF (form_unknown), /* for '*' */ \
- REF (form_unknown), /* for '1'...'9' */ \
- REF (form_unknown), /* for '.' */ \
- REF (form_unknown), /* for 'h' */ \
- REF (mod_longlong), /* for 'l' */ \
- REF (form_unknown), /* for 'L', 'q' */ \
- REF (form_unknown), /* for 'z', 'Z' */ \
- REF (form_percent), /* for '%' */ \
- REF (form_integer), /* for 'd', 'i' */ \
- REF (form_unsigned), /* for 'u' */ \
- REF (form_octal), /* for 'o' */ \
- REF (form_hexa), /* for 'X', 'x' */ \
- REF (form_float), /* for 'E', 'e', 'F', 'f', 'G', 'g' */ \
- REF (form_character), /* for 'c' */ \
- REF (form_string), /* for 's', 'S' */ \
- REF (form_pointer), /* for 'p' */ \
- REF (form_number), /* for 'n' */ \
- REF (form_strerror), /* for 'm' */ \
- REF (form_wcharacter), /* for 'C' */ \
- REF (form_floathex), /* for 'A', 'a' */ \
- REF (form_unknown), /* for 't' */ \
- REF (form_unknown), /* for 'j' */ \
- REF (form_unknown) /* for 'I' */ \
- }
-
-#define STEP4_TABLE \
- /* Step 4: processing format specifier. */ \
- static JUMP_TABLE_TYPE step4_jumps[30] = \
- { \
- REF (form_unknown), \
- REF (form_unknown), /* for ' ' */ \
- REF (form_unknown), /* for '+' */ \
- REF (form_unknown), /* for '-' */ \
- REF (form_unknown), /* for '<hash>' */ \
- REF (form_unknown), /* for '0' */ \
- REF (form_unknown), /* for '\'' */ \
- REF (form_unknown), /* for '*' */ \
- REF (form_unknown), /* for '1'...'9' */ \
- REF (form_unknown), /* for '.' */ \
- REF (form_unknown), /* for 'h' */ \
- REF (form_unknown), /* for 'l' */ \
- REF (form_unknown), /* for 'L', 'q' */ \
- REF (form_unknown), /* for 'z', 'Z' */ \
- REF (form_percent), /* for '%' */ \
- REF (form_integer), /* for 'd', 'i' */ \
- REF (form_unsigned), /* for 'u' */ \
- REF (form_octal), /* for 'o' */ \
- REF (form_hexa), /* for 'X', 'x' */ \
- REF (form_float), /* for 'E', 'e', 'F', 'f', 'G', 'g' */ \
- REF (form_character), /* for 'c' */ \
- REF (form_string), /* for 's', 'S' */ \
- REF (form_pointer), /* for 'p' */ \
- REF (form_number), /* for 'n' */ \
- REF (form_strerror), /* for 'm' */ \
- REF (form_wcharacter), /* for 'C' */ \
- REF (form_floathex), /* for 'A', 'a' */ \
- REF (form_unknown), /* for 't' */ \
- REF (form_unknown), /* for 'j' */ \
- REF (form_unknown) /* for 'I' */ \
- }
-
-
-#define process_arg(fspec) \
- /* Start real work. We know about all flags and modifiers and \
- now process the wanted format specifier. */ \
- LABEL (form_percent): \
- /* Write a literal "%". */ \
- outchar (L_('%')); \
- break; \
- \
- LABEL (form_integer): \
- /* Signed decimal integer. */ \
- base = 10; \
- \
- if (is_longlong) \
- { \
- long long int signed_number; \
- \
- if (fspec == NULL) \
- signed_number = va_arg (ap, long long int); \
- else \
- signed_number = args_value[fspec->data_arg].pa_long_long_int; \
- \
- is_negative = signed_number < 0; \
- number.longlong = is_negative ? (- signed_number) : signed_number; \
- \
- goto LABEL (longlong_number); \
- } \
- else \
- { \
- long int signed_number; \
- \
- if (fspec == NULL) \
- { \
- if (is_long_num) \
- signed_number = va_arg (ap, long int); \
- else if (is_char) \
- signed_number = (signed char) va_arg (ap, unsigned int); \
- else if (!is_short) \
- signed_number = va_arg (ap, int); \
- else \
- signed_number = (short int) va_arg (ap, unsigned int); \
- } \
- else \
- if (is_long_num) \
- signed_number = args_value[fspec->data_arg].pa_long_int; \
- else if (is_char) \
- signed_number = (signed char) \
- args_value[fspec->data_arg].pa_u_int; \
- else if (!is_short) \
- signed_number = args_value[fspec->data_arg].pa_int; \
- else \
- signed_number = (short int) \
- args_value[fspec->data_arg].pa_u_int; \
- \
- is_negative = signed_number < 0; \
- number.word = is_negative ? (- signed_number) : signed_number; \
- \
- goto LABEL (number); \
- } \
- /* NOTREACHED */ \
- \
- LABEL (form_unsigned): \
- /* Unsigned decimal integer. */ \
- base = 10; \
- goto LABEL (unsigned_number); \
- /* NOTREACHED */ \
- \
- LABEL (form_octal): \
- /* Unsigned octal integer. */ \
- base = 8; \
- goto LABEL (unsigned_number); \
- /* NOTREACHED */ \
- \
- LABEL (form_hexa): \
- /* Unsigned hexadecimal integer. */ \
- base = 16; \
- \
- LABEL (unsigned_number): /* Unsigned number of base BASE. */ \
- \
- /* ISO specifies the `+' and ` ' flags only for signed \
- conversions. */ \
- is_negative = 0; \
- showsign = 0; \
- space = 0; \
- \
- if (is_longlong) \
- { \
- if (fspec == NULL) \
- number.longlong = va_arg (ap, unsigned long long int); \
- else \
- number.longlong = args_value[fspec->data_arg].pa_u_long_long_int; \
- \
- LABEL (longlong_number): \
- if (prec < 0) \
- /* Supply a default precision if none was given. */ \
- prec = 1; \
- else \
- /* We have to take care for the '0' flag. If a precision \
- is given it must be ignored. */ \
- pad = L_(' '); \
- \
- /* If the precision is 0 and the number is 0 nothing has to \
- be written for the number, except for the 'o' format in \
- alternate form. */ \
- if (prec == 0 && number.longlong == 0) \
- { \
- string = workend; \
- if (base == 8 && alt) \
- *--string = L_('0'); \
- } \
- else \
- { \
- /* Put the number in WORK. */ \
- string = _itoa (number.longlong, workend, base, \
- spec == L_('X')); \
- if (group && grouping) \
- string = group_number (work_buffer, string, workend, \
- grouping, thousands_sep); \
- if (use_outdigits && base == 10) \
- string = _i18n_number_rewrite (string, workend, workend); \
- } \
- /* Simplify further test for num != 0. */ \
- number.word = number.longlong != 0; \
- } \
- else \
- { \
- if (fspec == NULL) \
- { \
- if (is_long_num) \
- number.word = va_arg (ap, unsigned long int); \
- else if (is_char) \
- number.word = (unsigned char) va_arg (ap, unsigned int); \
- else if (!is_short) \
- number.word = va_arg (ap, unsigned int); \
- else \
- number.word = (unsigned short int) va_arg (ap, unsigned int); \
- } \
- else \
- if (is_long_num) \
- number.word = args_value[fspec->data_arg].pa_u_long_int; \
- else if (is_char) \
- number.word = (unsigned char) \
- args_value[fspec->data_arg].pa_u_int; \
- else if (!is_short) \
- number.word = args_value[fspec->data_arg].pa_u_int; \
- else \
- number.word = (unsigned short int) \
- args_value[fspec->data_arg].pa_u_int; \
- \
- LABEL (number): \
- if (prec < 0) \
- /* Supply a default precision if none was given. */ \
- prec = 1; \
- else \
- /* We have to take care for the '0' flag. If a precision \
- is given it must be ignored. */ \
- pad = L_(' '); \
- \
- /* If the precision is 0 and the number is 0 nothing has to \
- be written for the number, except for the 'o' format in \
- alternate form. */ \
- if (prec == 0 && number.word == 0) \
- { \
- string = workend; \
- if (base == 8 && alt) \
- *--string = L_('0'); \
- } \
- else \
- { \
- /* Put the number in WORK. */ \
- string = _itoa_word (number.word, workend, base, \
- spec == L_('X')); \
- if (group && grouping) \
- string = group_number (work_buffer, string, workend, \
- grouping, thousands_sep); \
- if (use_outdigits && base == 10) \
- string = _i18n_number_rewrite (string, workend, workend); \
- } \
- } \
- \
- if (prec <= workend - string && number.word != 0 && alt && base == 8) \
- /* Add octal marker. */ \
- *--string = L_('0'); \
- \
- prec = MAX (0, prec - (workend - string)); \
- \
- if (!left) \
- { \
- width -= workend - string + prec; \
- \
- if (number.word != 0 && alt && base == 16) \
- /* Account for 0X hex marker. */ \
- width -= 2; \
- \
- if (is_negative || showsign || space) \
- --width; \
- \
- if (pad == L_(' ')) \
- { \
- PAD (L_(' ')); \
- width = 0; \
- } \
- \
- if (is_negative) \
- outchar (L_('-')); \
- else if (showsign) \
- outchar (L_('+')); \
- else if (space) \
- outchar (L_(' ')); \
- \
- if (number.word != 0 && alt && base == 16) \
- { \
- outchar (L_('0')); \
- outchar (spec); \
- } \
- \
- width += prec; \
- PAD (L_('0')); \
- \
- outstring (string, workend - string); \
- \
- break; \
- } \
- else \
- { \
- if (is_negative) \
- { \
- outchar (L_('-')); \
- --width; \
- } \
- else if (showsign) \
- { \
- outchar (L_('+')); \
- --width; \
- } \
- else if (space) \
- { \
- outchar (L_(' ')); \
- --width; \
- } \
- \
- if (number.word != 0 && alt && base == 16) \
- { \
- outchar (L_('0')); \
- outchar (spec); \
- width -= 2; \
- } \
- \
- width -= workend - string + prec; \
- \
- if (prec > 0) \
- { \
- int temp = width; \
- width = prec; \
- PAD (L_('0')); \
- width = temp; \
- } \
- \
- outstring (string, workend - string); \
- \
- PAD (L_(' ')); \
- break; \
- } \
- \
- LABEL (form_float): \
- { \
- /* Floating-point number. This is handled by printf_fp.c. */ \
- const void *ptr; \
- int function_done; \
- \
- if (fspec == NULL) \
- { \
- if (__ldbl_is_dbl) \
- is_long_double = 0; \
- \
- struct printf_info info = { .prec = prec, \
- .width = width, \
- .spec = spec, \
- .is_long_double = is_long_double, \
- .is_short = is_short, \
- .is_long = is_long, \
- .alt = alt, \
- .space = space, \
- .left = left, \
- .showsign = showsign, \
- .group = group, \
- .pad = pad, \
- .extra = 0, \
- .i18n = use_outdigits, \
- .wide = sizeof (CHAR_T) != 1, \
- .is_binary128 = 0}; \
- \
- if (is_long_double) \
- the_arg.pa_long_double = va_arg (ap, long double); \
- else \
- the_arg.pa_double = va_arg (ap, double); \
- ptr = (const void *) &the_arg; \
- \
- function_done = __printf_fp (s, &info, &ptr); \
- } \
- else \
- { \
- ptr = (const void *) &args_value[fspec->data_arg]; \
- if (__ldbl_is_dbl) \
- { \
- fspec->data_arg_type = PA_DOUBLE; \
- fspec->info.is_long_double = 0; \
- } \
- /* Not supported by *printf functions. */ \
- fspec->info.is_binary128 = 0; \
- \
- function_done = __printf_fp (s, &fspec->info, &ptr); \
- } \
- \
- if (function_done < 0) \
- { \
- /* Error in print handler; up to handler to set errno. */ \
- done = -1; \
- goto all_done; \
- } \
- \
- done_add (function_done); \
- } \
- break; \
- \
- LABEL (form_floathex): \
- { \
- /* Floating point number printed as hexadecimal number. */ \
- const void *ptr; \
- int function_done; \
- \
- if (fspec == NULL) \
- { \
- if (__ldbl_is_dbl) \
- is_long_double = 0; \
- \
- struct printf_info info = { .prec = prec, \
- .width = width, \
- .spec = spec, \
- .is_long_double = is_long_double, \
- .is_short = is_short, \
- .is_long = is_long, \
- .alt = alt, \
- .space = space, \
- .left = left, \
- .showsign = showsign, \
- .group = group, \
- .pad = pad, \
- .extra = 0, \
- .wide = sizeof (CHAR_T) != 1, \
- .is_binary128 = 0}; \
- \
- if (is_long_double) \
- the_arg.pa_long_double = va_arg (ap, long double); \
- else \
- the_arg.pa_double = va_arg (ap, double); \
- ptr = (const void *) &the_arg; \
- \
- function_done = __printf_fphex (s, &info, &ptr); \
- } \
- else \
- { \
- ptr = (const void *) &args_value[fspec->data_arg]; \
- if (__ldbl_is_dbl) \
- fspec->info.is_long_double = 0; \
- /* Not supported by *printf functions. */ \
- fspec->info.is_binary128 = 0; \
- \
- function_done = __printf_fphex (s, &fspec->info, &ptr); \
- } \
- \
- if (function_done < 0) \
- { \
- /* Error in print handler; up to handler to set errno. */ \
- done = -1; \
- goto all_done; \
- } \
- \
- done_add (function_done); \
- } \
- break; \
- \
- LABEL (form_pointer): \
- /* Generic pointer. */ \
- { \
- const void *ptr; \
- if (fspec == NULL) \
- ptr = va_arg (ap, void *); \
- else \
- ptr = args_value[fspec->data_arg].pa_pointer; \
- if (ptr != NULL) \
- { \
- /* If the pointer is not NULL, write it as a %#x spec. */ \
- base = 16; \
- number.word = (unsigned long int) ptr; \
- is_negative = 0; \
- alt = 1; \
- group = 0; \
- spec = L_('x'); \
- goto LABEL (number); \
- } \
- else \
- { \
- /* Write "(nil)" for a nil pointer. */ \
- string = (CHAR_T *) L_("(nil)"); \
- /* Make sure the full string "(nil)" is printed. */ \
- if (prec < 5) \
- prec = 5; \
- /* This is a wide string iff compiling wprintf. */ \
- is_long = sizeof (CHAR_T) > 1; \
- goto LABEL (print_string); \
- } \
- } \
- /* NOTREACHED */ \
- \
- LABEL (form_number): \
- if (s->_flags2 & _IO_FLAGS2_FORTIFY) \
- { \
- if (! readonly_format) \
- { \
- extern int __readonly_area (const void *, size_t) \
- attribute_hidden; \
- readonly_format \
- = __readonly_area (format, ((STR_LEN (format) + 1) \
- * sizeof (CHAR_T))); \
- } \
- if (readonly_format < 0) \
- __libc_fatal ("*** %n in writable segment detected ***\n"); \
- } \
- /* Answer the count of characters written. */ \
- if (fspec == NULL) \
- { \
- if (is_longlong) \
- *(long long int *) va_arg (ap, void *) = done; \
- else if (is_long_num) \
- *(long int *) va_arg (ap, void *) = done; \
- else if (is_char) \
- *(char *) va_arg (ap, void *) = done; \
- else if (!is_short) \
- *(int *) va_arg (ap, void *) = done; \
- else \
- *(short int *) va_arg (ap, void *) = done; \
- } \
- else \
- if (is_longlong) \
- *(long long int *) args_value[fspec->data_arg].pa_pointer = done; \
- else if (is_long_num) \
- *(long int *) args_value[fspec->data_arg].pa_pointer = done; \
- else if (is_char) \
- *(char *) args_value[fspec->data_arg].pa_pointer = done; \
- else if (!is_short) \
- *(int *) args_value[fspec->data_arg].pa_pointer = done; \
- else \
- *(short int *) args_value[fspec->data_arg].pa_pointer = done; \
- break; \
- \
- LABEL (form_strerror): \
- /* Print description of error ERRNO. */ \
- string = \
- (CHAR_T *) __strerror_r (save_errno, (char *) work_buffer, \
- WORK_BUFFER_SIZE * sizeof (CHAR_T)); \
- is_long = 0; /* This is no wide-char string. */ \
- goto LABEL (print_string)
-
-#ifdef COMPILE_WPRINTF
-# define process_string_arg(fspec) \
- LABEL (form_character): \
- /* Character. */ \
- if (is_long) \
- goto LABEL (form_wcharacter); \
- --width; /* Account for the character itself. */ \
- if (!left) \
- PAD (L' '); \
- if (fspec == NULL) \
- outchar (__btowc ((unsigned char) va_arg (ap, int))); /* Promoted. */ \
- else \
- outchar (__btowc ((unsigned char) \
- args_value[fspec->data_arg].pa_int)); \
- if (left) \
- PAD (L' '); \
- break; \
- \
- LABEL (form_wcharacter): \
- { \
- /* Wide character. */ \
- --width; \
- if (!left) \
- PAD (L' '); \
- if (fspec == NULL) \
- outchar (va_arg (ap, wchar_t)); \
- else \
- outchar (args_value[fspec->data_arg].pa_wchar); \
- if (left) \
- PAD (L' '); \
- } \
- break; \
- \
- LABEL (form_string): \
- { \
- size_t len; \
- int string_malloced; \
- \
- /* The string argument could in fact be `char *' or `wchar_t *'. \
- But this should not make a difference here. */ \
- if (fspec == NULL) \
- string = (CHAR_T *) va_arg (ap, const wchar_t *); \
- else \
- string = (CHAR_T *) args_value[fspec->data_arg].pa_wstring; \
- \
- /* Entry point for printing other strings. */ \
- LABEL (print_string): \
- \
- string_malloced = 0; \
- if (string == NULL) \
- { \
- /* Write "(null)" if there's space. */ \
- if (prec == -1 || prec >= (int) array_length (null) - 1) \
- { \
- string = (CHAR_T *) null; \
- len = array_length (null) - 1; \
- } \
- else \
- { \
- string = (CHAR_T *) L""; \
- len = 0; \
- } \
- } \
- else if (!is_long && spec != L_('S')) \
- { \
- /* This is complicated. We have to transform the multibyte \
- string into a wide character string. */ \
- const char *mbs = (const char *) string; \
- mbstate_t mbstate; \
- \
- len = prec != -1 ? __strnlen (mbs, (size_t) prec) : strlen (mbs); \
- \
- /* Allocate dynamically an array which definitely is long \
- enough for the wide character version. Each byte in the \
- multi-byte string can produce at most one wide character. */ \
- if (__glibc_unlikely (len > SIZE_MAX / sizeof (wchar_t))) \
- { \
- __set_errno (EOVERFLOW); \
- done = -1; \
- goto all_done; \
- } \
- else if (__libc_use_alloca (len * sizeof (wchar_t))) \
- string = (CHAR_T *) alloca (len * sizeof (wchar_t)); \
- else if ((string = (CHAR_T *) malloc (len * sizeof (wchar_t))) \
- == NULL) \
- { \
- done = -1; \
- goto all_done; \
- } \
- else \
- string_malloced = 1; \
- \
- memset (&mbstate, '\0', sizeof (mbstate_t)); \
- len = __mbsrtowcs (string, &mbs, len, &mbstate); \
- if (len == (size_t) -1) \
- { \
- /* Illegal multibyte character. */ \
- done = -1; \
- goto all_done; \
- } \
- } \
- else \
- { \
- if (prec != -1) \
- /* Search for the end of the string, but don't search past \
- the length specified by the precision. */ \
- len = __wcsnlen (string, prec); \
- else \
- len = __wcslen (string); \
- } \
- \
- if ((width -= len) < 0) \
- { \
- outstring (string, len); \
- break; \
- } \
- \
- if (!left) \
- PAD (L' '); \
- outstring (string, len); \
- if (left) \
- PAD (L' '); \
- if (__glibc_unlikely (string_malloced)) \
- free (string); \
- } \
- break;
-#else
-# define process_string_arg(fspec) \
- LABEL (form_character): \
- /* Character. */ \
- if (is_long) \
- goto LABEL (form_wcharacter); \
- --width; /* Account for the character itself. */ \
- if (!left) \
- PAD (' '); \
- if (fspec == NULL) \
- outchar ((unsigned char) va_arg (ap, int)); /* Promoted. */ \
- else \
- outchar ((unsigned char) args_value[fspec->data_arg].pa_int); \
- if (left) \
- PAD (' '); \
- break; \
- \
- LABEL (form_wcharacter): \
- { \
- /* Wide character. */ \
- char buf[MB_LEN_MAX]; \
- mbstate_t mbstate; \
- size_t len; \
- \
- memset (&mbstate, '\0', sizeof (mbstate_t)); \
- len = __wcrtomb (buf, (fspec == NULL ? va_arg (ap, wchar_t) \
- : args_value[fspec->data_arg].pa_wchar), \
- &mbstate); \
- if (len == (size_t) -1) \
- { \
- /* Something went wrong during the conversion. Bail out. */ \
- done = -1; \
- goto all_done; \
- } \
- width -= len; \
- if (!left) \
- PAD (' '); \
- outstring (buf, len); \
- if (left) \
- PAD (' '); \
- } \
- break; \
- \
- LABEL (form_string): \
- { \
- size_t len; \
- int string_malloced; \
- \
- /* The string argument could in fact be `char *' or `wchar_t *'. \
- But this should not make a difference here. */ \
- if (fspec == NULL) \
- string = (char *) va_arg (ap, const char *); \
- else \
- string = (char *) args_value[fspec->data_arg].pa_string; \
- \
- /* Entry point for printing other strings. */ \
- LABEL (print_string): \
- \
- string_malloced = 0; \
- if (string == NULL) \
- { \
- /* Write "(null)" if there's space. */ \
- if (prec == -1 || prec >= (int) sizeof (null) - 1) \
- { \
- string = (char *) null; \
- len = sizeof (null) - 1; \
- } \
- else \
- { \
- string = (char *) ""; \
- len = 0; \
- } \
- } \
- else if (!is_long && spec != L_('S')) \
- { \
- if (prec != -1) \
- /* Search for the end of the string, but don't search past \
- the length (in bytes) specified by the precision. */ \
- len = __strnlen (string, prec); \
- else \
- len = strlen (string); \
- } \
- else \
- { \
- const wchar_t *s2 = (const wchar_t *) string; \
- mbstate_t mbstate; \
- \
- memset (&mbstate, '\0', sizeof (mbstate_t)); \
- \
- if (prec >= 0) \
- { \
- /* The string `s2' might not be NUL terminated. */ \
- if (__libc_use_alloca (prec)) \
- string = (char *) alloca (prec); \
- else if ((string = (char *) malloc (prec)) == NULL) \
- { \
- done = -1; \
- goto all_done; \
- } \
- else \
- string_malloced = 1; \
- len = __wcsrtombs (string, &s2, prec, &mbstate); \
- } \
- else \
- { \
- len = __wcsrtombs (NULL, &s2, 0, &mbstate); \
- if (len != (size_t) -1) \
- { \
- assert (__mbsinit (&mbstate)); \
- s2 = (const wchar_t *) string; \
- if (__libc_use_alloca (len + 1)) \
- string = (char *) alloca (len + 1); \
- else if ((string = (char *) malloc (len + 1)) == NULL) \
- { \
- done = -1; \
- goto all_done; \
- } \
- else \
- string_malloced = 1; \
- (void) __wcsrtombs (string, &s2, len + 1, &mbstate); \
- } \
- } \
- \
- if (len == (size_t) -1) \
- { \
- /* Illegal wide-character string. */ \
- done = -1; \
- goto all_done; \
- } \
- } \
- \
- if ((width -= len) < 0) \
- { \
- outstring (string, len); \
- break; \
- } \
- \
- if (!left) \
- PAD (' '); \
- outstring (string, len); \
- if (left) \
- PAD (' '); \
- if (__glibc_unlikely (string_malloced)) \
- free (string); \
- } \
- break;
-#endif
-
-/* Helper function to provide temporary buffering for unbuffered streams. */
-static int buffered_vfprintf (FILE *stream, const CHAR_T *fmt, va_list)
- __THROW __attribute__ ((noinline));
-
-/* Handle positional format specifiers. */
-static int printf_positional (FILE *s,
- const CHAR_T *format, int readonly_format,
- va_list ap, va_list *ap_savep, int done,
- int nspecs_done, const UCHAR_T *lead_str_end,
- CHAR_T *work_buffer, int save_errno,
- const char *grouping, THOUSANDS_SEP_T);
-
-/* Handle unknown format specifier. */
-static int printf_unknown (FILE *, const struct printf_info *,
- const void *const *) __THROW;
-
-/* Group digits of number string. */
-static CHAR_T *group_number (CHAR_T *, CHAR_T *, CHAR_T *, const char *,
- THOUSANDS_SEP_T);
-
-/* The function itself. */
-int
-vfprintf (FILE *s, const CHAR_T *format, va_list ap)
+extern int
+__vfprintf (FILE *fp, const char *format, va_list ap)
{
- /* The character used as thousands separator. */
- THOUSANDS_SEP_T thousands_sep = 0;
-
- /* The string describing the size of groups of digits. */
- const char *grouping;
-
- /* Place to accumulate the result. */
- int done;
-
- /* Current character in format string. */
- const UCHAR_T *f;
-
- /* End of leading constant string. */
- const UCHAR_T *lead_str_end;
-
- /* Points to next format specifier. */
- const UCHAR_T *end_of_spec;
-
- /* Buffer intermediate results. */
- CHAR_T work_buffer[WORK_BUFFER_SIZE];
- CHAR_T *workstart = NULL;
- CHAR_T *workend;
-
- /* We have to save the original argument pointer. */
- va_list ap_save;
-
- /* Count number of specifiers we already processed. */
- int nspecs_done;
-
- /* For the %m format we may need the current `errno' value. */
- int save_errno = errno;
-
- /* 1 if format is in read-only memory, -1 if it is in writable memory,
- 0 if unknown. */
- int readonly_format = 0;
-
- /* Orient the stream. */
-#ifdef ORIENT
- ORIENT;
-#endif
-
- /* Sanity check of arguments. */
- ARGCHECK (s, format);
-
-#ifdef ORIENT
- /* Check for correct orientation. */
- if (_IO_vtable_offset (s) == 0 &&
- _IO_fwide (s, sizeof (CHAR_T) == 1 ? -1 : 1)
- != (sizeof (CHAR_T) == 1 ? -1 : 1))
- /* The stream is already oriented otherwise. */
- return EOF;
-#endif
-
- if (UNBUFFERED_P (s))
- /* Use a helper function which will allocate a local temporary buffer
- for the stream and then call us again. */
- return buffered_vfprintf (s, format, ap);
-
- /* Initialize local variables. */
- done = 0;
- grouping = (const char *) -1;
-#ifdef __va_copy
- /* This macro will be available soon in gcc's <stdarg.h>. We need it
- since on some systems `va_list' is not an integral type. */
- __va_copy (ap_save, ap);
-#else
- ap_save = ap;
-#endif
- nspecs_done = 0;
-
-#ifdef COMPILE_WPRINTF
- /* Find the first format specifier. */
- f = lead_str_end = __find_specwc ((const UCHAR_T *) format);
-#else
- /* Find the first format specifier. */
- f = lead_str_end = __find_specmb ((const UCHAR_T *) format);
-#endif
-
- /* Lock stream. */
- _IO_cleanup_region_start ((void (*) (void *)) &_IO_funlockfile, s);
- _IO_flockfile (s);
-
- /* Write the literal text before the first format. */
- outstring ((const UCHAR_T *) format,
- lead_str_end - (const UCHAR_T *) format);
-
- /* If we only have to print a simple string, return now. */
- if (*f == L_('\0'))
- goto all_done;
-
- /* Use the slow path in case any printf handler is registered. */
- if (__glibc_unlikely (__printf_function_table != NULL
- || __printf_modifier_table != NULL
- || __printf_va_arg_table != NULL))
- goto do_positional;
-
- /* Process whole format string. */
- do
- {
- STEP0_3_TABLE;
- STEP4_TABLE;
-
- union printf_arg *args_value; /* This is not used here but ... */
- int is_negative; /* Flag for negative number. */
- union
- {
- unsigned long long int longlong;
- unsigned long int word;
- } number;
- int base;
- union printf_arg the_arg;
- CHAR_T *string; /* Pointer to argument string. */
- int alt = 0; /* Alternate format. */
- int space = 0; /* Use space prefix if no sign is needed. */
- int left = 0; /* Left-justify output. */
- int showsign = 0; /* Always begin with plus or minus sign. */
- int group = 0; /* Print numbers according grouping rules. */
- int is_long_double = 0; /* Argument is long double/ long long int. */
- int is_short = 0; /* Argument is short int. */
- int is_long = 0; /* Argument is long int. */
- int is_char = 0; /* Argument is promoted (unsigned) char. */
- int width = 0; /* Width of output; 0 means none specified. */
- int prec = -1; /* Precision of output; -1 means none specified. */
- /* This flag is set by the 'I' modifier and selects the use of the
- `outdigits' as determined by the current locale. */
- int use_outdigits = 0;
- UCHAR_T pad = L_(' ');/* Padding character. */
- CHAR_T spec;
-
- workstart = NULL;
- workend = work_buffer + WORK_BUFFER_SIZE;
-
- /* Get current character in format string. */
- JUMP (*++f, step0_jumps);
-
- /* ' ' flag. */
- LABEL (flag_space):
- space = 1;
- JUMP (*++f, step0_jumps);
-
- /* '+' flag. */
- LABEL (flag_plus):
- showsign = 1;
- JUMP (*++f, step0_jumps);
-
- /* The '-' flag. */
- LABEL (flag_minus):
- left = 1;
- pad = L_(' ');
- JUMP (*++f, step0_jumps);
-
- /* The '#' flag. */
- LABEL (flag_hash):
- alt = 1;
- JUMP (*++f, step0_jumps);
-
- /* The '0' flag. */
- LABEL (flag_zero):
- if (!left)
- pad = L_('0');
- JUMP (*++f, step0_jumps);
-
- /* The '\'' flag. */
- LABEL (flag_quote):
- group = 1;
-
- if (grouping == (const char *) -1)
- {
-#ifdef COMPILE_WPRINTF
- thousands_sep = _NL_CURRENT_WORD (LC_NUMERIC,
- _NL_NUMERIC_THOUSANDS_SEP_WC);
-#else
- thousands_sep = _NL_CURRENT (LC_NUMERIC, THOUSANDS_SEP);
-#endif
-
- grouping = _NL_CURRENT (LC_NUMERIC, GROUPING);
- if (*grouping == '\0' || *grouping == CHAR_MAX
-#ifdef COMPILE_WPRINTF
- || thousands_sep == L'\0'
-#else
- || *thousands_sep == '\0'
-#endif
- )
- grouping = NULL;
- }
- JUMP (*++f, step0_jumps);
-
- LABEL (flag_i18n):
- use_outdigits = 1;
- JUMP (*++f, step0_jumps);
-
- /* Get width from argument. */
- LABEL (width_asterics):
- {
- const UCHAR_T *tmp; /* Temporary value. */
-
- tmp = ++f;
- if (ISDIGIT (*tmp))
- {
- int pos = read_int (&tmp);
-
- if (pos == -1)
- {
- __set_errno (EOVERFLOW);
- done = -1;
- goto all_done;
- }
-
- if (pos && *tmp == L_('$'))
- /* The width comes from a positional parameter. */
- goto do_positional;
- }
- width = va_arg (ap, int);
-
- /* Negative width means left justified. */
- if (width < 0)
- {
- width = -width;
- pad = L_(' ');
- left = 1;
- }
-
- if (__glibc_unlikely (width >= INT_MAX / sizeof (CHAR_T) - EXTSIZ))
- {
- __set_errno (EOVERFLOW);
- done = -1;
- goto all_done;
- }
-
- if (width >= WORK_BUFFER_SIZE - EXTSIZ)
- {
- /* We have to use a special buffer. */
- size_t needed = ((size_t) width + EXTSIZ) * sizeof (CHAR_T);
- if (__libc_use_alloca (needed))
- workend = (CHAR_T *) alloca (needed) + width + EXTSIZ;
- else
- {
- workstart = (CHAR_T *) malloc (needed);
- if (workstart == NULL)
- {
- done = -1;
- goto all_done;
- }
- workend = workstart + width + EXTSIZ;
- }
- }
- }
- JUMP (*f, step1_jumps);
-
- /* Given width in format string. */
- LABEL (width):
- width = read_int (&f);
-
- if (__glibc_unlikely (width == -1
- || width >= INT_MAX / sizeof (CHAR_T) - EXTSIZ))
- {
- __set_errno (EOVERFLOW);
- done = -1;
- goto all_done;
- }
-
- if (width >= WORK_BUFFER_SIZE - EXTSIZ)
- {
- /* We have to use a special buffer. */
- size_t needed = ((size_t) width + EXTSIZ) * sizeof (CHAR_T);
- if (__libc_use_alloca (needed))
- workend = (CHAR_T *) alloca (needed) + width + EXTSIZ;
- else
- {
- workstart = (CHAR_T *) malloc (needed);
- if (workstart == NULL)
- {
- done = -1;
- goto all_done;
- }
- workend = workstart + width + EXTSIZ;
- }
- }
- if (*f == L_('$'))
- /* Oh, oh. The argument comes from a positional parameter. */
- goto do_positional;
- JUMP (*f, step1_jumps);
-
- LABEL (precision):
- ++f;
- if (*f == L_('*'))
- {
- const UCHAR_T *tmp; /* Temporary value. */
-
- tmp = ++f;
- if (ISDIGIT (*tmp))
- {
- int pos = read_int (&tmp);
-
- if (pos == -1)
- {
- __set_errno (EOVERFLOW);
- done = -1;
- goto all_done;
- }
-
- if (pos && *tmp == L_('$'))
- /* The precision comes from a positional parameter. */
- goto do_positional;
- }
- prec = va_arg (ap, int);
-
- /* If the precision is negative the precision is omitted. */
- if (prec < 0)
- prec = -1;
- }
- else if (ISDIGIT (*f))
- {
- prec = read_int (&f);
-
- /* The precision was specified in this case as an extremely
- large positive value. */
- if (prec == -1)
- {
- __set_errno (EOVERFLOW);
- done = -1;
- goto all_done;
- }
- }
- else
- prec = 0;
- if (prec > width && prec > WORK_BUFFER_SIZE - EXTSIZ)
- {
- /* Deallocate any previously allocated buffer because it is
- too small. */
- if (__glibc_unlikely (workstart != NULL))
- free (workstart);
- workstart = NULL;
- if (__glibc_unlikely (prec >= INT_MAX / sizeof (CHAR_T) - EXTSIZ))
- {
- __set_errno (EOVERFLOW);
- done = -1;
- goto all_done;
- }
- size_t needed = ((size_t) prec + EXTSIZ) * sizeof (CHAR_T);
-
- if (__libc_use_alloca (needed))
- workend = (CHAR_T *) alloca (needed) + prec + EXTSIZ;
- else
- {
- workstart = (CHAR_T *) malloc (needed);
- if (workstart == NULL)
- {
- done = -1;
- goto all_done;
- }
- workend = workstart + prec + EXTSIZ;
- }
- }
- JUMP (*f, step2_jumps);
-
- /* Process 'h' modifier. There might another 'h' following. */
- LABEL (mod_half):
- is_short = 1;
- JUMP (*++f, step3a_jumps);
-
- /* Process 'hh' modifier. */
- LABEL (mod_halfhalf):
- is_short = 0;
- is_char = 1;
- JUMP (*++f, step4_jumps);
-
- /* Process 'l' modifier. There might another 'l' following. */
- LABEL (mod_long):
- is_long = 1;
- JUMP (*++f, step3b_jumps);
-
- /* Process 'L', 'q', or 'll' modifier. No other modifier is
- allowed to follow. */
- LABEL (mod_longlong):
- is_long_double = 1;
- is_long = 1;
- JUMP (*++f, step4_jumps);
-
- LABEL (mod_size_t):
- is_long_double = sizeof (size_t) > sizeof (unsigned long int);
- is_long = sizeof (size_t) > sizeof (unsigned int);
- JUMP (*++f, step4_jumps);
-
- LABEL (mod_ptrdiff_t):
- is_long_double = sizeof (ptrdiff_t) > sizeof (unsigned long int);
- is_long = sizeof (ptrdiff_t) > sizeof (unsigned int);
- JUMP (*++f, step4_jumps);
-
- LABEL (mod_intmax_t):
- is_long_double = sizeof (intmax_t) > sizeof (unsigned long int);
- is_long = sizeof (intmax_t) > sizeof (unsigned int);
- JUMP (*++f, step4_jumps);
-
- /* Process current format. */
- while (1)
- {
- process_arg (((struct printf_spec *) NULL));
- process_string_arg (((struct printf_spec *) NULL));
-
- LABEL (form_unknown):
- if (spec == L_('\0'))
- {
- /* The format string ended before the specifier is complete. */
- __set_errno (EINVAL);
- done = -1;
- goto all_done;
- }
-
- /* If we are in the fast loop force entering the complicated
- one. */
- goto do_positional;
- }
-
- /* The format is correctly handled. */
- ++nspecs_done;
-
- if (__glibc_unlikely (workstart != NULL))
- free (workstart);
- workstart = NULL;
-
- /* Look for next format specifier. */
-#ifdef COMPILE_WPRINTF
- f = __find_specwc ((end_of_spec = ++f));
-#else
- f = __find_specmb ((end_of_spec = ++f));
-#endif
-
- /* Write the following constant string. */
- outstring (end_of_spec, f - end_of_spec);
- }
- while (*f != L_('\0'));
-
- /* Unlock stream and return. */
- goto all_done;
-
- /* Hand off processing for positional parameters. */
-do_positional:
- if (__glibc_unlikely (workstart != NULL))
- {
- free (workstart);
- workstart = NULL;
- }
- done = printf_positional (s, format, readonly_format, ap, &ap_save,
- done, nspecs_done, lead_str_end, work_buffer,
- save_errno, grouping, thousands_sep);
-
- all_done:
- if (__glibc_unlikely (workstart != NULL))
- free (workstart);
- /* Unlock the stream. */
- _IO_funlockfile (s);
- _IO_cleanup_region_end (0);
-
- return done;
-}
-
-static int
-printf_positional (FILE *s, const CHAR_T *format, int readonly_format,
- va_list ap, va_list *ap_savep, int done, int nspecs_done,
- const UCHAR_T *lead_str_end,
- CHAR_T *work_buffer, int save_errno,
- const char *grouping, THOUSANDS_SEP_T thousands_sep)
-{
- /* For positional argument handling. */
- struct scratch_buffer specsbuf;
- scratch_buffer_init (&specsbuf);
- struct printf_spec *specs = specsbuf.data;
- size_t specs_limit = specsbuf.length / sizeof (specs[0]);
-
- /* Used as a backing store for args_value, args_size, args_type
- below. */
- struct scratch_buffer argsbuf;
- scratch_buffer_init (&argsbuf);
-
- /* Array with information about the needed arguments. This has to
- be dynamically extensible. */
- size_t nspecs = 0;
-
- /* The number of arguments the format string requests. This will
- determine the size of the array needed to store the argument
- attributes. */
- size_t nargs = 0;
-
- /* Positional parameters refer to arguments directly. This could
- also determine the maximum number of arguments. Track the
- maximum number. */
- size_t max_ref_arg = 0;
-
- /* Just a counter. */
- size_t cnt;
-
- CHAR_T *workstart = NULL;
-
- if (grouping == (const char *) -1)
- {
-#ifdef COMPILE_WPRINTF
- thousands_sep = _NL_CURRENT_WORD (LC_NUMERIC,
- _NL_NUMERIC_THOUSANDS_SEP_WC);
-#else
- thousands_sep = _NL_CURRENT (LC_NUMERIC, THOUSANDS_SEP);
-#endif
-
- grouping = _NL_CURRENT (LC_NUMERIC, GROUPING);
- if (*grouping == '\0' || *grouping == CHAR_MAX)
- grouping = NULL;
- }
-
- for (const UCHAR_T *f = lead_str_end; *f != L_('\0');
- f = specs[nspecs++].next_fmt)
- {
- if (nspecs == specs_limit)
- {
- if (!scratch_buffer_grow_preserve (&specsbuf))
- {
- done = -1;
- goto all_done;
- }
- specs = specsbuf.data;
- specs_limit = specsbuf.length / sizeof (specs[0]);
- }
-
- /* Parse the format specifier. */
-#ifdef COMPILE_WPRINTF
- nargs += __parse_one_specwc (f, nargs, &specs[nspecs], &max_ref_arg);
-#else
- nargs += __parse_one_specmb (f, nargs, &specs[nspecs], &max_ref_arg);
-#endif
- }
-
- /* Determine the number of arguments the format string consumes. */
- nargs = MAX (nargs, max_ref_arg);
-
- union printf_arg *args_value;
- int *args_size;
- int *args_type;
- {
- /* Calculate total size needed to represent a single argument
- across all three argument-related arrays. */
- size_t bytes_per_arg
- = sizeof (*args_value) + sizeof (*args_size) + sizeof (*args_type);
- if (!scratch_buffer_set_array_size (&argsbuf, nargs, bytes_per_arg))
- {
- done = -1;
- goto all_done;
- }
- args_value = argsbuf.data;
- /* Set up the remaining two arrays to each point past the end of
- the prior array, since space for all three has been allocated
- now. */
- args_size = &args_value[nargs].pa_int;
- args_type = &args_size[nargs];
- memset (args_type, s->_flags2 & _IO_FLAGS2_FORTIFY ? '\xff' : '\0',
- nargs * sizeof (*args_type));
- }
-
- /* XXX Could do sanity check here: If any element in ARGS_TYPE is
- still zero after this loop, format is invalid. For now we
- simply use 0 as the value. */
-
- /* Fill in the types of all the arguments. */
- for (cnt = 0; cnt < nspecs; ++cnt)
- {
- /* If the width is determined by an argument this is an int. */
- if (specs[cnt].width_arg != -1)
- args_type[specs[cnt].width_arg] = PA_INT;
-
- /* If the precision is determined by an argument this is an int. */
- if (specs[cnt].prec_arg != -1)
- args_type[specs[cnt].prec_arg] = PA_INT;
-
- switch (specs[cnt].ndata_args)
- {
- case 0: /* No arguments. */
- break;
- case 1: /* One argument; we already have the
- type and size. */
- args_type[specs[cnt].data_arg] = specs[cnt].data_arg_type;
- args_size[specs[cnt].data_arg] = specs[cnt].size;
- break;
- default:
- /* We have more than one argument for this format spec.
- We must call the arginfo function again to determine
- all the types. */
- (void) (*__printf_arginfo_table[specs[cnt].info.spec])
- (&specs[cnt].info,
- specs[cnt].ndata_args, &args_type[specs[cnt].data_arg],
- &args_size[specs[cnt].data_arg]);
- break;
- }
- }
-
- /* Now we know all the types and the order. Fill in the argument
- values. */
- for (cnt = 0; cnt < nargs; ++cnt)
- switch (args_type[cnt])
- {
-#define T(tag, mem, type) \
- case tag: \
- args_value[cnt].mem = va_arg (*ap_savep, type); \
- break
-
- T (PA_WCHAR, pa_wchar, wint_t);
- case PA_CHAR: /* Promoted. */
- case PA_INT|PA_FLAG_SHORT: /* Promoted. */
-#if LONG_MAX == INT_MAX
- case PA_INT|PA_FLAG_LONG:
-#endif
- T (PA_INT, pa_int, int);
-#if LONG_MAX == LONG_LONG_MAX
- case PA_INT|PA_FLAG_LONG:
-#endif
- T (PA_INT|PA_FLAG_LONG_LONG, pa_long_long_int, long long int);
-#if LONG_MAX != INT_MAX && LONG_MAX != LONG_LONG_MAX
-# error "he?"
-#endif
- case PA_FLOAT: /* Promoted. */
- T (PA_DOUBLE, pa_double, double);
- case PA_DOUBLE|PA_FLAG_LONG_DOUBLE:
- if (__ldbl_is_dbl)
- {
- args_value[cnt].pa_double = va_arg (*ap_savep, double);
- args_type[cnt] &= ~PA_FLAG_LONG_DOUBLE;
- }
- else
- args_value[cnt].pa_long_double = va_arg (*ap_savep, long double);
- break;
- case PA_STRING: /* All pointers are the same */
- case PA_WSTRING: /* All pointers are the same */
- T (PA_POINTER, pa_pointer, void *);
-#undef T
- default:
- if ((args_type[cnt] & PA_FLAG_PTR) != 0)
- args_value[cnt].pa_pointer = va_arg (*ap_savep, void *);
- else if (__glibc_unlikely (__printf_va_arg_table != NULL)
- && __printf_va_arg_table[args_type[cnt] - PA_LAST] != NULL)
- {
- args_value[cnt].pa_user = alloca (args_size[cnt]);
- (*__printf_va_arg_table[args_type[cnt] - PA_LAST])
- (args_value[cnt].pa_user, ap_savep);
- }
- else
- args_value[cnt].pa_long_double = 0.0;
- break;
- case -1:
- /* Error case. Not all parameters appear in N$ format
- strings. We have no way to determine their type. */
- assert (s->_flags2 & _IO_FLAGS2_FORTIFY);
- __libc_fatal ("*** invalid %N$ use detected ***\n");
- }
-
- /* Now walk through all format specifiers and process them. */
- for (; (size_t) nspecs_done < nspecs; ++nspecs_done)
- {
- STEP4_TABLE;
-
- int is_negative;
- union
- {
- unsigned long long int longlong;
- unsigned long int word;
- } number;
- int base;
- union printf_arg the_arg;
- CHAR_T *string; /* Pointer to argument string. */
-
- /* Fill variables from values in struct. */
- int alt = specs[nspecs_done].info.alt;
- int space = specs[nspecs_done].info.space;
- int left = specs[nspecs_done].info.left;
- int showsign = specs[nspecs_done].info.showsign;
- int group = specs[nspecs_done].info.group;
- int is_long_double = specs[nspecs_done].info.is_long_double;
- int is_short = specs[nspecs_done].info.is_short;
- int is_char = specs[nspecs_done].info.is_char;
- int is_long = specs[nspecs_done].info.is_long;
- int width = specs[nspecs_done].info.width;
- int prec = specs[nspecs_done].info.prec;
- int use_outdigits = specs[nspecs_done].info.i18n;
- char pad = specs[nspecs_done].info.pad;
- CHAR_T spec = specs[nspecs_done].info.spec;
-
- workstart = NULL;
- CHAR_T *workend = work_buffer + WORK_BUFFER_SIZE;
-
- /* Fill in last information. */
- if (specs[nspecs_done].width_arg != -1)
- {
- /* Extract the field width from an argument. */
- specs[nspecs_done].info.width =
- args_value[specs[nspecs_done].width_arg].pa_int;
-
- if (specs[nspecs_done].info.width < 0)
- /* If the width value is negative left justification is
- selected and the value is taken as being positive. */
- {
- specs[nspecs_done].info.width *= -1;
- left = specs[nspecs_done].info.left = 1;
- }
- width = specs[nspecs_done].info.width;
- }
-
- if (specs[nspecs_done].prec_arg != -1)
- {
- /* Extract the precision from an argument. */
- specs[nspecs_done].info.prec =
- args_value[specs[nspecs_done].prec_arg].pa_int;
-
- if (specs[nspecs_done].info.prec < 0)
- /* If the precision is negative the precision is
- omitted. */
- specs[nspecs_done].info.prec = -1;
-
- prec = specs[nspecs_done].info.prec;
- }
-
- /* Maybe the buffer is too small. */
- if (MAX (prec, width) + EXTSIZ > WORK_BUFFER_SIZE)
- {
- if (__libc_use_alloca ((MAX (prec, width) + EXTSIZ)
- * sizeof (CHAR_T)))
- workend = ((CHAR_T *) alloca ((MAX (prec, width) + EXTSIZ)
- * sizeof (CHAR_T))
- + (MAX (prec, width) + EXTSIZ));
- else
- {
- workstart = (CHAR_T *) malloc ((MAX (prec, width) + EXTSIZ)
- * sizeof (CHAR_T));
- if (workstart == NULL)
- {
- done = -1;
- goto all_done;
- }
- workend = workstart + (MAX (prec, width) + EXTSIZ);
- }
- }
-
- /* Process format specifiers. */
- while (1)
- {
- extern printf_function **__printf_function_table;
- int function_done;
-
- if (spec <= UCHAR_MAX
- && __printf_function_table != NULL
- && __printf_function_table[(size_t) spec] != NULL)
- {
- const void **ptr = alloca (specs[nspecs_done].ndata_args
- * sizeof (const void *));
-
- /* Fill in an array of pointers to the argument values. */
- for (unsigned int i = 0; i < specs[nspecs_done].ndata_args;
- ++i)
- ptr[i] = &args_value[specs[nspecs_done].data_arg + i];
-
- /* Call the function. */
- function_done = __printf_function_table[(size_t) spec]
- (s, &specs[nspecs_done].info, ptr);
-
- if (function_done != -2)
- {
- /* If an error occurred we don't have information
- about # of chars. */
- if (function_done < 0)
- {
- /* Function has set errno. */
- done = -1;
- goto all_done;
- }
-
- done_add (function_done);
- break;
- }
- }
-
- JUMP (spec, step4_jumps);
-
- process_arg ((&specs[nspecs_done]));
- process_string_arg ((&specs[nspecs_done]));
-
- LABEL (form_unknown):
- {
- unsigned int i;
- const void **ptr;
-
- ptr = alloca (specs[nspecs_done].ndata_args
- * sizeof (const void *));
-
- /* Fill in an array of pointers to the argument values. */
- for (i = 0; i < specs[nspecs_done].ndata_args; ++i)
- ptr[i] = &args_value[specs[nspecs_done].data_arg + i];
-
- /* Call the function. */
- function_done = printf_unknown (s, &specs[nspecs_done].info,
- ptr);
-
- /* If an error occurred we don't have information about #
- of chars. */
- if (function_done < 0)
- {
- /* Function has set errno. */
- done = -1;
- goto all_done;
- }
-
- done_add (function_done);
- }
- break;
- }
-
- if (__glibc_unlikely (workstart != NULL))
- free (workstart);
- workstart = NULL;
-
- /* Write the following constant string. */
- outstring (specs[nspecs_done].end_of_fmt,
- specs[nspecs_done].next_fmt
- - specs[nspecs_done].end_of_fmt);
- }
- all_done:
- if (__glibc_unlikely (workstart != NULL))
- free (workstart);
- scratch_buffer_free (&argsbuf);
- scratch_buffer_free (&specsbuf);
- return done;
+ return __vfprintf_internal (fp, format, ap, 0);
}
-
-/* Handle an unknown format specifier. This prints out a canonicalized
- representation of the format spec itself. */
-static int
-printf_unknown (FILE *s, const struct printf_info *info,
- const void *const *args)
-
-{
- int done = 0;
- CHAR_T work_buffer[MAX (sizeof (info->width), sizeof (info->prec)) * 3];
- CHAR_T *const workend
- = &work_buffer[sizeof (work_buffer) / sizeof (CHAR_T)];
- CHAR_T *w;
-
- outchar (L_('%'));
-
- if (info->alt)
- outchar (L_('#'));
- if (info->group)
- outchar (L_('\''));
- if (info->showsign)
- outchar (L_('+'));
- else if (info->space)
- outchar (L_(' '));
- if (info->left)
- outchar (L_('-'));
- if (info->pad == L_('0'))
- outchar (L_('0'));
- if (info->i18n)
- outchar (L_('I'));
-
- if (info->width != 0)
- {
- w = _itoa_word (info->width, workend, 10, 0);
- while (w < workend)
- outchar (*w++);
- }
-
- if (info->prec != -1)
- {
- outchar (L_('.'));
- w = _itoa_word (info->prec, workend, 10, 0);
- while (w < workend)
- outchar (*w++);
- }
-
- if (info->spec != L_('\0'))
- outchar (info->spec);
-
- all_done:
- return done;
-}
-
-/* Group the digits from W to REAR_PTR according to the grouping rules
- of the current locale. The interpretation of GROUPING is as in
- `struct lconv' from <locale.h>. The grouped number extends from
- the returned pointer until REAR_PTR. FRONT_PTR to W is used as a
- scratch area. */
-static CHAR_T *
-group_number (CHAR_T *front_ptr, CHAR_T *w, CHAR_T *rear_ptr,
- const char *grouping, THOUSANDS_SEP_T thousands_sep)
-{
- /* Length of the current group. */
- int len;
-#ifndef COMPILE_WPRINTF
- /* Length of the separator (in wide mode, the separator is always a
- single wide character). */
- int tlen = strlen (thousands_sep);
-#endif
-
- /* We treat all negative values like CHAR_MAX. */
-
- if (*grouping == CHAR_MAX || *grouping <= 0)
- /* No grouping should be done. */
- return w;
-
- len = *grouping++;
-
- /* Copy existing string so that nothing gets overwritten. */
- memmove (front_ptr, w, (rear_ptr - w) * sizeof (CHAR_T));
- CHAR_T *s = front_ptr + (rear_ptr - w);
-
- w = rear_ptr;
-
- /* Process all characters in the string. */
- while (s > front_ptr)
- {
- *--w = *--s;
-
- if (--len == 0 && s > front_ptr)
- {
- /* A new group begins. */
-#ifdef COMPILE_WPRINTF
- if (w != s)
- *--w = thousands_sep;
- else
- /* Not enough room for the separator. */
- goto copy_rest;
-#else
- int cnt = tlen;
- if (tlen < w - s)
- do
- *--w = thousands_sep[--cnt];
- while (cnt > 0);
- else
- /* Not enough room for the separator. */
- goto copy_rest;
-#endif
-
- if (*grouping == CHAR_MAX
-#if CHAR_MIN < 0
- || *grouping < 0
-#endif
- )
- {
- copy_rest:
- /* No further grouping to be done. Copy the rest of the
- number. */
- memmove (w, s, (front_ptr -s) * sizeof (CHAR_T));
- break;
- }
- else if (*grouping != '\0')
- len = *grouping++;
- else
- /* The previous grouping repeats ad infinitum. */
- len = grouping[-1];
- }
- }
- return w;
-}
-
-/* Helper "class" for `fprintf to unbuffered': creates a temporary buffer. */
-struct helper_file
- {
- struct _IO_FILE_plus _f;
-#ifdef COMPILE_WPRINTF
- struct _IO_wide_data _wide_data;
-#endif
- FILE *_put_stream;
-#ifdef _IO_MTSAFE_IO
- _IO_lock_t lock;
-#endif
- };
-
-static int
-_IO_helper_overflow (FILE *s, int c)
-{
- FILE *target = ((struct helper_file*) s)->_put_stream;
-#ifdef COMPILE_WPRINTF
- int used = s->_wide_data->_IO_write_ptr - s->_wide_data->_IO_write_base;
- if (used)
- {
- size_t written = _IO_sputn (target, s->_wide_data->_IO_write_base, used);
- if (written == 0 || written == WEOF)
- return WEOF;
- __wmemmove (s->_wide_data->_IO_write_base,
- s->_wide_data->_IO_write_base + written,
- used - written);
- s->_wide_data->_IO_write_ptr -= written;
- }
-#else
- int used = s->_IO_write_ptr - s->_IO_write_base;
- if (used)
- {
- size_t written = _IO_sputn (target, s->_IO_write_base, used);
- if (written == 0 || written == EOF)
- return EOF;
- memmove (s->_IO_write_base, s->_IO_write_base + written,
- used - written);
- s->_IO_write_ptr -= written;
- }
-#endif
- return PUTC (c, s);
-}
-
-#ifdef COMPILE_WPRINTF
-static const struct _IO_jump_t _IO_helper_jumps libio_vtable =
-{
- JUMP_INIT_DUMMY,
- JUMP_INIT (finish, _IO_wdefault_finish),
- JUMP_INIT (overflow, _IO_helper_overflow),
- JUMP_INIT (underflow, _IO_default_underflow),
- JUMP_INIT (uflow, _IO_default_uflow),
- JUMP_INIT (pbackfail, (_IO_pbackfail_t) _IO_wdefault_pbackfail),
- JUMP_INIT (xsputn, _IO_wdefault_xsputn),
- JUMP_INIT (xsgetn, _IO_wdefault_xsgetn),
- JUMP_INIT (seekoff, _IO_default_seekoff),
- JUMP_INIT (seekpos, _IO_default_seekpos),
- JUMP_INIT (setbuf, _IO_default_setbuf),
- JUMP_INIT (sync, _IO_default_sync),
- JUMP_INIT (doallocate, _IO_wdefault_doallocate),
- JUMP_INIT (read, _IO_default_read),
- JUMP_INIT (write, _IO_default_write),
- JUMP_INIT (seek, _IO_default_seek),
- JUMP_INIT (close, _IO_default_close),
- JUMP_INIT (stat, _IO_default_stat)
-};
-#else
-static const struct _IO_jump_t _IO_helper_jumps libio_vtable =
-{
- JUMP_INIT_DUMMY,
- JUMP_INIT (finish, _IO_default_finish),
- JUMP_INIT (overflow, _IO_helper_overflow),
- JUMP_INIT (underflow, _IO_default_underflow),
- JUMP_INIT (uflow, _IO_default_uflow),
- JUMP_INIT (pbackfail, _IO_default_pbackfail),
- JUMP_INIT (xsputn, _IO_default_xsputn),
- JUMP_INIT (xsgetn, _IO_default_xsgetn),
- JUMP_INIT (seekoff, _IO_default_seekoff),
- JUMP_INIT (seekpos, _IO_default_seekpos),
- JUMP_INIT (setbuf, _IO_default_setbuf),
- JUMP_INIT (sync, _IO_default_sync),
- JUMP_INIT (doallocate, _IO_default_doallocate),
- JUMP_INIT (read, _IO_default_read),
- JUMP_INIT (write, _IO_default_write),
- JUMP_INIT (seek, _IO_default_seek),
- JUMP_INIT (close, _IO_default_close),
- JUMP_INIT (stat, _IO_default_stat)
-};
-#endif
-
-static int
-buffered_vfprintf (FILE *s, const CHAR_T *format, va_list args)
-{
- CHAR_T buf[BUFSIZ];
- struct helper_file helper;
- FILE *hp = (FILE *) &helper._f;
- int result, to_flush;
-
- /* Orient the stream. */
-#ifdef ORIENT
- ORIENT;
-#endif
-
- /* Initialize helper. */
- helper._put_stream = s;
-#ifdef COMPILE_WPRINTF
- hp->_wide_data = &helper._wide_data;
- _IO_wsetp (hp, buf, buf + sizeof buf / sizeof (CHAR_T));
- hp->_mode = 1;
-#else
- _IO_setp (hp, buf, buf + sizeof buf);
- hp->_mode = -1;
-#endif
- hp->_flags = _IO_MAGIC|_IO_NO_READS|_IO_USER_LOCK;
-#if _IO_JUMPS_OFFSET
- hp->_vtable_offset = 0;
-#endif
-#ifdef _IO_MTSAFE_IO
- hp->_lock = NULL;
-#endif
- hp->_flags2 = s->_flags2;
- _IO_JUMPS (&helper._f) = (struct _IO_jump_t *) &_IO_helper_jumps;
-
- /* Now print to helper instead. */
-#ifndef COMPILE_WPRINTF
- result = _IO_vfprintf (hp, format, args);
-#else
- result = vfprintf (hp, format, args);
-#endif
-
- /* Lock stream. */
- __libc_cleanup_region_start (1, (void (*) (void *)) &_IO_funlockfile, s);
- _IO_flockfile (s);
-
- /* Now flush anything from the helper to the S. */
-#ifdef COMPILE_WPRINTF
- if ((to_flush = (hp->_wide_data->_IO_write_ptr
- - hp->_wide_data->_IO_write_base)) > 0)
- {
- if ((int) _IO_sputn (s, hp->_wide_data->_IO_write_base, to_flush)
- != to_flush)
- result = -1;
- }
-#else
- if ((to_flush = hp->_IO_write_ptr - hp->_IO_write_base) > 0)
- {
- if ((int) _IO_sputn (s, hp->_IO_write_base, to_flush) != to_flush)
- result = -1;
- }
-#endif
-
- /* Unlock the stream. */
- _IO_funlockfile (s);
- __libc_cleanup_region_end (0);
-
- return result;
-}
-
-#undef vfprintf
-#ifdef COMPILE_WPRINTF
-strong_alias (_IO_vfwprintf, __vfwprintf);
-ldbl_weak_alias (_IO_vfwprintf, vfwprintf);
-#else
-ldbl_strong_alias (_IO_vfprintf_internal, vfprintf);
-ldbl_hidden_def (_IO_vfprintf_internal, vfprintf)
-ldbl_strong_alias (_IO_vfprintf_internal, _IO_vfprintf);
-ldbl_hidden_def (_IO_vfprintf_internal, _IO_vfprintf)
-#endif
+ldbl_strong_alias (__vfprintf, _IO_vfprintf);
+ldbl_strong_alias (__vfprintf, vfprintf);
+ldbl_hidden_def (__vfprintf, vfprintf)
diff --git a/stdio-common/vfscanf-internal.c b/stdio-common/vfscanf-internal.c
new file mode 100644
index 0000000000..3fd466fd76
--- /dev/null
+++ b/stdio-common/vfscanf-internal.c
@@ -0,0 +1,3057 @@
+/* Internal functions for the *scanf* implementation.
+ Copyright (C) 1991-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <assert.h>
+#include <errno.h>
+#include <limits.h>
+#include <ctype.h>
+#include <stdarg.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+#include <wchar.h>
+#include <wctype.h>
+#include <libc-diag.h>
+#include <libc-lock.h>
+#include <locale/localeinfo.h>
+#include <scratch_buffer.h>
+
+#ifdef __GNUC__
+# define HAVE_LONGLONG
+# define LONGLONG long long
+#else
+# define LONGLONG long
+#endif
+
+/* Determine whether we have to handle `long long' at all. */
+#if LONG_MAX == LONG_LONG_MAX
+# define need_longlong 0
+#else
+# define need_longlong 1
+#endif
+
+/* Determine whether we have to handle `long'. */
+#if INT_MAX == LONG_MAX
+# define need_long 0
+#else
+# define need_long 1
+#endif
+
+/* Those are flags in the conversion format. */
+#define LONG 0x0001 /* l: long or double */
+#define LONGDBL 0x0002 /* L: long long or long double */
+#define SHORT 0x0004 /* h: short */
+#define SUPPRESS 0x0008 /* *: suppress assignment */
+#define POINTER 0x0010 /* weird %p pointer (`fake hex') */
+#define NOSKIP 0x0020 /* do not skip blanks */
+#define NUMBER_SIGNED 0x0040 /* signed integer */
+#define GROUP 0x0080 /* ': group numbers */
+#define GNU_MALLOC 0x0100 /* a: malloc strings */
+#define CHAR 0x0200 /* hh: char */
+#define I18N 0x0400 /* I: use locale's digits */
+#define HEXA_FLOAT 0x0800 /* hexadecimal float */
+#define READ_POINTER 0x1000 /* this is a pointer value */
+#define POSIX_MALLOC 0x2000 /* m: malloc strings */
+#define MALLOC (GNU_MALLOC | POSIX_MALLOC)
+
+#include <locale/localeinfo.h>
+#include <libioP.h>
+
+#ifdef COMPILE_WSCANF
+# define ungetc(c, s) ((void) (c == WEOF \
+ || (--read_in, \
+ _IO_sputbackwc (s, c))))
+# define ungetc_not_eof(c, s) ((void) (--read_in, \
+ _IO_sputbackwc (s, c)))
+# define inchar() (c == WEOF ? ((errno = inchar_errno), WEOF) \
+ : ((c = _IO_getwc_unlocked (s)), \
+ (void) (c != WEOF \
+ ? ++read_in \
+ : (size_t) (inchar_errno = errno)), c))
+
+# define ISSPACE(Ch) iswspace (Ch)
+# define ISDIGIT(Ch) iswdigit (Ch)
+# define ISXDIGIT(Ch) iswxdigit (Ch)
+# define TOLOWER(Ch) towlower (Ch)
+# define ORIENT if (_IO_fwide (s, 1) != 1) return WEOF
+# define __strtoll_internal __wcstoll_internal
+# define __strtoull_internal __wcstoull_internal
+# define __strtol_internal __wcstol_internal
+# define __strtoul_internal __wcstoul_internal
+# define __strtold_internal __wcstold_internal
+# define __strtod_internal __wcstod_internal
+# define __strtof_internal __wcstof_internal
+# if __HAVE_FLOAT128_UNLIKE_LDBL
+# define __strtof128_internal __wcstof128_internal
+# endif
+
+# define L_(Str) L##Str
+# define CHAR_T wchar_t
+# define UCHAR_T unsigned int
+# define WINT_T wint_t
+# undef EOF
+# define EOF WEOF
+#else
+# define ungetc(c, s) ((void) ((int) c == EOF \
+ || (--read_in, \
+ _IO_sputbackc (s, (unsigned char) c))))
+# define ungetc_not_eof(c, s) ((void) (--read_in, \
+ _IO_sputbackc (s, (unsigned char) c)))
+# define inchar() (c == EOF ? ((errno = inchar_errno), EOF) \
+ : ((c = _IO_getc_unlocked (s)), \
+ (void) (c != EOF \
+ ? ++read_in \
+ : (size_t) (inchar_errno = errno)), c))
+# define ISSPACE(Ch) __isspace_l (Ch, loc)
+# define ISDIGIT(Ch) __isdigit_l (Ch, loc)
+# define ISXDIGIT(Ch) __isxdigit_l (Ch, loc)
+# define TOLOWER(Ch) __tolower_l ((unsigned char) (Ch), loc)
+# define ORIENT if (_IO_vtable_offset (s) == 0 \
+ && _IO_fwide (s, -1) != -1) \
+ return EOF
+
+# define L_(Str) Str
+# define CHAR_T char
+# define UCHAR_T unsigned char
+# define WINT_T int
+#endif
+
+#include "printf-parse.h" /* Use read_int. */
+
+#define encode_error() do { \
+ __set_errno (EILSEQ); \
+ goto errout; \
+ } while (0)
+#define conv_error() do { \
+ goto errout; \
+ } while (0)
+#define input_error() do { \
+ if (done == 0) done = EOF; \
+ goto errout; \
+ } while (0)
+#define add_ptr_to_free(ptr) \
+ do \
+ { \
+ if (ptrs_to_free == NULL \
+ || ptrs_to_free->count == (sizeof (ptrs_to_free->ptrs) \
+ / sizeof (ptrs_to_free->ptrs[0]))) \
+ { \
+ struct ptrs_to_free *new_ptrs = alloca (sizeof (*ptrs_to_free)); \
+ new_ptrs->count = 0; \
+ new_ptrs->next = ptrs_to_free; \
+ ptrs_to_free = new_ptrs; \
+ } \
+ ptrs_to_free->ptrs[ptrs_to_free->count++] = (ptr); \
+ } \
+ while (0)
+#define ARGCHECK(s, format) \
+ do \
+ { \
+ /* Check file argument for consistence. */ \
+ CHECK_FILE (s, EOF); \
+ if (s->_flags & _IO_NO_READS) \
+ { \
+ __set_errno (EBADF); \
+ return EOF; \
+ } \
+ else if (format == NULL) \
+ { \
+ __set_errno (EINVAL); \
+ return EOF; \
+ } \
+ } while (0)
+#define LOCK_STREAM(S) \
+ __libc_cleanup_region_start (1, (void (*) (void *)) &_IO_funlockfile, (S)); \
+ _IO_flockfile (S)
+#define UNLOCK_STREAM(S) \
+ _IO_funlockfile (S); \
+ __libc_cleanup_region_end (0)
+
+struct ptrs_to_free
+{
+ size_t count;
+ struct ptrs_to_free *next;
+ char **ptrs[32];
+};
+
+struct char_buffer {
+ CHAR_T *current;
+ CHAR_T *end;
+ struct scratch_buffer scratch;
+};
+
+/* Returns a pointer to the first CHAR_T object in the buffer. Only
+ valid if char_buffer_add (BUFFER, CH) has been called and
+ char_buffer_error (BUFFER) is false. */
+static inline CHAR_T *
+char_buffer_start (const struct char_buffer *buffer)
+{
+ return (CHAR_T *) buffer->scratch.data;
+}
+
+/* Returns the number of CHAR_T objects in the buffer. Only valid if
+ char_buffer_error (BUFFER) is false. */
+static inline size_t
+char_buffer_size (const struct char_buffer *buffer)
+{
+ return buffer->current - char_buffer_start (buffer);
+}
+
+/* Reinitializes BUFFER->current and BUFFER->end to cover the entire
+ scratch buffer. */
+static inline void
+char_buffer_rewind (struct char_buffer *buffer)
+{
+ buffer->current = char_buffer_start (buffer);
+ buffer->end = buffer->current + buffer->scratch.length / sizeof (CHAR_T);
+}
+
+/* Returns true if a previous call to char_buffer_add (BUFFER, CH)
+ failed. */
+static inline bool
+char_buffer_error (const struct char_buffer *buffer)
+{
+ return __glibc_unlikely (buffer->current == NULL);
+}
+
+/* Slow path for char_buffer_add. */
+static void
+char_buffer_add_slow (struct char_buffer *buffer, CHAR_T ch)
+{
+ if (char_buffer_error (buffer))
+ return;
+ size_t offset = buffer->end - (CHAR_T *) buffer->scratch.data;
+ if (!scratch_buffer_grow_preserve (&buffer->scratch))
+ {
+ buffer->current = NULL;
+ buffer->end = NULL;
+ return;
+ }
+ char_buffer_rewind (buffer);
+ buffer->current += offset;
+ *buffer->current++ = ch;
+}
+
+/* Adds CH to BUFFER. This function does not report any errors, check
+ for them with char_buffer_error. */
+static inline void
+char_buffer_add (struct char_buffer *buffer, CHAR_T ch)
+ __attribute__ ((always_inline));
+static inline void
+char_buffer_add (struct char_buffer *buffer, CHAR_T ch)
+{
+ if (__glibc_unlikely (buffer->current == buffer->end))
+ char_buffer_add_slow (buffer, ch);
+ else
+ *buffer->current++ = ch;
+}
+
+/* Read formatted input from S according to the format string
+ FORMAT, using the argument list in ARG.
+ Return the number of assignments made, or -1 for an input error. */
+#ifdef COMPILE_WSCANF
+int
+__vfwscanf_internal (FILE *s, const wchar_t *format, va_list argptr,
+ unsigned int mode_flags)
+#else
+int
+__vfscanf_internal (FILE *s, const char *format, va_list argptr,
+ unsigned int mode_flags)
+#endif
+{
+ va_list arg;
+ const CHAR_T *f = format;
+ UCHAR_T fc; /* Current character of the format. */
+ WINT_T done = 0; /* Assignments done. */
+ size_t read_in = 0; /* Chars read in. */
+ WINT_T c = 0; /* Last char read. */
+ int width; /* Maximum field width. */
+ int flags; /* Modifiers for current format element. */
+#ifndef COMPILE_WSCANF
+ locale_t loc = _NL_CURRENT_LOCALE;
+ struct __locale_data *const curctype = loc->__locales[LC_CTYPE];
+#endif
+
+ /* Errno of last failed inchar call. */
+ int inchar_errno = 0;
+ /* Status for reading F-P nums. */
+ char got_digit, got_dot, got_e, got_sign;
+ /* If a [...] is a [^...]. */
+ CHAR_T not_in;
+#define exp_char not_in
+ /* Base for integral numbers. */
+ int base;
+ /* Decimal point character. */
+#ifdef COMPILE_WSCANF
+ wint_t decimal;
+#else
+ const char *decimal;
+#endif
+ /* The thousands character of the current locale. */
+#ifdef COMPILE_WSCANF
+ wint_t thousands;
+#else
+ const char *thousands;
+#endif
+ struct ptrs_to_free *ptrs_to_free = NULL;
+ /* State for the conversions. */
+ mbstate_t state;
+ /* Integral holding variables. */
+ union
+ {
+ long long int q;
+ unsigned long long int uq;
+ long int l;
+ unsigned long int ul;
+ } num;
+ /* Character-buffer pointer. */
+ char *str = NULL;
+ wchar_t *wstr = NULL;
+ char **strptr = NULL;
+ ssize_t strsize = 0;
+ /* We must not react on white spaces immediately because they can
+ possibly be matched even if in the input stream no character is
+ available anymore. */
+ int skip_space = 0;
+ /* Workspace. */
+ CHAR_T *tw; /* Temporary pointer. */
+ struct char_buffer charbuf;
+ scratch_buffer_init (&charbuf.scratch);
+
+#ifdef __va_copy
+ __va_copy (arg, argptr);
+#else
+ arg = (va_list) argptr;
+#endif
+
+#ifdef ORIENT
+ ORIENT;
+#endif
+
+ ARGCHECK (s, format);
+
+ {
+#ifndef COMPILE_WSCANF
+ struct __locale_data *const curnumeric = loc->__locales[LC_NUMERIC];
+#endif
+
+ /* Figure out the decimal point character. */
+#ifdef COMPILE_WSCANF
+ decimal = _NL_CURRENT_WORD (LC_NUMERIC, _NL_NUMERIC_DECIMAL_POINT_WC);
+#else
+ decimal = curnumeric->values[_NL_ITEM_INDEX (DECIMAL_POINT)].string;
+#endif
+ /* Figure out the thousands separator character. */
+#ifdef COMPILE_WSCANF
+ thousands = _NL_CURRENT_WORD (LC_NUMERIC, _NL_NUMERIC_THOUSANDS_SEP_WC);
+#else
+ thousands = curnumeric->values[_NL_ITEM_INDEX (THOUSANDS_SEP)].string;
+ if (*thousands == '\0')
+ thousands = NULL;
+#endif
+ }
+
+ /* Lock the stream. */
+ LOCK_STREAM (s);
+
+
+#ifndef COMPILE_WSCANF
+ /* From now on we use `state' to convert the format string. */
+ memset (&state, '\0', sizeof (state));
+#endif
+
+ /* Run through the format string. */
+ while (*f != '\0')
+ {
+ unsigned int argpos;
+ /* Extract the next argument, which is of type TYPE.
+ For a %N$... spec, this is the Nth argument from the beginning;
+ otherwise it is the next argument after the state now in ARG. */
+#ifdef __va_copy
+# define ARG(type) (argpos == 0 ? va_arg (arg, type) \
+ : ({ unsigned int pos = argpos; \
+ va_list arg; \
+ __va_copy (arg, argptr); \
+ while (--pos > 0) \
+ (void) va_arg (arg, void *); \
+ va_arg (arg, type); \
+ }))
+#else
+# if 0
+ /* XXX Possible optimization. */
+# define ARG(type) (argpos == 0 ? va_arg (arg, type) \
+ : ({ va_list arg = (va_list) argptr; \
+ arg = (va_list) ((char *) arg \
+ + (argpos - 1) \
+ * __va_rounded_size (void *)); \
+ va_arg (arg, type); \
+ }))
+# else
+# define ARG(type) (argpos == 0 ? va_arg (arg, type) \
+ : ({ unsigned int pos = argpos; \
+ va_list arg = (va_list) argptr; \
+ while (--pos > 0) \
+ (void) va_arg (arg, void *); \
+ va_arg (arg, type); \
+ }))
+# endif
+#endif
+
+#ifndef COMPILE_WSCANF
+ if (!isascii ((unsigned char) *f))
+ {
+ /* Non-ASCII, may be a multibyte. */
+ int len = __mbrlen (f, strlen (f), &state);
+ if (len > 0)
+ {
+ do
+ {
+ c = inchar ();
+ if (__glibc_unlikely (c == EOF))
+ input_error ();
+ else if (c != (unsigned char) *f++)
+ {
+ ungetc_not_eof (c, s);
+ conv_error ();
+ }
+ }
+ while (--len > 0);
+ continue;
+ }
+ }
+#endif
+
+ fc = *f++;
+ if (fc != '%')
+ {
+ /* Remember to skip spaces. */
+ if (ISSPACE (fc))
+ {
+ skip_space = 1;
+ continue;
+ }
+
+ /* Read a character. */
+ c = inchar ();
+
+ /* Characters other than format specs must just match. */
+ if (__glibc_unlikely (c == EOF))
+ input_error ();
+
+ /* We saw white space char as the last character in the format
+ string. Now it's time to skip all leading white space. */
+ if (skip_space)
+ {
+ while (ISSPACE (c))
+ if (__glibc_unlikely (inchar () == EOF))
+ input_error ();
+ skip_space = 0;
+ }
+
+ if (__glibc_unlikely (c != fc))
+ {
+ ungetc (c, s);
+ conv_error ();
+ }
+
+ continue;
+ }
+
+ /* This is the start of the conversion string. */
+ flags = 0;
+
+ /* Initialize state of modifiers. */
+ argpos = 0;
+
+ /* Prepare temporary buffer. */
+ char_buffer_rewind (&charbuf);
+
+ /* Check for a positional parameter specification. */
+ if (ISDIGIT ((UCHAR_T) *f))
+ {
+ argpos = read_int ((const UCHAR_T **) &f);
+ if (*f == L_('$'))
+ ++f;
+ else
+ {
+ /* Oops; that was actually the field width. */
+ width = argpos;
+ argpos = 0;
+ goto got_width;
+ }
+ }
+
+ /* Check for the assignment-suppressing, the number grouping flag,
+ and the signal to use the locale's digit representation. */
+ while (*f == L_('*') || *f == L_('\'') || *f == L_('I'))
+ switch (*f++)
+ {
+ case L_('*'):
+ flags |= SUPPRESS;
+ break;
+ case L_('\''):
+#ifdef COMPILE_WSCANF
+ if (thousands != L'\0')
+#else
+ if (thousands != NULL)
+#endif
+ flags |= GROUP;
+ break;
+ case L_('I'):
+ flags |= I18N;
+ break;
+ }
+
+ /* Find the maximum field width. */
+ width = 0;
+ if (ISDIGIT ((UCHAR_T) *f))
+ width = read_int ((const UCHAR_T **) &f);
+ got_width:
+ if (width == 0)
+ width = -1;
+
+ /* Check for type modifiers. */
+ switch (*f++)
+ {
+ case L_('h'):
+ /* ints are short ints or chars. */
+ if (*f == L_('h'))
+ {
+ ++f;
+ flags |= CHAR;
+ }
+ else
+ flags |= SHORT;
+ break;
+ case L_('l'):
+ if (*f == L_('l'))
+ {
+ /* A double `l' is equivalent to an `L'. */
+ ++f;
+ flags |= LONGDBL | LONG;
+ }
+ else
+ /* ints are long ints. */
+ flags |= LONG;
+ break;
+ case L_('q'):
+ case L_('L'):
+ /* doubles are long doubles, and ints are long long ints. */
+ flags |= LONGDBL | LONG;
+ break;
+ case L_('a'):
+ /* The `a' is used as a flag only if followed by `s', `S' or
+ `['. */
+ if (*f != L_('s') && *f != L_('S') && *f != L_('['))
+ {
+ --f;
+ break;
+ }
+ /* In __isoc99_*scanf %as, %aS and %a[ extension is not
+ supported at all. */
+ if (__glibc_likely ((mode_flags & SCANF_ISOC99_A) != 0))
+ {
+ --f;
+ break;
+ }
+ /* String conversions (%s, %[) take a `char **'
+ arg and fill it in with a malloc'd pointer. */
+ flags |= GNU_MALLOC;
+ break;
+ case L_('m'):
+ flags |= POSIX_MALLOC;
+ if (*f == L_('l'))
+ {
+ ++f;
+ flags |= LONG;
+ }
+ break;
+ case L_('z'):
+ if (need_longlong && sizeof (size_t) > sizeof (unsigned long int))
+ flags |= LONGDBL;
+ else if (sizeof (size_t) > sizeof (unsigned int))
+ flags |= LONG;
+ break;
+ case L_('j'):
+ if (need_longlong && sizeof (uintmax_t) > sizeof (unsigned long int))
+ flags |= LONGDBL;
+ else if (sizeof (uintmax_t) > sizeof (unsigned int))
+ flags |= LONG;
+ break;
+ case L_('t'):
+ if (need_longlong && sizeof (ptrdiff_t) > sizeof (long int))
+ flags |= LONGDBL;
+ else if (sizeof (ptrdiff_t) > sizeof (int))
+ flags |= LONG;
+ break;
+ default:
+ /* Not a recognized modifier. Backup. */
+ --f;
+ break;
+ }
+
+ /* End of the format string? */
+ if (__glibc_unlikely (*f == L_('\0')))
+ conv_error ();
+
+ /* Find the conversion specifier. */
+ fc = *f++;
+ if (skip_space || (fc != L_('[') && fc != L_('c')
+ && fc != L_('C') && fc != L_('n')))
+ {
+ /* Eat whitespace. */
+ int save_errno = errno;
+ __set_errno (0);
+ do
+ /* We add the additional test for EOF here since otherwise
+ inchar will restore the old errno value which might be
+ EINTR but does not indicate an interrupt since nothing
+ was read at this time. */
+ if (__builtin_expect ((c == EOF || inchar () == EOF)
+ && errno == EINTR, 0))
+ input_error ();
+ while (ISSPACE (c));
+ __set_errno (save_errno);
+ ungetc (c, s);
+ skip_space = 0;
+ }
+
+ switch (fc)
+ {
+ case L_('%'): /* Must match a literal '%'. */
+ c = inchar ();
+ if (__glibc_unlikely (c == EOF))
+ input_error ();
+ if (__glibc_unlikely (c != fc))
+ {
+ ungetc_not_eof (c, s);
+ conv_error ();
+ }
+ break;
+
+ case L_('n'): /* Answer number of assignments done. */
+ /* Corrigendum 1 to ISO C 1990 describes the allowed flags
+ with the 'n' conversion specifier. */
+ if (!(flags & SUPPRESS))
+ {
+ /* Don't count the read-ahead. */
+ if (need_longlong && (flags & LONGDBL))
+ *ARG (long long int *) = read_in;
+ else if (need_long && (flags & LONG))
+ *ARG (long int *) = read_in;
+ else if (flags & SHORT)
+ *ARG (short int *) = read_in;
+ else if (!(flags & CHAR))
+ *ARG (int *) = read_in;
+ else
+ *ARG (char *) = read_in;
+
+#ifdef NO_BUG_IN_ISO_C_CORRIGENDUM_1
+ /* We have a severe problem here. The ISO C standard
+ contradicts itself in explaining the effect of the %n
+ format in `scanf'. While in ISO C:1990 and the ISO C
+ Amendement 1:1995 the result is described as
+
+ Execution of a %n directive does not effect the
+ assignment count returned at the completion of
+ execution of the f(w)scanf function.
+
+ in ISO C Corrigendum 1:1994 the following was added:
+
+ Subclause 7.9.6.2
+ Add the following fourth example:
+ In:
+ #include <stdio.h>
+ int d1, d2, n1, n2, i;
+ i = sscanf("123", "%d%n%n%d", &d1, &n1, &n2, &d2);
+ the value 123 is assigned to d1 and the value3 to n1.
+ Because %n can never get an input failure the value
+ of 3 is also assigned to n2. The value of d2 is not
+ affected. The value 3 is assigned to i.
+
+ We go for now with the historically correct code from ISO C,
+ i.e., we don't count the %n assignments. When it ever
+ should proof to be wrong just remove the #ifdef above. */
+ ++done;
+#endif
+ }
+ break;
+
+ case L_('c'): /* Match characters. */
+ if ((flags & LONG) == 0)
+ {
+ if (width == -1)
+ width = 1;
+
+#define STRING_ARG(Str, Type, Width) \
+ do if (!(flags & SUPPRESS)) \
+ { \
+ if (flags & MALLOC) \
+ { \
+ /* The string is to be stored in a malloc'd buffer. */ \
+ /* For %mS using char ** is actually wrong, but \
+ shouldn't make a difference on any arch glibc \
+ supports and would unnecessarily complicate \
+ things. */ \
+ strptr = ARG (char **); \
+ if (strptr == NULL) \
+ conv_error (); \
+ /* Allocate an initial buffer. */ \
+ strsize = Width; \
+ *strptr = (char *) malloc (strsize * sizeof (Type)); \
+ Str = (Type *) *strptr; \
+ if (Str != NULL) \
+ add_ptr_to_free (strptr); \
+ else if (flags & POSIX_MALLOC) \
+ { \
+ done = EOF; \
+ goto errout; \
+ } \
+ } \
+ else \
+ Str = ARG (Type *); \
+ if (Str == NULL) \
+ conv_error (); \
+ } while (0)
+#ifdef COMPILE_WSCANF
+ STRING_ARG (str, char, 100);
+#else
+ STRING_ARG (str, char, (width > 1024 ? 1024 : width));
+#endif
+
+ c = inchar ();
+ if (__glibc_unlikely (c == EOF))
+ input_error ();
+
+#ifdef COMPILE_WSCANF
+ /* We have to convert the wide character(s) into multibyte
+ characters and store the result. */
+ memset (&state, '\0', sizeof (state));
+
+ do
+ {
+ size_t n;
+
+ if (!(flags & SUPPRESS) && (flags & POSIX_MALLOC)
+ && *strptr + strsize - str <= MB_LEN_MAX)
+ {
+ /* We have to enlarge the buffer if the `m' flag
+ was given. */
+ size_t strleng = str - *strptr;
+ char *newstr;
+
+ newstr = (char *) realloc (*strptr, strsize * 2);
+ if (newstr == NULL)
+ {
+ /* Can't allocate that much. Last-ditch effort. */
+ newstr = (char *) realloc (*strptr,
+ strleng + MB_LEN_MAX);
+ if (newstr == NULL)
+ {
+ /* c can't have `a' flag, only `m'. */
+ done = EOF;
+ goto errout;
+ }
+ else
+ {
+ *strptr = newstr;
+ str = newstr + strleng;
+ strsize = strleng + MB_LEN_MAX;
+ }
+ }
+ else
+ {
+ *strptr = newstr;
+ str = newstr + strleng;
+ strsize *= 2;
+ }
+ }
+
+ n = __wcrtomb (!(flags & SUPPRESS) ? str : NULL, c, &state);
+ if (__glibc_unlikely (n == (size_t) -1))
+ /* No valid wide character. */
+ input_error ();
+
+ /* Increment the output pointer. Even if we don't
+ write anything. */
+ str += n;
+ }
+ while (--width > 0 && inchar () != EOF);
+#else
+ if (!(flags & SUPPRESS))
+ {
+ do
+ {
+ if ((flags & MALLOC)
+ && (char *) str == *strptr + strsize)
+ {
+ /* Enlarge the buffer. */
+ size_t newsize
+ = strsize
+ + (strsize >= width ? width - 1 : strsize);
+
+ str = (char *) realloc (*strptr, newsize);
+ if (str == NULL)
+ {
+ /* Can't allocate that much. Last-ditch
+ effort. */
+ str = (char *) realloc (*strptr, strsize + 1);
+ if (str == NULL)
+ {
+ /* c can't have `a' flag, only `m'. */
+ done = EOF;
+ goto errout;
+ }
+ else
+ {
+ *strptr = (char *) str;
+ str += strsize;
+ ++strsize;
+ }
+ }
+ else
+ {
+ *strptr = (char *) str;
+ str += strsize;
+ strsize = newsize;
+ }
+ }
+ *str++ = c;
+ }
+ while (--width > 0 && inchar () != EOF);
+ }
+ else
+ while (--width > 0 && inchar () != EOF);
+#endif
+
+ if (!(flags & SUPPRESS))
+ {
+ if ((flags & MALLOC) && str - *strptr != strsize)
+ {
+ char *cp = (char *) realloc (*strptr, str - *strptr);
+ if (cp != NULL)
+ *strptr = cp;
+ }
+ strptr = NULL;
+ ++done;
+ }
+
+ break;
+ }
+ /* FALLTHROUGH */
+ case L_('C'):
+ if (width == -1)
+ width = 1;
+
+ STRING_ARG (wstr, wchar_t, (width > 1024 ? 1024 : width));
+
+ c = inchar ();
+ if (__glibc_unlikely (c == EOF))
+ input_error ();
+
+#ifdef COMPILE_WSCANF
+ /* Just store the incoming wide characters. */
+ if (!(flags & SUPPRESS))
+ {
+ do
+ {
+ if ((flags & MALLOC)
+ && wstr == (wchar_t *) *strptr + strsize)
+ {
+ size_t newsize
+ = strsize + (strsize > width ? width - 1 : strsize);
+ /* Enlarge the buffer. */
+ wstr = (wchar_t *) realloc (*strptr,
+ newsize * sizeof (wchar_t));
+ if (wstr == NULL)
+ {
+ /* Can't allocate that much. Last-ditch effort. */
+ wstr = (wchar_t *) realloc (*strptr,
+ (strsize + 1)
+ * sizeof (wchar_t));
+ if (wstr == NULL)
+ {
+ /* C or lc can't have `a' flag, only `m'
+ flag. */
+ done = EOF;
+ goto errout;
+ }
+ else
+ {
+ *strptr = (char *) wstr;
+ wstr += strsize;
+ ++strsize;
+ }
+ }
+ else
+ {
+ *strptr = (char *) wstr;
+ wstr += strsize;
+ strsize = newsize;
+ }
+ }
+ *wstr++ = c;
+ }
+ while (--width > 0 && inchar () != EOF);
+ }
+ else
+ while (--width > 0 && inchar () != EOF);
+#else
+ {
+ /* We have to convert the multibyte input sequence to wide
+ characters. */
+ char buf[1];
+ mbstate_t cstate;
+
+ memset (&cstate, '\0', sizeof (cstate));
+
+ do
+ {
+ /* This is what we present the mbrtowc function first. */
+ buf[0] = c;
+
+ if (!(flags & SUPPRESS) && (flags & MALLOC)
+ && wstr == (wchar_t *) *strptr + strsize)
+ {
+ size_t newsize
+ = strsize + (strsize > width ? width - 1 : strsize);
+ /* Enlarge the buffer. */
+ wstr = (wchar_t *) realloc (*strptr,
+ newsize * sizeof (wchar_t));
+ if (wstr == NULL)
+ {
+ /* Can't allocate that much. Last-ditch effort. */
+ wstr = (wchar_t *) realloc (*strptr,
+ ((strsize + 1)
+ * sizeof (wchar_t)));
+ if (wstr == NULL)
+ {
+ /* C or lc can't have `a' flag, only `m' flag. */
+ done = EOF;
+ goto errout;
+ }
+ else
+ {
+ *strptr = (char *) wstr;
+ wstr += strsize;
+ ++strsize;
+ }
+ }
+ else
+ {
+ *strptr = (char *) wstr;
+ wstr += strsize;
+ strsize = newsize;
+ }
+ }
+
+ while (1)
+ {
+ size_t n;
+
+ n = __mbrtowc (!(flags & SUPPRESS) ? wstr : NULL,
+ buf, 1, &cstate);
+
+ if (n == (size_t) -2)
+ {
+ /* Possibly correct character, just not enough
+ input. */
+ if (__glibc_unlikely (inchar () == EOF))
+ encode_error ();
+
+ buf[0] = c;
+ continue;
+ }
+
+ if (__glibc_unlikely (n != 1))
+ encode_error ();
+
+ /* We have a match. */
+ break;
+ }
+
+ /* Advance the result pointer. */
+ ++wstr;
+ }
+ while (--width > 0 && inchar () != EOF);
+ }
+#endif
+
+ if (!(flags & SUPPRESS))
+ {
+ if ((flags & MALLOC) && wstr - (wchar_t *) *strptr != strsize)
+ {
+ wchar_t *cp = (wchar_t *) realloc (*strptr,
+ ((wstr
+ - (wchar_t *) *strptr)
+ * sizeof (wchar_t)));
+ if (cp != NULL)
+ *strptr = (char *) cp;
+ }
+ strptr = NULL;
+
+ ++done;
+ }
+
+ break;
+
+ case L_('s'): /* Read a string. */
+ if (!(flags & LONG))
+ {
+ STRING_ARG (str, char, 100);
+
+ c = inchar ();
+ if (__glibc_unlikely (c == EOF))
+ input_error ();
+
+#ifdef COMPILE_WSCANF
+ memset (&state, '\0', sizeof (state));
+#endif
+
+ do
+ {
+ if (ISSPACE (c))
+ {
+ ungetc_not_eof (c, s);
+ break;
+ }
+
+#ifdef COMPILE_WSCANF
+ /* This is quite complicated. We have to convert the
+ wide characters into multibyte characters and then
+ store them. */
+ {
+ size_t n;
+
+ if (!(flags & SUPPRESS) && (flags & MALLOC)
+ && *strptr + strsize - str <= MB_LEN_MAX)
+ {
+ /* We have to enlarge the buffer if the `a' or `m'
+ flag was given. */
+ size_t strleng = str - *strptr;
+ char *newstr;
+
+ newstr = (char *) realloc (*strptr, strsize * 2);
+ if (newstr == NULL)
+ {
+ /* Can't allocate that much. Last-ditch
+ effort. */
+ newstr = (char *) realloc (*strptr,
+ strleng + MB_LEN_MAX);
+ if (newstr == NULL)
+ {
+ if (flags & POSIX_MALLOC)
+ {
+ done = EOF;
+ goto errout;
+ }
+ /* We lose. Oh well. Terminate the
+ string and stop converting,
+ so at least we don't skip any input. */
+ ((char *) (*strptr))[strleng] = '\0';
+ strptr = NULL;
+ ++done;
+ conv_error ();
+ }
+ else
+ {
+ *strptr = newstr;
+ str = newstr + strleng;
+ strsize = strleng + MB_LEN_MAX;
+ }
+ }
+ else
+ {
+ *strptr = newstr;
+ str = newstr + strleng;
+ strsize *= 2;
+ }
+ }
+
+ n = __wcrtomb (!(flags & SUPPRESS) ? str : NULL, c,
+ &state);
+ if (__glibc_unlikely (n == (size_t) -1))
+ encode_error ();
+
+ assert (n <= MB_LEN_MAX);
+ str += n;
+ }
+#else
+ /* This is easy. */
+ if (!(flags & SUPPRESS))
+ {
+ *str++ = c;
+ if ((flags & MALLOC)
+ && (char *) str == *strptr + strsize)
+ {
+ /* Enlarge the buffer. */
+ str = (char *) realloc (*strptr, 2 * strsize);
+ if (str == NULL)
+ {
+ /* Can't allocate that much. Last-ditch
+ effort. */
+ str = (char *) realloc (*strptr, strsize + 1);
+ if (str == NULL)
+ {
+ if (flags & POSIX_MALLOC)
+ {
+ done = EOF;
+ goto errout;
+ }
+ /* We lose. Oh well. Terminate the
+ string and stop converting,
+ so at least we don't skip any input. */
+ ((char *) (*strptr))[strsize - 1] = '\0';
+ strptr = NULL;
+ ++done;
+ conv_error ();
+ }
+ else
+ {
+ *strptr = (char *) str;
+ str += strsize;
+ ++strsize;
+ }
+ }
+ else
+ {
+ *strptr = (char *) str;
+ str += strsize;
+ strsize *= 2;
+ }
+ }
+ }
+#endif
+ }
+ while ((width <= 0 || --width > 0) && inchar () != EOF);
+
+ if (!(flags & SUPPRESS))
+ {
+#ifdef COMPILE_WSCANF
+ /* We have to emit the code to get into the initial
+ state. */
+ char buf[MB_LEN_MAX];
+ size_t n = __wcrtomb (buf, L'\0', &state);
+ if (n > 0 && (flags & MALLOC)
+ && str + n >= *strptr + strsize)
+ {
+ /* Enlarge the buffer. */
+ size_t strleng = str - *strptr;
+ char *newstr;
+
+ newstr = (char *) realloc (*strptr, strleng + n + 1);
+ if (newstr == NULL)
+ {
+ if (flags & POSIX_MALLOC)
+ {
+ done = EOF;
+ goto errout;
+ }
+ /* We lose. Oh well. Terminate the string
+ and stop converting, so at least we don't
+ skip any input. */
+ ((char *) (*strptr))[strleng] = '\0';
+ strptr = NULL;
+ ++done;
+ conv_error ();
+ }
+ else
+ {
+ *strptr = newstr;
+ str = newstr + strleng;
+ strsize = strleng + n + 1;
+ }
+ }
+
+ str = __mempcpy (str, buf, n);
+#endif
+ *str++ = '\0';
+
+ if ((flags & MALLOC) && str - *strptr != strsize)
+ {
+ char *cp = (char *) realloc (*strptr, str - *strptr);
+ if (cp != NULL)
+ *strptr = cp;
+ }
+ strptr = NULL;
+
+ ++done;
+ }
+ break;
+ }
+ /* FALLTHROUGH */
+
+ case L_('S'):
+ {
+#ifndef COMPILE_WSCANF
+ mbstate_t cstate;
+#endif
+
+ /* Wide character string. */
+ STRING_ARG (wstr, wchar_t, 100);
+
+ c = inchar ();
+ if (__builtin_expect (c == EOF, 0))
+ input_error ();
+
+#ifndef COMPILE_WSCANF
+ memset (&cstate, '\0', sizeof (cstate));
+#endif
+
+ do
+ {
+ if (ISSPACE (c))
+ {
+ ungetc_not_eof (c, s);
+ break;
+ }
+
+#ifdef COMPILE_WSCANF
+ /* This is easy. */
+ if (!(flags & SUPPRESS))
+ {
+ *wstr++ = c;
+ if ((flags & MALLOC)
+ && wstr == (wchar_t *) *strptr + strsize)
+ {
+ /* Enlarge the buffer. */
+ wstr = (wchar_t *) realloc (*strptr,
+ (2 * strsize)
+ * sizeof (wchar_t));
+ if (wstr == NULL)
+ {
+ /* Can't allocate that much. Last-ditch
+ effort. */
+ wstr = (wchar_t *) realloc (*strptr,
+ (strsize + 1)
+ * sizeof (wchar_t));
+ if (wstr == NULL)
+ {
+ if (flags & POSIX_MALLOC)
+ {
+ done = EOF;
+ goto errout;
+ }
+ /* We lose. Oh well. Terminate the string
+ and stop converting, so at least we don't
+ skip any input. */
+ ((wchar_t *) (*strptr))[strsize - 1] = L'\0';
+ strptr = NULL;
+ ++done;
+ conv_error ();
+ }
+ else
+ {
+ *strptr = (char *) wstr;
+ wstr += strsize;
+ ++strsize;
+ }
+ }
+ else
+ {
+ *strptr = (char *) wstr;
+ wstr += strsize;
+ strsize *= 2;
+ }
+ }
+ }
+#else
+ {
+ char buf[1];
+
+ buf[0] = c;
+
+ while (1)
+ {
+ size_t n;
+
+ n = __mbrtowc (!(flags & SUPPRESS) ? wstr : NULL,
+ buf, 1, &cstate);
+
+ if (n == (size_t) -2)
+ {
+ /* Possibly correct character, just not enough
+ input. */
+ if (__glibc_unlikely (inchar () == EOF))
+ encode_error ();
+
+ buf[0] = c;
+ continue;
+ }
+
+ if (__glibc_unlikely (n != 1))
+ encode_error ();
+
+ /* We have a match. */
+ ++wstr;
+ break;
+ }
+
+ if (!(flags & SUPPRESS) && (flags & MALLOC)
+ && wstr == (wchar_t *) *strptr + strsize)
+ {
+ /* Enlarge the buffer. */
+ wstr = (wchar_t *) realloc (*strptr,
+ (2 * strsize
+ * sizeof (wchar_t)));
+ if (wstr == NULL)
+ {
+ /* Can't allocate that much. Last-ditch effort. */
+ wstr = (wchar_t *) realloc (*strptr,
+ ((strsize + 1)
+ * sizeof (wchar_t)));
+ if (wstr == NULL)
+ {
+ if (flags & POSIX_MALLOC)
+ {
+ done = EOF;
+ goto errout;
+ }
+ /* We lose. Oh well. Terminate the
+ string and stop converting, so at
+ least we don't skip any input. */
+ ((wchar_t *) (*strptr))[strsize - 1] = L'\0';
+ strptr = NULL;
+ ++done;
+ conv_error ();
+ }
+ else
+ {
+ *strptr = (char *) wstr;
+ wstr += strsize;
+ ++strsize;
+ }
+ }
+ else
+ {
+ *strptr = (char *) wstr;
+ wstr += strsize;
+ strsize *= 2;
+ }
+ }
+ }
+#endif
+ }
+ while ((width <= 0 || --width > 0) && inchar () != EOF);
+
+ if (!(flags & SUPPRESS))
+ {
+ *wstr++ = L'\0';
+
+ if ((flags & MALLOC) && wstr - (wchar_t *) *strptr != strsize)
+ {
+ wchar_t *cp = (wchar_t *) realloc (*strptr,
+ ((wstr
+ - (wchar_t *) *strptr)
+ * sizeof (wchar_t)));
+ if (cp != NULL)
+ *strptr = (char *) cp;
+ }
+ strptr = NULL;
+
+ ++done;
+ }
+ }
+ break;
+
+ case L_('x'): /* Hexadecimal integer. */
+ case L_('X'): /* Ditto. */
+ base = 16;
+ goto number;
+
+ case L_('o'): /* Octal integer. */
+ base = 8;
+ goto number;
+
+ case L_('u'): /* Unsigned decimal integer. */
+ base = 10;
+ goto number;
+
+ case L_('d'): /* Signed decimal integer. */
+ base = 10;
+ flags |= NUMBER_SIGNED;
+ goto number;
+
+ case L_('i'): /* Generic number. */
+ base = 0;
+ flags |= NUMBER_SIGNED;
+
+ number:
+ c = inchar ();
+ if (__glibc_unlikely (c == EOF))
+ input_error ();
+
+ /* Check for a sign. */
+ if (c == L_('-') || c == L_('+'))
+ {
+ char_buffer_add (&charbuf, c);
+ if (width > 0)
+ --width;
+ c = inchar ();
+ }
+
+ /* Look for a leading indication of base. */
+ if (width != 0 && c == L_('0'))
+ {
+ if (width > 0)
+ --width;
+
+ char_buffer_add (&charbuf, c);
+ c = inchar ();
+
+ if (width != 0 && TOLOWER (c) == L_('x'))
+ {
+ if (base == 0)
+ base = 16;
+ if (base == 16)
+ {
+ if (width > 0)
+ --width;
+ c = inchar ();
+ }
+ }
+ else if (base == 0)
+ base = 8;
+ }
+
+ if (base == 0)
+ base = 10;
+
+ if (base == 10 && __builtin_expect ((flags & I18N) != 0, 0))
+ {
+ int from_level;
+ int to_level;
+ int level;
+#ifdef COMPILE_WSCANF
+ const wchar_t *wcdigits[10];
+ const wchar_t *wcdigits_extended[10];
+#else
+ const char *mbdigits[10];
+ const char *mbdigits_extended[10];
+#endif
+ /* "to_inpunct" is a map from ASCII digits to their
+ equivalent in locale. This is defined for locales
+ which use an extra digits set. */
+ wctrans_t map = __wctrans ("to_inpunct");
+ int n;
+
+ from_level = 0;
+#ifdef COMPILE_WSCANF
+ to_level = _NL_CURRENT_WORD (LC_CTYPE,
+ _NL_CTYPE_INDIGITS_WC_LEN) - 1;
+#else
+ to_level = (uint32_t) curctype->values[_NL_ITEM_INDEX (_NL_CTYPE_INDIGITS_MB_LEN)].word - 1;
+#endif
+
+ /* Get the alternative digit forms if there are any. */
+ if (__glibc_unlikely (map != NULL))
+ {
+ /* Adding new level for extra digits set in locale file. */
+ ++to_level;
+
+ for (n = 0; n < 10; ++n)
+ {
+#ifdef COMPILE_WSCANF
+ wcdigits[n] = (const wchar_t *)
+ _NL_CURRENT (LC_CTYPE, _NL_CTYPE_INDIGITS0_WC + n);
+
+ wchar_t *wc_extended = (wchar_t *)
+ alloca ((to_level + 2) * sizeof (wchar_t));
+ __wmemcpy (wc_extended, wcdigits[n], to_level);
+ wc_extended[to_level] = __towctrans (L'0' + n, map);
+ wc_extended[to_level + 1] = '\0';
+ wcdigits_extended[n] = wc_extended;
+#else
+ mbdigits[n]
+ = curctype->values[_NL_CTYPE_INDIGITS0_MB + n].string;
+
+ /* Get the equivalent wide char in map. */
+ wint_t extra_wcdigit = __towctrans (L'0' + n, map);
+
+ /* Convert it to multibyte representation. */
+ mbstate_t state;
+ memset (&state, '\0', sizeof (state));
+
+ char extra_mbdigit[MB_LEN_MAX];
+ size_t mblen
+ = __wcrtomb (extra_mbdigit, extra_wcdigit, &state);
+
+ if (mblen == (size_t) -1)
+ {
+ /* Ignore this new level. */
+ map = NULL;
+ break;
+ }
+
+ /* Calculate the length of mbdigits[n]. */
+ const char *last_char = mbdigits[n];
+ for (level = 0; level < to_level; ++level)
+ last_char = strchr (last_char, '\0') + 1;
+
+ size_t mbdigits_len = last_char - mbdigits[n];
+
+ /* Allocate memory for extended multibyte digit. */
+ char *mb_extended;
+ mb_extended = (char *) alloca (mbdigits_len + mblen + 1);
+
+ /* And get the mbdigits + extra_digit string. */
+ *(char *) __mempcpy (__mempcpy (mb_extended, mbdigits[n],
+ mbdigits_len),
+ extra_mbdigit, mblen) = '\0';
+ mbdigits_extended[n] = mb_extended;
+#endif
+ }
+ }
+
+ /* Read the number into workspace. */
+ while (c != EOF && width != 0)
+ {
+ /* In this round we get the pointer to the digit strings
+ and also perform the first round of comparisons. */
+ for (n = 0; n < 10; ++n)
+ {
+ /* Get the string for the digits with value N. */
+#ifdef COMPILE_WSCANF
+
+ /* wcdigits_extended[] is fully set in the loop
+ above, but the test for "map != NULL" is done
+ inside the loop here and outside the loop there. */
+ DIAG_PUSH_NEEDS_COMMENT;
+ DIAG_IGNORE_NEEDS_COMMENT (4.7, "-Wmaybe-uninitialized");
+
+ if (__glibc_unlikely (map != NULL))
+ wcdigits[n] = wcdigits_extended[n];
+ else
+ wcdigits[n] = (const wchar_t *)
+ _NL_CURRENT (LC_CTYPE, _NL_CTYPE_INDIGITS0_WC + n);
+ wcdigits[n] += from_level;
+
+ DIAG_POP_NEEDS_COMMENT;
+
+ if (c == (wint_t) *wcdigits[n])
+ {
+ to_level = from_level;
+ break;
+ }
+
+ /* Advance the pointer to the next string. */
+ ++wcdigits[n];
+#else
+ const char *cmpp;
+ int avail = width > 0 ? width : INT_MAX;
+
+ if (__glibc_unlikely (map != NULL))
+ mbdigits[n] = mbdigits_extended[n];
+ else
+ mbdigits[n]
+ = curctype->values[_NL_CTYPE_INDIGITS0_MB + n].string;
+
+ for (level = 0; level < from_level; level++)
+ mbdigits[n] = strchr (mbdigits[n], '\0') + 1;
+
+ cmpp = mbdigits[n];
+ while ((unsigned char) *cmpp == c && avail >= 0)
+ {
+ if (*++cmpp == '\0')
+ break;
+ else
+ {
+ if (avail == 0 || inchar () == EOF)
+ break;
+ --avail;
+ }
+ }
+
+ if (*cmpp == '\0')
+ {
+ if (width > 0)
+ width = avail;
+ to_level = from_level;
+ break;
+ }
+
+ /* We are pushing all read characters back. */
+ if (cmpp > mbdigits[n])
+ {
+ ungetc (c, s);
+ while (--cmpp > mbdigits[n])
+ ungetc_not_eof ((unsigned char) *cmpp, s);
+ c = (unsigned char) *cmpp;
+ }
+
+ /* Advance the pointer to the next string. */
+ mbdigits[n] = strchr (mbdigits[n], '\0') + 1;
+#endif
+ }
+
+ if (n == 10)
+ {
+ /* Have not yet found the digit. */
+ for (level = from_level + 1; level <= to_level; ++level)
+ {
+ /* Search all ten digits of this level. */
+ for (n = 0; n < 10; ++n)
+ {
+#ifdef COMPILE_WSCANF
+ if (c == (wint_t) *wcdigits[n])
+ break;
+
+ /* Advance the pointer to the next string. */
+ ++wcdigits[n];
+#else
+ const char *cmpp;
+ int avail = width > 0 ? width : INT_MAX;
+
+ cmpp = mbdigits[n];
+ while ((unsigned char) *cmpp == c && avail >= 0)
+ {
+ if (*++cmpp == '\0')
+ break;
+ else
+ {
+ if (avail == 0 || inchar () == EOF)
+ break;
+ --avail;
+ }
+ }
+
+ if (*cmpp == '\0')
+ {
+ if (width > 0)
+ width = avail;
+ break;
+ }
+
+ /* We are pushing all read characters back. */
+ if (cmpp > mbdigits[n])
+ {
+ ungetc (c, s);
+ while (--cmpp > mbdigits[n])
+ ungetc_not_eof ((unsigned char) *cmpp, s);
+ c = (unsigned char) *cmpp;
+ }
+
+ /* Advance the pointer to the next string. */
+ mbdigits[n] = strchr (mbdigits[n], '\0') + 1;
+#endif
+ }
+
+ if (n < 10)
+ {
+ /* Found it. */
+ from_level = level;
+ to_level = level;
+ break;
+ }
+ }
+ }
+
+ if (n < 10)
+ c = L_('0') + n;
+ else if (flags & GROUP)
+ {
+ /* Try matching against the thousands separator. */
+#ifdef COMPILE_WSCANF
+ if (c != thousands)
+ break;
+#else
+ const char *cmpp = thousands;
+ int avail = width > 0 ? width : INT_MAX;
+
+ while ((unsigned char) *cmpp == c && avail >= 0)
+ {
+ char_buffer_add (&charbuf, c);
+ if (*++cmpp == '\0')
+ break;
+ else
+ {
+ if (avail == 0 || inchar () == EOF)
+ break;
+ --avail;
+ }
+ }
+
+ if (char_buffer_error (&charbuf))
+ {
+ __set_errno (ENOMEM);
+ done = EOF;
+ goto errout;
+ }
+
+ if (*cmpp != '\0')
+ {
+ /* We are pushing all read characters back. */
+ if (cmpp > thousands)
+ {
+ charbuf.current -= cmpp - thousands;
+ ungetc (c, s);
+ while (--cmpp > thousands)
+ ungetc_not_eof ((unsigned char) *cmpp, s);
+ c = (unsigned char) *cmpp;
+ }
+ break;
+ }
+
+ if (width > 0)
+ width = avail;
+
+ /* The last thousands character will be added back by
+ the char_buffer_add below. */
+ --charbuf.current;
+#endif
+ }
+ else
+ break;
+
+ char_buffer_add (&charbuf, c);
+ if (width > 0)
+ --width;
+
+ c = inchar ();
+ }
+ }
+ else
+ /* Read the number into workspace. */
+ while (c != EOF && width != 0)
+ {
+ if (base == 16)
+ {
+ if (!ISXDIGIT (c))
+ break;
+ }
+ else if (!ISDIGIT (c) || (int) (c - L_('0')) >= base)
+ {
+ if (base == 10 && (flags & GROUP))
+ {
+ /* Try matching against the thousands separator. */
+#ifdef COMPILE_WSCANF
+ if (c != thousands)
+ break;
+#else
+ const char *cmpp = thousands;
+ int avail = width > 0 ? width : INT_MAX;
+
+ while ((unsigned char) *cmpp == c && avail >= 0)
+ {
+ char_buffer_add (&charbuf, c);
+ if (*++cmpp == '\0')
+ break;
+ else
+ {
+ if (avail == 0 || inchar () == EOF)
+ break;
+ --avail;
+ }
+ }
+
+ if (char_buffer_error (&charbuf))
+ {
+ __set_errno (ENOMEM);
+ done = EOF;
+ goto errout;
+ }
+
+ if (*cmpp != '\0')
+ {
+ /* We are pushing all read characters back. */
+ if (cmpp > thousands)
+ {
+ charbuf.current -= cmpp - thousands;
+ ungetc (c, s);
+ while (--cmpp > thousands)
+ ungetc_not_eof ((unsigned char) *cmpp, s);
+ c = (unsigned char) *cmpp;
+ }
+ break;
+ }
+
+ if (width > 0)
+ width = avail;
+
+ /* The last thousands character will be added back by
+ the char_buffer_add below. */
+ --charbuf.current;
+#endif
+ }
+ else
+ break;
+ }
+ char_buffer_add (&charbuf, c);
+ if (width > 0)
+ --width;
+
+ c = inchar ();
+ }
+
+ if (char_buffer_error (&charbuf))
+ {
+ __set_errno (ENOMEM);
+ done = EOF;
+ goto errout;
+ }
+
+ if (char_buffer_size (&charbuf) == 0
+ || (char_buffer_size (&charbuf) == 1
+ && (char_buffer_start (&charbuf)[0] == L_('+')
+ || char_buffer_start (&charbuf)[0] == L_('-'))))
+ {
+ /* There was no number. If we are supposed to read a pointer
+ we must recognize "(nil)" as well. */
+ if (__builtin_expect (char_buffer_size (&charbuf) == 0
+ && (flags & READ_POINTER)
+ && (width < 0 || width >= 5)
+ && c == '('
+ && TOLOWER (inchar ()) == L_('n')
+ && TOLOWER (inchar ()) == L_('i')
+ && TOLOWER (inchar ()) == L_('l')
+ && inchar () == L_(')'), 1))
+ /* We must produce the value of a NULL pointer. A single
+ '0' digit is enough. */
+ char_buffer_add (&charbuf, L_('0'));
+ else
+ {
+ /* The last read character is not part of the number
+ anymore. */
+ ungetc (c, s);
+
+ conv_error ();
+ }
+ }
+ else
+ /* The just read character is not part of the number anymore. */
+ ungetc (c, s);
+
+ /* Convert the number. */
+ char_buffer_add (&charbuf, L_('\0'));
+ if (char_buffer_error (&charbuf))
+ {
+ __set_errno (ENOMEM);
+ done = EOF;
+ goto errout;
+ }
+ if (need_longlong && (flags & LONGDBL))
+ {
+ if (flags & NUMBER_SIGNED)
+ num.q = __strtoll_internal
+ (char_buffer_start (&charbuf), &tw, base, flags & GROUP);
+ else
+ num.uq = __strtoull_internal
+ (char_buffer_start (&charbuf), &tw, base, flags & GROUP);
+ }
+ else
+ {
+ if (flags & NUMBER_SIGNED)
+ num.l = __strtol_internal
+ (char_buffer_start (&charbuf), &tw, base, flags & GROUP);
+ else
+ num.ul = __strtoul_internal
+ (char_buffer_start (&charbuf), &tw, base, flags & GROUP);
+ }
+ if (__glibc_unlikely (char_buffer_start (&charbuf) == tw))
+ conv_error ();
+
+ if (!(flags & SUPPRESS))
+ {
+ if (flags & NUMBER_SIGNED)
+ {
+ if (need_longlong && (flags & LONGDBL))
+ *ARG (LONGLONG int *) = num.q;
+ else if (need_long && (flags & LONG))
+ *ARG (long int *) = num.l;
+ else if (flags & SHORT)
+ *ARG (short int *) = (short int) num.l;
+ else if (!(flags & CHAR))
+ *ARG (int *) = (int) num.l;
+ else
+ *ARG (signed char *) = (signed char) num.ul;
+ }
+ else
+ {
+ if (need_longlong && (flags & LONGDBL))
+ *ARG (unsigned LONGLONG int *) = num.uq;
+ else if (need_long && (flags & LONG))
+ *ARG (unsigned long int *) = num.ul;
+ else if (flags & SHORT)
+ *ARG (unsigned short int *)
+ = (unsigned short int) num.ul;
+ else if (!(flags & CHAR))
+ *ARG (unsigned int *) = (unsigned int) num.ul;
+ else
+ *ARG (unsigned char *) = (unsigned char) num.ul;
+ }
+ ++done;
+ }
+ break;
+
+ case L_('e'): /* Floating-point numbers. */
+ case L_('E'):
+ case L_('f'):
+ case L_('F'):
+ case L_('g'):
+ case L_('G'):
+ case L_('a'):
+ case L_('A'):
+ c = inchar ();
+ if (width > 0)
+ --width;
+ if (__glibc_unlikely (c == EOF))
+ input_error ();
+
+ got_digit = got_dot = got_e = got_sign = 0;
+
+ /* Check for a sign. */
+ if (c == L_('-') || c == L_('+'))
+ {
+ got_sign = 1;
+ char_buffer_add (&charbuf, c);
+ if (__glibc_unlikely (width == 0 || inchar () == EOF))
+ /* EOF is only an input error before we read any chars. */
+ conv_error ();
+ if (width > 0)
+ --width;
+ }
+
+ /* Take care for the special arguments "nan" and "inf". */
+ if (TOLOWER (c) == L_('n'))
+ {
+ /* Maybe "nan". */
+ char_buffer_add (&charbuf, c);
+ if (__builtin_expect (width == 0
+ || inchar () == EOF
+ || TOLOWER (c) != L_('a'), 0))
+ conv_error ();
+ if (width > 0)
+ --width;
+ char_buffer_add (&charbuf, c);
+ if (__builtin_expect (width == 0
+ || inchar () == EOF
+ || TOLOWER (c) != L_('n'), 0))
+ conv_error ();
+ if (width > 0)
+ --width;
+ char_buffer_add (&charbuf, c);
+ /* It is "nan". */
+ goto scan_float;
+ }
+ else if (TOLOWER (c) == L_('i'))
+ {
+ /* Maybe "inf" or "infinity". */
+ char_buffer_add (&charbuf, c);
+ if (__builtin_expect (width == 0
+ || inchar () == EOF
+ || TOLOWER (c) != L_('n'), 0))
+ conv_error ();
+ if (width > 0)
+ --width;
+ char_buffer_add (&charbuf, c);
+ if (__builtin_expect (width == 0
+ || inchar () == EOF
+ || TOLOWER (c) != L_('f'), 0))
+ conv_error ();
+ if (width > 0)
+ --width;
+ char_buffer_add (&charbuf, c);
+ /* It is as least "inf". */
+ if (width != 0 && inchar () != EOF)
+ {
+ if (TOLOWER (c) == L_('i'))
+ {
+ if (width > 0)
+ --width;
+ /* Now we have to read the rest as well. */
+ char_buffer_add (&charbuf, c);
+ if (__builtin_expect (width == 0
+ || inchar () == EOF
+ || TOLOWER (c) != L_('n'), 0))
+ conv_error ();
+ if (width > 0)
+ --width;
+ char_buffer_add (&charbuf, c);
+ if (__builtin_expect (width == 0
+ || inchar () == EOF
+ || TOLOWER (c) != L_('i'), 0))
+ conv_error ();
+ if (width > 0)
+ --width;
+ char_buffer_add (&charbuf, c);
+ if (__builtin_expect (width == 0
+ || inchar () == EOF
+ || TOLOWER (c) != L_('t'), 0))
+ conv_error ();
+ if (width > 0)
+ --width;
+ char_buffer_add (&charbuf, c);
+ if (__builtin_expect (width == 0
+ || inchar () == EOF
+ || TOLOWER (c) != L_('y'), 0))
+ conv_error ();
+ if (width > 0)
+ --width;
+ char_buffer_add (&charbuf, c);
+ }
+ else
+ /* Never mind. */
+ ungetc (c, s);
+ }
+ goto scan_float;
+ }
+
+ exp_char = L_('e');
+ if (width != 0 && c == L_('0'))
+ {
+ char_buffer_add (&charbuf, c);
+ c = inchar ();
+ if (width > 0)
+ --width;
+ if (width != 0 && TOLOWER (c) == L_('x'))
+ {
+ /* It is a number in hexadecimal format. */
+ char_buffer_add (&charbuf, c);
+
+ flags |= HEXA_FLOAT;
+ exp_char = L_('p');
+
+ /* Grouping is not allowed. */
+ flags &= ~GROUP;
+ c = inchar ();
+ if (width > 0)
+ --width;
+ }
+ else
+ got_digit = 1;
+ }
+
+ while (1)
+ {
+ if (char_buffer_error (&charbuf))
+ {
+ __set_errno (ENOMEM);
+ done = EOF;
+ goto errout;
+ }
+ if (ISDIGIT (c))
+ {
+ char_buffer_add (&charbuf, c);
+ got_digit = 1;
+ }
+ else if (!got_e && (flags & HEXA_FLOAT) && ISXDIGIT (c))
+ {
+ char_buffer_add (&charbuf, c);
+ got_digit = 1;
+ }
+ else if (got_e && charbuf.current[-1] == exp_char
+ && (c == L_('-') || c == L_('+')))
+ char_buffer_add (&charbuf, c);
+ else if (got_digit && !got_e
+ && (CHAR_T) TOLOWER (c) == exp_char)
+ {
+ char_buffer_add (&charbuf, exp_char);
+ got_e = got_dot = 1;
+ }
+ else
+ {
+#ifdef COMPILE_WSCANF
+ if (! got_dot && c == decimal)
+ {
+ char_buffer_add (&charbuf, c);
+ got_dot = 1;
+ }
+ else if ((flags & GROUP) != 0 && ! got_dot && c == thousands)
+ char_buffer_add (&charbuf, c);
+ else
+ {
+ /* The last read character is not part of the number
+ anymore. */
+ ungetc (c, s);
+ break;
+ }
+#else
+ const char *cmpp = decimal;
+ int avail = width > 0 ? width : INT_MAX;
+
+ if (! got_dot)
+ {
+ while ((unsigned char) *cmpp == c && avail >= 0)
+ if (*++cmpp == '\0')
+ break;
+ else
+ {
+ if (avail == 0 || inchar () == EOF)
+ break;
+ --avail;
+ }
+ }
+
+ if (*cmpp == '\0')
+ {
+ /* Add all the characters. */
+ for (cmpp = decimal; *cmpp != '\0'; ++cmpp)
+ char_buffer_add (&charbuf, (unsigned char) *cmpp);
+ if (width > 0)
+ width = avail;
+ got_dot = 1;
+ }
+ else
+ {
+ /* Figure out whether it is a thousands separator.
+ There is one problem: we possibly read more than
+ one character. We cannot push them back but since
+ we know that parts of the `decimal' string matched,
+ we can compare against it. */
+ const char *cmp2p = thousands;
+
+ if ((flags & GROUP) != 0 && ! got_dot)
+ {
+ while (cmp2p - thousands < cmpp - decimal
+ && *cmp2p == decimal[cmp2p - thousands])
+ ++cmp2p;
+ if (cmp2p - thousands == cmpp - decimal)
+ {
+ while ((unsigned char) *cmp2p == c && avail >= 0)
+ if (*++cmp2p == '\0')
+ break;
+ else
+ {
+ if (avail == 0 || inchar () == EOF)
+ break;
+ --avail;
+ }
+ }
+ }
+
+ if (cmp2p != NULL && *cmp2p == '\0')
+ {
+ /* Add all the characters. */
+ for (cmpp = thousands; *cmpp != '\0'; ++cmpp)
+ char_buffer_add (&charbuf, (unsigned char) *cmpp);
+ if (width > 0)
+ width = avail;
+ }
+ else
+ {
+ /* The last read character is not part of the number
+ anymore. */
+ ungetc (c, s);
+ break;
+ }
+ }
+#endif
+ }
+
+ if (width == 0 || inchar () == EOF)
+ break;
+
+ if (width > 0)
+ --width;
+ }
+
+ if (char_buffer_error (&charbuf))
+ {
+ __set_errno (ENOMEM);
+ done = EOF;
+ goto errout;
+ }
+
+ wctrans_t map;
+ if (__builtin_expect ((flags & I18N) != 0, 0)
+ /* Hexadecimal floats make no sense, fixing localized
+ digits with ASCII letters. */
+ && !(flags & HEXA_FLOAT)
+ /* Minimum requirement. */
+ && (char_buffer_size (&charbuf) == got_sign || got_dot)
+ && (map = __wctrans ("to_inpunct")) != NULL)
+ {
+ /* Reget the first character. */
+ inchar ();
+
+ /* Localized digits, decimal points, and thousands
+ separator. */
+ wint_t wcdigits[12];
+
+ /* First get decimal equivalent to check if we read it
+ or not. */
+ wcdigits[11] = __towctrans (L'.', map);
+
+ /* If we have not read any character or have just read
+ locale decimal point which matches the decimal point
+ for localized FP numbers, then we may have localized
+ digits. Note, we test GOT_DOT above. */
+#ifdef COMPILE_WSCANF
+ if (char_buffer_size (&charbuf) == got_sign
+ || (char_buffer_size (&charbuf) == got_sign + 1
+ && wcdigits[11] == decimal))
+#else
+ char mbdigits[12][MB_LEN_MAX + 1];
+
+ mbstate_t state;
+ memset (&state, '\0', sizeof (state));
+
+ bool match_so_far = char_buffer_size (&charbuf) == got_sign;
+ size_t mblen = __wcrtomb (mbdigits[11], wcdigits[11], &state);
+ if (mblen != (size_t) -1)
+ {
+ mbdigits[11][mblen] = '\0';
+ match_so_far |=
+ (char_buffer_size (&charbuf) == strlen (decimal) + got_sign
+ && strcmp (decimal, mbdigits[11]) == 0);
+ }
+ else
+ {
+ size_t decimal_len = strlen (decimal);
+ /* This should always be the case but the data comes
+ from a file. */
+ if (decimal_len <= MB_LEN_MAX)
+ {
+ match_so_far |= (char_buffer_size (&charbuf)
+ == decimal_len + got_sign);
+ memcpy (mbdigits[11], decimal, decimal_len + 1);
+ }
+ else
+ match_so_far = false;
+ }
+
+ if (match_so_far)
+#endif
+ {
+ bool have_locthousands = (flags & GROUP) != 0;
+
+ /* Now get the digits and the thousands-sep equivalents. */
+ for (int n = 0; n < 11; ++n)
+ {
+ if (n < 10)
+ wcdigits[n] = __towctrans (L'0' + n, map);
+ else if (n == 10)
+ {
+ wcdigits[10] = __towctrans (L',', map);
+ have_locthousands &= wcdigits[10] != L'\0';
+ }
+
+#ifndef COMPILE_WSCANF
+ memset (&state, '\0', sizeof (state));
+
+ size_t mblen = __wcrtomb (mbdigits[n], wcdigits[n],
+ &state);
+ if (mblen == (size_t) -1)
+ {
+ if (n == 10)
+ {
+ if (have_locthousands)
+ {
+ size_t thousands_len = strlen (thousands);
+ if (thousands_len <= MB_LEN_MAX)
+ memcpy (mbdigits[10], thousands,
+ thousands_len + 1);
+ else
+ have_locthousands = false;
+ }
+ }
+ else
+ /* Ignore checking against localized digits. */
+ goto no_i18nflt;
+ }
+ else
+ mbdigits[n][mblen] = '\0';
+#endif
+ }
+
+ /* Start checking against localized digits, if
+ conversion is done correctly. */
+ while (1)
+ {
+ if (char_buffer_error (&charbuf))
+ {
+ __set_errno (ENOMEM);
+ done = EOF;
+ goto errout;
+ }
+ if (got_e && charbuf.current[-1] == exp_char
+ && (c == L_('-') || c == L_('+')))
+ char_buffer_add (&charbuf, c);
+ else if (char_buffer_size (&charbuf) > got_sign && !got_e
+ && (CHAR_T) TOLOWER (c) == exp_char)
+ {
+ char_buffer_add (&charbuf, exp_char);
+ got_e = got_dot = 1;
+ }
+ else
+ {
+ /* Check against localized digits, decimal point,
+ and thousands separator. */
+ int n;
+ for (n = 0; n < 12; ++n)
+ {
+#ifdef COMPILE_WSCANF
+ if (c == wcdigits[n])
+ {
+ if (n < 10)
+ char_buffer_add (&charbuf, L_('0') + n);
+ else if (n == 11 && !got_dot)
+ {
+ char_buffer_add (&charbuf, decimal);
+ got_dot = 1;
+ }
+ else if (n == 10 && have_locthousands
+ && ! got_dot)
+ char_buffer_add (&charbuf, thousands);
+ else
+ /* The last read character is not part
+ of the number anymore. */
+ n = 12;
+
+ break;
+ }
+#else
+ const char *cmpp = mbdigits[n];
+ int avail = width > 0 ? width : INT_MAX;
+
+ while ((unsigned char) *cmpp == c && avail >= 0)
+ if (*++cmpp == '\0')
+ break;
+ else
+ {
+ if (avail == 0 || inchar () == EOF)
+ break;
+ --avail;
+ }
+ if (*cmpp == '\0')
+ {
+ if (width > 0)
+ width = avail;
+
+ if (n < 10)
+ char_buffer_add (&charbuf, L_('0') + n);
+ else if (n == 11 && !got_dot)
+ {
+ /* Add all the characters. */
+ for (cmpp = decimal; *cmpp != '\0';
+ ++cmpp)
+ char_buffer_add (&charbuf,
+ (unsigned char) *cmpp);
+
+ got_dot = 1;
+ }
+ else if (n == 10 && (flags & GROUP) != 0
+ && ! got_dot)
+ {
+ /* Add all the characters. */
+ for (cmpp = thousands; *cmpp != '\0';
+ ++cmpp)
+ char_buffer_add (&charbuf,
+ (unsigned char) *cmpp);
+ }
+ else
+ /* The last read character is not part
+ of the number anymore. */
+ n = 12;
+
+ break;
+ }
+
+ /* We are pushing all read characters back. */
+ if (cmpp > mbdigits[n])
+ {
+ ungetc (c, s);
+ while (--cmpp > mbdigits[n])
+ ungetc_not_eof ((unsigned char) *cmpp, s);
+ c = (unsigned char) *cmpp;
+ }
+#endif
+ }
+
+ if (n >= 12)
+ {
+ /* The last read character is not part
+ of the number anymore. */
+ ungetc (c, s);
+ break;
+ }
+ }
+
+ if (width == 0 || inchar () == EOF)
+ break;
+
+ if (width > 0)
+ --width;
+ }
+ }
+
+#ifndef COMPILE_WSCANF
+ no_i18nflt:
+ ;
+#endif
+ }
+
+ if (char_buffer_error (&charbuf))
+ {
+ __set_errno (ENOMEM);
+ done = EOF;
+ goto errout;
+ }
+
+ /* Have we read any character? If we try to read a number
+ in hexadecimal notation and we have read only the `0x'
+ prefix this is an error. */
+ if (__glibc_unlikely (char_buffer_size (&charbuf) == got_sign
+ || ((flags & HEXA_FLOAT)
+ && (char_buffer_size (&charbuf)
+ == 2 + got_sign))))
+ conv_error ();
+
+ scan_float:
+ /* Convert the number. */
+ char_buffer_add (&charbuf, L_('\0'));
+ if (char_buffer_error (&charbuf))
+ {
+ __set_errno (ENOMEM);
+ done = EOF;
+ goto errout;
+ }
+#if __HAVE_FLOAT128_UNLIKE_LDBL
+ if ((flags & LONGDBL) \
+ && (mode_flags & SCANF_LDBL_USES_FLOAT128) != 0)
+ {
+ _Float128 d = __strtof128_internal
+ (char_buffer_start (&charbuf), &tw, flags & GROUP);
+ if (!(flags & SUPPRESS) && tw != char_buffer_start (&charbuf))
+ *ARG (_Float128 *) = d;
+ }
+ else
+#endif
+ if ((flags & LONGDBL) \
+ && __glibc_likely ((mode_flags & SCANF_LDBL_IS_DBL) == 0))
+ {
+ long double d = __strtold_internal
+ (char_buffer_start (&charbuf), &tw, flags & GROUP);
+ if (!(flags & SUPPRESS) && tw != char_buffer_start (&charbuf))
+ *ARG (long double *) = d;
+ }
+ else if (flags & (LONG | LONGDBL))
+ {
+ double d = __strtod_internal
+ (char_buffer_start (&charbuf), &tw, flags & GROUP);
+ if (!(flags & SUPPRESS) && tw != char_buffer_start (&charbuf))
+ *ARG (double *) = d;
+ }
+ else
+ {
+ float d = __strtof_internal
+ (char_buffer_start (&charbuf), &tw, flags & GROUP);
+ if (!(flags & SUPPRESS) && tw != char_buffer_start (&charbuf))
+ *ARG (float *) = d;
+ }
+
+ if (__glibc_unlikely (tw == char_buffer_start (&charbuf)))
+ conv_error ();
+
+ if (!(flags & SUPPRESS))
+ ++done;
+ break;
+
+ case L_('['): /* Character class. */
+ if (flags & LONG)
+ STRING_ARG (wstr, wchar_t, 100);
+ else
+ STRING_ARG (str, char, 100);
+
+ if (*f == L_('^'))
+ {
+ ++f;
+ not_in = 1;
+ }
+ else
+ not_in = 0;
+
+ if (width < 0)
+ /* There is no width given so there is also no limit on the
+ number of characters we read. Therefore we set width to
+ a very high value to make the algorithm easier. */
+ width = INT_MAX;
+
+#ifdef COMPILE_WSCANF
+ /* Find the beginning and the end of the scanlist. We are not
+ creating a lookup table since it would have to be too large.
+ Instead we search each time through the string. This is not
+ a constant lookup time but who uses this feature deserves to
+ be punished. */
+ tw = (wchar_t *) f; /* Marks the beginning. */
+
+ if (*f == L']')
+ ++f;
+
+ while ((fc = *f++) != L'\0' && fc != L']');
+
+ if (__glibc_unlikely (fc == L'\0'))
+ conv_error ();
+ wchar_t *twend = (wchar_t *) f - 1;
+#else
+ /* Fill WP with byte flags indexed by character.
+ We will use this flag map for matching input characters. */
+ if (!scratch_buffer_set_array_size
+ (&charbuf.scratch, UCHAR_MAX + 1, 1))
+ {
+ done = EOF;
+ goto errout;
+ }
+ memset (charbuf.scratch.data, '\0', UCHAR_MAX + 1);
+
+ fc = *f;
+ if (fc == ']' || fc == '-')
+ {
+ /* If ] or - appears before any char in the set, it is not
+ the terminator or separator, but the first char in the
+ set. */
+ ((char *)charbuf.scratch.data)[fc] = 1;
+ ++f;
+ }
+
+ while ((fc = *f++) != '\0' && fc != ']')
+ if (fc == '-' && *f != '\0' && *f != ']'
+ && (unsigned char) f[-2] <= (unsigned char) *f)
+ {
+ /* Add all characters from the one before the '-'
+ up to (but not including) the next format char. */
+ for (fc = (unsigned char) f[-2]; fc < (unsigned char) *f; ++fc)
+ ((char *)charbuf.scratch.data)[fc] = 1;
+ }
+ else
+ /* Add the character to the flag map. */
+ ((char *)charbuf.scratch.data)[fc] = 1;
+
+ if (__glibc_unlikely (fc == '\0'))
+ conv_error();
+#endif
+
+ if (flags & LONG)
+ {
+ size_t now = read_in;
+#ifdef COMPILE_WSCANF
+ if (__glibc_unlikely (inchar () == WEOF))
+ input_error ();
+
+ do
+ {
+ wchar_t *runp;
+
+ /* Test whether it's in the scanlist. */
+ runp = tw;
+ while (runp < twend)
+ {
+ if (runp[0] == L'-' && runp[1] != '\0'
+ && runp + 1 != twend
+ && runp != tw
+ && (unsigned int) runp[-1] <= (unsigned int) runp[1])
+ {
+ /* Match against all characters in between the
+ first and last character of the sequence. */
+ wchar_t wc;
+
+ for (wc = runp[-1] + 1; wc <= runp[1]; ++wc)
+ if ((wint_t) wc == c)
+ break;
+
+ if (wc <= runp[1] && !not_in)
+ break;
+ if (wc <= runp[1] && not_in)
+ {
+ /* The current character is not in the
+ scanset. */
+ ungetc (c, s);
+ goto out;
+ }
+
+ runp += 2;
+ }
+ else
+ {
+ if ((wint_t) *runp == c && !not_in)
+ break;
+ if ((wint_t) *runp == c && not_in)
+ {
+ ungetc (c, s);
+ goto out;
+ }
+
+ ++runp;
+ }
+ }
+
+ if (runp == twend && !not_in)
+ {
+ ungetc (c, s);
+ goto out;
+ }
+
+ if (!(flags & SUPPRESS))
+ {
+ *wstr++ = c;
+
+ if ((flags & MALLOC)
+ && wstr == (wchar_t *) *strptr + strsize)
+ {
+ /* Enlarge the buffer. */
+ wstr = (wchar_t *) realloc (*strptr,
+ (2 * strsize)
+ * sizeof (wchar_t));
+ if (wstr == NULL)
+ {
+ /* Can't allocate that much. Last-ditch
+ effort. */
+ wstr = (wchar_t *)
+ realloc (*strptr, (strsize + 1)
+ * sizeof (wchar_t));
+ if (wstr == NULL)
+ {
+ if (flags & POSIX_MALLOC)
+ {
+ done = EOF;
+ goto errout;
+ }
+ /* We lose. Oh well. Terminate the string
+ and stop converting, so at least we don't
+ skip any input. */
+ ((wchar_t *) (*strptr))[strsize - 1] = L'\0';
+ strptr = NULL;
+ ++done;
+ conv_error ();
+ }
+ else
+ {
+ *strptr = (char *) wstr;
+ wstr += strsize;
+ ++strsize;
+ }
+ }
+ else
+ {
+ *strptr = (char *) wstr;
+ wstr += strsize;
+ strsize *= 2;
+ }
+ }
+ }
+ }
+ while (--width > 0 && inchar () != WEOF);
+ out:
+#else
+ char buf[MB_LEN_MAX];
+ size_t cnt = 0;
+ mbstate_t cstate;
+
+ if (__glibc_unlikely (inchar () == EOF))
+ input_error ();
+
+ memset (&cstate, '\0', sizeof (cstate));
+
+ do
+ {
+ if (((char *) charbuf.scratch.data)[c] == not_in)
+ {
+ ungetc_not_eof (c, s);
+ break;
+ }
+
+ /* This is easy. */
+ if (!(flags & SUPPRESS))
+ {
+ size_t n;
+
+ /* Convert it into a wide character. */
+ buf[0] = c;
+ n = __mbrtowc (wstr, buf, 1, &cstate);
+
+ if (n == (size_t) -2)
+ {
+ /* Possibly correct character, just not enough
+ input. */
+ ++cnt;
+ assert (cnt < MB_LEN_MAX);
+ continue;
+ }
+ cnt = 0;
+
+ ++wstr;
+ if ((flags & MALLOC)
+ && wstr == (wchar_t *) *strptr + strsize)
+ {
+ /* Enlarge the buffer. */
+ wstr = (wchar_t *) realloc (*strptr,
+ (2 * strsize
+ * sizeof (wchar_t)));
+ if (wstr == NULL)
+ {
+ /* Can't allocate that much. Last-ditch
+ effort. */
+ wstr = (wchar_t *)
+ realloc (*strptr, ((strsize + 1)
+ * sizeof (wchar_t)));
+ if (wstr == NULL)
+ {
+ if (flags & POSIX_MALLOC)
+ {
+ done = EOF;
+ goto errout;
+ }
+ /* We lose. Oh well. Terminate the
+ string and stop converting,
+ so at least we don't skip any input. */
+ ((wchar_t *) (*strptr))[strsize - 1] = L'\0';
+ strptr = NULL;
+ ++done;
+ conv_error ();
+ }
+ else
+ {
+ *strptr = (char *) wstr;
+ wstr += strsize;
+ ++strsize;
+ }
+ }
+ else
+ {
+ *strptr = (char *) wstr;
+ wstr += strsize;
+ strsize *= 2;
+ }
+ }
+ }
+
+ if (--width <= 0)
+ break;
+ }
+ while (inchar () != EOF);
+
+ if (__glibc_unlikely (cnt != 0))
+ /* We stopped in the middle of recognizing another
+ character. That's a problem. */
+ encode_error ();
+#endif
+
+ if (__glibc_unlikely (now == read_in))
+ /* We haven't succesfully read any character. */
+ conv_error ();
+
+ if (!(flags & SUPPRESS))
+ {
+ *wstr++ = L'\0';
+
+ if ((flags & MALLOC)
+ && wstr - (wchar_t *) *strptr != strsize)
+ {
+ wchar_t *cp = (wchar_t *)
+ realloc (*strptr, ((wstr - (wchar_t *) *strptr)
+ * sizeof (wchar_t)));
+ if (cp != NULL)
+ *strptr = (char *) cp;
+ }
+ strptr = NULL;
+
+ ++done;
+ }
+ }
+ else
+ {
+ size_t now = read_in;
+
+ if (__glibc_unlikely (inchar () == EOF))
+ input_error ();
+
+#ifdef COMPILE_WSCANF
+
+ memset (&state, '\0', sizeof (state));
+
+ do
+ {
+ wchar_t *runp;
+ size_t n;
+
+ /* Test whether it's in the scanlist. */
+ runp = tw;
+ while (runp < twend)
+ {
+ if (runp[0] == L'-' && runp[1] != '\0'
+ && runp + 1 != twend
+ && runp != tw
+ && (unsigned int) runp[-1] <= (unsigned int) runp[1])
+ {
+ /* Match against all characters in between the
+ first and last character of the sequence. */
+ wchar_t wc;
+
+ for (wc = runp[-1] + 1; wc <= runp[1]; ++wc)
+ if ((wint_t) wc == c)
+ break;
+
+ if (wc <= runp[1] && !not_in)
+ break;
+ if (wc <= runp[1] && not_in)
+ {
+ /* The current character is not in the
+ scanset. */
+ ungetc (c, s);
+ goto out2;
+ }
+
+ runp += 2;
+ }
+ else
+ {
+ if ((wint_t) *runp == c && !not_in)
+ break;
+ if ((wint_t) *runp == c && not_in)
+ {
+ ungetc (c, s);
+ goto out2;
+ }
+
+ ++runp;
+ }
+ }
+
+ if (runp == twend && !not_in)
+ {
+ ungetc (c, s);
+ goto out2;
+ }
+
+ if (!(flags & SUPPRESS))
+ {
+ if ((flags & MALLOC)
+ && *strptr + strsize - str <= MB_LEN_MAX)
+ {
+ /* Enlarge the buffer. */
+ size_t strleng = str - *strptr;
+ char *newstr;
+
+ newstr = (char *) realloc (*strptr, 2 * strsize);
+ if (newstr == NULL)
+ {
+ /* Can't allocate that much. Last-ditch
+ effort. */
+ newstr = (char *) realloc (*strptr,
+ strleng + MB_LEN_MAX);
+ if (newstr == NULL)
+ {
+ if (flags & POSIX_MALLOC)
+ {
+ done = EOF;
+ goto errout;
+ }
+ /* We lose. Oh well. Terminate the string
+ and stop converting, so at least we don't
+ skip any input. */
+ ((char *) (*strptr))[strleng] = '\0';
+ strptr = NULL;
+ ++done;
+ conv_error ();
+ }
+ else
+ {
+ *strptr = newstr;
+ str = newstr + strleng;
+ strsize = strleng + MB_LEN_MAX;
+ }
+ }
+ else
+ {
+ *strptr = newstr;
+ str = newstr + strleng;
+ strsize *= 2;
+ }
+ }
+ }
+
+ n = __wcrtomb (!(flags & SUPPRESS) ? str : NULL, c, &state);
+ if (__glibc_unlikely (n == (size_t) -1))
+ encode_error ();
+
+ assert (n <= MB_LEN_MAX);
+ str += n;
+ }
+ while (--width > 0 && inchar () != WEOF);
+ out2:
+#else
+ do
+ {
+ if (((char *) charbuf.scratch.data)[c] == not_in)
+ {
+ ungetc_not_eof (c, s);
+ break;
+ }
+
+ /* This is easy. */
+ if (!(flags & SUPPRESS))
+ {
+ *str++ = c;
+ if ((flags & MALLOC)
+ && (char *) str == *strptr + strsize)
+ {
+ /* Enlarge the buffer. */
+ size_t newsize = 2 * strsize;
+
+ allocagain:
+ str = (char *) realloc (*strptr, newsize);
+ if (str == NULL)
+ {
+ /* Can't allocate that much. Last-ditch
+ effort. */
+ if (newsize > strsize + 1)
+ {
+ newsize = strsize + 1;
+ goto allocagain;
+ }
+ if (flags & POSIX_MALLOC)
+ {
+ done = EOF;
+ goto errout;
+ }
+ /* We lose. Oh well. Terminate the
+ string and stop converting,
+ so at least we don't skip any input. */
+ ((char *) (*strptr))[strsize - 1] = '\0';
+ strptr = NULL;
+ ++done;
+ conv_error ();
+ }
+ else
+ {
+ *strptr = (char *) str;
+ str += strsize;
+ strsize = newsize;
+ }
+ }
+ }
+ }
+ while (--width > 0 && inchar () != EOF);
+#endif
+
+ if (__glibc_unlikely (now == read_in))
+ /* We haven't succesfully read any character. */
+ conv_error ();
+
+ if (!(flags & SUPPRESS))
+ {
+#ifdef COMPILE_WSCANF
+ /* We have to emit the code to get into the initial
+ state. */
+ char buf[MB_LEN_MAX];
+ size_t n = __wcrtomb (buf, L'\0', &state);
+ if (n > 0 && (flags & MALLOC)
+ && str + n >= *strptr + strsize)
+ {
+ /* Enlarge the buffer. */
+ size_t strleng = str - *strptr;
+ char *newstr;
+
+ newstr = (char *) realloc (*strptr, strleng + n + 1);
+ if (newstr == NULL)
+ {
+ if (flags & POSIX_MALLOC)
+ {
+ done = EOF;
+ goto errout;
+ }
+ /* We lose. Oh well. Terminate the string
+ and stop converting, so at least we don't
+ skip any input. */
+ ((char *) (*strptr))[strleng] = '\0';
+ strptr = NULL;
+ ++done;
+ conv_error ();
+ }
+ else
+ {
+ *strptr = newstr;
+ str = newstr + strleng;
+ strsize = strleng + n + 1;
+ }
+ }
+
+ str = __mempcpy (str, buf, n);
+#endif
+ *str++ = '\0';
+
+ if ((flags & MALLOC) && str - *strptr != strsize)
+ {
+ char *cp = (char *) realloc (*strptr, str - *strptr);
+ if (cp != NULL)
+ *strptr = cp;
+ }
+ strptr = NULL;
+
+ ++done;
+ }
+ }
+ break;
+
+ case L_('p'): /* Generic pointer. */
+ base = 16;
+ /* A PTR must be the same size as a `long int'. */
+ flags &= ~(SHORT|LONGDBL);
+ if (need_long)
+ flags |= LONG;
+ flags |= READ_POINTER;
+ goto number;
+
+ default:
+ /* If this is an unknown format character punt. */
+ conv_error ();
+ }
+ }
+
+ /* The last thing we saw int the format string was a white space.
+ Consume the last white spaces. */
+ if (skip_space)
+ {
+ do
+ c = inchar ();
+ while (ISSPACE (c));
+ ungetc (c, s);
+ }
+
+ errout:
+ /* Unlock stream. */
+ UNLOCK_STREAM (s);
+
+ scratch_buffer_free (&charbuf.scratch);
+
+ if (__glibc_unlikely (done == EOF))
+ {
+ if (__glibc_unlikely (ptrs_to_free != NULL))
+ {
+ struct ptrs_to_free *p = ptrs_to_free;
+ while (p != NULL)
+ {
+ for (size_t cnt = 0; cnt < p->count; ++cnt)
+ {
+ free (*p->ptrs[cnt]);
+ *p->ptrs[cnt] = NULL;
+ }
+ p = p->next;
+ ptrs_to_free = p;
+ }
+ }
+ }
+ else if (__glibc_unlikely (strptr != NULL))
+ {
+ free (*strptr);
+ *strptr = NULL;
+ }
+ return done;
+}
diff --git a/stdio-common/vfscanf.c b/stdio-common/vfscanf.c
index 1ce836a324..d5d5a53e2a 100644
--- a/stdio-common/vfscanf.c
+++ b/stdio-common/vfscanf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -13,3055 +13,20 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#include <assert.h>
-#include <errno.h>
-#include <limits.h>
-#include <ctype.h>
-#include <stdarg.h>
-#include <stdbool.h>
-#include <stdio.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <string.h>
-#include <wchar.h>
-#include <wctype.h>
-#include <libc-diag.h>
-#include <libc-lock.h>
-#include <locale/localeinfo.h>
-#include <scratch_buffer.h>
+/* This file defines one of the deprecated scanf variants. */
+#include <features.h>
+#undef __GLIBC_USE_DEPRECATED_SCANF
+#define __GLIBC_USE_DEPRECATED_SCANF 1
-#ifdef __GNUC__
-# define HAVE_LONGLONG
-# define LONGLONG long long
-#else
-# define LONGLONG long
-#endif
-
-/* Determine whether we have to handle `long long' at all. */
-#if LONG_MAX == LONG_LONG_MAX
-# define need_longlong 0
-#else
-# define need_longlong 1
-#endif
-
-/* Determine whether we have to handle `long'. */
-#if INT_MAX == LONG_MAX
-# define need_long 0
-#else
-# define need_long 1
-#endif
-
-/* Those are flags in the conversion format. */
-#define LONG 0x0001 /* l: long or double */
-#define LONGDBL 0x0002 /* L: long long or long double */
-#define SHORT 0x0004 /* h: short */
-#define SUPPRESS 0x0008 /* *: suppress assignment */
-#define POINTER 0x0010 /* weird %p pointer (`fake hex') */
-#define NOSKIP 0x0020 /* do not skip blanks */
-#define NUMBER_SIGNED 0x0040 /* signed integer */
-#define GROUP 0x0080 /* ': group numbers */
-#define GNU_MALLOC 0x0100 /* a: malloc strings */
-#define CHAR 0x0200 /* hh: char */
-#define I18N 0x0400 /* I: use locale's digits */
-#define HEXA_FLOAT 0x0800 /* hexadecimal float */
-#define READ_POINTER 0x1000 /* this is a pointer value */
-#define POSIX_MALLOC 0x2000 /* m: malloc strings */
-#define MALLOC (GNU_MALLOC | POSIX_MALLOC)
-
-#include <locale/localeinfo.h>
#include <libioP.h>
-#ifdef COMPILE_WSCANF
-# define ungetc(c, s) ((void) (c == WEOF \
- || (--read_in, \
- _IO_sputbackwc (s, c))))
-# define ungetc_not_eof(c, s) ((void) (--read_in, \
- _IO_sputbackwc (s, c)))
-# define inchar() (c == WEOF ? ((errno = inchar_errno), WEOF) \
- : ((c = _IO_getwc_unlocked (s)), \
- (void) (c != WEOF \
- ? ++read_in \
- : (size_t) (inchar_errno = errno)), c))
-
-# define ISSPACE(Ch) iswspace (Ch)
-# define ISDIGIT(Ch) iswdigit (Ch)
-# define ISXDIGIT(Ch) iswxdigit (Ch)
-# define TOLOWER(Ch) towlower (Ch)
-# define ORIENT if (_IO_fwide (s, 1) != 1) return WEOF
-# define __strtoll_internal __wcstoll_internal
-# define __strtoull_internal __wcstoull_internal
-# define __strtol_internal __wcstol_internal
-# define __strtoul_internal __wcstoul_internal
-# define __strtold_internal __wcstold_internal
-# define __strtod_internal __wcstod_internal
-# define __strtof_internal __wcstof_internal
-
-# define L_(Str) L##Str
-# define CHAR_T wchar_t
-# define UCHAR_T unsigned int
-# define WINT_T wint_t
-# undef EOF
-# define EOF WEOF
-#else
-# define ungetc(c, s) ((void) ((int) c == EOF \
- || (--read_in, \
- _IO_sputbackc (s, (unsigned char) c))))
-# define ungetc_not_eof(c, s) ((void) (--read_in, \
- _IO_sputbackc (s, (unsigned char) c)))
-# define inchar() (c == EOF ? ((errno = inchar_errno), EOF) \
- : ((c = _IO_getc_unlocked (s)), \
- (void) (c != EOF \
- ? ++read_in \
- : (size_t) (inchar_errno = errno)), c))
-# define ISSPACE(Ch) __isspace_l (Ch, loc)
-# define ISDIGIT(Ch) __isdigit_l (Ch, loc)
-# define ISXDIGIT(Ch) __isxdigit_l (Ch, loc)
-# define TOLOWER(Ch) __tolower_l ((unsigned char) (Ch), loc)
-# define ORIENT if (_IO_vtable_offset (s) == 0 \
- && _IO_fwide (s, -1) != -1) \
- return EOF
-
-# define L_(Str) Str
-# define CHAR_T char
-# define UCHAR_T unsigned char
-# define WINT_T int
-#endif
-
-#include "printf-parse.h" /* Use read_int. */
-
-#define encode_error() do { \
- errval = 4; \
- __set_errno (EILSEQ); \
- goto errout; \
- } while (0)
-#define conv_error() do { \
- errval = 2; \
- goto errout; \
- } while (0)
-#define input_error() do { \
- errval = 1; \
- if (done == 0) done = EOF; \
- goto errout; \
- } while (0)
-#define add_ptr_to_free(ptr) \
- do \
- { \
- if (ptrs_to_free == NULL \
- || ptrs_to_free->count == (sizeof (ptrs_to_free->ptrs) \
- / sizeof (ptrs_to_free->ptrs[0]))) \
- { \
- struct ptrs_to_free *new_ptrs = alloca (sizeof (*ptrs_to_free)); \
- new_ptrs->count = 0; \
- new_ptrs->next = ptrs_to_free; \
- ptrs_to_free = new_ptrs; \
- } \
- ptrs_to_free->ptrs[ptrs_to_free->count++] = (ptr); \
- } \
- while (0)
-#define ARGCHECK(s, format) \
- do \
- { \
- /* Check file argument for consistence. */ \
- CHECK_FILE (s, EOF); \
- if (s->_flags & _IO_NO_READS) \
- { \
- __set_errno (EBADF); \
- return EOF; \
- } \
- else if (format == NULL) \
- { \
- __set_errno (EINVAL); \
- return EOF; \
- } \
- } while (0)
-#define LOCK_STREAM(S) \
- __libc_cleanup_region_start (1, (void (*) (void *)) &_IO_funlockfile, (S)); \
- _IO_flockfile (S)
-#define UNLOCK_STREAM(S) \
- _IO_funlockfile (S); \
- __libc_cleanup_region_end (0)
-
-struct ptrs_to_free
-{
- size_t count;
- struct ptrs_to_free *next;
- char **ptrs[32];
-};
-
-struct char_buffer {
- CHAR_T *current;
- CHAR_T *end;
- struct scratch_buffer scratch;
-};
-
-/* Returns a pointer to the first CHAR_T object in the buffer. Only
- valid if char_buffer_add (BUFFER, CH) has been called and
- char_buffer_error (BUFFER) is false. */
-static inline CHAR_T *
-char_buffer_start (const struct char_buffer *buffer)
-{
- return (CHAR_T *) buffer->scratch.data;
-}
-
-/* Returns the number of CHAR_T objects in the buffer. Only valid if
- char_buffer_error (BUFFER) is false. */
-static inline size_t
-char_buffer_size (const struct char_buffer *buffer)
-{
- return buffer->current - char_buffer_start (buffer);
-}
-
-/* Reinitializes BUFFER->current and BUFFER->end to cover the entire
- scratch buffer. */
-static inline void
-char_buffer_rewind (struct char_buffer *buffer)
-{
- buffer->current = char_buffer_start (buffer);
- buffer->end = buffer->current + buffer->scratch.length / sizeof (CHAR_T);
-}
-
-/* Returns true if a previous call to char_buffer_add (BUFFER, CH)
- failed. */
-static inline bool
-char_buffer_error (const struct char_buffer *buffer)
-{
- return __glibc_unlikely (buffer->current == NULL);
-}
-
-/* Slow path for char_buffer_add. */
-static void
-char_buffer_add_slow (struct char_buffer *buffer, CHAR_T ch)
-{
- if (char_buffer_error (buffer))
- return;
- size_t offset = buffer->end - (CHAR_T *) buffer->scratch.data;
- if (!scratch_buffer_grow_preserve (&buffer->scratch))
- {
- buffer->current = NULL;
- buffer->end = NULL;
- return;
- }
- char_buffer_rewind (buffer);
- buffer->current += offset;
- *buffer->current++ = ch;
-}
-
-/* Adds CH to BUFFER. This function does not report any errors, check
- for them with char_buffer_error. */
-static inline void
-char_buffer_add (struct char_buffer *buffer, CHAR_T ch)
- __attribute__ ((always_inline));
-static inline void
-char_buffer_add (struct char_buffer *buffer, CHAR_T ch)
-{
- if (__glibc_unlikely (buffer->current == buffer->end))
- char_buffer_add_slow (buffer, ch);
- else
- *buffer->current++ = ch;
-}
-
-/* Read formatted input from S according to the format string
- FORMAT, using the argument list in ARG.
- Return the number of assignments made, or -1 for an input error. */
-#ifdef COMPILE_WSCANF
-int
-_IO_vfwscanf (FILE *s, const wchar_t *format, va_list argptr,
- int *errp)
-#else
-int
-_IO_vfscanf_internal (FILE *s, const char *format, va_list argptr,
- int *errp)
-#endif
-{
- va_list arg;
- const CHAR_T *f = format;
- UCHAR_T fc; /* Current character of the format. */
- WINT_T done = 0; /* Assignments done. */
- size_t read_in = 0; /* Chars read in. */
- WINT_T c = 0; /* Last char read. */
- int width; /* Maximum field width. */
- int flags; /* Modifiers for current format element. */
- int errval = 0;
-#ifndef COMPILE_WSCANF
- locale_t loc = _NL_CURRENT_LOCALE;
- struct __locale_data *const curctype = loc->__locales[LC_CTYPE];
-#endif
-
- /* Errno of last failed inchar call. */
- int inchar_errno = 0;
- /* Status for reading F-P nums. */
- char got_digit, got_dot, got_e, got_sign;
- /* If a [...] is a [^...]. */
- CHAR_T not_in;
-#define exp_char not_in
- /* Base for integral numbers. */
- int base;
- /* Decimal point character. */
-#ifdef COMPILE_WSCANF
- wint_t decimal;
-#else
- const char *decimal;
-#endif
- /* The thousands character of the current locale. */
-#ifdef COMPILE_WSCANF
- wint_t thousands;
-#else
- const char *thousands;
-#endif
- struct ptrs_to_free *ptrs_to_free = NULL;
- /* State for the conversions. */
- mbstate_t state;
- /* Integral holding variables. */
- union
- {
- long long int q;
- unsigned long long int uq;
- long int l;
- unsigned long int ul;
- } num;
- /* Character-buffer pointer. */
- char *str = NULL;
- wchar_t *wstr = NULL;
- char **strptr = NULL;
- ssize_t strsize = 0;
- /* We must not react on white spaces immediately because they can
- possibly be matched even if in the input stream no character is
- available anymore. */
- int skip_space = 0;
- /* Workspace. */
- CHAR_T *tw; /* Temporary pointer. */
- struct char_buffer charbuf;
- scratch_buffer_init (&charbuf.scratch);
-
-#ifdef __va_copy
- __va_copy (arg, argptr);
-#else
- arg = (va_list) argptr;
-#endif
-
-#ifdef ORIENT
- ORIENT;
-#endif
-
- ARGCHECK (s, format);
-
- {
-#ifndef COMPILE_WSCANF
- struct __locale_data *const curnumeric = loc->__locales[LC_NUMERIC];
-#endif
-
- /* Figure out the decimal point character. */
-#ifdef COMPILE_WSCANF
- decimal = _NL_CURRENT_WORD (LC_NUMERIC, _NL_NUMERIC_DECIMAL_POINT_WC);
-#else
- decimal = curnumeric->values[_NL_ITEM_INDEX (DECIMAL_POINT)].string;
-#endif
- /* Figure out the thousands separator character. */
-#ifdef COMPILE_WSCANF
- thousands = _NL_CURRENT_WORD (LC_NUMERIC, _NL_NUMERIC_THOUSANDS_SEP_WC);
-#else
- thousands = curnumeric->values[_NL_ITEM_INDEX (THOUSANDS_SEP)].string;
- if (*thousands == '\0')
- thousands = NULL;
-#endif
- }
-
- /* Lock the stream. */
- LOCK_STREAM (s);
-
-
-#ifndef COMPILE_WSCANF
- /* From now on we use `state' to convert the format string. */
- memset (&state, '\0', sizeof (state));
-#endif
-
- /* Run through the format string. */
- while (*f != '\0')
- {
- unsigned int argpos;
- /* Extract the next argument, which is of type TYPE.
- For a %N$... spec, this is the Nth argument from the beginning;
- otherwise it is the next argument after the state now in ARG. */
-#ifdef __va_copy
-# define ARG(type) (argpos == 0 ? va_arg (arg, type) : \
- ({ unsigned int pos = argpos; \
- va_list arg; \
- __va_copy (arg, argptr); \
- while (--pos > 0) \
- (void) va_arg (arg, void *); \
- va_arg (arg, type); \
- }))
-#else
-# if 0
- /* XXX Possible optimization. */
-# define ARG(type) (argpos == 0 ? va_arg (arg, type) : \
- ({ va_list arg = (va_list) argptr; \
- arg = (va_list) ((char *) arg \
- + (argpos - 1) \
- * __va_rounded_size (void *)); \
- va_arg (arg, type); \
- }))
-# else
-# define ARG(type) (argpos == 0 ? va_arg (arg, type) : \
- ({ unsigned int pos = argpos; \
- va_list arg = (va_list) argptr; \
- while (--pos > 0) \
- (void) va_arg (arg, void *); \
- va_arg (arg, type); \
- }))
-# endif
-#endif
-
-#ifndef COMPILE_WSCANF
- if (!isascii ((unsigned char) *f))
- {
- /* Non-ASCII, may be a multibyte. */
- int len = __mbrlen (f, strlen (f), &state);
- if (len > 0)
- {
- do
- {
- c = inchar ();
- if (__glibc_unlikely (c == EOF))
- input_error ();
- else if (c != (unsigned char) *f++)
- {
- ungetc_not_eof (c, s);
- conv_error ();
- }
- }
- while (--len > 0);
- continue;
- }
- }
-#endif
-
- fc = *f++;
- if (fc != '%')
- {
- /* Remember to skip spaces. */
- if (ISSPACE (fc))
- {
- skip_space = 1;
- continue;
- }
-
- /* Read a character. */
- c = inchar ();
-
- /* Characters other than format specs must just match. */
- if (__glibc_unlikely (c == EOF))
- input_error ();
-
- /* We saw white space char as the last character in the format
- string. Now it's time to skip all leading white space. */
- if (skip_space)
- {
- while (ISSPACE (c))
- if (__glibc_unlikely (inchar () == EOF))
- input_error ();
- skip_space = 0;
- }
-
- if (__glibc_unlikely (c != fc))
- {
- ungetc (c, s);
- conv_error ();
- }
-
- continue;
- }
-
- /* This is the start of the conversion string. */
- flags = 0;
-
- /* Initialize state of modifiers. */
- argpos = 0;
-
- /* Prepare temporary buffer. */
- char_buffer_rewind (&charbuf);
-
- /* Check for a positional parameter specification. */
- if (ISDIGIT ((UCHAR_T) *f))
- {
- argpos = read_int ((const UCHAR_T **) &f);
- if (*f == L_('$'))
- ++f;
- else
- {
- /* Oops; that was actually the field width. */
- width = argpos;
- argpos = 0;
- goto got_width;
- }
- }
-
- /* Check for the assignment-suppressing, the number grouping flag,
- and the signal to use the locale's digit representation. */
- while (*f == L_('*') || *f == L_('\'') || *f == L_('I'))
- switch (*f++)
- {
- case L_('*'):
- flags |= SUPPRESS;
- break;
- case L_('\''):
-#ifdef COMPILE_WSCANF
- if (thousands != L'\0')
-#else
- if (thousands != NULL)
-#endif
- flags |= GROUP;
- break;
- case L_('I'):
- flags |= I18N;
- break;
- }
-
- /* Find the maximum field width. */
- width = 0;
- if (ISDIGIT ((UCHAR_T) *f))
- width = read_int ((const UCHAR_T **) &f);
- got_width:
- if (width == 0)
- width = -1;
-
- /* Check for type modifiers. */
- switch (*f++)
- {
- case L_('h'):
- /* ints are short ints or chars. */
- if (*f == L_('h'))
- {
- ++f;
- flags |= CHAR;
- }
- else
- flags |= SHORT;
- break;
- case L_('l'):
- if (*f == L_('l'))
- {
- /* A double `l' is equivalent to an `L'. */
- ++f;
- flags |= LONGDBL | LONG;
- }
- else
- /* ints are long ints. */
- flags |= LONG;
- break;
- case L_('q'):
- case L_('L'):
- /* doubles are long doubles, and ints are long long ints. */
- flags |= LONGDBL | LONG;
- break;
- case L_('a'):
- /* The `a' is used as a flag only if followed by `s', `S' or
- `['. */
- if (*f != L_('s') && *f != L_('S') && *f != L_('['))
- {
- --f;
- break;
- }
- /* In __isoc99_*scanf %as, %aS and %a[ extension is not
- supported at all. */
- if (s->_flags2 & _IO_FLAGS2_SCANF_STD)
- {
- --f;
- break;
- }
- /* String conversions (%s, %[) take a `char **'
- arg and fill it in with a malloc'd pointer. */
- flags |= GNU_MALLOC;
- break;
- case L_('m'):
- flags |= POSIX_MALLOC;
- if (*f == L_('l'))
- {
- ++f;
- flags |= LONG;
- }
- break;
- case L_('z'):
- if (need_longlong && sizeof (size_t) > sizeof (unsigned long int))
- flags |= LONGDBL;
- else if (sizeof (size_t) > sizeof (unsigned int))
- flags |= LONG;
- break;
- case L_('j'):
- if (need_longlong && sizeof (uintmax_t) > sizeof (unsigned long int))
- flags |= LONGDBL;
- else if (sizeof (uintmax_t) > sizeof (unsigned int))
- flags |= LONG;
- break;
- case L_('t'):
- if (need_longlong && sizeof (ptrdiff_t) > sizeof (long int))
- flags |= LONGDBL;
- else if (sizeof (ptrdiff_t) > sizeof (int))
- flags |= LONG;
- break;
- default:
- /* Not a recognized modifier. Backup. */
- --f;
- break;
- }
-
- /* End of the format string? */
- if (__glibc_unlikely (*f == L_('\0')))
- conv_error ();
-
- /* Find the conversion specifier. */
- fc = *f++;
- if (skip_space || (fc != L_('[') && fc != L_('c')
- && fc != L_('C') && fc != L_('n')))
- {
- /* Eat whitespace. */
- int save_errno = errno;
- __set_errno (0);
- do
- /* We add the additional test for EOF here since otherwise
- inchar will restore the old errno value which might be
- EINTR but does not indicate an interrupt since nothing
- was read at this time. */
- if (__builtin_expect ((c == EOF || inchar () == EOF)
- && errno == EINTR, 0))
- input_error ();
- while (ISSPACE (c));
- __set_errno (save_errno);
- ungetc (c, s);
- skip_space = 0;
- }
-
- switch (fc)
- {
- case L_('%'): /* Must match a literal '%'. */
- c = inchar ();
- if (__glibc_unlikely (c == EOF))
- input_error ();
- if (__glibc_unlikely (c != fc))
- {
- ungetc_not_eof (c, s);
- conv_error ();
- }
- break;
-
- case L_('n'): /* Answer number of assignments done. */
- /* Corrigendum 1 to ISO C 1990 describes the allowed flags
- with the 'n' conversion specifier. */
- if (!(flags & SUPPRESS))
- {
- /* Don't count the read-ahead. */
- if (need_longlong && (flags & LONGDBL))
- *ARG (long long int *) = read_in;
- else if (need_long && (flags & LONG))
- *ARG (long int *) = read_in;
- else if (flags & SHORT)
- *ARG (short int *) = read_in;
- else if (!(flags & CHAR))
- *ARG (int *) = read_in;
- else
- *ARG (char *) = read_in;
-
-#ifdef NO_BUG_IN_ISO_C_CORRIGENDUM_1
- /* We have a severe problem here. The ISO C standard
- contradicts itself in explaining the effect of the %n
- format in `scanf'. While in ISO C:1990 and the ISO C
- Amendement 1:1995 the result is described as
-
- Execution of a %n directive does not effect the
- assignment count returned at the completion of
- execution of the f(w)scanf function.
-
- in ISO C Corrigendum 1:1994 the following was added:
-
- Subclause 7.9.6.2
- Add the following fourth example:
- In:
- #include <stdio.h>
- int d1, d2, n1, n2, i;
- i = sscanf("123", "%d%n%n%d", &d1, &n1, &n2, &d2);
- the value 123 is assigned to d1 and the value3 to n1.
- Because %n can never get an input failure the value
- of 3 is also assigned to n2. The value of d2 is not
- affected. The value 3 is assigned to i.
-
- We go for now with the historically correct code from ISO C,
- i.e., we don't count the %n assignments. When it ever
- should proof to be wrong just remove the #ifdef above. */
- ++done;
-#endif
- }
- break;
-
- case L_('c'): /* Match characters. */
- if ((flags & LONG) == 0)
- {
- if (width == -1)
- width = 1;
-
-#define STRING_ARG(Str, Type, Width) \
- do if (!(flags & SUPPRESS)) \
- { \
- if (flags & MALLOC) \
- { \
- /* The string is to be stored in a malloc'd buffer. */ \
- /* For %mS using char ** is actually wrong, but \
- shouldn't make a difference on any arch glibc \
- supports and would unnecessarily complicate \
- things. */ \
- strptr = ARG (char **); \
- if (strptr == NULL) \
- conv_error (); \
- /* Allocate an initial buffer. */ \
- strsize = Width; \
- *strptr = (char *) malloc (strsize * sizeof (Type)); \
- Str = (Type *) *strptr; \
- if (Str != NULL) \
- add_ptr_to_free (strptr); \
- else if (flags & POSIX_MALLOC) \
- { \
- done = EOF; \
- goto errout; \
- } \
- } \
- else \
- Str = ARG (Type *); \
- if (Str == NULL) \
- conv_error (); \
- } while (0)
-#ifdef COMPILE_WSCANF
- STRING_ARG (str, char, 100);
-#else
- STRING_ARG (str, char, (width > 1024 ? 1024 : width));
-#endif
-
- c = inchar ();
- if (__glibc_unlikely (c == EOF))
- input_error ();
-
-#ifdef COMPILE_WSCANF
- /* We have to convert the wide character(s) into multibyte
- characters and store the result. */
- memset (&state, '\0', sizeof (state));
-
- do
- {
- size_t n;
-
- if (!(flags & SUPPRESS) && (flags & POSIX_MALLOC)
- && *strptr + strsize - str <= MB_LEN_MAX)
- {
- /* We have to enlarge the buffer if the `m' flag
- was given. */
- size_t strleng = str - *strptr;
- char *newstr;
-
- newstr = (char *) realloc (*strptr, strsize * 2);
- if (newstr == NULL)
- {
- /* Can't allocate that much. Last-ditch effort. */
- newstr = (char *) realloc (*strptr,
- strleng + MB_LEN_MAX);
- if (newstr == NULL)
- {
- /* c can't have `a' flag, only `m'. */
- done = EOF;
- goto errout;
- }
- else
- {
- *strptr = newstr;
- str = newstr + strleng;
- strsize = strleng + MB_LEN_MAX;
- }
- }
- else
- {
- *strptr = newstr;
- str = newstr + strleng;
- strsize *= 2;
- }
- }
-
- n = __wcrtomb (!(flags & SUPPRESS) ? str : NULL, c, &state);
- if (__glibc_unlikely (n == (size_t) -1))
- /* No valid wide character. */
- input_error ();
-
- /* Increment the output pointer. Even if we don't
- write anything. */
- str += n;
- }
- while (--width > 0 && inchar () != EOF);
-#else
- if (!(flags & SUPPRESS))
- {
- do
- {
- if ((flags & MALLOC)
- && (char *) str == *strptr + strsize)
- {
- /* Enlarge the buffer. */
- size_t newsize
- = strsize
- + (strsize >= width ? width - 1 : strsize);
-
- str = (char *) realloc (*strptr, newsize);
- if (str == NULL)
- {
- /* Can't allocate that much. Last-ditch
- effort. */
- str = (char *) realloc (*strptr, strsize + 1);
- if (str == NULL)
- {
- /* c can't have `a' flag, only `m'. */
- done = EOF;
- goto errout;
- }
- else
- {
- *strptr = (char *) str;
- str += strsize;
- ++strsize;
- }
- }
- else
- {
- *strptr = (char *) str;
- str += strsize;
- strsize = newsize;
- }
- }
- *str++ = c;
- }
- while (--width > 0 && inchar () != EOF);
- }
- else
- while (--width > 0 && inchar () != EOF);
-#endif
-
- if (!(flags & SUPPRESS))
- {
- if ((flags & MALLOC) && str - *strptr != strsize)
- {
- char *cp = (char *) realloc (*strptr, str - *strptr);
- if (cp != NULL)
- *strptr = cp;
- }
- strptr = NULL;
- ++done;
- }
-
- break;
- }
- /* FALLTHROUGH */
- case L_('C'):
- if (width == -1)
- width = 1;
-
- STRING_ARG (wstr, wchar_t, (width > 1024 ? 1024 : width));
-
- c = inchar ();
- if (__glibc_unlikely (c == EOF))
- input_error ();
-
-#ifdef COMPILE_WSCANF
- /* Just store the incoming wide characters. */
- if (!(flags & SUPPRESS))
- {
- do
- {
- if ((flags & MALLOC)
- && wstr == (wchar_t *) *strptr + strsize)
- {
- size_t newsize
- = strsize + (strsize > width ? width - 1 : strsize);
- /* Enlarge the buffer. */
- wstr = (wchar_t *) realloc (*strptr,
- newsize * sizeof (wchar_t));
- if (wstr == NULL)
- {
- /* Can't allocate that much. Last-ditch effort. */
- wstr = (wchar_t *) realloc (*strptr,
- (strsize + 1)
- * sizeof (wchar_t));
- if (wstr == NULL)
- {
- /* C or lc can't have `a' flag, only `m'
- flag. */
- done = EOF;
- goto errout;
- }
- else
- {
- *strptr = (char *) wstr;
- wstr += strsize;
- ++strsize;
- }
- }
- else
- {
- *strptr = (char *) wstr;
- wstr += strsize;
- strsize = newsize;
- }
- }
- *wstr++ = c;
- }
- while (--width > 0 && inchar () != EOF);
- }
- else
- while (--width > 0 && inchar () != EOF);
-#else
- {
- /* We have to convert the multibyte input sequence to wide
- characters. */
- char buf[1];
- mbstate_t cstate;
-
- memset (&cstate, '\0', sizeof (cstate));
-
- do
- {
- /* This is what we present the mbrtowc function first. */
- buf[0] = c;
-
- if (!(flags & SUPPRESS) && (flags & MALLOC)
- && wstr == (wchar_t *) *strptr + strsize)
- {
- size_t newsize
- = strsize + (strsize > width ? width - 1 : strsize);
- /* Enlarge the buffer. */
- wstr = (wchar_t *) realloc (*strptr,
- newsize * sizeof (wchar_t));
- if (wstr == NULL)
- {
- /* Can't allocate that much. Last-ditch effort. */
- wstr = (wchar_t *) realloc (*strptr,
- ((strsize + 1)
- * sizeof (wchar_t)));
- if (wstr == NULL)
- {
- /* C or lc can't have `a' flag, only `m' flag. */
- done = EOF;
- goto errout;
- }
- else
- {
- *strptr = (char *) wstr;
- wstr += strsize;
- ++strsize;
- }
- }
- else
- {
- *strptr = (char *) wstr;
- wstr += strsize;
- strsize = newsize;
- }
- }
-
- while (1)
- {
- size_t n;
-
- n = __mbrtowc (!(flags & SUPPRESS) ? wstr : NULL,
- buf, 1, &cstate);
-
- if (n == (size_t) -2)
- {
- /* Possibly correct character, just not enough
- input. */
- if (__glibc_unlikely (inchar () == EOF))
- encode_error ();
-
- buf[0] = c;
- continue;
- }
-
- if (__glibc_unlikely (n != 1))
- encode_error ();
-
- /* We have a match. */
- break;
- }
-
- /* Advance the result pointer. */
- ++wstr;
- }
- while (--width > 0 && inchar () != EOF);
- }
-#endif
-
- if (!(flags & SUPPRESS))
- {
- if ((flags & MALLOC) && wstr - (wchar_t *) *strptr != strsize)
- {
- wchar_t *cp = (wchar_t *) realloc (*strptr,
- ((wstr
- - (wchar_t *) *strptr)
- * sizeof (wchar_t)));
- if (cp != NULL)
- *strptr = (char *) cp;
- }
- strptr = NULL;
-
- ++done;
- }
-
- break;
-
- case L_('s'): /* Read a string. */
- if (!(flags & LONG))
- {
- STRING_ARG (str, char, 100);
-
- c = inchar ();
- if (__glibc_unlikely (c == EOF))
- input_error ();
-
-#ifdef COMPILE_WSCANF
- memset (&state, '\0', sizeof (state));
-#endif
-
- do
- {
- if (ISSPACE (c))
- {
- ungetc_not_eof (c, s);
- break;
- }
-
-#ifdef COMPILE_WSCANF
- /* This is quite complicated. We have to convert the
- wide characters into multibyte characters and then
- store them. */
- {
- size_t n;
-
- if (!(flags & SUPPRESS) && (flags & MALLOC)
- && *strptr + strsize - str <= MB_LEN_MAX)
- {
- /* We have to enlarge the buffer if the `a' or `m'
- flag was given. */
- size_t strleng = str - *strptr;
- char *newstr;
-
- newstr = (char *) realloc (*strptr, strsize * 2);
- if (newstr == NULL)
- {
- /* Can't allocate that much. Last-ditch
- effort. */
- newstr = (char *) realloc (*strptr,
- strleng + MB_LEN_MAX);
- if (newstr == NULL)
- {
- if (flags & POSIX_MALLOC)
- {
- done = EOF;
- goto errout;
- }
- /* We lose. Oh well. Terminate the
- string and stop converting,
- so at least we don't skip any input. */
- ((char *) (*strptr))[strleng] = '\0';
- strptr = NULL;
- ++done;
- conv_error ();
- }
- else
- {
- *strptr = newstr;
- str = newstr + strleng;
- strsize = strleng + MB_LEN_MAX;
- }
- }
- else
- {
- *strptr = newstr;
- str = newstr + strleng;
- strsize *= 2;
- }
- }
-
- n = __wcrtomb (!(flags & SUPPRESS) ? str : NULL, c,
- &state);
- if (__glibc_unlikely (n == (size_t) -1))
- encode_error ();
-
- assert (n <= MB_LEN_MAX);
- str += n;
- }
-#else
- /* This is easy. */
- if (!(flags & SUPPRESS))
- {
- *str++ = c;
- if ((flags & MALLOC)
- && (char *) str == *strptr + strsize)
- {
- /* Enlarge the buffer. */
- str = (char *) realloc (*strptr, 2 * strsize);
- if (str == NULL)
- {
- /* Can't allocate that much. Last-ditch
- effort. */
- str = (char *) realloc (*strptr, strsize + 1);
- if (str == NULL)
- {
- if (flags & POSIX_MALLOC)
- {
- done = EOF;
- goto errout;
- }
- /* We lose. Oh well. Terminate the
- string and stop converting,
- so at least we don't skip any input. */
- ((char *) (*strptr))[strsize - 1] = '\0';
- strptr = NULL;
- ++done;
- conv_error ();
- }
- else
- {
- *strptr = (char *) str;
- str += strsize;
- ++strsize;
- }
- }
- else
- {
- *strptr = (char *) str;
- str += strsize;
- strsize *= 2;
- }
- }
- }
-#endif
- }
- while ((width <= 0 || --width > 0) && inchar () != EOF);
-
- if (!(flags & SUPPRESS))
- {
-#ifdef COMPILE_WSCANF
- /* We have to emit the code to get into the initial
- state. */
- char buf[MB_LEN_MAX];
- size_t n = __wcrtomb (buf, L'\0', &state);
- if (n > 0 && (flags & MALLOC)
- && str + n >= *strptr + strsize)
- {
- /* Enlarge the buffer. */
- size_t strleng = str - *strptr;
- char *newstr;
-
- newstr = (char *) realloc (*strptr, strleng + n + 1);
- if (newstr == NULL)
- {
- if (flags & POSIX_MALLOC)
- {
- done = EOF;
- goto errout;
- }
- /* We lose. Oh well. Terminate the string
- and stop converting, so at least we don't
- skip any input. */
- ((char *) (*strptr))[strleng] = '\0';
- strptr = NULL;
- ++done;
- conv_error ();
- }
- else
- {
- *strptr = newstr;
- str = newstr + strleng;
- strsize = strleng + n + 1;
- }
- }
-
- str = __mempcpy (str, buf, n);
-#endif
- *str++ = '\0';
-
- if ((flags & MALLOC) && str - *strptr != strsize)
- {
- char *cp = (char *) realloc (*strptr, str - *strptr);
- if (cp != NULL)
- *strptr = cp;
- }
- strptr = NULL;
-
- ++done;
- }
- break;
- }
- /* FALLTHROUGH */
-
- case L_('S'):
- {
-#ifndef COMPILE_WSCANF
- mbstate_t cstate;
-#endif
-
- /* Wide character string. */
- STRING_ARG (wstr, wchar_t, 100);
-
- c = inchar ();
- if (__builtin_expect (c == EOF, 0))
- input_error ();
-
-#ifndef COMPILE_WSCANF
- memset (&cstate, '\0', sizeof (cstate));
-#endif
-
- do
- {
- if (ISSPACE (c))
- {
- ungetc_not_eof (c, s);
- break;
- }
-
-#ifdef COMPILE_WSCANF
- /* This is easy. */
- if (!(flags & SUPPRESS))
- {
- *wstr++ = c;
- if ((flags & MALLOC)
- && wstr == (wchar_t *) *strptr + strsize)
- {
- /* Enlarge the buffer. */
- wstr = (wchar_t *) realloc (*strptr,
- (2 * strsize)
- * sizeof (wchar_t));
- if (wstr == NULL)
- {
- /* Can't allocate that much. Last-ditch
- effort. */
- wstr = (wchar_t *) realloc (*strptr,
- (strsize + 1)
- * sizeof (wchar_t));
- if (wstr == NULL)
- {
- if (flags & POSIX_MALLOC)
- {
- done = EOF;
- goto errout;
- }
- /* We lose. Oh well. Terminate the string
- and stop converting, so at least we don't
- skip any input. */
- ((wchar_t *) (*strptr))[strsize - 1] = L'\0';
- strptr = NULL;
- ++done;
- conv_error ();
- }
- else
- {
- *strptr = (char *) wstr;
- wstr += strsize;
- ++strsize;
- }
- }
- else
- {
- *strptr = (char *) wstr;
- wstr += strsize;
- strsize *= 2;
- }
- }
- }
-#else
- {
- char buf[1];
-
- buf[0] = c;
-
- while (1)
- {
- size_t n;
-
- n = __mbrtowc (!(flags & SUPPRESS) ? wstr : NULL,
- buf, 1, &cstate);
-
- if (n == (size_t) -2)
- {
- /* Possibly correct character, just not enough
- input. */
- if (__glibc_unlikely (inchar () == EOF))
- encode_error ();
-
- buf[0] = c;
- continue;
- }
-
- if (__glibc_unlikely (n != 1))
- encode_error ();
-
- /* We have a match. */
- ++wstr;
- break;
- }
-
- if (!(flags & SUPPRESS) && (flags & MALLOC)
- && wstr == (wchar_t *) *strptr + strsize)
- {
- /* Enlarge the buffer. */
- wstr = (wchar_t *) realloc (*strptr,
- (2 * strsize
- * sizeof (wchar_t)));
- if (wstr == NULL)
- {
- /* Can't allocate that much. Last-ditch effort. */
- wstr = (wchar_t *) realloc (*strptr,
- ((strsize + 1)
- * sizeof (wchar_t)));
- if (wstr == NULL)
- {
- if (flags & POSIX_MALLOC)
- {
- done = EOF;
- goto errout;
- }
- /* We lose. Oh well. Terminate the
- string and stop converting, so at
- least we don't skip any input. */
- ((wchar_t *) (*strptr))[strsize - 1] = L'\0';
- strptr = NULL;
- ++done;
- conv_error ();
- }
- else
- {
- *strptr = (char *) wstr;
- wstr += strsize;
- ++strsize;
- }
- }
- else
- {
- *strptr = (char *) wstr;
- wstr += strsize;
- strsize *= 2;
- }
- }
- }
-#endif
- }
- while ((width <= 0 || --width > 0) && inchar () != EOF);
-
- if (!(flags & SUPPRESS))
- {
- *wstr++ = L'\0';
-
- if ((flags & MALLOC) && wstr - (wchar_t *) *strptr != strsize)
- {
- wchar_t *cp = (wchar_t *) realloc (*strptr,
- ((wstr
- - (wchar_t *) *strptr)
- * sizeof(wchar_t)));
- if (cp != NULL)
- *strptr = (char *) cp;
- }
- strptr = NULL;
-
- ++done;
- }
- }
- break;
-
- case L_('x'): /* Hexadecimal integer. */
- case L_('X'): /* Ditto. */
- base = 16;
- goto number;
-
- case L_('o'): /* Octal integer. */
- base = 8;
- goto number;
-
- case L_('u'): /* Unsigned decimal integer. */
- base = 10;
- goto number;
-
- case L_('d'): /* Signed decimal integer. */
- base = 10;
- flags |= NUMBER_SIGNED;
- goto number;
-
- case L_('i'): /* Generic number. */
- base = 0;
- flags |= NUMBER_SIGNED;
-
- number:
- c = inchar ();
- if (__glibc_unlikely (c == EOF))
- input_error ();
-
- /* Check for a sign. */
- if (c == L_('-') || c == L_('+'))
- {
- char_buffer_add (&charbuf, c);
- if (width > 0)
- --width;
- c = inchar ();
- }
-
- /* Look for a leading indication of base. */
- if (width != 0 && c == L_('0'))
- {
- if (width > 0)
- --width;
-
- char_buffer_add (&charbuf, c);
- c = inchar ();
-
- if (width != 0 && TOLOWER (c) == L_('x'))
- {
- if (base == 0)
- base = 16;
- if (base == 16)
- {
- if (width > 0)
- --width;
- c = inchar ();
- }
- }
- else if (base == 0)
- base = 8;
- }
-
- if (base == 0)
- base = 10;
-
- if (base == 10 && __builtin_expect ((flags & I18N) != 0, 0))
- {
- int from_level;
- int to_level;
- int level;
-#ifdef COMPILE_WSCANF
- const wchar_t *wcdigits[10];
- const wchar_t *wcdigits_extended[10];
-#else
- const char *mbdigits[10];
- const char *mbdigits_extended[10];
-#endif
- /* "to_inpunct" is a map from ASCII digits to their
- equivalent in locale. This is defined for locales
- which use an extra digits set. */
- wctrans_t map = __wctrans ("to_inpunct");
- int n;
-
- from_level = 0;
-#ifdef COMPILE_WSCANF
- to_level = _NL_CURRENT_WORD (LC_CTYPE,
- _NL_CTYPE_INDIGITS_WC_LEN) - 1;
-#else
- to_level = (uint32_t) curctype->values[_NL_ITEM_INDEX (_NL_CTYPE_INDIGITS_MB_LEN)].word - 1;
-#endif
-
- /* Get the alternative digit forms if there are any. */
- if (__glibc_unlikely (map != NULL))
- {
- /* Adding new level for extra digits set in locale file. */
- ++to_level;
-
- for (n = 0; n < 10; ++n)
- {
-#ifdef COMPILE_WSCANF
- wcdigits[n] = (const wchar_t *)
- _NL_CURRENT (LC_CTYPE, _NL_CTYPE_INDIGITS0_WC + n);
-
- wchar_t *wc_extended = (wchar_t *)
- alloca ((to_level + 2) * sizeof (wchar_t));
- __wmemcpy (wc_extended, wcdigits[n], to_level);
- wc_extended[to_level] = __towctrans (L'0' + n, map);
- wc_extended[to_level + 1] = '\0';
- wcdigits_extended[n] = wc_extended;
-#else
- mbdigits[n]
- = curctype->values[_NL_CTYPE_INDIGITS0_MB + n].string;
-
- /* Get the equivalent wide char in map. */
- wint_t extra_wcdigit = __towctrans (L'0' + n, map);
-
- /* Convert it to multibyte representation. */
- mbstate_t state;
- memset (&state, '\0', sizeof (state));
-
- char extra_mbdigit[MB_LEN_MAX];
- size_t mblen
- = __wcrtomb (extra_mbdigit, extra_wcdigit, &state);
-
- if (mblen == (size_t) -1)
- {
- /* Ignore this new level. */
- map = NULL;
- break;
- }
-
- /* Calculate the length of mbdigits[n]. */
- const char *last_char = mbdigits[n];
- for (level = 0; level < to_level; ++level)
- last_char = strchr (last_char, '\0') + 1;
-
- size_t mbdigits_len = last_char - mbdigits[n];
-
- /* Allocate memory for extended multibyte digit. */
- char *mb_extended;
- mb_extended = (char *) alloca (mbdigits_len + mblen + 1);
-
- /* And get the mbdigits + extra_digit string. */
- *(char *) __mempcpy (__mempcpy (mb_extended, mbdigits[n],
- mbdigits_len),
- extra_mbdigit, mblen) = '\0';
- mbdigits_extended[n] = mb_extended;
-#endif
- }
- }
-
- /* Read the number into workspace. */
- while (c != EOF && width != 0)
- {
- /* In this round we get the pointer to the digit strings
- and also perform the first round of comparisons. */
- for (n = 0; n < 10; ++n)
- {
- /* Get the string for the digits with value N. */
-#ifdef COMPILE_WSCANF
-
- /* wcdigits_extended[] is fully set in the loop
- above, but the test for "map != NULL" is done
- inside the loop here and outside the loop there. */
- DIAG_PUSH_NEEDS_COMMENT;
- DIAG_IGNORE_NEEDS_COMMENT (4.7, "-Wmaybe-uninitialized");
-
- if (__glibc_unlikely (map != NULL))
- wcdigits[n] = wcdigits_extended[n];
- else
- wcdigits[n] = (const wchar_t *)
- _NL_CURRENT (LC_CTYPE, _NL_CTYPE_INDIGITS0_WC + n);
- wcdigits[n] += from_level;
-
- DIAG_POP_NEEDS_COMMENT;
-
- if (c == (wint_t) *wcdigits[n])
- {
- to_level = from_level;
- break;
- }
-
- /* Advance the pointer to the next string. */
- ++wcdigits[n];
-#else
- const char *cmpp;
- int avail = width > 0 ? width : INT_MAX;
-
- if (__glibc_unlikely (map != NULL))
- mbdigits[n] = mbdigits_extended[n];
- else
- mbdigits[n]
- = curctype->values[_NL_CTYPE_INDIGITS0_MB + n].string;
-
- for (level = 0; level < from_level; level++)
- mbdigits[n] = strchr (mbdigits[n], '\0') + 1;
-
- cmpp = mbdigits[n];
- while ((unsigned char) *cmpp == c && avail >= 0)
- {
- if (*++cmpp == '\0')
- break;
- else
- {
- if (avail == 0 || inchar () == EOF)
- break;
- --avail;
- }
- }
-
- if (*cmpp == '\0')
- {
- if (width > 0)
- width = avail;
- to_level = from_level;
- break;
- }
-
- /* We are pushing all read characters back. */
- if (cmpp > mbdigits[n])
- {
- ungetc (c, s);
- while (--cmpp > mbdigits[n])
- ungetc_not_eof ((unsigned char) *cmpp, s);
- c = (unsigned char) *cmpp;
- }
-
- /* Advance the pointer to the next string. */
- mbdigits[n] = strchr (mbdigits[n], '\0') + 1;
-#endif
- }
-
- if (n == 10)
- {
- /* Have not yet found the digit. */
- for (level = from_level + 1; level <= to_level; ++level)
- {
- /* Search all ten digits of this level. */
- for (n = 0; n < 10; ++n)
- {
-#ifdef COMPILE_WSCANF
- if (c == (wint_t) *wcdigits[n])
- break;
-
- /* Advance the pointer to the next string. */
- ++wcdigits[n];
-#else
- const char *cmpp;
- int avail = width > 0 ? width : INT_MAX;
-
- cmpp = mbdigits[n];
- while ((unsigned char) *cmpp == c && avail >= 0)
- {
- if (*++cmpp == '\0')
- break;
- else
- {
- if (avail == 0 || inchar () == EOF)
- break;
- --avail;
- }
- }
-
- if (*cmpp == '\0')
- {
- if (width > 0)
- width = avail;
- break;
- }
-
- /* We are pushing all read characters back. */
- if (cmpp > mbdigits[n])
- {
- ungetc (c, s);
- while (--cmpp > mbdigits[n])
- ungetc_not_eof ((unsigned char) *cmpp, s);
- c = (unsigned char) *cmpp;
- }
-
- /* Advance the pointer to the next string. */
- mbdigits[n] = strchr (mbdigits[n], '\0') + 1;
-#endif
- }
-
- if (n < 10)
- {
- /* Found it. */
- from_level = level;
- to_level = level;
- break;
- }
- }
- }
-
- if (n < 10)
- c = L_('0') + n;
- else if (flags & GROUP)
- {
- /* Try matching against the thousands separator. */
-#ifdef COMPILE_WSCANF
- if (c != thousands)
- break;
-#else
- const char *cmpp = thousands;
- int avail = width > 0 ? width : INT_MAX;
-
- while ((unsigned char) *cmpp == c && avail >= 0)
- {
- char_buffer_add (&charbuf, c);
- if (*++cmpp == '\0')
- break;
- else
- {
- if (avail == 0 || inchar () == EOF)
- break;
- --avail;
- }
- }
-
- if (char_buffer_error (&charbuf))
- {
- __set_errno (ENOMEM);
- done = EOF;
- goto errout;
- }
-
- if (*cmpp != '\0')
- {
- /* We are pushing all read characters back. */
- if (cmpp > thousands)
- {
- charbuf.current -= cmpp - thousands;
- ungetc (c, s);
- while (--cmpp > thousands)
- ungetc_not_eof ((unsigned char) *cmpp, s);
- c = (unsigned char) *cmpp;
- }
- break;
- }
-
- if (width > 0)
- width = avail;
-
- /* The last thousands character will be added back by
- the char_buffer_add below. */
- --charbuf.current;
-#endif
- }
- else
- break;
-
- char_buffer_add (&charbuf, c);
- if (width > 0)
- --width;
-
- c = inchar ();
- }
- }
- else
- /* Read the number into workspace. */
- while (c != EOF && width != 0)
- {
- if (base == 16)
- {
- if (!ISXDIGIT (c))
- break;
- }
- else if (!ISDIGIT (c) || (int) (c - L_('0')) >= base)
- {
- if (base == 10 && (flags & GROUP))
- {
- /* Try matching against the thousands separator. */
-#ifdef COMPILE_WSCANF
- if (c != thousands)
- break;
-#else
- const char *cmpp = thousands;
- int avail = width > 0 ? width : INT_MAX;
-
- while ((unsigned char) *cmpp == c && avail >= 0)
- {
- char_buffer_add (&charbuf, c);
- if (*++cmpp == '\0')
- break;
- else
- {
- if (avail == 0 || inchar () == EOF)
- break;
- --avail;
- }
- }
-
- if (char_buffer_error (&charbuf))
- {
- __set_errno (ENOMEM);
- done = EOF;
- goto errout;
- }
-
- if (*cmpp != '\0')
- {
- /* We are pushing all read characters back. */
- if (cmpp > thousands)
- {
- charbuf.current -= cmpp - thousands;
- ungetc (c, s);
- while (--cmpp > thousands)
- ungetc_not_eof ((unsigned char) *cmpp, s);
- c = (unsigned char) *cmpp;
- }
- break;
- }
-
- if (width > 0)
- width = avail;
-
- /* The last thousands character will be added back by
- the char_buffer_add below. */
- --charbuf.current;
-#endif
- }
- else
- break;
- }
- char_buffer_add (&charbuf, c);
- if (width > 0)
- --width;
-
- c = inchar ();
- }
-
- if (char_buffer_error (&charbuf))
- {
- __set_errno (ENOMEM);
- done = EOF;
- goto errout;
- }
-
- if (char_buffer_size (&charbuf) == 0
- || (char_buffer_size (&charbuf) == 1
- && (char_buffer_start (&charbuf)[0] == L_('+')
- || char_buffer_start (&charbuf)[0] == L_('-'))))
- {
- /* There was no number. If we are supposed to read a pointer
- we must recognize "(nil)" as well. */
- if (__builtin_expect (char_buffer_size (&charbuf) == 0
- && (flags & READ_POINTER)
- && (width < 0 || width >= 5)
- && c == '('
- && TOLOWER (inchar ()) == L_('n')
- && TOLOWER (inchar ()) == L_('i')
- && TOLOWER (inchar ()) == L_('l')
- && inchar () == L_(')'), 1))
- /* We must produce the value of a NULL pointer. A single
- '0' digit is enough. */
- char_buffer_add (&charbuf, L_('0'));
- else
- {
- /* The last read character is not part of the number
- anymore. */
- ungetc (c, s);
-
- conv_error ();
- }
- }
- else
- /* The just read character is not part of the number anymore. */
- ungetc (c, s);
-
- /* Convert the number. */
- char_buffer_add (&charbuf, L_('\0'));
- if (char_buffer_error (&charbuf))
- {
- __set_errno (ENOMEM);
- done = EOF;
- goto errout;
- }
- if (need_longlong && (flags & LONGDBL))
- {
- if (flags & NUMBER_SIGNED)
- num.q = __strtoll_internal
- (char_buffer_start (&charbuf), &tw, base, flags & GROUP);
- else
- num.uq = __strtoull_internal
- (char_buffer_start (&charbuf), &tw, base, flags & GROUP);
- }
- else
- {
- if (flags & NUMBER_SIGNED)
- num.l = __strtol_internal
- (char_buffer_start (&charbuf), &tw, base, flags & GROUP);
- else
- num.ul = __strtoul_internal
- (char_buffer_start (&charbuf), &tw, base, flags & GROUP);
- }
- if (__glibc_unlikely (char_buffer_start (&charbuf) == tw))
- conv_error ();
-
- if (!(flags & SUPPRESS))
- {
- if (flags & NUMBER_SIGNED)
- {
- if (need_longlong && (flags & LONGDBL))
- *ARG (LONGLONG int *) = num.q;
- else if (need_long && (flags & LONG))
- *ARG (long int *) = num.l;
- else if (flags & SHORT)
- *ARG (short int *) = (short int) num.l;
- else if (!(flags & CHAR))
- *ARG (int *) = (int) num.l;
- else
- *ARG (signed char *) = (signed char) num.ul;
- }
- else
- {
- if (need_longlong && (flags & LONGDBL))
- *ARG (unsigned LONGLONG int *) = num.uq;
- else if (need_long && (flags & LONG))
- *ARG (unsigned long int *) = num.ul;
- else if (flags & SHORT)
- *ARG (unsigned short int *)
- = (unsigned short int) num.ul;
- else if (!(flags & CHAR))
- *ARG (unsigned int *) = (unsigned int) num.ul;
- else
- *ARG (unsigned char *) = (unsigned char) num.ul;
- }
- ++done;
- }
- break;
-
- case L_('e'): /* Floating-point numbers. */
- case L_('E'):
- case L_('f'):
- case L_('F'):
- case L_('g'):
- case L_('G'):
- case L_('a'):
- case L_('A'):
- c = inchar ();
- if (width > 0)
- --width;
- if (__glibc_unlikely (c == EOF))
- input_error ();
-
- got_digit = got_dot = got_e = got_sign = 0;
-
- /* Check for a sign. */
- if (c == L_('-') || c == L_('+'))
- {
- got_sign = 1;
- char_buffer_add (&charbuf, c);
- if (__glibc_unlikely (width == 0 || inchar () == EOF))
- /* EOF is only an input error before we read any chars. */
- conv_error ();
- if (width > 0)
- --width;
- }
-
- /* Take care for the special arguments "nan" and "inf". */
- if (TOLOWER (c) == L_('n'))
- {
- /* Maybe "nan". */
- char_buffer_add (&charbuf, c);
- if (__builtin_expect (width == 0
- || inchar () == EOF
- || TOLOWER (c) != L_('a'), 0))
- conv_error ();
- if (width > 0)
- --width;
- char_buffer_add (&charbuf, c);
- if (__builtin_expect (width == 0
- || inchar () == EOF
- || TOLOWER (c) != L_('n'), 0))
- conv_error ();
- if (width > 0)
- --width;
- char_buffer_add (&charbuf, c);
- /* It is "nan". */
- goto scan_float;
- }
- else if (TOLOWER (c) == L_('i'))
- {
- /* Maybe "inf" or "infinity". */
- char_buffer_add (&charbuf, c);
- if (__builtin_expect (width == 0
- || inchar () == EOF
- || TOLOWER (c) != L_('n'), 0))
- conv_error ();
- if (width > 0)
- --width;
- char_buffer_add (&charbuf, c);
- if (__builtin_expect (width == 0
- || inchar () == EOF
- || TOLOWER (c) != L_('f'), 0))
- conv_error ();
- if (width > 0)
- --width;
- char_buffer_add (&charbuf, c);
- /* It is as least "inf". */
- if (width != 0 && inchar () != EOF)
- {
- if (TOLOWER (c) == L_('i'))
- {
- if (width > 0)
- --width;
- /* Now we have to read the rest as well. */
- char_buffer_add (&charbuf, c);
- if (__builtin_expect (width == 0
- || inchar () == EOF
- || TOLOWER (c) != L_('n'), 0))
- conv_error ();
- if (width > 0)
- --width;
- char_buffer_add (&charbuf, c);
- if (__builtin_expect (width == 0
- || inchar () == EOF
- || TOLOWER (c) != L_('i'), 0))
- conv_error ();
- if (width > 0)
- --width;
- char_buffer_add (&charbuf, c);
- if (__builtin_expect (width == 0
- || inchar () == EOF
- || TOLOWER (c) != L_('t'), 0))
- conv_error ();
- if (width > 0)
- --width;
- char_buffer_add (&charbuf, c);
- if (__builtin_expect (width == 0
- || inchar () == EOF
- || TOLOWER (c) != L_('y'), 0))
- conv_error ();
- if (width > 0)
- --width;
- char_buffer_add (&charbuf, c);
- }
- else
- /* Never mind. */
- ungetc (c, s);
- }
- goto scan_float;
- }
-
- exp_char = L_('e');
- if (width != 0 && c == L_('0'))
- {
- char_buffer_add (&charbuf, c);
- c = inchar ();
- if (width > 0)
- --width;
- if (width != 0 && TOLOWER (c) == L_('x'))
- {
- /* It is a number in hexadecimal format. */
- char_buffer_add (&charbuf, c);
-
- flags |= HEXA_FLOAT;
- exp_char = L_('p');
-
- /* Grouping is not allowed. */
- flags &= ~GROUP;
- c = inchar ();
- if (width > 0)
- --width;
- }
- else
- got_digit = 1;
- }
-
- while (1)
- {
- if (char_buffer_error (&charbuf))
- {
- __set_errno (ENOMEM);
- done = EOF;
- goto errout;
- }
- if (ISDIGIT (c))
- {
- char_buffer_add (&charbuf, c);
- got_digit = 1;
- }
- else if (!got_e && (flags & HEXA_FLOAT) && ISXDIGIT (c))
- {
- char_buffer_add (&charbuf, c);
- got_digit = 1;
- }
- else if (got_e && charbuf.current[-1] == exp_char
- && (c == L_('-') || c == L_('+')))
- char_buffer_add (&charbuf, c);
- else if (got_digit && !got_e
- && (CHAR_T) TOLOWER (c) == exp_char)
- {
- char_buffer_add (&charbuf, exp_char);
- got_e = got_dot = 1;
- }
- else
- {
-#ifdef COMPILE_WSCANF
- if (! got_dot && c == decimal)
- {
- char_buffer_add (&charbuf, c);
- got_dot = 1;
- }
- else if ((flags & GROUP) != 0 && ! got_dot && c == thousands)
- char_buffer_add (&charbuf, c);
- else
- {
- /* The last read character is not part of the number
- anymore. */
- ungetc (c, s);
- break;
- }
-#else
- const char *cmpp = decimal;
- int avail = width > 0 ? width : INT_MAX;
-
- if (! got_dot)
- {
- while ((unsigned char) *cmpp == c && avail >= 0)
- if (*++cmpp == '\0')
- break;
- else
- {
- if (avail == 0 || inchar () == EOF)
- break;
- --avail;
- }
- }
-
- if (*cmpp == '\0')
- {
- /* Add all the characters. */
- for (cmpp = decimal; *cmpp != '\0'; ++cmpp)
- char_buffer_add (&charbuf, (unsigned char) *cmpp);
- if (width > 0)
- width = avail;
- got_dot = 1;
- }
- else
- {
- /* Figure out whether it is a thousands separator.
- There is one problem: we possibly read more than
- one character. We cannot push them back but since
- we know that parts of the `decimal' string matched,
- we can compare against it. */
- const char *cmp2p = thousands;
-
- if ((flags & GROUP) != 0 && ! got_dot)
- {
- while (cmp2p - thousands < cmpp - decimal
- && *cmp2p == decimal[cmp2p - thousands])
- ++cmp2p;
- if (cmp2p - thousands == cmpp - decimal)
- {
- while ((unsigned char) *cmp2p == c && avail >= 0)
- if (*++cmp2p == '\0')
- break;
- else
- {
- if (avail == 0 || inchar () == EOF)
- break;
- --avail;
- }
- }
- }
-
- if (cmp2p != NULL && *cmp2p == '\0')
- {
- /* Add all the characters. */
- for (cmpp = thousands; *cmpp != '\0'; ++cmpp)
- char_buffer_add (&charbuf, (unsigned char) *cmpp);
- if (width > 0)
- width = avail;
- }
- else
- {
- /* The last read character is not part of the number
- anymore. */
- ungetc (c, s);
- break;
- }
- }
-#endif
- }
-
- if (width == 0 || inchar () == EOF)
- break;
-
- if (width > 0)
- --width;
- }
-
- if (char_buffer_error (&charbuf))
- {
- __set_errno (ENOMEM);
- done = EOF;
- goto errout;
- }
-
- wctrans_t map;
- if (__builtin_expect ((flags & I18N) != 0, 0)
- /* Hexadecimal floats make no sense, fixing localized
- digits with ASCII letters. */
- && !(flags & HEXA_FLOAT)
- /* Minimum requirement. */
- && (char_buffer_size (&charbuf) == got_sign || got_dot)
- && (map = __wctrans ("to_inpunct")) != NULL)
- {
- /* Reget the first character. */
- inchar ();
-
- /* Localized digits, decimal points, and thousands
- separator. */
- wint_t wcdigits[12];
-
- /* First get decimal equivalent to check if we read it
- or not. */
- wcdigits[11] = __towctrans (L'.', map);
-
- /* If we have not read any character or have just read
- locale decimal point which matches the decimal point
- for localized FP numbers, then we may have localized
- digits. Note, we test GOT_DOT above. */
-#ifdef COMPILE_WSCANF
- if (char_buffer_size (&charbuf) == got_sign
- || (char_buffer_size (&charbuf) == got_sign + 1
- && wcdigits[11] == decimal))
-#else
- char mbdigits[12][MB_LEN_MAX + 1];
-
- mbstate_t state;
- memset (&state, '\0', sizeof (state));
-
- bool match_so_far = char_buffer_size (&charbuf) == got_sign;
- size_t mblen = __wcrtomb (mbdigits[11], wcdigits[11], &state);
- if (mblen != (size_t) -1)
- {
- mbdigits[11][mblen] = '\0';
- match_so_far |=
- (char_buffer_size (&charbuf) == strlen (decimal) + got_sign
- && strcmp (decimal, mbdigits[11]) == 0);
- }
- else
- {
- size_t decimal_len = strlen (decimal);
- /* This should always be the case but the data comes
- from a file. */
- if (decimal_len <= MB_LEN_MAX)
- {
- match_so_far |= (char_buffer_size (&charbuf)
- == decimal_len + got_sign);
- memcpy (mbdigits[11], decimal, decimal_len + 1);
- }
- else
- match_so_far = false;
- }
-
- if (match_so_far)
-#endif
- {
- bool have_locthousands = (flags & GROUP) != 0;
-
- /* Now get the digits and the thousands-sep equivalents. */
- for (int n = 0; n < 11; ++n)
- {
- if (n < 10)
- wcdigits[n] = __towctrans (L'0' + n, map);
- else if (n == 10)
- {
- wcdigits[10] = __towctrans (L',', map);
- have_locthousands &= wcdigits[10] != L'\0';
- }
-
-#ifndef COMPILE_WSCANF
- memset (&state, '\0', sizeof (state));
-
- size_t mblen = __wcrtomb (mbdigits[n], wcdigits[n],
- &state);
- if (mblen == (size_t) -1)
- {
- if (n == 10)
- {
- if (have_locthousands)
- {
- size_t thousands_len = strlen (thousands);
- if (thousands_len <= MB_LEN_MAX)
- memcpy (mbdigits[10], thousands,
- thousands_len + 1);
- else
- have_locthousands = false;
- }
- }
- else
- /* Ignore checking against localized digits. */
- goto no_i18nflt;
- }
- else
- mbdigits[n][mblen] = '\0';
-#endif
- }
-
- /* Start checking against localized digits, if
- conversion is done correctly. */
- while (1)
- {
- if (char_buffer_error (&charbuf))
- {
- __set_errno (ENOMEM);
- done = EOF;
- goto errout;
- }
- if (got_e && charbuf.current[-1] == exp_char
- && (c == L_('-') || c == L_('+')))
- char_buffer_add (&charbuf, c);
- else if (char_buffer_size (&charbuf) > got_sign && !got_e
- && (CHAR_T) TOLOWER (c) == exp_char)
- {
- char_buffer_add (&charbuf, exp_char);
- got_e = got_dot = 1;
- }
- else
- {
- /* Check against localized digits, decimal point,
- and thousands separator. */
- int n;
- for (n = 0; n < 12; ++n)
- {
-#ifdef COMPILE_WSCANF
- if (c == wcdigits[n])
- {
- if (n < 10)
- char_buffer_add (&charbuf, L_('0') + n);
- else if (n == 11 && !got_dot)
- {
- char_buffer_add (&charbuf, decimal);
- got_dot = 1;
- }
- else if (n == 10 && have_locthousands
- && ! got_dot)
- char_buffer_add (&charbuf, thousands);
- else
- /* The last read character is not part
- of the number anymore. */
- n = 12;
-
- break;
- }
-#else
- const char *cmpp = mbdigits[n];
- int avail = width > 0 ? width : INT_MAX;
-
- while ((unsigned char) *cmpp == c && avail >= 0)
- if (*++cmpp == '\0')
- break;
- else
- {
- if (avail == 0 || inchar () == EOF)
- break;
- --avail;
- }
- if (*cmpp == '\0')
- {
- if (width > 0)
- width = avail;
-
- if (n < 10)
- char_buffer_add (&charbuf, L_('0') + n);
- else if (n == 11 && !got_dot)
- {
- /* Add all the characters. */
- for (cmpp = decimal; *cmpp != '\0';
- ++cmpp)
- char_buffer_add (&charbuf,
- (unsigned char) *cmpp);
-
- got_dot = 1;
- }
- else if (n == 10 && (flags & GROUP) != 0
- && ! got_dot)
- {
- /* Add all the characters. */
- for (cmpp = thousands; *cmpp != '\0';
- ++cmpp)
- char_buffer_add (&charbuf,
- (unsigned char) *cmpp);
- }
- else
- /* The last read character is not part
- of the number anymore. */
- n = 12;
-
- break;
- }
-
- /* We are pushing all read characters back. */
- if (cmpp > mbdigits[n])
- {
- ungetc (c, s);
- while (--cmpp > mbdigits[n])
- ungetc_not_eof ((unsigned char) *cmpp, s);
- c = (unsigned char) *cmpp;
- }
-#endif
- }
-
- if (n >= 12)
- {
- /* The last read character is not part
- of the number anymore. */
- ungetc (c, s);
- break;
- }
- }
-
- if (width == 0 || inchar () == EOF)
- break;
-
- if (width > 0)
- --width;
- }
- }
-
-#ifndef COMPILE_WSCANF
- no_i18nflt:
- ;
-#endif
- }
-
- if (char_buffer_error (&charbuf))
- {
- __set_errno (ENOMEM);
- done = EOF;
- goto errout;
- }
-
- /* Have we read any character? If we try to read a number
- in hexadecimal notation and we have read only the `0x'
- prefix this is an error. */
- if (__glibc_unlikely (char_buffer_size (&charbuf) == got_sign
- || ((flags & HEXA_FLOAT)
- && (char_buffer_size (&charbuf)
- == 2 + got_sign))))
- conv_error ();
-
- scan_float:
- /* Convert the number. */
- char_buffer_add (&charbuf, L_('\0'));
- if (char_buffer_error (&charbuf))
- {
- __set_errno (ENOMEM);
- done = EOF;
- goto errout;
- }
- if ((flags & LONGDBL) && !__ldbl_is_dbl)
- {
- long double d = __strtold_internal
- (char_buffer_start (&charbuf), &tw, flags & GROUP);
- if (!(flags & SUPPRESS) && tw != char_buffer_start (&charbuf))
- *ARG (long double *) = d;
- }
- else if (flags & (LONG | LONGDBL))
- {
- double d = __strtod_internal
- (char_buffer_start (&charbuf), &tw, flags & GROUP);
- if (!(flags & SUPPRESS) && tw != char_buffer_start (&charbuf))
- *ARG (double *) = d;
- }
- else
- {
- float d = __strtof_internal
- (char_buffer_start (&charbuf), &tw, flags & GROUP);
- if (!(flags & SUPPRESS) && tw != char_buffer_start (&charbuf))
- *ARG (float *) = d;
- }
-
- if (__glibc_unlikely (tw == char_buffer_start (&charbuf)))
- conv_error ();
-
- if (!(flags & SUPPRESS))
- ++done;
- break;
-
- case L_('['): /* Character class. */
- if (flags & LONG)
- STRING_ARG (wstr, wchar_t, 100);
- else
- STRING_ARG (str, char, 100);
-
- if (*f == L_('^'))
- {
- ++f;
- not_in = 1;
- }
- else
- not_in = 0;
-
- if (width < 0)
- /* There is no width given so there is also no limit on the
- number of characters we read. Therefore we set width to
- a very high value to make the algorithm easier. */
- width = INT_MAX;
-
-#ifdef COMPILE_WSCANF
- /* Find the beginning and the end of the scanlist. We are not
- creating a lookup table since it would have to be too large.
- Instead we search each time through the string. This is not
- a constant lookup time but who uses this feature deserves to
- be punished. */
- tw = (wchar_t *) f; /* Marks the beginning. */
-
- if (*f == L']')
- ++f;
-
- while ((fc = *f++) != L'\0' && fc != L']');
-
- if (__glibc_unlikely (fc == L'\0'))
- conv_error ();
- wchar_t *twend = (wchar_t *) f - 1;
-#else
- /* Fill WP with byte flags indexed by character.
- We will use this flag map for matching input characters. */
- if (!scratch_buffer_set_array_size
- (&charbuf.scratch, UCHAR_MAX + 1, 1))
- {
- done = EOF;
- goto errout;
- }
- memset (charbuf.scratch.data, '\0', UCHAR_MAX + 1);
-
- fc = *f;
- if (fc == ']' || fc == '-')
- {
- /* If ] or - appears before any char in the set, it is not
- the terminator or separator, but the first char in the
- set. */
- ((char *)charbuf.scratch.data)[fc] = 1;
- ++f;
- }
-
- while ((fc = *f++) != '\0' && fc != ']')
- if (fc == '-' && *f != '\0' && *f != ']'
- && (unsigned char) f[-2] <= (unsigned char) *f)
- {
- /* Add all characters from the one before the '-'
- up to (but not including) the next format char. */
- for (fc = (unsigned char) f[-2]; fc < (unsigned char) *f; ++fc)
- ((char *)charbuf.scratch.data)[fc] = 1;
- }
- else
- /* Add the character to the flag map. */
- ((char *)charbuf.scratch.data)[fc] = 1;
-
- if (__glibc_unlikely (fc == '\0'))
- conv_error();
-#endif
-
- if (flags & LONG)
- {
- size_t now = read_in;
-#ifdef COMPILE_WSCANF
- if (__glibc_unlikely (inchar () == WEOF))
- input_error ();
-
- do
- {
- wchar_t *runp;
-
- /* Test whether it's in the scanlist. */
- runp = tw;
- while (runp < twend)
- {
- if (runp[0] == L'-' && runp[1] != '\0'
- && runp + 1 != twend
- && runp != tw
- && (unsigned int) runp[-1] <= (unsigned int) runp[1])
- {
- /* Match against all characters in between the
- first and last character of the sequence. */
- wchar_t wc;
-
- for (wc = runp[-1] + 1; wc <= runp[1]; ++wc)
- if ((wint_t) wc == c)
- break;
-
- if (wc <= runp[1] && !not_in)
- break;
- if (wc <= runp[1] && not_in)
- {
- /* The current character is not in the
- scanset. */
- ungetc (c, s);
- goto out;
- }
-
- runp += 2;
- }
- else
- {
- if ((wint_t) *runp == c && !not_in)
- break;
- if ((wint_t) *runp == c && not_in)
- {
- ungetc (c, s);
- goto out;
- }
-
- ++runp;
- }
- }
-
- if (runp == twend && !not_in)
- {
- ungetc (c, s);
- goto out;
- }
-
- if (!(flags & SUPPRESS))
- {
- *wstr++ = c;
-
- if ((flags & MALLOC)
- && wstr == (wchar_t *) *strptr + strsize)
- {
- /* Enlarge the buffer. */
- wstr = (wchar_t *) realloc (*strptr,
- (2 * strsize)
- * sizeof (wchar_t));
- if (wstr == NULL)
- {
- /* Can't allocate that much. Last-ditch
- effort. */
- wstr = (wchar_t *)
- realloc (*strptr, (strsize + 1)
- * sizeof (wchar_t));
- if (wstr == NULL)
- {
- if (flags & POSIX_MALLOC)
- {
- done = EOF;
- goto errout;
- }
- /* We lose. Oh well. Terminate the string
- and stop converting, so at least we don't
- skip any input. */
- ((wchar_t *) (*strptr))[strsize - 1] = L'\0';
- strptr = NULL;
- ++done;
- conv_error ();
- }
- else
- {
- *strptr = (char *) wstr;
- wstr += strsize;
- ++strsize;
- }
- }
- else
- {
- *strptr = (char *) wstr;
- wstr += strsize;
- strsize *= 2;
- }
- }
- }
- }
- while (--width > 0 && inchar () != WEOF);
- out:
-#else
- char buf[MB_LEN_MAX];
- size_t cnt = 0;
- mbstate_t cstate;
-
- if (__glibc_unlikely (inchar () == EOF))
- input_error ();
-
- memset (&cstate, '\0', sizeof (cstate));
-
- do
- {
- if (((char *) charbuf.scratch.data)[c] == not_in)
- {
- ungetc_not_eof (c, s);
- break;
- }
-
- /* This is easy. */
- if (!(flags & SUPPRESS))
- {
- size_t n;
-
- /* Convert it into a wide character. */
- buf[0] = c;
- n = __mbrtowc (wstr, buf, 1, &cstate);
-
- if (n == (size_t) -2)
- {
- /* Possibly correct character, just not enough
- input. */
- ++cnt;
- assert (cnt < MB_LEN_MAX);
- continue;
- }
- cnt = 0;
-
- ++wstr;
- if ((flags & MALLOC)
- && wstr == (wchar_t *) *strptr + strsize)
- {
- /* Enlarge the buffer. */
- wstr = (wchar_t *) realloc (*strptr,
- (2 * strsize
- * sizeof (wchar_t)));
- if (wstr == NULL)
- {
- /* Can't allocate that much. Last-ditch
- effort. */
- wstr = (wchar_t *)
- realloc (*strptr, ((strsize + 1)
- * sizeof (wchar_t)));
- if (wstr == NULL)
- {
- if (flags & POSIX_MALLOC)
- {
- done = EOF;
- goto errout;
- }
- /* We lose. Oh well. Terminate the
- string and stop converting,
- so at least we don't skip any input. */
- ((wchar_t *) (*strptr))[strsize - 1] = L'\0';
- strptr = NULL;
- ++done;
- conv_error ();
- }
- else
- {
- *strptr = (char *) wstr;
- wstr += strsize;
- ++strsize;
- }
- }
- else
- {
- *strptr = (char *) wstr;
- wstr += strsize;
- strsize *= 2;
- }
- }
- }
-
- if (--width <= 0)
- break;
- }
- while (inchar () != EOF);
-
- if (__glibc_unlikely (cnt != 0))
- /* We stopped in the middle of recognizing another
- character. That's a problem. */
- encode_error ();
-#endif
-
- if (__glibc_unlikely (now == read_in))
- /* We haven't succesfully read any character. */
- conv_error ();
-
- if (!(flags & SUPPRESS))
- {
- *wstr++ = L'\0';
-
- if ((flags & MALLOC)
- && wstr - (wchar_t *) *strptr != strsize)
- {
- wchar_t *cp = (wchar_t *)
- realloc (*strptr, ((wstr - (wchar_t *) *strptr)
- * sizeof(wchar_t)));
- if (cp != NULL)
- *strptr = (char *) cp;
- }
- strptr = NULL;
-
- ++done;
- }
- }
- else
- {
- size_t now = read_in;
-
- if (__glibc_unlikely (inchar () == EOF))
- input_error ();
-
-#ifdef COMPILE_WSCANF
-
- memset (&state, '\0', sizeof (state));
-
- do
- {
- wchar_t *runp;
- size_t n;
-
- /* Test whether it's in the scanlist. */
- runp = tw;
- while (runp < twend)
- {
- if (runp[0] == L'-' && runp[1] != '\0'
- && runp + 1 != twend
- && runp != tw
- && (unsigned int) runp[-1] <= (unsigned int) runp[1])
- {
- /* Match against all characters in between the
- first and last character of the sequence. */
- wchar_t wc;
-
- for (wc = runp[-1] + 1; wc <= runp[1]; ++wc)
- if ((wint_t) wc == c)
- break;
-
- if (wc <= runp[1] && !not_in)
- break;
- if (wc <= runp[1] && not_in)
- {
- /* The current character is not in the
- scanset. */
- ungetc (c, s);
- goto out2;
- }
-
- runp += 2;
- }
- else
- {
- if ((wint_t) *runp == c && !not_in)
- break;
- if ((wint_t) *runp == c && not_in)
- {
- ungetc (c, s);
- goto out2;
- }
-
- ++runp;
- }
- }
-
- if (runp == twend && !not_in)
- {
- ungetc (c, s);
- goto out2;
- }
-
- if (!(flags & SUPPRESS))
- {
- if ((flags & MALLOC)
- && *strptr + strsize - str <= MB_LEN_MAX)
- {
- /* Enlarge the buffer. */
- size_t strleng = str - *strptr;
- char *newstr;
-
- newstr = (char *) realloc (*strptr, 2 * strsize);
- if (newstr == NULL)
- {
- /* Can't allocate that much. Last-ditch
- effort. */
- newstr = (char *) realloc (*strptr,
- strleng + MB_LEN_MAX);
- if (newstr == NULL)
- {
- if (flags & POSIX_MALLOC)
- {
- done = EOF;
- goto errout;
- }
- /* We lose. Oh well. Terminate the string
- and stop converting, so at least we don't
- skip any input. */
- ((char *) (*strptr))[strleng] = '\0';
- strptr = NULL;
- ++done;
- conv_error ();
- }
- else
- {
- *strptr = newstr;
- str = newstr + strleng;
- strsize = strleng + MB_LEN_MAX;
- }
- }
- else
- {
- *strptr = newstr;
- str = newstr + strleng;
- strsize *= 2;
- }
- }
- }
-
- n = __wcrtomb (!(flags & SUPPRESS) ? str : NULL, c, &state);
- if (__glibc_unlikely (n == (size_t) -1))
- encode_error ();
-
- assert (n <= MB_LEN_MAX);
- str += n;
- }
- while (--width > 0 && inchar () != WEOF);
- out2:
-#else
- do
- {
- if (((char *) charbuf.scratch.data)[c] == not_in)
- {
- ungetc_not_eof (c, s);
- break;
- }
-
- /* This is easy. */
- if (!(flags & SUPPRESS))
- {
- *str++ = c;
- if ((flags & MALLOC)
- && (char *) str == *strptr + strsize)
- {
- /* Enlarge the buffer. */
- size_t newsize = 2 * strsize;
-
- allocagain:
- str = (char *) realloc (*strptr, newsize);
- if (str == NULL)
- {
- /* Can't allocate that much. Last-ditch
- effort. */
- if (newsize > strsize + 1)
- {
- newsize = strsize + 1;
- goto allocagain;
- }
- if (flags & POSIX_MALLOC)
- {
- done = EOF;
- goto errout;
- }
- /* We lose. Oh well. Terminate the
- string and stop converting,
- so at least we don't skip any input. */
- ((char *) (*strptr))[strsize - 1] = '\0';
- strptr = NULL;
- ++done;
- conv_error ();
- }
- else
- {
- *strptr = (char *) str;
- str += strsize;
- strsize = newsize;
- }
- }
- }
- }
- while (--width > 0 && inchar () != EOF);
-#endif
-
- if (__glibc_unlikely (now == read_in))
- /* We haven't succesfully read any character. */
- conv_error ();
-
- if (!(flags & SUPPRESS))
- {
-#ifdef COMPILE_WSCANF
- /* We have to emit the code to get into the initial
- state. */
- char buf[MB_LEN_MAX];
- size_t n = __wcrtomb (buf, L'\0', &state);
- if (n > 0 && (flags & MALLOC)
- && str + n >= *strptr + strsize)
- {
- /* Enlarge the buffer. */
- size_t strleng = str - *strptr;
- char *newstr;
-
- newstr = (char *) realloc (*strptr, strleng + n + 1);
- if (newstr == NULL)
- {
- if (flags & POSIX_MALLOC)
- {
- done = EOF;
- goto errout;
- }
- /* We lose. Oh well. Terminate the string
- and stop converting, so at least we don't
- skip any input. */
- ((char *) (*strptr))[strleng] = '\0';
- strptr = NULL;
- ++done;
- conv_error ();
- }
- else
- {
- *strptr = newstr;
- str = newstr + strleng;
- strsize = strleng + n + 1;
- }
- }
-
- str = __mempcpy (str, buf, n);
-#endif
- *str++ = '\0';
-
- if ((flags & MALLOC) && str - *strptr != strsize)
- {
- char *cp = (char *) realloc (*strptr, str - *strptr);
- if (cp != NULL)
- *strptr = cp;
- }
- strptr = NULL;
-
- ++done;
- }
- }
- break;
-
- case L_('p'): /* Generic pointer. */
- base = 16;
- /* A PTR must be the same size as a `long int'. */
- flags &= ~(SHORT|LONGDBL);
- if (need_long)
- flags |= LONG;
- flags |= READ_POINTER;
- goto number;
-
- default:
- /* If this is an unknown format character punt. */
- conv_error ();
- }
- }
-
- /* The last thing we saw int the format string was a white space.
- Consume the last white spaces. */
- if (skip_space)
- {
- do
- c = inchar ();
- while (ISSPACE (c));
- ungetc (c, s);
- }
-
- errout:
- /* Unlock stream. */
- UNLOCK_STREAM (s);
-
- scratch_buffer_free (&charbuf.scratch);
- if (errp != NULL)
- *errp |= errval;
-
- if (__glibc_unlikely (done == EOF))
- {
- if (__glibc_unlikely (ptrs_to_free != NULL))
- {
- struct ptrs_to_free *p = ptrs_to_free;
- while (p != NULL)
- {
- for (size_t cnt = 0; cnt < p->count; ++cnt)
- {
- free (*p->ptrs[cnt]);
- *p->ptrs[cnt] = NULL;
- }
- p = p->next;
- ptrs_to_free = p;
- }
- }
- }
- else if (__glibc_unlikely (strptr != NULL))
- {
- free (*strptr);
- *strptr = NULL;
- }
- return done;
-}
-
-#ifdef COMPILE_WSCANF
-int
-__vfwscanf (FILE *s, const wchar_t *format, va_list argptr)
-{
- return _IO_vfwscanf (s, format, argptr, NULL);
-}
-ldbl_weak_alias (__vfwscanf, vfwscanf)
-#else
int
___vfscanf (FILE *s, const char *format, va_list argptr)
{
- return _IO_vfscanf_internal (s, format, argptr, NULL);
+ return __vfscanf_internal (s, format, argptr, 0);
}
-ldbl_strong_alias (_IO_vfscanf_internal, _IO_vfscanf)
-ldbl_hidden_def (_IO_vfscanf_internal, _IO_vfscanf)
ldbl_strong_alias (___vfscanf, __vfscanf)
ldbl_hidden_def (___vfscanf, __vfscanf)
ldbl_weak_alias (___vfscanf, vfscanf)
-#endif
diff --git a/stdio-common/vfwprintf-internal.c b/stdio-common/vfwprintf-internal.c
new file mode 100644
index 0000000000..cefaf2fafe
--- /dev/null
+++ b/stdio-common/vfwprintf-internal.c
@@ -0,0 +1,2 @@
+#define COMPILE_WPRINTF 1
+#include "vfprintf-internal.c"
diff --git a/stdio-common/vfwprintf.c b/stdio-common/vfwprintf.c
index 2c3cd06fad..61cdf2f86e 100644
--- a/stdio-common/vfwprintf.c
+++ b/stdio-common/vfwprintf.c
@@ -1,3 +1,25 @@
-#include <wctype.h>
-#define COMPILE_WPRINTF 1
-#include "vfprintf.c"
+/* Copyright (C) 1991-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <libio/libioP.h>
+
+extern int
+__vfwprintf (FILE *fp, const wchar_t *format, va_list ap)
+{
+ return __vfwprintf_internal (fp, format, ap, 0);
+}
+ldbl_weak_alias (__vfwprintf, vfwprintf);
diff --git a/stdio-common/vfwscanf-internal.c b/stdio-common/vfwscanf-internal.c
new file mode 100644
index 0000000000..26c89270b7
--- /dev/null
+++ b/stdio-common/vfwscanf-internal.c
@@ -0,0 +1,2 @@
+#define COMPILE_WSCANF 1
+#include "vfscanf-internal.c"
diff --git a/stdio-common/vfwscanf.c b/stdio-common/vfwscanf.c
index 26b1a66608..79339b2efa 100644
--- a/stdio-common/vfwscanf.c
+++ b/stdio-common/vfwscanf.c
@@ -1,2 +1,31 @@
-#define COMPILE_WSCANF 1
-#include "vfscanf.c"
+/* Implementation and symbols for vfwscanf.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+/* This file defines one of the deprecated scanf variants. */
+#include <features.h>
+#undef __GLIBC_USE_DEPRECATED_SCANF
+#define __GLIBC_USE_DEPRECATED_SCANF 1
+
+#include <libioP.h>
+
+int
+__vfwscanf (FILE *s, const wchar_t *format, va_list argptr)
+{
+ return __vfwscanf_internal (s, format, argptr, 0);
+}
+ldbl_weak_alias (__vfwscanf, vfwscanf)
diff --git a/stdio-common/vprintf.c b/stdio-common/vprintf.c
index d459642dc8..91ae9c48a7 100644
--- a/stdio-common/vprintf.c
+++ b/stdio-common/vprintf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdarg.h>
#undef __OPTIMIZE__ /* Avoid inline `vprintf' function. */
@@ -25,9 +25,9 @@
/* Write formatted output to stdout according to the
format string FORMAT, using the argument list in ARG. */
int
-__vprintf (const char *format, __gnuc_va_list arg)
+__vprintf (const char *format, va_list ap)
{
- return vfprintf (stdout, format, arg);
+ return __vfprintf_internal (stdout, format, ap, 0);
}
ldbl_strong_alias (__vprintf, vprintf)
diff --git a/stdlib/Makefile b/stdlib/Makefile
index 01194bbf7c..c8520285f4 100644
--- a/stdlib/Makefile
+++ b/stdlib/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1991-2018 Free Software Foundation, Inc.
+# Copyright (C) 1991-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
# Makefile for stdlib routines
@@ -24,12 +24,12 @@ include ../Makeconfig
headers := stdlib.h bits/stdlib.h bits/stdlib-ldbl.h bits/stdlib-float.h \
monetary.h bits/monetary-ldbl.h \
- inttypes.h stdint.h bits/wordsize.h \
+ inttypes.h stdint.h bits/wordsize.h bits/timesize.h \
errno.h sys/errno.h bits/errno.h bits/types/error_t.h \
ucontext.h sys/ucontext.h bits/indirect-return.h \
alloca.h fmtmsg.h \
bits/stdlib-bsearch.h sys/random.h bits/stdint-intn.h \
- bits/stdint-uintn.h
+ bits/stdint-uintn.h bits/time64.h \
routines := \
atof atoi atol atoll \
@@ -87,7 +87,7 @@ tests := tst-strtol tst-strtod testmb testrand testsort testdiv \
tst-makecontext-align test-bz22786 tst-strtod-nan-sign \
tst-swapcontext1 tst-setcontext4 tst-setcontext5 \
tst-setcontext6 tst-setcontext7 tst-setcontext8 \
- tst-setcontext9
+ tst-setcontext9 tst-bz20544
tests-internal := tst-strtod1i tst-strtod3 tst-strtod4 tst-strtod5i \
tst-tls-atexit tst-tls-atexit-nodelete
@@ -211,7 +211,7 @@ $(objpfx)tst-fmtmsg.out: tst-fmtmsg.sh $(objpfx)tst-fmtmsg
$(evaluate-test)
$(objpfx)tst-putenv: $(objpfx)tst-putenvmod.so
-LDFLAGS-tst-putenv = $(no-as-needed)
+LDFLAGS-tst-putenv = -Wl,--no-as-needed
$(objpfx)tst-putenvmod.so: $(objpfx)tst-putenvmod.os $(link-libc-deps)
$(build-module)
diff --git a/stdlib/Versions b/stdlib/Versions
index a2dfa322ed..9e665d4c26 100644
--- a/stdlib/Versions
+++ b/stdlib/Versions
@@ -105,9 +105,6 @@ libc {
GLIBC_2.10 {
quick_exit; __cxa_at_quick_exit;
}
- GLIBC_2.13 {
- __fentry__;
- }
GLIBC_2.17 {
secure_getenv;
}
diff --git a/stdlib/a64l.c b/stdlib/a64l.c
index 112b282ae9..17d7bf483c 100644
--- a/stdlib/a64l.c
+++ b/stdlib/a64l.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, August 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
diff --git a/stdlib/abort.c b/stdlib/abort.c
index 9bb97c1055..5241bf780f 100644
--- a/stdlib/abort.c
+++ b/stdlib/abort.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libc-lock.h>
#include <signal.h>
diff --git a/stdlib/abs.c b/stdlib/abs.c
index 8a8f05ed61..f28ee67d63 100644
--- a/stdlib/abs.c
+++ b/stdlib/abs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
diff --git a/stdlib/add_n.c b/stdlib/add_n.c
index f68b421f17..7c43bb3d86 100644
--- a/stdlib/add_n.c
+++ b/stdlib/add_n.c
@@ -1,6 +1,6 @@
/* mpn_add_n -- Add two limb vectors of equal, non-zero length.
-Copyright (C) 1992-2018 Free Software Foundation, Inc.
+Copyright (C) 1992-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -16,7 +16,7 @@ License for more details.
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not, see
-<http://www.gnu.org/licenses/>. */
+<https://www.gnu.org/licenses/>. */
#include <gmp.h>
#include "gmp-impl.h"
diff --git a/stdlib/addmul_1.c b/stdlib/addmul_1.c
index cadeed11fc..8e6c03222c 100644
--- a/stdlib/addmul_1.c
+++ b/stdlib/addmul_1.c
@@ -3,7 +3,7 @@
limb vector pointed to by RES_PTR. Return the most significant limb of
the product, adjusted for carry-out from the addition.
-Copyright (C) 1992-2018 Free Software Foundation, Inc.
+Copyright (C) 1992-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -19,7 +19,7 @@ License for more details.
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not, see
-<http://www.gnu.org/licenses/>. */
+<https://www.gnu.org/licenses/>. */
#include <gmp.h>
#include "gmp-impl.h"
diff --git a/stdlib/alloca.h b/stdlib/alloca.h
index c195adc9e2..76026f7afa 100644
--- a/stdlib/alloca.h
+++ b/stdlib/alloca.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _ALLOCA_H
#define _ALLOCA_H 1
diff --git a/stdlib/at_quick_exit.c b/stdlib/at_quick_exit.c
index f036af1151..73b096b260 100644
--- a/stdlib/at_quick_exit.c
+++ b/stdlib/at_quick_exit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include <dso_handle.h>
diff --git a/stdlib/atexit.c b/stdlib/atexit.c
index 91efcc6932..124fb9325f 100644
--- a/stdlib/atexit.c
+++ b/stdlib/atexit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include <dso_handle.h>
diff --git a/stdlib/atof.c b/stdlib/atof.c
index f097f31f06..aaf78945d0 100644
--- a/stdlib/atof.c
+++ b/stdlib/atof.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
diff --git a/stdlib/atoi.c b/stdlib/atoi.c
index c42858494f..79a736ce46 100644
--- a/stdlib/atoi.c
+++ b/stdlib/atoi.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
diff --git a/stdlib/atol.c b/stdlib/atol.c
index b0e67909a8..f56c8281c8 100644
--- a/stdlib/atol.c
+++ b/stdlib/atol.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
diff --git a/stdlib/atoll.c b/stdlib/atoll.c
index 42d8139b48..0a1cb8f7e2 100644
--- a/stdlib/atoll.c
+++ b/stdlib/atoll.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
diff --git a/stdlib/bits/monetary-ldbl.h b/stdlib/bits/monetary-ldbl.h
index 8d867829e6..b9a908749b 100644
--- a/stdlib/bits/monetary-ldbl.h
+++ b/stdlib/bits/monetary-ldbl.h
@@ -1,5 +1,5 @@
/* -mlong-double-64 compatibility mode for monetary functions.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MONETARY_H
# error "Never include <bits/monetary-ldbl.h> directly; use <monetary.h> instead."
diff --git a/stdlib/bits/stdlib-float.h b/stdlib/bits/stdlib-float.h
index cb0c35b420..661048e568 100644
--- a/stdlib/bits/stdlib-float.h
+++ b/stdlib/bits/stdlib-float.h
@@ -1,5 +1,5 @@
/* Floating-point inline functions for stdlib.h.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _STDLIB_H
# error "Never use <bits/stdlib-float.h> directly; include <stdlib.h> instead."
diff --git a/stdlib/bits/stdlib-ldbl.h b/stdlib/bits/stdlib-ldbl.h
index f7ae101362..dcbf74a6dd 100644
--- a/stdlib/bits/stdlib-ldbl.h
+++ b/stdlib/bits/stdlib-ldbl.h
@@ -1,5 +1,5 @@
/* -mlong-double-64 compatibility mode for <stdlib.h> functions.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _STDLIB_H
# error "Never include <bits/stdlib-ldbl.h> directly; use <stdlib.h> instead."
@@ -28,7 +28,7 @@ __LDBL_REDIR1_DECL (strtold, strtod)
__LDBL_REDIR1_DECL (strtold_l, strtod_l)
#endif
-#if __GLIBC_USE (IEC_60559_BFP_EXT)
+#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
__LDBL_REDIR1_DECL (strfroml, strfromd)
#endif
diff --git a/stdlib/bits/stdlib.h b/stdlib/bits/stdlib.h
index 53c379b99a..196e17db70 100644
--- a/stdlib/bits/stdlib.h
+++ b/stdlib/bits/stdlib.h
@@ -1,5 +1,5 @@
/* Checking macros for stdlib functions.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _STDLIB_H
# error "Never include <bits/stdlib.h> directly; use <stdlib.h> instead."
diff --git a/stdlib/bsearch.c b/stdlib/bsearch.c
index 00afde4ced..7addb3c402 100644
--- a/stdlib/bsearch.c
+++ b/stdlib/bsearch.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
diff --git a/stdlib/bug-strtod.c b/stdlib/bug-strtod.c
index adc35db222..625abd8b92 100644
--- a/stdlib/bug-strtod.c
+++ b/stdlib/bug-strtod.c
@@ -1,6 +1,6 @@
/* Test to strtod etc for numbers like x000...0000.000e-nn.
This file is part of the GNU C Library.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
diff --git a/stdlib/canonicalize.c b/stdlib/canonicalize.c
index 390fb437a8..609fcb7018 100644
--- a/stdlib/canonicalize.c
+++ b/stdlib/canonicalize.c
@@ -1,5 +1,5 @@
/* Return the canonical absolute name of a given file.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <stdlib.h>
diff --git a/stdlib/cmp.c b/stdlib/cmp.c
index 1d5b06bee8..551fc4d83e 100644
--- a/stdlib/cmp.c
+++ b/stdlib/cmp.c
@@ -1,6 +1,6 @@
/* mpn_cmp -- Compare two low-level natural-number integers.
-Copyright (C) 1991-2018 Free Software Foundation, Inc.
+Copyright (C) 1991-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -16,7 +16,7 @@ License for more details.
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not, see
-<http://www.gnu.org/licenses/>. */
+<https://www.gnu.org/licenses/>. */
#include <gmp.h>
#include "gmp-impl.h"
diff --git a/stdlib/cxa_at_quick_exit.c b/stdlib/cxa_at_quick_exit.c
index 467bff4b98..34c897bdf2 100644
--- a/stdlib/cxa_at_quick_exit.c
+++ b/stdlib/cxa_at_quick_exit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include "exit.h"
diff --git a/stdlib/cxa_atexit.c b/stdlib/cxa_atexit.c
index 6d65f7e615..cc9408adb1 100644
--- a/stdlib/cxa_atexit.c
+++ b/stdlib/cxa_atexit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <stdlib.h>
@@ -36,6 +36,10 @@ __internal_atexit (void (*func) (void *), void *arg, void *d,
{
struct exit_function *new;
+ /* As a QoI issue we detect NULL early with an assertion instead
+ of a SIGSEGV at program exit when the handler is run (bug 20544). */
+ assert (func != NULL);
+
__libc_lock_lock (__exit_funcs_lock);
new = __new_exitfn (listp);
diff --git a/stdlib/cxa_finalize.c b/stdlib/cxa_finalize.c
index 32651da79a..b757dd63f9 100644
--- a/stdlib/cxa_finalize.c
+++ b/stdlib/cxa_finalize.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <stdlib.h>
diff --git a/stdlib/cxa_thread_atexit_impl.c b/stdlib/cxa_thread_atexit_impl.c
index 4501399c31..d6b97dd364 100644
--- a/stdlib/cxa_thread_atexit_impl.c
+++ b/stdlib/cxa_thread_atexit_impl.c
@@ -1,5 +1,5 @@
/* Register destructors for C++ TLS variables declared with thread_local.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* CONCURRENCY NOTES:
diff --git a/stdlib/dbl2mpn.c b/stdlib/dbl2mpn.c
index 9d09d06893..df0df27d1f 100644
--- a/stdlib/dbl2mpn.c
+++ b/stdlib/dbl2mpn.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <gmp.h>
#include "gmp-impl.h"
diff --git a/stdlib/div.c b/stdlib/div.c
index 7e14daee75..734ce9f89b 100644
--- a/stdlib/div.c
+++ b/stdlib/div.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* Copyright (c) 1990 Regents of the University of California.
diff --git a/stdlib/divmod_1.c b/stdlib/divmod_1.c
index 91feee5d4f..e2e6329888 100644
--- a/stdlib/divmod_1.c
+++ b/stdlib/divmod_1.c
@@ -6,7 +6,7 @@
QUOT_PTR and DIVIDEND_PTR might point to the same limb.
-Copyright (C) 1991-2018 Free Software Foundation, Inc.
+Copyright (C) 1991-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -22,7 +22,7 @@ License for more details.
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not, see
-<http://www.gnu.org/licenses/>. */
+<https://www.gnu.org/licenses/>. */
#include <gmp.h>
#include "gmp-impl.h"
diff --git a/stdlib/divrem.c b/stdlib/divrem.c
index 3d2a958717..098556d981 100644
--- a/stdlib/divrem.c
+++ b/stdlib/divrem.c
@@ -1,7 +1,7 @@
/* mpn_divrem -- Divide natural numbers, producing both remainder and
quotient.
-Copyright (C) 1993-2018 Free Software Foundation, Inc.
+Copyright (C) 1993-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -17,7 +17,7 @@ License for more details.
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not, see
-<http://www.gnu.org/licenses/>. */
+<https://www.gnu.org/licenses/>. */
#include <gmp.h>
#include "gmp-impl.h"
diff --git a/stdlib/drand48-iter.c b/stdlib/drand48-iter.c
index 4dbc439b97..b7b20e0204 100644
--- a/stdlib/drand48-iter.c
+++ b/stdlib/drand48-iter.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdlib.h>
diff --git a/stdlib/drand48.c b/stdlib/drand48.c
index e88753ee4d..2423e5e71a 100644
--- a/stdlib/drand48.c
+++ b/stdlib/drand48.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
diff --git a/stdlib/drand48_r.c b/stdlib/drand48_r.c
index 31ef210406..ef74b3b9ba 100644
--- a/stdlib/drand48_r.c
+++ b/stdlib/drand48_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <math.h>
diff --git a/stdlib/erand48.c b/stdlib/erand48.c
index af5f18ac1e..c3179932d6 100644
--- a/stdlib/erand48.c
+++ b/stdlib/erand48.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
diff --git a/stdlib/erand48_r.c b/stdlib/erand48_r.c
index 40d7f79b06..d45277c1f7 100644
--- a/stdlib/erand48_r.c
+++ b/stdlib/erand48_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ieee754.h>
#include <stdlib.h>
diff --git a/stdlib/errno.h b/stdlib/errno.h
index fc8b496fae..e2f438f65f 100644
--- a/stdlib/errno.h
+++ b/stdlib/errno.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* ISO C99 Standard: 7.5 Errors <errno.h>
diff --git a/stdlib/exit.c b/stdlib/exit.c
index 0a4944fa05..baa99d8dc1 100644
--- a/stdlib/exit.c
+++ b/stdlib/exit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
diff --git a/stdlib/exit.h b/stdlib/exit.h
index 3437d753ec..3a0a586e46 100644
--- a/stdlib/exit.h
+++ b/stdlib/exit.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _EXIT_H
#define _EXIT_H 1
diff --git a/stdlib/fmtmsg.c b/stdlib/fmtmsg.c
index 4f5a327240..b3d57cb906 100644
--- a/stdlib/fmtmsg.c
+++ b/stdlib/fmtmsg.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fmtmsg.h>
#include <libc-lock.h>
@@ -53,7 +53,7 @@ static const struct
{ 6, "action"},
{ 3, "tag" }
};
-#define NKEYWORDS (sizeof( keywords) / sizeof (keywords[0]))
+#define NKEYWORDS (sizeof (keywords) / sizeof (keywords[0]))
struct severity_info
diff --git a/stdlib/fmtmsg.h b/stdlib/fmtmsg.h
index aebc1b7ca1..a150cfe5e9 100644
--- a/stdlib/fmtmsg.h
+++ b/stdlib/fmtmsg.h
@@ -1,5 +1,5 @@
/* Message display handling.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef __FMTMSG_H
#define __FMTMSG_H 1
diff --git a/stdlib/fpioconst.c b/stdlib/fpioconst.c
index 3978a44ef5..b2abeb6b13 100644
--- a/stdlib/fpioconst.c
+++ b/stdlib/fpioconst.c
@@ -1,5 +1,5 @@
/* Table of MP integer constants 10^(2^i), used for floating point <-> decimal.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "fpioconst.h"
#include <gmp-mparam.h> /* This defines BITS_PER_MP_LIMB. */
diff --git a/stdlib/fpioconst.h b/stdlib/fpioconst.h
index 81108cfbf9..464aa82761 100644
--- a/stdlib/fpioconst.h
+++ b/stdlib/fpioconst.h
@@ -1,5 +1,5 @@
/* Header file for constants used in floating point <-> decimal conversions.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FPIOCONST_H
#define _FPIOCONST_H
diff --git a/stdlib/gen-fpioconst.c b/stdlib/gen-fpioconst.c
index b020f02db1..7d347d4f40 100644
--- a/stdlib/gen-fpioconst.c
+++ b/stdlib/gen-fpioconst.c
@@ -1,5 +1,5 @@
/* Generate data for fpioconst.c.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <inttypes.h>
#include <stdio.h>
diff --git a/stdlib/gen-tst-strtod-round.c b/stdlib/gen-tst-strtod-round.c
index df9dcaf2fe..08e8fdc034 100644
--- a/stdlib/gen-tst-strtod-round.c
+++ b/stdlib/gen-tst-strtod-round.c
@@ -1,6 +1,6 @@
/* Generate table of tests in tst-strtod-round.c from
tst-strtod-round-data.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Compile this program as:
diff --git a/stdlib/getcontext.c b/stdlib/getcontext.c
index 8fa6da1fb4..50c0de3908 100644
--- a/stdlib/getcontext.c
+++ b/stdlib/getcontext.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <ucontext.h>
diff --git a/stdlib/getentropy.c b/stdlib/getentropy.c
index b73efedff0..f7d386a4e8 100644
--- a/stdlib/getentropy.c
+++ b/stdlib/getentropy.c
@@ -1,5 +1,5 @@
/* Stub for getentropy.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/random.h>
#include <errno.h>
diff --git a/stdlib/getenv.c b/stdlib/getenv.c
index 84a54a3d10..6be97b2a54 100644
--- a/stdlib/getenv.c
+++ b/stdlib/getenv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <endian.h>
#include <errno.h>
diff --git a/stdlib/getrandom.c b/stdlib/getrandom.c
index 45234bea17..02b827c63c 100644
--- a/stdlib/getrandom.c
+++ b/stdlib/getrandom.c
@@ -1,5 +1,5 @@
/* Stub for getrandom.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/random.h>
#include <errno.h>
@@ -22,10 +22,12 @@
/* Write up to LENGTH bytes of randomness starting at BUFFER.
Return the number of bytes written, or -1 on error. */
ssize_t
-getrandom (void *buffer, size_t length, unsigned int flags)
+__getrandom (void *buffer, size_t length, unsigned int flags)
{
__set_errno (ENOSYS);
return -1;
}
-
stub_warning (getrandom)
+
+libc_hidden_def (__getrandom)
+weak_alias (__getrandom, getrandom)
diff --git a/stdlib/getsubopt.c b/stdlib/getsubopt.c
index 70a6ad94bf..0ebf7c1376 100644
--- a/stdlib/getsubopt.c
+++ b/stdlib/getsubopt.c
@@ -1,5 +1,5 @@
/* Parse comma separate list into words.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include <string.h>
diff --git a/stdlib/gmp-impl.h b/stdlib/gmp-impl.h
index 6a8da56845..9a4597da8b 100644
--- a/stdlib/gmp-impl.h
+++ b/stdlib/gmp-impl.h
@@ -1,6 +1,6 @@
/* Include file for internal GNU MP types and definitions.
-Copyright (C) 1991-2018 Free Software Foundation, Inc.
+Copyright (C) 1991-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -16,7 +16,7 @@ License for more details.
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not, see
-<http://www.gnu.org/licenses/>. */
+<https://www.gnu.org/licenses/>. */
/* When using gcc, make sure to use its builtin alloca. */
#if ! defined (alloca) && defined (__GNUC__)
diff --git a/stdlib/gmp.h b/stdlib/gmp.h
index ccc67c848f..fad1ece044 100644
--- a/stdlib/gmp.h
+++ b/stdlib/gmp.h
@@ -1,6 +1,6 @@
/* gmp.h -- Definitions for GNU multiple precision functions.
-Copyright (C) 1991-2018 Free Software Foundation, Inc.
+Copyright (C) 1991-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -16,7 +16,7 @@ License for more details.
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not, see
-<http://www.gnu.org/licenses/>. */
+<https://www.gnu.org/licenses/>. */
#ifndef __GMP_H__
diff --git a/stdlib/grouping.c b/stdlib/grouping.c
index 598e253932..c7bc7c2e7a 100644
--- a/stdlib/grouping.c
+++ b/stdlib/grouping.c
@@ -1,5 +1,5 @@
/* Internal header for proving correct grouping in strings of numbers.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <limits.h>
#include <stddef.h>
diff --git a/stdlib/grouping.h b/stdlib/grouping.h
index a82db8c8cc..74f774b63c 100644
--- a/stdlib/grouping.h
+++ b/stdlib/grouping.h
@@ -1,5 +1,5 @@
/* Internal header for proving correct grouping in strings of numbers.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Find the maximum prefix of the string between BEGIN and END which
satisfies the grouping rules. It is assumed that at least one digit
diff --git a/sysdeps/generic/inttypes.h b/stdlib/inttypes.h
index 69f8cb17a5..ee99c2fa46 100644
--- a/sysdeps/generic/inttypes.h
+++ b/stdlib/inttypes.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* ISO C99: 7.8 Format conversion of integer types <inttypes.h>
diff --git a/stdlib/isomac.c b/stdlib/isomac.c
index 0873eaa505..6cc291b206 100644
--- a/stdlib/isomac.c
+++ b/stdlib/isomac.c
@@ -1,5 +1,5 @@
/* Check system header files for ISO 9899:1990 (ISO C) compliance.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jens Schweikhardt <schweikh@noc.dfn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This is a simple minded program that tries to find illegal macro
definitions in system header files. Illegal macro definitions are
@@ -74,6 +74,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <unistd.h>
#define HEADER_MAX 256
diff --git a/stdlib/jrand48.c b/stdlib/jrand48.c
index a255aab550..83bd3e6177 100644
--- a/stdlib/jrand48.c
+++ b/stdlib/jrand48.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
diff --git a/stdlib/jrand48_r.c b/stdlib/jrand48_r.c
index f2f57b8fd3..975acfe489 100644
--- a/stdlib/jrand48_r.c
+++ b/stdlib/jrand48_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
diff --git a/stdlib/l64a.c b/stdlib/l64a.c
index 21b544a8a7..cc5e80d4db 100644
--- a/stdlib/l64a.c
+++ b/stdlib/l64a.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
diff --git a/stdlib/labs.c b/stdlib/labs.c
index 77d2ef9bf9..e4af1397fb 100644
--- a/stdlib/labs.c
+++ b/stdlib/labs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
diff --git a/stdlib/lcong48.c b/stdlib/lcong48.c
index f0f316cb00..169f69a896 100644
--- a/stdlib/lcong48.c
+++ b/stdlib/lcong48.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
diff --git a/stdlib/lcong48_r.c b/stdlib/lcong48_r.c
index a7e9cf78c2..b0b3c4ddf3 100644
--- a/stdlib/lcong48_r.c
+++ b/stdlib/lcong48_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
#include <stdlib.h>
diff --git a/stdlib/ldiv.c b/stdlib/ldiv.c
index 8b88600811..ef4d452397 100644
--- a/stdlib/ldiv.c
+++ b/stdlib/ldiv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
diff --git a/stdlib/llabs.c b/stdlib/llabs.c
index 38b6a93383..4909b00105 100644
--- a/stdlib/llabs.c
+++ b/stdlib/llabs.c
@@ -1,5 +1,5 @@
/* `long long int' absolute value.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
diff --git a/stdlib/lldiv.c b/stdlib/lldiv.c
index 116ad5e717..2fbaf1ac3e 100644
--- a/stdlib/lldiv.c
+++ b/stdlib/lldiv.c
@@ -1,5 +1,5 @@
/* `long long int' divison with remainder.
- Copyright (C) 1992-2018 Free Software Foundation, Inc.
+ Copyright (C) 1992-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
diff --git a/stdlib/longlong.h b/stdlib/longlong.h
index c7c6977c9f..d2d0aa83f8 100644
--- a/stdlib/longlong.h
+++ b/stdlib/longlong.h
@@ -1,5 +1,5 @@
/* longlong.h -- definitions for mixed size 32/64 bit arithmetic.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -24,7 +24,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* You have to define the following before including this file:
@@ -197,17 +197,17 @@ extern UDItype __udiv_qrnnd (UDItype *, UDItype, UDItype, UDItype);
: "=r" ((USItype) (sh)), \
"=&r" ((USItype) (sl)) \
: "%r" ((USItype) (ah)), \
- "rIJ" ((USItype) (bh)), \
+ "rICal" ((USItype) (bh)), \
"%r" ((USItype) (al)), \
- "rIJ" ((USItype) (bl)))
+ "rICal" ((USItype) (bl)))
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
__asm__ ("sub.f %1, %4, %5\n\tsbc %0, %2, %3" \
: "=r" ((USItype) (sh)), \
"=&r" ((USItype) (sl)) \
: "r" ((USItype) (ah)), \
- "rIJ" ((USItype) (bh)), \
+ "rICal" ((USItype) (bh)), \
"r" ((USItype) (al)), \
- "rIJ" ((USItype) (bl)))
+ "rICal" ((USItype) (bl)))
#define __umulsidi3(u,v) ((UDItype)(USItype)u*(USItype)v)
#ifdef __ARC_NORM__
@@ -221,8 +221,8 @@ extern UDItype __udiv_qrnnd (UDItype *, UDItype, UDItype, UDItype);
} \
while (0)
#define COUNT_LEADING_ZEROS_0 32
-#endif
-#endif
+#endif /* __ARC_NORM__ */
+#endif /* __arc__ */
#if defined (__arm__) && (defined (__thumb2__) || !defined (__thumb__)) \
&& W_TYPE_SIZE == 32
@@ -858,42 +858,6 @@ extern UDItype __umulsidi3 (USItype, USItype);
#endif
#endif /* __mips__ */
-#if defined (__ns32000__) && W_TYPE_SIZE == 32
-#define umul_ppmm(w1, w0, u, v) \
- ({union {UDItype __ll; \
- struct {USItype __l, __h;} __i; \
- } __xx; \
- __asm__ ("meid %2,%0" \
- : "=g" (__xx.__ll) \
- : "%0" ((USItype) (u)), \
- "g" ((USItype) (v))); \
- (w1) = __xx.__i.__h; (w0) = __xx.__i.__l;})
-#define __umulsidi3(u, v) \
- ({UDItype __w; \
- __asm__ ("meid %2,%0" \
- : "=g" (__w) \
- : "%0" ((USItype) (u)), \
- "g" ((USItype) (v))); \
- __w; })
-#define udiv_qrnnd(q, r, n1, n0, d) \
- ({union {UDItype __ll; \
- struct {USItype __l, __h;} __i; \
- } __xx; \
- __xx.__i.__h = (n1); __xx.__i.__l = (n0); \
- __asm__ ("deid %2,%0" \
- : "=g" (__xx.__ll) \
- : "0" (__xx.__ll), \
- "g" ((USItype) (d))); \
- (r) = __xx.__i.__l; (q) = __xx.__i.__h; })
-#define count_trailing_zeros(count,x) \
- do { \
- __asm__ ("ffsd %2,%0" \
- : "=r" ((USItype) (count)) \
- : "0" ((USItype) 0), \
- "r" ((USItype) (x))); \
- } while (0)
-#endif /* __ns32000__ */
-
/* FIXME: We should test _IBMR2 here when we add assembly support for the
system vendor compilers.
FIXME: What's needed for gcc PowerPC VxWorks? __vxworks__ is not good
@@ -1086,7 +1050,57 @@ extern UDItype __umulsidi3 (USItype, USItype);
} while (0)
#endif
-#if defined(__sh__) && (!defined (__SHMEDIA__) || !__SHMEDIA__) && W_TYPE_SIZE == 32
+#if defined(__riscv)
+#ifdef __riscv_mul
+#define __umulsidi3(u,v) ((UDWtype)(UWtype)(u) * (UWtype)(v))
+#define __muluw3(a, b) ((UWtype)(a) * (UWtype)(b))
+#else
+#if __riscv_xlen == 32
+ #define MULUW3 "call __mulsi3"
+#elif __riscv_xlen == 64
+ #define MULUW3 "call __muldi3"
+#else
+#error unsupport xlen
+#endif /* __riscv_xlen */
+/* We rely on the fact that MULUW3 doesn't clobber the t-registers.
+ It can get better register allocation result. */
+#define __muluw3(a, b) \
+ ({ \
+ register UWtype __op0 asm ("a0") = a; \
+ register UWtype __op1 asm ("a1") = b; \
+ asm volatile (MULUW3 \
+ : "+r" (__op0), "+r" (__op1) \
+ : \
+ : "ra", "a2", "a3"); \
+ __op0; \
+ })
+#endif /* __riscv_mul */
+#define umul_ppmm(w1, w0, u, v) \
+ do { \
+ UWtype __x0, __x1, __x2, __x3; \
+ UHWtype __ul, __vl, __uh, __vh; \
+ \
+ __ul = __ll_lowpart (u); \
+ __uh = __ll_highpart (u); \
+ __vl = __ll_lowpart (v); \
+ __vh = __ll_highpart (v); \
+ \
+ __x0 = __muluw3 (__ul, __vl); \
+ __x1 = __muluw3 (__ul, __vh); \
+ __x2 = __muluw3 (__uh, __vl); \
+ __x3 = __muluw3 (__uh, __vh); \
+ \
+ __x1 += __ll_highpart (__x0);/* this can't give carry */ \
+ __x1 += __x2; /* but this indeed can */ \
+ if (__x1 < __x2) /* did we get it? */ \
+ __x3 += __ll_B; /* yes, add it in the proper pos. */ \
+ \
+ (w1) = __x3 + __ll_highpart (__x1); \
+ (w0) = __ll_lowpart (__x1) * __ll_B + __ll_lowpart (__x0); \
+ } while (0)
+#endif /* __riscv */
+
+#if defined(__sh__) && W_TYPE_SIZE == 32
#ifndef __sh1__
#define umul_ppmm(w1, w0, u, v) \
__asm__ ( \
@@ -1159,21 +1173,6 @@ extern UDItype __umulsidi3 (USItype, USItype);
#endif /* __sh__ */
-#if defined (__SH5__) && defined (__SHMEDIA__) && __SHMEDIA__ && W_TYPE_SIZE == 32
-#define __umulsidi3(u,v) ((UDItype)(USItype)u*(USItype)v)
-#define count_leading_zeros(count, x) \
- do \
- { \
- UDItype x_ = (USItype)(x); \
- SItype c_; \
- \
- __asm__ ("nsb %1, %0" : "=r" (c_) : "r" (x_)); \
- (count) = c_ - 31; \
- } \
- while (0)
-#define COUNT_LEADING_ZEROS_0 32
-#endif
-
#if defined (__sparc__) && !defined (__arch64__) && !defined (__sparcv9) \
&& W_TYPE_SIZE == 32
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
diff --git a/stdlib/lrand48.c b/stdlib/lrand48.c
index 1618459c33..268c07d045 100644
--- a/stdlib/lrand48.c
+++ b/stdlib/lrand48.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
diff --git a/stdlib/lrand48_r.c b/stdlib/lrand48_r.c
index 5c9df75e00..255f9482a4 100644
--- a/stdlib/lrand48_r.c
+++ b/stdlib/lrand48_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, August 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
diff --git a/stdlib/lshift.c b/stdlib/lshift.c
index 65011cb734..54e8f4d3d2 100644
--- a/stdlib/lshift.c
+++ b/stdlib/lshift.c
@@ -1,6 +1,6 @@
/* mpn_lshift -- Shift left low level.
-Copyright (C) 1991-2018 Free Software Foundation, Inc.
+Copyright (C) 1991-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -16,7 +16,7 @@ License for more details.
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not, see
-<http://www.gnu.org/licenses/>. */
+<https://www.gnu.org/licenses/>. */
#include <gmp.h>
#include "gmp-impl.h"
diff --git a/stdlib/makecontext.c b/stdlib/makecontext.c
index e4c5133b26..acc84d90ee 100644
--- a/stdlib/makecontext.c
+++ b/stdlib/makecontext.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <ucontext.h>
diff --git a/stdlib/mblen.c b/stdlib/mblen.c
index bf6772a89b..9a49bc5d0d 100644
--- a/stdlib/mblen.c
+++ b/stdlib/mblen.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include <string.h>
diff --git a/stdlib/mbstowcs.c b/stdlib/mbstowcs.c
index 5bc77a2ea2..9489dfda0e 100644
--- a/stdlib/mbstowcs.c
+++ b/stdlib/mbstowcs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include <string.h>
@@ -22,12 +22,7 @@
/* Convert the string of multibyte characters in S to `wchar_t's in
PWCS, writing no more than N. Return the number written,
- or (size_t) -1 if an invalid multibyte character is encountered.
-
- Attention: this function should NEVER be intentionally used.
- The interface is completely stupid. The state is shared between
- all conversion functions. You should use instead the restartable
- version `mbsrtowcs'. */
+ or (size_t) -1 if an invalid multibyte character is encountered. */
size_t
mbstowcs (wchar_t *pwcs, const char *s, size_t n)
{
diff --git a/stdlib/mbtowc.c b/stdlib/mbtowc.c
index 95881b3eb5..f4ec94283a 100644
--- a/stdlib/mbtowc.c
+++ b/stdlib/mbtowc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include <string.h>
diff --git a/stdlib/mod_1.c b/stdlib/mod_1.c
index f7f0ea7abf..2acdc13c17 100644
--- a/stdlib/mod_1.c
+++ b/stdlib/mod_1.c
@@ -3,7 +3,7 @@
Return the single-limb remainder.
There are no constraints on the value of the divisor.
-Copyright (C) 1991-2018 Free Software Foundation, Inc.
+Copyright (C) 1991-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -19,7 +19,7 @@ License for more details.
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not, see
-<http://www.gnu.org/licenses/>. */
+<https://www.gnu.org/licenses/>. */
#include <gmp.h>
#include "gmp-impl.h"
diff --git a/stdlib/monetary.h b/stdlib/monetary.h
index 6da57126d7..40d3128b90 100644
--- a/stdlib/monetary.h
+++ b/stdlib/monetary.h
@@ -1,5 +1,5 @@
/* Header file for monetary value formatting functions.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MONETARY_H
#define _MONETARY_H 1
diff --git a/stdlib/mp_clz_tab.c b/stdlib/mp_clz_tab.c
index 0a5b5344c3..9c14383ffb 100644
--- a/stdlib/mp_clz_tab.c
+++ b/stdlib/mp_clz_tab.c
@@ -1,5 +1,5 @@
/* __clz_tab -- support for longlong.h
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library. Its master source is NOT part of
the C library, however. The master source lives in the GNU MP Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if 0
#include <gmp.h>
diff --git a/stdlib/mpn2dbl.c b/stdlib/mpn2dbl.c
index 8048d7e067..efcdb13c0a 100644
--- a/stdlib/mpn2dbl.c
+++ b/stdlib/mpn2dbl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <gmp.h>
#include "gmp-impl.h"
diff --git a/stdlib/mpn2flt.c b/stdlib/mpn2flt.c
index f409a105ec..4702dcf008 100644
--- a/stdlib/mpn2flt.c
+++ b/stdlib/mpn2flt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "gmp.h"
#include "gmp-impl.h"
diff --git a/stdlib/mrand48.c b/stdlib/mrand48.c
index 7edfb8109a..70ef1aa45a 100644
--- a/stdlib/mrand48.c
+++ b/stdlib/mrand48.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
diff --git a/stdlib/mrand48_r.c b/stdlib/mrand48_r.c
index 4e3621049d..4f229e3ae0 100644
--- a/stdlib/mrand48_r.c
+++ b/stdlib/mrand48_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
diff --git a/stdlib/msort.c b/stdlib/msort.c
index 266c2538c0..e0ebcf456f 100644
--- a/stdlib/msort.c
+++ b/stdlib/msort.c
@@ -1,6 +1,6 @@
/* An alternative to qsort, with an identical interface.
This file is part of the GNU C Library.
- Copyright (C) 1992-2018 Free Software Foundation, Inc.
+ Copyright (C) 1992-2019 Free Software Foundation, Inc.
Written by Mike Haertel, September 1988.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <alloca.h>
#include <stdint.h>
diff --git a/stdlib/mul.c b/stdlib/mul.c
index e6aceb200e..d3a4855700 100644
--- a/stdlib/mul.c
+++ b/stdlib/mul.c
@@ -1,6 +1,6 @@
/* mpn_mul -- Multiply two natural numbers.
-Copyright (C) 1991-2018 Free Software Foundation, Inc.
+Copyright (C) 1991-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -16,7 +16,7 @@ License for more details.
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not, see
-<http://www.gnu.org/licenses/>. */
+<https://www.gnu.org/licenses/>. */
#include <gmp.h>
#include "gmp-impl.h"
diff --git a/stdlib/mul_1.c b/stdlib/mul_1.c
index 137a095165..10157075a9 100644
--- a/stdlib/mul_1.c
+++ b/stdlib/mul_1.c
@@ -1,7 +1,7 @@
/* mpn_mul_1 -- Multiply a limb vector with a single limb and
store the product in a second limb vector.
-Copyright (C) 1991-2018 Free Software Foundation, Inc.
+Copyright (C) 1991-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -17,7 +17,7 @@ License for more details.
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not, see
-<http://www.gnu.org/licenses/>. */
+<https://www.gnu.org/licenses/>. */
#include <gmp.h>
#include "gmp-impl.h"
diff --git a/stdlib/mul_n.c b/stdlib/mul_n.c
index a6f3722515..b610b3dc53 100644
--- a/stdlib/mul_n.c
+++ b/stdlib/mul_n.c
@@ -1,6 +1,6 @@
/* mpn_mul_n -- Multiply two natural numbers of length n.
-Copyright (C) 1991-2018 Free Software Foundation, Inc.
+Copyright (C) 1991-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -16,7 +16,7 @@ License for more details.
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not, see
-<http://www.gnu.org/licenses/>. */
+<https://www.gnu.org/licenses/>. */
#include <gmp.h>
#include "gmp-impl.h"
diff --git a/stdlib/nrand48.c b/stdlib/nrand48.c
index c2a8f817c3..176a1a2528 100644
--- a/stdlib/nrand48.c
+++ b/stdlib/nrand48.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
diff --git a/stdlib/nrand48_r.c b/stdlib/nrand48_r.c
index 7f439d43f2..1d844d4f9b 100644
--- a/stdlib/nrand48_r.c
+++ b/stdlib/nrand48_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
diff --git a/stdlib/on_exit.c b/stdlib/on_exit.c
index 5241e0d86f..ce4d662098 100644
--- a/stdlib/on_exit.c
+++ b/stdlib/on_exit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -13,8 +13,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#include <assert.h>
#include <stdlib.h>
#include "exit.h"
#include <sysdep.h>
@@ -25,6 +26,10 @@ __on_exit (void (*func) (int status, void *arg), void *arg)
{
struct exit_function *new;
+ /* As a QoI issue we detect NULL early with an assertion instead
+ of a SIGSEGV at program exit when the handler is run (bug 20544). */
+ assert (func != NULL);
+
__libc_lock_lock (__exit_funcs_lock);
new = __new_exitfn (&__exit_funcs);
diff --git a/stdlib/putenv.c b/stdlib/putenv.c
index fcfe8f2621..e308855850 100644
--- a/stdlib/putenv.c
+++ b/stdlib/putenv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if defined _AIX && !defined __GNUC__
#pragma alloca
diff --git a/stdlib/qsort.c b/stdlib/qsort.c
index 264a06b8a9..d225832125 100644
--- a/stdlib/qsort.c
+++ b/stdlib/qsort.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Douglas C. Schmidt (schmidt@ics.uci.edu).
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* If you consider tuning this algorithm, you should consult first:
Engineering a sort function; Jon Bentley and M. Douglas McIlroy;
@@ -55,7 +55,7 @@ typedef struct
log(MAX_THRESH)). Since total_elements has type size_t, we get as
upper bound for log (total_elements):
bits per byte (CHAR_BIT) * sizeof(size_t). */
-#define STACK_SIZE (CHAR_BIT * sizeof(size_t))
+#define STACK_SIZE (CHAR_BIT * sizeof (size_t))
#define PUSH(low, high) ((void) ((top->lo = (low)), (top->hi = (high)), ++top))
#define POP(low, high) ((void) (--top, (low = top->lo), (high = top->hi)))
#define STACK_NOT_EMPTY (stack < top)
diff --git a/stdlib/quick_exit.c b/stdlib/quick_exit.c
index c994bf7608..4a4a8d8b45 100644
--- a/stdlib/quick_exit.c
+++ b/stdlib/quick_exit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
diff --git a/stdlib/rand.c b/stdlib/rand.c
index a0cc62463e..80002f42be 100644
--- a/stdlib/rand.c
+++ b/stdlib/rand.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
diff --git a/stdlib/rand_r.c b/stdlib/rand_r.c
index ed086aaebb..f3b908cc2d 100644
--- a/stdlib/rand_r.c
+++ b/stdlib/rand_r.c
@@ -1,5 +1,5 @@
/* Reentrant random function from POSIX.1c.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
diff --git a/stdlib/random.c b/stdlib/random.c
index 75bdbcd5bf..fe3e0e5e7e 100644
--- a/stdlib/random.c
+++ b/stdlib/random.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 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
@@ -12,7 +12,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* This is derived from the Berkeley source:
diff --git a/stdlib/random_r.c b/stdlib/random_r.c
index b47c65c6d7..66e272b5b7 100644
--- a/stdlib/random_r.c
+++ b/stdlib/random_r.c
@@ -1,5 +1,5 @@
/*
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
Copyright (C) 1983 Regents of the University of California.
diff --git a/stdlib/rpmatch.c b/stdlib/rpmatch.c
index d49ac14832..fda1ea848a 100644
--- a/stdlib/rpmatch.c
+++ b/stdlib/rpmatch.c
@@ -1,7 +1,7 @@
/* Determine whether string value is affirmation or negative response
according to current locale's data.
This file is part of the GNU C Library.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <langinfo.h>
#include <stdlib.h>
diff --git a/stdlib/rshift.c b/stdlib/rshift.c
index f1dc93de18..7a34969137 100644
--- a/stdlib/rshift.c
+++ b/stdlib/rshift.c
@@ -1,6 +1,6 @@
/* mpn_rshift -- Shift right a low-level natural-number integer.
-Copyright (C) 1991-2018 Free Software Foundation, Inc.
+Copyright (C) 1991-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -16,7 +16,7 @@ License for more details.
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not, see
-<http://www.gnu.org/licenses/>. */
+<https://www.gnu.org/licenses/>. */
#include <gmp.h>
#include "gmp-impl.h"
diff --git a/stdlib/secure-getenv.c b/stdlib/secure-getenv.c
index fc62bbe147..8bc7ec83c0 100644
--- a/stdlib/secure-getenv.c
+++ b/stdlib/secure-getenv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include <unistd.h>
diff --git a/stdlib/seed48.c b/stdlib/seed48.c
index 124955fdb7..2b26a03089 100644
--- a/stdlib/seed48.c
+++ b/stdlib/seed48.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
diff --git a/stdlib/seed48_r.c b/stdlib/seed48_r.c
index f4db7d2c74..05ee4096e9 100644
--- a/stdlib/seed48_r.c
+++ b/stdlib/seed48_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include <string.h>
diff --git a/stdlib/setcontext.c b/stdlib/setcontext.c
index fc40302234..9ef1ad0048 100644
--- a/stdlib/setcontext.c
+++ b/stdlib/setcontext.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <ucontext.h>
diff --git a/stdlib/setenv.c b/stdlib/setenv.c
index 58b4a2a310..2a80406870 100644
--- a/stdlib/setenv.c
+++ b/stdlib/setenv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if HAVE_CONFIG_H
# include <config.h>
diff --git a/stdlib/srand48.c b/stdlib/srand48.c
index e903c112e7..816f1ef5af 100644
--- a/stdlib/srand48.c
+++ b/stdlib/srand48.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
diff --git a/stdlib/srand48_r.c b/stdlib/srand48_r.c
index 610879e705..410071119a 100644
--- a/stdlib/srand48_r.c
+++ b/stdlib/srand48_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include <limits.h>
diff --git a/stdlib/stdint.h b/stdlib/stdint.h
new file mode 100644
index 0000000000..8f5cc4b26a
--- /dev/null
+++ b/stdlib/stdint.h
@@ -0,0 +1,319 @@
+/* Copyright (C) 1997-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
+ <https://www.gnu.org/licenses/>. */
+
+/*
+ * ISO C99: 7.18 Integer types <stdint.h>
+ */
+
+#ifndef _STDINT_H
+#define _STDINT_H 1
+
+#define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION
+#include <bits/libc-header-start.h>
+#include <bits/types.h>
+#include <bits/wchar.h>
+#include <bits/wordsize.h>
+
+/* Exact integral types. */
+
+/* Signed. */
+#include <bits/stdint-intn.h>
+
+/* Unsigned. */
+#include <bits/stdint-uintn.h>
+
+
+/* Small types. */
+
+/* Signed. */
+typedef __int_least8_t int_least8_t;
+typedef __int_least16_t int_least16_t;
+typedef __int_least32_t int_least32_t;
+typedef __int_least64_t int_least64_t;
+
+/* Unsigned. */
+typedef __uint_least8_t uint_least8_t;
+typedef __uint_least16_t uint_least16_t;
+typedef __uint_least32_t uint_least32_t;
+typedef __uint_least64_t uint_least64_t;
+
+
+/* Fast types. */
+
+/* Signed. */
+typedef signed char int_fast8_t;
+#if __WORDSIZE == 64
+typedef long int int_fast16_t;
+typedef long int int_fast32_t;
+typedef long int int_fast64_t;
+#else
+typedef int int_fast16_t;
+typedef int int_fast32_t;
+__extension__
+typedef long long int int_fast64_t;
+#endif
+
+/* Unsigned. */
+typedef unsigned char uint_fast8_t;
+#if __WORDSIZE == 64
+typedef unsigned long int uint_fast16_t;
+typedef unsigned long int uint_fast32_t;
+typedef unsigned long int uint_fast64_t;
+#else
+typedef unsigned int uint_fast16_t;
+typedef unsigned int uint_fast32_t;
+__extension__
+typedef unsigned long long int uint_fast64_t;
+#endif
+
+
+/* Types for `void *' pointers. */
+#if __WORDSIZE == 64
+# ifndef __intptr_t_defined
+typedef long int intptr_t;
+# define __intptr_t_defined
+# endif
+typedef unsigned long int uintptr_t;
+#else
+# ifndef __intptr_t_defined
+typedef int intptr_t;
+# define __intptr_t_defined
+# endif
+typedef unsigned int uintptr_t;
+#endif
+
+
+/* Largest integral types. */
+typedef __intmax_t intmax_t;
+typedef __uintmax_t uintmax_t;
+
+
+# if __WORDSIZE == 64
+# define __INT64_C(c) c ## L
+# define __UINT64_C(c) c ## UL
+# else
+# define __INT64_C(c) c ## LL
+# define __UINT64_C(c) c ## ULL
+# endif
+
+/* Limits of integral types. */
+
+/* Minimum of signed integral types. */
+# define INT8_MIN (-128)
+# define INT16_MIN (-32767-1)
+# define INT32_MIN (-2147483647-1)
+# define INT64_MIN (-__INT64_C(9223372036854775807)-1)
+/* Maximum of signed integral types. */
+# define INT8_MAX (127)
+# define INT16_MAX (32767)
+# define INT32_MAX (2147483647)
+# define INT64_MAX (__INT64_C(9223372036854775807))
+
+/* Maximum of unsigned integral types. */
+# define UINT8_MAX (255)
+# define UINT16_MAX (65535)
+# define UINT32_MAX (4294967295U)
+# define UINT64_MAX (__UINT64_C(18446744073709551615))
+
+
+/* Minimum of signed integral types having a minimum size. */
+# define INT_LEAST8_MIN (-128)
+# define INT_LEAST16_MIN (-32767-1)
+# define INT_LEAST32_MIN (-2147483647-1)
+# define INT_LEAST64_MIN (-__INT64_C(9223372036854775807)-1)
+/* Maximum of signed integral types having a minimum size. */
+# define INT_LEAST8_MAX (127)
+# define INT_LEAST16_MAX (32767)
+# define INT_LEAST32_MAX (2147483647)
+# define INT_LEAST64_MAX (__INT64_C(9223372036854775807))
+
+/* Maximum of unsigned integral types having a minimum size. */
+# define UINT_LEAST8_MAX (255)
+# define UINT_LEAST16_MAX (65535)
+# define UINT_LEAST32_MAX (4294967295U)
+# define UINT_LEAST64_MAX (__UINT64_C(18446744073709551615))
+
+
+/* Minimum of fast signed integral types having a minimum size. */
+# define INT_FAST8_MIN (-128)
+# if __WORDSIZE == 64
+# define INT_FAST16_MIN (-9223372036854775807L-1)
+# define INT_FAST32_MIN (-9223372036854775807L-1)
+# else
+# define INT_FAST16_MIN (-2147483647-1)
+# define INT_FAST32_MIN (-2147483647-1)
+# endif
+# define INT_FAST64_MIN (-__INT64_C(9223372036854775807)-1)
+/* Maximum of fast signed integral types having a minimum size. */
+# define INT_FAST8_MAX (127)
+# if __WORDSIZE == 64
+# define INT_FAST16_MAX (9223372036854775807L)
+# define INT_FAST32_MAX (9223372036854775807L)
+# else
+# define INT_FAST16_MAX (2147483647)
+# define INT_FAST32_MAX (2147483647)
+# endif
+# define INT_FAST64_MAX (__INT64_C(9223372036854775807))
+
+/* Maximum of fast unsigned integral types having a minimum size. */
+# define UINT_FAST8_MAX (255)
+# if __WORDSIZE == 64
+# define UINT_FAST16_MAX (18446744073709551615UL)
+# define UINT_FAST32_MAX (18446744073709551615UL)
+# else
+# define UINT_FAST16_MAX (4294967295U)
+# define UINT_FAST32_MAX (4294967295U)
+# endif
+# define UINT_FAST64_MAX (__UINT64_C(18446744073709551615))
+
+
+/* Values to test for integral types holding `void *' pointer. */
+# if __WORDSIZE == 64
+# define INTPTR_MIN (-9223372036854775807L-1)
+# define INTPTR_MAX (9223372036854775807L)
+# define UINTPTR_MAX (18446744073709551615UL)
+# else
+# define INTPTR_MIN (-2147483647-1)
+# define INTPTR_MAX (2147483647)
+# define UINTPTR_MAX (4294967295U)
+# endif
+
+
+/* Minimum for largest signed integral type. */
+# define INTMAX_MIN (-__INT64_C(9223372036854775807)-1)
+/* Maximum for largest signed integral type. */
+# define INTMAX_MAX (__INT64_C(9223372036854775807))
+
+/* Maximum for largest unsigned integral type. */
+# define UINTMAX_MAX (__UINT64_C(18446744073709551615))
+
+
+/* Limits of other integer types. */
+
+/* Limits of `ptrdiff_t' type. */
+# if __WORDSIZE == 64
+# define PTRDIFF_MIN (-9223372036854775807L-1)
+# define PTRDIFF_MAX (9223372036854775807L)
+# else
+# if __WORDSIZE32_PTRDIFF_LONG
+# define PTRDIFF_MIN (-2147483647L-1)
+# define PTRDIFF_MAX (2147483647L)
+# else
+# define PTRDIFF_MIN (-2147483647-1)
+# define PTRDIFF_MAX (2147483647)
+# endif
+# endif
+
+/* Limits of `sig_atomic_t'. */
+# define SIG_ATOMIC_MIN (-2147483647-1)
+# define SIG_ATOMIC_MAX (2147483647)
+
+/* Limit of `size_t' type. */
+# if __WORDSIZE == 64
+# define SIZE_MAX (18446744073709551615UL)
+# else
+# if __WORDSIZE32_SIZE_ULONG
+# define SIZE_MAX (4294967295UL)
+# else
+# define SIZE_MAX (4294967295U)
+# endif
+# endif
+
+/* Limits of `wchar_t'. */
+# ifndef WCHAR_MIN
+/* These constants might also be defined in <wchar.h>. */
+# define WCHAR_MIN __WCHAR_MIN
+# define WCHAR_MAX __WCHAR_MAX
+# endif
+
+/* Limits of `wint_t'. */
+# define WINT_MIN (0u)
+# define WINT_MAX (4294967295u)
+
+/* Signed. */
+# define INT8_C(c) c
+# define INT16_C(c) c
+# define INT32_C(c) c
+# if __WORDSIZE == 64
+# define INT64_C(c) c ## L
+# else
+# define INT64_C(c) c ## LL
+# endif
+
+/* Unsigned. */
+# define UINT8_C(c) c
+# define UINT16_C(c) c
+# define UINT32_C(c) c ## U
+# if __WORDSIZE == 64
+# define UINT64_C(c) c ## UL
+# else
+# define UINT64_C(c) c ## ULL
+# endif
+
+/* Maximal type. */
+# if __WORDSIZE == 64
+# define INTMAX_C(c) c ## L
+# define UINTMAX_C(c) c ## UL
+# else
+# define INTMAX_C(c) c ## LL
+# define UINTMAX_C(c) c ## ULL
+# endif
+
+#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
+
+# define INT8_WIDTH 8
+# define UINT8_WIDTH 8
+# define INT16_WIDTH 16
+# define UINT16_WIDTH 16
+# define INT32_WIDTH 32
+# define UINT32_WIDTH 32
+# define INT64_WIDTH 64
+# define UINT64_WIDTH 64
+
+# define INT_LEAST8_WIDTH 8
+# define UINT_LEAST8_WIDTH 8
+# define INT_LEAST16_WIDTH 16
+# define UINT_LEAST16_WIDTH 16
+# define INT_LEAST32_WIDTH 32
+# define UINT_LEAST32_WIDTH 32
+# define INT_LEAST64_WIDTH 64
+# define UINT_LEAST64_WIDTH 64
+
+# define INT_FAST8_WIDTH 8
+# define UINT_FAST8_WIDTH 8
+# define INT_FAST16_WIDTH __WORDSIZE
+# define UINT_FAST16_WIDTH __WORDSIZE
+# define INT_FAST32_WIDTH __WORDSIZE
+# define UINT_FAST32_WIDTH __WORDSIZE
+# define INT_FAST64_WIDTH 64
+# define UINT_FAST64_WIDTH 64
+
+# define INTPTR_WIDTH __WORDSIZE
+# define UINTPTR_WIDTH __WORDSIZE
+
+# define INTMAX_WIDTH 64
+# define UINTMAX_WIDTH 64
+
+# define PTRDIFF_WIDTH __WORDSIZE
+# define SIG_ATOMIC_WIDTH 32
+# define SIZE_WIDTH __WORDSIZE
+# define WCHAR_WIDTH 32
+# define WINT_WIDTH 32
+
+#endif
+
+#endif /* stdint.h */
diff --git a/stdlib/stdlib.h b/stdlib/stdlib.h
index 8e23e93557..4bd86ec84d 100644
--- a/stdlib/stdlib.h
+++ b/stdlib/stdlib.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* ISO C99 Standard: 7.20 General utilities <stdlib.h>
@@ -208,7 +208,7 @@ extern unsigned long long int strtoull (const char *__restrict __nptr,
#endif /* ISO C99 or use MISC. */
/* Convert a floating-point number to a string. */
-#if __GLIBC_USE (IEC_60559_BFP_EXT)
+#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
extern int strfromd (char *__dest, size_t __size, const char *__format,
double __f)
__THROW __nonnull ((3));
@@ -536,10 +536,11 @@ extern int lcong48_r (unsigned short int __param[7],
#endif /* Use misc or X/Open. */
/* Allocate SIZE bytes of memory. */
-extern void *malloc (size_t __size) __THROW __attribute_malloc__ __wur;
+extern void *malloc (size_t __size) __THROW __attribute_malloc__
+ __attribute_alloc_size__ ((1)) __wur;
/* Allocate NMEMB elements of SIZE bytes each, all initialized to 0. */
extern void *calloc (size_t __nmemb, size_t __size)
- __THROW __attribute_malloc__ __wur;
+ __THROW __attribute_malloc__ __attribute_alloc_size__ ((1, 2)) __wur;
/* Re-allocate the previously allocated block
in PTR, making the new block SIZE bytes long. */
@@ -547,16 +548,17 @@ extern void *calloc (size_t __nmemb, size_t __size)
the same pointer that was passed to it, aliasing needs to be allowed
between objects pointed by the old and new pointers. */
extern void *realloc (void *__ptr, size_t __size)
- __THROW __attribute_warn_unused_result__;
+ __THROW __attribute_warn_unused_result__ __attribute_alloc_size__ ((2));
-#ifdef __USE_GNU
+#ifdef __USE_MISC
/* Re-allocate the previously allocated block in PTR, making the new
block large enough for NMEMB elements of SIZE bytes each. */
/* __attribute_malloc__ is not used, because if reallocarray returns
the same pointer that was passed to it, aliasing needs to be allowed
between objects pointed by the old and new pointers. */
extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size)
- __THROW __attribute_warn_unused_result__;
+ __THROW __attribute_warn_unused_result__
+ __attribute_alloc_size__ ((2, 3));
#endif
/* Free a block allocated by `malloc', `realloc' or `calloc'. */
@@ -569,7 +571,8 @@ extern void free (void *__ptr) __THROW;
#if (defined __USE_XOPEN_EXTENDED && !defined __USE_XOPEN2K) \
|| defined __USE_MISC
/* Allocate SIZE bytes on a page boundary. The storage cannot be freed. */
-extern void *valloc (size_t __size) __THROW __attribute_malloc__ __wur;
+extern void *valloc (size_t __size) __THROW __attribute_malloc__
+ __attribute_alloc_size__ ((1)) __wur;
#endif
#ifdef __USE_XOPEN2K
diff --git a/stdlib/strfmon.c b/stdlib/strfmon.c
index 01980d3e15..26566905aa 100644
--- a/stdlib/strfmon.c
+++ b/stdlib/strfmon.c
@@ -1,5 +1,5 @@
/* Formatting a monetary value according to the current locale.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>
and Jochen Hein <Jochen.Hein@informatik.TU-Clausthal.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <monetary.h>
#include <stdarg.h>
@@ -30,7 +30,8 @@ __strfmon (char *s, size_t maxsize, const char *format, ...)
va_start (ap, format);
- ssize_t res = __vstrfmon_l (s, maxsize, _NL_CURRENT_LOCALE, format, ap);
+ ssize_t res = __vstrfmon_l_internal (s, maxsize, _NL_CURRENT_LOCALE,
+ format, ap, 0);
va_end (ap);
diff --git a/stdlib/strfmon_l.c b/stdlib/strfmon_l.c
index cd3796ced9..b6b3ba5396 100644
--- a/stdlib/strfmon_l.c
+++ b/stdlib/strfmon_l.c
@@ -1,5 +1,5 @@
/* Formatting a monetary value according to the given locale.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <errno.h>
@@ -29,6 +29,7 @@
#include <stdio.h>
#include <string.h>
#include "../locale/localeinfo.h"
+#include <bits/floatn.h>
#define out_char(Ch) \
@@ -76,8 +77,8 @@
too. Some of the information contradicts the information which can
be specified in format string. */
ssize_t
-__vstrfmon_l (char *s, size_t maxsize, locale_t loc, const char *format,
- va_list ap)
+__vstrfmon_l_internal (char *s, size_t maxsize, locale_t loc,
+ const char *format, va_list ap, unsigned int flags)
{
struct __locale_data *current = loc->__locales[LC_MONETARY];
_IO_strfile f;
@@ -96,6 +97,9 @@ __vstrfmon_l (char *s, size_t maxsize, locale_t loc, const char *format,
{
double dbl;
long double ldbl;
+#if __HAVE_DISTINCT_FLOAT128
+ _Float128 f128;
+#endif
}
fpnum;
int int_format;
@@ -106,6 +110,7 @@ __vstrfmon_l (char *s, size_t maxsize, locale_t loc, const char *format,
int group;
char pad;
int is_long_double;
+ int is_binary128;
int p_sign_posn;
int n_sign_posn;
int sign_posn;
@@ -150,6 +155,7 @@ __vstrfmon_l (char *s, size_t maxsize, locale_t loc, const char *format,
group = 1; /* Print digits grouped. */
pad = ' '; /* Fill character is <SP>. */
is_long_double = 0; /* Double argument by default. */
+ is_binary128 = 0; /* Long double argument by default. */
p_sign_posn = -2; /* This indicates whether the */
n_sign_posn = -2; /* '(' flag is given. */
width = -1; /* No width specified so far. */
@@ -268,8 +274,12 @@ __vstrfmon_l (char *s, size_t maxsize, locale_t loc, const char *format,
if (*fmt == 'L')
{
++fmt;
- if (!__ldbl_is_dbl)
+ if (__glibc_likely ((flags & STRFMON_LDBL_IS_DBL) == 0))
is_long_double = 1;
+#if __HAVE_DISTINCT_FLOAT128
+ if (__glibc_likely ((flags & STRFMON_LDBL_USES_FLOAT128) != 0))
+ is_binary128 = is_long_double;
+#endif
}
/* Handle format specifier. */
@@ -324,10 +334,22 @@ __vstrfmon_l (char *s, size_t maxsize, locale_t loc, const char *format,
/* Now it's time to get the value. */
if (is_long_double == 1)
{
- fpnum.ldbl = va_arg (ap, long double);
- is_negative = fpnum.ldbl < 0;
- if (is_negative)
- fpnum.ldbl = -fpnum.ldbl;
+#if __HAVE_DISTINCT_FLOAT128
+ if (is_binary128 == 1)
+ {
+ fpnum.f128 = va_arg (ap, _Float128);
+ is_negative = fpnum.f128 < 0;
+ if (is_negative)
+ fpnum.f128 = -fpnum.f128;
+ }
+ else
+#endif
+ {
+ fpnum.ldbl = va_arg (ap, long double);
+ is_negative = fpnum.ldbl < 0;
+ if (is_negative)
+ fpnum.ldbl = -fpnum.ldbl;
+ }
}
else
{
@@ -386,17 +408,17 @@ __vstrfmon_l (char *s, size_t maxsize, locale_t loc, const char *format,
/* Check for degenerate cases */
if (sep_by_space == 2)
{
- if (sign_posn == 0 ||
- (sign_posn == 1 && !cs_precedes) ||
- (sign_posn == 2 && cs_precedes))
+ if (sign_posn == 0
+ || (sign_posn == 1 && !cs_precedes)
+ || (sign_posn == 2 && cs_precedes))
/* sign and symbol are not adjacent, so no separator */
sep_by_space = 0;
}
if (other_sep_by_space == 2)
{
- if (other_sign_posn == 0 ||
- (other_sign_posn == 1 && !other_cs_precedes) ||
- (other_sign_posn == 2 && other_cs_precedes))
+ if (other_sign_posn == 0
+ || (other_sign_posn == 1 && !other_cs_precedes)
+ || (other_sign_posn == 2 && other_cs_precedes))
/* sign and symbol are not adjacent, so no separator */
other_sep_by_space = 0;
}
@@ -444,8 +466,8 @@ __vstrfmon_l (char *s, size_t maxsize, locale_t loc, const char *format,
++other_left_bytes;
else if (other_sign_posn == 1)
other_left_bytes += strlen (other_sign_string);
- else if (other_cs_precedes &&
- (other_sign_posn == 3 || other_sign_posn == 4))
+ else if (other_cs_precedes
+ && (other_sign_posn == 3 || other_sign_posn == 4))
other_left_bytes += strlen (other_sign_string);
/* Compare the number of bytes preceding the value for
@@ -517,6 +539,7 @@ __vstrfmon_l (char *s, size_t maxsize, locale_t loc, const char *format,
info.width = left_prec + (right_prec ? (right_prec + 1) : 0);
info.spec = 'f';
info.is_long_double = is_long_double;
+ info.is_binary128 = is_binary128;
info.group = group;
info.pad = pad;
info.extra = 1; /* This means use values from LC_MONETARY. */
@@ -608,7 +631,7 @@ ___strfmon_l (char *s, size_t maxsize, locale_t loc, const char *format, ...)
va_start (ap, format);
- ssize_t res = __vstrfmon_l (s, maxsize, loc, format, ap);
+ ssize_t res = __vstrfmon_l_internal (s, maxsize, loc, format, ap, 0);
va_end (ap);
diff --git a/stdlib/strfrom-skeleton.c b/stdlib/strfrom-skeleton.c
index 2840512cae..a44c774001 100644
--- a/stdlib/strfrom-skeleton.c
+++ b/stdlib/strfrom-skeleton.c
@@ -1,5 +1,5 @@
/* Convert a floating-point number to string.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Generic implementation for strfrom functions. The implementation is generic
for several floating-point types (e.g.: float, double), so that each
@@ -106,7 +106,7 @@ STRFROM (char *dest, size_t size, const char *format, FLOAT f)
}
/* The following code to prepare the virtual file has been adapted from the
- function _IO_vsnprintf from libio. */
+ function __vsnprintf_internal from libio. */
if (size == 0)
{
diff --git a/stdlib/strfromd.c b/stdlib/strfromd.c
index 932b47e124..7506e2a67e 100644
--- a/stdlib/strfromd.c
+++ b/stdlib/strfromd.c
@@ -1,5 +1,5 @@
/* Definitions for strfromd. Implementation in stdlib/strfrom-skeleton.c.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <bits/floatn.h>
diff --git a/stdlib/strfromf.c b/stdlib/strfromf.c
index 258443c096..027cf8310f 100644
--- a/stdlib/strfromf.c
+++ b/stdlib/strfromf.c
@@ -1,5 +1,5 @@
/* Definitions for strfromf. Implementation in stdlib/strfrom-skeleton.c.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <bits/floatn.h>
diff --git a/stdlib/strfroml.c b/stdlib/strfroml.c
index 3936baf053..926aae61e7 100644
--- a/stdlib/strfroml.c
+++ b/stdlib/strfroml.c
@@ -1,5 +1,5 @@
/* Definitions for strfroml. Implementation in stdlib/strfrom-skeleton.c.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <bits/floatn.h>
diff --git a/stdlib/strtod.c b/stdlib/strtod.c
index 14cb260098..8c54ed7ba9 100644
--- a/stdlib/strtod.c
+++ b/stdlib/strtod.c
@@ -1,6 +1,6 @@
/* Read decimal floating point numbers.
This file is part of the GNU C Library.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 Free Software Foundation, Inc.
Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <bits/floatn.h>
diff --git a/stdlib/strtod_l.c b/stdlib/strtod_l.c
index cbff18b49d..b4df0de58d 100644
--- a/stdlib/strtod_l.c
+++ b/stdlib/strtod_l.c
@@ -1,5 +1,5 @@
/* Convert string representing a number to float value, using given locale.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <bits/floatn.h>
@@ -280,11 +280,12 @@ round_and_return (mp_limb_t *retval, intmax_t exponent, int negative,
mp_limb_t cy = __mpn_add_1 (retval_normal, retval,
RETURN_LIMB_SIZE, 1);
- if (((MANT_DIG % BITS_PER_MP_LIMB) == 0 && cy) ||
- ((MANT_DIG % BITS_PER_MP_LIMB) != 0 &&
- ((retval_normal[RETURN_LIMB_SIZE - 1]
- & (((mp_limb_t) 1) << (MANT_DIG % BITS_PER_MP_LIMB)))
- != 0)))
+ if (((MANT_DIG % BITS_PER_MP_LIMB) == 0 && cy)
+ || ((MANT_DIG % BITS_PER_MP_LIMB) != 0
+ && ((retval_normal[RETURN_LIMB_SIZE - 1]
+ & (((mp_limb_t) 1)
+ << (MANT_DIG % BITS_PER_MP_LIMB)))
+ != 0)))
is_tiny = false;
}
}
@@ -325,10 +326,10 @@ round_and_return (mp_limb_t *retval, intmax_t exponent, int negative,
{
mp_limb_t cy = __mpn_add_1 (retval, retval, RETURN_LIMB_SIZE, 1);
- if (((MANT_DIG % BITS_PER_MP_LIMB) == 0 && cy) ||
- ((MANT_DIG % BITS_PER_MP_LIMB) != 0 &&
- (retval[RETURN_LIMB_SIZE - 1]
- & (((mp_limb_t) 1) << (MANT_DIG % BITS_PER_MP_LIMB))) != 0))
+ if (((MANT_DIG % BITS_PER_MP_LIMB) == 0 && cy)
+ || ((MANT_DIG % BITS_PER_MP_LIMB) != 0
+ && (retval[RETURN_LIMB_SIZE - 1]
+ & (((mp_limb_t) 1) << (MANT_DIG % BITS_PER_MP_LIMB))) != 0))
{
++exponent;
(void) __mpn_rshift (retval, retval, RETURN_LIMB_SIZE, 1);
@@ -861,9 +862,9 @@ ____STRTOF_INTERNAL (const STRING_TYPE *nptr, STRING_TYPE **endptr, int group,
{
cp += decimal_len;
c = *cp;
- while ((c >= L_('0') && c <= L_('9')) ||
- (base == 16 && ({ CHAR_TYPE lo = TOLOWER (c);
- lo >= L_('a') && lo <= L_('f'); })))
+ while ((c >= L_('0') && c <= L_('9'))
+ || (base == 16 && ({ CHAR_TYPE lo = TOLOWER (c);
+ lo >= L_('a') && lo <= L_('f'); })))
{
if (c != L_('0') && lead_zero == (size_t) -1)
lead_zero = dig_no - int_no;
diff --git a/stdlib/strtod_nan.c b/stdlib/strtod_nan.c
index c5876b59a0..49bc601a46 100644
--- a/stdlib/strtod_nan.c
+++ b/stdlib/strtod_nan.c
@@ -1,6 +1,6 @@
/* Convert string for NaN payload to corresponding NaN. Narrow
strings, double.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <strtod_nan_narrow.h>
#include <math-type-macros-double.h>
diff --git a/stdlib/strtod_nan_main.c b/stdlib/strtod_nan_main.c
index 80ecb78572..508d2e2a51 100644
--- a/stdlib/strtod_nan_main.c
+++ b/stdlib/strtod_nan_main.c
@@ -1,5 +1,5 @@
/* Convert string for NaN payload to corresponding NaN.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ieee754.h>
#include <locale.h>
diff --git a/stdlib/strtod_nan_narrow.h b/stdlib/strtod_nan_narrow.h
index e411192283..a0f05ed680 100644
--- a/stdlib/strtod_nan_narrow.h
+++ b/stdlib/strtod_nan_narrow.h
@@ -1,5 +1,5 @@
/* Convert string for NaN payload to corresponding NaN. Narrow strings.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define STRING_TYPE char
#define L_(Ch) Ch
diff --git a/stdlib/strtod_nan_wide.h b/stdlib/strtod_nan_wide.h
index 13b526cf79..bd35f8ddad 100644
--- a/stdlib/strtod_nan_wide.h
+++ b/stdlib/strtod_nan_wide.h
@@ -1,5 +1,5 @@
/* Convert string for NaN payload to corresponding NaN. Wide strings.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define STRING_TYPE wchar_t
#define L_(Ch) L##Ch
diff --git a/stdlib/strtof.c b/stdlib/strtof.c
index f23696c7f0..ee3fe3fe28 100644
--- a/stdlib/strtof.c
+++ b/stdlib/strtof.c
@@ -1,6 +1,6 @@
/* Read decimal floating point numbers.
This file is part of the GNU C Library.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 Free Software Foundation, Inc.
Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* The actual implementation for all floating point sizes is in strtod.c.
These macros tell it to produce the `float' version, `strtof'. */
diff --git a/stdlib/strtof_l.c b/stdlib/strtof_l.c
index 2390baac2c..b0d4c48d5c 100644
--- a/stdlib/strtof_l.c
+++ b/stdlib/strtof_l.c
@@ -1,5 +1,5 @@
/* Convert string representing a number to float value, using given locale.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <bits/floatn.h>
diff --git a/stdlib/strtof_nan.c b/stdlib/strtof_nan.c
index f085c5b4fb..0ee14fc21e 100644
--- a/stdlib/strtof_nan.c
+++ b/stdlib/strtof_nan.c
@@ -1,6 +1,6 @@
/* Convert string for NaN payload to corresponding NaN. Narrow
strings, float.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <strtod_nan_narrow.h>
#include <math-type-macros-float.h>
diff --git a/stdlib/strtol.c b/stdlib/strtol.c
index d5d6da4137..9c40d1f255 100644
--- a/stdlib/strtol.c
+++ b/stdlib/strtol.c
@@ -1,5 +1,5 @@
/* Convert string representation of a number into an integer value.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include <wchar.h>
diff --git a/stdlib/strtol_l.c b/stdlib/strtol_l.c
index cfd9c83f98..4b08d6f06f 100644
--- a/stdlib/strtol_l.c
+++ b/stdlib/strtol_l.c
@@ -1,5 +1,5 @@
/* Convert string representing a number to integer value, using given locale.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if HAVE_CONFIG_H
diff --git a/stdlib/strtold.c b/stdlib/strtold.c
index 6a4e42812e..9c7a00f6ac 100644
--- a/stdlib/strtold.c
+++ b/stdlib/strtold.c
@@ -1,6 +1,6 @@
/* Read decimal floating point numbers.
This file is part of the GNU C Library.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 Free Software Foundation, Inc.
Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* The actual implementation for all floating point sizes is in strtod.c.
These macros tell it to produce the `float' version, `strtof'. */
diff --git a/stdlib/strtold_l.c b/stdlib/strtold_l.c
index 3e9789f712..ba490ab946 100644
--- a/stdlib/strtold_l.c
+++ b/stdlib/strtold_l.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <stdlib.h>
diff --git a/stdlib/strtold_nan.c b/stdlib/strtold_nan.c
index eadfe546e2..da61cbb794 100644
--- a/stdlib/strtold_nan.c
+++ b/stdlib/strtold_nan.c
@@ -1,6 +1,6 @@
/* Convert string for NaN payload to corresponding NaN. Narrow
strings, long double.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/stdlib/strtoll.c b/stdlib/strtoll.c
index e478e9ebc9..9759a78fae 100644
--- a/stdlib/strtoll.c
+++ b/stdlib/strtoll.c
@@ -1,5 +1,5 @@
/* Function to parse a `long long int' from text.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define QUAD 1
diff --git a/stdlib/strtoll_l.c b/stdlib/strtoll_l.c
index 066ef76fd2..35674d54fe 100644
--- a/stdlib/strtoll_l.c
+++ b/stdlib/strtoll_l.c
@@ -1,5 +1,5 @@
/* Convert string representing a number to integer value, using given locale.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define QUAD 1
diff --git a/stdlib/strtoul.c b/stdlib/strtoul.c
index 9647e7603a..5fd614dcad 100644
--- a/stdlib/strtoul.c
+++ b/stdlib/strtoul.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define UNSIGNED 1
diff --git a/stdlib/strtoul_l.c b/stdlib/strtoul_l.c
index 9c1348f4b7..96f182ecff 100644
--- a/stdlib/strtoul_l.c
+++ b/stdlib/strtoul_l.c
@@ -1,5 +1,5 @@
/* Convert string representing a number to integer value, using given locale.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define UNSIGNED 1
diff --git a/stdlib/strtoull.c b/stdlib/strtoull.c
index 57feea9383..b66d42fda7 100644
--- a/stdlib/strtoull.c
+++ b/stdlib/strtoull.c
@@ -1,5 +1,5 @@
/* Function to parse an `unsigned long long int' from text.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define QUAD 1
diff --git a/stdlib/strtoull_l.c b/stdlib/strtoull_l.c
index cf29b96545..b3b406838b 100644
--- a/stdlib/strtoull_l.c
+++ b/stdlib/strtoull_l.c
@@ -1,5 +1,5 @@
/* Convert string representing a number to integer value, using given locale.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define QUAD 1
#define UNSIGNED 1
diff --git a/stdlib/sub_n.c b/stdlib/sub_n.c
index 23f3b6d8ee..1f376c5452 100644
--- a/stdlib/sub_n.c
+++ b/stdlib/sub_n.c
@@ -1,6 +1,6 @@
/* mpn_sub_n -- Subtract two limb vectors of equal, non-zero length.
-Copyright (C) 1992-2018 Free Software Foundation, Inc.
+Copyright (C) 1992-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -16,7 +16,7 @@ License for more details.
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not, see
-<http://www.gnu.org/licenses/>. */
+<https://www.gnu.org/licenses/>. */
#include <gmp.h>
#include "gmp-impl.h"
diff --git a/stdlib/submul_1.c b/stdlib/submul_1.c
index 9f778dce6b..23ee6f4ab9 100644
--- a/stdlib/submul_1.c
+++ b/stdlib/submul_1.c
@@ -3,7 +3,7 @@
from the limb vector pointed to by RES_PTR. Return the most significant
limb of the product, adjusted for carry-out from the subtraction.
-Copyright (C) 1992-2018 Free Software Foundation, Inc.
+Copyright (C) 1992-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -19,7 +19,7 @@ License for more details.
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not, see
-<http://www.gnu.org/licenses/>. */
+<https://www.gnu.org/licenses/>. */
#include <gmp.h>
#include "gmp-impl.h"
diff --git a/stdlib/swapcontext.c b/stdlib/swapcontext.c
index d8f272335c..a6fbebc2e4 100644
--- a/stdlib/swapcontext.c
+++ b/stdlib/swapcontext.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <ucontext.h>
diff --git a/stdlib/sys/random.h b/stdlib/sys/random.h
index 056312ca3b..c676d527b6 100644
--- a/stdlib/sys/random.h
+++ b/stdlib/sys/random.h
@@ -1,5 +1,5 @@
/* Interfaces for obtaining random bytes.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_RANDOM_H
#define _SYS_RANDOM_H 1
diff --git a/stdlib/system.c b/stdlib/system.c
index 361c4cf914..5fc6bd58b3 100644
--- a/stdlib/system.c
+++ b/stdlib/system.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdlib.h>
diff --git a/stdlib/test-a64l.c b/stdlib/test-a64l.c
index 8eb3e09b88..adfb416a9c 100644
--- a/stdlib/test-a64l.c
+++ b/stdlib/test-a64l.c
@@ -1,5 +1,5 @@
/* Test program for the l64a and a64l functions.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@suse.de>.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
diff --git a/stdlib/test-at_quick_exit-race.c b/stdlib/test-at_quick_exit-race.c
index b98f9a865c..a36b2f9624 100644
--- a/stdlib/test-at_quick_exit-race.c
+++ b/stdlib/test-at_quick_exit-race.c
@@ -1,6 +1,6 @@
/* Bug 14333: a test for at_quick_exit/quick_exit race.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file must be run from within a directory called "stdlib". */
diff --git a/stdlib/test-atexit-race-common.c b/stdlib/test-atexit-race-common.c
index 63bde390b4..cee6d9e30b 100644
--- a/stdlib/test-atexit-race-common.c
+++ b/stdlib/test-atexit-race-common.c
@@ -1,5 +1,5 @@
/* Bug 14333: Support file for atexit/exit, etc. race tests.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file must be run from within a directory called "stdlib". */
diff --git a/stdlib/test-atexit-race.c b/stdlib/test-atexit-race.c
index 5b876aeb42..497581c6ea 100644
--- a/stdlib/test-atexit-race.c
+++ b/stdlib/test-atexit-race.c
@@ -1,5 +1,5 @@
/* Bug 14333: a test for atexit/exit race.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file must be run from within a directory called "stdlib". */
diff --git a/stdlib/test-bz22786.c b/stdlib/test-bz22786.c
index e7837f98c1..a0569cb54d 100644
--- a/stdlib/test-bz22786.c
+++ b/stdlib/test-bz22786.c
@@ -1,5 +1,5 @@
/* Bug 22786: test for buffer overflow in realpath.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file must be run from within a directory called "stdlib". */
@@ -26,49 +26,39 @@
#include <unistd.h>
#include <sys/stat.h>
#include <sys/types.h>
+#include <support/blob_repeat.h>
+#include <support/check.h>
+#include <support/support.h>
+#include <support/temp_file.h>
#include <support/test-driver.h>
#include <libc-diag.h>
static int
do_test (void)
{
- const char dir[] = "bz22786";
- const char lnk[] = "bz22786/symlink";
-
- rmdir (dir);
- if (mkdir (dir, 0755) != 0 && errno != EEXIST)
- {
- printf ("mkdir %s: %m\n", dir);
- return EXIT_FAILURE;
- }
- if (symlink (".", lnk) != 0 && errno != EEXIST)
- {
- printf ("symlink (%s, %s): %m\n", dir, lnk);
- return EXIT_FAILURE;
- }
-
- const size_t path_len = (size_t) INT_MAX + 1;
-
- DIAG_PUSH_NEEDS_COMMENT;
-#if __GNUC_PREREQ (7, 0)
- /* GCC 7 warns about too-large allocations; here we need such
- allocation to succeed for the test to work. */
- DIAG_IGNORE_NEEDS_COMMENT (7, "-Walloc-size-larger-than=");
-#endif
- char *path = malloc (path_len);
- DIAG_POP_NEEDS_COMMENT;
+ char *dir = support_create_temp_directory ("bz22786.");
+ char *lnk = xasprintf ("%s/symlink", dir);
+ const size_t path_len = (size_t) INT_MAX + strlen (lnk) + 1;
+ struct support_blob_repeat repeat
+ = support_blob_repeat_allocate ("a", 1, path_len);
+ char *path = repeat.start;
if (path == NULL)
{
- printf ("malloc (%zu): %m\n", path_len);
+ printf ("Repeated allocation (%zu bytes): %m\n", path_len);
+ /* On 31-bit s390 the malloc will always fail as we do not have
+ so much memory, and we want to mark the test unsupported.
+ Likewise on systems with little physical memory the test will
+ fail and should be unsupported. */
return EXIT_UNSUPPORTED;
}
- /* Construct very long path = "bz22786/symlink/aaaa....." */
- char *p = mempcpy (path, lnk, sizeof (lnk) - 1);
+ TEST_VERIFY_EXIT (symlink (".", lnk) == 0);
+
+ /* Construct very long path = "/tmp/bz22786.XXXX/symlink/aaaa....." */
+ char *p = mempcpy (path, lnk, strlen (lnk));
*(p++) = '/';
- memset (p, 'a', path_len - (path - p) - 2);
- p[path_len - (path - p) - 1] = '\0';
+ p[path_len - (p - path) - 1] = '\0';
/* This call crashes before the fix for bz22786 on 32-bit platforms. */
p = realpath (path, NULL);
@@ -81,7 +71,9 @@ do_test (void)
/* Cleanup. */
unlink (lnk);
- rmdir (dir);
+ support_blob_repeat_free (&repeat);
+ free (lnk);
+ free (dir);
return 0;
}
diff --git a/stdlib/test-canon.c b/stdlib/test-canon.c
index ae78e10305..35e866537b 100644
--- a/stdlib/test-canon.c
+++ b/stdlib/test-canon.c
@@ -1,5 +1,5 @@
/* Test program for returning the canonical absolute name of a given file.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Mosberger <davidm@azstarnet.com>.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file must be run from within a directory called "stdlib". */
@@ -124,7 +124,7 @@ do_test (int argc, char ** argv)
int i, errors = 0;
char buf[PATH_MAX];
- getcwd (cwd, sizeof(buf));
+ getcwd (cwd, sizeof (buf));
cwd_len = strlen (cwd);
errno = 0;
@@ -204,7 +204,7 @@ do_test (int argc, char ** argv)
free (result2);
}
- getcwd (buf, sizeof(buf));
+ getcwd (buf, sizeof (buf));
if (strcmp (buf, cwd))
{
printf ("%s: current working directory changed from %s to %s\n",
diff --git a/stdlib/test-canon2.c b/stdlib/test-canon2.c
index 1b1234d38e..635d9c08f9 100644
--- a/stdlib/test-canon2.c
+++ b/stdlib/test-canon2.c
@@ -1,5 +1,5 @@
/* Test for realpath/canonicalize function.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <string.h>
diff --git a/stdlib/test-cxa_atexit-race.c b/stdlib/test-cxa_atexit-race.c
index 73c1e1e128..6f7a34dca4 100644
--- a/stdlib/test-cxa_atexit-race.c
+++ b/stdlib/test-cxa_atexit-race.c
@@ -1,5 +1,5 @@
/* Bug 14333: a test for __cxa_atexit/exit race.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file must be run from within a directory called "stdlib". */
diff --git a/stdlib/test-dlclose-exit-race-helper.c b/stdlib/test-dlclose-exit-race-helper.c
index 0a09fc3efc..a590126f32 100644
--- a/stdlib/test-dlclose-exit-race-helper.c
+++ b/stdlib/test-dlclose-exit-race-helper.c
@@ -1,5 +1,5 @@
/* Helper for exit/dlclose race test (Bug 22180).
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdbool.h>
diff --git a/stdlib/test-dlclose-exit-race.c b/stdlib/test-dlclose-exit-race.c
index 4eac20b6d0..5025074063 100644
--- a/stdlib/test-dlclose-exit-race.c
+++ b/stdlib/test-dlclose-exit-race.c
@@ -1,5 +1,5 @@
/* Test for exit/dlclose race (Bug 22180).
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file must be run from within a directory called "stdlib". */
diff --git a/stdlib/test-on_exit-race.c b/stdlib/test-on_exit-race.c
index 8149f1225d..bed19a32cd 100644
--- a/stdlib/test-on_exit-race.c
+++ b/stdlib/test-on_exit-race.c
@@ -1,5 +1,5 @@
/* Bug 14333: a test for on_exit/exit race.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file must be run from within a directory called "stdlib". */
diff --git a/stdlib/testdiv.c b/stdlib/testdiv.c
index 967cc154d9..52c7d24297 100644
--- a/stdlib/testdiv.c
+++ b/stdlib/testdiv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include <stdio.h>
diff --git a/stdlib/testmb2.c b/stdlib/testmb2.c
index 3a3e354629..16d2846d23 100644
--- a/stdlib/testmb2.c
+++ b/stdlib/testmb2.c
@@ -1,4 +1,4 @@
-/* Test case by Miloslav Trmac <mitr@volny.cz>. */
+/* Test case by Miloslav TrmaÄ <mitr@volny.cz>. */
#include <locale.h>
#include <stdint.h>
#include <stdlib.h>
diff --git a/stdlib/testrand.c b/stdlib/testrand.c
index 1220d41f4f..fa20dc60cb 100644
--- a/stdlib/testrand.c
+++ b/stdlib/testrand.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include <stdio.h>
diff --git a/stdlib/tst-at_quick_exit.c b/stdlib/tst-at_quick_exit.c
index 6c6e889e38..41a795e81f 100644
--- a/stdlib/tst-at_quick_exit.c
+++ b/stdlib/tst-at_quick_exit.c
@@ -1,5 +1,5 @@
/* Verify functions registered via at_auick_exit run in LIFO order.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define ATEXIT(fn) at_quick_exit (fn)
#define EXIT(x) quick_exit (x)
diff --git a/stdlib/tst-atexit-common.c b/stdlib/tst-atexit-common.c
index 95468cf117..91d8e5b5dc 100644
--- a/stdlib/tst-atexit-common.c
+++ b/stdlib/tst-atexit-common.c
@@ -1,5 +1,5 @@
/* Helper file for tst-{atexit,at_quick_exit,cxa_atexit,on_exit}.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <stdio.h>
diff --git a/stdlib/tst-atexit.c b/stdlib/tst-atexit.c
index 957c2e2685..cb0535cfd4 100644
--- a/stdlib/tst-atexit.c
+++ b/stdlib/tst-atexit.c
@@ -1,5 +1,5 @@
/* Verify functions registered via atexit run in LIFO order.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define ATEXIT(fn) atexit (fn)
#define EXIT(x) exit (x)
diff --git a/stdlib/tst-bsearch.c b/stdlib/tst-bsearch.c
index 86cf2d7d3b..f5390e62bb 100644
--- a/stdlib/tst-bsearch.c
+++ b/stdlib/tst-bsearch.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
diff --git a/stdlib/tst-bz20544.c b/stdlib/tst-bz20544.c
new file mode 100644
index 0000000000..b59f8e6954
--- /dev/null
+++ b/stdlib/tst-bz20544.c
@@ -0,0 +1,115 @@
+/* Verify atexit, on_exit, etc. abort on NULL function pointer.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+
+#include <assert.h>
+#include <signal.h>
+#include <stdlib.h>
+#include <string.h>
+#include <support/capture_subprocess.h>
+#include <support/check.h>
+#include <support/support.h>
+#include <support/test-driver.h>
+
+extern int __cxa_atexit (void (*func) (void *), void *arg, void *d);
+extern int __cxa_at_quick_exit (void (*func) (void *), void *arg, void *d);
+
+/* GCC "knows" that atexit and on_exit should not be called with NULL
+ function pointer, and emits diagnostics if we try to do so.
+ Presumably it could emit a trap and drop the call altogether.
+
+ The aliases below are intended to bypass this. */
+
+extern int atexit_alias (void (*) (void)) __asm__ ("atexit");
+extern int at_quick_exit_alias (void (*) (void)) __asm__ ("at_quick_exit");
+extern int on_exit_alias (void (*) (void), void *) __asm__ ("on_exit");
+
+
+static void
+test_bz20544_atexit (void *closure)
+{
+ atexit_alias (NULL); /* Should assert. */
+ exit (EXIT_FAILURE);
+}
+
+static void
+test_bz20544_at_quick_exit (void *closure)
+{
+ at_quick_exit_alias (NULL); /* Should assert. */
+ exit (EXIT_FAILURE);
+}
+
+static void
+test_bz20544_on_exit (void *closure)
+{
+ on_exit_alias (NULL, NULL); /* Should assert. */
+ exit (EXIT_FAILURE);
+}
+
+static void
+test_bz20544_cxa_atexit (void *closure)
+{
+ __cxa_atexit (NULL, NULL, NULL); /* Should assert. */
+ exit (EXIT_FAILURE);
+}
+
+static void
+test_bz20544_cxa_at_quick_exit (void *closure)
+{
+ __cxa_at_quick_exit (NULL, NULL, NULL); /* Should assert. */
+ exit (EXIT_FAILURE);
+}
+
+static void
+test_one_fn (void (*test_fn) (void *))
+{
+ const char expected_error[] = "Assertion `func != NULL' failed.\n";
+ struct support_capture_subprocess result;
+ result = support_capture_subprocess (test_fn, NULL);
+ support_capture_subprocess_check (&result, "bz20544", -SIGABRT,
+ sc_allow_stderr);
+
+ if (strstr (result.err.buffer, expected_error) == NULL)
+ {
+ support_record_failure ();
+ printf ("Did not find expected string in error output:\n"
+ " expected: >>>%s<<<\n"
+ " actual: >>>%s<<<\n",
+ expected_error, result.err.buffer);
+ }
+
+ support_capture_subprocess_free (&result);
+}
+
+static int
+do_test (void)
+{
+#if defined (NDEBUG)
+ FAIL_UNSUPPORTED ("Assertions disabled (NDEBUG). "
+ "Can't verify that assertions fire.");
+#endif
+ test_one_fn (test_bz20544_atexit);
+ test_one_fn (test_bz20544_at_quick_exit);
+ test_one_fn (test_bz20544_on_exit);
+ test_one_fn (test_bz20544_cxa_atexit);
+ test_one_fn (test_bz20544_cxa_at_quick_exit);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/stdlib/tst-cxa_atexit.c b/stdlib/tst-cxa_atexit.c
index ada4cd8c0a..002070f329 100644
--- a/stdlib/tst-cxa_atexit.c
+++ b/stdlib/tst-cxa_atexit.c
@@ -1,5 +1,5 @@
/* Verify functions registered via __cxa_atexit run in LIFO order.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
extern int __cxa_atexit (void (*func) (void *), void *arg, void *d);
diff --git a/stdlib/tst-empty-env.c b/stdlib/tst-empty-env.c
index f5168f898e..27a328e1da 100644
--- a/stdlib/tst-empty-env.c
+++ b/stdlib/tst-empty-env.c
@@ -1,6 +1,6 @@
/* Test that passing a NULL value does not hang environment traversal in
tunables.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* The test is useful only when the source is configured with
--enable-hardcoded-path-in-tests since otherwise the execve just picks up
@@ -53,6 +53,5 @@ do_test (int argc, char **argv)
return 1;
}
-#define TIMEOUT 3
#define TEST_FUNCTION_ARGV do_test
#include <support/test-driver.c>
diff --git a/stdlib/tst-environ.c b/stdlib/tst-environ.c
index ffbb518b2e..87000cf61c 100644
--- a/stdlib/tst-environ.c
+++ b/stdlib/tst-environ.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdio.h>
diff --git a/stdlib/tst-fmtmsg.sh b/stdlib/tst-fmtmsg.sh
index 1dd452d35a..1005611a53 100755
--- a/stdlib/tst-fmtmsg.sh
+++ b/stdlib/tst-fmtmsg.sh
@@ -1,6 +1,6 @@
#!/bin/sh
# Test of fmtmsg function family.
-# Copyright (C) 2000-2018 Free Software Foundation, Inc.
+# Copyright (C) 2000-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
@@ -15,7 +15,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
set -e
diff --git a/stdlib/tst-getrandom.c b/stdlib/tst-getrandom.c
index 2b10498a08..8e1d61d590 100644
--- a/stdlib/tst-getrandom.c
+++ b/stdlib/tst-getrandom.c
@@ -1,5 +1,5 @@
/* Tests for the getentropy, getrandom functions.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdbool.h>
diff --git a/stdlib/tst-makecontext-align.c b/stdlib/tst-makecontext-align.c
index 82394b4f6b..2eea138f6d 100644
--- a/stdlib/tst-makecontext-align.c
+++ b/stdlib/tst-makecontext-align.c
@@ -1,5 +1,5 @@
/* Check stack alignment provided by makecontext.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
#include <stdio.h>
diff --git a/stdlib/tst-makecontext.c b/stdlib/tst-makecontext.c
index bd8a2c50de..1505ae96e4 100644
--- a/stdlib/tst-makecontext.c
+++ b/stdlib/tst-makecontext.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2006-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdlib.h>
diff --git a/stdlib/tst-makecontext2.c b/stdlib/tst-makecontext2.c
index eba0ff5fbf..dbcd225234 100644
--- a/stdlib/tst-makecontext2.c
+++ b/stdlib/tst-makecontext2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdlib.h>
diff --git a/stdlib/tst-makecontext3.c b/stdlib/tst-makecontext3.c
index a124c273dc..5cb2c28e12 100644
--- a/stdlib/tst-makecontext3.c
+++ b/stdlib/tst-makecontext3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdio.h>
diff --git a/stdlib/tst-on_exit.c b/stdlib/tst-on_exit.c
index fe99cae5ea..bdc8b5c05a 100644
--- a/stdlib/tst-on_exit.c
+++ b/stdlib/tst-on_exit.c
@@ -1,5 +1,5 @@
/* Verify functions registered via on_exit run in LIFO order.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define ATEXIT(fn) on_exit ((void (*) (int, void *)) fn, (void *) 0)
#define EXIT(x) exit (x)
diff --git a/stdlib/tst-quick_exit.cc b/stdlib/tst-quick_exit.cc
index 905ed8786f..2a25ac5e77 100644
--- a/stdlib/tst-quick_exit.cc
+++ b/stdlib/tst-quick_exit.cc
@@ -1,5 +1,5 @@
/* Bug 20198: Do not call object destructors at exit.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
diff --git a/stdlib/tst-random2.c b/stdlib/tst-random2.c
index e7ac31457f..2c2a7ff8c6 100644
--- a/stdlib/tst-random2.c
+++ b/stdlib/tst-random2.c
@@ -1,5 +1,5 @@
/* Test initstate saving the old state.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
diff --git a/stdlib/tst-secure-getenv.c b/stdlib/tst-secure-getenv.c
index a682b7493e..6990d6d03e 100644
--- a/stdlib/tst-secure-getenv.c
+++ b/stdlib/tst-secure-getenv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Test that secure_getenv works by invoking the test as a SGID
program with a group ID from the supplementary group list. This
@@ -41,8 +41,14 @@ static char MAGIC_ARGUMENT[] = "run-actual-test";
static gid_t
choose_gid (void)
{
- const int count = 64;
- gid_t groups[count];
+ int count = getgroups (0, NULL);
+ if (count < 0)
+ {
+ printf ("getgroups: %m\n");
+ exit (1);
+ }
+ gid_t *groups;
+ groups = xcalloc (count, sizeof (*groups));
int ret = getgroups (count, groups);
if (ret < 0)
{
@@ -50,12 +56,17 @@ choose_gid (void)
exit (1);
}
gid_t current = getgid ();
+ gid_t not_current = 0;
for (int i = 0; i < ret; ++i)
{
if (groups[i] != current)
- return groups[i];
+ {
+ not_current = groups[i];
+ break;
+ }
}
- return 0;
+ free (groups);
+ return not_current;
}
diff --git a/stdlib/tst-setcontext.c b/stdlib/tst-setcontext.c
index 089a68970c..0e2ea9dca3 100644
--- a/stdlib/tst-setcontext.c
+++ b/stdlib/tst-setcontext.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/stdlib/tst-setcontext2.c b/stdlib/tst-setcontext2.c
index 4b93630584..a0aa202da7 100644
--- a/stdlib/tst-setcontext2.c
+++ b/stdlib/tst-setcontext2.c
@@ -1,6 +1,6 @@
/* Testcase checks, if setcontext(), swapcontext() restores signal-mask
and if pending signals are delivered after those calls.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
diff --git a/stdlib/tst-setcontext3.c b/stdlib/tst-setcontext3.c
index bccbc7f557..a90cb0efc0 100644
--- a/stdlib/tst-setcontext3.c
+++ b/stdlib/tst-setcontext3.c
@@ -1,5 +1,5 @@
/* Bug 18125: Verify setcontext calls exit() and not _exit().
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/stdlib/tst-setcontext3.sh b/stdlib/tst-setcontext3.sh
index 88b4583ac7..be36fc86be 100644
--- a/stdlib/tst-setcontext3.sh
+++ b/stdlib/tst-setcontext3.sh
@@ -1,6 +1,6 @@
#!/bin/sh
# Bug 18125: Test the exit functionality of setcontext().
-# Copyright (C) 2015-2018 Free Software Foundation, Inc.
+# Copyright (C) 2015-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
@@ -15,7 +15,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
set -e
diff --git a/stdlib/tst-setcontext4.c b/stdlib/tst-setcontext4.c
index 64d3fc9137..199d04881e 100644
--- a/stdlib/tst-setcontext4.c
+++ b/stdlib/tst-setcontext4.c
@@ -1,6 +1,6 @@
/* Testcase checks, if setcontext(), swapcontext() restores signal-mask
and if pending signals are delivered after those calls.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
diff --git a/stdlib/tst-setcontext5.c b/stdlib/tst-setcontext5.c
index 7dcc15cb8e..94bb7c365b 100644
--- a/stdlib/tst-setcontext5.c
+++ b/stdlib/tst-setcontext5.c
@@ -1,5 +1,5 @@
/* Check multiple setcontext calls.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
diff --git a/stdlib/tst-setcontext6.c b/stdlib/tst-setcontext6.c
index e530154554..4be3db679d 100644
--- a/stdlib/tst-setcontext6.c
+++ b/stdlib/tst-setcontext6.c
@@ -1,5 +1,5 @@
/* Check getcontext and setcontext on the context from makecontext.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
diff --git a/stdlib/tst-setcontext7.c b/stdlib/tst-setcontext7.c
index 053819f358..e90f75b6b6 100644
--- a/stdlib/tst-setcontext7.c
+++ b/stdlib/tst-setcontext7.c
@@ -1,5 +1,5 @@
/* Check setcontext on the context from makecontext.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
diff --git a/stdlib/tst-setcontext8.c b/stdlib/tst-setcontext8.c
index 53fb2bc1dd..ad3a73c0c9 100644
--- a/stdlib/tst-setcontext8.c
+++ b/stdlib/tst-setcontext8.c
@@ -1,5 +1,5 @@
/* Check getcontext and setcontext on the context from makecontext.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
diff --git a/stdlib/tst-setcontext9.c b/stdlib/tst-setcontext9.c
index 4636ce9030..b3acfb2d81 100644
--- a/stdlib/tst-setcontext9.c
+++ b/stdlib/tst-setcontext9.c
@@ -1,5 +1,5 @@
/* Check setcontext on the context from makecontext.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
@@ -41,30 +41,59 @@ f2 (void)
}
static void
-f1 (void)
+f1b (void)
{
- puts ("start f1");
- if (getcontext (&ctx[2]) != 0)
- {
- printf ("%s: getcontext: %m\n", __FUNCTION__);
- exit (EXIT_FAILURE);
- }
if (done)
{
- puts ("set context in f1");
+ puts ("set context in f1b");
if (setcontext (&ctx[3]) != 0)
{
printf ("%s: setcontext: %m\n", __FUNCTION__);
exit (EXIT_FAILURE);
}
}
+ exit (EXIT_FAILURE);
+}
+
+static void
+f1a (void)
+{
+ static char st2[32768];
+ puts ("start f1a");
+ if (getcontext (&ctx[2]) != 0)
+ {
+ printf ("%s: getcontext: %m\n", __FUNCTION__);
+ exit (EXIT_FAILURE);
+ }
+ ctx[2].uc_stack.ss_sp = st2;
+ ctx[2].uc_stack.ss_size = sizeof st2;
+ ctx[2].uc_link = &ctx[0];
+ makecontext (&ctx[2], (void (*) (void)) f1b, 0);
f2 ();
}
+/* The execution path through the test looks like this:
+ do_test (call)
+ -> "making contexts"
+ -> "swap contexts"
+ f1a (via swapcontext to ctx[1], with alternate stack)
+ -> "start f1a"
+ f2 (call)
+ -> "swap contexts in f2"
+ f1b (via swapcontext to ctx[2], with alternate stack)
+ -> "set context in f1b"
+ do_test (via setcontext to ctx[3], main stack)
+ -> "setcontext"
+ f2 (via setcontext to ctx[4], with alternate stack)
+ -> "end f2"
+
+ We must use an alternate stack for f1b, because if we don't then the
+ result of executing an earlier caller may overwrite registers
+ spilled to the stack in f2. */
static int
do_test (void)
{
- char st1[32768];
+ static char st1[32768];
puts ("making contexts");
if (getcontext (&ctx[0]) != 0)
{
@@ -79,7 +108,7 @@ do_test (void)
ctx[1].uc_stack.ss_sp = st1;
ctx[1].uc_stack.ss_size = sizeof st1;
ctx[1].uc_link = &ctx[0];
- makecontext (&ctx[1], (void (*) (void)) f1, 0);
+ makecontext (&ctx[1], (void (*) (void)) f1a, 0);
puts ("swap contexts");
if (swapcontext (&ctx[3], &ctx[1]) != 0)
{
diff --git a/stdlib/tst-strfmon_l.c b/stdlib/tst-strfmon_l.c
index c43fe99256..d07b45048d 100644
--- a/stdlib/tst-strfmon_l.c
+++ b/stdlib/tst-strfmon_l.c
@@ -1,5 +1,5 @@
/* Test locale dependence of strfmon_l.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdbool.h>
#include <stdio.h>
diff --git a/stdlib/tst-strfrom-locale.c b/stdlib/tst-strfrom-locale.c
index e9e5b959ea..71f3926833 100644
--- a/stdlib/tst-strfrom-locale.c
+++ b/stdlib/tst-strfrom-locale.c
@@ -1,5 +1,5 @@
/* Tests for strfromf, strfromd, strfroml functions.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "tst-strfrom.h"
diff --git a/stdlib/tst-strfrom.c b/stdlib/tst-strfrom.c
index 4ef201bb68..3f6800f1d9 100644
--- a/stdlib/tst-strfrom.c
+++ b/stdlib/tst-strfrom.c
@@ -1,5 +1,5 @@
/* Tests for strfromf, strfromd, strfroml functions.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "tst-strfrom.h"
diff --git a/stdlib/tst-strfrom.h b/stdlib/tst-strfrom.h
index 9c79435257..5dfe894602 100644
--- a/stdlib/tst-strfrom.h
+++ b/stdlib/tst-strfrom.h
@@ -1,5 +1,5 @@
/* Tests for strfromf, strfromd, strfroml functions.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
@@ -103,10 +103,10 @@ test_ ## FSUF (void) \
for (i = 0; i < sizeof (htest) / sizeof (htest[0]); i++) \
{ \
rc = FTOSTR (buf, 50, htest[i].fmt, htest[i].t.FSUF); \
- if (strcmp (buf, htest[i].exp[0]) == 0 || \
- strcmp (buf, htest[i].exp[1]) == 0 || \
- strcmp (buf, htest[i].exp[2]) == 0 || \
- strcmp (buf, htest[i].exp[3]) == 0) \
+ if (strcmp (buf, htest[i].exp[0]) == 0 \
+ || strcmp (buf, htest[i].exp[1]) == 0 \
+ || strcmp (buf, htest[i].exp[2]) == 0 \
+ || strcmp (buf, htest[i].exp[3]) == 0) \
continue; \
else \
{ \
diff --git a/stdlib/tst-strtod-nan-locale-main.c b/stdlib/tst-strtod-nan-locale-main.c
index 027d47ceda..1afec99343 100644
--- a/stdlib/tst-strtod-nan-locale-main.c
+++ b/stdlib/tst-strtod-nan-locale-main.c
@@ -1,6 +1,6 @@
/* Test strtod functions work with all ASCII letters in NAN(...) in
Turkish locales (bug 19266).
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <locale.h>
#include <math.h>
diff --git a/stdlib/tst-strtod-nan-locale.c b/stdlib/tst-strtod-nan-locale.c
index 996df3bcc5..06bd3f1f0b 100644
--- a/stdlib/tst-strtod-nan-locale.c
+++ b/stdlib/tst-strtod-nan-locale.c
@@ -1,6 +1,6 @@
/* Test strtod functions work with all ASCII letters in NAN(...) in
Turkish locales (bug 19266). Narrow string version.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define CHAR char
#define SFMT "\"%s\""
diff --git a/stdlib/tst-strtod-nan-sign-main.c b/stdlib/tst-strtod-nan-sign-main.c
index b168c64208..d58d54fdfa 100644
--- a/stdlib/tst-strtod-nan-sign-main.c
+++ b/stdlib/tst-strtod-nan-sign-main.c
@@ -1,5 +1,5 @@
/* Test strtod functions handle signs of NaNs (bug 23007).
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <stdlib.h>
diff --git a/stdlib/tst-strtod-nan-sign.c b/stdlib/tst-strtod-nan-sign.c
index 0b99932417..1570b5e10a 100644
--- a/stdlib/tst-strtod-nan-sign.c
+++ b/stdlib/tst-strtod-nan-sign.c
@@ -1,6 +1,6 @@
/* Test strtod functions handle signs of NaNs (bug 23007).
Narrow string version.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define FNPFX strto
#define L_(C) C
diff --git a/stdlib/tst-strtod-overflow.c b/stdlib/tst-strtod-overflow.c
index d14638d68e..a99b43f4d9 100644
--- a/stdlib/tst-strtod-overflow.c
+++ b/stdlib/tst-strtod-overflow.c
@@ -1,5 +1,5 @@
/* Test for integer/buffer overflow in strtod.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,11 +14,13 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <support/blob_repeat.h>
+#include <support/test-driver.h>
#define EXPONENT "e-2147483649"
#define SIZE 214748364
@@ -26,21 +28,23 @@
static int
do_test (void)
{
- char *p = malloc (1 + SIZE + sizeof (EXPONENT));
- if (p == NULL)
+ struct support_blob_repeat repeat = support_blob_repeat_allocate
+ ("0", 1, 1 + SIZE + sizeof (EXPONENT));
+ if (repeat.size == 0)
{
- puts ("malloc failed, cannot test for overflow");
- return 0;
+ puts ("warning: memory allocation failed, cannot test for overflow");
+ return EXIT_UNSUPPORTED;
}
+ char *p = repeat.start;
p[0] = '1';
- memset (p + 1, '0', SIZE);
memcpy (p + 1 + SIZE, EXPONENT, sizeof (EXPONENT));
double d = strtod (p, NULL);
if (d != 0)
{
- printf ("strtod returned wrong value: %a\n", d);
+ printf ("error: strtod returned wrong value: %a\n", d);
return 1;
}
+ support_blob_repeat_free (&repeat);
return 0;
}
diff --git a/stdlib/tst-strtod-round-skeleton.c b/stdlib/tst-strtod-round-skeleton.c
index 95bf1aca36..41afbdf93d 100644
--- a/stdlib/tst-strtod-round-skeleton.c
+++ b/stdlib/tst-strtod-round-skeleton.c
@@ -1,6 +1,6 @@
/* Test for correct rounding of results of strtod and related
functions.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Defining _LIBC_TEST ensures long double math functions are
declared in the headers. */
diff --git a/stdlib/tst-strtod-round.c b/stdlib/tst-strtod-round.c
index 9927b6098f..1b8e4410f1 100644
--- a/stdlib/tst-strtod-round.c
+++ b/stdlib/tst-strtod-round.c
@@ -1,5 +1,5 @@
/* char shim for tst-strtod-round-skeleton.c.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define L_(str) str
#define FNPFX str
diff --git a/stdlib/tst-strtod-underflow.c b/stdlib/tst-strtod-underflow.c
index 98cfde7e5e..d5ede78a44 100644
--- a/stdlib/tst-strtod-underflow.c
+++ b/stdlib/tst-strtod-underflow.c
@@ -1,6 +1,6 @@
/* Test for strtod handling of arguments that may cause floating-point
underflow.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fenv.h>
diff --git a/stdlib/tst-strtod.c b/stdlib/tst-strtod.c
index 03ffbc5929..3156dd793a 100644
--- a/stdlib/tst-strtod.c
+++ b/stdlib/tst-strtod.c
@@ -1,5 +1,5 @@
/* Basic tests for strtod.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <locale.h>
diff --git a/stdlib/tst-strtod.h b/stdlib/tst-strtod.h
index 5c57a92445..cf1fd7371c 100644
--- a/stdlib/tst-strtod.h
+++ b/stdlib/tst-strtod.h
@@ -1,6 +1,6 @@
/* Common utilities for testing strtod and its derivatives.
This file is part of the GNU C Library.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-2019 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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _TST_STRTOD_H
#define _TST_STRTOD_H
diff --git a/stdlib/tst-strtod1i.c b/stdlib/tst-strtod1i.c
index db49a7b829..7d71e6480b 100644
--- a/stdlib/tst-strtod1i.c
+++ b/stdlib/tst-strtod1i.c
@@ -1,5 +1,5 @@
/* Basic tests for __strtod_internal.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <locale.h>
diff --git a/stdlib/tst-strtod5.c b/stdlib/tst-strtod5.c
index a3858881b2..b3fb47cfc9 100644
--- a/stdlib/tst-strtod5.c
+++ b/stdlib/tst-strtod5.c
@@ -1,5 +1,5 @@
/* Tests of strtod in a locale using decimal comma.
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <locale.h>
#include <stdio.h>
diff --git a/stdlib/tst-strtod5i.c b/stdlib/tst-strtod5i.c
index ee72dc1cd5..eba36f6979 100644
--- a/stdlib/tst-strtod5i.c
+++ b/stdlib/tst-strtod5i.c
@@ -1,5 +1,5 @@
/* Tests of __strtod_internal in a locale using decimal comma.
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <locale.h>
#include <stdio.h>
diff --git a/stdlib/tst-strtol-locale-main.c b/stdlib/tst-strtol-locale-main.c
index 88c75de5b7..21651a2e4e 100644
--- a/stdlib/tst-strtol-locale-main.c
+++ b/stdlib/tst-strtol-locale-main.c
@@ -1,6 +1,6 @@
/* Test strtol functions work with all ASCII letters in Turkish
locales (bug 19242).
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <locale.h>
#include <stdio.h>
diff --git a/stdlib/tst-strtol-locale.c b/stdlib/tst-strtol-locale.c
index 4f918d04e4..df30b03cdf 100644
--- a/stdlib/tst-strtol-locale.c
+++ b/stdlib/tst-strtol-locale.c
@@ -1,6 +1,6 @@
/* Test strtol functions work with all ASCII letters in Turkish
locales (bug 19242). Narrow string version.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define CHAR char
#define SFMT "\"%s\""
diff --git a/stdlib/tst-swapcontext1.c b/stdlib/tst-swapcontext1.c
index 7802df4868..9e9b2b3cdd 100644
--- a/stdlib/tst-swapcontext1.c
+++ b/stdlib/tst-swapcontext1.c
@@ -1,5 +1,5 @@
/* Check multiple makecontext calls.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
@@ -80,14 +80,14 @@ do_test (void)
if (getcontext(&uctx_func1) == -1)
handle_error("getcontext");
uctx_func1.uc_stack.ss_sp = func1_stack;
- uctx_func1.uc_stack.ss_size = sizeof(func1_stack);
+ uctx_func1.uc_stack.ss_size = sizeof (func1_stack);
uctx_func1.uc_link = &uctx_main;
makecontext(&uctx_func1, func1, 0);
if (getcontext(&uctx_func2) == -1)
handle_error("getcontext");
uctx_func2.uc_stack.ss_sp = func2_stack;
- uctx_func2.uc_stack.ss_size = sizeof(func2_stack);
+ uctx_func2.uc_stack.ss_size = sizeof (func2_stack);
uctx_func2.uc_link = &uctx_func1;
makecontext(&uctx_func2, func2, 0);
diff --git a/stdlib/tst-system.c b/stdlib/tst-system.c
index d14839f3ec..68f1aa8f1d 100644
--- a/stdlib/tst-system.c
+++ b/stdlib/tst-system.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
diff --git a/stdlib/tst-thread-quick_exit.cc b/stdlib/tst-thread-quick_exit.cc
index f527059633..7d25a3e14e 100644
--- a/stdlib/tst-thread-quick_exit.cc
+++ b/stdlib/tst-thread-quick_exit.cc
@@ -1,5 +1,5 @@
/* Bug 20198: Do not call object destructors at exit.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/stdlib/tst-tininess.c b/stdlib/tst-tininess.c
index a42d2a9939..2059580adb 100644
--- a/stdlib/tst-tininess.c
+++ b/stdlib/tst-tininess.c
@@ -1,5 +1,5 @@
/* Test that tininess.h is correct for this architecture.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <float.h>
diff --git a/stdlib/tst-tls-atexit-lib.c b/stdlib/tst-tls-atexit-lib.c
index 52da1b839b..636cc6ce8c 100644
--- a/stdlib/tst-tls-atexit-lib.c
+++ b/stdlib/tst-tls-atexit-lib.c
@@ -1,5 +1,5 @@
/* Verify that DSO is unloaded only if its TLS objects are destroyed - the DSO.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include <dso_handle.h>
diff --git a/stdlib/tst-tls-atexit-nodelete.c b/stdlib/tst-tls-atexit-nodelete.c
index e525d96055..713967c6d8 100644
--- a/stdlib/tst-tls-atexit-nodelete.c
+++ b/stdlib/tst-tls-atexit-nodelete.c
@@ -1,7 +1,7 @@
/* Verify that a RTLD_NODELETE DSO is not unloaded even if its TLS objects are
destroyed.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define NO_DELETE 1
#define H2_RTLD_FLAGS (RTLD_LAZY | RTLD_NODELETE)
diff --git a/stdlib/tst-tls-atexit.c b/stdlib/tst-tls-atexit.c
index e029ebe900..9209638d2a 100644
--- a/stdlib/tst-tls-atexit.c
+++ b/stdlib/tst-tls-atexit.c
@@ -1,5 +1,5 @@
/* Verify that DSO is unloaded only if its TLS objects are destroyed.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* For the default case, i.e. NO_DELETE not defined, the test dynamically loads
a DSO and spawns a thread that subsequently calls into the DSO to register a
diff --git a/stdlib/tst-width-stdint.c b/stdlib/tst-width-stdint.c
index 142f65e7a4..1f61a1c81f 100644
--- a/stdlib/tst-width-stdint.c
+++ b/stdlib/tst-width-stdint.c
@@ -1,5 +1,5 @@
/* Test integer width macros in <stdint.h>.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <signal.h>
#include <stddef.h>
diff --git a/stdlib/tst-width.c b/stdlib/tst-width.c
index df03be3399..1836cef659 100644
--- a/stdlib/tst-width.c
+++ b/stdlib/tst-width.c
@@ -1,5 +1,5 @@
/* Test integer width macros.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <limits.h>
#include <stdio.h>
diff --git a/stdlib/tst-xpg-basename.c b/stdlib/tst-xpg-basename.c
index 7ffc6c4373..a61f9b25a2 100644
--- a/stdlib/tst-xpg-basename.c
+++ b/stdlib/tst-xpg-basename.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libgen.h>
#include <stdio.h>
diff --git a/stdlib/ucontext.h b/stdlib/ucontext.h
index ec630038f6..221417f4dc 100644
--- a/stdlib/ucontext.h
+++ b/stdlib/ucontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* System V ABI compliant user-level context switching support. */
diff --git a/stdlib/wcstombs.c b/stdlib/wcstombs.c
index d89be43dfc..fbd871074b 100644
--- a/stdlib/wcstombs.c
+++ b/stdlib/wcstombs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include <string.h>
diff --git a/stdlib/wctomb.c b/stdlib/wctomb.c
index 6fae44c7f6..15e9856482 100644
--- a/stdlib/wctomb.c
+++ b/stdlib/wctomb.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include <string.h>
diff --git a/stdlib/xpg_basename.c b/stdlib/xpg_basename.c
index 69e549ae35..93a06948af 100644
--- a/stdlib/xpg_basename.c
+++ b/stdlib/xpg_basename.c
@@ -1,5 +1,5 @@
/* Return basename of given pathname according to the weird XPG specification.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <libgen.h>
diff --git a/streams/Makefile b/streams/Makefile
deleted file mode 100644
index ac8963cbc6..0000000000
--- a/streams/Makefile
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright (C) 1998-2018 Free Software 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
-# <http://www.gnu.org/licenses/>.
-
-#
-# Makefile for streams.
-#
-subdir := streams
-
-include ../Makeconfig
-
-headers = stropts.h sys/stropts.h bits/stropts.h bits/xtitypes.h
-routines = isastream getmsg getpmsg putmsg putpmsg fattach fdetach
-
-include ../Rules
diff --git a/streams/Versions b/streams/Versions
deleted file mode 100644
index 9a6f4d756c..0000000000
--- a/streams/Versions
+++ /dev/null
@@ -1,15 +0,0 @@
-libc {
- GLIBC_2.1 {
- # f*
- fattach; fdetach;
-
- # g*
- getmsg; getpmsg;
-
- # i*
- isastream;
-
- # p*
- putmsg; putpmsg;
- }
-}
diff --git a/streams/fattach.c b/streams/fattach.c
deleted file mode 100644
index 13bd91e93d..0000000000
--- a/streams/fattach.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright (C) 1998-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <stropts.h>
-
-int
-fattach (int fildes, const char *path)
-{
- __set_errno (ENOSYS);
- return -1;
-}
-
-
-stub_warning (fattach)
diff --git a/streams/fdetach.c b/streams/fdetach.c
deleted file mode 100644
index 5a7559924d..0000000000
--- a/streams/fdetach.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright (C) 1998-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <stropts.h>
-
-int
-fdetach (const char *path)
-{
- __set_errno (ENOSYS);
- return -1;
-}
-
-
-stub_warning (fdetach)
diff --git a/streams/getmsg.c b/streams/getmsg.c
deleted file mode 100644
index c42c72c177..0000000000
--- a/streams/getmsg.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright (C) 1998-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <stropts.h>
-
-int
-getmsg (int fildes, struct strbuf *ctlptr, struct strbuf *dataptr, int *flagsp)
-{
- __set_errno (ENOSYS);
- return -1;
-}
-
-
-stub_warning (getmsg)
diff --git a/streams/getpmsg.c b/streams/getpmsg.c
deleted file mode 100644
index 7fe1d19e6c..0000000000
--- a/streams/getpmsg.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright (C) 1998-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <stropts.h>
-
-int
-getpmsg (int fildes, struct strbuf *ctlptr, struct strbuf *dataptr, int *bandp,
- int *flagsp)
-{
- __set_errno (ENOSYS);
- return -1;
-}
-
-
-stub_warning (getpmsg)
diff --git a/streams/isastream.c b/streams/isastream.c
deleted file mode 100644
index 20425dd96b..0000000000
--- a/streams/isastream.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (C) 1998-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <fcntl.h>
-#include <stropts.h>
-
-int
-isastream (int fildes)
-{
- /* In general we do not have a STREAMS implementation and therefore
- return 0. But for invalid file descriptors we have to return an
- error. */
- if (__fcntl (fildes, F_GETFD) < 0)
- return -1;
-
- /* No STREAM. */
- return 0;
-}
diff --git a/streams/putmsg.c b/streams/putmsg.c
deleted file mode 100644
index e5fb9f596a..0000000000
--- a/streams/putmsg.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright (C) 1998-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <stropts.h>
-
-int
-putmsg (int fildes, const struct strbuf *ctlptr, const struct strbuf *dataptr,
- int flags)
-{
- __set_errno (ENOSYS);
- return -1;
-}
-
-
-stub_warning (putmsg)
diff --git a/streams/putpmsg.c b/streams/putpmsg.c
deleted file mode 100644
index 7d77eb3d5f..0000000000
--- a/streams/putpmsg.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright (C) 1998-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <stropts.h>
-
-int
-putpmsg (int fildes, const struct strbuf *ctlptr, const struct strbuf *dataptr,
- int band, int flags)
-{
- __set_errno (ENOSYS);
- return -1;
-}
-
-
-stub_warning (putpmsg)
diff --git a/streams/stropts.h b/streams/stropts.h
deleted file mode 100644
index c81ecc5950..0000000000
--- a/streams/stropts.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/* Copyright (C) 1998-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _STROPTS_H
-#define _STROPTS_H 1
-
-#include <features.h>
-#include <bits/types.h>
-#include <bits/xtitypes.h>
-
-#ifndef __gid_t_defined
-typedef __gid_t gid_t;
-# define __gid_t_defined
-#endif
-
-#ifndef __uid_t_defined
-typedef __uid_t uid_t;
-# define __uid_t_defined
-#endif
-
-typedef __t_scalar_t t_scalar_t;
-typedef __t_uscalar_t t_uscalar_t;
-
-/* Get system specific constants. */
-#include <bits/stropts.h>
-
-
-__BEGIN_DECLS
-
-/* Test whether FILDES is associated with a STREAM-based file. */
-extern int isastream (int __fildes) __THROW;
-
-/* Receive next message from a STREAMS file.
-
- This function is a cancellation point and therefore not marked with
- __THROW. */
-extern int getmsg (int __fildes, struct strbuf *__restrict __ctlptr,
- struct strbuf *__restrict __dataptr,
- int *__restrict __flagsp);
-
-/* Receive next message from a STREAMS file, with *FLAGSP allowing to
- control which message.
-
- This function is a cancellation point and therefore not marked with
- __THROW. */
-extern int getpmsg (int __fildes, struct strbuf *__restrict __ctlptr,
- struct strbuf *__restrict __dataptr,
- int *__restrict __bandp, int *__restrict __flagsp);
-
-/* Perform the I/O control operation specified by REQUEST on FD.
- One argument may follow; its presence and type depend on REQUEST.
- Return value depends on REQUEST. Usually -1 indicates error. */
-extern int ioctl (int __fd, unsigned long int __request, ...) __THROW;
-
-/* Send a message on a STREAM.
-
- This function is a cancellation point and therefore not marked with
- __THROW. */
-extern int putmsg (int __fildes, const struct strbuf *__ctlptr,
- const struct strbuf *__dataptr, int __flags);
-
-/* Send a message on a STREAM to the BAND.
-
- This function is a cancellation point and therefore not marked with
- __THROW. */
-extern int putpmsg (int __fildes, const struct strbuf *__ctlptr,
- const struct strbuf *__dataptr, int __band, int __flags);
-
-/* Attach a STREAMS-based file descriptor FILDES to a file PATH in the
- file system name space. */
-extern int fattach (int __fildes, const char *__path) __THROW;
-
-/* Detach a name PATH from a STREAMS-based file descriptor. */
-extern int fdetach (const char *__path) __THROW;
-
-__END_DECLS
-
-#endif /* stropts.h */
diff --git a/streams/sys/stropts.h b/streams/sys/stropts.h
deleted file mode 100644
index 5b5bc02f40..0000000000
--- a/streams/sys/stropts.h
+++ /dev/null
@@ -1 +0,0 @@
-#include <stropts.h>
diff --git a/string/Makefile b/string/Makefile
index 680431f921..f01b34509a 100644
--- a/string/Makefile
+++ b/string/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1991-2018 Free Software Foundation, Inc.
+# Copyright (C) 1991-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
# Sub-makefile for string portion of library.
@@ -25,7 +25,8 @@ include ../Makeconfig
headers := string.h bits/string_fortified.h \
strings.h bits/strings_fortified.h \
byteswap.h bits/byteswap.h \
- endian.h bits/endian.h bits/uintn-identity.h \
+ endian.h bits/endian.h bits/endianness.h \
+ bits/uintn-identity.h \
memory.h argz.h envz.h
routines := strcat strchr strcmp strcoll strcpy strcspn \
@@ -64,6 +65,12 @@ tests := tester inl-tester noinl-tester testcopy test-ffs \
# This test allocates a lot of memory and can run for a long time.
xtests = tst-strcoll-overflow
+# This test needs libdl.
+ifeq (yes,$(build-shared))
+tests += test-strerror-errno
+LDLIBS-test-strerror-errno = $(libdl)
+endif
+
ifeq ($(run-built-tests),yes)
tests-special += $(objpfx)tst-svc-cmp.out
endif
diff --git a/string/_strerror.c b/string/_strerror.c
index bd2934bd02..64d6a76db4 100644
--- a/string/_strerror.c
+++ b/string/_strerror.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libintl.h>
#include <stdbool.h>
diff --git a/string/argz-addsep.c b/string/argz-addsep.c
index 868f04f935..ee0a6ac550 100644
--- a/string/argz-addsep.c
+++ b/string/argz-addsep.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <argz.h>
#include <errno.h>
diff --git a/string/argz-append.c b/string/argz-append.c
index d605880f56..68d630d7bc 100644
--- a/string/argz-append.c
+++ b/string/argz-append.c
@@ -1,5 +1,5 @@
/* Routines for dealing with '\0' separated arg vectors.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.ai.mit.edu>
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <argz.h>
#include <string.h>
diff --git a/string/argz-count.c b/string/argz-count.c
index f850caad6d..5ffc28ba64 100644
--- a/string/argz-count.c
+++ b/string/argz-count.c
@@ -1,5 +1,5 @@
/* Routines for dealing with '\0' separated arg vectors.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.ai.mit.edu>
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <argz.h>
#include <string.h>
diff --git a/string/argz-create.c b/string/argz-create.c
index fa0226ea5c..86ea9b3bfb 100644
--- a/string/argz-create.c
+++ b/string/argz-create.c
@@ -1,5 +1,5 @@
/* Routines for dealing with '\0' separated arg vectors.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.ai.mit.edu>
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <argz.h>
#include <stdlib.h>
diff --git a/string/argz-ctsep.c b/string/argz-ctsep.c
index 9da296beef..34538e71bc 100644
--- a/string/argz-ctsep.c
+++ b/string/argz-ctsep.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <argz.h>
#include <errno.h>
diff --git a/string/argz-delete.c b/string/argz-delete.c
index 5d3aaecade..f95eeb9cec 100644
--- a/string/argz-delete.c
+++ b/string/argz-delete.c
@@ -1,5 +1,5 @@
/* Routines for dealing with '\0' separated arg vectors.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.org>
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <argz.h>
#include <string.h>
diff --git a/string/argz-extract.c b/string/argz-extract.c
index 95ebdce0b3..e70e537792 100644
--- a/string/argz-extract.c
+++ b/string/argz-extract.c
@@ -1,5 +1,5 @@
/* Routines for dealing with '\0' separated arg vectors.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.org>
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <argz.h>
diff --git a/string/argz-insert.c b/string/argz-insert.c
index 5932d422ef..90b8d8341d 100644
--- a/string/argz-insert.c
+++ b/string/argz-insert.c
@@ -1,5 +1,5 @@
/* Routines for dealing with '\0' separated arg vectors.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.ai.mit.edu>
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <argz.h>
#include <string.h>
diff --git a/string/argz-next.c b/string/argz-next.c
index 9200eda4d9..9c9fe53755 100644
--- a/string/argz-next.c
+++ b/string/argz-next.c
@@ -1,5 +1,5 @@
/* Iterate through the elements of an argz block.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.org>
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <argz.h>
#include <string.h>
diff --git a/string/argz-replace.c b/string/argz-replace.c
index 0b171e2acf..d876d4b2dd 100644
--- a/string/argz-replace.c
+++ b/string/argz-replace.c
@@ -1,5 +1,5 @@
/* String replacement in an argz vector
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.ai.mit.edu>
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include <string.h>
diff --git a/string/argz-stringify.c b/string/argz-stringify.c
index 2463caae03..4b9a161158 100644
--- a/string/argz-stringify.c
+++ b/string/argz-stringify.c
@@ -1,5 +1,5 @@
/* Routines for dealing with '\0' separated arg vectors.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.org>
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <argz.h>
#include <string.h>
diff --git a/string/argz.h b/string/argz.h
index 9c496f5ef5..55080de487 100644
--- a/string/argz.h
+++ b/string/argz.h
@@ -1,5 +1,5 @@
/* Routines for dealing with '\0' separated arg vectors.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _ARGZ_H
#define _ARGZ_H 1
diff --git a/string/basename.c b/string/basename.c
index 20a877f43b..8f20996ade 100644
--- a/string/basename.c
+++ b/string/basename.c
@@ -1,5 +1,5 @@
/* Return the name-within-directory of a file name.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/string/bcopy.c b/string/bcopy.c
index 2c244ffcbf..41c51b13b4 100644
--- a/string/bcopy.c
+++ b/string/bcopy.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/string/bits/endian.h b/string/bits/endian.h
new file mode 100644
index 0000000000..2217990cde
--- /dev/null
+++ b/string/bits/endian.h
@@ -0,0 +1,49 @@
+/* Endian macros for string.h functions
+ Copyright (C) 1992-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
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _BITS_ENDIAN_H
+#define _BITS_ENDIAN_H 1
+
+/* Definitions for byte order, according to significance of bytes,
+ from low addresses to high addresses. The value is what you get by
+ putting '4' in the most significant byte, '3' in the second most
+ significant byte, '2' in the second least significant byte, and '1'
+ in the least significant byte, and then writing down one digit for
+ each byte, starting with the byte at the lowest address at the left,
+ and proceeding to the byte with the highest address at the right. */
+
+#define __LITTLE_ENDIAN 1234
+#define __BIG_ENDIAN 4321
+#define __PDP_ENDIAN 3412
+
+/* This file defines `__BYTE_ORDER' for the particular machine. */
+#include <bits/endianness.h>
+
+/* Some machines may need to use a different endianness for floating point
+ values. */
+#ifndef __FLOAT_WORD_ORDER
+# define __FLOAT_WORD_ORDER __BYTE_ORDER
+#endif
+
+#if __BYTE_ORDER == __LITTLE_ENDIAN
+# define __LONG_LONG_PAIR(HI, LO) LO, HI
+#elif __BYTE_ORDER == __BIG_ENDIAN
+# define __LONG_LONG_PAIR(HI, LO) HI, LO
+#endif
+
+#endif /* bits/endian.h */
diff --git a/string/bits/string_fortified.h b/string/bits/string_fortified.h
index a07ab0dbc8..0879551741 100644
--- a/string/bits/string_fortified.h
+++ b/string/bits/string_fortified.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_STRING_FORTIFIED_H
#define _BITS_STRING_FORTIFIED_H 1
diff --git a/string/bits/strings_fortified.h b/string/bits/strings_fortified.h
index d9b2804525..764599d4c0 100644
--- a/string/bits/strings_fortified.h
+++ b/string/bits/strings_fortified.h
@@ -1,5 +1,5 @@
/* Fortify macros for strings.h functions.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef __STRINGS_FORTIFIED
# define __STRINGS_FORTIFIED 1
diff --git a/string/bug-strcoll2.c b/string/bug-strcoll2.c
index ff4595eb62..14a472b1ed 100644
--- a/string/bug-strcoll2.c
+++ b/string/bug-strcoll2.c
@@ -1,5 +1,5 @@
/* Bug 18589: sort-test.sh fails at random.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <string.h>
diff --git a/string/byteswap.h b/string/byteswap.h
index a45b3e20ed..f6b22ccd2c 100644
--- a/string/byteswap.h
+++ b/string/byteswap.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BYTESWAP_H
#define _BYTESWAP_H 1
diff --git a/string/bzero.c b/string/bzero.c
index 30e4940562..9e3eb2348a 100644
--- a/string/bzero.c
+++ b/string/bzero.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Torbjorn Granlund (tege@sics.se).
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/string/endian.h b/string/endian.h
index 9c9ec17f49..1a9fe3c97e 100644
--- a/string/endian.h
+++ b/string/endian.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -13,48 +13,23 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _ENDIAN_H
#define _ENDIAN_H 1
#include <features.h>
-/* Definitions for byte order, according to significance of bytes,
- from low addresses to high addresses. The value is what you get by
- putting '4' in the most significant byte, '3' in the second most
- significant byte, '2' in the second least significant byte, and '1'
- in the least significant byte, and then writing down one digit for
- each byte, starting with the byte at the lowest address at the left,
- and proceeding to the byte with the highest address at the right. */
-
-#define __LITTLE_ENDIAN 1234
-#define __BIG_ENDIAN 4321
-#define __PDP_ENDIAN 3412
-
-/* This file defines `__BYTE_ORDER' for the particular machine. */
+/* Get the definitions of __*_ENDIAN, __BYTE_ORDER, and __FLOAT_WORD_ORDER. */
#include <bits/endian.h>
-/* Some machines may need to use a different endianness for floating point
- values. */
-#ifndef __FLOAT_WORD_ORDER
-# define __FLOAT_WORD_ORDER __BYTE_ORDER
-#endif
-
-#ifdef __USE_MISC
+#ifdef __USE_MISC
# define LITTLE_ENDIAN __LITTLE_ENDIAN
# define BIG_ENDIAN __BIG_ENDIAN
# define PDP_ENDIAN __PDP_ENDIAN
# define BYTE_ORDER __BYTE_ORDER
#endif
-#if __BYTE_ORDER == __LITTLE_ENDIAN
-# define __LONG_LONG_PAIR(HI, LO) LO, HI
-#elif __BYTE_ORDER == __BIG_ENDIAN
-# define __LONG_LONG_PAIR(HI, LO) HI, LO
-#endif
-
-
#if defined __USE_MISC && !defined __ASSEMBLER__
/* Conversion interfaces. */
# include <bits/byteswap.h>
diff --git a/string/envz.c b/string/envz.c
index 3a494deed9..4466af407d 100644
--- a/string/envz.c
+++ b/string/envz.c
@@ -1,5 +1,5 @@
/* Routines for dealing with '\0' separated environment vectors
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.org>
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <malloc.h>
#include <string.h>
diff --git a/string/envz.h b/string/envz.h
index fb4a6d2e4a..d20bbd7b59 100644
--- a/string/envz.h
+++ b/string/envz.h
@@ -1,5 +1,5 @@
/* Routines for dealing with '\0' separated environment vectors
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _ENVZ_H
#define _ENVZ_H 1
diff --git a/string/explicit_bzero.c b/string/explicit_bzero.c
index 7ba3f0f62c..0ad08c0cf1 100644
--- a/string/explicit_bzero.c
+++ b/string/explicit_bzero.c
@@ -1,5 +1,5 @@
/* Erasure of sensitive data, generic implementation.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* An assembler implementation of explicit_bzero can be created as an
assembler alias of an optimized bzero implementation.
diff --git a/string/ffs.c b/string/ffs.c
index 759039aab2..f6189ab953 100644
--- a/string/ffs.c
+++ b/string/ffs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Torbjorn Granlund (tege@sics.se).
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <limits.h>
#define ffsl __something_else
diff --git a/string/ffsll.c b/string/ffsll.c
index fe57f60cfd..794610864e 100644
--- a/string/ffsll.c
+++ b/string/ffsll.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Torbjorn Granlund (tege@sics.se).
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <limits.h>
#define ffsl __something_else
diff --git a/string/memccpy.c b/string/memccpy.c
index 906a94d87c..9009735999 100644
--- a/string/memccpy.c
+++ b/string/memccpy.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/string/memchr.c b/string/memchr.c
index c4e21b86f1..36e5bf8bdf 100644
--- a/string/memchr.c
+++ b/string/memchr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Based on strlen implementation by Torbjorn Granlund (tege@sics.se),
with help from Dan Sahlin (dan@sics.se) and
@@ -18,7 +18,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LIBC
# include <config.h>
diff --git a/string/memcmp.c b/string/memcmp.c
index aea5129917..062a06f936 100644
--- a/string/memcmp.c
+++ b/string/memcmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Torbjorn Granlund (tege@sics.se).
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include "config.h"
@@ -47,7 +47,7 @@
This should normally be the biggest type supported by a single load
and store. Must be an unsigned type. */
# define op_t unsigned long int
-# define OPSIZ (sizeof(op_t))
+# define OPSIZ (sizeof (op_t))
/* Threshold value for when to enter the unrolled loops. */
# define OP_T_THRES 16
diff --git a/string/memcpy.c b/string/memcpy.c
index ecfa221847..382dda6ea8 100644
--- a/string/memcpy.c
+++ b/string/memcpy.c
@@ -1,6 +1,6 @@
/* Copy memory to memory until the specified number of bytes
has been copied. Overlap is NOT handled correctly.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Torbjorn Granlund (tege@sics.se).
@@ -16,15 +16,17 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <memcopy.h>
-#undef memcpy
+#ifndef MEMCPY
+# define MEMCPY memcpy
+#endif
void *
-memcpy (void *dstpp, const void *srcpp, size_t len)
+MEMCPY (void *dstpp, const void *srcpp, size_t len)
{
unsigned long int dstp = (long int) dstpp;
unsigned long int srcp = (long int) srcpp;
@@ -57,4 +59,4 @@ memcpy (void *dstpp, const void *srcpp, size_t len)
return dstpp;
}
-libc_hidden_builtin_def (memcpy)
+libc_hidden_builtin_def (MEMCPY)
diff --git a/string/memfrob.c b/string/memfrob.c
index ddf755c768..64e546b5ab 100644
--- a/string/memfrob.c
+++ b/string/memfrob.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/string/memmem.c b/string/memmem.c
index 43efaa3fb7..3c9a161df8 100644
--- a/string/memmem.c
+++ b/string/memmem.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -13,19 +13,15 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-/* This particular implementation was written by Eric Blake, 2008. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LIBC
# include <config.h>
#endif
-/* Specification of memmem. */
#include <string.h>
#ifndef _LIBC
-# define __builtin_expect(expr, val) (expr)
# define __memmem memmem
#endif
@@ -36,47 +32,98 @@
#undef memmem
-/* Return the first occurrence of NEEDLE in HAYSTACK. Return HAYSTACK
- if NEEDLE_LEN is 0, otherwise NULL if NEEDLE is not found in
- HAYSTACK. */
+/* Hash character pairs so a small shift table can be used. All bits of
+ p[0] are included, but not all bits from p[-1]. So if two equal hashes
+ match on p[-1], p[0] matches too. Hash collisions are harmless and result
+ in smaller shifts. */
+#define hash2(p) (((size_t)(p)[0] - ((size_t)(p)[-1] << 3)) % sizeof (shift))
+
+/* Fast memmem algorithm with guaranteed linear-time performance.
+ Small needles up to size 2 use a dedicated linear search. Longer needles
+ up to size 256 use a novel modified Horspool algorithm. It hashes pairs
+ of characters to quickly skip past mismatches. The main search loop only
+ exits if the last 2 characters match, avoiding unnecessary calls to memcmp
+ and allowing for a larger skip if there is no match. A self-adapting
+ filtering check is used to quickly detect mismatches in long needles.
+ By limiting the needle length to 256, the shift table can be reduced to 8
+ bits per entry, lowering preprocessing overhead and minimizing cache effects.
+ The limit also implies worst-case performance is linear.
+ Needles larger than 256 characters use the linear-time Two-Way algorithm. */
void *
-__memmem (const void *haystack_start, size_t haystack_len,
- const void *needle_start, size_t needle_len)
+__memmem (const void *haystack, size_t hs_len,
+ const void *needle, size_t ne_len)
{
- /* Abstract memory is considered to be an array of 'unsigned char' values,
- not an array of 'char' values. See ISO C 99 section 6.2.6.1. */
- const unsigned char *haystack = (const unsigned char *) haystack_start;
- const unsigned char *needle = (const unsigned char *) needle_start;
-
- if (needle_len == 0)
- /* The first occurrence of the empty string is deemed to occur at
- the beginning of the string. */
- return (void *) haystack;
-
- /* Sanity check, otherwise the loop might search through the whole
- memory. */
- if (__glibc_unlikely (haystack_len < needle_len))
+ const unsigned char *hs = (const unsigned char *) haystack;
+ const unsigned char *ne = (const unsigned char *) needle;
+
+ if (ne_len == 0)
+ return (void *) hs;
+ if (ne_len == 1)
+ return (void *) memchr (hs, ne[0], hs_len);
+
+ /* Ensure haystack length is >= needle length. */
+ if (hs_len < ne_len)
return NULL;
- /* Use optimizations in memchr when possible, to reduce the search
- size of haystack using a linear algorithm with a smaller
- coefficient. However, avoid memchr for long needles, since we
- can often achieve sublinear performance. */
- if (needle_len < LONG_NEEDLE_THRESHOLD)
+ const unsigned char *end = hs + hs_len - ne_len;
+
+ if (ne_len == 2)
+ {
+ uint32_t nw = ne[0] << 16 | ne[1], hw = hs[0] << 16 | hs[1];
+ for (hs++; hs <= end && hw != nw; )
+ hw = hw << 16 | *++hs;
+ return hw == nw ? (void *)hs - 1 : NULL;
+ }
+
+ /* Use Two-Way algorithm for very long needles. */
+ if (__builtin_expect (ne_len > 256, 0))
+ return two_way_long_needle (hs, hs_len, ne, ne_len);
+
+ uint8_t shift[256];
+ size_t tmp, shift1;
+ size_t m1 = ne_len - 1;
+ size_t offset = 0;
+
+ memset (shift, 0, sizeof (shift));
+ for (int i = 1; i < m1; i++)
+ shift[hash2 (ne + i)] = i;
+ /* Shift1 is the amount we can skip after matching the hash of the
+ needle end but not the full needle. */
+ shift1 = m1 - shift[hash2 (ne + m1)];
+ shift[hash2 (ne + m1)] = m1;
+
+ for ( ; hs <= end; )
{
- haystack = memchr (haystack, *needle, haystack_len);
- if (!haystack || __builtin_expect (needle_len == 1, 0))
- return (void *) haystack;
- haystack_len -= haystack - (const unsigned char *) haystack_start;
- if (haystack_len < needle_len)
- return NULL;
- return two_way_short_needle (haystack, haystack_len, needle, needle_len);
+ /* Skip past character pairs not in the needle. */
+ do
+ {
+ hs += m1;
+ tmp = shift[hash2 (hs)];
+ }
+ while (tmp == 0 && hs <= end);
+
+ /* If the match is not at the end of the needle, shift to the end
+ and continue until we match the hash of the needle end. */
+ hs -= tmp;
+ if (tmp < m1)
+ continue;
+
+ /* Hash of the last 2 characters matches. If the needle is long,
+ try to quickly filter out mismatches. */
+ if (m1 < 15 || memcmp (hs + offset, ne + offset, 8) == 0)
+ {
+ if (memcmp (hs, ne, m1) == 0)
+ return (void *) hs;
+
+ /* Adjust filter offset when it doesn't find the mismatch. */
+ offset = (offset >= 8 ? offset : m1) - 8;
+ }
+
+ /* Skip based on matching the hash of the needle end. */
+ hs += shift1;
}
- else
- return two_way_long_needle (haystack, haystack_len, needle, needle_len);
+ return NULL;
}
libc_hidden_def (__memmem)
weak_alias (__memmem, memmem)
libc_hidden_weak (memmem)
-
-#undef LONG_NEEDLE_THRESHOLD
diff --git a/string/memmove.c b/string/memmove.c
index 6b9321bf4c..4498e2c1cd 100644
--- a/string/memmove.c
+++ b/string/memmove.c
@@ -1,6 +1,6 @@
/* Copy memory to memory until the specified number of bytes
has been copied. Overlap is handled correctly.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <memcopy.h>
diff --git a/string/memory.h b/string/memory.h
index ed67bb9a9b..8dba78dc97 100644
--- a/string/memory.h
+++ b/string/memory.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* SVID
diff --git a/string/mempcpy.c b/string/mempcpy.c
index 5883e17d75..872c2df069 100644
--- a/string/mempcpy.c
+++ b/string/mempcpy.c
@@ -1,7 +1,7 @@
/* Copy memory to memory until the specified number of bytes
has been copied, return pointer to following byte.
Overlap is NOT handled correctly.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define NO_MEMPCPY_STPCPY_REDIRECT
#include <string.h>
diff --git a/string/memrchr.c b/string/memrchr.c
index 191b89a229..92835b4659 100644
--- a/string/memrchr.c
+++ b/string/memrchr.c
@@ -1,5 +1,5 @@
/* memrchr -- find the last occurrence of a byte in a memory block
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Based on strlen implementation by Torbjorn Granlund (tege@sics.se),
with help from Dan Sahlin (dan@sics.se) and
@@ -19,7 +19,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
diff --git a/string/memset.c b/string/memset.c
index 9e56bb62ae..8f6f0a4768 100644
--- a/string/memset.c
+++ b/string/memset.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -13,16 +13,18 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <memcopy.h>
-#undef memset
+#ifndef MEMSET
+# define MEMSET memset
+#endif
void *
inhibit_loop_to_libcall
-memset (void *dstpp, int c, size_t len)
+MEMSET (void *dstpp, int c, size_t len)
{
long int dstp = (long int) dstpp;
@@ -85,4 +87,4 @@ memset (void *dstpp, int c, size_t len)
return dstpp;
}
-libc_hidden_builtin_def (memset)
+libc_hidden_builtin_def (MEMSET)
diff --git a/string/rawmemchr.c b/string/rawmemchr.c
index 2ef0c47752..3b615a9a76 100644
--- a/string/rawmemchr.c
+++ b/string/rawmemchr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <libc-diag.h>
diff --git a/string/stpcpy.c b/string/stpcpy.c
index c6e760b4ee..c8f87988f1 100644
--- a/string/stpcpy.c
+++ b/string/stpcpy.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
diff --git a/string/stpncpy.c b/string/stpncpy.c
index 2ac58a7e58..05c7f5fa4f 100644
--- a/string/stpncpy.c
+++ b/string/stpncpy.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
diff --git a/string/str-two-way.h b/string/str-two-way.h
index 523d946c59..966044ce68 100644
--- a/string/str-two-way.h
+++ b/string/str-two-way.h
@@ -1,5 +1,5 @@
/* Byte-wise substring search, using the Two-Way algorithm.
- Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ Copyright (C) 2008-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Eric Blake <ebb9@byu.net>, 2008.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Before including this file, you need to include <string.h> (and
<config.h> before that, if not part of libc), and define:
@@ -221,7 +221,7 @@ critical_factorization (const unsigned char *needle, size_t needle_len,
most 2 * HAYSTACK_LEN - NEEDLE_LEN comparisons occur in searching.
If AVAILABLE modifies HAYSTACK_LEN (as in strstr), then at most 3 *
HAYSTACK_LEN - NEEDLE_LEN comparisons occur in searching. */
-static RETURN_TYPE
+static inline RETURN_TYPE
two_way_short_needle (const unsigned char *haystack, size_t haystack_len,
const unsigned char *needle, size_t needle_len)
{
@@ -382,8 +382,11 @@ two_way_short_needle (const unsigned char *haystack, size_t haystack_len,
and sublinear performance O(HAYSTACK_LEN / NEEDLE_LEN) is possible.
If AVAILABLE modifies HAYSTACK_LEN (as in strstr), then at most 3 *
HAYSTACK_LEN - NEEDLE_LEN comparisons occur in searching, and
- sublinear performance is not possible. */
-static RETURN_TYPE
+ sublinear performance is not possible.
+
+ Since this function is large and complex, block inlining to avoid
+ slowing down the common case of small needles. */
+__attribute__((noinline)) static RETURN_TYPE
two_way_long_needle (const unsigned char *haystack, size_t haystack_len,
const unsigned char *needle, size_t needle_len)
{
diff --git a/string/stratcliff.c b/string/stratcliff.c
index f6e3010720..d2b189fd2d 100644
--- a/string/stratcliff.c
+++ b/string/stratcliff.c
@@ -1,5 +1,5 @@
/* Test for string function add boundaries of usable memory.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _GNU_SOURCE 1
diff --git a/string/strcasecmp.c b/string/strcasecmp.c
index 420b7504f3..1fd71418aa 100644
--- a/string/strcasecmp.c
+++ b/string/strcasecmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
diff --git a/string/strcasecmp_l.c b/string/strcasecmp_l.c
index 4189d7dbb0..16355ce0d8 100644
--- a/string/strcasecmp_l.c
+++ b/string/strcasecmp_l.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define USE_IN_EXTENDED_LOCALE_MODEL 1
#include "strcasecmp.c"
diff --git a/string/strcasestr.c b/string/strcasestr.c
index 5909fe3cdb..ea729449da 100644
--- a/string/strcasestr.c
+++ b/string/strcasestr.c
@@ -1,5 +1,5 @@
/* Return the offset of one string within another.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* My personal strstr() implementation that beats most other algorithms.
@@ -37,8 +37,9 @@
/* Two-Way algorithm. */
#define RETURN_TYPE char *
#define AVAILABLE(h, h_l, j, n_l) \
- (((j) + (n_l) <= (h_l)) || ((h_l) += __strnlen ((void*)((h) + (h_l)), 512), \
- (j) + (n_l) <= (h_l)))
+ (((j) + (n_l) <= (h_l)) \
+ || ((h_l) += __strnlen ((void*)((h) + (h_l)), (n_l) + 512), \
+ (j) + (n_l) <= (h_l)))
#define CHECK_EOL (1)
#define RET0_IF_0(a) if (!a) goto ret0
#define CANON_ELEMENT(c) TOLOWER (c)
@@ -58,31 +59,22 @@
case-insensitive comparison. This function gives unspecified
results in multibyte locales. */
char *
-STRCASESTR (const char *haystack_start, const char *needle_start)
+STRCASESTR (const char *haystack, const char *needle)
{
- const char *haystack = haystack_start;
- const char *needle = needle_start;
size_t needle_len; /* Length of NEEDLE. */
size_t haystack_len; /* Known minimum length of HAYSTACK. */
- bool ok = true; /* True if NEEDLE is prefix of HAYSTACK. */
-
- /* Determine length of NEEDLE, and in the process, make sure
- HAYSTACK is at least as long (no point processing all of a long
- NEEDLE if HAYSTACK is too short). */
- while (*haystack && *needle)
- {
- ok &= (TOLOWER ((unsigned char) *haystack)
- == TOLOWER ((unsigned char) *needle));
- haystack++;
- needle++;
- }
- if (*needle)
+
+ /* Handle empty NEEDLE special case. */
+ if (needle[0] == '\0')
+ return (char *) haystack;
+
+ /* Ensure HAYSTACK length is at least as long as NEEDLE length.
+ Since a match may occur early on in a huge HAYSTACK, use strnlen
+ and read ahead a few cachelines for improved performance. */
+ needle_len = strlen (needle);
+ haystack_len = __strnlen (haystack, needle_len + 256);
+ if (haystack_len < needle_len)
return NULL;
- if (ok)
- return (char *) haystack_start;
- needle_len = needle - needle_start;
- haystack = haystack_start + 1;
- haystack_len = needle_len - 1;
/* Perform the search. Abstract memory is considered to be an array
of 'unsigned char' values, not an array of 'char' values. See
@@ -90,10 +82,10 @@ STRCASESTR (const char *haystack_start, const char *needle_start)
if (needle_len < LONG_NEEDLE_THRESHOLD)
return two_way_short_needle ((const unsigned char *) haystack,
haystack_len,
- (const unsigned char *) needle_start,
+ (const unsigned char *) needle,
needle_len);
return two_way_long_needle ((const unsigned char *) haystack, haystack_len,
- (const unsigned char *) needle_start,
+ (const unsigned char *) needle,
needle_len);
}
diff --git a/string/strcat.c b/string/strcat.c
index 48e1b3538b..38fa17588c 100644
--- a/string/strcat.c
+++ b/string/strcat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/string/strchr.c b/string/strchr.c
index a63fdfc282..4d62dfe6a6 100644
--- a/string/strchr.c
+++ b/string/strchr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Based on strlen implementation by Torbjorn Granlund (tege@sics.se),
with help from Dan Sahlin (dan@sics.se) and
@@ -18,7 +18,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <stdlib.h>
@@ -126,11 +126,11 @@ STRCHR (const char *s, int c_in)
/* Look at only the hole bits. If any of the hole bits
are unchanged, most likely one of the bytes was a
zero. */
- & ~magic_bits) != 0 ||
+ & ~magic_bits) != 0
/* That caught zeroes. Now test for C. */
- ((((longword ^ charmask) + magic_bits) ^ ~(longword ^ charmask))
- & ~magic_bits) != 0)
+ || ((((longword ^ charmask) + magic_bits) ^ ~(longword ^ charmask))
+ & ~magic_bits) != 0)
{
/* Which of the bytes was C or zero?
If none of them were, it was a misfire; continue the search. */
diff --git a/string/strchrnul.c b/string/strchrnul.c
index 5a17602edd..010fd25d30 100644
--- a/string/strchrnul.c
+++ b/string/strchrnul.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Based on strlen implementation by Torbjorn Granlund (tege@sics.se),
with help from Dan Sahlin (dan@sics.se) and
@@ -18,7 +18,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <memcopy.h>
@@ -126,11 +126,11 @@ STRCHRNUL (const char *s, int c_in)
/* Look at only the hole bits. If any of the hole bits
are unchanged, most likely one of the bytes was a
zero. */
- & ~magic_bits) != 0 ||
+ & ~magic_bits) != 0
/* That caught zeroes. Now test for C. */
- ((((longword ^ charmask) + magic_bits) ^ ~(longword ^ charmask))
- & ~magic_bits) != 0)
+ || ((((longword ^ charmask) + magic_bits) ^ ~(longword ^ charmask))
+ & ~magic_bits) != 0)
{
/* Which of the bytes was C or zero?
If none of them were, it was a misfire; continue the search. */
diff --git a/string/strcmp.c b/string/strcmp.c
index e198d192b9..8092ed4f03 100644
--- a/string/strcmp.c
+++ b/string/strcmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/string/strcoll.c b/string/strcoll.c
index 93e0546fd8..84caf1cd0a 100644
--- a/string/strcoll.c
+++ b/string/strcoll.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/string/strcoll_l.c b/string/strcoll_l.c
index c001ff4ad4..61f9f5841b 100644
--- a/string/strcoll_l.c
+++ b/string/strcoll_l.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Ulrich Drepper <drepper@gnu.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
diff --git a/string/strcpy.c b/string/strcpy.c
index a4cce892df..d242b53970 100644
--- a/string/strcpy.c
+++ b/string/strcpy.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <string.h>
diff --git a/string/strcspn.c b/string/strcspn.c
index 3c091b0a66..e185dad13b 100644
--- a/string/strcspn.c
+++ b/string/strcspn.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <stdint.h>
@@ -30,8 +30,8 @@
size_t
STRCSPN (const char *str, const char *reject)
{
- if (__glibc_unlikely (reject[0] == '\0') ||
- __glibc_unlikely (reject[1] == '\0'))
+ if (__glibc_unlikely (reject[0] == '\0')
+ || __glibc_unlikely (reject[1] == '\0'))
return __strchrnul (str, reject [0]) - str;
/* Use multiple small memsets to enable inlining on most targets. */
diff --git a/string/strdup.c b/string/strdup.c
index 52a38cc243..410ddb63a4 100644
--- a/string/strdup.c
+++ b/string/strdup.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
#include <config.h>
diff --git a/string/strerror.c b/string/strerror.c
index 34f3db727b..7690793e50 100644
--- a/string/strerror.c
+++ b/string/strerror.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libintl.h>
#include <stdio.h>
diff --git a/string/strerror_l.c b/string/strerror_l.c
index 2a62b1f12c..2387f2fe30 100644
--- a/string/strerror_l.c
+++ b/string/strerror_l.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libintl.h>
#include <locale.h>
diff --git a/string/strfry.c b/string/strfry.c
index 6c735fc147..8b293af185 100644
--- a/string/strfry.c
+++ b/string/strfry.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -13,11 +13,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <stdlib.h>
-#include <time.h>
+#include <random-bits.h>
#include <unistd.h>
char *
@@ -30,7 +30,7 @@ strfry (char *string)
{
static char state[32];
rdata.state = NULL;
- __initstate_r (time ((time_t *) NULL) ^ getpid (),
+ __initstate_r (random_bits (),
state, sizeof (state), &rdata);
init = 1;
}
diff --git a/string/string-inlines.c b/string/string-inlines.c
index 1eb67cc36d..30f15d9847 100644
--- a/string/string-inlines.c
+++ b/string/string-inlines.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file contains compatibility definitions of functions that were
formerly defined as "extern inline" in string.h; it's conceivable
diff --git a/string/string.h b/string/string.h
index 150cfd8b13..faf997b972 100644
--- a/string/string.h
+++ b/string/string.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* ISO C99 Standard: 7.21 String handling <string.h>
@@ -33,7 +33,8 @@ __BEGIN_DECLS
#include <stddef.h>
/* Tell the caller that we provide correct C++ prototypes. */
-#if defined __cplusplus && __GNUC_PREREQ (4, 4)
+#if defined __cplusplus && (__GNUC_PREREQ (4, 4) \
+ || __glibc_clang_prereq (3, 5))
# define __CORRECT_ISO_CPP_STRING_H_PROTO
#endif
@@ -49,7 +50,7 @@ extern void *memmove (void *__dest, const void *__src, size_t __n)
/* Copy no more than N bytes of SRC to DEST, stopping when C is found.
Return the position in DEST one byte past where C was copied,
or NULL if C was not found in the first N bytes of SRC. */
-#if defined __USE_MISC || defined __USE_XOPEN
+#if defined __USE_MISC || defined __USE_XOPEN || __GLIBC_USE (ISOC2X)
extern void *memccpy (void *__restrict __dest, const void *__restrict __src,
int __c, size_t __n)
__THROW __nonnull ((1, 2));
@@ -161,7 +162,7 @@ extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n,
#endif
#if (defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8 \
- || __GLIBC_USE (LIB_EXT2))
+ || __GLIBC_USE (LIB_EXT2) || __GLIBC_USE (ISOC2X))
/* Duplicate S, returning an identical malloc'd string. */
extern char *strdup (const char *__s)
__THROW __attribute_malloc__ __nonnull ((1));
@@ -170,7 +171,7 @@ extern char *strdup (const char *__s)
/* Return a malloc'd copy of at most N bytes of STRING. The
resultant string is terminated even if no null terminator
appears before STRING[N]. */
-#if defined __USE_XOPEN2K8 || __GLIBC_USE (LIB_EXT2)
+#if defined __USE_XOPEN2K8 || __GLIBC_USE (LIB_EXT2) || __GLIBC_USE (ISOC2X)
extern char *strndup (const char *__string, size_t __n)
__THROW __attribute_malloc__ __nonnull ((1));
#endif
diff --git a/string/strings.h b/string/strings.h
index f00d638fe0..29017c253c 100644
--- a/string/strings.h
+++ b/string/strings.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _STRINGS_H
#define _STRINGS_H 1
diff --git a/string/strlen.c b/string/strlen.c
index 8ce1318487..ef862b8e8a 100644
--- a/string/strlen.c
+++ b/string/strlen.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Torbjorn Granlund (tege@sics.se),
with help from Dan Sahlin (dan@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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <stdlib.h>
diff --git a/string/strncase.c b/string/strncase.c
index 2558d2969f..2e5382370a 100644
--- a/string/strncase.c
+++ b/string/strncase.c
@@ -1,6 +1,6 @@
/* Compare at most N characters of two strings without taking care for
the case.
- Copyright (C) 1992-2018 Free Software Foundation, Inc.
+ Copyright (C) 1992-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
diff --git a/string/strncase_l.c b/string/strncase_l.c
index 85245c3585..4e400b0e87 100644
--- a/string/strncase_l.c
+++ b/string/strncase_l.c
@@ -1,6 +1,6 @@
/* Compare at most N characters of two strings without taking care for
the case using given locale.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define USE_IN_EXTENDED_LOCALE_MODEL 1
#include "strncase.c"
diff --git a/string/strncat.c b/string/strncat.c
index 5d48a58632..cc2e24b48b 100644
--- a/string/strncat.c
+++ b/string/strncat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/string/strncmp.c b/string/strncmp.c
index 801d9e11f7..51890989ee 100644
--- a/string/strncmp.c
+++ b/string/strncmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <memcopy.h>
diff --git a/string/strncpy.c b/string/strncpy.c
index bb2abe30e5..f361ac5f74 100644
--- a/string/strncpy.c
+++ b/string/strncpy.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/string/strndup.c b/string/strndup.c
index d73925315d..c0147f3e25 100644
--- a/string/strndup.c
+++ b/string/strndup.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include "config.h"
diff --git a/string/strnlen.c b/string/strnlen.c
index c2ce1eb95a..0b3a12e8b1 100644
--- a/string/strnlen.c
+++ b/string/strnlen.c
@@ -1,5 +1,5 @@
/* Find the length of STRING, but scan at most MAXLEN characters.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 Free Software Foundation, Inc.
Contributed by Jakub Jelinek <jakub@redhat.com>.
Based on strlen written by Torbjorn Granlund (tege@sics.se),
@@ -18,7 +18,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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <stdlib.h>
diff --git a/string/strpbrk.c b/string/strpbrk.c
index adb10afb48..d8cc0e10f6 100644
--- a/string/strpbrk.c
+++ b/string/strpbrk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/string/strrchr.c b/string/strrchr.c
index 3eff914cc0..a39a28acc5 100644
--- a/string/strrchr.c
+++ b/string/strrchr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/string/strsep.c b/string/strsep.c
index cbd670bee3..a71f1b022f 100644
--- a/string/strsep.c
+++ b/string/strsep.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/string/strsignal.c b/string/strsignal.c
index b3305aecb7..b584f7e77a 100644
--- a/string/strsignal.c
+++ b/string/strsignal.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <signal.h>
#include <stdio.h>
diff --git a/string/strspn.c b/string/strspn.c
index 3984cc8d2d..d3e5386d31 100644
--- a/string/strspn.c
+++ b/string/strspn.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <stdint.h>
diff --git a/string/strstr.c b/string/strstr.c
index 265e9f310c..424d0e3801 100644
--- a/string/strstr.c
+++ b/string/strstr.c
@@ -1,5 +1,5 @@
/* Return the offset of one string within another.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,30 +14,19 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-/* This particular implementation was written by Eric Blake, 2008. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LIBC
# include <config.h>
#endif
-/* Specification of strstr. */
#include <string.h>
-#include <stdbool.h>
-
-#ifndef _LIBC
-# define __builtin_expect(expr, val) (expr)
-#endif
-
#define RETURN_TYPE char *
#define AVAILABLE(h, h_l, j, n_l) \
- (((j) + (n_l) <= (h_l)) || ((h_l) += __strnlen ((void*)((h) + (h_l)), 512), \
- (j) + (n_l) <= (h_l)))
-#define CHECK_EOL (1)
-#define RET0_IF_0(a) if (!a) goto ret0
-#define FASTSEARCH(S,C,N) (void*) strchr ((void*)(S), (C))
+ (((j) + (n_l) <= (h_l)) \
+ || ((h_l) += __strnlen ((void*)((h) + (h_l)), (n_l) + 512), \
+ (j) + (n_l) <= (h_l)))
#include "str-two-way.h"
#undef strstr
@@ -46,48 +35,128 @@
#define STRSTR strstr
#endif
-/* Return the first occurrence of NEEDLE in HAYSTACK. Return HAYSTACK
- if NEEDLE is empty, otherwise NULL if NEEDLE is not found in
- HAYSTACK. */
+static inline char *
+strstr2 (const unsigned char *hs, const unsigned char *ne)
+{
+ uint32_t h1 = (ne[0] << 16) | ne[1];
+ uint32_t h2 = 0;
+ for (int c = hs[0]; h1 != h2 && c != 0; c = *++hs)
+ h2 = (h2 << 16) | c;
+ return h1 == h2 ? (char *)hs - 2 : NULL;
+}
+
+static inline char *
+strstr3 (const unsigned char *hs, const unsigned char *ne)
+{
+ uint32_t h1 = ((uint32_t)ne[0] << 24) | (ne[1] << 16) | (ne[2] << 8);
+ uint32_t h2 = 0;
+ for (int c = hs[0]; h1 != h2 && c != 0; c = *++hs)
+ h2 = (h2 | c) << 8;
+ return h1 == h2 ? (char *)hs - 3 : NULL;
+}
+
+/* Hash character pairs so a small shift table can be used. All bits of
+ p[0] are included, but not all bits from p[-1]. So if two equal hashes
+ match on p[-1], p[0] matches too. Hash collisions are harmless and result
+ in smaller shifts. */
+#define hash2(p) (((size_t)(p)[0] - ((size_t)(p)[-1] << 3)) % sizeof (shift))
+
+/* Fast strstr algorithm with guaranteed linear-time performance.
+ Small needles up to size 3 use a dedicated linear search. Longer needles
+ up to size 256 use a novel modified Horspool algorithm. It hashes pairs
+ of characters to quickly skip past mismatches. The main search loop only
+ exits if the last 2 characters match, avoiding unnecessary calls to memcmp
+ and allowing for a larger skip if there is no match. A self-adapting
+ filtering check is used to quickly detect mismatches in long needles.
+ By limiting the needle length to 256, the shift table can be reduced to 8
+ bits per entry, lowering preprocessing overhead and minimizing cache effects.
+ The limit also implies worst-case performance is linear.
+ Needles larger than 256 characters use the linear-time Two-Way algorithm. */
char *
-STRSTR (const char *haystack_start, const char *needle_start)
+STRSTR (const char *haystack, const char *needle)
{
- const char *haystack = haystack_start;
- const char *needle = needle_start;
- size_t needle_len; /* Length of NEEDLE. */
- size_t haystack_len; /* Known minimum length of HAYSTACK. */
- bool ok = true; /* True if NEEDLE is prefix of HAYSTACK. */
-
- /* Determine length of NEEDLE, and in the process, make sure
- HAYSTACK is at least as long (no point processing all of a long
- NEEDLE if HAYSTACK is too short). */
- while (*haystack && *needle)
- ok &= *haystack++ == *needle++;
- if (*needle)
+ const unsigned char *hs = (const unsigned char *) haystack;
+ const unsigned char *ne = (const unsigned char *) needle;
+
+ /* Handle short needle special cases first. */
+ if (ne[0] == '\0')
+ return (char *)hs;
+ hs = (const unsigned char *)strchr ((const char*)hs, ne[0]);
+ if (hs == NULL || ne[1] == '\0')
+ return (char*)hs;
+ if (ne[2] == '\0')
+ return strstr2 (hs, ne);
+ if (ne[3] == '\0')
+ return strstr3 (hs, ne);
+
+ /* Ensure haystack length is at least as long as needle length.
+ Since a match may occur early on in a huge haystack, use strnlen
+ and read ahead a few cachelines for improved performance. */
+ size_t ne_len = strlen ((const char*)ne);
+ size_t hs_len = __strnlen ((const char*)hs, ne_len | 512);
+ if (hs_len < ne_len)
return NULL;
- if (ok)
- return (char *) haystack_start;
-
- /* Reduce the size of haystack using strchr, since it has a smaller
- linear coefficient than the Two-Way algorithm. */
- needle_len = needle - needle_start;
- haystack = strchr (haystack_start + 1, *needle_start);
- if (!haystack || __builtin_expect (needle_len == 1, 0))
- return (char *) haystack;
- needle -= needle_len;
- haystack_len = (haystack > haystack_start + needle_len ? 1
- : needle_len + haystack_start - haystack);
-
- /* Perform the search. Abstract memory is considered to be an array
- of 'unsigned char' values, not an array of 'char' values. See
- ISO C 99 section 6.2.6.1. */
- if (needle_len < LONG_NEEDLE_THRESHOLD)
- return two_way_short_needle ((const unsigned char *) haystack,
- haystack_len,
- (const unsigned char *) needle, needle_len);
- return two_way_long_needle ((const unsigned char *) haystack, haystack_len,
- (const unsigned char *) needle, needle_len);
+
+ /* Check whether we have a match. This improves performance since we
+ avoid initialization overheads. */
+ if (memcmp (hs, ne, ne_len) == 0)
+ return (char *) hs;
+
+ /* Use Two-Way algorithm for very long needles. */
+ if (__glibc_unlikely (ne_len > 256))
+ return two_way_long_needle (hs, hs_len, ne, ne_len);
+
+ const unsigned char *end = hs + hs_len - ne_len;
+ uint8_t shift[256];
+ size_t tmp, shift1;
+ size_t m1 = ne_len - 1;
+ size_t offset = 0;
+
+ /* Initialize bad character shift hash table. */
+ memset (shift, 0, sizeof (shift));
+ for (int i = 1; i < m1; i++)
+ shift[hash2 (ne + i)] = i;
+ /* Shift1 is the amount we can skip after matching the hash of the
+ needle end but not the full needle. */
+ shift1 = m1 - shift[hash2 (ne + m1)];
+ shift[hash2 (ne + m1)] = m1;
+
+ while (1)
+ {
+ if (__glibc_unlikely (hs > end))
+ {
+ end += __strnlen ((const char*)end + m1 + 1, 2048);
+ if (hs > end)
+ return NULL;
+ }
+
+ /* Skip past character pairs not in the needle. */
+ do
+ {
+ hs += m1;
+ tmp = shift[hash2 (hs)];
+ }
+ while (tmp == 0 && hs <= end);
+
+ /* If the match is not at the end of the needle, shift to the end
+ and continue until we match the hash of the needle end. */
+ hs -= tmp;
+ if (tmp < m1)
+ continue;
+
+ /* Hash of the last 2 characters matches. If the needle is long,
+ try to quickly filter out mismatches. */
+ if (m1 < 15 || memcmp (hs + offset, ne + offset, 8) == 0)
+ {
+ if (memcmp (hs, ne, m1) == 0)
+ return (void *) hs;
+
+ /* Adjust filter offset when it doesn't find the mismatch. */
+ offset = (offset >= 8 ? offset : m1) - 8;
+ }
+
+ /* Skip based on matching the hash of the needle end. */
+ hs += shift1;
+ }
}
libc_hidden_builtin_def (strstr)
-
-#undef LONG_NEEDLE_THRESHOLD
diff --git a/string/strtok.c b/string/strtok.c
index 725249f3f4..ea859d214a 100644
--- a/string/strtok.c
+++ b/string/strtok.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/string/strtok_r.c b/string/strtok_r.c
index d0feadff47..1ffb02221e 100644
--- a/string/strtok_r.c
+++ b/string/strtok_r.c
@@ -1,5 +1,5 @@
/* Reentrant string tokenizer. Generic version.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
diff --git a/string/strverscmp.c b/string/strverscmp.c
index fc6265c817..963b2fd6ce 100644
--- a/string/strverscmp.c
+++ b/string/strverscmp.c
@@ -1,7 +1,7 @@
/* Compare strings while treating digits characters numerically.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
- Contributed by Jean-François Bignolles <bignolle@ecoledoc.ibp.fr>, 1997.
+ Contributed by Jean-François Bignolles <bignolle@ecoledoc.ibp.fr>, 1997.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
#include <string.h>
diff --git a/string/strxfrm.c b/string/strxfrm.c
index e898d32a59..9b4c16f3aa 100644
--- a/string/strxfrm.c
+++ b/string/strxfrm.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <locale/localeinfo.h>
diff --git a/string/strxfrm_l.c b/string/strxfrm_l.c
index 5bda9a4b32..56020c47dd 100644
--- a/string/strxfrm_l.c
+++ b/string/strxfrm_l.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Ulrich Drepper <drepper@gnu.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <langinfo.h>
diff --git a/string/swab.c b/string/swab.c
index 28fe2a1ef3..4f3e71af5e 100644
--- a/string/swab.c
+++ b/string/swab.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
diff --git a/string/test-bcopy.c b/string/test-bcopy.c
index 5e06fd5b77..c22dcf6770 100644
--- a/string/test-bcopy.c
+++ b/string/test-bcopy.c
@@ -1,5 +1,5 @@
/* Test and measure bcopy functions.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_BCOPY
#include "test-memmove.c"
diff --git a/string/test-bzero.c b/string/test-bzero.c
index 9ca9bb6ecf..b6da3a6749 100644
--- a/string/test-bzero.c
+++ b/string/test-bzero.c
@@ -1,5 +1,5 @@
/* Test and measure bzero functions.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_BZERO
#include "test-memset.c"
diff --git a/string/test-endian-file-scope.c b/string/test-endian-file-scope.c
index e03063cfbb..6882c3aa88 100644
--- a/string/test-endian-file-scope.c
+++ b/string/test-endian-file-scope.c
@@ -1,5 +1,5 @@
/* Test endian.h endian-conversion macros accepted at file scope.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <endian.h>
#include <stddef.h>
diff --git a/string/test-endian-sign-conversion.c b/string/test-endian-sign-conversion.c
index cc6b5168b6..74b34f9736 100644
--- a/string/test-endian-sign-conversion.c
+++ b/string/test-endian-sign-conversion.c
@@ -1,5 +1,5 @@
/* Test endian.h endian-conversion macros work with -Wsign-conversion.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <endian.h>
#include <stdint.h>
diff --git a/string/test-endian-types.c b/string/test-endian-types.c
index 85872252ff..1e7ad27a61 100644
--- a/string/test-endian-types.c
+++ b/string/test-endian-types.c
@@ -1,5 +1,5 @@
/* Test endian.h endian-conversion macros always return the correct type.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <endian.h>
#include <stdint.h>
diff --git a/string/test-explicit_bzero.c b/string/test-explicit_bzero.c
index 6ec00256e2..dfa5be7a2a 100644
--- a/string/test-explicit_bzero.c
+++ b/string/test-explicit_bzero.c
@@ -1,5 +1,5 @@
/* Test and measure explicit_bzero.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_EXPLICIT_BZERO
#define TEST_BZERO
#include "test-memset.c"
diff --git a/string/test-ffs.c b/string/test-ffs.c
index e5e7579a33..5c560e04f5 100644
--- a/string/test-ffs.c
+++ b/string/test-ffs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Joel Sherrill (jsherril@redstone-emh2.army.mil),
On-Line Applications Research Corporation.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include <stdio.h>
diff --git a/string/test-memccpy.c b/string/test-memccpy.c
index c70eff403f..6861484769 100644
--- a/string/test-memccpy.c
+++ b/string/test-memccpy.c
@@ -1,5 +1,5 @@
/* Test and measure memccpy functions.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_MAIN
#define TEST_NAME "memccpy"
diff --git a/string/test-memchr.c b/string/test-memchr.c
index 546dee5edf..6e96363a6c 100644
--- a/string/test-memchr.c
+++ b/string/test-memchr.c
@@ -1,5 +1,5 @@
/* Test memchr functions.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_MAIN
#ifndef WIDE
diff --git a/string/test-memcmp.c b/string/test-memcmp.c
index 8bb928b04c..762ddc54ff 100644
--- a/string/test-memcmp.c
+++ b/string/test-memcmp.c
@@ -1,5 +1,5 @@
/* Test and measure memcmp functions.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Jakub Jelinek <jakub@redhat.com>, 1999.
Added wmemcmp support by Liubov Dmitrieva <liubov.dmitrieva@gmail.com>, 2011.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_MAIN
#ifdef WIDE
diff --git a/string/test-memcpy.c b/string/test-memcpy.c
index 3c8066da52..3abb1a1ba7 100644
--- a/string/test-memcpy.c
+++ b/string/test-memcpy.c
@@ -1,5 +1,5 @@
/* Test and measure memcpy functions.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef MEMCPY_RESULT
# define MEMCPY_RESULT(dst, len) dst
diff --git a/string/test-memmem.c b/string/test-memmem.c
index 51f58d1eda..e7d7bee050 100644
--- a/string/test-memmem.c
+++ b/string/test-memmem.c
@@ -1,5 +1,5 @@
/* Test and measure memmem functions.
- Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ Copyright (C) 2008-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Ulrich Drepper <drepper@redhat.com>, 2008.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_MAIN
#define TEST_NAME "memmem"
@@ -48,10 +48,10 @@ simple_memmem (const void *haystack, size_t haystack_len, const void *needle,
return NULL;
for (begin = (const char *) haystack; begin <= last_possible; ++begin)
- if (begin[0] == ((const char *) needle)[0] &&
- !memcmp ((const void *) &begin[1],
- (const void *) ((const char *) needle + 1),
- needle_len - 1))
+ if (begin[0] == ((const char *) needle)[0]
+ && !memcmp ((const void *) &begin[1],
+ (const void *) ((const char *) needle + 1),
+ needle_len - 1))
return (void *) begin;
return NULL;
diff --git a/string/test-memmove.c b/string/test-memmove.c
index 64e3651ba4..04ca19da20 100644
--- a/string/test-memmove.c
+++ b/string/test-memmove.c
@@ -1,5 +1,5 @@
/* Test and measure memmove functions.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_MAIN
#ifdef TEST_BCOPY
diff --git a/string/test-mempcpy.c b/string/test-mempcpy.c
index d98ecdd2d9..3c9a908ab8 100644
--- a/string/test-mempcpy.c
+++ b/string/test-mempcpy.c
@@ -1,5 +1,5 @@
/* Test and measure mempcpy functions.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define MEMCPY_RESULT(dst, len) (dst) + (len)
#define MIN_PAGE_SIZE 131072
diff --git a/string/test-memrchr.c b/string/test-memrchr.c
index 23ed762312..e638ac5ec3 100644
--- a/string/test-memrchr.c
+++ b/string/test-memrchr.c
@@ -1,5 +1,5 @@
/* Test and measure memrchr functions.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_MAIN
#define TEST_NAME "memrchr"
diff --git a/string/test-memset.c b/string/test-memset.c
index 60c99f0002..1147491ac6 100644
--- a/string/test-memset.c
+++ b/string/test-memset.c
@@ -1,5 +1,5 @@
/* Test memset functions.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_MAIN
#ifdef TEST_BZERO
diff --git a/string/test-rawmemchr.c b/string/test-rawmemchr.c
index 9161df52c8..3ae64150bb 100644
--- a/string/test-rawmemchr.c
+++ b/string/test-rawmemchr.c
@@ -1,5 +1,5 @@
/* Test and measure memchr functions.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
diff --git a/string/test-stpcpy.c b/string/test-stpcpy.c
index 73a9d1f971..e460bb8da5 100644
--- a/string/test-stpcpy.c
+++ b/string/test-stpcpy.c
@@ -1,5 +1,5 @@
/* Test stpcpy functions.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define STRCPY_RESULT(dst, len) ((dst) + (len))
#define TEST_MAIN
diff --git a/string/test-stpncpy.c b/string/test-stpncpy.c
index ec891f9ec7..31fad58394 100644
--- a/string/test-stpncpy.c
+++ b/string/test-stpncpy.c
@@ -1,5 +1,5 @@
/* Test and measure stpncpy functions.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define STRNCPY_RESULT(dst, len, n) ((dst) + ((len) > (n) ? (n) : (len)))
#define TEST_MAIN
diff --git a/string/test-strcasecmp.c b/string/test-strcasecmp.c
index 6f4e7bee6f..dfc9b82ff5 100644
--- a/string/test-strcasecmp.c
+++ b/string/test-strcasecmp.c
@@ -1,5 +1,5 @@
/* Test and measure strcasecmp functions.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <locale.h>
#include <ctype.h>
diff --git a/string/test-strcasestr.c b/string/test-strcasestr.c
index 9b1088df54..e1176df569 100644
--- a/string/test-strcasestr.c
+++ b/string/test-strcasestr.c
@@ -1,5 +1,5 @@
/* Test and measure strcasestr functions.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Ulrich Drepper <drepper@redhat.com>, 2010.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_MAIN
#define TEST_NAME "strcasestr"
@@ -67,7 +67,8 @@ check_result (impl_t *impl, const char *s1, const char *s2,
if (result != exp_result)
{
error (0, 0, "Wrong result in function %s %s %s", impl->name,
- result, exp_result);
+ (result == NULL) ? "(null)" : result,
+ (exp_result == NULL) ? "(null)" : exp_result);
ret = 1;
return -1;
}
diff --git a/string/test-strcat.c b/string/test-strcat.c
index c9735c5521..51cc23cfb9 100644
--- a/string/test-strcat.c
+++ b/string/test-strcat.c
@@ -1,5 +1,5 @@
/* Test strcat functions.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_MAIN
#ifndef WIDE
diff --git a/string/test-strchr.c b/string/test-strchr.c
index 8d5068cbef..30c6d0b614 100644
--- a/string/test-strchr.c
+++ b/string/test-strchr.c
@@ -1,5 +1,5 @@
/* Test STRCHR functions.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Jakub Jelinek <jakub@redhat.com>, 1999.
Added wcschr support by Liubov Dmitrieva <liubov.dmitrieva@gmail.com>, 2011
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_MAIN
#ifndef WIDE
diff --git a/string/test-strchrnul.c b/string/test-strchrnul.c
index d632d51a76..8698d73a8a 100644
--- a/string/test-strchrnul.c
+++ b/string/test-strchrnul.c
@@ -1,6 +1,6 @@
/* Test and measure strchrnul function.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ 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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define USE_FOR_STRCHRNUL 1
#include "test-strchr.c"
diff --git a/string/test-strcmp.c b/string/test-strcmp.c
index 9bc4a80a28..8ba003df3f 100644
--- a/string/test-strcmp.c
+++ b/string/test-strcmp.c
@@ -1,5 +1,5 @@
/* Test and measure strcmp and wcscmp functions.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Jakub Jelinek <jakub@redhat.com>, 1999.
Added wcscmp support by Liubov Dmitrieva <liubov.dmitrieva@gmail.com>, 2011.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_MAIN
#ifdef WIDE
diff --git a/string/test-strcpy.c b/string/test-strcpy.c
index 2a1bf93da1..822860b45a 100644
--- a/string/test-strcpy.c
+++ b/string/test-strcpy.c
@@ -1,5 +1,5 @@
/* Test and measure strcpy functions.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Jakub Jelinek <jakub@redhat.com>, 1999.
Added wcscpy support by Liubov Dmitrieva <liubov.dmitrieva@gmail.com>, 2011
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifdef WIDE
# include <wchar.h>
@@ -103,11 +103,11 @@ do_test (size_t align1, size_t align2, size_t len, int max_char)
but in wchar_ts, in bytes it will equal to align * (sizeof (wchar_t))
len for wcschr here isn't in bytes but it's number of wchar_t symbols. */
align1 &= 7;
- if ((align1 + len) * sizeof(CHAR) >= page_size)
+ if ((align1 + len) * sizeof (CHAR) >= page_size)
return;
align2 &= 7;
- if ((align2 + len) * sizeof(CHAR) >= page_size)
+ if ((align2 + len) * sizeof (CHAR) >= page_size)
return;
s1 = (CHAR *) (buf1) + align1;
@@ -137,9 +137,9 @@ do_random_tests (void)
0 to 63 since some assembly implementations have separate
prolog for alignments more 48. */
- align1 = random () & (63 / sizeof(CHAR));
+ align1 = random () & (63 / sizeof (CHAR));
if (random () & 1)
- align2 = random () & (63 / sizeof(CHAR));
+ align2 = random () & (63 / sizeof (CHAR));
else
align2 = align1 + (random () & 24);
len = random () & 511;
diff --git a/string/test-strcspn.c b/string/test-strcspn.c
index 3e219644e6..1c31dd6c5b 100644
--- a/string/test-strcspn.c
+++ b/string/test-strcspn.c
@@ -1,5 +1,5 @@
/* Test strcspn functions.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define STRPBRK_RESULT(s, pos) (pos)
#define RES_TYPE size_t
diff --git a/string/test-strerror-errno.c b/string/test-strerror-errno.c
new file mode 100644
index 0000000000..d539f0bad4
--- /dev/null
+++ b/string/test-strerror-errno.c
@@ -0,0 +1,61 @@
+/* BZ #24024 strerror and errno test.
+
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <dlfcn.h>
+#include <errno.h>
+#include <string.h>
+
+#include <support/check.h>
+#include <support/support.h>
+
+/* malloc is allowed to change errno to a value different than 0, even when
+ there is no actual error. This happens for example when the memory
+ allocation through sbrk fails. Simulate this by interposing our own
+ malloc implementation which sets errno to ENOMEM and calls the original
+ malloc. */
+void
+*malloc (size_t size)
+{
+ static void *(*real_malloc) (size_t size);
+
+ if (!real_malloc)
+ real_malloc = dlsym (RTLD_NEXT, "malloc");
+
+ errno = ENOMEM;
+
+ return (*real_malloc) (size);
+}
+
+/* strerror must not change the value of errno. Unfortunately due to GCC bug
+ #88576, this happens when -fmath-errno is used. This simple test checks
+ that it doesn't happen. */
+static int
+do_test (void)
+{
+ char *msg;
+
+ errno = 0;
+ msg = strerror (-3);
+ (void) msg;
+ TEST_COMPARE (errno, 0);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/string/test-string.h b/string/test-string.h
index 883878b2e9..ae07221221 100644
--- a/string/test-string.h
+++ b/string/test-string.h
@@ -1,5 +1,5 @@
/* Test and measure string and memory functions.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/cdefs.h>
diff --git a/string/test-strlen.c b/string/test-strlen.c
index 4c21147f6d..121fe7e638 100644
--- a/string/test-strlen.c
+++ b/string/test-strlen.c
@@ -1,5 +1,5 @@
/* Test and measure STRLEN functions.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Jakub Jelinek <jakub@redhat.com>, 1999.
Added wcslen support by Liubov Dmitrieva <liubov.dmitrieva@gmail.com>, 2011
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_MAIN
#ifndef WIDE
@@ -80,7 +80,7 @@ do_test (size_t align, size_t len)
size_t i;
align &= 63;
- if (align + sizeof(CHAR) * len >= page_size)
+ if (align + sizeof (CHAR) * len >= page_size)
return;
CHAR *buf = (CHAR *) (buf1);
@@ -97,7 +97,7 @@ static void
do_random_tests (void)
{
size_t i, j, n, align, len;
- CHAR *p = (CHAR *) (buf1 + page_size - 512 * sizeof(CHAR));
+ CHAR *p = (CHAR *) (buf1 + page_size - 512 * sizeof (CHAR));
for (n = 0; n < ITERATIONS; n++)
{
@@ -148,16 +148,16 @@ test_main (void)
for (i = 1; i < 8; ++i)
{
- do_test (sizeof(CHAR) * i, i);
+ do_test (sizeof (CHAR) * i, i);
do_test (0, i);
}
for (i = 2; i <= 12; ++i)
{
do_test (0, 1 << i);
- do_test (sizeof(CHAR) * 7, 1 << i);
- do_test (sizeof(CHAR) * i, 1 << i);
- do_test (sizeof(CHAR) * i, (size_t)((1 << i) / 1.5));
+ do_test (sizeof (CHAR) * 7, 1 << i);
+ do_test (sizeof (CHAR) * i, 1 << i);
+ do_test (sizeof (CHAR) * i, (size_t)((1 << i) / 1.5));
}
do_random_tests ();
diff --git a/string/test-strncasecmp.c b/string/test-strncasecmp.c
index c117dd3662..cb44528267 100644
--- a/string/test-strncasecmp.c
+++ b/string/test-strncasecmp.c
@@ -1,5 +1,5 @@
/* Test and measure strncasecmp functions.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <locale.h>
#include <ctype.h>
diff --git a/string/test-strncat.c b/string/test-strncat.c
index 0ddd94ea66..c7bbbf9576 100644
--- a/string/test-strncat.c
+++ b/string/test-strncat.c
@@ -1,5 +1,5 @@
/* Test strncat functions.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
The GNU C Library is free software; you can redistribute it and/or
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_MAIN
#ifndef WIDE
diff --git a/string/test-strncmp.c b/string/test-strncmp.c
index ff2ac3e4c6..52638a9fc3 100644
--- a/string/test-strncmp.c
+++ b/string/test-strncmp.c
@@ -1,5 +1,5 @@
/* Test strncmp and wcsncmp functions.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_MAIN
#ifdef WIDE
diff --git a/string/test-strncpy.c b/string/test-strncpy.c
index ff4240cf5c..771ee26c60 100644
--- a/string/test-strncpy.c
+++ b/string/test-strncpy.c
@@ -1,5 +1,5 @@
/* Test strncpy functions.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifdef WIDE
# include <wchar.h>
diff --git a/string/test-strnlen.c b/string/test-strnlen.c
index 1eec1ba83a..9ec745856f 100644
--- a/string/test-strnlen.c
+++ b/string/test-strnlen.c
@@ -1,5 +1,5 @@
/* Test strlen functions.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_MAIN
#ifndef WIDE
diff --git a/string/test-strpbrk.c b/string/test-strpbrk.c
index bc373063aa..bdf156cead 100644
--- a/string/test-strpbrk.c
+++ b/string/test-strpbrk.c
@@ -1,5 +1,5 @@
/* Test and measure strpbrk functions.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef WIDE
# define CHAR char
diff --git a/string/test-strrchr.c b/string/test-strrchr.c
index e73fa01a3c..220e25117d 100644
--- a/string/test-strrchr.c
+++ b/string/test-strrchr.c
@@ -1,5 +1,5 @@
/* Test and measure STRCHR functions.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Jakub Jelinek <jakub@redhat.com>, 1999.
Added wcsrrchr support by Liubov Dmitrieva <liubov.dmitrieva@gmail.com>,
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_MAIN
#ifdef WIDE
@@ -86,7 +86,7 @@ do_test (size_t align, size_t pos, size_t len, int seek_char, int max_char)
CHAR *buf = (CHAR *) buf1;
align &= 7;
- if ( (align + len) * sizeof(CHAR) >= page_size)
+ if ( (align + len) * sizeof (CHAR) >= page_size)
return;
for (i = 0; i < len; ++i)
@@ -125,7 +125,7 @@ do_random_tests (void)
for (n = 0; n < ITERATIONS; n++)
{
- align = random () & (63 / sizeof(CHAR));
+ align = random () & (63 / sizeof (CHAR));
/* For wcsrchr: align here means align not in bytes, but in wchar_ts,
in bytes it will equal to align * (sizeof (wchar_t)).
For strrchr we need to check all alignments from 0 to 63 since
diff --git a/string/test-strspn.c b/string/test-strspn.c
index 533c3e9528..d2e184f2bb 100644
--- a/string/test-strspn.c
+++ b/string/test-strspn.c
@@ -1,5 +1,5 @@
/* Test and measure strspn functions.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_MAIN
#ifndef WIDE
diff --git a/string/test-strstr.c b/string/test-strstr.c
index 8d99716ff3..049f0e10e8 100644
--- a/string/test-strstr.c
+++ b/string/test-strstr.c
@@ -1,5 +1,5 @@
/* Test and measure strstr functions.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Ulrich Drepper <drepper@redhat.com>, 2010.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_MAIN
#define TEST_NAME "strstr"
@@ -66,7 +66,8 @@ check_result (impl_t *impl, const char *s1, const char *s2,
if (result != exp_result)
{
error (0, 0, "Wrong result in function %s %s %s", impl->name,
- result, exp_result);
+ (result == NULL) ? "(null)" : result,
+ (exp_result == NULL) ? "(null)" : exp_result);
ret = 1;
return -1;
}
@@ -138,19 +139,74 @@ check1 (void)
static void
check2 (void)
{
- const char s1[] = ", enable_static, \0, enable_shared, ";
+ const char s1_stack[] = ", enable_static, \0, enable_shared, ";
+ const size_t s1_byte_count = 18;
+ const char *s2_stack = &(s1_stack[s1_byte_count]);
+ const size_t s2_byte_count = 18;
char *exp_result;
- char *s2 = (void *) buf1 + page_size - 18;
+ const size_t page_size_real = getpagesize ();
- strcpy (s2, s1);
- exp_result = stupid_strstr (s1, s1 + 18);
+ /* Haystack at end of page. The following page is protected. */
+ char *s1_page_end = (void *) buf1 + page_size - s1_byte_count;
+ strcpy (s1_page_end, s1_stack);
+
+ /* Haystack which crosses a page boundary.
+ Note: page_size is at least 2 * getpagesize. See test_init. */
+ char *s1_page_cross = (void *) buf1 + page_size_real - 8;
+ strcpy (s1_page_cross, s1_stack);
+
+ /* Needle at end of page. The following page is protected. */
+ char *s2_page_end = (void *) buf2 + page_size - s2_byte_count;
+ strcpy (s2_page_end, s2_stack);
+
+ /* Needle which crosses a page boundary.
+ Note: page_size is at least 2 * getpagesize. See test_init. */
+ char *s2_page_cross = (void *) buf2 + page_size_real - 8;
+ strcpy (s2_page_cross, s2_stack);
+
+ exp_result = stupid_strstr (s1_stack, s2_stack);
FOR_EACH_IMPL (impl, 0)
{
- check_result (impl, s1, s1 + 18, exp_result);
- check_result (impl, s2, s1 + 18, exp_result);
+ check_result (impl, s1_stack, s2_stack, exp_result);
+ check_result (impl, s1_stack, s2_page_end, exp_result);
+ check_result (impl, s1_stack, s2_page_cross, exp_result);
+
+ check_result (impl, s1_page_end, s2_stack, exp_result);
+ check_result (impl, s1_page_end, s2_page_end, exp_result);
+ check_result (impl, s1_page_end, s2_page_cross, exp_result);
+
+ check_result (impl, s1_page_cross, s2_stack, exp_result);
+ check_result (impl, s1_page_cross, s2_page_end, exp_result);
+ check_result (impl, s1_page_cross, s2_page_cross, exp_result);
}
}
+#define N 1024
+
+static void
+pr23637 (void)
+{
+ char *h = (char*) buf1;
+ char *n = (char*) buf2;
+
+ for (int i = 0; i < N; i++)
+ {
+ n[i] = 'x';
+ h[i] = ' ';
+ h[i + N] = 'x';
+ }
+
+ n[N] = '\0';
+ h[N * 2] = '\0';
+
+ /* Ensure we don't match at the first 'x'. */
+ h[0] = 'x';
+
+ char *exp_result = stupid_strstr (h, n);
+ FOR_EACH_IMPL (impl, 0)
+ check_result (impl, h, n, exp_result);
+}
+
static int
test_main (void)
{
@@ -158,6 +214,7 @@ test_main (void)
check1 ();
check2 ();
+ pr23637 ();
printf ("%23s", "");
FOR_EACH_IMPL (impl, 0)
@@ -202,6 +259,9 @@ test_main (void)
do_test (15, 9, hlen, klen, 1);
do_test (15, 15, hlen, klen, 0);
do_test (15, 15, hlen, klen, 1);
+
+ do_test (15, 15, hlen + klen * 4, klen * 4, 0);
+ do_test (15, 15, hlen + klen * 4, klen * 4, 1);
}
do_test (0, 0, page_size - 1, 16, 0);
diff --git a/string/testcopy.c b/string/testcopy.c
index f14917befe..34d9f3605b 100644
--- a/string/testcopy.c
+++ b/string/testcopy.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1990-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1990-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Torbjorn Granlund (tege@sics.se).
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include <stdio.h>
diff --git a/string/tester.c b/string/tester.c
index 601eb01b55..128d2c7731 100644
--- a/string/tester.c
+++ b/string/tester.c
@@ -1,5 +1,5 @@
/* Tester for string functions.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _GNU_SOURCE
#define _GNU_SOURCE
@@ -34,6 +34,20 @@
#include <fcntl.h>
#include <libc-diag.h>
+/* This file tests a range of corner cases of string functions,
+ including cases where truncation occurs or where sizes specified
+ are larger than the actual buffers, which result in various
+ warnings. */
+DIAG_IGNORE_NEEDS_COMMENT (8, "-Warray-bounds");
+DIAG_IGNORE_NEEDS_COMMENT (5.0, "-Wmemset-transposed-args");
+#if __GNUC_PREREQ (7, 0)
+DIAG_IGNORE_NEEDS_COMMENT (9, "-Wrestrict");
+DIAG_IGNORE_NEEDS_COMMENT (7, "-Wstringop-overflow=");
+#endif
+#if __GNUC_PREREQ (8, 0)
+DIAG_IGNORE_NEEDS_COMMENT (8, "-Wstringop-truncation");
+#endif
+
#define STREQ(a, b) (strcmp((a), (b)) == 0)
@@ -264,15 +278,8 @@ test_stpncpy (void)
{
it = "stpncpy";
memset (one, 'x', sizeof (one));
- DIAG_PUSH_NEEDS_COMMENT;
-#if __GNUC_PREREQ (8, 0)
- /* GCC 8 warns about stpncpy truncating output; this is deliberately
- tested here. */
- DIAG_IGNORE_NEEDS_COMMENT (8, "-Wstringop-truncation");
-#endif
check (stpncpy (one, "abc", 2) == one + 2, 1);
check (stpncpy (one, "abc", 3) == one + 3, 2);
- DIAG_POP_NEEDS_COMMENT;
check (stpncpy (one, "abc", 4) == one + 3, 3);
check (one[3] == '\0' && one[4] == 'x', 4);
check (stpncpy (one, "abcd", 5) == one + 4, 5);
@@ -360,106 +367,41 @@ test_strncat (void)
mechanism. */
it = "strncat";
(void) strcpy (one, "ijk");
- DIAG_PUSH_NEEDS_COMMENT;
-#if __GNUC_PREREQ (7, 0)
- /* GCC 7 warns about the size passed to strncat being larger than
- the size of the buffer; this is deliberately tested here.. */
- DIAG_IGNORE_NEEDS_COMMENT (7, "-Wstringop-overflow=");
-#endif
check (strncat (one, "lmn", 99) == one, 1); /* Returned value. */
- DIAG_POP_NEEDS_COMMENT;
equal (one, "ijklmn", 2); /* Basic test. */
(void) strcpy (one, "x");
- DIAG_PUSH_NEEDS_COMMENT;
-#if __GNUC_PREREQ (7, 0)
- /* GCC 7 warns about the size passed to strncat being larger than
- the size of the buffer; this is deliberately tested here.. */
- DIAG_IGNORE_NEEDS_COMMENT (7, "-Wstringop-overflow=");
-#endif
(void) strncat (one, "yz", 99);
- DIAG_POP_NEEDS_COMMENT;
equal (one, "xyz", 3); /* Writeover. */
equal (one+4, "mn", 4); /* Wrote too much? */
(void) strcpy (one, "gh");
(void) strcpy (two, "ef");
- DIAG_PUSH_NEEDS_COMMENT;
-#if __GNUC_PREREQ (7, 0)
- /* GCC 7 warns about the size passed to strncat being larger than
- the size of the buffer; this is deliberately tested here; GCC 8
- gives a -Warray-bounds warning about this. */
- DIAG_IGNORE_NEEDS_COMMENT (7, "-Wstringop-overflow=");
-#endif
- DIAG_IGNORE_NEEDS_COMMENT (8, "-Warray-bounds");
(void) strncat (one, two, 99);
- DIAG_POP_NEEDS_COMMENT;
equal (one, "ghef", 5); /* Basic test encore. */
equal (two, "ef", 6); /* Stomped on source? */
(void) strcpy (one, "");
- DIAG_PUSH_NEEDS_COMMENT;
-#if __GNUC_PREREQ (7, 0)
- /* GCC 7 warns about the size passed to strncat being larger than
- the size of the buffer; this is deliberately tested here.. */
- DIAG_IGNORE_NEEDS_COMMENT (7, "-Wstringop-overflow=");
-#endif
(void) strncat (one, "", 99);
- DIAG_POP_NEEDS_COMMENT;
equal (one, "", 7); /* Boundary conditions. */
(void) strcpy (one, "ab");
- DIAG_PUSH_NEEDS_COMMENT;
-#if __GNUC_PREREQ (7, 0)
- /* GCC 7 warns about the size passed to strncat being larger than
- the size of the buffer; this is deliberately tested here.. */
- DIAG_IGNORE_NEEDS_COMMENT (7, "-Wstringop-overflow=");
-#endif
(void) strncat (one, "", 99);
- DIAG_POP_NEEDS_COMMENT;
equal (one, "ab", 8);
(void) strcpy (one, "");
- DIAG_PUSH_NEEDS_COMMENT;
-#if __GNUC_PREREQ (7, 0)
- /* GCC 7 warns about the size passed to strncat being larger than
- the size of the buffer; this is deliberately tested here.. */
- DIAG_IGNORE_NEEDS_COMMENT (7, "-Wstringop-overflow=");
-#endif
(void) strncat (one, "cd", 99);
- DIAG_POP_NEEDS_COMMENT;
equal (one, "cd", 9);
(void) strcpy (one, "ab");
- DIAG_PUSH_NEEDS_COMMENT;
-#if __GNUC_PREREQ (8, 0)
- /* GCC 8 warns about strncat truncating output; this is deliberately
- tested here. */
- DIAG_IGNORE_NEEDS_COMMENT (8, "-Wstringop-truncation");
-#endif
(void) strncat (one, "cdef", 2);
- DIAG_POP_NEEDS_COMMENT;
equal (one, "abcd", 10); /* Count-limited. */
(void) strncat (one, "gh", 0);
equal (one, "abcd", 11); /* Zero count. */
- DIAG_PUSH_NEEDS_COMMENT;
-#if __GNUC_PREREQ (7, 0)
- /* GCC 8 warns about strncat bound equal to source length; this is
- deliberately tested here. */
- DIAG_IGNORE_NEEDS_COMMENT (8, "-Wstringop-overflow=");
-#endif
(void) strncat (one, "gh", 2);
- DIAG_POP_NEEDS_COMMENT;
equal (one, "abcdgh", 12); /* Count and length equal. */
- DIAG_PUSH_NEEDS_COMMENT;
-#if __GNUC_PREREQ (7, 0)
- /* GCC 7 warns about the size passed to strncat being larger than
- the size of the buffer; this is deliberately tested here.. */
- DIAG_IGNORE_NEEDS_COMMENT (7, "-Wstringop-overflow=");
-#endif
(void) strncat (one, "ij", (size_t)-1); /* set sign bit in count */
- DIAG_POP_NEEDS_COMMENT;
equal (one, "abcdghij", 13);
int ntest = 14;
@@ -478,22 +420,8 @@ test_strncat (void)
buf1[n2 + n3] = '\0';
strcpy (buf2 + n1, "123");
- DIAG_PUSH_NEEDS_COMMENT;
-#if __GNUC_PREREQ (7, 0)
- /* GCC 7 warns about the size passed to strncat being
- larger than the size of the buffer; this is
- deliberately tested here; GCC 8 gives a -Warray-bounds
- warning about this. */
- DIAG_IGNORE_NEEDS_COMMENT (7, "-Wstringop-overflow=");
- /* GCC 9 as of 2018-06-14 warns that the size passed is
- large enough that, if it were the actual object size,
- the objects would have to overlap. */
- DIAG_IGNORE_NEEDS_COMMENT (9, "-Wrestrict");
-#endif
- DIAG_IGNORE_NEEDS_COMMENT (8, "-Warray-bounds");
check (strncat (buf1 + n2, buf2 + n1, ~((size_t) 0) - n4)
== buf1 + n2, ntest);
- DIAG_POP_NEEDS_COMMENT;
if (errors == olderrors)
for (size_t i = 0; i < sizeof (buf1); ++i)
{
@@ -552,25 +480,11 @@ test_strncpy (void)
equal (one, "abc", 2); /* Did the copy go right? */
(void) strcpy (one, "abcdefgh");
- DIAG_PUSH_NEEDS_COMMENT;
-#if __GNUC_PREREQ (8, 0)
- /* GCC 8 warns about strncpy truncating output; this is deliberately
- tested here. */
- DIAG_IGNORE_NEEDS_COMMENT (8, "-Wstringop-truncation");
-#endif
(void) strncpy (one, "xyz", 2);
- DIAG_POP_NEEDS_COMMENT;
equal (one, "xycdefgh", 3); /* Copy cut by count. */
(void) strcpy (one, "abcdefgh");
- DIAG_PUSH_NEEDS_COMMENT;
-#if __GNUC_PREREQ (8, 0)
- /* GCC 8 warns about strncpy truncating output; this is deliberately
- tested here. */
- DIAG_IGNORE_NEEDS_COMMENT (8, "-Wstringop-truncation");
-#endif
(void) strncpy (one, "xyz", 3); /* Copy cut just before NUL. */
- DIAG_POP_NEEDS_COMMENT;
equal (one, "xyzdefgh", 4);
(void) strcpy (one, "abcdefgh");
@@ -585,14 +499,7 @@ test_strncpy (void)
equal (one+5, "fgh", 9);
(void) strcpy (one, "abc");
- DIAG_PUSH_NEEDS_COMMENT;
-#if __GNUC_PREREQ (8, 0)
- /* GCC 8 warns about strncpy truncating output; this is deliberately
- tested here. */
- DIAG_IGNORE_NEEDS_COMMENT (8, "-Wstringop-truncation");
-#endif
(void) strncpy (one, "xyz", 0); /* Zero-length copy. */
- DIAG_POP_NEEDS_COMMENT;
equal (one, "abc", 10);
(void) strncpy (one, "", 2); /* Zero-length source. */
@@ -811,11 +718,11 @@ test_memrchr (void)
bugs due to unrolled loops (assuming unrolling is limited to no
more than 128 byte chunks: */
{
- char buf[128 + sizeof(long)];
+ char buf[128 + sizeof (long)];
long align, len, i, pos, n = 9;
- for (align = 0; align < (long) sizeof(long); ++align) {
- for (len = 0; len < (long) (sizeof(buf) - align); ++len) {
+ for (align = 0; align < (long) sizeof (long); ++align) {
+ for (len = 0; len < (long) (sizeof (buf) - align); ++len) {
for (i = 0; i < len; ++i)
buf[align + i] = 'x'; /* don't depend on memset... */
@@ -1230,11 +1137,11 @@ test_memchr (void)
bugs due to unrolled loops (assuming unrolling is limited to no
more than 128 byte chunks: */
{
- char buf[128 + sizeof(long)];
+ char buf[128 + sizeof (long)];
long align, len, i, pos;
- for (align = 0; align < (long) sizeof(long); ++align) {
- for (len = 0; len < (long) (sizeof(buf) - align); ++len) {
+ for (align = 0; align < (long) sizeof (long); ++align) {
+ for (len = 0; len < (long) (sizeof (buf) - align); ++len) {
for (i = 0; i < len; ++i) {
buf[align + i] = 'x'; /* don't depend on memset... */
}
@@ -1411,15 +1318,8 @@ test_memset (void)
check(memset(one+1, 'x', 3) == one+1, 1); /* Return value. */
equal(one, "axxxefgh", 2); /* Basic test. */
- DIAG_PUSH_NEEDS_COMMENT;
-#if __GNUC_PREREQ (5, 0)
- /* GCC 5.0 warns about a zero-length memset because the arguments to memset
- may be in the wrong order. But we really want to test this. */
- DIAG_IGNORE_NEEDS_COMMENT (5.0, "-Wmemset-transposed-args")
-#endif
(void) memset(one+2, 'y', 0);
equal(one, "axxxefgh", 3); /* Zero-length set. */
- DIAG_POP_NEEDS_COMMENT;
(void) memset(one+5, 0, 1);
equal(one, "axxxe", 4); /* Zero fill. */
diff --git a/string/tst-bswap.c b/string/tst-bswap.c
index 7b8ce4a3fc..366dbfa9c6 100644
--- a/string/tst-bswap.c
+++ b/string/tst-bswap.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <byteswap.h>
#include <stdio.h>
diff --git a/string/tst-cmp.c b/string/tst-cmp.c
index 3b9f7b2506..7a272876d9 100644
--- a/string/tst-cmp.c
+++ b/string/tst-cmp.c
@@ -1,5 +1,5 @@
/* Alignment/padding coverage test for string comparison.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This performs test comparisons with various (mis)alignments and
characters in the padding. It is partly a regression test for bug
diff --git a/string/tst-inlcall.c b/string/tst-inlcall.c
index 9b355aa997..64f481b5a2 100644
--- a/string/tst-inlcall.c
+++ b/string/tst-inlcall.c
@@ -1,5 +1,5 @@
/* Tester for calling inline string functions.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _GNU_SOURCE
#define _GNU_SOURCE
diff --git a/string/tst-strcoll-overflow.c b/string/tst-strcoll-overflow.c
index 4b83e6cba5..24cb4fce18 100644
--- a/string/tst-strcoll-overflow.c
+++ b/string/tst-strcoll-overflow.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2013-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <locale.h>
#include <stdio.h>
diff --git a/string/tst-strtok_r.c b/string/tst-strtok_r.c
index 463b2ef765..cded901744 100644
--- a/string/tst-strtok_r.c
+++ b/string/tst-strtok_r.c
@@ -1,5 +1,5 @@
/* Test strtok_r regression for BZ #14229.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TEST_MAIN
#define BUF1PAGES 1
diff --git a/string/tst-xbzero-opt.c b/string/tst-xbzero-opt.c
index 898345b288..359ab987a4 100644
--- a/string/tst-xbzero-opt.c
+++ b/string/tst-xbzero-opt.c
@@ -1,5 +1,5 @@
/* Test that explicit_bzero block clears are not optimized out.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This test is conceptually based on a test designed by Matthew
Dempsky for the OpenBSD regression suite:
diff --git a/string/wordcopy.c b/string/wordcopy.c
index ceaec858c1..9476b68569 100644
--- a/string/wordcopy.c
+++ b/string/wordcopy.c
@@ -1,5 +1,5 @@
/* _memcopy.c -- subroutines for memory copy functions.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* BE VERY CAREFUL IF YOU CHANGE THIS CODE...! */
diff --git a/string/xpg-strerror.c b/string/xpg-strerror.c
index 6ea786c226..e31bf1c777 100644
--- a/string/xpg-strerror.c
+++ b/string/xpg-strerror.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
diff --git a/sunrpc/Makefile b/sunrpc/Makefile
index 85b0b3356a..cc57b3a43c 100644
--- a/sunrpc/Makefile
+++ b/sunrpc/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1994-2018 Free Software Foundation, Inc.
+# Copyright (C) 1994-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
# Sub-makefile for sunrpc portion of the library.
diff --git a/sunrpc/auth_des.c b/sunrpc/auth_des.c
index 5b6f985bc2..d26820a701 100644
--- a/sunrpc/auth_des.c
+++ b/sunrpc/auth_des.c
@@ -41,6 +41,7 @@
#include <rpc/xdr.h>
#include <netinet/in.h> /* XXX: just to get htonl() and ntohl() */
#include <sys/socket.h>
+#include <time.h>
#include <shlib-compat.h>
#define MILLION 1000000L
@@ -246,15 +247,15 @@ authdes_marshal (AUTH *auth, XDR *xdrs)
int status;
int len;
register int32_t *ixdr;
- struct timeval tval;
+ struct timespec now;
/*
* Figure out the "time", accounting for any time difference
* with the server if necessary.
*/
- __gettimeofday (&tval, (struct timezone *) NULL);
- ad->ad_timestamp.tv_sec = tval.tv_sec + ad->ad_timediff.tv_sec;
- ad->ad_timestamp.tv_usec = tval.tv_usec + ad->ad_timediff.tv_usec;
+ __clock_gettime (CLOCK_REALTIME, &now);
+ ad->ad_timestamp.tv_sec = now.tv_sec + ad->ad_timediff.tv_sec;
+ ad->ad_timestamp.tv_usec = (now.tv_nsec / 1000) + ad->ad_timediff.tv_usec;
if (ad->ad_timestamp.tv_usec >= MILLION)
{
ad->ad_timestamp.tv_usec -= MILLION;
@@ -445,21 +446,23 @@ authdes_destroy (AUTH *auth)
static bool_t
synchronize (struct sockaddr *syncaddr, struct rpc_timeval *timep)
{
- struct timeval mytime;
+ struct timespec mytime;
struct rpc_timeval timeout;
+ long int myusec;
timeout.tv_sec = RTIME_TIMEOUT;
timeout.tv_usec = 0;
if (rtime ((struct sockaddr_in *) syncaddr, timep, &timeout) < 0)
return FALSE;
- __gettimeofday (&mytime, (struct timezone *) NULL);
+ __clock_gettime (CLOCK_REALTIME, &mytime);
timep->tv_sec -= mytime.tv_sec;
- if (mytime.tv_usec > timep->tv_usec)
+ myusec = mytime.tv_nsec / 1000;
+ if (myusec > timep->tv_usec)
{
timep->tv_sec -= 1;
timep->tv_usec += MILLION;
}
- timep->tv_usec -= mytime.tv_usec;
+ timep->tv_usec -= myusec;
return TRUE;
}
diff --git a/sunrpc/auth_unix.c b/sunrpc/auth_unix.c
index b035fdd870..ff0d2eb933 100644
--- a/sunrpc/auth_unix.c
+++ b/sunrpc/auth_unix.c
@@ -43,6 +43,7 @@
#include <stdio.h>
#include <string.h>
#include <unistd.h>
+#include <time.h>
#include <libintl.h>
#include <sys/param.h>
#include <wchar.h>
@@ -96,7 +97,7 @@ authunix_create (char *machname, uid_t uid, gid_t gid, int len,
{
struct authunix_parms aup;
char mymem[MAX_AUTH_BYTES];
- struct timeval now;
+ struct timespec now;
XDR xdrs;
AUTH *auth;
struct audata *au;
@@ -122,7 +123,7 @@ no_memory:
/*
* fill in param struct from the given params
*/
- (void) __gettimeofday (&now, (struct timezone *) 0);
+ __clock_gettime (CLOCK_REALTIME, &now);
aup.aup_time = now.tv_sec;
aup.aup_machname = machname;
aup.aup_uid = uid;
@@ -276,7 +277,7 @@ authunix_refresh (AUTH *auth)
{
struct audata *au = AUTH_PRIVATE (auth);
struct authunix_parms aup;
- struct timeval now;
+ struct timespec now;
XDR xdrs;
int stat;
@@ -297,7 +298,7 @@ authunix_refresh (AUTH *auth)
goto done;
/* update the time and serialize in place */
- (void) __gettimeofday (&now, (struct timezone *) 0);
+ __clock_gettime (CLOCK_REALTIME, &now);
aup.aup_time = now.tv_sec;
xdrs.x_op = XDR_ENCODE;
XDR_SETPOS (&xdrs, 0);
diff --git a/sunrpc/clnt_udp.c b/sunrpc/clnt_udp.c
index c2436e3ebc..ee79b09b40 100644
--- a/sunrpc/clnt_udp.c
+++ b/sunrpc/clnt_udp.c
@@ -57,6 +57,7 @@
#include <kernel-features.h>
#include <inet/net-internal.h>
#include <shlib-compat.h>
+#include <libc-diag.h>
extern u_long _create_xid (void);
@@ -290,7 +291,17 @@ clntudp_call (/* client handle */
int anyup; /* any network interface up */
struct deadline_current_time current_time = __deadline_current_time ();
+ /* GCC 10 for MIPS reports total_deadline as possibly used
+ uninitialized; see
+ <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91691>. In fact it
+ is initialized conditionally and only ever used under the same
+ condition. The same warning is also disabled in
+ inet/net-internal.h because in some other configurations GCC
+ gives the warning in an inline function. */
+ DIAG_PUSH_NEEDS_COMMENT;
+ DIAG_IGNORE_NEEDS_COMMENT (10, "-Wmaybe-uninitialized");
struct deadline total_deadline; /* Determined once by overall timeout. */
+ DIAG_POP_NEEDS_COMMENT;
struct deadline response_deadline; /* Determined anew for each query. */
/* Choose the timeout value. For non-sending usage (xargs == NULL),
diff --git a/sunrpc/create_xid.c b/sunrpc/create_xid.c
index 63e586f504..c692c1eb92 100644
--- a/sunrpc/create_xid.c
+++ b/sunrpc/create_xid.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (c) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <stdlib.h>
@@ -39,10 +39,10 @@ _create_xid (void)
pid_t pid = getpid ();
if (is_initialized != pid)
{
- struct timeval now;
+ struct timespec now;
- __gettimeofday (&now, (struct timezone *) 0);
- __srand48_r (now.tv_sec ^ now.tv_usec ^ pid,
+ __clock_gettime (CLOCK_REALTIME, &now);
+ __srand48_r (now.tv_sec ^ now.tv_nsec ^ pid,
&__rpc_lrand48_data);
is_initialized = pid;
}
diff --git a/sunrpc/des_impl.c b/sunrpc/des_impl.c
index d1d2edfbc8..dd5b9b6d19 100644
--- a/sunrpc/des_impl.c
+++ b/sunrpc/des_impl.c
@@ -3,7 +3,7 @@
/* 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 <http://www.gnu.org/licenses/> to obtain a copy. */
+/* see <https://www.gnu.org/licenses/> to obtain a copy. */
#include <string.h>
#include <stdint.h>
#include "des.h"
diff --git a/sunrpc/getrpcbyname.c b/sunrpc/getrpcbyname.c
index df9baea21a..51658bb73c 100644
--- a/sunrpc/getrpcbyname.c
+++ b/sunrpc/getrpcbyname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <rpc/netdb.h>
diff --git a/sunrpc/getrpcbyname_r.c b/sunrpc/getrpcbyname_r.c
index e0e1a370c3..e68c4d451f 100644
--- a/sunrpc/getrpcbyname_r.c
+++ b/sunrpc/getrpcbyname_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <rpc/netdb.h>
diff --git a/sunrpc/getrpcbynumber.c b/sunrpc/getrpcbynumber.c
index 048f8d361e..c449bf25e2 100644
--- a/sunrpc/getrpcbynumber.c
+++ b/sunrpc/getrpcbynumber.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <rpc/netdb.h>
diff --git a/sunrpc/getrpcbynumber_r.c b/sunrpc/getrpcbynumber_r.c
index 7b13b99f48..ec68228a19 100644
--- a/sunrpc/getrpcbynumber_r.c
+++ b/sunrpc/getrpcbynumber_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <rpc/netdb.h>
diff --git a/sunrpc/getrpcent.c b/sunrpc/getrpcent.c
index 7022e7e2e9..eac8ad0c78 100644
--- a/sunrpc/getrpcent.c
+++ b/sunrpc/getrpcent.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <rpc/netdb.h>
diff --git a/sunrpc/getrpcent_r.c b/sunrpc/getrpcent_r.c
index b7aa254baf..e2e286148c 100644
--- a/sunrpc/getrpcent_r.c
+++ b/sunrpc/getrpcent_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <netdb.h>
diff --git a/sunrpc/getrpcport.c b/sunrpc/getrpcport.c
index f87f6106c1..3ce7e5d2d8 100644
--- a/sunrpc/getrpcport.c
+++ b/sunrpc/getrpcport.c
@@ -1,5 +1,5 @@
/* Obtain the RPC port number for an RPC service on a host.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
/*
* Copyright (c) 2010, Oracle America, Inc.
diff --git a/sunrpc/netname.c b/sunrpc/netname.c
index 4e3730cea0..b5bec98829 100644
--- a/sunrpc/netname.c
+++ b/sunrpc/netname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <unistd.h>
diff --git a/sunrpc/publickey.c b/sunrpc/publickey.c
index 9c44760e04..168a09a1b7 100644
--- a/sunrpc/publickey.c
+++ b/sunrpc/publickey.c
@@ -1,5 +1,5 @@
/* Get public or secret key from key server.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <rpc/netdb.h>
diff --git a/sunrpc/rpc/auth_des.h b/sunrpc/rpc/auth_des.h
index 24fd4d1279..3b7eaf476c 100644
--- a/sunrpc/rpc/auth_des.h
+++ b/sunrpc/rpc/auth_des.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _RPC_AUTH_DES_H
#define _RPC_AUTH_DES_H 1
diff --git a/sunrpc/rpc/svc.h b/sunrpc/rpc/svc.h
index 64fa4cf2e1..b7c17cf337 100644
--- a/sunrpc/rpc/svc.h
+++ b/sunrpc/rpc/svc.h
@@ -1,7 +1,7 @@
/*
* svc.h, Server-side remote procedure call interface.
*
- * Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2012-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
@@ -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
- * <http://www.gnu.org/licenses/>.
+ * <https://www.gnu.org/licenses/>.
*
* Copyright (c) 2010, Oracle America, Inc.
*
diff --git a/sunrpc/rpc_gethostbyname.c b/sunrpc/rpc_gethostbyname.c
index 18504976d4..9cde6c6c66 100644
--- a/sunrpc/rpc_gethostbyname.c
+++ b/sunrpc/rpc_gethostbyname.c
@@ -1,5 +1,5 @@
/* IPv4-only variant of gethostbyname.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <netdb.h>
diff --git a/sunrpc/rpcsvc/bootparam.h b/sunrpc/rpcsvc/bootparam.h
index d49aeb8494..671cfff89d 100644
--- a/sunrpc/rpcsvc/bootparam.h
+++ b/sunrpc/rpcsvc/bootparam.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _RPCSVC_BOOTPARAM_H
#define _RPCSVC_BOOTPARAM_H
diff --git a/sunrpc/svc.c b/sunrpc/svc.c
index 90e84e2cd2..3d35b0234a 100644
--- a/sunrpc/svc.c
+++ b/sunrpc/svc.c
@@ -4,7 +4,7 @@
* There are two sets of procedures here. The xprt routines are
* for handling transport handles. The svc routines handle the
* list of service routines.
- * Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2002-2019 Free Software Foundation, Inc.
* This file is part of the GNU C Library.
* Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
*
@@ -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
- * <http://www.gnu.org/licenses/>.
+ * <https://www.gnu.org/licenses/>.
*
* Copyright (c) 2010, Oracle America, Inc.
*
diff --git a/sunrpc/svc_tcp.c b/sunrpc/svc_tcp.c
index 5ffa7ba6cf..6ebc28587d 100644
--- a/sunrpc/svc_tcp.c
+++ b/sunrpc/svc_tcp.c
@@ -1,7 +1,7 @@
/*
* svc_tcp.c, Server side for TCP/IP based RPC.
*
- * Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2012-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
@@ -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
- * <http://www.gnu.org/licenses/>.
+ * <https://www.gnu.org/licenses/>.
*
* Copyright (c) 2010, Oracle America, Inc.
*
diff --git a/sunrpc/svc_udp.c b/sunrpc/svc_udp.c
index 50589871b0..8deda337bf 100644
--- a/sunrpc/svc_udp.c
+++ b/sunrpc/svc_udp.c
@@ -3,7 +3,7 @@
* Server side for UDP/IP based RPC. (Does some caching in the hopes of
* achieving execute-at-most-once semantics.)
*
- * Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2012-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
@@ -18,7 +18,7 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with the GNU C Library; if not, see
- * <http://www.gnu.org/licenses/>.
+ * <https://www.gnu.org/licenses/>.
*
* Copyright (c) 2010, Oracle America, Inc.
*
diff --git a/sunrpc/svc_unix.c b/sunrpc/svc_unix.c
index c2c076aa87..b6477bf4e5 100644
--- a/sunrpc/svc_unix.c
+++ b/sunrpc/svc_unix.c
@@ -1,7 +1,7 @@
/*
* svc_unix.c, Server side for TCP/IP based RPC.
*
- * Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2012-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
@@ -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
- * <http://www.gnu.org/licenses/>.
+ * <https://www.gnu.org/licenses/>.
*
* Copyright (c) 2010, Oracle America, Inc.
*
diff --git a/sunrpc/svcauth_des.c b/sunrpc/svcauth_des.c
index c5a512d6f8..7607abc818 100644
--- a/sunrpc/svcauth_des.c
+++ b/sunrpc/svcauth_des.c
@@ -44,6 +44,7 @@
#include <limits.h>
#include <string.h>
#include <stdint.h>
+#include <time.h>
#include <sys/param.h>
#include <netinet/in.h>
#include <rpc/rpc.h>
@@ -295,7 +296,11 @@ _svcauth_des (register struct svc_req *rqst, register struct rpc_msg *msg)
debug ("timestamp before last seen");
return AUTH_REJECTEDVERF; /* replay */
}
- __gettimeofday (&current, (struct timezone *) NULL);
+ {
+ struct timespec now;
+ __clock_gettime (CLOCK_REALTIME, &now);
+ TIMESPEC_TO_TIMEVAL (&current, &now);
+ }
current.tv_sec -= window; /* allow for expiration */
if (!BEFORE (&current, &timestamp))
{
diff --git a/sunrpc/test-rpcent.c b/sunrpc/test-rpcent.c
index 4bf09416f7..d4d6600300 100644
--- a/sunrpc/test-rpcent.c
+++ b/sunrpc/test-rpcent.c
@@ -1,5 +1,5 @@
/* Test getrpcent and friends.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This is taken from nss/test-netdb.c and is intended to follow that
test's model for everything. This test is separate only because
diff --git a/sunrpc/tst-svc_register.c b/sunrpc/tst-svc_register.c
index 23c1377ee5..dd0c8e23f4 100644
--- a/sunrpc/tst-svc_register.c
+++ b/sunrpc/tst-svc_register.c
@@ -1,5 +1,5 @@
/* Test svc_register/svc_unregister rpcbind interaction (bug 5010).
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This test uses a stub rpcbind server (implemented in a child
process using rpcbind_dispatch/run_rpcbind) to check how RPC
@@ -54,7 +54,7 @@ server_dispatch (struct svc_req *request, SVCXPRT *transport)
}
/* The port on which rpcbind listens for incoming requests. */
-static inline const struct sockaddr_in
+static inline struct sockaddr_in
rpcbind_address (void)
{
return (struct sockaddr_in)
diff --git a/sunrpc/tst-udp-error.c b/sunrpc/tst-udp-error.c
index a968d81f29..7f38d62496 100644
--- a/sunrpc/tst-udp-error.c
+++ b/sunrpc/tst-udp-error.c
@@ -1,5 +1,5 @@
/* Check for use-after-free in clntudp_call (bug 21115).
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <netinet/in.h>
#include <rpc/clnt.h>
diff --git a/sunrpc/tst-udp-garbage.c b/sunrpc/tst-udp-garbage.c
index 7da559d2d7..d356b931b9 100644
--- a/sunrpc/tst-udp-garbage.c
+++ b/sunrpc/tst-udp-garbage.c
@@ -1,5 +1,5 @@
/* Test that garbage packets do not affect timeout handling.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <netinet/in.h>
#include <rpc/clnt.h>
diff --git a/sunrpc/tst-udp-nonblocking.c b/sunrpc/tst-udp-nonblocking.c
index f08bcfe4a8..503e3e1434 100644
--- a/sunrpc/tst-udp-nonblocking.c
+++ b/sunrpc/tst-udp-nonblocking.c
@@ -1,5 +1,5 @@
/* Test non-blocking use of the UDP client.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <netinet/in.h>
#include <rpc/clnt.h>
diff --git a/sunrpc/tst-udp-timeout.c b/sunrpc/tst-udp-timeout.c
index 3c5b55d16c..24560cd567 100644
--- a/sunrpc/tst-udp-timeout.c
+++ b/sunrpc/tst-udp-timeout.c
@@ -1,5 +1,5 @@
/* Test timeout handling in the UDP client.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <netinet/in.h>
#include <rpc/clnt.h>
diff --git a/sunrpc/tst-xdrmem.c b/sunrpc/tst-xdrmem.c
index e22aec5016..234dbb81ff 100644
--- a/sunrpc/tst-xdrmem.c
+++ b/sunrpc/tst-xdrmem.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <limits.h>
#include <stdio.h>
diff --git a/sunrpc/tst-xdrmem2.c b/sunrpc/tst-xdrmem2.c
index 1e45026b94..d78e3a6ca9 100644
--- a/sunrpc/tst-xdrmem2.c
+++ b/sunrpc/tst-xdrmem2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 2006.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <limits.h>
#include <stdio.h>
diff --git a/sunrpc/xdr.c b/sunrpc/xdr.c
index 8b0b91995b..b5fb7455e2 100644
--- a/sunrpc/xdr.c
+++ b/sunrpc/xdr.c
@@ -113,6 +113,7 @@ xdr_int (XDR *xdrs, int *ip)
return FALSE;
}
*ip = (int) l;
+ /* Fall through. */
case XDR_FREE:
return TRUE;
}
@@ -152,6 +153,7 @@ xdr_u_int (XDR *xdrs, u_int *up)
return FALSE;
}
*up = (u_int) (u_long) l;
+ /* Fall through. */
case XDR_FREE:
return TRUE;
}
@@ -506,6 +508,7 @@ xdr_enum (XDR *xdrs, enum_t *ep)
return FALSE;
}
*ep = l;
+ /* Fall through. */
case XDR_FREE:
return TRUE;
@@ -628,7 +631,7 @@ xdr_bytes (XDR *xdrs, char **cpp, u_int *sizep, u_int maxsize)
(void) __fxprintf (NULL, "%s: %s", __func__, _("out of memory\n"));
return FALSE;
}
- /* fall into ... */
+ /* Fall through. */
case XDR_ENCODE:
return xdr_opaque (xdrs, sp, nodesize);
@@ -789,7 +792,7 @@ xdr_string (XDR *xdrs, char **cpp, u_int maxsize)
return FALSE;
}
sp[size] = 0;
- /* fall into ... */
+ /* Fall through. */
case XDR_ENCODE:
return xdr_opaque (xdrs, sp, size);
diff --git a/sunrpc/xdr_intXX_t.c b/sunrpc/xdr_intXX_t.c
index c1ad694740..e302e7dd45 100644
--- a/sunrpc/xdr_intXX_t.c
+++ b/sunrpc/xdr_intXX_t.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (c) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <rpc/types.h>
diff --git a/support/Makefile b/support/Makefile
index 652d2cdf69..23c6d74627 100644
--- a/support/Makefile
+++ b/support/Makefile
@@ -1,5 +1,5 @@
# Makefile for support library, used only at build and test time
-# Copyright (C) 2016-2018 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
@@ -14,7 +14,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
subdir := support
@@ -25,6 +25,7 @@ extra-libs-others = $(extra-libs)
extra-libs-noinstall := $(extra-libs)
libsupport-routines = \
+ blob_repeat \
check \
check_addrinfo \
check_dns_packet \
@@ -43,6 +44,9 @@ libsupport-routines = \
support_capture_subprocess \
support_capture_subprocess_check \
support_chroot \
+ support_copy_file_range \
+ support_descriptor_supports_holes \
+ support_descriptors \
support_enter_mount_namespace \
support_enter_network_namespace \
support_format_address_family \
@@ -52,17 +56,27 @@ libsupport-routines = \
support_format_hostent \
support_format_netent \
support_isolate_in_subprocess \
+ support_ptrace \
support_openpty \
+ support_paths \
support_quote_blob \
+ support_quote_string \
support_record_failure \
support_run_diff \
+ support_set_small_thread_stack_size \
support_shared_allocate \
+ support_small_stack_thread_attribute \
+ support_subprocess \
support_test_compare_blob \
support_test_compare_failure \
+ support_test_compare_string \
support_write_file_string \
support_test_main \
support_test_verify_impl \
temp_file \
+ timespec \
+ timespec-add \
+ timespec-sub \
write_message \
xaccept \
xaccept4 \
@@ -70,9 +84,12 @@ libsupport-routines = \
xbind \
xcalloc \
xchroot \
+ xclock_gettime \
xclose \
xconnect \
+ xcopy_file_range \
xdlfcn \
+ xdlmopen \
xdup2 \
xfclose \
xfopen \
@@ -84,16 +101,19 @@ libsupport-routines = \
xmalloc \
xmemstream \
xmkdir \
+ xmkdirp \
xmmap \
xmprotect \
xmunmap \
xopen \
xpipe \
xpoll \
+ xposix_memalign \
xpthread_attr_destroy \
xpthread_attr_init \
xpthread_attr_setdetachstate \
xpthread_attr_setguardsize \
+ xpthread_attr_setstack \
xpthread_attr_setstacksize \
xpthread_barrier_destroy \
xpthread_barrier_init \
@@ -120,6 +140,7 @@ libsupport-routines = \
xpthread_mutexattr_settype \
xpthread_once \
xpthread_rwlock_init \
+ xpthread_rwlock_destroy \
xpthread_rwlock_rdlock \
xpthread_rwlock_unlock \
xpthread_rwlock_wrlock \
@@ -133,12 +154,18 @@ libsupport-routines = \
xrealloc \
xrecvfrom \
xsendto \
+ xsetlocale \
xsetsockopt \
xsigaction \
xsignal \
+ xsigstack \
xsocket \
+ xposix_spawn \
+ xposix_spawn_file_actions_addclose \
+ xposix_spawn_file_actions_adddup2 \
xstrdup \
xstrndup \
+ xsymlink \
xsysconf \
xunlink \
xwaitpid \
@@ -151,16 +178,59 @@ ifeq ($(build-shared),yes)
libsupport-inhibit-o += .o
endif
+CFLAGS-support_paths.c = \
+ -DSRCDIR_PATH=\"`cd .. ; pwd`\" \
+ -DOBJDIR_PATH=\"`cd $(objpfx)/..; pwd`\" \
+ -DOBJDIR_ELF_LDSO_PATH=\"`cd $(objpfx)/..; pwd`/elf/$(rtld-installed-name)\" \
+ -DINSTDIR_PATH=\"$(prefix)\" \
+ -DLIBDIR_PATH=\"$(libdir)\" \
+ -DBINDIR_PATH=\"$(bindir)\" \
+ -DSBINDIR_PATH=\"$(sbindir)\" \
+ -DROOTSBINDIR_PATH=\"$(rootsbindir)\"
+
+ifeq (,$(CXX))
+LINKS_DSO_PROGRAM = links-dso-program-c
+else
+LINKS_DSO_PROGRAM = links-dso-program
+LDLIBS-links-dso-program = -lstdc++ -lgcc -lgcc_s $(libunwind)
+endif
+
+ifeq (yes,$(have-selinux))
+LDLIBS-$(LINKS_DSO_PROGRAM) += -lselinux
+endif
+
+
+LDLIBS-test-container = $(libsupport)
+
+others += test-container
+others-noinstall += test-container
+
+others += shell-container echo-container true-container
+others-noinstall += shell-container echo-container true-container
+
+others += $(LINKS_DSO_PROGRAM)
+others-noinstall += $(LINKS_DSO_PROGRAM)
+
+$(objpfx)test-container : $(libsupport)
+$(objpfx)shell-container : $(libsupport)
+$(objpfx)echo-container : $(libsupport)
+$(objpfx)true-container : $(libsupport)
+
tests = \
README-testing \
tst-support-namespace \
+ tst-support_blob_repeat \
tst-support_capture_subprocess \
+ tst-support_descriptors \
tst-support_format_dns_packet \
tst-support_quote_blob \
+ tst-support_quote_string \
tst-support_record_failure \
tst-test_compare \
tst-test_compare_blob \
+ tst-test_compare_string \
tst-xreadlink \
+ tst-xsigstack \
ifeq ($(run-built-tests),yes)
tests-special = \
@@ -176,4 +246,6 @@ endif
$(objpfx)tst-support_format_dns_packet: $(common-objpfx)resolv/libresolv.so
+tst-support_capture_subprocess-ARGS = -- $(host-test-program-cmd)
+
include ../Rules
diff --git a/support/README b/support/README
index 476cfcda59..ae2c41caa8 100644
--- a/support/README
+++ b/support/README
@@ -10,6 +10,7 @@ error. They are declared in these header files:
* support.h
* xsignal.h
* xthread.h
+* xtime.h
In general, new wrappers should be added to support.h if possible.
However, support.h must remain fully compatible with C90 and therefore
@@ -27,3 +28,8 @@ header files provide related declarations:
* check.h
* temp_file.h
* test-driver.h
+
+For tests that make use of struct timespec, the following header files
+contain additional macros and helper functions:
+
+* timespec.h
diff --git a/support/blob_repeat.c b/support/blob_repeat.c
new file mode 100644
index 0000000000..319258f9a2
--- /dev/null
+++ b/support/blob_repeat.c
@@ -0,0 +1,282 @@
+/* Repeating a memory blob, with alias mapping optimization.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stdbool.h>
+#include <stdlib.h>
+#include <string.h>
+#include <support/blob_repeat.h>
+#include <support/check.h>
+#include <support/test-driver.h>
+#include <support/support.h>
+#include <support/xunistd.h>
+#include <sys/mman.h>
+#include <unistd.h>
+#include <wchar.h>
+
+/* Small allocations should use malloc directly instead of the mmap
+ optimization because mappings carry a lot of overhead. */
+static const size_t maximum_small_size = 4 * 1024 * 1024;
+
+/* Internal helper for fill. */
+static void
+fill0 (char *target, const char *element, size_t element_size,
+ size_t count)
+{
+ while (count > 0)
+ {
+ memcpy (target, element, element_size);
+ target += element_size;
+ --count;
+ }
+}
+
+/* Fill the buffer at TARGET with COUNT copies of the ELEMENT_SIZE
+ bytes starting at ELEMENT. */
+static void
+fill (char *target, const char *element, size_t element_size,
+ size_t count)
+{
+ if (element_size == 0 || count == 0)
+ return;
+ else if (element_size == 1)
+ memset (target, element[0], count);
+ else if (element_size == sizeof (wchar_t))
+ {
+ wchar_t wc;
+ memcpy (&wc, element, sizeof (wc));
+ wmemset ((wchar_t *) target, wc, count);
+ }
+ else if (element_size < 1024 && count > 4096)
+ {
+ /* Use larger copies for really small element sizes. */
+ char buffer[8192];
+ size_t buffer_count = sizeof (buffer) / element_size;
+ fill0 (buffer, element, element_size, buffer_count);
+ while (count > 0)
+ {
+ size_t copy_count = buffer_count;
+ if (copy_count > count)
+ copy_count = count;
+ size_t copy_bytes = copy_count * element_size;
+ memcpy (target, buffer, copy_bytes);
+ target += copy_bytes;
+ count -= copy_count;
+ }
+ }
+ else
+ fill0 (target, element, element_size, count);
+}
+
+/* Use malloc instead of mmap for small allocations and unusual size
+ combinations. */
+static struct support_blob_repeat
+allocate_malloc (size_t total_size, const void *element, size_t element_size,
+ size_t count)
+{
+ void *buffer = malloc (total_size);
+ if (buffer == NULL)
+ return (struct support_blob_repeat) { 0 };
+ fill (buffer, element, element_size, count);
+ return (struct support_blob_repeat)
+ {
+ .start = buffer,
+ .size = total_size,
+ .use_malloc = true
+ };
+}
+
+/* Return the least common multiple of PAGE_SIZE and ELEMENT_SIZE,
+ avoiding overflow. This assumes that PAGE_SIZE is a power of
+ two. */
+static size_t
+minimum_stride_size (size_t page_size, size_t element_size)
+{
+ TEST_VERIFY_EXIT (page_size > 0);
+ TEST_VERIFY_EXIT (element_size > 0);
+
+ /* Compute the number of trailing zeros common to both sizes. */
+ unsigned int common_zeros = __builtin_ctzll (page_size | element_size);
+
+ /* In the product, this power of two appears twice, but in the least
+ common multiple, it appears only once. Therefore, shift one
+ factor. */
+ size_t multiple;
+ if (__builtin_mul_overflow (page_size >> common_zeros, element_size,
+ &multiple))
+ return 0;
+ return multiple;
+}
+
+/* Allocations larger than maximum_small_size potentially use mmap
+ with alias mappings. */
+static struct support_blob_repeat
+allocate_big (size_t total_size, const void *element, size_t element_size,
+ size_t count)
+{
+ unsigned long page_size = xsysconf (_SC_PAGESIZE);
+ size_t stride_size = minimum_stride_size (page_size, element_size);
+ if (stride_size == 0)
+ {
+ errno = EOVERFLOW;
+ return (struct support_blob_repeat) { 0 };
+ }
+
+ /* Ensure that the stride size is at least maximum_small_size. This
+ is necessary to reduce the number of distinct mappings. */
+ if (stride_size < maximum_small_size)
+ stride_size
+ = ((maximum_small_size + stride_size - 1) / stride_size) * stride_size;
+
+ if (stride_size > total_size)
+ /* The mmap optimization would not save anything. */
+ return allocate_malloc (total_size, element, element_size, count);
+
+ /* Reserve the memory region. If we cannot create the mapping,
+ there is no reason to set up the backing file. */
+ void *target = mmap (NULL, total_size, PROT_NONE,
+ MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);
+ if (target == MAP_FAILED)
+ return (struct support_blob_repeat) { 0 };
+
+ /* Create the backing file for the repeated mapping. Call mkstemp
+ directly to remove the resources backing the temporary file
+ immediately, once support_blob_repeat_free is called. Using
+ create_temp_file would result in a warning during post-test
+ cleanup. */
+ int fd;
+ {
+ char *temppath = xasprintf ("%s/support_blob_repeat-XXXXXX", test_dir);
+ fd = mkstemp (temppath);
+ if (fd < 0)
+ FAIL_EXIT1 ("mkstemp (\"%s\"): %m", temppath);
+ xunlink (temppath);
+ free (temppath);
+ }
+
+ /* Make sure that there is backing storage, so that the fill
+ operation will not fault. */
+ if (posix_fallocate (fd, 0, stride_size) != 0)
+ FAIL_EXIT1 ("posix_fallocate (%zu): %m", stride_size);
+
+ /* The stride size must still be a multiple of the page size and
+ element size. */
+ TEST_VERIFY_EXIT ((stride_size % page_size) == 0);
+ TEST_VERIFY_EXIT ((stride_size % element_size) == 0);
+
+ /* Fill the backing store. */
+ {
+ void *ptr = mmap (target, stride_size, PROT_READ | PROT_WRITE,
+ MAP_FIXED | MAP_FILE | MAP_SHARED, fd, 0);
+ if (ptr == MAP_FAILED)
+ {
+ int saved_errno = errno;
+ xmunmap (target, total_size);
+ xclose (fd);
+ errno = saved_errno;
+ return (struct support_blob_repeat) { 0 };
+ }
+ if (ptr != target)
+ FAIL_EXIT1 ("mapping of %zu bytes moved from %p to %p",
+ stride_size, target, ptr);
+
+ /* Write the repeating data. */
+ fill (target, element, element_size, stride_size / element_size);
+
+ /* Return to a PROT_NONE mapping, just to be on the safe side. */
+ ptr = mmap (target, stride_size, PROT_NONE,
+ MAP_FIXED | MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);
+ if (ptr == MAP_FAILED)
+ FAIL_EXIT1 ("Failed to reinstate PROT_NONE mapping: %m");
+ if (ptr != target)
+ FAIL_EXIT1 ("PROT_NONE mapping of %zu bytes moved from %p to %p",
+ stride_size, target, ptr);
+ }
+
+ /* Create the alias mappings. */
+ {
+ size_t remaining_size = total_size;
+ char *current = target;
+ int flags = MAP_FIXED | MAP_FILE | MAP_PRIVATE;
+#ifdef MAP_NORESERVE
+ flags |= MAP_NORESERVE;
+#endif
+ while (remaining_size > 0)
+ {
+ size_t to_map = stride_size;
+ if (to_map > remaining_size)
+ to_map = remaining_size;
+ void *ptr = mmap (current, to_map, PROT_READ | PROT_WRITE,
+ flags, fd, 0);
+ if (ptr == MAP_FAILED)
+ {
+ int saved_errno = errno;
+ xmunmap (target, total_size);
+ xclose (fd);
+ errno = saved_errno;
+ return (struct support_blob_repeat) { 0 };
+ }
+ if (ptr != current)
+ FAIL_EXIT1 ("MAP_PRIVATE mapping of %zu bytes moved from %p to %p",
+ to_map, target, ptr);
+ remaining_size -= to_map;
+ current += to_map;
+ }
+ }
+
+ xclose (fd);
+
+ return (struct support_blob_repeat)
+ {
+ .start = target,
+ .size = total_size,
+ .use_malloc = false
+ };
+}
+
+struct support_blob_repeat
+support_blob_repeat_allocate (const void *element, size_t element_size,
+ size_t count)
+{
+ size_t total_size;
+ if (__builtin_mul_overflow (element_size, count, &total_size))
+ {
+ errno = EOVERFLOW;
+ return (struct support_blob_repeat) { 0 };
+ }
+ if (total_size <= maximum_small_size)
+ return allocate_malloc (total_size, element, element_size, count);
+ else
+ return allocate_big (total_size, element, element_size, count);
+}
+
+void
+support_blob_repeat_free (struct support_blob_repeat *blob)
+{
+ if (blob->size > 0)
+ {
+ int saved_errno = errno;
+ if (blob->use_malloc)
+ free (blob->start);
+ else
+ xmunmap (blob->start, blob->size);
+ errno = saved_errno;
+ }
+ *blob = (struct support_blob_repeat) { 0 };
+}
diff --git a/support/blob_repeat.h b/support/blob_repeat.h
new file mode 100644
index 0000000000..8305019693
--- /dev/null
+++ b/support/blob_repeat.h
@@ -0,0 +1,44 @@
+/* Repeating a memory blob, with alias mapping optimization.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef SUPPORT_BLOB_REPEAT_H
+#define SUPPORT_BLOB_REPEAT_H
+
+#include <stdbool.h>
+#include <stddef.h>
+
+struct support_blob_repeat
+{
+ void *start;
+ size_t size;
+ bool use_malloc;
+};
+
+/* Return an allocation of COUNT elements, each of ELEMENT_SIZE bytes,
+ initialized with the bytes starting at ELEMENT. The memory is
+ writable (and thus counts towards the commit charge). In case of
+ on error, all members of the return struct are zero-initialized,
+ and errno is set accordingly. */
+struct support_blob_repeat support_blob_repeat_allocate (const void *element,
+ size_t element_size,
+ size_t count);
+
+/* Deallocate the blob created by support_blob_repeat_allocate. */
+void support_blob_repeat_free (struct support_blob_repeat *);
+
+#endif /* SUPPORT_BLOB_REPEAT_H */
diff --git a/support/capture_subprocess.h b/support/capture_subprocess.h
index b0886ba1d1..2fdf83963b 100644
--- a/support/capture_subprocess.h
+++ b/support/capture_subprocess.h
@@ -1,5 +1,5 @@
/* Capture output from a subprocess.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef SUPPORT_CAPTURE_SUBPROCESS_H
#define SUPPORT_CAPTURE_SUBPROCESS_H
@@ -35,6 +35,12 @@ struct support_capture_subprocess
struct support_capture_subprocess support_capture_subprocess
(void (*callback) (void *), void *closure);
+/* Issue FILE with ARGV arguments by using posix_spawn and capture standard
+ output, standard error, and the exit status. The out.buffer and err.buffer
+ are handle as support_capture_subprocess. */
+struct support_capture_subprocess support_capture_subprogram
+ (const char *file, char *const argv[]);
+
/* Deallocate the subprocess data captured by
support_capture_subprocess. */
void support_capture_subprocess_free (struct support_capture_subprocess *);
@@ -49,13 +55,16 @@ enum support_capture_allow
sc_allow_stderr = 0x04,
};
-/* Check that the subprocess exited with STATUS and that only the
- allowed outputs happened. ALLOWED is a combination of
- support_capture_allow flags. Report errors under the CONTEXT
- message. */
+/* Check that the subprocess exited and that only the allowed outputs
+ happened. If STATUS_OR_SIGNAL is nonnegative, it is the expected
+ (decoded) exit status of the process, as returned by WEXITSTATUS.
+ If STATUS_OR_SIGNAL is negative, -STATUS_OR_SIGNAL is the expected
+ termination signal, as returned by WTERMSIG. ALLOWED is a
+ combination of support_capture_allow flags. Report errors under
+ the CONTEXT message. */
void support_capture_subprocess_check (struct support_capture_subprocess *,
- const char *context, int status,
- int allowed)
+ const char *context,
+ int status_or_signal, int allowed)
__attribute__ ((nonnull (1, 2)));
#endif /* SUPPORT_CAPTURE_SUBPROCESS_H */
diff --git a/support/check.c b/support/check.c
index 78f2b3cde1..0d78f63d10 100644
--- a/support/check.c
+++ b/support/check.c
@@ -1,5 +1,5 @@
/* Support code for reporting test results.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/check.h>
diff --git a/support/check.h b/support/check.h
index b3a4645e92..e95f4ae91b 100644
--- a/support/check.h
+++ b/support/check.h
@@ -1,5 +1,5 @@
/* Functionality for reporting test results.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef SUPPORT_CHECK_H
#define SUPPORT_CHECK_H
@@ -163,6 +163,19 @@ void support_test_compare_blob (const void *left,
const char *right_exp,
const char *right_len_exp);
+/* Compare the strings LEFT and RIGHT and report a test failure if
+ they are different. Also report failure if one of the arguments is
+ a null pointer and the other is not. The strings should be
+ reasonably short because on mismatch, both are printed. */
+#define TEST_COMPARE_STRING(left, right) \
+ (support_test_compare_string (left, right, __FILE__, __LINE__, \
+ #left, #right))
+
+void support_test_compare_string (const char *left, const char *right,
+ const char *file, int line,
+ const char *left_expr,
+ const char *right_expr);
+
/* Internal function called by the test driver. */
int support_report_failure (int status)
__attribute__ ((weak, warn_unused_result));
@@ -170,6 +183,10 @@ int support_report_failure (int status)
/* Internal function used to test the failure recording framework. */
void support_record_failure_reset (void);
+/* Returns true or false depending on whether there have been test
+ failures or not. */
+int support_record_failure_is_failed (void);
+
__END_DECLS
#endif /* SUPPORT_CHECK_H */
diff --git a/support/check_addrinfo.c b/support/check_addrinfo.c
index 91ad7c56bd..e324c94eb4 100644
--- a/support/check_addrinfo.c
+++ b/support/check_addrinfo.c
@@ -1,5 +1,5 @@
/* Compare struct addrinfo values against a formatted string.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/check_nss.h>
diff --git a/support/check_dns_packet.c b/support/check_dns_packet.c
index 6c1277bd67..d20ae8dc83 100644
--- a/support/check_dns_packet.c
+++ b/support/check_dns_packet.c
@@ -1,5 +1,5 @@
/* Check that a DNS packet buffer has the expected contents.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/check_nss.h>
diff --git a/support/check_hostent.c b/support/check_hostent.c
index 56384f9b03..d3282a38e6 100644
--- a/support/check_hostent.c
+++ b/support/check_hostent.c
@@ -1,5 +1,5 @@
/* Compare struct hostent values against a formatted string.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/check_nss.h>
diff --git a/support/check_netent.c b/support/check_netent.c
index cbcbfb14e5..80132f41c4 100644
--- a/support/check_netent.c
+++ b/support/check_netent.c
@@ -1,5 +1,5 @@
/* Compare struct netent values against a formatted string.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/check_nss.h>
diff --git a/support/check_nss.h b/support/check_nss.h
index 6aa28fa24e..081472a698 100644
--- a/support/check_nss.h
+++ b/support/check_nss.h
@@ -1,5 +1,5 @@
/* Test verification functions for NSS- and DNS-related data.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef SUPPORT_CHECK_NSS_H
#define SUPPORT_CHECK_NSS_H
diff --git a/support/delayed_exit.c b/support/delayed_exit.c
index 2780d9a6fe..6a6fa124e0 100644
--- a/support/delayed_exit.c
+++ b/support/delayed_exit.c
@@ -1,5 +1,5 @@
/* Time-triggered process termination.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xthread.h>
#include <support/xsignal.h>
diff --git a/support/descriptors.h b/support/descriptors.h
new file mode 100644
index 0000000000..2430a57490
--- /dev/null
+++ b/support/descriptors.h
@@ -0,0 +1,47 @@
+/* Monitoring file descriptor usage.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef SUPPORT_DESCRIPTORS_H
+#define SUPPORT_DESCRIPTORS_H
+
+#include <stdio.h>
+
+/* Opaque pointer, for capturing file descriptor lists. */
+struct support_descriptors;
+
+/* Record the currently open file descriptors and store them in the
+ returned list. Terminate the process if the listing operation
+ fails. */
+struct support_descriptors *support_descriptors_list (void);
+
+/* Deallocate the list of descriptors. */
+void support_descriptors_free (struct support_descriptors *);
+
+/* Write the list of descriptors to STREAM, adding PREFIX to each
+ line. */
+void support_descriptors_dump (struct support_descriptors *,
+ const char *prefix, FILE *stream);
+
+/* Check for file descriptor leaks and other file descriptor changes:
+ Compare the current list of descriptors with the passed list.
+ Record a test failure if there are additional open descriptors,
+ descriptors have been closed, or if a change in file descriptor can
+ be detected. */
+void support_descriptors_check (struct support_descriptors *);
+
+#endif /* SUPPORT_DESCRIPTORS_H */
diff --git a/support/echo-container.c b/support/echo-container.c
new file mode 100644
index 0000000000..8a705b3603
--- /dev/null
+++ b/support/echo-container.c
@@ -0,0 +1,34 @@
+/* Minimal /bin/echo for in-container use.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdio.h>
+
+int
+main (int argc, const char **argv)
+{
+ int i;
+
+ for (i = 1; i < argc; i++)
+ {
+ if (i > 1)
+ putchar (' ');
+ fputs (argv[i], stdout);
+ }
+ putchar ('\n');
+ return 0;
+}
diff --git a/support/format_nss.h b/support/format_nss.h
index e55354e788..c85d6c6e3f 100644
--- a/support/format_nss.h
+++ b/support/format_nss.h
@@ -1,5 +1,5 @@
/* String formatting functions for NSS- and DNS-related data.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef SUPPORT_FORMAT_NSS_H
#define SUPPORT_FORMAT_NSS_H
diff --git a/support/ignore_stderr.c b/support/ignore_stderr.c
index 450333ad38..7a77df124f 100644
--- a/support/ignore_stderr.c
+++ b/support/ignore_stderr.c
@@ -1,5 +1,5 @@
/* Avoid all the buffer overflow messages on stderr.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/support.h>
diff --git a/support/links-dso-program-c.c b/support/links-dso-program-c.c
new file mode 100644
index 0000000000..5fcbab2c17
--- /dev/null
+++ b/support/links-dso-program-c.c
@@ -0,0 +1,26 @@
+#include <stdio.h>
+
+/* makedb needs selinux dso's. */
+#ifdef HAVE_SELINUX
+# include <selinux/selinux.h>
+#endif
+
+/* The purpose of this file is to indicate to the build system which
+ shared objects need to be copied into the testroot, such as gcc or
+ selinux support libraries. This program is never executed, only
+ scanned for dependencies on shared objects, so the code below may
+ seem weird - it's written to survive gcc optimization and force
+ such dependencies.
+*/
+
+int
+main (int argc, char **argv)
+{
+ /* Complexity to keep gcc from optimizing this away. */
+ printf ("This is a test %s.\n", argc > 1 ? argv[1] : "null");
+#ifdef HAVE_SELINUX
+ /* This exists to force libselinux.so to be required. */
+ printf ("selinux %d\n", is_selinux_enabled ());
+#endif
+ return 0;
+}
diff --git a/support/links-dso-program.cc b/support/links-dso-program.cc
new file mode 100644
index 0000000000..4bc2411086
--- /dev/null
+++ b/support/links-dso-program.cc
@@ -0,0 +1,28 @@
+#include <iostream>
+
+/* makedb needs selinux dso's. */
+#ifdef HAVE_SELINUX
+# include <selinux/selinux.h>
+#endif
+
+using namespace std;
+
+/* The purpose of this file is to indicate to the build system which
+ shared objects need to be copied into the testroot, such as gcc or
+ selinux support libraries. This program is never executed, only
+ scanned for dependencies on shared objects, so the code below may
+ seem weird - it's written to survive gcc optimization and force
+ such dependencies.
+*/
+
+int
+main (int argc, char **argv)
+{
+ /* Complexity to keep gcc from optimizing this away. */
+ cout << (argc > 1 ? argv[1] : "null");
+#ifdef HAVE_SELINUX
+ /* This exists to force libselinux.so to be required. */
+ cout << "selinux " << is_selinux_enabled ();
+#endif
+ return 0;
+}
diff --git a/support/namespace.h b/support/namespace.h
index 3c3842a49b..5f509264cd 100644
--- a/support/namespace.h
+++ b/support/namespace.h
@@ -1,5 +1,5 @@
/* Entering namespaces for test case isolation.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef SUPPORT_NAMESPACE_H
#define SUPPORT_NAMESPACE_H
@@ -74,6 +74,7 @@ struct support_chroot_configuration
const char *resolv_conf; /* /etc/resolv.conf. */
const char *hosts; /* /etc/hosts. */
const char *host_conf; /* /etc/host.conf. */
+ const char *aliases; /* /etc/aliases. */
};
/* The result of the creation of a chroot. */
@@ -90,6 +91,7 @@ struct support_chroot
char *path_resolv_conf; /* /etc/resolv.conf. */
char *path_hosts; /* /etc/hosts. */
char *path_host_conf; /* /etc/host.conf. */
+ char *path_aliases; /* /etc/aliases. */
};
/* Create a chroot environment. The returned data should be freed
diff --git a/support/next_to_fault.c b/support/next_to_fault.c
index 1971bf7cd7..64e4bd9e0c 100644
--- a/support/next_to_fault.c
+++ b/support/next_to_fault.c
@@ -1,5 +1,5 @@
/* Memory allocation next to an unmapped page.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/check.h>
#include <support/next_to_fault.h>
diff --git a/support/next_to_fault.h b/support/next_to_fault.h
index 75759b586c..0a95a14770 100644
--- a/support/next_to_fault.h
+++ b/support/next_to_fault.h
@@ -1,5 +1,5 @@
/* Memory allocation next to an unmapped page.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef SUPPORT_NEXT_TO_FAULT_H
#define SUPPORT_NEXT_TO_FAULT_H
diff --git a/support/oom_error.c b/support/oom_error.c
index fd87fe2305..f082c46b7f 100644
--- a/support/oom_error.c
+++ b/support/oom_error.c
@@ -1,5 +1,5 @@
/* Reporting out-of-memory errors.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/support.h>
diff --git a/support/resolv_test.c b/support/resolv_test.c
index 3f2a09f36f..b1c745dc8c 100644
--- a/support/resolv_test.c
+++ b/support/resolv_test.c
@@ -1,5 +1,5 @@
/* DNS test framework and libresolv redirection.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/resolv_test.h>
@@ -182,6 +182,8 @@ resolv_response_init (struct resolv_response_builder *b,
if (flags.tc)
b->buffer[2] |= 0x02;
b->buffer[3] = 0x80 | flags.rcode; /* Always set RA. */
+ if (flags.ad)
+ b->buffer[3] |= 0x20;
/* Fill in the initial section count values. */
b->buffer[4] = flags.qdcount >> 8;
diff --git a/support/resolv_test.h b/support/resolv_test.h
index 4c2e6c1b41..02a11bd712 100644
--- a/support/resolv_test.h
+++ b/support/resolv_test.h
@@ -1,5 +1,5 @@
/* DNS test framework and libresolv redirection.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef SUPPORT_RESOLV_TEST_H
#define SUPPORT_RESOLV_TEST_H
@@ -134,6 +134,9 @@ struct resolv_response_flags
/* If true, the TC (truncation) flag will be set. */
bool tc;
+ /* If true, the AD (authenticated data) flag will be set. */
+ bool ad;
+
/* Initial section count values. Can be used to artificially
increase the counts, for malformed packet testing.*/
unsigned short qdcount;
diff --git a/support/run_diff.h b/support/run_diff.h
index 6e949226fa..fb2726e6cc 100644
--- a/support/run_diff.h
+++ b/support/run_diff.h
@@ -1,5 +1,5 @@
/* Invoke the system diff tool to compare two strings.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef SUPPORT_RUN_DIFF_H
#define SUPPORT_RUN_DIFF_H
diff --git a/support/set_fortify_handler.c b/support/set_fortify_handler.c
index c2dacbb179..95ceb9da5a 100644
--- a/support/set_fortify_handler.c
+++ b/support/set_fortify_handler.c
@@ -1,5 +1,5 @@
/* Set signal handler for use in fortify tests.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/support.h>
diff --git a/support/shell-container.c b/support/shell-container.c
new file mode 100644
index 0000000000..d6d7608bf2
--- /dev/null
+++ b/support/shell-container.c
@@ -0,0 +1,395 @@
+/* Minimal /bin/sh for in-container use.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#define _FILE_OFFSET_BITS 64
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sched.h>
+#include <sys/syscall.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <dirent.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <sys/fcntl.h>
+#include <sys/file.h>
+#include <sys/wait.h>
+#include <stdarg.h>
+#include <sys/sysmacros.h>
+#include <ctype.h>
+#include <utime.h>
+#include <errno.h>
+#include <error.h>
+
+#include <support/support.h>
+
+/* Design considerations
+
+ General rule: optimize for developer time, not run time.
+
+ Specifically:
+
+ * Don't worry about slow algorithms
+ * Don't worry about free'ing memory
+ * Don't implement anything the testsuite doesn't need.
+ * Line and argument counts are limited, see below.
+
+*/
+
+#define MAX_ARG_COUNT 100
+#define MAX_LINE_LENGTH 1000
+
+/* Debugging is enabled via --debug, which must be the first argument. */
+static int debug_mode = 0;
+#define dprintf if (debug_mode) fprintf
+
+/* Emulate the "/bin/true" command. Arguments are ignored. */
+static int
+true_func (char **argv)
+{
+ return 0;
+}
+
+/* Emulate the "/bin/echo" command. Options are ignored, arguments
+ are printed to stdout. */
+static int
+echo_func (char **argv)
+{
+ int i;
+
+ for (i = 0; argv[i]; i++)
+ {
+ if (i > 0)
+ putchar (' ');
+ fputs (argv[i], stdout);
+ }
+ putchar ('\n');
+
+ return 0;
+}
+
+/* Emulate the "/bin/cp" command. Options are ignored. Only copies
+ one source file to one destination file. Directory destinations
+ are not supported. */
+static int
+copy_func (char **argv)
+{
+ char *sname = argv[0];
+ char *dname = argv[1];
+ int sfd, dfd;
+ struct stat st;
+
+ sfd = open (sname, O_RDONLY);
+ if (sfd < 0)
+ {
+ fprintf (stderr, "cp: unable to open %s for reading: %s\n",
+ sname, strerror (errno));
+ return 1;
+ }
+
+ if (fstat (sfd, &st) < 0)
+ {
+ fprintf (stderr, "cp: unable to fstat %s: %s\n",
+ sname, strerror (errno));
+ return 1;
+ }
+
+ dfd = open (dname, O_WRONLY | O_TRUNC | O_CREAT, 0600);
+ if (dfd < 0)
+ {
+ fprintf (stderr, "cp: unable to open %s for writing: %s\n",
+ dname, strerror (errno));
+ return 1;
+ }
+
+ if (support_copy_file_range (sfd, 0, dfd, 0, st.st_size, 0) != st.st_size)
+ {
+ fprintf (stderr, "cp: cannot copy file %s to %s: %s\n",
+ sname, dname, strerror (errno));
+ return 1;
+ }
+
+ close (sfd);
+ close (dfd);
+
+ chmod (dname, st.st_mode & 0777);
+
+ return 0;
+
+}
+
+/* This is a list of all the built-in commands we understand. */
+static struct {
+ const char *name;
+ int (*func) (char **argv);
+} builtin_funcs[] = {
+ { "true", true_func },
+ { "echo", echo_func },
+ { "cp", copy_func },
+ { NULL, NULL }
+};
+
+/* Run one tokenized command. argv[0] is the command. argv is
+ NULL-terminated. */
+static void
+run_command_array (char **argv)
+{
+ int i, j;
+ pid_t pid;
+ int status;
+ int (*builtin_func) (char **args);
+
+ if (argv[0] == NULL)
+ return;
+
+ builtin_func = NULL;
+
+ int new_stdin = 0;
+ int new_stdout = 1;
+ int new_stderr = 2;
+
+ dprintf (stderr, "run_command_array starting\n");
+ for (i = 0; argv[i]; i++)
+ dprintf (stderr, " argv [%d] `%s'\n", i, argv[i]);
+
+ for (j = i = 0; argv[i]; i++)
+ {
+ if (strcmp (argv[i], "<") == 0 && argv[i + 1])
+ {
+ new_stdin = open (argv[i + 1], O_WRONLY|O_CREAT|O_TRUNC, 0777);
+ ++i;
+ continue;
+ }
+ if (strcmp (argv[i], ">") == 0 && argv[i + 1])
+ {
+ new_stdout = open (argv[i + 1], O_WRONLY|O_CREAT|O_TRUNC, 0777);
+ ++i;
+ continue;
+ }
+ if (strcmp (argv[i], ">>") == 0 && argv[i + 1])
+ {
+ new_stdout = open (argv[i + 1], O_WRONLY|O_CREAT|O_APPEND, 0777);
+ ++i;
+ continue;
+ }
+ if (strcmp (argv[i], "2>") == 0 && argv[i + 1])
+ {
+ new_stderr = open (argv[i + 1], O_WRONLY|O_CREAT|O_TRUNC, 0777);
+ ++i;
+ continue;
+ }
+ argv[j++] = argv[i];
+ }
+ argv[j] = NULL;
+
+
+ for (i = 0; builtin_funcs[i].name != NULL; i++)
+ if (strcmp (argv[0], builtin_funcs[i].name) == 0)
+ builtin_func = builtin_funcs[i].func;
+
+ dprintf (stderr, "builtin %p argv0 `%s'\n", builtin_func, argv[0]);
+
+ pid = fork ();
+ if (pid < 0)
+ {
+ fprintf (stderr, "sh: fork failed\n");
+ exit (1);
+ }
+
+ if (pid == 0)
+ {
+ if (new_stdin != 0)
+ {
+ dup2 (new_stdin, 0);
+ close (new_stdin);
+ }
+ if (new_stdout != 1)
+ {
+ dup2 (new_stdout, 1);
+ close (new_stdout);
+ }
+ if (new_stderr != 2)
+ {
+ dup2 (new_stderr, 2);
+ close (new_stdout);
+ }
+
+ if (builtin_func != NULL)
+ exit (builtin_func (argv + 1));
+
+ execvp (argv[0], argv);
+
+ fprintf (stderr, "sh: execing %s failed: %s",
+ argv[0], strerror (errno));
+ exit (1);
+ }
+
+ waitpid (pid, &status, 0);
+
+ dprintf (stderr, "exiting run_command_array\n");
+
+ if (WIFEXITED (status))
+ {
+ int rv = WEXITSTATUS (status);
+ if (rv)
+ exit (rv);
+ }
+ else
+ exit (1);
+}
+
+/* Run one command-as-a-string, by tokenizing it. Limited to
+ MAX_ARG_COUNT arguments. Simple substitution is done of $1 to $9
+ (as whole separate tokens) from iargs[]. Quoted strings work if
+ the quotes wrap whole tokens; i.e. "foo bar" but not foo" bar". */
+static void
+run_command_string (const char *cmdline, const char **iargs)
+{
+ char *args[MAX_ARG_COUNT+1];
+ int ap = 0;
+ const char *start, *end;
+ int nargs;
+
+ for (nargs = 0; iargs[nargs] != NULL; ++nargs)
+ ;
+
+ dprintf (stderr, "run_command_string starting: '%s'\n", cmdline);
+
+ while (ap < MAX_ARG_COUNT)
+ {
+ /* If the argument is quoted, this is the quote character, else NUL. */
+ int in_quote = 0;
+
+ /* Skip whitespace up to the next token. */
+ while (*cmdline && isspace (*cmdline))
+ cmdline ++;
+ if (*cmdline == 0)
+ break;
+
+ start = cmdline;
+ /* Check for quoted argument. */
+ in_quote = (*cmdline == '\'' || *cmdline == '"') ? *cmdline : 0;
+
+ /* Skip to end of token; either by whitespace or matching quote. */
+ dprintf (stderr, "in_quote %d\n", in_quote);
+ while (*cmdline
+ && (!isspace (*cmdline) || in_quote))
+ {
+ if (*cmdline == in_quote
+ && cmdline != start)
+ in_quote = 0;
+ dprintf (stderr, "[%c]%d ", *cmdline, in_quote);
+ cmdline ++;
+ }
+ dprintf (stderr, "\n");
+
+ /* Allocate space for this token and store it in args[]. */
+ end = cmdline;
+ dprintf (stderr, "start<%s> end<%s>\n", start, end);
+ args[ap] = (char *) xmalloc (end - start + 1);
+ memcpy (args[ap], start, end - start);
+ args[ap][end - start] = 0;
+
+ /* Strip off quotes, if found. */
+ dprintf (stderr, "args[%d] = <%s>\n", ap, args[ap]);
+ if (args[ap][0] == '\''
+ && args[ap][strlen (args[ap])-1] == '\'')
+ {
+ args[ap][strlen (args[ap])-1] = 0;
+ args[ap] ++;
+ }
+
+ else if (args[ap][0] == '"'
+ && args[ap][strlen (args[ap])-1] == '"')
+ {
+ args[ap][strlen (args[ap])-1] = 0;
+ args[ap] ++;
+ }
+
+ /* Replace positional parameters like $4. */
+ else if (args[ap][0] == '$'
+ && isdigit (args[ap][1])
+ && args[ap][2] == 0)
+ {
+ int a = args[ap][1] - '1';
+ if (0 <= a && a < nargs)
+ args[ap] = strdup (iargs[a]);
+ }
+
+ ap ++;
+
+ if (*cmdline == 0)
+ break;
+ }
+
+ /* Lastly, NULL terminate the array and run it. */
+ args[ap] = NULL;
+ run_command_array (args);
+}
+
+/* Run a script by reading lines and passing them to the above
+ function. */
+static void
+run_script (const char *filename, const char **args)
+{
+ char line[MAX_LINE_LENGTH + 1];
+ dprintf (stderr, "run_script starting: '%s'\n", filename);
+ FILE *f = fopen (filename, "r");
+ if (f == NULL)
+ {
+ fprintf (stderr, "sh: %s: %s\n", filename, strerror (errno));
+ exit (1);
+ }
+ while (fgets (line, sizeof (line), f) != NULL)
+ {
+ if (line[0] == '#')
+ {
+ dprintf (stderr, "comment: %s\n", line);
+ continue;
+ }
+ run_command_string (line, args);
+ }
+ fclose (f);
+}
+
+int
+main (int argc, const char **argv)
+{
+ int i;
+
+ if (strcmp (argv[1], "--debug") == 0)
+ {
+ debug_mode = 1;
+ --argc;
+ ++argv;
+ }
+
+ dprintf (stderr, "container-sh starting:\n");
+ for (i = 0; i < argc; i++)
+ dprintf (stderr, " argv[%d] is `%s'\n", i, argv[i]);
+
+ if (strcmp (argv[1], "-c") == 0)
+ run_command_string (argv[2], argv+3);
+ else
+ run_script (argv[1], argv+2);
+
+ dprintf (stderr, "normal exit 0\n");
+ return 0;
+}
diff --git a/support/subprocess.h b/support/subprocess.h
new file mode 100644
index 0000000000..69e0af1308
--- /dev/null
+++ b/support/subprocess.h
@@ -0,0 +1,49 @@
+/* Create a subprocess.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef SUPPORT_SUBPROCESS_H
+#define SUPPORT_SUBPROCESS_H
+
+#include <sys/types.h>
+
+struct support_subprocess
+{
+ int stdout_pipe[2];
+ int stderr_pipe[2];
+ pid_t pid;
+};
+
+/* Invoke CALLBACK (CLOSURE) in a subprocess created with fork and return
+ its PID, a pipe redirected to STDOUT, and a pipe redirected to STDERR. */
+struct support_subprocess support_subprocess
+ (void (*callback) (void *), void *closure);
+
+/* Issue FILE with ARGV arguments by using posix_spawn and return is PID, a
+ pipe redirected to STDOUT, and a pipe redirected to STDERR. */
+struct support_subprocess support_subprogram
+ (const char *file, char *const argv[]);
+
+/* Wait for the subprocess indicated by PROC::PID. Return the status
+ indicate by waitpid call. */
+int support_process_wait (struct support_subprocess *proc);
+
+/* Terminate the subprocess indicated by PROC::PID, first with a SIGTERM and
+ then with a SIGKILL. Return the status as for waitpid call. */
+int support_process_terminate (struct support_subprocess *proc);
+
+#endif
diff --git a/support/support-xfstat.c b/support/support-xfstat.c
index f69253af09..b18ee2284e 100644
--- a/support/support-xfstat.c
+++ b/support/support-xfstat.c
@@ -1,5 +1,5 @@
/* fstat64 with error checking.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/check.h>
#include <support/xunistd.h>
diff --git a/support/support-xstat.c b/support/support-xstat.c
index fc10c6dcb7..438b58ad41 100644
--- a/support/support-xstat.c
+++ b/support/support-xstat.c
@@ -1,5 +1,5 @@
/* stat64 with error checking.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* NB: Non-standard file name to avoid sysdeps override for xstat. */
diff --git a/support/support.h b/support/support.h
index b61fe0735c..c10234404a 100644
--- a/support/support.h
+++ b/support/support.h
@@ -1,5 +1,5 @@
/* Common extra functions.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This header file should only contain definitions compatible with
C90. (Using __attribute__ is fine because <features.h> provides a
@@ -25,6 +25,10 @@
#include <stddef.h>
#include <sys/cdefs.h>
+/* For mode_t. */
+#include <sys/stat.h>
+/* For ssize_t and off64_t. */
+#include <sys/types.h>
__BEGIN_DECLS
@@ -65,16 +69,52 @@ void support_write_file_string (const char *path, const char *contents);
the result). */
char *support_quote_blob (const void *blob, size_t length);
+/* Quote the contents of the string, in such a way that the result
+ string can be included in a C literal (in single/double quotes,
+ without putting the quotes into the result). */
+char *support_quote_string (const char *);
+
+/* Returns non-zero if the file descriptor is a regular file on a file
+ system which supports holes (that is, seeking and writing does not
+ allocate storage for the range of zeros). FD must refer to a
+ regular file open for writing, and initially empty. */
+int support_descriptor_supports_holes (int fd);
+
/* Error-checking wrapper functions which terminate the process on
error. */
void *xmalloc (size_t) __attribute__ ((malloc));
void *xcalloc (size_t n, size_t s) __attribute__ ((malloc));
void *xrealloc (void *p, size_t n);
+void *xposix_memalign (size_t alignment, size_t n);
char *xasprintf (const char *format, ...)
__attribute__ ((format (printf, 1, 2), malloc));
char *xstrdup (const char *);
char *xstrndup (const char *, size_t);
+char *xsetlocale (int category, const char *locale);
+
+/* These point to the TOP of the source/build tree, not your (or
+ support's) subdirectory. */
+extern const char support_srcdir_root[];
+extern const char support_objdir_root[];
+
+/* Corresponds to the path to the runtime linker used by the testsuite,
+ e.g. OBJDIR_PATH/elf/ld-linux-x86-64.so.2 */
+extern const char support_objdir_elf_ldso[];
+
+/* Corresponds to the --prefix= passed to configure. */
+extern const char support_install_prefix[];
+/* Corresponds to the install's lib/ or lib64/ directory. */
+extern const char support_libdir_prefix[];
+/* Corresponds to the install's bin/ directory. */
+extern const char support_bindir_prefix[];
+/* Corresponds to the install's sbin/ directory. */
+extern const char support_sbindir_prefix[];
+/* Corresponds to the install's sbin/ directory (without prefix). */
+extern const char support_install_rootsbindir[];
+
+extern ssize_t support_copy_file_range (int, off64_t *, int, off64_t *,
+ size_t, unsigned int);
__END_DECLS
diff --git a/support/support_become_root.c b/support/support_become_root.c
index 6947dbaa80..9d0505f1ef 100644
--- a/support/support_become_root.c
+++ b/support/support_become_root.c
@@ -1,5 +1,5 @@
/* Acquire root privileges.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/namespace.h>
diff --git a/support/support_can_chroot.c b/support/support_can_chroot.c
index 8922576d19..b10a792fd8 100644
--- a/support/support_can_chroot.c
+++ b/support/support_can_chroot.c
@@ -1,5 +1,5 @@
/* Return true if the process can perform a chroot operation.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdio.h>
diff --git a/support/support_capture_subprocess.c b/support/support_capture_subprocess.c
index 6d2029e13b..7e0434d1aa 100644
--- a/support/support_capture_subprocess.c
+++ b/support/support_capture_subprocess.c
@@ -1,5 +1,5 @@
/* Capture output from a subprocess.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,8 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#include <support/subprocess.h>
#include <support/capture_subprocess.h>
#include <errno.h>
@@ -23,6 +24,7 @@
#include <support/check.h>
#include <support/xunistd.h>
#include <support/xsocket.h>
+#include <support/xspawn.h>
static void
transfer (const char *what, struct pollfd *pfd, struct xmemstream *stream)
@@ -50,53 +52,53 @@ transfer (const char *what, struct pollfd *pfd, struct xmemstream *stream)
}
}
-struct support_capture_subprocess
-support_capture_subprocess (void (*callback) (void *), void *closure)
+static void
+support_capture_poll (struct support_capture_subprocess *result,
+ struct support_subprocess *proc)
{
- struct support_capture_subprocess result;
- xopen_memstream (&result.out);
- xopen_memstream (&result.err);
-
- int stdout_pipe[2];
- xpipe (stdout_pipe);
- int stderr_pipe[2];
- xpipe (stderr_pipe);
-
- TEST_VERIFY (fflush (stdout) == 0);
- TEST_VERIFY (fflush (stderr) == 0);
-
- pid_t pid = xfork ();
- if (pid == 0)
- {
- xclose (stdout_pipe[0]);
- xclose (stderr_pipe[0]);
- xdup2 (stdout_pipe[1], STDOUT_FILENO);
- xdup2 (stderr_pipe[1], STDERR_FILENO);
- callback (closure);
- _exit (0);
- }
- xclose (stdout_pipe[1]);
- xclose (stderr_pipe[1]);
-
struct pollfd fds[2] =
{
- { .fd = stdout_pipe[0], .events = POLLIN },
- { .fd = stderr_pipe[0], .events = POLLIN },
+ { .fd = proc->stdout_pipe[0], .events = POLLIN },
+ { .fd = proc->stderr_pipe[0], .events = POLLIN },
};
do
{
xpoll (fds, 2, -1);
- transfer ("stdout", &fds[0], &result.out);
- transfer ("stderr", &fds[1], &result.err);
+ transfer ("stdout", &fds[0], &result->out);
+ transfer ("stderr", &fds[1], &result->err);
}
while (fds[0].events != 0 || fds[1].events != 0);
- xclose (stdout_pipe[0]);
- xclose (stderr_pipe[0]);
- xfclose_memstream (&result.out);
- xfclose_memstream (&result.err);
- xwaitpid (pid, &result.status, 0);
+ xfclose_memstream (&result->out);
+ xfclose_memstream (&result->err);
+
+ result->status = support_process_wait (proc);
+}
+
+struct support_capture_subprocess
+support_capture_subprocess (void (*callback) (void *), void *closure)
+{
+ struct support_capture_subprocess result;
+ xopen_memstream (&result.out);
+ xopen_memstream (&result.err);
+
+ struct support_subprocess proc = support_subprocess (callback, closure);
+
+ support_capture_poll (&result, &proc);
+ return result;
+}
+
+struct support_capture_subprocess
+support_capture_subprogram (const char *file, char *const argv[])
+{
+ struct support_capture_subprocess result;
+ xopen_memstream (&result.out);
+ xopen_memstream (&result.err);
+
+ struct support_subprocess proc = support_subprogram (file, argv);
+
+ support_capture_poll (&result, &proc);
return result;
}
diff --git a/support/support_capture_subprocess_check.c b/support/support_capture_subprocess_check.c
index ff5ee89fb0..6b953584c4 100644
--- a/support/support_capture_subprocess_check.c
+++ b/support/support_capture_subprocess_check.c
@@ -1,5 +1,5 @@
/* Verify capture output from a subprocess.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,12 +14,13 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdbool.h>
#include <stdio.h>
#include <support/capture_subprocess.h>
#include <support/check.h>
+#include <sys/wait.h>
static void
print_context (const char *context, bool *failed)
@@ -31,9 +32,22 @@ print_context (const char *context, bool *failed)
printf ("error: subprocess failed: %s\n", context);
}
+static void
+print_actual_status (struct support_capture_subprocess *proc)
+{
+ if (WIFEXITED (proc->status))
+ printf ("error: actual exit status: %d [0x%x]\n",
+ WEXITSTATUS (proc->status), proc->status);
+ else if (WIFSIGNALED (proc->status))
+ printf ("error: actual termination signal: %d [0x%x]\n",
+ WTERMSIG (proc->status), proc->status);
+ else
+ printf ("error: actual undecoded exit status: [0x%x]\n", proc->status);
+}
+
void
support_capture_subprocess_check (struct support_capture_subprocess *proc,
- const char *context, int status,
+ const char *context, int status_or_signal,
int allowed)
{
TEST_VERIFY ((allowed & sc_allow_none)
@@ -44,11 +58,28 @@ support_capture_subprocess_check (struct support_capture_subprocess *proc,
|| (allowed & sc_allow_stderr))));
bool failed = false;
- if (proc->status != status)
+ if (status_or_signal >= 0)
{
- print_context (context, &failed);
- printf ("error: expected exit status: %d\n", status);
- printf ("error: actual exit status: %d\n", proc->status);
+ /* Expect regular termination. */
+ if (!(WIFEXITED (proc->status)
+ && WEXITSTATUS (proc->status) == status_or_signal))
+ {
+ print_context (context, &failed);
+ printf ("error: expected exit status: %d\n", status_or_signal);
+ print_actual_status (proc);
+ }
+ }
+ else
+ {
+ /* status_or_signal < 0. Expect termination by signal. */
+ if (!(WIFSIGNALED (proc->status)
+ && WTERMSIG (proc->status) == -status_or_signal))
+ {
+ print_context (context, &failed);
+ printf ("error: expected termination signal: %d\n",
+ -status_or_signal);
+ print_actual_status (proc);
+ }
}
if (!(allowed & sc_allow_stdout) && proc->out.length != 0)
{
diff --git a/support/support_chroot.c b/support/support_chroot.c
index 6356b1af6c..dd6d03edd5 100644
--- a/support/support_chroot.c
+++ b/support/support_chroot.c
@@ -1,5 +1,5 @@
/* Setup a chroot environment for use within tests.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include <support/check.h>
@@ -56,6 +56,7 @@ support_chroot_create (struct support_chroot_configuration conf)
&chroot->path_resolv_conf);
write_file (path_etc, "hosts", conf.hosts, &chroot->path_hosts);
write_file (path_etc, "host.conf", conf.host_conf, &chroot->path_host_conf);
+ write_file (path_etc, "aliases", conf.aliases, &chroot->path_aliases);
free (path_etc);
@@ -77,5 +78,6 @@ support_chroot_free (struct support_chroot *chroot)
free (chroot->path_resolv_conf);
free (chroot->path_hosts);
free (chroot->path_host_conf);
+ free (chroot->path_aliases);
free (chroot);
}
diff --git a/support/support_copy_file_range.c b/support/support_copy_file_range.c
new file mode 100644
index 0000000000..ea8be86f10
--- /dev/null
+++ b/support/support_copy_file_range.c
@@ -0,0 +1,143 @@
+/* Simplified copy_file_range with cross-device copy.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <inttypes.h>
+#include <limits.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <unistd.h>
+#include <support/support.h>
+
+ssize_t
+support_copy_file_range (int infd, __off64_t *pinoff,
+ int outfd, __off64_t *poutoff,
+ size_t length, unsigned int flags)
+{
+ if (flags != 0)
+ {
+ errno = EINVAL;
+ return -1;
+ }
+
+ struct stat64 instat;
+ struct stat64 outstat;
+ if (fstat64 (infd, &instat) != 0 || fstat64 (outfd, &outstat) != 0)
+ return -1;
+ if (S_ISDIR (instat.st_mode) || S_ISDIR (outstat.st_mode))
+ {
+ errno = EISDIR;
+ return -1;
+ }
+ if (!S_ISREG (instat.st_mode) || !S_ISREG (outstat.st_mode))
+ {
+ /* We need a regular input file so that the we can seek
+ backwards in case of a write failure. */
+ errno = EINVAL;
+ return -1;
+ }
+
+ /* The output descriptor must not have O_APPEND set. */
+ if (fcntl (outfd, F_GETFL) & O_APPEND)
+ {
+ errno = EBADF;
+ return -1;
+ }
+
+ /* Avoid an overflow in the result. */
+ if (length > SSIZE_MAX)
+ length = SSIZE_MAX;
+
+ /* Main copying loop. The buffer size is arbitrary and is a
+ trade-off between stack size consumption, cache usage, and
+ amortization of system call overhead. */
+ size_t copied = 0;
+ char buf[8192];
+ while (length > 0)
+ {
+ size_t to_read = length;
+ if (to_read > sizeof (buf))
+ to_read = sizeof (buf);
+
+ /* Fill the buffer. */
+ ssize_t read_count;
+ if (pinoff == NULL)
+ read_count = read (infd, buf, to_read);
+ else
+ read_count = pread64 (infd, buf, to_read, *pinoff);
+ if (read_count == 0)
+ /* End of file reached prematurely. */
+ return copied;
+ if (read_count < 0)
+ {
+ if (copied > 0)
+ /* Report the number of bytes copied so far. */
+ return copied;
+ return -1;
+ }
+ if (pinoff != NULL)
+ *pinoff += read_count;
+
+ /* Write the buffer part which was read to the destination. */
+ char *end = buf + read_count;
+ for (char *p = buf; p < end; )
+ {
+ ssize_t write_count;
+ if (poutoff == NULL)
+ write_count = write (outfd, p, end - p);
+ else
+ write_count = pwrite64 (outfd, p, end - p, *poutoff);
+ if (write_count < 0)
+ {
+ /* Adjust the input read position to match what we have
+ written, so that the caller can pick up after the
+ error. */
+ size_t written = p - buf;
+ /* NB: This needs to be signed so that we can form the
+ negative value below. */
+ ssize_t overread = read_count - written;
+ if (pinoff == NULL)
+ {
+ if (overread > 0)
+ {
+ /* We are on an error recovery path, so we
+ cannot deal with failure here. */
+ int save_errno = errno;
+ (void) lseek64 (infd, -overread, SEEK_CUR);
+ errno = save_errno;
+ }
+ }
+ else /* pinoff != NULL */
+ *pinoff -= overread;
+
+ if (copied + written > 0)
+ /* Report the number of bytes copied so far. */
+ return copied + written;
+ return -1;
+ }
+ p += write_count;
+ if (poutoff != NULL)
+ *poutoff += write_count;
+ } /* Write loop. */
+
+ copied += read_count;
+ length -= read_count;
+ }
+ return copied;
+}
diff --git a/support/support_descriptor_supports_holes.c b/support/support_descriptor_supports_holes.c
new file mode 100644
index 0000000000..9866728afb
--- /dev/null
+++ b/support/support_descriptor_supports_holes.c
@@ -0,0 +1,87 @@
+/* Test for file system hole support.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdbool.h>
+#include <support.h>
+#include <support/check.h>
+#include <sys/stat.h>
+#include <xunistd.h>
+
+int
+support_descriptor_supports_holes (int fd)
+{
+ enum
+ {
+ /* Write offset for the enlarged file. This value is arbitrary
+ and hopefully large enough to trigger the creation of holes.
+ We cannot use the file system block size as a reference here
+ because it is incorrect for network file systems. */
+ write_offset = 16 * 1024 * 1024,
+
+ /* Our write may add this number of additional blocks (see
+ block_limit below). */
+ block_headroom = 8,
+ };
+
+ struct stat64 st;
+ xfstat (fd, &st);
+ if (!S_ISREG (st.st_mode))
+ FAIL_EXIT1 ("descriptor %d does not refer to a regular file", fd);
+ if (st.st_size != 0)
+ FAIL_EXIT1 ("descriptor %d does not refer to an empty file", fd);
+ if (st.st_blocks > block_headroom)
+ FAIL_EXIT1 ("descriptor %d refers to a pre-allocated file (%lld blocks)",
+ fd, (long long int) st.st_blocks);
+
+ /* Write a single byte at the start of the file to compute the block
+ usage for a single byte. */
+ xlseek (fd, 0, SEEK_SET);
+ char b = '@';
+ xwrite (fd, &b, 1);
+ /* Attempt to bypass delayed allocation. */
+ TEST_COMPARE (fsync (fd), 0);
+ xfstat (fd, &st);
+
+ /* This limit is arbitrary. The file system needs to store
+ somewhere that data exists at the write offset, and this may
+ moderately increase the number of blocks used by the file, in
+ proportion to the initial block count, but not in proportion to
+ the write offset. */
+ unsigned long long int block_limit = 2 * st.st_blocks + block_headroom;
+
+ /* Write a single byte at 16 megabytes. */
+ xlseek (fd, write_offset, SEEK_SET);
+ xwrite (fd, &b, 1);
+ /* Attempt to bypass delayed allocation. */
+ TEST_COMPARE (fsync (fd), 0);
+ xfstat (fd, &st);
+ bool supports_holes = st.st_blocks <= block_limit;
+
+ /* Also check that extending the file does not fill up holes. */
+ xftruncate (fd, 2 * write_offset);
+ /* Attempt to bypass delayed allocation. */
+ TEST_COMPARE (fsync (fd), 0);
+ xfstat (fd, &st);
+ supports_holes = supports_holes && st.st_blocks <= block_limit;
+
+ /* Return to a zero-length file. */
+ xftruncate (fd, 0);
+ xlseek (fd, 0, SEEK_SET);
+
+ return supports_holes;
+}
diff --git a/support/support_descriptors.c b/support/support_descriptors.c
new file mode 100644
index 0000000000..e3012bc60f
--- /dev/null
+++ b/support/support_descriptors.c
@@ -0,0 +1,275 @@
+/* Monitoring file descriptor usage.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <dirent.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <support/check.h>
+#include <support/descriptors.h>
+#include <support/support.h>
+#include <sys/stat.h>
+#include <sys/sysmacros.h>
+#include <xunistd.h>
+
+struct procfs_descriptor
+{
+ int fd;
+ char *link_target;
+ dev_t dev;
+ ino64_t ino;
+};
+
+/* Used with qsort. */
+static int
+descriptor_compare (const void *l, const void *r)
+{
+ const struct procfs_descriptor *left = l;
+ const struct procfs_descriptor *right = r;
+ /* Cannot overflow due to limited file descriptor range. */
+ return left->fd - right->fd;
+}
+
+#define DYNARRAY_STRUCT descriptor_list
+#define DYNARRAY_ELEMENT struct procfs_descriptor
+#define DYNARRAY_PREFIX descriptor_list_
+#define DYNARRAY_ELEMENT_FREE(e) free ((e)->link_target)
+#define DYNARRAY_INITIAL_SIZE 0
+#include <malloc/dynarray-skeleton.c>
+
+struct support_descriptors
+{
+ struct descriptor_list list;
+};
+
+struct support_descriptors *
+support_descriptors_list (void)
+{
+ struct support_descriptors *result = xmalloc (sizeof (*result));
+ descriptor_list_init (&result->list);
+
+ DIR *fds = opendir ("/proc/self/fd");
+ if (fds == NULL)
+ FAIL_EXIT1 ("opendir (\"/proc/self/fd\"): %m");
+
+ while (true)
+ {
+ errno = 0;
+ struct dirent64 *e = readdir64 (fds);
+ if (e == NULL)
+ {
+ if (errno != 0)
+ FAIL_EXIT1 ("readdir: %m");
+ break;
+ }
+
+ if (e->d_name[0] == '.')
+ continue;
+
+ char *endptr;
+ long int fd = strtol (e->d_name, &endptr, 10);
+ if (*endptr != '\0' || fd < 0 || fd > INT_MAX)
+ FAIL_EXIT1 ("readdir: invalid file descriptor name: /proc/self/fd/%s",
+ e->d_name);
+
+ /* Skip the descriptor which is used to enumerate the
+ descriptors. */
+ if (fd == dirfd (fds))
+ continue;
+
+ char *target;
+ {
+ char *path = xasprintf ("/proc/self/fd/%ld", fd);
+ target = xreadlink (path);
+ free (path);
+ }
+ struct stat64 st;
+ if (fstat64 (fd, &st) != 0)
+ FAIL_EXIT1 ("readdir: fstat64 (%ld) failed: %m", fd);
+
+ struct procfs_descriptor *item = descriptor_list_emplace (&result->list);
+ if (item == NULL)
+ FAIL_EXIT1 ("descriptor_list_emplace: %m");
+ item->fd = fd;
+ item->link_target = target;
+ item->dev = st.st_dev;
+ item->ino = st.st_ino;
+ }
+
+ closedir (fds);
+
+ /* Perform a merge join between descrs and current. This assumes
+ that the arrays are sorted by file descriptor. */
+
+ qsort (descriptor_list_begin (&result->list),
+ descriptor_list_size (&result->list),
+ sizeof (struct procfs_descriptor), descriptor_compare);
+
+ return result;
+}
+
+void
+support_descriptors_free (struct support_descriptors *descrs)
+{
+ descriptor_list_free (&descrs->list);
+ free (descrs);
+}
+
+void
+support_descriptors_dump (struct support_descriptors *descrs,
+ const char *prefix, FILE *fp)
+{
+ struct procfs_descriptor *end = descriptor_list_end (&descrs->list);
+ for (struct procfs_descriptor *d = descriptor_list_begin (&descrs->list);
+ d != end; ++d)
+ {
+ char *quoted = support_quote_string (d->link_target);
+ fprintf (fp, "%s%d: target=\"%s\" major=%lld minor=%lld ino=%lld\n",
+ prefix, d->fd, quoted,
+ (long long int) major (d->dev),
+ (long long int) minor (d->dev),
+ (long long int) d->ino);
+ free (quoted);
+ }
+}
+
+static void
+dump_mismatch (bool *first,
+ struct support_descriptors *descrs,
+ struct support_descriptors *current)
+{
+ if (*first)
+ *first = false;
+ else
+ return;
+
+ puts ("error: Differences found in descriptor set");
+ puts ("Reference descriptor set:");
+ support_descriptors_dump (descrs, " ", stdout);
+ puts ("Current descriptor set:");
+ support_descriptors_dump (current, " ", stdout);
+ puts ("Differences:");
+}
+
+static void
+report_closed_descriptor (bool *first,
+ struct support_descriptors *descrs,
+ struct support_descriptors *current,
+ struct procfs_descriptor *left)
+{
+ support_record_failure ();
+ dump_mismatch (first, descrs, current);
+ printf ("error: descriptor %d was closed\n", left->fd);
+}
+
+static void
+report_opened_descriptor (bool *first,
+ struct support_descriptors *descrs,
+ struct support_descriptors *current,
+ struct procfs_descriptor *right)
+{
+ support_record_failure ();
+ dump_mismatch (first, descrs, current);
+ char *quoted = support_quote_string (right->link_target);
+ printf ("error: descriptor %d was opened (\"%s\")\n", right->fd, quoted);
+ free (quoted);
+}
+
+void
+support_descriptors_check (struct support_descriptors *descrs)
+{
+ struct support_descriptors *current = support_descriptors_list ();
+
+ /* Perform a merge join between descrs and current. This assumes
+ that the arrays are sorted by file descriptor. */
+
+ struct procfs_descriptor *left = descriptor_list_begin (&descrs->list);
+ struct procfs_descriptor *left_end = descriptor_list_end (&descrs->list);
+ struct procfs_descriptor *right = descriptor_list_begin (&current->list);
+ struct procfs_descriptor *right_end = descriptor_list_end (&current->list);
+
+ bool first = true;
+ while (left != left_end && right != right_end)
+ {
+ if (left->fd == right->fd)
+ {
+ if (strcmp (left->link_target, right->link_target) != 0)
+ {
+ support_record_failure ();
+ char *left_quoted = support_quote_string (left->link_target);
+ char *right_quoted = support_quote_string (right->link_target);
+ dump_mismatch (&first, descrs, current);
+ printf ("error: descriptor %d changed from \"%s\" to \"%s\"\n",
+ left->fd, left_quoted, right_quoted);
+ free (left_quoted);
+ free (right_quoted);
+ }
+ if (left->dev != right->dev)
+ {
+ support_record_failure ();
+ dump_mismatch (&first, descrs, current);
+ printf ("error: descriptor %d changed device"
+ " from %lld:%lld to %lld:%lld\n",
+ left->fd,
+ (long long int) major (left->dev),
+ (long long int) minor (left->dev),
+ (long long int) major (right->dev),
+ (long long int) minor (right->dev));
+ }
+ if (left->ino != right->ino)
+ {
+ support_record_failure ();
+ dump_mismatch (&first, descrs, current);
+ printf ("error: descriptor %d changed ino from %lld to %lld\n",
+ left->fd,
+ (long long int) left->ino, (long long int) right->ino);
+ }
+ ++left;
+ ++right;
+ }
+ else if (left->fd < right->fd)
+ {
+ /* Gap on the right. */
+ report_closed_descriptor (&first, descrs, current, left);
+ ++left;
+ }
+ else
+ {
+ /* Gap on the left. */
+ TEST_VERIFY_EXIT (left->fd > right->fd);
+ report_opened_descriptor (&first, descrs, current, right);
+ ++right;
+ }
+ }
+
+ while (left != left_end)
+ {
+ /* Closed descriptors (more descriptors on the left). */
+ report_closed_descriptor (&first, descrs, current, left);
+ ++left;
+ }
+
+ while (right != right_end)
+ {
+ /* Opened descriptors (more descriptors on the right). */
+ report_opened_descriptor (&first, descrs, current, right);
+ ++right;
+ }
+
+ support_descriptors_free (current);
+}
diff --git a/support/support_enter_mount_namespace.c b/support/support_enter_mount_namespace.c
index ba68e990f2..4811af3db7 100644
--- a/support/support_enter_mount_namespace.c
+++ b/support/support_enter_mount_namespace.c
@@ -1,5 +1,5 @@
/* Enter a mount namespace.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/namespace.h>
diff --git a/support/support_enter_network_namespace.c b/support/support_enter_network_namespace.c
index 1d874df885..73910b1a2a 100644
--- a/support/support_enter_network_namespace.c
+++ b/support/support_enter_network_namespace.c
@@ -1,5 +1,5 @@
/* Enter a network namespace.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/namespace.h>
diff --git a/support/support_format_address_family.c b/support/support_format_address_family.c
index 2acb9afffd..2b14b52aca 100644
--- a/support/support_format_address_family.c
+++ b/support/support_format_address_family.c
@@ -1,5 +1,5 @@
/* Convert an address family to a string.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/format_nss.h>
@@ -29,6 +29,10 @@ support_format_address_family (int family)
return xstrdup ("INET");
case AF_INET6:
return xstrdup ("INET6");
+ case AF_LOCAL:
+ return xstrdup ("LOCAL");
+ case AF_UNSPEC:
+ return xstrdup ("UNSPEC");
default:
return xasprintf ("<unknown address family %d>", family);
}
diff --git a/support/support_format_addrinfo.c b/support/support_format_addrinfo.c
index 60d2cc40f6..424a528e1b 100644
--- a/support/support_format_addrinfo.c
+++ b/support/support_format_addrinfo.c
@@ -1,5 +1,5 @@
/* Convert struct addrinfo values to a string.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/format_nss.h>
diff --git a/support/support_format_dns_packet.c b/support/support_format_dns_packet.c
index 1170eafb0f..6a2a129c1e 100644
--- a/support/support_format_dns_packet.c
+++ b/support/support_format_dns_packet.c
@@ -1,5 +1,5 @@
/* Convert a DNS packet to a human-readable representation.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/format_nss.h>
diff --git a/support/support_format_herrno.c b/support/support_format_herrno.c
index 3d2dc8b27a..04f5ed9c89 100644
--- a/support/support_format_herrno.c
+++ b/support/support_format_herrno.c
@@ -1,5 +1,5 @@
/* Convert a h_errno error code to a string.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/format_nss.h>
diff --git a/support/support_format_hostent.c b/support/support_format_hostent.c
index a4a62afe0a..4210d51506 100644
--- a/support/support_format_hostent.c
+++ b/support/support_format_hostent.c
@@ -1,5 +1,5 @@
/* Convert a struct hostent object to a string.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/format_nss.h>
diff --git a/support/support_format_netent.c b/support/support_format_netent.c
index 0d15e78440..8ea6c39df6 100644
--- a/support/support_format_netent.c
+++ b/support/support_format_netent.c
@@ -1,5 +1,5 @@
/* Convert a struct netent object to a string.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/format_nss.h>
diff --git a/support/support_isolate_in_subprocess.c b/support/support_isolate_in_subprocess.c
index 25edc00385..d358b4668c 100644
--- a/support/support_isolate_in_subprocess.c
+++ b/support/support_isolate_in_subprocess.c
@@ -1,5 +1,5 @@
/* Run a function in a subprocess.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/check.h>
#include <support/xunistd.h>
diff --git a/support/support_openpty.c b/support/support_openpty.c
index ac779ab91e..d06c897abd 100644
--- a/support/support_openpty.c
+++ b/support/support_openpty.c
@@ -1,5 +1,5 @@
/* Open a pseudoterminal.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/tty.h>
#include <support/check.h>
diff --git a/support/support_paths.c b/support/support_paths.c
new file mode 100644
index 0000000000..22ce80f4cd
--- /dev/null
+++ b/support/support_paths.c
@@ -0,0 +1,80 @@
+/* Various paths that might be needed.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <support/support.h>
+#include <support/check.h>
+
+/* The idea here is to make various makefile-level paths available to
+ support programs, as canonicalized absolute paths. */
+
+/* These point to the TOP of the source/build tree, not your (or
+ support's) subdirectory. */
+#ifdef SRCDIR_PATH
+const char support_srcdir_root[] = SRCDIR_PATH;
+#else
+# error please -DSRCDIR_PATH=something in the Makefile
+#endif
+
+#ifdef OBJDIR_PATH
+const char support_objdir_root[] = OBJDIR_PATH;
+#else
+# error please -DOBJDIR_PATH=something in the Makefile
+#endif
+
+#ifdef OBJDIR_ELF_LDSO_PATH
+/* Corresponds to the path to the runtime linker used by the testsuite,
+ e.g. OBJDIR_PATH/elf/ld-linux-x86-64.so.2 */
+const char support_objdir_elf_ldso[] = OBJDIR_ELF_LDSO_PATH;
+#else
+# error please -DOBJDIR_ELF_LDSO_PATH=something in the Makefile
+#endif
+
+#ifdef INSTDIR_PATH
+/* Corresponds to the --prefix= passed to configure. */
+const char support_install_prefix[] = INSTDIR_PATH;
+#else
+# error please -DINSTDIR_PATH=something in the Makefile
+#endif
+
+#ifdef LIBDIR_PATH
+/* Corresponds to the install's lib/ or lib64/ directory. */
+const char support_libdir_prefix[] = LIBDIR_PATH;
+#else
+# error please -DLIBDIR_PATH=something in the Makefile
+#endif
+
+#ifdef BINDIR_PATH
+/* Corresponds to the install's bin/ directory. */
+const char support_bindir_prefix[] = BINDIR_PATH;
+#else
+# error please -DBINDIR_PATH=something in the Makefile
+#endif
+
+#ifdef SBINDIR_PATH
+/* Corresponds to the install's bin/ directory. */
+const char support_sbindir_prefix[] = SBINDIR_PATH;
+#else
+# error please -DSBINDIR_PATH=something in the Makefile
+#endif
+
+#ifdef ROOTSBINDIR_PATH
+/* Corresponds to the install's sbin/ directory. */
+const char support_install_rootsbindir[] = ROOTSBINDIR_PATH;
+#else
+# error please -DROOTSBINDIR_PATH=something in the Makefile
+#endif
diff --git a/support/support_ptrace.c b/support/support_ptrace.c
new file mode 100644
index 0000000000..a733adf2c8
--- /dev/null
+++ b/support/support_ptrace.c
@@ -0,0 +1,43 @@
+/* Support functions handling ptrace_scope.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <support/check.h>
+#include <support/xstdio.h>
+#include <support/xptrace.h>
+
+int
+support_ptrace_scope (void)
+{
+ int ptrace_scope = -1;
+
+#ifdef __linux__
+ /* YAMA may be not enabled. Otherwise it contains a value from 0 to 3:
+ - 0 classic ptrace permissions
+ - 1 restricted ptrace
+ - 2 admin-only attach
+ - 3 no attach */
+ FILE *f = fopen ("/proc/sys/kernel/yama/ptrace_scope", "r");
+ if (f != NULL)
+ {
+ TEST_COMPARE (fscanf (f, "%d", &ptrace_scope), 1);
+ xfclose (f);
+ }
+#endif
+
+ return ptrace_scope;
+}
diff --git a/support/support_quote_blob.c b/support/support_quote_blob.c
index d6a678d8d6..26e6d247ec 100644
--- a/support/support_quote_blob.c
+++ b/support/support_quote_blob.c
@@ -1,5 +1,5 @@
/* Quote a blob so that it can be used in C literals.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/support.h>
#include <support/xmemstream.h>
diff --git a/support/support_quote_string.c b/support/support_quote_string.c
new file mode 100644
index 0000000000..2a889cb4eb
--- /dev/null
+++ b/support/support_quote_string.c
@@ -0,0 +1,26 @@
+/* Quote a string so that it can be used in C literals.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <string.h>
+#include <support/support.h>
+
+char *
+support_quote_string (const char *str)
+{
+ return support_quote_blob (str, strlen (str));
+}
diff --git a/support/support_record_failure.c b/support/support_record_failure.c
index 356798f556..9df679c4cc 100644
--- a/support/support_record_failure.c
+++ b/support/support_record_failure.c
@@ -1,5 +1,5 @@
/* Global test failure counter.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/check.h>
#include <support/support.h>
@@ -104,3 +104,11 @@ support_record_failure_reset (void)
__atomic_store_n (&state->failed, 0, __ATOMIC_RELAXED);
__atomic_add_fetch (&state->counter, 0, __ATOMIC_RELAXED);
}
+
+int
+support_record_failure_is_failed (void)
+{
+ /* Relaxed MO is sufficient because we need (blocking) external
+ synchronization for reliable test error reporting anyway. */
+ return __atomic_load_n (&state->failed, __ATOMIC_RELAXED);
+}
diff --git a/support/support_run_diff.c b/support/support_run_diff.c
index f24f6c3281..8a237862b6 100644
--- a/support/support_run_diff.c
+++ b/support/support_run_diff.c
@@ -1,5 +1,5 @@
/* Invoke the system diff tool to compare two strings.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/run_diff.h>
diff --git a/support/support_set_small_thread_stack_size.c b/support/support_set_small_thread_stack_size.c
new file mode 100644
index 0000000000..32954ec10c
--- /dev/null
+++ b/support/support_set_small_thread_stack_size.c
@@ -0,0 +1,35 @@
+/* Set a small stack size, but still large enough for glibc's needs.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <limits.h>
+#include <pthread.h>
+#include <support/xthread.h>
+
+void
+support_set_small_thread_stack_size (pthread_attr_t *attr)
+{
+ /* Some architectures have too small values for PTHREAD_STACK_MIN
+ which cannot be used for creating threads. Ensure that the stack
+ size is at least 256 KiB. */
+ size_t stack_size = 256 * 1024;
+#ifdef PTHREAD_STACK_MIN
+ if (stack_size < PTHREAD_STACK_MIN)
+ stack_size = PTHREAD_STACK_MIN;
+#endif
+ xpthread_attr_setstacksize (attr, stack_size);
+}
diff --git a/support/support_shared_allocate.c b/support/support_shared_allocate.c
index 8ab43c4b38..80aee10ba2 100644
--- a/support/support_shared_allocate.c
+++ b/support/support_shared_allocate.c
@@ -1,5 +1,5 @@
/* Allocate a memory region shared across processes.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/support/support_small_stack_thread_attribute.c b/support/support_small_stack_thread_attribute.c
new file mode 100644
index 0000000000..a65097d8af
--- /dev/null
+++ b/support/support_small_stack_thread_attribute.c
@@ -0,0 +1,54 @@
+/* A thread attribute with a small stack.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <support/xthread.h>
+#include <allocate_once.h>
+
+static void *
+allocate (void *closure)
+{
+ pthread_attr_t *result = malloc (sizeof (*result));
+ xpthread_attr_init (result);
+ support_set_small_thread_stack_size (result);
+ return result;
+}
+
+static void
+deallocate (void *ptr, void *closure)
+{
+ xpthread_attr_destroy (ptr);
+ free (ptr);
+}
+
+static void *small_stack_attr;
+
+pthread_attr_t *
+support_small_stack_thread_attribute (void)
+{
+ return allocate_once (&small_stack_attr, allocate, deallocate, NULL);
+}
+
+static void __attribute__ ((destructor))
+fini (void)
+{
+ if (small_stack_attr != NULL)
+ {
+ deallocate (small_stack_attr, NULL);
+ small_stack_attr = NULL;
+ }
+}
diff --git a/support/support_subprocess.c b/support/support_subprocess.c
new file mode 100644
index 0000000000..5c632a6847
--- /dev/null
+++ b/support/support_subprocess.c
@@ -0,0 +1,152 @@
+/* Create subprocess.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdio.h>
+#include <signal.h>
+#include <time.h>
+#include <sys/wait.h>
+#include <stdbool.h>
+#include <support/xspawn.h>
+#include <support/check.h>
+#include <support/xunistd.h>
+#include <support/subprocess.h>
+
+static struct support_subprocess
+support_suprocess_init (void)
+{
+ struct support_subprocess result;
+
+ xpipe (result.stdout_pipe);
+ TEST_VERIFY (result.stdout_pipe[0] > STDERR_FILENO);
+ TEST_VERIFY (result.stdout_pipe[1] > STDERR_FILENO);
+
+ xpipe (result.stderr_pipe);
+ TEST_VERIFY (result.stderr_pipe[0] > STDERR_FILENO);
+ TEST_VERIFY (result.stderr_pipe[1] > STDERR_FILENO);
+
+ TEST_VERIFY (fflush (stdout) == 0);
+ TEST_VERIFY (fflush (stderr) == 0);
+
+ return result;
+}
+
+struct support_subprocess
+support_subprocess (void (*callback) (void *), void *closure)
+{
+ struct support_subprocess result = support_suprocess_init ();
+
+ result.pid = xfork ();
+ if (result.pid == 0)
+ {
+ xclose (result.stdout_pipe[0]);
+ xclose (result.stderr_pipe[0]);
+ xdup2 (result.stdout_pipe[1], STDOUT_FILENO);
+ xdup2 (result.stderr_pipe[1], STDERR_FILENO);
+ xclose (result.stdout_pipe[1]);
+ xclose (result.stderr_pipe[1]);
+ callback (closure);
+ _exit (0);
+ }
+ xclose (result.stdout_pipe[1]);
+ xclose (result.stderr_pipe[1]);
+
+ return result;
+}
+
+struct support_subprocess
+support_subprogram (const char *file, char *const argv[])
+{
+ struct support_subprocess result = support_suprocess_init ();
+
+ posix_spawn_file_actions_t fa;
+ /* posix_spawn_file_actions_init does not fail. */
+ posix_spawn_file_actions_init (&fa);
+
+ xposix_spawn_file_actions_addclose (&fa, result.stdout_pipe[0]);
+ xposix_spawn_file_actions_addclose (&fa, result.stderr_pipe[0]);
+ xposix_spawn_file_actions_adddup2 (&fa, result.stdout_pipe[1], STDOUT_FILENO);
+ xposix_spawn_file_actions_adddup2 (&fa, result.stderr_pipe[1], STDERR_FILENO);
+ xposix_spawn_file_actions_addclose (&fa, result.stdout_pipe[1]);
+ xposix_spawn_file_actions_addclose (&fa, result.stderr_pipe[1]);
+
+ result.pid = xposix_spawn (file, &fa, NULL, argv, NULL);
+
+ xclose (result.stdout_pipe[1]);
+ xclose (result.stderr_pipe[1]);
+
+ return result;
+}
+
+int
+support_process_wait (struct support_subprocess *proc)
+{
+ xclose (proc->stdout_pipe[0]);
+ xclose (proc->stderr_pipe[0]);
+
+ int status;
+ xwaitpid (proc->pid, &status, 0);
+ return status;
+}
+
+
+static bool
+support_process_kill (int pid, int signo, int *status)
+{
+ /* Kill the whole process group. */
+ kill (-pid, signo);
+ /* In case setpgid failed in the child, kill it individually too. */
+ kill (pid, signo);
+
+ /* Wait for it to terminate. */
+ pid_t killed;
+ for (int i = 0; i < 5; ++i)
+ {
+ int status;
+ killed = xwaitpid (pid, &status, WNOHANG|WUNTRACED);
+ if (killed != 0)
+ break;
+
+ /* Delay, give the system time to process the kill. If the
+ nanosleep() call return prematurely, all the better. We
+ won't restart it since this probably means the child process
+ finally died. */
+ nanosleep (&((struct timespec) { 0, 100000000 }), NULL);
+ }
+ if (killed != 0 && killed != pid)
+ return false;
+
+ return true;
+}
+
+int
+support_process_terminate (struct support_subprocess *proc)
+{
+ xclose (proc->stdout_pipe[0]);
+ xclose (proc->stderr_pipe[0]);
+
+ int status;
+ pid_t killed = xwaitpid (proc->pid, &status, WNOHANG|WUNTRACED);
+ if (killed != 0 && killed == proc->pid)
+ return status;
+
+ /* Subprocess is still running, terminate it. */
+ if (!support_process_kill (proc->pid, SIGTERM, &status) )
+ support_process_kill (proc->pid, SIGKILL, &status);
+
+ return status;
+}
diff --git a/support/support_test_compare_blob.c b/support/support_test_compare_blob.c
index c5e63d1b93..c0e0b308c4 100644
--- a/support/support_test_compare_blob.c
+++ b/support/support_test_compare_blob.c
@@ -1,5 +1,5 @@
/* Check two binary blobs for equality.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
@@ -33,7 +33,9 @@ static void
report_blob (const char *what, const unsigned char *blob,
unsigned long int length, const char *expr)
{
- if (length > 0)
+ if (blob == NULL && length > 0)
+ printf (" %s (evaluated from %s): NULL\n", what, expr);
+ else if (length > 0)
{
printf (" %s (evaluated from %s):\n", what, expr);
char *quoted = support_quote_blob (blob, length);
diff --git a/support/support_test_compare_failure.c b/support/support_test_compare_failure.c
index 8eb51c439d..f1924c899d 100644
--- a/support/support_test_compare_failure.c
+++ b/support/support_test_compare_failure.c
@@ -1,5 +1,5 @@
/* Reporting a numeric comparison failure.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdio.h>
diff --git a/support/support_test_compare_string.c b/support/support_test_compare_string.c
new file mode 100644
index 0000000000..9f1b1a5af4
--- /dev/null
+++ b/support/support_test_compare_string.c
@@ -0,0 +1,91 @@
+/* Check two strings for equality.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <support/check.h>
+#include <support/support.h>
+#include <support/xmemstream.h>
+
+static void
+report_length (const char *what, const char *str, size_t length)
+{
+ if (str == NULL)
+ printf (" %s string: NULL\n", what);
+ else
+ printf (" %s string: %zu bytes\n", what, length);
+}
+
+static void
+report_string (const char *what, const unsigned char *blob,
+ size_t length, const char *expr)
+{
+ if (length > 0)
+ {
+ printf (" %s (evaluated from %s):\n", what, expr);
+ char *quoted = support_quote_blob (blob, length);
+ printf (" \"%s\"\n", quoted);
+ free (quoted);
+
+ fputs (" ", stdout);
+ for (size_t i = 0; i < length; ++i)
+ printf (" %02X", blob[i]);
+ putc ('\n', stdout);
+ }
+}
+
+static size_t
+string_length_or_zero (const char *str)
+{
+ if (str == NULL)
+ return 0;
+ else
+ return strlen (str);
+}
+
+void
+support_test_compare_string (const char *left, const char *right,
+ const char *file, int line,
+ const char *left_expr, const char *right_expr)
+{
+ /* Two null pointers are accepted. */
+ if (left == NULL && right == NULL)
+ return;
+
+ size_t left_length = string_length_or_zero (left);
+ size_t right_length = string_length_or_zero (right);
+
+ if (left_length != right_length || left == NULL || right == NULL
+ || memcmp (left, right, left_length) != 0)
+ {
+ support_record_failure ();
+ printf ("%s:%d: error: string comparison failed\n", file, line);
+ if (left_length == right_length && right != NULL && left != NULL)
+ printf (" string length: %zu bytes\n", left_length);
+ else
+ {
+ report_length ("left", left, left_length);
+ report_length ("right", right, right_length);
+ }
+ report_string ("left", (const unsigned char *) left,
+ left_length, left_expr);
+ report_string ("right", (const unsigned char *) right,
+ right_length, right_expr);
+ }
+}
diff --git a/support/support_test_main.c b/support/support_test_main.c
index 23429779ac..1df6e4f976 100644
--- a/support/support_test_main.c
+++ b/support/support_test_main.c
@@ -1,5 +1,5 @@
/* Main worker function for the test driver.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,11 +14,12 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/test-driver.h>
#include <support/check.h>
#include <support/temp_file-internal.h>
+#include <support/support.h>
#include <assert.h>
#include <errno.h>
@@ -30,11 +31,14 @@
#include <string.h>
#include <sys/param.h>
#include <sys/resource.h>
+#include <sys/time.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <time.h>
#include <unistd.h>
+#include <xstdio.h>
+
static const struct option default_options[] =
{
TEST_DEFAULT_OPTIONS
@@ -86,6 +90,21 @@ static pid_t test_pid;
/* The cleanup handler passed to test_main. */
static void (*cleanup_function) (void);
+static void
+print_timestamp (const char *what, struct timespec tv)
+{
+ struct tm tm;
+ /* Casts of tv.tv_nsec below are necessary because the type of
+ tv_nsec is not literally long int on all supported platforms. */
+ if (gmtime_r (&tv.tv_sec, &tm) == NULL)
+ printf ("%s: %lld.%09ld\n",
+ what, (long long int) tv.tv_sec, (long int) tv.tv_nsec);
+ else
+ printf ("%s: %04d-%02d-%02dT%02d:%02d:%02d.%09ld\n",
+ what, 1900 + tm.tm_year, tm.tm_mon + 1, tm.tm_mday,
+ tm.tm_hour, tm.tm_min, tm.tm_sec, (long int) tv.tv_nsec);
+}
+
/* Timeout handler. We kill the child and exit with an error. */
static void
__attribute__ ((noreturn))
@@ -94,6 +113,13 @@ signal_handler (int sig)
int killed;
int status;
+ /* Do this first to avoid further interference from the
+ subprocess. */
+ struct timespec now;
+ clock_gettime (CLOCK_REALTIME, &now);
+ struct stat64 st;
+ bool st_available = fstat64 (STDOUT_FILENO, &st) == 0 && st.st_mtime != 0;
+
assert (test_pid > 1);
/* Kill the whole process group. */
kill (-test_pid, SIGKILL);
@@ -144,14 +170,63 @@ signal_handler (int sig)
printf ("Timed out: killed the child process but it exited %d\n",
WEXITSTATUS (status));
+ print_timestamp ("Termination time", now);
+ if (st_available)
+ print_timestamp ("Last write to standard output", st.st_mtim);
+
/* Exit with an error. */
exit (1);
}
+/* This must be volatile as it will be modified by the debugger. */
+static volatile int wait_for_debugger = 0;
+
/* Run test_function or test_function_argv. */
static int
run_test_function (int argc, char **argv, const struct test_config *config)
{
+ const char *wfd = getenv("WAIT_FOR_DEBUGGER");
+ if (wfd != NULL)
+ wait_for_debugger = atoi (wfd);
+ if (wait_for_debugger)
+ {
+ pid_t mypid;
+ FILE *gdb_script;
+ char *gdb_script_name;
+ int inside_container = 0;
+
+ mypid = getpid();
+ if (mypid < 3)
+ {
+ const char *outside_pid = getenv("PID_OUTSIDE_CONTAINER");
+ if (outside_pid)
+ {
+ mypid = atoi (outside_pid);
+ inside_container = 1;
+ }
+ }
+
+ gdb_script_name = (char *) xmalloc (strlen (argv[0]) + strlen (".gdb") + 1);
+ sprintf (gdb_script_name, "%s.gdb", argv[0]);
+ gdb_script = xfopen (gdb_script_name, "w");
+
+ fprintf (stderr, "Waiting for debugger, test process is pid %d\n", mypid);
+ fprintf (stderr, "gdb -x %s\n", gdb_script_name);
+ if (inside_container)
+ fprintf (gdb_script, "set sysroot %s/testroot.root\n", support_objdir_root);
+ fprintf (gdb_script, "file\n");
+ fprintf (gdb_script, "file %s\n", argv[0]);
+ fprintf (gdb_script, "symbol-file %s\n", argv[0]);
+ fprintf (gdb_script, "exec-file %s\n", argv[0]);
+ fprintf (gdb_script, "attach %ld\n", (long int) mypid);
+ fprintf (gdb_script, "set wait_for_debugger = 0\n");
+ fclose (gdb_script);
+ }
+
+ /* Wait for the debugger to set wait_for_debugger to zero. */
+ while (wait_for_debugger)
+ usleep (1000);
+
if (config->test_function != NULL)
return config->test_function ();
else if (config->test_function_argv != NULL)
@@ -201,6 +276,11 @@ support_test_main (int argc, char **argv, const struct test_config *config)
unsigned int timeoutfactor = 1;
pid_t termpid;
+ /* If we're debugging the test, we need to disable timeouts and use
+ the initial pid (esp if we're running inside a container). */
+ if (getenv("WAIT_FOR_DEBUGGER") != NULL)
+ direct = 1;
+
if (!config->no_mallopt)
{
/* Make uses of freed and uninitialized memory known. Do not
diff --git a/support/support_test_verify_impl.c b/support/support_test_verify_impl.c
index 5ff5555a6a..4a64e24668 100644
--- a/support/support_test_verify_impl.c
+++ b/support/support_test_verify_impl.c
@@ -1,5 +1,5 @@
/* Implementation of the TEST_VERIFY and TEST_VERIFY_EXIT macros.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/check.h>
diff --git a/support/support_write_file_string.c b/support/support_write_file_string.c
index 7505679401..e586ee22ac 100644
--- a/support/support_write_file_string.c
+++ b/support/support_write_file_string.c
@@ -1,5 +1,5 @@
/* Write a string to a file.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fcntl.h>
#include <string.h>
diff --git a/support/temp_file-internal.h b/support/temp_file-internal.h
index 4cee3c0c35..a93d50a9b6 100644
--- a/support/temp_file-internal.h
+++ b/support/temp_file-internal.h
@@ -1,5 +1,5 @@
/* Internal weak declarations for temporary file handling.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef SUPPORT_TEMP_FILE_INTERNAL_H
#define SUPPORT_TEMP_FILE_INTERNAL_H
diff --git a/support/temp_file.c b/support/temp_file.c
index 0bbc7f9972..f81018db68 100644
--- a/support/temp_file.c
+++ b/support/temp_file.c
@@ -1,5 +1,5 @@
/* Temporary file handling for tests.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This is required to get an mkstemp which can create large files on
some 32-bit platforms. */
diff --git a/support/temp_file.h b/support/temp_file.h
index c7795cc577..172ebfb226 100644
--- a/support/temp_file.h
+++ b/support/temp_file.h
@@ -1,5 +1,5 @@
/* Declarations for temporary file handling.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef SUPPORT_TEMP_FILE_H
#define SUPPORT_TEMP_FILE_H
diff --git a/support/test-container.c b/support/test-container.c
new file mode 100644
index 0000000000..5d08979df3
--- /dev/null
+++ b/support/test-container.c
@@ -0,0 +1,1100 @@
+/* Run a test case in an isolated namespace.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#define _FILE_OFFSET_BITS 64
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sched.h>
+#include <sys/syscall.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <dirent.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <sys/fcntl.h>
+#include <sys/file.h>
+#include <sys/wait.h>
+#include <stdarg.h>
+#include <sys/sysmacros.h>
+#include <ctype.h>
+#include <utime.h>
+#include <errno.h>
+#include <error.h>
+#include <libc-pointer-arith.h>
+
+#ifdef __linux__
+#include <sys/mount.h>
+#endif
+
+#include <support/support.h>
+#include <support/xunistd.h>
+#include "check.h"
+#include "test-driver.h"
+
+#ifndef __linux__
+#define mount(s,t,fs,f,d) no_mount()
+int no_mount (void)
+{
+ FAIL_UNSUPPORTED("mount not supported; port needed");
+}
+#endif
+
+int verbose = 0;
+
+/* Running a test in a container is tricky. There are two main
+ categories of things to do:
+
+ 1. "Once" actions, like setting up the container and doing an
+ install into it.
+
+ 2. "Per-test" actions, like copying in support files and
+ configuring the container.
+
+
+ "Once" actions:
+
+ * mkdir $buildroot/testroot.pristine/
+ * install into it
+ * rsync to $buildroot/testroot.root/
+
+ "Per-test" actions:
+ * maybe rsync to $buildroot/testroot.root/
+ * copy support files and test binary
+ * chroot/unshare
+ * set up any mounts (like /proc)
+
+ Magic files:
+
+ For test $srcdir/foo/mytest.c we look for $srcdir/foo/mytest.root
+ and, if found...
+
+ * mytest.root/ is rsync'd into container
+ * mytest.root/preclean.req causes fresh rsync (with delete) before
+ test if present
+ * mytest.root/mytest.script has a list of "commands" to run:
+ syntax:
+ # comment
+ su
+ mv FILE FILE
+ cp FILE FILE
+ rm FILE
+ FILE must start with $B/, $S/, $I/, $L/, or /
+ (expands to build dir, source dir, install dir, library dir
+ (in container), or container's root)
+ details:
+ - '#': A comment.
+ - 'su': Enables running test as root in the container.
+ - 'mv': A minimal move files command.
+ - 'cp': A minimal copy files command.
+ - 'rm': A minimal remove files command.
+ * mytest.root/postclean.req causes fresh rsync (with delete) after
+ test if present
+
+ Note that $srcdir/foo/mytest.script may be used instead of a
+ $srcdir/foo/mytest.root/mytest.script in the sysroot template, if
+ there is no other reason for a sysroot.
+
+ Design goals:
+
+ * independent of other packages which may not be installed (like
+ rsync or Docker, or even "cp")
+
+ * Simple, easy to review code (i.e. prefer simple naive code over
+ complex efficient code)
+
+ * The current implementation ist parallel-make-safe, but only in
+ that it uses a lock to prevent parallel access to the testroot. */
+
+
+/* Utility Functions */
+
+/* Like xunlink, but it's OK if the file already doesn't exist. */
+void
+maybe_xunlink (const char *path)
+{
+ int rv = unlink (path);
+ if (rv < 0 && errno != ENOENT)
+ FAIL_EXIT1 ("unlink (\"%s\"): %m", path);
+}
+
+/* Like xmkdir, but it's OK if the directory already exists. */
+void
+maybe_xmkdir (const char *path, mode_t mode)
+{
+ struct stat st;
+
+ if (stat (path, &st) == 0
+ && S_ISDIR (st.st_mode))
+ return;
+ xmkdir (path, mode);
+}
+
+/* Temporarily concatenate multiple strings into one. Allows up to 10
+ temporary results; use strdup () if you need them to be
+ permanent. */
+static char *
+concat (const char *str, ...)
+{
+ /* Assume initialized to NULL/zero. */
+ static char *bufs[10];
+ static size_t buflens[10];
+ static int bufn = 0;
+ int n;
+ size_t len;
+ va_list ap, ap2;
+ char *cp;
+ char *next;
+
+ va_start (ap, str);
+ va_copy (ap2, ap);
+
+ n = bufn;
+ bufn = (bufn + 1) % 10;
+ len = strlen (str);
+
+ while ((next = va_arg (ap, char *)) != NULL)
+ len = len + strlen (next);
+
+ va_end (ap);
+
+ if (bufs[n] == NULL)
+ {
+ bufs[n] = xmalloc (len + 1); /* NUL */
+ buflens[n] = len + 1;
+ }
+ else if (buflens[n] < len + 1)
+ {
+ bufs[n] = xrealloc (bufs[n], len + 1); /* NUL */
+ buflens[n] = len + 1;
+ }
+
+ strcpy (bufs[n], str);
+ cp = strchr (bufs[n], '\0');
+ while ((next = va_arg (ap2, char *)) != NULL)
+ {
+ strcpy (cp, next);
+ cp = strchr (cp, '\0');
+ }
+ *cp = 0;
+ va_end (ap2);
+
+ return bufs[n];
+}
+
+/* Try to mount SRC onto DEST. */
+static void
+trymount (const char *src, const char *dest)
+{
+ if (mount (src, dest, "", MS_BIND, NULL) < 0)
+ FAIL_EXIT1 ("can't mount %s onto %s\n", src, dest);
+}
+
+/* Special case of above for devices like /dev/zero where we have to
+ mount a device over a device, not a directory over a directory. */
+static void
+devmount (const char *new_root_path, const char *which)
+{
+ int fd;
+ fd = open (concat (new_root_path, "/dev/", which, NULL),
+ O_CREAT | O_TRUNC | O_RDWR, 0777);
+ xclose (fd);
+
+ trymount (concat ("/dev/", which, NULL),
+ concat (new_root_path, "/dev/", which, NULL));
+}
+
+/* Returns true if the string "looks like" an environement variable
+ being set. */
+static int
+is_env_setting (const char *a)
+{
+ int count_name = 0;
+
+ while (*a)
+ {
+ if (isalnum (*a) || *a == '_')
+ ++count_name;
+ else if (*a == '=' && count_name > 0)
+ return 1;
+ else
+ return 0;
+ ++a;
+ }
+ return 0;
+}
+
+/* Break the_line into words and store in the_words. Max nwords,
+ returns actual count. */
+static int
+tokenize (char *the_line, char **the_words, int nwords)
+{
+ int rv = 0;
+
+ while (nwords > 0)
+ {
+ /* Skip leading whitespace, if any. */
+ while (*the_line && isspace (*the_line))
+ ++the_line;
+
+ /* End of line? */
+ if (*the_line == 0)
+ return rv;
+
+ /* THE_LINE points to a non-whitespace character, so we have a
+ word. */
+ *the_words = the_line;
+ ++the_words;
+ nwords--;
+ ++rv;
+
+ /* Skip leading whitespace, if any. */
+ while (*the_line && ! isspace (*the_line))
+ ++the_line;
+
+ /* We now point at the trailing NUL *or* some whitespace. */
+ if (*the_line == 0)
+ return rv;
+
+ /* It was whitespace, skip and keep tokenizing. */
+ *the_line++ = 0;
+ }
+
+ /* We get here if we filled the words buffer. */
+ return rv;
+}
+
+
+/* Mini-RSYNC implementation. Optimize later. */
+
+/* A few routines for an "rsync buffer" which stores the paths we're
+ working on. We continuously grow and shrink the paths in each
+ buffer so there's lot of re-use. */
+
+/* We rely on "initialized to zero" to set these up. */
+typedef struct
+{
+ char *buf;
+ size_t len;
+ size_t size;
+} path_buf;
+
+static path_buf spath, dpath;
+
+static void
+r_setup (char *path, path_buf * pb)
+{
+ size_t len = strlen (path);
+ if (pb->buf == NULL || pb->size < len + 1)
+ {
+ /* Round up. This is an arbitrary number, just to keep from
+ reallocing too often. */
+ size_t sz = ALIGN_UP (len + 1, 512);
+ if (pb->buf == NULL)
+ pb->buf = (char *) xmalloc (sz);
+ else
+ pb->buf = (char *) xrealloc (pb->buf, sz);
+ if (pb->buf == NULL)
+ FAIL_EXIT1 ("Out of memory while rsyncing\n");
+
+ pb->size = sz;
+ }
+ strcpy (pb->buf, path);
+ pb->len = len;
+}
+
+static void
+r_append (const char *path, path_buf * pb)
+{
+ size_t len = strlen (path) + pb->len;
+ if (pb->size < len + 1)
+ {
+ /* Round up */
+ size_t sz = ALIGN_UP (len + 1, 512);
+ pb->buf = (char *) xrealloc (pb->buf, sz);
+ if (pb->buf == NULL)
+ FAIL_EXIT1 ("Out of memory while rsyncing\n");
+
+ pb->size = sz;
+ }
+ strcpy (pb->buf + pb->len, path);
+ pb->len = len;
+}
+
+static int
+file_exists (char *path)
+{
+ struct stat st;
+ if (lstat (path, &st) == 0)
+ return 1;
+ return 0;
+}
+
+static void
+recursive_remove (char *path)
+{
+ pid_t child;
+ int status;
+
+ child = fork ();
+
+ switch (child) {
+ case -1:
+ perror("fork");
+ FAIL_EXIT1 ("Unable to fork");
+ case 0:
+ /* Child. */
+ execlp ("rm", "rm", "-rf", path, NULL);
+ FAIL_EXIT1 ("exec rm: %m");
+ default:
+ /* Parent. */
+ waitpid (child, &status, 0);
+ /* "rm" would have already printed a suitable error message. */
+ if (! WIFEXITED (status)
+ || WEXITSTATUS (status) != 0)
+ exit (1);
+
+ break;
+ }
+}
+
+/* Used for both rsync and the mytest.script "cp" command. */
+static void
+copy_one_file (const char *sname, const char *dname)
+{
+ int sfd, dfd;
+ struct stat st;
+ struct utimbuf times;
+
+ sfd = open (sname, O_RDONLY);
+ if (sfd < 0)
+ FAIL_EXIT1 ("unable to open %s for reading\n", sname);
+
+ if (fstat (sfd, &st) < 0)
+ FAIL_EXIT1 ("unable to fstat %s\n", sname);
+
+ dfd = open (dname, O_WRONLY | O_TRUNC | O_CREAT, 0600);
+ if (dfd < 0)
+ FAIL_EXIT1 ("unable to open %s for writing\n", dname);
+
+ xcopy_file_range (sfd, 0, dfd, 0, st.st_size, 0);
+
+ xclose (sfd);
+ xclose (dfd);
+
+ if (chmod (dname, st.st_mode & 0777) < 0)
+ FAIL_EXIT1 ("chmod %s: %s\n", dname, strerror (errno));
+
+ times.actime = st.st_atime;
+ times.modtime = st.st_mtime;
+ if (utime (dname, &times) < 0)
+ FAIL_EXIT1 ("utime %s: %s\n", dname, strerror (errno));
+}
+
+/* We don't check *everything* about the two files to see if a copy is
+ needed, just the minimum to make sure we get the latest copy. */
+static int
+need_sync (char *ap, char *bp, struct stat *a, struct stat *b)
+{
+ if ((a->st_mode & S_IFMT) != (b->st_mode & S_IFMT))
+ return 1;
+
+ if (S_ISLNK (a->st_mode))
+ {
+ int rv;
+ char *al, *bl;
+
+ if (a->st_size != b->st_size)
+ return 1;
+
+ al = xreadlink (ap);
+ bl = xreadlink (bp);
+ rv = strcmp (al, bl);
+ free (al);
+ free (bl);
+ if (rv == 0)
+ return 0; /* links are same */
+ return 1; /* links differ */
+ }
+
+ if (verbose)
+ {
+ if (a->st_size != b->st_size)
+ printf ("SIZE\n");
+ if ((a->st_mode & 0777) != (b->st_mode & 0777))
+ printf ("MODE\n");
+ if (a->st_mtime != b->st_mtime)
+ printf ("TIME\n");
+ }
+
+ if (a->st_size == b->st_size
+ && ((a->st_mode & 0777) == (b->st_mode & 0777))
+ && a->st_mtime == b->st_mtime)
+ return 0;
+
+ return 1;
+}
+
+static void
+rsync_1 (path_buf * src, path_buf * dest, int and_delete)
+{
+ DIR *dir;
+ struct dirent *de;
+ struct stat s, d;
+
+ r_append ("/", src);
+ r_append ("/", dest);
+
+ if (verbose)
+ printf ("sync %s to %s %s\n", src->buf, dest->buf,
+ and_delete ? "and delete" : "");
+
+ size_t staillen = src->len;
+
+ size_t dtaillen = dest->len;
+
+ dir = opendir (src->buf);
+
+ while ((de = readdir (dir)) != NULL)
+ {
+ if (strcmp (de->d_name, ".") == 0
+ || strcmp (de->d_name, "..") == 0)
+ continue;
+
+ src->len = staillen;
+ r_append (de->d_name, src);
+ dest->len = dtaillen;
+ r_append (de->d_name, dest);
+
+ s.st_mode = ~0;
+ d.st_mode = ~0;
+
+ if (lstat (src->buf, &s) != 0)
+ FAIL_EXIT1 ("%s obtained by readdir, but stat failed.\n", src->buf);
+
+ /* It's OK if this one fails, since we know the file might be
+ missing. */
+ lstat (dest->buf, &d);
+
+ if (! need_sync (src->buf, dest->buf, &s, &d))
+ {
+ if (S_ISDIR (s.st_mode))
+ rsync_1 (src, dest, and_delete);
+ continue;
+ }
+
+ if (d.st_mode != ~0)
+ switch (d.st_mode & S_IFMT)
+ {
+ case S_IFDIR:
+ if (!S_ISDIR (s.st_mode))
+ {
+ if (verbose)
+ printf ("-D %s\n", dest->buf);
+ recursive_remove (dest->buf);
+ }
+ break;
+
+ default:
+ if (verbose)
+ printf ("-F %s\n", dest->buf);
+ maybe_xunlink (dest->buf);
+ break;
+ }
+
+ switch (s.st_mode & S_IFMT)
+ {
+ case S_IFREG:
+ if (verbose)
+ printf ("+F %s\n", dest->buf);
+ copy_one_file (src->buf, dest->buf);
+ break;
+
+ case S_IFDIR:
+ if (verbose)
+ printf ("+D %s\n", dest->buf);
+ maybe_xmkdir (dest->buf, (s.st_mode & 0777) | 0700);
+ rsync_1 (src, dest, and_delete);
+ break;
+
+ case S_IFLNK:
+ {
+ char *lp;
+ if (verbose)
+ printf ("+L %s\n", dest->buf);
+ lp = xreadlink (src->buf);
+ xsymlink (lp, dest->buf);
+ free (lp);
+ break;
+ }
+
+ default:
+ break;
+ }
+ }
+
+ closedir (dir);
+ src->len = staillen;
+ src->buf[staillen] = 0;
+ dest->len = dtaillen;
+ dest->buf[dtaillen] = 0;
+
+ if (!and_delete)
+ return;
+
+ /* The rest of this function removes any files/directories in DEST
+ that do not exist in SRC. This is triggered as part of a
+ preclean or postsclean step. */
+
+ dir = opendir (dest->buf);
+
+ while ((de = readdir (dir)) != NULL)
+ {
+ if (strcmp (de->d_name, ".") == 0
+ || strcmp (de->d_name, "..") == 0)
+ continue;
+
+ src->len = staillen;
+ r_append (de->d_name, src);
+ dest->len = dtaillen;
+ r_append (de->d_name, dest);
+
+ s.st_mode = ~0;
+ d.st_mode = ~0;
+
+ lstat (src->buf, &s);
+
+ if (lstat (dest->buf, &d) != 0)
+ FAIL_EXIT1 ("%s obtained by readdir, but stat failed.\n", dest->buf);
+
+ if (s.st_mode == ~0)
+ {
+ /* dest exists and src doesn't, clean it. */
+ switch (d.st_mode & S_IFMT)
+ {
+ case S_IFDIR:
+ if (!S_ISDIR (s.st_mode))
+ {
+ if (verbose)
+ printf ("-D %s\n", dest->buf);
+ recursive_remove (dest->buf);
+ }
+ break;
+
+ default:
+ if (verbose)
+ printf ("-F %s\n", dest->buf);
+ maybe_xunlink (dest->buf);
+ break;
+ }
+ }
+ }
+
+ closedir (dir);
+}
+
+static void
+rsync (char *src, char *dest, int and_delete)
+{
+ r_setup (src, &spath);
+ r_setup (dest, &dpath);
+
+ rsync_1 (&spath, &dpath, and_delete);
+}
+
+
+
+/* See if we can detect what the user needs to do to get unshare
+ support working for us. */
+void
+check_for_unshare_hints (void)
+{
+ FILE *f;
+ int i;
+
+ /* Default Debian Linux disables user namespaces, but allows a way
+ to enable them. */
+ f = fopen ("/proc/sys/kernel/unprivileged_userns_clone", "r");
+ if (f != NULL)
+ {
+ i = 99; /* Sentinel. */
+ fscanf (f, "%d", &i);
+ if (i == 0)
+ {
+ printf ("To enable test-container, please run this as root:\n");
+ printf (" echo 1 > /proc/sys/kernel/unprivileged_userns_clone\n");
+ }
+ fclose (f);
+ return;
+ }
+
+ /* ALT Linux has an alternate way of doing the same. */
+ f = fopen ("/proc/sys/kernel/userns_restrict", "r");
+ if (f != NULL)
+ {
+ i = 99; /* Sentinel. */
+ fscanf (f, "%d", &i);
+ if (i == 1)
+ {
+ printf ("To enable test-container, please run this as root:\n");
+ printf (" echo 0 > /proc/sys/kernel/userns_restrict\n");
+ }
+ fclose (f);
+ return;
+ }
+}
+
+int
+main (int argc, char **argv)
+{
+ pid_t child;
+ char *pristine_root_path;
+ char *new_root_path;
+ char *new_cwd_path;
+ char *new_objdir_path;
+ char *new_srcdir_path;
+ char **new_child_proc;
+ char *command_root;
+ char *command_base;
+ char *command_basename;
+ char *so_base;
+ int do_postclean = 0;
+
+ int pipes[2];
+ char pid_buf[20];
+
+ uid_t original_uid;
+ gid_t original_gid;
+ /* If set, the test runs as root instead of the user running the testsuite. */
+ int be_su = 0;
+ int UMAP;
+ int GMAP;
+ /* Used for "%lld %lld 1" so need not be large. */
+ char tmp[100];
+ struct stat st;
+ int lock_fd;
+
+ setbuf (stdout, NULL);
+
+ /* The command line we're expecting looks like this:
+ env <set some vars> ld.so <library path> test-binary
+
+ We need to peel off any "env" or "ld.so" portion of the command
+ line, and keep track of which env vars we should preserve and
+ which we drop. */
+
+ if (argc < 2)
+ {
+ fprintf (stderr, "Usage: containerize <program to run> <args...>\n");
+ exit (1);
+ }
+
+ if (strcmp (argv[1], "-v") == 0)
+ {
+ verbose = 1;
+ ++argv;
+ --argc;
+ }
+
+ if (strcmp (argv[1], "env") == 0)
+ {
+ ++argv;
+ --argc;
+ while (is_env_setting (argv[1]))
+ {
+ /* If there are variables we do NOT want to propogate, this
+ is where the test for them goes. */
+ {
+ /* Need to keep these. Note that putenv stores a
+ pointer to our argv. */
+ putenv (argv[1]);
+ }
+ ++argv;
+ --argc;
+ }
+ }
+
+ if (strcmp (argv[1], support_objdir_elf_ldso) == 0)
+ {
+ ++argv;
+ --argc;
+ while (argv[1][0] == '-')
+ {
+ if (strcmp (argv[1], "--library-path") == 0)
+ {
+ ++argv;
+ --argc;
+ }
+ ++argv;
+ --argc;
+ }
+ }
+
+ pristine_root_path = strdup (concat (support_objdir_root,
+ "/testroot.pristine", NULL));
+ new_root_path = strdup (concat (support_objdir_root,
+ "/testroot.root", NULL));
+ new_cwd_path = get_current_dir_name ();
+ new_child_proc = argv + 1;
+
+ lock_fd = open (concat (pristine_root_path, "/lock.fd", NULL),
+ O_CREAT | O_TRUNC | O_RDWR, 0666);
+ if (lock_fd < 0)
+ FAIL_EXIT1 ("Cannot create testroot lock.\n");
+
+ while (flock (lock_fd, LOCK_EX) != 0)
+ {
+ if (errno != EINTR)
+ FAIL_EXIT1 ("Cannot lock testroot.\n");
+ }
+
+ xmkdirp (new_root_path, 0755);
+
+ /* We look for extra setup info in a subdir in the same spot as the
+ test, with the same name but a ".root" extension. This is that
+ directory. We try to look in the source tree if the path we're
+ given refers to the build tree, but we rely on the path to be
+ absolute. This is what the glibc makefiles do. */
+ command_root = concat (argv[1], ".root", NULL);
+ if (strncmp (command_root, support_objdir_root,
+ strlen (support_objdir_root)) == 0
+ && command_root[strlen (support_objdir_root)] == '/')
+ command_root = concat (support_srcdir_root,
+ argv[1] + strlen (support_objdir_root),
+ ".root", NULL);
+ command_root = strdup (command_root);
+
+ /* This cuts off the ".root" we appended above. */
+ command_base = strdup (command_root);
+ command_base[strlen (command_base) - 5] = 0;
+
+ /* This is the basename of the test we're running. */
+ command_basename = strrchr (command_base, '/');
+ if (command_basename == NULL)
+ command_basename = command_base;
+ else
+ ++command_basename;
+
+ /* Shared object base directory. */
+ so_base = strdup (argv[1]);
+ if (strrchr (so_base, '/') != NULL)
+ strrchr (so_base, '/')[1] = 0;
+
+ if (file_exists (concat (command_root, "/postclean.req", NULL)))
+ do_postclean = 1;
+
+ rsync (pristine_root_path, new_root_path,
+ file_exists (concat (command_root, "/preclean.req", NULL)));
+
+ if (stat (command_root, &st) >= 0
+ && S_ISDIR (st.st_mode))
+ rsync (command_root, new_root_path, 0);
+
+ new_objdir_path = strdup (concat (new_root_path,
+ support_objdir_root, NULL));
+ new_srcdir_path = strdup (concat (new_root_path,
+ support_srcdir_root, NULL));
+
+ /* new_cwd_path starts with '/' so no "/" needed between the two. */
+ xmkdirp (concat (new_root_path, new_cwd_path, NULL), 0755);
+ xmkdirp (new_srcdir_path, 0755);
+ xmkdirp (new_objdir_path, 0755);
+
+ original_uid = getuid ();
+ original_gid = getgid ();
+
+ /* Handle the cp/mv/rm "script" here. */
+ {
+ char *the_line = NULL;
+ size_t line_len = 0;
+ char *fname = concat (command_root, "/",
+ command_basename, ".script", NULL);
+ char *the_words[3];
+ FILE *f = fopen (fname, "r");
+
+ if (verbose && f)
+ fprintf (stderr, "running %s\n", fname);
+
+ if (f == NULL)
+ {
+ /* Try foo.script instead of foo.root/foo.script, as a shortcut. */
+ fname = concat (command_base, ".script", NULL);
+ f = fopen (fname, "r");
+ if (verbose && f)
+ fprintf (stderr, "running %s\n", fname);
+ }
+
+ /* Note that we do NOT look for a Makefile-generated foo.script in
+ the build directory. If that is ever needed, this is the place
+ to add it. */
+
+ /* This is where we "interpret" the mini-script which is <test>.script. */
+ if (f != NULL)
+ {
+ while (getline (&the_line, &line_len, f) > 0)
+ {
+ int nt = tokenize (the_line, the_words, 3);
+ int i;
+
+ for (i = 1; i < nt; ++i)
+ {
+ if (memcmp (the_words[i], "$B/", 3) == 0)
+ the_words[i] = concat (support_objdir_root,
+ the_words[i] + 2, NULL);
+ else if (memcmp (the_words[i], "$S/", 3) == 0)
+ the_words[i] = concat (support_srcdir_root,
+ the_words[i] + 2, NULL);
+ else if (memcmp (the_words[i], "$I/", 3) == 0)
+ the_words[i] = concat (new_root_path,
+ support_install_prefix,
+ the_words[i] + 2, NULL);
+ else if (memcmp (the_words[i], "$L/", 3) == 0)
+ the_words[i] = concat (new_root_path,
+ support_libdir_prefix,
+ the_words[i] + 2, NULL);
+ else if (the_words[i][0] == '/')
+ the_words[i] = concat (new_root_path,
+ the_words[i], NULL);
+ }
+
+ if (nt == 3 && the_words[2][strlen (the_words[2]) - 1] == '/')
+ {
+ char *r = strrchr (the_words[1], '/');
+ if (r)
+ the_words[2] = concat (the_words[2], r + 1, NULL);
+ else
+ the_words[2] = concat (the_words[2], the_words[1], NULL);
+ }
+
+ if (nt == 2 && strcmp (the_words[0], "so") == 0)
+ {
+ the_words[2] = concat (new_root_path, support_libdir_prefix,
+ "/", the_words[1], NULL);
+ the_words[1] = concat (so_base, the_words[1], NULL);
+ copy_one_file (the_words[1], the_words[2]);
+ }
+ else if (nt == 3 && strcmp (the_words[0], "cp") == 0)
+ {
+ copy_one_file (the_words[1], the_words[2]);
+ }
+ else if (nt == 3 && strcmp (the_words[0], "mv") == 0)
+ {
+ if (rename (the_words[1], the_words[2]) < 0)
+ FAIL_EXIT1 ("rename %s -> %s: %s", the_words[1],
+ the_words[2], strerror (errno));
+ }
+ else if (nt == 3 && strcmp (the_words[0], "chmod") == 0)
+ {
+ long int m;
+ m = strtol (the_words[1], NULL, 0);
+ if (chmod (the_words[2], m) < 0)
+ FAIL_EXIT1 ("chmod %s: %s\n",
+ the_words[2], strerror (errno));
+
+ }
+ else if (nt == 2 && strcmp (the_words[0], "rm") == 0)
+ {
+ maybe_xunlink (the_words[1]);
+ }
+ else if (nt == 1 && strcmp (the_words[0], "su") == 0)
+ {
+ be_su = 1;
+ }
+ else if (nt > 0 && the_words[0][0] != '#')
+ {
+ printf ("\033[31minvalid [%s]\033[0m\n", the_words[0]);
+ }
+ }
+ fclose (f);
+ }
+ }
+
+ if (do_postclean)
+ {
+ pid_t pc_pid = fork ();
+
+ if (pc_pid < 0)
+ {
+ FAIL_EXIT1 ("Can't fork for post-clean");
+ }
+ else if (pc_pid > 0)
+ {
+ /* Parent. */
+ int status;
+ waitpid (pc_pid, &status, 0);
+
+ /* Child has exited, we can post-clean the test root. */
+ printf("running post-clean rsync\n");
+ rsync (pristine_root_path, new_root_path, 1);
+
+ if (WIFEXITED (status))
+ exit (WEXITSTATUS (status));
+
+ if (WIFSIGNALED (status))
+ {
+ printf ("%%SIGNALLED%%\n");
+ exit (77);
+ }
+
+ printf ("%%EXITERROR%%\n");
+ exit (78);
+ }
+
+ /* Child continues. */
+ }
+
+ /* This is the last point in the program where we're still in the
+ "normal" namespace. */
+
+#ifdef CLONE_NEWNS
+ /* The unshare here gives us our own spaces and capabilities. */
+ if (unshare (CLONE_NEWUSER | CLONE_NEWPID | CLONE_NEWNS) < 0)
+ {
+ /* Older kernels may not support all the options, or security
+ policy may block this call. */
+ if (errno == EINVAL || errno == EPERM)
+ {
+ int saved_errno = errno;
+ if (errno == EPERM)
+ check_for_unshare_hints ();
+ FAIL_UNSUPPORTED ("unable to unshare user/fs: %s", strerror (saved_errno));
+ }
+ else
+ FAIL_EXIT1 ("unable to unshare user/fs: %s", strerror (errno));
+ }
+#else
+ /* Some targets may not support unshare at all. */
+ FAIL_UNSUPPORTED ("unshare support missing");
+#endif
+
+ /* Some systems, by default, all mounts leak out of the namespace. */
+ if (mount ("none", "/", NULL, MS_REC | MS_PRIVATE, NULL) != 0)
+ FAIL_EXIT1 ("could not create a private mount namespace\n");
+
+ trymount (support_srcdir_root, new_srcdir_path);
+ trymount (support_objdir_root, new_objdir_path);
+
+ xmkdirp (concat (new_root_path, "/dev", NULL), 0755);
+ devmount (new_root_path, "null");
+ devmount (new_root_path, "zero");
+ devmount (new_root_path, "urandom");
+
+ /* We're done with the "old" root, switch to the new one. */
+ if (chroot (new_root_path) < 0)
+ FAIL_EXIT1 ("Can't chroot to %s - ", new_root_path);
+
+ if (chdir (new_cwd_path) < 0)
+ FAIL_EXIT1 ("Can't cd to new %s - ", new_cwd_path);
+
+ /* This is to pass the "outside" PID to the child, which will be PID
+ 1. */
+ if (pipe2 (pipes, O_CLOEXEC) < 0)
+ FAIL_EXIT1 ("Can't create pid pipe");
+
+ /* To complete the containerization, we need to fork () at least
+ once. We can't exec, nor can we somehow link the new child to
+ our parent. So we run the child and propogate it's exit status
+ up. */
+ child = fork ();
+ if (child < 0)
+ FAIL_EXIT1 ("Unable to fork");
+ else if (child > 0)
+ {
+ /* Parent. */
+ int status;
+
+ /* Send the child's "outside" pid to it. */
+ write (pipes[1], &child, sizeof(child));
+ close (pipes[0]);
+ close (pipes[1]);
+
+ waitpid (child, &status, 0);
+
+ if (WIFEXITED (status))
+ exit (WEXITSTATUS (status));
+
+ if (WIFSIGNALED (status))
+ {
+ printf ("%%SIGNALLED%%\n");
+ exit (77);
+ }
+
+ printf ("%%EXITERROR%%\n");
+ exit (78);
+ }
+
+ /* The rest is the child process, which is now PID 1 and "in" the
+ new root. */
+
+ /* Get our "outside" pid from our parent. We use this to help with
+ debugging from outside the container. */
+ read (pipes[0], &child, sizeof(child));
+ close (pipes[0]);
+ close (pipes[1]);
+ sprintf (pid_buf, "%lu", (long unsigned)child);
+ setenv ("PID_OUTSIDE_CONTAINER", pid_buf, 0);
+
+ maybe_xmkdir ("/tmp", 0755);
+
+ /* Now that we're pid 1 (effectively "root") we can mount /proc */
+ maybe_xmkdir ("/proc", 0777);
+ if (mount ("proc", "/proc", "proc", 0, NULL) < 0)
+ FAIL_EXIT1 ("Unable to mount /proc: ");
+
+ /* We map our original UID to the same UID in the container so we
+ can own our own files normally. */
+ UMAP = open ("/proc/self/uid_map", O_WRONLY);
+ if (UMAP < 0)
+ FAIL_EXIT1 ("can't write to /proc/self/uid_map\n");
+
+ sprintf (tmp, "%lld %lld 1\n",
+ (long long) (be_su ? 0 : original_uid), (long long) original_uid);
+ write (UMAP, tmp, strlen (tmp));
+ xclose (UMAP);
+
+ /* We must disable setgroups () before we can map our groups, else we
+ get EPERM. */
+ GMAP = open ("/proc/self/setgroups", O_WRONLY);
+ if (GMAP >= 0)
+ {
+ /* We support kernels old enough to not have this. */
+ write (GMAP, "deny\n", 5);
+ xclose (GMAP);
+ }
+
+ /* We map our original GID to the same GID in the container so we
+ can own our own files normally. */
+ GMAP = open ("/proc/self/gid_map", O_WRONLY);
+ if (GMAP < 0)
+ FAIL_EXIT1 ("can't write to /proc/self/gid_map\n");
+
+ sprintf (tmp, "%lld %lld 1\n",
+ (long long) (be_su ? 0 : original_gid), (long long) original_gid);
+ write (GMAP, tmp, strlen (tmp));
+ xclose (GMAP);
+
+ /* Now run the child. */
+ execvp (new_child_proc[0], new_child_proc);
+
+ /* Or don't run the child? */
+ FAIL_EXIT1 ("Unable to exec %s\n", new_child_proc[0]);
+
+ /* Because gcc won't know error () never returns... */
+ exit (EXIT_UNSUPPORTED);
+}
diff --git a/support/test-driver.c b/support/test-driver.c
index 9798f16227..cfe76358f3 100644
--- a/support/test-driver.c
+++ b/support/test-driver.c
@@ -1,5 +1,5 @@
/* Main function for test programs.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file should be included from test cases. It will define a
main function which provides the test wrapper.
diff --git a/support/test-driver.h b/support/test-driver.h
index 549179b254..86b04a19f2 100644
--- a/support/test-driver.h
+++ b/support/test-driver.h
@@ -1,5 +1,5 @@
/* Interfaces for the test driver.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef SUPPORT_TEST_DRIVER_H
#define SUPPORT_TEST_DRIVER_H
@@ -69,6 +69,14 @@ extern const char *test_dir;
tests. */
extern unsigned int test_verbose;
+/* Output that is only emitted if at least one --verbose argument was
+ specified. */
+#define verbose_printf(...) \
+ do { \
+ if (test_verbose > 0) \
+ printf (__VA_ARGS__); \
+ } while (0);
+
int support_test_main (int argc, char **argv, const struct test_config *);
__END_DECLS
diff --git a/support/timespec-add.c b/support/timespec-add.c
new file mode 100644
index 0000000000..8efb8a6eb6
--- /dev/null
+++ b/support/timespec-add.c
@@ -0,0 +1,65 @@
+/* Add two struct timespec values.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
+ This file is part of the GNU C Library and is also part of gnulib.
+ Patches to this file should be submitted to both projects.
+
+ 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
+ <https://www.gnu.org/licenses/>. */
+
+/* Return the sum of two timespec values A and B. On overflow, return
+ an extremal value. This assumes 0 <= tv_nsec < TIMESPEC_HZ. */
+
+#include <config.h>
+#include "timespec.h"
+
+#include "intprops.h"
+
+struct timespec
+timespec_add (struct timespec a, struct timespec b)
+{
+ time_t rs = a.tv_sec;
+ time_t bs = b.tv_sec;
+ int ns = a.tv_nsec + b.tv_nsec;
+ int nsd = ns - TIMESPEC_HZ;
+ int rns = ns;
+
+ if (0 <= nsd)
+ {
+ rns = nsd;
+ time_t bs1;
+ if (!INT_ADD_WRAPV (bs, 1, &bs1))
+ bs = bs1;
+ else if (rs < 0)
+ rs++;
+ else
+ goto high_overflow;
+ }
+
+ if (INT_ADD_WRAPV (rs, bs, &rs))
+ {
+ if (bs < 0)
+ {
+ rs = TYPE_MINIMUM (time_t);
+ rns = 0;
+ }
+ else
+ {
+ high_overflow:
+ rs = TYPE_MAXIMUM (time_t);
+ rns = TIMESPEC_HZ - 1;
+ }
+ }
+
+ return make_timespec (rs, rns);
+}
diff --git a/support/timespec-sub.c b/support/timespec-sub.c
new file mode 100644
index 0000000000..cf16ed7832
--- /dev/null
+++ b/support/timespec-sub.c
@@ -0,0 +1,65 @@
+/* Subtract two struct timespec values.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
+ This file is part of the GNU C Library and is also part of gnulib.
+ Patches to this file should be submitted to both projects.
+
+ 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
+ <https://www.gnu.org/licenses/>. */
+
+/* Return the difference between two timespec values A and B. On
+ overflow, return an extremal value. This assumes 0 <= tv_nsec <
+ TIMESPEC_HZ. */
+
+#include <config.h>
+#include "timespec.h"
+
+#include "intprops.h"
+
+struct timespec
+timespec_sub (struct timespec a, struct timespec b)
+{
+ time_t rs = a.tv_sec;
+ time_t bs = b.tv_sec;
+ int ns = a.tv_nsec - b.tv_nsec;
+ int rns = ns;
+
+ if (ns < 0)
+ {
+ rns = ns + TIMESPEC_HZ;
+ time_t bs1;
+ if (!INT_ADD_WRAPV (bs, 1, &bs1))
+ bs = bs1;
+ else if (- TYPE_SIGNED (time_t) < rs)
+ rs--;
+ else
+ goto low_overflow;
+ }
+
+ if (INT_SUBTRACT_WRAPV (rs, bs, &rs))
+ {
+ if (0 < bs)
+ {
+ low_overflow:
+ rs = TYPE_MINIMUM (time_t);
+ rns = 0;
+ }
+ else
+ {
+ rs = TYPE_MAXIMUM (time_t);
+ rns = TIMESPEC_HZ - 1;
+ }
+ }
+
+ return make_timespec (rs, rns);
+}
diff --git a/support/timespec.c b/support/timespec.c
new file mode 100644
index 0000000000..268ee44c33
--- /dev/null
+++ b/support/timespec.c
@@ -0,0 +1,59 @@
+/* Support code for timespec checks.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <support/timespec.h>
+#include <stdio.h>
+#include <stdint.h>
+
+void
+test_timespec_before_impl (const char *file, int line,
+ const struct timespec left,
+ const struct timespec right)
+{
+ if (left.tv_sec > right.tv_sec
+ || (left.tv_sec == right.tv_sec
+ && left.tv_nsec > right.tv_nsec)) {
+ support_record_failure ();
+ const struct timespec diff = timespec_sub (left, right);
+ printf ("%s:%d: %jd.%09jds not before %jd.%09jds "
+ "(difference %jd.%09jds)\n",
+ file, line,
+ (intmax_t) left.tv_sec, (intmax_t) left.tv_nsec,
+ (intmax_t) right.tv_sec, (intmax_t) right.tv_nsec,
+ (intmax_t) diff.tv_sec, (intmax_t) diff.tv_nsec);
+ }
+}
+
+void
+test_timespec_equal_or_after_impl (const char *file, int line,
+ const struct timespec left,
+ const struct timespec right)
+{
+ if (left.tv_sec < right.tv_sec
+ || (left.tv_sec == right.tv_sec
+ && left.tv_nsec < right.tv_nsec)) {
+ support_record_failure ();
+ const struct timespec diff = timespec_sub (right, left);
+ printf ("%s:%d: %jd.%09jds not after %jd.%09jds "
+ "(difference %jd.%09jds)\n",
+ file, line,
+ (intmax_t) left.tv_sec, (intmax_t) left.tv_nsec,
+ (intmax_t) right.tv_sec, (intmax_t) right.tv_nsec,
+ (intmax_t) diff.tv_sec, (intmax_t) diff.tv_nsec);
+ }
+}
diff --git a/support/timespec.h b/support/timespec.h
new file mode 100644
index 0000000000..be427ac4bb
--- /dev/null
+++ b/support/timespec.h
@@ -0,0 +1,79 @@
+/* Useful functions for tests that use struct timespec.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef SUPPORT_TIMESPEC_H
+#define SUPPORT_TIMESPEC_H
+
+#include <stdio.h>
+#include <time.h>
+#include <support/check.h>
+#include <support/xtime.h>
+
+struct timespec timespec_add (struct timespec, struct timespec)
+ __attribute__((const));
+struct timespec timespec_sub (struct timespec, struct timespec)
+ __attribute__((const));
+
+static inline struct timespec
+make_timespec (time_t s, long int ns)
+{
+ struct timespec r;
+ r.tv_sec = s;
+ r.tv_nsec = ns;
+ return r;
+}
+
+enum { TIMESPEC_HZ = 1000000000 };
+
+void test_timespec_before_impl (const char *file, int line,
+ const struct timespec left,
+ const struct timespec right);
+
+void test_timespec_equal_or_after_impl (const char *file, int line,
+ const struct timespec left,
+ const struct timespec right);
+
+/* Check that the timespec on the left represents a time before the
+ time on the right. */
+#define TEST_TIMESPEC_BEFORE(left, right) \
+ test_timespec_before_impl (__FILE__, __LINE__, (left), (right))
+
+#define TEST_TIMESPEC_BEFORE_NOW(left, clockid) \
+ ({ \
+ struct timespec now; \
+ const int saved_errno = errno; \
+ xclock_gettime ((clockid), &now); \
+ TEST_TIMESPEC_BEFORE ((left), now); \
+ errno = saved_errno; \
+ })
+
+/* Check that the timespec on the left represents a time equal to or
+ after the time on the right. */
+#define TEST_TIMESPEC_EQUAL_OR_AFTER(left, right) \
+ test_timespec_equal_or_after_impl (__FILE__, __LINE__, left, right)
+
+#define TEST_TIMESPEC_NOW_OR_AFTER(clockid, right) \
+ ({ \
+ struct timespec now; \
+ const int saved_errno = errno; \
+ xclock_gettime ((clockid), &now); \
+ TEST_TIMESPEC_EQUAL_OR_AFTER (now, (right)); \
+ errno = saved_errno; \
+ })
+
+#endif /* SUPPORT_TIMESPEC_H */
diff --git a/support/true-container.c b/support/true-container.c
new file mode 100644
index 0000000000..b946cbdd7a
--- /dev/null
+++ b/support/true-container.c
@@ -0,0 +1,26 @@
+/* Minimal /bin/true for in-container use.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+/* Implements the in-container /bin/true, which always returns true
+ (0). */
+
+int
+main (void)
+{
+ return 0;
+}
diff --git a/support/tst-support-namespace.c b/support/tst-support-namespace.c
index e20423c4a3..b8f0061aa6 100644
--- a/support/tst-support-namespace.c
+++ b/support/tst-support-namespace.c
@@ -1,5 +1,5 @@
/* Test entering namespaces.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <netdb.h>
diff --git a/support/tst-support_blob_repeat.c b/support/tst-support_blob_repeat.c
new file mode 100644
index 0000000000..6ee942436f
--- /dev/null
+++ b/support/tst-support_blob_repeat.c
@@ -0,0 +1,85 @@
+/* Tests for <support/blob_repeat.h>
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdio.h>
+#include <support/blob_repeat.h>
+#include <support/check.h>
+
+static int
+do_test (void)
+{
+ struct support_blob_repeat repeat
+ = support_blob_repeat_allocate ("5", 1, 5);
+ TEST_COMPARE_BLOB (repeat.start, repeat.size, "55555", 5);
+ support_blob_repeat_free (&repeat);
+
+ repeat = support_blob_repeat_allocate ("ABC", 3, 3);
+ TEST_COMPARE_BLOB (repeat.start, repeat.size, "ABCABCABC", 9);
+ support_blob_repeat_free (&repeat);
+
+ repeat = support_blob_repeat_allocate ("abc", 4, 3);
+ TEST_COMPARE_BLOB (repeat.start, repeat.size, "abc\0abc\0abc", 12);
+ support_blob_repeat_free (&repeat);
+
+ size_t gigabyte = 1U << 30;
+ repeat = support_blob_repeat_allocate ("X", 1, gigabyte + 1);
+ if (repeat.start == NULL)
+ puts ("warning: not enough memory for 1 GiB mapping");
+ else
+ {
+ TEST_COMPARE (repeat.size, gigabyte + 1);
+ {
+ unsigned char *p = repeat.start;
+ for (size_t i = 0; i < gigabyte + 1; ++i)
+ if (p[i] != 'X')
+ FAIL_EXIT1 ("invalid byte 0x%02x at %zu", p[i], i);
+
+ /* Check that there is no sharing across the mapping. */
+ p[0] = 'Y';
+ p[1U << 24] = 'Z';
+ for (size_t i = 0; i < gigabyte + 1; ++i)
+ if (i == 0)
+ TEST_COMPARE (p[i], 'Y');
+ else if (i == 1U << 24)
+ TEST_COMPARE (p[i], 'Z');
+ else if (p[i] != 'X')
+ FAIL_EXIT1 ("invalid byte 0x%02x at %zu", p[i], i);
+ }
+ }
+ support_blob_repeat_free (&repeat);
+
+ repeat = support_blob_repeat_allocate ("012345678", 9, 10 * 1000 * 1000);
+ if (repeat.start == NULL)
+ puts ("warning: not enough memory for large mapping");
+ else
+ {
+ unsigned char *p = repeat.start;
+ for (int i = 0; i < 10 * 1000 * 1000; ++i)
+ for (int j = 0; j <= 8; ++j)
+ if (p[i * 9 + j] != '0' + j)
+ {
+ printf ("error: element %d index %d\n", i, j);
+ TEST_COMPARE (p[i * 9 + j], '0' + j);
+ }
+ }
+ support_blob_repeat_free (&repeat);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/support/tst-support_capture_subprocess.c b/support/tst-support_capture_subprocess.c
index a685256091..4eeeb8b5e0 100644
--- a/support/tst-support_capture_subprocess.c
+++ b/support/tst-support_capture_subprocess.c
@@ -1,5 +1,5 @@
/* Test capturing output from a subprocess.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdbool.h>
#include <stdio.h>
@@ -23,8 +23,20 @@
#include <support/capture_subprocess.h>
#include <support/check.h>
#include <support/support.h>
+#include <support/temp_file.h>
#include <sys/wait.h>
#include <unistd.h>
+#include <paths.h>
+#include <getopt.h>
+#include <limits.h>
+#include <errno.h>
+#include <array_length.h>
+
+/* Nonzero if the program gets called via 'exec'. */
+static int restart;
+
+/* Hold the four initial argument used to respawn the process. */
+static char *initial_argv[5];
/* Write one byte at *P to FD and advance *P. Do nothing if *P is
'\0'. */
@@ -42,6 +54,30 @@ transfer (const unsigned char **p, int fd)
enum write_mode { out_first, err_first, interleave,
write_mode_last = interleave };
+static const char *
+write_mode_to_str (enum write_mode mode)
+{
+ switch (mode)
+ {
+ case out_first: return "out_first";
+ case err_first: return "err_first";
+ case interleave: return "interleave";
+ default: return "write_mode_last";
+ }
+}
+
+static enum write_mode
+str_to_write_mode (const char *mode)
+{
+ if (strcmp (mode, "out_first") == 0)
+ return out_first;
+ else if (strcmp (mode, "err_first") == 0)
+ return err_first;
+ else if (strcmp (mode, "interleave") == 0)
+ return interleave;
+ return write_mode_last;
+}
+
/* Describe what to write in the subprocess. */
struct test
{
@@ -52,11 +88,9 @@ struct test
int status;
};
-/* For use with support_capture_subprocess. */
-static void
-callback (void *closure)
+_Noreturn static void
+test_common (const struct test *test)
{
- const struct test *test = closure;
bool mode_ok = false;
switch (test->write_mode)
{
@@ -95,6 +129,40 @@ callback (void *closure)
exit (test->status);
}
+static int
+parse_int (const char *str)
+{
+ char *endptr;
+ long int ret = strtol (str, &endptr, 10);
+ TEST_COMPARE (errno, 0);
+ TEST_VERIFY (ret >= 0 && ret <= INT_MAX);
+ return ret;
+}
+
+/* For use with support_capture_subprogram. */
+_Noreturn static void
+handle_restart (char *out, char *err, const char *write_mode,
+ const char *signal, const char *status)
+{
+ struct test test =
+ {
+ out,
+ err,
+ str_to_write_mode (write_mode),
+ parse_int (signal),
+ parse_int (status)
+ };
+ test_common (&test);
+}
+
+/* For use with support_capture_subprocess. */
+_Noreturn static void
+callback (void *closure)
+{
+ const struct test *test = closure;
+ test_common (test);
+}
+
/* Create a heap-allocated random string of letters. */
static char *
random_string (size_t length)
@@ -130,12 +198,59 @@ check_stream (const char *what, const struct xmemstream *stream,
}
}
+static struct support_capture_subprocess
+do_subprocess (struct test *test)
+{
+ return support_capture_subprocess (callback, test);
+}
+
+static struct support_capture_subprocess
+do_subprogram (const struct test *test)
+{
+ /* Three digits per byte plus null terminator. */
+ char signalstr[3 * sizeof(int) + 1];
+ snprintf (signalstr, sizeof (signalstr), "%d", test->signal);
+ char statusstr[3 * sizeof(int) + 1];
+ snprintf (statusstr, sizeof (statusstr), "%d", test->status);
+
+ int argc = 0;
+ enum {
+ /* 4 elements from initial_argv (path to ld.so, '--library-path', the
+ path', and application name'), 2 for restart argument ('--direct',
+ '--restart'), 5 arguments plus NULL. */
+ argv_size = 12
+ };
+ char *args[argv_size];
+
+ for (char **arg = initial_argv; *arg != NULL; arg++)
+ args[argc++] = *arg;
+
+ args[argc++] = (char*) "--direct";
+ args[argc++] = (char*) "--restart";
+
+ args[argc++] = test->out;
+ args[argc++] = test->err;
+ args[argc++] = (char*) write_mode_to_str (test->write_mode);
+ args[argc++] = signalstr;
+ args[argc++] = statusstr;
+ args[argc] = NULL;
+ TEST_VERIFY (argc < argv_size);
+
+ return support_capture_subprogram (args[0], args);
+}
+
+enum test_type
+{
+ subprocess,
+ subprogram,
+};
+
static int
-do_test (void)
+do_multiple_tests (enum test_type type)
{
const int lengths[] = {0, 1, 17, 512, 20000, -1};
- /* Test multiple combinations of support_capture_subprocess.
+ /* Test multiple combinations of support_capture_sub{process,program}.
length_idx_stdout: Index into the lengths array above,
controls how many bytes are written by the subprocess to
@@ -164,19 +279,35 @@ do_test (void)
TEST_VERIFY (strlen (test.out) == lengths[length_idx_stdout]);
TEST_VERIFY (strlen (test.err) == lengths[length_idx_stderr]);
- struct support_capture_subprocess result
- = support_capture_subprocess (callback, &test);
+ struct support_capture_subprocess result
+ = type == subprocess ? do_subprocess (&test)
+ : do_subprogram (&test);
+
check_stream ("stdout", &result.out, test.out);
check_stream ("stderr", &result.err, test.err);
+
+ /* Allowed output for support_capture_subprocess_check. */
+ int check_allow = 0;
+ if (lengths[length_idx_stdout] > 0)
+ check_allow |= sc_allow_stdout;
+ if (lengths[length_idx_stderr] > 0)
+ check_allow |= sc_allow_stderr;
+ if (check_allow == 0)
+ check_allow = sc_allow_none;
+
if (test.signal != 0)
{
TEST_VERIFY (WIFSIGNALED (result.status));
TEST_VERIFY (WTERMSIG (result.status) == test.signal);
+ support_capture_subprocess_check (&result, "signal",
+ -SIGTERM, check_allow);
}
else
{
TEST_VERIFY (WIFEXITED (result.status));
TEST_VERIFY (WEXITSTATUS (result.status) == test.status);
+ support_capture_subprocess_check (&result, "exit",
+ test.status, check_allow);
}
support_capture_subprocess_free (&result);
free (test.out);
@@ -185,4 +316,54 @@ do_test (void)
return 0;
}
+static int
+do_test (int argc, char *argv[])
+{
+ /* We must have either:
+
+ - one or four parameters if called initially:
+ + argv[1]: path for ld.so optional
+ + argv[2]: "--library-path" optional
+ + argv[3]: the library path optional
+ + argv[4]: the application name
+
+ - six parameters left if called through re-execution:
+ + argv[1]: the application name
+ + argv[2]: the stdout to print
+ + argv[3]: the stderr to print
+ + argv[4]: the write mode to use
+ + argv[5]: the signal to issue
+ + argv[6]: the exit status code to use
+
+ * When built with --enable-hardcoded-path-in-tests or issued without
+ using the loader directly.
+ */
+
+ if (argc != (restart ? 6 : 5) && argc != (restart ? 6 : 2))
+ FAIL_EXIT1 ("wrong number of arguments (%d)", argc);
+
+ if (restart)
+ {
+ handle_restart (argv[1], /* stdout */
+ argv[2], /* stderr */
+ argv[3], /* write_mode */
+ argv[4], /* signal */
+ argv[5]); /* status */
+ }
+
+ initial_argv[0] = argv[1]; /* path for ld.so */
+ initial_argv[1] = argv[2]; /* "--library-path" */
+ initial_argv[2] = argv[3]; /* the library path */
+ initial_argv[3] = argv[4]; /* the application name */
+ initial_argv[4] = NULL;
+
+ do_multiple_tests (subprocess);
+ do_multiple_tests (subprogram);
+
+ return 0;
+}
+
+#define CMDLINE_OPTIONS \
+ { "restart", no_argument, &restart, 1 },
+#define TEST_FUNCTION_ARGV do_test
#include <support/test-driver.c>
diff --git a/support/tst-support_descriptors.c b/support/tst-support_descriptors.c
new file mode 100644
index 0000000000..ada760c1e2
--- /dev/null
+++ b/support/tst-support_descriptors.c
@@ -0,0 +1,198 @@
+/* Tests for monitoring file descriptor usage.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <fcntl.h>
+#include <stdbool.h>
+#include <stdlib.h>
+#include <string.h>
+#include <support/capture_subprocess.h>
+#include <support/check.h>
+#include <support/descriptors.h>
+#include <support/support.h>
+#include <support/xunistd.h>
+
+/* This is the next free descriptor that the subprocess will pick. */
+static int free_descriptor;
+
+static void
+subprocess_no_change (void *closure)
+{
+ struct support_descriptors *descrs = support_descriptors_list ();
+ int fd = xopen ("/dev/null", O_WRONLY, 0);
+ TEST_COMPARE (fd, free_descriptor);
+ xclose (fd);
+ support_descriptors_free (descrs);
+}
+
+static void
+subprocess_closed_descriptor (void *closure)
+{
+ int fd = xopen ("/dev/null", O_WRONLY, 0);
+ TEST_COMPARE (fd, free_descriptor);
+ struct support_descriptors *descrs = support_descriptors_list ();
+ xclose (fd);
+ support_descriptors_check (descrs); /* Will report failure. */
+ puts ("EOT");
+ support_descriptors_free (descrs);
+}
+
+static void
+subprocess_opened_descriptor (void *closure)
+{
+ struct support_descriptors *descrs = support_descriptors_list ();
+ int fd = xopen ("/dev/null", O_WRONLY, 0);
+ TEST_COMPARE (fd, free_descriptor);
+ support_descriptors_check (descrs); /* Will report failure. */
+ puts ("EOT");
+ support_descriptors_free (descrs);
+}
+
+static void
+subprocess_changed_descriptor (void *closure)
+{
+ int fd = xopen ("/dev/null", O_WRONLY, 0);
+ TEST_COMPARE (fd, free_descriptor);
+ struct support_descriptors *descrs = support_descriptors_list ();
+ xclose (fd);
+ TEST_COMPARE (xopen ("/dev", O_DIRECTORY | O_RDONLY, 0), fd);
+ support_descriptors_check (descrs); /* Will report failure. */
+ puts ("EOT");
+ support_descriptors_free (descrs);
+}
+
+static void
+report_subprocess_output (const char *name,
+ struct support_capture_subprocess *proc)
+{
+ printf ("info: BEGIN %s output\n"
+ "%s"
+ "info: END %s output\n",
+ name, proc->out.buffer, name);
+}
+
+/* Use an explicit flag to preserve failure status across
+ support_record_failure_reset calls. */
+static bool good = true;
+
+static void
+test_run (void)
+{
+ struct support_capture_subprocess proc = support_capture_subprocess
+ (&subprocess_no_change, NULL);
+ support_capture_subprocess_check (&proc, "subprocess_no_change",
+ 0, sc_allow_none);
+ support_capture_subprocess_free (&proc);
+
+ char *expected = xasprintf ("\nDifferences:\n"
+ "error: descriptor %d was closed\n"
+ "EOT\n",
+ free_descriptor);
+ good = good && !support_record_failure_is_failed ();
+ proc = support_capture_subprocess (&subprocess_closed_descriptor, NULL);
+ good = good && support_record_failure_is_failed ();
+ support_record_failure_reset (); /* Discard the reported error. */
+ report_subprocess_output ("subprocess_closed_descriptor", &proc);
+ TEST_VERIFY (strstr (proc.out.buffer, expected) != NULL);
+ support_capture_subprocess_check (&proc, "subprocess_closed_descriptor",
+ 0, sc_allow_stdout);
+ support_capture_subprocess_free (&proc);
+ free (expected);
+
+ expected = xasprintf ("\nDifferences:\n"
+ "error: descriptor %d was opened (\"/dev/null\")\n"
+ "EOT\n",
+ free_descriptor);
+ good = good && !support_record_failure_is_failed ();
+ proc = support_capture_subprocess (&subprocess_opened_descriptor, NULL);
+ good = good && support_record_failure_is_failed ();
+ support_record_failure_reset (); /* Discard the reported error. */
+ report_subprocess_output ("subprocess_opened_descriptor", &proc);
+ TEST_VERIFY (strstr (proc.out.buffer, expected) != NULL);
+ support_capture_subprocess_check (&proc, "subprocess_opened_descriptor",
+ 0, sc_allow_stdout);
+ support_capture_subprocess_free (&proc);
+ free (expected);
+
+ expected = xasprintf ("\nDifferences:\n"
+ "error: descriptor %d changed from \"/dev/null\""
+ " to \"/dev\"\n"
+ "error: descriptor %d changed ino ",
+ free_descriptor, free_descriptor);
+ good = good && !support_record_failure_is_failed ();
+ proc = support_capture_subprocess (&subprocess_changed_descriptor, NULL);
+ good = good && support_record_failure_is_failed ();
+ support_record_failure_reset (); /* Discard the reported error. */
+ report_subprocess_output ("subprocess_changed_descriptor", &proc);
+ TEST_VERIFY (strstr (proc.out.buffer, expected) != NULL);
+ support_capture_subprocess_check (&proc, "subprocess_changed_descriptor",
+ 0, sc_allow_stdout);
+ support_capture_subprocess_free (&proc);
+ free (expected);
+}
+
+static int
+do_test (void)
+{
+ puts ("info: initial descriptor set");
+ {
+ struct support_descriptors *descrs = support_descriptors_list ();
+ support_descriptors_dump (descrs, "info: ", stdout);
+ support_descriptors_free (descrs);
+ }
+
+ free_descriptor = xopen ("/dev/null", O_WRONLY, 0);
+ puts ("info: descriptor set with additional free descriptor");
+ {
+ struct support_descriptors *descrs = support_descriptors_list ();
+ support_descriptors_dump (descrs, "info: ", stdout);
+ support_descriptors_free (descrs);
+ }
+ TEST_VERIFY (free_descriptor >= 3);
+ xclose (free_descriptor);
+
+ /* Initial test run without a sentinel descriptor. The presence of
+ such a descriptor exercises different conditions in the list
+ comparison in support_descriptors_check. */
+ test_run ();
+
+ /* Allocate a sentinel descriptor at the end of the descriptor list,
+ after free_descriptor. */
+ int sentinel_fd;
+ {
+ int fd = xopen ("/dev/full", O_WRONLY, 0);
+ TEST_COMPARE (fd, free_descriptor);
+ sentinel_fd = dup (fd);
+ TEST_VERIFY_EXIT (sentinel_fd > fd);
+ xclose (fd);
+ }
+ puts ("info: descriptor set with sentinel descriptor");
+ {
+ struct support_descriptors *descrs = support_descriptors_list ();
+ support_descriptors_dump (descrs, "info: ", stdout);
+ support_descriptors_free (descrs);
+ }
+
+ /* Second test run with sentinel descriptor. */
+ test_run ();
+
+ xclose (sentinel_fd);
+
+ return !good;
+}
+
+#include <support/test-driver.c>
diff --git a/support/tst-support_format_dns_packet.c b/support/tst-support_format_dns_packet.c
index b1135eebc6..a721b93f06 100644
--- a/support/tst-support_format_dns_packet.c
+++ b/support/tst-support_format_dns_packet.c
@@ -1,5 +1,5 @@
/* Tests for the support_format_dns_packet function.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/check.h>
#include <support/format_nss.h>
diff --git a/support/tst-support_quote_blob.c b/support/tst-support_quote_blob.c
index 5467a190a6..ce4d8daf27 100644
--- a/support/tst-support_quote_blob.c
+++ b/support/tst-support_quote_blob.c
@@ -1,5 +1,5 @@
/* Test the support_quote_blob function.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/check.h>
#include <support/support.h>
diff --git a/support/tst-support_quote_string.c b/support/tst-support_quote_string.c
new file mode 100644
index 0000000000..bc7a5f7bad
--- /dev/null
+++ b/support/tst-support_quote_string.c
@@ -0,0 +1,60 @@
+/* Test the support_quote_string function.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <support/check.h>
+#include <support/support.h>
+#include <string.h>
+#include <stdlib.h>
+
+static int
+do_test (void)
+{
+ char *p = support_quote_string ("");
+ TEST_COMPARE (strlen (p), 0);
+ free (p);
+ p = support_quote_string ("X");
+ TEST_COMPARE (strlen (p), 1);
+ TEST_COMPARE (p[0], 'X');
+ free (p);
+
+ /* Check escaping of backslash-escaped characters, and lack of
+ escaping for other shell meta-characters. */
+ p = support_quote_string ("$()*?`@[]{}~\'\"X");
+ TEST_COMPARE (strcmp (p, "$()*?`@[]{}~\\'\\\"X"), 0);
+ free (p);
+
+ /* Check lack of escaping for letters and digits. */
+#define LETTERS_AND_DIGTS \
+ "abcdefghijklmnopqrstuvwxyz" \
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZ" \
+ "0123456789"
+ p = support_quote_string (LETTERS_AND_DIGTS "@");
+ TEST_COMPARE (strcmp (p, LETTERS_AND_DIGTS "@"), 0);
+ free (p);
+
+ /* Check escaping of control characters and other non-printable
+ characters. */
+ p = support_quote_string ("\r\n\t\a\b\f\v\1\177\200\377@");
+ TEST_COMPARE (strcmp (p, "\\r\\n\\t\\a\\b\\f\\v\\001"
+ "\\177\\200\\377@"), 0);
+ free (p);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/support/tst-support_record_failure-2.sh b/support/tst-support_record_failure-2.sh
index 09cd96290a..6098508ba7 100644
--- a/support/tst-support_record_failure-2.sh
+++ b/support/tst-support_record_failure-2.sh
@@ -1,6 +1,6 @@
#!/bin/sh
# Test failure recording (with and without --direct).
-# Copyright (C) 2016-2018 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
@@ -15,7 +15,7 @@
#
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>. */
+# <https://www.gnu.org/licenses/>. */
set -e
diff --git a/support/tst-support_record_failure.c b/support/tst-support_record_failure.c
index 8757f2da02..54d9efa014 100644
--- a/support/tst-support_record_failure.c
+++ b/support/tst-support_record_failure.c
@@ -1,5 +1,5 @@
/* Test support_record_failure state sharing.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/check.h>
#include <support/support.h>
diff --git a/support/tst-test_compare.c b/support/tst-test_compare.c
index 123ba1bc3c..56ad5013f7 100644
--- a/support/tst-test_compare.c
+++ b/support/tst-test_compare.c
@@ -1,5 +1,5 @@
/* Basic test for the TEST_COMPARE macro.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <support/check.h>
diff --git a/support/tst-test_compare_blob.c b/support/tst-test_compare_blob.c
index aa8643e182..4a622ae9e5 100644
--- a/support/tst-test_compare_blob.c
+++ b/support/tst-test_compare_blob.c
@@ -1,5 +1,5 @@
/* Basic test for the TEST_COMPARE_BLOB macro.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <support/check.h>
diff --git a/support/tst-test_compare_string.c b/support/tst-test_compare_string.c
new file mode 100644
index 0000000000..b984895f9e
--- /dev/null
+++ b/support/tst-test_compare_string.c
@@ -0,0 +1,107 @@
+/* Basic test for the TEST_COMPARE_STRING macro.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <string.h>
+#include <support/check.h>
+#include <support/capture_subprocess.h>
+
+static void
+subprocess (void *closure)
+{
+ /* These tests should fail. They were chosen to cover differences
+ in length (with the same contents), single-bit mismatches, and
+ mismatching null pointers. */
+ TEST_COMPARE_STRING ("", NULL); /* Line 29. */
+ TEST_COMPARE_STRING ("X", ""); /* Line 30. */
+ TEST_COMPARE_STRING (NULL, "X"); /* Line 31. */
+ TEST_COMPARE_STRING ("abcd", "abcD"); /* Line 32. */
+ TEST_COMPARE_STRING ("abcd", NULL); /* Line 33. */
+ TEST_COMPARE_STRING (NULL, "abcd"); /* Line 34. */
+}
+
+/* Same contents, different addresses. */
+char buffer_abc_1[] = "abc";
+char buffer_abc_2[] = "abc";
+
+static int
+do_test (void)
+{
+ /* This should succeed. Even if the pointers and array contents are
+ different, zero-length inputs are not different. */
+ TEST_COMPARE_STRING (NULL, NULL);
+ TEST_COMPARE_STRING ("", "");
+ TEST_COMPARE_STRING (buffer_abc_1, buffer_abc_2);
+ TEST_COMPARE_STRING (buffer_abc_1, "abc");
+
+ struct support_capture_subprocess proc = support_capture_subprocess
+ (&subprocess, NULL);
+
+ /* Discard the reported error. */
+ support_record_failure_reset ();
+
+ puts ("info: *** subprocess output starts ***");
+ fputs (proc.out.buffer, stdout);
+ puts ("info: *** subprocess output ends ***");
+
+ TEST_VERIFY
+ (strcmp (proc.out.buffer,
+"tst-test_compare_string.c:29: error: string comparison failed\n"
+" left string: 0 bytes\n"
+" right string: NULL\n"
+"tst-test_compare_string.c:30: error: string comparison failed\n"
+" left string: 1 bytes\n"
+" right string: 0 bytes\n"
+" left (evaluated from \"X\"):\n"
+" \"X\"\n"
+" 58\n"
+"tst-test_compare_string.c:31: error: string comparison failed\n"
+" left string: NULL\n"
+" right string: 1 bytes\n"
+" right (evaluated from \"X\"):\n"
+" \"X\"\n"
+" 58\n"
+"tst-test_compare_string.c:32: error: string comparison failed\n"
+" string length: 4 bytes\n"
+" left (evaluated from \"abcd\"):\n"
+" \"abcd\"\n"
+" 61 62 63 64\n"
+" right (evaluated from \"abcD\"):\n"
+" \"abcD\"\n"
+" 61 62 63 44\n"
+"tst-test_compare_string.c:33: error: string comparison failed\n"
+" left string: 4 bytes\n"
+" right string: NULL\n"
+" left (evaluated from \"abcd\"):\n"
+" \"abcd\"\n"
+" 61 62 63 64\n"
+"tst-test_compare_string.c:34: error: string comparison failed\n"
+" left string: NULL\n"
+" right string: 4 bytes\n"
+" right (evaluated from \"abcd\"):\n"
+" \"abcd\"\n"
+" 61 62 63 64\n"
+ ) == 0);
+
+ /* Check that there is no output on standard error. */
+ support_capture_subprocess_check (&proc, "TEST_COMPARE_STRING",
+ 0, sc_allow_stdout);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/support/tst-xreadlink.c b/support/tst-xreadlink.c
index b142207228..18a55be17b 100644
--- a/support/tst-xreadlink.c
+++ b/support/tst-xreadlink.c
@@ -1,5 +1,5 @@
/* Test the xreadlink function.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/support/tst-xsigstack.c b/support/tst-xsigstack.c
new file mode 100644
index 0000000000..ef19b85a7a
--- /dev/null
+++ b/support/tst-xsigstack.c
@@ -0,0 +1,64 @@
+/* Test of sigaltstack wrappers.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <support/xsignal.h>
+#include <support/support.h>
+#include <support/xunistd.h>
+#include <support/check.h>
+
+#include <stdint.h>
+#include <stdio.h>
+
+static volatile uintptr_t handler_stackaddr;
+
+static void
+handler (int unused)
+{
+ int var;
+ handler_stackaddr = (uintptr_t) &var;
+}
+
+int
+do_test (void)
+{
+ void *sstk = xalloc_sigstack (0);
+
+ unsigned char *sp;
+ size_t size;
+ xget_sigstack_location (sstk, &sp, &size);
+ printf ("signal stack installed: sp=%p size=%zu\n", sp, size);
+
+ struct sigaction sa;
+ sa.sa_handler = handler;
+ sa.sa_flags = SA_RESTART | SA_ONSTACK;
+ sigfillset (&sa.sa_mask);
+ if (sigaction (SIGUSR1, &sa, 0))
+ FAIL_RET ("sigaction (SIGUSR1, handler): %m\n");
+
+ raise (SIGUSR1);
+
+ uintptr_t haddr = handler_stackaddr;
+ printf ("address of handler local variable: %p\n", (void *)haddr);
+ TEST_VERIFY ((uintptr_t)sp < haddr);
+ TEST_VERIFY (haddr < (uintptr_t)sp + size);
+
+ xfree_sigstack (sstk);
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/support/tty.h b/support/tty.h
index 1d37c42279..374bee7c7e 100644
--- a/support/tty.h
+++ b/support/tty.h
@@ -1,5 +1,5 @@
/* Support functions related to (pseudo)terminals.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SUPPORT_TTY_H
#define _SUPPORT_TTY_H 1
diff --git a/support/write_message.c b/support/write_message.c
index a3e2f90535..110eb3beb2 100644
--- a/support/write_message.c
+++ b/support/write_message.c
@@ -1,5 +1,5 @@
/* Write a message to standard output.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/support.h>
diff --git a/support/xaccept.c b/support/xaccept.c
index fd65fc6c3a..a91c8270cd 100644
--- a/support/xaccept.c
+++ b/support/xaccept.c
@@ -1,5 +1,5 @@
/* accept with error checking.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xsocket.h>
diff --git a/support/xaccept4.c b/support/xaccept4.c
index ada3c92267..11a39f3e00 100644
--- a/support/xaccept4.c
+++ b/support/xaccept4.c
@@ -1,5 +1,5 @@
/* accept4 with error checking.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xsocket.h>
diff --git a/support/xasprintf.c b/support/xasprintf.c
index e593ec5e82..3f45ca9160 100644
--- a/support/xasprintf.c
+++ b/support/xasprintf.c
@@ -1,5 +1,5 @@
/* Error-checking wrapper for asprintf.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/support.h>
diff --git a/support/xbind.c b/support/xbind.c
index 938e7c07d6..f3638911c6 100644
--- a/support/xbind.c
+++ b/support/xbind.c
@@ -1,5 +1,5 @@
/* bind with error checking.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xsocket.h>
diff --git a/support/xcalloc.c b/support/xcalloc.c
index 403569041f..3f7dcdc829 100644
--- a/support/xcalloc.c
+++ b/support/xcalloc.c
@@ -1,5 +1,5 @@
/* Error-checking wrapper for calloc.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/support.h>
diff --git a/support/xchroot.c b/support/xchroot.c
index d4759a1bd1..6523fd0baf 100644
--- a/support/xchroot.c
+++ b/support/xchroot.c
@@ -1,5 +1,5 @@
/* chroot with error checking.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/check.h>
#include <support/xunistd.h>
diff --git a/support/xclock_gettime.c b/support/xclock_gettime.c
new file mode 100644
index 0000000000..8825a211b9
--- /dev/null
+++ b/support/xclock_gettime.c
@@ -0,0 +1,31 @@
+/* clock_gettime with error checking.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <support/check.h>
+#include <support/xtime.h>
+#include <support/xthread.h>
+
+void
+xclock_gettime (clockid_t clockid,
+ struct timespec *ts)
+{
+ const int ret = clock_gettime (clockid, ts);
+ if (ret < 0)
+ FAIL_EXIT1 ("clock_gettime (%d): %m",
+ clockid);
+}
diff --git a/support/xclose.c b/support/xclose.c
index 702bef6c6e..21019ec1cc 100644
--- a/support/xclose.c
+++ b/support/xclose.c
@@ -1,5 +1,5 @@
/* close with error checking.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xunistd.h>
#include <support/check.h>
diff --git a/support/xconnect.c b/support/xconnect.c
index 341805d80d..fbcbf63890 100644
--- a/support/xconnect.c
+++ b/support/xconnect.c
@@ -1,5 +1,5 @@
/* connect with error checking.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xsocket.h>
diff --git a/support/xcopy_file_range.c b/support/xcopy_file_range.c
new file mode 100644
index 0000000000..97c5177988
--- /dev/null
+++ b/support/xcopy_file_range.c
@@ -0,0 +1,32 @@
+/* copy_file_range with error checking.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <support/support.h>
+#include <support/xunistd.h>
+#include <support/check.h>
+
+ssize_t
+xcopy_file_range (int infd, off64_t *pinoff, int outfd, off64_t *poutoff,
+ size_t length, unsigned int flags)
+{
+ ssize_t status = support_copy_file_range (infd, pinoff, outfd,
+ poutoff, length, flags);
+ if (status == -1)
+ FAIL_EXIT1 ("cannot copy file: %m\n");
+ return status;
+}
diff --git a/support/xdlfcn.c b/support/xdlfcn.c
index f34bb059c0..ec15b1599a 100644
--- a/support/xdlfcn.c
+++ b/support/xdlfcn.c
@@ -1,5 +1,5 @@
/* Support functionality for using dlopen/dlclose/dlsym.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <support/check.h>
@@ -28,23 +28,46 @@ xdlopen (const char *filename, int flags)
if (dso == NULL)
FAIL_EXIT1 ("error: dlopen: %s\n", dlerror ());
- /* Clear any errors. */
- dlerror ();
-
return dso;
}
void *
xdlsym (void *handle, const char *symbol)
{
+ /* Clear any pending errors. */
+ dlerror ();
+
void *sym = dlsym (handle, symbol);
if (sym == NULL)
- FAIL_EXIT1 ("error: dlsym: %s\n", dlerror ());
+ {
+ const char *error = dlerror ();
+ if (error != NULL)
+ FAIL_EXIT1 ("error: dlsym: %s\n", error);
+ /* If there was no error, we found a NULL symbol. Return the
+ NULL value in this case. */
+ }
+
+ return sym;
+}
- /* Clear any errors. */
+void *
+xdlvsym (void *handle, const char *symbol, const char *version)
+{
+ /* Clear any pending errors. */
dlerror ();
+ void *sym = dlvsym (handle, symbol, version);
+
+ if (sym == NULL)
+ {
+ const char *error = dlerror ();
+ if (error != NULL)
+ FAIL_EXIT1 ("error: dlvsym: %s\n", error);
+ /* If there was no error, we found a NULL symbol. Return the
+ NULL value in this case. */
+ }
+
return sym;
}
@@ -53,7 +76,4 @@ xdlclose (void *handle)
{
if (dlclose (handle) != 0)
FAIL_EXIT1 ("error: dlclose: %s\n", dlerror ());
-
- /* Clear any errors. */
- dlerror ();
}
diff --git a/support/xdlfcn.h b/support/xdlfcn.h
index 5ab7494e70..488acf94b4 100644
--- a/support/xdlfcn.h
+++ b/support/xdlfcn.h
@@ -1,5 +1,5 @@
/* Support functionality for using dlopen/dlclose/dlsym.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef SUPPORT_DLOPEN_H
#define SUPPORT_DLOPEN_H
@@ -25,10 +25,11 @@ __BEGIN_DECLS
/* Each of these terminates process on failure with relevant error message. */
void *xdlopen (const char *filename, int flags);
+void *xdlmopen (Lmid_t lmid, const char *filename, int flags);
void *xdlsym (void *handle, const char *symbol);
+void *xdlvsym (void *handle, const char *symbol, const char *version);
void xdlclose (void *handle);
-
__END_DECLS
#endif /* SUPPORT_DLOPEN_H */
diff --git a/support/xdlmopen.c b/support/xdlmopen.c
new file mode 100644
index 0000000000..33be51740c
--- /dev/null
+++ b/support/xdlmopen.c
@@ -0,0 +1,31 @@
+/* dlmopen with error checking.
+ Copyright (C) 2017-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <support/check.h>
+#include <support/xdlfcn.h>
+
+void *
+xdlmopen (Lmid_t lmid, const char *filename, int flags)
+{
+ void *dso = dlmopen (lmid, filename, flags);
+
+ if (dso == NULL)
+ FAIL_EXIT1 ("error: dlmopen: %s\n", dlerror ());
+
+ return dso;
+}
diff --git a/support/xdup2.c b/support/xdup2.c
index b8c4c223fb..1e22ac6e33 100644
--- a/support/xdup2.c
+++ b/support/xdup2.c
@@ -1,5 +1,5 @@
/* dup2 with error checking.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xunistd.h>
diff --git a/support/xfclose.c b/support/xfclose.c
index 39d46f042a..13c9f179ac 100644
--- a/support/xfclose.c
+++ b/support/xfclose.c
@@ -1,5 +1,5 @@
/* fclose with error checking.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xstdio.h>
diff --git a/support/xfopen.c b/support/xfopen.c
index fb931cf22b..539f01eeda 100644
--- a/support/xfopen.c
+++ b/support/xfopen.c
@@ -1,5 +1,5 @@
/* fopen with error checking.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xstdio.h>
diff --git a/support/xfork.c b/support/xfork.c
index dffa2a13d0..ee2ea47694 100644
--- a/support/xfork.c
+++ b/support/xfork.c
@@ -1,5 +1,5 @@
/* fork with error checking.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xunistd.h>
diff --git a/support/xftruncate.c b/support/xftruncate.c
index 27c7e12ba2..995f6e7dd2 100644
--- a/support/xftruncate.c
+++ b/support/xftruncate.c
@@ -1,5 +1,5 @@
/* ftruncate with error checking.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/check.h>
#include <support/xunistd.h>
diff --git a/support/xgetsockname.c b/support/xgetsockname.c
index 797194f79d..4e99c46ca3 100644
--- a/support/xgetsockname.c
+++ b/support/xgetsockname.c
@@ -1,5 +1,5 @@
/* getsockname with error checking.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xsocket.h>
diff --git a/support/xlisten.c b/support/xlisten.c
index aa70091adb..758a0067cf 100644
--- a/support/xlisten.c
+++ b/support/xlisten.c
@@ -1,5 +1,5 @@
/* listen with error checking.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xsocket.h>
diff --git a/support/xlseek.c b/support/xlseek.c
index 2422939908..71b912290f 100644
--- a/support/xlseek.c
+++ b/support/xlseek.c
@@ -1,5 +1,5 @@
/* lseek with error checking.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/check.h>
#include <support/xunistd.h>
diff --git a/support/xmalloc.c b/support/xmalloc.c
index 78317e2b12..099d4bb63e 100644
--- a/support/xmalloc.c
+++ b/support/xmalloc.c
@@ -1,5 +1,5 @@
/* Error-checking wrapper for malloc.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/support.h>
diff --git a/support/xmemstream.c b/support/xmemstream.c
index df5fbc489a..82f8da7df2 100644
--- a/support/xmemstream.c
+++ b/support/xmemstream.c
@@ -1,5 +1,5 @@
/* Error-checking wrappers for memstream functions.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xmemstream.h>
diff --git a/support/xmemstream.h b/support/xmemstream.h
index 2d4a577f29..3a3d832da1 100644
--- a/support/xmemstream.h
+++ b/support/xmemstream.h
@@ -1,5 +1,5 @@
/* Error-checking wrappers for memstream functions.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef SUPPORT_XMEMSTREAM_H
#define SUPPORT_XMEMSTREAM_H
diff --git a/support/xmkdir.c b/support/xmkdir.c
index 7e67f783de..c404d70275 100644
--- a/support/xmkdir.c
+++ b/support/xmkdir.c
@@ -1,5 +1,5 @@
/* mkdir with error checking.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/check.h>
#include <support/xunistd.h>
diff --git a/support/xmkdirp.c b/support/xmkdirp.c
new file mode 100644
index 0000000000..319abf466b
--- /dev/null
+++ b/support/xmkdirp.c
@@ -0,0 +1,66 @@
+/* Error-checking replacement for "mkdir -p".
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <support/support.h>
+#include <support/check.h>
+#include <support/xunistd.h>
+
+#include <stdlib.h>
+#include <string.h>
+#include <errno.h>
+
+/* Equivalent of "mkdir -p". Any failures cause FAIL_EXIT1 so no
+ return code is needed. */
+
+void
+xmkdirp (const char *path, mode_t mode)
+{
+ struct stat s;
+ const char *slash_p;
+ int rv;
+
+ if (path[0] == 0)
+ return;
+
+ if (stat (path, &s) == 0)
+ {
+ if (S_ISDIR (s.st_mode))
+ return;
+ errno = EEXIST;
+ FAIL_EXIT1 ("mkdir_p (\"%s\", 0%o): %m", path, mode);
+ }
+
+ slash_p = strrchr (path, '/');
+ if (slash_p != NULL)
+ {
+ while (slash_p > path && slash_p[-1] == '/')
+ --slash_p;
+ if (slash_p > path)
+ {
+ char *parent = xstrndup (path, slash_p - path);
+ xmkdirp (parent, mode);
+ free (parent);
+ }
+ }
+
+ rv = mkdir (path, mode);
+ if (rv != 0)
+ FAIL_EXIT1 ("mkdir_p (\"%s\", 0%o): %m", path, mode);
+
+ return;
+}
diff --git a/support/xmmap.c b/support/xmmap.c
index d580c07013..6968070785 100644
--- a/support/xmmap.c
+++ b/support/xmmap.c
@@ -1,5 +1,5 @@
/* mmap with error checking.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/check.h>
#include <support/xunistd.h>
diff --git a/support/xmprotect.c b/support/xmprotect.c
index e6870988e0..0a3388ed08 100644
--- a/support/xmprotect.c
+++ b/support/xmprotect.c
@@ -1,5 +1,5 @@
/* mprotect with error checking.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/check.h>
#include <support/xunistd.h>
diff --git a/support/xmunmap.c b/support/xmunmap.c
index e8e5bc2d59..c191991276 100644
--- a/support/xmunmap.c
+++ b/support/xmunmap.c
@@ -1,5 +1,5 @@
/* munmap with error checking.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/check.h>
#include <support/xunistd.h>
diff --git a/support/xopen.c b/support/xopen.c
index 3d888e8862..28e8822229 100644
--- a/support/xopen.c
+++ b/support/xopen.c
@@ -1,5 +1,5 @@
/* open64 with error checking.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/check.h>
#include <support/xunistd.h>
diff --git a/support/xpipe.c b/support/xpipe.c
index b8529df620..819f6573c7 100644
--- a/support/xpipe.c
+++ b/support/xpipe.c
@@ -1,5 +1,5 @@
/* pipe with error checking.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xunistd.h>
diff --git a/support/xpoll.c b/support/xpoll.c
index b24bf32fc5..9e5a3d8427 100644
--- a/support/xpoll.c
+++ b/support/xpoll.c
@@ -1,5 +1,5 @@
/* poll with error checking.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xsocket.h>
diff --git a/support/xposix_memalign.c b/support/xposix_memalign.c
new file mode 100644
index 0000000000..2e3fb0a2b7
--- /dev/null
+++ b/support/xposix_memalign.c
@@ -0,0 +1,35 @@
+/* Error-checking wrapper for posix_memalign.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <support/support.h>
+#include <stdlib.h>
+#include <errno.h>
+
+void *
+xposix_memalign (size_t alignment, size_t n)
+{
+ void *p = NULL;
+
+ int ret = posix_memalign (&p, alignment, n);
+ if (ret)
+ {
+ errno = ret;
+ oom_error ("posix_memalign", n);
+ }
+ return p;
+}
diff --git a/support/xposix_spawn.c b/support/xposix_spawn.c
new file mode 100644
index 0000000000..1c89b79832
--- /dev/null
+++ b/support/xposix_spawn.c
@@ -0,0 +1,32 @@
+/* xposix_spawn implementation.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <support/xspawn.h>
+#include <support/check.h>
+
+pid_t
+xposix_spawn (const char *file, const posix_spawn_file_actions_t *fa,
+ const posix_spawnattr_t *attr, char *const args[],
+ char *const envp[])
+{
+ pid_t pid;
+ int status = posix_spawn (&pid, file, fa, attr, args, envp);
+ if (status != 0)
+ FAIL_EXIT1 ("posix_spawn to %s file failed: %m", file);
+ return pid;
+}
diff --git a/support/xposix_spawn_file_actions_addclose.c b/support/xposix_spawn_file_actions_addclose.c
new file mode 100644
index 0000000000..569fa5a5f1
--- /dev/null
+++ b/support/xposix_spawn_file_actions_addclose.c
@@ -0,0 +1,29 @@
+/* xposix_spawn_file_actions_addclose implementation.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <support/xspawn.h>
+#include <support/check.h>
+
+int
+xposix_spawn_file_actions_addclose (posix_spawn_file_actions_t *fa, int fd)
+{
+ int status = posix_spawn_file_actions_addclose (fa, fd);
+ if (status == -1)
+ FAIL_EXIT1 ("posix_spawn_file_actions_addclose failed: %m\n");
+ return status;
+}
diff --git a/support/xposix_spawn_file_actions_adddup2.c b/support/xposix_spawn_file_actions_adddup2.c
new file mode 100644
index 0000000000..8f857fcea4
--- /dev/null
+++ b/support/xposix_spawn_file_actions_adddup2.c
@@ -0,0 +1,30 @@
+/* xposix_spawn_file_actions_adddup2 implementation.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <support/xspawn.h>
+#include <support/check.h>
+
+int
+xposix_spawn_file_actions_adddup2 (posix_spawn_file_actions_t *fa, int fd,
+ int newfd)
+{
+ int status = posix_spawn_file_actions_adddup2 (fa, fd, newfd);
+ if (status == -1)
+ FAIL_EXIT1 ("posix_spawn_file_actions_adddup2 failed: %m\n");
+ return status;
+}
diff --git a/support/xpthread_attr_destroy.c b/support/xpthread_attr_destroy.c
index 52aa2602fe..9c8598c2ce 100644
--- a/support/xpthread_attr_destroy.c
+++ b/support/xpthread_attr_destroy.c
@@ -1,5 +1,5 @@
/* pthread_attr_destroy with error checking.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xthread.h>
diff --git a/support/xpthread_attr_init.c b/support/xpthread_attr_init.c
index c7aa903db2..959efa10f5 100644
--- a/support/xpthread_attr_init.c
+++ b/support/xpthread_attr_init.c
@@ -1,5 +1,5 @@
/* pthread_attr_init with error checking.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xthread.h>
diff --git a/support/xpthread_attr_setdetachstate.c b/support/xpthread_attr_setdetachstate.c
index 6e845acc97..1b6035f9f5 100644
--- a/support/xpthread_attr_setdetachstate.c
+++ b/support/xpthread_attr_setdetachstate.c
@@ -1,5 +1,5 @@
/* pthread_attr_setdetachstate with error checking.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xthread.h>
diff --git a/support/xpthread_attr_setguardsize.c b/support/xpthread_attr_setguardsize.c
index 964ec058c9..8ca519289d 100644
--- a/support/xpthread_attr_setguardsize.c
+++ b/support/xpthread_attr_setguardsize.c
@@ -1,5 +1,5 @@
/* pthread_attr_setguardsize with error checking.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xthread.h>
diff --git a/support/xpthread_attr_setstack.c b/support/xpthread_attr_setstack.c
new file mode 100644
index 0000000000..99ee0d75aa
--- /dev/null
+++ b/support/xpthread_attr_setstack.c
@@ -0,0 +1,26 @@
+/* pthread_attr_setstack with error checking.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <support/xthread.h>
+
+void
+xpthread_attr_setstack (pthread_attr_t *attr, void *stackaddr, size_t stacksize)
+{
+ xpthread_check_return ("pthread_attr_setstack",
+ pthread_attr_setstack (attr, stackaddr, stacksize));
+}
diff --git a/support/xpthread_attr_setstacksize.c b/support/xpthread_attr_setstacksize.c
index c5517c0c66..9147ba15bd 100644
--- a/support/xpthread_attr_setstacksize.c
+++ b/support/xpthread_attr_setstacksize.c
@@ -1,5 +1,5 @@
/* pthread_attr_setstacksize with error checking.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xthread.h>
diff --git a/support/xpthread_barrier_destroy.c b/support/xpthread_barrier_destroy.c
index 1dae148b46..f0c5470b03 100644
--- a/support/xpthread_barrier_destroy.c
+++ b/support/xpthread_barrier_destroy.c
@@ -1,5 +1,5 @@
/* pthread_barrier_destroy with error checking.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xthread.h>
diff --git a/support/xpthread_barrier_init.c b/support/xpthread_barrier_init.c
index 4a2975ad12..187b648e57 100644
--- a/support/xpthread_barrier_init.c
+++ b/support/xpthread_barrier_init.c
@@ -1,5 +1,5 @@
/* pthread_barrier_init with error checking.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xthread.h>
diff --git a/support/xpthread_barrier_wait.c b/support/xpthread_barrier_wait.c
index 61690c5e7c..3629fdb145 100644
--- a/support/xpthread_barrier_wait.c
+++ b/support/xpthread_barrier_wait.c
@@ -1,5 +1,5 @@
/* pthread_barrier_wait with error checking.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xthread.h>
diff --git a/support/xpthread_barrierattr_destroy.c b/support/xpthread_barrierattr_destroy.c
index 3e471f9a81..04765cc3a7 100644
--- a/support/xpthread_barrierattr_destroy.c
+++ b/support/xpthread_barrierattr_destroy.c
@@ -1,5 +1,5 @@
/* pthread_barrierattr_destroy with error checking.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xthread.h>
diff --git a/support/xpthread_barrierattr_init.c b/support/xpthread_barrierattr_init.c
index 4ee14e78f3..55f962c5ed 100644
--- a/support/xpthread_barrierattr_init.c
+++ b/support/xpthread_barrierattr_init.c
@@ -1,5 +1,5 @@
/* pthread_barrierattr_init with error checking.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xthread.h>
diff --git a/support/xpthread_barrierattr_setpshared.c b/support/xpthread_barrierattr_setpshared.c
index 90b2c5bec6..0d5703b741 100644
--- a/support/xpthread_barrierattr_setpshared.c
+++ b/support/xpthread_barrierattr_setpshared.c
@@ -1,5 +1,5 @@
/* pthread_barrierattr_setpshared with error checking.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xthread.h>
diff --git a/support/xpthread_cancel.c b/support/xpthread_cancel.c
index 26e864ea3e..0f39ec750e 100644
--- a/support/xpthread_cancel.c
+++ b/support/xpthread_cancel.c
@@ -1,5 +1,5 @@
/* pthread_cancel with error checking.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xthread.h>
diff --git a/support/xpthread_check_return.c b/support/xpthread_check_return.c
index 1658db4b62..7a88b30cb7 100644
--- a/support/xpthread_check_return.c
+++ b/support/xpthread_check_return.c
@@ -1,5 +1,5 @@
/* Return value checking for pthread functions, exit variant.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xthread.h>
diff --git a/support/xpthread_cond_wait.c b/support/xpthread_cond_wait.c
index 08ec683b66..c912bf2721 100644
--- a/support/xpthread_cond_wait.c
+++ b/support/xpthread_cond_wait.c
@@ -1,5 +1,5 @@
/* pthread_cond_wait with error checking.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xthread.h>
diff --git a/support/xpthread_create.c b/support/xpthread_create.c
index 24b8456db9..3ff644d2b6 100644
--- a/support/xpthread_create.c
+++ b/support/xpthread_create.c
@@ -1,5 +1,5 @@
/* pthread_create with error checking.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xthread.h>
diff --git a/support/xpthread_detach.c b/support/xpthread_detach.c
index c65f2d7db1..b47bdaf479 100644
--- a/support/xpthread_detach.c
+++ b/support/xpthread_detach.c
@@ -1,5 +1,5 @@
/* pthread_detach with error checking.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xthread.h>
diff --git a/support/xpthread_join.c b/support/xpthread_join.c
index 29acbd283a..6a662b813b 100644
--- a/support/xpthread_join.c
+++ b/support/xpthread_join.c
@@ -1,5 +1,5 @@
/* pthread_join with error checking.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xthread.h>
diff --git a/support/xpthread_mutex_consistent.c b/support/xpthread_mutex_consistent.c
index d337163609..0a99e4d788 100644
--- a/support/xpthread_mutex_consistent.c
+++ b/support/xpthread_mutex_consistent.c
@@ -1,5 +1,5 @@
/* pthread_mutex_consistent with error checking.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xthread.h>
diff --git a/support/xpthread_mutex_destroy.c b/support/xpthread_mutex_destroy.c
index d03f016629..0a2ced3a22 100644
--- a/support/xpthread_mutex_destroy.c
+++ b/support/xpthread_mutex_destroy.c
@@ -1,5 +1,5 @@
/* pthread_mutex_destroy with error checking.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xthread.h>
diff --git a/support/xpthread_mutex_init.c b/support/xpthread_mutex_init.c
index 40855954a8..6247599579 100644
--- a/support/xpthread_mutex_init.c
+++ b/support/xpthread_mutex_init.c
@@ -1,5 +1,5 @@
/* pthread_mutex_init with error checking.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xthread.h>
diff --git a/support/xpthread_mutex_lock.c b/support/xpthread_mutex_lock.c
index 4257960aaa..0300117201 100644
--- a/support/xpthread_mutex_lock.c
+++ b/support/xpthread_mutex_lock.c
@@ -1,5 +1,5 @@
/* pthread_mutex_lock with error checking.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xthread.h>
diff --git a/support/xpthread_mutex_unlock.c b/support/xpthread_mutex_unlock.c
index 5c385c6934..d11d66f268 100644
--- a/support/xpthread_mutex_unlock.c
+++ b/support/xpthread_mutex_unlock.c
@@ -1,5 +1,5 @@
/* pthread_mutex_unlock with error checking.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xthread.h>
diff --git a/support/xpthread_mutexattr_destroy.c b/support/xpthread_mutexattr_destroy.c
index f352a7ad93..73410795ba 100644
--- a/support/xpthread_mutexattr_destroy.c
+++ b/support/xpthread_mutexattr_destroy.c
@@ -1,5 +1,5 @@
/* pthread_mutexattr_destroy with error checking.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xthread.h>
diff --git a/support/xpthread_mutexattr_init.c b/support/xpthread_mutexattr_init.c
index fe231581e3..ec6c2b075d 100644
--- a/support/xpthread_mutexattr_init.c
+++ b/support/xpthread_mutexattr_init.c
@@ -1,5 +1,5 @@
/* pthread_mutexattr_init with error checking.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xthread.h>
diff --git a/support/xpthread_mutexattr_setprotocol.c b/support/xpthread_mutexattr_setprotocol.c
index e2f544d38c..42521e81ab 100644
--- a/support/xpthread_mutexattr_setprotocol.c
+++ b/support/xpthread_mutexattr_setprotocol.c
@@ -1,5 +1,5 @@
/* pthread_mutexattr_setprotocol with error checking.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xthread.h>
diff --git a/support/xpthread_mutexattr_setpshared.c b/support/xpthread_mutexattr_setpshared.c
index 2380560d79..64de6db4e7 100644
--- a/support/xpthread_mutexattr_setpshared.c
+++ b/support/xpthread_mutexattr_setpshared.c
@@ -1,5 +1,5 @@
/* pthread_mutexattr_setpshared with error checking.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xthread.h>
diff --git a/support/xpthread_mutexattr_setrobust.c b/support/xpthread_mutexattr_setrobust.c
index 7886c72a77..c200da680d 100644
--- a/support/xpthread_mutexattr_setrobust.c
+++ b/support/xpthread_mutexattr_setrobust.c
@@ -1,5 +1,5 @@
/* pthread_mutexattr_setrobust with error checking.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xthread.h>
diff --git a/support/xpthread_mutexattr_settype.c b/support/xpthread_mutexattr_settype.c
index 91f790c9e5..15c956629f 100644
--- a/support/xpthread_mutexattr_settype.c
+++ b/support/xpthread_mutexattr_settype.c
@@ -1,5 +1,5 @@
/* pthread_mutexattr_settype with error checking.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xthread.h>
diff --git a/support/xpthread_once.c b/support/xpthread_once.c
index b22c1ce3dd..384e09ab34 100644
--- a/support/xpthread_once.c
+++ b/support/xpthread_once.c
@@ -1,5 +1,5 @@
/* pthread_once with error checking.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xthread.h>
diff --git a/support/xpthread_rwlock_destroy.c b/support/xpthread_rwlock_destroy.c
new file mode 100644
index 0000000000..92b0a10039
--- /dev/null
+++ b/support/xpthread_rwlock_destroy.c
@@ -0,0 +1,26 @@
+/* pthread_rwlock_destroy with error checking.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <support/xthread.h>
+
+void
+xpthread_rwlock_destroy (pthread_rwlock_t *rwlock)
+{
+ xpthread_check_return ("pthread_rwlock_destroy",
+ pthread_rwlock_destroy (rwlock));
+}
diff --git a/support/xpthread_rwlock_init.c b/support/xpthread_rwlock_init.c
index e6c38115d8..f7ca2f8eba 100644
--- a/support/xpthread_rwlock_init.c
+++ b/support/xpthread_rwlock_init.c
@@ -1,5 +1,5 @@
/* pthread_rwlock_init with error checking.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xthread.h>
diff --git a/support/xpthread_rwlock_rdlock.c b/support/xpthread_rwlock_rdlock.c
index a88068fc86..0c685b02ca 100644
--- a/support/xpthread_rwlock_rdlock.c
+++ b/support/xpthread_rwlock_rdlock.c
@@ -1,5 +1,5 @@
/* pthread_rwlock_rdlock with error checking.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xthread.h>
diff --git a/support/xpthread_rwlock_unlock.c b/support/xpthread_rwlock_unlock.c
index 7eb282fd18..ef24821397 100644
--- a/support/xpthread_rwlock_unlock.c
+++ b/support/xpthread_rwlock_unlock.c
@@ -1,5 +1,5 @@
/* pthread_rwlock_unlock with error checking.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xthread.h>
diff --git a/support/xpthread_rwlock_wrlock.c b/support/xpthread_rwlock_wrlock.c
index 0de37146c3..859182ebe8 100644
--- a/support/xpthread_rwlock_wrlock.c
+++ b/support/xpthread_rwlock_wrlock.c
@@ -1,5 +1,5 @@
/* pthread_rwlock_wrlock with error checking.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xthread.h>
diff --git a/support/xpthread_rwlockattr_init.c b/support/xpthread_rwlockattr_init.c
index 96ac47d777..3c3efd7eb0 100644
--- a/support/xpthread_rwlockattr_init.c
+++ b/support/xpthread_rwlockattr_init.c
@@ -1,5 +1,5 @@
/* pthread_rwlockattr_init with error checking.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xthread.h>
diff --git a/support/xpthread_rwlockattr_setkind_np.c b/support/xpthread_rwlockattr_setkind_np.c
index 34aa3df0a9..619cab8de5 100644
--- a/support/xpthread_rwlockattr_setkind_np.c
+++ b/support/xpthread_rwlockattr_setkind_np.c
@@ -1,5 +1,5 @@
/* pthread_rwlockattr_setkind_np with error checking.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xthread.h>
diff --git a/support/xpthread_sigmask.c b/support/xpthread_sigmask.c
index 1fb91dcc20..42ce7badd2 100644
--- a/support/xpthread_sigmask.c
+++ b/support/xpthread_sigmask.c
@@ -1,5 +1,5 @@
/* pthread_sigmask with error checking.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xsignal.h>
#include <support/support.h>
diff --git a/support/xpthread_spin_lock.c b/support/xpthread_spin_lock.c
index 4cadbf70f9..29683d97fc 100644
--- a/support/xpthread_spin_lock.c
+++ b/support/xpthread_spin_lock.c
@@ -1,5 +1,5 @@
/* pthread_spin_lock with error checking.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xthread.h>
diff --git a/support/xpthread_spin_unlock.c b/support/xpthread_spin_unlock.c
index 194613993a..0f7eb6e5d6 100644
--- a/support/xpthread_spin_unlock.c
+++ b/support/xpthread_spin_unlock.c
@@ -1,5 +1,5 @@
/* pthread_spin_unlock with error checking.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xthread.h>
diff --git a/support/xptrace.h b/support/xptrace.h
new file mode 100644
index 0000000000..7af8926805
--- /dev/null
+++ b/support/xptrace.h
@@ -0,0 +1,32 @@
+/* Support functions handling ptrace_scope.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef SUPPORT_PTRACE_H
+#define SUPPORT_PTRACE_H
+
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+
+/* Return the current YAMA mode set on the machine (0 to 3) or -1
+ if YAMA is not supported. */
+int support_ptrace_scope (void);
+
+__END_DECLS
+
+#endif
diff --git a/support/xraise.c b/support/xraise.c
index 1901e741eb..dfc3fb7ae4 100644
--- a/support/xraise.c
+++ b/support/xraise.c
@@ -1,5 +1,5 @@
/* Error-checking wrapper for raise.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/check.h>
#include <support/xsignal.h>
diff --git a/support/xreadlink.c b/support/xreadlink.c
index c6386491db..a776971eb6 100644
--- a/support/xreadlink.c
+++ b/support/xreadlink.c
@@ -1,5 +1,5 @@
/* Error-checking, allocating wrapper for readlink.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <scratch_buffer.h>
#include <support/check.h>
diff --git a/support/xrealloc.c b/support/xrealloc.c
index 4d9987c9bb..6af26cc623 100644
--- a/support/xrealloc.c
+++ b/support/xrealloc.c
@@ -1,5 +1,5 @@
/* Error-checking wrapper for realloc.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/support.h>
diff --git a/support/xrecvfrom.c b/support/xrecvfrom.c
index a1011a5062..a57a270ca9 100644
--- a/support/xrecvfrom.c
+++ b/support/xrecvfrom.c
@@ -1,5 +1,5 @@
/* recvfrom with error checking.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xsocket.h>
diff --git a/support/xsendto.c b/support/xsendto.c
index f51530793e..1e21024390 100644
--- a/support/xsendto.c
+++ b/support/xsendto.c
@@ -1,5 +1,5 @@
/* sendto with error checking.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xsocket.h>
diff --git a/support/xsetlocale.c b/support/xsetlocale.c
new file mode 100644
index 0000000000..063ed4b0d6
--- /dev/null
+++ b/support/xsetlocale.c
@@ -0,0 +1,30 @@
+/* setlocale with error checking.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <support/check.h>
+
+#include <locale.h>
+
+char *
+xsetlocale (int category, const char *locale)
+{
+ char *p = setlocale (category, locale);
+ if (p == NULL)
+ FAIL_EXIT1 ("error: setlocale (%d, \"%s\")\n", category, locale);
+ return p;
+}
diff --git a/support/xsetsockopt.c b/support/xsetsockopt.c
index b7c07f21f9..0290ab92a4 100644
--- a/support/xsetsockopt.c
+++ b/support/xsetsockopt.c
@@ -1,5 +1,5 @@
/* setsockopt with error checking.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xsocket.h>
diff --git a/support/xsigaction.c b/support/xsigaction.c
index 51657de2b7..6bae67db88 100644
--- a/support/xsigaction.c
+++ b/support/xsigaction.c
@@ -1,5 +1,5 @@
/* Error-checking wrapper for sigaction.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/check.h>
#include <support/xsignal.h>
diff --git a/support/xsignal.c b/support/xsignal.c
index e7369f0324..f233abc84e 100644
--- a/support/xsignal.c
+++ b/support/xsignal.c
@@ -1,5 +1,5 @@
/* Error-checking wrapper for signal.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/check.h>
#include <support/xsignal.h>
diff --git a/support/xsignal.h b/support/xsignal.h
index 9ab8d1bfdd..2658f92444 100644
--- a/support/xsignal.h
+++ b/support/xsignal.h
@@ -1,5 +1,5 @@
/* Support functionality for using signals.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef SUPPORT_SIGNAL_H
#define SUPPORT_SIGNAL_H
@@ -37,6 +37,23 @@ void xsigaction (int sig, const struct sigaction *newact,
void xpthread_sigmask (int how, const sigset_t *set, sigset_t *oldset);
+/* Allocate and activate an alternate signal stack. This stack will
+ have SIZE + MINSIGSTKSZ bytes of space, rounded up to a whole
+ number of pages. There will be large (at least 1 MiB) inaccessible
+ guard bands on either side of it. The return value is a cookie
+ that can be passed to xfree_sigstack to deactivate and deallocate
+ the stack again. It is not necessary to call sigaltstack after
+ calling this function. Terminates the process on error. */
+void *xalloc_sigstack (size_t size);
+
+/* Deactivate and deallocate a signal stack created by xalloc_sigstack. */
+void xfree_sigstack (void *stack);
+
+/* Extract the actual address and size of the alternate signal stack from
+ the cookie returned by xalloc_sigstack. */
+void xget_sigstack_location (const void *stack, unsigned char **addrp,
+ size_t *sizep);
+
__END_DECLS
#endif /* SUPPORT_SIGNAL_H */
diff --git a/support/xsigstack.c b/support/xsigstack.c
new file mode 100644
index 0000000000..599c393402
--- /dev/null
+++ b/support/xsigstack.c
@@ -0,0 +1,114 @@
+/* sigaltstack wrappers.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <support/xsignal.h>
+#include <support/support.h>
+#include <support/xunistd.h>
+#include <support/check.h>
+
+#include <stdlib.h>
+#include <string.h>
+#include <sys/mman.h>
+#include <sys/param.h> /* roundup, MAX */
+
+#ifndef MAP_NORESERVE
+# define MAP_NORESERVE 0
+#endif
+#ifndef MAP_STACK
+# define MAP_STACK 0
+#endif
+
+/* The "cookie" returned by xalloc_sigstack points to one of these
+ structures. */
+struct sigstack_desc
+{
+ void *alloc_base; /* Base address of the complete allocation. */
+ size_t alloc_size; /* Size of the complete allocation. */
+ stack_t alt_stack; /* The address and size of the stack itself. */
+ stack_t old_stack; /* The previous signal stack. */
+};
+
+void *
+xalloc_sigstack (size_t size)
+{
+ size_t pagesize = sysconf (_SC_PAGESIZE);
+ if (pagesize == -1)
+ FAIL_EXIT1 ("sysconf (_SC_PAGESIZE): %m\n");
+
+ /* Always supply at least MINSIGSTKSZ space; passing 0 as size means
+ only that much space. No matter what the number is, round it up
+ to a whole number of pages. */
+ size_t stacksize = roundup (size + MINSIGSTKSZ, pagesize);
+
+ /* The guard bands need to be large enough to intercept offset
+ accesses from a stack address that might otherwise hit another
+ mapping. Make them at least twice as big as the stack itself, to
+ defend against an offset by the entire size of a large
+ stack-allocated array. The minimum is 1MiB, which is arbitrarily
+ chosen to be larger than any "typical" wild pointer offset.
+ Again, no matter what the number is, round it up to a whole
+ number of pages. */
+ size_t guardsize = roundup (MAX (2 * stacksize, 1024 * 1024), pagesize);
+
+ struct sigstack_desc *desc = xmalloc (sizeof (struct sigstack_desc));
+ desc->alloc_size = guardsize + stacksize + guardsize;
+ /* Use MAP_NORESERVE so that RAM will not be wasted on the guard
+ bands; touch all the pages of the actual stack before returning,
+ so we know they are allocated. */
+ desc->alloc_base = xmmap (0,
+ desc->alloc_size,
+ PROT_READ|PROT_WRITE,
+ MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE|MAP_STACK,
+ -1);
+
+ xmprotect (desc->alloc_base, guardsize, PROT_NONE);
+ xmprotect (desc->alloc_base + guardsize + stacksize, guardsize, PROT_NONE);
+ memset (desc->alloc_base + guardsize, 0xA5, stacksize);
+
+ desc->alt_stack.ss_sp = desc->alloc_base + guardsize;
+ desc->alt_stack.ss_flags = 0;
+ desc->alt_stack.ss_size = stacksize;
+
+ if (sigaltstack (&desc->alt_stack, &desc->old_stack))
+ FAIL_EXIT1 ("sigaltstack (new stack: sp=%p, size=%zu, flags=%u): %m\n",
+ desc->alt_stack.ss_sp, desc->alt_stack.ss_size,
+ desc->alt_stack.ss_flags);
+
+ return desc;
+}
+
+void
+xfree_sigstack (void *stack)
+{
+ struct sigstack_desc *desc = stack;
+
+ if (sigaltstack (&desc->old_stack, 0))
+ FAIL_EXIT1 ("sigaltstack (restore old stack: sp=%p, size=%zu, flags=%u): "
+ "%m\n", desc->old_stack.ss_sp, desc->old_stack.ss_size,
+ desc->old_stack.ss_flags);
+ xmunmap (desc->alloc_base, desc->alloc_size);
+ free (desc);
+}
+
+void
+xget_sigstack_location (const void *stack, unsigned char **addrp, size_t *sizep)
+{
+ const struct sigstack_desc *desc = stack;
+ *addrp = desc->alt_stack.ss_sp;
+ *sizep = desc->alt_stack.ss_size;
+}
diff --git a/support/xsocket.c b/support/xsocket.c
index 20282fb810..76d9e4ce55 100644
--- a/support/xsocket.c
+++ b/support/xsocket.c
@@ -1,5 +1,5 @@
/* socket with error checking.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xsocket.h>
diff --git a/support/xsocket.h b/support/xsocket.h
index 9673abdf54..7ca981802d 100644
--- a/support/xsocket.h
+++ b/support/xsocket.h
@@ -1,5 +1,5 @@
/* Error-checking wrappers for socket functions.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef SUPPORT_XSOCKET_H
#define SUPPORT_XSOCKET_H
diff --git a/support/xspawn.h b/support/xspawn.h
new file mode 100644
index 0000000000..ab129b682d
--- /dev/null
+++ b/support/xspawn.h
@@ -0,0 +1,34 @@
+/* posix_spawn with support checks.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef SUPPORT_XSPAWN_H
+#define SUPPORT_XSPAWN_H
+
+#include <spawn.h>
+
+__BEGIN_DECLS
+
+int xposix_spawn_file_actions_addclose (posix_spawn_file_actions_t *, int);
+int xposix_spawn_file_actions_adddup2 (posix_spawn_file_actions_t *, int, int);
+
+pid_t xposix_spawn (const char *, const posix_spawn_file_actions_t *,
+ const posix_spawnattr_t *, char *const [], char *const []);
+
+__END_DECLS
+
+#endif
diff --git a/support/xstdio.h b/support/xstdio.h
index e7d0274474..e4e52b4c7e 100644
--- a/support/xstdio.h
+++ b/support/xstdio.h
@@ -1,5 +1,5 @@
/* Error-checking wrappers for stdio functions.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef SUPPORT_XSTDIO_H
#define SUPPORT_XSTDIO_H
diff --git a/support/xstrdup.c b/support/xstrdup.c
index 89eee8584e..d793e57695 100644
--- a/support/xstrdup.c
+++ b/support/xstrdup.c
@@ -1,5 +1,5 @@
/* strdup with error checking.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/support.h>
diff --git a/support/xstrndup.c b/support/xstrndup.c
index e85fddd439..5534f23ecc 100644
--- a/support/xstrndup.c
+++ b/support/xstrndup.c
@@ -1,5 +1,5 @@
/* strndup with error checking.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/support.h>
diff --git a/support/xsymlink.c b/support/xsymlink.c
new file mode 100644
index 0000000000..3634f81bd2
--- /dev/null
+++ b/support/xsymlink.c
@@ -0,0 +1,29 @@
+/* Error-checking replacement for "symlink".
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <support/support.h>
+#include <support/check.h>
+
+#include <unistd.h>
+
+void
+xsymlink (const char *target, const char *linkpath)
+{
+ if (symlink (target, linkpath) < 0)
+ FAIL_EXIT1 ("symlink (\"%s\", \"%s\")", target, linkpath);
+}
diff --git a/support/xsysconf.c b/support/xsysconf.c
index afefc2d098..2856beb894 100644
--- a/support/xsysconf.c
+++ b/support/xsysconf.c
@@ -1,5 +1,5 @@
/* Error-checking wrapper for sysconf.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <support/check.h>
diff --git a/support/xthread.h b/support/xthread.h
index 623f5ad0ac..f39720cb23 100644
--- a/support/xthread.h
+++ b/support/xthread.h
@@ -1,5 +1,5 @@
/* Support functionality for using threads.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef SUPPORT_THREAD_H
#define SUPPORT_THREAD_H
@@ -68,11 +68,21 @@ void xpthread_attr_destroy (pthread_attr_t *attr);
void xpthread_attr_init (pthread_attr_t *attr);
void xpthread_attr_setdetachstate (pthread_attr_t *attr,
int detachstate);
+void xpthread_attr_setstack (pthread_attr_t *attr, void *stackaddr,
+ size_t stacksize);
void xpthread_attr_setstacksize (pthread_attr_t *attr,
size_t stacksize);
void xpthread_attr_setguardsize (pthread_attr_t *attr,
size_t guardsize);
+/* Set the stack size in ATTR to a small value, but still large enough
+ to cover most internal glibc stack usage. */
+void support_set_small_thread_stack_size (pthread_attr_t *attr);
+
+/* Return a pointer to a thread attribute which requests a small
+ stack. The caller must not free this pointer. */
+pthread_attr_t *support_small_stack_thread_attribute (void);
+
/* This function returns non-zero if pthread_barrier_wait returned
PTHREAD_BARRIER_SERIAL_THREAD. */
int xpthread_barrier_wait (pthread_barrier_t *barrier);
@@ -84,6 +94,7 @@ void xpthread_rwlockattr_setkind_np (pthread_rwlockattr_t *attr, int pref);
void xpthread_rwlock_wrlock (pthread_rwlock_t *rwlock);
void xpthread_rwlock_rdlock (pthread_rwlock_t *rwlock);
void xpthread_rwlock_unlock (pthread_rwlock_t *rwlock);
+void xpthread_rwlock_destroy (pthread_rwlock_t *rwlock);
__END_DECLS
diff --git a/support/xtime.h b/support/xtime.h
new file mode 100644
index 0000000000..76ff7a4d13
--- /dev/null
+++ b/support/xtime.h
@@ -0,0 +1,43 @@
+/* Support functionality for using time.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef SUPPORT_TIME_H
+#define SUPPORT_TIME_H
+
+#include <time.h>
+
+__BEGIN_DECLS
+
+/* The following functions call the corresponding libc functions and
+ terminate the process on error. */
+
+void xclock_gettime (clockid_t clock, struct timespec *ts);
+
+/* This helper can often simplify tests by avoiding an explicit
+ variable declaration or allowing that declaration to be const. */
+
+static inline struct timespec xclock_now (clockid_t clock)
+{
+ struct timespec ts;
+ xclock_gettime (clock, &ts);
+ return ts;
+}
+
+__END_DECLS
+
+#endif /* SUPPORT_TIME_H */
diff --git a/support/xunistd.h b/support/xunistd.h
index 5fe5dae818..f10e0603cb 100644
--- a/support/xunistd.h
+++ b/support/xunistd.h
@@ -1,5 +1,5 @@
/* POSIX-specific extra functions.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* These wrapper functions use POSIX types and therefore cannot be
declared in <support/support.h>. */
@@ -43,6 +43,10 @@ void xunlink (const char *path);
long xsysconf (int name);
long long xlseek (int fd, long long offset, int whence);
void xftruncate (int fd, long long length);
+void xsymlink (const char *target, const char *linkpath);
+
+/* Equivalent of "mkdir -p". */
+void xmkdirp (const char *, mode_t);
/* Read the link at PATH. The caller should free the returned string
with free. */
@@ -60,6 +64,9 @@ void *xmmap (void *addr, size_t length, int prot, int flags, int fd);
void xmprotect (void *addr, size_t length, int prot);
void xmunmap (void *addr, size_t length);
+ssize_t xcopy_file_range(int fd_in, loff_t *off_in, int fd_out,
+ loff_t *off_out, size_t len, unsigned int flags);
+
__END_DECLS
#endif /* SUPPORT_XUNISTD_H */
diff --git a/support/xunlink.c b/support/xunlink.c
index 2ff9296fca..ff1f9b1479 100644
--- a/support/xunlink.c
+++ b/support/xunlink.c
@@ -1,5 +1,5 @@
/* Error-checking wrapper for unlink.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/check.h>
#include <support/xunistd.h>
diff --git a/support/xwaitpid.c b/support/xwaitpid.c
index 1cb039ca17..658e847191 100644
--- a/support/xwaitpid.c
+++ b/support/xwaitpid.c
@@ -1,5 +1,5 @@
/* waitpid with error checking.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xunistd.h>
diff --git a/support/xwrite.c b/support/xwrite.c
index bbaae9130a..7e3f035448 100644
--- a/support/xwrite.c
+++ b/support/xwrite.c
@@ -1,5 +1,5 @@
/* write with error checking and retries.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <support/xunistd.h>
diff --git a/sysdeps/aarch64/Makefile b/sysdeps/aarch64/Makefile
index 94baaf52dd..9cb141004d 100644
--- a/sysdeps/aarch64/Makefile
+++ b/sysdeps/aarch64/Makefile
@@ -3,6 +3,8 @@ long-double-fcts = yes
ifeq ($(subdir),elf)
sysdep-dl-routines += tlsdesc dl-tlsdesc
gen-as-const-headers += dl-link.sym
+
+tests-internal += tst-ifunc-arg-1 tst-ifunc-arg-2
endif
ifeq ($(subdir),csu)
@@ -16,3 +18,7 @@ endif
ifeq ($(subdir),math)
CPPFLAGS += -I../soft-fp
endif
+
+ifeq ($(subdir),misc)
+sysdep_headers += sys/ifunc.h
+endif
diff --git a/sysdeps/aarch64/__longjmp.S b/sysdeps/aarch64/__longjmp.S
index 3365bd70f9..19b4e33102 100644
--- a/sysdeps/aarch64/__longjmp.S
+++ b/sysdeps/aarch64/__longjmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <jmpbuf-offsets.h>
diff --git a/sysdeps/aarch64/atomic-machine.h b/sysdeps/aarch64/atomic-machine.h
index 63b24e625c..d2d04a10f3 100644
--- a/sysdeps/aarch64/atomic-machine.h
+++ b/sysdeps/aarch64/atomic-machine.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _AARCH64_ATOMIC_MACHINE_H
#define _AARCH64_ATOMIC_MACHINE_H 1
diff --git a/sysdeps/aarch64/bits/endian.h b/sysdeps/aarch64/bits/endian.h
deleted file mode 100644
index 1f18733422..0000000000
--- a/sysdeps/aarch64/bits/endian.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright (C) 1997-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _ENDIAN_H
-# error "Never use <bits/endian.h> directly; include <endian.h> instead."
-#endif
-
-/* AArch64 can be either big or little endian. */
-#ifdef __AARCH64EB__
-# define __BYTE_ORDER __BIG_ENDIAN
-#else
-# define __BYTE_ORDER __LITTLE_ENDIAN
-#endif
-
-#define __FLOAT_WORD_ORDER __BYTE_ORDER
diff --git a/sysdeps/aarch64/bits/endianness.h b/sysdeps/aarch64/bits/endianness.h
new file mode 100644
index 0000000000..300ebc8f9c
--- /dev/null
+++ b/sysdeps/aarch64/bits/endianness.h
@@ -0,0 +1,15 @@
+#ifndef _BITS_ENDIANNESS_H
+#define _BITS_ENDIANNESS_H 1
+
+#ifndef _BITS_ENDIAN_H
+# error "Never use <bits/endianness.h> directly; include <endian.h> instead."
+#endif
+
+/* AArch64 has selectable endianness. */
+#ifdef __AARCH64EB__
+# define __BYTE_ORDER __BIG_ENDIAN
+#else
+# define __BYTE_ORDER __LITTLE_ENDIAN
+#endif
+
+#endif /* bits/endianness.h */
diff --git a/sysdeps/aarch64/bits/fenv.h b/sysdeps/aarch64/bits/fenv.h
index 8a0f481f79..58e884b334 100644
--- a/sysdeps/aarch64/bits/fenv.h
+++ b/sysdeps/aarch64/bits/fenv.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FENV_H
# error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
@@ -73,7 +73,7 @@ fenv_t;
# define FE_NOMASK_ENV ((const fenv_t *) -2)
#endif
-#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/sysdeps/aarch64/bits/fp-fast.h b/sysdeps/aarch64/bits/fp-fast.h
index 3ce12210b7..23e6cb3894 100644
--- a/sysdeps/aarch64/bits/fp-fast.h
+++ b/sysdeps/aarch64/bits/fp-fast.h
@@ -1,5 +1,5 @@
/* Define FP_FAST_* macros. AArch64 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MATH_H
# error "Never use <bits/fp-fast.h> directly; include <math.h> instead."
diff --git a/sysdeps/aarch64/bits/link.h b/sysdeps/aarch64/bits/link.h
index 5a7fc1ccd4..2513cc3b1e 100644
--- a/sysdeps/aarch64/bits/link.h
+++ b/sysdeps/aarch64/bits/link.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LINK_H
# error "Never include <bits/link.h> directly; use <link.h> instead."
diff --git a/sysdeps/aarch64/bits/setjmp.h b/sysdeps/aarch64/bits/setjmp.h
index 1685f1076a..7070fd5a8c 100644
--- a/sysdeps/aarch64/bits/setjmp.h
+++ b/sysdeps/aarch64/bits/setjmp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_SETJMP_H
#define _BITS_SETJMP_H 1
diff --git a/sysdeps/aarch64/bits/wordsize.h b/sysdeps/aarch64/bits/wordsize.h
index ea7eecdf92..6839a20e21 100644
--- a/sysdeps/aarch64/bits/wordsize.h
+++ b/sysdeps/aarch64/bits/wordsize.h
@@ -1,6 +1,6 @@
/* Determine the wordsize from the preprocessor defines.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifdef __LP64__
# define __WORDSIZE 64
diff --git a/sysdeps/aarch64/crti.S b/sysdeps/aarch64/crti.S
index 2b213758b2..91164db52e 100644
--- a/sysdeps/aarch64/crti.S
+++ b/sysdeps/aarch64/crti.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for AArch64.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -32,7 +32,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* crti.S puts a function prologue at the beginning of the .init and
.fini sections and defines global symbols for those addresses, so
diff --git a/sysdeps/aarch64/crtn.S b/sysdeps/aarch64/crtn.S
index d72300af80..2a0debb8d6 100644
--- a/sysdeps/aarch64/crtn.S
+++ b/sysdeps/aarch64/crtn.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for AArch64.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -32,7 +32,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* crtn.S puts function epilogues in the .init and .fini sections
corresponding to the prologues in crti.S. */
diff --git a/sysdeps/aarch64/dl-dtprocnum.h b/sysdeps/aarch64/dl-dtprocnum.h
new file mode 100644
index 0000000000..f72cf2a679
--- /dev/null
+++ b/sysdeps/aarch64/dl-dtprocnum.h
@@ -0,0 +1,21 @@
+/* Configuration of lookup functions. AArch64 version.
+ 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. If not, see
+ <https://www.gnu.org/licenses/>. */
+
+/* Number of extra dynamic section entries for this architecture. By
+ default there are none. */
+#define DT_THISPROCNUM DT_AARCH64_NUM
diff --git a/sysdeps/aarch64/dl-irel.h b/sysdeps/aarch64/dl-irel.h
index 5889ee187b..ffe84dc3c5 100644
--- a/sysdeps/aarch64/dl-irel.h
+++ b/sysdeps/aarch64/dl-irel.h
@@ -1,6 +1,6 @@
/* Machine-dependent ELF indirect relocation inline functions.
AArch64 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DL_IREL_H
#define _DL_IREL_H
@@ -24,6 +24,7 @@
#include <unistd.h>
#include <ldsodefs.h>
#include <sysdep.h>
+#include <sys/ifunc.h>
#define ELF_MACHINE_IRELA 1
@@ -31,7 +32,13 @@ static inline ElfW(Addr)
__attribute ((always_inline))
elf_ifunc_invoke (ElfW(Addr) addr)
{
- return ((ElfW(Addr) (*) (uint64_t)) (addr)) (GLRO(dl_hwcap));
+ __ifunc_arg_t arg;
+
+ arg._size = sizeof (arg);
+ arg._hwcap = GLRO(dl_hwcap);
+ arg._hwcap2 = GLRO(dl_hwcap2);
+ return ((ElfW(Addr) (*) (uint64_t, const __ifunc_arg_t *)) (addr))
+ (GLRO(dl_hwcap) | _IFUNC_ARG_HWCAP, &arg);
}
static inline void
@@ -47,7 +54,7 @@ elf_irela (const ElfW(Rela) *reloc)
*reloc_addr = value;
}
else
- __libc_fatal ("unexpected reloc type in static binary");
+ __libc_fatal ("Unexpected reloc type in static binary.\n");
}
#endif
diff --git a/sysdeps/aarch64/dl-machine.h b/sysdeps/aarch64/dl-machine.h
index 4935aa7c54..bf6b9d0e7d 100644
--- a/sysdeps/aarch64/dl-machine.h
+++ b/sysdeps/aarch64/dl-machine.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef dl_machine_h
#define dl_machine_h
@@ -27,6 +27,9 @@
#include <dl-irel.h>
#include <cpu-features.c>
+/* Translate a processor specific dynamic tag to the index in l_info array. */
+#define DT_AARCH64(x) (DT_AARCH64_##x - DT_LOPROC + DT_NUM)
+
/* Return nonzero iff ELF header is compatible with the running host. */
static inline int __attribute__ ((unused))
elf_machine_matches_host (const ElfW(Ehdr) *ehdr)
@@ -355,7 +358,8 @@ elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc,
case AARCH64_R(IRELATIVE):
value = map->l_addr + reloc->r_addend;
- value = elf_ifunc_invoke (value);
+ if (__glibc_likely (!skip_ifunc))
+ value = elf_ifunc_invoke (value);
*reloc_addr = value;
break;
@@ -388,10 +392,37 @@ elf_machine_lazy_rel (struct link_map *map,
/* Check for unexpected PLT reloc type. */
if (__builtin_expect (r_type == AARCH64_R(JUMP_SLOT), 1))
{
- if (__builtin_expect (map->l_mach.plt, 0) == 0)
- *reloc_addr += l_addr;
- else
- *reloc_addr = map->l_mach.plt;
+ if (map->l_mach.plt == 0)
+ {
+ /* Prelinking. */
+ *reloc_addr += l_addr;
+ return;
+ }
+
+ if (__glibc_unlikely (map->l_info[DT_AARCH64 (VARIANT_PCS)] != NULL))
+ {
+ /* Check the symbol table for variant PCS symbols. */
+ const Elf_Symndx symndx = ELFW (R_SYM) (reloc->r_info);
+ const ElfW (Sym) *symtab =
+ (const void *)D_PTR (map, l_info[DT_SYMTAB]);
+ const ElfW (Sym) *sym = &symtab[symndx];
+ if (__glibc_unlikely (sym->st_other & STO_AARCH64_VARIANT_PCS))
+ {
+ /* Avoid lazy resolution of variant PCS symbols. */
+ const struct r_found_version *version = NULL;
+ if (map->l_info[VERSYMIDX (DT_VERSYM)] != NULL)
+ {
+ const ElfW (Half) *vernum =
+ (const void *)D_PTR (map, l_info[VERSYMIDX (DT_VERSYM)]);
+ version = &map->l_versions[vernum[symndx] & 0x7fff];
+ }
+ elf_machine_rela (map, reloc, sym, version, reloc_addr,
+ skip_ifunc);
+ return;
+ }
+ }
+
+ *reloc_addr = map->l_mach.plt;
}
else if (__builtin_expect (r_type == AARCH64_R(TLSDESC), 1))
{
diff --git a/sysdeps/aarch64/dl-sysdep.h b/sysdeps/aarch64/dl-sysdep.h
index a0e6a2eed1..1acc127f78 100644
--- a/sysdeps/aarch64/dl-sysdep.h
+++ b/sysdeps/aarch64/dl-sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include_next <dl-sysdep.h>
diff --git a/sysdeps/aarch64/dl-tls.h b/sysdeps/aarch64/dl-tls.h
index 153fded939..ed481ccfef 100644
--- a/sysdeps/aarch64/dl-tls.h
+++ b/sysdeps/aarch64/dl-tls.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Type used for the representation of TLS information in the GOT. */
typedef struct
diff --git a/sysdeps/aarch64/dl-tlsdesc.S b/sysdeps/aarch64/dl-tlsdesc.S
index 43a62ef307..2fdaa8ee77 100644
--- a/sysdeps/aarch64/dl-tlsdesc.S
+++ b/sysdeps/aarch64/dl-tlsdesc.S
@@ -1,6 +1,6 @@
/* Thread-local storage handling in the ELF dynamic linker.
AArch64 version.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <tls.h>
diff --git a/sysdeps/aarch64/dl-tlsdesc.h b/sysdeps/aarch64/dl-tlsdesc.h
index 6dc80ad66c..af4a42255a 100644
--- a/sysdeps/aarch64/dl-tlsdesc.h
+++ b/sysdeps/aarch64/dl-tlsdesc.h
@@ -1,6 +1,6 @@
/* Thread-local storage descriptor handling in the ELF dynamic linker.
AArch64 version.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _AARCH64_DL_TLSDESC_H
#define _AARCH64_DL_TLSDESC_H 1
diff --git a/sysdeps/aarch64/dl-trampoline.S b/sysdeps/aarch64/dl-trampoline.S
index a86d0722d4..721735388a 100644
--- a/sysdeps/aarch64/dl-trampoline.S
+++ b/sysdeps/aarch64/dl-trampoline.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <libc-symbols.h>
diff --git a/sysdeps/aarch64/dl-tunables.list b/sysdeps/aarch64/dl-tunables.list
index f6a88168cc..3438c4d6c8 100644
--- a/sysdeps/aarch64/dl-tunables.list
+++ b/sysdeps/aarch64/dl-tunables.list
@@ -1,5 +1,5 @@
# aarch64 specific tunables.
-# Copyright (C) 2017-2018 Free Software Foundation, Inc.
+# Copyright (C) 2017-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
@@ -14,11 +14,11 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
glibc {
- tune {
- cpu {
+ cpu {
+ name {
type: STRING
}
}
diff --git a/sysdeps/aarch64/e_sqrtl.c b/sysdeps/aarch64/e_sqrtl.c
index 1dc1cbf003..00dfd3d973 100644
--- a/sysdeps/aarch64/e_sqrtl.c
+++ b/sysdeps/aarch64/e_sqrtl.c
@@ -1,5 +1,5 @@
/* long double square root in software floating-point emulation.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include <soft-fp.h>
diff --git a/sysdeps/aarch64/fpu/e_sqrt.c b/sysdeps/aarch64/fpu/e_sqrt.c
index 32f1e26803..6fc031f151 100644
--- a/sysdeps/aarch64/fpu/e_sqrt.c
+++ b/sysdeps/aarch64/fpu/e_sqrt.c
@@ -1,5 +1,5 @@
/* Square root of floating point number.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math_private.h>
diff --git a/sysdeps/aarch64/fpu/e_sqrtf.c b/sysdeps/aarch64/fpu/e_sqrtf.c
index 87f557cb10..14484cab96 100644
--- a/sysdeps/aarch64/fpu/e_sqrtf.c
+++ b/sysdeps/aarch64/fpu/e_sqrtf.c
@@ -1,5 +1,5 @@
/* Single-precision floating point square root.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math_private.h>
diff --git a/sysdeps/aarch64/fpu/fclrexcpt.c b/sysdeps/aarch64/fpu/fclrexcpt.c
index 9328518f1e..016716f74b 100644
--- a/sysdeps/aarch64/fpu/fclrexcpt.c
+++ b/sysdeps/aarch64/fpu/fclrexcpt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/aarch64/fpu/fedisblxcpt.c b/sysdeps/aarch64/fpu/fedisblxcpt.c
index 125751f8b4..16e6eff253 100644
--- a/sysdeps/aarch64/fpu/fedisblxcpt.c
+++ b/sysdeps/aarch64/fpu/fedisblxcpt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/aarch64/fpu/feenablxcpt.c b/sysdeps/aarch64/fpu/feenablxcpt.c
index 6c72b42fc9..4ef0ccf1f3 100644
--- a/sysdeps/aarch64/fpu/feenablxcpt.c
+++ b/sysdeps/aarch64/fpu/feenablxcpt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/aarch64/fpu/fegetenv.c b/sysdeps/aarch64/fpu/fegetenv.c
index 1559e90977..f4ccf2aafe 100644
--- a/sysdeps/aarch64/fpu/fegetenv.c
+++ b/sysdeps/aarch64/fpu/fegetenv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/aarch64/fpu/fegetexcept.c b/sysdeps/aarch64/fpu/fegetexcept.c
index 1f994ead0d..31b0dd5a21 100644
--- a/sysdeps/aarch64/fpu/fegetexcept.c
+++ b/sysdeps/aarch64/fpu/fegetexcept.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/aarch64/fpu/fegetmode.c b/sysdeps/aarch64/fpu/fegetmode.c
index 65dcb22d89..267af3e864 100644
--- a/sysdeps/aarch64/fpu/fegetmode.c
+++ b/sysdeps/aarch64/fpu/fegetmode.c
@@ -1,5 +1,5 @@
/* Store current floating-point control modes. AArch64 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/aarch64/fpu/fegetround.c b/sysdeps/aarch64/fpu/fegetround.c
index 10082eed90..33c269c588 100644
--- a/sysdeps/aarch64/fpu/fegetround.c
+++ b/sysdeps/aarch64/fpu/fegetround.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <get-rounding-mode.h>
diff --git a/sysdeps/aarch64/fpu/feholdexcpt.c b/sysdeps/aarch64/fpu/feholdexcpt.c
index 4f7a58e379..33f7517881 100644
--- a/sysdeps/aarch64/fpu/feholdexcpt.c
+++ b/sysdeps/aarch64/fpu/feholdexcpt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -14,10 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
-#include <math_private.h>
+#include <fenv_private.h>
int
__feholdexcept (fenv_t *envp)
diff --git a/sysdeps/aarch64/fpu/fenv_private.h b/sysdeps/aarch64/fpu/fenv_private.h
new file mode 100644
index 0000000000..dd5e849af3
--- /dev/null
+++ b/sysdeps/aarch64/fpu/fenv_private.h
@@ -0,0 +1,303 @@
+/* Private floating point rounding and exceptions handling. AArch64 version.
+ Copyright (C) 2014-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef AARCH64_FENV_PRIVATE_H
+#define AARCH64_FENV_PRIVATE_H 1
+
+#include <fenv.h>
+#include <fpu_control.h>
+
+static __always_inline void
+libc_feholdexcept_aarch64 (fenv_t *envp)
+{
+ fpu_control_t fpcr;
+ fpu_control_t new_fpcr;
+ fpu_fpsr_t fpsr;
+ fpu_fpsr_t new_fpsr;
+
+ _FPU_GETCW (fpcr);
+ _FPU_GETFPSR (fpsr);
+ envp->__fpcr = fpcr;
+ envp->__fpsr = fpsr;
+
+ /* Clear exception flags and set all exceptions to non-stop. */
+ new_fpcr = fpcr & ~(FE_ALL_EXCEPT << FE_EXCEPT_SHIFT);
+ new_fpsr = fpsr & ~FE_ALL_EXCEPT;
+
+ if (__glibc_unlikely (new_fpcr != fpcr))
+ _FPU_SETCW (new_fpcr);
+
+ if (new_fpsr != fpsr)
+ _FPU_SETFPSR (new_fpsr);
+}
+
+#define libc_feholdexcept libc_feholdexcept_aarch64
+#define libc_feholdexceptf libc_feholdexcept_aarch64
+#define libc_feholdexceptl libc_feholdexcept_aarch64
+
+static __always_inline void
+libc_fesetround_aarch64 (int round)
+{
+ fpu_control_t fpcr;
+
+ _FPU_GETCW (fpcr);
+
+ /* Check whether rounding modes are different. */
+ round = (fpcr ^ round) & _FPU_FPCR_RM_MASK;
+
+ /* Set new rounding mode if different. */
+ if (__glibc_unlikely (round != 0))
+ _FPU_SETCW (fpcr ^ round);
+}
+
+#define libc_fesetround libc_fesetround_aarch64
+#define libc_fesetroundf libc_fesetround_aarch64
+#define libc_fesetroundl libc_fesetround_aarch64
+
+static __always_inline void
+libc_feholdexcept_setround_aarch64 (fenv_t *envp, int round)
+{
+ fpu_control_t fpcr;
+ fpu_control_t new_fpcr;
+ fpu_fpsr_t fpsr;
+ fpu_fpsr_t new_fpsr;
+
+ _FPU_GETCW (fpcr);
+ _FPU_GETFPSR (fpsr);
+ envp->__fpcr = fpcr;
+ envp->__fpsr = fpsr;
+
+ /* Clear exception flags, set all exceptions to non-stop,
+ and set new rounding mode. */
+ new_fpcr = fpcr & ~((FE_ALL_EXCEPT << FE_EXCEPT_SHIFT) | _FPU_FPCR_RM_MASK);
+ new_fpcr |= round;
+ new_fpsr = fpsr & ~FE_ALL_EXCEPT;
+
+ if (__glibc_unlikely (new_fpcr != fpcr))
+ _FPU_SETCW (new_fpcr);
+
+ if (new_fpsr != fpsr)
+ _FPU_SETFPSR (new_fpsr);
+}
+
+#define libc_feholdexcept_setround libc_feholdexcept_setround_aarch64
+#define libc_feholdexcept_setroundf libc_feholdexcept_setround_aarch64
+#define libc_feholdexcept_setroundl libc_feholdexcept_setround_aarch64
+
+static __always_inline int
+libc_fetestexcept_aarch64 (int ex)
+{
+ fpu_fpsr_t fpsr;
+
+ _FPU_GETFPSR (fpsr);
+ return fpsr & ex & FE_ALL_EXCEPT;
+}
+
+#define libc_fetestexcept libc_fetestexcept_aarch64
+#define libc_fetestexceptf libc_fetestexcept_aarch64
+#define libc_fetestexceptl libc_fetestexcept_aarch64
+
+static __always_inline void
+libc_fesetenv_aarch64 (const fenv_t *envp)
+{
+ fpu_control_t fpcr;
+ fpu_control_t new_fpcr;
+
+ _FPU_GETCW (fpcr);
+ new_fpcr = envp->__fpcr;
+
+ if (__glibc_unlikely (fpcr != new_fpcr))
+ _FPU_SETCW (new_fpcr);
+
+ _FPU_SETFPSR (envp->__fpsr);
+}
+
+#define libc_fesetenv libc_fesetenv_aarch64
+#define libc_fesetenvf libc_fesetenv_aarch64
+#define libc_fesetenvl libc_fesetenv_aarch64
+#define libc_feresetround_noex libc_fesetenv_aarch64
+#define libc_feresetround_noexf libc_fesetenv_aarch64
+#define libc_feresetround_noexl libc_fesetenv_aarch64
+
+static __always_inline int
+libc_feupdateenv_test_aarch64 (const fenv_t *envp, int ex)
+{
+ fpu_control_t fpcr;
+ fpu_control_t new_fpcr;
+ fpu_fpsr_t fpsr;
+ fpu_fpsr_t new_fpsr;
+ int excepts;
+
+ _FPU_GETCW (fpcr);
+ _FPU_GETFPSR (fpsr);
+
+ /* Merge current exception flags with the saved fenv. */
+ excepts = fpsr & FE_ALL_EXCEPT;
+ new_fpcr = envp->__fpcr;
+ new_fpsr = envp->__fpsr | excepts;
+
+ if (__glibc_unlikely (fpcr != new_fpcr))
+ _FPU_SETCW (new_fpcr);
+
+ if (fpsr != new_fpsr)
+ _FPU_SETFPSR (new_fpsr);
+
+ /* Raise the exceptions if enabled in the new FP state. */
+ if (__glibc_unlikely (excepts & (new_fpcr >> FE_EXCEPT_SHIFT)))
+ __feraiseexcept (excepts);
+
+ return excepts & ex;
+}
+
+#define libc_feupdateenv_test libc_feupdateenv_test_aarch64
+#define libc_feupdateenv_testf libc_feupdateenv_test_aarch64
+#define libc_feupdateenv_testl libc_feupdateenv_test_aarch64
+
+static __always_inline void
+libc_feupdateenv_aarch64 (const fenv_t *envp)
+{
+ libc_feupdateenv_test_aarch64 (envp, 0);
+}
+
+#define libc_feupdateenv libc_feupdateenv_aarch64
+#define libc_feupdateenvf libc_feupdateenv_aarch64
+#define libc_feupdateenvl libc_feupdateenv_aarch64
+
+static __always_inline void
+libc_feholdsetround_aarch64 (fenv_t *envp, int round)
+{
+ fpu_control_t fpcr;
+ fpu_fpsr_t fpsr;
+
+ _FPU_GETCW (fpcr);
+ _FPU_GETFPSR (fpsr);
+ envp->__fpcr = fpcr;
+ envp->__fpsr = fpsr;
+
+ /* Check whether rounding modes are different. */
+ round = (fpcr ^ round) & _FPU_FPCR_RM_MASK;
+
+ /* Set new rounding mode if different. */
+ if (__glibc_unlikely (round != 0))
+ _FPU_SETCW (fpcr ^ round);
+}
+
+#define libc_feholdsetround libc_feholdsetround_aarch64
+#define libc_feholdsetroundf libc_feholdsetround_aarch64
+#define libc_feholdsetroundl libc_feholdsetround_aarch64
+
+static __always_inline void
+libc_feresetround_aarch64 (fenv_t *envp)
+{
+ fpu_control_t fpcr;
+ int round;
+
+ _FPU_GETCW (fpcr);
+
+ /* Check whether rounding modes are different. */
+ round = (envp->__fpcr ^ fpcr) & _FPU_FPCR_RM_MASK;
+
+ /* Restore the rounding mode if it was changed. */
+ if (__glibc_unlikely (round != 0))
+ _FPU_SETCW (fpcr ^ round);
+}
+
+#define libc_feresetround libc_feresetround_aarch64
+#define libc_feresetroundf libc_feresetround_aarch64
+#define libc_feresetroundl libc_feresetround_aarch64
+
+/* We have support for rounding mode context. */
+#define HAVE_RM_CTX 1
+
+static __always_inline void
+libc_feholdsetround_aarch64_ctx (struct rm_ctx *ctx, int r)
+{
+ fpu_control_t fpcr;
+ int round;
+
+ _FPU_GETCW (fpcr);
+ ctx->env.__fpcr = fpcr;
+
+ /* Check whether rounding modes are different. */
+ round = (fpcr ^ r) & _FPU_FPCR_RM_MASK;
+ ctx->updated_status = round != 0;
+
+ /* Set the rounding mode if changed. */
+ if (__glibc_unlikely (round != 0))
+ _FPU_SETCW (fpcr ^ round);
+}
+
+#define libc_feholdsetround_ctx libc_feholdsetround_aarch64_ctx
+#define libc_feholdsetroundf_ctx libc_feholdsetround_aarch64_ctx
+#define libc_feholdsetroundl_ctx libc_feholdsetround_aarch64_ctx
+
+static __always_inline void
+libc_feresetround_aarch64_ctx (struct rm_ctx *ctx)
+{
+ /* Restore the rounding mode if updated. */
+ if (__glibc_unlikely (ctx->updated_status))
+ _FPU_SETCW (ctx->env.__fpcr);
+}
+
+#define libc_feresetround_ctx libc_feresetround_aarch64_ctx
+#define libc_feresetroundf_ctx libc_feresetround_aarch64_ctx
+#define libc_feresetroundl_ctx libc_feresetround_aarch64_ctx
+
+static __always_inline void
+libc_feholdsetround_noex_aarch64_ctx (struct rm_ctx *ctx, int r)
+{
+ fpu_control_t fpcr;
+ fpu_fpsr_t fpsr;
+ int round;
+
+ _FPU_GETCW (fpcr);
+ _FPU_GETFPSR (fpsr);
+ ctx->env.__fpcr = fpcr;
+ ctx->env.__fpsr = fpsr;
+
+ /* Check whether rounding modes are different. */
+ round = (fpcr ^ r) & _FPU_FPCR_RM_MASK;
+ ctx->updated_status = round != 0;
+
+ /* Set the rounding mode if changed. */
+ if (__glibc_unlikely (round != 0))
+ _FPU_SETCW (fpcr ^ round);
+}
+
+#define libc_feholdsetround_noex_ctx libc_feholdsetround_noex_aarch64_ctx
+#define libc_feholdsetround_noexf_ctx libc_feholdsetround_noex_aarch64_ctx
+#define libc_feholdsetround_noexl_ctx libc_feholdsetround_noex_aarch64_ctx
+
+static __always_inline void
+libc_feresetround_noex_aarch64_ctx (struct rm_ctx *ctx)
+{
+ /* Restore the rounding mode if updated. */
+ if (__glibc_unlikely (ctx->updated_status))
+ _FPU_SETCW (ctx->env.__fpcr);
+
+ /* Write new FPSR to restore exception flags. */
+ _FPU_SETFPSR (ctx->env.__fpsr);
+}
+
+#define libc_feresetround_noex_ctx libc_feresetround_noex_aarch64_ctx
+#define libc_feresetround_noexf_ctx libc_feresetround_noex_aarch64_ctx
+#define libc_feresetround_noexl_ctx libc_feresetround_noex_aarch64_ctx
+
+#include_next <fenv_private.h>
+
+#endif
diff --git a/sysdeps/aarch64/fpu/fesetenv.c b/sysdeps/aarch64/fpu/fesetenv.c
index 2a63cf0c96..1cab2ac7d8 100644
--- a/sysdeps/aarch64/fpu/fesetenv.c
+++ b/sysdeps/aarch64/fpu/fesetenv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/aarch64/fpu/fesetexcept.c b/sysdeps/aarch64/fpu/fesetexcept.c
index c97a38b483..856e7ce212 100644
--- a/sysdeps/aarch64/fpu/fesetexcept.c
+++ b/sysdeps/aarch64/fpu/fesetexcept.c
@@ -1,5 +1,5 @@
/* Set given exception flags. AArch64 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/aarch64/fpu/fesetmode.c b/sysdeps/aarch64/fpu/fesetmode.c
index 6f6b8c197d..818b75ba99 100644
--- a/sysdeps/aarch64/fpu/fesetmode.c
+++ b/sysdeps/aarch64/fpu/fesetmode.c
@@ -1,5 +1,5 @@
/* Install given floating-point control modes. AArch64 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/aarch64/fpu/fesetround.c b/sysdeps/aarch64/fpu/fesetround.c
index 4c2ed3d7ac..8b3501702f 100644
--- a/sysdeps/aarch64/fpu/fesetround.c
+++ b/sysdeps/aarch64/fpu/fesetround.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -14,10 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
-#include <math_private.h>
+#include <fenv_private.h>
#include <fpu_control.h>
int
diff --git a/sysdeps/aarch64/fpu/feupdateenv.c b/sysdeps/aarch64/fpu/feupdateenv.c
index 2aaf5d13cd..dafbc37dcc 100644
--- a/sysdeps/aarch64/fpu/feupdateenv.c
+++ b/sysdeps/aarch64/fpu/feupdateenv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/aarch64/fpu/fgetexcptflg.c b/sysdeps/aarch64/fpu/fgetexcptflg.c
index cfc7113e04..1ab1d21c67 100644
--- a/sysdeps/aarch64/fpu/fgetexcptflg.c
+++ b/sysdeps/aarch64/fpu/fgetexcptflg.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -14,10 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
-#include <math_private.h>
+#include <fenv_private.h>
int
fegetexceptflag (fexcept_t *flagp, int excepts)
diff --git a/sysdeps/aarch64/fpu/fpu_control.h b/sysdeps/aarch64/fpu/fpu_control.h
index 2d36170c05..6bd3953084 100644
--- a/sysdeps/aarch64/fpu/fpu_control.h
+++ b/sysdeps/aarch64/fpu/fpu_control.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _AARCH64_FPU_CONTROL_H
#define _AARCH64_FPU_CONTROL_H
@@ -75,9 +75,9 @@
#define _FPU_FPCR_MASK_IOE 0x0100
#define _FPU_FPCR_IEEE \
- (_FPU_DEFAULT | _FPU_FPCR_MASK_IXE | \
- _FPU_FPCR_MASK_UFE | _FPU_FPCR_MASK_OFE | \
- _FPU_FPCR_MASK_DZE | _FPU_FPCR_MASK_IOE)
+ (_FPU_DEFAULT | _FPU_FPCR_MASK_IXE \
+ | _FPU_FPCR_MASK_UFE | _FPU_FPCR_MASK_OFE \
+ | _FPU_FPCR_MASK_DZE | _FPU_FPCR_MASK_IOE)
#define _FPU_FPSR_IEEE 0
diff --git a/sysdeps/aarch64/fpu/fraiseexcpt.c b/sysdeps/aarch64/fpu/fraiseexcpt.c
index bc26156323..4636c55c18 100644
--- a/sysdeps/aarch64/fpu/fraiseexcpt.c
+++ b/sysdeps/aarch64/fpu/fraiseexcpt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/aarch64/fpu/fsetexcptflg.c b/sysdeps/aarch64/fpu/fsetexcptflg.c
index 45d96af7e9..5f837a67b3 100644
--- a/sysdeps/aarch64/fpu/fsetexcptflg.c
+++ b/sysdeps/aarch64/fpu/fsetexcptflg.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/aarch64/fpu/ftestexcept.c b/sysdeps/aarch64/fpu/ftestexcept.c
index 84223259c8..2ecff9d0d3 100644
--- a/sysdeps/aarch64/fpu/ftestexcept.c
+++ b/sysdeps/aarch64/fpu/ftestexcept.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -14,10 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
-#include <math_private.h>
+#include <fenv_private.h>
int
fetestexcept (int excepts)
diff --git a/sysdeps/aarch64/fpu/get-rounding-mode.h b/sysdeps/aarch64/fpu/get-rounding-mode.h
index ab29c5b908..3a95f07429 100644
--- a/sysdeps/aarch64/fpu/get-rounding-mode.h
+++ b/sysdeps/aarch64/fpu/get-rounding-mode.h
@@ -1,6 +1,6 @@
/* Determine floating-point rounding mode within libc. AArch64 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _AARCH64_GET_ROUNDING_MODE_H
#define _AARCH64_GET_ROUNDING_MODE_H 1
diff --git a/sysdeps/aarch64/fpu/math-barriers.h b/sysdeps/aarch64/fpu/math-barriers.h
index 7db937bbf4..8a8c0014e9 100644
--- a/sysdeps/aarch64/fpu/math-barriers.h
+++ b/sysdeps/aarch64/fpu/math-barriers.h
@@ -1,5 +1,5 @@
/* Control when floating-point expressions are evaluated. AArch64 version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef AARCH64_MATH_BARRIERS_H
#define AARCH64_MATH_BARRIERS_H 1
diff --git a/sysdeps/aarch64/fpu/math_private.h b/sysdeps/aarch64/fpu/math_private.h
index fcd02c0654..c2a690dfd6 100644
--- a/sysdeps/aarch64/fpu/math_private.h
+++ b/sysdeps/aarch64/fpu/math_private.h
@@ -1,5 +1,5 @@
-/* Private floating point rounding and exceptions handling. AArch64 version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+/* Configure optimized libm functions. AArch64 version.
+ Copyright (C) 2017-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
@@ -14,309 +14,28 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef AARCH64_MATH_PRIVATE_H
#define AARCH64_MATH_PRIVATE_H 1
-#include <fenv.h>
-#include <fpu_control.h>
+#include <stdint.h>
+#include <math.h>
-static __always_inline void
-libc_feholdexcept_aarch64 (fenv_t *envp)
-{
- fpu_control_t fpcr;
- fpu_control_t new_fpcr;
- fpu_fpsr_t fpsr;
- fpu_fpsr_t new_fpsr;
-
- _FPU_GETCW (fpcr);
- _FPU_GETFPSR (fpsr);
- envp->__fpcr = fpcr;
- envp->__fpsr = fpsr;
-
- /* Clear exception flags and set all exceptions to non-stop. */
- new_fpcr = fpcr & ~(FE_ALL_EXCEPT << FE_EXCEPT_SHIFT);
- new_fpsr = fpsr & ~FE_ALL_EXCEPT;
-
- if (__glibc_unlikely (new_fpcr != fpcr))
- _FPU_SETCW (new_fpcr);
-
- if (new_fpsr != fpsr)
- _FPU_SETFPSR (new_fpsr);
-}
-
-#define libc_feholdexcept libc_feholdexcept_aarch64
-#define libc_feholdexceptf libc_feholdexcept_aarch64
-#define libc_feholdexceptl libc_feholdexcept_aarch64
-
-static __always_inline void
-libc_fesetround_aarch64 (int round)
-{
- fpu_control_t fpcr;
-
- _FPU_GETCW (fpcr);
-
- /* Check whether rounding modes are different. */
- round = (fpcr ^ round) & _FPU_FPCR_RM_MASK;
-
- /* Set new rounding mode if different. */
- if (__glibc_unlikely (round != 0))
- _FPU_SETCW (fpcr ^ round);
-}
-
-#define libc_fesetround libc_fesetround_aarch64
-#define libc_fesetroundf libc_fesetround_aarch64
-#define libc_fesetroundl libc_fesetround_aarch64
-
-static __always_inline void
-libc_feholdexcept_setround_aarch64 (fenv_t *envp, int round)
-{
- fpu_control_t fpcr;
- fpu_control_t new_fpcr;
- fpu_fpsr_t fpsr;
- fpu_fpsr_t new_fpsr;
-
- _FPU_GETCW (fpcr);
- _FPU_GETFPSR (fpsr);
- envp->__fpcr = fpcr;
- envp->__fpsr = fpsr;
-
- /* Clear exception flags, set all exceptions to non-stop,
- and set new rounding mode. */
- new_fpcr = fpcr & ~((FE_ALL_EXCEPT << FE_EXCEPT_SHIFT) | _FPU_FPCR_RM_MASK);
- new_fpcr |= round;
- new_fpsr = fpsr & ~FE_ALL_EXCEPT;
-
- if (__glibc_unlikely (new_fpcr != fpcr))
- _FPU_SETCW (new_fpcr);
-
- if (new_fpsr != fpsr)
- _FPU_SETFPSR (new_fpsr);
-}
-
-#define libc_feholdexcept_setround libc_feholdexcept_setround_aarch64
-#define libc_feholdexcept_setroundf libc_feholdexcept_setround_aarch64
-#define libc_feholdexcept_setroundl libc_feholdexcept_setround_aarch64
-
-static __always_inline int
-libc_fetestexcept_aarch64 (int ex)
-{
- fpu_fpsr_t fpsr;
-
- _FPU_GETFPSR (fpsr);
- return fpsr & ex & FE_ALL_EXCEPT;
-}
-
-#define libc_fetestexcept libc_fetestexcept_aarch64
-#define libc_fetestexceptf libc_fetestexcept_aarch64
-#define libc_fetestexceptl libc_fetestexcept_aarch64
-
-static __always_inline void
-libc_fesetenv_aarch64 (const fenv_t *envp)
-{
- fpu_control_t fpcr;
- fpu_control_t new_fpcr;
-
- _FPU_GETCW (fpcr);
- new_fpcr = envp->__fpcr;
-
- if (__glibc_unlikely (fpcr != new_fpcr))
- _FPU_SETCW (new_fpcr);
-
- _FPU_SETFPSR (envp->__fpsr);
-}
-
-#define libc_fesetenv libc_fesetenv_aarch64
-#define libc_fesetenvf libc_fesetenv_aarch64
-#define libc_fesetenvl libc_fesetenv_aarch64
-#define libc_feresetround_noex libc_fesetenv_aarch64
-#define libc_feresetround_noexf libc_fesetenv_aarch64
-#define libc_feresetround_noexl libc_fesetenv_aarch64
-
-static __always_inline int
-libc_feupdateenv_test_aarch64 (const fenv_t *envp, int ex)
-{
- fpu_control_t fpcr;
- fpu_control_t new_fpcr;
- fpu_fpsr_t fpsr;
- fpu_fpsr_t new_fpsr;
- int excepts;
-
- _FPU_GETCW (fpcr);
- _FPU_GETFPSR (fpsr);
-
- /* Merge current exception flags with the saved fenv. */
- excepts = fpsr & FE_ALL_EXCEPT;
- new_fpcr = envp->__fpcr;
- new_fpsr = envp->__fpsr | excepts;
-
- if (__glibc_unlikely (fpcr != new_fpcr))
- _FPU_SETCW (new_fpcr);
-
- if (fpsr != new_fpsr)
- _FPU_SETFPSR (new_fpsr);
-
- /* Raise the exceptions if enabled in the new FP state. */
- if (__glibc_unlikely (excepts & (new_fpcr >> FE_EXCEPT_SHIFT)))
- __feraiseexcept (excepts);
-
- return excepts & ex;
-}
-
-#define libc_feupdateenv_test libc_feupdateenv_test_aarch64
-#define libc_feupdateenv_testf libc_feupdateenv_test_aarch64
-#define libc_feupdateenv_testl libc_feupdateenv_test_aarch64
-
-static __always_inline void
-libc_feupdateenv_aarch64 (const fenv_t *envp)
-{
- libc_feupdateenv_test_aarch64 (envp, 0);
-}
-
-#define libc_feupdateenv libc_feupdateenv_aarch64
-#define libc_feupdateenvf libc_feupdateenv_aarch64
-#define libc_feupdateenvl libc_feupdateenv_aarch64
-
-static __always_inline void
-libc_feholdsetround_aarch64 (fenv_t *envp, int round)
-{
- fpu_control_t fpcr;
- fpu_fpsr_t fpsr;
-
- _FPU_GETCW (fpcr);
- _FPU_GETFPSR (fpsr);
- envp->__fpcr = fpcr;
- envp->__fpsr = fpsr;
-
- /* Check whether rounding modes are different. */
- round = (fpcr ^ round) & _FPU_FPCR_RM_MASK;
-
- /* Set new rounding mode if different. */
- if (__glibc_unlikely (round != 0))
- _FPU_SETCW (fpcr ^ round);
-}
-
-#define libc_feholdsetround libc_feholdsetround_aarch64
-#define libc_feholdsetroundf libc_feholdsetround_aarch64
-#define libc_feholdsetroundl libc_feholdsetround_aarch64
-
-static __always_inline void
-libc_feresetround_aarch64 (fenv_t *envp)
-{
- fpu_control_t fpcr;
- int round;
-
- _FPU_GETCW (fpcr);
-
- /* Check whether rounding modes are different. */
- round = (envp->__fpcr ^ fpcr) & _FPU_FPCR_RM_MASK;
-
- /* Restore the rounding mode if it was changed. */
- if (__glibc_unlikely (round != 0))
- _FPU_SETCW (fpcr ^ round);
-}
-
-#define libc_feresetround libc_feresetround_aarch64
-#define libc_feresetroundf libc_feresetround_aarch64
-#define libc_feresetroundl libc_feresetround_aarch64
-
-/* We have support for rounding mode context. */
-#define HAVE_RM_CTX 1
-
-static __always_inline void
-libc_feholdsetround_aarch64_ctx (struct rm_ctx *ctx, int r)
-{
- fpu_control_t fpcr;
- int round;
-
- _FPU_GETCW (fpcr);
- ctx->env.__fpcr = fpcr;
-
- /* Check whether rounding modes are different. */
- round = (fpcr ^ r) & _FPU_FPCR_RM_MASK;
- ctx->updated_status = round != 0;
-
- /* Set the rounding mode if changed. */
- if (__glibc_unlikely (round != 0))
- _FPU_SETCW (fpcr ^ round);
-}
-
-#define libc_feholdsetround_ctx libc_feholdsetround_aarch64_ctx
-#define libc_feholdsetroundf_ctx libc_feholdsetround_aarch64_ctx
-#define libc_feholdsetroundl_ctx libc_feholdsetround_aarch64_ctx
-
-static __always_inline void
-libc_feresetround_aarch64_ctx (struct rm_ctx *ctx)
-{
- /* Restore the rounding mode if updated. */
- if (__glibc_unlikely (ctx->updated_status))
- _FPU_SETCW (ctx->env.__fpcr);
-}
-
-#define libc_feresetround_ctx libc_feresetround_aarch64_ctx
-#define libc_feresetroundf_ctx libc_feresetround_aarch64_ctx
-#define libc_feresetroundl_ctx libc_feresetround_aarch64_ctx
-
-static __always_inline void
-libc_feholdsetround_noex_aarch64_ctx (struct rm_ctx *ctx, int r)
-{
- fpu_control_t fpcr;
- fpu_fpsr_t fpsr;
- int round;
-
- _FPU_GETCW (fpcr);
- _FPU_GETFPSR (fpsr);
- ctx->env.__fpcr = fpcr;
- ctx->env.__fpsr = fpsr;
-
- /* Check whether rounding modes are different. */
- round = (fpcr ^ r) & _FPU_FPCR_RM_MASK;
- ctx->updated_status = round != 0;
-
- /* Set the rounding mode if changed. */
- if (__glibc_unlikely (round != 0))
- _FPU_SETCW (fpcr ^ round);
-}
-
-#define libc_feholdsetround_noex_ctx libc_feholdsetround_noex_aarch64_ctx
-#define libc_feholdsetround_noexf_ctx libc_feholdsetround_noex_aarch64_ctx
-#define libc_feholdsetround_noexl_ctx libc_feholdsetround_noex_aarch64_ctx
-
-static __always_inline void
-libc_feresetround_noex_aarch64_ctx (struct rm_ctx *ctx)
-{
- /* Restore the rounding mode if updated. */
- if (__glibc_unlikely (ctx->updated_status))
- _FPU_SETCW (ctx->env.__fpcr);
-
- /* Write new FPSR to restore exception flags. */
- _FPU_SETFPSR (ctx->env.__fpsr);
-}
-
-#define libc_feresetround_noex_ctx libc_feresetround_noex_aarch64_ctx
-#define libc_feresetround_noexf_ctx libc_feresetround_noex_aarch64_ctx
-#define libc_feresetround_noexl_ctx libc_feresetround_noex_aarch64_ctx
-
-/* Hack: only include the large arm_neon.h when needed. */
-#ifdef _MATH_CONFIG_H
-# include <arm_neon.h>
-
-/* ACLE intrinsics for frintn and fcvtns instructions. */
-# define TOINT_INTRINSICS 1
+/* Use inline round and lround instructions. */
+#define TOINT_INTRINSICS 1
static inline double_t
roundtoint (double_t x)
{
- return vget_lane_f64 (vrndn_f64 (vld1_f64 (&x)), 0);
+ return round (x);
}
-static inline uint64_t
+static inline int32_t
converttoint (double_t x)
{
- return vcvtnd_s64_f64 (x);
+ return lround (x);
}
-#endif
#include_next <math_private.h>
diff --git a/sysdeps/aarch64/fpu/s_ceil.c b/sysdeps/aarch64/fpu/s_ceil.c
index 4e3b5fdc4d..232a40e58d 100644
--- a/sysdeps/aarch64/fpu/s_ceil.c
+++ b/sysdeps/aarch64/fpu/s_ceil.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -14,8 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
#include <libm-alias-double.h>
diff --git a/sysdeps/aarch64/fpu/s_ceilf.c b/sysdeps/aarch64/fpu/s_ceilf.c
index d01dadc246..ab2af28f3c 100644
--- a/sysdeps/aarch64/fpu/s_ceilf.c
+++ b/sysdeps/aarch64/fpu/s_ceilf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -14,8 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/aarch64/fpu/s_floor.c b/sysdeps/aarch64/fpu/s_floor.c
index 7258246896..9bfe74b9a1 100644
--- a/sysdeps/aarch64/fpu/s_floor.c
+++ b/sysdeps/aarch64/fpu/s_floor.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -14,8 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
#include <libm-alias-double.h>
diff --git a/sysdeps/aarch64/fpu/s_floorf.c b/sysdeps/aarch64/fpu/s_floorf.c
index bd197013ad..339a33078a 100644
--- a/sysdeps/aarch64/fpu/s_floorf.c
+++ b/sysdeps/aarch64/fpu/s_floorf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -14,8 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/aarch64/fpu/s_fma.c b/sysdeps/aarch64/fpu/s_fma.c
index 4f3d6c4a51..394fed224f 100644
--- a/sysdeps/aarch64/fpu/s_fma.c
+++ b/sysdeps/aarch64/fpu/s_fma.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <libm-alias-double.h>
diff --git a/sysdeps/aarch64/fpu/s_fmaf.c b/sysdeps/aarch64/fpu/s_fmaf.c
index 197cf7bd06..64bd5ce402 100644
--- a/sysdeps/aarch64/fpu/s_fmaf.c
+++ b/sysdeps/aarch64/fpu/s_fmaf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/aarch64/fpu/s_fmax.c b/sysdeps/aarch64/fpu/s_fmax.c
index 65de8ceab3..69c729e713 100644
--- a/sysdeps/aarch64/fpu/s_fmax.c
+++ b/sysdeps/aarch64/fpu/s_fmax.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <libm-alias-double.h>
diff --git a/sysdeps/aarch64/fpu/s_fmaxf.c b/sysdeps/aarch64/fpu/s_fmaxf.c
index 2056700426..60ac930b0d 100644
--- a/sysdeps/aarch64/fpu/s_fmaxf.c
+++ b/sysdeps/aarch64/fpu/s_fmaxf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/aarch64/fpu/s_fmin.c b/sysdeps/aarch64/fpu/s_fmin.c
index a42b565498..c68c7dd28e 100644
--- a/sysdeps/aarch64/fpu/s_fmin.c
+++ b/sysdeps/aarch64/fpu/s_fmin.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <libm-alias-double.h>
diff --git a/sysdeps/aarch64/fpu/s_fminf.c b/sysdeps/aarch64/fpu/s_fminf.c
index 028f88543f..2e87f780db 100644
--- a/sysdeps/aarch64/fpu/s_fminf.c
+++ b/sysdeps/aarch64/fpu/s_fminf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/aarch64/fpu/s_llrint.c b/sysdeps/aarch64/fpu/s_llrint.c
index 287dc8974c..3c6f9d4c12 100644
--- a/sysdeps/aarch64/fpu/s_llrint.c
+++ b/sysdeps/aarch64/fpu/s_llrint.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -14,11 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math-barriers.h>
-#include <math_private.h>
#include <libm-alias-double.h>
long long int
diff --git a/sysdeps/aarch64/fpu/s_llrintf.c b/sysdeps/aarch64/fpu/s_llrintf.c
index 70d6c0ca84..e7b0a80dfe 100644
--- a/sysdeps/aarch64/fpu/s_llrintf.c
+++ b/sysdeps/aarch64/fpu/s_llrintf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -14,11 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math-barriers.h>
-#include <math_private.h>
#include <libm-alias-float.h>
long long int
diff --git a/sysdeps/aarch64/fpu/s_llround.c b/sysdeps/aarch64/fpu/s_llround.c
index d6ff708f41..86cc08595b 100644
--- a/sysdeps/aarch64/fpu/s_llround.c
+++ b/sysdeps/aarch64/fpu/s_llround.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <libm-alias-double.h>
diff --git a/sysdeps/aarch64/fpu/s_llroundf.c b/sysdeps/aarch64/fpu/s_llroundf.c
index 4cb2caf8b5..b8ce915652 100644
--- a/sysdeps/aarch64/fpu/s_llroundf.c
+++ b/sysdeps/aarch64/fpu/s_llroundf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/aarch64/fpu/s_lrint.c b/sysdeps/aarch64/fpu/s_lrint.c
index d6ef066e45..885cc086b6 100644
--- a/sysdeps/aarch64/fpu/s_lrint.c
+++ b/sysdeps/aarch64/fpu/s_lrint.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -14,13 +14,12 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <get-rounding-mode.h>
#include <stdint.h>
#include <math-barriers.h>
-#include <math_private.h>
#include <libm-alias-double.h>
# define IREG_SIZE 64
diff --git a/sysdeps/aarch64/fpu/s_lrintf.c b/sysdeps/aarch64/fpu/s_lrintf.c
index fa42d68dd1..ec108a477a 100644
--- a/sysdeps/aarch64/fpu/s_lrintf.c
+++ b/sysdeps/aarch64/fpu/s_lrintf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -14,11 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math-barriers.h>
-#include <math_private.h>
#include <libm-alias-float.h>
long int
diff --git a/sysdeps/aarch64/fpu/s_lround.c b/sysdeps/aarch64/fpu/s_lround.c
index d8e9fc4664..66b5aae8d9 100644
--- a/sysdeps/aarch64/fpu/s_lround.c
+++ b/sysdeps/aarch64/fpu/s_lround.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <libm-alias-double.h>
diff --git a/sysdeps/aarch64/fpu/s_lroundf.c b/sysdeps/aarch64/fpu/s_lroundf.c
index 9a76dbf24a..37b8d2ea7a 100644
--- a/sysdeps/aarch64/fpu/s_lroundf.c
+++ b/sysdeps/aarch64/fpu/s_lroundf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/aarch64/fpu/s_nearbyint.c b/sysdeps/aarch64/fpu/s_nearbyint.c
index 477e1a8cfe..0d37a6f742 100644
--- a/sysdeps/aarch64/fpu/s_nearbyint.c
+++ b/sysdeps/aarch64/fpu/s_nearbyint.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <libm-alias-double.h>
diff --git a/sysdeps/aarch64/fpu/s_nearbyintf.c b/sysdeps/aarch64/fpu/s_nearbyintf.c
index 4edab204a9..df6167237b 100644
--- a/sysdeps/aarch64/fpu/s_nearbyintf.c
+++ b/sysdeps/aarch64/fpu/s_nearbyintf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/aarch64/fpu/s_rint.c b/sysdeps/aarch64/fpu/s_rint.c
index eb4232af00..ec4725517b 100644
--- a/sysdeps/aarch64/fpu/s_rint.c
+++ b/sysdeps/aarch64/fpu/s_rint.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -14,8 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
#include <libm-alias-double.h>
diff --git a/sysdeps/aarch64/fpu/s_rintf.c b/sysdeps/aarch64/fpu/s_rintf.c
index 9ebfcb45b4..fdbdf63cc7 100644
--- a/sysdeps/aarch64/fpu/s_rintf.c
+++ b/sysdeps/aarch64/fpu/s_rintf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -14,8 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/aarch64/fpu/s_round.c b/sysdeps/aarch64/fpu/s_round.c
index 275b00f318..fda9f8d76e 100644
--- a/sysdeps/aarch64/fpu/s_round.c
+++ b/sysdeps/aarch64/fpu/s_round.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -14,8 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
#include <libm-alias-double.h>
diff --git a/sysdeps/aarch64/fpu/s_roundf.c b/sysdeps/aarch64/fpu/s_roundf.c
index 201ffc54db..eafc65c221 100644
--- a/sysdeps/aarch64/fpu/s_roundf.c
+++ b/sysdeps/aarch64/fpu/s_roundf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -14,8 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/aarch64/fpu/s_trunc.c b/sysdeps/aarch64/fpu/s_trunc.c
index 22f44f1e04..8363da23be 100644
--- a/sysdeps/aarch64/fpu/s_trunc.c
+++ b/sysdeps/aarch64/fpu/s_trunc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -14,8 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
#include <libm-alias-double.h>
diff --git a/sysdeps/aarch64/fpu/s_truncf.c b/sysdeps/aarch64/fpu/s_truncf.c
index 3771b6d6bf..079adddbac 100644
--- a/sysdeps/aarch64/fpu/s_truncf.c
+++ b/sysdeps/aarch64/fpu/s_truncf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -14,8 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/aarch64/jmpbuf-offsets.h b/sysdeps/aarch64/jmpbuf-offsets.h
index a7096f2f69..efabe346c0 100644
--- a/sysdeps/aarch64/jmpbuf-offsets.h
+++ b/sysdeps/aarch64/jmpbuf-offsets.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define JB_X19 0
#define JB_X20 1
diff --git a/sysdeps/aarch64/jmpbuf-unwind.h b/sysdeps/aarch64/jmpbuf-unwind.h
index 9309e7b0ea..74faad48d5 100644
--- a/sysdeps/aarch64/jmpbuf-unwind.h
+++ b/sysdeps/aarch64/jmpbuf-unwind.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <setjmp.h>
#include <jmpbuf-offsets.h>
diff --git a/sysdeps/aarch64/ldsodefs.h b/sysdeps/aarch64/ldsodefs.h
index 600b721234..407a65213f 100644
--- a/sysdeps/aarch64/ldsodefs.h
+++ b/sysdeps/aarch64/ldsodefs.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _AARCH64_LDSODEFS_H
#define _AARCH64_LDSODEFS_H 1
diff --git a/sysdeps/aarch64/libc-tls.c b/sysdeps/aarch64/libc-tls.c
index f2a2e1c0d3..103c589621 100644
--- a/sysdeps/aarch64/libc-tls.c
+++ b/sysdeps/aarch64/libc-tls.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <csu/libc-tls.c>
#include <dl-tls.h>
diff --git a/sysdeps/aarch64/libm-test-ulps b/sysdeps/aarch64/libm-test-ulps
index be06085154..585e5bbce7 100644
--- a/sysdeps/aarch64/libm-test-ulps
+++ b/sysdeps/aarch64/libm-test-ulps
@@ -716,9 +716,9 @@ ildouble: 2
ldouble: 2
Function: Imaginary part of "ccos_downward":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
@@ -732,9 +732,9 @@ ildouble: 2
ldouble: 2
Function: Imaginary part of "ccos_towardzero":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
@@ -772,33 +772,33 @@ ildouble: 1
ldouble: 1
Function: Real part of "ccosh_downward":
-double: 1
+double: 2
float: 3
-idouble: 1
+idouble: 2
ifloat: 3
ildouble: 2
ldouble: 2
Function: Imaginary part of "ccosh_downward":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
Function: Real part of "ccosh_towardzero":
-double: 1
+double: 2
float: 3
-idouble: 1
+idouble: 2
ifloat: 3
ildouble: 2
ldouble: 2
Function: Imaginary part of "ccosh_towardzero":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
@@ -836,33 +836,33 @@ ildouble: 1
ldouble: 1
Function: Real part of "cexp_downward":
-double: 1
+double: 2
float: 2
-idouble: 1
+idouble: 2
ifloat: 2
ildouble: 2
ldouble: 2
Function: Imaginary part of "cexp_downward":
-double: 1
+double: 3
float: 3
-idouble: 1
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
Function: Real part of "cexp_towardzero":
-double: 1
+double: 2
float: 2
-idouble: 1
+idouble: 2
ifloat: 2
ildouble: 2
ldouble: 2
Function: Imaginary part of "cexp_towardzero":
-double: 1
+double: 3
float: 3
-idouble: 1
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
@@ -876,9 +876,9 @@ ildouble: 3
ldouble: 3
Function: Imaginary part of "cexp_upward":
-double: 1
+double: 3
float: 2
-idouble: 1
+idouble: 3
ifloat: 2
ildouble: 3
ldouble: 3
@@ -1021,9 +1021,9 @@ ldouble: 1
Function: "cos_downward":
double: 1
-float: 2
+float: 1
idouble: 1
-ifloat: 2
+ifloat: 1
ildouble: 3
ldouble: 3
@@ -1037,9 +1037,9 @@ ldouble: 1
Function: "cos_upward":
double: 1
-float: 2
+float: 1
idouble: 1
-ifloat: 2
+ifloat: 1
ildouble: 2
ldouble: 2
@@ -1052,25 +1052,25 @@ ildouble: 1
ldouble: 1
Function: "cosh_downward":
-double: 1
+double: 2
float: 1
-idouble: 1
+idouble: 2
ifloat: 1
ildouble: 1
ldouble: 2
Function: "cosh_towardzero":
-double: 1
+double: 2
float: 1
-idouble: 1
+idouble: 2
ifloat: 1
ildouble: 1
ldouble: 2
Function: "cosh_upward":
-double: 1
+double: 2
float: 2
-idouble: 1
+idouble: 2
ifloat: 2
ildouble: 1
ldouble: 3
@@ -1090,9 +1090,9 @@ ildouble: 1
ldouble: 1
Function: Real part of "cpow_downward":
-double: 4
+double: 5
float: 8
-idouble: 4
+idouble: 5
ifloat: 8
ildouble: 6
ldouble: 6
@@ -1106,9 +1106,9 @@ ildouble: 2
ldouble: 2
Function: Real part of "cpow_towardzero":
-double: 4
+double: 5
float: 8
-idouble: 4
+idouble: 5
ifloat: 8
ildouble: 6
ldouble: 6
@@ -1150,9 +1150,9 @@ ildouble: 1
ldouble: 1
Function: Real part of "csin_downward":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
@@ -1166,9 +1166,9 @@ ildouble: 2
ldouble: 2
Function: Real part of "csin_towardzero":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
@@ -1220,9 +1220,9 @@ ildouble: 2
ldouble: 2
Function: Imaginary part of "csinh_downward":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
@@ -1236,9 +1236,9 @@ ildouble: 2
ldouble: 2
Function: Imaginary part of "csinh_towardzero":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
@@ -1492,9 +1492,9 @@ ildouble: 2
ldouble: 2
Function: "erfc_downward":
-double: 3
+double: 4
float: 4
-idouble: 3
+idouble: 4
ifloat: 4
ildouble: 5
ldouble: 5
@@ -1508,9 +1508,9 @@ ildouble: 4
ldouble: 4
Function: "erfc_upward":
-double: 3
+double: 4
float: 4
-idouble: 3
+idouble: 4
ifloat: 4
ildouble: 5
ldouble: 5
@@ -1981,9 +1981,9 @@ ldouble: 1
Function: "sin_downward":
double: 1
-float: 2
+float: 1
idouble: 1
-ifloat: 2
+ifloat: 1
ildouble: 3
ldouble: 3
@@ -1997,9 +1997,9 @@ ldouble: 2
Function: "sin_upward":
double: 1
-float: 2
+float: 1
idouble: 1
-ifloat: 2
+ifloat: 1
ildouble: 3
ldouble: 3
@@ -2013,9 +2013,9 @@ ldouble: 1
Function: "sincos_downward":
double: 1
-float: 2
+float: 1
idouble: 1
-ifloat: 2
+ifloat: 1
ildouble: 3
ldouble: 3
@@ -2029,9 +2029,9 @@ ldouble: 2
Function: "sincos_upward":
double: 1
-float: 2
+float: 1
idouble: 1
-ifloat: 2
+ifloat: 1
ildouble: 3
ldouble: 3
diff --git a/sysdeps/aarch64/linkmap.h b/sysdeps/aarch64/linkmap.h
index 6852f343a1..46c68e6343 100644
--- a/sysdeps/aarch64/linkmap.h
+++ b/sysdeps/aarch64/linkmap.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
struct link_map_machine
{
diff --git a/sysdeps/aarch64/machine-gmon.h b/sysdeps/aarch64/machine-gmon.h
index dd12a25416..3e588ad083 100644
--- a/sysdeps/aarch64/machine-gmon.h
+++ b/sysdeps/aarch64/machine-gmon.h
@@ -1,5 +1,5 @@
/* AArch64 definitions for profiling support.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Accept 'frompc' address as argument from the function that calls
__mcount for profiling. Use __builtin_return_address (0)
diff --git a/sysdeps/aarch64/math-tests-trap.h b/sysdeps/aarch64/math-tests-trap.h
new file mode 100644
index 0000000000..6a7d57b381
--- /dev/null
+++ b/sysdeps/aarch64/math-tests-trap.h
@@ -0,0 +1,26 @@
+/* Configuration for math tests: support for enabling exception traps.
+ AArch64 version.
+ Copyright (C) 2014-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef AARCH64_MATH_TESTS_TRAP_H
+#define AARCH64_MATH_TESTS_TRAP_H 1
+
+/* Trapping exceptions are optional on AArch64. */
+#define EXCEPTION_ENABLE_SUPPORTED(EXCEPT) ((EXCEPT) == 0)
+
+#endif /* math-tests-trap.h. */
diff --git a/sysdeps/aarch64/math-tests.h b/sysdeps/aarch64/math-tests.h
deleted file mode 100644
index 46cc33741f..0000000000
--- a/sysdeps/aarch64/math-tests.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Configuration for math tests. AArch64 version.
- Copyright (C) 2014-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-/* Trapping exceptions are optional on AArch64. */
-#define EXCEPTION_ENABLE_SUPPORTED(EXCEPT) ((EXCEPT) == 0)
-
-#include_next <math-tests.h>
diff --git a/sysdeps/aarch64/mcount.c b/sysdeps/aarch64/mcount.c
index 515c6bde25..b2382b5de3 100644
--- a/sysdeps/aarch64/mcount.c
+++ b/sysdeps/aarch64/mcount.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2013-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <shlib-compat.h>
diff --git a/sysdeps/aarch64/memchr.S b/sysdeps/aarch64/memchr.S
index e422aef090..2085765e5d 100644
--- a/sysdeps/aarch64/memchr.S
+++ b/sysdeps/aarch64/memchr.S
@@ -1,6 +1,6 @@
/* memchr - find a character in a memory zone
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
@@ -26,6 +26,10 @@
* Neon Available.
*/
+#ifndef MEMCHR
+# define MEMCHR __memchr
+#endif
+
/* Arguments and results. */
#define srcin x0
#define chrin w1
@@ -59,7 +63,7 @@
* identify exactly which byte has matched.
*/
-ENTRY (__memchr)
+ENTRY (MEMCHR)
/* Do not dereference srcin if no bytes to compare. */
cbz cntin, L(zero_length)
/*
@@ -152,6 +156,6 @@ L(tail):
L(zero_length):
mov result, #0
ret
-END (__memchr)
-weak_alias (__memchr, memchr)
+END (MEMCHR)
+weak_alias (MEMCHR, memchr)
libc_hidden_builtin_def (memchr)
diff --git a/sysdeps/aarch64/memcmp.S b/sysdeps/aarch64/memcmp.S
index 743bc078bb..f330154c7a 100644
--- a/sysdeps/aarch64/memcmp.S
+++ b/sysdeps/aarch64/memcmp.S
@@ -1,6 +1,6 @@
/* memcmp - compare memory
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/aarch64/memcpy.S b/sysdeps/aarch64/memcpy.S
index 7e1163e6a0..10801aa0f4 100644
--- a/sysdeps/aarch64/memcpy.S
+++ b/sysdeps/aarch64/memcpy.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
@@ -41,17 +41,19 @@
#define C_h x11
#define D_l x12
#define D_h x13
-#define E_l src
-#define E_h count
-#define F_l srcend
-#define F_h dst
+#define E_l x14
+#define E_h x15
+#define F_l x16
+#define F_h x17
#define G_l count
#define G_h dst
+#define H_l src
+#define H_h srcend
#define tmp1 x14
-/* Copies are split into 3 main cases: small copies of up to 16 bytes,
- medium copies of 17..96 bytes which are fully unrolled. Large copies
- of more than 96 bytes align the destination and use an unrolled loop
+/* Copies are split into 3 main cases: small copies of up to 32 bytes,
+ medium copies of 33..128 bytes which are fully unrolled. Large copies
+ of more than 128 bytes align the destination and use an unrolled loop
processing 64 bytes per iteration.
In order to share code with memmove, small and medium copies read all
data before writing, allowing any kind of overlap. So small, medium
@@ -73,7 +75,7 @@ ENTRY_ALIGN (MEMMOVE, 6)
DELOUSE (2)
sub tmp1, dstin, src
- cmp count, 96
+ cmp count, 128
ccmp tmp1, count, 2, hi
b.lo L(move_long)
@@ -89,31 +91,39 @@ ENTRY (MEMCPY)
prfm PLDL1KEEP, [src]
add srcend, src, count
add dstend, dstin, count
- cmp count, 16
- b.ls L(copy16)
- cmp count, 96
+ cmp count, 32
+ b.ls L(copy32)
+ cmp count, 128
b.hi L(copy_long)
- /* Medium copies: 17..96 bytes. */
- sub tmp1, count, 1
+ /* Medium copies: 33..128 bytes. */
ldp A_l, A_h, [src]
- tbnz tmp1, 6, L(copy96)
- ldp D_l, D_h, [srcend, -16]
- tbz tmp1, 5, 1f
ldp B_l, B_h, [src, 16]
ldp C_l, C_h, [srcend, -32]
+ ldp D_l, D_h, [srcend, -16]
+ cmp count, 64
+ b.hi L(copy128)
+ stp A_l, A_h, [dstin]
stp B_l, B_h, [dstin, 16]
stp C_l, C_h, [dstend, -32]
-1:
- stp A_l, A_h, [dstin]
stp D_l, D_h, [dstend, -16]
ret
.p2align 4
- /* Small copies: 0..16 bytes. */
-L(copy16):
- cmp count, 8
+ /* Small copies: 0..32 bytes. */
+L(copy32):
+ /* 16-32 bytes. */
+ cmp count, 16
b.lo 1f
+ ldp A_l, A_h, [src]
+ ldp B_l, B_h, [srcend, -16]
+ stp A_l, A_h, [dstin]
+ stp B_l, B_h, [dstend, -16]
+ ret
+ .p2align 4
+1:
+ /* 8-15 bytes. */
+ tbz count, 3, 1f
ldr A_l, [src]
ldr A_h, [srcend, -8]
str A_l, [dstin]
@@ -121,6 +131,7 @@ L(copy16):
ret
.p2align 4
1:
+ /* 4-7 bytes. */
tbz count, 2, 1f
ldr A_lw, [src]
ldr A_hw, [srcend, -4]
@@ -142,24 +153,25 @@ L(copy16):
2: ret
.p2align 4
- /* Copy 64..96 bytes. Copy 64 bytes from the start and
- 32 bytes from the end. */
-L(copy96):
- ldp B_l, B_h, [src, 16]
- ldp C_l, C_h, [src, 32]
- ldp D_l, D_h, [src, 48]
- ldp E_l, E_h, [srcend, -32]
- ldp F_l, F_h, [srcend, -16]
+ /* Copy 65..128 bytes. Copy 64 bytes from the start and
+ 64 bytes from the end. */
+L(copy128):
+ ldp E_l, E_h, [src, 32]
+ ldp F_l, F_h, [src, 48]
+ ldp G_l, G_h, [srcend, -64]
+ ldp H_l, H_h, [srcend, -48]
stp A_l, A_h, [dstin]
stp B_l, B_h, [dstin, 16]
- stp C_l, C_h, [dstin, 32]
- stp D_l, D_h, [dstin, 48]
- stp E_l, E_h, [dstend, -32]
- stp F_l, F_h, [dstend, -16]
+ stp E_l, E_h, [dstin, 32]
+ stp F_l, F_h, [dstin, 48]
+ stp G_l, G_h, [dstend, -64]
+ stp H_l, H_h, [dstend, -48]
+ stp C_l, C_h, [dstend, -32]
+ stp D_l, D_h, [dstend, -16]
ret
/* Align DST to 16 byte alignment so that we don't cross cache line
- boundaries on both loads and stores. There are at least 96 bytes
+ boundaries on both loads and stores. There are at least 128 bytes
to copy, so copy 16 bytes unaligned and then align. The loop
copies 64 bytes per iteration and prefetches one iteration ahead. */
@@ -215,7 +227,7 @@ L(move_long):
add dstend, dstin, count
/* Align dstend to 16 byte alignment so that we don't cross cache line
- boundaries on both loads and stores. There are at least 96 bytes
+ boundaries on both loads and stores. There are at least 128 bytes
to copy, so copy 16 bytes unaligned and then align. The loop
copies 64 bytes per iteration and prefetches one iteration ahead. */
diff --git a/sysdeps/aarch64/memset-reg.h b/sysdeps/aarch64/memset-reg.h
index ac7c083867..e7f2208d66 100644
--- a/sysdeps/aarch64/memset-reg.h
+++ b/sysdeps/aarch64/memset-reg.h
@@ -1,5 +1,5 @@
/* Register aliases for memset to be used across implementations.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define dstin x0
#define val x1
diff --git a/sysdeps/aarch64/memset.S b/sysdeps/aarch64/memset.S
index 4a45459361..f68c75ab46 100644
--- a/sysdeps/aarch64/memset.S
+++ b/sysdeps/aarch64/memset.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "memset-reg.h"
@@ -89,10 +89,10 @@ L(set_long):
b.eq L(try_zva)
L(no_zva):
sub count, dstend, dst /* Count is 16 too large. */
- add dst, dst, 16
+ sub dst, dst, 16 /* Dst is biased by -32. */
sub count, count, 64 + 16 /* Adjust count and bias for loop. */
-1: stp q0, q0, [dst], 64
- stp q0, q0, [dst, -32]
+1: stp q0, q0, [dst, 32]
+ stp q0, q0, [dst, 64]!
L(tail64):
subs count, count, 64
b.hi 1b
@@ -183,6 +183,7 @@ L(zva_other):
subs count, count, zva_len
b.hs 3b
4: add count, count, zva_len
+ sub dst, dst, 32 /* Bias dst for tail loop. */
b L(tail64)
#endif
diff --git a/sysdeps/aarch64/memusage.h b/sysdeps/aarch64/memusage.h
index 874f3b5b3d..e7c46ada2c 100644
--- a/sysdeps/aarch64/memusage.h
+++ b/sysdeps/aarch64/memusage.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define GETSP() ({ register uintptr_t stack_ptr asm ("sp"); stack_ptr; })
diff --git a/sysdeps/aarch64/multiarch/Makefile b/sysdeps/aarch64/multiarch/Makefile
index 57ffdf7238..4150b89a90 100644
--- a/sysdeps/aarch64/multiarch/Makefile
+++ b/sysdeps/aarch64/multiarch/Makefile
@@ -1,4 +1,7 @@
ifeq ($(subdir),string)
sysdep_routines += memcpy_generic memcpy_thunderx memcpy_thunderx2 \
- memcpy_falkor memmove_falkor memset_generic memset_falkor
+ memcpy_falkor memmove_falkor \
+ memset_generic memset_falkor memset_emag \
+ memchr_generic memchr_nosimd \
+ strlen_generic strlen_asimd
endif
diff --git a/sysdeps/aarch64/multiarch/ifunc-impl-list.c b/sysdeps/aarch64/multiarch/ifunc-impl-list.c
index e55be80103..be13b916e5 100644
--- a/sysdeps/aarch64/multiarch/ifunc-impl-list.c
+++ b/sysdeps/aarch64/multiarch/ifunc-impl-list.c
@@ -1,5 +1,5 @@
/* Enumerate available IFUNC implementations of a function. AARCH64 version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <string.h>
@@ -45,13 +45,22 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
IFUNC_IMPL_ADD (array, i, memcpy, 1, __memcpy_generic))
IFUNC_IMPL (i, name, memmove,
IFUNC_IMPL_ADD (array, i, memmove, 1, __memmove_thunderx)
+ IFUNC_IMPL_ADD (array, i, memmove, 1, __memmove_thunderx2)
IFUNC_IMPL_ADD (array, i, memmove, 1, __memmove_falkor)
IFUNC_IMPL_ADD (array, i, memmove, 1, __memmove_generic))
IFUNC_IMPL (i, name, memset,
/* Enable this on non-falkor processors too so that other cores
can do a comparative analysis with __memset_generic. */
IFUNC_IMPL_ADD (array, i, memset, (zva_size == 64), __memset_falkor)
+ IFUNC_IMPL_ADD (array, i, memset, (zva_size == 64), __memset_emag)
IFUNC_IMPL_ADD (array, i, memset, 1, __memset_generic))
+ IFUNC_IMPL (i, name, memchr,
+ IFUNC_IMPL_ADD (array, i, memchr, 1, __memchr_nosimd)
+ IFUNC_IMPL_ADD (array, i, memchr, 1, __memchr_generic))
+
+ IFUNC_IMPL (i, name, strlen,
+ IFUNC_IMPL_ADD (array, i, strlen, 1, __strlen_asimd)
+ IFUNC_IMPL_ADD (array, i, strlen, 1, __strlen_generic))
return i;
}
diff --git a/sysdeps/aarch64/multiarch/init-arch.h b/sysdeps/aarch64/multiarch/init-arch.h
index d1e5703cb2..af49206003 100644
--- a/sysdeps/aarch64/multiarch/init-arch.h
+++ b/sysdeps/aarch64/multiarch/init-arch.h
@@ -1,6 +1,6 @@
/* Define INIT_ARCH so that midr is initialized before use by IFUNCs.
This file is part of the GNU C Library.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-2019 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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ldsodefs.h>
diff --git a/sysdeps/aarch64/multiarch/memchr.c b/sysdeps/aarch64/multiarch/memchr.c
new file mode 100644
index 0000000000..a6b3cec66b
--- /dev/null
+++ b/sysdeps/aarch64/multiarch/memchr.c
@@ -0,0 +1,41 @@
+/* Multiple versions of memchr. AARCH64 version.
+ Copyright (C) 2018 Free Software 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
+ <https://www.gnu.org/licenses/>. */
+
+/* Define multiple versions only for the definition in libc. */
+
+#if IS_IN (libc)
+/* Redefine memchr so that the compiler won't complain about the type
+ mismatch with the IFUNC selector in strong_alias, below. */
+# undef memchr
+# define memchr __redirect_memchr
+# include <string.h>
+# include <init-arch.h>
+
+extern __typeof (__redirect_memchr) __memchr;
+
+extern __typeof (__redirect_memchr) __memchr_generic attribute_hidden;
+extern __typeof (__redirect_memchr) __memchr_nosimd attribute_hidden;
+
+libc_ifunc (__memchr,
+ ((IS_EMAG (midr)
+ ? __memchr_nosimd
+ : __memchr_generic)));
+
+# undef memchr
+strong_alias (__memchr, memchr);
+#endif
diff --git a/sysdeps/aarch64/multiarch/memchr_generic.S b/sysdeps/aarch64/multiarch/memchr_generic.S
new file mode 100644
index 0000000000..cb6e09ffd0
--- /dev/null
+++ b/sysdeps/aarch64/multiarch/memchr_generic.S
@@ -0,0 +1,33 @@
+/* Memchr for aarch64, default version for internal use.
+ Copyright (C) 2018 Free Software 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
+ <https://www.gnu.org/licenses/>. */
+
+#if IS_IN (libc)
+# define MEMCHR __memchr_generic
+
+/* Do not hide the generic version of memchr, we use it internally. */
+# undef libc_hidden_builtin_def
+# define libc_hidden_builtin_def(name)
+
+/* Add a hidden definition for use within libc.so. */
+# ifdef SHARED
+ .globl __GI_memchr; __GI_memchr = __memchr_generic
+# endif
+#endif
+
+# include "../memchr.S"
diff --git a/sysdeps/aarch64/multiarch/memchr_nosimd.S b/sysdeps/aarch64/multiarch/memchr_nosimd.S
new file mode 100644
index 0000000000..9d024b04da
--- /dev/null
+++ b/sysdeps/aarch64/multiarch/memchr_nosimd.S
@@ -0,0 +1,223 @@
+/* memchr - find a character in a memory zone using base integer registers
+
+ Copyright (C) 2018 Free Software 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
+ <https://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+/* Assumptions:
+ *
+ * ARMv8-a, AArch64
+ * Use base integer registers.
+ */
+
+#ifndef MEMCHR
+# define MEMCHR __memchr_nosimd
+#endif
+
+/* Arguments and results. */
+#define srcin x0
+#define chrin x1
+#define cntin x2
+
+#define result x0
+
+#define repchr x1
+
+#define tmp1 x2
+#define tmp2 x3
+#define tmp3 x4
+#define tmp4 x5
+
+#define src x6
+#define srcend x7
+#define srcend16 x8
+
+#define anymore x9
+
+#define zeroones x10
+
+#define data1 x11
+#define data2 x12
+
+#define has_chr1 x13
+#define has_chr2 x14
+
+#define REP8_01 0x0101010101010101
+#define REP8_7f 0x7f7f7f7f7f7f7f7f
+
+
+ENTRY_ALIGN (MEMCHR, 6)
+
+ DELOUSE (0)
+ DELOUSE (2)
+
+ /* Do not dereference srcin if no bytes to compare. */
+ cbz cntin, L(none_chr)
+
+ /* Start address is 16-byte aligned or not? */
+ tst srcin, 15
+ bic src, srcin, 15
+
+ mov zeroones, REP8_01
+ and repchr, chrin, 255
+ /* Generate a qword integer as |c|c|c|c|c|c|c|c|. */
+ mul repchr, repchr, zeroones
+
+ add srcend, srcin, cntin
+ /*
+ * srcend16 is address of the block following the last block.
+ *
+ * [A block is 16-byte aligned and sized.]
+ */
+ add srcend16, srcend, 15
+ bic srcend16, srcend16, 15
+
+ b.eq L(loop)
+
+ /* Load the first block containing start address. */
+ ldp data1, data2, [src], 16
+
+ lsl tmp1, srcin, 3
+ mov tmp2, ~0
+#ifdef __AARCH64EB__
+ lsr tmp3, tmp2, tmp1
+#else
+ lsl tmp3, tmp2, tmp1
+#endif
+ /* Start address is in the first or the second qword? */
+ tst srcin, 8
+
+ /*
+ * Transform any byte in the block to zero using XOR operation,
+ * if that byte equals the char to search. In this way, searching
+ * the char becomes detecting zero in the resulting two qwords.
+ */
+ eor data1, data1, repchr
+ eor data2, data2, repchr
+
+ /*
+ * Set those unused bytes(before start address) to 0xff, so
+ * that they will not hit any zero detection.
+ */
+ orn tmp1, data1, tmp3
+ orn tmp2, data2, tmp3
+
+ csinv data1, tmp1, xzr, eq
+ csel data2, data2, tmp2, eq
+
+ /*
+ * When the first and last block are the same, there are two cases:
+ * o. Memory range to search is just in one block.
+ * ( start address - end address) < 0
+ *
+ * o. Memory range is so large that end address wrap-around.
+ * ( start address - end address) > 0
+ */
+ cmp srcin, srcend
+ ccmp src, srcend16, 0, mi
+ csetm anymore, ne
+ b L(find_chr)
+
+ .p2align 4
+L(loop):
+ ldp data1, data2, [src], 16
+
+ subs anymore, src, srcend16
+
+ /*
+ * Transform any byte in the block to zero using XOR operation,
+ * if that byte equals the char to search.
+ */
+ eor data1, data1, repchr
+ eor data2, data2, repchr
+
+L(find_chr):
+ /*
+ * Use the following integer test to find out if any byte in a
+ * qword is zero. If do not contain zero-valued byte, test result
+ * is zero.
+ *
+ * (qword - 0x0101010101010101) & ~(qword) & 0x8080808080808080
+ * =
+ * (qword - 0x0101010101010101) & ~(qword | 0x7f7f7f7f7f7f7f7f)
+ *
+ */
+ sub tmp1, data1, zeroones
+ sub tmp2, data2, zeroones
+
+ orr tmp3, data1, REP8_7f
+ orr tmp4, data2, REP8_7f
+
+ bic has_chr1, tmp1, tmp3
+ bic has_chr2, tmp2, tmp4
+
+ orr tmp1, has_chr1, has_chr2
+ ccmp tmp1, 0, 0, ne
+
+ b.eq L(loop)
+
+ cbz has_chr1, 1f
+ sub result, src, 16
+#ifdef __AARCH64EB__
+ rev data1, data1
+#else
+ rev has_chr1, has_chr1
+#endif
+ b L(done)
+
+1: cbz has_chr2, L(none_chr)
+ sub result, src, 8
+#ifdef __AARCH64EB__
+ rev data1, data2
+#else
+ rev has_chr1, has_chr2
+#endif
+
+L(done):
+#ifdef __AARCH64EB__
+ /*
+ * For big-endian, can not directly use has_chr1/has_chr2 because
+ * two qwords has been reversed after loading from memory.
+ * Thus, have to perform char detection on two qwords again, which
+ * should be byte-swapped this time.
+ */
+ sub tmp1, data1, zeroones
+ orr tmp3, data1, REP8_7f
+ bic has_chr1, tmp1, tmp3
+ rev has_chr1, has_chr1
+#endif
+
+ /*
+ * If the specified char is found in a qword, the corresponding
+ * byte of in has_chr has value of 1, while this is only true for
+ * the first occurrence, not other occurrences.
+ */
+ cmp anymore, 0
+ clz tmp1, has_chr1
+ add result, result, tmp1, lsr 3
+ ccmp result, srcend, 8, eq /* NZCV = 8000 */
+ csel result, result, xzr, mi
+ ret
+
+L(none_chr):
+ mov result, 0
+ ret
+
+END (MEMCHR)
+libc_hidden_builtin_def (MEMCHR)
diff --git a/sysdeps/aarch64/multiarch/memcpy.c b/sysdeps/aarch64/multiarch/memcpy.c
index 4a04a63b0f..13796f987f 100644
--- a/sysdeps/aarch64/multiarch/memcpy.c
+++ b/sysdeps/aarch64/multiarch/memcpy.c
@@ -1,5 +1,5 @@
/* Multiple versions of memcpy. AARCH64 version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
@@ -36,7 +36,7 @@ extern __typeof (__redirect_memcpy) __memcpy_falkor attribute_hidden;
libc_ifunc (__libc_memcpy,
(IS_THUNDERX (midr)
? __memcpy_thunderx
- : (IS_FALKOR (midr) || IS_PHECDA (midr)
+ : (IS_FALKOR (midr) || IS_PHECDA (midr) || IS_ARES (midr)
? __memcpy_falkor
: (IS_THUNDERX2 (midr) || IS_THUNDERX2PA (midr)
? __memcpy_thunderx2
diff --git a/sysdeps/aarch64/multiarch/memcpy_falkor.S b/sysdeps/aarch64/multiarch/memcpy_falkor.S
index cdc2de4750..1845c86d03 100644
--- a/sysdeps/aarch64/multiarch/memcpy_falkor.S
+++ b/sysdeps/aarch64/multiarch/memcpy_falkor.S
@@ -1,5 +1,5 @@
/* Optimized memcpy for Qualcomm Falkor processor.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/aarch64/multiarch/memcpy_generic.S b/sysdeps/aarch64/multiarch/memcpy_generic.S
index 4bc81f4ce5..321f589407 100644
--- a/sysdeps/aarch64/multiarch/memcpy_generic.S
+++ b/sysdeps/aarch64/multiarch/memcpy_generic.S
@@ -1,5 +1,5 @@
/* A Generic Optimized memcpy implementation for AARCH64.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* The actual memcpy and memmove code is in ../memcpy.S. If we are
building libc this file defines __memcpy_generic and __memmove_generic.
diff --git a/sysdeps/aarch64/multiarch/memcpy_thunderx.S b/sysdeps/aarch64/multiarch/memcpy_thunderx.S
index de494d933d..62b7847709 100644
--- a/sysdeps/aarch64/multiarch/memcpy_thunderx.S
+++ b/sysdeps/aarch64/multiarch/memcpy_thunderx.S
@@ -1,5 +1,5 @@
/* A Thunderx Optimized memcpy implementation for AARCH64.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* The actual code in this memcpy and memmove should be identical to the
generic version except for the code under '#ifdef THUNDERX'. This is
@@ -74,13 +74,10 @@
#if IS_IN (libc)
-# ifndef USE_THUNDERX2
# undef MEMCPY
# define MEMCPY __memcpy_thunderx
# undef MEMMOVE
# define MEMMOVE __memmove_thunderx
-# define USE_THUNDERX
-# endif
ENTRY_ALIGN (MEMMOVE, 6)
@@ -182,8 +179,6 @@ L(copy96):
.p2align 4
L(copy_long):
-# if defined(USE_THUNDERX) || defined (USE_THUNDERX2)
-
/* On thunderx, large memcpy's are helped by software prefetching.
This loop is identical to the one below it but with prefetching
instructions included. For loops that are less than 32768 bytes,
@@ -196,11 +191,7 @@ L(copy_long):
bic dst, dstin, 15
ldp D_l, D_h, [src]
sub src, src, tmp1
-# if defined(USE_THUNDERX)
prfm pldl1strm, [src, 384]
-# elif defined(USE_THUNDERX2)
- prfm pldl1strm, [src, 256]
-# endif
add count, count, tmp1 /* Count is now 16 too large. */
ldp A_l, A_h, [src, 16]
stp D_l, D_h, [dstin]
@@ -210,13 +201,9 @@ L(copy_long):
subs count, count, 128 + 16 /* Test and readjust count. */
L(prefetch_loop64):
-# if defined(USE_THUNDERX)
tbz src, #6, 1f
prfm pldl1strm, [src, 512]
1:
-# elif defined(USE_THUNDERX2)
- prfm pldl1strm, [src, 256]
-# endif
stp A_l, A_h, [dst, 16]
ldp A_l, A_h, [src, 16]
stp B_l, B_h, [dst, 32]
@@ -230,7 +217,6 @@ L(prefetch_loop64):
b L(last64)
L(copy_long_without_prefetch):
-# endif
and tmp1, dstin, 15
bic dst, dstin, 15
diff --git a/sysdeps/aarch64/multiarch/memcpy_thunderx2.S b/sysdeps/aarch64/multiarch/memcpy_thunderx2.S
index 8501abf725..d1e9407ff1 100644
--- a/sysdeps/aarch64/multiarch/memcpy_thunderx2.S
+++ b/sysdeps/aarch64/multiarch/memcpy_thunderx2.S
@@ -1,5 +1,5 @@
/* A Thunderx2 Optimized memcpy implementation for AARCH64.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -15,13 +15,463 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-/* The actual code in this memcpy and memmove is in memcpy_thunderx.S.
- The only real differences are with the prefetching instructions. */
+#include <sysdep.h>
+/* Assumptions:
+ *
+ * ARMv8-a, AArch64, unaligned accesses.
+ *
+ */
+
+#define dstin x0
+#define src x1
+#define count x2
+#define dst x3
+#define srcend x4
+#define dstend x5
+#define tmp2 x6
+#define tmp3 x7
+#define tmp3w w7
+#define A_l x6
+#define A_lw w6
+#define A_h x7
+#define A_hw w7
+#define B_l x8
+#define B_lw w8
+#define B_h x9
+#define C_l x10
+#define C_h x11
+#define D_l x12
+#define D_h x13
+#define E_l src
+#define E_h count
+#define F_l srcend
+#define F_h dst
+#define G_l count
+#define G_h dst
+#define tmp1 x14
+
+#define A_q q0
+#define B_q q1
+#define C_q q2
+#define D_q q3
+#define E_q q4
+#define F_q q5
+#define G_q q6
+#define H_q q7
+#define I_q q16
+#define J_q q17
+
+#define A_v v0
+#define B_v v1
+#define C_v v2
+#define D_v v3
+#define E_v v4
+#define F_v v5
+#define G_v v6
+#define H_v v7
+#define I_v v16
+#define J_v v17
+
+#ifndef MEMMOVE
+# define MEMMOVE memmove
+#endif
+#ifndef MEMCPY
+# define MEMCPY memcpy
+#endif
+
+#if IS_IN (libc)
+
+#undef MEMCPY
#define MEMCPY __memcpy_thunderx2
+#undef MEMMOVE
#define MEMMOVE __memmove_thunderx2
-#define USE_THUNDERX2
-#include "memcpy_thunderx.S"
+
+/* Overlapping large forward memmoves use a loop that copies backwards.
+ Otherwise memcpy is used. Small moves branch to memcopy16 directly.
+ The longer memcpy cases fall through to the memcpy head.
+*/
+
+ENTRY_ALIGN (MEMMOVE, 6)
+
+ DELOUSE (0)
+ DELOUSE (1)
+ DELOUSE (2)
+
+ add srcend, src, count
+ cmp count, 16
+ b.ls L(memcopy16)
+ sub tmp1, dstin, src
+ cmp count, 96
+ ccmp tmp1, count, 2, hi
+ b.lo L(move_long)
+
+END (MEMMOVE)
+libc_hidden_builtin_def (MEMMOVE)
+
+
+/* Copies are split into 3 main cases: small copies of up to 16 bytes,
+ medium copies of 17..96 bytes which are fully unrolled. Large copies
+ of more than 96 bytes align the destination and use load-and-merge
+ approach in the case src and dst addresses are unaligned not evenly,
+ so that, actual loads and stores are always aligned.
+ Large copies use the loops processing 64 bytes per iteration for
+ unaligned case and 128 bytes per iteration for aligned ones.
+*/
+
+#define MEMCPY_PREFETCH_LDR 640
+
+ .p2align 4
+ENTRY (MEMCPY)
+
+ DELOUSE (0)
+ DELOUSE (1)
+ DELOUSE (2)
+
+ add srcend, src, count
+ cmp count, 16
+ b.ls L(memcopy16)
+ ldr A_q, [src], #16
+ add dstend, dstin, count
+ and tmp1, src, 15
+ cmp count, 96
+ b.hi L(memcopy_long)
+
+ /* Medium copies: 17..96 bytes. */
+ ldr E_q, [srcend, -16]
+ cmp count, 64
+ b.gt L(memcpy_copy96)
+ cmp count, 48
+ b.le L(bytes_17_to_48)
+ /* 49..64 bytes */
+ ldp B_q, C_q, [src]
+ str E_q, [dstend, -16]
+ stp A_q, B_q, [dstin]
+ str C_q, [dstin, 32]
+ ret
+
+L(bytes_17_to_48):
+ /* 17..48 bytes*/
+ cmp count, 32
+ b.gt L(bytes_32_to_48)
+ /* 17..32 bytes*/
+ str A_q, [dstin]
+ str E_q, [dstend, -16]
+ ret
+
+L(bytes_32_to_48):
+ /* 32..48 */
+ ldr B_q, [src]
+ str A_q, [dstin]
+ str E_q, [dstend, -16]
+ str B_q, [dstin, 16]
+ ret
+
+ .p2align 4
+ /* Small copies: 0..16 bytes. */
+L(memcopy16):
+ cmp count, 8
+ b.lo L(bytes_0_to_8)
+ ldr A_l, [src]
+ ldr A_h, [srcend, -8]
+ add dstend, dstin, count
+ str A_l, [dstin]
+ str A_h, [dstend, -8]
+ ret
+ .p2align 4
+
+L(bytes_0_to_8):
+ tbz count, 2, L(bytes_0_to_3)
+ ldr A_lw, [src]
+ ldr A_hw, [srcend, -4]
+ add dstend, dstin, count
+ str A_lw, [dstin]
+ str A_hw, [dstend, -4]
+ ret
+
+ /* Copy 0..3 bytes. Use a branchless sequence that copies the same
+ byte 3 times if count==1, or the 2nd byte twice if count==2. */
+L(bytes_0_to_3):
+ cbz count, 1f
+ lsr tmp1, count, 1
+ ldrb A_lw, [src]
+ ldrb A_hw, [srcend, -1]
+ add dstend, dstin, count
+ ldrb B_lw, [src, tmp1]
+ strb B_lw, [dstin, tmp1]
+ strb A_hw, [dstend, -1]
+ strb A_lw, [dstin]
+1:
+ ret
+
+ .p2align 4
+
+L(memcpy_copy96):
+ /* Copying 65..96 bytes. A_q (first 16 bytes) and
+ E_q(last 16 bytes) are already loaded. The size
+ is large enough to benefit from aligned loads */
+ bic src, src, 15
+ ldp B_q, C_q, [src]
+ /* Loaded 64 bytes, second 16-bytes chunk can be
+ overlapping with the first chunk by tmp1 bytes.
+ Stored 16 bytes. */
+ sub dst, dstin, tmp1
+ add count, count, tmp1
+ /* The range of count being [65..96] becomes [65..111]
+ after tmp [0..15] gets added to it,
+ count now is <bytes-left-to-load>+48 */
+ cmp count, 80
+ b.gt L(copy96_medium)
+ ldr D_q, [src, 32]
+ stp B_q, C_q, [dst, 16]
+ str D_q, [dst, 48]
+ str A_q, [dstin]
+ str E_q, [dstend, -16]
+ ret
+
+ .p2align 4
+L(copy96_medium):
+ ldp D_q, G_q, [src, 32]
+ cmp count, 96
+ b.gt L(copy96_large)
+ stp B_q, C_q, [dst, 16]
+ stp D_q, G_q, [dst, 48]
+ str A_q, [dstin]
+ str E_q, [dstend, -16]
+ ret
+
+L(copy96_large):
+ ldr F_q, [src, 64]
+ str B_q, [dst, 16]
+ stp C_q, D_q, [dst, 32]
+ stp G_q, F_q, [dst, 64]
+ str A_q, [dstin]
+ str E_q, [dstend, -16]
+ ret
+
+ .p2align 4
+L(memcopy_long):
+ bic src, src, 15
+ ldp B_q, C_q, [src], #32
+ sub dst, dstin, tmp1
+ add count, count, tmp1
+ add dst, dst, 16
+ and tmp1, dst, 15
+ ldp D_q, E_q, [src], #32
+ str A_q, [dstin]
+
+ /* Already loaded 64+16 bytes. Check if at
+ least 64 more bytes left */
+ subs count, count, 64+64+16
+ b.lt L(loop128_exit0)
+ cmp count, MEMCPY_PREFETCH_LDR + 64 + 32
+ b.lt L(loop128)
+ cbnz tmp1, L(dst_unaligned)
+ sub count, count, MEMCPY_PREFETCH_LDR + 64 + 32
+
+ .p2align 4
+
+L(loop128_prefetch):
+ prfm pldl1strm, [src, MEMCPY_PREFETCH_LDR]
+ ldp F_q, G_q, [src], #32
+ stp B_q, C_q, [dst], #32
+ ldp H_q, I_q, [src], #32
+ prfm pldl1strm, [src, MEMCPY_PREFETCH_LDR]
+ ldp B_q, C_q, [src], #32
+ stp D_q, E_q, [dst], #32
+ ldp D_q, E_q, [src], #32
+ stp F_q, G_q, [dst], #32
+ stp H_q, I_q, [dst], #32
+ subs count, count, 128
+ b.ge L(loop128_prefetch)
+
+ add count, count, MEMCPY_PREFETCH_LDR + 64 + 32
+ .p2align 4
+L(loop128):
+ ldp F_q, G_q, [src], #32
+ ldp H_q, I_q, [src], #32
+ stp B_q, C_q, [dst], #32
+ stp D_q, E_q, [dst], #32
+ subs count, count, 64
+ b.lt L(loop128_exit1)
+ ldp B_q, C_q, [src], #32
+ ldp D_q, E_q, [src], #32
+ stp F_q, G_q, [dst], #32
+ stp H_q, I_q, [dst], #32
+ subs count, count, 64
+ b.ge L(loop128)
+L(loop128_exit0):
+ ldp F_q, G_q, [srcend, -64]
+ ldp H_q, I_q, [srcend, -32]
+ stp B_q, C_q, [dst], #32
+ stp D_q, E_q, [dst]
+ stp F_q, G_q, [dstend, -64]
+ stp H_q, I_q, [dstend, -32]
+ ret
+L(loop128_exit1):
+ ldp B_q, C_q, [srcend, -64]
+ ldp D_q, E_q, [srcend, -32]
+ stp F_q, G_q, [dst], #32
+ stp H_q, I_q, [dst]
+ stp B_q, C_q, [dstend, -64]
+ stp D_q, E_q, [dstend, -32]
+ ret
+
+L(dst_unaligned_tail):
+ ldp C_q, D_q, [srcend, -64]
+ ldp E_q, F_q, [srcend, -32]
+ stp A_q, B_q, [dst], #32
+ stp H_q, I_q, [dst], #16
+ str G_q, [dst, tmp1]
+ stp C_q, D_q, [dstend, -64]
+ stp E_q, F_q, [dstend, -32]
+ ret
+
+L(dst_unaligned):
+ /* For the unaligned store case the code loads two
+ aligned chunks and then merges them using ext
+ instruction. This can be up to 30% faster than
+ the the simple unaligned store access.
+
+ Current state: tmp1 = dst % 16; C_q, D_q, E_q
+ contains data yet to be stored. src and dst points
+ to next-to-be-processed data. A_q, B_q contains
+ data already stored before, count = bytes left to
+ be load decremented by 64.
+
+ The control is passed here if at least 64 bytes left
+ to be loaded. The code does two aligned loads and then
+ extracts (16-tmp1) bytes from the first register and
+ tmp1 bytes from the next register forming the value
+ for the aligned store.
+
+ As ext instruction can only have it's index encoded
+ as immediate. 15 code chunks process each possible
+ index value. Computed goto is used to reach the
+ required code. */
+
+ /* Store the 16 bytes to dst and align dst for further
+ operations, several bytes will be stored at this
+ address once more */
+
+ ldp F_q, G_q, [src], #32
+ stp B_q, C_q, [dst], #32
+ bic dst, dst, 15
+ sub count, count, 32
+ adrp tmp2, L(ext_table)
+ add tmp2, tmp2, :lo12:L(ext_table)
+ add tmp2, tmp2, tmp1, LSL #2
+ ldr tmp3w, [tmp2]
+ add tmp2, tmp2, tmp3w, SXTW
+ br tmp2
+
+.p2align 4
+ /* to make the loop in each chunk 16-bytes aligned */
+ nop
+#define EXT_CHUNK(shft) \
+L(ext_size_ ## shft):;\
+ ext A_v.16b, C_v.16b, D_v.16b, 16-shft;\
+ ext B_v.16b, D_v.16b, E_v.16b, 16-shft;\
+ ext H_v.16b, E_v.16b, F_v.16b, 16-shft;\
+1:;\
+ stp A_q, B_q, [dst], #32;\
+ prfm pldl1strm, [src, MEMCPY_PREFETCH_LDR];\
+ ldp C_q, D_q, [src], #32;\
+ ext I_v.16b, F_v.16b, G_v.16b, 16-shft;\
+ stp H_q, I_q, [dst], #32;\
+ ext A_v.16b, G_v.16b, C_v.16b, 16-shft;\
+ ext B_v.16b, C_v.16b, D_v.16b, 16-shft;\
+ ldp F_q, G_q, [src], #32;\
+ ext H_v.16b, D_v.16b, F_v.16b, 16-shft;\
+ subs count, count, 64;\
+ b.ge 1b;\
+2:;\
+ ext I_v.16b, F_v.16b, G_v.16b, 16-shft;\
+ b L(dst_unaligned_tail);
+
+EXT_CHUNK(1)
+EXT_CHUNK(2)
+EXT_CHUNK(3)
+EXT_CHUNK(4)
+EXT_CHUNK(5)
+EXT_CHUNK(6)
+EXT_CHUNK(7)
+EXT_CHUNK(8)
+EXT_CHUNK(9)
+EXT_CHUNK(10)
+EXT_CHUNK(11)
+EXT_CHUNK(12)
+EXT_CHUNK(13)
+EXT_CHUNK(14)
+EXT_CHUNK(15)
+
+L(move_long):
+ .p2align 4
+1:
+ cbz tmp1, 3f
+
+ add srcend, src, count
+ add dstend, dstin, count
+
+ and tmp1, srcend, 15
+ ldr D_q, [srcend, -16]
+ sub srcend, srcend, tmp1
+ sub count, count, tmp1
+ ldp A_q, B_q, [srcend, -32]
+ str D_q, [dstend, -16]
+ ldp C_q, D_q, [srcend, -64]!
+ sub dstend, dstend, tmp1
+ subs count, count, 128
+ b.ls 2f
+
+ .p2align 4
+1:
+ subs count, count, 64
+ stp A_q, B_q, [dstend, -32]
+ ldp A_q, B_q, [srcend, -32]
+ stp C_q, D_q, [dstend, -64]!
+ ldp C_q, D_q, [srcend, -64]!
+ b.hi 1b
+
+ /* Write the last full set of 64 bytes. The remainder is at most 64
+ bytes, so it is safe to always copy 64 bytes from the start even if
+ there is just 1 byte left. */
+2:
+ ldp E_q, F_q, [src, 32]
+ ldp G_q, H_q, [src]
+ stp A_q, B_q, [dstend, -32]
+ stp C_q, D_q, [dstend, -64]
+ stp E_q, F_q, [dstin, 32]
+ stp G_q, H_q, [dstin]
+3: ret
+
+
+END (MEMCPY)
+ .section .rodata
+ .p2align 4
+
+L(ext_table):
+ /* The first entry is for the alignment of 0 and is never
+ actually used (could be any value). */
+ .word 0
+ .word L(ext_size_1) -.
+ .word L(ext_size_2) -.
+ .word L(ext_size_3) -.
+ .word L(ext_size_4) -.
+ .word L(ext_size_5) -.
+ .word L(ext_size_6) -.
+ .word L(ext_size_7) -.
+ .word L(ext_size_8) -.
+ .word L(ext_size_9) -.
+ .word L(ext_size_10) -.
+ .word L(ext_size_11) -.
+ .word L(ext_size_12) -.
+ .word L(ext_size_13) -.
+ .word L(ext_size_14) -.
+ .word L(ext_size_15) -.
+
+libc_hidden_builtin_def (MEMCPY)
+#endif
diff --git a/sysdeps/aarch64/multiarch/memmove.c b/sysdeps/aarch64/multiarch/memmove.c
index e69d816291..3b1bf6f633 100644
--- a/sysdeps/aarch64/multiarch/memmove.c
+++ b/sysdeps/aarch64/multiarch/memmove.c
@@ -1,5 +1,5 @@
/* Multiple versions of memmove. AARCH64 version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
@@ -30,6 +30,7 @@ extern __typeof (__redirect_memmove) __libc_memmove;
extern __typeof (__redirect_memmove) __memmove_generic attribute_hidden;
extern __typeof (__redirect_memmove) __memmove_thunderx attribute_hidden;
+extern __typeof (__redirect_memmove) __memmove_thunderx2 attribute_hidden;
extern __typeof (__redirect_memmove) __memmove_falkor attribute_hidden;
libc_ifunc (__libc_memmove,
@@ -37,7 +38,9 @@ libc_ifunc (__libc_memmove,
? __memmove_thunderx
: (IS_FALKOR (midr) || IS_PHECDA (midr)
? __memmove_falkor
- : __memmove_generic)));
+ : (IS_THUNDERX2 (midr) || IS_THUNDERX2PA (midr)
+ ? __memmove_thunderx2
+ : __memmove_generic))));
# undef memmove
strong_alias (__libc_memmove, memmove);
diff --git a/sysdeps/aarch64/multiarch/memmove_falkor.S b/sysdeps/aarch64/multiarch/memmove_falkor.S
index 5163f68e53..3da405664b 100644
--- a/sysdeps/aarch64/multiarch/memmove_falkor.S
+++ b/sysdeps/aarch64/multiarch/memmove_falkor.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2017-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/aarch64/multiarch/memset.c b/sysdeps/aarch64/multiarch/memset.c
index d74ed3a549..e9cdd385f2 100644
--- a/sysdeps/aarch64/multiarch/memset.c
+++ b/sysdeps/aarch64/multiarch/memset.c
@@ -1,5 +1,5 @@
/* Multiple versions of memset. AARCH64 version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
@@ -29,12 +29,15 @@
extern __typeof (__redirect_memset) __libc_memset;
extern __typeof (__redirect_memset) __memset_falkor attribute_hidden;
+extern __typeof (__redirect_memset) __memset_emag attribute_hidden;
extern __typeof (__redirect_memset) __memset_generic attribute_hidden;
libc_ifunc (__libc_memset,
((IS_FALKOR (midr) || IS_PHECDA (midr)) && zva_size == 64
? __memset_falkor
- : __memset_generic));
+ : (IS_EMAG (midr) && zva_size == 64
+ ? __memset_emag
+ : __memset_generic)));
# undef memset
strong_alias (__libc_memset, memset);
diff --git a/sysdeps/aarch64/multiarch/memset_base64.S b/sysdeps/aarch64/multiarch/memset_base64.S
new file mode 100644
index 0000000000..e05e81cb37
--- /dev/null
+++ b/sysdeps/aarch64/multiarch/memset_base64.S
@@ -0,0 +1,186 @@
+/* Copyright (C) 2018 Free Software 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
+ <https://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include "memset-reg.h"
+
+#ifndef MEMSET
+# define MEMSET __memset_base64
+#endif
+
+/* To disable DC ZVA, set this threshold to 0. */
+#ifndef DC_ZVA_THRESHOLD
+# define DC_ZVA_THRESHOLD 512
+#endif
+
+/* Assumptions:
+ *
+ * ARMv8-a, AArch64, unaligned accesses
+ *
+ */
+
+ENTRY_ALIGN (MEMSET, 6)
+
+ DELOUSE (0)
+ DELOUSE (2)
+
+ bfi valw, valw, 8, 8
+ bfi valw, valw, 16, 16
+ bfi val, val, 32, 32
+
+ add dstend, dstin, count
+
+ cmp count, 96
+ b.hi L(set_long)
+ cmp count, 16
+ b.hs L(set_medium)
+
+ /* Set 0..15 bytes. */
+ tbz count, 3, 1f
+ str val, [dstin]
+ str val, [dstend, -8]
+ ret
+
+ .p2align 3
+1: tbz count, 2, 2f
+ str valw, [dstin]
+ str valw, [dstend, -4]
+ ret
+2: cbz count, 3f
+ strb valw, [dstin]
+ tbz count, 1, 3f
+ strh valw, [dstend, -2]
+3: ret
+
+ .p2align 3
+ /* Set 16..96 bytes. */
+L(set_medium):
+ stp val, val, [dstin]
+ tbnz count, 6, L(set96)
+ stp val, val, [dstend, -16]
+ tbz count, 5, 1f
+ stp val, val, [dstin, 16]
+ stp val, val, [dstend, -32]
+1: ret
+
+ .p2align 4
+ /* Set 64..96 bytes. Write 64 bytes from the start and
+ 32 bytes from the end. */
+L(set96):
+ stp val, val, [dstin, 16]
+ stp val, val, [dstin, 32]
+ stp val, val, [dstin, 48]
+ stp val, val, [dstend, -32]
+ stp val, val, [dstend, -16]
+ ret
+
+ .p2align 4
+L(set_long):
+ stp val, val, [dstin]
+ bic dst, dstin, 15
+#if DC_ZVA_THRESHOLD
+ cmp count, DC_ZVA_THRESHOLD
+ ccmp val, 0, 0, cs
+ b.eq L(zva_64)
+#endif
+ /* Small-size or non-zero memset does not use DC ZVA. */
+ sub count, dstend, dst
+
+ /*
+ * Adjust count and bias for loop. By substracting extra 1 from count,
+ * it is easy to use tbz instruction to check whether loop tailing
+ * count is less than 33 bytes, so as to bypass 2 unneccesary stps.
+ */
+ sub count, count, 64+16+1
+
+#if DC_ZVA_THRESHOLD
+ /* Align loop on 16-byte boundary, this might be friendly to i-cache. */
+ nop
+#endif
+
+1: stp val, val, [dst, 16]
+ stp val, val, [dst, 32]
+ stp val, val, [dst, 48]
+ stp val, val, [dst, 64]!
+ subs count, count, 64
+ b.hs 1b
+
+ tbz count, 5, 1f /* Remaining count is less than 33 bytes? */
+ stp val, val, [dst, 16]
+ stp val, val, [dst, 32]
+1: stp val, val, [dstend, -32]
+ stp val, val, [dstend, -16]
+ ret
+
+#if DC_ZVA_THRESHOLD
+ .p2align 3
+L(zva_64):
+ stp val, val, [dst, 16]
+ stp val, val, [dst, 32]
+ stp val, val, [dst, 48]
+ bic dst, dst, 63
+
+ /*
+ * Previous memory writes might cross cache line boundary, and cause
+ * cache line partially dirty. Zeroing this kind of cache line using
+ * DC ZVA will incur extra cost, for it requires loading untouched
+ * part of the line from memory before zeoring.
+ *
+ * So, write the first 64 byte aligned block using stp to force
+ * fully dirty cache line.
+ */
+ stp val, val, [dst, 64]
+ stp val, val, [dst, 80]
+ stp val, val, [dst, 96]
+ stp val, val, [dst, 112]
+
+ sub count, dstend, dst
+ /*
+ * Adjust count and bias for loop. By substracting extra 1 from count,
+ * it is easy to use tbz instruction to check whether loop tailing
+ * count is less than 33 bytes, so as to bypass 2 unneccesary stps.
+ */
+ sub count, count, 128+64+64+1
+ add dst, dst, 128
+ nop
+
+ /* DC ZVA sets 64 bytes each time. */
+1: dc zva, dst
+ add dst, dst, 64
+ subs count, count, 64
+ b.hs 1b
+
+ /*
+ * Write the last 64 byte aligned block using stp to force fully
+ * dirty cache line.
+ */
+ stp val, val, [dst, 0]
+ stp val, val, [dst, 16]
+ stp val, val, [dst, 32]
+ stp val, val, [dst, 48]
+
+ tbz count, 5, 1f /* Remaining count is less than 33 bytes? */
+ stp val, val, [dst, 64]
+ stp val, val, [dst, 80]
+1: stp val, val, [dstend, -32]
+ stp val, val, [dstend, -16]
+ ret
+#endif
+
+END (MEMSET)
+libc_hidden_builtin_def (MEMSET)
diff --git a/sysdeps/aarch64/multiarch/memset_emag.S b/sysdeps/aarch64/multiarch/memset_emag.S
new file mode 100644
index 0000000000..981940db3d
--- /dev/null
+++ b/sysdeps/aarch64/multiarch/memset_emag.S
@@ -0,0 +1,34 @@
+/* Optimized memset for AmpereComputing emag processor.
+ Copyright (C) 2018 Free Software 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
+ <https://www.gnu.org/licenses/>. */
+
+#if IS_IN (libc)
+# define MEMSET __memset_emag
+
+/*
+ * Using DC ZVA to zero memory does not produce better performance if
+ * memory size is not very large, especially when there are multiple
+ * processes/threads contending memory/cache. Here we set threshold to
+ * zero to disable using DC ZVA, which is good for multi-process/thread
+ * workloads.
+ */
+
+# define DC_ZVA_THRESHOLD 0
+
+# include "./memset_base64.S"
+#endif
diff --git a/sysdeps/aarch64/multiarch/memset_falkor.S b/sysdeps/aarch64/multiarch/memset_falkor.S
index 16849a5afb..a0a632cb9e 100644
--- a/sysdeps/aarch64/multiarch/memset_falkor.S
+++ b/sysdeps/aarch64/multiarch/memset_falkor.S
@@ -1,5 +1,5 @@
/* Memset for falkor.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <memset-reg.h>
diff --git a/sysdeps/aarch64/multiarch/memset_generic.S b/sysdeps/aarch64/multiarch/memset_generic.S
index 345a88b94f..512ceaba2e 100644
--- a/sysdeps/aarch64/multiarch/memset_generic.S
+++ b/sysdeps/aarch64/multiarch/memset_generic.S
@@ -1,5 +1,5 @@
/* Memset for aarch64, default version for internal use.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# define MEMSET __memset_generic
diff --git a/sysdeps/aarch64/multiarch/rtld-memset.S b/sysdeps/aarch64/multiarch/rtld-memset.S
index 8cdc6e1f50..4814453fc9 100644
--- a/sysdeps/aarch64/multiarch/rtld-memset.S
+++ b/sysdeps/aarch64/multiarch/rtld-memset.S
@@ -1,5 +1,5 @@
/* Memset for aarch64, for the dynamic linker.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (rtld)
# define MEMSET memset
diff --git a/sysdeps/aarch64/multiarch/strlen.c b/sysdeps/aarch64/multiarch/strlen.c
new file mode 100644
index 0000000000..1db01babee
--- /dev/null
+++ b/sysdeps/aarch64/multiarch/strlen.c
@@ -0,0 +1,41 @@
+/* Multiple versions of strlen. AARCH64 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+/* Define multiple versions only for the definition in libc. */
+
+#if IS_IN (libc)
+/* Redefine strlen so that the compiler won't complain about the type
+ mismatch with the IFUNC selector in strong_alias, below. */
+# undef strlen
+# define strlen __redirect_strlen
+# include <string.h>
+# include <init-arch.h>
+
+#define USE_ASIMD_STRLEN() IS_FALKOR (midr)
+
+extern __typeof (__redirect_strlen) __strlen;
+
+extern __typeof (__redirect_strlen) __strlen_generic attribute_hidden;
+extern __typeof (__redirect_strlen) __strlen_asimd attribute_hidden;
+
+libc_ifunc (__strlen,
+ (USE_ASIMD_STRLEN () ? __strlen_asimd : __strlen_generic));
+
+# undef strlen
+strong_alias (__strlen, strlen);
+#endif
diff --git a/sysdeps/aarch64/multiarch/strlen_asimd.S b/sysdeps/aarch64/multiarch/strlen_asimd.S
new file mode 100644
index 0000000000..1d1c6abb82
--- /dev/null
+++ b/sysdeps/aarch64/multiarch/strlen_asimd.S
@@ -0,0 +1,168 @@
+/* Strlen implementation that uses ASIMD instructions for load and NULL checks.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+/* Assumptions:
+
+ ARMv8-a, AArch64, ASIMD, unaligned accesses, min page size 4k. */
+
+/* To test the page crossing code path more thoroughly, compile with
+ -DTEST_PAGE_CROSS - this will force all calls through the slower
+ entry path. This option is not intended for production use. */
+
+/* Arguments and results. */
+#define srcin x0
+#define len x0
+
+/* Locals and temporaries. */
+#define src x1
+#define data1 x2
+#define data2 x3
+#define has_nul1 x4
+#define has_nul2 x5
+#define tmp1 x4
+#define tmp2 x5
+#define tmp3 x6
+#define tmp4 x7
+#define zeroones x8
+#define dataq q2
+#define datav v2
+#define datab2 b3
+#define dataq2 q3
+#define datav2 v3
+
+#ifdef TEST_PAGE_CROSS
+# define MIN_PAGE_SIZE 16
+#else
+# define MIN_PAGE_SIZE 4096
+#endif
+
+ /* Since strings are short on average, we check the first 16 bytes
+ of the string for a NUL character. In order to do an unaligned load
+ safely we have to do a page cross check first. If there is a NUL
+ byte we calculate the length from the 2 8-byte words using
+ conditional select to reduce branch mispredictions (it is unlikely
+ strlen_asimd will be repeatedly called on strings with the same
+ length).
+
+ If the string is longer than 16 bytes, we align src so don't need
+ further page cross checks, and process 16 bytes per iteration.
+
+ If the page cross check fails, we read 16 bytes from an aligned
+ address, remove any characters before the string, and continue
+ in the main loop using aligned loads. Since strings crossing a
+ page in the first 16 bytes are rare (probability of
+ 16/MIN_PAGE_SIZE ~= 0.4%), this case does not need to be optimized.
+
+ AArch64 systems have a minimum page size of 4k. We don't bother
+ checking for larger page sizes - the cost of setting up the correct
+ page size is just not worth the extra gain from a small reduction in
+ the cases taking the slow path. Note that we only care about
+ whether the first fetch, which may be misaligned, crosses a page
+ boundary. */
+
+ENTRY_ALIGN (__strlen_asimd, 6)
+ DELOUSE (0)
+ DELOUSE (1)
+ and tmp1, srcin, MIN_PAGE_SIZE - 1
+ cmp tmp1, MIN_PAGE_SIZE - 16
+ b.gt L(page_cross)
+ ldr dataq, [srcin]
+#ifdef __AARCH64EB__
+ rev64 datav.16b, datav.16b
+#endif
+
+ /* Get the minimum value and keep going if it is not zero. */
+ uminv datab2, datav.16b
+ mov tmp1, datav2.d[0]
+ cbnz tmp1, L(main_loop_entry)
+
+ cmeq datav.16b, datav.16b, #0
+ mov data1, datav.d[0]
+ mov data2, datav.d[1]
+ cmp data1, 0
+ csel data1, data1, data2, ne
+ mov len, 8
+ rev data1, data1
+ clz tmp1, data1
+ csel len, xzr, len, ne
+ add len, len, tmp1, lsr 3
+ ret
+
+L(main_loop_entry):
+ bic src, srcin, 15
+
+L(main_loop):
+ ldr dataq, [src, 16]!
+L(page_cross_entry):
+ /* Get the minimum value and keep going if it is not zero. */
+ uminv datab2, datav.16b
+ mov tmp1, datav2.d[0]
+ cbnz tmp1, L(main_loop)
+
+L(tail):
+#ifdef __AARCH64EB__
+ rev64 datav.16b, datav.16b
+#endif
+ /* Set te NULL byte as 0xff and the rest as 0x00, move the data into a
+ pair of scalars and then compute the length from the earliest NULL
+ byte. */
+ cmeq datav.16b, datav.16b, #0
+ mov data1, datav.d[0]
+ mov data2, datav.d[1]
+ cmp data1, 0
+ csel data1, data1, data2, ne
+ sub len, src, srcin
+ rev data1, data1
+ add tmp2, len, 8
+ clz tmp1, data1
+ csel len, len, tmp2, ne
+ add len, len, tmp1, lsr 3
+ ret
+
+ /* Load 16 bytes from [srcin & ~15] and force the bytes that precede
+ srcin to 0xff, so we ignore any NUL bytes before the string.
+ Then continue in the aligned loop. */
+L(page_cross):
+ mov tmp3, 63
+ bic src, srcin, 15
+ and tmp1, srcin, 7
+ ands tmp2, srcin, 8
+ ldr dataq, [src]
+ lsl tmp1, tmp1, 3
+ csel tmp2, tmp2, tmp1, eq
+ csel tmp1, tmp1, tmp3, eq
+ mov tmp4, -1
+#ifdef __AARCH64EB__
+ /* Big-endian. Early bytes are at MSB. */
+ lsr tmp1, tmp4, tmp1
+ lsr tmp2, tmp4, tmp2
+#else
+ /* Little-endian. Early bytes are at LSB. */
+ lsl tmp1, tmp4, tmp1
+ lsl tmp2, tmp4, tmp2
+#endif
+ mov datav2.d[0], tmp1
+ mov datav2.d[1], tmp2
+ orn datav.16b, datav.16b, datav2.16b
+ b L(page_cross_entry)
+END (__strlen_asimd)
+weak_alias (__strlen_asimd, strlen_asimd)
+libc_hidden_builtin_def (strlen_asimd)
diff --git a/sysdeps/aarch64/multiarch/strlen_generic.S b/sysdeps/aarch64/multiarch/strlen_generic.S
new file mode 100644
index 0000000000..f906677c8d
--- /dev/null
+++ b/sysdeps/aarch64/multiarch/strlen_generic.S
@@ -0,0 +1,39 @@
+/* A Generic Optimized strlen implementation for AARCH64.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+/* The actual strlen code is in ../strlen.S. If we are building libc this file
+ defines __strlen_generic. Otherwise the include of ../strlen.S will define
+ the normal __strlen entry points. */
+
+#include <sysdep.h>
+
+#if IS_IN (libc)
+
+# define STRLEN __strlen_generic
+
+/* Do not hide the generic version of strlen, we use it internally. */
+# undef libc_hidden_builtin_def
+# define libc_hidden_builtin_def(name)
+
+# ifdef SHARED
+/* It doesn't make sense to send libc-internal strlen calls through a PLT. */
+ .globl __GI_strlen; __GI_strlen = __strlen_generic
+# endif
+#endif
+
+#include "../strlen.S"
diff --git a/sysdeps/aarch64/nptl/Makefile b/sysdeps/aarch64/nptl/Makefile
index bebbdef871..8e26dc445b 100644
--- a/sysdeps/aarch64/nptl/Makefile
+++ b/sysdeps/aarch64/nptl/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 2005-2018 Free Software Foundation, Inc.
+# Copyright (C) 2005-2019 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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
ifeq ($(subdir),csu)
gen-as-const-headers += tcb-offsets.sym
diff --git a/sysdeps/aarch64/nptl/bits/pthreadtypes-arch.h b/sysdeps/aarch64/nptl/bits/pthreadtypes-arch.h
index 008aa7e0c7..33c7928bf2 100644
--- a/sysdeps/aarch64/nptl/bits/pthreadtypes-arch.h
+++ b/sysdeps/aarch64/nptl/bits/pthreadtypes-arch.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -14,12 +14,12 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_PTHREADTYPES_ARCH_H
#define _BITS_PTHREADTYPES_ARCH_H 1
-#include <endian.h>
+#include <bits/endian.h>
#ifdef __ILP32__
# define __SIZEOF_PTHREAD_ATTR_T 32
@@ -41,31 +41,7 @@
#define __SIZEOF_PTHREAD_COND_T 48
#define __SIZEOF_PTHREAD_RWLOCKATTR_T 8
-/* Definitions for internal mutex struct. */
-#define __PTHREAD_COMPAT_PADDING_MID
-#define __PTHREAD_COMPAT_PADDING_END
-#define __PTHREAD_MUTEX_LOCK_ELISION 0
-#define __PTHREAD_MUTEX_NUSERS_AFTER_KIND 0
-#define __PTHREAD_MUTEX_USE_UNION 0
-
#define __LOCK_ALIGNMENT
#define __ONCE_ALIGNMENT
-struct __pthread_rwlock_arch_t
-{
- unsigned int __readers;
- unsigned int __writers;
- unsigned int __wrphase_futex;
- unsigned int __writers_futex;
- unsigned int __pad3;
- unsigned int __pad4;
- int __cur_writer;
- int __shared;
- unsigned long int __pad1;
- unsigned long int __pad2;
- unsigned int __flags;
-};
-
-#define __PTHREAD_RWLOCK_ELISION_EXTRA 0
-
#endif /* bits/pthreadtypes.h */
diff --git a/sysdeps/aarch64/nptl/bits/semaphore.h b/sysdeps/aarch64/nptl/bits/semaphore.h
index 18f8aae532..1e7d331746 100644
--- a/sysdeps/aarch64/nptl/bits/semaphore.h
+++ b/sysdeps/aarch64/nptl/bits/semaphore.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SEMAPHORE_H
# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
diff --git a/sysdeps/aarch64/nptl/bits/struct_rwlock.h b/sysdeps/aarch64/nptl/bits/struct_rwlock.h
new file mode 100644
index 0000000000..c5ea2b2469
--- /dev/null
+++ b/sysdeps/aarch64/nptl/bits/struct_rwlock.h
@@ -0,0 +1,41 @@
+/* AArch64 internal rwlock struct definitions.
+ 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; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _RWLOCK_INTERNAL_H
+#define _RWLOCK_INTERNAL_H
+
+struct __pthread_rwlock_arch_t
+{
+ unsigned int __readers;
+ unsigned int __writers;
+ unsigned int __wrphase_futex;
+ unsigned int __writers_futex;
+ unsigned int __pad3;
+ unsigned int __pad4;
+ int __cur_writer;
+ int __shared;
+ unsigned long int __pad1;
+ unsigned long int __pad2;
+ unsigned int __flags;
+};
+
+#define __PTHREAD_RWLOCK_INITIALIZER(__flags) \
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, __flags
+
+#endif
diff --git a/sysdeps/aarch64/nptl/pthread-offsets.h b/sysdeps/aarch64/nptl/pthread-offsets.h
deleted file mode 100644
index 16c6b0d9fd..0000000000
--- a/sysdeps/aarch64/nptl/pthread-offsets.h
+++ /dev/null
@@ -1,5 +0,0 @@
-#define __PTHREAD_MUTEX_NUSERS_OFFSET 12
-#define __PTHREAD_MUTEX_KIND_OFFSET 16
-#define __PTHREAD_MUTEX_SPINS_OFFSET 20
-#define __PTHREAD_MUTEX_ELISION_OFFSET 22
-#define __PTHREAD_MUTEX_LIST_OFFSET 24
diff --git a/sysdeps/aarch64/nptl/pthreaddef.h b/sysdeps/aarch64/nptl/pthreaddef.h
index 32f729ada1..52ec65e0b5 100644
--- a/sysdeps/aarch64/nptl/pthreaddef.h
+++ b/sysdeps/aarch64/nptl/pthreaddef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Default stack size. */
#define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024)
diff --git a/sysdeps/aarch64/nptl/tls.h b/sysdeps/aarch64/nptl/tls.h
index 200334f84a..691c3e23cd 100644
--- a/sysdeps/aarch64/nptl/tls.h
+++ b/sysdeps/aarch64/nptl/tls.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _TLS_H
#define _TLS_H 1
diff --git a/sysdeps/aarch64/rawmemchr.S b/sysdeps/aarch64/rawmemchr.S
index de3c05f337..caf410e14a 100644
--- a/sysdeps/aarch64/rawmemchr.S
+++ b/sysdeps/aarch64/rawmemchr.S
@@ -1,6 +1,6 @@
/* rawmemchr - find a character in a memory zone
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/aarch64/setjmp.S b/sysdeps/aarch64/setjmp.S
index d8838e7b54..afbca2fbe6 100644
--- a/sysdeps/aarch64/setjmp.S
+++ b/sysdeps/aarch64/setjmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <jmpbuf-offsets.h>
diff --git a/sysdeps/aarch64/sfp-machine.h b/sysdeps/aarch64/sfp-machine.h
index 3e969952fa..a9ecdbf961 100644
--- a/sysdeps/aarch64/sfp-machine.h
+++ b/sysdeps/aarch64/sfp-machine.h
@@ -31,8 +31,8 @@
NaNs is sNaN, in which case the result is NANSIGN/NANFRAC. */
#define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \
do { \
- if ((_FP_FRAC_HIGH_RAW_##fs(X) | \
- _FP_FRAC_HIGH_RAW_##fs(Y)) & _FP_QNANBIT_##fs) \
+ if ((_FP_FRAC_HIGH_RAW_##fs(X) \
+ | _FP_FRAC_HIGH_RAW_##fs(Y)) & _FP_QNANBIT_##fs) \
{ \
R##_s = _FP_NANSIGN_##fs; \
_FP_FRAC_SET_##wc(R,_FP_NANFRAC_##fs); \
diff --git a/sysdeps/aarch64/sotruss-lib.c b/sysdeps/aarch64/sotruss-lib.c
index 5dafacc21f..12cdd40a19 100644
--- a/sysdeps/aarch64/sotruss-lib.c
+++ b/sysdeps/aarch64/sotruss-lib.c
@@ -1,5 +1,5 @@
/* Override generic sotruss-lib.c to define actual functions for AArch64.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define HAVE_ARCH_PLTENTER
#define HAVE_ARCH_PLTEXIT
diff --git a/sysdeps/aarch64/stackinfo.h b/sysdeps/aarch64/stackinfo.h
index 7e666fbe18..453d5b024a 100644
--- a/sysdeps/aarch64/stackinfo.h
+++ b/sysdeps/aarch64/stackinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file contains a bit of information about the stack allocation
of the processor. */
diff --git a/sysdeps/aarch64/start.S b/sysdeps/aarch64/start.S
index bad000f555..c43e4364c1 100644
--- a/sysdeps/aarch64/start.S
+++ b/sysdeps/aarch64/start.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/aarch64/stpcpy.S b/sysdeps/aarch64/stpcpy.S
index dcf1356bda..6db31c716c 100644
--- a/sysdeps/aarch64/stpcpy.S
+++ b/sysdeps/aarch64/stpcpy.S
@@ -1,5 +1,5 @@
/* stpcpy - copy a string returning pointer to end.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define BUILD_STPCPY
#include "strcpy.S"
diff --git a/sysdeps/aarch64/strchr.S b/sysdeps/aarch64/strchr.S
index c27465220b..5b0154f0db 100644
--- a/sysdeps/aarch64/strchr.S
+++ b/sysdeps/aarch64/strchr.S
@@ -1,6 +1,6 @@
/* strchr - find a character in a string
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/aarch64/strchrnul.S b/sysdeps/aarch64/strchrnul.S
index e13ace5b7e..c72010634d 100644
--- a/sysdeps/aarch64/strchrnul.S
+++ b/sysdeps/aarch64/strchrnul.S
@@ -1,6 +1,6 @@
/* strchrnul - find a character or nul in a string
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/aarch64/strcmp.S b/sysdeps/aarch64/strcmp.S
index 267aa4b551..7d4b9371dc 100644
--- a/sysdeps/aarch64/strcmp.S
+++ b/sysdeps/aarch64/strcmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Assumptions:
*
diff --git a/sysdeps/aarch64/strcpy.S b/sysdeps/aarch64/strcpy.S
index 0449fcb04e..edc16252f6 100644
--- a/sysdeps/aarch64/strcpy.S
+++ b/sysdeps/aarch64/strcpy.S
@@ -1,5 +1,5 @@
/* strcpy/stpcpy - copy a string returning pointer to start/end.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* To build as stpcpy, define BUILD_STPCPY before compiling this file.
diff --git a/sysdeps/aarch64/string_private.h b/sysdeps/aarch64/string_private.h
index ba6297417a..30579e92b3 100644
--- a/sysdeps/aarch64/string_private.h
+++ b/sysdeps/aarch64/string_private.h
@@ -1,5 +1,5 @@
/* Define _STRING_ARCH_unaligned. AArch64 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* AArch64 implementations support efficient unaligned access. */
#define _STRING_ARCH_unaligned 1
diff --git a/sysdeps/aarch64/strlen.S b/sysdeps/aarch64/strlen.S
index 32292e3b6e..5f4129822f 100644
--- a/sysdeps/aarch64/strlen.S
+++ b/sysdeps/aarch64/strlen.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
@@ -23,6 +23,10 @@
* ARMv8-a, AArch64, unaligned accesses, min page size 4k.
*/
+#ifndef STRLEN
+# define STRLEN __strlen
+#endif
+
/* To test the page crossing code path more thoroughly, compile with
-DTEST_PAGE_CROSS - this will force all calls through the slower
entry path. This option is not intended for production use. */
@@ -54,7 +58,7 @@
#define REP8_80 0x8080808080808080
#ifdef TEST_PAGE_CROSS
-# define MIN_PAGE_SIZE 15
+# define MIN_PAGE_SIZE 16
#else
# define MIN_PAGE_SIZE 4096
#endif
@@ -84,7 +88,7 @@
whether the first fetch, which may be misaligned, crosses a page
boundary. */
-ENTRY_ALIGN (__strlen, 6)
+ENTRY_ALIGN (STRLEN, 6)
DELOUSE (0)
DELOUSE (1)
and tmp1, srcin, MIN_PAGE_SIZE - 1
@@ -215,6 +219,6 @@ L(page_cross):
csel data1, data1, tmp4, eq
csel data2, data2, tmp2, eq
b L(page_cross_entry)
-END (__strlen)
-weak_alias (__strlen, strlen)
+END (STRLEN)
+weak_alias (STRLEN, strlen)
libc_hidden_builtin_def (strlen)
diff --git a/sysdeps/aarch64/strncmp.S b/sysdeps/aarch64/strncmp.S
index 759c752fc2..fe6359145b 100644
--- a/sysdeps/aarch64/strncmp.S
+++ b/sysdeps/aarch64/strncmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2013-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/aarch64/strnlen.S b/sysdeps/aarch64/strnlen.S
index 0f190e83e2..70283c8074 100644
--- a/sysdeps/aarch64/strnlen.S
+++ b/sysdeps/aarch64/strnlen.S
@@ -1,6 +1,6 @@
/* strnlen - calculate the length of a string with limit.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/aarch64/strrchr.S b/sysdeps/aarch64/strrchr.S
index aa334ede53..1610ed4c3d 100644
--- a/sysdeps/aarch64/strrchr.S
+++ b/sysdeps/aarch64/strrchr.S
@@ -1,6 +1,6 @@
/* strrchr: find the last instance of a character in a string.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/aarch64/sys/ifunc.h b/sysdeps/aarch64/sys/ifunc.h
new file mode 100644
index 0000000000..6894e451a1
--- /dev/null
+++ b/sysdeps/aarch64/sys/ifunc.h
@@ -0,0 +1,42 @@
+/* Definitions used by AArch64 indirect function resolvers.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_IFUNC_H
+#define _SYS_IFUNC_H
+
+/* A second argument is passed to the ifunc resolver. */
+#define _IFUNC_ARG_HWCAP (1ULL << 62)
+
+/* The prototype of a gnu indirect function resolver on AArch64 is
+
+ ElfW(Addr) ifunc_resolver (uint64_t, const __ifunc_arg_t *);
+
+ the first argument should have the _IFUNC_ARG_HWCAP bit set and
+ the remaining bits should match the AT_HWCAP settings. */
+
+/* Second argument to an ifunc resolver. */
+struct __ifunc_arg_t
+{
+ unsigned long _size; /* Size of the struct, so it can grow. */
+ unsigned long _hwcap;
+ unsigned long _hwcap2;
+};
+
+typedef struct __ifunc_arg_t __ifunc_arg_t;
+
+#endif
diff --git a/sysdeps/aarch64/sysdep.h b/sysdeps/aarch64/sysdep.h
index 5b30709436..2230f440f5 100644
--- a/sysdeps/aarch64/sysdep.h
+++ b/sysdeps/aarch64/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _AARCH64_SYSDEP_H
#define _AARCH64_SYSDEP_H
diff --git a/sysdeps/aarch64/tls-macros.h b/sysdeps/aarch64/tls-macros.h
index cc58a7d6bf..3d39c952f9 100644
--- a/sysdeps/aarch64/tls-macros.h
+++ b/sysdeps/aarch64/tls-macros.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TLS_LD(x) TLS_GD(x)
diff --git a/sysdeps/aarch64/tlsdesc.c b/sysdeps/aarch64/tlsdesc.c
index 357465f23d..9a8e7d78f2 100644
--- a/sysdeps/aarch64/tlsdesc.c
+++ b/sysdeps/aarch64/tlsdesc.c
@@ -1,6 +1,6 @@
/* Manage TLS descriptors. AArch64 version.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ldsodefs.h>
#include <tls.h>
diff --git a/sysdeps/aarch64/tst-audit.h b/sysdeps/aarch64/tst-audit.h
index fd4f38f613..33c5d620c7 100644
--- a/sysdeps/aarch64/tst-audit.h
+++ b/sysdeps/aarch64/tst-audit.h
@@ -1,6 +1,6 @@
/* Definitions for testing PLT entry/exit auditing. AArch64 version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define pltenter la_aarch64_gnu_pltenter
#define pltexit la_aarch64_gnu_pltexit
diff --git a/sysdeps/aarch64/tst-ifunc-arg-1.c b/sysdeps/aarch64/tst-ifunc-arg-1.c
new file mode 100644
index 0000000000..f3586ab302
--- /dev/null
+++ b/sysdeps/aarch64/tst-ifunc-arg-1.c
@@ -0,0 +1,63 @@
+/* Test STT_GNU_IFUNC resolver with second argument.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdint.h>
+#include <sys/auxv.h>
+#include <sys/ifunc.h>
+#include <support/check.h>
+
+static int
+one (void)
+{
+ return 1;
+}
+
+static uint64_t saved_arg1;
+static __ifunc_arg_t saved_arg2;
+
+/* extern visible ifunc symbol. */
+int
+foo (void);
+
+void *
+foo_ifunc (uint64_t, const __ifunc_arg_t *) __asm__ ("foo");
+__asm__(".type foo, %gnu_indirect_function");
+
+void *
+inhibit_stack_protector
+foo_ifunc (uint64_t arg1, const __ifunc_arg_t *arg2)
+{
+ saved_arg1 = arg1;
+ if (arg1 & _IFUNC_ARG_HWCAP)
+ saved_arg2 = *arg2;
+ return (void *) one;
+}
+
+static int
+do_test (void)
+{
+ TEST_VERIFY (foo () == 1);
+ TEST_VERIFY (saved_arg1 & _IFUNC_ARG_HWCAP);
+ TEST_COMPARE ((uint32_t)saved_arg1, (uint32_t)getauxval (AT_HWCAP));
+ TEST_COMPARE (saved_arg2._size, sizeof (__ifunc_arg_t));
+ TEST_COMPARE (saved_arg2._hwcap, getauxval (AT_HWCAP));
+ TEST_COMPARE (saved_arg2._hwcap2, getauxval (AT_HWCAP2));
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/aarch64/tst-ifunc-arg-2.c b/sysdeps/aarch64/tst-ifunc-arg-2.c
new file mode 100644
index 0000000000..0ab03fe0d7
--- /dev/null
+++ b/sysdeps/aarch64/tst-ifunc-arg-2.c
@@ -0,0 +1,66 @@
+/* Test R_*_IRELATIVE resolver with second argument.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdint.h>
+#include <sys/auxv.h>
+#include <sys/ifunc.h>
+#include <support/check.h>
+
+static int
+one (void)
+{
+ return 1;
+}
+
+static uint64_t saved_arg1;
+static __ifunc_arg_t saved_arg2;
+
+/* local ifunc symbol. */
+int
+__attribute__ ((visibility ("hidden")))
+foo (void);
+
+static void *
+__attribute__ ((used))
+foo_ifunc (uint64_t, const __ifunc_arg_t *) __asm__ ("foo");
+__asm__(".type foo, %gnu_indirect_function");
+
+static void *
+__attribute__ ((used))
+inhibit_stack_protector
+foo_ifunc (uint64_t arg1, const __ifunc_arg_t *arg2)
+{
+ saved_arg1 = arg1;
+ if (arg1 & _IFUNC_ARG_HWCAP)
+ saved_arg2 = *arg2;
+ return (void *) one;
+}
+
+static int
+do_test (void)
+{
+ TEST_VERIFY (foo () == 1);
+ TEST_VERIFY (saved_arg1 & _IFUNC_ARG_HWCAP);
+ TEST_COMPARE ((uint32_t)saved_arg1, (uint32_t)getauxval (AT_HWCAP));
+ TEST_COMPARE (saved_arg2._size, sizeof (__ifunc_arg_t));
+ TEST_COMPARE (saved_arg2._hwcap, getauxval (AT_HWCAP));
+ TEST_COMPARE (saved_arg2._hwcap2, getauxval (AT_HWCAP2));
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/alpha/Makefile b/sysdeps/alpha/Makefile
index 0651414b03..cf20ef3f7b 100644
--- a/sysdeps/alpha/Makefile
+++ b/sysdeps/alpha/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1993-2018 Free Software Foundation, Inc.
+# Copyright (C) 1993-2019 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# Contributed by Brendan Kehoe (brendan@zen.org).
@@ -14,7 +14,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library. If not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
ifeq ($(subdir),db2)
CPPFLAGS += -DHAVE_SPINLOCKS=1 -DHAVE_ASSEM_ALPHA=1
diff --git a/sysdeps/alpha/__longjmp.S b/sysdeps/alpha/__longjmp.S
index b082d46768..aa59b3139b 100644
--- a/sysdeps/alpha/__longjmp.S
+++ b/sysdeps/alpha/__longjmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __ASSEMBLY__
diff --git a/sysdeps/alpha/_mcount.S b/sysdeps/alpha/_mcount.S
index 34c8cb4faf..aad6fed9f7 100644
--- a/sysdeps/alpha/_mcount.S
+++ b/sysdeps/alpha/_mcount.S
@@ -1,5 +1,5 @@
/* Machine-specific calling sequence for `mcount' profiling function. alpha
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 Free Software Foundation, Inc.
Contributed by David Mosberger (davidm@cs.arizona.edu).
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Assembly stub to invoke _mcount(). Compiler generated code calls
this stub after executing a function's prologue and without saving any
diff --git a/sysdeps/alpha/add_n.S b/sysdeps/alpha/add_n.S
index 5e79946beb..16b021c32d 100644
--- a/sysdeps/alpha/add_n.S
+++ b/sysdeps/alpha/add_n.S
@@ -1,7 +1,7 @@
# Alpha __mpn_add_n -- Add two limb vectors of the same length > 0 and
# store sum in a third limb vector.
- # Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ # Copyright (C) 1995-2019 Free Software Foundation, Inc.
# This file is part of the GNU MP Library.
@@ -16,7 +16,7 @@
# License for more details.
# You should have received a copy of the GNU Lesser General Public License
- # along with the GNU MP Library. If not, see <http://www.gnu.org/licenses/>.
+ # along with the GNU MP Library. If not, see <https://www.gnu.org/licenses/>.
# INPUT PARAMETERS
diff --git a/sysdeps/alpha/addmul_1.S b/sysdeps/alpha/addmul_1.S
index 857826cf4b..bcd2b9d55d 100644
--- a/sysdeps/alpha/addmul_1.S
+++ b/sysdeps/alpha/addmul_1.S
@@ -1,7 +1,7 @@
# Alpha 21064 __mpn_addmul_1 -- Multiply a limb vector with a limb and add
# the result to a second limb vector.
- # Copyright (C) 1992-2018 Free Software Foundation, Inc.
+ # Copyright (C) 1992-2019 Free Software Foundation, Inc.
# This file is part of the GNU MP Library.
@@ -16,7 +16,7 @@
# License for more details.
# You should have received a copy of the GNU Lesser General Public License
- # along with the GNU MP Library. If not, see <http://www.gnu.org/licenses/>.
+ # along with the GNU MP Library. If not, see <https://www.gnu.org/licenses/>.
# INPUT PARAMETERS
diff --git a/sysdeps/alpha/alphaev5/add_n.S b/sysdeps/alpha/alphaev5/add_n.S
index fe2830ebf2..14367a4c80 100644
--- a/sysdeps/alpha/alphaev5/add_n.S
+++ b/sysdeps/alpha/alphaev5/add_n.S
@@ -1,7 +1,7 @@
# Alpha __mpn_add_n -- Add two limb vectors of the same length > 0 and
# store sum in a third limb vector.
- # Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ # Copyright (C) 1995-2019 Free Software Foundation, Inc.
# This file is part of the GNU MP Library.
@@ -16,7 +16,7 @@
# License for more details.
# You should have received a copy of the GNU Lesser General Public License
- # along with the GNU MP Library. If not, see <http://www.gnu.org/licenses/>.
+ # along with the GNU MP Library. If not, see <https://www.gnu.org/licenses/>.
# INPUT PARAMETERS
diff --git a/sysdeps/alpha/alphaev5/lshift.S b/sysdeps/alpha/alphaev5/lshift.S
index 62d2806bbd..5465192602 100644
--- a/sysdeps/alpha/alphaev5/lshift.S
+++ b/sysdeps/alpha/alphaev5/lshift.S
@@ -1,6 +1,6 @@
# Alpha EV5 __mpn_lshift --
- # Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ # Copyright (C) 1994-2019 Free Software Foundation, Inc.
# This file is part of the GNU MP Library.
@@ -15,7 +15,7 @@
# License for more details.
# You should have received a copy of the GNU Lesser General Public License
- # along with the GNU MP Library. If not, see <http://www.gnu.org/licenses/>.
+ # along with the GNU MP Library. If not, see <https://www.gnu.org/licenses/>.
# INPUT PARAMETERS
diff --git a/sysdeps/alpha/alphaev5/rshift.S b/sysdeps/alpha/alphaev5/rshift.S
index bcda73c42b..14b4637bf7 100644
--- a/sysdeps/alpha/alphaev5/rshift.S
+++ b/sysdeps/alpha/alphaev5/rshift.S
@@ -1,6 +1,6 @@
# Alpha EV5 __mpn_rshift --
- # Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ # Copyright (C) 1994-2019 Free Software Foundation, Inc.
# This file is part of the GNU MP Library.
@@ -15,7 +15,7 @@
# License for more details.
# You should have received a copy of the GNU Lesser General Public License
- # along with the GNU MP Library. If not, see <http://www.gnu.org/licenses/>.
+ # along with the GNU MP Library. If not, see <https://www.gnu.org/licenses/>.
# INPUT PARAMETERS
diff --git a/sysdeps/alpha/alphaev5/sub_n.S b/sysdeps/alpha/alphaev5/sub_n.S
index fa2e3e4b73..ef30692ada 100644
--- a/sysdeps/alpha/alphaev5/sub_n.S
+++ b/sysdeps/alpha/alphaev5/sub_n.S
@@ -1,7 +1,7 @@
# Alpha __mpn_sub_n -- Subtract two limb vectors of the same length > 0 and
# store difference in a third limb vector.
- # Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ # Copyright (C) 1995-2019 Free Software Foundation, Inc.
# This file is part of the GNU MP Library.
@@ -16,7 +16,7 @@
# License for more details.
# You should have received a copy of the GNU Lesser General Public License
- # along with the GNU MP Library. If not, see <http://www.gnu.org/licenses/>.
+ # along with the GNU MP Library. If not, see <https://www.gnu.org/licenses/>.
# INPUT PARAMETERS
diff --git a/sysdeps/alpha/alphaev6/addmul_1.S b/sysdeps/alpha/alphaev6/addmul_1.S
index 0912f1bc49..d8c8af602a 100644
--- a/sysdeps/alpha/alphaev6/addmul_1.S
+++ b/sysdeps/alpha/alphaev6/addmul_1.S
@@ -1,7 +1,7 @@
# Alpha ev6 mpn_addmul_1 -- Multiply a limb vector with a limb and add
# the result to a second limb vector.
#
- # Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ # Copyright (C) 2000-2019 Free Software Foundation, Inc.
#
# This file is part of the GNU MP Library.
#
@@ -16,7 +16,7 @@
# License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
- # along with the GNU MP Library. If not, see <http://www.gnu.org/licenses/>.
+ # along with the GNU MP Library. If not, see <https://www.gnu.org/licenses/>.
# INPUT PARAMETERS
# res_ptr $16
diff --git a/sysdeps/alpha/alphaev6/fpu/e_sqrt.S b/sysdeps/alpha/alphaev6/fpu/e_sqrt.S
index b5923e67b3..8aa342b73c 100644
--- a/sysdeps/alpha/alphaev6/fpu/e_sqrt.S
+++ b/sysdeps/alpha/alphaev6/fpu/e_sqrt.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <shlib-compat.h>
diff --git a/sysdeps/alpha/alphaev6/fpu/e_sqrtf.S b/sysdeps/alpha/alphaev6/fpu/e_sqrtf.S
index a7f25e1abe..609e509eb8 100644
--- a/sysdeps/alpha/alphaev6/fpu/e_sqrtf.S
+++ b/sysdeps/alpha/alphaev6/fpu/e_sqrtf.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <shlib-compat.h>
diff --git a/sysdeps/alpha/alphaev6/memcpy.S b/sysdeps/alpha/alphaev6/memcpy.S
index 7cf94d8bb7..182dd6818c 100644
--- a/sysdeps/alpha/alphaev6/memcpy.S
+++ b/sysdeps/alpha/alphaev6/memcpy.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
EV6 optimized by Rick Gorton <rick.gorton@alpha-processor.com>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* Much of the information about 21264 scheduling/coding comes from:
diff --git a/sysdeps/alpha/alphaev6/memset.S b/sysdeps/alpha/alphaev6/memset.S
index e1a2525e82..2519048324 100644
--- a/sysdeps/alpha/alphaev6/memset.S
+++ b/sysdeps/alpha/alphaev6/memset.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Richard Henderson (rth@tamu.edu)
EV6 optimized by Rick Gorton <rick.gorton@alpha-processor.com>.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/alpha/alphaev6/stxcpy.S b/sysdeps/alpha/alphaev6/stxcpy.S
index 33e8e8de9c..4c0cea8c6a 100644
--- a/sysdeps/alpha/alphaev6/stxcpy.S
+++ b/sysdeps/alpha/alphaev6/stxcpy.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Richard Henderson (rth@tamu.edu)
EV6 optimized by Rick Gorton <rick.gorton@alpha-processor.com>.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Copy a null-terminated string from SRC to DST.
diff --git a/sysdeps/alpha/alphaev6/stxncpy.S b/sysdeps/alpha/alphaev6/stxncpy.S
index ed582a4e7c..d40f44b07a 100644
--- a/sysdeps/alpha/alphaev6/stxncpy.S
+++ b/sysdeps/alpha/alphaev6/stxncpy.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Richard Henderson (rth@tamu.edu)
EV6 optimized by Rick Gorton <rick.gorton@alpha-processor.com>.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Copy no more than COUNT bytes of the null-terminated string from
SRC to DST.
diff --git a/sysdeps/alpha/alphaev67/ffs.S b/sysdeps/alpha/alphaev67/ffs.S
index d715c321eb..b48d5dd858 100644
--- a/sysdeps/alpha/alphaev67/ffs.S
+++ b/sysdeps/alpha/alphaev67/ffs.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Finds the first bit set in an integer. */
diff --git a/sysdeps/alpha/alphaev67/ffsll.S b/sysdeps/alpha/alphaev67/ffsll.S
index f555eb5137..ae32eacff6 100644
--- a/sysdeps/alpha/alphaev67/ffsll.S
+++ b/sysdeps/alpha/alphaev67/ffsll.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Finds the first bit set in a long. */
diff --git a/sysdeps/alpha/alphaev67/rawmemchr.S b/sysdeps/alpha/alphaev67/rawmemchr.S
index 09df8f7a4c..330152c926 100644
--- a/sysdeps/alpha/alphaev67/rawmemchr.S
+++ b/sysdeps/alpha/alphaev67/rawmemchr.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Return pointer to first occurrence of CH in STR. */
diff --git a/sysdeps/alpha/alphaev67/stpcpy.S b/sysdeps/alpha/alphaev67/stpcpy.S
index 47da958810..6659f3cb7e 100644
--- a/sysdeps/alpha/alphaev67/stpcpy.S
+++ b/sysdeps/alpha/alphaev67/stpcpy.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson <rth@redhat.com>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Copy SRC to DEST returning the address of the terminating 0 in DEST. */
diff --git a/sysdeps/alpha/alphaev67/stpncpy.S b/sysdeps/alpha/alphaev67/stpncpy.S
index f0de95992a..920df5362e 100644
--- a/sysdeps/alpha/alphaev67/stpncpy.S
+++ b/sysdeps/alpha/alphaev67/stpncpy.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Richard Henderson (rth@redhat.com)
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Copy no more than N bytes from SRC to DEST, returning the address of
the terminating '\0' in DEST. */
diff --git a/sysdeps/alpha/alphaev67/strcat.S b/sysdeps/alpha/alphaev67/strcat.S
index 03f2ad0bdd..7e53c36875 100644
--- a/sysdeps/alpha/alphaev67/strcat.S
+++ b/sysdeps/alpha/alphaev67/strcat.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Richard Henderson <rth@tamu.edu>, 1996.
EV67 optimized by Rick Gorton <rick.gorton@alpha-processor.com>.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Append a null-terminated string from SRC to DST. */
diff --git a/sysdeps/alpha/alphaev67/strchr.S b/sysdeps/alpha/alphaev67/strchr.S
index 536799e0e2..179d3a475b 100644
--- a/sysdeps/alpha/alphaev67/strchr.S
+++ b/sysdeps/alpha/alphaev67/strchr.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Richard Henderson <rth@tamu.edu>, 1996.
EV67 optimized by Rick Gorton <rick.gorton@alpha-processor.com>.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Return the address of a given character within a null-terminated
string, or null if it is not found. */
diff --git a/sysdeps/alpha/alphaev67/strlen.S b/sysdeps/alpha/alphaev67/strlen.S
index 26bdd53d51..a8eec9d5a0 100644
--- a/sysdeps/alpha/alphaev67/strlen.S
+++ b/sysdeps/alpha/alphaev67/strlen.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by David Mosberger (davidm@cs.arizona.edu).
EV67 optimized by Rick Gorton <rick.gorton@alpha-processor.com>.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Finds length of a 0-terminated string. */
diff --git a/sysdeps/alpha/alphaev67/strncat.S b/sysdeps/alpha/alphaev67/strncat.S
index 667d447e98..fb269dae01 100644
--- a/sysdeps/alpha/alphaev67/strncat.S
+++ b/sysdeps/alpha/alphaev67/strncat.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Richard Henderson <rth@tamu.edu>, 1996.
EV67 optimized by Rick Gorton <rick.gorton@alpha-processor.com>.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Append no more than COUNT characters from the null-terminated string SRC
to the null-terminated string DST. Always null-terminate the new DST. */
diff --git a/sysdeps/alpha/alphaev67/strrchr.S b/sysdeps/alpha/alphaev67/strrchr.S
index b6629a37d7..5129c36a2c 100644
--- a/sysdeps/alpha/alphaev67/strrchr.S
+++ b/sysdeps/alpha/alphaev67/strrchr.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
EV67 optimized by Rick Gorton <rick.gorton@alpha-processor.com>.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Return the address of the last occurrence of a given character
within a null-terminated string, or null if it is not found. */
diff --git a/sysdeps/alpha/atomic-machine.h b/sysdeps/alpha/atomic-machine.h
index c33c6ddec3..9f5137718f 100644
--- a/sysdeps/alpha/atomic-machine.h
+++ b/sysdeps/alpha/atomic-machine.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/sysdeps/alpha/bits/endian.h b/sysdeps/alpha/bits/endian.h
deleted file mode 100644
index 8a16e14e24..0000000000
--- a/sysdeps/alpha/bits/endian.h
+++ /dev/null
@@ -1,7 +0,0 @@
-/* Alpha is little-endian. */
-
-#ifndef _ENDIAN_H
-# error "Never use <bits/endian.h> directly; include <endian.h> instead."
-#endif
-
-#define __BYTE_ORDER __LITTLE_ENDIAN
diff --git a/sysdeps/alpha/bits/endianness.h b/sysdeps/alpha/bits/endianness.h
new file mode 100644
index 0000000000..69f9a147f6
--- /dev/null
+++ b/sysdeps/alpha/bits/endianness.h
@@ -0,0 +1,11 @@
+#ifndef _BITS_ENDIANNESS_H
+#define _BITS_ENDIANNESS_H 1
+
+#ifndef _BITS_ENDIAN_H
+# error "Never use <bits/endianness.h> directly; include <endian.h> instead."
+#endif
+
+/* Alpha is little-endian. */
+#define __BYTE_ORDER __LITTLE_ENDIAN
+
+#endif /* bits/endianness.h */
diff --git a/sysdeps/alpha/bits/link.h b/sysdeps/alpha/bits/link.h
index 0043e21553..5cd7bd6393 100644
--- a/sysdeps/alpha/bits/link.h
+++ b/sysdeps/alpha/bits/link.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LINK_H
# error "Never include <bits/link.h> directly; use <link.h> instead."
diff --git a/sysdeps/alpha/bits/mathdef.h b/sysdeps/alpha/bits/mathdef.h
index 91880c6d70..062ff8fc06 100644
--- a/sysdeps/alpha/bits/mathdef.h
+++ b/sysdeps/alpha/bits/mathdef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _COMPLEX_H
# error "Never use <bits/mathdef.h> directly; include <complex.h> instead"
diff --git a/sysdeps/alpha/bits/setjmp.h b/sysdeps/alpha/bits/setjmp.h
index f8c832ac3e..b40e1c155b 100644
--- a/sysdeps/alpha/bits/setjmp.h
+++ b/sysdeps/alpha/bits/setjmp.h
@@ -1,5 +1,5 @@
/* Define the machine-dependent type `jmp_buf'. Alpha version.
- Copyright (C) 1992-2018 Free Software Foundation, Inc.
+ Copyright (C) 1992-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_SETJMP_H
#define _BITS_SETJMP_H 1
diff --git a/sysdeps/alpha/bzero.S b/sysdeps/alpha/bzero.S
index f322dd6900..e5706dafc1 100644
--- a/sysdeps/alpha/bzero.S
+++ b/sysdeps/alpha/bzero.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
Contributed by Richard Henderson (rth@tamu.edu)
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Fill a block of memory with zeros. Optimized for the Alpha architecture:
diff --git a/sysdeps/alpha/crti.S b/sysdeps/alpha/crti.S
index bcce1e9055..7f2e4c3348 100644
--- a/sysdeps/alpha/crti.S
+++ b/sysdeps/alpha/crti.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for Alpha.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* crti.S puts a function prologue at the beginning of the .init and
.fini sections and defines global symbols for those addresses, so
diff --git a/sysdeps/alpha/crtn.S b/sysdeps/alpha/crtn.S
index a34564088c..01265c7c5c 100644
--- a/sysdeps/alpha/crtn.S
+++ b/sysdeps/alpha/crtn.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for Alpha.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* crtn.S puts function epilogues in the .init and .fini sections
corresponding to the prologues in crti.S. */
diff --git a/sysdeps/alpha/div.S b/sysdeps/alpha/div.S
index 519c72148a..ebac3834b9 100644
--- a/sysdeps/alpha/div.S
+++ b/sysdeps/alpha/div.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson <rth@tamu.edu>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "div_libc.h"
diff --git a/sysdeps/alpha/div_libc.h b/sysdeps/alpha/div_libc.h
index 4b5cfb30c0..92bce7350a 100644
--- a/sysdeps/alpha/div_libc.h
+++ b/sysdeps/alpha/div_libc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Common bits for implementing software divide. */
diff --git a/sysdeps/alpha/divl.S b/sysdeps/alpha/divl.S
index 0e6b299707..993b037dff 100644
--- a/sysdeps/alpha/divl.S
+++ b/sysdeps/alpha/divl.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "div_libc.h"
diff --git a/sysdeps/alpha/divq.S b/sysdeps/alpha/divq.S
index a232554ca7..4658e2902f 100644
--- a/sysdeps/alpha/divq.S
+++ b/sysdeps/alpha/divq.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "div_libc.h"
diff --git a/sysdeps/alpha/divqu.S b/sysdeps/alpha/divqu.S
index ae12c4e846..82b7947bb0 100644
--- a/sysdeps/alpha/divqu.S
+++ b/sysdeps/alpha/divqu.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "div_libc.h"
@@ -56,10 +56,10 @@ __divqu:
that's done, we have at least 22 cycles until its results are
ready -- all the time in the world to figure out how we're
going to use the results. */
- stt $f0, 0(sp)
- excb
beq Y, DIVBYZERO
+ stt $f0, 0(sp)
+ excb
stt $f1, 8(sp)
stt $f3, 48(sp)
cfi_rel_offset ($f0, 0)
@@ -70,6 +70,7 @@ __divqu:
_ITOFT2 X, $f0, 16, Y, $f1, 24
cvtqt $f0, $f0
cvtqt $f1, $f1
+
blt X, $x_is_neg
divt/c $f0, $f1, $f0
@@ -90,12 +91,12 @@ __divqu:
ldt $f0, 0(sp)
ldt $f3, 48(sp)
+ lda sp, FRAME(sp)
cfi_remember_state
cfi_restore ($f0)
cfi_restore ($f1)
cfi_restore ($f3)
cfi_def_cfa_offset (0)
- lda sp, FRAME(sp)
ret $31, (RA), 1
.align 4
diff --git a/sysdeps/alpha/dl-machine.h b/sysdeps/alpha/dl-machine.h
index 810ca30fa4..da3ee9b96f 100644
--- a/sysdeps/alpha/dl-machine.h
+++ b/sysdeps/alpha/dl-machine.h
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation inline functions. Alpha version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson <rth@tamu.edu>.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This was written in the absence of an ABI -- don't expect
it to remain unchanged. */
diff --git a/sysdeps/alpha/dl-procinfo.c b/sysdeps/alpha/dl-procinfo.c
index aba378093f..d33b86f9b9 100644
--- a/sysdeps/alpha/dl-procinfo.c
+++ b/sysdeps/alpha/dl-procinfo.c
@@ -1,5 +1,5 @@
/* Data for Alpha version of processor capability information.
- Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ Copyright (C) 2008-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Aurelien Jarno <aurelien@aurel32.net>, 2008.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This information must be kept in sync with the _DL_PLATFORM_COUNT
definitions in procinfo.h.
diff --git a/sysdeps/alpha/dl-procinfo.h b/sysdeps/alpha/dl-procinfo.h
index c33af2ce2f..e6dce20f98 100644
--- a/sysdeps/alpha/dl-procinfo.h
+++ b/sysdeps/alpha/dl-procinfo.h
@@ -1,5 +1,5 @@
/* Alpha version of processor capability information handling macros.
- Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ Copyright (C) 2008-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Aurelien Jarno <aurelien@aurel32.net>, 2008.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DL_PROCINFO_H
#define _DL_PROCINFO_H 1
diff --git a/sysdeps/alpha/dl-sysdep.h b/sysdeps/alpha/dl-sysdep.h
index 257517be2a..a65ecb0349 100644
--- a/sysdeps/alpha/dl-sysdep.h
+++ b/sysdeps/alpha/dl-sysdep.h
@@ -1,5 +1,5 @@
/* System-specific settings for dynamic linker code. Alpha version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include_next <dl-sysdep.h>
diff --git a/sysdeps/alpha/dl-tls.h b/sysdeps/alpha/dl-tls.h
index cfd6e4454a..77781e1f75 100644
--- a/sysdeps/alpha/dl-tls.h
+++ b/sysdeps/alpha/dl-tls.h
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. Alpha version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Type used for the representation of TLS information in the GOT. */
diff --git a/sysdeps/alpha/dl-trampoline.S b/sysdeps/alpha/dl-trampoline.S
index b326b37ace..01a6096e46 100644
--- a/sysdeps/alpha/dl-trampoline.S
+++ b/sysdeps/alpha/dl-trampoline.S
@@ -1,5 +1,5 @@
/* PLT trampolines. Alpha version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/alpha/e_sqrtl.c b/sysdeps/alpha/e_sqrtl.c
index 689681adfc..5b1b29c9a6 100644
--- a/sysdeps/alpha/e_sqrtl.c
+++ b/sysdeps/alpha/e_sqrtl.c
@@ -1,5 +1,5 @@
/* long double square root in software floating-point emulation.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include <soft-fp.h>
diff --git a/sysdeps/alpha/ffs.S b/sysdeps/alpha/ffs.S
index 158a78135f..f3d5aa646b 100644
--- a/sysdeps/alpha/ffs.S
+++ b/sysdeps/alpha/ffs.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
Contributed by David Mosberger (davidm@cs.arizona.edu).
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Finds the first bit set in an integer. Optimized for the Alpha
architecture. */
diff --git a/sysdeps/alpha/fpu/bits/fenv.h b/sysdeps/alpha/fpu/bits/fenv.h
index d4e0f73bc6..7214280cea 100644
--- a/sysdeps/alpha/fpu/bits/fenv.h
+++ b/sysdeps/alpha/fpu/bits/fenv.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FENV_H
# error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
@@ -132,7 +132,7 @@ typedef unsigned long int fenv_t;
extern unsigned long int __ieee_get_fp_control (void) __THROW;
extern void __ieee_set_fp_control (unsigned long int __value) __THROW;
-#if __GLIBC_USE (IEC_60559_BFP_EXT)
+#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
/* Type representing floating-point control modes. */
typedef unsigned long int femode_t;
diff --git a/sysdeps/alpha/fpu/cabsf.c b/sysdeps/alpha/fpu/cabsf.c
index 3297bdd4d6..0486e15fbb 100644
--- a/sysdeps/alpha/fpu/cabsf.c
+++ b/sysdeps/alpha/fpu/cabsf.c
@@ -1,5 +1,5 @@
/* Return the complex absolute value of float complex value.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __cabsf __cabsf_not_defined
#define cabsf cabsf_not_defined
diff --git a/sysdeps/alpha/fpu/cargf.c b/sysdeps/alpha/fpu/cargf.c
index be303fcd54..61bb3863ea 100644
--- a/sysdeps/alpha/fpu/cargf.c
+++ b/sysdeps/alpha/fpu/cargf.c
@@ -1,5 +1,5 @@
/* Compute argument of complex float value.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __cargf __cargf_not_defined
#define cargf cargf_not_defined
diff --git a/sysdeps/alpha/fpu/cfloat-compat.h b/sysdeps/alpha/fpu/cfloat-compat.h
index 6833447335..b4b4146674 100644
--- a/sysdeps/alpha/fpu/cfloat-compat.h
+++ b/sysdeps/alpha/fpu/cfloat-compat.h
@@ -1,5 +1,5 @@
/* Compatibility macros for old and new Alpha complex float ABI.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* The behaviour of complex float changed between GCC 3.3 and 3.4.
diff --git a/sysdeps/alpha/fpu/cimagf.c b/sysdeps/alpha/fpu/cimagf.c
index 4851032802..c8bd9afee2 100644
--- a/sysdeps/alpha/fpu/cimagf.c
+++ b/sysdeps/alpha/fpu/cimagf.c
@@ -1,5 +1,5 @@
/* Return imaginary part of complex float value.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __cimagf __cimagf_not_defined
#define cimagf cimagf_not_defined
diff --git a/sysdeps/alpha/fpu/conjf.c b/sysdeps/alpha/fpu/conjf.c
index b6f5731315..7bdf243628 100644
--- a/sysdeps/alpha/fpu/conjf.c
+++ b/sysdeps/alpha/fpu/conjf.c
@@ -1,5 +1,5 @@
/* Return complex conjugate of complex float value.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __conjf __conjf_not_defined
#define conjf conjf_not_defined
diff --git a/sysdeps/alpha/fpu/crealf.c b/sysdeps/alpha/fpu/crealf.c
index 3ea623418f..d78786c33e 100644
--- a/sysdeps/alpha/fpu/crealf.c
+++ b/sysdeps/alpha/fpu/crealf.c
@@ -1,5 +1,5 @@
/* Return real part of complex float value.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __crealf __crealf_not_defined
#define crealf crealf_not_defined
diff --git a/sysdeps/alpha/fpu/e_sqrt.c b/sysdeps/alpha/fpu/e_sqrt.c
index f57fc679d8..fc5b1abbe2 100644
--- a/sysdeps/alpha/fpu/e_sqrt.c
+++ b/sysdeps/alpha/fpu/e_sqrt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
Contributed by David Mosberger (davidm@cs.arizona.edu).
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/alpha/fpu/fclrexcpt.c b/sysdeps/alpha/fpu/fclrexcpt.c
index 943d829710..63c7b25a06 100644
--- a/sysdeps/alpha/fpu/fclrexcpt.c
+++ b/sysdeps/alpha/fpu/fclrexcpt.c
@@ -1,5 +1,5 @@
/* Clear given exceptions in current floating-point environment.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson <rth@tamu.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv_libc.h>
diff --git a/sysdeps/alpha/fpu/fedisblxcpt.c b/sysdeps/alpha/fpu/fedisblxcpt.c
index 3b8fe0b2e1..9f9fe7cbae 100644
--- a/sysdeps/alpha/fpu/fedisblxcpt.c
+++ b/sysdeps/alpha/fpu/fedisblxcpt.c
@@ -1,5 +1,5 @@
/* Disable floating-point exceptions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv_libc.h>
diff --git a/sysdeps/alpha/fpu/feenablxcpt.c b/sysdeps/alpha/fpu/feenablxcpt.c
index 65a0516fde..7ae02b976c 100644
--- a/sysdeps/alpha/fpu/feenablxcpt.c
+++ b/sysdeps/alpha/fpu/feenablxcpt.c
@@ -1,5 +1,5 @@
/* Enable floating-point exceptions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv_libc.h>
diff --git a/sysdeps/alpha/fpu/fegetenv.c b/sysdeps/alpha/fpu/fegetenv.c
index df2e940585..38b255f0b7 100644
--- a/sysdeps/alpha/fpu/fegetenv.c
+++ b/sysdeps/alpha/fpu/fegetenv.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson <rth@tamu.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv_libc.h>
diff --git a/sysdeps/alpha/fpu/fegetexcept.c b/sysdeps/alpha/fpu/fegetexcept.c
index 9eef8ec1a5..b1fb6162ad 100644
--- a/sysdeps/alpha/fpu/fegetexcept.c
+++ b/sysdeps/alpha/fpu/fegetexcept.c
@@ -1,5 +1,5 @@
/* Get enabled floating-point exceptions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv_libc.h>
diff --git a/sysdeps/alpha/fpu/fegetmode.c b/sysdeps/alpha/fpu/fegetmode.c
index 7008154701..ce61f7d0cb 100644
--- a/sysdeps/alpha/fpu/fegetmode.c
+++ b/sysdeps/alpha/fpu/fegetmode.c
@@ -1,5 +1,5 @@
/* Store current floating-point control modes. Alpha version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv_libc.h>
diff --git a/sysdeps/alpha/fpu/fegetround.c b/sysdeps/alpha/fpu/fegetround.c
index 8202a896ec..57dc245d04 100644
--- a/sysdeps/alpha/fpu/fegetround.c
+++ b/sysdeps/alpha/fpu/fegetround.c
@@ -1,5 +1,5 @@
/* Return current rounding direction.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson <rth@tamu.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv_libc.h>
diff --git a/sysdeps/alpha/fpu/feholdexcpt.c b/sysdeps/alpha/fpu/feholdexcpt.c
index 5095d78045..a30cf8ba52 100644
--- a/sysdeps/alpha/fpu/feholdexcpt.c
+++ b/sysdeps/alpha/fpu/feholdexcpt.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment and clear exceptions.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson <rth@tamu.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv_libc.h>
diff --git a/sysdeps/alpha/fpu/fenv_libc.h b/sysdeps/alpha/fpu/fenv_libc.h
index 68f3d70309..27c7d0bcfd 100644
--- a/sysdeps/alpha/fpu/fenv_libc.h
+++ b/sysdeps/alpha/fpu/fenv_libc.h
@@ -1,5 +1,5 @@
/* Internal libc stuff for floating point environment routines.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FENV_LIBC_H
#define _FENV_LIBC_H 1
diff --git a/sysdeps/alpha/fpu/fesetenv.c b/sysdeps/alpha/fpu/fesetenv.c
index 1494d504d3..acd4acd320 100644
--- a/sysdeps/alpha/fpu/fesetenv.c
+++ b/sysdeps/alpha/fpu/fesetenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson <rth@tamu.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv_libc.h>
diff --git a/sysdeps/alpha/fpu/fesetexcept.c b/sysdeps/alpha/fpu/fesetexcept.c
index ee9c393557..a95bca06b6 100644
--- a/sysdeps/alpha/fpu/fesetexcept.c
+++ b/sysdeps/alpha/fpu/fesetexcept.c
@@ -1,5 +1,5 @@
/* Set given exception flags. Alpha version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv_libc.h>
diff --git a/sysdeps/alpha/fpu/fesetmode.c b/sysdeps/alpha/fpu/fesetmode.c
index a892d33473..0c38b0d693 100644
--- a/sysdeps/alpha/fpu/fesetmode.c
+++ b/sysdeps/alpha/fpu/fesetmode.c
@@ -1,5 +1,5 @@
/* Install given floating-point control modes. Alpha version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv_libc.h>
diff --git a/sysdeps/alpha/fpu/fesetround.c b/sysdeps/alpha/fpu/fesetround.c
index 1da6459e3b..c3a2ff178f 100644
--- a/sysdeps/alpha/fpu/fesetround.c
+++ b/sysdeps/alpha/fpu/fesetround.c
@@ -1,5 +1,5 @@
/* Set current rounding direction.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson <rth@tamu.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv_libc.h>
diff --git a/sysdeps/alpha/fpu/feupdateenv.c b/sysdeps/alpha/fpu/feupdateenv.c
index 3f2e8f41a5..32f8edd66a 100644
--- a/sysdeps/alpha/fpu/feupdateenv.c
+++ b/sysdeps/alpha/fpu/feupdateenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment and raise exceptions.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson <rth@tamu.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv_libc.h>
diff --git a/sysdeps/alpha/fpu/fgetexcptflg.c b/sysdeps/alpha/fpu/fgetexcptflg.c
index d4e6844ffe..573ec8a88f 100644
--- a/sysdeps/alpha/fpu/fgetexcptflg.c
+++ b/sysdeps/alpha/fpu/fgetexcptflg.c
@@ -1,5 +1,5 @@
/* Store current representation for exceptions.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson <rth@tamu.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv_libc.h>
diff --git a/sysdeps/alpha/fpu/fpu_control.h b/sysdeps/alpha/fpu/fpu_control.h
index 3a16ba5a1c..8057bec6fe 100644
--- a/sysdeps/alpha/fpu/fpu_control.h
+++ b/sysdeps/alpha/fpu/fpu_control.h
@@ -1,5 +1,5 @@
/* FPU control word bits. Alpha-mapped-to-Intel version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Olaf Flebbe.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _ALPHA_FPU_CONTROL_H
#define _ALPHA_FPU_CONTROL_H
diff --git a/sysdeps/alpha/fpu/fsetexcptflg.c b/sysdeps/alpha/fpu/fsetexcptflg.c
index 409d1f7aeb..81cdc26cc5 100644
--- a/sysdeps/alpha/fpu/fsetexcptflg.c
+++ b/sysdeps/alpha/fpu/fsetexcptflg.c
@@ -1,5 +1,5 @@
/* Set floating-point environment exception handling.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson <rth@tamu.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv_libc.h>
diff --git a/sysdeps/alpha/fpu/ftestexcept.c b/sysdeps/alpha/fpu/ftestexcept.c
index f2eb7ded9a..bd46a459d6 100644
--- a/sysdeps/alpha/fpu/ftestexcept.c
+++ b/sysdeps/alpha/fpu/ftestexcept.c
@@ -1,5 +1,5 @@
/* Test exception in current environment.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson <rth@tamu.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv_libc.h>
diff --git a/sysdeps/alpha/fpu/get-rounding-mode.h b/sysdeps/alpha/fpu/get-rounding-mode.h
index 7cd7d55a04..dea3ecde7a 100644
--- a/sysdeps/alpha/fpu/get-rounding-mode.h
+++ b/sysdeps/alpha/fpu/get-rounding-mode.h
@@ -1,5 +1,5 @@
/* Determine floating-point rounding mode within libc. Alpha version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef ALPHA_GET_ROUNDING_MODE_H
#define ALPHA_GET_ROUNDING_MODE_H 1
diff --git a/sysdeps/alpha/fpu/libm-test-ulps b/sysdeps/alpha/fpu/libm-test-ulps
index 12a6127ddf..89c4527a81 100644
--- a/sysdeps/alpha/fpu/libm-test-ulps
+++ b/sysdeps/alpha/fpu/libm-test-ulps
@@ -712,9 +712,9 @@ ildouble: 2
ldouble: 2
Function: Imaginary part of "ccos_downward":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
@@ -728,9 +728,9 @@ ildouble: 2
ldouble: 2
Function: Imaginary part of "ccos_towardzero":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
@@ -768,33 +768,33 @@ ildouble: 1
ldouble: 1
Function: Real part of "ccosh_downward":
-double: 1
+double: 2
float: 3
-idouble: 1
+idouble: 2
ifloat: 3
ildouble: 2
ldouble: 2
Function: Imaginary part of "ccosh_downward":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
Function: Real part of "ccosh_towardzero":
-double: 1
+double: 2
float: 3
-idouble: 1
+idouble: 2
ifloat: 3
ildouble: 2
ldouble: 2
Function: Imaginary part of "ccosh_towardzero":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
@@ -832,33 +832,33 @@ ildouble: 1
ldouble: 1
Function: Real part of "cexp_downward":
-double: 1
+double: 2
float: 2
-idouble: 1
+idouble: 2
ifloat: 2
ildouble: 2
ldouble: 2
Function: Imaginary part of "cexp_downward":
-double: 1
+double: 3
float: 3
-idouble: 1
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
Function: Real part of "cexp_towardzero":
-double: 1
+double: 2
float: 2
-idouble: 1
+idouble: 2
ifloat: 2
ildouble: 2
ldouble: 2
Function: Imaginary part of "cexp_towardzero":
-double: 1
+double: 3
float: 3
-idouble: 1
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
@@ -872,9 +872,9 @@ ildouble: 3
ldouble: 3
Function: Imaginary part of "cexp_upward":
-double: 1
+double: 3
float: 2
-idouble: 1
+idouble: 3
ifloat: 2
ildouble: 3
ldouble: 3
@@ -1006,7 +1006,9 @@ ildouble: 2
ldouble: 2
Function: "cos":
+double: 1
float: 1
+idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
@@ -1044,25 +1046,25 @@ ildouble: 1
ldouble: 1
Function: "cosh_downward":
-double: 1
+double: 2
float: 1
-idouble: 1
+idouble: 2
ifloat: 1
ildouble: 1
ldouble: 2
Function: "cosh_towardzero":
-double: 1
+double: 2
float: 1
-idouble: 1
+idouble: 2
ifloat: 1
ildouble: 1
ldouble: 2
Function: "cosh_upward":
-double: 1
+double: 2
float: 2
-idouble: 1
+idouble: 2
ifloat: 2
ildouble: 1
ldouble: 3
@@ -1082,10 +1084,10 @@ ildouble: 1
ldouble: 1
Function: Real part of "cpow_downward":
-double: 2
-float: 4
-idouble: 2
-ifloat: 4
+double: 5
+float: 8
+idouble: 5
+ifloat: 8
ildouble: 6
ldouble: 6
@@ -1098,10 +1100,10 @@ ildouble: 2
ldouble: 2
Function: Real part of "cpow_towardzero":
-double: 2
-float: 4
-idouble: 2
-ifloat: 4
+double: 5
+float: 8
+idouble: 5
+ifloat: 8
ildouble: 6
ldouble: 6
@@ -1142,9 +1144,9 @@ ildouble: 1
ldouble: 1
Function: Real part of "csin_downward":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
@@ -1158,9 +1160,9 @@ ildouble: 2
ldouble: 2
Function: Real part of "csin_towardzero":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
@@ -1212,9 +1214,9 @@ ildouble: 2
ldouble: 2
Function: Imaginary part of "csinh_downward":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
@@ -1228,9 +1230,9 @@ ildouble: 2
ldouble: 2
Function: Imaginary part of "csinh_towardzero":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
@@ -1520,17 +1522,17 @@ ildouble: 2
ldouble: 2
Function: "exp10_downward":
-double: 2
+double: 3
float: 1
-idouble: 2
+idouble: 3
ifloat: 1
ildouble: 3
ldouble: 3
Function: "exp10_towardzero":
-double: 2
+double: 3
float: 1
-idouble: 2
+idouble: 3
ifloat: 1
ildouble: 3
ldouble: 3
@@ -1932,7 +1934,9 @@ ildouble: 1
ldouble: 1
Function: "pow":
+double: 1
float: 1
+idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
@@ -1962,7 +1966,9 @@ ildouble: 2
ldouble: 2
Function: "sin":
+double: 1
float: 1
+idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
@@ -1992,7 +1998,9 @@ ildouble: 3
ldouble: 3
Function: "sincos":
+double: 1
float: 1
+idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
diff --git a/sysdeps/alpha/fpu/math-barriers.h b/sysdeps/alpha/fpu/math-barriers.h
index 27a64d789d..e7573d2161 100644
--- a/sysdeps/alpha/fpu/math-barriers.h
+++ b/sysdeps/alpha/fpu/math-barriers.h
@@ -1,5 +1,5 @@
/* Control when floating-point expressions are evaluated. Alpha version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef ALPHA_MATH_BARRIERS_H
#define ALPHA_MATH_BARRIERS_H 1
diff --git a/sysdeps/alpha/fpu/math_private.h b/sysdeps/alpha/fpu/math_private.h
deleted file mode 100644
index c71447abf0..0000000000
--- a/sysdeps/alpha/fpu/math_private.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef ALPHA_MATH_PRIVATE_H
-#define ALPHA_MATH_PRIVATE_H 1
-
-/* In bits/mathinline.h we define __isnan et al.
- In sysdeps/alpha/fpu/s_isnan.c we move the identifier out of the way
- via macro hackery. In both cases, tell math/math_private.h that
- we have a local copy of the function. */
-
-#ifndef __isnan
-# define __isnan __isnan
-#endif
-#ifndef __isnanf
-# define __isnanf __isnanf
-#endif
-
-#include_next <math_private.h>
-
-#endif /* ALPHA_MATH_PRIVATE_H */
diff --git a/sysdeps/alpha/fpu/s_cacosf.c b/sysdeps/alpha/fpu/s_cacosf.c
index 91c4fb28fc..7f894e1688 100644
--- a/sysdeps/alpha/fpu/s_cacosf.c
+++ b/sysdeps/alpha/fpu/s_cacosf.c
@@ -1,5 +1,5 @@
/* Return arc cosine of complex float value.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __cacosf __cacosf_not_defined
#define cacosf cacosf_not_defined
diff --git a/sysdeps/alpha/fpu/s_cacoshf.c b/sysdeps/alpha/fpu/s_cacoshf.c
index a66ab27a2e..062d896f5c 100644
--- a/sysdeps/alpha/fpu/s_cacoshf.c
+++ b/sysdeps/alpha/fpu/s_cacoshf.c
@@ -1,5 +1,5 @@
/* Return arc hyperbole cosine of complex float value.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __cacoshf __cacoshf_not_defined
#define cacoshf cacoshf_not_defined
diff --git a/sysdeps/alpha/fpu/s_casinf.c b/sysdeps/alpha/fpu/s_casinf.c
index 1ce6a68ba3..b560042598 100644
--- a/sysdeps/alpha/fpu/s_casinf.c
+++ b/sysdeps/alpha/fpu/s_casinf.c
@@ -1,5 +1,5 @@
/* Return arc sine of complex float value.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __casinf __casinf_not_defined
#define casinf casinf_not_defined
diff --git a/sysdeps/alpha/fpu/s_casinhf.c b/sysdeps/alpha/fpu/s_casinhf.c
index 02cafe649b..98b6ec17d4 100644
--- a/sysdeps/alpha/fpu/s_casinhf.c
+++ b/sysdeps/alpha/fpu/s_casinhf.c
@@ -1,5 +1,5 @@
/* Return arc hyperbole sine of complex float value.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __casinhf __casinhf_not_defined
#define casinhf casinhf_not_defined
diff --git a/sysdeps/alpha/fpu/s_catanf.c b/sysdeps/alpha/fpu/s_catanf.c
index 2ed7e941d5..076e64dc3d 100644
--- a/sysdeps/alpha/fpu/s_catanf.c
+++ b/sysdeps/alpha/fpu/s_catanf.c
@@ -1,5 +1,5 @@
/* Return arc tangent of complex float value.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __catanf __catanf_not_defined
#define catanf catanf_not_defined
diff --git a/sysdeps/alpha/fpu/s_catanhf.c b/sysdeps/alpha/fpu/s_catanhf.c
index da783d2454..3bff9281b1 100644
--- a/sysdeps/alpha/fpu/s_catanhf.c
+++ b/sysdeps/alpha/fpu/s_catanhf.c
@@ -1,5 +1,5 @@
/* Return arc hyperbole tangent of complex float value.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __catanhf __catanhf_not_defined
#define catanhf catanhf_not_defined
diff --git a/sysdeps/alpha/fpu/s_ccosf.c b/sysdeps/alpha/fpu/s_ccosf.c
index 2ec5aaaef7..6bcc1a3b61 100644
--- a/sysdeps/alpha/fpu/s_ccosf.c
+++ b/sysdeps/alpha/fpu/s_ccosf.c
@@ -1,5 +1,5 @@
/* Return cosine of complex float value.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __ccosf __ccosf_not_defined
#define ccosf ccosf_not_defined
diff --git a/sysdeps/alpha/fpu/s_ccoshf.c b/sysdeps/alpha/fpu/s_ccoshf.c
index 5259949a4d..bf15c3f4db 100644
--- a/sysdeps/alpha/fpu/s_ccoshf.c
+++ b/sysdeps/alpha/fpu/s_ccoshf.c
@@ -1,5 +1,5 @@
/* Return hyperbole cosine of complex float value.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __ccoshf __ccoshf_not_defined
#define ccoshf ccoshf_not_defined
diff --git a/sysdeps/alpha/fpu/s_cexpf.c b/sysdeps/alpha/fpu/s_cexpf.c
index dcf9ad1c79..8d52cc542b 100644
--- a/sysdeps/alpha/fpu/s_cexpf.c
+++ b/sysdeps/alpha/fpu/s_cexpf.c
@@ -1,5 +1,5 @@
/* Return exponent of complex float value.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __cexpf __cexpf_not_defined
#define cexpf cexpf_not_defined
diff --git a/sysdeps/alpha/fpu/s_clog10f.c b/sysdeps/alpha/fpu/s_clog10f.c
index 9906107b73..310cc0425a 100644
--- a/sysdeps/alpha/fpu/s_clog10f.c
+++ b/sysdeps/alpha/fpu/s_clog10f.c
@@ -1,5 +1,5 @@
/* Return base 10 logarithm of complex float value.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __clog10f __clog10f_not_defined
#define clog10f clog10f_not_defined
diff --git a/sysdeps/alpha/fpu/s_clogf.c b/sysdeps/alpha/fpu/s_clogf.c
index 4afb73c822..3abd32134a 100644
--- a/sysdeps/alpha/fpu/s_clogf.c
+++ b/sysdeps/alpha/fpu/s_clogf.c
@@ -1,5 +1,5 @@
/* Return natural logarithm of complex float value.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __clogf __clogf_not_defined
#define clogf clogf_not_defined
diff --git a/sysdeps/alpha/fpu/s_copysign.c b/sysdeps/alpha/fpu/s_copysign.c
index 493615a896..6da1c76495 100644
--- a/sysdeps/alpha/fpu/s_copysign.c
+++ b/sysdeps/alpha/fpu/s_copysign.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson.
@@ -14,8 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
#include <math_ldbl_opt.h>
#include <libm-alias-double.h>
diff --git a/sysdeps/alpha/fpu/s_copysignf.c b/sysdeps/alpha/fpu/s_copysignf.c
index b92b6d4d77..9a63aa13b8 100644
--- a/sysdeps/alpha/fpu/s_copysignf.c
+++ b/sysdeps/alpha/fpu/s_copysignf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson.
@@ -14,8 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/alpha/fpu/s_cpowf.c b/sysdeps/alpha/fpu/s_cpowf.c
index 72f5586840..ec95e8baf6 100644
--- a/sysdeps/alpha/fpu/s_cpowf.c
+++ b/sysdeps/alpha/fpu/s_cpowf.c
@@ -1,5 +1,5 @@
/* Return power of complex float value.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __cpowf __cpowf_not_defined
#define cpowf cpowf_not_defined
diff --git a/sysdeps/alpha/fpu/s_cprojf.c b/sysdeps/alpha/fpu/s_cprojf.c
index 7557f25f1a..9dc75c322e 100644
--- a/sysdeps/alpha/fpu/s_cprojf.c
+++ b/sysdeps/alpha/fpu/s_cprojf.c
@@ -1,5 +1,5 @@
/* Return projection of complex float value to Riemann sphere.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __cprojf __cprojf_not_defined
#define cprojf cprojf_not_defined
diff --git a/sysdeps/alpha/fpu/s_csinf.c b/sysdeps/alpha/fpu/s_csinf.c
index 3c2d38a026..c3a77437d7 100644
--- a/sysdeps/alpha/fpu/s_csinf.c
+++ b/sysdeps/alpha/fpu/s_csinf.c
@@ -1,5 +1,5 @@
/* Return sine of complex float value.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __csinf __csinf_not_defined
#define csinf csinf_not_defined
diff --git a/sysdeps/alpha/fpu/s_csinhf.c b/sysdeps/alpha/fpu/s_csinhf.c
index 9d4e8cb537..7c56d4e78d 100644
--- a/sysdeps/alpha/fpu/s_csinhf.c
+++ b/sysdeps/alpha/fpu/s_csinhf.c
@@ -1,5 +1,5 @@
/* Return hyperbole sine of complex float value.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __csinhf __csinhf_not_defined
#define csinhf csinhf_not_defined
diff --git a/sysdeps/alpha/fpu/s_csqrtf.c b/sysdeps/alpha/fpu/s_csqrtf.c
index dc6057fbda..d7122a4c0b 100644
--- a/sysdeps/alpha/fpu/s_csqrtf.c
+++ b/sysdeps/alpha/fpu/s_csqrtf.c
@@ -1,5 +1,5 @@
/* Return square root of complex float value.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __csqrtf __csinhf_not_defined
#define csqrtf csqrtf_not_defined
diff --git a/sysdeps/alpha/fpu/s_ctanf.c b/sysdeps/alpha/fpu/s_ctanf.c
index a00f0bfb57..397d1d0717 100644
--- a/sysdeps/alpha/fpu/s_ctanf.c
+++ b/sysdeps/alpha/fpu/s_ctanf.c
@@ -1,5 +1,5 @@
/* Return tangent of complex float value.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __ctanf __ctanf_not_defined
#define ctanf ctanf_not_defined
diff --git a/sysdeps/alpha/fpu/s_ctanhf.c b/sysdeps/alpha/fpu/s_ctanhf.c
index 34f30d65ff..5585615276 100644
--- a/sysdeps/alpha/fpu/s_ctanhf.c
+++ b/sysdeps/alpha/fpu/s_ctanhf.c
@@ -1,5 +1,5 @@
/* Return hyperbole tangent of complex float value.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __ctanhf __ctanhf_not_defined
#define ctanhf ctanhf_not_defined
diff --git a/sysdeps/alpha/fpu/s_fabs.c b/sysdeps/alpha/fpu/s_fabs.c
index 08b3134c91..af19c92460 100644
--- a/sysdeps/alpha/fpu/s_fabs.c
+++ b/sysdeps/alpha/fpu/s_fabs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_ldbl_opt.h>
diff --git a/sysdeps/alpha/fpu/s_fabsf.c b/sysdeps/alpha/fpu/s_fabsf.c
index 5d90e0d661..949b36ad26 100644
--- a/sysdeps/alpha/fpu/s_fabsf.c
+++ b/sysdeps/alpha/fpu/s_fabsf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/alpha/fpu/s_isnan.c b/sysdeps/alpha/fpu/s_isnan.c
index a8b20db204..cab8e43b38 100644
--- a/sysdeps/alpha/fpu/s_isnan.c
+++ b/sysdeps/alpha/fpu/s_isnan.c
@@ -1,5 +1,5 @@
/* Return 1 if argument is a NaN, else 0.
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Ugly kludge to avoid declarations. */
#define __isnanf not___isnanf
diff --git a/sysdeps/alpha/fpu/s_lrint.c b/sysdeps/alpha/fpu/s_lrint.c
index 02470eeda7..3be75b9bb6 100644
--- a/sysdeps/alpha/fpu/s_lrint.c
+++ b/sysdeps/alpha/fpu/s_lrint.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __llrint not___llrint
#define llrint not_llrint
diff --git a/sysdeps/alpha/fpu/s_lrintf.c b/sysdeps/alpha/fpu/s_lrintf.c
index 125c0b1cf0..016fa535b5 100644
--- a/sysdeps/alpha/fpu/s_lrintf.c
+++ b/sysdeps/alpha/fpu/s_lrintf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __llrintf not___llrintf
#define llrintf not_llrintf
diff --git a/sysdeps/alpha/fpu/s_lround.c b/sysdeps/alpha/fpu/s_lround.c
index e2aeb707af..6dfd36c4ad 100644
--- a/sysdeps/alpha/fpu/s_lround.c
+++ b/sysdeps/alpha/fpu/s_lround.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __llround not___llround
#define llround not_llround
diff --git a/sysdeps/alpha/fpu/s_lroundf.c b/sysdeps/alpha/fpu/s_lroundf.c
index 34f56e4700..d2c7e94428 100644
--- a/sysdeps/alpha/fpu/s_lroundf.c
+++ b/sysdeps/alpha/fpu/s_lroundf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __llroundf not___llroundf
#define llroundf not_llroundf
diff --git a/sysdeps/alpha/fpu/s_rint.c b/sysdeps/alpha/fpu/s_rint.c
index d3bcf1829a..1ebeede723 100644
--- a/sysdeps/alpha/fpu/s_rint.c
+++ b/sysdeps/alpha/fpu/s_rint.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson.
@@ -14,8 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
#include <math_ldbl_opt.h>
#include <libm-alias-double.h>
diff --git a/sysdeps/alpha/fpu/s_rintf.c b/sysdeps/alpha/fpu/s_rintf.c
index 0cc912d843..d252e9e268 100644
--- a/sysdeps/alpha/fpu/s_rintf.c
+++ b/sysdeps/alpha/fpu/s_rintf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson.
@@ -14,8 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/alpha/gccframe.h b/sysdeps/alpha/gccframe.h
index bb24310b72..13b06e226a 100644
--- a/sysdeps/alpha/gccframe.h
+++ b/sysdeps/alpha/gccframe.h
@@ -1,5 +1,5 @@
/* Definition of object in frame unwind info. alpha version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define FIRST_PSEUDO_REGISTER 64
diff --git a/sysdeps/alpha/hp-timing.h b/sysdeps/alpha/hp-timing.h
index 62284e003a..4f5439a230 100644
--- a/sysdeps/alpha/hp-timing.h
+++ b/sysdeps/alpha/hp-timing.h
@@ -1,5 +1,5 @@
/* High precision, low overhead timing functions. Alpha version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson <rth@redhat.com>, 2001.
@@ -15,18 +15,15 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#ifndef _HP_TIMING_H
-#define _HP_TIMING_H 1
+#ifndef _HP_TIMING_ALPHA_H
+#define _HP_TIMING_ALPHA_H 1
+#if IS_IN(rtld)
/* We always have the timestamp register, but it's got only a 4 second
range. Use it for ld.so profiling only. */
-#define HP_TIMING_AVAIL (0)
-#define HP_SMALL_TIMING_AVAIL (1)
-
-/* We indeed have inlined functions. */
-#define HP_TIMING_INLINE (1)
+# define HP_TIMING_INLINE (1)
/* We use 32 bit values for the times. */
typedef unsigned int hp_timing_t;
@@ -34,13 +31,16 @@ typedef unsigned int hp_timing_t;
/* The "rpcc" instruction returns a 32-bit counting half and a 32-bit
"virtual cycle counter displacement". Subtracting the two gives us
a virtual cycle count. */
-#define HP_TIMING_NOW(VAR) \
+# define HP_TIMING_NOW(VAR) \
do { \
unsigned long int x_; \
asm volatile ("rpcc %0" : "=r"(x_)); \
(VAR) = (int) (x_) - (int) (x_ >> 32); \
} while (0)
+# include <hp-timing-common.h>
-#include <hp-timing-common.h>
+#else
+# include <sysdeps/generic/hp-timing.h>
+#endif /* IS_IN(rtld) */
#endif /* hp-timing.h */
diff --git a/sysdeps/alpha/htonl.S b/sysdeps/alpha/htonl.S
index 5344c33405..47f8ec11d1 100644
--- a/sysdeps/alpha/htonl.S
+++ b/sysdeps/alpha/htonl.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/alpha/htons.S b/sysdeps/alpha/htons.S
index 6d082b9ba7..0959cca6e2 100644
--- a/sysdeps/alpha/htons.S
+++ b/sysdeps/alpha/htons.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/alpha/jmpbuf-offsets.h b/sysdeps/alpha/jmpbuf-offsets.h
index 83a5d59c12..9a0dceb78d 100644
--- a/sysdeps/alpha/jmpbuf-offsets.h
+++ b/sysdeps/alpha/jmpbuf-offsets.h
@@ -1,5 +1,5 @@
/* Private macros for accessing __jmp_buf contents. Alpha version.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define JB_S0 0
#define JB_S1 1
diff --git a/sysdeps/alpha/jmpbuf-unwind.h b/sysdeps/alpha/jmpbuf-unwind.h
index 431ad47bb8..a538b76841 100644
--- a/sysdeps/alpha/jmpbuf-unwind.h
+++ b/sysdeps/alpha/jmpbuf-unwind.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <setjmp.h>
#include <jmpbuf-offsets.h>
diff --git a/sysdeps/alpha/ldiv.S b/sysdeps/alpha/ldiv.S
index 1ed25fa96e..c89643f751 100644
--- a/sysdeps/alpha/ldiv.S
+++ b/sysdeps/alpha/ldiv.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson <rth@tamu.edu>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "div_libc.h"
diff --git a/sysdeps/alpha/ldsodefs.h b/sysdeps/alpha/ldsodefs.h
index 2d41649b26..bc76cf6fab 100644
--- a/sysdeps/alpha/ldsodefs.h
+++ b/sysdeps/alpha/ldsodefs.h
@@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef __LDSODEFS_H
diff --git a/sysdeps/alpha/libc-tls.c b/sysdeps/alpha/libc-tls.c
index 8d384d3e9e..4aab7d0c7f 100644
--- a/sysdeps/alpha/libc-tls.c
+++ b/sysdeps/alpha/libc-tls.c
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. Alpha version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <csu/libc-tls.c>
#include <dl-tls.h>
diff --git a/sysdeps/alpha/lshift.S b/sysdeps/alpha/lshift.S
index adbe0b8fa6..0aed0904c2 100644
--- a/sysdeps/alpha/lshift.S
+++ b/sysdeps/alpha/lshift.S
@@ -1,6 +1,6 @@
# Alpha 21064 __mpn_lshift --
- # Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ # Copyright (C) 1994-2019 Free Software Foundation, Inc.
# This file is part of the GNU MP Library.
@@ -15,7 +15,7 @@
# License for more details.
# You should have received a copy of the GNU Lesser General Public License
- # along with the GNU MP Library. If not, see <http://www.gnu.org/licenses/>.
+ # along with the GNU MP Library. If not, see <https://www.gnu.org/licenses/>.
# INPUT PARAMETERS
diff --git a/sysdeps/alpha/machine-gmon.h b/sysdeps/alpha/machine-gmon.h
index 5f537530f6..a1247c0f8d 100644
--- a/sysdeps/alpha/machine-gmon.h
+++ b/sysdeps/alpha/machine-gmon.h
@@ -1,5 +1,5 @@
/* Machine-specific calling sequence for `mcount' profiling function. alpha
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _MCOUNT_DECL(from, self) \
void __mcount (u_long from, u_long self)
diff --git a/sysdeps/alpha/memchr.c b/sysdeps/alpha/memchr.c
index 11b0c736ca..b26cb51797 100644
--- a/sysdeps/alpha/memchr.c
+++ b/sysdeps/alpha/memchr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2010-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/sysdeps/alpha/memset.S b/sysdeps/alpha/memset.S
index 9bf5283981..16cf7b5b84 100644
--- a/sysdeps/alpha/memset.S
+++ b/sysdeps/alpha/memset.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
Contributed by Richard Henderson (rth@tamu.edu)
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Fill a block of memory with a character. Optimized for the Alpha
architecture:
diff --git a/sysdeps/alpha/memusage.h b/sysdeps/alpha/memusage.h
index 858826cca9..f018382d86 100644
--- a/sysdeps/alpha/memusage.h
+++ b/sysdeps/alpha/memusage.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define GETSP() ({ register uintptr_t stack_ptr asm ("$30"); stack_ptr; })
diff --git a/sysdeps/alpha/mul_1.S b/sysdeps/alpha/mul_1.S
index a547b94e1f..c6bdcbe67e 100644
--- a/sysdeps/alpha/mul_1.S
+++ b/sysdeps/alpha/mul_1.S
@@ -1,7 +1,7 @@
# Alpha 21064 __mpn_mul_1 -- Multiply a limb vector with a limb and store
# the result in a second limb vector.
- # Copyright (C) 1992-2018 Free Software Foundation, Inc.
+ # Copyright (C) 1992-2019 Free Software Foundation, Inc.
# This file is part of the GNU MP Library.
@@ -16,7 +16,7 @@
# License for more details.
# You should have received a copy of the GNU Lesser General Public License
- # along with the GNU MP Library. If not, see <http://www.gnu.org/licenses/>.
+ # along with the GNU MP Library. If not, see <https://www.gnu.org/licenses/>.
# INPUT PARAMETERS
diff --git a/sysdeps/alpha/nptl/Makefile b/sysdeps/alpha/nptl/Makefile
index 8e63e8ad55..6fba0e9ed0 100644
--- a/sysdeps/alpha/nptl/Makefile
+++ b/sysdeps/alpha/nptl/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2018 Free Software Foundation, Inc.
+# Copyright (C) 2003-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
ifeq ($(subdir),csu)
gen-as-const-headers += tcb-offsets.sym
diff --git a/sysdeps/alpha/nptl/bits/pthreadtypes-arch.h b/sysdeps/alpha/nptl/bits/pthreadtypes-arch.h
deleted file mode 100644
index 1ea7f4e4cf..0000000000
--- a/sysdeps/alpha/nptl/bits/pthreadtypes-arch.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/* Machine-specific pthread type layouts. Alpha version.
- Copyright (C) 2003-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _BITS_PTHREADTYPES_ARCH_H
-#define _BITS_PTHREADTYPES_ARCH_H 1
-
-#define __SIZEOF_PTHREAD_ATTR_T 56
-#define __SIZEOF_PTHREAD_MUTEX_T 40
-#define __SIZEOF_PTHREAD_MUTEXATTR_T 4
-#define __SIZEOF_PTHREAD_COND_T 48
-#define __SIZEOF_PTHREAD_CONDATTR_T 4
-#define __SIZEOF_PTHREAD_RWLOCK_T 56
-#define __SIZEOF_PTHREAD_RWLOCKATTR_T 8
-#define __SIZEOF_PTHREAD_BARRIER_T 32
-#define __SIZEOF_PTHREAD_BARRIERATTR_T 4
-
-/* Definitions for internal mutex struct. */
-#define __PTHREAD_COMPAT_PADDING_MID
-#define __PTHREAD_COMPAT_PADDING_END
-#define __PTHREAD_MUTEX_LOCK_ELISION 0
-#define __PTHREAD_MUTEX_NUSERS_AFTER_KIND 0
-#define __PTHREAD_MUTEX_USE_UNION 0
-
-#define __LOCK_ALIGNMENT
-#define __ONCE_ALIGNMENT
-
-struct __pthread_rwlock_arch_t
-{
- unsigned int __readers;
- unsigned int __writers;
- unsigned int __wrphase_futex;
- unsigned int __writers_futex;
- unsigned int __pad3;
- unsigned int __pad4;
- int __cur_writer;
- int __shared;
- unsigned long int __pad1;
- unsigned long int __pad2;
- /* FLAGS must stay at this position in the structure to maintain
- binary compatibility. */
- unsigned int __flags;
-};
-
-#define __PTHREAD_RWLOCK_ELISION_EXTRA 0
-
-#endif /* bits/pthreadtypes.h */
diff --git a/sysdeps/alpha/nptl/bits/struct_rwlock.h b/sysdeps/alpha/nptl/bits/struct_rwlock.h
new file mode 100644
index 0000000000..32e18a4a4e
--- /dev/null
+++ b/sysdeps/alpha/nptl/bits/struct_rwlock.h
@@ -0,0 +1,43 @@
+/* Alpha internal rwlock struct definitions.
+ 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; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _RWLOCK_INTERNAL_H
+#define _RWLOCK_INTERNAL_H
+
+struct __pthread_rwlock_arch_t
+{
+ unsigned int __readers;
+ unsigned int __writers;
+ unsigned int __wrphase_futex;
+ unsigned int __writers_futex;
+ unsigned int __pad3;
+ unsigned int __pad4;
+ int __cur_writer;
+ int __shared;
+ unsigned long int __pad1;
+ unsigned long int __pad2;
+ /* FLAGS must stay at this position in the structure to maintain
+ binary compatibility. */
+ unsigned int __flags;
+};
+
+#define __PTHREAD_RWLOCK_INITIALIZER(__flags) \
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, __flags
+
+#endif
diff --git a/sysdeps/alpha/nptl/pthread-offsets.h b/sysdeps/alpha/nptl/pthread-offsets.h
deleted file mode 100644
index 16c6b0d9fd..0000000000
--- a/sysdeps/alpha/nptl/pthread-offsets.h
+++ /dev/null
@@ -1,5 +0,0 @@
-#define __PTHREAD_MUTEX_NUSERS_OFFSET 12
-#define __PTHREAD_MUTEX_KIND_OFFSET 16
-#define __PTHREAD_MUTEX_SPINS_OFFSET 20
-#define __PTHREAD_MUTEX_ELISION_OFFSET 22
-#define __PTHREAD_MUTEX_LIST_OFFSET 24
diff --git a/sysdeps/alpha/nptl/pthread_spin_lock.S b/sysdeps/alpha/nptl/pthread_spin_lock.S
index 3ca52184d1..d936debfb5 100644
--- a/sysdeps/alpha/nptl/pthread_spin_lock.S
+++ b/sysdeps/alpha/nptl/pthread_spin_lock.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson <rth@twiddle.net>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
.text
diff --git a/sysdeps/alpha/nptl/pthread_spin_trylock.S b/sysdeps/alpha/nptl/pthread_spin_trylock.S
index bac54339a2..119c894b69 100644
--- a/sysdeps/alpha/nptl/pthread_spin_trylock.S
+++ b/sysdeps/alpha/nptl/pthread_spin_trylock.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson <rth@twiddle.net>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _ERRNO_H 1
diff --git a/sysdeps/alpha/nptl/pthreaddef.h b/sysdeps/alpha/nptl/pthreaddef.h
index f505583600..f4fca7b102 100644
--- a/sysdeps/alpha/nptl/pthreaddef.h
+++ b/sysdeps/alpha/nptl/pthreaddef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Default stack size. */
#define ARCH_STACK_DEFAULT_SIZE (4 * 1024 * 1024)
diff --git a/sysdeps/alpha/nptl/tls.h b/sysdeps/alpha/nptl/tls.h
index 482c8f855c..32a3fb264d 100644
--- a/sysdeps/alpha/nptl/tls.h
+++ b/sysdeps/alpha/nptl/tls.h
@@ -1,5 +1,5 @@
/* Definition for thread-local data handling. NPTL/Alpha version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _TLS_H
#define _TLS_H 1
diff --git a/sysdeps/alpha/nscd-types.h b/sysdeps/alpha/nscd-types.h
index 1caa10bc3c..a5ddd904f1 100644
--- a/sysdeps/alpha/nscd-types.h
+++ b/sysdeps/alpha/nscd-types.h
@@ -1,5 +1,5 @@
/* Types for the NSCD implementation. Alpha version.
- Copyright (c) 2000-2018 Free Software Foundation, Inc.
+ Copyright (c) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/sysdeps/alpha/ots_add.c b/sysdeps/alpha/ots_add.c
index 5c6fd68204..4f358b89d9 100644
--- a/sysdeps/alpha/ots_add.c
+++ b/sysdeps/alpha/ots_add.c
@@ -1,5 +1,5 @@
/* Software floating-point emulation: addition.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "local-soft-fp.h"
diff --git a/sysdeps/alpha/ots_cmp.c b/sysdeps/alpha/ots_cmp.c
index 77e8161385..e9d7613b5d 100644
--- a/sysdeps/alpha/ots_cmp.c
+++ b/sysdeps/alpha/ots_cmp.c
@@ -1,5 +1,5 @@
/* Software floating-point emulation: comparison.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "local-soft-fp.h"
diff --git a/sysdeps/alpha/ots_cmpe.c b/sysdeps/alpha/ots_cmpe.c
index a1ddcc32b1..ab87f674e2 100644
--- a/sysdeps/alpha/ots_cmpe.c
+++ b/sysdeps/alpha/ots_cmpe.c
@@ -1,5 +1,5 @@
/* Software floating-point emulation: comparison.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "local-soft-fp.h"
diff --git a/sysdeps/alpha/ots_cvtqux.c b/sysdeps/alpha/ots_cvtqux.c
index d723c46512..b9c5e64dda 100644
--- a/sysdeps/alpha/ots_cvtqux.c
+++ b/sysdeps/alpha/ots_cvtqux.c
@@ -1,5 +1,5 @@
/* Software floating-point emulation: unsigned integer to float conversion.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "local-soft-fp.h"
diff --git a/sysdeps/alpha/ots_cvtqx.c b/sysdeps/alpha/ots_cvtqx.c
index 84151775a1..160bc77420 100644
--- a/sysdeps/alpha/ots_cvtqx.c
+++ b/sysdeps/alpha/ots_cvtqx.c
@@ -1,5 +1,5 @@
/* Software floating-point emulation: signed integer to float conversion.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "local-soft-fp.h"
diff --git a/sysdeps/alpha/ots_cvttx.c b/sysdeps/alpha/ots_cvttx.c
index 582e22e79e..a970aa804f 100644
--- a/sysdeps/alpha/ots_cvttx.c
+++ b/sysdeps/alpha/ots_cvttx.c
@@ -1,5 +1,5 @@
/* Software floating-point emulation: floating point extension.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "local-soft-fp.h"
#include "double.h"
@@ -35,7 +35,7 @@ _OtsConvertFloatTX(double a)
AXP_DECL_RETURN_Q(c);
FP_UNPACK_RAW_D(A, a);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
FP_EXTEND(Q,D,4,2,C,A);
#else
FP_EXTEND(Q,D,2,1,C,A);
diff --git a/sysdeps/alpha/ots_cvtxq.c b/sysdeps/alpha/ots_cvtxq.c
index 567008cbeb..4d65342858 100644
--- a/sysdeps/alpha/ots_cvtxq.c
+++ b/sysdeps/alpha/ots_cvtxq.c
@@ -1,5 +1,5 @@
/* Software floating-point emulation: float to integer conversion.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "local-soft-fp.h"
diff --git a/sysdeps/alpha/ots_cvtxt.c b/sysdeps/alpha/ots_cvtxt.c
index c70cb4b51c..365eae609c 100644
--- a/sysdeps/alpha/ots_cvtxt.c
+++ b/sysdeps/alpha/ots_cvtxt.c
@@ -1,5 +1,5 @@
/* Software floating-point emulation: floating point truncation.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "local-soft-fp.h"
#include "double.h"
@@ -31,7 +31,7 @@ _OtsConvertFloatXT (long al, long ah, long _round)
FP_INIT_ROUNDMODE;
AXP_UNPACK_SEMIRAW_Q(A, a);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
FP_TRUNC(D,Q,2,4,R,A);
#else
FP_TRUNC(D,Q,1,2,R,A);
diff --git a/sysdeps/alpha/ots_div.c b/sysdeps/alpha/ots_div.c
index 345ae3a73a..409f3d540e 100644
--- a/sysdeps/alpha/ots_div.c
+++ b/sysdeps/alpha/ots_div.c
@@ -1,5 +1,5 @@
/* Software floating-point emulation: division.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "local-soft-fp.h"
diff --git a/sysdeps/alpha/ots_mul.c b/sysdeps/alpha/ots_mul.c
index f88764d325..27eaa9ff38 100644
--- a/sysdeps/alpha/ots_mul.c
+++ b/sysdeps/alpha/ots_mul.c
@@ -1,5 +1,5 @@
/* Software floating-point emulation: multiplication.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "local-soft-fp.h"
diff --git a/sysdeps/alpha/ots_nintxq.c b/sysdeps/alpha/ots_nintxq.c
index 0e206dda61..821f1ff848 100644
--- a/sysdeps/alpha/ots_nintxq.c
+++ b/sysdeps/alpha/ots_nintxq.c
@@ -1,5 +1,5 @@
/* Software floating-point emulation: convert to fortran nearest.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "local-soft-fp.h"
diff --git a/sysdeps/alpha/ots_sub.c b/sysdeps/alpha/ots_sub.c
index 526626872b..2bab78ab7c 100644
--- a/sysdeps/alpha/ots_sub.c
+++ b/sysdeps/alpha/ots_sub.c
@@ -1,5 +1,5 @@
/* Software floating-point emulation: subtraction.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "local-soft-fp.h"
diff --git a/sysdeps/alpha/rawmemchr.S b/sysdeps/alpha/rawmemchr.S
index 0f94ce7e8a..7155bbf316 100644
--- a/sysdeps/alpha/rawmemchr.S
+++ b/sysdeps/alpha/rawmemchr.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Return pointer to first occurrence of CH in STR. */
diff --git a/sysdeps/alpha/reml.S b/sysdeps/alpha/reml.S
index 485e215765..f787db6784 100644
--- a/sysdeps/alpha/reml.S
+++ b/sysdeps/alpha/reml.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2019 Free Software Foundation, Inc.
Contributed by Richard Henderson <rth@twiddle.net>
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "div_libc.h"
diff --git a/sysdeps/alpha/remq.S b/sysdeps/alpha/remq.S
index 505883953d..999511a6a7 100644
--- a/sysdeps/alpha/remq.S
+++ b/sysdeps/alpha/remq.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "div_libc.h"
diff --git a/sysdeps/alpha/remqu.S b/sysdeps/alpha/remqu.S
index 46414a16e6..77efb84742 100644
--- a/sysdeps/alpha/remqu.S
+++ b/sysdeps/alpha/remqu.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "div_libc.h"
@@ -57,19 +57,19 @@ __remqu:
ready -- all the time in the world to figure out how we're
going to use the results. */
subq Y, 1, AT
- stt $f0, 0(sp)
and Y, AT, AT
+ beq AT, $powerof2
- stt $f1, 8(sp)
+ stt $f0, 0(sp)
excb
+ stt $f1, 8(sp)
stt $f3, 48(sp)
- beq AT, $powerof2
cfi_rel_offset ($f0, 0)
cfi_rel_offset ($f1, 8)
cfi_rel_offset ($f3, 48)
+ mf_fpcr $f3
_ITOFT2 X, $f0, 16, Y, $f1, 24
- mf_fpcr $f3
cvtqt $f0, $f0
cvtqt $f1, $f1
@@ -116,11 +116,13 @@ $x_is_neg:
cfi_rel_offset ($f2, 24)
_ITOFS AT, $f2, 16
+ .align 4
addt $f0, $f2, $f0
+ unop
divt/c $f0, $f1, $f0
+ unop
/* Ok, we've now the divide issued. Continue with other checks. */
- .align 4
ldt $f1, 8(sp)
unop
ldt $f2, 24(sp)
@@ -246,12 +248,16 @@ $y_is_neg:
quotient must be either 0 or 1, so the remainder must be X
or X-Y, so just compute it directly. */
cmpule Y, X, AT
+ excb
+ mt_fpcr $f3
subq X, Y, RV
ldt $f0, 0(sp)
+ ldt $f3, 48(sp)
cmoveq AT, X, RV
lda sp, FRAME(sp)
cfi_restore ($f0)
+ cfi_restore ($f3)
cfi_def_cfa_offset (0)
ret $31, (RA), 1
diff --git a/sysdeps/alpha/rshift.S b/sysdeps/alpha/rshift.S
index b76803c604..d1eb83a511 100644
--- a/sysdeps/alpha/rshift.S
+++ b/sysdeps/alpha/rshift.S
@@ -1,6 +1,6 @@
# Alpha 21064 __mpn_rshift --
- # Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ # Copyright (C) 1994-2019 Free Software Foundation, Inc.
# This file is part of the GNU MP Library.
@@ -15,7 +15,7 @@
# License for more details.
# You should have received a copy of the GNU Lesser General Public License
- # along with the GNU MP Library. If not, see <http://www.gnu.org/licenses/>.
+ # along with the GNU MP Library. If not, see <https://www.gnu.org/licenses/>.
# INPUT PARAMETERS
diff --git a/sysdeps/alpha/setjmp.S b/sysdeps/alpha/setjmp.S
index cfa53c9114..c276e2c079 100644
--- a/sysdeps/alpha/setjmp.S
+++ b/sysdeps/alpha/setjmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __ASSEMBLY__
diff --git a/sysdeps/alpha/sfp-machine.h b/sysdeps/alpha/sfp-machine.h
index 848881ba33..a2e740bc2d 100644
--- a/sysdeps/alpha/sfp-machine.h
+++ b/sysdeps/alpha/sfp-machine.h
@@ -1,6 +1,6 @@
/* Machine-dependent software floating-point definitions.
Alpha userland IEEE 128-bit version.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com),
Jakub Jelinek (jj@ultra.linux.cz) and
@@ -18,7 +18,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv_libc.h>
diff --git a/sysdeps/alpha/sotruss-lib.c b/sysdeps/alpha/sotruss-lib.c
index 084d0e52e4..52d44f69ec 100644
--- a/sysdeps/alpha/sotruss-lib.c
+++ b/sysdeps/alpha/sotruss-lib.c
@@ -1,5 +1,5 @@
/* Override generic sotruss-lib.c to define actual functions for Alpha.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define HAVE_ARCH_PLTENTER
#define HAVE_ARCH_PLTEXIT
diff --git a/sysdeps/alpha/stackinfo.h b/sysdeps/alpha/stackinfo.h
index d846da10d4..bee11933cd 100644
--- a/sysdeps/alpha/stackinfo.h
+++ b/sysdeps/alpha/stackinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file contains a bit of information about the stack allocation
of the processor. */
diff --git a/sysdeps/alpha/start.S b/sysdeps/alpha/start.S
index 5de8ceeca7..5017b13597 100644
--- a/sysdeps/alpha/start.S
+++ b/sysdeps/alpha/start.S
@@ -1,5 +1,5 @@
/* Startup code for Alpha/ELF.
- Copyright (C) 1993-2018 Free Software Foundation, Inc.
+ Copyright (C) 1993-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson <rth@tamu.edu>
@@ -32,7 +32,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/alpha/stpcpy.S b/sysdeps/alpha/stpcpy.S
index 0122e494a1..c02a1eb251 100644
--- a/sysdeps/alpha/stpcpy.S
+++ b/sysdeps/alpha/stpcpy.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson <rth@tamu.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Copy a null-terminated string from SRC to DST. Return a pointer
to the null-terminator in the source. */
diff --git a/sysdeps/alpha/stpncpy.S b/sysdeps/alpha/stpncpy.S
index 0c2ffc441d..4f779b113c 100644
--- a/sysdeps/alpha/stpncpy.S
+++ b/sysdeps/alpha/stpncpy.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@tamu.edu)
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Copy no more than COUNT bytes of the null-terminated string from
SRC to DST. If SRC does not cover all of COUNT, the balance is
diff --git a/sysdeps/alpha/strcat.S b/sysdeps/alpha/strcat.S
index 046c7b8ee3..07ec1c3ff7 100644
--- a/sysdeps/alpha/strcat.S
+++ b/sysdeps/alpha/strcat.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson <rth@tamu.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Append a null-terminated string from SRC to DST. */
diff --git a/sysdeps/alpha/strchr.S b/sysdeps/alpha/strchr.S
index 772e2b5fb1..6da299fb44 100644
--- a/sysdeps/alpha/strchr.S
+++ b/sysdeps/alpha/strchr.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@tamu.edu)
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Return the address of a given character within a null-terminated
string, or null if it is not found.
diff --git a/sysdeps/alpha/strcmp.S b/sysdeps/alpha/strcmp.S
index 00ff115b99..3307abf275 100644
--- a/sysdeps/alpha/strcmp.S
+++ b/sysdeps/alpha/strcmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
Contributed by Richard Henderson (rth@tamu.edu)
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Bytewise compare two null-terminated strings. */
diff --git a/sysdeps/alpha/strcpy.S b/sysdeps/alpha/strcpy.S
index cad0d51041..6cf7059643 100644
--- a/sysdeps/alpha/strcpy.S
+++ b/sysdeps/alpha/strcpy.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson <rth@tamu.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Copy a null-terminated string from SRC to DST. Return a pointer
to the null-terminator in the source. */
diff --git a/sysdeps/alpha/strlen.S b/sysdeps/alpha/strlen.S
index 76efb9b050..65654e0c87 100644
--- a/sysdeps/alpha/strlen.S
+++ b/sysdeps/alpha/strlen.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
Contributed by David Mosberger (davidm@cs.arizona.edu).
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Finds length of a 0-terminated string. Optimized for the Alpha
architecture:
diff --git a/sysdeps/alpha/strncat.S b/sysdeps/alpha/strncat.S
index a4faf4c914..1f1a12aca7 100644
--- a/sysdeps/alpha/strncat.S
+++ b/sysdeps/alpha/strncat.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson <rth@tamu.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Append no more than COUNT characters from the null-terminated string SRC
to the null-terminated string DST. Always null-terminate the new DST. */
diff --git a/sysdeps/alpha/strncmp.S b/sysdeps/alpha/strncmp.S
index ebe9268c6f..d8cd95a303 100644
--- a/sysdeps/alpha/strncmp.S
+++ b/sysdeps/alpha/strncmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
Contributed by Richard Henderson (rth@tamu.edu)
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Bytewise compare two null-terminated strings of length no longer than N. */
diff --git a/sysdeps/alpha/strncpy.S b/sysdeps/alpha/strncpy.S
index fdb8e4b34d..adae0fdf5d 100644
--- a/sysdeps/alpha/strncpy.S
+++ b/sysdeps/alpha/strncpy.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
Contributed by Richard Henderson (rth@tamu.edu)
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Copy no more than COUNT bytes of the null-terminated string from
SRC to DST. If SRC does not cover all of COUNT, the balance is
diff --git a/sysdeps/alpha/strrchr.S b/sysdeps/alpha/strrchr.S
index 235b8b39a1..99fa638bd7 100644
--- a/sysdeps/alpha/strrchr.S
+++ b/sysdeps/alpha/strrchr.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Return the address of the last occurrence of a given character
within a null-terminated string, or null if it is not found.
diff --git a/sysdeps/alpha/stxcpy.S b/sysdeps/alpha/stxcpy.S
index 2f32dfda9d..89fa5329d9 100644
--- a/sysdeps/alpha/stxcpy.S
+++ b/sysdeps/alpha/stxcpy.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
Contributed by Richard Henderson (rth@tamu.edu)
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Copy a null-terminated string from SRC to DST.
diff --git a/sysdeps/alpha/stxncpy.S b/sysdeps/alpha/stxncpy.S
index 690459cd60..bf76927017 100644
--- a/sysdeps/alpha/stxncpy.S
+++ b/sysdeps/alpha/stxncpy.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
Contributed by Richard Henderson (rth@tamu.edu)
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Copy no more than COUNT bytes of the null-terminated string from
SRC to DST.
diff --git a/sysdeps/alpha/sub_n.S b/sysdeps/alpha/sub_n.S
index 5a4a9b9dad..de37936924 100644
--- a/sysdeps/alpha/sub_n.S
+++ b/sysdeps/alpha/sub_n.S
@@ -1,7 +1,7 @@
# Alpha __mpn_sub_n -- Subtract two limb vectors of the same length > 0 and
# store difference in a third limb vector.
- # Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ # Copyright (C) 1995-2019 Free Software Foundation, Inc.
# This file is part of the GNU MP Library.
@@ -16,7 +16,7 @@
# License for more details.
# You should have received a copy of the GNU Lesser General Public License
- # along with the GNU MP Library. If not, see <http://www.gnu.org/licenses/>.
+ # along with the GNU MP Library. If not, see <https://www.gnu.org/licenses/>.
# INPUT PARAMETERS
diff --git a/sysdeps/alpha/submul_1.S b/sysdeps/alpha/submul_1.S
index cea29eda44..e902d780cb 100644
--- a/sysdeps/alpha/submul_1.S
+++ b/sysdeps/alpha/submul_1.S
@@ -1,7 +1,7 @@
# Alpha 21064 __mpn_submul_1 -- Multiply a limb vector with a limb and
# subtract the result from a second limb vector.
- # Copyright (C) 1992-2018 Free Software Foundation, Inc.
+ # Copyright (C) 1992-2019 Free Software Foundation, Inc.
# This file is part of the GNU MP Library.
@@ -16,7 +16,7 @@
# License for more details.
# You should have received a copy of the GNU Lesser General Public License
- # along with the GNU MP Library. If not, see <http://www.gnu.org/licenses/>.
+ # along with the GNU MP Library. If not, see <https://www.gnu.org/licenses/>.
# INPUT PARAMETERS
diff --git a/sysdeps/alpha/tst-audit.h b/sysdeps/alpha/tst-audit.h
index f12a720782..c3479f9ebb 100644
--- a/sysdeps/alpha/tst-audit.h
+++ b/sysdeps/alpha/tst-audit.h
@@ -1,5 +1,5 @@
/* Definitions for testing PLT entry/exit auditing. Alpha version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define pltenter la_alpha_gnu_pltenter
#define pltexit la_alpha_gnu_pltexit
diff --git a/sysdeps/alpha/udiv_qrnnd.S b/sysdeps/alpha/udiv_qrnnd.S
index b0453ff87c..9355b3bc2d 100644
--- a/sysdeps/alpha/udiv_qrnnd.S
+++ b/sysdeps/alpha/udiv_qrnnd.S
@@ -1,6 +1,6 @@
# Alpha 21064 __udiv_qrnnd
- # Copyright (C) 1992-2018 Free Software Foundation, Inc.
+ # Copyright (C) 1992-2019 Free Software Foundation, Inc.
# This file is part of the GNU MP Library.
@@ -15,7 +15,7 @@
# License for more details.
# You should have received a copy of the GNU Lesser General Public License
- # along with the GNU MP Library. If not, see <http://www.gnu.org/licenses/>.
+ # along with the GNU MP Library. If not, see <https://www.gnu.org/licenses/>.
#include <sysdep.h>
diff --git a/sysdeps/arm/__longjmp.S b/sysdeps/arm/__longjmp.S
index b2cbbb9e3a..af256091f4 100644
--- a/sysdeps/arm/__longjmp.S
+++ b/sysdeps/arm/__longjmp.S
@@ -1,5 +1,5 @@
/* longjmp for ARM.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <stap-probe.h>
diff --git a/sysdeps/arm/add_n.S b/sysdeps/arm/add_n.S
index e8e744c3c0..1d7b28380e 100644
--- a/sysdeps/arm/add_n.S
+++ b/sysdeps/arm/add_n.S
@@ -1,5 +1,5 @@
/* mpn_add_n -- add (or subtract) bignums.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <arm-features.h>
diff --git a/sysdeps/arm/addmul_1.S b/sysdeps/arm/addmul_1.S
index 40d873690e..81de788603 100644
--- a/sysdeps/arm/addmul_1.S
+++ b/sysdeps/arm/addmul_1.S
@@ -1,5 +1,5 @@
/* mpn_addmul_1 -- multiply and accumulate bignums.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/arm/aeabi_assert.c b/sysdeps/arm/aeabi_assert.c
index 22cf43efcf..55eaadf84f 100644
--- a/sysdeps/arm/aeabi_assert.c
+++ b/sysdeps/arm/aeabi_assert.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <stdlib.h>
diff --git a/sysdeps/arm/aeabi_atexit.c b/sysdeps/arm/aeabi_atexit.c
index e30df8625e..64808090a0 100644
--- a/sysdeps/arm/aeabi_atexit.c
+++ b/sysdeps/arm/aeabi_atexit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
diff --git a/sysdeps/arm/aeabi_errno_addr.c b/sysdeps/arm/aeabi_errno_addr.c
index 5c7dc40114..242b64a8a8 100644
--- a/sysdeps/arm/aeabi_errno_addr.c
+++ b/sysdeps/arm/aeabi_errno_addr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
diff --git a/sysdeps/arm/aeabi_lcsts.c b/sysdeps/arm/aeabi_lcsts.c
index a37cb88495..aaa4e19c05 100644
--- a/sysdeps/arm/aeabi_lcsts.c
+++ b/sysdeps/arm/aeabi_lcsts.c
@@ -1,5 +1,5 @@
/* Link-time constants for ARM EABI.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* The ARM EABI requires that we provide ISO compile-time constants as
link-time constants. Some portable applications may reference these. */
diff --git a/sysdeps/arm/aeabi_localeconv.c b/sysdeps/arm/aeabi_localeconv.c
index 3f56742a63..167c50d04e 100644
--- a/sysdeps/arm/aeabi_localeconv.c
+++ b/sysdeps/arm/aeabi_localeconv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <locale.h>
diff --git a/sysdeps/arm/aeabi_math.c b/sysdeps/arm/aeabi_math.c
index b0c153d4f6..e9a514cc5b 100644
--- a/sysdeps/arm/aeabi_math.c
+++ b/sysdeps/arm/aeabi_math.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/arm/aeabi_mb_cur_max.c b/sysdeps/arm/aeabi_mb_cur_max.c
index 16d009adf6..f77c519594 100644
--- a/sysdeps/arm/aeabi_mb_cur_max.c
+++ b/sysdeps/arm/aeabi_mb_cur_max.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <langinfo.h>
#include <locale.h>
diff --git a/sysdeps/arm/aeabi_memclr.c b/sysdeps/arm/aeabi_memclr.c
index b2f65e5fb9..70a00a04d9 100644
--- a/sysdeps/arm/aeabi_memclr.c
+++ b/sysdeps/arm/aeabi_memclr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/sysdeps/arm/aeabi_memcpy.c b/sysdeps/arm/aeabi_memcpy.c
index 2fa915684f..db4a775262 100644
--- a/sysdeps/arm/aeabi_memcpy.c
+++ b/sysdeps/arm/aeabi_memcpy.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/sysdeps/arm/aeabi_memmove.c b/sysdeps/arm/aeabi_memmove.c
index 920ff8e2c1..1ed76d963a 100644
--- a/sysdeps/arm/aeabi_memmove.c
+++ b/sysdeps/arm/aeabi_memmove.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/sysdeps/arm/aeabi_memset.c b/sysdeps/arm/aeabi_memset.c
index 4eb990e0cb..c413584b7b 100644
--- a/sysdeps/arm/aeabi_memset.c
+++ b/sysdeps/arm/aeabi_memset.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/sysdeps/arm/aeabi_sighandlers.S b/sysdeps/arm/aeabi_sighandlers.S
index 342e04a259..7553b767ef 100644
--- a/sysdeps/arm/aeabi_sighandlers.S
+++ b/sysdeps/arm/aeabi_sighandlers.S
@@ -1,5 +1,5 @@
/* Link-time constants for ARM EABI - signal handlers.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* The ARM EABI defines these as "functions". */
diff --git a/sysdeps/arm/aeabi_unwind_cpp_pr1.c b/sysdeps/arm/aeabi_unwind_cpp_pr1.c
index ef0b9b6fe5..395c60c938 100644
--- a/sysdeps/arm/aeabi_unwind_cpp_pr1.c
+++ b/sysdeps/arm/aeabi_unwind_cpp_pr1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Because some objects in ld.so and libc.so are built with
-fexceptions, we end up with references to this personality
diff --git a/sysdeps/arm/arm-features.h b/sysdeps/arm/arm-features.h
index 69c4f9d604..d8243fbae6 100644
--- a/sysdeps/arm/arm-features.h
+++ b/sysdeps/arm/arm-features.h
@@ -1,5 +1,5 @@
/* Macros to test for CPU features on ARM. Generic ARM version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _ARM_ARM_FEATURES_H
#define _ARM_ARM_FEATURES_H 1
diff --git a/sysdeps/arm/arm-ifunc.h b/sysdeps/arm/arm-ifunc.h
index 80f4f0e3a3..66a5f6ae23 100644
--- a/sysdeps/arm/arm-ifunc.h
+++ b/sysdeps/arm/arm-ifunc.h
@@ -1,6 +1,6 @@
/* Common definition for ifunc resolvers. Linux/ARM version.
This file is part of the GNU C Library.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-2019 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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <ifunc-init.h>
@@ -27,7 +27,8 @@
#if defined SHARED
# define arm_libc_ifunc_hidden_def(redirect_name, name) \
__hidden_ver1 (name, __GI_##name, redirect_name) \
- __attribute__ ((visibility ("hidden")))
+ __attribute__ ((visibility ("hidden"))) \
+ __attribute_copy__ (name)
#else
# define arm_libc_ifunc_hidden_def(redirect_name, name)
#endif
diff --git a/sysdeps/arm/arm-mcount.S b/sysdeps/arm/arm-mcount.S
index 23ea080cf9..8b512b5a5d 100644
--- a/sysdeps/arm/arm-mcount.S
+++ b/sysdeps/arm/arm-mcount.S
@@ -1,5 +1,5 @@
/* Implementation of profiling support. ARM EABI version.
- Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Don't call mcount when calling mcount... */
#undef PROF
diff --git a/sysdeps/arm/arm-unwind-resume.S b/sysdeps/arm/arm-unwind-resume.S
index 3433617e48..cf5602bf19 100644
--- a/sysdeps/arm/arm-unwind-resume.S
+++ b/sysdeps/arm/arm-unwind-resume.S
@@ -1,5 +1,5 @@
/* _Unwind_Resume wrapper for ARM EABI.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/arm/armv6/rawmemchr.S b/sysdeps/arm/armv6/rawmemchr.S
index 6c9d6de3b1..9fd0679899 100644
--- a/sysdeps/arm/armv6/rawmemchr.S
+++ b/sysdeps/arm/armv6/rawmemchr.S
@@ -1,5 +1,5 @@
/* rawmemchr -- find a byte within an unsized memory block.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/arm/armv6/strchr.S b/sysdeps/arm/armv6/strchr.S
index d7f75fa840..8c6f7bdb0d 100644
--- a/sysdeps/arm/armv6/strchr.S
+++ b/sysdeps/arm/armv6/strchr.S
@@ -1,5 +1,5 @@
/* strchr -- find the first instance of C in a nul-terminated string.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/arm/armv6/strcpy.S b/sysdeps/arm/armv6/strcpy.S
index 10c5c575ad..85e28df07c 100644
--- a/sysdeps/arm/armv6/strcpy.S
+++ b/sysdeps/arm/armv6/strcpy.S
@@ -1,5 +1,5 @@
/* strcpy -- copy a nul-terminated string.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/arm/armv6/strlen.S b/sysdeps/arm/armv6/strlen.S
index 1fb91342a3..dd1c1fd310 100644
--- a/sysdeps/arm/armv6/strlen.S
+++ b/sysdeps/arm/armv6/strlen.S
@@ -1,5 +1,5 @@
/* strlen -- find the length of a nul-terminated string.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/arm/armv6/strrchr.S b/sysdeps/arm/armv6/strrchr.S
index 892dd2b1dd..dfb9647ea3 100644
--- a/sysdeps/arm/armv6/strrchr.S
+++ b/sysdeps/arm/armv6/strrchr.S
@@ -1,5 +1,5 @@
/* strrchr -- find the last occurence of C in a nul-terminated string
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/arm/armv6t2/ffs.S b/sysdeps/arm/armv6t2/ffs.S
index 0f8d806436..25fcec345a 100644
--- a/sysdeps/arm/armv6t2/ffs.S
+++ b/sysdeps/arm/armv6t2/ffs.S
@@ -1,5 +1,5 @@
/* ffs -- find first set bit in an int, from least significant end.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/arm/armv6t2/ffsll.S b/sysdeps/arm/armv6t2/ffsll.S
index 3b8404ec9e..858267a218 100644
--- a/sysdeps/arm/armv6t2/ffsll.S
+++ b/sysdeps/arm/armv6t2/ffsll.S
@@ -1,5 +1,5 @@
/* ffsll -- find first set bit in a long long, from least significant end.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/arm/armv6t2/memchr.S b/sysdeps/arm/armv6t2/memchr.S
index 1d6eee0a11..a008e7d575 100644
--- a/sysdeps/arm/armv6t2/memchr.S
+++ b/sysdeps/arm/armv6t2/memchr.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Code contributed by Dave Gilbert <david.gilbert@linaro.org>
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/arm/armv6t2/strlen.S b/sysdeps/arm/armv6t2/strlen.S
index a34ef20e9d..a96dc74310 100644
--- a/sysdeps/arm/armv6t2/strlen.S
+++ b/sysdeps/arm/armv6t2/strlen.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2010-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
Assumes:
diff --git a/sysdeps/arm/armv7/multiarch/ifunc-impl-list.c b/sysdeps/arm/armv7/multiarch/ifunc-impl-list.c
index 48e43da66e..03ccbf6dac 100644
--- a/sysdeps/arm/armv7/multiarch/ifunc-impl-list.c
+++ b/sysdeps/arm/armv7/multiarch/ifunc-impl-list.c
@@ -1,5 +1,5 @@
/* Enumerate available IFUNC implementations of a function. ARM version.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdbool.h>
#include <string.h>
diff --git a/sysdeps/arm/armv7/multiarch/ifunc-memchr.h b/sysdeps/arm/armv7/multiarch/ifunc-memchr.h
index 75495824f4..063f127092 100644
--- a/sysdeps/arm/armv7/multiarch/ifunc-memchr.h
+++ b/sysdeps/arm/armv7/multiarch/ifunc-memchr.h
@@ -1,5 +1,5 @@
/* Common definition for memchr resolver.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
__typeof (REDIRECT_NAME) OPTIMIZE (neon) attribute_hidden;
__typeof (REDIRECT_NAME) OPTIMIZE (noneon) attribute_hidden;
diff --git a/sysdeps/arm/armv7/multiarch/ifunc-memcpy.h b/sysdeps/arm/armv7/multiarch/ifunc-memcpy.h
index 7e6f73ff4d..44d2f05cb7 100644
--- a/sysdeps/arm/armv7/multiarch/ifunc-memcpy.h
+++ b/sysdeps/arm/armv7/multiarch/ifunc-memcpy.h
@@ -1,5 +1,5 @@
/* Common definition for memcpy resolver.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifdef __SOFTFP__
__typeof (REDIRECT_NAME) OPTIMIZE (arm) attribute_hidden;
diff --git a/sysdeps/arm/armv7/multiarch/memchr.c b/sysdeps/arm/armv7/multiarch/memchr.c
index ff1cc5d203..8f6b1a052f 100644
--- a/sysdeps/arm/armv7/multiarch/memchr.c
+++ b/sysdeps/arm/armv7/multiarch/memchr.c
@@ -1,6 +1,6 @@
/* Multiple versions of memchr.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* For __ARM_NEON__ memchr_neon.S defines memchr directly and ifunc
is not used. */
diff --git a/sysdeps/arm/armv7/multiarch/memchr_neon.S b/sysdeps/arm/armv7/multiarch/memchr_neon.S
index 6fbf9b8898..a8b3a6e7b5 100644
--- a/sysdeps/arm/armv7/multiarch/memchr_neon.S
+++ b/sysdeps/arm/armv7/multiarch/memchr_neon.S
@@ -1,5 +1,5 @@
/* memchr implemented using NEON.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ 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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/arm/armv7/multiarch/memcpy.c b/sysdeps/arm/armv7/multiarch/memcpy.c
index 02776b6fe6..84951d9fdc 100644
--- a/sysdeps/arm/armv7/multiarch/memcpy.c
+++ b/sysdeps/arm/armv7/multiarch/memcpy.c
@@ -1,6 +1,6 @@
/* Multiple versions of memcpy.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* For __ARM_NEON__ memchr_neon.S defines memchr directly and ifunc
is not used. */
diff --git a/sysdeps/arm/armv7/multiarch/memcpy_impl.S b/sysdeps/arm/armv7/multiarch/memcpy_impl.S
index 2de172635c..9ac8c55541 100644
--- a/sysdeps/arm/armv7/multiarch/memcpy_impl.S
+++ b/sysdeps/arm/armv7/multiarch/memcpy_impl.S
@@ -1,5 +1,5 @@
/* NEON/VFP/ARM version of memcpy optimized for Cortex-A15.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
This memcpy routine is optimised for Cortex-A15 cores and takes advantage
of VFP or NEON when built with the appropriate flags.
diff --git a/sysdeps/arm/armv7/strcmp.S b/sysdeps/arm/armv7/strcmp.S
index 2626fdf72e..b42153463b 100644
--- a/sysdeps/arm/armv7/strcmp.S
+++ b/sysdeps/arm/armv7/strcmp.S
@@ -1,5 +1,5 @@
/* strcmp implementation for ARMv7-A, optimized for Cortex-A15.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <arm-features.h>
#include <sysdep.h>
diff --git a/sysdeps/arm/atomic-machine.h b/sysdeps/arm/atomic-machine.h
index ddc30198bf..4749354331 100644
--- a/sysdeps/arm/atomic-machine.h
+++ b/sysdeps/arm/atomic-machine.h
@@ -1,5 +1,5 @@
/* Atomic operations. Pure ARM version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/sysdeps/arm/backtrace.c b/sysdeps/arm/backtrace.c
index e27d3d1391..68e233898e 100644
--- a/sysdeps/arm/backtrace.c
+++ b/sysdeps/arm/backtrace.c
@@ -1,5 +1,5 @@
/* Return backtrace of current program state.
- Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ Copyright (C) 2008-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Kazu Hirata <kazu@codesourcery.com>, 2008.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libc-lock.h>
#include <dlfcn.h>
diff --git a/sysdeps/arm/be/Implies b/sysdeps/arm/be/Implies
new file mode 100644
index 0000000000..fb05f39d3f
--- /dev/null
+++ b/sysdeps/arm/be/Implies
@@ -0,0 +1 @@
+arm
diff --git a/sysdeps/arm/be/armv6/Implies b/sysdeps/arm/be/armv6/Implies
new file mode 100644
index 0000000000..137a8ab20f
--- /dev/null
+++ b/sysdeps/arm/be/armv6/Implies
@@ -0,0 +1 @@
+arm/armv6
diff --git a/sysdeps/arm/be/armv6t2/Implies b/sysdeps/arm/be/armv6t2/Implies
new file mode 100644
index 0000000000..d777cf8eef
--- /dev/null
+++ b/sysdeps/arm/be/armv6t2/Implies
@@ -0,0 +1 @@
+arm/armv6t2
diff --git a/sysdeps/arm/be/armv7/Implies b/sysdeps/arm/be/armv7/Implies
new file mode 100644
index 0000000000..3a1446ba1b
--- /dev/null
+++ b/sysdeps/arm/be/armv7/Implies
@@ -0,0 +1 @@
+arm/armv7
diff --git a/sysdeps/arm/be/armv7/multiarch/Implies b/sysdeps/arm/be/armv7/multiarch/Implies
new file mode 100644
index 0000000000..ac212e6658
--- /dev/null
+++ b/sysdeps/arm/be/armv7/multiarch/Implies
@@ -0,0 +1 @@
+arm/armv7/multiarch
diff --git a/sysdeps/arm/bits/endian.h b/sysdeps/arm/bits/endian.h
deleted file mode 100644
index f49f6ab1c9..0000000000
--- a/sysdeps/arm/bits/endian.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef _ENDIAN_H
-# error "Never use <bits/endian.h> directly; include <endian.h> instead."
-#endif
-
-/* ARM can be either big or little endian. */
-#ifdef __ARMEB__
-#define __BYTE_ORDER __BIG_ENDIAN
-#else
-#define __BYTE_ORDER __LITTLE_ENDIAN
-#endif
diff --git a/sysdeps/arm/bits/endianness.h b/sysdeps/arm/bits/endianness.h
new file mode 100644
index 0000000000..2d671fff66
--- /dev/null
+++ b/sysdeps/arm/bits/endianness.h
@@ -0,0 +1,15 @@
+#ifndef _BITS_ENDIANNESS_H
+#define _BITS_ENDIANNESS_H 1
+
+#ifndef _BITS_ENDIAN_H
+# error "Never use <bits/endianness.h> directly; include <endian.h> instead."
+#endif
+
+/* ARM has selectable endianness. */
+#ifdef __ARMEB__
+#define __BYTE_ORDER __BIG_ENDIAN
+#else
+#define __BYTE_ORDER __LITTLE_ENDIAN
+#endif
+
+#endif /* bits/endianness.h */
diff --git a/sysdeps/arm/bits/fenv.h b/sysdeps/arm/bits/fenv.h
index 766b310efd..a0aa78364a 100644
--- a/sysdeps/arm/bits/fenv.h
+++ b/sysdeps/arm/bits/fenv.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FENV_H
# error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
@@ -81,7 +81,7 @@ fenv_t;
# define FE_NOMASK_ENV ((const fenv_t *) -2)
#endif
-#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/sysdeps/arm/bits/link.h b/sysdeps/arm/bits/link.h
index 97ddca79f7..90cd9c71fc 100644
--- a/sysdeps/arm/bits/link.h
+++ b/sysdeps/arm/bits/link.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LINK_H
# error "Never include <bits/link.h> directly; use <link.h> instead."
diff --git a/sysdeps/arm/bits/setjmp.h b/sysdeps/arm/bits/setjmp.h
index 952a623111..d2e9aadc60 100644
--- a/sysdeps/arm/bits/setjmp.h
+++ b/sysdeps/arm/bits/setjmp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define the machine-dependent type `jmp_buf'. ARM EABI version. */
diff --git a/sysdeps/arm/bsd-_setjmp.S b/sysdeps/arm/bsd-_setjmp.S
index ae93d3d97d..28a12e7c64 100644
--- a/sysdeps/arm/bsd-_setjmp.S
+++ b/sysdeps/arm/bsd-_setjmp.S
@@ -1,5 +1,5 @@
/* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'. ARM version.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This just does a tail-call to `__sigsetjmp (ARG, 1)'.
We cannot do it in C because it must be a tail-call, so frame-unwinding
diff --git a/sysdeps/arm/bsd-setjmp.S b/sysdeps/arm/bsd-setjmp.S
index 06efc79b85..e22f16b9fe 100644
--- a/sysdeps/arm/bsd-setjmp.S
+++ b/sysdeps/arm/bsd-setjmp.S
@@ -1,5 +1,5 @@
/* BSD `setjmp' entry point to `sigsetjmp (..., 1)'. ARM version.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This just does a tail-call to `__sigsetjmp (ARG, 1)'.
We cannot do it in C because it must be a tail-call, so frame-unwinding
diff --git a/sysdeps/arm/crti.S b/sysdeps/arm/crti.S
index a1424d0333..70b3237b1c 100644
--- a/sysdeps/arm/crti.S
+++ b/sysdeps/arm/crti.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for ARM.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* crti.S puts a function prologue at the beginning of the .init and
.fini sections and defines global symbols for those addresses, so
diff --git a/sysdeps/arm/crtn.S b/sysdeps/arm/crtn.S
index 26027693ce..1432dbad68 100644
--- a/sysdeps/arm/crtn.S
+++ b/sysdeps/arm/crtn.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for ARM.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Always build .init and .fini sections in ARM mode. */
#define NO_THUMB
diff --git a/sysdeps/arm/dl-irel.h b/sysdeps/arm/dl-irel.h
index a7b6456075..de4d5652a8 100644
--- a/sysdeps/arm/dl-irel.h
+++ b/sysdeps/arm/dl-irel.h
@@ -1,6 +1,6 @@
/* Machine-dependent ELF indirect relocation inline functions.
ARM version.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DL_IREL_H
#define _DL_IREL_H
@@ -46,7 +46,7 @@ elf_irel (const Elf32_Rel *reloc)
*reloc_addr = value;
}
else
- __libc_fatal ("unexpected reloc type in static binary");
+ __libc_fatal ("Unexpected reloc type in static binary.\n");
}
#endif /* dl-irel.h */
diff --git a/sysdeps/arm/dl-lookupcfg.h b/sysdeps/arm/dl-lookupcfg.h
index 7e8fafc8a6..d5efdc2fd1 100644
--- a/sysdeps/arm/dl-lookupcfg.h
+++ b/sysdeps/arm/dl-lookupcfg.h
@@ -1,5 +1,5 @@
/* Configuration of lookup functions.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define DL_UNMAP_IS_SPECIAL
diff --git a/sysdeps/arm/dl-machine.h b/sysdeps/arm/dl-machine.h
index 1a4fd3f17b..27dffc71bf 100644
--- a/sysdeps/arm/dl-machine.h
+++ b/sysdeps/arm/dl-machine.h
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation inline functions. ARM version.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef dl_machine_h
#define dl_machine_h
@@ -522,7 +522,8 @@ elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc,
break;
case R_ARM_IRELATIVE:
value = map->l_addr + *reloc_addr;
- value = ((Elf32_Addr (*) (int)) value) (GLRO(dl_hwcap));
+ if (__glibc_likely (!skip_ifunc))
+ value = ((Elf32_Addr (*) (int)) value) (GLRO(dl_hwcap));
*reloc_addr = value;
break;
#endif
@@ -614,7 +615,8 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
break;
case R_ARM_IRELATIVE:
value = map->l_addr + reloc->r_addend;
- value = ((Elf32_Addr (*) (int)) value) (GLRO(dl_hwcap));
+ if (__glibc_likely (!skip_ifunc))
+ value = ((Elf32_Addr (*) (int)) value) (GLRO(dl_hwcap));
*reloc_addr = value;
break;
#endif
diff --git a/sysdeps/arm/dl-sysdep.h b/sysdeps/arm/dl-sysdep.h
index eef6b38162..480e06a12d 100644
--- a/sysdeps/arm/dl-sysdep.h
+++ b/sysdeps/arm/dl-sysdep.h
@@ -1,5 +1,5 @@
/* System-specific settings for dynamic linker code. Alpha version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include_next <dl-sysdep.h>
diff --git a/sysdeps/arm/dl-tls.h b/sysdeps/arm/dl-tls.h
index b591c6b095..0b974e28c3 100644
--- a/sysdeps/arm/dl-tls.h
+++ b/sysdeps/arm/dl-tls.h
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. ARM version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Type used for the representation of TLS information in the GOT. */
diff --git a/sysdeps/arm/dl-tlsdesc.S b/sysdeps/arm/dl-tlsdesc.S
index 056e17d52d..80ea316983 100644
--- a/sysdeps/arm/dl-tlsdesc.S
+++ b/sysdeps/arm/dl-tlsdesc.S
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. ARM version.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <arm-features.h>
diff --git a/sysdeps/arm/dl-tlsdesc.h b/sysdeps/arm/dl-tlsdesc.h
index fc8c5b4ee6..13b906c0c0 100644
--- a/sysdeps/arm/dl-tlsdesc.h
+++ b/sysdeps/arm/dl-tlsdesc.h
@@ -1,6 +1,6 @@
/* Thread-local storage descriptor handling in the ELF dynamic linker.
ARM version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _ARM_DL_TLSDESC_H
# define _ARM_DL_TLSDESC_H 1
diff --git a/sysdeps/arm/dl-trampoline.S b/sysdeps/arm/dl-trampoline.S
index c731b01286..07e05cc323 100644
--- a/sysdeps/arm/dl-trampoline.S
+++ b/sysdeps/arm/dl-trampoline.S
@@ -1,5 +1,5 @@
/* PLT trampolines. ARM version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* ??? Needs more rearrangement for the LDM to handle thumb mode. */
#define NO_THUMB
diff --git a/sysdeps/arm/e_sqrt.c b/sysdeps/arm/e_sqrt.c
index 44e0414306..eeb9095455 100644
--- a/sysdeps/arm/e_sqrt.c
+++ b/sysdeps/arm/e_sqrt.c
@@ -1,5 +1,5 @@
/* Compute square root for double. ARM version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifdef __SOFTFP__
diff --git a/sysdeps/arm/e_sqrtf.c b/sysdeps/arm/e_sqrtf.c
index e7c3072235..36ae9fa705 100644
--- a/sysdeps/arm/e_sqrtf.c
+++ b/sysdeps/arm/e_sqrtf.c
@@ -1,5 +1,5 @@
/* Compute square root for float. ARM version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifdef __SOFTFP__
diff --git a/sysdeps/arm/fclrexcpt.c b/sysdeps/arm/fclrexcpt.c
index 61933581d1..55628f5f91 100644
--- a/sysdeps/arm/fclrexcpt.c
+++ b/sysdeps/arm/fclrexcpt.c
@@ -1,5 +1,5 @@
/* Clear given exceptions in current floating-point environment.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/arm/fedisblxcpt.c b/sysdeps/arm/fedisblxcpt.c
index d4d683b027..79d09dfe48 100644
--- a/sysdeps/arm/fedisblxcpt.c
+++ b/sysdeps/arm/fedisblxcpt.c
@@ -1,5 +1,5 @@
/* Disable floating-point exceptions.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Philip Blundell <philb@gnu.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/arm/feenablxcpt.c b/sysdeps/arm/feenablxcpt.c
index a0d70455ab..79f2aec924 100644
--- a/sysdeps/arm/feenablxcpt.c
+++ b/sysdeps/arm/feenablxcpt.c
@@ -1,5 +1,5 @@
/* Enable floating-point exceptions.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Philip Blundell <philb@gnu.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/arm/fegetenv.c b/sysdeps/arm/fegetenv.c
index 3b0af8da59..98187ec47b 100644
--- a/sysdeps/arm/fegetenv.c
+++ b/sysdeps/arm/fegetenv.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/arm/fegetexcept.c b/sysdeps/arm/fegetexcept.c
index c788b603e8..90a6d0cf97 100644
--- a/sysdeps/arm/fegetexcept.c
+++ b/sysdeps/arm/fegetexcept.c
@@ -1,5 +1,5 @@
/* Get floating-point exceptions.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Philip Blundell <philb@gnu.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/arm/fegetmode.c b/sysdeps/arm/fegetmode.c
index c2297e26e7..00ee295daa 100644
--- a/sysdeps/arm/fegetmode.c
+++ b/sysdeps/arm/fegetmode.c
@@ -1,5 +1,5 @@
/* Store current floating-point control modes. ARM version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/arm/fegetround.c b/sysdeps/arm/fegetround.c
index 610fb16827..ee6b1aa358 100644
--- a/sysdeps/arm/fegetround.c
+++ b/sysdeps/arm/fegetround.c
@@ -1,5 +1,5 @@
/* Return current rounding direction.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <get-rounding-mode.h>
diff --git a/sysdeps/arm/feholdexcpt.c b/sysdeps/arm/feholdexcpt.c
index 8c146af1c4..02a9418202 100644
--- a/sysdeps/arm/feholdexcpt.c
+++ b/sysdeps/arm/feholdexcpt.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment and clear exceptions.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv_private.h>
#include <arm-features.h>
diff --git a/sysdeps/arm/fenv_private.h b/sysdeps/arm/fenv_private.h
index 55157c8ae2..ec80c5dae6 100644
--- a/sysdeps/arm/fenv_private.h
+++ b/sysdeps/arm/fenv_private.h
@@ -1,5 +1,5 @@
/* Private floating point rounding and exceptions handling. ARM VFP version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,10 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#ifndef FENV_PRIVATE_H
-#define FENV_PRIVATE_H 1
+#ifndef ARM_FENV_PRIVATE_H
+#define ARM_FENV_PRIVATE_H 1
#include <fenv.h>
#include <fpu_control.h>
@@ -246,4 +246,6 @@ libc_fesetenv_vfp_ctx (struct rm_ctx *ctx)
#endif
-#endif /* FENV_PRIVATE_H */
+#include_next <fenv_private.h>
+
+#endif /* ARM_FENV_PRIVATE_H */
diff --git a/sysdeps/arm/fesetenv.c b/sysdeps/arm/fesetenv.c
index 6c3475a479..e8baa1ed3c 100644
--- a/sysdeps/arm/fesetenv.c
+++ b/sysdeps/arm/fesetenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/arm/fesetexcept.c b/sysdeps/arm/fesetexcept.c
index 38557aaaac..3d9e5ff33f 100644
--- a/sysdeps/arm/fesetexcept.c
+++ b/sysdeps/arm/fesetexcept.c
@@ -1,5 +1,5 @@
/* Set given exception flags. ARM version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/arm/fesetmode.c b/sysdeps/arm/fesetmode.c
index 1ba825416e..c9f1974e52 100644
--- a/sysdeps/arm/fesetmode.c
+++ b/sysdeps/arm/fesetmode.c
@@ -1,5 +1,5 @@
/* Install given floating-point control modes. ARM version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/arm/fesetround.c b/sysdeps/arm/fesetround.c
index 379dfdca9d..6b8f1a67a8 100644
--- a/sysdeps/arm/fesetround.c
+++ b/sysdeps/arm/fesetround.c
@@ -1,5 +1,5 @@
/* Set current rounding direction.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv_private.h>
#include <arm-features.h>
diff --git a/sysdeps/arm/feupdateenv.c b/sysdeps/arm/feupdateenv.c
index de71695c23..a58da3c9b6 100644
--- a/sysdeps/arm/feupdateenv.c
+++ b/sysdeps/arm/feupdateenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment and raise exceptions.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/arm/fgetexcptflg.c b/sysdeps/arm/fgetexcptflg.c
index 8e831e979d..b4d7c3131f 100644
--- a/sysdeps/arm/fgetexcptflg.c
+++ b/sysdeps/arm/fgetexcptflg.c
@@ -1,5 +1,5 @@
/* Store current representation for exceptions.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv_private.h>
#include <arm-features.h>
diff --git a/sysdeps/arm/find_exidx.c b/sysdeps/arm/find_exidx.c
index f6f2290aaf..0f1d0f8352 100644
--- a/sysdeps/arm/find_exidx.c
+++ b/sysdeps/arm/find_exidx.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <link.h>
#include <unwind.h>
diff --git a/sysdeps/arm/fix-fp-int-convert-overflow.h b/sysdeps/arm/fix-fp-int-convert-overflow.h
index 3942e5b2c2..efcfb4e60d 100644
--- a/sysdeps/arm/fix-fp-int-convert-overflow.h
+++ b/sysdeps/arm/fix-fp-int-convert-overflow.h
@@ -1,5 +1,5 @@
/* Fix for conversion of floating point to integer overflow. ARM version.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef FIX_FP_INT_CONVERT_OVERFLOW_H
#define FIX_FP_INT_CONVERT_OVERFLOW_H 1
diff --git a/sysdeps/arm/fpu_control.h b/sysdeps/arm/fpu_control.h
index 6b1b176eae..0cdbd1e855 100644
--- a/sysdeps/arm/fpu_control.h
+++ b/sysdeps/arm/fpu_control.h
@@ -1,5 +1,5 @@
/* FPU control word definitions. ARM VFP version.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FPU_CONTROL_H
#define _FPU_CONTROL_H
diff --git a/sysdeps/arm/fraiseexcpt.c b/sysdeps/arm/fraiseexcpt.c
index 2558b21204..fa10eaff7d 100644
--- a/sysdeps/arm/fraiseexcpt.c
+++ b/sysdeps/arm/fraiseexcpt.c
@@ -1,5 +1,5 @@
/* Raise given exceptions.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fpu_control.h>
#include <fenv.h>
diff --git a/sysdeps/arm/fsetexcptflg.c b/sysdeps/arm/fsetexcptflg.c
index 409ed2e98f..7001e89337 100644
--- a/sysdeps/arm/fsetexcptflg.c
+++ b/sysdeps/arm/fsetexcptflg.c
@@ -1,5 +1,5 @@
/* Set floating-point environment exception handling.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/arm/ftestexcept.c b/sysdeps/arm/ftestexcept.c
index 3927c03acd..55327f98a7 100644
--- a/sysdeps/arm/ftestexcept.c
+++ b/sysdeps/arm/ftestexcept.c
@@ -1,5 +1,5 @@
/* Test exception in current environment.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv_private.h>
#include <arm-features.h>
diff --git a/sysdeps/arm/gcc-compat.h b/sysdeps/arm/gcc-compat.h
index 99bc8c4fa5..1787a6f3d4 100644
--- a/sysdeps/arm/gcc-compat.h
+++ b/sysdeps/arm/gcc-compat.h
@@ -1,5 +1,5 @@
/* Macros for checking required GCC compatibility. ARM version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _ARM_GCC_COMPAT_H
#define _ARM_GCC_COMPAT_H 1
diff --git a/sysdeps/arm/gccframe.h b/sysdeps/arm/gccframe.h
index dcfc60bac6..f9475a77d0 100644
--- a/sysdeps/arm/gccframe.h
+++ b/sysdeps/arm/gccframe.h
@@ -1,5 +1,5 @@
/* Definition of object in frame unwind info. arm version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define FIRST_PSEUDO_REGISTER 27
diff --git a/sysdeps/arm/get-rounding-mode.h b/sysdeps/arm/get-rounding-mode.h
index 303147b507..62e639252b 100644
--- a/sysdeps/arm/get-rounding-mode.h
+++ b/sysdeps/arm/get-rounding-mode.h
@@ -1,5 +1,5 @@
/* Determine floating-point rounding mode within libc. ARM version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _ARM_GET_ROUNDING_MODE_H
#define _ARM_GET_ROUNDING_MODE_H 1
diff --git a/sysdeps/arm/gmp-mparam.h b/sysdeps/arm/gmp-mparam.h
index 2efeda260e..1480234c16 100644
--- a/sysdeps/arm/gmp-mparam.h
+++ b/sysdeps/arm/gmp-mparam.h
@@ -1,6 +1,6 @@
/* gmp-mparam.h -- Compiler/machine parameter header file.
-Copyright (C) 1991-2018 Free Software Foundation, Inc.
+Copyright (C) 1991-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -15,7 +15,7 @@ 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 MP Library. If not, see <http://www.gnu.org/licenses/>. */
+along with the GNU MP Library. If not, see <https://www.gnu.org/licenses/>. */
#define BITS_PER_MP_LIMB 32
#define BYTES_PER_MP_LIMB 4
diff --git a/sysdeps/arm/include/bits/setjmp.h b/sysdeps/arm/include/bits/setjmp.h
index b9e14d7477..ffc6da8b70 100644
--- a/sysdeps/arm/include/bits/setjmp.h
+++ b/sysdeps/arm/include/bits/setjmp.h
@@ -1,5 +1,5 @@
/* Private jmp_buf-related definitions. ARM EABI version.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _INCLUDE_BITS_SETJMP_H
#define _INCLUDE_BITS_SETJMP_H 1
diff --git a/sysdeps/arm/jmpbuf-unwind.h b/sysdeps/arm/jmpbuf-unwind.h
index d7405b7643..19a3a2a3f5 100644
--- a/sysdeps/arm/jmpbuf-unwind.h
+++ b/sysdeps/arm/jmpbuf-unwind.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <setjmp.h>
#include <stdint.h>
diff --git a/sysdeps/arm/ldsodefs.h b/sysdeps/arm/ldsodefs.h
index ce5d625c56..f3c2be5b62 100644
--- a/sysdeps/arm/ldsodefs.h
+++ b/sysdeps/arm/ldsodefs.h
@@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _ARM_LDSODEFS_H
#define _ARM_LDSODEFS_H 1
diff --git a/sysdeps/arm/le/Implies b/sysdeps/arm/le/Implies
new file mode 100644
index 0000000000..fb05f39d3f
--- /dev/null
+++ b/sysdeps/arm/le/Implies
@@ -0,0 +1 @@
+arm
diff --git a/sysdeps/arm/le/armv6/Implies b/sysdeps/arm/le/armv6/Implies
new file mode 100644
index 0000000000..137a8ab20f
--- /dev/null
+++ b/sysdeps/arm/le/armv6/Implies
@@ -0,0 +1 @@
+arm/armv6
diff --git a/sysdeps/arm/le/armv6t2/Implies b/sysdeps/arm/le/armv6t2/Implies
new file mode 100644
index 0000000000..d777cf8eef
--- /dev/null
+++ b/sysdeps/arm/le/armv6t2/Implies
@@ -0,0 +1 @@
+arm/armv6t2
diff --git a/sysdeps/arm/le/armv7/Implies b/sysdeps/arm/le/armv7/Implies
new file mode 100644
index 0000000000..3a1446ba1b
--- /dev/null
+++ b/sysdeps/arm/le/armv7/Implies
@@ -0,0 +1 @@
+arm/armv7
diff --git a/sysdeps/arm/le/armv7/multiarch/Implies b/sysdeps/arm/le/armv7/multiarch/Implies
new file mode 100644
index 0000000000..ac212e6658
--- /dev/null
+++ b/sysdeps/arm/le/armv7/multiarch/Implies
@@ -0,0 +1 @@
+arm/armv7/multiarch
diff --git a/sysdeps/arm/libc-tls.c b/sysdeps/arm/libc-tls.c
index 15bc3dad11..22ec3b0c19 100644
--- a/sysdeps/arm/libc-tls.c
+++ b/sysdeps/arm/libc-tls.c
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. ARM version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <csu/libc-tls.c>
#include <dl-tls.h>
diff --git a/sysdeps/arm/libm-test-ulps b/sysdeps/arm/libm-test-ulps
index e62cca3e03..798e3c465c 100644
--- a/sysdeps/arm/libm-test-ulps
+++ b/sysdeps/arm/libm-test-ulps
@@ -530,9 +530,9 @@ idouble: 1
ifloat: 1
Function: Imaginary part of "ccos_downward":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
Function: Real part of "ccos_towardzero":
@@ -542,9 +542,9 @@ idouble: 1
ifloat: 2
Function: Imaginary part of "ccos_towardzero":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
Function: Real part of "ccos_upward":
@@ -572,27 +572,27 @@ idouble: 1
ifloat: 1
Function: Real part of "ccosh_downward":
-double: 1
+double: 2
float: 3
-idouble: 1
+idouble: 2
ifloat: 3
Function: Imaginary part of "ccosh_downward":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
Function: Real part of "ccosh_towardzero":
-double: 1
+double: 2
float: 3
-idouble: 1
+idouble: 2
ifloat: 3
Function: Imaginary part of "ccosh_towardzero":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
Function: Real part of "ccosh_upward":
@@ -620,27 +620,27 @@ idouble: 1
ifloat: 2
Function: Real part of "cexp_downward":
-double: 1
+double: 2
float: 2
-idouble: 1
+idouble: 2
ifloat: 2
Function: Imaginary part of "cexp_downward":
-double: 1
+double: 3
float: 3
-idouble: 1
+idouble: 3
ifloat: 3
Function: Real part of "cexp_towardzero":
-double: 1
+double: 2
float: 2
-idouble: 1
+idouble: 2
ifloat: 2
Function: Imaginary part of "cexp_towardzero":
-double: 1
+double: 3
float: 3
-idouble: 1
+idouble: 3
ifloat: 3
Function: Real part of "cexp_upward":
@@ -650,9 +650,9 @@ idouble: 1
ifloat: 2
Function: Imaginary part of "cexp_upward":
-double: 1
+double: 3
float: 2
-idouble: 1
+idouble: 3
ifloat: 2
Function: Real part of "clog":
@@ -780,21 +780,21 @@ idouble: 1
ifloat: 1
Function: "cosh_downward":
-double: 1
+double: 2
float: 1
-idouble: 1
+idouble: 2
ifloat: 1
Function: "cosh_towardzero":
-double: 1
+double: 2
float: 1
-idouble: 1
+idouble: 2
ifloat: 1
Function: "cosh_upward":
-double: 1
+double: 2
float: 2
-idouble: 1
+idouble: 2
ifloat: 2
Function: Real part of "cpow":
@@ -808,9 +808,9 @@ float: 2
ifloat: 2
Function: Real part of "cpow_downward":
-double: 4
+double: 5
float: 8
-idouble: 4
+idouble: 5
ifloat: 8
Function: Imaginary part of "cpow_downward":
@@ -820,9 +820,9 @@ idouble: 1
ifloat: 2
Function: Real part of "cpow_towardzero":
-double: 4
+double: 5
float: 8
-idouble: 4
+idouble: 5
ifloat: 8
Function: Imaginary part of "cpow_towardzero":
@@ -850,9 +850,9 @@ idouble: 1
ifloat: 1
Function: Real part of "csin_downward":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
Function: Imaginary part of "csin_downward":
@@ -862,9 +862,9 @@ idouble: 1
ifloat: 1
Function: Real part of "csin_towardzero":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
Function: Imaginary part of "csin_towardzero":
@@ -902,9 +902,9 @@ idouble: 2
ifloat: 2
Function: Imaginary part of "csinh_downward":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
Function: Real part of "csinh_towardzero":
@@ -914,9 +914,9 @@ idouble: 2
ifloat: 2
Function: Imaginary part of "csinh_towardzero":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
Function: Real part of "csinh_upward":
@@ -1132,15 +1132,15 @@ double: 2
idouble: 2
Function: "exp10_downward":
-double: 2
+double: 3
float: 1
-idouble: 2
+idouble: 3
ifloat: 1
Function: "exp10_towardzero":
-double: 2
+double: 3
float: 1
-idouble: 2
+idouble: 3
ifloat: 1
Function: "exp10_upward":
diff --git a/sysdeps/arm/machine-gmon.h b/sysdeps/arm/machine-gmon.h
index a288c33bbe..c390580383 100644
--- a/sysdeps/arm/machine-gmon.h
+++ b/sysdeps/arm/machine-gmon.h
@@ -1,5 +1,5 @@
/* Machine-dependent definitions for profiling support. ARM EABI version.
- Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/arm/math-tests-trap.h b/sysdeps/arm/math-tests-trap.h
new file mode 100644
index 0000000000..4d91c55944
--- /dev/null
+++ b/sysdeps/arm/math-tests-trap.h
@@ -0,0 +1,26 @@
+/* Configuration for math tests: support for enabling exception traps.
+ ARM version.
+ Copyright (C) 2014-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef ARM_MATH_TESTS_TRAP_H
+#define ARM_MATH_TESTS_TRAP_H 1
+
+/* Not all VFP implementations support trapping exceptions. */
+#define EXCEPTION_ENABLE_SUPPORTED(EXCEPT) ((EXCEPT) == 0)
+
+#endif /* math-tests-trap.h. */
diff --git a/sysdeps/arm/math-tests.h b/sysdeps/arm/math-tests.h
deleted file mode 100644
index d4d68f39c9..0000000000
--- a/sysdeps/arm/math-tests.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Configuration for math tests. ARM version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-/* On systems with VFP support, but where glibc is built for
- soft-float, the libgcc functions used in libc and libm do not
- support rounding modes, although fesetround succeeds, and do not
- support exceptions. */
-#ifdef __SOFTFP__
-# define ROUNDING_TESTS_float(MODE) ((MODE) == FE_TONEAREST)
-# define ROUNDING_TESTS_double(MODE) ((MODE) == FE_TONEAREST)
-# define ROUNDING_TESTS_long_double(MODE) ((MODE) == FE_TONEAREST)
-# define EXCEPTION_TESTS_float 0
-# define EXCEPTION_TESTS_double 0
-# define EXCEPTION_TESTS_long_double 0
-#endif
-
-/* Not all VFP implementations support trapping exceptions. */
-#define EXCEPTION_ENABLE_SUPPORTED(EXCEPT) ((EXCEPT) == 0)
-
-#include_next <math-tests.h>
diff --git a/sysdeps/arm/math_private.h b/sysdeps/arm/math_private.h
deleted file mode 100644
index c175b15601..0000000000
--- a/sysdeps/arm/math_private.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#ifndef ARM_MATH_PRIVATE_H
-#define ARM_MATH_PRIVATE_H 1
-
-#include "fenv_private.h"
-#include_next <math_private.h>
-
-#endif
diff --git a/sysdeps/arm/memcpy.S b/sysdeps/arm/memcpy.S
index cba8609813..0542c2818b 100644
--- a/sysdeps/arm/memcpy.S
+++ b/sysdeps/arm/memcpy.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by MontaVista Software, Inc. (written by Nicolas Pitre)
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Thumb requires excessive IT insns here. */
#define NO_THUMB
diff --git a/sysdeps/arm/memmove.S b/sysdeps/arm/memmove.S
index 74d3042043..8a5d6ced7a 100644
--- a/sysdeps/arm/memmove.S
+++ b/sysdeps/arm/memmove.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by MontaVista Software, Inc. (written by Nicolas Pitre)
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Thumb requires excessive IT insns here. */
#define NO_THUMB
diff --git a/sysdeps/arm/memset.S b/sysdeps/arm/memset.S
index 6ab173cca0..e215ce617e 100644
--- a/sysdeps/arm/memset.S
+++ b/sysdeps/arm/memset.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Philip Blundell <philb@gnu.org>
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Thumb requires excessive IT insns here. */
#define NO_THUMB
diff --git a/sysdeps/arm/memusage.h b/sysdeps/arm/memusage.h
index 5222d33d5c..d96955da59 100644
--- a/sysdeps/arm/memusage.h
+++ b/sysdeps/arm/memusage.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define GETSP() ({ register uintptr_t stack_ptr asm ("sp"); stack_ptr; })
diff --git a/sysdeps/arm/nofpu/math-tests-exceptions.h b/sysdeps/arm/nofpu/math-tests-exceptions.h
new file mode 100644
index 0000000000..e27775b62e
--- /dev/null
+++ b/sysdeps/arm/nofpu/math-tests-exceptions.h
@@ -0,0 +1,29 @@
+/* Configuration for math tests: support for exceptions. ARM no-FPU version.
+ Copyright (C) 2013-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef ARM_NOFPU_MATH_TESTS_EXCEPTIONS_H
+#define ARM_NOFPU_MATH_TESTS_EXCEPTIONS_H 1
+
+/* On systems with VFP support, but where glibc is built for
+ soft-float, the libgcc functions used in libc and libm do not
+ support exceptions. */
+#define EXCEPTION_TESTS_float 0
+#define EXCEPTION_TESTS_double 0
+#define EXCEPTION_TESTS_long_double 0
+
+#endif /* math-tests-exceptions.h. */
diff --git a/sysdeps/arm/nofpu/math-tests-rounding.h b/sysdeps/arm/nofpu/math-tests-rounding.h
new file mode 100644
index 0000000000..53458390cd
--- /dev/null
+++ b/sysdeps/arm/nofpu/math-tests-rounding.h
@@ -0,0 +1,29 @@
+/* Configuration for math tests: rounding mode support. ARM no-FPU version.
+ Copyright (C) 2013-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef ARM_NOFPU_MATH_TESTS_ROUNDING_H
+#define ARM_NOFPU_MATH_TESTS_ROUNDING_H 1
+
+/* On systems with VFP support, but where glibc is built for
+ soft-float, the libgcc functions used in libc and libm do not
+ support rounding modes, although fesetround succeeds. */
+#define ROUNDING_TESTS_float(MODE) ((MODE) == FE_TONEAREST)
+#define ROUNDING_TESTS_double(MODE) ((MODE) == FE_TONEAREST)
+#define ROUNDING_TESTS_long_double(MODE) ((MODE) == FE_TONEAREST)
+
+#endif /* math-tests-rounding.h. */
diff --git a/sysdeps/arm/nptl/Makefile b/sysdeps/arm/nptl/Makefile
index d796f22aa6..00766b3c3b 100644
--- a/sysdeps/arm/nptl/Makefile
+++ b/sysdeps/arm/nptl/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 2005-2018 Free Software Foundation, Inc.
+# Copyright (C) 2005-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
ifeq ($(subdir),csu)
gen-as-const-headers += tcb-offsets.sym
diff --git a/sysdeps/arm/nptl/bits/pthreadtypes-arch.h b/sysdeps/arm/nptl/bits/pthreadtypes-arch.h
deleted file mode 100644
index 1e8718f19c..0000000000
--- a/sysdeps/arm/nptl/bits/pthreadtypes-arch.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/* Copyright (C) 2002-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _BITS_PTHREADTYPES_ARCH_H
-#define _BITS_PTHREADTYPES_ARCH_H 1
-
-#include <endian.h>
-
-#define __SIZEOF_PTHREAD_ATTR_T 36
-#define __SIZEOF_PTHREAD_MUTEX_T 24
-#define __SIZEOF_PTHREAD_MUTEXATTR_T 4
-#define __SIZEOF_PTHREAD_COND_T 48
-#define __SIZEOF_PTHREAD_CONDATTR_T 4
-#define __SIZEOF_PTHREAD_RWLOCK_T 32
-#define __SIZEOF_PTHREAD_RWLOCKATTR_T 8
-#define __SIZEOF_PTHREAD_BARRIER_T 20
-#define __SIZEOF_PTHREAD_BARRIERATTR_T 4
-
-/* Data structure for mutex handling. */
-#define __PTHREAD_COMPAT_PADDING_MID
-#define __PTHREAD_COMPAT_PADDING_END
-#define __PTHREAD_MUTEX_LOCK_ELISION 0
-#define __PTHREAD_MUTEX_NUSERS_AFTER_KIND 1
-#define __PTHREAD_MUTEX_USE_UNION 1
-
-#define __LOCK_ALIGNMENT
-#define __ONCE_ALIGNMENT
-
-struct __pthread_rwlock_arch_t
-{
- unsigned int __readers;
- unsigned int __writers;
- unsigned int __wrphase_futex;
- unsigned int __writers_futex;
- unsigned int __pad3;
- unsigned int __pad4;
-#if __BYTE_ORDER == __BIG_ENDIAN
- unsigned char __pad1;
- unsigned char __pad2;
- unsigned char __shared;
- /* FLAGS must stay at this position in the structure to maintain
- binary compatibility. */
- unsigned char __flags;
-#else
- /* FLAGS must stay at this position in the structure to maintain
- binary compatibility. */
- unsigned char __flags;
- unsigned char __shared;
- unsigned char __pad1;
- unsigned char __pad2;
-#endif
- int __cur_writer;
-};
-
-#define __PTHREAD_RWLOCK_ELISION_EXTRA 0
-
-#endif /* bits/pthreadtypes.h */
diff --git a/sysdeps/arm/nptl/bits/semaphore.h b/sysdeps/arm/nptl/bits/semaphore.h
index 1b38b6e81e..c43916fcfa 100644
--- a/sysdeps/arm/nptl/bits/semaphore.h
+++ b/sysdeps/arm/nptl/bits/semaphore.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SEMAPHORE_H
# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
diff --git a/sysdeps/arm/nptl/pthread-offsets.h b/sysdeps/arm/nptl/pthread-offsets.h
deleted file mode 100644
index 9617354dc7..0000000000
--- a/sysdeps/arm/nptl/pthread-offsets.h
+++ /dev/null
@@ -1,5 +0,0 @@
-#define __PTHREAD_MUTEX_NUSERS_OFFSET 16
-#define __PTHREAD_MUTEX_KIND_OFFSET 12
-#define __PTHREAD_MUTEX_SPINS_OFFSET 20
-#define __PTHREAD_MUTEX_ELISION_OFFSET 22
-#define __PTHREAD_MUTEX_LIST_OFFSET 20
diff --git a/sysdeps/arm/nptl/pthreaddef.h b/sysdeps/arm/nptl/pthreaddef.h
index f8d821d6f2..711080e8a6 100644
--- a/sysdeps/arm/nptl/pthreaddef.h
+++ b/sysdeps/arm/nptl/pthreaddef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Default stack size. */
#define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024)
diff --git a/sysdeps/arm/nptl/tls.h b/sysdeps/arm/nptl/tls.h
index ca0352dafc..5fe704e749 100644
--- a/sysdeps/arm/nptl/tls.h
+++ b/sysdeps/arm/nptl/tls.h
@@ -1,5 +1,5 @@
/* Definition for thread-local data handling. NPTL/ARM version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _ARM_NPTL_TLS_H
#define _ARM_NPTL_TLS_H 1
diff --git a/sysdeps/arm/preconfigure b/sysdeps/arm/preconfigure
index d803256d9f..e95c988f29 100644
--- a/sysdeps/arm/preconfigure
+++ b/sysdeps/arm/preconfigure
@@ -51,6 +51,154 @@ $as_echo "$as_me: WARNING: arm/preconfigure: Did not find ARM architecture type;
;;
esac
- machine=arm/$machine
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if ${ac_cv_path_GREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$GREP"; then
+ ac_path_GREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in grep ggrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_GREP" || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+ # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'GREP' >> "conftest.nl"
+ "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_GREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_GREP="$ac_path_GREP"
+ ac_path_GREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_GREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_GREP"; then
+ as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if ${ac_cv_path_EGREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+ then ac_cv_path_EGREP="$GREP -E"
+ else
+ if test -z "$EGREP"; then
+ ac_path_EGREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in egrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_EGREP" || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+ # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'EGREP' >> "conftest.nl"
+ "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_EGREP="$ac_path_EGREP"
+ ac_path_EGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_EGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_EGREP"; then
+ as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_EGREP=$EGREP
+fi
+
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
+ yes
+ #endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "yes" >/dev/null 2>&1; then :
+ endianness=le
+else
+ endianness=be
+fi
+rm -f conftest*
+
+
+ machine=arm/$endianness/$machine
with_fp_cond="!defined __SOFTFP__"
esac
diff --git a/sysdeps/arm/preconfigure.ac b/sysdeps/arm/preconfigure.ac
index 43d014031d..a523b4fb4c 100644
--- a/sysdeps/arm/preconfigure.ac
+++ b/sysdeps/arm/preconfigure.ac
@@ -46,6 +46,11 @@ arm*)
;;
esac
- machine=arm/$machine
+ AC_EGREP_CPP(yes,[#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
+ yes
+ #endif
+ ], endianness=le, endianness=be)
+
+ machine=arm/$endianness/$machine
with_fp_cond="!defined __SOFTFP__"
esac
diff --git a/sysdeps/arm/setfpucw.c b/sysdeps/arm/setfpucw.c
index 4ae14a565d..9d1b0b3177 100644
--- a/sysdeps/arm/setfpucw.c
+++ b/sysdeps/arm/setfpucw.c
@@ -1,5 +1,5 @@
/* Set the FPU control word.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <fpu_control.h>
diff --git a/sysdeps/arm/setjmp.S b/sysdeps/arm/setjmp.S
index dc8081abe6..9eeb0b2af3 100644
--- a/sysdeps/arm/setjmp.S
+++ b/sysdeps/arm/setjmp.S
@@ -1,5 +1,5 @@
/* setjmp for ARM.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <stap-probe.h>
diff --git a/sysdeps/arm/sotruss-lib.c b/sysdeps/arm/sotruss-lib.c
index 843ff9c2e0..de8020262f 100644
--- a/sysdeps/arm/sotruss-lib.c
+++ b/sysdeps/arm/sotruss-lib.c
@@ -1,5 +1,5 @@
/* Override generic sotruss-lib.c to define actual functions for ARM.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define HAVE_ARCH_PLTENTER
#define HAVE_ARCH_PLTEXIT
diff --git a/sysdeps/arm/stackinfo.h b/sysdeps/arm/stackinfo.h
index 4da1fffe84..80c928f46f 100644
--- a/sysdeps/arm/stackinfo.h
+++ b/sysdeps/arm/stackinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file contains a bit of information about the stack allocation
of the processor. */
diff --git a/sysdeps/arm/stap-probe-machine.h b/sysdeps/arm/stap-probe-machine.h
new file mode 100644
index 0000000000..de4c173ea2
--- /dev/null
+++ b/sysdeps/arm/stap-probe-machine.h
@@ -0,0 +1,22 @@
+/* Macros for customizing Systemtap <sys/sdt.h>. Arm version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+/* The default "nor" constraint produces unparseable memory references
+ for constants. Omit the problematic "o" constraint. See bug 24164
+ and GCC PR 89146. */
+#define STAP_SDT_ARG_CONSTRAINT nr
diff --git a/sysdeps/arm/start.S b/sysdeps/arm/start.S
index adef090717..08311c2bac 100644
--- a/sysdeps/arm/start.S
+++ b/sysdeps/arm/start.S
@@ -1,5 +1,5 @@
/* Startup code for ARM & ELF
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This is the canonical entry point, usually the first thing in the text
segment.
diff --git a/sysdeps/arm/strlen.S b/sysdeps/arm/strlen.S
index 382d1d24f7..19f98fb95a 100644
--- a/sysdeps/arm/strlen.S
+++ b/sysdeps/arm/strlen.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Code contributed by Matthew Wilcox <willy@odie.barnet.ac.uk>
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Thumb requires excessive IT insns here. */
#define NO_THUMB
diff --git a/sysdeps/arm/submul_1.S b/sysdeps/arm/submul_1.S
index e3c7f41b7f..dc8eac2f64 100644
--- a/sysdeps/arm/submul_1.S
+++ b/sysdeps/arm/submul_1.S
@@ -1,5 +1,5 @@
/* mpn_submul_1 -- multiply and subtract bignums.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/arm/sys/ucontext.h b/sysdeps/arm/sys/ucontext.h
index ababe5a062..3f72b83f28 100644
--- a/sysdeps/arm/sys/ucontext.h
+++ b/sysdeps/arm/sys/ucontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* System V/ARM ABI compliant context switching support. */
diff --git a/sysdeps/arm/sysdep.h b/sysdeps/arm/sysdep.h
index 21673feea2..40311c544b 100644
--- a/sysdeps/arm/sysdep.h
+++ b/sysdeps/arm/sysdep.h
@@ -1,5 +1,5 @@
/* Assembler macros for ARM.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/generic/sysdep.h>
#include <features.h>
@@ -295,8 +295,8 @@
#endif
/* Pointer mangling support. */
-#if (IS_IN (rtld) || \
- (!defined SHARED && (IS_IN (libc) || IS_IN (libpthread))))
+#if (IS_IN (rtld) \
+ || (!defined SHARED && (IS_IN (libc) || IS_IN (libpthread))))
# ifdef __ASSEMBLER__
# define PTR_MANGLE_LOAD(guard, tmp) \
LDR_HIDDEN (guard, tmp, C_SYMBOL_NAME(__pointer_chk_guard_local), 0)
diff --git a/sysdeps/arm/tlsdesc.c b/sysdeps/arm/tlsdesc.c
index d142d7a2c9..7b103c5ab9 100644
--- a/sysdeps/arm/tlsdesc.c
+++ b/sysdeps/arm/tlsdesc.c
@@ -1,5 +1,5 @@
/* Manage TLS descriptors. ARM version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ldsodefs.h>
#include <tls.h>
diff --git a/sysdeps/arm/tst-armtlsdescloc.c b/sysdeps/arm/tst-armtlsdescloc.c
index 11324306b6..6b69d19198 100644
--- a/sysdeps/arm/tst-armtlsdescloc.c
+++ b/sysdeps/arm/tst-armtlsdescloc.c
@@ -1,5 +1,5 @@
/* ARM immediate binding GNU TLS descriptor relocation test.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
int getfoo (void);
diff --git a/sysdeps/arm/tst-armtlsdesclocmod.c b/sysdeps/arm/tst-armtlsdesclocmod.c
index f5e3104911..7349814591 100644
--- a/sysdeps/arm/tst-armtlsdesclocmod.c
+++ b/sysdeps/arm/tst-armtlsdesclocmod.c
@@ -1,5 +1,5 @@
/* DSO used for ARM immediate binding GNU TLS descriptor relocation test.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
static int __thread bar = 1;
static int __thread foo;
diff --git a/sysdeps/arm/tst-audit.h b/sysdeps/arm/tst-audit.h
index b501211da5..4ea7e1db1e 100644
--- a/sysdeps/arm/tst-audit.h
+++ b/sysdeps/arm/tst-audit.h
@@ -1,6 +1,6 @@
/* Definitions for testing PLT entry/exit auditing. ARM version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define pltenter la_arm_gnu_pltenter
#define pltexit la_arm_gnu_pltexit
diff --git a/sysdeps/arm/unwind-dw2-fde-glibc.c b/sysdeps/arm/unwind-dw2-fde-glibc.c
index 8e0751fc29..bb70bcd203 100644
--- a/sysdeps/arm/unwind-dw2-fde-glibc.c
+++ b/sysdeps/arm/unwind-dw2-fde-glibc.c
@@ -1,5 +1,5 @@
/* Dummy exception handling and frame unwind runtime interface routines.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* ARM uses setjmp-longjmp exceptions. However, previous versions of
GNU libc exported some DWARF-2 exception handling support routines.
diff --git a/sysdeps/arm/unwind-resume.h b/sysdeps/arm/unwind-resume.h
index ab7683c53f..435965aeba 100644
--- a/sysdeps/arm/unwind-resume.h
+++ b/sysdeps/arm/unwind-resume.h
@@ -1,5 +1,5 @@
/* Definitions for unwind-resume.c. ARM (EABI) version.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
/* The EABI personality routine has a different signature than the
canonical one. These macros tell sysdeps/gnu/unwind*.c how to
diff --git a/sysdeps/arm/unwind.h b/sysdeps/arm/unwind.h
index a856b97501..77c29caa1a 100644
--- a/sysdeps/arm/unwind.h
+++ b/sysdeps/arm/unwind.h
@@ -1,5 +1,5 @@
/* Header file for the ARM EABI unwinder
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
Contributed by Paul Brook
This file is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Language-independent unwinder header public defines. This contains both
ABI defined objects, and GNU support routines. */
diff --git a/sysdeps/csky/Implies b/sysdeps/csky/Implies
new file mode 100644
index 0000000000..fd80b4826e
--- /dev/null
+++ b/sysdeps/csky/Implies
@@ -0,0 +1,5 @@
+init_array
+wordsize-32
+# C-SKY uses IEEE 754 floating point.
+ieee754/flt-32
+ieee754/dbl-64
diff --git a/sysdeps/csky/Makefile b/sysdeps/csky/Makefile
new file mode 100644
index 0000000000..0db09dccce
--- /dev/null
+++ b/sysdeps/csky/Makefile
@@ -0,0 +1,9 @@
+ifeq ($(subdir),csu)
+gen-as-const-headers += tcb-offsets.sym
+endif
+
+ASFLAGS-.os += $(pic-ccflag)
+
+ifeq ($(subdir),gmon)
+sysdep_routines += csky-mcount
+endif
diff --git a/sysdeps/csky/abiv2/__longjmp.S b/sysdeps/csky/abiv2/__longjmp.S
new file mode 100644
index 0000000000..8e86ed9415
--- /dev/null
+++ b/sysdeps/csky/abiv2/__longjmp.S
@@ -0,0 +1,61 @@
+/* longjmp for C-SKY ABIV2.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+ENTRY (__longjmp)
+ mov a2, a0
+ mov a0, a1 /* Get the return value in place. */
+ cmpnei a0, 0
+ bt have_return
+ movi a0, 1 /* Can't let setjmp() return zero! */
+have_return:
+#ifdef CHECK_SP
+ ldw r10, (a2, 0) /* Jmpbuf's sp. */
+# ifdef PTR_MANGLE
+ PTR_DEMANGLE (r10, r10, a3)
+# endif
+ CHECK_SP (r10)
+#endif
+ ldw sp, (a2, 0)
+ ldw lr, (a2, 4)
+ ldw r4, (a2, 8)
+ ldw r5, (a2, 12)
+ ldw r6, (a2, 16)
+ ldw r7, (a2, 20)
+ ldw r8, (a2, 24)
+ ldw r9, (a2, 28)
+ ldw r10, (a2, 32)
+ ldw r11, (a2, 36)
+ ldw r16, (a2, 40)
+ ldw r17, (a2, 44)
+ ldw r26, (a2, 48)
+ ldw r27, (a2, 52)
+ ldw r28, (a2, 56)
+ ldw r29, (a2, 60)
+ ldw r30, (a2, 64)
+ ldw r31, (a2, 68)
+ addi a2, 72
+
+#ifdef PTR_MANGLE
+ PTR_DEMANGLE (sp, sp, a3)
+ PTR_DEMANGLE2 (lr, lr, a3)
+#endif
+ jmp lr
+
+END (__longjmp)
diff --git a/sysdeps/csky/abiv2/csky-mcount.S b/sysdeps/csky/abiv2/csky-mcount.S
new file mode 100644
index 0000000000..89d535c00d
--- /dev/null
+++ b/sysdeps/csky/abiv2/csky-mcount.S
@@ -0,0 +1,67 @@
+/* Implementation of profiling support. C-SKY ABIV2 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+/* Use an assembly stub with a special ABI. The calling lr has been
+ pushed to the stack (which will be misaligned). We should preserve
+ all registers except ip and pop a word off the stack.
+
+ NOTE: This assumes mcount_internal does not clobber any non-core
+ (coprocessor) registers. Currently this is true, but may require
+ additional attention in the future.
+
+ The calling sequence looks something like:
+func:
+ push lr
+ jbsr _mount
+ <function body>
+*/
+
+/* Don't call mcount when calling mcount... */
+#undef PROF
+
+ENTRY (_mcount)
+ subi sp, 20
+ stw a0, (sp, 0)
+ stw a1, (sp, 4)
+ stw a2, (sp, 8)
+ stw a3, (sp, 12)
+ stw lr, (sp, 16)
+ mov a1, lr
+ ldw a0, (sp, 20)
+#ifdef __PIC__
+ grs t1, .Lgetpc
+.Lgetpc:
+ lrw t0, .Lgetpc@GOTPC
+ addu t1, t0
+ lrw t0, __mcount_internal@PLT
+ ldr.w t0, (t1, t0 << 0)
+ jsr t0
+#else
+ jsri __mcount_internal
+#endif /* !__PIC__ */
+ ldw a0, (sp, 0)
+ ldw a1, (sp, 4)
+ ldw a2, (sp, 8)
+ ldw a3, (sp, 12)
+ ldw t1, (sp, 16)
+ ldw lr, (sp, 20)
+ addi sp, 24
+ jmp t1
+END (_mcount)
diff --git a/sysdeps/csky/abiv2/dl-trampoline.S b/sysdeps/csky/abiv2/dl-trampoline.S
new file mode 100644
index 0000000000..4e87b41b64
--- /dev/null
+++ b/sysdeps/csky/abiv2/dl-trampoline.S
@@ -0,0 +1,50 @@
+/* PLT trampolines. C-SKY ABIV2 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+/* This function is not called directly. It is jumped when attempting to
+ use a symbol that has not yet been resolved.
+
+ .plt*:
+ subi r0, 32
+ stw r2, (r0, 0)
+ stw r3, (r0, 4)
+ lrw r3, #offset
+ ldw r2, (gb, 8)
+ jmp r2
+ */
+
+#include <sysdep.h>
+
+ .globl _dl_runtime_resolve;
+ .type _dl_runtime_resolve,@function;
+ .align 4;
+_dl_runtime_resolve:
+ subi sp, 20
+ stm a0-a3, (sp)
+ stw lr, (sp, 16)
+ /* a0 = id, a1 = offset(do it in plt*). */
+ ldw a0, (gb, 4)
+ movi a1, 12
+ mult a1, t1
+ bsr _dl_fixup
+ mov t0, a0
+ ldw lr, (sp, 16)
+ ldm a0-a3, (sp)
+ addi sp, 20
+ jmp t0
+ .size _dl_runtime_resolve,.-_dl_runtime_resolve
diff --git a/sysdeps/csky/abiv2/memcmp.S b/sysdeps/csky/abiv2/memcmp.S
new file mode 100644
index 0000000000..a9c0d0e563
--- /dev/null
+++ b/sysdeps/csky/abiv2/memcmp.S
@@ -0,0 +1,142 @@
+/* The assembly function for memory compare. C-SKY ABIV2 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+ENTRY (memcmp)
+ /* Test if len less than 4 bytes. */
+ mov r3, r0
+ movi r0, 0
+ mov r12, r4
+ cmplti r2, 4
+ jbt .L_compare_by_byte
+
+ andi r13, r0, 3
+ movi r19, 4
+ /* Test if s1 is not 4 bytes aligned. */
+ bnez r13, .L_s1_not_aligned
+
+ LABLE_ALIGN
+.L_s1_aligned:
+ /* If dest is aligned, then copy. */
+ zext r18, r2, 31, 4
+ /* Test if len less than 16 bytes. */
+ bez r18, .L_compare_by_word
+
+.L_compare_by_4word:
+ /* If aligned, load word each time. */
+ ldw r20, (r3, 0)
+ ldw r21, (r1, 0)
+ /* If s1[i] != s2[i], goto .L_byte_check. */
+ cmpne r20, r21
+ bt .L_byte_check
+
+ ldw r20, (r3, 4)
+ ldw r21, (r1, 4)
+ cmpne r20, r21
+ bt .L_byte_check
+
+ ldw r20, (r3, 8)
+ ldw r21, (r1, 8)
+ cmpne r20, r21
+ bt .L_byte_check
+
+ ldw r20, (r3, 12)
+ ldw r21, (r1, 12)
+ cmpne r20, r21
+ bt .L_byte_check
+
+ PRE_BNEZAD (r18)
+ addi a3, 16
+ addi a1, 16
+
+ BNEZAD (r18, .L_compare_by_4word)
+
+.L_compare_by_word:
+ zext r18, r2, 3, 2
+ bez r18, .L_compare_by_byte
+.L_compare_by_word_loop:
+ ldw r20, (r3, 0)
+ ldw r21, (r1, 0)
+ addi r3, 4
+ PRE_BNEZAD (r18)
+ cmpne r20, r21
+ addi r1, 4
+ bt .L_byte_check
+ BNEZAD (r18, .L_compare_by_word_loop)
+
+.L_compare_by_byte:
+ zext r18, r2, 1, 0
+ bez r18, .L_return
+.L_compare_by_byte_loop:
+ ldb r0, (r3, 0)
+ ldb r4, (r1, 0)
+ addi r3, 1
+ subu r0, r4
+ PRE_BNEZAD (r18)
+ addi r1, 1
+ bnez r0, .L_return
+ BNEZAD (r18, .L_compare_by_byte_loop)
+
+.L_return:
+ mov r4, r12
+ rts
+
+ /* s1[i] != s2[i] in word, so we check byte 3. */
+.L_byte_check:
+ xtrb3 r0, r20
+ xtrb3 r2, r21
+ subu r0, r2
+ bnez r0, .L_return
+
+ /* check byte 2 */
+ xtrb2 r0, r20
+ xtrb2 r2, r21
+ subu r0, r2
+ bnez r0, .L_return
+
+ /* check byte 1 */
+ xtrb1 r0, r20
+ xtrb1 r2, r21
+ subu r0, r2
+ bnez r0, .L_return
+
+ /* check byte 0 */
+ xtrb0 r0, r20
+ xtrb0 r2, r21
+ subu r0, r2
+ br .L_return
+
+ /* Compare when s1 is not aligned. */
+.L_s1_not_aligned:
+ sub r13, r19, r13
+ sub r2, r13
+.L_s1_not_aligned_loop:
+ ldb r0, (r3, 0)
+ ldb r4, (r1, 0)
+ addi r3, 1
+ subu r0, r4
+ PRE_BNEZAD (r13)
+ addi r1, 1
+ bnez r0, .L_return
+ BNEZAD (r13, .L_s1_not_aligned_loop)
+ br .L_s1_aligned
+END (memcmp)
+weak_alias (memcmp, bcmp)
+libc_hidden_def (memcmp)
+.weak memcmp
diff --git a/sysdeps/csky/abiv2/memcpy.S b/sysdeps/csky/abiv2/memcpy.S
new file mode 100644
index 0000000000..63a07beca4
--- /dev/null
+++ b/sysdeps/csky/abiv2/memcpy.S
@@ -0,0 +1,238 @@
+/* The assembly function for memcpy. C-SKY ABIV2 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+ENTRY (memcpy)
+ /* Test if len less than 4 bytes. */
+ mov r12, r0
+ cmplti r2, 4
+ bt .L_copy_by_byte
+
+ andi r13, r0, 3
+ movi r19, 4
+ /* Test if dest is not 4 bytes aligned. */
+ bnez r13, .L_dest_not_aligned
+.L_dest_aligned:
+ /* If dest is aligned, then copy. */
+ zext r18, r2, 31, 4
+ /* Test if len less than 16 bytes. */
+ bez r18, .L_len_less_16bytes
+ movi r19, 0
+
+ LABLE_ALIGN
+.L_len_larger_16bytes:
+#if defined (__CSKY_VDSPV2__)
+ vldx.8 vr0, (r1), r19
+ PRE_BNEZAD (r18)
+ addi r1, 16
+ vstx.8 vr0, (r0), r19
+ addi r0, 16
+#elif defined (__csky_fpuv2__) && defined(__CK810__)
+ fldd fr4, (r1, 0)
+ PRE_BNEZAD (r18)
+ fstd fr4, (r0, 0)
+ fldd fr4, (r1, 8)
+ addi r1, 16
+ fstd fr4, (r0, 8)
+ addi r0, 16
+#elif defined (__CK860__)
+ ldw r3, (r1, 0)
+ stw r3, (r0, 0)
+ ldw r3, (r1, 4)
+ stw r3, (r0, 4)
+ ldw r3, (r1, 8)
+ stw r3, (r0, 8)
+ ldw r3, (r1, 12)
+ addi r1, 16
+ stw r3, (r0, 12)
+ addi r0, 16
+#else
+ ldw r20, (r1, 0)
+ ldw r21, (r1, 4)
+ ldw r22, (r1, 8)
+ ldw r23, (r1, 12)
+ stw r20, (r0, 0)
+ stw r21, (r0, 4)
+ stw r22, (r0, 8)
+ stw r23, (r0, 12)
+ PRE_BNEZAD (r18)
+ addi r1, 16
+ addi r0, 16
+#endif
+ BNEZAD (r18, .L_len_larger_16bytes)
+
+.L_len_less_16bytes:
+ zext r18, r2, 3, 2
+ bez r18, .L_copy_by_byte
+.L_len_less_16bytes_loop:
+ ldw r3, (r1, 0)
+ PRE_BNEZAD (r18)
+ addi r1, 4
+ stw r3, (r0, 0)
+ addi r0, 4
+ BNEZAD (r18, .L_len_less_16bytes_loop)
+
+ /* Test if len less than 4 bytes. */
+.L_copy_by_byte:
+ zext r18, r2, 1, 0
+ bez r18, .L_return
+.L_copy_by_byte_loop:
+ ldb r3, (r1, 0)
+ PRE_BNEZAD (r18)
+ addi r1, 1
+ stb r3, (r0, 0)
+ addi r0, 1
+ BNEZAD (r18, .L_copy_by_byte_loop)
+
+.L_return:
+ mov r0, r12
+ rts
+
+ /* If dest is not aligned, just copying some bytes makes the dest
+ align. */
+
+.L_dest_not_aligned:
+ sub r13, r19, r13
+ mov r19, r13
+.L_dest_not_aligned_loop:
+ /* Makes the dest align. */
+ ldb r3, (r1, 0)
+ PRE_BNEZAD (r13)
+ addi r1, 1
+ stb r3, (r0, 0)
+ addi r0, 1
+ BNEZAD (r13, .L_dest_not_aligned_loop)
+ sub r2, r19
+ cmplti r2, 4
+ bt .L_copy_by_byte
+ /* Check whether the src is aligned. */
+ br .L_dest_aligned
+END (memcpy)
+
+libc_hidden_builtin_def (memcpy)
+.weak memcpy
+
+
+ENTRY (memmove)
+ subu r3, r0, r1
+ cmphs r3, r2
+ bt memcpy
+
+ mov r12, r0
+ addu r0, r0, r2
+ addu r1, r1, r2
+
+ /* Test if len less than 4 bytes. */
+ cmplti r2, 4
+ bt .L_copy_by_byte_m
+
+ andi r13, r0, 3
+ /* Test if dest is not 4 bytes aligned. */
+ bnez r13, .L_dest_not_aligned_m
+.L_dest_aligned_m:
+ /* If dest is aligned, then copy. */
+ zext r18, r2, 31, 4
+ /* Test if len less than 16 bytes. */
+ bez r18, .L_len_less_16bytes_m
+ movi r19, 0
+
+ /* len > 16 bytes */
+ LABLE_ALIGN
+.L_len_larger_16bytes_m:
+ subi r1, 16
+ subi r0, 16
+#if defined (__CSKY_VDSPV2__)
+ vldx.8 vr0, (r1), r19
+ PRE_BNEZAD (r18)
+ vstx.8 vr0, (r0), r19
+#elif defined (__csky_fpuv2__) && defined(__CK810__)
+ fldd fr4, (r1, 8)
+ PRE_BNEZAD (r18)
+ fstd fr4, (r0, 8)
+ fldd fr4, (r1, 0)
+ fstd fr4, (r0, 0)
+#elif defined (__CK860__)
+ ldw r3, (r1, 12)
+ stw r3, (r0, 12)
+ ldw r3, (r1, 8)
+ stw r3, (r0, 8)
+ ldw r3, (r1, 4)
+ stw r3, (r0, 4)
+ ldw r3, (r1, 0)
+ stw r3, (r0, 0)
+#else
+ ldw r20, (r1, 0)
+ ldw r21, (r1, 4)
+ ldw r22, (r1, 8)
+ ldw r23, (r1, 12)
+ stw r20, (r0, 0)
+ stw r21, (r0, 4)
+ stw r22, (r0, 8)
+ stw r23, (r0, 12)
+ PRE_BNEZAD (r18)
+#endif
+ BNEZAD (r18, .L_len_larger_16bytes_m)
+
+.L_len_less_16bytes_m:
+ zext r18, r2, 3, 2
+ bez r18, .L_copy_by_byte_m
+.L_len_less_16bytes_loop_m:
+ subi r1, 4
+ subi r0, 4
+ ldw r3, (r1, 0)
+ PRE_BNEZAD (r18)
+ stw r3, (r0, 0)
+ BNEZAD (r18, .L_len_less_16bytes_loop_m)
+
+ /* Test if len less than 4 bytes. */
+.L_copy_by_byte_m:
+ zext r18, r2, 1, 0
+ bez r18, .L_return_m
+.L_copy_by_byte_loop_m:
+ subi r1, 1
+ subi r0, 1
+ ldb r3, (r1, 0)
+ PRE_BNEZAD (r18)
+ stb r3, (r0, 0)
+ BNEZAD (r18, .L_copy_by_byte_loop_m)
+
+.L_return_m:
+ mov r0, r12
+ rts
+
+ /* If dest is not aligned, just copying some bytes makes the dest
+ align. */
+.L_dest_not_aligned_m:
+ sub r2, r13
+.L_dest_not_aligned_loop_m:
+ subi r1, 1
+ subi r0, 1
+ /* Makes the dest align. */
+ ldb r3, (r1, 0)
+ PRE_BNEZAD (r13)
+ stb r3, (r0, 0)
+ BNEZAD (r13, .L_dest_not_aligned_loop_m)
+ cmplti r2, 4
+ bt .L_copy_by_byte_m
+ /* Check whether the src is aligned. */
+ br .L_dest_aligned_m
+END (memmove)
+
+libc_hidden_builtin_def (memmove)
+.weak memmove
diff --git a/sysdeps/csky/abiv2/memmove.S b/sysdeps/csky/abiv2/memmove.S
new file mode 100644
index 0000000000..5a35458fe3
--- /dev/null
+++ b/sysdeps/csky/abiv2/memmove.S
@@ -0,0 +1 @@
+/* memmove is in memcpy.S. */
diff --git a/sysdeps/csky/abiv2/memset.S b/sysdeps/csky/abiv2/memset.S
new file mode 100644
index 0000000000..135606e418
--- /dev/null
+++ b/sysdeps/csky/abiv2/memset.S
@@ -0,0 +1,98 @@
+/* The assembly function for memset. C-SKY ABIV2 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+ENTRY (memset)
+ /* Test if len less than 4 bytes. */
+ mov r12, r0
+ cmplti r2, 8
+ bt .L_set_by_byte
+
+ andi r13, r0, 3
+ movi r19, 4
+ /* Test if dest is not 4 bytes aligned. */
+ bnez r13, .L_dest_not_aligned
+ /* Hardware can handle unaligned access directly. */
+.L_dest_aligned:
+ zextb r1, r1
+ mov r3, r1
+ lsli r1, 8
+ or r1, r3
+ lsli r3, r1, 16
+ or r3, r1
+
+ /* If dest is aligned, then copy. */
+ zext r18, r2, 31, 4
+ /* Test if len less than 16 bytes. */
+ bez r18, .L_len_less_16bytes
+
+ LABLE_ALIGN
+.L_len_larger_16bytes:
+ stw r3, (r0, 0)
+ stw r3, (r0, 4)
+ stw r3, (r0, 8)
+ stw r3, (r0, 12)
+ PRE_BNEZAD (r18)
+ addi r0, 16
+ BNEZAD (r18, .L_len_larger_16bytes)
+
+.L_len_less_16bytes:
+ zext r18, r2, 3, 2
+ andi r2, 3
+ bez r18, .L_set_by_byte
+.L_len_less_16bytes_loop:
+ stw r3, (r0, 0)
+ PRE_BNEZAD (r18)
+ addi r0, 4
+ BNEZAD (r18, .L_len_less_16bytes_loop)
+
+ /* Test if len less than 4 bytes. */
+.L_set_by_byte:
+ zext r18, r2, 2, 0
+ bez r18, .L_return
+.L_set_by_byte_loop:
+ stb r1, (r0, 0)
+ PRE_BNEZAD (r18)
+ addi r0, 1
+ BNEZAD (r18, .L_set_by_byte_loop)
+
+.L_return:
+ mov r0, r12
+ rts
+
+ /* If dest is not aligned, just set some bytes makes the dest
+ align. */
+
+.L_dest_not_aligned:
+ sub r13, r19, r13
+ sub r2, r13
+.L_dest_not_aligned_loop:
+ /* Makes the dest align. */
+ stb r1, (r0, 0)
+ PRE_BNEZAD (r13)
+ addi r0, 1
+ BNEZAD (r13, .L_dest_not_aligned_loop)
+ cmplti r2, 8
+ bt .L_set_by_byte
+ /* Check whether the src is aligned. */
+ br .L_dest_aligned
+END (memset)
+
+libc_hidden_builtin_def (memset)
+.weak memset
diff --git a/sysdeps/csky/abiv2/setjmp.S b/sysdeps/csky/abiv2/setjmp.S
new file mode 100644
index 0000000000..1dfc24edbd
--- /dev/null
+++ b/sysdeps/csky/abiv2/setjmp.S
@@ -0,0 +1,77 @@
+/* setjmp for C-SKY ABIV2.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+ENTRY (setjmp)
+ movi a1, 1
+ br __sigsetjmp
+END (setjmp)
+
+ENTRY (_setjmp)
+ movi a1, 0
+ br __sigsetjmp
+END (_setjmp)
+
+libc_hidden_def (_setjmp)
+
+ENTRY (__sigsetjmp)
+ mov a2, a0
+ /* Save registers. */
+
+#ifdef PTR_MANGLE
+ PTR_MANGLE (t0, sp, a3)
+ stw t0, (a2, 0)
+ PTR_MANGLE2 (t0, lr, a3)
+ stw t0, (a2, 4)
+#else
+ stw sp, (a2, 0)
+ stw lr, (a2, 4)
+#endif
+ stw r4, (a2, 8)
+ stw r5, (a2, 12)
+ stw r6, (a2, 16)
+ stw r7, (a2, 20)
+ stw r8, (a2, 24)
+ stw r9, (a2, 28)
+ stw r10, (a2, 32)
+ stw r11, (a2, 36)
+ stw r16, (a2, 40)
+ stw r17, (a2, 44)
+ stw r26, (a2, 48)
+ stw r27, (a2, 52)
+ stw r28, (a2, 56)
+ stw r29, (a2, 60)
+ stw r30, (a2, 64)
+ stw r31, (a2, 68)
+ addi a2, 72
+
+#ifdef __PIC__
+ grs t1, .Lgetpc
+.Lgetpc:
+ lrw t0, .Lgetpc@GOTPC
+ addu t1, t0
+ lrw a2, __sigjmp_save@PLT
+ ldr.w a2, (t1, a2 << 0)
+ jmp a2
+#else
+ jmpi __sigjmp_save
+#endif /* !__PIC__ */
+END (__sigsetjmp)
+
+hidden_def (__sigsetjmp)
diff --git a/sysdeps/csky/abiv2/start.S b/sysdeps/csky/abiv2/start.S
new file mode 100644
index 0000000000..a7e6a20940
--- /dev/null
+++ b/sysdeps/csky/abiv2/start.S
@@ -0,0 +1,112 @@
+/* Startup code compliant to the ELF C-SKY ABIV2.
+ Copyright (C) 2018-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.
+
+ In addition to the permissions in the GNU Lesser General Public
+ License, the Free Software Foundation gives you unlimited
+ permission to link the compiled version of this file with other
+ programs, and to distribute those programs without any restriction
+ coming from the use of this file. (The GNU Lesser General Public
+ License restrictions do apply in other respects; for example, they
+ cover modification of the file, and distribution when not linked
+ into another program.)
+
+ Note that people who make modified versions of this file are not
+ obligated to grant this special exception for their modified
+ versions; it is their choice whether to do so. The GNU Lesser
+ General Public License gives permission to release a modified
+ version without this exception; this exception also makes it
+ possible to release a modified version which carries forward this
+ exception.
+
+ 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
+ <https://www.gnu.org/licenses/>. */
+
+/* We need to call:
+ __libc_start_main (int (*main) (int, char **, char **), int argc,
+ char **argv, void (*init) (void), void (*fini) (void),
+ void (*rtld_fini) (void), void *stack_end)
+ */
+
+#include <sysdep.h>
+
+ .text
+ .globl _start;
+ .type _start,@function;
+ .align 4;
+_start:
+ cfi_startproc
+ .cfi_label .Ldummy
+ cfi_undefined (lr)
+ subi sp, 8
+ /* Clear the link register since this is the outermost frame. */
+ movi lr, 0
+ /* Pop argc off the stack and save a pointer to argv. */
+ ldw a1, (sp, 8) /* Init argc for __libc_start_main. */
+ addi a2, sp, 12 /* Init argv for __libc_start_main. */
+
+ /* Push stack limit. */
+ stw a2, (sp, 8)
+ /* Push rtld_fini. */
+ stw a0, (sp, 4)
+
+#ifdef SHARED
+ grs t0, .Lgetpc
+.Lgetpc:
+ lrw gb, .Lgetpc@GOTPC
+ addu gb, t0
+ lrw a3, __libc_csu_fini@GOT
+ ldr.w a3, (gb, a3 << 0)
+ stw a3, (sp, 0)
+
+ lrw a3, __libc_csu_init@GOT
+ addu a3, gb
+ ldw a3, (a3, 0)
+
+ lrw t0, main@GOT
+ addu t0, gb
+ ldw a0, (t0, 0)
+ lrw t1, __libc_start_main@PLT
+ ldr.w t1, (gb, t1 << 0)
+ jsr t1
+
+ lrw t1, abort@PLT
+ ldr.w t1, (gb, t1 << 0)
+ jsr t1
+#else
+ /* Fetch address of __libc_csu_fini. */
+ lrw a0, __libc_csu_fini
+ /* Push __libc_csu_fini */
+ stw a0, (sp, 0)
+
+ /* Set up the other arguments in registers. */
+ lrw a0, main
+ lrw a3, __libc_csu_init
+ /* Let the libc call main and exit with its return code. */
+ jsri __libc_start_main
+
+ /* Should never get here. */
+ jsri abort
+#endif /* !SHARED */
+ cfi_endproc
+ .size _start,.-_start
+
+
+ /* Define a symbol for the first piece of initialized data. */
+ .data
+ .globl __data_start
+__data_start:
+ .long 0
+ .weak data_start
+ data_start = __data_start
diff --git a/sysdeps/csky/abiv2/strcmp.S b/sysdeps/csky/abiv2/strcmp.S
new file mode 100644
index 0000000000..07b304136e
--- /dev/null
+++ b/sysdeps/csky/abiv2/strcmp.S
@@ -0,0 +1,156 @@
+/* The assembly function for string compare. C-SKY ABIV2 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+ENTRY (strcmp)
+ mov a3, a0
+ /* Check if the s1 addr is aligned. */
+ xor a2, a3, a1
+ andi a2, 0x3
+ bnez a2, 7f
+ andi t1, a0, 0x3
+ bnez t1, 5f
+
+1:
+ /* If aligned, load word each time. */
+ ldw t0, (a3, 0)
+ ldw t1, (a1, 0)
+ /* If s1[i] != s2[i], goto 2f. */
+ cmpne t0, t1
+ bt 2f
+ /* If s1[i] == s2[i], check if s1 or s2 is at the end. */
+ tstnbz t0
+ /* If at the end, goto 3f (finish comparing). */
+ bf 3f
+
+ ldw t0, (a3, 4)
+ ldw t1, (a1, 4)
+ cmpne t0, t1
+ bt 2f
+ tstnbz t0
+ bf 3f
+
+ ldw t0, (a3, 8)
+ ldw t1, (a1, 8)
+ cmpne t0, t1
+ bt 2f
+ tstnbz t0
+ bf 3f
+
+ ldw t0, (a3, 12)
+ ldw t1, (a1, 12)
+ cmpne t0, t1
+ bt 2f
+ tstnbz t0
+ bf 3f
+
+ ldw t0, (a3, 16)
+ ldw t1, (a1, 16)
+ cmpne t0, t1
+ bt 2f
+ tstnbz t0
+ bf 3f
+
+ ldw t0, (a3, 20)
+ ldw t1, (a1, 20)
+ cmpne t0, t1
+ bt 2f
+ tstnbz t0
+ bf 3f
+
+ ldw t0, (a3, 24)
+ ldw t1, (a1, 24)
+ cmpne t0, t1
+ bt 2f
+ tstnbz t0
+ bf 3f
+
+ ldw t0, (a3, 28)
+ ldw t1, (a1, 28)
+ cmpne t0, t1
+ bt 2f
+ tstnbz t0
+ bf 3f
+
+ addi a3, 32
+ addi a1, 32
+
+ br 1b
+
+ /* s1[i] != s2[i] in word, so we check byte 3. */
+2:
+ xtrb3 a0, t0
+ xtrb3 a2, t1
+ subu a0, a2
+ bez a2, 4f
+ bnez a0, 4f
+
+ /* Check byte 2. */
+ xtrb2 a0, t0
+ xtrb2 a2, t1
+ subu a0, a2
+ bez a2, 4f
+ bnez a0, 4f
+
+ /* Check byte 1. */
+ xtrb1 a0, t0
+ xtrb1 a2, t1
+ subu a0, a2
+ bez a2, 4f
+ bnez a0, 4f
+
+ /* Check byte 0. */
+ xtrb0 a0, t0
+ xtrb0 a2, t1
+ subu a0, a2
+
+ jmp lr
+3:
+ movi a0, 0
+4:
+ jmp lr
+
+ /* Compare when s1 or s2 is not aligned. */
+5:
+ subi t1, 4
+6:
+ ldb a0, (a3, 0)
+ ldb a2, (a1, 0)
+ subu a0, a2
+ bnez a0, 4b
+ addi t1, 1
+ bez a2, 4b
+ addi a1, 1
+ addi a3, 1
+ bez t1, 1b
+ br 6b
+
+7:
+ ldb a0, (a3, 0)
+ addi a3, 1
+ ldb a2, (a1, 0)
+ addi a1, 1
+ subu a0, a2
+ bnez a0, 4b
+ bnez a2, 7b
+ jmp r15
+END (strcmp)
+
+libc_hidden_def (strcmp)
+.weak strcmp
diff --git a/sysdeps/csky/abiv2/strcpy.S b/sysdeps/csky/abiv2/strcpy.S
new file mode 100644
index 0000000000..ecd9c633a0
--- /dev/null
+++ b/sysdeps/csky/abiv2/strcpy.S
@@ -0,0 +1,127 @@
+/* The assembly function for string copy. C-SKY ABIV2 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+ENTRY (strcpy)
+ mov a3, a0
+ /* Check if the src addr is aligned. */
+ andi t0, a1, 3
+ bnez t0, 11f
+1:
+ /* Check if all the bytes in the word are not zero. */
+ ldw a2, (a1)
+ tstnbz a2
+ bf 9f
+ stw a2, (a3)
+
+ ldw a2, (a1, 4)
+ tstnbz a2
+ bf 2f
+ stw a2, (a3, 4)
+
+ ldw a2, (a1, 8)
+ tstnbz a2
+ bf 3f
+ stw a2, (a3, 8)
+
+ ldw a2, (a1, 12)
+ tstnbz a2
+ bf 4f
+ stw a2, (a3, 12)
+
+ ldw a2, (a1, 16)
+ tstnbz a2
+ bf 5f
+ stw a2, (a3, 16)
+
+ ldw a2, (a1, 20)
+ tstnbz a2
+ bf 6f
+ stw a2, (a3, 20)
+
+ ldw a2, (a1, 24)
+ tstnbz a2
+ bf 7f
+ stw a2, (a3, 24)
+
+ ldw a2, (a1, 28)
+ tstnbz a2
+ bf 8f
+ stw a2, (a3, 28)
+
+ addi a3, 32
+ addi a1, 32
+ br 1b
+
+2:
+ addi a3, 4
+ br 9f
+
+3:
+ addi a3, 8
+ br 9f
+
+4:
+ addi a3, 12
+ br 9f
+
+5:
+ addi a3, 16
+ br 9f
+
+6:
+ addi a3, 20
+ br 9f
+
+7:
+ addi a3, 24
+ br 9f
+
+8:
+ addi a3, 28
+9:
+ xtrb3 t0, a2
+ st.b t0, (a3)
+ bez t0, 10f
+ xtrb2 t0, a2
+ st.b t0, (a3, 1)
+ bez t0, 10f
+ xtrb1 t0, a2
+ st.b t0, (a3, 2)
+ bez t0, 10f
+ stw a2, (a3)
+10:
+ jmp lr
+
+11:
+ subi t0, 4
+12:
+ ld.b a2, (a1)
+ st.b a2, (a3)
+ bez a2, 10b
+ addi t0, 1
+ addi a1, a1, 1
+ addi a3, a3, 1
+ bnez t0, 12b
+ br 1b
+
+END (strcpy)
+
+libc_hidden_def (strcpy)
+.weak strcpy
diff --git a/sysdeps/csky/abiv2/strlen.S b/sysdeps/csky/abiv2/strlen.S
new file mode 100644
index 0000000000..8dd7cf74bb
--- /dev/null
+++ b/sysdeps/csky/abiv2/strlen.S
@@ -0,0 +1,102 @@
+/* The assembly function for string length. C-SKY ABIV2 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+ENTRY (strlen)
+ /* Check if the start addr is aligned. */
+ mov r3, r0
+ andi r1, r0, 3
+ movi r2, 4
+ movi r0, 0
+ bnez r1, .L_start_not_aligned
+
+ LABLE_ALIGN
+.L_start_addr_aligned:
+ /* Check if all the bytes in the word are not zero. */
+ ldw r1, (r3)
+ tstnbz r1
+ bf .L_string_tail
+
+ ldw r1, (r3, 4)
+ addi r0, 4
+ tstnbz r1
+ bf .L_string_tail
+
+ ldw r1, (r3, 8)
+ addi r0, 4
+ tstnbz r1
+ bf .L_string_tail
+
+ ldw r1, (r3, 12)
+ addi r0, 4
+ tstnbz r1
+ bf .L_string_tail
+
+ ldw r1, (r3, 16)
+ addi r0, 4
+ tstnbz r1
+ bf .L_string_tail
+
+ ldw r1, (r3, 20)
+ addi r0, 4
+ tstnbz r1
+ bf .L_string_tail
+
+ ldw r1, (r3, 24)
+ addi r0, 4
+ tstnbz r1
+ bf .L_string_tail
+
+ ldw r1, (r3, 28)
+ addi r0, 4
+ tstnbz r1
+ bf .L_string_tail
+
+ addi r0, 4
+ addi r3, 32
+ br .L_start_addr_aligned
+
+.L_string_tail:
+ xtrb3 r3, r1
+ bez r3, .L_return
+ addi r0, 1
+ xtrb2 r3, r1
+ bez r3, .L_return
+ addi r0, 1
+ xtrb1 r3, r1
+ bez r3, .L_return
+ addi r0, 1
+
+.L_return:
+ rts
+
+.L_start_not_aligned:
+ sub r2, r2, r1
+.L_start_not_aligned_loop:
+ ldb r1, (r3)
+ PRE_BNEZAD (r2)
+ addi r3, 1
+ bez r1, .L_return
+ addi r0, 1
+ BNEZAD (r2, .L_start_not_aligned_loop)
+ br .L_start_addr_aligned
+END (strlen)
+
+libc_hidden_def (strlen)
+.weak strlen
diff --git a/sysdeps/csky/abiv2/tls-macros.h b/sysdeps/csky/abiv2/tls-macros.h
new file mode 100644
index 0000000000..1bb3b42105
--- /dev/null
+++ b/sysdeps/csky/abiv2/tls-macros.h
@@ -0,0 +1,55 @@
+/* Macros for accessing thread-local storage. C-SKY ABIV2 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+# define TLS_LE(x) \
+ ({ int *__result; \
+ __asm__ ("lrw %0, " #x "@TPOFF\n\t" \
+ "add %0, tls, %0" \
+ : "=&r" (__result)); \
+ __result; })
+
+# define TLS_IE(x) \
+ ({ int *__result; \
+ __asm__ ("grs a1, 1f\n" \
+ "1:\tlrw %0, " #x "@GOTTPOFF\n\t" \
+ "ldr.w %0, (a1, %0 << 0)\n\t" \
+ "add %0, tls, %0" \
+ : "=&r" (__result): : "a1"); \
+ __result; })
+
+# define TLS_LD(x) \
+ ({ char *__result; \
+ int __offset; \
+ extern void *__tls_get_addr (void *); \
+ __asm__ ("grs a1, 1f\n" \
+ "1:\tlrw %0, " #x "@TLSLDM32;\n\t" \
+ "add %0, a1, %0" \
+ : "=r" (__result) : : "a1"); \
+ __result = (char *)__tls_get_addr (__result); \
+ __asm__ ("lrw %0, " #x "@TLSLDO32" \
+ : "=r" (__offset)); \
+ (int *) (__result + __offset); })
+
+# define TLS_GD(x) \
+ ({ int *__result; \
+ extern void *__tls_get_addr (void *); \
+ __asm__ ("grs a1, 1f\n" \
+ "1:\tlrw %0, " #x "@TLSGD32\n\t" \
+ "add %0, a1, %0" \
+ : "=r" (__result) : : "a1"); \
+ (int *)__tls_get_addr (__result); })
diff --git a/sysdeps/csky/abort-instr.h b/sysdeps/csky/abort-instr.h
new file mode 100644
index 0000000000..27a3536a37
--- /dev/null
+++ b/sysdeps/csky/abort-instr.h
@@ -0,0 +1,2 @@
+/* An instruction which should crash any program is a breakpoint. */
+#define ABORT_INSTRUCTION asm ("bkpt")
diff --git a/sysdeps/csky/atomic-machine.h b/sysdeps/csky/atomic-machine.h
new file mode 100644
index 0000000000..d52316d999
--- /dev/null
+++ b/sysdeps/csky/atomic-machine.h
@@ -0,0 +1,77 @@
+/* Atomic operations. C-SKY version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef __CSKY_ATOMIC_H_
+#define __CSKY_ATOMIC_H_
+
+#include <stdint.h>
+
+typedef int32_t atomic32_t;
+typedef uint32_t uatomic32_t;
+
+typedef intptr_t atomicptr_t;
+typedef uintptr_t uatomicptr_t;
+typedef intmax_t atomic_max_t;
+typedef uintmax_t uatomic_max_t;
+
+#define __HAVE_64B_ATOMICS 0
+#define USE_ATOMIC_COMPILER_BUILTINS 1
+#define ATOMIC_EXCHANGE_USES_CAS 1
+
+#define __arch_compare_and_exchange_bool_8_int(mem, newval, oldval, model) \
+ (abort (), 0)
+
+#define __arch_compare_and_exchange_bool_16_int(mem, newval, oldval, model) \
+ (abort (), 0)
+
+#define __arch_compare_and_exchange_bool_32_int(mem, newval, oldval, model) \
+ ({ \
+ typeof (*mem) __oldval = (oldval); \
+ !__atomic_compare_exchange_n (mem, (void *) &__oldval, newval, 0, \
+ model, __ATOMIC_RELAXED); \
+ })
+
+#define __arch_compare_and_exchange_bool_64_int(mem, newval, oldval, model) \
+ (abort (), 0)
+
+#define __arch_compare_and_exchange_val_8_int(mem, newval, oldval, model) \
+ (abort (), (__typeof (*mem)) 0)
+
+#define __arch_compare_and_exchange_val_16_int(mem, newval, oldval, model) \
+ (abort (), (__typeof (*mem)) 0)
+
+#define __arch_compare_and_exchange_val_32_int(mem, newval, oldval, model) \
+ ({ \
+ typeof (*mem) __oldval = (oldval); \
+ __atomic_compare_exchange_n (mem, (void *) &__oldval, newval, 0, \
+ model, __ATOMIC_RELAXED); \
+ __oldval; \
+ })
+
+#define __arch_compare_and_exchange_val_64_int(mem, newval, oldval, model) \
+ (abort (), (__typeof (*mem)) 0)
+
+#define atomic_compare_and_exchange_bool_acq(mem, new, old) \
+ __atomic_bool_bysize (__arch_compare_and_exchange_bool, int, \
+ mem, new, old, __ATOMIC_ACQUIRE)
+
+#define atomic_compare_and_exchange_val_acq(mem, new, old) \
+ __atomic_val_bysize (__arch_compare_and_exchange_val, int, \
+ mem, new, old, __ATOMIC_ACQUIRE)
+
+#endif /* atomic-machine.h */
diff --git a/sysdeps/csky/bits/endianness.h b/sysdeps/csky/bits/endianness.h
new file mode 100644
index 0000000000..ad20cf64e0
--- /dev/null
+++ b/sysdeps/csky/bits/endianness.h
@@ -0,0 +1,14 @@
+#ifndef _BITS_ENDIANNESS_H
+#define _BITS_ENDIANNESS_H 1
+
+#ifndef _BITS_ENDIAN_H
+# error "Never use <bits/endianness.h> directly; include <endian.h> instead."
+#endif
+
+#ifdef __CSKYBE__
+# error "Big endian not supported for C-SKY."
+#else
+# define __BYTE_ORDER __LITTLE_ENDIAN
+#endif
+
+#endif /* bits/endianness.h */
diff --git a/sysdeps/csky/bits/fenv.h b/sysdeps/csky/bits/fenv.h
new file mode 100644
index 0000000000..9f04a7d007
--- /dev/null
+++ b/sysdeps/csky/bits/fenv.h
@@ -0,0 +1,111 @@
+/* Floating point environment. C-SKY version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _FENV_H
+# error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
+#endif
+
+#ifdef __csky_hard_float__
+/* Define bits representing the exception. We use the bit positions
+ of the appropriate bits in the FPU control word. */
+enum
+ {
+ FE_INVALID =
+#define FE_INVALID 0x01
+ FE_INVALID,
+ FE_DIVBYZERO =
+#define FE_DIVBYZERO 0x02
+ FE_DIVBYZERO,
+ FE_OVERFLOW =
+#define FE_OVERFLOW 0x04
+ FE_OVERFLOW,
+ FE_UNDERFLOW =
+#define FE_UNDERFLOW 0x08
+ FE_UNDERFLOW,
+ FE_INEXACT =
+#define FE_INEXACT 0x10
+ FE_INEXACT,
+ __FE_DENORMAL = 0x20
+ };
+
+#define FE_ALL_EXCEPT \
+ (FE_INEXACT | FE_DIVBYZERO | FE_UNDERFLOW | FE_OVERFLOW | FE_INVALID)
+
+/* The C-SKY FPU supports all of the four defined rounding modes. We
+ use again the bit positions in the FPU control word as the values
+ for the appropriate macros. */
+enum
+ {
+ FE_TONEAREST =
+#define FE_TONEAREST (0x0 << 24)
+ FE_TONEAREST,
+ FE_TOWARDZERO =
+#define FE_TOWARDZERO (0x1 << 24)
+ FE_TOWARDZERO,
+ FE_UPWARD =
+#define FE_UPWARD (0x2 << 24)
+ FE_UPWARD,
+ FE_DOWNWARD =
+#define FE_DOWNWARD (0x3 << 24)
+ FE_DOWNWARD,
+ __FE_ROUND_MASK = (0x3 << 24)
+ };
+
+#else
+
+/* In the soft-float case, only rounding to nearest is supported, with
+ no exceptions. */
+
+enum
+ {
+ __FE_UNDEFINED = -1,
+
+ FE_TONEAREST =
+# define FE_TONEAREST 0x0
+ FE_TONEAREST
+ };
+
+# define FE_ALL_EXCEPT 0
+
+#endif
+
+/* Type representing exception flags. */
+typedef unsigned int fexcept_t;
+
+/* Type representing floating-point environment. */
+typedef struct
+{
+ unsigned int __fpcr;
+ unsigned int __fpsr;
+} fenv_t;
+
+/* If the default argument is used we use this value. */
+#define FE_DFL_ENV ((const fenv_t *) -1)
+
+#if defined __USE_GNU && defined __csky_hard_float__
+/* Floating-point environment where none of the exceptions are masked. */
+# define FE_NOMASK_ENV ((const fenv_t *) -2)
+#endif
+
+#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
+/* Type representing floating-point control modes. */
+typedef unsigned int femode_t;
+
+/* Default floating-point control modes. */
+# define FE_DFL_MODE ((const femode_t *) -1L)
+#endif
diff --git a/sysdeps/csky/bits/link.h b/sysdeps/csky/bits/link.h
new file mode 100644
index 0000000000..dc0ac2a856
--- /dev/null
+++ b/sysdeps/csky/bits/link.h
@@ -0,0 +1,55 @@
+/* Machine-specific declarations for dynamic linker interface. C-SKY version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _LINK_H
+# error "Never include <bits/link.h> directly; use <link.h> instead."
+#endif
+
+/* Registers for entry into PLT on C-SKY. */
+typedef struct La_csky_regs
+{
+ uint32_t lr_reg[4];
+ uint32_t lr_sp;
+ uint32_t lr_lr;
+} La_csky_regs;
+
+/* Return values for calls from PLT on C-SKY. */
+typedef struct La_csky_retval
+{
+ /* Up to four integer registers can be used for a return value. */
+ uint32_t lrv_reg[4];
+ uint32_t lrv_v0;
+} La_csky_retval;
+
+__BEGIN_DECLS
+
+extern Elf32_Addr la_csky_gnu_pltenter (Elf32_Sym *__sym, unsigned int __ndx,
+ uintptr_t *__refcook,
+ uintptr_t *__defcook,
+ La_csky_regs *__regs,
+ unsigned int *__flags,
+ const char *__symname,
+ long int *__framesizep);
+extern unsigned int la_csky_gnu_pltexit (Elf32_Sym *__sym, unsigned int __ndx,
+ uintptr_t *__refcook,
+ uintptr_t *__defcook,
+ const La_csky_regs *__inregs,
+ La_csky_retval *__outregs,
+ const char *__symname);
+
+__END_DECLS
diff --git a/sysdeps/csky/bits/setjmp.h b/sysdeps/csky/bits/setjmp.h
new file mode 100644
index 0000000000..92f2219e1a
--- /dev/null
+++ b/sysdeps/csky/bits/setjmp.h
@@ -0,0 +1,34 @@
+/* Define the machine-dependent type `jmp_buf'. C-SKY version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _CSKY_BITS_SETJMP_H
+#define _CSKY_BITS_SETJMP_H 1
+
+typedef struct __jmp_buf_str
+ {
+ /* Stack pointer. */
+ int __sp;
+ int __lr;
+ /* The actual core defines which registers should be saved. The
+ buffer contains 32 words, keep space for future growth.
+ Callee-saved registers:
+ r4 ~ r11, r16 ~ r17, r26 ~r31 for abiv2; r8 ~ r14 for abiv1. */
+ int __regs[32];
+ } __jmp_buf[1];
+
+#endif
diff --git a/sysdeps/csky/bsd-_setjmp.S b/sysdeps/csky/bsd-_setjmp.S
new file mode 100644
index 0000000000..90b99cd8c3
--- /dev/null
+++ b/sysdeps/csky/bsd-_setjmp.S
@@ -0,0 +1 @@
+/* _setjmp is in setjmp.S. */
diff --git a/sysdeps/csky/bsd-setjmp.S b/sysdeps/csky/bsd-setjmp.S
new file mode 100644
index 0000000000..d3b823c118
--- /dev/null
+++ b/sysdeps/csky/bsd-setjmp.S
@@ -0,0 +1 @@
+/* setjmp is in setjmp.S. */
diff --git a/sysdeps/csky/configure b/sysdeps/csky/configure
new file mode 100644
index 0000000000..19acb084fb
--- /dev/null
+++ b/sysdeps/csky/configure
@@ -0,0 +1,4 @@
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
+ # Local configure fragment for sysdeps/csky.
+
+$as_echo "#define PI_STATIC_AND_HIDDEN 1" >>confdefs.h
diff --git a/sysdeps/csky/configure.ac b/sysdeps/csky/configure.ac
new file mode 100644
index 0000000000..5656b665da
--- /dev/null
+++ b/sysdeps/csky/configure.ac
@@ -0,0 +1,4 @@
+GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
+# Local configure fragment for sysdeps/csky.
+
+AC_DEFINE(PI_STATIC_AND_HIDDEN)
diff --git a/sysdeps/csky/dl-machine.h b/sysdeps/csky/dl-machine.h
new file mode 100644
index 0000000000..a65e979c9a
--- /dev/null
+++ b/sysdeps/csky/dl-machine.h
@@ -0,0 +1,362 @@
+/* Machine-dependent ELF dynamic relocation inline functions. C-SKY version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef dl_machine_h
+#define dl_machine_h
+
+#define ELF_MACHINE_NAME "csky"
+
+#include <sys/param.h>
+#include <sysdep.h>
+#include <dl-tls.h>
+
+/* Return nonzero if ELF header is compatible with the running host. */
+static inline int
+elf_machine_matches_host (const Elf32_Ehdr *ehdr)
+{
+ return ehdr->e_machine == EM_CSKY;
+}
+
+/* Return the link-time address of _DYNAMIC.
+ This must be inlined in a function which uses global data. */
+static inline Elf32_Addr
+elf_machine_dynamic (void)
+{
+ register Elf32_Addr *got __asm__ ("gb");
+ return *got;
+}
+
+/* Return the run-time load address ,of the shared object. */
+static inline Elf32_Addr
+elf_machine_load_address (void)
+{
+ extern Elf32_Addr __dl_start (void *) asm ("_dl_start");
+ Elf32_Addr got_addr = (Elf32_Addr) &__dl_start;
+ Elf32_Addr pcrel_addr;
+ asm ("grs %0,_dl_start\n" : "=r" (pcrel_addr));
+
+ return pcrel_addr - got_addr;
+}
+
+
+/* Set up the loaded object described by L so its unrelocated PLT
+ entries will jump to the on-demand fixup code in dl-runtime.c. */
+
+static inline int __attribute__ ((always_inline))
+elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
+{
+ Elf32_Addr *got;
+ extern void _dl_runtime_resolve (Elf32_Word);
+
+ if (l->l_info[DT_JMPREL] && lazy)
+ {
+ /* The GOT entries for functions in the PLT have not yet been
+ filled in. Their initial contents will arrange when called
+ to push an offset into the .rela.plt section, push
+ _GLOBAL_OFFSET_TABLE_[1], and then jump to
+ _GLOBAL_OFFSET_TABLE_[2]. */
+ got = (Elf32_Addr *) D_PTR (l, l_info[DT_PLTGOT]);
+
+ if (got[1])
+ l->l_mach.plt = got[1] + l->l_addr;
+ got[1] = (Elf32_Addr) l; /* Identify this shared object. */
+
+ /* The got[2] entry contains the address of a function which gets
+ called to get the address of a so far unresolved function and
+ jump to it. The profiling extension of the dynamic linker allows
+ to intercept the calls to collect information. In this case we
+ don't store the address in the GOT so that all future calls also
+ end in this function. */
+ got[2] = (Elf32_Addr) &_dl_runtime_resolve;
+ }
+ return lazy;
+}
+
+/* Mask identifying addresses reserved for the user program,
+ where the dynamic linker should not map anything. */
+#define ELF_MACHINE_USER_ADDRESS_MASK 0x80000000UL
+
+/* Initial entry point code for the dynamic linker.
+ The C function `_dl_start' is the real entry point;
+ its return value is the user program's entry point. */
+#define RTLD_START asm ("\
+.text\n\
+.globl _start\n\
+.type _start, @function\n\
+.globl _dl_start_user\n\
+.type _dl_start_user, @function\n\
+_start:\n\
+ grs gb, .Lgetpc1\n\
+.Lgetpc1:\n\
+ lrw t0, .Lgetpc1@GOTPC\n\
+ addu gb, t0\n\
+ mov a0, sp\n\
+ lrw t1, _dl_start@GOTOFF\n\
+ addu t1, gb\n\
+ jsr t1\n\
+_dl_start_user:\n\
+ /* get _dl_skip_args */ \n\
+ lrw r11, _dl_skip_args@GOTOFF\n\
+ addu r11, gb\n\
+ ldw r11, (r11, 0)\n\
+ /* store program entry address in r11 */ \n\
+ mov r10, a0\n\
+ /* Get argc */\n\
+ ldw a1, (sp, 0)\n\
+ /* Get **argv */\n\
+ mov a2, sp\n\
+ addi a2, 4\n\
+ cmpnei r11, 0\n\
+ bt .L_fixup_stack\n\
+.L_done_fixup:\n\
+ mov a3, a1\n\
+ lsli a3, 2\n\
+ add a3, a2\n\
+ addi a3, 4\n\
+ lrw a0, _rtld_local@GOTOFF\n\
+ addu a0, gb\n\
+ ldw a0, (a0, 0)\n\
+ lrw t1, _dl_init@PLT\n\
+ addu t1, gb\n\
+ ldw t1, (t1)\n\
+ jsr t1\n\
+ lrw a0, _dl_fini@GOTOFF\n\
+ addu a0, gb\n\
+ jmp r10\n\
+.L_fixup_stack:\n\
+ subu a1, r11\n\
+ lsli r11, 2\n\
+ addu sp, r11\n\
+ stw a1, (sp, 0)\n\
+ mov a2, sp\n\
+ addi a2, 4\n\
+ lrw a3, _dl_argv@GOTOFF\n\
+ addu a3, gb\n\
+ stw a2, (a3, 0)\n\
+ br .L_done_fixup\n\
+");
+
+/* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry or
+ TLS variable, so undefined references should not be allowed to
+ define the value.
+ ELF_RTYPE_CLASS_NOCOPY iff TYPE should not be allowed to resolve to one
+ of the main executable's symbols, as for a COPY reloc. */
+#ifndef RTLD_BOOTSTRAP
+# define elf_machine_type_class(type) \
+ ((((type) == R_CKCORE_JUMP_SLOT || (type) == R_CKCORE_TLS_DTPMOD32 \
+ || (type) == R_CKCORE_TLS_DTPOFF32 || (type) == R_CKCORE_TLS_TPOFF32) \
+ * ELF_RTYPE_CLASS_PLT) \
+ | (((type) == R_CKCORE_COPY) * ELF_RTYPE_CLASS_COPY))
+#else
+# define elf_machine_type_class(type) \
+ ((((type) == R_CKCORE_JUMP_SLOT \
+ | (((type) == R_CKCORE_COPY) * ELF_RTYPE_CLASS_COPY))
+#endif
+
+/* A reloc type used for ld.so cmdline arg lookups to reject PLT entries. */
+#define ELF_MACHINE_JMP_SLOT R_CKCORE_JUMP_SLOT
+
+/* C-SKY never uses Elf32_Rel relocations. */
+#define ELF_MACHINE_NO_REL 1
+#define ELF_MACHINE_NO_RELA 0
+
+/* We define an initialization functions. This is called very early in
+ _dl_sysdep_start. */
+#define DL_PLATFORM_INIT dl_platform_init ()
+
+static inline void __attribute__ ((unused))
+dl_platform_init (void)
+{
+ if (GLRO(dl_platform) != NULL && *GLRO(dl_platform) == '\0')
+ /* Avoid an empty string which would disturb us. */
+ GLRO(dl_platform) = NULL;
+}
+
+static inline Elf32_Addr
+elf_machine_fixup_plt (struct link_map *map, lookup_t t,
+ const ElfW(Sym) *refsym, const ElfW(Sym) *sym,
+ const Elf32_Rela *reloc,
+ Elf32_Addr *reloc_addr, Elf32_Addr value)
+{
+ return *reloc_addr = value;
+}
+
+/* Return the final value of a plt relocation. On the csky the JMP_SLOT
+ relocation ignores the addend. */
+static inline Elf32_Addr
+elf_machine_plt_value (struct link_map *map, const Elf32_Rela *reloc,
+ Elf32_Addr value)
+{
+ return value;
+}
+
+/* Names of the architecture-specific auditing callback functions. */
+#define ARCH_LA_PLTENTER csky_gnu_pltenter
+#define ARCH_LA_PLTEXIT csky_gnu_pltexit
+
+#endif /* !dl_machine_h */
+#ifdef RESOLVE_MAP
+
+/* Perform the relocation specified by RELOC and SYM (which is fully resolved).
+ MAP is the object containing the reloc. */
+
+auto inline void __attribute__ ((unused, always_inline))
+elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
+ const Elf32_Sym *sym, const struct r_found_version *version,
+ void *const reloc_addr_arg, int skip_ifunc)
+{
+ Elf32_Addr *const reloc_addr = reloc_addr_arg;
+ const unsigned int r_type = ELF32_R_TYPE (reloc->r_info);
+ unsigned short __attribute__ ((unused)) *opcode16_addr;
+ Elf32_Addr __attribute__ ((unused)) insn_opcode = 0x0;
+
+ if (__builtin_expect (r_type == R_CKCORE_RELATIVE, 0))
+ *reloc_addr = map->l_addr + reloc->r_addend;
+ else
+ {
+ const Elf32_Sym *const refsym = sym;
+ struct link_map *sym_map = RESOLVE_MAP (&sym, version, r_type);
+ ElfW(Addr) value = SYMBOL_ADDRESS (sym_map, sym, true);
+ opcode16_addr = (unsigned short *)reloc_addr;
+
+ switch (r_type)
+ {
+ case R_CKCORE_COPY:
+ if (sym == NULL)
+ /* This can happen in trace mode if an object could not be
+ found. */
+ break;
+ if (sym->st_size > refsym->st_size
+ || (sym->st_size < refsym->st_size && GLRO(dl_verbose)))
+ {
+ const char *strtab;
+
+ strtab = (const void *) D_PTR (map, l_info[DT_STRTAB]);
+ _dl_error_printf ("\
+%s: Symbol `%s' has different size in shared object, consider re-linking\n",
+ rtld_progname ?: "<program name unknown>",
+ strtab + refsym->st_name);
+ }
+ memcpy (reloc_addr_arg, (void *) value,
+ MIN (sym->st_size, refsym->st_size));
+ break;
+ case R_CKCORE_GLOB_DAT:
+ case R_CKCORE_JUMP_SLOT:
+ *reloc_addr = value;
+ break;
+ case R_CKCORE_ADDR32:
+ *reloc_addr = value + reloc->r_addend;
+ break;
+ case R_CKCORE_PCREL32:
+ *reloc_addr = value + reloc->r_addend - (Elf32_Addr) reloc_addr;
+ break;
+#if defined(__CK810__) || defined(__CK807__)
+ case R_CKCORE_ADDR_HI16:
+ insn_opcode = (*opcode16_addr << 16) | (*(opcode16_addr + 1));
+ insn_opcode = (insn_opcode & 0xffff0000)
+ | (((value + reloc->r_addend) >> 16) & 0xffff);
+ *(opcode16_addr++) = (unsigned short)(insn_opcode >> 16);
+ *opcode16_addr = (unsigned short)(insn_opcode & 0xffff);
+ break;
+ case R_CKCORE_ADDR_LO16:
+ insn_opcode = (*opcode16_addr << 16) | (*(opcode16_addr + 1));
+ insn_opcode = (insn_opcode & 0xffff0000)
+ | ((value + reloc->r_addend) & 0xffff);
+ *(opcode16_addr++) = (unsigned short)(insn_opcode >> 16);
+ *opcode16_addr = (unsigned short)(insn_opcode & 0xffff);
+ break;
+ case R_CKCORE_PCREL_IMM26BY2:
+ {
+ unsigned int offset = ((value + reloc->r_addend
+ - (unsigned int)reloc_addr) >> 1);
+ insn_opcode = (*opcode16_addr << 16) | (*(opcode16_addr + 1));
+ if (offset > 0x3ffffff){
+ const char *strtab;
+ strtab = (const void *) D_PTR (map, l_info[DT_STRTAB]);
+
+ _dl_error_printf ("\
+%s:The reloc R_CKCORE_PCREL_IMM26BY2 cannot reach the symbol '%s'.\n",
+ rtld_progname ?: "<program name unknown>",
+ strtab + refsym->st_name);
+ break;
+ }
+ insn_opcode = (insn_opcode & ~0x3ffffff) | offset;
+ *(opcode16_addr++) = (unsigned short)(insn_opcode >> 16);
+ *opcode16_addr = (unsigned short)(insn_opcode & 0xffff);
+ break;
+ }
+ case R_CKCORE_PCREL_JSR_IMM26BY2:
+ break;
+#endif
+#ifndef RTLD_BOOTSTRAP
+ case R_CKCORE_TLS_DTPMOD32:
+ /* Get the information from the link map returned by the
+ resolv function. */
+ if (sym_map != NULL)
+ *reloc_addr = sym_map->l_tls_modid;
+ break;
+ case R_CKCORE_TLS_DTPOFF32:
+ if (sym != NULL)
+ *reloc_addr =(sym == NULL ? 0 : sym->st_value) + reloc->r_addend;
+ break;
+ case R_CKCORE_TLS_TPOFF32:
+ if (sym != NULL)
+ {
+ CHECK_STATIC_TLS (map, sym_map);
+ *reloc_addr = (sym->st_value + sym_map->l_tls_offset
+ + reloc->r_addend);
+ }
+ break;
+#endif /* !RTLD_BOOTSTRAP */
+ case R_CKCORE_NONE:
+ break;
+ default:
+ break;
+ }
+ }
+}
+
+auto inline void __attribute__ ((unused, always_inline))
+elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc,
+ void *const reloc_addr_arg)
+{
+ Elf32_Addr *const reloc_addr = reloc_addr_arg;
+ *reloc_addr = l_addr + reloc->r_addend;
+}
+
+auto inline void __attribute__ ((unused, always_inline))
+elf_machine_lazy_rel (struct link_map *map,
+ Elf32_Addr l_addr, const Elf32_Rela *reloc,
+ int skip_ifunc)
+{
+ Elf32_Addr *const reloc_addr = (void *) (l_addr + reloc->r_offset);
+ const unsigned int r_type = ELF32_R_TYPE (reloc->r_info);
+ if (ELF32_R_TYPE (reloc->r_info) == R_CKCORE_JUMP_SLOT)
+ {
+ /* Check for unexpected PLT reloc type. */
+ if (__builtin_expect (r_type == R_CKCORE_JUMP_SLOT, 1))
+ {
+ if (__builtin_expect (map->l_mach.plt, 0) == 0)
+ *reloc_addr = l_addr + reloc->r_addend;
+ else
+ *reloc_addr = map->l_mach.plt;
+ }
+ }
+}
+
+#endif /* RESOLVE_MAP */
diff --git a/sysdeps/csky/dl-procinfo.c b/sysdeps/csky/dl-procinfo.c
new file mode 100644
index 0000000000..ee238300c9
--- /dev/null
+++ b/sysdeps/csky/dl-procinfo.c
@@ -0,0 +1,62 @@
+/* Data for C-SKY version of processor capability information.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+/* This information must be kept in sync with the _DL_PLATFORM_COUNT
+ definitions in procinfo.h.
+
+ If anything should be added here check whether the size of each string
+ is still ok with the given array size.
+
+ All the #ifdefs in the definitions are quite irritating but
+ necessary if we want to avoid duplicating the information. There
+ are three different modes:
+
+ - PROCINFO_DECL is defined. This means we are only interested in
+ declarations.
+
+ - PROCINFO_DECL is not defined:
+
+ + if SHARED is defined the file is included in an array
+ initializer. The .element = { ... } syntax is needed.
+
+ + if SHARED is not defined a normal array initialization is
+ needed.
+ */
+
+#ifndef PROCINFO_CLASS
+# define PROCINFO_CLASS
+#endif
+
+#if !defined PROCINFO_DECL && defined SHARED
+ ._dl_csky_platforms
+#else
+PROCINFO_CLASS const char _dl_csky_platforms[4][6]
+#endif
+#ifndef PROCINFO_DECL
+= {
+ "ck610", "ck807", "ck810", "ck860"
+ }
+#endif
+#if !defined SHARED || defined PROCINFO_DECL
+;
+#else
+,
+#endif
+
+#undef PROCINFO_DECL
+#undef PROCINFO_CLASS
diff --git a/sysdeps/csky/dl-procinfo.h b/sysdeps/csky/dl-procinfo.h
new file mode 100644
index 0000000000..1d5726bc3f
--- /dev/null
+++ b/sysdeps/csky/dl-procinfo.h
@@ -0,0 +1,59 @@
+/* C-SKY version of processor capability information handling macros.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+
+#ifndef _DL_PROCINFO_H
+#define _DL_PROCINFO_H 1
+
+#include <ldsodefs.h>
+
+/* Mask to filter out platforms. */
+#define _DL_HWCAP_PLATFORM (-1ULL)
+
+#define _DL_PLATFORMS_COUNT 4
+
+static inline int
+__attribute__ ((unused, always_inline))
+_dl_string_platform (const char *str)
+{
+ int i;
+
+ if (str != NULL)
+ for (i = 0; i < _DL_PLATFORMS_COUNT; ++i)
+ {
+ if (strcmp (str, GLRO(dl_csky_platforms)[i]) == 0)
+ return i;
+ }
+ return -1;
+};
+
+/* We cannot provide a general printing function. */
+#define _dl_procinfo(word, val) -1
+
+/* There are no hardware capabilities defined. */
+#define _dl_hwcap_string(idx) ""
+
+/* By default there is no important hardware capability. */
+#define HWCAP_IMPORTANT (0)
+
+/* We don't have any hardware capabilities. */
+#define _DL_HWCAP_COUNT 0
+
+#define _dl_string_hwcap(str) (-1)
+
+#endif /* dl-procinfo.h */
diff --git a/sysdeps/csky/dl-sysdep.h b/sysdeps/csky/dl-sysdep.h
new file mode 100644
index 0000000000..e5a04ac83a
--- /dev/null
+++ b/sysdeps/csky/dl-sysdep.h
@@ -0,0 +1,23 @@
+/* System-specific settings for dynamic linker code. C-SKY version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include_next <dl-sysdep.h>
+
+/* _dl_argv cannot be attribute_relro, because _dl_start_user
+ might write into it after _dl_start returns. */
+#define DL_ARGV_NOT_RELRO 1
diff --git a/sysdeps/csky/dl-tls.h b/sysdeps/csky/dl-tls.h
new file mode 100644
index 0000000000..252f446940
--- /dev/null
+++ b/sysdeps/csky/dl-tls.h
@@ -0,0 +1,26 @@
+/* Thread-local storage handling in the ELF dynamic linker. C-SKY version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+/* Type used for the representation of TLS information in the GOT. */
+typedef struct
+{
+ unsigned long int ti_module;
+ unsigned long int ti_offset;
+} tls_index;
+
+extern void *__tls_get_addr (tls_index *ti);
diff --git a/sysdeps/csky/fpu/fclrexcpt.c b/sysdeps/csky/fpu/fclrexcpt.c
new file mode 100644
index 0000000000..59b08e5929
--- /dev/null
+++ b/sysdeps/csky/fpu/fclrexcpt.c
@@ -0,0 +1,42 @@
+/* Clear given exceptions in current floating-point environment.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <fenv.h>
+#include <fenv_libc.h>
+#include <fpu_control.h>
+
+int
+feclearexcept (int excepts)
+{
+ int fpsr;
+
+ /* Mask out unsupported bits/exceptions. */
+ excepts &= FE_ALL_EXCEPT;
+
+ /* Read the complete control word. */
+ _FPU_GETFPSR (fpsr);
+
+ /* Clear the relevant bits. */
+ fpsr &= ~(excepts | (excepts << CAUSE_SHIFT));
+
+ /* Put the new data in effect. */
+ _FPU_SETFPSR (fpsr);
+
+ return 0;
+}
+libm_hidden_def (feclearexcept)
diff --git a/sysdeps/csky/fpu/fedisblxcpt.c b/sysdeps/csky/fpu/fedisblxcpt.c
new file mode 100644
index 0000000000..200582dc93
--- /dev/null
+++ b/sysdeps/csky/fpu/fedisblxcpt.c
@@ -0,0 +1,41 @@
+/* Disable floating-point exceptions.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <fenv.h>
+#include <fenv_libc.h>
+#include <fpu_control.h>
+
+int
+fedisableexcept (int excepts)
+{
+ unsigned int new_exc, old_exc;
+
+ /* Get the current control word. */
+ _FPU_GETCW (new_exc);
+
+ old_exc = (new_exc & ENABLE_MASK) >> ENABLE_SHIFT;
+
+ /* Get the except disable mask. */
+ excepts &= FE_ALL_EXCEPT;
+ new_exc &= ~(excepts << ENABLE_SHIFT);
+
+ /* Put the new data in effect. */
+ _FPU_SETCW (new_exc);
+
+ return old_exc;
+}
diff --git a/sysdeps/csky/fpu/feenablxcpt.c b/sysdeps/csky/fpu/feenablxcpt.c
new file mode 100644
index 0000000000..d349c027de
--- /dev/null
+++ b/sysdeps/csky/fpu/feenablxcpt.c
@@ -0,0 +1,40 @@
+/* Enable floating-point exceptions.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <fenv.h>
+#include <fenv_libc.h>
+#include <fpu_control.h>
+
+int
+feenableexcept (int excepts)
+{
+ unsigned int new_exc, old_exc;
+
+ /* Get the current control word. */
+ _FPU_GETCW (new_exc);
+
+ old_exc = (new_exc & ENABLE_MASK) >> ENABLE_SHIFT;
+
+ excepts &= FE_ALL_EXCEPT;
+
+ new_exc |= excepts << ENABLE_SHIFT;
+
+ _FPU_SETCW (new_exc);
+
+ return old_exc;
+}
diff --git a/sysdeps/csky/fpu/fegetenv.c b/sysdeps/csky/fpu/fegetenv.c
new file mode 100644
index 0000000000..7aef08f70d
--- /dev/null
+++ b/sysdeps/csky/fpu/fegetenv.c
@@ -0,0 +1,37 @@
+/* Store current floating-point environment.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <fenv.h>
+#include <fpu_control.h>
+
+int
+__fegetenv (fenv_t *envp)
+{
+ unsigned int fpcr;
+ unsigned int fpsr;
+
+ _FPU_GETCW (fpcr);
+ _FPU_GETFPSR (fpsr);
+ envp->__fpcr = fpcr;
+ envp->__fpsr = fpsr;
+
+ return 0;
+}
+libm_hidden_def (__fegetenv)
+weak_alias (__fegetenv, fegetenv)
+libm_hidden_weak (fegetenv)
diff --git a/sysdeps/csky/fpu/fegetexcept.c b/sysdeps/csky/fpu/fegetexcept.c
new file mode 100644
index 0000000000..f071000a55
--- /dev/null
+++ b/sysdeps/csky/fpu/fegetexcept.c
@@ -0,0 +1,32 @@
+/* Get enabled floating-point exceptions.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <fenv.h>
+#include <fenv_libc.h>
+#include <fpu_control.h>
+
+int
+fegetexcept (void)
+{
+ unsigned int exc;
+
+ /* Get the current control word. */
+ _FPU_GETCW (exc);
+
+ return (exc & ENABLE_MASK) >> ENABLE_SHIFT;
+}
diff --git a/sysdeps/csky/fpu/fegetmode.c b/sysdeps/csky/fpu/fegetmode.c
new file mode 100644
index 0000000000..3d585ca081
--- /dev/null
+++ b/sysdeps/csky/fpu/fegetmode.c
@@ -0,0 +1,28 @@
+/* Store current floating-point control modes.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <fenv.h>
+#include <fpu_control.h>
+
+int
+fegetmode (femode_t *modep)
+{
+ _FPU_GETCW (*modep);
+
+ return 0;
+}
diff --git a/sysdeps/csky/fpu/fegetround.c b/sysdeps/csky/fpu/fegetround.c
new file mode 100644
index 0000000000..8d7f13155a
--- /dev/null
+++ b/sysdeps/csky/fpu/fegetround.c
@@ -0,0 +1,34 @@
+/* Return current rounding direction.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <fenv.h>
+#include <fpu_control.h>
+
+int
+__fegetround (void)
+{
+ unsigned int cw;
+
+ /* Get control word. */
+ _FPU_GETCW (cw);
+
+ return cw & __FE_ROUND_MASK;
+}
+libm_hidden_def (__fegetround)
+weak_alias (__fegetround, fegetround)
+libm_hidden_weak (fegetround)
diff --git a/sysdeps/csky/fpu/feholdexcpt.c b/sysdeps/csky/fpu/feholdexcpt.c
new file mode 100644
index 0000000000..bcb5be7e5a
--- /dev/null
+++ b/sysdeps/csky/fpu/feholdexcpt.c
@@ -0,0 +1,34 @@
+/* Store current floating-point environment and clear exceptions.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <fenv.h>
+#include <fpu_control.h>
+#include <fenv_libc.h>
+#include <fenv_private.h>
+
+#include <stdio.h>
+
+int
+__feholdexcept (fenv_t *envp)
+{
+ libc_feholdexcept_vfp (envp);
+ return 0;
+}
+libm_hidden_def (__feholdexcept)
+weak_alias (__feholdexcept, feholdexcept)
+libm_hidden_weak (feholdexcept)
diff --git a/sysdeps/csky/fpu/fenv_libc.h b/sysdeps/csky/fpu/fenv_libc.h
new file mode 100644
index 0000000000..9a114f61ac
--- /dev/null
+++ b/sysdeps/csky/fpu/fenv_libc.h
@@ -0,0 +1,30 @@
+/* fpu registers environment. C-SKY version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _FENV_LIBC_H
+#define _FENV_LIBC_H 1
+
+/* Mask for enabling exceptions and for the CAUSE bits. */
+#define ENABLE_MASK 0x0003FU
+#define CAUSE_MASK 0x3F000U
+
+/* Shift for FE_* flags to get up to the ENABLE bits and the CAUSE bits. */
+#define ENABLE_SHIFT 0
+#define CAUSE_SHIFT 8
+
+#endif /* fenv_libc.h */
diff --git a/sysdeps/csky/fpu/fenv_private.h b/sysdeps/csky/fpu/fenv_private.h
new file mode 100644
index 0000000000..17a9c946b2
--- /dev/null
+++ b/sysdeps/csky/fpu/fenv_private.h
@@ -0,0 +1,280 @@
+/* Private floating point rounding and exceptions handling. C-SKY version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef CSKY_FENV_PRIVATE_H
+#define CSKY_FENV_PRIVATE_H 1
+
+#include <fenv.h>
+#include <fpu_control.h>
+#include <fenv_libc.h>
+
+static __always_inline void
+libc_feholdexcept_vfp (fenv_t *envp)
+{
+ fpu_control_t fpsr, fpcr;
+
+ _FPU_GETCW (fpcr);
+ envp->__fpcr = fpcr;
+
+ _FPU_GETFPSR (fpsr);
+ envp->__fpsr = fpsr;
+
+ /* Now set all exceptions to non-stop. */
+ fpcr &= ~FE_ALL_EXCEPT;
+
+ /* And clear all exception flags. */
+ fpsr &= ~(FE_ALL_EXCEPT << CAUSE_SHIFT);
+
+ _FPU_SETFPSR (fpsr);
+
+ _FPU_SETCW (fpcr);
+}
+
+static __always_inline void
+libc_fesetround_vfp (int round)
+{
+ fpu_control_t fpcr;
+
+ _FPU_GETCW (fpcr);
+
+ /* Set new rounding mode if different. */
+ if (__glibc_unlikely ((fpcr & FE_DOWNWARD) != round))
+ _FPU_SETCW ((fpcr & ~FE_DOWNWARD) | round);
+}
+
+static __always_inline void
+libc_feholdexcept_setround_vfp (fenv_t *envp, int round)
+{
+ fpu_control_t fpsr, fpcr;
+
+ _FPU_GETCW (fpcr);
+ envp->__fpcr = fpcr;
+
+ _FPU_GETFPSR (fpsr);
+ envp->__fpsr = fpsr;
+
+ /* Clear exception flags, set all exceptions to non-stop,
+ and set new rounding mode. */
+ fpsr &= ~(FE_ALL_EXCEPT << CAUSE_SHIFT);
+ _FPU_SETFPSR (fpsr);
+
+ fpcr &= ~(FE_ALL_EXCEPT | FE_DOWNWARD);
+ _FPU_SETCW (fpcr | round);
+}
+
+static __always_inline void
+libc_feholdsetround_vfp (fenv_t *envp, int round)
+{
+ fpu_control_t fpcr;
+
+ _FPU_GETCW (fpcr);
+ envp->__fpcr = fpcr;
+
+ /* Set new rounding mode if different. */
+ if (__glibc_unlikely ((fpcr & FE_DOWNWARD) != round))
+ _FPU_SETCW ((fpcr & ~FE_DOWNWARD) | round);
+}
+
+static __always_inline void
+libc_feresetround_vfp (fenv_t *envp)
+{
+ fpu_control_t fpcr, round;
+
+ _FPU_GETCW (fpcr);
+
+ /* Check whether rounding modes are different. */
+ round = (envp->__fpcr ^ fpcr) & FE_DOWNWARD;
+
+ /* Restore the rounding mode if it was changed. */
+ if (__glibc_unlikely (round != 0))
+ _FPU_SETCW (fpcr ^ round);
+}
+
+static __always_inline int
+libc_fetestexcept_vfp (int ex)
+{
+ fpu_control_t fpsr;
+
+ _FPU_GETFPSR (fpsr);
+ fpsr = fpsr >> CAUSE_SHIFT;
+ return fpsr & ex & FE_ALL_EXCEPT;
+}
+
+static __always_inline void
+libc_fesetenv_vfp (const fenv_t *envp)
+{
+ fpu_control_t fpcr, fpsr, new_fpcr, new_fpsr;
+
+ _FPU_GETCW (fpcr);
+ _FPU_GETFPSR (fpsr);
+
+ new_fpcr = envp->__fpcr;
+ new_fpsr = envp->__fpsr;
+
+ if (__glibc_unlikely (fpsr ^ new_fpsr) != 0)
+ _FPU_SETFPSR (new_fpsr);
+
+ if (__glibc_unlikely (fpcr ^ new_fpcr) != 0)
+ _FPU_SETCW (new_fpcr);
+}
+
+static __always_inline int
+libc_feupdateenv_test_vfp (const fenv_t *envp, int ex)
+{
+ fpu_control_t fpcr, fpsr, new_fpcr, new_fpsr, excepts;
+
+ _FPU_GETCW (fpcr);
+ _FPU_GETFPSR (fpsr);
+
+ /* Merge current exception flags with the saved fenv. */
+ excepts = (fpsr >> CAUSE_SHIFT) & FE_ALL_EXCEPT;
+ new_fpcr = envp->__fpcr;
+ new_fpsr = envp->__fpsr | (excepts << CAUSE_SHIFT);
+
+ /* Write FCR and FESR if different. */
+ if (__glibc_unlikely (fpsr ^ new_fpsr) != 0)
+ _FPU_SETFPSR (new_fpsr);
+
+ if (__glibc_unlikely (fpcr ^ new_fpcr) != 0)
+ _FPU_SETCW (new_fpcr);
+
+ /* Raise the exceptions if enabled in the new FP state. */
+ if (__glibc_unlikely (excepts & new_fpcr))
+ __feraiseexcept (excepts);
+
+ return excepts & ex;
+}
+
+static __always_inline void
+libc_feupdateenv_vfp (const fenv_t *envp)
+{
+ libc_feupdateenv_test_vfp (envp, 0);
+}
+
+static __always_inline void
+libc_feholdsetround_vfp_ctx (struct rm_ctx *ctx, int r)
+{
+ fpu_control_t fpcr, fpsr, round;
+
+ _FPU_GETCW (fpcr);
+ _FPU_GETFPSR (fpsr);
+ ctx->updated_status = false;
+ ctx->env.__fpcr = fpcr;
+ ctx->env.__fpsr = fpsr;
+
+ /* Check whether rounding modes are different. */
+ round = (fpcr ^ r) & FE_DOWNWARD;
+
+ /* Set the rounding mode if changed. */
+ if (__glibc_unlikely (round != 0))
+ {
+ ctx->updated_status = true;
+ _FPU_SETCW (fpcr ^ round);
+ }
+}
+
+static __always_inline void
+libc_feresetround_vfp_ctx (struct rm_ctx *ctx)
+{
+ /* Restore the rounding mode if updated. */
+ if (__glibc_unlikely (ctx->updated_status))
+ {
+ fpu_control_t fpcr;
+
+ _FPU_GETCW (fpcr);
+ fpcr = (fpcr & ~FE_DOWNWARD) | (ctx->env.__fpcr & FE_DOWNWARD);
+ _FPU_SETCW (fpcr);
+ }
+}
+
+static __always_inline void
+libc_fesetenv_vfp_ctx (struct rm_ctx *ctx)
+{
+ fpu_control_t fpcr, fpsr, new_fpcr, new_fpsr;
+
+ _FPU_GETCW (fpcr);
+ _FPU_GETFPSR (fpsr);
+
+ new_fpcr = ctx->env.__fpcr;
+ new_fpsr = ctx->env.__fpsr;
+
+ if (__glibc_unlikely (fpsr ^ new_fpsr) != 0)
+ _FPU_SETFPSR (new_fpsr);
+
+ if (__glibc_unlikely (fpcr ^ new_fpcr) != 0)
+ _FPU_SETCW (new_fpcr);
+}
+
+#define libc_feholdexcept libc_feholdexcept_vfp
+#define libc_feholdexceptf libc_feholdexcept_vfp
+#define libc_feholdexceptl libc_feholdexcept_vfp
+
+#define libc_fesetround libc_fesetround_vfp
+#define libc_fesetroundf libc_fesetround_vfp
+#define libc_fesetroundl libc_fesetround_vfp
+
+#define libc_feresetround libc_feresetround_vfp
+#define libc_feresetroundf libc_feresetround_vfp
+#define libc_feresetroundl libc_feresetround_vfp
+
+#define libc_feresetround_noex libc_fesetenv_vfp
+#define libc_feresetround_noexf libc_fesetenv_vfp
+#define libc_feresetround_noexl libc_fesetenv_vfp
+
+#define libc_feholdexcept_setround libc_feholdexcept_setround_vfp
+#define libc_feholdexcept_setroundf libc_feholdexcept_setround_vfp
+#define libc_feholdexcept_setroundl libc_feholdexcept_setround_vfp
+
+#define libc_feholdsetround libc_feholdsetround_vfp
+#define libc_feholdsetroundf libc_feholdsetround_vfp
+#define libc_feholdsetroundl libc_feholdsetround_vfp
+
+#define libc_fetestexcept libc_fetestexcept_vfp
+#define libc_fetestexceptf libc_fetestexcept_vfp
+#define libc_fetestexceptl libc_fetestexcept_vfp
+
+#define libc_fesetenv libc_fesetenv_vfp
+#define libc_fesetenvf libc_fesetenv_vfp
+#define libc_fesetenvl libc_fesetenv_vfp
+
+#define libc_feupdateenv libc_feupdateenv_vfp
+#define libc_feupdateenvf libc_feupdateenv_vfp
+#define libc_feupdateenvl libc_feupdateenv_vfp
+
+#define libc_feupdateenv_test libc_feupdateenv_test_vfp
+#define libc_feupdateenv_testf libc_feupdateenv_test_vfp
+#define libc_feupdateenv_testl libc_feupdateenv_test_vfp
+
+/* We have support for rounding mode context. */
+#define HAVE_RM_CTX 1
+
+#define libc_feholdsetround_ctx libc_feholdsetround_vfp_ctx
+#define libc_feresetround_ctx libc_feresetround_vfp_ctx
+#define libc_feresetround_noex_ctx libc_fesetenv_vfp_ctx
+
+#define libc_feholdsetroundf_ctx libc_feholdsetround_vfp_ctx
+#define libc_feresetroundf_ctx libc_feresetround_vfp_ctx
+#define libc_feresetround_noexf_ctx libc_fesetenv_vfp_ctx
+
+#define libc_feholdsetroundl_ctx libc_feholdsetround_vfp_ctx
+#define libc_feresetroundl_ctx libc_feresetround_vfp_ctx
+#define libc_feresetround_noexl_ctx libc_fesetenv_vfp_ctx
+
+#include_next <fenv_private.h>
+
+#endif /* CSKY_FENV_PRIVATE_H */
diff --git a/sysdeps/csky/fpu/fesetenv.c b/sysdeps/csky/fpu/fesetenv.c
new file mode 100644
index 0000000000..af214652d5
--- /dev/null
+++ b/sysdeps/csky/fpu/fesetenv.c
@@ -0,0 +1,59 @@
+/* Install given floating-point environment.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <fenv.h>
+#include <fpu_control.h>
+
+int
+__fesetenv (const fenv_t *envp)
+{
+ unsigned int fpcr;
+ unsigned int fpsr;
+
+ _FPU_GETCW (fpcr);
+ _FPU_GETFPSR (fpsr);
+
+ fpcr &= _FPU_RESERVED;
+ fpsr &= _FPU_FPSR_RESERVED;
+
+ if (envp == FE_DFL_ENV)
+ {
+ fpcr |= _FPU_DEFAULT;
+ fpsr |= _FPU_FPSR_DEFAULT;
+ }
+ else if (envp == FE_NOMASK_ENV)
+ {
+ fpcr |= _FPU_FPCR_IEEE;
+ fpsr |= _FPU_FPSR_IEEE;
+ }
+ else
+ {
+ fpcr |= envp->__fpcr & ~_FPU_RESERVED;
+ fpsr |= envp->__fpsr & ~_FPU_FPSR_RESERVED;
+ }
+
+ _FPU_SETFPSR (fpsr);
+
+ _FPU_SETCW (fpcr);
+
+ /* Success. */
+ return 0;
+}
+libm_hidden_def (__fesetenv)
+weak_alias (__fesetenv, fesetenv)
+libm_hidden_weak (fesetenv)
diff --git a/sysdeps/csky/fpu/fesetexcept.c b/sysdeps/csky/fpu/fesetexcept.c
new file mode 100644
index 0000000000..705e019cd7
--- /dev/null
+++ b/sysdeps/csky/fpu/fesetexcept.c
@@ -0,0 +1,33 @@
+/* Set given exception flags.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <fenv.h>
+#include <fpu_control.h>
+#include <fenv_libc.h>
+
+int
+fesetexcept (int excepts)
+{
+ fpu_control_t fpsr, new_fpsr;
+ _FPU_GETFPSR (fpsr);
+ new_fpsr = fpsr | ((excepts & FE_ALL_EXCEPT) << CAUSE_SHIFT);
+ if (new_fpsr != fpsr)
+ _FPU_SETFPSR (new_fpsr);
+
+ return 0;
+}
diff --git a/sysdeps/csky/fpu/fesetmode.c b/sysdeps/csky/fpu/fesetmode.c
new file mode 100644
index 0000000000..8e8095fdc1
--- /dev/null
+++ b/sysdeps/csky/fpu/fesetmode.c
@@ -0,0 +1,33 @@
+/* Install given floating-point control modes.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <fenv.h>
+#include <fpu_control.h>
+
+int
+fesetmode (const femode_t *modep)
+{
+ femode_t mode;
+ if (modep == FE_DFL_MODE)
+ mode = _FPU_DEFAULT;
+ else
+ mode = *modep;
+ _FPU_SETCW (mode);
+
+ return 0;
+}
diff --git a/sysdeps/csky/fpu/fesetround.c b/sysdeps/csky/fpu/fesetround.c
new file mode 100644
index 0000000000..f33fa3ff9e
--- /dev/null
+++ b/sysdeps/csky/fpu/fesetround.c
@@ -0,0 +1,32 @@
+/* Set current rounding direction.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <fenv.h>
+#include <fpu_control.h>
+#include <fenv_private.h>
+
+#include <stdio.h>
+int
+__fesetround (int round)
+{
+ libc_fesetround_vfp (round);
+ return 0;
+}
+libm_hidden_def (__fesetround)
+weak_alias (__fesetround, fesetround)
+libm_hidden_weak (fesetround)
diff --git a/sysdeps/csky/fpu/feupdateenv.c b/sysdeps/csky/fpu/feupdateenv.c
new file mode 100644
index 0000000000..d1d3d05a11
--- /dev/null
+++ b/sysdeps/csky/fpu/feupdateenv.c
@@ -0,0 +1,46 @@
+/* Install given floating-point environment and raise exceptions.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <fenv.h>
+#include <fpu_control.h>
+#include <fenv_libc.h>
+#include <fenv_private.h>
+#include <stdio.h>
+
+int
+__feupdateenv (const fenv_t *envp)
+{
+ int temp;
+
+ /* Save current exceptions. */
+ _FPU_GETFPSR (temp);
+ temp = (temp >> CAUSE_SHIFT) & FE_ALL_EXCEPT;
+ /* Install new environment. */
+ __fesetenv (envp);
+
+ /* Raise the safed exception. Incidently for us the implementation
+ defined format of the values in objects of type fexcept_t is the
+ same as the ones specified using the FE_* constants. */
+ feraiseexcept (temp);
+
+ /* Success. */
+ return 0;
+}
+libm_hidden_def (__feupdateenv)
+weak_alias (__feupdateenv, feupdateenv)
+libm_hidden_weak (feupdateenv)
diff --git a/sysdeps/csky/fpu/fgetexcptflg.c b/sysdeps/csky/fpu/fgetexcptflg.c
new file mode 100644
index 0000000000..9d93ae65c8
--- /dev/null
+++ b/sysdeps/csky/fpu/fgetexcptflg.c
@@ -0,0 +1,32 @@
+/* Store current representation for exceptions.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <fenv.h>
+#include <fpu_control.h>
+#include <fenv_libc.h>
+#include <fenv_private.h>
+#include <stdio.h>
+
+int
+fegetexceptflag (fexcept_t *flagp, int excepts)
+{
+ *flagp = libc_fetestexcept_vfp (excepts);
+
+ /* Success. */
+ return 0;
+}
diff --git a/sysdeps/csky/fpu/fix-fp-int-convert-overflow.h b/sysdeps/csky/fpu/fix-fp-int-convert-overflow.h
new file mode 100644
index 0000000000..e99fdb6f5d
--- /dev/null
+++ b/sysdeps/csky/fpu/fix-fp-int-convert-overflow.h
@@ -0,0 +1,33 @@
+/* Fix for conversion of floating point to integer overflow. C-SKY version.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef FIX_FP_INT_CONVERT_OVERFLOW_H
+#define FIX_FP_INT_CONVERT_OVERFLOW_H 1
+
+/* Define these macros to 1 to workaround conversions of out-of-range
+ floating-point numbers to integer types failing to raise the
+ "invalid" exception, or raising spurious "inexact" or other
+ exceptions. */
+#define FIX_FLT_LONG_CONVERT_OVERFLOW 1
+#define FIX_FLT_LLONG_CONVERT_OVERFLOW 1
+#define FIX_DBL_LONG_CONVERT_OVERFLOW 1
+#define FIX_DBL_LLONG_CONVERT_OVERFLOW 1
+#define FIX_LDBL_LONG_CONVERT_OVERFLOW 1
+#define FIX_LDBL_LLONG_CONVERT_OVERFLOW 1
+
+#endif /* fix-fp-int-convert-overflow.h */
diff --git a/sysdeps/csky/fpu/fraiseexcpt.c b/sysdeps/csky/fpu/fraiseexcpt.c
new file mode 100644
index 0000000000..bc67afc2a1
--- /dev/null
+++ b/sysdeps/csky/fpu/fraiseexcpt.c
@@ -0,0 +1,126 @@
+/* Raise given exceptions.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <fenv.h>
+#include <fenv_libc.h>
+#include <fpu_control.h>
+#include <float.h>
+#include <math.h>
+
+int
+__feraiseexcept (int excepts)
+{
+ /* Raise exceptions represented by EXCEPTS. But we must raise only one
+ signal at a time. It is important that if the overflow/underflow
+ exception and the divide by zero exception are given at the same
+ time, the overflow/underflow exception follows the divide by zero
+ exception. */
+
+# ifndef __csky_fpuv1__
+ /* First: invalid exception. */
+ if (FE_INVALID & excepts)
+ {
+ /* One example of a invalid operation is 0 * Infinity. */
+ float x = HUGE_VALF, y = 0.0f;
+ __asm__ __volatile__ ("fmuls %0, %0, %1" : "+v" (x) : "v" (y));
+ }
+
+ /* Next: division by zero. */
+ if (FE_DIVBYZERO & excepts)
+ {
+ float x = 1.0f, y = 0.0f;
+ __asm__ __volatile__ ("fdivs %0, %0, %1" : "+v" (x) : "v" (y));
+ }
+
+ /* Next: overflow. */
+ if (FE_OVERFLOW & excepts)
+ {
+ float x = FLT_MAX;
+ __asm__ __volatile__ ("fmuls %0, %0, %0" : "+v" (x));
+ }
+ /* Next: underflow. */
+ if (FE_UNDERFLOW & excepts)
+ {
+ float x = -FLT_MIN;
+
+ __asm__ __volatile__ ("fmuls %0, %0, %0" : "+v" (x));
+ }
+
+ /* Last: inexact. */
+ if (FE_INEXACT & excepts)
+ {
+ float x = 1.0f, y = 3.0f;
+ __asm__ __volatile__ ("fdivs %0, %0, %1" : "+v" (x) : "v" (y));
+ }
+
+ if (__FE_DENORMAL & excepts)
+ {
+ double x = 4.9406564584124654e-324;
+ __asm__ __volatile__ ("fstod %0, %0" : "+v" (x));
+ }
+# else
+ int tmp = 0;
+ /* First: invalid exception. */
+ if (FE_INVALID & excepts)
+ {
+ /* One example of a invalid operation is 0 * Infinity. */
+ float x = HUGE_VALF, y = 0.0f;
+ __asm__ __volatile__ ("fmuls %0, %0, %2, %1"
+ : "+f" (x), "+r"(tmp) : "f" (y));
+ }
+
+ /* Next: division by zero. */
+ if (FE_DIVBYZERO & excepts)
+ {
+ float x = 1.0f, y = 0.0f;
+ __asm__ __volatile__ ("fdivs %0, %0, %2, %1"
+ : "+f" (x), "+r"(tmp) : "f" (y));
+ }
+
+ /* Next: overflow. */
+ if (FE_OVERFLOW & excepts)
+ {
+ float x = FLT_MAX, y = FLT_MAX;
+ __asm__ __volatile__ ("fmuls %0, %0, %2, %1"
+ : "+f" (x), "+r"(tmp) : "f" (y));
+ }
+
+ /* Next: underflow. */
+ if (FE_UNDERFLOW & excepts)
+ {
+ float x = -FLT_MIN, y = -FLT_MIN;
+
+ __asm__ __volatile__ ("fmuls %0, %0, %2, %1"
+ : "+f" (x), "+r"(tmp) : "f" (y));
+ }
+
+ /* Last: inexact. */
+ if (FE_INEXACT & excepts)
+ {
+ float x = 1.0f, y = 3.0f;
+ __asm__ __volatile__ ("fdivs %0, %0, %2, %1"
+ : "+f" (x), "+r"(tmp) : "f" (y));
+ }
+# endif /* __csky_fpuv2__ */
+
+ /* Success. */
+ return 0;
+}
+libm_hidden_def (__feraiseexcept)
+weak_alias (__feraiseexcept, feraiseexcept)
+libm_hidden_weak (feraiseexcept)
diff --git a/sysdeps/csky/fpu/fsetexcptflg.c b/sysdeps/csky/fpu/fsetexcptflg.c
new file mode 100644
index 0000000000..6642c40243
--- /dev/null
+++ b/sysdeps/csky/fpu/fsetexcptflg.c
@@ -0,0 +1,43 @@
+/* Set floating-point environment exception handling.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <fenv.h>
+#include <fpu_control.h>
+#include <fenv_libc.h>
+
+int
+fesetexceptflag (const fexcept_t *flagp, int excepts)
+{
+ fpu_control_t temp;
+
+ /* Get the current exceptions. */
+ _FPU_GETFPSR (temp);
+
+ /* Make sure the flags we want restored are legal. */
+ excepts &= FE_ALL_EXCEPT;
+
+ /* Now clear the bits called for, and copy them in from flagp. Note that
+ we ignore all non-flag bits from *flagp, so they don't matter. */
+ temp = ((temp >> CAUSE_SHIFT) & ~excepts) | (*flagp & excepts);
+ temp = temp << CAUSE_SHIFT;
+
+ _FPU_SETFPSR (temp);
+
+ /* Success. */
+ return 0;
+}
diff --git a/sysdeps/csky/fpu/ftestexcept.c b/sysdeps/csky/fpu/ftestexcept.c
new file mode 100644
index 0000000000..24ecc09348
--- /dev/null
+++ b/sysdeps/csky/fpu/ftestexcept.c
@@ -0,0 +1,30 @@
+/* Test exception in current environment.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <fenv.h>
+#include <fpu_control.h>
+#include <fenv_libc.h>
+#include <fenv_private.h>
+#include <stdio.h>
+
+int
+fetestexcept (int excepts)
+{
+ return libc_fetestexcept_vfp (excepts);
+}
+libm_hidden_def (fetestexcept)
diff --git a/sysdeps/csky/fpu/libm-test-ulps b/sysdeps/csky/fpu/libm-test-ulps
new file mode 100644
index 0000000000..508f4693bc
--- /dev/null
+++ b/sysdeps/csky/fpu/libm-test-ulps
@@ -0,0 +1,1640 @@
+# Begin of automatic generation
+
+# Maximal error of functions:
+Function: "acos":
+float: 1
+ifloat: 1
+
+Function: "acos_downward":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "acos_towardzero":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "acos_upward":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "acosh":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: "acosh_downward":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: "acosh_towardzero":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: "acosh_upward":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: "asin":
+float: 1
+ifloat: 1
+
+Function: "asin_downward":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "asin_towardzero":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "asin_upward":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "asinh":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "asinh_downward":
+double: 3
+float: 3
+idouble: 3
+ifloat: 3
+
+Function: "asinh_towardzero":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: "asinh_upward":
+double: 3
+float: 3
+idouble: 3
+ifloat: 3
+
+Function: "atan":
+float: 1
+ifloat: 1
+
+Function: "atan2":
+float: 1
+ifloat: 1
+
+Function: "atan2_downward":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: "atan2_towardzero":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: "atan2_upward":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: "atan_downward":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: "atan_towardzero":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "atan_upward":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: "atanh":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: "atanh_downward":
+double: 3
+float: 3
+idouble: 3
+ifloat: 3
+
+Function: "atanh_towardzero":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: "atanh_upward":
+double: 3
+float: 3
+idouble: 3
+ifloat: 3
+
+Function: "cabs":
+double: 1
+idouble: 1
+
+Function: "cabs_downward":
+double: 1
+idouble: 1
+
+Function: "cabs_towardzero":
+double: 1
+idouble: 1
+
+Function: "cabs_upward":
+double: 1
+idouble: 1
+
+Function: Real part of "cacos":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: Imaginary part of "cacos":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Real part of "cacos_downward":
+double: 3
+float: 2
+idouble: 3
+ifloat: 2
+
+Function: Imaginary part of "cacos_downward":
+double: 5
+float: 3
+idouble: 5
+ifloat: 3
+
+Function: Real part of "cacos_towardzero":
+double: 3
+float: 2
+idouble: 3
+ifloat: 2
+
+Function: Imaginary part of "cacos_towardzero":
+double: 4
+float: 2
+idouble: 4
+ifloat: 2
+
+Function: Real part of "cacos_upward":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Imaginary part of "cacos_upward":
+double: 5
+float: 7
+idouble: 5
+ifloat: 7
+
+Function: Real part of "cacosh":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Imaginary part of "cacosh":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: Real part of "cacosh_downward":
+double: 4
+float: 2
+idouble: 4
+ifloat: 2
+
+Function: Imaginary part of "cacosh_downward":
+double: 3
+float: 3
+idouble: 3
+ifloat: 3
+
+Function: Real part of "cacosh_towardzero":
+double: 4
+float: 2
+idouble: 4
+ifloat: 2
+
+Function: Imaginary part of "cacosh_towardzero":
+double: 3
+float: 2
+idouble: 3
+ifloat: 2
+
+Function: Real part of "cacosh_upward":
+double: 4
+float: 3
+idouble: 4
+ifloat: 3
+
+Function: Imaginary part of "cacosh_upward":
+double: 3
+float: 2
+idouble: 3
+ifloat: 2
+
+Function: "carg":
+float: 1
+ifloat: 1
+
+Function: "carg_downward":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: "carg_towardzero":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: "carg_upward":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: Real part of "casin":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Imaginary part of "casin":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Real part of "casin_downward":
+double: 3
+float: 2
+idouble: 3
+ifloat: 2
+
+Function: Imaginary part of "casin_downward":
+double: 5
+float: 3
+idouble: 5
+ifloat: 3
+
+Function: Real part of "casin_towardzero":
+double: 3
+float: 1
+idouble: 3
+ifloat: 1
+
+Function: Imaginary part of "casin_towardzero":
+double: 4
+float: 2
+idouble: 4
+ifloat: 2
+
+Function: Real part of "casin_upward":
+double: 3
+float: 2
+idouble: 3
+ifloat: 2
+
+Function: Imaginary part of "casin_upward":
+double: 5
+float: 7
+idouble: 5
+ifloat: 7
+
+Function: Real part of "casinh":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Imaginary part of "casinh":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Real part of "casinh_downward":
+double: 5
+float: 3
+idouble: 5
+ifloat: 3
+
+Function: Imaginary part of "casinh_downward":
+double: 3
+float: 2
+idouble: 3
+ifloat: 2
+
+Function: Real part of "casinh_towardzero":
+double: 4
+float: 2
+idouble: 4
+ifloat: 2
+
+Function: Imaginary part of "casinh_towardzero":
+double: 3
+float: 1
+idouble: 3
+ifloat: 1
+
+Function: Real part of "casinh_upward":
+double: 5
+float: 7
+idouble: 5
+ifloat: 7
+
+Function: Imaginary part of "casinh_upward":
+double: 3
+float: 2
+idouble: 3
+ifloat: 2
+
+Function: Real part of "catan":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Imaginary part of "catan":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Real part of "catan_downward":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: Imaginary part of "catan_downward":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Real part of "catan_towardzero":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: Imaginary part of "catan_towardzero":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Real part of "catan_upward":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Imaginary part of "catan_upward":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Real part of "catanh":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Imaginary part of "catanh":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Real part of "catanh_downward":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Imaginary part of "catanh_downward":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: Real part of "catanh_towardzero":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Imaginary part of "catanh_towardzero":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: Real part of "catanh_upward":
+double: 4
+float: 4
+idouble: 4
+ifloat: 4
+
+Function: Imaginary part of "catanh_upward":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "cbrt":
+double: 3
+float: 1
+idouble: 3
+ifloat: 1
+
+Function: "cbrt_downward":
+double: 4
+float: 1
+idouble: 4
+ifloat: 1
+
+Function: "cbrt_towardzero":
+double: 3
+float: 1
+idouble: 3
+ifloat: 1
+
+Function: "cbrt_upward":
+double: 5
+float: 1
+idouble: 5
+ifloat: 1
+
+Function: Real part of "ccos":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Imaginary part of "ccos":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Real part of "ccos_downward":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Imaginary part of "ccos_downward":
+double: 3
+float: 3
+idouble: 3
+ifloat: 3
+
+Function: Real part of "ccos_towardzero":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: Imaginary part of "ccos_towardzero":
+double: 3
+float: 3
+idouble: 3
+ifloat: 3
+
+Function: Real part of "ccos_upward":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: Imaginary part of "ccos_upward":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Real part of "ccosh":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Imaginary part of "ccosh":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Real part of "ccosh_downward":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Imaginary part of "ccosh_downward":
+double: 3
+float: 3
+idouble: 3
+ifloat: 3
+
+Function: Real part of "ccosh_towardzero":
+double: 2
+float: 3
+idouble: 2
+ifloat: 3
+
+Function: Imaginary part of "ccosh_towardzero":
+double: 3
+float: 3
+idouble: 3
+ifloat: 3
+
+Function: Real part of "ccosh_upward":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: Imaginary part of "ccosh_upward":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Real part of "cexp":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+
+Function: Imaginary part of "cexp":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: Real part of "cexp_downward":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Imaginary part of "cexp_downward":
+double: 3
+float: 3
+idouble: 3
+ifloat: 3
+
+Function: Real part of "cexp_towardzero":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Imaginary part of "cexp_towardzero":
+double: 3
+float: 3
+idouble: 3
+ifloat: 3
+
+Function: Real part of "cexp_upward":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: Imaginary part of "cexp_upward":
+double: 3
+float: 2
+idouble: 3
+ifloat: 2
+
+Function: Real part of "clog":
+double: 3
+float: 3
+idouble: 3
+ifloat: 3
+
+Function: Imaginary part of "clog":
+float: 1
+ifloat: 1
+
+Function: Real part of "clog10":
+double: 3
+float: 4
+idouble: 3
+ifloat: 4
+
+Function: Imaginary part of "clog10":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Real part of "clog10_downward":
+double: 5
+float: 5
+idouble: 5
+ifloat: 5
+
+Function: Imaginary part of "clog10_downward":
+double: 2
+float: 4
+idouble: 2
+ifloat: 4
+
+Function: Real part of "clog10_towardzero":
+double: 5
+float: 5
+idouble: 5
+ifloat: 5
+
+Function: Imaginary part of "clog10_towardzero":
+double: 2
+float: 4
+idouble: 2
+ifloat: 4
+
+Function: Real part of "clog10_upward":
+double: 6
+float: 5
+idouble: 6
+ifloat: 5
+
+Function: Imaginary part of "clog10_upward":
+double: 2
+float: 4
+idouble: 2
+ifloat: 4
+
+Function: Real part of "clog_downward":
+double: 4
+float: 3
+idouble: 4
+ifloat: 3
+
+Function: Imaginary part of "clog_downward":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: Real part of "clog_towardzero":
+double: 4
+float: 4
+idouble: 4
+ifloat: 4
+
+Function: Imaginary part of "clog_towardzero":
+double: 1
+float: 3
+idouble: 1
+ifloat: 3
+
+Function: Real part of "clog_upward":
+double: 4
+float: 3
+idouble: 4
+ifloat: 3
+
+Function: Imaginary part of "clog_upward":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: "cos":
+double: 1
+idouble: 1
+
+Function: "cos_downward":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "cos_towardzero":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "cos_upward":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "cosh":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "cosh_downward":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+
+Function: "cosh_towardzero":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+
+Function: "cosh_upward":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Real part of "cpow":
+double: 2
+float: 5
+idouble: 2
+ifloat: 5
+
+Function: Imaginary part of "cpow":
+float: 2
+ifloat: 2
+
+Function: Real part of "cpow_downward":
+double: 5
+float: 8
+idouble: 5
+ifloat: 8
+
+Function: Imaginary part of "cpow_downward":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: Real part of "cpow_towardzero":
+double: 5
+float: 8
+idouble: 5
+ifloat: 8
+
+Function: Imaginary part of "cpow_towardzero":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: Real part of "cpow_upward":
+double: 4
+float: 1
+idouble: 4
+ifloat: 1
+
+Function: Imaginary part of "cpow_upward":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: Real part of "csin":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Real part of "csin_downward":
+double: 3
+float: 3
+idouble: 3
+ifloat: 3
+
+Function: Imaginary part of "csin_downward":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Real part of "csin_towardzero":
+double: 3
+float: 3
+idouble: 3
+ifloat: 3
+
+Function: Imaginary part of "csin_towardzero":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Real part of "csin_upward":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Imaginary part of "csin_upward":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: Real part of "csinh":
+float: 1
+ifloat: 1
+
+Function: Imaginary part of "csinh":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Real part of "csinh_downward":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+
+Function: Imaginary part of "csinh_downward":
+double: 3
+float: 3
+idouble: 3
+ifloat: 3
+
+Function: Real part of "csinh_towardzero":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Imaginary part of "csinh_towardzero":
+double: 3
+float: 3
+idouble: 3
+ifloat: 3
+
+Function: Real part of "csinh_upward":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: Imaginary part of "csinh_upward":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Real part of "csqrt":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Imaginary part of "csqrt":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Real part of "csqrt_downward":
+double: 5
+float: 4
+idouble: 5
+ifloat: 4
+
+Function: Imaginary part of "csqrt_downward":
+double: 4
+float: 3
+idouble: 4
+ifloat: 3
+
+Function: Real part of "csqrt_towardzero":
+double: 4
+float: 3
+idouble: 4
+ifloat: 3
+
+Function: Imaginary part of "csqrt_towardzero":
+double: 4
+float: 3
+idouble: 4
+ifloat: 3
+
+Function: Real part of "csqrt_upward":
+double: 5
+float: 4
+idouble: 5
+ifloat: 4
+
+Function: Imaginary part of "csqrt_upward":
+double: 3
+float: 3
+idouble: 3
+ifloat: 3
+
+Function: Real part of "ctan":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Imaginary part of "ctan":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Real part of "ctan_downward":
+double: 6
+float: 5
+idouble: 6
+ifloat: 5
+
+Function: Imaginary part of "ctan_downward":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Real part of "ctan_towardzero":
+double: 5
+float: 3
+idouble: 5
+ifloat: 3
+
+Function: Imaginary part of "ctan_towardzero":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Real part of "ctan_upward":
+double: 2
+float: 4
+idouble: 2
+ifloat: 4
+
+Function: Imaginary part of "ctan_upward":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+
+Function: Real part of "ctanh":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Imaginary part of "ctanh":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Real part of "ctanh_downward":
+double: 4
+float: 2
+idouble: 4
+ifloat: 2
+
+Function: Imaginary part of "ctanh_downward":
+double: 6
+float: 5
+idouble: 6
+ifloat: 5
+
+Function: Real part of "ctanh_towardzero":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Imaginary part of "ctanh_towardzero":
+double: 5
+float: 3
+idouble: 5
+ifloat: 3
+
+Function: Real part of "ctanh_upward":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Imaginary part of "ctanh_upward":
+double: 2
+float: 3
+idouble: 2
+ifloat: 3
+
+Function: "erf":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "erf_downward":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "erf_towardzero":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "erf_upward":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "erfc":
+double: 3
+float: 2
+idouble: 3
+ifloat: 2
+
+Function: "erfc_downward":
+double: 5
+float: 6
+idouble: 5
+ifloat: 6
+
+Function: "erfc_towardzero":
+double: 3
+float: 4
+idouble: 3
+ifloat: 4
+
+Function: "erfc_upward":
+double: 5
+float: 6
+idouble: 5
+ifloat: 6
+
+Function: "exp10":
+double: 2
+idouble: 2
+
+Function: "exp10_downward":
+double: 3
+float: 1
+idouble: 3
+ifloat: 1
+
+Function: "exp10_towardzero":
+double: 3
+float: 1
+idouble: 3
+ifloat: 1
+
+Function: "exp10_upward":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+
+Function: "exp2":
+double: 1
+idouble: 1
+
+Function: "exp2_downward":
+double: 1
+idouble: 1
+
+Function: "exp2_towardzero":
+double: 1
+idouble: 1
+
+Function: "exp2_upward":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "exp_downward":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "exp_towardzero":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "exp_upward":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "expm1":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "expm1_downward":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "expm1_towardzero":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: "expm1_upward":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "gamma":
+double: 4
+float: 3
+idouble: 4
+ifloat: 3
+
+Function: "gamma_downward":
+double: 5
+float: 4
+idouble: 5
+ifloat: 4
+
+Function: "gamma_towardzero":
+double: 5
+float: 4
+idouble: 5
+ifloat: 4
+
+Function: "gamma_upward":
+double: 5
+float: 5
+idouble: 5
+ifloat: 5
+
+Function: "hypot":
+double: 1
+idouble: 1
+
+Function: "hypot_downward":
+double: 1
+idouble: 1
+
+Function: "hypot_towardzero":
+double: 1
+idouble: 1
+
+Function: "hypot_upward":
+double: 1
+idouble: 1
+
+Function: "j0":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: "j0_downward":
+double: 2
+float: 4
+idouble: 2
+ifloat: 4
+
+Function: "j0_towardzero":
+double: 3
+float: 2
+idouble: 3
+ifloat: 2
+
+Function: "j0_upward":
+double: 3
+float: 2
+idouble: 3
+ifloat: 2
+
+Function: "j1":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: "j1_downward":
+double: 3
+float: 3
+idouble: 3
+ifloat: 3
+
+Function: "j1_towardzero":
+double: 3
+float: 2
+idouble: 3
+ifloat: 2
+
+Function: "j1_upward":
+double: 3
+float: 5
+idouble: 3
+ifloat: 5
+
+Function: "jn":
+double: 4
+float: 4
+idouble: 4
+ifloat: 4
+
+Function: "jn_downward":
+double: 5
+float: 5
+idouble: 5
+ifloat: 5
+
+Function: "jn_towardzero":
+double: 5
+float: 5
+idouble: 5
+ifloat: 5
+
+Function: "jn_upward":
+double: 5
+float: 5
+idouble: 5
+ifloat: 5
+
+Function: "lgamma":
+double: 4
+float: 3
+idouble: 4
+ifloat: 3
+
+Function: "lgamma_downward":
+double: 5
+float: 4
+idouble: 5
+ifloat: 4
+
+Function: "lgamma_towardzero":
+double: 5
+float: 4
+idouble: 5
+ifloat: 4
+
+Function: "lgamma_upward":
+double: 5
+float: 5
+idouble: 5
+ifloat: 5
+
+Function: "log10":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: "log10_downward":
+double: 2
+float: 3
+idouble: 2
+ifloat: 3
+
+Function: "log10_towardzero":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+
+Function: "log10_upward":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: "log1p":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "log1p_downward":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: "log1p_towardzero":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: "log1p_upward":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: "log2":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+
+Function: "log2_downward":
+double: 3
+idouble: 3
+
+Function: "log2_towardzero":
+double: 2
+idouble: 2
+
+Function: "log2_upward":
+double: 3
+idouble: 3
+
+Function: "pow":
+double: 1
+idouble: 1
+
+Function: "pow_downward":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "pow_towardzero":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "pow_upward":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "sin":
+double: 1
+idouble: 1
+
+Function: "sin_downward":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "sin_towardzero":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "sin_upward":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "sincos":
+double: 1
+idouble: 1
+
+Function: "sincos_downward":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "sincos_towardzero":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "sincos_upward":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "sinh":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: "sinh_downward":
+double: 3
+float: 3
+idouble: 3
+ifloat: 3
+
+Function: "sinh_towardzero":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: "sinh_upward":
+double: 3
+float: 3
+idouble: 3
+ifloat: 3
+
+Function: "tan":
+float: 1
+ifloat: 1
+
+Function: "tan_downward":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: "tan_towardzero":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "tan_upward":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "tanh":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: "tanh_downward":
+double: 3
+float: 3
+idouble: 3
+ifloat: 3
+
+Function: "tanh_towardzero":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: "tanh_upward":
+double: 3
+float: 3
+idouble: 3
+ifloat: 3
+
+Function: "tgamma":
+double: 5
+float: 4
+idouble: 5
+ifloat: 4
+
+Function: "tgamma_downward":
+double: 5
+float: 5
+idouble: 5
+ifloat: 5
+
+Function: "tgamma_towardzero":
+double: 5
+float: 4
+idouble: 5
+ifloat: 4
+
+Function: "tgamma_upward":
+double: 4
+float: 4
+idouble: 4
+ifloat: 4
+
+Function: "y0":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+
+Function: "y0_downward":
+double: 3
+float: 4
+idouble: 3
+ifloat: 4
+
+Function: "y0_towardzero":
+double: 3
+float: 3
+idouble: 3
+ifloat: 3
+
+Function: "y0_upward":
+double: 3
+float: 5
+idouble: 3
+ifloat: 5
+
+Function: "y1":
+double: 3
+float: 2
+idouble: 3
+ifloat: 2
+
+Function: "y1_downward":
+double: 3
+float: 2
+idouble: 3
+ifloat: 2
+
+Function: "y1_towardzero":
+double: 3
+float: 2
+idouble: 3
+ifloat: 2
+
+Function: "y1_upward":
+double: 7
+float: 2
+idouble: 7
+ifloat: 2
+
+Function: "yn":
+double: 3
+float: 3
+idouble: 3
+ifloat: 3
+
+Function: "yn_downward":
+double: 3
+float: 4
+idouble: 3
+ifloat: 4
+
+Function: "yn_towardzero":
+double: 3
+float: 3
+idouble: 3
+ifloat: 3
+
+Function: "yn_upward":
+double: 4
+float: 5
+idouble: 4
+ifloat: 5
+
+# end of automatic generation
diff --git a/sysdeps/csky/fpu/libm-test-ulps-name b/sysdeps/csky/fpu/libm-test-ulps-name
new file mode 100644
index 0000000000..236b0fb7be
--- /dev/null
+++ b/sysdeps/csky/fpu/libm-test-ulps-name
@@ -0,0 +1 @@
+CSKY
diff --git a/sysdeps/csky/fpu_control.h b/sysdeps/csky/fpu_control.h
new file mode 100644
index 0000000000..b4090c5343
--- /dev/null
+++ b/sysdeps/csky/fpu_control.h
@@ -0,0 +1,148 @@
+/* FPU control word bits. C-SKY version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _FPU_CONTROL_H
+#define _FPU_CONTROL_H
+
+/* C-SKY FPU floating point control register bits.
+
+ 31-28 -> Reserved (read as 0, write with 0).
+ 27 -> 0: Flush denormalized results to zero.
+ 1: Flush denormalized results to signed minimal normal number.
+ 26 -> Reserved (read as 0, write with 0).
+ 25-24 -> Rounding control.
+ 23-6 -> Reserved (read as 0, write with 0).
+ 5 -> Enable exception for input denormalized exception.
+ 4 -> Enable exception for inexact exception.
+ 3 -> Enable exception for underflow exception.
+ 2 -> Enable exception for overflow exception.
+ 1 -> Enable exception for division by zero exception.
+ 0 -> Enable exception for invalid operation exception.
+
+ Rounding Control:
+ 00 - Rounding to nearest (RN).
+ 01 - Rounding toward zero (RZ).
+ 10 - Rounding (up) toward plus infinity (RP).
+ 11 - Rounding (down)toward minus infinity (RM).
+
+ C-SKY FPU floating point exception status register bits.
+
+ 15 -> Accumulate bit for any exception.
+ 14 -> Reserved (read as 0, write with 0).
+ 13 -> Cause bit for input denormalized exception.
+ 12 -> Cause bit for inexact exception.
+ 11 -> Cause bit for underflow exception.
+ 10 -> Cause bit for overflow exception.
+ 9 -> Cause bit for division by zero exception.
+ 8 -> Cause bit for invalid operation exception.
+ 7 -> Flag bit for any exception.
+ 6 -> Reserved (read as 0, write with 0).
+ 5 -> Flag exception for input denormalized exception.
+ 4 -> Flag exception for inexact exception.
+ 3 -> Flag exception for underflow exception.
+ 2 -> Flag exception for overflow exception.
+ 1 -> Flag exception for division by zero exception.
+ 0 -> Flag exception for invalid operation exception. */
+
+#include <features.h>
+
+#ifdef __csky_soft_float__
+
+# define _FPU_RESERVED 0xffffffff
+# define _FPU_DEFAULT 0x00000000
+typedef unsigned int fpu_control_t;
+# define _FPU_GETCW(cw) (cw) = 0
+# define _FPU_SETCW(cw) (void) (cw)
+# define _FPU_GETFPSR(cw) (cw) = 0
+# define _FPU_SETFPSR(cw) (void) (cw)
+extern fpu_control_t __fpu_control;
+
+#else /* __csky_soft_float__ */
+
+/* Masking of interrupts. */
+# define _FPU_MASK_IDE (1 << 5) /* Input denormalized exception. */
+# define _FPU_MASK_IXE (1 << 4) /* Inexact exception. */
+# define _FPU_MASK_UFE (1 << 3) /* Underflow exception. */
+# define _FPU_MASK_OFE (1 << 2) /* Overflow exception. */
+# define _FPU_MASK_DZE (1 << 1) /* Division by zero exception. */
+# define _FPU_MASK_IOE (1 << 0) /* Invalid operation exception. */
+
+# define _FPU_MASK_FEA (1 << 15) /* Case for any exception. */
+# define _FPU_MASK_FEC (1 << 7) /* Flag for any exception. */
+
+/* Flush denormalized numbers to zero. */
+# define _FPU_FLUSH_TZ 0x8000000
+
+/* Rounding control. */
+# define _FPU_RC_NEAREST (0x0 << 24) /* RECOMMENDED. */
+# define _FPU_RC_ZERO (0x1 << 24)
+# define _FPU_RC_UP (0x2 << 24)
+# define _FPU_RC_DOWN (0x3 << 24)
+
+# define _FPU_RESERVED 0xf460ffc0 /* Reserved bits in cw. */
+# define _FPU_FPSR_RESERVED 0xffff4040
+
+/* The fdlibm code requires strict IEEE double precision arithmetic,
+ and no interrupts for exceptions, rounding to nearest. */
+
+# define _FPU_DEFAULT 0x00000000
+# define _FPU_FPSR_DEFAULT 0x00000000
+
+/* IEEE: same as above, but exceptions. */
+# define _FPU_FPCR_IEEE 0x0000001F
+# define _FPU_FPSR_IEEE 0x00000000
+
+/* Type of the control word. */
+typedef unsigned int fpu_control_t;
+
+/* Macros for accessing the hardware control word. */
+# if (__CSKY__ == 2)
+# define _FPU_GETCW(cw) __asm__ volatile ("mfcr %0, cr<1, 2>" : "=a" (cw))
+# define _FPU_SETCW(cw) __asm__ volatile ("mtcr %0, cr<1, 2>" : : "a" (cw))
+# define _FPU_GETFPSR(cw) __asm__ volatile ("mfcr %0, cr<2, 2>" : "=a" (cw))
+# define _FPU_SETFPSR(cw) __asm__ volatile ("mtcr %0, cr<2, 2>" : : "a" (cw))
+# else
+# define _FPU_GETCW(cw) __asm__ volatile ("1: cprcr %0, cpcr2 \n" \
+ " btsti %0, 31 \n" \
+ " bt 1b \n" \
+ " cprcr %0, cpcr1\n" : "=b" (cw))
+
+# define _FPU_SETCW(cw) __asm__ volatile ("1: cprcr r7, cpcr2 \n" \
+ " btsti r7, 31 \n" \
+ " bt 1b \n" \
+ " cpwcr %0, cpcr1 \n" \
+ : : "b" (cw) : "r7")
+
+# define _FPU_GETFPSR(cw) __asm__ volatile ("1: cprcr %0, cpcr2 \n" \
+ " btsti %0, 31 \n" \
+ " bt 1b \n" \
+ " cprcr %0, cpcr4\n" : "=b" (cw))
+
+# define _FPU_SETFPSR(cw) __asm__ volatile ("1: cprcr r7, cpcr2 \n" \
+ " btsti r7, 31 \n" \
+ " bt 1b \n" \
+ " cpwcr %0, cpcr4 \n" \
+ : : "b" (cw) : "r7")
+# endif /* __CSKY__ != 2 */
+
+/* Default control word set at startup. */
+extern fpu_control_t __fpu_control;
+
+#endif /* !__csky_soft_float__ */
+
+#endif /* fpu_control.h */
diff --git a/sysdeps/csky/gccframe.h b/sysdeps/csky/gccframe.h
new file mode 100644
index 0000000000..b558a87b9c
--- /dev/null
+++ b/sysdeps/csky/gccframe.h
@@ -0,0 +1,21 @@
+/* Definition of object in frame unwind info. C-SKY version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#define FIRST_PSEUDO_REGISTER 71
+
+#include <sysdeps/generic/gccframe.h>
diff --git a/sysdeps/csky/jmpbuf-unwind.h b/sysdeps/csky/jmpbuf-unwind.h
new file mode 100644
index 0000000000..44923f4c2a
--- /dev/null
+++ b/sysdeps/csky/jmpbuf-unwind.h
@@ -0,0 +1,48 @@
+/* Examine __jmp_buf for unwinding frames. C-SkY version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <setjmp.h>
+#include <stdint.h>
+#include <unwind.h>
+#include <sysdep.h>
+
+/* Test if longjmp to JMPBUF would unwind the frame
+ containing a local variable at ADDRESS. */
+#define _JMPBUF_UNWINDS(jmpbuf, address, demangle) \
+ ((void *) (address) < (void *) demangle ((jmpbuf)[0].__sp))
+
+#define _JMPBUF_CFA_UNWINDS_ADJ(_jmpbuf, _context, _adj) \
+ _JMPBUF_UNWINDS_ADJ (_jmpbuf, \
+ (void *) (_Unwind_Ptr) _Unwind_GetCFA (_context), \
+ _adj)
+
+static inline uintptr_t __attribute__ ((unused))
+_jmpbuf_sp (__jmp_buf regs)
+{
+ uintptr_t sp = (uintptr_t) regs[0].__sp;
+#ifdef PTR_DEMANGLE
+ PTR_DEMANGLE (sp);
+#endif
+ return sp;
+}
+
+#define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
+ ((uintptr_t) (_address) - (_adj) < _jmpbuf_sp (_jmpbuf) - (_adj))
+
+/* We use the normal longjmp for unwinding. */
+#define __libc_unwind_longjmp(buf, val) __libc_longjmp (buf, val)
diff --git a/sysdeps/csky/ldsodefs.h b/sysdeps/csky/ldsodefs.h
new file mode 100644
index 0000000000..f6b38f8fc5
--- /dev/null
+++ b/sysdeps/csky/ldsodefs.h
@@ -0,0 +1,42 @@
+/* Run-time dynamic linker data structures for loaded ELF shared objects.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _CSKY_LDSODEFS_H
+#define _CSKY_LDSODEFS_H 1
+
+#include <elf.h>
+
+struct La_csky_regs;
+struct La_csky_retval;
+
+#define ARCH_PLTENTER_MEMBERS \
+ Elf32_Addr (*csky_gnu_pltenter) (Elf32_Sym *, unsigned int, \
+ uintptr_t *, uintptr_t *, \
+ struct La_csky_regs *, \
+ unsigned int *, const char *, \
+ long int *);
+
+#define ARCH_PLTEXIT_MEMBERS \
+ unsigned int (*csky_gnu_pltexit) (Elf32_Sym *, unsigned int, \
+ uintptr_t *, uintptr_t *, \
+ const struct La_csky_regs *, \
+ struct La_csky_retval *, \
+ const char *);
+
+#include_next <ldsodefs.h>
+#endif
diff --git a/sysdeps/csky/libc-tls.c b/sysdeps/csky/libc-tls.c
new file mode 100644
index 0000000000..1799f9c07a
--- /dev/null
+++ b/sysdeps/csky/libc-tls.c
@@ -0,0 +1,32 @@
+/* Thread-local storage handling in the ELF dynamic linker. C-SKY version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <csu/libc-tls.c>
+#include <dl-tls.h>
+
+/* On C-SKY, linker optimizations are not required, so __tls_get_addr
+ can be called even in statically linked binaries. In this case module
+ must be always 1 and PT_TLS segment exist in the binary, otherwise it
+ would not link. */
+
+void *
+__tls_get_addr (tls_index *ti)
+{
+ dtv_t *dtv = THREAD_DTV ();
+ return (char *) dtv[1].pointer.val + ti->ti_offset;
+}
diff --git a/sysdeps/csky/linkmap.h b/sysdeps/csky/linkmap.h
new file mode 100644
index 0000000000..489bbd7840
--- /dev/null
+++ b/sysdeps/csky/linkmap.h
@@ -0,0 +1,4 @@
+struct link_map_machine
+ {
+ Elf32_Addr plt; /* Address of .plt. */
+ };
diff --git a/sysdeps/csky/machine-gmon.h b/sysdeps/csky/machine-gmon.h
new file mode 100644
index 0000000000..b554046b0d
--- /dev/null
+++ b/sysdeps/csky/machine-gmon.h
@@ -0,0 +1,32 @@
+/* Machine-dependent definitions for profiling support. C-SKY version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+/* GCC for the C-SKY cannot compile __builtin_return_address (N) for N != 0,
+ so we must use an assembly stub. */
+
+/* We must not pollute the global namespace. */
+#define mcount_internal __mcount_internal
+
+extern void mcount_internal (u_long frompc, u_long selfpc);
+#define _MCOUNT_DECL(frompc, selfpc) \
+ void mcount_internal (u_long frompc, u_long selfpc)
+
+/* Define MCOUNT as empty since we have the implementation in another file. */
+#define MCOUNT
diff --git a/sysdeps/csky/memusage.h b/sysdeps/csky/memusage.h
new file mode 100644
index 0000000000..7dd7e17a76
--- /dev/null
+++ b/sysdeps/csky/memusage.h
@@ -0,0 +1,21 @@
+/* Machine-specific definitions for memory usage profiling, C-SKY version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#define GETSP() ({ register uintptr_t stack_ptr asm ("sp"); stack_ptr; })
+
+#include <sysdeps/generic/memusage.h>
diff --git a/sysdeps/csky/nofpu/Implies b/sysdeps/csky/nofpu/Implies
new file mode 100644
index 0000000000..abcbadb25f
--- /dev/null
+++ b/sysdeps/csky/nofpu/Implies
@@ -0,0 +1 @@
+ieee754/soft-fp
diff --git a/sysdeps/csky/nofpu/libm-test-ulps b/sysdeps/csky/nofpu/libm-test-ulps
new file mode 100644
index 0000000000..4e0cee8dd6
--- /dev/null
+++ b/sysdeps/csky/nofpu/libm-test-ulps
@@ -0,0 +1,1694 @@
+# Begin of automatic generation
+
+# Maximal error of functions:
+Function: "acos":
+float: 1
+ifloat: 1
+
+Function: "acos_downward":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "acos_towardzero":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "acos_upward":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "acosh":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: "acosh_downward":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: "acosh_towardzero":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: "acosh_upward":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: "asin":
+float: 1
+ifloat: 1
+
+Function: "asin_downward":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "asin_towardzero":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "asin_upward":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "asinh":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "asinh_downward":
+double: 3
+float: 3
+idouble: 3
+ifloat: 3
+
+Function: "asinh_towardzero":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: "asinh_upward":
+double: 3
+float: 3
+idouble: 3
+ifloat: 3
+
+Function: "atan":
+float: 1
+ifloat: 1
+
+Function: "atan2":
+float: 1
+ifloat: 1
+
+Function: "atan2_downward":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: "atan2_towardzero":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: "atan2_upward":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: "atan_downward":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: "atan_towardzero":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "atan_upward":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: "atanh":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: "atanh_downward":
+double: 3
+float: 3
+idouble: 3
+ifloat: 3
+
+Function: "atanh_towardzero":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: "atanh_upward":
+double: 3
+float: 3
+idouble: 3
+ifloat: 3
+
+Function: "cabs":
+double: 1
+idouble: 1
+
+Function: "cabs_downward":
+double: 1
+idouble: 1
+
+Function: "cabs_towardzero":
+double: 1
+idouble: 1
+
+Function: "cabs_upward":
+double: 1
+idouble: 1
+
+Function: Real part of "cacos":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: Imaginary part of "cacos":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Real part of "cacos_downward":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Imaginary part of "cacos_downward":
+double: 5
+float: 3
+idouble: 5
+ifloat: 3
+
+Function: Real part of "cacos_towardzero":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Imaginary part of "cacos_towardzero":
+double: 5
+float: 3
+idouble: 5
+ifloat: 3
+
+Function: Real part of "cacos_upward":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Imaginary part of "cacos_upward":
+double: 4
+float: 4
+idouble: 4
+ifloat: 4
+
+Function: Real part of "cacosh":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Imaginary part of "cacosh":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: Real part of "cacosh_downward":
+double: 5
+float: 3
+idouble: 5
+ifloat: 3
+
+Function: Imaginary part of "cacosh_downward":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Real part of "cacosh_towardzero":
+double: 5
+float: 3
+idouble: 5
+ifloat: 3
+
+Function: Imaginary part of "cacosh_towardzero":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Real part of "cacosh_upward":
+double: 4
+float: 4
+idouble: 4
+ifloat: 4
+
+Function: Imaginary part of "cacosh_upward":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: "carg":
+float: 1
+ifloat: 1
+
+Function: "carg_downward":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: "carg_towardzero":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: "carg_upward":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: Real part of "casin":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Imaginary part of "casin":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Real part of "casin_downward":
+double: 3
+float: 1
+idouble: 3
+ifloat: 1
+
+Function: Imaginary part of "casin_downward":
+double: 5
+float: 3
+idouble: 5
+ifloat: 3
+
+Function: Real part of "casin_towardzero":
+double: 3
+float: 1
+idouble: 3
+ifloat: 1
+
+Function: Imaginary part of "casin_towardzero":
+double: 5
+float: 3
+idouble: 5
+ifloat: 3
+
+Function: Real part of "casin_upward":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+
+Function: Imaginary part of "casin_upward":
+double: 4
+float: 4
+idouble: 4
+ifloat: 4
+
+Function: Real part of "casinh":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Imaginary part of "casinh":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Real part of "casinh_downward":
+double: 5
+float: 3
+idouble: 5
+ifloat: 3
+
+Function: Imaginary part of "casinh_downward":
+double: 3
+float: 1
+idouble: 3
+ifloat: 1
+
+Function: Real part of "casinh_towardzero":
+double: 5
+float: 3
+idouble: 5
+ifloat: 3
+
+Function: Imaginary part of "casinh_towardzero":
+double: 3
+float: 1
+idouble: 3
+ifloat: 1
+
+Function: Real part of "casinh_upward":
+double: 4
+float: 4
+idouble: 4
+ifloat: 4
+
+Function: Imaginary part of "casinh_upward":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Real part of "catan":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Imaginary part of "catan":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Real part of "catan_downward":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Imaginary part of "catan_downward":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Real part of "catan_towardzero":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Imaginary part of "catan_towardzero":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+
+Function: Real part of "catan_upward":
+float: 1
+ifloat: 1
+
+Function: Imaginary part of "catan_upward":
+double: 3
+float: 3
+idouble: 3
+ifloat: 3
+
+Function: Real part of "catanh":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Imaginary part of "catanh":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Real part of "catanh_downward":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Imaginary part of "catanh_downward":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: Real part of "catanh_towardzero":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+
+Function: Imaginary part of "catanh_towardzero":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: Real part of "catanh_upward":
+double: 4
+float: 3
+idouble: 4
+ifloat: 3
+
+Function: Imaginary part of "catanh_upward":
+float: 1
+ifloat: 1
+
+Function: "cbrt":
+double: 3
+float: 1
+idouble: 3
+ifloat: 1
+
+Function: "cbrt_downward":
+double: 4
+float: 1
+idouble: 4
+ifloat: 1
+
+Function: "cbrt_towardzero":
+double: 3
+float: 1
+idouble: 3
+ifloat: 1
+
+Function: "cbrt_upward":
+double: 5
+float: 1
+idouble: 5
+ifloat: 1
+
+Function: Real part of "ccos":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Imaginary part of "ccos":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Real part of "ccos_downward":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Imaginary part of "ccos_downward":
+double: 2
+float: 3
+idouble: 2
+ifloat: 3
+
+Function: Real part of "ccos_towardzero":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: Imaginary part of "ccos_towardzero":
+double: 2
+float: 3
+idouble: 2
+ifloat: 3
+
+Function: Real part of "ccos_upward":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: Imaginary part of "ccos_upward":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Real part of "ccosh":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Imaginary part of "ccosh":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Real part of "ccosh_downward":
+double: 1
+float: 3
+idouble: 1
+ifloat: 3
+
+Function: Imaginary part of "ccosh_downward":
+double: 2
+float: 3
+idouble: 2
+ifloat: 3
+
+Function: Real part of "ccosh_towardzero":
+double: 1
+float: 3
+idouble: 1
+ifloat: 3
+
+Function: Imaginary part of "ccosh_towardzero":
+double: 2
+float: 3
+idouble: 2
+ifloat: 3
+
+Function: Real part of "ccosh_upward":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: Imaginary part of "ccosh_upward":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Real part of "cexp":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+
+Function: Imaginary part of "cexp":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: Real part of "cexp_downward":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: Imaginary part of "cexp_downward":
+double: 1
+float: 3
+idouble: 1
+ifloat: 3
+
+Function: Real part of "cexp_towardzero":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: Imaginary part of "cexp_towardzero":
+double: 1
+float: 3
+idouble: 1
+ifloat: 3
+
+Function: Real part of "cexp_upward":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: Imaginary part of "cexp_upward":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: Real part of "clog":
+double: 3
+float: 3
+idouble: 3
+ifloat: 3
+
+Function: Imaginary part of "clog":
+float: 1
+ifloat: 1
+
+Function: Real part of "clog10":
+double: 3
+float: 4
+idouble: 3
+ifloat: 4
+
+Function: Imaginary part of "clog10":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Real part of "clog10_downward":
+double: 5
+float: 4
+idouble: 5
+ifloat: 4
+
+Function: Imaginary part of "clog10_downward":
+double: 2
+float: 4
+idouble: 2
+ifloat: 4
+
+Function: Real part of "clog10_towardzero":
+double: 5
+float: 5
+idouble: 5
+ifloat: 5
+
+Function: Imaginary part of "clog10_towardzero":
+double: 2
+float: 4
+idouble: 2
+ifloat: 4
+
+Function: Real part of "clog10_upward":
+double: 6
+float: 5
+idouble: 6
+ifloat: 5
+
+Function: Imaginary part of "clog10_upward":
+double: 2
+float: 4
+idouble: 2
+ifloat: 4
+
+Function: Real part of "clog_downward":
+double: 4
+float: 3
+idouble: 4
+ifloat: 3
+
+Function: Imaginary part of "clog_downward":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: Real part of "clog_towardzero":
+double: 4
+float: 4
+idouble: 4
+ifloat: 4
+
+Function: Imaginary part of "clog_towardzero":
+double: 1
+float: 3
+idouble: 1
+ifloat: 3
+
+Function: Real part of "clog_upward":
+double: 4
+float: 3
+idouble: 4
+ifloat: 3
+
+Function: Imaginary part of "clog_upward":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: "cos":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "cos_downward":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: "cos_towardzero":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "cos_upward":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: "cosh":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "cosh_downward":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "cosh_towardzero":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "cosh_upward":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: Real part of "cpow":
+double: 2
+float: 5
+idouble: 2
+ifloat: 5
+
+Function: Imaginary part of "cpow":
+float: 2
+ifloat: 2
+
+Function: Real part of "cpow_downward":
+double: 4
+float: 8
+idouble: 4
+ifloat: 8
+
+Function: Imaginary part of "cpow_downward":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: Real part of "cpow_towardzero":
+double: 4
+float: 8
+idouble: 4
+ifloat: 8
+
+Function: Imaginary part of "cpow_towardzero":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: Real part of "cpow_upward":
+double: 4
+float: 1
+idouble: 4
+ifloat: 1
+
+Function: Imaginary part of "cpow_upward":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: Real part of "csin":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Real part of "csin_downward":
+double: 2
+float: 3
+idouble: 2
+ifloat: 3
+
+Function: Imaginary part of "csin_downward":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Real part of "csin_towardzero":
+double: 2
+float: 3
+idouble: 2
+ifloat: 3
+
+Function: Imaginary part of "csin_towardzero":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Real part of "csin_upward":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Imaginary part of "csin_upward":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: Real part of "csinh":
+float: 1
+ifloat: 1
+
+Function: Imaginary part of "csinh":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Real part of "csinh_downward":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Imaginary part of "csinh_downward":
+double: 2
+float: 3
+idouble: 2
+ifloat: 3
+
+Function: Real part of "csinh_towardzero":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Imaginary part of "csinh_towardzero":
+double: 2
+float: 3
+idouble: 2
+ifloat: 3
+
+Function: Real part of "csinh_upward":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: Imaginary part of "csinh_upward":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Real part of "csqrt":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Imaginary part of "csqrt":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Real part of "csqrt_downward":
+double: 5
+float: 4
+idouble: 5
+ifloat: 4
+
+Function: Imaginary part of "csqrt_downward":
+double: 4
+float: 3
+idouble: 4
+ifloat: 3
+
+Function: Real part of "csqrt_towardzero":
+double: 4
+float: 3
+idouble: 4
+ifloat: 3
+
+Function: Imaginary part of "csqrt_towardzero":
+double: 4
+float: 3
+idouble: 4
+ifloat: 3
+
+Function: Real part of "csqrt_upward":
+double: 5
+float: 4
+idouble: 5
+ifloat: 4
+
+Function: Imaginary part of "csqrt_upward":
+double: 3
+float: 3
+idouble: 3
+ifloat: 3
+
+Function: Real part of "ctan":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: Imaginary part of "ctan":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Real part of "ctan_downward":
+double: 6
+float: 5
+idouble: 6
+ifloat: 5
+
+Function: Imaginary part of "ctan_downward":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+
+Function: Real part of "ctan_towardzero":
+double: 5
+float: 3
+idouble: 5
+ifloat: 3
+
+Function: Imaginary part of "ctan_towardzero":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Real part of "ctan_upward":
+double: 2
+float: 3
+idouble: 2
+ifloat: 3
+
+Function: Imaginary part of "ctan_upward":
+double: 2
+float: 3
+idouble: 2
+ifloat: 3
+
+Function: Real part of "ctanh":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Imaginary part of "ctanh":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Real part of "ctanh_downward":
+double: 4
+float: 1
+idouble: 4
+ifloat: 1
+
+Function: Imaginary part of "ctanh_downward":
+double: 6
+float: 5
+idouble: 6
+ifloat: 5
+
+Function: Real part of "ctanh_towardzero":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: Imaginary part of "ctanh_towardzero":
+double: 5
+float: 3
+idouble: 5
+ifloat: 3
+
+Function: Real part of "ctanh_upward":
+double: 2
+float: 3
+idouble: 2
+ifloat: 3
+
+Function: Imaginary part of "ctanh_upward":
+double: 2
+float: 3
+idouble: 2
+ifloat: 3
+
+Function: "erf":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "erf_downward":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "erf_towardzero":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "erf_upward":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "erfc":
+double: 3
+float: 2
+idouble: 3
+ifloat: 2
+
+Function: "erfc_downward":
+double: 5
+float: 6
+idouble: 5
+ifloat: 6
+
+Function: "erfc_towardzero":
+double: 3
+float: 4
+idouble: 3
+ifloat: 4
+
+Function: "erfc_upward":
+double: 5
+float: 6
+idouble: 5
+ifloat: 6
+
+Function: "exp":
+float: 1
+ifloat: 1
+
+Function: "exp10":
+double: 2
+idouble: 2
+
+Function: "exp10_downward":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+
+Function: "exp10_towardzero":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+
+Function: "exp10_upward":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+
+Function: "exp2":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "exp2_downward":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "exp2_towardzero":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "exp2_upward":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "exp_downward":
+double: 1
+idouble: 1
+
+Function: "exp_towardzero":
+double: 1
+idouble: 1
+
+Function: "exp_upward":
+double: 1
+idouble: 1
+
+Function: "expm1":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "expm1_downward":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "expm1_towardzero":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: "expm1_upward":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "gamma":
+double: 4
+float: 4
+idouble: 4
+ifloat: 4
+
+Function: "gamma_downward":
+double: 5
+float: 4
+idouble: 5
+ifloat: 4
+
+Function: "gamma_towardzero":
+double: 5
+float: 4
+idouble: 5
+ifloat: 4
+
+Function: "gamma_upward":
+double: 5
+float: 5
+idouble: 5
+ifloat: 5
+
+Function: "hypot":
+double: 1
+idouble: 1
+
+Function: "hypot_downward":
+double: 1
+idouble: 1
+
+Function: "hypot_towardzero":
+double: 1
+idouble: 1
+
+Function: "hypot_upward":
+double: 1
+idouble: 1
+
+Function: "j0":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: "j0_downward":
+double: 2
+float: 3
+idouble: 2
+ifloat: 3
+
+Function: "j0_towardzero":
+double: 3
+float: 2
+idouble: 3
+ifloat: 2
+
+Function: "j0_upward":
+double: 3
+float: 2
+idouble: 3
+ifloat: 2
+
+Function: "j1":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: "j1_downward":
+double: 3
+float: 2
+idouble: 3
+ifloat: 2
+
+Function: "j1_towardzero":
+double: 3
+float: 2
+idouble: 3
+ifloat: 2
+
+Function: "j1_upward":
+double: 3
+float: 5
+idouble: 3
+ifloat: 5
+
+Function: "jn":
+double: 4
+float: 4
+idouble: 4
+ifloat: 4
+
+Function: "jn_downward":
+double: 5
+float: 5
+idouble: 5
+ifloat: 5
+
+Function: "jn_towardzero":
+double: 5
+float: 5
+idouble: 5
+ifloat: 5
+
+Function: "jn_upward":
+double: 5
+float: 5
+idouble: 5
+ifloat: 5
+
+Function: "lgamma":
+double: 4
+float: 4
+idouble: 4
+ifloat: 4
+
+Function: "lgamma_downward":
+double: 5
+float: 4
+idouble: 5
+ifloat: 4
+
+Function: "lgamma_towardzero":
+double: 5
+float: 4
+idouble: 5
+ifloat: 4
+
+Function: "lgamma_upward":
+double: 5
+float: 5
+idouble: 5
+ifloat: 5
+
+Function: "log":
+float: 1
+ifloat: 1
+
+Function: "log10":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: "log10_downward":
+double: 2
+float: 3
+idouble: 2
+ifloat: 3
+
+Function: "log10_towardzero":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: "log10_upward":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: "log1p":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "log1p_downward":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: "log1p_towardzero":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: "log1p_upward":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: "log2":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+
+Function: "log2_downward":
+double: 3
+float: 3
+idouble: 3
+ifloat: 3
+
+Function: "log2_towardzero":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: "log2_upward":
+double: 3
+float: 3
+idouble: 3
+ifloat: 3
+
+Function: "log_downward":
+float: 2
+ifloat: 2
+
+Function: "log_towardzero":
+float: 2
+ifloat: 2
+
+Function: "log_upward":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: "pow":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "pow10":
+double: 2
+idouble: 2
+
+Function: "pow10_downward":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+
+Function: "pow10_towardzero":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+
+Function: "pow10_upward":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+
+Function: "pow_downward":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "pow_towardzero":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "pow_upward":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "sin":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "sin_downward":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: "sin_towardzero":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "sin_upward":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: "sincos":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "sincos_downward":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: "sincos_towardzero":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "sincos_upward":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: "sinh":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: "sinh_downward":
+double: 3
+float: 3
+idouble: 3
+ifloat: 3
+
+Function: "sinh_towardzero":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: "sinh_upward":
+double: 3
+float: 3
+idouble: 3
+ifloat: 3
+
+Function: "tan":
+float: 1
+ifloat: 1
+
+Function: "tan_downward":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+
+Function: "tan_towardzero":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "tan_upward":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+Function: "tanh":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: "tanh_downward":
+double: 3
+float: 3
+idouble: 3
+ifloat: 3
+
+Function: "tanh_towardzero":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+
+Function: "tanh_upward":
+double: 3
+float: 3
+idouble: 3
+ifloat: 3
+
+Function: "tgamma":
+double: 5
+float: 4
+idouble: 5
+ifloat: 4
+
+Function: "tgamma_downward":
+double: 5
+float: 5
+idouble: 5
+ifloat: 5
+
+Function: "tgamma_towardzero":
+double: 5
+float: 4
+idouble: 5
+ifloat: 4
+
+Function: "tgamma_upward":
+double: 4
+float: 4
+idouble: 4
+ifloat: 4
+
+Function: "y0":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+
+Function: "y0_downward":
+double: 3
+float: 2
+idouble: 3
+ifloat: 2
+
+Function: "y0_towardzero":
+double: 3
+float: 3
+idouble: 3
+ifloat: 3
+
+Function: "y0_upward":
+double: 3
+float: 4
+idouble: 3
+ifloat: 4
+
+Function: "y1":
+double: 3
+float: 2
+idouble: 3
+ifloat: 2
+
+Function: "y1_downward":
+double: 3
+float: 2
+idouble: 3
+ifloat: 2
+
+Function: "y1_towardzero":
+double: 3
+float: 2
+idouble: 3
+ifloat: 2
+
+Function: "y1_upward":
+double: 7
+float: 2
+idouble: 7
+ifloat: 2
+
+Function: "yn":
+double: 3
+float: 3
+idouble: 3
+ifloat: 3
+
+Function: "yn_downward":
+double: 3
+float: 2
+idouble: 3
+ifloat: 2
+
+Function: "yn_towardzero":
+double: 3
+float: 3
+idouble: 3
+ifloat: 3
+
+Function: "yn_upward":
+double: 4
+float: 4
+idouble: 4
+ifloat: 4
+
+# end of automatic generation
diff --git a/sysdeps/csky/nofpu/libm-test-ulps-name b/sysdeps/csky/nofpu/libm-test-ulps-name
new file mode 100644
index 0000000000..d9b35a92ae
--- /dev/null
+++ b/sysdeps/csky/nofpu/libm-test-ulps-name
@@ -0,0 +1 @@
+CSKY soft-float
diff --git a/sysdeps/csky/nptl/Makefile b/sysdeps/csky/nptl/Makefile
new file mode 100644
index 0000000000..1bce3fec2e
--- /dev/null
+++ b/sysdeps/csky/nptl/Makefile
@@ -0,0 +1,20 @@
+# Copyright (C) 2018-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
+# <https://www.gnu.org/licenses/>.
+
+ifeq ($(subdir),csu)
+gen-as-const-headers += tcb-offsets.sym
+endif
diff --git a/sysdeps/csky/nptl/bits/semaphore.h b/sysdeps/csky/nptl/bits/semaphore.h
new file mode 100644
index 0000000000..ea248eeaad
--- /dev/null
+++ b/sysdeps/csky/nptl/bits/semaphore.h
@@ -0,0 +1,35 @@
+/* Machine-specific POSIX semaphore type layouts. C-SKY version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SEMAPHORE_H
+# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
+#endif
+
+
+#define __SIZEOF_SEM_T 16
+
+
+/* Value returned if `sem_open' failed. */
+#define SEM_FAILED ((sem_t *) 0)
+
+
+typedef union
+{
+ char __size[__SIZEOF_SEM_T];
+ long int __align;
+} sem_t;
diff --git a/sysdeps/csky/nptl/pthreaddef.h b/sysdeps/csky/nptl/pthreaddef.h
new file mode 100644
index 0000000000..70f5df2cf1
--- /dev/null
+++ b/sysdeps/csky/nptl/pthreaddef.h
@@ -0,0 +1,32 @@
+/* pthread machine parameter definitions. C-SKY version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+/* Default stack size. */
+#define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024)
+
+/* Required stack pointer alignment at beginning. */
+#define STACK_ALIGN 8
+
+/* Minimal stack size after allocating thread descriptor and guard size. */
+#define MINIMAL_REST_STACK 2048
+
+/* Alignment requirement for TCB. */
+#define TCB_ALIGNMENT 8
+
+/* Location of current stack frame. */
+#define CURRENT_STACK_FRAME __builtin_frame_address (0)
diff --git a/sysdeps/csky/nptl/tcb-offsets.sym b/sysdeps/csky/nptl/tcb-offsets.sym
new file mode 100644
index 0000000000..f1105205c0
--- /dev/null
+++ b/sysdeps/csky/nptl/tcb-offsets.sym
@@ -0,0 +1,10 @@
+#include <sysdep.h>
+#include <tls.h>
+
+--
+
+-- Derive offsets relative to the thread register.
+#define thread_offsetof(mem) (long)(offsetof (struct pthread, mem) - sizeof (struct pthread))
+
+MULTIPLE_THREADS_OFFSET thread_offsetof (header.multiple_threads)
+TID_OFFSET thread_offsetof (tid)
diff --git a/sysdeps/csky/nptl/tls.h b/sysdeps/csky/nptl/tls.h
new file mode 100644
index 0000000000..d3f9d711f8
--- /dev/null
+++ b/sysdeps/csky/nptl/tls.h
@@ -0,0 +1,156 @@
+/* Definitions for thread-local data handling. NPTL/C-SKY version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _TLS_H
+#define _TLS_H 1
+
+#ifndef __ASSEMBLER__
+
+# include <stdbool.h>
+# include <stddef.h>
+# include <stdint.h>
+# include <dl-dtv.h>
+
+/* Define r31 as thread pointer register. */
+# define READ_THREAD_POINTER() \
+ ({ void *__result; \
+ __asm__ __volatile__ ("mov %0, r31" \
+ : "=r" (__result)); \
+ __result; })
+
+#else
+# include <tcb-offsets.h>
+/* Define r31 as thread pointer register. */
+# define READ_THREAD_POINTER() \
+ mov r0, r31;
+#endif /* __ASSEMBLER__ */
+
+#ifndef __ASSEMBLER__
+
+/* Get system call information. */
+# include <sysdep.h>
+
+/* The TP points to the start of the thread blocks. */
+# define TLS_DTV_AT_TP 1
+# define TLS_TCB_AT_TP 0
+
+/* Get the thread descriptor definition. */
+# include <nptl/descr.h>
+
+typedef struct
+{
+ dtv_t *dtv;
+ void *private;
+} tcbhead_t;
+
+/* This is the size of the initial TCB. */
+# define TLS_INIT_TCB_SIZE sizeof (tcbhead_t)
+
+/* Alignment requirements for the initial TCB. */
+# define TLS_INIT_TCB_ALIGN 8
+
+/* This is the size of the TCB. */
+# define TLS_TCB_SIZE sizeof (tcbhead_t)
+
+/* Alignment requirements for the TCB. */
+# define TLS_TCB_ALIGN 8
+
+/* This is the size we need before TCB. */
+# define TLS_PRE_TCB_SIZE sizeof (struct pthread)
+
+/* The thread pointer tp points to the end of the TCB.
+ The pthread_descr structure is immediately in front of the TCB. */
+# define TLS_TCB_OFFSET 0
+
+/* Install the dtv pointer. The pointer passed is to the element with
+ index -1 which contain the length. */
+# define INSTALL_DTV(tcbp, dtvp) \
+ (((tcbhead_t *) (tcbp))->dtv = (dtvp) + 1)
+
+/* Install new dtv for current thread. */
+# define INSTALL_NEW_DTV(dtv) \
+ (THREAD_DTV() = (dtv))
+
+/* Return dtv of given thread descriptor. */
+# define GET_DTV(tcbp) \
+ (((tcbhead_t *) (tcbp))->dtv)
+
+# define TLS_DEFINE_INIT_TP(tp, pd) void *tp = (pd) + 1
+
+/* Code to initially initialize the thread pointer. This might need
+ special attention since 'errno' is not yet available and if the
+ operation can cause a failure 'errno' must not be touched. */
+# define TLS_INIT_TP(tcbp) \
+ ({ INTERNAL_SYSCALL_DECL (err); \
+ long result_var; \
+ result_var = INTERNAL_SYSCALL (set_thread_area, err, 1, \
+ (char *) (tcbp) + TLS_TCB_OFFSET); \
+ INTERNAL_SYSCALL_ERROR_P (result_var, err) \
+ ? "unknown error" : NULL; })
+
+/* Return the address of the dtv for the current thread. */
+# define THREAD_DTV() \
+ (((tcbhead_t *) (READ_THREAD_POINTER () - TLS_TCB_OFFSET))->dtv)
+
+/* Return the thread descriptor for the current thread. */
+# undef THREAD_SELF
+# define THREAD_SELF \
+ ((struct pthread *) (READ_THREAD_POINTER () \
+ - TLS_TCB_OFFSET - TLS_PRE_TCB_SIZE))
+
+/* Magic for libthread_db to know how to do THREAD_SELF. */
+# define DB_THREAD_SELF \
+ CONST_THREAD_AREA (32, sizeof (struct pthread))
+
+/* Access to data in the thread descriptor is easy. */
+# define THREAD_GETMEM(descr, member) \
+ descr->member
+# define THREAD_GETMEM_NC(descr, member, idx) \
+ descr->member[idx]
+# define THREAD_SETMEM(descr, member, value) \
+ descr->member = (value)
+# define THREAD_SETMEM_NC(descr, member, idx, value) \
+ descr->member[idx] = (value)
+
+/* Get and set the global scope generation counter in struct pthread. */
+# define THREAD_GSCOPE_IN_TCB 1
+# define THREAD_GSCOPE_FLAG_UNUSED 0
+# define THREAD_GSCOPE_FLAG_USED 1
+# define THREAD_GSCOPE_FLAG_WAIT 2
+# define THREAD_GSCOPE_RESET_FLAG() \
+ do \
+ { int __res \
+ = atomic_exchange_rel (&THREAD_SELF->header.gscope_flag, \
+ THREAD_GSCOPE_FLAG_UNUSED); \
+ if (__res == THREAD_GSCOPE_FLAG_WAIT) \
+ lll_futex_wake (&THREAD_SELF->header.gscope_flag, 1, LLL_PRIVATE); \
+ } \
+ while (0)
+# define THREAD_GSCOPE_SET_FLAG() \
+ do \
+ { \
+ THREAD_SELF->header.gscope_flag = THREAD_GSCOPE_FLAG_USED; \
+ atomic_write_barrier (); \
+ } \
+ while (0)
+# define THREAD_GSCOPE_WAIT() \
+ GL(dl_wait_lookup_done) ()
+
+#endif /* __ASSEMBLER__ */
+
+#endif /* tls.h */
diff --git a/sysdeps/csky/preconfigure b/sysdeps/csky/preconfigure
new file mode 100644
index 0000000000..16f3b60cf5
--- /dev/null
+++ b/sysdeps/csky/preconfigure
@@ -0,0 +1,37 @@
+case "$machine" in
+csky*)
+ abi=`$CC $CFLAGS $CPPFLAGS -E -dM -xc /dev/null |
+ sed -n 's/^#define __CSKYABI__ \(.*\)/\1/p'`
+ float_abi=`$CC $CFLAGS $CPPFLAGS -E -dM -xc /dev/null |
+ sed -n 's/^#define __CSKY_HARD_FLOAT__ \(.*\)/\1/p'`
+
+ case "$abi" in
+ 1)
+ echo "glibc does not support abiv1 yet" >&2
+ exit 1
+ ;;
+ 2)
+ machine=abiv2
+ ;;
+ *)
+ echo "Unknown abi" >&2
+ exit 1
+ ;;
+ esac
+
+ case "$float_abi" in
+ 1)
+ with_fp_cond=1
+ ;;
+ *)
+ with_fp_cond=0
+ ;;
+ esac
+
+ base_machine=csky
+ machine=csky/$machine
+
+ $as_echo "#define CSKYABI $abi" >>confdefs.h
+ $as_echo "#define CSKY_HARD_FLOAT $with_fp_cond" >>confdefs.h
+ ;;
+esac
diff --git a/sysdeps/csky/sfp-machine.h b/sysdeps/csky/sfp-machine.h
new file mode 100644
index 0000000000..69c6f33de0
--- /dev/null
+++ b/sysdeps/csky/sfp-machine.h
@@ -0,0 +1,50 @@
+#define _FP_W_TYPE_SIZE 32
+#define _FP_W_TYPE unsigned long
+#define _FP_WS_TYPE signed long
+#define _FP_I_TYPE long
+
+#define _FP_MUL_MEAT_S(R,X,Y) \
+ _FP_MUL_MEAT_1_wide(_FP_WFRACBITS_S,R,X,Y,umul_ppmm)
+#define _FP_MUL_MEAT_D(R,X,Y) \
+ _FP_MUL_MEAT_2_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm)
+#define _FP_MUL_MEAT_Q(R,X,Y) \
+ _FP_MUL_MEAT_4_wide(_FP_WFRACBITS_Q,R,X,Y,umul_ppmm)
+
+#define _FP_MUL_MEAT_DW_S(R,X,Y) \
+ _FP_MUL_MEAT_DW_1_wide(_FP_WFRACBITS_S,R,X,Y,umul_ppmm)
+#define _FP_MUL_MEAT_DW_D(R,X,Y) \
+ _FP_MUL_MEAT_DW_2_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm)
+#define _FP_MUL_MEAT_DW_Q(R,X,Y) \
+ _FP_MUL_MEAT_DW_4_wide(_FP_WFRACBITS_Q,R,X,Y,umul_ppmm)
+
+#define _FP_DIV_MEAT_S(R,X,Y) _FP_DIV_MEAT_1_loop(S,R,X,Y)
+#define _FP_DIV_MEAT_D(R,X,Y) _FP_DIV_MEAT_2_udiv(D,R,X,Y)
+#define _FP_DIV_MEAT_Q(R,X,Y) _FP_DIV_MEAT_4_udiv(Q,R,X,Y)
+
+#define _FP_NANFRAC_S _FP_QNANBIT_S
+#define _FP_NANFRAC_D _FP_QNANBIT_D, 0
+#define _FP_NANFRAC_Q _FP_QNANBIT_Q, 0, 0, 0
+#define _FP_NANSIGN_S 0
+#define _FP_NANSIGN_D 0
+#define _FP_NANSIGN_Q 0
+
+#define _FP_KEEPNANFRACP 1
+#define _FP_QNANNEGATEDP 0
+
+#define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \
+ do { \
+ if ((_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs) \
+ && !(_FP_FRAC_HIGH_RAW_##fs(Y) & _FP_QNANBIT_##fs)) \
+ { \
+ R##_s = Y##_s; \
+ _FP_FRAC_COPY_##wc(R,Y); \
+ } \
+ else \
+ { \
+ R##_s = X##_s; \
+ _FP_FRAC_COPY_##wc(R,X); \
+ } \
+ R##_c = FP_CLS_NAN; \
+ } while (0)
+
+#define _FP_TININESS_AFTER_ROUNDING 0
diff --git a/sysdeps/csky/sotruss-lib.c b/sysdeps/csky/sotruss-lib.c
new file mode 100644
index 0000000000..8a2b89772e
--- /dev/null
+++ b/sysdeps/csky/sotruss-lib.c
@@ -0,0 +1,49 @@
+/* Override generic sotruss-lib.c to define actual functions for C-SKY.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#define HAVE_ARCH_PLTENTER
+#define HAVE_ARCH_PLTEXIT
+
+#include <elf/sotruss-lib.c>
+
+ElfW(Addr)
+la_csky_gnu_pltenter (ElfW(Sym) *sym __attribute__ ((unused)),
+ unsigned int ndx __attribute__ ((unused)),
+ uintptr_t *refcook, uintptr_t *defcook,
+ La_csky_regs *regs, unsigned int *flags,
+ const char *symname, long int *framesizep)
+{
+ print_enter (refcook, defcook, symname,
+ regs->lr_reg[0], regs->lr_reg[1], regs->lr_reg[2],
+ *flags);
+
+ /* No need to copy anything, we will not need the parameters in any case. */
+ *framesizep = 0;
+
+ return sym->st_value;
+}
+
+unsigned int
+la_csky_gnu_pltexit (ElfW(Sym) *sym, unsigned int ndx, uintptr_t *refcook,
+ uintptr_t *defcook, const struct La_csky_regs *inregs,
+ struct La_csky_retval *outregs, const char *symname)
+{
+ print_exit (refcook, defcook, symname, outregs->lrv_v0);
+
+ return 0;
+}
diff --git a/sysdeps/csky/stackinfo.h b/sysdeps/csky/stackinfo.h
new file mode 100644
index 0000000000..c28a06baf0
--- /dev/null
+++ b/sysdeps/csky/stackinfo.h
@@ -0,0 +1,29 @@
+/* Stack environment definitions. C-SKY version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _STACKINFO_H
+#define _STACKINFO_H 1
+
+#include <elf.h>
+
+/* On C-SKY the stack grows down. */
+#define _STACK_GROWS_DOWN 1
+
+#define DEFAULT_STACK_PERMS (PF_R|PF_W)
+
+#endif /* stackinfo.h */
diff --git a/sysdeps/csky/sysdep.h b/sysdeps/csky/sysdep.h
new file mode 100644
index 0000000000..05f5b6560b
--- /dev/null
+++ b/sysdeps/csky/sysdep.h
@@ -0,0 +1,84 @@
+/* Assembler macros for C-SKY.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <sysdeps/generic/sysdep.h>
+#include <features.h>
+
+#ifdef __ASSEMBLER__
+
+# define ASM_SIZE_DIRECTIVE(name) .size name,.-name
+
+/* Define an entry point visible from C. */
+# define ENTRY(name) \
+ .globl name; \
+ .type name,@function; \
+ .align 4; \
+ name##:; \
+ cfi_startproc; \
+ CALL_MCOUNT
+
+# undef END
+# define END(name) \
+ cfi_endproc; \
+ ASM_SIZE_DIRECTIVE(name)
+
+/* If compiled for profiling, call `mcount' at the start of each function. */
+# ifdef PROF
+# ifdef __PIC__
+# define CALL_MCOUNT \
+ subi sp, 4; \
+ stw lr, (sp, 0); \
+ grs t0, .Lgetpc; \
+.Lgetpc: \
+ lrw gb, .Lgetpc@GOTPC; \
+ addu gb, t0; \
+ lrw t1, _mcount@PLT; \
+ ldr.w t0, (gb, t1 << 0); \
+ jmp t0;
+# else
+# define CALL_MCOUNT \
+ subi sp, 4; \
+ stw lr, (sp, 0); \
+ jbsr _mcount;
+# endif
+# else
+# define CALL_MCOUNT /* Do nothing. */
+# endif
+
+# if defined (__CK860__)
+/* Instruction fetch will be faster when the label is 16 bytes aligned.
+ Filling with nop instruction to avoid extra jump. */
+# define LABLE_ALIGN \
+ .balignw 16, 0x6c03
+
+# define PRE_BNEZAD(R)
+
+# define BNEZAD(R, L) \
+ bnezad R, L
+# else
+# define LABLE_ALIGN \
+ .balignw 8, 0x6c03
+
+# define PRE_BNEZAD(R) \
+ subi R, 1
+
+# define BNEZAD(R, L) \
+ bnez R, L
+# endif
+
+#endif
diff --git a/sysdeps/csky/tininess.h b/sysdeps/csky/tininess.h
new file mode 100644
index 0000000000..1db37790f8
--- /dev/null
+++ b/sysdeps/csky/tininess.h
@@ -0,0 +1 @@
+#define TININESS_AFTER_ROUNDING 1
diff --git a/sysdeps/csky/tst-audit.h b/sysdeps/csky/tst-audit.h
new file mode 100644
index 0000000000..530202e1fa
--- /dev/null
+++ b/sysdeps/csky/tst-audit.h
@@ -0,0 +1,23 @@
+/* Definitions for testing PLT entry/exit auditing. C-SKY version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#define pltenter la_csky_gnu_pltenter
+#define pltexit la_csky_gnu_pltexit
+#define La_regs La_csky_regs
+#define La_retval La_csky_retval
+#define int_retval lrv_reg[0]
diff --git a/sysdeps/generic/Makefile b/sysdeps/generic/Makefile
index d287bfafc6..9e0b8db385 100644
--- a/sysdeps/generic/Makefile
+++ b/sysdeps/generic/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1992-2018 Free Software Foundation, Inc.
+# Copyright (C) 1992-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
ifeq ($(subdir),string)
CFLAGS-wordcopy.c += -Wno-uninitialized
diff --git a/sysdeps/generic/_itoa.h b/sysdeps/generic/_itoa.h
index d54d0155c9..ae6226fd82 100644
--- a/sysdeps/generic/_itoa.h
+++ b/sysdeps/generic/_itoa.h
@@ -1,5 +1,5 @@
/* Internal function for converting integers to ASCII.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _ITOA_H
#define _ITOA_H
diff --git a/sysdeps/generic/abort-instr.h b/sysdeps/generic/abort-instr.h
index c86516889e..eac89d56ec 100644
--- a/sysdeps/generic/abort-instr.h
+++ b/sysdeps/generic/abort-instr.h
@@ -1,5 +1,5 @@
/* Magic instruction to crash quickly and reliably. Generic/stub version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _ABORT_INSTR_H
#define _ABORT_INSTR_H 1
diff --git a/sysdeps/generic/adaptive_spin_count.h b/sysdeps/generic/adaptive_spin_count.h
new file mode 100644
index 0000000000..1fc35226cd
--- /dev/null
+++ b/sysdeps/generic/adaptive_spin_count.h
@@ -0,0 +1,22 @@
+/* Maximum adaptive spin count by default
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+/* The choice of 100 spins for the default spin count for an adaptive spin
+ is a completely arbitrary choice that has not been evaluated thoroughly
+ using modern hardware. */
+#define DEFAULT_ADAPTIVE_COUNT 100
diff --git a/sysdeps/generic/aio_misc.h b/sysdeps/generic/aio_misc.h
index 0cd030bf53..9ea082a057 100644
--- a/sysdeps/generic/aio_misc.h
+++ b/sysdeps/generic/aio_misc.h
@@ -1,5 +1,5 @@
/* Internal declarations for <aio.h> functions implementation. Stub version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _AIO_MISC_H
#define _AIO_MISC_H 1
diff --git a/sysdeps/generic/atomic-machine.h b/sysdeps/generic/atomic-machine.h
index 15f33901fd..c4862fa6a7 100644
--- a/sysdeps/generic/atomic-machine.h
+++ b/sysdeps/generic/atomic-machine.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _ATOMIC_MACHINE_H
#define _ATOMIC_MACHINE_H 1
diff --git a/sysdeps/generic/device-nrs.h b/sysdeps/generic/device-nrs.h
index 03040d6ad1..3baf241197 100644
--- a/sysdeps/generic/device-nrs.h
+++ b/sysdeps/generic/device-nrs.h
@@ -1,5 +1,5 @@
/* Device numbers of devices used in the implementation. Generic version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DEVICE_NRS_H
#define _DEVICE_NRS_H 1
diff --git a/sysdeps/generic/dirstream.h b/sysdeps/generic/dirstream.h
index 399f00e458..67eff7ad87 100644
--- a/sysdeps/generic/dirstream.h
+++ b/sysdeps/generic/dirstream.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DIRSTREAM_H
diff --git a/sysdeps/generic/dl-cache.h b/sysdeps/generic/dl-cache.h
index cf43f1cf3b..9301a624a1 100644
--- a/sysdeps/generic/dl-cache.h
+++ b/sysdeps/generic/dl-cache.h
@@ -1,5 +1,5 @@
/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/sysdeps/generic/dl-dtprocnum.h b/sysdeps/generic/dl-dtprocnum.h
index dc2839b720..b6d57c8315 100644
--- a/sysdeps/generic/dl-dtprocnum.h
+++ b/sysdeps/generic/dl-dtprocnum.h
@@ -1,5 +1,5 @@
/* Configuration of lookup functions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Number of extra dynamic section entries for this architecture. By
default there are none. */
diff --git a/sysdeps/generic/dl-dtv.h b/sysdeps/generic/dl-dtv.h
index b2346b2b65..4f7e7b4311 100644
--- a/sysdeps/generic/dl-dtv.h
+++ b/sysdeps/generic/dl-dtv.h
@@ -1,5 +1,5 @@
/* Generic declarations for DTV-based TLS handling in the dynamic linker.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DL_DTV_H
#define _DL_DTV_H
diff --git a/sysdeps/generic/dl-fcntl.h b/sysdeps/generic/dl-fcntl.h
index 607bb36731..b5b7819142 100644
--- a/sysdeps/generic/dl-fcntl.h
+++ b/sysdeps/generic/dl-fcntl.h
@@ -1,6 +1,6 @@
/* Functions with hidden attribute internal to ld.so, which are declared
in include/fcntl.h. Generic version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
extern __typeof (__open) __open attribute_hidden;
extern __typeof (__fcntl) __fcntl attribute_hidden;
diff --git a/sysdeps/generic/dl-fileid.h b/sysdeps/generic/dl-fileid.h
index a7e2fcdfb7..6310d46c2a 100644
--- a/sysdeps/generic/dl-fileid.h
+++ b/sysdeps/generic/dl-fileid.h
@@ -1,5 +1,5 @@
/* File identity for the dynamic linker. Stub version.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdbool.h>
diff --git a/sysdeps/generic/dl-fptr.h b/sysdeps/generic/dl-fptr.h
index faea7a92cb..c7254eefe2 100644
--- a/sysdeps/generic/dl-fptr.h
+++ b/sysdeps/generic/dl-fptr.h
@@ -1,5 +1,5 @@
/* Function descriptors. Generic version.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef dl_fptr_h
#define dl_fptr_h 1
diff --git a/sysdeps/generic/dl-hash.h b/sysdeps/generic/dl-hash.h
index 1fe2efbddb..a9f16833b4 100644
--- a/sysdeps/generic/dl-hash.h
+++ b/sysdeps/generic/dl-hash.h
@@ -1,5 +1,5 @@
/* Compute hash value for given string according to ELF standard.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DL_HASH_H
#define _DL_HASH_H 1
diff --git a/sysdeps/generic/dl-irel.h b/sysdeps/generic/dl-irel.h
index 3c3365f29f..fec9da0714 100644
--- a/sysdeps/generic/dl-irel.h
+++ b/sysdeps/generic/dl-irel.h
@@ -1,5 +1,5 @@
/* Machine-dependent ELF indirect relocation inline functions.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DL_IREL_H
#define _DL_IREL_H
diff --git a/sysdeps/generic/dl-librecon.h b/sysdeps/generic/dl-librecon.h
index 5f2601d47b..e73bcbe91a 100644
--- a/sysdeps/generic/dl-librecon.h
+++ b/sysdeps/generic/dl-librecon.h
@@ -1,5 +1,5 @@
/* Optional code to distinguish library flavours.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DL_LIBRECON_H
#define _DL_LIBRECON_H 1
diff --git a/sysdeps/generic/dl-lookupcfg.h b/sysdeps/generic/dl-lookupcfg.h
index e7d3717014..4fb5f780b7 100644
--- a/sysdeps/generic/dl-lookupcfg.h
+++ b/sysdeps/generic/dl-lookupcfg.h
@@ -1,5 +1,5 @@
/* Configuration of lookup functions.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* The type of the return value of fixup/profile_fixup. */
#define DL_FIXUP_VALUE_TYPE ElfW(Addr)
diff --git a/sysdeps/generic/dl-machine.h b/sysdeps/generic/dl-machine.h
index fc0f2141f5..69fcc9ed8b 100644
--- a/sysdeps/generic/dl-machine.h
+++ b/sysdeps/generic/dl-machine.h
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation inline functions. Stub version.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define ELF_MACHINE_NAME "stub"
diff --git a/sysdeps/generic/dl-mman.h b/sysdeps/generic/dl-mman.h
index 2fd6051b65..9d1354a463 100644
--- a/sysdeps/generic/dl-mman.h
+++ b/sysdeps/generic/dl-mman.h
@@ -1,6 +1,6 @@
/* Functions with hidden attribute internal to ld.so, which are declared
in include/sys/mman.h. Generic version.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
extern __typeof (__mmap) __mmap attribute_hidden;
extern __typeof (__mprotect) __mprotect attribute_hidden;
diff --git a/sysdeps/generic/dl-osinfo.h b/sysdeps/generic/dl-osinfo.h
index 931b3710f1..1cd036fee3 100644
--- a/sysdeps/generic/dl-osinfo.h
+++ b/sysdeps/generic/dl-osinfo.h
@@ -1,5 +1,5 @@
/* Operating system specific code for generic dynamic loader functions.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <endian.h>
#include <stdint.h>
diff --git a/sysdeps/generic/dl-procinfo.h b/sysdeps/generic/dl-procinfo.h
index 70a74bdd37..1dd7ebc3a2 100644
--- a/sysdeps/generic/dl-procinfo.h
+++ b/sysdeps/generic/dl-procinfo.h
@@ -1,5 +1,5 @@
/* Stub version of processor capability information handling macros.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DL_PROCINFO_H
#define _DL_PROCINFO_H 1
diff --git a/sysdeps/generic/dl-prop.h b/sysdeps/generic/dl-prop.h
index a2b1d38c79..3637510f8f 100644
--- a/sysdeps/generic/dl-prop.h
+++ b/sysdeps/generic/dl-prop.h
@@ -1,5 +1,5 @@
/* Support for GNU properties. Generic version.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DL_PROP_H
#define _DL_PROP_H
diff --git a/sysdeps/generic/dl-sysdep.h b/sysdeps/generic/dl-sysdep.h
index 2cb8565b5b..69f793cee4 100644
--- a/sysdeps/generic/dl-sysdep.h
+++ b/sysdeps/generic/dl-sysdep.h
@@ -1,5 +1,5 @@
/* System-specific settings for dynamic linker code. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* No multiple inclusion protection need here because it's just macros.
We don't want to use _DL_SYSDEP_H in case we are #include_next'd. */
diff --git a/sysdeps/generic/dl-unistd.h b/sysdeps/generic/dl-unistd.h
index 8040b4b34a..f3f0bebefa 100644
--- a/sysdeps/generic/dl-unistd.h
+++ b/sysdeps/generic/dl-unistd.h
@@ -1,6 +1,6 @@
/* Functions with hidden attribute internal to ld.so, which are declared
in include/unistd.h. Generic version.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
extern __typeof (__access) __access attribute_hidden;
extern __typeof (__brk) __brk attribute_hidden;
diff --git a/sysdeps/generic/dwarf2.h b/sysdeps/generic/dwarf2.h
index 12219ad8bf..e87f6b6c4e 100644
--- a/sysdeps/generic/dwarf2.h
+++ b/sysdeps/generic/dwarf2.h
@@ -1,6 +1,6 @@
/* Declarations and definitions of codes relating to the DWARF2 symbolic
debugging information format.
- Copyright (C) 1992-2018 Free Software Foundation, Inc.
+ Copyright (C) 1992-2019 Free Software Foundation, Inc.
Contributed by Gary Funck (gary@intrepid.com). Derived from the
DWARF 1 implementation written by Ron Guilmette (rfg@monkeys.com).
@@ -18,7 +18,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DWARF2_H
#define _DWARF2_H 1
diff --git a/sysdeps/generic/elide.h b/sysdeps/generic/elide.h
index ea383a2f6b..cd55da0d0a 100644
--- a/sysdeps/generic/elide.h
+++ b/sysdeps/generic/elide.h
@@ -1,5 +1,5 @@
/* elide.h: Fallback noop lock elision support.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef ELIDE_H
#define ELIDE_H 1
diff --git a/sysdeps/generic/eloop-threshold.h b/sysdeps/generic/eloop-threshold.h
index 34391a2ee1..1b39e3e107 100644
--- a/sysdeps/generic/eloop-threshold.h
+++ b/sysdeps/generic/eloop-threshold.h
@@ -1,5 +1,5 @@
/* Threshold at which to diagnose ELOOP. Generic version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _ELOOP_THRESHOLD_H
#define _ELOOP_THRESHOLD_H 1
diff --git a/sysdeps/generic/exit-thread.h b/sysdeps/generic/exit-thread.h
index af14a4fdfd..8bb52e8ee5 100644
--- a/sysdeps/generic/exit-thread.h
+++ b/sysdeps/generic/exit-thread.h
@@ -1,5 +1,5 @@
/* Call to terminate the current thread. Stub version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This causes the current thread to exit, without affecting other
threads in the process if there are any. If there are no other
diff --git a/sysdeps/generic/fd_to_filename.h b/sysdeps/generic/fd_to_filename.h
index bacfe5bf52..4ace724f1a 100644
--- a/sysdeps/generic/fd_to_filename.h
+++ b/sysdeps/generic/fd_to_filename.h
@@ -1,5 +1,5 @@
/* Query filename corresponding to an open FD. Generic version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,12 +14,14 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+
+#define FD_TO_FILENAME_SIZE 0
/* In general there is no generic way to query filename for an open
file descriptor. */
static inline const char *
-fd_to_filename (int fd)
+fd_to_filename (int fd, char *buf)
{
return NULL;
}
diff --git a/sysdeps/generic/fenv_private.h b/sysdeps/generic/fenv_private.h
new file mode 100644
index 0000000000..e0af718843
--- /dev/null
+++ b/sysdeps/generic/fenv_private.h
@@ -0,0 +1,327 @@
+/* Optimized inline fenv.h functions for libm. Generic version.
+ 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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _FENV_PRIVATE_H
+#define _FENV_PRIVATE_H 1
+
+#include <fenv.h>
+#include <get-rounding-mode.h>
+
+/* The standards only specify one variant of the fenv.h interfaces.
+ But at least for some architectures we can be more efficient if we
+ know what operations are going to be performed. Therefore we
+ define additional interfaces. By default they refer to the normal
+ interfaces. */
+
+static __always_inline void
+default_libc_feholdexcept (fenv_t *e)
+{
+ (void) __feholdexcept (e);
+}
+
+#ifndef libc_feholdexcept
+# define libc_feholdexcept default_libc_feholdexcept
+#endif
+#ifndef libc_feholdexceptf
+# define libc_feholdexceptf default_libc_feholdexcept
+#endif
+#ifndef libc_feholdexceptl
+# define libc_feholdexceptl default_libc_feholdexcept
+#endif
+
+static __always_inline void
+default_libc_fesetround (int r)
+{
+ (void) __fesetround (r);
+}
+
+#ifndef libc_fesetround
+# define libc_fesetround default_libc_fesetround
+#endif
+#ifndef libc_fesetroundf
+# define libc_fesetroundf default_libc_fesetround
+#endif
+#ifndef libc_fesetroundl
+# define libc_fesetroundl default_libc_fesetround
+#endif
+
+static __always_inline void
+default_libc_feholdexcept_setround (fenv_t *e, int r)
+{
+ __feholdexcept (e);
+ __fesetround (r);
+}
+
+#ifndef libc_feholdexcept_setround
+# define libc_feholdexcept_setround default_libc_feholdexcept_setround
+#endif
+#ifndef libc_feholdexcept_setroundf
+# define libc_feholdexcept_setroundf default_libc_feholdexcept_setround
+#endif
+#ifndef libc_feholdexcept_setroundl
+# define libc_feholdexcept_setroundl default_libc_feholdexcept_setround
+#endif
+
+#ifndef libc_feholdsetround_53bit
+# define libc_feholdsetround_53bit libc_feholdsetround
+#endif
+
+#ifndef libc_fetestexcept
+# define libc_fetestexcept fetestexcept
+#endif
+#ifndef libc_fetestexceptf
+# define libc_fetestexceptf fetestexcept
+#endif
+#ifndef libc_fetestexceptl
+# define libc_fetestexceptl fetestexcept
+#endif
+
+static __always_inline void
+default_libc_fesetenv (fenv_t *e)
+{
+ (void) __fesetenv (e);
+}
+
+#ifndef libc_fesetenv
+# define libc_fesetenv default_libc_fesetenv
+#endif
+#ifndef libc_fesetenvf
+# define libc_fesetenvf default_libc_fesetenv
+#endif
+#ifndef libc_fesetenvl
+# define libc_fesetenvl default_libc_fesetenv
+#endif
+
+static __always_inline void
+default_libc_feupdateenv (fenv_t *e)
+{
+ (void) __feupdateenv (e);
+}
+
+#ifndef libc_feupdateenv
+# define libc_feupdateenv default_libc_feupdateenv
+#endif
+#ifndef libc_feupdateenvf
+# define libc_feupdateenvf default_libc_feupdateenv
+#endif
+#ifndef libc_feupdateenvl
+# define libc_feupdateenvl default_libc_feupdateenv
+#endif
+
+#ifndef libc_feresetround_53bit
+# define libc_feresetround_53bit libc_feresetround
+#endif
+
+static __always_inline int
+default_libc_feupdateenv_test (fenv_t *e, int ex)
+{
+ int ret = fetestexcept (ex);
+ __feupdateenv (e);
+ return ret;
+}
+
+#ifndef libc_feupdateenv_test
+# define libc_feupdateenv_test default_libc_feupdateenv_test
+#endif
+#ifndef libc_feupdateenv_testf
+# define libc_feupdateenv_testf default_libc_feupdateenv_test
+#endif
+#ifndef libc_feupdateenv_testl
+# define libc_feupdateenv_testl default_libc_feupdateenv_test
+#endif
+
+/* Save and set the rounding mode. The use of fenv_t to store the old mode
+ allows a target-specific version of this function to avoid converting the
+ rounding mode from the fpu format. By default we have no choice but to
+ manipulate the entire env. */
+
+#ifndef libc_feholdsetround
+# define libc_feholdsetround libc_feholdexcept_setround
+#endif
+#ifndef libc_feholdsetroundf
+# define libc_feholdsetroundf libc_feholdexcept_setroundf
+#endif
+#ifndef libc_feholdsetroundl
+# define libc_feholdsetroundl libc_feholdexcept_setroundl
+#endif
+
+/* ... and the reverse. */
+
+#ifndef libc_feresetround
+# define libc_feresetround libc_feupdateenv
+#endif
+#ifndef libc_feresetroundf
+# define libc_feresetroundf libc_feupdateenvf
+#endif
+#ifndef libc_feresetroundl
+# define libc_feresetroundl libc_feupdateenvl
+#endif
+
+/* ... and a version that also discards exceptions. */
+
+#ifndef libc_feresetround_noex
+# define libc_feresetround_noex libc_fesetenv
+#endif
+#ifndef libc_feresetround_noexf
+# define libc_feresetround_noexf libc_fesetenvf
+#endif
+#ifndef libc_feresetround_noexl
+# define libc_feresetround_noexl libc_fesetenvl
+#endif
+
+#ifndef HAVE_RM_CTX
+# define HAVE_RM_CTX 0
+#endif
+
+
+/* Default implementation using standard fenv functions.
+ Avoid unnecessary rounding mode changes by first checking the
+ current rounding mode. Note the use of __glibc_unlikely is
+ important for performance. */
+
+static __always_inline void
+default_libc_feholdsetround_ctx (struct rm_ctx *ctx, int round)
+{
+ ctx->updated_status = false;
+
+ /* Update rounding mode only if different. */
+ if (__glibc_unlikely (round != get_rounding_mode ()))
+ {
+ ctx->updated_status = true;
+ __fegetenv (&ctx->env);
+ __fesetround (round);
+ }
+}
+
+static __always_inline void
+default_libc_feresetround_ctx (struct rm_ctx *ctx)
+{
+ /* Restore the rounding mode if updated. */
+ if (__glibc_unlikely (ctx->updated_status))
+ __feupdateenv (&ctx->env);
+}
+
+static __always_inline void
+default_libc_feholdsetround_noex_ctx (struct rm_ctx *ctx, int round)
+{
+ /* Save exception flags and rounding mode, and disable exception
+ traps. */
+ __feholdexcept (&ctx->env);
+
+ /* Update rounding mode only if different. */
+ if (__glibc_unlikely (round != get_rounding_mode ()))
+ __fesetround (round);
+}
+
+static __always_inline void
+default_libc_feresetround_noex_ctx (struct rm_ctx *ctx)
+{
+ /* Restore exception flags and rounding mode. */
+ __fesetenv (&ctx->env);
+}
+
+#if HAVE_RM_CTX
+/* Set/Restore Rounding Modes only when necessary. If defined, these functions
+ set/restore floating point state only if the state needed within the lexical
+ block is different from the current state. This saves a lot of time when
+ the floating point unit is much slower than the fixed point units. */
+
+# ifndef libc_feholdsetround_noex_ctx
+# define libc_feholdsetround_noex_ctx libc_feholdsetround_ctx
+# endif
+# ifndef libc_feholdsetround_noexf_ctx
+# define libc_feholdsetround_noexf_ctx libc_feholdsetroundf_ctx
+# endif
+# ifndef libc_feholdsetround_noexl_ctx
+# define libc_feholdsetround_noexl_ctx libc_feholdsetroundl_ctx
+# endif
+
+# ifndef libc_feresetround_noex_ctx
+# define libc_feresetround_noex_ctx libc_fesetenv_ctx
+# endif
+# ifndef libc_feresetround_noexf_ctx
+# define libc_feresetround_noexf_ctx libc_fesetenvf_ctx
+# endif
+# ifndef libc_feresetround_noexl_ctx
+# define libc_feresetround_noexl_ctx libc_fesetenvl_ctx
+# endif
+
+#else
+
+# define libc_feholdsetround_ctx default_libc_feholdsetround_ctx
+# define libc_feresetround_ctx default_libc_feresetround_ctx
+# define libc_feholdsetround_noex_ctx default_libc_feholdsetround_noex_ctx
+# define libc_feresetround_noex_ctx default_libc_feresetround_noex_ctx
+
+# define libc_feholdsetroundf_ctx libc_feholdsetround_ctx
+# define libc_feholdsetroundl_ctx libc_feholdsetround_ctx
+# define libc_feresetroundf_ctx libc_feresetround_ctx
+# define libc_feresetroundl_ctx libc_feresetround_ctx
+
+# define libc_feholdsetround_noexf_ctx libc_feholdsetround_noex_ctx
+# define libc_feholdsetround_noexl_ctx libc_feholdsetround_noex_ctx
+# define libc_feresetround_noexf_ctx libc_feresetround_noex_ctx
+# define libc_feresetround_noexl_ctx libc_feresetround_noex_ctx
+
+#endif
+
+#ifndef libc_feholdsetround_53bit_ctx
+# define libc_feholdsetround_53bit_ctx libc_feholdsetround_ctx
+#endif
+#ifndef libc_feresetround_53bit_ctx
+# define libc_feresetround_53bit_ctx libc_feresetround_ctx
+#endif
+
+#define SET_RESTORE_ROUND_GENERIC(RM,ROUNDFUNC,CLEANUPFUNC) \
+ struct rm_ctx ctx __attribute__((cleanup (CLEANUPFUNC ## _ctx))); \
+ ROUNDFUNC ## _ctx (&ctx, (RM))
+
+/* Set the rounding mode within a lexical block. Restore the rounding mode to
+ the value at the start of the block. The exception mode must be preserved.
+ Exceptions raised within the block must be set in the exception flags.
+ Non-stop mode may be enabled inside the block. */
+
+#define SET_RESTORE_ROUND(RM) \
+ SET_RESTORE_ROUND_GENERIC (RM, libc_feholdsetround, libc_feresetround)
+#define SET_RESTORE_ROUNDF(RM) \
+ SET_RESTORE_ROUND_GENERIC (RM, libc_feholdsetroundf, libc_feresetroundf)
+#define SET_RESTORE_ROUNDL(RM) \
+ SET_RESTORE_ROUND_GENERIC (RM, libc_feholdsetroundl, libc_feresetroundl)
+
+/* Set the rounding mode within a lexical block. Restore the rounding mode to
+ the value at the start of the block. The exception mode must be preserved.
+ Exceptions raised within the block must be discarded, and exception flags
+ are restored to the value at the start of the block.
+ Non-stop mode must be enabled inside the block. */
+
+#define SET_RESTORE_ROUND_NOEX(RM) \
+ SET_RESTORE_ROUND_GENERIC (RM, libc_feholdsetround_noex, \
+ libc_feresetround_noex)
+#define SET_RESTORE_ROUND_NOEXF(RM) \
+ SET_RESTORE_ROUND_GENERIC (RM, libc_feholdsetround_noexf, \
+ libc_feresetround_noexf)
+#define SET_RESTORE_ROUND_NOEXL(RM) \
+ SET_RESTORE_ROUND_GENERIC (RM, libc_feholdsetround_noexl, \
+ libc_feresetround_noexl)
+
+/* Like SET_RESTORE_ROUND, but also set rounding precision to 53 bits. */
+#define SET_RESTORE_ROUND_53BIT(RM) \
+ SET_RESTORE_ROUND_GENERIC (RM, libc_feholdsetround_53bit, \
+ libc_feresetround_53bit)
+
+#endif /* fenv_private.h. */
diff --git a/sysdeps/generic/fips-private.h b/sysdeps/generic/fips-private.h
index 6a60bc5827..ede505ea99 100644
--- a/sysdeps/generic/fips-private.h
+++ b/sysdeps/generic/fips-private.h
@@ -1,5 +1,5 @@
/* Dummy implementation of FIPS compliance status test.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FIPS_PRIVATE_H
#define _FIPS_PRIVATE_H
diff --git a/sysdeps/generic/fix-fp-int-compare-invalid.h b/sysdeps/generic/fix-fp-int-compare-invalid.h
index 484adcd2cd..61e3c60856 100644
--- a/sysdeps/generic/fix-fp-int-compare-invalid.h
+++ b/sysdeps/generic/fix-fp-int-compare-invalid.h
@@ -1,6 +1,6 @@
/* Fix for missing "invalid" exceptions from floating-point
comparisons. Generic version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef FIX_FP_INT_COMPARE_INVALID_H
#define FIX_FP_INT_COMPARE_INVALID_H 1
diff --git a/sysdeps/generic/fix-fp-int-convert-overflow.h b/sysdeps/generic/fix-fp-int-convert-overflow.h
index d0a4ba9150..5b1d563f68 100644
--- a/sysdeps/generic/fix-fp-int-convert-overflow.h
+++ b/sysdeps/generic/fix-fp-int-convert-overflow.h
@@ -1,5 +1,5 @@
/* Fix for conversion of floating point to integer overflow. Generic version.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef FIX_FP_INT_CONVERT_OVERFLOW_H
#define FIX_FP_INT_CONVERT_OVERFLOW_H 1
diff --git a/sysdeps/generic/fix-int-fp-convert-zero.h b/sysdeps/generic/fix-int-fp-convert-zero.h
index 43ad6fda84..9797c21a34 100644
--- a/sysdeps/generic/fix-int-fp-convert-zero.h
+++ b/sysdeps/generic/fix-int-fp-convert-zero.h
@@ -1,5 +1,5 @@
/* Fix for conversion of integer 0 to floating point. Generic version.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef FIX_INT_FP_CONVERT_ZERO_H
#define FIX_INT_FP_CONVERT_ZERO_H 1
diff --git a/sysdeps/generic/fpu_control.h b/sysdeps/generic/fpu_control.h
index 8a7d8fb808..24a6616b2c 100644
--- a/sysdeps/generic/fpu_control.h
+++ b/sysdeps/generic/fpu_control.h
@@ -1,5 +1,5 @@
/* FPU control word definitions. Stub version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FPU_CONTROL_H
#define _FPU_CONTROL_H
diff --git a/sysdeps/generic/framestate.c b/sysdeps/generic/framestate.c
index 807447364e..a0405a0586 100644
--- a/sysdeps/generic/framestate.c
+++ b/sysdeps/generic/framestate.c
@@ -1,5 +1,5 @@
/* __frame_state_for unwinder helper function wrapper.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stdlib.h>
diff --git a/sysdeps/generic/gcc-compat.h b/sysdeps/generic/gcc-compat.h
index 404e082748..fe7bf30224 100644
--- a/sysdeps/generic/gcc-compat.h
+++ b/sysdeps/generic/gcc-compat.h
@@ -1,5 +1,5 @@
/* Macros for checking required GCC compatibility. Generic version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This is the base file. More-specific sysdeps/.../gcc-compat.h files
can define GCC_COMPAT_VERSION and then #include_next this file. */
diff --git a/sysdeps/generic/gccframe.h b/sysdeps/generic/gccframe.h
index 5467b5549e..9cec66e923 100644
--- a/sysdeps/generic/gccframe.h
+++ b/sysdeps/generic/gccframe.h
@@ -1,5 +1,5 @@
/* Definition of object in frame unwind info. Generic version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
diff --git a/sysdeps/generic/get-rounding-mode.h b/sysdeps/generic/get-rounding-mode.h
index 8d55ad7d7e..deec375eac 100644
--- a/sysdeps/generic/get-rounding-mode.h
+++ b/sysdeps/generic/get-rounding-mode.h
@@ -1,5 +1,5 @@
/* Determine floating-point rounding mode within libc. Generic version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _GET_ROUNDING_MODE_H
#define _GET_ROUNDING_MODE_H 1
diff --git a/sysdeps/generic/gmp-mparam.h b/sysdeps/generic/gmp-mparam.h
index 3b8ff3fedb..9e8c2f8df4 100644
--- a/sysdeps/generic/gmp-mparam.h
+++ b/sysdeps/generic/gmp-mparam.h
@@ -1,5 +1,5 @@
/* gmp-mparam.h -- Compiler/machine parameter header file.
-Copyright (C) 1991-2018 Free Software Foundation, Inc.
+Copyright (C) 1991-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -15,7 +15,7 @@ License for more details.
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not, see
-<http://www.gnu.org/licenses/>. */
+<https://www.gnu.org/licenses/>. */
#include <bits/wordsize.h>
diff --git a/sysdeps/generic/hp-timing-common.h b/sysdeps/generic/hp-timing-common.h
index 505c6bf5d2..6e03f531fc 100644
--- a/sysdeps/generic/hp-timing-common.h
+++ b/sysdeps/generic/hp-timing-common.h
@@ -1,5 +1,5 @@
/* High precision, low overhead timing functions. Generic version.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@@ -15,13 +15,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* In case a platform supports timers in the hardware the following macros
and types must be defined:
- - HP_TIMING_AVAIL: test for availability.
-
- HP_TIMING_INLINE: this macro is non-zero if the functionality is not
implemented using function calls but instead uses some inlined code
which might simply consist of a few assembler instructions. We have to
@@ -47,16 +45,16 @@
/* Accumulate ADD into SUM. No attempt is made to be thread-safe. */
#define HP_TIMING_ACCUM_NT(Sum, Diff) ((Sum) += (Diff))
+#define HP_TIMING_PRINT_SIZE (3 * sizeof (hp_timing_t) + 1)
+
/* Write a decimal representation of the timing value into the given string. */
#define HP_TIMING_PRINT(Dest, Len, Val) \
do { \
- char __buf[20]; \
+ char __buf[HP_TIMING_PRINT_SIZE]; \
char *__dest = (Dest); \
size_t __len = (Len); \
char *__cp = _itoa ((Val), __buf + sizeof (__buf), 10, 0); \
size_t __cp_len = MIN (__buf + sizeof (__buf) - __cp, __len); \
memcpy (__dest, __cp, __cp_len); \
- memcpy (__dest + __cp_len, " cycles", \
- MIN (__len - __cp_len, sizeof (" cycles"))); \
- __dest[__len - 1] = '\0'; \
+ __dest[__cp_len - 1] = '\0'; \
} while (0)
diff --git a/sysdeps/generic/hp-timing.h b/sysdeps/generic/hp-timing.h
index e2c02c2bc0..4a65a2cd54 100644
--- a/sysdeps/generic/hp-timing.h
+++ b/sysdeps/generic/hp-timing.h
@@ -1,5 +1,5 @@
/* High precision, low overhead timing functions. Generic version.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@@ -15,26 +15,28 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _HP_TIMING_H
#define _HP_TIMING_H 1
-/* There are no generic definitions for the times. We could write something
- using the `gettimeofday' system call where available but the overhead of
- the system call might be too high. */
+#include <time.h>
+#include <stdint.h>
+#include <hp-timing-common.h>
-/* Provide dummy definitions. */
-#define HP_TIMING_AVAIL (0)
-#define HP_SMALL_TIMING_AVAIL (0)
+/* It should not be used for ld.so. */
#define HP_TIMING_INLINE (0)
-typedef int hp_timing_t;
-#define HP_TIMING_NOW(var)
-#define HP_TIMING_DIFF(Diff, Start, End)
-#define HP_TIMING_ACCUM_NT(Sum, Diff)
-#define HP_TIMING_PRINT(Buf, Len, Val)
-
-/* Since this implementation is not available we tell the user about it. */
-#define HP_TIMING_NONAVAIL 1
+
+typedef uint64_t hp_timing_t;
+
+/* The clock_gettime (CLOCK_MONOTONIC) has unspecified starting time,
+ nano-second accuracy, and for some architectues is implemented as
+ vDSO symbol. */
+#define HP_TIMING_NOW(var) \
+({ \
+ struct timespec tv; \
+ __clock_gettime (CLOCK_MONOTONIC, &tv); \
+ (var) = (tv.tv_nsec + UINT64_C(1000000000) * tv.tv_sec); \
+})
#endif /* hp-timing.h */
diff --git a/sysdeps/generic/ifreq.h b/sysdeps/generic/ifreq.h
index 4b7b93e9a4..f54209dd23 100644
--- a/sysdeps/generic/ifreq.h
+++ b/sysdeps/generic/ifreq.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
diff --git a/sysdeps/generic/ifunc-init.h b/sysdeps/generic/ifunc-init.h
index 241e416179..a5127788af 100644
--- a/sysdeps/generic/ifunc-init.h
+++ b/sysdeps/generic/ifunc-init.h
@@ -1,6 +1,6 @@
/* IFUNC generic definitions.
This file is part of the GNU C Library.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-2019 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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* These macros are used to implement ifunc selection in C. To implement
an ifunc function, foo, which returns the address of __foo_impl1 or
diff --git a/sysdeps/generic/internal-signals.h b/sysdeps/generic/internal-signals.h
index 5282cffce0..a515e3e649 100644
--- a/sysdeps/generic/internal-signals.h
+++ b/sysdeps/generic/internal-signals.h
@@ -1,5 +1,5 @@
/* Special use of signals internally. Stub version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef __INTERNAL_SIGNALS_H
# define __INTERNAL_SIGNALS_H
diff --git a/sysdeps/generic/ldbl-classify-compat.h b/sysdeps/generic/ldbl-classify-compat.h
index d77ca18275..645e75fc40 100644
--- a/sysdeps/generic/ldbl-classify-compat.h
+++ b/sysdeps/generic/ldbl-classify-compat.h
@@ -1,6 +1,6 @@
/* Specify whether there should be compat symbol aliases for some
classification functions. Generic version.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LDBL_CLASSIFY_COMPAT_H
#define _LDBL_CLASSIFY_COMPAT_H 1
diff --git a/sysdeps/generic/ldconfig.h b/sysdeps/generic/ldconfig.h
index 59e20dc3ef..8a598576cf 100644
--- a/sysdeps/generic/ldconfig.h
+++ b/sysdeps/generic/ldconfig.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LDCONFIG_H
#define _LDCONFIG_H
diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h
index 95dc87519b..fc25a81e1c 100644
--- a/sysdeps/generic/ldsodefs.h
+++ b/sysdeps/generic/ldsodefs.h
@@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LDSODEFS_H
#define _LDSODEFS_H 1
@@ -47,6 +47,23 @@ __BEGIN_DECLS
#define ADDRIDX(tag) (DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGNUM \
+ DT_EXTRANUM + DT_VALNUM + DT_ADDRTAGIDX (tag))
+/* Type of GNU hash which the machine uses. */
+#ifndef ELF_MACHINE_GNU_HASH_ADDRIDX
+# define ELF_MACHINE_GNU_HASH_ADDRIDX ADDRIDX (DT_GNU_HASH)
+#endif
+
+/* Calculate the index of a symbol in GNU hash. */
+#ifndef ELF_MACHINE_HASH_SYMIDX
+# define ELF_MACHINE_HASH_SYMIDX(map, hasharr) \
+ ((hasharr) - (map)->l_gnu_chain_zero)
+#endif
+
+/* Setup MIPS xhash. Defined only for MIPS. */
+#ifndef ELF_MACHINE_XHASH_SETUP
+# define ELF_MACHINE_XHASH_SETUP(hash32, symbias, map) \
+ ((void) (hash32), (void) (symbias), (void) (map))
+#endif
+
/* We use this macro to refer to ELF types independent of the native wordsize.
`ElfW(TYPE)' is used in place of `Elf32_TYPE' or `Elf64_TYPE'. */
#define ELFW(type) _ElfW (ELF, __ELF_NATIVE_CLASS, type)
@@ -311,7 +328,14 @@ struct rtld_global
/* This is zero at program start to signal that the global scope map is
allocated by rtld. Later it keeps the size of the map. It might be
reset if in _dl_close if the last global object is removed. */
- size_t _ns_global_scope_alloc;
+ unsigned int _ns_global_scope_alloc;
+
+ /* During dlopen, this is the number of objects that still need to
+ be added to the global scope map. It has to be taken into
+ account when resizing the map, for future map additions after
+ recursive dlopen calls from ELF constructors. */
+ unsigned int _ns_global_scope_pending_adds;
+
/* Search table for unique objects. */
struct unique_sym_table
{
@@ -352,11 +376,6 @@ struct rtld_global
/* The object to be initialized first. */
EXTERN struct link_map *_dl_initfirst;
-#if HP_SMALL_TIMING_AVAIL
- /* Start time on CPU clock. */
- EXTERN hp_timing_t _dl_cpuclock_offset;
-#endif
-
/* Map of shared object to be profiled. */
EXTERN struct link_map *_dl_profile_map;
@@ -367,11 +386,12 @@ struct rtld_global
/* List of search directories. */
EXTERN struct r_search_path_elem *_dl_all_dirs;
- /* Structure describing the dynamic linker itself. We need to
- reserve memory for the data the audit libraries need. */
+ /* Structure describing the dynamic linker itself. */
EXTERN struct link_map _dl_rtld_map;
#ifdef SHARED
- struct auditstate audit_data[DL_NNS];
+ /* Used to store the audit information for the link map of the
+ dynamic loader. */
+ struct auditstate _dl_rtld_auditstate[DL_NNS];
#endif
#if defined SHARED && defined _LIBC_REENTRANT \
@@ -408,7 +428,7 @@ struct rtld_global
{
size_t gen;
struct link_map *map;
- } slotinfo[0];
+ } slotinfo[];
} *_dl_tls_dtv_slotinfo_list;
/* Number of modules in the static TLS block. */
EXTERN size_t _dl_tls_static_nelem;
@@ -689,10 +709,6 @@ rtld_hidden_proto (_dl_starting_up)
/* Random data provided by the kernel. */
extern void *_dl_random attribute_hidden attribute_relro;
-/* OS-dependent function to open the zero-fill device. */
-extern int _dl_sysdep_open_zero_fill (void); /* dl-sysdep.c */
-
-
/* Write message on the debug file descriptor. The parameters are
interpreted as for a `printf' call. All the lines start with a
tag showing the PID. */
@@ -852,7 +868,9 @@ libc_hidden_proto (_dl_catch_error)
/* Call OPERATE (ARGS). If no error occurs, set *EXCEPTION to zero.
Otherwise, store a copy of the raised exception in *EXCEPTION,
- which has to be freed by _dl_exception_free. */
+ which has to be freed by _dl_exception_free. As a special case, if
+ EXCEPTION is null, call OPERATE (ARGS) with exception handling
+ disabled (so that exceptions are fatal). */
int _dl_catch_exception (struct dl_exception *exception,
void (*operate) (void *), void *args);
libc_hidden_proto (_dl_catch_exception)
@@ -906,6 +924,9 @@ enum
DL_LOOKUP_RETURN_NEWEST = 2,
/* Set if dl_lookup* called with GSCOPE lock held. */
DL_LOOKUP_GSCOPE_LOCK = 4,
+ /* Set if dl_lookup is called for non-lazy relocation processing
+ from _dl_relocate_object in elf/dl-reloc.c. */
+ DL_LOOKUP_FOR_RELOCATE = 8,
};
/* Lookup versioned symbol. */
@@ -1123,8 +1144,15 @@ extern void *_dl_open (const char *name, int mode, const void *caller,
old scope, OLD can't be freed until no thread is using it. */
extern int _dl_scope_free (void *) attribute_hidden;
-/* Add module to slot information data. */
-extern void _dl_add_to_slotinfo (struct link_map *l) attribute_hidden;
+
+/* Add module to slot information data. If DO_ADD is false, only the
+ required memory is allocated. Must be called with GL
+ (dl_load_lock) acquired. If the function has already been called
+ for the link map L with !do_add, then this function will not raise
+ an exception, otherwise it is possible that it encounters a memory
+ allocation failure. */
+extern void _dl_add_to_slotinfo (struct link_map *l, bool do_add)
+ attribute_hidden;
/* Update slot information data for at least the generation of the
module with the given index. */
@@ -1166,7 +1194,21 @@ rtld_active (void)
initialized and active ld.so copy. */
return GLRO(dl_init_all_dirs) != NULL;
}
-#endif
+
+static inline struct auditstate *
+link_map_audit_state (struct link_map *l, size_t index)
+{
+ if (l == &GL (dl_rtld_map))
+ /* The auditstate array is stored separately. */
+ return &GL (dl_rtld_auditstate) [index];
+ else
+ {
+ /* The auditstate array follows the link map in memory. */
+ struct auditstate *base = (struct auditstate *) (l + 1);
+ return &base[index];
+ }
+}
+#endif /* SHARED */
__END_DECLS
diff --git a/sysdeps/generic/libc-lock.h b/sysdeps/generic/libc-lock.h
index 4f21f9c8c0..e59d960a28 100644
--- a/sysdeps/generic/libc-lock.h
+++ b/sysdeps/generic/libc-lock.h
@@ -1,5 +1,5 @@
/* libc-internal interface for mutex locks. Stub version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LIBC_LOCK_H
#define _LIBC_LOCK_H 1
diff --git a/sysdeps/generic/libc-mmap.h b/sysdeps/generic/libc-mmap.h
index 8de70ebf57..b22f3868d5 100644
--- a/sysdeps/generic/libc-mmap.h
+++ b/sysdeps/generic/libc-mmap.h
@@ -1,5 +1,5 @@
/* Internal logic for dealing with mmap quirks.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LIBC_MMAP_H
#define _LIBC_MMAP_H 1
diff --git a/sysdeps/generic/libc-start.h b/sysdeps/generic/libc-start.h
index e0361f655a..2be2ae1e2e 100644
--- a/sysdeps/generic/libc-start.h
+++ b/sysdeps/generic/libc-start.h
@@ -1,5 +1,5 @@
/* Generic definitions for libc main startup.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LIBC_START_H
#define _LIBC_START_H
diff --git a/sysdeps/generic/libc-tsd.h b/sysdeps/generic/libc-tsd.h
index 73e792dd0a..f5bbf11eb5 100644
--- a/sysdeps/generic/libc-tsd.h
+++ b/sysdeps/generic/libc-tsd.h
@@ -1,5 +1,5 @@
/* libc-internal interface for thread-specific data. Stub or TLS version.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _GENERIC_LIBC_TSD_H
#define _GENERIC_LIBC_TSD_H 1
diff --git a/sysdeps/generic/libm-alias-double.h b/sysdeps/generic/libm-alias-double.h
index b97d2f8c36..3566e821c3 100644
--- a/sysdeps/generic/libm-alias-double.h
+++ b/sysdeps/generic/libm-alias-double.h
@@ -1,5 +1,5 @@
/* Define aliases for libm double functions.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LIBM_ALIAS_DOUBLE_H
#define _LIBM_ALIAS_DOUBLE_H
diff --git a/sysdeps/generic/libm-alias-float.h b/sysdeps/generic/libm-alias-float.h
index 50e464f270..58e333a6f4 100644
--- a/sysdeps/generic/libm-alias-float.h
+++ b/sysdeps/generic/libm-alias-float.h
@@ -1,5 +1,5 @@
/* Define aliases for libm float functions.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LIBM_ALIAS_FLOAT_H
#define _LIBM_ALIAS_FLOAT_H
diff --git a/sysdeps/generic/libm-alias-float128.h b/sysdeps/generic/libm-alias-float128.h
index 3a3ff50ff7..48b3cbc890 100644
--- a/sysdeps/generic/libm-alias-float128.h
+++ b/sysdeps/generic/libm-alias-float128.h
@@ -1,5 +1,5 @@
/* Define aliases for libm _Float128 functions.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LIBM_ALIAS_FLOAT128_H
#define _LIBM_ALIAS_FLOAT128_H
diff --git a/sysdeps/generic/libm-alias-ldouble.h b/sysdeps/generic/libm-alias-ldouble.h
index 7abfe30121..4319857d08 100644
--- a/sysdeps/generic/libm-alias-ldouble.h
+++ b/sysdeps/generic/libm-alias-ldouble.h
@@ -1,5 +1,5 @@
/* Define aliases for libm long double functions.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LIBM_ALIAS_LDOUBLE_H
#define _LIBM_ALIAS_LDOUBLE_H
diff --git a/sysdeps/generic/libm-test-ulps b/sysdeps/generic/libm-test-ulps
index 7cfa1f8285..c96d364978 100644
--- a/sysdeps/generic/libm-test-ulps
+++ b/sysdeps/generic/libm-test-ulps
@@ -2,4 +2,4 @@
# This file is the fallback and contains
# no data
# You can create a new file with e.g. `test-double -u'
-# followed by `gen-libm-test.pl -u ULPs -n'.
+# followed by `gen-libm-test.py -u ULPs -n'.
diff --git a/sysdeps/generic/machine-gmon.h b/sysdeps/generic/machine-gmon.h
index 2463ad388e..d1573051b8 100644
--- a/sysdeps/generic/machine-gmon.h
+++ b/sysdeps/generic/machine-gmon.h
@@ -1,5 +1,5 @@
/* Machine-dependent definitions for profiling support. Generic GCC 2 version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* GCC version 2 gives us a perfect magical function to get
just the information we need:
diff --git a/sysdeps/generic/machine-lock.h b/sysdeps/generic/machine-lock.h
index b3e6724ed3..5b3a8875c3 100644
--- a/sysdeps/generic/machine-lock.h
+++ b/sysdeps/generic/machine-lock.h
@@ -1,5 +1,5 @@
/* Machine-specific definition for spin locks. Stub version.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MACHINE_LOCK_H
#define _MACHINE_LOCK_H
diff --git a/sysdeps/generic/machine-sp.h b/sysdeps/generic/machine-sp.h
index dc56ce4487..9784e0d0d0 100644
--- a/sysdeps/generic/machine-sp.h
+++ b/sysdeps/generic/machine-sp.h
@@ -1,5 +1,5 @@
/* Machine-specific function to return the stack pointer. Stub version.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MACHINE_SP_H
#define _MACHINE_SP_H
diff --git a/sysdeps/generic/malloc-alignment.h b/sysdeps/generic/malloc-alignment.h
index d60c74e89a..aabd404d94 100644
--- a/sysdeps/generic/malloc-alignment.h
+++ b/sysdeps/generic/malloc-alignment.h
@@ -1,5 +1,5 @@
/* Define MALLOC_ALIGNMENT for malloc. Generic version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _GENERIC_MALLOC_ALIGNMENT_H
#define _GENERIC_MALLOC_ALIGNMENT_H
diff --git a/sysdeps/generic/malloc-machine.h b/sysdeps/generic/malloc-machine.h
index 68ca3c7bc4..27b8070f45 100644
--- a/sysdeps/generic/malloc-machine.h
+++ b/sysdeps/generic/malloc-machine.h
@@ -1,6 +1,6 @@
/* Basic platform-independent macro definitions for mutexes,
thread-specific data and parameters for malloc.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _GENERIC_MALLOC_MACHINE_H
#define _GENERIC_MALLOC_MACHINE_H
diff --git a/sysdeps/generic/malloc-sysdep.h b/sysdeps/generic/malloc-sysdep.h
index 890684d900..b01b3b5992 100644
--- a/sysdeps/generic/malloc-sysdep.h
+++ b/sysdeps/generic/malloc-sysdep.h
@@ -1,5 +1,5 @@
/* System-specific malloc support functions. Generic version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdbool.h>
#include <unistd.h>
diff --git a/sysdeps/generic/math-barriers.h b/sysdeps/generic/math-barriers.h
index 425173149c..9c2df9abd5 100644
--- a/sysdeps/generic/math-barriers.h
+++ b/sysdeps/generic/math-barriers.h
@@ -1,5 +1,5 @@
/* Control when floating-point expressions are evaluated. Generic version.
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MATH_BARRIERS_H
#define _MATH_BARRIERS_H 1
diff --git a/sysdeps/generic/math-nan-payload-double.h b/sysdeps/generic/math-nan-payload-double.h
index cfcc53a7b6..a0b6b6ed47 100644
--- a/sysdeps/generic/math-nan-payload-double.h
+++ b/sysdeps/generic/math-nan-payload-double.h
@@ -1,5 +1,5 @@
/* NaN payload handling for double.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define SET_NAN_PAYLOAD(flt, mant) \
do \
diff --git a/sysdeps/generic/math-nan-payload-float.h b/sysdeps/generic/math-nan-payload-float.h
index 2a4ff8ca64..aecbd373e9 100644
--- a/sysdeps/generic/math-nan-payload-float.h
+++ b/sysdeps/generic/math-nan-payload-float.h
@@ -1,5 +1,5 @@
/* NaN payload handling for float.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define SET_NAN_PAYLOAD(flt, mant) \
do \
diff --git a/sysdeps/generic/math-tests-arch.h b/sysdeps/generic/math-tests-arch.h
index 4d0268897c..2240254a9c 100644
--- a/sysdeps/generic/math-tests-arch.h
+++ b/sysdeps/generic/math-tests-arch.h
@@ -1,5 +1,5 @@
/* Runtime architecture check for math tests.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* These macros used for architecture check in math tests runtime.
INIT_ARCH_EXT should set up for example some global variable which is
diff --git a/sysdeps/generic/math-tests-exceptions.h b/sysdeps/generic/math-tests-exceptions.h
new file mode 100644
index 0000000000..d9b6c027d1
--- /dev/null
+++ b/sysdeps/generic/math-tests-exceptions.h
@@ -0,0 +1,30 @@
+/* Configuration for math tests: support for exceptions. Generic version.
+ Copyright (C) 2013-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _MATH_TESTS_EXCEPTIONS_H
+#define _MATH_TESTS_EXCEPTIONS_H 1
+
+/* Indicate whether to run tests of floating-point exceptions for a
+ given floating-point type, given that the exception macros are
+ defined. All are run unless overridden. */
+#define EXCEPTION_TESTS_float 1
+#define EXCEPTION_TESTS_double 1
+#define EXCEPTION_TESTS_long_double 1
+#define EXCEPTION_TESTS_float128 1
+
+#endif /* math-tests-exceptions.h. */
diff --git a/sysdeps/generic/math-tests-rounding.h b/sysdeps/generic/math-tests-rounding.h
new file mode 100644
index 0000000000..8b70b4cd80
--- /dev/null
+++ b/sysdeps/generic/math-tests-rounding.h
@@ -0,0 +1,30 @@
+/* Configuration for math tests: rounding mode support. Generic version.
+ Copyright (C) 2013-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _MATH_TESTS_ROUNDING_H
+#define _MATH_TESTS_ROUNDING_H 1
+
+/* Indicate whether to run tests involving a given rounding mode for a
+ given floating-point type, given that fesetround succeeds for that
+ mode. All are run if fesetround succeeds unless overridden. */
+#define ROUNDING_TESTS_float(MODE) 1
+#define ROUNDING_TESTS_double(MODE) 1
+#define ROUNDING_TESTS_long_double(MODE) 1
+#define ROUNDING_TESTS_float128(MODE) 1
+
+#endif /* math-tests-rounding.h. */
diff --git a/sysdeps/generic/math-tests-snan-cast.h b/sysdeps/generic/math-tests-snan-cast.h
new file mode 100644
index 0000000000..510c203f7d
--- /dev/null
+++ b/sysdeps/generic/math-tests-snan-cast.h
@@ -0,0 +1,26 @@
+/* Configuration for math tests: casts of sNaN values. Generic version.
+ Copyright (C) 2013-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _MATH_TESTS_SNAN_CAST_H
+#define _MATH_TESTS_SNAN_CAST_H 1
+
+/* Indicate whether to run tests involving type casts of sNaN values.
+ These are run unless overridden. */
+#define SNAN_TESTS_TYPE_CAST 1
+
+#endif /* math-tests-snan-cast.h. */
diff --git a/sysdeps/generic/math-tests-snan-payload.h b/sysdeps/generic/math-tests-snan-payload.h
new file mode 100644
index 0000000000..fbdb12de25
--- /dev/null
+++ b/sysdeps/generic/math-tests-snan-payload.h
@@ -0,0 +1,28 @@
+/* Configuration for math tests: sNaN payloads. Generic version.
+ Copyright (C) 2016-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _MATH_TESTS_SNAN_PAYLOAD_H
+#define _MATH_TESTS_SNAN_PAYLOAD_H 1
+
+/* Indicate whether operations on signaling NaNs preserve the payload
+ (if possible; it is not possible with a zero payload if the high
+ bit is set for signaling NaNs) when generating a quiet NaN, and
+ this should be tested. */
+#define SNAN_TESTS_PRESERVE_PAYLOAD 1
+
+#endif /* math-tests-snan-payload.h. */
diff --git a/sysdeps/generic/math-tests-snan.h b/sysdeps/generic/math-tests-snan.h
new file mode 100644
index 0000000000..925c8e75fe
--- /dev/null
+++ b/sysdeps/generic/math-tests-snan.h
@@ -0,0 +1,30 @@
+/* Configuration for math tests: sNaN support. Generic version.
+ Copyright (C) 2013-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _MATH_TESTS_SNAN_H
+#define _MATH_TESTS_SNAN_H 1
+
+/* Indicate whether to run tests involving sNaN values for the float,
+ double, long double and _Float128 C data types, respectively. All
+ are run unless overridden. */
+#define SNAN_TESTS_float 1
+#define SNAN_TESTS_double 1
+#define SNAN_TESTS_long_double 1
+#define SNAN_TESTS_float128 1
+
+#endif /* math-tests-snan.h. */
diff --git a/sysdeps/generic/math-tests-trap-force.h b/sysdeps/generic/math-tests-trap-force.h
new file mode 100644
index 0000000000..d5b4873522
--- /dev/null
+++ b/sysdeps/generic/math-tests-trap-force.h
@@ -0,0 +1,30 @@
+/* Configuration for math tests: support for setting exception flags
+ without causing enabled traps. Generic version.
+ Copyright (C) 2016-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _MATH_TESTS_TRAP_FORCE_H
+#define _MATH_TESTS_TRAP_FORCE_H 1
+
+/* Indicate whether exception traps, if enabled, occur whenever an
+ exception flag is set explicitly, so it is not possible to set flag
+ bits with traps enabled without causing traps to be taken. If
+ traps cannot be enabled, the value of this macro does not
+ matter. */
+#define EXCEPTION_SET_FORCES_TRAP 0
+
+#endif /* math-tests-trap-force.h. */
diff --git a/sysdeps/generic/math-tests-trap.h b/sysdeps/generic/math-tests-trap.h
new file mode 100644
index 0000000000..1b22a2d0eb
--- /dev/null
+++ b/sysdeps/generic/math-tests-trap.h
@@ -0,0 +1,32 @@
+/* Configuration for math tests: support for enabling exception traps.
+ Generic version.
+ Copyright (C) 2014-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _MATH_TESTS_TRAP_H
+#define _MATH_TESTS_TRAP_H 1
+
+/* Indicate whether the given exception trap(s) can be enabled in
+ feenableexcept. If non-zero, the traps are always supported. If
+ zero, traps may or may not be supported depending on the target
+ (this can be determined by checking the return value of
+ feenableexcept). This enables skipping of tests which use traps.
+ By default traps are supported unless overridden. */
+#define EXCEPTION_ENABLE_SUPPORTED(EXCEPT) \
+ (EXCEPTION_TESTS_float || EXCEPTION_TESTS_double)
+
+#endif /* math-tests-trap.h. */
diff --git a/sysdeps/generic/math-tests.h b/sysdeps/generic/math-tests.h
index cf9eff4691..f818cb50d5 100644
--- a/sysdeps/generic/math-tests.h
+++ b/sysdeps/generic/math-tests.h
@@ -1,5 +1,5 @@
/* Configuration for math tests. Generic version.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <bits/floatn.h>
@@ -33,92 +33,18 @@
: PREFIX ## long_double ARGS)
#endif
-/* Indicate whether to run tests involving sNaN values for the float, double,
- and long double C data types, respectively. All are run unless
- overridden. */
-#ifndef SNAN_TESTS_float
-# define SNAN_TESTS_float 1
-#endif
-#ifndef SNAN_TESTS_double
-# define SNAN_TESTS_double 1
-#endif
-#ifndef SNAN_TESTS_long_double
-# define SNAN_TESTS_long_double 1
-#endif
-#ifndef SNAN_TESTS_float128
-# define SNAN_TESTS_float128 1
-#endif
-
/* Return nonzero value if to run tests involving sNaN values for X. */
#define SNAN_TESTS(x) MATH_TESTS_TG (SNAN_TESTS_, , x)
-/* Indicate whether to run tests involving type casts of sNaN values. These
- are run unless overridden. */
-#ifndef SNAN_TESTS_TYPE_CAST
-# define SNAN_TESTS_TYPE_CAST 1
-#endif
-
-/* Indicate whether operations on signaling NaNs preserve the payload
- (if possible; it is not possible with a zero payload if the high
- bit is set for signaling NaNs) when generating a quiet NaN, and
- this should be tested. */
-#ifndef SNAN_TESTS_PRESERVE_PAYLOAD
-# define SNAN_TESTS_PRESERVE_PAYLOAD 1
-#endif
-
-/* Indicate whether to run tests involving a given rounding mode for a
- given floating-point type, given that fesetround succeeds for that
- mode. All are run if fesetround succeeds unless overridden. */
-#ifndef ROUNDING_TESTS_float
-# define ROUNDING_TESTS_float(MODE) 1
-#endif
-#ifndef ROUNDING_TESTS_double
-# define ROUNDING_TESTS_double(MODE) 1
-#endif
-#ifndef ROUNDING_TESTS_long_double
-# define ROUNDING_TESTS_long_double(MODE) 1
-#endif
-#ifndef ROUNDING_TESTS_float128
-# define ROUNDING_TESTS_float128(MODE) 1
-#endif
-
#define ROUNDING_TESTS(TYPE, MODE) \
MATH_TESTS_TG (ROUNDING_TESTS_, (MODE), TYPE)
-/* Indicate whether to run tests of floating-point exceptions for a
- given floating-point type, given that the exception macros are
- defined. All are run unless overridden. */
-#ifndef EXCEPTION_TESTS_float
-# define EXCEPTION_TESTS_float 1
-#endif
-#ifndef EXCEPTION_TESTS_double
-# define EXCEPTION_TESTS_double 1
-#endif
-#ifndef EXCEPTION_TESTS_long_double
-# define EXCEPTION_TESTS_long_double 1
-#endif
-#ifndef EXCEPTION_TESTS_float128
-# define EXCEPTION_TESTS_float128 1
-#endif
-
#define EXCEPTION_TESTS(TYPE) MATH_TESTS_TG (EXCEPTION_TESTS_, , TYPE)
-/* Indicate whether the given exception trap(s) can be enabled
- in feenableexcept. If non-zero, the traps are always supported.
- If zero, traps may or may not be supported depending on the
- target (this can be determined by checking the return value
- of feenableexcept). This enables skipping of tests which use
- traps. By default traps are supported unless overridden. */
-#ifndef EXCEPTION_ENABLE_SUPPORTED
-# define EXCEPTION_ENABLE_SUPPORTED(EXCEPT) \
- (EXCEPTION_TESTS_float || EXCEPTION_TESTS_double)
-#endif
-
-/* Indicate whether exception traps, if enabled, occur whenever an
- exception flag is set explicitly, so it is not possible to set flag
- bits with traps enabled without causing traps to be taken. If
- traps cannot be enabled, the value of this macro does not
- matter. */
-#ifndef EXCEPTION_SET_FORCES_TRAP
-# define EXCEPTION_SET_FORCES_TRAP 0
-#endif
+#include <math-tests-exceptions.h>
+#include <math-tests-rounding.h>
+#include <math-tests-snan.h>
+#include <math-tests-snan-cast.h>
+#include <math-tests-snan-payload.h>
+#include <math-tests-trap.h>
+#include <math-tests-trap-force.h>
diff --git a/sysdeps/generic/math-type-macros-double.h b/sysdeps/generic/math-type-macros-double.h
index be5d94488f..cb0e9fe5ab 100644
--- a/sysdeps/generic/math-type-macros-double.h
+++ b/sysdeps/generic/math-type-macros-double.h
@@ -1,5 +1,5 @@
/* Helper macros for double variants of type generic functions of libm.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MATH_TYPE_MACROS_DOUBLE
#define _MATH_TYPE_MACROS_DOUBLE
diff --git a/sysdeps/generic/math-type-macros-float.h b/sysdeps/generic/math-type-macros-float.h
index 1f280950cd..6f91f7f594 100644
--- a/sysdeps/generic/math-type-macros-float.h
+++ b/sysdeps/generic/math-type-macros-float.h
@@ -1,5 +1,5 @@
/* Helper macros for float variants of type generic functions of libm.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MATH_TYPE_MACROS_FLOAT
#define _MATH_TYPE_MACROS_FLOAT
diff --git a/sysdeps/generic/math-type-macros-float128.h b/sysdeps/generic/math-type-macros-float128.h
index c36785fbe3..f0283378ce 100644
--- a/sysdeps/generic/math-type-macros-float128.h
+++ b/sysdeps/generic/math-type-macros-float128.h
@@ -1,5 +1,5 @@
/* Helper macros for _Float128 variants of type generic functions of libm.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MATH_TYPE_MACROS_FLOAT128
#define _MATH_TYPE_MACROS_FLOAT128
diff --git a/sysdeps/generic/math-type-macros-ldouble.h b/sysdeps/generic/math-type-macros-ldouble.h
index 300dd18f94..506762c8aa 100644
--- a/sysdeps/generic/math-type-macros-ldouble.h
+++ b/sysdeps/generic/math-type-macros-ldouble.h
@@ -1,5 +1,5 @@
/* Helper macros for long double variants of type generic functions of libm.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MATH_TYPE_MACROS_LDOUBLE
#define _MATH_TYPE_MACROS_LDOUBLE
diff --git a/sysdeps/generic/math-type-macros.h b/sysdeps/generic/math-type-macros.h
index 5250815253..6cd88c8879 100644
--- a/sysdeps/generic/math-type-macros.h
+++ b/sysdeps/generic/math-type-macros.h
@@ -1,5 +1,5 @@
/* Helper macros for type generic function implementations within libm.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MATH_TYPE_MACROS
#define _MATH_TYPE_MACROS
@@ -101,7 +101,7 @@
#define M_HUGE_VAL (M_SUF (__builtin_huge_val) ())
/* Helper macros for commonly used functions. */
-#define M_COPYSIGN M_SUF (__copysign)
+#define M_COPYSIGN M_SUF (copysign)
#define M_FABS M_SUF (fabs)
#define M_SINCOS M_SUF (__sincos)
#define M_SCALBN M_SUF (__scalbn)
diff --git a/sysdeps/generic/math-use-builtins.h b/sysdeps/generic/math-use-builtins.h
new file mode 100644
index 0000000000..770b54ce61
--- /dev/null
+++ b/sysdeps/generic/math-use-builtins.h
@@ -0,0 +1,63 @@
+/* Using math gcc builtins instead of generic implementation. Generic version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef MATH_USE_BUILTINS_H
+#define MATH_USE_BUILTINS_H 1
+
+#include <features.h> /* For __GNUC_PREREQ. */
+
+/* Define these macros to 1 to use __builtin_xyz instead of the
+ generic implementation. */
+#define USE_NEARBYINT_BUILTIN 0
+#define USE_NEARBYINTF_BUILTIN 0
+#define USE_NEARBYINTL_BUILTIN 0
+#define USE_NEARBYINTF128_BUILTIN 0
+
+#define USE_RINT_BUILTIN 0
+#define USE_RINTF_BUILTIN 0
+#define USE_RINTL_BUILTIN 0
+#define USE_RINTF128_BUILTIN 0
+
+#define USE_FLOOR_BUILTIN 0
+#define USE_FLOORF_BUILTIN 0
+#define USE_FLOORL_BUILTIN 0
+#define USE_FLOORF128_BUILTIN 0
+
+#define USE_CEIL_BUILTIN 0
+#define USE_CEILF_BUILTIN 0
+#define USE_CEILL_BUILTIN 0
+#define USE_CEILF128_BUILTIN 0
+
+#define USE_TRUNC_BUILTIN 0
+#define USE_TRUNCF_BUILTIN 0
+#define USE_TRUNCL_BUILTIN 0
+#define USE_TRUNCF128_BUILTIN 0
+
+#define USE_ROUND_BUILTIN 0
+#define USE_ROUNDF_BUILTIN 0
+#define USE_ROUNDL_BUILTIN 0
+#define USE_ROUNDF128_BUILTIN 0
+
+#define USE_COPYSIGNL_BUILTIN 1
+#if __GNUC_PREREQ (7, 0)
+# define USE_COPYSIGNF128_BUILTIN 1
+#else
+# define USE_COPYSIGNF128_BUILTIN 0
+#endif
+
+#endif /* math-use-builtins.h */
diff --git a/sysdeps/generic/math_ldbl_opt.h b/sysdeps/generic/math_ldbl_opt.h
index 8a5d8ba107..fbd2c82e2f 100644
--- a/sysdeps/generic/math_ldbl_opt.h
+++ b/sysdeps/generic/math_ldbl_opt.h
@@ -6,9 +6,12 @@
for platforms where compatibility symbols are required for a previous
ABI that defined long double functions as aliases for the double code. */
+#include <shlib-compat.h>
+
#define LONG_DOUBLE_COMPAT(lib, introduced) 0
#define long_double_symbol(lib, local, symbol)
#define ldbl_hidden_def(local, name) libc_hidden_def (name)
#define ldbl_strong_alias(name, aliasname) strong_alias (name, aliasname)
#define ldbl_weak_alias(name, aliasname) weak_alias (name, aliasname)
-#define __ldbl_is_dbl 0
+#define ldbl_compat_symbol(lib, local, symbol, version) \
+ compat_symbol (lib, local, symbol, version)
diff --git a/sysdeps/generic/math_private.h b/sysdeps/generic/math_private.h
index 1212abaf47..9296324d24 100644
--- a/sysdeps/generic/math_private.h
+++ b/sysdeps/generic/math_private.h
@@ -17,10 +17,9 @@
#define _MATH_PRIVATE_H_
#include <endian.h>
+#include <stdbool.h>
#include <stdint.h>
#include <sys/types.h>
-#include <fenv.h>
-#include <get-rounding-mode.h>
/* Gather machine dependent _Floatn support. */
#include <bits/floatn.h>
@@ -154,35 +153,6 @@ do { \
} while (0)
#endif
-/* 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
-
/* We need to guarantee an expansion of name when building
ldbl-128 files as another type (e.g _Float128). */
#define mathx_hidden_def(name) hidden_def(name)
@@ -223,33 +193,9 @@ do { \
# undef _Mdouble_
#endif
-#if __HAVE_DISTINCT_FLOAT128
-
-/* __builtin_isinf_sign is broken in GCC < 7 for float128. */
-# if ! __GNUC_PREREQ (7, 0)
-# include <ieee754_float128.h>
-extern inline int
-__isinff128 (_Float128 x)
-{
- int64_t hx, lx;
- GET_FLOAT128_WORDS64 (hx, lx, x);
- lx |= (hx & 0x7fffffffffffffffLL) ^ 0x7fff000000000000LL;
- lx |= -lx;
- return ~(lx >> 63) & (hx >> 62);
-}
-# endif
-
-extern inline _Float128
-fabsf128 (_Float128 x)
-{
- return __builtin_fabsf128 (x);
-}
-#endif
-
/* Prototypes for functions of the IBM Accurate Mathematical Library. */
-extern double __exp1 (double __x, double __xx);
extern double __sin (double __x);
extern double __cos (double __x);
extern int __branred (double __x, double *__a, double *__aa);
@@ -262,396 +208,4 @@ extern double __mpsin (double __x, double __dx, bool __range_reduce);
extern double __mpcos (double __x, double __dx, bool __range_reduce);
extern void __docos (double __x, double __dx, double __v[]);
-/* The standards only specify one variant of the fenv.h interfaces.
- But at least for some architectures we can be more efficient if we
- know what operations are going to be performed. Therefore we
- define additional interfaces. By default they refer to the normal
- interfaces. */
-
-static __always_inline void
-default_libc_feholdexcept (fenv_t *e)
-{
- (void) __feholdexcept (e);
-}
-
-#ifndef libc_feholdexcept
-# define libc_feholdexcept default_libc_feholdexcept
-#endif
-#ifndef libc_feholdexceptf
-# define libc_feholdexceptf default_libc_feholdexcept
-#endif
-#ifndef libc_feholdexceptl
-# define libc_feholdexceptl default_libc_feholdexcept
-#endif
-
-static __always_inline void
-default_libc_fesetround (int r)
-{
- (void) __fesetround (r);
-}
-
-#ifndef libc_fesetround
-# define libc_fesetround default_libc_fesetround
-#endif
-#ifndef libc_fesetroundf
-# define libc_fesetroundf default_libc_fesetround
-#endif
-#ifndef libc_fesetroundl
-# define libc_fesetroundl default_libc_fesetround
-#endif
-
-static __always_inline void
-default_libc_feholdexcept_setround (fenv_t *e, int r)
-{
- __feholdexcept (e);
- __fesetround (r);
-}
-
-#ifndef libc_feholdexcept_setround
-# define libc_feholdexcept_setround default_libc_feholdexcept_setround
-#endif
-#ifndef libc_feholdexcept_setroundf
-# define libc_feholdexcept_setroundf default_libc_feholdexcept_setround
-#endif
-#ifndef libc_feholdexcept_setroundl
-# define libc_feholdexcept_setroundl default_libc_feholdexcept_setround
-#endif
-
-#ifndef libc_feholdsetround_53bit
-# define libc_feholdsetround_53bit libc_feholdsetround
-#endif
-
-#ifndef libc_fetestexcept
-# define libc_fetestexcept fetestexcept
-#endif
-#ifndef libc_fetestexceptf
-# define libc_fetestexceptf fetestexcept
-#endif
-#ifndef libc_fetestexceptl
-# define libc_fetestexceptl fetestexcept
-#endif
-
-static __always_inline void
-default_libc_fesetenv (fenv_t *e)
-{
- (void) __fesetenv (e);
-}
-
-#ifndef libc_fesetenv
-# define libc_fesetenv default_libc_fesetenv
-#endif
-#ifndef libc_fesetenvf
-# define libc_fesetenvf default_libc_fesetenv
-#endif
-#ifndef libc_fesetenvl
-# define libc_fesetenvl default_libc_fesetenv
-#endif
-
-static __always_inline void
-default_libc_feupdateenv (fenv_t *e)
-{
- (void) __feupdateenv (e);
-}
-
-#ifndef libc_feupdateenv
-# define libc_feupdateenv default_libc_feupdateenv
-#endif
-#ifndef libc_feupdateenvf
-# define libc_feupdateenvf default_libc_feupdateenv
-#endif
-#ifndef libc_feupdateenvl
-# define libc_feupdateenvl default_libc_feupdateenv
-#endif
-
-#ifndef libc_feresetround_53bit
-# define libc_feresetround_53bit libc_feresetround
-#endif
-
-static __always_inline int
-default_libc_feupdateenv_test (fenv_t *e, int ex)
-{
- int ret = fetestexcept (ex);
- __feupdateenv (e);
- return ret;
-}
-
-#ifndef libc_feupdateenv_test
-# define libc_feupdateenv_test default_libc_feupdateenv_test
-#endif
-#ifndef libc_feupdateenv_testf
-# define libc_feupdateenv_testf default_libc_feupdateenv_test
-#endif
-#ifndef libc_feupdateenv_testl
-# define libc_feupdateenv_testl default_libc_feupdateenv_test
-#endif
-
-/* Save and set the rounding mode. The use of fenv_t to store the old mode
- allows a target-specific version of this function to avoid converting the
- rounding mode from the fpu format. By default we have no choice but to
- manipulate the entire env. */
-
-#ifndef libc_feholdsetround
-# define libc_feholdsetround libc_feholdexcept_setround
-#endif
-#ifndef libc_feholdsetroundf
-# define libc_feholdsetroundf libc_feholdexcept_setroundf
-#endif
-#ifndef libc_feholdsetroundl
-# define libc_feholdsetroundl libc_feholdexcept_setroundl
-#endif
-
-/* ... and the reverse. */
-
-#ifndef libc_feresetround
-# define libc_feresetround libc_feupdateenv
-#endif
-#ifndef libc_feresetroundf
-# define libc_feresetroundf libc_feupdateenvf
-#endif
-#ifndef libc_feresetroundl
-# define libc_feresetroundl libc_feupdateenvl
-#endif
-
-/* ... and a version that also discards exceptions. */
-
-#ifndef libc_feresetround_noex
-# define libc_feresetround_noex libc_fesetenv
-#endif
-#ifndef libc_feresetround_noexf
-# define libc_feresetround_noexf libc_fesetenvf
-#endif
-#ifndef libc_feresetround_noexl
-# define libc_feresetround_noexl libc_fesetenvl
-#endif
-
-#ifndef HAVE_RM_CTX
-# define HAVE_RM_CTX 0
-#endif
-
-
-/* Default implementation using standard fenv functions.
- Avoid unnecessary rounding mode changes by first checking the
- current rounding mode. Note the use of __glibc_unlikely is
- important for performance. */
-
-static __always_inline void
-default_libc_feholdsetround_ctx (struct rm_ctx *ctx, int round)
-{
- ctx->updated_status = false;
-
- /* Update rounding mode only if different. */
- if (__glibc_unlikely (round != get_rounding_mode ()))
- {
- ctx->updated_status = true;
- __fegetenv (&ctx->env);
- __fesetround (round);
- }
-}
-
-static __always_inline void
-default_libc_feresetround_ctx (struct rm_ctx *ctx)
-{
- /* Restore the rounding mode if updated. */
- if (__glibc_unlikely (ctx->updated_status))
- __feupdateenv (&ctx->env);
-}
-
-static __always_inline void
-default_libc_feholdsetround_noex_ctx (struct rm_ctx *ctx, int round)
-{
- /* Save exception flags and rounding mode, and disable exception
- traps. */
- __feholdexcept (&ctx->env);
-
- /* Update rounding mode only if different. */
- if (__glibc_unlikely (round != get_rounding_mode ()))
- __fesetround (round);
-}
-
-static __always_inline void
-default_libc_feresetround_noex_ctx (struct rm_ctx *ctx)
-{
- /* Restore exception flags and rounding mode. */
- __fesetenv (&ctx->env);
-}
-
-#if HAVE_RM_CTX
-/* Set/Restore Rounding Modes only when necessary. If defined, these functions
- set/restore floating point state only if the state needed within the lexical
- block is different from the current state. This saves a lot of time when
- the floating point unit is much slower than the fixed point units. */
-
-# ifndef libc_feholdsetround_noex_ctx
-# define libc_feholdsetround_noex_ctx libc_feholdsetround_ctx
-# endif
-# ifndef libc_feholdsetround_noexf_ctx
-# define libc_feholdsetround_noexf_ctx libc_feholdsetroundf_ctx
-# endif
-# ifndef libc_feholdsetround_noexl_ctx
-# define libc_feholdsetround_noexl_ctx libc_feholdsetroundl_ctx
-# endif
-
-# ifndef libc_feresetround_noex_ctx
-# define libc_feresetround_noex_ctx libc_fesetenv_ctx
-# endif
-# ifndef libc_feresetround_noexf_ctx
-# define libc_feresetround_noexf_ctx libc_fesetenvf_ctx
-# endif
-# ifndef libc_feresetround_noexl_ctx
-# define libc_feresetround_noexl_ctx libc_fesetenvl_ctx
-# endif
-
-#else
-
-# define libc_feholdsetround_ctx default_libc_feholdsetround_ctx
-# define libc_feresetround_ctx default_libc_feresetround_ctx
-# define libc_feholdsetround_noex_ctx default_libc_feholdsetround_noex_ctx
-# define libc_feresetround_noex_ctx default_libc_feresetround_noex_ctx
-
-# define libc_feholdsetroundf_ctx libc_feholdsetround_ctx
-# define libc_feholdsetroundl_ctx libc_feholdsetround_ctx
-# define libc_feresetroundf_ctx libc_feresetround_ctx
-# define libc_feresetroundl_ctx libc_feresetround_ctx
-
-# define libc_feholdsetround_noexf_ctx libc_feholdsetround_noex_ctx
-# define libc_feholdsetround_noexl_ctx libc_feholdsetround_noex_ctx
-# define libc_feresetround_noexf_ctx libc_feresetround_noex_ctx
-# define libc_feresetround_noexl_ctx libc_feresetround_noex_ctx
-
-#endif
-
-#ifndef libc_feholdsetround_53bit_ctx
-# define libc_feholdsetround_53bit_ctx libc_feholdsetround_ctx
-#endif
-#ifndef libc_feresetround_53bit_ctx
-# define libc_feresetround_53bit_ctx libc_feresetround_ctx
-#endif
-
-#define SET_RESTORE_ROUND_GENERIC(RM,ROUNDFUNC,CLEANUPFUNC) \
- struct rm_ctx ctx __attribute__((cleanup (CLEANUPFUNC ## _ctx))); \
- ROUNDFUNC ## _ctx (&ctx, (RM))
-
-/* Set the rounding mode within a lexical block. Restore the rounding mode to
- the value at the start of the block. The exception mode must be preserved.
- Exceptions raised within the block must be set in the exception flags.
- Non-stop mode may be enabled inside the block. */
-
-#define SET_RESTORE_ROUND(RM) \
- SET_RESTORE_ROUND_GENERIC (RM, libc_feholdsetround, libc_feresetround)
-#define SET_RESTORE_ROUNDF(RM) \
- SET_RESTORE_ROUND_GENERIC (RM, libc_feholdsetroundf, libc_feresetroundf)
-#define SET_RESTORE_ROUNDL(RM) \
- SET_RESTORE_ROUND_GENERIC (RM, libc_feholdsetroundl, libc_feresetroundl)
-
-/* Set the rounding mode within a lexical block. Restore the rounding mode to
- the value at the start of the block. The exception mode must be preserved.
- Exceptions raised within the block must be discarded, and exception flags
- are restored to the value at the start of the block.
- Non-stop mode must be enabled inside the block. */
-
-#define SET_RESTORE_ROUND_NOEX(RM) \
- SET_RESTORE_ROUND_GENERIC (RM, libc_feholdsetround_noex, \
- libc_feresetround_noex)
-#define SET_RESTORE_ROUND_NOEXF(RM) \
- SET_RESTORE_ROUND_GENERIC (RM, libc_feholdsetround_noexf, \
- libc_feresetround_noexf)
-#define SET_RESTORE_ROUND_NOEXL(RM) \
- SET_RESTORE_ROUND_GENERIC (RM, libc_feholdsetround_noexl, \
- libc_feresetround_noexl)
-
-/* Like SET_RESTORE_ROUND, but also set rounding precision to 53 bits. */
-#define SET_RESTORE_ROUND_53BIT(RM) \
- SET_RESTORE_ROUND_GENERIC (RM, libc_feholdsetround_53bit, \
- libc_feresetround_53bit)
-
-/* When no floating-point exceptions are defined in <fenv.h>, make
- feraiseexcept ignore its argument so that unconditional
- feraiseexcept calls do not cause errors for undefined exceptions.
- Define it to expand to a void expression so that any calls testing
- the result of feraiseexcept do produce errors. */
-#if FE_ALL_EXCEPT == 0
-# define feraiseexcept(excepts) ((void) 0)
-# define __feraiseexcept(excepts) ((void) 0)
-#endif
-
-/* Similarly, most <fenv.h> functions have trivial implementations in
- the absence of support for floating-point exceptions and rounding
- modes. */
-
-#if !FE_HAVE_ROUNDING_MODES
-# if FE_ALL_EXCEPT == 0
-extern inline int
-fegetenv (fenv_t *__e)
-{
- return 0;
-}
-
-extern inline int
-__fegetenv (fenv_t *__e)
-{
- return 0;
-}
-
-extern inline int
-feholdexcept (fenv_t *__e)
-{
- return 0;
-}
-
-extern inline int
-__feholdexcept (fenv_t *__e)
-{
- return 0;
-}
-
-extern inline int
-fesetenv (const fenv_t *__e)
-{
- return 0;
-}
-
-extern inline int
-__fesetenv (const fenv_t *__e)
-{
- return 0;
-}
-
-extern inline int
-feupdateenv (const fenv_t *__e)
-{
- return 0;
-}
-
-extern inline int
-__feupdateenv (const fenv_t *__e)
-{
- return 0;
-}
-# endif
-
-extern inline int
-fegetround (void)
-{
- return FE_TONEAREST;
-}
-
-extern inline int
-__fegetround (void)
-{
- return FE_TONEAREST;
-}
-
-extern inline int
-fesetround (int __d)
-{
- return 0;
-}
-
-extern inline int
-__fesetround (int __d)
-{
- return 0;
-}
-#endif
-
#endif /* _MATH_PRIVATE_H_ */
diff --git a/sysdeps/generic/math_private_calls.h b/sysdeps/generic/math_private_calls.h
index 16b4ea3736..cb86a5d57d 100644
--- a/sysdeps/generic/math_private_calls.h
+++ b/sysdeps/generic/math_private_calls.h
@@ -1,5 +1,5 @@
/* Private function declarations for libm.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ 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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __MSUF_X(x, suffix) x ## suffix
#define __MSUF_S(...) __MSUF_X (__VA_ARGS__)
@@ -75,15 +75,6 @@ extern int __MSUF (__kernel_rem_pio2) (_Mdouble_ *, _Mdouble_ *, int,
#endif
/* Internal functions. */
-#if !defined __MATH_DECLARING_LONG_DOUBLE || !defined NO_LONG_DOUBLE
-extern _Mdouble_ __MSUF (__copysign) (_Mdouble_ x, _Mdouble_ __y);
-
-extern inline _Mdouble_
-__MSUF (__copysign) (_Mdouble_ x, _Mdouble_ __y)
-{
- return __MSUF (__builtin_copysign) (x, __y);
-}
-#endif
/* Return X^2 + Y^2 - 1, computed without large cancellation error.
It is given that 1 > X >= Y >= epsilon / 2, and that X^2 + Y^2 >=
diff --git a/sysdeps/generic/memcopy.h b/sysdeps/generic/memcopy.h
index c0d8da3568..f5ecab426c 100644
--- a/sysdeps/generic/memcopy.h
+++ b/sysdeps/generic/memcopy.h
@@ -1,5 +1,5 @@
/* memcopy.h -- definitions for memory copy functions. Generic C version.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MEMCOPY_H
#define _MEMCOPY_H 1
@@ -60,7 +60,7 @@
This should normally be the biggest type supported by a single load
and store. */
#define op_t unsigned long int
-#define OPSIZ (sizeof(op_t))
+#define OPSIZ (sizeof (op_t))
/* Type to use for unaligned operations. */
typedef unsigned char byte;
@@ -164,8 +164,8 @@ extern void _wordcopy_bwd_dest_aligned (long int, long int, size_t)
# define PAGE_COPY_FWD_MAYBE(dstp, srcp, nbytes_left, nbytes) \
do \
{ \
- if ((nbytes) >= PAGE_COPY_THRESHOLD && \
- PAGE_OFFSET ((dstp) - (srcp)) == 0) \
+ if ((nbytes) >= PAGE_COPY_THRESHOLD \
+ && PAGE_OFFSET ((dstp) - (srcp)) == 0) \
{ \
/* The amount to copy is past the threshold for copying \
pages virtually with kernel VM operations, and the \
diff --git a/sysdeps/generic/memusage.h b/sysdeps/generic/memusage.h
index 2887ff1be3..88b291e3fa 100644
--- a/sysdeps/generic/memusage.h
+++ b/sysdeps/generic/memusage.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <limits.h>
@@ -26,14 +26,14 @@
#endif
#ifndef GETTIME
-# define GETTIME(low,high) \
- { \
- struct timeval tval; \
- uint64_t usecs; \
- gettimeofday (&tval, NULL); \
- usecs = (uint64_t) tval.tv_usec + (uint64_t) tval.tv_usec * 1000000; \
- low = usecs & 0xffffffff; \
- high = usecs >> 32; \
+# define GETTIME(low,high) \
+ { \
+ struct timespec now; \
+ uint64_t usecs; \
+ clock_gettime (CLOCK_REALTIME, &now); \
+ usecs = (uint64_t)now.tv_nsec / 1000 + (uint64_t)now.tv_sec * 1000000; \
+ low = usecs & 0xffffffff; \
+ high = usecs >> 32; \
}
#endif
diff --git a/sysdeps/generic/mmap_info.h b/sysdeps/generic/mmap_info.h
new file mode 100644
index 0000000000..b3087df2d3
--- /dev/null
+++ b/sysdeps/generic/mmap_info.h
@@ -0,0 +1,16 @@
+/* As default architectures with sizeof (off_t) < sizeof (off64_t) the mmap is
+ implemented with __SYS_mmap2 syscall and the offset is represented in
+ multiples of page size. For offset larger than
+ '1 << (page_shift + 8 * sizeof (off_t))' (that is, 1<<44 on system with
+ page size of 4096 bytes) the system call silently truncates the offset.
+ For this case, glibc mmap implementation returns EINVAL. */
+
+/* Return the maximum value expected as offset argument in mmap64 call. */
+static inline uint64_t
+mmap64_maximum_offset (long int page_shift)
+{
+ if (sizeof (off_t) < sizeof (off64_t))
+ return (UINT64_C(1) << (page_shift + (8 * sizeof (off_t)))) - 1;
+ else
+ return UINT64_MAX;
+}
diff --git a/sysdeps/generic/nan-high-order-bit.h b/sysdeps/generic/nan-high-order-bit.h
index 8ff3bcffa1..660f337a28 100644
--- a/sysdeps/generic/nan-high-order-bit.h
+++ b/sysdeps/generic/nan-high-order-bit.h
@@ -1,5 +1,5 @@
/* Specify NaN high-order bit conventions. Generic version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef NAN_HIGH_ORDER_BIT_H
#define NAN_HIGH_ORDER_BIT_H 1
diff --git a/sysdeps/generic/net/if.h b/sysdeps/generic/net/if.h
index 61c34620d0..b26ea4c4d6 100644
--- a/sysdeps/generic/net/if.h
+++ b/sysdeps/generic/net/if.h
@@ -1,5 +1,5 @@
/* net/if.h -- declarations for inquiring about network interfaces
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _NET_IF_H
diff --git a/sysdeps/generic/netinet/if_ether.h b/sysdeps/generic/netinet/if_ether.h
index 7f33d220d0..6d05f11466 100644
--- a/sysdeps/generic/netinet/if_ether.h
+++ b/sysdeps/generic/netinet/if_ether.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef __NETINET_IF_ETHER_H
#define __NETINET_IF_ETHER_H 1
diff --git a/sysdeps/generic/netinet/in_systm.h b/sysdeps/generic/netinet/in_systm.h
index 76c11c6763..bb6d770122 100644
--- a/sysdeps/generic/netinet/in_systm.h
+++ b/sysdeps/generic/netinet/in_systm.h
@@ -1,5 +1,5 @@
/* System specific type definitions for networking code.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _NETINET_IN_SYSTM_H
#define _NETINET_IN_SYSTM_H 1
diff --git a/sysdeps/generic/netinet/ip.h b/sysdeps/generic/netinet/ip.h
index 821349458d..ab55c2a15e 100644
--- a/sysdeps/generic/netinet/ip.h
+++ b/sysdeps/generic/netinet/ip.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef __NETINET_IP_H
#define __NETINET_IP_H 1
diff --git a/sysdeps/generic/nfs/nfs.h b/sysdeps/generic/nfs/nfs.h
index 8b78de8289..637a6b6b41 100644
--- a/sysdeps/generic/nfs/nfs.h
+++ b/sysdeps/generic/nfs/nfs.h
@@ -1,5 +1,5 @@
/* <nfs/nfs.h> -- ill-specified NFS-related definitions
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _NFS_NFS_H
#define _NFS_NFS_H 1
diff --git a/sysdeps/generic/not-cancel.h b/sysdeps/generic/not-cancel.h
index d9f8a75dbd..d3b53e48cf 100644
--- a/sysdeps/generic/not-cancel.h
+++ b/sysdeps/generic/not-cancel.h
@@ -1,5 +1,5 @@
/* Uncancelable versions of cancelable interfaces. Generic version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef NOT_CANCEL_H
# define NOT_CANCEL_H
@@ -41,16 +41,14 @@
(void) __close (fd)
#define __read_nocancel(fd, buf, n) \
__read (fd, buf, n)
+#define __pread64_nocancel(fd, buf, count, offset) \
+ __pread64 (fd, buf, count, offset)
#define __write_nocancel(fd, buf, n) \
__write (fd, buf, n)
#define __writev_nocancel_nostatus(fd, iov, n) \
(void) __writev (fd, iov, n)
# define __waitpid_nocancel(pid, stat_loc, options) \
__waitpid (pid, stat_loc, options)
-#define __pause_nocancel() \
- __pause ()
-#define __nanosleep_nocancel(requested_time, remaining) \
- __nanosleep (requested_time, remaining)
#define __fcntl64_nocancel(fd, cmd, ...) \
__fcntl64 (fd, cmd, __VA_ARGS__)
diff --git a/sysdeps/generic/not-errno.h b/sysdeps/generic/not-errno.h
index 93617a3266..5e6abf81a8 100644
--- a/sysdeps/generic/not-errno.h
+++ b/sysdeps/generic/not-errno.h
@@ -1,5 +1,5 @@
/* Syscall wrapper that do not set errno. Generic version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,6 +14,8 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
extern __typeof (__access) __access_noerrno attribute_hidden;
+
+extern __typeof (__kill) __kill_noerrno attribute_hidden;
diff --git a/sysdeps/generic/nscd-types.h b/sysdeps/generic/nscd-types.h
index 724f3de4eb..6edc3af1c2 100644
--- a/sysdeps/generic/nscd-types.h
+++ b/sysdeps/generic/nscd-types.h
@@ -1,5 +1,5 @@
/* Types for the NSCD implementation. Generic version.
- Copyright (c) 2000-2018 Free Software Foundation, Inc.
+ Copyright (c) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/sysdeps/generic/pagecopy.h b/sysdeps/generic/pagecopy.h
index 1c5910702e..fbdcc54873 100644
--- a/sysdeps/generic/pagecopy.h
+++ b/sysdeps/generic/pagecopy.h
@@ -1,5 +1,5 @@
/* Macros for copying by pages; used in memcpy, memmove.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* The macro PAGE_COPY_FWD_MAYBE defined in memcopy.h is used in memmove if the
PAGE_COPY_THRESHOLD macro is set to a non-zero value. The default is 0,
diff --git a/sysdeps/generic/profil-counter.h b/sysdeps/generic/profil-counter.h
index a6fd39ace8..a49ff0cd6b 100644
--- a/sysdeps/generic/profil-counter.h
+++ b/sysdeps/generic/profil-counter.h
@@ -1,5 +1,5 @@
/* Machine-dependent SIGPROF signal handler. "Generic" version w/ sigcontext
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* In many Unix systems signal handlers are called like this
and the interrupted PC is easily findable in the `struct sigcontext'. */
@@ -22,5 +22,5 @@
static void
__profil_counter (int signr, int code, struct sigcontext *scp)
{
- profil_count ((void *) scp->sc_pc);
+ profil_count ((uintptr_t) scp->sc_pc);
}
diff --git a/sysdeps/generic/pty-private.h b/sysdeps/generic/pty-private.h
index 9d453a57d0..e397913c77 100644
--- a/sysdeps/generic/pty-private.h
+++ b/sysdeps/generic/pty-private.h
@@ -1,5 +1,5 @@
/* Internal defenitions and declarations for pseudo terminal functions.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Zack Weinberg <zack@rabi.phys.columbia.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _PTY_PRIVATE_H
#define _PTY_PRIVATE_H 1
diff --git a/sysdeps/generic/register-dump.h b/sysdeps/generic/register-dump.h
index 6ac099a932..17d11c5cca 100644
--- a/sysdeps/generic/register-dump.h
+++ b/sysdeps/generic/register-dump.h
@@ -1,5 +1,5 @@
/* Dump registers.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@@ -15,6 +15,6 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* In general we cannot do anything. */
diff --git a/sysdeps/generic/safe-fatal.h b/sysdeps/generic/safe-fatal.h
index 60f798a0a5..dcf311d81e 100644
--- a/sysdeps/generic/safe-fatal.h
+++ b/sysdeps/generic/safe-fatal.h
@@ -1,5 +1,5 @@
/* Crash the process immediately, without possibility of deadlock. Generic.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SAFE_FATAL_H
#define _SAFE_FATAL_H 1
diff --git a/sysdeps/generic/setjmpP.h b/sysdeps/generic/setjmpP.h
index b30d105cd0..ee551c2080 100644
--- a/sysdeps/generic/setjmpP.h
+++ b/sysdeps/generic/setjmpP.h
@@ -1,5 +1,5 @@
/* Internal header file for <setjmp.h>. Generic version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SETJMPP_H
#define _SETJMPP_H 1
diff --git a/sysdeps/generic/sigcontextinfo.h b/sysdeps/generic/sigcontextinfo.h
index 3e199416f8..a5985ba14e 100644
--- a/sysdeps/generic/sigcontextinfo.h
+++ b/sysdeps/generic/sigcontextinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@@ -14,8 +14,17 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SIGCONTEXTINFO_H
+#define _SIGCONTEXTINFO_H
/* In general we cannot provide any information. */
#define SIGCONTEXT struct sigcontext *
-#define GET_PC(ctx) ((void *) 0)
+static inline uintptr_t
+sigcontext_get_pc (const struct sigcontext *ctx)
+{
+ return 0;
+}
+
+#endif
diff --git a/sysdeps/generic/siglist.h b/sysdeps/generic/siglist.h
index 99d05b25d0..191ba10ddd 100644
--- a/sysdeps/generic/siglist.h
+++ b/sysdeps/generic/siglist.h
@@ -1,5 +1,5 @@
/* Canonical list of all signal names.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file should be usable for any platform, since it just associates
the SIG* macros with text names and descriptions. The actual values
diff --git a/sysdeps/generic/sigset-cvt-mask.h b/sysdeps/generic/sigset-cvt-mask.h
index ad4b8b2d2d..ffc51fc2f7 100644
--- a/sysdeps/generic/sigset-cvt-mask.h
+++ b/sysdeps/generic/sigset-cvt-mask.h
@@ -1,6 +1,6 @@
/* Convert between lowlevel sigmask and libc representation of sigset_t.
Generic version.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Joe Keane <jgk@jgk.org>.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Convert between an old-style 32-bit signal mask and a POSIX sigset_t. */
diff --git a/sysdeps/generic/sigsetops.h b/sysdeps/generic/sigsetops.h
index 52b0e79071..e297275a14 100644
--- a/sysdeps/generic/sigsetops.h
+++ b/sysdeps/generic/sigsetops.h
@@ -1,5 +1,5 @@
/* __sigset_t manipulators. Generic/BSD version.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SIGSETOPS_H
#define _SIGSETOPS_H 1
diff --git a/sysdeps/generic/single-thread.h b/sysdeps/generic/single-thread.h
new file mode 100644
index 0000000000..11fcebc941
--- /dev/null
+++ b/sysdeps/generic/single-thread.h
@@ -0,0 +1,25 @@
+/* Single thread optimization, generic version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SINGLE_THREAD_H
+#define _SINGLE_THREAD_H
+
+#define SINGLE_THREAD_P (0)
+#define RTLD_SINGLE_THREAD_P (0)
+
+#endif /* _SINGLE_THREAD_H */
diff --git a/sysdeps/generic/stackinfo.h b/sysdeps/generic/stackinfo.h
index d6bf544a11..fce9e34af1 100644
--- a/sysdeps/generic/stackinfo.h
+++ b/sysdeps/generic/stackinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file contains a bit of information about the stack allocation
of the processor. Since there is no general truth we can't say
diff --git a/sysdeps/generic/stap-probe-machine.h b/sysdeps/generic/stap-probe-machine.h
new file mode 100644
index 0000000000..61d7fd0355
--- /dev/null
+++ b/sysdeps/generic/stap-probe-machine.h
@@ -0,0 +1,19 @@
+/* Macros for customizing Systemtap <sys/sdt.h>. Generic version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+/* By default, there are no customizations. */
diff --git a/sysdeps/generic/startup.h b/sysdeps/generic/startup.h
index b1e0118604..9b5b9b76c7 100644
--- a/sysdeps/generic/startup.h
+++ b/sysdeps/generic/startup.h
@@ -1,5 +1,5 @@
/* Generic definitions of functions used by static libc main startup.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Targets should override this file if the default definitions below
will not work correctly very early before TLS is initialized. */
diff --git a/sysdeps/generic/stdint.h b/sysdeps/generic/stdint.h
deleted file mode 100644
index 11fb0ebef9..0000000000
--- a/sysdeps/generic/stdint.h
+++ /dev/null
@@ -1,319 +0,0 @@
-/* Copyright (C) 1997-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-/*
- * ISO C99: 7.18 Integer types <stdint.h>
- */
-
-#ifndef _STDINT_H
-#define _STDINT_H 1
-
-#define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION
-#include <bits/libc-header-start.h>
-#include <bits/types.h>
-#include <bits/wchar.h>
-#include <bits/wordsize.h>
-
-/* Exact integral types. */
-
-/* Signed. */
-#include <bits/stdint-intn.h>
-
-/* Unsigned. */
-#include <bits/stdint-uintn.h>
-
-
-/* Small types. */
-
-/* Signed. */
-typedef __int_least8_t int_least8_t;
-typedef __int_least16_t int_least16_t;
-typedef __int_least32_t int_least32_t;
-typedef __int_least64_t int_least64_t;
-
-/* Unsigned. */
-typedef __uint_least8_t uint_least8_t;
-typedef __uint_least16_t uint_least16_t;
-typedef __uint_least32_t uint_least32_t;
-typedef __uint_least64_t uint_least64_t;
-
-
-/* Fast types. */
-
-/* Signed. */
-typedef signed char int_fast8_t;
-#if __WORDSIZE == 64
-typedef long int int_fast16_t;
-typedef long int int_fast32_t;
-typedef long int int_fast64_t;
-#else
-typedef int int_fast16_t;
-typedef int int_fast32_t;
-__extension__
-typedef long long int int_fast64_t;
-#endif
-
-/* Unsigned. */
-typedef unsigned char uint_fast8_t;
-#if __WORDSIZE == 64
-typedef unsigned long int uint_fast16_t;
-typedef unsigned long int uint_fast32_t;
-typedef unsigned long int uint_fast64_t;
-#else
-typedef unsigned int uint_fast16_t;
-typedef unsigned int uint_fast32_t;
-__extension__
-typedef unsigned long long int uint_fast64_t;
-#endif
-
-
-/* Types for `void *' pointers. */
-#if __WORDSIZE == 64
-# ifndef __intptr_t_defined
-typedef long int intptr_t;
-# define __intptr_t_defined
-# endif
-typedef unsigned long int uintptr_t;
-#else
-# ifndef __intptr_t_defined
-typedef int intptr_t;
-# define __intptr_t_defined
-# endif
-typedef unsigned int uintptr_t;
-#endif
-
-
-/* Largest integral types. */
-typedef __intmax_t intmax_t;
-typedef __uintmax_t uintmax_t;
-
-
-# if __WORDSIZE == 64
-# define __INT64_C(c) c ## L
-# define __UINT64_C(c) c ## UL
-# else
-# define __INT64_C(c) c ## LL
-# define __UINT64_C(c) c ## ULL
-# endif
-
-/* Limits of integral types. */
-
-/* Minimum of signed integral types. */
-# define INT8_MIN (-128)
-# define INT16_MIN (-32767-1)
-# define INT32_MIN (-2147483647-1)
-# define INT64_MIN (-__INT64_C(9223372036854775807)-1)
-/* Maximum of signed integral types. */
-# define INT8_MAX (127)
-# define INT16_MAX (32767)
-# define INT32_MAX (2147483647)
-# define INT64_MAX (__INT64_C(9223372036854775807))
-
-/* Maximum of unsigned integral types. */
-# define UINT8_MAX (255)
-# define UINT16_MAX (65535)
-# define UINT32_MAX (4294967295U)
-# define UINT64_MAX (__UINT64_C(18446744073709551615))
-
-
-/* Minimum of signed integral types having a minimum size. */
-# define INT_LEAST8_MIN (-128)
-# define INT_LEAST16_MIN (-32767-1)
-# define INT_LEAST32_MIN (-2147483647-1)
-# define INT_LEAST64_MIN (-__INT64_C(9223372036854775807)-1)
-/* Maximum of signed integral types having a minimum size. */
-# define INT_LEAST8_MAX (127)
-# define INT_LEAST16_MAX (32767)
-# define INT_LEAST32_MAX (2147483647)
-# define INT_LEAST64_MAX (__INT64_C(9223372036854775807))
-
-/* Maximum of unsigned integral types having a minimum size. */
-# define UINT_LEAST8_MAX (255)
-# define UINT_LEAST16_MAX (65535)
-# define UINT_LEAST32_MAX (4294967295U)
-# define UINT_LEAST64_MAX (__UINT64_C(18446744073709551615))
-
-
-/* Minimum of fast signed integral types having a minimum size. */
-# define INT_FAST8_MIN (-128)
-# if __WORDSIZE == 64
-# define INT_FAST16_MIN (-9223372036854775807L-1)
-# define INT_FAST32_MIN (-9223372036854775807L-1)
-# else
-# define INT_FAST16_MIN (-2147483647-1)
-# define INT_FAST32_MIN (-2147483647-1)
-# endif
-# define INT_FAST64_MIN (-__INT64_C(9223372036854775807)-1)
-/* Maximum of fast signed integral types having a minimum size. */
-# define INT_FAST8_MAX (127)
-# if __WORDSIZE == 64
-# define INT_FAST16_MAX (9223372036854775807L)
-# define INT_FAST32_MAX (9223372036854775807L)
-# else
-# define INT_FAST16_MAX (2147483647)
-# define INT_FAST32_MAX (2147483647)
-# endif
-# define INT_FAST64_MAX (__INT64_C(9223372036854775807))
-
-/* Maximum of fast unsigned integral types having a minimum size. */
-# define UINT_FAST8_MAX (255)
-# if __WORDSIZE == 64
-# define UINT_FAST16_MAX (18446744073709551615UL)
-# define UINT_FAST32_MAX (18446744073709551615UL)
-# else
-# define UINT_FAST16_MAX (4294967295U)
-# define UINT_FAST32_MAX (4294967295U)
-# endif
-# define UINT_FAST64_MAX (__UINT64_C(18446744073709551615))
-
-
-/* Values to test for integral types holding `void *' pointer. */
-# if __WORDSIZE == 64
-# define INTPTR_MIN (-9223372036854775807L-1)
-# define INTPTR_MAX (9223372036854775807L)
-# define UINTPTR_MAX (18446744073709551615UL)
-# else
-# define INTPTR_MIN (-2147483647-1)
-# define INTPTR_MAX (2147483647)
-# define UINTPTR_MAX (4294967295U)
-# endif
-
-
-/* Minimum for largest signed integral type. */
-# define INTMAX_MIN (-__INT64_C(9223372036854775807)-1)
-/* Maximum for largest signed integral type. */
-# define INTMAX_MAX (__INT64_C(9223372036854775807))
-
-/* Maximum for largest unsigned integral type. */
-# define UINTMAX_MAX (__UINT64_C(18446744073709551615))
-
-
-/* Limits of other integer types. */
-
-/* Limits of `ptrdiff_t' type. */
-# if __WORDSIZE == 64
-# define PTRDIFF_MIN (-9223372036854775807L-1)
-# define PTRDIFF_MAX (9223372036854775807L)
-# else
-# if __WORDSIZE32_PTRDIFF_LONG
-# define PTRDIFF_MIN (-2147483647L-1)
-# define PTRDIFF_MAX (2147483647L)
-# else
-# define PTRDIFF_MIN (-2147483647-1)
-# define PTRDIFF_MAX (2147483647)
-# endif
-# endif
-
-/* Limits of `sig_atomic_t'. */
-# define SIG_ATOMIC_MIN (-2147483647-1)
-# define SIG_ATOMIC_MAX (2147483647)
-
-/* Limit of `size_t' type. */
-# if __WORDSIZE == 64
-# define SIZE_MAX (18446744073709551615UL)
-# else
-# if __WORDSIZE32_SIZE_ULONG
-# define SIZE_MAX (4294967295UL)
-# else
-# define SIZE_MAX (4294967295U)
-# endif
-# endif
-
-/* Limits of `wchar_t'. */
-# ifndef WCHAR_MIN
-/* These constants might also be defined in <wchar.h>. */
-# define WCHAR_MIN __WCHAR_MIN
-# define WCHAR_MAX __WCHAR_MAX
-# endif
-
-/* Limits of `wint_t'. */
-# define WINT_MIN (0u)
-# define WINT_MAX (4294967295u)
-
-/* Signed. */
-# define INT8_C(c) c
-# define INT16_C(c) c
-# define INT32_C(c) c
-# if __WORDSIZE == 64
-# define INT64_C(c) c ## L
-# else
-# define INT64_C(c) c ## LL
-# endif
-
-/* Unsigned. */
-# define UINT8_C(c) c
-# define UINT16_C(c) c
-# define UINT32_C(c) c ## U
-# if __WORDSIZE == 64
-# define UINT64_C(c) c ## UL
-# else
-# define UINT64_C(c) c ## ULL
-# endif
-
-/* Maximal type. */
-# if __WORDSIZE == 64
-# define INTMAX_C(c) c ## L
-# define UINTMAX_C(c) c ## UL
-# else
-# define INTMAX_C(c) c ## LL
-# define UINTMAX_C(c) c ## ULL
-# endif
-
-#if __GLIBC_USE (IEC_60559_BFP_EXT)
-
-# define INT8_WIDTH 8
-# define UINT8_WIDTH 8
-# define INT16_WIDTH 16
-# define UINT16_WIDTH 16
-# define INT32_WIDTH 32
-# define UINT32_WIDTH 32
-# define INT64_WIDTH 64
-# define UINT64_WIDTH 64
-
-# define INT_LEAST8_WIDTH 8
-# define UINT_LEAST8_WIDTH 8
-# define INT_LEAST16_WIDTH 16
-# define UINT_LEAST16_WIDTH 16
-# define INT_LEAST32_WIDTH 32
-# define UINT_LEAST32_WIDTH 32
-# define INT_LEAST64_WIDTH 64
-# define UINT_LEAST64_WIDTH 64
-
-# define INT_FAST8_WIDTH 8
-# define UINT_FAST8_WIDTH 8
-# define INT_FAST16_WIDTH __WORDSIZE
-# define UINT_FAST16_WIDTH __WORDSIZE
-# define INT_FAST32_WIDTH __WORDSIZE
-# define UINT_FAST32_WIDTH __WORDSIZE
-# define INT_FAST64_WIDTH 64
-# define UINT_FAST64_WIDTH 64
-
-# define INTPTR_WIDTH __WORDSIZE
-# define UINTPTR_WIDTH __WORDSIZE
-
-# define INTMAX_WIDTH 64
-# define UINTMAX_WIDTH 64
-
-# define PTRDIFF_WIDTH __WORDSIZE
-# define SIG_ATOMIC_WIDTH 32
-# define SIZE_WIDTH __WORDSIZE
-# define WCHAR_WIDTH 32
-# define WINT_WIDTH 32
-
-#endif
-
-#endif /* stdint.h */
diff --git a/sysdeps/generic/stdio-lock.h b/sysdeps/generic/stdio-lock.h
index 4a40618545..2709d958e3 100644
--- a/sysdeps/generic/stdio-lock.h
+++ b/sysdeps/generic/stdio-lock.h
@@ -1,5 +1,5 @@
/* Thread package specific definitions of stream lock type. Generic version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _STDIO_LOCK_H
#define _STDIO_LOCK_H 1
@@ -54,15 +54,8 @@ __libc_lock_define_recursive (typedef, _IO_lock_t)
__attribute__((cleanup (_IO_acquire_lock_fct))) \
= (_fp); \
_IO_flockfile (_IO_acquire_lock_file);
-# define _IO_acquire_lock_clear_flags2(_fp) \
- do { \
- FILE *_IO_acquire_lock_file \
- __attribute__((cleanup (_IO_acquire_lock_clear_flags2_fct))) \
- = (_fp); \
- _IO_flockfile (_IO_acquire_lock_file);
# else
# define _IO_acquire_lock(_fp) _IO_acquire_lock_needs_exceptions_enabled
-# define _IO_acquire_lock_clear_flags2(_fp) _IO_acquire_lock (_fp)
# endif
# define _IO_release_lock(_fp) ; } while (0)
diff --git a/sysdeps/generic/string_private.h b/sysdeps/generic/string_private.h
index 4e152efce6..884e355213 100644
--- a/sysdeps/generic/string_private.h
+++ b/sysdeps/generic/string_private.h
@@ -1,5 +1,5 @@
/* Define _STRING_ARCH_unaligned. Generic version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define to 1 if architecture can access unaligned multi-byte
variables. */
diff --git a/sysdeps/generic/symbol-hacks.h b/sysdeps/generic/symbol-hacks.h
index d614c099c9..3586e6ed38 100644
--- a/sysdeps/generic/symbol-hacks.h
+++ b/sysdeps/generic/symbol-hacks.h
@@ -11,8 +11,8 @@ asm ("memcpy = __GI_memcpy");
__stack_chk_fail itself is a global symbol, exported from libc.so,
and cannot be made hidden. */
-# if IS_IN (libc) && defined SHARED && \
- defined STACK_PROTECTOR_LEVEL && STACK_PROTECTOR_LEVEL > 0
+# if IS_IN (libc) && defined SHARED \
+ && defined STACK_PROTECTOR_LEVEL && STACK_PROTECTOR_LEVEL > 0
asm (".hidden __stack_chk_fail_local\n"
"__stack_chk_fail = __stack_chk_fail_local");
# endif
diff --git a/sysdeps/generic/sys/ptrace.h b/sysdeps/generic/sys/ptrace.h
index 268b4313e1..ca739bdbd5 100644
--- a/sysdeps/generic/sys/ptrace.h
+++ b/sysdeps/generic/sys/ptrace.h
@@ -1,5 +1,5 @@
/* `ptrace' debugger support interface. Generic version; constants are common.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _PTRACE_H
diff --git a/sysdeps/generic/sys/swap.h b/sysdeps/generic/sys/swap.h
index ee684a44b4..a0bf68c8b6 100644
--- a/sysdeps/generic/sys/swap.h
+++ b/sysdeps/generic/sys/swap.h
@@ -1,5 +1,5 @@
/* Calls to enable and disable swapping on specified locations. Unix version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef __SYS_SWAP_H
diff --git a/sysdeps/generic/sys/sysinfo.h b/sysdeps/generic/sys/sysinfo.h
index 625550cb47..3c5aa1b8c2 100644
--- a/sysdeps/generic/sys/sysinfo.h
+++ b/sysdeps/generic/sys/sysinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_SYSINFO_H
#define _SYS_SYSINFO_H 1
diff --git a/sysdeps/generic/sys/ucontext.h b/sysdeps/generic/sys/ucontext.h
index 0191f0306d..178d8f6089 100644
--- a/sysdeps/generic/sys/ucontext.h
+++ b/sysdeps/generic/sys/ucontext.h
@@ -1,5 +1,5 @@
/* Data structures for user-level context switching. Generic version.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file's definitions suffice for any platform where all
the machine-specific state is described in `struct sigcontext', but
diff --git a/sysdeps/generic/sysdep-cancel.h b/sysdeps/generic/sysdep-cancel.h
index ba6a1e04ba..d22a786536 100644
--- a/sysdeps/generic/sysdep-cancel.h
+++ b/sysdeps/generic/sysdep-cancel.h
@@ -5,4 +5,3 @@
#define RTLD_SINGLE_THREAD_P (1)
#define LIBC_CANCEL_ASYNC() 0 /* Just a dummy value. */
#define LIBC_CANCEL_RESET(val) ((void)(val)) /* Nothing, but evaluate it. */
-#define LIBC_CANCEL_HANDLED() /* Nothing. */
diff --git a/sysdeps/generic/sysdep.h b/sysdeps/generic/sysdep.h
index 934d4da839..02164558b8 100644
--- a/sysdeps/generic/sysdep.h
+++ b/sysdeps/generic/sysdep.h
@@ -1,5 +1,5 @@
/* Generic asm macros used on many machines.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef C_LABEL
diff --git a/sysdeps/generic/thread_state.h b/sysdeps/generic/thread_state.h
index 99b7c923e8..fcdd8fdb43 100644
--- a/sysdeps/generic/thread_state.h
+++ b/sysdeps/generic/thread_state.h
@@ -1,5 +1,5 @@
/* Mach thread state definitions for machine-independent code. Stub version.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Everything else is called `thread_state', but CMU's header file is
called `thread_status'. Oh boy. */
diff --git a/sysdeps/generic/time-clockid.h b/sysdeps/generic/time-clockid.h
new file mode 100644
index 0000000000..13db6e6b5b
--- /dev/null
+++ b/sysdeps/generic/time-clockid.h
@@ -0,0 +1,20 @@
+/* System specific time definitions. Generic Version.
+ Copyright 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
+ <https://www.gnu.org/licenses/>. */
+
+/* Timer used on clock_gettime for time implementation. */
+#define TIME_CLOCK_GETTIME_CLOCKID CLOCK_REALTIME
diff --git a/sysdeps/generic/tininess.h b/sysdeps/generic/tininess.h
index bb3ab28152..1e373e5da4 100644
--- a/sysdeps/generic/tininess.h
+++ b/sysdeps/generic/tininess.h
@@ -1,6 +1,6 @@
/* Specify architecture-specific rules for determining tininess of
floating-point results. Generic version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _TININESS_H
#define _TININESS_H 1
diff --git a/sysdeps/generic/tls-setup.h b/sysdeps/generic/tls-setup.h
index 8d0c36d2b8..d43cf4aede 100644
--- a/sysdeps/generic/tls-setup.h
+++ b/sysdeps/generic/tls-setup.h
@@ -1,5 +1,5 @@
/* Definitions to set up thread-local data. Generic version.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
static inline void __attribute__ ((always_inline))
tls_setup_tcbhead (struct pthread *pd)
diff --git a/sysdeps/generic/tls.h b/sysdeps/generic/tls.h
index 01cbbeb7ba..829b5df1ce 100644
--- a/sysdeps/generic/tls.h
+++ b/sysdeps/generic/tls.h
@@ -1,5 +1,5 @@
/* Definition for thread-local data handling. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* An architecture-specific version of this file has to defined a
number of symbols:
diff --git a/sysdeps/generic/tst-stack-align.h b/sysdeps/generic/tst-stack-align.h
index e5cb331048..745cdf49d3 100644
--- a/sysdeps/generic/tst-stack-align.h
+++ b/sysdeps/generic/tst-stack-align.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdint.h>
diff --git a/sysdeps/generic/unwind-dw2-fde-glibc.c b/sysdeps/generic/unwind-dw2-fde-glibc.c
index 3b374b8982..95df26ecac 100644
--- a/sysdeps/generic/unwind-dw2-fde-glibc.c
+++ b/sysdeps/generic/unwind-dw2-fde-glibc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 Free Software Foundation, Inc.
Contributed by Jakub Jelinek <jakub@redhat.com>.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Locate the FDE entry for a given address, using PT_GNU_EH_FRAME ELF
segment and dl_iterate_phdr to avoid register/deregister calls at
diff --git a/sysdeps/generic/unwind-dw2-fde.c b/sysdeps/generic/unwind-dw2-fde.c
index 80bcf61370..98222f9df2 100644
--- a/sysdeps/generic/unwind-dw2-fde.c
+++ b/sysdeps/generic/unwind-dw2-fde.c
@@ -1,5 +1,5 @@
/* Subroutines needed for unwinding stack frames for exception handling. */
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
Contributed by Jason Merrill <jason@cygnus.com>.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifdef _LIBC
# include <shlib-compat.h>
diff --git a/sysdeps/generic/unwind-dw2-fde.h b/sysdeps/generic/unwind-dw2-fde.h
index 869448bfb1..9966438480 100644
--- a/sysdeps/generic/unwind-dw2-fde.h
+++ b/sysdeps/generic/unwind-dw2-fde.h
@@ -1,5 +1,5 @@
/* Subroutines needed for unwinding stack frames for exception handling. */
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
Contributed by Jason Merrill <jason@cygnus.com>.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
struct fde_vector
diff --git a/sysdeps/generic/unwind-dw2.c b/sysdeps/generic/unwind-dw2.c
index 082609b34a..79d43ebb46 100644
--- a/sysdeps/generic/unwind-dw2.c
+++ b/sysdeps/generic/unwind-dw2.c
@@ -1,5 +1,5 @@
/* DWARF2 exception handling and frame unwind runtime interface routines.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifdef _LIBC
#include <stdlib.h>
@@ -710,7 +710,7 @@ execute_stack_op (const unsigned char *op_ptr, const unsigned char *op_end,
}
/* Most things push a result value. */
- if ((size_t) stack_elt >= sizeof(stack)/sizeof(*stack))
+ if ((size_t) stack_elt >= sizeof (stack) / sizeof (*stack))
abort ();
stack[stack_elt++] = result;
no_push:;
@@ -843,7 +843,7 @@ execute_cfa_program (const unsigned char *insn_ptr,
struct frame_state_reg_info *old_rs = fs->regs.prev;
#ifdef _LIBC
if (old_rs == NULL)
- __libc_fatal ("invalid DWARF unwind data");
+ __libc_fatal ("Invalid DWARF unwind data.\n");
else
#endif
{
diff --git a/sysdeps/generic/unwind-pe.h b/sysdeps/generic/unwind-pe.h
index 4a791ac93f..af6a8c20dd 100644
--- a/sysdeps/generic/unwind-pe.h
+++ b/sysdeps/generic/unwind-pe.h
@@ -1,5 +1,5 @@
/* Exception handling and frame unwind runtime interface routines.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* @@@ Really this should be out of line, but this also causes link
compatibility problems with the base ABI. This is slightly better
@@ -183,7 +183,7 @@ read_sleb128 (const unsigned char *p, _Unwind_Sword *val)
while (byte & 0x80);
/* Sign-extend a negative value. */
- if (shift < 8 * sizeof(result) && (byte & 0x40) != 0)
+ if (shift < 8 * sizeof (result) && (byte & 0x40) != 0)
result |= -(1L << shift);
*val = (_Unwind_Sword) result;
@@ -215,7 +215,7 @@ read_encoded_value_with_base (unsigned char encoding, _Unwind_Ptr base,
if (encoding == DW_EH_PE_aligned)
{
_Unwind_Internal_Ptr a = (_Unwind_Internal_Ptr) p;
- a = (a + sizeof (void *) - 1) & - sizeof(void *);
+ a = (a + sizeof (void *) - 1) & - sizeof (void *);
result = *(_Unwind_Internal_Ptr *) a;
p = (const unsigned char *) (a + sizeof (void *));
}
diff --git a/sysdeps/generic/unwind-resume.h b/sysdeps/generic/unwind-resume.h
index 3807e6eadb..b56f5cf024 100644
--- a/sysdeps/generic/unwind-resume.h
+++ b/sysdeps/generic/unwind-resume.h
@@ -1,5 +1,5 @@
/* Definitions for unwind-resume.c. Generic version.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
/* These describe the arguments to unwinder personality functions,
specifically __gcc_personality_v0. A machine-specific sysdeps
diff --git a/sysdeps/generic/unwind.h b/sysdeps/generic/unwind.h
index aad9c10154..a63089d2dd 100644
--- a/sysdeps/generic/unwind.h
+++ b/sysdeps/generic/unwind.h
@@ -1,5 +1,5 @@
/* Exception handling and frame unwind runtime interface routines.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This is derived from the C++ ABI for IA-64. Where we diverge
for cross-architecture compatibility are noted with "@@@". */
diff --git a/sysdeps/generic/utmp-equal.h b/sysdeps/generic/utmp-equal.h
index 8b5c2e2cd2..f98b302486 100644
--- a/sysdeps/generic/utmp-equal.h
+++ b/sysdeps/generic/utmp-equal.h
@@ -1,5 +1,5 @@
/* Helper function for utmp functions to see if two entries are equal.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>
and Paul Janzen <pcj@primenet.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <utmp.h>
@@ -27,26 +27,16 @@
static int
__utmp_equal (const struct utmp *entry, const struct utmp *match)
{
- return
- (
-#if _HAVE_UT_TYPE - 0
- (entry->ut_type == INIT_PROCESS
- || entry->ut_type == LOGIN_PROCESS
- || entry->ut_type == USER_PROCESS
- || entry->ut_type == DEAD_PROCESS)
- &&
- (match->ut_type == INIT_PROCESS
- || match->ut_type == LOGIN_PROCESS
- || match->ut_type == USER_PROCESS
- || match->ut_type == DEAD_PROCESS)
- &&
-#endif
-#if _HAVE_UT_ID - 0
- (entry->ut_id[0] && match->ut_id[0]
- ? strncmp (entry->ut_id, match->ut_id, sizeof match->ut_id) == 0
- : strncmp (entry->ut_line, match->ut_line, sizeof match->ut_line) == 0)
-#else
- strncmp (entry->ut_line, match->ut_line, sizeof match->ut_line) == 0
-#endif
- );
+ return (entry->ut_type == INIT_PROCESS
+ || entry->ut_type == LOGIN_PROCESS
+ || entry->ut_type == USER_PROCESS
+ || entry->ut_type == DEAD_PROCESS)
+ && (match->ut_type == INIT_PROCESS
+ || match->ut_type == LOGIN_PROCESS
+ || match->ut_type == USER_PROCESS
+ || match->ut_type == DEAD_PROCESS)
+ && (entry->ut_id[0] && match->ut_id[0]
+ ? strncmp (entry->ut_id, match->ut_id, sizeof match->ut_id) == 0
+ : (strncmp (entry->ut_line, match->ut_line, sizeof match->ut_line)
+ == 0));
}
diff --git a/sysdeps/gnu/Makefile b/sysdeps/gnu/Makefile
index ae0c3fc0aa..d32c2b3376 100644
--- a/sysdeps/gnu/Makefile
+++ b/sysdeps/gnu/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
# Generate the list of strings for errno codes from the section of the
# manual which documents the codes.
diff --git a/sysdeps/gnu/bits/ipc.h b/sysdeps/gnu/bits/ipc.h
index 8ca9d59d34..55a8340d94 100644
--- a/sysdeps/gnu/bits/ipc.h
+++ b/sysdeps/gnu/bits/ipc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_IPC_H
# error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
diff --git a/sysdeps/gnu/bits/msq.h b/sysdeps/gnu/bits/msq.h
index 0a4a67d5e9..3d7088290e 100644
--- a/sysdeps/gnu/bits/msq.h
+++ b/sysdeps/gnu/bits/msq.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_MSG_H
# error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
diff --git a/sysdeps/gnu/bits/sem.h b/sysdeps/gnu/bits/sem.h
index 3c88176dfc..b0bf262c71 100644
--- a/sysdeps/gnu/bits/sem.h
+++ b/sysdeps/gnu/bits/sem.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_SEM_H
# error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
diff --git a/sysdeps/gnu/bits/shm.h b/sysdeps/gnu/bits/shm.h
index 895c49b269..104ffe9cd1 100644
--- a/sysdeps/gnu/bits/shm.h
+++ b/sysdeps/gnu/bits/shm.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_SHM_H
# error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
diff --git a/sysdeps/gnu/bits/utmp.h b/sysdeps/gnu/bits/utmp.h
deleted file mode 100644
index 47a6082eac..0000000000
--- a/sysdeps/gnu/bits/utmp.h
+++ /dev/null
@@ -1,126 +0,0 @@
-/* The `struct utmp' type, describing entries in the utmp file. GNU version.
- Copyright (C) 1993-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _UTMP_H
-# error "Never include <bits/utmp.h> directly; use <utmp.h> instead."
-#endif
-
-#include <paths.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#include <bits/wordsize.h>
-
-
-#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
- {
-#if __WORDSIZE_TIME64_COMPAT32
- int32_t ll_time;
-#else
- __time_t ll_time;
-#endif
- char ll_line[UT_LINESIZE];
- char ll_host[UT_HOSTSIZE];
- };
-
-
-/* The structure describing the status of a terminated process. This
- type is used in `struct utmp' below. */
-struct exit_status
- {
- short int e_termination; /* Process termination status. */
- short int e_exit; /* Process exit status. */
- };
-
-
-/* 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]; /* 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/sysdeps/gnu/bits/utmpx.h b/sysdeps/gnu/bits/utmpx.h
index 2a77efc607..b356ddc596 100644
--- a/sysdeps/gnu/bits/utmpx.h
+++ b/sysdeps/gnu/bits/utmpx.h
@@ -1,5 +1,5 @@
/* Structures and definitions for the user accounting database. GNU version.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _UTMPX_H
# error "Never include <bits/utmpx.h> directly; use <utmpx.h> instead."
@@ -56,10 +56,14 @@ struct utmpx
{
short int ut_type; /* Type of login. */
__pid_t ut_pid; /* Process ID of login process. */
- char ut_line[__UT_LINESIZE]; /* Devicename. */
- char ut_id[4]; /* Inittab ID. */
- char ut_user[__UT_NAMESIZE]; /* Username. */
- char ut_host[__UT_HOSTSIZE]; /* Hostname for remote login. */
+ 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. */
diff --git a/sysdeps/gnu/errlist-compat.awk b/sysdeps/gnu/errlist-compat.awk
index ba1257ffab..9686be6a3c 100644
--- a/sysdeps/gnu/errlist-compat.awk
+++ b/sysdeps/gnu/errlist-compat.awk
@@ -1,5 +1,5 @@
# awk script to generate errlist-compat.c
-# Copyright (C) 2002-2018 Free Software Foundation, Inc.
+# Copyright (C) 2002-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
@@ -14,7 +14,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
# This script takes the Versions file as input and looks for #errlist-compat
diff --git a/sysdeps/gnu/errlist.awk b/sysdeps/gnu/errlist.awk
index 9a5adf86a6..cd268e1eaf 100644
--- a/sysdeps/gnu/errlist.awk
+++ b/sysdeps/gnu/errlist.awk
@@ -1,4 +1,4 @@
-# Copyright (C) 1991-2018 Free Software Foundation, Inc.
+# Copyright (C) 1991-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
# errno.texi contains lines like:
# @deftypevr Macro int ENOSYS
diff --git a/sysdeps/gnu/errlist.c b/sysdeps/gnu/errlist.c
index 31ebfa9491..77577bf3e1 100644
--- a/sysdeps/gnu/errlist.c
+++ b/sysdeps/gnu/errlist.c
@@ -974,7 +974,20 @@ TRANS You did @strong{what}? */
#endif
#ifdef EIEIO
/*
-TRANS Go home and have a glass of warm, dairy-fresh milk. */
+TRANS Go home and have a glass of warm, dairy-fresh milk.
+TRANS @c Okay. Since you are dying to know, I'll tell you.
+TRANS @c This is a joke, obviously. There is a children's song which begins,
+TRANS @c "Old McDonald had a farm, e-i-e-i-o." Every time I see the (real)
+TRANS @c errno macro EIO, I think about that song. Probably most of my
+TRANS @c compatriots who program on Unix do, too. One of them must have stayed
+TRANS @c up a little too late one night and decided to add it to Hurd or Glibc.
+TRANS @c Whoever did it should be castigated, but it made me laugh.
+TRANS @c --jtobey@channel1.com
+TRANS @c
+TRANS @c "bought the farm" means "died". -jtobey
+TRANS @c
+TRANS @c Translators, please do not translate this litteraly, translate it into
+TRANS @c an idiomatic funny way of saying that the computer died. */
[ERR_REMAP (EIEIO)] = N_("Computer bought the farm"),
# if EIEIO > ERR_MAX
# undef ERR_MAX
diff --git a/sysdeps/gnu/getutmp.c b/sysdeps/gnu/getutmp.c
index 39b27321ad..4a63e8d02d 100644
--- a/sysdeps/gnu/getutmp.c
+++ b/sysdeps/gnu/getutmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <string.h>
diff --git a/sysdeps/gnu/glob-lstat-compat.c b/sysdeps/gnu/glob-lstat-compat.c
index 7cb52d4fee..a6e7883ec9 100644
--- a/sysdeps/gnu/glob-lstat-compat.c
+++ b/sysdeps/gnu/glob-lstat-compat.c
@@ -1,6 +1,6 @@
/* Compat glob which does not use gl_lstat for GLOB_ALTDIRFUNC.
GNU version
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/stat.h>
#include <shlib-compat.h>
diff --git a/sysdeps/gnu/glob64-lstat-compat.c b/sysdeps/gnu/glob64-lstat-compat.c
index e237407e0b..3ede0df417 100644
--- a/sysdeps/gnu/glob64-lstat-compat.c
+++ b/sysdeps/gnu/glob64-lstat-compat.c
@@ -1,6 +1,6 @@
/* Compat glob which does not use gl_lstat for GLOB_ALTDIRFUNC.
GNU version
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dirent.h>
#include <glob.h>
diff --git a/sysdeps/gnu/ifaddrs.c b/sysdeps/gnu/ifaddrs.c
index 945070f9d1..b6d1a5cfd9 100644
--- a/sysdeps/gnu/ifaddrs.c
+++ b/sysdeps/gnu/ifaddrs.c
@@ -1,5 +1,5 @@
/* getifaddrs -- get names and addresses of all network interfaces
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ifaddrs.h>
#include <net/if.h>
diff --git a/sysdeps/gnu/ldsodefs.h b/sysdeps/gnu/ldsodefs.h
index 1896ed2b89..253b4d934c 100644
--- a/sysdeps/gnu/ldsodefs.h
+++ b/sysdeps/gnu/ldsodefs.h
@@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects. GNU.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _GNU_LDSODEFS_H
#define _GNU_LDSODEFS_H 1
diff --git a/sysdeps/gnu/net/if.h b/sysdeps/gnu/net/if.h
index 89e55dad02..5470a34992 100644
--- a/sysdeps/gnu/net/if.h
+++ b/sysdeps/gnu/net/if.h
@@ -1,5 +1,5 @@
/* net/if.h -- declarations for inquiring about network interfaces
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _NET_IF_H
#define _NET_IF_H 1
diff --git a/sysdeps/gnu/netinet/ip_icmp.h b/sysdeps/gnu/netinet/ip_icmp.h
index bb998e0233..29be4583ca 100644
--- a/sysdeps/gnu/netinet/ip_icmp.h
+++ b/sysdeps/gnu/netinet/ip_icmp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef __NETINET_IP_ICMP_H
#define __NETINET_IP_ICMP_H 1
@@ -269,11 +269,11 @@ struct icmp
#define ICMP_PARAMPROB_OPTABSENT 1 /* req. opt. absent */
#define ICMP_INFOTYPE(type) \
- ((type) == ICMP_ECHOREPLY || (type) == ICMP_ECHO || \
- (type) == ICMP_ROUTERADVERT || (type) == ICMP_ROUTERSOLICIT || \
- (type) == ICMP_TSTAMP || (type) == ICMP_TSTAMPREPLY || \
- (type) == ICMP_IREQ || (type) == ICMP_IREQREPLY || \
- (type) == ICMP_MASKREQ || (type) == ICMP_MASKREPLY)
+ ((type) == ICMP_ECHOREPLY || (type) == ICMP_ECHO \
+ || (type) == ICMP_ROUTERADVERT || (type) == ICMP_ROUTERSOLICIT \
+ || (type) == ICMP_TSTAMP || (type) == ICMP_TSTAMPREPLY \
+ || (type) == ICMP_IREQ || (type) == ICMP_IREQREPLY \
+ || (type) == ICMP_MASKREQ || (type) == ICMP_MASKREPLY)
#endif /* __USE_MISC */
diff --git a/sysdeps/gnu/netinet/tcp.h b/sysdeps/gnu/netinet/tcp.h
index 44a72e929e..41ca11b5f5 100644
--- a/sysdeps/gnu/netinet/tcp.h
+++ b/sysdeps/gnu/netinet/tcp.h
@@ -75,6 +75,15 @@
#define TCP_MD5SIG_EXT 32 /* TCP MD5 Signature with extensions. */
#define TCP_FASTOPEN_KEY 33 /* Set the key for Fast Open (cookie). */
#define TCP_FASTOPEN_NO_COOKIE 34 /* Enable TFO without a TFO cookie. */
+#define TCP_ZEROCOPY_RECEIVE 35
+#define TCP_INQ 36 /* Notify bytes available to read
+ as a cmsg on read. */
+#define TCP_CM_INQ TCP_INQ
+#define TCP_TX_DELAY 37 /* Delay outgoing packets by XX usec. */
+
+#define TCP_REPAIR_ON 1
+#define TCP_REPAIR_OFF 0
+#define TCP_REPAIR_OFF_NO_WP -1
#ifdef __USE_MISC
# include <sys/types.h>
@@ -327,6 +336,14 @@ struct tcp_repair_window
uint32_t rcv_wup;
};
+/* For use with TCP_ZEROCOPY_RECEIVE. */
+struct tcp_zerocopy_receive
+{
+ uint64_t address; /* In: address of mapping. */
+ uint32_t length; /* In/out: number of bytes to map/mapped. */
+ uint32_t recv_skip_hint; /* Out: amount of bytes to skip. */
+};
+
#endif /* Misc. */
#endif /* netinet/tcp.h */
diff --git a/sysdeps/gnu/netinet/udp.h b/sysdeps/gnu/netinet/udp.h
index eddd248655..0daa349fd6 100644
--- a/sysdeps/gnu/netinet/udp.h
+++ b/sysdeps/gnu/netinet/udp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* Copyright (C) 1982, 1986 Regents of the University of California.
@@ -81,6 +81,8 @@ struct udphdr
over IPv6. */
#define UDP_NO_CHECK6_RX 102 /* Disable accepting checksum for UDP
over IPv6. */
+#define UDP_SEGMENT 103 /* Set GSO segmentation size. */
+#define UDP_GRO 104 /* This socket can receive UDP GRO packets. */
/* UDP encapsulation types */
#define UDP_ENCAP_ESPINUDP_NON_IKE 1 /* draft-ietf-ipsec-nat-t-ike-00/01 */
diff --git a/sysdeps/gnu/siglist.c b/sysdeps/gnu/siglist.c
index 0b2e40a47a..ff4b742808 100644
--- a/sysdeps/gnu/siglist.c
+++ b/sysdeps/gnu/siglist.c
@@ -1,5 +1,5 @@
/* Define list of all signal numbers and their names.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <signal.h>
diff --git a/sysdeps/gnu/sys/mtio.h b/sysdeps/gnu/sys/mtio.h
index 182767a39d..b8b4f108b1 100644
--- a/sysdeps/gnu/sys/mtio.h
+++ b/sysdeps/gnu/sys/mtio.h
@@ -1,5 +1,5 @@
/* Structures and definitions for magnetic tape I/O control commands.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Written by H. Bergman <hennus@cybercomm.nl>. */
diff --git a/sysdeps/gnu/unwind-resume.c b/sysdeps/gnu/unwind-resume.c
index 9283d925de..d7107518b2 100644
--- a/sysdeps/gnu/unwind-resume.c
+++ b/sysdeps/gnu/unwind-resume.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>.
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stdio.h>
diff --git a/sysdeps/gnu/updwtmp.c b/sysdeps/gnu/updwtmp.c
index e00e8aa33d..6dd0e99f37 100644
--- a/sysdeps/gnu/updwtmp.c
+++ b/sysdeps/gnu/updwtmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Mark Kettenis <kettenis@phys.uva.nl>, 1998.
@@ -14,16 +14,18 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <unistd.h>
-#define TRANSFORM_UTMP_FILE_NAME(file_name) \
- ((strcmp (file_name, _PATH_UTMP "x") == 0 \
- && __access (_PATH_UTMP "x", F_OK) != 0) ? _PATH_UTMP : \
- ((strcmp (file_name, _PATH_WTMP "x") == 0 \
- && __access (_PATH_WTMP "x", F_OK) != 0) ? _PATH_WTMP : \
- file_name))
+#define TRANSFORM_UTMP_FILE_NAME(file_name) \
+ ((strcmp (file_name, _PATH_UTMP "x") == 0 \
+ && __access (_PATH_UTMP "x", F_OK) != 0) \
+ ? _PATH_UTMP \
+ : ((strcmp (file_name, _PATH_WTMP "x") == 0 \
+ && __access (_PATH_WTMP "x", F_OK) != 0) \
+ ? _PATH_WTMP \
+ : file_name))
#include <login/updwtmp.c>
diff --git a/sysdeps/gnu/utmp_file.c b/sysdeps/gnu/utmp_file.c
index 592dba3594..9da5e9db47 100644
--- a/sysdeps/gnu/utmp_file.c
+++ b/sysdeps/gnu/utmp_file.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Mark Kettenis <kettenis@phys.uva.nl>, 1998.
@@ -14,16 +14,18 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <unistd.h>
-#define TRANSFORM_UTMP_FILE_NAME(file_name) \
- ((strcmp (file_name, _PATH_UTMP "x") == 0 \
- && __access (_PATH_UTMP "x", F_OK) != 0) ? _PATH_UTMP : \
- ((strcmp (file_name, _PATH_WTMP "x") == 0 \
- && __access (_PATH_WTMP "x", F_OK) != 0) ? _PATH_WTMP : \
- file_name))
+#define TRANSFORM_UTMP_FILE_NAME(file_name) \
+ ((strcmp (file_name, _PATH_UTMP "x") == 0 \
+ && __access (_PATH_UTMP "x", F_OK) != 0) \
+ ? _PATH_UTMP \
+ : ((strcmp (file_name, _PATH_WTMP "x") == 0 \
+ && __access (_PATH_WTMP "x", F_OK) != 0) \
+ ? _PATH_WTMP \
+ : file_name))
#include <login/utmp_file.c>
diff --git a/sysdeps/gnu/utmpx.h b/sysdeps/gnu/utmpx.h
index c435d89719..53ba970f8a 100644
--- a/sysdeps/gnu/utmpx.h
+++ b/sysdeps/gnu/utmpx.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _UTMPX_H
#define _UTMPX_H 1
diff --git a/sysdeps/hppa/Makefile b/sysdeps/hppa/Makefile
index e62838baf0..7baa8ee170 100644
--- a/sysdeps/hppa/Makefile
+++ b/sysdeps/hppa/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 2000-2018 Free Software Foundation, Inc.
+# Copyright (C) 2000-2019 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# Contributed by David Huggins-Daines (dhd@debian.org)
@@ -14,7 +14,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library. If not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
# We used to need this since the build process uses ld -r. Now we use
# ld -r --unique=.text* which does more or less the same thing, but better.
diff --git a/sysdeps/hppa/__longjmp.c b/sysdeps/hppa/__longjmp.c
index a90678d55f..dfbe07c0d0 100644
--- a/sysdeps/hppa/__longjmp.c
+++ b/sysdeps/hppa/__longjmp.c
@@ -1,5 +1,5 @@
/* longjmp for PA-RISC.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <setjmp.h>
#include <stdlib.h>
diff --git a/sysdeps/hppa/add_n.S b/sysdeps/hppa/add_n.S
index 10f9368acb..b340a9e0e8 100644
--- a/sysdeps/hppa/add_n.S
+++ b/sysdeps/hppa/add_n.S
@@ -1,7 +1,7 @@
;! HP-PA __mpn_add_n -- Add two limb vectors of the same length > 0 and store
;! sum in a third limb vector.
-;! Copyright (C) 1992-2018 Free Software Foundation, Inc.
+;! Copyright (C) 1992-2019 Free Software Foundation, Inc.
;! This file is part of the GNU MP Library.
@@ -17,7 +17,7 @@
;! You should have received a copy of the GNU Lesser General Public License
;! along with the GNU MP Library. If not, see
-;! <http://www.gnu.org/licenses/>.
+;! <https://www.gnu.org/licenses/>.
;! INPUT PARAMETERS
diff --git a/sysdeps/hppa/bits/endian.h b/sysdeps/hppa/bits/endian.h
deleted file mode 100644
index 585db0c0fa..0000000000
--- a/sysdeps/hppa/bits/endian.h
+++ /dev/null
@@ -1,7 +0,0 @@
-/* hppa1.1 big-endian. */
-
-#ifndef _ENDIAN_H
-# error "Never use <bits/endian.h> directly; include <endian.h> instead."
-#endif
-
-#define __BYTE_ORDER __BIG_ENDIAN
diff --git a/sysdeps/hppa/bits/endianness.h b/sysdeps/hppa/bits/endianness.h
new file mode 100644
index 0000000000..96fd5ae5ef
--- /dev/null
+++ b/sysdeps/hppa/bits/endianness.h
@@ -0,0 +1,11 @@
+#ifndef _BITS_ENDIANNESS_H
+#define _BITS_ENDIANNESS_H 1
+
+#ifndef _BITS_ENDIAN_H
+# error "Never use <bits/endianness.h> directly; include <endian.h> instead."
+#endif
+
+/* HP-PA is big-endian. */
+#define __BYTE_ORDER __BIG_ENDIAN
+
+#endif /* bits/endianness.h */
diff --git a/sysdeps/hppa/bits/link.h b/sysdeps/hppa/bits/link.h
index e070db11ab..906b7821b1 100644
--- a/sysdeps/hppa/bits/link.h
+++ b/sysdeps/hppa/bits/link.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LINK_H
# error "Never include <bits/link.h> directly; use <link.h> instead."
diff --git a/sysdeps/hppa/bits/setjmp.h b/sysdeps/hppa/bits/setjmp.h
index f36c4ced57..32d8dff7d7 100644
--- a/sysdeps/hppa/bits/setjmp.h
+++ b/sysdeps/hppa/bits/setjmp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define the machine-dependent type `jmp_buf'. HPPA version. */
#ifndef _BITS_SETJMP_H
diff --git a/sysdeps/hppa/bsd-_setjmp.S b/sysdeps/hppa/bsd-_setjmp.S
index 843f8ed933..f8c09b6fc1 100644
--- a/sysdeps/hppa/bsd-_setjmp.S
+++ b/sysdeps/hppa/bsd-_setjmp.S
@@ -1,5 +1,5 @@
/* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'. HPPA version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/hppa/bsd-setjmp.S b/sysdeps/hppa/bsd-setjmp.S
index 75681ad82d..6beb7f43e0 100644
--- a/sysdeps/hppa/bsd-setjmp.S
+++ b/sysdeps/hppa/bsd-setjmp.S
@@ -1,5 +1,5 @@
/* BSD `setjmp' entry point to `sigsetjmp (..., 1)'. HPPA version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This just does a tail-call to `__sigsetjmp (ARG, 1)'.
We cannot do it in C because it must be a tail-call, so frame-unwinding
diff --git a/sysdeps/hppa/crti.S b/sysdeps/hppa/crti.S
index 28550e5758..a2412cc7a1 100644
--- a/sysdeps/hppa/crti.S
+++ b/sysdeps/hppa/crti.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for HPPA
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* crti.S puts a function prologue at the beginning of the .init and
.fini sections and defines global symbols for those addresses, so
diff --git a/sysdeps/hppa/crtn.S b/sysdeps/hppa/crtn.S
index 69562d00b4..5bb0908e2d 100644
--- a/sysdeps/hppa/crtn.S
+++ b/sysdeps/hppa/crtn.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for HPPA
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/hppa/dl-fptr.c b/sysdeps/hppa/dl-fptr.c
index 17b93538c3..af1acb0701 100644
--- a/sysdeps/hppa/dl-fptr.c
+++ b/sysdeps/hppa/dl-fptr.c
@@ -1,5 +1,5 @@
/* Manage function descriptors. Generic version.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
diff --git a/sysdeps/hppa/dl-fptr.h b/sysdeps/hppa/dl-fptr.h
index 81ae07a480..ba2f4c93ea 100644
--- a/sysdeps/hppa/dl-fptr.h
+++ b/sysdeps/hppa/dl-fptr.h
@@ -1,5 +1,5 @@
/* Function descriptors. HPPA version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef dl_hppa_fptr_h
#define dl_hppa_fptr_h 1
diff --git a/sysdeps/hppa/dl-irel.h b/sysdeps/hppa/dl-irel.h
index d144b658a2..afd776957a 100644
--- a/sysdeps/hppa/dl-irel.h
+++ b/sysdeps/hppa/dl-irel.h
@@ -1,6 +1,6 @@
/* Machine-dependent ELF indirect relocation inline functions.
HP-PARISC version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
diff --git a/sysdeps/hppa/dl-lookupcfg.h b/sysdeps/hppa/dl-lookupcfg.h
index 38db345936..f1701ddff8 100644
--- a/sysdeps/hppa/dl-lookupcfg.h
+++ b/sysdeps/hppa/dl-lookupcfg.h
@@ -1,5 +1,5 @@
/* Configuration of lookup functions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define ELF_FUNCTION_PTR_IS_SPECIAL
#define DL_UNMAP_IS_SPECIAL
diff --git a/sysdeps/hppa/dl-machine.h b/sysdeps/hppa/dl-machine.h
index 5f4e0d3823..5aa219a5d4 100644
--- a/sysdeps/hppa/dl-machine.h
+++ b/sysdeps/hppa/dl-machine.h
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation inline functions. PA-RISC version.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 Free Software Foundation, Inc.
Contributed by David Huggins-Daines <dhd@debian.org>
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef dl_machine_h
#define dl_machine_h 1
@@ -166,7 +166,7 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
/* FIXME: Search for the got, but backwards through the relocs, technically we should
find it on the first try. However, assuming the relocs got out of order the
routine is made a bit more robust by searching them all in case of failure. */
- for (iplt = (end_jmprel - sizeof(Elf32_Rela)); iplt >= jmprel; iplt -= sizeof (Elf32_Rela))
+ for (iplt = (end_jmprel - sizeof (Elf32_Rela)); iplt >= jmprel; iplt -= sizeof (Elf32_Rela))
{
reloc = (const Elf32_Rela *) iplt;
diff --git a/sysdeps/hppa/dl-symaddr.c b/sysdeps/hppa/dl-symaddr.c
index 4615dfc5b8..5b2589d121 100644
--- a/sysdeps/hppa/dl-symaddr.c
+++ b/sysdeps/hppa/dl-symaddr.c
@@ -1,5 +1,5 @@
/* Get the symbol address. HPPA version.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ldsodefs.h>
#include <dl-machine.h>
diff --git a/sysdeps/hppa/dl-tls.h b/sysdeps/hppa/dl-tls.h
index 9a2ed59701..be29bfa336 100644
--- a/sysdeps/hppa/dl-tls.h
+++ b/sysdeps/hppa/dl-tls.h
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. hppa version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Type used for the representation of TLS information in the GOT. */
diff --git a/sysdeps/hppa/dl-trampoline.S b/sysdeps/hppa/dl-trampoline.S
index 7ee4331cc2..b61a13684a 100644
--- a/sysdeps/hppa/dl-trampoline.S
+++ b/sysdeps/hppa/dl-trampoline.S
@@ -1,5 +1,5 @@
/* PLT trampolines. hppa version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/hppa/fpu/bits/fenv.h b/sysdeps/hppa/fpu/bits/fenv.h
index fe7474de1b..ab822c4bc9 100644
--- a/sysdeps/hppa/fpu/bits/fenv.h
+++ b/sysdeps/hppa/fpu/bits/fenv.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Huggins-Daines <dhd@debian.org>
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FENV_H
# error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
@@ -90,7 +90,7 @@ typedef struct
# define FE_NOMASK_ENV ((const fenv_t *) -2)
#endif
-#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/sysdeps/hppa/fpu/fclrexcpt.c b/sysdeps/hppa/fpu/fclrexcpt.c
index 49c1778712..e36a20bad9 100644
--- a/sysdeps/hppa/fpu/fclrexcpt.c
+++ b/sysdeps/hppa/fpu/fclrexcpt.c
@@ -1,5 +1,5 @@
/* Clear given exceptions in current floating-point environment.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Huggins-Daines <dhd@debian.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/hppa/fpu/fedisblxcpt.c b/sysdeps/hppa/fpu/fedisblxcpt.c
index bd03b6b644..ede3677283 100644
--- a/sysdeps/hppa/fpu/fedisblxcpt.c
+++ b/sysdeps/hppa/fpu/fedisblxcpt.c
@@ -1,5 +1,5 @@
/* Disable floating-point exceptions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Huggins-Daines <dhd@debian.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/hppa/fpu/feenablxcpt.c b/sysdeps/hppa/fpu/feenablxcpt.c
index 62fec44dde..5ab432e33f 100644
--- a/sysdeps/hppa/fpu/feenablxcpt.c
+++ b/sysdeps/hppa/fpu/feenablxcpt.c
@@ -1,5 +1,5 @@
/* Enable floating-point exceptions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Huggins-Daines <dhd@debian.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/hppa/fpu/fegetenv.c b/sysdeps/hppa/fpu/fegetenv.c
index 06c7374a3f..b80f5b467d 100644
--- a/sysdeps/hppa/fpu/fegetenv.c
+++ b/sysdeps/hppa/fpu/fegetenv.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Huggins-Daines <dhd@debian.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <string.h>
diff --git a/sysdeps/hppa/fpu/fegetexcept.c b/sysdeps/hppa/fpu/fegetexcept.c
index 6f58b7d31c..41a7d225cd 100644
--- a/sysdeps/hppa/fpu/fegetexcept.c
+++ b/sysdeps/hppa/fpu/fegetexcept.c
@@ -1,5 +1,5 @@
/* Get enabled floating-point exceptions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Huggins-Daines <dhd@debian.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/hppa/fpu/fegetmode.c b/sysdeps/hppa/fpu/fegetmode.c
index 7e2e06b67b..3f7b8acbae 100644
--- a/sysdeps/hppa/fpu/fegetmode.c
+++ b/sysdeps/hppa/fpu/fegetmode.c
@@ -1,5 +1,5 @@
/* Store current floating-point control modes. HPPA version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/hppa/fpu/fegetround.c b/sysdeps/hppa/fpu/fegetround.c
index bb82a2e922..a7e707d408 100644
--- a/sysdeps/hppa/fpu/fegetround.c
+++ b/sysdeps/hppa/fpu/fegetround.c
@@ -1,5 +1,5 @@
/* Return current rounding direction.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Huggins-Daines <dhd@debian.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <get-rounding-mode.h>
diff --git a/sysdeps/hppa/fpu/feholdexcpt.c b/sysdeps/hppa/fpu/feholdexcpt.c
index 7ae1f3cab9..be99ad811c 100644
--- a/sysdeps/hppa/fpu/feholdexcpt.c
+++ b/sysdeps/hppa/fpu/feholdexcpt.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment and clear exceptions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Huggins-Daines <dhd@debian.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <string.h>
diff --git a/sysdeps/hppa/fpu/fesetenv.c b/sysdeps/hppa/fpu/fesetenv.c
index 2cf05f85f5..aa6db469f1 100644
--- a/sysdeps/hppa/fpu/fesetenv.c
+++ b/sysdeps/hppa/fpu/fesetenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Huggins-Daines <dhd@debian.org>, 2000
Based on the m68k version by
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/hppa/fpu/fesetexcept.c b/sysdeps/hppa/fpu/fesetexcept.c
index eeb0a36223..0ba9c3fa2c 100644
--- a/sysdeps/hppa/fpu/fesetexcept.c
+++ b/sysdeps/hppa/fpu/fesetexcept.c
@@ -1,5 +1,5 @@
/* Set given exception flags. HPPA version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/hppa/fpu/fesetmode.c b/sysdeps/hppa/fpu/fesetmode.c
index cf03bf72d4..2533840f5c 100644
--- a/sysdeps/hppa/fpu/fesetmode.c
+++ b/sysdeps/hppa/fpu/fesetmode.c
@@ -1,5 +1,5 @@
/* Install given floating-point control modes. HPPA version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/hppa/fpu/fesetround.c b/sysdeps/hppa/fpu/fesetround.c
index 36ca40801d..87578a32f9 100644
--- a/sysdeps/hppa/fpu/fesetround.c
+++ b/sysdeps/hppa/fpu/fesetround.c
@@ -1,5 +1,5 @@
/* Set current rounding direction.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Huggins-Daines <dhd@debian.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/hppa/fpu/feupdateenv.c b/sysdeps/hppa/fpu/feupdateenv.c
index be88c0205d..202ee8df8b 100644
--- a/sysdeps/hppa/fpu/feupdateenv.c
+++ b/sysdeps/hppa/fpu/feupdateenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment and raise exceptions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Huggins-Daines <dhd@debian.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <string.h>
@@ -33,7 +33,7 @@ __feupdateenv (const fenv_t *envp)
/* Given environment with exception flags not cleared. */
if ((envp != FE_DFL_ENV) && (envp != FE_NOMASK_ENV))
{
- memcpy(&temp, envp, sizeof(fenv_t));
+ memcpy(&temp, envp, sizeof (fenv_t));
temp.__status_word |= s.sw[0] & (FE_ALL_EXCEPT << 27);
}
diff --git a/sysdeps/hppa/fpu/fgetexcptflg.c b/sysdeps/hppa/fpu/fgetexcptflg.c
index 2c9aa4e774..eb4dcfebdb 100644
--- a/sysdeps/hppa/fpu/fgetexcptflg.c
+++ b/sysdeps/hppa/fpu/fgetexcptflg.c
@@ -1,5 +1,5 @@
/* Store current representation for exceptions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Huggins-Daines <dhd@debian.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/hppa/fpu/fpu_control.h b/sysdeps/hppa/fpu/fpu_control.h
index afe355b825..d1650ad244 100644
--- a/sysdeps/hppa/fpu/fpu_control.h
+++ b/sysdeps/hppa/fpu/fpu_control.h
@@ -1,5 +1,5 @@
/* FPU control word definitions. HP-PARISC version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FPU_CONTROL_H
#define _FPU_CONTROL_H
diff --git a/sysdeps/hppa/fpu/fraiseexcpt.c b/sysdeps/hppa/fpu/fraiseexcpt.c
index 5fffad4f27..62d28a7ebf 100644
--- a/sysdeps/hppa/fpu/fraiseexcpt.c
+++ b/sysdeps/hppa/fpu/fraiseexcpt.c
@@ -1,5 +1,5 @@
/* Raise given exceptions.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Huggins-Daines <dhd@debian.org>
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <float.h>
diff --git a/sysdeps/hppa/fpu/fsetexcptflg.c b/sysdeps/hppa/fpu/fsetexcptflg.c
index 0fdd56a40c..839771544c 100644
--- a/sysdeps/hppa/fpu/fsetexcptflg.c
+++ b/sysdeps/hppa/fpu/fsetexcptflg.c
@@ -1,5 +1,5 @@
/* Set floating-point environment exception handling.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Huggins-Daines <dhd@debian.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/hppa/fpu/ftestexcept.c b/sysdeps/hppa/fpu/ftestexcept.c
index fd6548e58d..d3ae829021 100644
--- a/sysdeps/hppa/fpu/ftestexcept.c
+++ b/sysdeps/hppa/fpu/ftestexcept.c
@@ -1,5 +1,5 @@
/* Test exception in current environment.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Huggins-Daines <dhd@debian.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/hppa/fpu/libm-test-ulps b/sysdeps/hppa/fpu/libm-test-ulps
index d0c4dea001..2c61a7ae91 100644
--- a/sysdeps/hppa/fpu/libm-test-ulps
+++ b/sysdeps/hppa/fpu/libm-test-ulps
@@ -544,9 +544,9 @@ idouble: 1
ifloat: 1
Function: Imaginary part of "ccos_downward":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
Function: Real part of "ccos_towardzero":
@@ -556,9 +556,9 @@ idouble: 1
ifloat: 2
Function: Imaginary part of "ccos_towardzero":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
Function: Real part of "ccos_upward":
@@ -588,27 +588,27 @@ idouble: 1
ifloat: 1
Function: Real part of "ccosh_downward":
-double: 1
+double: 2
float: 3
-idouble: 1
+idouble: 2
ifloat: 3
Function: Imaginary part of "ccosh_downward":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
Function: Real part of "ccosh_towardzero":
-double: 1
+double: 2
float: 3
-idouble: 1
+idouble: 2
ifloat: 3
Function: Imaginary part of "ccosh_towardzero":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
Function: Real part of "ccosh_upward":
@@ -636,27 +636,27 @@ idouble: 1
ifloat: 2
Function: Real part of "cexp_downward":
-double: 1
+double: 2
float: 2
-idouble: 1
+idouble: 2
ifloat: 2
Function: Imaginary part of "cexp_downward":
-double: 1
+double: 3
float: 3
-idouble: 1
+idouble: 3
ifloat: 3
Function: Real part of "cexp_towardzero":
-double: 1
+double: 2
float: 2
-idouble: 1
+idouble: 2
ifloat: 2
Function: Imaginary part of "cexp_towardzero":
-double: 1
+double: 3
float: 3
-idouble: 1
+idouble: 3
ifloat: 3
Function: Real part of "cexp_upward":
@@ -666,9 +666,9 @@ idouble: 1
ifloat: 2
Function: Imaginary part of "cexp_upward":
-double: 1
+double: 3
float: 2
-idouble: 1
+idouble: 3
ifloat: 2
Function: Real part of "clog":
@@ -800,21 +800,21 @@ idouble: 1
ifloat: 1
Function: "cosh_downward":
-double: 1
+double: 2
float: 1
-idouble: 1
+idouble: 2
ifloat: 1
Function: "cosh_towardzero":
-double: 1
+double: 2
float: 1
-idouble: 1
+idouble: 2
ifloat: 1
Function: "cosh_upward":
-double: 1
+double: 2
float: 2
-idouble: 1
+idouble: 2
ifloat: 2
Function: Real part of "cpow":
@@ -834,9 +834,9 @@ ildouble: 2
ldouble: 2
Function: Real part of "cpow_downward":
-double: 4
+double: 5
float: 8
-idouble: 4
+idouble: 5
ifloat: 8
Function: Imaginary part of "cpow_downward":
@@ -846,9 +846,9 @@ idouble: 2
ifloat: 2
Function: Real part of "cpow_towardzero":
-double: 4
+double: 5
float: 8
-idouble: 4
+idouble: 5
ifloat: 8
Function: Imaginary part of "cpow_towardzero":
@@ -876,9 +876,9 @@ idouble: 1
ifloat: 1
Function: Real part of "csin_downward":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
Function: Imaginary part of "csin_downward":
@@ -888,9 +888,9 @@ idouble: 1
ifloat: 2
Function: Real part of "csin_towardzero":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
Function: Imaginary part of "csin_towardzero":
@@ -930,9 +930,9 @@ idouble: 2
ifloat: 2
Function: Imaginary part of "csinh_downward":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
Function: Real part of "csinh_towardzero":
@@ -942,9 +942,9 @@ idouble: 2
ifloat: 2
Function: Imaginary part of "csinh_towardzero":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
Function: Real part of "csinh_upward":
@@ -1172,15 +1172,15 @@ ildouble: 6
ldouble: 6
Function: "exp10_downward":
-double: 2
+double: 3
float: 1
-idouble: 2
+idouble: 3
ifloat: 1
Function: "exp10_towardzero":
-double: 2
+double: 3
float: 1
-idouble: 2
+idouble: 3
ifloat: 1
Function: "exp10_upward":
diff --git a/sysdeps/hppa/gccframe.h b/sysdeps/hppa/gccframe.h
index 4b8ec5cd9f..d120b797d3 100644
--- a/sysdeps/hppa/gccframe.h
+++ b/sysdeps/hppa/gccframe.h
@@ -1,5 +1,5 @@
/* Definition of object in frame unwind info. hppa version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Note: For hppa64 this is 61 */
#define DWARF_FRAME_REGISTERS 89
diff --git a/sysdeps/hppa/get-rounding-mode.h b/sysdeps/hppa/get-rounding-mode.h
index 7e1d03b3f7..7030001e0f 100644
--- a/sysdeps/hppa/get-rounding-mode.h
+++ b/sysdeps/hppa/get-rounding-mode.h
@@ -1,5 +1,5 @@
/* Determine floating-point rounding mode within libc. HP-PARISC version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _HPPA_GET_ROUNDING_MODE_H
#define _HPPA_GET_ROUNDING_MODE_H 1
diff --git a/sysdeps/hppa/hppa1.1/addmul_1.S b/sysdeps/hppa/hppa1.1/addmul_1.S
index 3dec0253bf..116b444356 100644
--- a/sysdeps/hppa/hppa1.1/addmul_1.S
+++ b/sysdeps/hppa/hppa1.1/addmul_1.S
@@ -1,7 +1,7 @@
;! HP-PA-1.1 __mpn_addmul_1 -- Multiply a limb vector with a limb and
;! add the result to a second limb vector.
-;! Copyright (C) 1992-2018 Free Software Foundation, Inc.
+;! Copyright (C) 1992-2019 Free Software Foundation, Inc.
;! This file is part of the GNU MP Library.
@@ -17,7 +17,7 @@
;! You should have received a copy of the GNU Lesser General Public License
;! along with the GNU MP Library. If not, see
-;! <http://www.gnu.org/licenses/>.
+;! <https://www.gnu.org/licenses/>.
;! INPUT PARAMETERS
diff --git a/sysdeps/hppa/hppa1.1/mul_1.S b/sysdeps/hppa/hppa1.1/mul_1.S
index fcafd74002..431032ea9a 100644
--- a/sysdeps/hppa/hppa1.1/mul_1.S
+++ b/sysdeps/hppa/hppa1.1/mul_1.S
@@ -1,7 +1,7 @@
;! HP-PA-1.1 __mpn_mul_1 -- Multiply a limb vector with a limb and store
;! the result in a second limb vector.
-;! Copyright (C) 1992-2018 Free Software Foundation, Inc.
+;! Copyright (C) 1992-2019 Free Software Foundation, Inc.
;! This file is part of the GNU MP Library.
@@ -17,7 +17,7 @@
;! You should have received a copy of the GNU Lesser General Public License
;! along with the GNU MP Library. If not, see
-;! <http://www.gnu.org/licenses/>.
+;! <https://www.gnu.org/licenses/>.
;! INPUT PARAMETERS
diff --git a/sysdeps/hppa/hppa1.1/s_signbit.c b/sysdeps/hppa/hppa1.1/s_signbit.c
index 6139c5a6fd..03193c641a 100644
--- a/sysdeps/hppa/hppa1.1/s_signbit.c
+++ b/sysdeps/hppa/hppa1.1/s_signbit.c
@@ -1,5 +1,5 @@
/* Return nonzero value if number is negative.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/hppa/hppa1.1/submul_1.S b/sysdeps/hppa/hppa1.1/submul_1.S
index cfcf2db85a..f493488b5d 100644
--- a/sysdeps/hppa/hppa1.1/submul_1.S
+++ b/sysdeps/hppa/hppa1.1/submul_1.S
@@ -1,7 +1,7 @@
;! HP-PA-1.1 __mpn_submul_1 -- Multiply a limb vector with a limb and
;! subtract the result from a second limb vector.
-;! Copyright (C) 1992-2018 Free Software Foundation, Inc.
+;! Copyright (C) 1992-2019 Free Software Foundation, Inc.
;! This file is part of the GNU MP Library.
@@ -17,7 +17,7 @@
;! You should have received a copy of the GNU Lesser General Public License
;! along with the GNU MP Library. If not, see
-;! <http://www.gnu.org/licenses/>.
+;! <https://www.gnu.org/licenses/>.
;! INPUT PARAMETERS
diff --git a/sysdeps/hppa/hppa1.1/udiv_qrnnd.S b/sysdeps/hppa/hppa1.1/udiv_qrnnd.S
index 74069f7ace..a746248ccb 100644
--- a/sysdeps/hppa/hppa1.1/udiv_qrnnd.S
+++ b/sysdeps/hppa/hppa1.1/udiv_qrnnd.S
@@ -1,7 +1,7 @@
;! HP-PA __udiv_qrnnd division support, used from longlong.h.
;! This version runs fast on PA 7000 and later.
-;! Copyright (C) 1993-2018 Free Software Foundation, Inc.
+;! Copyright (C) 1993-2019 Free Software Foundation, Inc.
;! This file is part of the GNU MP Library.
@@ -17,7 +17,7 @@
;! You should have received a copy of the GNU Lesser General Public License
;! along with the GNU MP Library. If not, see
-;! <http://www.gnu.org/licenses/>.
+;! <https://www.gnu.org/licenses/>.
;! INPUT PARAMETERS
diff --git a/sysdeps/hppa/jmpbuf-offsets.h b/sysdeps/hppa/jmpbuf-offsets.h
index b01f47453f..97320cea9a 100644
--- a/sysdeps/hppa/jmpbuf-offsets.h
+++ b/sysdeps/hppa/jmpbuf-offsets.h
@@ -1,5 +1,5 @@
/* Private macros for accessing __jmp_buf contents. HPPA version.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define JB_SP (76/4)
diff --git a/sysdeps/hppa/jmpbuf-unwind.h b/sysdeps/hppa/jmpbuf-unwind.h
index 9e38981389..8ae209614f 100644
--- a/sysdeps/hppa/jmpbuf-unwind.h
+++ b/sysdeps/hppa/jmpbuf-unwind.h
@@ -1,5 +1,5 @@
/* Examine __jmp_buf for unwinding frames. HPPA version.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <setjmp.h>
#include <jmpbuf-offsets.h>
@@ -22,5 +22,5 @@
/* Test if longjmp to JMPBUF would unwind the frame containing a local
variable at ADDRESS. */
#define _JMPBUF_UNWINDS(_jmpbuf, _address, _demangle) \
- ((void *) (_address) > \
- (void *) _demangle ((((unsigned long *) _jmpbuf)[JB_SP])))
+ ((void *) (_address) \
+ > (void *) _demangle ((((unsigned long *) _jmpbuf)[JB_SP])))
diff --git a/sysdeps/hppa/ldsodefs.h b/sysdeps/hppa/ldsodefs.h
index 292fdbef4e..2cd325c883 100644
--- a/sysdeps/hppa/ldsodefs.h
+++ b/sysdeps/hppa/ldsodefs.h
@@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _HPPA_LDSODEFS_H
#define _HPPA_LDSODEFS_H 1
diff --git a/sysdeps/hppa/libc-tls.c b/sysdeps/hppa/libc-tls.c
index 9e9aa94903..2d4183201c 100644
--- a/sysdeps/hppa/libc-tls.c
+++ b/sysdeps/hppa/libc-tls.c
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. hppa version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <csu/libc-tls.c>
#include <dl-tls.h>
diff --git a/sysdeps/hppa/libgcc-compat.c b/sysdeps/hppa/libgcc-compat.c
index 1438a8e0f0..500bc3ab51 100644
--- a/sysdeps/hppa/libgcc-compat.c
+++ b/sysdeps/hppa/libgcc-compat.c
@@ -1,5 +1,5 @@
/* pre-.hidden libgcc compatibility
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Randolph Chung
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/sysdeps/hppa/lshift.S b/sysdeps/hppa/lshift.S
index ab23dd0ee8..b255e4be99 100644
--- a/sysdeps/hppa/lshift.S
+++ b/sysdeps/hppa/lshift.S
@@ -1,6 +1,6 @@
;! HP-PA __mpn_lshift --
-;! Copyright (C) 1992-2018 Free Software Foundation, Inc.
+;! Copyright (C) 1992-2019 Free Software Foundation, Inc.
;! This file is part of the GNU MP Library.
@@ -16,7 +16,7 @@
;! You should have received a copy of the GNU Lesser General Public License
;! along with the GNU MP Library. If not, see
-;! <http://www.gnu.org/licenses/>.
+;! <https://www.gnu.org/licenses/>.
;! INPUT PARAMETERS
diff --git a/sysdeps/hppa/machine-gmon.h b/sysdeps/hppa/machine-gmon.h
index 08b3c3a6b9..371cb03f9f 100644
--- a/sysdeps/hppa/machine-gmon.h
+++ b/sysdeps/hppa/machine-gmon.h
@@ -1,5 +1,5 @@
/* Machine-specific calling sequence for `mcount' profiling function. PA-RISC
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* We can call _mcount directly since gcc supplies the correct
* arguments */
diff --git a/sysdeps/hppa/math-tests-snan-payload.h b/sysdeps/hppa/math-tests-snan-payload.h
new file mode 100644
index 0000000000..73e58381c1
--- /dev/null
+++ b/sysdeps/hppa/math-tests-snan-payload.h
@@ -0,0 +1,25 @@
+/* Configuration for math tests: sNaN payloads. hppa version.
+ Copyright (C) 2017-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef HPPA_MATH_TESTS_SNAN_PAYLOAD_H
+#define HPPA_MATH_TESTS_SNAN_PAYLOAD_H 1
+
+/* SNaN tests do not preserve payloads. */
+#define SNAN_TESTS_PRESERVE_PAYLOAD 0
+
+#endif /* math-tests-snan-payload.h. */
diff --git a/sysdeps/hppa/math-tests.h b/sysdeps/hppa/math-tests.h
deleted file mode 100644
index 2fb3a55899..0000000000
--- a/sysdeps/hppa/math-tests.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Configuration for math tests. hppa version.
- Copyright (C) 2017-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-/* SNaN tests do not preserve payloads. */
-#define SNAN_TESTS_PRESERVE_PAYLOAD 0
-
-#include_next <math-tests.h>
diff --git a/sysdeps/hppa/memusage.h b/sysdeps/hppa/memusage.h
index b82e665614..07fe70f3d4 100644
--- a/sysdeps/hppa/memusage.h
+++ b/sysdeps/hppa/memusage.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define GETSP() ({ register uintptr_t stack_ptr asm ("%r30"); stack_ptr; })
#define STACK_GROWS_UPWARD 1
diff --git a/sysdeps/hppa/nan-high-order-bit.h b/sysdeps/hppa/nan-high-order-bit.h
index fa2ea53aa9..cf5f9f25af 100644
--- a/sysdeps/hppa/nan-high-order-bit.h
+++ b/sysdeps/hppa/nan-high-order-bit.h
@@ -1,5 +1,5 @@
/* Specify NaN high-order bit conventions. HPPA version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef NAN_HIGH_ORDER_BIT_H
#define NAN_HIGH_ORDER_BIT_H 1
diff --git a/sysdeps/hppa/nptl/Makefile b/sysdeps/hppa/nptl/Makefile
index cac490cfd5..441ad64330 100644
--- a/sysdeps/hppa/nptl/Makefile
+++ b/sysdeps/hppa/nptl/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 2005-2018 Free Software Foundation, Inc.
+# Copyright (C) 2005-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
ifeq ($(subdir),csu)
gen-as-const-headers += tcb-offsets.sym
diff --git a/sysdeps/hppa/nptl/bits/pthreadtypes-arch.h b/sysdeps/hppa/nptl/bits/pthreadtypes-arch.h
index 9af995716e..58e077cb4e 100644
--- a/sysdeps/hppa/nptl/bits/pthreadtypes-arch.h
+++ b/sysdeps/hppa/nptl/bits/pthreadtypes-arch.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_PTHREADTYPES_ARCH_H
#define _BITS_PTHREADTYPES_ARCH_H 1
@@ -40,52 +40,7 @@
#define __SIZEOF_PTHREAD_RWLOCK_T 64
#define __SIZEOF_PTHREAD_RWLOCKATTR_T 8
-/* The old 4-word 16-byte aligned lock. This is initalized
- to all ones by the Linuxthreads PTHREAD_MUTEX_INITIALIZER.
- Unused in NPTL. */
-#define __PTHREAD_COMPAT_PADDING_MID int __compat_padding[4];
-/* Two more words are left before the NPTL
- pthread_mutex_t is larger than Linuxthreads. */
-#define __PTHREAD_COMPAT_PADDING_END int __reserved[2];
-#define __PTHREAD_MUTEX_LOCK_ELISION 0
-#define __PTHREAD_MUTEX_NUSERS_AFTER_KIND 1
-#define __PTHREAD_MUTEX_USE_UNION 1
-
#define __LOCK_ALIGNMENT __attribute__ ((__aligned__(16)))
#define __ONCE_ALIGNMENT
-struct __pthread_rwlock_arch_t
-{
- /* In the old Linuxthreads pthread_rwlock_t, this is the
- start of the 4-word 16-byte aligned lock structure. The
- next four words are all set to 1 by the Linuxthreads
- PTHREAD_RWLOCK_INITIALIZER. We ignore them in NPTL. */
- int __compat_padding[4] __attribute__ ((__aligned__(16)));
- unsigned int __readers;
- unsigned int __writers;
- unsigned int __wrphase_futex;
- unsigned int __writers_futex;
- unsigned int __pad3;
- unsigned int __pad4;
- int __cur_writer;
- /* An unused word, reserved for future use. It was added
- to maintain the location of the flags from the Linuxthreads
- layout of this structure. */
- int __reserved1;
- /* FLAGS must stay at this position in the structure to maintain
- binary compatibility. */
- unsigned char __pad2;
- unsigned char __pad1;
- unsigned char __shared;
- unsigned char __flags;
- /* The NPTL pthread_rwlock_t is 4 words smaller than the
- Linuxthreads version. One word is in the middle of the
- structure, the other three are at the end. */
- int __reserved2;
- int __reserved3;
- int __reserved4;
-};
-
-#define __PTHREAD_RWLOCK_ELISION_EXTRA 0
-
#endif /* bits/pthreadtypes.h */
diff --git a/sysdeps/hppa/nptl/bits/semaphore.h b/sysdeps/hppa/nptl/bits/semaphore.h
index e6f75bf49b..fff61d67ce 100644
--- a/sysdeps/hppa/nptl/bits/semaphore.h
+++ b/sysdeps/hppa/nptl/bits/semaphore.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SEMAPHORE_H
# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
diff --git a/sysdeps/hppa/nptl/bits/struct_mutex.h b/sysdeps/hppa/nptl/bits/struct_mutex.h
new file mode 100644
index 0000000000..7f81256fe3
--- /dev/null
+++ b/sysdeps/hppa/nptl/bits/struct_mutex.h
@@ -0,0 +1,53 @@
+/* HPPA internal mutex struct definitions.
+ 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; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _THREAD_MUTEX_INTERNAL_H
+#define _THREAD_MUTEX_INTERNAL_H 1
+
+struct __pthread_mutex_s
+{
+ int __lock __LOCK_ALIGNMENT;
+ unsigned int __count;
+ int __owner;
+ /* KIND must stay at this position in the structure to maintain
+ binary compatibility with static initializers. */
+ int __kind;
+ /* The old 4-word 16-byte aligned lock. This is initalized
+ to all ones by the Linuxthreads PTHREAD_MUTEX_INITIALIZER.
+ Unused in NPTL. */
+ int __glibc_compat_padding[4];
+ /* In the old structure there are 4 words left due to alignment.
+ In NPTL two words are used. */
+ unsigned int __nusers;
+ __extension__ union
+ {
+ int __spins;
+ __pthread_slist_t __list;
+ };
+ /* Two more words are left before the NPTL
+ pthread_mutex_t is larger than Linuxthreads. */
+ int __glibc_reserved1;
+ int __glibc_reserved2;
+};
+
+#define __PTHREAD_MUTEX_HAVE_PREV 0
+
+#define __PTHREAD_MUTEX_INITIALIZER(__kind) \
+ 0, 0, 0, __kind, { 0, 0, 0, 0 }, 0, { 0 }, 0, 0
+
+#endif
diff --git a/sysdeps/hppa/nptl/bits/struct_rwlock.h b/sysdeps/hppa/nptl/bits/struct_rwlock.h
new file mode 100644
index 0000000000..5370c7c3bb
--- /dev/null
+++ b/sysdeps/hppa/nptl/bits/struct_rwlock.h
@@ -0,0 +1,58 @@
+/* HPPA internal rwlock struct definitions.
+ 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; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _RWLOCK_INTERNAL_H
+#define _RWLOCK_INTERNAL_H
+
+struct __pthread_rwlock_arch_t
+{
+ /* In the old Linuxthreads pthread_rwlock_t, this is the
+ start of the 4-word 16-byte aligned lock structure. The
+ next four words are all set to 1 by the Linuxthreads
+ PTHREAD_RWLOCK_INITIALIZER. We ignore them in NPTL. */
+ int __compat_padding[4] __attribute__ ((__aligned__(16)));
+ unsigned int __readers;
+ unsigned int __writers;
+ unsigned int __wrphase_futex;
+ unsigned int __writers_futex;
+ unsigned int __pad3;
+ unsigned int __pad4;
+ int __cur_writer;
+ /* An unused word, reserved for future use. It was added
+ to maintain the location of the flags from the Linuxthreads
+ layout of this structure. */
+ int __reserved1;
+ /* FLAGS must stay at this position in the structure to maintain
+ binary compatibility. */
+ unsigned char __pad2;
+ unsigned char __pad1;
+ unsigned char __shared;
+ unsigned char __flags;
+ /* The NPTL pthread_rwlock_t is 4 words smaller than the
+ Linuxthreads version. One word is in the middle of the
+ structure, the other three are at the end. */
+ int __reserved2;
+ int __reserved3;
+ int __reserved4;
+};
+
+#define __PTHREAD_RWLOCK_INITIALIZER(__flags) \
+ { 0, 0, 0, 0 }, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, __flags, 0, 0, 0
+
+#endif
diff --git a/sysdeps/hppa/nptl/jmpbuf-unwind.h b/sysdeps/hppa/nptl/jmpbuf-unwind.h
index 6ee404fd6f..6748528b9b 100644
--- a/sysdeps/hppa/nptl/jmpbuf-unwind.h
+++ b/sysdeps/hppa/nptl/jmpbuf-unwind.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <setjmp.h>
#include <jmpbuf-offsets.h>
diff --git a/sysdeps/hppa/nptl/pthread-offsets.h b/sysdeps/hppa/nptl/pthread-offsets.h
index 8ae01b9d95..1c11eff10b 100644
--- a/sysdeps/hppa/nptl/pthread-offsets.h
+++ b/sysdeps/hppa/nptl/pthread-offsets.h
@@ -1,5 +1,3 @@
-#define __PTHREAD_MUTEX_NUSERS_OFFSET 32
#define __PTHREAD_MUTEX_KIND_OFFSET 12
-#define __PTHREAD_MUTEX_SPINS_OFFSET 36
-#define __PTHREAD_MUTEX_ELISION_OFFSET 22
-#define __PTHREAD_MUTEX_LIST_OFFSET 36
+
+#define __PTHREAD_RWLOCK_FLAGS_OFFSET 51
diff --git a/sysdeps/hppa/nptl/pthread_spin_init.c b/sysdeps/hppa/nptl/pthread_spin_init.c
index eaf07bd717..d5d61558d4 100644
--- a/sysdeps/hppa/nptl/pthread_spin_init.c
+++ b/sysdeps/hppa/nptl/pthread_spin_init.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2006-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "pthreadP.h"
diff --git a/sysdeps/hppa/nptl/pthread_spin_unlock.c b/sysdeps/hppa/nptl/pthread_spin_unlock.c
index 1581247330..f5666a1422 100644
--- a/sysdeps/hppa/nptl/pthread_spin_unlock.c
+++ b/sysdeps/hppa/nptl/pthread_spin_unlock.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "pthreadP.h"
diff --git a/sysdeps/hppa/nptl/pthreaddef.h b/sysdeps/hppa/nptl/pthreaddef.h
index cdb55687f5..1b65b3661f 100644
--- a/sysdeps/hppa/nptl/pthreaddef.h
+++ b/sysdeps/hppa/nptl/pthreaddef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Default stack size. */
#define ARCH_STACK_DEFAULT_SIZE (8 * 1024 * 1024)
diff --git a/sysdeps/hppa/nptl/tls.h b/sysdeps/hppa/nptl/tls.h
index 2b94e346c1..aa5ff94364 100644
--- a/sysdeps/hppa/nptl/tls.h
+++ b/sysdeps/hppa/nptl/tls.h
@@ -1,5 +1,5 @@
/* Definition for thread-local data handling. NPTL/hppa version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _TLS_H
#define _TLS_H 1
diff --git a/sysdeps/hppa/nptl/tst-oddstacklimit.c b/sysdeps/hppa/nptl/tst-oddstacklimit.c
index c8579dc0e2..fcd33b3dd6 100644
--- a/sysdeps/hppa/nptl/tst-oddstacklimit.c
+++ b/sysdeps/hppa/nptl/tst-oddstacklimit.c
@@ -1,6 +1,6 @@
/* Test NPTL with stack limit that is not a multiple of the page size.
HPPA version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This sets the stack resource limit to 8193kb, which is not a multiple
of the page size, and therefore an odd sized stack limit. We override
diff --git a/sysdeps/hppa/rshift.S b/sysdeps/hppa/rshift.S
index 882a5c3c3a..1b0d849a96 100644
--- a/sysdeps/hppa/rshift.S
+++ b/sysdeps/hppa/rshift.S
@@ -1,6 +1,6 @@
;! HP-PA __mpn_rshift --
-;! Copyright (C) 1992-2018 Free Software Foundation, Inc.
+;! Copyright (C) 1992-2019 Free Software Foundation, Inc.
;! This file is part of the GNU MP Library.
@@ -16,7 +16,7 @@
;! You should have received a copy of the GNU Lesser General Public License
;! along with the GNU MP Library. If not, see
-;! <http://www.gnu.org/licenses/>.
+;! <https://www.gnu.org/licenses/>.
;! INPUT PARAMETERS
diff --git a/sysdeps/hppa/setjmp.S b/sysdeps/hppa/setjmp.S
index 941ecb1d45..2fea35b17e 100644
--- a/sysdeps/hppa/setjmp.S
+++ b/sysdeps/hppa/setjmp.S
@@ -1,5 +1,5 @@
/* setjmp for HPPA.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#define _ASM
diff --git a/sysdeps/hppa/sotruss-lib.c b/sysdeps/hppa/sotruss-lib.c
index 1530b13d34..f6b5a2d1f2 100644
--- a/sysdeps/hppa/sotruss-lib.c
+++ b/sysdeps/hppa/sotruss-lib.c
@@ -1,5 +1,5 @@
/* Override generic sotruss-lib.c to define actual functions for HP-PARISC.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define HAVE_ARCH_PLTENTER
#define HAVE_ARCH_PLTEXIT
diff --git a/sysdeps/hppa/stackinfo.h b/sysdeps/hppa/stackinfo.h
index ae9d9f02a2..341ddcfa45 100644
--- a/sysdeps/hppa/stackinfo.h
+++ b/sysdeps/hppa/stackinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file contains a bit of information about the stack allocation
of the processor. */
diff --git a/sysdeps/hppa/start.S b/sysdeps/hppa/start.S
index c1d2bd4bb7..7cecc8e6cb 100644
--- a/sysdeps/hppa/start.S
+++ b/sysdeps/hppa/start.S
@@ -1,5 +1,5 @@
/* ELF startup code for HPPA.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
.import main, code
.import $global$, data
diff --git a/sysdeps/hppa/sub_n.S b/sysdeps/hppa/sub_n.S
index d42001e798..009d6a4137 100644
--- a/sysdeps/hppa/sub_n.S
+++ b/sysdeps/hppa/sub_n.S
@@ -1,7 +1,7 @@
;! HP-PA __mpn_sub_n -- Subtract two limb vectors of the same length > 0 and
;! store difference in a third limb vector.
-;! Copyright (C) 1992-2018 Free Software Foundation, Inc.
+;! Copyright (C) 1992-2019 Free Software Foundation, Inc.
;! This file is part of the GNU MP Library.
@@ -17,7 +17,7 @@
;! You should have received a copy of the GNU Lesser General Public License
;! along with the GNU MP Library. If not, see
-;! <http://www.gnu.org/licenses/>.
+;! <https://www.gnu.org/licenses/>.
;! INPUT PARAMETERS
diff --git a/sysdeps/hppa/sysdep.h b/sysdeps/hppa/sysdep.h
index 4b139228a1..8a6f54d980 100644
--- a/sysdeps/hppa/sysdep.h
+++ b/sysdeps/hppa/sysdep.h
@@ -1,5 +1,5 @@
/* Assembler macros for HP/PA.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper, <drepper@cygnus.com>, August 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/generic/sysdep.h>
diff --git a/sysdeps/hppa/tst-audit.h b/sysdeps/hppa/tst-audit.h
index 4ba373448c..5950971ac7 100644
--- a/sysdeps/hppa/tst-audit.h
+++ b/sysdeps/hppa/tst-audit.h
@@ -1,6 +1,6 @@
/* Definitions for testing PLT entry/exit auditing. HP-PARISC version.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define pltenter la_hppa_gnu_pltenter
#define pltexit la_hppa_gnu_pltexit
diff --git a/sysdeps/hppa/udiv_qrnnd.S b/sysdeps/hppa/udiv_qrnnd.S
index e7e850b98a..89b69ecb23 100644
--- a/sysdeps/hppa/udiv_qrnnd.S
+++ b/sysdeps/hppa/udiv_qrnnd.S
@@ -1,7 +1,7 @@
;! HP-PA __udiv_qrnnd division support, used from longlong.h.
;! This version runs fast on pre-PA7000 CPUs.
-;! Copyright (C) 1993-2018 Free Software Foundation, Inc.
+;! Copyright (C) 1993-2019 Free Software Foundation, Inc.
;! This file is part of the GNU MP Library.
@@ -17,7 +17,7 @@
;! You should have received a copy of the GNU Lesser General Public License
;! along with the GNU MP Library. If not, see
-;! <http://www.gnu.org/licenses/>.
+;! <https://www.gnu.org/licenses/>.
;! INPUT PARAMETERS
diff --git a/sysdeps/htl/bits/cancelation.h b/sysdeps/htl/bits/cancelation.h
index 436dfcbbfa..8c3b3360e4 100644
--- a/sysdeps/htl/bits/cancelation.h
+++ b/sysdeps/htl/bits/cancelation.h
@@ -1,5 +1,5 @@
/* Cancelation. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_CANCELATION_H
#define _BITS_CANCELATION_H 1
diff --git a/sysdeps/htl/bits/pthread-np.h b/sysdeps/htl/bits/pthread-np.h
index b40f9baafe..31858f9773 100644
--- a/sysdeps/htl/bits/pthread-np.h
+++ b/sysdeps/htl/bits/pthread-np.h
@@ -1,5 +1,5 @@
/* Non-portable functions. Generic version.
- Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* Never include this file directly; use <pthread.h> or <cthreads.h> instead.
diff --git a/sysdeps/htl/bits/pthread.h b/sysdeps/htl/bits/pthread.h
index 3cbe5308e9..649745cefd 100644
--- a/sysdeps/htl/bits/pthread.h
+++ b/sysdeps/htl/bits/pthread.h
@@ -1,5 +1,5 @@
/* Pthread data structures. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_PTHREAD_H
#define _BITS_PTHREAD_H 1
diff --git a/sysdeps/htl/bits/pthreadtypes.h b/sysdeps/htl/bits/pthreadtypes.h
index cb75fee490..3ac1b27767 100644
--- a/sysdeps/htl/bits/pthreadtypes.h
+++ b/sysdeps/htl/bits/pthreadtypes.h
@@ -1,5 +1,5 @@
/* Declaration of common pthread types for all architectures. Hurd version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if !defined _BITS_TYPES_H && !defined _PTHREAD_H
# error "Never include <bits/pthreadtypes.h> directly; use <sys/types.h> instead."
diff --git a/sysdeps/htl/bits/semaphore.h b/sysdeps/htl/bits/semaphore.h
index 55a6a04517..ec0dbd1e66 100644
--- a/sysdeps/htl/bits/semaphore.h
+++ b/sysdeps/htl/bits/semaphore.h
@@ -1,5 +1,5 @@
/* Semaphore type. Generic version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_SEMAPHORE_H
#define _BITS_SEMAPHORE_H 1
diff --git a/sysdeps/htl/bits/thread-shared-types.h b/sysdeps/htl/bits/thread-shared-types.h
index 054cbf201f..59fd6cca84 100644
--- a/sysdeps/htl/bits/thread-shared-types.h
+++ b/sysdeps/htl/bits/thread-shared-types.h
@@ -1,5 +1,5 @@
/* Common threading primitives definitions for both POSIX and C11.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _THREAD_SHARED_TYPES_H
#define _THREAD_SHARED_TYPES_H 1
diff --git a/sysdeps/htl/bits/types/__pthread_key.h b/sysdeps/htl/bits/types/__pthread_key.h
index 8d33e15d97..a333481f9d 100644
--- a/sysdeps/htl/bits/types/__pthread_key.h
+++ b/sysdeps/htl/bits/types/__pthread_key.h
@@ -1,5 +1,5 @@
/* Thread specific data. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_TYPES___PTHREAD_KEY_H
#define _BITS_TYPES___PTHREAD_KEY_H 1
diff --git a/sysdeps/htl/bits/types/struct___pthread_attr.h b/sysdeps/htl/bits/types/struct___pthread_attr.h
index 3c78291cbf..888cd77da7 100644
--- a/sysdeps/htl/bits/types/struct___pthread_attr.h
+++ b/sysdeps/htl/bits/types/struct___pthread_attr.h
@@ -1,5 +1,5 @@
/* Thread attribute type. Generic version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_TYPES_STRUCT___PTHREAD_ATTR
#define _BITS_TYPES_STRUCT___PTHREAD_ATTR 1
diff --git a/sysdeps/htl/bits/types/struct___pthread_barrier.h b/sysdeps/htl/bits/types/struct___pthread_barrier.h
index 113b624671..0ff19092fe 100644
--- a/sysdeps/htl/bits/types/struct___pthread_barrier.h
+++ b/sysdeps/htl/bits/types/struct___pthread_barrier.h
@@ -1,5 +1,5 @@
/* Thread barrier attribute type. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_TYPES_STRUCT___PTHREAD_BARRIER_H
#define _BITS_TYPES_STRUCT___PTHREAD_BARRIER_H 1
diff --git a/sysdeps/htl/bits/types/struct___pthread_barrierattr.h b/sysdeps/htl/bits/types/struct___pthread_barrierattr.h
index 639ef5d5ef..85f54e7257 100644
--- a/sysdeps/htl/bits/types/struct___pthread_barrierattr.h
+++ b/sysdeps/htl/bits/types/struct___pthread_barrierattr.h
@@ -1,5 +1,5 @@
/* Thread barrier attribute type. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_TYPES_STRUCT___PTHREAD_BARRIERATTR_H
#define _BITS_TYPES_STRUCT___PTHREAD_BARRIERATTR_H 1
diff --git a/sysdeps/htl/bits/types/struct___pthread_cond.h b/sysdeps/htl/bits/types/struct___pthread_cond.h
index 86215191b4..bc98c18278 100644
--- a/sysdeps/htl/bits/types/struct___pthread_cond.h
+++ b/sysdeps/htl/bits/types/struct___pthread_cond.h
@@ -1,5 +1,5 @@
/* Condition type. Generic version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_TYPES_STRUCT___PTHREAD_COND_H
#define _BITS_TYPES_STRUCT___PTHREAD_COND_H 1
diff --git a/sysdeps/htl/bits/types/struct___pthread_condattr.h b/sysdeps/htl/bits/types/struct___pthread_condattr.h
index 3297e984e3..68b3e57d4d 100644
--- a/sysdeps/htl/bits/types/struct___pthread_condattr.h
+++ b/sysdeps/htl/bits/types/struct___pthread_condattr.h
@@ -1,5 +1,5 @@
/* Condition attribute type. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_TYPES_STRUCT___PTHREAD_CONDATTR
#define _BITS_TYPES_STRUCT___PTHREAD_CONDATTR 1
diff --git a/sysdeps/htl/bits/types/struct___pthread_mutex.h b/sysdeps/htl/bits/types/struct___pthread_mutex.h
index 564e6a3159..c1b1b8f9c1 100644
--- a/sysdeps/htl/bits/types/struct___pthread_mutex.h
+++ b/sysdeps/htl/bits/types/struct___pthread_mutex.h
@@ -1,6 +1,6 @@
/* Mutex type. Generic version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_TYPES_STRUCT___PTHREAD_MUTEX_H
#define _BITS_TYPES_STRUCT___PTHREAD_MUTEX_H 1
diff --git a/sysdeps/htl/bits/types/struct___pthread_mutexattr.h b/sysdeps/htl/bits/types/struct___pthread_mutexattr.h
index 239b366ab5..7fadaad00b 100644
--- a/sysdeps/htl/bits/types/struct___pthread_mutexattr.h
+++ b/sysdeps/htl/bits/types/struct___pthread_mutexattr.h
@@ -1,5 +1,5 @@
/* Mutex attribute type. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_TYPES_STRUCT___PTHREAD_MUTEXATTR_H
#define _BITS_TYPES_STRUCT___PTHREAD_MUTEXATTR_H 1
diff --git a/sysdeps/htl/bits/types/struct___pthread_once.h b/sysdeps/htl/bits/types/struct___pthread_once.h
index 99fa43b0cb..0d56462d85 100644
--- a/sysdeps/htl/bits/types/struct___pthread_once.h
+++ b/sysdeps/htl/bits/types/struct___pthread_once.h
@@ -1,5 +1,5 @@
/* Dynamic package initialization data structures. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_TYPES_STRUCT___PTHREAD_ONCE_H
#define _BITS_TYPES_STRUCT___PTHREAD_ONCE_H 1
diff --git a/sysdeps/htl/bits/types/struct___pthread_rwlock.h b/sysdeps/htl/bits/types/struct___pthread_rwlock.h
index 8bac46a28a..1706fab60f 100644
--- a/sysdeps/htl/bits/types/struct___pthread_rwlock.h
+++ b/sysdeps/htl/bits/types/struct___pthread_rwlock.h
@@ -1,5 +1,5 @@
/* rwlock type. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_TYPES_STRUCT___PTHREAD_RWLOCK_H
#define _BITS_TYPES_STRUCT___PTHREAD_RWLOCK_H
diff --git a/sysdeps/htl/bits/types/struct___pthread_rwlockattr.h b/sysdeps/htl/bits/types/struct___pthread_rwlockattr.h
index 8bafba6ac3..cd1b14409a 100644
--- a/sysdeps/htl/bits/types/struct___pthread_rwlockattr.h
+++ b/sysdeps/htl/bits/types/struct___pthread_rwlockattr.h
@@ -1,5 +1,5 @@
/* Thread rwlock attribute type. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_TYPES_STRUCT___PTHREAD_RWLOCKATTR_H
#define _BITS_TYPES_STRUCT___PTHREAD_RWLOCKATTR_H 1
diff --git a/sysdeps/htl/flockfile.c b/sysdeps/htl/flockfile.c
index f9df093767..f75a4af4fe 100644
--- a/sysdeps/htl/flockfile.c
+++ b/sysdeps/htl/flockfile.c
@@ -1,5 +1,5 @@
/* Lock I/O stream. Hurd version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <libc-lock.h>
diff --git a/sysdeps/htl/fork.h b/sysdeps/htl/fork.h
index f944a741ee..d5ce934f11 100644
--- a/sysdeps/htl/fork.h
+++ b/sysdeps/htl/fork.h
@@ -1,5 +1,5 @@
/* Register fork handlers. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Function to call to unregister fork handlers. */
extern void __unregister_atfork (void *dso_handle) attribute_hidden;
diff --git a/sysdeps/htl/ftrylockfile.c b/sysdeps/htl/ftrylockfile.c
index 7de42c7b3d..207cc97923 100644
--- a/sysdeps/htl/ftrylockfile.c
+++ b/sysdeps/htl/ftrylockfile.c
@@ -1,5 +1,5 @@
/* Try locking I/O stream. Hurd version
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/sysdeps/htl/funlockfile.c b/sysdeps/htl/funlockfile.c
index bc7da12c34..1bc2ed2219 100644
--- a/sysdeps/htl/funlockfile.c
+++ b/sysdeps/htl/funlockfile.c
@@ -1,5 +1,5 @@
/* Unlock I/O stream. Hurd version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
diff --git a/sysdeps/htl/libc-lockP.h b/sysdeps/htl/libc-lockP.h
index 944c0e5931..6c009e8e50 100644
--- a/sysdeps/htl/libc-lockP.h
+++ b/sysdeps/htl/libc-lockP.h
@@ -1,5 +1,5 @@
/* Private libc-internal interface for mutex locks.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#ifndef _BITS_LIBC_LOCKP_H
#define _BITS_LIBC_LOCKP_H 1
diff --git a/sysdeps/htl/old_pt-atfork.c b/sysdeps/htl/old_pt-atfork.c
index f1d177867a..ebd96db14c 100644
--- a/sysdeps/htl/old_pt-atfork.c
+++ b/sysdeps/htl/old_pt-atfork.c
@@ -1,5 +1,5 @@
/* Register fork handlers. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <shlib-compat.h>
diff --git a/sysdeps/htl/pt-atfork.c b/sysdeps/htl/pt-atfork.c
index 0d308bd8db..27806c9901 100644
--- a/sysdeps/htl/pt-atfork.c
+++ b/sysdeps/htl/pt-atfork.c
@@ -1,5 +1,5 @@
/* Register fork handlers. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-attr-destroy.c b/sysdeps/htl/pt-attr-destroy.c
index 46b4dab299..c457d84b6e 100644
--- a/sysdeps/htl/pt-attr-destroy.c
+++ b/sysdeps/htl/pt-attr-destroy.c
@@ -1,5 +1,5 @@
/* pthread_attr_destroy. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-attr-getdetachstate.c b/sysdeps/htl/pt-attr-getdetachstate.c
index cb6fca7143..3f927aab44 100644
--- a/sysdeps/htl/pt-attr-getdetachstate.c
+++ b/sysdeps/htl/pt-attr-getdetachstate.c
@@ -1,5 +1,5 @@
/* pthread_attr_getdetachstate. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-attr-getguardsize.c b/sysdeps/htl/pt-attr-getguardsize.c
index 9dcffe7278..210d64ac36 100644
--- a/sysdeps/htl/pt-attr-getguardsize.c
+++ b/sysdeps/htl/pt-attr-getguardsize.c
@@ -1,5 +1,5 @@
/* pthread_attr_getguardsize. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-attr-getinheritsched.c b/sysdeps/htl/pt-attr-getinheritsched.c
index f36491d8f8..ba0364520a 100644
--- a/sysdeps/htl/pt-attr-getinheritsched.c
+++ b/sysdeps/htl/pt-attr-getinheritsched.c
@@ -1,5 +1,5 @@
/* pthread_attr_getinheritsched. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-attr-getschedparam.c b/sysdeps/htl/pt-attr-getschedparam.c
index a7cf7edee8..f92e99b7bf 100644
--- a/sysdeps/htl/pt-attr-getschedparam.c
+++ b/sysdeps/htl/pt-attr-getschedparam.c
@@ -1,5 +1,5 @@
/* pthread_attr_getschedparam. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <sched.h>
diff --git a/sysdeps/htl/pt-attr-getschedpolicy.c b/sysdeps/htl/pt-attr-getschedpolicy.c
index 708a100f8b..faa7298693 100644
--- a/sysdeps/htl/pt-attr-getschedpolicy.c
+++ b/sysdeps/htl/pt-attr-getschedpolicy.c
@@ -1,5 +1,5 @@
/* pthread_attr_getschedpolicy. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-attr-getscope.c b/sysdeps/htl/pt-attr-getscope.c
index 80d2060922..ea9dc20fc5 100644
--- a/sysdeps/htl/pt-attr-getscope.c
+++ b/sysdeps/htl/pt-attr-getscope.c
@@ -1,5 +1,5 @@
/* pthread_attr_getscope. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-attr-getstack.c b/sysdeps/htl/pt-attr-getstack.c
index 6d8b286889..e01d3077d5 100644
--- a/sysdeps/htl/pt-attr-getstack.c
+++ b/sysdeps/htl/pt-attr-getstack.c
@@ -1,5 +1,5 @@
/* pthread_attr_getstack. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-attr-getstackaddr.c b/sysdeps/htl/pt-attr-getstackaddr.c
index 6f2507a0c1..95e1f1a72b 100644
--- a/sysdeps/htl/pt-attr-getstackaddr.c
+++ b/sysdeps/htl/pt-attr-getstackaddr.c
@@ -1,5 +1,5 @@
/* pthread_attr_getstackaddr. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-attr-getstacksize.c b/sysdeps/htl/pt-attr-getstacksize.c
index 824d363538..e3ab48f70f 100644
--- a/sysdeps/htl/pt-attr-getstacksize.c
+++ b/sysdeps/htl/pt-attr-getstacksize.c
@@ -1,5 +1,5 @@
/* pthread_attr_getstacksize. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-attr-init.c b/sysdeps/htl/pt-attr-init.c
index e996a98bee..c267fd71c9 100644
--- a/sysdeps/htl/pt-attr-init.c
+++ b/sysdeps/htl/pt-attr-init.c
@@ -1,5 +1,5 @@
/* pthread_attr_init. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-attr-setdetachstate.c b/sysdeps/htl/pt-attr-setdetachstate.c
index 5eb2e75a5d..e47fc04da9 100644
--- a/sysdeps/htl/pt-attr-setdetachstate.c
+++ b/sysdeps/htl/pt-attr-setdetachstate.c
@@ -1,5 +1,5 @@
/* pthread_attr_setdetachstate. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-attr-setguardsize.c b/sysdeps/htl/pt-attr-setguardsize.c
index d067910703..35f7c9dfe2 100644
--- a/sysdeps/htl/pt-attr-setguardsize.c
+++ b/sysdeps/htl/pt-attr-setguardsize.c
@@ -1,5 +1,5 @@
/* pthread_attr_setguardsize. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-attr-setinheritsched.c b/sysdeps/htl/pt-attr-setinheritsched.c
index a72d87f795..14ea44b820 100644
--- a/sysdeps/htl/pt-attr-setinheritsched.c
+++ b/sysdeps/htl/pt-attr-setinheritsched.c
@@ -1,5 +1,5 @@
/* pthread_attr_setinheritsched. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-attr-setschedparam.c b/sysdeps/htl/pt-attr-setschedparam.c
index e6494d47df..556885df5f 100644
--- a/sysdeps/htl/pt-attr-setschedparam.c
+++ b/sysdeps/htl/pt-attr-setschedparam.c
@@ -1,5 +1,5 @@
/* pthread_attr_getschedparam. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <sched.h>
diff --git a/sysdeps/htl/pt-attr-setschedpolicy.c b/sysdeps/htl/pt-attr-setschedpolicy.c
index 9c20ceef16..b2f332f0c5 100644
--- a/sysdeps/htl/pt-attr-setschedpolicy.c
+++ b/sysdeps/htl/pt-attr-setschedpolicy.c
@@ -1,5 +1,5 @@
/* pthread_attr_getschedpolicy. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-attr-setscope.c b/sysdeps/htl/pt-attr-setscope.c
index 8884009d6b..df1d9b706e 100644
--- a/sysdeps/htl/pt-attr-setscope.c
+++ b/sysdeps/htl/pt-attr-setscope.c
@@ -1,5 +1,5 @@
/* pthread_attr_setscope. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-attr-setstack.c b/sysdeps/htl/pt-attr-setstack.c
index f18025b264..fa8bd82859 100644
--- a/sysdeps/htl/pt-attr-setstack.c
+++ b/sysdeps/htl/pt-attr-setstack.c
@@ -1,5 +1,5 @@
/* pthread_attr_setstack. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <assert.h>
diff --git a/sysdeps/htl/pt-attr-setstackaddr.c b/sysdeps/htl/pt-attr-setstackaddr.c
index 491005bcc1..eca84a6d77 100644
--- a/sysdeps/htl/pt-attr-setstackaddr.c
+++ b/sysdeps/htl/pt-attr-setstackaddr.c
@@ -1,5 +1,5 @@
/* pthread_attr_setstackaddr. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-attr-setstacksize.c b/sysdeps/htl/pt-attr-setstacksize.c
index 38bec3f7c7..413be9e7fb 100644
--- a/sysdeps/htl/pt-attr-setstacksize.c
+++ b/sysdeps/htl/pt-attr-setstacksize.c
@@ -1,5 +1,5 @@
/* pthread_attr_setstacksize. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-attr.c b/sysdeps/htl/pt-attr.c
index 77ecc73465..74bb907e82 100644
--- a/sysdeps/htl/pt-attr.c
+++ b/sysdeps/htl/pt-attr.c
@@ -1,5 +1,5 @@
/* Default attributes. Generic version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <sched.h>
diff --git a/sysdeps/htl/pt-barrier-destroy.c b/sysdeps/htl/pt-barrier-destroy.c
index 77b156b059..fa73e153e5 100644
--- a/sysdeps/htl/pt-barrier-destroy.c
+++ b/sysdeps/htl/pt-barrier-destroy.c
@@ -1,5 +1,5 @@
/* pthread_barrier_destroy. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-barrier-init.c b/sysdeps/htl/pt-barrier-init.c
index 7d46624fbe..6b18d7133a 100644
--- a/sysdeps/htl/pt-barrier-init.c
+++ b/sysdeps/htl/pt-barrier-init.c
@@ -1,5 +1,5 @@
/* pthread_barrier_init. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <string.h>
@@ -36,7 +36,7 @@ pthread_barrier_init (pthread_barrier_t *barrier,
barrier->__count = count;
if (attr == NULL
- || memcmp (attr, &__pthread_default_barrierattr, sizeof (*attr) == 0))
+ || memcmp (attr, &__pthread_default_barrierattr, sizeof (*attr)) == 0)
/* Use the default attributes. */
return 0;
diff --git a/sysdeps/htl/pt-barrier-wait.c b/sysdeps/htl/pt-barrier-wait.c
index a9565c9805..3acb8fcafe 100644
--- a/sysdeps/htl/pt-barrier-wait.c
+++ b/sysdeps/htl/pt-barrier-wait.c
@@ -1,5 +1,5 @@
/* pthread_barrier_wait. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <assert.h>
diff --git a/sysdeps/htl/pt-barrier.c b/sysdeps/htl/pt-barrier.c
index f9d25e8b29..bdcaee96c0 100644
--- a/sysdeps/htl/pt-barrier.c
+++ b/sysdeps/htl/pt-barrier.c
@@ -1,5 +1,5 @@
/* Default barrier attributes. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-barrierattr-destroy.c b/sysdeps/htl/pt-barrierattr-destroy.c
index 5c179fd78d..994af380a4 100644
--- a/sysdeps/htl/pt-barrierattr-destroy.c
+++ b/sysdeps/htl/pt-barrierattr-destroy.c
@@ -1,5 +1,5 @@
/* pthread_barrierattr_destroy. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-barrierattr-getpshared.c b/sysdeps/htl/pt-barrierattr-getpshared.c
index 5f259c5b31..d93a7e130e 100644
--- a/sysdeps/htl/pt-barrierattr-getpshared.c
+++ b/sysdeps/htl/pt-barrierattr-getpshared.c
@@ -1,5 +1,5 @@
/* pthread_barrierattr_getpshared. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-barrierattr-init.c b/sysdeps/htl/pt-barrierattr-init.c
index 38e36d9dfd..b36f4695bb 100644
--- a/sysdeps/htl/pt-barrierattr-init.c
+++ b/sysdeps/htl/pt-barrierattr-init.c
@@ -1,5 +1,5 @@
/* pthread_barrierattr_init. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-barrierattr-setpshared.c b/sysdeps/htl/pt-barrierattr-setpshared.c
index c3aed869ca..c0366739c4 100644
--- a/sysdeps/htl/pt-barrierattr-setpshared.c
+++ b/sysdeps/htl/pt-barrierattr-setpshared.c
@@ -1,5 +1,5 @@
/* pthread_barrierattr_setpshared. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
@@ -35,3 +35,4 @@ pthread_barrierattr_setpshared (pthread_barrierattr_t *attr, int pshared)
return EINVAL;
}
}
+stub_warning (pthread_barrierattr_setpshared)
diff --git a/sysdeps/htl/pt-cond-brdcast.c b/sysdeps/htl/pt-cond-brdcast.c
index 129fb0466b..f518598fc2 100644
--- a/sysdeps/htl/pt-cond-brdcast.c
+++ b/sysdeps/htl/pt-cond-brdcast.c
@@ -1,5 +1,5 @@
/* Broadcast a condition. Generic version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
diff --git a/sysdeps/htl/pt-cond-destroy.c b/sysdeps/htl/pt-cond-destroy.c
index b78853d1aa..d3485b5162 100644
--- a/sysdeps/htl/pt-cond-destroy.c
+++ b/sysdeps/htl/pt-cond-destroy.c
@@ -1,5 +1,5 @@
/* pthread_cond_destroy. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-cond-init.c b/sysdeps/htl/pt-cond-init.c
index 4c112e2789..2d344bf492 100644
--- a/sysdeps/htl/pt-cond-init.c
+++ b/sysdeps/htl/pt-cond-init.c
@@ -1,5 +1,5 @@
/* pthread_cond_init. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <assert.h>
@@ -28,7 +28,7 @@ __pthread_cond_init (pthread_cond_t *cond, const pthread_condattr_t * attr)
*cond = (pthread_cond_t) __PTHREAD_COND_INITIALIZER;
if (attr == NULL
- || memcmp (attr, &__pthread_default_condattr, sizeof (*attr) == 0))
+ || memcmp (attr, &__pthread_default_condattr, sizeof (*attr)) == 0)
/* Use the default attributes. */
return 0;
diff --git a/sysdeps/htl/pt-cond-signal.c b/sysdeps/htl/pt-cond-signal.c
index 3fae03d33b..1da7f44d9c 100644
--- a/sysdeps/htl/pt-cond-signal.c
+++ b/sysdeps/htl/pt-cond-signal.c
@@ -1,5 +1,5 @@
/* Signal a condition. Generic version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
diff --git a/sysdeps/htl/pt-cond-timedwait.c b/sysdeps/htl/pt-cond-timedwait.c
index 66051af417..ff5631f7ab 100644
--- a/sysdeps/htl/pt-cond-timedwait.c
+++ b/sysdeps/htl/pt-cond-timedwait.c
@@ -1,5 +1,5 @@
/* Wait on a condition. Generic version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,12 +14,13 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
#include <pthreadP.h>
+#include <time.h>
extern int __pthread_cond_timedwait_internal (pthread_cond_t *cond,
pthread_mutex_t *mutex,
@@ -74,7 +75,7 @@ __pthread_cond_timedwait_internal (pthread_cond_t *cond,
int cancelled, oldtype, drain;
clockid_t clock_id = __pthread_default_condattr.__clock;
- if (abstime && (abstime->tv_nsec < 0 || abstime->tv_nsec >= 1000000000))
+ if (abstime && ! valid_nanoseconds (abstime->tv_nsec))
return EINVAL;
struct __pthread *self = _pthread_self ();
diff --git a/sysdeps/htl/pt-cond-wait.c b/sysdeps/htl/pt-cond-wait.c
index cc4b0d1af9..29fdbc50ca 100644
--- a/sysdeps/htl/pt-cond-wait.c
+++ b/sysdeps/htl/pt-cond-wait.c
@@ -1,5 +1,5 @@
/* Wait on a condition. Generic version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
diff --git a/sysdeps/htl/pt-cond.c b/sysdeps/htl/pt-cond.c
index ec73549fa3..26b93a73f4 100644
--- a/sysdeps/htl/pt-cond.c
+++ b/sysdeps/htl/pt-cond.c
@@ -1,5 +1,5 @@
/* Default condition attributes. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <time.h>
diff --git a/sysdeps/htl/pt-condattr-destroy.c b/sysdeps/htl/pt-condattr-destroy.c
index 19502fa6a5..d3d1a6c056 100644
--- a/sysdeps/htl/pt-condattr-destroy.c
+++ b/sysdeps/htl/pt-condattr-destroy.c
@@ -1,5 +1,5 @@
/* pthread_condattr_destroy. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-condattr-getclock.c b/sysdeps/htl/pt-condattr-getclock.c
index 023d007695..9761bdb61a 100644
--- a/sysdeps/htl/pt-condattr-getclock.c
+++ b/sysdeps/htl/pt-condattr-getclock.c
@@ -1,5 +1,5 @@
/* pthread_condattr_getclock. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <time.h>
diff --git a/sysdeps/htl/pt-condattr-getpshared.c b/sysdeps/htl/pt-condattr-getpshared.c
index 5351c38788..89a3de3745 100644
--- a/sysdeps/htl/pt-condattr-getpshared.c
+++ b/sysdeps/htl/pt-condattr-getpshared.c
@@ -1,5 +1,5 @@
/* pthread_condattr_getpshared. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-condattr-init.c b/sysdeps/htl/pt-condattr-init.c
index 687f4d8b12..cbacec964c 100644
--- a/sysdeps/htl/pt-condattr-init.c
+++ b/sysdeps/htl/pt-condattr-init.c
@@ -1,5 +1,5 @@
/* pthread_condattr_init. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-condattr-setclock.c b/sysdeps/htl/pt-condattr-setclock.c
index a6e37e6e5c..061ca43067 100644
--- a/sysdeps/htl/pt-condattr-setclock.c
+++ b/sysdeps/htl/pt-condattr-setclock.c
@@ -1,5 +1,5 @@
/* pthread_condattr_setclock. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-condattr-setpshared.c b/sysdeps/htl/pt-condattr-setpshared.c
index e1d3f682e3..a82f887ec0 100644
--- a/sysdeps/htl/pt-condattr-setpshared.c
+++ b/sysdeps/htl/pt-condattr-setpshared.c
@@ -1,5 +1,5 @@
/* pthread_condattr_setpshared. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
@@ -35,3 +35,4 @@ pthread_condattr_setpshared (pthread_condattr_t *attr, int pshared)
return EINVAL;
}
}
+stub_warning (pthread_condattr_setpshared)
diff --git a/sysdeps/htl/pt-destroy-specific.c b/sysdeps/htl/pt-destroy-specific.c
index 84f724abe2..26b188ddc6 100644
--- a/sysdeps/htl/pt-destroy-specific.c
+++ b/sysdeps/htl/pt-destroy-specific.c
@@ -1,5 +1,5 @@
/* __pthread_destory_specific. Hurd version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdlib.h>
diff --git a/sysdeps/htl/pt-equal.c b/sysdeps/htl/pt-equal.c
index e8391ebfb6..880bea80d1 100644
--- a/sysdeps/htl/pt-equal.c
+++ b/sysdeps/htl/pt-equal.c
@@ -1,5 +1,5 @@
/* Default attributes. Generic version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-getconcurrency.c b/sysdeps/htl/pt-getconcurrency.c
index 95eba06ba2..da9477a0bf 100644
--- a/sysdeps/htl/pt-getconcurrency.c
+++ b/sysdeps/htl/pt-getconcurrency.c
@@ -1,5 +1,5 @@
/* Get the current level of desired concurrency. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-getcpuclockid.c b/sysdeps/htl/pt-getcpuclockid.c
index e6cdeda70a..23cdb52155 100644
--- a/sysdeps/htl/pt-getcpuclockid.c
+++ b/sysdeps/htl/pt-getcpuclockid.c
@@ -1,5 +1,5 @@
/* Return a thread's cpu clockid. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <time.h>
diff --git a/sysdeps/htl/pt-getschedparam.c b/sysdeps/htl/pt-getschedparam.c
index 92fb62ef53..82653363c7 100644
--- a/sysdeps/htl/pt-getschedparam.c
+++ b/sysdeps/htl/pt-getschedparam.c
@@ -1,5 +1,5 @@
/* Get the scheduling parameters for a thread. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-getspecific.c b/sysdeps/htl/pt-getspecific.c
index a0227a67f6..7e8b8f1186 100644
--- a/sysdeps/htl/pt-getspecific.c
+++ b/sysdeps/htl/pt-getspecific.c
@@ -1,5 +1,5 @@
/* pthread_getspecific. Hurd version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
@@ -36,3 +36,4 @@ __pthread_getspecific (pthread_key_t key)
return self->thread_specifics[key];
}
strong_alias (__pthread_getspecific, pthread_getspecific);
+hidden_def (__pthread_getspecific)
diff --git a/sysdeps/htl/pt-init-specific.c b/sysdeps/htl/pt-init-specific.c
index bf0b5878db..394199ead3 100644
--- a/sysdeps/htl/pt-init-specific.c
+++ b/sysdeps/htl/pt-init-specific.c
@@ -1,5 +1,5 @@
/* __pthread_init_specific. Hurd version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdlib.h>
diff --git a/sysdeps/htl/pt-key-create.c b/sysdeps/htl/pt-key-create.c
index a295bc78d9..3617cb2784 100644
--- a/sysdeps/htl/pt-key-create.c
+++ b/sysdeps/htl/pt-key-create.c
@@ -1,5 +1,5 @@
/* pthread_key_create. Hurd version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdlib.h>
diff --git a/sysdeps/htl/pt-key-delete.c b/sysdeps/htl/pt-key-delete.c
index b65e5f1810..20c3446144 100644
--- a/sysdeps/htl/pt-key-delete.c
+++ b/sysdeps/htl/pt-key-delete.c
@@ -1,5 +1,5 @@
/* pthread_key_delete. Hurd version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
diff --git a/sysdeps/htl/pt-key.h b/sysdeps/htl/pt-key.h
index 893adccd2e..854aed1372 100644
--- a/sysdeps/htl/pt-key.h
+++ b/sysdeps/htl/pt-key.h
@@ -1,5 +1,5 @@
/* pthread_key internal declatations for the Hurd version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <libc-lockP.h>
diff --git a/sysdeps/htl/pt-kill.c b/sysdeps/htl/pt-kill.c
index 7f7a39eb57..b9f8cb2666 100644
--- a/sysdeps/htl/pt-kill.c
+++ b/sysdeps/htl/pt-kill.c
@@ -1,5 +1,5 @@
/* pthread-kill.c - Generic pthread-kill implementation.
- Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ Copyright (C) 2008-2019 Free Software Foundation, Inc.
Written by Neal H. Walfield <neal@gnu.org>.
This file is part of the GNU Hurd.
@@ -16,7 +16,7 @@
You should have received a copy of the GNU Lesser General Public
License along with this program. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthreadP.h>
#include "sig-internal.h"
diff --git a/sysdeps/htl/pt-mutex-destroy.c b/sysdeps/htl/pt-mutex-destroy.c
index ab9dd20da9..357190c432 100644
--- a/sysdeps/htl/pt-mutex-destroy.c
+++ b/sysdeps/htl/pt-mutex-destroy.c
@@ -1,5 +1,5 @@
/* Destroy a mutex. Generic version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdlib.h>
diff --git a/sysdeps/htl/pt-mutex-getprioceiling.c b/sysdeps/htl/pt-mutex-getprioceiling.c
index de91329444..cc29bee7f0 100644
--- a/sysdeps/htl/pt-mutex-getprioceiling.c
+++ b/sysdeps/htl/pt-mutex-getprioceiling.c
@@ -1,5 +1,5 @@
/* Get a mutex' priority ceiling. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-mutex-init.c b/sysdeps/htl/pt-mutex-init.c
index 664fd607c1..e83348115e 100644
--- a/sysdeps/htl/pt-mutex-init.c
+++ b/sysdeps/htl/pt-mutex-init.c
@@ -1,5 +1,5 @@
/* Initialize a mutex. Generic version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <string.h>
@@ -29,7 +29,7 @@ _pthread_mutex_init (pthread_mutex_t *mutex, const pthread_mutexattr_t *attr)
*mutex = (pthread_mutex_t) __PTHREAD_MUTEX_INITIALIZER;
if (attr == NULL
- || memcmp (attr, &__pthread_default_mutexattr, sizeof (*attr) == 0))
+ || memcmp (attr, &__pthread_default_mutexattr, sizeof (*attr)) == 0)
/* The default attributes. */
return 0;
diff --git a/sysdeps/htl/pt-mutex-lock.c b/sysdeps/htl/pt-mutex-lock.c
index 84b8b3518e..d1fe201317 100644
--- a/sysdeps/htl/pt-mutex-lock.c
+++ b/sysdeps/htl/pt-mutex-lock.c
@@ -1,5 +1,5 @@
/* Lock a mutex. Generic version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <assert.h>
diff --git a/sysdeps/htl/pt-mutex-setprioceiling.c b/sysdeps/htl/pt-mutex-setprioceiling.c
index 5b1af84f68..b078ac83ea 100644
--- a/sysdeps/htl/pt-mutex-setprioceiling.c
+++ b/sysdeps/htl/pt-mutex-setprioceiling.c
@@ -1,5 +1,5 @@
/* Set a mutex' priority ceiling. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-mutex-timedlock.c b/sysdeps/htl/pt-mutex-timedlock.c
index 942ccc9b75..c378557f49 100644
--- a/sysdeps/htl/pt-mutex-timedlock.c
+++ b/sysdeps/htl/pt-mutex-timedlock.c
@@ -1,5 +1,5 @@
/* Lock a mutex with a timeout. Generic version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,10 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <assert.h>
+#include <time.h>
#include <pt-internal.h>
@@ -119,7 +120,7 @@ __pthread_mutex_timedlock_internal (struct __pthread_mutex *mutex,
#endif
assert (mutex->__owner);
- if (abstime != NULL && (abstime->tv_nsec < 0 || abstime->tv_nsec >= 1000000000))
+ if (abstime != NULL && ! valid_nanoseconds (abstime->tv_nsec))
return EINVAL;
/* Add ourselves to the queue. */
diff --git a/sysdeps/htl/pt-mutex-transfer-np.c b/sysdeps/htl/pt-mutex-transfer-np.c
index e208ac1b58..33d30035f9 100644
--- a/sysdeps/htl/pt-mutex-transfer-np.c
+++ b/sysdeps/htl/pt-mutex-transfer-np.c
@@ -1,5 +1,5 @@
/* Transfer ownership of a mutex. Generic version.
- Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ Copyright (C) 2008-2019 Free Software Foundation, Inc.
Written by Neal H. Walfield <neal@gnu.org>.
This file is part of the GNU Hurd.
@@ -16,7 +16,7 @@
You should have received a copy of the GNU Lesser General Public
License along with this program. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <assert.h>
diff --git a/sysdeps/htl/pt-mutex-trylock.c b/sysdeps/htl/pt-mutex-trylock.c
index e9ad4f3204..ed48f6e640 100644
--- a/sysdeps/htl/pt-mutex-trylock.c
+++ b/sysdeps/htl/pt-mutex-trylock.c
@@ -1,5 +1,5 @@
/* Try to Lock a mutex. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
diff --git a/sysdeps/htl/pt-mutex-unlock.c b/sysdeps/htl/pt-mutex-unlock.c
index b5ea05584f..f26e952dda 100644
--- a/sysdeps/htl/pt-mutex-unlock.c
+++ b/sysdeps/htl/pt-mutex-unlock.c
@@ -1,5 +1,5 @@
/* Unlock a mutex. Generic version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
diff --git a/sysdeps/htl/pt-mutexattr-destroy.c b/sysdeps/htl/pt-mutexattr-destroy.c
index bf0be76aad..07a06b9dc7 100644
--- a/sysdeps/htl/pt-mutexattr-destroy.c
+++ b/sysdeps/htl/pt-mutexattr-destroy.c
@@ -1,5 +1,5 @@
/* pthread_mutexattr_destroy. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-mutexattr-getprioceiling.c b/sysdeps/htl/pt-mutexattr-getprioceiling.c
index 4305450a26..5c3bac3d64 100644
--- a/sysdeps/htl/pt-mutexattr-getprioceiling.c
+++ b/sysdeps/htl/pt-mutexattr-getprioceiling.c
@@ -1,5 +1,5 @@
/* pthread_mutexattr_getprioceiling. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-mutexattr-getprotocol.c b/sysdeps/htl/pt-mutexattr-getprotocol.c
index 9163677e3b..08d07b32fe 100644
--- a/sysdeps/htl/pt-mutexattr-getprotocol.c
+++ b/sysdeps/htl/pt-mutexattr-getprotocol.c
@@ -1,5 +1,5 @@
/* pthread_mutexattr_getprotocol. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-mutexattr-getpshared.c b/sysdeps/htl/pt-mutexattr-getpshared.c
index 2ef0c2ddbe..d9a8b62f26 100644
--- a/sysdeps/htl/pt-mutexattr-getpshared.c
+++ b/sysdeps/htl/pt-mutexattr-getpshared.c
@@ -1,5 +1,5 @@
/* pthread_mutexattr_getpshared. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-mutexattr-gettype.c b/sysdeps/htl/pt-mutexattr-gettype.c
index cfbbb01c53..a281cbadeb 100644
--- a/sysdeps/htl/pt-mutexattr-gettype.c
+++ b/sysdeps/htl/pt-mutexattr-gettype.c
@@ -1,5 +1,5 @@
/* pthread_mutexattr_gettype. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-mutexattr-init.c b/sysdeps/htl/pt-mutexattr-init.c
index deaf59e316..99c37b8a28 100644
--- a/sysdeps/htl/pt-mutexattr-init.c
+++ b/sysdeps/htl/pt-mutexattr-init.c
@@ -1,5 +1,5 @@
/* pthread_mutexattr_init. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-mutexattr-setprioceiling.c b/sysdeps/htl/pt-mutexattr-setprioceiling.c
index b1d458991d..4dc1782aca 100644
--- a/sysdeps/htl/pt-mutexattr-setprioceiling.c
+++ b/sysdeps/htl/pt-mutexattr-setprioceiling.c
@@ -1,5 +1,5 @@
/* pthread_mutexattr_setprioceiling. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-mutexattr-setprotocol.c b/sysdeps/htl/pt-mutexattr-setprotocol.c
index 2449db8d54..be79cf276b 100644
--- a/sysdeps/htl/pt-mutexattr-setprotocol.c
+++ b/sysdeps/htl/pt-mutexattr-setprotocol.c
@@ -1,5 +1,5 @@
/* pthread_mutexattr_setprotocol. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-mutexattr-setpshared.c b/sysdeps/htl/pt-mutexattr-setpshared.c
index f3136436ec..55a98f841a 100644
--- a/sysdeps/htl/pt-mutexattr-setpshared.c
+++ b/sysdeps/htl/pt-mutexattr-setpshared.c
@@ -1,5 +1,5 @@
/* pthread_mutexattr_setpshared. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
@@ -35,3 +35,4 @@ pthread_mutexattr_setpshared (pthread_mutexattr_t *attr, int pshared)
return EINVAL;
}
}
+stub_warning (pthread_mutexattr_setpshared)
diff --git a/sysdeps/htl/pt-mutexattr-settype.c b/sysdeps/htl/pt-mutexattr-settype.c
index 00d86954f6..e28baa75a8 100644
--- a/sysdeps/htl/pt-mutexattr-settype.c
+++ b/sysdeps/htl/pt-mutexattr-settype.c
@@ -1,5 +1,5 @@
/* pthread_mutexattr_settype. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-mutexattr.c b/sysdeps/htl/pt-mutexattr.c
index 195ba8ff01..79f0a8b057 100644
--- a/sysdeps/htl/pt-mutexattr.c
+++ b/sysdeps/htl/pt-mutexattr.c
@@ -1,5 +1,5 @@
/* Default mutex attributes. Generic version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-once.c b/sysdeps/htl/pt-once.c
index 7ab929db6c..85b7dbd615 100644
--- a/sysdeps/htl/pt-once.c
+++ b/sysdeps/htl/pt-once.c
@@ -1,5 +1,5 @@
/* pthread_once. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <atomic.h>
diff --git a/sysdeps/htl/pt-rwlock-attr.c b/sysdeps/htl/pt-rwlock-attr.c
index b5a7122cec..7a3703033d 100644
--- a/sysdeps/htl/pt-rwlock-attr.c
+++ b/sysdeps/htl/pt-rwlock-attr.c
@@ -1,5 +1,5 @@
/* Default rwlock attributes. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-rwlock-destroy.c b/sysdeps/htl/pt-rwlock-destroy.c
index 122aa74d55..4cba97c0f4 100644
--- a/sysdeps/htl/pt-rwlock-destroy.c
+++ b/sysdeps/htl/pt-rwlock-destroy.c
@@ -1,5 +1,5 @@
/* Destroy a rwlock. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-rwlock-init.c b/sysdeps/htl/pt-rwlock-init.c
index 527b0ec62f..fe35c9b1c9 100644
--- a/sysdeps/htl/pt-rwlock-init.c
+++ b/sysdeps/htl/pt-rwlock-init.c
@@ -1,5 +1,5 @@
/* Initialize a rwlock. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <string.h>
@@ -27,7 +27,7 @@ _pthread_rwlock_init (pthread_rwlock_t *rwlock,
*rwlock = (pthread_rwlock_t) __PTHREAD_RWLOCK_INITIALIZER;
if (attr == NULL
- || memcmp (attr, &__pthread_default_rwlockattr, sizeof (*attr) == 0))
+ || memcmp (attr, &__pthread_default_rwlockattr, sizeof (*attr)) == 0)
/* Use the default attributes. */
return 0;
diff --git a/sysdeps/htl/pt-rwlock-rdlock.c b/sysdeps/htl/pt-rwlock-rdlock.c
index db57c1e844..51d3022f7f 100644
--- a/sysdeps/htl/pt-rwlock-rdlock.c
+++ b/sysdeps/htl/pt-rwlock-rdlock.c
@@ -1,5 +1,5 @@
/* Acquire a rwlock for reading. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-rwlock-timedrdlock.c b/sysdeps/htl/pt-rwlock-timedrdlock.c
index 82ae89296c..d64c7a7390 100644
--- a/sysdeps/htl/pt-rwlock-timedrdlock.c
+++ b/sysdeps/htl/pt-rwlock-timedrdlock.c
@@ -1,5 +1,5 @@
/* Acquire a rwlock for reading. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,10 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <assert.h>
+#include <time.h>
#include <pt-internal.h>
@@ -60,7 +61,7 @@ __pthread_rwlock_timedrdlock_internal (struct __pthread_rwlock *rwlock,
/* Better be blocked by a writer. */
assert (rwlock->__readers == 0);
- if (abstime != NULL && (abstime->tv_nsec < 0 || abstime->tv_nsec >= 1000000000))
+ if (abstime != NULL && ! valid_nanoseconds (abstime->tv_nsec))
return EINVAL;
self = _pthread_self ();
diff --git a/sysdeps/htl/pt-rwlock-timedwrlock.c b/sysdeps/htl/pt-rwlock-timedwrlock.c
index 4452dd9af4..2316321d79 100644
--- a/sysdeps/htl/pt-rwlock-timedwrlock.c
+++ b/sysdeps/htl/pt-rwlock-timedwrlock.c
@@ -1,5 +1,5 @@
/* Acquire a rwlock for writing. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,10 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <assert.h>
+#include <time.h>
#include <pt-internal.h>
@@ -46,7 +47,7 @@ __pthread_rwlock_timedwrlock_internal (struct __pthread_rwlock *rwlock,
/* The lock is busy. */
- if (abstime != NULL && (abstime->tv_nsec < 0 || abstime->tv_nsec >= 1000000000))
+ if (abstime != NULL && ! valid_nanoseconds (abstime->tv_nsec))
return EINVAL;
self = _pthread_self ();
diff --git a/sysdeps/htl/pt-rwlock-tryrdlock.c b/sysdeps/htl/pt-rwlock-tryrdlock.c
index f5a29514ae..083ae50c57 100644
--- a/sysdeps/htl/pt-rwlock-tryrdlock.c
+++ b/sysdeps/htl/pt-rwlock-tryrdlock.c
@@ -1,5 +1,5 @@
/* Try to acquire a rwlock for reading. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <assert.h>
diff --git a/sysdeps/htl/pt-rwlock-trywrlock.c b/sysdeps/htl/pt-rwlock-trywrlock.c
index 9b0b3269f8..4bacd5ce33 100644
--- a/sysdeps/htl/pt-rwlock-trywrlock.c
+++ b/sysdeps/htl/pt-rwlock-trywrlock.c
@@ -1,5 +1,5 @@
/* Try to acquire a rwlock for writing. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <assert.h>
diff --git a/sysdeps/htl/pt-rwlock-unlock.c b/sysdeps/htl/pt-rwlock-unlock.c
index 44b26d2b1c..096dc8b9a1 100644
--- a/sysdeps/htl/pt-rwlock-unlock.c
+++ b/sysdeps/htl/pt-rwlock-unlock.c
@@ -1,5 +1,5 @@
/* Unlock a rwlock. Generic version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
diff --git a/sysdeps/htl/pt-rwlock-wrlock.c b/sysdeps/htl/pt-rwlock-wrlock.c
index 5eacc7a195..ab3f9d8841 100644
--- a/sysdeps/htl/pt-rwlock-wrlock.c
+++ b/sysdeps/htl/pt-rwlock-wrlock.c
@@ -1,5 +1,5 @@
/* Acquire a rwlock for writing. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <assert.h>
diff --git a/sysdeps/htl/pt-rwlockattr-destroy.c b/sysdeps/htl/pt-rwlockattr-destroy.c
index 6b5a5b5051..ce346acecd 100644
--- a/sysdeps/htl/pt-rwlockattr-destroy.c
+++ b/sysdeps/htl/pt-rwlockattr-destroy.c
@@ -1,5 +1,5 @@
/* pthread_rwlockattr_destroy. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-rwlockattr-getpshared.c b/sysdeps/htl/pt-rwlockattr-getpshared.c
index 22991a2736..cf9b6e8085 100644
--- a/sysdeps/htl/pt-rwlockattr-getpshared.c
+++ b/sysdeps/htl/pt-rwlockattr-getpshared.c
@@ -1,5 +1,5 @@
/* pthread_rwlockattr_getpshared. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-rwlockattr-init.c b/sysdeps/htl/pt-rwlockattr-init.c
index fb7e5ef74d..80dce9e5ad 100644
--- a/sysdeps/htl/pt-rwlockattr-init.c
+++ b/sysdeps/htl/pt-rwlockattr-init.c
@@ -1,5 +1,5 @@
/* pthread_rwlockattr_init. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-rwlockattr-setpshared.c b/sysdeps/htl/pt-rwlockattr-setpshared.c
index 3ec15147cd..5ea24bc073 100644
--- a/sysdeps/htl/pt-rwlockattr-setpshared.c
+++ b/sysdeps/htl/pt-rwlockattr-setpshared.c
@@ -1,5 +1,5 @@
/* pthread_rwlockattr_setpshared. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
@@ -35,3 +35,4 @@ pthread_rwlockattr_setpshared (pthread_rwlockattr_t *attr, int pshared)
return EINVAL;
}
}
+stub_warning (pthread_rwlockattr_setpshared)
diff --git a/sysdeps/htl/pt-setconcurrency.c b/sysdeps/htl/pt-setconcurrency.c
index e2d4499add..61f1fabfff 100644
--- a/sysdeps/htl/pt-setconcurrency.c
+++ b/sysdeps/htl/pt-setconcurrency.c
@@ -1,5 +1,5 @@
/* Set the desired level of concurrency. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-setschedparam.c b/sysdeps/htl/pt-setschedparam.c
index 513aeeab46..c7107f0354 100644
--- a/sysdeps/htl/pt-setschedparam.c
+++ b/sysdeps/htl/pt-setschedparam.c
@@ -1,5 +1,5 @@
/* Set the scheduling parameters for a thread. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-setschedprio.c b/sysdeps/htl/pt-setschedprio.c
index bede66bdbc..1ad6bf08ab 100644
--- a/sysdeps/htl/pt-setschedprio.c
+++ b/sysdeps/htl/pt-setschedprio.c
@@ -1,5 +1,5 @@
/* Set the scheduling priority of a thread. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/pt-setspecific.c b/sysdeps/htl/pt-setspecific.c
index a46a12f157..8af6c53b66 100644
--- a/sysdeps/htl/pt-setspecific.c
+++ b/sysdeps/htl/pt-setspecific.c
@@ -1,5 +1,5 @@
/* pthread_setspecific. Generic version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
@@ -48,3 +48,4 @@ __pthread_setspecific (pthread_key_t key, const void *value)
return 0;
}
strong_alias (__pthread_setspecific, pthread_setspecific);
+hidden_def (__pthread_setspecific)
diff --git a/sysdeps/htl/pt-spin.c b/sysdeps/htl/pt-spin.c
index 33bcd3facc..b578d907b4 100644
--- a/sysdeps/htl/pt-spin.c
+++ b/sysdeps/htl/pt-spin.c
@@ -1,5 +1,5 @@
/* Spin locks.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <sched.h>
diff --git a/sysdeps/htl/pt-startup.c b/sysdeps/htl/pt-startup.c
index 2b7f53c299..42fcd9b204 100644
--- a/sysdeps/htl/pt-startup.c
+++ b/sysdeps/htl/pt-startup.c
@@ -1,5 +1,5 @@
/* Thread initialization. Generic version.
- Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pt-internal.h>
diff --git a/sysdeps/htl/pthread-functions.h b/sysdeps/htl/pthread-functions.h
index a0d06cc039..1200b73974 100644
--- a/sysdeps/htl/pthread-functions.h
+++ b/sysdeps/htl/pthread-functions.h
@@ -1,5 +1,5 @@
/* Declaration of libc stubs for pthread functions. Hurd version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _PTHREAD_FUNCTIONS_H
#define _PTHREAD_FUNCTIONS_H 1
diff --git a/sysdeps/htl/pthread.h b/sysdeps/htl/pthread.h
index 3672fcdc0c..fef4166201 100644
--- a/sysdeps/htl/pthread.h
+++ b/sysdeps/htl/pthread.h
@@ -1,5 +1,5 @@
/* Posix threads. Hurd version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* POSIX Threads Extension: ??? <pthread.h>
diff --git a/sysdeps/htl/pthreadP.h b/sysdeps/htl/pthreadP.h
index 132ac1718e..e745dacac1 100644
--- a/sysdeps/htl/pthreadP.h
+++ b/sysdeps/htl/pthreadP.h
@@ -1,5 +1,5 @@
/* Declarations of internal pthread functions used by libc. Hurd version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _PTHREADP_H
#define _PTHREADP_H 1
@@ -68,6 +68,8 @@ struct __pthread_cancelation_handler **___pthread_get_cleanup_stack (void) attri
#if IS_IN (libpthread)
hidden_proto (__pthread_key_create)
+hidden_proto (__pthread_getspecific)
+hidden_proto (__pthread_setspecific)
hidden_proto (_pthread_mutex_init)
#endif
diff --git a/sysdeps/htl/raise.c b/sysdeps/htl/raise.c
index d2f21c8a3f..63e3a4c96d 100644
--- a/sysdeps/htl/raise.c
+++ b/sysdeps/htl/raise.c
@@ -1,5 +1,5 @@
/* raise.c - Generic raise implementation.
- Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ Copyright (C) 2008-2019 Free Software Foundation, Inc.
Written by Neal H. Walfield <neal@gnu.org>.
This file is part of the GNU Hurd.
@@ -16,7 +16,7 @@
You should have received a copy of the GNU Lesser General Public
License along with this program. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthreadP.h>
#include <signal.h>
diff --git a/sysdeps/htl/sem-close.c b/sysdeps/htl/sem-close.c
index 002367feb4..e189c49a92 100644
--- a/sysdeps/htl/sem-close.c
+++ b/sysdeps/htl/sem-close.c
@@ -1,5 +1,5 @@
/* Close a named semaphore. Generic version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <semaphore.h>
#include <errno.h>
diff --git a/sysdeps/htl/sem-destroy.c b/sysdeps/htl/sem-destroy.c
index f43bc7eeef..ae2a040022 100644
--- a/sysdeps/htl/sem-destroy.c
+++ b/sysdeps/htl/sem-destroy.c
@@ -1,5 +1,5 @@
/* Destroy a semaphore. Generic version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <semaphore.h>
#include <errno.h>
diff --git a/sysdeps/htl/sem-getvalue.c b/sysdeps/htl/sem-getvalue.c
index a63e573013..97d2336f31 100644
--- a/sysdeps/htl/sem-getvalue.c
+++ b/sysdeps/htl/sem-getvalue.c
@@ -1,5 +1,5 @@
/* Get the value of a semaphore. Generic version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <semaphore.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/sem-init.c b/sysdeps/htl/sem-init.c
index b05534e793..397b0efd8a 100644
--- a/sysdeps/htl/sem-init.c
+++ b/sysdeps/htl/sem-init.c
@@ -1,5 +1,5 @@
/* Initialize a semaphore. Generic version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <semaphore.h>
#include <errno.h>
diff --git a/sysdeps/htl/sem-open.c b/sysdeps/htl/sem-open.c
index 21f631de65..51fa578a92 100644
--- a/sysdeps/htl/sem-open.c
+++ b/sysdeps/htl/sem-open.c
@@ -1,5 +1,5 @@
/* Open a named semaphore. Generic version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <semaphore.h>
#include <errno.h>
diff --git a/sysdeps/htl/sem-post.c b/sysdeps/htl/sem-post.c
index 95d4203c06..046c2eefc8 100644
--- a/sysdeps/htl/sem-post.c
+++ b/sysdeps/htl/sem-post.c
@@ -1,5 +1,5 @@
/* Post a semaphore. Generic version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <semaphore.h>
#include <assert.h>
diff --git a/sysdeps/htl/sem-timedwait.c b/sysdeps/htl/sem-timedwait.c
index 803a5c04f4..dfb0cb99d3 100644
--- a/sysdeps/htl/sem-timedwait.c
+++ b/sysdeps/htl/sem-timedwait.c
@@ -1,5 +1,5 @@
/* Wait on a semaphore with a timeout. Generic version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,11 +14,12 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <semaphore.h>
#include <errno.h>
#include <assert.h>
+#include <time.h>
#include <pt-internal.h>
@@ -39,7 +40,7 @@ __sem_timedwait_internal (sem_t *restrict sem,
return 0;
}
- if (timeout != NULL && (timeout->tv_nsec < 0 || timeout->tv_nsec >= 1000000000))
+ if (timeout != NULL && ! valid_nanoseconds (timeout->tv_nsec))
{
errno = EINVAL;
return -1;
diff --git a/sysdeps/htl/sem-trywait.c b/sysdeps/htl/sem-trywait.c
index bb12dd8b2e..46b3fee3b4 100644
--- a/sysdeps/htl/sem-trywait.c
+++ b/sysdeps/htl/sem-trywait.c
@@ -1,5 +1,5 @@
/* Lock a semaphore if it does not require blocking. Generic version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <semaphore.h>
#include <errno.h>
diff --git a/sysdeps/htl/sem-unlink.c b/sysdeps/htl/sem-unlink.c
index c669db5447..b908430411 100644
--- a/sysdeps/htl/sem-unlink.c
+++ b/sysdeps/htl/sem-unlink.c
@@ -1,5 +1,5 @@
/* Unlink a named semaphore. Generic version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <semaphore.h>
#include <errno.h>
diff --git a/sysdeps/htl/sem-wait.c b/sysdeps/htl/sem-wait.c
index 9fcd22781b..4c1f5c8f2a 100644
--- a/sysdeps/htl/sem-wait.c
+++ b/sysdeps/htl/sem-wait.c
@@ -1,5 +1,5 @@
/* Wait on a semaphore. Generic version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <semaphore.h>
#include <pt-internal.h>
diff --git a/sysdeps/htl/shm-directory.h b/sysdeps/htl/shm-directory.h
index cddd5e5144..d883ef9494 100644
--- a/sysdeps/htl/shm-directory.h
+++ b/sysdeps/htl/shm-directory.h
@@ -1,5 +1,5 @@
/* Header for directory for shm/sem files. libpthread version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SHM_DIRECTORY_H
diff --git a/sysdeps/htl/timer_routines.h b/sysdeps/htl/timer_routines.h
index a8134f510f..5d2502eb02 100644
--- a/sysdeps/htl/timer_routines.h
+++ b/sysdeps/htl/timer_routines.h
@@ -1,5 +1,5 @@
/* Helper code for POSIX timer implementation on Hurd.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#ifndef _TIMER_ROUTINES_H
#define _TIMER_ROUTINES_H 1
diff --git a/sysdeps/hurd/htl/pt-kill.c b/sysdeps/hurd/htl/pt-kill.c
index c5060e785d..5cd1b64066 100644
--- a/sysdeps/hurd/htl/pt-kill.c
+++ b/sysdeps/hurd/htl/pt-kill.c
@@ -1,5 +1,5 @@
/* pthread_kill. Hurd version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <assert.h>
diff --git a/sysdeps/hurd/stdc-predef.h b/sysdeps/hurd/stdc-predef.h
index 4c11188224..a69eb9c9cd 100644
--- a/sysdeps/hurd/stdc-predef.h
+++ b/sysdeps/hurd/stdc-predef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2018 Free Software Foundation, Inc.
+/* Copyright (C) 2018-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _STDC_PREDEF_H
#define _STDC_PREDEF_H 1
diff --git a/sysdeps/i386/Versions b/sysdeps/i386/Versions
index 7be44aad7a..36e23b466a 100644
--- a/sysdeps/i386/Versions
+++ b/sysdeps/i386/Versions
@@ -25,6 +25,9 @@ libc {
__strpbrk_cg; __strpbrk_g; __strrchr_c; __strrchr_g; __strspn_c1;
__strspn_cg; __strspn_g; __strstr_cg; __strstr_g;
}
+ GLIBC_2.13 {
+ __fentry__;
+ }
}
libm {
GLIBC_2.1 {
diff --git a/sysdeps/i386/__longjmp.S b/sysdeps/i386/__longjmp.S
index 6e98ed538d..ff910f10bc 100644
--- a/sysdeps/i386/__longjmp.S
+++ b/sysdeps/i386/__longjmp.S
@@ -1,5 +1,5 @@
/* longjmp for i386.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <jmpbuf-offsets.h>
diff --git a/sysdeps/i386/add_n.S b/sysdeps/i386/add_n.S
index 998858469c..3c631d8684 100644
--- a/sysdeps/i386/add_n.S
+++ b/sysdeps/i386/add_n.S
@@ -1,6 +1,6 @@
/* Add two limb vectors of the same length > 0 and store sum in a third
limb vector.
- Copyright (C) 1992-2018 Free Software Foundation, Inc.
+ Copyright (C) 1992-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
The GNU MP Library is free software; you can redistribute it and/or modify
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not,
- see <http://www.gnu.org/licenses/>. */
+ see <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "asm-syntax.h"
diff --git a/sysdeps/i386/addmul_1.S b/sysdeps/i386/addmul_1.S
index 36f6ff2697..14db778baf 100644
--- a/sysdeps/i386/addmul_1.S
+++ b/sysdeps/i386/addmul_1.S
@@ -1,6 +1,6 @@
/* i80386 __mpn_addmul_1 -- Multiply a limb vector with a limb and add
the result to a second limb vector.
- Copyright (C) 1992-2018 Free Software Foundation, Inc.
+ Copyright (C) 1992-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
The GNU MP Library is free software; you can redistribute it and/or modify
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not,
- see <http://www.gnu.org/licenses/>. */
+ see <https://www.gnu.org/licenses/>. */
#include "sysdep.h"
#include "asm-syntax.h"
diff --git a/sysdeps/i386/asm-syntax.h b/sysdeps/i386/asm-syntax.h
index 398a0621cc..4c99ba2049 100644
--- a/sysdeps/i386/asm-syntax.h
+++ b/sysdeps/i386/asm-syntax.h
@@ -1,5 +1,5 @@
/* Definitions for x86 syntax variations.
- Copyright (C) 1992-2018 Free Software Foundation, Inc.
+ Copyright (C) 1992-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library. Its master source is NOT part of
the C library, however. The master source lives in the GNU MP Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#undef ALIGN
#define ALIGN(log) .align 1<<log
diff --git a/sysdeps/i386/atomic-machine.h b/sysdeps/i386/atomic-machine.h
deleted file mode 100644
index 272da5dd8f..0000000000
--- a/sysdeps/i386/atomic-machine.h
+++ /dev/null
@@ -1,545 +0,0 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <stdint.h>
-#include <tls.h> /* For tcbhead_t. */
-
-
-typedef int8_t atomic8_t;
-typedef uint8_t uatomic8_t;
-typedef int_fast8_t atomic_fast8_t;
-typedef uint_fast8_t uatomic_fast8_t;
-
-typedef int16_t atomic16_t;
-typedef uint16_t uatomic16_t;
-typedef int_fast16_t atomic_fast16_t;
-typedef uint_fast16_t uatomic_fast16_t;
-
-typedef int32_t atomic32_t;
-typedef uint32_t uatomic32_t;
-typedef int_fast32_t atomic_fast32_t;
-typedef uint_fast32_t uatomic_fast32_t;
-
-typedef int64_t atomic64_t;
-typedef uint64_t uatomic64_t;
-typedef int_fast64_t atomic_fast64_t;
-typedef uint_fast64_t uatomic_fast64_t;
-
-typedef intptr_t atomicptr_t;
-typedef uintptr_t uatomicptr_t;
-typedef intmax_t atomic_max_t;
-typedef uintmax_t uatomic_max_t;
-
-
-#ifndef LOCK_PREFIX
-# ifdef UP
-# define LOCK_PREFIX /* nothing */
-# else
-# define LOCK_PREFIX "lock;"
-# endif
-#endif
-
-#define __HAVE_64B_ATOMICS 0
-#define USE_ATOMIC_COMPILER_BUILTINS 0
-#define ATOMIC_EXCHANGE_USES_CAS 0
-
-
-#define atomic_compare_and_exchange_val_acq(mem, newval, oldval) \
- __sync_val_compare_and_swap (mem, oldval, newval)
-#define atomic_compare_and_exchange_bool_acq(mem, newval, oldval) \
- (! __sync_bool_compare_and_swap (mem, oldval, newval))
-
-
-#define __arch_c_compare_and_exchange_val_8_acq(mem, newval, oldval) \
- ({ __typeof (*mem) ret; \
- __asm __volatile ("cmpl $0, %%gs:%P5\n\t" \
- "je 0f\n\t" \
- "lock\n" \
- "0:\tcmpxchgb %b2, %1" \
- : "=a" (ret), "=m" (*mem) \
- : "q" (newval), "m" (*mem), "0" (oldval), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- ret; })
-
-#define __arch_c_compare_and_exchange_val_16_acq(mem, newval, oldval) \
- ({ __typeof (*mem) ret; \
- __asm __volatile ("cmpl $0, %%gs:%P5\n\t" \
- "je 0f\n\t" \
- "lock\n" \
- "0:\tcmpxchgw %w2, %1" \
- : "=a" (ret), "=m" (*mem) \
- : "r" (newval), "m" (*mem), "0" (oldval), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- ret; })
-
-#define __arch_c_compare_and_exchange_val_32_acq(mem, newval, oldval) \
- ({ __typeof (*mem) ret; \
- __asm __volatile ("cmpl $0, %%gs:%P5\n\t" \
- "je 0f\n\t" \
- "lock\n" \
- "0:\tcmpxchgl %2, %1" \
- : "=a" (ret), "=m" (*mem) \
- : "r" (newval), "m" (*mem), "0" (oldval), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- ret; })
-
-/* XXX We do not really need 64-bit compare-and-exchange. At least
- not in the moment. Using it would mean causing portability
- problems since not many other 32-bit architectures have support for
- such an operation. So don't define any code for now. If it is
- really going to be used the code below can be used on Intel Pentium
- and later, but NOT on i486. */
-#if 1
-# define __arch_compare_and_exchange_val_64_acq(mem, newval, oldval) \
- ({ __typeof (*mem) ret = *(mem); \
- abort (); \
- ret = (newval); \
- ret = (oldval); \
- ret; })
-# define __arch_c_compare_and_exchange_val_64_acq(mem, newval, oldval) \
- ({ __typeof (*mem) ret = *(mem); \
- abort (); \
- ret = (newval); \
- ret = (oldval); \
- ret; })
-#else
-# ifdef __PIC__
-# define __arch_compare_and_exchange_val_64_acq(mem, newval, oldval) \
- ({ __typeof (*mem) ret; \
- __asm __volatile ("xchgl %2, %%ebx\n\t" \
- LOCK_PREFIX "cmpxchg8b %1\n\t" \
- "xchgl %2, %%ebx" \
- : "=A" (ret), "=m" (*mem) \
- : "DS" (((unsigned long long int) (newval)) \
- & 0xffffffff), \
- "c" (((unsigned long long int) (newval)) >> 32), \
- "m" (*mem), "a" (((unsigned long long int) (oldval)) \
- & 0xffffffff), \
- "d" (((unsigned long long int) (oldval)) >> 32)); \
- ret; })
-
-# define __arch_c_compare_and_exchange_val_64_acq(mem, newval, oldval) \
- ({ __typeof (*mem) ret; \
- __asm __volatile ("xchgl %2, %%ebx\n\t" \
- "cmpl $0, %%gs:%P7\n\t" \
- "je 0f\n\t" \
- "lock\n" \
- "0:\tcmpxchg8b %1\n\t" \
- "xchgl %2, %%ebx" \
- : "=A" (ret), "=m" (*mem) \
- : "DS" (((unsigned long long int) (newval)) \
- & 0xffffffff), \
- "c" (((unsigned long long int) (newval)) >> 32), \
- "m" (*mem), "a" (((unsigned long long int) (oldval)) \
- & 0xffffffff), \
- "d" (((unsigned long long int) (oldval)) >> 32), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- ret; })
-# else
-# define __arch_compare_and_exchange_val_64_acq(mem, newval, oldval) \
- ({ __typeof (*mem) ret; \
- __asm __volatile (LOCK_PREFIX "cmpxchg8b %1" \
- : "=A" (ret), "=m" (*mem) \
- : "b" (((unsigned long long int) (newval)) \
- & 0xffffffff), \
- "c" (((unsigned long long int) (newval)) >> 32), \
- "m" (*mem), "a" (((unsigned long long int) (oldval)) \
- & 0xffffffff), \
- "d" (((unsigned long long int) (oldval)) >> 32)); \
- ret; })
-
-# define __arch_c_compare_and_exchange_val_64_acq(mem, newval, oldval) \
- ({ __typeof (*mem) ret; \
- __asm __volatile ("cmpl $0, %%gs:%P7\n\t" \
- "je 0f\n\t" \
- "lock\n" \
- "0:\tcmpxchg8b %1" \
- : "=A" (ret), "=m" (*mem) \
- : "b" (((unsigned long long int) (newval)) \
- & 0xffffffff), \
- "c" (((unsigned long long int) (newval)) >> 32), \
- "m" (*mem), "a" (((unsigned long long int) (oldval)) \
- & 0xffffffff), \
- "d" (((unsigned long long int) (oldval)) >> 32), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- ret; })
-# endif
-#endif
-
-
-/* Note that we need no lock prefix. */
-#define atomic_exchange_acq(mem, newvalue) \
- ({ __typeof (*mem) result; \
- if (sizeof (*mem) == 1) \
- __asm __volatile ("xchgb %b0, %1" \
- : "=q" (result), "=m" (*mem) \
- : "0" (newvalue), "m" (*mem)); \
- else if (sizeof (*mem) == 2) \
- __asm __volatile ("xchgw %w0, %1" \
- : "=r" (result), "=m" (*mem) \
- : "0" (newvalue), "m" (*mem)); \
- else if (sizeof (*mem) == 4) \
- __asm __volatile ("xchgl %0, %1" \
- : "=r" (result), "=m" (*mem) \
- : "0" (newvalue), "m" (*mem)); \
- else \
- { \
- result = 0; \
- abort (); \
- } \
- result; })
-
-
-#define __arch_exchange_and_add_body(lock, pfx, mem, value) \
- ({ __typeof (*mem) __result; \
- __typeof (value) __addval = (value); \
- if (sizeof (*mem) == 1) \
- __asm __volatile (lock "xaddb %b0, %1" \
- : "=q" (__result), "=m" (*mem) \
- : "0" (__addval), "m" (*mem), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- else if (sizeof (*mem) == 2) \
- __asm __volatile (lock "xaddw %w0, %1" \
- : "=r" (__result), "=m" (*mem) \
- : "0" (__addval), "m" (*mem), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- else if (sizeof (*mem) == 4) \
- __asm __volatile (lock "xaddl %0, %1" \
- : "=r" (__result), "=m" (*mem) \
- : "0" (__addval), "m" (*mem), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- else \
- { \
- __typeof (mem) __memp = (mem); \
- __typeof (*mem) __tmpval; \
- __result = *__memp; \
- do \
- __tmpval = __result; \
- while ((__result = pfx##_compare_and_exchange_val_64_acq \
- (__memp, __result + __addval, __result)) == __tmpval); \
- } \
- __result; })
-
-#define atomic_exchange_and_add(mem, value) \
- __sync_fetch_and_add (mem, value)
-
-#define __arch_exchange_and_add_cprefix \
- "cmpl $0, %%gs:%P4\n\tje 0f\n\tlock\n0:\t"
-
-#define catomic_exchange_and_add(mem, value) \
- __arch_exchange_and_add_body (__arch_exchange_and_add_cprefix, __arch_c, \
- mem, value)
-
-
-#define __arch_add_body(lock, pfx, mem, value) \
- do { \
- if (__builtin_constant_p (value) && (value) == 1) \
- atomic_increment (mem); \
- else if (__builtin_constant_p (value) && (value) == -1) \
- atomic_decrement (mem); \
- else if (sizeof (*mem) == 1) \
- __asm __volatile (lock "addb %b1, %0" \
- : "=m" (*mem) \
- : "iq" (value), "m" (*mem), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- else if (sizeof (*mem) == 2) \
- __asm __volatile (lock "addw %w1, %0" \
- : "=m" (*mem) \
- : "ir" (value), "m" (*mem), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- else if (sizeof (*mem) == 4) \
- __asm __volatile (lock "addl %1, %0" \
- : "=m" (*mem) \
- : "ir" (value), "m" (*mem), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- else \
- { \
- __typeof (value) __addval = (value); \
- __typeof (mem) __memp = (mem); \
- __typeof (*mem) __oldval = *__memp; \
- __typeof (*mem) __tmpval; \
- do \
- __tmpval = __oldval; \
- while ((__oldval = pfx##_compare_and_exchange_val_64_acq \
- (__memp, __oldval + __addval, __oldval)) == __tmpval); \
- } \
- } while (0)
-
-#define atomic_add(mem, value) \
- __arch_add_body (LOCK_PREFIX, __arch, mem, value)
-
-#define __arch_add_cprefix \
- "cmpl $0, %%gs:%P3\n\tje 0f\n\tlock\n0:\t"
-
-#define catomic_add(mem, value) \
- __arch_add_body (__arch_add_cprefix, __arch_c, mem, value)
-
-
-#define atomic_add_negative(mem, value) \
- ({ unsigned char __result; \
- if (sizeof (*mem) == 1) \
- __asm __volatile (LOCK_PREFIX "addb %b2, %0; sets %1" \
- : "=m" (*mem), "=qm" (__result) \
- : "iq" (value), "m" (*mem)); \
- else if (sizeof (*mem) == 2) \
- __asm __volatile (LOCK_PREFIX "addw %w2, %0; sets %1" \
- : "=m" (*mem), "=qm" (__result) \
- : "ir" (value), "m" (*mem)); \
- else if (sizeof (*mem) == 4) \
- __asm __volatile (LOCK_PREFIX "addl %2, %0; sets %1" \
- : "=m" (*mem), "=qm" (__result) \
- : "ir" (value), "m" (*mem)); \
- else \
- abort (); \
- __result; })
-
-
-#define atomic_add_zero(mem, value) \
- ({ unsigned char __result; \
- if (sizeof (*mem) == 1) \
- __asm __volatile (LOCK_PREFIX "addb %b2, %0; setz %1" \
- : "=m" (*mem), "=qm" (__result) \
- : "iq" (value), "m" (*mem)); \
- else if (sizeof (*mem) == 2) \
- __asm __volatile (LOCK_PREFIX "addw %w2, %0; setz %1" \
- : "=m" (*mem), "=qm" (__result) \
- : "ir" (value), "m" (*mem)); \
- else if (sizeof (*mem) == 4) \
- __asm __volatile (LOCK_PREFIX "addl %2, %0; setz %1" \
- : "=m" (*mem), "=qm" (__result) \
- : "ir" (value), "m" (*mem)); \
- else \
- abort (); \
- __result; })
-
-
-#define __arch_increment_body(lock, pfx, mem) \
- do { \
- if (sizeof (*mem) == 1) \
- __asm __volatile (lock "incb %b0" \
- : "=m" (*mem) \
- : "m" (*mem), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- else if (sizeof (*mem) == 2) \
- __asm __volatile (lock "incw %w0" \
- : "=m" (*mem) \
- : "m" (*mem), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- else if (sizeof (*mem) == 4) \
- __asm __volatile (lock "incl %0" \
- : "=m" (*mem) \
- : "m" (*mem), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- else \
- { \
- __typeof (mem) __memp = (mem); \
- __typeof (*mem) __oldval = *__memp; \
- __typeof (*mem) __tmpval; \
- do \
- __tmpval = __oldval; \
- while ((__oldval = pfx##_compare_and_exchange_val_64_acq \
- (__memp, __oldval + 1, __oldval)) == __tmpval); \
- } \
- } while (0)
-
-#define atomic_increment(mem) __arch_increment_body (LOCK_PREFIX, __arch, mem)
-
-#define __arch_increment_cprefix \
- "cmpl $0, %%gs:%P2\n\tje 0f\n\tlock\n0:\t"
-
-#define catomic_increment(mem) \
- __arch_increment_body (__arch_increment_cprefix, __arch_c, mem)
-
-
-#define atomic_increment_and_test(mem) \
- ({ unsigned char __result; \
- if (sizeof (*mem) == 1) \
- __asm __volatile (LOCK_PREFIX "incb %0; sete %b1" \
- : "=m" (*mem), "=qm" (__result) \
- : "m" (*mem)); \
- else if (sizeof (*mem) == 2) \
- __asm __volatile (LOCK_PREFIX "incw %0; sete %w1" \
- : "=m" (*mem), "=qm" (__result) \
- : "m" (*mem)); \
- else if (sizeof (*mem) == 4) \
- __asm __volatile (LOCK_PREFIX "incl %0; sete %1" \
- : "=m" (*mem), "=qm" (__result) \
- : "m" (*mem)); \
- else \
- abort (); \
- __result; })
-
-
-#define __arch_decrement_body(lock, pfx, mem) \
- do { \
- if (sizeof (*mem) == 1) \
- __asm __volatile (lock "decb %b0" \
- : "=m" (*mem) \
- : "m" (*mem), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- else if (sizeof (*mem) == 2) \
- __asm __volatile (lock "decw %w0" \
- : "=m" (*mem) \
- : "m" (*mem), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- else if (sizeof (*mem) == 4) \
- __asm __volatile (lock "decl %0" \
- : "=m" (*mem) \
- : "m" (*mem), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- else \
- { \
- __typeof (mem) __memp = (mem); \
- __typeof (*mem) __oldval = *__memp; \
- __typeof (*mem) __tmpval; \
- do \
- __tmpval = __oldval; \
- while ((__oldval = pfx##_compare_and_exchange_val_64_acq \
- (__memp, __oldval - 1, __oldval)) == __tmpval); \
- } \
- } while (0)
-
-#define atomic_decrement(mem) __arch_decrement_body (LOCK_PREFIX, __arch, mem)
-
-#define __arch_decrement_cprefix \
- "cmpl $0, %%gs:%P2\n\tje 0f\n\tlock\n0:\t"
-
-#define catomic_decrement(mem) \
- __arch_decrement_body (__arch_decrement_cprefix, __arch_c, mem)
-
-
-#define atomic_decrement_and_test(mem) \
- ({ unsigned char __result; \
- if (sizeof (*mem) == 1) \
- __asm __volatile (LOCK_PREFIX "decb %b0; sete %1" \
- : "=m" (*mem), "=qm" (__result) \
- : "m" (*mem)); \
- else if (sizeof (*mem) == 2) \
- __asm __volatile (LOCK_PREFIX "decw %w0; sete %1" \
- : "=m" (*mem), "=qm" (__result) \
- : "m" (*mem)); \
- else if (sizeof (*mem) == 4) \
- __asm __volatile (LOCK_PREFIX "decl %0; sete %1" \
- : "=m" (*mem), "=qm" (__result) \
- : "m" (*mem)); \
- else \
- abort (); \
- __result; })
-
-
-#define atomic_bit_set(mem, bit) \
- do { \
- if (sizeof (*mem) == 1) \
- __asm __volatile (LOCK_PREFIX "orb %b2, %0" \
- : "=m" (*mem) \
- : "m" (*mem), "iq" (1 << (bit))); \
- else if (sizeof (*mem) == 2) \
- __asm __volatile (LOCK_PREFIX "orw %w2, %0" \
- : "=m" (*mem) \
- : "m" (*mem), "ir" (1 << (bit))); \
- else if (sizeof (*mem) == 4) \
- __asm __volatile (LOCK_PREFIX "orl %2, %0" \
- : "=m" (*mem) \
- : "m" (*mem), "ir" (1 << (bit))); \
- else \
- abort (); \
- } while (0)
-
-
-#define atomic_bit_test_set(mem, bit) \
- ({ unsigned char __result; \
- if (sizeof (*mem) == 1) \
- __asm __volatile (LOCK_PREFIX "btsb %3, %1; setc %0" \
- : "=q" (__result), "=m" (*mem) \
- : "m" (*mem), "ir" (bit)); \
- else if (sizeof (*mem) == 2) \
- __asm __volatile (LOCK_PREFIX "btsw %3, %1; setc %0" \
- : "=q" (__result), "=m" (*mem) \
- : "m" (*mem), "ir" (bit)); \
- else if (sizeof (*mem) == 4) \
- __asm __volatile (LOCK_PREFIX "btsl %3, %1; setc %0" \
- : "=q" (__result), "=m" (*mem) \
- : "m" (*mem), "ir" (bit)); \
- else \
- abort (); \
- __result; })
-
-
-#define atomic_spin_nop() asm ("rep; nop")
-
-
-#define __arch_and_body(lock, mem, mask) \
- do { \
- if (sizeof (*mem) == 1) \
- __asm __volatile (lock "andb %b1, %0" \
- : "=m" (*mem) \
- : "iq" (mask), "m" (*mem), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- else if (sizeof (*mem) == 2) \
- __asm __volatile (lock "andw %w1, %0" \
- : "=m" (*mem) \
- : "ir" (mask), "m" (*mem), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- else if (sizeof (*mem) == 4) \
- __asm __volatile (lock "andl %1, %0" \
- : "=m" (*mem) \
- : "ir" (mask), "m" (*mem), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- else \
- abort (); \
- } while (0)
-
-#define __arch_cprefix \
- "cmpl $0, %%gs:%P3\n\tje 0f\n\tlock\n0:\t"
-
-#define atomic_and(mem, mask) __arch_and_body (LOCK_PREFIX, mem, mask)
-
-#define catomic_and(mem, mask) __arch_and_body (__arch_cprefix, mem, mask)
-
-
-#define __arch_or_body(lock, mem, mask) \
- do { \
- if (sizeof (*mem) == 1) \
- __asm __volatile (lock "orb %b1, %0" \
- : "=m" (*mem) \
- : "iq" (mask), "m" (*mem), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- else if (sizeof (*mem) == 2) \
- __asm __volatile (lock "orw %w1, %0" \
- : "=m" (*mem) \
- : "ir" (mask), "m" (*mem), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- else if (sizeof (*mem) == 4) \
- __asm __volatile (lock "orl %1, %0" \
- : "=m" (*mem) \
- : "ir" (mask), "m" (*mem), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- else \
- abort (); \
- } while (0)
-
-#define atomic_or(mem, mask) __arch_or_body (LOCK_PREFIX, mem, mask)
-
-#define catomic_or(mem, mask) __arch_or_body (__arch_cprefix, mem, mask)
-
-/* We don't use mfence because it is supposedly slower due to having to
- provide stronger guarantees (e.g., regarding self-modifying code). */
-#define atomic_full_barrier() \
- __asm __volatile (LOCK_PREFIX "orl $0, (%%esp)" ::: "memory")
-#define atomic_read_barrier() __asm ("" ::: "memory")
-#define atomic_write_barrier() __asm ("" ::: "memory")
diff --git a/sysdeps/i386/backtrace.c b/sysdeps/i386/backtrace.c
index da033379e7..ac96d7b7a4 100644
--- a/sysdeps/i386/backtrace.c
+++ b/sysdeps/i386/backtrace.c
@@ -1,5 +1,5 @@
/* Return backtrace of current program state.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libc-lock.h>
#include <dlfcn.h>
diff --git a/sysdeps/i386/bsd-_setjmp.S b/sysdeps/i386/bsd-_setjmp.S
index db47df0ba1..cd25de5239 100644
--- a/sysdeps/i386/bsd-_setjmp.S
+++ b/sysdeps/i386/bsd-_setjmp.S
@@ -1,5 +1,5 @@
/* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'. i386 version.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This just does a tail-call to `__sigsetjmp (ARG, 0)'.
We cannot do it in C because it must be a tail-call, so frame-unwinding
diff --git a/sysdeps/i386/bsd-setjmp.S b/sysdeps/i386/bsd-setjmp.S
index 1290d0d82b..017de7a46e 100644
--- a/sysdeps/i386/bsd-setjmp.S
+++ b/sysdeps/i386/bsd-setjmp.S
@@ -1,5 +1,5 @@
/* BSD `setjmp' entry point to `sigsetjmp (..., 1)'. i386 version.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This just does a tail-call to `__sigsetjmp (ARG, 1)'.
We cannot do it in C because it must be a tail-call, so frame-unwinding
diff --git a/sysdeps/i386/crti.S b/sysdeps/i386/crti.S
index 65ddc1c934..26f5854cb8 100644
--- a/sysdeps/i386/crti.S
+++ b/sysdeps/i386/crti.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for x86.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* crti.S puts a function prologue at the beginning of the .init and
.fini sections and defines global symbols for those addresses, so
diff --git a/sysdeps/i386/crtn.S b/sysdeps/i386/crtn.S
index e3a0f1e310..bc64413a71 100644
--- a/sysdeps/i386/crtn.S
+++ b/sysdeps/i386/crtn.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for x86.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* crtn.S puts function epilogues in the .init and .fini sections
corresponding to the prologues in crti.S. */
diff --git a/sysdeps/i386/dl-cet.c b/sysdeps/i386/dl-cet.c
deleted file mode 100644
index 5d9a4e8d51..0000000000
--- a/sysdeps/i386/dl-cet.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/* Linux/i386 CET initializers function.
- Copyright (C) 2018 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
- 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
- <http://www.gnu.org/licenses/>. */
-
-
-#define LINKAGE static inline
-#define _dl_cet_check cet_check
-#include <sysdeps/x86/dl-cet.c>
-#undef _dl_cet_check
-
-#ifdef SHARED
-void
-_dl_cet_check (struct link_map *main_map, const char *program)
-{
- cet_check (main_map, program);
-
- if ((GL(dl_x86_feature_1)[0] & GNU_PROPERTY_X86_FEATURE_1_SHSTK))
- {
- /* Replace _dl_runtime_resolve and _dl_runtime_profile with
- _dl_runtime_resolve_shstk and _dl_runtime_profile_shstk,
- respectively if SHSTK is enabled. */
- extern void _dl_runtime_resolve (Elf32_Word) attribute_hidden;
- extern void _dl_runtime_resolve_shstk (Elf32_Word) attribute_hidden;
- extern void _dl_runtime_profile (Elf32_Word) attribute_hidden;
- extern void _dl_runtime_profile_shstk (Elf32_Word) attribute_hidden;
- unsigned int i;
- struct link_map *l;
- Elf32_Addr *got;
-
- if (main_map->l_info[DT_JMPREL])
- {
- got = (Elf32_Addr *) D_PTR (main_map, l_info[DT_PLTGOT]);
- if (got[2] == (Elf32_Addr) &_dl_runtime_resolve)
- got[2] = (Elf32_Addr) &_dl_runtime_resolve_shstk;
- else if (got[2] == (Elf32_Addr) &_dl_runtime_profile)
- got[2] = (Elf32_Addr) &_dl_runtime_profile_shstk;
- }
-
- i = main_map->l_searchlist.r_nlist;
- while (i-- > 0)
- {
- l = main_map->l_initfini[i];
- if (l->l_info[DT_JMPREL])
- {
- got = (Elf32_Addr *) D_PTR (l, l_info[DT_PLTGOT]);
- if (got[2] == (Elf32_Addr) &_dl_runtime_resolve)
- got[2] = (Elf32_Addr) &_dl_runtime_resolve_shstk;
- else if (got[2] == (Elf32_Addr) &_dl_runtime_profile)
- got[2] = (Elf32_Addr) &_dl_runtime_profile_shstk;
- }
- }
- }
-}
-#endif
diff --git a/sysdeps/i386/dl-irel.h b/sysdeps/i386/dl-irel.h
index 55303180c7..747af9524b 100644
--- a/sysdeps/i386/dl-irel.h
+++ b/sysdeps/i386/dl-irel.h
@@ -1,6 +1,6 @@
/* Machine-dependent ELF indirect relocation inline functions.
i386 version.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DL_IREL_H
#define _DL_IREL_H
@@ -45,7 +45,7 @@ elf_irel (const Elf32_Rel *reloc)
*reloc_addr = value;
}
else
- __libc_fatal ("unexpected reloc type in static binary");
+ __libc_fatal ("Unexpected reloc type in static binary.\n");
}
#endif /* dl-irel.h */
diff --git a/sysdeps/i386/dl-lookupcfg.h b/sysdeps/i386/dl-lookupcfg.h
deleted file mode 100644
index 5399cf25ab..0000000000
--- a/sysdeps/i386/dl-lookupcfg.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Configuration of lookup functions.
- Copyright (C) 2005-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#define DL_UNMAP_IS_SPECIAL
-
-#include_next <dl-lookupcfg.h>
-
-/* Address of protected data defined in the shared library may be
- external due to copy relocation. */
-#define DL_EXTERN_PROTECTED_DATA
-
-struct link_map;
-
-extern void _dl_unmap (struct link_map *map) attribute_hidden;
-
-#define DL_UNMAP(map) _dl_unmap (map)
diff --git a/sysdeps/i386/dl-machine.h b/sysdeps/i386/dl-machine.h
index 1afdcbd9ea..e225aa3739 100644
--- a/sysdeps/i386/dl-machine.h
+++ b/sysdeps/i386/dl-machine.h
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation inline functions. i386 version.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef dl_machine_h
#define dl_machine_h
@@ -67,6 +67,11 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
Elf32_Addr *got;
extern void _dl_runtime_resolve (Elf32_Word) attribute_hidden;
extern void _dl_runtime_profile (Elf32_Word) attribute_hidden;
+ extern void _dl_runtime_resolve_shstk (Elf32_Word) attribute_hidden;
+ extern void _dl_runtime_profile_shstk (Elf32_Word) attribute_hidden;
+ /* Check if SHSTK is enabled by kernel. */
+ bool shstk_enabled
+ = (GL(dl_x86_feature_1)[0] & GNU_PROPERTY_X86_FEATURE_1_SHSTK) != 0;
if (l->l_info[DT_JMPREL] && lazy)
{
@@ -93,7 +98,9 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
end in this function. */
if (__glibc_unlikely (profile))
{
- got[2] = (Elf32_Addr) &_dl_runtime_profile;
+ got[2] = (shstk_enabled
+ ? (Elf32_Addr) &_dl_runtime_profile_shstk
+ : (Elf32_Addr) &_dl_runtime_profile);
if (GLRO(dl_profile) != NULL
&& _dl_name_match_p (GLRO(dl_profile), l))
@@ -104,7 +111,9 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
else
/* This function will get called to fix up the GOT entry indicated by
the offset on the stack, and then jump to the resolved address. */
- got[2] = (Elf32_Addr) &_dl_runtime_resolve;
+ got[2] = (shstk_enabled
+ ? (Elf32_Addr) &_dl_runtime_resolve_shstk
+ : (Elf32_Addr) &_dl_runtime_resolve);
}
return lazy;
@@ -471,7 +480,8 @@ elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc,
break;
case R_386_IRELATIVE:
value = map->l_addr + *reloc_addr;
- value = ((Elf32_Addr (*) (void)) value) ();
+ if (__glibc_likely (!skip_ifunc))
+ value = ((Elf32_Addr (*) (void)) value) ();
*reloc_addr = value;
break;
default:
@@ -513,6 +523,7 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
case R_386_SIZE32:
/* Set to symbol size plus addend. */
value = sym->st_size;
+ /* Fall through. */
case R_386_GLOB_DAT:
case R_386_JMP_SLOT:
case R_386_32:
@@ -617,7 +628,8 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
# endif /* !RESOLVE_CONFLICT_FIND_MAP */
case R_386_IRELATIVE:
value = map->l_addr + reloc->r_addend;
- value = ((Elf32_Addr (*) (void)) value) ();
+ if (__glibc_likely (!skip_ifunc))
+ value = ((Elf32_Addr (*) (void)) value) ();
*reloc_addr = value;
break;
default:
diff --git a/sysdeps/i386/dl-procinfo.c b/sysdeps/i386/dl-procinfo.c
index cd779e3078..5123659d62 100644
--- a/sysdeps/i386/dl-procinfo.c
+++ b/sysdeps/i386/dl-procinfo.c
@@ -1,5 +1,5 @@
/* Data for i386 version of processor capability information.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* If anything should be added here check whether the size of each string
is still ok with the given array size.
diff --git a/sysdeps/i386/dl-tls.h b/sysdeps/i386/dl-tls.h
index 1123dd7e6a..47193f0000 100644
--- a/sysdeps/i386/dl-tls.h
+++ b/sysdeps/i386/dl-tls.h
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. i386 version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Type used for the representation of TLS information in the GOT. */
diff --git a/sysdeps/i386/dl-tlsdesc.S b/sysdeps/i386/dl-tlsdesc.S
index 128f0af318..0fc3ab718d 100644
--- a/sysdeps/i386/dl-tlsdesc.S
+++ b/sysdeps/i386/dl-tlsdesc.S
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. i386 version.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <tls.h>
diff --git a/sysdeps/i386/dl-tlsdesc.h b/sysdeps/i386/dl-tlsdesc.h
index c8a1e05615..e49cdc52e1 100644
--- a/sysdeps/i386/dl-tlsdesc.h
+++ b/sysdeps/i386/dl-tlsdesc.h
@@ -1,6 +1,6 @@
/* Thread-local storage descriptor handling in the ELF dynamic linker.
i386 version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _I386_DL_TLSDESC_H
# define _I386_DL_TLSDESC_H 1
diff --git a/sysdeps/i386/dl-trampoline.S b/sysdeps/i386/dl-trampoline.S
index 6dc0319216..b05fa211e1 100644
--- a/sysdeps/i386/dl-trampoline.S
+++ b/sysdeps/i386/dl-trampoline.S
@@ -1,5 +1,5 @@
/* PLT trampolines. i386 version.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <link-defines.h>
diff --git a/sysdeps/i386/ffs.c b/sysdeps/i386/ffs.c
index d28d78e272..6ce1e037fc 100644
--- a/sysdeps/i386/ffs.c
+++ b/sysdeps/i386/ffs.c
@@ -1,7 +1,7 @@
/* ffs -- find first set bit in a word, counted from least significant end.
For Intel 80x86, x>=3.
This file is part of the GNU C Library.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 Free Software Foundation, Inc.
Contributed by Torbjorn Granlund (tege@sics.se).
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define ffsl __something_else
#include <string.h>
diff --git a/sysdeps/i386/fpu/e_acosh.S b/sysdeps/i386/fpu/e_acosh.S
index 8d37247a2b..58620f1bcd 100644
--- a/sysdeps/i386/fpu/e_acosh.S
+++ b/sysdeps/i386/fpu/e_acosh.S
@@ -1,5 +1,5 @@
/* ix87 specific implementation of arcsinh.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <machine/asm.h>
diff --git a/sysdeps/i386/fpu/e_acoshf.S b/sysdeps/i386/fpu/e_acoshf.S
index 964c08603d..ae73ba3ae3 100644
--- a/sysdeps/i386/fpu/e_acoshf.S
+++ b/sysdeps/i386/fpu/e_acoshf.S
@@ -1,5 +1,5 @@
/* ix87 specific implementation of arcsinh.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <machine/asm.h>
diff --git a/sysdeps/i386/fpu/e_acoshl.S b/sysdeps/i386/fpu/e_acoshl.S
index 8c6921eb84..c44d6334e0 100644
--- a/sysdeps/i386/fpu/e_acoshl.S
+++ b/sysdeps/i386/fpu/e_acoshl.S
@@ -1,5 +1,5 @@
/* ix87 specific implementation of arcsinh.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <machine/asm.h>
diff --git a/sysdeps/i386/fpu/e_atanh.S b/sysdeps/i386/fpu/e_atanh.S
index 8cb7bc7c66..77208fa826 100644
--- a/sysdeps/i386/fpu/e_atanh.S
+++ b/sysdeps/i386/fpu/e_atanh.S
@@ -1,5 +1,5 @@
/* ix87 specific implementation of arctanh function.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <machine/asm.h>
#include <i386-math-asm.h>
diff --git a/sysdeps/i386/fpu/e_atanhf.S b/sysdeps/i386/fpu/e_atanhf.S
index cf27dbe565..169a7b2dea 100644
--- a/sysdeps/i386/fpu/e_atanhf.S
+++ b/sysdeps/i386/fpu/e_atanhf.S
@@ -1,5 +1,5 @@
/* ix87 specific implementation of arctanh function.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <machine/asm.h>
#include <i386-math-asm.h>
diff --git a/sysdeps/i386/fpu/e_atanhl.S b/sysdeps/i386/fpu/e_atanhl.S
index bd1f096470..b85cd11bb7 100644
--- a/sysdeps/i386/fpu/e_atanhl.S
+++ b/sysdeps/i386/fpu/e_atanhl.S
@@ -1,5 +1,5 @@
/* ix87 specific implementation of arctanh function.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <machine/asm.h>
diff --git a/sysdeps/unix/sysv/linux/riscv/pt-vfork.S b/sysdeps/i386/fpu/e_exp_data.c
index 1cc8931700..1cc8931700 100644
--- a/sysdeps/unix/sysv/linux/riscv/pt-vfork.S
+++ b/sysdeps/i386/fpu/e_exp_data.c
diff --git a/sysdeps/i386/fpu/e_hypot.S b/sysdeps/i386/fpu/e_hypot.S
index 5b7deb356a..4c0f6d21ae 100644
--- a/sysdeps/i386/fpu/e_hypot.S
+++ b/sysdeps/i386/fpu/e_hypot.S
@@ -1,5 +1,5 @@
/* Compute the hypothenuse of X and Y.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <i386-math-asm.h>
diff --git a/sysdeps/i386/fpu/e_hypotf.S b/sysdeps/i386/fpu/e_hypotf.S
index 8e394c9c7f..34a1384c99 100644
--- a/sysdeps/i386/fpu/e_hypotf.S
+++ b/sysdeps/i386/fpu/e_hypotf.S
@@ -1,5 +1,5 @@
/* Compute the hypothenuse of X and Y.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <i386-math-asm.h>
diff --git a/sysdeps/i386/fpu/e_log2_data.c b/sysdeps/i386/fpu/e_log2_data.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/i386/fpu/e_log2_data.c
@@ -0,0 +1 @@
+/* Not needed. */
diff --git a/sysdeps/i386/fpu/e_log_data.c b/sysdeps/i386/fpu/e_log_data.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/i386/fpu/e_log_data.c
@@ -0,0 +1 @@
+/* Not needed. */
diff --git a/sysdeps/i386/fpu/e_pow.S b/sysdeps/i386/fpu/e_pow.S
index b11bc9596e..4c7ad09270 100644
--- a/sysdeps/i386/fpu/e_pow.S
+++ b/sysdeps/i386/fpu/e_pow.S
@@ -1,5 +1,5 @@
/* ix87 specific implementation of pow function.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <machine/asm.h>
#include <i386-math-asm.h>
diff --git a/sysdeps/i386/fpu/e_pow_log_data.c b/sysdeps/i386/fpu/e_pow_log_data.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/i386/fpu/e_pow_log_data.c
@@ -0,0 +1 @@
+/* Not needed. */
diff --git a/sysdeps/i386/fpu/e_powl.S b/sysdeps/i386/fpu/e_powl.S
index 51a0c334f0..f7ec0a1ea0 100644
--- a/sysdeps/i386/fpu/e_powl.S
+++ b/sysdeps/i386/fpu/e_powl.S
@@ -1,5 +1,5 @@
/* ix87 specific implementation of pow function.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <machine/asm.h>
#include <i386-math-asm.h>
diff --git a/sysdeps/i386/fpu/e_rem_pio2.c b/sysdeps/i386/fpu/e_rem_pio2.c
deleted file mode 100644
index 1347b0468c..0000000000
--- a/sysdeps/i386/fpu/e_rem_pio2.c
+++ /dev/null
@@ -1,3 +0,0 @@
-/* Empty. This file is only meant to avoid compiling the file with the
- same name in the libm-ieee754 directory. The code is not used since
- there is an assembler version for all users of this file. */
diff --git a/sysdeps/i386/fpu/fclrexcpt.c b/sysdeps/i386/fpu/fclrexcpt.c
index 8463b102e7..f9c3657d65 100644
--- a/sysdeps/i386/fpu/fclrexcpt.c
+++ b/sysdeps/i386/fpu/fclrexcpt.c
@@ -1,5 +1,5 @@
/* Clear given exceptions in current floating-point environment.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <unistd.h>
diff --git a/sysdeps/i386/fpu/fedisblxcpt.c b/sysdeps/i386/fpu/fedisblxcpt.c
index e2738e6d6c..7bfe16806e 100644
--- a/sysdeps/i386/fpu/fedisblxcpt.c
+++ b/sysdeps/i386/fpu/fedisblxcpt.c
@@ -1,5 +1,5 @@
/* Disable floating-point exceptions.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <unistd.h>
diff --git a/sysdeps/i386/fpu/feenablxcpt.c b/sysdeps/i386/fpu/feenablxcpt.c
index a4d9862666..30ceda1da7 100644
--- a/sysdeps/i386/fpu/feenablxcpt.c
+++ b/sysdeps/i386/fpu/feenablxcpt.c
@@ -1,5 +1,5 @@
/* Enable floating-point exceptions.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <unistd.h>
diff --git a/sysdeps/i386/fpu/fegetenv.c b/sysdeps/i386/fpu/fegetenv.c
index 2a1a8507ba..61dba926a3 100644
--- a/sysdeps/i386/fpu/fegetenv.c
+++ b/sysdeps/i386/fpu/fegetenv.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <unistd.h>
diff --git a/sysdeps/i386/fpu/fegetexcept.c b/sysdeps/i386/fpu/fegetexcept.c
index bb43a20bc0..35b31fefe7 100644
--- a/sysdeps/i386/fpu/fegetexcept.c
+++ b/sysdeps/i386/fpu/fegetexcept.c
@@ -1,5 +1,5 @@
/* Get enabled floating-point exceptions.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/i386/fpu/fegetmode.c b/sysdeps/i386/fpu/fegetmode.c
index 86de9f5548..bd52725514 100644
--- a/sysdeps/i386/fpu/fegetmode.c
+++ b/sysdeps/i386/fpu/fegetmode.c
@@ -1,5 +1,5 @@
/* Store current floating-point control modes. i386 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/i386/fpu/fegetround.c b/sysdeps/i386/fpu/fegetround.c
index 291ad80f5a..f65719f1ed 100644
--- a/sysdeps/i386/fpu/fegetround.c
+++ b/sysdeps/i386/fpu/fegetround.c
@@ -1,5 +1,5 @@
/* Return current rounding direction.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/i386/fpu/feholdexcpt.c b/sysdeps/i386/fpu/feholdexcpt.c
index 270554df31..d459c2bbca 100644
--- a/sysdeps/i386/fpu/feholdexcpt.c
+++ b/sysdeps/i386/fpu/feholdexcpt.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment and clear exceptions.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <unistd.h>
diff --git a/sysdeps/i386/fpu/fenv_private.h b/sysdeps/i386/fpu/fenv_private.h
deleted file mode 100644
index 637dae5f05..0000000000
--- a/sysdeps/i386/fpu/fenv_private.h
+++ /dev/null
@@ -1,495 +0,0 @@
-#ifndef FENV_PRIVATE_H
-#define FENV_PRIVATE_H 1
-
-#include <bits/floatn.h>
-#include <fenv.h>
-#include <fpu_control.h>
-
-/* This file is used by both the 32- and 64-bit ports. The 64-bit port
- has a field in the fenv_t for the mxcsr; the 32-bit port does not.
- Instead, we (ab)use the only 32-bit field extant in the struct. */
-#ifndef __x86_64__
-# define __mxcsr __eip
-#endif
-
-
-/* All of these functions are private to libm, and are all used in pairs
- to save+change the fp state and restore the original state. Thus we
- need not care for both the 387 and the sse unit, only the one we're
- actually using. */
-
-#if defined __AVX__ || defined SSE2AVX
-# define STMXCSR "vstmxcsr"
-# define LDMXCSR "vldmxcsr"
-#else
-# define STMXCSR "stmxcsr"
-# define LDMXCSR "ldmxcsr"
-#endif
-
-static __always_inline void
-libc_feholdexcept_sse (fenv_t *e)
-{
- unsigned int mxcsr;
- asm (STMXCSR " %0" : "=m" (*&mxcsr));
- e->__mxcsr = mxcsr;
- mxcsr = (mxcsr | 0x1f80) & ~0x3f;
- asm volatile (LDMXCSR " %0" : : "m" (*&mxcsr));
-}
-
-static __always_inline void
-libc_feholdexcept_387 (fenv_t *e)
-{
- /* Recall that fnstenv has a side-effect of masking exceptions.
- Clobber all of the fp registers so that the TOS field is 0. */
- asm volatile ("fnstenv %0; fnclex"
- : "=m"(*e)
- : : "st", "st(1)", "st(2)", "st(3)",
- "st(4)", "st(5)", "st(6)", "st(7)");
-}
-
-static __always_inline void
-libc_fesetround_sse (int r)
-{
- unsigned int mxcsr;
- asm (STMXCSR " %0" : "=m" (*&mxcsr));
- mxcsr = (mxcsr & ~0x6000) | (r << 3);
- asm volatile (LDMXCSR " %0" : : "m" (*&mxcsr));
-}
-
-static __always_inline void
-libc_fesetround_387 (int r)
-{
- fpu_control_t cw;
- _FPU_GETCW (cw);
- cw = (cw & ~0xc00) | r;
- _FPU_SETCW (cw);
-}
-
-static __always_inline void
-libc_feholdexcept_setround_sse (fenv_t *e, int r)
-{
- unsigned int mxcsr;
- asm (STMXCSR " %0" : "=m" (*&mxcsr));
- e->__mxcsr = mxcsr;
- mxcsr = ((mxcsr | 0x1f80) & ~0x603f) | (r << 3);
- asm volatile (LDMXCSR " %0" : : "m" (*&mxcsr));
-}
-
-/* Set both rounding mode and precision. A convenience function for use
- by libc_feholdexcept_setround and libc_feholdexcept_setround_53bit. */
-static __always_inline void
-libc_feholdexcept_setround_387_prec (fenv_t *e, int r)
-{
- libc_feholdexcept_387 (e);
-
- fpu_control_t cw = e->__control_word;
- cw &= ~(_FPU_RC_ZERO | _FPU_EXTENDED);
- cw |= r | 0x3f;
- _FPU_SETCW (cw);
-}
-
-static __always_inline void
-libc_feholdexcept_setround_387 (fenv_t *e, int r)
-{
- libc_feholdexcept_setround_387_prec (e, r | _FPU_EXTENDED);
-}
-
-static __always_inline void
-libc_feholdexcept_setround_387_53bit (fenv_t *e, int r)
-{
- libc_feholdexcept_setround_387_prec (e, r | _FPU_DOUBLE);
-}
-
-static __always_inline int
-libc_fetestexcept_sse (int e)
-{
- unsigned int mxcsr;
- asm volatile (STMXCSR " %0" : "=m" (*&mxcsr));
- return mxcsr & e & FE_ALL_EXCEPT;
-}
-
-static __always_inline int
-libc_fetestexcept_387 (int ex)
-{
- fexcept_t temp;
- asm volatile ("fnstsw %0" : "=a" (temp));
- return temp & ex & FE_ALL_EXCEPT;
-}
-
-static __always_inline void
-libc_fesetenv_sse (fenv_t *e)
-{
- asm volatile (LDMXCSR " %0" : : "m" (e->__mxcsr));
-}
-
-static __always_inline void
-libc_fesetenv_387 (fenv_t *e)
-{
- /* Clobber all fp registers so that the TOS value we saved earlier is
- compatible with the current state of the compiler. */
- asm volatile ("fldenv %0"
- : : "m" (*e)
- : "st", "st(1)", "st(2)", "st(3)",
- "st(4)", "st(5)", "st(6)", "st(7)");
-}
-
-static __always_inline int
-libc_feupdateenv_test_sse (fenv_t *e, int ex)
-{
- unsigned int mxcsr, old_mxcsr, cur_ex;
- asm volatile (STMXCSR " %0" : "=m" (*&mxcsr));
- cur_ex = mxcsr & FE_ALL_EXCEPT;
-
- /* Merge current exceptions with the old environment. */
- old_mxcsr = e->__mxcsr;
- mxcsr = old_mxcsr | cur_ex;
- asm volatile (LDMXCSR " %0" : : "m" (*&mxcsr));
-
- /* Raise SIGFPE for any new exceptions since the hold. Expect that
- the normal environment has all exceptions masked. */
- if (__glibc_unlikely (~(old_mxcsr >> 7) & cur_ex))
- __feraiseexcept (cur_ex);
-
- /* Test for exceptions raised since the hold. */
- return cur_ex & ex;
-}
-
-static __always_inline int
-libc_feupdateenv_test_387 (fenv_t *e, int ex)
-{
- fexcept_t cur_ex;
-
- /* Save current exceptions. */
- asm volatile ("fnstsw %0" : "=a" (cur_ex));
- cur_ex &= FE_ALL_EXCEPT;
-
- /* Reload original environment. */
- libc_fesetenv_387 (e);
-
- /* Merge current exceptions. */
- __feraiseexcept (cur_ex);
-
- /* Test for exceptions raised since the hold. */
- return cur_ex & ex;
-}
-
-static __always_inline void
-libc_feupdateenv_sse (fenv_t *e)
-{
- libc_feupdateenv_test_sse (e, 0);
-}
-
-static __always_inline void
-libc_feupdateenv_387 (fenv_t *e)
-{
- libc_feupdateenv_test_387 (e, 0);
-}
-
-static __always_inline void
-libc_feholdsetround_sse (fenv_t *e, int r)
-{
- unsigned int mxcsr;
- asm (STMXCSR " %0" : "=m" (*&mxcsr));
- e->__mxcsr = mxcsr;
- mxcsr = (mxcsr & ~0x6000) | (r << 3);
- asm volatile (LDMXCSR " %0" : : "m" (*&mxcsr));
-}
-
-static __always_inline void
-libc_feholdsetround_387_prec (fenv_t *e, int r)
-{
- fpu_control_t cw;
-
- _FPU_GETCW (cw);
- e->__control_word = cw;
- cw &= ~(_FPU_RC_ZERO | _FPU_EXTENDED);
- cw |= r;
- _FPU_SETCW (cw);
-}
-
-static __always_inline void
-libc_feholdsetround_387 (fenv_t *e, int r)
-{
- libc_feholdsetround_387_prec (e, r | _FPU_EXTENDED);
-}
-
-static __always_inline void
-libc_feholdsetround_387_53bit (fenv_t *e, int r)
-{
- libc_feholdsetround_387_prec (e, r | _FPU_DOUBLE);
-}
-
-static __always_inline void
-libc_feresetround_sse (fenv_t *e)
-{
- unsigned int mxcsr;
- asm (STMXCSR " %0" : "=m" (*&mxcsr));
- mxcsr = (mxcsr & ~0x6000) | (e->__mxcsr & 0x6000);
- asm volatile (LDMXCSR " %0" : : "m" (*&mxcsr));
-}
-
-static __always_inline void
-libc_feresetround_387 (fenv_t *e)
-{
- _FPU_SETCW (e->__control_word);
-}
-
-#ifdef __SSE_MATH__
-# define libc_feholdexceptf libc_feholdexcept_sse
-# define libc_fesetroundf libc_fesetround_sse
-# define libc_feholdexcept_setroundf libc_feholdexcept_setround_sse
-# define libc_fetestexceptf libc_fetestexcept_sse
-# define libc_fesetenvf libc_fesetenv_sse
-# define libc_feupdateenv_testf libc_feupdateenv_test_sse
-# define libc_feupdateenvf libc_feupdateenv_sse
-# define libc_feholdsetroundf libc_feholdsetround_sse
-# define libc_feresetroundf libc_feresetround_sse
-#else
-# define libc_feholdexceptf libc_feholdexcept_387
-# define libc_fesetroundf libc_fesetround_387
-# define libc_feholdexcept_setroundf libc_feholdexcept_setround_387
-# define libc_fetestexceptf libc_fetestexcept_387
-# define libc_fesetenvf libc_fesetenv_387
-# define libc_feupdateenv_testf libc_feupdateenv_test_387
-# define libc_feupdateenvf libc_feupdateenv_387
-# define libc_feholdsetroundf libc_feholdsetround_387
-# define libc_feresetroundf libc_feresetround_387
-#endif /* __SSE_MATH__ */
-
-#ifdef __SSE2_MATH__
-# define libc_feholdexcept libc_feholdexcept_sse
-# define libc_fesetround libc_fesetround_sse
-# define libc_feholdexcept_setround libc_feholdexcept_setround_sse
-# define libc_fetestexcept libc_fetestexcept_sse
-# define libc_fesetenv libc_fesetenv_sse
-# define libc_feupdateenv_test libc_feupdateenv_test_sse
-# define libc_feupdateenv libc_feupdateenv_sse
-# define libc_feholdsetround libc_feholdsetround_sse
-# define libc_feresetround libc_feresetround_sse
-#else
-# define libc_feholdexcept libc_feholdexcept_387
-# define libc_fesetround libc_fesetround_387
-# define libc_feholdexcept_setround libc_feholdexcept_setround_387
-# define libc_fetestexcept libc_fetestexcept_387
-# define libc_fesetenv libc_fesetenv_387
-# define libc_feupdateenv_test libc_feupdateenv_test_387
-# define libc_feupdateenv libc_feupdateenv_387
-# define libc_feholdsetround libc_feholdsetround_387
-# define libc_feresetround libc_feresetround_387
-#endif /* __SSE2_MATH__ */
-
-#define libc_feholdexceptl libc_feholdexcept_387
-#define libc_fesetroundl libc_fesetround_387
-#define libc_feholdexcept_setroundl libc_feholdexcept_setround_387
-#define libc_fetestexceptl libc_fetestexcept_387
-#define libc_fesetenvl libc_fesetenv_387
-#define libc_feupdateenv_testl libc_feupdateenv_test_387
-#define libc_feupdateenvl libc_feupdateenv_387
-#define libc_feholdsetroundl libc_feholdsetround_387
-#define libc_feresetroundl libc_feresetround_387
-
-#ifndef __SSE2_MATH__
-# define libc_feholdexcept_setround_53bit libc_feholdexcept_setround_387_53bit
-# define libc_feholdsetround_53bit libc_feholdsetround_387_53bit
-#endif
-
-#ifdef __x86_64__
-/* The SSE rounding mode is used by soft-fp (libgcc and glibc) on
- x86_64, so that must be set for float128 computations. */
-# define SET_RESTORE_ROUNDF128(RM) \
- SET_RESTORE_ROUND_GENERIC (RM, libc_feholdsetround_sse, libc_feresetround_sse)
-# define libc_feholdexcept_setroundf128 libc_feholdexcept_setround_sse
-# define libc_feupdateenv_testf128 libc_feupdateenv_test_sse
-#else
-/* The 387 rounding mode is used by soft-fp for 32-bit, but whether
- 387 or SSE exceptions are used depends on whether libgcc was built
- for SSE math, which is not known when glibc is being built. */
-# define libc_feholdexcept_setroundf128 default_libc_feholdexcept_setround
-# define libc_feupdateenv_testf128 default_libc_feupdateenv_test
-#endif
-
-/* We have support for rounding mode context. */
-#define HAVE_RM_CTX 1
-
-static __always_inline void
-libc_feholdexcept_setround_sse_ctx (struct rm_ctx *ctx, int r)
-{
- unsigned int mxcsr, new_mxcsr;
- asm (STMXCSR " %0" : "=m" (*&mxcsr));
- new_mxcsr = ((mxcsr | 0x1f80) & ~0x603f) | (r << 3);
-
- ctx->env.__mxcsr = mxcsr;
- if (__glibc_unlikely (mxcsr != new_mxcsr))
- {
- asm volatile (LDMXCSR " %0" : : "m" (*&new_mxcsr));
- ctx->updated_status = true;
- }
- else
- ctx->updated_status = false;
-}
-
-/* Unconditional since we want to overwrite any exceptions that occurred in the
- context. This is also why all fehold* functions unconditionally write into
- ctx->env. */
-static __always_inline void
-libc_fesetenv_sse_ctx (struct rm_ctx *ctx)
-{
- libc_fesetenv_sse (&ctx->env);
-}
-
-static __always_inline void
-libc_feupdateenv_sse_ctx (struct rm_ctx *ctx)
-{
- if (__glibc_unlikely (ctx->updated_status))
- libc_feupdateenv_test_sse (&ctx->env, 0);
-}
-
-static __always_inline void
-libc_feholdexcept_setround_387_prec_ctx (struct rm_ctx *ctx, int r)
-{
- libc_feholdexcept_387 (&ctx->env);
-
- fpu_control_t cw = ctx->env.__control_word;
- fpu_control_t old_cw = cw;
- cw &= ~(_FPU_RC_ZERO | _FPU_EXTENDED);
- cw |= r | 0x3f;
-
- if (__glibc_unlikely (old_cw != cw))
- {
- _FPU_SETCW (cw);
- ctx->updated_status = true;
- }
- else
- ctx->updated_status = false;
-}
-
-static __always_inline void
-libc_feholdexcept_setround_387_ctx (struct rm_ctx *ctx, int r)
-{
- libc_feholdexcept_setround_387_prec_ctx (ctx, r | _FPU_EXTENDED);
-}
-
-static __always_inline void
-libc_feholdexcept_setround_387_53bit_ctx (struct rm_ctx *ctx, int r)
-{
- libc_feholdexcept_setround_387_prec_ctx (ctx, r | _FPU_DOUBLE);
-}
-
-static __always_inline void
-libc_feholdsetround_387_prec_ctx (struct rm_ctx *ctx, int r)
-{
- fpu_control_t cw, new_cw;
-
- _FPU_GETCW (cw);
- new_cw = cw;
- new_cw &= ~(_FPU_RC_ZERO | _FPU_EXTENDED);
- new_cw |= r;
-
- ctx->env.__control_word = cw;
- if (__glibc_unlikely (new_cw != cw))
- {
- _FPU_SETCW (new_cw);
- ctx->updated_status = true;
- }
- else
- ctx->updated_status = false;
-}
-
-static __always_inline void
-libc_feholdsetround_387_ctx (struct rm_ctx *ctx, int r)
-{
- libc_feholdsetround_387_prec_ctx (ctx, r | _FPU_EXTENDED);
-}
-
-static __always_inline void
-libc_feholdsetround_387_53bit_ctx (struct rm_ctx *ctx, int r)
-{
- libc_feholdsetround_387_prec_ctx (ctx, r | _FPU_DOUBLE);
-}
-
-static __always_inline void
-libc_feholdsetround_sse_ctx (struct rm_ctx *ctx, int r)
-{
- unsigned int mxcsr, new_mxcsr;
-
- asm (STMXCSR " %0" : "=m" (*&mxcsr));
- new_mxcsr = (mxcsr & ~0x6000) | (r << 3);
-
- ctx->env.__mxcsr = mxcsr;
- if (__glibc_unlikely (new_mxcsr != mxcsr))
- {
- asm volatile (LDMXCSR " %0" : : "m" (*&new_mxcsr));
- ctx->updated_status = true;
- }
- else
- ctx->updated_status = false;
-}
-
-static __always_inline void
-libc_feresetround_sse_ctx (struct rm_ctx *ctx)
-{
- if (__glibc_unlikely (ctx->updated_status))
- libc_feresetround_sse (&ctx->env);
-}
-
-static __always_inline void
-libc_feresetround_387_ctx (struct rm_ctx *ctx)
-{
- if (__glibc_unlikely (ctx->updated_status))
- _FPU_SETCW (ctx->env.__control_word);
-}
-
-static __always_inline void
-libc_feupdateenv_387_ctx (struct rm_ctx *ctx)
-{
- if (__glibc_unlikely (ctx->updated_status))
- libc_feupdateenv_test_387 (&ctx->env, 0);
-}
-
-#ifdef __SSE_MATH__
-# define libc_feholdexcept_setroundf_ctx libc_feholdexcept_setround_sse_ctx
-# define libc_fesetenvf_ctx libc_fesetenv_sse_ctx
-# define libc_feupdateenvf_ctx libc_feupdateenv_sse_ctx
-# define libc_feholdsetroundf_ctx libc_feholdsetround_sse_ctx
-# define libc_feresetroundf_ctx libc_feresetround_sse_ctx
-#else
-# define libc_feholdexcept_setroundf_ctx libc_feholdexcept_setround_387_ctx
-# define libc_feupdateenvf_ctx libc_feupdateenv_387_ctx
-# define libc_feholdsetroundf_ctx libc_feholdsetround_387_ctx
-# define libc_feresetroundf_ctx libc_feresetround_387_ctx
-#endif /* __SSE_MATH__ */
-
-#ifdef __SSE2_MATH__
-# if defined (__x86_64__) || !defined (MATH_SET_BOTH_ROUNDING_MODES)
-# define libc_feholdexcept_setround_ctx libc_feholdexcept_setround_sse_ctx
-# define libc_fesetenv_ctx libc_fesetenv_sse_ctx
-# define libc_feupdateenv_ctx libc_feupdateenv_sse_ctx
-# define libc_feholdsetround_ctx libc_feholdsetround_sse_ctx
-# define libc_feresetround_ctx libc_feresetround_sse_ctx
-# else
-# define libc_feholdexcept_setround_ctx default_libc_feholdexcept_setround_ctx
-# define libc_fesetenv_ctx default_libc_fesetenv_ctx
-# define libc_feupdateenv_ctx default_libc_feupdateenv_ctx
-# define libc_feholdsetround_ctx default_libc_feholdsetround_ctx
-# define libc_feresetround_ctx default_libc_feresetround_ctx
-# endif
-#else
-# define libc_feholdexcept_setround_ctx libc_feholdexcept_setround_387_ctx
-# define libc_feupdateenv_ctx libc_feupdateenv_387_ctx
-# define libc_feholdsetround_ctx libc_feholdsetround_387_ctx
-# define libc_feresetround_ctx libc_feresetround_387_ctx
-#endif /* __SSE2_MATH__ */
-
-#define libc_feholdexcept_setroundl_ctx libc_feholdexcept_setround_387_ctx
-#define libc_feupdateenvl_ctx libc_feupdateenv_387_ctx
-#define libc_feholdsetroundl_ctx libc_feholdsetround_387_ctx
-#define libc_feresetroundl_ctx libc_feresetround_387_ctx
-
-#ifndef __SSE2_MATH__
-# define libc_feholdsetround_53bit_ctx libc_feholdsetround_387_53bit_ctx
-# define libc_feresetround_53bit_ctx libc_feresetround_387_ctx
-#endif
-
-#undef __mxcsr
-
-#endif /* FENV_PRIVATE_H */
diff --git a/sysdeps/i386/fpu/fesetenv.c b/sysdeps/i386/fpu/fesetenv.c
index 6df6849da4..5eec8ddee2 100644
--- a/sysdeps/i386/fpu/fesetenv.c
+++ b/sysdeps/i386/fpu/fesetenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/i386/fpu/fesetexcept.c b/sysdeps/i386/fpu/fesetexcept.c
index 180b93f60b..4116d8ff5e 100644
--- a/sysdeps/i386/fpu/fesetexcept.c
+++ b/sysdeps/i386/fpu/fesetexcept.c
@@ -1,5 +1,5 @@
/* Set given exception flags. i386 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/i386/fpu/fesetmode.c b/sysdeps/i386/fpu/fesetmode.c
index 9aad6ea99f..cba96bd1ab 100644
--- a/sysdeps/i386/fpu/fesetmode.c
+++ b/sysdeps/i386/fpu/fesetmode.c
@@ -1,5 +1,5 @@
/* Install given floating-point control modes. i386 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/i386/fpu/fesetround.c b/sysdeps/i386/fpu/fesetround.c
index d260046c65..631299c69b 100644
--- a/sysdeps/i386/fpu/fesetround.c
+++ b/sysdeps/i386/fpu/fesetround.c
@@ -1,5 +1,5 @@
/* Set current rounding direction.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <unistd.h>
diff --git a/sysdeps/i386/fpu/feupdateenv.c b/sysdeps/i386/fpu/feupdateenv.c
index db3ff96dfa..91214f55bd 100644
--- a/sysdeps/i386/fpu/feupdateenv.c
+++ b/sysdeps/i386/fpu/feupdateenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment and raise exceptions.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <unistd.h>
diff --git a/sysdeps/i386/fpu/fgetexcptflg.c b/sysdeps/i386/fpu/fgetexcptflg.c
index 39d1f7df3a..bebad95b8f 100644
--- a/sysdeps/i386/fpu/fgetexcptflg.c
+++ b/sysdeps/i386/fpu/fgetexcptflg.c
@@ -1,5 +1,5 @@
/* Store current representation for exceptions.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <unistd.h>
diff --git a/sysdeps/i386/fpu/fraiseexcpt.c b/sysdeps/i386/fpu/fraiseexcpt.c
index 6c781df218..ec3ed32f1f 100644
--- a/sysdeps/i386/fpu/fraiseexcpt.c
+++ b/sysdeps/i386/fpu/fraiseexcpt.c
@@ -1,5 +1,5 @@
/* Raise given exceptions.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <math.h>
diff --git a/sysdeps/i386/fpu/fsetexcptflg.c b/sysdeps/i386/fpu/fsetexcptflg.c
index 21e70251cf..c012bfb6f0 100644
--- a/sysdeps/i386/fpu/fsetexcptflg.c
+++ b/sysdeps/i386/fpu/fsetexcptflg.c
@@ -1,5 +1,5 @@
/* Set floating-point environment exception handling.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <math.h>
diff --git a/sysdeps/i386/fpu/ftestexcept.c b/sysdeps/i386/fpu/ftestexcept.c
index c1b5e90356..edebdc3824 100644
--- a/sysdeps/i386/fpu/ftestexcept.c
+++ b/sysdeps/i386/fpu/ftestexcept.c
@@ -1,5 +1,5 @@
/* Test exception in current environment.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <unistd.h>
diff --git a/sysdeps/i386/fpu/i386-math-asm.h b/sysdeps/i386/fpu/i386-math-asm.h
index 87025b522e..0e98562d52 100644
--- a/sysdeps/i386/fpu/i386-math-asm.h
+++ b/sysdeps/i386/fpu/i386-math-asm.h
@@ -1,5 +1,5 @@
/* Helper macros for x86 libm functions.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _I386_MATH_ASM_H
#define _I386_MATH_ASM_H 1
diff --git a/sysdeps/i386/fpu/libm-test-ulps b/sysdeps/i386/fpu/libm-test-ulps
index e83bae71b4..ca3b42bb10 100644
--- a/sysdeps/i386/fpu/libm-test-ulps
+++ b/sysdeps/i386/fpu/libm-test-ulps
@@ -1158,8 +1158,8 @@ float128: 4
idouble: 4
ifloat: 5
ifloat128: 4
-ildouble: 7
-ldouble: 7
+ildouble: 8
+ldouble: 8
Function: Imaginary part of "clog10_upward":
double: 2
@@ -2030,8 +2030,8 @@ double: 5
float: 5
idouble: 5
ifloat: 5
-ildouble: 5
-ldouble: 5
+ildouble: 6
+ldouble: 6
Function: "hypot":
double: 1
@@ -2222,8 +2222,8 @@ float128: 8
idouble: 5
ifloat: 5
ifloat128: 8
-ildouble: 5
-ldouble: 5
+ildouble: 6
+ldouble: 6
Function: "log":
double: 1
diff --git a/sysdeps/i386/fpu/math-tests-snan.h b/sysdeps/i386/fpu/math-tests-snan.h
new file mode 100644
index 0000000000..e7ecec1736
--- /dev/null
+++ b/sysdeps/i386/fpu/math-tests-snan.h
@@ -0,0 +1,39 @@
+/* Configuration for math tests: sNaN support. 32-bit x86 version.
+ Copyright (C) 2013-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef I386_MATH_TESTS_SNAN_H
+#define I386_MATH_TESTS_SNAN_H 1
+
+/* On 32-bit x86, versions of GCC up to at least 4.8 are happy to use
+ FPU load instructions for sNaN values, and loading a float or
+ double sNaN value will already raise an INVALID exception as well
+ as turn the sNaN into a qNaN, rendering certain tests infeasible in
+ this scenario. <https://gcc.gnu.org/PR56831>. */
+#define SNAN_TESTS_float 0
+#define SNAN_TESTS_double 0
+#define SNAN_TESTS_long_double 1
+
+/* Before GCC 7, there is no built-in function to provide a __float128
+ sNaN, so most sNaN tests for this type cannot work. */
+#if __GNUC_PREREQ (7, 0)
+# define SNAN_TESTS_float128 1
+#else
+# define SNAN_TESTS_float128 0
+#endif
+
+#endif /* math-tests-snan.h. */
diff --git a/sysdeps/i386/fpu/math-tests.h b/sysdeps/i386/fpu/math-tests.h
deleted file mode 100644
index 6aba8414d4..0000000000
--- a/sysdeps/i386/fpu/math-tests.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Configuration for math tests. 32-bit x86 version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-/* On 32-bit x86, versions of GCC up to at least 4.8 are happy to use FPU load
- instructions for sNaN values, and loading a float or double sNaN value will
- already raise an INVALID exception as well as turn the sNaN into a qNaN,
- rendering certain tests infeasible in this scenario.
- <http://gcc.gnu.org/PR56831>. */
-#define SNAN_TESTS_float 0
-#define SNAN_TESTS_double 0
-
-#include_next <math-tests.h>
diff --git a/sysdeps/i386/fpu/math_err.c b/sysdeps/i386/fpu/math_err.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/i386/fpu/math_err.c
@@ -0,0 +1 @@
+/* Not needed. */
diff --git a/sysdeps/i386/fpu/math_private.h b/sysdeps/i386/fpu/math_private.h
deleted file mode 100644
index 485214391f..0000000000
--- a/sysdeps/i386/fpu/math_private.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#ifndef I386_MATH_PRIVATE_H
-#define I386_MATH_PRIVATE_H 1
-
-#include "fenv_private.h"
-#include_next <math_private.h>
-
-#endif
diff --git a/sysdeps/i386/fpu/s_asinh.S b/sysdeps/i386/fpu/s_asinh.S
index 2a03a588ac..4ad931bfed 100644
--- a/sysdeps/i386/fpu/s_asinh.S
+++ b/sysdeps/i386/fpu/s_asinh.S
@@ -1,5 +1,5 @@
/* ix87 specific implementation of arcsinh.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <machine/asm.h>
#include <libm-alias-double.h>
diff --git a/sysdeps/i386/fpu/s_asinhf.S b/sysdeps/i386/fpu/s_asinhf.S
index bc082f0e7b..cd2359c226 100644
--- a/sysdeps/i386/fpu/s_asinhf.S
+++ b/sysdeps/i386/fpu/s_asinhf.S
@@ -1,5 +1,5 @@
/* ix87 specific implementation of arcsinh.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <machine/asm.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/i386/fpu/s_asinhl.S b/sysdeps/i386/fpu/s_asinhl.S
index 21cb30a9e6..e359433102 100644
--- a/sysdeps/i386/fpu/s_asinhl.S
+++ b/sysdeps/i386/fpu/s_asinhl.S
@@ -1,5 +1,5 @@
/* ix87 specific implementation of arcsinh.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libm-alias-ldouble.h>
#include <machine/asm.h>
diff --git a/sysdeps/i386/fpu/s_atanl.c b/sysdeps/i386/fpu/s_atanl.c
index 2b02ac1e32..e876083b35 100644
--- a/sysdeps/i386/fpu/s_atanl.c
+++ b/sysdeps/i386/fpu/s_atanl.c
@@ -5,7 +5,6 @@
* Adapted for `long double' by Ulrich Drepper <drepper@cygnus.com>.
*/
-#include <math_private.h>
#include <libm-alias-ldouble.h>
long double
diff --git a/sysdeps/i386/fpu/s_cbrt.S b/sysdeps/i386/fpu/s_cbrt.S
index abce211322..8bbb06c005 100644
--- a/sysdeps/i386/fpu/s_cbrt.S
+++ b/sysdeps/i386/fpu/s_cbrt.S
@@ -1,5 +1,5 @@
/* Compute cubic root of double value.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Dirk Alboth <dirka@uni-paderborn.de> and
Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <machine/asm.h>
#include <libm-alias-double.h>
diff --git a/sysdeps/i386/fpu/s_cbrtf.S b/sysdeps/i386/fpu/s_cbrtf.S
index 0bdb2f32ec..4edfd5235a 100644
--- a/sysdeps/i386/fpu/s_cbrtf.S
+++ b/sysdeps/i386/fpu/s_cbrtf.S
@@ -1,5 +1,5 @@
/* Compute cubic root of float value.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Dirk Alboth <dirka@uni-paderborn.de> and
Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <machine/asm.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/i386/fpu/s_cbrtl.S b/sysdeps/i386/fpu/s_cbrtl.S
index 0328c96f6b..15b7ff7aed 100644
--- a/sysdeps/i386/fpu/s_cbrtl.S
+++ b/sysdeps/i386/fpu/s_cbrtl.S
@@ -1,5 +1,5 @@
/* Compute cubic root of long double value.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Dirk Alboth <dirka@uni-paderborn.de> and
Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libm-alias-ldouble.h>
#include <machine/asm.h>
diff --git a/sysdeps/i386/fpu/s_expm1.S b/sysdeps/i386/fpu/s_expm1.S
index 2a7c41e72f..55b7dd1d0d 100644
--- a/sysdeps/i386/fpu/s_expm1.S
+++ b/sysdeps/i386/fpu/s_expm1.S
@@ -1,5 +1,5 @@
/* ix87 specific implementation of exp(x)-1.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
Based on code by John C. Bowman <bowman@ipp-garching.mpg.de>.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Using: e^x - 1 = 2^(x * log2(e)) - 1 */
diff --git a/sysdeps/i386/fpu/s_expm1f.S b/sysdeps/i386/fpu/s_expm1f.S
index 5acf374c4b..1ed4dc6037 100644
--- a/sysdeps/i386/fpu/s_expm1f.S
+++ b/sysdeps/i386/fpu/s_expm1f.S
@@ -1,5 +1,5 @@
/* ix87 specific implementation of exp(x)-1.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
Based on code by John C. Bowman <bowman@ipp-garching.mpg.de>.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Using: e^x - 1 = 2^(x * log2(e)) - 1 */
diff --git a/sysdeps/i386/fpu/s_f32xaddf64.c b/sysdeps/i386/fpu/s_f32xaddf64.c
index 9d5e85b409..d7dc0262d2 100644
--- a/sysdeps/i386/fpu/s_f32xaddf64.c
+++ b/sysdeps/i386/fpu/s_f32xaddf64.c
@@ -1,5 +1,5 @@
/* Add _Float64 values, converting the result to _Float32x. i386 version.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,12 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <fpu_control.h>
#include <math-narrow-eval.h>
-#include <math_private.h>
#include <math-narrow.h>
_Float32x
diff --git a/sysdeps/i386/fpu/s_f32xdivf64.c b/sysdeps/i386/fpu/s_f32xdivf64.c
index 77f965a290..c191a57b62 100644
--- a/sysdeps/i386/fpu/s_f32xdivf64.c
+++ b/sysdeps/i386/fpu/s_f32xdivf64.c
@@ -1,5 +1,5 @@
/* Divide _Float64 values, converting the result to _Float32x. i386 version.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math-narrow.h>
diff --git a/sysdeps/i386/fpu/s_f32xmulf64.c b/sysdeps/i386/fpu/s_f32xmulf64.c
index 7710fa47a8..00a4d153b5 100644
--- a/sysdeps/i386/fpu/s_f32xmulf64.c
+++ b/sysdeps/i386/fpu/s_f32xmulf64.c
@@ -1,5 +1,5 @@
/* Multiply _Float64 values, converting the result to _Float32x. i386 version.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math-narrow.h>
diff --git a/sysdeps/i386/fpu/s_f32xsubf64.c b/sysdeps/i386/fpu/s_f32xsubf64.c
index 3f41acfdc9..329226b753 100644
--- a/sysdeps/i386/fpu/s_f32xsubf64.c
+++ b/sysdeps/i386/fpu/s_f32xsubf64.c
@@ -1,5 +1,5 @@
/* Subtract _Float64 values, converting the result to _Float32x. i386 version.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,12 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <fpu_control.h>
#include <math-narrow-eval.h>
-#include <math_private.h>
#include <math-narrow.h>
_Float32x
diff --git a/sysdeps/i386/fpu/s_fdim.c b/sysdeps/i386/fpu/s_fdim.c
index b8fefe7d18..e2a33aa0e8 100644
--- a/sysdeps/i386/fpu/s_fdim.c
+++ b/sysdeps/i386/fpu/s_fdim.c
@@ -1,5 +1,5 @@
/* Return positive difference between arguments. i386 version.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,13 +14,12 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fpu_control.h>
#include <math.h>
#include <math-narrow-eval.h>
-#include <math_private.h>
#include <libm-alias-double.h>
double
diff --git a/sysdeps/i386/fpu/s_fmax.S b/sysdeps/i386/fpu/s_fmax.S
index 91387da5d8..09991871bd 100644
--- a/sysdeps/i386/fpu/s_fmax.S
+++ b/sysdeps/i386/fpu/s_fmax.S
@@ -1,5 +1,5 @@
/* Compute maximum of two numbers, regarding NaN as missing argument.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <libm-alias-double.h>
diff --git a/sysdeps/i386/fpu/s_fmaxf.S b/sysdeps/i386/fpu/s_fmaxf.S
index dbedc96d7f..a4f4f30e0f 100644
--- a/sysdeps/i386/fpu/s_fmaxf.S
+++ b/sysdeps/i386/fpu/s_fmaxf.S
@@ -1,5 +1,5 @@
/* Compute maximum of two numbers, regarding NaN as missing argument.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/i386/fpu/s_fmaxl.S b/sysdeps/i386/fpu/s_fmaxl.S
index 4c6b64fb1d..a34c76a1b9 100644
--- a/sysdeps/i386/fpu/s_fmaxl.S
+++ b/sysdeps/i386/fpu/s_fmaxl.S
@@ -1,5 +1,5 @@
/* Compute maximum of two numbers, regarding NaN as missing argument.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libm-alias-ldouble.h>
#include <sysdep.h>
diff --git a/sysdeps/i386/fpu/s_fmin.S b/sysdeps/i386/fpu/s_fmin.S
index 7c07c07ae6..3d8092d8a4 100644
--- a/sysdeps/i386/fpu/s_fmin.S
+++ b/sysdeps/i386/fpu/s_fmin.S
@@ -1,5 +1,5 @@
/* Compute minimum of two numbers, regarding NaN as missing argument.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <libm-alias-double.h>
diff --git a/sysdeps/i386/fpu/s_fminf.S b/sysdeps/i386/fpu/s_fminf.S
index b3b5cb63d6..e0d5c686d5 100644
--- a/sysdeps/i386/fpu/s_fminf.S
+++ b/sysdeps/i386/fpu/s_fminf.S
@@ -1,5 +1,5 @@
/* Compute minimum of two numbers, regarding NaN as missing argument.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/i386/fpu/s_fminl.S b/sysdeps/i386/fpu/s_fminl.S
index b1f87005a2..40f7d83965 100644
--- a/sysdeps/i386/fpu/s_fminl.S
+++ b/sysdeps/i386/fpu/s_fminl.S
@@ -1,5 +1,5 @@
/* Compute minimum of two numbers, regarding NaN as missing argument.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libm-alias-ldouble.h>
#include <sysdep.h>
diff --git a/sysdeps/i386/fpu/s_fpclassifyl.c b/sysdeps/i386/fpu/s_fpclassifyl.c
index 44110bbfca..836b0725b7 100644
--- a/sysdeps/i386/fpu/s_fpclassifyl.c
+++ b/sysdeps/i386/fpu/s_fpclassifyl.c
@@ -1,5 +1,5 @@
/* Return classification value corresponding to argument.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/i386/fpu/s_frexp.S b/sysdeps/i386/fpu/s_frexp.S
index d5d9d5386c..296f3550b6 100644
--- a/sysdeps/i386/fpu/s_frexp.S
+++ b/sysdeps/i386/fpu/s_frexp.S
@@ -1,5 +1,5 @@
/* ix87 specific frexp implementation for double.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <machine/asm.h>
#include <libm-alias-double.h>
diff --git a/sysdeps/i386/fpu/s_frexpf.S b/sysdeps/i386/fpu/s_frexpf.S
index e45185cdd4..88363f991f 100644
--- a/sysdeps/i386/fpu/s_frexpf.S
+++ b/sysdeps/i386/fpu/s_frexpf.S
@@ -1,5 +1,5 @@
/* ix87 specific frexp implementation for float.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <machine/asm.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/i386/fpu/s_frexpl.S b/sysdeps/i386/fpu/s_frexpl.S
index 52e3e4627c..4a223db5b7 100644
--- a/sysdeps/i386/fpu/s_frexpl.S
+++ b/sysdeps/i386/fpu/s_frexpl.S
@@ -1,5 +1,5 @@
/* ix87 specific frexp implementation for long double.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libm-alias-ldouble.h>
#include <machine/asm.h>
diff --git a/sysdeps/i386/fpu/s_llrint.S b/sysdeps/i386/fpu/s_llrint.S
index 888d2a6231..1f6496581e 100644
--- a/sysdeps/i386/fpu/s_llrint.S
+++ b/sysdeps/i386/fpu/s_llrint.S
@@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <libm-alias-double.h>
diff --git a/sysdeps/i386/fpu/s_llrintf.S b/sysdeps/i386/fpu/s_llrintf.S
index 42a4ef1fb1..ef9b9c220b 100644
--- a/sysdeps/i386/fpu/s_llrintf.S
+++ b/sysdeps/i386/fpu/s_llrintf.S
@@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/i386/fpu/s_llrintl.S b/sysdeps/i386/fpu/s_llrintl.S
index 6728e713b8..109fb96066 100644
--- a/sysdeps/i386/fpu/s_llrintl.S
+++ b/sysdeps/i386/fpu/s_llrintl.S
@@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libm-alias-ldouble.h>
#include <sysdep.h>
diff --git a/sysdeps/i386/fpu/s_logbl.c b/sysdeps/i386/fpu/s_logbl.c
index 601d873594..4968f82a3c 100644
--- a/sysdeps/i386/fpu/s_logbl.c
+++ b/sysdeps/i386/fpu/s_logbl.c
@@ -5,7 +5,6 @@
*/
#include <libm-alias-ldouble.h>
-#include <math_private.h>
long double
__logbl (long double x)
diff --git a/sysdeps/i386/fpu/s_lrint.S b/sysdeps/i386/fpu/s_lrint.S
index 8373b25bcd..dc15f94ba8 100644
--- a/sysdeps/i386/fpu/s_lrint.S
+++ b/sysdeps/i386/fpu/s_lrint.S
@@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <libm-alias-double.h>
diff --git a/sysdeps/i386/fpu/s_lrintf.S b/sysdeps/i386/fpu/s_lrintf.S
index d2f0aa78e6..48ea24ec09 100644
--- a/sysdeps/i386/fpu/s_lrintf.S
+++ b/sysdeps/i386/fpu/s_lrintf.S
@@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/i386/fpu/s_lrintl.S b/sysdeps/i386/fpu/s_lrintl.S
index 28b7219f6e..3bb3fd7b60 100644
--- a/sysdeps/i386/fpu/s_lrintl.S
+++ b/sysdeps/i386/fpu/s_lrintl.S
@@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libm-alias-ldouble.h>
#include <sysdep.h>
diff --git a/sysdeps/i386/fpu/s_rintl.c b/sysdeps/i386/fpu/s_rintl.c
index 5900435af9..3d0795c126 100644
--- a/sysdeps/i386/fpu/s_rintl.c
+++ b/sysdeps/i386/fpu/s_rintl.c
@@ -4,8 +4,8 @@
* Public domain.
*/
+#define NO_MATH_REDIRECT
#include <libm-alias-ldouble.h>
-#include <math_private.h>
long double
__rintl (long double x)
diff --git a/sysdeps/i386/fpu/s_significandl.c b/sysdeps/i386/fpu/s_significandl.c
index b8cb093502..081b3c4770 100644
--- a/sysdeps/i386/fpu/s_significandl.c
+++ b/sysdeps/i386/fpu/s_significandl.c
@@ -4,7 +4,6 @@
* Public domain.
*/
-#include <math_private.h>
long double
__significandl (long double x)
diff --git a/sysdeps/i386/fpu/s_trunc.S b/sysdeps/i386/fpu/s_trunc.S
index a87687fe2b..54cdbfd8de 100644
--- a/sysdeps/i386/fpu/s_trunc.S
+++ b/sysdeps/i386/fpu/s_trunc.S
@@ -1,5 +1,5 @@
/* Truncate double value.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <machine/asm.h>
#include <libm-alias-double.h>
diff --git a/sysdeps/i386/fpu/s_truncf.S b/sysdeps/i386/fpu/s_truncf.S
index 14d2a81835..2e17745ab3 100644
--- a/sysdeps/i386/fpu/s_truncf.S
+++ b/sysdeps/i386/fpu/s_truncf.S
@@ -1,5 +1,5 @@
/* Truncate float value.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <machine/asm.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/i386/fpu/s_truncl.S b/sysdeps/i386/fpu/s_truncl.S
index 98a14cdb37..955ad41712 100644
--- a/sysdeps/i386/fpu/s_truncl.S
+++ b/sysdeps/i386/fpu/s_truncl.S
@@ -1,5 +1,5 @@
/* Truncate long double value.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libm-alias-ldouble.h>
#include <machine/asm.h>
diff --git a/sysdeps/i386/fpu/t_exp.c b/sysdeps/i386/fpu/t_exp.c
deleted file mode 100644
index fd37963b05..0000000000
--- a/sysdeps/i386/fpu/t_exp.c
+++ /dev/null
@@ -1 +0,0 @@
-/* Empty. Not needed. */
diff --git a/sysdeps/i386/fpu/w_exp.c b/sysdeps/i386/fpu/w_exp.c
new file mode 100644
index 0000000000..27eee98a0a
--- /dev/null
+++ b/sysdeps/i386/fpu/w_exp.c
@@ -0,0 +1 @@
+#include <sysdeps/../math/w_exp.c>
diff --git a/sysdeps/i386/fpu/w_exp2.c b/sysdeps/i386/fpu/w_exp2.c
new file mode 100644
index 0000000000..e0636a7ceb
--- /dev/null
+++ b/sysdeps/i386/fpu/w_exp2.c
@@ -0,0 +1 @@
+#include <sysdeps/../math/w_exp2.c>
diff --git a/sysdeps/i386/fpu/w_log.c b/sysdeps/i386/fpu/w_log.c
new file mode 100644
index 0000000000..9b2b018711
--- /dev/null
+++ b/sysdeps/i386/fpu/w_log.c
@@ -0,0 +1 @@
+#include <sysdeps/../math/w_log.c>
diff --git a/sysdeps/i386/fpu/w_log2.c b/sysdeps/i386/fpu/w_log2.c
new file mode 100644
index 0000000000..eafbe5cf3e
--- /dev/null
+++ b/sysdeps/i386/fpu/w_log2.c
@@ -0,0 +1 @@
+#include <sysdeps/../math/w_log2.c>
diff --git a/sysdeps/i386/fpu/w_pow.c b/sysdeps/i386/fpu/w_pow.c
new file mode 100644
index 0000000000..b50c1988de
--- /dev/null
+++ b/sysdeps/i386/fpu/w_pow.c
@@ -0,0 +1 @@
+#include <sysdeps/../math/w_pow.c>
diff --git a/sysdeps/i386/gccframe.h b/sysdeps/i386/gccframe.h
index 6935604092..291b9ce0dc 100644
--- a/sysdeps/i386/gccframe.h
+++ b/sysdeps/i386/gccframe.h
@@ -1,5 +1,5 @@
/* Definition of object in frame unwind info. i386 version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define DWARF_FRAME_REGISTERS 17
diff --git a/sysdeps/i386/gmp-mparam.h b/sysdeps/i386/gmp-mparam.h
index 695ab9fdc4..6e0765a373 100644
--- a/sysdeps/i386/gmp-mparam.h
+++ b/sysdeps/i386/gmp-mparam.h
@@ -1,6 +1,6 @@
/* gmp-mparam.h -- Compiler/machine parameter header file.
-Copyright (C) 1991-2018 Free Software Foundation, Inc.
+Copyright (C) 1991-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -16,7 +16,7 @@ License for more details.
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not, see
-<http://www.gnu.org/licenses/>. */
+<https://www.gnu.org/licenses/>. */
#define BITS_PER_MP_LIMB 32
#define BYTES_PER_MP_LIMB 4
diff --git a/sysdeps/i386/htl/bits/pthreadtypes-arch.h b/sysdeps/i386/htl/bits/pthreadtypes-arch.h
index 75ba63223f..d1867104e2 100644
--- a/sysdeps/i386/htl/bits/pthreadtypes-arch.h
+++ b/sysdeps/i386/htl/bits/pthreadtypes-arch.h
@@ -1,5 +1,5 @@
/* Machine-specific pthread type layouts. Hurd i386 version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_PTHREADTYPES_ARCH_H
#define _BITS_PTHREADTYPES_ARCH_H 1
diff --git a/sysdeps/i386/htl/machine-sp.h b/sysdeps/i386/htl/machine-sp.h
index 8470f2fa97..fa68ef1672 100644
--- a/sysdeps/i386/htl/machine-sp.h
+++ b/sysdeps/i386/htl/machine-sp.h
@@ -1,5 +1,5 @@
/* Machine-specific function to return the stack pointer. i386 version.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MACHINE_SP_H
#define _MACHINE_SP_H
diff --git a/sysdeps/i386/htl/pt-machdep.h b/sysdeps/i386/htl/pt-machdep.h
index e99d3476d6..ed3b1dcc8b 100644
--- a/sysdeps/i386/htl/pt-machdep.h
+++ b/sysdeps/i386/htl/pt-machdep.h
@@ -1,5 +1,5 @@
/* Machine dependent pthreads internal defenitions. i386 version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _PT_MACHDEP_H
#define _PT_MACHDEP_H 1
diff --git a/sysdeps/i386/htonl.S b/sysdeps/i386/htonl.S
index 52ef295f9b..d4a4a50992 100644
--- a/sysdeps/i386/htonl.S
+++ b/sysdeps/i386/htonl.S
@@ -1,5 +1,5 @@
/* Change byte order in word. For Intel 80x86, x >= 4.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "asm-syntax.h"
diff --git a/sysdeps/i386/htons.S b/sysdeps/i386/htons.S
index 5b572737da..67814cd24c 100644
--- a/sysdeps/i386/htons.S
+++ b/sysdeps/i386/htons.S
@@ -1,5 +1,5 @@
/* Change byte order in word. For Intel 80x86, x >= 3.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "asm-syntax.h"
diff --git a/sysdeps/i386/i386-mcount.S b/sysdeps/i386/i386-mcount.S
index 3db2fcdf6b..32b2a5f0bf 100644
--- a/sysdeps/i386/i386-mcount.S
+++ b/sysdeps/i386/i386-mcount.S
@@ -1,5 +1,5 @@
/* i386-specific implementation of profiling support.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/i386/i586/add_n.S b/sysdeps/i386/i586/add_n.S
index 1d4a7412c6..6d7368c930 100644
--- a/sysdeps/i386/i586/add_n.S
+++ b/sysdeps/i386/i586/add_n.S
@@ -1,6 +1,6 @@
/* Pentium __mpn_add_n -- Add two limb vectors of the same length > 0 and store
sum in a third limb vector.
- Copyright (C) 1992-2018 Free Software Foundation, Inc.
+ Copyright (C) 1992-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
The GNU MP Library is free software; you can redistribute it and/or modify
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not,
- see <http://www.gnu.org/licenses/>. */
+ see <https://www.gnu.org/licenses/>. */
#include "sysdep.h"
#include "asm-syntax.h"
diff --git a/sysdeps/i386/i586/addmul_1.S b/sysdeps/i386/i586/addmul_1.S
index 2acd5a7791..561fc62c6b 100644
--- a/sysdeps/i386/i586/addmul_1.S
+++ b/sysdeps/i386/i586/addmul_1.S
@@ -1,6 +1,6 @@
/* Pentium __mpn_addmul_1 -- Multiply a limb vector with a limb and add
the result to a second limb vector.
- Copyright (C) 1992-2018 Free Software Foundation, Inc.
+ Copyright (C) 1992-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
The GNU MP Library is free software; you can redistribute it and/or modify
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not,
- see <http://www.gnu.org/licenses/>. */
+ see <https://www.gnu.org/licenses/>. */
#include "sysdep.h"
#include "asm-syntax.h"
diff --git a/sysdeps/i386/i586/init-arch.h b/sysdeps/i386/i586/init-arch.h
deleted file mode 100644
index 72fb46c61e..0000000000
--- a/sysdeps/i386/i586/init-arch.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#define MINIMUM_ISA 586
-#include <sysdeps/x86/init-arch.h>
diff --git a/sysdeps/i386/i586/isa.h b/sysdeps/i386/i586/isa.h
new file mode 100644
index 0000000000..46b90de377
--- /dev/null
+++ b/sysdeps/i386/i586/isa.h
@@ -0,0 +1,24 @@
+/* x86 ISA info. i586 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _ISA_H
+#define _ISA_H
+
+#define MINIMUM_ISA 586
+
+#endif
diff --git a/sysdeps/i386/i586/lshift.S b/sysdeps/i386/i586/lshift.S
index 04ea65a7c4..821344c03f 100644
--- a/sysdeps/i386/i586/lshift.S
+++ b/sysdeps/i386/i586/lshift.S
@@ -1,5 +1,5 @@
/* Pentium optimized __mpn_lshift --
- Copyright (C) 1992-2018 Free Software Foundation, Inc.
+ Copyright (C) 1992-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "sysdep.h"
#include "asm-syntax.h"
diff --git a/sysdeps/i386/i586/memcopy.h b/sysdeps/i386/i586/memcopy.h
index 65420b0421..43b9689110 100644
--- a/sysdeps/i386/i586/memcopy.h
+++ b/sysdeps/i386/i586/memcopy.h
@@ -1,5 +1,5 @@
/* memcopy.h -- definitions for memory copy functions. Pentium version.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-2019 Free Software Foundation, Inc.
Contributed by Torbjorn Granlund (tege@sics.se).
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Get the i386 definitions. We will override some of them below. */
#include <sysdeps/i386/memcopy.h>
diff --git a/sysdeps/i386/i586/memcpy.S b/sysdeps/i386/i586/memcpy.S
index 7e3dee69d8..82597220ce 100644
--- a/sysdeps/i386/i586/memcpy.S
+++ b/sysdeps/i386/i586/memcpy.S
@@ -1,5 +1,5 @@
/* Highly optimized version for i586.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "asm-syntax.h"
diff --git a/sysdeps/i386/i586/memset.S b/sysdeps/i386/i586/memset.S
index 480fc70a50..b7bc6ae8aa 100644
--- a/sysdeps/i386/i586/memset.S
+++ b/sysdeps/i386/i586/memset.S
@@ -1,6 +1,6 @@
/* memset/bzero -- set memory area to CH/0
Highly optimized version for ix86, x>=5.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Torbjorn Granlund, <tege@matematik.su.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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "asm-syntax.h"
diff --git a/sysdeps/i386/i586/mul_1.S b/sysdeps/i386/i586/mul_1.S
index d75d767e6b..4ad4a420a6 100644
--- a/sysdeps/i386/i586/mul_1.S
+++ b/sysdeps/i386/i586/mul_1.S
@@ -1,6 +1,6 @@
/* Pentium __mpn_mul_1 -- Multiply a limb vector with a limb and store
the result in a second limb vector.
- Copyright (C) 1992-2018 Free Software Foundation, Inc.
+ Copyright (C) 1992-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
The GNU MP Library is free software; you can redistribute it and/or modify
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not,
- see <http://www.gnu.org/licenses/>. */
+ see <https://www.gnu.org/licenses/>. */
#include "sysdep.h"
#include "asm-syntax.h"
diff --git a/sysdeps/i386/i586/rshift.S b/sysdeps/i386/i586/rshift.S
index 929dfd67a4..c598d162ae 100644
--- a/sysdeps/i386/i586/rshift.S
+++ b/sysdeps/i386/i586/rshift.S
@@ -1,5 +1,5 @@
/* Pentium optimized __mpn_rshift --
- Copyright (C) 1992-2018 Free Software Foundation, Inc.
+ Copyright (C) 1992-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
The GNU MP Library is free software; you can redistribute it and/or modify
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not,
- see <http://www.gnu.org/licenses/>. */
+ see <https://www.gnu.org/licenses/>. */
#include "sysdep.h"
#include "asm-syntax.h"
diff --git a/sysdeps/i386/i586/strchr.S b/sysdeps/i386/i586/strchr.S
index ac3afb6d95..85500d2db5 100644
--- a/sysdeps/i386/i586/strchr.S
+++ b/sysdeps/i386/i586/strchr.S
@@ -1,6 +1,6 @@
/* Find character CH in a NUL terminated string.
Highly optimized version for ix85, x>=5.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "asm-syntax.h"
diff --git a/sysdeps/i386/i586/strcpy.S b/sysdeps/i386/i586/strcpy.S
index 19bed86b45..996b883f32 100644
--- a/sysdeps/i386/i586/strcpy.S
+++ b/sysdeps/i386/i586/strcpy.S
@@ -1,5 +1,5 @@
/* strcpy/stpcpy implementation for i586.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "asm-syntax.h"
diff --git a/sysdeps/i386/i586/strlen.S b/sysdeps/i386/i586/strlen.S
index da05d2b494..3347585580 100644
--- a/sysdeps/i386/i586/strlen.S
+++ b/sysdeps/i386/i586/strlen.S
@@ -1,6 +1,6 @@
/* strlen -- Compute length of NUL terminated string.
Highly optimized version for ix86, x>=5.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "asm-syntax.h"
diff --git a/sysdeps/i386/i586/sub_n.S b/sysdeps/i386/i586/sub_n.S
index 7c3b8fcac3..74bd21c664 100644
--- a/sysdeps/i386/i586/sub_n.S
+++ b/sysdeps/i386/i586/sub_n.S
@@ -1,6 +1,6 @@
/* Pentium __mpn_sub_n -- Subtract two limb vectors of the same length > 0
and store difference in a third limb vector.
- Copyright (C) 1992-2018 Free Software Foundation, Inc.
+ Copyright (C) 1992-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
The GNU MP Library is free software; you can redistribute it and/or modify
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not,
- see <http://www.gnu.org/licenses/>. */
+ see <https://www.gnu.org/licenses/>. */
#include "sysdep.h"
#include "asm-syntax.h"
diff --git a/sysdeps/i386/i586/submul_1.S b/sysdeps/i386/i586/submul_1.S
index cd213e8234..465394e1db 100644
--- a/sysdeps/i386/i586/submul_1.S
+++ b/sysdeps/i386/i586/submul_1.S
@@ -1,6 +1,6 @@
/* Pentium __mpn_submul_1 -- Multiply a limb vector with a limb and subtract
the result from a second limb vector.
- Copyright (C) 1992-2018 Free Software Foundation, Inc.
+ Copyright (C) 1992-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
The GNU MP Library is free software; you can redistribute it and/or modify
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not,
- see <http://www.gnu.org/licenses/>. */
+ see <https://www.gnu.org/licenses/>. */
#include "sysdep.h"
#include "asm-syntax.h"
diff --git a/sysdeps/i386/i686/add_n.S b/sysdeps/i386/i686/add_n.S
index 0c95919d30..7e0c34ff48 100644
--- a/sysdeps/i386/i686/add_n.S
+++ b/sysdeps/i386/i686/add_n.S
@@ -1,6 +1,6 @@
/* Add two limb vectors of the same length > 0 and store sum in a third
limb vector.
- Copyright (C) 1992-2018 Free Software Foundation, Inc.
+ Copyright (C) 1992-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
The GNU MP Library is free software; you can redistribute it and/or modify
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not,
- see <http://www.gnu.org/licenses/>. */
+ see <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "asm-syntax.h"
diff --git a/sysdeps/i386/i686/dl-hash.h b/sysdeps/i386/i686/dl-hash.h
index 34b625450a..b989bfe54b 100644
--- a/sysdeps/i386/i686/dl-hash.h
+++ b/sysdeps/i386/i686/dl-hash.h
@@ -1,5 +1,5 @@
/* Compute hash alue for given string according to ELF standard.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DL_HASH_H
#define _DL_HASH_H 1
diff --git a/sysdeps/i386/i686/ffs.c b/sysdeps/i386/i686/ffs.c
index 540c8bde62..d7eee97dcb 100644
--- a/sysdeps/i386/i686/ffs.c
+++ b/sysdeps/i386/i686/ffs.c
@@ -1,7 +1,7 @@
/* ffs -- find first set bit in a word, counted from least significant end.
For Intel 80x86, x>=6.
This file is part of the GNU C Library.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 Free Software Foundation, Inc.
Contributed by Ulrich Drepper <drepper@cygnus.com>.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define ffsl __something_else
#include <string.h>
diff --git a/sysdeps/i386/i686/fpu/multiarch/e_exp2f.c b/sysdeps/i386/i686/fpu/multiarch/e_exp2f.c
index d656414990..b002d22441 100644
--- a/sysdeps/i386/i686/fpu/multiarch/e_exp2f.c
+++ b/sysdeps/i386/i686/fpu/multiarch/e_exp2f.c
@@ -1,5 +1,5 @@
/* Multiple versions of exp2f.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
extern float __redirect_exp2f (float);
diff --git a/sysdeps/i386/i686/fpu/multiarch/e_expf.c b/sysdeps/i386/i686/fpu/multiarch/e_expf.c
index 1f7c35701b..b55071fa7e 100644
--- a/sysdeps/i386/i686/fpu/multiarch/e_expf.c
+++ b/sysdeps/i386/i686/fpu/multiarch/e_expf.c
@@ -1,5 +1,5 @@
/* Multiple versions of expf.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
extern float __redirect_expf (float);
@@ -26,7 +26,7 @@ libc_ifunc_redirected (__redirect_expf, __expf, IFUNC_SELECTOR ());
#include <libm-alias-float.h>
#ifdef SHARED
__hidden_ver1 (__expf_ia32, __GI___expf, __redirect_expf)
- __attribute__ ((visibility ("hidden")));
+ __attribute__ ((visibility ("hidden"))) __THROW;
# include <shlib-compat.h>
versioned_symbol (libm, __expf, expf, GLIBC_2_27);
diff --git a/sysdeps/i386/i686/fpu/multiarch/e_log2f.c b/sysdeps/i386/i686/fpu/multiarch/e_log2f.c
index 3dacaa609e..a33b337271 100644
--- a/sysdeps/i386/i686/fpu/multiarch/e_log2f.c
+++ b/sysdeps/i386/i686/fpu/multiarch/e_log2f.c
@@ -1,5 +1,5 @@
/* Multiple versions of log2f.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
extern float __redirect_log2f (float);
@@ -26,7 +26,7 @@ libc_ifunc_redirected (__redirect_log2f, __log2f, IFUNC_SELECTOR ());
#include <libm-alias-float.h>
#ifdef SHARED
__hidden_ver1 (__log2f_ia32, __GI___log2f, __redirect_log2f)
- __attribute__ ((visibility ("hidden")));
+ __attribute__ ((visibility ("hidden"))) __THROW;
# include <shlib-compat.h>
versioned_symbol (libm, __log2f, log2f, GLIBC_2_27);
diff --git a/sysdeps/i386/i686/fpu/multiarch/e_logf.c b/sysdeps/i386/i686/fpu/multiarch/e_logf.c
index 1ce90e2e05..bfbd56626c 100644
--- a/sysdeps/i386/i686/fpu/multiarch/e_logf.c
+++ b/sysdeps/i386/i686/fpu/multiarch/e_logf.c
@@ -1,5 +1,5 @@
/* Multiple versions of logf.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
extern float __redirect_logf (float);
@@ -26,7 +26,7 @@ libc_ifunc_redirected (__redirect_logf, __logf, IFUNC_SELECTOR ());
#include <libm-alias-float.h>
#ifdef SHARED
__hidden_ver1 (__logf_ia32, __GI___logf, __redirect_logf)
- __attribute__ ((visibility ("hidden")));
+ __attribute__ ((visibility ("hidden"))) __THROW;
# include <shlib-compat.h>
versioned_symbol (libm, __logf, logf, GLIBC_2_27);
diff --git a/sysdeps/i386/i686/fpu/multiarch/e_powf.c b/sysdeps/i386/i686/fpu/multiarch/e_powf.c
index edec68eac6..a92229f58e 100644
--- a/sysdeps/i386/i686/fpu/multiarch/e_powf.c
+++ b/sysdeps/i386/i686/fpu/multiarch/e_powf.c
@@ -1,5 +1,5 @@
/* Multiple versions of powf.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define powf __redirect_powf
#define __DECL_SIMD___redirect_powf
diff --git a/sysdeps/i386/i686/fpu/multiarch/s_cosf-sse2.S b/sysdeps/i386/i686/fpu/multiarch/s_cosf-sse2.S
index ffd639e70b..7a1e1e4a12 100644
--- a/sysdeps/i386/i686/fpu/multiarch/s_cosf-sse2.S
+++ b/sysdeps/i386/i686/fpu/multiarch/s_cosf-sse2.S
@@ -1,5 +1,5 @@
/* Optimized with sse2 version of cosf
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <errno.h>
diff --git a/sysdeps/i386/i686/fpu/multiarch/s_cosf.c b/sysdeps/i386/i686/fpu/multiarch/s_cosf.c
index a4556a478d..b40338bac0 100644
--- a/sysdeps/i386/i686/fpu/multiarch/s_cosf.c
+++ b/sysdeps/i386/i686/fpu/multiarch/s_cosf.c
@@ -1,5 +1,5 @@
/* Multiple versions of cosf
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,14 +14,14 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <init-arch.h>
#include <libm-alias-float.h>
+#include <math.h>
extern float __cosf_sse2 (float);
extern float __cosf_ia32 (float);
-float __cosf (float);
libm_ifunc (__cosf, HAS_CPU_FEATURE (SSE2) ? __cosf_sse2 : __cosf_ia32);
libm_alias_float (__cos, cos);
diff --git a/sysdeps/i386/i686/fpu/multiarch/s_sincosf-sse2.S b/sysdeps/i386/i686/fpu/multiarch/s_sincosf-sse2.S
index 67855395bb..8fdce2eebc 100644
--- a/sysdeps/i386/i686/fpu/multiarch/s_sincosf-sse2.S
+++ b/sysdeps/i386/i686/fpu/multiarch/s_sincosf-sse2.S
@@ -1,5 +1,5 @@
/* Optimized with sse2 version of sincosf
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <errno.h>
diff --git a/sysdeps/i386/i686/fpu/multiarch/s_sincosf.c b/sysdeps/i386/i686/fpu/multiarch/s_sincosf.c
index 5f21f5c0ed..0176b87e60 100644
--- a/sysdeps/i386/i686/fpu/multiarch/s_sincosf.c
+++ b/sysdeps/i386/i686/fpu/multiarch/s_sincosf.c
@@ -1,5 +1,5 @@
/* Multiple versions of sincosf
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,14 +14,14 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <init-arch.h>
#include <libm-alias-float.h>
+#include <math.h>
extern void __sincosf_sse2 (float, float *, float *);
extern void __sincosf_ia32 (float, float *, float *);
-void __sincosf (float, float *, float *);
libm_ifunc (__sincosf,
HAS_CPU_FEATURE (SSE2) ? __sincosf_sse2 : __sincosf_ia32);
diff --git a/sysdeps/i386/i686/fpu/multiarch/s_sinf-sse2.S b/sysdeps/i386/i686/fpu/multiarch/s_sinf-sse2.S
index 4d20fdbead..6d1dc4062a 100644
--- a/sysdeps/i386/i686/fpu/multiarch/s_sinf-sse2.S
+++ b/sysdeps/i386/i686/fpu/multiarch/s_sinf-sse2.S
@@ -1,5 +1,5 @@
/* Optimized with sse2 version of sinf
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <errno.h>
diff --git a/sysdeps/i386/i686/fpu/multiarch/s_sinf.c b/sysdeps/i386/i686/fpu/multiarch/s_sinf.c
index 80a7ffaa1e..cc174ca9d8 100644
--- a/sysdeps/i386/i686/fpu/multiarch/s_sinf.c
+++ b/sysdeps/i386/i686/fpu/multiarch/s_sinf.c
@@ -1,5 +1,5 @@
/* Multiple versions of sinf
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,14 +14,14 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <init-arch.h>
#include <libm-alias-float.h>
+#include <math.h>
extern float __sinf_sse2 (float);
extern float __sinf_ia32 (float);
-float __sinf (float);
libm_ifunc (__sinf, HAS_CPU_FEATURE (SSE2) ? __sinf_sse2 : __sinf_ia32);
libm_alias_float (__sin, sin);
diff --git a/sysdeps/i386/i686/fpu/s_fmax.S b/sysdeps/i386/i686/fpu/s_fmax.S
index 501573edc2..3e07c0ffe2 100644
--- a/sysdeps/i386/i686/fpu/s_fmax.S
+++ b/sysdeps/i386/i686/fpu/s_fmax.S
@@ -1,5 +1,5 @@
/* Compute maximum of two numbers, regarding NaN as missing argument.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <libm-alias-double.h>
diff --git a/sysdeps/i386/i686/fpu/s_fmaxf.S b/sysdeps/i386/i686/fpu/s_fmaxf.S
index a167b6c73d..1dc598f180 100644
--- a/sysdeps/i386/i686/fpu/s_fmaxf.S
+++ b/sysdeps/i386/i686/fpu/s_fmaxf.S
@@ -1,5 +1,5 @@
/* Compute maximum of two numbers, regarding NaN as missing argument.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/i386/i686/fpu/s_fmaxl.S b/sysdeps/i386/i686/fpu/s_fmaxl.S
index c9c62c71c8..97e4a0b42f 100644
--- a/sysdeps/i386/i686/fpu/s_fmaxl.S
+++ b/sysdeps/i386/i686/fpu/s_fmaxl.S
@@ -1,5 +1,5 @@
/* Compute maximum of two numbers, regarding NaN as missing argument.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <libm-alias-ldouble.h>
diff --git a/sysdeps/i386/i686/fpu/s_fmin.S b/sysdeps/i386/i686/fpu/s_fmin.S
index 26208279bb..129bbb7fc8 100644
--- a/sysdeps/i386/i686/fpu/s_fmin.S
+++ b/sysdeps/i386/i686/fpu/s_fmin.S
@@ -1,5 +1,5 @@
/* Compute minimum of two numbers, regarding NaN as missing argument.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <libm-alias-double.h>
diff --git a/sysdeps/i386/i686/fpu/s_fminf.S b/sysdeps/i386/i686/fpu/s_fminf.S
index d9b6d0d4be..c3a986ec1b 100644
--- a/sysdeps/i386/i686/fpu/s_fminf.S
+++ b/sysdeps/i386/i686/fpu/s_fminf.S
@@ -1,5 +1,5 @@
/* Compute minimum of two numbers, regarding NaN as missing argument.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/i386/i686/fpu/s_fminl.S b/sysdeps/i386/i686/fpu/s_fminl.S
index a22d0d7c1b..ca4425d662 100644
--- a/sysdeps/i386/i686/fpu/s_fminl.S
+++ b/sysdeps/i386/i686/fpu/s_fminl.S
@@ -1,5 +1,5 @@
/* Compute minimum of two numbers, regarding NaN as missing argument.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libm-alias-ldouble.h>
#include <sysdep.h>
diff --git a/sysdeps/i386/i686/hp-timing.h b/sysdeps/i386/i686/hp-timing.h
deleted file mode 100644
index 59af526fdb..0000000000
--- a/sysdeps/i386/i686/hp-timing.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/* High precision, low overhead timing functions. i686 version.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _HP_TIMING_H
-#define _HP_TIMING_H 1
-
-/* We always assume having the timestamp register. */
-#define HP_TIMING_AVAIL (1)
-#define HP_SMALL_TIMING_AVAIL (1)
-
-/* We indeed have inlined functions. */
-#define HP_TIMING_INLINE (1)
-
-/* We use 64bit values for the times. */
-typedef unsigned long long int hp_timing_t;
-
-/* That's quite simple. Use the `rdtsc' instruction. Note that the value
- might not be 100% accurate since there might be some more instructions
- running in this moment. This could be changed by using a barrier like
- 'cpuid' right before the `rdtsc' instruciton. But we are not interested
- in accurate clock cycles here so we don't do this. */
-#define HP_TIMING_NOW(Var) __asm__ __volatile__ ("rdtsc" : "=A" (Var))
-
-#include <hp-timing-common.h>
-
-#endif /* hp-timing.h */
diff --git a/sysdeps/i386/i686/init-arch.h b/sysdeps/i386/i686/init-arch.h
deleted file mode 100644
index ab99392b58..0000000000
--- a/sysdeps/i386/i686/init-arch.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#define MINIMUM_ISA 686
-#include <sysdeps/x86/init-arch.h>
diff --git a/sysdeps/i386/i686/isa.h b/sysdeps/i386/i686/isa.h
new file mode 100644
index 0000000000..e0dd2ffabf
--- /dev/null
+++ b/sysdeps/i386/i686/isa.h
@@ -0,0 +1,24 @@
+/* x86 ISA info. i686 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _ISA_H
+#define _ISA_H
+
+#define MINIMUM_ISA 686
+
+#endif
diff --git a/sysdeps/i386/i686/memcmp.S b/sysdeps/i386/i686/memcmp.S
index 3259076cd7..5d64424a12 100644
--- a/sysdeps/i386/i686/memcmp.S
+++ b/sysdeps/i386/i686/memcmp.S
@@ -1,5 +1,5 @@
/* Compare two memory blocks for differences in the first COUNT bytes.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "asm-syntax.h"
diff --git a/sysdeps/i386/i686/memcpy.S b/sysdeps/i386/i686/memcpy.S
index a0f1f5efe7..3c62c5d8cf 100644
--- a/sysdeps/i386/i686/memcpy.S
+++ b/sysdeps/i386/i686/memcpy.S
@@ -1,7 +1,7 @@
/* Copy memory block and return pointer to beginning of destination block
For Intel 80x86, x>=6.
This file is part of the GNU C Library.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "asm-syntax.h"
diff --git a/sysdeps/i386/i686/memmove.S b/sysdeps/i386/i686/memmove.S
index 014c9f0ec1..563bc71be5 100644
--- a/sysdeps/i386/i686/memmove.S
+++ b/sysdeps/i386/i686/memmove.S
@@ -1,7 +1,7 @@
/* Copy memory block and return pointer to beginning of destination block
For Intel 80x86, x>=6.
This file is part of the GNU C Library.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 2003.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "asm-syntax.h"
diff --git a/sysdeps/i386/i686/mempcpy.S b/sysdeps/i386/i686/mempcpy.S
index 1051ea5cc8..db8bff23eb 100644
--- a/sysdeps/i386/i686/mempcpy.S
+++ b/sysdeps/i386/i686/mempcpy.S
@@ -1,7 +1,7 @@
/* Copy memory block and return pointer to following byte.
For Intel 80x86, x>=6.
This file is part of the GNU C Library.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "asm-syntax.h"
diff --git a/sysdeps/i386/i686/memset.S b/sysdeps/i386/i686/memset.S
index 63826e8828..3d81b0c2e3 100644
--- a/sysdeps/i386/i686/memset.S
+++ b/sysdeps/i386/i686/memset.S
@@ -1,6 +1,6 @@
/* memset/bzero -- set memory area to CH/0
Highly optimized version for ix86, x>=6.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "asm-syntax.h"
diff --git a/sysdeps/i386/i686/memusage.h b/sysdeps/i386/i686/memusage.h
index a359fc6561..17984e99cc 100644
--- a/sysdeps/i386/i686/memusage.h
+++ b/sysdeps/i386/i686/memusage.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define GETSP() ({ register uintptr_t stack_ptr asm ("esp"); stack_ptr; })
#define GETTIME(low,high) asm ("rdtsc" : "=a" (low), "=d" (high))
diff --git a/sysdeps/i386/i686/multiarch/bcopy-ia32.S b/sysdeps/i386/i686/multiarch/bcopy-ia32.S
index 5809cad860..f2771d81fc 100644
--- a/sysdeps/i386/i686/multiarch/bcopy-ia32.S
+++ b/sysdeps/i386/i686/multiarch/bcopy-ia32.S
@@ -1,5 +1,5 @@
/* bcopy optimized for i686.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define bcopy __bcopy_ia32
#include <sysdeps/i386/i686/bcopy.S>
diff --git a/sysdeps/i386/i686/multiarch/bcopy.c b/sysdeps/i386/i686/multiarch/bcopy.c
index e27a02d1a5..361d929929 100644
--- a/sysdeps/i386/i686/multiarch/bcopy.c
+++ b/sysdeps/i386/i686/multiarch/bcopy.c
@@ -1,6 +1,6 @@
/* Multiple versions of bcopy.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/bzero-ia32.S b/sysdeps/i386/i686/multiarch/bzero-ia32.S
index 68ff9e1e90..e0623338ef 100644
--- a/sysdeps/i386/i686/multiarch/bzero-ia32.S
+++ b/sysdeps/i386/i686/multiarch/bzero-ia32.S
@@ -1,5 +1,5 @@
/* bzero optimized for i686.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,10 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
-#include <init-arch.h>
#if IS_IN (libc)
# define __bzero __bzero_ia32
diff --git a/sysdeps/i386/i686/multiarch/bzero.c b/sysdeps/i386/i686/multiarch/bzero.c
index 4f1d739f28..89ba0b5625 100644
--- a/sysdeps/i386/i686/multiarch/bzero.c
+++ b/sysdeps/i386/i686/multiarch/bzero.c
@@ -1,6 +1,6 @@
/* Multiple versions of bzero.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/ifunc-impl-list.c b/sysdeps/i386/i686/multiarch/ifunc-impl-list.c
index a926b04acd..d35560d118 100644
--- a/sysdeps/i386/i686/multiarch/ifunc-impl-list.c
+++ b/sysdeps/i386/i686/multiarch/ifunc-impl-list.c
@@ -1,5 +1,5 @@
/* Enumerate available IFUNC implementations of a function. i686 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <string.h>
diff --git a/sysdeps/i386/i686/multiarch/ifunc-memmove.h b/sysdeps/i386/i686/multiarch/ifunc-memmove.h
index f0e9756178..789368e9ef 100644
--- a/sysdeps/i386/i686/multiarch/ifunc-memmove.h
+++ b/sysdeps/i386/i686/multiarch/ifunc-memmove.h
@@ -1,6 +1,6 @@
/* Common definition for memmove/memmove_chk ifunc selections.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <init-arch.h>
diff --git a/sysdeps/i386/i686/multiarch/ifunc-memset.h b/sysdeps/i386/i686/multiarch/ifunc-memset.h
index e96609439a..382709cf62 100644
--- a/sysdeps/i386/i686/multiarch/ifunc-memset.h
+++ b/sysdeps/i386/i686/multiarch/ifunc-memset.h
@@ -1,6 +1,6 @@
/* Common definition for memset/memset_chk ifunc selections.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <init-arch.h>
diff --git a/sysdeps/i386/i686/multiarch/ifunc-sse2-bsf.h b/sysdeps/i386/i686/multiarch/ifunc-sse2-bsf.h
index f5e7f1b846..05871e20c1 100644
--- a/sysdeps/i386/i686/multiarch/ifunc-sse2-bsf.h
+++ b/sysdeps/i386/i686/multiarch/ifunc-sse2-bsf.h
@@ -1,6 +1,6 @@
/* Common definition for ifunc selections optimized with SSE2 and BSF.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <init-arch.h>
diff --git a/sysdeps/i386/i686/multiarch/ifunc-sse2-ssse3.h b/sysdeps/i386/i686/multiarch/ifunc-sse2-ssse3.h
index a33fe44f50..4bce0b946d 100644
--- a/sysdeps/i386/i686/multiarch/ifunc-sse2-ssse3.h
+++ b/sysdeps/i386/i686/multiarch/ifunc-sse2-ssse3.h
@@ -1,7 +1,7 @@
/* Common definition for ifunc selections optimized with SSE2 and
SSSE3.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <init-arch.h>
diff --git a/sysdeps/i386/i686/multiarch/ifunc-sse2.h b/sysdeps/i386/i686/multiarch/ifunc-sse2.h
index 706c0329c9..4ff5085863 100644
--- a/sysdeps/i386/i686/multiarch/ifunc-sse2.h
+++ b/sysdeps/i386/i686/multiarch/ifunc-sse2.h
@@ -1,6 +1,6 @@
/* Common definition for ifunc selections optimized with SSE2.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <init-arch.h>
diff --git a/sysdeps/i386/i686/multiarch/ifunc-sse4_2.h b/sysdeps/i386/i686/multiarch/ifunc-sse4_2.h
index de7fa2f185..14c35d9974 100644
--- a/sysdeps/i386/i686/multiarch/ifunc-sse4_2.h
+++ b/sysdeps/i386/i686/multiarch/ifunc-sse4_2.h
@@ -1,6 +1,6 @@
/* Common definition for ifunc selections optimized with SSE4_2.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <init-arch.h>
diff --git a/sysdeps/i386/i686/multiarch/ifunc-ssse3-sse4_2.h b/sysdeps/i386/i686/multiarch/ifunc-ssse3-sse4_2.h
index bd772a9298..a9e1a67716 100644
--- a/sysdeps/i386/i686/multiarch/ifunc-ssse3-sse4_2.h
+++ b/sysdeps/i386/i686/multiarch/ifunc-ssse3-sse4_2.h
@@ -1,7 +1,7 @@
/* Common definition for ifunc selections optimized with SSSE3 and
SSE4_2.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <init-arch.h>
diff --git a/sysdeps/i386/i686/multiarch/memchr-ia32.S b/sysdeps/i386/i686/multiarch/memchr-ia32.S
index 9c870e5b20..59b00f5f5d 100644
--- a/sysdeps/i386/i686/multiarch/memchr-ia32.S
+++ b/sysdeps/i386/i686/multiarch/memchr-ia32.S
@@ -1,5 +1,5 @@
/* memchr optimized for i686.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# define __memchr __memchr_ia32
diff --git a/sysdeps/i386/i686/multiarch/memchr-sse2-bsf.S b/sysdeps/i386/i686/multiarch/memchr-sse2-bsf.S
index c8278ba36d..dccff1209f 100644
--- a/sysdeps/i386/i686/multiarch/memchr-sse2-bsf.S
+++ b/sysdeps/i386/i686/multiarch/memchr-sse2-bsf.S
@@ -1,5 +1,5 @@
/* Optimized memchr with sse2
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/memchr-sse2.S b/sysdeps/i386/i686/multiarch/memchr-sse2.S
index 303242ceee..fbd8411fdf 100644
--- a/sysdeps/i386/i686/multiarch/memchr-sse2.S
+++ b/sysdeps/i386/i686/multiarch/memchr-sse2.S
@@ -1,5 +1,5 @@
/* Optimized memchr with sse2 without bsf
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/memchr.c b/sysdeps/i386/i686/multiarch/memchr.c
index 32d10b9ed3..6ede17efcb 100644
--- a/sysdeps/i386/i686/multiarch/memchr.c
+++ b/sysdeps/i386/i686/multiarch/memchr.c
@@ -1,6 +1,6 @@
/* Multiple versions of memchr.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/memcmp-ia32.S b/sysdeps/i386/i686/multiarch/memcmp-ia32.S
index b468350474..64e18456cb 100644
--- a/sysdeps/i386/i686/multiarch/memcmp-ia32.S
+++ b/sysdeps/i386/i686/multiarch/memcmp-ia32.S
@@ -1,5 +1,5 @@
/* memcmp optimized for i686.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# define memcmp __memcmp_ia32
diff --git a/sysdeps/i386/i686/multiarch/memcmp-sse4.S b/sysdeps/i386/i686/multiarch/memcmp-sse4.S
index bc2cb2729d..e6f919d27f 100644
--- a/sysdeps/i386/i686/multiarch/memcmp-sse4.S
+++ b/sysdeps/i386/i686/multiarch/memcmp-sse4.S
@@ -1,5 +1,5 @@
/* memcmp with SSE4.2, wmemcmp with SSE4.2
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/memcmp-ssse3.S b/sysdeps/i386/i686/multiarch/memcmp-ssse3.S
index 31a0b2908e..c0e8b2abff 100644
--- a/sysdeps/i386/i686/multiarch/memcmp-ssse3.S
+++ b/sysdeps/i386/i686/multiarch/memcmp-ssse3.S
@@ -1,5 +1,5 @@
/* memcmp with SSSE3, wmemcmp with SSSE3
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/memcmp.c b/sysdeps/i386/i686/multiarch/memcmp.c
index dd5a93a26c..2140ae6832 100644
--- a/sysdeps/i386/i686/multiarch/memcmp.c
+++ b/sysdeps/i386/i686/multiarch/memcmp.c
@@ -1,6 +1,6 @@
/* Multiple versions of memcmp.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/memcpy-ia32.S b/sysdeps/i386/i686/multiarch/memcpy-ia32.S
index fe772f0dac..67fd24d885 100644
--- a/sysdeps/i386/i686/multiarch/memcpy-ia32.S
+++ b/sysdeps/i386/i686/multiarch/memcpy-ia32.S
@@ -1,5 +1,5 @@
/* memcpy optimized for i686.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if defined SHARED && IS_IN (libc)
# define memcpy __memcpy_ia32
diff --git a/sysdeps/i386/i686/multiarch/memcpy-sse2-unaligned.S b/sysdeps/i386/i686/multiarch/memcpy-sse2-unaligned.S
index 9aa17de99c..d5a22b86a4 100644
--- a/sysdeps/i386/i686/multiarch/memcpy-sse2-unaligned.S
+++ b/sysdeps/i386/i686/multiarch/memcpy-sse2-unaligned.S
@@ -1,5 +1,5 @@
/* memcpy optimized with SSE2 unaligned memory access instructions.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc) \
&& (defined SHARED \
diff --git a/sysdeps/i386/i686/multiarch/memcpy-ssse3-rep.S b/sysdeps/i386/i686/multiarch/memcpy-ssse3-rep.S
index 129310bd8a..8f174c47c6 100644
--- a/sysdeps/i386/i686/multiarch/memcpy-ssse3-rep.S
+++ b/sysdeps/i386/i686/multiarch/memcpy-ssse3-rep.S
@@ -1,5 +1,5 @@
/* memcpy with SSSE3 and REP string.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/i386/i686/multiarch/memcpy-ssse3.S b/sysdeps/i386/i686/multiarch/memcpy-ssse3.S
index 5ead569a5e..3dd42e6ad0 100644
--- a/sysdeps/i386/i686/multiarch/memcpy-ssse3.S
+++ b/sysdeps/i386/i686/multiarch/memcpy-ssse3.S
@@ -1,5 +1,5 @@
/* memcpy with SSSE3
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc) \
&& (defined SHARED \
diff --git a/sysdeps/i386/i686/multiarch/memcpy.c b/sysdeps/i386/i686/multiarch/memcpy.c
index b4a195686d..1919340c54 100644
--- a/sysdeps/i386/i686/multiarch/memcpy.c
+++ b/sysdeps/i386/i686/multiarch/memcpy.c
@@ -1,6 +1,6 @@
/* Multiple versions of memcpy.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in lib and for
DSO. In static binaries we need memcpy before the initialization
diff --git a/sysdeps/i386/i686/multiarch/memcpy_chk-nonshared.S b/sysdeps/i386/i686/multiarch/memcpy_chk-nonshared.S
index 03f5bd95eb..562e38090f 100644
--- a/sysdeps/i386/i686/multiarch/memcpy_chk-nonshared.S
+++ b/sysdeps/i386/i686/multiarch/memcpy_chk-nonshared.S
@@ -1,5 +1,5 @@
/* Non-shared version of memcpy_chk for i686.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc) && !defined SHARED
# include <sysdeps/i386/memcpy_chk.S>
diff --git a/sysdeps/i386/i686/multiarch/memcpy_chk.c b/sysdeps/i386/i686/multiarch/memcpy_chk.c
index c9b901a6dd..695c675101 100644
--- a/sysdeps/i386/i686/multiarch/memcpy_chk.c
+++ b/sysdeps/i386/i686/multiarch/memcpy_chk.c
@@ -1,6 +1,6 @@
/* Multiple versions of __memcpy_chk
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc.so. */
#if IS_IN (libc) && defined SHARED
diff --git a/sysdeps/i386/i686/multiarch/memmove-ia32.S b/sysdeps/i386/i686/multiarch/memmove-ia32.S
index 334daaf897..6a1bad8b1a 100644
--- a/sysdeps/i386/i686/multiarch/memmove-ia32.S
+++ b/sysdeps/i386/i686/multiarch/memmove-ia32.S
@@ -1,5 +1,5 @@
/* memmove optimized for i686.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if defined SHARED && IS_IN (libc)
# define memmove __memmove_ia32
diff --git a/sysdeps/i386/i686/multiarch/memmove.c b/sysdeps/i386/i686/multiarch/memmove.c
index cdce982018..3ee4507eac 100644
--- a/sysdeps/i386/i686/multiarch/memmove.c
+++ b/sysdeps/i386/i686/multiarch/memmove.c
@@ -1,6 +1,6 @@
/* Multiple versions of memmove.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in lib and for
DSO. In static binaries we need memmove before the initialization
diff --git a/sysdeps/i386/i686/multiarch/memmove_chk-nonshared.S b/sysdeps/i386/i686/multiarch/memmove_chk-nonshared.S
index 7212641792..2655359163 100644
--- a/sysdeps/i386/i686/multiarch/memmove_chk-nonshared.S
+++ b/sysdeps/i386/i686/multiarch/memmove_chk-nonshared.S
@@ -1,5 +1,5 @@
/* Non-shared version of memmmove_chk for i686.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc) && !defined SHARED
# include <sysdeps/i386/memmove_chk.S>
diff --git a/sysdeps/i386/i686/multiarch/memmove_chk.c b/sysdeps/i386/i686/multiarch/memmove_chk.c
index 0e9dc7e07f..718394f554 100644
--- a/sysdeps/i386/i686/multiarch/memmove_chk.c
+++ b/sysdeps/i386/i686/multiarch/memmove_chk.c
@@ -1,6 +1,6 @@
/* Multiple versions of __memmove_chk
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc.so. */
#if IS_IN (libc) && defined SHARED
diff --git a/sysdeps/i386/i686/multiarch/mempcpy-ia32.S b/sysdeps/i386/i686/multiarch/mempcpy-ia32.S
index 0de1ae21f5..cfb97ca70c 100644
--- a/sysdeps/i386/i686/multiarch/mempcpy-ia32.S
+++ b/sysdeps/i386/i686/multiarch/mempcpy-ia32.S
@@ -1,5 +1,5 @@
/* mempcpy optimized for i686.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if defined SHARED && IS_IN (libc)
# define __mempcpy __mempcpy_ia32
diff --git a/sysdeps/i386/i686/multiarch/mempcpy.c b/sysdeps/i386/i686/multiarch/mempcpy.c
index 36d9baaa4b..4e23f1b657 100644
--- a/sysdeps/i386/i686/multiarch/mempcpy.c
+++ b/sysdeps/i386/i686/multiarch/mempcpy.c
@@ -1,6 +1,6 @@
/* Multiple versions of mempcpy.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in lib and for
DSO. In static binaries we need memcpy before the initialization
diff --git a/sysdeps/i386/i686/multiarch/mempcpy_chk-nonshared.S b/sysdeps/i386/i686/multiarch/mempcpy_chk-nonshared.S
index 219faebd29..9c130eb2c2 100644
--- a/sysdeps/i386/i686/multiarch/mempcpy_chk-nonshared.S
+++ b/sysdeps/i386/i686/multiarch/mempcpy_chk-nonshared.S
@@ -1,5 +1,5 @@
/* Non-shared version of mempcpy_chk for i686.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc) && !defined SHARED
# include <sysdeps/i386/mempcpy_chk.S>
diff --git a/sysdeps/i386/i686/multiarch/mempcpy_chk.c b/sysdeps/i386/i686/multiarch/mempcpy_chk.c
index 956918b3a1..088a7d7d6f 100644
--- a/sysdeps/i386/i686/multiarch/mempcpy_chk.c
+++ b/sysdeps/i386/i686/multiarch/mempcpy_chk.c
@@ -1,6 +1,6 @@
/* Multiple versions of __mempcpy_chk
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc.so. */
#if IS_IN (libc) && defined SHARED
diff --git a/sysdeps/i386/i686/multiarch/memrchr-sse2-bsf.S b/sysdeps/i386/i686/multiarch/memrchr-sse2-bsf.S
index 4cd00617ff..963db10d5e 100644
--- a/sysdeps/i386/i686/multiarch/memrchr-sse2-bsf.S
+++ b/sysdeps/i386/i686/multiarch/memrchr-sse2-bsf.S
@@ -1,5 +1,5 @@
/* Optimized memrchr with sse2
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/memrchr-sse2.S b/sysdeps/i386/i686/multiarch/memrchr-sse2.S
index 2185945a6c..2c87df5bd7 100644
--- a/sysdeps/i386/i686/multiarch/memrchr-sse2.S
+++ b/sysdeps/i386/i686/multiarch/memrchr-sse2.S
@@ -1,5 +1,5 @@
/* Optimized memrchr with sse2 without bsf
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/memrchr.c b/sysdeps/i386/i686/multiarch/memrchr.c
index 1c0d9caf55..cfb5243afe 100644
--- a/sysdeps/i386/i686/multiarch/memrchr.c
+++ b/sysdeps/i386/i686/multiarch/memrchr.c
@@ -1,6 +1,6 @@
/* Multiple versions of memrchr.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/memset-ia32.S b/sysdeps/i386/i686/multiarch/memset-ia32.S
index c66ccd3f5f..9cfd471df7 100644
--- a/sysdeps/i386/i686/multiarch/memset-ia32.S
+++ b/sysdeps/i386/i686/multiarch/memset-ia32.S
@@ -1,5 +1,5 @@
/* memset optimized for i686.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# define memset __memset_ia32
diff --git a/sysdeps/i386/i686/multiarch/memset-sse2-rep.S b/sysdeps/i386/i686/multiarch/memset-sse2-rep.S
index 8732aac0b9..5ee9897298 100644
--- a/sysdeps/i386/i686/multiarch/memset-sse2-rep.S
+++ b/sysdeps/i386/i686/multiarch/memset-sse2-rep.S
@@ -1,5 +1,5 @@
/* memset with SSE2 and REP string.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/memset-sse2.S b/sysdeps/i386/i686/multiarch/memset-sse2.S
index 5c9eba1e65..4dddcaa93a 100644
--- a/sysdeps/i386/i686/multiarch/memset-sse2.S
+++ b/sysdeps/i386/i686/multiarch/memset-sse2.S
@@ -1,5 +1,5 @@
/* memset with SSE2
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/memset.c b/sysdeps/i386/i686/multiarch/memset.c
index 5c870c9e00..f52846e1a5 100644
--- a/sysdeps/i386/i686/multiarch/memset.c
+++ b/sysdeps/i386/i686/multiarch/memset.c
@@ -1,6 +1,6 @@
/* Multiple versions of memset.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/memset_chk-nonshared.S b/sysdeps/i386/i686/multiarch/memset_chk-nonshared.S
index 00e450ea0d..e7d9c6e249 100644
--- a/sysdeps/i386/i686/multiarch/memset_chk-nonshared.S
+++ b/sysdeps/i386/i686/multiarch/memset_chk-nonshared.S
@@ -1,5 +1,5 @@
/* Non-shared version of memset_chk for i686.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc) && !defined SHARED
# include <sysdeps/i386/memset_chk.S>
diff --git a/sysdeps/i386/i686/multiarch/memset_chk.c b/sysdeps/i386/i686/multiarch/memset_chk.c
index 3bd580895d..31b43a7644 100644
--- a/sysdeps/i386/i686/multiarch/memset_chk.c
+++ b/sysdeps/i386/i686/multiarch/memset_chk.c
@@ -1,6 +1,6 @@
/* Multiple versions of __memset_chk
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc.so. */
#if IS_IN (libc) && defined SHARED
diff --git a/sysdeps/i386/i686/multiarch/rawmemchr-ia32.S b/sysdeps/i386/i686/multiarch/rawmemchr-ia32.S
index de34daf19e..f32095158f 100644
--- a/sysdeps/i386/i686/multiarch/rawmemchr-ia32.S
+++ b/sysdeps/i386/i686/multiarch/rawmemchr-ia32.S
@@ -1,5 +1,5 @@
/* rawmemchr optimized for i686.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# define __rawmemchr __rawmemchr_ia32
diff --git a/sysdeps/i386/i686/multiarch/rawmemchr.c b/sysdeps/i386/i686/multiarch/rawmemchr.c
index 9ac2bcf491..da0fff7a51 100644
--- a/sysdeps/i386/i686/multiarch/rawmemchr.c
+++ b/sysdeps/i386/i686/multiarch/rawmemchr.c
@@ -1,6 +1,6 @@
/* Multiple versions of rawmemchr.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/s_fma-fma.c b/sysdeps/i386/i686/multiarch/s_fma-fma.c
index 92daa48d18..78e09c6d8f 100644
--- a/sysdeps/i386/i686/multiarch/s_fma-fma.c
+++ b/sysdeps/i386/i686/multiarch/s_fma-fma.c
@@ -1,5 +1,5 @@
/* FMA version of fma.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <config.h>
diff --git a/sysdeps/i386/i686/multiarch/s_fma.c b/sysdeps/i386/i686/multiarch/s_fma.c
index 7f39f5fdc9..e4cef58a99 100644
--- a/sysdeps/i386/i686/multiarch/s_fma.c
+++ b/sysdeps/i386/i686/multiarch/s_fma.c
@@ -1,5 +1,5 @@
/* Multiple versions of fma.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <config.h>
diff --git a/sysdeps/i386/i686/multiarch/s_fmaf-fma.c b/sysdeps/i386/i686/multiarch/s_fmaf-fma.c
index f448ef7121..6c2fac6dbd 100644
--- a/sysdeps/i386/i686/multiarch/s_fmaf-fma.c
+++ b/sysdeps/i386/i686/multiarch/s_fmaf-fma.c
@@ -1,5 +1,5 @@
/* FMA version of fmaf.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <config.h>
diff --git a/sysdeps/i386/i686/multiarch/s_fmaf.c b/sysdeps/i386/i686/multiarch/s_fmaf.c
index 1ebb6e975e..ba32766bad 100644
--- a/sysdeps/i386/i686/multiarch/s_fmaf.c
+++ b/sysdeps/i386/i686/multiarch/s_fmaf.c
@@ -1,5 +1,5 @@
/* Multiple versions of fmaf.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <config.h>
diff --git a/sysdeps/i386/i686/multiarch/stpcpy-ia32.S b/sysdeps/i386/i686/multiarch/stpcpy-ia32.S
index 5274471841..98151daddc 100644
--- a/sysdeps/i386/i686/multiarch/stpcpy-ia32.S
+++ b/sysdeps/i386/i686/multiarch/stpcpy-ia32.S
@@ -1,6 +1,6 @@
/* stpcpy optimized for i686.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# define __stpcpy __stpcpy_ia32
diff --git a/sysdeps/i386/i686/multiarch/stpcpy.c b/sysdeps/i386/i686/multiarch/stpcpy.c
index cb0c3fc00d..7e8f4a8b27 100644
--- a/sysdeps/i386/i686/multiarch/stpcpy.c
+++ b/sysdeps/i386/i686/multiarch/stpcpy.c
@@ -1,6 +1,6 @@
/* Multiple versions of stpcpy.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/stpncpy-ia32.S b/sysdeps/i386/i686/multiarch/stpncpy-ia32.S
index f13349b681..011b632143 100644
--- a/sysdeps/i386/i686/multiarch/stpncpy-ia32.S
+++ b/sysdeps/i386/i686/multiarch/stpncpy-ia32.S
@@ -1,6 +1,6 @@
/* stpncpy optimized for i686.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# define __stpncpy __stpncpy_ia32
diff --git a/sysdeps/i386/i686/multiarch/stpncpy.c b/sysdeps/i386/i686/multiarch/stpncpy.c
index 3558e09fd5..6d8770e5db 100644
--- a/sysdeps/i386/i686/multiarch/stpncpy.c
+++ b/sysdeps/i386/i686/multiarch/stpncpy.c
@@ -1,6 +1,6 @@
/* Multiple versions of stpncpy.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/strcasecmp.c b/sysdeps/i386/i686/multiarch/strcasecmp.c
index cccb1ff5ad..d41bfd49ee 100644
--- a/sysdeps/i386/i686/multiarch/strcasecmp.c
+++ b/sysdeps/i386/i686/multiarch/strcasecmp.c
@@ -1,6 +1,6 @@
/* Multiple versions of strcasecmp.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/strcasecmp_l.c b/sysdeps/i386/i686/multiarch/strcasecmp_l.c
index 87eb4960da..4b42b5e10b 100644
--- a/sysdeps/i386/i686/multiarch/strcasecmp_l.c
+++ b/sysdeps/i386/i686/multiarch/strcasecmp_l.c
@@ -1,6 +1,6 @@
/* Multiple versions of strcasecmp_l.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/strcat-ia32.S b/sysdeps/i386/i686/multiarch/strcat-ia32.S
index 40fb703c1e..e6144b3797 100644
--- a/sysdeps/i386/i686/multiarch/strcat-ia32.S
+++ b/sysdeps/i386/i686/multiarch/strcat-ia32.S
@@ -1,6 +1,6 @@
/* strcat optimized for i686.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# define strcat __strcat_ia32
diff --git a/sysdeps/i386/i686/multiarch/strcat-sse2.S b/sysdeps/i386/i686/multiarch/strcat-sse2.S
index 19d5f5f65d..16d598ef8e 100644
--- a/sysdeps/i386/i686/multiarch/strcat-sse2.S
+++ b/sysdeps/i386/i686/multiarch/strcat-sse2.S
@@ -1,5 +1,5 @@
/* strcat with SSE2
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/strcat-ssse3.S b/sysdeps/i386/i686/multiarch/strcat-ssse3.S
index 13ee7abf6d..5863b5de51 100644
--- a/sysdeps/i386/i686/multiarch/strcat-ssse3.S
+++ b/sysdeps/i386/i686/multiarch/strcat-ssse3.S
@@ -1,5 +1,5 @@
/* strcat with SSSE3
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/strcat.c b/sysdeps/i386/i686/multiarch/strcat.c
index 646539f5fc..c4500b0d8d 100644
--- a/sysdeps/i386/i686/multiarch/strcat.c
+++ b/sysdeps/i386/i686/multiarch/strcat.c
@@ -1,6 +1,6 @@
/* Multiple versions of strcat.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/strchr-ia32.S b/sysdeps/i386/i686/multiarch/strchr-ia32.S
index fb6dfe70c9..85e76681a3 100644
--- a/sysdeps/i386/i686/multiarch/strchr-ia32.S
+++ b/sysdeps/i386/i686/multiarch/strchr-ia32.S
@@ -1,5 +1,5 @@
/* strchr optimized for i686.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# define strchr __strchr_ia32
diff --git a/sysdeps/i386/i686/multiarch/strchr-sse2-bsf.S b/sysdeps/i386/i686/multiarch/strchr-sse2-bsf.S
index 20dffe9d09..c29f5efdd9 100644
--- a/sysdeps/i386/i686/multiarch/strchr-sse2-bsf.S
+++ b/sysdeps/i386/i686/multiarch/strchr-sse2-bsf.S
@@ -1,5 +1,5 @@
/* strchr with SSE2 with bsf
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/strchr-sse2.S b/sysdeps/i386/i686/multiarch/strchr-sse2.S
index 3aebeff0a0..ce6bc4f9d6 100644
--- a/sysdeps/i386/i686/multiarch/strchr-sse2.S
+++ b/sysdeps/i386/i686/multiarch/strchr-sse2.S
@@ -1,5 +1,5 @@
/* strchr SSE2 without bsf
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/strchr.c b/sysdeps/i386/i686/multiarch/strchr.c
index f5b462df2e..c766278de8 100644
--- a/sysdeps/i386/i686/multiarch/strchr.c
+++ b/sysdeps/i386/i686/multiarch/strchr.c
@@ -1,6 +1,6 @@
/* Multiple versions of strchr.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/strcmp-ia32.S b/sysdeps/i386/i686/multiarch/strcmp-ia32.S
index 92865591e4..725edeb9ed 100644
--- a/sysdeps/i386/i686/multiarch/strcmp-ia32.S
+++ b/sysdeps/i386/i686/multiarch/strcmp-ia32.S
@@ -1,6 +1,6 @@
/* strcmp optimized for i686.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# define strcmp __strcmp_ia32
diff --git a/sysdeps/i386/i686/multiarch/strcmp-sse4.S b/sysdeps/i386/i686/multiarch/strcmp-sse4.S
index 2d189496b4..36b207b2f7 100644
--- a/sysdeps/i386/i686/multiarch/strcmp-sse4.S
+++ b/sysdeps/i386/i686/multiarch/strcmp-sse4.S
@@ -1,5 +1,5 @@
/* strcmp with SSE4.2
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/strcmp-ssse3.S b/sysdeps/i386/i686/multiarch/strcmp-ssse3.S
index 8847162d6e..136c6d6d4c 100644
--- a/sysdeps/i386/i686/multiarch/strcmp-ssse3.S
+++ b/sysdeps/i386/i686/multiarch/strcmp-ssse3.S
@@ -1,5 +1,5 @@
/* strcmp with SSSE3
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/strcmp.c b/sysdeps/i386/i686/multiarch/strcmp.c
index 3268662518..db678765c1 100644
--- a/sysdeps/i386/i686/multiarch/strcmp.c
+++ b/sysdeps/i386/i686/multiarch/strcmp.c
@@ -1,6 +1,6 @@
/* Multiple versions of strcmp.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/strcpy-ia32.S b/sysdeps/i386/i686/multiarch/strcpy-ia32.S
index 1c50edffc9..47d3385952 100644
--- a/sysdeps/i386/i686/multiarch/strcpy-ia32.S
+++ b/sysdeps/i386/i686/multiarch/strcpy-ia32.S
@@ -1,6 +1,6 @@
/* strcpy optimized for i686.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# define strcpy __strcpy_ia32
diff --git a/sysdeps/i386/i686/multiarch/strcpy-sse2.S b/sysdeps/i386/i686/multiarch/strcpy-sse2.S
index 3fc27d93d4..556d10a9c0 100644
--- a/sysdeps/i386/i686/multiarch/strcpy-sse2.S
+++ b/sysdeps/i386/i686/multiarch/strcpy-sse2.S
@@ -1,5 +1,5 @@
/* strcpy with SSE2 and unaligned load
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/strcpy-ssse3.S b/sysdeps/i386/i686/multiarch/strcpy-ssse3.S
index 5dda85530c..c7d868b652 100644
--- a/sysdeps/i386/i686/multiarch/strcpy-ssse3.S
+++ b/sysdeps/i386/i686/multiarch/strcpy-ssse3.S
@@ -1,5 +1,5 @@
/* strcpy with SSSE3
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/strcpy.c b/sysdeps/i386/i686/multiarch/strcpy.c
index 8c8769b152..0434eca15a 100644
--- a/sysdeps/i386/i686/multiarch/strcpy.c
+++ b/sysdeps/i386/i686/multiarch/strcpy.c
@@ -1,6 +1,6 @@
/* Multiple versions of strcpy.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/strcspn-ia32.S b/sysdeps/i386/i686/multiarch/strcspn-ia32.S
index b31f5943d0..d34fd8f1ba 100644
--- a/sysdeps/i386/i686/multiarch/strcspn-ia32.S
+++ b/sysdeps/i386/i686/multiarch/strcspn-ia32.S
@@ -1,6 +1,6 @@
/* strcspn optimized for i686.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# define strcspn __strcspn_ia32
diff --git a/sysdeps/i386/i686/multiarch/strcspn.c b/sysdeps/i386/i686/multiarch/strcspn.c
index 852773b268..aafd6dd460 100644
--- a/sysdeps/i386/i686/multiarch/strcspn.c
+++ b/sysdeps/i386/i686/multiarch/strcspn.c
@@ -1,6 +1,6 @@
/* Multiple versions of strcspn.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/strlen-ia32.S b/sysdeps/i386/i686/multiarch/strlen-ia32.S
index 1f2ad355e8..5c832dc15f 100644
--- a/sysdeps/i386/i686/multiarch/strlen-ia32.S
+++ b/sysdeps/i386/i686/multiarch/strlen-ia32.S
@@ -1,5 +1,5 @@
/* strlen optimized for i686.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if defined SHARED && IS_IN (libc)
# define strlen __strlen_ia32
diff --git a/sysdeps/i386/i686/multiarch/strlen-sse2-bsf.S b/sysdeps/i386/i686/multiarch/strlen-sse2-bsf.S
index 52ec1fbf72..b2566394a4 100644
--- a/sysdeps/i386/i686/multiarch/strlen-sse2-bsf.S
+++ b/sysdeps/i386/i686/multiarch/strlen-sse2-bsf.S
@@ -1,5 +1,5 @@
/* strlen with SSE2 and BSF
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if defined SHARED && IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/strlen-sse2.S b/sysdeps/i386/i686/multiarch/strlen-sse2.S
index d5adf2810a..3784239215 100644
--- a/sysdeps/i386/i686/multiarch/strlen-sse2.S
+++ b/sysdeps/i386/i686/multiarch/strlen-sse2.S
@@ -1,5 +1,5 @@
/* strlen with SSE2
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* for strlen only SHARED version is optimized, for strcat, strncat, strnlen both STATIC and SHARED are optimized */
diff --git a/sysdeps/i386/i686/multiarch/strlen.c b/sysdeps/i386/i686/multiarch/strlen.c
index 02b97ddbb9..ec72e530a2 100644
--- a/sysdeps/i386/i686/multiarch/strlen.c
+++ b/sysdeps/i386/i686/multiarch/strlen.c
@@ -1,6 +1,6 @@
/* Multiple versions of strlen.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc.so. */
#if defined SHARED && IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/strncase.c b/sysdeps/i386/i686/multiarch/strncase.c
index 12c3b82e12..26c98b97d6 100644
--- a/sysdeps/i386/i686/multiarch/strncase.c
+++ b/sysdeps/i386/i686/multiarch/strncase.c
@@ -1,6 +1,6 @@
/* Multiple versions of strncasecmp.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/strncase_l.c b/sysdeps/i386/i686/multiarch/strncase_l.c
index fa4d47a2c9..54d6caef04 100644
--- a/sysdeps/i386/i686/multiarch/strncase_l.c
+++ b/sysdeps/i386/i686/multiarch/strncase_l.c
@@ -1,6 +1,6 @@
/* Multiple versions of strncasecmp_l.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/strncat.c b/sysdeps/i386/i686/multiarch/strncat.c
index 479e74901b..39fa529b44 100644
--- a/sysdeps/i386/i686/multiarch/strncat.c
+++ b/sysdeps/i386/i686/multiarch/strncat.c
@@ -1,6 +1,6 @@
/* Multiple versions of strcat.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/strncmp.c b/sysdeps/i386/i686/multiarch/strncmp.c
index b75c8dd557..7a1c2af366 100644
--- a/sysdeps/i386/i686/multiarch/strncmp.c
+++ b/sysdeps/i386/i686/multiarch/strncmp.c
@@ -1,6 +1,6 @@
/* Multiple versions of strncmp.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc.so. */
#if defined SHARED && IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/strncpy.c b/sysdeps/i386/i686/multiarch/strncpy.c
index 80165aa957..59658f9fa9 100644
--- a/sysdeps/i386/i686/multiarch/strncpy.c
+++ b/sysdeps/i386/i686/multiarch/strncpy.c
@@ -1,6 +1,6 @@
/* Multiple versions of strncpy.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/strnlen.c b/sysdeps/i386/i686/multiarch/strnlen.c
index 916cd6ebf0..2a47daf98b 100644
--- a/sysdeps/i386/i686/multiarch/strnlen.c
+++ b/sysdeps/i386/i686/multiarch/strnlen.c
@@ -1,6 +1,6 @@
/* Multiple versions of strnlen.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/strpbrk-ia32.S b/sysdeps/i386/i686/multiarch/strpbrk-ia32.S
index 4c85c94f03..5852154548 100644
--- a/sysdeps/i386/i686/multiarch/strpbrk-ia32.S
+++ b/sysdeps/i386/i686/multiarch/strpbrk-ia32.S
@@ -1,6 +1,6 @@
/* strpbrk optimized for i686.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# define strpbrk __strpbrk_ia32
diff --git a/sysdeps/i386/i686/multiarch/strpbrk.c b/sysdeps/i386/i686/multiarch/strpbrk.c
index af609f5d4b..fd24b50840 100644
--- a/sysdeps/i386/i686/multiarch/strpbrk.c
+++ b/sysdeps/i386/i686/multiarch/strpbrk.c
@@ -1,6 +1,6 @@
/* Multiple versions of strpbrk.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/strrchr-ia32.S b/sysdeps/i386/i686/multiarch/strrchr-ia32.S
index ada7248e28..b357e23875 100644
--- a/sysdeps/i386/i686/multiarch/strrchr-ia32.S
+++ b/sysdeps/i386/i686/multiarch/strrchr-ia32.S
@@ -1,5 +1,5 @@
/* strrchr optimized for i686.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# define strrchr __strrchr_ia32
diff --git a/sysdeps/i386/i686/multiarch/strrchr-sse2-bsf.S b/sysdeps/i386/i686/multiarch/strrchr-sse2-bsf.S
index 59e7abc7bd..2baf24ec00 100644
--- a/sysdeps/i386/i686/multiarch/strrchr-sse2-bsf.S
+++ b/sysdeps/i386/i686/multiarch/strrchr-sse2-bsf.S
@@ -1,5 +1,5 @@
/* strrchr with SSE2 with bsf and bsr
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/strrchr-sse2.S b/sysdeps/i386/i686/multiarch/strrchr-sse2.S
index bcb59bdb88..7e36d7ffdf 100644
--- a/sysdeps/i386/i686/multiarch/strrchr-sse2.S
+++ b/sysdeps/i386/i686/multiarch/strrchr-sse2.S
@@ -1,5 +1,5 @@
/* strrchr SSE2 without bsf and bsr
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/strrchr.c b/sysdeps/i386/i686/multiarch/strrchr.c
index 1edb7b90f1..d6146d1e3b 100644
--- a/sysdeps/i386/i686/multiarch/strrchr.c
+++ b/sysdeps/i386/i686/multiarch/strrchr.c
@@ -1,6 +1,6 @@
/* Multiple versions of strrchr.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/strspn-ia32.S b/sysdeps/i386/i686/multiarch/strspn-ia32.S
index f3b60479dd..e133b8c5ff 100644
--- a/sysdeps/i386/i686/multiarch/strspn-ia32.S
+++ b/sysdeps/i386/i686/multiarch/strspn-ia32.S
@@ -1,6 +1,6 @@
/* strspn optimized for i686.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# define strspn __strspn_ia32
diff --git a/sysdeps/i386/i686/multiarch/strspn.c b/sysdeps/i386/i686/multiarch/strspn.c
index 3f3f08d7a3..9c6031b414 100644
--- a/sysdeps/i386/i686/multiarch/strspn.c
+++ b/sysdeps/i386/i686/multiarch/strspn.c
@@ -1,6 +1,6 @@
/* Multiple versions of strspn.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/wcschr-sse2.S b/sysdeps/i386/i686/multiarch/wcschr-sse2.S
index 3b0f813617..c991a98b5a 100644
--- a/sysdeps/i386/i686/multiarch/wcschr-sse2.S
+++ b/sysdeps/i386/i686/multiarch/wcschr-sse2.S
@@ -1,5 +1,5 @@
/* wcschr with SSE2, without using bsf instructions
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# include <sysdep.h>
diff --git a/sysdeps/i386/i686/multiarch/wcschr.c b/sysdeps/i386/i686/multiarch/wcschr.c
index 71446b4cf6..f6864b64bd 100644
--- a/sysdeps/i386/i686/multiarch/wcschr.c
+++ b/sysdeps/i386/i686/multiarch/wcschr.c
@@ -1,6 +1,6 @@
/* Multiple versions of wcschr.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/wcscmp-sse2.S b/sysdeps/i386/i686/multiarch/wcscmp-sse2.S
index 00205b50fe..432a022ca9 100644
--- a/sysdeps/i386/i686/multiarch/wcscmp-sse2.S
+++ b/sysdeps/i386/i686/multiarch/wcscmp-sse2.S
@@ -1,5 +1,5 @@
/* wcscmp with SSE2
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/wcscmp.c b/sysdeps/i386/i686/multiarch/wcscmp.c
index 504806884b..d97a35ca81 100644
--- a/sysdeps/i386/i686/multiarch/wcscmp.c
+++ b/sysdeps/i386/i686/multiarch/wcscmp.c
@@ -1,6 +1,6 @@
/* Multiple versions of wcscmp.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/wcscpy-ssse3.S b/sysdeps/i386/i686/multiarch/wcscpy-ssse3.S
index f01b9f7c82..0e1cdc448e 100644
--- a/sysdeps/i386/i686/multiarch/wcscpy-ssse3.S
+++ b/sysdeps/i386/i686/multiarch/wcscpy-ssse3.S
@@ -1,5 +1,5 @@
/* wcscpy with SSSE3
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# include <sysdep.h>
diff --git a/sysdeps/i386/i686/multiarch/wcscpy.c b/sysdeps/i386/i686/multiarch/wcscpy.c
index be89ab81b0..570fe55755 100644
--- a/sysdeps/i386/i686/multiarch/wcscpy.c
+++ b/sysdeps/i386/i686/multiarch/wcscpy.c
@@ -1,6 +1,6 @@
/* Multiple versions of wcscpy.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/wcslen-sse2.S b/sysdeps/i386/i686/multiarch/wcslen-sse2.S
index d0a0fbb3bf..75f7e61934 100644
--- a/sysdeps/i386/i686/multiarch/wcslen-sse2.S
+++ b/sysdeps/i386/i686/multiarch/wcslen-sse2.S
@@ -1,5 +1,5 @@
/* wcslen with SSE2
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# include <sysdep.h>
diff --git a/sysdeps/i386/i686/multiarch/wcslen.c b/sysdeps/i386/i686/multiarch/wcslen.c
index 9f1b238a44..b0e3eae82a 100644
--- a/sysdeps/i386/i686/multiarch/wcslen.c
+++ b/sysdeps/i386/i686/multiarch/wcslen.c
@@ -1,6 +1,6 @@
/* Multiple versions of wcslen.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/wcsrchr-sse2.S b/sysdeps/i386/i686/multiarch/wcsrchr-sse2.S
index 7dfcd57b6d..2aaa59d48b 100644
--- a/sysdeps/i386/i686/multiarch/wcsrchr-sse2.S
+++ b/sysdeps/i386/i686/multiarch/wcsrchr-sse2.S
@@ -1,5 +1,5 @@
/* wcsrchr with SSE2, without using bsf instructions.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# include <sysdep.h>
diff --git a/sysdeps/i386/i686/multiarch/wcsrchr.c b/sysdeps/i386/i686/multiarch/wcsrchr.c
index 4c39b5d906..8759512bf9 100644
--- a/sysdeps/i386/i686/multiarch/wcsrchr.c
+++ b/sysdeps/i386/i686/multiarch/wcsrchr.c
@@ -1,6 +1,6 @@
/* Multiple versions of wcsrchr.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/i386/i686/multiarch/wmemcmp.c b/sysdeps/i386/i686/multiarch/wmemcmp.c
index 47f133b50e..383b283187 100644
--- a/sysdeps/i386/i686/multiarch/wmemcmp.c
+++ b/sysdeps/i386/i686/multiarch/wmemcmp.c
@@ -1,6 +1,6 @@
/* Multiple versions of wmemcmp.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
@@ -26,5 +26,6 @@
# define SYMBOL_NAME wmemcmp
# include "ifunc-ssse3-sse4_2.h"
-libc_ifunc_redirected (__redirect_wmemcmp, wmemcmp, IFUNC_SELECTOR ());
+libc_ifunc_redirected (__redirect_wmemcmp, __wmemcmp, IFUNC_SELECTOR ());
+weak_alias (__wmemcmp, wmemcmp)
#endif
diff --git a/sysdeps/i386/i686/nptl/tls.h b/sysdeps/i386/i686/nptl/tls.h
index b4945cbb42..bc068c910c 100644
--- a/sysdeps/i386/i686/nptl/tls.h
+++ b/sysdeps/i386/i686/nptl/tls.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _TLS_H
diff --git a/sysdeps/i386/i686/pthread_spin_trylock.S b/sysdeps/i386/i686/pthread_spin_trylock.S
index bb738f18e0..9feb08ea6a 100644
--- a/sysdeps/i386/i686/pthread_spin_trylock.S
+++ b/sysdeps/i386/i686/pthread_spin_trylock.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define HAVE_CMOV 1
#include <sysdeps/i386/pthread_spin_trylock.S>
diff --git a/sysdeps/i386/i686/stack-aliasing.h b/sysdeps/i386/i686/stack-aliasing.h
index 9ccb9d07e9..dad3aad27d 100644
--- a/sysdeps/i386/i686/stack-aliasing.h
+++ b/sysdeps/i386/i686/stack-aliasing.h
@@ -1,5 +1,5 @@
/* Define macros for stack address aliasing issues for NPTL. i686 version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* What is useful is to avoid the 64k aliasing problem which reliably
happens if all stacks use sizes which are a multiple of 64k. Tell
diff --git a/sysdeps/i386/i686/strcmp.S b/sysdeps/i386/i686/strcmp.S
index c98e175dcb..ac05dac3eb 100644
--- a/sysdeps/i386/i686/strcmp.S
+++ b/sysdeps/i386/i686/strcmp.S
@@ -1,5 +1,5 @@
/* Highly optimized version for ix86, x>=6.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "asm-syntax.h"
diff --git a/sysdeps/i386/i686/tst-stack-align.h b/sysdeps/i386/i686/tst-stack-align.h
index 975f26efd9..6bc50f529f 100644
--- a/sysdeps/i386/i686/tst-stack-align.h
+++ b/sysdeps/i386/i686/tst-stack-align.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdint.h>
diff --git a/sysdeps/i386/init-arch.h b/sysdeps/i386/init-arch.h
deleted file mode 100644
index 043089ceb9..0000000000
--- a/sysdeps/i386/init-arch.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#define MINIMUM_ISA 486
-#include <sysdeps/x86/init-arch.h>
diff --git a/sysdeps/i386/isa.h b/sysdeps/i386/isa.h
new file mode 100644
index 0000000000..ee459ff472
--- /dev/null
+++ b/sysdeps/i386/isa.h
@@ -0,0 +1,24 @@
+/* x86 ISA info. i486 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _ISA_H
+#define _ISA_H
+
+#define MINIMUM_ISA 486
+
+#endif
diff --git a/sysdeps/i386/jmpbuf-offsets.h b/sysdeps/i386/jmpbuf-offsets.h
index 7e1aed2224..a61f4d8101 100644
--- a/sysdeps/i386/jmpbuf-offsets.h
+++ b/sysdeps/i386/jmpbuf-offsets.h
@@ -1,5 +1,5 @@
/* Private macros for accessing __jmp_buf contents. i386 version.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define JB_BX 0
#define JB_SI 1
diff --git a/sysdeps/i386/jmpbuf-unwind.h b/sysdeps/i386/jmpbuf-unwind.h
index 141a625c6a..9eacd9e321 100644
--- a/sysdeps/i386/jmpbuf-unwind.h
+++ b/sysdeps/i386/jmpbuf-unwind.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <setjmp.h>
#include <jmpbuf-offsets.h>
diff --git a/sysdeps/i386/ldbl2mpn.c b/sysdeps/i386/ldbl2mpn.c
index 8217f40f26..f3f7af5663 100644
--- a/sysdeps/i386/ldbl2mpn.c
+++ b/sysdeps/i386/ldbl2mpn.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "gmp.h"
#include "gmp-impl.h"
diff --git a/sysdeps/i386/lshift.S b/sysdeps/i386/lshift.S
index 2dce7c09dd..61b364cd13 100644
--- a/sysdeps/i386/lshift.S
+++ b/sysdeps/i386/lshift.S
@@ -1,5 +1,5 @@
/* i80386 __mpn_lshift --
- Copyright (C) 1992-2018 Free Software Foundation, Inc.
+ Copyright (C) 1992-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
The GNU MP Library is free software; you can redistribute it and/or modify
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not,
- see <http://www.gnu.org/licenses/>. */
+ see <https://www.gnu.org/licenses/>. */
#include "sysdep.h"
#include "asm-syntax.h"
diff --git a/sysdeps/i386/machine-gmon.h b/sysdeps/i386/machine-gmon.h
index 2cfdc6ef01..1ca7dec01e 100644
--- a/sysdeps/i386/machine-gmon.h
+++ b/sysdeps/i386/machine-gmon.h
@@ -1,5 +1,5 @@
/* i386-specific implementation of profiling support.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/i386/malloc-alignment.h b/sysdeps/i386/malloc-alignment.h
index b938be023d..ebef75838e 100644
--- a/sysdeps/i386/malloc-alignment.h
+++ b/sysdeps/i386/malloc-alignment.h
@@ -1,5 +1,5 @@
/* Define MALLOC_ALIGNMENT for malloc. i386 version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _I386_MALLOC_ALIGNMENT_H
#define _I386_MALLOC_ALIGNMENT_H
diff --git a/sysdeps/i386/memchr.S b/sysdeps/i386/memchr.S
index ee5960a4cc..ea05c4ef9a 100644
--- a/sysdeps/i386/memchr.S
+++ b/sysdeps/i386/memchr.S
@@ -1,6 +1,6 @@
/* memchr (str, chr, len) -- Return pointer to first occurrence of CHR in STR
less than LEN. For Intel 80x86, x>=3.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>
Optimised a little by Alan Modra <Alan@SPRI.Levels.UniSA.Edu.Au>
@@ -24,7 +24,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "asm-syntax.h"
diff --git a/sysdeps/i386/memcmp.S b/sysdeps/i386/memcmp.S
index b57abacbe0..84d89efb87 100644
--- a/sysdeps/i386/memcmp.S
+++ b/sysdeps/i386/memcmp.S
@@ -1,5 +1,5 @@
/* Compare two memory blocks for differences in the first COUNT bytes.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "asm-syntax.h"
diff --git a/sysdeps/i386/memcopy.h b/sysdeps/i386/memcopy.h
index 12bb39f945..af56c09e87 100644
--- a/sysdeps/i386/memcopy.h
+++ b/sysdeps/i386/memcopy.h
@@ -1,5 +1,5 @@
/* memcopy.h -- definitions for memory copy functions. i386 version.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/generic/memcopy.h>
diff --git a/sysdeps/i386/memcpy.S b/sysdeps/i386/memcpy.S
index 0f8719087c..c91296caf5 100644
--- a/sysdeps/i386/memcpy.S
+++ b/sysdeps/i386/memcpy.S
@@ -1,5 +1,5 @@
/* memcpy with REP MOVSB/STOSB
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "asm-syntax.h"
diff --git a/sysdeps/i386/memcpy_chk.S b/sysdeps/i386/memcpy_chk.S
index 53064e91a2..ba3013a82b 100644
--- a/sysdeps/i386/memcpy_chk.S
+++ b/sysdeps/i386/memcpy_chk.S
@@ -1,5 +1,5 @@
/* Checking memcpy for i386.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef SHARED
# include <sysdep.h>
diff --git a/sysdeps/i386/memmove_chk.S b/sysdeps/i386/memmove_chk.S
index 7f64fa8944..8fffae78dc 100644
--- a/sysdeps/i386/memmove_chk.S
+++ b/sysdeps/i386/memmove_chk.S
@@ -1,5 +1,5 @@
/* Checking memmove for i386
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef SHARED
# include <sysdep.h>
diff --git a/sysdeps/i386/mempcpy_chk.S b/sysdeps/i386/mempcpy_chk.S
index 7674f9cb19..ff0738d1b4 100644
--- a/sysdeps/i386/mempcpy_chk.S
+++ b/sysdeps/i386/mempcpy_chk.S
@@ -1,5 +1,5 @@
/* Checking mempcpy for i386
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef SHARED
# include <sysdep.h>
diff --git a/sysdeps/i386/memset.S b/sysdeps/i386/memset.S
index 13fdee1d7e..dbeda2af6f 100644
--- a/sysdeps/i386/memset.S
+++ b/sysdeps/i386/memset.S
@@ -1,5 +1,5 @@
/* memset with REP MOVSB/STOSB
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/i386/memset_chk.S b/sysdeps/i386/memset_chk.S
index d9cf5c04e3..57bc9b08bd 100644
--- a/sysdeps/i386/memset_chk.S
+++ b/sysdeps/i386/memset_chk.S
@@ -1,5 +1,5 @@
/* Checking memset for i386.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef SHARED
# include <sysdep.h>
diff --git a/sysdeps/i386/memusage.h b/sysdeps/i386/memusage.h
index dd31dca423..86104a5c60 100644
--- a/sysdeps/i386/memusage.h
+++ b/sysdeps/i386/memusage.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define GETSP() ({ register uintptr_t stack_ptr asm ("esp"); stack_ptr; })
diff --git a/sysdeps/i386/mul_1.S b/sysdeps/i386/mul_1.S
index 408bcdbaf9..f5a0c2a80c 100644
--- a/sysdeps/i386/mul_1.S
+++ b/sysdeps/i386/mul_1.S
@@ -1,6 +1,6 @@
/* i80386 __mpn_mul_1 -- Multiply a limb vector with a limb and store
the result in a second limb vector.
- Copyright (C) 1992-2018 Free Software Foundation, Inc.
+ Copyright (C) 1992-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
The GNU MP Library is free software; you can redistribute it and/or modify
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not,
- see <http://www.gnu.org/licenses/>. */
+ see <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "asm-syntax.h"
diff --git a/sysdeps/i386/nptl/Makefile b/sysdeps/i386/nptl/Makefile
index 73024033ee..36e6089513 100644
--- a/sysdeps/i386/nptl/Makefile
+++ b/sysdeps/i386/nptl/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2018 Free Software Foundation, Inc.
+# Copyright (C) 2002-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
ifeq ($(subdir),csu)
gen-as-const-headers += tcb-offsets.sym
diff --git a/sysdeps/i386/nptl/pthread-offsets.h b/sysdeps/i386/nptl/pthread-offsets.h
index 9617354dc7..7940d1fd88 100644
--- a/sysdeps/i386/nptl/pthread-offsets.h
+++ b/sysdeps/i386/nptl/pthread-offsets.h
@@ -1,5 +1,3 @@
-#define __PTHREAD_MUTEX_NUSERS_OFFSET 16
#define __PTHREAD_MUTEX_KIND_OFFSET 12
-#define __PTHREAD_MUTEX_SPINS_OFFSET 20
-#define __PTHREAD_MUTEX_ELISION_OFFSET 22
-#define __PTHREAD_MUTEX_LIST_OFFSET 20
+
+#define __PTHREAD_RWLOCK_FLAGS_OFFSET 24
diff --git a/sysdeps/i386/nptl/pthread_spin_init.c b/sysdeps/i386/nptl/pthread_spin_init.c
index 1c49df4f03..1ba6137489 100644
--- a/sysdeps/i386/nptl/pthread_spin_init.c
+++ b/sysdeps/i386/nptl/pthread_spin_init.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Not needed. pthread_spin_init is an alias for pthread_spin_unlock. */
diff --git a/sysdeps/i386/nptl/pthread_spin_lock.S b/sysdeps/i386/nptl/pthread_spin_lock.S
index 1980fec75f..62c72b9063 100644
--- a/sysdeps/i386/nptl/pthread_spin_lock.S
+++ b/sysdeps/i386/nptl/pthread_spin_lock.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <lowlevellock.h>
diff --git a/sysdeps/i386/nptl/pthread_spin_unlock.S b/sysdeps/i386/nptl/pthread_spin_unlock.S
index 2e7108604c..d190ca562d 100644
--- a/sysdeps/i386/nptl/pthread_spin_unlock.S
+++ b/sysdeps/i386/nptl/pthread_spin_unlock.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
.globl pthread_spin_unlock
.type pthread_spin_unlock,@function
diff --git a/sysdeps/i386/nptl/pthreaddef.h b/sysdeps/i386/nptl/pthreaddef.h
index deacd92edf..7da8912f81 100644
--- a/sysdeps/i386/nptl/pthreaddef.h
+++ b/sysdeps/i386/nptl/pthreaddef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Default stack size. */
#define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024)
diff --git a/sysdeps/i386/nptl/tls.h b/sysdeps/i386/nptl/tls.h
index 12285d3217..ea015295fb 100644
--- a/sysdeps/i386/nptl/tls.h
+++ b/sysdeps/i386/nptl/tls.h
@@ -1,5 +1,5 @@
/* Definition for thread-local data handling. nptl/i386 version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _TLS_H
#define _TLS_H 1
@@ -362,43 +362,6 @@ tls_fill_user_desc (union user_desc_init *desc,
}})
-/* Atomic compare and exchange on TLS, returning old value. */
-#define THREAD_ATOMIC_CMPXCHG_VAL(descr, member, newval, oldval) \
- ({ __typeof (descr->member) __ret; \
- __typeof (oldval) __old = (oldval); \
- if (sizeof (descr->member) == 4) \
- asm volatile (LOCK_PREFIX "cmpxchgl %2, %%gs:%P3" \
- : "=a" (__ret) \
- : "0" (__old), "r" (newval), \
- "i" (offsetof (struct pthread, member))); \
- else \
- /* Not necessary for other sizes in the moment. */ \
- abort (); \
- __ret; })
-
-
-/* Atomic logical and. */
-#define THREAD_ATOMIC_AND(descr, member, val) \
- (void) ({ if (sizeof ((descr)->member) == 4) \
- asm volatile (LOCK_PREFIX "andl %1, %%gs:%P0" \
- :: "i" (offsetof (struct pthread, member)), \
- "ir" (val)); \
- else \
- /* Not necessary for other sizes in the moment. */ \
- abort (); })
-
-
-/* Atomic set bit. */
-#define THREAD_ATOMIC_BIT_SET(descr, member, bit) \
- (void) ({ if (sizeof ((descr)->member) == 4) \
- asm volatile (LOCK_PREFIX "orl %1, %%gs:%P0" \
- :: "i" (offsetof (struct pthread, member)), \
- "ir" (1 << (bit))); \
- else \
- /* Not necessary for other sizes in the moment. */ \
- abort (); })
-
-
/* Set the stack guard field in TCB head. */
#define THREAD_SET_STACK_GUARD(value) \
THREAD_SETMEM (THREAD_SELF, header.stack_guard, value)
diff --git a/sysdeps/i386/pthread_spin_trylock.S b/sysdeps/i386/pthread_spin_trylock.S
index 686dd8cd80..0ec09d8b64 100644
--- a/sysdeps/i386/pthread_spin_trylock.S
+++ b/sysdeps/i386/pthread_spin_trylock.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread-errnos.h>
diff --git a/sysdeps/i386/rawmemchr.S b/sysdeps/i386/rawmemchr.S
index 89a0c18529..d2c7ff291d 100644
--- a/sysdeps/i386/rawmemchr.S
+++ b/sysdeps/i386/rawmemchr.S
@@ -1,6 +1,6 @@
/* rawmemchr (str, ch) -- Return pointer to first occurrence of CH in STR.
For Intel 80x86, x>=3.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>
Optimised a little by Alan Modra <Alan@SPRI.Levels.UniSA.Edu.Au>
@@ -24,7 +24,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "asm-syntax.h"
diff --git a/sysdeps/i386/rshift.S b/sysdeps/i386/rshift.S
index 532a7f5f70..48bedd26a9 100644
--- a/sysdeps/i386/rshift.S
+++ b/sysdeps/i386/rshift.S
@@ -1,5 +1,5 @@
/* i80386 __mpn_rshift --
- Copyright (C) 1992-2018 Free Software Foundation, Inc.
+ Copyright (C) 1992-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
The GNU MP Library is free software; you can redistribute it and/or modify
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not,
- see <http://www.gnu.org/licenses/>. */
+ see <https://www.gnu.org/licenses/>. */
#include "sysdep.h"
#include "asm-syntax.h"
diff --git a/sysdeps/i386/setfpucw.c b/sysdeps/i386/setfpucw.c
index 931302bcd0..05d43b8f13 100644
--- a/sysdeps/i386/setfpucw.c
+++ b/sysdeps/i386/setfpucw.c
@@ -1,5 +1,5 @@
/* Set the FPU control word for x86.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <fpu_control.h>
diff --git a/sysdeps/i386/setjmp.S b/sysdeps/i386/setjmp.S
index 889337b8ae..0f2d916ecb 100644
--- a/sysdeps/i386/setjmp.S
+++ b/sysdeps/i386/setjmp.S
@@ -1,5 +1,5 @@
/* setjmp for i386.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <jmpbuf-offsets.h>
diff --git a/sysdeps/i386/stackinfo.h b/sysdeps/i386/stackinfo.h
index c6d97c0fd4..806ca60587 100644
--- a/sysdeps/i386/stackinfo.h
+++ b/sysdeps/i386/stackinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file contains a bit of information about the stack allocation
of the processor. */
diff --git a/sysdeps/i386/start.S b/sysdeps/i386/start.S
index 91035fa83f..4e66d8e814 100644
--- a/sysdeps/i386/start.S
+++ b/sysdeps/i386/start.S
@@ -1,5 +1,5 @@
/* Startup code compliant to the ELF i386 ABI.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This is the canonical entry point, usually the first thing in the text
segment. The SVR4/i386 ABI (pages 3-31, 3-32) says that when the entry
@@ -52,10 +52,11 @@
NULL
*/
- .text
- .globl _start
- .type _start,@function
-_start:
+#include <sysdep.h>
+
+ENTRY (_start)
+ /* Clearing frame pointer is insufficient, use CFI. */
+ cfi_undefined (eip)
/* Clear the frame pointer. The ABI suggests this be done, to mark
the outermost frame obviously. */
xorl %ebp, %ebp
@@ -131,6 +132,7 @@ _start:
1: movl (%esp), %ebx
ret
#endif
+END (_start)
/* To fulfill the System V/i386 ABI we need this symbol. Yuck, it's so
meaningless since we don't support machines < 80386. */
diff --git a/sysdeps/i386/stpcpy.S b/sysdeps/i386/stpcpy.S
index 82ca409c1f..709df8b76d 100644
--- a/sysdeps/i386/stpcpy.S
+++ b/sysdeps/i386/stpcpy.S
@@ -1,6 +1,6 @@
/* Copy SRC to DEST returning the address of the terminating '\0' in DEST.
For Intel 80x86, x>=3.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper (drepper@gnu.ai.mit.edu).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This function is defined neither in ANSI nor POSIX standards but is
also not invented here. */
diff --git a/sysdeps/i386/stpncpy.S b/sysdeps/i386/stpncpy.S
index f81c8a2dbd..7613e8fd99 100644
--- a/sysdeps/i386/stpncpy.S
+++ b/sysdeps/i386/stpncpy.S
@@ -1,7 +1,7 @@
/* copy no more than N bytes from SRC to DEST, returning the address of
the terminating '\0' in DEST.
For Intel 80x86, x>=3.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>
Some bug fixes by Alan Modra <Alan@SPRI.Levels.UniSA.Edu.Au>
@@ -21,7 +21,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "asm-syntax.h"
diff --git a/sysdeps/i386/strcat.S b/sysdeps/i386/strcat.S
index 059f74259e..248f2799bb 100644
--- a/sysdeps/i386/strcat.S
+++ b/sysdeps/i386/strcat.S
@@ -1,6 +1,6 @@
/* strcat(dest, src) -- Append SRC on the end of DEST.
For Intel 80x86, x>=4.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@ipd.info.uni-karlsruhe.de>.
Optimised a little by Alan Modra <Alan@SPRI.Levels.UniSA.Edu.Au>
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "asm-syntax.h"
diff --git a/sysdeps/i386/strchr.S b/sysdeps/i386/strchr.S
index ce0ece1106..d01b6337a3 100644
--- a/sysdeps/i386/strchr.S
+++ b/sysdeps/i386/strchr.S
@@ -1,6 +1,6 @@
/* strchr (str, ch) -- Return pointer to first occurrence of CH in STR.
For Intel 80x86, x>=3.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>
Some optimisations by Alan Modra <Alan@SPRI.Levels.UniSA.Edu.Au>
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "asm-syntax.h"
diff --git a/sysdeps/i386/strchrnul.S b/sysdeps/i386/strchrnul.S
index 80a4d2a9ab..7eb6c749d9 100644
--- a/sysdeps/i386/strchrnul.S
+++ b/sysdeps/i386/strchrnul.S
@@ -1,7 +1,7 @@
/* strchrnul (str, chr) -- Return pointer to first occurrence of CHR in STR
or the final NUL byte.
For Intel 80x86, x>=3.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>
Some optimisations by Alan Modra <Alan@SPRI.Levels.UniSA.Edu.Au>
@@ -18,7 +18,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "asm-syntax.h"
diff --git a/sysdeps/i386/strcspn.S b/sysdeps/i386/strcspn.S
index 4125d1cfb7..34f8c3333f 100644
--- a/sysdeps/i386/strcspn.S
+++ b/sysdeps/i386/strcspn.S
@@ -1,7 +1,7 @@
/* strcspn (str, ss) -- Return the length of the initial segment of STR
which contains no characters from SS.
For Intel 80x86, x>=3.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>
Bug fixes by Alan Modra <Alan@SPRI.Levels.UniSA.Edu.Au>
@@ -18,7 +18,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "asm-syntax.h"
diff --git a/sysdeps/i386/string-inlines.c b/sysdeps/i386/string-inlines.c
index 2bfbd7fc7d..4c1ef0fcf5 100644
--- a/sysdeps/i386/string-inlines.c
+++ b/sysdeps/i386/string-inlines.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string/string-inlines.c>
diff --git a/sysdeps/i386/strlen.S b/sysdeps/i386/strlen.S
index 76e28f7375..112517c614 100644
--- a/sysdeps/i386/strlen.S
+++ b/sysdeps/i386/strlen.S
@@ -1,6 +1,6 @@
/* strlen(str) -- determine the length of the string STR.
Optimized for Intel 80x86, x>=4.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 Free Software Foundation, Inc.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "asm-syntax.h"
diff --git a/sysdeps/i386/strlen.c b/sysdeps/i386/strlen.c
index bcd1b7dae3..02cbf72ef3 100644
--- a/sysdeps/i386/strlen.c
+++ b/sysdeps/i386/strlen.c
@@ -1,5 +1,5 @@
/* Determine the length of a string. For Intel 80x86, x>=3.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/sysdeps/i386/strpbrk.S b/sysdeps/i386/strpbrk.S
index 05890a3546..5c10010e02 100644
--- a/sysdeps/i386/strpbrk.S
+++ b/sysdeps/i386/strpbrk.S
@@ -1,7 +1,7 @@
/* strcspn (str, ss) -- Return the length of the initial segement of STR
which contains no characters from SS.
For Intel 80x86, x>=3.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-2019 Free Software Foundation, Inc.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>
Bug fixes by Alan Modra <Alan@SPRI.Levels.UniSA.Edu.Au>
This file is part of the GNU C Library.
@@ -18,7 +18,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "asm-syntax.h"
diff --git a/sysdeps/i386/strrchr.S b/sysdeps/i386/strrchr.S
index 6f4b507f19..a18023ec60 100644
--- a/sysdeps/i386/strrchr.S
+++ b/sysdeps/i386/strrchr.S
@@ -1,6 +1,6 @@
/* strrchr (str, ch) -- Return pointer to last occurrence of CH in STR.
For Intel 80x86, x>=3.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>
Some optimisations by Alan Modra <Alan@SPRI.Levels.UniSA.Edu.Au>
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "asm-syntax.h"
diff --git a/sysdeps/i386/strspn.S b/sysdeps/i386/strspn.S
index d7eb7e8b93..887d3adab2 100644
--- a/sysdeps/i386/strspn.S
+++ b/sysdeps/i386/strspn.S
@@ -1,7 +1,7 @@
/* strcspn (str, ss) -- Return the length of the initial segment of STR
which contains only characters from SS.
For Intel 80x86, x>=3.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>
Bug fixes by Alan Modra <Alan@SPRI.Levels.UniSA.Edu.Au>
@@ -18,7 +18,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "asm-syntax.h"
diff --git a/sysdeps/i386/sub_n.S b/sysdeps/i386/sub_n.S
index ada0cf5ec9..1562cc00fd 100644
--- a/sysdeps/i386/sub_n.S
+++ b/sysdeps/i386/sub_n.S
@@ -1,6 +1,6 @@
/* i80386 __mpn_sub_n -- Add two limb vectors of the same length > 0 and store
sum in a third limb vector.
- Copyright (C) 1992-2018 Free Software Foundation, Inc.
+ Copyright (C) 1992-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
The GNU MP Library is free software; you can redistribute it and/or modify
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not,
- see <http://www.gnu.org/licenses/>. */
+ see <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "asm-syntax.h"
diff --git a/sysdeps/i386/submul_1.S b/sysdeps/i386/submul_1.S
index 17fbdcf539..dcd46988d6 100644
--- a/sysdeps/i386/submul_1.S
+++ b/sysdeps/i386/submul_1.S
@@ -1,6 +1,6 @@
/* i80386 __mpn_submul_1 -- Multiply a limb vector with a limb and subtract
the result from a second limb vector.
- Copyright (C) 1992-2018 Free Software Foundation, Inc.
+ Copyright (C) 1992-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
The GNU MP Library is free software; you can redistribute it and/or modify
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not,
- see <http://www.gnu.org/licenses/>. */
+ see <https://www.gnu.org/licenses/>. */
#include "sysdep.h"
#include "asm-syntax.h"
diff --git a/sysdeps/i386/symbol-hacks.h b/sysdeps/i386/symbol-hacks.h
index c100fb902e..0398dad228 100644
--- a/sysdeps/i386/symbol-hacks.h
+++ b/sysdeps/i386/symbol-hacks.h
@@ -1,5 +1,5 @@
/* Hacks needed for symbol manipulation. i386 version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/wordsize-32/divdi3-symbol-hacks.h>
diff --git a/sysdeps/i386/sys/ucontext.h b/sysdeps/i386/sys/ucontext.h
index 23cee16e80..958e4b242b 100644
--- a/sysdeps/i386/sys/ucontext.h
+++ b/sysdeps/i386/sys/ucontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* System V/i386 ABI compliant context switching support. */
diff --git a/sysdeps/i386/sysdep.h b/sysdeps/i386/sysdep.h
index 893a082602..9ef940abce 100644
--- a/sysdeps/i386/sysdep.h
+++ b/sysdeps/i386/sysdep.h
@@ -1,5 +1,5 @@
/* Assembler macros for i386.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/x86/sysdep.h>
diff --git a/sysdeps/i386/tlsdesc.c b/sysdeps/i386/tlsdesc.c
index 82fa8a1d35..d044911c90 100644
--- a/sysdeps/i386/tlsdesc.c
+++ b/sysdeps/i386/tlsdesc.c
@@ -1,5 +1,5 @@
/* Manage TLS descriptors. i386 version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <link.h>
#include <ldsodefs.h>
diff --git a/sysdeps/i386/tst-audit.h b/sysdeps/i386/tst-audit.h
index d1b3187fb9..9e7628aba2 100644
--- a/sysdeps/i386/tst-audit.h
+++ b/sysdeps/i386/tst-audit.h
@@ -1,6 +1,6 @@
/* Definitions for testing PLT entry/exit auditing. i386 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define pltenter la_i86_gnu_pltenter
#define pltexit la_i86_gnu_pltexit
diff --git a/sysdeps/i386/tst-audit3.c b/sysdeps/i386/tst-audit3.c
index ef5e92b12a..b3a0ce956e 100644
--- a/sysdeps/i386/tst-audit3.c
+++ b/sysdeps/i386/tst-audit3.c
@@ -1,5 +1,5 @@
/* Test case for i386 preserved registers in dynamic linker.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include "tst-audit3.h"
diff --git a/sysdeps/i386/tst-audit3.h b/sysdeps/i386/tst-audit3.h
index 99a42091f8..48d6a3201e 100644
--- a/sysdeps/i386/tst-audit3.h
+++ b/sysdeps/i386/tst-audit3.h
@@ -1,5 +1,5 @@
/* Test case for i386 preserved registers in dynamic linker.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
extern long long audit1_test (int, int, int) __attribute__ ((regparm(3)));
extern float audit2_test (int, int, int) __attribute__ ((regparm(3)));
diff --git a/sysdeps/i386/tst-auditmod3a.c b/sysdeps/i386/tst-auditmod3a.c
index 7810649757..f96aa8ed7f 100644
--- a/sysdeps/i386/tst-auditmod3a.c
+++ b/sysdeps/i386/tst-auditmod3a.c
@@ -1,5 +1,5 @@
/* Test case for i386 preserved registers in dynamic linker.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include "tst-audit3.h"
diff --git a/sysdeps/i386/tst-auditmod3b.c b/sysdeps/i386/tst-auditmod3b.c
index 9eefe7678d..bda72dce8c 100644
--- a/sysdeps/i386/tst-auditmod3b.c
+++ b/sysdeps/i386/tst-auditmod3b.c
@@ -1,5 +1,5 @@
/* Test case for i386 preserved registers in dynamic linker.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stdint.h>
diff --git a/sysdeps/i386/tst-ld-sse-use.sh b/sysdeps/i386/tst-ld-sse-use.sh
index 208a42c71a..db1d786a79 100755
--- a/sysdeps/i386/tst-ld-sse-use.sh
+++ b/sysdeps/i386/tst-ld-sse-use.sh
@@ -1,6 +1,6 @@
#!/bin/bash
# Make sure no code in ld.so uses xmm/ymm/zmm registers on i386.
-# Copyright (C) 2009-2018 Free Software Foundation, Inc.
+# Copyright (C) 2009-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
@@ -15,7 +15,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
set -e
diff --git a/sysdeps/i386/tst-stack-align.h b/sysdeps/i386/tst-stack-align.h
index 394ff7735a..fa9203f590 100644
--- a/sysdeps/i386/tst-stack-align.h
+++ b/sysdeps/i386/tst-stack-align.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdint.h>
diff --git a/sysdeps/ia64/_mcount.S b/sysdeps/ia64/_mcount.S
index c757ae7d32..b2f58934e4 100644
--- a/sysdeps/ia64/_mcount.S
+++ b/sysdeps/ia64/_mcount.S
@@ -1,5 +1,5 @@
/* Machine-specific calling sequence for `mcount' profiling function. ia64
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by David Mosberger <davidm@hpl.hp.com>
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Assembly stub to invoke _mcount(). Compiler generated code calls
this stub before executing a function's prologue and without saving
diff --git a/sysdeps/ia64/atomic-machine.h b/sysdeps/ia64/atomic-machine.h
index 8297571345..abd8ef599a 100644
--- a/sysdeps/ia64/atomic-machine.h
+++ b/sysdeps/ia64/atomic-machine.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
#include <ia64intrin.h>
diff --git a/sysdeps/ia64/bits/endianness.h b/sysdeps/ia64/bits/endianness.h
new file mode 100644
index 0000000000..70c211e569
--- /dev/null
+++ b/sysdeps/ia64/bits/endianness.h
@@ -0,0 +1,11 @@
+#ifndef _BITS_ENDIANNESS_H
+#define _BITS_ENDIANNESS_H 1
+
+#ifndef _BITS_ENDIAN_H
+# error "Never use <bits/endianness.h> directly; include <endian.h> instead."
+#endif
+
+/* IA64 is little-endian. */
+#define __BYTE_ORDER __LITTLE_ENDIAN
+
+#endif /* bits/endianness.h */
diff --git a/sysdeps/ia64/bits/fenv.h b/sysdeps/ia64/bits/fenv.h
index 6e4f937981..a5ec51ba6f 100644
--- a/sysdeps/ia64/bits/fenv.h
+++ b/sysdeps/ia64/bits/fenv.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FENV_H
# error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
@@ -95,7 +95,7 @@ typedef unsigned long int fenv_t;
# define FE_NONIEEE_ENV ((const fenv_t *) 0xc009a04d0270037fUL)
#endif
-#if __GLIBC_USE (IEC_60559_BFP_EXT)
+#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
/* Type representing floating-point control modes. */
typedef unsigned long int femode_t;
diff --git a/sysdeps/ia64/bits/floatn.h b/sysdeps/ia64/bits/floatn.h
index 633ee10d65..8f0e9cc94c 100644
--- a/sysdeps/ia64/bits/floatn.h
+++ b/sysdeps/ia64/bits/floatn.h
@@ -1,5 +1,5 @@
/* Macros to control TS 18661-3 glibc features on ia64.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_FLOATN_H
#define _BITS_FLOATN_H
diff --git a/sysdeps/ia64/bits/fp-logb.h b/sysdeps/ia64/bits/fp-logb.h
index e4cda10f44..cf6f497665 100644
--- a/sysdeps/ia64/bits/fp-logb.h
+++ b/sysdeps/ia64/bits/fp-logb.h
@@ -1,5 +1,5 @@
/* Define __FP_LOGB0_IS_MIN and __FP_LOGBNAN_IS_MIN. IA64 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MATH_H
# error "Never use <bits/fp-logb.h> directly; include <math.h> instead."
diff --git a/sysdeps/ia64/bits/link.h b/sysdeps/ia64/bits/link.h
index abe558f350..edc78a3f57 100644
--- a/sysdeps/ia64/bits/link.h
+++ b/sysdeps/ia64/bits/link.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LINK_H
# error "Never include <bits/link.h> directly; use <link.h> instead."
diff --git a/sysdeps/ia64/bits/xtitypes.h b/sysdeps/ia64/bits/xtitypes.h
deleted file mode 100644
index 60ba7aff54..0000000000
--- a/sysdeps/ia64/bits/xtitypes.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* bits/xtitypes.h -- Define some types used by <bits/stropts.h>. IA64
- Copyright (C) 2002-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _STROPTS_H
-# error "Never include <bits/xtitypes.h> directly; use <stropts.h> instead."
-#endif
-
-#ifndef _BITS_XTITYPES_H
-#define _BITS_XTITYPES_H 1
-
-#include <bits/types.h>
-
-/* This type is used by some structs in <bits/stropts.h>. */
-typedef __S32_TYPE __t_scalar_t;
-typedef __U32_TYPE __t_uscalar_t;
-
-
-#endif /* bits/xtitypes.h */
diff --git a/sysdeps/ia64/bzero.S b/sysdeps/ia64/bzero.S
index 96329eea9e..0c588514b1 100644
--- a/sysdeps/ia64/bzero.S
+++ b/sysdeps/ia64/bzero.S
@@ -1,6 +1,6 @@
/* Optimized version of the standard bzero() function.
This file is part of the GNU C Library.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Dan Pop for Itanium <Dan.Pop@cern.ch>.
Rewritten for McKinley by Sverre Jarp, HP Labs/CERN <Sverre.Jarp@cern.ch>
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Return: dest
diff --git a/sysdeps/ia64/crti.S b/sysdeps/ia64/crti.S
index c46e297814..b452d7c98d 100644
--- a/sysdeps/ia64/crti.S
+++ b/sysdeps/ia64/crti.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for IA64.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* crti.S puts a function prologue at the beginning of the .init and
.fini sections and defines global symbols for those addresses, so
diff --git a/sysdeps/ia64/crtn.S b/sysdeps/ia64/crtn.S
index bc41a94583..360fd15790 100644
--- a/sysdeps/ia64/crtn.S
+++ b/sysdeps/ia64/crtn.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for ARM.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#undef ret
diff --git a/sysdeps/ia64/dl-dtprocnum.h b/sysdeps/ia64/dl-dtprocnum.h
index a02a6e134f..c4b3f77869 100644
--- a/sysdeps/ia64/dl-dtprocnum.h
+++ b/sysdeps/ia64/dl-dtprocnum.h
@@ -1,5 +1,5 @@
/* Configuration of lookup functions. IA-64 version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Number of extra dynamic section entries for this architecture. By
default there are none. */
diff --git a/sysdeps/ia64/dl-fptr.h b/sysdeps/ia64/dl-fptr.h
index 26617b7a7b..4d67660bbe 100644
--- a/sysdeps/ia64/dl-fptr.h
+++ b/sysdeps/ia64/dl-fptr.h
@@ -1,5 +1,5 @@
/* Function descriptors. IA64 version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef dl_ia64_fptr_h
#define dl_ia64_fptr_h 1
diff --git a/sysdeps/ia64/dl-lookupcfg.h b/sysdeps/ia64/dl-lookupcfg.h
index 48f91202c4..d5216f1a13 100644
--- a/sysdeps/ia64/dl-lookupcfg.h
+++ b/sysdeps/ia64/dl-lookupcfg.h
@@ -1,5 +1,5 @@
/* Configuration of lookup functions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define ELF_FUNCTION_PTR_IS_SPECIAL
#define DL_UNMAP_IS_SPECIAL
diff --git a/sysdeps/ia64/dl-machine.h b/sysdeps/ia64/dl-machine.h
index 61d7bb5795..0c84329444 100644
--- a/sysdeps/ia64/dl-machine.h
+++ b/sysdeps/ia64/dl-machine.h
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation inline functions. IA-64 version.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef dl_machine_h
#define dl_machine_h 1
diff --git a/sysdeps/ia64/dl-sysdep.h b/sysdeps/ia64/dl-sysdep.h
index 0b571a5cc7..69cd186ff9 100644
--- a/sysdeps/ia64/dl-sysdep.h
+++ b/sysdeps/ia64/dl-sysdep.h
@@ -1,5 +1,5 @@
/* System-specific settings for dynamic linker code. IA-64 version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include_next <dl-sysdep.h>
diff --git a/sysdeps/ia64/dl-tls.h b/sysdeps/ia64/dl-tls.h
index d589a5a233..99e04bc8cb 100644
--- a/sysdeps/ia64/dl-tls.h
+++ b/sysdeps/ia64/dl-tls.h
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. IA-64 version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* On IA-64 the __tls_get_addr function take the module ID and the
diff --git a/sysdeps/ia64/dl-trampoline.S b/sysdeps/ia64/dl-trampoline.S
index fc24c425bf..3a8ec4aa71 100644
--- a/sysdeps/ia64/dl-trampoline.S
+++ b/sysdeps/ia64/dl-trampoline.S
@@ -1,5 +1,5 @@
/* PLT trampolines. ia64 version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#undef ret
diff --git a/sysdeps/ia64/fpu/bits/math-finite.h b/sysdeps/ia64/fpu/bits/math-finite.h
deleted file mode 100644
index 7f52bc388b..0000000000
--- a/sysdeps/ia64/fpu/bits/math-finite.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Entry points to finite-math-only compiler runs.
- Copyright (C) 2011-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _MATH_H
-# error "Never use <bits/math-finite.h> directly; include <math.h> instead."
-#endif
-
-/* Nothing can be done for IA-64 since the math functions differ in their
- structure. */
diff --git a/sysdeps/ia64/fpu/e_exp.S b/sysdeps/ia64/fpu/e_exp.S
index c8cebeb177..4774a43768 100644
--- a/sysdeps/ia64/fpu/e_exp.S
+++ b/sysdeps/ia64/fpu/e_exp.S
@@ -739,6 +739,12 @@ EXP_UNDERFLOW_ZERO:
GLOBAL_IEEE754_END(exp)
libm_alias_double_other (__exp, exp)
+#ifdef SHARED
+.symver exp,exp@@GLIBC_2.29
+.weak __exp_compat
+.set __exp_compat,__exp
+.symver __exp_compat,exp@GLIBC_2.2
+#endif
LOCAL_LIBM_ENTRY(__libm_error_region)
diff --git a/sysdeps/ia64/fpu/e_exp2.S b/sysdeps/ia64/fpu/e_exp2.S
index 18711866a1..97b69263e4 100644
--- a/sysdeps/ia64/fpu/e_exp2.S
+++ b/sysdeps/ia64/fpu/e_exp2.S
@@ -227,7 +227,7 @@ LOCAL_OBJECT_END(T_table)
.section .text
-GLOBAL_LIBM_ENTRY(exp2)
+WEAK_LIBM_ENTRY(exp2)
{.mfi
@@ -493,8 +493,14 @@ OUT_RANGE_exp2:
}
;;
-GLOBAL_LIBM_END(exp2)
-libm_alias_double_other (exp2, exp2)
+WEAK_LIBM_END(exp2)
+libm_alias_double_other (__exp2, exp2)
+#ifdef SHARED
+.symver exp2,exp2@@GLIBC_2.29
+.weak __exp2_compat
+.set __exp2_compat,__exp2
+.symver __exp2_compat,exp2@GLIBC_2.2
+#endif
LOCAL_LIBM_ENTRY(__libm_error_region)
diff --git a/sysdeps/ia64/fpu/e_exp2f.S b/sysdeps/ia64/fpu/e_exp2f.S
index 77bc6ea686..3010a95a2d 100644
--- a/sysdeps/ia64/fpu/e_exp2f.S
+++ b/sysdeps/ia64/fpu/e_exp2f.S
@@ -221,7 +221,7 @@ LOCAL_OBJECT_END(T_table)
.section .text
-GLOBAL_LIBM_ENTRY(__exp2f)
+WEAK_LIBM_ENTRY(exp2f)
{.mfi
@@ -468,10 +468,10 @@ OUT_RANGE_exp2:
}
;;
-GLOBAL_LIBM_END(__exp2f)
+WEAK_LIBM_END(exp2f)
libm_alias_float_other (__exp2, exp2)
#ifdef SHARED
-.symver __exp2f,exp2f@@GLIBC_2.27
+.symver exp2f,exp2f@@GLIBC_2.27
.weak __exp2f_compat
.set __exp2f_compat,__exp2f
.symver __exp2f_compat,exp2f@GLIBC_2.2
diff --git a/sysdeps/ia64/fpu/e_exp_data.c b/sysdeps/ia64/fpu/e_exp_data.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/e_exp_data.c
@@ -0,0 +1 @@
+/* Not needed. */
diff --git a/sysdeps/ia64/fpu/e_log.S b/sysdeps/ia64/fpu/e_log.S
index 0b63ec43c5..7ee2392acd 100644
--- a/sysdeps/ia64/fpu/e_log.S
+++ b/sysdeps/ia64/fpu/e_log.S
@@ -1670,6 +1670,12 @@ log_libm_err:
};;
GLOBAL_IEEE754_END(log)
libm_alias_double_other (__log, log)
+#ifdef SHARED
+.symver log,log@@GLIBC_2.29
+.weak __log_compat
+.set __log_compat,__log
+.symver __log_compat,log@GLIBC_2.2
+#endif
LOCAL_LIBM_ENTRY(__libm_error_region)
diff --git a/sysdeps/ia64/fpu/e_log2.S b/sysdeps/ia64/fpu/e_log2.S
index 17893a2ede..eecd72a63a 100644
--- a/sysdeps/ia64/fpu/e_log2.S
+++ b/sysdeps/ia64/fpu/e_log2.S
@@ -385,7 +385,7 @@ LOCAL_OBJECT_END(T_table)
.section .text
-GLOBAL_LIBM_ENTRY(log2)
+WEAK_LIBM_ENTRY(log2)
{ .mfi
alloc r32=ar.pfs,1,4,4,0
@@ -653,8 +653,14 @@ SPECIAL_LOG2:
br.ret.sptk b0;;
}
-GLOBAL_LIBM_END(log2)
-libm_alias_double_other (log2, log2)
+WEAK_LIBM_END(log2)
+libm_alias_double_other (__log2, log2)
+#ifdef SHARED
+.symver log2,log2@@GLIBC_2.29
+.weak __log2_compat
+.set __log2_compat,__log2
+.symver __log2_compat,log2@GLIBC_2.2
+#endif
LOCAL_LIBM_ENTRY(__libm_error_region)
diff --git a/sysdeps/ia64/fpu/e_log2_data.c b/sysdeps/ia64/fpu/e_log2_data.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/e_log2_data.c
@@ -0,0 +1 @@
+/* Not needed. */
diff --git a/sysdeps/ia64/fpu/e_log2f.S b/sysdeps/ia64/fpu/e_log2f.S
index 5ca3bd61ea..e4ea094344 100644
--- a/sysdeps/ia64/fpu/e_log2f.S
+++ b/sysdeps/ia64/fpu/e_log2f.S
@@ -252,7 +252,7 @@ LOCAL_OBJECT_END(T_table)
.section .text
-GLOBAL_LIBM_ENTRY(__log2f)
+WEAK_LIBM_ENTRY(log2f)
{ .mfi
alloc r32=ar.pfs,1,4,4,0
@@ -491,10 +491,10 @@ SPECIAL_log2f:
br.ret.sptk b0;;
}
-GLOBAL_LIBM_END(__log2f)
+WEAK_LIBM_END(log2f)
libm_alias_float_other (__log2, log2)
#ifdef SHARED
-.symver __log2f,log2f@@GLIBC_2.27
+.symver log2f,log2f@@GLIBC_2.27
.weak __log2f_compat
.set __log2f_compat,__log2f
.symver __log2f_compat,log2f@GLIBC_2.2
diff --git a/sysdeps/ia64/fpu/e_log_data.c b/sysdeps/ia64/fpu/e_log_data.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/e_log_data.c
@@ -0,0 +1 @@
+/* Not needed. */
diff --git a/sysdeps/ia64/fpu/e_pow.S b/sysdeps/ia64/fpu/e_pow.S
index 3b402f3f14..d827bcc894 100644
--- a/sysdeps/ia64/fpu/e_pow.S
+++ b/sysdeps/ia64/fpu/e_pow.S
@@ -910,7 +910,7 @@ data8 0xEAC0C6E7DD24392F , 0x00003FFF
LOCAL_OBJECT_END(pow_tbl2)
.section .text
-GLOBAL_LIBM_ENTRY(pow)
+WEAK_LIBM_ENTRY(pow)
// Get exponent of x. Will be used to calculate K.
{ .mfi
@@ -2233,8 +2233,14 @@ POW_OVER_UNDER_ERROR:
}
;;
-GLOBAL_LIBM_END(pow)
-libm_alias_double_other (pow, pow)
+WEAK_LIBM_END(pow)
+libm_alias_double_other (__pow, pow)
+#ifdef SHARED
+.symver pow,pow@@GLIBC_2.29
+.weak __pow_compat
+.set __pow_compat,__pow
+.symver __pow_compat,pow@GLIBC_2.2
+#endif
LOCAL_LIBM_ENTRY(__libm_error_region)
diff --git a/sysdeps/ia64/fpu/e_pow_log_data.c b/sysdeps/ia64/fpu/e_pow_log_data.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/e_pow_log_data.c
@@ -0,0 +1 @@
+/* Not needed. */
diff --git a/sysdeps/ia64/fpu/e_powf.S b/sysdeps/ia64/fpu/e_powf.S
index 7449f8c7d5..945d5cdf28 100644
--- a/sysdeps/ia64/fpu/e_powf.S
+++ b/sysdeps/ia64/fpu/e_powf.S
@@ -868,7 +868,7 @@ data8 0xEAC0C6E7DD24392F , 0x00003FFF
LOCAL_OBJECT_END(pow_tbl2)
.section .text
-GLOBAL_LIBM_ENTRY(__powf)
+WEAK_LIBM_ENTRY(powf)
// Get exponent of x. Will be used to calculate K.
{ .mfi
@@ -2002,10 +2002,10 @@ POW_OVER_UNDER_ERROR:
}
;;
-GLOBAL_LIBM_END(__powf)
+WEAK_LIBM_END(powf)
libm_alias_float_other (__pow, pow)
#ifdef SHARED
-.symver __powf,powf@@GLIBC_2.27
+.symver powf,powf@@GLIBC_2.27
.weak __powf_compat
.set __powf_compat,__powf
.symver __powf_compat,powf@GLIBC_2.2
diff --git a/sysdeps/ia64/fpu/e_rem_pio2.c b/sysdeps/ia64/fpu/e_rem_pio2.c
deleted file mode 100644
index 41254ae60a..0000000000
--- a/sysdeps/ia64/fpu/e_rem_pio2.c
+++ /dev/null
@@ -1 +0,0 @@
-/* Not needed. */
diff --git a/sysdeps/ia64/fpu/e_rem_pio2f.c b/sysdeps/ia64/fpu/e_rem_pio2f.c
deleted file mode 100644
index 41254ae60a..0000000000
--- a/sysdeps/ia64/fpu/e_rem_pio2f.c
+++ /dev/null
@@ -1 +0,0 @@
-/* Not needed. */
diff --git a/sysdeps/ia64/fpu/fclrexcpt.c b/sysdeps/ia64/fpu/fclrexcpt.c
index 546022f80a..d84c573709 100644
--- a/sysdeps/ia64/fpu/fclrexcpt.c
+++ b/sysdeps/ia64/fpu/fclrexcpt.c
@@ -1,5 +1,5 @@
/* Clear given exceptions in current floating-point environment.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Christian Boissat <Christian.Boissat@cern.ch>, 1999 and
Jes Sorensen <Jes.Sorensen@cern.ch>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/ia64/fpu/fedisblxcpt.c b/sysdeps/ia64/fpu/fedisblxcpt.c
index 441eeb400a..cd42185a2f 100644
--- a/sysdeps/ia64/fpu/fedisblxcpt.c
+++ b/sysdeps/ia64/fpu/fedisblxcpt.c
@@ -1,5 +1,5 @@
/* Disable floating-point exceptions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jes Sorensen <Jes.Sorensen@cern.ch>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/ia64/fpu/feenablxcpt.c b/sysdeps/ia64/fpu/feenablxcpt.c
index bb19aef6b7..ea1cbe0348 100644
--- a/sysdeps/ia64/fpu/feenablxcpt.c
+++ b/sysdeps/ia64/fpu/feenablxcpt.c
@@ -1,5 +1,5 @@
/* Enable floating-point exceptions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jes Sorensen <Jes.Sorensen@cern.ch>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/ia64/fpu/fegetenv.c b/sysdeps/ia64/fpu/fegetenv.c
index 9b304e4758..dd2025346e 100644
--- a/sysdeps/ia64/fpu/fegetenv.c
+++ b/sysdeps/ia64/fpu/fegetenv.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Christian Boissat <Christian.Boissat@cern.ch>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/ia64/fpu/fegetexcept.c b/sysdeps/ia64/fpu/fegetexcept.c
index 797a069b70..56270aa1d4 100644
--- a/sysdeps/ia64/fpu/fegetexcept.c
+++ b/sysdeps/ia64/fpu/fegetexcept.c
@@ -1,5 +1,5 @@
/* Get enabled floating-point exceptions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jes Sorensen <Jes.Sorensen@cern.ch>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/ia64/fpu/fegetmode.c b/sysdeps/ia64/fpu/fegetmode.c
index a2ab4feec8..007606623b 100644
--- a/sysdeps/ia64/fpu/fegetmode.c
+++ b/sysdeps/ia64/fpu/fegetmode.c
@@ -1,5 +1,5 @@
/* Store current floating-point control modes. IA64 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/ia64/fpu/fegetround.c b/sysdeps/ia64/fpu/fegetround.c
index cd22788ff0..7853758c61 100644
--- a/sysdeps/ia64/fpu/fegetround.c
+++ b/sysdeps/ia64/fpu/fegetround.c
@@ -1,5 +1,5 @@
/* Return current rounding direction.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Christian Boissat <Christian.Boissat@cern.ch>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <get-rounding-mode.h>
diff --git a/sysdeps/ia64/fpu/feholdexcpt.c b/sysdeps/ia64/fpu/feholdexcpt.c
index ac46449450..bad6b3af17 100644
--- a/sysdeps/ia64/fpu/feholdexcpt.c
+++ b/sysdeps/ia64/fpu/feholdexcpt.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment and clear exceptions.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Christian Boissat <Christian.Boissat@cern.ch>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/ia64/fpu/fesetenv.c b/sysdeps/ia64/fpu/fesetenv.c
index 8097c9fd16..b15137586e 100644
--- a/sysdeps/ia64/fpu/fesetenv.c
+++ b/sysdeps/ia64/fpu/fesetenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jes Sorensen <Jes.Sorensen@cern.ch>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/ia64/fpu/fesetexcept.c b/sysdeps/ia64/fpu/fesetexcept.c
index c3c868dcfc..db835081c5 100644
--- a/sysdeps/ia64/fpu/fesetexcept.c
+++ b/sysdeps/ia64/fpu/fesetexcept.c
@@ -1,5 +1,5 @@
/* Set given exception flags. IA64 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/ia64/fpu/fesetmode.c b/sysdeps/ia64/fpu/fesetmode.c
index 7eda1d6469..4d2d5e4e73 100644
--- a/sysdeps/ia64/fpu/fesetmode.c
+++ b/sysdeps/ia64/fpu/fesetmode.c
@@ -1,5 +1,5 @@
/* Install given floating-point control modes. IA64 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/ia64/fpu/fesetround.c b/sysdeps/ia64/fpu/fesetround.c
index 9c3ddf487d..85a88fcac6 100644
--- a/sysdeps/ia64/fpu/fesetround.c
+++ b/sysdeps/ia64/fpu/fesetround.c
@@ -1,5 +1,5 @@
/* Set current rounding direction.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Christian Boissat <Christian.Boissat@cern.ch>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/ia64/fpu/feupdateenv.c b/sysdeps/ia64/fpu/feupdateenv.c
index 379027b8c4..02b1410473 100644
--- a/sysdeps/ia64/fpu/feupdateenv.c
+++ b/sysdeps/ia64/fpu/feupdateenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment and raise exceptions.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Christian Boissat <Christian.Boissat@cern.ch>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/ia64/fpu/fgetexcptflg.c b/sysdeps/ia64/fpu/fgetexcptflg.c
index 1a4f03eeb7..4aa1b2cf6b 100644
--- a/sysdeps/ia64/fpu/fgetexcptflg.c
+++ b/sysdeps/ia64/fpu/fgetexcptflg.c
@@ -1,5 +1,5 @@
/* Store current representation for exceptions.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Christian Boissat <Christian.Boissat@cern.ch>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/ia64/fpu/fraiseexcpt.c b/sysdeps/ia64/fpu/fraiseexcpt.c
index 455fdd0705..b8af0a580b 100644
--- a/sysdeps/ia64/fpu/fraiseexcpt.c
+++ b/sysdeps/ia64/fpu/fraiseexcpt.c
@@ -1,5 +1,5 @@
/* Raise given exceptions.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jes Sorensen <Jes.Sorensen@cern.ch>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <float.h>
diff --git a/sysdeps/ia64/fpu/fsetexcptflg.c b/sysdeps/ia64/fpu/fsetexcptflg.c
index d3022eb1bb..79aeebbb3b 100644
--- a/sysdeps/ia64/fpu/fsetexcptflg.c
+++ b/sysdeps/ia64/fpu/fsetexcptflg.c
@@ -1,5 +1,5 @@
/* Set floating-point environment exception handling.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Christian Boissat <Christian.Boissat@cern.ch>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/ia64/fpu/ftestexcept.c b/sysdeps/ia64/fpu/ftestexcept.c
index cedf2c001d..44b3277d7f 100644
--- a/sysdeps/ia64/fpu/ftestexcept.c
+++ b/sysdeps/ia64/fpu/ftestexcept.c
@@ -1,5 +1,5 @@
/* Test exception in current environment.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Christian Boissat <Christian.Boissat@cern.ch>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/ia64/fpu/get-rounding-mode.h b/sysdeps/ia64/fpu/get-rounding-mode.h
index 8fdf9c084b..49c9b94861 100644
--- a/sysdeps/ia64/fpu/get-rounding-mode.h
+++ b/sysdeps/ia64/fpu/get-rounding-mode.h
@@ -1,5 +1,5 @@
/* Return current rounding direction within libc. IA64 version.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Christian Boissat <Christian.Boissat@cern.ch>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef IA64_GET_ROUNDING_MODE_H
#define IA64_GET_ROUNDING_MODE_H 1
diff --git a/sysdeps/ia64/fpu/k_rem_pio2f.c b/sysdeps/ia64/fpu/k_rem_pio2f.c
deleted file mode 100644
index 41254ae60a..0000000000
--- a/sysdeps/ia64/fpu/k_rem_pio2f.c
+++ /dev/null
@@ -1 +0,0 @@
-/* Not needed. */
diff --git a/sysdeps/ia64/fpu/lgamma-compat.h b/sysdeps/ia64/fpu/lgamma-compat.h
index 784567edb2..ef3becd44f 100644
--- a/sysdeps/ia64/fpu/lgamma-compat.h
+++ b/sysdeps/ia64/fpu/lgamma-compat.h
@@ -1,5 +1,5 @@
/* ABI compatibility for lgamma functions. ia64 version.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef IA64_LGAMMA_COMPAT_H
#define IA64_LGAMMA_COMPAT_H 1
diff --git a/sysdeps/ia64/fpu/libm_sincos_large.S b/sysdeps/ia64/fpu/libm_sincos_large.S
index 9faa75980f..64c42662dd 100644
--- a/sysdeps/ia64/fpu/libm_sincos_large.S
+++ b/sysdeps/ia64/fpu/libm_sincos_large.S
@@ -223,7 +223,7 @@
// = (-1)^i_0 * [cos(r) - c*r] if i_1 = 1
//
// because |r| is small and thus the second terms in the correction
-// are unneccessary.
+// are unnecessary.
//
// Finally, sin(r) and cos(r) are approximated by polynomials of
// moderate lengths.
diff --git a/sysdeps/ia64/fpu/libm_sincosl.S b/sysdeps/ia64/fpu/libm_sincosl.S
index f76b54d3de..b0d027caf5 100644
--- a/sysdeps/ia64/fpu/libm_sincosl.S
+++ b/sysdeps/ia64/fpu/libm_sincosl.S
@@ -205,7 +205,7 @@
// = (-1)^i_0 * [cosl(r) - c*r] if i_1 = 1
//
// because |r| is small and thus the second terms in the correction
-// are unneccessary.
+// are unnecessary.
//
// Finally, sinl(r) and cosl(r) are approximated by polynomials of
// moderate lengths.
diff --git a/sysdeps/ia64/fpu/math_err.c b/sysdeps/ia64/fpu/math_err.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/math_err.c
@@ -0,0 +1 @@
+/* Not needed. */
diff --git a/sysdeps/ia64/fpu/math_ldbl.h b/sysdeps/ia64/fpu/math_ldbl.h
index 6178169f95..b4295bcbc8 100644
--- a/sysdeps/ia64/fpu/math_ldbl.h
+++ b/sysdeps/ia64/fpu/math_ldbl.h
@@ -1,5 +1,5 @@
/* Manipulation of the bit representation of 'long double' quantities.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MATH_LDBL_H_
#define _MATH_LDBL_H_ 1
diff --git a/sysdeps/ia64/fpu/printf_fphex.c b/sysdeps/ia64/fpu/printf_fphex.c
index ef35e78364..3cb0ee5ebf 100644
--- a/sysdeps/ia64/fpu/printf_fphex.c
+++ b/sysdeps/ia64/fpu/printf_fphex.c
@@ -1,5 +1,5 @@
/* Print floating point number in hexadecimal notation according to ISO C99.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef LONG_DOUBLE_DENORM_BIAS
# define LONG_DOUBLE_DENORM_BIAS (IEEE854_LONG_DOUBLE_BIAS - 1)
diff --git a/sysdeps/ia64/fpu/s_copysign.S b/sysdeps/ia64/fpu/s_copysign.S
index f6ec3dabeb..34b7de8598 100644
--- a/sysdeps/ia64/fpu/s_copysign.S
+++ b/sysdeps/ia64/fpu/s_copysign.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#undef ret
diff --git a/sysdeps/ia64/fpu/s_cosl.S b/sysdeps/ia64/fpu/s_cosl.S
index ed4b571fab..961b8d23ce 100644
--- a/sysdeps/ia64/fpu/s_cosl.S
+++ b/sysdeps/ia64/fpu/s_cosl.S
@@ -212,7 +212,7 @@
// = (-1)^i_0 * [cosl(r) - c*r] if i_1 = 1
//
// because |r| is small and thus the second terms in the correction
-// are unneccessary.
+// are unnecessary.
//
// Finally, sinl(r) and cosl(r) are approximated by polynomials of
// moderate lengths.
diff --git a/sysdeps/ia64/fpu/s_finite.S b/sysdeps/ia64/fpu/s_finite.S
index 8784880097..ed7ea222f8 100644
--- a/sysdeps/ia64/fpu/s_finite.S
+++ b/sysdeps/ia64/fpu/s_finite.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#undef ret
diff --git a/sysdeps/ia64/fpu/s_fpclassify.S b/sysdeps/ia64/fpu/s_fpclassify.S
index edb4ae281e..c1ffacf7d4 100644
--- a/sysdeps/ia64/fpu/s_fpclassify.S
+++ b/sysdeps/ia64/fpu/s_fpclassify.S
@@ -1,5 +1,5 @@
/* Return classification value corresponding to argument.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#undef ret
diff --git a/sysdeps/ia64/fpu/s_isinf.S b/sysdeps/ia64/fpu/s_isinf.S
index bf68b6910e..5e87b7d53f 100644
--- a/sysdeps/ia64/fpu/s_isinf.S
+++ b/sysdeps/ia64/fpu/s_isinf.S
@@ -1,5 +1,5 @@
/* Test for inf/-inf
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jes Sorensen <jes@linuxcare.com>, October 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* isinf(x) returns 1 if x is inf, -1 for x == -inf, else 0;
diff --git a/sysdeps/ia64/fpu/s_isnan.S b/sysdeps/ia64/fpu/s_isnan.S
index db992b7184..62110985d2 100644
--- a/sysdeps/ia64/fpu/s_isnan.S
+++ b/sysdeps/ia64/fpu/s_isnan.S
@@ -1,5 +1,5 @@
/* Test for NaN
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jes Sorensen <jes@linuxcare.com>, October 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* isnan(x) returns 1 is x is nan, else 0;
diff --git a/sysdeps/ia64/fpu/s_matherrf.c b/sysdeps/ia64/fpu/s_matherrf.c
index 5808c04573..62558b2f3f 100644
--- a/sysdeps/ia64/fpu/s_matherrf.c
+++ b/sysdeps/ia64/fpu/s_matherrf.c
@@ -12,7 +12,6 @@
#include <math.h>
-#include <math_private.h>
#include <math-svid-compat.h>
#include "libm_support.h"
diff --git a/sysdeps/ia64/fpu/s_matherrl.c b/sysdeps/ia64/fpu/s_matherrl.c
index dc64b31e50..893e477d3e 100644
--- a/sysdeps/ia64/fpu/s_matherrl.c
+++ b/sysdeps/ia64/fpu/s_matherrl.c
@@ -12,7 +12,6 @@
#include <math.h>
-#include <math_private.h>
#include <math-svid-compat.h>
#include "libm_support.h"
diff --git a/sysdeps/ia64/fpu/s_signbit.S b/sysdeps/ia64/fpu/s_signbit.S
index 015db97464..0f62cb67b3 100644
--- a/sysdeps/ia64/fpu/s_signbit.S
+++ b/sysdeps/ia64/fpu/s_signbit.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#undef ret
diff --git a/sysdeps/ia64/fpu/s_sincosf_data.c b/sysdeps/ia64/fpu/s_sincosf_data.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ia64/fpu/s_sincosf_data.c
@@ -0,0 +1 @@
+/* Not needed. */
diff --git a/sysdeps/ia64/fpu/sfp-machine.h b/sysdeps/ia64/fpu/sfp-machine.h
index 45e844d3da..edba1e1d60 100644
--- a/sysdeps/ia64/fpu/sfp-machine.h
+++ b/sysdeps/ia64/fpu/sfp-machine.h
@@ -6,7 +6,7 @@
typedef int TItype __attribute__ ((mode (TI)));
typedef unsigned int UTItype __attribute__ ((mode (TI)));
-#define TI_BITS (__CHAR_BIT__ * (int)sizeof(TItype))
+#define TI_BITS (__CHAR_BIT__ * (int) sizeof (TItype))
/* The type of the result of a floating point comparison. This must
match `__libgcc_cmp_return__' in GCC for the target. */
@@ -88,13 +88,3 @@ void __sfp_handle_exceptions (int);
} while (0)
#define FP_ROUNDMODE (_fcw & FP_RND_MASK)
-
-#define __LITTLE_ENDIAN 1234
-#define __BIG_ENDIAN 4321
-
-#define __BYTE_ORDER __LITTLE_ENDIAN
-
-/* Define ALIASNAME as a strong alias for NAME. */
-#define strong_alias(name, aliasname) _strong_alias(name, aliasname)
-#define _strong_alias(name, aliasname) \
- extern __typeof (name) aliasname __attribute__ ((alias (#name)));
diff --git a/sysdeps/ia64/fpu/t_exp.c b/sysdeps/ia64/fpu/t_exp.c
deleted file mode 100644
index 41254ae60a..0000000000
--- a/sysdeps/ia64/fpu/t_exp.c
+++ /dev/null
@@ -1 +0,0 @@
-/* Not needed. */
diff --git a/sysdeps/ia64/fpu/w_log1p.c b/sysdeps/ia64/fpu/w_log1p.c
index 0c15b166f8..3b5b90b98e 100644
--- a/sysdeps/ia64/fpu/w_log1p.c
+++ b/sysdeps/ia64/fpu/w_log1p.c
@@ -1,5 +1,5 @@
/* Wrapper for __log1p that handles setting errno.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Nothing to do.
errno is set in sysdeps/ia64/fpu/s_log1p.S. */
diff --git a/sysdeps/ia64/fpu/w_log1pf.c b/sysdeps/ia64/fpu/w_log1pf.c
index 0840e72f4e..f33d08e6d0 100644
--- a/sysdeps/ia64/fpu/w_log1pf.c
+++ b/sysdeps/ia64/fpu/w_log1pf.c
@@ -1,5 +1,5 @@
/* Wrapper for __log1pf that handles setting errno.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Nothing to do.
errno is set in sysdeps/ia64/fpu/s_log1pf.S. */
diff --git a/sysdeps/ia64/fpu/w_log1pl.c b/sysdeps/ia64/fpu/w_log1pl.c
index d76b8f709c..ff4db31928 100644
--- a/sysdeps/ia64/fpu/w_log1pl.c
+++ b/sysdeps/ia64/fpu/w_log1pl.c
@@ -1,5 +1,5 @@
/* Wrapper for __log1pl that handles setting errno.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Nothing to do.
errno is set in sysdeps/ia64/fpu/s_log1pl.S. */
diff --git a/sysdeps/ia64/fpu/w_scalblnf.c b/sysdeps/ia64/fpu/w_scalblnf.c
index 631fc9997b..525fd062c8 100644
--- a/sysdeps/ia64/fpu/w_scalblnf.c
+++ b/sysdeps/ia64/fpu/w_scalblnf.c
@@ -1,5 +1,5 @@
/* Wrapper for __scalblnf handles setting errno.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Nothing to do.
The function scalblnf is used without the wrapper function. */
diff --git a/sysdeps/ia64/gccframe.h b/sysdeps/ia64/gccframe.h
index d458c3b051..03d9b38a00 100644
--- a/sysdeps/ia64/gccframe.h
+++ b/sysdeps/ia64/gccframe.h
@@ -1,5 +1,5 @@
/* Definition of object in frame unwind info. ia64 version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This must match what's in frame.h in gcc. */
diff --git a/sysdeps/ia64/hp-timing.h b/sysdeps/ia64/hp-timing.h
index d8d1d7bf2c..a8fba8af5e 100644
--- a/sysdeps/ia64/hp-timing.h
+++ b/sysdeps/ia64/hp-timing.h
@@ -1,5 +1,5 @@
/* High precision, low overhead timing functions. IA-64 version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 2001.
@@ -15,15 +15,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _HP_TIMING_H
#define _HP_TIMING_H 1
-/* We always assume having the timestamp register. */
-#define HP_TIMING_AVAIL (1)
-#define HP_SMALL_TIMING_AVAIL (1)
-
/* We indeed have inlined functions. */
#define HP_TIMING_INLINE (1)
diff --git a/sysdeps/ia64/htonl.S b/sysdeps/ia64/htonl.S
index 3cc127546f..4629e9e4cc 100644
--- a/sysdeps/ia64/htonl.S
+++ b/sysdeps/ia64/htonl.S
@@ -1,5 +1,5 @@
/* Change byte order in 32-bit value. ia64 version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Dan Pop <Dan.Pop@cern.ch>
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/ia64/htons.S b/sysdeps/ia64/htons.S
index 3baa6a0bd5..71ad0e6567 100644
--- a/sysdeps/ia64/htons.S
+++ b/sysdeps/ia64/htons.S
@@ -1,5 +1,5 @@
/* Change byte order in 16-bit value. ia64 version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Dan Pop <Dan.Pop@cern.ch>
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/ia64/ieee754.h b/sysdeps/ia64/ieee754.h
index 89312d01a8..610631a71d 100644
--- a/sysdeps/ia64/ieee754.h
+++ b/sysdeps/ia64/ieee754.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -13,14 +13,14 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _IEEE754_H
-
#define _IEEE754_H 1
+
#include <features.h>
-#include <endian.h>
+#include <bits/endian.h>
__BEGIN_DECLS
diff --git a/sysdeps/ia64/jmpbuf-unwind.h b/sysdeps/ia64/jmpbuf-unwind.h
index 8f814d7d60..406f360b1f 100644
--- a/sysdeps/ia64/jmpbuf-unwind.h
+++ b/sysdeps/ia64/jmpbuf-unwind.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <setjmp.h>
#include <stdint.h>
diff --git a/sysdeps/ia64/ldsodefs.h b/sysdeps/ia64/ldsodefs.h
index 4d1ce234ca..7e6f8ad195 100644
--- a/sysdeps/ia64/ldsodefs.h
+++ b/sysdeps/ia64/ldsodefs.h
@@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef __LDSODEFS_H
diff --git a/sysdeps/ia64/libc-tls.c b/sysdeps/ia64/libc-tls.c
index ca117b9eea..7f2334e060 100644
--- a/sysdeps/ia64/libc-tls.c
+++ b/sysdeps/ia64/libc-tls.c
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. IA-64 version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <csu/libc-tls.c>
diff --git a/sysdeps/ia64/machine-gmon.h b/sysdeps/ia64/machine-gmon.h
index c76c567d28..dfb225462a 100644
--- a/sysdeps/ia64/machine-gmon.h
+++ b/sysdeps/ia64/machine-gmon.h
@@ -1,5 +1,5 @@
/* Machine-specific calling sequence for `mcount' profiling function. IA-64.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _MCOUNT_DECL(from, self) \
void __mcount (u_long from, u_long self)
diff --git a/sysdeps/ia64/math-tests-snan.h b/sysdeps/ia64/math-tests-snan.h
new file mode 100644
index 0000000000..4f232809cf
--- /dev/null
+++ b/sysdeps/ia64/math-tests-snan.h
@@ -0,0 +1,34 @@
+/* Configuration for math tests: sNaN support. ia64 version.
+ Copyright (C) 2013-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef IA64_MATH_TESTS_SNAN_H
+#define IA64_MATH_TESTS_SNAN_H 1
+
+#define SNAN_TESTS_float 1
+#define SNAN_TESTS_double 1
+#define SNAN_TESTS_long_double 1
+
+/* Before GCC 7, there is no built-in function to provide a __float128
+ sNaN, so most sNaN tests for this type cannot work. */
+#if __GNUC_PREREQ (7, 0)
+# define SNAN_TESTS_float128 1
+#else
+# define SNAN_TESTS_float128 0
+#endif
+
+#endif /* math-tests-snan.h. */
diff --git a/sysdeps/ia64/math-tests.h b/sysdeps/ia64/math-tests.h
deleted file mode 100644
index 81e29f5c03..0000000000
--- a/sysdeps/ia64/math-tests.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Configuration for math tests. ia64 version.
- Copyright (C) 2017-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-/* Before GCC 7, there is no built-in function to provide a __float128
- sNaN, so most sNaN tests for this type cannot work. */
-#if !__GNUC_PREREQ (7, 0)
-# define SNAN_TESTS_float128 0
-#endif
-
-#include_next <math-tests.h>
diff --git a/sysdeps/ia64/memccpy.S b/sysdeps/ia64/memccpy.S
index c97d1de33c..af6130ed63 100644
--- a/sysdeps/ia64/memccpy.S
+++ b/sysdeps/ia64/memccpy.S
@@ -1,6 +1,6 @@
/* Optimized version of the memccpy() function.
This file is part of the GNU C Library.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Dan Pop <Dan.Pop@cern.ch>.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Return: a pointer to the next byte after char in dest or NULL
diff --git a/sysdeps/ia64/memchr.S b/sysdeps/ia64/memchr.S
index c52fca6109..dca46f6dec 100644
--- a/sysdeps/ia64/memchr.S
+++ b/sysdeps/ia64/memchr.S
@@ -1,6 +1,6 @@
/* Optimized version of the standard memchr() function.
This file is part of the GNU C Library.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Dan Pop <Dan.Pop@cern.ch>.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Return: the address of the first occurence of chr in str or NULL
diff --git a/sysdeps/ia64/memcmp.S b/sysdeps/ia64/memcmp.S
index bf475b38e9..c7257a679e 100644
--- a/sysdeps/ia64/memcmp.S
+++ b/sysdeps/ia64/memcmp.S
@@ -1,6 +1,6 @@
/* Optimized version of the standard memcmp() function.
This file is part of the GNU C Library.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Dan Pop <Dan.Pop@cern.ch>.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Return: the result of the comparison
diff --git a/sysdeps/ia64/memcpy.S b/sysdeps/ia64/memcpy.S
index 3abfee91ce..fbb6c8a89b 100644
--- a/sysdeps/ia64/memcpy.S
+++ b/sysdeps/ia64/memcpy.S
@@ -1,6 +1,6 @@
/* Optimized version of the standard memcpy() function.
This file is part of the GNU C Library.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Dan Pop for Itanium <Dan.Pop@cern.ch>.
Rewritten for McKinley by Sverre Jarp, HP Labs/CERN <Sverre.Jarp@cern.ch>
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Return: dest
diff --git a/sysdeps/ia64/memmove.S b/sysdeps/ia64/memmove.S
index 37d7466d14..ede1dbcf3e 100644
--- a/sysdeps/ia64/memmove.S
+++ b/sysdeps/ia64/memmove.S
@@ -1,6 +1,6 @@
/* Optimized version of the standard memmove() function.
This file is part of the GNU C Library.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Dan Pop <Dan.Pop@cern.ch>.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Return: dest
diff --git a/sysdeps/ia64/memset.S b/sysdeps/ia64/memset.S
index 11cc1d2fea..cf02a6c6c6 100644
--- a/sysdeps/ia64/memset.S
+++ b/sysdeps/ia64/memset.S
@@ -1,6 +1,6 @@
/* Optimized version of the standard memset() function.
This file is part of the GNU C Library.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Dan Pop for Itanium <Dan.Pop@cern.ch>.
Rewritten for McKinley by Sverre Jarp, HP Labs/CERN <Sverre.Jarp@cern.ch>
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Return: dest
diff --git a/sysdeps/ia64/memusage.h b/sysdeps/ia64/memusage.h
index f231ffd3d5..139f0f1579 100644
--- a/sysdeps/ia64/memusage.h
+++ b/sysdeps/ia64/memusage.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hp-timing.h>
diff --git a/sysdeps/ia64/nptl/Makefile b/sysdeps/ia64/nptl/Makefile
index 080663185d..b774a2f404 100644
--- a/sysdeps/ia64/nptl/Makefile
+++ b/sysdeps/ia64/nptl/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2018 Free Software Foundation, Inc.
+# Copyright (C) 2003-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
ifeq ($(subdir),csu)
gen-as-const-headers += tcb-offsets.sym
diff --git a/sysdeps/ia64/nptl/bits/pthreadtypes-arch.h b/sysdeps/ia64/nptl/bits/pthreadtypes-arch.h
deleted file mode 100644
index 57be66cb99..0000000000
--- a/sysdeps/ia64/nptl/bits/pthreadtypes-arch.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _BITS_PTHREADTYPES_ARCH_H
-#define _BITS_PTHREADTYPES_ARCH_H 1
-
-#define __SIZEOF_PTHREAD_ATTR_T 56
-#define __SIZEOF_PTHREAD_MUTEX_T 40
-#define __SIZEOF_PTHREAD_MUTEXATTR_T 4
-#define __SIZEOF_PTHREAD_COND_T 48
-#define __SIZEOF_PTHREAD_CONDATTR_T 4
-#define __SIZEOF_PTHREAD_RWLOCK_T 56
-#define __SIZEOF_PTHREAD_RWLOCKATTR_T 8
-#define __SIZEOF_PTHREAD_BARRIER_T 32
-#define __SIZEOF_PTHREAD_BARRIERATTR_T 4
-
-/* Definitions for internal mutex struct. */
-#define __PTHREAD_COMPAT_PADDING_MID
-#define __PTHREAD_COMPAT_PADDING_END
-#define __PTHREAD_MUTEX_LOCK_ELISION 0
-#define __PTHREAD_MUTEX_NUSERS_AFTER_KIND 0
-#define __PTHREAD_MUTEX_USE_UNION 0
-
-#define __LOCK_ALIGNMENT
-#define __ONCE_ALIGNMENT
-
-/* Data structure for reader-write lock variable handling. The
- structure of the attribute type is not exposed on purpose. */
-struct __pthread_rwlock_arch_t
-{
- unsigned int __readers;
- unsigned int __writers;
- unsigned int __wrphase_futex;
- unsigned int __writers_futex;
- unsigned int __pad3;
- unsigned int __pad4;
- int __cur_writer;
- int __shared;
- unsigned long int __pad1;
- unsigned long int __pad2;
- /* FLAGS must stay at this position in the structure to maintain
- binary compatibility. */
- unsigned int __flags;
-};
-
-#define __PTHREAD_RWLOCK_ELISION_EXTRA 0
-
-#endif /* bits/pthreadtypes.h */
diff --git a/sysdeps/ia64/nptl/bits/semaphore.h b/sysdeps/ia64/nptl/bits/semaphore.h
index 8836ddedcf..eed2fac5bd 100644
--- a/sysdeps/ia64/nptl/bits/semaphore.h
+++ b/sysdeps/ia64/nptl/bits/semaphore.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SEMAPHORE_H
# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
diff --git a/sysdeps/ia64/nptl/bits/struct_rwlock.h b/sysdeps/ia64/nptl/bits/struct_rwlock.h
new file mode 100644
index 0000000000..de991c8dd4
--- /dev/null
+++ b/sysdeps/ia64/nptl/bits/struct_rwlock.h
@@ -0,0 +1,43 @@
+/* IA64 internal rwlock struct definitions.
+ 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; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _RWLOCK_INTERNAL_H
+#define _RWLOCK_INTERNAL_H
+
+struct __pthread_rwlock_arch_t
+{
+ unsigned int __readers;
+ unsigned int __writers;
+ unsigned int __wrphase_futex;
+ unsigned int __writers_futex;
+ unsigned int __pad3;
+ unsigned int __pad4;
+ int __cur_writer;
+ int __shared;
+ unsigned long int __pad1;
+ unsigned long int __pad2;
+ /* FLAGS must stay at this position in the structure to maintain
+ binary compatibility. */
+ unsigned int __flags;
+};
+
+#define __PTHREAD_RWLOCK_INITIALIZER(__flags) \
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, __flags
+
+#endif
diff --git a/sysdeps/ia64/nptl/pthread-offsets.h b/sysdeps/ia64/nptl/pthread-offsets.h
deleted file mode 100644
index 16c6b0d9fd..0000000000
--- a/sysdeps/ia64/nptl/pthread-offsets.h
+++ /dev/null
@@ -1,5 +0,0 @@
-#define __PTHREAD_MUTEX_NUSERS_OFFSET 12
-#define __PTHREAD_MUTEX_KIND_OFFSET 16
-#define __PTHREAD_MUTEX_SPINS_OFFSET 20
-#define __PTHREAD_MUTEX_ELISION_OFFSET 22
-#define __PTHREAD_MUTEX_LIST_OFFSET 24
diff --git a/sysdeps/ia64/nptl/pthread_spin_lock.c b/sysdeps/ia64/nptl/pthread_spin_lock.c
index 4843a6d3e5..dcc81902d0 100644
--- a/sysdeps/ia64/nptl/pthread_spin_lock.c
+++ b/sysdeps/ia64/nptl/pthread_spin_lock.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "pthreadP.h"
diff --git a/sysdeps/ia64/nptl/pthread_spin_trylock.c b/sysdeps/ia64/nptl/pthread_spin_trylock.c
index 0a2beccf10..6ce3b9d54a 100644
--- a/sysdeps/ia64/nptl/pthread_spin_trylock.c
+++ b/sysdeps/ia64/nptl/pthread_spin_trylock.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include "pthreadP.h"
diff --git a/sysdeps/ia64/nptl/pthread_spin_unlock.c b/sysdeps/ia64/nptl/pthread_spin_unlock.c
index b16dfed1ac..97d09c7d40 100644
--- a/sysdeps/ia64/nptl/pthread_spin_unlock.c
+++ b/sysdeps/ia64/nptl/pthread_spin_unlock.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "pthreadP.h"
diff --git a/sysdeps/ia64/nptl/pthreaddef.h b/sysdeps/ia64/nptl/pthreaddef.h
index 09f9acf25c..ef63cf56c2 100644
--- a/sysdeps/ia64/nptl/pthreaddef.h
+++ b/sysdeps/ia64/nptl/pthreaddef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Default stack size. */
#define ARCH_STACK_DEFAULT_SIZE (32 * 1024 * 1024)
diff --git a/sysdeps/ia64/nptl/tls.h b/sysdeps/ia64/nptl/tls.h
index 8760ee3b3a..26e6237b02 100644
--- a/sysdeps/ia64/nptl/tls.h
+++ b/sysdeps/ia64/nptl/tls.h
@@ -1,5 +1,5 @@
/* Definition for thread-local data handling. nptl/IA-64 version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _TLS_H
#define _TLS_H 1
diff --git a/sysdeps/ia64/sched_cpucount.c b/sysdeps/ia64/sched_cpucount.c
index 3a128a38b2..2a0926d41a 100644
--- a/sysdeps/ia64/sched_cpucount.c
+++ b/sysdeps/ia64/sched_cpucount.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define POPCNT(l) __builtin_popcountl (l)
diff --git a/sysdeps/ia64/softpipe.h b/sysdeps/ia64/softpipe.h
index 684ad40471..a5789f20c6 100644
--- a/sysdeps/ia64/softpipe.h
+++ b/sysdeps/ia64/softpipe.h
@@ -1,5 +1,5 @@
/* This file is part of the GNU C Library.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* The latency of a memory load assumed by the assembly implementation
of the mem and str functions. Since we don't have any clue about
diff --git a/sysdeps/ia64/sotruss-lib.c b/sysdeps/ia64/sotruss-lib.c
index 2f3b642241..1a8a799100 100644
--- a/sysdeps/ia64/sotruss-lib.c
+++ b/sysdeps/ia64/sotruss-lib.c
@@ -1,5 +1,5 @@
/* Override generic sotruss-lib.c to define actual functions for ia64.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define HAVE_ARCH_PLTENTER
#define HAVE_ARCH_PLTEXIT
diff --git a/sysdeps/ia64/stackinfo.h b/sysdeps/ia64/stackinfo.h
index 102f54bac2..5b62189b7e 100644
--- a/sysdeps/ia64/stackinfo.h
+++ b/sysdeps/ia64/stackinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file contains a bit of information about the stack allocation
of the processor. */
diff --git a/sysdeps/ia64/start.S b/sysdeps/ia64/start.S
index 04205aa94f..7c52d39fc9 100644
--- a/sysdeps/ia64/start.S
+++ b/sysdeps/ia64/start.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Jes Sorensen, <Jes.Sorensen@cern.ch>, April 1999.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/ia64/strchr.S b/sysdeps/ia64/strchr.S
index 3a29e80b52..41bfffdc52 100644
--- a/sysdeps/ia64/strchr.S
+++ b/sysdeps/ia64/strchr.S
@@ -1,6 +1,6 @@
/* Optimized version of the standard strchr() function.
This file is part of the GNU C Library.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Dan Pop <Dan.Pop@cern.ch>.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Return: the address of the first occurence of chr in str or NULL
diff --git a/sysdeps/ia64/strcmp.S b/sysdeps/ia64/strcmp.S
index e4a3329987..22e91cb18d 100644
--- a/sysdeps/ia64/strcmp.S
+++ b/sysdeps/ia64/strcmp.S
@@ -1,6 +1,6 @@
/* Optimized version of the standard strcmp() function.
This file is part of the GNU C Library.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Dan Pop <Dan.Pop@cern.ch>.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Return: the result of the comparison
diff --git a/sysdeps/ia64/strcpy.S b/sysdeps/ia64/strcpy.S
index 5d025f6990..09cb0d7126 100644
--- a/sysdeps/ia64/strcpy.S
+++ b/sysdeps/ia64/strcpy.S
@@ -1,6 +1,6 @@
/* Optimized version of the standard strcpy() function.
This file is part of the GNU C Library.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Dan Pop <Dan.Pop@cern.ch>.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Return: dest
diff --git a/sysdeps/ia64/strlen.S b/sysdeps/ia64/strlen.S
index fcf3786546..eaee7c4fe4 100644
--- a/sysdeps/ia64/strlen.S
+++ b/sysdeps/ia64/strlen.S
@@ -1,6 +1,6 @@
/* Optimized version of the standard strlen() function.
This file is part of the GNU C Library.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Dan Pop <Dan.Pop@cern.ch>.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Return: the length of the input string
diff --git a/sysdeps/ia64/strncmp.S b/sysdeps/ia64/strncmp.S
index 33379aa083..85181cc03e 100644
--- a/sysdeps/ia64/strncmp.S
+++ b/sysdeps/ia64/strncmp.S
@@ -1,6 +1,6 @@
/* Optimized version of the standard strncmp() function.
This file is part of the GNU C Library.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Dan Pop <Dan.Pop@cern.ch>.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Return: the result of the comparison
diff --git a/sysdeps/ia64/strncpy.S b/sysdeps/ia64/strncpy.S
index 2bedbbe277..25fc2bdc21 100644
--- a/sysdeps/ia64/strncpy.S
+++ b/sysdeps/ia64/strncpy.S
@@ -1,6 +1,6 @@
/* Optimized version of the standard strncpy() function.
This file is part of the GNU C Library.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Dan Pop <Dan.Pop@cern.ch>
and Jakub Jelinek <jakub@redhat.com>.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Return: dest
diff --git a/sysdeps/ia64/sysdep.h b/sysdeps/ia64/sysdep.h
index 6066ebd1d3..863f723202 100644
--- a/sysdeps/ia64/sysdep.h
+++ b/sysdeps/ia64/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/generic/sysdep.h>
diff --git a/sysdeps/ia64/tst-audit.h b/sysdeps/ia64/tst-audit.h
index 64607a09d8..c6ae8d8556 100644
--- a/sysdeps/ia64/tst-audit.h
+++ b/sysdeps/ia64/tst-audit.h
@@ -1,6 +1,6 @@
/* Definitions for testing PLT entry/exit auditing. IA64 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define pltenter la_ia64_gnu_pltenter
#define pltexit la_ia64_gnu_pltexit
diff --git a/sysdeps/ieee754/dbl-64/Makefile b/sysdeps/ieee754/dbl-64/Makefile
index c965982fa5..78530b5966 100644
--- a/sysdeps/ieee754/dbl-64/Makefile
+++ b/sysdeps/ieee754/dbl-64/Makefile
@@ -2,5 +2,4 @@ ifeq ($(subdir),math)
# branred depends on precise IEEE double rounding
CFLAGS-branred.c += $(config-cflags-nofma)
CFLAGS-e_sqrt.c += $(config-cflags-nofma)
-CFLAGS-e_pow.c += $(config-cflags-nofma)
endif
diff --git a/sysdeps/ieee754/dbl-64/MathLib.h b/sysdeps/ieee754/dbl-64/MathLib.h
index 671d78f72b..2900c51de0 100644
--- a/sysdeps/ieee754/dbl-64/MathLib.h
+++ b/sysdeps/ieee754/dbl-64/MathLib.h
@@ -1,7 +1,7 @@
/*
* IBM Accurate Mathematical Library
* Written by International Business Machines Corp.
- * Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2019 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 by
@@ -14,7 +14,7 @@
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
/********************************************************************/
diff --git a/sysdeps/ieee754/dbl-64/asincos.tbl b/sysdeps/ieee754/dbl-64/asincos.tbl
index bb9b7c7c07..d682143b09 100644
--- a/sysdeps/ieee754/dbl-64/asincos.tbl
+++ b/sysdeps/ieee754/dbl-64/asincos.tbl
@@ -1,7 +1,7 @@
/*
* IBM Accurate Mathematical Library
* Written by International Business Machines Corp.
- * Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2019 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 by
@@ -14,7 +14,7 @@
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
/***************************************************************************/
diff --git a/sysdeps/ieee754/dbl-64/atnat.h b/sysdeps/ieee754/dbl-64/atnat.h
index ff8671ac48..c35fa5e0cc 100644
--- a/sysdeps/ieee754/dbl-64/atnat.h
+++ b/sysdeps/ieee754/dbl-64/atnat.h
@@ -1,7 +1,7 @@
/*
* IBM Accurate Mathematical Library
* Written by International Business Machines Corp.
- * Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2019 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 by
@@ -14,7 +14,7 @@
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
/************************************************************************/
diff --git a/sysdeps/ieee754/dbl-64/atnat2.h b/sysdeps/ieee754/dbl-64/atnat2.h
index 1c7d3cb760..e366aa1a86 100644
--- a/sysdeps/ieee754/dbl-64/atnat2.h
+++ b/sysdeps/ieee754/dbl-64/atnat2.h
@@ -2,7 +2,7 @@
/*
* IBM Accurate Mathematical Library
* Written by International Business Machines Corp.
- * Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2019 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 by
@@ -15,7 +15,7 @@
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
/************************************************************************/
diff --git a/sysdeps/ieee754/dbl-64/branred.c b/sysdeps/ieee754/dbl-64/branred.c
index b1490cce2d..0cf114d823 100644
--- a/sysdeps/ieee754/dbl-64/branred.c
+++ b/sysdeps/ieee754/dbl-64/branred.c
@@ -1,7 +1,7 @@
/*
* IBM Accurate Mathematical Library
* Written by International Business Machines Corp.
- * Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2019 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 by
@@ -14,7 +14,7 @@
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
/*******************************************************************/
/* */
diff --git a/sysdeps/ieee754/dbl-64/branred.h b/sysdeps/ieee754/dbl-64/branred.h
index 0c0f054e62..ae133088e2 100644
--- a/sysdeps/ieee754/dbl-64/branred.h
+++ b/sysdeps/ieee754/dbl-64/branred.h
@@ -1,7 +1,7 @@
/*
* IBM Accurate Mathematical Library
* Written by International Business Machines Corp.
- * Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2019 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 by
@@ -14,7 +14,7 @@
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
/************************************************************************/
/* MODULE_NAME: branred.h */
diff --git a/sysdeps/ieee754/dbl-64/dbl2mpn.c b/sysdeps/ieee754/dbl-64/dbl2mpn.c
index 8d6e8a1836..9fd2f6e3e6 100644
--- a/sysdeps/ieee754/dbl-64/dbl2mpn.c
+++ b/sysdeps/ieee754/dbl-64/dbl2mpn.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "gmp.h"
#include "gmp-impl.h"
diff --git a/sysdeps/ieee754/dbl-64/dla.h b/sysdeps/ieee754/dbl-64/dla.h
index 5196759ca7..07b18258aa 100644
--- a/sysdeps/ieee754/dbl-64/dla.h
+++ b/sysdeps/ieee754/dbl-64/dla.h
@@ -1,7 +1,7 @@
/*
* IBM Accurate Mathematical Library
* Written by International Business Machines Corp.
- * Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2019 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 by
@@ -14,7 +14,7 @@
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
#include <math.h>
diff --git a/sysdeps/ieee754/dbl-64/doasin.c b/sysdeps/ieee754/dbl-64/doasin.c
index 9355333780..ccb89ed163 100644
--- a/sysdeps/ieee754/dbl-64/doasin.c
+++ b/sysdeps/ieee754/dbl-64/doasin.c
@@ -1,7 +1,7 @@
/*
* IBM Accurate Mathematical Library
* written by International Business Machines Corp.
- * Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2019 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 by
@@ -14,7 +14,7 @@
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
/**********************************************************************/
/* MODULE_NAME: doasin.c */
diff --git a/sysdeps/ieee754/dbl-64/doasin.h b/sysdeps/ieee754/dbl-64/doasin.h
index 240c7ec67c..6b8fa565e0 100644
--- a/sysdeps/ieee754/dbl-64/doasin.h
+++ b/sysdeps/ieee754/dbl-64/doasin.h
@@ -2,7 +2,7 @@
/*
* IBM Accurate Mathematical Library
* Written by International Business Machines Corp.
- * Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2019 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 by
@@ -15,7 +15,7 @@
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
/************************************************************************/
diff --git a/sysdeps/ieee754/dbl-64/dosincos.c b/sysdeps/ieee754/dbl-64/dosincos.c
index 689b453f8d..dcb1e925c6 100644
--- a/sysdeps/ieee754/dbl-64/dosincos.c
+++ b/sysdeps/ieee754/dbl-64/dosincos.c
@@ -1,7 +1,7 @@
/*
* IBM Accurate Mathematical Library
* written by International Business Machines Corp.
- * Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2019 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 by
@@ -14,7 +14,7 @@
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
/********************************************************************/
/* */
diff --git a/sysdeps/ieee754/dbl-64/dosincos.h b/sysdeps/ieee754/dbl-64/dosincos.h
index 23858029e9..e1ac0025f9 100644
--- a/sysdeps/ieee754/dbl-64/dosincos.h
+++ b/sysdeps/ieee754/dbl-64/dosincos.h
@@ -2,7 +2,7 @@
/*
* IBM Accurate Mathematical Library
* Written by International Business Machines Corp.
- * Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2019 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 by
@@ -15,7 +15,7 @@
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
/************************************************************************/
diff --git a/sysdeps/ieee754/dbl-64/e_asin.c b/sysdeps/ieee754/dbl-64/e_asin.c
index 6bf56945a6..82419056bc 100644
--- a/sysdeps/ieee754/dbl-64/e_asin.c
+++ b/sysdeps/ieee754/dbl-64/e_asin.c
@@ -1,7 +1,7 @@
/*
* IBM Accurate Mathematical Library
* written by International Business Machines Corp.
- * Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2019 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 by
@@ -14,7 +14,7 @@
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
/******************************************************************/
/* MODULE_NAME:uasncs.c */
diff --git a/sysdeps/ieee754/dbl-64/e_atan2.c b/sysdeps/ieee754/dbl-64/e_atan2.c
index 7295067507..099a76ea56 100644
--- a/sysdeps/ieee754/dbl-64/e_atan2.c
+++ b/sysdeps/ieee754/dbl-64/e_atan2.c
@@ -1,7 +1,7 @@
/*
* IBM Accurate Mathematical Library
* written by International Business Machines Corp.
- * Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2019 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 by
@@ -14,7 +14,7 @@
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
/************************************************************************/
/* MODULE_NAME: atnat2.c */
@@ -46,6 +46,7 @@
#include <math.h>
#include <math-barriers.h>
#include <math_private.h>
+#include <fenv_private.h>
#include <stap-probe.h>
#ifndef SECTION
@@ -63,7 +64,7 @@ static double atan2Mp (double, double, const int[]);
static double
signArctan2 (double y, double z)
{
- return __copysign (z, y);
+ return copysign (z, y);
}
static double normalized (double, double, double, double);
diff --git a/sysdeps/ieee754/dbl-64/e_atanh.c b/sysdeps/ieee754/dbl-64/e_atanh.c
index da4da8270c..7a79527eb7 100644
--- a/sysdeps/ieee754/dbl-64/e_atanh.c
+++ b/sysdeps/ieee754/dbl-64/e_atanh.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* __ieee754_atanh(x)
@@ -71,6 +71,6 @@ __ieee754_atanh (double x)
return x / 0.0;
}
- return __copysign (t, x);
+ return copysign (t, x);
}
strong_alias (__ieee754_atanh, __atanh_finite)
diff --git a/sysdeps/ieee754/dbl-64/e_exp.c b/sysdeps/ieee754/dbl-64/e_exp.c
index ddd2bcb1c2..d255e7ba1a 100644
--- a/sysdeps/ieee754/dbl-64/e_exp.c
+++ b/sysdeps/ieee754/dbl-64/e_exp.c
@@ -1,353 +1,169 @@
-/*
- * IBM Accurate Mathematical Library
- * written by International Business Machines Corp.
- * Copyright (C) 2001-2018 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 by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program 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 this program; if not, see <http://www.gnu.org/licenses/>.
- */
-/***************************************************************************/
-/* MODULE_NAME:uexp.c */
-/* */
-/* FUNCTION:uexp */
-/* exp1 */
-/* */
-/* FILES NEEDED:dla.h endian.h mpa.h mydefs.h uexp.h */
-/* */
-/* An ultimate exp routine. Given an IEEE double machine number x */
-/* it computes an almost correctly rounded (to nearest) value of e^x */
-/* Assumption: Machine arithmetic operations are performed in */
-/* round to nearest mode of IEEE 754 standard. */
-/* */
-/***************************************************************************/
+/* Double-precision e^x function.
+ Copyright (C) 2018-2019 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
-#include <math.h>
-#include "endian.h"
-#include "uexp.h"
-#include "mydefs.h"
-#include "MathLib.h"
-#include "uexp.tbl"
-#include <math-barriers.h>
-#include <math_private.h>
-#include <fenv.h>
-#include <float.h>
-#include "eexp.tbl"
-
-#ifndef SECTION
-# define SECTION
-#endif
-
-double
-SECTION
-__ieee754_exp (double x)
-{
- double bexp, t, eps, del, base, y, al, bet, res, rem, cor;
- double z;
- mynumber junk1, junk2, binexp = {{0, 0}};
- int4 i, j, m, n, ex;
- int4 k;
- double retval;
-
- {
- SET_RESTORE_ROUND (FE_TONEAREST);
-
- junk1.x = x;
- m = junk1.i[HIGH_HALF];
- n = m & hugeint;
-
- if (n < 0x3ff0a2b2) /* |x| < 1.03972053527832 */
- {
- if (n < 0x3f862e42) /* |x| < 3/2 ln 2 */
- {
- if (n < 0x3ed00000) /* |x| < 1/64 ln 2 */
- {
- if (n < 0x3e300000) /* |x| < 2^18 */
- {
- retval = one + junk1.x;
- goto ret;
- }
- retval = one + junk1.x * (one + half * junk1.x);
- goto ret;
- }
- t = junk1.x * junk1.x;
- retval = junk1.x + (t * (half + junk1.x * t2) +
- (t * t) * (t3 + junk1.x * t4 + t * t5));
- retval = one + retval;
- goto ret;
- }
-
- /* Find the multiple of 2^-6 nearest x. */
- k = n >> 20;
- j = (0x00100000 | (n & 0x000fffff)) >> (0x40c - k);
- j = (j - 1) & ~1;
- if (m < 0)
- j += 134;
- z = junk1.x - TBL2[j];
- t = z * z;
- retval = z + (t * (half + (z * t2))
- + (t * t) * (t3 + z * t4 + t * t5));
- retval = TBL2[j + 1] + TBL2[j + 1] * retval;
- goto ret;
- }
+ 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.
- if (n < bigint) /* && |x| >= 1.03972053527832 */
- {
- y = x * log2e.x + three51.x;
- bexp = y - three51.x; /* multiply the result by 2**bexp */
+ 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.
- junk1.x = y;
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
- eps = bexp * ln_two2.x; /* x = bexp*ln(2) + t - eps */
- t = x - bexp * ln_two1.x;
-
- y = t + three33.x;
- base = y - three33.x; /* t rounded to a multiple of 2**-18 */
- junk2.x = y;
- del = (t - base) - eps; /* x = bexp*ln(2) + base + del */
- eps = del + del * del * (p3.x * del + p2.x);
-
- binexp.i[HIGH_HALF] = (junk1.i[LOW_HALF] + 1023) << 20;
-
- i = ((junk2.i[LOW_HALF] >> 8) & 0xfffffffe) + 356;
- j = (junk2.i[LOW_HALF] & 511) << 1;
-
- al = coar.x[i] * fine.x[j];
- bet = ((coar.x[i] * fine.x[j + 1] + coar.x[i + 1] * fine.x[j])
- + coar.x[i + 1] * fine.x[j + 1]);
-
- rem = (bet + bet * eps) + al * eps;
- res = al + rem;
- /* Maximum relative error is 7.8e-22 (70.1 bits).
- Maximum ULP error is 0.500007. */
- retval = res * binexp.x;
- goto ret;
- }
-
- if (n >= badint)
- {
- if (n > infint)
- {
- retval = x + x;
- goto ret;
- } /* x is NaN */
- if (n < infint)
- {
- if (x > 0)
- goto ret_huge;
- else
- goto ret_tiny;
- }
- /* x is finite, cause either overflow or underflow */
- if (junk1.i[LOW_HALF] != 0)
- {
- retval = x + x;
- goto ret;
- } /* x is NaN */
- retval = (x > 0) ? inf.x : zero; /* |x| = inf; return either inf or 0 */
- goto ret;
- }
-
- y = x * log2e.x + three51.x;
- bexp = y - three51.x;
- junk1.x = y;
- eps = bexp * ln_two2.x;
- t = x - bexp * ln_two1.x;
- y = t + three33.x;
- base = y - three33.x;
- junk2.x = y;
- del = (t - base) - eps;
- eps = del + del * del * (p3.x * del + p2.x);
- i = ((junk2.i[LOW_HALF] >> 8) & 0xfffffffe) + 356;
- j = (junk2.i[LOW_HALF] & 511) << 1;
- al = coar.x[i] * fine.x[j];
- bet = ((coar.x[i] * fine.x[j + 1] + coar.x[i + 1] * fine.x[j])
- + coar.x[i + 1] * fine.x[j + 1]);
- rem = (bet + bet * eps) + al * eps;
- res = al + rem;
- cor = (al - res) + rem;
- if (m >> 31)
- {
- ex = junk1.i[LOW_HALF];
- if (res < 1.0)
- {
- res += res;
- cor += cor;
- ex -= 1;
- }
- if (ex >= -1022)
- {
- binexp.i[HIGH_HALF] = (1023 + ex) << 20;
- /* Does not underflow: res >= 1.0, binexp >= 0x1p-1022
- Maximum relative error is 7.8e-22 (70.1 bits).
- Maximum ULP error is 0.500007. */
- retval = res * binexp.x;
- goto ret;
- }
- ex = -(1022 + ex);
- binexp.i[HIGH_HALF] = (1023 - ex) << 20;
- res *= binexp.x;
- cor *= binexp.x;
- t = 1.0 + res;
- y = ((1.0 - t) + res) + cor;
- res = t + y;
- /* Maximum ULP error is 0.5000035. */
- binexp.i[HIGH_HALF] = 0x00100000;
- retval = (res - 1.0) * binexp.x;
- if (retval < DBL_MIN)
- {
- double force_underflow = tiny * tiny;
- math_force_eval (force_underflow);
- }
- if (retval == 0)
- goto ret_tiny;
- goto ret;
- }
- else
- {
- binexp.i[HIGH_HALF] = (junk1.i[LOW_HALF] + 767) << 20;
- /* Maximum relative error is 7.8e-22 (70.1 bits).
- Maximum ULP error is 0.500007. */
- retval = res * binexp.x * t256.x;
- if (isinf (retval))
- goto ret_huge;
- else
- goto ret;
- }
- }
-ret:
- return retval;
+#include <math.h>
+#include <stdint.h>
+#include <math-barriers.h>
+#include <math-narrow-eval.h>
+#include <math-svid-compat.h>
+#include <shlib-compat.h>
+#include <libm-alias-double.h>
+#include "math_config.h"
+
+#define N (1 << EXP_TABLE_BITS)
+#define InvLn2N __exp_data.invln2N
+#define NegLn2hiN __exp_data.negln2hiN
+#define NegLn2loN __exp_data.negln2loN
+#define Shift __exp_data.shift
+#define T __exp_data.tab
+#define C2 __exp_data.poly[5 - EXP_POLY_ORDER]
+#define C3 __exp_data.poly[6 - EXP_POLY_ORDER]
+#define C4 __exp_data.poly[7 - EXP_POLY_ORDER]
+#define C5 __exp_data.poly[8 - EXP_POLY_ORDER]
+
+/* Handle cases that may overflow or underflow when computing the result that
+ is scale*(1+TMP) without intermediate rounding. The bit representation of
+ scale is in SBITS, however it has a computed exponent that may have
+ overflown into the sign bit so that needs to be adjusted before using it as
+ a double. (int32_t)KI is the k used in the argument reduction and exponent
+ adjustment of scale, positive k here means the result may overflow and
+ negative k means the result may underflow. */
+static inline double
+specialcase (double_t tmp, uint64_t sbits, uint64_t ki)
+{
+ double_t scale, y;
- ret_huge:
- return hhuge * hhuge;
+ if ((ki & 0x80000000) == 0)
+ {
+ /* k > 0, the exponent of scale might have overflowed by <= 460. */
+ sbits -= 1009ull << 52;
+ scale = asdouble (sbits);
+ y = 0x1p1009 * (scale + scale * tmp);
+ return check_oflow (y);
+ }
+ /* k < 0, need special care in the subnormal range. */
+ sbits += 1022ull << 52;
+ scale = asdouble (sbits);
+ y = scale + scale * tmp;
+ if (y < 1.0)
+ {
+ /* Round y to the right precision before scaling it into the subnormal
+ range to avoid double rounding that can cause 0.5+E/2 ulp error where
+ E is the worst-case ulp error outside the subnormal range. So this
+ is only useful if the goal is better than 1 ulp worst-case error. */
+ double_t hi, lo;
+ lo = scale - y + scale * tmp;
+ hi = 1.0 + y;
+ lo = 1.0 - hi + y + lo;
+ y = math_narrow_eval (hi + lo) - 1.0;
+ /* Avoid -0.0 with downward rounding. */
+ if (WANT_ROUNDING && y == 0.0)
+ y = 0.0;
+ /* The underflow exception needs to be signaled explicitly. */
+ math_force_eval (math_opt_barrier (0x1p-1022) * 0x1p-1022);
+ }
+ y = 0x1p-1022 * y;
+ return check_uflow (y);
+}
- ret_tiny:
- return tiny * tiny;
+/* Top 12 bits of a double (sign and exponent bits). */
+static inline uint32_t
+top12 (double x)
+{
+ return asuint64 (x) >> 52;
}
-#ifndef __ieee754_exp
-strong_alias (__ieee754_exp, __exp_finite)
+
+#ifndef SECTION
+# define SECTION
#endif
-/* Compute e^(x+xx). */
double
SECTION
-__exp1 (double x, double xx)
+__exp (double x)
{
- double bexp, t, eps, del, base, y, al, bet, res, rem, cor;
- mynumber junk1, junk2, binexp = {{0, 0}};
- int4 i, j, m, n, ex;
-
- junk1.x = x;
- m = junk1.i[HIGH_HALF];
- n = m & hugeint; /* no sign */
-
- /* fabs (x) > 5.551112e-17 and fabs (x) < 7.080010e+02. */
- if (n > smallint && n < bigint)
- {
- y = x * log2e.x + three51.x;
- bexp = y - three51.x; /* multiply the result by 2**bexp */
-
- junk1.x = y;
-
- eps = bexp * ln_two2.x; /* x = bexp*ln(2) + t - eps */
- t = x - bexp * ln_two1.x;
-
- y = t + three33.x;
- base = y - three33.x; /* t rounded to a multiple of 2**-18 */
- junk2.x = y;
- del = (t - base) + (xx - eps); /* x = bexp*ln(2) + base + del */
- eps = del + del * del * (p3.x * del + p2.x);
-
- binexp.i[HIGH_HALF] = (junk1.i[LOW_HALF] + 1023) << 20;
-
- i = ((junk2.i[LOW_HALF] >> 8) & 0xfffffffe) + 356;
- j = (junk2.i[LOW_HALF] & 511) << 1;
-
- al = coar.x[i] * fine.x[j];
- bet = ((coar.x[i] * fine.x[j + 1] + coar.x[i + 1] * fine.x[j])
- + coar.x[i + 1] * fine.x[j + 1]);
-
- rem = (bet + bet * eps) + al * eps;
- res = al + rem;
- /* Maximum relative error before rounding is 8.8e-22 (69.9 bits).
- Maximum ULP error is 0.500008. */
- return res * binexp.x;
- }
-
- if (n <= smallint)
- return 1.0; /* if x->0 e^x=1 */
-
- if (n >= badint)
- {
- if (n > infint)
- return (zero / zero); /* x is NaN, return invalid */
- if (n < infint)
- return ((x > 0) ? (hhuge * hhuge) : (tiny * tiny));
- /* x is finite, cause either overflow or underflow */
- if (junk1.i[LOW_HALF] != 0)
- return (zero / zero); /* x is NaN */
- return ((x > 0) ? inf.x : zero); /* |x| = inf; return either inf or 0 */
- }
-
- y = x * log2e.x + three51.x;
- bexp = y - three51.x;
- junk1.x = y;
- eps = bexp * ln_two2.x;
- t = x - bexp * ln_two1.x;
- y = t + three33.x;
- base = y - three33.x;
- junk2.x = y;
- del = (t - base) + (xx - eps);
- eps = del + del * del * (p3.x * del + p2.x);
- i = ((junk2.i[LOW_HALF] >> 8) & 0xfffffffe) + 356;
- j = (junk2.i[LOW_HALF] & 511) << 1;
- al = coar.x[i] * fine.x[j];
- bet = ((coar.x[i] * fine.x[j + 1] + coar.x[i + 1] * fine.x[j])
- + coar.x[i + 1] * fine.x[j + 1]);
- rem = (bet + bet * eps) + al * eps;
- res = al + rem;
- cor = (al - res) + rem;
- if (m >> 31)
+ uint32_t abstop;
+ uint64_t ki, idx, top, sbits;
+ /* double_t for better performance on targets with FLT_EVAL_METHOD==2. */
+ double_t kd, z, r, r2, scale, tail, tmp;
+
+ abstop = top12 (x) & 0x7ff;
+ if (__glibc_unlikely (abstop - top12 (0x1p-54)
+ >= top12 (512.0) - top12 (0x1p-54)))
{
- /* x < 0. */
- ex = junk1.i[LOW_HALF];
- if (res < 1.0)
+ if (abstop - top12 (0x1p-54) >= 0x80000000)
+ /* Avoid spurious underflow for tiny x. */
+ /* Note: 0 is common input. */
+ return WANT_ROUNDING ? 1.0 + x : 1.0;
+ if (abstop >= top12 (1024.0))
{
- res += res;
- cor += cor;
- ex -= 1;
+ if (asuint64 (x) == asuint64 (-INFINITY))
+ return 0.0;
+ if (abstop >= top12 (INFINITY))
+ return 1.0 + x;
+ if (asuint64 (x) >> 63)
+ return __math_uflow (0);
+ else
+ return __math_oflow (0);
}
- if (ex >= -1022)
- {
- binexp.i[HIGH_HALF] = (1023 + ex) << 20;
- /* Maximum ULP error is 0.500008. */
- return res * binexp.x;
- }
- /* Denormal case - ex < -1022. */
- ex = -(1022 + ex);
- binexp.i[HIGH_HALF] = (1023 - ex) << 20;
- res *= binexp.x;
- cor *= binexp.x;
- t = 1.0 + res;
- y = ((1.0 - t) + res) + cor;
- res = t + y;
- binexp.i[HIGH_HALF] = 0x00100000;
- /* Maximum ULP error is 0.500004. */
- return (res - 1.0) * binexp.x;
- }
- else
- {
- binexp.i[HIGH_HALF] = (junk1.i[LOW_HALF] + 767) << 20;
- /* Maximum ULP error is 0.500008. */
- return res * binexp.x * t256.x;
+ /* Large x is special cased below. */
+ abstop = 0;
}
+
+ /* exp(x) = 2^(k/N) * exp(r), with exp(r) in [2^(-1/2N),2^(1/2N)]. */
+ /* x = ln2/N*k + r, with int k and r in [-ln2/2N, ln2/2N]. */
+ z = InvLn2N * x;
+#if TOINT_INTRINSICS
+ kd = roundtoint (z);
+ ki = converttoint (z);
+#else
+ /* z - kd is in [-1, 1] in non-nearest rounding modes. */
+ kd = math_narrow_eval (z + Shift);
+ ki = asuint64 (kd);
+ kd -= Shift;
+#endif
+ r = x + kd * NegLn2hiN + kd * NegLn2loN;
+ /* 2^(k/N) ~= scale * (1 + tail). */
+ idx = 2 * (ki % N);
+ top = ki << (52 - EXP_TABLE_BITS);
+ tail = asdouble (T[idx]);
+ /* This is only a valid scale when -1023*N < k < 1024*N. */
+ sbits = T[idx + 1] + top;
+ /* exp(x) = 2^(k/N) * exp(r) ~= scale + scale * (tail + exp(r) - 1). */
+ /* Evaluation is optimized assuming superscalar pipelined execution. */
+ r2 = r * r;
+ /* Without fma the worst case error is 0.25/N ulp larger. */
+ /* Worst case error is less than 0.5+1.11/N+(abs poly error * 2^53) ulp. */
+ tmp = tail + r + r2 * (C2 + r * C3) + r2 * r2 * (C4 + r * C5);
+ if (__glibc_unlikely (abstop == 0))
+ return specialcase (tmp, sbits, ki);
+ scale = asdouble (sbits);
+ /* Note: tmp == 0 or |tmp| > 2^-65 and scale > 2^-739, so there
+ is no spurious underflow here even without fma. */
+ return scale + scale * tmp;
}
+#ifndef __exp
+hidden_def (__exp)
+strong_alias (__exp, __ieee754_exp)
+strong_alias (__exp, __exp_finite)
+# if LIBM_SVID_COMPAT
+versioned_symbol (libm, __exp, exp, GLIBC_2_29);
+libm_alias_double_other (__exp, exp)
+# else
+libm_alias_double (__exp, exp)
+# endif
+#endif
diff --git a/sysdeps/ieee754/dbl-64/e_exp10.c b/sysdeps/ieee754/dbl-64/e_exp10.c
index 0721143a69..de457da9d2 100644
--- a/sysdeps/ieee754/dbl-64/e_exp10.c
+++ b/sysdeps/ieee754/dbl-64/e_exp10.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/ieee754/dbl-64/e_exp2.c b/sysdeps/ieee754/dbl-64/e_exp2.c
index c45bb44744..6db662ae8f 100644
--- a/sysdeps/ieee754/dbl-64/e_exp2.c
+++ b/sysdeps/ieee754/dbl-64/e_exp2.c
@@ -1,7 +1,6 @@
-/* Double-precision floating point 2^x.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Double-precision 2^x function.
+ Copyright (C) 2018-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
- Contributed by Geoffrey Keating <geoffk@ozemail.com.au>
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,121 +14,142 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-/* The basic design here is from
- Shmuel Gal and Boris Bachelis, "An Accurate Elementary Mathematical
- Library for the IEEE Floating Point Standard", ACM Trans. Math. Soft.,
- 17 (1), March 1991, pp. 26-45.
- It has been slightly modified to compute 2^x instead of e^x.
- */
-#include <stdlib.h>
-#include <float.h>
-#include <ieee754.h>
#include <math.h>
-#include <fenv.h>
-#include <inttypes.h>
+#include <stdint.h>
#include <math-barriers.h>
-#include <math_private.h>
-#include <math-underflow.h>
+#include <math-narrow-eval.h>
+#include <math-svid-compat.h>
+#include <shlib-compat.h>
+#include <libm-alias-double.h>
+#include "math_config.h"
+
+#define N (1 << EXP_TABLE_BITS)
+#define Shift __exp_data.exp2_shift
+#define T __exp_data.tab
+#define C1 __exp_data.exp2_poly[0]
+#define C2 __exp_data.exp2_poly[1]
+#define C3 __exp_data.exp2_poly[2]
+#define C4 __exp_data.exp2_poly[3]
+#define C5 __exp_data.exp2_poly[4]
+
+/* Handle cases that may overflow or underflow when computing the result that
+ is scale*(1+TMP) without intermediate rounding. The bit representation of
+ scale is in SBITS, however it has a computed exponent that may have
+ overflown into the sign bit so that needs to be adjusted before using it as
+ a double. (int32_t)KI is the k used in the argument reduction and exponent
+ adjustment of scale, positive k here means the result may overflow and
+ negative k means the result may underflow. */
+static inline double
+specialcase (double_t tmp, uint64_t sbits, uint64_t ki)
+{
+ double_t scale, y;
-#include "t_exp2.h"
+ if ((ki & 0x80000000) == 0)
+ {
+ /* k > 0, the exponent of scale might have overflowed by 1. */
+ sbits -= 1ull << 52;
+ scale = asdouble (sbits);
+ y = 2 * (scale + scale * tmp);
+ return check_oflow (y);
+ }
+ /* k < 0, need special care in the subnormal range. */
+ sbits += 1022ull << 52;
+ scale = asdouble (sbits);
+ y = scale + scale * tmp;
+ if (y < 1.0)
+ {
+ /* Round y to the right precision before scaling it into the subnormal
+ range to avoid double rounding that can cause 0.5+E/2 ulp error where
+ E is the worst-case ulp error outside the subnormal range. So this
+ is only useful if the goal is better than 1 ulp worst-case error. */
+ double_t hi, lo;
+ lo = scale - y + scale * tmp;
+ hi = 1.0 + y;
+ lo = 1.0 - hi + y + lo;
+ y = math_narrow_eval (hi + lo) - 1.0;
+ /* Avoid -0.0 with downward rounding. */
+ if (WANT_ROUNDING && y == 0.0)
+ y = 0.0;
+ /* The underflow exception needs to be signaled explicitly. */
+ math_force_eval (math_opt_barrier (0x1p-1022) * 0x1p-1022);
+ }
+ y = 0x1p-1022 * y;
+ return check_uflow (y);
+}
-static const double TWO1023 = 8.988465674311579539e+307;
-static const double TWOM1000 = 9.3326361850321887899e-302;
+/* Top 12 bits of a double (sign and exponent bits). */
+static inline uint32_t
+top12 (double x)
+{
+ return asuint64 (x) >> 52;
+}
double
-__ieee754_exp2 (double x)
+__exp2 (double x)
{
- static const double himark = (double) DBL_MAX_EXP;
- static const double lomark = (double) (DBL_MIN_EXP - DBL_MANT_DIG - 1);
-
- /* Check for usual case. */
- if (__glibc_likely (isless (x, himark)))
+ uint32_t abstop;
+ uint64_t ki, idx, top, sbits;
+ /* double_t for better performance on targets with FLT_EVAL_METHOD==2. */
+ double_t kd, r, r2, scale, tail, tmp;
+
+ abstop = top12 (x) & 0x7ff;
+ if (__glibc_unlikely (abstop - top12 (0x1p-54)
+ >= top12 (512.0) - top12 (0x1p-54)))
{
- /* Exceptional cases: */
- if (__glibc_unlikely (!isgreaterequal (x, lomark)))
- {
- if (isinf (x))
- /* e^-inf == 0, with no error. */
- return 0;
- else
- /* Underflow */
- return TWOM1000 * TWOM1000;
- }
-
- static const double THREEp42 = 13194139533312.0;
- int tval, unsafe;
- double rx, x22, result;
- union ieee754_double ex2_u, scale_u;
-
- if (fabs (x) < DBL_EPSILON / 4.0)
- return 1.0 + x;
-
- {
- SET_RESTORE_ROUND_NOEX (FE_TONEAREST);
-
- /* 1. Argument reduction.
- Choose integers ex, -256 <= t < 256, and some real
- -1/1024 <= x1 <= 1024 so that
- x = ex + t/512 + x1.
-
- First, calculate rx = ex + t/512. */
- rx = x + THREEp42;
- rx -= THREEp42;
- x -= rx; /* Compute x=x1. */
- /* Compute tval = (ex*512 + t)+256.
- Now, t = (tval mod 512)-256 and ex=tval/512 [that's mod, NOT %;
- and /-round-to-nearest not the usual c integer /]. */
- tval = (int) (rx * 512.0 + 256.0);
-
- /* 2. Adjust for accurate table entry.
- Find e so that
- x = ex + t/512 + e + x2
- where -1e6 < e < 1e6, and
- (double)(2^(t/512+e))
- is accurate to one part in 2^-64. */
-
- /* 'tval & 511' is the same as 'tval%512' except that it's always
- positive.
- Compute x = x2. */
- x -= exp2_deltatable[tval & 511];
-
- /* 3. Compute ex2 = 2^(t/512+e+ex). */
- ex2_u.d = exp2_accuratetable[tval & 511];
- tval >>= 9;
- /* x2 is an integer multiple of 2^-54; avoid intermediate
- underflow from the calculation of x22 * x. */
- unsafe = abs (tval) >= -DBL_MIN_EXP - 56;
- ex2_u.ieee.exponent += tval >> unsafe;
- scale_u.d = 1.0;
- scale_u.ieee.exponent += tval - (tval >> unsafe);
-
- /* 4. Approximate 2^x2 - 1, using a fourth-degree polynomial,
- with maximum error in [-2^-10-2^-30,2^-10+2^-30]
- less than 10^-19. */
-
- x22 = (((.0096181293647031180
- * x + .055504110254308625)
- * x + .240226506959100583)
- * x + .69314718055994495) * ex2_u.d;
- math_opt_barrier (x22);
- }
-
- /* 5. Return (2^x2-1) * 2^(t/512+e+ex) + 2^(t/512+e+ex). */
- result = x22 * x + ex2_u.d;
-
- if (!unsafe)
- return result;
- else
+ if (abstop - top12 (0x1p-54) >= 0x80000000)
+ /* Avoid spurious underflow for tiny x. */
+ /* Note: 0 is common input. */
+ return WANT_ROUNDING ? 1.0 + x : 1.0;
+ if (abstop >= top12 (1024.0))
{
- result *= scale_u.d;
- math_check_force_underflow_nonneg (result);
- return result;
+ if (asuint64 (x) == asuint64 (-INFINITY))
+ return 0.0;
+ if (abstop >= top12 (INFINITY))
+ return 1.0 + x;
+ if (!(asuint64 (x) >> 63))
+ return __math_oflow (0);
+ else if (asuint64 (x) >= asuint64 (-1075.0))
+ return __math_uflow (0);
}
+ if (2 * asuint64 (x) > 2 * asuint64 (928.0))
+ /* Large x is special cased below. */
+ abstop = 0;
}
- else
- /* Return x, if x is a NaN or Inf; or overflow, otherwise. */
- return TWO1023 * x;
+
+ /* exp2(x) = 2^(k/N) * 2^r, with 2^r in [2^(-1/2N),2^(1/2N)]. */
+ /* x = k/N + r, with int k and r in [-1/2N, 1/2N]. */
+ kd = math_narrow_eval (x + Shift);
+ ki = asuint64 (kd); /* k. */
+ kd -= Shift; /* k/N for int k. */
+ r = x - kd;
+ /* 2^(k/N) ~= scale * (1 + tail). */
+ idx = 2 * (ki % N);
+ top = ki << (52 - EXP_TABLE_BITS);
+ tail = asdouble (T[idx]);
+ /* This is only a valid scale when -1023*N < k < 1024*N. */
+ sbits = T[idx + 1] + top;
+ /* exp2(x) = 2^(k/N) * 2^r ~= scale + scale * (tail + 2^r - 1). */
+ /* Evaluation is optimized assuming superscalar pipelined execution. */
+ r2 = r * r;
+ /* Without fma the worst case error is 0.5/N ulp larger. */
+ /* Worst case error is less than 0.5+0.86/N+(abs poly error * 2^53) ulp. */
+ tmp = tail + r * C1 + r2 * (C2 + r * C3) + r2 * r2 * (C4 + r * C5);
+ if (__glibc_unlikely (abstop == 0))
+ return specialcase (tmp, sbits, ki);
+ scale = asdouble (sbits);
+ /* Note: tmp == 0 or |tmp| > 2^-65 and scale > 2^-928, so there
+ is no spurious underflow here even without fma. */
+ return scale + scale * tmp;
}
-strong_alias (__ieee754_exp2, __exp2_finite)
+#ifndef __exp2
+strong_alias (__exp2, __ieee754_exp2)
+strong_alias (__exp2, __exp2_finite)
+# if LIBM_SVID_COMPAT
+versioned_symbol (libm, __exp2, exp2, GLIBC_2_29);
+libm_alias_double_other (__exp2, exp2)
+# else
+libm_alias_double (__exp2, exp2)
+# endif
+#endif
diff --git a/sysdeps/ieee754/dbl-64/e_exp_data.c b/sysdeps/ieee754/dbl-64/e_exp_data.c
new file mode 100644
index 0000000000..cbfb78e448
--- /dev/null
+++ b/sysdeps/ieee754/dbl-64/e_exp_data.c
@@ -0,0 +1,196 @@
+/* Shared data between exp, exp2 and pow.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include "math_config.h"
+
+#define N (1 << EXP_TABLE_BITS)
+
+const struct exp_data __exp_data = {
+// N/ln2
+.invln2N = 0x1.71547652b82fep0 * N,
+// -ln2/N
+#if N == 128
+.negln2hiN = -0x1.62e42fefa0000p-8,
+.negln2loN = -0x1.cf79abc9e3b3ap-47,
+#endif
+// Used for rounding when !TOINT_INTRINSICS
+.shift = 0x1.8p52,
+// exp polynomial coefficients.
+.poly = {
+#if N == 128 && EXP_POLY_ORDER == 5
+// abs error: 1.555*2^-66
+// ulp error: 0.509 (0.511 without fma)
+// if |x| < ln2/256+eps
+// abs error if |x| < ln2/128: 1.7145*2^-56
+0x1.ffffffffffdbdp-2,
+0x1.555555555543cp-3,
+0x1.55555cf172b91p-5,
+0x1.1111167a4d017p-7,
+#endif
+},
+.exp2_shift = 0x1.8p52 / N,
+// exp2 polynomial coefficients.
+.exp2_poly = {
+#if N == 128 && EXP2_POLY_ORDER == 5
+// abs error: 1.2195*2^-65
+// ulp error: 0.507 (0.511 without fma)
+// if |x| < 1/256
+// abs error if |x| < 1/128: 1.9941*2^-56
+0x1.62e42fefa39efp-1,
+0x1.ebfbdff82c424p-3,
+0x1.c6b08d70cf4b5p-5,
+0x1.3b2abd24650ccp-7,
+0x1.5d7e09b4e3a84p-10,
+#endif
+},
+// 2^(k/N) ~= H[k]*(1 + T[k]) for int k in [0,N)
+// tab[2*k] = asuint64(T[k])
+// tab[2*k+1] = asuint64(H[k]) - (k << 52)/N
+.tab = {
+#if N == 128
+0x0, 0x3ff0000000000000,
+0x3c9b3b4f1a88bf6e, 0x3feff63da9fb3335,
+0xbc7160139cd8dc5d, 0x3fefec9a3e778061,
+0xbc905e7a108766d1, 0x3fefe315e86e7f85,
+0x3c8cd2523567f613, 0x3fefd9b0d3158574,
+0xbc8bce8023f98efa, 0x3fefd06b29ddf6de,
+0x3c60f74e61e6c861, 0x3fefc74518759bc8,
+0x3c90a3e45b33d399, 0x3fefbe3ecac6f383,
+0x3c979aa65d837b6d, 0x3fefb5586cf9890f,
+0x3c8eb51a92fdeffc, 0x3fefac922b7247f7,
+0x3c3ebe3d702f9cd1, 0x3fefa3ec32d3d1a2,
+0xbc6a033489906e0b, 0x3fef9b66affed31b,
+0xbc9556522a2fbd0e, 0x3fef9301d0125b51,
+0xbc5080ef8c4eea55, 0x3fef8abdc06c31cc,
+0xbc91c923b9d5f416, 0x3fef829aaea92de0,
+0x3c80d3e3e95c55af, 0x3fef7a98c8a58e51,
+0xbc801b15eaa59348, 0x3fef72b83c7d517b,
+0xbc8f1ff055de323d, 0x3fef6af9388c8dea,
+0x3c8b898c3f1353bf, 0x3fef635beb6fcb75,
+0xbc96d99c7611eb26, 0x3fef5be084045cd4,
+0x3c9aecf73e3a2f60, 0x3fef54873168b9aa,
+0xbc8fe782cb86389d, 0x3fef4d5022fcd91d,
+0x3c8a6f4144a6c38d, 0x3fef463b88628cd6,
+0x3c807a05b0e4047d, 0x3fef3f49917ddc96,
+0x3c968efde3a8a894, 0x3fef387a6e756238,
+0x3c875e18f274487d, 0x3fef31ce4fb2a63f,
+0x3c80472b981fe7f2, 0x3fef2b4565e27cdd,
+0xbc96b87b3f71085e, 0x3fef24dfe1f56381,
+0x3c82f7e16d09ab31, 0x3fef1e9df51fdee1,
+0xbc3d219b1a6fbffa, 0x3fef187fd0dad990,
+0x3c8b3782720c0ab4, 0x3fef1285a6e4030b,
+0x3c6e149289cecb8f, 0x3fef0cafa93e2f56,
+0x3c834d754db0abb6, 0x3fef06fe0a31b715,
+0x3c864201e2ac744c, 0x3fef0170fc4cd831,
+0x3c8fdd395dd3f84a, 0x3feefc08b26416ff,
+0xbc86a3803b8e5b04, 0x3feef6c55f929ff1,
+0xbc924aedcc4b5068, 0x3feef1a7373aa9cb,
+0xbc9907f81b512d8e, 0x3feeecae6d05d866,
+0xbc71d1e83e9436d2, 0x3feee7db34e59ff7,
+0xbc991919b3ce1b15, 0x3feee32dc313a8e5,
+0x3c859f48a72a4c6d, 0x3feedea64c123422,
+0xbc9312607a28698a, 0x3feeda4504ac801c,
+0xbc58a78f4817895b, 0x3feed60a21f72e2a,
+0xbc7c2c9b67499a1b, 0x3feed1f5d950a897,
+0x3c4363ed60c2ac11, 0x3feece086061892d,
+0x3c9666093b0664ef, 0x3feeca41ed1d0057,
+0x3c6ecce1daa10379, 0x3feec6a2b5c13cd0,
+0x3c93ff8e3f0f1230, 0x3feec32af0d7d3de,
+0x3c7690cebb7aafb0, 0x3feebfdad5362a27,
+0x3c931dbdeb54e077, 0x3feebcb299fddd0d,
+0xbc8f94340071a38e, 0x3feeb9b2769d2ca7,
+0xbc87deccdc93a349, 0x3feeb6daa2cf6642,
+0xbc78dec6bd0f385f, 0x3feeb42b569d4f82,
+0xbc861246ec7b5cf6, 0x3feeb1a4ca5d920f,
+0x3c93350518fdd78e, 0x3feeaf4736b527da,
+0x3c7b98b72f8a9b05, 0x3feead12d497c7fd,
+0x3c9063e1e21c5409, 0x3feeab07dd485429,
+0x3c34c7855019c6ea, 0x3feea9268a5946b7,
+0x3c9432e62b64c035, 0x3feea76f15ad2148,
+0xbc8ce44a6199769f, 0x3feea5e1b976dc09,
+0xbc8c33c53bef4da8, 0x3feea47eb03a5585,
+0xbc845378892be9ae, 0x3feea34634ccc320,
+0xbc93cedd78565858, 0x3feea23882552225,
+0x3c5710aa807e1964, 0x3feea155d44ca973,
+0xbc93b3efbf5e2228, 0x3feea09e667f3bcd,
+0xbc6a12ad8734b982, 0x3feea012750bdabf,
+0xbc6367efb86da9ee, 0x3fee9fb23c651a2f,
+0xbc80dc3d54e08851, 0x3fee9f7df9519484,
+0xbc781f647e5a3ecf, 0x3fee9f75e8ec5f74,
+0xbc86ee4ac08b7db0, 0x3fee9f9a48a58174,
+0xbc8619321e55e68a, 0x3fee9feb564267c9,
+0x3c909ccb5e09d4d3, 0x3feea0694fde5d3f,
+0xbc7b32dcb94da51d, 0x3feea11473eb0187,
+0x3c94ecfd5467c06b, 0x3feea1ed0130c132,
+0x3c65ebe1abd66c55, 0x3feea2f336cf4e62,
+0xbc88a1c52fb3cf42, 0x3feea427543e1a12,
+0xbc9369b6f13b3734, 0x3feea589994cce13,
+0xbc805e843a19ff1e, 0x3feea71a4623c7ad,
+0xbc94d450d872576e, 0x3feea8d99b4492ed,
+0x3c90ad675b0e8a00, 0x3feeaac7d98a6699,
+0x3c8db72fc1f0eab4, 0x3feeace5422aa0db,
+0xbc65b6609cc5e7ff, 0x3feeaf3216b5448c,
+0x3c7bf68359f35f44, 0x3feeb1ae99157736,
+0xbc93091fa71e3d83, 0x3feeb45b0b91ffc6,
+0xbc5da9b88b6c1e29, 0x3feeb737b0cdc5e5,
+0xbc6c23f97c90b959, 0x3feeba44cbc8520f,
+0xbc92434322f4f9aa, 0x3feebd829fde4e50,
+0xbc85ca6cd7668e4b, 0x3feec0f170ca07ba,
+0x3c71affc2b91ce27, 0x3feec49182a3f090,
+0x3c6dd235e10a73bb, 0x3feec86319e32323,
+0xbc87c50422622263, 0x3feecc667b5de565,
+0x3c8b1c86e3e231d5, 0x3feed09bec4a2d33,
+0xbc91bbd1d3bcbb15, 0x3feed503b23e255d,
+0x3c90cc319cee31d2, 0x3feed99e1330b358,
+0x3c8469846e735ab3, 0x3feede6b5579fdbf,
+0xbc82dfcd978e9db4, 0x3feee36bbfd3f37a,
+0x3c8c1a7792cb3387, 0x3feee89f995ad3ad,
+0xbc907b8f4ad1d9fa, 0x3feeee07298db666,
+0xbc55c3d956dcaeba, 0x3feef3a2b84f15fb,
+0xbc90a40e3da6f640, 0x3feef9728de5593a,
+0xbc68d6f438ad9334, 0x3feeff76f2fb5e47,
+0xbc91eee26b588a35, 0x3fef05b030a1064a,
+0x3c74ffd70a5fddcd, 0x3fef0c1e904bc1d2,
+0xbc91bdfbfa9298ac, 0x3fef12c25bd71e09,
+0x3c736eae30af0cb3, 0x3fef199bdd85529c,
+0x3c8ee3325c9ffd94, 0x3fef20ab5fffd07a,
+0x3c84e08fd10959ac, 0x3fef27f12e57d14b,
+0x3c63cdaf384e1a67, 0x3fef2f6d9406e7b5,
+0x3c676b2c6c921968, 0x3fef3720dcef9069,
+0xbc808a1883ccb5d2, 0x3fef3f0b555dc3fa,
+0xbc8fad5d3ffffa6f, 0x3fef472d4a07897c,
+0xbc900dae3875a949, 0x3fef4f87080d89f2,
+0x3c74a385a63d07a7, 0x3fef5818dcfba487,
+0xbc82919e2040220f, 0x3fef60e316c98398,
+0x3c8e5a50d5c192ac, 0x3fef69e603db3285,
+0x3c843a59ac016b4b, 0x3fef7321f301b460,
+0xbc82d52107b43e1f, 0x3fef7c97337b9b5f,
+0xbc892ab93b470dc9, 0x3fef864614f5a129,
+0x3c74b604603a88d3, 0x3fef902ee78b3ff6,
+0x3c83c5ec519d7271, 0x3fef9a51fbc74c83,
+0xbc8ff7128fd391f0, 0x3fefa4afa2a490da,
+0xbc8dae98e223747d, 0x3fefaf482d8e67f1,
+0x3c8ec3bc41aa2008, 0x3fefba1bee615a27,
+0x3c842b94c3a9eb32, 0x3fefc52b376bba97,
+0x3c8a64a931d185ee, 0x3fefd0765b6e4540,
+0xbc8e37bae43be3ed, 0x3fefdbfdad9cbe14,
+0x3c77893b4d91cd9d, 0x3fefe7c1819e90d8,
+0x3c5305c14160cc89, 0x3feff3c22b8f71f1,
+#endif
+},
+};
diff --git a/sysdeps/ieee754/dbl-64/e_gamma_r.c b/sysdeps/ieee754/dbl-64/e_gamma_r.c
index 2744549cbd..5981f0d816 100644
--- a/sysdeps/ieee754/dbl-64/e_gamma_r.c
+++ b/sysdeps/ieee754/dbl-64/e_gamma_r.c
@@ -1,5 +1,5 @@
/* Implementation of gamma function according to ISO C.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@@ -15,11 +15,12 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math-narrow-eval.h>
#include <math_private.h>
+#include <fenv_private.h>
#include <math-underflow.h>
#include <float.h>
@@ -60,7 +61,7 @@ gamma_positive (double x, int *exp2_adj)
{
/* Adjust into the range for using exp (lgamma). */
*exp2_adj = 0;
- double n = __ceil (x - 1.5);
+ double n = ceil (x - 1.5);
double x_adj = x - n;
double eps;
double prod = __gamma_product (x_adj, 0, n, &eps);
@@ -77,7 +78,7 @@ gamma_positive (double x, int *exp2_adj)
{
/* Adjust into the range for applying Stirling's
approximation. */
- double n = __ceil (12.0 - x);
+ double n = ceil (12.0 - x);
x_adj = math_narrow_eval (x + n);
x_eps = (x - (x_adj - n));
prod = __gamma_product (x_adj - n, x_eps, n, &eps);
@@ -87,7 +88,7 @@ gamma_positive (double x, int *exp2_adj)
starting by computing pow (X_ADJ, X_ADJ) with a power of 2
factored out. */
double exp_adj = -eps;
- double x_adj_int = __round (x_adj);
+ double x_adj_int = round (x_adj);
double x_adj_frac = x_adj - x_adj_int;
int x_adj_log2;
double x_adj_mant = __frexp (x_adj, &x_adj_log2);
@@ -128,7 +129,7 @@ __ieee754_gamma_r (double x, int *signgamp)
return 1.0 / x;
}
if (__builtin_expect (hx < 0, 0)
- && (uint32_t) hx < 0xfff00000 && __rint (x) == x)
+ && (uint32_t) hx < 0xfff00000 && rint (x) == x)
{
/* Return value for integer x < 0 is NaN with invalid exception. */
*signgamp = 0;
@@ -172,8 +173,8 @@ __ieee754_gamma_r (double x, int *signgamp)
}
else
{
- double tx = __trunc (x);
- *signgamp = (tx == 2.0 * __trunc (tx / 2.0)) ? -1 : 1;
+ double tx = trunc (x);
+ *signgamp = (tx == 2.0 * trunc (tx / 2.0)) ? -1 : 1;
if (x <= -184.0)
/* Underflow. */
ret = DBL_MIN * DBL_MIN;
@@ -198,22 +199,22 @@ __ieee754_gamma_r (double x, int *signgamp)
{
if (*signgamp < 0)
{
- ret = math_narrow_eval (-__copysign (DBL_MAX, ret) * DBL_MAX);
+ ret = math_narrow_eval (-copysign (DBL_MAX, ret) * DBL_MAX);
ret = -ret;
}
else
- ret = math_narrow_eval (__copysign (DBL_MAX, ret) * DBL_MAX);
+ ret = math_narrow_eval (copysign (DBL_MAX, ret) * DBL_MAX);
return ret;
}
else if (ret == 0)
{
if (*signgamp < 0)
{
- ret = math_narrow_eval (-__copysign (DBL_MIN, ret) * DBL_MIN);
+ ret = math_narrow_eval (-copysign (DBL_MIN, ret) * DBL_MIN);
ret = -ret;
}
else
- ret = math_narrow_eval (__copysign (DBL_MIN, ret) * DBL_MIN);
+ ret = math_narrow_eval (copysign (DBL_MIN, ret) * DBL_MIN);
return ret;
}
else
diff --git a/sysdeps/ieee754/dbl-64/e_jn.c b/sysdeps/ieee754/dbl-64/e_jn.c
index 9181b22bb8..90a7e77270 100644
--- a/sysdeps/ieee754/dbl-64/e_jn.c
+++ b/sysdeps/ieee754/dbl-64/e_jn.c
@@ -41,6 +41,7 @@
#include <math.h>
#include <math-narrow-eval.h>
#include <math_private.h>
+#include <fenv_private.h>
#include <math-underflow.h>
static const double
@@ -108,6 +109,7 @@ __ieee754_jn (int n, double x)
case 1: temp = -c + s; break;
case 2: temp = -c - s; break;
case 3: temp = c - s; break;
+ default: __builtin_unreachable ();
}
b = invsqrtpi * temp / sqrt (x);
}
@@ -249,7 +251,7 @@ __ieee754_jn (int n, double x)
}
if (ret == 0)
{
- ret = math_narrow_eval (__copysign (DBL_MIN, ret) * DBL_MIN);
+ ret = math_narrow_eval (copysign (DBL_MIN, ret) * DBL_MIN);
__set_errno (ERANGE);
}
else
@@ -315,6 +317,7 @@ __ieee754_yn (int n, double x)
case 1: temp = -s - c; break;
case 2: temp = -s + c; break;
case 3: temp = s + c; break;
+ default: __builtin_unreachable ();
}
b = invsqrtpi * temp / sqrt (x);
}
@@ -343,7 +346,7 @@ __ieee754_yn (int n, double x)
}
out:
if (isinf (ret))
- ret = __copysign (DBL_MAX, ret) * DBL_MAX;
+ ret = copysign (DBL_MAX, ret) * DBL_MAX;
return ret;
}
strong_alias (__ieee754_yn, __yn_finite)
diff --git a/sysdeps/ieee754/dbl-64/e_lgamma_r.c b/sysdeps/ieee754/dbl-64/e_lgamma_r.c
index 17717d915f..88051bc75b 100644
--- a/sysdeps/ieee754/dbl-64/e_lgamma_r.c
+++ b/sysdeps/ieee754/dbl-64/e_lgamma_r.c
@@ -168,10 +168,10 @@ sin_pi(double x)
* argument reduction, make sure inexact flag not raised if input
* is an integer
*/
- z = __floor(y);
+ z = floor(y);
if(z!=y) { /* inexact anyway */
y *= 0.5;
- y = 2.0*(y - __floor(y)); /* y = |x| mod 2.0 */
+ y = 2.0*(y - floor(y)); /* y = |x| mod 2.0 */
n = (int) (y*4.0);
} else {
if(ix>=0x43400000) {
diff --git a/sysdeps/ieee754/dbl-64/e_log.c b/sysdeps/ieee754/dbl-64/e_log.c
index 2483dd8551..8030da605e 100644
--- a/sysdeps/ieee754/dbl-64/e_log.c
+++ b/sysdeps/ieee754/dbl-64/e_log.c
@@ -1,167 +1,142 @@
-/*
- * IBM Accurate Mathematical Library
- * written by International Business Machines Corp.
- * Copyright (C) 2001-2018 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 by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program 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 this program; if not, see <http://www.gnu.org/licenses/>.
- */
-/*********************************************************************/
-/* */
-/* MODULE_NAME:ulog.c */
-/* */
-/* FUNCTION:ulog */
-/* */
-/* FILES NEEDED: dla.h endian.h mpa.h mydefs.h ulog.h */
-/* ulog.tbl */
-/* */
-/* An ultimate log routine. Given an IEEE double machine number x */
-/* it computes the rounded (to nearest) value of log(x). */
-/* Assumption: Machine arithmetic operations are performed in */
-/* round to nearest mode of IEEE 754 standard. */
-/* */
-/*********************************************************************/
+/* Double-precision log(x) function.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
-#include "endian.h"
-#include <dla.h>
-#include "mpa.h"
-#include "MathLib.h"
#include <math.h>
-#include <math_private.h>
+#include <stdint.h>
+#include <math-svid-compat.h>
+#include <shlib-compat.h>
+#include <libm-alias-double.h>
+#include "math_config.h"
+
+#define T __log_data.tab
+#define T2 __log_data.tab2
+#define B __log_data.poly1
+#define A __log_data.poly
+#define Ln2hi __log_data.ln2hi
+#define Ln2lo __log_data.ln2lo
+#define N (1 << LOG_TABLE_BITS)
+#define OFF 0x3fe6000000000000
+
+/* Top 16 bits of a double. */
+static inline uint32_t
+top16 (double x)
+{
+ return asuint64 (x) >> 48;
+}
#ifndef SECTION
# define SECTION
#endif
-/*********************************************************************/
-/* An ultimate log routine. Given an IEEE double machine number x */
-/* it computes the rounded (to nearest) value of log(x). */
-/*********************************************************************/
double
SECTION
-__ieee754_log (double x)
+__log (double x)
{
- int i, j, n, ux, dx;
- double dbl_n, u, p0, q, r0, w, nln2a, luai, lubi, lvaj, lvbj,
- sij, ssij, ttij, A, B, B0, polI, polII, t8, a, aa, b, bb, c;
-#ifndef DLA_FMS
- double t1, t2, t3, t4, t5;
-#endif
- number num;
-
-#include "ulog.tbl"
-#include "ulog.h"
-
- /* Treating special values of x ( x<=0, x=INF, x=NaN etc.). */
-
- num.d = x;
- ux = num.i[HIGH_HALF];
- dx = num.i[LOW_HALF];
- n = 0;
- if (__glibc_unlikely (ux < 0x00100000))
+ /* double_t for better performance on targets with FLT_EVAL_METHOD==2. */
+ double_t w, z, r, r2, r3, y, invc, logc, kd, hi, lo;
+ uint64_t ix, iz, tmp;
+ uint32_t top;
+ int k, i;
+
+ ix = asuint64 (x);
+ top = top16 (x);
+
+#define LO asuint64 (1.0 - 0x1p-4)
+#define HI asuint64 (1.0 + 0x1.09p-4)
+ if (__glibc_unlikely (ix - LO < HI - LO))
{
- if (__glibc_unlikely (((ux & 0x7fffffff) | dx) == 0))
- return MHALF / 0.0; /* return -INF */
- if (__glibc_unlikely (ux < 0))
- return (x - x) / 0.0; /* return NaN */
- n -= 54;
- x *= two54.d; /* scale x */
- num.d = x;
+ /* Handle close to 1.0 inputs separately. */
+ /* Fix sign of zero with downward rounding when x==1. */
+ if (WANT_ROUNDING && __glibc_unlikely (ix == asuint64 (1.0)))
+ return 0;
+ r = x - 1.0;
+ r2 = r * r;
+ r3 = r * r2;
+ y = r3 * (B[1] + r * B[2] + r2 * B[3]
+ + r3 * (B[4] + r * B[5] + r2 * B[6]
+ + r3 * (B[7] + r * B[8] + r2 * B[9] + r3 * B[10])));
+ /* Worst-case error is around 0.507 ULP. */
+ w = r * 0x1p27;
+ double_t rhi = r + w - w;
+ double_t rlo = r - rhi;
+ w = rhi * rhi * B[0]; /* B[0] == -0.5. */
+ hi = r + w;
+ lo = r - hi + w;
+ lo += B[0] * rlo * (rhi + r);
+ y += lo;
+ y += hi;
+ return y;
}
- if (__glibc_unlikely (ux >= 0x7ff00000))
- return x + x; /* INF or NaN */
-
- /* Regular values of x */
-
- w = x - 1;
- if (__glibc_likely (fabs (w) > U03))
- goto case_03;
-
- /* log (1) is +0 in all rounding modes. */
- if (w == 0.0)
- return 0.0;
-
- /*--- The case abs(x-1) < 0.03 */
-
- t8 = MHALF * w;
- EMULV (t8, w, a, aa, t1, t2, t3, t4, t5);
- EADD (w, a, b, bb);
- /* Evaluate polynomial II */
- polII = b7.d + w * b8.d;
- polII = b6.d + w * polII;
- polII = b5.d + w * polII;
- polII = b4.d + w * polII;
- polII = b3.d + w * polII;
- polII = b2.d + w * polII;
- polII = b1.d + w * polII;
- polII = b0.d + w * polII;
- polII *= w * w * w;
- c = (aa + bb) + polII;
-
- /* Here b contains the high part of the result, and c the low part.
- Maximum error is b * 2.334e-19, so accuracy is >61 bits.
- Therefore max ULP error of b + c is ~0.502. */
- return b + c;
-
- /*--- The case abs(x-1) > 0.03 */
-case_03:
-
- /* Find n,u such that x = u*2**n, 1/sqrt(2) < u < sqrt(2) */
- n += (num.i[HIGH_HALF] >> 20) - 1023;
- num.i[HIGH_HALF] = (num.i[HIGH_HALF] & 0x000fffff) | 0x3ff00000;
- if (num.d > SQRT_2)
+ if (__glibc_unlikely (top - 0x0010 >= 0x7ff0 - 0x0010))
{
- num.d *= HALF;
- n++;
+ /* x < 0x1p-1022 or inf or nan. */
+ if (ix * 2 == 0)
+ return __math_divzero (1);
+ if (ix == asuint64 (INFINITY)) /* log(inf) == inf. */
+ return x;
+ if ((top & 0x8000) || (top & 0x7ff0) == 0x7ff0)
+ return __math_invalid (x);
+ /* x is subnormal, normalize it. */
+ ix = asuint64 (x * 0x1p52);
+ ix -= 52ULL << 52;
}
- u = num.d;
- dbl_n = (double) n;
-
- /* Find i such that ui=1+(i-75)/2**8 is closest to u (i= 0,1,2,...,181) */
- num.d += h1.d;
- i = (num.i[HIGH_HALF] & 0x000fffff) >> 12;
-
- /* Find j such that vj=1+(j-180)/2**16 is closest to v=u/ui (j= 0,...,361) */
- num.d = u * Iu[i].d + h2.d;
- j = (num.i[HIGH_HALF] & 0x000fffff) >> 4;
- /* Compute w=(u-ui*vj)/(ui*vj) */
- p0 = (1 + (i - 75) * DEL_U) * (1 + (j - 180) * DEL_V);
- q = u - p0;
- r0 = Iu[i].d * Iv[j].d;
- w = q * r0;
-
- /* Evaluate polynomial I */
- polI = w + (a2.d + a3.d * w) * w * w;
-
- /* Add up everything */
- nln2a = dbl_n * LN2A;
- luai = Lu[i][0].d;
- lubi = Lu[i][1].d;
- lvaj = Lv[j][0].d;
- lvbj = Lv[j][1].d;
- EADD (luai, lvaj, sij, ssij);
- EADD (nln2a, sij, A, ttij);
- B0 = (((lubi + lvbj) + ssij) + ttij) + dbl_n * LN2B;
- B = polI + B0;
-
- /* Here A contains the high part of the result, and B the low part.
- Maximum abs error is 6.095e-21 and min log (x) is 0.0295 since x > 1.03.
- Therefore max ULP error of A + B is ~0.502. */
- return A + B;
+ /* x = 2^k z; where z is in range [OFF,2*OFF) and exact.
+ The range is split into N subintervals.
+ The ith subinterval contains z and c is near its center. */
+ tmp = ix - OFF;
+ i = (tmp >> (52 - LOG_TABLE_BITS)) % N;
+ k = (int64_t) tmp >> 52; /* arithmetic shift */
+ iz = ix - (tmp & 0xfffULL << 52);
+ invc = T[i].invc;
+ logc = T[i].logc;
+ z = asdouble (iz);
+
+ /* log(x) = log1p(z/c-1) + log(c) + k*Ln2. */
+ /* r ~= z/c - 1, |r| < 1/(2*N). */
+#ifdef __FP_FAST_FMA
+ /* rounding error: 0x1p-55/N. */
+ r = __builtin_fma (z, invc, -1.0);
+#else
+ /* rounding error: 0x1p-55/N + 0x1p-66. */
+ r = (z - T2[i].chi - T2[i].clo) * invc;
+#endif
+ kd = (double_t) k;
+
+ /* hi + lo = r + log(c) + k*Ln2. */
+ w = kd * Ln2hi + logc;
+ hi = w + r;
+ lo = w - hi + r + kd * Ln2lo;
+
+ /* log(x) = lo + (log1p(r) - r) + hi. */
+ r2 = r * r; /* rounding error: 0x1p-54/N^2. */
+ /* Worst case error if |y| > 0x1p-4: 0.519 ULP (0.520 ULP without fma).
+ 0.5 + 2.06/N + abs-poly-error*2^56 ULP (+ 0.001 ULP without fma). */
+ y = lo + r2 * A[0] + r * r2 * (A[1] + r * A[2] + r2 * (A[3] + r * A[4])) + hi;
+ return y;
}
-
-#ifndef __ieee754_log
-strong_alias (__ieee754_log, __log_finite)
+#ifndef __log
+strong_alias (__log, __ieee754_log)
+strong_alias (__log, __log_finite)
+# if LIBM_SVID_COMPAT
+versioned_symbol (libm, __log, log, GLIBC_2_29);
+libm_alias_double_other (__log, log)
+# else
+libm_alias_double (__log, log)
+# endif
#endif
diff --git a/sysdeps/ieee754/dbl-64/e_log2.c b/sysdeps/ieee754/dbl-64/e_log2.c
index e4a6aff9a3..b999141ff9 100644
--- a/sysdeps/ieee754/dbl-64/e_log2.c
+++ b/sysdeps/ieee754/dbl-64/e_log2.c
@@ -1,133 +1,151 @@
-/* Adapted for log2 by Ulrich Drepper <drepper@cygnus.com>. */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
+/* Double-precision log2(x) function.
+ Copyright (C) 2018-2019 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
-/* __ieee754_log2(x)
- * Return the logarithm to base 2 of x
- *
- * Method :
- * 1. Argument Reduction: find k and f such that
- * x = 2^k * (1+f),
- * where sqrt(2)/2 < 1+f < sqrt(2) .
- *
- * 2. Approximation of log(1+f).
- * Let s = f/(2+f) ; based on log(1+f) = log(1+s) - log(1-s)
- * = 2s + 2/3 s**3 + 2/5 s**5 + .....,
- * = 2s + s*R
- * We use a special Reme algorithm on [0,0.1716] to generate
- * a polynomial of degree 14 to approximate R The maximum error
- * of this polynomial approximation is bounded by 2**-58.45. In
- * other words,
- * 2 4 6 8 10 12 14
- * R(z) ~ Lg1*s +Lg2*s +Lg3*s +Lg4*s +Lg5*s +Lg6*s +Lg7*s
- * (the values of Lg1 to Lg7 are listed in the program)
- * and
- * | 2 14 | -58.45
- * | Lg1*s +...+Lg7*s - R(z) | <= 2
- * | |
- * Note that 2s = f - s*f = f - hfsq + s*hfsq, where hfsq = f*f/2.
- * In order to guarantee error in log below 1ulp, we compute log
- * by
- * log(1+f) = f - s*(f - R) (if f is not too large)
- * log(1+f) = f - (hfsq - s*(hfsq+R)). (better accuracy)
- *
- * 3. Finally, log(x) = k + log(1+f).
- * = k+(f-(hfsq-(s*(hfsq+R))))
- *
- * Special cases:
- * log2(x) is NaN with signal if x < 0 (including -INF) ;
- * log2(+INF) is +INF; log(0) is -INF with signal;
- * log2(NaN) is that NaN with no signal.
- *
- * Constants:
- * The hexadecimal values are the intended ones for the following
- * constants. The decimal values may be used, provided that the
- * compiler will convert from decimal to binary accurately enough
- * to produce the hexadecimal values shown.
- */
+ 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
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
-#include <math_private.h>
-#include <fix-int-fp-convert-zero.h>
+#include <stdint.h>
+#include <math-svid-compat.h>
+#include <shlib-compat.h>
+#include <libm-alias-double.h>
+#include "math_config.h"
-static const double ln2 = 0.69314718055994530942;
-static const double two54 = 1.80143985094819840000e+16; /* 43500000 00000000 */
-static const double Lg1 = 6.666666666666735130e-01; /* 3FE55555 55555593 */
-static const double Lg2 = 3.999999999940941908e-01; /* 3FD99999 9997FA04 */
-static const double Lg3 = 2.857142874366239149e-01; /* 3FD24924 94229359 */
-static const double Lg4 = 2.222219843214978396e-01; /* 3FCC71C5 1D8E78AF */
-static const double Lg5 = 1.818357216161805012e-01; /* 3FC74664 96CB03DE */
-static const double Lg6 = 1.531383769920937332e-01; /* 3FC39A09 D078C69F */
-static const double Lg7 = 1.479819860511658591e-01; /* 3FC2F112 DF3E5244 */
+#define T __log2_data.tab
+#define T2 __log2_data.tab2
+#define B __log2_data.poly1
+#define A __log2_data.poly
+#define InvLn2hi __log2_data.invln2hi
+#define InvLn2lo __log2_data.invln2lo
+#define N (1 << LOG2_TABLE_BITS)
+#define OFF 0x3fe6000000000000
-static const double zero = 0.0;
+/* Top 16 bits of a double. */
+static inline uint32_t
+top16 (double x)
+{
+ return asuint64 (x) >> 48;
+}
double
-__ieee754_log2 (double x)
+__log2 (double x)
{
- double hfsq, f, s, z, R, w, t1, t2, dk;
- int32_t k, hx, i, j;
- uint32_t lx;
+ /* double_t for better performance on targets with FLT_EVAL_METHOD==2. */
+ double_t z, r, r2, r4, y, invc, logc, kd, hi, lo, t1, t2, t3, p;
+ uint64_t ix, iz, tmp;
+ uint32_t top;
+ int k, i;
- EXTRACT_WORDS (hx, lx, x);
+ ix = asuint64 (x);
+ top = top16 (x);
- k = 0;
- if (hx < 0x00100000)
- { /* x < 2**-1022 */
- if (__glibc_unlikely (((hx & 0x7fffffff) | lx) == 0))
- return -two54 / fabs (x); /* log(+-0)=-inf */
- if (__glibc_unlikely (hx < 0))
- return (x - x) / (x - x); /* log(-#) = NaN */
- k -= 54;
- x *= two54; /* subnormal number, scale up x */
- GET_HIGH_WORD (hx, x);
- }
- if (__glibc_unlikely (hx >= 0x7ff00000))
- return x + x;
- k += (hx >> 20) - 1023;
- hx &= 0x000fffff;
- i = (hx + 0x95f64) & 0x100000;
- SET_HIGH_WORD (x, hx | (i ^ 0x3ff00000)); /* normalize x or x/2 */
- k += (i >> 20);
- dk = (double) k;
- f = x - 1.0;
- if ((0x000fffff & (2 + hx)) < 3)
- { /* |f| < 2**-20 */
- if (f == zero)
- {
- if (FIX_INT_FP_CONVERT_ZERO && dk == 0.0)
- dk = 0.0;
- return dk;
- }
- R = f * f * (0.5 - 0.33333333333333333 * f);
- return dk - (R - f) / ln2;
- }
- s = f / (2.0 + f);
- z = s * s;
- i = hx - 0x6147a;
- w = z * z;
- j = 0x6b851 - hx;
- t1 = w * (Lg2 + w * (Lg4 + w * Lg6));
- t2 = z * (Lg1 + w * (Lg3 + w * (Lg5 + w * Lg7)));
- i |= j;
- R = t2 + t1;
- if (i > 0)
+#define LO asuint64 (1.0 - 0x1.5b51p-5)
+#define HI asuint64 (1.0 + 0x1.6ab2p-5)
+ if (__glibc_unlikely (ix - LO < HI - LO))
{
- hfsq = 0.5 * f * f;
- return dk - ((hfsq - (s * (hfsq + R))) - f) / ln2;
+ /* Handle close to 1.0 inputs separately. */
+ /* Fix sign of zero with downward rounding when x==1. */
+ if (WANT_ROUNDING && __glibc_unlikely (ix == asuint64 (1.0)))
+ return 0;
+ r = x - 1.0;
+#ifdef __FP_FAST_FMA
+ hi = r * InvLn2hi;
+ lo = r * InvLn2lo + __builtin_fma (r, InvLn2hi, -hi);
+#else
+ double_t rhi, rlo;
+ rhi = asdouble (asuint64 (r) & -1ULL << 32);
+ rlo = r - rhi;
+ hi = rhi * InvLn2hi;
+ lo = rlo * InvLn2hi + r * InvLn2lo;
+#endif
+ r2 = r * r; /* rounding error: 0x1p-62. */
+ r4 = r2 * r2;
+ /* Worst-case error is less than 0.54 ULP (0.55 ULP without fma). */
+ p = r2 * (B[0] + r * B[1]);
+ y = hi + p;
+ lo += hi - y + p;
+ lo += r4 * (B[2] + r * B[3] + r2 * (B[4] + r * B[5])
+ + r4 * (B[6] + r * B[7] + r2 * (B[8] + r * B[9])));
+ y += lo;
+ return y;
}
- else
+ if (__glibc_unlikely (top - 0x0010 >= 0x7ff0 - 0x0010))
{
- return dk - ((s * (f - R)) - f) / ln2;
+ /* x < 0x1p-1022 or inf or nan. */
+ if (ix * 2 == 0)
+ return __math_divzero (1);
+ if (ix == asuint64 (INFINITY)) /* log(inf) == inf. */
+ return x;
+ if ((top & 0x8000) || (top & 0x7ff0) == 0x7ff0)
+ return __math_invalid (x);
+ /* x is subnormal, normalize it. */
+ ix = asuint64 (x * 0x1p52);
+ ix -= 52ULL << 52;
}
-}
-strong_alias (__ieee754_log2, __log2_finite)
+ /* x = 2^k z; where z is in range [OFF,2*OFF) and exact.
+ The range is split into N subintervals.
+ The ith subinterval contains z and c is near its center. */
+ tmp = ix - OFF;
+ i = (tmp >> (52 - LOG2_TABLE_BITS)) % N;
+ k = (int64_t) tmp >> 52; /* arithmetic shift */
+ iz = ix - (tmp & 0xfffULL << 52);
+ invc = T[i].invc;
+ logc = T[i].logc;
+ z = asdouble (iz);
+ kd = (double_t) k;
+
+ /* log2(x) = log2(z/c) + log2(c) + k. */
+ /* r ~= z/c - 1, |r| < 1/(2*N). */
+#ifdef __FP_FAST_FMA
+ /* rounding error: 0x1p-55/N. */
+ r = __builtin_fma (z, invc, -1.0);
+ t1 = r * InvLn2hi;
+ t2 = r * InvLn2lo + __builtin_fma (r, InvLn2hi, -t1);
+#else
+ double_t rhi, rlo;
+ /* rounding error: 0x1p-55/N + 0x1p-65. */
+ r = (z - T2[i].chi - T2[i].clo) * invc;
+ rhi = asdouble (asuint64 (r) & -1ULL << 32);
+ rlo = r - rhi;
+ t1 = rhi * InvLn2hi;
+ t2 = rlo * InvLn2hi + r * InvLn2lo;
+#endif
+
+ /* hi + lo = r/ln2 + log2(c) + k. */
+ t3 = kd + logc;
+ hi = t3 + t1;
+ lo = t3 - hi + t1 + t2;
+
+ /* log2(r+1) = r/ln2 + r^2*poly(r). */
+ /* Evaluation is optimized assuming superscalar pipelined execution. */
+ r2 = r * r; /* rounding error: 0x1p-54/N^2. */
+ r4 = r2 * r2;
+ /* Worst-case error if |y| > 0x1p-4: 0.547 ULP (0.550 ULP without fma).
+ ~ 0.5 + 2/N/ln2 + abs-poly-error*0x1p56 ULP (+ 0.003 ULP without fma). */
+ p = A[0] + r * A[1] + r2 * (A[2] + r * A[3]) + r4 * (A[4] + r * A[5]);
+ y = lo + r2 * p + hi;
+ return y;
+}
+#ifndef __log2
+strong_alias (__log2, __ieee754_log2)
+strong_alias (__log2, __log2_finite)
+# if LIBM_SVID_COMPAT
+versioned_symbol (libm, __log2, log2, GLIBC_2_29);
+libm_alias_double_other (__log2, log2)
+# else
+libm_alias_double (__log2, log2)
+# endif
+#endif
diff --git a/sysdeps/ieee754/dbl-64/e_log2_data.c b/sysdeps/ieee754/dbl-64/e_log2_data.c
new file mode 100644
index 0000000000..b48404b6bb
--- /dev/null
+++ b/sysdeps/ieee754/dbl-64/e_log2_data.c
@@ -0,0 +1,220 @@
+/* Data for log2.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include "math_config.h"
+
+#define N (1 << LOG2_TABLE_BITS)
+
+const struct log2_data __log2_data = {
+// First coefficient: 0x1.71547652b82fe1777d0ffda0d24p0
+.invln2hi = 0x1.7154765200000p+0,
+.invln2lo = 0x1.705fc2eefa200p-33,
+.poly1 = {
+#if LOG2_POLY1_ORDER == 11
+// relative error: 0x1.2fad8188p-63
+// in -0x1.5b51p-5 0x1.6ab2p-5
+-0x1.71547652b82fep-1,
+0x1.ec709dc3a03f7p-2,
+-0x1.71547652b7c3fp-2,
+0x1.2776c50f05be4p-2,
+-0x1.ec709dd768fe5p-3,
+0x1.a61761ec4e736p-3,
+-0x1.7153fbc64a79bp-3,
+0x1.484d154f01b4ap-3,
+-0x1.289e4a72c383cp-3,
+0x1.0b32f285aee66p-3,
+#endif
+},
+.poly = {
+#if N == 64 && LOG2_POLY_ORDER == 7
+// relative error: 0x1.a72c2bf8p-58
+// abs error: 0x1.67a552c8p-66
+// in -0x1.f45p-8 0x1.f45p-8
+-0x1.71547652b8339p-1,
+0x1.ec709dc3a04bep-2,
+-0x1.7154764702ffbp-2,
+0x1.2776c50034c48p-2,
+-0x1.ec7b328ea92bcp-3,
+0x1.a6225e117f92ep-3,
+#endif
+},
+/* Algorithm:
+
+ x = 2^k z
+ log2(x) = k + log2(c) + log2(z/c)
+ log2(z/c) = poly(z/c - 1)
+
+where z is in [1.6p-1; 1.6p0] which is split into N subintervals and z falls
+into the ith one, then table entries are computed as
+
+ tab[i].invc = 1/c
+ tab[i].logc = (double)log2(c)
+ tab2[i].chi = (double)c
+ tab2[i].clo = (double)(c - (double)c)
+
+where c is near the center of the subinterval and is chosen by trying +-2^29
+floating point invc candidates around 1/center and selecting one for which
+
+ 1) the rounding error in 0x1.8p10 + logc is 0,
+ 2) the rounding error in z - chi - clo is < 0x1p-64 and
+ 3) the rounding error in (double)log2(c) is minimized (< 0x1p-68).
+
+Note: 1) ensures that k + logc can be computed without rounding error, 2)
+ensures that z/c - 1 can be computed as (z - chi - clo)*invc with close to a
+single rounding error when there is no fast fma for z*invc - 1, 3) ensures
+that logc + poly(z/c - 1) has small error, however near x == 1 when
+|log2(x)| < 0x1p-4, this is not enough so that is special cased. */
+.tab = {
+#if N == 64
+{0x1.724286bb1acf8p+0, -0x1.1095feecdb000p-1},
+{0x1.6e1f766d2cca1p+0, -0x1.08494bd76d000p-1},
+{0x1.6a13d0e30d48ap+0, -0x1.00143aee8f800p-1},
+{0x1.661ec32d06c85p+0, -0x1.efec5360b4000p-2},
+{0x1.623fa951198f8p+0, -0x1.dfdd91ab7e000p-2},
+{0x1.5e75ba4cf026cp+0, -0x1.cffae0cc79000p-2},
+{0x1.5ac055a214fb8p+0, -0x1.c043811fda000p-2},
+{0x1.571ed0f166e1ep+0, -0x1.b0b67323ae000p-2},
+{0x1.53909590bf835p+0, -0x1.a152f5a2db000p-2},
+{0x1.5014fed61adddp+0, -0x1.9217f5af86000p-2},
+{0x1.4cab88e487bd0p+0, -0x1.8304db0719000p-2},
+{0x1.49539b4334feep+0, -0x1.74189f9a9e000p-2},
+{0x1.460cbdfafd569p+0, -0x1.6552bb5199000p-2},
+{0x1.42d664ee4b953p+0, -0x1.56b23a29b1000p-2},
+{0x1.3fb01111dd8a6p+0, -0x1.483650f5fa000p-2},
+{0x1.3c995b70c5836p+0, -0x1.39de937f6a000p-2},
+{0x1.3991c4ab6fd4ap+0, -0x1.2baa1538d6000p-2},
+{0x1.3698e0ce099b5p+0, -0x1.1d98340ca4000p-2},
+{0x1.33ae48213e7b2p+0, -0x1.0fa853a40e000p-2},
+{0x1.30d191985bdb1p+0, -0x1.01d9c32e73000p-2},
+{0x1.2e025cab271d7p+0, -0x1.e857da2fa6000p-3},
+{0x1.2b404cf13cd82p+0, -0x1.cd3c8633d8000p-3},
+{0x1.288b02c7ccb50p+0, -0x1.b26034c14a000p-3},
+{0x1.25e2263944de5p+0, -0x1.97c1c2f4fe000p-3},
+{0x1.234563d8615b1p+0, -0x1.7d6023f800000p-3},
+{0x1.20b46e33eaf38p+0, -0x1.633a71a05e000p-3},
+{0x1.1e2eefdcda3ddp+0, -0x1.494f5e9570000p-3},
+{0x1.1bb4a580b3930p+0, -0x1.2f9e424e0a000p-3},
+{0x1.19453847f2200p+0, -0x1.162595afdc000p-3},
+{0x1.16e06c0d5d73cp+0, -0x1.f9c9a75bd8000p-4},
+{0x1.1485f47b7e4c2p+0, -0x1.c7b575bf9c000p-4},
+{0x1.12358ad0085d1p+0, -0x1.960c60ff48000p-4},
+{0x1.0fef00f532227p+0, -0x1.64ce247b60000p-4},
+{0x1.0db2077d03a8fp+0, -0x1.33f78b2014000p-4},
+{0x1.0b7e6d65980d9p+0, -0x1.0387d1a42c000p-4},
+{0x1.0953efe7b408dp+0, -0x1.a6f9208b50000p-5},
+{0x1.07325cac53b83p+0, -0x1.47a954f770000p-5},
+{0x1.05197e40d1b5cp+0, -0x1.d23a8c50c0000p-6},
+{0x1.03091c1208ea2p+0, -0x1.16a2629780000p-6},
+{0x1.0101025b37e21p+0, -0x1.720f8d8e80000p-8},
+{0x1.fc07ef9caa76bp-1, 0x1.6fe53b1500000p-7},
+{0x1.f4465d3f6f184p-1, 0x1.11ccce10f8000p-5},
+{0x1.ecc079f84107fp-1, 0x1.c4dfc8c8b8000p-5},
+{0x1.e573a99975ae8p-1, 0x1.3aa321e574000p-4},
+{0x1.de5d6f0bd3de6p-1, 0x1.918a0d08b8000p-4},
+{0x1.d77b681ff38b3p-1, 0x1.e72e9da044000p-4},
+{0x1.d0cb5724de943p-1, 0x1.1dcd2507f6000p-3},
+{0x1.ca4b2dc0e7563p-1, 0x1.476ab03dea000p-3},
+{0x1.c3f8ee8d6cb51p-1, 0x1.7074377e22000p-3},
+{0x1.bdd2b4f020c4cp-1, 0x1.98ede8ba94000p-3},
+{0x1.b7d6c006015cap-1, 0x1.c0db86ad2e000p-3},
+{0x1.b20366e2e338fp-1, 0x1.e840aafcee000p-3},
+{0x1.ac57026295039p-1, 0x1.0790ab4678000p-2},
+{0x1.a6d01bc2731ddp-1, 0x1.1ac056801c000p-2},
+{0x1.a16d3bc3ff18bp-1, 0x1.2db11d4fee000p-2},
+{0x1.9c2d14967feadp-1, 0x1.406464ec58000p-2},
+{0x1.970e4f47c9902p-1, 0x1.52dbe093af000p-2},
+{0x1.920fb3982bcf2p-1, 0x1.651902050d000p-2},
+{0x1.8d30187f759f1p-1, 0x1.771d2cdeaf000p-2},
+{0x1.886e5ebb9f66dp-1, 0x1.88e9c857d9000p-2},
+{0x1.83c97b658b994p-1, 0x1.9a80155e16000p-2},
+{0x1.7f405ffc61022p-1, 0x1.abe186ed3d000p-2},
+{0x1.7ad22181415cap-1, 0x1.bd0f2aea0e000p-2},
+{0x1.767dcf99eff8cp-1, 0x1.ce0a43dbf4000p-2},
+#endif
+},
+#ifndef __FP_FAST_FMA
+.tab2 = {
+# if N == 64
+{0x1.6200012b90a8ep-1, 0x1.904ab0644b605p-55},
+{0x1.66000045734a6p-1, 0x1.1ff9bea62f7a9p-57},
+{0x1.69fffc325f2c5p-1, 0x1.27ecfcb3c90bap-55},
+{0x1.6e00038b95a04p-1, 0x1.8ff8856739326p-55},
+{0x1.71fffe09994e3p-1, 0x1.afd40275f82b1p-55},
+{0x1.7600015590e1p-1, -0x1.2fd75b4238341p-56},
+{0x1.7a00012655bd5p-1, 0x1.808e67c242b76p-56},
+{0x1.7e0003259e9a6p-1, -0x1.208e426f622b7p-57},
+{0x1.81fffedb4b2d2p-1, -0x1.402461ea5c92fp-55},
+{0x1.860002dfafcc3p-1, 0x1.df7f4a2f29a1fp-57},
+{0x1.89ffff78c6b5p-1, -0x1.e0453094995fdp-55},
+{0x1.8e00039671566p-1, -0x1.a04f3bec77b45p-55},
+{0x1.91fffe2bf1745p-1, -0x1.7fa34400e203cp-56},
+{0x1.95fffcc5c9fd1p-1, -0x1.6ff8005a0695dp-56},
+{0x1.9a0003bba4767p-1, 0x1.0f8c4c4ec7e03p-56},
+{0x1.9dfffe7b92da5p-1, 0x1.e7fd9478c4602p-55},
+{0x1.a1fffd72efdafp-1, -0x1.a0c554dcdae7ep-57},
+{0x1.a5fffde04ff95p-1, 0x1.67da98ce9b26bp-55},
+{0x1.a9fffca5e8d2bp-1, -0x1.284c9b54c13dep-55},
+{0x1.adfffddad03eap-1, 0x1.812c8ea602e3cp-58},
+{0x1.b1ffff10d3d4dp-1, -0x1.efaddad27789cp-55},
+{0x1.b5fffce21165ap-1, 0x1.3cb1719c61237p-58},
+{0x1.b9fffd950e674p-1, 0x1.3f7d94194cep-56},
+{0x1.be000139ca8afp-1, 0x1.50ac4215d9bcp-56},
+{0x1.c20005b46df99p-1, 0x1.beea653e9c1c9p-57},
+{0x1.c600040b9f7aep-1, -0x1.c079f274a70d6p-56},
+{0x1.ca0006255fd8ap-1, -0x1.a0b4076e84c1fp-56},
+{0x1.cdfffd94c095dp-1, 0x1.8f933f99ab5d7p-55},
+{0x1.d1ffff975d6cfp-1, -0x1.82c08665fe1bep-58},
+{0x1.d5fffa2561c93p-1, -0x1.b04289bd295f3p-56},
+{0x1.d9fff9d228b0cp-1, 0x1.70251340fa236p-55},
+{0x1.de00065bc7e16p-1, -0x1.5011e16a4d80cp-56},
+{0x1.e200002f64791p-1, 0x1.9802f09ef62ep-55},
+{0x1.e600057d7a6d8p-1, -0x1.e0b75580cf7fap-56},
+{0x1.ea00027edc00cp-1, -0x1.c848309459811p-55},
+{0x1.ee0006cf5cb7cp-1, -0x1.f8027951576f4p-55},
+{0x1.f2000782b7dccp-1, -0x1.f81d97274538fp-55},
+{0x1.f6000260c450ap-1, -0x1.071002727ffdcp-59},
+{0x1.f9fffe88cd533p-1, -0x1.81bdce1fda8bp-58},
+{0x1.fdfffd50f8689p-1, 0x1.7f91acb918e6ep-55},
+{0x1.0200004292367p+0, 0x1.b7ff365324681p-54},
+{0x1.05fffe3e3d668p+0, 0x1.6fa08ddae957bp-55},
+{0x1.0a0000a85a757p+0, -0x1.7e2de80d3fb91p-58},
+{0x1.0e0001a5f3fccp+0, -0x1.1823305c5f014p-54},
+{0x1.11ffff8afbaf5p+0, -0x1.bfabb6680bac2p-55},
+{0x1.15fffe54d91adp+0, -0x1.d7f121737e7efp-54},
+{0x1.1a00011ac36e1p+0, 0x1.c000a0516f5ffp-54},
+{0x1.1e00019c84248p+0, -0x1.082fbe4da5dap-54},
+{0x1.220000ffe5e6ep+0, -0x1.8fdd04c9cfb43p-55},
+{0x1.26000269fd891p+0, 0x1.cfe2a7994d182p-55},
+{0x1.2a00029a6e6dap+0, -0x1.00273715e8bc5p-56},
+{0x1.2dfffe0293e39p+0, 0x1.b7c39dab2a6f9p-54},
+{0x1.31ffff7dcf082p+0, 0x1.df1336edc5254p-56},
+{0x1.35ffff05a8b6p+0, -0x1.e03564ccd31ebp-54},
+{0x1.3a0002e0eaeccp+0, 0x1.5f0e74bd3a477p-56},
+{0x1.3e000043bb236p+0, 0x1.c7dcb149d8833p-54},
+{0x1.4200002d187ffp+0, 0x1.e08afcf2d3d28p-56},
+{0x1.460000d387cb1p+0, 0x1.20837856599a6p-55},
+{0x1.4a00004569f89p+0, -0x1.9fa5c904fbcd2p-55},
+{0x1.4e000043543f3p+0, -0x1.81125ed175329p-56},
+{0x1.51fffcc027f0fp+0, 0x1.883d8847754dcp-54},
+{0x1.55ffffd87b36fp+0, -0x1.709e731d02807p-55},
+{0x1.59ffff21df7bap+0, 0x1.7f79f68727b02p-55},
+{0x1.5dfffebfc3481p+0, -0x1.180902e30e93ep-54},
+# endif
+},
+#endif /* __FP_FAST_FMA */
+};
diff --git a/sysdeps/ieee754/dbl-64/e_log_data.c b/sysdeps/ieee754/dbl-64/e_log_data.c
new file mode 100644
index 0000000000..894f07ab74
--- /dev/null
+++ b/sysdeps/ieee754/dbl-64/e_log_data.c
@@ -0,0 +1,347 @@
+/* Data for log.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include "math_config.h"
+
+#define N (1 << LOG_TABLE_BITS)
+
+const struct log_data __log_data = {
+.ln2hi = 0x1.62e42fefa3800p-1,
+.ln2lo = 0x1.ef35793c76730p-45,
+.poly1 = {
+#if LOG_POLY1_ORDER == 12
+// relative error: 0x1.c04d76cp-63
+// in -0x1p-4 0x1.09p-4 (|log(1+x)| > 0x1p-4 outside the interval)
+-0x1p-1,
+0x1.5555555555577p-2,
+-0x1.ffffffffffdcbp-3,
+0x1.999999995dd0cp-3,
+-0x1.55555556745a7p-3,
+0x1.24924a344de3p-3,
+-0x1.fffffa4423d65p-4,
+0x1.c7184282ad6cap-4,
+-0x1.999eb43b068ffp-4,
+0x1.78182f7afd085p-4,
+-0x1.5521375d145cdp-4,
+#endif
+},
+.poly = {
+#if N == 128 && LOG_POLY_ORDER == 6
+// relative error: 0x1.926199e8p-56
+// abs error: 0x1.882ff33p-65
+// in -0x1.fp-9 0x1.fp-9
+-0x1.0000000000001p-1,
+0x1.555555551305bp-2,
+-0x1.fffffffeb459p-3,
+0x1.999b324f10111p-3,
+-0x1.55575e506c89fp-3,
+#endif
+},
+/* Algorithm:
+
+ x = 2^k z
+ log(x) = k ln2 + log(c) + log(z/c)
+ log(z/c) = poly(z/c - 1)
+
+where z is in [1.6p-1; 1.6p0] which is split into N subintervals and z falls
+into the ith one, then table entries are computed as
+
+ tab[i].invc = 1/c
+ tab[i].logc = (double)log(c)
+ tab2[i].chi = (double)c
+ tab2[i].clo = (double)(c - (double)c)
+
+where c is near the center of the subinterval and is chosen by trying +-2^29
+floating point invc candidates around 1/center and selecting one for which
+
+ 1) the rounding error in 0x1.8p9 + logc is 0,
+ 2) the rounding error in z - chi - clo is < 0x1p-66 and
+ 3) the rounding error in (double)log(c) is minimized (< 0x1p-66).
+
+Note: 1) ensures that k*ln2hi + logc can be computed without rounding error,
+2) ensures that z/c - 1 can be computed as (z - chi - clo)*invc with close to
+a single rounding error when there is no fast fma for z*invc - 1, 3) ensures
+that logc + poly(z/c - 1) has small error, however near x == 1 when
+|log(x)| < 0x1p-4, this is not enough so that is special cased. */
+.tab = {
+#if N == 128
+{0x1.734f0c3e0de9fp+0, -0x1.7cc7f79e69000p-2},
+{0x1.713786a2ce91fp+0, -0x1.76feec20d0000p-2},
+{0x1.6f26008fab5a0p+0, -0x1.713e31351e000p-2},
+{0x1.6d1a61f138c7dp+0, -0x1.6b85b38287800p-2},
+{0x1.6b1490bc5b4d1p+0, -0x1.65d5590807800p-2},
+{0x1.69147332f0cbap+0, -0x1.602d076180000p-2},
+{0x1.6719f18224223p+0, -0x1.5a8ca86909000p-2},
+{0x1.6524f99a51ed9p+0, -0x1.54f4356035000p-2},
+{0x1.63356aa8f24c4p+0, -0x1.4f637c36b4000p-2},
+{0x1.614b36b9ddc14p+0, -0x1.49da7fda85000p-2},
+{0x1.5f66452c65c4cp+0, -0x1.445923989a800p-2},
+{0x1.5d867b5912c4fp+0, -0x1.3edf439b0b800p-2},
+{0x1.5babccb5b90dep+0, -0x1.396ce448f7000p-2},
+{0x1.59d61f2d91a78p+0, -0x1.3401e17bda000p-2},
+{0x1.5805612465687p+0, -0x1.2e9e2ef468000p-2},
+{0x1.56397cee76bd3p+0, -0x1.2941b3830e000p-2},
+{0x1.54725e2a77f93p+0, -0x1.23ec58cda8800p-2},
+{0x1.52aff42064583p+0, -0x1.1e9e129279000p-2},
+{0x1.50f22dbb2bddfp+0, -0x1.1956d2b48f800p-2},
+{0x1.4f38f4734ded7p+0, -0x1.141679ab9f800p-2},
+{0x1.4d843cfde2840p+0, -0x1.0edd094ef9800p-2},
+{0x1.4bd3ec078a3c8p+0, -0x1.09aa518db1000p-2},
+{0x1.4a27fc3e0258ap+0, -0x1.047e65263b800p-2},
+{0x1.4880524d48434p+0, -0x1.feb224586f000p-3},
+{0x1.46dce1b192d0bp+0, -0x1.f474a7517b000p-3},
+{0x1.453d9d3391854p+0, -0x1.ea4443d103000p-3},
+{0x1.43a2744b4845ap+0, -0x1.e020d44e9b000p-3},
+{0x1.420b54115f8fbp+0, -0x1.d60a22977f000p-3},
+{0x1.40782da3ef4b1p+0, -0x1.cc00104959000p-3},
+{0x1.3ee8f5d57fe8fp+0, -0x1.c202956891000p-3},
+{0x1.3d5d9a00b4ce9p+0, -0x1.b81178d811000p-3},
+{0x1.3bd60c010c12bp+0, -0x1.ae2c9ccd3d000p-3},
+{0x1.3a5242b75dab8p+0, -0x1.a45402e129000p-3},
+{0x1.38d22cd9fd002p+0, -0x1.9a877681df000p-3},
+{0x1.3755bc5847a1cp+0, -0x1.90c6d69483000p-3},
+{0x1.35dce49ad36e2p+0, -0x1.87120a645c000p-3},
+{0x1.34679984dd440p+0, -0x1.7d68fb4143000p-3},
+{0x1.32f5cceffcb24p+0, -0x1.73cb83c627000p-3},
+{0x1.3187775a10d49p+0, -0x1.6a39a9b376000p-3},
+{0x1.301c8373e3990p+0, -0x1.60b3154b7a000p-3},
+{0x1.2eb4ebb95f841p+0, -0x1.5737d76243000p-3},
+{0x1.2d50a0219a9d1p+0, -0x1.4dc7b8fc23000p-3},
+{0x1.2bef9a8b7fd2ap+0, -0x1.4462c51d20000p-3},
+{0x1.2a91c7a0c1babp+0, -0x1.3b08abc830000p-3},
+{0x1.293726014b530p+0, -0x1.31b996b490000p-3},
+{0x1.27dfa5757a1f5p+0, -0x1.2875490a44000p-3},
+{0x1.268b39b1d3bbfp+0, -0x1.1f3b9f879a000p-3},
+{0x1.2539d838ff5bdp+0, -0x1.160c8252ca000p-3},
+{0x1.23eb7aac9083bp+0, -0x1.0ce7f57f72000p-3},
+{0x1.22a012ba940b6p+0, -0x1.03cdc49fea000p-3},
+{0x1.2157996cc4132p+0, -0x1.f57bdbc4b8000p-4},
+{0x1.201201dd2fc9bp+0, -0x1.e370896404000p-4},
+{0x1.1ecf4494d480bp+0, -0x1.d17983ef94000p-4},
+{0x1.1d8f5528f6569p+0, -0x1.bf9674ed8a000p-4},
+{0x1.1c52311577e7cp+0, -0x1.adc79202f6000p-4},
+{0x1.1b17c74cb26e9p+0, -0x1.9c0c3e7288000p-4},
+{0x1.19e010c2c1ab6p+0, -0x1.8a646b372c000p-4},
+{0x1.18ab07bb670bdp+0, -0x1.78d01b3ac0000p-4},
+{0x1.1778a25efbcb6p+0, -0x1.674f145380000p-4},
+{0x1.1648d354c31dap+0, -0x1.55e0e6d878000p-4},
+{0x1.151b990275fddp+0, -0x1.4485cdea1e000p-4},
+{0x1.13f0ea432d24cp+0, -0x1.333d94d6aa000p-4},
+{0x1.12c8b7210f9dap+0, -0x1.22079f8c56000p-4},
+{0x1.11a3028ecb531p+0, -0x1.10e4698622000p-4},
+{0x1.107fbda8434afp+0, -0x1.ffa6c6ad20000p-5},
+{0x1.0f5ee0f4e6bb3p+0, -0x1.dda8d4a774000p-5},
+{0x1.0e4065d2a9fcep+0, -0x1.bbcece4850000p-5},
+{0x1.0d244632ca521p+0, -0x1.9a1894012c000p-5},
+{0x1.0c0a77ce2981ap+0, -0x1.788583302c000p-5},
+{0x1.0af2f83c636d1p+0, -0x1.5715e67d68000p-5},
+{0x1.09ddb98a01339p+0, -0x1.35c8a49658000p-5},
+{0x1.08cabaf52e7dfp+0, -0x1.149e364154000p-5},
+{0x1.07b9f2f4e28fbp+0, -0x1.e72c082eb8000p-6},
+{0x1.06ab58c358f19p+0, -0x1.a55f152528000p-6},
+{0x1.059eea5ecf92cp+0, -0x1.63d62cf818000p-6},
+{0x1.04949cdd12c90p+0, -0x1.228fb8caa0000p-6},
+{0x1.038c6c6f0ada9p+0, -0x1.c317b20f90000p-7},
+{0x1.02865137932a9p+0, -0x1.419355daa0000p-7},
+{0x1.0182427ea7348p+0, -0x1.81203c2ec0000p-8},
+{0x1.008040614b195p+0, -0x1.0040979240000p-9},
+{0x1.fe01ff726fa1ap-1, 0x1.feff384900000p-9},
+{0x1.fa11cc261ea74p-1, 0x1.7dc41353d0000p-7},
+{0x1.f6310b081992ep-1, 0x1.3cea3c4c28000p-6},
+{0x1.f25f63ceeadcdp-1, 0x1.b9fc114890000p-6},
+{0x1.ee9c8039113e7p-1, 0x1.1b0d8ce110000p-5},
+{0x1.eae8078cbb1abp-1, 0x1.58a5bd001c000p-5},
+{0x1.e741aa29d0c9bp-1, 0x1.95c8340d88000p-5},
+{0x1.e3a91830a99b5p-1, 0x1.d276aef578000p-5},
+{0x1.e01e009609a56p-1, 0x1.07598e598c000p-4},
+{0x1.dca01e577bb98p-1, 0x1.253f5e30d2000p-4},
+{0x1.d92f20b7c9103p-1, 0x1.42edd8b380000p-4},
+{0x1.d5cac66fb5ccep-1, 0x1.606598757c000p-4},
+{0x1.d272caa5ede9dp-1, 0x1.7da76356a0000p-4},
+{0x1.cf26e3e6b2ccdp-1, 0x1.9ab434e1c6000p-4},
+{0x1.cbe6da2a77902p-1, 0x1.b78c7bb0d6000p-4},
+{0x1.c8b266d37086dp-1, 0x1.d431332e72000p-4},
+{0x1.c5894bd5d5804p-1, 0x1.f0a3171de6000p-4},
+{0x1.c26b533bb9f8cp-1, 0x1.067152b914000p-3},
+{0x1.bf583eeece73fp-1, 0x1.147858292b000p-3},
+{0x1.bc4fd75db96c1p-1, 0x1.2266ecdca3000p-3},
+{0x1.b951e0c864a28p-1, 0x1.303d7a6c55000p-3},
+{0x1.b65e2c5ef3e2cp-1, 0x1.3dfc33c331000p-3},
+{0x1.b374867c9888bp-1, 0x1.4ba366b7a8000p-3},
+{0x1.b094b211d304ap-1, 0x1.5933928d1f000p-3},
+{0x1.adbe885f2ef7ep-1, 0x1.66acd2418f000p-3},
+{0x1.aaf1d31603da2p-1, 0x1.740f8ec669000p-3},
+{0x1.a82e63fd358a7p-1, 0x1.815c0f51af000p-3},
+{0x1.a5740ef09738bp-1, 0x1.8e92954f68000p-3},
+{0x1.a2c2a90ab4b27p-1, 0x1.9bb3602f84000p-3},
+{0x1.a01a01393f2d1p-1, 0x1.a8bed1c2c0000p-3},
+{0x1.9d79f24db3c1bp-1, 0x1.b5b515c01d000p-3},
+{0x1.9ae2505c7b190p-1, 0x1.c2967ccbcc000p-3},
+{0x1.9852ef297ce2fp-1, 0x1.cf635d5486000p-3},
+{0x1.95cbaeea44b75p-1, 0x1.dc1bd3446c000p-3},
+{0x1.934c69de74838p-1, 0x1.e8c01b8cfe000p-3},
+{0x1.90d4f2f6752e6p-1, 0x1.f5509c0179000p-3},
+{0x1.8e6528effd79dp-1, 0x1.00e6c121fb800p-2},
+{0x1.8bfce9fcc007cp-1, 0x1.071b80e93d000p-2},
+{0x1.899c0dabec30ep-1, 0x1.0d46b9e867000p-2},
+{0x1.87427aa2317fbp-1, 0x1.13687334bd000p-2},
+{0x1.84f00acb39a08p-1, 0x1.1980d67234800p-2},
+{0x1.82a49e8653e55p-1, 0x1.1f8ffe0cc8000p-2},
+{0x1.8060195f40260p-1, 0x1.2595fd7636800p-2},
+{0x1.7e22563e0a329p-1, 0x1.2b9300914a800p-2},
+{0x1.7beb377dcb5adp-1, 0x1.3187210436000p-2},
+{0x1.79baa679725c2p-1, 0x1.377266dec1800p-2},
+{0x1.77907f2170657p-1, 0x1.3d54ffbaf3000p-2},
+{0x1.756cadbd6130cp-1, 0x1.432eee32fe000p-2},
+#endif
+},
+#ifndef __FP_FAST_FMA
+.tab2 = {
+# if N == 128
+{0x1.61000014fb66bp-1, 0x1.e026c91425b3cp-56},
+{0x1.63000034db495p-1, 0x1.dbfea48005d41p-55},
+{0x1.650000d94d478p-1, 0x1.e7fa786d6a5b7p-55},
+{0x1.67000074e6fadp-1, 0x1.1fcea6b54254cp-57},
+{0x1.68ffffedf0faep-1, -0x1.c7e274c590efdp-56},
+{0x1.6b0000763c5bcp-1, -0x1.ac16848dcda01p-55},
+{0x1.6d0001e5cc1f6p-1, 0x1.33f1c9d499311p-55},
+{0x1.6efffeb05f63ep-1, -0x1.e80041ae22d53p-56},
+{0x1.710000e86978p-1, 0x1.bff6671097952p-56},
+{0x1.72ffffc67e912p-1, 0x1.c00e226bd8724p-55},
+{0x1.74fffdf81116ap-1, -0x1.e02916ef101d2p-57},
+{0x1.770000f679c9p-1, -0x1.7fc71cd549c74p-57},
+{0x1.78ffffa7ec835p-1, 0x1.1bec19ef50483p-55},
+{0x1.7affffe20c2e6p-1, -0x1.07e1729cc6465p-56},
+{0x1.7cfffed3fc9p-1, -0x1.08072087b8b1cp-55},
+{0x1.7efffe9261a76p-1, 0x1.dc0286d9df9aep-55},
+{0x1.81000049ca3e8p-1, 0x1.97fd251e54c33p-55},
+{0x1.8300017932c8fp-1, -0x1.afee9b630f381p-55},
+{0x1.850000633739cp-1, 0x1.9bfbf6b6535bcp-55},
+{0x1.87000204289c6p-1, -0x1.bbf65f3117b75p-55},
+{0x1.88fffebf57904p-1, -0x1.9006ea23dcb57p-55},
+{0x1.8b00022bc04dfp-1, -0x1.d00df38e04b0ap-56},
+{0x1.8cfffe50c1b8ap-1, -0x1.8007146ff9f05p-55},
+{0x1.8effffc918e43p-1, 0x1.3817bd07a7038p-55},
+{0x1.910001efa5fc7p-1, 0x1.93e9176dfb403p-55},
+{0x1.9300013467bb9p-1, 0x1.f804e4b980276p-56},
+{0x1.94fffe6ee076fp-1, -0x1.f7ef0d9ff622ep-55},
+{0x1.96fffde3c12d1p-1, -0x1.082aa962638bap-56},
+{0x1.98ffff4458a0dp-1, -0x1.7801b9164a8efp-55},
+{0x1.9afffdd982e3ep-1, -0x1.740e08a5a9337p-55},
+{0x1.9cfffed49fb66p-1, 0x1.fce08c19bep-60},
+{0x1.9f00020f19c51p-1, -0x1.a3faa27885b0ap-55},
+{0x1.a10001145b006p-1, 0x1.4ff489958da56p-56},
+{0x1.a300007bbf6fap-1, 0x1.cbeab8a2b6d18p-55},
+{0x1.a500010971d79p-1, 0x1.8fecadd78793p-55},
+{0x1.a70001df52e48p-1, -0x1.f41763dd8abdbp-55},
+{0x1.a90001c593352p-1, -0x1.ebf0284c27612p-55},
+{0x1.ab0002a4f3e4bp-1, -0x1.9fd043cff3f5fp-57},
+{0x1.acfffd7ae1ed1p-1, -0x1.23ee7129070b4p-55},
+{0x1.aefffee510478p-1, 0x1.a063ee00edea3p-57},
+{0x1.b0fffdb650d5bp-1, 0x1.a06c8381f0ab9p-58},
+{0x1.b2ffffeaaca57p-1, -0x1.9011e74233c1dp-56},
+{0x1.b4fffd995badcp-1, -0x1.9ff1068862a9fp-56},
+{0x1.b7000249e659cp-1, 0x1.aff45d0864f3ep-55},
+{0x1.b8ffff987164p-1, 0x1.cfe7796c2c3f9p-56},
+{0x1.bafffd204cb4fp-1, -0x1.3ff27eef22bc4p-57},
+{0x1.bcfffd2415c45p-1, -0x1.cffb7ee3bea21p-57},
+{0x1.beffff86309dfp-1, -0x1.14103972e0b5cp-55},
+{0x1.c0fffe1b57653p-1, 0x1.bc16494b76a19p-55},
+{0x1.c2ffff1fa57e3p-1, -0x1.4feef8d30c6edp-57},
+{0x1.c4fffdcbfe424p-1, -0x1.43f68bcec4775p-55},
+{0x1.c6fffed54b9f7p-1, 0x1.47ea3f053e0ecp-55},
+{0x1.c8fffeb998fd5p-1, 0x1.383068df992f1p-56},
+{0x1.cb0002125219ap-1, -0x1.8fd8e64180e04p-57},
+{0x1.ccfffdd94469cp-1, 0x1.e7ebe1cc7ea72p-55},
+{0x1.cefffeafdc476p-1, 0x1.ebe39ad9f88fep-55},
+{0x1.d1000169af82bp-1, 0x1.57d91a8b95a71p-56},
+{0x1.d30000d0ff71dp-1, 0x1.9c1906970c7dap-55},
+{0x1.d4fffea790fc4p-1, -0x1.80e37c558fe0cp-58},
+{0x1.d70002edc87e5p-1, -0x1.f80d64dc10f44p-56},
+{0x1.d900021dc82aap-1, -0x1.47c8f94fd5c5cp-56},
+{0x1.dafffd86b0283p-1, 0x1.c7f1dc521617ep-55},
+{0x1.dd000296c4739p-1, 0x1.8019eb2ffb153p-55},
+{0x1.defffe54490f5p-1, 0x1.e00d2c652cc89p-57},
+{0x1.e0fffcdabf694p-1, -0x1.f8340202d69d2p-56},
+{0x1.e2fffdb52c8ddp-1, 0x1.b00c1ca1b0864p-56},
+{0x1.e4ffff24216efp-1, 0x1.2ffa8b094ab51p-56},
+{0x1.e6fffe88a5e11p-1, -0x1.7f673b1efbe59p-58},
+{0x1.e9000119eff0dp-1, -0x1.4808d5e0bc801p-55},
+{0x1.eafffdfa51744p-1, 0x1.80006d54320b5p-56},
+{0x1.ed0001a127fa1p-1, -0x1.002f860565c92p-58},
+{0x1.ef00007babcc4p-1, -0x1.540445d35e611p-55},
+{0x1.f0ffff57a8d02p-1, -0x1.ffb3139ef9105p-59},
+{0x1.f30001ee58ac7p-1, 0x1.a81acf2731155p-55},
+{0x1.f4ffff5823494p-1, 0x1.a3f41d4d7c743p-55},
+{0x1.f6ffffca94c6bp-1, -0x1.202f41c987875p-57},
+{0x1.f8fffe1f9c441p-1, 0x1.77dd1f477e74bp-56},
+{0x1.fafffd2e0e37ep-1, -0x1.f01199a7ca331p-57},
+{0x1.fd0001c77e49ep-1, 0x1.181ee4bceacb1p-56},
+{0x1.feffff7e0c331p-1, -0x1.e05370170875ap-57},
+{0x1.00ffff465606ep+0, -0x1.a7ead491c0adap-55},
+{0x1.02ffff3867a58p+0, -0x1.77f69c3fcb2ep-54},
+{0x1.04ffffdfc0d17p+0, 0x1.7bffe34cb945bp-54},
+{0x1.0700003cd4d82p+0, 0x1.20083c0e456cbp-55},
+{0x1.08ffff9f2cbe8p+0, -0x1.dffdfbe37751ap-57},
+{0x1.0b000010cda65p+0, -0x1.13f7faee626ebp-54},
+{0x1.0d00001a4d338p+0, 0x1.07dfa79489ff7p-55},
+{0x1.0effffadafdfdp+0, -0x1.7040570d66bcp-56},
+{0x1.110000bbafd96p+0, 0x1.e80d4846d0b62p-55},
+{0x1.12ffffae5f45dp+0, 0x1.dbffa64fd36efp-54},
+{0x1.150000dd59ad9p+0, 0x1.a0077701250aep-54},
+{0x1.170000f21559ap+0, 0x1.dfdf9e2e3deeep-55},
+{0x1.18ffffc275426p+0, 0x1.10030dc3b7273p-54},
+{0x1.1b000123d3c59p+0, 0x1.97f7980030188p-54},
+{0x1.1cffff8299eb7p+0, -0x1.5f932ab9f8c67p-57},
+{0x1.1effff48ad4p+0, 0x1.37fbf9da75bebp-54},
+{0x1.210000c8b86a4p+0, 0x1.f806b91fd5b22p-54},
+{0x1.2300003854303p+0, 0x1.3ffc2eb9fbf33p-54},
+{0x1.24fffffbcf684p+0, 0x1.601e77e2e2e72p-56},
+{0x1.26ffff52921d9p+0, 0x1.ffcbb767f0c61p-56},
+{0x1.2900014933a3cp+0, -0x1.202ca3c02412bp-56},
+{0x1.2b00014556313p+0, -0x1.2808233f21f02p-54},
+{0x1.2cfffebfe523bp+0, -0x1.8ff7e384fdcf2p-55},
+{0x1.2f0000bb8ad96p+0, -0x1.5ff51503041c5p-55},
+{0x1.30ffffb7ae2afp+0, -0x1.10071885e289dp-55},
+{0x1.32ffffeac5f7fp+0, -0x1.1ff5d3fb7b715p-54},
+{0x1.350000ca66756p+0, 0x1.57f82228b82bdp-54},
+{0x1.3700011fbf721p+0, 0x1.000bac40dd5ccp-55},
+{0x1.38ffff9592fb9p+0, -0x1.43f9d2db2a751p-54},
+{0x1.3b00004ddd242p+0, 0x1.57f6b707638e1p-55},
+{0x1.3cffff5b2c957p+0, 0x1.a023a10bf1231p-56},
+{0x1.3efffeab0b418p+0, 0x1.87f6d66b152bp-54},
+{0x1.410001532aff4p+0, 0x1.7f8375f198524p-57},
+{0x1.4300017478b29p+0, 0x1.301e672dc5143p-55},
+{0x1.44fffe795b463p+0, 0x1.9ff69b8b2895ap-55},
+{0x1.46fffe80475ep+0, -0x1.5c0b19bc2f254p-54},
+{0x1.48fffef6fc1e7p+0, 0x1.b4009f23a2a72p-54},
+{0x1.4afffe5bea704p+0, -0x1.4ffb7bf0d7d45p-54},
+{0x1.4d000171027dep+0, -0x1.9c06471dc6a3dp-54},
+{0x1.4f0000ff03ee2p+0, 0x1.77f890b85531cp-54},
+{0x1.5100012dc4bd1p+0, 0x1.004657166a436p-57},
+{0x1.530001605277ap+0, -0x1.6bfcece233209p-54},
+{0x1.54fffecdb704cp+0, -0x1.902720505a1d7p-55},
+{0x1.56fffef5f54a9p+0, 0x1.bbfe60ec96412p-54},
+{0x1.5900017e61012p+0, 0x1.87ec581afef9p-55},
+{0x1.5b00003c93e92p+0, -0x1.f41080abf0ccp-54},
+{0x1.5d0001d4919bcp+0, -0x1.8812afb254729p-54},
+{0x1.5efffe7b87a89p+0, -0x1.47eb780ed6904p-54},
+#endif
+},
+#endif /* __FP_FAST_FMA */
+};
diff --git a/sysdeps/ieee754/dbl-64/e_pow.c b/sysdeps/ieee754/dbl-64/e_pow.c
index 96d5b23ccc..79f3592e57 100644
--- a/sysdeps/ieee754/dbl-64/e_pow.c
+++ b/sysdeps/ieee754/dbl-64/e_pow.c
@@ -1,359 +1,390 @@
-/*
- * IBM Accurate Mathematical Library
- * written by International Business Machines Corp.
- * Copyright (C) 2001-2018 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 by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program 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 this program; if not, see <http://www.gnu.org/licenses/>.
- */
-/***************************************************************************/
-/* MODULE_NAME: upow.c */
-/* */
-/* FUNCTIONS: upow */
-/* log1 */
-/* checkint */
-/* FILES NEEDED: dla.h endian.h mpa.h mydefs.h */
-/* root.tbl uexp.tbl upow.tbl */
-/* An ultimate power routine. Given two IEEE double machine numbers y,x */
-/* it computes the correctly rounded (to nearest) value of x^y. */
-/* Assumption: Machine arithmetic operations are performed in */
-/* round to nearest mode of IEEE 754 standard. */
-/* */
-/***************************************************************************/
+/* Double-precision x^y function.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
#include <math.h>
-#include "endian.h"
-#include "upow.h"
-#include <dla.h>
-#include "mydefs.h"
-#include "MathLib.h"
-#include "upow.tbl"
-#include <math_private.h>
-#include <math-underflow.h>
-#include <fenv.h>
+#include <stdint.h>
+#include <math-barriers.h>
+#include <math-narrow-eval.h>
+#include <math-svid-compat.h>
+#include <shlib-compat.h>
+#include <libm-alias-double.h>
+#include "math_config.h"
-#ifndef SECTION
-# define SECTION
-#endif
+/*
+Worst-case error: 0.54 ULP (~= ulperr_exp + 1024*Ln2*relerr_log*2^53)
+relerr_log: 1.3 * 2^-68 (Relative error of log, 1.5 * 2^-68 without fma)
+ulperr_exp: 0.509 ULP (ULP error of exp, 0.511 ULP without fma)
+*/
-static const double huge = 1.0e300, tiny = 1.0e-300;
+#define T __pow_log_data.tab
+#define A __pow_log_data.poly
+#define Ln2hi __pow_log_data.ln2hi
+#define Ln2lo __pow_log_data.ln2lo
+#define N (1 << POW_LOG_TABLE_BITS)
+#define OFF 0x3fe6955500000000
-double __exp1 (double x, double xx);
-static double log1 (double x, double *delta);
-static int checkint (double x);
+/* Top 12 bits of a double (sign and exponent bits). */
+static inline uint32_t
+top12 (double x)
+{
+ return asuint64 (x) >> 52;
+}
-/* An ultimate power routine. Given two IEEE double machine numbers y, x it
- computes the correctly rounded (to nearest) value of X^y. */
-double
-SECTION
-__ieee754_pow (double x, double y)
+/* Compute y+TAIL = log(x) where the rounded result is y and TAIL has about
+ additional 15 bits precision. IX is the bit representation of x, but
+ normalized in the subnormal range using the sign bit for the exponent. */
+static inline double_t
+log_inline (uint64_t ix, double_t *tail)
{
- double z, a, aa, t, a1, a2, y1, y2;
- mynumber u, v;
- int k;
- int4 qx, qy;
- v.x = y;
- u.x = x;
- if (v.i[LOW_HALF] == 0)
- { /* of y */
- qx = u.i[HIGH_HALF] & 0x7fffffff;
- /* Is x a NaN? */
- if ((((qx == 0x7ff00000) && (u.i[LOW_HALF] != 0)) || (qx > 0x7ff00000))
- && (y != 0 || issignaling (x)))
- return x + x;
- if (y == 1.0)
- return x;
- if (y == 2.0)
- return x * x;
- if (y == -1.0)
- return 1.0 / x;
- if (y == 0)
- return 1.0;
- }
- /* else */
- if (((u.i[HIGH_HALF] > 0 && u.i[HIGH_HALF] < 0x7ff00000) || /* x>0 and not x->0 */
- (u.i[HIGH_HALF] == 0 && u.i[LOW_HALF] != 0)) &&
- /* 2^-1023< x<= 2^-1023 * 0x1.0000ffffffff */
- (v.i[HIGH_HALF] & 0x7fffffff) < 0x4ff00000)
- { /* if y<-1 or y>1 */
- double retval;
+ /* double_t for better performance on targets with FLT_EVAL_METHOD==2. */
+ double_t z, r, y, invc, logc, logctail, kd, hi, t1, t2, lo, lo1, lo2, p;
+ uint64_t iz, tmp;
+ int k, i;
- {
- SET_RESTORE_ROUND (FE_TONEAREST);
+ /* x = 2^k z; where z is in range [OFF,2*OFF) and exact.
+ The range is split into N subintervals.
+ The ith subinterval contains z and c is near its center. */
+ tmp = ix - OFF;
+ i = (tmp >> (52 - POW_LOG_TABLE_BITS)) % N;
+ k = (int64_t) tmp >> 52; /* arithmetic shift */
+ iz = ix - (tmp & 0xfffULL << 52);
+ z = asdouble (iz);
+ kd = (double_t) k;
- /* Avoid internal underflow for tiny y. The exact value of y does
- not matter if |y| <= 2**-64. */
- if (fabs (y) < 0x1p-64)
- y = y < 0 ? -0x1p-64 : 0x1p-64;
- z = log1 (x, &aa); /* x^y =e^(y log (X)) */
- t = y * CN;
- y1 = t - (t - y);
- y2 = y - y1;
- t = z * CN;
- a1 = t - (t - z);
- a2 = (z - a1) + aa;
- a = y1 * a1;
- aa = y2 * a1 + y * a2;
- a1 = a + aa;
- a2 = (a - a1) + aa;
+ /* log(x) = k*Ln2 + log(c) + log1p(z/c-1). */
+ invc = T[i].invc;
+ logc = T[i].logc;
+ logctail = T[i].logctail;
+
+ /* Note: 1/c is j/N or j/N/2 where j is an integer in [N,2N) and
+ |z/c - 1| < 1/N, so r = z/c - 1 is exactly representible. */
+#ifdef __FP_FAST_FMA
+ r = __builtin_fma (z, invc, -1.0);
+#else
+ /* Split z such that rhi, rlo and rhi*rhi are exact and |rlo| <= |r|. */
+ double_t zhi = asdouble ((iz + (1ULL << 31)) & (-1ULL << 32));
+ double_t zlo = z - zhi;
+ double_t rhi = zhi * invc - 1.0;
+ double_t rlo = zlo * invc;
+ r = rhi + rlo;
+#endif
- /* Maximum relative error RElog of log1 is 1.0e-21 (69.7 bits).
- Maximum relative error REexp of __exp1 is 8.8e-22 (69.9 bits).
- We actually compute exp ((1 + RElog) * log (x) * y) * (1 + REexp).
- Since RElog/REexp are tiny and log (x) * y is at most log (DBL_MAX),
- this is equivalent to pow (x, y) * (1 + 710 * RElog + REexp).
- So the relative error is 710 * 1.0e-21 + 8.8e-22 = 7.1e-19
- (60.2 bits). The worst-case ULP error is 0.5064. */
+ /* k*Ln2 + log(c) + r. */
+ t1 = kd * Ln2hi + logc;
+ t2 = t1 + r;
+ lo1 = kd * Ln2lo + logctail;
+ lo2 = t1 - t2 + r;
- retval = __exp1 (a1, a2);
- }
+ /* Evaluation is optimized assuming superscalar pipelined execution. */
+ double_t ar, ar2, ar3, lo3, lo4;
+ ar = A[0] * r; /* A[0] = -0.5. */
+ ar2 = r * ar;
+ ar3 = r * ar2;
+ /* k*Ln2 + log(c) + r + A[0]*r*r. */
+#ifdef __FP_FAST_FMA
+ hi = t2 + ar2;
+ lo3 = __builtin_fma (ar, r, -ar2);
+ lo4 = t2 - hi + ar2;
+#else
+ double_t arhi = A[0] * rhi;
+ double_t arhi2 = rhi * arhi;
+ hi = t2 + arhi2;
+ lo3 = rlo * (ar + arhi);
+ lo4 = t2 - hi + arhi2;
+#endif
+ /* p = log1p(r) - r - A[0]*r*r. */
+ p = (ar3
+ * (A[1] + r * A[2] + ar2 * (A[3] + r * A[4] + ar2 * (A[5] + r * A[6]))));
+ lo = lo1 + lo2 + lo3 + lo4 + p;
+ y = hi + lo;
+ *tail = hi - y + lo;
+ return y;
+}
- if (isinf (retval))
- retval = huge * huge;
- else if (retval == 0)
- retval = tiny * tiny;
- else
- math_check_force_underflow_nonneg (retval);
- return retval;
- }
+#undef N
+#undef T
+#define N (1 << EXP_TABLE_BITS)
+#define InvLn2N __exp_data.invln2N
+#define NegLn2hiN __exp_data.negln2hiN
+#define NegLn2loN __exp_data.negln2loN
+#define Shift __exp_data.shift
+#define T __exp_data.tab
+#define C2 __exp_data.poly[5 - EXP_POLY_ORDER]
+#define C3 __exp_data.poly[6 - EXP_POLY_ORDER]
+#define C4 __exp_data.poly[7 - EXP_POLY_ORDER]
+#define C5 __exp_data.poly[8 - EXP_POLY_ORDER]
+#define C6 __exp_data.poly[9 - EXP_POLY_ORDER]
- if (x == 0)
+/* Handle cases that may overflow or underflow when computing the result that
+ is scale*(1+TMP) without intermediate rounding. The bit representation of
+ scale is in SBITS, however it has a computed exponent that may have
+ overflown into the sign bit so that needs to be adjusted before using it as
+ a double. (int32_t)KI is the k used in the argument reduction and exponent
+ adjustment of scale, positive k here means the result may overflow and
+ negative k means the result may underflow. */
+static inline double
+specialcase (double_t tmp, uint64_t sbits, uint64_t ki)
+{
+ double_t scale, y;
+
+ if ((ki & 0x80000000) == 0)
+ {
+ /* k > 0, the exponent of scale might have overflowed by <= 460. */
+ sbits -= 1009ull << 52;
+ scale = asdouble (sbits);
+ y = 0x1p1009 * (scale + scale * tmp);
+ return check_oflow (y);
+ }
+ /* k < 0, need special care in the subnormal range. */
+ sbits += 1022ull << 52;
+ /* Note: sbits is signed scale. */
+ scale = asdouble (sbits);
+ y = scale + scale * tmp;
+ if (fabs (y) < 1.0)
{
- if (((v.i[HIGH_HALF] & 0x7fffffff) == 0x7ff00000 && v.i[LOW_HALF] != 0)
- || (v.i[HIGH_HALF] & 0x7fffffff) > 0x7ff00000) /* NaN */
- return y + y;
- if (fabs (y) > 1.0e20)
- return (y > 0) ? 0 : 1.0 / 0.0;
- k = checkint (y);
- if (k == -1)
- return y < 0 ? 1.0 / x : x;
- else
- return y < 0 ? 1.0 / 0.0 : 0.0; /* return 0 */
+ /* Round y to the right precision before scaling it into the subnormal
+ range to avoid double rounding that can cause 0.5+E/2 ulp error where
+ E is the worst-case ulp error outside the subnormal range. So this
+ is only useful if the goal is better than 1 ulp worst-case error. */
+ double_t hi, lo, one = 1.0;
+ if (y < 0.0)
+ one = -1.0;
+ lo = scale - y + scale * tmp;
+ hi = one + y;
+ lo = one - hi + y + lo;
+ y = math_narrow_eval (hi + lo) - one;
+ /* Fix the sign of 0. */
+ if (y == 0.0)
+ y = asdouble (sbits & 0x8000000000000000);
+ /* The underflow exception needs to be signaled explicitly. */
+ math_force_eval (math_opt_barrier (0x1p-1022) * 0x1p-1022);
}
+ y = 0x1p-1022 * y;
+ return check_uflow (y);
+}
- qx = u.i[HIGH_HALF] & 0x7fffffff; /* no sign */
- qy = v.i[HIGH_HALF] & 0x7fffffff; /* no sign */
+#define SIGN_BIAS (0x800 << EXP_TABLE_BITS)
- if (qx >= 0x7ff00000 && (qx > 0x7ff00000 || u.i[LOW_HALF] != 0)) /* NaN */
- return x + y;
- if (qy >= 0x7ff00000 && (qy > 0x7ff00000 || v.i[LOW_HALF] != 0)) /* NaN */
- return x == 1.0 && !issignaling (y) ? 1.0 : y + y;
+/* Computes sign*exp(x+xtail) where |xtail| < 2^-8/N and |xtail| <= |x|.
+ The sign_bias argument is SIGN_BIAS or 0 and sets the sign to -1 or 1. */
+static inline double
+exp_inline (double x, double xtail, uint32_t sign_bias)
+{
+ uint32_t abstop;
+ uint64_t ki, idx, top, sbits;
+ /* double_t for better performance on targets with FLT_EVAL_METHOD==2. */
+ double_t kd, z, r, r2, scale, tail, tmp;
- /* if x<0 */
- if (u.i[HIGH_HALF] < 0)
+ abstop = top12 (x) & 0x7ff;
+ if (__glibc_unlikely (abstop - top12 (0x1p-54)
+ >= top12 (512.0) - top12 (0x1p-54)))
{
- k = checkint (y);
- if (k == 0)
+ if (abstop - top12 (0x1p-54) >= 0x80000000)
{
- if (qy == 0x7ff00000)
- {
- if (x == -1.0)
- return 1.0;
- else if (x > -1.0)
- return v.i[HIGH_HALF] < 0 ? INF.x : 0.0;
- else
- return v.i[HIGH_HALF] < 0 ? 0.0 : INF.x;
- }
- else if (qx == 0x7ff00000)
- return y < 0 ? 0.0 : INF.x;
- return (x - x) / (x - x); /* y not integer and x<0 */
+ /* Avoid spurious underflow for tiny x. */
+ /* Note: 0 is common input. */
+ double_t one = WANT_ROUNDING ? 1.0 + x : 1.0;
+ return sign_bias ? -one : one;
}
- else if (qx == 0x7ff00000)
+ if (abstop >= top12 (1024.0))
{
- if (k < 0)
- return y < 0 ? nZERO.x : nINF.x;
+ /* Note: inf and nan are already handled. */
+ if (asuint64 (x) >> 63)
+ return __math_uflow (sign_bias);
else
- return y < 0 ? 0.0 : INF.x;
- }
- /* if y even or odd */
- if (k == 1)
- return __ieee754_pow (-x, y);
- else
- {
- double retval;
- {
- SET_RESTORE_ROUND (FE_TONEAREST);
- retval = -__ieee754_pow (-x, y);
- }
- if (isinf (retval))
- retval = -huge * huge;
- else if (retval == 0)
- retval = -tiny * tiny;
- return retval;
+ return __math_oflow (sign_bias);
}
+ /* Large x is special cased below. */
+ abstop = 0;
}
- /* x>0 */
- if (qx == 0x7ff00000) /* x= 2^-0x3ff */
- return y > 0 ? x : 0;
+ /* exp(x) = 2^(k/N) * exp(r), with exp(r) in [2^(-1/2N),2^(1/2N)]. */
+ /* x = ln2/N*k + r, with int k and r in [-ln2/2N, ln2/2N]. */
+ z = InvLn2N * x;
+#if TOINT_INTRINSICS
+ /* z - kd is in [-0.5, 0.5] in all rounding modes. */
+ kd = roundtoint (z);
+ ki = converttoint (z);
+#else
+ /* z - kd is in [-1, 1] in non-nearest rounding modes. */
+ kd = math_narrow_eval (z + Shift);
+ ki = asuint64 (kd);
+ kd -= Shift;
+#endif
+ r = x + kd * NegLn2hiN + kd * NegLn2loN;
+ /* The code assumes 2^-200 < |xtail| < 2^-8/N. */
+ r += xtail;
+ /* 2^(k/N) ~= scale * (1 + tail). */
+ idx = 2 * (ki % N);
+ top = (ki + sign_bias) << (52 - EXP_TABLE_BITS);
+ tail = asdouble (T[idx]);
+ /* This is only a valid scale when -1023*N < k < 1024*N. */
+ sbits = T[idx + 1] + top;
+ /* exp(x) = 2^(k/N) * exp(r) ~= scale + scale * (tail + exp(r) - 1). */
+ /* Evaluation is optimized assuming superscalar pipelined execution. */
+ r2 = r * r;
+ /* Without fma the worst case error is 0.25/N ulp larger. */
+ /* Worst case error is less than 0.5+1.11/N+(abs poly error * 2^53) ulp. */
+ tmp = tail + r + r2 * (C2 + r * C3) + r2 * r2 * (C4 + r * C5);
+ if (__glibc_unlikely (abstop == 0))
+ return specialcase (tmp, sbits, ki);
+ scale = asdouble (sbits);
+ /* Note: tmp == 0 or |tmp| > 2^-200 and scale > 2^-739, so there
+ is no spurious underflow here even without fma. */
+ return scale + scale * tmp;
+}
- if (qy > 0x45f00000 && qy < 0x7ff00000)
- {
- if (x == 1.0)
- return 1.0;
- if (y > 0)
- return (x > 1.0) ? huge * huge : tiny * tiny;
- if (y < 0)
- return (x < 1.0) ? huge * huge : tiny * tiny;
- }
+/* Returns 0 if not int, 1 if odd int, 2 if even int. The argument is
+ the bit representation of a non-zero finite floating-point value. */
+static inline int
+checkint (uint64_t iy)
+{
+ int e = iy >> 52 & 0x7ff;
+ if (e < 0x3ff)
+ return 0;
+ if (e > 0x3ff + 52)
+ return 2;
+ if (iy & ((1ULL << (0x3ff + 52 - e)) - 1))
+ return 0;
+ if (iy & (1ULL << (0x3ff + 52 - e)))
+ return 1;
+ return 2;
+}
- if (x == 1.0)
- return 1.0;
- if (y > 0)
- return (x > 1.0) ? INF.x : 0;
- if (y < 0)
- return (x < 1.0) ? INF.x : 0;
- return 0; /* unreachable, to make the compiler happy */
+/* Returns 1 if input is the bit representation of 0, infinity or nan. */
+static inline int
+zeroinfnan (uint64_t i)
+{
+ return 2 * i - 1 >= 2 * asuint64 (INFINITY) - 1;
}
-#ifndef __ieee754_pow
-strong_alias (__ieee754_pow, __pow_finite)
+#ifndef SECTION
+# define SECTION
#endif
-/* Compute log(x) (x is left argument). The result is the returned double + the
- parameter DELTA. */
-static double
+double
SECTION
-log1 (double x, double *delta)
+__pow (double x, double y)
{
- unsigned int i, j;
- int m;
- double uu, vv, eps, nx, e, e1, e2, t, t1, t2, res, add = 0;
- mynumber u, v;
-#ifdef BIG_ENDI
- mynumber /**/ two52 = {{0x43300000, 0x00000000}}; /* 2**52 */
-#else
-# ifdef LITTLE_ENDI
- mynumber /**/ two52 = {{0x00000000, 0x43300000}}; /* 2**52 */
-# endif
-#endif
+ uint32_t sign_bias = 0;
+ uint64_t ix, iy;
+ uint32_t topx, topy;
- u.x = x;
- m = u.i[HIGH_HALF];
- if (m < 0x00100000) /* Handle denormal x. */
+ ix = asuint64 (x);
+ iy = asuint64 (y);
+ topx = top12 (x);
+ topy = top12 (y);
+ if (__glibc_unlikely (topx - 0x001 >= 0x7ff - 0x001
+ || (topy & 0x7ff) - 0x3be >= 0x43e - 0x3be))
{
- x = x * t52.x;
- add = -52.0;
- u.x = x;
- m = u.i[HIGH_HALF];
- }
-
- if ((m & 0x000fffff) < 0x0006a09e)
- {
- u.i[HIGH_HALF] = (m & 0x000fffff) | 0x3ff00000;
- two52.i[LOW_HALF] = (m >> 20);
- }
- else
- {
- u.i[HIGH_HALF] = (m & 0x000fffff) | 0x3fe00000;
- two52.i[LOW_HALF] = (m >> 20) + 1;
- }
-
- v.x = u.x + bigu.x;
- uu = v.x - bigu.x;
- i = (v.i[LOW_HALF] & 0x000003ff) << 2;
- if (two52.i[LOW_HALF] == 1023) /* Exponent of x is 0. */
- {
- if (i > 1192 && i < 1208) /* |x-1| < 1.5*2**-10 */
+ /* Note: if |y| > 1075 * ln2 * 2^53 ~= 0x1.749p62 then pow(x,y) = inf/0
+ and if |y| < 2^-54 / 1075 ~= 0x1.e7b6p-65 then pow(x,y) = +-1. */
+ /* Special cases: (x < 0x1p-126 or inf or nan) or
+ (|y| < 0x1p-65 or |y| >= 0x1p63 or nan). */
+ if (__glibc_unlikely (zeroinfnan (iy)))
{
- t = x - 1.0;
- t1 = (t + 5.0e6) - 5.0e6;
- t2 = t - t1;
- e1 = t - 0.5 * t1 * t1;
- e2 = (t * t * t * (r3 + t * (r4 + t * (r5 + t * (r6 + t
- * (r7 + t * r8)))))
- - 0.5 * t2 * (t + t1));
- res = e1 + e2;
- *delta = (e1 - res) + e2;
- /* Max relative error is 1.464844e-24, so accurate to 79.1 bits. */
- return res;
- } /* |x-1| < 1.5*2**-10 */
- else
+ if (2 * iy == 0)
+ return issignaling_inline (x) ? x + y : 1.0;
+ if (ix == asuint64 (1.0))
+ return issignaling_inline (y) ? x + y : 1.0;
+ if (2 * ix > 2 * asuint64 (INFINITY)
+ || 2 * iy > 2 * asuint64 (INFINITY))
+ return x + y;
+ if (2 * ix == 2 * asuint64 (1.0))
+ return 1.0;
+ if ((2 * ix < 2 * asuint64 (1.0)) == !(iy >> 63))
+ return 0.0; /* |x|<1 && y==inf or |x|>1 && y==-inf. */
+ return y * y;
+ }
+ if (__glibc_unlikely (zeroinfnan (ix)))
{
- v.x = u.x * (ui.x[i] + ui.x[i + 1]) + bigv.x;
- vv = v.x - bigv.x;
- j = v.i[LOW_HALF] & 0x0007ffff;
- j = j + j + j;
- eps = u.x - uu * vv;
- e1 = eps * ui.x[i];
- e2 = eps * (ui.x[i + 1] + vj.x[j] * (ui.x[i] + ui.x[i + 1]));
- e = e1 + e2;
- e2 = ((e1 - e) + e2);
- t = ui.x[i + 2] + vj.x[j + 1];
- t1 = t + e;
- t2 = ((((t - t1) + e) + (ui.x[i + 3] + vj.x[j + 2])) + e2 + e * e
- * (p2 + e * (p3 + e * p4)));
- res = t1 + t2;
- *delta = (t1 - res) + t2;
- /* Max relative error is 1.0e-24, so accurate to 79.7 bits. */
- return res;
+ double_t x2 = x * x;
+ if (ix >> 63 && checkint (iy) == 1)
+ {
+ x2 = -x2;
+ sign_bias = 1;
+ }
+ if (WANT_ERRNO && 2 * ix == 0 && iy >> 63)
+ return __math_divzero (sign_bias);
+ /* Without the barrier some versions of clang hoist the 1/x2 and
+ thus division by zero exception can be signaled spuriously. */
+ return iy >> 63 ? math_opt_barrier (1 / x2) : x2;
+ }
+ /* Here x and y are non-zero finite. */
+ if (ix >> 63)
+ {
+ /* Finite x < 0. */
+ int yint = checkint (iy);
+ if (yint == 0)
+ return __math_invalid (x);
+ if (yint == 1)
+ sign_bias = SIGN_BIAS;
+ ix &= 0x7fffffffffffffff;
+ topx &= 0x7ff;
+ }
+ if ((topy & 0x7ff) - 0x3be >= 0x43e - 0x3be)
+ {
+ /* Note: sign_bias == 0 here because y is not odd. */
+ if (ix == asuint64 (1.0))
+ return 1.0;
+ if ((topy & 0x7ff) < 0x3be)
+ {
+ /* |y| < 2^-65, x^y ~= 1 + y*log(x). */
+ if (WANT_ROUNDING)
+ return ix > asuint64 (1.0) ? 1.0 + y : 1.0 - y;
+ else
+ return 1.0;
+ }
+ return (ix > asuint64 (1.0)) == (topy < 0x800) ? __math_oflow (0)
+ : __math_uflow (0);
+ }
+ if (topx == 0)
+ {
+ /* Normalize subnormal x so exponent becomes negative. */
+ ix = asuint64 (x * 0x1p52);
+ ix &= 0x7fffffffffffffff;
+ ix -= 52ULL << 52;
}
}
- else /* Exponent of x != 0. */
- {
- eps = u.x - uu;
- nx = (two52.x - two52e.x) + add;
- e1 = eps * ui.x[i];
- e2 = eps * ui.x[i + 1];
- e = e1 + e2;
- e2 = (e1 - e) + e2;
- t = nx * ln2a.x + ui.x[i + 2];
- t1 = t + e;
- t2 = ((((t - t1) + e) + nx * ln2b.x + ui.x[i + 3] + e2) + e * e
- * (q2 + e * (q3 + e * (q4 + e * (q5 + e * q6)))));
- res = t1 + t2;
- *delta = (t1 - res) + t2;
- /* Max relative error is 1.0e-21, so accurate to 69.7 bits. */
- return res;
- }
-}
-
-/* This function receives a double x and checks if it is an integer. If not,
- it returns 0, else it returns 1 if even or -1 if odd. */
-static int
-SECTION
-checkint (double x)
-{
- union
- {
- int4 i[2];
- double x;
- } u;
- int k;
- unsigned int m, n;
- u.x = x;
- m = u.i[HIGH_HALF] & 0x7fffffff; /* no sign */
- if (m >= 0x7ff00000)
- return 0; /* x is +/-inf or NaN */
- if (m >= 0x43400000)
- return 1; /* |x| >= 2**53 */
- if (m < 0x40000000)
- return 0; /* |x| < 2, can not be 0 or 1 */
- n = u.i[LOW_HALF];
- k = (m >> 20) - 1023; /* 1 <= k <= 52 */
- if (k == 52)
- return (n & 1) ? -1 : 1; /* odd or even */
- if (k > 20)
- {
- if (n << (k - 20) != 0)
- return 0; /* if not integer */
- return (n << (k - 21) != 0) ? -1 : 1;
- }
- if (n)
- return 0; /*if not integer */
- if (k == 20)
- return (m & 1) ? -1 : 1;
- if (m << (k + 12) != 0)
- return 0;
- return (m << (k + 11) != 0) ? -1 : 1;
+ double_t lo;
+ double_t hi = log_inline (ix, &lo);
+ double_t ehi, elo;
+#ifdef __FP_FAST_FMA
+ ehi = y * hi;
+ elo = y * lo + __builtin_fma (y, hi, -ehi);
+#else
+ double_t yhi = asdouble (iy & -1ULL << 27);
+ double_t ylo = y - yhi;
+ double_t lhi = asdouble (asuint64 (hi) & -1ULL << 27);
+ double_t llo = hi - lhi + lo;
+ ehi = yhi * lhi;
+ elo = ylo * lhi + y * llo; /* |elo| < |ehi| * 2^-25. */
+#endif
+ return exp_inline (ehi, elo, sign_bias);
}
+#ifndef __pow
+strong_alias (__pow, __ieee754_pow)
+strong_alias (__pow, __pow_finite)
+# if LIBM_SVID_COMPAT
+versioned_symbol (libm, __pow, pow, GLIBC_2_29);
+libm_alias_double_other (__pow, pow)
+# else
+libm_alias_double (__pow, pow)
+# endif
+#endif
diff --git a/sysdeps/ieee754/dbl-64/e_pow_log_data.c b/sysdeps/ieee754/dbl-64/e_pow_log_data.c
new file mode 100644
index 0000000000..0e23d2b6b7
--- /dev/null
+++ b/sysdeps/ieee754/dbl-64/e_pow_log_data.c
@@ -0,0 +1,195 @@
+/* Data for the log part of pow.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include "math_config.h"
+
+#define N (1 << POW_LOG_TABLE_BITS)
+
+const struct pow_log_data __pow_log_data = {
+.ln2hi = 0x1.62e42fefa3800p-1,
+.ln2lo = 0x1.ef35793c76730p-45,
+.poly = {
+#if N == 128 && POW_LOG_POLY_ORDER == 8
+// relative error: 0x1.11922ap-70
+// in -0x1.6bp-8 0x1.6bp-8
+// Coefficients are scaled to match the scaling during evaluation.
+-0x1p-1,
+0x1.555555555556p-2 * -2,
+-0x1.0000000000006p-2 * -2,
+0x1.999999959554ep-3 * 4,
+-0x1.555555529a47ap-3 * 4,
+0x1.2495b9b4845e9p-3 * -8,
+-0x1.0002b8b263fc3p-3 * -8,
+#endif
+},
+/* Algorithm:
+
+ x = 2^k z
+ log(x) = k ln2 + log(c) + log(z/c)
+ log(z/c) = poly(z/c - 1)
+
+where z is in [0x1.69555p-1; 0x1.69555p0] which is split into N subintervals
+and z falls into the ith one, then table entries are computed as
+
+ tab[i].invc = 1/c
+ tab[i].logc = round(0x1p43*log(c))/0x1p43
+ tab[i].logctail = (double)(log(c) - logc)
+
+where c is chosen near the center of the subinterval such that 1/c has only a
+few precision bits so z/c - 1 is exactly representible as double:
+
+ 1/c = center < 1 ? round(N/center)/N : round(2*N/center)/N/2
+
+Note: |z/c - 1| < 1/N for the chosen c, |log(c) - logc - logctail| < 0x1p-97,
+the last few bits of logc are rounded away so k*ln2hi + logc has no rounding
+error and the interval for z is selected such that near x == 1, where log(x)
+is tiny, large cancellation error is avoided in logc + poly(z/c - 1). */
+.tab = {
+#if N == 128
+#define A(a,b,c) {a,0,b,c},
+A(0x1.6a00000000000p+0, -0x1.62c82f2b9c800p-2, 0x1.ab42428375680p-48)
+A(0x1.6800000000000p+0, -0x1.5d1bdbf580800p-2, -0x1.ca508d8e0f720p-46)
+A(0x1.6600000000000p+0, -0x1.5767717455800p-2, -0x1.362a4d5b6506dp-45)
+A(0x1.6400000000000p+0, -0x1.51aad872df800p-2, -0x1.684e49eb067d5p-49)
+A(0x1.6200000000000p+0, -0x1.4be5f95777800p-2, -0x1.41b6993293ee0p-47)
+A(0x1.6000000000000p+0, -0x1.4618bc21c6000p-2, 0x1.3d82f484c84ccp-46)
+A(0x1.5e00000000000p+0, -0x1.404308686a800p-2, 0x1.c42f3ed820b3ap-50)
+A(0x1.5c00000000000p+0, -0x1.3a64c55694800p-2, 0x1.0b1c686519460p-45)
+A(0x1.5a00000000000p+0, -0x1.347dd9a988000p-2, 0x1.5594dd4c58092p-45)
+A(0x1.5800000000000p+0, -0x1.2e8e2bae12000p-2, 0x1.67b1e99b72bd8p-45)
+A(0x1.5600000000000p+0, -0x1.2895a13de8800p-2, 0x1.5ca14b6cfb03fp-46)
+A(0x1.5600000000000p+0, -0x1.2895a13de8800p-2, 0x1.5ca14b6cfb03fp-46)
+A(0x1.5400000000000p+0, -0x1.22941fbcf7800p-2, -0x1.65a242853da76p-46)
+A(0x1.5200000000000p+0, -0x1.1c898c1699800p-2, -0x1.fafbc68e75404p-46)
+A(0x1.5000000000000p+0, -0x1.1675cababa800p-2, 0x1.f1fc63382a8f0p-46)
+A(0x1.4e00000000000p+0, -0x1.1058bf9ae4800p-2, -0x1.6a8c4fd055a66p-45)
+A(0x1.4c00000000000p+0, -0x1.0a324e2739000p-2, -0x1.c6bee7ef4030ep-47)
+A(0x1.4a00000000000p+0, -0x1.0402594b4d000p-2, -0x1.036b89ef42d7fp-48)
+A(0x1.4a00000000000p+0, -0x1.0402594b4d000p-2, -0x1.036b89ef42d7fp-48)
+A(0x1.4800000000000p+0, -0x1.fb9186d5e4000p-3, 0x1.d572aab993c87p-47)
+A(0x1.4600000000000p+0, -0x1.ef0adcbdc6000p-3, 0x1.b26b79c86af24p-45)
+A(0x1.4400000000000p+0, -0x1.e27076e2af000p-3, -0x1.72f4f543fff10p-46)
+A(0x1.4200000000000p+0, -0x1.d5c216b4fc000p-3, 0x1.1ba91bbca681bp-45)
+A(0x1.4000000000000p+0, -0x1.c8ff7c79aa000p-3, 0x1.7794f689f8434p-45)
+A(0x1.4000000000000p+0, -0x1.c8ff7c79aa000p-3, 0x1.7794f689f8434p-45)
+A(0x1.3e00000000000p+0, -0x1.bc286742d9000p-3, 0x1.94eb0318bb78fp-46)
+A(0x1.3c00000000000p+0, -0x1.af3c94e80c000p-3, 0x1.a4e633fcd9066p-52)
+A(0x1.3a00000000000p+0, -0x1.a23bc1fe2b000p-3, -0x1.58c64dc46c1eap-45)
+A(0x1.3a00000000000p+0, -0x1.a23bc1fe2b000p-3, -0x1.58c64dc46c1eap-45)
+A(0x1.3800000000000p+0, -0x1.9525a9cf45000p-3, -0x1.ad1d904c1d4e3p-45)
+A(0x1.3600000000000p+0, -0x1.87fa06520d000p-3, 0x1.bbdbf7fdbfa09p-45)
+A(0x1.3400000000000p+0, -0x1.7ab890210e000p-3, 0x1.bdb9072534a58p-45)
+A(0x1.3400000000000p+0, -0x1.7ab890210e000p-3, 0x1.bdb9072534a58p-45)
+A(0x1.3200000000000p+0, -0x1.6d60fe719d000p-3, -0x1.0e46aa3b2e266p-46)
+A(0x1.3000000000000p+0, -0x1.5ff3070a79000p-3, -0x1.e9e439f105039p-46)
+A(0x1.3000000000000p+0, -0x1.5ff3070a79000p-3, -0x1.e9e439f105039p-46)
+A(0x1.2e00000000000p+0, -0x1.526e5e3a1b000p-3, -0x1.0de8b90075b8fp-45)
+A(0x1.2c00000000000p+0, -0x1.44d2b6ccb8000p-3, 0x1.70cc16135783cp-46)
+A(0x1.2c00000000000p+0, -0x1.44d2b6ccb8000p-3, 0x1.70cc16135783cp-46)
+A(0x1.2a00000000000p+0, -0x1.371fc201e9000p-3, 0x1.178864d27543ap-48)
+A(0x1.2800000000000p+0, -0x1.29552f81ff000p-3, -0x1.48d301771c408p-45)
+A(0x1.2600000000000p+0, -0x1.1b72ad52f6000p-3, -0x1.e80a41811a396p-45)
+A(0x1.2600000000000p+0, -0x1.1b72ad52f6000p-3, -0x1.e80a41811a396p-45)
+A(0x1.2400000000000p+0, -0x1.0d77e7cd09000p-3, 0x1.a699688e85bf4p-47)
+A(0x1.2400000000000p+0, -0x1.0d77e7cd09000p-3, 0x1.a699688e85bf4p-47)
+A(0x1.2200000000000p+0, -0x1.fec9131dbe000p-4, -0x1.575545ca333f2p-45)
+A(0x1.2000000000000p+0, -0x1.e27076e2b0000p-4, 0x1.a342c2af0003cp-45)
+A(0x1.2000000000000p+0, -0x1.e27076e2b0000p-4, 0x1.a342c2af0003cp-45)
+A(0x1.1e00000000000p+0, -0x1.c5e548f5bc000p-4, -0x1.d0c57585fbe06p-46)
+A(0x1.1c00000000000p+0, -0x1.a926d3a4ae000p-4, 0x1.53935e85baac8p-45)
+A(0x1.1c00000000000p+0, -0x1.a926d3a4ae000p-4, 0x1.53935e85baac8p-45)
+A(0x1.1a00000000000p+0, -0x1.8c345d631a000p-4, 0x1.37c294d2f5668p-46)
+A(0x1.1a00000000000p+0, -0x1.8c345d631a000p-4, 0x1.37c294d2f5668p-46)
+A(0x1.1800000000000p+0, -0x1.6f0d28ae56000p-4, -0x1.69737c93373dap-45)
+A(0x1.1600000000000p+0, -0x1.51b073f062000p-4, 0x1.f025b61c65e57p-46)
+A(0x1.1600000000000p+0, -0x1.51b073f062000p-4, 0x1.f025b61c65e57p-46)
+A(0x1.1400000000000p+0, -0x1.341d7961be000p-4, 0x1.c5edaccf913dfp-45)
+A(0x1.1400000000000p+0, -0x1.341d7961be000p-4, 0x1.c5edaccf913dfp-45)
+A(0x1.1200000000000p+0, -0x1.16536eea38000p-4, 0x1.47c5e768fa309p-46)
+A(0x1.1000000000000p+0, -0x1.f0a30c0118000p-5, 0x1.d599e83368e91p-45)
+A(0x1.1000000000000p+0, -0x1.f0a30c0118000p-5, 0x1.d599e83368e91p-45)
+A(0x1.0e00000000000p+0, -0x1.b42dd71198000p-5, 0x1.c827ae5d6704cp-46)
+A(0x1.0e00000000000p+0, -0x1.b42dd71198000p-5, 0x1.c827ae5d6704cp-46)
+A(0x1.0c00000000000p+0, -0x1.77458f632c000p-5, -0x1.cfc4634f2a1eep-45)
+A(0x1.0c00000000000p+0, -0x1.77458f632c000p-5, -0x1.cfc4634f2a1eep-45)
+A(0x1.0a00000000000p+0, -0x1.39e87b9fec000p-5, 0x1.502b7f526feaap-48)
+A(0x1.0a00000000000p+0, -0x1.39e87b9fec000p-5, 0x1.502b7f526feaap-48)
+A(0x1.0800000000000p+0, -0x1.f829b0e780000p-6, -0x1.980267c7e09e4p-45)
+A(0x1.0800000000000p+0, -0x1.f829b0e780000p-6, -0x1.980267c7e09e4p-45)
+A(0x1.0600000000000p+0, -0x1.7b91b07d58000p-6, -0x1.88d5493faa639p-45)
+A(0x1.0400000000000p+0, -0x1.fc0a8b0fc0000p-7, -0x1.f1e7cf6d3a69cp-50)
+A(0x1.0400000000000p+0, -0x1.fc0a8b0fc0000p-7, -0x1.f1e7cf6d3a69cp-50)
+A(0x1.0200000000000p+0, -0x1.fe02a6b100000p-8, -0x1.9e23f0dda40e4p-46)
+A(0x1.0200000000000p+0, -0x1.fe02a6b100000p-8, -0x1.9e23f0dda40e4p-46)
+A(0x1.0000000000000p+0, 0x0.0000000000000p+0, 0x0.0000000000000p+0)
+A(0x1.0000000000000p+0, 0x0.0000000000000p+0, 0x0.0000000000000p+0)
+A(0x1.fc00000000000p-1, 0x1.0101575890000p-7, -0x1.0c76b999d2be8p-46)
+A(0x1.f800000000000p-1, 0x1.0205658938000p-6, -0x1.3dc5b06e2f7d2p-45)
+A(0x1.f400000000000p-1, 0x1.8492528c90000p-6, -0x1.aa0ba325a0c34p-45)
+A(0x1.f000000000000p-1, 0x1.0415d89e74000p-5, 0x1.111c05cf1d753p-47)
+A(0x1.ec00000000000p-1, 0x1.466aed42e0000p-5, -0x1.c167375bdfd28p-45)
+A(0x1.e800000000000p-1, 0x1.894aa149fc000p-5, -0x1.97995d05a267dp-46)
+A(0x1.e400000000000p-1, 0x1.ccb73cdddc000p-5, -0x1.a68f247d82807p-46)
+A(0x1.e200000000000p-1, 0x1.eea31c006c000p-5, -0x1.e113e4fc93b7bp-47)
+A(0x1.de00000000000p-1, 0x1.1973bd1466000p-4, -0x1.5325d560d9e9bp-45)
+A(0x1.da00000000000p-1, 0x1.3bdf5a7d1e000p-4, 0x1.cc85ea5db4ed7p-45)
+A(0x1.d600000000000p-1, 0x1.5e95a4d97a000p-4, -0x1.c69063c5d1d1ep-45)
+A(0x1.d400000000000p-1, 0x1.700d30aeac000p-4, 0x1.c1e8da99ded32p-49)
+A(0x1.d000000000000p-1, 0x1.9335e5d594000p-4, 0x1.3115c3abd47dap-45)
+A(0x1.cc00000000000p-1, 0x1.b6ac88dad6000p-4, -0x1.390802bf768e5p-46)
+A(0x1.ca00000000000p-1, 0x1.c885801bc4000p-4, 0x1.646d1c65aacd3p-45)
+A(0x1.c600000000000p-1, 0x1.ec739830a2000p-4, -0x1.dc068afe645e0p-45)
+A(0x1.c400000000000p-1, 0x1.fe89139dbe000p-4, -0x1.534d64fa10afdp-45)
+A(0x1.c000000000000p-1, 0x1.1178e8227e000p-3, 0x1.1ef78ce2d07f2p-45)
+A(0x1.be00000000000p-1, 0x1.1aa2b7e23f000p-3, 0x1.ca78e44389934p-45)
+A(0x1.ba00000000000p-1, 0x1.2d1610c868000p-3, 0x1.39d6ccb81b4a1p-47)
+A(0x1.b800000000000p-1, 0x1.365fcb0159000p-3, 0x1.62fa8234b7289p-51)
+A(0x1.b400000000000p-1, 0x1.4913d8333b000p-3, 0x1.5837954fdb678p-45)
+A(0x1.b200000000000p-1, 0x1.527e5e4a1b000p-3, 0x1.633e8e5697dc7p-45)
+A(0x1.ae00000000000p-1, 0x1.6574ebe8c1000p-3, 0x1.9cf8b2c3c2e78p-46)
+A(0x1.ac00000000000p-1, 0x1.6f0128b757000p-3, -0x1.5118de59c21e1p-45)
+A(0x1.aa00000000000p-1, 0x1.7898d85445000p-3, -0x1.c661070914305p-46)
+A(0x1.a600000000000p-1, 0x1.8beafeb390000p-3, -0x1.73d54aae92cd1p-47)
+A(0x1.a400000000000p-1, 0x1.95a5adcf70000p-3, 0x1.7f22858a0ff6fp-47)
+A(0x1.a000000000000p-1, 0x1.a93ed3c8ae000p-3, -0x1.8724350562169p-45)
+A(0x1.9e00000000000p-1, 0x1.b31d8575bd000p-3, -0x1.c358d4eace1aap-47)
+A(0x1.9c00000000000p-1, 0x1.bd087383be000p-3, -0x1.d4bc4595412b6p-45)
+A(0x1.9a00000000000p-1, 0x1.c6ffbc6f01000p-3, -0x1.1ec72c5962bd2p-48)
+A(0x1.9600000000000p-1, 0x1.db13db0d49000p-3, -0x1.aff2af715b035p-45)
+A(0x1.9400000000000p-1, 0x1.e530effe71000p-3, 0x1.212276041f430p-51)
+A(0x1.9200000000000p-1, 0x1.ef5ade4dd0000p-3, -0x1.a211565bb8e11p-51)
+A(0x1.9000000000000p-1, 0x1.f991c6cb3b000p-3, 0x1.bcbecca0cdf30p-46)
+A(0x1.8c00000000000p-1, 0x1.07138604d5800p-2, 0x1.89cdb16ed4e91p-48)
+A(0x1.8a00000000000p-1, 0x1.0c42d67616000p-2, 0x1.7188b163ceae9p-45)
+A(0x1.8800000000000p-1, 0x1.1178e8227e800p-2, -0x1.c210e63a5f01cp-45)
+A(0x1.8600000000000p-1, 0x1.16b5ccbacf800p-2, 0x1.b9acdf7a51681p-45)
+A(0x1.8400000000000p-1, 0x1.1bf99635a6800p-2, 0x1.ca6ed5147bdb7p-45)
+A(0x1.8200000000000p-1, 0x1.214456d0eb800p-2, 0x1.a87deba46baeap-47)
+A(0x1.7e00000000000p-1, 0x1.2bef07cdc9000p-2, 0x1.a9cfa4a5004f4p-45)
+A(0x1.7c00000000000p-1, 0x1.314f1e1d36000p-2, -0x1.8e27ad3213cb8p-45)
+A(0x1.7a00000000000p-1, 0x1.36b6776be1000p-2, 0x1.16ecdb0f177c8p-46)
+A(0x1.7800000000000p-1, 0x1.3c25277333000p-2, 0x1.83b54b606bd5cp-46)
+A(0x1.7600000000000p-1, 0x1.419b423d5e800p-2, 0x1.8e436ec90e09dp-47)
+A(0x1.7400000000000p-1, 0x1.4718dc271c800p-2, -0x1.f27ce0967d675p-45)
+A(0x1.7200000000000p-1, 0x1.4c9e09e173000p-2, -0x1.e20891b0ad8a4p-45)
+A(0x1.7000000000000p-1, 0x1.522ae0738a000p-2, 0x1.ebe708164c759p-45)
+A(0x1.6e00000000000p-1, 0x1.57bf753c8d000p-2, 0x1.fadedee5d40efp-46)
+A(0x1.6c00000000000p-1, 0x1.5d5bddf596000p-2, -0x1.a0b2a08a465dcp-47)
+#endif
+},
+};
diff --git a/sysdeps/ieee754/dbl-64/e_rem_pio2.c b/sysdeps/ieee754/dbl-64/e_rem_pio2.c
deleted file mode 100644
index 81a3d073d4..0000000000
--- a/sysdeps/ieee754/dbl-64/e_rem_pio2.c
+++ /dev/null
@@ -1,193 +0,0 @@
-#ifdef NOT_NEEDED_ANYMORE
-
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-/* __ieee754_rem_pio2(x,y)
- *
- * return the remainder of x rem pi/2 in y[0]+y[1]
- * use __kernel_rem_pio2()
- */
-
-#include <math.h>
-#include <math_private.h>
-
-/*
- * Table of constants for 2/pi, 396 Hex digits (476 decimal) of 2/pi
- */
-static const int32_t two_over_pi[] = {
-0xA2F983, 0x6E4E44, 0x1529FC, 0x2757D1, 0xF534DD, 0xC0DB62,
-0x95993C, 0x439041, 0xFE5163, 0xABDEBB, 0xC561B7, 0x246E3A,
-0x424DD2, 0xE00649, 0x2EEA09, 0xD1921C, 0xFE1DEB, 0x1CB129,
-0xA73EE8, 0x8235F5, 0x2EBB44, 0x84E99C, 0x7026B4, 0x5F7E41,
-0x3991D6, 0x398353, 0x39F49C, 0x845F8B, 0xBDF928, 0x3B1FF8,
-0x97FFDE, 0x05980F, 0xEF2F11, 0x8B5A0A, 0x6D1F6D, 0x367ECF,
-0x27CB09, 0xB74F46, 0x3F669E, 0x5FEA2D, 0x7527BA, 0xC7EBE5,
-0xF17B3D, 0x0739F7, 0x8A5292, 0xEA6BFB, 0x5FB11F, 0x8D5D08,
-0x560330, 0x46FC7B, 0x6BABF0, 0xCFBC20, 0x9AF436, 0x1DA9E3,
-0x91615E, 0xE61B08, 0x659985, 0x5F14A0, 0x68408D, 0xFFD880,
-0x4D7327, 0x310606, 0x1556CA, 0x73A8C9, 0x60E27B, 0xC08C6B,
-};
-
-static const int32_t npio2_hw[] = {
-0x3FF921FB, 0x400921FB, 0x4012D97C, 0x401921FB, 0x401F6A7A, 0x4022D97C,
-0x4025FDBB, 0x402921FB, 0x402C463A, 0x402F6A7A, 0x4031475C, 0x4032D97C,
-0x40346B9C, 0x4035FDBB, 0x40378FDB, 0x403921FB, 0x403AB41B, 0x403C463A,
-0x403DD85A, 0x403F6A7A, 0x40407E4C, 0x4041475C, 0x4042106C, 0x4042D97C,
-0x4043A28C, 0x40446B9C, 0x404534AC, 0x4045FDBB, 0x4046C6CB, 0x40478FDB,
-0x404858EB, 0x404921FB,
-};
-
-/*
- * invpio2: 53 bits of 2/pi
- * pio2_1: first 33 bit of pi/2
- * pio2_1t: pi/2 - pio2_1
- * pio2_2: second 33 bit of pi/2
- * pio2_2t: pi/2 - (pio2_1+pio2_2)
- * pio2_3: third 33 bit of pi/2
- * pio2_3t: pi/2 - (pio2_1+pio2_2+pio2_3)
- */
-
-static const double
- zero = 0.00000000000000000000e+00, /* 0x00000000, 0x00000000 */
- half = 5.00000000000000000000e-01, /* 0x3FE00000, 0x00000000 */
- two24 = 1.67772160000000000000e+07, /* 0x41700000, 0x00000000 */
- invpio2 = 6.36619772367581382433e-01, /* 0x3FE45F30, 0x6DC9C883 */
- pio2_1 = 1.57079632673412561417e+00, /* 0x3FF921FB, 0x54400000 */
- pio2_1t = 6.07710050650619224932e-11, /* 0x3DD0B461, 0x1A626331 */
- pio2_2 = 6.07710050630396597660e-11, /* 0x3DD0B461, 0x1A600000 */
- pio2_2t = 2.02226624879595063154e-21, /* 0x3BA3198A, 0x2E037073 */
- pio2_3 = 2.02226624871116645580e-21, /* 0x3BA3198A, 0x2E000000 */
- pio2_3t = 8.47842766036889956997e-32; /* 0x397B839A, 0x252049C1 */
-
-int32_t
-__ieee754_rem_pio2 (double x, double *y)
-{
- double z, w, t, r, fn;
- double tx[3];
- int32_t e0, i, j, nx, n, ix, hx;
- uint32_t low;
-
- GET_HIGH_WORD (hx, x); /* high word of x */
- ix = hx & 0x7fffffff;
- if (ix <= 0x3fe921fb) /* |x| ~<= pi/4 , no need for reduction */
- {
- y[0] = x; y[1] = 0; return 0;
- }
- if (ix < 0x4002d97c) /* |x| < 3pi/4, special case with n=+-1 */
- {
- if (hx > 0)
- {
- z = x - pio2_1;
- if (ix != 0x3ff921fb) /* 33+53 bit pi is good enough */
- {
- y[0] = z - pio2_1t;
- y[1] = (z - y[0]) - pio2_1t;
- }
- else /* near pi/2, use 33+33+53 bit pi */
- {
- z -= pio2_2;
- y[0] = z - pio2_2t;
- y[1] = (z - y[0]) - pio2_2t;
- }
- return 1;
- }
- else /* negative x */
- {
- z = x + pio2_1;
- if (ix != 0x3ff921fb) /* 33+53 bit pi is good enough */
- {
- y[0] = z + pio2_1t;
- y[1] = (z - y[0]) + pio2_1t;
- }
- else /* near pi/2, use 33+33+53 bit pi */
- {
- z += pio2_2;
- y[0] = z + pio2_2t;
- y[1] = (z - y[0]) + pio2_2t;
- }
- return -1;
- }
- }
- if (ix <= 0x413921fb) /* |x| ~<= 2^19*(pi/2), medium size */
- {
- t = fabs (x);
- n = (int32_t) (t * invpio2 + half);
- fn = (double) n;
- r = t - fn * pio2_1;
- w = fn * pio2_1t; /* 1st round good to 85 bit */
- if (n < 32 && ix != npio2_hw[n - 1])
- {
- y[0] = r - w; /* quick check no cancellation */
- }
- else
- {
- uint32_t high;
- j = ix >> 20;
- y[0] = r - w;
- GET_HIGH_WORD (high, y[0]);
- i = j - ((high >> 20) & 0x7ff);
- if (i > 16) /* 2nd iteration needed, good to 118 */
- {
- t = r;
- w = fn * pio2_2;
- r = t - w;
- w = fn * pio2_2t - ((t - r) - w);
- y[0] = r - w;
- GET_HIGH_WORD (high, y[0]);
- i = j - ((high >> 20) & 0x7ff);
- if (i > 49) /* 3rd iteration need, 151 bits acc */
- {
- t = r; /* will cover all possible cases */
- w = fn * pio2_3;
- r = t - w;
- w = fn * pio2_3t - ((t - r) - w);
- y[0] = r - w;
- }
- }
- }
- y[1] = (r - y[0]) - w;
- if (hx < 0)
- {
- y[0] = -y[0]; y[1] = -y[1]; return -n;
- }
- else
- return n;
- }
- /*
- * all other (large) arguments
- */
- if (ix >= 0x7ff00000) /* x is inf or NaN */
- {
- y[0] = y[1] = x - x; return 0;
- }
- /* set z = scalbn(|x|,ilogb(x)-23) */
- GET_LOW_WORD (low, x);
- SET_LOW_WORD (z, low);
- e0 = (ix >> 20) - 1046; /* e0 = ilogb(z)-23; */
- SET_HIGH_WORD (z, ix - ((int32_t) (e0 << 20)));
- for (i = 0; i < 2; i++)
- {
- tx[i] = (double) ((int32_t) (z));
- z = (z - tx[i]) * two24;
- }
- tx[2] = z;
- nx = 3;
- while (tx[nx - 1] == zero)
- nx--; /* skip zero term */
- n = __kernel_rem_pio2 (tx, y, e0, nx, 2, two_over_pi);
- if (hx < 0)
- {
- y[0] = -y[0]; y[1] = -y[1]; return -n;
- }
- return n;
-}
-#endif
diff --git a/sysdeps/ieee754/dbl-64/e_remainder.c b/sysdeps/ieee754/dbl-64/e_remainder.c
index 2e7f0ac1f4..868725d989 100644
--- a/sysdeps/ieee754/dbl-64/e_remainder.c
+++ b/sysdeps/ieee754/dbl-64/e_remainder.c
@@ -1,7 +1,7 @@
/*
* IBM Accurate Mathematical Library
* written by International Business Machines Corp.
- * Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2019 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 by
@@ -14,7 +14,7 @@
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
/**************************************************************************/
/* MODULE_NAME urem.c */
@@ -35,6 +35,7 @@
#include "MathLib.h"
#include <math.h>
#include <math_private.h>
+#include <fenv_private.h>
/**************************************************************************/
/* An ultimate remainder routine. Given two IEEE double machine numbers x */
diff --git a/sysdeps/ieee754/dbl-64/e_sqrt.c b/sysdeps/ieee754/dbl-64/e_sqrt.c
index f70623e17b..20c72d5848 100644
--- a/sysdeps/ieee754/dbl-64/e_sqrt.c
+++ b/sysdeps/ieee754/dbl-64/e_sqrt.c
@@ -1,7 +1,7 @@
/*
* IBM Accurate Mathematical Library
* written by International Business Machines Corp.
- * Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2019 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 by
@@ -14,7 +14,7 @@
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
/*********************************************************************/
/* MODULE_NAME: uroot.c */
@@ -39,6 +39,7 @@
#include "root.tbl"
#include <math-barriers.h>
#include <math_private.h>
+#include <fenv_private.h>
/*********************************************************************/
/* An ultimate sqrt routine. Given an IEEE double machine number x */
diff --git a/sysdeps/ieee754/dbl-64/eexp.tbl b/sysdeps/ieee754/dbl-64/eexp.tbl
deleted file mode 100644
index 4ee6040638..0000000000
--- a/sysdeps/ieee754/dbl-64/eexp.tbl
+++ /dev/null
@@ -1,172 +0,0 @@
-/* EXP function tables - for use in computing double precision exponential
- Copyright (C) 2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-/* For i = 0, ..., 66,
- TBL2[2*i] is a double precision number near (i+1)*2^-6, and
- TBL2[2*i+1] = exp(TBL2[2*i]) to within a relative error less
- than 2^-60.
-
- For i = 67, ..., 133,
- TBL2[2*i] is a double precision number near -(i+1)*2^-6, and
- TBL2[2*i+1] = exp(TBL2[2*i]) to within a relative error less
- than 2^-60. */
-
-static const double TBL2[268] = {
- 0x1.ffffffffffc82p-7, 0x1.04080ab55de32p+0,
- 0x1.fffffffffffdbp-6, 0x1.08205601127ecp+0,
- 0x1.80000000000a0p-5, 0x1.0c49236829e91p+0,
- 0x1.fffffffffff79p-5, 0x1.1082b577d34e9p+0,
- 0x1.3fffffffffffcp-4, 0x1.14cd4fc989cd6p+0,
- 0x1.8000000000060p-4, 0x1.192937074e0d4p+0,
- 0x1.c000000000061p-4, 0x1.1d96b0eff0e80p+0,
- 0x1.fffffffffffd6p-4, 0x1.2216045b6f5cap+0,
- 0x1.1ffffffffff58p-3, 0x1.26a7793f6014cp+0,
- 0x1.3ffffffffff75p-3, 0x1.2b4b58b372c65p+0,
- 0x1.5ffffffffff00p-3, 0x1.3001ecf601ad1p+0,
- 0x1.8000000000020p-3, 0x1.34cb8170b583ap+0,
- 0x1.9ffffffffa629p-3, 0x1.39a862bd3b344p+0,
- 0x1.c00000000000fp-3, 0x1.3e98deaa11dcep+0,
- 0x1.e00000000007fp-3, 0x1.439d443f5f16dp+0,
- 0x1.0000000000072p-2, 0x1.48b5e3c3e81abp+0,
- 0x1.0fffffffffecap-2, 0x1.4de30ec211dfbp+0,
- 0x1.1ffffffffff8fp-2, 0x1.5325180cfacd2p+0,
- 0x1.300000000003bp-2, 0x1.587c53c5a7b04p+0,
- 0x1.4000000000034p-2, 0x1.5de9176046007p+0,
- 0x1.4ffffffffff89p-2, 0x1.636bb9a98322fp+0,
- 0x1.5ffffffffffe7p-2, 0x1.690492cbf942ap+0,
- 0x1.6ffffffffff78p-2, 0x1.6eb3fc55b1e45p+0,
- 0x1.7ffffffffff65p-2, 0x1.747a513dbef32p+0,
- 0x1.8ffffffffffd5p-2, 0x1.7a57ede9ea22ep+0,
- 0x1.9ffffffffff6ep-2, 0x1.804d30347b50fp+0,
- 0x1.affffffffffc3p-2, 0x1.865a7772164aep+0,
- 0x1.c000000000053p-2, 0x1.8c802477b0030p+0,
- 0x1.d00000000004dp-2, 0x1.92be99a09bf1ep+0,
- 0x1.e000000000096p-2, 0x1.99163ad4b1e08p+0,
- 0x1.efffffffffefap-2, 0x1.9f876d8e8c4fcp+0,
- 0x1.fffffffffffd0p-2, 0x1.a61298e1e0688p+0,
- 0x1.0800000000002p-1, 0x1.acb82581eee56p+0,
- 0x1.100000000001fp-1, 0x1.b3787dc80f979p+0,
- 0x1.17ffffffffff8p-1, 0x1.ba540dba56e4fp+0,
- 0x1.1fffffffffffap-1, 0x1.c14b431256441p+0,
- 0x1.27fffffffffc4p-1, 0x1.c85e8d43f7c9bp+0,
- 0x1.2fffffffffffdp-1, 0x1.cf8e5d84758a6p+0,
- 0x1.380000000001fp-1, 0x1.d6db26d16cd84p+0,
- 0x1.3ffffffffffd8p-1, 0x1.de455df80e39bp+0,
- 0x1.4800000000052p-1, 0x1.e5cd799c6a59cp+0,
- 0x1.4ffffffffffc8p-1, 0x1.ed73f240dc10cp+0,
- 0x1.5800000000013p-1, 0x1.f539424d90f71p+0,
- 0x1.5ffffffffffbcp-1, 0x1.fd1de6182f885p+0,
- 0x1.680000000002dp-1, 0x1.02912df5ce741p+1,
- 0x1.7000000000040p-1, 0x1.06a39207f0a2ap+1,
- 0x1.780000000004fp-1, 0x1.0ac660691652ap+1,
- 0x1.7ffffffffff6fp-1, 0x1.0ef9db467dcabp+1,
- 0x1.87fffffffffe5p-1, 0x1.133e45d82e943p+1,
- 0x1.9000000000035p-1, 0x1.1793e4652cc6dp+1,
- 0x1.97fffffffffb3p-1, 0x1.1bfafc47bda48p+1,
- 0x1.a000000000000p-1, 0x1.2073d3f1bd518p+1,
- 0x1.a80000000004ap-1, 0x1.24feb2f105ce2p+1,
- 0x1.affffffffffedp-1, 0x1.299be1f3e7f11p+1,
- 0x1.b7ffffffffffbp-1, 0x1.2e4baacdb6611p+1,
- 0x1.c00000000001dp-1, 0x1.330e587b62b39p+1,
- 0x1.c800000000079p-1, 0x1.37e437282d538p+1,
- 0x1.cffffffffff51p-1, 0x1.3ccd943268248p+1,
- 0x1.d7fffffffff74p-1, 0x1.41cabe304cadcp+1,
- 0x1.e000000000011p-1, 0x1.46dc04f4e5343p+1,
- 0x1.e80000000001ep-1, 0x1.4c01b9950a124p+1,
- 0x1.effffffffff9ep-1, 0x1.513c2e6c73196p+1,
- 0x1.f7fffffffffedp-1, 0x1.568bb722dd586p+1,
- 0x1.0000000000034p+0, 0x1.5bf0a8b1457b0p+1,
- 0x1.03fffffffffe2p+0, 0x1.616b5967376dfp+1,
- 0x1.07fffffffff4bp+0, 0x1.66fc20f0337a9p+1,
- 0x1.0bffffffffffdp+0, 0x1.6ca35859290f5p+1,
- -0x1.fffffffffffe4p-7, 0x1.f80feabfeefa5p-1,
- -0x1.ffffffffffb0bp-6, 0x1.f03f56a88b5fep-1,
- -0x1.7ffffffffffa7p-5, 0x1.e88dc6afecfc5p-1,
- -0x1.ffffffffffea8p-5, 0x1.e0fabfbc702b8p-1,
- -0x1.3ffffffffffb3p-4, 0x1.d985c89d041acp-1,
- -0x1.7ffffffffffe3p-4, 0x1.d22e6a0197c06p-1,
- -0x1.bffffffffff9ap-4, 0x1.caf42e73a4c89p-1,
- -0x1.fffffffffff98p-4, 0x1.c3d6a24ed822dp-1,
- -0x1.1ffffffffffe9p-3, 0x1.bcd553b9d7b67p-1,
- -0x1.3ffffffffffe0p-3, 0x1.b5efd29f24c2dp-1,
- -0x1.5fffffffff553p-3, 0x1.af25b0a61a9f4p-1,
- -0x1.7ffffffffff8bp-3, 0x1.a876812c08794p-1,
- -0x1.9fffffffffe51p-3, 0x1.a1e1d93d68828p-1,
- -0x1.bffffffffff6ep-3, 0x1.9b674f8f2f3f5p-1,
- -0x1.dffffffffff7fp-3, 0x1.95067c7837a0cp-1,
- -0x1.fffffffffff7ap-3, 0x1.8ebef9eac8225p-1,
- -0x1.0fffffffffffep-2, 0x1.8890636e31f55p-1,
- -0x1.1ffffffffff41p-2, 0x1.827a56188975ep-1,
- -0x1.2ffffffffffbap-2, 0x1.7c7c708877656p-1,
- -0x1.3fffffffffff8p-2, 0x1.769652df22f81p-1,
- -0x1.4ffffffffff90p-2, 0x1.70c79eba33c2fp-1,
- -0x1.5ffffffffffdbp-2, 0x1.6b0ff72deb8aap-1,
- -0x1.6ffffffffff9ap-2, 0x1.656f00bf5798ep-1,
- -0x1.7ffffffffff9fp-2, 0x1.5fe4615e98eb0p-1,
- -0x1.8ffffffffffeep-2, 0x1.5a6fc061433cep-1,
- -0x1.9fffffffffc4ap-2, 0x1.5510c67cd26cdp-1,
- -0x1.affffffffff30p-2, 0x1.4fc71dc13566bp-1,
- -0x1.bfffffffffff0p-2, 0x1.4a9271936fd0ep-1,
- -0x1.cfffffffffff3p-2, 0x1.45726ea84fb8cp-1,
- -0x1.dfffffffffff3p-2, 0x1.4066c2ff3912bp-1,
- -0x1.effffffffff80p-2, 0x1.3b6f1ddd05ab9p-1,
- -0x1.fffffffffffdfp-2, 0x1.368b2fc6f9614p-1,
- -0x1.0800000000000p-1, 0x1.31baaa7dca843p-1,
- -0x1.0ffffffffffa4p-1, 0x1.2cfd40f8bdce4p-1,
- -0x1.17fffffffff0ap-1, 0x1.2852a760d5ce7p-1,
- -0x1.2000000000000p-1, 0x1.23ba930c1568bp-1,
- -0x1.27fffffffffbbp-1, 0x1.1f34ba78d568dp-1,
- -0x1.2fffffffffe32p-1, 0x1.1ac0d5492c1dbp-1,
- -0x1.37ffffffff042p-1, 0x1.165e9c3e67ef2p-1,
- -0x1.3ffffffffff77p-1, 0x1.120dc93499431p-1,
- -0x1.47fffffffff6bp-1, 0x1.0dce171e34ecep-1,
- -0x1.4fffffffffff1p-1, 0x1.099f41ffbe588p-1,
- -0x1.57ffffffffe02p-1, 0x1.058106eb8a7aep-1,
- -0x1.5ffffffffffe5p-1, 0x1.017323fd9002ep-1,
- -0x1.67fffffffffb0p-1, 0x1.faeab0ae9386cp-2,
- -0x1.6ffffffffffb2p-1, 0x1.f30ec837503d7p-2,
- -0x1.77fffffffff7fp-1, 0x1.eb5210d627133p-2,
- -0x1.7ffffffffffe8p-1, 0x1.e3b40ebefcd95p-2,
- -0x1.87fffffffffc8p-1, 0x1.dc3448110dae2p-2,
- -0x1.8fffffffffb30p-1, 0x1.d4d244cf4ef06p-2,
- -0x1.97fffffffffefp-1, 0x1.cd8d8ed8ee395p-2,
- -0x1.9ffffffffffa7p-1, 0x1.c665b1e1f1e5cp-2,
- -0x1.a7fffffffffdcp-1, 0x1.bf5a3b6bf18d6p-2,
- -0x1.affffffffff95p-1, 0x1.b86ababeef93bp-2,
- -0x1.b7fffffffffcbp-1, 0x1.b196c0e24d256p-2,
- -0x1.bffffffffff32p-1, 0x1.aadde095dadf7p-2,
- -0x1.c7fffffffff6ap-1, 0x1.a43fae4b047c9p-2,
- -0x1.cffffffffffb6p-1, 0x1.9dbbc01e182a4p-2,
- -0x1.d7fffffffffcap-1, 0x1.9751adcfa81ecp-2,
- -0x1.dffffffffffcdp-1, 0x1.910110be0699ep-2,
- -0x1.e7ffffffffffbp-1, 0x1.8ac983dedbc69p-2,
- -0x1.effffffffff88p-1, 0x1.84aaa3b8d51a9p-2,
- -0x1.f7fffffffffbbp-1, 0x1.7ea40e5d6d92ep-2,
- -0x1.fffffffffffdbp-1, 0x1.78b56362cef53p-2,
- -0x1.03fffffffff00p+0, 0x1.72de43ddcb1f2p-2,
- -0x1.07ffffffffe6fp+0, 0x1.6d1e525bed085p-2,
- -0x1.0bfffffffffd6p+0, 0x1.677532dda1c57p-2};
-
-static const double
- half = 0.5,
- one = 1.0,
-/* t2-t5 terms used for polynomial computation. */
- t2 = 0x1.5555555555555p-3, /* 1.6666666666666665741e-1 */
- t3 = 0x1.5555555555555p-5, /* 4.1666666666666664354e-2 */
- t4 = 0x1.1111111111111p-7, /* 8.3333333333333332177e-3 */
- t5 = 0x1.6c16c16c16c17p-10; /* 1.3888888888888889419e-3 */
diff --git a/sysdeps/ieee754/dbl-64/gamma_product.c b/sysdeps/ieee754/dbl-64/gamma_product.c
index 3300b5139c..78c9034b04 100644
--- a/sysdeps/ieee754/dbl-64/gamma_product.c
+++ b/sysdeps/ieee754/dbl-64/gamma_product.c
@@ -1,5 +1,5 @@
/* Compute a product of X, X+1, ..., with an error estimate.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,10 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
+#include <fenv_private.h>
#include <mul_split.h>
/* Compute the product of X + X_EPS, X + X_EPS + 1, ..., X + X_EPS + N
diff --git a/sysdeps/ieee754/dbl-64/gamma_productf.c b/sysdeps/ieee754/dbl-64/gamma_productf.c
index 011c6ff06e..6bceda04f8 100644
--- a/sysdeps/ieee754/dbl-64/gamma_productf.c
+++ b/sysdeps/ieee754/dbl-64/gamma_productf.c
@@ -1,5 +1,5 @@
/* Compute a product of X, X+1, ..., with an error estimate.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math-narrow-eval.h>
diff --git a/sysdeps/ieee754/dbl-64/k_cos.c b/sysdeps/ieee754/dbl-64/k_cos.c
deleted file mode 100644
index cc5c205a5f..0000000000
--- a/sysdeps/ieee754/dbl-64/k_cos.c
+++ /dev/null
@@ -1 +0,0 @@
-/* Not needed anymore. */
diff --git a/sysdeps/ieee754/dbl-64/k_rem_pio2.c b/sysdeps/ieee754/dbl-64/k_rem_pio2.c
index d8403dc345..6e2ef5d07b 100644
--- a/sysdeps/ieee754/dbl-64/k_rem_pio2.c
+++ b/sysdeps/ieee754/dbl-64/k_rem_pio2.c
@@ -45,7 +45,7 @@ static char rcsid[] = "$NetBSD: k_rem_pio2.c,v 1.7 1995/05/10 20:46:25 jtc Exp $
* z = (z-x[i])*2**24
*
*
- * y[] ouput result in an array of double precision numbers.
+ * y[] output result in an array of double precision numbers.
* The dimension of y[] is:
* 24-bit precision 1
* 53-bit precision 2
@@ -196,7 +196,7 @@ recompute:
/* compute n */
z = __scalbn (z, q0); /* actual value of z */
- z -= 8.0 * __floor (z * 0.125); /* trim off integer >= 8 */
+ z -= 8.0 * floor (z * 0.125); /* trim off integer >= 8 */
n = (int32_t) z;
z -= (double) n;
ih = 0;
diff --git a/sysdeps/ieee754/dbl-64/k_sin.c b/sysdeps/ieee754/dbl-64/k_sin.c
deleted file mode 100644
index cc5c205a5f..0000000000
--- a/sysdeps/ieee754/dbl-64/k_sin.c
+++ /dev/null
@@ -1 +0,0 @@
-/* Not needed anymore. */
diff --git a/sysdeps/ieee754/dbl-64/lgamma_neg.c b/sysdeps/ieee754/dbl-64/lgamma_neg.c
index 5bb2f10c71..84e7022af5 100644
--- a/sysdeps/ieee754/dbl-64/lgamma_neg.c
+++ b/sysdeps/ieee754/dbl-64/lgamma_neg.c
@@ -1,5 +1,5 @@
/* lgamma expanding around zeros.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,12 +14,13 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <float.h>
#include <math.h>
#include <math-narrow-eval.h>
#include <math_private.h>
+#include <fenv_private.h>
static const double lgamma_zeros[][2] =
{
@@ -281,7 +282,7 @@ __lgamma_neg (double x, int *signgamp)
{
/* Determine the half-integer region X lies in, handle exact
integers and determine the sign of the result. */
- int i = __floor (-2 * x);
+ int i = floor (-2 * x);
if ((i & 1) == 0 && i == -2 * x)
return 1.0 / 0.0;
double xn = ((i & 1) == 0 ? -i / 2 : (-i - 1) / 2);
@@ -298,7 +299,7 @@ __lgamma_neg (double x, int *signgamp)
approximations to an adjusted version of the gamma function. */
if (i < 2)
{
- int j = __floor (-8 * x) - 16;
+ int j = floor (-8 * x) - 16;
double xm = (-33 - 2 * j) * 0.0625;
double x_adj = x - xm;
size_t deg = poly_deg[j];
diff --git a/sysdeps/ieee754/dbl-64/lgamma_product.c b/sysdeps/ieee754/dbl-64/lgamma_product.c
index b37ecee73f..199a10fcc2 100644
--- a/sysdeps/ieee754/dbl-64/lgamma_product.c
+++ b/sysdeps/ieee754/dbl-64/lgamma_product.c
@@ -1,5 +1,5 @@
/* Compute a product of 1 + (T/X), 1 + (T/(X+1)), ....
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/ieee754/dbl-64/math_config.h b/sysdeps/ieee754/dbl-64/math_config.h
new file mode 100644
index 0000000000..2f8a29097d
--- /dev/null
+++ b/sysdeps/ieee754/dbl-64/math_config.h
@@ -0,0 +1,190 @@
+/* Configuration for double precision math routines.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _MATH_CONFIG_H
+#define _MATH_CONFIG_H
+
+#include <math.h>
+#include <math_private.h>
+#include <nan-high-order-bit.h>
+#include <stdint.h>
+
+#ifndef WANT_ROUNDING
+/* Correct special case results in non-nearest rounding modes. */
+# define WANT_ROUNDING 1
+#endif
+#ifndef WANT_ERRNO
+/* Set errno according to ISO C with (math_errhandling & MATH_ERRNO) != 0. */
+# define WANT_ERRNO 1
+#endif
+#ifndef WANT_ERRNO_UFLOW
+/* Set errno to ERANGE if result underflows to 0 (in all rounding modes). */
+# define WANT_ERRNO_UFLOW (WANT_ROUNDING && WANT_ERRNO)
+#endif
+
+#ifndef TOINT_INTRINSICS
+/* When set, the roundtoint and converttoint functions are provided with
+ the semantics documented below. */
+# define TOINT_INTRINSICS 0
+#endif
+
+#if TOINT_INTRINSICS
+/* Round x to nearest int in all rounding modes, ties have to be rounded
+ consistently with converttoint so the results match. If the result
+ would be outside of [-2^31, 2^31-1] then the semantics is unspecified. */
+static inline double_t
+roundtoint (double_t x);
+
+/* Convert x to nearest int in all rounding modes, ties have to be rounded
+ consistently with roundtoint. If the result is not representible in an
+ int32_t then the semantics is unspecified. */
+static inline int32_t
+converttoint (double_t x);
+#endif
+
+static inline uint64_t
+asuint64 (double f)
+{
+ union
+ {
+ double f;
+ uint64_t i;
+ } u = {f};
+ return u.i;
+}
+
+static inline double
+asdouble (uint64_t i)
+{
+ union
+ {
+ uint64_t i;
+ double f;
+ } u = {i};
+ return u.f;
+}
+
+static inline int
+issignaling_inline (double x)
+{
+ uint64_t ix = asuint64 (x);
+ if (HIGH_ORDER_BIT_IS_SET_FOR_SNAN)
+ return (ix & 0x7ff8000000000000) == 0x7ff8000000000000;
+ return 2 * (ix ^ 0x0008000000000000) > 2 * 0x7ff8000000000000ULL;
+}
+
+#define NOINLINE __attribute__ ((noinline))
+
+/* Error handling tail calls for special cases, with a sign argument.
+ The sign of the return value is set if the argument is non-zero. */
+
+/* The result overflows. */
+attribute_hidden double __math_oflow (uint32_t);
+/* The result underflows to 0 in nearest rounding mode. */
+attribute_hidden double __math_uflow (uint32_t);
+/* The result underflows to 0 in some directed rounding mode only. */
+attribute_hidden double __math_may_uflow (uint32_t);
+/* Division by zero. */
+attribute_hidden double __math_divzero (uint32_t);
+
+/* Error handling using input checking. */
+
+/* Invalid input unless it is a quiet NaN. */
+attribute_hidden double __math_invalid (double);
+
+/* Error handling using output checking, only for errno setting. */
+
+/* Check if the result overflowed to infinity. */
+attribute_hidden double __math_check_oflow (double);
+/* Check if the result underflowed to 0. */
+attribute_hidden double __math_check_uflow (double);
+
+/* Check if the result overflowed to infinity. */
+static inline double
+check_oflow (double x)
+{
+ return WANT_ERRNO ? __math_check_oflow (x) : x;
+}
+
+/* Check if the result underflowed to 0. */
+static inline double
+check_uflow (double x)
+{
+ return WANT_ERRNO ? __math_check_uflow (x) : x;
+}
+
+#define EXP_TABLE_BITS 7
+#define EXP_POLY_ORDER 5
+#define EXP2_POLY_ORDER 5
+extern const struct exp_data
+{
+ double invln2N;
+ double shift;
+ double negln2hiN;
+ double negln2loN;
+ double poly[4]; /* Last four coefficients. */
+ double exp2_shift;
+ double exp2_poly[EXP2_POLY_ORDER];
+ uint64_t tab[2*(1 << EXP_TABLE_BITS)];
+} __exp_data attribute_hidden;
+
+#define LOG_TABLE_BITS 7
+#define LOG_POLY_ORDER 6
+#define LOG_POLY1_ORDER 12
+extern const struct log_data
+{
+ double ln2hi;
+ double ln2lo;
+ double poly[LOG_POLY_ORDER - 1]; /* First coefficient is 1. */
+ double poly1[LOG_POLY1_ORDER - 1];
+ /* See e_log_data.c for details. */
+ struct {double invc, logc;} tab[1 << LOG_TABLE_BITS];
+#ifndef __FP_FAST_FMA
+ struct {double chi, clo;} tab2[1 << LOG_TABLE_BITS];
+#endif
+} __log_data attribute_hidden;
+
+#define LOG2_TABLE_BITS 6
+#define LOG2_POLY_ORDER 7
+#define LOG2_POLY1_ORDER 11
+extern const struct log2_data
+{
+ double invln2hi;
+ double invln2lo;
+ double poly[LOG2_POLY_ORDER - 1];
+ double poly1[LOG2_POLY1_ORDER - 1];
+ /* See e_log2_data.c for details. */
+ struct {double invc, logc;} tab[1 << LOG2_TABLE_BITS];
+#ifndef __FP_FAST_FMA
+ struct {double chi, clo;} tab2[1 << LOG2_TABLE_BITS];
+#endif
+} __log2_data attribute_hidden;
+
+#define POW_LOG_TABLE_BITS 7
+#define POW_LOG_POLY_ORDER 8
+extern const struct pow_log_data
+{
+ double ln2hi;
+ double ln2lo;
+ double poly[POW_LOG_POLY_ORDER - 1]; /* First coefficient is 1. */
+ /* Note: the pad field is unused, but allows slightly faster indexing. */
+ /* See e_pow_log_data.c for details. */
+ struct {double invc, pad, logc, logctail;} tab[1 << POW_LOG_TABLE_BITS];
+} __pow_log_data attribute_hidden;
+
+#endif
diff --git a/sysdeps/ieee754/dbl-64/math_err.c b/sysdeps/ieee754/dbl-64/math_err.c
new file mode 100644
index 0000000000..c63143bc8d
--- /dev/null
+++ b/sysdeps/ieee754/dbl-64/math_err.c
@@ -0,0 +1,92 @@
+/* Double-precision math error handling.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <math-barriers.h>
+#include "math_config.h"
+
+#if WANT_ERRNO
+#include <errno.h>
+/* NOINLINE reduces code size and avoids making math functions non-leaf
+ when the error handling is inlined. */
+NOINLINE static double
+with_errno (double y, int e)
+{
+ errno = e;
+ return y;
+}
+#else
+#define with_errno(x, e) (x)
+#endif
+
+/* NOINLINE reduces code size. */
+NOINLINE static double
+xflow (uint32_t sign, double y)
+{
+ y = math_opt_barrier (sign ? -y : y) * y;
+ return with_errno (y, ERANGE);
+}
+
+attribute_hidden double
+__math_uflow (uint32_t sign)
+{
+ return xflow (sign, 0x1p-767);
+}
+
+#if WANT_ERRNO_UFLOW
+/* Underflows to zero in some non-nearest rounding mode, setting errno
+ is valid even if the result is non-zero, but in the subnormal range. */
+attribute_hidden double
+__math_may_uflow (uint32_t sign)
+{
+ return xflow (sign, 0x1.8p-538);
+}
+#endif
+
+attribute_hidden double
+__math_oflow (uint32_t sign)
+{
+ return xflow (sign, 0x1p769);
+}
+
+attribute_hidden double
+__math_divzero (uint32_t sign)
+{
+ double y = math_opt_barrier (sign ? -1.0 : 1.0) / 0.0;
+ return with_errno (y, ERANGE);
+}
+
+attribute_hidden double
+__math_invalid (double x)
+{
+ double y = (x - x) / (x - x);
+ return isnan (x) ? y : with_errno (y, EDOM);
+}
+
+/* Check result and set errno if necessary. */
+
+attribute_hidden double
+__math_check_uflow (double y)
+{
+ return y == 0.0 ? with_errno (y, ERANGE) : y;
+}
+
+attribute_hidden double
+__math_check_oflow (double y)
+{
+ return isinf (y) ? with_errno (y, ERANGE) : y;
+}
diff --git a/sysdeps/ieee754/dbl-64/mpa-arch.h b/sysdeps/ieee754/dbl-64/mpa-arch.h
index d1a2bf8ac4..9957a0ea19 100644
--- a/sysdeps/ieee754/dbl-64/mpa-arch.h
+++ b/sysdeps/ieee754/dbl-64/mpa-arch.h
@@ -1,5 +1,5 @@
/* Overridable constants and operations.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-2019 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 by
@@ -12,7 +12,7 @@
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/sysdeps/ieee754/dbl-64/mpa.c b/sysdeps/ieee754/dbl-64/mpa.c
index f59ec6a9d8..a54e8dd52c 100644
--- a/sysdeps/ieee754/dbl-64/mpa.c
+++ b/sysdeps/ieee754/dbl-64/mpa.c
@@ -1,7 +1,7 @@
/*
* IBM Accurate Mathematical Library
* written by International Business Machines Corp.
- * Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2019 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 by
@@ -14,7 +14,7 @@
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
/************************************************************************/
/* MODULE_NAME: mpa.c */
diff --git a/sysdeps/ieee754/dbl-64/mpa.h b/sysdeps/ieee754/dbl-64/mpa.h
index 1e188de4d1..199b94eee7 100644
--- a/sysdeps/ieee754/dbl-64/mpa.h
+++ b/sysdeps/ieee754/dbl-64/mpa.h
@@ -1,7 +1,7 @@
/*
* IBM Accurate Mathematical Library
* Written by International Business Machines Corp.
- * Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2019 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 by
@@ -14,7 +14,7 @@
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
/************************************************************************/
diff --git a/sysdeps/ieee754/dbl-64/mpatan.c b/sysdeps/ieee754/dbl-64/mpatan.c
index 656dc763aa..87d58e3344 100644
--- a/sysdeps/ieee754/dbl-64/mpatan.c
+++ b/sysdeps/ieee754/dbl-64/mpatan.c
@@ -1,7 +1,7 @@
/*
* IBM Accurate Mathematical Library
* written by International Business Machines Corp.
- * Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2019 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 by
@@ -14,7 +14,7 @@
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
/******************************************************************/
/* */
diff --git a/sysdeps/ieee754/dbl-64/mpatan.h b/sysdeps/ieee754/dbl-64/mpatan.h
index 2e34ce8a4d..96affd368d 100644
--- a/sysdeps/ieee754/dbl-64/mpatan.h
+++ b/sysdeps/ieee754/dbl-64/mpatan.h
@@ -1,7 +1,7 @@
/*
* IBM Accurate Mathematical Library
* Written by International Business Machines Corp.
- * Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2019 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 by
@@ -14,7 +14,7 @@
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
/******************************************************************/
diff --git a/sysdeps/ieee754/dbl-64/mpatan2.c b/sysdeps/ieee754/dbl-64/mpatan2.c
index 6eda7d39eb..4127318650 100644
--- a/sysdeps/ieee754/dbl-64/mpatan2.c
+++ b/sysdeps/ieee754/dbl-64/mpatan2.c
@@ -1,7 +1,7 @@
/*
* IBM Accurate Mathematical Library
* written by International Business Machines Corp.
- * Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2019 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 by
@@ -14,7 +14,7 @@
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
/******************************************************************/
/* MODULE_NAME: mpatan2.c */
diff --git a/sysdeps/ieee754/dbl-64/mpn2dbl.c b/sysdeps/ieee754/dbl-64/mpn2dbl.c
index 693448fc8d..a3411cba41 100644
--- a/sysdeps/ieee754/dbl-64/mpn2dbl.c
+++ b/sysdeps/ieee754/dbl-64/mpn2dbl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "gmp.h"
#include "gmp-impl.h"
diff --git a/sysdeps/ieee754/dbl-64/mpsqrt.c b/sysdeps/ieee754/dbl-64/mpsqrt.c
index 3ce4b9cda7..9dc316cf38 100644
--- a/sysdeps/ieee754/dbl-64/mpsqrt.c
+++ b/sysdeps/ieee754/dbl-64/mpsqrt.c
@@ -1,7 +1,7 @@
/*
* IBM Accurate Mathematical Library
* written by International Business Machines Corp.
- * Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2019 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 by
@@ -14,7 +14,7 @@
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
/****************************************************************************/
/* MODULE_NAME:mpsqrt.c */
diff --git a/sysdeps/ieee754/dbl-64/mpsqrt.h b/sysdeps/ieee754/dbl-64/mpsqrt.h
index 05a907bedf..f2c0ad816b 100644
--- a/sysdeps/ieee754/dbl-64/mpsqrt.h
+++ b/sysdeps/ieee754/dbl-64/mpsqrt.h
@@ -1,7 +1,7 @@
/*
* IBM Accurate Mathematical Library
* Written by International Business Machines Corp.
- * Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2019 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 by
@@ -14,7 +14,7 @@
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
/******************************************************************/
diff --git a/sysdeps/ieee754/dbl-64/mptan.c b/sysdeps/ieee754/dbl-64/mptan.c
index 26dbd5f601..21ed9e33a0 100644
--- a/sysdeps/ieee754/dbl-64/mptan.c
+++ b/sysdeps/ieee754/dbl-64/mptan.c
@@ -1,7 +1,7 @@
/*
* IBM Accurate Mathematical Library
* written by International Business Machines Corp.
- * Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2019 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 by
@@ -14,7 +14,7 @@
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
/**********************************************************************/
/* MODULE_NAME:mptan.c */
diff --git a/sysdeps/ieee754/dbl-64/mydefs.h b/sysdeps/ieee754/dbl-64/mydefs.h
index 3e15d5bdd6..cc140fc6c3 100644
--- a/sysdeps/ieee754/dbl-64/mydefs.h
+++ b/sysdeps/ieee754/dbl-64/mydefs.h
@@ -1,7 +1,7 @@
/*
* IBM Accurate Mathematical Library
* Written by International Business Machines Corp.
- * Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2019 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 by
@@ -14,7 +14,7 @@
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
/******************************************************************/
diff --git a/sysdeps/ieee754/dbl-64/powtwo.tbl b/sysdeps/ieee754/dbl-64/powtwo.tbl
index 518fd6cd4b..d940a4e3c4 100644
--- a/sysdeps/ieee754/dbl-64/powtwo.tbl
+++ b/sysdeps/ieee754/dbl-64/powtwo.tbl
@@ -1,7 +1,7 @@
/*
* IBM Accurate Mathematical Library
* Written by International Business Machines Corp.
- * Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2019 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 by
@@ -14,7 +14,7 @@
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
/****************************************************************/
diff --git a/sysdeps/ieee754/dbl-64/root.tbl b/sysdeps/ieee754/dbl-64/root.tbl
index a458e25ee2..1d2908fb5a 100644
--- a/sysdeps/ieee754/dbl-64/root.tbl
+++ b/sysdeps/ieee754/dbl-64/root.tbl
@@ -1,7 +1,7 @@
/*
* IBM Accurate Mathematical Library
* Written by International Business Machines Corp.
- * Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2019 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 by
@@ -14,7 +14,7 @@
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
/****************************************************************/
diff --git a/sysdeps/ieee754/dbl-64/s_asinh.c b/sysdeps/ieee754/dbl-64/s_asinh.c
index 192ff8594d..7fd281d791 100644
--- a/sysdeps/ieee754/dbl-64/s_asinh.c
+++ b/sysdeps/ieee754/dbl-64/s_asinh.c
@@ -65,6 +65,6 @@ __asinh (double x)
w = __log1p (xa + t / (one + sqrt (one + t)));
}
}
- return __copysign (w, x);
+ return copysign (w, x);
}
libm_alias_double (__asinh, asinh)
diff --git a/sysdeps/ieee754/dbl-64/s_atan.c b/sysdeps/ieee754/dbl-64/s_atan.c
index 38db092d04..da6a1cb0e5 100644
--- a/sysdeps/ieee754/dbl-64/s_atan.c
+++ b/sysdeps/ieee754/dbl-64/s_atan.c
@@ -1,7 +1,7 @@
/*
* IBM Accurate Mathematical Library
* written by International Business Machines Corp.
- * Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2019 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 by
@@ -14,7 +14,7 @@
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
/************************************************************************/
/* MODULE_NAME: atnat.c */
@@ -45,7 +45,7 @@
#include <float.h>
#include <libm-alias-double.h>
#include <math.h>
-#include <math_private.h>
+#include <fenv_private.h>
#include <math-underflow.h>
#include <stap-probe.h>
@@ -56,7 +56,7 @@ static double atanMp (double, const int[]);
static double
__signArctan (double x, double y)
{
- return __copysign (y, x);
+ return copysign (y, x);
}
diff --git a/sysdeps/ieee754/dbl-64/s_cbrt.c b/sysdeps/ieee754/dbl-64/s_cbrt.c
index 6cd55dc0d6..c8fdaa13f0 100644
--- a/sysdeps/ieee754/dbl-64/s_cbrt.c
+++ b/sysdeps/ieee754/dbl-64/s_cbrt.c
@@ -1,5 +1,5 @@
/* Compute cubic root of double value.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Dirk Alboth <dirka@uni-paderborn.de> and
Ulrich Drepper <drepper@cygnus.com>, 1997.
@@ -16,10 +16,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
-#include <math_private.h>
#include <libm-alias-double.h>
diff --git a/sysdeps/ieee754/dbl-64/s_ceil.c b/sysdeps/ieee754/dbl-64/s_ceil.c
index 5a7434c737..3738211360 100644
--- a/sysdeps/ieee754/dbl-64/s_ceil.c
+++ b/sysdeps/ieee754/dbl-64/s_ceil.c
@@ -17,69 +17,53 @@
* Bit twiddling.
*/
+#define NO_MATH_REDIRECT
#include <math.h>
#include <math_private.h>
#include <libm-alias-double.h>
+#include <math-use-builtins.h>
double
__ceil (double x)
{
- int32_t i0, i1, j0;
- uint32_t i, j;
- EXTRACT_WORDS (i0, i1, x);
- j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
- if (j0 < 20)
+#if USE_CEIL_BUILTIN
+ return __builtin_ceil (x);
+#else
+ /* Use generic implementation. */
+ int64_t i0, i;
+ int32_t j0;
+ EXTRACT_WORDS64 (i0, x);
+ j0 = ((i0 >> 52) & 0x7ff) - 0x3ff;
+ if (j0 <= 51)
{
if (j0 < 0)
{
- /* return 0*sign(x) if |x|<1 */
+ /* return 0 * sign(x) if |x| < 1 */
if (i0 < 0)
- {
- i0 = 0x80000000; i1 = 0;
- }
- else if ((i0 | i1) != 0)
- {
- i0 = 0x3ff00000; i1 = 0;
- }
+ i0 = INT64_C (0x8000000000000000);
+ else if (i0 != 0)
+ i0 = INT64_C (0x3ff0000000000000);
}
else
{
- i = (0x000fffff) >> j0;
- if (((i0 & i) | i1) == 0)
- return x; /* x is integral */
+ i = INT64_C (0x000fffffffffffff) >> j0;
+ if ((i0 & i) == 0)
+ return x; /* x is integral */
if (i0 > 0)
- i0 += (0x00100000) >> j0;
- i0 &= (~i); i1 = 0;
+ i0 += UINT64_C (0x0010000000000000) >> j0;
+ i0 &= ~i;
}
}
- else if (j0 > 51)
+ else
{
if (j0 == 0x400)
- return x + x; /* inf or NaN */
+ return x + x; /* inf or NaN */
else
- return x; /* x is integral */
- }
- else
- {
- i = ((uint32_t) (0xffffffff)) >> (j0 - 20);
- if ((i1 & i) == 0)
- return x; /* x is integral */
- if (i0 > 0)
- {
- if (j0 == 20)
- i0 += 1;
- else
- {
- j = i1 + (1 << (52 - j0));
- if (j < i1)
- i0 += 1; /* got a carry */
- i1 = j;
- }
- }
- i1 &= (~i);
+ return x; /* x is integral */
}
- INSERT_WORDS (x, i0, i1);
+ INSERT_WORDS64 (x, i0);
return x;
+#endif /* ! USE_CEIL_BUILTIN */
}
#ifndef __ceil
libm_alias_double (__ceil, ceil)
diff --git a/sysdeps/ieee754/dbl-64/s_copysign.c b/sysdeps/ieee754/dbl-64/s_copysign.c
index ab81d732ab..94025b7854 100644
--- a/sysdeps/ieee754/dbl-64/s_copysign.c
+++ b/sysdeps/ieee754/dbl-64/s_copysign.c
@@ -10,7 +10,7 @@
* ====================================================
*/
-#if defined(LIBM_SCCS) && !defined(lint)
+#if defined (LIBM_SCCS) && ! defined (lint)
static char rcsid[] = "$NetBSD: s_copysign.c,v 1.8 1995/05/10 20:46:57 jtc Exp $";
#endif
@@ -20,17 +20,13 @@ static char rcsid[] = "$NetBSD: s_copysign.c,v 1.8 1995/05/10 20:46:57 jtc Exp $
* with the sign bit of y.
*/
+#define NO_MATH_REDIRECT
#include <math.h>
-#include <math_private.h>
#include <libm-alias-double.h>
double
__copysign (double x, double y)
{
- uint32_t hx, hy;
- GET_HIGH_WORD (hx, x);
- GET_HIGH_WORD (hy, y);
- SET_HIGH_WORD (x, (hx & 0x7fffffff) | (hy & 0x80000000));
- return x;
+ return __builtin_copysign (x, y);
}
libm_alias_double (__copysign, copysign)
diff --git a/sysdeps/ieee754/dbl-64/s_f32xaddf64.c b/sysdeps/ieee754/dbl-64/s_f32xaddf64.c
index 6e20a9e939..6da3ba4835 100644
--- a/sysdeps/ieee754/dbl-64/s_f32xaddf64.c
+++ b/sysdeps/ieee754/dbl-64/s_f32xaddf64.c
@@ -1,5 +1,5 @@
/* Add _Float64 values, converting the result to _Float32x.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define daddl __hide_daddl
#include <math.h>
diff --git a/sysdeps/ieee754/dbl-64/s_f32xdivf64.c b/sysdeps/ieee754/dbl-64/s_f32xdivf64.c
index 24dc25dc0c..0d57518076 100644
--- a/sysdeps/ieee754/dbl-64/s_f32xdivf64.c
+++ b/sysdeps/ieee754/dbl-64/s_f32xdivf64.c
@@ -1,5 +1,5 @@
/* Divide _Float64 values, converting the result to _Float32x.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define ddivl __hide_ddivl
#include <math.h>
diff --git a/sysdeps/ieee754/dbl-64/s_f32xmulf64.c b/sysdeps/ieee754/dbl-64/s_f32xmulf64.c
index f899c84567..06e8cbad19 100644
--- a/sysdeps/ieee754/dbl-64/s_f32xmulf64.c
+++ b/sysdeps/ieee754/dbl-64/s_f32xmulf64.c
@@ -1,5 +1,5 @@
/* Multiply _Float64 values, converting the result to _Float32x.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define dmull __hide_dmull
#include <math.h>
diff --git a/sysdeps/ieee754/dbl-64/s_f32xsubf64.c b/sysdeps/ieee754/dbl-64/s_f32xsubf64.c
index 568f43a880..19dca6ca1f 100644
--- a/sysdeps/ieee754/dbl-64/s_f32xsubf64.c
+++ b/sysdeps/ieee754/dbl-64/s_f32xsubf64.c
@@ -1,5 +1,5 @@
/* Subtract _Float64 values, converting the result to _Float32x.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define dsubl __hide_dsubl
#include <math.h>
diff --git a/sysdeps/ieee754/dbl-64/s_fadd.c b/sysdeps/ieee754/dbl-64/s_fadd.c
index 5ecb435497..4b5b96276d 100644
--- a/sysdeps/ieee754/dbl-64/s_fadd.c
+++ b/sysdeps/ieee754/dbl-64/s_fadd.c
@@ -1,5 +1,5 @@
/* Add double values, narrowing the result to float.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define f32addf64 __hide_f32addf64
#define f32addf32x __hide_f32addf32x
diff --git a/sysdeps/ieee754/dbl-64/s_fdiv.c b/sysdeps/ieee754/dbl-64/s_fdiv.c
index cdd2649df0..274b7ff422 100644
--- a/sysdeps/ieee754/dbl-64/s_fdiv.c
+++ b/sysdeps/ieee754/dbl-64/s_fdiv.c
@@ -1,5 +1,5 @@
/* Divide double values, narrowing the result to float.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define f32divf64 __hide_f32divf64
#define f32divf32x __hide_f32divf32x
diff --git a/sysdeps/ieee754/dbl-64/s_finite.c b/sysdeps/ieee754/dbl-64/s_finite.c
index da1519b1d0..98a40fbff6 100644
--- a/sysdeps/ieee754/dbl-64/s_finite.c
+++ b/sysdeps/ieee754/dbl-64/s_finite.c
@@ -1,4 +1,3 @@
-/* @(#)s_finite.c 5.1 93/09/24 */
/*
* ====================================================
* Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -10,10 +9,6 @@
* ====================================================
*/
-#if defined(LIBM_SCCS) && !defined(lint)
-static char rcsid[] = "$NetBSD: s_finite.c,v 1.8 1995/05/10 20:47:17 jtc Exp $";
-#endif
-
/*
* finite(x) returns 1 is x is finite, else 0;
* no branching!
@@ -23,18 +18,15 @@ static char rcsid[] = "$NetBSD: s_finite.c,v 1.8 1995/05/10 20:47:17 jtc Exp $";
#include <math_private.h>
#include <ldbl-classify-compat.h>
#include <shlib-compat.h>
+#include <stdint.h>
-#undef __finite
-
-#ifndef FINITE
-# define FINITE __finite
-#endif
-
-int FINITE(double x)
+int
+__finite (double x)
{
- int32_t hx;
- GET_HIGH_WORD (hx, x);
- return (int) ((uint32_t) ((hx & 0x7ff00000) - 0x7ff00000) >> 31);
+ int64_t lx;
+ EXTRACT_WORDS64 (lx,x);
+ return (int)((uint64_t)((lx & INT64_C(0x7ff0000000000000))
+ - INT64_C (0x7ff0000000000000)) >> 63);
}
hidden_def (__finite)
weak_alias (__finite, finite)
diff --git a/sysdeps/ieee754/dbl-64/s_floor.c b/sysdeps/ieee754/dbl-64/s_floor.c
index f27c6f3ad2..78325214f4 100644
--- a/sysdeps/ieee754/dbl-64/s_floor.c
+++ b/sysdeps/ieee754/dbl-64/s_floor.c
@@ -1,4 +1,24 @@
-/* @(#)s_floor.c 5.1 93/09/24 */
+/* Round double to integer away from zero.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 2011.
+
+ 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
+ <https://www.gnu.org/licenses/>. */
+
+/* Based on a version which carries the following copyright: */
+
/*
* ====================================================
* Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -10,6 +30,13 @@
* ====================================================
*/
+#define NO_MATH_REDIRECT
+#include <math.h>
+#include <math_private.h>
+#include <stdint.h>
+#include <libm-alias-double.h>
+#include <math-use-builtins.h>
+
/*
* floor(x)
* Return x rounded toward -inf to integral value
@@ -17,69 +44,42 @@
* Bit twiddling.
*/
-#include <math.h>
-#include <math_private.h>
-#include <libm-alias-double.h>
double
__floor (double x)
{
- int32_t i0, i1, j0;
- uint32_t i, j;
- EXTRACT_WORDS (i0, i1, x);
- j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
- if (j0 < 20)
+#if USE_FLOOR_BUILTIN
+ return __builtin_floor (x);
+#else
+ /* Use generic implementation. */
+ int64_t i0;
+ EXTRACT_WORDS64 (i0, x);
+ int32_t j0 = ((i0 >> 52) & 0x7ff) - 0x3ff;
+ if (__glibc_likely (j0 < 52))
{
if (j0 < 0)
{
- /* return 0*sign(x) if |x|<1 */
+ /* return 0 * sign (x) if |x| < 1 */
if (i0 >= 0)
- {
- i0 = i1 = 0;
- }
- else if (((i0 & 0x7fffffff) | i1) != 0)
- {
- i0 = 0xbff00000; i1 = 0;
- }
+ i0 = 0;
+ else if ((i0 & 0x7fffffffffffffffl) != 0)
+ i0 = 0xbff0000000000000l;
}
else
{
- i = (0x000fffff) >> j0;
- if (((i0 & i) | i1) == 0)
- return x; /* x is integral */
+ uint64_t i = 0x000fffffffffffffl >> j0;
+ if ((i0 & i) == 0)
+ return x; /* x is integral */
if (i0 < 0)
- i0 += (0x00100000) >> j0;
- i0 &= (~i); i1 = 0;
- }
- }
- else if (j0 > 51)
- {
- if (j0 == 0x400)
- return x + x; /* inf or NaN */
- else
- return x; /* x is integral */
- }
- else
- {
- i = ((uint32_t) (0xffffffff)) >> (j0 - 20);
- if ((i1 & i) == 0)
- return x; /* x is integral */
- if (i0 < 0)
- {
- if (j0 == 20)
- i0 += 1;
- else
- {
- j = i1 + (1 << (52 - j0));
- if (j < i1)
- i0 += 1; /* got a carry */
- i1 = j;
- }
+ i0 += 0x0010000000000000l >> j0;
+ i0 &= ~i;
}
- i1 &= (~i);
+ INSERT_WORDS64 (x, i0);
}
- INSERT_WORDS (x, i0, i1);
+ else if (j0 == 0x400)
+ return x + x; /* inf or NaN */
return x;
+#endif /* ! USE_FLOOR_BUILTIN */
}
#ifndef __floor
libm_alias_double (__floor, floor)
diff --git a/sysdeps/ieee754/dbl-64/s_fma.c b/sysdeps/ieee754/dbl-64/s_fma.c
index 57c7b5dfc2..887abe60fd 100644
--- a/sysdeps/ieee754/dbl-64/s_fma.c
+++ b/sysdeps/ieee754/dbl-64/s_fma.c
@@ -1,5 +1,5 @@
/* Compute x * y + z as ternary operation.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 2010.
@@ -15,14 +15,14 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <float.h>
#include <math.h>
#include <fenv.h>
#include <ieee754.h>
#include <math-barriers.h>
-#include <math_private.h>
+#include <fenv_private.h>
#include <libm-alias-double.h>
#include <tininess.h>
diff --git a/sysdeps/ieee754/dbl-64/s_fmaf.c b/sysdeps/ieee754/dbl-64/s_fmaf.c
index 5c8b22ac16..5928916bcb 100644
--- a/sysdeps/ieee754/dbl-64/s_fmaf.c
+++ b/sysdeps/ieee754/dbl-64/s_fmaf.c
@@ -1,5 +1,5 @@
/* Compute x * y + z as ternary operation.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 2010.
@@ -15,13 +15,13 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <fenv.h>
#include <ieee754.h>
#include <math-barriers.h>
-#include <math_private.h>
+#include <fenv_private.h>
#include <libm-alias-float.h>
/* This implementation relies on double being more than twice as
diff --git a/sysdeps/ieee754/dbl-64/s_fmul.c b/sysdeps/ieee754/dbl-64/s_fmul.c
index ad9ab7e94d..555e704334 100644
--- a/sysdeps/ieee754/dbl-64/s_fmul.c
+++ b/sysdeps/ieee754/dbl-64/s_fmul.c
@@ -1,5 +1,5 @@
/* Multiply double values, narrowing the result to float.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define f32mulf64 __hide_f32mulf64
#define f32mulf32x __hide_f32mulf32x
diff --git a/sysdeps/ieee754/dbl-64/s_fpclassify.c b/sysdeps/ieee754/dbl-64/s_fpclassify.c
index 1c2d1938f9..fba0852528 100644
--- a/sysdeps/ieee754/dbl-64/s_fpclassify.c
+++ b/sysdeps/ieee754/dbl-64/s_fpclassify.c
@@ -1,5 +1,5 @@
/* Return classification value corresponding to argument.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/ieee754/dbl-64/s_fromfp_main.c b/sysdeps/ieee754/dbl-64/s_fromfp_main.c
index dfb70b434e..40043e6908 100644
--- a/sysdeps/ieee754/dbl-64/s_fromfp_main.c
+++ b/sysdeps/ieee754/dbl-64/s_fromfp_main.c
@@ -1,5 +1,5 @@
/* Round to integer type. dbl-64 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fenv.h>
diff --git a/sysdeps/ieee754/dbl-64/s_fsub.c b/sysdeps/ieee754/dbl-64/s_fsub.c
index c3b911e801..333c1d6acd 100644
--- a/sysdeps/ieee754/dbl-64/s_fsub.c
+++ b/sysdeps/ieee754/dbl-64/s_fsub.c
@@ -1,5 +1,5 @@
/* Subtract double values, narrowing the result to float.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define f32subf64 __hide_f32subf64
#define f32subf32x __hide_f32subf32x
diff --git a/sysdeps/ieee754/dbl-64/s_getpayload.c b/sysdeps/ieee754/dbl-64/s_getpayload.c
index 7b995e94ee..b85f2a3e93 100644
--- a/sysdeps/ieee754/dbl-64/s_getpayload.c
+++ b/sysdeps/ieee754/dbl-64/s_getpayload.c
@@ -1,5 +1,5 @@
/* Get NaN payload. dbl-64 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fix-int-fp-convert-zero.h>
#include <math.h>
diff --git a/sysdeps/ieee754/dbl-64/s_isinf.c b/sysdeps/ieee754/dbl-64/s_isinf.c
index 93eb65c147..e5300fd2a5 100644
--- a/sysdeps/ieee754/dbl-64/s_isinf.c
+++ b/sysdeps/ieee754/dbl-64/s_isinf.c
@@ -4,10 +4,6 @@
* Public domain.
*/
-#if defined(LIBM_SCCS) && !defined(lint)
-static char rcsid[] = "$NetBSD: s_isinf.c,v 1.3 1995/05/11 23:20:14 jtc Exp $";
-#endif
-
/*
* isinf(x) returns 1 is x is inf, -1 if x is -inf, else 0;
* no branching!
@@ -21,11 +17,12 @@ static char rcsid[] = "$NetBSD: s_isinf.c,v 1.3 1995/05/11 23:20:14 jtc Exp $";
int
__isinf (double x)
{
- int32_t hx, lx;
- EXTRACT_WORDS (hx, lx, x);
- lx |= (hx & 0x7fffffff) ^ 0x7ff00000;
- lx |= -lx;
- return ~(lx >> 31) & (hx >> 30);
+ int64_t ix;
+ EXTRACT_WORDS64 (ix,x);
+ int64_t t = ix & UINT64_C (0x7fffffffffffffff);
+ t ^= UINT64_C (0x7ff0000000000000);
+ t |= -t;
+ return ~(t >> 63) & (ix >> 62);
}
hidden_def (__isinf)
weak_alias (__isinf, isinf)
diff --git a/sysdeps/ieee754/dbl-64/s_isnan.c b/sysdeps/ieee754/dbl-64/s_isnan.c
index 82723eeb8a..1f1535dea3 100644
--- a/sysdeps/ieee754/dbl-64/s_isnan.c
+++ b/sysdeps/ieee754/dbl-64/s_isnan.c
@@ -10,10 +10,6 @@
* ====================================================
*/
-#if defined(LIBM_SCCS) && !defined(lint)
-static char rcsid[] = "$NetBSD: s_isnan.c,v 1.8 1995/05/10 20:47:36 jtc Exp $";
-#endif
-
/*
* isnan(x) returns 1 is x is nan, else 0;
* no branching!
@@ -23,17 +19,16 @@ static char rcsid[] = "$NetBSD: s_isnan.c,v 1.8 1995/05/10 20:47:36 jtc Exp $";
#include <math_private.h>
#include <ldbl-classify-compat.h>
#include <shlib-compat.h>
+#include <stdint.h>
-#undef __isnan
int
__isnan (double x)
{
- int32_t hx, lx;
- EXTRACT_WORDS (hx, lx, x);
- hx &= 0x7fffffff;
- hx |= (uint32_t) (lx | (-lx)) >> 31;
- hx = 0x7ff00000 - hx;
- return (int) (((uint32_t) hx) >> 31);
+ int64_t hx;
+ EXTRACT_WORDS64 (hx, x);
+ hx &= UINT64_C (0x7fffffffffffffff);
+ hx = UINT64_C (0x7ff0000000000000) - hx;
+ return (int)(((uint64_t)hx)>>63);
}
hidden_def (__isnan)
weak_alias (__isnan, isnan)
diff --git a/sysdeps/ieee754/dbl-64/s_issignaling.c b/sysdeps/ieee754/dbl-64/s_issignaling.c
index 05aa3f2fdd..dbdfda2774 100644
--- a/sysdeps/ieee754/dbl-64/s_issignaling.c
+++ b/sysdeps/ieee754/dbl-64/s_issignaling.c
@@ -1,5 +1,5 @@
/* Test for signaling NaN.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/ieee754/dbl-64/s_llrint.c b/sysdeps/ieee754/dbl-64/s_llrint.c
index 8159706f90..67a991efb0 100644
--- a/sysdeps/ieee754/dbl-64/s_llrint.c
+++ b/sysdeps/ieee754/dbl-64/s_llrint.c
@@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <limits.h>
diff --git a/sysdeps/ieee754/dbl-64/s_llround.c b/sysdeps/ieee754/dbl-64/s_llround.c
index 1067d19859..45de02865d 100644
--- a/sysdeps/ieee754/dbl-64/s_llround.c
+++ b/sysdeps/ieee754/dbl-64/s_llround.c
@@ -1,5 +1,5 @@
/* Round double value to long long int.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <limits.h>
diff --git a/sysdeps/ieee754/dbl-64/s_logb.c b/sysdeps/ieee754/dbl-64/s_logb.c
index a6de1f6e49..8058a77ac8 100644
--- a/sysdeps/ieee754/dbl-64/s_logb.c
+++ b/sysdeps/ieee754/dbl-64/s_logb.c
@@ -1,22 +1,24 @@
-/* @(#)s_logb.c 5.1 93/09/24 */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
+/* Compute radix independent exponent.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
-/*
- * double logb(x)
- * IEEE 754 logb. Included to pass IEEE test suite. Not recommend.
- * Use ilogb instead.
- */
+ 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
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
+
#include <math_private.h>
#include <libm-alias-double.h>
#include <fix-int-fp-convert-zero.h>
@@ -24,28 +26,23 @@
double
__logb (double x)
{
- int32_t lx, ix, rix;
+ int64_t ix, ex;
- EXTRACT_WORDS (ix, lx, x);
- ix &= 0x7fffffff; /* high |x| */
- if ((ix | lx) == 0)
+ EXTRACT_WORDS64 (ix, x);
+ ix &= UINT64_C(0x7fffffffffffffff);
+ if (ix == 0)
return -1.0 / fabs (x);
- if (ix >= 0x7ff00000)
+ ex = ix >> 52;
+ if (ex == 0x7ff)
return x * x;
- if (__glibc_unlikely ((rix = ix >> 20) == 0))
+ if (__glibc_unlikely (ex == 0))
{
- /* POSIX specifies that denormal number is treated as
- though it were normalized. */
- int ma;
- if (ix == 0)
- ma = __builtin_clz (lx) + 32;
- else
- ma = __builtin_clz (ix);
- rix -= ma - 12;
+ int m = __builtin_clzll (ix);
+ ex -= m - 12;
}
- if (FIX_INT_FP_CONVERT_ZERO && rix == 1023)
+ if (FIX_INT_FP_CONVERT_ZERO && ex == 1023)
return 0.0;
- return (double) (rix - 1023);
+ return (double) (ex - 1023);
}
#ifndef __logb
libm_alias_double (__logb, logb)
diff --git a/sysdeps/ieee754/dbl-64/s_lrint.c b/sysdeps/ieee754/dbl-64/s_lrint.c
index 0e64ae1260..fbe078c299 100644
--- a/sysdeps/ieee754/dbl-64/s_lrint.c
+++ b/sysdeps/ieee754/dbl-64/s_lrint.c
@@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <limits.h>
diff --git a/sysdeps/ieee754/dbl-64/s_lround.c b/sysdeps/ieee754/dbl-64/s_lround.c
index 70f624eea1..25a1c2b919 100644
--- a/sysdeps/ieee754/dbl-64/s_lround.c
+++ b/sysdeps/ieee754/dbl-64/s_lround.c
@@ -1,5 +1,5 @@
/* Round double value to long int.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <limits.h>
diff --git a/sysdeps/ieee754/dbl-64/s_nearbyint.c b/sysdeps/ieee754/dbl-64/s_nearbyint.c
index 903121d456..2deaeb2568 100644
--- a/sysdeps/ieee754/dbl-64/s_nearbyint.c
+++ b/sysdeps/ieee754/dbl-64/s_nearbyint.c
@@ -10,10 +10,6 @@
* ====================================================
*/
-#if defined(LIBM_SCCS) && !defined(lint)
-static char rcsid[] = "$NetBSD: s_rint.c,v 1.8 1995/05/10 20:48:04 jtc Exp $";
-#endif
-
/*
* rint(x)
* Return x rounded to integral value according to the prevailing
@@ -28,49 +24,53 @@ static char rcsid[] = "$NetBSD: s_rint.c,v 1.8 1995/05/10 20:48:04 jtc Exp $";
#include <math.h>
#include <math-barriers.h>
#include <math_private.h>
+#include <fenv_private.h>
#include <libm-alias-double.h>
-
-static const double
- TWO52[2] = {
- 4.50359962737049600000e+15, /* 0x43300000, 0x00000000 */
- -4.50359962737049600000e+15, /* 0xC3300000, 0x00000000 */
-};
+#include <math-use-builtins.h>
double
__nearbyint (double x)
{
+#if USE_NEARBYINT_BUILTIN
+ return __builtin_nearbyint (x);
+#else
+ /* Use generic implementation. */
+ static const double
+ TWO52[2] = {
+ 4.50359962737049600000e+15, /* 0x43300000, 0x00000000 */
+ -4.50359962737049600000e+15, /* 0xC3300000, 0x00000000 */
+ };
fenv_t env;
- int32_t i0, j0, sx;
- double w, t;
- GET_HIGH_WORD (i0, x);
- sx = (i0 >> 31) & 1;
- j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
- if (j0 < 52)
+ int64_t i0, sx;
+ int32_t j0;
+ EXTRACT_WORDS64 (i0, x);
+ sx = (i0 >> 63) & 1;
+ j0 = ((i0 >> 52) & 0x7ff) - 0x3ff;
+ if (__glibc_likely (j0 < 52))
{
if (j0 < 0)
{
libc_feholdexcept (&env);
- w = TWO52[sx] + math_opt_barrier (x);
- t = w - TWO52[sx];
+ double w = TWO52[sx] + math_opt_barrier (x);
+ double t = w - TWO52[sx];
math_force_eval (t);
libc_fesetenv (&env);
- GET_HIGH_WORD (i0, t);
- SET_HIGH_WORD (t, (i0 & 0x7fffffff) | (sx << 31));
- return t;
+ return copysign (t, x);
}
}
else
{
if (j0 == 0x400)
- return x + x; /* inf or NaN */
+ return x + x; /* inf or NaN */
else
- return x; /* x is integral */
+ return x; /* x is integral */
}
libc_feholdexcept (&env);
- w = TWO52[sx] + math_opt_barrier (x);
- t = w - TWO52[sx];
+ double w = TWO52[sx] + math_opt_barrier (x);
+ double t = w - TWO52[sx];
math_force_eval (t);
libc_fesetenv (&env);
return t;
+#endif /* ! USE_NEARBYINT_BUILTIN */
}
libm_alias_double (__nearbyint, nearbyint)
diff --git a/sysdeps/ieee754/dbl-64/s_nextup.c b/sysdeps/ieee754/dbl-64/s_nextup.c
index d37a2b6657..edafcf8900 100644
--- a/sysdeps/ieee754/dbl-64/s_nextup.c
+++ b/sysdeps/ieee754/dbl-64/s_nextup.c
@@ -1,5 +1,5 @@
/* Return the least floating-point number greater than X.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <float.h>
#include <math.h>
diff --git a/sysdeps/ieee754/dbl-64/s_remquo.c b/sysdeps/ieee754/dbl-64/s_remquo.c
index 9a3fbe0ec8..97f87f1133 100644
--- a/sysdeps/ieee754/dbl-64/s_remquo.c
+++ b/sysdeps/ieee754/dbl-64/s_remquo.c
@@ -1,5 +1,5 @@
/* Compute remainder and a congruent to the quotient.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/ieee754/dbl-64/s_rint.c b/sysdeps/ieee754/dbl-64/s_rint.c
index cb0f5ca298..8604733ef9 100644
--- a/sysdeps/ieee754/dbl-64/s_rint.c
+++ b/sysdeps/ieee754/dbl-64/s_rint.c
@@ -1,4 +1,3 @@
-/* @(#)s_rint.c 5.1 93/09/24 */
/*
* ====================================================
* Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -20,44 +19,51 @@
* Inexact flag raised if x not equal to rint(x).
*/
+#define NO_MATH_REDIRECT
#include <math.h>
#include <math_private.h>
#include <libm-alias-double.h>
-
-static const double
- TWO52[2] = {
- 4.50359962737049600000e+15, /* 0x43300000, 0x00000000 */
- -4.50359962737049600000e+15, /* 0xC3300000, 0x00000000 */
-};
+#include <math-use-builtins.h>
double
__rint (double x)
{
- int32_t i0, j0, sx;
- double w, t;
- GET_HIGH_WORD (i0, x);
- sx = (i0 >> 31) & 1;
- j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
+#if USE_RINT_BUILTIN
+ return __builtin_rint (x);
+#else
+ /* Use generic implementation. */
+ static const double
+ TWO52[2] = {
+ 4.50359962737049600000e+15, /* 0x43300000, 0x00000000 */
+ -4.50359962737049600000e+15, /* 0xC3300000, 0x00000000 */
+ };
+ int64_t i0, sx;
+ int32_t j0;
+ EXTRACT_WORDS64 (i0, x);
+ sx = (i0 >> 63) & 1;
+ j0 = ((i0 >> 52) & 0x7ff) - 0x3ff;
if (j0 < 52)
{
if (j0 < 0)
{
- w = TWO52[sx] + x;
- t = w - TWO52[sx];
- GET_HIGH_WORD (i0, t);
- SET_HIGH_WORD (t, (i0 & 0x7fffffff) | (sx << 31));
+ double w = TWO52[sx] + x;
+ double t = w - TWO52[sx];
+ EXTRACT_WORDS64 (i0, t);
+ INSERT_WORDS64 (t, (i0 & UINT64_C (0x7fffffffffffffff))
+ | (sx << 63));
return t;
}
}
else
{
if (j0 == 0x400)
- return x + x; /* inf or NaN */
+ return x + x; /* inf or NaN */
else
- return x; /* x is integral */
+ return x; /* x is integral */
}
- w = TWO52[sx] + x;
+ double w = TWO52[sx] + x;
return w - TWO52[sx];
+#endif /* ! USE_RINT_BUILTIN */
}
#ifndef __rint
libm_alias_double (__rint, rint)
diff --git a/sysdeps/ieee754/dbl-64/s_round.c b/sysdeps/ieee754/dbl-64/s_round.c
index fa9e83196e..7eb1ecb482 100644
--- a/sysdeps/ieee754/dbl-64/s_round.c
+++ b/sysdeps/ieee754/dbl-64/s_round.c
@@ -1,5 +1,5 @@
/* Round double to integer away from zero.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@@ -15,44 +15,48 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
#include <math_private.h>
#include <libm-alias-double.h>
+#include <stdint.h>
+#include <math-use-builtins.h>
double
__round (double x)
{
- int32_t i0, j0;
- uint32_t i1;
+#if USE_ROUND_BUILTIN
+ return __builtin_round (x);
+#else
+ /* Use generic implementation. */
+ int64_t i0, j0;
- EXTRACT_WORDS (i0, i1, x);
- j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
- if (j0 < 20)
+ EXTRACT_WORDS64 (i0, x);
+ j0 = ((i0 >> 52) & 0x7ff) - 0x3ff;
+ if (__glibc_likely (j0 < 52))
{
if (j0 < 0)
{
- i0 &= 0x80000000;
+ i0 &= UINT64_C (0x8000000000000000);
if (j0 == -1)
- i0 |= 0x3ff00000;
- i1 = 0;
+ i0 |= UINT64_C (0x3ff0000000000000);
}
else
{
- uint32_t i = 0x000fffff >> j0;
- if (((i0 & i) | i1) == 0)
+ uint64_t i = UINT64_C (0x000fffffffffffff) >> j0;
+ if ((i0 & i) == 0)
/* X is integral. */
return x;
- i0 += 0x00080000 >> j0;
+ i0 += UINT64_C (0x0008000000000000) >> j0;
i0 &= ~i;
- i1 = 0;
}
}
- else if (j0 > 51)
+ else
{
if (j0 == 0x400)
/* Inf or NaN. */
@@ -60,21 +64,9 @@ __round (double x)
else
return x;
}
- else
- {
- uint32_t i = 0xffffffff >> (j0 - 20);
- if ((i1 & i) == 0)
- /* X is integral. */
- return x;
-
- uint32_t j = i1 + (1 << (51 - j0));
- if (j < i1)
- i0 += 1;
- i1 = j;
- i1 &= ~i;
- }
- INSERT_WORDS (x, i0, i1);
+ INSERT_WORDS64 (x, i0);
return x;
+#endif /* ! USE_ROUND_BUILTIN */
}
libm_alias_double (__round, round)
diff --git a/sysdeps/ieee754/dbl-64/s_roundeven.c b/sysdeps/ieee754/dbl-64/s_roundeven.c
index 1438e81d45..3a4eccb85a 100644
--- a/sysdeps/ieee754/dbl-64/s_roundeven.c
+++ b/sysdeps/ieee754/dbl-64/s_roundeven.c
@@ -1,6 +1,6 @@
/* Round to nearest integer value, rounding halfway cases to even.
dbl-64 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/ieee754/dbl-64/s_scalbln.c b/sysdeps/ieee754/dbl-64/s_scalbln.c
index 32cd12e3b0..0e3d732e48 100644
--- a/sysdeps/ieee754/dbl-64/s_scalbln.c
+++ b/sysdeps/ieee754/dbl-64/s_scalbln.c
@@ -42,9 +42,9 @@ __scalbln (double x, long int n)
if (__glibc_unlikely (k == 0x7ff))
return x + x; /* NaN or Inf */
if (__glibc_unlikely (n < -50000))
- return tiny * __copysign (tiny, x); /*underflow*/
+ return tiny * copysign (tiny, x); /*underflow*/
if (__glibc_unlikely (n > 50000 || k + n > 0x7fe))
- return huge * __copysign (huge, x); /* overflow */
+ return huge * copysign (huge, x); /* overflow */
/* Now k and n are bounded we know that k = k+n does not
overflow. */
k = k + n;
@@ -53,7 +53,7 @@ __scalbln (double x, long int n)
SET_HIGH_WORD (x, (hx & 0x800fffff) | (k << 20)); return x;
}
if (k <= -54)
- return tiny * __copysign (tiny, x); /*underflow*/
+ return tiny * copysign (tiny, x); /*underflow*/
k += 54; /* subnormal result */
SET_HIGH_WORD (x, (hx & 0x800fffff) | (k << 20));
return x * twom54;
diff --git a/sysdeps/ieee754/dbl-64/s_scalbn.c b/sysdeps/ieee754/dbl-64/s_scalbn.c
index 58c7e1b33a..cf4d6846ee 100644
--- a/sysdeps/ieee754/dbl-64/s_scalbn.c
+++ b/sysdeps/ieee754/dbl-64/s_scalbn.c
@@ -42,9 +42,9 @@ __scalbn (double x, int n)
if (__glibc_unlikely (k == 0x7ff))
return x + x; /* NaN or Inf */
if (__glibc_unlikely (n < -50000))
- return tiny * __copysign (tiny, x); /*underflow*/
+ return tiny * copysign (tiny, x); /*underflow*/
if (__glibc_unlikely (n > 50000 || k + n > 0x7fe))
- return huge * __copysign (huge, x); /* overflow */
+ return huge * copysign (huge, x); /* overflow */
/* Now k and n are bounded we know that k = k+n does not
overflow. */
k = k + n;
@@ -53,7 +53,7 @@ __scalbn (double x, int n)
SET_HIGH_WORD (x, (hx & 0x800fffff) | (k << 20)); return x;
}
if (k <= -54)
- return tiny * __copysign (tiny, x); /*underflow*/
+ return tiny * copysign (tiny, x); /*underflow*/
k += 54; /* subnormal result */
SET_HIGH_WORD (x, (hx & 0x800fffff) | (k << 20));
return x * twom54;
diff --git a/sysdeps/ieee754/dbl-64/s_setpayload_main.c b/sysdeps/ieee754/dbl-64/s_setpayload_main.c
index 0e87c2a587..d161090888 100644
--- a/sysdeps/ieee754/dbl-64/s_setpayload_main.c
+++ b/sysdeps/ieee754/dbl-64/s_setpayload_main.c
@@ -1,5 +1,5 @@
/* Set NaN payload. dbl-64 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/ieee754/dbl-64/s_signbit.c b/sysdeps/ieee754/dbl-64/s_signbit.c
index 71500b0a2d..f98a8697fb 100644
--- a/sysdeps/ieee754/dbl-64/s_signbit.c
+++ b/sysdeps/ieee754/dbl-64/s_signbit.c
@@ -1,5 +1,5 @@
/* Return nonzero value if number is negative.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/ieee754/dbl-64/s_sin.c b/sysdeps/ieee754/dbl-64/s_sin.c
index b369ac9f5b..413540661f 100644
--- a/sysdeps/ieee754/dbl-64/s_sin.c
+++ b/sysdeps/ieee754/dbl-64/s_sin.c
@@ -1,7 +1,7 @@
/*
* IBM Accurate Mathematical Library
* written by International Business Machines Corp.
- * Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2019 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 by
@@ -14,7 +14,7 @@
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
/****************************************************************************/
/* */
@@ -41,6 +41,7 @@
#include "MathLib.h"
#include <math.h>
#include <math_private.h>
+#include <fenv_private.h>
#include <math-underflow.h>
#include <libm-alias-double.h>
#include <fenv.h>
@@ -96,8 +97,7 @@ int __branred (double x, double *a, double *aa);
of the number by combining the sin and cos of X (as computed by a variation
of the Taylor series) with the values looked up from the sin/cos table to
get the result. */
-static inline double
-__always_inline
+static __always_inline double
do_cos (double x, double dx)
{
mynumber u;
@@ -121,8 +121,7 @@ do_cos (double x, double dx)
the number by combining the sin and cos of X (as computed by a variation of
the Taylor series) with the values looked up from the sin/cos table to get
the result. */
-static inline double
-__always_inline
+static __always_inline double
do_sin (double x, double dx)
{
double xold = x;
@@ -143,15 +142,14 @@ do_sin (double x, double dx)
c = x * dx + xx * (cs2 + xx * (cs4 + xx * cs6));
SINCOS_TABLE_LOOKUP (u, sn, ssn, cs, ccs);
cor = (ssn + s * ccs - sn * c) + cs * s;
- return __copysign (sn + cor, xold);
+ return copysign (sn + cor, xold);
}
/* Reduce range of x to within PI/2 with abs (x) < 105414350. The high part
is written to *a, the low part to *da. Range reduction is accurate to 136
bits so that when x is large and *a very close to zero, all 53 bits of *a
are correct. */
-static inline int4
-__always_inline
+static __always_inline int4
reduce_sincos (double x, double *a, double *da)
{
mynumber v;
@@ -177,8 +175,7 @@ reduce_sincos (double x, double *a, double *da)
}
/* Compute sin or cos (A + DA) for the given quadrant N. */
-static double
-__always_inline
+static __always_inline double
do_sincos (double a, double da, int4 n)
{
double retval;
@@ -230,7 +227,7 @@ __sin (double x)
{
t = hp0 - fabs (x);
/* Max ULP is 0.51. */
- retval = __copysign (do_cos (t, hp1), x);
+ retval = copysign (do_cos (t, hp1), x);
} /* else if (k < 0x400368fd) */
/*-------------------------- 2.426265<|x|< 105414350 ----------------------*/
diff --git a/sysdeps/ieee754/dbl-64/s_sincos.c b/sysdeps/ieee754/dbl-64/s_sincos.c
index 1d8d44befe..2f892be601 100644
--- a/sysdeps/ieee754/dbl-64/s_sincos.c
+++ b/sysdeps/ieee754/dbl-64/s_sincos.c
@@ -1,5 +1,5 @@
/* Compute sine and cosine of argument.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@@ -15,12 +15,13 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <math.h>
#include <math_private.h>
+#include <fenv_private.h>
#include <math-underflow.h>
#include <libm-alias-double.h>
@@ -62,7 +63,7 @@ __sincos (double x, double *sinx, double *cosx)
y = hp0 - fabs (x);
a = y + hp1;
da = (y - a) + hp1;
- *sinx = __copysign (do_cos (a, da), x);
+ *sinx = copysign (do_cos (a, da), x);
*cosx = do_sin (a, da);
return;
}
diff --git a/sysdeps/ieee754/dbl-64/s_tan.c b/sysdeps/ieee754/dbl-64/s_tan.c
index 04ff8b6717..1103ed2896 100644
--- a/sysdeps/ieee754/dbl-64/s_tan.c
+++ b/sysdeps/ieee754/dbl-64/s_tan.c
@@ -1,7 +1,7 @@
/*
* IBM Accurate Mathematical Library
* written by International Business Machines Corp.
- * Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2019 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 by
@@ -14,7 +14,7 @@
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
/*********************************************************************/
/* MODULE_NAME: utan.c */
@@ -41,6 +41,7 @@
#include "MathLib.h"
#include <math.h>
#include <math_private.h>
+#include <fenv_private.h>
#include <math-underflow.h>
#include <libm-alias-double.h>
#include <fenv.h>
diff --git a/sysdeps/ieee754/dbl-64/s_totalorder.c b/sysdeps/ieee754/dbl-64/s_totalorder.c
index 59092dceda..954401bc33 100644
--- a/sysdeps/ieee754/dbl-64/s_totalorder.c
+++ b/sysdeps/ieee754/dbl-64/s_totalorder.c
@@ -1,5 +1,5 @@
/* Total order operation. dbl-64 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,21 +14,23 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
#include <libm-alias-double.h>
#include <nan-high-order-bit.h>
#include <stdint.h>
+#include <shlib-compat.h>
+#include <first-versions.h>
int
-__totalorder (double x, double y)
+__totalorder (const double *x, const double *y)
{
int32_t hx, hy;
uint32_t lx, ly;
- EXTRACT_WORDS (hx, lx, x);
- EXTRACT_WORDS (hy, ly, y);
+ EXTRACT_WORDS (hx, lx, *x);
+ EXTRACT_WORDS (hy, ly, *y);
#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN
uint32_t uhx = hx & 0x7fffffff, uhy = hy & 0x7fffffff;
/* For the preferred quiet NaN convention, this operation is a
@@ -50,4 +52,29 @@ __totalorder (double x, double y)
ly ^= hy_sign;
return hx < hy || (hx == hy && lx <= ly);
}
+#ifdef SHARED
+# define CONCATX(x, y) x ## y
+# define CONCAT(x, y) CONCATX (x, y)
+# define UNIQUE_ALIAS(name) CONCAT (name, __COUNTER__)
+# define do_symbol(orig_name, name, aliasname) \
+ strong_alias (orig_name, name) \
+ versioned_symbol (libm, name, aliasname, GLIBC_2_31)
+# undef weak_alias
+# define weak_alias(name, aliasname) \
+ do_symbol (name, UNIQUE_ALIAS (name), aliasname);
+#endif
libm_alias_double (__totalorder, totalorder)
+#if SHLIB_COMPAT (libm, GLIBC_2_25, GLIBC_2_31)
+int
+attribute_compat_text_section
+__totalorder_compat (double x, double y)
+{
+ return __totalorder (&x, &y);
+}
+#undef do_symbol
+#define do_symbol(orig_name, name, aliasname) \
+ strong_alias (orig_name, name) \
+ compat_symbol (libm, name, aliasname, \
+ CONCAT (FIRST_VERSION_libm_, aliasname))
+libm_alias_double (__totalorder_compat, totalorder)
+#endif
diff --git a/sysdeps/ieee754/dbl-64/s_totalordermag.c b/sysdeps/ieee754/dbl-64/s_totalordermag.c
index 3b45113962..5c2179bb29 100644
--- a/sysdeps/ieee754/dbl-64/s_totalordermag.c
+++ b/sysdeps/ieee754/dbl-64/s_totalordermag.c
@@ -1,5 +1,5 @@
/* Total order operation on absolute values. dbl-64 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,21 +14,23 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
#include <libm-alias-double.h>
#include <nan-high-order-bit.h>
#include <stdint.h>
+#include <shlib-compat.h>
+#include <first-versions.h>
int
-__totalordermag (double x, double y)
+__totalordermag (const double *x, const double *y)
{
uint32_t hx, hy;
uint32_t lx, ly;
- EXTRACT_WORDS (hx, lx, x);
- EXTRACT_WORDS (hy, ly, y);
+ EXTRACT_WORDS (hx, lx, *x);
+ EXTRACT_WORDS (hy, ly, *y);
hx &= 0x7fffffff;
hy &= 0x7fffffff;
#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN
@@ -45,4 +47,29 @@ __totalordermag (double x, double y)
#endif
return hx < hy || (hx == hy && lx <= ly);
}
+#ifdef SHARED
+# define CONCATX(x, y) x ## y
+# define CONCAT(x, y) CONCATX (x, y)
+# define UNIQUE_ALIAS(name) CONCAT (name, __COUNTER__)
+# define do_symbol(orig_name, name, aliasname) \
+ strong_alias (orig_name, name) \
+ versioned_symbol (libm, name, aliasname, GLIBC_2_31)
+# undef weak_alias
+# define weak_alias(name, aliasname) \
+ do_symbol (name, UNIQUE_ALIAS (name), aliasname);
+#endif
libm_alias_double (__totalordermag, totalordermag)
+#if SHLIB_COMPAT (libm, GLIBC_2_25, GLIBC_2_31)
+int
+attribute_compat_text_section
+__totalordermag_compat (double x, double y)
+{
+ return __totalordermag (&x, &y);
+}
+#undef do_symbol
+#define do_symbol(orig_name, name, aliasname) \
+ strong_alias (orig_name, name) \
+ compat_symbol (libm, name, aliasname, \
+ CONCAT (FIRST_VERSION_libm_, aliasname))
+libm_alias_double (__totalordermag_compat, totalordermag)
+#endif
diff --git a/sysdeps/ieee754/dbl-64/s_trunc.c b/sysdeps/ieee754/dbl-64/s_trunc.c
index 6ffabb410a..c3129fea7b 100644
--- a/sysdeps/ieee754/dbl-64/s_trunc.c
+++ b/sysdeps/ieee754/dbl-64/s_trunc.c
@@ -1,5 +1,5 @@
/* Truncate argument to nearest integral value not larger than the argument.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@@ -15,44 +15,46 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
#include <math_private.h>
#include <libm-alias-double.h>
+#include <math-use-builtins.h>
double
__trunc (double x)
{
- int32_t i0, j0;
- uint32_t i1;
- int sx;
-
- EXTRACT_WORDS (i0, i1, x);
- sx = i0 & 0x80000000;
- j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
- if (j0 < 20)
+#if USE_TRUNC_BUILTIN
+ return __builtin_trunc (x);
+#else
+ /* Use generic implementation. */
+ int64_t i0, j0;
+ int64_t sx;
+
+ EXTRACT_WORDS64 (i0, x);
+ sx = i0 & UINT64_C (0x8000000000000000);
+ j0 = ((i0 >> 52) & 0x7ff) - 0x3ff;
+ if (j0 < 52)
{
if (j0 < 0)
/* The magnitude of the number is < 1 so the result is +-0. */
- INSERT_WORDS (x, sx, 0);
+ INSERT_WORDS64 (x, sx);
else
- INSERT_WORDS (x, sx | (i0 & ~(0x000fffff >> j0)), 0);
+ INSERT_WORDS64 (x, sx | (i0 & ~(UINT64_C (0x000fffffffffffff) >> j0)));
}
- else if (j0 > 51)
+ else
{
if (j0 == 0x400)
/* x is inf or NaN. */
return x + x;
}
- else
- {
- INSERT_WORDS (x, i0, i1 & ~(0xffffffffu >> (j0 - 20)));
- }
return x;
+#endif /* ! USE_TRUNC_BUILTIN */
}
#ifndef __trunc
libm_alias_double (__trunc, trunc)
diff --git a/sysdeps/ieee754/dbl-64/sincos32.c b/sysdeps/ieee754/dbl-64/sincos32.c
index a8572910d2..7e93cec06f 100644
--- a/sysdeps/ieee754/dbl-64/sincos32.c
+++ b/sysdeps/ieee754/dbl-64/sincos32.c
@@ -1,7 +1,7 @@
/*
* IBM Accurate Mathematical Library
* written by International Business Machines Corp.
- * Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2019 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 by
@@ -14,7 +14,7 @@
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
/****************************************************************/
/* MODULE_NAME: sincos32.c */
diff --git a/sysdeps/ieee754/dbl-64/sincos32.h b/sysdeps/ieee754/dbl-64/sincos32.h
index d4e72bd82a..af800a5ef4 100644
--- a/sysdeps/ieee754/dbl-64/sincos32.h
+++ b/sysdeps/ieee754/dbl-64/sincos32.h
@@ -1,7 +1,7 @@
/*
* IBM Accurate Mathematical Library
* Written by International Business Machines Corp.
- * Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2019 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 by
@@ -14,7 +14,7 @@
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
/******************************************************************/
diff --git a/sysdeps/ieee754/dbl-64/sincostab.c b/sysdeps/ieee754/dbl-64/sincostab.c
index 082ecad7f6..889b9dc393 100644
--- a/sysdeps/ieee754/dbl-64/sincostab.c
+++ b/sysdeps/ieee754/dbl-64/sincostab.c
@@ -1,7 +1,7 @@
/*
* IBM Accurate Mathematical Library
* Written by International Business Machines Corp.
- * Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2019 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 by
@@ -14,7 +14,7 @@
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
#include <mydefs.h>
diff --git a/sysdeps/ieee754/dbl-64/t_exp.c b/sysdeps/ieee754/dbl-64/t_exp.c
deleted file mode 100644
index 555c4ff01b..0000000000
--- a/sysdeps/ieee754/dbl-64/t_exp.c
+++ /dev/null
@@ -1,435 +0,0 @@
-/* Accurate tables for exp().
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Geoffrey Keating <geoffk@ozemail.com.au>
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-/* This table has the property that, for all integers -177 <= i <= 177,
- exp(i/512.0 + __exp_deltatable[abs(i)]) == __exp_atable[i+177] + r
- for some -2^-64 < r < 2^-64 (abs(r) < 2^-65 if i <= 0); and that
- __exp_deltatable[abs(i)] == t * 2^-60
- for integer t so that abs(t) <= 8847927 * 2^8. */
-
-#define W52 (2.22044605e-16)
-#define W55 (2.77555756e-17)
-#define W58 (3.46944695e-18)
-#define W59 (1.73472348e-18)
-#define W60 (8.67361738e-19)
-const float __exp_deltatable[178] = {
- 0*W60, 16558714*W60, -10672149*W59, 1441652*W60,
- -15787963*W55, 462888*W60, 7291806*W60, 1698880*W60,
- -14375103*W58, -2021016*W60, 728829*W60, -3759654*W60,
- 3202123*W60, -10916019*W58, -251570*W60, -1043086*W60,
- 8207536*W60, -409964*W60, -5993931*W60, -475500*W60,
- 2237522*W60, 324170*W60, -244117*W60, 32077*W60,
- 123907*W60, -1019734*W60, -143*W60, 813077*W60,
- 743345*W60, 462461*W60, 629794*W60, 2125066*W60,
- -2339121*W60, -337951*W60, 9922067*W60, -648704*W60,
- 149407*W60, -2687209*W60, -631608*W60, 2128280*W60,
- -4882082*W60, 2001360*W60, 175074*W60, 2923216*W60,
- -538947*W60, -1212193*W60, -1920926*W60, -1080577*W60,
- 3690196*W60, 2643367*W60, 2911937*W60, 671455*W60,
- -1128674*W60, 593282*W60, -5219347*W60, -1941490*W60,
- 11007953*W60, 239609*W60, -2969658*W60, -1183650*W60,
- 942998*W60, 699063*W60, 450569*W60, -329250*W60,
- -7257875*W60, -312436*W60, 51626*W60, 555877*W60,
- -641761*W60, 1565666*W60, 884327*W60, -10960035*W60,
- -2004679*W60, -995793*W60, -2229051*W60, -146179*W60,
- -510327*W60, 1453482*W60, -3778852*W60, -2238056*W60,
- -4895983*W60, 3398883*W60, -252738*W60, 1230155*W60,
- 346918*W60, 1109352*W60, 268941*W60, -2930483*W60,
- -1036263*W60, -1159280*W60, 1328176*W60, 2937642*W60,
- -9371420*W60, -6902650*W60, -1419134*W60, 1442904*W60,
- -1319056*W60, -16369*W60, 696555*W60, -279987*W60,
- -7919763*W60, 252741*W60, 459711*W60, -1709645*W60,
- 354913*W60, 6025867*W60, -421460*W60, -853103*W60,
- -338649*W60, 962151*W60, 955965*W60, 784419*W60,
- -3633653*W60, 2277133*W60, -8847927*W52, 1223028*W60,
- 5907079*W60, 623167*W60, 5142888*W60, 2599099*W60,
- 1214280*W60, 4870359*W60, 593349*W60, -57705*W60,
- 7761209*W60, -5564097*W60, 2051261*W60, 6216869*W60,
- 4692163*W60, 601691*W60, -5264906*W60, 1077872*W60,
- -3205949*W60, 1833082*W60, 2081746*W60, -987363*W60,
- -1049535*W60, 2015244*W60, 874230*W60, 2168259*W60,
- -1740124*W60, -10068269*W60, -18242*W60, -3013583*W60,
- 580601*W60, -2547161*W60, -535689*W60, 2220815*W60,
- 1285067*W60, 2806933*W60, -983086*W60, -1729097*W60,
- -1162985*W60, -2561904*W60, 801988*W60, 244351*W60,
- 1441893*W60, -7517981*W60, 271781*W60, -15021588*W60,
- -2341588*W60, -919198*W60, 1642232*W60, 4771771*W60,
- -1220099*W60, -3062372*W60, 628624*W60, 1278114*W60,
- 13083513*W60, -10521925*W60, 3180310*W60, -1659307*W60,
- 3543773*W60, 2501203*W60, 4151*W60, -340748*W60,
- -2285625*W60, 2495202*W60
-};
-
-const double __exp_atable[355] /* __attribute__((mode(DF))) */ = {
- 0.707722561055888932371, /* 0x0.b52d4e46605c27ffd */
- 0.709106182438804188967, /* 0x0.b587fb96f75097ffb */
- 0.710492508843861281234, /* 0x0.b5e2d649899167ffd */
- 0.711881545564593931623, /* 0x0.b63dde74d36bdfffe */
- 0.713273297897442870573, /* 0x0.b699142f945f87ffc */
- 0.714667771153751463236, /* 0x0.b6f477909c4ea0001 */
- 0.716064970655995725059, /* 0x0.b75008aec758f8004 */
- 0.717464901723956938193, /* 0x0.b7abc7a0eea7e0002 */
- 0.718867569715736398602, /* 0x0.b807b47e1586c7ff8 */
- 0.720272979947266023271, /* 0x0.b863cf5d10e380003 */
- 0.721681137825144314297, /* 0x0.b8c01855195c37ffb */
- 0.723092048691992950199, /* 0x0.b91c8f7d213740004 */
- 0.724505717938892290800, /* 0x0.b97934ec5002d0007 */
- 0.725922150953176470431, /* 0x0.b9d608b9c92ea7ffc */
- 0.727341353138962865022, /* 0x0.ba330afcc29e98003 */
- 0.728763329918453162104, /* 0x0.ba903bcc8618b7ffc */
- 0.730188086709957051568, /* 0x0.baed9b40591ba0000 */
- 0.731615628948127705309, /* 0x0.bb4b296f931e30002 */
- 0.733045962086486091436, /* 0x0.bba8e671a05617ff9 */
- 0.734479091556371366251, /* 0x0.bc06d25dd49568001 */
- 0.735915022857225542529, /* 0x0.bc64ed4bce8f6fff9 */
- 0.737353761441304711410, /* 0x0.bcc33752f915d7ff9 */
- 0.738795312814142124419, /* 0x0.bd21b08af98e78005 */
- 0.740239682467211168593, /* 0x0.bd80590b65e9a8000 */
- 0.741686875913991849885, /* 0x0.bddf30ebec4a10000 */
- 0.743136898669507939299, /* 0x0.be3e38443c84e0007 */
- 0.744589756269486091620, /* 0x0.be9d6f2c1d32a0002 */
- 0.746045454254026796384, /* 0x0.befcd5bb59baf8004 */
- 0.747503998175051087583, /* 0x0.bf5c6c09ca84c0003 */
- 0.748965393601880857739, /* 0x0.bfbc322f5b18b7ff8 */
- 0.750429646104262104698, /* 0x0.c01c2843f776fffff */
- 0.751896761271877989160, /* 0x0.c07c4e5fa18b88002 */
- 0.753366744698445112140, /* 0x0.c0dca49a5fb18fffd */
- 0.754839601988627206827, /* 0x0.c13d2b0c444db0005 */
- 0.756315338768691947122, /* 0x0.c19de1cd798578006 */
- 0.757793960659406629066, /* 0x0.c1fec8f623723fffd */
- 0.759275473314173443536, /* 0x0.c25fe09e8a0f47ff8 */
- 0.760759882363831851927, /* 0x0.c2c128dedc88f8000 */
- 0.762247193485956486805, /* 0x0.c322a1cf7d6e7fffa */
- 0.763737412354726363781, /* 0x0.c3844b88cb9347ffc */
- 0.765230544649828092739, /* 0x0.c3e626232bd8f7ffc */
- 0.766726596071518051729, /* 0x0.c44831b719bf18002 */
- 0.768225572321911687194, /* 0x0.c4aa6e5d12d078001 */
- 0.769727479119219348810, /* 0x0.c50cdc2da64a37ffb */
- 0.771232322196981678892, /* 0x0.c56f7b41744490001 */
- 0.772740107296721268087, /* 0x0.c5d24bb1259e70004 */
- 0.774250840160724651565, /* 0x0.c6354d95640dd0007 */
- 0.775764526565368872643, /* 0x0.c6988106fec447fff */
- 0.777281172269557396602, /* 0x0.c6fbe61eb1bd0ffff */
- 0.778800783068235302750, /* 0x0.c75f7cf560942fffc */
- 0.780323364758801041312, /* 0x0.c7c345a3f1983fffe */
- 0.781848923151573727006, /* 0x0.c8274043594cb0002 */
- 0.783377464064598849602, /* 0x0.c88b6cec94b3b7ff9 */
- 0.784908993312207869935, /* 0x0.c8efcbb89cba27ffe */
- 0.786443516765346961618, /* 0x0.c9545cc0a88c70003 */
- 0.787981040257604625744, /* 0x0.c9b9201dc643bfffa */
- 0.789521569657452682047, /* 0x0.ca1e15e92a5410007 */
- 0.791065110849462849192, /* 0x0.ca833e3c1ae510005 */
- 0.792611669712891875319, /* 0x0.cae8992fd84667ffd */
- 0.794161252150049179450, /* 0x0.cb4e26ddbc207fff8 */
- 0.795713864077794763584, /* 0x0.cbb3e75f301b60003 */
- 0.797269511407239561694, /* 0x0.cc19dacd978cd8002 */
- 0.798828200086368567220, /* 0x0.cc8001427e55d7ffb */
- 0.800389937624300440456, /* 0x0.cce65ade24d360006 */
- 0.801954725261124767840, /* 0x0.cd4ce7a5de839fffb */
- 0.803522573691593189330, /* 0x0.cdb3a7c79a678fffd */
- 0.805093487311204114563, /* 0x0.ce1a9b563965ffffc */
- 0.806667472122675088819, /* 0x0.ce81c26b838db8000 */
- 0.808244534127439906441, /* 0x0.cee91d213f8428002 */
- 0.809824679342317166307, /* 0x0.cf50ab9144d92fff9 */
- 0.811407913793616542005, /* 0x0.cfb86dd5758c2ffff */
- 0.812994243520784198882, /* 0x0.d0206407c20e20005 */
- 0.814583674571603966162, /* 0x0.d0888e4223facfff9 */
- 0.816176213022088536960, /* 0x0.d0f0ec9eb3f7c8002 */
- 0.817771864936188586101, /* 0x0.d1597f377d6768002 */
- 0.819370636400374108252, /* 0x0.d1c24626a46eafff8 */
- 0.820972533518165570298, /* 0x0.d22b41865ff1e7ff9 */
- 0.822577562404315121269, /* 0x0.d2947170f32ec7ff9 */
- 0.824185729164559344159, /* 0x0.d2fdd60097795fff8 */
- 0.825797039949601741075, /* 0x0.d3676f4fb796d0001 */
- 0.827411500902565544264, /* 0x0.d3d13d78b5f68fffb */
- 0.829029118181348834154, /* 0x0.d43b40960546d8001 */
- 0.830649897953322891022, /* 0x0.d4a578c222a058000 */
- 0.832273846408250750368, /* 0x0.d50fe617a3ba78005 */
- 0.833900969738858188772, /* 0x0.d57a88b1218e90002 */
- 0.835531274148056613016, /* 0x0.d5e560a94048f8006 */
- 0.837164765846411529371, /* 0x0.d6506e1aac8078003 */
- 0.838801451086016225394, /* 0x0.d6bbb1204074e0001 */
- 0.840441336100884561780, /* 0x0.d72729d4c28518004 */
- 0.842084427144139224814, /* 0x0.d792d8530e12b0001 */
- 0.843730730487052604790, /* 0x0.d7febcb61273e7fff */
- 0.845380252404570153833, /* 0x0.d86ad718c308dfff9 */
- 0.847032999194574087728, /* 0x0.d8d727962c69d7fff */
- 0.848688977161248581090, /* 0x0.d943ae49621ce7ffb */
- 0.850348192619261200615, /* 0x0.d9b06b4d832ef8005 */
- 0.852010651900976245816, /* 0x0.da1d5ebdc22220005 */
- 0.853676361342631029337, /* 0x0.da8a88b555baa0006 */
- 0.855345327311054837175, /* 0x0.daf7e94f965f98004 */
- 0.857017556155879489641, /* 0x0.db6580a7c98f7fff8 */
- 0.858693054267390953857, /* 0x0.dbd34ed9617befff8 */
- 0.860371828028939855647, /* 0x0.dc4153ffc8b65fff9 */
- 0.862053883854957292436, /* 0x0.dcaf90368bfca8004 */
- 0.863739228154875360306, /* 0x0.dd1e0399328d87ffe */
- 0.865427867361348468455, /* 0x0.dd8cae435d303fff9 */
- 0.867119807911702289458, /* 0x0.ddfb9050b1cee8006 */
- 0.868815056264353846599, /* 0x0.de6aa9dced8448001 */
- 0.870513618890481399881, /* 0x0.ded9fb03db7320006 */
- 0.872215502247877139094, /* 0x0.df4983e1380657ff8 */
- 0.873920712852848668986, /* 0x0.dfb94490ffff77ffd */
- 0.875629257204025623884, /* 0x0.e0293d2f1cb01fff9 */
- 0.877341141814212965880, /* 0x0.e0996dd786fff0007 */
- 0.879056373217612985183, /* 0x0.e109d6a64f5d57ffc */
- 0.880774957955916648615, /* 0x0.e17a77b78e72a7ffe */
- 0.882496902590150900078, /* 0x0.e1eb5127722cc7ff8 */
- 0.884222213673356738383, /* 0x0.e25c63121fb0c8006 */
- 0.885950897802399772740, /* 0x0.e2cdad93ec5340003 */
- 0.887682961567391237685, /* 0x0.e33f30c925fb97ffb */
- 0.889418411575228162725, /* 0x0.e3b0ecce2d05ffff9 */
- 0.891157254447957902797, /* 0x0.e422e1bf727718006 */
- 0.892899496816652704641, /* 0x0.e4950fb9713fc7ffe */
- 0.894645145323828439008, /* 0x0.e50776d8b0e60fff8 */
- 0.896394206626591749641, /* 0x0.e57a1739c8fadfffc */
- 0.898146687421414902124, /* 0x0.e5ecf0f97c5798007 */
- 0.899902594367530173098, /* 0x0.e660043464e378005 */
- 0.901661934163603406867, /* 0x0.e6d3510747e150006 */
- 0.903424713533971135418, /* 0x0.e746d78f06cd97ffd */
- 0.905190939194458810123, /* 0x0.e7ba97e879c91fffc */
- 0.906960617885092856864, /* 0x0.e82e92309390b0007 */
- 0.908733756358986566306, /* 0x0.e8a2c6845544afffa */
- 0.910510361377119825629, /* 0x0.e9173500c8abc7ff8 */
- 0.912290439722343249336, /* 0x0.e98bddc30f98b0002 */
- 0.914073998177417412765, /* 0x0.ea00c0e84bc4c7fff */
- 0.915861043547953501680, /* 0x0.ea75de8db8094fffe */
- 0.917651582652244779397, /* 0x0.eaeb36d09d3137ffe */
- 0.919445622318405764159, /* 0x0.eb60c9ce4ed3dffff */
- 0.921243169397334638073, /* 0x0.ebd697a43995b0007 */
- 0.923044230737526172328, /* 0x0.ec4ca06fc7768fffa */
- 0.924848813220121135342, /* 0x0.ecc2e44e865b6fffb */
- 0.926656923710931002014, /* 0x0.ed39635df34e70006 */
- 0.928468569126343790092, /* 0x0.edb01dbbc2f5b7ffa */
- 0.930283756368834757725, /* 0x0.ee2713859aab57ffa */
- 0.932102492359406786818, /* 0x0.ee9e44d9342870004 */
- 0.933924784042873379360, /* 0x0.ef15b1d4635438005 */
- 0.935750638358567643520, /* 0x0.ef8d5a94f60f50007 */
- 0.937580062297704630580, /* 0x0.f0053f38f345cffff */
- 0.939413062815381727516, /* 0x0.f07d5fde3a2d98001 */
- 0.941249646905368053689, /* 0x0.f0f5bca2d481a8004 */
- 0.943089821583810716806, /* 0x0.f16e55a4e497d7ffe */
- 0.944933593864477061592, /* 0x0.f1e72b028a2827ffb */
- 0.946780970781518460559, /* 0x0.f2603cd9fb5430001 */
- 0.948631959382661205081, /* 0x0.f2d98b497d2a87ff9 */
- 0.950486566729423554277, /* 0x0.f353166f63e3dffff */
- 0.952344799896018723290, /* 0x0.f3ccde6a11ae37ffe */
- 0.954206665969085765512, /* 0x0.f446e357f66120000 */
- 0.956072172053890279009, /* 0x0.f4c12557964f0fff9 */
- 0.957941325265908139014, /* 0x0.f53ba48781046fffb */
- 0.959814132734539637840, /* 0x0.f5b66106555d07ffa */
- 0.961690601603558903308, /* 0x0.f6315af2c2027fffc */
- 0.963570739036113010927, /* 0x0.f6ac926b8aeb80004 */
- 0.965454552202857141381, /* 0x0.f728078f7c5008002 */
- 0.967342048278315158608, /* 0x0.f7a3ba7d66a908001 */
- 0.969233234469444204768, /* 0x0.f81fab543e1897ffb */
- 0.971128118008140250896, /* 0x0.f89bda33122c78007 */
- 0.973026706099345495256, /* 0x0.f9184738d4cf97ff8 */
- 0.974929006031422851235, /* 0x0.f994f284d3a5c0008 */
- 0.976835024947348973265, /* 0x0.fa11dc35bc7820002 */
- 0.978744770239899142285, /* 0x0.fa8f046b4fb7f8007 */
- 0.980658249138918636210, /* 0x0.fb0c6b449ab1cfff9 */
- 0.982575468959622777535, /* 0x0.fb8a10e1088fb7ffa */
- 0.984496437054508843888, /* 0x0.fc07f5602d79afffc */
- 0.986421160608523028820, /* 0x0.fc8618e0e55e47ffb */
- 0.988349647107594098099, /* 0x0.fd047b83571b1fffa */
- 0.990281903873210800357, /* 0x0.fd831d66f4c018002 */
- 0.992217938695037382475, /* 0x0.fe01fead3320bfff8 */
- 0.994157757657894713987, /* 0x0.fe811f703491e8006 */
- 0.996101369488558541238, /* 0x0.ff007fd5744490005 */
- 0.998048781093141101932, /* 0x0.ff801ffa9b9280007 */
- 1.000000000000000000000, /* 0x1.00000000000000000 */
- 1.001955033605393285965, /* 0x1.0080200565d29ffff */
- 1.003913889319761887310, /* 0x1.0100802aa0e80fff0 */
- 1.005876574715736104818, /* 0x1.01812090377240007 */
- 1.007843096764807100351, /* 0x1.020201541aad7fff6 */
- 1.009813464316352327214, /* 0x1.0283229c4c9820007 */
- 1.011787683565730677817, /* 0x1.030484836910a000e */
- 1.013765762469146736174, /* 0x1.0386272b9c077fffe */
- 1.015747708536026694351, /* 0x1.04080ab526304fff0 */
- 1.017733529475172815584, /* 0x1.048a2f412375ffff0 */
- 1.019723232714418781378, /* 0x1.050c94ef7ad5e000a */
- 1.021716825883923762690, /* 0x1.058f3be0f1c2d0004 */
- 1.023714316605201180057, /* 0x1.06122436442e2000e */
- 1.025715712440059545995, /* 0x1.06954e0fec63afff2 */
- 1.027721021151397406936, /* 0x1.0718b98f41c92fff6 */
- 1.029730250269221158939, /* 0x1.079c66d49bb2ffff1 */
- 1.031743407506447551857, /* 0x1.082056011a9230009 */
- 1.033760500517691527387, /* 0x1.08a487359ebd50002 */
- 1.035781537016238873464, /* 0x1.0928fa93490d4fff3 */
- 1.037806524719013578963, /* 0x1.09adb03b3e5b3000d */
- 1.039835471338248051878, /* 0x1.0a32a84e9e5760004 */
- 1.041868384612101516848, /* 0x1.0ab7e2eea5340ffff */
- 1.043905272300907460835, /* 0x1.0b3d603ca784f0009 */
- 1.045946142174331239262, /* 0x1.0bc3205a042060000 */
- 1.047991002016745332165, /* 0x1.0c4923682a086fffe */
- 1.050039859627715177527, /* 0x1.0ccf698898f3a000d */
- 1.052092722826109660856, /* 0x1.0d55f2dce5d1dfffb */
- 1.054149599440827866881, /* 0x1.0ddcbf86b09a5fff6 */
- 1.056210497317612961855, /* 0x1.0e63cfa7abc97fffd */
- 1.058275424318780855142, /* 0x1.0eeb23619c146fffb */
- 1.060344388322010722446, /* 0x1.0f72bad65714bffff */
- 1.062417397220589476718, /* 0x1.0ffa9627c38d30004 */
- 1.064494458915699715017, /* 0x1.1082b577d0eef0003 */
- 1.066575581342167566880, /* 0x1.110b18e893a90000a */
- 1.068660772440545025953, /* 0x1.1193c09c267610006 */
- 1.070750040138235936705, /* 0x1.121cacb4959befff6 */
- 1.072843392435016474095, /* 0x1.12a5dd543cf36ffff */
- 1.074940837302467588937, /* 0x1.132f529d59552000b */
- 1.077042382749654914030, /* 0x1.13b90cb250d08fff5 */
- 1.079148036789447484528, /* 0x1.14430bb58da3dfff9 */
- 1.081257807444460983297, /* 0x1.14cd4fc984c4a000e */
- 1.083371702785017154417, /* 0x1.1557d910df9c7000e */
- 1.085489730853784307038, /* 0x1.15e2a7ae292d30002 */
- 1.087611899742884524772, /* 0x1.166dbbc422d8c0004 */
- 1.089738217537583819804, /* 0x1.16f9157586772ffff */
- 1.091868692357631731528, /* 0x1.1784b4e533cacfff0 */
- 1.094003332327482702577, /* 0x1.18109a360fc23fff2 */
- 1.096142145591650907149, /* 0x1.189cc58b155a70008 */
- 1.098285140311341168136, /* 0x1.1929370751ea50002 */
- 1.100432324652149906842, /* 0x1.19b5eecdd79cefff0 */
- 1.102583706811727015711, /* 0x1.1a42ed01dbdba000e */
- 1.104739294993289488947, /* 0x1.1ad031c69a2eafff0 */
- 1.106899097422573863281, /* 0x1.1b5dbd3f66e120003 */
- 1.109063122341542140286, /* 0x1.1beb8f8fa8150000b */
- 1.111231377994659874592, /* 0x1.1c79a8dac6ad0fff4 */
- 1.113403872669181282605, /* 0x1.1d0809445a97ffffc */
- 1.115580614653132185460, /* 0x1.1d96b0effc9db000e */
- 1.117761612217810673898, /* 0x1.1e25a001332190000 */
- 1.119946873713312474002, /* 0x1.1eb4d69bdb2a9fff1 */
- 1.122136407473298902480, /* 0x1.1f4454e3bfae00006 */
- 1.124330221845670330058, /* 0x1.1fd41afcbb48bfff8 */
- 1.126528325196519908506, /* 0x1.2064290abc98c0001 */
- 1.128730725913251964394, /* 0x1.20f47f31c9aa7000f */
- 1.130937432396844410880, /* 0x1.21851d95f776dfff0 */
- 1.133148453059692917203, /* 0x1.2216045b6784efffa */
- 1.135363796355857157764, /* 0x1.22a733a6692ae0004 */
- 1.137583470716100553249, /* 0x1.2338ab9b3221a0004 */
- 1.139807484614418608939, /* 0x1.23ca6c5e27aadfff7 */
- 1.142035846532929888057, /* 0x1.245c7613b7f6c0004 */
- 1.144268564977221958089, /* 0x1.24eec8e06b035000c */
- 1.146505648458203463465, /* 0x1.258164e8cea85fff8 */
- 1.148747105501412235671, /* 0x1.26144a5180d380009 */
- 1.150992944689175123667, /* 0x1.26a7793f5de2efffa */
- 1.153243174560058870217, /* 0x1.273af1d712179000d */
- 1.155497803703682491111, /* 0x1.27ceb43d81d42fff1 */
- 1.157756840726344771440, /* 0x1.2862c097a3d29000c */
- 1.160020294239811677834, /* 0x1.28f7170a74cf4fff1 */
- 1.162288172883275239058, /* 0x1.298bb7bb0faed0004 */
- 1.164560485298402170388, /* 0x1.2a20a2ce920dffff4 */
- 1.166837240167474476460, /* 0x1.2ab5d86a4631ffff6 */
- 1.169118446164539637555, /* 0x1.2b4b58b36d5220009 */
- 1.171404112007080167155, /* 0x1.2be123cf786790002 */
- 1.173694246390975415341, /* 0x1.2c7739e3c0aac000d */
- 1.175988858069749065617, /* 0x1.2d0d9b15deb58fff6 */
- 1.178287955789017793514, /* 0x1.2da4478b627040002 */
- 1.180591548323240091978, /* 0x1.2e3b3f69fb794fffc */
- 1.182899644456603782686, /* 0x1.2ed282d76421d0004 */
- 1.185212252993012693694, /* 0x1.2f6a11f96c685fff3 */
- 1.187529382762033236513, /* 0x1.3001ecf60082ffffa */
- 1.189851042595508889847, /* 0x1.309a13f30f28a0004 */
- 1.192177241354644978669, /* 0x1.31328716a758cfff7 */
- 1.194507987909589896687, /* 0x1.31cb4686e1e85fffb */
- 1.196843291137896336843, /* 0x1.32645269dfd04000a */
- 1.199183159977805113226, /* 0x1.32fdaae604c39000f */
- 1.201527603343041317132, /* 0x1.339750219980dfff3 */
- 1.203876630171082595692, /* 0x1.3431424300e480007 */
- 1.206230249419600664189, /* 0x1.34cb8170b3fee000e */
- 1.208588470077065268869, /* 0x1.35660dd14dbd4fffc */
- 1.210951301134513435915, /* 0x1.3600e78b6bdfc0005 */
- 1.213318751604272271958, /* 0x1.369c0ec5c38ebfff2 */
- 1.215690830512196507537, /* 0x1.373783a718d29000f */
- 1.218067546930756250870, /* 0x1.37d3465662f480007 */
- 1.220448909901335365929, /* 0x1.386f56fa770fe0008 */
- 1.222834928513994334780, /* 0x1.390bb5ba5fc540004 */
- 1.225225611877684750397, /* 0x1.39a862bd3c7a8fff3 */
- 1.227620969111500981433, /* 0x1.3a455e2a37bcafffd */
- 1.230021009336254911271, /* 0x1.3ae2a8287dfbefff6 */
- 1.232425741726685064472, /* 0x1.3b8040df76f39fffa */
- 1.234835175450728295084, /* 0x1.3c1e287682e48fff1 */
- 1.237249319699482263931, /* 0x1.3cbc5f151b86bfff8 */
- 1.239668183679933477545, /* 0x1.3d5ae4e2cc0a8000f */
- 1.242091776620540377629, /* 0x1.3df9ba07373bf0006 */
- 1.244520107762172811399, /* 0x1.3e98deaa0d8cafffe */
- 1.246953186383919165383, /* 0x1.3f3852f32973efff0 */
- 1.249391019292643401078, /* 0x1.3fd816ffc72b90001 */
- 1.251833623164381181797, /* 0x1.40782b17863250005 */
- 1.254280999953110153911, /* 0x1.41188f42caf400000 */
- 1.256733161434815393410, /* 0x1.41b943b42945bfffd */
- 1.259190116985283935980, /* 0x1.425a4893e5f10000a */
- 1.261651875958665236542, /* 0x1.42fb9e0a2df4c0009 */
- 1.264118447754797758244, /* 0x1.439d443f608c4fff9 */
- 1.266589841787181258708, /* 0x1.443f3b5bebf850008 */
- 1.269066067469190262045, /* 0x1.44e183883e561fff7 */
- 1.271547134259576328224, /* 0x1.45841cecf7a7a0001 */
- 1.274033051628237434048, /* 0x1.462707b2c43020009 */
- 1.276523829025464573684, /* 0x1.46ca44023aa410007 */
- 1.279019475999373156531, /* 0x1.476dd2045d46ffff0 */
- 1.281520002043128991825, /* 0x1.4811b1e1f1f19000b */
- 1.284025416692967214122, /* 0x1.48b5e3c3edd74fff4 */
- 1.286535729509738823464, /* 0x1.495a67d3613c8fff7 */
- 1.289050950070396384145, /* 0x1.49ff3e396e19d000b */
- 1.291571087985403654081, /* 0x1.4aa4671f5b401fff1 */
- 1.294096152842774794011, /* 0x1.4b49e2ae56d19000d */
- 1.296626154297237043484, /* 0x1.4befb10fd84a3fff4 */
- 1.299161101984141142272, /* 0x1.4c95d26d41d84fff8 */
- 1.301701005575179204100, /* 0x1.4d3c46f01d9f0fff3 */
- 1.304245874766450485904, /* 0x1.4de30ec21097d0003 */
- 1.306795719266019562007, /* 0x1.4e8a2a0ccce3d0002 */
- 1.309350548792467483458, /* 0x1.4f3198fa10346fff5 */
- 1.311910373099227200545, /* 0x1.4fd95bb3be8cffffd */
- 1.314475201942565174546, /* 0x1.50817263bf0e5fffb */
- 1.317045045107389400535, /* 0x1.5129dd3418575000e */
- 1.319619912422941299109, /* 0x1.51d29c4f01c54ffff */
- 1.322199813675649204855, /* 0x1.527bafde83a310009 */
- 1.324784758729532718739, /* 0x1.5325180cfb8b3fffd */
- 1.327374757430096474625, /* 0x1.53ced504b2bd0fff4 */
- 1.329969819671041886272, /* 0x1.5478e6f02775e0001 */
- 1.332569955346704748651, /* 0x1.55234df9d8a59fff8 */
- 1.335175174370685002822, /* 0x1.55ce0a4c5a6a9fff6 */
- 1.337785486688218616860, /* 0x1.56791c1263abefff7 */
- 1.340400902247843806217, /* 0x1.57248376aef21fffa */
- 1.343021431036279800211, /* 0x1.57d040a420c0bfff3 */
- 1.345647083048053138662, /* 0x1.587c53c5a630f0002 */
- 1.348277868295411074918, /* 0x1.5928bd063fd7bfff9 */
- 1.350913796821875845231, /* 0x1.59d57c9110ad60006 */
- 1.353554878672557082439, /* 0x1.5a8292913d68cfffc */
- 1.356201123929036356254, /* 0x1.5b2fff3212db00007 */
- 1.358852542671913132777, /* 0x1.5bddc29edcc06fff3 */
- 1.361509145047255398051, /* 0x1.5c8bdd032ed16000f */
- 1.364170941142184734180, /* 0x1.5d3a4e8a5bf61fff4 */
- 1.366837941171020309735, /* 0x1.5de9176042f1effff */
- 1.369510155261156381121, /* 0x1.5e9837b062f4e0005 */
- 1.372187593620959988833, /* 0x1.5f47afa69436cfff1 */
- 1.374870266463378287715, /* 0x1.5ff77f6eb3f8cfffd */
- 1.377558184010425845733, /* 0x1.60a7a734a9742fff9 */
- 1.380251356531521533853, /* 0x1.6158272490016000c */
- 1.382949794301995272203, /* 0x1.6208ff6a8978a000f */
- 1.385653507605306700170, /* 0x1.62ba3032c0a280004 */
- 1.388362506772382154503, /* 0x1.636bb9a994784000f */
- 1.391076802081129493127, /* 0x1.641d9bfb29a7bfff6 */
- 1.393796403973427855412, /* 0x1.64cfd7545928b0002 */
- 1.396521322756352656542, /* 0x1.65826be167badfff8 */
- 1.399251568859207761660, /* 0x1.663559cf20826000c */
- 1.401987152677323100733, /* 0x1.66e8a14a29486fffc */
- 1.404728084651919228815, /* 0x1.679c427f5a4b6000b */
- 1.407474375243217723560, /* 0x1.68503d9ba0add000f */
- 1.410226034922914983815, /* 0x1.690492cbf6303fff9 */
- 1.412983074197955213304, /* 0x1.69b9423d7b548fff6 */
-};
diff --git a/sysdeps/ieee754/dbl-64/t_exp2.h b/sysdeps/ieee754/dbl-64/t_exp2.h
deleted file mode 100644
index 1fd73338cf..0000000000
--- a/sysdeps/ieee754/dbl-64/t_exp2.h
+++ /dev/null
@@ -1,585 +0,0 @@
-/* These values are accurate to 52+12 bits when represented as
- a double. */
-static const double exp2_accuratetable[512] = {
-0.707106781187802013759 /* 0x0.b504f333fb3f80007 */,
-0.708064712808760599040 /* 0x0.b543baa0f71b38000 */,
-0.709023942160304065938 /* 0x0.b58297d3a8d518002 */,
-0.709984470998547667624 /* 0x0.b5c18ad39b4ba0001 */,
-0.710946301084324217006 /* 0x0.b60093a85e8d30001 */,
-0.711909434180505784637 /* 0x0.b63fb25984e628005 */,
-0.712873872052760648733 /* 0x0.b67ee6eea3b5f8003 */,
-0.713839616467838999908 /* 0x0.b6be316f518c98001 */,
-0.714806669195984345523 /* 0x0.b6fd91e328d148007 */,
-0.715775032009894562898 /* 0x0.b73d0851c69e20002 */,
-0.716744706683768884058 /* 0x0.b77c94c2c9b3d0003 */,
-0.717715694995770148178 /* 0x0.b7bc373dd52eb0003 */,
-0.718687998724665488852 /* 0x0.b7fbefca8cd530004 */,
-0.719661619652575468291 /* 0x0.b83bbe70981da8001 */,
-0.720636559564428180758 /* 0x0.b87ba337a194b0006 */,
-0.721612820246623098989 /* 0x0.b8bb9e27556508004 */,
-0.722590403488338473025 /* 0x0.b8fbaf4762c798006 */,
-0.723569311081411870036 /* 0x0.b93bd69f7be1d0000 */,
-0.724549544820974333906 /* 0x0.b97c1437567828007 */,
-0.725531106502312561633 /* 0x0.b9bc6816a87ae8002 */,
-0.726513997924421062181 /* 0x0.b9fcd2452bee00000 */,
-0.727498220889519875430 /* 0x0.ba3d52ca9e6148002 */,
-0.728483777200401694265 /* 0x0.ba7de9aebe05c8003 */,
-0.729470668664712662563 /* 0x0.babe96f94e62a8002 */,
-0.730458897090379144517 /* 0x0.baff5ab2134df0004 */,
-0.731448464287988597833 /* 0x0.bb4034e0d38ab0000 */,
-0.732439372072965166897 /* 0x0.bb81258d5b2d60001 */,
-0.733431622260458326859 /* 0x0.bbc22cbf75fd28001 */,
-0.734425216668725511232 /* 0x0.bc034a7ef32c00001 */,
-0.735420157118880535324 /* 0x0.bc447ed3a50fe0005 */,
-0.736416445434497690674 /* 0x0.bc85c9c560b350001 */,
-0.737414083433310718618 /* 0x0.bcc72b5bf4b4e0000 */,
-0.738413072966152328496 /* 0x0.bd08a39f5417a8007 */,
-0.739413415848264365956 /* 0x0.bd4a32974abcd0002 */,
-0.740415113911250699637 /* 0x0.bd8bd84bb68300002 */,
-0.741418168994518067562 /* 0x0.bdcd94c47ddd30003 */,
-0.742422582936659858376 /* 0x0.be0f6809865968006 */,
-0.743428357577745613238 /* 0x0.be515222b72530003 */,
-0.744435494762383687126 /* 0x0.be935317fc6ba0002 */,
-0.745443996335090397492 /* 0x0.bed56af1423de8001 */,
-0.746453864145572798553 /* 0x0.bf1799b67a6248007 */,
-0.747465100043933849969 /* 0x0.bf59df6f970e70002 */,
-0.748477705883256683178 /* 0x0.bf9c3c248dbee8001 */,
-0.749491683518965001732 /* 0x0.bfdeafdd568308000 */,
-0.750507034813367890373 /* 0x0.c0213aa1f0fc38004 */,
-0.751523761622240105153 /* 0x0.c063dc7a559ca0003 */,
-0.752541865811731880422 /* 0x0.c0a6956e883ed8000 */,
-0.753561349247157341600 /* 0x0.c0e965868bd220006 */,
-0.754582213796583967110 /* 0x0.c12c4cca664cb8002 */,
-0.755604461332336940791 /* 0x0.c16f4b42225350006 */,
-0.756628093726406381068 /* 0x0.c1b260f5ca2c48002 */,
-0.757653112855631305506 /* 0x0.c1f58ded6d72d8001 */,
-0.758679520599333412360 /* 0x0.c238d2311e7d08001 */,
-0.759707318837184453227 /* 0x0.c27c2dc8f00368005 */,
-0.760736509456435783249 /* 0x0.c2bfa0bcfd1400000 */,
-0.761767094336480043995 /* 0x0.c3032b155818d0000 */,
-0.762799075372231349951 /* 0x0.c346ccda248cc0001 */,
-0.763832454453522768941 /* 0x0.c38a8613805488005 */,
-0.764867233473625618441 /* 0x0.c3ce56c98d1ca8005 */,
-0.765903414329434539816 /* 0x0.c4123f04708d80002 */,
-0.766940998920452976510 /* 0x0.c4563ecc532dc0001 */,
-0.767979989148100838946 /* 0x0.c49a56295f9f88006 */,
-0.769020386915772125040 /* 0x0.c4de8523c2b0a0001 */,
-0.770062194131770905170 /* 0x0.c522cbc3ae94e0003 */,
-0.771105412703856241146 /* 0x0.c5672a1154e6b8004 */,
-0.772150044545352520777 /* 0x0.c5aba014ed5f18003 */,
-0.773196091570364285606 /* 0x0.c5f02dd6b09288003 */,
-0.774243555696622731700 /* 0x0.c634d35edb1260003 */,
-0.775292438842697939641 /* 0x0.c67990b5aa5c18004 */,
-0.776342742931542928455 /* 0x0.c6be65e360bed8000 */,
-0.777394469888802008854 /* 0x0.c70352f0437f50004 */,
-0.778447621641124243320 /* 0x0.c74857e498fd00006 */,
-0.779502200118583399303 /* 0x0.c78d74c8ab5b60000 */,
-0.780558207255445668515 /* 0x0.c7d2a9a4c959f8000 */,
-0.781615644985491186966 /* 0x0.c817f681412f80002 */,
-0.782674515247667956808 /* 0x0.c85d5b6666c150006 */,
-0.783734819983036512536 /* 0x0.c8a2d85c904760003 */,
-0.784796561133562109454 /* 0x0.c8e86d6c14f850002 */,
-0.785859740645942328471 /* 0x0.c92e1a9d513ec8002 */,
-0.786924360469767103536 /* 0x0.c973dff8a4b390007 */,
-0.787990422552312885808 /* 0x0.c9b9bd866c6440007 */,
-0.789057928854407064640 /* 0x0.c9ffb34f1444b0001 */,
-0.790126881326406182996 /* 0x0.ca45c15afcc570001 */,
-0.791197281930050233534 /* 0x0.ca8be7b292db38000 */,
-0.792269132620954885659 /* 0x0.cad2265e3cbee8000 */,
-0.793342435380726906957 /* 0x0.cb187d667d3d38006 */,
-0.794417192158282659010 /* 0x0.cb5eecd3b33158006 */,
-0.795493404931386649540 /* 0x0.cba574ae5d2e80001 */,
-0.796571075671306805268 /* 0x0.cbec14fef2a348004 */,
-0.797650206352955137846 /* 0x0.cc32cdcdef0000000 */,
-0.798730798954342069432 /* 0x0.cc799f23d11d18000 */,
-0.799812855456121796232 /* 0x0.ccc089091abb28004 */,
-0.800896377841454287795 /* 0x0.cd078b86505c18003 */,
-0.801981368096190028208 /* 0x0.cd4ea6a3f97720007 */,
-0.803067828208752554378 /* 0x0.cd95da6aa057b8007 */,
-0.804155760170129796375 /* 0x0.cddd26e2d21b28001 */,
-0.805245165974338261710 /* 0x0.ce248c151f3330001 */,
-0.806336047619038653883 /* 0x0.ce6c0a0a1c1350001 */,
-0.807428407102107836855 /* 0x0.ceb3a0ca5d6be0006 */,
-0.808522246427078927792 /* 0x0.cefb505e7e2550007 */,
-0.809617567597010201484 /* 0x0.cf4318cf18a268002 */,
-0.810714372621179513182 /* 0x0.cf8afa24ce1c98004 */,
-0.811812663508675536069 /* 0x0.cfd2f4683f9810005 */,
-0.812912442272482604912 /* 0x0.d01b07a2126188003 */,
-0.814013710929394895825 /* 0x0.d06333daeff618001 */,
-0.815116471495287542325 /* 0x0.d0ab791b80d028006 */,
-0.816220725993571205593 /* 0x0.d0f3d76c75b330000 */,
-0.817326476447408967199 /* 0x0.d13c4ed67f1cf8000 */,
-0.818433724883006474832 /* 0x0.d184df6250e3b0001 */,
-0.819542473330909460055 /* 0x0.d1cd8918a3a328004 */,
-0.820652723822034690935 /* 0x0.d2164c02305fa0002 */,
-0.821764478391968422618 /* 0x0.d25f2827b53fb0005 */,
-0.822877739077315761840 /* 0x0.d2a81d91f188b8000 */,
-0.823992507918612782109 /* 0x0.d2f12c49a8d290005 */,
-0.825108786960634610365 /* 0x0.d33a5457a35e40003 */,
-0.826226578247117093869 /* 0x0.d38395c4a84848007 */,
-0.827345883828319528258 /* 0x0.d3ccf09985d958004 */,
-0.828466705754248966560 /* 0x0.d41664df0a1320005 */,
-0.829589046080638992111 /* 0x0.d45ff29e094330000 */,
-0.830712906863802391671 /* 0x0.d4a999df585a20005 */,
-0.831838290163696481037 /* 0x0.d4f35aabd04a60006 */,
-0.832965198041969556729 /* 0x0.d53d350c4be258002 */,
-0.834093632565442222342 /* 0x0.d5872909aba050007 */,
-0.835223595802037643865 /* 0x0.d5d136acd138e8006 */,
-0.836355089820669306292 /* 0x0.d61b5dfe9f7780004 */,
-0.837488116698010487424 /* 0x0.d6659f0801afa8005 */,
-0.838622678508982644113 /* 0x0.d6aff9d1e147d8004 */,
-0.839758777333464490056 /* 0x0.d6fa6e652d19e0000 */,
-0.840896415254110962690 /* 0x0.d744fccad70d00003 */,
-0.842035594355151628676 /* 0x0.d78fa50bd2c3b0000 */,
-0.843176316724478125433 /* 0x0.d7da673117e730007 */,
-0.844318584453106590905 /* 0x0.d8254343a19038003 */,
-0.845462399634695271912 /* 0x0.d870394c6dbf30003 */,
-0.846607764365415071965 /* 0x0.d8bb49547d37c0004 */,
-0.847754680744707056494 /* 0x0.d9067364d45608003 */,
-0.848903150873708822763 /* 0x0.d951b7867953b0006 */,
-0.850053176859071113491 /* 0x0.d99d15c2787a30006 */,
-0.851204760807439786431 /* 0x0.d9e88e21de11a0003 */,
-0.852357904828824897169 /* 0x0.da3420adba1508003 */,
-0.853512611037803181642 /* 0x0.da7fcd6f2184d8005 */,
-0.854668881550406100980 /* 0x0.dacb946f2afaf8000 */,
-0.855826718478671755185 /* 0x0.db1775b6e8ad48000 */,
-0.856986123964844970247 /* 0x0.db63714f8e0818006 */,
-0.858147100114499461478 /* 0x0.dbaf87422625b8000 */,
-0.859309649060962410524 /* 0x0.dbfbb797daa460002 */,
-0.860473772936213743282 /* 0x0.dc480259d3a710001 */,
-0.861639473872910177676 /* 0x0.dc9467913a0f48006 */,
-0.862806754008130227807 /* 0x0.dce0e7473b9b28003 */,
-0.863975615481124226159 /* 0x0.dd2d8185086c20006 */,
-0.865146060433749419813 /* 0x0.dd7a3653d38168005 */,
-0.866318091005120138881 /* 0x0.ddc705bcccd628000 */,
-0.867491709362415264210 /* 0x0.de13efc9434100004 */,
-0.868666917636779056818 /* 0x0.de60f4825df9b8005 */,
-0.869843717989716047624 /* 0x0.deae13f16599c0003 */,
-0.871022112578215268471 /* 0x0.defb4e1f9dc388002 */,
-0.872202103559697183859 /* 0x0.df48a3164a92f0001 */,
-0.873383693097737778847 /* 0x0.df9612deb6e878007 */,
-0.874566883362160263365 /* 0x0.dfe39d82348310001 */,
-0.875751676517234511901 /* 0x0.e031430a0f0688000 */,
-0.876938074732511840819 /* 0x0.e07f037f97e548001 */,
-0.878126080186539592654 /* 0x0.e0ccdeec2a75e0006 */,
-0.879315695055312818168 /* 0x0.e11ad5591f4078001 */,
-0.880506921518618312932 /* 0x0.e168e6cfd2f880004 */,
-0.881699761760385225541 /* 0x0.e1b71359a6df60003 */,
-0.882894217964411143207 /* 0x0.e2055afffc1178000 */,
-0.884090292325693805080 /* 0x0.e253bdcc3ffbb8001 */,
-0.885287987031581180559 /* 0x0.e2a23bc7d7a1d8002 */,
-0.886487304278189114386 /* 0x0.e2f0d4fc31ab80004 */,
-0.887688246263368285778 /* 0x0.e33f8972bea8a8005 */,
-0.888890815189881999840 /* 0x0.e38e5934f49010007 */,
-0.890095013257492739835 /* 0x0.e3dd444c460bd0007 */,
-0.891300842677948068626 /* 0x0.e42c4ac232f380000 */,
-0.892508305659222567226 /* 0x0.e47b6ca036f8b8005 */,
-0.893717404414979710310 /* 0x0.e4caa9efd40e58002 */,
-0.894928141160697743242 /* 0x0.e51a02ba8e2610007 */,
-0.896140518115016826430 /* 0x0.e5697709ecab90000 */,
-0.897354537501434679237 /* 0x0.e5b906e77c61d0006 */,
-0.898570201543732793877 /* 0x0.e608b25cca5ba8005 */,
-0.899787512470129891014 /* 0x0.e6587973688ce8002 */,
-0.901006472512270728537 /* 0x0.e6a85c34ecadb8000 */,
-0.902227083902570559127 /* 0x0.e6f85aaaed4f20006 */,
-0.903449348881299796343 /* 0x0.e74874df09a530003 */,
-0.904673269686823378091 /* 0x0.e798aadadecba0007 */,
-0.905898848559668845585 /* 0x0.e7e8fca80c3ee0001 */,
-0.907126087750156795426 /* 0x0.e8396a503c3fe0005 */,
-0.908354989505901100354 /* 0x0.e889f3dd1615b0002 */,
-0.909585556079328783087 /* 0x0.e8da9958465228007 */,
-0.910817789726044213523 /* 0x0.e92b5acb7d0578001 */,
-0.912051692703457872481 /* 0x0.e97c38406c3c30003 */,
-0.913287267274154990210 /* 0x0.e9cd31c0cbb370001 */,
-0.914524515702244578108 /* 0x0.ea1e475654d540000 */,
-0.915763440256158633982 /* 0x0.ea6f790ac5cc78001 */,
-0.917004043205012497909 /* 0x0.eac0c6e7dd8448007 */,
-0.918246326823137892807 /* 0x0.eb1230f760a428007 */,
-0.919490293387826285200 /* 0x0.eb63b7431714a8007 */,
-0.920735945178816406225 /* 0x0.ebb559d4cb6f30007 */,
-0.921983284479243714322 /* 0x0.ec0718b64c0940002 */,
-0.923232313574974705626 /* 0x0.ec58f3f16a3910002 */,
-0.924483034755387955725 /* 0x0.ecaaeb8ffb3168005 */,
-0.925735450311948926408 /* 0x0.ecfcff9bd67078000 */,
-0.926989562542820610982 /* 0x0.ed4f301edad1a0007 */,
-0.928245373740515189457 /* 0x0.eda17d22e0f9b0001 */,
-0.929502886213858126045 /* 0x0.edf3e6b1d37d40001 */,
-0.930762102264245716494 /* 0x0.ee466cd594c5c8005 */,
-0.932023024199046146183 /* 0x0.ee990f980dcdb0005 */,
-0.933285654329454095216 /* 0x0.eeebcf032bc470007 */,
-0.934549994971191289044 /* 0x0.ef3eab20e0d3c0001 */,
-0.935816048439005676599 /* 0x0.ef91a3fb1e1340004 */,
-0.937083817055075818404 /* 0x0.efe4b99bdcc618006 */,
-0.938353303143720007819 /* 0x0.f037ec0d1889b8000 */,
-0.939624509028518128972 /* 0x0.f08b3b58cc2bb8006 */,
-0.940897437041863904384 /* 0x0.f0dea788fc2a90000 */,
-0.942172089516254085427 /* 0x0.f13230a7ad21b8003 */,
-0.943448468787511540534 /* 0x0.f185d6bee754e0006 */,
-0.944726577195256100890 /* 0x0.f1d999d8b73478005 */,
-0.946006417082291717338 /* 0x0.f22d79ff2cb130000 */,
-0.947287990793413858827 /* 0x0.f281773c59ec48007 */,
-0.948571300678290207925 /* 0x0.f2d5919a566268001 */,
-0.949856349088629370320 /* 0x0.f329c9233bceb0001 */,
-0.951143138379053731954 /* 0x0.f37e1de1272068002 */,
-0.952431670908847949364 /* 0x0.f3d28fde3a6728006 */,
-0.953721949039916472305 /* 0x0.f4271f249a93f0001 */,
-0.955013975135367898520 /* 0x0.f47bcbbe6deab0001 */,
-0.956307751564417496418 /* 0x0.f4d095b5e16638004 */,
-0.957603280698967163097 /* 0x0.f5257d1524f590006 */,
-0.958900564911197350604 /* 0x0.f57a81e668d628000 */,
-0.960199606581278120057 /* 0x0.f5cfa433e60e50007 */,
-0.961500408088936442422 /* 0x0.f624e407d527a0007 */,
-0.962802971817578789903 /* 0x0.f67a416c72b760006 */,
-0.964107300155846558292 /* 0x0.f6cfbc6c011458004 */,
-0.965413395493874504368 /* 0x0.f7255510c439a8002 */,
-0.966721260225105960572 /* 0x0.f77b0b6503c5b8006 */,
-0.968030896745834645873 /* 0x0.f7d0df730a7940005 */,
-0.969342307458006424716 /* 0x0.f826d145294be8003 */,
-0.970655494764855020231 /* 0x0.f87ce0e5b29fd8000 */,
-0.971970461071268720958 /* 0x0.f8d30e5efaa8f0004 */,
-0.973287208789983648852 /* 0x0.f92959bb5e3c08001 */,
-0.974605740331924708124 /* 0x0.f97fc305383028004 */,
-0.975926058115625383329 /* 0x0.f9d64a46ebb9f8004 */,
-0.977248164559556209435 /* 0x0.fa2cef8adbfc68004 */,
-0.978572062087848637573 /* 0x0.fa83b2db7253d0007 */,
-0.979897753126343307191 /* 0x0.fada944319fda0005 */,
-0.981225240104636631254 /* 0x0.fb3193cc425870002 */,
-0.982554525455618277276 /* 0x0.fb88b1815e61d0003 */,
-0.983885611617111077747 /* 0x0.fbdfed6ce683e0007 */,
-0.985218501026348891812 /* 0x0.fc3747995282f8006 */,
-0.986553196127724962867 /* 0x0.fc8ec0112202a0005 */,
-0.987889699367056062238 /* 0x0.fce656ded63710002 */,
-0.989228013193998778636 /* 0x0.fd3e0c0cf48d50005 */,
-0.990568140061241164686 /* 0x0.fd95dfa605c7b0003 */,
-0.991910082424819927754 /* 0x0.fdedd1b4965710004 */,
-0.993253842749249660216 /* 0x0.fe45e2433bfea0000 */,
-0.994599423484053835071 /* 0x0.fe9e115c7c05f0005 */,
-0.995946827107488830167 /* 0x0.fef65f0afb4c28006 */,
-0.997296056085008264529 /* 0x0.ff4ecb59509cc8001 */,
-0.998647112892057764479 /* 0x0.ffa756521dbfd0007 */,
-1.000000000000000000000 /* 0x1.00000000000000000 */,
-1.001354719891689004659 /* 0x1.0058c86da14aa0005 */,
-1.002711275050312211844 /* 0x1.00b1afa5abead0003 */,
-1.004069667960743483835 /* 0x1.010ab5b2cc0660009 */,
-1.005429901112333324093 /* 0x1.0163da9fb2af30008 */,
-1.006791976999887428009 /* 0x1.01bd1e7716f6a0008 */,
-1.008155898118476168101 /* 0x1.02168143b03890006 */,
-1.009521666967782227439 /* 0x1.027003103ae320002 */,
-1.010889286051850133326 /* 0x1.02c9a3e7783030002 */,
-1.012258757875921233497 /* 0x1.032363d42aaa8000e */,
-1.013630084952214405194 /* 0x1.037d42e11c88d0000 */,
-1.015003269791313389451 /* 0x1.03d741191635a0001 */,
-1.016378314911229763267 /* 0x1.04315e86e84630008 */,
-1.017755222831652872635 /* 0x1.048b9b35652800002 */,
-1.019133996077934645224 /* 0x1.04e5f72f65827000b */,
-1.020514637175266248212 /* 0x1.0540727fc1cfa0006 */,
-1.021897148653734488385 /* 0x1.059b0d3157ebb0002 */,
-1.023281533050062419584 /* 0x1.05f5c74f0cfeb0002 */,
-1.024667792897328677539 /* 0x1.0650a0e3c22ee0003 */,
-1.026055930738840826806 /* 0x1.06ab99fa63e1b0008 */,
-1.027445949118511947550 /* 0x1.0706b29ddf2700009 */,
-1.028837850584049418178 /* 0x1.0761ead9253ab0009 */,
-1.030231637685799839262 /* 0x1.07bd42b72a3f80008 */,
-1.031627312979383592802 /* 0x1.0818ba42e824a000c */,
-1.033024879021186448496 /* 0x1.0874518759b0b0008 */,
-1.034424338374263729911 /* 0x1.08d0088f80ffa0006 */,
-1.035825693601787333992 /* 0x1.092bdf66604e30005 */,
-1.037228947273990842283 /* 0x1.0987d617019cd000a */,
-1.038634101961269928846 /* 0x1.09e3ecac6f199000f */,
-1.040041160239590700707 /* 0x1.0a402331b91270002 */,
-1.041450124688240164200 /* 0x1.0a9c79b1f37c3000b */,
-1.042860997889083929381 /* 0x1.0af8f038352160000 */,
-1.044273782427270314011 /* 0x1.0b5586cf986890006 */,
-1.045688480893644856116 /* 0x1.0bb23d833dfbf0006 */,
-1.047105095879385272564 /* 0x1.0c0f145e46e330007 */,
-1.048523629981608529302 /* 0x1.0c6c0b6bdaadc000f */,
-1.049944085800634585634 /* 0x1.0cc922b72470a000f */,
-1.051366465939483019223 /* 0x1.0d265a4b5238b0007 */,
-1.052790773004648849929 /* 0x1.0d83b23395e510002 */,
-1.054217009607077093512 /* 0x1.0de12a7b263970006 */,
-1.055645178360430591625 /* 0x1.0e3ec32d3cf680000 */,
-1.057075281882416506511 /* 0x1.0e9c7c55184f5000e */,
-1.058507322794714378170 /* 0x1.0efa55fdfad51000a */,
-1.059941303721639416236 /* 0x1.0f58503329fed0003 */,
-1.061377227289284297385 /* 0x1.0fb66affed37f0000 */,
-1.062815096132297298980 /* 0x1.1014a66f95540000c */,
-1.064254912884593951029 /* 0x1.1073028d725850007 */,
-1.065696680185205469411 /* 0x1.10d17f64d9ea2000b */,
-1.067140400676658718053 /* 0x1.11301d012586a0007 */,
-1.068586077004890055886 /* 0x1.118edb6db26ab0003 */,
-1.070033711820396415998 /* 0x1.11edbab5e2d6e000b */,
-1.071483307775789262099 /* 0x1.124cbae51b5ef0001 */,
-1.072934867526001312439 /* 0x1.12abdc06c3240000c */,
-1.074388393734249103080 /* 0x1.130b1e264a62e0005 */,
-1.075843889063253344684 /* 0x1.136a814f20ccd0003 */,
-1.077301356179926061823 /* 0x1.13ca058cbaaed000b */,
-1.078760797756675327056 /* 0x1.1429aaea9260e000e */,
-1.080222216468626150775 /* 0x1.148971742537c0009 */,
-1.081685614993597610617 /* 0x1.14e95934f37e8000b */,
-1.083150996013011013776 /* 0x1.1549623881762000d */,
-1.084618362213087383633 /* 0x1.15a98c8a58a6a000b */,
-1.086087716284427351384 /* 0x1.1609d8360768c0008 */,
-1.087559060917626885283 /* 0x1.166a45471c13f0008 */,
-1.089032398810997337465 /* 0x1.16cad3c92d7b50009 */,
-1.090507732647478578212 /* 0x1.172b83c7c18b5000f */,
-1.091985065182095926460 /* 0x1.178c554ead72a000c */,
-1.093464399073070136880 /* 0x1.17ed48695befe000c */,
-1.094945737045367906172 /* 0x1.184e5d23812500007 */,
-1.096429081816546080591 /* 0x1.18af9388c90e40005 */,
-1.097914436104650892651 /* 0x1.1910eba4e031a0001 */,
-1.099401802629782043408 /* 0x1.19726583755720003 */,
-1.100891184121537858001 /* 0x1.19d4013041b860007 */,
-1.102382583308144647940 /* 0x1.1a35beb6fd0cd0007 */,
-1.103876002922312915544 /* 0x1.1a979e2363fa10000 */,
-1.105371445702084232160 /* 0x1.1af99f8139025000e */,
-1.106868914387219016199 /* 0x1.1b5bc2dc408b9000e */,
-1.108368411723785085252 /* 0x1.1bbe084045eb30002 */,
-1.109869940458469095340 /* 0x1.1c206fb91524c000e */,
-1.111373503344554869449 /* 0x1.1c82f952817cc0001 */,
-1.112879103137133007859 /* 0x1.1ce5a51860344000f */,
-1.114386742595953938610 /* 0x1.1d4873168babf000e */,
-1.115896424484008608911 /* 0x1.1dab6358e1d4a000f */,
-1.117408151567338414664 /* 0x1.1e0e75eb43f9c000c */,
-1.118921926613465345265 /* 0x1.1e71aad995078000f */,
-1.120437752409564780022 /* 0x1.1ed5022fcd8600003 */,
-1.121955631720569668277 /* 0x1.1f387bf9cd88b0000 */,
-1.123475567332998359439 /* 0x1.1f9c18438cdec000a */,
-1.124997562033035469759 /* 0x1.1fffd71902f970002 */,
-1.126521618608448571713 /* 0x1.2063b88629079000e */,
-1.128047739853580200284 /* 0x1.20c7bc96ff72a0002 */,
-1.129575928566289189112 /* 0x1.212be3578a81e0006 */,
-1.131106187546149888259 /* 0x1.21902cd3d05f70007 */,
-1.132638519598779369743 /* 0x1.21f49917ddda5000c */,
-1.134172927531616359481 /* 0x1.2259282fc1c24000e */,
-1.135709414157753949251 /* 0x1.22bdda27911e90007 */,
-1.137247982292643566662 /* 0x1.2322af0b638e60007 */,
-1.138788634756517259562 /* 0x1.2387a6e755f270000 */,
-1.140331374372893558110 /* 0x1.23ecc1c788c890006 */,
-1.141876203969685699176 /* 0x1.2451ffb821639000c */,
-1.143423126377846266197 /* 0x1.24b760c5486dc0009 */,
-1.144972144431494420774 /* 0x1.251ce4fb2a0cc0005 */,
-1.146523260971646252006 /* 0x1.25828c65f9fb8000d */,
-1.148076478839068270690 /* 0x1.25e85711ebaeb0000 */,
-1.149631800883562204903 /* 0x1.264e450b3c8a30008 */,
-1.151189229953253789786 /* 0x1.26b4565e281a20003 */,
-1.152748768902654319399 /* 0x1.271a8b16f0f000002 */,
-1.154310420590433317050 /* 0x1.2780e341de2fc0001 */,
-1.155874187878668246681 /* 0x1.27e75eeb3abc90007 */,
-1.157440073633736243899 /* 0x1.284dfe1f5633e000a */,
-1.159008080725518974322 /* 0x1.28b4c0ea840d90001 */,
-1.160578212048386514965 /* 0x1.291ba75932ae60000 */,
-1.162150470417516290340 /* 0x1.2982b177796850008 */,
-1.163724858777502646494 /* 0x1.29e9df51fdd900001 */,
-1.165301379991388053320 /* 0x1.2a5130f50bf34000e */,
-1.166880036952526289469 /* 0x1.2ab8a66d10fdc0008 */,
-1.168460832550151540268 /* 0x1.2b203fc675b7a000a */,
-1.170043769683112966389 /* 0x1.2b87fd0dad7260008 */,
-1.171628851252754177681 /* 0x1.2befde4f2e3da000d */,
-1.173216080163546060084 /* 0x1.2c57e397719940002 */,
-1.174805459325657830448 /* 0x1.2cc00cf2f7491000c */,
-1.176396991650083379037 /* 0x1.2d285a6e3ff90000b */,
-1.177990680055698513602 /* 0x1.2d90cc15d4ff90005 */,
-1.179586527463262646306 /* 0x1.2df961f641c57000c */,
-1.181184536796979545103 /* 0x1.2e621c1c157cd000d */,
-1.182784710984701836994 /* 0x1.2ecafa93e35af0004 */,
-1.184387052960675701386 /* 0x1.2f33fd6a459cb0000 */,
-1.185991565661414393112 /* 0x1.2f9d24abd8fd1000e */,
-1.187598252026902612178 /* 0x1.300670653e083000a */,
-1.189207115003001469262 /* 0x1.306fe0a31bc040008 */,
-1.190818157535919796833 /* 0x1.30d9757219895000e */,
-1.192431382587621380206 /* 0x1.31432edef01a1000f */,
-1.194046793097208292195 /* 0x1.31ad0cf63f0630008 */,
-1.195664392040319823392 /* 0x1.32170fc4ce0db000c */,
-1.197284182375793593084 /* 0x1.32813757527750005 */,
-1.198906167074650808198 /* 0x1.32eb83ba8eef3000f */,
-1.200530349107333139048 /* 0x1.3355f4fb457e5000d */,
-1.202156731453099647353 /* 0x1.33c08b2641df9000c */,
-1.203785317090505513368 /* 0x1.342b46484f07b0005 */,
-1.205416109005122526928 /* 0x1.3496266e3fa270005 */,
-1.207049110184904572310 /* 0x1.35012ba4e8fa10000 */,
-1.208684323627194912036 /* 0x1.356c55f92aabb0004 */,
-1.210321752322854882437 /* 0x1.35d7a577dd33f0004 */,
-1.211961399276747286580 /* 0x1.36431a2de8748000d */,
-1.213603267492579629347 /* 0x1.36aeb4283309e000c */,
-1.215247359985374142610 /* 0x1.371a7373b00160000 */,
-1.216893679753690671322 /* 0x1.3786581d404e90000 */,
-1.218542229828181611183 /* 0x1.37f26231e82e4000c */,
-1.220193013225231215567 /* 0x1.385e91be9c2d20002 */,
-1.221846032973555429280 /* 0x1.38cae6d05e66f0000 */,
-1.223501292099485437962 /* 0x1.393761742e5830001 */,
-1.225158793636904830441 /* 0x1.39a401b713cb3000e */,
-1.226818540625497444577 /* 0x1.3a10c7a61ceae0007 */,
-1.228480536107136034131 /* 0x1.3a7db34e5a4a50003 */,
-1.230144783126481566885 /* 0x1.3aeac4bcdf8d60001 */,
-1.231811284734168454619 /* 0x1.3b57fbfec6e950008 */,
-1.233480043984379381835 /* 0x1.3bc559212e7a2000f */,
-1.235151063936380300149 /* 0x1.3c32dc3139f2a0004 */,
-1.236824347652524913647 /* 0x1.3ca0853c106ac000e */,
-1.238499898199571624970 /* 0x1.3d0e544eddd240003 */,
-1.240177718649636107175 /* 0x1.3d7c4976d3fcd0000 */,
-1.241857812073360767273 /* 0x1.3dea64c1231f70004 */,
-1.243540181554270152039 /* 0x1.3e58a63b099920005 */,
-1.245224830175077013244 /* 0x1.3ec70df1c4e46000e */,
-1.246911761022835740725 /* 0x1.3f359bf29741c000e */,
-1.248600977188942806639 /* 0x1.3fa4504ac7b800009 */,
-1.250292481770148400634 /* 0x1.40132b07a330d000a */,
-1.251986277866492969263 /* 0x1.40822c367a340000b */,
-1.253682368581898742876 /* 0x1.40f153e4a18e0000d */,
-1.255380757024939564249 /* 0x1.4160a21f73289000d */,
-1.257081446308726757662 /* 0x1.41d016f44deaa000c */,
-1.258784439550028944083 /* 0x1.423fb27094c090008 */,
-1.260489739869405489991 /* 0x1.42af74a1aec1c0006 */,
-1.262197350394008266193 /* 0x1.431f5d950a453000c */,
-1.263907274252603851764 /* 0x1.438f6d58176860004 */,
-1.265619514578811388761 /* 0x1.43ffa3f84b9eb000d */,
-1.267334074511444086425 /* 0x1.44700183221180008 */,
-1.269050957191869555296 /* 0x1.44e0860618b930006 */,
-1.270770165768063009230 /* 0x1.4551318eb4d20000e */,
-1.272491703389059036805 /* 0x1.45c2042a7cc26000b */,
-1.274215573211836316547 /* 0x1.4632fde6ffacd000d */,
-1.275941778396075143580 /* 0x1.46a41ed1cfac40001 */,
-1.277670322103555911043 /* 0x1.471566f8812ac0000 */,
-1.279401207505722393185 /* 0x1.4786d668b33260005 */,
-1.281134437771823675369 /* 0x1.47f86d3002637000a */,
-1.282870016078732078362 /* 0x1.486a2b5c13c00000e */,
-1.284607945607987078432 /* 0x1.48dc10fa916bd0004 */,
-1.286348229545787758022 /* 0x1.494e1e192aaa30007 */,
-1.288090871080605159846 /* 0x1.49c052c5913df000c */,
-1.289835873406902644341 /* 0x1.4a32af0d7d8090002 */,
-1.291583239722392528754 /* 0x1.4aa532feab5e10002 */,
-1.293332973229098792374 /* 0x1.4b17dea6db8010008 */,
-1.295085077135345708087 /* 0x1.4b8ab213d57d9000d */,
-1.296839554650994097442 /* 0x1.4bfdad53629e10003 */,
-1.298596408992440220988 /* 0x1.4c70d0735358a000d */,
-1.300355643380135983739 /* 0x1.4ce41b817c99e0001 */,
-1.302117261036232376282 /* 0x1.4d578e8bb52cb0003 */,
-1.303881265192249561154 /* 0x1.4dcb299fde2920008 */,
-1.305647659079073541490 /* 0x1.4e3eeccbd7f4c0003 */,
-1.307416445934474813521 /* 0x1.4eb2d81d8a86f000b */,
-1.309187629001237640529 /* 0x1.4f26eba2e35a5000e */,
-1.310961211525240921493 /* 0x1.4f9b2769d35090009 */,
-1.312737196755087820678 /* 0x1.500f8b804e4a30000 */,
-1.314515587949291131086 /* 0x1.508417f4530d00009 */,
-1.316296388365203462468 /* 0x1.50f8ccd3df1840003 */,
-1.318079601265708777911 /* 0x1.516daa2cf60020002 */,
-1.319865229921343141607 /* 0x1.51e2b00da3c2b0007 */,
-1.321653277603506371251 /* 0x1.5257de83f5512000d */,
-1.323443747588034513690 /* 0x1.52cd359dfc7d5000e */,
-1.325236643161341820781 /* 0x1.5342b569d6baa000f */,
-1.327031967602244177939 /* 0x1.53b85df59921b0000 */,
-1.328829724206201046165 /* 0x1.542e2f4f6b17e0006 */,
-1.330629916266568235675 /* 0x1.54a4298571b27000e */,
-1.332432547083447937938 /* 0x1.551a4ca5d97190009 */,
-1.334237619959296017340 /* 0x1.559098bed16bf0008 */,
-1.336045138203900251029 /* 0x1.56070dde90c800000 */,
-1.337855105129210686631 /* 0x1.567dac13510cd0009 */,
-1.339667524053662184301 /* 0x1.56f4736b52e2c000c */,
-1.341482398296830025383 /* 0x1.576b63f4d8333000f */,
-1.343299731186792467254 /* 0x1.57e27dbe2c40e0003 */,
-1.345119526053918823702 /* 0x1.5859c0d59cd37000f */,
-1.346941786233264881662 /* 0x1.58d12d497cd9a0005 */,
-1.348766515064854010261 /* 0x1.5948c32824b87000c */,
-1.350593715891792223641 /* 0x1.59c0827ff03890007 */,
-1.352423392064920459908 /* 0x1.5a386b5f43a3e0006 */,
-1.354255546937278120764 /* 0x1.5ab07dd485af1000c */,
-1.356090183865519494030 /* 0x1.5b28b9ee21085000f */,
-1.357927306213322804534 /* 0x1.5ba11fba8816e000b */,
-1.359766917346459269620 /* 0x1.5c19af482f8f2000f */,
-1.361609020638567812980 /* 0x1.5c9268a594cc00004 */,
-1.363453619463660171403 /* 0x1.5d0b4be135916000c */,
-1.365300717204201985683 /* 0x1.5d84590998eeb0005 */,
-1.367150317245710233754 /* 0x1.5dfd902d494e40001 */,
-1.369002422974674892971 /* 0x1.5e76f15ad22c40008 */,
-1.370857037789471544224 /* 0x1.5ef07ca0cc166000b */,
-1.372714165088220639199 /* 0x1.5f6a320dcf5280006 */,
-1.374573808273481745378 /* 0x1.5fe411b0790800009 */,
-1.376435970755022220096 /* 0x1.605e1b976e4b1000e */,
-1.378300655944092456600 /* 0x1.60d84fd155d15000e */,
-1.380167867259843417228 /* 0x1.6152ae6cdf0030003 */,
-1.382037608124419003675 /* 0x1.61cd3778bc879000d */,
-1.383909881963391264069 /* 0x1.6247eb03a4dc40009 */,
-1.385784692209972801544 /* 0x1.62c2c91c56d9b0002 */,
-1.387662042298923203992 /* 0x1.633dd1d1930ec0001 */,
-1.389541935670444372533 /* 0x1.63b90532200630004 */,
-1.391424375772021271329 /* 0x1.6434634ccc4cc0007 */,
-1.393309366052102982208 /* 0x1.64afec30677e90008 */,
-1.395196909966106124701 /* 0x1.652b9febc8e0f000d */,
-1.397087010973788290271 /* 0x1.65a77e8dcc7f10004 */,
-1.398979672539331309267 /* 0x1.66238825534170000 */,
-1.400874898129892187656 /* 0x1.669fbcc1415600008 */,
-1.402772691220124823310 /* 0x1.671c1c708328e000a */,
-1.404673055288671035301 /* 0x1.6798a7420988b000d */,
-1.406575993818903302975 /* 0x1.68155d44ca77a000f */,
-1.408481510297352468121 /* 0x1.68923e87bf70e000a */,
-1.410389608216942924956 /* 0x1.690f4b19e8f74000c */,
-1.412300291075172076232 /* 0x1.698c830a4c94c0008 */
-};
-#define S (1.0/4503599627370496.0) /* 2^-52 */
-static const float exp2_deltatable[512] = {
- 11527*S, -963*S, 884*S, -781*S, -2363*S, -3441*S, 123*S, 526*S,
- -6*S, 1254*S, -1138*S, 1519*S, 1576*S, -65*S, 1040*S, 793*S,
- -1662*S, -5063*S, -387*S, 968*S, -941*S, 984*S, -2856*S, -545*S,
- 495*S, -5246*S, -2109*S, 1281*S, 2075*S, 909*S, -1642*S,-78233*S,
--31653*S, -265*S, 130*S, 430*S, 2482*S, -742*S, 1616*S, -2213*S,
- -519*S, 20*S, -3134*S,-13981*S, 1343*S, -1740*S, 247*S, 1679*S,
- -1097*S, 3131*S, 871*S, -1480*S, 1936*S, -1827*S, 17325*S, 528*S,
- -322*S, 1404*S, -152*S, -1845*S, -212*S, 2639*S, -476*S, 2960*S,
- -962*S, -1012*S, -1231*S, 3030*S, 1659*S, -486*S, 2154*S, 1728*S,
- -2793*S, 699*S, -1560*S, -2125*S, 2156*S, 142*S, -1888*S, 4426*S,
--13443*S, 1970*S, -50*S, 1771*S,-43399*S, 4979*S, -2448*S, -370*S,
- 1414*S, 1075*S, 232*S, 206*S, 873*S, 2141*S, 2970*S, 1279*S,
- -2331*S, 336*S, -2595*S, 753*S, -3384*S, -616*S, 89*S, -818*S,
- 5755*S, -241*S, -528*S, -661*S, -3777*S, -354*S, 250*S, 3881*S,
- 2632*S, -2131*S, 2565*S, -316*S, 1746*S, -2541*S, -1324*S, -50*S,
- 2564*S, -782*S, 1176*S, 6452*S, -1002*S, 1288*S, 336*S, -185*S,
- 3063*S, 3784*S, 2169*S, 686*S, 328*S, -400*S, 312*S, -4517*S,
- -1457*S, 1046*S, -1530*S, -685*S, 1328*S,-49815*S, -895*S, 1063*S,
- -2091*S, -672*S, -1710*S, -665*S, 1545*S, 1819*S,-45265*S, 3548*S,
- -554*S, -568*S, 4752*S, -1907*S,-13738*S, 675*S, 9611*S, -1115*S,
- -815*S, 408*S, -1281*S, -937*S,-16376*S, -4772*S, -1440*S, 992*S,
- 788*S, 10364*S, -1602*S, -661*S, -1783*S, -265*S, -20*S, -3781*S,
- -861*S, -345*S, -994*S, 1364*S, -5339*S, 1620*S, 9390*S, -1066*S,
- -305*S, -170*S, 175*S, 2461*S, -490*S, -769*S, -1450*S, 3315*S,
- 2418*S, -45*S, -852*S, -1295*S, -488*S, -96*S, 1142*S, -2639*S,
- 7905*S, -9306*S, -3859*S, 760*S, 1057*S, -1570*S, 3977*S, 209*S,
- -514*S, 7151*S, 1646*S, 627*S, 599*S, -774*S, -1468*S, 633*S,
- -473*S, 851*S, 2406*S, 143*S, 74*S, 4260*S, 1177*S, -913*S,
- 2670*S, -3298*S, -1662*S, -120*S, -3264*S, -2148*S, 410*S, 2078*S,
- -2098*S, -926*S, 3580*S, -1289*S, 2450*S, -1158*S, 907*S, -590*S,
- 986*S, 1801*S, 1145*S, -1677*S, 3455*S, 956*S, 710*S, 144*S,
- 153*S, -255*S, -1898*S, 28102*S, 2748*S, 1194*S, -3009*S, 7076*S,
- 0*S, -2720*S, 711*S, 1225*S, -3034*S, -473*S, 378*S, -1046*S,
- 962*S, -2006*S, 4647*S, 3206*S, 1769*S, -2665*S, 1254*S, 2025*S,
- -2430*S, 6193*S, 1224*S, -856*S, -1592*S, -325*S, -1521*S, 1827*S,
- -264*S, 2403*S, -1065*S, 967*S, -681*S, -2106*S, -474*S, 1333*S,
- -893*S, 2296*S, 592*S, -1220*S, -326*S, 990*S, 139*S, 206*S,
- -779*S, -1683*S, 1238*S, 6098*S, 136*S, 1197*S, 790*S, -107*S,
- -1004*S, -2449*S, 939*S, 5568*S, 156*S, 1812*S, 2792*S, -1094*S,
- -2677*S, -251*S, 2297*S, 943*S, -1329*S, 2883*S, -853*S, -2626*S,
--105929*S, -6552*S, 1095*S, -1508*S, 1003*S, 5039*S, -2600*S, -749*S,
- 1790*S, 890*S, 2016*S, -1073*S, 624*S, -2084*S, -1536*S, -1330*S,
- 358*S, 2444*S, -179*S,-25759*S, -243*S, -552*S, -124*S, 3766*S,
- 1192*S, -1614*S, 6*S, -1227*S, 345*S, -981*S, -295*S, -1006*S,
- -995*S, -1195*S, 706*S, 2512*S, -1758*S, -734*S, -6286*S, -922*S,
- 1530*S, 1542*S, 1223*S, 61*S, -83*S, 522*S,116937*S, -914*S,
- -418*S, -7339*S, 249*S, -520*S, -762*S, 426*S, -505*S, 2664*S,
- -1093*S, -1035*S, 2130*S, 4878*S, 1982*S, 1551*S, 2304*S, 193*S,
- 1532*S, -7268*S, 24357*S, 531*S, 2676*S, -1170*S, 1465*S, -1917*S,
- 2143*S, 1466*S, -7*S, -7300*S, 3297*S, -1197*S, -289*S, -1548*S,
- 26226*S, 4401*S, 4123*S, -1588*S, 4243*S, 4069*S, -1276*S, -2010*S,
- 1407*S, 1478*S, 488*S, -2366*S, -2909*S, -2534*S, -1285*S, 7095*S,
- -645*S, -2089*S, -944*S, -40*S, -1363*S, -833*S, 917*S, 1609*S,
- 1286*S, 1677*S, 1613*S, -2295*S, -1248*S, 40*S, 26*S, 2038*S,
- 698*S, 2675*S, -1755*S, -3522*S, -1614*S, -6111*S, 270*S, 1822*S,
- -234*S, -2844*S, -1201*S, -830*S, 1193*S, 2354*S, 47*S, 1522*S,
- -78*S, -640*S, 2425*S, -1596*S, 1563*S, 1169*S, -1006*S, -83*S,
- 2362*S, -3521*S, -314*S, 1814*S, -1751*S, 305*S, 1715*S, -3741*S,
- 7847*S, 1291*S, 1206*S, 36*S, 1397*S, -1419*S, -1194*S, -2014*S,
- 1742*S, -578*S, -207*S, 875*S, 1539*S, 2826*S, -1165*S, -909*S,
- 1849*S, 927*S, 2018*S, -981*S, 1637*S, -463*S, 905*S, 6618*S,
- 400*S, 630*S, 2614*S, 900*S, 2323*S, -1094*S, -1858*S, -212*S,
- -2069*S, 747*S, 1845*S, -1450*S, 444*S, -213*S, -438*S, 1158*S,
- 4738*S, 2497*S, -370*S, -2016*S, -518*S, -1160*S, -1510*S, 123*S
-};
-/* Maximum magnitude in above table: 116937 */
-#undef S
diff --git a/sysdeps/ieee754/dbl-64/uasncs.h b/sysdeps/ieee754/dbl-64/uasncs.h
index e980fc5c55..279d2fa42b 100644
--- a/sysdeps/ieee754/dbl-64/uasncs.h
+++ b/sysdeps/ieee754/dbl-64/uasncs.h
@@ -1,7 +1,7 @@
/*
* IBM Accurate Mathematical Library
* Written by International Business Machines Corp.
- * Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2019 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 by
@@ -14,7 +14,7 @@
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
/******************************************************************/
diff --git a/sysdeps/ieee754/dbl-64/uatan.tbl b/sysdeps/ieee754/dbl-64/uatan.tbl
index 3f0b2bff90..98397f4a01 100644
--- a/sysdeps/ieee754/dbl-64/uatan.tbl
+++ b/sysdeps/ieee754/dbl-64/uatan.tbl
@@ -1,7 +1,7 @@
/*
* IBM Accurate Mathematical Library
* Written by International Business Machines Corp.
- * Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2019 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 by
@@ -14,7 +14,7 @@
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
/****************************************************************/
diff --git a/sysdeps/ieee754/dbl-64/uexp.h b/sysdeps/ieee754/dbl-64/uexp.h
deleted file mode 100644
index 64ab2c8fca..0000000000
--- a/sysdeps/ieee754/dbl-64/uexp.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * IBM Accurate Mathematical Library
- * Written by International Business Machines Corp.
- * Copyright (C) 2001-2018 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 by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program 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 this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-/******************************************************************/
-/* */
-/* MODULE_NAME:uexp.h */
-/* */
-/* common data and variables prototype and definition */
-/******************************************************************/
-
-#ifndef UEXP_H
-#define UEXP_H
-
-#include "mydefs.h"
-
-const static double zero = 0.0, hhuge = 1.0e300, tiny = 1.0e-300;
-const static int4 bigint = 0x40862002,
- badint = 0x40876000,smallint = 0x3C8fffff;
-const static int4 hugeint = 0x7FFFFFFF, infint = 0x7ff00000;
-
-#ifdef BIG_ENDI
-const static mynumber inf = {{0x7FF00000, 0}}; /* inf */
-const static mynumber t256 = {{0x4ff00000, 0}}; /* 2^256 */
-
-const static mynumber ln_two1 = {{0x3FE62E42, 0xFEFA3800}};/*0.69314718055989033 */
-const static mynumber ln_two2 = {{0x3D2EF357, 0x93C76730}};/*5.4979230187083712e-14*/
-const static mynumber log2e = {{0x3FF71547, 0x652B82FE}};/* 1.4426950408889634 */
-
-const static mynumber p2 = {{0x3FE00000, 0x000004DC}};/* 0.50000000000013811 */
-const static mynumber p3 = {{0x3FC55555, 0x55555A0F}};/* 0.16666666666670024 */
-
-const static mynumber three33 = {{0x42180000, 0}}; /* 25769803776 */
-const static mynumber three51 = {{0x43380000, 0}}; /* 6755399441055744 */
-
-#else
-#ifdef LITTLE_ENDI
- const static mynumber inf = {{0, 0x7FF00000}}; /* inf */
- const static mynumber t256 = {{0, 0x4ff00000}}; /* 2^256 */
-
- const static mynumber ln_two1 = {{0xFEFA3800, 0x3FE62E42}};/*0.69314718055989033 */
- const static mynumber ln_two2 = {{0x93C76730, 0x3D2EF357}};/*5.4979230187083712e-14*/
- const static mynumber log2e = {{0x652B82FE, 0x3FF71547}};/* 1.4426950408889634 */
-
- const static mynumber p2 = {{0x000004DC, 0x3FE00000}};/* 0.50000000000013811 */
- const static mynumber p3 = {{0x55555A0F, 0x3FC55555}};/* 0.16666666666670024 */
-
- const static mynumber three33 = {{0, 0x42180000}}; /* 25769803776 */
- const static mynumber three51 = {{0, 0x43380000}}; /* 6755399441055744 */
-
-#endif
-#endif
-#endif
diff --git a/sysdeps/ieee754/dbl-64/uexp.tbl b/sysdeps/ieee754/dbl-64/uexp.tbl
deleted file mode 100644
index b1eff5253e..0000000000
--- a/sysdeps/ieee754/dbl-64/uexp.tbl
+++ /dev/null
@@ -1,1786 +0,0 @@
-/*
- * IBM Accurate Mathematical Library
- * Written by International Business Machines Corp.
- * Copyright (C) 2001-2018 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 by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program 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 this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-/****************************************************************/
-/* TABLES FOR THE ulog() FUNCTION */
-/****************************************************************/
-
-#ifdef BIG_ENDI
-
-static const union {
- int i[1424];
- double x[712];
-} coar = { .i = {
- 0x3FE69A59, 0xC8000000, 0x3DF22D4D, 0x6079C9F7,
- 0x3FE6A5A9, 0xC8000000, 0x3E19882D, 0x25AF6823,
- 0x3FE6B0FF, 0x74000000, 0xBE221476, 0x31DABF59,
- 0x3FE6BC5A, 0xC8000000, 0x3E2312AC, 0x99A2DC0A,
- 0x3FE6C7BB, 0xD0000000, 0xBE265926, 0xCE9F9355,
- 0x3FE6D322, 0x84000000, 0x3E2F2C26, 0x2D298DED,
- 0x3FE6DE8E, 0xF4000000, 0xBE2EC28E, 0x1E748D2F,
- 0x3FE6EA01, 0x14000000, 0x3E2D8C6D, 0xC68CB7E5,
- 0x3FE6F578, 0xF4000000, 0x3DEE1A9E, 0x419FE2F0,
- 0x3FE700F6, 0x90000000, 0xBDFF1AFD, 0xDEAEAE34,
- 0x3FE70C79, 0xEC000000, 0xBE0730FE, 0x558B7122,
- 0x3FE71803, 0x0C000000, 0xBE25CB85, 0x2D280C3B,
- 0x3FE72391, 0xF0000000, 0xBE06F2CE, 0x337B7B54,
- 0x3FE72F26, 0x9C000000, 0x3E289BCA, 0x45C02B72,
- 0x3FE73AC1, 0x18000000, 0xBE18DEA6, 0x5039F1CA,
- 0x3FE74661, 0x60000000, 0xBE09D090, 0x86CE0538,
- 0x3FE75207, 0x78000000, 0x3E290E79, 0xCFCE5DDB,
- 0x3FE75DB3, 0x68000000, 0x3DD61DF0, 0xB249A17C,
- 0x3FE76965, 0x2C000000, 0x3E2F22F7, 0xE13445F7,
- 0x3FE7751C, 0xD0000000, 0xBE2CD454, 0x874E75CE,
- 0x3FE780DA, 0x4C000000, 0xBE0159CE, 0xDF43E3BC,
- 0x3FE78C9D, 0xA8000000, 0x3E279291, 0x699A1332,
- 0x3FE79866, 0xEC000000, 0xBE2A0BCD, 0x2DD98C6C,
- 0x3FE7A436, 0x10000000, 0x3E25F375, 0x15AC979E,
- 0x3FE7B00B, 0x20000000, 0x3E26CCF5, 0x2FEAFCF6,
- 0x3FE7BBE6, 0x1C000000, 0x3E27D4F4, 0x53ADAD67,
- 0x3FE7C7C7, 0x08000000, 0x3E10EEC7, 0x7FBD9566,
- 0x3FE7D3AD, 0xE4000000, 0x3E2837F0, 0x9A831D86,
- 0x3FE7DF9A, 0xB8000000, 0xBE129BE0, 0x5CB4C35B,
- 0x3FE7EB8D, 0x80000000, 0x3E23990A, 0x0234F04D,
- 0x3FE7F786, 0x44000000, 0x3E2EB807, 0x64D5C842,
- 0x3FE80385, 0x08000000, 0x3E0FC86F, 0x02B4E9E8,
- 0x3FE80F89, 0xCC000000, 0xBDD7B5B3, 0x7B4274BF,
- 0x3FE81B94, 0x94000000, 0xBE16888B, 0xB899B00F,
- 0x3FE827A5, 0x60000000, 0x3E288971, 0x5E94D155,
- 0x3FE833BC, 0x38000000, 0x3E2AEEB2, 0x099F3E5E,
- 0x3FE83FD9, 0x20000000, 0xBE23B922, 0x3FF60B7C,
- 0x3FE84BFC, 0x14000000, 0xBDF7D3B1, 0x2DBD8012,
- 0x3FE85825, 0x1C000000, 0xBDF24BA3, 0xA8872BEB,
- 0x3FE86454, 0x38000000, 0x3E2EFE04, 0x01AA18A7,
- 0x3FE87089, 0x70000000, 0x3E21986C, 0x944496A2,
- 0x3FE87CC4, 0xC4000000, 0x3E096A8B, 0xB71FFAFF,
- 0x3FE88906, 0x38000000, 0xBE21CE0A, 0xBC4C7AC5,
- 0x3FE8954D, 0xCC000000, 0xBE076F45, 0xBAC02491,
- 0x3FE8A19B, 0x84000000, 0x3E2B4FA2, 0xD922B925,
- 0x3FE8ADEF, 0x68000000, 0x3DF759DB, 0x641863AF,
- 0x3FE8BA49, 0x78000000, 0xBE2DB97C, 0xC6AB5E04,
- 0x3FE8C6A9, 0xB4000000, 0xBE25364C, 0xE2156713,
- 0x3FE8D310, 0x20000000, 0x3E1BEB7C, 0x862BEFF7,
- 0x3FE8DF7C, 0xC4000000, 0xBDF4DD0C, 0x1CEA33A5,
- 0x3FE8EBEF, 0xA0000000, 0xBE2537DF, 0x51797D47,
- 0x3FE8F868, 0xB4000000, 0x3E0FB1C4, 0xF0107B28,
- 0x3FE904E8, 0x08000000, 0x3E0AD6A1, 0xE01B68BD,
- 0x3FE9116D, 0x9C000000, 0x3E292117, 0x1F78D9D9,
- 0x3FE91DF9, 0x78000000, 0xBE1D75DA, 0x4F50E5CF,
- 0x3FE92A8B, 0x98000000, 0x3DE5102B, 0x74959E58,
- 0x3FE93724, 0x04000000, 0xBE01CA50, 0xD2216C35,
- 0x3FE943C2, 0xBC000000, 0x3E225BFD, 0xB0B05884,
- 0x3FE95067, 0xC8000000, 0xBE0F2183, 0x60B7C5C1,
- 0x3FE95D13, 0x24000000, 0x3E2FB47A, 0xB5860441,
- 0x3FE969C4, 0xDC000000, 0xBE01FFD2, 0xE2D4059E,
- 0x3FE9767C, 0xEC000000, 0xBDE9ED72, 0x12BB6A8D,
- 0x3FE9833B, 0x58000000, 0x3E2B3815, 0x43BFFB24,
- 0x3FE99000, 0x28000000, 0x3E03FA22, 0xEE9EAD1E,
- 0x3FE99CCB, 0x5C000000, 0xBE213841, 0x377138F7,
- 0x3FE9A99C, 0xF4000000, 0x3E178105, 0xDB636C94,
- 0x3FE9B674, 0xF8000000, 0x3E1E5E7A, 0xF5720122,
- 0x3FE9C353, 0x6C000000, 0xBE238BFF, 0xA2AC5AAE,
- 0x3FE9D038, 0x4C000000, 0x3E270893, 0xF93BDBD8,
- 0x3FE9DD23, 0xA4000000, 0x3DF40420, 0x354B86CF,
- 0x3FE9EA15, 0x74000000, 0xBE2D76D3, 0x88CB06B7,
- 0x3FE9F70D, 0xBC000000, 0xBE251639, 0x9ED0EC60,
- 0x3FEA040C, 0x80000000, 0x3E1F06E9, 0xE2DDE506,
- 0x3FEA1111, 0xC8000000, 0x3E014549, 0x8E6DB477,
- 0x3FEA1E1D, 0x94000000, 0xBDF4BC17, 0xF8716509,
- 0x3FEA2B2F, 0xE8000000, 0xBE2107DB, 0xDA723A49,
- 0x3FEA3848, 0xC4000000, 0x3E1A932A, 0x986AA369,
- 0x3FEA4568, 0x30000000, 0x3E198092, 0x41592CDB,
- 0x3FEA528E, 0x30000000, 0xBE2E260F, 0x676BCAB8,
- 0x3FEA5FBA, 0xC0000000, 0x3DE2E821, 0x2D5D5610,
- 0x3FEA6CED, 0xE8000000, 0x3E2F7046, 0x7DA20167,
- 0x3FEA7A27, 0xB0000000, 0xBE1D2832, 0xF9FAAD30,
- 0x3FEA8768, 0x14000000, 0xBE23F788, 0x43FA6C45,
- 0x3FEA94AF, 0x18000000, 0x3E011E27, 0xAA082732,
- 0x3FEAA1FC, 0xC4000000, 0xBE20BACB, 0xC682F0BF,
- 0x3FEAAF51, 0x18000000, 0xBE2DC7DD, 0x7BD08C78,
- 0x3FEABCAC, 0x14000000, 0x3E2271A2, 0xA3B10F9A,
- 0x3FEACA0D, 0xC4000000, 0xBE15449C, 0x7966F94C,
- 0x3FEAD776, 0x24000000, 0x3DD06137, 0x6FD8F3EE,
- 0x3FEAE4E5, 0x3C000000, 0xBE267CD1, 0x8C5A144A,
- 0x3FEAF25B, 0x0C000000, 0xBE29E584, 0xB59DA94B,
- 0x3FEAFFD7, 0x98000000, 0xBE23DFCF, 0x7B52192F,
- 0x3FEB0D5A, 0xE4000000, 0xBE1CF2FE, 0x78A76B45,
- 0x3FEB1AE4, 0xF4000000, 0xBE23A561, 0x7EC80FF6,
- 0x3FEB2875, 0xC8000000, 0x3E22C4C9, 0x932EED68,
- 0x3FEB360D, 0x68000000, 0x3E2B085C, 0xB5833C97,
- 0x3FEB43AB, 0xD8000000, 0xBE01F093, 0x93B9319A,
- 0x3FEB5151, 0x18000000, 0xBE254F01, 0xFABCE670,
- 0x3FEB5EFD, 0x28000000, 0x3E2F24C2, 0x627ABFB0,
- 0x3FEB6CB0, 0x14000000, 0x3E1F1EEC, 0xE6AC0B48,
- 0x3FEB7A69, 0xDC000000, 0xBE1A8671, 0x127F9ABC,
- 0x3FEB882A, 0x80000000, 0xBDCB0C28, 0xC87C73B3,
- 0x3FEB95F2, 0x08000000, 0xBE22E8DD, 0x7F2B5A97,
- 0x3FEBA3C0, 0x74000000, 0xBE1B3645, 0x2D22A9D5,
- 0x3FEBB195, 0xC8000000, 0x3E0ADACA, 0x428F8B88,
- 0x3FEBBF72, 0x0C000000, 0xBE2E9E07, 0xCDF9F681,
- 0x3FEBCD55, 0x3C000000, 0xBE08A127, 0x7FA54ACF,
- 0x3FEBDB3F, 0x60000000, 0x3E0E92CE, 0x8225B385,
- 0x3FEBE930, 0x7C000000, 0x3DF38C2A, 0x7BB09485,
- 0x3FEBF728, 0x94000000, 0xBE2DFD64, 0xF681FA5F,
- 0x3FEC0527, 0xA4000000, 0x3E2E384D, 0xDCE88BD2,
- 0x3FEC132D, 0xBC000000, 0xBE20F111, 0xFE46A893,
- 0x3FEC213A, 0xD4000000, 0x3E193DA1, 0xB189BFDA,
- 0x3FEC2F4E, 0xF8000000, 0xBE20E3A1, 0x0E39FB00,
- 0x3FEC3D6A, 0x24000000, 0x3E1DB044, 0x30F0FAC5,
- 0x3FEC4B8C, 0x64000000, 0xBE2BC12C, 0x97446B17,
- 0x3FEC59B5, 0xB4000000, 0xBE282696, 0x963F4150,
- 0x3FEC67E6, 0x18000000, 0x3E224D26, 0x3049824B,
- 0x3FEC761D, 0x98000000, 0x3E2C5BA5, 0x87F84C7D,
- 0x3FEC845C, 0x38000000, 0xBDE1D14D, 0xC4852339,
- 0x3FEC92A1, 0xF8000000, 0xBE1A451E, 0x5588D9E1,
- 0x3FECA0EE, 0xDC000000, 0xBE1D3B96, 0x68BFF457,
- 0x3FECAF42, 0xE8000000, 0xBE18B670, 0x4DADF774,
- 0x3FECBD9E, 0x20000000, 0xBE1A1548, 0x7FB1FC01,
- 0x3FECCC00, 0x88000000, 0xBE273F2E, 0x78FC5AF0,
- 0x3FECDA6A, 0x20000000, 0x3E1D218F, 0xA6F4A841,
- 0x3FECE8DA, 0xF0000000, 0x3E2E0BA9, 0x4D002CA0,
- 0x3FECF752, 0xFC000000, 0x3E20F4BB, 0x065EF979,
- 0x3FED05D2, 0x48000000, 0xBE2ED3D5, 0x11793B33,
- 0x3FED1458, 0xD0000000, 0x3E115E3C, 0x913341B3,
- 0x3FED22E6, 0xA0000000, 0x3DE97C02, 0xB3546109,
- 0x3FED317B, 0xB8000000, 0x3E087540, 0x1BF898EF,
- 0x3FED4018, 0x1C000000, 0x3E209430, 0x346F9641,
- 0x3FED4EBB, 0xD0000000, 0x3E2B6DF4, 0x88F4B20B,
- 0x3FED5D66, 0xDC000000, 0xBE2EC68F, 0x0CB26035,
- 0x3FED6C19, 0x38000000, 0x3E2CA2C8, 0x1F44D9C3,
- 0x3FED7AD2, 0xF4000000, 0x3E10E6F4, 0x41704EE0,
- 0x3FED8994, 0x0C000000, 0x3E2F9273, 0x25F8F0E2,
- 0x3FED985C, 0x88000000, 0x3E2D041A, 0x318798DE,
- 0x3FEDA72C, 0x6C000000, 0xBE005680, 0x9349CF58,
- 0x3FEDB603, 0xB8000000, 0xBE10F665, 0xCF0C934D,
- 0x3FEDC4E2, 0x70000000, 0x3E166124, 0x19461C64,
- 0x3FEDD3C8, 0x9C000000, 0xBE1B2ED6, 0x405624C8,
- 0x3FEDE2B6, 0x3C000000, 0xBE273A7F, 0x62171501,
- 0x3FEDF1AB, 0x54000000, 0xBE26022B, 0xE36E1450,
- 0x3FEE00A7, 0xE8000000, 0xBE1C341E, 0x2E07AE15,
- 0x3FEE0FAB, 0xFC000000, 0xBDFC7EAE, 0x18D0E701,
- 0x3FEE1EB7, 0x94000000, 0x3E06B34F, 0xECD1FF8B,
- 0x3FEE2DCA, 0xB4000000, 0x3E1394A3, 0x6813A649,
- 0x3FEE3CE5, 0x60000000, 0x3E045496, 0xC1754D14,
- 0x3FEE4C07, 0x9C000000, 0xBE180FFF, 0xF5C6087C,
- 0x3FEE5B31, 0x68000000, 0x3E22FBCD, 0xADD9A300,
- 0x3FEE6A62, 0xCC000000, 0x3E2EC7C7, 0xAF0289E5,
- 0x3FEE799B, 0xCC000000, 0x3E242182, 0x3FB3EDD4,
- 0x3FEE88DC, 0x6C000000, 0xBE201304, 0x04E39885,
- 0x3FEE9824, 0xAC000000, 0xBE20D352, 0xE6831D31,
- 0x3FEEA774, 0x90000000, 0x3E1E032D, 0x618DFCEB,
- 0x3FEEB6CC, 0x20000000, 0x3E1956A3, 0xF9BB457E,
- 0x3FEEC62B, 0x60000000, 0xBE2A77E0, 0x50845DB2,
- 0x3FEED592, 0x4C000000, 0x3E2714F7, 0x47C43858,
- 0x3FEEE500, 0xF0000000, 0x3E2EED96, 0x71813A66,
- 0x3FEEF477, 0x50000000, 0xBE04CDBE, 0x4FB4AA34,
- 0x3FEF03F5, 0x6C000000, 0xBE2774A2, 0x86EB4FF5,
- 0x3FEF137B, 0x48000000, 0xBE29DD95, 0xAD43B2D2,
- 0x3FEF2308, 0xE8000000, 0xBE1CADB0, 0xAC16E506,
- 0x3FEF329E, 0x50000000, 0x3E12AC33, 0x58745C7B,
- 0x3FEF423B, 0x88000000, 0xBE248118, 0x6EC2D854,
- 0x3FEF51E0, 0x8C000000, 0x3E26986B, 0x304ACE08,
- 0x3FEF618D, 0x68000000, 0x3E126D81, 0x3B09354E,
- 0x3FEF7142, 0x1C000000, 0x3DF06AAE, 0x773C23B3,
- 0x3FEF80FE, 0xAC000000, 0xBDA105B6, 0xD82EF423,
- 0x3FEF90C3, 0x1C000000, 0x3DECDEED, 0x465499B8,
- 0x3FEFA08F, 0x70000000, 0x3E0AEFD4, 0xE2EF03AE,
- 0x3FEFB063, 0xAC000000, 0x3E1BD4C0, 0x0567B2E7,
- 0x3FEFC03F, 0xD4000000, 0x3E26AA22, 0x4F97FCBF,
- 0x3FEFD023, 0xF0000000, 0xBE2F9420, 0x5E4E88D1,
- 0x3FEFE00F, 0xFC000000, 0xBE254004, 0x438E52E2,
- 0x3FEFF004, 0x00000000, 0xBE1552AA, 0xEEE93EFC,
- 0x3FF00000, 0x00000000, 0x00000000, 0x00000000,
- 0x3FF00802, 0x00000000, 0x3E155800, 0x4449F507,
- 0x3FF01008, 0x04000000, 0xBE354AA8, 0x882D75D6,
- 0x3FF01812, 0x08000000, 0x3E303610, 0x3740DE56,
- 0x3FF02020, 0x14000000, 0x3E360044, 0x5B0C3264,
- 0x3FF02832, 0x28000000, 0x3E3C4C26, 0x0197EDC3,
- 0x3FF03048, 0x48000000, 0x3E0B103B, 0x5046CA09,
- 0x3FF03862, 0x74000000, 0xBE34659C, 0xF9A62624,
- 0x3FF04080, 0xAC000000, 0xBE254438, 0xDD0A8F37,
- 0x3FF048A2, 0xF4000000, 0x3DF256C2, 0x97AFB6E2,
- 0x3FF050C9, 0x50000000, 0xBE3085DF, 0x923D25E1,
- 0x3FF058F3, 0xC0000000, 0xBE3F0A93, 0x5EA3B091,
- 0x3FF06122, 0x44000000, 0xBE237DE4, 0x5D63534C,
- 0x3FF06954, 0xE0000000, 0x3E301719, 0xFF0C58B7,
- 0x3FF0718B, 0x98000000, 0x3E2E8410, 0x9DF7B665,
- 0x3FF079C6, 0x6C000000, 0x3E349CB9, 0x3B127222,
- 0x3FF08205, 0x60000000, 0x3DF127EC, 0x98E0BD08,
- 0x3FF08A48, 0x74000000, 0xBE24C1B6, 0x706CC41F,
- 0x3FF0928F, 0xA8000000, 0x3E334EF9, 0x093044EF,
- 0x3FF09ADB, 0x04000000, 0xBE1304B1, 0x56BC6C83,
- 0x3FF0A32A, 0x84000000, 0x3E2D383E, 0xB028B984,
- 0x3FF0AB7E, 0x30000000, 0xBE315B1E, 0x64E7A202,
- 0x3FF0B3D6, 0x04000000, 0xBE0AC1E6, 0xC678291E,
- 0x3FF0BC32, 0x04000000, 0x3E3A0418, 0x2F12FFE2,
- 0x3FF0C492, 0x38000000, 0xBE37D617, 0x43D6D302,
- 0x3FF0CCF6, 0x98000000, 0x3E2133F2, 0x152CC8FA,
- 0x3FF0D55F, 0x2C000000, 0x3E3CE5D1, 0xE966E6B7,
- 0x3FF0DDCB, 0xF8000000, 0x3E1ABF24, 0x7BCACA64,
- 0x3FF0E63C, 0xFC000000, 0xBE3854F6, 0x2E8CDBED,
- 0x3FF0EEB2, 0x38000000, 0xBE3E6463, 0x0C32156B,
- 0x3FF0F72B, 0xAC000000, 0x3E365671, 0xB69772CC,
- 0x3FF0FFA9, 0x64000000, 0xBE383E9A, 0x02B1201A,
- 0x3FF1082B, 0x58000000, 0xBE205962, 0x50549CC0,
- 0x3FF110B1, 0x90000000, 0xBE376BFE, 0xFFDACA72,
- 0x3FF1193C, 0x08000000, 0x3E3C1C59, 0x5C43E2F3,
- 0x3FF121CA, 0xCC000000, 0xBE26D374, 0xF7067C8B,
- 0x3FF12A5D, 0xD4000000, 0x3E343CCC, 0x4DDAFE1D,
- 0x3FF132F5, 0x28000000, 0x3E3D5C16, 0x58EBCB7F,
- 0x3FF13B90, 0xCC000000, 0xBE2B5D12, 0xB66E8B53,
- 0x3FF14430, 0xBC000000, 0xBE24E919, 0xB326B482,
- 0x3FF14CD4, 0xFC000000, 0x3E23139A, 0xC8AABD43,
- 0x3FF1557D, 0x90000000, 0x3E30DD8B, 0x16743B55,
- 0x3FF15E2A, 0x7C000000, 0xBE31D701, 0x35904C50,
- 0x3FF166DB, 0xBC000000, 0x3E107F42, 0x30E0CA83,
- 0x3FF16F91, 0x58000000, 0xBE24F1F2, 0xDA1B7123,
- 0x3FF1784B, 0x50000000, 0xBE3ACAF2, 0x0DC79E23,
- 0x3FF18109, 0xA4000000, 0xBE23DC79, 0x609374EE,
- 0x3FF189CC, 0x58000000, 0x3E262CF7, 0x3A40C3B7,
- 0x3FF19293, 0x70000000, 0x3E1D3833, 0x5A24F463,
- 0x3FF19B5E, 0xEC000000, 0x3E2BA9AD, 0x8A2E4440,
- 0x3FF1A42E, 0xD0000000, 0x3DFD8CBC, 0x61C41828,
- 0x3FF1AD03, 0x1C000000, 0x3E1A65E6, 0x5A4DDF0D,
- 0x3FF1B5DB, 0xD4000000, 0xBDE2FDBB, 0x9F828DB5,
- 0x3FF1BEB8, 0xF8000000, 0x3E2F4EE8, 0xB79B700F,
- 0x3FF1C79A, 0x8C000000, 0x3E3ACC35, 0x0DE1D7E8,
- 0x3FF1D080, 0x94000000, 0x3E11729E, 0xFF9E20A0,
- 0x3FF1D96B, 0x10000000, 0xBE300F18, 0x6C2EA70B,
- 0x3FF1E25A, 0x00000000, 0x3DF32E02, 0xCE425A35,
- 0x3FF1EB4D, 0x68000000, 0x3E3BDE56, 0x9A322D12,
- 0x3FF1F445, 0x50000000, 0xBE3C3F0D, 0xBA737AEF,
- 0x3FF1FD41, 0xB0000000, 0xBE0A2DD0, 0xC896DB7A,
- 0x3FF20642, 0x90000000, 0x3E2577B0, 0xF8B782F6,
- 0x3FF20F47, 0xF4000000, 0xBE2C6DA3, 0x73607FC8,
- 0x3FF21851, 0xD8000000, 0x3E35F7D1, 0xC8917348,
- 0x3FF22160, 0x44000000, 0x3E3B6F5C, 0xCF9CED69,
- 0x3FF22A73, 0x3C000000, 0xBE39967E, 0x85775C2E,
- 0x3FF2338A, 0xB8000000, 0x3E3B3213, 0x497226D4,
- 0x3FF23CA6, 0xC4000000, 0x3E3E2710, 0x30733227,
- 0x3FF245C7, 0x60000000, 0x3E33B8A9, 0xAF215A72,
- 0x3FF24EEC, 0x90000000, 0xBE3F96B2, 0x1365623F,
- 0x3FF25816, 0x50000000, 0xBE37324F, 0x27DEE202,
- 0x3FF26144, 0xA4000000, 0x3E318CD5, 0x4E484D87,
- 0x3FF26A77, 0x94000000, 0xBDE3FD37, 0xA94519E8,
- 0x3FF273AF, 0x1C000000, 0x3E37132F, 0xEE788C29,
- 0x3FF27CEB, 0x44000000, 0xBE03DDB7, 0xE842E5C0,
- 0x3FF2862C, 0x08000000, 0x3E37A3FB, 0xE17C9693,
- 0x3FF28F71, 0x70000000, 0x3E24EABF, 0xAEB3D9A0,
- 0x3FF298BB, 0x7C000000, 0xBE13C7B6, 0x853B0733,
- 0x3FF2A20A, 0x2C000000, 0x3E2D2C80, 0xC7B588B5,
- 0x3FF2AB5D, 0x88000000, 0xBE35B750, 0x708F3912,
- 0x3FF2B4B5, 0x8C000000, 0xBE291A70, 0xD5FD9130,
- 0x3FF2BE12, 0x3C000000, 0x3E2EE937, 0x0CCF9F73,
- 0x3FF2C773, 0xA0000000, 0xBE3C3F0C, 0xD42CF76C,
- 0x3FF2D0D9, 0xB0000000, 0x3E35DD54, 0x60763D61,
- 0x3FF2DA44, 0x78000000, 0x3E26C418, 0xE7D6AA3B,
- 0x3FF2E3B3, 0xF8000000, 0xBE3605C6, 0x6FB9B7A8,
- 0x3FF2ED28, 0x2C000000, 0x3E3763D4, 0x24DCDDF5,
- 0x3FF2F6A1, 0x20000000, 0xBE1A411E, 0xA8EC1AA8,
- 0x3FF3001E, 0xD0000000, 0xBE23FCA1, 0x1FE8546F,
- 0x3FF309A1, 0x40000000, 0xBE29DF0D, 0x3AAEE75E,
- 0x3FF31328, 0x70000000, 0x3E36A5D6, 0x3C2C4206,
- 0x3FF31CB4, 0x68000000, 0x3E1B7A3E, 0xB4C979B0,
- 0x3FF32645, 0x28000000, 0xBE36157D, 0x706CD593,
- 0x3FF32FDA, 0xB0000000, 0xBE39F357, 0x8DA4C646,
- 0x3FF33975, 0x04000000, 0xBE3E64DE, 0xD575FE6F,
- 0x3FF34314, 0x24000000, 0x3E07F9E3, 0x44D008E0,
- 0x3FF34CB8, 0x18000000, 0xBE2E94F9, 0x5A563E77,
- 0x3FF35660, 0xDC000000, 0x3E314DC2, 0x2475EF19,
- 0x3FF3600E, 0x78000000, 0x3E26D623, 0xA33AC606,
- 0x3FF369C0, 0xEC000000, 0x3E170F86, 0xC05B3160,
- 0x3FF37378, 0x3C000000, 0xBE38DDFE, 0xDB0AE31A,
- 0x3FF37D34, 0x64000000, 0x3E3662A9, 0x5706B570,
- 0x3FF386F5, 0x70000000, 0xBE1625E4, 0x6770731E,
- 0x3FF390BB, 0x5C000000, 0xBE1678F1, 0x62971091,
- 0x3FF39A86, 0x2C000000, 0xBE061F7C, 0xD045CB0C,
- 0x3FF3A455, 0xE4000000, 0xBE35CF51, 0x568B1CA2,
- 0x3FF3AE2A, 0x84000000, 0xBE378185, 0x7FB61F58,
- 0x3FF3B804, 0x0C000000, 0x3E3F77F4, 0x4FA133AF,
- 0x3FF3C1E2, 0x88000000, 0xBE22F96A, 0xB00B73FE,
- 0x3FF3CBC5, 0xF0000000, 0x3E351A64, 0x1EB4CE2F,
- 0x3FF3D5AE, 0x50000000, 0xBE3D3516, 0xD3755639,
- 0x3FF3DF9B, 0xA0000000, 0x3E1CD938, 0x43E8C10E,
- 0x3FF3E98D, 0xEC000000, 0xBE35EE23, 0x455C8842,
- 0x3FF3F385, 0x30000000, 0xBE29B282, 0x96C9F4ED,
- 0x3FF3FD81, 0x70000000, 0x3E24A40E, 0x3168CC0B,
- 0x3FF40782, 0xB0000000, 0x3E3784BC, 0x86C72839,
- 0x3FF41188, 0xF4000000, 0x3E061F19, 0x0785D847,
- 0x3FF41B94, 0x3C000000, 0xBE27AEF2, 0xE654A9C9,
- 0x3FF425A4, 0x88000000, 0x3E33DFC3, 0xF9E4C1BA,
- 0x3FF42FB9, 0xE0000000, 0x3E2455A8, 0x593D0C75,
- 0x3FF439D4, 0x44000000, 0xBDE41D4E, 0x238B65D1,
- 0x3FF443F3, 0xB4000000, 0x3E3BE616, 0x454CBECB,
- 0x3FF44E18, 0x38000000, 0x3E207B3C, 0x931C5332,
- 0x3FF45841, 0xD0000000, 0xBE330846, 0x7615DCC9,
- 0x3FF46270, 0x7C000000, 0xBE2A8A7B, 0xE497F84E,
- 0x3FF46CA4, 0x40000000, 0x3E020B50, 0xF737AF78,
- 0x3FF476DD, 0x20000000, 0x3E116B19, 0xE34AFBD3,
- 0x3FF4811B, 0x20000000, 0xBE3E15A7, 0x841EDB52,
- 0x3FF48B5E, 0x3C000000, 0x3E0F40C3, 0x33B3DE1E,
- 0x3FF495A6, 0x7C000000, 0x3E33607F, 0x92EFEE02,
- 0x3FF49FF3, 0xE4000000, 0xBE1A2DB5, 0x14F7E168,
- 0x3FF4AA46, 0x70000000, 0x3E3F59EC, 0x3EBA1C94,
- 0x3FF4B49E, 0x2C000000, 0xBE31A539, 0x8B9AE885,
- 0x3FF4BEFB, 0x10000000, 0x3E2FAC0B, 0xF13C8C95,
- 0x3FF4C95D, 0x28000000, 0xBE32C0BB, 0xF8B74775,
- 0x3FF4D3C4, 0x70000000, 0xBE2FC24E, 0x4F9474BB,
- 0x3FF4DE30, 0xEC000000, 0x3E008F30, 0x09DA911F,
- 0x3FF4E8A2, 0xA0000000, 0x3E2994C1, 0xBAF8D98B,
- 0x3FF4F319, 0x90000000, 0xBE17C38C, 0x18648D0A,
- 0x3FF4FD95, 0xBC000000, 0xBE288852, 0xF22F8698,
- 0x3FF50817, 0x28000000, 0xBE3C3EC3, 0x30A2C153,
- 0x3FF5129D, 0xD4000000, 0xBE27B606, 0x968492AA,
- 0x3FF51D29, 0xC4000000, 0x3E2E0396, 0x61101629,
- 0x3FF527BA, 0xFC000000, 0x3E3E876F, 0xDAEEAB38,
- 0x3FF53251, 0x80000000, 0x3E29F59E, 0xED945B30,
- 0x3FF53CED, 0x50000000, 0x3E12D7DA, 0x0B4AE3F1,
- 0x3FF5478E, 0x70000000, 0xBE2FAFB8, 0x5FB946D0,
- 0x3FF55234, 0xE0000000, 0xBE18A8B3, 0x87D80C66,
- 0x3FF55CE0, 0xA4000000, 0x3E28B18F, 0x764CF85C,
- 0x3FF56791, 0xC0000000, 0x3E326017, 0x2BDBC6F4,
- 0x3FF57248, 0x38000000, 0xBE229F98, 0x53D523FE,
- 0x3FF57D04, 0x0C000000, 0xBE3BDD08, 0x4D9B8720,
- 0x3FF587C5, 0x3C000000, 0x3E169EBC, 0x09D8749E,
- 0x3FF5928B, 0xD0000000, 0x3E190C8C, 0x339C2080,
- 0x3FF59D57, 0xC8000000, 0x3E310FA4, 0xDE75E9CA,
- 0x3FF5A829, 0x28000000, 0x3E313D18, 0x1097F186,
- 0x3FF5B2FF, 0xF4000000, 0xBE2BDE04, 0xD51C23F6,
- 0x3FF5BDDC, 0x28000000, 0x3E3EE67E, 0x8938C386,
- 0x3FF5C8BD, 0xD0000000, 0x3E0973B8, 0x47DF6575,
- 0x3FF5D3A4, 0xE8000000, 0x3E24DF02, 0x1DB97781,
- 0x3FF5DE91, 0x78000000, 0xBE3FBA00, 0xAC4AECDC,
- 0x3FF5E983, 0x7C000000, 0xBE2F37AF, 0x939F646A,
- 0x3FF5F47A, 0xFC000000, 0xBE396DEF, 0x58A6EEE9,
- 0x3FF5FF77, 0xF8000000, 0xBE315248, 0xE3613C7B,
- 0x3FF60A7A, 0x74000000, 0xBE26A9E2, 0xF1553706,
- 0x3FF61582, 0x74000000, 0xBE3B6BF6, 0xAE4D7CB6,
- 0x3FF6208F, 0xF8000000, 0xBE35775B, 0x9EB5EBA5,
- 0x3FF62BA3, 0x04000000, 0xBE2A821B, 0xC1E43506,
- 0x3FF636BB, 0x9C000000, 0xBE367CDA, 0x7B2D8CF4,
- 0x3FF641D9, 0xC0000000, 0xBE13218B, 0x3E907A1D,
- 0x3FF64CFD, 0x74000000, 0x3E3454EE, 0x7BF5DFE4,
- 0x3FF65826, 0xC0000000, 0xBE3E960F, 0x6366C5FD,
- 0x3FF66355, 0x9C000000, 0x3E2E378F, 0x8B43C17E,
- 0x3FF66E8A, 0x14000000, 0x3E244BE0, 0xA4306535,
- 0x3FF679C4, 0x28000000, 0xBDE4B6C1, 0x8DF63D6E,
- 0x3FF68503, 0xD8000000, 0x3E3BA122, 0xE6A239CF,
- 0x3FF69049, 0x2C000000, 0x3E27F286, 0x59FB5F30,
- 0x3FF69B94, 0x24000000, 0xBE044041, 0x971D3970 } };
-
-static const union {
- int4 i[2048];
- double x[1024];
-} fine = { .i = {
- 0x3FF00000, 0x00000000, 0x00000000, 0x00000000,
- 0x3FF00004, 0x00000000, 0x3DA00001, 0x55556AAB,
- 0x3FF00008, 0x00000000, 0x3DC00002, 0xAAAB0000,
- 0x3FF0000C, 0x00000000, 0x3DD20004, 0x8000D800,
- 0x3FF00010, 0x00000000, 0x3DE00005, 0x5556AAAB,
- 0x3FF00014, 0x00000000, 0x3DE9000A, 0x6AADEC01,
- 0x3FF00018, 0x00000000, 0x3DF20009, 0x00036001,
- 0x3FF0001C, 0x00000000, 0x3DF8800E, 0x4AB0EB58,
- 0x3FF00020, 0x00000000, 0x3E00000A, 0xAAB00002,
- 0x3FF00024, 0x00000000, 0x3E04400F, 0x30088B04,
- 0x3FF00028, 0x00000000, 0x3E090014, 0xD5625AB1,
- 0x3FF0002C, 0x00000000, 0x3E0E401B, 0xBABDBB0A,
- 0x3FF00030, 0x00000000, 0x3E120012, 0x000D8008,
- 0x3FF00034, 0x00000000, 0x3E152016, 0xE2BD42E1,
- 0x3FF00038, 0x00000000, 0x3E18801C, 0x956E5812,
- 0x3FF0003C, 0x00000000, 0x3E1C2023, 0x2820F599,
- 0x3FF00040, 0x00000000, 0x3E200015, 0x556AAABC,
- 0x3FF00044, 0x00000000, 0x3E221019, 0x96C5DAD7,
- 0x3FF00048, 0x00000000, 0x3E24401E, 0x60222C1F,
- 0x3FF0004C, 0x00000000, 0x3E269023, 0xB97FC193,
- 0x3FF00050, 0x00000000, 0x3E290029, 0xAADEC034,
- 0x3FF00054, 0x00000000, 0x3E2B9030, 0x3C3F4F02,
- 0x3FF00058, 0x00000000, 0x3E2E4037, 0x75A196FF,
- 0x3FF0005C, 0x00000000, 0x3E30881F, 0xAF82E194,
- 0x3FF00060, 0x00000000, 0x3E320024, 0x00360041,
- 0x3FF00064, 0x00000000, 0x3E338828, 0xB0EA3F05,
- 0x3FF00068, 0x00000000, 0x3E35202D, 0xC59FB661,
- 0x3FF0006C, 0x00000000, 0x3E36C833, 0x42567FD5,
- 0x3FF00070, 0x00000000, 0x3E388039, 0x2B0EB5E1,
- 0x3FF00074, 0x00000000, 0x3E3A483F, 0x83C87407,
- 0x3FF00078, 0x00000000, 0x3E3C2046, 0x5083D6C6,
- 0x3FF0007C, 0x00000000, 0x3E3E084D, 0x9540FB9E,
- 0x3FF00080, 0x04000000, 0xBE3FFFAA, 0xA9FFFEEF,
- 0x3FF00084, 0x04000000, 0xBE3DF7A2, 0x693EF962,
- 0x3FF00088, 0x04000000, 0xBE3BDF99, 0xA47BD339,
- 0x3FF0008C, 0x04000000, 0xBE39B790, 0x57B66AF5,
- 0x3FF00090, 0x04000000, 0xBE377F86, 0x7EEE9E14,
- 0x3FF00094, 0x04000000, 0xBE35377C, 0x16244916,
- 0x3FF00098, 0x04000000, 0xBE32DF71, 0x1957477B,
- 0x3FF0009C, 0x04000000, 0xBE307765, 0x848773C2,
- 0x3FF000A0, 0x04000000, 0xBE2BFEB2, 0xA7694ED3,
- 0x3FF000A4, 0x04000000, 0xBE26EE99, 0x05BD75E2,
- 0x3FF000A8, 0x04000000, 0xBE21BE7E, 0x1C0B0BB1,
- 0x3FF000AC, 0x04000000, 0xBE18DCC3, 0xC4A37A79,
- 0x3FF000B0, 0x04000000, 0xBE0BF911, 0x4244D60F,
- 0x3FF000B4, 0x04000000, 0xBDE6E255, 0xEC91D848,
- 0x3FF000B8, 0x04000000, 0x3E0107EB, 0xEC1B8F0C,
- 0x3FF000BC, 0x04000000, 0x3E142439, 0x89BE52AA,
- 0x3FF000C0, 0x04000000, 0x3E200240, 0x06C01033,
- 0x3FF000C4, 0x04000000, 0x3E261264, 0xC8A9F760,
- 0x3FF000C8, 0x04000000, 0x3E2C428B, 0x129D3FDE,
- 0x3FF000CC, 0x04000000, 0x3E314959, 0x764D2658,
- 0x3FF000D0, 0x04000000, 0x3E34816E, 0x2F50C16C,
- 0x3FF000D4, 0x04000000, 0x3E37C983, 0xB859A4AB,
- 0x3FF000D8, 0x04000000, 0x3E3B219A, 0x15680499,
- 0x3FF000DC, 0x04000000, 0x3E3E89B1, 0x4A7C16B5,
- 0x3FF000E0, 0x08000000, 0xBE3DFE36, 0xA469EE7E,
- 0x3FF000E4, 0x08000000, 0xBE3A761D, 0xB349D37F,
- 0x3FF000E8, 0x08000000, 0xBE36DE03, 0xDE235FCD,
- 0x3FF000EC, 0x08000000, 0xBE3335E9, 0x20F659E6,
- 0x3FF000F0, 0x08000000, 0xBE2EFB9A, 0xEF850E8F,
- 0x3FF000F4, 0x08000000, 0xBE276B61, 0xBD0F58E2,
- 0x3FF000F8, 0x08000000, 0xBE1F764D, 0x45163381,
- 0x3FF000FC, 0x08000000, 0xBE0FABA6, 0x5FDF589A,
- 0x3FF00100, 0x08000000, 0x3D8555AA, 0xABBBBE94,
- 0x3FF00104, 0x08000000, 0x3E102B2C, 0xDABB690B,
- 0x3FF00108, 0x08000000, 0x3E2045D9, 0x7820FBA0,
- 0x3FF0010C, 0x08000000, 0x3E28961E, 0x92F54742,
- 0x3FF00110, 0x08000000, 0x3E308332, 0xE2ED8E39,
- 0x3FF00114, 0x08000000, 0x3E34CB57, 0x8C698119,
- 0x3FF00118, 0x08000000, 0x3E39237D, 0x49EEC0C4,
- 0x3FF0011C, 0x08000000, 0x3E3D8BA4, 0x1F7D92BC,
- 0x3FF00120, 0x0C000000, 0xBE3DFC33, 0xEEE9C27D,
- 0x3FF00124, 0x0C000000, 0xBE39740A, 0xDD46F763,
- 0x3FF00128, 0x0C000000, 0xBE34DBE0, 0xA799C375,
- 0x3FF0012C, 0x0C000000, 0xBE3033B5, 0x49E1DD2F,
- 0x3FF00130, 0x0C000000, 0xBE26F711, 0x803DF41F,
- 0x3FF00134, 0x0C000000, 0xBE1ACD6C, 0x19433A4C,
- 0x3FF00138, 0x0C000000, 0xBDFDB2C1, 0x8770E36F,
- 0x3FF0013C, 0x0C000000, 0x3E086820, 0x6B74A43E,
- 0x3FF00140, 0x0C000000, 0x3E200A6A, 0xDEC0D058,
- 0x3FF00144, 0x0C000000, 0x3E2A1AD0, 0x22BD7872,
- 0x3FF00148, 0x0C000000, 0x3E32259B, 0xF769E132,
- 0x3FF0014C, 0x0C000000, 0x3E374DD1, 0x2582289A,
- 0x3FF00150, 0x0C000000, 0x3E3C8607, 0x9FA7E4F4,
- 0x3FF00154, 0x10000000, 0xBE3E31C0, 0x9624963C,
- 0x3FF00158, 0x10000000, 0xBE38D987, 0x77E2F472,
- 0x3FF0015C, 0x10000000, 0xBE33714D, 0x0192E02C,
- 0x3FF00160, 0x10000000, 0xBE2BF222, 0x5E6805CB,
- 0x3FF00164, 0x10000000, 0xBE20E1A7, 0xF98C0A34,
- 0x3FF00168, 0x10000000, 0xBE06C4AB, 0x32447238,
- 0x3FF0016C, 0x10000000, 0x3E067D54, 0xC225D8C1,
- 0x3FF00170, 0x10000000, 0x3E210FD8, 0x05C4630F,
- 0x3FF00174, 0x10000000, 0x3E2CA05D, 0xBB206115,
- 0x3FF00178, 0x10000000, 0x3E342873, 0x2C4F14A6,
- 0x3FF0017C, 0x10000000, 0x3E3A10B8, 0xF31F3B5E,
- 0x3FF00180, 0x14000000, 0xBE3FF6FF, 0xC9FEFCC9,
- 0x3FF00184, 0x14000000, 0xBE39EEB7, 0x070B344A,
- 0x3FF00188, 0x14000000, 0xBE33D66C, 0xC0050AA2,
- 0x3FF0018C, 0x14000000, 0xBE2B5C41, 0xE1D83C97,
- 0x3FF00190, 0x14000000, 0xBE1DD74E, 0x57003305,
- 0x3FF00194, 0x14000000, 0xBDF2D84A, 0xA80727F1,
- 0x3FF00198, 0x14000000, 0x3E14AB2F, 0x534C5401,
- 0x3FF0019C, 0x14000000, 0x3E27263B, 0xD875DE83,
- 0x3FF001A0, 0x14000000, 0x3E320B71, 0x9FB782CA,
- 0x3FF001A4, 0x14000000, 0x3E3893C6, 0xF349371F,
- 0x3FF001A8, 0x14000000, 0x3E3F2C1D, 0xEAF074C6,
- 0x3FF001AC, 0x18000000, 0xBE3A2B89, 0x75525ABC,
- 0x3FF001B0, 0x18000000, 0xBE33732F, 0x297ECCE2,
- 0x3FF001B4, 0x18000000, 0xBE2955A6, 0x5B28EC49,
- 0x3FF001B8, 0x18000000, 0xBE1749D5, 0xF64BA7FD,
- 0x3FF001BC, 0x18000000, 0x3DF15E9E, 0xA8645141,
- 0x3FF001C0, 0x18000000, 0x3E201C96, 0x1D6F0B37,
- 0x3FF001C4, 0x18000000, 0x3E2E2D5B, 0xE6028E39,
- 0x3FF001C8, 0x18000000, 0x3E362F12, 0x9B63FA1E,
- 0x3FF001CC, 0x18000000, 0x3E3D5779, 0x0BE01026,
- 0x3FF001D0, 0x1C000000, 0xBE3B701E, 0xB78A0445,
- 0x3FF001D4, 0x1C000000, 0xBE3427B4, 0xAAD9CF9D,
- 0x3FF001D8, 0x1C000000, 0xBE299E91, 0x941DBAB5,
- 0x3FF001DC, 0x1C000000, 0xBE159B6C, 0x44A2DFDD,
- 0x3FF001E0, 0x1C000000, 0x3E008CA4, 0x1EC8B89C,
- 0x3FF001E4, 0x1C000000, 0x3E23340B, 0xF1EE0E9A,
- 0x3FF001E8, 0x1C000000, 0x3E313279, 0x5231913C,
- 0x3FF001EC, 0x1C000000, 0x3E38DAEE, 0x93892E68,
- 0x3FF001F0, 0x20000000, 0xBE3F6C9A, 0x3F01A6A8,
- 0x3FF001F4, 0x20000000, 0xBE37A421, 0x216E726C,
- 0x3FF001F8, 0x20000000, 0xBE2F974C, 0x1F7970B9,
- 0x3FF001FC, 0x20000000, 0xBE1F8CA4, 0x17AFEBC8,
- 0x3FF00200, 0x20000000, 0x3DB55600, 0x04445B06,
- 0x3FF00204, 0x20000000, 0x3E203BAE, 0x0C290A26,
- 0x3FF00208, 0x20000000, 0x3E30365A, 0x104547BD,
- 0x3FF0020C, 0x20000000, 0x3E385EDF, 0x22970DE3,
- 0x3FF00210, 0x24000000, 0xBE3F6899, 0xBEF5A5F4,
- 0x3FF00214, 0x24000000, 0xBE372010, 0x90605040,
- 0x3FF00218, 0x24000000, 0xBE2D8F0A, 0x9B50D8EE,
- 0x3FF0021C, 0x24000000, 0xBE197BDF, 0xCB35D444,
- 0x3FF00220, 0x24000000, 0x3E00CCBC, 0x2188E3D5,
- 0x3FF00224, 0x24000000, 0x3E254452, 0x36A79F6A,
- 0x3FF00228, 0x24000000, 0x3E333ABC, 0xD69B2D28,
- 0x3FF0022C, 0x24000000, 0x3E3BE352, 0xBA07BE5B,
- 0x3FF00230, 0x28000000, 0xBE3B6415, 0x3665F227,
- 0x3FF00234, 0x28000000, 0xBE329B7A, 0xF6AD58D5,
- 0x3FF00238, 0x28000000, 0xBE2385BD, 0x059BD24A,
- 0x3FF0023C, 0x28000000, 0xBDEB47FA, 0xD8E2B1B4,
- 0x3FF00240, 0x28000000, 0x3E203CC2, 0x22CF60F6,
- 0x3FF00244, 0x28000000, 0x3E312704, 0x39BEF87F,
- 0x3FF00248, 0x28000000, 0x3E3A3FA9, 0xA63F5309,
- 0x3FF0024C, 0x2C000000, 0xBE3C97AE, 0xA516AE5E,
- 0x3FF00250, 0x2C000000, 0xBE335F04, 0xA442792A,
- 0x3FF00254, 0x2C000000, 0xBE242CB0, 0xA686F3A2,
- 0x3FF00258, 0x2C000000, 0xBDE7B535, 0xC3237903,
- 0x3FF0025C, 0x2C000000, 0x3E21560E, 0x9E7A6CF7,
- 0x3FF00260, 0x2C000000, 0x3E3223BA, 0xA8C01385,
- 0x3FF00264, 0x2C000000, 0x3E3BAC70, 0x627012DF,
- 0x3FF00268, 0x30000000, 0xBE3ABAD7, 0x7FB232EA,
- 0x3FF0026C, 0x30000000, 0xBE31121C, 0xF9A6244B,
- 0x3FF00270, 0x30000000, 0xBE1D6580, 0x1DAC9AE4,
- 0x3FF00274, 0x30000000, 0x3E037AFA, 0xD7FB0AC3,
- 0x3FF00278, 0x30000000, 0x3E289042, 0x633420EB,
- 0x3FF0027C, 0x30000000, 0x3E3630E5, 0x8065842A,
- 0x3FF00280, 0x34000000, 0xBE3FD653, 0xB49DA4FF,
- 0x3FF00284, 0x34000000, 0xBE35CD8A, 0x696ECB76,
- 0x3FF00288, 0x34000000, 0xBE27697D, 0x341A9D63,
- 0x3FF0028C, 0x34000000, 0xBDF8BF04, 0x2788D238,
- 0x3FF00290, 0x34000000, 0x3E2159C1, 0x42A03782,
- 0x3FF00294, 0x34000000, 0x3E32F5B4, 0x154D4F89,
- 0x3FF00298, 0x34000000, 0x3E3D4E8A, 0x1D7FB2C1,
- 0x3FF0029C, 0x38000000, 0xBE38489D, 0x42181508,
- 0x3FF002A0, 0x38000000, 0xBE2B9F84, 0x0AF2C28C,
- 0x3FF002A4, 0x38000000, 0xBE0A3721, 0x451C5357,
- 0x3FF002A8, 0x38000000, 0x3E1D47F1, 0x61A8605E,
- 0x3FF002AC, 0x38000000, 0x3E31FADF, 0x81B02FCF,
- 0x3FF002B0, 0x38000000, 0x3E3CB3C5, 0x572F674A,
- 0x3FF002B4, 0x3C000000, 0xBE388352, 0x231795EA,
- 0x3FF002B8, 0x3C000000, 0xBE2B54CD, 0xD248367A,
- 0x3FF002BC, 0x3C000000, 0xBE060BC7, 0xB7ABD90D,
- 0x3FF002C0, 0x3C000000, 0x3E206EEF, 0x6EE9F1EF,
- 0x3FF002C4, 0x3C000000, 0x3E33406B, 0x261BF09E,
- 0x3FF002C8, 0x3C000000, 0x3E3E5961, 0x59001C60,
- 0x3FF002CC, 0x40000000, 0xBE367DA5, 0xABDDD232,
- 0x3FF002D0, 0x40000000, 0xBE268953, 0xC8FA5113,
- 0x3FF002D4, 0x40000000, 0x3D9152CC, 0x8B33A701,
- 0x3FF002D8, 0x40000000, 0x3E26BAAC, 0x3E058570,
- 0x3FF002DC, 0x40000000, 0x3E36C65A, 0x63236E71,
- 0x3FF002E0, 0x44000000, 0xBE3DC09E, 0x7C7A795C,
- 0x3FF002E4, 0x44000000, 0xBE323794, 0x7BD63D1D,
- 0x3FF002E8, 0x44000000, 0xBE1A7A1E, 0x5BBC9105,
- 0x3FF002EC, 0x44000000, 0x3E142A20, 0xD8EE2B1B,
- 0x3FF002F0, 0x44000000, 0x3E30C39A, 0xEFAA8A8D,
- 0x3FF002F4, 0x44000000, 0x3E3C8CB0, 0x995E96A2,
- 0x3FF002F8, 0x48000000, 0xBE379A36, 0xC8A79469,
- 0x3FF002FC, 0x48000000, 0xBE276236, 0x64CE7203,
- 0x3FF00300, 0x48000000, 0x3DD200D8, 0x0819DA68,
- 0x3FF00304, 0x48000000, 0x3E28A249, 0xE5E018D4,
- 0x3FF00308, 0x48000000, 0x3E386A49, 0x8A087692,
- 0x3FF0030C, 0x4C000000, 0xBE3B6C8E, 0xD695988B,
- 0x3FF00310, 0x4C000000, 0xBE2E66C8, 0x55D2BCBA,
- 0x3FF00314, 0x4C000000, 0xBE0751B3, 0x7790BA7A,
- 0x3FF00318, 0x4C000000, 0x3E22DDF4, 0xC2A20261,
- 0x3FF0031C, 0x4C000000, 0x3E35D82E, 0x49E0B0B5,
- 0x3FF00320, 0x50000000, 0xBE3DAE9A, 0xB142422E,
- 0x3FF00324, 0x50000000, 0xBE312560, 0x8C170FE6,
- 0x3FF00328, 0x50000000, 0xBE12308D, 0x0A73BF77,
- 0x3FF0032C, 0x50000000, 0x3E203A3A, 0x5E59CEFA,
- 0x3FF00330, 0x50000000, 0x3E34D660, 0xCD4740BF,
- 0x3FF00334, 0x54000000, 0xBE3E6058, 0x644D1883,
- 0x3FF00338, 0x54000000, 0xBE31870E, 0x618F57B6,
- 0x3FF0033C, 0x54000000, 0xBE127704, 0x99FABD0F,
- 0x3FF00340, 0x54000000, 0x3E20B71E, 0xA1CB5ECF,
- 0x3FF00344, 0x54000000, 0x3E3564E3, 0x089E93E1,
- 0x3FF00348, 0x58000000, 0xBE3D81C5, 0xFB533142,
- 0x3FF0034C, 0x58000000, 0xBE30586B, 0xB6EECE6C,
- 0x3FF00350, 0x58000000, 0xBE08F871, 0x319B883E,
- 0x3FF00354, 0x58000000, 0x3E2454A5, 0x75BF7503,
- 0x3FF00358, 0x58000000, 0x3E3783B6, 0xF04B88C5,
- 0x3FF0035C, 0x5C000000, 0xBE3B12E1, 0x81EF30A7,
- 0x3FF00360, 0x5C000000, 0xBE2B32ED, 0x2F9F3657,
- 0x3FF00364, 0x5C000000, 0xBDB0084D, 0x54DF31BC,
- 0x3FF00368, 0x5C000000, 0x3E2B12D2, 0xC303B7B9,
- 0x3FF0036C, 0x5C000000, 0x3E3B32DE, 0x78B56F97,
- 0x3FF00370, 0x60000000, 0xBE3713A9, 0x03B9496C,
- 0x3FF00374, 0x60000000, 0xBE22945A, 0x1F92E726,
- 0x3FF00378, 0x60000000, 0x3E123D49, 0x621736DF,
- 0x3FF0037C, 0x60000000, 0x3E3278D5, 0x3935580D,
- 0x3FF00380, 0x64000000, 0xBE3F8DA4, 0x69B9F5FB,
- 0x3FF00384, 0x64000000, 0xBE31841A, 0x8C473CC8,
- 0x3FF00388, 0x64000000, 0xBE0B5469, 0x538CDE07,
- 0x3FF0038C, 0x64000000, 0x3E257E07, 0x7F8F9D65,
- 0x3FF00390, 0x64000000, 0x3E38F898, 0x3665E52B,
- 0x3FF00394, 0x68000000, 0xBE38BDCF, 0xC29674BD,
- 0x3FF00398, 0x68000000, 0xBE24C868, 0x4E58B4D9,
- 0x3FF0039C, 0x68000000, 0x3E1015AC, 0x329466D7,
- 0x3FF003A0, 0x68000000, 0x3E327F0D, 0xDCDECE44,
- 0x3FF003A4, 0x6C000000, 0xBE3EF74B, 0xB27E5528,
- 0x3FF003A8, 0x6C000000, 0xBE305DA1, 0x9D7167F2,
- 0x3FF003AC, 0x6C000000, 0xBDFB3F3D, 0xFF980820,
- 0x3FF003B0, 0x6C000000, 0x3E2A0B7B, 0x13D49789,
- 0x3FF003B4, 0x6C000000, 0x3E3BCF72, 0xA43AE87C,
- 0x3FF003B8, 0x70000000, 0xBE3556D4, 0x8D06BDC0,
- 0x3FF003BC, 0x70000000, 0xBE19B460, 0x1766E54D,
- 0x3FF003C0, 0x70000000, 0x3E211950, 0x7B85C8BA,
- 0x3FF003C4, 0x70000000, 0x3E37966C, 0x41D00AED,
- 0x3FF003C8, 0x74000000, 0xBE394FCB, 0xF5B15507,
- 0x3FF003CC, 0x74000000, 0xBE244C00, 0xC98093C4,
- 0x3FF003D0, 0x74000000, 0x3E144F3B, 0xE2907BDF,
- 0x3FF003D4, 0x74000000, 0x3E345DA2, 0x267CD924,
- 0x3FF003D8, 0x78000000, 0xBE3C4886, 0xD73526C0,
- 0x3FF003DC, 0x78000000, 0xBE29BD57, 0xF8E1D62E,
- 0x3FF003E0, 0x78000000, 0x3E04D995, 0xD65415E1,
- 0x3FF003E4, 0x78000000, 0x3E322515, 0x527E1A58,
- 0x3FF003E8, 0x7C000000, 0xBE3E4104, 0x31552BA5,
- 0x3FF003EC, 0x7C000000, 0xBE2D2E33, 0x995CAB3B,
- 0x3FF003F0, 0x7C000000, 0x3DF22D48, 0x473970DC,
- 0x3FF003F4, 0x7C000000, 0x3E30ECC6, 0xC61195FC,
- 0x3FF003F8, 0x80000000, 0xBE3F3943, 0x03D35C34,
- 0x3FF003FC, 0x80000000, 0xBE2E9E91, 0xAA7483C7,
- 0x3FF00400, 0x80000000, 0x3DE556AA, 0xBBBC71CE,
- 0x3FF00404, 0x80000000, 0x3E30B4B7, 0x817613C1,
- 0x3FF00408, 0x84000000, 0xBE3F3142, 0x4E70B0AC,
- 0x3FF0040C, 0x84000000, 0xBE2E0E70, 0x2BAAD02F,
- 0x3FF00410, 0x84000000, 0x3DF32D62, 0xF48F01F2,
- 0x3FF00414, 0x84000000, 0x3E317CE8, 0x84EB5B98,
- 0x3FF00418, 0x88000000, 0xBE3E2901, 0x10ED210B,
- 0x3FF0041C, 0x88000000, 0xBE2B7DCD, 0x1C7F0051,
- 0x3FF00420, 0x88000000, 0x3E05D9C0, 0x87AA2706,
- 0x3FF00424, 0x88000000, 0x3E33455A, 0xD0B235B3,
- 0x3FF00428, 0x8C000000, 0xBE3C207E, 0x4B07A510,
- 0x3FF0042C, 0x8C000000, 0xBE26ECA6, 0x7C6E838B,
- 0x3FF00430, 0x8C000000, 0x3E150F6F, 0xEC91A8D5,
- 0x3FF00434, 0x8C000000, 0x3E360E0F, 0x650C6A83,
- 0x3FF00438, 0x90000000, 0xBE3917B8, 0xFC7E3439,
- 0x3FF0043C, 0x90000000, 0xBE205AFA, 0x4AF4C8B6,
- 0x3FF00440, 0x90000000, 0x3E219985, 0xDC31D181,
- 0x3FF00444, 0x90000000, 0x3E39D707, 0x423CC2BE,
- 0x3FF00448, 0x94000000, 0xBE350EB0, 0x250DC5BF,
- 0x3FF0044C, 0x94000000, 0xBE0F231A, 0x1E2CF893,
- 0x3FF00450, 0x94000000, 0x3E2AABDB, 0xD42C92D4,
- 0x3FF00454, 0x94000000, 0x3E3EA043, 0x6887075B,
- 0x3FF00458, 0x98000000, 0xBE300562, 0xC472509B,
- 0x3FF0045C, 0x98000000, 0x3DF64FB6, 0x72B572E0,
- 0x3FF00460, 0x98000000, 0x3E32DF5D, 0xEF61155C,
- 0x3FF00464, 0x9C000000, 0xBE3B963B, 0x27CFFE6A,
- 0x3FF00468, 0x9C000000, 0xBE23F79F, 0xB4CD96FE,
- 0x3FF0046C, 0x9C000000, 0x3E1EBA7F, 0x6E771F13,
- 0x3FF00470, 0x9C000000, 0x3E396913, 0xFE3ED608,
- 0x3FF00474, 0xA0000000, 0xBE34CC73, 0x6E82850F,
- 0x3FF00478, 0xA0000000, 0xBE078FB3, 0x352966B7,
- 0x3FF0047C, 0xA0000000, 0x3E2DF116, 0x33AFF8AE,
- 0x3FF00480, 0xA4000000, 0xBE3F0CEE, 0xE909EADD,
- 0x3FF00484, 0xA4000000, 0xBE2A04C8, 0xD6938597,
- 0x3FF00488, 0xA4000000, 0x3E1460AA, 0x5C6654D8,
- 0x3FF0048C, 0xA4000000, 0x3E3742BE, 0x22213ECF,
- 0x3FF00490, 0xA8000000, 0xBE3682A9, 0xC631A356,
- 0x3FF00494, 0xA8000000, 0xBE10E034, 0x7777B644,
- 0x3FF00498, 0xA8000000, 0x3E2C4528, 0x3E3B0991,
- 0x3FF0049C, 0xAC000000, 0xBE3F72C6, 0x0B3E269F,
- 0x3FF004A0, 0xAC000000, 0xBE29F037, 0x31DF923B,
- 0x3FF004A4, 0xAC000000, 0x3E164A4D, 0xE82713DE,
- 0x3FF004A8, 0xAC000000, 0x3E382D47, 0x31AFAC4B,
- 0x3FF004AC, 0xB0000000, 0xBE352800, 0x6DFCE978,
- 0x3FF004B0, 0xB0000000, 0xBE036A1B, 0x07D68D27,
- 0x3FF004B4, 0xB0000000, 0x3E305D7E, 0x5CB71F6F,
- 0x3FF004B8, 0xB4000000, 0xBE3CC7BB, 0x30E5E990,
- 0x3FF004BC, 0xB4000000, 0xBE23B9E0, 0x0BA17DEA,
- 0x3FF004C0, 0xB4000000, 0x3E223BBF, 0xC3EF9BD8,
- 0x3FF004C4, 0xB4000000, 0x3E3C28B4, 0x8A74ECC0,
- 0x3FF004C8, 0xB8000000, 0xBE30BC72, 0x085831CA,
- 0x3FF004CC, 0xB8000000, 0x3E037361, 0x6C8D1FC8,
- 0x3FF004D0, 0xB8000000, 0x3E35A94F, 0x3033A0B8,
- 0x3FF004D4, 0xBC000000, 0xBE370BC8, 0xFC7107DE,
- 0x3FF004D8, 0xBC000000, 0xBE0D86E2, 0xA2D908DA,
- 0x3FF004DC, 0xBC000000, 0x3E2F742A, 0x58ED155E,
- 0x3FF004E0, 0xC0000000, 0xBE3CCAF4, 0x75FACDD0,
- 0x3FF004E4, 0xC0000000, 0xBE227FF2, 0x6F5BE5D3,
- 0x3FF004E8, 0xC0000000, 0x3E24B60D, 0xD6BCA827,
- 0x3FF004EC, 0xC0000000, 0x3E3E060B, 0xF72B40D6,
- 0x3FF004F0, 0xC4000000, 0xBE2C7DD4, 0x208BE3E3,
- 0x3FF004F4, 0xC4000000, 0x3E163093, 0x642FDDB8,
- 0x3FF004F8, 0xC4000000, 0x3E396738, 0xB72239A5,
- 0x3FF004FC, 0xC8000000, 0xBE32ADAE, 0x7201ED9B,
- 0x3FF00500, 0xC8000000, 0x3DF4D6F6, 0x1A0C05F3,
- 0x3FF00504, 0xC8000000, 0x3E355892, 0x360B8346,
- 0x3FF00508, 0xCC000000, 0xBE368C45, 0xF0C06435,
- 0x3FF0050C, 0xCC000000, 0xBE0308C8, 0x760DA2F6,
- 0x3FF00510, 0xCC000000, 0x3E31DA18, 0xE008D57B,
- 0x3FF00514, 0xD0000000, 0xBE39DAB0, 0x205F82F4,
- 0x3FF00518, 0xD0000000, 0xBE15FDD0, 0x2FE5E3E3,
- 0x3FF0051C, 0xD0000000, 0x3E2DD79A, 0x42787241,
- 0x3FF00520, 0xD4000000, 0xBE3C98EC, 0x94BD25F4,
- 0x3FF00524, 0xD4000000, 0xBE201B42, 0x53C89D03,
- 0x3FF00528, 0xD4000000, 0x3E291B5E, 0xCB901057,
- 0x3FF0052C, 0xD8000000, 0xBE3EC6FA, 0xE1B6D837,
- 0x3FF00530, 0xD8000000, 0xBE24173F, 0xF8BF49E7,
- 0x3FF00534, 0xD8000000, 0x3E257F80, 0x339DDB57,
- 0x3FF00538, 0xD8000000, 0x3E3F9B25, 0x64D62C5C,
- 0x3FF0053C, 0xDC000000, 0xBE26F2E0, 0x2E913659,
- 0x3FF00540, 0xDC000000, 0x3E2303FF, 0x52E7CB93,
- 0x3FF00544, 0xDC000000, 0x3E3E8D74, 0xAB0CFEF5,
- 0x3FF00548, 0xE0000000, 0xBE28AE22, 0x1CF7FDE6,
- 0x3FF0054C, 0xE0000000, 0x3E21A8DD, 0x01B47B93,
- 0x3FF00550, 0xE0000000, 0x3E3E0FF3, 0x5D1107E2,
- 0x3FF00554, 0xE4000000, 0xBE294904, 0xEBAC99E1,
- 0x3FF00558, 0xE4000000, 0x3E216E1A, 0x184B2814,
- 0x3FF0055C, 0xE4000000, 0x3E3E22A1, 0xE706008B,
- 0x3FF00560, 0xE8000000, 0xBE28C387, 0xC267616A,
- 0x3FF00564, 0xE8000000, 0x3E2253B7, 0x6EF3B008,
- 0x3FF00568, 0xE8000000, 0x3E3EC580, 0xB50FF371,
- 0x3FF0056C, 0xEC000000, 0xBE271DA9, 0xC8E0096B,
- 0x3FF00570, 0xEC000000, 0x3E2459B5, 0xDDF69498,
- 0x3FF00574, 0xEC000000, 0x3E3FF890, 0x33533C31,
- 0x3FF00578, 0xF0000000, 0xBE24576A, 0x26CDA497,
- 0x3FF0057C, 0xF0000000, 0x3E278016, 0x3D9CF923,
- 0x3FF00580, 0xF4000000, 0xBE3E442F, 0x320B787B,
- 0x3FF00584, 0xF4000000, 0xBE2070C8, 0x03E6A36B,
- 0x3FF00588, 0xF4000000, 0x3E2BC6D9, 0x6630A33F,
- 0x3FF0058C, 0xF8000000, 0xBE3BF0BD, 0x0EE72CBF,
- 0x3FF00590, 0xF8000000, 0xBE16D385, 0x0FC1A853,
- 0x3FF00594, 0xF8000000, 0x3E309700, 0x17FDFD5D,
- 0x3FF00598, 0xFC000000, 0xBE390D18, 0xF71A91AC,
- 0x3FF0059C, 0xFC000000, 0xBE050963, 0x69C58B86,
- 0x3FF005A0, 0xFC000000, 0x3E33DAC5, 0xB9A504CD,
- 0x3FF005A5, 0x00000000, 0xBE359942, 0x7E800734,
- 0x3FF005A9, 0x00000000, 0x3DF02BAE, 0xE59934CD,
- 0x3FF005AD, 0x00000000, 0x3E37AEBE, 0x04333E0E,
- 0x3FF005B1, 0x04000000, 0xBE319539, 0x38F19C2F,
- 0x3FF005B5, 0x04000000, 0x3E14DB54, 0xEBB1C157,
- 0x3FF005B9, 0x04000000, 0x3E3C12E9, 0x63CED05D,
- 0x3FF005BD, 0x08000000, 0xBE2A01F9, 0x74921CAF,
- 0x3FF005C1, 0x08000000, 0x3E23F645, 0xC94C85F2,
- 0x3FF005C5, 0x0C000000, 0xBE3EF8B7, 0xBB61CBEE,
- 0x3FF005C9, 0x0C000000, 0xBE1F7232, 0x597F2931,
- 0x3FF005CD, 0x0C000000, 0x3E2E9F48, 0xAF5B7345,
- 0x3FF005D1, 0x10000000, 0xBE397424, 0xED37CD5F,
- 0x3FF005D5, 0x10000000, 0xBE013F43, 0x08775C6B,
- 0x3FF005D9, 0x10000000, 0x3E35345A, 0x0029D3DB,
- 0x3FF005DD, 0x14000000, 0xBE335F5D, 0xC58C1962,
- 0x3FF005E1, 0x14000000, 0x3E1073C1, 0x47430E04,
- 0x3FF005E5, 0x14000000, 0x3E3BA944, 0x4A41E248,
- 0x3FF005E9, 0x18000000, 0xBE2974C3, 0xB06E888E,
- 0x3FF005ED, 0x18000000, 0x3E25E3FB, 0xDCCD9333,
- 0x3FF005F1, 0x1C000000, 0xBE3D519C, 0x5DE27951,
- 0x3FF005F5, 0x1C000000, 0xBE1614C2, 0xE4464502,
- 0x3FF005F9, 0x1C000000, 0x3E325740, 0xE0DAFE93,
- 0x3FF005FD, 0x20000000, 0xBE35BC47, 0x8C1B4C10,
- 0x3FF00601, 0x20000000, 0x3E0201B0, 0x20686CE9,
- 0x3FF00605, 0x20000000, 0x3E3A4CB9, 0x95558B63,
- 0x3FF00609, 0x24000000, 0xBE2B2D79, 0xA880A3EB,
- 0x3FF0060D, 0x24000000, 0x3E252BA5, 0x9699EEB7,
- 0x3FF00611, 0x28000000, 0xBE3D2D97, 0x880115E1,
- 0x3FF00615, 0x28000000, 0xBE1383EF, 0x28A3D788,
- 0x3FF00619, 0x28000000, 0x3E337BA6, 0x08D6DC23,
- 0x3FF0061D, 0x2C000000, 0xBE3417B2, 0x0B001A08,
- 0x3FF00621, 0x2C000000, 0x3E1193EF, 0xF94EB99A,
- 0x3FF00625, 0x2C000000, 0x3E3CF1B0, 0x28D3BD3B,
- 0x3FF00629, 0x30000000, 0xBE24E32B, 0x0EFCC982,
- 0x3FF0062D, 0x30000000, 0x3E2C7655, 0xE2BDA47F,
- 0x3FF00631, 0x34000000, 0xBE39080E, 0x689312F8,
- 0x3FF00635, 0x34000000, 0xBDCDA0C8, 0xA9444DB4,
- 0x3FF00639, 0x34000000, 0x3E38A191, 0x7B21FE23,
- 0x3FF0063D, 0x38000000, 0xBE2CE32A, 0x7E67E1E1,
- 0x3FF00641, 0x38000000, 0x3E251694, 0x875A71F0,
- 0x3FF00645, 0x3C000000, 0xBE3C67CF, 0xF838F455,
- 0x3FF00649, 0x3C000000, 0xBE0A571F, 0x77274052,
- 0x3FF0064D, 0x3C000000, 0x3E35E20E, 0x63AAEFA8,
- 0x3FF00651, 0x40000000, 0xBE30E0F8, 0xFC87DA70,
- 0x3FF00655, 0x40000000, 0x3E20D80B, 0xE9089AFD,
- 0x3FF00659, 0x44000000, 0xBE3E36F4, 0xC52F03BD,
- 0x3FF0065D, 0x44000000, 0xBE1327A4, 0x9680E14E,
- 0x3FF00661, 0x44000000, 0x3E34B328, 0xD732468D,
- 0x3FF00665, 0x48000000, 0xBE31BFBE, 0xCAB5EF4A,
- 0x3FF00669, 0x48000000, 0x3E1F757F, 0xE2A2FBE1,
- 0x3FF0066D, 0x4C000000, 0xBE3E757A, 0xDAB014DA,
- 0x3FF00671, 0x4C000000, 0xBE12E13D, 0x02FB3FBB,
- 0x3FF00675, 0x4C000000, 0x3E3514E2, 0xCA7E298D,
- 0x3FF00679, 0x50000000, 0xBE310DE4, 0xB4F78B94,
- 0x3FF0067D, 0x50000000, 0x3E21BEB4, 0x89C35D05,
- 0x3FF00681, 0x54000000, 0xBE3D2360, 0x43F4895C,
- 0x3FF00685, 0x54000000, 0xBE08B0A2, 0x5BC49ADF,
- 0x3FF00689, 0x54000000, 0x3E37073E, 0x32573159,
- 0x3FF0068D, 0x58000000, 0xBE2D96D1, 0x8D0732D2,
- 0x3FF00691, 0x58000000, 0x3E26E3ED, 0x9BF15E67,
- 0x3FF00695, 0x5C000000, 0xBE3A40A3, 0x0C3250FB,
- 0x3FF00699, 0x5C000000, 0x3DBCC9AE, 0xFD0AE214,
- 0x3FF0069D, 0x5C000000, 0x3E3A8A3D, 0x038868A1,
- 0x3FF006A1, 0x60000000, 0xBE25F092, 0x151D21CE,
- 0x3FF006A5, 0x60000000, 0x3E2F2A6F, 0x11738C43,
- 0x3FF006A9, 0x64000000, 0xBE35CD41, 0x3E9CE96D,
- 0x3FF006AD, 0x64000000, 0x3E138132, 0x8DBC2918,
- 0x3FF006B1, 0x64000000, 0x3E3F9DE1, 0x32DF4C13,
- 0x3FF006B5, 0x68000000, 0xBE16520E, 0x3129E0B2,
- 0x3FF006B9, 0x68000000, 0x3E35491E, 0x69F36A61,
- 0x3FF006BD, 0x6C000000, 0xBE2F9271, 0xCCCABCD4,
- 0x3FF006C1, 0x6C000000, 0x3E2668ED, 0x0D59B899,
- 0x3FF006C5, 0x70000000, 0xBE39BDD3, 0x4AD435A0,
- 0x3FF006C9, 0x70000000, 0x3DF5FE9A, 0x9191CABB,
- 0x3FF006CD, 0x70000000, 0x3E3C8DAD, 0x6676850B,
- 0x3FF006D1, 0x74000000, 0xBE206910, 0x1D74934A,
- 0x3FF006D5, 0x74000000, 0x3E331949, 0x4D886478,
- 0x3FF006D9, 0x78000000, 0xBE3188DE, 0x80BFBBC2,
- 0x3FF006DD, 0x78000000, 0x3E23CA01, 0x14DE1719,
- 0x3FF006E1, 0x7C000000, 0xBE3A9D19, 0x8CE98EC0,
- 0x3FF006E5, 0x7C000000, 0x3DEE1A67, 0xA705A6E7,
- 0x3FF006E9, 0x7C000000, 0x3E3C8EC6, 0xECD5F851,
- 0x3FF006ED, 0x80000000, 0xBE1F0CF9, 0xE839CE4D,
- 0x3FF006F1, 0x80000000, 0x3E33FAC3, 0x0C8CA46A,
- 0x3FF006F5, 0x84000000, 0xBE303734, 0x7B5703D8,
- 0x3FF006F9, 0x84000000, 0x3E274DB5, 0xE490A112,
- 0x3FF006FD, 0x88000000, 0xBE386B0E, 0xA693A093,
- 0x3FF00701, 0x88000000, 0x3E0C9875, 0xF0B73DAA,
- 0x3FF00705, 0x88000000, 0x3E3FA133, 0x2449A944,
- 0x3FF00709, 0x8C000000, 0xBE110285, 0xBFE66C14,
- 0x3FF0070D, 0x8C000000, 0x3E37ED91, 0x054EDCBD,
- 0x3FF00711, 0x90000000, 0xBE27A86A, 0xEFB65924,
- 0x3FF00715, 0x90000000, 0x3E307A0B, 0x1C8A0CF1,
- 0x3FF00719, 0x94000000, 0xBE3327AD, 0x397FB1D6,
- 0x3FF0071D, 0x94000000, 0x3E228D43, 0x1412B9FB,
- 0x3FF00721, 0x98000000, 0xBE3A3B08, 0x94D8FFB0,
- 0x3FF00725, 0x98000000, 0x3E029AA3, 0x6ED80040,
- 0x3FF00729, 0x98000000, 0x3E3EF1B8, 0x9627250A,
- 0x3FF0072D, 0x9C000000, 0xBE117F70, 0x5FCB1B09,
- 0x3FF00731, 0x9C000000, 0x3E385E96, 0x678F0789,
- 0x3FF00735, 0xA0000000, 0xBE25A5DF, 0xCEA3485B,
- 0x3FF00739, 0xA0000000, 0x3E320B90, 0xFF6D0303,
- 0x3FF0073D, 0xA4000000, 0xBE3105E6, 0xE03334FF,
- 0x3FF00741, 0xA4000000, 0x3E27F150, 0xFB9F056D,
- 0x3FF00745, 0xA8000000, 0xBE36F8C0, 0xE28905F4,
- 0x3FF00749, 0xA8000000, 0x3E189774, 0x0B1407AA,
- 0x3FF0074D, 0xAC000000, 0xBE3CAB7D, 0xCE4493C4,
- 0x3FF00751, 0xAC000000, 0x3DE265D5, 0xCB817D78,
- 0x3FF00755, 0xAC000000, 0x3E3DE1E2, 0x7CA8B4E3,
- 0x3FF00759, 0xB0000000, 0xBE12FD89, 0x7D730FC6,
- 0x3FF0075D, 0xB0000000, 0x3E38AF60, 0x1E4D7759,
- 0x3FF00761, 0xB4000000, 0xBE23A3AC, 0x0CAD84A2,
- 0x3FF00765, 0xB4000000, 0x3E33BCFB, 0x36B866FD,
- 0x3FF00769, 0xB8000000, 0xBE2D4858, 0x4D0667A1,
- 0x3FF0076D, 0xB8000000, 0x3E2E1567, 0xCBF08E6A,
- 0x3FF00771, 0xBC000000, 0xBE333664, 0x9FD34D05,
- 0x3FF00775, 0xBC000000, 0x3E253114, 0x9837D6E0,
- 0x3FF00779, 0xC0000000, 0xBE37887F, 0x5238327D,
- 0x3FF0077D, 0xC0000000, 0x3E1999FA, 0x24C8DC90,
- 0x3FF00781, 0xC4000000, 0xBE3B9A7C, 0x1DA2F8BE,
- 0x3FF00785, 0xC4000000, 0x3E03A485, 0xEA50EE6A,
- 0x3FF00789, 0xC8000000, 0xBE3F6C5A, 0xE204A449,
- 0x3FF0078D, 0xC8000000, 0xBDF3D3EF, 0x78D5D0F3,
- 0x3FF00791, 0xC8000000, 0x3E3D01E4, 0x80B1D66C,
- 0x3FF00795, 0xCC000000, 0xBE12BBC1, 0xD5149796,
- 0x3FF00799, 0xCC000000, 0x3E39B042, 0x2A8F92F0,
- 0x3FF0079D, 0xD0000000, 0xBE1F820E, 0x6F386487,
- 0x3FF007A1, 0xD0000000, 0x3E369EBE, 0x3BA3BCDA,
- 0x3FF007A5, 0xD4000000, 0xBE25A3F0, 0x96320652,
- 0x3FF007A9, 0xD4000000, 0x3E33CD58, 0xD3FD8FCA,
- 0x3FF007AD, 0xD8000000, 0xBE2B069C, 0xC62D40B1,
- 0x3FF007B1, 0xD8000000, 0x3E313C12, 0x13AC5766,
- 0x3FF007B5, 0xDC000000, 0xBE2FE90B, 0x876F3A0B,
- 0x3FF007B9, 0xDC000000, 0x3E2DD5D4, 0x357EDEB8,
- 0x3FF007BD, 0xE0000000, 0xBE32259E, 0x4CEC957E,
- 0x3FF007C1, 0xE0000000, 0x3E29B3C2, 0x128C86C6,
- 0x3FF007C5, 0xE4000000, 0xBE341697, 0xDEA61608,
- 0x3FF007C9, 0xE4000000, 0x3E2611ED, 0xFEA09E70,
- 0x3FF007CD, 0xE8000000, 0xBE35C772, 0x58D49AE3,
- 0x3FF007D1, 0xE8000000, 0x3E22F058, 0x39DA3D42,
- 0x3FF007D5, 0xEC000000, 0xBE37382D, 0x9B689043,
- 0x3FF007D9, 0xEC000000, 0x3E204F01, 0x04589AD6,
- 0x3FF007DD, 0xF0000000, 0xBE3868C9, 0x86525259,
- 0x3FF007E1, 0xF0000000, 0x3E1C5BD1, 0x3C761DAC,
- 0x3FF007E5, 0xF4000000, 0xBE395945, 0xF9822D4C,
- 0x3FF007E9, 0xF4000000, 0x3E191A1E, 0x8F4221F9,
- 0x3FF007ED, 0xF8000000, 0xBE3A09A2, 0xD4E85D3A,
- 0x3FF007F1, 0xF8000000, 0x3E16D8EA, 0x81547225,
- 0x3FF007F5, 0xFC000000, 0xBE3A79DF, 0xF8750E3B,
- 0x3FF007F9, 0xFC000000, 0x3E159835, 0x92EC7DE3,
- 0x3FF007FE, 0x00000000, 0xBE3AA9FD, 0x44185C5D } };
-
-#else
-#ifdef LITTLE_ENDI
-
-static const union {
- int i[1424];
- double x[712];
-} coar = { .i = {
- 0xC8000000, 0x3FE69A59, 0x6079C9F7, 0x3DF22D4D,
- 0xC8000000, 0x3FE6A5A9, 0x25AF6823, 0x3E19882D,
- 0x74000000, 0x3FE6B0FF, 0x31DABF59, 0xBE221476,
- 0xC8000000, 0x3FE6BC5A, 0x99A2DC0A, 0x3E2312AC,
- 0xD0000000, 0x3FE6C7BB, 0xCE9F9355, 0xBE265926,
- 0x84000000, 0x3FE6D322, 0x2D298DED, 0x3E2F2C26,
- 0xF4000000, 0x3FE6DE8E, 0x1E748D2F, 0xBE2EC28E,
- 0x14000000, 0x3FE6EA01, 0xC68CB7E5, 0x3E2D8C6D,
- 0xF4000000, 0x3FE6F578, 0x419FE2F0, 0x3DEE1A9E,
- 0x90000000, 0x3FE700F6, 0xDEAEAE34, 0xBDFF1AFD,
- 0xEC000000, 0x3FE70C79, 0x558B7122, 0xBE0730FE,
- 0x0C000000, 0x3FE71803, 0x2D280C3B, 0xBE25CB85,
- 0xF0000000, 0x3FE72391, 0x337B7B54, 0xBE06F2CE,
- 0x9C000000, 0x3FE72F26, 0x45C02B72, 0x3E289BCA,
- 0x18000000, 0x3FE73AC1, 0x5039F1CA, 0xBE18DEA6,
- 0x60000000, 0x3FE74661, 0x86CE0538, 0xBE09D090,
- 0x78000000, 0x3FE75207, 0xCFCE5DDB, 0x3E290E79,
- 0x68000000, 0x3FE75DB3, 0xB249A17C, 0x3DD61DF0,
- 0x2C000000, 0x3FE76965, 0xE13445F7, 0x3E2F22F7,
- 0xD0000000, 0x3FE7751C, 0x874E75CE, 0xBE2CD454,
- 0x4C000000, 0x3FE780DA, 0xDF43E3BC, 0xBE0159CE,
- 0xA8000000, 0x3FE78C9D, 0x699A1332, 0x3E279291,
- 0xEC000000, 0x3FE79866, 0x2DD98C6C, 0xBE2A0BCD,
- 0x10000000, 0x3FE7A436, 0x15AC979E, 0x3E25F375,
- 0x20000000, 0x3FE7B00B, 0x2FEAFCF6, 0x3E26CCF5,
- 0x1C000000, 0x3FE7BBE6, 0x53ADAD67, 0x3E27D4F4,
- 0x08000000, 0x3FE7C7C7, 0x7FBD9566, 0x3E10EEC7,
- 0xE4000000, 0x3FE7D3AD, 0x9A831D86, 0x3E2837F0,
- 0xB8000000, 0x3FE7DF9A, 0x5CB4C35B, 0xBE129BE0,
- 0x80000000, 0x3FE7EB8D, 0x0234F04D, 0x3E23990A,
- 0x44000000, 0x3FE7F786, 0x64D5C842, 0x3E2EB807,
- 0x08000000, 0x3FE80385, 0x02B4E9E8, 0x3E0FC86F,
- 0xCC000000, 0x3FE80F89, 0x7B4274BF, 0xBDD7B5B3,
- 0x94000000, 0x3FE81B94, 0xB899B00F, 0xBE16888B,
- 0x60000000, 0x3FE827A5, 0x5E94D155, 0x3E288971,
- 0x38000000, 0x3FE833BC, 0x099F3E5E, 0x3E2AEEB2,
- 0x20000000, 0x3FE83FD9, 0x3FF60B7C, 0xBE23B922,
- 0x14000000, 0x3FE84BFC, 0x2DBD8012, 0xBDF7D3B1,
- 0x1C000000, 0x3FE85825, 0xA8872BEB, 0xBDF24BA3,
- 0x38000000, 0x3FE86454, 0x01AA18A7, 0x3E2EFE04,
- 0x70000000, 0x3FE87089, 0x944496A2, 0x3E21986C,
- 0xC4000000, 0x3FE87CC4, 0xB71FFAFF, 0x3E096A8B,
- 0x38000000, 0x3FE88906, 0xBC4C7AC5, 0xBE21CE0A,
- 0xCC000000, 0x3FE8954D, 0xBAC02491, 0xBE076F45,
- 0x84000000, 0x3FE8A19B, 0xD922B925, 0x3E2B4FA2,
- 0x68000000, 0x3FE8ADEF, 0x641863AF, 0x3DF759DB,
- 0x78000000, 0x3FE8BA49, 0xC6AB5E04, 0xBE2DB97C,
- 0xB4000000, 0x3FE8C6A9, 0xE2156713, 0xBE25364C,
- 0x20000000, 0x3FE8D310, 0x862BEFF7, 0x3E1BEB7C,
- 0xC4000000, 0x3FE8DF7C, 0x1CEA33A5, 0xBDF4DD0C,
- 0xA0000000, 0x3FE8EBEF, 0x51797D47, 0xBE2537DF,
- 0xB4000000, 0x3FE8F868, 0xF0107B28, 0x3E0FB1C4,
- 0x08000000, 0x3FE904E8, 0xE01B68BD, 0x3E0AD6A1,
- 0x9C000000, 0x3FE9116D, 0x1F78D9D9, 0x3E292117,
- 0x78000000, 0x3FE91DF9, 0x4F50E5CF, 0xBE1D75DA,
- 0x98000000, 0x3FE92A8B, 0x74959E58, 0x3DE5102B,
- 0x04000000, 0x3FE93724, 0xD2216C35, 0xBE01CA50,
- 0xBC000000, 0x3FE943C2, 0xB0B05884, 0x3E225BFD,
- 0xC8000000, 0x3FE95067, 0x60B7C5C1, 0xBE0F2183,
- 0x24000000, 0x3FE95D13, 0xB5860441, 0x3E2FB47A,
- 0xDC000000, 0x3FE969C4, 0xE2D4059E, 0xBE01FFD2,
- 0xEC000000, 0x3FE9767C, 0x12BB6A8D, 0xBDE9ED72,
- 0x58000000, 0x3FE9833B, 0x43BFFB24, 0x3E2B3815,
- 0x28000000, 0x3FE99000, 0xEE9EAD1E, 0x3E03FA22,
- 0x5C000000, 0x3FE99CCB, 0x377138F7, 0xBE213841,
- 0xF4000000, 0x3FE9A99C, 0xDB636C94, 0x3E178105,
- 0xF8000000, 0x3FE9B674, 0xF5720122, 0x3E1E5E7A,
- 0x6C000000, 0x3FE9C353, 0xA2AC5AAE, 0xBE238BFF,
- 0x4C000000, 0x3FE9D038, 0xF93BDBD8, 0x3E270893,
- 0xA4000000, 0x3FE9DD23, 0x354B86CF, 0x3DF40420,
- 0x74000000, 0x3FE9EA15, 0x88CB06B7, 0xBE2D76D3,
- 0xBC000000, 0x3FE9F70D, 0x9ED0EC60, 0xBE251639,
- 0x80000000, 0x3FEA040C, 0xE2DDE506, 0x3E1F06E9,
- 0xC8000000, 0x3FEA1111, 0x8E6DB477, 0x3E014549,
- 0x94000000, 0x3FEA1E1D, 0xF8716509, 0xBDF4BC17,
- 0xE8000000, 0x3FEA2B2F, 0xDA723A49, 0xBE2107DB,
- 0xC4000000, 0x3FEA3848, 0x986AA369, 0x3E1A932A,
- 0x30000000, 0x3FEA4568, 0x41592CDB, 0x3E198092,
- 0x30000000, 0x3FEA528E, 0x676BCAB8, 0xBE2E260F,
- 0xC0000000, 0x3FEA5FBA, 0x2D5D5610, 0x3DE2E821,
- 0xE8000000, 0x3FEA6CED, 0x7DA20167, 0x3E2F7046,
- 0xB0000000, 0x3FEA7A27, 0xF9FAAD30, 0xBE1D2832,
- 0x14000000, 0x3FEA8768, 0x43FA6C45, 0xBE23F788,
- 0x18000000, 0x3FEA94AF, 0xAA082732, 0x3E011E27,
- 0xC4000000, 0x3FEAA1FC, 0xC682F0BF, 0xBE20BACB,
- 0x18000000, 0x3FEAAF51, 0x7BD08C78, 0xBE2DC7DD,
- 0x14000000, 0x3FEABCAC, 0xA3B10F9A, 0x3E2271A2,
- 0xC4000000, 0x3FEACA0D, 0x7966F94C, 0xBE15449C,
- 0x24000000, 0x3FEAD776, 0x6FD8F3EE, 0x3DD06137,
- 0x3C000000, 0x3FEAE4E5, 0x8C5A144A, 0xBE267CD1,
- 0x0C000000, 0x3FEAF25B, 0xB59DA94B, 0xBE29E584,
- 0x98000000, 0x3FEAFFD7, 0x7B52192F, 0xBE23DFCF,
- 0xE4000000, 0x3FEB0D5A, 0x78A76B45, 0xBE1CF2FE,
- 0xF4000000, 0x3FEB1AE4, 0x7EC80FF6, 0xBE23A561,
- 0xC8000000, 0x3FEB2875, 0x932EED68, 0x3E22C4C9,
- 0x68000000, 0x3FEB360D, 0xB5833C97, 0x3E2B085C,
- 0xD8000000, 0x3FEB43AB, 0x93B9319A, 0xBE01F093,
- 0x18000000, 0x3FEB5151, 0xFABCE670, 0xBE254F01,
- 0x28000000, 0x3FEB5EFD, 0x627ABFB0, 0x3E2F24C2,
- 0x14000000, 0x3FEB6CB0, 0xE6AC0B48, 0x3E1F1EEC,
- 0xDC000000, 0x3FEB7A69, 0x127F9ABC, 0xBE1A8671,
- 0x80000000, 0x3FEB882A, 0xC87C73B3, 0xBDCB0C28,
- 0x08000000, 0x3FEB95F2, 0x7F2B5A97, 0xBE22E8DD,
- 0x74000000, 0x3FEBA3C0, 0x2D22A9D5, 0xBE1B3645,
- 0xC8000000, 0x3FEBB195, 0x428F8B88, 0x3E0ADACA,
- 0x0C000000, 0x3FEBBF72, 0xCDF9F681, 0xBE2E9E07,
- 0x3C000000, 0x3FEBCD55, 0x7FA54ACF, 0xBE08A127,
- 0x60000000, 0x3FEBDB3F, 0x8225B385, 0x3E0E92CE,
- 0x7C000000, 0x3FEBE930, 0x7BB09485, 0x3DF38C2A,
- 0x94000000, 0x3FEBF728, 0xF681FA5F, 0xBE2DFD64,
- 0xA4000000, 0x3FEC0527, 0xDCE88BD2, 0x3E2E384D,
- 0xBC000000, 0x3FEC132D, 0xFE46A893, 0xBE20F111,
- 0xD4000000, 0x3FEC213A, 0xB189BFDA, 0x3E193DA1,
- 0xF8000000, 0x3FEC2F4E, 0x0E39FB00, 0xBE20E3A1,
- 0x24000000, 0x3FEC3D6A, 0x30F0FAC5, 0x3E1DB044,
- 0x64000000, 0x3FEC4B8C, 0x97446B17, 0xBE2BC12C,
- 0xB4000000, 0x3FEC59B5, 0x963F4150, 0xBE282696,
- 0x18000000, 0x3FEC67E6, 0x3049824B, 0x3E224D26,
- 0x98000000, 0x3FEC761D, 0x87F84C7D, 0x3E2C5BA5,
- 0x38000000, 0x3FEC845C, 0xC4852339, 0xBDE1D14D,
- 0xF8000000, 0x3FEC92A1, 0x5588D9E1, 0xBE1A451E,
- 0xDC000000, 0x3FECA0EE, 0x68BFF457, 0xBE1D3B96,
- 0xE8000000, 0x3FECAF42, 0x4DADF774, 0xBE18B670,
- 0x20000000, 0x3FECBD9E, 0x7FB1FC01, 0xBE1A1548,
- 0x88000000, 0x3FECCC00, 0x78FC5AF0, 0xBE273F2E,
- 0x20000000, 0x3FECDA6A, 0xA6F4A841, 0x3E1D218F,
- 0xF0000000, 0x3FECE8DA, 0x4D002CA0, 0x3E2E0BA9,
- 0xFC000000, 0x3FECF752, 0x065EF979, 0x3E20F4BB,
- 0x48000000, 0x3FED05D2, 0x11793B33, 0xBE2ED3D5,
- 0xD0000000, 0x3FED1458, 0x913341B3, 0x3E115E3C,
- 0xA0000000, 0x3FED22E6, 0xB3546109, 0x3DE97C02,
- 0xB8000000, 0x3FED317B, 0x1BF898EF, 0x3E087540,
- 0x1C000000, 0x3FED4018, 0x346F9641, 0x3E209430,
- 0xD0000000, 0x3FED4EBB, 0x88F4B20B, 0x3E2B6DF4,
- 0xDC000000, 0x3FED5D66, 0x0CB26035, 0xBE2EC68F,
- 0x38000000, 0x3FED6C19, 0x1F44D9C3, 0x3E2CA2C8,
- 0xF4000000, 0x3FED7AD2, 0x41704EE0, 0x3E10E6F4,
- 0x0C000000, 0x3FED8994, 0x25F8F0E2, 0x3E2F9273,
- 0x88000000, 0x3FED985C, 0x318798DE, 0x3E2D041A,
- 0x6C000000, 0x3FEDA72C, 0x9349CF58, 0xBE005680,
- 0xB8000000, 0x3FEDB603, 0xCF0C934D, 0xBE10F665,
- 0x70000000, 0x3FEDC4E2, 0x19461C64, 0x3E166124,
- 0x9C000000, 0x3FEDD3C8, 0x405624C8, 0xBE1B2ED6,
- 0x3C000000, 0x3FEDE2B6, 0x62171501, 0xBE273A7F,
- 0x54000000, 0x3FEDF1AB, 0xE36E1450, 0xBE26022B,
- 0xE8000000, 0x3FEE00A7, 0x2E07AE15, 0xBE1C341E,
- 0xFC000000, 0x3FEE0FAB, 0x18D0E701, 0xBDFC7EAE,
- 0x94000000, 0x3FEE1EB7, 0xECD1FF8B, 0x3E06B34F,
- 0xB4000000, 0x3FEE2DCA, 0x6813A649, 0x3E1394A3,
- 0x60000000, 0x3FEE3CE5, 0xC1754D14, 0x3E045496,
- 0x9C000000, 0x3FEE4C07, 0xF5C6087C, 0xBE180FFF,
- 0x68000000, 0x3FEE5B31, 0xADD9A300, 0x3E22FBCD,
- 0xCC000000, 0x3FEE6A62, 0xAF0289E5, 0x3E2EC7C7,
- 0xCC000000, 0x3FEE799B, 0x3FB3EDD4, 0x3E242182,
- 0x6C000000, 0x3FEE88DC, 0x04E39885, 0xBE201304,
- 0xAC000000, 0x3FEE9824, 0xE6831D31, 0xBE20D352,
- 0x90000000, 0x3FEEA774, 0x618DFCEB, 0x3E1E032D,
- 0x20000000, 0x3FEEB6CC, 0xF9BB457E, 0x3E1956A3,
- 0x60000000, 0x3FEEC62B, 0x50845DB2, 0xBE2A77E0,
- 0x4C000000, 0x3FEED592, 0x47C43858, 0x3E2714F7,
- 0xF0000000, 0x3FEEE500, 0x71813A66, 0x3E2EED96,
- 0x50000000, 0x3FEEF477, 0x4FB4AA34, 0xBE04CDBE,
- 0x6C000000, 0x3FEF03F5, 0x86EB4FF5, 0xBE2774A2,
- 0x48000000, 0x3FEF137B, 0xAD43B2D2, 0xBE29DD95,
- 0xE8000000, 0x3FEF2308, 0xAC16E506, 0xBE1CADB0,
- 0x50000000, 0x3FEF329E, 0x58745C7B, 0x3E12AC33,
- 0x88000000, 0x3FEF423B, 0x6EC2D854, 0xBE248118,
- 0x8C000000, 0x3FEF51E0, 0x304ACE08, 0x3E26986B,
- 0x68000000, 0x3FEF618D, 0x3B09354E, 0x3E126D81,
- 0x1C000000, 0x3FEF7142, 0x773C23B3, 0x3DF06AAE,
- 0xAC000000, 0x3FEF80FE, 0xD82EF423, 0xBDA105B6,
- 0x1C000000, 0x3FEF90C3, 0x465499B8, 0x3DECDEED,
- 0x70000000, 0x3FEFA08F, 0xE2EF03AE, 0x3E0AEFD4,
- 0xAC000000, 0x3FEFB063, 0x0567B2E7, 0x3E1BD4C0,
- 0xD4000000, 0x3FEFC03F, 0x4F97FCBF, 0x3E26AA22,
- 0xF0000000, 0x3FEFD023, 0x5E4E88D1, 0xBE2F9420,
- 0xFC000000, 0x3FEFE00F, 0x438E52E2, 0xBE254004,
- 0x00000000, 0x3FEFF004, 0xEEE93EFC, 0xBE1552AA,
- 0x00000000, 0x3FF00000, 0x00000000, 0x00000000,
- 0x00000000, 0x3FF00802, 0x4449F507, 0x3E155800,
- 0x04000000, 0x3FF01008, 0x882D75D6, 0xBE354AA8,
- 0x08000000, 0x3FF01812, 0x3740DE56, 0x3E303610,
- 0x14000000, 0x3FF02020, 0x5B0C3264, 0x3E360044,
- 0x28000000, 0x3FF02832, 0x0197EDC3, 0x3E3C4C26,
- 0x48000000, 0x3FF03048, 0x5046CA09, 0x3E0B103B,
- 0x74000000, 0x3FF03862, 0xF9A62624, 0xBE34659C,
- 0xAC000000, 0x3FF04080, 0xDD0A8F37, 0xBE254438,
- 0xF4000000, 0x3FF048A2, 0x97AFB6E2, 0x3DF256C2,
- 0x50000000, 0x3FF050C9, 0x923D25E1, 0xBE3085DF,
- 0xC0000000, 0x3FF058F3, 0x5EA3B091, 0xBE3F0A93,
- 0x44000000, 0x3FF06122, 0x5D63534C, 0xBE237DE4,
- 0xE0000000, 0x3FF06954, 0xFF0C58B7, 0x3E301719,
- 0x98000000, 0x3FF0718B, 0x9DF7B665, 0x3E2E8410,
- 0x6C000000, 0x3FF079C6, 0x3B127222, 0x3E349CB9,
- 0x60000000, 0x3FF08205, 0x98E0BD08, 0x3DF127EC,
- 0x74000000, 0x3FF08A48, 0x706CC41F, 0xBE24C1B6,
- 0xA8000000, 0x3FF0928F, 0x093044EF, 0x3E334EF9,
- 0x04000000, 0x3FF09ADB, 0x56BC6C83, 0xBE1304B1,
- 0x84000000, 0x3FF0A32A, 0xB028B984, 0x3E2D383E,
- 0x30000000, 0x3FF0AB7E, 0x64E7A202, 0xBE315B1E,
- 0x04000000, 0x3FF0B3D6, 0xC678291E, 0xBE0AC1E6,
- 0x04000000, 0x3FF0BC32, 0x2F12FFE2, 0x3E3A0418,
- 0x38000000, 0x3FF0C492, 0x43D6D302, 0xBE37D617,
- 0x98000000, 0x3FF0CCF6, 0x152CC8FA, 0x3E2133F2,
- 0x2C000000, 0x3FF0D55F, 0xE966E6B7, 0x3E3CE5D1,
- 0xF8000000, 0x3FF0DDCB, 0x7BCACA64, 0x3E1ABF24,
- 0xFC000000, 0x3FF0E63C, 0x2E8CDBED, 0xBE3854F6,
- 0x38000000, 0x3FF0EEB2, 0x0C32156B, 0xBE3E6463,
- 0xAC000000, 0x3FF0F72B, 0xB69772CC, 0x3E365671,
- 0x64000000, 0x3FF0FFA9, 0x02B1201A, 0xBE383E9A,
- 0x58000000, 0x3FF1082B, 0x50549CC0, 0xBE205962,
- 0x90000000, 0x3FF110B1, 0xFFDACA72, 0xBE376BFE,
- 0x08000000, 0x3FF1193C, 0x5C43E2F3, 0x3E3C1C59,
- 0xCC000000, 0x3FF121CA, 0xF7067C8B, 0xBE26D374,
- 0xD4000000, 0x3FF12A5D, 0x4DDAFE1D, 0x3E343CCC,
- 0x28000000, 0x3FF132F5, 0x58EBCB7F, 0x3E3D5C16,
- 0xCC000000, 0x3FF13B90, 0xB66E8B53, 0xBE2B5D12,
- 0xBC000000, 0x3FF14430, 0xB326B482, 0xBE24E919,
- 0xFC000000, 0x3FF14CD4, 0xC8AABD43, 0x3E23139A,
- 0x90000000, 0x3FF1557D, 0x16743B55, 0x3E30DD8B,
- 0x7C000000, 0x3FF15E2A, 0x35904C50, 0xBE31D701,
- 0xBC000000, 0x3FF166DB, 0x30E0CA83, 0x3E107F42,
- 0x58000000, 0x3FF16F91, 0xDA1B7123, 0xBE24F1F2,
- 0x50000000, 0x3FF1784B, 0x0DC79E23, 0xBE3ACAF2,
- 0xA4000000, 0x3FF18109, 0x609374EE, 0xBE23DC79,
- 0x58000000, 0x3FF189CC, 0x3A40C3B7, 0x3E262CF7,
- 0x70000000, 0x3FF19293, 0x5A24F463, 0x3E1D3833,
- 0xEC000000, 0x3FF19B5E, 0x8A2E4440, 0x3E2BA9AD,
- 0xD0000000, 0x3FF1A42E, 0x61C41828, 0x3DFD8CBC,
- 0x1C000000, 0x3FF1AD03, 0x5A4DDF0D, 0x3E1A65E6,
- 0xD4000000, 0x3FF1B5DB, 0x9F828DB5, 0xBDE2FDBB,
- 0xF8000000, 0x3FF1BEB8, 0xB79B700F, 0x3E2F4EE8,
- 0x8C000000, 0x3FF1C79A, 0x0DE1D7E8, 0x3E3ACC35,
- 0x94000000, 0x3FF1D080, 0xFF9E20A0, 0x3E11729E,
- 0x10000000, 0x3FF1D96B, 0x6C2EA70B, 0xBE300F18,
- 0x00000000, 0x3FF1E25A, 0xCE425A35, 0x3DF32E02,
- 0x68000000, 0x3FF1EB4D, 0x9A322D12, 0x3E3BDE56,
- 0x50000000, 0x3FF1F445, 0xBA737AEF, 0xBE3C3F0D,
- 0xB0000000, 0x3FF1FD41, 0xC896DB7A, 0xBE0A2DD0,
- 0x90000000, 0x3FF20642, 0xF8B782F6, 0x3E2577B0,
- 0xF4000000, 0x3FF20F47, 0x73607FC8, 0xBE2C6DA3,
- 0xD8000000, 0x3FF21851, 0xC8917348, 0x3E35F7D1,
- 0x44000000, 0x3FF22160, 0xCF9CED69, 0x3E3B6F5C,
- 0x3C000000, 0x3FF22A73, 0x85775C2E, 0xBE39967E,
- 0xB8000000, 0x3FF2338A, 0x497226D4, 0x3E3B3213,
- 0xC4000000, 0x3FF23CA6, 0x30733227, 0x3E3E2710,
- 0x60000000, 0x3FF245C7, 0xAF215A72, 0x3E33B8A9,
- 0x90000000, 0x3FF24EEC, 0x1365623F, 0xBE3F96B2,
- 0x50000000, 0x3FF25816, 0x27DEE202, 0xBE37324F,
- 0xA4000000, 0x3FF26144, 0x4E484D87, 0x3E318CD5,
- 0x94000000, 0x3FF26A77, 0xA94519E8, 0xBDE3FD37,
- 0x1C000000, 0x3FF273AF, 0xEE788C29, 0x3E37132F,
- 0x44000000, 0x3FF27CEB, 0xE842E5C0, 0xBE03DDB7,
- 0x08000000, 0x3FF2862C, 0xE17C9693, 0x3E37A3FB,
- 0x70000000, 0x3FF28F71, 0xAEB3D9A0, 0x3E24EABF,
- 0x7C000000, 0x3FF298BB, 0x853B0733, 0xBE13C7B6,
- 0x2C000000, 0x3FF2A20A, 0xC7B588B5, 0x3E2D2C80,
- 0x88000000, 0x3FF2AB5D, 0x708F3912, 0xBE35B750,
- 0x8C000000, 0x3FF2B4B5, 0xD5FD9130, 0xBE291A70,
- 0x3C000000, 0x3FF2BE12, 0x0CCF9F73, 0x3E2EE937,
- 0xA0000000, 0x3FF2C773, 0xD42CF76C, 0xBE3C3F0C,
- 0xB0000000, 0x3FF2D0D9, 0x60763D61, 0x3E35DD54,
- 0x78000000, 0x3FF2DA44, 0xE7D6AA3B, 0x3E26C418,
- 0xF8000000, 0x3FF2E3B3, 0x6FB9B7A8, 0xBE3605C6,
- 0x2C000000, 0x3FF2ED28, 0x24DCDDF5, 0x3E3763D4,
- 0x20000000, 0x3FF2F6A1, 0xA8EC1AA8, 0xBE1A411E,
- 0xD0000000, 0x3FF3001E, 0x1FE8546F, 0xBE23FCA1,
- 0x40000000, 0x3FF309A1, 0x3AAEE75E, 0xBE29DF0D,
- 0x70000000, 0x3FF31328, 0x3C2C4206, 0x3E36A5D6,
- 0x68000000, 0x3FF31CB4, 0xB4C979B0, 0x3E1B7A3E,
- 0x28000000, 0x3FF32645, 0x706CD593, 0xBE36157D,
- 0xB0000000, 0x3FF32FDA, 0x8DA4C646, 0xBE39F357,
- 0x04000000, 0x3FF33975, 0xD575FE6F, 0xBE3E64DE,
- 0x24000000, 0x3FF34314, 0x44D008E0, 0x3E07F9E3,
- 0x18000000, 0x3FF34CB8, 0x5A563E77, 0xBE2E94F9,
- 0xDC000000, 0x3FF35660, 0x2475EF19, 0x3E314DC2,
- 0x78000000, 0x3FF3600E, 0xA33AC606, 0x3E26D623,
- 0xEC000000, 0x3FF369C0, 0xC05B3160, 0x3E170F86,
- 0x3C000000, 0x3FF37378, 0xDB0AE31A, 0xBE38DDFE,
- 0x64000000, 0x3FF37D34, 0x5706B570, 0x3E3662A9,
- 0x70000000, 0x3FF386F5, 0x6770731E, 0xBE1625E4,
- 0x5C000000, 0x3FF390BB, 0x62971091, 0xBE1678F1,
- 0x2C000000, 0x3FF39A86, 0xD045CB0C, 0xBE061F7C,
- 0xE4000000, 0x3FF3A455, 0x568B1CA2, 0xBE35CF51,
- 0x84000000, 0x3FF3AE2A, 0x7FB61F58, 0xBE378185,
- 0x0C000000, 0x3FF3B804, 0x4FA133AF, 0x3E3F77F4,
- 0x88000000, 0x3FF3C1E2, 0xB00B73FE, 0xBE22F96A,
- 0xF0000000, 0x3FF3CBC5, 0x1EB4CE2F, 0x3E351A64,
- 0x50000000, 0x3FF3D5AE, 0xD3755639, 0xBE3D3516,
- 0xA0000000, 0x3FF3DF9B, 0x43E8C10E, 0x3E1CD938,
- 0xEC000000, 0x3FF3E98D, 0x455C8842, 0xBE35EE23,
- 0x30000000, 0x3FF3F385, 0x96C9F4ED, 0xBE29B282,
- 0x70000000, 0x3FF3FD81, 0x3168CC0B, 0x3E24A40E,
- 0xB0000000, 0x3FF40782, 0x86C72839, 0x3E3784BC,
- 0xF4000000, 0x3FF41188, 0x0785D847, 0x3E061F19,
- 0x3C000000, 0x3FF41B94, 0xE654A9C9, 0xBE27AEF2,
- 0x88000000, 0x3FF425A4, 0xF9E4C1BA, 0x3E33DFC3,
- 0xE0000000, 0x3FF42FB9, 0x593D0C75, 0x3E2455A8,
- 0x44000000, 0x3FF439D4, 0x238B65D1, 0xBDE41D4E,
- 0xB4000000, 0x3FF443F3, 0x454CBECB, 0x3E3BE616,
- 0x38000000, 0x3FF44E18, 0x931C5332, 0x3E207B3C,
- 0xD0000000, 0x3FF45841, 0x7615DCC9, 0xBE330846,
- 0x7C000000, 0x3FF46270, 0xE497F84E, 0xBE2A8A7B,
- 0x40000000, 0x3FF46CA4, 0xF737AF78, 0x3E020B50,
- 0x20000000, 0x3FF476DD, 0xE34AFBD3, 0x3E116B19,
- 0x20000000, 0x3FF4811B, 0x841EDB52, 0xBE3E15A7,
- 0x3C000000, 0x3FF48B5E, 0x33B3DE1E, 0x3E0F40C3,
- 0x7C000000, 0x3FF495A6, 0x92EFEE02, 0x3E33607F,
- 0xE4000000, 0x3FF49FF3, 0x14F7E168, 0xBE1A2DB5,
- 0x70000000, 0x3FF4AA46, 0x3EBA1C94, 0x3E3F59EC,
- 0x2C000000, 0x3FF4B49E, 0x8B9AE885, 0xBE31A539,
- 0x10000000, 0x3FF4BEFB, 0xF13C8C95, 0x3E2FAC0B,
- 0x28000000, 0x3FF4C95D, 0xF8B74775, 0xBE32C0BB,
- 0x70000000, 0x3FF4D3C4, 0x4F9474BB, 0xBE2FC24E,
- 0xEC000000, 0x3FF4DE30, 0x09DA911F, 0x3E008F30,
- 0xA0000000, 0x3FF4E8A2, 0xBAF8D98B, 0x3E2994C1,
- 0x90000000, 0x3FF4F319, 0x18648D0A, 0xBE17C38C,
- 0xBC000000, 0x3FF4FD95, 0xF22F8698, 0xBE288852,
- 0x28000000, 0x3FF50817, 0x30A2C153, 0xBE3C3EC3,
- 0xD4000000, 0x3FF5129D, 0x968492AA, 0xBE27B606,
- 0xC4000000, 0x3FF51D29, 0x61101629, 0x3E2E0396,
- 0xFC000000, 0x3FF527BA, 0xDAEEAB38, 0x3E3E876F,
- 0x80000000, 0x3FF53251, 0xED945B30, 0x3E29F59E,
- 0x50000000, 0x3FF53CED, 0x0B4AE3F1, 0x3E12D7DA,
- 0x70000000, 0x3FF5478E, 0x5FB946D0, 0xBE2FAFB8,
- 0xE0000000, 0x3FF55234, 0x87D80C66, 0xBE18A8B3,
- 0xA4000000, 0x3FF55CE0, 0x764CF85C, 0x3E28B18F,
- 0xC0000000, 0x3FF56791, 0x2BDBC6F4, 0x3E326017,
- 0x38000000, 0x3FF57248, 0x53D523FE, 0xBE229F98,
- 0x0C000000, 0x3FF57D04, 0x4D9B8720, 0xBE3BDD08,
- 0x3C000000, 0x3FF587C5, 0x09D8749E, 0x3E169EBC,
- 0xD0000000, 0x3FF5928B, 0x339C2080, 0x3E190C8C,
- 0xC8000000, 0x3FF59D57, 0xDE75E9CA, 0x3E310FA4,
- 0x28000000, 0x3FF5A829, 0x1097F186, 0x3E313D18,
- 0xF4000000, 0x3FF5B2FF, 0xD51C23F6, 0xBE2BDE04,
- 0x28000000, 0x3FF5BDDC, 0x8938C386, 0x3E3EE67E,
- 0xD0000000, 0x3FF5C8BD, 0x47DF6575, 0x3E0973B8,
- 0xE8000000, 0x3FF5D3A4, 0x1DB97781, 0x3E24DF02,
- 0x78000000, 0x3FF5DE91, 0xAC4AECDC, 0xBE3FBA00,
- 0x7C000000, 0x3FF5E983, 0x939F646A, 0xBE2F37AF,
- 0xFC000000, 0x3FF5F47A, 0x58A6EEE9, 0xBE396DEF,
- 0xF8000000, 0x3FF5FF77, 0xE3613C7B, 0xBE315248,
- 0x74000000, 0x3FF60A7A, 0xF1553706, 0xBE26A9E2,
- 0x74000000, 0x3FF61582, 0xAE4D7CB6, 0xBE3B6BF6,
- 0xF8000000, 0x3FF6208F, 0x9EB5EBA5, 0xBE35775B,
- 0x04000000, 0x3FF62BA3, 0xC1E43506, 0xBE2A821B,
- 0x9C000000, 0x3FF636BB, 0x7B2D8CF4, 0xBE367CDA,
- 0xC0000000, 0x3FF641D9, 0x3E907A1D, 0xBE13218B,
- 0x74000000, 0x3FF64CFD, 0x7BF5DFE4, 0x3E3454EE,
- 0xC0000000, 0x3FF65826, 0x6366C5FD, 0xBE3E960F,
- 0x9C000000, 0x3FF66355, 0x8B43C17E, 0x3E2E378F,
- 0x14000000, 0x3FF66E8A, 0xA4306535, 0x3E244BE0,
- 0x28000000, 0x3FF679C4, 0x8DF63D6E, 0xBDE4B6C1,
- 0xD8000000, 0x3FF68503, 0xE6A239CF, 0x3E3BA122,
- 0x2C000000, 0x3FF69049, 0x59FB5F30, 0x3E27F286,
- 0x24000000, 0x3FF69B94, 0x971D3970, 0xBE044041 } };
-
-static const union {
- int4 i[2048];
- double x[1024];
-} fine = { .i = {
- 0x00000000, 0x3FF00000, 0x00000000, 0x00000000,
- 0x00000000, 0x3FF00004, 0x55556AAB, 0x3DA00001,
- 0x00000000, 0x3FF00008, 0xAAAB0000, 0x3DC00002,
- 0x00000000, 0x3FF0000C, 0x8000D800, 0x3DD20004,
- 0x00000000, 0x3FF00010, 0x5556AAAB, 0x3DE00005,
- 0x00000000, 0x3FF00014, 0x6AADEC01, 0x3DE9000A,
- 0x00000000, 0x3FF00018, 0x00036001, 0x3DF20009,
- 0x00000000, 0x3FF0001C, 0x4AB0EB58, 0x3DF8800E,
- 0x00000000, 0x3FF00020, 0xAAB00002, 0x3E00000A,
- 0x00000000, 0x3FF00024, 0x30088B04, 0x3E04400F,
- 0x00000000, 0x3FF00028, 0xD5625AB1, 0x3E090014,
- 0x00000000, 0x3FF0002C, 0xBABDBB0A, 0x3E0E401B,
- 0x00000000, 0x3FF00030, 0x000D8008, 0x3E120012,
- 0x00000000, 0x3FF00034, 0xE2BD42E1, 0x3E152016,
- 0x00000000, 0x3FF00038, 0x956E5812, 0x3E18801C,
- 0x00000000, 0x3FF0003C, 0x2820F599, 0x3E1C2023,
- 0x00000000, 0x3FF00040, 0x556AAABC, 0x3E200015,
- 0x00000000, 0x3FF00044, 0x96C5DAD7, 0x3E221019,
- 0x00000000, 0x3FF00048, 0x60222C1F, 0x3E24401E,
- 0x00000000, 0x3FF0004C, 0xB97FC193, 0x3E269023,
- 0x00000000, 0x3FF00050, 0xAADEC034, 0x3E290029,
- 0x00000000, 0x3FF00054, 0x3C3F4F02, 0x3E2B9030,
- 0x00000000, 0x3FF00058, 0x75A196FF, 0x3E2E4037,
- 0x00000000, 0x3FF0005C, 0xAF82E194, 0x3E30881F,
- 0x00000000, 0x3FF00060, 0x00360041, 0x3E320024,
- 0x00000000, 0x3FF00064, 0xB0EA3F05, 0x3E338828,
- 0x00000000, 0x3FF00068, 0xC59FB661, 0x3E35202D,
- 0x00000000, 0x3FF0006C, 0x42567FD5, 0x3E36C833,
- 0x00000000, 0x3FF00070, 0x2B0EB5E1, 0x3E388039,
- 0x00000000, 0x3FF00074, 0x83C87407, 0x3E3A483F,
- 0x00000000, 0x3FF00078, 0x5083D6C6, 0x3E3C2046,
- 0x00000000, 0x3FF0007C, 0x9540FB9E, 0x3E3E084D,
- 0x04000000, 0x3FF00080, 0xA9FFFEEF, 0xBE3FFFAA,
- 0x04000000, 0x3FF00084, 0x693EF962, 0xBE3DF7A2,
- 0x04000000, 0x3FF00088, 0xA47BD339, 0xBE3BDF99,
- 0x04000000, 0x3FF0008C, 0x57B66AF5, 0xBE39B790,
- 0x04000000, 0x3FF00090, 0x7EEE9E14, 0xBE377F86,
- 0x04000000, 0x3FF00094, 0x16244916, 0xBE35377C,
- 0x04000000, 0x3FF00098, 0x1957477B, 0xBE32DF71,
- 0x04000000, 0x3FF0009C, 0x848773C2, 0xBE307765,
- 0x04000000, 0x3FF000A0, 0xA7694ED3, 0xBE2BFEB2,
- 0x04000000, 0x3FF000A4, 0x05BD75E2, 0xBE26EE99,
- 0x04000000, 0x3FF000A8, 0x1C0B0BB1, 0xBE21BE7E,
- 0x04000000, 0x3FF000AC, 0xC4A37A79, 0xBE18DCC3,
- 0x04000000, 0x3FF000B0, 0x4244D60F, 0xBE0BF911,
- 0x04000000, 0x3FF000B4, 0xEC91D848, 0xBDE6E255,
- 0x04000000, 0x3FF000B8, 0xEC1B8F0C, 0x3E0107EB,
- 0x04000000, 0x3FF000BC, 0x89BE52AA, 0x3E142439,
- 0x04000000, 0x3FF000C0, 0x06C01033, 0x3E200240,
- 0x04000000, 0x3FF000C4, 0xC8A9F760, 0x3E261264,
- 0x04000000, 0x3FF000C8, 0x129D3FDE, 0x3E2C428B,
- 0x04000000, 0x3FF000CC, 0x764D2658, 0x3E314959,
- 0x04000000, 0x3FF000D0, 0x2F50C16C, 0x3E34816E,
- 0x04000000, 0x3FF000D4, 0xB859A4AB, 0x3E37C983,
- 0x04000000, 0x3FF000D8, 0x15680499, 0x3E3B219A,
- 0x04000000, 0x3FF000DC, 0x4A7C16B5, 0x3E3E89B1,
- 0x08000000, 0x3FF000E0, 0xA469EE7E, 0xBE3DFE36,
- 0x08000000, 0x3FF000E4, 0xB349D37F, 0xBE3A761D,
- 0x08000000, 0x3FF000E8, 0xDE235FCD, 0xBE36DE03,
- 0x08000000, 0x3FF000EC, 0x20F659E6, 0xBE3335E9,
- 0x08000000, 0x3FF000F0, 0xEF850E8F, 0xBE2EFB9A,
- 0x08000000, 0x3FF000F4, 0xBD0F58E2, 0xBE276B61,
- 0x08000000, 0x3FF000F8, 0x45163381, 0xBE1F764D,
- 0x08000000, 0x3FF000FC, 0x5FDF589A, 0xBE0FABA6,
- 0x08000000, 0x3FF00100, 0xABBBBE94, 0x3D8555AA,
- 0x08000000, 0x3FF00104, 0xDABB690B, 0x3E102B2C,
- 0x08000000, 0x3FF00108, 0x7820FBA0, 0x3E2045D9,
- 0x08000000, 0x3FF0010C, 0x92F54742, 0x3E28961E,
- 0x08000000, 0x3FF00110, 0xE2ED8E39, 0x3E308332,
- 0x08000000, 0x3FF00114, 0x8C698119, 0x3E34CB57,
- 0x08000000, 0x3FF00118, 0x49EEC0C4, 0x3E39237D,
- 0x08000000, 0x3FF0011C, 0x1F7D92BC, 0x3E3D8BA4,
- 0x0C000000, 0x3FF00120, 0xEEE9C27D, 0xBE3DFC33,
- 0x0C000000, 0x3FF00124, 0xDD46F763, 0xBE39740A,
- 0x0C000000, 0x3FF00128, 0xA799C375, 0xBE34DBE0,
- 0x0C000000, 0x3FF0012C, 0x49E1DD2F, 0xBE3033B5,
- 0x0C000000, 0x3FF00130, 0x803DF41F, 0xBE26F711,
- 0x0C000000, 0x3FF00134, 0x19433A4C, 0xBE1ACD6C,
- 0x0C000000, 0x3FF00138, 0x8770E36F, 0xBDFDB2C1,
- 0x0C000000, 0x3FF0013C, 0x6B74A43E, 0x3E086820,
- 0x0C000000, 0x3FF00140, 0xDEC0D058, 0x3E200A6A,
- 0x0C000000, 0x3FF00144, 0x22BD7872, 0x3E2A1AD0,
- 0x0C000000, 0x3FF00148, 0xF769E132, 0x3E32259B,
- 0x0C000000, 0x3FF0014C, 0x2582289A, 0x3E374DD1,
- 0x0C000000, 0x3FF00150, 0x9FA7E4F4, 0x3E3C8607,
- 0x10000000, 0x3FF00154, 0x9624963C, 0xBE3E31C0,
- 0x10000000, 0x3FF00158, 0x77E2F472, 0xBE38D987,
- 0x10000000, 0x3FF0015C, 0x0192E02C, 0xBE33714D,
- 0x10000000, 0x3FF00160, 0x5E6805CB, 0xBE2BF222,
- 0x10000000, 0x3FF00164, 0xF98C0A34, 0xBE20E1A7,
- 0x10000000, 0x3FF00168, 0x32447238, 0xBE06C4AB,
- 0x10000000, 0x3FF0016C, 0xC225D8C1, 0x3E067D54,
- 0x10000000, 0x3FF00170, 0x05C4630F, 0x3E210FD8,
- 0x10000000, 0x3FF00174, 0xBB206115, 0x3E2CA05D,
- 0x10000000, 0x3FF00178, 0x2C4F14A6, 0x3E342873,
- 0x10000000, 0x3FF0017C, 0xF31F3B5E, 0x3E3A10B8,
- 0x14000000, 0x3FF00180, 0xC9FEFCC9, 0xBE3FF6FF,
- 0x14000000, 0x3FF00184, 0x070B344A, 0xBE39EEB7,
- 0x14000000, 0x3FF00188, 0xC0050AA2, 0xBE33D66C,
- 0x14000000, 0x3FF0018C, 0xE1D83C97, 0xBE2B5C41,
- 0x14000000, 0x3FF00190, 0x57003305, 0xBE1DD74E,
- 0x14000000, 0x3FF00194, 0xA80727F1, 0xBDF2D84A,
- 0x14000000, 0x3FF00198, 0x534C5401, 0x3E14AB2F,
- 0x14000000, 0x3FF0019C, 0xD875DE83, 0x3E27263B,
- 0x14000000, 0x3FF001A0, 0x9FB782CA, 0x3E320B71,
- 0x14000000, 0x3FF001A4, 0xF349371F, 0x3E3893C6,
- 0x14000000, 0x3FF001A8, 0xEAF074C6, 0x3E3F2C1D,
- 0x18000000, 0x3FF001AC, 0x75525ABC, 0xBE3A2B89,
- 0x18000000, 0x3FF001B0, 0x297ECCE2, 0xBE33732F,
- 0x18000000, 0x3FF001B4, 0x5B28EC49, 0xBE2955A6,
- 0x18000000, 0x3FF001B8, 0xF64BA7FD, 0xBE1749D5,
- 0x18000000, 0x3FF001BC, 0xA8645141, 0x3DF15E9E,
- 0x18000000, 0x3FF001C0, 0x1D6F0B37, 0x3E201C96,
- 0x18000000, 0x3FF001C4, 0xE6028E39, 0x3E2E2D5B,
- 0x18000000, 0x3FF001C8, 0x9B63FA1E, 0x3E362F12,
- 0x18000000, 0x3FF001CC, 0x0BE01026, 0x3E3D5779,
- 0x1C000000, 0x3FF001D0, 0xB78A0445, 0xBE3B701E,
- 0x1C000000, 0x3FF001D4, 0xAAD9CF9D, 0xBE3427B4,
- 0x1C000000, 0x3FF001D8, 0x941DBAB5, 0xBE299E91,
- 0x1C000000, 0x3FF001DC, 0x44A2DFDD, 0xBE159B6C,
- 0x1C000000, 0x3FF001E0, 0x1EC8B89C, 0x3E008CA4,
- 0x1C000000, 0x3FF001E4, 0xF1EE0E9A, 0x3E23340B,
- 0x1C000000, 0x3FF001E8, 0x5231913C, 0x3E313279,
- 0x1C000000, 0x3FF001EC, 0x93892E68, 0x3E38DAEE,
- 0x20000000, 0x3FF001F0, 0x3F01A6A8, 0xBE3F6C9A,
- 0x20000000, 0x3FF001F4, 0x216E726C, 0xBE37A421,
- 0x20000000, 0x3FF001F8, 0x1F7970B9, 0xBE2F974C,
- 0x20000000, 0x3FF001FC, 0x17AFEBC8, 0xBE1F8CA4,
- 0x20000000, 0x3FF00200, 0x04445B06, 0x3DB55600,
- 0x20000000, 0x3FF00204, 0x0C290A26, 0x3E203BAE,
- 0x20000000, 0x3FF00208, 0x104547BD, 0x3E30365A,
- 0x20000000, 0x3FF0020C, 0x22970DE3, 0x3E385EDF,
- 0x24000000, 0x3FF00210, 0xBEF5A5F4, 0xBE3F6899,
- 0x24000000, 0x3FF00214, 0x90605040, 0xBE372010,
- 0x24000000, 0x3FF00218, 0x9B50D8EE, 0xBE2D8F0A,
- 0x24000000, 0x3FF0021C, 0xCB35D444, 0xBE197BDF,
- 0x24000000, 0x3FF00220, 0x2188E3D5, 0x3E00CCBC,
- 0x24000000, 0x3FF00224, 0x36A79F6A, 0x3E254452,
- 0x24000000, 0x3FF00228, 0xD69B2D28, 0x3E333ABC,
- 0x24000000, 0x3FF0022C, 0xBA07BE5B, 0x3E3BE352,
- 0x28000000, 0x3FF00230, 0x3665F227, 0xBE3B6415,
- 0x28000000, 0x3FF00234, 0xF6AD58D5, 0xBE329B7A,
- 0x28000000, 0x3FF00238, 0x059BD24A, 0xBE2385BD,
- 0x28000000, 0x3FF0023C, 0xD8E2B1B4, 0xBDEB47FA,
- 0x28000000, 0x3FF00240, 0x22CF60F6, 0x3E203CC2,
- 0x28000000, 0x3FF00244, 0x39BEF87F, 0x3E312704,
- 0x28000000, 0x3FF00248, 0xA63F5309, 0x3E3A3FA9,
- 0x2C000000, 0x3FF0024C, 0xA516AE5E, 0xBE3C97AE,
- 0x2C000000, 0x3FF00250, 0xA442792A, 0xBE335F04,
- 0x2C000000, 0x3FF00254, 0xA686F3A2, 0xBE242CB0,
- 0x2C000000, 0x3FF00258, 0xC3237903, 0xBDE7B535,
- 0x2C000000, 0x3FF0025C, 0x9E7A6CF7, 0x3E21560E,
- 0x2C000000, 0x3FF00260, 0xA8C01385, 0x3E3223BA,
- 0x2C000000, 0x3FF00264, 0x627012DF, 0x3E3BAC70,
- 0x30000000, 0x3FF00268, 0x7FB232EA, 0xBE3ABAD7,
- 0x30000000, 0x3FF0026C, 0xF9A6244B, 0xBE31121C,
- 0x30000000, 0x3FF00270, 0x1DAC9AE4, 0xBE1D6580,
- 0x30000000, 0x3FF00274, 0xD7FB0AC3, 0x3E037AFA,
- 0x30000000, 0x3FF00278, 0x633420EB, 0x3E289042,
- 0x30000000, 0x3FF0027C, 0x8065842A, 0x3E3630E5,
- 0x34000000, 0x3FF00280, 0xB49DA4FF, 0xBE3FD653,
- 0x34000000, 0x3FF00284, 0x696ECB76, 0xBE35CD8A,
- 0x34000000, 0x3FF00288, 0x341A9D63, 0xBE27697D,
- 0x34000000, 0x3FF0028C, 0x2788D238, 0xBDF8BF04,
- 0x34000000, 0x3FF00290, 0x42A03782, 0x3E2159C1,
- 0x34000000, 0x3FF00294, 0x154D4F89, 0x3E32F5B4,
- 0x34000000, 0x3FF00298, 0x1D7FB2C1, 0x3E3D4E8A,
- 0x38000000, 0x3FF0029C, 0x42181508, 0xBE38489D,
- 0x38000000, 0x3FF002A0, 0x0AF2C28C, 0xBE2B9F84,
- 0x38000000, 0x3FF002A4, 0x451C5357, 0xBE0A3721,
- 0x38000000, 0x3FF002A8, 0x61A8605E, 0x3E1D47F1,
- 0x38000000, 0x3FF002AC, 0x81B02FCF, 0x3E31FADF,
- 0x38000000, 0x3FF002B0, 0x572F674A, 0x3E3CB3C5,
- 0x3C000000, 0x3FF002B4, 0x231795EA, 0xBE388352,
- 0x3C000000, 0x3FF002B8, 0xD248367A, 0xBE2B54CD,
- 0x3C000000, 0x3FF002BC, 0xB7ABD90D, 0xBE060BC7,
- 0x3C000000, 0x3FF002C0, 0x6EE9F1EF, 0x3E206EEF,
- 0x3C000000, 0x3FF002C4, 0x261BF09E, 0x3E33406B,
- 0x3C000000, 0x3FF002C8, 0x59001C60, 0x3E3E5961,
- 0x40000000, 0x3FF002CC, 0xABDDD232, 0xBE367DA5,
- 0x40000000, 0x3FF002D0, 0xC8FA5113, 0xBE268953,
- 0x40000000, 0x3FF002D4, 0x8B33A701, 0x3D9152CC,
- 0x40000000, 0x3FF002D8, 0x3E058570, 0x3E26BAAC,
- 0x40000000, 0x3FF002DC, 0x63236E71, 0x3E36C65A,
- 0x44000000, 0x3FF002E0, 0x7C7A795C, 0xBE3DC09E,
- 0x44000000, 0x3FF002E4, 0x7BD63D1D, 0xBE323794,
- 0x44000000, 0x3FF002E8, 0x5BBC9105, 0xBE1A7A1E,
- 0x44000000, 0x3FF002EC, 0xD8EE2B1B, 0x3E142A20,
- 0x44000000, 0x3FF002F0, 0xEFAA8A8D, 0x3E30C39A,
- 0x44000000, 0x3FF002F4, 0x995E96A2, 0x3E3C8CB0,
- 0x48000000, 0x3FF002F8, 0xC8A79469, 0xBE379A36,
- 0x48000000, 0x3FF002FC, 0x64CE7203, 0xBE276236,
- 0x48000000, 0x3FF00300, 0x0819DA68, 0x3DD200D8,
- 0x48000000, 0x3FF00304, 0xE5E018D4, 0x3E28A249,
- 0x48000000, 0x3FF00308, 0x8A087692, 0x3E386A49,
- 0x4C000000, 0x3FF0030C, 0xD695988B, 0xBE3B6C8E,
- 0x4C000000, 0x3FF00310, 0x55D2BCBA, 0xBE2E66C8,
- 0x4C000000, 0x3FF00314, 0x7790BA7A, 0xBE0751B3,
- 0x4C000000, 0x3FF00318, 0xC2A20261, 0x3E22DDF4,
- 0x4C000000, 0x3FF0031C, 0x49E0B0B5, 0x3E35D82E,
- 0x50000000, 0x3FF00320, 0xB142422E, 0xBE3DAE9A,
- 0x50000000, 0x3FF00324, 0x8C170FE6, 0xBE312560,
- 0x50000000, 0x3FF00328, 0x0A73BF77, 0xBE12308D,
- 0x50000000, 0x3FF0032C, 0x5E59CEFA, 0x3E203A3A,
- 0x50000000, 0x3FF00330, 0xCD4740BF, 0x3E34D660,
- 0x54000000, 0x3FF00334, 0x644D1883, 0xBE3E6058,
- 0x54000000, 0x3FF00338, 0x618F57B6, 0xBE31870E,
- 0x54000000, 0x3FF0033C, 0x99FABD0F, 0xBE127704,
- 0x54000000, 0x3FF00340, 0xA1CB5ECF, 0x3E20B71E,
- 0x54000000, 0x3FF00344, 0x089E93E1, 0x3E3564E3,
- 0x58000000, 0x3FF00348, 0xFB533142, 0xBE3D81C5,
- 0x58000000, 0x3FF0034C, 0xB6EECE6C, 0xBE30586B,
- 0x58000000, 0x3FF00350, 0x319B883E, 0xBE08F871,
- 0x58000000, 0x3FF00354, 0x75BF7503, 0x3E2454A5,
- 0x58000000, 0x3FF00358, 0xF04B88C5, 0x3E3783B6,
- 0x5C000000, 0x3FF0035C, 0x81EF30A7, 0xBE3B12E1,
- 0x5C000000, 0x3FF00360, 0x2F9F3657, 0xBE2B32ED,
- 0x5C000000, 0x3FF00364, 0x54DF31BC, 0xBDB0084D,
- 0x5C000000, 0x3FF00368, 0xC303B7B9, 0x3E2B12D2,
- 0x5C000000, 0x3FF0036C, 0x78B56F97, 0x3E3B32DE,
- 0x60000000, 0x3FF00370, 0x03B9496C, 0xBE3713A9,
- 0x60000000, 0x3FF00374, 0x1F92E726, 0xBE22945A,
- 0x60000000, 0x3FF00378, 0x621736DF, 0x3E123D49,
- 0x60000000, 0x3FF0037C, 0x3935580D, 0x3E3278D5,
- 0x64000000, 0x3FF00380, 0x69B9F5FB, 0xBE3F8DA4,
- 0x64000000, 0x3FF00384, 0x8C473CC8, 0xBE31841A,
- 0x64000000, 0x3FF00388, 0x538CDE07, 0xBE0B5469,
- 0x64000000, 0x3FF0038C, 0x7F8F9D65, 0x3E257E07,
- 0x64000000, 0x3FF00390, 0x3665E52B, 0x3E38F898,
- 0x68000000, 0x3FF00394, 0xC29674BD, 0xBE38BDCF,
- 0x68000000, 0x3FF00398, 0x4E58B4D9, 0xBE24C868,
- 0x68000000, 0x3FF0039C, 0x329466D7, 0x3E1015AC,
- 0x68000000, 0x3FF003A0, 0xDCDECE44, 0x3E327F0D,
- 0x6C000000, 0x3FF003A4, 0xB27E5528, 0xBE3EF74B,
- 0x6C000000, 0x3FF003A8, 0x9D7167F2, 0xBE305DA1,
- 0x6C000000, 0x3FF003AC, 0xFF980820, 0xBDFB3F3D,
- 0x6C000000, 0x3FF003B0, 0x13D49789, 0x3E2A0B7B,
- 0x6C000000, 0x3FF003B4, 0xA43AE87C, 0x3E3BCF72,
- 0x70000000, 0x3FF003B8, 0x8D06BDC0, 0xBE3556D4,
- 0x70000000, 0x3FF003BC, 0x1766E54D, 0xBE19B460,
- 0x70000000, 0x3FF003C0, 0x7B85C8BA, 0x3E211950,
- 0x70000000, 0x3FF003C4, 0x41D00AED, 0x3E37966C,
- 0x74000000, 0x3FF003C8, 0xF5B15507, 0xBE394FCB,
- 0x74000000, 0x3FF003CC, 0xC98093C4, 0xBE244C00,
- 0x74000000, 0x3FF003D0, 0xE2907BDF, 0x3E144F3B,
- 0x74000000, 0x3FF003D4, 0x267CD924, 0x3E345DA2,
- 0x78000000, 0x3FF003D8, 0xD73526C0, 0xBE3C4886,
- 0x78000000, 0x3FF003DC, 0xF8E1D62E, 0xBE29BD57,
- 0x78000000, 0x3FF003E0, 0xD65415E1, 0x3E04D995,
- 0x78000000, 0x3FF003E4, 0x527E1A58, 0x3E322515,
- 0x7C000000, 0x3FF003E8, 0x31552BA5, 0xBE3E4104,
- 0x7C000000, 0x3FF003EC, 0x995CAB3B, 0xBE2D2E33,
- 0x7C000000, 0x3FF003F0, 0x473970DC, 0x3DF22D48,
- 0x7C000000, 0x3FF003F4, 0xC61195FC, 0x3E30ECC6,
- 0x80000000, 0x3FF003F8, 0x03D35C34, 0xBE3F3943,
- 0x80000000, 0x3FF003FC, 0xAA7483C7, 0xBE2E9E91,
- 0x80000000, 0x3FF00400, 0xBBBC71CE, 0x3DE556AA,
- 0x80000000, 0x3FF00404, 0x817613C1, 0x3E30B4B7,
- 0x84000000, 0x3FF00408, 0x4E70B0AC, 0xBE3F3142,
- 0x84000000, 0x3FF0040C, 0x2BAAD02F, 0xBE2E0E70,
- 0x84000000, 0x3FF00410, 0xF48F01F2, 0x3DF32D62,
- 0x84000000, 0x3FF00414, 0x84EB5B98, 0x3E317CE8,
- 0x88000000, 0x3FF00418, 0x10ED210B, 0xBE3E2901,
- 0x88000000, 0x3FF0041C, 0x1C7F0051, 0xBE2B7DCD,
- 0x88000000, 0x3FF00420, 0x87AA2706, 0x3E05D9C0,
- 0x88000000, 0x3FF00424, 0xD0B235B3, 0x3E33455A,
- 0x8C000000, 0x3FF00428, 0x4B07A510, 0xBE3C207E,
- 0x8C000000, 0x3FF0042C, 0x7C6E838B, 0xBE26ECA6,
- 0x8C000000, 0x3FF00430, 0xEC91A8D5, 0x3E150F6F,
- 0x8C000000, 0x3FF00434, 0x650C6A83, 0x3E360E0F,
- 0x90000000, 0x3FF00438, 0xFC7E3439, 0xBE3917B8,
- 0x90000000, 0x3FF0043C, 0x4AF4C8B6, 0xBE205AFA,
- 0x90000000, 0x3FF00440, 0xDC31D181, 0x3E219985,
- 0x90000000, 0x3FF00444, 0x423CC2BE, 0x3E39D707,
- 0x94000000, 0x3FF00448, 0x250DC5BF, 0xBE350EB0,
- 0x94000000, 0x3FF0044C, 0x1E2CF893, 0xBE0F231A,
- 0x94000000, 0x3FF00450, 0xD42C92D4, 0x3E2AABDB,
- 0x94000000, 0x3FF00454, 0x6887075B, 0x3E3EA043,
- 0x98000000, 0x3FF00458, 0xC472509B, 0xBE300562,
- 0x98000000, 0x3FF0045C, 0x72B572E0, 0x3DF64FB6,
- 0x98000000, 0x3FF00460, 0xEF61155C, 0x3E32DF5D,
- 0x9C000000, 0x3FF00464, 0x27CFFE6A, 0xBE3B963B,
- 0x9C000000, 0x3FF00468, 0xB4CD96FE, 0xBE23F79F,
- 0x9C000000, 0x3FF0046C, 0x6E771F13, 0x3E1EBA7F,
- 0x9C000000, 0x3FF00470, 0xFE3ED608, 0x3E396913,
- 0xA0000000, 0x3FF00474, 0x6E82850F, 0xBE34CC73,
- 0xA0000000, 0x3FF00478, 0x352966B7, 0xBE078FB3,
- 0xA0000000, 0x3FF0047C, 0x33AFF8AE, 0x3E2DF116,
- 0xA4000000, 0x3FF00480, 0xE909EADD, 0xBE3F0CEE,
- 0xA4000000, 0x3FF00484, 0xD6938597, 0xBE2A04C8,
- 0xA4000000, 0x3FF00488, 0x5C6654D8, 0x3E1460AA,
- 0xA4000000, 0x3FF0048C, 0x22213ECF, 0x3E3742BE,
- 0xA8000000, 0x3FF00490, 0xC631A356, 0xBE3682A9,
- 0xA8000000, 0x3FF00494, 0x7777B644, 0xBE10E034,
- 0xA8000000, 0x3FF00498, 0x3E3B0991, 0x3E2C4528,
- 0xAC000000, 0x3FF0049C, 0x0B3E269F, 0xBE3F72C6,
- 0xAC000000, 0x3FF004A0, 0x31DF923B, 0xBE29F037,
- 0xAC000000, 0x3FF004A4, 0xE82713DE, 0x3E164A4D,
- 0xAC000000, 0x3FF004A8, 0x31AFAC4B, 0x3E382D47,
- 0xB0000000, 0x3FF004AC, 0x6DFCE978, 0xBE352800,
- 0xB0000000, 0x3FF004B0, 0x07D68D27, 0xBE036A1B,
- 0xB0000000, 0x3FF004B4, 0x5CB71F6F, 0x3E305D7E,
- 0xB4000000, 0x3FF004B8, 0x30E5E990, 0xBE3CC7BB,
- 0xB4000000, 0x3FF004BC, 0x0BA17DEA, 0xBE23B9E0,
- 0xB4000000, 0x3FF004C0, 0xC3EF9BD8, 0x3E223BBF,
- 0xB4000000, 0x3FF004C4, 0x8A74ECC0, 0x3E3C28B4,
- 0xB8000000, 0x3FF004C8, 0x085831CA, 0xBE30BC72,
- 0xB8000000, 0x3FF004CC, 0x6C8D1FC8, 0x3E037361,
- 0xB8000000, 0x3FF004D0, 0x3033A0B8, 0x3E35A94F,
- 0xBC000000, 0x3FF004D4, 0xFC7107DE, 0xBE370BC8,
- 0xBC000000, 0x3FF004D8, 0xA2D908DA, 0xBE0D86E2,
- 0xBC000000, 0x3FF004DC, 0x58ED155E, 0x3E2F742A,
- 0xC0000000, 0x3FF004E0, 0x75FACDD0, 0xBE3CCAF4,
- 0xC0000000, 0x3FF004E4, 0x6F5BE5D3, 0xBE227FF2,
- 0xC0000000, 0x3FF004E8, 0xD6BCA827, 0x3E24B60D,
- 0xC0000000, 0x3FF004EC, 0xF72B40D6, 0x3E3E060B,
- 0xC4000000, 0x3FF004F0, 0x208BE3E3, 0xBE2C7DD4,
- 0xC4000000, 0x3FF004F4, 0x642FDDB8, 0x3E163093,
- 0xC4000000, 0x3FF004F8, 0xB72239A5, 0x3E396738,
- 0xC8000000, 0x3FF004FC, 0x7201ED9B, 0xBE32ADAE,
- 0xC8000000, 0x3FF00500, 0x1A0C05F3, 0x3DF4D6F6,
- 0xC8000000, 0x3FF00504, 0x360B8346, 0x3E355892,
- 0xCC000000, 0x3FF00508, 0xF0C06435, 0xBE368C45,
- 0xCC000000, 0x3FF0050C, 0x760DA2F6, 0xBE0308C8,
- 0xCC000000, 0x3FF00510, 0xE008D57B, 0x3E31DA18,
- 0xD0000000, 0x3FF00514, 0x205F82F4, 0xBE39DAB0,
- 0xD0000000, 0x3FF00518, 0x2FE5E3E3, 0xBE15FDD0,
- 0xD0000000, 0x3FF0051C, 0x42787241, 0x3E2DD79A,
- 0xD4000000, 0x3FF00520, 0x94BD25F4, 0xBE3C98EC,
- 0xD4000000, 0x3FF00524, 0x53C89D03, 0xBE201B42,
- 0xD4000000, 0x3FF00528, 0xCB901057, 0x3E291B5E,
- 0xD8000000, 0x3FF0052C, 0xE1B6D837, 0xBE3EC6FA,
- 0xD8000000, 0x3FF00530, 0xF8BF49E7, 0xBE24173F,
- 0xD8000000, 0x3FF00534, 0x339DDB57, 0x3E257F80,
- 0xD8000000, 0x3FF00538, 0x64D62C5C, 0x3E3F9B25,
- 0xDC000000, 0x3FF0053C, 0x2E913659, 0xBE26F2E0,
- 0xDC000000, 0x3FF00540, 0x52E7CB93, 0x3E2303FF,
- 0xDC000000, 0x3FF00544, 0xAB0CFEF5, 0x3E3E8D74,
- 0xE0000000, 0x3FF00548, 0x1CF7FDE6, 0xBE28AE22,
- 0xE0000000, 0x3FF0054C, 0x01B47B93, 0x3E21A8DD,
- 0xE0000000, 0x3FF00550, 0x5D1107E2, 0x3E3E0FF3,
- 0xE4000000, 0x3FF00554, 0xEBAC99E1, 0xBE294904,
- 0xE4000000, 0x3FF00558, 0x184B2814, 0x3E216E1A,
- 0xE4000000, 0x3FF0055C, 0xE706008B, 0x3E3E22A1,
- 0xE8000000, 0x3FF00560, 0xC267616A, 0xBE28C387,
- 0xE8000000, 0x3FF00564, 0x6EF3B008, 0x3E2253B7,
- 0xE8000000, 0x3FF00568, 0xB50FF371, 0x3E3EC580,
- 0xEC000000, 0x3FF0056C, 0xC8E0096B, 0xBE271DA9,
- 0xEC000000, 0x3FF00570, 0xDDF69498, 0x3E2459B5,
- 0xEC000000, 0x3FF00574, 0x33533C31, 0x3E3FF890,
- 0xF0000000, 0x3FF00578, 0x26CDA497, 0xBE24576A,
- 0xF0000000, 0x3FF0057C, 0x3D9CF923, 0x3E278016,
- 0xF4000000, 0x3FF00580, 0x320B787B, 0xBE3E442F,
- 0xF4000000, 0x3FF00584, 0x03E6A36B, 0xBE2070C8,
- 0xF4000000, 0x3FF00588, 0x6630A33F, 0x3E2BC6D9,
- 0xF8000000, 0x3FF0058C, 0x0EE72CBF, 0xBE3BF0BD,
- 0xF8000000, 0x3FF00590, 0x0FC1A853, 0xBE16D385,
- 0xF8000000, 0x3FF00594, 0x17FDFD5D, 0x3E309700,
- 0xFC000000, 0x3FF00598, 0xF71A91AC, 0xBE390D18,
- 0xFC000000, 0x3FF0059C, 0x69C58B86, 0xBE050963,
- 0xFC000000, 0x3FF005A0, 0xB9A504CD, 0x3E33DAC5,
- 0x00000000, 0x3FF005A5, 0x7E800734, 0xBE359942,
- 0x00000000, 0x3FF005A9, 0xE59934CD, 0x3DF02BAE,
- 0x00000000, 0x3FF005AD, 0x04333E0E, 0x3E37AEBE,
- 0x04000000, 0x3FF005B1, 0x38F19C2F, 0xBE319539,
- 0x04000000, 0x3FF005B5, 0xEBB1C157, 0x3E14DB54,
- 0x04000000, 0x3FF005B9, 0x63CED05D, 0x3E3C12E9,
- 0x08000000, 0x3FF005BD, 0x74921CAF, 0xBE2A01F9,
- 0x08000000, 0x3FF005C1, 0xC94C85F2, 0x3E23F645,
- 0x0C000000, 0x3FF005C5, 0xBB61CBEE, 0xBE3EF8B7,
- 0x0C000000, 0x3FF005C9, 0x597F2931, 0xBE1F7232,
- 0x0C000000, 0x3FF005CD, 0xAF5B7345, 0x3E2E9F48,
- 0x10000000, 0x3FF005D1, 0xED37CD5F, 0xBE397424,
- 0x10000000, 0x3FF005D5, 0x08775C6B, 0xBE013F43,
- 0x10000000, 0x3FF005D9, 0x0029D3DB, 0x3E35345A,
- 0x14000000, 0x3FF005DD, 0xC58C1962, 0xBE335F5D,
- 0x14000000, 0x3FF005E1, 0x47430E04, 0x3E1073C1,
- 0x14000000, 0x3FF005E5, 0x4A41E248, 0x3E3BA944,
- 0x18000000, 0x3FF005E9, 0xB06E888E, 0xBE2974C3,
- 0x18000000, 0x3FF005ED, 0xDCCD9333, 0x3E25E3FB,
- 0x1C000000, 0x3FF005F1, 0x5DE27951, 0xBE3D519C,
- 0x1C000000, 0x3FF005F5, 0xE4464502, 0xBE1614C2,
- 0x1C000000, 0x3FF005F9, 0xE0DAFE93, 0x3E325740,
- 0x20000000, 0x3FF005FD, 0x8C1B4C10, 0xBE35BC47,
- 0x20000000, 0x3FF00601, 0x20686CE9, 0x3E0201B0,
- 0x20000000, 0x3FF00605, 0x95558B63, 0x3E3A4CB9,
- 0x24000000, 0x3FF00609, 0xA880A3EB, 0xBE2B2D79,
- 0x24000000, 0x3FF0060D, 0x9699EEB7, 0x3E252BA5,
- 0x28000000, 0x3FF00611, 0x880115E1, 0xBE3D2D97,
- 0x28000000, 0x3FF00615, 0x28A3D788, 0xBE1383EF,
- 0x28000000, 0x3FF00619, 0x08D6DC23, 0x3E337BA6,
- 0x2C000000, 0x3FF0061D, 0x0B001A08, 0xBE3417B2,
- 0x2C000000, 0x3FF00621, 0xF94EB99A, 0x3E1193EF,
- 0x2C000000, 0x3FF00625, 0x28D3BD3B, 0x3E3CF1B0,
- 0x30000000, 0x3FF00629, 0x0EFCC982, 0xBE24E32B,
- 0x30000000, 0x3FF0062D, 0xE2BDA47F, 0x3E2C7655,
- 0x34000000, 0x3FF00631, 0x689312F8, 0xBE39080E,
- 0x34000000, 0x3FF00635, 0xA9444DB4, 0xBDCDA0C8,
- 0x34000000, 0x3FF00639, 0x7B21FE23, 0x3E38A191,
- 0x38000000, 0x3FF0063D, 0x7E67E1E1, 0xBE2CE32A,
- 0x38000000, 0x3FF00641, 0x875A71F0, 0x3E251694,
- 0x3C000000, 0x3FF00645, 0xF838F455, 0xBE3C67CF,
- 0x3C000000, 0x3FF00649, 0x77274052, 0xBE0A571F,
- 0x3C000000, 0x3FF0064D, 0x63AAEFA8, 0x3E35E20E,
- 0x40000000, 0x3FF00651, 0xFC87DA70, 0xBE30E0F8,
- 0x40000000, 0x3FF00655, 0xE9089AFD, 0x3E20D80B,
- 0x44000000, 0x3FF00659, 0xC52F03BD, 0xBE3E36F4,
- 0x44000000, 0x3FF0065D, 0x9680E14E, 0xBE1327A4,
- 0x44000000, 0x3FF00661, 0xD732468D, 0x3E34B328,
- 0x48000000, 0x3FF00665, 0xCAB5EF4A, 0xBE31BFBE,
- 0x48000000, 0x3FF00669, 0xE2A2FBE1, 0x3E1F757F,
- 0x4C000000, 0x3FF0066D, 0xDAB014DA, 0xBE3E757A,
- 0x4C000000, 0x3FF00671, 0x02FB3FBB, 0xBE12E13D,
- 0x4C000000, 0x3FF00675, 0xCA7E298D, 0x3E3514E2,
- 0x50000000, 0x3FF00679, 0xB4F78B94, 0xBE310DE4,
- 0x50000000, 0x3FF0067D, 0x89C35D05, 0x3E21BEB4,
- 0x54000000, 0x3FF00681, 0x43F4895C, 0xBE3D2360,
- 0x54000000, 0x3FF00685, 0x5BC49ADF, 0xBE08B0A2,
- 0x54000000, 0x3FF00689, 0x32573159, 0x3E37073E,
- 0x58000000, 0x3FF0068D, 0x8D0732D2, 0xBE2D96D1,
- 0x58000000, 0x3FF00691, 0x9BF15E67, 0x3E26E3ED,
- 0x5C000000, 0x3FF00695, 0x0C3250FB, 0xBE3A40A3,
- 0x5C000000, 0x3FF00699, 0xFD0AE214, 0x3DBCC9AE,
- 0x5C000000, 0x3FF0069D, 0x038868A1, 0x3E3A8A3D,
- 0x60000000, 0x3FF006A1, 0x151D21CE, 0xBE25F092,
- 0x60000000, 0x3FF006A5, 0x11738C43, 0x3E2F2A6F,
- 0x64000000, 0x3FF006A9, 0x3E9CE96D, 0xBE35CD41,
- 0x64000000, 0x3FF006AD, 0x8DBC2918, 0x3E138132,
- 0x64000000, 0x3FF006B1, 0x32DF4C13, 0x3E3F9DE1,
- 0x68000000, 0x3FF006B5, 0x3129E0B2, 0xBE16520E,
- 0x68000000, 0x3FF006B9, 0x69F36A61, 0x3E35491E,
- 0x6C000000, 0x3FF006BD, 0xCCCABCD4, 0xBE2F9271,
- 0x6C000000, 0x3FF006C1, 0x0D59B899, 0x3E2668ED,
- 0x70000000, 0x3FF006C5, 0x4AD435A0, 0xBE39BDD3,
- 0x70000000, 0x3FF006C9, 0x9191CABB, 0x3DF5FE9A,
- 0x70000000, 0x3FF006CD, 0x6676850B, 0x3E3C8DAD,
- 0x74000000, 0x3FF006D1, 0x1D74934A, 0xBE206910,
- 0x74000000, 0x3FF006D5, 0x4D886478, 0x3E331949,
- 0x78000000, 0x3FF006D9, 0x80BFBBC2, 0xBE3188DE,
- 0x78000000, 0x3FF006DD, 0x14DE1719, 0x3E23CA01,
- 0x7C000000, 0x3FF006E1, 0x8CE98EC0, 0xBE3A9D19,
- 0x7C000000, 0x3FF006E5, 0xA705A6E7, 0x3DEE1A67,
- 0x7C000000, 0x3FF006E9, 0xECD5F851, 0x3E3C8EC6,
- 0x80000000, 0x3FF006ED, 0xE839CE4D, 0xBE1F0CF9,
- 0x80000000, 0x3FF006F1, 0x0C8CA46A, 0x3E33FAC3,
- 0x84000000, 0x3FF006F5, 0x7B5703D8, 0xBE303734,
- 0x84000000, 0x3FF006F9, 0xE490A112, 0x3E274DB5,
- 0x88000000, 0x3FF006FD, 0xA693A093, 0xBE386B0E,
- 0x88000000, 0x3FF00701, 0xF0B73DAA, 0x3E0C9875,
- 0x88000000, 0x3FF00705, 0x2449A944, 0x3E3FA133,
- 0x8C000000, 0x3FF00709, 0xBFE66C14, 0xBE110285,
- 0x8C000000, 0x3FF0070D, 0x054EDCBD, 0x3E37ED91,
- 0x90000000, 0x3FF00711, 0xEFB65924, 0xBE27A86A,
- 0x90000000, 0x3FF00715, 0x1C8A0CF1, 0x3E307A0B,
- 0x94000000, 0x3FF00719, 0x397FB1D6, 0xBE3327AD,
- 0x94000000, 0x3FF0071D, 0x1412B9FB, 0x3E228D43,
- 0x98000000, 0x3FF00721, 0x94D8FFB0, 0xBE3A3B08,
- 0x98000000, 0x3FF00725, 0x6ED80040, 0x3E029AA3,
- 0x98000000, 0x3FF00729, 0x9627250A, 0x3E3EF1B8,
- 0x9C000000, 0x3FF0072D, 0x5FCB1B09, 0xBE117F70,
- 0x9C000000, 0x3FF00731, 0x678F0789, 0x3E385E96,
- 0xA0000000, 0x3FF00735, 0xCEA3485B, 0xBE25A5DF,
- 0xA0000000, 0x3FF00739, 0xFF6D0303, 0x3E320B90,
- 0xA4000000, 0x3FF0073D, 0xE03334FF, 0xBE3105E6,
- 0xA4000000, 0x3FF00741, 0xFB9F056D, 0x3E27F150,
- 0xA8000000, 0x3FF00745, 0xE28905F4, 0xBE36F8C0,
- 0xA8000000, 0x3FF00749, 0x0B1407AA, 0x3E189774,
- 0xAC000000, 0x3FF0074D, 0xCE4493C4, 0xBE3CAB7D,
- 0xAC000000, 0x3FF00751, 0xCB817D78, 0x3DE265D5,
- 0xAC000000, 0x3FF00755, 0x7CA8B4E3, 0x3E3DE1E2,
- 0xB0000000, 0x3FF00759, 0x7D730FC6, 0xBE12FD89,
- 0xB0000000, 0x3FF0075D, 0x1E4D7759, 0x3E38AF60,
- 0xB4000000, 0x3FF00761, 0x0CAD84A2, 0xBE23A3AC,
- 0xB4000000, 0x3FF00765, 0x36B866FD, 0x3E33BCFB,
- 0xB8000000, 0x3FF00769, 0x4D0667A1, 0xBE2D4858,
- 0xB8000000, 0x3FF0076D, 0xCBF08E6A, 0x3E2E1567,
- 0xBC000000, 0x3FF00771, 0x9FD34D05, 0xBE333664,
- 0xBC000000, 0x3FF00775, 0x9837D6E0, 0x3E253114,
- 0xC0000000, 0x3FF00779, 0x5238327D, 0xBE37887F,
- 0xC0000000, 0x3FF0077D, 0x24C8DC90, 0x3E1999FA,
- 0xC4000000, 0x3FF00781, 0x1DA2F8BE, 0xBE3B9A7C,
- 0xC4000000, 0x3FF00785, 0xEA50EE6A, 0x3E03A485,
- 0xC8000000, 0x3FF00789, 0xE204A449, 0xBE3F6C5A,
- 0xC8000000, 0x3FF0078D, 0x78D5D0F3, 0xBDF3D3EF,
- 0xC8000000, 0x3FF00791, 0x80B1D66C, 0x3E3D01E4,
- 0xCC000000, 0x3FF00795, 0xD5149796, 0xBE12BBC1,
- 0xCC000000, 0x3FF00799, 0x2A8F92F0, 0x3E39B042,
- 0xD0000000, 0x3FF0079D, 0x6F386487, 0xBE1F820E,
- 0xD0000000, 0x3FF007A1, 0x3BA3BCDA, 0x3E369EBE,
- 0xD4000000, 0x3FF007A5, 0x96320652, 0xBE25A3F0,
- 0xD4000000, 0x3FF007A9, 0xD3FD8FCA, 0x3E33CD58,
- 0xD8000000, 0x3FF007AD, 0xC62D40B1, 0xBE2B069C,
- 0xD8000000, 0x3FF007B1, 0x13AC5766, 0x3E313C12,
- 0xDC000000, 0x3FF007B5, 0x876F3A0B, 0xBE2FE90B,
- 0xDC000000, 0x3FF007B9, 0x357EDEB8, 0x3E2DD5D4,
- 0xE0000000, 0x3FF007BD, 0x4CEC957E, 0xBE32259E,
- 0xE0000000, 0x3FF007C1, 0x128C86C6, 0x3E29B3C2,
- 0xE4000000, 0x3FF007C5, 0xDEA61608, 0xBE341697,
- 0xE4000000, 0x3FF007C9, 0xFEA09E70, 0x3E2611ED,
- 0xE8000000, 0x3FF007CD, 0x58D49AE3, 0xBE35C772,
- 0xE8000000, 0x3FF007D1, 0x39DA3D42, 0x3E22F058,
- 0xEC000000, 0x3FF007D5, 0x9B689043, 0xBE37382D,
- 0xEC000000, 0x3FF007D9, 0x04589AD6, 0x3E204F01,
- 0xF0000000, 0x3FF007DD, 0x86525259, 0xBE3868C9,
- 0xF0000000, 0x3FF007E1, 0x3C761DAC, 0x3E1C5BD1,
- 0xF4000000, 0x3FF007E5, 0xF9822D4C, 0xBE395945,
- 0xF4000000, 0x3FF007E9, 0x8F4221F9, 0x3E191A1E,
- 0xF8000000, 0x3FF007ED, 0xD4E85D3A, 0xBE3A09A2,
- 0xF8000000, 0x3FF007F1, 0x81547225, 0x3E16D8EA,
- 0xFC000000, 0x3FF007F5, 0xF8750E3B, 0xBE3A79DF,
- 0xFC000000, 0x3FF007F9, 0x92EC7DE3, 0x3E159835,
- 0x00000000, 0x3FF007FE, 0x44185C5D, 0xBE3AA9FD } };
-
-#endif
-#endif
diff --git a/sysdeps/ieee754/dbl-64/ulog.h b/sysdeps/ieee754/dbl-64/ulog.h
deleted file mode 100644
index 087b76e2ab..0000000000
--- a/sysdeps/ieee754/dbl-64/ulog.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * IBM Accurate Mathematical Library
- * Written by International Business Machines Corp.
- * Copyright (C) 2001-2018 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 by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program 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 this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-/******************************************************************/
-/* */
-/* MODULE_NAME:ulog.h */
-/* */
-/* common data and variables prototype and definition */
-/******************************************************************/
-
-#ifndef ULOG_H
-#define ULOG_H
-
-#ifdef BIG_ENDI
- static const number
- /* polynomial I */
-/**/ a2 = {{0xbfe00000, 0x0001aa8f} }, /* -0.500... */
-/**/ a3 = {{0x3fd55555, 0x55588d2e} }, /* 0.333... */
- /* polynomial II */
-/**/ b0 = {{0x3fd55555, 0x55555555} }, /* 0.333... */
-/**/ b1 = {{0xbfcfffff, 0xffffffbb} }, /* -0.249... */
-/**/ b2 = {{0x3fc99999, 0x9999992f} }, /* 0.199... */
-/**/ b3 = {{0xbfc55555, 0x556503fd} }, /* -0.166... */
-/**/ b4 = {{0x3fc24924, 0x925b3d62} }, /* 0.142... */
-/**/ b5 = {{0xbfbffffe, 0x160472fc} }, /* -0.124... */
-/**/ b6 = {{0x3fbc71c5, 0x25db58ac} }, /* 0.111... */
-/**/ b7 = {{0xbfb9a4ac, 0x11a2a61c} }, /* -0.100... */
-/**/ b8 = {{0x3fb75077, 0x0df2b591} }, /* 0.091... */
- /* constants */
-/**/ sqrt_2 = {{0x3ff6a09e, 0x667f3bcc} }, /* sqrt(2) */
-/**/ h1 = {{0x3fd2e000, 0x00000000} }, /* 151/2**9 */
-/**/ h2 = {{0x3f669000, 0x00000000} }, /* 361/2**17 */
-/**/ delu = {{0x3f700000, 0x00000000} }, /* 1/2**8 */
-/**/ delv = {{0x3ef00000, 0x00000000} }, /* 1/2**16 */
-/**/ ln2a = {{0x3fe62e42, 0xfefa3800} }, /* ln(2) 43 bits */
-/**/ ln2b = {{0x3d2ef357, 0x93c76730} }, /* ln(2)-ln2a */
-/**/ two54 = {{0x43500000, 0x00000000} }, /* 2**54 */
-/**/ u03 = {{0x3f9eb851, 0xeb851eb8} }; /* 0.03 */
-
-#else
-#ifdef LITTLE_ENDI
- static const number
- /* polynomial I */
-/**/ a2 = {{0x0001aa8f, 0xbfe00000} }, /* -0.500... */
-/**/ a3 = {{0x55588d2e, 0x3fd55555} }, /* 0.333... */
- /* polynomial II */
-/**/ b0 = {{0x55555555, 0x3fd55555} }, /* 0.333... */
-/**/ b1 = {{0xffffffbb, 0xbfcfffff} }, /* -0.249... */
-/**/ b2 = {{0x9999992f, 0x3fc99999} }, /* 0.199... */
-/**/ b3 = {{0x556503fd, 0xbfc55555} }, /* -0.166... */
-/**/ b4 = {{0x925b3d62, 0x3fc24924} }, /* 0.142... */
-/**/ b5 = {{0x160472fc, 0xbfbffffe} }, /* -0.124... */
-/**/ b6 = {{0x25db58ac, 0x3fbc71c5} }, /* 0.111... */
-/**/ b7 = {{0x11a2a61c, 0xbfb9a4ac} }, /* -0.100... */
-/**/ b8 = {{0x0df2b591, 0x3fb75077} }, /* 0.091... */
- /* constants */
-/**/ sqrt_2 = {{0x667f3bcc, 0x3ff6a09e} }, /* sqrt(2) */
-/**/ h1 = {{0x00000000, 0x3fd2e000} }, /* 151/2**9 */
-/**/ h2 = {{0x00000000, 0x3f669000} }, /* 361/2**17 */
-/**/ delu = {{0x00000000, 0x3f700000} }, /* 1/2**8 */
-/**/ delv = {{0x00000000, 0x3ef00000} }, /* 1/2**16 */
-/**/ ln2a = {{0xfefa3800, 0x3fe62e42} }, /* ln(2) 43 bits */
-/**/ ln2b = {{0x93c76730, 0x3d2ef357} }, /* ln(2)-ln2a */
-/**/ two54 = {{0x00000000, 0x43500000} }, /* 2**54 */
-/**/ u03 = {{0xeb851eb8, 0x3f9eb851} }; /* 0.03 */
-
-#endif
-#endif
-
-#define SQRT_2 sqrt_2.d
-#define DEL_U delu.d
-#define DEL_V delv.d
-#define LN2A ln2a.d
-#define LN2B ln2b.d
-#define U03 u03.d
-
-#endif
diff --git a/sysdeps/ieee754/dbl-64/ulog.tbl b/sysdeps/ieee754/dbl-64/ulog.tbl
deleted file mode 100644
index 93fa1b36d3..0000000000
--- a/sysdeps/ieee754/dbl-64/ulog.tbl
+++ /dev/null
@@ -1,3326 +0,0 @@
-/*
- * IBM Accurate Mathematical Library
- * Written by International Business Machines Corp.
- * Copyright (C) 2001-2018 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 by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program 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 this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-/****************************************************************/
-/* TABLES FOR THE ulog() FUNCTION */
-/****************************************************************/
-
-#ifdef BIG_ENDI
- static const number
- Iu[182] = { /* 1/ui */
-/**/ {{0x3ff6a13c, 0xd1537290} },
-/**/ {{0x3ff68168, 0x16816817} },
-/**/ {{0x3ff661ec, 0x6a5122f9} },
-/**/ {{0x3ff642c8, 0x590b2164} },
-/**/ {{0x3ff623fa, 0x77016240} },
-/**/ {{0x3ff60581, 0x60581606} },
-/**/ {{0x3ff5e75b, 0xb8d015e7} },
-/**/ {{0x3ff5c988, 0x2b931057} },
-/**/ {{0x3ff5ac05, 0x6b015ac0} },
-/**/ {{0x3ff58ed2, 0x308158ed} },
-/**/ {{0x3ff571ed, 0x3c506b3a} },
-/**/ {{0x3ff55555, 0x55555555} },
-/**/ {{0x3ff53909, 0x48f40feb} },
-/**/ {{0x3ff51d07, 0xeae2f815} },
-/**/ {{0x3ff50150, 0x15015015} },
-/**/ {{0x3ff4e5e0, 0xa72f0539} },
-/**/ {{0x3ff4cab8, 0x8725af6e} },
-/**/ {{0x3ff4afd6, 0xa052bf5b} },
-/**/ {{0x3ff49539, 0xe3b2d067} },
-/**/ {{0x3ff47ae1, 0x47ae147b} },
-/**/ {{0x3ff460cb, 0xc7f5cf9a} },
-/**/ {{0x3ff446f8, 0x6562d9fb} },
-/**/ {{0x3ff42d66, 0x25d51f87} },
-/**/ {{0x3ff41414, 0x14141414} },
-/**/ {{0x3ff3fb01, 0x3fb013fb} },
-/**/ {{0x3ff3e22c, 0xbce4a902} },
-/**/ {{0x3ff3c995, 0xa47babe7} },
-/**/ {{0x3ff3b13b, 0x13b13b14} },
-/**/ {{0x3ff3991c, 0x2c187f63} },
-/**/ {{0x3ff38138, 0x13813814} },
-/**/ {{0x3ff3698d, 0xf3de0748} },
-/**/ {{0x3ff3521c, 0xfb2b78c1} },
-/**/ {{0x3ff33ae4, 0x5b57bcb2} },
-/**/ {{0x3ff323e3, 0x4a2b10bf} },
-/**/ {{0x3ff30d19, 0x0130d190} },
-/**/ {{0x3ff2f684, 0xbda12f68} },
-/**/ {{0x3ff2e025, 0xc04b8097} },
-/**/ {{0x3ff2c9fb, 0x4d812ca0} },
-/**/ {{0x3ff2b404, 0xad012b40} },
-/**/ {{0x3ff29e41, 0x29e4129e} },
-/**/ {{0x3ff288b0, 0x1288b013} },
-/**/ {{0x3ff27350, 0xb8812735} },
-/**/ {{0x3ff25e22, 0x708092f1} },
-/**/ {{0x3ff24924, 0x92492492} },
-/**/ {{0x3ff23456, 0x789abcdf} },
-/**/ {{0x3ff21fb7, 0x8121fb78} },
-/**/ {{0x3ff20b47, 0x0c67c0d9} },
-/**/ {{0x3ff1f704, 0x7dc11f70} },
-/**/ {{0x3ff1e2ef, 0x3b3fb874} },
-/**/ {{0x3ff1cf06, 0xada2811d} },
-/**/ {{0x3ff1bb4a, 0x4046ed29} },
-/**/ {{0x3ff1a7b9, 0x611a7b96} },
-/**/ {{0x3ff19453, 0x808ca29c} },
-/**/ {{0x3ff18118, 0x11811812} },
-/**/ {{0x3ff16e06, 0x89427379} },
-/**/ {{0x3ff15b1e, 0x5f75270d} },
-/**/ {{0x3ff1485f, 0x0e0acd3b} },
-/**/ {{0x3ff135c8, 0x1135c811} },
-/**/ {{0x3ff12358, 0xe75d3033} },
-/**/ {{0x3ff11111, 0x11111111} },
-/**/ {{0x3ff0fef0, 0x10fef011} },
-/**/ {{0x3ff0ecf5, 0x6be69c90} },
-/**/ {{0x3ff0db20, 0xa88f4696} },
-/**/ {{0x3ff0c971, 0x4fbcda3b} },
-/**/ {{0x3ff0b7e6, 0xec259dc8} },
-/**/ {{0x3ff0a681, 0x0a6810a7} },
-/**/ {{0x3ff0953f, 0x39010954} },
-/**/ {{0x3ff08421, 0x08421084} },
-/**/ {{0x3ff07326, 0x0a47f7c6} },
-/**/ {{0x3ff0624d, 0xd2f1a9fc} },
-/**/ {{0x3ff05197, 0xf7d73404} },
-/**/ {{0x3ff04104, 0x10410410} },
-/**/ {{0x3ff03091, 0xb51f5e1a} },
-/**/ {{0x3ff02040, 0x81020408} },
-/**/ {{0x3ff01010, 0x10101010} },
-/**/ {{0x3ff00000, 0x00000000} },
-/**/ {{0x3fefe01f, 0xe01fe020} },
-/**/ {{0x3fefc07f, 0x01fc07f0} },
-/**/ {{0x3fefa11c, 0xaa01fa12} },
-/**/ {{0x3fef81f8, 0x1f81f820} },
-/**/ {{0x3fef6310, 0xaca0dbb5} },
-/**/ {{0x3fef4465, 0x9e4a4271} },
-/**/ {{0x3fef25f6, 0x44230ab5} },
-/**/ {{0x3fef07c1, 0xf07c1f08} },
-/**/ {{0x3feee9c7, 0xf8458e02} },
-/**/ {{0x3feecc07, 0xb301ecc0} },
-/**/ {{0x3feeae80, 0x7aba01eb} },
-/**/ {{0x3fee9131, 0xabf0b767} },
-/**/ {{0x3fee741a, 0xa59750e4} },
-/**/ {{0x3fee573a, 0xc901e574} },
-/**/ {{0x3fee3a91, 0x79dc1a73} },
-/**/ {{0x3fee1e1e, 0x1e1e1e1e} },
-/**/ {{0x3fee01e0, 0x1e01e01e} },
-/**/ {{0x3fede5d6, 0xe3f8868a} },
-/**/ {{0x3fedca01, 0xdca01dca} },
-/**/ {{0x3fedae60, 0x76b981db} },
-/**/ {{0x3fed92f2, 0x231e7f8a} },
-/**/ {{0x3fed77b6, 0x54b82c34} },
-/**/ {{0x3fed5cac, 0x807572b2} },
-/**/ {{0x3fed41d4, 0x1d41d41d} },
-/**/ {{0x3fed272c, 0xa3fc5b1a} },
-/**/ {{0x3fed0cb5, 0x8f6ec074} },
-/**/ {{0x3fecf26e, 0x5c44bfc6} },
-/**/ {{0x3fecd856, 0x89039b0b} },
-/**/ {{0x3fecbe6d, 0x9601cbe7} },
-/**/ {{0x3feca4b3, 0x055ee191} },
-/**/ {{0x3fec8b26, 0x5afb8a42} },
-/**/ {{0x3fec71c7, 0x1c71c71c} },
-/**/ {{0x3fec5894, 0xd10d4986} },
-/**/ {{0x3fec3f8f, 0x01c3f8f0} },
-/**/ {{0x3fec26b5, 0x392ea01c} },
-/**/ {{0x3fec0e07, 0x0381c0e0} },
-/**/ {{0x3febf583, 0xee868d8b} },
-/**/ {{0x3febdd2b, 0x899406f7} },
-/**/ {{0x3febc4fd, 0x65883e7b} },
-/**/ {{0x3febacf9, 0x14c1bad0} },
-/**/ {{0x3feb951e, 0x2b18ff23} },
-/**/ {{0x3feb7d6c, 0x3dda338b} },
-/**/ {{0x3feb65e2, 0xe3beee05} },
-/**/ {{0x3feb4e81, 0xb4e81b4f} },
-/**/ {{0x3feb3748, 0x4ad806ce} },
-/**/ {{0x3feb2036, 0x406c80d9} },
-/**/ {{0x3feb094b, 0x31d922a4} },
-/**/ {{0x3feaf286, 0xbca1af28} },
-/**/ {{0x3feadbe8, 0x7f94905e} },
-/**/ {{0x3feac570, 0x1ac5701b} },
-/**/ {{0x3feaaf1d, 0x2f87ebfd} },
-/**/ {{0x3fea98ef, 0x606a63be} },
-/**/ {{0x3fea82e6, 0x5130e159} },
-/**/ {{0x3fea6d01, 0xa6d01a6d} },
-/**/ {{0x3fea5741, 0x07688a4a} },
-/**/ {{0x3fea41a4, 0x1a41a41a} },
-/**/ {{0x3fea2c2a, 0x87c51ca0} },
-/**/ {{0x3fea16d3, 0xf97a4b02} },
-/**/ {{0x3fea01a0, 0x1a01a01a} },
-/**/ {{0x3fe9ec8e, 0x951033d9} },
-/**/ {{0x3fe9d79f, 0x176b682d} },
-/**/ {{0x3fe9c2d1, 0x4ee4a102} },
-/**/ {{0x3fe9ae24, 0xea5510da} },
-/**/ {{0x3fe99999, 0x9999999a} },
-/**/ {{0x3fe9852f, 0x0d8ec0ff} },
-/**/ {{0x3fe970e4, 0xf80cb872} },
-/**/ {{0x3fe95cbb, 0x0be377ae} },
-/**/ {{0x3fe948b0, 0xfcd6e9e0} },
-/**/ {{0x3fe934c6, 0x7f9b2ce6} },
-/**/ {{0x3fe920fb, 0x49d0e229} },
-/**/ {{0x3fe90d4f, 0x120190d5} },
-/**/ {{0x3fe8f9c1, 0x8f9c18fa} },
-/**/ {{0x3fe8e652, 0x7af1373f} },
-/**/ {{0x3fe8d301, 0x8d3018d3} },
-/**/ {{0x3fe8bfce, 0x8062ff3a} },
-/**/ {{0x3fe8acb9, 0x0f6bf3aa} },
-/**/ {{0x3fe899c0, 0xf601899c} },
-/**/ {{0x3fe886e5, 0xf0abb04a} },
-/**/ {{0x3fe87427, 0xbcc092b9} },
-/**/ {{0x3fe86186, 0x18618618} },
-/**/ {{0x3fe84f00, 0xc2780614} },
-/**/ {{0x3fe83c97, 0x7ab2bedd} },
-/**/ {{0x3fe82a4a, 0x0182a4a0} },
-/**/ {{0x3fe81818, 0x18181818} },
-/**/ {{0x3fe80601, 0x80601806} },
-/**/ {{0x3fe7f405, 0xfd017f40} },
-/**/ {{0x3fe7e225, 0x515a4f1d} },
-/**/ {{0x3fe7d05f, 0x417d05f4} },
-/**/ {{0x3fe7beb3, 0x922e017c} },
-/**/ {{0x3fe7ad22, 0x08e0ecc3} },
-/**/ {{0x3fe79baa, 0x6bb6398b} },
-/**/ {{0x3fe78a4c, 0x8178a4c8} },
-/**/ {{0x3fe77908, 0x119ac60d} },
-/**/ {{0x3fe767dc, 0xe434a9b1} },
-/**/ {{0x3fe756ca, 0xc201756d} },
-/**/ {{0x3fe745d1, 0x745d1746} },
-/**/ {{0x3fe734f0, 0xc541fe8d} },
-/**/ {{0x3fe72428, 0x7f46debc} },
-/**/ {{0x3fe71378, 0x6d9c7c09} },
-/**/ {{0x3fe702e0, 0x5c0b8170} },
-/**/ {{0x3fe6f260, 0x16f26017} },
-/**/ {{0x3fe6e1f7, 0x6b4337c7} },
-/**/ {{0x3fe6d1a6, 0x2681c861} },
-/**/ {{0x3fe6c16c, 0x16c16c17} },
-/**/ {{0x3fe6b149, 0x0aa31a3d} },
-/**/ {{0x3fe6a13c, 0xd1537290} },
- };
-
- static const number
- Iv[362] = { /* 1/vj */
-/**/ {{0x3ff00b47, 0xee93bfe3} },
-/**/ {{0x3ff00b37, 0xd80c106f} },
-/**/ {{0x3ff00b27, 0xc1a4a47a} },
-/**/ {{0x3ff00b17, 0xab5d7ba2} },
-/**/ {{0x3ff00b07, 0x95369587} },
-/**/ {{0x3ff00af7, 0x7f2ff1c6} },
-/**/ {{0x3ff00ae7, 0x69499000} },
-/**/ {{0x3ff00ad7, 0x53836fd3} },
-/**/ {{0x3ff00ac7, 0x3ddd90dd} },
-/**/ {{0x3ff00ab7, 0x2857f2bf} },
-/**/ {{0x3ff00aa7, 0x12f29517} },
-/**/ {{0x3ff00a96, 0xfdad7784} },
-/**/ {{0x3ff00a86, 0xe88899a5} },
-/**/ {{0x3ff00a76, 0xd383fb19} },
-/**/ {{0x3ff00a66, 0xbe9f9b7f} },
-/**/ {{0x3ff00a56, 0xa9db7a76} },
-/**/ {{0x3ff00a46, 0x9537979d} },
-/**/ {{0x3ff00a36, 0x80b3f293} },
-/**/ {{0x3ff00a26, 0x6c508af8} },
-/**/ {{0x3ff00a16, 0x580d606a} },
-/**/ {{0x3ff00a06, 0x43ea7288} },
-/**/ {{0x3ff009f6, 0x2fe7c0f1} },
-/**/ {{0x3ff009e6, 0x1c054b44} },
-/**/ {{0x3ff009d6, 0x08431122} },
-/**/ {{0x3ff009c5, 0xf4a11227} },
-/**/ {{0x3ff009b5, 0xe11f4df4} },
-/**/ {{0x3ff009a5, 0xcdbdc428} },
-/**/ {{0x3ff00995, 0xba7c7462} },
-/**/ {{0x3ff00985, 0xa75b5e40} },
-/**/ {{0x3ff00975, 0x945a8162} },
-/**/ {{0x3ff00965, 0x8179dd68} },
-/**/ {{0x3ff00955, 0x6eb971ef} },
-/**/ {{0x3ff00945, 0x5c193e98} },
-/**/ {{0x3ff00935, 0x49994301} },
-/**/ {{0x3ff00925, 0x37397eca} },
-/**/ {{0x3ff00915, 0x24f9f192} },
-/**/ {{0x3ff00905, 0x12da9af7} },
-/**/ {{0x3ff008f5, 0x00db7a99} },
-/**/ {{0x3ff008e4, 0xeefc9018} },
-/**/ {{0x3ff008d4, 0xdd3ddb12} },
-/**/ {{0x3ff008c4, 0xcb9f5b26} },
-/**/ {{0x3ff008b4, 0xba210ff4} },
-/**/ {{0x3ff008a4, 0xa8c2f91a} },
-/**/ {{0x3ff00894, 0x97851639} },
-/**/ {{0x3ff00884, 0x866766ef} },
-/**/ {{0x3ff00874, 0x7569eadb} },
-/**/ {{0x3ff00864, 0x648ca19d} },
-/**/ {{0x3ff00854, 0x53cf8ad3} },
-/**/ {{0x3ff00844, 0x4332a61e} },
-/**/ {{0x3ff00834, 0x32b5f31b} },
-/**/ {{0x3ff00824, 0x2259716c} },
-/**/ {{0x3ff00814, 0x121d20ad} },
-/**/ {{0x3ff00804, 0x02010080} },
-/**/ {{0x3ff007f3, 0xf2051083} },
-/**/ {{0x3ff007e3, 0xe2295056} },
-/**/ {{0x3ff007d3, 0xd26dbf97} },
-/**/ {{0x3ff007c3, 0xc2d25de5} },
-/**/ {{0x3ff007b3, 0xb3572ae2} },
-/**/ {{0x3ff007a3, 0xa3fc262a} },
-/**/ {{0x3ff00793, 0x94c14f5f} },
-/**/ {{0x3ff00783, 0x85a6a61e} },
-/**/ {{0x3ff00773, 0x76ac2a08} },
-/**/ {{0x3ff00763, 0x67d1dabb} },
-/**/ {{0x3ff00753, 0x5917b7d7} },
-/**/ {{0x3ff00743, 0x4a7dc0fb} },
-/**/ {{0x3ff00733, 0x3c03f5c7} },
-/**/ {{0x3ff00723, 0x2daa55da} },
-/**/ {{0x3ff00713, 0x1f70e0d3} },
-/**/ {{0x3ff00703, 0x11579652} },
-/**/ {{0x3ff006f3, 0x035e75f5} },
-/**/ {{0x3ff006e2, 0xf5857f5d} },
-/**/ {{0x3ff006d2, 0xe7ccb228} },
-/**/ {{0x3ff006c2, 0xda340df6} },
-/**/ {{0x3ff006b2, 0xccbb9266} },
-/**/ {{0x3ff006a2, 0xbf633f18} },
-/**/ {{0x3ff00692, 0xb22b13ab} },
-/**/ {{0x3ff00682, 0xa5130fbe} },
-/**/ {{0x3ff00672, 0x981b32f1} },
-/**/ {{0x3ff00662, 0x8b437ce4} },
-/**/ {{0x3ff00652, 0x7e8bed35} },
-/**/ {{0x3ff00642, 0x71f48383} },
-/**/ {{0x3ff00632, 0x657d3f70} },
-/**/ {{0x3ff00622, 0x59262098} },
-/**/ {{0x3ff00612, 0x4cef269e} },
-/**/ {{0x3ff00602, 0x40d8511e} },
-/**/ {{0x3ff005f2, 0x34e19fba} },
-/**/ {{0x3ff005e2, 0x290b1211} },
-/**/ {{0x3ff005d2, 0x1d54a7c1} },
-/**/ {{0x3ff005c2, 0x11be606b} },
-/**/ {{0x3ff005b2, 0x06483bad} },
-/**/ {{0x3ff005a1, 0xfaf23928} },
-/**/ {{0x3ff00591, 0xefbc587b} },
-/**/ {{0x3ff00581, 0xe4a69945} },
-/**/ {{0x3ff00571, 0xd9b0fb25} },
-/**/ {{0x3ff00561, 0xcedb7dbc} },
-/**/ {{0x3ff00551, 0xc42620a9} },
-/**/ {{0x3ff00541, 0xb990e38b} },
-/**/ {{0x3ff00531, 0xaf1bc601} },
-/**/ {{0x3ff00521, 0xa4c6c7ac} },
-/**/ {{0x3ff00511, 0x9a91e82a} },
-/**/ {{0x3ff00501, 0x907d271c} },
-/**/ {{0x3ff004f1, 0x86888421} },
-/**/ {{0x3ff004e1, 0x7cb3fed8} },
-/**/ {{0x3ff004d1, 0x72ff96e0} },
-/**/ {{0x3ff004c1, 0x696b4bdb} },
-/**/ {{0x3ff004b1, 0x5ff71d66} },
-/**/ {{0x3ff004a1, 0x56a30b21} },
-/**/ {{0x3ff00491, 0x4d6f14ad} },
-/**/ {{0x3ff00481, 0x445b39a8} },
-/**/ {{0x3ff00471, 0x3b6779b3} },
-/**/ {{0x3ff00461, 0x3293d46c} },
-/**/ {{0x3ff00451, 0x29e04974} },
-/**/ {{0x3ff00441, 0x214cd869} },
-/**/ {{0x3ff00431, 0x18d980ed} },
-/**/ {{0x3ff00421, 0x1086429d} },
-/**/ {{0x3ff00411, 0x08531d1a} },
-/**/ {{0x3ff00401, 0x00401004} },
-/**/ {{0x3ff003f0, 0xf84d1afa} },
-/**/ {{0x3ff003e0, 0xf07a3d9b} },
-/**/ {{0x3ff003d0, 0xe8c77787} },
-/**/ {{0x3ff003c0, 0xe134c85f} },
-/**/ {{0x3ff003b0, 0xd9c22fc1} },
-/**/ {{0x3ff003a0, 0xd26fad4d} },
-/**/ {{0x3ff00390, 0xcb3d40a3} },
-/**/ {{0x3ff00380, 0xc42ae963} },
-/**/ {{0x3ff00370, 0xbd38a72c} },
-/**/ {{0x3ff00360, 0xb666799e} },
-/**/ {{0x3ff00350, 0xafb46058} },
-/**/ {{0x3ff00340, 0xa9225afa} },
-/**/ {{0x3ff00330, 0xa2b06925} },
-/**/ {{0x3ff00320, 0x9c5e8a77} },
-/**/ {{0x3ff00310, 0x962cbe90} },
-/**/ {{0x3ff00300, 0x901b0511} },
-/**/ {{0x3ff002f0, 0x8a295d98} },
-/**/ {{0x3ff002e0, 0x8457c7c6} },
-/**/ {{0x3ff002d0, 0x7ea6433a} },
-/**/ {{0x3ff002c0, 0x7914cf94} },
-/**/ {{0x3ff002b0, 0x73a36c73} },
-/**/ {{0x3ff002a0, 0x6e521978} },
-/**/ {{0x3ff00290, 0x6920d642} },
-/**/ {{0x3ff00280, 0x640fa271} },
-/**/ {{0x3ff00270, 0x5f1e7da5} },
-/**/ {{0x3ff00260, 0x5a4d677d} },
-/**/ {{0x3ff00250, 0x559c5f9a} },
-/**/ {{0x3ff00240, 0x510b659a} },
-/**/ {{0x3ff00230, 0x4c9a791f} },
-/**/ {{0x3ff00220, 0x484999c6} },
-/**/ {{0x3ff00210, 0x4418c732} },
-/**/ {{0x3ff00200, 0x40080100} },
-/**/ {{0x3ff001f0, 0x3c1746d2} },
-/**/ {{0x3ff001e0, 0x38469846} },
-/**/ {{0x3ff001d0, 0x3495f4fd} },
-/**/ {{0x3ff001c0, 0x31055c96} },
-/**/ {{0x3ff001b0, 0x2d94ceb2} },
-/**/ {{0x3ff001a0, 0x2a444af0} },
-/**/ {{0x3ff00190, 0x2713d0ef} },
-/**/ {{0x3ff00180, 0x24036051} },
-/**/ {{0x3ff00170, 0x2112f8b4} },
-/**/ {{0x3ff00160, 0x1e4299b9} },
-/**/ {{0x3ff00150, 0x1b9242ff} },
-/**/ {{0x3ff00140, 0x1901f427} },
-/**/ {{0x3ff00130, 0x1691acd0} },
-/**/ {{0x3ff00120, 0x14416c9a} },
-/**/ {{0x3ff00110, 0x12113324} },
-/**/ {{0x3ff00100, 0x10010010} },
-/**/ {{0x3ff000f0, 0x0e10d2fc} },
-/**/ {{0x3ff000e0, 0x0c40ab89} },
-/**/ {{0x3ff000d0, 0x0a908957} },
-/**/ {{0x3ff000c0, 0x09006c05} },
-/**/ {{0x3ff000b0, 0x07905334} },
-/**/ {{0x3ff000a0, 0x06403e82} },
-/**/ {{0x3ff00090, 0x05102d92} },
-/**/ {{0x3ff00080, 0x04002001} },
-/**/ {{0x3ff00070, 0x03101571} },
-/**/ {{0x3ff00060, 0x02400d80} },
-/**/ {{0x3ff00050, 0x019007d0} },
-/**/ {{0x3ff00040, 0x01000400} },
-/**/ {{0x3ff00030, 0x009001b0} },
-/**/ {{0x3ff00020, 0x00400080} },
-/**/ {{0x3ff00010, 0x00100010} },
-/**/ {{0x3ff00000, 0x00000000} },
-/**/ {{0x3fefffe0, 0x001fffe0} },
-/**/ {{0x3fefffc0, 0x007fff00} },
-/**/ {{0x3fefffa0, 0x011ffca0} },
-/**/ {{0x3fefff80, 0x01fff800} },
-/**/ {{0x3fefff60, 0x031ff060} },
-/**/ {{0x3fefff40, 0x047fe501} },
-/**/ {{0x3fefff20, 0x061fd521} },
-/**/ {{0x3fefff00, 0x07ffc002} },
-/**/ {{0x3feffee0, 0x0a1fa4e3} },
-/**/ {{0x3feffec0, 0x0c7f8305} },
-/**/ {{0x3feffea0, 0x0f1f59a7} },
-/**/ {{0x3feffe80, 0x11ff280a} },
-/**/ {{0x3feffe60, 0x151eed6e} },
-/**/ {{0x3feffe40, 0x187ea913} },
-/**/ {{0x3feffe20, 0x1c1e5a39} },
-/**/ {{0x3feffe00, 0x1ffe0020} },
-/**/ {{0x3feffde0, 0x241d9a09} },
-/**/ {{0x3feffdc0, 0x287d2733} },
-/**/ {{0x3feffda0, 0x2d1ca6e0} },
-/**/ {{0x3feffd80, 0x31fc184e} },
-/**/ {{0x3feffd60, 0x371b7abf} },
-/**/ {{0x3feffd40, 0x3c7acd72} },
-/**/ {{0x3feffd20, 0x421a0fa9} },
-/**/ {{0x3feffd00, 0x47f940a2} },
-/**/ {{0x3feffce0, 0x4e185f9f} },
-/**/ {{0x3feffcc0, 0x54776bdf} },
-/**/ {{0x3feffca0, 0x5b1664a3} },
-/**/ {{0x3feffc80, 0x61f5492c} },
-/**/ {{0x3feffc60, 0x691418b9} },
-/**/ {{0x3feffc40, 0x7072d28b} },
-/**/ {{0x3feffc20, 0x781175e3} },
-/**/ {{0x3feffc00, 0x7ff00200} },
-/**/ {{0x3feffbe0, 0x880e7623} },
-/**/ {{0x3feffbc0, 0x906cd18c} },
-/**/ {{0x3feffba0, 0x990b137c} },
-/**/ {{0x3feffb80, 0xa1e93b34} },
-/**/ {{0x3feffb60, 0xab0747f3} },
-/**/ {{0x3feffb40, 0xb46538fa} },
-/**/ {{0x3feffb20, 0xbe030d89} },
-/**/ {{0x3feffb00, 0xc7e0c4e1} },
-/**/ {{0x3feffae0, 0xd1fe5e43} },
-/**/ {{0x3feffac0, 0xdc5bd8ee} },
-/**/ {{0x3feffaa0, 0xe6f93424} },
-/**/ {{0x3feffa80, 0xf1d66f25} },
-/**/ {{0x3feffa60, 0xfcf38931} },
-/**/ {{0x3feffa41, 0x08508189} },
-/**/ {{0x3feffa21, 0x13ed576d} },
-/**/ {{0x3feffa01, 0x1fca0a1e} },
-/**/ {{0x3feff9e1, 0x2be698dd} },
-/**/ {{0x3feff9c1, 0x384302e9} },
-/**/ {{0x3feff9a1, 0x44df4785} },
-/**/ {{0x3feff981, 0x51bb65ef} },
-/**/ {{0x3feff961, 0x5ed75d6a} },
-/**/ {{0x3feff941, 0x6c332d34} },
-/**/ {{0x3feff921, 0x79ced490} },
-/**/ {{0x3feff901, 0x87aa52be} },
-/**/ {{0x3feff8e1, 0x95c5a6fe} },
-/**/ {{0x3feff8c1, 0xa420d091} },
-/**/ {{0x3feff8a1, 0xb2bbceb7} },
-/**/ {{0x3feff881, 0xc196a0b2} },
-/**/ {{0x3feff861, 0xd0b145c2} },
-/**/ {{0x3feff841, 0xe00bbd28} },
-/**/ {{0x3feff821, 0xefa60624} },
-/**/ {{0x3feff801, 0xff801ff8} },
-/**/ {{0x3feff7e2, 0x0f9a09e3} },
-/**/ {{0x3feff7c2, 0x1ff3c328} },
-/**/ {{0x3feff7a2, 0x308d4b05} },
-/**/ {{0x3feff782, 0x4166a0bd} },
-/**/ {{0x3feff762, 0x527fc390} },
-/**/ {{0x3feff742, 0x63d8b2bf} },
-/**/ {{0x3feff722, 0x75716d8b} },
-/**/ {{0x3feff702, 0x8749f334} },
-/**/ {{0x3feff6e2, 0x996242fb} },
-/**/ {{0x3feff6c2, 0xabba5c21} },
-/**/ {{0x3feff6a2, 0xbe523de8} },
-/**/ {{0x3feff682, 0xd129e78f} },
-/**/ {{0x3feff662, 0xe4415858} },
-/**/ {{0x3feff642, 0xf7988f84} },
-/**/ {{0x3feff623, 0x0b2f8c54} },
-/**/ {{0x3feff603, 0x1f064e08} },
-/**/ {{0x3feff5e3, 0x331cd3e1} },
-/**/ {{0x3feff5c3, 0x47731d21} },
-/**/ {{0x3feff5a3, 0x5c092908} },
-/**/ {{0x3feff583, 0x70def6d7} },
-/**/ {{0x3feff563, 0x85f485d0} },
-/**/ {{0x3feff543, 0x9b49d532} },
-/**/ {{0x3feff523, 0xb0dee440} },
-/**/ {{0x3feff503, 0xc6b3b23b} },
-/**/ {{0x3feff4e3, 0xdcc83e62} },
-/**/ {{0x3feff4c3, 0xf31c87f8} },
-/**/ {{0x3feff4a4, 0x09b08e3d} },
-/**/ {{0x3feff484, 0x20845073} },
-/**/ {{0x3feff464, 0x3797cdda} },
-/**/ {{0x3feff444, 0x4eeb05b4} },
-/**/ {{0x3feff424, 0x667df741} },
-/**/ {{0x3feff404, 0x7e50a1c3} },
-/**/ {{0x3feff3e4, 0x9663047b} },
-/**/ {{0x3feff3c4, 0xaeb51eaa} },
-/**/ {{0x3feff3a4, 0xc746ef91} },
-/**/ {{0x3feff384, 0xe0187672} },
-/**/ {{0x3feff364, 0xf929b28d} },
-/**/ {{0x3feff345, 0x127aa323} },
-/**/ {{0x3feff325, 0x2c0b4776} },
-/**/ {{0x3feff305, 0x45db9ec7} },
-/**/ {{0x3feff2e5, 0x5feba858} },
-/**/ {{0x3feff2c5, 0x7a3b6369} },
-/**/ {{0x3feff2a5, 0x94cacf3b} },
-/**/ {{0x3feff285, 0xaf99eb11} },
-/**/ {{0x3feff265, 0xcaa8b62a} },
-/**/ {{0x3feff245, 0xe5f72fc9} },
-/**/ {{0x3feff226, 0x0185572f} },
-/**/ {{0x3feff206, 0x1d532b9d} },
-/**/ {{0x3feff1e6, 0x3960ac54} },
-/**/ {{0x3feff1c6, 0x55add896} },
-/**/ {{0x3feff1a6, 0x723aafa3} },
-/**/ {{0x3feff186, 0x8f0730be} },
-/**/ {{0x3feff166, 0xac135b27} },
-/**/ {{0x3feff146, 0xc95f2e21} },
-/**/ {{0x3feff126, 0xe6eaa8eb} },
-/**/ {{0x3feff107, 0x04b5cac9} },
-/**/ {{0x3feff0e7, 0x22c092fb} },
-/**/ {{0x3feff0c7, 0x410b00c2} },
-/**/ {{0x3feff0a7, 0x5f951360} },
-/**/ {{0x3feff087, 0x7e5eca16} },
-/**/ {{0x3feff067, 0x9d682426} },
-/**/ {{0x3feff047, 0xbcb120d2} },
-/**/ {{0x3feff027, 0xdc39bf5a} },
-/**/ {{0x3feff007, 0xfc01ff00} },
-/**/ {{0x3fefefe8, 0x1c09df07} },
-/**/ {{0x3fefefc8, 0x3c515eae} },
-/**/ {{0x3fefefa8, 0x5cd87d38} },
-/**/ {{0x3fefef88, 0x7d9f39e6} },
-/**/ {{0x3fefef68, 0x9ea593fa} },
-/**/ {{0x3fefef48, 0xbfeb8ab5} },
-/**/ {{0x3fefef28, 0xe1711d5a} },
-/**/ {{0x3fefef09, 0x03364b28} },
-/**/ {{0x3fefeee9, 0x253b1363} },
-/**/ {{0x3fefeec9, 0x477f754b} },
-/**/ {{0x3fefeea9, 0x6a037022} },
-/**/ {{0x3fefee89, 0x8cc7032a} },
-/**/ {{0x3fefee69, 0xafca2da5} },
-/**/ {{0x3fefee49, 0xd30ceed4} },
-/**/ {{0x3fefee29, 0xf68f45f8} },
-/**/ {{0x3fefee0a, 0x1a513254} },
-/**/ {{0x3fefedea, 0x3e52b329} },
-/**/ {{0x3fefedca, 0x6293c7b8} },
-/**/ {{0x3fefedaa, 0x87146f44} },
-/**/ {{0x3fefed8a, 0xabd4a90e} },
-/**/ {{0x3fefed6a, 0xd0d47458} },
-/**/ {{0x3fefed4a, 0xf613d064} },
-/**/ {{0x3fefed2b, 0x1b92bc73} },
-/**/ {{0x3fefed0b, 0x415137c7} },
-/**/ {{0x3fefeceb, 0x674f41a2} },
-/**/ {{0x3fefeccb, 0x8d8cd945} },
-/**/ {{0x3fefecab, 0xb409fdf3} },
-/**/ {{0x3fefec8b, 0xdac6aeed} },
-/**/ {{0x3fefec6c, 0x01c2eb76} },
-/**/ {{0x3fefec4c, 0x28feb2ce} },
-/**/ {{0x3fefec2c, 0x507a0437} },
-/**/ {{0x3fefec0c, 0x7834def5} },
-/**/ {{0x3fefebec, 0xa02f4247} },
-/**/ {{0x3fefebcc, 0xc8692d71} },
-/**/ {{0x3fefebac, 0xf0e29fb4} },
-/**/ {{0x3fefeb8d, 0x199b9852} },
-/**/ {{0x3fefeb6d, 0x4294168d} },
-/**/ {{0x3fefeb4d, 0x6bcc19a7} },
-/**/ {{0x3fefeb2d, 0x9543a0e2} },
-/**/ {{0x3fefeb0d, 0xbefaab7f} },
-/**/ {{0x3fefeaed, 0xe8f138c2} },
-/**/ {{0x3fefeace, 0x132747ea} },
-/**/ {{0x3fefeaae, 0x3d9cd83c} },
-/**/ {{0x3fefea8e, 0x6851e8f7} },
-/**/ {{0x3fefea6e, 0x93467960} },
-/**/ {{0x3fefea4e, 0xbe7a88b7} },
-/**/ {{0x3fefea2e, 0xe9ee163f} },
-/**/ {{0x3fefea0f, 0x15a12139} },
-/**/ {{0x3fefe9ef, 0x4193a8e8} },
-/**/ {{0x3fefe9cf, 0x6dc5ac8e} },
-/**/ {{0x3fefe9af, 0x9a372b6d} },
-/**/ {{0x3fefe98f, 0xc6e824c6} },
-/**/ {{0x3fefe96f, 0xf3d897dd} },
- };
-
- static const number
- Lu[182][2] = { /* log(ui) */
-/**/ {{{0xbfd63003, 0x0b3aac49} },
-/**/ {{0xbc6dc18c, 0xe51fff99} },},
-/**/ {{{0xbfd5d5bd, 0xdf595f30} },
-/**/ {{0x3c765411, 0x48cbb8a2} },},
-/**/ {{{0xbfd57bf7, 0x53c8d1fb} },
-/**/ {{0x3c60908d, 0x15f88b63} },},
-/**/ {{{0xbfd522ae, 0x0738a3d8} },
-/**/ {{0x3c68f7e9, 0xb38a6979} },},
-/**/ {{{0xbfd4c9e0, 0x9e172c3c} },
-/**/ {{0x3c512361, 0x5b147a5d} },},
-/**/ {{{0xbfd4718d, 0xc271c41b} },
-/**/ {{0xbc38fb4c, 0x14c56eef} },},
-/**/ {{{0xbfd419b4, 0x23d5e8c7} },
-/**/ {{0xbc60dbb2, 0x43827392} },},
-/**/ {{{0xbfd3c252, 0x77333184} },
-/**/ {{0x3c72ad27, 0xe50a8ec6} },},
-/**/ {{{0xbfd36b67, 0x76be1117} },
-/**/ {{0x3c5324f0, 0xe883858e} },},
-/**/ {{{0xbfd314f1, 0xe1d35ce4} },
-/**/ {{0x3c73d699, 0x09e5c3dc} },},
-/**/ {{{0xbfd2bef0, 0x7cdc9354} },
-/**/ {{0x3c782dad, 0x7fd86088} },},
-/**/ {{{0xbfd26962, 0x1134db92} },
-/**/ {{0xbc7e0efa, 0xdd9db02b} },},
-/**/ {{{0xbfd21445, 0x6d0eb8d4} },
-/**/ {{0xbc6f7ae9, 0x1aeba60a} },},
-/**/ {{{0xbfd1bf99, 0x635a6b95} },
-/**/ {{0x3c612aeb, 0x84249223} },},
-/**/ {{{0xbfd16b5c, 0xcbacfb73} },
-/**/ {{0xbc766fbd, 0x28b40935} },},
-/**/ {{{0xbfd1178e, 0x8227e47c} },
-/**/ {{0x3c60e63a, 0x5f01c691} },},
-/**/ {{{0xbfd0c42d, 0x676162e3} },
-/**/ {{0xbc5162c7, 0x9d5d11ee} },},
-/**/ {{{0xbfd07138, 0x604d5862} },
-/**/ {{0xbc7cdb16, 0xed4e9138} },},
-/**/ {{{0xbfd01eae, 0x5626c691} },
-/**/ {{0x3c418290, 0xbd2932e2} },},
-/**/ {{{0xbfcf991c, 0x6cb3b379} },
-/**/ {{0xbc6f6650, 0x66f980a2} },},
-/**/ {{{0xbfcef5ad, 0xe4dcffe6} },
-/**/ {{0x3c508ab2, 0xddc708a0} },},
-/**/ {{{0xbfce530e, 0xffe71012} },
-/**/ {{0xbc422760, 0x41f43042} },},
-/**/ {{{0xbfcdb13d, 0xb0d48940} },
-/**/ {{0xbc5aa11d, 0x49f96cb9} },},
-/**/ {{{0xbfcd1037, 0xf2655e7b} },
-/**/ {{0xbc660629, 0x242471a2} },},
-/**/ {{{0xbfcc6ffb, 0xc6f00f71} },
-/**/ {{0x3c68e58b, 0x2c57a4a5} },},
-/**/ {{{0xbfcbd087, 0x383bd8ad} },
-/**/ {{0xbc3dd355, 0xf6a516d7} },},
-/**/ {{{0xbfcb31d8, 0x575bce3d} },
-/**/ {{0x3c66353a, 0xb386a94d} },},
-/**/ {{{0xbfca93ed, 0x3c8ad9e3} },
-/**/ {{0xbc6bcafa, 0x9de97203} },},
-/**/ {{{0xbfc9f6c4, 0x07089664} },
-/**/ {{0xbc435a19, 0x605e67ef} },},
-/**/ {{{0xbfc95a5a, 0xdcf7017f} },
-/**/ {{0xbc5142c5, 0x07fb7a3d} },},
-/**/ {{{0xbfc8beaf, 0xeb38fe8c} },
-/**/ {{0xbc555aa8, 0xb6997a40} },},
-/**/ {{{0xbfc823c1, 0x6551a3c2} },
-/**/ {{0x3c61232c, 0xe70be781} },},
-/**/ {{{0xbfc7898d, 0x85444c73} },
-/**/ {{0xbc5ef8f6, 0xebcfb201} },},
-/**/ {{{0xbfc6f012, 0x8b756abc} },
-/**/ {{0x3c68de59, 0xc21e166c} },},
-/**/ {{{0xbfc6574e, 0xbe8c133a} },
-/**/ {{0x3c3d34f0, 0xf4621bed} },},
-/**/ {{{0xbfc5bf40, 0x6b543db2} },
-/**/ {{0x3c21f5b4, 0x4c0df7e7} },},
-/**/ {{{0xbfc527e5, 0xe4a1b58d} },
-/**/ {{0x3c271a96, 0x82395bfd} },},
-/**/ {{{0xbfc4913d, 0x8333b561} },
-/**/ {{0x3c50d560, 0x4930f135} },},
-/**/ {{{0xbfc3fb45, 0xa59928cc} },
-/**/ {{0x3c6d87e6, 0xa354d056} },},
-/**/ {{{0xbfc365fc, 0xb0159016} },
-/**/ {{0xbc57d411, 0xa5b944ad} },},
-/**/ {{{0xbfc2d161, 0x0c86813a} },
-/**/ {{0x3c5499a3, 0xf25af95f} },},
-/**/ {{{0xbfc23d71, 0x2a49c202} },
-/**/ {{0x3c66e381, 0x61051d69} },},
-/**/ {{{0xbfc1aa2b, 0x7e23f72a} },
-/**/ {{0x3c4c6ef1, 0xd9b2ef7e} },},
-/**/ {{{0xbfc1178e, 0x8227e47c} },
-/**/ {{0x3c50e63a, 0x5f01c691} },},
-/**/ {{{0xbfc08598, 0xb59e3a07} },
-/**/ {{0x3c6dd700, 0x9902bf32} },},
-/**/ {{{0xbfbfe891, 0x39dbd566} },
-/**/ {{0x3c5ac9f4, 0x215f9393} },},
-/**/ {{{0xbfbec739, 0x830a1120} },
-/**/ {{0x3c4a2bf9, 0x91780d3f} },},
-/**/ {{{0xbfbda727, 0x638446a2} },
-/**/ {{0xbc5401fa, 0x71733019} },},
-/**/ {{{0xbfbc8858, 0x01bc4b23} },
-/**/ {{0xbc5a38cb, 0x559a6706} },},
-/**/ {{{0xbfbb6ac8, 0x8dad5b1c} },
-/**/ {{0x3c40057e, 0xed1ca59f} },},
-/**/ {{{0xbfba4e76, 0x40b1bc38} },
-/**/ {{0x3c55b5ca, 0x203e4259} },},
-/**/ {{{0xbfb9335e, 0x5d594989} },
-/**/ {{0x3c5478a8, 0x5704ccb7} },},
-/**/ {{{0xbfb8197e, 0x2f40e3f0} },
-/**/ {{0xbc3b9f2d, 0xffbeed43} },},
-/**/ {{{0xbfb700d3, 0x0aeac0e1} },
-/**/ {{0x3c272566, 0x212cdd05} },},
-/**/ {{{0xbfb5e95a, 0x4d9791cb} },
-/**/ {{0xbc5f3874, 0x5c5c450a} },},
-/**/ {{{0xbfb4d311, 0x5d207eac} },
-/**/ {{0xbc5769f4, 0x2c7842cc} },},
-/**/ {{{0xbfb3bdf5, 0xa7d1ee64} },
-/**/ {{0xbc47a976, 0xd3b5b45f} },},
-/**/ {{{0xbfb2aa04, 0xa44717a5} },
-/**/ {{0x3c5d15d3, 0x8d2fa3f7} },},
-/**/ {{{0xbfb1973b, 0xd1465567} },
-/**/ {{0x3c475583, 0x67a6acf6} },},
-/**/ {{{0xbfb08598, 0xb59e3a07} },
-/**/ {{0x3c5dd700, 0x9902bf32} },},
-/**/ {{{0xbfaeea31, 0xc006b87c} },
-/**/ {{0x3c43e4fc, 0x93b7b66c} },},
-/**/ {{{0xbfaccb73, 0xcdddb2cc} },
-/**/ {{0x3c4e48fb, 0x0500efd4} },},
-/**/ {{{0xbfaaaef2, 0xd0fb10fc} },
-/**/ {{0xbc2a353b, 0xb42e0add} },},
-/**/ {{{0xbfa894aa, 0x149fb343} },
-/**/ {{0xbc3a8be9, 0x7660a23d} },},
-/**/ {{{0xbfa67c94, 0xf2d4bb58} },
-/**/ {{0xbc40413e, 0x6505e603} },},
-/**/ {{{0xbfa466ae, 0xd42de3ea} },
-/**/ {{0x3c4cdd6f, 0x7f4a137e} },},
-/**/ {{{0xbfa252f3, 0x2f8d183f} },
-/**/ {{0x3c4947f7, 0x92615916} },},
-/**/ {{{0xbfa0415d, 0x89e74444} },
-/**/ {{0xbc4c05cf, 0x1d753622} },},
-/**/ {{{0xbf9c63d2, 0xec14aaf2} },
-/**/ {{0x3c3ce030, 0xa686bd86} },},
-/**/ {{{0xbf984925, 0x28c8cabf} },
-/**/ {{0x3c3d192d, 0x0619fa67} },},
-/**/ {{{0xbf9432a9, 0x25980cc1} },
-/**/ {{0x3c38cdaf, 0x39004192} },},
-/**/ {{{0xbf902056, 0x58935847} },
-/**/ {{0xbc327c8e, 0x8416e71f} },},
-/**/ {{{0xbf882448, 0xa388a2aa} },
-/**/ {{0xbc104b16, 0x137f09a0} },},
-/**/ {{{0xbf801015, 0x7588de71} },
-/**/ {{0xbc146662, 0xd417ced0} },},
-/**/ {{{0xbf700805, 0x59588b35} },
-/**/ {{0xbc1f9663, 0x8cf63677} },},
-/**/ {{{0x00000000, 0x00000000} },
-/**/ {{0x00000000, 0x00000000} },},
-/**/ {{{0x3f6ff00a, 0xa2b10bc0} },
-/**/ {{0x3c02821a, 0xd5a6d353} },},
-/**/ {{{0x3f7fe02a, 0x6b106789} },
-/**/ {{0xbbce44b7, 0xe3711ebf} },},
-/**/ {{{0x3f87dc47, 0x5f810a77} },
-/**/ {{0xbc116d76, 0x87d3df21} },},
-/**/ {{{0x3f8fc0a8, 0xb0fc03e4} },
-/**/ {{0xbc183092, 0xc59642a1} },},
-/**/ {{{0x3f93cea4, 0x4346a575} },
-/**/ {{0xbc10cb5a, 0x902b3a1c} },},
-/**/ {{{0x3f97b91b, 0x07d5b11b} },
-/**/ {{0xbc35b602, 0xace3a510} },},
-/**/ {{{0x3f9b9fc0, 0x27af9198} },
-/**/ {{0xbbf0ae69, 0x229dc868} },},
-/**/ {{{0x3f9f829b, 0x0e783300} },
-/**/ {{0x3c333e3f, 0x04f1ef23} },},
-/**/ {{{0x3fa1b0d9, 0x8923d980} },
-/**/ {{0xbc3e9ae8, 0x89bac481} },},
-/**/ {{{0x3fa39e87, 0xb9febd60} },
-/**/ {{0xbc45bfa9, 0x37f551bb} },},
-/**/ {{{0x3fa58a5b, 0xafc8e4d5} },
-/**/ {{0xbc4ce55c, 0x2b4e2b72} },},
-/**/ {{{0x3fa77458, 0xf632dcfc} },
-/**/ {{0x3c418d3c, 0xa87b9296} },},
-/**/ {{{0x3fa95c83, 0x0ec8e3eb} },
-/**/ {{0x3c4f5a0e, 0x80520bf2} },},
-/**/ {{{0x3fab42dd, 0x711971bf} },
-/**/ {{0xbc3eb975, 0x9c130499} },},
-/**/ {{{0x3fad276b, 0x8adb0b52} },
-/**/ {{0x3c21e3c5, 0x3257fd47} },},
-/**/ {{{0x3faf0a30, 0xc01162a6} },
-/**/ {{0x3c485f32, 0x5c5bbacd} },},
-/**/ {{{0x3fb07598, 0x3598e471} },
-/**/ {{0x3c480da5, 0x333c45b8} },},
-/**/ {{{0x3fb16536, 0xeea37ae1} },
-/**/ {{0xbc379da3, 0xe8c22cda} },},
-/**/ {{{0x3fb253f6, 0x2f0a1417} },
-/**/ {{0xbc1c1259, 0x63fc4cfd} },},
-/**/ {{{0x3fb341d7, 0x961bd1d1} },
-/**/ {{0xbc5b599f, 0x227becbb} },},
-/**/ {{{0x3fb42edc, 0xbea646f0} },
-/**/ {{0x3c4ddd4f, 0x935996c9} },},
-/**/ {{{0x3fb51b07, 0x3f06183f} },
-/**/ {{0x3c5a49e3, 0x9a1a8be4} },},
-/**/ {{{0x3fb60658, 0xa93750c4} },
-/**/ {{0xbc538845, 0x8ec21b6a} },},
-/**/ {{{0x3fb6f0d2, 0x8ae56b4c} },
-/**/ {{0xbc5906d9, 0x9184b992} },},
-/**/ {{{0x3fb7da76, 0x6d7b12cd} },
-/**/ {{0xbc5eeedf, 0xcdd94131} },},
-/**/ {{{0x3fb8c345, 0xd6319b21} },
-/**/ {{0xbc24a697, 0xab3424a9} },},
-/**/ {{{0x3fb9ab42, 0x462033ad} },
-/**/ {{0xbc42099e, 0x1c184e8e} },},
-/**/ {{{0x3fba926d, 0x3a4ad563} },
-/**/ {{0x3c5942f4, 0x8aa70ea9} },},
-/**/ {{{0x3fbb78c8, 0x2bb0eda1} },
-/**/ {{0x3c20878c, 0xf0327e21} },},
-/**/ {{{0x3fbc5e54, 0x8f5bc743} },
-/**/ {{0x3c35d617, 0xef8161b1} },},
-/**/ {{{0x3fbd4313, 0xd66cb35d} },
-/**/ {{0x3c5790dd, 0x951d90fa} },},
-/**/ {{{0x3fbe2707, 0x6e2af2e6} },
-/**/ {{0xbc361578, 0x001e0162} },},
-/**/ {{{0x3fbf0a30, 0xc01162a6} },
-/**/ {{0x3c585f32, 0x5c5bbacd} },},
-/**/ {{{0x3fbfec91, 0x31dbeabb} },
-/**/ {{0xbc55746b, 0x9981b36c} },},
-/**/ {{{0x3fc06715, 0x12ca596e} },
-/**/ {{0x3c550c64, 0x7eb86499} },},
-/**/ {{{0x3fc0d77e, 0x7cd08e59} },
-/**/ {{0x3c69a5dc, 0x5e9030ac} },},
-/**/ {{{0x3fc14785, 0x846742ac} },
-/**/ {{0x3c6a2881, 0x3e3a7f07} },},
-/**/ {{{0x3fc1b72a, 0xd52f67a0} },
-/**/ {{0x3c548302, 0x3472cd74} },},
-/**/ {{{0x3fc2266f, 0x190a5acb} },
-/**/ {{0x3c6f547b, 0xf1809e88} },},
-/**/ {{{0x3fc29552, 0xf81ff523} },
-/**/ {{0x3c630177, 0x1c407dbf} },},
-/**/ {{{0x3fc303d7, 0x18e47fd3} },
-/**/ {{0xbc06b9c7, 0xd96091fa} },},
-/**/ {{{0x3fc371fc, 0x201e8f74} },
-/**/ {{0x3c5de6cb, 0x62af18a0} },},
-/**/ {{{0x3fc3dfc2, 0xb0ecc62a} },
-/**/ {{0xbc5ab3a8, 0xe7d81017} },},
-/**/ {{{0x3fc44d2b, 0x6ccb7d1e} },
-/**/ {{0x3c69f4f6, 0x543e1f88} },},
-/**/ {{{0x3fc4ba36, 0xf39a55e5} },
-/**/ {{0x3c668981, 0xbcc36756} },},
-/**/ {{{0x3fc526e5, 0xe3a1b438} },
-/**/ {{0xbc6746ff, 0x8a470d3a} },},
-/**/ {{{0x3fc59338, 0xd9982086} },
-/**/ {{0xbc565d22, 0xaa8ad7cf} },},
-/**/ {{{0x3fc5ff30, 0x70a793d4} },
-/**/ {{0xbc5bc60e, 0xfafc6f6e} },},
-/**/ {{{0x3fc66acd, 0x4272ad51} },
-/**/ {{0xbc50900e, 0x4e1ea8b2} },},
-/**/ {{{0x3fc6d60f, 0xe719d21d} },
-/**/ {{0xbc6caae2, 0x68ecd179} },},
-/**/ {{{0x3fc740f8, 0xf54037a5} },
-/**/ {{0xbc5b2640, 0x62a84cdb} },},
-/**/ {{{0x3fc7ab89, 0x0210d909} },
-/**/ {{0x3c4be36b, 0x2d6a0608} },},
-/**/ {{{0x3fc815c0, 0xa14357eb} },
-/**/ {{0xbc54be48, 0x073a0564} },},
-/**/ {{{0x3fc87fa0, 0x6520c911} },
-/**/ {{0xbc6bf7fd, 0xbfa08d9a} },},
-/**/ {{{0x3fc8e928, 0xde886d41} },
-/**/ {{0xbc6569d8, 0x51a56770} },},
-/**/ {{{0x3fc9525a, 0x9cf456b4} },
-/**/ {{0x3c6d904c, 0x1d4e2e26} },},
-/**/ {{{0x3fc9bb36, 0x2e7dfb83} },
-/**/ {{0x3c6575e3, 0x1f003e0c} },},
-/**/ {{{0x3fca23bc, 0x1fe2b563} },
-/**/ {{0x3c493711, 0xb07a998c} },},
-/**/ {{{0x3fca8bec, 0xfc882f19} },
-/**/ {{0xbc5e8c37, 0x918c39eb} },},
-/**/ {{{0x3fcaf3c9, 0x4e80bff3} },
-/**/ {{0xbc5398cf, 0xf3641985} },},
-/**/ {{{0x3fcb5b51, 0x9e8fb5a4} },
-/**/ {{0x3c6ba27f, 0xdc19e1a0} },},
-/**/ {{{0x3fcbc286, 0x742d8cd6} },
-/**/ {{0x3c54fce7, 0x44870f55} },},
-/**/ {{{0x3fcc2968, 0x558c18c1} },
-/**/ {{0xbc673dee, 0x38a3fb6b} },},
-/**/ {{{0x3fcc8ff7, 0xc79a9a22} },
-/**/ {{0xbc64f689, 0xf8434012} },},
-/**/ {{{0x3fccf635, 0x4e09c5dc} },
-/**/ {{0x3c6239a0, 0x7d55b695} },},
-/**/ {{{0x3fcd5c21, 0x6b4fbb91} },
-/**/ {{0x3c66e443, 0x597e4d40} },},
-/**/ {{{0x3fcdc1bc, 0xa0abec7d} },
-/**/ {{0x3c6834c5, 0x1998b6fc} },},
-/**/ {{{0x3fce2707, 0x6e2af2e6} },
-/**/ {{0xbc461578, 0x001e0162} },},
-/**/ {{{0x3fce8c02, 0x52aa5a60} },
-/**/ {{0xbc46e03a, 0x39bfc89b} },},
-/**/ {{{0x3fcef0ad, 0xcbdc5936} },
-/**/ {{0x3c648637, 0x950dc20d} },},
-/**/ {{{0x3fcf550a, 0x564b7b37} },
-/**/ {{0x3c2c5f6d, 0xfd018c37} },},
-/**/ {{{0x3fcfb918, 0x6d5e3e2b} },
-/**/ {{0xbc6caaae, 0x64f21acb} },},
-/**/ {{{0x3fd00e6c, 0x45ad501d} },
-/**/ {{0xbc6cb956, 0x8ff6fead} },},
-/**/ {{{0x3fd04025, 0x94b4d041} },
-/**/ {{0xbc628ec2, 0x17a5022d} },},
-/**/ {{{0x3fd071b8, 0x5fcd590d} },
-/**/ {{0x3c5d1707, 0xf97bde80} },},
-/**/ {{{0x3fd0a324, 0xe27390e3} },
-/**/ {{0x3c77dcfd, 0xe8061c03} },},
-/**/ {{{0x3fd0d46b, 0x579ab74b} },
-/**/ {{0x3c603ec8, 0x1c3cbd92} },},
-/**/ {{{0x3fd1058b, 0xf9ae4ad5} },
-/**/ {{0x3c589fa0, 0xab4cb31d} },},
-/**/ {{{0x3fd13687, 0x0293a8b0} },
-/**/ {{0x3c77b662, 0x98edd24a} },},
-/**/ {{{0x3fd1675c, 0xababa60e} },
-/**/ {{0x3c2ce63e, 0xab883717} },},
-/**/ {{{0x3fd1980d, 0x2dd4236f} },
-/**/ {{0x3c79d3d1, 0xb0e4d147} },},
-/**/ {{{0x3fd1c898, 0xc16999fb} },
-/**/ {{0xbc30e5c6, 0x2aff1c44} },},
-/**/ {{{0x3fd1f8ff, 0x9e48a2f3} },
-/**/ {{0xbc7c9fdf, 0x9a0c4b07} },},
-/**/ {{{0x3fd22941, 0xfbcf7966} },
-/**/ {{0xbc776f5e, 0xb09628af} },},
-/**/ {{{0x3fd25960, 0x10df763a} },
-/**/ {{0xbc50f76c, 0x57075e9e} },},
-/**/ {{{0x3fd2895a, 0x13de86a3} },
-/**/ {{0x3c77ad24, 0xc13f040e} },},
-/**/ {{{0x3fd2b930, 0x3ab89d25} },
-/**/ {{0xbc7896b5, 0xfd852ad4} },},
-/**/ {{{0x3fd2e8e2, 0xbae11d31} },
-/**/ {{0xbc78f4cd, 0xb95ebdf9} },},
-/**/ {{{0x3fd31871, 0xc9544185} },
-/**/ {{0xbc351acc, 0x4c09b379} },},
-/**/ {{{0x3fd347dd, 0x9a987d55} },
-/**/ {{0xbc64dd4c, 0x580919f8} },},
-/**/ {{{0x3fd37726, 0x62bfd85b} },
-/**/ {{0xbc4b5629, 0xd8117de7} },},
-/**/ {{{0x3fd3a64c, 0x556945ea} },
-/**/ {{0xbc6c6865, 0x1945f97c} },},
-/**/ {{{0x3fd3d54f, 0xa5c1f710} },
-/**/ {{0xbc7e3265, 0xc6a1c98d} },},
-/**/ {{{0x3fd40430, 0x8686a7e4} },
-/**/ {{0xbc70bcfb, 0x6082ce6d} },},
-/**/ {{{0x3fd432ef, 0x2a04e814} },
-/**/ {{0xbc729931, 0x715ac903} },},
-/**/ {{{0x3fd4618b, 0xc21c5ec2} },
-/**/ {{0x3c7f42de, 0xcdeccf1d} },},
-/**/ {{{0x3fd49006, 0x804009d1} },
-/**/ {{0xbc69ffc3, 0x41f177dc} },},
-/**/ {{{0x3fd4be5f, 0x957778a1} },
-/**/ {{0xbc6259b3, 0x5b04813d} },},
-/**/ {{{0x3fd4ec97, 0x3260026a} },
-/**/ {{0xbc742a87, 0xd977dc5e} },},
-/**/ {{{0x3fd51aad, 0x872df82d} },
-/**/ {{0x3c43927a, 0xc19f55e3} },},
-/**/ {{{0x3fd548a2, 0xc3add263} },
-/**/ {{0xbc6819cf, 0x7e308ddb} },},
-/**/ {{{0x3fd57677, 0x17455a6c} },
-/**/ {{0x3c7526ad, 0xb283660c} },},
-/**/ {{{0x3fd5a42a, 0xb0f4cfe2} },
-/**/ {{0xbc78ebcb, 0x7dee9a3d} },},
-/**/ {{{0x3fd5d1bd, 0xbf5809ca} },
-/**/ {{0x3c742363, 0x83dc7fe1} },},
-/**/ {{{0x3fd5ff30, 0x70a793d4} },
-/**/ {{0xbc6bc60e, 0xfafc6f6e} },},
-/**/ {{{0x3fd62c82, 0xf2b9c795} },
-/**/ {{0x3c67b7af, 0x915300e5} },},
- };
-
- static const number
- Lv[362][2] = { /* log(vj) */
-
-/**/ {{{0xbf6687ec, 0xb72daabf} },
-/**/ {{0x3c052c69, 0x0f13318f} },},
-/**/ {{{0xbf6667d6, 0x3767104f} },
-/**/ {{0x3bd3efa3, 0xd27a7bac} },},
-/**/ {{{0xbf6647bf, 0xd7cd64fb} },
-/**/ {{0x3c09b725, 0x55a89c36} },},
-/**/ {{{0xbf6627a9, 0x9860683b} },
-/**/ {{0x3bcbae22, 0xfebc844a} },},
-/**/ {{{0xbf660793, 0x791fd98a} },
-/**/ {{0xbbfe34af, 0x78fa1cb5} },},
-/**/ {{{0xbf65e77d, 0x7a0b7863} },
-/**/ {{0xbc02f1b1, 0xea78fdd0} },},
-/**/ {{{0xbf65c767, 0x9b230442} },
-/**/ {{0x3bf70d8c, 0x2202b2ca} },},
-/**/ {{{0xbf65a751, 0xdc663ca2} },
-/**/ {{0xbbfdc63d, 0xc3444e64} },},
-/**/ {{{0xbf65873c, 0x3dd4e102} },
-/**/ {{0x3c021b11, 0x370d69c3} },},
-/**/ {{{0xbf656726, 0xbf6eb0de} },
-/**/ {{0xbbfb6da8, 0x154dd8d8} },},
-/**/ {{{0xbf654711, 0x61336bb6} },
-/**/ {{0xbc0b12d2, 0xdf9a4709} },},
-/**/ {{{0xbf6526fc, 0x2322d10a} },
-/**/ {{0x3bf997f2, 0x68d1274f} },},
-/**/ {{{0xbf6506e7, 0x053ca059} },
-/**/ {{0x3c0c2a1f, 0xe70c852a} },},
-/**/ {{{0xbf64e6d2, 0x07809924} },
-/**/ {{0x3c04cc9e, 0xa808538f} },},
-/**/ {{{0xbf64c6bd, 0x29ee7aed} },
-/**/ {{0x3befe68c, 0x7797a4bd} },},
-/**/ {{{0xbf64a6a8, 0x6c860537} },
-/**/ {{0x3c06794d, 0x9efaae3d} },},
-/**/ {{{0xbf648693, 0xcf46f784} },
-/**/ {{0xbbfed318, 0xb2ddd9d1} },},
-/**/ {{{0xbf64667f, 0x5231115a} },
-/**/ {{0x3c061f62, 0x4643624b} },},
-/**/ {{{0xbf64466a, 0xf544123c} },
-/**/ {{0x3c0666a0, 0x9387f11e} },},
-/**/ {{{0xbf642656, 0xb87fb9b0} },
-/**/ {{0x3c0043b2, 0x116ec598} },},
-/**/ {{{0xbf640642, 0x9be3c73c} },
-/**/ {{0xbbfbd84d, 0xd2de6e3e} },},
-/**/ {{{0xbf63e62e, 0x9f6ffa68} },
-/**/ {{0xbbe9149b, 0x433d8c65} },},
-/**/ {{{0xbf63c61a, 0xc32412bb} },
-/**/ {{0xbbf6b88d, 0x08e5a7bb} },},
-/**/ {{{0xbf63a607, 0x06ffcfbe} },
-/**/ {{0xbb9f3c7a, 0xccfac9e2} },},
-/**/ {{{0xbf6385f3, 0x6b02f0fa} },
-/**/ {{0x3bee405c, 0xbec6f6e4} },},
-/**/ {{{0xbf6365df, 0xef2d35f9} },
-/**/ {{0x3bf02993, 0xaf0c0b4c} },},
-/**/ {{{0xbf6345cc, 0x937e5e46} },
-/**/ {{0x3bf9be97, 0xaa64716f} },},
-/**/ {{{0xbf6325b9, 0x57f6296c} },
-/**/ {{0xbbfdeb4d, 0xa2e863ae} },},
-/**/ {{{0xbf6305a6, 0x3c9456f9} },
-/**/ {{0x3c0f3c7f, 0x636d2b2c} },},
-/**/ {{{0xbf62e593, 0x4158a678} },
-/**/ {{0x3c01a8df, 0xb166ca7f} },},
-/**/ {{{0xbf62c580, 0x6642d778} },
-/**/ {{0x3c020ff1, 0x53a2d534} },},
-/**/ {{{0xbf62a56d, 0xab52a987} },
-/**/ {{0xbbe8fef1, 0x0412f1e7} },},
-/**/ {{{0xbf62855b, 0x1087dc35} },
-/**/ {{0xbbfcd17e, 0x4b7ac6c6} },},
-/**/ {{{0xbf626548, 0x95e22f12} },
-/**/ {{0xbbfbfc21, 0x9a8127bf} },},
-/**/ {{{0xbf624536, 0x3b6161af} },
-/**/ {{0x3bd7eda1, 0x66d42390} },},
-/**/ {{{0xbf622524, 0x0105339d} },
-/**/ {{0xbbdf374e, 0x77fedcad} },},
-/**/ {{{0xbf620511, 0xe6cd646f} },
-/**/ {{0x3be1d1fb, 0x52d05dea} },},
-/**/ {{{0xbf61e4ff, 0xecb9b3b8} },
-/**/ {{0x3c02c2fc, 0xffd8e706} },},
-/**/ {{{0xbf61c4ee, 0x12c9e10b} },
-/**/ {{0xbc02b4f8, 0xf1d5cc2c} },},
-/**/ {{{0xbf61a4dc, 0x58fdabfe} },
-/**/ {{0xbc0618c3, 0x1315b191} },},
-/**/ {{{0xbf6184ca, 0xbf54d426} },
-/**/ {{0xbc01f8d5, 0xcb3cdab0} },},
-/**/ {{{0xbf6164b9, 0x45cf1919} },
-/**/ {{0xbc014ff7, 0xc025605a} },},
-/**/ {{{0xbf6144a7, 0xec6c3a6e} },
-/**/ {{0xbbff04ff, 0x87cb08cd} },},
-/**/ {{{0xbf612496, 0xb32bf7bd} },
-/**/ {{0x3bee89b4, 0xe6af1b84} },},
-/**/ {{{0xbf610485, 0x9a0e109e} },
-/**/ {{0x3c07e99e, 0x35a60879} },},
-/**/ {{{0xbf60e474, 0xa11244aa} },
-/**/ {{0x3c04b698, 0x20f2325a} },},
-/**/ {{{0xbf60c463, 0xc838537b} },
-/**/ {{0x3bc0657e, 0x3617200d} },},
-/**/ {{{0xbf60a453, 0x0f7ffcac} },
-/**/ {{0xbc008feb, 0xa5080961} },},
-/**/ {{{0xbf608442, 0x76e8ffd9} },
-/**/ {{0x3bd13002, 0xbb5e1df7} },},
-/**/ {{{0xbf606431, 0xfe731c9d} },
-/**/ {{0xbc0509f3, 0x6e2858c0} },},
-/**/ {{{0xbf604421, 0xa61e1296} },
-/**/ {{0xbc04b556, 0x5f5d9695} },},
-/**/ {{{0xbf602411, 0x6de9a162} },
-/**/ {{0x3c042b89, 0xe79a4e00} },},
-/**/ {{{0xbf600401, 0x55d5889e} },
-/**/ {{0x3be8f98e, 0x1113f403} },},
-/**/ {{{0xbf5fc7e2, 0xbbc30fd4} },
-/**/ {{0xbbfc709b, 0x93382bc9} },},
-/**/ {{{0xbf5f87c3, 0x0c1abdcd} },
-/**/ {{0xbbf2a90d, 0x76a55d1c} },},
-/**/ {{{0xbf5f47a3, 0x9cb19a68} },
-/**/ {{0x3be1b815, 0x76e7826b} },},
-/**/ {{{0xbf5f0784, 0x6d8724e7} },
-/**/ {{0xbbe72d46, 0x2b63756d} },},
-/**/ {{{0xbf5ec765, 0x7e9adc90} },
-/**/ {{0x3beb1a66, 0x73bb17c5} },},
-/**/ {{{0xbf5e8746, 0xcfec40a8} },
-/**/ {{0x3bf11af5, 0xb5e5a553} },},
-/**/ {{{0xbf5e4728, 0x617ad077} },
-/**/ {{0x3bfb2cad, 0xf57dd14f} },},
-/**/ {{{0xbf5e070a, 0x33460b45} },
-/**/ {{0xbbf8db75, 0x4902c8d5} },},
-/**/ {{{0xbf5dc6ec, 0x454d705f} },
-/**/ {{0x3bef5cc6, 0xe8a41057} },},
-/**/ {{{0xbf5d86ce, 0x97907f0f} },
-/**/ {{0x3bed8277, 0xdf8672ef} },},
-/**/ {{{0xbf5d46b1, 0x2a0eb6a3} },
-/**/ {{0xbbc2f9c2, 0x3717e5ee} },},
-/**/ {{{0xbf5d0693, 0xfcc7966b} },
-/**/ {{0x3bf4deed, 0xab4852c6} },},
-/**/ {{{0xbf5cc677, 0x0fba9db6} },
-/**/ {{0xbbf3a2b4, 0x9db2a368} },},
-/**/ {{{0xbf5c865a, 0x62e74bd8} },
-/**/ {{0xbbd2c51d, 0x58fa0c24} },},
-/**/ {{{0xbf5c463d, 0xf64d2024} },
-/**/ {{0x3bf838ca, 0xe3a09391} },},
-/**/ {{{0xbf5c0621, 0xc9eb99ee} },
-/**/ {{0xbbdc2a9e, 0x61b7de71} },},
-/**/ {{{0xbf5bc605, 0xddc2388e} },
-/**/ {{0xbbea9808, 0x4accb195} },},
-/**/ {{{0xbf5b85ea, 0x31d07b5c} },
-/**/ {{0xbbd811a2, 0x032e030b} },},
-/**/ {{{0xbf5b45ce, 0xc615e1b1} },
-/**/ {{0xbbfd5427, 0x821e0b81} },},
-/**/ {{{0xbf5b05b3, 0x9a91eaea} },
-/**/ {{0x3bfffeba, 0x2619306b} },},
-/**/ {{{0xbf5ac598, 0xaf441661} },
-/**/ {{0x3bd22824, 0x9eac7d15} },},
-/**/ {{{0xbf5a857e, 0x042be376} },
-/**/ {{0x3bc20736, 0x24893f0e} },},
-/**/ {{{0xbf5a4563, 0x9948d188} },
-/**/ {{0xbbf58ab4, 0x04d734cd} },},
-/**/ {{{0xbf5a0549, 0x6e9a5ff9} },
-/**/ {{0xbbf22673, 0x5723a6c3} },},
-/**/ {{{0xbf59c52f, 0x84200e2c} },
-/**/ {{0x3bfc81da, 0xa538e8e1} },},
-/**/ {{{0xbf598515, 0xd9d95b83} },
-/**/ {{0xbbfa1a37, 0x2a8e3feb} },},
-/**/ {{{0xbf5944fc, 0x6fc5c767} },
-/**/ {{0x3bf8e1ce, 0x385159f9} },},
-/**/ {{{0xbf5904e3, 0x45e4d13c} },
-/**/ {{0xbbfc4737, 0x1567c7a7} },},
-/**/ {{{0xbf58c4ca, 0x5c35f86e} },
-/**/ {{0x3bf41581, 0x23c9ae0c} },},
-/**/ {{{0xbf5884b1, 0xb2b8bc65} },
-/**/ {{0x3bf70c2c, 0x2b66cfb6} },},
-/**/ {{{0xbf584499, 0x496c9c8d} },
-/**/ {{0xbbdb9042, 0xe5a11e3e} },},
-/**/ {{{0xbf580481, 0x20511854} },
-/**/ {{0xbbf9cf9d, 0x61bcb040} },},
-/**/ {{{0xbf57c469, 0x3765af29} },
-/**/ {{0xbbf65ceb, 0xe26a419b} },},
-/**/ {{{0xbf578451, 0x8ea9e07c} },
-/**/ {{0xbbf1c2f5, 0xb70a4088} },},
-/**/ {{{0xbf57443a, 0x261d2bbf} },
-/**/ {{0xbbbc7b8f, 0x29704ba7} },},
-/**/ {{{0xbf570422, 0xfdbf1065} },
-/**/ {{0x3bca0a54, 0x433ccb3b} },},
-/**/ {{{0xbf56c40c, 0x158f0de3} },
-/**/ {{0x3bd9e257, 0x207cde2d} },},
-/**/ {{{0xbf5683f5, 0x6d8ca3af} },
-/**/ {{0xbbef17a4, 0xf7b51b49} },},
-/**/ {{{0xbf5643df, 0x05b75142} },
-/**/ {{0x3be28239, 0x9d345bf8} },},
-/**/ {{{0xbf5603c8, 0xde0e9614} },
-/**/ {{0xbbde6c21, 0x0918d1bf} },},
-/**/ {{{0xbf55c3b2, 0xf691f1a1} },
-/**/ {{0x3bd37d78, 0x377de4c8} },},
-/**/ {{{0xbf55839d, 0x4f40e365} },
-/**/ {{0x3bf52b7d, 0xbbf7c9d1} },},
-/**/ {{{0xbf554387, 0xe81aeadd} },
-/**/ {{0xbbf0be6a, 0x679c3d9a} },},
-/**/ {{{0xbf550372, 0xc11f878a} },
-/**/ {{0xbbdd9e20, 0xb6cdd88e} },},
-/**/ {{{0xbf54c35d, 0xda4e38ec} },
-/**/ {{0xbbe3b1e7, 0x09302da0} },},
-/**/ {{{0xbf548349, 0x33a67e86} },
-/**/ {{0x3be8cba8, 0x085b922d} },},
-/**/ {{{0xbf544334, 0xcd27d7db} },
-/**/ {{0xbba5f2c9, 0xf024ab43} },},
-/**/ {{{0xbf540320, 0xa6d1c471} },
-/**/ {{0xbbeb31f3, 0xf686cf3d} },},
-/**/ {{{0xbf53c30c, 0xc0a3c3cf} },
-/**/ {{0xbbf74ffe, 0xd4ad32f6} },},
-/**/ {{{0xbf5382f9, 0x1a9d557e} },
-/**/ {{0x3bd2e555, 0x4acb368f} },},
-/**/ {{{0xbf5342e5, 0xb4bdf907} },
-/**/ {{0x3be13442, 0x07812806} },},
-/**/ {{{0xbf5302d2, 0x8f052df6} },
-/**/ {{0x3bf5f429, 0x70b1e756} },},
-/**/ {{{0xbf52c2bf, 0xa97273d7} },
-/**/ {{0xbbf20aa3, 0x43a03fff} },},
-/**/ {{{0xbf5282ad, 0x04054a3a} },
-/**/ {{0xbbed4d57, 0x8bebd7ad} },},
-/**/ {{{0xbf52429a, 0x9ebd30ae} },
-/**/ {{0xbbff9529, 0x5a71c5a4} },},
-/**/ {{{0xbf520288, 0x7999a6c6} },
-/**/ {{0x3bfb055a, 0x54100f9e} },},
-/**/ {{{0xbf51c276, 0x949a2c12} },
-/**/ {{0xbbff6978, 0xa2e9f1b4} },},
-/**/ {{{0xbf518264, 0xefbe402a} },
-/**/ {{0x3bf01fb9, 0xbc188323} },},
-/**/ {{{0xbf514253, 0x8b0562a1} },
-/**/ {{0xbbf7c87c, 0x957bf23a} },},
-/**/ {{{0xbf510242, 0x666f1311} },
-/**/ {{0x3bdc2cb9, 0xc8be6880} },},
-/**/ {{{0xbf50c231, 0x81fad111} },
-/**/ {{0xbbf59fc1, 0x07ba000d} },},
-/**/ {{{0xbf508220, 0xdda81c3d} },
-/**/ {{0xbbf06a0a, 0xbf5c8a0b} },},
-/**/ {{{0xbf504210, 0x79767431} },
-/**/ {{0x3bf3a6cf, 0xa9a705bc} },},
-/**/ {{{0xbf500200, 0x55655889} },
-/**/ {{0xbbe9abe6, 0xbf0fa436} },},
-/**/ {{{0xbf4f83e0, 0xe2e891cc} },
-/**/ {{0x3be4aa59, 0x1b81bf62} },},
-/**/ {{{0xbf4f03c1, 0x9b4589ce} },
-/**/ {{0xbbe60518, 0x8a47f50a} },},
-/**/ {{{0xbf4e83a2, 0xd3e0985f} },
-/**/ {{0x3bed32d8, 0x5ef17e96} },},
-/**/ {{{0xbf4e0384, 0x8cb8bcc3} },
-/**/ {{0xbbeb7b30, 0xf09afa4d} },},
-/**/ {{{0xbf4d8366, 0xc5ccf647} },
-/**/ {{0xbbd527fc, 0xf586cec2} },},
-/**/ {{{0xbf4d0349, 0x7f1c4437} },
-/**/ {{0x3bc2bcf0, 0x4a686886} },},
-/**/ {{{0xbf4c832c, 0xb8a5a5e3} },
-/**/ {{0x3bc98f93, 0x721c2ebe} },},
-/**/ {{{0xbf4c0310, 0x72681a9e} },
-/**/ {{0xbbe20f00, 0xb5308d22} },},
-/**/ {{{0xbf4b82f4, 0xac62a1bf} },
-/**/ {{0xbbe1edd0, 0x9737b561} },},
-/**/ {{{0xbf4b02d9, 0x66943a9f} },
-/**/ {{0xbbcc950b, 0x23f894a1} },},
-/**/ {{{0xbf4a82be, 0xa0fbe49a} },
-/**/ {{0xbb81da04, 0x866bc982} },},
-/**/ {{{0xbf4a02a4, 0x5b989f0f} },
-/**/ {{0xbbd9114d, 0x9d76196e} },},
-/**/ {{{0xbf49828a, 0x96696961} },
-/**/ {{0x3bc10d20, 0xd3292fd6} },},
-/**/ {{{0xbf490271, 0x516d42f4} },
-/**/ {{0xbbee53a3, 0x2e9a5dd5} },},
-/**/ {{{0xbf488258, 0x8ca32b32} },
-/**/ {{0xbbc55af5, 0xd18f8004} },},
-/**/ {{{0xbf480240, 0x480a2185} },
-/**/ {{0xbbb32d23, 0xa9b0178a} },},
-/**/ {{{0xbf478228, 0x83a1255c} },
-/**/ {{0x3be84cc3, 0x8152093a} },},
-/**/ {{{0xbf470211, 0x3f673627} },
-/**/ {{0xbbd0055a, 0xf4881c71} },},
-/**/ {{{0xbf4681fa, 0x7b5b535c} },
-/**/ {{0x3bd2b73f, 0xb98336ea} },},
-/**/ {{{0xbf4601e4, 0x377c7c71} },
-/**/ {{0xbbcdcbed, 0x2ed05089} },},
-/**/ {{{0xbf4581ce, 0x73c9b0e1} },
-/**/ {{0xbbdda0c2, 0x61414697} },},
-/**/ {{{0xbf4501b9, 0x3041f02a} },
-/**/ {{0x3bee5d53, 0x22f8b33c} },},
-/**/ {{{0xbf4481a4, 0x6ce439ca} },
-/**/ {{0xbbe5512f, 0x9c25c999} },},
-/**/ {{{0xbf440190, 0x29af8d47} },
-/**/ {{0x3b7f48c2, 0xa4df0dfd} },},
-/**/ {{{0xbf43817c, 0x66a2ea26} },
-/**/ {{0x3bd157c0, 0x517febd8} },},
-/**/ {{{0xbf430169, 0x23bd4ff0} },
-/**/ {{0xbbe2e229, 0x0176d244} },},
-/**/ {{{0xbf428156, 0x60fdbe33} },
-/**/ {{0x3be64664, 0x175812b3} },},
-/**/ {{{0xbf420144, 0x1e63347c} },
-/**/ {{0xbbe39ab4, 0xd9355524} },},
-/**/ {{{0xbf418132, 0x5becb260} },
-/**/ {{0x3be74b27, 0xb6e1edc9} },},
-/**/ {{{0xbf410121, 0x19993772} },
-/**/ {{0xbbaa390b, 0x393ab56a} },},
-/**/ {{{0xbf408110, 0x5767c34c} },
-/**/ {{0x3bd128e6, 0xf8c7783b} },},
-/**/ {{{0xbf400100, 0x15575589} },
-/**/ {{0x3bec8863, 0xf23ef222} },},
-/**/ {{{0xbf3f01e0, 0xa6cddb8d} },
-/**/ {{0x3b8a9419, 0xcdd29c3f} },},
-/**/ {{{0xbf3e01c2, 0x232b174e} },
-/**/ {{0xbbc7cf55, 0xd5f5b191} },},
-/**/ {{{0xbf3d01a4, 0x9fc45d9e} },
-/**/ {{0x3bddc58f, 0xb5038e7e} },},
-/**/ {{{0xbf3c0188, 0x1c97adca} },
-/**/ {{0x3bc0238d, 0xbb933e41} },},
-/**/ {{{0xbf3b016c, 0x99a30728} },
-/**/ {{0xbbabde04, 0xc3c43664} },},
-/**/ {{{0xbf3a0152, 0x16e46913} },
-/**/ {{0x3bafe081, 0x5adc3673} },},
-/**/ {{{0xbf390138, 0x9459d2eb} },
-/**/ {{0xbbd949da, 0xc2a33d26} },},
-/**/ {{{0xbf380120, 0x12014418} },
-/**/ {{0xbbd3acbc, 0xf76e0326} },},
-/**/ {{{0xbf370108, 0x8fd8bc07} },
-/**/ {{0x3bdbde09, 0x4cd6ce34} },},
-/**/ {{{0xbf3600f2, 0x0dde3a29} },
-/**/ {{0xbbb0bc28, 0x05442a35} },},
-/**/ {{{0xbf3500dc, 0x8c0fbdf9} },
-/**/ {{0x3bd21c68, 0x0908cbf7} },},
-/**/ {{{0xbf3400c8, 0x0a6b46f4} },
-/**/ {{0xbbdbd35e, 0x0f107564} },},
-/**/ {{{0xbf3300b4, 0x88eed4a1} },
-/**/ {{0xbbc22067, 0x49a3dcb8} },},
-/**/ {{{0xbf3200a2, 0x0798668a} },
-/**/ {{0x3bcdb7f0, 0xe7c5d0e5} },},
-/**/ {{{0xbf310090, 0x8665fc3f} },
-/**/ {{0xbbd00add, 0xc7f9d69c} },},
-/**/ {{{0xbf300080, 0x05559559} },
-/**/ {{0x3bddd332, 0xa0e20e2f} },},
-/**/ {{{0xbf2e00e1, 0x08ca62e5} },
-/**/ {{0xbbb15ff9, 0x3a04bb77} },},
-/**/ {{{0xbf2c00c4, 0x0725a061} },
-/**/ {{0x3bc88ab0, 0xcc052f3e} },},
-/**/ {{{0xbf2a00a9, 0x05b8e275} },
-/**/ {{0xbbcbba1a, 0xf5f3cbcf} },},
-/**/ {{{0xbf280090, 0x04802882} },
-/**/ {{0x3bcec900, 0xa5bd7bd0} },},
-/**/ {{{0xbf260079, 0x037771ef} },
-/**/ {{0x3bb77ea0, 0x9b7b54fa} },},
-/**/ {{{0xbf240064, 0x029abe33} },
-/**/ {{0xbbc1bbf0, 0x3ae68d18} },},
-/**/ {{{0xbf220051, 0x01e60cd1} },
-/**/ {{0x3bb1dcd9, 0x2b45cfcd} },},
-/**/ {{{0xbf200040, 0x01555d56} },
-/**/ {{0x3bcddd88, 0x863f53f6} },},
-/**/ {{{0xbf1c0062, 0x01c95eb7} },
-/**/ {{0x3bbd88f7, 0xaa4dfd9a} },},
-/**/ {{{0xbf180048, 0x01200510} },
-/**/ {{0xbb984d46, 0x4f3db50b} },},
-/**/ {{{0xbf140032, 0x00a6ad1c} },
-/**/ {{0x3bb2e44b, 0x28ff1135} },},
-/**/ {{{0xbf100020, 0x00555655} },
-/**/ {{0xbbb62224, 0xccd5f17f} },},
-/**/ {{{0xbf080024, 0x004800a2} },
-/**/ {{0xbb484d09, 0x8d690542} },},
-/**/ {{{0xbf000010, 0x00155575} },
-/**/ {{0xbba56222, 0x37779c0a} },},
-/**/ {{{0xbef00008, 0x00055559} },
-/**/ {{0xbb955622, 0x22cccd5f} },},
-/**/ {{{0x00000000, 0x00000000} },
-/**/ {{0x00000000, 0x00000000} },},
-/**/ {{{0x3eeffff0, 0x000aaaa3} },
-/**/ {{0xbb8553bb, 0xbd110fec} },},
-/**/ {{{0x3effffe0, 0x002aaa6b} },
-/**/ {{0xbb953bbb, 0xe6661d42} },},
-/**/ {{{0x3f07ffdc, 0x0047ff5e} },
-/**/ {{0x3b484c90, 0x0d69020e} },},
-/**/ {{{0x3f0fffc0, 0x00aaa8ab} },
-/**/ {{0xbba3bbc1, 0x10fec82c} },},
-/**/ {{{0x3f13ffce, 0x00a6a83a} },
-/**/ {{0xbbb2e45f, 0x81546808} },},
-/**/ {{{0x3f17ffb8, 0x011ffaf0} },
-/**/ {{0x3b984c53, 0x4f3d9b6a} },},
-/**/ {{{0x3f1bff9e, 0x01c94bf5} },
-/**/ {{0xbbbd8990, 0xdaa368ee} },},
-/**/ {{{0x3f1fff80, 0x02aa9aab} },
-/**/ {{0x3b910e66, 0x78af0afc} },},
-/**/ {{{0x3f21ffaf, 0x01e5f330} },
-/**/ {{0xbbb1df8d, 0x26467402} },},
-/**/ {{{0x3f23ff9c, 0x029a9723} },
-/**/ {{0x3bc1b965, 0x303b23b1} },},
-/**/ {{{0x3f25ff87, 0x037738be} },
-/**/ {{0xbbb787a3, 0x53d3dc06} },},
-/**/ {{{0x3f27ff70, 0x047fd782} },
-/**/ {{0xbbced098, 0xa5c0aff0} },},
-/**/ {{{0x3f29ff57, 0x05b872e4} },
-/**/ {{0x3bcbadd4, 0x81c30d42} },},
-/**/ {{{0x3f2bff3c, 0x07250a51} },
-/**/ {{0xbbc89dd6, 0xd6bad8c1} },},
-/**/ {{{0x3f2dff1f, 0x08c99d24} },
-/**/ {{0x3bb12609, 0xaede8ad0} },},
-/**/ {{{0x3f2fff00, 0x0aaa2ab1} },
-/**/ {{0x3ba0bbc0, 0x4dc4e3dc} },},
-/**/ {{{0x3f30ff6f, 0x8665591f} },
-/**/ {{0xbbd013d3, 0x80357b54} },},
-/**/ {{{0x3f31ff5e, 0x07979982} },
-/**/ {{0xbbce0e70, 0x4817ebcd} },},
-/**/ {{{0x3f32ff4b, 0x88edd619} },
-/**/ {{0xbbd72b9e, 0xc582abc3} },},
-/**/ {{{0x3f33ff38, 0x0a6a0e74} },
-/**/ {{0x3bdb81fc, 0xb95bc1fe} },},
-/**/ {{{0x3f34ff23, 0x8c0e4220} },
-/**/ {{0x3bcaed12, 0x9b549aae} },},
-/**/ {{{0x3f35ff0e, 0x0ddc70a1} },
-/**/ {{0x3bacf6f3, 0xd97a3c05} },},
-/**/ {{{0x3f36fef7, 0x8fd69976} },
-/**/ {{0x3bab2dcf, 0x6f810a3c} },},
-/**/ {{{0x3f37fee0, 0x11febc18} },
-/**/ {{0x3bd2b9bc, 0xf5d3f323} },},
-/**/ {{{0x3f38fec7, 0x9456d7fb} },
-/**/ {{0xbbbfb258, 0x6eaa1d6a} },},
-/**/ {{{0x3f39feae, 0x16e0ec8b} },
-/**/ {{0xbbb6137a, 0xceeb34b1} },},
-/**/ {{{0x3f3afe93, 0x999ef930} },
-/**/ {{0xbbde70e0, 0xdc639b08} },},
-/**/ {{{0x3f3bfe78, 0x1c92fd4a} },
-/**/ {{0xbbc4ed10, 0x713cc126} },},
-/**/ {{{0x3f3cfe5b, 0x9fbef835} },
-/**/ {{0xbb873d63, 0xcc0e81bd} },},
-/**/ {{{0x3f3dfe3e, 0x2324e946} },
-/**/ {{0x3bc09164, 0x62dd5deb} },},
-/**/ {{{0x3f3efe1f, 0xa6c6cfcc} },
-/**/ {{0x3bdac2da, 0x3512d15c} },},
-/**/ {{{0x3f3ffe00, 0x2aa6ab11} },
-/**/ {{0x3b999e2b, 0x62cc632d} },},
-/**/ {{{0x3f407eef, 0xd7633d2c} },
-/**/ {{0xbbebc98b, 0x63ff6024} },},
-/**/ {{{0x3f40fedf, 0x19941e6e} },
-/**/ {{0xbbb194c2, 0xe0aa6338} },},
-/**/ {{{0x3f417ecd, 0xdbe6f8eb} },
-/**/ {{0x3be4241b, 0x57b0f571} },},
-/**/ {{{0x3f41febc, 0x1e5ccc3c} },
-/**/ {{0x3bdc657d, 0x895d3592} },},
-/**/ {{{0x3f427ea9, 0xe0f697f6} },
-/**/ {{0x3be35a5d, 0x1c0ec17c} },},
-/**/ {{{0x3f42fe97, 0x23b55bac} },
-/**/ {{0x3bd6cfb7, 0x3e538464} },},
-/**/ {{{0x3f437e83, 0xe69a16ed} },
-/**/ {{0x3bee96f7, 0x7cef2478} },},
-/**/ {{{0x3f43fe70, 0x29a5c947} },
-/**/ {{0xbbd4d578, 0xbf46e36a} },},
-/**/ {{{0x3f447e5b, 0xecd97242} },
-/**/ {{0xbbc9eb66, 0x3ff7dd44} },},
-/**/ {{{0x3f44fe47, 0x30361165} },
-/**/ {{0x3be400d7, 0x7e93f2fd} },},
-/**/ {{{0x3f457e31, 0xf3bca635} },
-/**/ {{0xbbe0e2a2, 0xd375017f} },},
-/**/ {{{0x3f45fe1c, 0x376e3031} },
-/**/ {{0xbbd524eb, 0x8a5ae7f6} },},
-/**/ {{{0x3f467e05, 0xfb4baed7} },
-/**/ {{0x3be204fb, 0x4e85c4e9} },},
-/**/ {{{0x3f46fdef, 0x3f5621a3} },
-/**/ {{0xbbdf09d7, 0x34886d52} },},
-/**/ {{{0x3f477dd8, 0x038e880b} },
-/**/ {{0xbbb8900e, 0x14e596a3} },},
-/**/ {{{0x3f47fdc0, 0x47f5e185} },
-/**/ {{0xbbebfa5c, 0x57d202d3} },},
-/**/ {{{0x3f487da8, 0x0c8d2d81} },
-/**/ {{0x3be2f6ae, 0xd68c0614} },},
-/**/ {{{0x3f48fd8f, 0x51556b70} },
-/**/ {{0xbbd0f4f2, 0xe08fd201} },},
-/**/ {{{0x3f497d76, 0x164f9abc} },
-/**/ {{0x3b5296b7, 0xa871af60} },},
-/**/ {{{0x3f49fd5c, 0x5b7cbace} },
-/**/ {{0x3beb6ed4, 0x9f17d42d} },},
-/**/ {{{0x3f4a7d42, 0x20ddcb0d} },
-/**/ {{0xbbcb1149, 0x67c30397} },},
-/**/ {{{0x3f4afd27, 0x6673cada} },
-/**/ {{0x3bd32225, 0x45da594f} },},
-/**/ {{{0x3f4b7d0c, 0x2c3fb996} },
-/**/ {{0xbbb68893, 0x208d4630} },},
-/**/ {{{0x3f4bfcf0, 0x7242969d} },
-/**/ {{0x3bc5db4d, 0x2b3efe1c} },},
-/**/ {{{0x3f4c7cd4, 0x387d6149} },
-/**/ {{0x3be46eff, 0xed57d98a} },},
-/**/ {{{0x3f4cfcb7, 0x7ef118f1} },
-/**/ {{0x3becc554, 0x06f300fb} },},
-/**/ {{{0x3f4d7c9a, 0x459ebce9} },
-/**/ {{0x3be1d251, 0x13638eb6} },},
-/**/ {{{0x3f4dfc7c, 0x8c874c82} },
-/**/ {{0xbbe863e9, 0xd57a176f} },},
-/**/ {{{0x3f4e7c5e, 0x53abc708} },
-/**/ {{0x3be2d95c, 0x9528e50d} },},
-/**/ {{{0x3f4efc3f, 0x9b0d2bc8} },
-/**/ {{0x3bd1e8e8, 0xa5f5b8b7} },},
-/**/ {{{0x3f4f7c20, 0x62ac7a09} },
-/**/ {{0x3b5c8123, 0x17802a46} },},
-/**/ {{{0x3f4ffc00, 0xaa8ab110} },
-/**/ {{0xbbe0fecb, 0xeb9b6cdb} },},
-/**/ {{{0x3f503df0, 0x3954680f} },
-/**/ {{0x3bdac89b, 0x1c693678} },},
-/**/ {{{0x3f507ddf, 0xdd83eb3a} },
-/**/ {{0xbbf638f6, 0x0a75ad5f} },},
-/**/ {{{0x3f50bdcf, 0x41d461a5} },
-/**/ {{0x3bfd4bc9, 0x45f05b10} },},
-/**/ {{{0x3f50fdbe, 0x66464aef} },
-/**/ {{0xbbbd0554, 0x6abbf59c} },},
-/**/ {{{0x3f513dad, 0x4ada26b1} },
-/**/ {{0x3be38c65, 0x6036fe6f} },},
-/**/ {{{0x3f517d9b, 0xef907485} },
-/**/ {{0x3bfdc8a1, 0xf158bbc3} },},
-/**/ {{{0x3f51bd8a, 0x5469b404} },
-/**/ {{0xbbdea231, 0x55632e3f} },},
-/**/ {{{0x3f51fd78, 0x796664c3} },
-/**/ {{0xbbe00849, 0x2edb73c2} },},
-/**/ {{{0x3f523d66, 0x5e870657} },
-/**/ {{0x3bfba943, 0x0789343e} },},
-/**/ {{{0x3f527d54, 0x03cc1855} },
-/**/ {{0x3bc5f644, 0xeafafc52} },},
-/**/ {{{0x3f52bd41, 0x69361a4e} },
-/**/ {{0xbbf2f743, 0xa4a6e79f} },},
-/**/ {{{0x3f52fd2e, 0x8ec58bd2} },
-/**/ {{0xbbd4f786, 0x5ceb1abf} },},
-/**/ {{{0x3f533d1b, 0x747aec71} },
-/**/ {{0xbbf369e3, 0x49dc497d} },},
-/**/ {{{0x3f537d08, 0x1a56bbb8} },
-/**/ {{0xbbfc5e6f, 0x3726b14a} },},
-/**/ {{{0x3f53bcf4, 0x80597933} },
-/**/ {{0xbbfe8b82, 0x808f75a7} },},
-/**/ {{{0x3f53fce0, 0xa683a46c} },
-/**/ {{0x3be02719, 0x9cd06ae6} },},
-/**/ {{{0x3f543ccc, 0x8cd5bced} },
-/**/ {{0x3bf9f98d, 0x758f80f8} },},
-/**/ {{{0x3f547cb8, 0x3350423e} },
-/**/ {{0xbbd79c3d, 0x48401f45} },},
-/**/ {{{0x3f54bca3, 0x99f3b3e4} },
-/**/ {{0xbbf422b8, 0x2fba8948} },},
-/**/ {{{0x3f54fc8e, 0xc0c09163} },
-/**/ {{0x3bf32cc1, 0xf4044be8} },},
-/**/ {{{0x3f553c79, 0xa7b75a40} },
-/**/ {{0xbbe72cac, 0xf2249008} },},
-/**/ {{{0x3f557c64, 0x4ed88dfb} },
-/**/ {{0xbbe7183c, 0x459a204f} },},
-/**/ {{{0x3f55bc4e, 0xb624ac14} },
-/**/ {{0x3bf8aa64, 0xba26d3d7} },},
-/**/ {{{0x3f55fc38, 0xdd9c340b} },
-/**/ {{0x3bdbb2ff, 0x45fa193c} },},
-/**/ {{{0x3f563c22, 0xc53fa55c} },
-/**/ {{0x3bd67249, 0x0484397b} },},
-/**/ {{{0x3f567c0c, 0x6d0f7f83} },
-/**/ {{0xbbd183d7, 0xf1e73188} },},
-/**/ {{{0x3f56bbf5, 0xd50c41fa} },
-/**/ {{0xbbef433d, 0x4ab68187} },},
-/**/ {{{0x3f56fbde, 0xfd366c39} },
-/**/ {{0x3be796b8, 0x66e09e58} },},
-/**/ {{{0x3f573bc7, 0xe58e7db8} },
-/**/ {{0x3bf65ec5, 0x81e6e7e6} },},
-/**/ {{{0x3f577bb0, 0x8e14f5ed} },
-/**/ {{0xbbdb944d, 0xa9463a9c} },},
-/**/ {{{0x3f57bb98, 0xf6ca544b} },
-/**/ {{0xbbc396ec, 0xc5eda344} },},
-/**/ {{{0x3f57fb81, 0x1faf1845} },
-/**/ {{0x3beb9e6d, 0xbb624f97} },},
-/**/ {{{0x3f583b69, 0x08c3c14d} },
-/**/ {{0xbbe6ee13, 0xe6295bf2} },},
-/**/ {{{0x3f587b50, 0xb208ced1} },
-/**/ {{0x3bfcf1a5, 0x6ca19875} },},
-/**/ {{{0x3f58bb38, 0x1b7ec041} },
-/**/ {{0x3bf2d181, 0x07b4fc7e} },},
-/**/ {{{0x3f58fb1f, 0x45261509} },
-/**/ {{0x3bc419c5, 0x21bad336} },},
-/**/ {{{0x3f593b06, 0x2eff4c94} },
-/**/ {{0xbbdc2a4c, 0x700b305b} },},
-/**/ {{{0x3f597aec, 0xd90ae64c} },
-/**/ {{0xbbfc53d3, 0xa23f359c} },},
-/**/ {{{0x3f59bad3, 0x43496198} },
-/**/ {{0x3bf0c270, 0xaed6b50f} },},
-/**/ {{{0x3f59fab9, 0x6dbb3de1} },
-/**/ {{0xbbf11464, 0x7a8be031} },},
-/**/ {{{0x3f5a3a9f, 0x5860fa8a} },
-/**/ {{0x3beae9e7, 0x470dbe32} },},
-/**/ {{{0x3f5a7a85, 0x033b16f8} },
-/**/ {{0x3bfc4721, 0xda1f8579} },},
-/**/ {{{0x3f5aba6a, 0x6e4a128e} },
-/**/ {{0xbbf41852, 0x029258ce} },},
-/**/ {{{0x3f5afa4f, 0x998e6cab} },
-/**/ {{0xbbf28584, 0x2eb18782} },},
-/**/ {{{0x3f5b3a34, 0x8508a4af} },
-/**/ {{0xbbea7970, 0x23241a2c} },},
-/**/ {{{0x3f5b7a19, 0x30b939f8} },
-/**/ {{0xbbf1d8db, 0x600551b6} },},
-/**/ {{{0x3f5bb9fd, 0x9ca0abe2} },
-/**/ {{0xbbeaa412, 0x8c26cc71} },},
-/**/ {{{0x3f5bf9e1, 0xc8bf79c8} },
-/**/ {{0xbbe7f81b, 0x30427cfc} },},
-/**/ {{{0x3f5c39c5, 0xb5162303} },
-/**/ {{0x3bd9ec5f, 0xd1f134e1} },},
-/**/ {{{0x3f5c79a9, 0x61a526eb} },
-/**/ {{0x3bff0cb0, 0x8980e47d} },},
-/**/ {{{0x3f5cb98c, 0xce6d04d7} },
-/**/ {{0x3bf35aca, 0xe84ca4e2} },},
-/**/ {{{0x3f5cf96f, 0xfb6e3c1b} },
-/**/ {{0x3bf9b1b8, 0x1b0bd69f} },},
-/**/ {{{0x3f5d3952, 0xe8a94c0b} },
-/**/ {{0x3be21310, 0x3ce51832} },},
-/**/ {{{0x3f5d7935, 0x961eb3f8} },
-/**/ {{0x3bf90786, 0x840c58ce} },},
-/**/ {{{0x3f5db918, 0x03cef334} },
-/**/ {{0xbbfe0048, 0xf2dfb3f4} },},
-/**/ {{{0x3f5df8fa, 0x31ba890b} },
-/**/ {{0x3bfcf652, 0x3e295bec} },},
-/**/ {{{0x3f5e38dc, 0x1fe1f4ce} },
-/**/ {{0xbbfc5ebe, 0x151c9300} },},
-/**/ {{{0x3f5e78bd, 0xce45b5c6} },
-/**/ {{0xbbef2cc4, 0x8a25b9c7} },},
-/**/ {{{0x3f5eb89f, 0x3ce64b3e} },
-/**/ {{0x3bfe6d27, 0xa6fea7bd} },},
-/**/ {{{0x3f5ef880, 0x6bc43481} },
-/**/ {{0xbbf68037, 0x914a6dab} },},
-/**/ {{{0x3f5f3861, 0x5adff0d4} },
-/**/ {{0xbbf1d2f3, 0xf909e0e6} },},
-/**/ {{{0x3f5f7842, 0x0a39ff7e} },
-/**/ {{0xbbf64661, 0xff1e1f71} },},
-/**/ {{{0x3f5fb822, 0x79d2dfc3} },
-/**/ {{0xbbd76ce8, 0x5a6f9e9a} },},
-/**/ {{{0x3f5ff802, 0xa9ab10e6} },
-/**/ {{0x3bfe29e3, 0xa153e3b2} },},
-/**/ {{{0x3f601bf1, 0x4ce18915} },
-/**/ {{0xbbe57c28, 0xa3a73044} },},
-/**/ {{{0x3f603be1, 0x250db166} },
-/**/ {{0x3c0fd271, 0xc1ad9590} },},
-/**/ {{{0x3f605bd0, 0xdd5a4107} },
-/**/ {{0x3bfe4b5d, 0xc424c676} },},
-/**/ {{{0x3f607bc0, 0x75c77796} },
-/**/ {{0xbc068804, 0xc0eff1ba} },},
-/**/ {{{0x3f609baf, 0xee5594b0} },
-/**/ {{0xbc0ff798, 0x51dbded5} },},
-/**/ {{{0x3f60bb9f, 0x4704d7f2} },
-/**/ {{0xbbf70ef4, 0x2d5aba70} },},
-/**/ {{{0x3f60db8e, 0x7fd580f9} },
-/**/ {{0xbbeccb65, 0x7ae804b5} },},
-/**/ {{{0x3f60fb7d, 0x98c7cf60} },
-/**/ {{0x3bfede2f, 0x1775134d} },},
-/**/ {{{0x3f611b6c, 0x91dc02c3} },
-/**/ {{0xbc04d41e, 0x91ca4a67} },},
-/**/ {{{0x3f613b5b, 0x6b125aba} },
-/**/ {{0x3bfe6d0c, 0x4a12201d} },},
-/**/ {{{0x3f615b4a, 0x246b16e0} },
-/**/ {{0x3bfe507d, 0x4d4238d3} },},
-/**/ {{{0x3f617b38, 0xbde676cd} },
-/**/ {{0x3bfe0272, 0x0640462a} },},
-/**/ {{{0x3f619b27, 0x3784ba19} },
-/**/ {{0x3bd94ab3, 0x02285659} },},
-/**/ {{{0x3f61bb15, 0x9146205b} },
-/**/ {{0xbbff1e2e, 0x1cc35b7b} },},
-/**/ {{{0x3f61db03, 0xcb2ae929} },
-/**/ {{0xbc03ee8e, 0x12f6bf8d} },},
-/**/ {{{0x3f61faf1, 0xe5335418} },
-/**/ {{0x3c0bae5f, 0x7b7d619b} },},
-/**/ {{{0x3f621adf, 0xdf5fa0bf} },
-/**/ {{0xbbf5546a, 0xb3b731b0} },},
-/**/ {{{0x3f623acd, 0xb9b00eb0} },
-/**/ {{0xbbafb2b0, 0x105fd253} },},
-/**/ {{{0x3f625abb, 0x7424dd7f} },
-/**/ {{0x3c011647, 0xca53444b} },},
-/**/ {{{0x3f627aa9, 0x0ebe4cbf} },
-/**/ {{0x3c01678f, 0x592f3be8} },},
-/**/ {{{0x3f629a96, 0x897c9c02} },
-/**/ {{0xbbef2b12, 0x4347451d} },},
-/**/ {{{0x3f62ba83, 0xe4600ad8} },
-/**/ {{0x3bfb5bb7, 0xb2a477bc} },},
-/**/ {{{0x3f62da71, 0x1f68d8d3} },
-/**/ {{0xbc0590e1, 0x7a5822e4} },},
-/**/ {{{0x3f62fa5e, 0x3a974581} },
-/**/ {{0xbbf0f2e5, 0x53123101} },},
-/**/ {{{0x3f631a4b, 0x35eb9072} },
-/**/ {{0xbc018db4, 0x0e3f5fde} },},
-/**/ {{{0x3f633a38, 0x1165f933} },
-/**/ {{0x3c0921d5, 0x8d0afb38} },},
-/**/ {{{0x3f635a24, 0xcd06bf53} },
-/**/ {{0x3c01f6ba, 0xb5791b80} },},
-/**/ {{{0x3f637a11, 0x68ce225e} },
-/**/ {{0x3bde2af8, 0xa1894236} },},
-/**/ {{{0x3f6399fd, 0xe4bc61e0} },
-/**/ {{0xbc062a48, 0xd0f06ff3} },},
-/**/ {{{0x3f63b9ea, 0x40d1bd63} },
-/**/ {{0x3bffc80c, 0x4b4f9c11} },},
-/**/ {{{0x3f63d9d6, 0x7d0e7473} },
-/**/ {{0x3c02219b, 0x6a92c891} },},
-/**/ {{{0x3f63f9c2, 0x9972c699} },
-/**/ {{0x3c0d3590, 0x790ade9e} },},
-/**/ {{{0x3f6419ae, 0x95fef35f} },
-/**/ {{0xbc01c279, 0x792a458c} },},
-/**/ {{{0x3f64399a, 0x72b33a4b} },
-/**/ {{0x3c02ce64, 0x327bffae} },},
-/**/ {{{0x3f645986, 0x2f8fdae7} },
-/**/ {{0xbc070aec, 0xd231155c} },},
-/**/ {{{0x3f647971, 0xcc9514b7} },
-/**/ {{0x3c0f373d, 0xe4bbf776} },},
-/**/ {{{0x3f64995d, 0x49c32744} },
-/**/ {{0xbbf6d7e5, 0xbf22b2a7} },},
-/**/ {{{0x3f64b948, 0xa71a5211} },
-/**/ {{0xbbedec69, 0x64fe2936} },},
-/**/ {{{0x3f64d933, 0xe49ad4a3} },
-/**/ {{0x3bf5fc4b, 0xabee4257} },},
-/**/ {{{0x3f64f91f, 0x0244ee7e} },
-/**/ {{0x3c0c6fe3, 0x3cd1474f} },},
-/**/ {{{0x3f65190a, 0x0018df26} },
-/**/ {{0xbc023957, 0xd11e7fa5} },},
-/**/ {{{0x3f6538f4, 0xde16e61b} },
-/**/ {{0x3c006c31, 0x55380346} },},
-/**/ {{{0x3f6558df, 0x9c3f42e1} },
-/**/ {{0xbc09b7d4, 0xc4a5134c} },},
-/**/ {{{0x3f6578ca, 0x3a9234f7} },
-/**/ {{0xbc0e3f10, 0x2772c19c} },},
-/**/ {{{0x3f6598b4, 0xb90ffbdd} },
-/**/ {{0x3be6f110, 0x5592b468} },},
-/**/ {{{0x3f65b89f, 0x17b8d714} },
-/**/ {{0xbc0a5fea, 0xb251ace2} },},
-/**/ {{{0x3f65d889, 0x568d0619} },
-/**/ {{0xbc0aacc9, 0x315da285} },},
-/**/ {{{0x3f65f873, 0x758cc86a} },
-/**/ {{0xbbeb0782, 0xba64d81a} },},
-/**/ {{{0x3f66185d, 0x74b85d85} },
-/**/ {{0xbc09b459, 0x8e1eb3fa} },},
-/**/ {{{0x3f663847, 0x541004e5} },
-/**/ {{0x3bce9c22, 0x1d86e863} },},
-/**/ {{{0x3f665831, 0x1393fe07} },
-/**/ {{0xbbfbeb77, 0xcf37ee90} },},
-/**/ {{{0x3f66781a, 0xb3448865} },
-/**/ {{0xbc02dc68, 0xc252e3c9} },},
-/**/ {{{0x3f669804, 0x3321e379} },
-/**/ {{0xbbe73a0b, 0xb40b3741} },},
- };
-
-#else
-#ifdef LITTLE_ENDI
- static const number
- Iu[182] = { /* 1/ui */
-/**/ {{0xd1537290, 0x3ff6a13c} },
-/**/ {{0x16816817, 0x3ff68168} },
-/**/ {{0x6a5122f9, 0x3ff661ec} },
-/**/ {{0x590b2164, 0x3ff642c8} },
-/**/ {{0x77016240, 0x3ff623fa} },
-/**/ {{0x60581606, 0x3ff60581} },
-/**/ {{0xb8d015e7, 0x3ff5e75b} },
-/**/ {{0x2b931057, 0x3ff5c988} },
-/**/ {{0x6b015ac0, 0x3ff5ac05} },
-/**/ {{0x308158ed, 0x3ff58ed2} },
-/**/ {{0x3c506b3a, 0x3ff571ed} },
-/**/ {{0x55555555, 0x3ff55555} },
-/**/ {{0x48f40feb, 0x3ff53909} },
-/**/ {{0xeae2f815, 0x3ff51d07} },
-/**/ {{0x15015015, 0x3ff50150} },
-/**/ {{0xa72f0539, 0x3ff4e5e0} },
-/**/ {{0x8725af6e, 0x3ff4cab8} },
-/**/ {{0xa052bf5b, 0x3ff4afd6} },
-/**/ {{0xe3b2d067, 0x3ff49539} },
-/**/ {{0x47ae147b, 0x3ff47ae1} },
-/**/ {{0xc7f5cf9a, 0x3ff460cb} },
-/**/ {{0x6562d9fb, 0x3ff446f8} },
-/**/ {{0x25d51f87, 0x3ff42d66} },
-/**/ {{0x14141414, 0x3ff41414} },
-/**/ {{0x3fb013fb, 0x3ff3fb01} },
-/**/ {{0xbce4a902, 0x3ff3e22c} },
-/**/ {{0xa47babe7, 0x3ff3c995} },
-/**/ {{0x13b13b14, 0x3ff3b13b} },
-/**/ {{0x2c187f63, 0x3ff3991c} },
-/**/ {{0x13813814, 0x3ff38138} },
-/**/ {{0xf3de0748, 0x3ff3698d} },
-/**/ {{0xfb2b78c1, 0x3ff3521c} },
-/**/ {{0x5b57bcb2, 0x3ff33ae4} },
-/**/ {{0x4a2b10bf, 0x3ff323e3} },
-/**/ {{0x0130d190, 0x3ff30d19} },
-/**/ {{0xbda12f68, 0x3ff2f684} },
-/**/ {{0xc04b8097, 0x3ff2e025} },
-/**/ {{0x4d812ca0, 0x3ff2c9fb} },
-/**/ {{0xad012b40, 0x3ff2b404} },
-/**/ {{0x29e4129e, 0x3ff29e41} },
-/**/ {{0x1288b013, 0x3ff288b0} },
-/**/ {{0xb8812735, 0x3ff27350} },
-/**/ {{0x708092f1, 0x3ff25e22} },
-/**/ {{0x92492492, 0x3ff24924} },
-/**/ {{0x789abcdf, 0x3ff23456} },
-/**/ {{0x8121fb78, 0x3ff21fb7} },
-/**/ {{0x0c67c0d9, 0x3ff20b47} },
-/**/ {{0x7dc11f70, 0x3ff1f704} },
-/**/ {{0x3b3fb874, 0x3ff1e2ef} },
-/**/ {{0xada2811d, 0x3ff1cf06} },
-/**/ {{0x4046ed29, 0x3ff1bb4a} },
-/**/ {{0x611a7b96, 0x3ff1a7b9} },
-/**/ {{0x808ca29c, 0x3ff19453} },
-/**/ {{0x11811812, 0x3ff18118} },
-/**/ {{0x89427379, 0x3ff16e06} },
-/**/ {{0x5f75270d, 0x3ff15b1e} },
-/**/ {{0x0e0acd3b, 0x3ff1485f} },
-/**/ {{0x1135c811, 0x3ff135c8} },
-/**/ {{0xe75d3033, 0x3ff12358} },
-/**/ {{0x11111111, 0x3ff11111} },
-/**/ {{0x10fef011, 0x3ff0fef0} },
-/**/ {{0x6be69c90, 0x3ff0ecf5} },
-/**/ {{0xa88f4696, 0x3ff0db20} },
-/**/ {{0x4fbcda3b, 0x3ff0c971} },
-/**/ {{0xec259dc8, 0x3ff0b7e6} },
-/**/ {{0x0a6810a7, 0x3ff0a681} },
-/**/ {{0x39010954, 0x3ff0953f} },
-/**/ {{0x08421084, 0x3ff08421} },
-/**/ {{0x0a47f7c6, 0x3ff07326} },
-/**/ {{0xd2f1a9fc, 0x3ff0624d} },
-/**/ {{0xf7d73404, 0x3ff05197} },
-/**/ {{0x10410410, 0x3ff04104} },
-/**/ {{0xb51f5e1a, 0x3ff03091} },
-/**/ {{0x81020408, 0x3ff02040} },
-/**/ {{0x10101010, 0x3ff01010} },
-/**/ {{0x00000000, 0x3ff00000} },
-/**/ {{0xe01fe020, 0x3fefe01f} },
-/**/ {{0x01fc07f0, 0x3fefc07f} },
-/**/ {{0xaa01fa12, 0x3fefa11c} },
-/**/ {{0x1f81f820, 0x3fef81f8} },
-/**/ {{0xaca0dbb5, 0x3fef6310} },
-/**/ {{0x9e4a4271, 0x3fef4465} },
-/**/ {{0x44230ab5, 0x3fef25f6} },
-/**/ {{0xf07c1f08, 0x3fef07c1} },
-/**/ {{0xf8458e02, 0x3feee9c7} },
-/**/ {{0xb301ecc0, 0x3feecc07} },
-/**/ {{0x7aba01eb, 0x3feeae80} },
-/**/ {{0xabf0b767, 0x3fee9131} },
-/**/ {{0xa59750e4, 0x3fee741a} },
-/**/ {{0xc901e574, 0x3fee573a} },
-/**/ {{0x79dc1a73, 0x3fee3a91} },
-/**/ {{0x1e1e1e1e, 0x3fee1e1e} },
-/**/ {{0x1e01e01e, 0x3fee01e0} },
-/**/ {{0xe3f8868a, 0x3fede5d6} },
-/**/ {{0xdca01dca, 0x3fedca01} },
-/**/ {{0x76b981db, 0x3fedae60} },
-/**/ {{0x231e7f8a, 0x3fed92f2} },
-/**/ {{0x54b82c34, 0x3fed77b6} },
-/**/ {{0x807572b2, 0x3fed5cac} },
-/**/ {{0x1d41d41d, 0x3fed41d4} },
-/**/ {{0xa3fc5b1a, 0x3fed272c} },
-/**/ {{0x8f6ec074, 0x3fed0cb5} },
-/**/ {{0x5c44bfc6, 0x3fecf26e} },
-/**/ {{0x89039b0b, 0x3fecd856} },
-/**/ {{0x9601cbe7, 0x3fecbe6d} },
-/**/ {{0x055ee191, 0x3feca4b3} },
-/**/ {{0x5afb8a42, 0x3fec8b26} },
-/**/ {{0x1c71c71c, 0x3fec71c7} },
-/**/ {{0xd10d4986, 0x3fec5894} },
-/**/ {{0x01c3f8f0, 0x3fec3f8f} },
-/**/ {{0x392ea01c, 0x3fec26b5} },
-/**/ {{0x0381c0e0, 0x3fec0e07} },
-/**/ {{0xee868d8b, 0x3febf583} },
-/**/ {{0x899406f7, 0x3febdd2b} },
-/**/ {{0x65883e7b, 0x3febc4fd} },
-/**/ {{0x14c1bad0, 0x3febacf9} },
-/**/ {{0x2b18ff23, 0x3feb951e} },
-/**/ {{0x3dda338b, 0x3feb7d6c} },
-/**/ {{0xe3beee05, 0x3feb65e2} },
-/**/ {{0xb4e81b4f, 0x3feb4e81} },
-/**/ {{0x4ad806ce, 0x3feb3748} },
-/**/ {{0x406c80d9, 0x3feb2036} },
-/**/ {{0x31d922a4, 0x3feb094b} },
-/**/ {{0xbca1af28, 0x3feaf286} },
-/**/ {{0x7f94905e, 0x3feadbe8} },
-/**/ {{0x1ac5701b, 0x3feac570} },
-/**/ {{0x2f87ebfd, 0x3feaaf1d} },
-/**/ {{0x606a63be, 0x3fea98ef} },
-/**/ {{0x5130e159, 0x3fea82e6} },
-/**/ {{0xa6d01a6d, 0x3fea6d01} },
-/**/ {{0x07688a4a, 0x3fea5741} },
-/**/ {{0x1a41a41a, 0x3fea41a4} },
-/**/ {{0x87c51ca0, 0x3fea2c2a} },
-/**/ {{0xf97a4b02, 0x3fea16d3} },
-/**/ {{0x1a01a01a, 0x3fea01a0} },
-/**/ {{0x951033d9, 0x3fe9ec8e} },
-/**/ {{0x176b682d, 0x3fe9d79f} },
-/**/ {{0x4ee4a102, 0x3fe9c2d1} },
-/**/ {{0xea5510da, 0x3fe9ae24} },
-/**/ {{0x9999999a, 0x3fe99999} },
-/**/ {{0x0d8ec0ff, 0x3fe9852f} },
-/**/ {{0xf80cb872, 0x3fe970e4} },
-/**/ {{0x0be377ae, 0x3fe95cbb} },
-/**/ {{0xfcd6e9e0, 0x3fe948b0} },
-/**/ {{0x7f9b2ce6, 0x3fe934c6} },
-/**/ {{0x49d0e229, 0x3fe920fb} },
-/**/ {{0x120190d5, 0x3fe90d4f} },
-/**/ {{0x8f9c18fa, 0x3fe8f9c1} },
-/**/ {{0x7af1373f, 0x3fe8e652} },
-/**/ {{0x8d3018d3, 0x3fe8d301} },
-/**/ {{0x8062ff3a, 0x3fe8bfce} },
-/**/ {{0x0f6bf3aa, 0x3fe8acb9} },
-/**/ {{0xf601899c, 0x3fe899c0} },
-/**/ {{0xf0abb04a, 0x3fe886e5} },
-/**/ {{0xbcc092b9, 0x3fe87427} },
-/**/ {{0x18618618, 0x3fe86186} },
-/**/ {{0xc2780614, 0x3fe84f00} },
-/**/ {{0x7ab2bedd, 0x3fe83c97} },
-/**/ {{0x0182a4a0, 0x3fe82a4a} },
-/**/ {{0x18181818, 0x3fe81818} },
-/**/ {{0x80601806, 0x3fe80601} },
-/**/ {{0xfd017f40, 0x3fe7f405} },
-/**/ {{0x515a4f1d, 0x3fe7e225} },
-/**/ {{0x417d05f4, 0x3fe7d05f} },
-/**/ {{0x922e017c, 0x3fe7beb3} },
-/**/ {{0x08e0ecc3, 0x3fe7ad22} },
-/**/ {{0x6bb6398b, 0x3fe79baa} },
-/**/ {{0x8178a4c8, 0x3fe78a4c} },
-/**/ {{0x119ac60d, 0x3fe77908} },
-/**/ {{0xe434a9b1, 0x3fe767dc} },
-/**/ {{0xc201756d, 0x3fe756ca} },
-/**/ {{0x745d1746, 0x3fe745d1} },
-/**/ {{0xc541fe8d, 0x3fe734f0} },
-/**/ {{0x7f46debc, 0x3fe72428} },
-/**/ {{0x6d9c7c09, 0x3fe71378} },
-/**/ {{0x5c0b8170, 0x3fe702e0} },
-/**/ {{0x16f26017, 0x3fe6f260} },
-/**/ {{0x6b4337c7, 0x3fe6e1f7} },
-/**/ {{0x2681c861, 0x3fe6d1a6} },
-/**/ {{0x16c16c17, 0x3fe6c16c} },
-/**/ {{0x0aa31a3d, 0x3fe6b149} },
-/**/ {{0xd1537290, 0x3fe6a13c} },
- };
-
- static const number
- Iv[362] = { /* 1/vj */
-/**/ {{0xee93bfe3, 0x3ff00b47} },
-/**/ {{0xd80c106f, 0x3ff00b37} },
-/**/ {{0xc1a4a47a, 0x3ff00b27} },
-/**/ {{0xab5d7ba2, 0x3ff00b17} },
-/**/ {{0x95369587, 0x3ff00b07} },
-/**/ {{0x7f2ff1c6, 0x3ff00af7} },
-/**/ {{0x69499000, 0x3ff00ae7} },
-/**/ {{0x53836fd3, 0x3ff00ad7} },
-/**/ {{0x3ddd90dd, 0x3ff00ac7} },
-/**/ {{0x2857f2bf, 0x3ff00ab7} },
-/**/ {{0x12f29517, 0x3ff00aa7} },
-/**/ {{0xfdad7784, 0x3ff00a96} },
-/**/ {{0xe88899a5, 0x3ff00a86} },
-/**/ {{0xd383fb19, 0x3ff00a76} },
-/**/ {{0xbe9f9b7f, 0x3ff00a66} },
-/**/ {{0xa9db7a76, 0x3ff00a56} },
-/**/ {{0x9537979d, 0x3ff00a46} },
-/**/ {{0x80b3f293, 0x3ff00a36} },
-/**/ {{0x6c508af8, 0x3ff00a26} },
-/**/ {{0x580d606a, 0x3ff00a16} },
-/**/ {{0x43ea7288, 0x3ff00a06} },
-/**/ {{0x2fe7c0f1, 0x3ff009f6} },
-/**/ {{0x1c054b44, 0x3ff009e6} },
-/**/ {{0x08431122, 0x3ff009d6} },
-/**/ {{0xf4a11227, 0x3ff009c5} },
-/**/ {{0xe11f4df4, 0x3ff009b5} },
-/**/ {{0xcdbdc428, 0x3ff009a5} },
-/**/ {{0xba7c7462, 0x3ff00995} },
-/**/ {{0xa75b5e40, 0x3ff00985} },
-/**/ {{0x945a8162, 0x3ff00975} },
-/**/ {{0x8179dd68, 0x3ff00965} },
-/**/ {{0x6eb971ef, 0x3ff00955} },
-/**/ {{0x5c193e98, 0x3ff00945} },
-/**/ {{0x49994301, 0x3ff00935} },
-/**/ {{0x37397eca, 0x3ff00925} },
-/**/ {{0x24f9f192, 0x3ff00915} },
-/**/ {{0x12da9af7, 0x3ff00905} },
-/**/ {{0x00db7a99, 0x3ff008f5} },
-/**/ {{0xeefc9018, 0x3ff008e4} },
-/**/ {{0xdd3ddb12, 0x3ff008d4} },
-/**/ {{0xcb9f5b26, 0x3ff008c4} },
-/**/ {{0xba210ff4, 0x3ff008b4} },
-/**/ {{0xa8c2f91a, 0x3ff008a4} },
-/**/ {{0x97851639, 0x3ff00894} },
-/**/ {{0x866766ef, 0x3ff00884} },
-/**/ {{0x7569eadb, 0x3ff00874} },
-/**/ {{0x648ca19d, 0x3ff00864} },
-/**/ {{0x53cf8ad3, 0x3ff00854} },
-/**/ {{0x4332a61e, 0x3ff00844} },
-/**/ {{0x32b5f31b, 0x3ff00834} },
-/**/ {{0x2259716c, 0x3ff00824} },
-/**/ {{0x121d20ad, 0x3ff00814} },
-/**/ {{0x02010080, 0x3ff00804} },
-/**/ {{0xf2051083, 0x3ff007f3} },
-/**/ {{0xe2295056, 0x3ff007e3} },
-/**/ {{0xd26dbf97, 0x3ff007d3} },
-/**/ {{0xc2d25de5, 0x3ff007c3} },
-/**/ {{0xb3572ae2, 0x3ff007b3} },
-/**/ {{0xa3fc262a, 0x3ff007a3} },
-/**/ {{0x94c14f5f, 0x3ff00793} },
-/**/ {{0x85a6a61e, 0x3ff00783} },
-/**/ {{0x76ac2a08, 0x3ff00773} },
-/**/ {{0x67d1dabb, 0x3ff00763} },
-/**/ {{0x5917b7d7, 0x3ff00753} },
-/**/ {{0x4a7dc0fb, 0x3ff00743} },
-/**/ {{0x3c03f5c7, 0x3ff00733} },
-/**/ {{0x2daa55da, 0x3ff00723} },
-/**/ {{0x1f70e0d3, 0x3ff00713} },
-/**/ {{0x11579652, 0x3ff00703} },
-/**/ {{0x035e75f5, 0x3ff006f3} },
-/**/ {{0xf5857f5d, 0x3ff006e2} },
-/**/ {{0xe7ccb228, 0x3ff006d2} },
-/**/ {{0xda340df6, 0x3ff006c2} },
-/**/ {{0xccbb9266, 0x3ff006b2} },
-/**/ {{0xbf633f18, 0x3ff006a2} },
-/**/ {{0xb22b13ab, 0x3ff00692} },
-/**/ {{0xa5130fbe, 0x3ff00682} },
-/**/ {{0x981b32f1, 0x3ff00672} },
-/**/ {{0x8b437ce4, 0x3ff00662} },
-/**/ {{0x7e8bed35, 0x3ff00652} },
-/**/ {{0x71f48383, 0x3ff00642} },
-/**/ {{0x657d3f70, 0x3ff00632} },
-/**/ {{0x59262098, 0x3ff00622} },
-/**/ {{0x4cef269e, 0x3ff00612} },
-/**/ {{0x40d8511e, 0x3ff00602} },
-/**/ {{0x34e19fba, 0x3ff005f2} },
-/**/ {{0x290b1211, 0x3ff005e2} },
-/**/ {{0x1d54a7c1, 0x3ff005d2} },
-/**/ {{0x11be606b, 0x3ff005c2} },
-/**/ {{0x06483bad, 0x3ff005b2} },
-/**/ {{0xfaf23928, 0x3ff005a1} },
-/**/ {{0xefbc587b, 0x3ff00591} },
-/**/ {{0xe4a69945, 0x3ff00581} },
-/**/ {{0xd9b0fb25, 0x3ff00571} },
-/**/ {{0xcedb7dbc, 0x3ff00561} },
-/**/ {{0xc42620a9, 0x3ff00551} },
-/**/ {{0xb990e38b, 0x3ff00541} },
-/**/ {{0xaf1bc601, 0x3ff00531} },
-/**/ {{0xa4c6c7ac, 0x3ff00521} },
-/**/ {{0x9a91e82a, 0x3ff00511} },
-/**/ {{0x907d271c, 0x3ff00501} },
-/**/ {{0x86888421, 0x3ff004f1} },
-/**/ {{0x7cb3fed8, 0x3ff004e1} },
-/**/ {{0x72ff96e0, 0x3ff004d1} },
-/**/ {{0x696b4bdb, 0x3ff004c1} },
-/**/ {{0x5ff71d66, 0x3ff004b1} },
-/**/ {{0x56a30b21, 0x3ff004a1} },
-/**/ {{0x4d6f14ad, 0x3ff00491} },
-/**/ {{0x445b39a8, 0x3ff00481} },
-/**/ {{0x3b6779b3, 0x3ff00471} },
-/**/ {{0x3293d46c, 0x3ff00461} },
-/**/ {{0x29e04974, 0x3ff00451} },
-/**/ {{0x214cd869, 0x3ff00441} },
-/**/ {{0x18d980ed, 0x3ff00431} },
-/**/ {{0x1086429d, 0x3ff00421} },
-/**/ {{0x08531d1a, 0x3ff00411} },
-/**/ {{0x00401004, 0x3ff00401} },
-/**/ {{0xf84d1afa, 0x3ff003f0} },
-/**/ {{0xf07a3d9b, 0x3ff003e0} },
-/**/ {{0xe8c77787, 0x3ff003d0} },
-/**/ {{0xe134c85f, 0x3ff003c0} },
-/**/ {{0xd9c22fc1, 0x3ff003b0} },
-/**/ {{0xd26fad4d, 0x3ff003a0} },
-/**/ {{0xcb3d40a3, 0x3ff00390} },
-/**/ {{0xc42ae963, 0x3ff00380} },
-/**/ {{0xbd38a72c, 0x3ff00370} },
-/**/ {{0xb666799e, 0x3ff00360} },
-/**/ {{0xafb46058, 0x3ff00350} },
-/**/ {{0xa9225afa, 0x3ff00340} },
-/**/ {{0xa2b06925, 0x3ff00330} },
-/**/ {{0x9c5e8a77, 0x3ff00320} },
-/**/ {{0x962cbe90, 0x3ff00310} },
-/**/ {{0x901b0511, 0x3ff00300} },
-/**/ {{0x8a295d98, 0x3ff002f0} },
-/**/ {{0x8457c7c6, 0x3ff002e0} },
-/**/ {{0x7ea6433a, 0x3ff002d0} },
-/**/ {{0x7914cf94, 0x3ff002c0} },
-/**/ {{0x73a36c73, 0x3ff002b0} },
-/**/ {{0x6e521978, 0x3ff002a0} },
-/**/ {{0x6920d642, 0x3ff00290} },
-/**/ {{0x640fa271, 0x3ff00280} },
-/**/ {{0x5f1e7da5, 0x3ff00270} },
-/**/ {{0x5a4d677d, 0x3ff00260} },
-/**/ {{0x559c5f9a, 0x3ff00250} },
-/**/ {{0x510b659a, 0x3ff00240} },
-/**/ {{0x4c9a791f, 0x3ff00230} },
-/**/ {{0x484999c6, 0x3ff00220} },
-/**/ {{0x4418c732, 0x3ff00210} },
-/**/ {{0x40080100, 0x3ff00200} },
-/**/ {{0x3c1746d2, 0x3ff001f0} },
-/**/ {{0x38469846, 0x3ff001e0} },
-/**/ {{0x3495f4fd, 0x3ff001d0} },
-/**/ {{0x31055c96, 0x3ff001c0} },
-/**/ {{0x2d94ceb2, 0x3ff001b0} },
-/**/ {{0x2a444af0, 0x3ff001a0} },
-/**/ {{0x2713d0ef, 0x3ff00190} },
-/**/ {{0x24036051, 0x3ff00180} },
-/**/ {{0x2112f8b4, 0x3ff00170} },
-/**/ {{0x1e4299b9, 0x3ff00160} },
-/**/ {{0x1b9242ff, 0x3ff00150} },
-/**/ {{0x1901f427, 0x3ff00140} },
-/**/ {{0x1691acd0, 0x3ff00130} },
-/**/ {{0x14416c9a, 0x3ff00120} },
-/**/ {{0x12113324, 0x3ff00110} },
-/**/ {{0x10010010, 0x3ff00100} },
-/**/ {{0x0e10d2fc, 0x3ff000f0} },
-/**/ {{0x0c40ab89, 0x3ff000e0} },
-/**/ {{0x0a908957, 0x3ff000d0} },
-/**/ {{0x09006c05, 0x3ff000c0} },
-/**/ {{0x07905334, 0x3ff000b0} },
-/**/ {{0x06403e82, 0x3ff000a0} },
-/**/ {{0x05102d92, 0x3ff00090} },
-/**/ {{0x04002001, 0x3ff00080} },
-/**/ {{0x03101571, 0x3ff00070} },
-/**/ {{0x02400d80, 0x3ff00060} },
-/**/ {{0x019007d0, 0x3ff00050} },
-/**/ {{0x01000400, 0x3ff00040} },
-/**/ {{0x009001b0, 0x3ff00030} },
-/**/ {{0x00400080, 0x3ff00020} },
-/**/ {{0x00100010, 0x3ff00010} },
-/**/ {{0x00000000, 0x3ff00000} },
-/**/ {{0x001fffe0, 0x3fefffe0} },
-/**/ {{0x007fff00, 0x3fefffc0} },
-/**/ {{0x011ffca0, 0x3fefffa0} },
-/**/ {{0x01fff800, 0x3fefff80} },
-/**/ {{0x031ff060, 0x3fefff60} },
-/**/ {{0x047fe501, 0x3fefff40} },
-/**/ {{0x061fd521, 0x3fefff20} },
-/**/ {{0x07ffc002, 0x3fefff00} },
-/**/ {{0x0a1fa4e3, 0x3feffee0} },
-/**/ {{0x0c7f8305, 0x3feffec0} },
-/**/ {{0x0f1f59a7, 0x3feffea0} },
-/**/ {{0x11ff280a, 0x3feffe80} },
-/**/ {{0x151eed6e, 0x3feffe60} },
-/**/ {{0x187ea913, 0x3feffe40} },
-/**/ {{0x1c1e5a39, 0x3feffe20} },
-/**/ {{0x1ffe0020, 0x3feffe00} },
-/**/ {{0x241d9a09, 0x3feffde0} },
-/**/ {{0x287d2733, 0x3feffdc0} },
-/**/ {{0x2d1ca6e0, 0x3feffda0} },
-/**/ {{0x31fc184e, 0x3feffd80} },
-/**/ {{0x371b7abf, 0x3feffd60} },
-/**/ {{0x3c7acd72, 0x3feffd40} },
-/**/ {{0x421a0fa9, 0x3feffd20} },
-/**/ {{0x47f940a2, 0x3feffd00} },
-/**/ {{0x4e185f9f, 0x3feffce0} },
-/**/ {{0x54776bdf, 0x3feffcc0} },
-/**/ {{0x5b1664a3, 0x3feffca0} },
-/**/ {{0x61f5492c, 0x3feffc80} },
-/**/ {{0x691418b9, 0x3feffc60} },
-/**/ {{0x7072d28b, 0x3feffc40} },
-/**/ {{0x781175e3, 0x3feffc20} },
-/**/ {{0x7ff00200, 0x3feffc00} },
-/**/ {{0x880e7623, 0x3feffbe0} },
-/**/ {{0x906cd18c, 0x3feffbc0} },
-/**/ {{0x990b137c, 0x3feffba0} },
-/**/ {{0xa1e93b34, 0x3feffb80} },
-/**/ {{0xab0747f3, 0x3feffb60} },
-/**/ {{0xb46538fa, 0x3feffb40} },
-/**/ {{0xbe030d89, 0x3feffb20} },
-/**/ {{0xc7e0c4e1, 0x3feffb00} },
-/**/ {{0xd1fe5e43, 0x3feffae0} },
-/**/ {{0xdc5bd8ee, 0x3feffac0} },
-/**/ {{0xe6f93424, 0x3feffaa0} },
-/**/ {{0xf1d66f25, 0x3feffa80} },
-/**/ {{0xfcf38931, 0x3feffa60} },
-/**/ {{0x08508189, 0x3feffa41} },
-/**/ {{0x13ed576d, 0x3feffa21} },
-/**/ {{0x1fca0a1e, 0x3feffa01} },
-/**/ {{0x2be698dd, 0x3feff9e1} },
-/**/ {{0x384302e9, 0x3feff9c1} },
-/**/ {{0x44df4785, 0x3feff9a1} },
-/**/ {{0x51bb65ef, 0x3feff981} },
-/**/ {{0x5ed75d6a, 0x3feff961} },
-/**/ {{0x6c332d34, 0x3feff941} },
-/**/ {{0x79ced490, 0x3feff921} },
-/**/ {{0x87aa52be, 0x3feff901} },
-/**/ {{0x95c5a6fe, 0x3feff8e1} },
-/**/ {{0xa420d091, 0x3feff8c1} },
-/**/ {{0xb2bbceb7, 0x3feff8a1} },
-/**/ {{0xc196a0b2, 0x3feff881} },
-/**/ {{0xd0b145c2, 0x3feff861} },
-/**/ {{0xe00bbd28, 0x3feff841} },
-/**/ {{0xefa60624, 0x3feff821} },
-/**/ {{0xff801ff8, 0x3feff801} },
-/**/ {{0x0f9a09e3, 0x3feff7e2} },
-/**/ {{0x1ff3c328, 0x3feff7c2} },
-/**/ {{0x308d4b05, 0x3feff7a2} },
-/**/ {{0x4166a0bd, 0x3feff782} },
-/**/ {{0x527fc390, 0x3feff762} },
-/**/ {{0x63d8b2bf, 0x3feff742} },
-/**/ {{0x75716d8b, 0x3feff722} },
-/**/ {{0x8749f334, 0x3feff702} },
-/**/ {{0x996242fb, 0x3feff6e2} },
-/**/ {{0xabba5c21, 0x3feff6c2} },
-/**/ {{0xbe523de8, 0x3feff6a2} },
-/**/ {{0xd129e78f, 0x3feff682} },
-/**/ {{0xe4415858, 0x3feff662} },
-/**/ {{0xf7988f84, 0x3feff642} },
-/**/ {{0x0b2f8c54, 0x3feff623} },
-/**/ {{0x1f064e08, 0x3feff603} },
-/**/ {{0x331cd3e1, 0x3feff5e3} },
-/**/ {{0x47731d21, 0x3feff5c3} },
-/**/ {{0x5c092908, 0x3feff5a3} },
-/**/ {{0x70def6d7, 0x3feff583} },
-/**/ {{0x85f485d0, 0x3feff563} },
-/**/ {{0x9b49d532, 0x3feff543} },
-/**/ {{0xb0dee440, 0x3feff523} },
-/**/ {{0xc6b3b23b, 0x3feff503} },
-/**/ {{0xdcc83e62, 0x3feff4e3} },
-/**/ {{0xf31c87f8, 0x3feff4c3} },
-/**/ {{0x09b08e3d, 0x3feff4a4} },
-/**/ {{0x20845073, 0x3feff484} },
-/**/ {{0x3797cdda, 0x3feff464} },
-/**/ {{0x4eeb05b4, 0x3feff444} },
-/**/ {{0x667df741, 0x3feff424} },
-/**/ {{0x7e50a1c3, 0x3feff404} },
-/**/ {{0x9663047b, 0x3feff3e4} },
-/**/ {{0xaeb51eaa, 0x3feff3c4} },
-/**/ {{0xc746ef91, 0x3feff3a4} },
-/**/ {{0xe0187672, 0x3feff384} },
-/**/ {{0xf929b28d, 0x3feff364} },
-/**/ {{0x127aa323, 0x3feff345} },
-/**/ {{0x2c0b4776, 0x3feff325} },
-/**/ {{0x45db9ec7, 0x3feff305} },
-/**/ {{0x5feba858, 0x3feff2e5} },
-/**/ {{0x7a3b6369, 0x3feff2c5} },
-/**/ {{0x94cacf3b, 0x3feff2a5} },
-/**/ {{0xaf99eb11, 0x3feff285} },
-/**/ {{0xcaa8b62a, 0x3feff265} },
-/**/ {{0xe5f72fc9, 0x3feff245} },
-/**/ {{0x0185572f, 0x3feff226} },
-/**/ {{0x1d532b9d, 0x3feff206} },
-/**/ {{0x3960ac54, 0x3feff1e6} },
-/**/ {{0x55add896, 0x3feff1c6} },
-/**/ {{0x723aafa3, 0x3feff1a6} },
-/**/ {{0x8f0730be, 0x3feff186} },
-/**/ {{0xac135b27, 0x3feff166} },
-/**/ {{0xc95f2e21, 0x3feff146} },
-/**/ {{0xe6eaa8eb, 0x3feff126} },
-/**/ {{0x04b5cac9, 0x3feff107} },
-/**/ {{0x22c092fb, 0x3feff0e7} },
-/**/ {{0x410b00c2, 0x3feff0c7} },
-/**/ {{0x5f951360, 0x3feff0a7} },
-/**/ {{0x7e5eca16, 0x3feff087} },
-/**/ {{0x9d682426, 0x3feff067} },
-/**/ {{0xbcb120d2, 0x3feff047} },
-/**/ {{0xdc39bf5a, 0x3feff027} },
-/**/ {{0xfc01ff00, 0x3feff007} },
-/**/ {{0x1c09df07, 0x3fefefe8} },
-/**/ {{0x3c515eae, 0x3fefefc8} },
-/**/ {{0x5cd87d38, 0x3fefefa8} },
-/**/ {{0x7d9f39e6, 0x3fefef88} },
-/**/ {{0x9ea593fa, 0x3fefef68} },
-/**/ {{0xbfeb8ab5, 0x3fefef48} },
-/**/ {{0xe1711d5a, 0x3fefef28} },
-/**/ {{0x03364b28, 0x3fefef09} },
-/**/ {{0x253b1363, 0x3fefeee9} },
-/**/ {{0x477f754b, 0x3fefeec9} },
-/**/ {{0x6a037022, 0x3fefeea9} },
-/**/ {{0x8cc7032a, 0x3fefee89} },
-/**/ {{0xafca2da5, 0x3fefee69} },
-/**/ {{0xd30ceed4, 0x3fefee49} },
-/**/ {{0xf68f45f8, 0x3fefee29} },
-/**/ {{0x1a513254, 0x3fefee0a} },
-/**/ {{0x3e52b329, 0x3fefedea} },
-/**/ {{0x6293c7b8, 0x3fefedca} },
-/**/ {{0x87146f44, 0x3fefedaa} },
-/**/ {{0xabd4a90e, 0x3fefed8a} },
-/**/ {{0xd0d47458, 0x3fefed6a} },
-/**/ {{0xf613d064, 0x3fefed4a} },
-/**/ {{0x1b92bc73, 0x3fefed2b} },
-/**/ {{0x415137c7, 0x3fefed0b} },
-/**/ {{0x674f41a2, 0x3fefeceb} },
-/**/ {{0x8d8cd945, 0x3fefeccb} },
-/**/ {{0xb409fdf3, 0x3fefecab} },
-/**/ {{0xdac6aeed, 0x3fefec8b} },
-/**/ {{0x01c2eb76, 0x3fefec6c} },
-/**/ {{0x28feb2ce, 0x3fefec4c} },
-/**/ {{0x507a0437, 0x3fefec2c} },
-/**/ {{0x7834def5, 0x3fefec0c} },
-/**/ {{0xa02f4247, 0x3fefebec} },
-/**/ {{0xc8692d71, 0x3fefebcc} },
-/**/ {{0xf0e29fb4, 0x3fefebac} },
-/**/ {{0x199b9852, 0x3fefeb8d} },
-/**/ {{0x4294168d, 0x3fefeb6d} },
-/**/ {{0x6bcc19a7, 0x3fefeb4d} },
-/**/ {{0x9543a0e2, 0x3fefeb2d} },
-/**/ {{0xbefaab7f, 0x3fefeb0d} },
-/**/ {{0xe8f138c2, 0x3fefeaed} },
-/**/ {{0x132747ea, 0x3fefeace} },
-/**/ {{0x3d9cd83c, 0x3fefeaae} },
-/**/ {{0x6851e8f7, 0x3fefea8e} },
-/**/ {{0x93467960, 0x3fefea6e} },
-/**/ {{0xbe7a88b7, 0x3fefea4e} },
-/**/ {{0xe9ee163f, 0x3fefea2e} },
-/**/ {{0x15a12139, 0x3fefea0f} },
-/**/ {{0x4193a8e8, 0x3fefe9ef} },
-/**/ {{0x6dc5ac8e, 0x3fefe9cf} },
-/**/ {{0x9a372b6d, 0x3fefe9af} },
-/**/ {{0xc6e824c6, 0x3fefe98f} },
-/**/ {{0xf3d897dd, 0x3fefe96f} },
- };
-
- static const number
- Lu[182][2] = { /* log(ui) */
-/**/ {{{0x0b3aac49, 0xbfd63003} },
-/**/ {{0xe51fff99, 0xbc6dc18c} },},
-/**/ {{{0xdf595f30, 0xbfd5d5bd} },
-/**/ {{0x48cbb8a2, 0x3c765411} },},
-/**/ {{{0x53c8d1fb, 0xbfd57bf7} },
-/**/ {{0x15f88b63, 0x3c60908d} },},
-/**/ {{{0x0738a3d8, 0xbfd522ae} },
-/**/ {{0xb38a6979, 0x3c68f7e9} },},
-/**/ {{{0x9e172c3c, 0xbfd4c9e0} },
-/**/ {{0x5b147a5d, 0x3c512361} },},
-/**/ {{{0xc271c41b, 0xbfd4718d} },
-/**/ {{0x14c56eef, 0xbc38fb4c} },},
-/**/ {{{0x23d5e8c7, 0xbfd419b4} },
-/**/ {{0x43827392, 0xbc60dbb2} },},
-/**/ {{{0x77333184, 0xbfd3c252} },
-/**/ {{0xe50a8ec6, 0x3c72ad27} },},
-/**/ {{{0x76be1117, 0xbfd36b67} },
-/**/ {{0xe883858e, 0x3c5324f0} },},
-/**/ {{{0xe1d35ce4, 0xbfd314f1} },
-/**/ {{0x09e5c3dc, 0x3c73d699} },},
-/**/ {{{0x7cdc9354, 0xbfd2bef0} },
-/**/ {{0x7fd86088, 0x3c782dad} },},
-/**/ {{{0x1134db92, 0xbfd26962} },
-/**/ {{0xdd9db02b, 0xbc7e0efa} },},
-/**/ {{{0x6d0eb8d4, 0xbfd21445} },
-/**/ {{0x1aeba60a, 0xbc6f7ae9} },},
-/**/ {{{0x635a6b95, 0xbfd1bf99} },
-/**/ {{0x84249223, 0x3c612aeb} },},
-/**/ {{{0xcbacfb73, 0xbfd16b5c} },
-/**/ {{0x28b40935, 0xbc766fbd} },},
-/**/ {{{0x8227e47c, 0xbfd1178e} },
-/**/ {{0x5f01c691, 0x3c60e63a} },},
-/**/ {{{0x676162e3, 0xbfd0c42d} },
-/**/ {{0x9d5d11ee, 0xbc5162c7} },},
-/**/ {{{0x604d5862, 0xbfd07138} },
-/**/ {{0xed4e9138, 0xbc7cdb16} },},
-/**/ {{{0x5626c691, 0xbfd01eae} },
-/**/ {{0xbd2932e2, 0x3c418290} },},
-/**/ {{{0x6cb3b379, 0xbfcf991c} },
-/**/ {{0x66f980a2, 0xbc6f6650} },},
-/**/ {{{0xe4dcffe6, 0xbfcef5ad} },
-/**/ {{0xddc708a0, 0x3c508ab2} },},
-/**/ {{{0xffe71012, 0xbfce530e} },
-/**/ {{0x41f43042, 0xbc422760} },},
-/**/ {{{0xb0d48940, 0xbfcdb13d} },
-/**/ {{0x49f96cb9, 0xbc5aa11d} },},
-/**/ {{{0xf2655e7b, 0xbfcd1037} },
-/**/ {{0x242471a2, 0xbc660629} },},
-/**/ {{{0xc6f00f71, 0xbfcc6ffb} },
-/**/ {{0x2c57a4a5, 0x3c68e58b} },},
-/**/ {{{0x383bd8ad, 0xbfcbd087} },
-/**/ {{0xf6a516d7, 0xbc3dd355} },},
-/**/ {{{0x575bce3d, 0xbfcb31d8} },
-/**/ {{0xb386a94d, 0x3c66353a} },},
-/**/ {{{0x3c8ad9e3, 0xbfca93ed} },
-/**/ {{0x9de97203, 0xbc6bcafa} },},
-/**/ {{{0x07089664, 0xbfc9f6c4} },
-/**/ {{0x605e67ef, 0xbc435a19} },},
-/**/ {{{0xdcf7017f, 0xbfc95a5a} },
-/**/ {{0x07fb7a3d, 0xbc5142c5} },},
-/**/ {{{0xeb38fe8c, 0xbfc8beaf} },
-/**/ {{0xb6997a40, 0xbc555aa8} },},
-/**/ {{{0x6551a3c2, 0xbfc823c1} },
-/**/ {{0xe70be781, 0x3c61232c} },},
-/**/ {{{0x85444c73, 0xbfc7898d} },
-/**/ {{0xebcfb201, 0xbc5ef8f6} },},
-/**/ {{{0x8b756abc, 0xbfc6f012} },
-/**/ {{0xc21e166c, 0x3c68de59} },},
-/**/ {{{0xbe8c133a, 0xbfc6574e} },
-/**/ {{0xf4621bed, 0x3c3d34f0} },},
-/**/ {{{0x6b543db2, 0xbfc5bf40} },
-/**/ {{0x4c0df7e7, 0x3c21f5b4} },},
-/**/ {{{0xe4a1b58d, 0xbfc527e5} },
-/**/ {{0x82395bfd, 0x3c271a96} },},
-/**/ {{{0x8333b561, 0xbfc4913d} },
-/**/ {{0x4930f135, 0x3c50d560} },},
-/**/ {{{0xa59928cc, 0xbfc3fb45} },
-/**/ {{0xa354d056, 0x3c6d87e6} },},
-/**/ {{{0xb0159016, 0xbfc365fc} },
-/**/ {{0xa5b944ad, 0xbc57d411} },},
-/**/ {{{0x0c86813a, 0xbfc2d161} },
-/**/ {{0xf25af95f, 0x3c5499a3} },},
-/**/ {{{0x2a49c202, 0xbfc23d71} },
-/**/ {{0x61051d69, 0x3c66e381} },},
-/**/ {{{0x7e23f72a, 0xbfc1aa2b} },
-/**/ {{0xd9b2ef7e, 0x3c4c6ef1} },},
-/**/ {{{0x8227e47c, 0xbfc1178e} },
-/**/ {{0x5f01c691, 0x3c50e63a} },},
-/**/ {{{0xb59e3a07, 0xbfc08598} },
-/**/ {{0x9902bf32, 0x3c6dd700} },},
-/**/ {{{0x39dbd566, 0xbfbfe891} },
-/**/ {{0x215f9393, 0x3c5ac9f4} },},
-/**/ {{{0x830a1120, 0xbfbec739} },
-/**/ {{0x91780d3f, 0x3c4a2bf9} },},
-/**/ {{{0x638446a2, 0xbfbda727} },
-/**/ {{0x71733019, 0xbc5401fa} },},
-/**/ {{{0x01bc4b23, 0xbfbc8858} },
-/**/ {{0x559a6706, 0xbc5a38cb} },},
-/**/ {{{0x8dad5b1c, 0xbfbb6ac8} },
-/**/ {{0xed1ca59f, 0x3c40057e} },},
-/**/ {{{0x40b1bc38, 0xbfba4e76} },
-/**/ {{0x203e4259, 0x3c55b5ca} },},
-/**/ {{{0x5d594989, 0xbfb9335e} },
-/**/ {{0x5704ccb7, 0x3c5478a8} },},
-/**/ {{{0x2f40e3f0, 0xbfb8197e} },
-/**/ {{0xffbeed43, 0xbc3b9f2d} },},
-/**/ {{{0x0aeac0e1, 0xbfb700d3} },
-/**/ {{0x212cdd05, 0x3c272566} },},
-/**/ {{{0x4d9791cb, 0xbfb5e95a} },
-/**/ {{0x5c5c450a, 0xbc5f3874} },},
-/**/ {{{0x5d207eac, 0xbfb4d311} },
-/**/ {{0x2c7842cc, 0xbc5769f4} },},
-/**/ {{{0xa7d1ee64, 0xbfb3bdf5} },
-/**/ {{0xd3b5b45f, 0xbc47a976} },},
-/**/ {{{0xa44717a5, 0xbfb2aa04} },
-/**/ {{0x8d2fa3f7, 0x3c5d15d3} },},
-/**/ {{{0xd1465567, 0xbfb1973b} },
-/**/ {{0x67a6acf6, 0x3c475583} },},
-/**/ {{{0xb59e3a07, 0xbfb08598} },
-/**/ {{0x9902bf32, 0x3c5dd700} },},
-/**/ {{{0xc006b87c, 0xbfaeea31} },
-/**/ {{0x93b7b66c, 0x3c43e4fc} },},
-/**/ {{{0xcdddb2cc, 0xbfaccb73} },
-/**/ {{0x0500efd4, 0x3c4e48fb} },},
-/**/ {{{0xd0fb10fc, 0xbfaaaef2} },
-/**/ {{0xb42e0add, 0xbc2a353b} },},
-/**/ {{{0x149fb343, 0xbfa894aa} },
-/**/ {{0x7660a23d, 0xbc3a8be9} },},
-/**/ {{{0xf2d4bb58, 0xbfa67c94} },
-/**/ {{0x6505e603, 0xbc40413e} },},
-/**/ {{{0xd42de3ea, 0xbfa466ae} },
-/**/ {{0x7f4a137e, 0x3c4cdd6f} },},
-/**/ {{{0x2f8d183f, 0xbfa252f3} },
-/**/ {{0x92615916, 0x3c4947f7} },},
-/**/ {{{0x89e74444, 0xbfa0415d} },
-/**/ {{0x1d753622, 0xbc4c05cf} },},
-/**/ {{{0xec14aaf2, 0xbf9c63d2} },
-/**/ {{0xa686bd86, 0x3c3ce030} },},
-/**/ {{{0x28c8cabf, 0xbf984925} },
-/**/ {{0x0619fa67, 0x3c3d192d} },},
-/**/ {{{0x25980cc1, 0xbf9432a9} },
-/**/ {{0x39004192, 0x3c38cdaf} },},
-/**/ {{{0x58935847, 0xbf902056} },
-/**/ {{0x8416e71f, 0xbc327c8e} },},
-/**/ {{{0xa388a2aa, 0xbf882448} },
-/**/ {{0x137f09a0, 0xbc104b16} },},
-/**/ {{{0x7588de71, 0xbf801015} },
-/**/ {{0xd417ced0, 0xbc146662} },},
-/**/ {{{0x59588b35, 0xbf700805} },
-/**/ {{0x8cf63677, 0xbc1f9663} },},
-/**/ {{{0x00000000, 0x00000000} },
-/**/ {{0x00000000, 0x00000000} },},
-/**/ {{{0xa2b10bc0, 0x3f6ff00a} },
-/**/ {{0xd5a6d353, 0x3c02821a} },},
-/**/ {{{0x6b106789, 0x3f7fe02a} },
-/**/ {{0xe3711ebf, 0xbbce44b7} },},
-/**/ {{{0x5f810a77, 0x3f87dc47} },
-/**/ {{0x87d3df21, 0xbc116d76} },},
-/**/ {{{0xb0fc03e4, 0x3f8fc0a8} },
-/**/ {{0xc59642a1, 0xbc183092} },},
-/**/ {{{0x4346a575, 0x3f93cea4} },
-/**/ {{0x902b3a1c, 0xbc10cb5a} },},
-/**/ {{{0x07d5b11b, 0x3f97b91b} },
-/**/ {{0xace3a510, 0xbc35b602} },},
-/**/ {{{0x27af9198, 0x3f9b9fc0} },
-/**/ {{0x229dc868, 0xbbf0ae69} },},
-/**/ {{{0x0e783300, 0x3f9f829b} },
-/**/ {{0x04f1ef23, 0x3c333e3f} },},
-/**/ {{{0x8923d980, 0x3fa1b0d9} },
-/**/ {{0x89bac481, 0xbc3e9ae8} },},
-/**/ {{{0xb9febd60, 0x3fa39e87} },
-/**/ {{0x37f551bb, 0xbc45bfa9} },},
-/**/ {{{0xafc8e4d5, 0x3fa58a5b} },
-/**/ {{0x2b4e2b72, 0xbc4ce55c} },},
-/**/ {{{0xf632dcfc, 0x3fa77458} },
-/**/ {{0xa87b9296, 0x3c418d3c} },},
-/**/ {{{0x0ec8e3eb, 0x3fa95c83} },
-/**/ {{0x80520bf2, 0x3c4f5a0e} },},
-/**/ {{{0x711971bf, 0x3fab42dd} },
-/**/ {{0x9c130499, 0xbc3eb975} },},
-/**/ {{{0x8adb0b52, 0x3fad276b} },
-/**/ {{0x3257fd47, 0x3c21e3c5} },},
-/**/ {{{0xc01162a6, 0x3faf0a30} },
-/**/ {{0x5c5bbacd, 0x3c485f32} },},
-/**/ {{{0x3598e471, 0x3fb07598} },
-/**/ {{0x333c45b8, 0x3c480da5} },},
-/**/ {{{0xeea37ae1, 0x3fb16536} },
-/**/ {{0xe8c22cda, 0xbc379da3} },},
-/**/ {{{0x2f0a1417, 0x3fb253f6} },
-/**/ {{0x63fc4cfd, 0xbc1c1259} },},
-/**/ {{{0x961bd1d1, 0x3fb341d7} },
-/**/ {{0x227becbb, 0xbc5b599f} },},
-/**/ {{{0xbea646f0, 0x3fb42edc} },
-/**/ {{0x935996c9, 0x3c4ddd4f} },},
-/**/ {{{0x3f06183f, 0x3fb51b07} },
-/**/ {{0x9a1a8be4, 0x3c5a49e3} },},
-/**/ {{{0xa93750c4, 0x3fb60658} },
-/**/ {{0x8ec21b6a, 0xbc538845} },},
-/**/ {{{0x8ae56b4c, 0x3fb6f0d2} },
-/**/ {{0x9184b992, 0xbc5906d9} },},
-/**/ {{{0x6d7b12cd, 0x3fb7da76} },
-/**/ {{0xcdd94131, 0xbc5eeedf} },},
-/**/ {{{0xd6319b21, 0x3fb8c345} },
-/**/ {{0xab3424a9, 0xbc24a697} },},
-/**/ {{{0x462033ad, 0x3fb9ab42} },
-/**/ {{0x1c184e8e, 0xbc42099e} },},
-/**/ {{{0x3a4ad563, 0x3fba926d} },
-/**/ {{0x8aa70ea9, 0x3c5942f4} },},
-/**/ {{{0x2bb0eda1, 0x3fbb78c8} },
-/**/ {{0xf0327e21, 0x3c20878c} },},
-/**/ {{{0x8f5bc743, 0x3fbc5e54} },
-/**/ {{0xef8161b1, 0x3c35d617} },},
-/**/ {{{0xd66cb35d, 0x3fbd4313} },
-/**/ {{0x951d90fa, 0x3c5790dd} },},
-/**/ {{{0x6e2af2e6, 0x3fbe2707} },
-/**/ {{0x001e0162, 0xbc361578} },},
-/**/ {{{0xc01162a6, 0x3fbf0a30} },
-/**/ {{0x5c5bbacd, 0x3c585f32} },},
-/**/ {{{0x31dbeabb, 0x3fbfec91} },
-/**/ {{0x9981b36c, 0xbc55746b} },},
-/**/ {{{0x12ca596e, 0x3fc06715} },
-/**/ {{0x7eb86499, 0x3c550c64} },},
-/**/ {{{0x7cd08e59, 0x3fc0d77e} },
-/**/ {{0x5e9030ac, 0x3c69a5dc} },},
-/**/ {{{0x846742ac, 0x3fc14785} },
-/**/ {{0x3e3a7f07, 0x3c6a2881} },},
-/**/ {{{0xd52f67a0, 0x3fc1b72a} },
-/**/ {{0x3472cd74, 0x3c548302} },},
-/**/ {{{0x190a5acb, 0x3fc2266f} },
-/**/ {{0xf1809e88, 0x3c6f547b} },},
-/**/ {{{0xf81ff523, 0x3fc29552} },
-/**/ {{0x1c407dbf, 0x3c630177} },},
-/**/ {{{0x18e47fd3, 0x3fc303d7} },
-/**/ {{0xd96091fa, 0xbc06b9c7} },},
-/**/ {{{0x201e8f74, 0x3fc371fc} },
-/**/ {{0x62af18a0, 0x3c5de6cb} },},
-/**/ {{{0xb0ecc62a, 0x3fc3dfc2} },
-/**/ {{0xe7d81017, 0xbc5ab3a8} },},
-/**/ {{{0x6ccb7d1e, 0x3fc44d2b} },
-/**/ {{0x543e1f88, 0x3c69f4f6} },},
-/**/ {{{0xf39a55e5, 0x3fc4ba36} },
-/**/ {{0xbcc36756, 0x3c668981} },},
-/**/ {{{0xe3a1b438, 0x3fc526e5} },
-/**/ {{0x8a470d3a, 0xbc6746ff} },},
-/**/ {{{0xd9982086, 0x3fc59338} },
-/**/ {{0xaa8ad7cf, 0xbc565d22} },},
-/**/ {{{0x70a793d4, 0x3fc5ff30} },
-/**/ {{0xfafc6f6e, 0xbc5bc60e} },},
-/**/ {{{0x4272ad51, 0x3fc66acd} },
-/**/ {{0x4e1ea8b2, 0xbc50900e} },},
-/**/ {{{0xe719d21d, 0x3fc6d60f} },
-/**/ {{0x68ecd179, 0xbc6caae2} },},
-/**/ {{{0xf54037a5, 0x3fc740f8} },
-/**/ {{0x62a84cdb, 0xbc5b2640} },},
-/**/ {{{0x0210d909, 0x3fc7ab89} },
-/**/ {{0x2d6a0608, 0x3c4be36b} },},
-/**/ {{{0xa14357eb, 0x3fc815c0} },
-/**/ {{0x073a0564, 0xbc54be48} },},
-/**/ {{{0x6520c911, 0x3fc87fa0} },
-/**/ {{0xbfa08d9a, 0xbc6bf7fd} },},
-/**/ {{{0xde886d41, 0x3fc8e928} },
-/**/ {{0x51a56770, 0xbc6569d8} },},
-/**/ {{{0x9cf456b4, 0x3fc9525a} },
-/**/ {{0x1d4e2e26, 0x3c6d904c} },},
-/**/ {{{0x2e7dfb83, 0x3fc9bb36} },
-/**/ {{0x1f003e0c, 0x3c6575e3} },},
-/**/ {{{0x1fe2b563, 0x3fca23bc} },
-/**/ {{0xb07a998c, 0x3c493711} },},
-/**/ {{{0xfc882f19, 0x3fca8bec} },
-/**/ {{0x918c39eb, 0xbc5e8c37} },},
-/**/ {{{0x4e80bff3, 0x3fcaf3c9} },
-/**/ {{0xf3641985, 0xbc5398cf} },},
-/**/ {{{0x9e8fb5a4, 0x3fcb5b51} },
-/**/ {{0xdc19e1a0, 0x3c6ba27f} },},
-/**/ {{{0x742d8cd6, 0x3fcbc286} },
-/**/ {{0x44870f55, 0x3c54fce7} },},
-/**/ {{{0x558c18c1, 0x3fcc2968} },
-/**/ {{0x38a3fb6b, 0xbc673dee} },},
-/**/ {{{0xc79a9a22, 0x3fcc8ff7} },
-/**/ {{0xf8434012, 0xbc64f689} },},
-/**/ {{{0x4e09c5dc, 0x3fccf635} },
-/**/ {{0x7d55b695, 0x3c6239a0} },},
-/**/ {{{0x6b4fbb91, 0x3fcd5c21} },
-/**/ {{0x597e4d40, 0x3c66e443} },},
-/**/ {{{0xa0abec7d, 0x3fcdc1bc} },
-/**/ {{0x1998b6fc, 0x3c6834c5} },},
-/**/ {{{0x6e2af2e6, 0x3fce2707} },
-/**/ {{0x001e0162, 0xbc461578} },},
-/**/ {{{0x52aa5a60, 0x3fce8c02} },
-/**/ {{0x39bfc89b, 0xbc46e03a} },},
-/**/ {{{0xcbdc5936, 0x3fcef0ad} },
-/**/ {{0x950dc20d, 0x3c648637} },},
-/**/ {{{0x564b7b37, 0x3fcf550a} },
-/**/ {{0xfd018c37, 0x3c2c5f6d} },},
-/**/ {{{0x6d5e3e2b, 0x3fcfb918} },
-/**/ {{0x64f21acb, 0xbc6caaae} },},
-/**/ {{{0x45ad501d, 0x3fd00e6c} },
-/**/ {{0x8ff6fead, 0xbc6cb956} },},
-/**/ {{{0x94b4d041, 0x3fd04025} },
-/**/ {{0x17a5022d, 0xbc628ec2} },},
-/**/ {{{0x5fcd590d, 0x3fd071b8} },
-/**/ {{0xf97bde80, 0x3c5d1707} },},
-/**/ {{{0xe27390e3, 0x3fd0a324} },
-/**/ {{0xe8061c03, 0x3c77dcfd} },},
-/**/ {{{0x579ab74b, 0x3fd0d46b} },
-/**/ {{0x1c3cbd92, 0x3c603ec8} },},
-/**/ {{{0xf9ae4ad5, 0x3fd1058b} },
-/**/ {{0xab4cb31d, 0x3c589fa0} },},
-/**/ {{{0x0293a8b0, 0x3fd13687} },
-/**/ {{0x98edd24a, 0x3c77b662} },},
-/**/ {{{0xababa60e, 0x3fd1675c} },
-/**/ {{0xab883717, 0x3c2ce63e} },},
-/**/ {{{0x2dd4236f, 0x3fd1980d} },
-/**/ {{0xb0e4d147, 0x3c79d3d1} },},
-/**/ {{{0xc16999fb, 0x3fd1c898} },
-/**/ {{0x2aff1c44, 0xbc30e5c6} },},
-/**/ {{{0x9e48a2f3, 0x3fd1f8ff} },
-/**/ {{0x9a0c4b07, 0xbc7c9fdf} },},
-/**/ {{{0xfbcf7966, 0x3fd22941} },
-/**/ {{0xb09628af, 0xbc776f5e} },},
-/**/ {{{0x10df763a, 0x3fd25960} },
-/**/ {{0x57075e9e, 0xbc50f76c} },},
-/**/ {{{0x13de86a3, 0x3fd2895a} },
-/**/ {{0xc13f040e, 0x3c77ad24} },},
-/**/ {{{0x3ab89d25, 0x3fd2b930} },
-/**/ {{0xfd852ad4, 0xbc7896b5} },},
-/**/ {{{0xbae11d31, 0x3fd2e8e2} },
-/**/ {{0xb95ebdf9, 0xbc78f4cd} },},
-/**/ {{{0xc9544185, 0x3fd31871} },
-/**/ {{0x4c09b379, 0xbc351acc} },},
-/**/ {{{0x9a987d55, 0x3fd347dd} },
-/**/ {{0x580919f8, 0xbc64dd4c} },},
-/**/ {{{0x62bfd85b, 0x3fd37726} },
-/**/ {{0xd8117de7, 0xbc4b5629} },},
-/**/ {{{0x556945ea, 0x3fd3a64c} },
-/**/ {{0x1945f97c, 0xbc6c6865} },},
-/**/ {{{0xa5c1f710, 0x3fd3d54f} },
-/**/ {{0xc6a1c98d, 0xbc7e3265} },},
-/**/ {{{0x8686a7e4, 0x3fd40430} },
-/**/ {{0x6082ce6d, 0xbc70bcfb} },},
-/**/ {{{0x2a04e814, 0x3fd432ef} },
-/**/ {{0x715ac903, 0xbc729931} },},
-/**/ {{{0xc21c5ec2, 0x3fd4618b} },
-/**/ {{0xcdeccf1d, 0x3c7f42de} },},
-/**/ {{{0x804009d1, 0x3fd49006} },
-/**/ {{0x41f177dc, 0xbc69ffc3} },},
-/**/ {{{0x957778a1, 0x3fd4be5f} },
-/**/ {{0x5b04813d, 0xbc6259b3} },},
-/**/ {{{0x3260026a, 0x3fd4ec97} },
-/**/ {{0xd977dc5e, 0xbc742a87} },},
-/**/ {{{0x872df82d, 0x3fd51aad} },
-/**/ {{0xc19f55e3, 0x3c43927a} },},
-/**/ {{{0xc3add263, 0x3fd548a2} },
-/**/ {{0x7e308ddb, 0xbc6819cf} },},
-/**/ {{{0x17455a6c, 0x3fd57677} },
-/**/ {{0xb283660c, 0x3c7526ad} },},
-/**/ {{{0xb0f4cfe2, 0x3fd5a42a} },
-/**/ {{0x7dee9a3d, 0xbc78ebcb} },},
-/**/ {{{0xbf5809ca, 0x3fd5d1bd} },
-/**/ {{0x83dc7fe1, 0x3c742363} },},
-/**/ {{{0x70a793d4, 0x3fd5ff30} },
-/**/ {{0xfafc6f6e, 0xbc6bc60e} },},
-/**/ {{{0xf2b9c795, 0x3fd62c82} },
-/**/ {{0x915300e5, 0x3c67b7af} },},
- };
-
- static const number
- Lv[362][2] = { /* log(vj) */
-
-/**/ {{{0xb72daabf, 0xbf6687ec} },
-/**/ {{0x0f13318f, 0x3c052c69} },},
-/**/ {{{0x3767104f, 0xbf6667d6} },
-/**/ {{0xd27a7bac, 0x3bd3efa3} },},
-/**/ {{{0xd7cd64fb, 0xbf6647bf} },
-/**/ {{0x55a89c36, 0x3c09b725} },},
-/**/ {{{0x9860683b, 0xbf6627a9} },
-/**/ {{0xfebc844a, 0x3bcbae22} },},
-/**/ {{{0x791fd98a, 0xbf660793} },
-/**/ {{0x78fa1cb5, 0xbbfe34af} },},
-/**/ {{{0x7a0b7863, 0xbf65e77d} },
-/**/ {{0xea78fdd0, 0xbc02f1b1} },},
-/**/ {{{0x9b230442, 0xbf65c767} },
-/**/ {{0x2202b2ca, 0x3bf70d8c} },},
-/**/ {{{0xdc663ca2, 0xbf65a751} },
-/**/ {{0xc3444e64, 0xbbfdc63d} },},
-/**/ {{{0x3dd4e102, 0xbf65873c} },
-/**/ {{0x370d69c3, 0x3c021b11} },},
-/**/ {{{0xbf6eb0de, 0xbf656726} },
-/**/ {{0x154dd8d8, 0xbbfb6da8} },},
-/**/ {{{0x61336bb6, 0xbf654711} },
-/**/ {{0xdf9a4709, 0xbc0b12d2} },},
-/**/ {{{0x2322d10a, 0xbf6526fc} },
-/**/ {{0x68d1274f, 0x3bf997f2} },},
-/**/ {{{0x053ca059, 0xbf6506e7} },
-/**/ {{0xe70c852a, 0x3c0c2a1f} },},
-/**/ {{{0x07809924, 0xbf64e6d2} },
-/**/ {{0xa808538f, 0x3c04cc9e} },},
-/**/ {{{0x29ee7aed, 0xbf64c6bd} },
-/**/ {{0x7797a4bd, 0x3befe68c} },},
-/**/ {{{0x6c860537, 0xbf64a6a8} },
-/**/ {{0x9efaae3d, 0x3c06794d} },},
-/**/ {{{0xcf46f784, 0xbf648693} },
-/**/ {{0xb2ddd9d1, 0xbbfed318} },},
-/**/ {{{0x5231115a, 0xbf64667f} },
-/**/ {{0x4643624b, 0x3c061f62} },},
-/**/ {{{0xf544123c, 0xbf64466a} },
-/**/ {{0x9387f11e, 0x3c0666a0} },},
-/**/ {{{0xb87fb9b0, 0xbf642656} },
-/**/ {{0x116ec598, 0x3c0043b2} },},
-/**/ {{{0x9be3c73c, 0xbf640642} },
-/**/ {{0xd2de6e3e, 0xbbfbd84d} },},
-/**/ {{{0x9f6ffa68, 0xbf63e62e} },
-/**/ {{0x433d8c65, 0xbbe9149b} },},
-/**/ {{{0xc32412bb, 0xbf63c61a} },
-/**/ {{0x08e5a7bb, 0xbbf6b88d} },},
-/**/ {{{0x06ffcfbe, 0xbf63a607} },
-/**/ {{0xccfac9e2, 0xbb9f3c7a} },},
-/**/ {{{0x6b02f0fa, 0xbf6385f3} },
-/**/ {{0xbec6f6e4, 0x3bee405c} },},
-/**/ {{{0xef2d35f9, 0xbf6365df} },
-/**/ {{0xaf0c0b4c, 0x3bf02993} },},
-/**/ {{{0x937e5e46, 0xbf6345cc} },
-/**/ {{0xaa64716f, 0x3bf9be97} },},
-/**/ {{{0x57f6296c, 0xbf6325b9} },
-/**/ {{0xa2e863ae, 0xbbfdeb4d} },},
-/**/ {{{0x3c9456f9, 0xbf6305a6} },
-/**/ {{0x636d2b2c, 0x3c0f3c7f} },},
-/**/ {{{0x4158a678, 0xbf62e593} },
-/**/ {{0xb166ca7f, 0x3c01a8df} },},
-/**/ {{{0x6642d778, 0xbf62c580} },
-/**/ {{0x53a2d534, 0x3c020ff1} },},
-/**/ {{{0xab52a987, 0xbf62a56d} },
-/**/ {{0x0412f1e7, 0xbbe8fef1} },},
-/**/ {{{0x1087dc35, 0xbf62855b} },
-/**/ {{0x4b7ac6c6, 0xbbfcd17e} },},
-/**/ {{{0x95e22f12, 0xbf626548} },
-/**/ {{0x9a8127bf, 0xbbfbfc21} },},
-/**/ {{{0x3b6161af, 0xbf624536} },
-/**/ {{0x66d42390, 0x3bd7eda1} },},
-/**/ {{{0x0105339d, 0xbf622524} },
-/**/ {{0x77fedcad, 0xbbdf374e} },},
-/**/ {{{0xe6cd646f, 0xbf620511} },
-/**/ {{0x52d05dea, 0x3be1d1fb} },},
-/**/ {{{0xecb9b3b8, 0xbf61e4ff} },
-/**/ {{0xffd8e706, 0x3c02c2fc} },},
-/**/ {{{0x12c9e10b, 0xbf61c4ee} },
-/**/ {{0xf1d5cc2c, 0xbc02b4f8} },},
-/**/ {{{0x58fdabfe, 0xbf61a4dc} },
-/**/ {{0x1315b191, 0xbc0618c3} },},
-/**/ {{{0xbf54d426, 0xbf6184ca} },
-/**/ {{0xcb3cdab0, 0xbc01f8d5} },},
-/**/ {{{0x45cf1919, 0xbf6164b9} },
-/**/ {{0xc025605a, 0xbc014ff7} },},
-/**/ {{{0xec6c3a6e, 0xbf6144a7} },
-/**/ {{0x87cb08cd, 0xbbff04ff} },},
-/**/ {{{0xb32bf7bd, 0xbf612496} },
-/**/ {{0xe6af1b84, 0x3bee89b4} },},
-/**/ {{{0x9a0e109e, 0xbf610485} },
-/**/ {{0x35a60879, 0x3c07e99e} },},
-/**/ {{{0xa11244aa, 0xbf60e474} },
-/**/ {{0x20f2325a, 0x3c04b698} },},
-/**/ {{{0xc838537b, 0xbf60c463} },
-/**/ {{0x3617200d, 0x3bc0657e} },},
-/**/ {{{0x0f7ffcac, 0xbf60a453} },
-/**/ {{0xa5080961, 0xbc008feb} },},
-/**/ {{{0x76e8ffd9, 0xbf608442} },
-/**/ {{0xbb5e1df7, 0x3bd13002} },},
-/**/ {{{0xfe731c9d, 0xbf606431} },
-/**/ {{0x6e2858c0, 0xbc0509f3} },},
-/**/ {{{0xa61e1296, 0xbf604421} },
-/**/ {{0x5f5d9695, 0xbc04b556} },},
-/**/ {{{0x6de9a162, 0xbf602411} },
-/**/ {{0xe79a4e00, 0x3c042b89} },},
-/**/ {{{0x55d5889e, 0xbf600401} },
-/**/ {{0x1113f403, 0x3be8f98e} },},
-/**/ {{{0xbbc30fd4, 0xbf5fc7e2} },
-/**/ {{0x93382bc9, 0xbbfc709b} },},
-/**/ {{{0x0c1abdcd, 0xbf5f87c3} },
-/**/ {{0x76a55d1c, 0xbbf2a90d} },},
-/**/ {{{0x9cb19a68, 0xbf5f47a3} },
-/**/ {{0x76e7826b, 0x3be1b815} },},
-/**/ {{{0x6d8724e7, 0xbf5f0784} },
-/**/ {{0x2b63756d, 0xbbe72d46} },},
-/**/ {{{0x7e9adc90, 0xbf5ec765} },
-/**/ {{0x73bb17c5, 0x3beb1a66} },},
-/**/ {{{0xcfec40a8, 0xbf5e8746} },
-/**/ {{0xb5e5a553, 0x3bf11af5} },},
-/**/ {{{0x617ad077, 0xbf5e4728} },
-/**/ {{0xf57dd14f, 0x3bfb2cad} },},
-/**/ {{{0x33460b45, 0xbf5e070a} },
-/**/ {{0x4902c8d5, 0xbbf8db75} },},
-/**/ {{{0x454d705f, 0xbf5dc6ec} },
-/**/ {{0xe8a41057, 0x3bef5cc6} },},
-/**/ {{{0x97907f0f, 0xbf5d86ce} },
-/**/ {{0xdf8672ef, 0x3bed8277} },},
-/**/ {{{0x2a0eb6a3, 0xbf5d46b1} },
-/**/ {{0x3717e5ee, 0xbbc2f9c2} },},
-/**/ {{{0xfcc7966b, 0xbf5d0693} },
-/**/ {{0xab4852c6, 0x3bf4deed} },},
-/**/ {{{0x0fba9db6, 0xbf5cc677} },
-/**/ {{0x9db2a368, 0xbbf3a2b4} },},
-/**/ {{{0x62e74bd8, 0xbf5c865a} },
-/**/ {{0x58fa0c24, 0xbbd2c51d} },},
-/**/ {{{0xf64d2024, 0xbf5c463d} },
-/**/ {{0xe3a09391, 0x3bf838ca} },},
-/**/ {{{0xc9eb99ee, 0xbf5c0621} },
-/**/ {{0x61b7de71, 0xbbdc2a9e} },},
-/**/ {{{0xddc2388e, 0xbf5bc605} },
-/**/ {{0x4accb195, 0xbbea9808} },},
-/**/ {{{0x31d07b5c, 0xbf5b85ea} },
-/**/ {{0x032e030b, 0xbbd811a2} },},
-/**/ {{{0xc615e1b1, 0xbf5b45ce} },
-/**/ {{0x821e0b81, 0xbbfd5427} },},
-/**/ {{{0x9a91eaea, 0xbf5b05b3} },
-/**/ {{0x2619306b, 0x3bfffeba} },},
-/**/ {{{0xaf441661, 0xbf5ac598} },
-/**/ {{0x9eac7d15, 0x3bd22824} },},
-/**/ {{{0x042be376, 0xbf5a857e} },
-/**/ {{0x24893f0e, 0x3bc20736} },},
-/**/ {{{0x9948d188, 0xbf5a4563} },
-/**/ {{0x04d734cd, 0xbbf58ab4} },},
-/**/ {{{0x6e9a5ff9, 0xbf5a0549} },
-/**/ {{0x5723a6c3, 0xbbf22673} },},
-/**/ {{{0x84200e2c, 0xbf59c52f} },
-/**/ {{0xa538e8e1, 0x3bfc81da} },},
-/**/ {{{0xd9d95b83, 0xbf598515} },
-/**/ {{0x2a8e3feb, 0xbbfa1a37} },},
-/**/ {{{0x6fc5c767, 0xbf5944fc} },
-/**/ {{0x385159f9, 0x3bf8e1ce} },},
-/**/ {{{0x45e4d13c, 0xbf5904e3} },
-/**/ {{0x1567c7a7, 0xbbfc4737} },},
-/**/ {{{0x5c35f86e, 0xbf58c4ca} },
-/**/ {{0x23c9ae0c, 0x3bf41581} },},
-/**/ {{{0xb2b8bc65, 0xbf5884b1} },
-/**/ {{0x2b66cfb6, 0x3bf70c2c} },},
-/**/ {{{0x496c9c8d, 0xbf584499} },
-/**/ {{0xe5a11e3e, 0xbbdb9042} },},
-/**/ {{{0x20511854, 0xbf580481} },
-/**/ {{0x61bcb040, 0xbbf9cf9d} },},
-/**/ {{{0x3765af29, 0xbf57c469} },
-/**/ {{0xe26a419b, 0xbbf65ceb} },},
-/**/ {{{0x8ea9e07c, 0xbf578451} },
-/**/ {{0xb70a4088, 0xbbf1c2f5} },},
-/**/ {{{0x261d2bbf, 0xbf57443a} },
-/**/ {{0x29704ba7, 0xbbbc7b8f} },},
-/**/ {{{0xfdbf1065, 0xbf570422} },
-/**/ {{0x433ccb3b, 0x3bca0a54} },},
-/**/ {{{0x158f0de3, 0xbf56c40c} },
-/**/ {{0x207cde2d, 0x3bd9e257} },},
-/**/ {{{0x6d8ca3af, 0xbf5683f5} },
-/**/ {{0xf7b51b49, 0xbbef17a4} },},
-/**/ {{{0x05b75142, 0xbf5643df} },
-/**/ {{0x9d345bf8, 0x3be28239} },},
-/**/ {{{0xde0e9614, 0xbf5603c8} },
-/**/ {{0x0918d1bf, 0xbbde6c21} },},
-/**/ {{{0xf691f1a1, 0xbf55c3b2} },
-/**/ {{0x377de4c8, 0x3bd37d78} },},
-/**/ {{{0x4f40e365, 0xbf55839d} },
-/**/ {{0xbbf7c9d1, 0x3bf52b7d} },},
-/**/ {{{0xe81aeadd, 0xbf554387} },
-/**/ {{0x679c3d9a, 0xbbf0be6a} },},
-/**/ {{{0xc11f878a, 0xbf550372} },
-/**/ {{0xb6cdd88e, 0xbbdd9e20} },},
-/**/ {{{0xda4e38ec, 0xbf54c35d} },
-/**/ {{0x09302da0, 0xbbe3b1e7} },},
-/**/ {{{0x33a67e86, 0xbf548349} },
-/**/ {{0x085b922d, 0x3be8cba8} },},
-/**/ {{{0xcd27d7db, 0xbf544334} },
-/**/ {{0xf024ab43, 0xbba5f2c9} },},
-/**/ {{{0xa6d1c471, 0xbf540320} },
-/**/ {{0xf686cf3d, 0xbbeb31f3} },},
-/**/ {{{0xc0a3c3cf, 0xbf53c30c} },
-/**/ {{0xd4ad32f6, 0xbbf74ffe} },},
-/**/ {{{0x1a9d557e, 0xbf5382f9} },
-/**/ {{0x4acb368f, 0x3bd2e555} },},
-/**/ {{{0xb4bdf907, 0xbf5342e5} },
-/**/ {{0x07812806, 0x3be13442} },},
-/**/ {{{0x8f052df6, 0xbf5302d2} },
-/**/ {{0x70b1e756, 0x3bf5f429} },},
-/**/ {{{0xa97273d7, 0xbf52c2bf} },
-/**/ {{0x43a03fff, 0xbbf20aa3} },},
-/**/ {{{0x04054a3a, 0xbf5282ad} },
-/**/ {{0x8bebd7ad, 0xbbed4d57} },},
-/**/ {{{0x9ebd30ae, 0xbf52429a} },
-/**/ {{0x5a71c5a4, 0xbbff9529} },},
-/**/ {{{0x7999a6c6, 0xbf520288} },
-/**/ {{0x54100f9e, 0x3bfb055a} },},
-/**/ {{{0x949a2c12, 0xbf51c276} },
-/**/ {{0xa2e9f1b4, 0xbbff6978} },},
-/**/ {{{0xefbe402a, 0xbf518264} },
-/**/ {{0xbc188323, 0x3bf01fb9} },},
-/**/ {{{0x8b0562a1, 0xbf514253} },
-/**/ {{0x957bf23a, 0xbbf7c87c} },},
-/**/ {{{0x666f1311, 0xbf510242} },
-/**/ {{0xc8be6880, 0x3bdc2cb9} },},
-/**/ {{{0x81fad111, 0xbf50c231} },
-/**/ {{0x07ba000d, 0xbbf59fc1} },},
-/**/ {{{0xdda81c3d, 0xbf508220} },
-/**/ {{0xbf5c8a0b, 0xbbf06a0a} },},
-/**/ {{{0x79767431, 0xbf504210} },
-/**/ {{0xa9a705bc, 0x3bf3a6cf} },},
-/**/ {{{0x55655889, 0xbf500200} },
-/**/ {{0xbf0fa436, 0xbbe9abe6} },},
-/**/ {{{0xe2e891cc, 0xbf4f83e0} },
-/**/ {{0x1b81bf62, 0x3be4aa59} },},
-/**/ {{{0x9b4589ce, 0xbf4f03c1} },
-/**/ {{0x8a47f50a, 0xbbe60518} },},
-/**/ {{{0xd3e0985f, 0xbf4e83a2} },
-/**/ {{0x5ef17e96, 0x3bed32d8} },},
-/**/ {{{0x8cb8bcc3, 0xbf4e0384} },
-/**/ {{0xf09afa4d, 0xbbeb7b30} },},
-/**/ {{{0xc5ccf647, 0xbf4d8366} },
-/**/ {{0xf586cec2, 0xbbd527fc} },},
-/**/ {{{0x7f1c4437, 0xbf4d0349} },
-/**/ {{0x4a686886, 0x3bc2bcf0} },},
-/**/ {{{0xb8a5a5e3, 0xbf4c832c} },
-/**/ {{0x721c2ebe, 0x3bc98f93} },},
-/**/ {{{0x72681a9e, 0xbf4c0310} },
-/**/ {{0xb5308d22, 0xbbe20f00} },},
-/**/ {{{0xac62a1bf, 0xbf4b82f4} },
-/**/ {{0x9737b561, 0xbbe1edd0} },},
-/**/ {{{0x66943a9f, 0xbf4b02d9} },
-/**/ {{0x23f894a1, 0xbbcc950b} },},
-/**/ {{{0xa0fbe49a, 0xbf4a82be} },
-/**/ {{0x866bc982, 0xbb81da04} },},
-/**/ {{{0x5b989f0f, 0xbf4a02a4} },
-/**/ {{0x9d76196e, 0xbbd9114d} },},
-/**/ {{{0x96696961, 0xbf49828a} },
-/**/ {{0xd3292fd6, 0x3bc10d20} },},
-/**/ {{{0x516d42f4, 0xbf490271} },
-/**/ {{0x2e9a5dd5, 0xbbee53a3} },},
-/**/ {{{0x8ca32b32, 0xbf488258} },
-/**/ {{0xd18f8004, 0xbbc55af5} },},
-/**/ {{{0x480a2185, 0xbf480240} },
-/**/ {{0xa9b0178a, 0xbbb32d23} },},
-/**/ {{{0x83a1255c, 0xbf478228} },
-/**/ {{0x8152093a, 0x3be84cc3} },},
-/**/ {{{0x3f673627, 0xbf470211} },
-/**/ {{0xf4881c71, 0xbbd0055a} },},
-/**/ {{{0x7b5b535c, 0xbf4681fa} },
-/**/ {{0xb98336ea, 0x3bd2b73f} },},
-/**/ {{{0x377c7c71, 0xbf4601e4} },
-/**/ {{0x2ed05089, 0xbbcdcbed} },},
-/**/ {{{0x73c9b0e1, 0xbf4581ce} },
-/**/ {{0x61414697, 0xbbdda0c2} },},
-/**/ {{{0x3041f02a, 0xbf4501b9} },
-/**/ {{0x22f8b33c, 0x3bee5d53} },},
-/**/ {{{0x6ce439ca, 0xbf4481a4} },
-/**/ {{0x9c25c999, 0xbbe5512f} },},
-/**/ {{{0x29af8d47, 0xbf440190} },
-/**/ {{0xa4df0dfd, 0x3b7f48c2} },},
-/**/ {{{0x66a2ea26, 0xbf43817c} },
-/**/ {{0x517febd8, 0x3bd157c0} },},
-/**/ {{{0x23bd4ff0, 0xbf430169} },
-/**/ {{0x0176d244, 0xbbe2e229} },},
-/**/ {{{0x60fdbe33, 0xbf428156} },
-/**/ {{0x175812b3, 0x3be64664} },},
-/**/ {{{0x1e63347c, 0xbf420144} },
-/**/ {{0xd9355524, 0xbbe39ab4} },},
-/**/ {{{0x5becb260, 0xbf418132} },
-/**/ {{0xb6e1edc9, 0x3be74b27} },},
-/**/ {{{0x19993772, 0xbf410121} },
-/**/ {{0x393ab56a, 0xbbaa390b} },},
-/**/ {{{0x5767c34c, 0xbf408110} },
-/**/ {{0xf8c7783b, 0x3bd128e6} },},
-/**/ {{{0x15575589, 0xbf400100} },
-/**/ {{0xf23ef222, 0x3bec8863} },},
-/**/ {{{0xa6cddb8d, 0xbf3f01e0} },
-/**/ {{0xcdd29c3f, 0x3b8a9419} },},
-/**/ {{{0x232b174e, 0xbf3e01c2} },
-/**/ {{0xd5f5b191, 0xbbc7cf55} },},
-/**/ {{{0x9fc45d9e, 0xbf3d01a4} },
-/**/ {{0xb5038e7e, 0x3bddc58f} },},
-/**/ {{{0x1c97adca, 0xbf3c0188} },
-/**/ {{0xbb933e41, 0x3bc0238d} },},
-/**/ {{{0x99a30728, 0xbf3b016c} },
-/**/ {{0xc3c43664, 0xbbabde04} },},
-/**/ {{{0x16e46913, 0xbf3a0152} },
-/**/ {{0x5adc3673, 0x3bafe081} },},
-/**/ {{{0x9459d2eb, 0xbf390138} },
-/**/ {{0xc2a33d26, 0xbbd949da} },},
-/**/ {{{0x12014418, 0xbf380120} },
-/**/ {{0xf76e0326, 0xbbd3acbc} },},
-/**/ {{{0x8fd8bc07, 0xbf370108} },
-/**/ {{0x4cd6ce34, 0x3bdbde09} },},
-/**/ {{{0x0dde3a29, 0xbf3600f2} },
-/**/ {{0x05442a35, 0xbbb0bc28} },},
-/**/ {{{0x8c0fbdf9, 0xbf3500dc} },
-/**/ {{0x0908cbf7, 0x3bd21c68} },},
-/**/ {{{0x0a6b46f4, 0xbf3400c8} },
-/**/ {{0x0f107564, 0xbbdbd35e} },},
-/**/ {{{0x88eed4a1, 0xbf3300b4} },
-/**/ {{0x49a3dcb8, 0xbbc22067} },},
-/**/ {{{0x0798668a, 0xbf3200a2} },
-/**/ {{0xe7c5d0e5, 0x3bcdb7f0} },},
-/**/ {{{0x8665fc3f, 0xbf310090} },
-/**/ {{0xc7f9d69c, 0xbbd00add} },},
-/**/ {{{0x05559559, 0xbf300080} },
-/**/ {{0xa0e20e2f, 0x3bddd332} },},
-/**/ {{{0x08ca62e5, 0xbf2e00e1} },
-/**/ {{0x3a04bb77, 0xbbb15ff9} },},
-/**/ {{{0x0725a061, 0xbf2c00c4} },
-/**/ {{0xcc052f3e, 0x3bc88ab0} },},
-/**/ {{{0x05b8e275, 0xbf2a00a9} },
-/**/ {{0xf5f3cbcf, 0xbbcbba1a} },},
-/**/ {{{0x04802882, 0xbf280090} },
-/**/ {{0xa5bd7bd0, 0x3bcec900} },},
-/**/ {{{0x037771ef, 0xbf260079} },
-/**/ {{0x9b7b54fa, 0x3bb77ea0} },},
-/**/ {{{0x029abe33, 0xbf240064} },
-/**/ {{0x3ae68d18, 0xbbc1bbf0} },},
-/**/ {{{0x01e60cd1, 0xbf220051} },
-/**/ {{0x2b45cfcd, 0x3bb1dcd9} },},
-/**/ {{{0x01555d56, 0xbf200040} },
-/**/ {{0x863f53f6, 0x3bcddd88} },},
-/**/ {{{0x01c95eb7, 0xbf1c0062} },
-/**/ {{0xaa4dfd9a, 0x3bbd88f7} },},
-/**/ {{{0x01200510, 0xbf180048} },
-/**/ {{0x4f3db50b, 0xbb984d46} },},
-/**/ {{{0x00a6ad1c, 0xbf140032} },
-/**/ {{0x28ff1135, 0x3bb2e44b} },},
-/**/ {{{0x00555655, 0xbf100020} },
-/**/ {{0xccd5f17f, 0xbbb62224} },},
-/**/ {{{0x004800a2, 0xbf080024} },
-/**/ {{0x8d690542, 0xbb484d09} },},
-/**/ {{{0x00155575, 0xbf000010} },
-/**/ {{0x37779c0a, 0xbba56222} },},
-/**/ {{{0x00055559, 0xbef00008} },
-/**/ {{0x22cccd5f, 0xbb955622} },},
-/**/ {{{0x00000000, 0x00000000} },
-/**/ {{0x00000000, 0x00000000} },},
-/**/ {{{0x000aaaa3, 0x3eeffff0} },
-/**/ {{0xbd110fec, 0xbb8553bb} },},
-/**/ {{{0x002aaa6b, 0x3effffe0} },
-/**/ {{0xe6661d42, 0xbb953bbb} },},
-/**/ {{{0x0047ff5e, 0x3f07ffdc} },
-/**/ {{0x0d69020e, 0x3b484c90} },},
-/**/ {{{0x00aaa8ab, 0x3f0fffc0} },
-/**/ {{0x10fec82c, 0xbba3bbc1} },},
-/**/ {{{0x00a6a83a, 0x3f13ffce} },
-/**/ {{0x81546808, 0xbbb2e45f} },},
-/**/ {{{0x011ffaf0, 0x3f17ffb8} },
-/**/ {{0x4f3d9b6a, 0x3b984c53} },},
-/**/ {{{0x01c94bf5, 0x3f1bff9e} },
-/**/ {{0xdaa368ee, 0xbbbd8990} },},
-/**/ {{{0x02aa9aab, 0x3f1fff80} },
-/**/ {{0x78af0afc, 0x3b910e66} },},
-/**/ {{{0x01e5f330, 0x3f21ffaf} },
-/**/ {{0x26467402, 0xbbb1df8d} },},
-/**/ {{{0x029a9723, 0x3f23ff9c} },
-/**/ {{0x303b23b1, 0x3bc1b965} },},
-/**/ {{{0x037738be, 0x3f25ff87} },
-/**/ {{0x53d3dc06, 0xbbb787a3} },},
-/**/ {{{0x047fd782, 0x3f27ff70} },
-/**/ {{0xa5c0aff0, 0xbbced098} },},
-/**/ {{{0x05b872e4, 0x3f29ff57} },
-/**/ {{0x81c30d42, 0x3bcbadd4} },},
-/**/ {{{0x07250a51, 0x3f2bff3c} },
-/**/ {{0xd6bad8c1, 0xbbc89dd6} },},
-/**/ {{{0x08c99d24, 0x3f2dff1f} },
-/**/ {{0xaede8ad0, 0x3bb12609} },},
-/**/ {{{0x0aaa2ab1, 0x3f2fff00} },
-/**/ {{0x4dc4e3dc, 0x3ba0bbc0} },},
-/**/ {{{0x8665591f, 0x3f30ff6f} },
-/**/ {{0x80357b54, 0xbbd013d3} },},
-/**/ {{{0x07979982, 0x3f31ff5e} },
-/**/ {{0x4817ebcd, 0xbbce0e70} },},
-/**/ {{{0x88edd619, 0x3f32ff4b} },
-/**/ {{0xc582abc3, 0xbbd72b9e} },},
-/**/ {{{0x0a6a0e74, 0x3f33ff38} },
-/**/ {{0xb95bc1fe, 0x3bdb81fc} },},
-/**/ {{{0x8c0e4220, 0x3f34ff23} },
-/**/ {{0x9b549aae, 0x3bcaed12} },},
-/**/ {{{0x0ddc70a1, 0x3f35ff0e} },
-/**/ {{0xd97a3c05, 0x3bacf6f3} },},
-/**/ {{{0x8fd69976, 0x3f36fef7} },
-/**/ {{0x6f810a3c, 0x3bab2dcf} },},
-/**/ {{{0x11febc18, 0x3f37fee0} },
-/**/ {{0xf5d3f323, 0x3bd2b9bc} },},
-/**/ {{{0x9456d7fb, 0x3f38fec7} },
-/**/ {{0x6eaa1d6a, 0xbbbfb258} },},
-/**/ {{{0x16e0ec8b, 0x3f39feae} },
-/**/ {{0xceeb34b1, 0xbbb6137a} },},
-/**/ {{{0x999ef930, 0x3f3afe93} },
-/**/ {{0xdc639b08, 0xbbde70e0} },},
-/**/ {{{0x1c92fd4a, 0x3f3bfe78} },
-/**/ {{0x713cc126, 0xbbc4ed10} },},
-/**/ {{{0x9fbef835, 0x3f3cfe5b} },
-/**/ {{0xcc0e81bd, 0xbb873d63} },},
-/**/ {{{0x2324e946, 0x3f3dfe3e} },
-/**/ {{0x62dd5deb, 0x3bc09164} },},
-/**/ {{{0xa6c6cfcc, 0x3f3efe1f} },
-/**/ {{0x3512d15c, 0x3bdac2da} },},
-/**/ {{{0x2aa6ab11, 0x3f3ffe00} },
-/**/ {{0x62cc632d, 0x3b999e2b} },},
-/**/ {{{0xd7633d2c, 0x3f407eef} },
-/**/ {{0x63ff6024, 0xbbebc98b} },},
-/**/ {{{0x19941e6e, 0x3f40fedf} },
-/**/ {{0xe0aa6338, 0xbbb194c2} },},
-/**/ {{{0xdbe6f8eb, 0x3f417ecd} },
-/**/ {{0x57b0f571, 0x3be4241b} },},
-/**/ {{{0x1e5ccc3c, 0x3f41febc} },
-/**/ {{0x895d3592, 0x3bdc657d} },},
-/**/ {{{0xe0f697f6, 0x3f427ea9} },
-/**/ {{0x1c0ec17c, 0x3be35a5d} },},
-/**/ {{{0x23b55bac, 0x3f42fe97} },
-/**/ {{0x3e538464, 0x3bd6cfb7} },},
-/**/ {{{0xe69a16ed, 0x3f437e83} },
-/**/ {{0x7cef2478, 0x3bee96f7} },},
-/**/ {{{0x29a5c947, 0x3f43fe70} },
-/**/ {{0xbf46e36a, 0xbbd4d578} },},
-/**/ {{{0xecd97242, 0x3f447e5b} },
-/**/ {{0x3ff7dd44, 0xbbc9eb66} },},
-/**/ {{{0x30361165, 0x3f44fe47} },
-/**/ {{0x7e93f2fd, 0x3be400d7} },},
-/**/ {{{0xf3bca635, 0x3f457e31} },
-/**/ {{0xd375017f, 0xbbe0e2a2} },},
-/**/ {{{0x376e3031, 0x3f45fe1c} },
-/**/ {{0x8a5ae7f6, 0xbbd524eb} },},
-/**/ {{{0xfb4baed7, 0x3f467e05} },
-/**/ {{0x4e85c4e9, 0x3be204fb} },},
-/**/ {{{0x3f5621a3, 0x3f46fdef} },
-/**/ {{0x34886d52, 0xbbdf09d7} },},
-/**/ {{{0x038e880b, 0x3f477dd8} },
-/**/ {{0x14e596a3, 0xbbb8900e} },},
-/**/ {{{0x47f5e185, 0x3f47fdc0} },
-/**/ {{0x57d202d3, 0xbbebfa5c} },},
-/**/ {{{0x0c8d2d81, 0x3f487da8} },
-/**/ {{0xd68c0614, 0x3be2f6ae} },},
-/**/ {{{0x51556b70, 0x3f48fd8f} },
-/**/ {{0xe08fd201, 0xbbd0f4f2} },},
-/**/ {{{0x164f9abc, 0x3f497d76} },
-/**/ {{0xa871af60, 0x3b5296b7} },},
-/**/ {{{0x5b7cbace, 0x3f49fd5c} },
-/**/ {{0x9f17d42d, 0x3beb6ed4} },},
-/**/ {{{0x20ddcb0d, 0x3f4a7d42} },
-/**/ {{0x67c30397, 0xbbcb1149} },},
-/**/ {{{0x6673cada, 0x3f4afd27} },
-/**/ {{0x45da594f, 0x3bd32225} },},
-/**/ {{{0x2c3fb996, 0x3f4b7d0c} },
-/**/ {{0x208d4630, 0xbbb68893} },},
-/**/ {{{0x7242969d, 0x3f4bfcf0} },
-/**/ {{0x2b3efe1c, 0x3bc5db4d} },},
-/**/ {{{0x387d6149, 0x3f4c7cd4} },
-/**/ {{0xed57d98a, 0x3be46eff} },},
-/**/ {{{0x7ef118f1, 0x3f4cfcb7} },
-/**/ {{0x06f300fb, 0x3becc554} },},
-/**/ {{{0x459ebce9, 0x3f4d7c9a} },
-/**/ {{0x13638eb6, 0x3be1d251} },},
-/**/ {{{0x8c874c82, 0x3f4dfc7c} },
-/**/ {{0xd57a176f, 0xbbe863e9} },},
-/**/ {{{0x53abc708, 0x3f4e7c5e} },
-/**/ {{0x9528e50d, 0x3be2d95c} },},
-/**/ {{{0x9b0d2bc8, 0x3f4efc3f} },
-/**/ {{0xa5f5b8b7, 0x3bd1e8e8} },},
-/**/ {{{0x62ac7a09, 0x3f4f7c20} },
-/**/ {{0x17802a46, 0x3b5c8123} },},
-/**/ {{{0xaa8ab110, 0x3f4ffc00} },
-/**/ {{0xeb9b6cdb, 0xbbe0fecb} },},
-/**/ {{{0x3954680f, 0x3f503df0} },
-/**/ {{0x1c693678, 0x3bdac89b} },},
-/**/ {{{0xdd83eb3a, 0x3f507ddf} },
-/**/ {{0x0a75ad5f, 0xbbf638f6} },},
-/**/ {{{0x41d461a5, 0x3f50bdcf} },
-/**/ {{0x45f05b10, 0x3bfd4bc9} },},
-/**/ {{{0x66464aef, 0x3f50fdbe} },
-/**/ {{0x6abbf59c, 0xbbbd0554} },},
-/**/ {{{0x4ada26b1, 0x3f513dad} },
-/**/ {{0x6036fe6f, 0x3be38c65} },},
-/**/ {{{0xef907485, 0x3f517d9b} },
-/**/ {{0xf158bbc3, 0x3bfdc8a1} },},
-/**/ {{{0x5469b404, 0x3f51bd8a} },
-/**/ {{0x55632e3f, 0xbbdea231} },},
-/**/ {{{0x796664c3, 0x3f51fd78} },
-/**/ {{0x2edb73c2, 0xbbe00849} },},
-/**/ {{{0x5e870657, 0x3f523d66} },
-/**/ {{0x0789343e, 0x3bfba943} },},
-/**/ {{{0x03cc1855, 0x3f527d54} },
-/**/ {{0xeafafc52, 0x3bc5f644} },},
-/**/ {{{0x69361a4e, 0x3f52bd41} },
-/**/ {{0xa4a6e79f, 0xbbf2f743} },},
-/**/ {{{0x8ec58bd2, 0x3f52fd2e} },
-/**/ {{0x5ceb1abf, 0xbbd4f786} },},
-/**/ {{{0x747aec71, 0x3f533d1b} },
-/**/ {{0x49dc497d, 0xbbf369e3} },},
-/**/ {{{0x1a56bbb8, 0x3f537d08} },
-/**/ {{0x3726b14a, 0xbbfc5e6f} },},
-/**/ {{{0x80597933, 0x3f53bcf4} },
-/**/ {{0x808f75a7, 0xbbfe8b82} },},
-/**/ {{{0xa683a46c, 0x3f53fce0} },
-/**/ {{0x9cd06ae6, 0x3be02719} },},
-/**/ {{{0x8cd5bced, 0x3f543ccc} },
-/**/ {{0x758f80f8, 0x3bf9f98d} },},
-/**/ {{{0x3350423e, 0x3f547cb8} },
-/**/ {{0x48401f45, 0xbbd79c3d} },},
-/**/ {{{0x99f3b3e4, 0x3f54bca3} },
-/**/ {{0x2fba8948, 0xbbf422b8} },},
-/**/ {{{0xc0c09163, 0x3f54fc8e} },
-/**/ {{0xf4044be8, 0x3bf32cc1} },},
-/**/ {{{0xa7b75a40, 0x3f553c79} },
-/**/ {{0xf2249008, 0xbbe72cac} },},
-/**/ {{{0x4ed88dfb, 0x3f557c64} },
-/**/ {{0x459a204f, 0xbbe7183c} },},
-/**/ {{{0xb624ac14, 0x3f55bc4e} },
-/**/ {{0xba26d3d7, 0x3bf8aa64} },},
-/**/ {{{0xdd9c340b, 0x3f55fc38} },
-/**/ {{0x45fa193c, 0x3bdbb2ff} },},
-/**/ {{{0xc53fa55c, 0x3f563c22} },
-/**/ {{0x0484397b, 0x3bd67249} },},
-/**/ {{{0x6d0f7f83, 0x3f567c0c} },
-/**/ {{0xf1e73188, 0xbbd183d7} },},
-/**/ {{{0xd50c41fa, 0x3f56bbf5} },
-/**/ {{0x4ab68187, 0xbbef433d} },},
-/**/ {{{0xfd366c39, 0x3f56fbde} },
-/**/ {{0x66e09e58, 0x3be796b8} },},
-/**/ {{{0xe58e7db8, 0x3f573bc7} },
-/**/ {{0x81e6e7e6, 0x3bf65ec5} },},
-/**/ {{{0x8e14f5ed, 0x3f577bb0} },
-/**/ {{0xa9463a9c, 0xbbdb944d} },},
-/**/ {{{0xf6ca544b, 0x3f57bb98} },
-/**/ {{0xc5eda344, 0xbbc396ec} },},
-/**/ {{{0x1faf1845, 0x3f57fb81} },
-/**/ {{0xbb624f97, 0x3beb9e6d} },},
-/**/ {{{0x08c3c14d, 0x3f583b69} },
-/**/ {{0xe6295bf2, 0xbbe6ee13} },},
-/**/ {{{0xb208ced1, 0x3f587b50} },
-/**/ {{0x6ca19875, 0x3bfcf1a5} },},
-/**/ {{{0x1b7ec041, 0x3f58bb38} },
-/**/ {{0x07b4fc7e, 0x3bf2d181} },},
-/**/ {{{0x45261509, 0x3f58fb1f} },
-/**/ {{0x21bad336, 0x3bc419c5} },},
-/**/ {{{0x2eff4c94, 0x3f593b06} },
-/**/ {{0x700b305b, 0xbbdc2a4c} },},
-/**/ {{{0xd90ae64c, 0x3f597aec} },
-/**/ {{0xa23f359c, 0xbbfc53d3} },},
-/**/ {{{0x43496198, 0x3f59bad3} },
-/**/ {{0xaed6b50f, 0x3bf0c270} },},
-/**/ {{{0x6dbb3de1, 0x3f59fab9} },
-/**/ {{0x7a8be031, 0xbbf11464} },},
-/**/ {{{0x5860fa8a, 0x3f5a3a9f} },
-/**/ {{0x470dbe32, 0x3beae9e7} },},
-/**/ {{{0x033b16f8, 0x3f5a7a85} },
-/**/ {{0xda1f8579, 0x3bfc4721} },},
-/**/ {{{0x6e4a128e, 0x3f5aba6a} },
-/**/ {{0x029258ce, 0xbbf41852} },},
-/**/ {{{0x998e6cab, 0x3f5afa4f} },
-/**/ {{0x2eb18782, 0xbbf28584} },},
-/**/ {{{0x8508a4af, 0x3f5b3a34} },
-/**/ {{0x23241a2c, 0xbbea7970} },},
-/**/ {{{0x30b939f8, 0x3f5b7a19} },
-/**/ {{0x600551b6, 0xbbf1d8db} },},
-/**/ {{{0x9ca0abe2, 0x3f5bb9fd} },
-/**/ {{0x8c26cc71, 0xbbeaa412} },},
-/**/ {{{0xc8bf79c8, 0x3f5bf9e1} },
-/**/ {{0x30427cfc, 0xbbe7f81b} },},
-/**/ {{{0xb5162303, 0x3f5c39c5} },
-/**/ {{0xd1f134e1, 0x3bd9ec5f} },},
-/**/ {{{0x61a526eb, 0x3f5c79a9} },
-/**/ {{0x8980e47d, 0x3bff0cb0} },},
-/**/ {{{0xce6d04d7, 0x3f5cb98c} },
-/**/ {{0xe84ca4e2, 0x3bf35aca} },},
-/**/ {{{0xfb6e3c1b, 0x3f5cf96f} },
-/**/ {{0x1b0bd69f, 0x3bf9b1b8} },},
-/**/ {{{0xe8a94c0b, 0x3f5d3952} },
-/**/ {{0x3ce51832, 0x3be21310} },},
-/**/ {{{0x961eb3f8, 0x3f5d7935} },
-/**/ {{0x840c58ce, 0x3bf90786} },},
-/**/ {{{0x03cef334, 0x3f5db918} },
-/**/ {{0xf2dfb3f4, 0xbbfe0048} },},
-/**/ {{{0x31ba890b, 0x3f5df8fa} },
-/**/ {{0x3e295bec, 0x3bfcf652} },},
-/**/ {{{0x1fe1f4ce, 0x3f5e38dc} },
-/**/ {{0x151c9300, 0xbbfc5ebe} },},
-/**/ {{{0xce45b5c6, 0x3f5e78bd} },
-/**/ {{0x8a25b9c7, 0xbbef2cc4} },},
-/**/ {{{0x3ce64b3e, 0x3f5eb89f} },
-/**/ {{0xa6fea7bd, 0x3bfe6d27} },},
-/**/ {{{0x6bc43481, 0x3f5ef880} },
-/**/ {{0x914a6dab, 0xbbf68037} },},
-/**/ {{{0x5adff0d4, 0x3f5f3861} },
-/**/ {{0xf909e0e6, 0xbbf1d2f3} },},
-/**/ {{{0x0a39ff7e, 0x3f5f7842} },
-/**/ {{0xff1e1f71, 0xbbf64661} },},
-/**/ {{{0x79d2dfc3, 0x3f5fb822} },
-/**/ {{0x5a6f9e9a, 0xbbd76ce8} },},
-/**/ {{{0xa9ab10e6, 0x3f5ff802} },
-/**/ {{0xa153e3b2, 0x3bfe29e3} },},
-/**/ {{{0x4ce18915, 0x3f601bf1} },
-/**/ {{0xa3a73044, 0xbbe57c28} },},
-/**/ {{{0x250db166, 0x3f603be1} },
-/**/ {{0xc1ad9590, 0x3c0fd271} },},
-/**/ {{{0xdd5a4107, 0x3f605bd0} },
-/**/ {{0xc424c676, 0x3bfe4b5d} },},
-/**/ {{{0x75c77796, 0x3f607bc0} },
-/**/ {{0xc0eff1ba, 0xbc068804} },},
-/**/ {{{0xee5594b0, 0x3f609baf} },
-/**/ {{0x51dbded5, 0xbc0ff798} },},
-/**/ {{{0x4704d7f2, 0x3f60bb9f} },
-/**/ {{0x2d5aba70, 0xbbf70ef4} },},
-/**/ {{{0x7fd580f9, 0x3f60db8e} },
-/**/ {{0x7ae804b5, 0xbbeccb65} },},
-/**/ {{{0x98c7cf60, 0x3f60fb7d} },
-/**/ {{0x1775134d, 0x3bfede2f} },},
-/**/ {{{0x91dc02c3, 0x3f611b6c} },
-/**/ {{0x91ca4a67, 0xbc04d41e} },},
-/**/ {{{0x6b125aba, 0x3f613b5b} },
-/**/ {{0x4a12201d, 0x3bfe6d0c} },},
-/**/ {{{0x246b16e0, 0x3f615b4a} },
-/**/ {{0x4d4238d3, 0x3bfe507d} },},
-/**/ {{{0xbde676cd, 0x3f617b38} },
-/**/ {{0x0640462a, 0x3bfe0272} },},
-/**/ {{{0x3784ba19, 0x3f619b27} },
-/**/ {{0x02285659, 0x3bd94ab3} },},
-/**/ {{{0x9146205b, 0x3f61bb15} },
-/**/ {{0x1cc35b7b, 0xbbff1e2e} },},
-/**/ {{{0xcb2ae929, 0x3f61db03} },
-/**/ {{0x12f6bf8d, 0xbc03ee8e} },},
-/**/ {{{0xe5335418, 0x3f61faf1} },
-/**/ {{0x7b7d619b, 0x3c0bae5f} },},
-/**/ {{{0xdf5fa0bf, 0x3f621adf} },
-/**/ {{0xb3b731b0, 0xbbf5546a} },},
-/**/ {{{0xb9b00eb0, 0x3f623acd} },
-/**/ {{0x105fd253, 0xbbafb2b0} },},
-/**/ {{{0x7424dd7f, 0x3f625abb} },
-/**/ {{0xca53444b, 0x3c011647} },},
-/**/ {{{0x0ebe4cbf, 0x3f627aa9} },
-/**/ {{0x592f3be8, 0x3c01678f} },},
-/**/ {{{0x897c9c02, 0x3f629a96} },
-/**/ {{0x4347451d, 0xbbef2b12} },},
-/**/ {{{0xe4600ad8, 0x3f62ba83} },
-/**/ {{0xb2a477bc, 0x3bfb5bb7} },},
-/**/ {{{0x1f68d8d3, 0x3f62da71} },
-/**/ {{0x7a5822e4, 0xbc0590e1} },},
-/**/ {{{0x3a974581, 0x3f62fa5e} },
-/**/ {{0x53123101, 0xbbf0f2e5} },},
-/**/ {{{0x35eb9072, 0x3f631a4b} },
-/**/ {{0x0e3f5fde, 0xbc018db4} },},
-/**/ {{{0x1165f933, 0x3f633a38} },
-/**/ {{0x8d0afb38, 0x3c0921d5} },},
-/**/ {{{0xcd06bf53, 0x3f635a24} },
-/**/ {{0xb5791b80, 0x3c01f6ba} },},
-/**/ {{{0x68ce225e, 0x3f637a11} },
-/**/ {{0xa1894236, 0x3bde2af8} },},
-/**/ {{{0xe4bc61e0, 0x3f6399fd} },
-/**/ {{0xd0f06ff3, 0xbc062a48} },},
-/**/ {{{0x40d1bd63, 0x3f63b9ea} },
-/**/ {{0x4b4f9c11, 0x3bffc80c} },},
-/**/ {{{0x7d0e7473, 0x3f63d9d6} },
-/**/ {{0x6a92c891, 0x3c02219b} },},
-/**/ {{{0x9972c699, 0x3f63f9c2} },
-/**/ {{0x790ade9e, 0x3c0d3590} },},
-/**/ {{{0x95fef35f, 0x3f6419ae} },
-/**/ {{0x792a458c, 0xbc01c279} },},
-/**/ {{{0x72b33a4b, 0x3f64399a} },
-/**/ {{0x327bffae, 0x3c02ce64} },},
-/**/ {{{0x2f8fdae7, 0x3f645986} },
-/**/ {{0xd231155c, 0xbc070aec} },},
-/**/ {{{0xcc9514b7, 0x3f647971} },
-/**/ {{0xe4bbf776, 0x3c0f373d} },},
-/**/ {{{0x49c32744, 0x3f64995d} },
-/**/ {{0xbf22b2a7, 0xbbf6d7e5} },},
-/**/ {{{0xa71a5211, 0x3f64b948} },
-/**/ {{0x64fe2936, 0xbbedec69} },},
-/**/ {{{0xe49ad4a3, 0x3f64d933} },
-/**/ {{0xabee4257, 0x3bf5fc4b} },},
-/**/ {{{0x0244ee7e, 0x3f64f91f} },
-/**/ {{0x3cd1474f, 0x3c0c6fe3} },},
-/**/ {{{0x0018df26, 0x3f65190a} },
-/**/ {{0xd11e7fa5, 0xbc023957} },},
-/**/ {{{0xde16e61b, 0x3f6538f4} },
-/**/ {{0x55380346, 0x3c006c31} },},
-/**/ {{{0x9c3f42e1, 0x3f6558df} },
-/**/ {{0xc4a5134c, 0xbc09b7d4} },},
-/**/ {{{0x3a9234f7, 0x3f6578ca} },
-/**/ {{0x2772c19c, 0xbc0e3f10} },},
-/**/ {{{0xb90ffbdd, 0x3f6598b4} },
-/**/ {{0x5592b468, 0x3be6f110} },},
-/**/ {{{0x17b8d714, 0x3f65b89f} },
-/**/ {{0xb251ace2, 0xbc0a5fea} },},
-/**/ {{{0x568d0619, 0x3f65d889} },
-/**/ {{0x315da285, 0xbc0aacc9} },},
-/**/ {{{0x758cc86a, 0x3f65f873} },
-/**/ {{0xba64d81a, 0xbbeb0782} },},
-/**/ {{{0x74b85d85, 0x3f66185d} },
-/**/ {{0x8e1eb3fa, 0xbc09b459} },},
-/**/ {{{0x541004e5, 0x3f663847} },
-/**/ {{0x1d86e863, 0x3bce9c22} },},
-/**/ {{{0x1393fe07, 0x3f665831} },
-/**/ {{0xcf37ee90, 0xbbfbeb77} },},
-/**/ {{{0xb3448865, 0x3f66781a} },
-/**/ {{0xc252e3c9, 0xbc02dc68} },},
-/**/ {{{0x3321e379, 0x3f669804} },
-/**/ {{0xb40b3741, 0xbbe73a0b} },},
- };
-
-#endif
-#endif
diff --git a/sysdeps/ieee754/dbl-64/upow.h b/sysdeps/ieee754/dbl-64/upow.h
deleted file mode 100644
index c1b9d8e3cc..0000000000
--- a/sysdeps/ieee754/dbl-64/upow.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * IBM Accurate Mathematical Library
- * Written by International Business Machines Corp.
- * Copyright (C) 2001-2018 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 by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program 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 this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-/******************************************************************/
-/* */
-/* MODULE_NAME:upow.h */
-/* */
-/* common data and variables prototype and definition */
-/******************************************************************/
-
-#ifndef UPOW_H
-#define UPOW_H
-
-#include "mydefs.h"
-
-#ifdef BIG_ENDI
- const static mynumber
-/**/ nZERO = {{0x80000000, 0}}, /* -0.0 */
-/**/ INF = {{0x7ff00000, 0x00000000}}, /* INF */
-/**/ nINF = {{0xfff00000, 0x00000000}}, /* -INF */
-/**/ ln2a = {{0x3fe62e42, 0xfefa3800}}, /* ln(2) 43 bits */
-/**/ ln2b = {{0x3d2ef357, 0x93c76730}}, /* ln(2)-ln2a */
-/**/ bigu = {{0x4297ffff, 0xfffffd2c}}, /* 1.5*2**42 -724*2**-10 */
-/**/ bigv = {{0x4207ffff, 0xfff8016a}}, /* 1.5*2**33-1+362*2**-19 */
-/**/ t52 = {{0x43300000, 0x00000000}}, /* 2**52 */
-/**/ two52e = {{0x43300000, 0x000003ff}}; /* 2**52' */
-
-#else
-#ifdef LITTLE_ENDI
- const static mynumber
-/**/ nZERO = {{0, 0x80000000}}, /* -0.0 */
-/**/ INF = {{0x00000000, 0x7ff00000}}, /* INF */
-/**/ nINF = {{0x00000000, 0xfff00000}}, /* -INF */
-/**/ ln2a = {{0xfefa3800, 0x3fe62e42}}, /* ln(2) 43 bits */
-/**/ ln2b = {{0x93c76730, 0x3d2ef357}}, /* ln(2)-ln2a */
-/**/ bigu = {{0xfffffd2c, 0x4297ffff}}, /* 1.5*2**42 -724*2**-10 */
-/**/ bigv = {{0xfff8016a, 0x4207ffff}}, /* 1.5*2**33-1+362*2**-19 */
-/**/ t52 = {{0x00000000, 0x43300000}}, /* 2**52 */
-/**/ two52e = {{0x000003ff, 0x43300000}}; /* 2**52' */
-
-#endif
-#endif
-
-const static double p2=-0.5, p3 = 3.3333333333333333333e-1, p4 = -0.25,
- q2 = -0.5, q3 = 3.3333333333331404e-01, q4 = -2.4999999999996436e-01,
- q5 = 2.0000010500004459e-01, q6 = -1.6666678916688004e-01,
- r3 = 3.33333333333333333372884096563030E-01,
- r4 = -2.50000000000000000213574153875908E-01,
- r5 = 1.99999999999683593814072199830603E-01,
- r6 = -1.66666666666065494878165510225378E-01,
- r7 = 1.42857517857114380606360005067609E-01,
- r8 = -1.25000449999974370683775964001702E-01,
- s3 = 0.333251953125000000e0,
- ss3 = 8.138020833333333333e-05,
- s4 = -2.500000000000000000e-01,
- s5 = 1.999999999999960937e-01,
- s6 = -1.666666666666592447e-01,
- s7 = 1.428571845238194705e-01,
- s8 = -1.250000500000149097e-01;
-#endif
diff --git a/sysdeps/ieee754/dbl-64/upow.tbl b/sysdeps/ieee754/dbl-64/upow.tbl
deleted file mode 100644
index c1ad333583..0000000000
--- a/sysdeps/ieee754/dbl-64/upow.tbl
+++ /dev/null
@@ -1,10188 +0,0 @@
-/*
- * IBM Accurate Mathematical Library
- * Written by International Business Machines Corp.
- * Copyright (C) 2001-2018 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 by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program 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 this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-/****************************************************************/
-/* TABLES FOR THE upow() FUNCTION */
-/****************************************************************/
-
-
-
-#ifdef BIG_ENDI
-static const union {int4 i[5800]; double x[2900];} ui = { .i = {
-/**/ 0x3FF6A000, 0x00000000,
-/**/ 0x3F33CD15, 0x3729043E,
-/**/ 0xBFD63003, 0x0B3AB000,
-/**/ 0x3D2DB623, 0xE731AE00,
-/**/ 0x3FF69800, 0x00000000,
-/**/ 0x3F33F349, 0xCC7267D0,
-/**/ 0xBFD61965, 0xCDB03000,
-/**/ 0x3D2F08AD, 0x603C488E,
-/**/ 0x3FF69000, 0x00000000,
-/**/ 0x3F3473A8, 0x8D0BFD2E,
-/**/ 0xBFD602D0, 0x8AF09000,
-/**/ 0xBD1EBE91, 0x76DF3F65,
-/**/ 0x3FF68800, 0x00000000,
-/**/ 0x3F354DD2, 0x390B9ED0,
-/**/ 0xBFD5EC43, 0x3D5C3000,
-/**/ 0xBD36B71A, 0x1229D17F,
-/**/ 0x3FF68000, 0x00000000,
-/**/ 0x3F368168, 0x16816817,
-/**/ 0xBFD5D5BD, 0xDF596000,
-/**/ 0x3D0A0B2A, 0x08A465DC,
-/**/ 0x3FF67800, 0x00000000,
-/**/ 0x3F380E0B, 0xF08C7765,
-/**/ 0xBFD5BF40, 0x6B544000,
-/**/ 0x3D227023, 0xEB68981C,
-/**/ 0x3FF67000, 0x00000000,
-/**/ 0x3F39F360, 0x16719F36,
-/**/ 0xBFD5A8CA, 0xDBBEE000,
-/**/ 0x3CF7C79B, 0x0AF7ECF8,
-/**/ 0x3FF66800, 0x00000000,
-/**/ 0x3F3C3107, 0x5AB40167,
-/**/ 0xBFD5925D, 0x2B113000,
-/**/ 0x3D369BF5, 0xA7A56F34,
-/**/ 0x3FF66000, 0x00000000,
-/**/ 0x3F3EC6A5, 0x122F9016,
-/**/ 0xBFD57BF7, 0x53C8D000,
-/**/ 0xBD1FADED, 0xEE5D40EF,
-/**/ 0x3FF65C00, 0x00000000,
-/**/ 0xBF3E4C22, 0xECCA9097,
-/**/ 0xBFD56599, 0x50695000,
-/**/ 0xBD14C5FD, 0x2BADC774,
-/**/ 0x3FF65400, 0x00000000,
-/**/ 0xBF3B07AC, 0x4B55CC62,
-/**/ 0xBFD54F43, 0x1B7BE000,
-/**/ 0xBD1A8954, 0xC0910952,
-/**/ 0x3FF64C00, 0x00000000,
-/**/ 0xBF376C52, 0x32DA090E,
-/**/ 0xBFD538F4, 0xAF8F7000,
-/**/ 0xBD27EC02, 0xE45547CE,
-/**/ 0x3FF64400, 0x00000000,
-/**/ 0xBF337A6F, 0x4DE9BD38,
-/**/ 0xBFD522AE, 0x0738A000,
-/**/ 0xBD2EBE70, 0x8164C759,
-/**/ 0x3FF63C00, 0x00000000,
-/**/ 0xBF2E64BB, 0x923C708B,
-/**/ 0xBFD50C6F, 0x1D11C000,
-/**/ 0x3D3A0E6B, 0x7E827C2C,
-/**/ 0x3FF63400, 0x00000000,
-/**/ 0xBF2528EE, 0xA7E43FD4,
-/**/ 0xBFD4F637, 0xEBBAA000,
-/**/ 0x3D3FC158, 0xCB3124B9,
-/**/ 0x3FF62C00, 0x00000000,
-/**/ 0xBF168454, 0x86689DF7,
-/**/ 0xBFD4E008, 0x6DD8C000,
-/**/ 0x3D34D692, 0xA1E44788,
-/**/ 0x3FF62400, 0x00000000,
-/**/ 0xBED623FA, 0x77016240,
-/**/ 0xBFD4C9E0, 0x9E173000,
-/**/ 0x3D2E2089, 0x1B0AD8A4,
-/**/ 0x3FF61C00, 0x00000000,
-/**/ 0x3F151300, 0x58715130,
-/**/ 0xBFD4B3C0, 0x77268000,
-/**/ 0x3D165B46, 0x81052B9F,
-/**/ 0x3FF61400, 0x00000000,
-/**/ 0x3F266D06, 0x35D2754E,
-/**/ 0xBFD49DA7, 0xF3BCC000,
-/**/ 0xBD307B33, 0x4DAF4B9A,
-/**/ 0x3FF60C00, 0x00000000,
-/**/ 0x3F317C61, 0xDA197F23,
-/**/ 0xBFD48797, 0x0E958000,
-/**/ 0xBD3DC1B8, 0x465CF25F,
-/**/ 0x3FF60400, 0x00000000,
-/**/ 0x3F381605, 0x81605816,
-/**/ 0xBFD4718D, 0xC271C000,
-/**/ 0xBD306C18, 0xFB4C14C5,
-/**/ 0x3FF5FC00, 0x00000000,
-/**/ 0x3F3F0317, 0xB5C6F559,
-/**/ 0xBFD45B8C, 0x0A17E000,
-/**/ 0x3D0D9120, 0xE7D0A853,
-/**/ 0x3FF5F800, 0x00000000,
-/**/ 0xBF39BCBD, 0x6D2041E3,
-/**/ 0xBFD44591, 0xE053A000,
-/**/ 0x3D06E958, 0x92923D88,
-/**/ 0x3FF5F000, 0x00000000,
-/**/ 0xBF3229CF, 0x5604CC40,
-/**/ 0xBFD42F9F, 0x3FF62000,
-/**/ 0xBD390644, 0x0F7D3354,
-/**/ 0x3FF5E800, 0x00000000,
-/**/ 0xBF2488E5, 0xFD431489,
-/**/ 0xBFD419B4, 0x23D5F000,
-/**/ 0x3D3CE379, 0x226DE3EC,
-/**/ 0x3FF5E000, 0x00000000,
-/**/ 0xBF0067E7, 0x6424E9C9,
-/**/ 0xBFD403D0, 0x86CEA000,
-/**/ 0xBD3E6EF5, 0x74487308,
-/**/ 0x3FF5D800, 0x00000000,
-/**/ 0x3F19F0FB, 0x38A94D24,
-/**/ 0xBFD3EDF4, 0x63C17000,
-/**/ 0x3D3F067C, 0x297F2C3F,
-/**/ 0x3FF5D000, 0x00000000,
-/**/ 0x3F2EADD9, 0x23CAD2AA,
-/**/ 0xBFD3D81F, 0xB5947000,
-/**/ 0x3D222C7C, 0x2A9D37A4,
-/**/ 0x3FF5C800, 0x00000000,
-/**/ 0x3F3882B9, 0x31057262,
-/**/ 0xBFD3C252, 0x77333000,
-/**/ 0xBD183B54, 0xB606BD5C,
-/**/ 0x3FF5C400, 0x00000000,
-/**/ 0xBF3E00AE, 0x10FFA8F8,
-/**/ 0xBFD3AC8C, 0xA38E6000,
-/**/ 0x3D2D0BEF, 0xBC02BE4A,
-/**/ 0x3FF5BC00, 0x00000000,
-/**/ 0xBF34339B, 0x8056EAF3,
-/**/ 0xBFD396CE, 0x359BC000,
-/**/ 0x3D05839C, 0x5663663D,
-/**/ 0x3FF5B400, 0x00000000,
-/**/ 0xBF242CC1, 0xF31D7FD5,
-/**/ 0xBFD38117, 0x28565000,
-/**/ 0x3D2A71E4, 0x93A0702B,
-/**/ 0x3FF5AC00, 0x00000000,
-/**/ 0x3ED5AC05, 0x6B015AC0,
-/**/ 0xBFD36B67, 0x76BE1000,
-/**/ 0xBD116ECD, 0xB0F177C8,
-/**/ 0x3FF5A400, 0x00000000,
-/**/ 0x3F26268D, 0x5BA55E5A,
-/**/ 0xBFD355BF, 0x1BD83000,
-/**/ 0x3D2BA99B, 0x8964F0E8,
-/**/ 0x3FF59C00, 0x00000000,
-/**/ 0x3F361F12, 0x3CCAA376,
-/**/ 0xBFD3401E, 0x12AED000,
-/**/ 0x3D317C73, 0x556E291D,
-/**/ 0x3FF59800, 0x00000000,
-/**/ 0xBF3E863D, 0x62D32417,
-/**/ 0xBFD32A84, 0x56512000,
-/**/ 0xBD04F928, 0x139AF5D6,
-/**/ 0x3FF59000, 0x00000000,
-/**/ 0xBF32DCF7, 0xEA712DCF,
-/**/ 0xBFD314F1, 0xE1D36000,
-/**/ 0x3D28E27A, 0xD3213CB8,
-/**/ 0x3FF58800, 0x00000000,
-/**/ 0xBF1B95B2, 0xA0CC87E8,
-/**/ 0xBFD2FF66, 0xB04EB000,
-/**/ 0x3D38AED2, 0x541E6E2E,
-/**/ 0x3FF58000, 0x00000000,
-/**/ 0x3F158056, 0x01580560,
-/**/ 0xBFD2E9E2, 0xBCE12000,
-/**/ 0xBD24300C, 0x128D1DC2,
-/**/ 0x3FF57800, 0x00000000,
-/**/ 0x3F31F340, 0x15791F34,
-/**/ 0xBFD2D466, 0x02ADD000,
-/**/ 0x3D288D0D, 0xDCD54196,
-/**/ 0x3FF57000, 0x00000000,
-/**/ 0x3F3ED3C5, 0x06B39A23,
-/**/ 0xBFD2BEF0, 0x7CDC9000,
-/**/ 0xBD2A9CFA, 0x4A5004F4,
-/**/ 0x3FF56C00, 0x00000000,
-/**/ 0xBF33FEA9, 0x53FEA954,
-/**/ 0xBFD2A982, 0x269A4000,
-/**/ 0x3D22058E, 0x557285CF,
-/**/ 0x3FF56400, 0x00000000,
-/**/ 0xBF1A1160, 0xEB478503,
-/**/ 0xBFD2941A, 0xFB187000,
-/**/ 0x3D3210C2, 0xB730E28B,
-/**/ 0x3FF55C00, 0x00000000,
-/**/ 0x3F1D09AD, 0xE4A18B2E,
-/**/ 0xBFD27EBA, 0xF58D9000,
-/**/ 0x3D2B1988, 0x00B4BDA7,
-/**/ 0x3FF55400, 0x00000000,
-/**/ 0x3F355555, 0x55555555,
-/**/ 0xBFD26962, 0x1134E000,
-/**/ 0x3D31B61F, 0x10522625,
-/**/ 0x3FF55000, 0x00000000,
-/**/ 0xBF3C4BE6, 0xB319A21F,
-/**/ 0xBFD25410, 0x494E5000,
-/**/ 0xBD3B1D7A, 0xC0EF77F2,
-/**/ 0x3FF54800, 0x00000000,
-/**/ 0xBF2B4328, 0x8FA03FD5,
-/**/ 0xBFD23EC5, 0x991EC000,
-/**/ 0x3D36DBE4, 0x48A2E522,
-/**/ 0x3FF54000, 0x00000000,
-/**/ 0x3EF54015, 0x40154015,
-/**/ 0xBFD22981, 0xFBEF8000,
-/**/ 0x3D3A1421, 0x609580DA,
-/**/ 0x3FF53800, 0x00000000,
-/**/ 0x3F30948F, 0x40FEAC6F,
-/**/ 0xBFD21445, 0x6D0EC000,
-/**/ 0x3D3CAF04, 0x28B728A3,
-/**/ 0x3FF53400, 0x00000000,
-/**/ 0xBF3FE034, 0xFD04F7B8,
-/**/ 0xBFD1FF0F, 0xE7CF4000,
-/**/ 0xBD3E9D5B, 0x513FF0C1,
-/**/ 0x3FF52C00, 0x00000000,
-/**/ 0xBF300A95, 0x7FAB5403,
-/**/ 0xBFD1E9E1, 0x6788A000,
-/**/ 0x3D382EAE, 0xD3C8B65E,
-/**/ 0x3FF52400, 0x00000000,
-/**/ 0x3EB52401, 0x52401524,
-/**/ 0xBFD1D4B9, 0xE796C000,
-/**/ 0xBD222A66, 0x7C42E56D,
-/**/ 0x3FF51C00, 0x00000000,
-/**/ 0x3F307EAE, 0x2F8151D0,
-/**/ 0xBFD1BF99, 0x635A7000,
-/**/ 0x3D31AC89, 0x575C2125,
-/**/ 0x3FF51800, 0x00000000,
-/**/ 0xBF3ECE3F, 0xEAE9ECE4,
-/**/ 0xBFD1AA7F, 0xD638D000,
-/**/ 0xBD29F60A, 0x9616F7A0,
-/**/ 0x3FF51000, 0x00000000,
-/**/ 0xBF2BA3DD, 0xC7675243,
-/**/ 0xBFD1956D, 0x3B9BC000,
-/**/ 0xBD27D2F7, 0x3AD1AA14,
-/**/ 0x3FF50800, 0x00000000,
-/**/ 0x3F0B9AC8, 0x764E368D,
-/**/ 0xBFD18061, 0x8EF19000,
-/**/ 0x3D3482FF, 0xC86D38E5,
-/**/ 0x3FF50000, 0x00000000,
-/**/ 0x3F350150, 0x15015015,
-/**/ 0xBFD16B5C, 0xCBAD0000,
-/**/ 0x3D323299, 0x042D74BF,
-/**/ 0x3FF4FC00, 0x00000000,
-/**/ 0xBF392851, 0x4A683C50,
-/**/ 0xBFD1565E, 0xED456000,
-/**/ 0x3CEE75AD, 0xFB6ABA25,
-/**/ 0x3FF4F400, 0x00000000,
-/**/ 0xBF1C2748, 0xACD95EF0,
-/**/ 0xBFD14167, 0xEF367000,
-/**/ 0xBD3E0C07, 0x824DAAF5,
-/**/ 0x3FF4EC00, 0x00000000,
-/**/ 0x3F26B90D, 0x67A47465,
-/**/ 0xBFD12C77, 0xCD007000,
-/**/ 0xBD13B294, 0x8A11F797,
-/**/ 0x3FF4E400, 0x00000000,
-/**/ 0x3F3E0A72, 0xF0539783,
-/**/ 0xBFD1178E, 0x8227E000,
-/**/ 0xBD31EF78, 0xCE2D07F2,
-/**/ 0x3FF4E000, 0x00000000,
-/**/ 0xBF2E00A6, 0xF87FD642,
-/**/ 0xBFD102AC, 0x0A35D000,
-/**/ 0x3D2F1FBD, 0xDFDFD686,
-/**/ 0x3FF4D800, 0x00000000,
-/**/ 0x3F10EFB7, 0x0B12E3FD,
-/**/ 0xBFD0EDD0, 0x60B78000,
-/**/ 0xBD0019B5, 0x2D8435F5,
-/**/ 0x3FF4D000, 0x00000000,
-/**/ 0x3F37BEF1, 0x5CB4DBE5,
-/**/ 0xBFD0D8FB, 0x813EB000,
-/**/ 0xBD1EE8C8, 0x8753FA35,
-/**/ 0x3FF4CC00, 0x00000000,
-/**/ 0xBF34778D, 0xA50918B1,
-/**/ 0xBFD0C42D, 0x67616000,
-/**/ 0xBD27188B, 0x163CEAE9,
-/**/ 0x3FF4C400, 0x00000000,
-/**/ 0xBED9F4F7, 0xE37288EC,
-/**/ 0xBFD0AF66, 0x0EB9E000,
-/**/ 0xBD23C7C3, 0xF528D80A,
-/**/ 0x3FF4BC00, 0x00000000,
-/**/ 0x3F33EDDA, 0x68FE0E42,
-/**/ 0xBFD09AA5, 0x72E6C000,
-/**/ 0xBD3B50A1, 0xE1734342,
-/**/ 0x3FF4B800, 0x00000000,
-/**/ 0xBF3776C6, 0xB72E47D9,
-/**/ 0xBFD085EB, 0x8F8AE000,
-/**/ 0xBD3E5D51, 0x3F45FE7B,
-/**/ 0x3FF4B000, 0x00000000,
-/**/ 0xBF04AFD6, 0xA052BF5B,
-/**/ 0xBFD07138, 0x604D6000,
-/**/ 0x3D3E7632, 0x4E912B17,
-/**/ 0x3FF4A800, 0x00000000,
-/**/ 0x3F328FFA, 0xD5B5C015,
-/**/ 0xBFD05C8B, 0xE0D96000,
-/**/ 0xBD2AD0F1, 0xC77CCB58,
-/**/ 0x3FF4A400, 0x00000000,
-/**/ 0xBF380528, 0x9FEB5D80,
-/**/ 0xBFD047E6, 0x0CDE8000,
-/**/ 0xBD2DBDF1, 0x0D397F3C,
-/**/ 0x3FF49C00, 0x00000000,
-/**/ 0xBF02AD3E, 0x25FF5B21,
-/**/ 0xBFD03346, 0xE0106000,
-/**/ 0xBCF89FF8, 0xA966395C,
-/**/ 0x3FF49400, 0x00000000,
-/**/ 0x3F339E3B, 0x2D066EA2,
-/**/ 0xBFD01EAE, 0x5626C000,
-/**/ 0xBD3A43DC, 0xFADE85AE,
-/**/ 0x3FF49000, 0x00000000,
-/**/ 0xBF3629C1, 0xAFB2E932,
-/**/ 0xBFD00A1C, 0x6ADDA000,
-/**/ 0xBD31CD8D, 0x688B9E18,
-/**/ 0x3FF48800, 0x00000000,
-/**/ 0x3ED48805, 0x22014880,
-/**/ 0xBFCFEB22, 0x33EA0000,
-/**/ 0xBD2F3418, 0xDE00938B,
-/**/ 0x3FF48000, 0x00000000,
-/**/ 0x3F37119F, 0x3D324D89,
-/**/ 0xBFCFC218, 0xBE620000,
-/**/ 0xBD34BBA4, 0x6F1CF6A0,
-/**/ 0x3FF47C00, 0x00000000,
-/**/ 0xBF31EB85, 0x1EB851EC,
-/**/ 0xBFCF991C, 0x6CB3C000,
-/**/ 0x3D390D04, 0xCD7CC834,
-/**/ 0x3FF47400, 0x00000000,
-/**/ 0x3F1569C9, 0xAAFC7C01,
-/**/ 0xBFCF702D, 0x36778000,
-/**/ 0x3D108195, 0x16673E23,
-/**/ 0x3FF46C00, 0x00000000,
-/**/ 0x3F3CE345, 0x96066250,
-/**/ 0xBFCF474B, 0x134E0000,
-/**/ 0x3D3BAE49, 0xF1DF7B5E,
-/**/ 0x3FF46800, 0x00000000,
-/**/ 0xBF26A297, 0x1D02DE87,
-/**/ 0xBFCF1E75, 0xFADFA000,
-/**/ 0x3D20862B, 0x25D83F6D,
-/**/ 0x3FF46000, 0x00000000,
-/**/ 0x3F2978FE, 0xB9F34381,
-/**/ 0xBFCEF5AD, 0xE4DD0000,
-/**/ 0x3CCA2115, 0x65BB8E11,
-/**/ 0x3FF45C00, 0x00000000,
-/**/ 0xBF3AF398, 0xF6C71366,
-/**/ 0xBFCECCF2, 0xC8FEA000,
-/**/ 0x3D3BEC63, 0xA3E75640,
-/**/ 0x3FF45400, 0x00000000,
-/**/ 0xBF030E9C, 0x449AFF5D,
-/**/ 0xBFCEA444, 0x9F04A000,
-/**/ 0xBD35E916, 0x63732A36,
-/**/ 0x3FF44C00, 0x00000000,
-/**/ 0x3F367190, 0xF8B42EF3,
-/**/ 0xBFCE7BA3, 0x5EB78000,
-/**/ 0x3D0D5EEE, 0x23793649,
-/**/ 0x3FF44800, 0x00000000,
-/**/ 0xBF3079A9, 0xD260511C,
-/**/ 0xBFCE530E, 0xFFE72000,
-/**/ 0x3D3FDBDB, 0xB13F7C18,
-/**/ 0x3FF44000, 0x00000000,
-/**/ 0x3F21B87C, 0x0B644FBE,
-/**/ 0xBFCE2A87, 0x7A6B2000,
-/**/ 0xBD382381, 0x7787081A,
-/**/ 0x3FF43C00, 0x00000000,
-/**/ 0xBF3D8CF5, 0x411B2E25,
-/**/ 0xBFCE020C, 0xC6236000,
-/**/ 0x3D252B00, 0xADB91424,
-/**/ 0x3FF43400, 0x00000000,
-/**/ 0xBF0DAC08, 0xD6A60978,
-/**/ 0xBFCDD99E, 0xDAF6E000,
-/**/ 0x3D302EC6, 0x69C756EB,
-/**/ 0x3FF42C00, 0x00000000,
-/**/ 0x3F36625D, 0x51F86EFA,
-/**/ 0xBFCDB13D, 0xB0D48000,
-/**/ 0xBD32806A, 0x847527E6,
-/**/ 0x3FF42800, 0x00000000,
-/**/ 0xBF2E8B2D, 0xA8766564,
-/**/ 0xBFCD88E9, 0x3FB30000,
-/**/ 0x3D375F28, 0x0234BF51,
-/**/ 0x3FF42000, 0x00000000,
-/**/ 0x3F26A4CB, 0xCB2A247B,
-/**/ 0xBFCD60A1, 0x7F904000,
-/**/ 0x3D35D6E0, 0x6FC20D39,
-/**/ 0x3FF41C00, 0x00000000,
-/**/ 0xBF39D5E8, 0xC17DF552,
-/**/ 0xBFCD3866, 0x68720000,
-/**/ 0x3D373650, 0xB38932BC,
-/**/ 0x3FF41400, 0x00000000,
-/**/ 0x3EF41414, 0x14141414,
-/**/ 0xBFCD1037, 0xF2656000,
-/**/ 0x3D084A7E, 0x75B6F6E4,
-/**/ 0x3FF40C00, 0x00000000,
-/**/ 0x3F3C97A8, 0x43AE87FD,
-/**/ 0xBFCCE816, 0x157F2000,
-/**/ 0x3D29E0AB, 0xA2099515,
-/**/ 0x3FF40800, 0x00000000,
-/**/ 0xBF1F4BBC, 0x66A67E6F,
-/**/ 0xBFCCC000, 0xC9DB4000,
-/**/ 0x3D1D6D58, 0x5D57AFF9,
-/**/ 0x3FF40000, 0x00000000,
-/**/ 0x3F340140, 0x14014014,
-/**/ 0xBFCC97F8, 0x079D4000,
-/**/ 0xBD23B161, 0xA8C6E6C5,
-/**/ 0x3FF3FC00, 0x00000000,
-/**/ 0xBF2FD809, 0xFD809FD8,
-/**/ 0xBFCC6FFB, 0xC6F00000,
-/**/ 0xBD3EE138, 0xD3A69D43,
-/**/ 0x3FF3F400, 0x00000000,
-/**/ 0x3F28CA0E, 0x57EE89D2,
-/**/ 0xBFCC480C, 0x0005C000,
-/**/ 0xBD39A294, 0xD5E44E76,
-/**/ 0x3FF3F000, 0x00000000,
-/**/ 0xBF370BD5, 0xA50F9260,
-/**/ 0xBFCC2028, 0xAB180000,
-/**/ 0x3D292E0E, 0xE55C7AC6,
-/**/ 0x3FF3E800, 0x00000000,
-/**/ 0x3F1704AA, 0x75945FCE,
-/**/ 0xBFCBF851, 0xC0676000,
-/**/ 0x3D35420E, 0x4C0854AD,
-/**/ 0x3FF3E400, 0x00000000,
-/**/ 0xBF3D3431, 0xB56FD83C,
-/**/ 0xBFCBD087, 0x383BE000,
-/**/ 0x3D2D4BC4, 0x595412B6,
-/**/ 0x3FF3DC00, 0x00000000,
-/**/ 0x3EB3DC01, 0x3DC013DC,
-/**/ 0xBFCBA8C9, 0x0AE4A000,
-/**/ 0xBD3A32E7, 0xF44432DA,
-/**/ 0x3FF3D400, 0x00000000,
-/**/ 0x3F3D991A, 0xA75C5BBD,
-/**/ 0xBFCB8117, 0x30B82000,
-/**/ 0xBD1E9068, 0x3B9CD768,
-/**/ 0x3FF3D000, 0x00000000,
-/**/ 0xBF1292BA, 0x59C52F5D,
-/**/ 0xBFCB5971, 0xA213A000,
-/**/ 0xBD39B50E, 0x83AA91DF,
-/**/ 0x3FF3C800, 0x00000000,
-/**/ 0x3F395A47, 0xBABE7440,
-/**/ 0xBFCB31D8, 0x575BC000,
-/**/ 0xBD3C794E, 0x562A63CB,
-/**/ 0x3FF3C400, 0x00000000,
-/**/ 0xBF20D475, 0x58A0943A,
-/**/ 0xBFCB0A4B, 0x48FC2000,
-/**/ 0x3D22E72D, 0x5C3998ED,
-/**/ 0x3FF3BC00, 0x00000000,
-/**/ 0x3F360D92, 0x3295482C,
-/**/ 0xBFCAE2CA, 0x6F672000,
-/**/ 0xBD37A8D5, 0xAE54F550,
-/**/ 0x3FF3B800, 0x00000000,
-/**/ 0xBF267D12, 0xCAB48651,
-/**/ 0xBFCABB55, 0xC316A000,
-/**/ 0x3D38A65A, 0xCAF14CD8,
-/**/ 0x3FF3B000, 0x00000000,
-/**/ 0x3F33B13B, 0x13B13B14,
-/**/ 0xBFCA93ED, 0x3C8AE000,
-/**/ 0x3D287243, 0x50562169,
-/**/ 0x3FF3AC00, 0x00000000,
-/**/ 0xBF2A46AF, 0x2C8FD3BF,
-/**/ 0xBFCA6C90, 0xD44B8000,
-/**/ 0x3D3F63B7, 0xF037B0C6,
-/**/ 0x3FF3A400, 0x00000000,
-/**/ 0x3F324387, 0xAC822610,
-/**/ 0xBFCA4540, 0x82E6A000,
-/**/ 0xBD360A77, 0xC81F7171,
-/**/ 0x3FF3A000, 0x00000000,
-/**/ 0xBF2C34BB, 0xA1923DEE,
-/**/ 0xBFCA1DFC, 0x40F1C000,
-/**/ 0x3D301E0F, 0x004F3781,
-/**/ 0x3FF39800, 0x00000000,
-/**/ 0x3F31C2C1, 0x87F63372,
-/**/ 0xBFC9F6C4, 0x0708A000,
-/**/ 0x3D3337D9, 0x4BCD3F43,
-/**/ 0x3FF39400, 0x00000000,
-/**/ 0xBF2C4AA0, 0xE11BD52E,
-/**/ 0xBFC9CF97, 0xCDCE0000,
-/**/ 0xBD3D862F, 0x10C414E3,
-/**/ 0x3FF38C00, 0x00000000,
-/**/ 0x3F322D36, 0x6088DBF4,
-/**/ 0xBFC9A877, 0x8DEBA000,
-/**/ 0xBD3470FA, 0x3EFEC390,
-/**/ 0x3FF38800, 0x00000000,
-/**/ 0xBF2A8BBF, 0x503F774E,
-/**/ 0xBFC98163, 0x4011A000,
-/**/ 0xBD34EADD, 0x9E9045E2,
-/**/ 0x3FF38000, 0x00000000,
-/**/ 0x3F338138, 0x13813814,
-/**/ 0xBFC95A5A, 0xDCF70000,
-/**/ 0xBD07F228, 0x58A0FF6F,
-/**/ 0x3FF37C00, 0x00000000,
-/**/ 0xBF26FB6F, 0x1B177053,
-/**/ 0xBFC9335E, 0x5D594000,
-/**/ 0xBD33115C, 0x3ABD47DA,
-/**/ 0x3FF37400, 0x00000000,
-/**/ 0x3F35BD1C, 0x945EDC20,
-/**/ 0xBFC90C6D, 0xB9FCC000,
-/**/ 0x3D1935F5, 0x7718D7CA,
-/**/ 0x3FF37000, 0x00000000,
-/**/ 0xBF219D00, 0x4DBDCC60,
-/**/ 0xBFC8E588, 0xEBAC2000,
-/**/ 0xBD3B7D5C, 0xAB2D1140,
-/**/ 0x3FF36800, 0x00000000,
-/**/ 0x3F38DF3D, 0xE0747954,
-/**/ 0xBFC8BEAF, 0xEB390000,
-/**/ 0x3D073D54, 0xAAE92CD1,
-/**/ 0x3FF36400, 0x00000000,
-/**/ 0xBF14E775, 0xD9D3C49F,
-/**/ 0xBFC897E2, 0xB17B2000,
-/**/ 0x3D296B37, 0x380CBE9E,
-/**/ 0x3FF35C00, 0x00000000,
-/**/ 0x3F3CE5F9, 0xF2AF821E,
-/**/ 0xBFC87121, 0x3750E000,
-/**/ 0xBD3328EB, 0x42F9AF75,
-/**/ 0x3FF35800, 0x00000000,
-/**/ 0xBEE82DF0, 0xE34971F2,
-/**/ 0xBFC84A6B, 0x759F6000,
-/**/ 0x3D3DA280, 0x2ADF8609,
-/**/ 0x3FF35400, 0x00000000,
-/**/ 0xBF3E304D, 0x4873ECAE,
-/**/ 0xBFC823C1, 0x6551A000,
-/**/ 0xBD1E0DDB, 0x9A631E83,
-/**/ 0x3FF34C00, 0x00000000,
-/**/ 0x3F1264B6, 0x1FF659DB,
-/**/ 0xBFC7FD22, 0xFF59A000,
-/**/ 0x3D158BEB, 0xF457B7D2,
-/**/ 0x3FF34800, 0x00000000,
-/**/ 0xBF386531, 0xFECB9865,
-/**/ 0xBFC7D690, 0x3CAF6000,
-/**/ 0x3D24C06B, 0x17C301D7,
-/**/ 0x3FF34000, 0x00000000,
-/**/ 0x3F25A8C2, 0xEEDA65AE,
-/**/ 0xBFC7B009, 0x16516000,
-/**/ 0x3D3AE75F, 0xCB067E57,
-/**/ 0x3FF33C00, 0x00000000,
-/**/ 0xBF31BA4A, 0x8434E1F4,
-/**/ 0xBFC7898D, 0x85444000,
-/**/ 0xBD38E67B, 0xE3DBAF3F,
-/**/ 0x3FF33400, 0x00000000,
-/**/ 0x3F31EE97, 0xDBFC660A,
-/**/ 0xBFC7631D, 0x82936000,
-/**/ 0x3D25E77D, 0xC7C5F3E1,
-/**/ 0x3FF33000, 0x00000000,
-/**/ 0xBF246252, 0xBC40BFDA,
-/**/ 0xBFC73CB9, 0x074FE000,
-/**/ 0x3D3D66A9, 0x0D0005A6,
-/**/ 0x3FF32800, 0x00000000,
-/**/ 0x3F39E640, 0x13299E64,
-/**/ 0xBFC71660, 0x0C914000,
-/**/ 0xBCE51B15, 0x7CEC3838,
-/**/ 0x3FF32400, 0x00000000,
-/**/ 0xBEFCB5D4, 0xEF40991F,
-/**/ 0xBFC6F012, 0x8B756000,
-/**/ 0xBD357739, 0x0D31EF0F,
-/**/ 0x3FF32000, 0x00000000,
-/**/ 0xBF3D4632, 0xC823D892,
-/**/ 0xBFC6C9D0, 0x7D204000,
-/**/ 0x3CDC73FA, 0xFD9B2DCA,
-/**/ 0x3FF31800, 0x00000000,
-/**/ 0x3F1DD63A, 0x7AED804C,
-/**/ 0xBFC6A399, 0xDABBE000,
-/**/ 0x3D38F934, 0xE66A15A6,
-/**/ 0x3FF31400, 0x00000000,
-/**/ 0xBF339849, 0xE8C11E1A,
-/**/ 0xBFC67D6E, 0x9D786000,
-/**/ 0x3D311E88, 0x30A706D3,
-/**/ 0x3FF30C00, 0x00000000,
-/**/ 0x3F319013, 0x0D190131,
-/**/ 0xBFC6574E, 0xBE8C2000,
-/**/ 0x3D398C1D, 0x34F0F462,
-/**/ 0x3FF30800, 0x00000000,
-/**/ 0xBF222315, 0xB47A7FDA,
-/**/ 0xBFC6313A, 0x37336000,
-/**/ 0x3D144DF5, 0x4F21EA6D,
-/**/ 0x3FF30000, 0x00000000,
-/**/ 0x3F3C82AC, 0x40260390,
-/**/ 0xBFC60B31, 0x00B0A000,
-/**/ 0x3D371456, 0xC988F814,
-/**/ 0x3FF2FC00, 0x00000000,
-/**/ 0x3F026443, 0xA2430A62,
-/**/ 0xBFC5E533, 0x144C2000,
-/**/ 0x3D31CE0B, 0xF3B290EA,
-/**/ 0x3FF2F800, 0x00000000,
-/**/ 0xBF37B425, 0xED097B42,
-/**/ 0xBFC5BF40, 0x6B544000,
-/**/ 0x3D127023, 0xEB68981C,
-/**/ 0x3FF2F000, 0x00000000,
-/**/ 0x3F2D00E3, 0x4AE0553C,
-/**/ 0xBFC59958, 0xFF1D6000,
-/**/ 0x3D3A1D05, 0x9769CA05,
-/**/ 0x3FF2EC00, 0x00000000,
-/**/ 0xBF262BC0, 0x25D69D44,
-/**/ 0xBFC5737C, 0xC9018000,
-/**/ 0xBD39BAA7, 0xA6B887F6,
-/**/ 0x3FF2E400, 0x00000000,
-/**/ 0x3F3B88B5, 0xE3103D6B,
-/**/ 0xBFC54DAB, 0xC2610000,
-/**/ 0xBD2746FE, 0xE5C8D0D8,
-/**/ 0x3FF2E000, 0x00000000,
-/**/ 0x3F02E025, 0xC04B8097,
-/**/ 0xBFC527E5, 0xE4A1C000,
-/**/ 0x3D34E60B, 0x8D4B411D,
-/**/ 0x3FF2DC00, 0x00000000,
-/**/ 0xBF369C22, 0x2C305021,
-/**/ 0xBFC5022B, 0x292F6000,
-/**/ 0xBD348A05, 0xFF36A25B,
-/**/ 0x3FF2D400, 0x00000000,
-/**/ 0x3F30A012, 0xD50A012D,
-/**/ 0xBFC4DC7B, 0x897BC000,
-/**/ 0xBD0C79B6, 0x0AE1FF0F,
-/**/ 0x3FF2D000, 0x00000000,
-/**/ 0xBF1FBE29, 0xBC66484E,
-/**/ 0xBFC4B6D6, 0xFEFE2000,
-/**/ 0xBD1522EC, 0xF56E7952,
-/**/ 0x3FF2C800, 0x00000000,
-/**/ 0x3F3FB4D8, 0x12C9FB4E,
-/**/ 0xBFC4913D, 0x8333C000,
-/**/ 0x3D353E43, 0x558124C4,
-/**/ 0x3FF2C400, 0x00000000,
-/**/ 0x3F1E3432, 0x7004B11E,
-/**/ 0xBFC46BAF, 0x0F9F6000,
-/**/ 0x3D1249CD, 0x0790841A,
-/**/ 0x3FF2C000, 0x00000000,
-/**/ 0xBF30671A, 0x5C8EF02F,
-/**/ 0xBFC4462B, 0x9DC9C000,
-/**/ 0x3D384858, 0xA711B062,
-/**/ 0x3FF2B800, 0x00000000,
-/**/ 0x3F37D835, 0xD548D9AC,
-/**/ 0xBFC420B3, 0x27410000,
-/**/ 0x3D116282, 0xC85A0884,
-/**/ 0x3FF2B400, 0x00000000,
-/**/ 0x3ED2B404, 0xAD012B40,
-/**/ 0xBFC3FB45, 0xA5992000,
-/**/ 0xBD319713, 0xC0CAE559,
-/**/ 0x3FF2B000, 0x00000000,
-/**/ 0xBF370F78, 0x8E7302A1,
-/**/ 0xBFC3D5E3, 0x126BC000,
-/**/ 0xBD13FB2F, 0x85096C4B,
-/**/ 0x3FF2A800, 0x00000000,
-/**/ 0x3F31C92F, 0x3C1053F9,
-/**/ 0xBFC3B08B, 0x67580000,
-/**/ 0x3D3AADE8, 0xF29320FB,
-/**/ 0x3FF2A400, 0x00000000,
-/**/ 0xBF14AD94, 0x3DBE2E04,
-/**/ 0xBFC38B3E, 0x9E028000,
-/**/ 0x3D370EF0, 0x545C17F9,
-/**/ 0x3FF2A000, 0x00000000,
-/**/ 0xBF3BED61, 0xBED61BED,
-/**/ 0xBFC365FC, 0xB015A000,
-/**/ 0x3D3FD3A0, 0xAFB9691B,
-/**/ 0x3FF29800, 0x00000000,
-/**/ 0x3F2B061A, 0x26F004A6,
-/**/ 0xBFC340C5, 0x97412000,
-/**/ 0x3D37A3DC, 0xF7D9D386,
-/**/ 0x3FF29400, 0x00000000,
-/**/ 0xBF21B488, 0xFF6B646D,
-/**/ 0xBFC31B99, 0x4D3A4000,
-/**/ 0xBD3F098E, 0xE3A50810,
-/**/ 0x3FF29000, 0x00000000,
-/**/ 0xBF3F0582, 0x2CA5D5AC,
-/**/ 0xBFC2F677, 0xCBBC0000,
-/**/ 0xBD352B30, 0x2160F40D,
-/**/ 0x3FF28800, 0x00000000,
-/**/ 0x3F260251, 0x16025116,
-/**/ 0xBFC2D161, 0x0C868000,
-/**/ 0xBD039D6C, 0xCB81B4A1,
-/**/ 0x3FF28400, 0x00000000,
-/**/ 0xBF258CDF, 0x502065D2,
-/**/ 0xBFC2AC55, 0x095F6000,
-/**/ 0x3D1D3466, 0xD0C6C8A8,
-/**/ 0x3FF27C00, 0x00000000,
-/**/ 0x3F3FA38A, 0x1CE4D6F8,
-/**/ 0xBFC28753, 0xBC11A000,
-/**/ 0xBD37494E, 0x359302E6,
-/**/ 0x3FF27800, 0x00000000,
-/**/ 0x3F247DD5, 0xDCCA0781,
-/**/ 0xBFC2625D, 0x1E6DE000,
-/**/ 0x3CF52962, 0xF09E3D82,
-/**/ 0x3FF27400, 0x00000000,
-/**/ 0xBF25E8EF, 0xDB195E8F,
-/**/ 0xBFC23D71, 0x2A49C000,
-/**/ 0xBD100D23, 0x8FD3DF5C,
-/**/ 0x3FF27000, 0x00000000,
-/**/ 0xBF3FF6C8, 0xFFB647FE,
-/**/ 0xBFC2188F, 0xD9808000,
-/**/ 0x3D3B3A1E, 0x7F50C701,
-/**/ 0x3FF26800, 0x00000000,
-/**/ 0x3F266F9A, 0xC024D167,
-/**/ 0xBFC1F3B9, 0x25F26000,
-/**/ 0x3D15F74E, 0x9B083633,
-/**/ 0x3FF26400, 0x00000000,
-/**/ 0xBF22D1BD, 0xEABD0E14,
-/**/ 0xBFC1CEED, 0x09854000,
-/**/ 0x3D315C1C, 0x39192AF9,
-/**/ 0x3FF26000, 0x00000000,
-/**/ 0xBF3DD8F7, 0xF6D0EEC8,
-/**/ 0xBFC1AA2B, 0x7E240000,
-/**/ 0x3D31AC38, 0xDDE3B366,
-/**/ 0x3FF25800, 0x00000000,
-/**/ 0x3F2BCEB1, 0x2A241EF6,
-/**/ 0xBFC18574, 0x7DBEC000,
-/**/ 0xBD3E6744, 0x45BD9B49,
-/**/ 0x3FF25400, 0x00000000,
-/**/ 0xBF18A05B, 0xA21378D7,
-/**/ 0xBFC160C8, 0x024B2000,
-/**/ 0xBD2EC2D2, 0xA9009E3D,
-/**/ 0x3FF25000, 0x00000000,
-/**/ 0xBF3A076F, 0xD6CFA90C,
-/**/ 0xBFC13C26, 0x05C3A000,
-/**/ 0x3D2CF5FD, 0xD94F6509,
-/**/ 0x3FF24800, 0x00000000,
-/**/ 0x3F324924, 0x92492492,
-/**/ 0xBFC1178E, 0x8227E000,
-/**/ 0xBD21EF78, 0xCE2D07F2,
-/**/ 0x3FF24400, 0x00000000,
-/**/ 0xBEF3682B, 0x6151E899,
-/**/ 0xBFC0F301, 0x717D0000,
-/**/ 0x3D3E09B4, 0x41AE86C5,
-/**/ 0x3FF24000, 0x00000000,
-/**/ 0xBF34868E, 0x89FA4C67,
-/**/ 0xBFC0CE7E, 0xCDCCC000,
-/**/ 0xBD14652D, 0xABFF5447,
-/**/ 0x3FF23800, 0x00000000,
-/**/ 0x3F3858D8, 0x6B11F09F,
-/**/ 0xBFC0AA06, 0x91268000,
-/**/ 0x3D345519, 0xD7032129,
-/**/ 0x3FF23400, 0x00000000,
-/**/ 0x3F159E26, 0xAF37C049,
-/**/ 0xBFC08598, 0xB59E4000,
-/**/ 0x3D27E5DD, 0x7009902C,
-/**/ 0x3FF23000, 0x00000000,
-/**/ 0xBF2AB546, 0x2E076329,
-/**/ 0xBFC06135, 0x354D4000,
-/**/ 0xBD363046, 0x28340EE9,
-/**/ 0x3FF22C00, 0x00000000,
-/**/ 0xBF3FEDD5, 0xFEDD5FEE,
-/**/ 0xBFC03CDC, 0x0A51E000,
-/**/ 0xBD381A9C, 0xF169FC5C,
-/**/ 0x3FF22400, 0x00000000,
-/**/ 0x3F2B5B92, 0x009126D7,
-/**/ 0xBFC0188D, 0x2ECF6000,
-/**/ 0xBD03F965, 0x1CFF9DFE,
-/**/ 0x3FF22000, 0x00000000,
-/**/ 0xBF121FB7, 0x8121FB78,
-/**/ 0xBFBFE891, 0x39DBC000,
-/**/ 0xBD356594, 0xD82F7A82,
-/**/ 0x3FF21C00, 0x00000000,
-/**/ 0xBF368F22, 0x3A459635,
-/**/ 0xBFBFA01C, 0x9DB58000,
-/**/ 0x3D08F351, 0xFA48A730,
-/**/ 0x3FF21400, 0x00000000,
-/**/ 0x3F379804, 0x855E6012,
-/**/ 0xBFBF57BC, 0x7D900000,
-/**/ 0xBD176A6C, 0x9EA8B04E,
-/**/ 0x3FF21000, 0x00000000,
-/**/ 0x3F17B57C, 0x78CD7A37,
-/**/ 0xBFBF0F70, 0xCDD98000,
-/**/ 0xBD32E31F, 0x6C272C1E,
-/**/ 0x3FF20C00, 0x00000000,
-/**/ 0xBF271E73, 0x07E4EF15,
-/**/ 0xBFBEC739, 0x830A0000,
-/**/ 0xBD311FCB, 0xA80CDD10,
-/**/ 0x3FF20800, 0x00000000,
-/**/ 0xBF3CDDEC, 0x49392BA7,
-/**/ 0xBFBE7F16, 0x91A34000,
-/**/ 0x3D32C1C5, 0x9BC77BFA,
-/**/ 0x3FF20000, 0x00000000,
-/**/ 0x3F320120, 0x12012012,
-/**/ 0xBFBE3707, 0xEE304000,
-/**/ 0xBD20F684, 0xE6766ABD,
-/**/ 0x3FF1FC00, 0x00000000,
-/**/ 0x3EF0DC4F, 0xCE8AD1A2,
-/**/ 0xBFBDEF0D, 0x8D468000,
-/**/ 0x3D324750, 0x412E9A74,
-/**/ 0x3FF1F800, 0x00000000,
-/**/ 0xBF2F7047, 0xDC11F704,
-/**/ 0xBFBDA727, 0x63844000,
-/**/ 0xBD1A8940, 0x1FA71733,
-/**/ 0x3FF1F000, 0x00000000,
-/**/ 0x3F3FAF3F, 0x16B6419D,
-/**/ 0xBFBD5F55, 0x65920000,
-/**/ 0xBD30E239, 0xCC185469,
-/**/ 0x3FF1EC00, 0x00000000,
-/**/ 0x3F2E878F, 0xF70985E2,
-/**/ 0xBFBD1797, 0x88218000,
-/**/ 0xBD336433, 0xB5EFBEED,
-/**/ 0x3FF1E800, 0x00000000,
-/**/ 0xBEEF55E4, 0x94D7FDC3,
-/**/ 0xBFBCCFED, 0xBFEE0000,
-/**/ 0xBD33A823, 0x2FE71256,
-/**/ 0x3FF1E400, 0x00000000,
-/**/ 0xBF310C4C, 0x0478BBCF,
-/**/ 0xBFBC8858, 0x01BC4000,
-/**/ 0xBD2646D1, 0xC65AACD3,
-/**/ 0x3FF1DC00, 0x00000000,
-/**/ 0x3F3F0ECB, 0xCB840C49,
-/**/ 0xBFBC40D6, 0x425A4000,
-/**/ 0xBD3CB112, 0x1D1930DD,
-/**/ 0x3FF1D800, 0x00000000,
-/**/ 0x3F2EACE5, 0xC9579074,
-/**/ 0xBFBBF968, 0x769FC000,
-/**/ 0xBD24218C, 0x8D824283,
-/**/ 0x3FF1D400, 0x00000000,
-/**/ 0xBECABDFA, 0xFC60F0AE,
-/**/ 0xBFBBB20E, 0x936D8000,
-/**/ 0x3D368BA8, 0x35459B8E,
-/**/ 0x3FF1D000, 0x00000000,
-/**/ 0xBF2F2A4B, 0xAFDC61F3,
-/**/ 0xBFBB6AC8, 0x8DAD4000,
-/**/ 0xBD3B1BDF, 0xF50225C7,
-/**/ 0x3FF1CC00, 0x00000000,
-/**/ 0xBF3EC8AF, 0xAB802394,
-/**/ 0xBFBB2396, 0x5A530000,
-/**/ 0x3CEFF64E, 0xEA137079,
-/**/ 0x3FF1C400, 0x00000000,
-/**/ 0x3F322FC1, 0xCE058D9B,
-/**/ 0xBFBADC77, 0xEE5B0000,
-/**/ 0x3D3573B2, 0x09C31904,
-/**/ 0x3FF1C000, 0x00000000,
-/**/ 0x3F0AA04F, 0xE0EFA2CF,
-/**/ 0xBFBA956D, 0x3ECAC000,
-/**/ 0xBD3E6379, 0x4C02C4AF,
-/**/ 0x3FF1BC00, 0x00000000,
-/**/ 0xBF26B7F7, 0x225ADFDD,
-/**/ 0xBFBA4E76, 0x40B1C000,
-/**/ 0x3D0E42B6, 0xB94407C8,
-/**/ 0x3FF1B800, 0x00000000,
-/**/ 0xBF39E073, 0x217CD13A,
-/**/ 0xBFBA0792, 0xE9278000,
-/**/ 0x3D0A9CE6, 0xC9AD51BF,
-/**/ 0x3FF1B000, 0x00000000,
-/**/ 0x3F37C67F, 0x2BAE2B21,
-/**/ 0xBFB9C0C3, 0x2D4D4000,
-/**/ 0x3D3AB7C0, 0x9E838668,
-/**/ 0x3FF1AC00, 0x00000000,
-/**/ 0x3F23316E, 0xBD720DCF,
-/**/ 0xBFB97A07, 0x024CC000,
-/**/ 0x3CF8BCC1, 0x732093CE,
-/**/ 0x3FF1A800, 0x00000000,
-/**/ 0xBF11A7B9, 0x611A7B96,
-/**/ 0xBFB9335E, 0x5D594000,
-/**/ 0xBD23115C, 0x3ABD47DA,
-/**/ 0x3FF1A400, 0x00000000,
-/**/ 0xBF324195, 0xA1C1B8E7,
-/**/ 0xBFB8ECC9, 0x33AEC000,
-/**/ 0x3D222F39, 0xBE67F7AA,
-/**/ 0x3FF1A000, 0x00000000,
-/**/ 0xBF3FEE61, 0xFEE61FEE,
-/**/ 0xBFB8A647, 0x7A91C000,
-/**/ 0xBD3C28C0, 0xAF9BD6DF,
-/**/ 0x3FF19800, 0x00000000,
-/**/ 0x3F328F89, 0x362B721D,
-/**/ 0xBFB85FD9, 0x27508000,
-/**/ 0x3D35B818, 0x19970C1C,
-/**/ 0x3FF19400, 0x00000000,
-/**/ 0x3F14E023, 0x28A70119,
-/**/ 0xBFB8197E, 0x2F410000,
-/**/ 0x3D3C0FE4, 0x60D20041,
-/**/ 0x3FF19000, 0x00000000,
-/**/ 0xBF1FD419, 0x3E48FC6F,
-/**/ 0xBFB7D336, 0x87C28000,
-/**/ 0xBD33C88C, 0x3E706706,
-/**/ 0x3FF18C00, 0x00000000,
-/**/ 0xBF34F7C6, 0xFD42546B,
-/**/ 0xBFB78D02, 0x263D8000,
-/**/ 0xBD069B57, 0x94B69FB7,
-/**/ 0x3FF18400, 0x00000000,
-/**/ 0x3F3E2FA4, 0x01185E30,
-/**/ 0xBFB746E1, 0x00228000,
-/**/ 0x3D3126D1, 0x6E1E21D2,
-/**/ 0x3FF18000, 0x00000000,
-/**/ 0x3F318118, 0x11811812,
-/**/ 0xBFB700D3, 0x0AEAC000,
-/**/ 0xBCEC1E8D, 0xA99DED32,
-/**/ 0x3FF17C00, 0x00000000,
-/**/ 0x3F13F1CA, 0xFF2E2C43,
-/**/ 0xBFB6BAD8, 0x3C188000,
-/**/ 0xBD0DAF3C, 0xC08926AE,
-/**/ 0x3FF17800, 0x00000000,
-/**/ 0xBF1D79B9, 0x0A5EF9FF,
-/**/ 0xBFB674F0, 0x89364000,
-/**/ 0xBD3A7999, 0x4C9D3302,
-/**/ 0x3FF17400, 0x00000000,
-/**/ 0xBF338FAD, 0x1ECEA765,
-/**/ 0xBFB62F1B, 0xE7D78000,
-/**/ 0x3D217995, 0x7ED63C4E,
-/**/ 0x3FF17000, 0x00000000,
-/**/ 0xBF3F976B, 0xD8C8714B,
-/**/ 0xBFB5E95A, 0x4D978000,
-/**/ 0xBD31CB7C, 0xE1D17171,
-/**/ 0x3FF16800, 0x00000000,
-/**/ 0x3F348A33, 0xB08FA497,
-/**/ 0xBFB5A3AB, 0xB01AC000,
-/**/ 0xBD3E2574, 0x9E6AFA18,
-/**/ 0x3FF16400, 0x00000000,
-/**/ 0x3F21AA1F, 0x864022C9,
-/**/ 0xBFB55E10, 0x050E0000,
-/**/ 0xBD0C1D74, 0x0C53C72E,
-/**/ 0x3FF16000, 0x00000000,
-/**/ 0xBF05B7C9, 0xB487BCAD,
-/**/ 0xBFB51887, 0x42260000,
-/**/ 0xBD330A1D, 0x96258B3E,
-/**/ 0x3FF15C00, 0x00000000,
-/**/ 0xBF2C3411, 0x5B1E5F75,
-/**/ 0xBFB4D311, 0x5D208000,
-/**/ 0x3CF53A25, 0x82F4E1EF,
-/**/ 0x3FF15800, 0x00000000,
-/**/ 0xBF39543F, 0xEEA99544,
-/**/ 0xBFB48DAE, 0x4BC30000,
-/**/ 0xBD30185B, 0x208C200C,
-/**/ 0x3FF15000, 0x00000000,
-/**/ 0x3F3B9A3F, 0xDD5C8CB8,
-/**/ 0xBFB4485E, 0x03DBC000,
-/**/ 0xBD3FAD46, 0xE8D26AB7,
-/**/ 0x3FF14C00, 0x00000000,
-/**/ 0x3F30B155, 0xB19AE5C7,
-/**/ 0xBFB40320, 0x7B414000,
-/**/ 0xBD26FD84, 0xAA8157C0,
-/**/ 0x3FF14800, 0x00000000,
-/**/ 0x3F17C382, 0xB34EDA32,
-/**/ 0xBFB3BDF5, 0xA7D20000,
-/**/ 0x3D319BD0, 0xAD125895,
-/**/ 0x3FF14400, 0x00000000,
-/**/ 0xBF129CFF, 0xBAF129D0,
-/**/ 0xBFB378DD, 0x7F748000,
-/**/ 0xBD371411, 0x28F1FACA,
-/**/ 0x3FF14000, 0x00000000,
-/**/ 0xBF2E2E59, 0x771B7C7F,
-/**/ 0xBFB333D7, 0xF8184000,
-/**/ 0x3CE692B6, 0xA81B8848,
-/**/ 0x3FF13C00, 0x00000000,
-/**/ 0xBF395F06, 0x30FE1D9C,
-/**/ 0xBFB2EEE5, 0x07B40000,
-/**/ 0xBD08081E, 0xDD77C860,
-/**/ 0x3FF13400, 0x00000000,
-/**/ 0x3F3C8113, 0x5C81135D,
-/**/ 0xBFB2AA04, 0xA4470000,
-/**/ 0xBD37A48B, 0xA8B1CB41,
-/**/ 0x3FF13000, 0x00000000,
-/**/ 0x3F3288FF, 0xBB3B5DC0,
-/**/ 0xBFB26536, 0xC3D8C000,
-/**/ 0xBD0B4BAC, 0x097C5BA3,
-/**/ 0x3FF12C00, 0x00000000,
-/**/ 0x3F21713D, 0xB81577AE,
-/**/ 0xBFB2207B, 0x5C784000,
-/**/ 0xBD349D8C, 0xFC10C7BF,
-/**/ 0x3FF12800, 0x00000000,
-/**/ 0xBEEE05E5, 0xBAD6FC84,
-/**/ 0xBFB1DBD2, 0x643D0000,
-/**/ 0xBD390B24, 0xD977C494,
-/**/ 0x3FF12400, 0x00000000,
-/**/ 0xBF24E314, 0x59F992BF,
-/**/ 0xBFB1973B, 0xD1464000,
-/**/ 0xBD3566D1, 0x54F930B3,
-/**/ 0x3FF12000, 0x00000000,
-/**/ 0xBF33CB91, 0xC9F6E7A8,
-/**/ 0xBFB152B7, 0x99BB4000,
-/**/ 0x3D09BB29, 0x07030829,
-/**/ 0x3FF11C00, 0x00000000,
-/**/ 0xBF3CFE65, 0x8B7D9851,
-/**/ 0xBFB10E45, 0xB3CB0000,
-/**/ 0x3D37CF69, 0x284A3465,
-/**/ 0x3FF11400, 0x00000000,
-/**/ 0x3F39F5DB, 0x29605DF7,
-/**/ 0xBFB0C9E6, 0x15AC4000,
-/**/ 0xBD2C2DA8, 0x0974D976,
-/**/ 0x3FF11000, 0x00000000,
-/**/ 0x3F311111, 0x11111111,
-/**/ 0xBFB08598, 0xB59E4000,
-/**/ 0x3D17E5DD, 0x7009902C,
-/**/ 0x3FF10C00, 0x00000000,
-/**/ 0x3F20A63A, 0x12A5B1AE,
-/**/ 0xBFB0415D, 0x89E74000,
-/**/ 0xBD1111C0, 0x5CF1D753,
-/**/ 0x3FF10800, 0x00000000,
-/**/ 0xBED107FB, 0xBE011080,
-/**/ 0xBFAFFA69, 0x11AB8000,
-/**/ 0xBD23008C, 0x98381A8F,
-/**/ 0x3FF10400, 0x00000000,
-/**/ 0xBF216989, 0x6FEABBAE,
-/**/ 0xBFAF723B, 0x51800000,
-/**/ 0x3D3D6EB0, 0xDD5610D3,
-/**/ 0x3FF10000, 0x00000000,
-/**/ 0xBF30FEF0, 0x10FEF011,
-/**/ 0xBFAEEA31, 0xC0068000,
-/**/ 0xBD3C3DD8, 0x3606D891,
-/**/ 0x3FF0FC00, 0x00000000,
-/**/ 0xBF3922C0, 0x98CDDC74,
-/**/ 0xBFAE624C, 0x4A0B8000,
-/**/ 0x3D30F25C, 0x74676689,
-/**/ 0x3FF0F400, 0x00000000,
-/**/ 0x3F3EDFAB, 0x325A1A80,
-/**/ 0xBFADDA8A, 0xDC680000,
-/**/ 0x3D21B1AC, 0x64D9E42F,
-/**/ 0x3FF0F000, 0x00000000,
-/**/ 0x3F370834, 0xF27F9A57,
-/**/ 0xBFAD52ED, 0x64060000,
-/**/ 0x3D33C85D, 0x2A29BBD6,
-/**/ 0x3FF0EC00, 0x00000000,
-/**/ 0x3F2EAD7C, 0xD391FBC5,
-/**/ 0xBFACCB73, 0xCDDD8000,
-/**/ 0xBD3965C3, 0x6E09F5FE,
-/**/ 0x3FF0E800, 0x00000000,
-/**/ 0x3F1F2CA5, 0xE9479870,
-/**/ 0xBFAC441E, 0x06F70000,
-/**/ 0xBD354F1F, 0x49850D15,
-/**/ 0x3FF0E400, 0x00000000,
-/**/ 0x3ED95609, 0x80439019,
-/**/ 0xBFABBCEB, 0xFC690000,
-/**/ 0x3D17BF86, 0x8C317C2A,
-/**/ 0x3FF0E000, 0x00000000,
-/**/ 0xBF1B6B4D, 0xC6867596,
-/**/ 0xBFAB35DD, 0x9B588000,
-/**/ 0xBD3D5674, 0xD6CF558E,
-/**/ 0x3FF0DC00, 0x00000000,
-/**/ 0xBF2BEAEE, 0x172D4CE8,
-/**/ 0xBFAAAEF2, 0xD0FB0000,
-/**/ 0xBD20FC1A, 0x353BB42E,
-/**/ 0x3FF0D800, 0x00000000,
-/**/ 0xBF34EAB0, 0x479071A9,
-/**/ 0xBFAA282B, 0x8A938000,
-/**/ 0x3D2E8F59, 0x80EFC8E3,
-/**/ 0x3FF0D400, 0x00000000,
-/**/ 0xBF3BBA9C, 0xA61C62D3,
-/**/ 0xBFA9A187, 0xB5740000,
-/**/ 0x3D30C22E, 0x4EC4D90D,
-/**/ 0x3FF0CC00, 0x00000000,
-/**/ 0x3F3D9AA6, 0x77344011,
-/**/ 0xBFA91B07, 0x3EFD8000,
-/**/ 0x3D19D7C5, 0x3F76CA96,
-/**/ 0x3FF0C800, 0x00000000,
-/**/ 0x3F3714FB, 0xCDA3AC11,
-/**/ 0xBFA894AA, 0x149F8000,
-/**/ 0xBD39A19A, 0x8BE97661,
-/**/ 0x3FF0C400, 0x00000000,
-/**/ 0x3F30B446, 0x391F2E61,
-/**/ 0xBFA80E70, 0x23D90000,
-/**/ 0x3D399DC1, 0x6F28BF45,
-/**/ 0x3FF0C000, 0x00000000,
-/**/ 0x3F24F0D1, 0x682E11CD,
-/**/ 0xBFA78859, 0x5A358000,
-/**/ 0x3D108B0D, 0x083B3A4C,
-/**/ 0x3FF0BC00, 0x00000000,
-/**/ 0x3F118519, 0x5D5A36EA,
-/**/ 0xBFA70265, 0xA5510000,
-/**/ 0x3D2888DF, 0x11FD5CE7,
-/**/ 0x3FF0B800, 0x00000000,
-/**/ 0xBEF913DA, 0x62386CAB,
-/**/ 0xBFA67C94, 0xF2D48000,
-/**/ 0xBD3DAC20, 0x827CCA0C,
-/**/ 0x3FF0B400, 0x00000000,
-/**/ 0xBF1D7CFF, 0xBD31D7D0,
-/**/ 0xBFA5F6E7, 0x30790000,
-/**/ 0x3D20485A, 0x8012494C,
-/**/ 0x3FF0B000, 0x00000000,
-/**/ 0xBF2A11BA, 0x226951DC,
-/**/ 0xBFA5715C, 0x4C040000,
-/**/ 0x3D38888D, 0xDFC47628,
-/**/ 0x3FF0AC00, 0x00000000,
-/**/ 0xBF328E31, 0x7B2E9DD2,
-/**/ 0xBFA4EBF4, 0x334A0000,
-/**/ 0x3D2D9150, 0xF73BE773,
-/**/ 0x3FF0A800, 0x00000000,
-/**/ 0xBF37EF59, 0x7EF597EF,
-/**/ 0xBFA466AE, 0xD42E0000,
-/**/ 0x3D2C1673, 0x75BDFD28,
-/**/ 0x3FF0A400, 0x00000000,
-/**/ 0xBF3D2C71, 0x50D413C1,
-/**/ 0xBFA3E18C, 0x1CA08000,
-/**/ 0xBD3748ED, 0x3F6E378E,
-/**/ 0x3FF09C00, 0x00000000,
-/**/ 0x3F3DBA6A, 0xF836010A,
-/**/ 0xBFA35C8B, 0xFAA10000,
-/**/ 0xBD38357D, 0x5EF9EB35,
-/**/ 0x3FF09800, 0x00000000,
-/**/ 0x3F38C51F, 0x624D4AF5,
-/**/ 0xBFA2D7AE, 0x5C3C8000,
-/**/ 0x3D322939, 0x459DA66D,
-/**/ 0x3FF09400, 0x00000000,
-/**/ 0x3F33F390, 0x10953F39,
-/**/ 0xBFA252F3, 0x2F8D0000,
-/**/ 0xBD283E9A, 0xE021B67B,
-/**/ 0x3FF09000, 0x00000000,
-/**/ 0x3F2E8B42, 0x861539B9,
-/**/ 0xBFA1CE5A, 0x62BC0000,
-/**/ 0xBD3A9CC7, 0x8D8DF999,
-/**/ 0x3FF08C00, 0x00000000,
-/**/ 0x3F25766E, 0xACBC4021,
-/**/ 0xBFA149E3, 0xE4008000,
-/**/ 0x3D32B98A, 0x9A4168FD,
-/**/ 0x3FF08800, 0x00000000,
-/**/ 0x3F1950DB, 0x0F3DBD5A,
-/**/ 0xBFA0C58F, 0xA19E0000,
-/**/ 0x3D0559D1, 0x58B17913,
-/**/ 0x3FF08400, 0x00000000,
-/**/ 0x3F008421, 0x08421084,
-/**/ 0xBFA0415D, 0x89E78000,
-/**/ 0x3D3DDDC7, 0xF461C516,
-/**/ 0x3FF08000, 0x00000000,
-/**/ 0xBF007FDF, 0x0041FF7C,
-/**/ 0xBF9F7A9B, 0x16780000,
-/**/ 0xBD242AD9, 0x271BE7D7,
-/**/ 0x3FF07C00, 0x00000000,
-/**/ 0xBF183591, 0xC54798FB,
-/**/ 0xBF9E72BF, 0x28140000,
-/**/ 0x3D28D751, 0x49774D47,
-/**/ 0x3FF07800, 0x00000000,
-/**/ 0xBF23CFA1, 0x518F4EFD,
-/**/ 0xBF9D6B27, 0x25980000,
-/**/ 0x3D39FF7B, 0x50D1B838,
-/**/ 0x3FF07400, 0x00000000,
-/**/ 0xBF2B3EB7, 0x01073261,
-/**/ 0xBF9C63D2, 0xEC150000,
-/**/ 0x3D35439C, 0xE030A687,
-/**/ 0x3FF07000, 0x00000000,
-/**/ 0xBF31341F, 0xD6EAB025,
-/**/ 0xBF9B5CC2, 0x58B70000,
-/**/ 0xBD18E611, 0xB8AFBFE8,
-/**/ 0x3FF06C00, 0x00000000,
-/**/ 0xBF34A638, 0x6ED049E0,
-/**/ 0xBF9A55F5, 0x48C60000,
-/**/ 0x3D2DE070, 0x9F2D03C9,
-/**/ 0x3FF06800, 0x00000000,
-/**/ 0xBF37F5BF, 0xEF997F5C,
-/**/ 0xBF994F6B, 0x99A20000,
-/**/ 0xBD311D5E, 0xF96CF7F5,
-/**/ 0x3FF06400, 0x00000000,
-/**/ 0xBF3B22D0, 0xE5604189,
-/**/ 0xBF984925, 0x28C90000,
-/**/ 0x3D2AA0BA, 0x325A0C34,
-/**/ 0x3FF06000, 0x00000000,
-/**/ 0xBF3E2D85, 0xC1163FF0,
-/**/ 0xBF974321, 0xD3D00000,
-/**/ 0xBCFB4A69, 0x0FE94778,
-/**/ 0x3FF05800, 0x00000000,
-/**/ 0x3F3EEA07, 0x27586632,
-/**/ 0xBF963D61, 0x78690000,
-/**/ 0xBD07ABF3, 0x89596542,
-/**/ 0x3FF05400, 0x00000000,
-/**/ 0x3F3C23BB, 0x98E2A5E7,
-/**/ 0xBF9537E3, 0xF45F0000,
-/**/ 0xBD2AB259, 0xD2D7F253,
-/**/ 0x3FF05000, 0x00000000,
-/**/ 0x3F397F7D, 0x73404146,
-/**/ 0xBF9432A9, 0x25980000,
-/**/ 0xBD098139, 0x928637FE,
-/**/ 0x3FF04C00, 0x00000000,
-/**/ 0x3F36FD32, 0xB0C7B49A,
-/**/ 0xBF932DB0, 0xEA130000,
-/**/ 0xBD2710CB, 0x130895FC,
-/**/ 0x3FF04800, 0x00000000,
-/**/ 0x3F349CC1, 0x664C578A,
-/**/ 0xBF9228FB, 0x1FEA0000,
-/**/ 0xBD2713E3, 0x284991FE,
-/**/ 0x3FF04400, 0x00000000,
-/**/ 0x3F325E0F, 0xC2FCB1F4,
-/**/ 0xBF912487, 0xA5500000,
-/**/ 0xBD3FDBE5, 0xFED4B393,
-/**/ 0x3FF04000, 0x00000000,
-/**/ 0x3F304104, 0x10410410,
-/**/ 0xBF902056, 0x58930000,
-/**/ 0xBD3611D2, 0x7C8E8417,
-/**/ 0x3FF03C00, 0x00000000,
-/**/ 0x3F2C8B09, 0x6334030B,
-/**/ 0xBF8E38CE, 0x30340000,
-/**/ 0x3D39DE88, 0xA3DA281A,
-/**/ 0x3FF03800, 0x00000000,
-/**/ 0x3F28D6F0, 0x48FF7E3A,
-/**/ 0xBF8C3173, 0x84C80000,
-/**/ 0x3D341F33, 0xFCEFB9FE,
-/**/ 0x3FF03400, 0x00000000,
-/**/ 0x3F25658A, 0x0081A559,
-/**/ 0xBF8A2A9C, 0x6C180000,
-/**/ 0x3D3F73BC, 0x4D6D3472,
-/**/ 0x3FF03000, 0x00000000,
-/**/ 0x3F2236A3, 0xEBC349DE,
-/**/ 0xBF882448, 0xA3880000,
-/**/ 0xBD345544, 0x12C584E0,
-/**/ 0x3FF02C00, 0x00000000,
-/**/ 0x3F1E9417, 0x3FEFD386,
-/**/ 0xBF861E77, 0xE8B60000,
-/**/ 0x3D38073E, 0xEAF8EAF3,
-/**/ 0x3FF02800, 0x00000000,
-/**/ 0x3F193F1D, 0xCA7A317C,
-/**/ 0xBF841929, 0xF9680000,
-/**/ 0xBD1977C7, 0x55D01368,
-/**/ 0x3FF02400, 0x00000000,
-/**/ 0x3F146DF7, 0x6CB49652,
-/**/ 0xBF82145E, 0x939E0000,
-/**/ 0xBD3E3D12, 0x38C4EA00,
-/**/ 0x3FF02000, 0x00000000,
-/**/ 0x3F102040, 0x81020408,
-/**/ 0xBF801015, 0x75880000,
-/**/ 0xBD3BCE25, 0x1998B506,
-/**/ 0x3FF01C00, 0x00000000,
-/**/ 0x3F08AB2B, 0x8C355D63,
-/**/ 0xBF7C189C, 0xBB100000,
-/**/ 0x3D3D8055, 0x12588560,
-/**/ 0x3FF01800, 0x00000000,
-/**/ 0x3F021B28, 0xBD1BA97E,
-/**/ 0xBF781212, 0x14580000,
-/**/ 0xBD1AD503, 0x82973F27,
-/**/ 0x3FF01400, 0x00000000,
-/**/ 0x3EF91F67, 0x411155AB,
-/**/ 0xBF740C8A, 0x74780000,
-/**/ 0xBD1E3871, 0xDF070002,
-/**/ 0x3FF01000, 0x00000000,
-/**/ 0x3EF01010, 0x10101010,
-/**/ 0xBF700805, 0x59580000,
-/**/ 0xBD2166AF, 0xCB31C67B,
-/**/ 0x3FF00C00, 0x00000000,
-/**/ 0x3EE20D8A, 0x279DB649,
-/**/ 0xBF680904, 0x82880000,
-/**/ 0xBD285C06, 0x96A70C0C,
-/**/ 0x3FF00800, 0x00000000,
-/**/ 0x3ED00804, 0x02010080,
-/**/ 0xBF600401, 0x55D80000,
-/**/ 0x3D33BB10, 0xC7CC7089,
-/**/ 0x3FF00400, 0x00000000,
-/**/ 0x3EB00401, 0x00401004,
-/**/ 0xBF500200, 0x55600000,
-/**/ 0xBD356224, 0xCD5F35F8,
-/**/ 0x3FF00000, 0x00000000,
-/**/ 0x00000000, 0x00000000,
-/**/ 0x00000000, 0x00000000,
-/**/ 0x00000000, 0x00000000,
-/**/ 0x3FEFF800, 0x00000000,
-/**/ 0x3EAFF801, 0xFF801FF8,
-/**/ 0x3F4FFC00, 0xAA800000,
-/**/ 0x3D35621F, 0x7809A0A3,
-/**/ 0x3FEFF000, 0x00000000,
-/**/ 0x3ECFF007, 0xFC01FF00,
-/**/ 0x3F5FF802, 0xA9B00000,
-/**/ 0xBD33BC66, 0x1D61C5EB,
-/**/ 0x3FEFE800, 0x00000000,
-/**/ 0x3EE1F28A, 0x186DADBE,
-/**/ 0x3F67F704, 0x7D780000,
-/**/ 0x3D283DA6, 0x89D68648,
-/**/ 0x3FEFE000, 0x00000000,
-/**/ 0x3EEFE01F, 0xE01FE020,
-/**/ 0x3F6FF00A, 0xA2B00000,
-/**/ 0x3D20BC04, 0xA086B56A,
-/**/ 0x3FEFD800, 0x00000000,
-/**/ 0x3EF8E0E6, 0xDF68BD14,
-/**/ 0x3F73F38A, 0x60F00000,
-/**/ 0x3D192256, 0x93C93749,
-/**/ 0x3FEFD000, 0x00000000,
-/**/ 0x3F01E528, 0x439A981C,
-/**/ 0x3F77EE11, 0xEBD80000,
-/**/ 0x3D0749D3, 0xC2D23A07,
-/**/ 0x3FEFC800, 0x00000000,
-/**/ 0x3F08556A, 0x8596391C,
-/**/ 0x3F7BE79C, 0x70040000,
-/**/ 0x3D38EC8F, 0x9A6C0404,
-/**/ 0x3FEFC000, 0x00000000,
-/**/ 0x3F0FC07F, 0x01FC07F0,
-/**/ 0x3F7FE02A, 0x6B100000,
-/**/ 0x3D19E23F, 0x0DDA40E4,
-/**/ 0x3FEFB800, 0x00000000,
-/**/ 0x3F1412D5, 0x9F5976B5,
-/**/ 0x3F81EBDE, 0x2D1A0000,
-/**/ 0xBD2A0683, 0xFF48DC36,
-/**/ 0x3FEFB000, 0x00000000,
-/**/ 0x3F18C21A, 0xBD271E34,
-/**/ 0x3F83E729, 0x5D260000,
-/**/ 0xBD2609C1, 0xFF29A114,
-/**/ 0x3FEFA800, 0x00000000,
-/**/ 0x3F1DEDB2, 0x5594A734,
-/**/ 0x3F85E1F7, 0x03EC0000,
-/**/ 0x3D37CA09, 0xF585DA1B,
-/**/ 0x3FEFA000, 0x00000000,
-/**/ 0x3F21CAA0, 0x1FA11CAA,
-/**/ 0x3F87DC47, 0x5F820000,
-/**/ 0xBD3EB124, 0x5B5DA1F5,
-/**/ 0x3FEF9800, 0x00000000,
-/**/ 0x3F24DC34, 0x55E8CB6B,
-/**/ 0x3F89D61A, 0xADC60000,
-/**/ 0x3D37B196, 0x327B4257,
-/**/ 0x3FEF9000, 0x00000000,
-/**/ 0x3F282B68, 0x13BAF1B2,
-/**/ 0x3F8BCF71, 0x2C740000,
-/**/ 0x3D1C25E0, 0x97BD9771,
-/**/ 0x3FEF8800, 0x00000000,
-/**/ 0x3F2BB80D, 0xCC420861,
-/**/ 0x3F8DC84B, 0x19120000,
-/**/ 0x3D1C0A54, 0x1E3A5B30,
-/**/ 0x3FEF8000, 0x00000000,
-/**/ 0x3F2F81F8, 0x1F81F820,
-/**/ 0x3F8FC0A8, 0xB0FC0000,
-/**/ 0x3CDF1E7C, 0xF6D3A69C,
-/**/ 0x3FEF7800, 0x00000000,
-/**/ 0x3F31C47C, 0xED1079FA,
-/**/ 0x3F90DC45, 0x18B00000,
-/**/ 0xBD29BC2F, 0x380313FC,
-/**/ 0x3FEF7000, 0x00000000,
-/**/ 0x3F33E672, 0xFA98528D,
-/**/ 0x3F91D7F7, 0xEB9F0000,
-/**/ 0xBD14193A, 0x83FCC7A6,
-/**/ 0x3FEF6800, 0x00000000,
-/**/ 0x3F3626C7, 0xCAFBD3D2,
-/**/ 0x3F92D36C, 0xEFB50000,
-/**/ 0x3D35F0BB, 0x341706C3,
-/**/ 0x3FEF6000, 0x00000000,
-/**/ 0x3F388565, 0x06DDABA6,
-/**/ 0x3F93CEA4, 0x43470000,
-/**/ 0xBD36A2C4, 0x32D6A40B,
-/**/ 0x3FEF5800, 0x00000000,
-/**/ 0x3F3B0234, 0x6CC4F5F5,
-/**/ 0x3F94C99E, 0x04900000,
-/**/ 0x3D1DECC6, 0x5DF5F4A5,
-/**/ 0x3FEF5000, 0x00000000,
-/**/ 0x3F3D9D1F, 0xD102728A,
-/**/ 0x3F95C45A, 0x51B90000,
-/**/ 0xBD263BB6, 0x216D87D8,
-/**/ 0x3FEF5000, 0x00000000,
-/**/ 0xBF3FA9EE, 0xE26A1DD4,
-/**/ 0x3F96BED9, 0x48D20000,
-/**/ 0xBD320BC4, 0x160A43F8,
-/**/ 0x3FEF4800, 0x00000000,
-/**/ 0xBF3CD30D, 0xADEC7540,
-/**/ 0x3F97B91B, 0x07D60000,
-/**/ 0xBD33B955, 0xB602ACE4,
-/**/ 0x3FEF4000, 0x00000000,
-/**/ 0xBF39DE52, 0x7C761DC6,
-/**/ 0x3F98B31F, 0xACAA0000,
-/**/ 0xBD33FC78, 0xA96E4964,
-/**/ 0x3FEF3800, 0x00000000,
-/**/ 0xBF36CBD3, 0x23989FF0,
-/**/ 0x3F99ACE7, 0x551D0000,
-/**/ 0xBD2D75D9, 0x7EC7C410,
-/**/ 0x3FEF3000, 0x00000000,
-/**/ 0xBF339BA5, 0x639F8B15,
-/**/ 0x3F9AA672, 0x1EE80000,
-/**/ 0x3D2AD4EB, 0x5C5AF494,
-/**/ 0x3FEF2800, 0x00000000,
-/**/ 0xBF304DDE, 0xE7AA579B,
-/**/ 0x3F9B9FC0, 0x27B00000,
-/**/ 0xBD3B9A01, 0x0AE6922A,
-/**/ 0x3FEF2000, 0x00000000,
-/**/ 0xBF29C52A, 0x8B8C46FD,
-/**/ 0x3F9C98D1, 0x8D010000,
-/**/ 0xBD2BF615, 0x0589DF0F,
-/**/ 0x3FEF1800, 0x00000000,
-/**/ 0xBF22B3BB, 0xFE0E92B4,
-/**/ 0x3F9D91A6, 0x6C540000,
-/**/ 0x3D2E61F1, 0x658CFB9A,
-/**/ 0x3FEF1000, 0x00000000,
-/**/ 0xBF16CF39, 0xFE8B488E,
-/**/ 0x3F9E8A3E, 0xE30D0000,
-/**/ 0xBD21A9FA, 0x3DE53900,
-/**/ 0x3FEF0800, 0x00000000,
-/**/ 0xBEFF07C1, 0xF07C1F08,
-/**/ 0x3F9F829B, 0x0E780000,
-/**/ 0x3D298026, 0x7C7E09E4,
-/**/ 0x3FEF0000, 0x00000000,
-/**/ 0x3EFF003E, 0x007C00F8,
-/**/ 0x3FA03D5D, 0x85E70000,
-/**/ 0x3D3F7789, 0x60ED29CF,
-/**/ 0x3FEEF800, 0x00000000,
-/**/ 0x3F17B671, 0x3D759870,
-/**/ 0x3FA0B94F, 0x7C198000,
-/**/ 0xBD2E8989, 0x6F022783,
-/**/ 0x3FEEF000, 0x00000000,
-/**/ 0x3F241070, 0x2A8BB96A,
-/**/ 0x3FA13523, 0x78598000,
-/**/ 0xBD1C1AC3, 0xB71FA59B,
-/**/ 0x3FEEE800, 0x00000000,
-/**/ 0x3F2C7F84, 0x58E01EEA,
-/**/ 0x3FA1B0D9, 0x89240000,
-/**/ 0xBD33401E, 0x9AE889BB,
-/**/ 0x3FEEE000, 0x00000000,
-/**/ 0x3F329425, 0xA3D491BC,
-/**/ 0x3FA22C71, 0xBCEA8000,
-/**/ 0x3CFD2818, 0xF87F888F,
-/**/ 0x3FEED800, 0x00000000,
-/**/ 0x3F37054D, 0x9E9D2AE8,
-/**/ 0x3FA2A7EC, 0x22150000,
-/**/ 0xBD278CE7, 0x7A9163FE,
-/**/ 0x3FEED000, 0x00000000,
-/**/ 0x3F3B9325, 0x540C85E6,
-/**/ 0x3FA32348, 0xC7000000,
-/**/ 0x3D2696DB, 0x90B1E49F,
-/**/ 0x3FEED000, 0x00000000,
-/**/ 0xBF3FC267, 0xF099FC26,
-/**/ 0x3FA39E87, 0xB9FE8000,
-/**/ 0x3D3EAFD4, 0x80AD9015,
-/**/ 0x3FEEC800, 0x00000000,
-/**/ 0xBF3AFB6E, 0xD02A4E5D,
-/**/ 0x3FA419A9, 0x09590000,
-/**/ 0x3D3B5CDC, 0x67D48EA7,
-/**/ 0x3FEEC000, 0x00000000,
-/**/ 0xBF361803, 0xD7A79FF1,
-/**/ 0x3FA494AC, 0xC34D8000,
-/**/ 0x3D211C78, 0xA56FD247,
-/**/ 0x3FEEB800, 0x00000000,
-/**/ 0xBF31183B, 0x805C2197,
-/**/ 0x3FA50F92, 0xF60F8000,
-/**/ 0x3D296CFB, 0x0A91FFE3,
-/**/ 0x3FEEB000, 0x00000000,
-/**/ 0xBF27F854, 0x5FE15180,
-/**/ 0x3FA58A5B, 0xAFC90000,
-/**/ 0xBD2B2B73, 0x9570AD39,
-/**/ 0x3FEEA800, 0x00000000,
-/**/ 0xBF1B0F90, 0xE210C36A,
-/**/ 0x3FA60506, 0xFE990000,
-/**/ 0xBD32BA40, 0x8194E036,
-/**/ 0x3FEEA000, 0x00000000,
-/**/ 0xBEF6F7DD, 0x8C33ADB2,
-/**/ 0x3FA67F94, 0xF0948000,
-/**/ 0x3D3ECC1F, 0x3E7E4ED7,
-/**/ 0x3FEE9800, 0x00000000,
-/**/ 0x3F1003D3, 0x1003D310,
-/**/ 0x3FA6FA05, 0x93C78000,
-/**/ 0x3D3B415E, 0x41D634A1,
-/**/ 0x3FEE9000, 0x00000000,
-/**/ 0x3F231ABF, 0x0B7672A0,
-/**/ 0x3FA77458, 0xF6330000,
-/**/ 0xBD3181DC, 0xE586AF09,
-/**/ 0x3FEE8800, 0x00000000,
-/**/ 0x3F2E6B5C, 0xCF172481,
-/**/ 0x3FA7EE8F, 0x25CD8000,
-/**/ 0xBD3F4216, 0x11A5C1E9,
-/**/ 0x3FEE8000, 0x00000000,
-/**/ 0x3F34F9CD, 0x77A84876,
-/**/ 0x3FA868A8, 0x30840000,
-/**/ 0xBD12623A, 0x134AC693,
-/**/ 0x3FEE7800, 0x00000000,
-/**/ 0x3F3AD9A8, 0xD7473427,
-/**/ 0x3FA8E2A4, 0x243A0000,
-/**/ 0x3D2B9EEB, 0x01426490,
-/**/ 0x3FEE7800, 0x00000000,
-/**/ 0xBF3F2AD3, 0x4578DCCA,
-/**/ 0x3FA95C83, 0x0EC90000,
-/**/ 0xBD2C1482, 0x97C5FEB8,
-/**/ 0x3FEE7000, 0x00000000,
-/**/ 0xBF3913BA, 0x97A6A035,
-/**/ 0x3FA9D644, 0xFDFF8000,
-/**/ 0x3D313C90, 0x539A473B,
-/**/ 0x3FEE6800, 0x00000000,
-/**/ 0xBF32E120, 0xC594A915,
-/**/ 0x3FAA4FE9, 0xFFA40000,
-/**/ 0xBD36E584, 0xA0402925,
-/**/ 0x3FEE6000, 0x00000000,
-/**/ 0xBF292632, 0xC5DF4232,
-/**/ 0x3FAAC972, 0x21710000,
-/**/ 0x3D2F8D3E, 0xF013222C,
-/**/ 0x3FEE5800, 0x00000000,
-/**/ 0xBF18A6DF, 0xC3518A6E,
-/**/ 0x3FAB42DD, 0x71198000,
-/**/ 0xBD1C827A, 0xE5D6704C,
-/**/ 0x3FEE5000, 0x00000000,
-/**/ 0x3ED6BC08, 0x86833271,
-/**/ 0x3FABBC2B, 0xFC450000,
-/**/ 0xBD17D186, 0x91417DAF,
-/**/ 0x3FEE4800, 0x00000000,
-/**/ 0x3F1BEB2D, 0xE672838D,
-/**/ 0x3FAC355D, 0xD0920000,
-/**/ 0x3D2F2CCC, 0x9ABF8388,
-/**/ 0x3FEE4000, 0x00000000,
-/**/ 0x3F2B6B8D, 0x9785150A,
-/**/ 0x3FACAE72, 0xFB960000,
-/**/ 0xBD3EFABF, 0x2025B1BE,
-/**/ 0x3FEE3800, 0x00000000,
-/**/ 0x3F348BCE, 0xE0D399FA,
-/**/ 0x3FAD276B, 0x8ADB0000,
-/**/ 0x3D16A423, 0xC78A64B0,
-/**/ 0x3FEE3000, 0x00000000,
-/**/ 0x3F3B7CD0, 0x933AC00F,
-/**/ 0x3FADA047, 0x8BE38000,
-/**/ 0x3D2252C7, 0xB1F6FE05,
-/**/ 0x3FEE3000, 0x00000000,
-/**/ 0xBF3D7747, 0x308F5281,
-/**/ 0x3FAE1907, 0x0C278000,
-/**/ 0xBD2FEA46, 0x64629E86,
-/**/ 0x3FEE2800, 0x00000000,
-/**/ 0xBF36508B, 0x6C196F66,
-/**/ 0x3FAE91AA, 0x19150000,
-/**/ 0xBD0E82A0, 0x1DCC6A76,
-/**/ 0x3FEE2000, 0x00000000,
-/**/ 0xBF2E1E1E, 0x1E1E1E1E,
-/**/ 0x3FAF0A30, 0xC0118000,
-/**/ 0xBD2D599E, 0x83368E91,
-/**/ 0x3FEE1800, 0x00000000,
-/**/ 0xBF1ECB93, 0xDD355CDB,
-/**/ 0x3FAF829B, 0x0E780000,
-/**/ 0x3D398026, 0x7C7E09E4,
-/**/ 0x3FEE1000, 0x00000000,
-/**/ 0xBECE0FF8, 0x7C01E100,
-/**/ 0x3FAFFAE9, 0x119B8000,
-/**/ 0x3D230337, 0x4262C554,
-/**/ 0x3FEE0800, 0x00000000,
-/**/ 0x3F1D54B5, 0x25C73724,
-/**/ 0x3FB0398D, 0x6B624000,
-/**/ 0xBD3AB14D, 0xFCBFCD00,
-/**/ 0x3FEE0000, 0x00000000,
-/**/ 0x3F2E01E0, 0x1E01E01E,
-/**/ 0x3FB07598, 0x35990000,
-/**/ 0xBD3B8ECF, 0xE4B59987,
-/**/ 0x3FEDF800, 0x00000000,
-/**/ 0x3F36C715, 0xC84194BA,
-/**/ 0x3FB0B194, 0xEE0D0000,
-/**/ 0x3D3666EA, 0x4F69EDCC,
-/**/ 0x3FEDF000, 0x00000000,
-/**/ 0x3F3EA78B, 0xEF26D838,
-/**/ 0x3FB0ED83, 0x9B554000,
-/**/ 0xBD3901F4, 0x6D48ABB4,
-/**/ 0x3FEDF000, 0x00000000,
-/**/ 0xBF395DBF, 0xF10995DC,
-/**/ 0x3FB12964, 0x44030000,
-/**/ 0xBD3D53BB, 0x751AA773,
-/**/ 0x3FEDE800, 0x00000000,
-/**/ 0xBF3148E0, 0x3BCBADC8,
-/**/ 0x3FB16536, 0xEEA38000,
-/**/ 0xBD147C5E, 0x768FA309,
-/**/ 0x3FEDE000, 0x00000000,
-/**/ 0xBF2233CE, 0x86E25CE1,
-/**/ 0x3FB1A0FB, 0xA1BF8000,
-/**/ 0x3D24A3FC, 0xC319D6DC,
-/**/ 0x3FEDD800, 0x00000000,
-/**/ 0xBEEA1CE9, 0x26B3FE23,
-/**/ 0x3FB1DCB2, 0x63DB0000,
-/**/ 0x3D39444F, 0x5E9E8981,
-/**/ 0x3FEDD000, 0x00000000,
-/**/ 0x3F1E4836, 0x0AB71710,
-/**/ 0x3FB2185B, 0x3B75C000,
-/**/ 0xBD3E3189, 0xF8F32304,
-/**/ 0x3FEDC800, 0x00000000,
-/**/ 0x3F300EE5, 0x00EE500F,
-/**/ 0x3FB253F6, 0x2F0A0000,
-/**/ 0x3D3416F8, 0xFB69A701,
-/**/ 0x3FEDC000, 0x00000000,
-/**/ 0x3F38A58D, 0x231C226A,
-/**/ 0x3FB28F83, 0x450EC000,
-/**/ 0x3D3A8D75, 0xAA119769,
-/**/ 0x3FEDC000, 0x00000000,
-/**/ 0xBF3EAA0C, 0x14715D63,
-/**/ 0x3FB2CB02, 0x83F5C000,
-/**/ 0x3D3E1EE2, 0xCA657021,
-/**/ 0x3FEDB800, 0x00000000,
-/**/ 0xBF35DFF8, 0x92AEFFC5,
-/**/ 0x3FB30673, 0xF22C8000,
-/**/ 0x3D24C9E2, 0x9DCF0BA5,
-/**/ 0x3FEDB000, 0x00000000,
-/**/ 0xBF29F894, 0x67E251A0,
-/**/ 0x3FB341D7, 0x961BC000,
-/**/ 0x3D31D092, 0x99837610,
-/**/ 0x3FEDA800, 0x00000000,
-/**/ 0xBF0FF896, 0x1FF89620,
-/**/ 0x3FB37D2D, 0x76284000,
-/**/ 0xBD2C60AA, 0x9B7FF15C,
-/**/ 0x3FEDA000, 0x00000000,
-/**/ 0x3F145E70, 0x076828BD,
-/**/ 0x3FB3B875, 0x98B1C000,
-/**/ 0xBD222415, 0x94ACA313,
-/**/ 0x3FED9800, 0x00000000,
-/**/ 0x3F2C8F60, 0xE567D573,
-/**/ 0x3FB3F3B0, 0x04140000,
-/**/ 0x3CEE2474, 0xACDFCEC5,
-/**/ 0x3FED9000, 0x00000000,
-/**/ 0x3F379118, 0xF3FC4DA2,
-/**/ 0x3FB42EDC, 0xBEA64000,
-/**/ 0x3D1BC0EE, 0xEA7C9ACD,
-/**/ 0x3FED9000, 0x00000000,
-/**/ 0xBF3F0C3C, 0x049DE4C3,
-/**/ 0x3FB469FB, 0xCEBB4000,
-/**/ 0x3D3B663C, 0x4F257194,
-/**/ 0x3FED8800, 0x00000000,
-/**/ 0xBF35905F, 0xF13D5906,
-/**/ 0x3FB4A50D, 0x3AA1C000,
-/**/ 0xBD2F7FE1, 0x308973E2,
-/**/ 0x3FED8000, 0x00000000,
-/**/ 0xBF27F6C8, 0x77D1EA57,
-/**/ 0x3FB4E011, 0x08A34000,
-/**/ 0x3D3AE5CF, 0xDF2C5AE5,
-/**/ 0x3FED7800, 0x00000000,
-/**/ 0xBF026AD1, 0xF4F31BA0,
-/**/ 0x3FB51B07, 0x3F060000,
-/**/ 0x3D383F69, 0x278E686A,
-/**/ 0x3FED7000, 0x00000000,
-/**/ 0x3F1DE6B2, 0xF26DF1BD,
-/**/ 0x3FB555EF, 0xE40B4000,
-/**/ 0x3D30B497, 0x8C868E23,
-/**/ 0x3FED6800, 0x00000000,
-/**/ 0x3F31599F, 0x7BA23D96,
-/**/ 0x3FB590CA, 0xFDF00000,
-/**/ 0x3D3C284F, 0x5722ABAA,
-/**/ 0x3FED6000, 0x00000000,
-/**/ 0x3F3B526C, 0xD425A760,
-/**/ 0x3FB5CB98, 0x92ED4000,
-/**/ 0x3D17BE44, 0xA64FC52F,
-/**/ 0x3FED6000, 0x00000000,
-/**/ 0xBF3A9BFC, 0x546A6FF1,
-/**/ 0x3FB60658, 0xA9374000,
-/**/ 0x3D30C3B1, 0xDEE9C4F8,
-/**/ 0x3FED5800, 0x00000000,
-/**/ 0xBF3071AD, 0x08F02FAC,
-/**/ 0x3FB6410B, 0x46FE8000,
-/**/ 0xBD153F8F, 0x3CBD8D14,
-/**/ 0x3FED5000, 0x00000000,
-/**/ 0xBF18BAD9, 0x12C6C142,
-/**/ 0x3FB67BB0, 0x726EC000,
-/**/ 0x3CEF724B, 0x69EF5912,
-/**/ 0x3FED4800, 0x00000000,
-/**/ 0x3F10B35C, 0x3254A5A2,
-/**/ 0x3FB6B648, 0x31B00000,
-/**/ 0xBD3BF30A, 0x1377DE92,
-/**/ 0x3FED4000, 0x00000000,
-/**/ 0x3F2D41D4, 0x1D41D41D,
-/**/ 0x3FB6F0D2, 0x8AE58000,
-/**/ 0xBD34B464, 0x1B664613,
-/**/ 0x3FED3800, 0x00000000,
-/**/ 0x3F392D71, 0xF494E548,
-/**/ 0x3FB72B4F, 0x842EC000,
-/**/ 0xBD3704CC, 0xC00C9DD3,
-/**/ 0x3FED3800, 0x00000000,
-/**/ 0xBF3C2DA1, 0xFF165C2E,
-/**/ 0x3FB765BF, 0x23A6C000,
-/**/ 0xBCFECBC0, 0x35C4256A,
-/**/ 0x3FED3000, 0x00000000,
-/**/ 0xBF317062, 0x7AA49674,
-/**/ 0x3FB7A021, 0x6F648000,
-/**/ 0x3D3E124C, 0xA18418FF,
-/**/ 0x3FED2800, 0x00000000,
-/**/ 0xBF1A6B80, 0x749CB290,
-/**/ 0x3FB7DA76, 0x6D7B0000,
-/**/ 0x3D32CC84, 0x4480C89B,
-/**/ 0x3FED2000, 0x00000000,
-/**/ 0x3F114B52, 0x25C6336D,
-/**/ 0x3FB814BE, 0x23F8C000,
-/**/ 0x3CCB2381, 0xDA82FDFD,
-/**/ 0x3FED1800, 0x00000000,
-/**/ 0x3F2EB155, 0xF08A3B1D,
-/**/ 0x3FB84EF8, 0x98E84000,
-/**/ 0xBD37D5CD, 0x246977C9,
-/**/ 0x3FED1000, 0x00000000,
-/**/ 0x3F3A7692, 0xBD71CD93,
-/**/ 0x3FB88925, 0xD24FC000,
-/**/ 0xBD31D505, 0x44FBB806,
-/**/ 0x3FED1000, 0x00000000,
-/**/ 0xBF3A5384, 0x89FC5E69,
-/**/ 0x3FB8C345, 0xD6318000,
-/**/ 0x3D3B20F5, 0xACB42A66,
-/**/ 0x3FED0800, 0x00000000,
-/**/ 0xBF2E0B56, 0x6439240E,
-/**/ 0x3FB8FD58, 0xAA8C4000,
-/**/ 0xBD3EEC90, 0x1BCB725B,
-/**/ 0x3FED0000, 0x00000000,
-/**/ 0xBF0CFF8C, 0x01CFF8C0,
-/**/ 0x3FB9375E, 0x55594000,
-/**/ 0x3D3EDDC3, 0x7380C364,
-/**/ 0x3FECF800, 0x00000000,
-/**/ 0x3F1F7661, 0x546D8D78,
-/**/ 0x3FB97156, 0xDC8F8000,
-/**/ 0xBD3C1FC1, 0x9AFDB97B,
-/**/ 0x3FECF000, 0x00000000,
-/**/ 0x3F3372E2, 0x25FE30D9,
-/**/ 0x3FB9AB42, 0x46204000,
-/**/ 0xBD28A648, 0x26787061,
-/**/ 0x3FECE800, 0x00000000,
-/**/ 0x3F3F1FDB, 0xD92305A6,
-/**/ 0x3FB9E520, 0x97F9C000,
-/**/ 0x3D235FAC, 0xB52DD050,
-/**/ 0x3FECE800, 0x00000000,
-/**/ 0xBF351B8A, 0x9C37FC63,
-/**/ 0x3FBA1EF1, 0xD8060000,
-/**/ 0x3D3CD417, 0x6DF97BCB,
-/**/ 0x3FECE000, 0x00000000,
-/**/ 0xBF227EC2, 0x6CB725AB,
-/**/ 0x3FBA58B6, 0x0C2B4000,
-/**/ 0xBD3CDC73, 0x5C5C9F2A,
-/**/ 0x3FECD800, 0x00000000,
-/**/ 0x3F05A240, 0xE6C2B448,
-/**/ 0x3FBA926D, 0x3A4AC000,
-/**/ 0x3D356365, 0x0BD22A9C,
-/**/ 0x3FECD000, 0x00000000,
-/**/ 0x3F2D7EC2, 0xFBB8D9F3,
-/**/ 0x3FBACC17, 0x68434000,
-/**/ 0xBD2AA783, 0xA0B7FA4C,
-/**/ 0x3FECC800, 0x00000000,
-/**/ 0x3F3AE1DB, 0x1B71D3E9,
-/**/ 0x3FBB05B4, 0x9BEE4000,
-/**/ 0x3D0FF22C, 0x18F84A5E,
-/**/ 0x3FECC800, 0x00000000,
-/**/ 0xBF38E45A, 0xCD6DE82D,
-/**/ 0x3FBB3F44, 0xDB220000,
-/**/ 0x3D3FD153, 0xD8DE09AF,
-/**/ 0x3FECC000, 0x00000000,
-/**/ 0xBF29269F, 0xE341926A,
-/**/ 0x3FBB78C8, 0x2BB10000,
-/**/ 0xBD325EF7, 0xBC3987E7,
-/**/ 0x3FECB800, 0x00000000,
-/**/ 0xBEC589FB, 0xF620C1DA,
-/**/ 0x3FBBB23E, 0x93690000,
-/**/ 0xBD368B18, 0x3559DB8B,
-/**/ 0x3FECB000, 0x00000000,
-/**/ 0x3F28A893, 0x0DE5FF1A,
-/**/ 0x3FBBEBA8, 0x18148000,
-/**/ 0xBD389B78, 0xB6DF1F57,
-/**/ 0x3FECA800, 0x00000000,
-/**/ 0x3F38EAB9, 0x0039563B,
-/**/ 0x3FBC2504, 0xBF79C000,
-/**/ 0x3D3717C4, 0xD0EF4ADC,
-/**/ 0x3FECA800, 0x00000000,
-/**/ 0xBF3A67D5, 0x08F377F2,
-/**/ 0x3FBC5E54, 0x8F5BC000,
-/**/ 0x3D1D0C57, 0x585FBE06,
-/**/ 0x3FECA000, 0x00000000,
-/**/ 0xBF2B46E0, 0x072792E4,
-/**/ 0x3FBC9797, 0x8D790000,
-/**/ 0xBD36E010, 0x977D1884,
-/**/ 0x3FEC9800, 0x00000000,
-/**/ 0xBEE904EA, 0x1BB327C3,
-/**/ 0x3FBCD0CD, 0xBF8C0000,
-/**/ 0x3D33E14D, 0xB50DD743,
-/**/ 0x3FEC9000, 0x00000000,
-/**/ 0x3F2853EB, 0x77683AEC,
-/**/ 0x3FBD09F7, 0x2B4C4000,
-/**/ 0x3D2048C0, 0x00354E33,
-/**/ 0x3FEC8800, 0x00000000,
-/**/ 0x3F3932D7, 0xDC52100E,
-/**/ 0x3FBD4313, 0xD66CC000,
-/**/ 0xBD294543, 0x79135713,
-/**/ 0x3FEC8800, 0x00000000,
-/**/ 0xBF39AD90, 0x2736962B,
-/**/ 0x3FBD7C23, 0xC69CC000,
-/**/ 0xBD297EE4, 0xDD328771,
-/**/ 0x3FEC8000, 0x00000000,
-/**/ 0xBF28EEA2, 0xF316B4C2,
-/**/ 0x3FBDB527, 0x0187C000,
-/**/ 0x3D392778, 0x56AE181F,
-/**/ 0x3FEC7800, 0x00000000,
-/**/ 0x3EEAB099, 0x058F7536,
-/**/ 0x3FBDEE1D, 0x8CD60000,
-/**/ 0xBD328DA0, 0x729EFF89,
-/**/ 0x3FEC7000, 0x00000000,
-/**/ 0x3F2C71C7, 0x1C71C71C,
-/**/ 0x3FBE2707, 0x6E2B0000,
-/**/ 0xBD2A342C, 0x2AF0003C,
-/**/ 0x3FEC6800, 0x00000000,
-/**/ 0x3F3BB2BB, 0xD6422A30,
-/**/ 0x3FBE5FE4, 0xAB274000,
-/**/ 0xBD35FAE9, 0xF74FFE4D,
-/**/ 0x3FEC6800, 0x00000000,
-/**/ 0xBF36BD01, 0x54BDE47E,
-/**/ 0x3FBE98B5, 0x49670000,
-/**/ 0x3D346774, 0x89C50E97,
-/**/ 0x3FEC6000, 0x00000000,
-/**/ 0xBF222CC5, 0xB5157FE4,
-/**/ 0x3FBED179, 0x4E838000,
-/**/ 0xBD1FD143, 0x749D0484,
-/**/ 0x3FEC5800, 0x00000000,
-/**/ 0x3F129A21, 0xA930B840,
-/**/ 0x3FBF0A30, 0xC0118000,
-/**/ 0xBD3D599E, 0x83368E91,
-/**/ 0x3FEC5000, 0x00000000,
-/**/ 0x3F3279B1, 0xAC5CEE14,
-/**/ 0x3FBF42DB, 0xA3A24000,
-/**/ 0xBD3312B7, 0x32DF6C0D,
-/**/ 0x3FEC5000, 0x00000000,
-/**/ 0xBF3F9CF5, 0xD4AB8D0B,
-/**/ 0x3FBF7B79, 0xFEC38000,
-/**/ 0xBD010987, 0xE897ED01,
-/**/ 0x3FEC4800, 0x00000000,
-/**/ 0xBF319D7C, 0xCC17DAE4,
-/**/ 0x3FBFB40B, 0xD6FF4000,
-/**/ 0x3D2C0BEC, 0xB7B53B5B,
-/**/ 0x3FEC4000, 0x00000000,
-/**/ 0xBF0C3F8F, 0x01C3F8F0,
-/**/ 0x3FBFEC91, 0x31DC0000,
-/**/ 0xBD354555, 0xD1AE6607,
-/**/ 0x3FEC3800, 0x00000000,
-/**/ 0x3F254738, 0xAB1B8FFC,
-/**/ 0x3FC01285, 0x0A6E0000,
-/**/ 0xBD1A8619, 0x4805BF94,
-/**/ 0x3FEC3000, 0x00000000,
-/**/ 0x3F38E51F, 0x48B3C5D7,
-/**/ 0x3FC02EBB, 0x42BF4000,
-/**/ 0xBD15A8FA, 0x5CE00E5D,
-/**/ 0x3FEC3000, 0x00000000,
-/**/ 0xBF38C377, 0x867E595E,
-/**/ 0x3FC04AEB, 0x449F6000,
-/**/ 0x3D2AFA90, 0x65CCD35C,
-/**/ 0x3FEC2800, 0x00000000,
-/**/ 0xBF24AC6D, 0x15FE3D95,
-/**/ 0x3FC06715, 0x12CA6000,
-/**/ 0xBD2A4757, 0x9CDC0A3D,
-/**/ 0x3FEC2000, 0x00000000,
-/**/ 0x3F10B34F, 0x53B8CDAE,
-/**/ 0x3FC08338, 0xAFFA2000,
-/**/ 0x3D30533C, 0xAC823E27,
-/**/ 0x3FEC1800, 0x00000000,
-/**/ 0x3F32C599, 0x3FABB0F6,
-/**/ 0x3FC09F56, 0x1EE72000,
-/**/ 0xBD28F305, 0x7157D1A8,
-/**/ 0x3FEC1800, 0x00000000,
-/**/ 0xBF3E8BF4, 0x97CD1B6C,
-/**/ 0x3FC0BB6D, 0x6247A000,
-/**/ 0x3D35464F, 0x3CCD04B3,
-/**/ 0x3FEC1000, 0x00000000,
-/**/ 0xBF2F8FC7, 0xE3F1F8FC,
-/**/ 0x3FC0D77E, 0x7CD08000,
-/**/ 0x3D3CB2CD, 0x2EE2F482,
-/**/ 0x3FEC0800, 0x00000000,
-/**/ 0xBEEDC860, 0x5B199F35,
-/**/ 0x3FC0F389, 0x7134C000,
-/**/ 0xBD3DA359, 0xE893D6C6,
-/**/ 0x3FEC0000, 0x00000000,
-/**/ 0x3F2C01C0, 0x1C01C01C,
-/**/ 0x3FC10F8E, 0x42254000,
-/**/ 0xBD293B38, 0x43396307,
-/**/ 0x3FEBF800, 0x00000000,
-/**/ 0x3F3D0577, 0x256228AA,
-/**/ 0x3FC12B8C, 0xF2518000,
-/**/ 0x3D348A4A, 0x13C0A0FC,
-/**/ 0x3FEBF800, 0x00000000,
-/**/ 0xBF33E08B, 0xCB93A8A1,
-/**/ 0x3FC14785, 0x84674000,
-/**/ 0x3D156345, 0x1027C750,
-/**/ 0x3FEBF000, 0x00000000,
-/**/ 0xBF12C4DB, 0x1DE63F4A,
-/**/ 0x3FC16377, 0xFB124000,
-/**/ 0x3D091E1A, 0xBF41763E,
-/**/ 0x3FEBE800, 0x00000000,
-/**/ 0x3F2526D0, 0x769F9E4F,
-/**/ 0x3FC17F64, 0x58FCA000,
-/**/ 0x3D2843FA, 0xD093C8DC,
-/**/ 0x3FEBE000, 0x00000000,
-/**/ 0x3F39ED43, 0x5292D891,
-/**/ 0x3FC19B4A, 0xA0CEE000,
-/**/ 0xBD3D8824, 0x9621338B,
-/**/ 0x3FEBE000, 0x00000000,
-/**/ 0xBF36A3B3, 0x5FC845A9,
-/**/ 0x3FC1B72A, 0xD52F6000,
-/**/ 0x3D2E80A4, 0x1811A396,
-/**/ 0x3FEBD800, 0x00000000,
-/**/ 0xBF1C7E26, 0xB7230491,
-/**/ 0x3FC1D304, 0xF8C36000,
-/**/ 0xBD3A6D44, 0xDF451042,
-/**/ 0x3FEBD000, 0x00000000,
-/**/ 0x3F20F365, 0x451B61CB,
-/**/ 0x3FC1EED9, 0x0E2DC000,
-/**/ 0x3D161563, 0x7097648F,
-/**/ 0x3FEBC800, 0x00000000,
-/**/ 0x3F3827F3, 0xD72DD0AA,
-/**/ 0x3FC20AA7, 0x18102000,
-/**/ 0x3D3F2C94, 0x348552FE,
-/**/ 0x3FEBC800, 0x00000000,
-/**/ 0xBF3814D3, 0xBE0C262F,
-/**/ 0x3FC2266F, 0x190A6000,
-/**/ 0xBD24D20A, 0xB840E7F6,
-/**/ 0x3FEBC000, 0x00000000,
-/**/ 0xBF207963, 0x7ECECB53,
-/**/ 0x3FC24231, 0x13BA6000,
-/**/ 0xBD3E3A00, 0x78EE9D9C,
-/**/ 0x3FEBB800, 0x00000000,
-/**/ 0x3F1EC130, 0xF29268D3,
-/**/ 0x3FC25DED, 0x0ABC6000,
-/**/ 0x3D35A385, 0x4F176449,
-/**/ 0x3FEBB000, 0x00000000,
-/**/ 0x3F37B218, 0xAB6353BF,
-/**/ 0x3FC279A3, 0x00AB4000,
-/**/ 0x3D3EF432, 0xB3235108,
-/**/ 0x3FEBB000, 0x00000000,
-/**/ 0xBF383759, 0xF2298376,
-/**/ 0x3FC29552, 0xF8200000,
-/**/ 0xBD35B967, 0xF4471DFC,
-/**/ 0x3FEBA800, 0x00000000,
-/**/ 0xBF201832, 0x1EAD4253,
-/**/ 0x3FC2B0FC, 0xF3B1A000,
-/**/ 0x3D177CA3, 0xE30A59EA,
-/**/ 0x3FEBA000, 0x00000000,
-/**/ 0x3F20679B, 0xD84886B1,
-/**/ 0x3FC2CCA0, 0xF5F60000,
-/**/ 0xBD3B5EF1, 0x91AFF120,
-/**/ 0x3FEB9800, 0x00000000,
-/**/ 0x3F38884D, 0xA41FEB4C,
-/**/ 0x3FC2E83F, 0x0180E000,
-/**/ 0xBD3F0C2A, 0xC284E1CE,
-/**/ 0x3FEB9800, 0x00000000,
-/**/ 0xBF370EA7, 0x3806E548,
-/**/ 0x3FC303D7, 0x18E48000,
-/**/ 0xBCD680B5, 0xCE3ECB05,
-/**/ 0x3FEB9000, 0x00000000,
-/**/ 0xBF1A4477, 0xB5EF34C0,
-/**/ 0x3FC31F69, 0x3EB1A000,
-/**/ 0xBD2A6726, 0xE5A396FB,
-/**/ 0x3FEB8800, 0x00000000,
-/**/ 0x3F2401B8, 0x9401B894,
-/**/ 0x3FC33AF5, 0x75770000,
-/**/ 0x3D3C9ECC, 0xA2FE72A5,
-/**/ 0x3FEB8000, 0x00000000,
-/**/ 0x3F3AA73A, 0x400DC1AA,
-/**/ 0x3FC3567B, 0xBFC22000,
-/**/ 0x3D3250D2, 0x53991A1F,
-/**/ 0x3FEB8000, 0x00000000,
-/**/ 0xBF349E11, 0x2E63A6A8,
-/**/ 0x3FC371FC, 0x201E8000,
-/**/ 0x3D3EE877, 0x9B2D8ABC,
-/**/ 0x3FEB7800, 0x00000000,
-/**/ 0xBF0E7898, 0xC8DA04B9,
-/**/ 0x3FC38D76, 0x99164000,
-/**/ 0x3D1844A5, 0x9E39BB70,
-/**/ 0x3FEB7000, 0x00000000,
-/**/ 0x3F2A284E, 0xE6B33E2D,
-/**/ 0x3FC3A8EB, 0x2D31A000,
-/**/ 0x3D1BAFB7, 0x7D5D503E,
-/**/ 0x3FEB6800, 0x00000000,
-/**/ 0x3F3E0B91, 0x759C2BB4,
-/**/ 0x3FC3C459, 0xDEF76000,
-/**/ 0x3D3EDC86, 0xF6B70D33,
-/**/ 0x3FEB6800, 0x00000000,
-/**/ 0xBF30E8E2, 0x088FD6E7,
-/**/ 0x3FC3DFC2, 0xB0ECC000,
-/**/ 0x3D28A72A, 0x62B8C13F,
-/**/ 0x3FEB6000, 0x00000000,
-/**/ 0x3ECB6006, 0xD801B600,
-/**/ 0x3FC3FB25, 0xA5952000,
-/**/ 0x3D3195BE, 0x6B358FF7,
-/**/ 0x3FEB5800, 0x00000000,
-/**/ 0x3F316A6A, 0xD840F62C,
-/**/ 0x3FC41682, 0xBF728000,
-/**/ 0xBD210047, 0x081F849D,
-/**/ 0x3FEB5800, 0x00000000,
-/**/ 0xBF3D4DEE, 0x7DF8BD99,
-/**/ 0x3FC431DA, 0x01050000,
-/**/ 0x3D304837, 0x836E0391,
-/**/ 0x3FEB5000, 0x00000000,
-/**/ 0xBF27E4B1, 0x7E4B17E5,
-/**/ 0x3FC44D2B, 0x6CCB8000,
-/**/ 0xBD170CC1, 0x6135783C,
-/**/ 0x3FEB4800, 0x00000000,
-/**/ 0x3F15F47D, 0x55E6D8FE,
-/**/ 0x3FC46877, 0x05430000,
-/**/ 0xBD3D8145, 0xF8D5087E,
-/**/ 0x3FEB4000, 0x00000000,
-/**/ 0x3F37006D, 0x0B803686,
-/**/ 0x3FC483BC, 0xCCE6E000,
-/**/ 0x3D1EEA52, 0x723F6369,
-/**/ 0x3FEB4000, 0x00000000,
-/**/ 0xBF37687C, 0x46A66920,
-/**/ 0x3FC49EFC, 0xC6314000,
-/**/ 0xBD090F59, 0x9F55572B,
-/**/ 0x3FEB3800, 0x00000000,
-/**/ 0xBF16F6A4, 0xFF2645BE,
-/**/ 0x3FC4BA36, 0xF39A6000,
-/**/ 0xBD34354B, 0xB3F219E5,
-/**/ 0x3FEB3000, 0x00000000,
-/**/ 0x3F2801B3, 0x1801B318,
-/**/ 0x3FC4D56B, 0x5798E000,
-/**/ 0x3D380580, 0x15A96555,
-/**/ 0x3FEB2800, 0x00000000,
-/**/ 0x3F3DD2FF, 0x93511680,
-/**/ 0x3FC4F099, 0xF4A24000,
-/**/ 0xBD3E9BF2, 0xFAFEAF27,
-/**/ 0x3FEB2800, 0x00000000,
-/**/ 0xBF304743, 0xA89DCCAC,
-/**/ 0x3FC50BC2, 0xCD29C000,
-/**/ 0x3D1ADA57, 0x28DB8D4F,
-/**/ 0x3FEB2000, 0x00000000,
-/**/ 0x3EFB2036, 0x406C80D9,
-/**/ 0x3FC526E5, 0xE3A1C000,
-/**/ 0xBD3790BA, 0x37FC5238,
-/**/ 0x3FEB1800, 0x00000000,
-/**/ 0x3F33BEC8, 0x4F9DC00E,
-/**/ 0x3FC54203, 0x3A7A8000,
-/**/ 0x3D268D68, 0xED855F0E,
-/**/ 0x3FEB1800, 0x00000000,
-/**/ 0xBF3A2101, 0x44F8CE7E,
-/**/ 0x3FC55D1A, 0xD4232000,
-/**/ 0x3D3ADD94, 0xDDA647E8,
-/**/ 0x3FEB1000, 0x00000000,
-/**/ 0xBF1FB596, 0xB99AF3F3,
-/**/ 0x3FC5782C, 0xB3092000,
-/**/ 0xBD33A463, 0x51794442,
-/**/ 0x3FEB0800, 0x00000000,
-/**/ 0x3F24B31D, 0x922A3E85,
-/**/ 0x3FC59338, 0xD9982000,
-/**/ 0x3CF0BA68, 0xB7555D4A,
-/**/ 0x3FEB0000, 0x00000000,
-/**/ 0x3F3CB3CF, 0xE19BF6B7,
-/**/ 0x3FC5AE3F, 0x4A3AA000,
-/**/ 0x3D21EA25, 0xF012A8B9,
-/**/ 0x3FEB0000, 0x00000000,
-/**/ 0xBF30DEAE, 0x9A5BF0D1,
-/**/ 0x3FC5C940, 0x07598000,
-/**/ 0xBD3A8D94, 0x8CD23322,
-/**/ 0x3FEAF800, 0x00000000,
-/**/ 0x3EFA2072, 0x9EDE13CE,
-/**/ 0x3FC5E43B, 0x135BE000,
-/**/ 0xBD343AB4, 0xCEED9C31,
-/**/ 0x3FEAF000, 0x00000000,
-/**/ 0x3F3435E5, 0x0D79435E,
-/**/ 0x3FC5FF30, 0x70A7A000,
-/**/ 0xBD38586F, 0x183BEBF2,
-/**/ 0x3FEAF000, 0x00000000,
-/**/ 0xBF392321, 0x06855D30,
-/**/ 0x3FC61A20, 0x21A0E000,
-/**/ 0x3D3DD9DD, 0x1BDF3CDD,
-/**/ 0x3FEAE800, 0x00000000,
-/**/ 0xBF19A45C, 0x7ABED811,
-/**/ 0x3FC6350A, 0x28AAA000,
-/**/ 0x3D2D5EC0, 0xAB8163AF,
-/**/ 0x3FEAE000, 0x00000000,
-/**/ 0x3F28C7ED, 0x84EF68CB,
-/**/ 0x3FC64FEE, 0x88260000,
-/**/ 0xBD1DA40D, 0x759DDED6,
-/**/ 0x3FEAD800, 0x00000000,
-/**/ 0x3F3F43FC, 0xA482F00D,
-/**/ 0x3FC66ACD, 0x4272A000,
-/**/ 0x3D3AA1BD, 0xBFC6C785,
-/**/ 0x3FEAD800, 0x00000000,
-/**/ 0xBF2B9222, 0xCDE3E7AE,
-/**/ 0x3FC685A6, 0x59EF0000,
-/**/ 0xBD21F2A9, 0x6C103214,
-/**/ 0x3FEAD000, 0x00000000,
-/**/ 0x3F14F302, 0xEED254A3,
-/**/ 0x3FC6A079, 0xD0F7A000,
-/**/ 0x3D35A3F8, 0x448D14F5,
-/**/ 0x3FEAC800, 0x00000000,
-/**/ 0x3F385567, 0x32071DEF,
-/**/ 0x3FC6BB47, 0xA9E80000,
-/**/ 0x3D19F64D, 0x23EA3296,
-/**/ 0x3FEAC800, 0x00000000,
-/**/ 0xBF347F29, 0xD47F29D4,
-/**/ 0x3FC6D60F, 0xE719E000,
-/**/ 0xBD3BC6E5, 0x57134767,
-/**/ 0x3FEAC000, 0x00000000,
-/**/ 0xBEF40FE1, 0xE82D23BC,
-/**/ 0x3FC6F0D2, 0x8AE56000,
-/**/ 0x3D369737, 0xC93373DA,
-/**/ 0x3FEAB800, 0x00000000,
-/**/ 0x3F320FDE, 0x972D8538,
-/**/ 0x3FC70B8F, 0x97A1A000,
-/**/ 0x3D34EA64, 0xF6A95BEF,
-/**/ 0x3FEAB800, 0x00000000,
-/**/ 0xBF3A8C9F, 0x66711513,
-/**/ 0x3FC72647, 0x0FA40000,
-/**/ 0xBD3774DF, 0x0E743A45,
-/**/ 0x3FEAB000, 0x00000000,
-/**/ 0xBF1C5A0F, 0x02806ABC,
-/**/ 0x3FC740F8, 0xF5404000,
-/**/ 0xBD30B66C, 0x99018AA1,
-/**/ 0x3FEAA800, 0x00000000,
-/**/ 0x3F28E44B, 0xD22C937A,
-/**/ 0x3FC75BA5, 0x4AC8E000,
-/**/ 0x3D3DDCA5, 0x8BC4A7C0,
-/**/ 0x3FEAA800, 0x00000000,
-/**/ 0xBF3FF2AD, 0xFF2ADFF3,
-/**/ 0x3FC7764C, 0x128F2000,
-/**/ 0x3D027490, 0x3479E3D1,
-/**/ 0x3FEAA000, 0x00000000,
-/**/ 0xBF288A16, 0x0B3ADA5C,
-/**/ 0x3FC790ED, 0x4EE26000,
-/**/ 0x3D199BBD, 0x4E7746F6,
-/**/ 0x3FEA9800, 0x00000000,
-/**/ 0x3F1DEC0D, 0x4C77B035,
-/**/ 0x3FC7AB89, 0x0210E000,
-/**/ 0xBD2BDB90, 0x72534A58,
-/**/ 0x3FEA9000, 0x00000000,
-/**/ 0x3F3B4D71, 0x91F59E6B,
-/**/ 0x3FC7C61F, 0x2E674000,
-/**/ 0xBD32392D, 0xB31BE8E0,
-/**/ 0x3FEA9000, 0x00000000,
-/**/ 0xBF30CDCB, 0xB8A2A522,
-/**/ 0x3FC7E0AF, 0xD630C000,
-/**/ 0x3D139E7C, 0x1D8F1034,
-/**/ 0x3FEA8800, 0x00000000,
-/**/ 0x3F094A00, 0x6A2194A0,
-/**/ 0x3FC7FB3A, 0xFBB76000,
-/**/ 0xBD37DBF5, 0x24609D57,
-/**/ 0x3FEA8000, 0x00000000,
-/**/ 0x3F373289, 0x870AC52E,
-/**/ 0x3FC815C0, 0xA1436000,
-/**/ 0xBD302A52, 0xF9201CE8,
-/**/ 0x3FEA8000, 0x00000000,
-/**/ 0xBF34B1FA, 0x9E8684DD,
-/**/ 0x3FC83040, 0xC91BC000,
-/**/ 0x3D3E5B71, 0xC6E66F32,
-/**/ 0x3FEA7800, 0x00000000,
-/**/ 0xBEE08AF5, 0xA9267648,
-/**/ 0x3FC84ABB, 0x75866000,
-/**/ 0xBD3D8DAA, 0xDF4E2BD2,
-/**/ 0x3FEA7000, 0x00000000,
-/**/ 0x3F33BB67, 0x1A3D927E,
-/**/ 0x3FC86530, 0xA8C70000,
-/**/ 0x3D398BB0, 0xCB4EA3E3,
-/**/ 0x3FEA7000, 0x00000000,
-/**/ 0xBF37F2C9, 0x7F2C97F3,
-/**/ 0x3FC87FA0, 0x6520C000,
-/**/ 0x3D322120, 0x401202FC,
-/**/ 0x3FEA6800, 0x00000000,
-/**/ 0xBF0C77A5, 0x3C076D20,
-/**/ 0x3FC89A0A, 0xACD4E000,
-/**/ 0x3D2C0BFB, 0xDA8F5A72,
-/**/ 0x3FEA6000, 0x00000000,
-/**/ 0x3F30E6DA, 0x7C7EF82B,
-/**/ 0x3FC8B46F, 0x82236000,
-/**/ 0x3D12D9F2, 0x102DD7C9,
-/**/ 0x3FEA6000, 0x00000000,
-/**/ 0xBF3A9167, 0x2EC05C44,
-/**/ 0x3FC8CECE, 0xE74AE000,
-/**/ 0xBD3A5BA0, 0xAA429BB5,
-/**/ 0x3FEA5800, 0x00000000,
-/**/ 0xBF17DF12, 0xEEB6BD53,
-/**/ 0x3FC8E928, 0xDE886000,
-/**/ 0x3D3A8154, 0xB13D72D5,
-/**/ 0x3FEA5000, 0x00000000,
-/**/ 0x3F2D676D, 0x98C70AE6,
-/**/ 0x3FC9037D, 0x6A180000,
-/**/ 0x3D230DEA, 0x57C1C8D9,
-/**/ 0x3FEA5000, 0x00000000,
-/**/ 0xBF3C8EFF, 0x96CE4780,
-/**/ 0x3FC91DCC, 0x8C340000,
-/**/ 0x3D37BC6A, 0xBDDEFF46,
-/**/ 0x3FEA4800, 0x00000000,
-/**/ 0xBF1EFFCB, 0x71EFFCB7,
-/**/ 0x3FC93816, 0x4715A000,
-/**/ 0xBD34C63D, 0x6A3A39D9,
-/**/ 0x3FEA4000, 0x00000000,
-/**/ 0x3F2A41A4, 0x1A41A41A,
-/**/ 0x3FC9525A, 0x9CF46000,
-/**/ 0xBD329713, 0x7D9F158F,
-/**/ 0x3FEA4000, 0x00000000,
-/**/ 0xBF3DECBB, 0xBF3B3C0E,
-/**/ 0x3FC96C99, 0x9006A000,
-/**/ 0x3D2A88D5, 0x9CBB452C,
-/**/ 0x3FEA3800, 0x00000000,
-/**/ 0xBF21D14E, 0x3BCD35A8,
-/**/ 0x3FC986D3, 0x22818000,
-/**/ 0x3CF93B56, 0x4DD44000,
-/**/ 0x3FEA3000, 0x00000000,
-/**/ 0x3F285A0A, 0x3B5832C0,
-/**/ 0x3FC9A107, 0x56988000,
-/**/ 0x3D264AA6, 0x242CD098,
-/**/ 0x3FEA3000, 0x00000000,
-/**/ 0xBF3EABC1, 0xD71AFD8C,
-/**/ 0x3FC9BB36, 0x2E7E0000,
-/**/ 0xBD21F2A8, 0xA1CE0FFC,
-/**/ 0x3FEA2800, 0x00000000,
-/**/ 0xBF22E60D, 0x7C041611,
-/**/ 0x3FC9D55F, 0xAC62E000,
-/**/ 0xBD3F4669, 0xFC3B5BC3,
-/**/ 0x3FEA2000, 0x00000000,
-/**/ 0x3F27AE57, 0x5FF2EF43,
-/**/ 0x3FC9EF83, 0xD276A000,
-/**/ 0xBD2730B7, 0xB3F9CE00,
-/**/ 0x3FEA2000, 0x00000000,
-/**/ 0xBF3ECD35, 0x3D66322E,
-/**/ 0x3FCA09A2, 0xA2E7A000,
-/**/ 0xBD2DD99D, 0xCD411233,
-/**/ 0x3FEA1800, 0x00000000,
-/**/ 0xBF22C068, 0x5B4FE5E9,
-/**/ 0x3FCA23BC, 0x1FE2C000,
-/**/ 0xBD3539CD, 0x91DC9F0B,
-/**/ 0x3FEA1000, 0x00000000,
-/**/ 0x3F283C48, 0x80B67A9A,
-/**/ 0x3FCA3DD0, 0x4B938000,
-/**/ 0x3D297DA1, 0x366E2C5A,
-/**/ 0x3FEA1000, 0x00000000,
-/**/ 0xBF3E5236, 0x89907BBA,
-/**/ 0x3FCA57DF, 0x28244000,
-/**/ 0x3D3B99C8, 0xCA1D9ABB,
-/**/ 0x3FEA0800, 0x00000000,
-/**/ 0xBF21629E, 0x32054967,
-/**/ 0x3FCA71E8, 0xB7BE0000,
-/**/ 0xBD210ACA, 0x6EF05323,
-/**/ 0x3FEA0000, 0x00000000,
-/**/ 0x3F2A01A0, 0x1A01A01A,
-/**/ 0x3FCA8BEC, 0xFC882000,
-/**/ 0x3D3E3185, 0xCF21B9CF,
-/**/ 0x3FEA0000, 0x00000000,
-/**/ 0xBF3D3BE3, 0x93FF301D,
-/**/ 0x3FCAA5EB, 0xF8A94000,
-/**/ 0xBD32A0A9, 0x36951A8F,
-/**/ 0x3FE9F800, 0x00000000,
-/**/ 0xBF1D9DD1, 0xBFE608ED,
-/**/ 0x3FCABFE5, 0xAE462000,
-/**/ 0xBD3B68F5, 0x395F139D,
-/**/ 0x3FE9F000, 0x00000000,
-/**/ 0x3F2CFC26, 0x1B29257F,
-/**/ 0x3FCAD9DA, 0x1F828000,
-/**/ 0xBD3882B7, 0xC803F050,
-/**/ 0x3FE9F000, 0x00000000,
-/**/ 0xBF3B8B57, 0x7E613717,
-/**/ 0x3FCAF3C9, 0x4E80C000,
-/**/ 0xBCBA4E63, 0x3FCD9066,
-/**/ 0x3FE9E800, 0x00000000,
-/**/ 0xBF160EF9, 0xB9FABD04,
-/**/ 0x3FCB0DB3, 0x3D620000,
-/**/ 0x3D3FEE14, 0x38EAB906,
-/**/ 0x3FE9E000, 0x00000000,
-/**/ 0x3F3094D3, 0xEAF850E2,
-/**/ 0x3FCB2797, 0xEE464000,
-/**/ 0xBD3BE88A, 0x906D00A9,
-/**/ 0x3FE9E000, 0x00000000,
-/**/ 0xBF3941AA, 0xBBE88FDC,
-/**/ 0x3FCB4177, 0x634BA000,
-/**/ 0x3D355D01, 0x5666069F,
-/**/ 0x3FE9D800, 0x00000000,
-/**/ 0xBF083A25, 0x25F4B1AA,
-/**/ 0x3FCB5B51, 0x9E8FC000,
-/**/ 0xBD34B722, 0xEC011F31,
-/**/ 0x3FE9D000, 0x00000000,
-/**/ 0x3F3343FB, 0xF71FAC14,
-/**/ 0x3FCB7526, 0xA22E4000,
-/**/ 0x3D2C0DBF, 0x2E785490,
-/**/ 0x3FE9D000, 0x00000000,
-/**/ 0xBF365FF3, 0x1965FF32,
-/**/ 0x3FCB8EF6, 0x70420000,
-/**/ 0x3D387533, 0x321788E0,
-/**/ 0x3FE9C800, 0x00000000,
-/**/ 0x3EA9C801, 0x9C8019C8,
-/**/ 0x3FCBA8C1, 0x0AE46000,
-/**/ 0x3D3A32E2, 0x9EEE9D85,
-/**/ 0x3FE9C000, 0x00000000,
-/**/ 0x3F368A77, 0x25080CE1,
-/**/ 0x3FCBC286, 0x742D8000,
-/**/ 0x3D39AC53, 0xF39D121C,
-/**/ 0x3FE9C000, 0x00000000,
-/**/ 0xBF32E743, 0xC54763F2,
-/**/ 0x3FCBDC46, 0xAE344000,
-/**/ 0x3D3625B4, 0x023D6505,
-/**/ 0x3FE9B800, 0x00000000,
-/**/ 0x3F0DBD49, 0x8B7424F9,
-/**/ 0x3FCBF601, 0xBB0E4000,
-/**/ 0x3D2386A9, 0x47C378B5,
-/**/ 0x3FE9B000, 0x00000000,
-/**/ 0x3F3A6734, 0x00CD9A67,
-/**/ 0x3FCC0FB7, 0x9CCFE000,
-/**/ 0xBD346FFF, 0x99E8A558,
-/**/ 0x3FE9B000, 0x00000000,
-/**/ 0xBF2DB15A, 0xAEF25B7C,
-/**/ 0x3FCC2968, 0x558C2000,
-/**/ 0xBD2CFD73, 0xDEE38A40,
-/**/ 0x3FE9A800, 0x00000000,
-/**/ 0x3F1FDFEC, 0xC140C073,
-/**/ 0x3FCC4313, 0xE754E000,
-/**/ 0x3D3279BE, 0x74CAD7D6,
-/**/ 0x3FE9A000, 0x00000000,
-/**/ 0x3F3ED923, 0xA7DCBEB3,
-/**/ 0x3FCC5CBA, 0x543AE000,
-/**/ 0x3D20929D, 0xECB454FC,
-/**/ 0x3FE9A000, 0x00000000,
-/**/ 0xBF246A7B, 0xB256DE2C,
-/**/ 0x3FCC765B, 0x9E4D6000,
-/**/ 0x3D31AB6B, 0x36976F6C,
-/**/ 0x3FE99800, 0x00000000,
-/**/ 0x3F299999, 0x9999999A,
-/**/ 0x3FCC8FF7, 0xC79AA000,
-/**/ 0xBD27794F, 0x689F8434,
-/**/ 0x3FE99800, 0x00000000,
-/**/ 0xBF3C20C6, 0x3EC03FF3,
-/**/ 0x3FCCA98E, 0xD22F6000,
-/**/ 0xBCF698C1, 0x8CA209C8,
-/**/ 0x3FE99000, 0x00000000,
-/**/ 0xBF13F803, 0x31EC07FD,
-/**/ 0x3FCCC320, 0xC0176000,
-/**/ 0x3D240903, 0x9A653794,
-/**/ 0x3FE98800, 0x00000000,
-/**/ 0x3F323513, 0x5AC98715,
-/**/ 0x3FCCDCAD, 0x935D2000,
-/**/ 0xBD0A0FF0, 0x34C9A447,
-/**/ 0x3FE98800, 0x00000000,
-/**/ 0xBF368793, 0x89F80661,
-/**/ 0x3FCCF635, 0x4E09C000,
-/**/ 0x3D277123, 0x9A07D55B,
-/**/ 0x3FE98000, 0x00000000,
-/**/ 0x3EE98019, 0x8019801A,
-/**/ 0x3FCD0FB7, 0xF2256000,
-/**/ 0xBD0AF52B, 0x20633B29,
-/**/ 0x3FE97800, 0x00000000,
-/**/ 0x3F382FC6, 0xAB329020,
-/**/ 0x3FCD2935, 0x81B6C000,
-/**/ 0xBD383270, 0x128AAA5F,
-/**/ 0x3FE97800, 0x00000000,
-/**/ 0xBF305C4B, 0x962DBFF3,
-/**/ 0x3FCD42AD, 0xFEC36000,
-/**/ 0xBD175C00, 0xFD804272,
-/**/ 0x3FE97000, 0x00000000,
-/**/ 0x3F1C9F01, 0x970E4F81,
-/**/ 0x3FCD5C21, 0x6B4FC000,
-/**/ 0xBD21BA91, 0xBBCA681B,
-/**/ 0x3FE96800, 0x00000000,
-/**/ 0x3F3EBBE1, 0x049160B8,
-/**/ 0x3FCD758F, 0xC95F0000,
-/**/ 0xBD15A10A, 0x8B4162AA,
-/**/ 0x3FE96800, 0x00000000,
-/**/ 0xBF233FE6, 0x9933FE6A,
-/**/ 0x3FCD8EF9, 0x1AF32000,
-/**/ 0xBD15105F, 0xC364C784,
-/**/ 0x3FE96000, 0x00000000,
-/**/ 0x3F2C2873, 0xCE078906,
-/**/ 0x3FCDA85D, 0x620CE000,
-/**/ 0x3D240194, 0xC16CC7EC,
-/**/ 0x3FE96000, 0x00000000,
-/**/ 0xBF3A27A0, 0xE442936B,
-/**/ 0x3FCDC1BC, 0xA0ABE000,
-/**/ 0x3D38FAC1, 0xA628CCC6,
-/**/ 0x3FE95800, 0x00000000,
-/**/ 0xBF029C69, 0x548A97A9,
-/**/ 0x3FCDDB16, 0xD8CEA000,
-/**/ 0xBD1EEF79, 0x7104B8BC,
-/**/ 0x3FE95000, 0x00000000,
-/**/ 0x3F35906B, 0x9F74B92D,
-/**/ 0x3FCDF46C, 0x0C722000,
-/**/ 0x3D3A5E82, 0xB0B79039,
-/**/ 0x3FE95000, 0x00000000,
-/**/ 0xBF327BBF, 0xF35927BC,
-/**/ 0x3FCE0DBC, 0x3D92A000,
-/**/ 0x3D359233, 0xF0529BF1,
-/**/ 0x3FE94800, 0x00000000,
-/**/ 0x3F161F9A, 0xDD3C0CA4,
-/**/ 0x3FCE2707, 0x6E2B0000,
-/**/ 0xBD3A342C, 0x2AF0003C,
-/**/ 0x3FE94000, 0x00000000,
-/**/ 0x3F3D9B56, 0x41228A8F,
-/**/ 0x3FCE404D, 0xA034C000,
-/**/ 0xBD3187EE, 0xE09A2799,
-/**/ 0x3FE94000, 0x00000000,
-/**/ 0xBF2482F5, 0x598A73F8,
-/**/ 0x3FCE598E, 0xD5A88000,
-/**/ 0xBD0D134B, 0xCF1E98A1,
-/**/ 0x3FE93800, 0x00000000,
-/**/ 0x3F2BE2D5, 0x3C1B9728,
-/**/ 0x3FCE72CB, 0x107DA000,
-/**/ 0x3D1DD48C, 0xCDF5471C,
-/**/ 0x3FE93800, 0x00000000,
-/**/ 0xBF39CC03, 0x2698CFF3,
-/**/ 0x3FCE8C02, 0x52AA6000,
-/**/ 0xBD26805B, 0x80E8E6FF,
-/**/ 0x3FE93000, 0x00000000,
-/**/ 0xBEF79CD3, 0xB9F30358,
-/**/ 0x3FCEA534, 0x9E23A000,
-/**/ 0x3D381B93, 0x4C73CCB5,
-/**/ 0x3FE92800, 0x00000000,
-/**/ 0x3F36E803, 0x255BA00D,
-/**/ 0x3FCEBE61, 0xF4DD8000,
-/**/ 0xBD23D453, 0x30FDCA4D,
-/**/ 0x3FE92800, 0x00000000,
-/**/ 0xBF30A69B, 0x36077742,
-/**/ 0x3FCED78A, 0x58CA8000,
-/**/ 0x3D16F1B5, 0x3793387E,
-/**/ 0x3FE92000, 0x00000000,
-/**/ 0x3F1F693A, 0x1C451AB3,
-/**/ 0x3FCEF0AD, 0xCBDC6000,
-/**/ 0xBD2B26B7, 0x9C86AF24,
-/**/ 0x3FE92000, 0x00000000,
-/**/ 0xBF3F9548, 0xC74EA9E2,
-/**/ 0x3FCF09CC, 0x50036000,
-/**/ 0x3D3DA094, 0x18D999DB,
-/**/ 0x3FE91800, 0x00000000,
-/**/ 0xBF1BD5A8, 0xF7C46911,
-/**/ 0x3FCF22E5, 0xE72F2000,
-/**/ 0xBD3F454F, 0x1417E41F,
-/**/ 0x3FE91000, 0x00000000,
-/**/ 0x3F31B9E1, 0x0D83D1C6,
-/**/ 0x3FCF3BFA, 0x934D6000,
-/**/ 0x3D2D9F2A, 0x937B903B,
-/**/ 0x3FE91000, 0x00000000,
-/**/ 0xBF35876F, 0xF3795877,
-/**/ 0x3FCF550A, 0x564B8000,
-/**/ 0xBD2323E3, 0xA09202FE,
-/**/ 0x3FE90800, 0x00000000,
-/**/ 0x3F0A34CD, 0xBD1D87EC,
-/**/ 0x3FCF6E15, 0x32154000,
-/**/ 0xBD3C9A97, 0x7AC4EC74,
-/**/ 0x3FE90000, 0x00000000,
-/**/ 0x3F3C23F5, 0x0E760899,
-/**/ 0x3FCF871B, 0x28956000,
-/**/ 0xBD3F75FD, 0x6A526EFE,
-/**/ 0x3FE90000, 0x00000000,
-/**/ 0xBF25DECD, 0xD0BE9594,
-/**/ 0x3FCFA01C, 0x3BB58000,
-/**/ 0xBD1A1F71, 0xFAE1D786,
-/**/ 0x3FE8F800, 0x00000000,
-/**/ 0x3F2C18F9, 0xC18F9C19,
-/**/ 0x3FCFB918, 0x6D5E4000,
-/**/ 0xBD0D572A, 0xAB993C87,
-/**/ 0x3FE8F800, 0x00000000,
-/**/ 0xBF38E868, 0x8176594C,
-/**/ 0x3FCFD20F, 0xBF770000,
-/**/ 0xBD11C55B, 0x72C6FE70,
-/**/ 0x3FE8F000, 0x00000000,
-/**/ 0x3EC8F006, 0x3C018F00,
-/**/ 0x3FCFEB02, 0x33E60000,
-/**/ 0x3D2F316E, 0x32D5E8C7,
-/**/ 0x3FE8E800, 0x00000000,
-/**/ 0x3F395B4D, 0xAD115384,
-/**/ 0x3FD001F7, 0xE6484000,
-/**/ 0x3D38A957, 0x40C9ABBC,
-/**/ 0x3FE8E800, 0x00000000,
-/**/ 0xBF2AD850, 0xEC8C0F90,
-/**/ 0x3FD00E6C, 0x45AD5000,
-/**/ 0x3CDCC68D, 0x52E01203,
-/**/ 0x3FE8E000, 0x00000000,
-/**/ 0x3F27B6E9, 0xA56B1AA1,
-/**/ 0x3FD01ADE, 0x3913A000,
-/**/ 0xBD108930, 0xCCDC1521,
-/**/ 0x3FE8E000, 0x00000000,
-/**/ 0xBF3ACDE3, 0x40DFC1D8,
-/**/ 0x3FD0274D, 0xC16C2000,
-/**/ 0x3D2979E8, 0x9CF835C2,
-/**/ 0x3FE8D800, 0x00000000,
-/**/ 0xBEF68397, 0x317DF64C,
-/**/ 0x3FD033BA, 0xDFA74000,
-/**/ 0x3D0C30BC, 0x1485BDFF,
-/**/ 0x3FE8D000, 0x00000000,
-/**/ 0x3F380C69, 0x80C6980C,
-/**/ 0x3FD04025, 0x94B4D000,
-/**/ 0x3CF036B8, 0x9EF42D7F,
-/**/ 0x3FE8D000, 0x00000000,
-/**/ 0xBF2CE006, 0x338C7FE7,
-/**/ 0x3FD04C8D, 0xE1842000,
-/**/ 0xBD1FE6BA, 0x512CEB86,
-/**/ 0x3FE8C800, 0x00000000,
-/**/ 0x3F2644F0, 0x1EFBBD63,
-/**/ 0x3FD058F3, 0xC703F000,
-/**/ 0xBD30E866, 0xBCD236AD,
-/**/ 0x3FE8C800, 0x00000000,
-/**/ 0xBF3B3C2D, 0xAA79217A,
-/**/ 0x3FD06557, 0x46227000,
-/**/ 0x3D0131DF, 0xB4868D6A,
-/**/ 0x3FE8C000, 0x00000000,
-/**/ 0xBEF8BFCE, 0x8062FF3A,
-/**/ 0x3FD071B8, 0x5FCD6000,
-/**/ 0xBD3BCB8B, 0xA3E01A11,
-/**/ 0x3FE8B800, 0x00000000,
-/**/ 0x3F383301, 0xBD2672C4,
-/**/ 0x3FD07E17, 0x14F1D000,
-/**/ 0xBD3EFCC6, 0x4F384BD5,
-/**/ 0x3FE8B800, 0x00000000,
-/**/ 0xBF2BFE74, 0x9BFE749C,
-/**/ 0x3FD08A73, 0x667C5000,
-/**/ 0x3D3EBC1D, 0x40C5A329,
-/**/ 0x3FE8B000, 0x00000000,
-/**/ 0x3F27BA8C, 0xD4353EB3,
-/**/ 0x3FD096CD, 0x55591000,
-/**/ 0x3D3F998D, 0x20550A31,
-/**/ 0x3FE8B000, 0x00000000,
-/**/ 0xBF3A3784, 0xA062B2E4,
-/**/ 0x3FD0A324, 0xE2739000,
-/**/ 0x3D0C6BEE, 0x7EF4030E,
-/**/ 0x3FE8A800, 0x00000000,
-/**/ 0xBECED1F6, 0x5E630281,
-/**/ 0x3FD0AF7A, 0x0EB6C000,
-/**/ 0x3D23CCF9, 0x4945ADAD,
-/**/ 0x3FE8A000, 0x00000000,
-/**/ 0x3F39CAE0, 0x0C519CAE,
-/**/ 0x3FD0BBCC, 0xDB0D2000,
-/**/ 0x3D32F32C, 0xCC5DCDFB,
-/**/ 0x3FE8A000, 0x00000000,
-/**/ 0xBF283C02, 0x4EDBA5FD,
-/**/ 0x3FD0C81D, 0x4860B000,
-/**/ 0xBD3E5BCF, 0x401D1731,
-/**/ 0x3FE89800, 0x00000000,
-/**/ 0x3F2C0F60, 0x1899C0F6,
-/**/ 0x3FD0D46B, 0x579AB000,
-/**/ 0x3D3D2C81, 0xF640E1E6,
-/**/ 0x3FE89800, 0x00000000,
-/**/ 0xBF37C414, 0xBDBE51D0,
-/**/ 0x3FD0E0B7, 0x09A43000,
-/**/ 0x3D32A038, 0xA7862F2A,
-/**/ 0x3FE89000, 0x00000000,
-/**/ 0x3F03F540, 0xDD12CE7D,
-/**/ 0x3FD0ED00, 0x5F658000,
-/**/ 0xBD22DC75, 0x285AA803,
-/**/ 0x3FE88800, 0x00000000,
-/**/ 0x3F3CCFDE, 0x400C45CD,
-/**/ 0x3FD0F947, 0x59C67000,
-/**/ 0xBD395261, 0x7F0818B6,
-/**/ 0x3FE88800, 0x00000000,
-/**/ 0xBF21A0F5, 0x44FB66B5,
-/**/ 0x3FD1058B, 0xF9AE5000,
-/**/ 0xBD34AB9D, 0x817D52CD,
-/**/ 0x3FE88000, 0x00000000,
-/**/ 0x3F319D95, 0x2866A138,
-/**/ 0x3FD111CE, 0x4003F000,
-/**/ 0xBD1B3237, 0x096B4B6B,
-/**/ 0x3FE88000, 0x00000000,
-/**/ 0xBF33E5FA, 0xA48B49DA,
-/**/ 0x3FD11E0E, 0x2DADA000,
-/**/ 0xBD2A47F8, 0x8FCCE5BA,
-/**/ 0x3FE87800, 0x00000000,
-/**/ 0x3F1A9336, 0xDEECB0A8,
-/**/ 0x3FD12A4B, 0xC3912000,
-/**/ 0xBD35A750, 0x61473259,
-/**/ 0x3FE87800, 0x00000000,
-/**/ 0xBF3EC219, 0xFB6A388D,
-/**/ 0x3FD13687, 0x0293B000,
-/**/ 0xBD3D3E84, 0x99D67123,
-/**/ 0x3FE87000, 0x00000000,
-/**/ 0xBF106AE7, 0xC1625090,
-/**/ 0x3FD142BF, 0xEB9A0000,
-/**/ 0x3D31CE61, 0x85B58A9E,
-/**/ 0x3FE86800, 0x00000000,
-/**/ 0x3F369AE5, 0xACD4200C,
-/**/ 0x3FD14EF6, 0x7F887000,
-/**/ 0xBD3E97A6, 0x5DFC9794,
-/**/ 0x3FE86800, 0x00000000,
-/**/ 0xBF2D4286, 0x9389D11C,
-/**/ 0x3FD15B2A, 0xBF429000,
-/**/ 0xBD2D8E3B, 0x49B629B2,
-/**/ 0x3FE86000, 0x00000000,
-/**/ 0x3F286186, 0x18618618,
-/**/ 0x3FD1675C, 0xABABA000,
-/**/ 0x3D38380E, 0x731F55C4,
-/**/ 0x3FE86000, 0x00000000,
-/**/ 0xBF38EF0F, 0x6AC71708,
-/**/ 0x3FD1738C, 0x45A67000,
-/**/ 0xBD39C6E9, 0x0032C176,
-/**/ 0x3FE85800, 0x00000000,
-/**/ 0x3EFFF3D3, 0xE00C2C20,
-/**/ 0x3FD17FB9, 0x8E151000,
-/**/ 0xBD3A8A8B, 0xA74A2684,
-/**/ 0x3FE85000, 0x00000000,
-/**/ 0x3F3CFBA0, 0xF9592266,
-/**/ 0x3FD18BE4, 0x85D93000,
-/**/ 0x3D3C167F, 0x6F3604AB,
-/**/ 0x3FE85000, 0x00000000,
-/**/ 0xBF1FE7B0, 0xFF3D87FA,
-/**/ 0x3FD1980D, 0x2DD42000,
-/**/ 0x3D2B7B3A, 0x7A361C9A,
-/**/ 0x3FE84800, 0x00000000,
-/**/ 0x3F331E8D, 0x918DC223,
-/**/ 0x3FD1A433, 0x86E68000,
-/**/ 0xBD07A850, 0x634E0AAC,
-/**/ 0x3FE84800, 0x00000000,
-/**/ 0xBF31BAF9, 0x8D76B549,
-/**/ 0x3FD1B057, 0x91F08000,
-/**/ 0xBD32DD46, 0x6DC55E2D,
-/**/ 0x3FE84000, 0x00000000,
-/**/ 0x3F22F2EC, 0xDC90C512,
-/**/ 0x3FD1BC79, 0x4FD1D000,
-/**/ 0xBD3CCF0C, 0x747BA7BE,
-/**/ 0x3FE84000, 0x00000000,
-/**/ 0xBF3B442A, 0x6A0916B9,
-/**/ 0x3FD1C898, 0xC169A000,
-/**/ 0xBD381410, 0xE5C62AFF,
-/**/ 0x3FE83800, 0x00000000,
-/**/ 0x3EA83801, 0x83801838,
-/**/ 0x3FD1D4B5, 0xE796A000,
-/**/ 0x3D222A5B, 0xD197BAC2,
-/**/ 0x3FE83000, 0x00000000,
-/**/ 0x3F3B6A41, 0xCBD11C5C,
-/**/ 0x3FD1E0D0, 0xC3371000,
-/**/ 0x3D3AF8F2, 0xA9B0D4A0,
-/**/ 0x3FE83000, 0x00000000,
-/**/ 0xBF225381, 0xCB7A3CD6,
-/**/ 0x3FD1ECE9, 0x5528B000,
-/**/ 0xBD184E7B, 0x09B4A3B8,
-/**/ 0x3FE82800, 0x00000000,
-/**/ 0x3F32500C, 0x152500C1,
-/**/ 0x3FD1F8FF, 0x9E48A000,
-/**/ 0x3D27946C, 0x040CBE77,
-/**/ 0x3FE82800, 0x00000000,
-/**/ 0xBF32285F, 0x14902134,
-/**/ 0x3FD20513, 0x9F73B000,
-/**/ 0x3CF6E15E, 0x1609E0A4,
-/**/ 0x3FE82000, 0x00000000,
-/**/ 0x3F22D9EB, 0xA4018213,
-/**/ 0x3FD21125, 0x59861000,
-/**/ 0x3D382E78, 0xBA2950C4,
-/**/ 0x3FE82000, 0x00000000,
-/**/ 0xBF3AEFFC, 0xFC6BBFF4,
-/**/ 0x3FD21D34, 0xCD5B9000,
-/**/ 0x3D3B552F, 0xB28BADAA,
-/**/ 0x3FE81800, 0x00000000,
-/**/ 0x3EE81818, 0x18181818,
-/**/ 0x3FD22941, 0xFBCF8000,
-/**/ 0xBD3A6976, 0xF5EB0963,
-/**/ 0x3FE81000, 0x00000000,
-/**/ 0x3F3C7F27, 0x4FF0F3C6,
-/**/ 0x3FD2354C, 0xE5BC9000,
-/**/ 0xBD3D78ED, 0x0602A663,
-/**/ 0x3FE81000, 0x00000000,
-/**/ 0xBF1ED344, 0x0A86941D,
-/**/ 0x3FD24155, 0x8BFD1000,
-/**/ 0x3D300FFF, 0x3228FCAD,
-/**/ 0x3FE80800, 0x00000000,
-/**/ 0x3F3424D0, 0x1B0BD52D,
-/**/ 0x3FD24D5B, 0xEF6AF000,
-/**/ 0xBCBDD780, 0xFC9FABDD,
-/**/ 0x3FE80800, 0x00000000,
-/**/ 0xBF2FE7F9, 0xFE7F9FE8,
-/**/ 0x3FD25960, 0x10DF7000,
-/**/ 0x3D38E7BC, 0x224EA3E3,
-/**/ 0x3FE80000, 0x00000000,
-/**/ 0x3F280180, 0x18018018,
-/**/ 0x3FD26561, 0xF1338000,
-/**/ 0x3D38B488, 0x66FAA45F,
-/**/ 0x3FE80000, 0x00000000,
-/**/ 0xBF37FD00, 0x5FF40180,
-/**/ 0x3FD27161, 0x913F8000,
-/**/ 0x3D34F4F1, 0xF61564B4,
-/**/ 0x3FE7F800, 0x00000000,
-/**/ 0x3F104AE8, 0x9750B6C7,
-/**/ 0x3FD27D5E, 0xF1DB6000,
-/**/ 0xBD092374, 0x78CAC9F4,
-/**/ 0x3FE7F800, 0x00000000,
-/**/ 0xBF3FD017, 0xF405FD01,
-/**/ 0x3FD2895A, 0x13DE8000,
-/**/ 0x3D3A8D7A, 0xD24C13F0,
-/**/ 0x3FE7F000, 0x00000000,
-/**/ 0xBF0D2BF1, 0xC9C5485E,
-/**/ 0x3FD29552, 0xF81FF000,
-/**/ 0x3D348D30, 0x1771C408,
-/**/ 0x3FE7E800, 0x00000000,
-/**/ 0x3F38927F, 0xD029DB60,
-/**/ 0x3FD2A149, 0x9F763000,
-/**/ 0xBD30DBBF, 0x51F3AADC,
-/**/ 0x3FE7E800, 0x00000000,
-/**/ 0xBF26504A, 0xB0A45169,
-/**/ 0x3FD2AD3E, 0x0AB73000,
-/**/ 0x3D2B972E, 0x488C359F,
-/**/ 0x3FE7E000, 0x00000000,
-/**/ 0x3F312A8A, 0xD278E8DD,
-/**/ 0x3FD2B930, 0x3AB8A000,
-/**/ 0xBD26DB12, 0xD6BFB0A5,
-/**/ 0x3FE7E000, 0x00000000,
-/**/ 0xBF327577, 0x24BB32E7,
-/**/ 0x3FD2C520, 0x304F8000,
-/**/ 0x3D230852, 0x8C342F39,
-/**/ 0x3FE7D800, 0x00000000,
-/**/ 0x3F23EF9A, 0xA4B45AEC,
-/**/ 0x3FD2D10D, 0xEC508000,
-/**/ 0x3D360C61, 0xF7088353,
-/**/ 0x3FE7D800, 0x00000000,
-/**/ 0xBF398DAF, 0x32748CC1,
-/**/ 0x3FD2DCF9, 0x6F8FD000,
-/**/ 0x3D20B4A2, 0x8E33C9CE,
-/**/ 0x3FE7D000, 0x00000000,
-/**/ 0x3F07D05F, 0x417D05F4,
-/**/ 0x3FD2E8E2, 0xBAE12000,
-/**/ 0xBD267B1E, 0x99B72BD8,
-/**/ 0x3FE7C800, 0x00000000,
-/**/ 0x3F3F8EF7, 0x431D3027,
-/**/ 0x3FD2F4C9, 0xCF17A000,
-/**/ 0x3D371F04, 0x9374B87B,
-/**/ 0x3FE7C800, 0x00000000,
-/**/ 0xBF0E77A3, 0xDAD83E6C,
-/**/ 0x3FD300AE, 0xAD063000,
-/**/ 0x3D342F56, 0x8B75FCAC,
-/**/ 0x3FE7C000, 0x00000000,
-/**/ 0x3F38E041, 0x588D1676,
-/**/ 0x3FD30C91, 0x557F2000,
-/**/ 0xBD142958, 0xA1451755,
-/**/ 0x3FE7C000, 0x00000000,
-/**/ 0xBF24C6DD, 0x1FE8414C,
-/**/ 0x3FD31871, 0xC9544000,
-/**/ 0x3D184FAB, 0x94CECFD9,
-/**/ 0x3FE7B800, 0x00000000,
-/**/ 0x3F3265F4, 0x81C2D3B2,
-/**/ 0x3FD32450, 0x09570000,
-/**/ 0x3D3D271B, 0x9BDAE59D,
-/**/ 0x3FE7B800, 0x00000000,
-/**/ 0xBF30C39C, 0xB6466407,
-/**/ 0x3FD3302C, 0x16586000,
-/**/ 0x3D36217D, 0xC2A3E08B,
-/**/ 0x3FE7B000, 0x00000000,
-/**/ 0x3F283FAD, 0x12B21224,
-/**/ 0x3FD33C05, 0xF128E000,
-/**/ 0xBD22B906, 0x380E1A7D,
-/**/ 0x3FE7B000, 0x00000000,
-/**/ 0xBF36EFB8, 0xF899E55D,
-/**/ 0x3FD347DD, 0x9A988000,
-/**/ 0xBD25594D, 0xD4C58092,
-/**/ 0x3FE7A800, 0x00000000,
-/**/ 0x3F1836B6, 0x3FF42B9F,
-/**/ 0x3FD353B3, 0x1376E000,
-/**/ 0xBD1331AF, 0xE6C26D9B,
-/**/ 0x3FE7A800, 0x00000000,
-/**/ 0xBF3CE7FD, 0x0B739FF4,
-/**/ 0x3FD35F86, 0x5C933000,
-/**/ 0xBD3B07DE, 0x4EA1A54A,
-/**/ 0x3FE7A000, 0x00000000,
-/**/ 0x3EC7A005, 0xE8017A00,
-/**/ 0x3FD36B57, 0x76BC1000,
-/**/ 0x3D116978, 0x5A9C223F,
-/**/ 0x3FE79800, 0x00000000,
-/**/ 0x3F3D535D, 0xB1CC5B7B,
-/**/ 0x3FD37726, 0x62BFE000,
-/**/ 0xBD3E9436, 0xAC53B023,
-/**/ 0x3FE79800, 0x00000000,
-/**/ 0xBF15EEAC, 0xE0DA37A9,
-/**/ 0x3FD382F3, 0x216C5000,
-/**/ 0xBD1061D2, 0x1D1A7F6D,
-/**/ 0x3FE79000, 0x00000000,
-/**/ 0x3F37C21E, 0x344E16D6,
-/**/ 0x3FD38EBD, 0xB38ED000,
-/**/ 0x3D290582, 0xE67D4CA0,
-/**/ 0x3FE79000, 0x00000000,
-/**/ 0xBF25E69A, 0x39C9E465,
-/**/ 0x3FD39A86, 0x19F45000,
-/**/ 0x3D18EE51, 0x937354F5,
-/**/ 0x3FE78800, 0x00000000,
-/**/ 0x3F32640B, 0xC52640BC,
-/**/ 0x3FD3A64C, 0x55694000,
-/**/ 0x3D37A71C, 0xBCD735D0,
-/**/ 0x3FE78800, 0x00000000,
-/**/ 0xBF3037DE, 0x2F6A09ED,
-/**/ 0x3FD3B210, 0x66B9C000,
-/**/ 0xBD33C1ED, 0x9811560E,
-/**/ 0x3FE78000, 0x00000000,
-/**/ 0x3F2A71DC, 0x01781A72,
-/**/ 0x3FD3BDD2, 0x4EB15000,
-/**/ 0xBD3257B4, 0x970E6ED9,
-/**/ 0x3FE78000, 0x00000000,
-/**/ 0xBF354996, 0xA9EEBFF4,
-/**/ 0x3FD3C992, 0x0E1B2000,
-/**/ 0x3D141C28, 0xAA680B76,
-/**/ 0x3FE77800, 0x00000000,
-/**/ 0x3F208119, 0xAC60D341,
-/**/ 0x3FD3D54F, 0xA5C1F000,
-/**/ 0x3D3C3E1C, 0xD9A395E3,
-/**/ 0x3FE77800, 0x00000000,
-/**/ 0xBF3A28AE, 0x742E2DD0,
-/**/ 0x3FD3E10B, 0x16701000,
-/**/ 0x3D3F3BCF, 0x145429C7,
-/**/ 0x3FE77000, 0x00000000,
-/**/ 0x3F0BD584, 0x36340177,
-/**/ 0x3FD3ECC4, 0x60EF6000,
-/**/ 0xBD060286, 0x27C1300F,
-/**/ 0x3FE77000, 0x00000000,
-/**/ 0xBF3ED55D, 0x240C7174,
-/**/ 0x3FD3F87B, 0x86094000,
-/**/ 0xBD35DFD7, 0x54589889,
-/**/ 0x3FE76800, 0x00000000,
-/**/ 0xBEF18DE5, 0xAB277F45,
-/**/ 0x3FD40430, 0x8686A000,
-/**/ 0x3D3F8EF4, 0x3049F7D3,
-/**/ 0x3FE76000, 0x00000000,
-/**/ 0x3F3CB026, 0x01D3C7B8,
-/**/ 0x3FD40FE3, 0x63303000,
-/**/ 0x3D3E5C5F, 0xE79F05C6,
-/**/ 0x3FE76000, 0x00000000,
-/**/ 0xBF15E95B, 0xA9D08664,
-/**/ 0x3FD41B94, 0x1CCE1000,
-/**/ 0xBD304690, 0x13E43FC9,
-/**/ 0x3FE75800, 0x00000000,
-/**/ 0x3F3867A4, 0x097CFD43,
-/**/ 0x3FD42742, 0xB427E000,
-/**/ 0xBD398727, 0x02B82675,
-/**/ 0x3FE75800, 0x00000000,
-/**/ 0xBF2353DF, 0xE8A9353E,
-/**/ 0x3FD432EF, 0x2A04F000,
-/**/ 0xBD3FB129, 0x931715AD,
-/**/ 0x3FE75000, 0x00000000,
-/**/ 0x3F3450E6, 0x4F13DC4A,
-/**/ 0x3FD43E99, 0x7F2C1000,
-/**/ 0x3D1C3F72, 0x40C41A04,
-/**/ 0x3FE75000, 0x00000000,
-/**/ 0xBF2B4FBF, 0xE8B1B4FC,
-/**/ 0x3FD44A41, 0xB463C000,
-/**/ 0x3D31EE28, 0xF37CF612,
-/**/ 0x3FE74800, 0x00000000,
-/**/ 0x3F306BB6, 0x7E458100,
-/**/ 0x3FD455E7, 0xCA720000,
-/**/ 0x3D1AD8C6, 0x36629AED,
-/**/ 0x3FE74800, 0x00000000,
-/**/ 0xBF31745D, 0x1745D174,
-/**/ 0x3FD4618B, 0xC21C6000,
-/**/ 0xBD13D82F, 0x484C84CC,
-/**/ 0x3FE74000, 0x00000000,
-/**/ 0x3F296FBD, 0x236DEC04,
-/**/ 0x3FD46D2D, 0x9C280000,
-/**/ 0x3D359B27, 0x5F67F75A,
-/**/ 0x3FE74000, 0x00000000,
-/**/ 0xBF350F9D, 0x3B304B87,
-/**/ 0x3FD478CD, 0x5959B000,
-/**/ 0x3D2EC89B, 0xF0C8D098,
-/**/ 0x3FE73800, 0x00000000,
-/**/ 0x3F226A51, 0xA4EBDC70,
-/**/ 0x3FD4846A, 0xFA75C000,
-/**/ 0xBD263EA2, 0xE3798DCE,
-/**/ 0x3FE73800, 0x00000000,
-/**/ 0xBF3879D5, 0xF00B9A78,
-/**/ 0x3FD49006, 0x80401000,
-/**/ 0xBD38BCCF, 0xFE1A0F8C,
-/**/ 0x3FE73000, 0x00000000,
-/**/ 0x3F178D7F, 0x5DAAD90C,
-/**/ 0x3FD49B9F, 0xEB7C1000,
-/**/ 0x3D3DAC1C, 0x58AB60D7,
-/**/ 0x3FE73000, 0x00000000,
-/**/ 0xBF3BB33C, 0x783709C7,
-/**/ 0x3FD4A737, 0x3CED0000,
-/**/ 0xBD39A234, 0xEBF35449,
-/**/ 0x3FE72800, 0x00000000,
-/**/ 0x3F061274, 0x265AD23A,
-/**/ 0x3FD4B2CC, 0x75556000,
-/**/ 0xBD380FCB, 0xC78BFA4B,
-/**/ 0x3FE72800, 0x00000000,
-/**/ 0xBF3EBC05, 0xC90A1FD2,
-/**/ 0x3FD4BE5F, 0x95778000,
-/**/ 0xBD3D7C92, 0xCD9AD824,
-/**/ 0x3FE72000, 0x00000000,
-/**/ 0xBEC71FFA, 0x38017200,
-/**/ 0x3FD4C9F0, 0x9E153000,
-/**/ 0xBD2E1DDE, 0x70E02DE0,
-/**/ 0x3FE71800, 0x00000000,
-/**/ 0x3F3E6B99, 0x74A050E1,
-/**/ 0x3FD4D57F, 0x8FEFE000,
-/**/ 0x3D23F926, 0x7FD06868,
-/**/ 0x3FE71800, 0x00000000,
-/**/ 0xBF077400, 0xB8BD1180,
-/**/ 0x3FD4E10C, 0x6BC8A000,
-/**/ 0x3CF8283F, 0x1636F061,
-/**/ 0x3FE71000, 0x00000000,
-/**/ 0x3F3BC36C, 0xE3E0453A,
-/**/ 0x3FD4EC97, 0x32600000,
-/**/ 0x3D234D7A, 0xAF04D104,
-/**/ 0x3FE71000, 0x00000000,
-/**/ 0xBF15FA98, 0x6935DDC5,
-/**/ 0x3FD4F81F, 0xE4764000,
-/**/ 0xBD27FCF6, 0x434FF08D,
-/**/ 0x3FE70800, 0x00000000,
-/**/ 0x3F394B40, 0x7337CF08,
-/**/ 0x3FD503A6, 0x82CB2000,
-/**/ 0xBD2A68C8, 0xF16F9B5D,
-/**/ 0x3FE70800, 0x00000000,
-/**/ 0xBF1F7B97, 0xA835403A,
-/**/ 0x3FD50F2B, 0x0E1E0000,
-/**/ 0x3D3A0940, 0x8C47B8D8,
-/**/ 0x3FE70000, 0x00000000,
-/**/ 0x3F3702E0, 0x5C0B8170,
-/**/ 0x3FD51AAD, 0x872E0000,
-/**/ 0xBD3F4BD8, 0xDB0A7CC1,
-/**/ 0x3FE70000, 0x00000000,
-/**/ 0xBF241EE6, 0x4F67A855,
-/**/ 0x3FD5262D, 0xEEB99000,
-/**/ 0xBD3E1B9F, 0x70894A01,
-/**/ 0x3FE6F800, 0x00000000,
-/**/ 0x3F34EA19, 0x221C0170,
-/**/ 0x3FD531AC, 0x457EE000,
-/**/ 0x3D3DF83B, 0x7D931501,
-/**/ 0x3FE6F800, 0x00000000,
-/**/ 0xBF282102, 0x5508CA5C,
-/**/ 0x3FD53D28, 0x8C3BE000,
-/**/ 0xBD111397, 0xEB6DFAC5,
-/**/ 0x3FE6F000, 0x00000000,
-/**/ 0x3F3300B7, 0x9300B793,
-/**/ 0x3FD548A2, 0xC3ADD000,
-/**/ 0x3D23167E, 0x63081CF7,
-/**/ 0x3FE6F000, 0x00000000,
-/**/ 0xBF2BC486, 0x005BB90F,
-/**/ 0x3FD5541A, 0xEC91C000,
-/**/ 0xBCF816AA, 0xDC72EEBA,
-/**/ 0x3FE6E800, 0x00000000,
-/**/ 0x3F314688, 0xC5A3A00B,
-/**/ 0x3FD55F91, 0x07A44000,
-/**/ 0xBD11E647, 0x78DF4A62,
-/**/ 0x3FE6E800, 0x00000000,
-/**/ 0xBF2F09D6, 0xDA9C5AE1,
-/**/ 0x3FD56B05, 0x15A18000,
-/**/ 0x3D29247B, 0xBC4A23FC,
-/**/ 0x3FE6E000, 0x00000000,
-/**/ 0x3F2F76B4, 0x337C6CB1,
-/**/ 0x3FD57677, 0x17456000,
-/**/ 0xBD364EAD, 0x9524D7CA,
-/**/ 0x3FE6E000, 0x00000000,
-/**/ 0xBF30F8AC, 0xEDF4EC87,
-/**/ 0x3FD581E7, 0x0D4B3000,
-/**/ 0xBD1F31E1, 0xB12D8F1D,
-/**/ 0x3FE6D800, 0x00000000,
-/**/ 0x3F2CBDF2, 0x6EAEF381,
-/**/ 0x3FD58D54, 0xF86E0000,
-/**/ 0x3D2791F3, 0x0A795215,
-/**/ 0x3FE6D800, 0x00000000,
-/**/ 0xBF323DB9, 0xB624BFF5,
-/**/ 0x3FD598C0, 0xD9688000,
-/**/ 0xBD385F49, 0x70D96DA4,
-/**/ 0x3FE6D000, 0x00000000,
-/**/ 0x3F2A6268, 0x1C860FB0,
-/**/ 0x3FD5A42A, 0xB0F4D000,
-/**/ 0xBCDE63AF, 0x2DF7BA69,
-/**/ 0x3FE6D000, 0x00000000,
-/**/ 0xBF335443, 0xB253BAE1,
-/**/ 0x3FD5AF92, 0x7FCCE000,
-/**/ 0xBD1C032F, 0xF5FFC77A,
-/**/ 0x3FE6C800, 0x00000000,
-/**/ 0x3F2863B1, 0xAB4294D4,
-/**/ 0x3FD5BAF8, 0x46AA2000,
-/**/ 0xBD339AE8, 0xF873FA41,
-/**/ 0x3FE6C800, 0x00000000,
-/**/ 0xBF343C7C, 0x87EAA6DF,
-/**/ 0x3FD5C65C, 0x0645A000,
-/**/ 0xBD39FE06, 0x0180EE65,
-/**/ 0x3FE6C000, 0x00000000,
-/**/ 0x3F26C16C, 0x16C16C17,
-/**/ 0x3FD5D1BD, 0xBF581000,
-/**/ 0xBD38D6BD, 0xC9C7C238,
-/**/ 0x3FE6C000, 0x00000000,
-/**/ 0xBF34F695, 0x95C33E00,
-/**/ 0x3FD5DD1D, 0x7299C000,
-/**/ 0xBD38AF61, 0x8815CE17,
-/**/ 0x3FE6B800, 0x00000000,
-/**/ 0x3F257B34, 0xE7802D73,
-/**/ 0x3FD5E87B, 0x20C29000,
-/**/ 0x3D3527D1, 0x8F7738FA,
-/**/ 0x3FE6B800, 0x00000000,
-/**/ 0xBF3582BF, 0xF4A5582C,
-/**/ 0x3FD5F3D6, 0xCA8A2000,
-/**/ 0x3D37AF84, 0x8E19CC75,
-/**/ 0x3FE6B000, 0x00000000,
-/**/ 0x3F2490AA, 0x31A3CFC7,
-/**/ 0x3FD5FF30, 0x70A79000,
-/**/ 0x3D2E9E43, 0x9F105039,
-/**/ 0x3FE6B000, 0x00000000,
-/**/ 0xBF35E12C, 0x77C30E5A,
-/**/ 0x3FD60A88, 0x13D1A000,
-/**/ 0x3D36E9B9, 0xC879AF55,
-/**/ 0x3FE6A800, 0x00000000,
-/**/ 0x3F24016A, 0x94016A94,
-/**/ 0x3FD615DD, 0xB4BEC000,
-/**/ 0x3D13C7CA, 0x90BC04B2,
-/**/ 0x3FE6A800, 0x00000000,
-/**/ 0xBF36120B, 0xAD33D63F,
-/**/ 0x3FD62131, 0x5424F000,
-/**/ 0xBD3382FC, 0x4AA68669,
-/**/ 0x3FE6A000, 0x00000000,
-/**/ 0x3F23CD15, 0x3729043E,
-/**/ 0x3FD62C82, 0xF2B9C000,
-/**/ 0x3D3E54BD, 0xBD7C8A98 } };
-
-static const union {int4 i[4350]; double x[2175]; } vj = { .i = {
-/**/ 0x3F46A400, 0x7D161C28,
-/**/ 0xBF46A200, 0x20600000,
-/**/ 0x3D27DC4E, 0xAA7623D9,
-/**/ 0x3F4693FA, 0xD596E639,
-/**/ 0xBF4691FD, 0x4CE00000,
-/**/ 0x3D26B0CF, 0x29C3F0AD,
-/**/ 0x3F4683F5, 0x3219CE89,
-/**/ 0xBF4681FA, 0x7B600000,
-/**/ 0x3D22B290, 0x95B9FDCC,
-/**/ 0x3F4673EF, 0x929ED397,
-/**/ 0xBF4671F7, 0xABE00000,
-/**/ 0x3D17C727, 0xFA2F2D87,
-/**/ 0x3F4663E9, 0xF725F3E2,
-/**/ 0xBF4661F4, 0xDE600000,
-/**/ 0x3CF22ED3, 0x6EDBFF1C,
-/**/ 0x3F4653E4, 0x5FAF2DE9,
-/**/ 0xBF4651F2, 0x12E00000,
-/**/ 0xBD144936, 0x157812BB,
-/**/ 0x3F4643DE, 0xCC3A802B,
-/**/ 0xBF4641EF, 0x49600000,
-/**/ 0xBD2959CB, 0x60314E05,
-/**/ 0x3F4633D9, 0x3CC7E927,
-/**/ 0xBF4631EC, 0x81E00000,
-/**/ 0xBD35ABDA, 0xC3638E99,
-/**/ 0x3F4623D3, 0xB157675C,
-/**/ 0xBF4621E9, 0xBC800000,
-/**/ 0x3D3FF1D3, 0xC63F9A21,
-/**/ 0x3F4613CE, 0x29E8F948,
-/**/ 0xBF4611E6, 0xF9000000,
-/**/ 0x3D342D26, 0x71EEE611,
-/**/ 0x3F4603C8, 0xA67C9D6B,
-/**/ 0xBF4601E4, 0x37800000,
-/**/ 0x3D1C1C77, 0x11A09689,
-/**/ 0x3F45F3C3, 0x27125244,
-/**/ 0xBF45F1E1, 0x78000000,
-/**/ 0xBD1DFD16, 0xF7DC643C,
-/**/ 0x3F45E3BD, 0xABAA1651,
-/**/ 0xBF45E1DE, 0xBA800000,
-/**/ 0xBD376503, 0x91318A02,
-/**/ 0x3F45D3B8, 0x3443E812,
-/**/ 0xBF45D1DB, 0xFF200000,
-/**/ 0x3D3756E4, 0xCE55DCDD,
-/**/ 0x3F45C3B2, 0xC0DFC606,
-/**/ 0xBF45C1D9, 0x45A00000,
-/**/ 0x3D12D5CF, 0x8F6F8FA0,
-/**/ 0x3F45B3AD, 0x517DAEAB,
-/**/ 0xBF45B1D6, 0x8E200000,
-/**/ 0xBD2E90AB, 0x9B85DC2C,
-/**/ 0x3F45A3A7, 0xE61DA081,
-/**/ 0xBF45A1D3, 0xD8C00000,
-/**/ 0x3D3B5E88, 0x3BF5AC54,
-/**/ 0x3F4593A2, 0x7EBF9A07,
-/**/ 0xBF4591D1, 0x25400000,
-/**/ 0x3D12AC3A, 0x0C86DDB1,
-/**/ 0x3F45839D, 0x1B6399BB,
-/**/ 0xBF4581CE, 0x73C00000,
-/**/ 0xBD3361C2, 0x76830985,
-/**/ 0x3F457397, 0xBC099E1C,
-/**/ 0xBF4571CB, 0xC4600000,
-/**/ 0x3D333915, 0xD062EBFF,
-/**/ 0x3F456392, 0x60B1A5AA,
-/**/ 0xBF4561C9, 0x16E00000,
-/**/ 0xBD1E0DA0, 0x9CC4988F,
-/**/ 0x3F45538D, 0x095BAEE4,
-/**/ 0xBF4551C6, 0x6B800000,
-/**/ 0x3D3C69C4, 0x235BC18A,
-/**/ 0x3F454387, 0xB607B848,
-/**/ 0xBF4541C3, 0xC2000000,
-/**/ 0xBCEFCC99, 0xF7737723,
-/**/ 0x3F453382, 0x66B5C056,
-/**/ 0xBF4531C1, 0x1A800000,
-/**/ 0xBD3FBAE2, 0x809CBCBB,
-/**/ 0x3F45237D, 0x1B65C58C,
-/**/ 0xBF4521BE, 0x75200000,
-/**/ 0x3CCAA5C8, 0x194FEE63,
-/**/ 0x3F451377, 0xD417C66A,
-/**/ 0xBF4511BB, 0xD1C00000,
-/**/ 0x3D3ED325, 0xE1CC7BBC,
-/**/ 0x3F450372, 0x90CBC16E,
-/**/ 0xBF4501B9, 0x30400000,
-/**/ 0xBD0F0298, 0x68AB3742,
-/**/ 0x3F44F36D, 0x5181B517,
-/**/ 0xBF44F1B6, 0x90E00000,
-/**/ 0x3D381BE1, 0x41E67AD9,
-/**/ 0x3F44E368, 0x16399FE6,
-/**/ 0xBF44E1B3, 0xF3600000,
-/**/ 0xBD2A6E79, 0x668D3662,
-/**/ 0x3F44D362, 0xDEF38058,
-/**/ 0xBF44D1B1, 0x58000000,
-/**/ 0x3D284EA7, 0x21F8B7C2,
-/**/ 0x3F44C35D, 0xABAF54EC,
-/**/ 0xBF44C1AE, 0xBE800000,
-/**/ 0xBD3BC76D, 0x7417D9C5,
-/**/ 0x3F44B358, 0x7C6D1C22,
-/**/ 0xBF44B1AC, 0x27200000,
-/**/ 0xBD1409FD, 0x16AAD1FC,
-/**/ 0x3F44A353, 0x512CD479,
-/**/ 0xBF44A1A9, 0x91C00000,
-/**/ 0x3D30771E, 0x98BC14FD,
-/**/ 0x3F44934E, 0x29EE7C70,
-/**/ 0xBF4491A6, 0xFE400000,
-/**/ 0xBD3B5993, 0x5CCB7232,
-/**/ 0x3F448349, 0x06B21285,
-/**/ 0xBF4481A4, 0x6CE00000,
-/**/ 0xBD20E729, 0x5512F9C2,
-/**/ 0x3F447343, 0xE7779538,
-/**/ 0xBF4471A1, 0xDD800000,
-/**/ 0x3D225436, 0x55B30899,
-/**/ 0x3F44633E, 0xCC3F0308,
-/**/ 0xBF44619F, 0x50200000,
-/**/ 0x3D39807C, 0x9E54E31F,
-/**/ 0x3F445339, 0xB5085A73,
-/**/ 0xBF44519C, 0xC4A00000,
-/**/ 0xBD376F6F, 0xD5804C0E,
-/**/ 0x3F444334, 0xA1D399FA,
-/**/ 0xBF44419A, 0x3B400000,
-/**/ 0xBD234953, 0x6CDE6425,
-/**/ 0x3F44332F, 0x92A0C01A,
-/**/ 0xBF443197, 0xB3E00000,
-/**/ 0x3D070E7B, 0xAAF6596F,
-/**/ 0x3F44232A, 0x876FCB54,
-/**/ 0xBF442195, 0x2E800000,
-/**/ 0x3D2C49F8, 0x4EC011F1,
-/**/ 0x3F441325, 0x8040BA25,
-/**/ 0xBF441192, 0xAB200000,
-/**/ 0x3D3825DC, 0xD8AAA7EB,
-/**/ 0x3F440320, 0x7D138B0E,
-/**/ 0xBF440190, 0x29A00000,
-/**/ 0xBD3F1A8D, 0xFE0B73D6,
-/**/ 0x3F43F31B, 0x7DE83C8C,
-/**/ 0xBF43F18D, 0xAA400000,
-/**/ 0xBD379B43, 0xE46CA26B,
-/**/ 0x3F43E316, 0x82BECD20,
-/**/ 0xBF43E18B, 0x2CE00000,
-/**/ 0xBD315B44, 0x6283780D,
-/**/ 0x3F43D311, 0x8B973B49,
-/**/ 0xBF43D188, 0xB1800000,
-/**/ 0xBD28B31E, 0x017589BE,
-/**/ 0x3F43C30C, 0x98718584,
-/**/ 0xBF43C186, 0x38200000,
-/**/ 0xBD212A46, 0x8FBB296E,
-/**/ 0x3F43B307, 0xA94DAA52,
-/**/ 0xBF43B183, 0xC0C00000,
-/**/ 0xBD183403, 0x045CBBD2,
-/**/ 0x3F43A302, 0xBE2BA832,
-/**/ 0xBF43A181, 0x4B600000,
-/**/ 0xBD13009B, 0xD7CC5936,
-/**/ 0x3F4392FD, 0xD70B7DA2,
-/**/ 0xBF43917E, 0xD8000000,
-/**/ 0xBD12B655, 0xC1742279,
-/**/ 0x3F4382F8, 0xF3ED2921,
-/**/ 0xBF43817C, 0x66A00000,
-/**/ 0xBD17512E, 0xEA83FAE8,
-/**/ 0x3F4372F4, 0x14D0A930,
-/**/ 0xBF437179, 0xF7400000,
-/**/ 0xBD206692, 0xBED65875,
-/**/ 0x3F4362EF, 0x39B5FC4C,
-/**/ 0xBF436177, 0x89E00000,
-/**/ 0xBD27931B, 0xD38FFE9E,
-/**/ 0x3F4352EA, 0x629D20F5,
-/**/ 0xBF435175, 0x1E800000,
-/**/ 0xBD309618, 0xE524208F,
-/**/ 0x3F4342E5, 0x8F8615AA,
-/**/ 0xBF434172, 0xB5200000,
-/**/ 0xBD3697E9, 0xDD4C72C5,
-/**/ 0x3F4332E0, 0xC070D8EB,
-/**/ 0xBF433170, 0x4DC00000,
-/**/ 0xBD3DCE00, 0x5E6E12C3,
-/**/ 0x3F4322DB, 0xF55D6935,
-/**/ 0xBF43216D, 0xE8800000,
-/**/ 0x3D39C8A4, 0x0AE9A8CE,
-/**/ 0x3F4312D7, 0x2E4BC509,
-/**/ 0xBF43116B, 0x85200000,
-/**/ 0x3D302D03, 0xD1CD2FA1,
-/**/ 0x3F4302D2, 0x6B3BEAE5,
-/**/ 0xBF430169, 0x23C00000,
-/**/ 0x3D15807D, 0xA3BADFD1,
-/**/ 0x3F42F2CD, 0xAC2DD949,
-/**/ 0xBF42F166, 0xC4600000,
-/**/ 0xBD1A7422, 0xF57F0504,
-/**/ 0x3F42E2C8, 0xF1218EB3,
-/**/ 0xBF42E164, 0x67000000,
-/**/ 0xBD33C974, 0x2F2C781C,
-/**/ 0x3F42D2C4, 0x3A1709A3,
-/**/ 0xBF42D162, 0x0BC00000,
-/**/ 0x3D3DDBDD, 0x851A1E61,
-/**/ 0x3F42C2BF, 0x870E4898,
-/**/ 0xBF42C15F, 0xB2600000,
-/**/ 0x3D2CA7D9, 0xA14AA8FD,
-/**/ 0x3F42B2BA, 0xD8074A10,
-/**/ 0xBF42B15D, 0x5B000000,
-/**/ 0xBD03022E, 0xDDCDDFF5,
-/**/ 0x3F42A2B6, 0x2D020C8C,
-/**/ 0xBF42A15B, 0x05A00000,
-/**/ 0xBD343FBA, 0x0F9231A8,
-/**/ 0x3F4292B1, 0x85FE8E8A,
-/**/ 0xBF429158, 0xB2600000,
-/**/ 0x3D38B690, 0xA52C9CCF,
-/**/ 0x3F4282AC, 0xE2FCCE8A,
-/**/ 0xBF428156, 0x61000000,
-/**/ 0x3D120E6A, 0xC8CC82EB,
-/**/ 0x3F4272A8, 0x43FCCB0A,
-/**/ 0xBF427154, 0x11A00000,
-/**/ 0xBD30D79B, 0x792E6C51,
-/**/ 0x3F4262A3, 0xA8FE8289,
-/**/ 0xBF426151, 0xC4600000,
-/**/ 0x3D38A5EE, 0x91F7F7AA,
-/**/ 0x3F42529F, 0x1201F387,
-/**/ 0xBF42514F, 0x79000000,
-/**/ 0x3CEFA728, 0x46C2E8BA,
-/**/ 0x3F42429A, 0x7F071C84,
-/**/ 0xBF42414D, 0x2FA00000,
-/**/ 0xBD37D0BA, 0xFA447A17,
-/**/ 0x3F423295, 0xF00DFBFD,
-/**/ 0xBF42314A, 0xE8600000,
-/**/ 0x3D2C7A24, 0x94AF3FED,
-/**/ 0x3F422291, 0x65169072,
-/**/ 0xBF422148, 0xA3000000,
-/**/ 0xBD29B0BD, 0x050CEA04,
-/**/ 0x3F42128C, 0xDE20D863,
-/**/ 0xBF421146, 0x5FC00000,
-/**/ 0x3D36EFF3, 0x0C3035EB,
-/**/ 0x3F420288, 0x5B2CD24E,
-/**/ 0xBF420144, 0x1E600000,
-/**/ 0xBD19A3E2, 0x73569B27,
-/**/ 0x3F41F283, 0xDC3A7CB2,
-/**/ 0xBF41F141, 0xDF200000,
-/**/ 0x3D3B1DDE, 0xEEB67715,
-/**/ 0x3F41E27F, 0x6149D610,
-/**/ 0xBF41E13F, 0xA1C00000,
-/**/ 0xBD11EA17, 0x94F49154,
-/**/ 0x3F41D27A, 0xEA5ADCE5,
-/**/ 0xBF41D13D, 0x66800000,
-/**/ 0x3D3ACED9, 0x52DD9D37,
-/**/ 0x3F41C276, 0x776D8FB1,
-/**/ 0xBF41C13B, 0x2D200000,
-/**/ 0xBD1C140B, 0xF72D8EEB,
-/**/ 0x3F41B272, 0x0881ECF4,
-/**/ 0xBF41B138, 0xF5E00000,
-/**/ 0x3D360AE5, 0x939583E1,
-/**/ 0x3F41A26D, 0x9D97F32C,
-/**/ 0xBF41A136, 0xC0800000,
-/**/ 0xBD2C00D9, 0x1D246C7C,
-/**/ 0x3F419269, 0x36AFA0D9,
-/**/ 0xBF419134, 0x8D400000,
-/**/ 0x3D29B40E, 0x0B955CFB,
-/**/ 0x3F418264, 0xD3C8F479,
-/**/ 0xBF418132, 0x5BE00000,
-/**/ 0xBD3964BF, 0x45A6C249,
-/**/ 0x3F417260, 0x74E3EC8D,
-/**/ 0xBF417130, 0x2CA00000,
-/**/ 0xBCE777E0, 0xF3363612,
-/**/ 0x3F41625C, 0x1A008792,
-/**/ 0xBF41612D, 0xFF600000,
-/**/ 0x3D36D608, 0x28DE8296,
-/**/ 0x3F415257, 0xC31EC409,
-/**/ 0xBF41512B, 0xD4000000,
-/**/ 0xBD32AE69, 0x4BB1B788,
-/**/ 0x3F414253, 0x703EA071,
-/**/ 0xBF414129, 0xAAC00000,
-/**/ 0x3D05BF68, 0x170ECD8C,
-/**/ 0x3F41324F, 0x21601B48,
-/**/ 0xBF413127, 0x83800000,
-/**/ 0x3D370A0B, 0x7C653BFC,
-/**/ 0x3F41224A, 0xD683330E,
-/**/ 0xBF412125, 0x5E200000,
-/**/ 0xBD35B70D, 0x77BBBEBF,
-/**/ 0x3F411246, 0x8FA7E642,
-/**/ 0xBF411123, 0x3AE00000,
-/**/ 0xBD0C52EB, 0x93ABC1CD,
-/**/ 0x3F410242, 0x4CCE3363,
-/**/ 0xBF410121, 0x19A00000,
-/**/ 0x3D2B2237, 0xE5C6F4C7,
-/**/ 0x3F40F23E, 0x0DF618F1,
-/**/ 0xBF40F11E, 0xFA600000,
-/**/ 0x3D3D9C5F, 0x1E9A50AD,
-/**/ 0x3F40E239, 0xD31F956A,
-/**/ 0xBF40E11C, 0xDD000000,
-/**/ 0xBD336793, 0x8965F0DA,
-/**/ 0x3F40D235, 0x9C4AA74E,
-/**/ 0xBF40D11A, 0xC1C00000,
-/**/ 0xBD15E6EE, 0x7E49E231,
-/**/ 0x3F40C231, 0x69774D1D,
-/**/ 0xBF40C118, 0xA8800000,
-/**/ 0x3D1D9B9D, 0x04FD621C,
-/**/ 0x3F40B22D, 0x3AA58554,
-/**/ 0xBF40B116, 0x91400000,
-/**/ 0x3D333B55, 0x7DD9EED3,
-/**/ 0x3F40A229, 0x0FD54E74,
-/**/ 0xBF40A114, 0x7C000000,
-/**/ 0x3D3E048F, 0x7AA78478,
-/**/ 0x3F409224, 0xE906A6FC,
-/**/ 0xBF409112, 0x68A00000,
-/**/ 0xBD383C6A, 0x644DDE88,
-/**/ 0x3F408220, 0xC6398D6B,
-/**/ 0xBF408110, 0x57600000,
-/**/ 0xBD2F0D2F, 0x76B8C83A,
-/**/ 0x3F40721C, 0xA76E0040,
-/**/ 0xBF40710E, 0x48200000,
-/**/ 0xBD1F63E0, 0x9CE99FD3,
-/**/ 0x3F406218, 0x8CA3FDFB,
-/**/ 0xBF40610C, 0x3AE00000,
-/**/ 0xBCF328B4, 0x4FE774F2,
-/**/ 0x3F405214, 0x75DB851A,
-/**/ 0xBF40510A, 0x2FA00000,
-/**/ 0x3D11B6BD, 0x3782BCD4,
-/**/ 0x3F404210, 0x6314941D,
-/**/ 0xBF404108, 0x26600000,
-/**/ 0x3D22116F, 0xE7183792,
-/**/ 0x3F40320C, 0x544F2983,
-/**/ 0xBF403106, 0x1F200000,
-/**/ 0x3D293F1E, 0x1B995B3D,
-/**/ 0x3F402208, 0x498B43CB,
-/**/ 0xBF402104, 0x19E00000,
-/**/ 0x3D2E6669, 0xFC162630,
-/**/ 0x3F401204, 0x42C8E175,
-/**/ 0xBF401102, 0x16A00000,
-/**/ 0x3D30C4AA, 0x254FC9F8,
-/**/ 0x3F400200, 0x40080100,
-/**/ 0xBF400100, 0x15600000,
-/**/ 0x3D3154EE, 0xE4431F92,
-/**/ 0x3F3FE3F8, 0x829141D6,
-/**/ 0xBF3FE1FC, 0x2C400000,
-/**/ 0x3D30E503, 0x9B2D30FB,
-/**/ 0x3F3FC3F0, 0x8D157F6B,
-/**/ 0xBF3FC1F8, 0x31C00000,
-/**/ 0x3D2EEBD1, 0x53EBD670,
-/**/ 0x3F3FA3E8, 0x9F9CB7BC,
-/**/ 0xBF3FA1F4, 0x3B400000,
-/**/ 0x3D2A113C, 0xE04A16E0,
-/**/ 0x3F3F83E0, 0xBA26E7CA,
-/**/ 0xBF3F81F0, 0x48C00000,
-/**/ 0x3D233C4A, 0x99C43E34,
-/**/ 0x3F3F63D8, 0xDCB40C91,
-/**/ 0xBF3F61EC, 0x5A400000,
-/**/ 0x3D14DDF6, 0x7BD210C1,
-/**/ 0x3F3F43D1, 0x07442311,
-/**/ 0xBF3F41E8, 0x6FC00000,
-/**/ 0xBCC52C1D, 0x9E4B51C8,
-/**/ 0x3F3F23C9, 0x39D72849,
-/**/ 0xBF3F21E4, 0x89400000,
-/**/ 0xBD1A196F, 0x8EA8C754,
-/**/ 0x3F3F03C1, 0x746D1936,
-/**/ 0xBF3F01E0, 0xA6C00000,
-/**/ 0xBD2BB719, 0xF95AF98D,
-/**/ 0x3F3EE3B9, 0xB705F2D8,
-/**/ 0xBF3EE1DC, 0xC8400000,
-/**/ 0xBD3628EB, 0x28FFD598,
-/**/ 0x3F3EC3B2, 0x01A1B22C,
-/**/ 0xBF3EC1D8, 0xEDC00000,
-/**/ 0xBD3F6D76, 0x0BBAC8F8,
-/**/ 0x3F3EA3AA, 0x54405432,
-/**/ 0xBF3EA1D5, 0x17800000,
-/**/ 0x3D3657D2, 0xB7A7EE0D,
-/**/ 0x3F3E83A2, 0xAEE1D5E8,
-/**/ 0xBF3E81D1, 0x45000000,
-/**/ 0x3D264FDE, 0xFA9CCC78,
-/**/ 0x3F3E639B, 0x1186344C,
-/**/ 0xBF3E61CD, 0x76800000,
-/**/ 0xBCEF83EB, 0xE02EF455,
-/**/ 0x3F3E4393, 0x7C2D6C5E,
-/**/ 0xBF3E41C9, 0xAC000000,
-/**/ 0xBD2C26B3, 0x03C3E129,
-/**/ 0x3F3E238B, 0xEED77B1B,
-/**/ 0xBF3E21C5, 0xE5800000,
-/**/ 0xBD3C1CBE, 0x904D773D,
-/**/ 0x3F3E0384, 0x69845D83,
-/**/ 0xBF3E01C2, 0x23400000,
-/**/ 0x3D34E8B1, 0xD0615454,
-/**/ 0x3F3DE37C, 0xEC341093,
-/**/ 0xBF3DE1BE, 0x64C00000,
-/**/ 0x3D13F7DF, 0xE9BE933E,
-/**/ 0x3F3DC375, 0x76E6914B,
-/**/ 0xBF3DC1BA, 0xAA400000,
-/**/ 0xBD27B7D7, 0x707B004A,
-/**/ 0x3F3DA36E, 0x099BDCA9,
-/**/ 0xBF3DA1B6, 0xF3C00000,
-/**/ 0xBD3DA3F8, 0xEE2141C3,
-/**/ 0x3F3D8366, 0xA453EFAC,
-/**/ 0xBF3D81B3, 0x41800000,
-/**/ 0x3D2F4DA1, 0x63D21825,
-/**/ 0x3F3D635F, 0x470EC752,
-/**/ 0xBF3D61AF, 0x93000000,
-/**/ 0xBD0FD473, 0xFAD0B844,
-/**/ 0x3F3D4357, 0xF1CC609A,
-/**/ 0xBF3D41AB, 0xE8800000,
-/**/ 0xBD388716, 0x298657C2,
-/**/ 0x3F3D2350, 0xA48CB882,
-/**/ 0xBF3D21A8, 0x42400000,
-/**/ 0x3D32023A, 0x0B68711A,
-/**/ 0x3F3D0349, 0x5F4FCC0A,
-/**/ 0xBF3D01A4, 0x9FC00000,
-/**/ 0xBD117676, 0x23A704B0,
-/**/ 0x3F3CE342, 0x22159830,
-/**/ 0xBF3CE1A1, 0x01400000,
-/**/ 0xBD3BA59C, 0x8F391F09,
-/**/ 0x3F3CC33A, 0xECDE19F1,
-/**/ 0xBF3CC19D, 0x67000000,
-/**/ 0x3D28567A, 0x9EBBF706,
-/**/ 0x3F3CA333, 0xBFA94E4E,
-/**/ 0xBF3CA199, 0xD0800000,
-/**/ 0xBD29D41F, 0x2D41F1CC,
-/**/ 0x3F3C832C, 0x9A773245,
-/**/ 0xBF3C8196, 0x3E400000,
-/**/ 0x3D391B7D, 0x14ED5134,
-/**/ 0x3F3C6325, 0x7D47C2D4,
-/**/ 0xBF3C6192, 0xAFC00000,
-/**/ 0xBCFC31C5, 0x83403B5B,
-/**/ 0x3F3C431E, 0x681AFCFA,
-/**/ 0xBF3C418F, 0x25400000,
-/**/ 0xBD3D84DB, 0x88A1FFF3,
-/**/ 0x3F3C2317, 0x5AF0DDB6,
-/**/ 0xBF3C218B, 0x9F000000,
-/**/ 0x3D175CFF, 0x6298A63B,
-/**/ 0x3F3C0310, 0x55C96207,
-/**/ 0xBF3C0188, 0x1C800000,
-/**/ 0xBD37ADC9, 0xDFB8E489,
-/**/ 0x3F3BE309, 0x58A486EA,
-/**/ 0xBF3BE184, 0x9E400000,
-/**/ 0x3D23DA0F, 0x45069C64,
-/**/ 0x3F3BC302, 0x6382495F,
-/**/ 0xBF3BC181, 0x23C00000,
-/**/ 0xBD35574B, 0x4CC2EFE0,
-/**/ 0x3F3BA2FB, 0x7662A665,
-/**/ 0xBF3BA17D, 0xAD800000,
-/**/ 0x3D250C7B, 0x4BED0B89,
-/**/ 0x3F3B82F4, 0x91459AFA,
-/**/ 0xBF3B817A, 0x3B000000,
-/**/ 0xBD36795D, 0x322E5605,
-/**/ 0x3F3B62ED, 0xB42B241D,
-/**/ 0xBF3B6176, 0xCCC00000,
-/**/ 0x3D1EAB91, 0xF6413886,
-/**/ 0x3F3B42E6, 0xDF133ECC,
-/**/ 0xBF3B4173, 0x62400000,
-/**/ 0xBD3B0BFC, 0xF86BE5B5,
-/**/ 0x3F3B22E0, 0x11FDE807,
-/**/ 0xBF3B216F, 0xFC000000,
-/**/ 0x3CF62FEB, 0xDDE8D701,
-/**/ 0x3F3B02D9, 0x4CEB1CCC,
-/**/ 0xBF3B016C, 0x99C00000,
-/**/ 0x3D3CF8D7, 0xF210FD9E,
-/**/ 0x3F3AE2D2, 0x8FDADA1A,
-/**/ 0xBF3AE169, 0x3B400000,
-/**/ 0xBD2092E2, 0x1526CFB0,
-/**/ 0x3F3AC2CB, 0xDACD1CEF,
-/**/ 0xBF3AC165, 0xE1000000,
-/**/ 0x3D319D24, 0x18D261D5,
-/**/ 0x3F3AA2C5, 0x2DC1E24A,
-/**/ 0xBF3AA162, 0x8A800000,
-/**/ 0xBD355268, 0x533CC8EC,
-/**/ 0x3F3A82BE, 0x88B9272B,
-/**/ 0xBF3A815F, 0x38400000,
-/**/ 0x3D074750, 0x0AFE6139,
-/**/ 0x3F3A62B7, 0xEBB2E88F,
-/**/ 0xBF3A615B, 0xEA000000,
-/**/ 0x3D3A501B, 0x6668AD57,
-/**/ 0x3F3A42B1, 0x56AF2375,
-/**/ 0xBF3A4158, 0x9F800000,
-/**/ 0xBD2E37A7, 0xA98381BD,
-/**/ 0x3F3A22AA, 0xC9ADD4DD,
-/**/ 0xBF3A2155, 0x59400000,
-/**/ 0x3D1A9872, 0x7B82F9AC,
-/**/ 0x3F3A02A4, 0x44AEF9C5,
-/**/ 0xBF3A0152, 0x17000000,
-/**/ 0x3D3B96ED, 0x0FF040AD,
-/**/ 0x3F39E29D, 0xC7B28F2C,
-/**/ 0xBF39E14E, 0xD8800000,
-/**/ 0xBD304862, 0x33534BD7,
-/**/ 0x3F39C297, 0x52B89211,
-/**/ 0xBF39C14B, 0x9E400000,
-/**/ 0x3D084979, 0x17AF009B,
-/**/ 0x3F39A290, 0xE5C0FF72,
-/**/ 0xBF39A148, 0x68000000,
-/**/ 0x3D358CA1, 0x604B64C9,
-/**/ 0x3F39828A, 0x80CBD44E,
-/**/ 0xBF398145, 0x35800000,
-/**/ 0xBD38BD0B, 0x2E334404,
-/**/ 0x3F396284, 0x23D90DA4,
-/**/ 0xBF396142, 0x07400000,
-/**/ 0xBD1F4B58, 0xEF1B1C68,
-/**/ 0x3F39427D, 0xCEE8A873,
-/**/ 0xBF39413E, 0xDD000000,
-/**/ 0x3D209881, 0x07E010EC,
-/**/ 0x3F392277, 0x81FAA1B9,
-/**/ 0xBF39213B, 0xB6C00000,
-/**/ 0x3D37A139, 0x5CF03181,
-/**/ 0x3F390271, 0x3D0EF676,
-/**/ 0xBF390138, 0x94400000,
-/**/ 0xBD39D2EB, 0x65276B0B,
-/**/ 0x3F38E26B, 0x0025A3A8,
-/**/ 0xBF38E135, 0x76000000,
-/**/ 0xBD281E5A, 0xEE3023F6,
-/**/ 0x3F38C264, 0xCB3EA64F,
-/**/ 0xBF38C132, 0x5BC00000,
-/**/ 0x3CEDAE6E, 0x3F9A4B53,
-/**/ 0x3F38A25E, 0x9E59FB68,
-/**/ 0xBF38A12F, 0x45800000,
-/**/ 0x3D2A47EF, 0x412B648E,
-/**/ 0x3F388258, 0x79779FF3,
-/**/ 0xBF38812C, 0x33400000,
-/**/ 0x3D38955F, 0x5ED0D8F2,
-/**/ 0x3F386252, 0x5C9790EE,
-/**/ 0xBF386129, 0x24C00000,
-/**/ 0xBD3CBD55, 0x09939374,
-/**/ 0x3F38424C, 0x47B9CB5A,
-/**/ 0xBF384126, 0x1A800000,
-/**/ 0xBD32D325, 0x4F399186,
-/**/ 0x3F382246, 0x3ADE4C33,
-/**/ 0xBF382123, 0x14400000,
-/**/ 0xBD235622, 0x524688EB,
-/**/ 0x3F380240, 0x3605107A,
-/**/ 0xBF380120, 0x12000000,
-/**/ 0xBCF44184, 0xEB2F3DDC,
-/**/ 0x3F37E23A, 0x392E152C,
-/**/ 0xBF37E11D, 0x13C00000,
-/**/ 0x3D198B16, 0x2153D1B8,
-/**/ 0x3F37C234, 0x4459574A,
-/**/ 0xBF37C11A, 0x19800000,
-/**/ 0x3D2A9511, 0x47A3C923,
-/**/ 0x3F37A22E, 0x5786D3D1,
-/**/ 0xBF37A117, 0x23400000,
-/**/ 0x3D337431, 0x4B4128D9,
-/**/ 0x3F378228, 0x72B687C1,
-/**/ 0xBF378114, 0x31000000,
-/**/ 0x3D38E0BF, 0xC5BFE9E8,
-/**/ 0x3F376222, 0x95E87019,
-/**/ 0xBF376111, 0x42C00000,
-/**/ 0x3D3D9134, 0x5A0B2CE9,
-/**/ 0x3F37421C, 0xC11C89D8,
-/**/ 0xBF37410E, 0x58400000,
-/**/ 0xBD3E7970, 0xB1802C40,
-/**/ 0x3F372216, 0xF452D1FB,
-/**/ 0xBF37210B, 0x72000000,
-/**/ 0xBD3B3E2F, 0x16E562C9,
-/**/ 0x3F370211, 0x2F8B4583,
-/**/ 0xBF370108, 0x8FC00000,
-/**/ 0xBD38BC06, 0x9087DACD,
-/**/ 0x3F36E20B, 0x72C5E16F,
-/**/ 0xBF36E105, 0xB1800000,
-/**/ 0xBD36F1F6, 0xD92B1B21,
-/**/ 0x3F36C205, 0xBE02A2BC,
-/**/ 0xBF36C102, 0xD7400000,
-/**/ 0xBD35DEFF, 0xABF2CD23,
-/**/ 0x3F36A200, 0x1141866B,
-/**/ 0xBF36A100, 0x01000000,
-/**/ 0xBD358220, 0xC462BC85,
-/**/ 0x3F3681FA, 0x6C828979,
-/**/ 0xBF3680FD, 0x2EC00000,
-/**/ 0xBD35DA59, 0xDE5ED723,
-/**/ 0x3F3661F4, 0xCFC5A8E7,
-/**/ 0xBF3660FA, 0x60800000,
-/**/ 0xBD36E6AA, 0xB62B2CD1,
-/**/ 0x3F3641EF, 0x3B0AE1B2,
-/**/ 0xBF3640F7, 0x96400000,
-/**/ 0xBD38A613, 0x086BEF29,
-/**/ 0x3F3621E9, 0xAE5230DA,
-/**/ 0xBF3620F4, 0xD0000000,
-/**/ 0xBD3B1792, 0x9225715D,
-/**/ 0x3F3601E4, 0x299B935F,
-/**/ 0xBF3600F2, 0x0DC00000,
-/**/ 0xBD3E3A29, 0x10BC2805,
-/**/ 0x3F35E1DE, 0xACE7063E,
-/**/ 0xBF35E0EF, 0x4FC00000,
-/**/ 0x3D3DF329, 0xBE0B570D,
-/**/ 0x3F35C1D9, 0x38348676,
-/**/ 0xBF35C0EC, 0x95800000,
-/**/ 0x3D397166, 0x1C0C5502,
-/**/ 0x3F35A1D3, 0xCB841108,
-/**/ 0xBF35A0E9, 0xDF400000,
-/**/ 0x3D34418C, 0x4AC1FA2D,
-/**/ 0x3F3581CE, 0x66D5A2F1,
-/**/ 0xBF3580E7, 0x2D000000,
-/**/ 0x3D2CC939, 0x168E9C6E,
-/**/ 0x3F3561C9, 0x0A293931,
-/**/ 0xBF3560E4, 0x7EC00000,
-/**/ 0x3D1F6E5C, 0x795CE154,
-/**/ 0x3F3541C3, 0xB57ED0C7,
-/**/ 0xBF3540E1, 0xD4800000,
-/**/ 0x3CE4EF88, 0x898FEE67,
-/**/ 0x3F3521BE, 0x68D666B1,
-/**/ 0xBF3520DF, 0x2E400000,
-/**/ 0xBD1CDACF, 0x0B78D65E,
-/**/ 0x3F3501B9, 0x242FF7EF,
-/**/ 0xBF3500DC, 0x8C000000,
-/**/ 0xBD2F7BF1, 0x6F1CBFB8,
-/**/ 0x3F34E1B3, 0xE78B8180,
-/**/ 0xBF34E0D9, 0xEDC00000,
-/**/ 0xBD38ED52, 0x5A899820,
-/**/ 0x3F34C1AE, 0xB2E90063,
-/**/ 0xBF34C0D7, 0x53C00000,
-/**/ 0x3D3D3C3F, 0x930A694E,
-/**/ 0x3F34A1A9, 0x86487196,
-/**/ 0xBF34A0D4, 0xBD800000,
-/**/ 0x3D32BFBD, 0x4FA7CCCB,
-/**/ 0x3F3481A4, 0x61A9D219,
-/**/ 0xBF3480D2, 0x2B400000,
-/**/ 0x3D1E789C, 0x65A26E32,
-/**/ 0x3F34619F, 0x450D1EEB,
-/**/ 0xBF3460CF, 0x9D000000,
-/**/ 0xBD109E0B, 0x47E500B5,
-/**/ 0x3F34419A, 0x3072550B,
-/**/ 0xBF3440CD, 0x12C00000,
-/**/ 0xBD309040, 0x3523FAE9,
-/**/ 0x3F342195, 0x23D97178,
-/**/ 0xBF3420CA, 0x8C800000,
-/**/ 0xBD3D9B10, 0xD31DE7C2,
-/**/ 0x3F340190, 0x1F427131,
-/**/ 0xBF3400C8, 0x0A800000,
-/**/ 0x3D34B90B, 0x90B287C4,
-/**/ 0x3F33E18B, 0x22AD5135,
-/**/ 0xBF33E0C5, 0x8C400000,
-/**/ 0x3D19B454, 0xCA1B0FC2,
-/**/ 0x3F33C186, 0x2E1A0E83,
-/**/ 0xBF33C0C3, 0x12000000,
-/**/ 0xBD20FBE7, 0x638FC1F4,
-/**/ 0x3F33A181, 0x4188A61A,
-/**/ 0xBF33A0C0, 0x9BC00000,
-/**/ 0xBD38070E, 0xE0C03290,
-/**/ 0x3F33817C, 0x5CF914F9,
-/**/ 0xBF3380BE, 0x29C00000,
-/**/ 0x3D37D2C3, 0xE0B6E5F5,
-/**/ 0x3F336177, 0x806B5820,
-/**/ 0xBF3360BB, 0xBB800000,
-/**/ 0x3D1C4213, 0x35598794,
-/**/ 0x3F334172, 0xABDF6C8D,
-/**/ 0xBF3340B9, 0x51400000,
-/**/ 0xBD249997, 0xC111C569,
-/**/ 0x3F33216D, 0xDF554F40,
-/**/ 0xBF3320B6, 0xEB000000,
-/**/ 0xBD3C442D, 0xEEEE28E2,
-/**/ 0x3F330169, 0x1ACCFD37,
-/**/ 0xBF3300B4, 0x89000000,
-/**/ 0x3D312B5E, 0xDBBF316D,
-/**/ 0x3F32E164, 0x5E467372,
-/**/ 0xBF32E0B2, 0x2AC00000,
-/**/ 0xBCFFD254, 0x7484E6E1,
-/**/ 0x3F32C15F, 0xA9C1AEF0,
-/**/ 0xBF32C0AF, 0xD0800000,
-/**/ 0xBD35BCBA, 0x1F2C3F9D,
-/**/ 0x3F32A15A, 0xFD3EACAF,
-/**/ 0xBF32A0AD, 0x7A800000,
-/**/ 0x3D35EDA0, 0x8C8BAA61,
-/**/ 0x3F328156, 0x58BD69B0,
-/**/ 0xBF3280AB, 0x28400000,
-/**/ 0x3CF02EAF, 0x3F79FE5E,
-/**/ 0x3F326151, 0xBC3DE2F1,
-/**/ 0xBF3260A8, 0xDA000000,
-/**/ 0xBD347BDA, 0xB1304AA8,
-/**/ 0x3F32414D, 0x27C01572,
-/**/ 0xBF3240A6, 0x90000000,
-/**/ 0x3D35724F, 0xD46BE359,
-/**/ 0x3F322148, 0x9B43FE30,
-/**/ 0xBF3220A4, 0x49C00000,
-/**/ 0xBCF31954, 0x43BF90C9,
-/**/ 0x3F320144, 0x16C99A2D,
-/**/ 0xBF3200A2, 0x07800000,
-/**/ 0xBD386689, 0xC4901E30,
-/**/ 0x3F31E13F, 0x9A50E666,
-/**/ 0xBF31E09F, 0xC9800000,
-/**/ 0x3D2FA8E5, 0x134E34BF,
-/**/ 0x3F31C13B, 0x25D9DFDB,
-/**/ 0xBF31C09D, 0x8F400000,
-/**/ 0xBD20FF40, 0x477D87DF,
-/**/ 0x3F31A136, 0xB964838C,
-/**/ 0xBF31A09B, 0x59400000,
-/**/ 0x3D3E9E3E, 0x68B5B77B,
-/**/ 0x3F318132, 0x54F0CE76,
-/**/ 0xBF318099, 0x27000000,
-/**/ 0x3D14BC39, 0x906F8A53,
-/**/ 0x3F31612D, 0xF87EBD9A,
-/**/ 0xBF316096, 0xF8C00000,
-/**/ 0xBD34CC2F, 0xFCD50724,
-/**/ 0x3F314129, 0xA40E4DF7,
-/**/ 0xBF314094, 0xCEC00000,
-/**/ 0x3D30AD83, 0x7A3A1B8D,
-/**/ 0x3F312125, 0x579F7C8B,
-/**/ 0xBF312092, 0xA8800000,
-/**/ 0xBD24C5AE, 0x057F5C66,
-/**/ 0x3F310121, 0x13324657,
-/**/ 0xBF310090, 0x86800000,
-/**/ 0x3D3A03C0, 0xBFD488E0,
-/**/ 0x3F30E11C, 0xD6C6A858,
-/**/ 0xBF30E08E, 0x68400000,
-/**/ 0xBD00EDA8, 0x56935D63,
-/**/ 0x3F30C118, 0xA25C9F8F,
-/**/ 0xBF30C08C, 0x4E000000,
-/**/ 0xBD3EC638, 0x2FDDD1CE,
-/**/ 0x3F30A114, 0x75F428FB,
-/**/ 0xBF30A08A, 0x38000000,
-/**/ 0x3D102CDE, 0x0CA3DCBE,
-/**/ 0x3F308110, 0x518D419B,
-/**/ 0xBF308088, 0x25C00000,
-/**/ 0xBD39A865, 0xBFA78921,
-/**/ 0x3F30610C, 0x3527E66D,
-/**/ 0xBF306086, 0x17C00000,
-/**/ 0x3D203FE0, 0x72CE37BD,
-/**/ 0x3F304108, 0x20C41472,
-/**/ 0xBF304084, 0x0D800000,
-/**/ 0xBD369AC6, 0x6054C3FA,
-/**/ 0x3F302104, 0x1461C8A9,
-/**/ 0xBF302082, 0x07800000,
-/**/ 0x3D2450ED, 0x4836293A,
-/**/ 0x3F300100, 0x10010010,
-/**/ 0xBF300080, 0x05400000,
-/**/ 0xBD359558, 0x88B3357C,
-/**/ 0x3F2FC1F8, 0x27436F4F,
-/**/ 0xBF2FC0FC, 0x0E800000,
-/**/ 0x3D245998, 0x92ECD4D1,
-/**/ 0x3F2F81F0, 0x3E87D8DC,
-/**/ 0xBF2F80F8, 0x1A000000,
-/**/ 0xBD36901A, 0xB592170A,
-/**/ 0x3F2F41E8, 0x65CF36C6,
-/**/ 0xBF2F40F4, 0x2E000000,
-/**/ 0x3D2069E5, 0x53524603,
-/**/ 0x3F2F01E0, 0x9D19830B,
-/**/ 0xBF2F00F0, 0x49800000,
-/**/ 0xBD39830B, 0x69C22240,
-/**/ 0x3F2EC1D8, 0xE466B7AB,
-/**/ 0xBF2EC0EC, 0x6D800000,
-/**/ 0x3D1123AC, 0xFB871BBA,
-/**/ 0x3F2E81D1, 0x3BB6CEA4,
-/**/ 0xBF2E80E8, 0x99000000,
-/**/ 0xBD3E6629, 0x2E158AF6,
-/**/ 0x3F2E41C9, 0xA309C1F4,
-/**/ 0xBF2E40E4, 0xCD000000,
-/**/ 0xBCF8F488, 0x2B29884E,
-/**/ 0x3F2E01C2, 0x1A5F8B99,
-/**/ 0xBF2E00E1, 0x09000000,
-/**/ 0x3D3ACE8D, 0x6EA006C6,
-/**/ 0x3F2DC1BA, 0xA1B82593,
-/**/ 0xBF2DC0DD, 0x4C800000,
-/**/ 0xBD22974E, 0x59D0B687,
-/**/ 0x3F2D81B3, 0x391389E0,
-/**/ 0xBF2D80D9, 0x98800000,
-/**/ 0x3D322319, 0xD7897CAD,
-/**/ 0x3F2D41AB, 0xE071B27F,
-/**/ 0xBF2D40D5, 0xEC000000,
-/**/ 0xBD32E42F, 0x57954C6E,
-/**/ 0x3F2D01A4, 0x97D2996E,
-/**/ 0xBF2D00D2, 0x48000000,
-/**/ 0x3D1E7DF5, 0xC741610E,
-/**/ 0x3F2CC19D, 0x5F3638AB,
-/**/ 0xBF2CC0CE, 0xAB800000,
-/**/ 0xBD3E50DF, 0xA0909C5A,
-/**/ 0x3F2C8196, 0x369C8A37,
-/**/ 0xBF2C80CB, 0x17800000,
-/**/ 0xBD12D119, 0x8D8D1C8F,
-/**/ 0x3F2C418F, 0x1E05880E,
-/**/ 0xBF2C40C7, 0x8B800000,
-/**/ 0x3D347649, 0x544D2574,
-/**/ 0x3F2C0188, 0x15712C30,
-/**/ 0xBF2C00C4, 0x07000000,
-/**/ 0xBD32D030, 0x4EEA9E68,
-/**/ 0x3F2BC181, 0x1CDF709C,
-/**/ 0xBF2BC0C0, 0x8B000000,
-/**/ 0x3D15E533, 0x74A84109,
-/**/ 0x3F2B817A, 0x34504F50,
-/**/ 0xBF2B80BD, 0x17000000,
-/**/ 0x3D3D53C1, 0x025FBF68,
-/**/ 0x3F2B4173, 0x5BC3C24B,
-/**/ 0xBF2B40B9, 0xAA800000,
-/**/ 0xBD267FA7, 0x6BAA2FA8,
-/**/ 0x3F2B016C, 0x9339C38C,
-/**/ 0xBF2B00B6, 0x46800000,
-/**/ 0x3D277F1D, 0xBB3FDE1E,
-/**/ 0x3F2AC165, 0xDAB24D11,
-/**/ 0xBF2AC0B2, 0xEA000000,
-/**/ 0xBD3DAD17, 0x1A8CDBE2,
-/**/ 0x3F2A815F, 0x322D58D9,
-/**/ 0xBF2A80AF, 0x96000000,
-/**/ 0xBD1E1315, 0xD81CF36E,
-/**/ 0x3F2A4158, 0x99AAE0E3,
-/**/ 0xBF2A40AC, 0x4A000000,
-/**/ 0x3D2C7307, 0xE649E7B4,
-/**/ 0x3F2A0152, 0x112ADF2D,
-/**/ 0xBF2A00A9, 0x05800000,
-/**/ 0xBD3C713A, 0xB77435EC,
-/**/ 0x3F29C14B, 0x98AD4DB7,
-/**/ 0xBF29C0A5, 0xC9800000,
-/**/ 0xBD1E1005, 0x3A7AE827,
-/**/ 0x3F298145, 0x3032267F,
-/**/ 0xBF2980A2, 0x95800000,
-/**/ 0x3D2A0460, 0xA8F2A842,
-/**/ 0x3F29413E, 0xD7B96385,
-/**/ 0xBF29409F, 0x69000000,
-/**/ 0xBD3EDDA5, 0xA7B8321E,
-/**/ 0x3F290138, 0x8F42FEC5,
-/**/ 0xBF29009C, 0x45000000,
-/**/ 0xBD264506, 0x3A3F0D33,
-/**/ 0x3F28C132, 0x56CEF241,
-/**/ 0xBF28C099, 0x29000000,
-/**/ 0x3D206930, 0x33EE13CD,
-/**/ 0x3F28812C, 0x2E5D37F6,
-/**/ 0xBF288096, 0x15000000,
-/**/ 0x3D3B28AC, 0x22DF1FDA,
-/**/ 0x3F284126, 0x15EDC9E3,
-/**/ 0xBF284093, 0x08800000,
-/**/ 0xBD324546, 0xDD73B6DB,
-/**/ 0x3F280120, 0x0D80A208,
-/**/ 0xBF280090, 0x04800000,
-/**/ 0xBCB440C2, 0x6DFEB485,
-/**/ 0x3F27C11A, 0x1515BA62,
-/**/ 0xBF27C08D, 0x08800000,
-/**/ 0x3D31BCBE, 0x9823B19D,
-/**/ 0x3F278114, 0x2CAD0CF1,
-/**/ 0xBF27808A, 0x14000000,
-/**/ 0xBD3CD148, 0xA9EB4E97,
-/**/ 0x3F27410E, 0x544693B4,
-/**/ 0xBF274087, 0x28000000,
-/**/ 0xBD277AAC, 0xCA4F73AA,
-/**/ 0x3F270108, 0x8BE248AA,
-/**/ 0xBF270084, 0x44000000,
-/**/ 0x3D13E656, 0x26068EF7,
-/**/ 0x3F26C102, 0xD38025D2,
-/**/ 0xBF26C081, 0x68000000,
-/**/ 0x3D35547B, 0x44C3EC8A,
-/**/ 0x3F2680FD, 0x2B20252A,
-/**/ 0xBF26807E, 0x93800000,
-/**/ 0xBD3AABA5, 0x110DCE4B,
-/**/ 0x3F2640F7, 0x92C240B1,
-/**/ 0xBF26407B, 0xC7800000,
-/**/ 0xBD260B96, 0xAC011956,
-/**/ 0x3F2600F2, 0x0A667267,
-/**/ 0xBF260079, 0x03800000,
-/**/ 0x3D111C22, 0x5DFA826E,
-/**/ 0x3F25C0EC, 0x920CB44A,
-/**/ 0xBF25C076, 0x47800000,
-/**/ 0x3D333BD6, 0xD8A2980A,
-/**/ 0x3F2580E7, 0x29B5005A,
-/**/ 0xBF258073, 0x93000000,
-/**/ 0xBD3E2660, 0x71C1D861,
-/**/ 0x3F2540E1, 0xD15F5095,
-/**/ 0xBF254070, 0xE7000000,
-/**/ 0xBD2FBD3A, 0x4E77E5EE,
-/**/ 0x3F2500DC, 0x890B9EFA,
-/**/ 0xBF25006E, 0x43000000,
-/**/ 0xBCFEBDF2, 0x7B90A2D9,
-/**/ 0x3F24C0D7, 0x50B9E589,
-/**/ 0xBF24C06B, 0xA7000000,
-/**/ 0x3D2765B3, 0x58F2FF2C,
-/**/ 0x3F2480D2, 0x286A1E40,
-/**/ 0xBF248069, 0x13000000,
-/**/ 0x3D38FE8D, 0x74AE382C,
-/**/ 0x3F2440CD, 0x101C431E,
-/**/ 0xBF244066, 0x86800000,
-/**/ 0xBD3A07C3, 0xB0286224,
-/**/ 0x3F2400C8, 0x07D04E23,
-/**/ 0xBF240064, 0x02800000,
-/**/ 0xBD2ABE33, 0x46EFC0EC,
-/**/ 0x3F23C0C3, 0x0F86394D,
-/**/ 0xBF23C061, 0x86800000,
-/**/ 0xBCF06744, 0x70DE3151,
-/**/ 0x3F2380BE, 0x273DFE9C,
-/**/ 0xBF23805F, 0x12800000,
-/**/ 0x3D260659, 0x05CFCD61,
-/**/ 0x3F2340B9, 0x4EF7980F,
-/**/ 0xBF23405C, 0xA6800000,
-/**/ 0x3D36BEC8, 0xD7DBBEBC,
-/**/ 0x3F2300B4, 0x86B2FFA4,
-/**/ 0xBF23005A, 0x42000000,
-/**/ 0xBD3DD29F, 0x2B2027B4,
-/**/ 0x3F22C0AF, 0xCE702F5C,
-/**/ 0xBF22C057, 0xE6000000,
-/**/ 0xBD32B00B, 0x6959A7D0,
-/**/ 0x3F2280AB, 0x262F2134,
-/**/ 0xBF228055, 0x92000000,
-/**/ 0xBD1F61EF, 0x19FAAC2D,
-/**/ 0x3F2240A6, 0x8DEFCF2C,
-/**/ 0xBF224053, 0x46000000,
-/**/ 0x3D05A87E, 0xCB16B8A8,
-/**/ 0x3F2200A2, 0x05B23344,
-/**/ 0xBF220051, 0x02000000,
-/**/ 0x3D29F32F, 0x23B9B257,
-/**/ 0x3F21C09D, 0x8D76477A,
-/**/ 0xBF21C04E, 0xC6000000,
-/**/ 0x3D36F61B, 0x7E214821,
-/**/ 0x3F218099, 0x253C05CD,
-/**/ 0xBF21804C, 0x91800000,
-/**/ 0xBD3F5464, 0x46FDFCA2,
-/**/ 0x3F214094, 0xCD03683D,
-/**/ 0xBF21404A, 0x65800000,
-/**/ 0xBD35E4E7, 0xA30F2308,
-/**/ 0x3F210090, 0x84CC68C9,
-/**/ 0xBF210048, 0x41800000,
-/**/ 0xBD2974DC, 0xF800CC34,
-/**/ 0x3F20C08C, 0x4C970171,
-/**/ 0xBF20C046, 0x25800000,
-/**/ 0xBD0E9FC5, 0xC1006E9D,
-/**/ 0x3F208088, 0x24632C32,
-/**/ 0xBF208044, 0x11800000,
-/**/ 0x3D133DE7, 0x078E4438,
-/**/ 0x3F204084, 0x0C30E30D,
-/**/ 0xBF204042, 0x05800000,
-/**/ 0x3D2A61D2, 0x15F82A7B,
-/**/ 0x3F200080, 0x04002001,
-/**/ 0xBF200040, 0x01800000,
-/**/ 0x3D355155, 0x3BBB110C,
-/**/ 0x3F1F80F8, 0x17A1BA1A,
-/**/ 0xBF1F807C, 0x0B000000,
-/**/ 0x3D3D31BE, 0x6C520A9B,
-/**/ 0x3F1F00F0, 0x47462860,
-/**/ 0xBF1F0078, 0x22000000,
-/**/ 0xBD3B2CDB, 0x4B6D83F6,
-/**/ 0x3F1E80E8, 0x96ED7ED3,
-/**/ 0xBF1E8074, 0x4A000000,
-/**/ 0xBD33C977, 0xD4122C5A,
-/**/ 0x3F1E00E1, 0x0697B172,
-/**/ 0xBF1E0070, 0x82000000,
-/**/ 0xBD29462E, 0x2D1517C4,
-/**/ 0x3F1D80D9, 0x9644B43B,
-/**/ 0xBF1D806C, 0xCA000000,
-/**/ 0xBD16E2E3, 0xF0952D45,
-/**/ 0x3F1D00D2, 0x45F47B2C,
-/**/ 0xBF1D0069, 0x22000000,
-/**/ 0x3CEED452, 0x2DDC2A8D,
-/**/ 0x3F1C80CB, 0x15A6FA46,
-/**/ 0xBF1C8065, 0x8A000000,
-/**/ 0x3D1DAFEE, 0xA08CEBE8,
-/**/ 0x3F1C00C4, 0x055C2585,
-/**/ 0xBF1C0062, 0x02000000,
-/**/ 0x3D2B50A4, 0xBB11EF55,
-/**/ 0x3F1B80BD, 0x1513F0E9,
-/**/ 0xBF1B805E, 0x8A000000,
-/**/ 0x3D33ACA6, 0xC6D142BF,
-/**/ 0x3F1B00B6, 0x44CE5071,
-/**/ 0xBF1B005B, 0x22000000,
-/**/ 0x3D3979F8, 0xF8CD3D11,
-/**/ 0x3F1A80AF, 0x948B381A,
-/**/ 0xBF1A8057, 0xCA000000,
-/**/ 0x3D3F1149, 0x07EDFD29,
-/**/ 0x3F1A00A9, 0x044A9BE5,
-/**/ 0xBF1A0054, 0x81000000,
-/**/ 0xBD3B8C68, 0xF7BB7092,
-/**/ 0x3F1980A2, 0x940C6FCF,
-/**/ 0xBF198051, 0x49000000,
-/**/ 0xBD365E1C, 0xF27E09A9,
-/**/ 0x3F19009C, 0x43D0A7D8,
-/**/ 0xBF19004E, 0x21000000,
-/**/ 0xBD3162D2, 0xD508D564,
-/**/ 0x3F188096, 0x139737FE,
-/**/ 0xBF18804B, 0x09000000,
-/**/ 0xBD293315, 0x18D5C93E,
-/**/ 0x3F180090, 0x03601440,
-/**/ 0xBF180048, 0x01000000,
-/**/ 0xBD200288, 0x0C26A328,
-/**/ 0x3F17808A, 0x132B309E,
-/**/ 0xBF178045, 0x09000000,
-/**/ 0xBD0CC7F9, 0x7E89FD6F,
-/**/ 0x3F170084, 0x42F88115,
-/**/ 0xBF170042, 0x21000000,
-/**/ 0x3CE40881, 0x058494DC,
-/**/ 0x3F16807E, 0x92C7F9A5,
-/**/ 0xBF16803F, 0x49000000,
-/**/ 0x3D12AE16, 0xCD5698B9,
-/**/ 0x3F160079, 0x02998E4D,
-/**/ 0xBF16003C, 0x81000000,
-/**/ 0x3D21138B, 0xC5780E17,
-/**/ 0x3F158073, 0x926D330B,
-/**/ 0xBF158039, 0xC9000000,
-/**/ 0x3D287809, 0x4E2001E2,
-/**/ 0x3F15006E, 0x4242DBDF,
-/**/ 0xBF150037, 0x21000000,
-/**/ 0x3D2F8684, 0x21448AA2,
-/**/ 0x3F148069, 0x121A7CC8,
-/**/ 0xBF148034, 0x89000000,
-/**/ 0x3D33207E, 0x2F637D8E,
-/**/ 0x3F140064, 0x01F409C4,
-/**/ 0xBF140032, 0x01000000,
-/**/ 0x3D3654B9, 0x12E44B29,
-/**/ 0x3F13805F, 0x11CF76D3,
-/**/ 0xBF13802F, 0x89000000,
-/**/ 0x3D3960F2, 0xCA5547F3,
-/**/ 0x3F13005A, 0x41ACB7F4,
-/**/ 0xBF13002D, 0x21000000,
-/**/ 0x3D3C462B, 0x6487063D,
-/**/ 0x3F128055, 0x918BC126,
-/**/ 0xBF12802A, 0xC9000000,
-/**/ 0x3D3F0562, 0xEFEA1107,
-/**/ 0x3F120051, 0x016C8668,
-/**/ 0xBF120028, 0x80000000,
-/**/ 0xBD3E6066, 0x857113CE,
-/**/ 0x3F11804C, 0x914EFBBA,
-/**/ 0xBF118026, 0x48000000,
-/**/ 0xBD3BEA30, 0xEDD9EB54,
-/**/ 0x3F110048, 0x41331519,
-/**/ 0xBF110024, 0x20000000,
-/**/ 0xBD3996FC, 0x3BFFFF5A,
-/**/ 0x3F108044, 0x1118C686,
-/**/ 0xBF108022, 0x08000000,
-/**/ 0xBD3765C8, 0x62F2E042,
-/**/ 0x3F100040, 0x01000400,
-/**/ 0xBF100020, 0x00000000,
-/**/ 0xBD355595, 0x562224CD,
-/**/ 0x3F0F0078, 0x21D1830C,
-/**/ 0xBF0F003C, 0x10000000,
-/**/ 0xBD336563, 0x095D69EB,
-/**/ 0x3F0E0070, 0x81A5E62E,
-/**/ 0xBF0E0038, 0x40000000,
-/**/ 0xBD319431, 0x70D45290,
-/**/ 0x3F0D0069, 0x217D1965,
-/**/ 0xBF0D0034, 0x90000000,
-/**/ 0xBD2FC201, 0x022D0EF6,
-/**/ 0x3F0C0062, 0x015704B1,
-/**/ 0xBF0C0031, 0x00000000,
-/**/ 0xBD2C95A0, 0x5E276E21,
-/**/ 0x3F0B005B, 0x2133900E,
-/**/ 0xBF0B002D, 0x90000000,
-/**/ 0xBD29A140, 0xE0372A42,
-/**/ 0x3F0A0054, 0x8112A37D,
-/**/ 0xBF0A002A, 0x40000000,
-/**/ 0xBD26E2E2, 0x73BBB580,
-/**/ 0x3F09004E, 0x20F426FB,
-/**/ 0xBF090027, 0x10000000,
-/**/ 0xBD245885, 0x04D48C20,
-/**/ 0x3F080048, 0x00D80288,
-/**/ 0xBF080024, 0x00000000,
-/**/ 0xBD220028, 0x80613426,
-/**/ 0x3F070042, 0x20BE1E23,
-/**/ 0xBF070021, 0x10000000,
-/**/ 0xBD1FAF99, 0xA80279F3,
-/**/ 0x3F06003C, 0x80A661CA,
-/**/ 0xBF06001E, 0x40000000,
-/**/ 0xBD1BBAE3, 0xDC287DFE,
-/**/ 0x3F050037, 0x2090B57C,
-/**/ 0xBF05001B, 0x90000000,
-/**/ 0xBD181E2F, 0x7B73B67C,
-/**/ 0x3F040032, 0x007D0139,
-/**/ 0xBF040019, 0x00000000,
-/**/ 0xBD14D57C, 0x65A375F8,
-/**/ 0x3F03002D, 0x206B2CFF,
-/**/ 0xBF030016, 0x90000000,
-/**/ 0xBD11DCCA, 0x7BF71EC1,
-/**/ 0x3F020028, 0x805B20CD,
-/**/ 0xBF020014, 0x40000000,
-/**/ 0xBD0E6033, 0x425C4447,
-/**/ 0x3F010024, 0x204CC4A3,
-/**/ 0xBF010012, 0x10000000,
-/**/ 0xBD0996D3, 0x730FFF5C,
-/**/ 0x3F000020, 0x00400080,
-/**/ 0xBF000010, 0x00000000,
-/**/ 0xBD055575, 0x558888DE,
-/**/ 0x3EFE0038, 0x406978C6,
-/**/ 0xBEFE001C, 0x20000000,
-/**/ 0xBD019418, 0xB845146A,
-/**/ 0x3EFC0031, 0x0055C096,
-/**/ 0xBEFC0018, 0x80000000,
-/**/ 0xBCFC957A, 0xD989DB3C,
-/**/ 0x3EFA002A, 0x4044A870,
-/**/ 0xBEFA0015, 0x20000000,
-/**/ 0xBCF6E2C6, 0x8F0EED2F,
-/**/ 0x3EF80024, 0x00360051,
-/**/ 0xBEF80012, 0x00000000,
-/**/ 0xBCF20014, 0x40184CEB,
-/**/ 0x3EF6001E, 0x40299839,
-/**/ 0xBEF6000F, 0x20000000,
-/**/ 0xBCEBBAC7, 0x434A1F5C,
-/**/ 0x3EF40019, 0x001F4027,
-/**/ 0xBEF4000C, 0x80000000,
-/**/ 0xBCE4D568, 0xDD68DD6A,
-/**/ 0x3EF20014, 0x4016C81A,
-/**/ 0xBEF2000A, 0x20000000,
-/**/ 0xBCDE6019, 0xA11710FC,
-/**/ 0x3EF00010, 0x00100010,
-/**/ 0xBEF00008, 0x00000000,
-/**/ 0xBCD55565, 0x5562222D,
-/**/ 0x3EEC0018, 0x80157013,
-/**/ 0xBEEC000C, 0x40000000,
-/**/ 0xBCCC9568, 0x176276C5,
-/**/ 0x3EE80012, 0x000D800A,
-/**/ 0xBEE80009, 0x00000000,
-/**/ 0xBCC2000A, 0x20061337,
-/**/ 0x3EE4000C, 0x8007D005,
-/**/ 0xBEE40006, 0x40000000,
-/**/ 0xBCB4D55F, 0x195A3758,
-/**/ 0x3EE00008, 0x00040002,
-/**/ 0xBEE00004, 0x00000000,
-/**/ 0xBCA5555D, 0x5558888A,
-/**/ 0x3ED80009, 0x00036001,
-/**/ 0xBED80004, 0x80000000,
-/**/ 0xBC920005, 0x100184CD,
-/**/ 0x3ED00004, 0x00010000,
-/**/ 0xBED00002, 0x00000000,
-/**/ 0xBC755559, 0x55562222,
-/**/ 0x3EC00002, 0x00004000,
-/**/ 0xBEC00001, 0x00000000,
-/**/ 0xBC455557, 0x55558889,
-/**/ 0x00000000, 0x00000000,
-/**/ 0x00000000, 0x00000000,
-/**/ 0x00000000, 0x00000000,
-/**/ 0xBEBFFFFC, 0x00008000,
-/**/ 0x3EBFFFFE, 0x00000000,
-/**/ 0x3C455553, 0x55558889,
-/**/ 0xBECFFFF8, 0x00020000,
-/**/ 0x3ECFFFFC, 0x00000000,
-/**/ 0x3C755551, 0x55562222,
-/**/ 0xBED7FFF7, 0x00035FFF,
-/**/ 0x3ED7FFFB, 0x80000000,
-/**/ 0x3C91FFFA, 0xF00184CC,
-/**/ 0xBEDFFFF0, 0x0007FFFC,
-/**/ 0x3EDFFFF8, 0x00000000,
-/**/ 0x3CA5554D, 0x55588887,
-/**/ 0xBEE3FFF3, 0x8007CFFB,
-/**/ 0x3EE3FFF9, 0xC0000000,
-/**/ 0x3CB4D54B, 0x915A3753,
-/**/ 0xBEE7FFEE, 0x000D7FF6,
-/**/ 0x3EE7FFF7, 0x00000000,
-/**/ 0x3CC1FFF5, 0xE006132F,
-/**/ 0xBEEBFFE7, 0x80156FED,
-/**/ 0x3EEBFFF3, 0xC0000000,
-/**/ 0x3CCC9542, 0x936276B2,
-/**/ 0xBEEFFFE0, 0x001FFFE0,
-/**/ 0x3EEFFFF0, 0x00000000,
-/**/ 0x3CD55545, 0x55622217,
-/**/ 0xBEF1FFEB, 0xC016C7E6,
-/**/ 0x3EF1FFF5, 0xE0000000,
-/**/ 0x3CDE5FE6, 0x5F1710D1,
-/**/ 0xBEF3FFE7, 0x001F3FD9,
-/**/ 0x3EF3FFF3, 0x80000000,
-/**/ 0x3CE4D541, 0xCD68DD41,
-/**/ 0xBEF5FFE1, 0xC02997C7,
-/**/ 0x3EF5FFF0, 0xE0000000,
-/**/ 0x3CEBBA8E, 0x124A1F13,
-/**/ 0xBEF7FFDC, 0x0035FFAF,
-/**/ 0x3EF7FFEE, 0x00000000,
-/**/ 0x3CF1FFEB, 0xC0184CAE,
-/**/ 0xBEF9FFD5, 0xC044A790,
-/**/ 0x3EF9FFEA, 0xE0000000,
-/**/ 0x3CF6E28E, 0xC68EECCD,
-/**/ 0xBEFBFFCF, 0x0055BF6A,
-/**/ 0x3EFBFFE7, 0x80000000,
-/**/ 0x3CFC952F, 0xD189DAA2,
-/**/ 0xBEFDFFC7, 0xC069773A,
-/**/ 0x3EFDFFE3, 0xE0000000,
-/**/ 0x3D0193E7, 0x480513F6,
-/**/ 0xBEFFFFC0, 0x007FFF00,
-/**/ 0x3EFFFFE0, 0x00000000,
-/**/ 0x3D055535, 0x55888833,
-/**/ 0xBF00FFDB, 0xE04CC35D,
-/**/ 0x3F00FFED, 0xF0000000,
-/**/ 0x3D099681, 0xE2CFFE66,
-/**/ 0xBF01FFD7, 0x805B1F33,
-/**/ 0x3F01FFEB, 0xC0000000,
-/**/ 0x3D0E5FCC, 0xBE5C42ED,
-/**/ 0xBF02FFD2, 0xE06B2B01,
-/**/ 0x3F02FFE9, 0x70000000,
-/**/ 0x3D11DC8A, 0xD9D71DD1,
-/**/ 0xBF03FFCE, 0x007CFEC8,
-/**/ 0x3F03FFE7, 0x00000000,
-/**/ 0x3D14D52E, 0x45A374B3,
-/**/ 0xBF04FFC8, 0xE090B284,
-/**/ 0x3F04FFE4, 0x70000000,
-/**/ 0x3D181DD0, 0x8553B4C7,
-/**/ 0xBF05FFC3, 0x80A65E36,
-/**/ 0x3F05FFE1, 0xC0000000,
-/**/ 0x3D1BBA71, 0x7A287BBE,
-/**/ 0xBF06FFBD, 0xE0BE19DD,
-/**/ 0x3F06FFDE, 0xF0000000,
-/**/ 0x3D1FAF11, 0x03E27702,
-/**/ 0xBF07FFB8, 0x00D7FD78,
-/**/ 0x3F07FFDC, 0x00000000,
-/**/ 0x3D21FFD7, 0x80613240,
-/**/ 0xBF08FFB1, 0xE0F42105,
-/**/ 0x3F08FFD8, 0xF0000000,
-/**/ 0x3D245825, 0xA6C489B3,
-/**/ 0xBF09FFAB, 0x81129C84,
-/**/ 0x3F09FFD5, 0xC0000000,
-/**/ 0x3D26E272, 0xE2BBB26F,
-/**/ 0xBF0AFFA4, 0xE13387F2,
-/**/ 0x3F0AFFD2, 0x70000000,
-/**/ 0x3D29A0BF, 0x21272669,
-/**/ 0xBF0BFF9E, 0x0156FB50,
-/**/ 0x3F0BFFCF, 0x00000000,
-/**/ 0x3D2C950A, 0x4E276957,
-/**/ 0xBF0CFF96, 0xE17D0E9B,
-/**/ 0x3F0CFFCB, 0x70000000,
-/**/ 0x3D2FC154, 0x551D090E,
-/**/ 0xBF0DFF8F, 0x81A5D9D2,
-/**/ 0x3F0DFFC7, 0xC0000000,
-/**/ 0x3D3193CE, 0x90544EF1,
-/**/ 0xBF0EFF87, 0xE1D174F4,
-/**/ 0x3F0EFFC3, 0xF0000000,
-/**/ 0x3D3364F2, 0x4D556583,
-/**/ 0xBF0FFF80, 0x01FFF800,
-/**/ 0x3F0FFFC0, 0x00000000,
-/**/ 0x3D355515, 0x56221F78,
-/**/ 0xBF107FBB, 0xF118BD7A,
-/**/ 0x3F107FDD, 0xF8000000,
-/**/ 0x3D376537, 0x9EEAD9D8,
-/**/ 0xBF10FFB7, 0xC1330AE7,
-/**/ 0x3F10FFDB, 0xE0000000,
-/**/ 0x3D399659, 0x1B7FF7AE,
-/**/ 0xBF117FB3, 0x714EF047,
-/**/ 0x3F117FD9, 0xB8000000,
-/**/ 0x3D3BE979, 0xBF51E233,
-/**/ 0xBF11FFAF, 0x016C7998,
-/**/ 0x3F11FFD7, 0x80000000,
-/**/ 0x3D3E5F99, 0x7D7108FF,
-/**/ 0xBF127FAA, 0x718BB2DA,
-/**/ 0x3F127FD5, 0x39000000,
-/**/ 0xBD3F0647, 0xB7721DC6,
-/**/ 0xBF12FFA5, 0xC1ACA80C,
-/**/ 0x3F12FFD2, 0xE1000000,
-/**/ 0xBD3C4729, 0xED071532,
-/**/ 0xBF137FA0, 0xF1CF652D,
-/**/ 0x3F137FD0, 0x79000000,
-/**/ 0xBD39620D, 0x315D596D,
-/**/ 0xBF13FF9C, 0x01F3F63C,
-/**/ 0x3F13FFCE, 0x01000000,
-/**/ 0xBD3655F1, 0x92E45F81,
-/**/ 0xBF147F96, 0xF21A6739,
-/**/ 0x3F147FCB, 0x79000000,
-/**/ 0xBD3321D7, 0x206B9526,
-/**/ 0xBF14FF91, 0xC242C421,
-/**/ 0x3F14FFC8, 0xE1000000,
-/**/ 0xBD2F897B, 0xD244C12A,
-/**/ 0xBF157F8C, 0x726D18F6,
-/**/ 0x3F157FC6, 0x39000000,
-/**/ 0xBD287B4B, 0xF93040AE,
-/**/ 0xBF15FF87, 0x029971B4,
-/**/ 0x3F15FFC3, 0x81000000,
-/**/ 0xBD21171E, 0xD578562C,
-/**/ 0xBF167F81, 0x72C7DA5C,
-/**/ 0x3F167FC0, 0xB9000000,
-/**/ 0xBD12B5E9, 0x0F773DB4,
-/**/ 0xBF16FF7B, 0xC2F85EEC,
-/**/ 0x3F16FFBD, 0xE1000000,
-/**/ 0xBCE44CD3, 0x158A76C2,
-/**/ 0xBF177F75, 0xF32B0B63,
-/**/ 0x3F177FBA, 0xF9000000,
-/**/ 0x3D0CB55C, 0x2E48511B,
-/**/ 0xBF17FF70, 0x035FEBC0,
-/**/ 0x3F17FFB8, 0x01000000,
-/**/ 0x3D1FFAF0, 0x184C534F,
-/**/ 0xBF187F69, 0xF3970C03,
-/**/ 0x3F187FB4, 0xF9000000,
-/**/ 0x3D292D95, 0xACC53FBE,
-/**/ 0xBF18FF63, 0xC3D07829,
-/**/ 0x3F18FFB1, 0xE1000000,
-/**/ 0x3D315FD7, 0xE48887C8,
-/**/ 0xBF197F5D, 0x740C3C32,
-/**/ 0x3F197FAE, 0xB9000000,
-/**/ 0x3D365AE3, 0x1DF5B242,
-/**/ 0xBF19FF57, 0x044A641C,
-/**/ 0x3F19FFAB, 0x81000000,
-/**/ 0x3D3B88EC, 0x6FBB0E5F,
-/**/ 0xBF1A7F50, 0x748AFBE7,
-/**/ 0x3F1A7FA8, 0x3A000000,
-/**/ 0xBD3F150C, 0x39766B40,
-/**/ 0xBF1AFF49, 0xC4CE0F91,
-/**/ 0x3F1AFFA4, 0xE2000000,
-/**/ 0xBD397E06, 0xF14DB839,
-/**/ 0xBF1B7F42, 0xF513AB19,
-/**/ 0x3F1B7FA1, 0x7A000000,
-/**/ 0xBD33B103, 0xCBD9CC3D,
-/**/ 0xBF1BFF3C, 0x055BDA7D,
-/**/ 0x3F1BFF9E, 0x02000000,
-/**/ 0xBD2B5A05, 0xBB1321B5,
-/**/ 0xBF1C7F34, 0xF5A6A9BD,
-/**/ 0x3F1C7F9A, 0x7A000000,
-/**/ 0xBD1DC410, 0xECAF9551,
-/**/ 0xBF1CFF2D, 0xC5F424D6,
-/**/ 0x3F1CFF96, 0xE2000000,
-/**/ 0xBCEF80FF, 0x3DF3CD68,
-/**/ 0xBF1D7F26, 0x764457C8,
-/**/ 0x3F1D7F93, 0x3A000000,
-/**/ 0x3D16CBC7, 0x4271E737,
-/**/ 0xBF1DFF1F, 0x06974E91,
-/**/ 0x3F1DFF8F, 0x82000000,
-/**/ 0x3D2939D2, 0x1D134848,
-/**/ 0xBF1E7F17, 0x76ED1530,
-/**/ 0x3F1E7F8B, 0xBA000000,
-/**/ 0x3D33C2DD, 0xA9892C73,
-/**/ 0xBF1EFF0F, 0xC745B7A4,
-/**/ 0x3F1EFF87, 0xE2000000,
-/**/ 0x3D3B25CF, 0x8AEC69D5,
-/**/ 0xBF1F7F07, 0xF7A141EA,
-/**/ 0x3F1F7F83, 0xFB000000,
-/**/ 0xBD3D3941, 0x645B412A,
-/**/ 0xBF1FFF00, 0x07FFC002,
-/**/ 0x3F1FFF80, 0x03000000,
-/**/ 0xBD355955, 0x3BBC6662,
-/**/ 0xBF203F7B, 0xFC309EF5,
-/**/ 0x3F203FBD, 0xFD800000,
-/**/ 0xBD2A72D8, 0x260B17B3,
-/**/ 0xBF207F77, 0xE462E3D0,
-/**/ 0x3F207FBB, 0xF1800000,
-/**/ 0xBD136218, 0x0994AE68,
-/**/ 0xBF20BF73, 0xBC96B492,
-/**/ 0x3F20BFB9, 0xDD800000,
-/**/ 0x3D0E52E6, 0xECB2641F,
-/**/ 0xBF20FF6F, 0x84CC1739,
-/**/ 0x3F20FFB7, 0xC1800000,
-/**/ 0x3D296078, 0xE7FCF60B,
-/**/ 0xBF213F6B, 0x3D0311C6,
-/**/ 0x3F213FB5, 0x9D800000,
-/**/ 0x3D35DA18, 0xA7850AFF,
-/**/ 0xBF217F66, 0xE53BAA36,
-/**/ 0x3F217FB3, 0x71800000,
-/**/ 0x3D3F48F1, 0x5E7BB444,
-/**/ 0xBF21BF62, 0x7D75E68A,
-/**/ 0x3F21BFB1, 0x3E000000,
-/**/ 0xBD370239, 0x812BC469,
-/**/ 0xBF21FF5E, 0x05B1CCC0,
-/**/ 0x3F21FFAF, 0x02000000,
-/**/ 0xBD2A0CD0, 0x23BF1A4D,
-/**/ 0xBF223F59, 0x7DEF62D8,
-/**/ 0x3F223FAC, 0xBE000000,
-/**/ 0xBD0614D3, 0x736E3623,
-/**/ 0xBF227F54, 0xE62EAED0,
-/**/ 0x3F227FAA, 0x72000000,
-/**/ 0x3D1F28BD, 0x37EDEDB0,
-/**/ 0xBF22BF50, 0x3E6FB6A9,
-/**/ 0x3F22BFA8, 0x1E000000,
-/**/ 0x3D32A0F5, 0x07CE33C8,
-/**/ 0xBF22FF4B, 0x86B28060,
-/**/ 0x3F22FFA5, 0xC2000000,
-/**/ 0x3D3DC2B6, 0xA31C6A8D,
-/**/ 0xBF233F46, 0xBEF711F6,
-/**/ 0x3F233FA3, 0x5E800000,
-/**/ 0xBD36CF8B, 0xFC67C9FB,
-/**/ 0xBF237F41, 0xE73D7169,
-/**/ 0x3F237FA0, 0xF2800000,
-/**/ 0xBD2629A5, 0xE6D88A89,
-/**/ 0xBF23BF3C, 0xFF85A4B8,
-/**/ 0x3F23BF9E, 0x7E800000,
-/**/ 0x3CEE7C34, 0x202574EC,
-/**/ 0xBF23FF38, 0x07CFB1E3,
-/**/ 0x3F23FF9C, 0x02800000,
-/**/ 0x3D2A9723, 0x46E594C1,
-/**/ 0xBF243F33, 0x001B9EE8,
-/**/ 0x3F243F99, 0x7E800000,
-/**/ 0x3D39F33C, 0xF61AE74C,
-/**/ 0xBF247F2D, 0xE86971C7,
-/**/ 0x3F247F96, 0xF3000000,
-/**/ 0xBD39141C, 0x85341E31,
-/**/ 0xBF24BF28, 0xC0B9307F,
-/**/ 0x3F24BF94, 0x5F000000,
-/**/ 0xBD2792F5, 0xDA0FAF09,
-/**/ 0xBF24FF23, 0x890AE10E,
-/**/ 0x3F24FF91, 0xC3000000,
-/**/ 0x3CFD4219, 0xFB239430,
-/**/ 0xBF253F1E, 0x415E8974,
-/**/ 0x3F253F8F, 0x1F000000,
-/**/ 0x3D2F8B72, 0x0359434A,
-/**/ 0xBF257F18, 0xE9B42FAF,
-/**/ 0x3F257F8C, 0x73000000,
-/**/ 0x3D3E0C4B, 0x1939FEDF,
-/**/ 0xBF25BF13, 0x820BD9BF,
-/**/ 0x3F25BF89, 0xBF800000,
-/**/ 0xBD335728, 0x39B301E2,
-/**/ 0xBF25FF0E, 0x0A658DA3,
-/**/ 0x3F25FF87, 0x03800000,
-/**/ 0xBD118E84, 0x5E1E8D4F,
-/**/ 0xBF263F08, 0x82C15159,
-/**/ 0x3F263F84, 0x3F800000,
-/**/ 0x3D25CFC0, 0xBDDDD045,
-/**/ 0xBF267F02, 0xEB1F2AE1,
-/**/ 0x3F267F81, 0x73800000,
-/**/ 0x3D3A8C5C, 0x08837E99,
-/**/ 0xBF26BEFD, 0x437F203A,
-/**/ 0x3F26BF7E, 0xA0000000,
-/**/ 0xBD35752E, 0x3C56F12D,
-/**/ 0xBF26FEF7, 0x8BE13762,
-/**/ 0x3F26FF7B, 0xC4000000,
-/**/ 0xBD146EFA, 0x46359E28,
-/**/ 0xBF273EF1, 0xC4457659,
-/**/ 0x3F273F78, 0xE0000000,
-/**/ 0x3D273355, 0xCD265865,
-/**/ 0xBF277EEB, 0xECABE31C,
-/**/ 0x3F277F75, 0xF4000000,
-/**/ 0x3D3CAC0E, 0x095DEBF8,
-/**/ 0xBF27BEE6, 0x051483AC,
-/**/ 0x3F27BF73, 0x00800000,
-/**/ 0xBD31E395, 0x4C39F4DB,
-/**/ 0xBF27FEE0, 0x0D7F5E08,
-/**/ 0x3F27FF70, 0x04800000,
-/**/ 0xBCB43F3D, 0xA1314B81,
-/**/ 0xBF283EDA, 0x05EC782D,
-/**/ 0x3F283F6D, 0x00800000,
-/**/ 0x3D321B10, 0x115B8D70,
-/**/ 0xBF287ED3, 0xEE5BD81B,
-/**/ 0x3F287F69, 0xF5000000,
-/**/ 0xBD3B54A7, 0x83704FE1,
-/**/ 0xBF28BECD, 0xC6CD83D1,
-/**/ 0x3F28BF66, 0xE1000000,
-/**/ 0xBD20C4CC, 0x41229C91,
-/**/ 0xBF28FEC7, 0x8F41814D,
-/**/ 0x3F28FF63, 0xC5000000,
-/**/ 0x3D25E5A8, 0x2A183F17,
-/**/ 0xBF293EC1, 0x47B7D68F,
-/**/ 0x3F293F60, 0xA1000000,
-/**/ 0x3D3EAC06, 0xF81B997D,
-/**/ 0xBF297EBA, 0xF0308995,
-/**/ 0x3F297F5D, 0x75800000,
-/**/ 0xBD2A6B9B, 0x3A1E5BAD,
-/**/ 0xBF29BEB4, 0x88ABA05E,
-/**/ 0x3F29BF5A, 0x41800000,
-/**/ 0x3D1D3958, 0xBDFE3C77,
-/**/ 0xBF29FEAE, 0x112920E9,
-/**/ 0x3F29FF57, 0x05800000,
-/**/ 0x3D3C3972, 0x375BA904,
-/**/ 0xBF2A3EA7, 0x89A91135,
-/**/ 0x3F2A3F53, 0xC2000000,
-/**/ 0xBD2CE6F3, 0x588DE85B,
-/**/ 0xBF2A7EA0, 0xF22B7740,
-/**/ 0x3F2A7F50, 0x76000000,
-/**/ 0x3D1D2249, 0x75AEDBFD,
-/**/ 0xBF2ABE9A, 0x4AB05909,
-/**/ 0x3F2ABF4D, 0x22000000,
-/**/ 0x3D3D6E96, 0x2CE7BDAC,
-/**/ 0xBF2AFE93, 0x9337BC90,
-/**/ 0x3F2AFF49, 0xC6800000,
-/**/ 0xBD2800DC, 0xCB7D724C,
-/**/ 0xBF2B3E8C, 0xCBC1A7D1,
-/**/ 0x3F2B3F46, 0x62800000,
-/**/ 0x3D25F908, 0xFA591B29,
-/**/ 0xBF2B7E85, 0xF44E20CE,
-/**/ 0x3F2B7F42, 0xF7000000,
-/**/ 0xBD3D9991, 0x53021ED8,
-/**/ 0xBF2BBE7F, 0x0CDD2D83,
-/**/ 0x3F2BBF3F, 0x83000000,
-/**/ 0xBD1706BF, 0xFD596AD6,
-/**/ 0xBF2BFE78, 0x156ED3F0,
-/**/ 0x3F2BFF3C, 0x07000000,
-/**/ 0x3D328528, 0x4EC45253,
-/**/ 0xBF2C3E71, 0x0E031A14,
-/**/ 0x3F2C3F38, 0x83800000,
-/**/ 0xBD34C408, 0x927D8A9E,
-/**/ 0xBF2C7E69, 0xF69A05ED,
-/**/ 0x3F2C7F34, 0xF7800000,
-/**/ 0x3D118EF4, 0xCAE2C25F,
-/**/ 0xBF2CBE62, 0xCF339D7A,
-/**/ 0x3F2CBF31, 0x63800000,
-/**/ 0x3D3DFD79, 0x73DBBB41,
-/**/ 0xBF2CFE5B, 0x97CFE6B9,
-/**/ 0x3F2CFF2D, 0xC8000000,
-/**/ 0xBD1FD74F, 0xE7FE77E6,
-/**/ 0xBF2D3E54, 0x506EE7AA,
-/**/ 0x3F2D3F2A, 0x24000000,
-/**/ 0x3D328AD4, 0xBDDB871F,
-/**/ 0xBF2D7E4C, 0xF910A64A,
-/**/ 0x3F2D7F26, 0x78800000,
-/**/ 0xBD327F8C, 0x903DDD81,
-/**/ 0xBF2DBE45, 0x91B52899,
-/**/ 0x3F2DBF22, 0xC4800000,
-/**/ 0x3D21D80F, 0xDF52840A,
-/**/ 0xBF2DFE3E, 0x1A5C7495,
-/**/ 0x3F2DFF1F, 0x09000000,
-/**/ 0xBD3B316D, 0xEED9F651,
-/**/ 0xBF2E3E36, 0x9306903D,
-/**/ 0x3F2E3F1B, 0x45000000,
-/**/ 0x3CF2911A, 0x76DB3C6B,
-/**/ 0xBF2E7E2E, 0xFBB3818F,
-/**/ 0x3F2E7F17, 0x79000000,
-/**/ 0x3D3DFC86, 0x85559113,
-/**/ 0xBF2EBE27, 0x54634E89,
-/**/ 0x3F2EBF13, 0xA5800000,
-/**/ 0xBD12D83E, 0x0AB3DBE7,
-/**/ 0xBF2EFE1F, 0x9D15FD2B,
-/**/ 0x3F2EFF0F, 0xC9800000,
-/**/ 0x3D39124F, 0x617B99F1,
-/**/ 0xBF2F3E17, 0xD5CB9373,
-/**/ 0x3F2F3F0B, 0xE6000000,
-/**/ 0xBD2152B9, 0xF8F64DA1,
-/**/ 0xBF2F7E0F, 0xFE841760,
-/**/ 0x3F2F7F07, 0xFA000000,
-/**/ 0x3D3617EB, 0x34C4735B,
-/**/ 0xBF2FBE08, 0x173F8EEF,
-/**/ 0x3F2FBF04, 0x06800000,
-/**/ 0xBD2551B0, 0x739FA712,
-/**/ 0xBF2FFE00, 0x1FFE0020,
-/**/ 0x3F2FFF00, 0x0A800000,
-/**/ 0x3D351558, 0x885DE027,
-/**/ 0xBF301EFC, 0x0C5FB879,
-/**/ 0x3F301F7E, 0x03800000,
-/**/ 0xBD255905, 0x68F8FC50,
-/**/ 0xBF303EF8, 0x00C1F3B0,
-/**/ 0x3F303F7B, 0xFD800000,
-/**/ 0x3D361295, 0xDF771CF4,
-/**/ 0xBF305EF3, 0xED25B4B7,
-/**/ 0x3F305F79, 0xF3C00000,
-/**/ 0xBD2158BB, 0xD8A255DB,
-/**/ 0xBF307EEF, 0xD18AFE8B,
-/**/ 0x3F307F77, 0xE5C00000,
-/**/ 0x3D3917A1, 0xB740E625,
-/**/ 0xBF309EEB, 0xADF1D42C,
-/**/ 0x3F309F75, 0xD4000000,
-/**/ 0xBD1281AD, 0x9C716D59,
-/**/ 0xBF30BEE7, 0x825A3899,
-/**/ 0x3F30BF73, 0xBE000000,
-/**/ 0x3D3E2C7A, 0x86ED7DDC,
-/**/ 0xBF30DEE3, 0x4EC42ED1,
-/**/ 0x3F30DF71, 0xA4400000,
-/**/ 0x3CF7F534, 0xF54F7E28,
-/**/ 0xBF30FEDF, 0x132FB9D5,
-/**/ 0x3F30FF6F, 0x86800000,
-/**/ 0xBD3AA6E1, 0x404F4E01,
-/**/ 0xBF311EDA, 0xCF9CDCA2,
-/**/ 0x3F311F6D, 0x64800000,
-/**/ 0x3D2375B9, 0x4A6EC981,
-/**/ 0xBF313ED6, 0x840B9A38,
-/**/ 0x3F313F6B, 0x3EC00000,
-/**/ 0xBD315A73, 0x33401DD0,
-/**/ 0xBF315ED2, 0x307BF596,
-/**/ 0x3F315F69, 0x14C00000,
-/**/ 0x3D341A2F, 0x02C11605,
-/**/ 0xBF317ECD, 0xD4EDF1BC,
-/**/ 0x3F317F66, 0xE7000000,
-/**/ 0xBD1798F3, 0xB2B7E8C5,
-/**/ 0xBF319EC9, 0x716191A8,
-/**/ 0x3F319F64, 0xB5400000,
-/**/ 0xBD3F5AB7, 0x35D62ED5,
-/**/ 0xBF31BEC5, 0x05D6D85A,
-/**/ 0x3F31BF62, 0x7F400000,
-/**/ 0x3D1EF6FF, 0xCA7EC7CD,
-/**/ 0xBF31DEC0, 0x924DC8D2,
-/**/ 0x3F31DF60, 0x45800000,
-/**/ 0xBD309BD7, 0xA8550396,
-/**/ 0xBF31FEBC, 0x16C6660D,
-/**/ 0x3F31FF5E, 0x07800000,
-/**/ 0x3D379981, 0xC3E31F70,
-/**/ 0xBF321EB7, 0x9340B30B,
-/**/ 0x3F321F5B, 0xC5C00000,
-/**/ 0x3CD7B300, 0x5FE92B94,
-/**/ 0xBF323EB3, 0x07BCB2CC,
-/**/ 0x3F323F59, 0x80000000,
-/**/ 0xBD364AF9, 0x25A7CF34,
-/**/ 0xBF325EAE, 0x743A684F,
-/**/ 0x3F325F57, 0x36000000,
-/**/ 0x3D339D32, 0x17E48399,
-/**/ 0xBF327EA9, 0xD8B9D692,
-/**/ 0x3F327F54, 0xE8400000,
-/**/ 0xBCFE7B27, 0xCC387BD1,
-/**/ 0xBF329EA5, 0x353B0095,
-/**/ 0x3F329F52, 0x96800000,
-/**/ 0xBD36D8A7, 0x1AE7FA80,
-/**/ 0xBF32BEA0, 0x89BDE957,
-/**/ 0x3F32BF50, 0x40800000,
-/**/ 0x3D34CB54, 0x05CF3DC3,
-/**/ 0xBF32DE9B, 0xD64293D7,
-/**/ 0x3F32DF4D, 0xE6C00000,
-/**/ 0x3CF053EA, 0xD5A4F691,
-/**/ 0xBF32FE97, 0x1AC90315,
-/**/ 0x3F32FF4B, 0x89000000,
-/**/ 0xBD3229E7, 0x5CAE7B16,
-/**/ 0xBF331E92, 0x57513A0F,
-/**/ 0x3F331F49, 0x27000000,
-/**/ 0x3D3B3EE1, 0xAEED4509,
-/**/ 0xBF333E8D, 0x8BDB3BC4,
-/**/ 0x3F333F46, 0xC1400000,
-/**/ 0x3D228133, 0x2E0C2605,
-/**/ 0xBF335E88, 0xB8670B34,
-/**/ 0x3F335F44, 0x57800000,
-/**/ 0xBD20477F, 0xBBD6E280,
-/**/ 0xBF337E83, 0xDCF4AB5D,
-/**/ 0x3F337F41, 0xE9C00000,
-/**/ 0xBD38ED2A, 0xE9CE8AFC,
-/**/ 0xBF339E7E, 0xF9841F3F,
-/**/ 0x3F339F3F, 0x77C00000,
-/**/ 0x3D36E558, 0x39159F9B,
-/**/ 0xBF33BE7A, 0x0E1569D9,
-/**/ 0x3F33BF3D, 0x02000000,
-/**/ 0x3D1D5325, 0x40681634,
-/**/ 0xBF33DE75, 0x1AA88E2A,
-/**/ 0x3F33DF3A, 0x88400000,
-/**/ 0xBD1E775F, 0x7F2112CE,
-/**/ 0xBF33FE70, 0x1F3D8F31,
-/**/ 0x3F33FF38, 0x0A800000,
-/**/ 0xBD35F18B, 0x91F80D1B,
-/**/ 0xBF341E6B, 0x1BD46FED,
-/**/ 0x3F341F35, 0x88800000,
-/**/ 0x3D3C5AAD, 0xFDC3FC2F,
-/**/ 0xBF343E66, 0x106D335D,
-/**/ 0x3F343F33, 0x02C00000,
-/**/ 0x3D2E8FA9, 0x268A89F1,
-/**/ 0xBF345E60, 0xFD07DC80,
-/**/ 0x3F345F30, 0x79000000,
-/**/ 0x3D06B73F, 0x902AC9EE,
-/**/ 0xBF347E5B, 0xE1A46E55,
-/**/ 0x3F347F2D, 0xEB400000,
-/**/ 0xBD21EE30, 0x45C43959,
-/**/ 0xBF349E56, 0xBE42EBDC,
-/**/ 0x3F349F2B, 0x59800000,
-/**/ 0xBD34212B, 0xE8B753E8,
-/**/ 0xBF34BE51, 0x92E35813,
-/**/ 0x3F34BF28, 0xC3C00000,
-/**/ 0xBD3EA653, 0x9D2064DB,
-/**/ 0xBF34DE4C, 0x5F85B5F9,
-/**/ 0x3F34DF26, 0x29C00000,
-/**/ 0x3D377A70, 0x81DCB6FB,
-/**/ 0xBF34FE47, 0x242A088D,
-/**/ 0x3F34FF23, 0x8C000000,
-/**/ 0x3D2C8440, 0x6BB44A6D,
-/**/ 0xBF351E41, 0xE0D052CF,
-/**/ 0x3F351F20, 0xEA400000,
-/**/ 0x3D16C6ED, 0x0048AAF8,
-/**/ 0xBF353E3C, 0x957897BD,
-/**/ 0x3F353F1E, 0x44800000,
-/**/ 0xBD01ADF4, 0xF506A07E,
-/**/ 0xBF355E37, 0x4222DA57,
-/**/ 0x3F355F1B, 0x9AC00000,
-/**/ 0xBD22E69B, 0x4B88A655,
-/**/ 0xBF357E31, 0xE6CF1D9B,
-/**/ 0x3F357F18, 0xED000000,
-/**/ 0xBD3005F2, 0x153DAEB0,
-/**/ 0xBF359E2C, 0x837D6488,
-/**/ 0x3F359F16, 0x3B400000,
-/**/ 0xBD35ECAC, 0x2D5222B4,
-/**/ 0xBF35BE27, 0x182DB21E,
-/**/ 0x3F35BF13, 0x85800000,
-/**/ 0xBD3B267C, 0x2EA6CB14,
-/**/ 0xBF35DE21, 0xA4E0095B,
-/**/ 0x3F35DF10, 0xCBC00000,
-/**/ 0xBD3FB262, 0x5A40A340,
-/**/ 0xBF35FE1C, 0x29946D3F,
-/**/ 0x3F35FF0E, 0x0DC00000,
-/**/ 0x3D3C70A1, 0x0E7B79ED,
-/**/ 0xBF361E16, 0xA64AE0C7,
-/**/ 0x3F361F0B, 0x4C000000,
-/**/ 0x3D39438D, 0xC9C8D263,
-/**/ 0xBF363E11, 0x1B0366F4,
-/**/ 0x3F363F08, 0x86400000,
-/**/ 0x3D36C763, 0x9582CD0C,
-/**/ 0xBF365E0B, 0x87BE02C5,
-/**/ 0x3F365F05, 0xBC800000,
-/**/ 0x3D34FD22, 0x2F24F1F9,
-/**/ 0xBF367E05, 0xEC7AB737,
-/**/ 0x3F367F02, 0xEEC00000,
-/**/ 0x3D33E5C9, 0x53CAEA94,
-/**/ 0xBF369E00, 0x4939874A,
-/**/ 0x3F369F00, 0x1D000000,
-/**/ 0x3D338258, 0xC03081D0,
-/**/ 0xBF36BDFA, 0x9DFA75FE,
-/**/ 0x3F36BEFD, 0x47400000,
-/**/ 0x3D33D3D0, 0x30B1A458,
-/**/ 0xBF36DDF4, 0xEABD8651,
-/**/ 0x3F36DEFA, 0x6D800000,
-/**/ 0x3D34DB2F, 0x614A60C1,
-/**/ 0xBF36FDEF, 0x2F82BB41,
-/**/ 0x3F36FEF7, 0x8FC00000,
-/**/ 0x3D369976, 0x0D96E7B8,
-/**/ 0xBF371DE9, 0x6C4A17CF,
-/**/ 0x3F371EF4, 0xAE000000,
-/**/ 0x3D390FA3, 0xF0D38C30,
-/**/ 0xBF373DE3, 0xA1139EF8,
-/**/ 0x3F373EF1, 0xC8400000,
-/**/ 0x3D3C3EB8, 0xC5DCC397,
-/**/ 0xBF375DDD, 0xCDDF53BC,
-/**/ 0x3F375EEE, 0xDEC00000,
-/**/ 0xBD3FD84B, 0xB8D0D9FD,
-/**/ 0xBF377DD7, 0xF2AD3919,
-/**/ 0x3F377EEB, 0xF1000000,
-/**/ 0xBD3B3469, 0xD11891A0,
-/**/ 0xBF379DD2, 0x0F7D520F,
-/**/ 0x3F379EE8, 0xFF400000,
-/**/ 0xBD35D4A1, 0xC93D855B,
-/**/ 0xBF37BDCC, 0x244FA19D,
-/**/ 0x3F37BEE6, 0x09800000,
-/**/ 0xBD2F6FE7, 0xCFC56806,
-/**/ 0xBF37DDC6, 0x31242AC1,
-/**/ 0x3F37DEE3, 0x0FC00000,
-/**/ 0xBD21BAC0, 0xE815F202,
-/**/ 0xBF37FDC0, 0x35FAF079,
-/**/ 0x3F37FEE0, 0x12000000,
-/**/ 0xBCF43E7B, 0x5190C28B,
-/**/ 0xBF381DBA, 0x32D3F5C6,
-/**/ 0x3F381EDD, 0x10400000,
-/**/ 0x3D1C55D8, 0x34C1F9E9,
-/**/ 0xBF383DB4, 0x27AF3DA6,
-/**/ 0x3F383EDA, 0x0A800000,
-/**/ 0x3D302FB8, 0x8AAF36D4,
-/**/ 0xBF385DAE, 0x148CCB18,
-/**/ 0x3F385ED7, 0x00C00000,
-/**/ 0x3D3A0BDF, 0x7AE0D0F8,
-/**/ 0xBF387DA7, 0xF96CA11B,
-/**/ 0x3F387ED3, 0xF3400000,
-/**/ 0xBD3B5515, 0x6B1CDAAF,
-/**/ 0xBF389DA1, 0xD64EC2AD,
-/**/ 0x3F389ED0, 0xE1800000,
-/**/ 0xBD2FE44C, 0xE1179E5E,
-/**/ 0xBF38BD9B, 0xAB3332CD,
-/**/ 0x3F38BECD, 0xCBC00000,
-/**/ 0xBD0E529E, 0xF86F56EC,
-/**/ 0xBF38DD95, 0x7819F47A,
-/**/ 0x3F38DECA, 0xB2000000,
-/**/ 0x3D2246C3, 0xFEB631AB,
-/**/ 0xBF38FD8F, 0x3D030AB4,
-/**/ 0x3F38FEC7, 0x94400000,
-/**/ 0x3D36D7FA, 0xE04DA791,
-/**/ 0xBF391D88, 0xF9EE7878,
-/**/ 0x3F391EC4, 0x72C00000,
-/**/ 0xBD3AAB89, 0x86F7ADBB,
-/**/ 0xBF393D82, 0xAEDC40C7,
-/**/ 0x3F393EC1, 0x4D000000,
-/**/ 0xBD26CC57, 0x032C6155,
-/**/ 0xBF395D7C, 0x5BCC669D,
-/**/ 0x3F395EBE, 0x23400000,
-/**/ 0x3D12A452, 0x93C3EB3D,
-/**/ 0xBF397D76, 0x00BEECFB,
-/**/ 0x3F397EBA, 0xF5800000,
-/**/ 0x3D358336, 0xA0BCD695,
-/**/ 0xBF399D6F, 0x9DB3D6E0,
-/**/ 0x3F399EB7, 0xC4000000,
-/**/ 0xBD38D6C5, 0xDA737570,
-/**/ 0xBF39BD69, 0x32AB2749,
-/**/ 0x3F39BEB4, 0x8E400000,
-/**/ 0xBD198F84, 0x65026C7D,
-/**/ 0xBF39DD62, 0xBFA4E136,
-/**/ 0x3F39DEB1, 0x54800000,
-/**/ 0x3D29B9C9, 0x2EA9B41A,
-/**/ 0xBF39FD5C, 0x44A107A5,
-/**/ 0x3F39FEAE, 0x17000000,
-/**/ 0xBD3F1375, 0x16137ACF,
-/**/ 0xBF3A1D55, 0xC19F9D96,
-/**/ 0x3F3A1EAA, 0xD5400000,
-/**/ 0xBD2467DC, 0xDE73AFA0,
-/**/ 0xBF3A3D4F, 0x36A0A607,
-/**/ 0x3F3A3EA7, 0x8F800000,
-/**/ 0x3D26F8F0, 0x7B8357C6,
-/**/ 0xBF3A5D48, 0xA3A423F7,
-/**/ 0x3F3A5EA4, 0x46000000,
-/**/ 0xBD3E0141, 0x5DA0DFB7,
-/**/ 0xBF3A7D42, 0x08AA1A64,
-/**/ 0x3F3A7EA0, 0xF8400000,
-/**/ 0xBD1AB06E, 0x41050D29,
-/**/ 0xBF3A9D3B, 0x65B28C4E,
-/**/ 0x3F3A9E9D, 0xA6800000,
-/**/ 0x3D317CE9, 0x56A0E005,
-/**/ 0xBF3ABD34, 0xBABD7CB3,
-/**/ 0x3F3ABE9A, 0x51000000,
-/**/ 0xBD358532, 0xF899EF39,
-/**/ 0xBF3ADD2E, 0x07CAEE92,
-/**/ 0x3F3ADE96, 0xF7400000,
-/**/ 0x3D113A3C, 0xC83BF5C2,
-/**/ 0xBF3AFD27, 0x4CDAE4EA,
-/**/ 0x3F3AFE93, 0x99800000,
-/**/ 0x3D3EF92F, 0x863C7C8E,
-/**/ 0xBF3B1D20, 0x89ED62B9,
-/**/ 0x3F3B1E90, 0x38000000,
-/**/ 0xBD161149, 0x3341CC3C,
-/**/ 0xBF3B3D19, 0xBF026AFE,
-/**/ 0x3F3B3E8C, 0xD2400000,
-/**/ 0x3D36D709, 0x67C955DF,
-/**/ 0xBF3B5D12, 0xEC1A00B8,
-/**/ 0x3F3B5E89, 0x68C00000,
-/**/ 0xBD27E77B, 0x5AE9B17A,
-/**/ 0xBF3B7D0C, 0x113426E6,
-/**/ 0x3F3B7E85, 0xFB000000,
-/**/ 0x3D321C58, 0x219679DE,
-/**/ 0xBF3B9D05, 0x2E50E086,
-/**/ 0x3F3B9E82, 0x89800000,
-/**/ 0xBD2DEF6A, 0xFAA62113,
-/**/ 0xBF3BBCFE, 0x43703097,
-/**/ 0x3F3BBE7F, 0x13C00000,
-/**/ 0x3D30D119, 0x23305306,
-/**/ 0xBF3BDCF7, 0x50921A17,
-/**/ 0x3F3BDE7B, 0x9A400000,
-/**/ 0xBD2D1078, 0x9FBACE27,
-/**/ 0xBF3BFCF0, 0x55B6A006,
-/**/ 0x3F3BFE78, 0x1C800000,
-/**/ 0x3D32FD49, 0xD625DF1E,
-/**/ 0xBF3C1CE9, 0x52DDC563,
-/**/ 0x3F3C1E74, 0x9B000000,
-/**/ 0xBD253AA9, 0x7D07255B,
-/**/ 0xBF3C3CE2, 0x48078D2B,
-/**/ 0x3F3C3E71, 0x15400000,
-/**/ 0x3D38A8E7, 0x9E08B538,
-/**/ 0xBF3C5CDB, 0x3533FA5D,
-/**/ 0x3F3C5E6D, 0x8BC00000,
-/**/ 0xBD09780B, 0x45956AFC,
-/**/ 0xBF3C7CD4, 0x1A630FF9,
-/**/ 0x3F3C7E69, 0xFE400000,
-/**/ 0xBD3E2410, 0x2792F44E,
-/**/ 0xBF3C9CCC, 0xF794D0FC,
-/**/ 0x3F3C9E66, 0x6C800000,
-/**/ 0x3D1F2AEC, 0x30AB4456,
-/**/ 0xBF3CBCC5, 0xCCC94066,
-/**/ 0x3F3CBE62, 0xD7000000,
-/**/ 0xBD3161A0, 0x231641D5,
-/**/ 0xBF3CDCBE, 0x9A006135,
-/**/ 0x3F3CDE5F, 0x3D400000,
-/**/ 0x3D3657DD, 0xF4AD1934,
-/**/ 0xBF3CFCB7, 0x5F3A3668,
-/**/ 0x3F3CFE5B, 0x9FC00000,
-/**/ 0xBCF07CB0, 0x2E7AC798,
-/**/ 0xBF3D1CB0, 0x1C76C2FD,
-/**/ 0x3F3D1E57, 0xFE400000,
-/**/ 0xBD377F9B, 0x6090F643,
-/**/ 0xBF3D3CA8, 0xD1B609F3,
-/**/ 0x3F3D3E54, 0x58800000,
-/**/ 0x3D32F16C, 0x849503E6,
-/**/ 0xBF3D5CA1, 0x7EF80E49,
-/**/ 0x3F3D5E50, 0xAF000000,
-/**/ 0xBCFB3B3A, 0xAF1CA4EA,
-/**/ 0xBF3D7C9A, 0x243CD2FE,
-/**/ 0x3F3D7E4D, 0x01800000,
-/**/ 0xBD356DFC, 0x4701415B,
-/**/ 0xBF3D9C92, 0xC1845B0F,
-/**/ 0x3F3D9E49, 0x4FC00000,
-/**/ 0x3D37C392, 0x582AEA48,
-/**/ 0xBF3DBC8B, 0x56CEA97C,
-/**/ 0x3F3DBE45, 0x9A400000,
-/**/ 0x3D1787DF, 0x67DCC15E,
-/**/ 0xBF3DDC83, 0xE41BC143,
-/**/ 0x3F3DDE41, 0xE0C00000,
-/**/ 0xBD262398, 0x352F961F,
-/**/ 0xBF3DFC7C, 0x696BA563,
-/**/ 0x3F3DFE3E, 0x23400000,
-/**/ 0xBD3B16B9, 0xDEDD373A,
-/**/ 0xBF3E1C74, 0xE6BE58DA,
-/**/ 0x3F3E1E3A, 0x61800000,
-/**/ 0x3D35D42E, 0x336BE94B,
-/**/ 0xBF3E3C6D, 0x5C13DEA7,
-/**/ 0x3F3E3E36, 0x9C000000,
-/**/ 0x3D1EBFAF, 0x08A303A2,
-/**/ 0xBF3E5C65, 0xC96C39C9,
-/**/ 0x3F3E5E32, 0xD2800000,
-/**/ 0xBD160A06, 0x34856362,
-/**/ 0xBF3E7C5E, 0x2EC76D3D,
-/**/ 0x3F3E7E2F, 0x05000000,
-/**/ 0xBD31C21A, 0x154CDF1A,
-/**/ 0xBF3E9C56, 0x8C257C04,
-/**/ 0x3F3E9E2B, 0x33800000,
-/**/ 0xBD3D0DDE, 0x31941F7F,
-/**/ 0xBF3EBC4E, 0xE186691B,
-/**/ 0x3F3EBE27, 0x5DC00000,
-/**/ 0x3D389B31, 0xC26EC60D,
-/**/ 0xBF3EDC47, 0x2EEA3781,
-/**/ 0x3F3EDE23, 0x84400000,
-/**/ 0x3D2E742A, 0xD583BEF8,
-/**/ 0xBF3EFC3F, 0x7450EA34,
-/**/ 0x3F3EFE1F, 0xA6C00000,
-/**/ 0x3D1B3F31, 0xAC2DA351,
-/**/ 0xBF3F1C37, 0xB1BA8433,
-/**/ 0x3F3F1E1B, 0xC5400000,
-/**/ 0xBCE45533, 0x2DC67430,
-/**/ 0xBF3F3C2F, 0xE727087C,
-/**/ 0x3F3F3E17, 0xDFC00000,
-/**/ 0xBD1C7133, 0xFF1174AE,
-/**/ 0xBF3F5C28, 0x14967A0F,
-/**/ 0x3F3F5E13, 0xF6400000,
-/**/ 0xBD29383C, 0x4AE098DC,
-/**/ 0xBF3F7C20, 0x3A08DBE9,
-/**/ 0x3F3F7E10, 0x08C00000,
-/**/ 0xBD31211D, 0x684B0B3B,
-/**/ 0xBF3F9C18, 0x577E3109,
-/**/ 0x3F3F9E0C, 0x17400000,
-/**/ 0xBD34AA4B, 0x268D7464,
-/**/ 0xBF3FBC10, 0x6CF67C6E,
-/**/ 0x3F3FBE08, 0x21C00000,
-/**/ 0xBD3736A7, 0xBED03388,
-/**/ 0xBF3FDC08, 0x7A71C116,
-/**/ 0x3F3FDE04, 0x28400000,
-/**/ 0xBD38C533, 0x900BC4E5,
-/**/ 0xBF3FFC00, 0x7FF00200,
-/**/ 0x3F3FFE00, 0x2AC00000,
-/**/ 0xBD3954EE, 0xF9987527,
-/**/ 0xBF400DFC, 0x3EB8A115,
-/**/ 0x3F400EFE, 0x14A00000,
-/**/ 0xBD38E4DA, 0x5B2E613B,
-/**/ 0xBF401DF8, 0x397AC249,
-/**/ 0x3F401EFC, 0x11E00000,
-/**/ 0xBD3773F6, 0x14E5761B,
-/**/ 0xBF402DF4, 0x303E661C,
-/**/ 0x3F402EFA, 0x0D200000,
-/**/ 0xBD350142, 0x873570A0,
-/**/ 0xBF403DF0, 0x23038E0C,
-/**/ 0x3F403EF8, 0x06600000,
-/**/ 0xBD318BC0, 0x12F5DD53,
-/**/ 0xBF404DEC, 0x11CA3B9A,
-/**/ 0x3F404EF5, 0xFDA00000,
-/**/ 0xBD2A24DE, 0x32BC307C,
-/**/ 0xBF405DE7, 0xFC927044,
-/**/ 0x3F405EF3, 0xF2E00000,
-/**/ 0xBD1E513F, 0xF01532DA,
-/**/ 0xBF406DE3, 0xE35C2D8A,
-/**/ 0x3F406EF1, 0xE6200000,
-/**/ 0xBCF10631, 0xCE27534E,
-/**/ 0xBF407DDF, 0xC62774EA,
-/**/ 0x3F407EEF, 0xD7600000,
-/**/ 0x3D19E95C, 0x86CE9380,
-/**/ 0xBF408DDB, 0xA4F447E4,
-/**/ 0x3F408EED, 0xC6A00000,
-/**/ 0x3D2E19BC, 0xBA0CD2C3,
-/**/ 0xBF409DD7, 0x7FC2A7F8,
-/**/ 0x3F409EEB, 0xB3E00000,
-/**/ 0x3D38A832, 0x31FF7199,
-/**/ 0xBF40ADD3, 0x569296A4,
-/**/ 0x3F40AEE9, 0x9F400000,
-/**/ 0xBD3CB2AD, 0xC2D77791,
-/**/ 0xBF40BDCF, 0x29641567,
-/**/ 0x3F40BEE7, 0x88800000,
-/**/ 0xBD3102C1, 0xE5545563,
-/**/ 0xBF40CDCA, 0xF83725C2,
-/**/ 0x3F40CEE5, 0x6FC00000,
-/**/ 0xBD111C2A, 0x66B3E48D,
-/**/ 0xBF40DDC6, 0xC30BC932,
-/**/ 0x3F40DEE3, 0x55000000,
-/**/ 0x3D2302EF, 0x7711FC2A,
-/**/ 0xBF40EDC2, 0x89E20138,
-/**/ 0x3F40EEE1, 0x38400000,
-/**/ 0x3D3857C4, 0xB558238E,
-/**/ 0xBF40FDBE, 0x4CB9CF52,
-/**/ 0x3F40FEDF, 0x19A00000,
-/**/ 0xBD37C324, 0x1194C2E1,
-/**/ 0xBF410DBA, 0x0B933501,
-/**/ 0x3F410EDC, 0xF8E00000,
-/**/ 0xBD1B390B, 0xFBCAF285,
-/**/ 0xBF411DB5, 0xC66E33C2,
-/**/ 0x3F411EDA, 0xD6200000,
-/**/ 0x3D266ECF, 0x0E52C3A4,
-/**/ 0xBF412DB1, 0x7D4ACD15,
-/**/ 0x3F412ED8, 0xB1600000,
-/**/ 0x3D3E4EDB, 0x1A4AF71D,
-/**/ 0xBF413DAD, 0x30290279,
-/**/ 0x3F413ED6, 0x8AC00000,
-/**/ 0xBD2B0DD1, 0x58C4D599,
-/**/ 0xBF414DA8, 0xDF08D56E,
-/**/ 0x3F414ED4, 0x62000000,
-/**/ 0x3D1EDC6F, 0x2FB4061D,
-/**/ 0xBF415DA4, 0x89EA4773,
-/**/ 0x3F415ED2, 0x37400000,
-/**/ 0x3D3E09E8, 0x1BA53538,
-/**/ 0xBF416DA0, 0x30CD5A06,
-/**/ 0x3F416ED0, 0x0AA00000,
-/**/ 0xBD251B08, 0x4A5B4574,
-/**/ 0xBF417D9B, 0xD3B20EA8,
-/**/ 0x3F417ECD, 0xDBE00000,
-/**/ 0x3D2BE3AD, 0x4241B57B,
-/**/ 0xBF418D97, 0x729866D7,
-/**/ 0x3F418ECB, 0xAB400000,
-/**/ 0xBD387707, 0xFA22BD16,
-/**/ 0xBF419D93, 0x0D806412,
-/**/ 0x3F419EC9, 0x78800000,
-/**/ 0x3D01C6FC, 0xFFA2FC2F,
-/**/ 0xBF41AD8E, 0xA46A07D9,
-/**/ 0x3F41AEC7, 0x43C00000,
-/**/ 0x3D3E028D, 0x05F32EE8,
-/**/ 0xBF41BD8A, 0x375553AB,
-/**/ 0x3F41BEC5, 0x0D200000,
-/**/ 0xBD146400, 0xC7E46F2B,
-/**/ 0xBF41CD85, 0xC6424907,
-/**/ 0x3F41CEC2, 0xD4600000,
-/**/ 0x3D38E737, 0x8DFCE791,
-/**/ 0xBF41DD81, 0x5130E96B,
-/**/ 0x3F41DEC0, 0x99C00000,
-/**/ 0xBD1FEF30, 0x92F4A6CE,
-/**/ 0xBF41ED7C, 0xD8213659,
-/**/ 0x3F41EEBE, 0x5D000000,
-/**/ 0x3D383EF4, 0x4AE68315,
-/**/ 0xBF41FD78, 0x5B13314D,
-/**/ 0x3F41FEBC, 0x1E600000,
-/**/ 0xBD199E1E, 0x39A8276A,
-/**/ 0xBF420D73, 0xDA06DBC8,
-/**/ 0x3F420EB9, 0xDDA00000,
-/**/ 0x3D3C11BF, 0xE39F6D77,
-/**/ 0xBF421D6F, 0x54FC3749,
-/**/ 0x3F421EB7, 0x9B000000,
-/**/ 0xBCD50D72, 0xC3A8C440,
-/**/ 0xBF422D6A, 0xCBF3454F,
-/**/ 0x3F422EB5, 0x56600000,
-/**/ 0xBD3B9869, 0x06E59170,
-/**/ 0xBF423D66, 0x3EEC0759,
-/**/ 0x3F423EB3, 0x0FA00000,
-/**/ 0x3D248C4B, 0x86930551,
-/**/ 0xBF424D61, 0xADE67EE6,
-/**/ 0x3F424EB0, 0xC7000000,
-/**/ 0xBD2D6F13, 0xB3649FF7,
-/**/ 0xBF425D5D, 0x18E2AD76,
-/**/ 0x3F425EAE, 0x7C400000,
-/**/ 0x3D396F87, 0xB496441D,
-/**/ 0xBF426D58, 0x7FE09487,
-/**/ 0x3F426EAC, 0x2FA00000,
-/**/ 0x3D05E2D0, 0x01961A2F,
-/**/ 0xBF427D53, 0xE2E03598,
-/**/ 0x3F427EA9, 0xE1000000,
-/**/ 0xBD32D013, 0x652D1720,
-/**/ 0xBF428D4F, 0x41E1922A,
-/**/ 0x3F428EA7, 0x90400000,
-/**/ 0x3D38CB3F, 0x15C6A78A,
-/**/ 0xBF429D4A, 0x9CE4ABBA,
-/**/ 0x3F429EA5, 0x3DA00000,
-/**/ 0x3D163D44, 0x07F8A52A,
-/**/ 0xBF42AD45, 0xF3E983C8,
-/**/ 0x3F42AEA2, 0xE9000000,
-/**/ 0xBD2905BC, 0x1FEC6070,
-/**/ 0xBF42BD41, 0x46F01BD4,
-/**/ 0x3F42BEA0, 0x92600000,
-/**/ 0xBD3D6A4E, 0x8FE5CB8E,
-/**/ 0xBF42CD3C, 0x95F8755C,
-/**/ 0x3F42CE9E, 0x39A00000,
-/**/ 0x3D32D9FF, 0x120028B6,
-/**/ 0xBF42DD37, 0xE10291DF,
-/**/ 0x3F42DE9B, 0xDF000000,
-/**/ 0x3D112C29, 0x94B2D8A6,
-/**/ 0xBF42ED33, 0x280E72DD,
-/**/ 0x3F42EE99, 0x82600000,
-/**/ 0xBD222C5A, 0x0E9DC27F,
-/**/ 0xBF42FD2E, 0x6B1C19D4,
-/**/ 0x3F42FE97, 0x23C00000,
-/**/ 0xBD3548A7, 0xA4C12307,
-/**/ 0xBF430D29, 0xAA2B8844,
-/**/ 0x3F430E94, 0xC3000000,
-/**/ 0x3D3FB49A, 0x1B27A40C,
-/**/ 0xBF431D24, 0xE53CBFAC,
-/**/ 0x3F431E92, 0x60600000,
-/**/ 0x3D35E297, 0xC65D601D,
-/**/ 0xBF432D20, 0x1C4FC18B,
-/**/ 0x3F432E8F, 0xFBC00000,
-/**/ 0x3D2A84A1, 0xD4E46CD5,
-/**/ 0xBF433D1B, 0x4F648F60,
-/**/ 0x3F433E8D, 0x95200000,
-/**/ 0x3D175314, 0x526215F8,
-/**/ 0xBF434D16, 0x7E7B2AAB,
-/**/ 0x3F434E8B, 0x2C800000,
-/**/ 0xBCD9430B, 0x9746A94C,
-/**/ 0xBF435D11, 0xA99394E9,
-/**/ 0x3F435E88, 0xC1E00000,
-/**/ 0xBD15A88D, 0x47EF6144,
-/**/ 0xBF436D0C, 0xD0ADCF9B,
-/**/ 0x3F436E86, 0x55400000,
-/**/ 0xBD227301, 0x94614FFB,
-/**/ 0xBF437D07, 0xF3C9DC3F,
-/**/ 0x3F437E83, 0xE6A00000,
-/**/ 0xBD27A44A, 0x16908831,
-/**/ 0xBF438D03, 0x12E7BC55,
-/**/ 0x3F438E81, 0x76000000,
-/**/ 0xBD2A6621, 0x13DE59AC,
-/**/ 0xBF439CFE, 0x2E07715C,
-/**/ 0x3F439E7F, 0x03600000,
-/**/ 0xBD2AB687, 0x76635000,
-/**/ 0xBF43ACF9, 0x4528FCD2,
-/**/ 0x3F43AE7C, 0x8EC00000,
-/**/ 0xBD28937E, 0x28F7818F,
-/**/ 0xBF43BCF4, 0x584C6037,
-/**/ 0x3F43BE7A, 0x18200000,
-/**/ 0xBD23FB06, 0x17328F27,
-/**/ 0xBF43CCEF, 0x67719D0A,
-/**/ 0x3F43CE77, 0x9F800000,
-/**/ 0xBD19D640, 0x5AD74747,
-/**/ 0xBF43DCEA, 0x7298B4CA,
-/**/ 0x3F43DE75, 0x24E00000,
-/**/ 0xBCFB0E6A, 0xC5CB9C74,
-/**/ 0xBF43ECE5, 0x79C1A8F6,
-/**/ 0x3F43EE72, 0xA8400000,
-/**/ 0x3D1145E2, 0xF21B8682,
-/**/ 0xBF43FCE0, 0x7CEC7B0D,
-/**/ 0x3F43FE70, 0x29A00000,
-/**/ 0x3D27251B, 0x59543A06,
-/**/ 0xBF440CDB, 0x7C192C8E,
-/**/ 0x3F440E6D, 0xA9000000,
-/**/ 0x3D341357, 0xAC6250B6,
-/**/ 0xBF441CD6, 0x7747BEF8,
-/**/ 0x3F441E6B, 0x26600000,
-/**/ 0x3D3DD4D6, 0x43A510F7,
-/**/ 0xBF442CD1, 0x6E7833CB,
-/**/ 0x3F442E68, 0xA1E00000,
-/**/ 0xBD3727F7, 0x05F7D1E1,
-/**/ 0xBF443CCC, 0x61AA8C85,
-/**/ 0x3F443E66, 0x1B400000,
-/**/ 0xBD25C421, 0x527C9668,
-/**/ 0xBF444CC7, 0x50DECAA5,
-/**/ 0x3F444E63, 0x92A00000,
-/**/ 0x3D053C47, 0x053F70AC,
-/**/ 0xBF445CC2, 0x3C14EFAB,
-/**/ 0x3F445E61, 0x08000000,
-/**/ 0x3D3175D5, 0x1E315FBB,
-/**/ 0xBF446CBD, 0x234CFD15,
-/**/ 0x3F446E5E, 0x7B800000,
-/**/ 0xBD3E762C, 0x6A8B33AC,
-/**/ 0xBF447CB8, 0x0686F463,
-/**/ 0x3F447E5B, 0xECE00000,
-/**/ 0xBD2A36F8, 0x67AD9900,
-/**/ 0xBF448CB2, 0xE5C2D713,
-/**/ 0x3F448E59, 0x5C400000,
-/**/ 0x3D161B95, 0x1E974853,
-/**/ 0xBF449CAD, 0xC100A6A5,
-/**/ 0x3F449E56, 0xC9A00000,
-/**/ 0x3D3971F7, 0x8CE22250,
-/**/ 0xBF44ACA8, 0x98406498,
-/**/ 0x3F44AE54, 0x35200000,
-/**/ 0xBD315945, 0xDF8A23F8,
-/**/ 0xBF44BCA3, 0x6B82126A,
-/**/ 0x3F44BE51, 0x9E800000,
-/**/ 0x3D1498B2, 0x1A63D360,
-/**/ 0xBF44CC9E, 0x3AC5B19B,
-/**/ 0x3F44CE4F, 0x05E00000,
-/**/ 0x3D3CF14E, 0x4323A054,
-/**/ 0xBF44DC99, 0x060B43AA,
-/**/ 0x3F44DE4C, 0x6B600000,
-/**/ 0xBD23EDC2, 0x4CE35F94,
-/**/ 0xBF44EC93, 0xCD52CA15,
-/**/ 0x3F44EE49, 0xCEC00000,
-/**/ 0x3D306E9D, 0xCCF1B48E,
-/**/ 0xBF44FC8E, 0x909C465C,
-/**/ 0x3F44FE47, 0x30400000,
-/**/ 0xBD33DD35, 0x5FF9440B,
-/**/ 0xBF450C89, 0x4FE7B9FF,
-/**/ 0x3F450E44, 0x8FA00000,
-/**/ 0x3D224D49, 0xAA4D276D,
-/**/ 0xBF451C84, 0x0B35267A,
-/**/ 0x3F451E41, 0xED200000,
-/**/ 0xBD3884D4, 0x11B557F9,
-/**/ 0xBF452C7E, 0xC2848D4F,
-/**/ 0x3F452E3F, 0x48800000,
-/**/ 0x3D1C857D, 0xB43290C4,
-/**/ 0xBF453C79, 0x75D5EFFC,
-/**/ 0x3F453E3C, 0xA2000000,
-/**/ 0xBD37E5C1, 0x2D598D3C,
-/**/ 0xBF454C74, 0x25294FFF,
-/**/ 0x3F454E39, 0xF9600000,
-/**/ 0x3D24CD93, 0x3FE47B89,
-/**/ 0xBF455C6E, 0xD07EAED8,
-/**/ 0x3F455E37, 0x4EE00000,
-/**/ 0xBD31F800, 0xAA959122,
-/**/ 0xBF456C69, 0x77D60E06,
-/**/ 0x3F456E34, 0xA2400000,
-/**/ 0x3D32FEDF, 0x7329AF92,
-/**/ 0xBF457C64, 0x1B2F6F08,
-/**/ 0x3F457E31, 0xF3C00000,
-/**/ 0xBD1ACE5A, 0x1C545A6F,
-/**/ 0xBF458C5E, 0xBA8AD35D,
-/**/ 0x3F458E2F, 0x43400000,
-/**/ 0xBD3F0E63, 0x19F6B9EF,
-/**/ 0xBF459C59, 0x55E83C84,
-/**/ 0x3F459E2C, 0x90A00000,
-/**/ 0x3D23DEF2, 0x73005F6F,
-/**/ 0xBF45AC53, 0xED47ABFB,
-/**/ 0x3F45AE29, 0xDC200000,
-/**/ 0xBD277204, 0x1C295DE7,
-/**/ 0xBF45BC4E, 0x80A92343,
-/**/ 0x3F45BE27, 0x25800000,
-/**/ 0x3D3FF92A, 0x8D869589,
-/**/ 0xBF45CC49, 0x100CA3D9,
-/**/ 0x3F45CE24, 0x6D000000,
-/**/ 0x3D2A0DFD, 0x145C5335,
-/**/ 0xBF45DC43, 0x9B722F3C,
-/**/ 0x3F45DE21, 0xB2800000,
-/**/ 0xBD123A1A, 0x6A8614B3,
-/**/ 0xBF45EC3E, 0x22D9C6ED,
-/**/ 0x3F45EE1E, 0xF6000000,
-/**/ 0xBD34C665, 0x63CBC7E7,
-/**/ 0xBF45FC38, 0xA6436C69,
-/**/ 0x3F45FE1C, 0x37600000,
-/**/ 0x3D3C6061, 0xAB6C51D7,
-/**/ 0xBF460C33, 0x25AF2130,
-/**/ 0x3F460E19, 0x76E00000,
-/**/ 0x3D2DCD9C, 0x1EC7F453,
-/**/ 0xBF461C2D, 0xA11CE6C1,
-/**/ 0x3F461E16, 0xB4600000,
-/**/ 0x3D066EFA, 0x20C52899,
-/**/ 0xBF462C28, 0x188CBE9A,
-/**/ 0x3F462E13, 0xEFE00000,
-/**/ 0xBD1FA5AC, 0xEB5FDD5C,
-/**/ 0xBF463C22, 0x8BFEAA3B,
-/**/ 0x3F463E11, 0x29600000,
-/**/ 0xBD313E11, 0xF22FE2BC,
-/**/ 0xBF464C1C, 0xFB72AB23,
-/**/ 0x3F464E0E, 0x60E00000,
-/**/ 0xBD392F15, 0x6710E251,
-/**/ 0xBF465C17, 0x66E8C2D0,
-/**/ 0x3F465E0B, 0x96600000,
-/**/ 0xBD3FBB76, 0x1EFC78A7,
-/**/ 0xBF466C11, 0xCE60F2C1,
-/**/ 0x3F466E08, 0xC9C00000,
-/**/ 0x3D3B1DCB, 0x602C1A84,
-/**/ 0xBF467C0C, 0x31DB3C76,
-/**/ 0x3F467E05, 0xFB400000,
-/**/ 0x3D375DAE, 0x9027DA74,
-/**/ 0xBF468C06, 0x9157A16E,
-/**/ 0x3F468E03, 0x2AC00000,
-/**/ 0x3D350532, 0xEA560DA0,
-/**/ 0xBF469C00, 0xECD62326,
-/**/ 0x3F469E00, 0x58400000,
-/**/ 0x3D341557, 0xE7B63DE2 } };
-
-#else
-#ifdef LITTLE_ENDI
-static const union {int4 i[5800]; double x[2900];} ui = { .i = {
-/**/ 0x00000000, 0x3FF6A000,
-/**/ 0x3729043E, 0x3F33CD15,
-/**/ 0x0B3AB000, 0xBFD63003,
-/**/ 0xE731AE00, 0x3D2DB623,
-/**/ 0x00000000, 0x3FF69800,
-/**/ 0xCC7267D0, 0x3F33F349,
-/**/ 0xCDB03000, 0xBFD61965,
-/**/ 0x603C488E, 0x3D2F08AD,
-/**/ 0x00000000, 0x3FF69000,
-/**/ 0x8D0BFD2E, 0x3F3473A8,
-/**/ 0x8AF09000, 0xBFD602D0,
-/**/ 0x76DF3F65, 0xBD1EBE91,
-/**/ 0x00000000, 0x3FF68800,
-/**/ 0x390B9ED0, 0x3F354DD2,
-/**/ 0x3D5C3000, 0xBFD5EC43,
-/**/ 0x1229D17F, 0xBD36B71A,
-/**/ 0x00000000, 0x3FF68000,
-/**/ 0x16816817, 0x3F368168,
-/**/ 0xDF596000, 0xBFD5D5BD,
-/**/ 0x08A465DC, 0x3D0A0B2A,
-/**/ 0x00000000, 0x3FF67800,
-/**/ 0xF08C7765, 0x3F380E0B,
-/**/ 0x6B544000, 0xBFD5BF40,
-/**/ 0xEB68981C, 0x3D227023,
-/**/ 0x00000000, 0x3FF67000,
-/**/ 0x16719F36, 0x3F39F360,
-/**/ 0xDBBEE000, 0xBFD5A8CA,
-/**/ 0x0AF7ECF8, 0x3CF7C79B,
-/**/ 0x00000000, 0x3FF66800,
-/**/ 0x5AB40167, 0x3F3C3107,
-/**/ 0x2B113000, 0xBFD5925D,
-/**/ 0xA7A56F34, 0x3D369BF5,
-/**/ 0x00000000, 0x3FF66000,
-/**/ 0x122F9016, 0x3F3EC6A5,
-/**/ 0x53C8D000, 0xBFD57BF7,
-/**/ 0xEE5D40EF, 0xBD1FADED,
-/**/ 0x00000000, 0x3FF65C00,
-/**/ 0xECCA9097, 0xBF3E4C22,
-/**/ 0x50695000, 0xBFD56599,
-/**/ 0x2BADC774, 0xBD14C5FD,
-/**/ 0x00000000, 0x3FF65400,
-/**/ 0x4B55CC62, 0xBF3B07AC,
-/**/ 0x1B7BE000, 0xBFD54F43,
-/**/ 0xC0910952, 0xBD1A8954,
-/**/ 0x00000000, 0x3FF64C00,
-/**/ 0x32DA090E, 0xBF376C52,
-/**/ 0xAF8F7000, 0xBFD538F4,
-/**/ 0xE45547CE, 0xBD27EC02,
-/**/ 0x00000000, 0x3FF64400,
-/**/ 0x4DE9BD38, 0xBF337A6F,
-/**/ 0x0738A000, 0xBFD522AE,
-/**/ 0x8164C759, 0xBD2EBE70,
-/**/ 0x00000000, 0x3FF63C00,
-/**/ 0x923C708B, 0xBF2E64BB,
-/**/ 0x1D11C000, 0xBFD50C6F,
-/**/ 0x7E827C2C, 0x3D3A0E6B,
-/**/ 0x00000000, 0x3FF63400,
-/**/ 0xA7E43FD4, 0xBF2528EE,
-/**/ 0xEBBAA000, 0xBFD4F637,
-/**/ 0xCB3124B9, 0x3D3FC158,
-/**/ 0x00000000, 0x3FF62C00,
-/**/ 0x86689DF7, 0xBF168454,
-/**/ 0x6DD8C000, 0xBFD4E008,
-/**/ 0xA1E44788, 0x3D34D692,
-/**/ 0x00000000, 0x3FF62400,
-/**/ 0x77016240, 0xBED623FA,
-/**/ 0x9E173000, 0xBFD4C9E0,
-/**/ 0x1B0AD8A4, 0x3D2E2089,
-/**/ 0x00000000, 0x3FF61C00,
-/**/ 0x58715130, 0x3F151300,
-/**/ 0x77268000, 0xBFD4B3C0,
-/**/ 0x81052B9F, 0x3D165B46,
-/**/ 0x00000000, 0x3FF61400,
-/**/ 0x35D2754E, 0x3F266D06,
-/**/ 0xF3BCC000, 0xBFD49DA7,
-/**/ 0x4DAF4B9A, 0xBD307B33,
-/**/ 0x00000000, 0x3FF60C00,
-/**/ 0xDA197F23, 0x3F317C61,
-/**/ 0x0E958000, 0xBFD48797,
-/**/ 0x465CF25F, 0xBD3DC1B8,
-/**/ 0x00000000, 0x3FF60400,
-/**/ 0x81605816, 0x3F381605,
-/**/ 0xC271C000, 0xBFD4718D,
-/**/ 0xFB4C14C5, 0xBD306C18,
-/**/ 0x00000000, 0x3FF5FC00,
-/**/ 0xB5C6F559, 0x3F3F0317,
-/**/ 0x0A17E000, 0xBFD45B8C,
-/**/ 0xE7D0A853, 0x3D0D9120,
-/**/ 0x00000000, 0x3FF5F800,
-/**/ 0x6D2041E3, 0xBF39BCBD,
-/**/ 0xE053A000, 0xBFD44591,
-/**/ 0x92923D88, 0x3D06E958,
-/**/ 0x00000000, 0x3FF5F000,
-/**/ 0x5604CC40, 0xBF3229CF,
-/**/ 0x3FF62000, 0xBFD42F9F,
-/**/ 0x0F7D3354, 0xBD390644,
-/**/ 0x00000000, 0x3FF5E800,
-/**/ 0xFD431489, 0xBF2488E5,
-/**/ 0x23D5F000, 0xBFD419B4,
-/**/ 0x226DE3EC, 0x3D3CE379,
-/**/ 0x00000000, 0x3FF5E000,
-/**/ 0x6424E9C9, 0xBF0067E7,
-/**/ 0x86CEA000, 0xBFD403D0,
-/**/ 0x74487308, 0xBD3E6EF5,
-/**/ 0x00000000, 0x3FF5D800,
-/**/ 0x38A94D24, 0x3F19F0FB,
-/**/ 0x63C17000, 0xBFD3EDF4,
-/**/ 0x297F2C3F, 0x3D3F067C,
-/**/ 0x00000000, 0x3FF5D000,
-/**/ 0x23CAD2AA, 0x3F2EADD9,
-/**/ 0xB5947000, 0xBFD3D81F,
-/**/ 0x2A9D37A4, 0x3D222C7C,
-/**/ 0x00000000, 0x3FF5C800,
-/**/ 0x31057262, 0x3F3882B9,
-/**/ 0x77333000, 0xBFD3C252,
-/**/ 0xB606BD5C, 0xBD183B54,
-/**/ 0x00000000, 0x3FF5C400,
-/**/ 0x10FFA8F8, 0xBF3E00AE,
-/**/ 0xA38E6000, 0xBFD3AC8C,
-/**/ 0xBC02BE4A, 0x3D2D0BEF,
-/**/ 0x00000000, 0x3FF5BC00,
-/**/ 0x8056EAF3, 0xBF34339B,
-/**/ 0x359BC000, 0xBFD396CE,
-/**/ 0x5663663D, 0x3D05839C,
-/**/ 0x00000000, 0x3FF5B400,
-/**/ 0xF31D7FD5, 0xBF242CC1,
-/**/ 0x28565000, 0xBFD38117,
-/**/ 0x93A0702B, 0x3D2A71E4,
-/**/ 0x00000000, 0x3FF5AC00,
-/**/ 0x6B015AC0, 0x3ED5AC05,
-/**/ 0x76BE1000, 0xBFD36B67,
-/**/ 0xB0F177C8, 0xBD116ECD,
-/**/ 0x00000000, 0x3FF5A400,
-/**/ 0x5BA55E5A, 0x3F26268D,
-/**/ 0x1BD83000, 0xBFD355BF,
-/**/ 0x8964F0E8, 0x3D2BA99B,
-/**/ 0x00000000, 0x3FF59C00,
-/**/ 0x3CCAA376, 0x3F361F12,
-/**/ 0x12AED000, 0xBFD3401E,
-/**/ 0x556E291D, 0x3D317C73,
-/**/ 0x00000000, 0x3FF59800,
-/**/ 0x62D32417, 0xBF3E863D,
-/**/ 0x56512000, 0xBFD32A84,
-/**/ 0x139AF5D6, 0xBD04F928,
-/**/ 0x00000000, 0x3FF59000,
-/**/ 0xEA712DCF, 0xBF32DCF7,
-/**/ 0xE1D36000, 0xBFD314F1,
-/**/ 0xD3213CB8, 0x3D28E27A,
-/**/ 0x00000000, 0x3FF58800,
-/**/ 0xA0CC87E8, 0xBF1B95B2,
-/**/ 0xB04EB000, 0xBFD2FF66,
-/**/ 0x541E6E2E, 0x3D38AED2,
-/**/ 0x00000000, 0x3FF58000,
-/**/ 0x01580560, 0x3F158056,
-/**/ 0xBCE12000, 0xBFD2E9E2,
-/**/ 0x128D1DC2, 0xBD24300C,
-/**/ 0x00000000, 0x3FF57800,
-/**/ 0x15791F34, 0x3F31F340,
-/**/ 0x02ADD000, 0xBFD2D466,
-/**/ 0xDCD54196, 0x3D288D0D,
-/**/ 0x00000000, 0x3FF57000,
-/**/ 0x06B39A23, 0x3F3ED3C5,
-/**/ 0x7CDC9000, 0xBFD2BEF0,
-/**/ 0x4A5004F4, 0xBD2A9CFA,
-/**/ 0x00000000, 0x3FF56C00,
-/**/ 0x53FEA954, 0xBF33FEA9,
-/**/ 0x269A4000, 0xBFD2A982,
-/**/ 0x557285CF, 0x3D22058E,
-/**/ 0x00000000, 0x3FF56400,
-/**/ 0xEB478503, 0xBF1A1160,
-/**/ 0xFB187000, 0xBFD2941A,
-/**/ 0xB730E28B, 0x3D3210C2,
-/**/ 0x00000000, 0x3FF55C00,
-/**/ 0xE4A18B2E, 0x3F1D09AD,
-/**/ 0xF58D9000, 0xBFD27EBA,
-/**/ 0x00B4BDA7, 0x3D2B1988,
-/**/ 0x00000000, 0x3FF55400,
-/**/ 0x55555555, 0x3F355555,
-/**/ 0x1134E000, 0xBFD26962,
-/**/ 0x10522625, 0x3D31B61F,
-/**/ 0x00000000, 0x3FF55000,
-/**/ 0xB319A21F, 0xBF3C4BE6,
-/**/ 0x494E5000, 0xBFD25410,
-/**/ 0xC0EF77F2, 0xBD3B1D7A,
-/**/ 0x00000000, 0x3FF54800,
-/**/ 0x8FA03FD5, 0xBF2B4328,
-/**/ 0x991EC000, 0xBFD23EC5,
-/**/ 0x48A2E522, 0x3D36DBE4,
-/**/ 0x00000000, 0x3FF54000,
-/**/ 0x40154015, 0x3EF54015,
-/**/ 0xFBEF8000, 0xBFD22981,
-/**/ 0x609580DA, 0x3D3A1421,
-/**/ 0x00000000, 0x3FF53800,
-/**/ 0x40FEAC6F, 0x3F30948F,
-/**/ 0x6D0EC000, 0xBFD21445,
-/**/ 0x28B728A3, 0x3D3CAF04,
-/**/ 0x00000000, 0x3FF53400,
-/**/ 0xFD04F7B8, 0xBF3FE034,
-/**/ 0xE7CF4000, 0xBFD1FF0F,
-/**/ 0x513FF0C1, 0xBD3E9D5B,
-/**/ 0x00000000, 0x3FF52C00,
-/**/ 0x7FAB5403, 0xBF300A95,
-/**/ 0x6788A000, 0xBFD1E9E1,
-/**/ 0xD3C8B65E, 0x3D382EAE,
-/**/ 0x00000000, 0x3FF52400,
-/**/ 0x52401524, 0x3EB52401,
-/**/ 0xE796C000, 0xBFD1D4B9,
-/**/ 0x7C42E56D, 0xBD222A66,
-/**/ 0x00000000, 0x3FF51C00,
-/**/ 0x2F8151D0, 0x3F307EAE,
-/**/ 0x635A7000, 0xBFD1BF99,
-/**/ 0x575C2125, 0x3D31AC89,
-/**/ 0x00000000, 0x3FF51800,
-/**/ 0xEAE9ECE4, 0xBF3ECE3F,
-/**/ 0xD638D000, 0xBFD1AA7F,
-/**/ 0x9616F7A0, 0xBD29F60A,
-/**/ 0x00000000, 0x3FF51000,
-/**/ 0xC7675243, 0xBF2BA3DD,
-/**/ 0x3B9BC000, 0xBFD1956D,
-/**/ 0x3AD1AA14, 0xBD27D2F7,
-/**/ 0x00000000, 0x3FF50800,
-/**/ 0x764E368D, 0x3F0B9AC8,
-/**/ 0x8EF19000, 0xBFD18061,
-/**/ 0xC86D38E5, 0x3D3482FF,
-/**/ 0x00000000, 0x3FF50000,
-/**/ 0x15015015, 0x3F350150,
-/**/ 0xCBAD0000, 0xBFD16B5C,
-/**/ 0x042D74BF, 0x3D323299,
-/**/ 0x00000000, 0x3FF4FC00,
-/**/ 0x4A683C50, 0xBF392851,
-/**/ 0xED456000, 0xBFD1565E,
-/**/ 0xFB6ABA25, 0x3CEE75AD,
-/**/ 0x00000000, 0x3FF4F400,
-/**/ 0xACD95EF0, 0xBF1C2748,
-/**/ 0xEF367000, 0xBFD14167,
-/**/ 0x824DAAF5, 0xBD3E0C07,
-/**/ 0x00000000, 0x3FF4EC00,
-/**/ 0x67A47465, 0x3F26B90D,
-/**/ 0xCD007000, 0xBFD12C77,
-/**/ 0x8A11F797, 0xBD13B294,
-/**/ 0x00000000, 0x3FF4E400,
-/**/ 0xF0539783, 0x3F3E0A72,
-/**/ 0x8227E000, 0xBFD1178E,
-/**/ 0xCE2D07F2, 0xBD31EF78,
-/**/ 0x00000000, 0x3FF4E000,
-/**/ 0xF87FD642, 0xBF2E00A6,
-/**/ 0x0A35D000, 0xBFD102AC,
-/**/ 0xDFDFD686, 0x3D2F1FBD,
-/**/ 0x00000000, 0x3FF4D800,
-/**/ 0x0B12E3FD, 0x3F10EFB7,
-/**/ 0x60B78000, 0xBFD0EDD0,
-/**/ 0x2D8435F5, 0xBD0019B5,
-/**/ 0x00000000, 0x3FF4D000,
-/**/ 0x5CB4DBE5, 0x3F37BEF1,
-/**/ 0x813EB000, 0xBFD0D8FB,
-/**/ 0x8753FA35, 0xBD1EE8C8,
-/**/ 0x00000000, 0x3FF4CC00,
-/**/ 0xA50918B1, 0xBF34778D,
-/**/ 0x67616000, 0xBFD0C42D,
-/**/ 0x163CEAE9, 0xBD27188B,
-/**/ 0x00000000, 0x3FF4C400,
-/**/ 0xE37288EC, 0xBED9F4F7,
-/**/ 0x0EB9E000, 0xBFD0AF66,
-/**/ 0xF528D80A, 0xBD23C7C3,
-/**/ 0x00000000, 0x3FF4BC00,
-/**/ 0x68FE0E42, 0x3F33EDDA,
-/**/ 0x72E6C000, 0xBFD09AA5,
-/**/ 0xE1734342, 0xBD3B50A1,
-/**/ 0x00000000, 0x3FF4B800,
-/**/ 0xB72E47D9, 0xBF3776C6,
-/**/ 0x8F8AE000, 0xBFD085EB,
-/**/ 0x3F45FE7B, 0xBD3E5D51,
-/**/ 0x00000000, 0x3FF4B000,
-/**/ 0xA052BF5B, 0xBF04AFD6,
-/**/ 0x604D6000, 0xBFD07138,
-/**/ 0x4E912B17, 0x3D3E7632,
-/**/ 0x00000000, 0x3FF4A800,
-/**/ 0xD5B5C015, 0x3F328FFA,
-/**/ 0xE0D96000, 0xBFD05C8B,
-/**/ 0xC77CCB58, 0xBD2AD0F1,
-/**/ 0x00000000, 0x3FF4A400,
-/**/ 0x9FEB5D80, 0xBF380528,
-/**/ 0x0CDE8000, 0xBFD047E6,
-/**/ 0x0D397F3C, 0xBD2DBDF1,
-/**/ 0x00000000, 0x3FF49C00,
-/**/ 0x25FF5B21, 0xBF02AD3E,
-/**/ 0xE0106000, 0xBFD03346,
-/**/ 0xA966395C, 0xBCF89FF8,
-/**/ 0x00000000, 0x3FF49400,
-/**/ 0x2D066EA2, 0x3F339E3B,
-/**/ 0x5626C000, 0xBFD01EAE,
-/**/ 0xFADE85AE, 0xBD3A43DC,
-/**/ 0x00000000, 0x3FF49000,
-/**/ 0xAFB2E932, 0xBF3629C1,
-/**/ 0x6ADDA000, 0xBFD00A1C,
-/**/ 0x688B9E18, 0xBD31CD8D,
-/**/ 0x00000000, 0x3FF48800,
-/**/ 0x22014880, 0x3ED48805,
-/**/ 0x33EA0000, 0xBFCFEB22,
-/**/ 0xDE00938B, 0xBD2F3418,
-/**/ 0x00000000, 0x3FF48000,
-/**/ 0x3D324D89, 0x3F37119F,
-/**/ 0xBE620000, 0xBFCFC218,
-/**/ 0x6F1CF6A0, 0xBD34BBA4,
-/**/ 0x00000000, 0x3FF47C00,
-/**/ 0x1EB851EC, 0xBF31EB85,
-/**/ 0x6CB3C000, 0xBFCF991C,
-/**/ 0xCD7CC834, 0x3D390D04,
-/**/ 0x00000000, 0x3FF47400,
-/**/ 0xAAFC7C01, 0x3F1569C9,
-/**/ 0x36778000, 0xBFCF702D,
-/**/ 0x16673E23, 0x3D108195,
-/**/ 0x00000000, 0x3FF46C00,
-/**/ 0x96066250, 0x3F3CE345,
-/**/ 0x134E0000, 0xBFCF474B,
-/**/ 0xF1DF7B5E, 0x3D3BAE49,
-/**/ 0x00000000, 0x3FF46800,
-/**/ 0x1D02DE87, 0xBF26A297,
-/**/ 0xFADFA000, 0xBFCF1E75,
-/**/ 0x25D83F6D, 0x3D20862B,
-/**/ 0x00000000, 0x3FF46000,
-/**/ 0xB9F34381, 0x3F2978FE,
-/**/ 0xE4DD0000, 0xBFCEF5AD,
-/**/ 0x65BB8E11, 0x3CCA2115,
-/**/ 0x00000000, 0x3FF45C00,
-/**/ 0xF6C71366, 0xBF3AF398,
-/**/ 0xC8FEA000, 0xBFCECCF2,
-/**/ 0xA3E75640, 0x3D3BEC63,
-/**/ 0x00000000, 0x3FF45400,
-/**/ 0x449AFF5D, 0xBF030E9C,
-/**/ 0x9F04A000, 0xBFCEA444,
-/**/ 0x63732A36, 0xBD35E916,
-/**/ 0x00000000, 0x3FF44C00,
-/**/ 0xF8B42EF3, 0x3F367190,
-/**/ 0x5EB78000, 0xBFCE7BA3,
-/**/ 0x23793649, 0x3D0D5EEE,
-/**/ 0x00000000, 0x3FF44800,
-/**/ 0xD260511C, 0xBF3079A9,
-/**/ 0xFFE72000, 0xBFCE530E,
-/**/ 0xB13F7C18, 0x3D3FDBDB,
-/**/ 0x00000000, 0x3FF44000,
-/**/ 0x0B644FBE, 0x3F21B87C,
-/**/ 0x7A6B2000, 0xBFCE2A87,
-/**/ 0x7787081A, 0xBD382381,
-/**/ 0x00000000, 0x3FF43C00,
-/**/ 0x411B2E25, 0xBF3D8CF5,
-/**/ 0xC6236000, 0xBFCE020C,
-/**/ 0xADB91424, 0x3D252B00,
-/**/ 0x00000000, 0x3FF43400,
-/**/ 0xD6A60978, 0xBF0DAC08,
-/**/ 0xDAF6E000, 0xBFCDD99E,
-/**/ 0x69C756EB, 0x3D302EC6,
-/**/ 0x00000000, 0x3FF42C00,
-/**/ 0x51F86EFA, 0x3F36625D,
-/**/ 0xB0D48000, 0xBFCDB13D,
-/**/ 0x847527E6, 0xBD32806A,
-/**/ 0x00000000, 0x3FF42800,
-/**/ 0xA8766564, 0xBF2E8B2D,
-/**/ 0x3FB30000, 0xBFCD88E9,
-/**/ 0x0234BF51, 0x3D375F28,
-/**/ 0x00000000, 0x3FF42000,
-/**/ 0xCB2A247B, 0x3F26A4CB,
-/**/ 0x7F904000, 0xBFCD60A1,
-/**/ 0x6FC20D39, 0x3D35D6E0,
-/**/ 0x00000000, 0x3FF41C00,
-/**/ 0xC17DF552, 0xBF39D5E8,
-/**/ 0x68720000, 0xBFCD3866,
-/**/ 0xB38932BC, 0x3D373650,
-/**/ 0x00000000, 0x3FF41400,
-/**/ 0x14141414, 0x3EF41414,
-/**/ 0xF2656000, 0xBFCD1037,
-/**/ 0x75B6F6E4, 0x3D084A7E,
-/**/ 0x00000000, 0x3FF40C00,
-/**/ 0x43AE87FD, 0x3F3C97A8,
-/**/ 0x157F2000, 0xBFCCE816,
-/**/ 0xA2099515, 0x3D29E0AB,
-/**/ 0x00000000, 0x3FF40800,
-/**/ 0x66A67E6F, 0xBF1F4BBC,
-/**/ 0xC9DB4000, 0xBFCCC000,
-/**/ 0x5D57AFF9, 0x3D1D6D58,
-/**/ 0x00000000, 0x3FF40000,
-/**/ 0x14014014, 0x3F340140,
-/**/ 0x079D4000, 0xBFCC97F8,
-/**/ 0xA8C6E6C5, 0xBD23B161,
-/**/ 0x00000000, 0x3FF3FC00,
-/**/ 0xFD809FD8, 0xBF2FD809,
-/**/ 0xC6F00000, 0xBFCC6FFB,
-/**/ 0xD3A69D43, 0xBD3EE138,
-/**/ 0x00000000, 0x3FF3F400,
-/**/ 0x57EE89D2, 0x3F28CA0E,
-/**/ 0x0005C000, 0xBFCC480C,
-/**/ 0xD5E44E76, 0xBD39A294,
-/**/ 0x00000000, 0x3FF3F000,
-/**/ 0xA50F9260, 0xBF370BD5,
-/**/ 0xAB180000, 0xBFCC2028,
-/**/ 0xE55C7AC6, 0x3D292E0E,
-/**/ 0x00000000, 0x3FF3E800,
-/**/ 0x75945FCE, 0x3F1704AA,
-/**/ 0xC0676000, 0xBFCBF851,
-/**/ 0x4C0854AD, 0x3D35420E,
-/**/ 0x00000000, 0x3FF3E400,
-/**/ 0xB56FD83C, 0xBF3D3431,
-/**/ 0x383BE000, 0xBFCBD087,
-/**/ 0x595412B6, 0x3D2D4BC4,
-/**/ 0x00000000, 0x3FF3DC00,
-/**/ 0x3DC013DC, 0x3EB3DC01,
-/**/ 0x0AE4A000, 0xBFCBA8C9,
-/**/ 0xF44432DA, 0xBD3A32E7,
-/**/ 0x00000000, 0x3FF3D400,
-/**/ 0xA75C5BBD, 0x3F3D991A,
-/**/ 0x30B82000, 0xBFCB8117,
-/**/ 0x3B9CD768, 0xBD1E9068,
-/**/ 0x00000000, 0x3FF3D000,
-/**/ 0x59C52F5D, 0xBF1292BA,
-/**/ 0xA213A000, 0xBFCB5971,
-/**/ 0x83AA91DF, 0xBD39B50E,
-/**/ 0x00000000, 0x3FF3C800,
-/**/ 0xBABE7440, 0x3F395A47,
-/**/ 0x575BC000, 0xBFCB31D8,
-/**/ 0x562A63CB, 0xBD3C794E,
-/**/ 0x00000000, 0x3FF3C400,
-/**/ 0x58A0943A, 0xBF20D475,
-/**/ 0x48FC2000, 0xBFCB0A4B,
-/**/ 0x5C3998ED, 0x3D22E72D,
-/**/ 0x00000000, 0x3FF3BC00,
-/**/ 0x3295482C, 0x3F360D92,
-/**/ 0x6F672000, 0xBFCAE2CA,
-/**/ 0xAE54F550, 0xBD37A8D5,
-/**/ 0x00000000, 0x3FF3B800,
-/**/ 0xCAB48651, 0xBF267D12,
-/**/ 0xC316A000, 0xBFCABB55,
-/**/ 0xCAF14CD8, 0x3D38A65A,
-/**/ 0x00000000, 0x3FF3B000,
-/**/ 0x13B13B14, 0x3F33B13B,
-/**/ 0x3C8AE000, 0xBFCA93ED,
-/**/ 0x50562169, 0x3D287243,
-/**/ 0x00000000, 0x3FF3AC00,
-/**/ 0x2C8FD3BF, 0xBF2A46AF,
-/**/ 0xD44B8000, 0xBFCA6C90,
-/**/ 0xF037B0C6, 0x3D3F63B7,
-/**/ 0x00000000, 0x3FF3A400,
-/**/ 0xAC822610, 0x3F324387,
-/**/ 0x82E6A000, 0xBFCA4540,
-/**/ 0xC81F7171, 0xBD360A77,
-/**/ 0x00000000, 0x3FF3A000,
-/**/ 0xA1923DEE, 0xBF2C34BB,
-/**/ 0x40F1C000, 0xBFCA1DFC,
-/**/ 0x004F3781, 0x3D301E0F,
-/**/ 0x00000000, 0x3FF39800,
-/**/ 0x87F63372, 0x3F31C2C1,
-/**/ 0x0708A000, 0xBFC9F6C4,
-/**/ 0x4BCD3F43, 0x3D3337D9,
-/**/ 0x00000000, 0x3FF39400,
-/**/ 0xE11BD52E, 0xBF2C4AA0,
-/**/ 0xCDCE0000, 0xBFC9CF97,
-/**/ 0x10C414E3, 0xBD3D862F,
-/**/ 0x00000000, 0x3FF38C00,
-/**/ 0x6088DBF4, 0x3F322D36,
-/**/ 0x8DEBA000, 0xBFC9A877,
-/**/ 0x3EFEC390, 0xBD3470FA,
-/**/ 0x00000000, 0x3FF38800,
-/**/ 0x503F774E, 0xBF2A8BBF,
-/**/ 0x4011A000, 0xBFC98163,
-/**/ 0x9E9045E2, 0xBD34EADD,
-/**/ 0x00000000, 0x3FF38000,
-/**/ 0x13813814, 0x3F338138,
-/**/ 0xDCF70000, 0xBFC95A5A,
-/**/ 0x58A0FF6F, 0xBD07F228,
-/**/ 0x00000000, 0x3FF37C00,
-/**/ 0x1B177053, 0xBF26FB6F,
-/**/ 0x5D594000, 0xBFC9335E,
-/**/ 0x3ABD47DA, 0xBD33115C,
-/**/ 0x00000000, 0x3FF37400,
-/**/ 0x945EDC20, 0x3F35BD1C,
-/**/ 0xB9FCC000, 0xBFC90C6D,
-/**/ 0x7718D7CA, 0x3D1935F5,
-/**/ 0x00000000, 0x3FF37000,
-/**/ 0x4DBDCC60, 0xBF219D00,
-/**/ 0xEBAC2000, 0xBFC8E588,
-/**/ 0xAB2D1140, 0xBD3B7D5C,
-/**/ 0x00000000, 0x3FF36800,
-/**/ 0xE0747954, 0x3F38DF3D,
-/**/ 0xEB390000, 0xBFC8BEAF,
-/**/ 0xAAE92CD1, 0x3D073D54,
-/**/ 0x00000000, 0x3FF36400,
-/**/ 0xD9D3C49F, 0xBF14E775,
-/**/ 0xB17B2000, 0xBFC897E2,
-/**/ 0x380CBE9E, 0x3D296B37,
-/**/ 0x00000000, 0x3FF35C00,
-/**/ 0xF2AF821E, 0x3F3CE5F9,
-/**/ 0x3750E000, 0xBFC87121,
-/**/ 0x42F9AF75, 0xBD3328EB,
-/**/ 0x00000000, 0x3FF35800,
-/**/ 0xE34971F2, 0xBEE82DF0,
-/**/ 0x759F6000, 0xBFC84A6B,
-/**/ 0x2ADF8609, 0x3D3DA280,
-/**/ 0x00000000, 0x3FF35400,
-/**/ 0x4873ECAE, 0xBF3E304D,
-/**/ 0x6551A000, 0xBFC823C1,
-/**/ 0x9A631E83, 0xBD1E0DDB,
-/**/ 0x00000000, 0x3FF34C00,
-/**/ 0x1FF659DB, 0x3F1264B6,
-/**/ 0xFF59A000, 0xBFC7FD22,
-/**/ 0xF457B7D2, 0x3D158BEB,
-/**/ 0x00000000, 0x3FF34800,
-/**/ 0xFECB9865, 0xBF386531,
-/**/ 0x3CAF6000, 0xBFC7D690,
-/**/ 0x17C301D7, 0x3D24C06B,
-/**/ 0x00000000, 0x3FF34000,
-/**/ 0xEEDA65AE, 0x3F25A8C2,
-/**/ 0x16516000, 0xBFC7B009,
-/**/ 0xCB067E57, 0x3D3AE75F,
-/**/ 0x00000000, 0x3FF33C00,
-/**/ 0x8434E1F4, 0xBF31BA4A,
-/**/ 0x85444000, 0xBFC7898D,
-/**/ 0xE3DBAF3F, 0xBD38E67B,
-/**/ 0x00000000, 0x3FF33400,
-/**/ 0xDBFC660A, 0x3F31EE97,
-/**/ 0x82936000, 0xBFC7631D,
-/**/ 0xC7C5F3E1, 0x3D25E77D,
-/**/ 0x00000000, 0x3FF33000,
-/**/ 0xBC40BFDA, 0xBF246252,
-/**/ 0x074FE000, 0xBFC73CB9,
-/**/ 0x0D0005A6, 0x3D3D66A9,
-/**/ 0x00000000, 0x3FF32800,
-/**/ 0x13299E64, 0x3F39E640,
-/**/ 0x0C914000, 0xBFC71660,
-/**/ 0x7CEC3838, 0xBCE51B15,
-/**/ 0x00000000, 0x3FF32400,
-/**/ 0xEF40991F, 0xBEFCB5D4,
-/**/ 0x8B756000, 0xBFC6F012,
-/**/ 0x0D31EF0F, 0xBD357739,
-/**/ 0x00000000, 0x3FF32000,
-/**/ 0xC823D892, 0xBF3D4632,
-/**/ 0x7D204000, 0xBFC6C9D0,
-/**/ 0xFD9B2DCA, 0x3CDC73FA,
-/**/ 0x00000000, 0x3FF31800,
-/**/ 0x7AED804C, 0x3F1DD63A,
-/**/ 0xDABBE000, 0xBFC6A399,
-/**/ 0xE66A15A6, 0x3D38F934,
-/**/ 0x00000000, 0x3FF31400,
-/**/ 0xE8C11E1A, 0xBF339849,
-/**/ 0x9D786000, 0xBFC67D6E,
-/**/ 0x30A706D3, 0x3D311E88,
-/**/ 0x00000000, 0x3FF30C00,
-/**/ 0x0D190131, 0x3F319013,
-/**/ 0xBE8C2000, 0xBFC6574E,
-/**/ 0x34F0F462, 0x3D398C1D,
-/**/ 0x00000000, 0x3FF30800,
-/**/ 0xB47A7FDA, 0xBF222315,
-/**/ 0x37336000, 0xBFC6313A,
-/**/ 0x4F21EA6D, 0x3D144DF5,
-/**/ 0x00000000, 0x3FF30000,
-/**/ 0x40260390, 0x3F3C82AC,
-/**/ 0x00B0A000, 0xBFC60B31,
-/**/ 0xC988F814, 0x3D371456,
-/**/ 0x00000000, 0x3FF2FC00,
-/**/ 0xA2430A62, 0x3F026443,
-/**/ 0x144C2000, 0xBFC5E533,
-/**/ 0xF3B290EA, 0x3D31CE0B,
-/**/ 0x00000000, 0x3FF2F800,
-/**/ 0xED097B42, 0xBF37B425,
-/**/ 0x6B544000, 0xBFC5BF40,
-/**/ 0xEB68981C, 0x3D127023,
-/**/ 0x00000000, 0x3FF2F000,
-/**/ 0x4AE0553C, 0x3F2D00E3,
-/**/ 0xFF1D6000, 0xBFC59958,
-/**/ 0x9769CA05, 0x3D3A1D05,
-/**/ 0x00000000, 0x3FF2EC00,
-/**/ 0x25D69D44, 0xBF262BC0,
-/**/ 0xC9018000, 0xBFC5737C,
-/**/ 0xA6B887F6, 0xBD39BAA7,
-/**/ 0x00000000, 0x3FF2E400,
-/**/ 0xE3103D6B, 0x3F3B88B5,
-/**/ 0xC2610000, 0xBFC54DAB,
-/**/ 0xE5C8D0D8, 0xBD2746FE,
-/**/ 0x00000000, 0x3FF2E000,
-/**/ 0xC04B8097, 0x3F02E025,
-/**/ 0xE4A1C000, 0xBFC527E5,
-/**/ 0x8D4B411D, 0x3D34E60B,
-/**/ 0x00000000, 0x3FF2DC00,
-/**/ 0x2C305021, 0xBF369C22,
-/**/ 0x292F6000, 0xBFC5022B,
-/**/ 0xFF36A25B, 0xBD348A05,
-/**/ 0x00000000, 0x3FF2D400,
-/**/ 0xD50A012D, 0x3F30A012,
-/**/ 0x897BC000, 0xBFC4DC7B,
-/**/ 0x0AE1FF0F, 0xBD0C79B6,
-/**/ 0x00000000, 0x3FF2D000,
-/**/ 0xBC66484E, 0xBF1FBE29,
-/**/ 0xFEFE2000, 0xBFC4B6D6,
-/**/ 0xF56E7952, 0xBD1522EC,
-/**/ 0x00000000, 0x3FF2C800,
-/**/ 0x12C9FB4E, 0x3F3FB4D8,
-/**/ 0x8333C000, 0xBFC4913D,
-/**/ 0x558124C4, 0x3D353E43,
-/**/ 0x00000000, 0x3FF2C400,
-/**/ 0x7004B11E, 0x3F1E3432,
-/**/ 0x0F9F6000, 0xBFC46BAF,
-/**/ 0x0790841A, 0x3D1249CD,
-/**/ 0x00000000, 0x3FF2C000,
-/**/ 0x5C8EF02F, 0xBF30671A,
-/**/ 0x9DC9C000, 0xBFC4462B,
-/**/ 0xA711B062, 0x3D384858,
-/**/ 0x00000000, 0x3FF2B800,
-/**/ 0xD548D9AC, 0x3F37D835,
-/**/ 0x27410000, 0xBFC420B3,
-/**/ 0xC85A0884, 0x3D116282,
-/**/ 0x00000000, 0x3FF2B400,
-/**/ 0xAD012B40, 0x3ED2B404,
-/**/ 0xA5992000, 0xBFC3FB45,
-/**/ 0xC0CAE559, 0xBD319713,
-/**/ 0x00000000, 0x3FF2B000,
-/**/ 0x8E7302A1, 0xBF370F78,
-/**/ 0x126BC000, 0xBFC3D5E3,
-/**/ 0x85096C4B, 0xBD13FB2F,
-/**/ 0x00000000, 0x3FF2A800,
-/**/ 0x3C1053F9, 0x3F31C92F,
-/**/ 0x67580000, 0xBFC3B08B,
-/**/ 0xF29320FB, 0x3D3AADE8,
-/**/ 0x00000000, 0x3FF2A400,
-/**/ 0x3DBE2E04, 0xBF14AD94,
-/**/ 0x9E028000, 0xBFC38B3E,
-/**/ 0x545C17F9, 0x3D370EF0,
-/**/ 0x00000000, 0x3FF2A000,
-/**/ 0xBED61BED, 0xBF3BED61,
-/**/ 0xB015A000, 0xBFC365FC,
-/**/ 0xAFB9691B, 0x3D3FD3A0,
-/**/ 0x00000000, 0x3FF29800,
-/**/ 0x26F004A6, 0x3F2B061A,
-/**/ 0x97412000, 0xBFC340C5,
-/**/ 0xF7D9D386, 0x3D37A3DC,
-/**/ 0x00000000, 0x3FF29400,
-/**/ 0xFF6B646D, 0xBF21B488,
-/**/ 0x4D3A4000, 0xBFC31B99,
-/**/ 0xE3A50810, 0xBD3F098E,
-/**/ 0x00000000, 0x3FF29000,
-/**/ 0x2CA5D5AC, 0xBF3F0582,
-/**/ 0xCBBC0000, 0xBFC2F677,
-/**/ 0x2160F40D, 0xBD352B30,
-/**/ 0x00000000, 0x3FF28800,
-/**/ 0x16025116, 0x3F260251,
-/**/ 0x0C868000, 0xBFC2D161,
-/**/ 0xCB81B4A1, 0xBD039D6C,
-/**/ 0x00000000, 0x3FF28400,
-/**/ 0x502065D2, 0xBF258CDF,
-/**/ 0x095F6000, 0xBFC2AC55,
-/**/ 0xD0C6C8A8, 0x3D1D3466,
-/**/ 0x00000000, 0x3FF27C00,
-/**/ 0x1CE4D6F8, 0x3F3FA38A,
-/**/ 0xBC11A000, 0xBFC28753,
-/**/ 0x359302E6, 0xBD37494E,
-/**/ 0x00000000, 0x3FF27800,
-/**/ 0xDCCA0781, 0x3F247DD5,
-/**/ 0x1E6DE000, 0xBFC2625D,
-/**/ 0xF09E3D82, 0x3CF52962,
-/**/ 0x00000000, 0x3FF27400,
-/**/ 0xDB195E8F, 0xBF25E8EF,
-/**/ 0x2A49C000, 0xBFC23D71,
-/**/ 0x8FD3DF5C, 0xBD100D23,
-/**/ 0x00000000, 0x3FF27000,
-/**/ 0xFFB647FE, 0xBF3FF6C8,
-/**/ 0xD9808000, 0xBFC2188F,
-/**/ 0x7F50C701, 0x3D3B3A1E,
-/**/ 0x00000000, 0x3FF26800,
-/**/ 0xC024D167, 0x3F266F9A,
-/**/ 0x25F26000, 0xBFC1F3B9,
-/**/ 0x9B083633, 0x3D15F74E,
-/**/ 0x00000000, 0x3FF26400,
-/**/ 0xEABD0E14, 0xBF22D1BD,
-/**/ 0x09854000, 0xBFC1CEED,
-/**/ 0x39192AF9, 0x3D315C1C,
-/**/ 0x00000000, 0x3FF26000,
-/**/ 0xF6D0EEC8, 0xBF3DD8F7,
-/**/ 0x7E240000, 0xBFC1AA2B,
-/**/ 0xDDE3B366, 0x3D31AC38,
-/**/ 0x00000000, 0x3FF25800,
-/**/ 0x2A241EF6, 0x3F2BCEB1,
-/**/ 0x7DBEC000, 0xBFC18574,
-/**/ 0x45BD9B49, 0xBD3E6744,
-/**/ 0x00000000, 0x3FF25400,
-/**/ 0xA21378D7, 0xBF18A05B,
-/**/ 0x024B2000, 0xBFC160C8,
-/**/ 0xA9009E3D, 0xBD2EC2D2,
-/**/ 0x00000000, 0x3FF25000,
-/**/ 0xD6CFA90C, 0xBF3A076F,
-/**/ 0x05C3A000, 0xBFC13C26,
-/**/ 0xD94F6509, 0x3D2CF5FD,
-/**/ 0x00000000, 0x3FF24800,
-/**/ 0x92492492, 0x3F324924,
-/**/ 0x8227E000, 0xBFC1178E,
-/**/ 0xCE2D07F2, 0xBD21EF78,
-/**/ 0x00000000, 0x3FF24400,
-/**/ 0x6151E899, 0xBEF3682B,
-/**/ 0x717D0000, 0xBFC0F301,
-/**/ 0x41AE86C5, 0x3D3E09B4,
-/**/ 0x00000000, 0x3FF24000,
-/**/ 0x89FA4C67, 0xBF34868E,
-/**/ 0xCDCCC000, 0xBFC0CE7E,
-/**/ 0xABFF5447, 0xBD14652D,
-/**/ 0x00000000, 0x3FF23800,
-/**/ 0x6B11F09F, 0x3F3858D8,
-/**/ 0x91268000, 0xBFC0AA06,
-/**/ 0xD7032129, 0x3D345519,
-/**/ 0x00000000, 0x3FF23400,
-/**/ 0xAF37C049, 0x3F159E26,
-/**/ 0xB59E4000, 0xBFC08598,
-/**/ 0x7009902C, 0x3D27E5DD,
-/**/ 0x00000000, 0x3FF23000,
-/**/ 0x2E076329, 0xBF2AB546,
-/**/ 0x354D4000, 0xBFC06135,
-/**/ 0x28340EE9, 0xBD363046,
-/**/ 0x00000000, 0x3FF22C00,
-/**/ 0xFEDD5FEE, 0xBF3FEDD5,
-/**/ 0x0A51E000, 0xBFC03CDC,
-/**/ 0xF169FC5C, 0xBD381A9C,
-/**/ 0x00000000, 0x3FF22400,
-/**/ 0x009126D7, 0x3F2B5B92,
-/**/ 0x2ECF6000, 0xBFC0188D,
-/**/ 0x1CFF9DFE, 0xBD03F965,
-/**/ 0x00000000, 0x3FF22000,
-/**/ 0x8121FB78, 0xBF121FB7,
-/**/ 0x39DBC000, 0xBFBFE891,
-/**/ 0xD82F7A82, 0xBD356594,
-/**/ 0x00000000, 0x3FF21C00,
-/**/ 0x3A459635, 0xBF368F22,
-/**/ 0x9DB58000, 0xBFBFA01C,
-/**/ 0xFA48A730, 0x3D08F351,
-/**/ 0x00000000, 0x3FF21400,
-/**/ 0x855E6012, 0x3F379804,
-/**/ 0x7D900000, 0xBFBF57BC,
-/**/ 0x9EA8B04E, 0xBD176A6C,
-/**/ 0x00000000, 0x3FF21000,
-/**/ 0x78CD7A37, 0x3F17B57C,
-/**/ 0xCDD98000, 0xBFBF0F70,
-/**/ 0x6C272C1E, 0xBD32E31F,
-/**/ 0x00000000, 0x3FF20C00,
-/**/ 0x07E4EF15, 0xBF271E73,
-/**/ 0x830A0000, 0xBFBEC739,
-/**/ 0xA80CDD10, 0xBD311FCB,
-/**/ 0x00000000, 0x3FF20800,
-/**/ 0x49392BA7, 0xBF3CDDEC,
-/**/ 0x91A34000, 0xBFBE7F16,
-/**/ 0x9BC77BFA, 0x3D32C1C5,
-/**/ 0x00000000, 0x3FF20000,
-/**/ 0x12012012, 0x3F320120,
-/**/ 0xEE304000, 0xBFBE3707,
-/**/ 0xE6766ABD, 0xBD20F684,
-/**/ 0x00000000, 0x3FF1FC00,
-/**/ 0xCE8AD1A2, 0x3EF0DC4F,
-/**/ 0x8D468000, 0xBFBDEF0D,
-/**/ 0x412E9A74, 0x3D324750,
-/**/ 0x00000000, 0x3FF1F800,
-/**/ 0xDC11F704, 0xBF2F7047,
-/**/ 0x63844000, 0xBFBDA727,
-/**/ 0x1FA71733, 0xBD1A8940,
-/**/ 0x00000000, 0x3FF1F000,
-/**/ 0x16B6419D, 0x3F3FAF3F,
-/**/ 0x65920000, 0xBFBD5F55,
-/**/ 0xCC185469, 0xBD30E239,
-/**/ 0x00000000, 0x3FF1EC00,
-/**/ 0xF70985E2, 0x3F2E878F,
-/**/ 0x88218000, 0xBFBD1797,
-/**/ 0xB5EFBEED, 0xBD336433,
-/**/ 0x00000000, 0x3FF1E800,
-/**/ 0x94D7FDC3, 0xBEEF55E4,
-/**/ 0xBFEE0000, 0xBFBCCFED,
-/**/ 0x2FE71256, 0xBD33A823,
-/**/ 0x00000000, 0x3FF1E400,
-/**/ 0x0478BBCF, 0xBF310C4C,
-/**/ 0x01BC4000, 0xBFBC8858,
-/**/ 0xC65AACD3, 0xBD2646D1,
-/**/ 0x00000000, 0x3FF1DC00,
-/**/ 0xCB840C49, 0x3F3F0ECB,
-/**/ 0x425A4000, 0xBFBC40D6,
-/**/ 0x1D1930DD, 0xBD3CB112,
-/**/ 0x00000000, 0x3FF1D800,
-/**/ 0xC9579074, 0x3F2EACE5,
-/**/ 0x769FC000, 0xBFBBF968,
-/**/ 0x8D824283, 0xBD24218C,
-/**/ 0x00000000, 0x3FF1D400,
-/**/ 0xFC60F0AE, 0xBECABDFA,
-/**/ 0x936D8000, 0xBFBBB20E,
-/**/ 0x35459B8E, 0x3D368BA8,
-/**/ 0x00000000, 0x3FF1D000,
-/**/ 0xAFDC61F3, 0xBF2F2A4B,
-/**/ 0x8DAD4000, 0xBFBB6AC8,
-/**/ 0xF50225C7, 0xBD3B1BDF,
-/**/ 0x00000000, 0x3FF1CC00,
-/**/ 0xAB802394, 0xBF3EC8AF,
-/**/ 0x5A530000, 0xBFBB2396,
-/**/ 0xEA137079, 0x3CEFF64E,
-/**/ 0x00000000, 0x3FF1C400,
-/**/ 0xCE058D9B, 0x3F322FC1,
-/**/ 0xEE5B0000, 0xBFBADC77,
-/**/ 0x09C31904, 0x3D3573B2,
-/**/ 0x00000000, 0x3FF1C000,
-/**/ 0xE0EFA2CF, 0x3F0AA04F,
-/**/ 0x3ECAC000, 0xBFBA956D,
-/**/ 0x4C02C4AF, 0xBD3E6379,
-/**/ 0x00000000, 0x3FF1BC00,
-/**/ 0x225ADFDD, 0xBF26B7F7,
-/**/ 0x40B1C000, 0xBFBA4E76,
-/**/ 0xB94407C8, 0x3D0E42B6,
-/**/ 0x00000000, 0x3FF1B800,
-/**/ 0x217CD13A, 0xBF39E073,
-/**/ 0xE9278000, 0xBFBA0792,
-/**/ 0xC9AD51BF, 0x3D0A9CE6,
-/**/ 0x00000000, 0x3FF1B000,
-/**/ 0x2BAE2B21, 0x3F37C67F,
-/**/ 0x2D4D4000, 0xBFB9C0C3,
-/**/ 0x9E838668, 0x3D3AB7C0,
-/**/ 0x00000000, 0x3FF1AC00,
-/**/ 0xBD720DCF, 0x3F23316E,
-/**/ 0x024CC000, 0xBFB97A07,
-/**/ 0x732093CE, 0x3CF8BCC1,
-/**/ 0x00000000, 0x3FF1A800,
-/**/ 0x611A7B96, 0xBF11A7B9,
-/**/ 0x5D594000, 0xBFB9335E,
-/**/ 0x3ABD47DA, 0xBD23115C,
-/**/ 0x00000000, 0x3FF1A400,
-/**/ 0xA1C1B8E7, 0xBF324195,
-/**/ 0x33AEC000, 0xBFB8ECC9,
-/**/ 0xBE67F7AA, 0x3D222F39,
-/**/ 0x00000000, 0x3FF1A000,
-/**/ 0xFEE61FEE, 0xBF3FEE61,
-/**/ 0x7A91C000, 0xBFB8A647,
-/**/ 0xAF9BD6DF, 0xBD3C28C0,
-/**/ 0x00000000, 0x3FF19800,
-/**/ 0x362B721D, 0x3F328F89,
-/**/ 0x27508000, 0xBFB85FD9,
-/**/ 0x19970C1C, 0x3D35B818,
-/**/ 0x00000000, 0x3FF19400,
-/**/ 0x28A70119, 0x3F14E023,
-/**/ 0x2F410000, 0xBFB8197E,
-/**/ 0x60D20041, 0x3D3C0FE4,
-/**/ 0x00000000, 0x3FF19000,
-/**/ 0x3E48FC6F, 0xBF1FD419,
-/**/ 0x87C28000, 0xBFB7D336,
-/**/ 0x3E706706, 0xBD33C88C,
-/**/ 0x00000000, 0x3FF18C00,
-/**/ 0xFD42546B, 0xBF34F7C6,
-/**/ 0x263D8000, 0xBFB78D02,
-/**/ 0x94B69FB7, 0xBD069B57,
-/**/ 0x00000000, 0x3FF18400,
-/**/ 0x01185E30, 0x3F3E2FA4,
-/**/ 0x00228000, 0xBFB746E1,
-/**/ 0x6E1E21D2, 0x3D3126D1,
-/**/ 0x00000000, 0x3FF18000,
-/**/ 0x11811812, 0x3F318118,
-/**/ 0x0AEAC000, 0xBFB700D3,
-/**/ 0xA99DED32, 0xBCEC1E8D,
-/**/ 0x00000000, 0x3FF17C00,
-/**/ 0xFF2E2C43, 0x3F13F1CA,
-/**/ 0x3C188000, 0xBFB6BAD8,
-/**/ 0xC08926AE, 0xBD0DAF3C,
-/**/ 0x00000000, 0x3FF17800,
-/**/ 0x0A5EF9FF, 0xBF1D79B9,
-/**/ 0x89364000, 0xBFB674F0,
-/**/ 0x4C9D3302, 0xBD3A7999,
-/**/ 0x00000000, 0x3FF17400,
-/**/ 0x1ECEA765, 0xBF338FAD,
-/**/ 0xE7D78000, 0xBFB62F1B,
-/**/ 0x7ED63C4E, 0x3D217995,
-/**/ 0x00000000, 0x3FF17000,
-/**/ 0xD8C8714B, 0xBF3F976B,
-/**/ 0x4D978000, 0xBFB5E95A,
-/**/ 0xE1D17171, 0xBD31CB7C,
-/**/ 0x00000000, 0x3FF16800,
-/**/ 0xB08FA497, 0x3F348A33,
-/**/ 0xB01AC000, 0xBFB5A3AB,
-/**/ 0x9E6AFA18, 0xBD3E2574,
-/**/ 0x00000000, 0x3FF16400,
-/**/ 0x864022C9, 0x3F21AA1F,
-/**/ 0x050E0000, 0xBFB55E10,
-/**/ 0x0C53C72E, 0xBD0C1D74,
-/**/ 0x00000000, 0x3FF16000,
-/**/ 0xB487BCAD, 0xBF05B7C9,
-/**/ 0x42260000, 0xBFB51887,
-/**/ 0x96258B3E, 0xBD330A1D,
-/**/ 0x00000000, 0x3FF15C00,
-/**/ 0x5B1E5F75, 0xBF2C3411,
-/**/ 0x5D208000, 0xBFB4D311,
-/**/ 0x82F4E1EF, 0x3CF53A25,
-/**/ 0x00000000, 0x3FF15800,
-/**/ 0xEEA99544, 0xBF39543F,
-/**/ 0x4BC30000, 0xBFB48DAE,
-/**/ 0x208C200C, 0xBD30185B,
-/**/ 0x00000000, 0x3FF15000,
-/**/ 0xDD5C8CB8, 0x3F3B9A3F,
-/**/ 0x03DBC000, 0xBFB4485E,
-/**/ 0xE8D26AB7, 0xBD3FAD46,
-/**/ 0x00000000, 0x3FF14C00,
-/**/ 0xB19AE5C7, 0x3F30B155,
-/**/ 0x7B414000, 0xBFB40320,
-/**/ 0xAA8157C0, 0xBD26FD84,
-/**/ 0x00000000, 0x3FF14800,
-/**/ 0xB34EDA32, 0x3F17C382,
-/**/ 0xA7D20000, 0xBFB3BDF5,
-/**/ 0xAD125895, 0x3D319BD0,
-/**/ 0x00000000, 0x3FF14400,
-/**/ 0xBAF129D0, 0xBF129CFF,
-/**/ 0x7F748000, 0xBFB378DD,
-/**/ 0x28F1FACA, 0xBD371411,
-/**/ 0x00000000, 0x3FF14000,
-/**/ 0x771B7C7F, 0xBF2E2E59,
-/**/ 0xF8184000, 0xBFB333D7,
-/**/ 0xA81B8848, 0x3CE692B6,
-/**/ 0x00000000, 0x3FF13C00,
-/**/ 0x30FE1D9C, 0xBF395F06,
-/**/ 0x07B40000, 0xBFB2EEE5,
-/**/ 0xDD77C860, 0xBD08081E,
-/**/ 0x00000000, 0x3FF13400,
-/**/ 0x5C81135D, 0x3F3C8113,
-/**/ 0xA4470000, 0xBFB2AA04,
-/**/ 0xA8B1CB41, 0xBD37A48B,
-/**/ 0x00000000, 0x3FF13000,
-/**/ 0xBB3B5DC0, 0x3F3288FF,
-/**/ 0xC3D8C000, 0xBFB26536,
-/**/ 0x097C5BA3, 0xBD0B4BAC,
-/**/ 0x00000000, 0x3FF12C00,
-/**/ 0xB81577AE, 0x3F21713D,
-/**/ 0x5C784000, 0xBFB2207B,
-/**/ 0xFC10C7BF, 0xBD349D8C,
-/**/ 0x00000000, 0x3FF12800,
-/**/ 0xBAD6FC84, 0xBEEE05E5,
-/**/ 0x643D0000, 0xBFB1DBD2,
-/**/ 0xD977C494, 0xBD390B24,
-/**/ 0x00000000, 0x3FF12400,
-/**/ 0x59F992BF, 0xBF24E314,
-/**/ 0xD1464000, 0xBFB1973B,
-/**/ 0x54F930B3, 0xBD3566D1,
-/**/ 0x00000000, 0x3FF12000,
-/**/ 0xC9F6E7A8, 0xBF33CB91,
-/**/ 0x99BB4000, 0xBFB152B7,
-/**/ 0x07030829, 0x3D09BB29,
-/**/ 0x00000000, 0x3FF11C00,
-/**/ 0x8B7D9851, 0xBF3CFE65,
-/**/ 0xB3CB0000, 0xBFB10E45,
-/**/ 0x284A3465, 0x3D37CF69,
-/**/ 0x00000000, 0x3FF11400,
-/**/ 0x29605DF7, 0x3F39F5DB,
-/**/ 0x15AC4000, 0xBFB0C9E6,
-/**/ 0x0974D976, 0xBD2C2DA8,
-/**/ 0x00000000, 0x3FF11000,
-/**/ 0x11111111, 0x3F311111,
-/**/ 0xB59E4000, 0xBFB08598,
-/**/ 0x7009902C, 0x3D17E5DD,
-/**/ 0x00000000, 0x3FF10C00,
-/**/ 0x12A5B1AE, 0x3F20A63A,
-/**/ 0x89E74000, 0xBFB0415D,
-/**/ 0x5CF1D753, 0xBD1111C0,
-/**/ 0x00000000, 0x3FF10800,
-/**/ 0xBE011080, 0xBED107FB,
-/**/ 0x11AB8000, 0xBFAFFA69,
-/**/ 0x98381A8F, 0xBD23008C,
-/**/ 0x00000000, 0x3FF10400,
-/**/ 0x6FEABBAE, 0xBF216989,
-/**/ 0x51800000, 0xBFAF723B,
-/**/ 0xDD5610D3, 0x3D3D6EB0,
-/**/ 0x00000000, 0x3FF10000,
-/**/ 0x10FEF011, 0xBF30FEF0,
-/**/ 0xC0068000, 0xBFAEEA31,
-/**/ 0x3606D891, 0xBD3C3DD8,
-/**/ 0x00000000, 0x3FF0FC00,
-/**/ 0x98CDDC74, 0xBF3922C0,
-/**/ 0x4A0B8000, 0xBFAE624C,
-/**/ 0x74676689, 0x3D30F25C,
-/**/ 0x00000000, 0x3FF0F400,
-/**/ 0x325A1A80, 0x3F3EDFAB,
-/**/ 0xDC680000, 0xBFADDA8A,
-/**/ 0x64D9E42F, 0x3D21B1AC,
-/**/ 0x00000000, 0x3FF0F000,
-/**/ 0xF27F9A57, 0x3F370834,
-/**/ 0x64060000, 0xBFAD52ED,
-/**/ 0x2A29BBD6, 0x3D33C85D,
-/**/ 0x00000000, 0x3FF0EC00,
-/**/ 0xD391FBC5, 0x3F2EAD7C,
-/**/ 0xCDDD8000, 0xBFACCB73,
-/**/ 0x6E09F5FE, 0xBD3965C3,
-/**/ 0x00000000, 0x3FF0E800,
-/**/ 0xE9479870, 0x3F1F2CA5,
-/**/ 0x06F70000, 0xBFAC441E,
-/**/ 0x49850D15, 0xBD354F1F,
-/**/ 0x00000000, 0x3FF0E400,
-/**/ 0x80439019, 0x3ED95609,
-/**/ 0xFC690000, 0xBFABBCEB,
-/**/ 0x8C317C2A, 0x3D17BF86,
-/**/ 0x00000000, 0x3FF0E000,
-/**/ 0xC6867596, 0xBF1B6B4D,
-/**/ 0x9B588000, 0xBFAB35DD,
-/**/ 0xD6CF558E, 0xBD3D5674,
-/**/ 0x00000000, 0x3FF0DC00,
-/**/ 0x172D4CE8, 0xBF2BEAEE,
-/**/ 0xD0FB0000, 0xBFAAAEF2,
-/**/ 0x353BB42E, 0xBD20FC1A,
-/**/ 0x00000000, 0x3FF0D800,
-/**/ 0x479071A9, 0xBF34EAB0,
-/**/ 0x8A938000, 0xBFAA282B,
-/**/ 0x80EFC8E3, 0x3D2E8F59,
-/**/ 0x00000000, 0x3FF0D400,
-/**/ 0xA61C62D3, 0xBF3BBA9C,
-/**/ 0xB5740000, 0xBFA9A187,
-/**/ 0x4EC4D90D, 0x3D30C22E,
-/**/ 0x00000000, 0x3FF0CC00,
-/**/ 0x77344011, 0x3F3D9AA6,
-/**/ 0x3EFD8000, 0xBFA91B07,
-/**/ 0x3F76CA96, 0x3D19D7C5,
-/**/ 0x00000000, 0x3FF0C800,
-/**/ 0xCDA3AC11, 0x3F3714FB,
-/**/ 0x149F8000, 0xBFA894AA,
-/**/ 0x8BE97661, 0xBD39A19A,
-/**/ 0x00000000, 0x3FF0C400,
-/**/ 0x391F2E61, 0x3F30B446,
-/**/ 0x23D90000, 0xBFA80E70,
-/**/ 0x6F28BF45, 0x3D399DC1,
-/**/ 0x00000000, 0x3FF0C000,
-/**/ 0x682E11CD, 0x3F24F0D1,
-/**/ 0x5A358000, 0xBFA78859,
-/**/ 0x083B3A4C, 0x3D108B0D,
-/**/ 0x00000000, 0x3FF0BC00,
-/**/ 0x5D5A36EA, 0x3F118519,
-/**/ 0xA5510000, 0xBFA70265,
-/**/ 0x11FD5CE7, 0x3D2888DF,
-/**/ 0x00000000, 0x3FF0B800,
-/**/ 0x62386CAB, 0xBEF913DA,
-/**/ 0xF2D48000, 0xBFA67C94,
-/**/ 0x827CCA0C, 0xBD3DAC20,
-/**/ 0x00000000, 0x3FF0B400,
-/**/ 0xBD31D7D0, 0xBF1D7CFF,
-/**/ 0x30790000, 0xBFA5F6E7,
-/**/ 0x8012494C, 0x3D20485A,
-/**/ 0x00000000, 0x3FF0B000,
-/**/ 0x226951DC, 0xBF2A11BA,
-/**/ 0x4C040000, 0xBFA5715C,
-/**/ 0xDFC47628, 0x3D38888D,
-/**/ 0x00000000, 0x3FF0AC00,
-/**/ 0x7B2E9DD2, 0xBF328E31,
-/**/ 0x334A0000, 0xBFA4EBF4,
-/**/ 0xF73BE773, 0x3D2D9150,
-/**/ 0x00000000, 0x3FF0A800,
-/**/ 0x7EF597EF, 0xBF37EF59,
-/**/ 0xD42E0000, 0xBFA466AE,
-/**/ 0x75BDFD28, 0x3D2C1673,
-/**/ 0x00000000, 0x3FF0A400,
-/**/ 0x50D413C1, 0xBF3D2C71,
-/**/ 0x1CA08000, 0xBFA3E18C,
-/**/ 0x3F6E378E, 0xBD3748ED,
-/**/ 0x00000000, 0x3FF09C00,
-/**/ 0xF836010A, 0x3F3DBA6A,
-/**/ 0xFAA10000, 0xBFA35C8B,
-/**/ 0x5EF9EB35, 0xBD38357D,
-/**/ 0x00000000, 0x3FF09800,
-/**/ 0x624D4AF5, 0x3F38C51F,
-/**/ 0x5C3C8000, 0xBFA2D7AE,
-/**/ 0x459DA66D, 0x3D322939,
-/**/ 0x00000000, 0x3FF09400,
-/**/ 0x10953F39, 0x3F33F390,
-/**/ 0x2F8D0000, 0xBFA252F3,
-/**/ 0xE021B67B, 0xBD283E9A,
-/**/ 0x00000000, 0x3FF09000,
-/**/ 0x861539B9, 0x3F2E8B42,
-/**/ 0x62BC0000, 0xBFA1CE5A,
-/**/ 0x8D8DF999, 0xBD3A9CC7,
-/**/ 0x00000000, 0x3FF08C00,
-/**/ 0xACBC4021, 0x3F25766E,
-/**/ 0xE4008000, 0xBFA149E3,
-/**/ 0x9A4168FD, 0x3D32B98A,
-/**/ 0x00000000, 0x3FF08800,
-/**/ 0x0F3DBD5A, 0x3F1950DB,
-/**/ 0xA19E0000, 0xBFA0C58F,
-/**/ 0x58B17913, 0x3D0559D1,
-/**/ 0x00000000, 0x3FF08400,
-/**/ 0x08421084, 0x3F008421,
-/**/ 0x89E78000, 0xBFA0415D,
-/**/ 0xF461C516, 0x3D3DDDC7,
-/**/ 0x00000000, 0x3FF08000,
-/**/ 0x0041FF7C, 0xBF007FDF,
-/**/ 0x16780000, 0xBF9F7A9B,
-/**/ 0x271BE7D7, 0xBD242AD9,
-/**/ 0x00000000, 0x3FF07C00,
-/**/ 0xC54798FB, 0xBF183591,
-/**/ 0x28140000, 0xBF9E72BF,
-/**/ 0x49774D47, 0x3D28D751,
-/**/ 0x00000000, 0x3FF07800,
-/**/ 0x518F4EFD, 0xBF23CFA1,
-/**/ 0x25980000, 0xBF9D6B27,
-/**/ 0x50D1B838, 0x3D39FF7B,
-/**/ 0x00000000, 0x3FF07400,
-/**/ 0x01073261, 0xBF2B3EB7,
-/**/ 0xEC150000, 0xBF9C63D2,
-/**/ 0xE030A687, 0x3D35439C,
-/**/ 0x00000000, 0x3FF07000,
-/**/ 0xD6EAB025, 0xBF31341F,
-/**/ 0x58B70000, 0xBF9B5CC2,
-/**/ 0xB8AFBFE8, 0xBD18E611,
-/**/ 0x00000000, 0x3FF06C00,
-/**/ 0x6ED049E0, 0xBF34A638,
-/**/ 0x48C60000, 0xBF9A55F5,
-/**/ 0x9F2D03C9, 0x3D2DE070,
-/**/ 0x00000000, 0x3FF06800,
-/**/ 0xEF997F5C, 0xBF37F5BF,
-/**/ 0x99A20000, 0xBF994F6B,
-/**/ 0xF96CF7F5, 0xBD311D5E,
-/**/ 0x00000000, 0x3FF06400,
-/**/ 0xE5604189, 0xBF3B22D0,
-/**/ 0x28C90000, 0xBF984925,
-/**/ 0x325A0C34, 0x3D2AA0BA,
-/**/ 0x00000000, 0x3FF06000,
-/**/ 0xC1163FF0, 0xBF3E2D85,
-/**/ 0xD3D00000, 0xBF974321,
-/**/ 0x0FE94778, 0xBCFB4A69,
-/**/ 0x00000000, 0x3FF05800,
-/**/ 0x27586632, 0x3F3EEA07,
-/**/ 0x78690000, 0xBF963D61,
-/**/ 0x89596542, 0xBD07ABF3,
-/**/ 0x00000000, 0x3FF05400,
-/**/ 0x98E2A5E7, 0x3F3C23BB,
-/**/ 0xF45F0000, 0xBF9537E3,
-/**/ 0xD2D7F253, 0xBD2AB259,
-/**/ 0x00000000, 0x3FF05000,
-/**/ 0x73404146, 0x3F397F7D,
-/**/ 0x25980000, 0xBF9432A9,
-/**/ 0x928637FE, 0xBD098139,
-/**/ 0x00000000, 0x3FF04C00,
-/**/ 0xB0C7B49A, 0x3F36FD32,
-/**/ 0xEA130000, 0xBF932DB0,
-/**/ 0x130895FC, 0xBD2710CB,
-/**/ 0x00000000, 0x3FF04800,
-/**/ 0x664C578A, 0x3F349CC1,
-/**/ 0x1FEA0000, 0xBF9228FB,
-/**/ 0x284991FE, 0xBD2713E3,
-/**/ 0x00000000, 0x3FF04400,
-/**/ 0xC2FCB1F4, 0x3F325E0F,
-/**/ 0xA5500000, 0xBF912487,
-/**/ 0xFED4B393, 0xBD3FDBE5,
-/**/ 0x00000000, 0x3FF04000,
-/**/ 0x10410410, 0x3F304104,
-/**/ 0x58930000, 0xBF902056,
-/**/ 0x7C8E8417, 0xBD3611D2,
-/**/ 0x00000000, 0x3FF03C00,
-/**/ 0x6334030B, 0x3F2C8B09,
-/**/ 0x30340000, 0xBF8E38CE,
-/**/ 0xA3DA281A, 0x3D39DE88,
-/**/ 0x00000000, 0x3FF03800,
-/**/ 0x48FF7E3A, 0x3F28D6F0,
-/**/ 0x84C80000, 0xBF8C3173,
-/**/ 0xFCEFB9FE, 0x3D341F33,
-/**/ 0x00000000, 0x3FF03400,
-/**/ 0x0081A559, 0x3F25658A,
-/**/ 0x6C180000, 0xBF8A2A9C,
-/**/ 0x4D6D3472, 0x3D3F73BC,
-/**/ 0x00000000, 0x3FF03000,
-/**/ 0xEBC349DE, 0x3F2236A3,
-/**/ 0xA3880000, 0xBF882448,
-/**/ 0x12C584E0, 0xBD345544,
-/**/ 0x00000000, 0x3FF02C00,
-/**/ 0x3FEFD386, 0x3F1E9417,
-/**/ 0xE8B60000, 0xBF861E77,
-/**/ 0xEAF8EAF3, 0x3D38073E,
-/**/ 0x00000000, 0x3FF02800,
-/**/ 0xCA7A317C, 0x3F193F1D,
-/**/ 0xF9680000, 0xBF841929,
-/**/ 0x55D01368, 0xBD1977C7,
-/**/ 0x00000000, 0x3FF02400,
-/**/ 0x6CB49652, 0x3F146DF7,
-/**/ 0x939E0000, 0xBF82145E,
-/**/ 0x38C4EA00, 0xBD3E3D12,
-/**/ 0x00000000, 0x3FF02000,
-/**/ 0x81020408, 0x3F102040,
-/**/ 0x75880000, 0xBF801015,
-/**/ 0x1998B506, 0xBD3BCE25,
-/**/ 0x00000000, 0x3FF01C00,
-/**/ 0x8C355D63, 0x3F08AB2B,
-/**/ 0xBB100000, 0xBF7C189C,
-/**/ 0x12588560, 0x3D3D8055,
-/**/ 0x00000000, 0x3FF01800,
-/**/ 0xBD1BA97E, 0x3F021B28,
-/**/ 0x14580000, 0xBF781212,
-/**/ 0x82973F27, 0xBD1AD503,
-/**/ 0x00000000, 0x3FF01400,
-/**/ 0x411155AB, 0x3EF91F67,
-/**/ 0x74780000, 0xBF740C8A,
-/**/ 0xDF070002, 0xBD1E3871,
-/**/ 0x00000000, 0x3FF01000,
-/**/ 0x10101010, 0x3EF01010,
-/**/ 0x59580000, 0xBF700805,
-/**/ 0xCB31C67B, 0xBD2166AF,
-/**/ 0x00000000, 0x3FF00C00,
-/**/ 0x279DB649, 0x3EE20D8A,
-/**/ 0x82880000, 0xBF680904,
-/**/ 0x96A70C0C, 0xBD285C06,
-/**/ 0x00000000, 0x3FF00800,
-/**/ 0x02010080, 0x3ED00804,
-/**/ 0x55D80000, 0xBF600401,
-/**/ 0xC7CC7089, 0x3D33BB10,
-/**/ 0x00000000, 0x3FF00400,
-/**/ 0x00401004, 0x3EB00401,
-/**/ 0x55600000, 0xBF500200,
-/**/ 0xCD5F35F8, 0xBD356224,
-/**/ 0x00000000, 0x3FF00000,
-/**/ 0x00000000, 0x00000000,
-/**/ 0x00000000, 0x00000000,
-/**/ 0x00000000, 0x00000000,
-/**/ 0x00000000, 0x3FEFF800,
-/**/ 0xFF801FF8, 0x3EAFF801,
-/**/ 0xAA800000, 0x3F4FFC00,
-/**/ 0x7809A0A3, 0x3D35621F,
-/**/ 0x00000000, 0x3FEFF000,
-/**/ 0xFC01FF00, 0x3ECFF007,
-/**/ 0xA9B00000, 0x3F5FF802,
-/**/ 0x1D61C5EB, 0xBD33BC66,
-/**/ 0x00000000, 0x3FEFE800,
-/**/ 0x186DADBE, 0x3EE1F28A,
-/**/ 0x7D780000, 0x3F67F704,
-/**/ 0x89D68648, 0x3D283DA6,
-/**/ 0x00000000, 0x3FEFE000,
-/**/ 0xE01FE020, 0x3EEFE01F,
-/**/ 0xA2B00000, 0x3F6FF00A,
-/**/ 0xA086B56A, 0x3D20BC04,
-/**/ 0x00000000, 0x3FEFD800,
-/**/ 0xDF68BD14, 0x3EF8E0E6,
-/**/ 0x60F00000, 0x3F73F38A,
-/**/ 0x93C93749, 0x3D192256,
-/**/ 0x00000000, 0x3FEFD000,
-/**/ 0x439A981C, 0x3F01E528,
-/**/ 0xEBD80000, 0x3F77EE11,
-/**/ 0xC2D23A07, 0x3D0749D3,
-/**/ 0x00000000, 0x3FEFC800,
-/**/ 0x8596391C, 0x3F08556A,
-/**/ 0x70040000, 0x3F7BE79C,
-/**/ 0x9A6C0404, 0x3D38EC8F,
-/**/ 0x00000000, 0x3FEFC000,
-/**/ 0x01FC07F0, 0x3F0FC07F,
-/**/ 0x6B100000, 0x3F7FE02A,
-/**/ 0x0DDA40E4, 0x3D19E23F,
-/**/ 0x00000000, 0x3FEFB800,
-/**/ 0x9F5976B5, 0x3F1412D5,
-/**/ 0x2D1A0000, 0x3F81EBDE,
-/**/ 0xFF48DC36, 0xBD2A0683,
-/**/ 0x00000000, 0x3FEFB000,
-/**/ 0xBD271E34, 0x3F18C21A,
-/**/ 0x5D260000, 0x3F83E729,
-/**/ 0xFF29A114, 0xBD2609C1,
-/**/ 0x00000000, 0x3FEFA800,
-/**/ 0x5594A734, 0x3F1DEDB2,
-/**/ 0x03EC0000, 0x3F85E1F7,
-/**/ 0xF585DA1B, 0x3D37CA09,
-/**/ 0x00000000, 0x3FEFA000,
-/**/ 0x1FA11CAA, 0x3F21CAA0,
-/**/ 0x5F820000, 0x3F87DC47,
-/**/ 0x5B5DA1F5, 0xBD3EB124,
-/**/ 0x00000000, 0x3FEF9800,
-/**/ 0x55E8CB6B, 0x3F24DC34,
-/**/ 0xADC60000, 0x3F89D61A,
-/**/ 0x327B4257, 0x3D37B196,
-/**/ 0x00000000, 0x3FEF9000,
-/**/ 0x13BAF1B2, 0x3F282B68,
-/**/ 0x2C740000, 0x3F8BCF71,
-/**/ 0x97BD9771, 0x3D1C25E0,
-/**/ 0x00000000, 0x3FEF8800,
-/**/ 0xCC420861, 0x3F2BB80D,
-/**/ 0x19120000, 0x3F8DC84B,
-/**/ 0x1E3A5B30, 0x3D1C0A54,
-/**/ 0x00000000, 0x3FEF8000,
-/**/ 0x1F81F820, 0x3F2F81F8,
-/**/ 0xB0FC0000, 0x3F8FC0A8,
-/**/ 0xF6D3A69C, 0x3CDF1E7C,
-/**/ 0x00000000, 0x3FEF7800,
-/**/ 0xED1079FA, 0x3F31C47C,
-/**/ 0x18B00000, 0x3F90DC45,
-/**/ 0x380313FC, 0xBD29BC2F,
-/**/ 0x00000000, 0x3FEF7000,
-/**/ 0xFA98528D, 0x3F33E672,
-/**/ 0xEB9F0000, 0x3F91D7F7,
-/**/ 0x83FCC7A6, 0xBD14193A,
-/**/ 0x00000000, 0x3FEF6800,
-/**/ 0xCAFBD3D2, 0x3F3626C7,
-/**/ 0xEFB50000, 0x3F92D36C,
-/**/ 0x341706C3, 0x3D35F0BB,
-/**/ 0x00000000, 0x3FEF6000,
-/**/ 0x06DDABA6, 0x3F388565,
-/**/ 0x43470000, 0x3F93CEA4,
-/**/ 0x32D6A40B, 0xBD36A2C4,
-/**/ 0x00000000, 0x3FEF5800,
-/**/ 0x6CC4F5F5, 0x3F3B0234,
-/**/ 0x04900000, 0x3F94C99E,
-/**/ 0x5DF5F4A5, 0x3D1DECC6,
-/**/ 0x00000000, 0x3FEF5000,
-/**/ 0xD102728A, 0x3F3D9D1F,
-/**/ 0x51B90000, 0x3F95C45A,
-/**/ 0x216D87D8, 0xBD263BB6,
-/**/ 0x00000000, 0x3FEF5000,
-/**/ 0xE26A1DD4, 0xBF3FA9EE,
-/**/ 0x48D20000, 0x3F96BED9,
-/**/ 0x160A43F8, 0xBD320BC4,
-/**/ 0x00000000, 0x3FEF4800,
-/**/ 0xADEC7540, 0xBF3CD30D,
-/**/ 0x07D60000, 0x3F97B91B,
-/**/ 0xB602ACE4, 0xBD33B955,
-/**/ 0x00000000, 0x3FEF4000,
-/**/ 0x7C761DC6, 0xBF39DE52,
-/**/ 0xACAA0000, 0x3F98B31F,
-/**/ 0xA96E4964, 0xBD33FC78,
-/**/ 0x00000000, 0x3FEF3800,
-/**/ 0x23989FF0, 0xBF36CBD3,
-/**/ 0x551D0000, 0x3F99ACE7,
-/**/ 0x7EC7C410, 0xBD2D75D9,
-/**/ 0x00000000, 0x3FEF3000,
-/**/ 0x639F8B15, 0xBF339BA5,
-/**/ 0x1EE80000, 0x3F9AA672,
-/**/ 0x5C5AF494, 0x3D2AD4EB,
-/**/ 0x00000000, 0x3FEF2800,
-/**/ 0xE7AA579B, 0xBF304DDE,
-/**/ 0x27B00000, 0x3F9B9FC0,
-/**/ 0x0AE6922A, 0xBD3B9A01,
-/**/ 0x00000000, 0x3FEF2000,
-/**/ 0x8B8C46FD, 0xBF29C52A,
-/**/ 0x8D010000, 0x3F9C98D1,
-/**/ 0x0589DF0F, 0xBD2BF615,
-/**/ 0x00000000, 0x3FEF1800,
-/**/ 0xFE0E92B4, 0xBF22B3BB,
-/**/ 0x6C540000, 0x3F9D91A6,
-/**/ 0x658CFB9A, 0x3D2E61F1,
-/**/ 0x00000000, 0x3FEF1000,
-/**/ 0xFE8B488E, 0xBF16CF39,
-/**/ 0xE30D0000, 0x3F9E8A3E,
-/**/ 0x3DE53900, 0xBD21A9FA,
-/**/ 0x00000000, 0x3FEF0800,
-/**/ 0xF07C1F08, 0xBEFF07C1,
-/**/ 0x0E780000, 0x3F9F829B,
-/**/ 0x7C7E09E4, 0x3D298026,
-/**/ 0x00000000, 0x3FEF0000,
-/**/ 0x007C00F8, 0x3EFF003E,
-/**/ 0x85E70000, 0x3FA03D5D,
-/**/ 0x60ED29CF, 0x3D3F7789,
-/**/ 0x00000000, 0x3FEEF800,
-/**/ 0x3D759870, 0x3F17B671,
-/**/ 0x7C198000, 0x3FA0B94F,
-/**/ 0x6F022783, 0xBD2E8989,
-/**/ 0x00000000, 0x3FEEF000,
-/**/ 0x2A8BB96A, 0x3F241070,
-/**/ 0x78598000, 0x3FA13523,
-/**/ 0xB71FA59B, 0xBD1C1AC3,
-/**/ 0x00000000, 0x3FEEE800,
-/**/ 0x58E01EEA, 0x3F2C7F84,
-/**/ 0x89240000, 0x3FA1B0D9,
-/**/ 0x9AE889BB, 0xBD33401E,
-/**/ 0x00000000, 0x3FEEE000,
-/**/ 0xA3D491BC, 0x3F329425,
-/**/ 0xBCEA8000, 0x3FA22C71,
-/**/ 0xF87F888F, 0x3CFD2818,
-/**/ 0x00000000, 0x3FEED800,
-/**/ 0x9E9D2AE8, 0x3F37054D,
-/**/ 0x22150000, 0x3FA2A7EC,
-/**/ 0x7A9163FE, 0xBD278CE7,
-/**/ 0x00000000, 0x3FEED000,
-/**/ 0x540C85E6, 0x3F3B9325,
-/**/ 0xC7000000, 0x3FA32348,
-/**/ 0x90B1E49F, 0x3D2696DB,
-/**/ 0x00000000, 0x3FEED000,
-/**/ 0xF099FC26, 0xBF3FC267,
-/**/ 0xB9FE8000, 0x3FA39E87,
-/**/ 0x80AD9015, 0x3D3EAFD4,
-/**/ 0x00000000, 0x3FEEC800,
-/**/ 0xD02A4E5D, 0xBF3AFB6E,
-/**/ 0x09590000, 0x3FA419A9,
-/**/ 0x67D48EA7, 0x3D3B5CDC,
-/**/ 0x00000000, 0x3FEEC000,
-/**/ 0xD7A79FF1, 0xBF361803,
-/**/ 0xC34D8000, 0x3FA494AC,
-/**/ 0xA56FD247, 0x3D211C78,
-/**/ 0x00000000, 0x3FEEB800,
-/**/ 0x805C2197, 0xBF31183B,
-/**/ 0xF60F8000, 0x3FA50F92,
-/**/ 0x0A91FFE3, 0x3D296CFB,
-/**/ 0x00000000, 0x3FEEB000,
-/**/ 0x5FE15180, 0xBF27F854,
-/**/ 0xAFC90000, 0x3FA58A5B,
-/**/ 0x9570AD39, 0xBD2B2B73,
-/**/ 0x00000000, 0x3FEEA800,
-/**/ 0xE210C36A, 0xBF1B0F90,
-/**/ 0xFE990000, 0x3FA60506,
-/**/ 0x8194E036, 0xBD32BA40,
-/**/ 0x00000000, 0x3FEEA000,
-/**/ 0x8C33ADB2, 0xBEF6F7DD,
-/**/ 0xF0948000, 0x3FA67F94,
-/**/ 0x3E7E4ED7, 0x3D3ECC1F,
-/**/ 0x00000000, 0x3FEE9800,
-/**/ 0x1003D310, 0x3F1003D3,
-/**/ 0x93C78000, 0x3FA6FA05,
-/**/ 0x41D634A1, 0x3D3B415E,
-/**/ 0x00000000, 0x3FEE9000,
-/**/ 0x0B7672A0, 0x3F231ABF,
-/**/ 0xF6330000, 0x3FA77458,
-/**/ 0xE586AF09, 0xBD3181DC,
-/**/ 0x00000000, 0x3FEE8800,
-/**/ 0xCF172481, 0x3F2E6B5C,
-/**/ 0x25CD8000, 0x3FA7EE8F,
-/**/ 0x11A5C1E9, 0xBD3F4216,
-/**/ 0x00000000, 0x3FEE8000,
-/**/ 0x77A84876, 0x3F34F9CD,
-/**/ 0x30840000, 0x3FA868A8,
-/**/ 0x134AC693, 0xBD12623A,
-/**/ 0x00000000, 0x3FEE7800,
-/**/ 0xD7473427, 0x3F3AD9A8,
-/**/ 0x243A0000, 0x3FA8E2A4,
-/**/ 0x01426490, 0x3D2B9EEB,
-/**/ 0x00000000, 0x3FEE7800,
-/**/ 0x4578DCCA, 0xBF3F2AD3,
-/**/ 0x0EC90000, 0x3FA95C83,
-/**/ 0x97C5FEB8, 0xBD2C1482,
-/**/ 0x00000000, 0x3FEE7000,
-/**/ 0x97A6A035, 0xBF3913BA,
-/**/ 0xFDFF8000, 0x3FA9D644,
-/**/ 0x539A473B, 0x3D313C90,
-/**/ 0x00000000, 0x3FEE6800,
-/**/ 0xC594A915, 0xBF32E120,
-/**/ 0xFFA40000, 0x3FAA4FE9,
-/**/ 0xA0402925, 0xBD36E584,
-/**/ 0x00000000, 0x3FEE6000,
-/**/ 0xC5DF4232, 0xBF292632,
-/**/ 0x21710000, 0x3FAAC972,
-/**/ 0xF013222C, 0x3D2F8D3E,
-/**/ 0x00000000, 0x3FEE5800,
-/**/ 0xC3518A6E, 0xBF18A6DF,
-/**/ 0x71198000, 0x3FAB42DD,
-/**/ 0xE5D6704C, 0xBD1C827A,
-/**/ 0x00000000, 0x3FEE5000,
-/**/ 0x86833271, 0x3ED6BC08,
-/**/ 0xFC450000, 0x3FABBC2B,
-/**/ 0x91417DAF, 0xBD17D186,
-/**/ 0x00000000, 0x3FEE4800,
-/**/ 0xE672838D, 0x3F1BEB2D,
-/**/ 0xD0920000, 0x3FAC355D,
-/**/ 0x9ABF8388, 0x3D2F2CCC,
-/**/ 0x00000000, 0x3FEE4000,
-/**/ 0x9785150A, 0x3F2B6B8D,
-/**/ 0xFB960000, 0x3FACAE72,
-/**/ 0x2025B1BE, 0xBD3EFABF,
-/**/ 0x00000000, 0x3FEE3800,
-/**/ 0xE0D399FA, 0x3F348BCE,
-/**/ 0x8ADB0000, 0x3FAD276B,
-/**/ 0xC78A64B0, 0x3D16A423,
-/**/ 0x00000000, 0x3FEE3000,
-/**/ 0x933AC00F, 0x3F3B7CD0,
-/**/ 0x8BE38000, 0x3FADA047,
-/**/ 0xB1F6FE05, 0x3D2252C7,
-/**/ 0x00000000, 0x3FEE3000,
-/**/ 0x308F5281, 0xBF3D7747,
-/**/ 0x0C278000, 0x3FAE1907,
-/**/ 0x64629E86, 0xBD2FEA46,
-/**/ 0x00000000, 0x3FEE2800,
-/**/ 0x6C196F66, 0xBF36508B,
-/**/ 0x19150000, 0x3FAE91AA,
-/**/ 0x1DCC6A76, 0xBD0E82A0,
-/**/ 0x00000000, 0x3FEE2000,
-/**/ 0x1E1E1E1E, 0xBF2E1E1E,
-/**/ 0xC0118000, 0x3FAF0A30,
-/**/ 0x83368E91, 0xBD2D599E,
-/**/ 0x00000000, 0x3FEE1800,
-/**/ 0xDD355CDB, 0xBF1ECB93,
-/**/ 0x0E780000, 0x3FAF829B,
-/**/ 0x7C7E09E4, 0x3D398026,
-/**/ 0x00000000, 0x3FEE1000,
-/**/ 0x7C01E100, 0xBECE0FF8,
-/**/ 0x119B8000, 0x3FAFFAE9,
-/**/ 0x4262C554, 0x3D230337,
-/**/ 0x00000000, 0x3FEE0800,
-/**/ 0x25C73724, 0x3F1D54B5,
-/**/ 0x6B624000, 0x3FB0398D,
-/**/ 0xFCBFCD00, 0xBD3AB14D,
-/**/ 0x00000000, 0x3FEE0000,
-/**/ 0x1E01E01E, 0x3F2E01E0,
-/**/ 0x35990000, 0x3FB07598,
-/**/ 0xE4B59987, 0xBD3B8ECF,
-/**/ 0x00000000, 0x3FEDF800,
-/**/ 0xC84194BA, 0x3F36C715,
-/**/ 0xEE0D0000, 0x3FB0B194,
-/**/ 0x4F69EDCC, 0x3D3666EA,
-/**/ 0x00000000, 0x3FEDF000,
-/**/ 0xEF26D838, 0x3F3EA78B,
-/**/ 0x9B554000, 0x3FB0ED83,
-/**/ 0x6D48ABB4, 0xBD3901F4,
-/**/ 0x00000000, 0x3FEDF000,
-/**/ 0xF10995DC, 0xBF395DBF,
-/**/ 0x44030000, 0x3FB12964,
-/**/ 0x751AA773, 0xBD3D53BB,
-/**/ 0x00000000, 0x3FEDE800,
-/**/ 0x3BCBADC8, 0xBF3148E0,
-/**/ 0xEEA38000, 0x3FB16536,
-/**/ 0x768FA309, 0xBD147C5E,
-/**/ 0x00000000, 0x3FEDE000,
-/**/ 0x86E25CE1, 0xBF2233CE,
-/**/ 0xA1BF8000, 0x3FB1A0FB,
-/**/ 0xC319D6DC, 0x3D24A3FC,
-/**/ 0x00000000, 0x3FEDD800,
-/**/ 0x26B3FE23, 0xBEEA1CE9,
-/**/ 0x63DB0000, 0x3FB1DCB2,
-/**/ 0x5E9E8981, 0x3D39444F,
-/**/ 0x00000000, 0x3FEDD000,
-/**/ 0x0AB71710, 0x3F1E4836,
-/**/ 0x3B75C000, 0x3FB2185B,
-/**/ 0xF8F32304, 0xBD3E3189,
-/**/ 0x00000000, 0x3FEDC800,
-/**/ 0x00EE500F, 0x3F300EE5,
-/**/ 0x2F0A0000, 0x3FB253F6,
-/**/ 0xFB69A701, 0x3D3416F8,
-/**/ 0x00000000, 0x3FEDC000,
-/**/ 0x231C226A, 0x3F38A58D,
-/**/ 0x450EC000, 0x3FB28F83,
-/**/ 0xAA119769, 0x3D3A8D75,
-/**/ 0x00000000, 0x3FEDC000,
-/**/ 0x14715D63, 0xBF3EAA0C,
-/**/ 0x83F5C000, 0x3FB2CB02,
-/**/ 0xCA657021, 0x3D3E1EE2,
-/**/ 0x00000000, 0x3FEDB800,
-/**/ 0x92AEFFC5, 0xBF35DFF8,
-/**/ 0xF22C8000, 0x3FB30673,
-/**/ 0x9DCF0BA5, 0x3D24C9E2,
-/**/ 0x00000000, 0x3FEDB000,
-/**/ 0x67E251A0, 0xBF29F894,
-/**/ 0x961BC000, 0x3FB341D7,
-/**/ 0x99837610, 0x3D31D092,
-/**/ 0x00000000, 0x3FEDA800,
-/**/ 0x1FF89620, 0xBF0FF896,
-/**/ 0x76284000, 0x3FB37D2D,
-/**/ 0x9B7FF15C, 0xBD2C60AA,
-/**/ 0x00000000, 0x3FEDA000,
-/**/ 0x076828BD, 0x3F145E70,
-/**/ 0x98B1C000, 0x3FB3B875,
-/**/ 0x94ACA313, 0xBD222415,
-/**/ 0x00000000, 0x3FED9800,
-/**/ 0xE567D573, 0x3F2C8F60,
-/**/ 0x04140000, 0x3FB3F3B0,
-/**/ 0xACDFCEC5, 0x3CEE2474,
-/**/ 0x00000000, 0x3FED9000,
-/**/ 0xF3FC4DA2, 0x3F379118,
-/**/ 0xBEA64000, 0x3FB42EDC,
-/**/ 0xEA7C9ACD, 0x3D1BC0EE,
-/**/ 0x00000000, 0x3FED9000,
-/**/ 0x049DE4C3, 0xBF3F0C3C,
-/**/ 0xCEBB4000, 0x3FB469FB,
-/**/ 0x4F257194, 0x3D3B663C,
-/**/ 0x00000000, 0x3FED8800,
-/**/ 0xF13D5906, 0xBF35905F,
-/**/ 0x3AA1C000, 0x3FB4A50D,
-/**/ 0x308973E2, 0xBD2F7FE1,
-/**/ 0x00000000, 0x3FED8000,
-/**/ 0x77D1EA57, 0xBF27F6C8,
-/**/ 0x08A34000, 0x3FB4E011,
-/**/ 0xDF2C5AE5, 0x3D3AE5CF,
-/**/ 0x00000000, 0x3FED7800,
-/**/ 0xF4F31BA0, 0xBF026AD1,
-/**/ 0x3F060000, 0x3FB51B07,
-/**/ 0x278E686A, 0x3D383F69,
-/**/ 0x00000000, 0x3FED7000,
-/**/ 0xF26DF1BD, 0x3F1DE6B2,
-/**/ 0xE40B4000, 0x3FB555EF,
-/**/ 0x8C868E23, 0x3D30B497,
-/**/ 0x00000000, 0x3FED6800,
-/**/ 0x7BA23D96, 0x3F31599F,
-/**/ 0xFDF00000, 0x3FB590CA,
-/**/ 0x5722ABAA, 0x3D3C284F,
-/**/ 0x00000000, 0x3FED6000,
-/**/ 0xD425A760, 0x3F3B526C,
-/**/ 0x92ED4000, 0x3FB5CB98,
-/**/ 0xA64FC52F, 0x3D17BE44,
-/**/ 0x00000000, 0x3FED6000,
-/**/ 0x546A6FF1, 0xBF3A9BFC,
-/**/ 0xA9374000, 0x3FB60658,
-/**/ 0xDEE9C4F8, 0x3D30C3B1,
-/**/ 0x00000000, 0x3FED5800,
-/**/ 0x08F02FAC, 0xBF3071AD,
-/**/ 0x46FE8000, 0x3FB6410B,
-/**/ 0x3CBD8D14, 0xBD153F8F,
-/**/ 0x00000000, 0x3FED5000,
-/**/ 0x12C6C142, 0xBF18BAD9,
-/**/ 0x726EC000, 0x3FB67BB0,
-/**/ 0x69EF5912, 0x3CEF724B,
-/**/ 0x00000000, 0x3FED4800,
-/**/ 0x3254A5A2, 0x3F10B35C,
-/**/ 0x31B00000, 0x3FB6B648,
-/**/ 0x1377DE92, 0xBD3BF30A,
-/**/ 0x00000000, 0x3FED4000,
-/**/ 0x1D41D41D, 0x3F2D41D4,
-/**/ 0x8AE58000, 0x3FB6F0D2,
-/**/ 0x1B664613, 0xBD34B464,
-/**/ 0x00000000, 0x3FED3800,
-/**/ 0xF494E548, 0x3F392D71,
-/**/ 0x842EC000, 0x3FB72B4F,
-/**/ 0xC00C9DD3, 0xBD3704CC,
-/**/ 0x00000000, 0x3FED3800,
-/**/ 0xFF165C2E, 0xBF3C2DA1,
-/**/ 0x23A6C000, 0x3FB765BF,
-/**/ 0x35C4256A, 0xBCFECBC0,
-/**/ 0x00000000, 0x3FED3000,
-/**/ 0x7AA49674, 0xBF317062,
-/**/ 0x6F648000, 0x3FB7A021,
-/**/ 0xA18418FF, 0x3D3E124C,
-/**/ 0x00000000, 0x3FED2800,
-/**/ 0x749CB290, 0xBF1A6B80,
-/**/ 0x6D7B0000, 0x3FB7DA76,
-/**/ 0x4480C89B, 0x3D32CC84,
-/**/ 0x00000000, 0x3FED2000,
-/**/ 0x25C6336D, 0x3F114B52,
-/**/ 0x23F8C000, 0x3FB814BE,
-/**/ 0xDA82FDFD, 0x3CCB2381,
-/**/ 0x00000000, 0x3FED1800,
-/**/ 0xF08A3B1D, 0x3F2EB155,
-/**/ 0x98E84000, 0x3FB84EF8,
-/**/ 0x246977C9, 0xBD37D5CD,
-/**/ 0x00000000, 0x3FED1000,
-/**/ 0xBD71CD93, 0x3F3A7692,
-/**/ 0xD24FC000, 0x3FB88925,
-/**/ 0x44FBB806, 0xBD31D505,
-/**/ 0x00000000, 0x3FED1000,
-/**/ 0x89FC5E69, 0xBF3A5384,
-/**/ 0xD6318000, 0x3FB8C345,
-/**/ 0xACB42A66, 0x3D3B20F5,
-/**/ 0x00000000, 0x3FED0800,
-/**/ 0x6439240E, 0xBF2E0B56,
-/**/ 0xAA8C4000, 0x3FB8FD58,
-/**/ 0x1BCB725B, 0xBD3EEC90,
-/**/ 0x00000000, 0x3FED0000,
-/**/ 0x01CFF8C0, 0xBF0CFF8C,
-/**/ 0x55594000, 0x3FB9375E,
-/**/ 0x7380C364, 0x3D3EDDC3,
-/**/ 0x00000000, 0x3FECF800,
-/**/ 0x546D8D78, 0x3F1F7661,
-/**/ 0xDC8F8000, 0x3FB97156,
-/**/ 0x9AFDB97B, 0xBD3C1FC1,
-/**/ 0x00000000, 0x3FECF000,
-/**/ 0x25FE30D9, 0x3F3372E2,
-/**/ 0x46204000, 0x3FB9AB42,
-/**/ 0x26787061, 0xBD28A648,
-/**/ 0x00000000, 0x3FECE800,
-/**/ 0xD92305A6, 0x3F3F1FDB,
-/**/ 0x97F9C000, 0x3FB9E520,
-/**/ 0xB52DD050, 0x3D235FAC,
-/**/ 0x00000000, 0x3FECE800,
-/**/ 0x9C37FC63, 0xBF351B8A,
-/**/ 0xD8060000, 0x3FBA1EF1,
-/**/ 0x6DF97BCB, 0x3D3CD417,
-/**/ 0x00000000, 0x3FECE000,
-/**/ 0x6CB725AB, 0xBF227EC2,
-/**/ 0x0C2B4000, 0x3FBA58B6,
-/**/ 0x5C5C9F2A, 0xBD3CDC73,
-/**/ 0x00000000, 0x3FECD800,
-/**/ 0xE6C2B448, 0x3F05A240,
-/**/ 0x3A4AC000, 0x3FBA926D,
-/**/ 0x0BD22A9C, 0x3D356365,
-/**/ 0x00000000, 0x3FECD000,
-/**/ 0xFBB8D9F3, 0x3F2D7EC2,
-/**/ 0x68434000, 0x3FBACC17,
-/**/ 0xA0B7FA4C, 0xBD2AA783,
-/**/ 0x00000000, 0x3FECC800,
-/**/ 0x1B71D3E9, 0x3F3AE1DB,
-/**/ 0x9BEE4000, 0x3FBB05B4,
-/**/ 0x18F84A5E, 0x3D0FF22C,
-/**/ 0x00000000, 0x3FECC800,
-/**/ 0xCD6DE82D, 0xBF38E45A,
-/**/ 0xDB220000, 0x3FBB3F44,
-/**/ 0xD8DE09AF, 0x3D3FD153,
-/**/ 0x00000000, 0x3FECC000,
-/**/ 0xE341926A, 0xBF29269F,
-/**/ 0x2BB10000, 0x3FBB78C8,
-/**/ 0xBC3987E7, 0xBD325EF7,
-/**/ 0x00000000, 0x3FECB800,
-/**/ 0xF620C1DA, 0xBEC589FB,
-/**/ 0x93690000, 0x3FBBB23E,
-/**/ 0x3559DB8B, 0xBD368B18,
-/**/ 0x00000000, 0x3FECB000,
-/**/ 0x0DE5FF1A, 0x3F28A893,
-/**/ 0x18148000, 0x3FBBEBA8,
-/**/ 0xB6DF1F57, 0xBD389B78,
-/**/ 0x00000000, 0x3FECA800,
-/**/ 0x0039563B, 0x3F38EAB9,
-/**/ 0xBF79C000, 0x3FBC2504,
-/**/ 0xD0EF4ADC, 0x3D3717C4,
-/**/ 0x00000000, 0x3FECA800,
-/**/ 0x08F377F2, 0xBF3A67D5,
-/**/ 0x8F5BC000, 0x3FBC5E54,
-/**/ 0x585FBE06, 0x3D1D0C57,
-/**/ 0x00000000, 0x3FECA000,
-/**/ 0x072792E4, 0xBF2B46E0,
-/**/ 0x8D790000, 0x3FBC9797,
-/**/ 0x977D1884, 0xBD36E010,
-/**/ 0x00000000, 0x3FEC9800,
-/**/ 0x1BB327C3, 0xBEE904EA,
-/**/ 0xBF8C0000, 0x3FBCD0CD,
-/**/ 0xB50DD743, 0x3D33E14D,
-/**/ 0x00000000, 0x3FEC9000,
-/**/ 0x77683AEC, 0x3F2853EB,
-/**/ 0x2B4C4000, 0x3FBD09F7,
-/**/ 0x00354E33, 0x3D2048C0,
-/**/ 0x00000000, 0x3FEC8800,
-/**/ 0xDC52100E, 0x3F3932D7,
-/**/ 0xD66CC000, 0x3FBD4313,
-/**/ 0x79135713, 0xBD294543,
-/**/ 0x00000000, 0x3FEC8800,
-/**/ 0x2736962B, 0xBF39AD90,
-/**/ 0xC69CC000, 0x3FBD7C23,
-/**/ 0xDD328771, 0xBD297EE4,
-/**/ 0x00000000, 0x3FEC8000,
-/**/ 0xF316B4C2, 0xBF28EEA2,
-/**/ 0x0187C000, 0x3FBDB527,
-/**/ 0x56AE181F, 0x3D392778,
-/**/ 0x00000000, 0x3FEC7800,
-/**/ 0x058F7536, 0x3EEAB099,
-/**/ 0x8CD60000, 0x3FBDEE1D,
-/**/ 0x729EFF89, 0xBD328DA0,
-/**/ 0x00000000, 0x3FEC7000,
-/**/ 0x1C71C71C, 0x3F2C71C7,
-/**/ 0x6E2B0000, 0x3FBE2707,
-/**/ 0x2AF0003C, 0xBD2A342C,
-/**/ 0x00000000, 0x3FEC6800,
-/**/ 0xD6422A30, 0x3F3BB2BB,
-/**/ 0xAB274000, 0x3FBE5FE4,
-/**/ 0xF74FFE4D, 0xBD35FAE9,
-/**/ 0x00000000, 0x3FEC6800,
-/**/ 0x54BDE47E, 0xBF36BD01,
-/**/ 0x49670000, 0x3FBE98B5,
-/**/ 0x89C50E97, 0x3D346774,
-/**/ 0x00000000, 0x3FEC6000,
-/**/ 0xB5157FE4, 0xBF222CC5,
-/**/ 0x4E838000, 0x3FBED179,
-/**/ 0x749D0484, 0xBD1FD143,
-/**/ 0x00000000, 0x3FEC5800,
-/**/ 0xA930B840, 0x3F129A21,
-/**/ 0xC0118000, 0x3FBF0A30,
-/**/ 0x83368E91, 0xBD3D599E,
-/**/ 0x00000000, 0x3FEC5000,
-/**/ 0xAC5CEE14, 0x3F3279B1,
-/**/ 0xA3A24000, 0x3FBF42DB,
-/**/ 0x32DF6C0D, 0xBD3312B7,
-/**/ 0x00000000, 0x3FEC5000,
-/**/ 0xD4AB8D0B, 0xBF3F9CF5,
-/**/ 0xFEC38000, 0x3FBF7B79,
-/**/ 0xE897ED01, 0xBD010987,
-/**/ 0x00000000, 0x3FEC4800,
-/**/ 0xCC17DAE4, 0xBF319D7C,
-/**/ 0xD6FF4000, 0x3FBFB40B,
-/**/ 0xB7B53B5B, 0x3D2C0BEC,
-/**/ 0x00000000, 0x3FEC4000,
-/**/ 0x01C3F8F0, 0xBF0C3F8F,
-/**/ 0x31DC0000, 0x3FBFEC91,
-/**/ 0xD1AE6607, 0xBD354555,
-/**/ 0x00000000, 0x3FEC3800,
-/**/ 0xAB1B8FFC, 0x3F254738,
-/**/ 0x0A6E0000, 0x3FC01285,
-/**/ 0x4805BF94, 0xBD1A8619,
-/**/ 0x00000000, 0x3FEC3000,
-/**/ 0x48B3C5D7, 0x3F38E51F,
-/**/ 0x42BF4000, 0x3FC02EBB,
-/**/ 0x5CE00E5D, 0xBD15A8FA,
-/**/ 0x00000000, 0x3FEC3000,
-/**/ 0x867E595E, 0xBF38C377,
-/**/ 0x449F6000, 0x3FC04AEB,
-/**/ 0x65CCD35C, 0x3D2AFA90,
-/**/ 0x00000000, 0x3FEC2800,
-/**/ 0x15FE3D95, 0xBF24AC6D,
-/**/ 0x12CA6000, 0x3FC06715,
-/**/ 0x9CDC0A3D, 0xBD2A4757,
-/**/ 0x00000000, 0x3FEC2000,
-/**/ 0x53B8CDAE, 0x3F10B34F,
-/**/ 0xAFFA2000, 0x3FC08338,
-/**/ 0xAC823E27, 0x3D30533C,
-/**/ 0x00000000, 0x3FEC1800,
-/**/ 0x3FABB0F6, 0x3F32C599,
-/**/ 0x1EE72000, 0x3FC09F56,
-/**/ 0x7157D1A8, 0xBD28F305,
-/**/ 0x00000000, 0x3FEC1800,
-/**/ 0x97CD1B6C, 0xBF3E8BF4,
-/**/ 0x6247A000, 0x3FC0BB6D,
-/**/ 0x3CCD04B3, 0x3D35464F,
-/**/ 0x00000000, 0x3FEC1000,
-/**/ 0xE3F1F8FC, 0xBF2F8FC7,
-/**/ 0x7CD08000, 0x3FC0D77E,
-/**/ 0x2EE2F482, 0x3D3CB2CD,
-/**/ 0x00000000, 0x3FEC0800,
-/**/ 0x5B199F35, 0xBEEDC860,
-/**/ 0x7134C000, 0x3FC0F389,
-/**/ 0xE893D6C6, 0xBD3DA359,
-/**/ 0x00000000, 0x3FEC0000,
-/**/ 0x1C01C01C, 0x3F2C01C0,
-/**/ 0x42254000, 0x3FC10F8E,
-/**/ 0x43396307, 0xBD293B38,
-/**/ 0x00000000, 0x3FEBF800,
-/**/ 0x256228AA, 0x3F3D0577,
-/**/ 0xF2518000, 0x3FC12B8C,
-/**/ 0x13C0A0FC, 0x3D348A4A,
-/**/ 0x00000000, 0x3FEBF800,
-/**/ 0xCB93A8A1, 0xBF33E08B,
-/**/ 0x84674000, 0x3FC14785,
-/**/ 0x1027C750, 0x3D156345,
-/**/ 0x00000000, 0x3FEBF000,
-/**/ 0x1DE63F4A, 0xBF12C4DB,
-/**/ 0xFB124000, 0x3FC16377,
-/**/ 0xBF41763E, 0x3D091E1A,
-/**/ 0x00000000, 0x3FEBE800,
-/**/ 0x769F9E4F, 0x3F2526D0,
-/**/ 0x58FCA000, 0x3FC17F64,
-/**/ 0xD093C8DC, 0x3D2843FA,
-/**/ 0x00000000, 0x3FEBE000,
-/**/ 0x5292D891, 0x3F39ED43,
-/**/ 0xA0CEE000, 0x3FC19B4A,
-/**/ 0x9621338B, 0xBD3D8824,
-/**/ 0x00000000, 0x3FEBE000,
-/**/ 0x5FC845A9, 0xBF36A3B3,
-/**/ 0xD52F6000, 0x3FC1B72A,
-/**/ 0x1811A396, 0x3D2E80A4,
-/**/ 0x00000000, 0x3FEBD800,
-/**/ 0xB7230491, 0xBF1C7E26,
-/**/ 0xF8C36000, 0x3FC1D304,
-/**/ 0xDF451042, 0xBD3A6D44,
-/**/ 0x00000000, 0x3FEBD000,
-/**/ 0x451B61CB, 0x3F20F365,
-/**/ 0x0E2DC000, 0x3FC1EED9,
-/**/ 0x7097648F, 0x3D161563,
-/**/ 0x00000000, 0x3FEBC800,
-/**/ 0xD72DD0AA, 0x3F3827F3,
-/**/ 0x18102000, 0x3FC20AA7,
-/**/ 0x348552FE, 0x3D3F2C94,
-/**/ 0x00000000, 0x3FEBC800,
-/**/ 0xBE0C262F, 0xBF3814D3,
-/**/ 0x190A6000, 0x3FC2266F,
-/**/ 0xB840E7F6, 0xBD24D20A,
-/**/ 0x00000000, 0x3FEBC000,
-/**/ 0x7ECECB53, 0xBF207963,
-/**/ 0x13BA6000, 0x3FC24231,
-/**/ 0x78EE9D9C, 0xBD3E3A00,
-/**/ 0x00000000, 0x3FEBB800,
-/**/ 0xF29268D3, 0x3F1EC130,
-/**/ 0x0ABC6000, 0x3FC25DED,
-/**/ 0x4F176449, 0x3D35A385,
-/**/ 0x00000000, 0x3FEBB000,
-/**/ 0xAB6353BF, 0x3F37B218,
-/**/ 0x00AB4000, 0x3FC279A3,
-/**/ 0xB3235108, 0x3D3EF432,
-/**/ 0x00000000, 0x3FEBB000,
-/**/ 0xF2298376, 0xBF383759,
-/**/ 0xF8200000, 0x3FC29552,
-/**/ 0xF4471DFC, 0xBD35B967,
-/**/ 0x00000000, 0x3FEBA800,
-/**/ 0x1EAD4253, 0xBF201832,
-/**/ 0xF3B1A000, 0x3FC2B0FC,
-/**/ 0xE30A59EA, 0x3D177CA3,
-/**/ 0x00000000, 0x3FEBA000,
-/**/ 0xD84886B1, 0x3F20679B,
-/**/ 0xF5F60000, 0x3FC2CCA0,
-/**/ 0x91AFF120, 0xBD3B5EF1,
-/**/ 0x00000000, 0x3FEB9800,
-/**/ 0xA41FEB4C, 0x3F38884D,
-/**/ 0x0180E000, 0x3FC2E83F,
-/**/ 0xC284E1CE, 0xBD3F0C2A,
-/**/ 0x00000000, 0x3FEB9800,
-/**/ 0x3806E548, 0xBF370EA7,
-/**/ 0x18E48000, 0x3FC303D7,
-/**/ 0xCE3ECB05, 0xBCD680B5,
-/**/ 0x00000000, 0x3FEB9000,
-/**/ 0xB5EF34C0, 0xBF1A4477,
-/**/ 0x3EB1A000, 0x3FC31F69,
-/**/ 0xE5A396FB, 0xBD2A6726,
-/**/ 0x00000000, 0x3FEB8800,
-/**/ 0x9401B894, 0x3F2401B8,
-/**/ 0x75770000, 0x3FC33AF5,
-/**/ 0xA2FE72A5, 0x3D3C9ECC,
-/**/ 0x00000000, 0x3FEB8000,
-/**/ 0x400DC1AA, 0x3F3AA73A,
-/**/ 0xBFC22000, 0x3FC3567B,
-/**/ 0x53991A1F, 0x3D3250D2,
-/**/ 0x00000000, 0x3FEB8000,
-/**/ 0x2E63A6A8, 0xBF349E11,
-/**/ 0x201E8000, 0x3FC371FC,
-/**/ 0x9B2D8ABC, 0x3D3EE877,
-/**/ 0x00000000, 0x3FEB7800,
-/**/ 0xC8DA04B9, 0xBF0E7898,
-/**/ 0x99164000, 0x3FC38D76,
-/**/ 0x9E39BB70, 0x3D1844A5,
-/**/ 0x00000000, 0x3FEB7000,
-/**/ 0xE6B33E2D, 0x3F2A284E,
-/**/ 0x2D31A000, 0x3FC3A8EB,
-/**/ 0x7D5D503E, 0x3D1BAFB7,
-/**/ 0x00000000, 0x3FEB6800,
-/**/ 0x759C2BB4, 0x3F3E0B91,
-/**/ 0xDEF76000, 0x3FC3C459,
-/**/ 0xF6B70D33, 0x3D3EDC86,
-/**/ 0x00000000, 0x3FEB6800,
-/**/ 0x088FD6E7, 0xBF30E8E2,
-/**/ 0xB0ECC000, 0x3FC3DFC2,
-/**/ 0x62B8C13F, 0x3D28A72A,
-/**/ 0x00000000, 0x3FEB6000,
-/**/ 0xD801B600, 0x3ECB6006,
-/**/ 0xA5952000, 0x3FC3FB25,
-/**/ 0x6B358FF7, 0x3D3195BE,
-/**/ 0x00000000, 0x3FEB5800,
-/**/ 0xD840F62C, 0x3F316A6A,
-/**/ 0xBF728000, 0x3FC41682,
-/**/ 0x081F849D, 0xBD210047,
-/**/ 0x00000000, 0x3FEB5800,
-/**/ 0x7DF8BD99, 0xBF3D4DEE,
-/**/ 0x01050000, 0x3FC431DA,
-/**/ 0x836E0391, 0x3D304837,
-/**/ 0x00000000, 0x3FEB5000,
-/**/ 0x7E4B17E5, 0xBF27E4B1,
-/**/ 0x6CCB8000, 0x3FC44D2B,
-/**/ 0x6135783C, 0xBD170CC1,
-/**/ 0x00000000, 0x3FEB4800,
-/**/ 0x55E6D8FE, 0x3F15F47D,
-/**/ 0x05430000, 0x3FC46877,
-/**/ 0xF8D5087E, 0xBD3D8145,
-/**/ 0x00000000, 0x3FEB4000,
-/**/ 0x0B803686, 0x3F37006D,
-/**/ 0xCCE6E000, 0x3FC483BC,
-/**/ 0x723F6369, 0x3D1EEA52,
-/**/ 0x00000000, 0x3FEB4000,
-/**/ 0x46A66920, 0xBF37687C,
-/**/ 0xC6314000, 0x3FC49EFC,
-/**/ 0x9F55572B, 0xBD090F59,
-/**/ 0x00000000, 0x3FEB3800,
-/**/ 0xFF2645BE, 0xBF16F6A4,
-/**/ 0xF39A6000, 0x3FC4BA36,
-/**/ 0xB3F219E5, 0xBD34354B,
-/**/ 0x00000000, 0x3FEB3000,
-/**/ 0x1801B318, 0x3F2801B3,
-/**/ 0x5798E000, 0x3FC4D56B,
-/**/ 0x15A96555, 0x3D380580,
-/**/ 0x00000000, 0x3FEB2800,
-/**/ 0x93511680, 0x3F3DD2FF,
-/**/ 0xF4A24000, 0x3FC4F099,
-/**/ 0xFAFEAF27, 0xBD3E9BF2,
-/**/ 0x00000000, 0x3FEB2800,
-/**/ 0xA89DCCAC, 0xBF304743,
-/**/ 0xCD29C000, 0x3FC50BC2,
-/**/ 0x28DB8D4F, 0x3D1ADA57,
-/**/ 0x00000000, 0x3FEB2000,
-/**/ 0x406C80D9, 0x3EFB2036,
-/**/ 0xE3A1C000, 0x3FC526E5,
-/**/ 0x37FC5238, 0xBD3790BA,
-/**/ 0x00000000, 0x3FEB1800,
-/**/ 0x4F9DC00E, 0x3F33BEC8,
-/**/ 0x3A7A8000, 0x3FC54203,
-/**/ 0xED855F0E, 0x3D268D68,
-/**/ 0x00000000, 0x3FEB1800,
-/**/ 0x44F8CE7E, 0xBF3A2101,
-/**/ 0xD4232000, 0x3FC55D1A,
-/**/ 0xDDA647E8, 0x3D3ADD94,
-/**/ 0x00000000, 0x3FEB1000,
-/**/ 0xB99AF3F3, 0xBF1FB596,
-/**/ 0xB3092000, 0x3FC5782C,
-/**/ 0x51794442, 0xBD33A463,
-/**/ 0x00000000, 0x3FEB0800,
-/**/ 0x922A3E85, 0x3F24B31D,
-/**/ 0xD9982000, 0x3FC59338,
-/**/ 0xB7555D4A, 0x3CF0BA68,
-/**/ 0x00000000, 0x3FEB0000,
-/**/ 0xE19BF6B7, 0x3F3CB3CF,
-/**/ 0x4A3AA000, 0x3FC5AE3F,
-/**/ 0xF012A8B9, 0x3D21EA25,
-/**/ 0x00000000, 0x3FEB0000,
-/**/ 0x9A5BF0D1, 0xBF30DEAE,
-/**/ 0x07598000, 0x3FC5C940,
-/**/ 0x8CD23322, 0xBD3A8D94,
-/**/ 0x00000000, 0x3FEAF800,
-/**/ 0x9EDE13CE, 0x3EFA2072,
-/**/ 0x135BE000, 0x3FC5E43B,
-/**/ 0xCEED9C31, 0xBD343AB4,
-/**/ 0x00000000, 0x3FEAF000,
-/**/ 0x0D79435E, 0x3F3435E5,
-/**/ 0x70A7A000, 0x3FC5FF30,
-/**/ 0x183BEBF2, 0xBD38586F,
-/**/ 0x00000000, 0x3FEAF000,
-/**/ 0x06855D30, 0xBF392321,
-/**/ 0x21A0E000, 0x3FC61A20,
-/**/ 0x1BDF3CDD, 0x3D3DD9DD,
-/**/ 0x00000000, 0x3FEAE800,
-/**/ 0x7ABED811, 0xBF19A45C,
-/**/ 0x28AAA000, 0x3FC6350A,
-/**/ 0xAB8163AF, 0x3D2D5EC0,
-/**/ 0x00000000, 0x3FEAE000,
-/**/ 0x84EF68CB, 0x3F28C7ED,
-/**/ 0x88260000, 0x3FC64FEE,
-/**/ 0x759DDED6, 0xBD1DA40D,
-/**/ 0x00000000, 0x3FEAD800,
-/**/ 0xA482F00D, 0x3F3F43FC,
-/**/ 0x4272A000, 0x3FC66ACD,
-/**/ 0xBFC6C785, 0x3D3AA1BD,
-/**/ 0x00000000, 0x3FEAD800,
-/**/ 0xCDE3E7AE, 0xBF2B9222,
-/**/ 0x59EF0000, 0x3FC685A6,
-/**/ 0x6C103214, 0xBD21F2A9,
-/**/ 0x00000000, 0x3FEAD000,
-/**/ 0xEED254A3, 0x3F14F302,
-/**/ 0xD0F7A000, 0x3FC6A079,
-/**/ 0x448D14F5, 0x3D35A3F8,
-/**/ 0x00000000, 0x3FEAC800,
-/**/ 0x32071DEF, 0x3F385567,
-/**/ 0xA9E80000, 0x3FC6BB47,
-/**/ 0x23EA3296, 0x3D19F64D,
-/**/ 0x00000000, 0x3FEAC800,
-/**/ 0xD47F29D4, 0xBF347F29,
-/**/ 0xE719E000, 0x3FC6D60F,
-/**/ 0x57134767, 0xBD3BC6E5,
-/**/ 0x00000000, 0x3FEAC000,
-/**/ 0xE82D23BC, 0xBEF40FE1,
-/**/ 0x8AE56000, 0x3FC6F0D2,
-/**/ 0xC93373DA, 0x3D369737,
-/**/ 0x00000000, 0x3FEAB800,
-/**/ 0x972D8538, 0x3F320FDE,
-/**/ 0x97A1A000, 0x3FC70B8F,
-/**/ 0xF6A95BEF, 0x3D34EA64,
-/**/ 0x00000000, 0x3FEAB800,
-/**/ 0x66711513, 0xBF3A8C9F,
-/**/ 0x0FA40000, 0x3FC72647,
-/**/ 0x0E743A45, 0xBD3774DF,
-/**/ 0x00000000, 0x3FEAB000,
-/**/ 0x02806ABC, 0xBF1C5A0F,
-/**/ 0xF5404000, 0x3FC740F8,
-/**/ 0x99018AA1, 0xBD30B66C,
-/**/ 0x00000000, 0x3FEAA800,
-/**/ 0xD22C937A, 0x3F28E44B,
-/**/ 0x4AC8E000, 0x3FC75BA5,
-/**/ 0x8BC4A7C0, 0x3D3DDCA5,
-/**/ 0x00000000, 0x3FEAA800,
-/**/ 0xFF2ADFF3, 0xBF3FF2AD,
-/**/ 0x128F2000, 0x3FC7764C,
-/**/ 0x3479E3D1, 0x3D027490,
-/**/ 0x00000000, 0x3FEAA000,
-/**/ 0x0B3ADA5C, 0xBF288A16,
-/**/ 0x4EE26000, 0x3FC790ED,
-/**/ 0x4E7746F6, 0x3D199BBD,
-/**/ 0x00000000, 0x3FEA9800,
-/**/ 0x4C77B035, 0x3F1DEC0D,
-/**/ 0x0210E000, 0x3FC7AB89,
-/**/ 0x72534A58, 0xBD2BDB90,
-/**/ 0x00000000, 0x3FEA9000,
-/**/ 0x91F59E6B, 0x3F3B4D71,
-/**/ 0x2E674000, 0x3FC7C61F,
-/**/ 0xB31BE8E0, 0xBD32392D,
-/**/ 0x00000000, 0x3FEA9000,
-/**/ 0xB8A2A522, 0xBF30CDCB,
-/**/ 0xD630C000, 0x3FC7E0AF,
-/**/ 0x1D8F1034, 0x3D139E7C,
-/**/ 0x00000000, 0x3FEA8800,
-/**/ 0x6A2194A0, 0x3F094A00,
-/**/ 0xFBB76000, 0x3FC7FB3A,
-/**/ 0x24609D57, 0xBD37DBF5,
-/**/ 0x00000000, 0x3FEA8000,
-/**/ 0x870AC52E, 0x3F373289,
-/**/ 0xA1436000, 0x3FC815C0,
-/**/ 0xF9201CE8, 0xBD302A52,
-/**/ 0x00000000, 0x3FEA8000,
-/**/ 0x9E8684DD, 0xBF34B1FA,
-/**/ 0xC91BC000, 0x3FC83040,
-/**/ 0xC6E66F32, 0x3D3E5B71,
-/**/ 0x00000000, 0x3FEA7800,
-/**/ 0xA9267648, 0xBEE08AF5,
-/**/ 0x75866000, 0x3FC84ABB,
-/**/ 0xDF4E2BD2, 0xBD3D8DAA,
-/**/ 0x00000000, 0x3FEA7000,
-/**/ 0x1A3D927E, 0x3F33BB67,
-/**/ 0xA8C70000, 0x3FC86530,
-/**/ 0xCB4EA3E3, 0x3D398BB0,
-/**/ 0x00000000, 0x3FEA7000,
-/**/ 0x7F2C97F3, 0xBF37F2C9,
-/**/ 0x6520C000, 0x3FC87FA0,
-/**/ 0x401202FC, 0x3D322120,
-/**/ 0x00000000, 0x3FEA6800,
-/**/ 0x3C076D20, 0xBF0C77A5,
-/**/ 0xACD4E000, 0x3FC89A0A,
-/**/ 0xDA8F5A72, 0x3D2C0BFB,
-/**/ 0x00000000, 0x3FEA6000,
-/**/ 0x7C7EF82B, 0x3F30E6DA,
-/**/ 0x82236000, 0x3FC8B46F,
-/**/ 0x102DD7C9, 0x3D12D9F2,
-/**/ 0x00000000, 0x3FEA6000,
-/**/ 0x2EC05C44, 0xBF3A9167,
-/**/ 0xE74AE000, 0x3FC8CECE,
-/**/ 0xAA429BB5, 0xBD3A5BA0,
-/**/ 0x00000000, 0x3FEA5800,
-/**/ 0xEEB6BD53, 0xBF17DF12,
-/**/ 0xDE886000, 0x3FC8E928,
-/**/ 0xB13D72D5, 0x3D3A8154,
-/**/ 0x00000000, 0x3FEA5000,
-/**/ 0x98C70AE6, 0x3F2D676D,
-/**/ 0x6A180000, 0x3FC9037D,
-/**/ 0x57C1C8D9, 0x3D230DEA,
-/**/ 0x00000000, 0x3FEA5000,
-/**/ 0x96CE4780, 0xBF3C8EFF,
-/**/ 0x8C340000, 0x3FC91DCC,
-/**/ 0xBDDEFF46, 0x3D37BC6A,
-/**/ 0x00000000, 0x3FEA4800,
-/**/ 0x71EFFCB7, 0xBF1EFFCB,
-/**/ 0x4715A000, 0x3FC93816,
-/**/ 0x6A3A39D9, 0xBD34C63D,
-/**/ 0x00000000, 0x3FEA4000,
-/**/ 0x1A41A41A, 0x3F2A41A4,
-/**/ 0x9CF46000, 0x3FC9525A,
-/**/ 0x7D9F158F, 0xBD329713,
-/**/ 0x00000000, 0x3FEA4000,
-/**/ 0xBF3B3C0E, 0xBF3DECBB,
-/**/ 0x9006A000, 0x3FC96C99,
-/**/ 0x9CBB452C, 0x3D2A88D5,
-/**/ 0x00000000, 0x3FEA3800,
-/**/ 0x3BCD35A8, 0xBF21D14E,
-/**/ 0x22818000, 0x3FC986D3,
-/**/ 0x4DD44000, 0x3CF93B56,
-/**/ 0x00000000, 0x3FEA3000,
-/**/ 0x3B5832C0, 0x3F285A0A,
-/**/ 0x56988000, 0x3FC9A107,
-/**/ 0x242CD098, 0x3D264AA6,
-/**/ 0x00000000, 0x3FEA3000,
-/**/ 0xD71AFD8C, 0xBF3EABC1,
-/**/ 0x2E7E0000, 0x3FC9BB36,
-/**/ 0xA1CE0FFC, 0xBD21F2A8,
-/**/ 0x00000000, 0x3FEA2800,
-/**/ 0x7C041611, 0xBF22E60D,
-/**/ 0xAC62E000, 0x3FC9D55F,
-/**/ 0xFC3B5BC3, 0xBD3F4669,
-/**/ 0x00000000, 0x3FEA2000,
-/**/ 0x5FF2EF43, 0x3F27AE57,
-/**/ 0xD276A000, 0x3FC9EF83,
-/**/ 0xB3F9CE00, 0xBD2730B7,
-/**/ 0x00000000, 0x3FEA2000,
-/**/ 0x3D66322E, 0xBF3ECD35,
-/**/ 0xA2E7A000, 0x3FCA09A2,
-/**/ 0xCD411233, 0xBD2DD99D,
-/**/ 0x00000000, 0x3FEA1800,
-/**/ 0x5B4FE5E9, 0xBF22C068,
-/**/ 0x1FE2C000, 0x3FCA23BC,
-/**/ 0x91DC9F0B, 0xBD3539CD,
-/**/ 0x00000000, 0x3FEA1000,
-/**/ 0x80B67A9A, 0x3F283C48,
-/**/ 0x4B938000, 0x3FCA3DD0,
-/**/ 0x366E2C5A, 0x3D297DA1,
-/**/ 0x00000000, 0x3FEA1000,
-/**/ 0x89907BBA, 0xBF3E5236,
-/**/ 0x28244000, 0x3FCA57DF,
-/**/ 0xCA1D9ABB, 0x3D3B99C8,
-/**/ 0x00000000, 0x3FEA0800,
-/**/ 0x32054967, 0xBF21629E,
-/**/ 0xB7BE0000, 0x3FCA71E8,
-/**/ 0x6EF05323, 0xBD210ACA,
-/**/ 0x00000000, 0x3FEA0000,
-/**/ 0x1A01A01A, 0x3F2A01A0,
-/**/ 0xFC882000, 0x3FCA8BEC,
-/**/ 0xCF21B9CF, 0x3D3E3185,
-/**/ 0x00000000, 0x3FEA0000,
-/**/ 0x93FF301D, 0xBF3D3BE3,
-/**/ 0xF8A94000, 0x3FCAA5EB,
-/**/ 0x36951A8F, 0xBD32A0A9,
-/**/ 0x00000000, 0x3FE9F800,
-/**/ 0xBFE608ED, 0xBF1D9DD1,
-/**/ 0xAE462000, 0x3FCABFE5,
-/**/ 0x395F139D, 0xBD3B68F5,
-/**/ 0x00000000, 0x3FE9F000,
-/**/ 0x1B29257F, 0x3F2CFC26,
-/**/ 0x1F828000, 0x3FCAD9DA,
-/**/ 0xC803F050, 0xBD3882B7,
-/**/ 0x00000000, 0x3FE9F000,
-/**/ 0x7E613717, 0xBF3B8B57,
-/**/ 0x4E80C000, 0x3FCAF3C9,
-/**/ 0x3FCD9066, 0xBCBA4E63,
-/**/ 0x00000000, 0x3FE9E800,
-/**/ 0xB9FABD04, 0xBF160EF9,
-/**/ 0x3D620000, 0x3FCB0DB3,
-/**/ 0x38EAB906, 0x3D3FEE14,
-/**/ 0x00000000, 0x3FE9E000,
-/**/ 0xEAF850E2, 0x3F3094D3,
-/**/ 0xEE464000, 0x3FCB2797,
-/**/ 0x906D00A9, 0xBD3BE88A,
-/**/ 0x00000000, 0x3FE9E000,
-/**/ 0xBBE88FDC, 0xBF3941AA,
-/**/ 0x634BA000, 0x3FCB4177,
-/**/ 0x5666069F, 0x3D355D01,
-/**/ 0x00000000, 0x3FE9D800,
-/**/ 0x25F4B1AA, 0xBF083A25,
-/**/ 0x9E8FC000, 0x3FCB5B51,
-/**/ 0xEC011F31, 0xBD34B722,
-/**/ 0x00000000, 0x3FE9D000,
-/**/ 0xF71FAC14, 0x3F3343FB,
-/**/ 0xA22E4000, 0x3FCB7526,
-/**/ 0x2E785490, 0x3D2C0DBF,
-/**/ 0x00000000, 0x3FE9D000,
-/**/ 0x1965FF32, 0xBF365FF3,
-/**/ 0x70420000, 0x3FCB8EF6,
-/**/ 0x321788E0, 0x3D387533,
-/**/ 0x00000000, 0x3FE9C800,
-/**/ 0x9C8019C8, 0x3EA9C801,
-/**/ 0x0AE46000, 0x3FCBA8C1,
-/**/ 0x9EEE9D85, 0x3D3A32E2,
-/**/ 0x00000000, 0x3FE9C000,
-/**/ 0x25080CE1, 0x3F368A77,
-/**/ 0x742D8000, 0x3FCBC286,
-/**/ 0xF39D121C, 0x3D39AC53,
-/**/ 0x00000000, 0x3FE9C000,
-/**/ 0xC54763F2, 0xBF32E743,
-/**/ 0xAE344000, 0x3FCBDC46,
-/**/ 0x023D6505, 0x3D3625B4,
-/**/ 0x00000000, 0x3FE9B800,
-/**/ 0x8B7424F9, 0x3F0DBD49,
-/**/ 0xBB0E4000, 0x3FCBF601,
-/**/ 0x47C378B5, 0x3D2386A9,
-/**/ 0x00000000, 0x3FE9B000,
-/**/ 0x00CD9A67, 0x3F3A6734,
-/**/ 0x9CCFE000, 0x3FCC0FB7,
-/**/ 0x99E8A558, 0xBD346FFF,
-/**/ 0x00000000, 0x3FE9B000,
-/**/ 0xAEF25B7C, 0xBF2DB15A,
-/**/ 0x558C2000, 0x3FCC2968,
-/**/ 0xDEE38A40, 0xBD2CFD73,
-/**/ 0x00000000, 0x3FE9A800,
-/**/ 0xC140C073, 0x3F1FDFEC,
-/**/ 0xE754E000, 0x3FCC4313,
-/**/ 0x74CAD7D6, 0x3D3279BE,
-/**/ 0x00000000, 0x3FE9A000,
-/**/ 0xA7DCBEB3, 0x3F3ED923,
-/**/ 0x543AE000, 0x3FCC5CBA,
-/**/ 0xECB454FC, 0x3D20929D,
-/**/ 0x00000000, 0x3FE9A000,
-/**/ 0xB256DE2C, 0xBF246A7B,
-/**/ 0x9E4D6000, 0x3FCC765B,
-/**/ 0x36976F6C, 0x3D31AB6B,
-/**/ 0x00000000, 0x3FE99800,
-/**/ 0x9999999A, 0x3F299999,
-/**/ 0xC79AA000, 0x3FCC8FF7,
-/**/ 0x689F8434, 0xBD27794F,
-/**/ 0x00000000, 0x3FE99800,
-/**/ 0x3EC03FF3, 0xBF3C20C6,
-/**/ 0xD22F6000, 0x3FCCA98E,
-/**/ 0x8CA209C8, 0xBCF698C1,
-/**/ 0x00000000, 0x3FE99000,
-/**/ 0x31EC07FD, 0xBF13F803,
-/**/ 0xC0176000, 0x3FCCC320,
-/**/ 0x9A653794, 0x3D240903,
-/**/ 0x00000000, 0x3FE98800,
-/**/ 0x5AC98715, 0x3F323513,
-/**/ 0x935D2000, 0x3FCCDCAD,
-/**/ 0x34C9A447, 0xBD0A0FF0,
-/**/ 0x00000000, 0x3FE98800,
-/**/ 0x89F80661, 0xBF368793,
-/**/ 0x4E09C000, 0x3FCCF635,
-/**/ 0x9A07D55B, 0x3D277123,
-/**/ 0x00000000, 0x3FE98000,
-/**/ 0x8019801A, 0x3EE98019,
-/**/ 0xF2256000, 0x3FCD0FB7,
-/**/ 0x20633B29, 0xBD0AF52B,
-/**/ 0x00000000, 0x3FE97800,
-/**/ 0xAB329020, 0x3F382FC6,
-/**/ 0x81B6C000, 0x3FCD2935,
-/**/ 0x128AAA5F, 0xBD383270,
-/**/ 0x00000000, 0x3FE97800,
-/**/ 0x962DBFF3, 0xBF305C4B,
-/**/ 0xFEC36000, 0x3FCD42AD,
-/**/ 0xFD804272, 0xBD175C00,
-/**/ 0x00000000, 0x3FE97000,
-/**/ 0x970E4F81, 0x3F1C9F01,
-/**/ 0x6B4FC000, 0x3FCD5C21,
-/**/ 0xBBCA681B, 0xBD21BA91,
-/**/ 0x00000000, 0x3FE96800,
-/**/ 0x049160B8, 0x3F3EBBE1,
-/**/ 0xC95F0000, 0x3FCD758F,
-/**/ 0x8B4162AA, 0xBD15A10A,
-/**/ 0x00000000, 0x3FE96800,
-/**/ 0x9933FE6A, 0xBF233FE6,
-/**/ 0x1AF32000, 0x3FCD8EF9,
-/**/ 0xC364C784, 0xBD15105F,
-/**/ 0x00000000, 0x3FE96000,
-/**/ 0xCE078906, 0x3F2C2873,
-/**/ 0x620CE000, 0x3FCDA85D,
-/**/ 0xC16CC7EC, 0x3D240194,
-/**/ 0x00000000, 0x3FE96000,
-/**/ 0xE442936B, 0xBF3A27A0,
-/**/ 0xA0ABE000, 0x3FCDC1BC,
-/**/ 0xA628CCC6, 0x3D38FAC1,
-/**/ 0x00000000, 0x3FE95800,
-/**/ 0x548A97A9, 0xBF029C69,
-/**/ 0xD8CEA000, 0x3FCDDB16,
-/**/ 0x7104B8BC, 0xBD1EEF79,
-/**/ 0x00000000, 0x3FE95000,
-/**/ 0x9F74B92D, 0x3F35906B,
-/**/ 0x0C722000, 0x3FCDF46C,
-/**/ 0xB0B79039, 0x3D3A5E82,
-/**/ 0x00000000, 0x3FE95000,
-/**/ 0xF35927BC, 0xBF327BBF,
-/**/ 0x3D92A000, 0x3FCE0DBC,
-/**/ 0xF0529BF1, 0x3D359233,
-/**/ 0x00000000, 0x3FE94800,
-/**/ 0xDD3C0CA4, 0x3F161F9A,
-/**/ 0x6E2B0000, 0x3FCE2707,
-/**/ 0x2AF0003C, 0xBD3A342C,
-/**/ 0x00000000, 0x3FE94000,
-/**/ 0x41228A8F, 0x3F3D9B56,
-/**/ 0xA034C000, 0x3FCE404D,
-/**/ 0xE09A2799, 0xBD3187EE,
-/**/ 0x00000000, 0x3FE94000,
-/**/ 0x598A73F8, 0xBF2482F5,
-/**/ 0xD5A88000, 0x3FCE598E,
-/**/ 0xCF1E98A1, 0xBD0D134B,
-/**/ 0x00000000, 0x3FE93800,
-/**/ 0x3C1B9728, 0x3F2BE2D5,
-/**/ 0x107DA000, 0x3FCE72CB,
-/**/ 0xCDF5471C, 0x3D1DD48C,
-/**/ 0x00000000, 0x3FE93800,
-/**/ 0x2698CFF3, 0xBF39CC03,
-/**/ 0x52AA6000, 0x3FCE8C02,
-/**/ 0x80E8E6FF, 0xBD26805B,
-/**/ 0x00000000, 0x3FE93000,
-/**/ 0xB9F30358, 0xBEF79CD3,
-/**/ 0x9E23A000, 0x3FCEA534,
-/**/ 0x4C73CCB5, 0x3D381B93,
-/**/ 0x00000000, 0x3FE92800,
-/**/ 0x255BA00D, 0x3F36E803,
-/**/ 0xF4DD8000, 0x3FCEBE61,
-/**/ 0x30FDCA4D, 0xBD23D453,
-/**/ 0x00000000, 0x3FE92800,
-/**/ 0x36077742, 0xBF30A69B,
-/**/ 0x58CA8000, 0x3FCED78A,
-/**/ 0x3793387E, 0x3D16F1B5,
-/**/ 0x00000000, 0x3FE92000,
-/**/ 0x1C451AB3, 0x3F1F693A,
-/**/ 0xCBDC6000, 0x3FCEF0AD,
-/**/ 0x9C86AF24, 0xBD2B26B7,
-/**/ 0x00000000, 0x3FE92000,
-/**/ 0xC74EA9E2, 0xBF3F9548,
-/**/ 0x50036000, 0x3FCF09CC,
-/**/ 0x18D999DB, 0x3D3DA094,
-/**/ 0x00000000, 0x3FE91800,
-/**/ 0xF7C46911, 0xBF1BD5A8,
-/**/ 0xE72F2000, 0x3FCF22E5,
-/**/ 0x1417E41F, 0xBD3F454F,
-/**/ 0x00000000, 0x3FE91000,
-/**/ 0x0D83D1C6, 0x3F31B9E1,
-/**/ 0x934D6000, 0x3FCF3BFA,
-/**/ 0x937B903B, 0x3D2D9F2A,
-/**/ 0x00000000, 0x3FE91000,
-/**/ 0xF3795877, 0xBF35876F,
-/**/ 0x564B8000, 0x3FCF550A,
-/**/ 0xA09202FE, 0xBD2323E3,
-/**/ 0x00000000, 0x3FE90800,
-/**/ 0xBD1D87EC, 0x3F0A34CD,
-/**/ 0x32154000, 0x3FCF6E15,
-/**/ 0x7AC4EC74, 0xBD3C9A97,
-/**/ 0x00000000, 0x3FE90000,
-/**/ 0x0E760899, 0x3F3C23F5,
-/**/ 0x28956000, 0x3FCF871B,
-/**/ 0x6A526EFE, 0xBD3F75FD,
-/**/ 0x00000000, 0x3FE90000,
-/**/ 0xD0BE9594, 0xBF25DECD,
-/**/ 0x3BB58000, 0x3FCFA01C,
-/**/ 0xFAE1D786, 0xBD1A1F71,
-/**/ 0x00000000, 0x3FE8F800,
-/**/ 0xC18F9C19, 0x3F2C18F9,
-/**/ 0x6D5E4000, 0x3FCFB918,
-/**/ 0xAB993C87, 0xBD0D572A,
-/**/ 0x00000000, 0x3FE8F800,
-/**/ 0x8176594C, 0xBF38E868,
-/**/ 0xBF770000, 0x3FCFD20F,
-/**/ 0x72C6FE70, 0xBD11C55B,
-/**/ 0x00000000, 0x3FE8F000,
-/**/ 0x3C018F00, 0x3EC8F006,
-/**/ 0x33E60000, 0x3FCFEB02,
-/**/ 0x32D5E8C7, 0x3D2F316E,
-/**/ 0x00000000, 0x3FE8E800,
-/**/ 0xAD115384, 0x3F395B4D,
-/**/ 0xE6484000, 0x3FD001F7,
-/**/ 0x40C9ABBC, 0x3D38A957,
-/**/ 0x00000000, 0x3FE8E800,
-/**/ 0xEC8C0F90, 0xBF2AD850,
-/**/ 0x45AD5000, 0x3FD00E6C,
-/**/ 0x52E01203, 0x3CDCC68D,
-/**/ 0x00000000, 0x3FE8E000,
-/**/ 0xA56B1AA1, 0x3F27B6E9,
-/**/ 0x3913A000, 0x3FD01ADE,
-/**/ 0xCCDC1521, 0xBD108930,
-/**/ 0x00000000, 0x3FE8E000,
-/**/ 0x40DFC1D8, 0xBF3ACDE3,
-/**/ 0xC16C2000, 0x3FD0274D,
-/**/ 0x9CF835C2, 0x3D2979E8,
-/**/ 0x00000000, 0x3FE8D800,
-/**/ 0x317DF64C, 0xBEF68397,
-/**/ 0xDFA74000, 0x3FD033BA,
-/**/ 0x1485BDFF, 0x3D0C30BC,
-/**/ 0x00000000, 0x3FE8D000,
-/**/ 0x80C6980C, 0x3F380C69,
-/**/ 0x94B4D000, 0x3FD04025,
-/**/ 0x9EF42D7F, 0x3CF036B8,
-/**/ 0x00000000, 0x3FE8D000,
-/**/ 0x338C7FE7, 0xBF2CE006,
-/**/ 0xE1842000, 0x3FD04C8D,
-/**/ 0x512CEB86, 0xBD1FE6BA,
-/**/ 0x00000000, 0x3FE8C800,
-/**/ 0x1EFBBD63, 0x3F2644F0,
-/**/ 0xC703F000, 0x3FD058F3,
-/**/ 0xBCD236AD, 0xBD30E866,
-/**/ 0x00000000, 0x3FE8C800,
-/**/ 0xAA79217A, 0xBF3B3C2D,
-/**/ 0x46227000, 0x3FD06557,
-/**/ 0xB4868D6A, 0x3D0131DF,
-/**/ 0x00000000, 0x3FE8C000,
-/**/ 0x8062FF3A, 0xBEF8BFCE,
-/**/ 0x5FCD6000, 0x3FD071B8,
-/**/ 0xA3E01A11, 0xBD3BCB8B,
-/**/ 0x00000000, 0x3FE8B800,
-/**/ 0xBD2672C4, 0x3F383301,
-/**/ 0x14F1D000, 0x3FD07E17,
-/**/ 0x4F384BD5, 0xBD3EFCC6,
-/**/ 0x00000000, 0x3FE8B800,
-/**/ 0x9BFE749C, 0xBF2BFE74,
-/**/ 0x667C5000, 0x3FD08A73,
-/**/ 0x40C5A329, 0x3D3EBC1D,
-/**/ 0x00000000, 0x3FE8B000,
-/**/ 0xD4353EB3, 0x3F27BA8C,
-/**/ 0x55591000, 0x3FD096CD,
-/**/ 0x20550A31, 0x3D3F998D,
-/**/ 0x00000000, 0x3FE8B000,
-/**/ 0xA062B2E4, 0xBF3A3784,
-/**/ 0xE2739000, 0x3FD0A324,
-/**/ 0x7EF4030E, 0x3D0C6BEE,
-/**/ 0x00000000, 0x3FE8A800,
-/**/ 0x5E630281, 0xBECED1F6,
-/**/ 0x0EB6C000, 0x3FD0AF7A,
-/**/ 0x4945ADAD, 0x3D23CCF9,
-/**/ 0x00000000, 0x3FE8A000,
-/**/ 0x0C519CAE, 0x3F39CAE0,
-/**/ 0xDB0D2000, 0x3FD0BBCC,
-/**/ 0xCC5DCDFB, 0x3D32F32C,
-/**/ 0x00000000, 0x3FE8A000,
-/**/ 0x4EDBA5FD, 0xBF283C02,
-/**/ 0x4860B000, 0x3FD0C81D,
-/**/ 0x401D1731, 0xBD3E5BCF,
-/**/ 0x00000000, 0x3FE89800,
-/**/ 0x1899C0F6, 0x3F2C0F60,
-/**/ 0x579AB000, 0x3FD0D46B,
-/**/ 0xF640E1E6, 0x3D3D2C81,
-/**/ 0x00000000, 0x3FE89800,
-/**/ 0xBDBE51D0, 0xBF37C414,
-/**/ 0x09A43000, 0x3FD0E0B7,
-/**/ 0xA7862F2A, 0x3D32A038,
-/**/ 0x00000000, 0x3FE89000,
-/**/ 0xDD12CE7D, 0x3F03F540,
-/**/ 0x5F658000, 0x3FD0ED00,
-/**/ 0x285AA803, 0xBD22DC75,
-/**/ 0x00000000, 0x3FE88800,
-/**/ 0x400C45CD, 0x3F3CCFDE,
-/**/ 0x59C67000, 0x3FD0F947,
-/**/ 0x7F0818B6, 0xBD395261,
-/**/ 0x00000000, 0x3FE88800,
-/**/ 0x44FB66B5, 0xBF21A0F5,
-/**/ 0xF9AE5000, 0x3FD1058B,
-/**/ 0x817D52CD, 0xBD34AB9D,
-/**/ 0x00000000, 0x3FE88000,
-/**/ 0x2866A138, 0x3F319D95,
-/**/ 0x4003F000, 0x3FD111CE,
-/**/ 0x096B4B6B, 0xBD1B3237,
-/**/ 0x00000000, 0x3FE88000,
-/**/ 0xA48B49DA, 0xBF33E5FA,
-/**/ 0x2DADA000, 0x3FD11E0E,
-/**/ 0x8FCCE5BA, 0xBD2A47F8,
-/**/ 0x00000000, 0x3FE87800,
-/**/ 0xDEECB0A8, 0x3F1A9336,
-/**/ 0xC3912000, 0x3FD12A4B,
-/**/ 0x61473259, 0xBD35A750,
-/**/ 0x00000000, 0x3FE87800,
-/**/ 0xFB6A388D, 0xBF3EC219,
-/**/ 0x0293B000, 0x3FD13687,
-/**/ 0x99D67123, 0xBD3D3E84,
-/**/ 0x00000000, 0x3FE87000,
-/**/ 0xC1625090, 0xBF106AE7,
-/**/ 0xEB9A0000, 0x3FD142BF,
-/**/ 0x85B58A9E, 0x3D31CE61,
-/**/ 0x00000000, 0x3FE86800,
-/**/ 0xACD4200C, 0x3F369AE5,
-/**/ 0x7F887000, 0x3FD14EF6,
-/**/ 0x5DFC9794, 0xBD3E97A6,
-/**/ 0x00000000, 0x3FE86800,
-/**/ 0x9389D11C, 0xBF2D4286,
-/**/ 0xBF429000, 0x3FD15B2A,
-/**/ 0x49B629B2, 0xBD2D8E3B,
-/**/ 0x00000000, 0x3FE86000,
-/**/ 0x18618618, 0x3F286186,
-/**/ 0xABABA000, 0x3FD1675C,
-/**/ 0x731F55C4, 0x3D38380E,
-/**/ 0x00000000, 0x3FE86000,
-/**/ 0x6AC71708, 0xBF38EF0F,
-/**/ 0x45A67000, 0x3FD1738C,
-/**/ 0x0032C176, 0xBD39C6E9,
-/**/ 0x00000000, 0x3FE85800,
-/**/ 0xE00C2C20, 0x3EFFF3D3,
-/**/ 0x8E151000, 0x3FD17FB9,
-/**/ 0xA74A2684, 0xBD3A8A8B,
-/**/ 0x00000000, 0x3FE85000,
-/**/ 0xF9592266, 0x3F3CFBA0,
-/**/ 0x85D93000, 0x3FD18BE4,
-/**/ 0x6F3604AB, 0x3D3C167F,
-/**/ 0x00000000, 0x3FE85000,
-/**/ 0xFF3D87FA, 0xBF1FE7B0,
-/**/ 0x2DD42000, 0x3FD1980D,
-/**/ 0x7A361C9A, 0x3D2B7B3A,
-/**/ 0x00000000, 0x3FE84800,
-/**/ 0x918DC223, 0x3F331E8D,
-/**/ 0x86E68000, 0x3FD1A433,
-/**/ 0x634E0AAC, 0xBD07A850,
-/**/ 0x00000000, 0x3FE84800,
-/**/ 0x8D76B549, 0xBF31BAF9,
-/**/ 0x91F08000, 0x3FD1B057,
-/**/ 0x6DC55E2D, 0xBD32DD46,
-/**/ 0x00000000, 0x3FE84000,
-/**/ 0xDC90C512, 0x3F22F2EC,
-/**/ 0x4FD1D000, 0x3FD1BC79,
-/**/ 0x747BA7BE, 0xBD3CCF0C,
-/**/ 0x00000000, 0x3FE84000,
-/**/ 0x6A0916B9, 0xBF3B442A,
-/**/ 0xC169A000, 0x3FD1C898,
-/**/ 0xE5C62AFF, 0xBD381410,
-/**/ 0x00000000, 0x3FE83800,
-/**/ 0x83801838, 0x3EA83801,
-/**/ 0xE796A000, 0x3FD1D4B5,
-/**/ 0xD197BAC2, 0x3D222A5B,
-/**/ 0x00000000, 0x3FE83000,
-/**/ 0xCBD11C5C, 0x3F3B6A41,
-/**/ 0xC3371000, 0x3FD1E0D0,
-/**/ 0xA9B0D4A0, 0x3D3AF8F2,
-/**/ 0x00000000, 0x3FE83000,
-/**/ 0xCB7A3CD6, 0xBF225381,
-/**/ 0x5528B000, 0x3FD1ECE9,
-/**/ 0x09B4A3B8, 0xBD184E7B,
-/**/ 0x00000000, 0x3FE82800,
-/**/ 0x152500C1, 0x3F32500C,
-/**/ 0x9E48A000, 0x3FD1F8FF,
-/**/ 0x040CBE77, 0x3D27946C,
-/**/ 0x00000000, 0x3FE82800,
-/**/ 0x14902134, 0xBF32285F,
-/**/ 0x9F73B000, 0x3FD20513,
-/**/ 0x1609E0A4, 0x3CF6E15E,
-/**/ 0x00000000, 0x3FE82000,
-/**/ 0xA4018213, 0x3F22D9EB,
-/**/ 0x59861000, 0x3FD21125,
-/**/ 0xBA2950C4, 0x3D382E78,
-/**/ 0x00000000, 0x3FE82000,
-/**/ 0xFC6BBFF4, 0xBF3AEFFC,
-/**/ 0xCD5B9000, 0x3FD21D34,
-/**/ 0xB28BADAA, 0x3D3B552F,
-/**/ 0x00000000, 0x3FE81800,
-/**/ 0x18181818, 0x3EE81818,
-/**/ 0xFBCF8000, 0x3FD22941,
-/**/ 0xF5EB0963, 0xBD3A6976,
-/**/ 0x00000000, 0x3FE81000,
-/**/ 0x4FF0F3C6, 0x3F3C7F27,
-/**/ 0xE5BC9000, 0x3FD2354C,
-/**/ 0x0602A663, 0xBD3D78ED,
-/**/ 0x00000000, 0x3FE81000,
-/**/ 0x0A86941D, 0xBF1ED344,
-/**/ 0x8BFD1000, 0x3FD24155,
-/**/ 0x3228FCAD, 0x3D300FFF,
-/**/ 0x00000000, 0x3FE80800,
-/**/ 0x1B0BD52D, 0x3F3424D0,
-/**/ 0xEF6AF000, 0x3FD24D5B,
-/**/ 0xFC9FABDD, 0xBCBDD780,
-/**/ 0x00000000, 0x3FE80800,
-/**/ 0xFE7F9FE8, 0xBF2FE7F9,
-/**/ 0x10DF7000, 0x3FD25960,
-/**/ 0x224EA3E3, 0x3D38E7BC,
-/**/ 0x00000000, 0x3FE80000,
-/**/ 0x18018018, 0x3F280180,
-/**/ 0xF1338000, 0x3FD26561,
-/**/ 0x66FAA45F, 0x3D38B488,
-/**/ 0x00000000, 0x3FE80000,
-/**/ 0x5FF40180, 0xBF37FD00,
-/**/ 0x913F8000, 0x3FD27161,
-/**/ 0xF61564B4, 0x3D34F4F1,
-/**/ 0x00000000, 0x3FE7F800,
-/**/ 0x9750B6C7, 0x3F104AE8,
-/**/ 0xF1DB6000, 0x3FD27D5E,
-/**/ 0x78CAC9F4, 0xBD092374,
-/**/ 0x00000000, 0x3FE7F800,
-/**/ 0xF405FD01, 0xBF3FD017,
-/**/ 0x13DE8000, 0x3FD2895A,
-/**/ 0xD24C13F0, 0x3D3A8D7A,
-/**/ 0x00000000, 0x3FE7F000,
-/**/ 0xC9C5485E, 0xBF0D2BF1,
-/**/ 0xF81FF000, 0x3FD29552,
-/**/ 0x1771C408, 0x3D348D30,
-/**/ 0x00000000, 0x3FE7E800,
-/**/ 0xD029DB60, 0x3F38927F,
-/**/ 0x9F763000, 0x3FD2A149,
-/**/ 0x51F3AADC, 0xBD30DBBF,
-/**/ 0x00000000, 0x3FE7E800,
-/**/ 0xB0A45169, 0xBF26504A,
-/**/ 0x0AB73000, 0x3FD2AD3E,
-/**/ 0x488C359F, 0x3D2B972E,
-/**/ 0x00000000, 0x3FE7E000,
-/**/ 0xD278E8DD, 0x3F312A8A,
-/**/ 0x3AB8A000, 0x3FD2B930,
-/**/ 0xD6BFB0A5, 0xBD26DB12,
-/**/ 0x00000000, 0x3FE7E000,
-/**/ 0x24BB32E7, 0xBF327577,
-/**/ 0x304F8000, 0x3FD2C520,
-/**/ 0x8C342F39, 0x3D230852,
-/**/ 0x00000000, 0x3FE7D800,
-/**/ 0xA4B45AEC, 0x3F23EF9A,
-/**/ 0xEC508000, 0x3FD2D10D,
-/**/ 0xF7088353, 0x3D360C61,
-/**/ 0x00000000, 0x3FE7D800,
-/**/ 0x32748CC1, 0xBF398DAF,
-/**/ 0x6F8FD000, 0x3FD2DCF9,
-/**/ 0x8E33C9CE, 0x3D20B4A2,
-/**/ 0x00000000, 0x3FE7D000,
-/**/ 0x417D05F4, 0x3F07D05F,
-/**/ 0xBAE12000, 0x3FD2E8E2,
-/**/ 0x99B72BD8, 0xBD267B1E,
-/**/ 0x00000000, 0x3FE7C800,
-/**/ 0x431D3027, 0x3F3F8EF7,
-/**/ 0xCF17A000, 0x3FD2F4C9,
-/**/ 0x9374B87B, 0x3D371F04,
-/**/ 0x00000000, 0x3FE7C800,
-/**/ 0xDAD83E6C, 0xBF0E77A3,
-/**/ 0xAD063000, 0x3FD300AE,
-/**/ 0x8B75FCAC, 0x3D342F56,
-/**/ 0x00000000, 0x3FE7C000,
-/**/ 0x588D1676, 0x3F38E041,
-/**/ 0x557F2000, 0x3FD30C91,
-/**/ 0xA1451755, 0xBD142958,
-/**/ 0x00000000, 0x3FE7C000,
-/**/ 0x1FE8414C, 0xBF24C6DD,
-/**/ 0xC9544000, 0x3FD31871,
-/**/ 0x94CECFD9, 0x3D184FAB,
-/**/ 0x00000000, 0x3FE7B800,
-/**/ 0x81C2D3B2, 0x3F3265F4,
-/**/ 0x09570000, 0x3FD32450,
-/**/ 0x9BDAE59D, 0x3D3D271B,
-/**/ 0x00000000, 0x3FE7B800,
-/**/ 0xB6466407, 0xBF30C39C,
-/**/ 0x16586000, 0x3FD3302C,
-/**/ 0xC2A3E08B, 0x3D36217D,
-/**/ 0x00000000, 0x3FE7B000,
-/**/ 0x12B21224, 0x3F283FAD,
-/**/ 0xF128E000, 0x3FD33C05,
-/**/ 0x380E1A7D, 0xBD22B906,
-/**/ 0x00000000, 0x3FE7B000,
-/**/ 0xF899E55D, 0xBF36EFB8,
-/**/ 0x9A988000, 0x3FD347DD,
-/**/ 0xD4C58092, 0xBD25594D,
-/**/ 0x00000000, 0x3FE7A800,
-/**/ 0x3FF42B9F, 0x3F1836B6,
-/**/ 0x1376E000, 0x3FD353B3,
-/**/ 0xE6C26D9B, 0xBD1331AF,
-/**/ 0x00000000, 0x3FE7A800,
-/**/ 0x0B739FF4, 0xBF3CE7FD,
-/**/ 0x5C933000, 0x3FD35F86,
-/**/ 0x4EA1A54A, 0xBD3B07DE,
-/**/ 0x00000000, 0x3FE7A000,
-/**/ 0xE8017A00, 0x3EC7A005,
-/**/ 0x76BC1000, 0x3FD36B57,
-/**/ 0x5A9C223F, 0x3D116978,
-/**/ 0x00000000, 0x3FE79800,
-/**/ 0xB1CC5B7B, 0x3F3D535D,
-/**/ 0x62BFE000, 0x3FD37726,
-/**/ 0xAC53B023, 0xBD3E9436,
-/**/ 0x00000000, 0x3FE79800,
-/**/ 0xE0DA37A9, 0xBF15EEAC,
-/**/ 0x216C5000, 0x3FD382F3,
-/**/ 0x1D1A7F6D, 0xBD1061D2,
-/**/ 0x00000000, 0x3FE79000,
-/**/ 0x344E16D6, 0x3F37C21E,
-/**/ 0xB38ED000, 0x3FD38EBD,
-/**/ 0xE67D4CA0, 0x3D290582,
-/**/ 0x00000000, 0x3FE79000,
-/**/ 0x39C9E465, 0xBF25E69A,
-/**/ 0x19F45000, 0x3FD39A86,
-/**/ 0x937354F5, 0x3D18EE51,
-/**/ 0x00000000, 0x3FE78800,
-/**/ 0xC52640BC, 0x3F32640B,
-/**/ 0x55694000, 0x3FD3A64C,
-/**/ 0xBCD735D0, 0x3D37A71C,
-/**/ 0x00000000, 0x3FE78800,
-/**/ 0x2F6A09ED, 0xBF3037DE,
-/**/ 0x66B9C000, 0x3FD3B210,
-/**/ 0x9811560E, 0xBD33C1ED,
-/**/ 0x00000000, 0x3FE78000,
-/**/ 0x01781A72, 0x3F2A71DC,
-/**/ 0x4EB15000, 0x3FD3BDD2,
-/**/ 0x970E6ED9, 0xBD3257B4,
-/**/ 0x00000000, 0x3FE78000,
-/**/ 0xA9EEBFF4, 0xBF354996,
-/**/ 0x0E1B2000, 0x3FD3C992,
-/**/ 0xAA680B76, 0x3D141C28,
-/**/ 0x00000000, 0x3FE77800,
-/**/ 0xAC60D341, 0x3F208119,
-/**/ 0xA5C1F000, 0x3FD3D54F,
-/**/ 0xD9A395E3, 0x3D3C3E1C,
-/**/ 0x00000000, 0x3FE77800,
-/**/ 0x742E2DD0, 0xBF3A28AE,
-/**/ 0x16701000, 0x3FD3E10B,
-/**/ 0x145429C7, 0x3D3F3BCF,
-/**/ 0x00000000, 0x3FE77000,
-/**/ 0x36340177, 0x3F0BD584,
-/**/ 0x60EF6000, 0x3FD3ECC4,
-/**/ 0x27C1300F, 0xBD060286,
-/**/ 0x00000000, 0x3FE77000,
-/**/ 0x240C7174, 0xBF3ED55D,
-/**/ 0x86094000, 0x3FD3F87B,
-/**/ 0x54589889, 0xBD35DFD7,
-/**/ 0x00000000, 0x3FE76800,
-/**/ 0xAB277F45, 0xBEF18DE5,
-/**/ 0x8686A000, 0x3FD40430,
-/**/ 0x3049F7D3, 0x3D3F8EF4,
-/**/ 0x00000000, 0x3FE76000,
-/**/ 0x01D3C7B8, 0x3F3CB026,
-/**/ 0x63303000, 0x3FD40FE3,
-/**/ 0xE79F05C6, 0x3D3E5C5F,
-/**/ 0x00000000, 0x3FE76000,
-/**/ 0xA9D08664, 0xBF15E95B,
-/**/ 0x1CCE1000, 0x3FD41B94,
-/**/ 0x13E43FC9, 0xBD304690,
-/**/ 0x00000000, 0x3FE75800,
-/**/ 0x097CFD43, 0x3F3867A4,
-/**/ 0xB427E000, 0x3FD42742,
-/**/ 0x02B82675, 0xBD398727,
-/**/ 0x00000000, 0x3FE75800,
-/**/ 0xE8A9353E, 0xBF2353DF,
-/**/ 0x2A04F000, 0x3FD432EF,
-/**/ 0x931715AD, 0xBD3FB129,
-/**/ 0x00000000, 0x3FE75000,
-/**/ 0x4F13DC4A, 0x3F3450E6,
-/**/ 0x7F2C1000, 0x3FD43E99,
-/**/ 0x40C41A04, 0x3D1C3F72,
-/**/ 0x00000000, 0x3FE75000,
-/**/ 0xE8B1B4FC, 0xBF2B4FBF,
-/**/ 0xB463C000, 0x3FD44A41,
-/**/ 0xF37CF612, 0x3D31EE28,
-/**/ 0x00000000, 0x3FE74800,
-/**/ 0x7E458100, 0x3F306BB6,
-/**/ 0xCA720000, 0x3FD455E7,
-/**/ 0x36629AED, 0x3D1AD8C6,
-/**/ 0x00000000, 0x3FE74800,
-/**/ 0x1745D174, 0xBF31745D,
-/**/ 0xC21C6000, 0x3FD4618B,
-/**/ 0x484C84CC, 0xBD13D82F,
-/**/ 0x00000000, 0x3FE74000,
-/**/ 0x236DEC04, 0x3F296FBD,
-/**/ 0x9C280000, 0x3FD46D2D,
-/**/ 0x5F67F75A, 0x3D359B27,
-/**/ 0x00000000, 0x3FE74000,
-/**/ 0x3B304B87, 0xBF350F9D,
-/**/ 0x5959B000, 0x3FD478CD,
-/**/ 0xF0C8D098, 0x3D2EC89B,
-/**/ 0x00000000, 0x3FE73800,
-/**/ 0xA4EBDC70, 0x3F226A51,
-/**/ 0xFA75C000, 0x3FD4846A,
-/**/ 0xE3798DCE, 0xBD263EA2,
-/**/ 0x00000000, 0x3FE73800,
-/**/ 0xF00B9A78, 0xBF3879D5,
-/**/ 0x80401000, 0x3FD49006,
-/**/ 0xFE1A0F8C, 0xBD38BCCF,
-/**/ 0x00000000, 0x3FE73000,
-/**/ 0x5DAAD90C, 0x3F178D7F,
-/**/ 0xEB7C1000, 0x3FD49B9F,
-/**/ 0x58AB60D7, 0x3D3DAC1C,
-/**/ 0x00000000, 0x3FE73000,
-/**/ 0x783709C7, 0xBF3BB33C,
-/**/ 0x3CED0000, 0x3FD4A737,
-/**/ 0xEBF35449, 0xBD39A234,
-/**/ 0x00000000, 0x3FE72800,
-/**/ 0x265AD23A, 0x3F061274,
-/**/ 0x75556000, 0x3FD4B2CC,
-/**/ 0xC78BFA4B, 0xBD380FCB,
-/**/ 0x00000000, 0x3FE72800,
-/**/ 0xC90A1FD2, 0xBF3EBC05,
-/**/ 0x95778000, 0x3FD4BE5F,
-/**/ 0xCD9AD824, 0xBD3D7C92,
-/**/ 0x00000000, 0x3FE72000,
-/**/ 0x38017200, 0xBEC71FFA,
-/**/ 0x9E153000, 0x3FD4C9F0,
-/**/ 0x70E02DE0, 0xBD2E1DDE,
-/**/ 0x00000000, 0x3FE71800,
-/**/ 0x74A050E1, 0x3F3E6B99,
-/**/ 0x8FEFE000, 0x3FD4D57F,
-/**/ 0x7FD06868, 0x3D23F926,
-/**/ 0x00000000, 0x3FE71800,
-/**/ 0xB8BD1180, 0xBF077400,
-/**/ 0x6BC8A000, 0x3FD4E10C,
-/**/ 0x1636F061, 0x3CF8283F,
-/**/ 0x00000000, 0x3FE71000,
-/**/ 0xE3E0453A, 0x3F3BC36C,
-/**/ 0x32600000, 0x3FD4EC97,
-/**/ 0xAF04D104, 0x3D234D7A,
-/**/ 0x00000000, 0x3FE71000,
-/**/ 0x6935DDC5, 0xBF15FA98,
-/**/ 0xE4764000, 0x3FD4F81F,
-/**/ 0x434FF08D, 0xBD27FCF6,
-/**/ 0x00000000, 0x3FE70800,
-/**/ 0x7337CF08, 0x3F394B40,
-/**/ 0x82CB2000, 0x3FD503A6,
-/**/ 0xF16F9B5D, 0xBD2A68C8,
-/**/ 0x00000000, 0x3FE70800,
-/**/ 0xA835403A, 0xBF1F7B97,
-/**/ 0x0E1E0000, 0x3FD50F2B,
-/**/ 0x8C47B8D8, 0x3D3A0940,
-/**/ 0x00000000, 0x3FE70000,
-/**/ 0x5C0B8170, 0x3F3702E0,
-/**/ 0x872E0000, 0x3FD51AAD,
-/**/ 0xDB0A7CC1, 0xBD3F4BD8,
-/**/ 0x00000000, 0x3FE70000,
-/**/ 0x4F67A855, 0xBF241EE6,
-/**/ 0xEEB99000, 0x3FD5262D,
-/**/ 0x70894A01, 0xBD3E1B9F,
-/**/ 0x00000000, 0x3FE6F800,
-/**/ 0x221C0170, 0x3F34EA19,
-/**/ 0x457EE000, 0x3FD531AC,
-/**/ 0x7D931501, 0x3D3DF83B,
-/**/ 0x00000000, 0x3FE6F800,
-/**/ 0x5508CA5C, 0xBF282102,
-/**/ 0x8C3BE000, 0x3FD53D28,
-/**/ 0xEB6DFAC5, 0xBD111397,
-/**/ 0x00000000, 0x3FE6F000,
-/**/ 0x9300B793, 0x3F3300B7,
-/**/ 0xC3ADD000, 0x3FD548A2,
-/**/ 0x63081CF7, 0x3D23167E,
-/**/ 0x00000000, 0x3FE6F000,
-/**/ 0x005BB90F, 0xBF2BC486,
-/**/ 0xEC91C000, 0x3FD5541A,
-/**/ 0xDC72EEBA, 0xBCF816AA,
-/**/ 0x00000000, 0x3FE6E800,
-/**/ 0xC5A3A00B, 0x3F314688,
-/**/ 0x07A44000, 0x3FD55F91,
-/**/ 0x78DF4A62, 0xBD11E647,
-/**/ 0x00000000, 0x3FE6E800,
-/**/ 0xDA9C5AE1, 0xBF2F09D6,
-/**/ 0x15A18000, 0x3FD56B05,
-/**/ 0xBC4A23FC, 0x3D29247B,
-/**/ 0x00000000, 0x3FE6E000,
-/**/ 0x337C6CB1, 0x3F2F76B4,
-/**/ 0x17456000, 0x3FD57677,
-/**/ 0x9524D7CA, 0xBD364EAD,
-/**/ 0x00000000, 0x3FE6E000,
-/**/ 0xEDF4EC87, 0xBF30F8AC,
-/**/ 0x0D4B3000, 0x3FD581E7,
-/**/ 0xB12D8F1D, 0xBD1F31E1,
-/**/ 0x00000000, 0x3FE6D800,
-/**/ 0x6EAEF381, 0x3F2CBDF2,
-/**/ 0xF86E0000, 0x3FD58D54,
-/**/ 0x0A795215, 0x3D2791F3,
-/**/ 0x00000000, 0x3FE6D800,
-/**/ 0xB624BFF5, 0xBF323DB9,
-/**/ 0xD9688000, 0x3FD598C0,
-/**/ 0x70D96DA4, 0xBD385F49,
-/**/ 0x00000000, 0x3FE6D000,
-/**/ 0x1C860FB0, 0x3F2A6268,
-/**/ 0xB0F4D000, 0x3FD5A42A,
-/**/ 0x2DF7BA69, 0xBCDE63AF,
-/**/ 0x00000000, 0x3FE6D000,
-/**/ 0xB253BAE1, 0xBF335443,
-/**/ 0x7FCCE000, 0x3FD5AF92,
-/**/ 0xF5FFC77A, 0xBD1C032F,
-/**/ 0x00000000, 0x3FE6C800,
-/**/ 0xAB4294D4, 0x3F2863B1,
-/**/ 0x46AA2000, 0x3FD5BAF8,
-/**/ 0xF873FA41, 0xBD339AE8,
-/**/ 0x00000000, 0x3FE6C800,
-/**/ 0x87EAA6DF, 0xBF343C7C,
-/**/ 0x0645A000, 0x3FD5C65C,
-/**/ 0x0180EE65, 0xBD39FE06,
-/**/ 0x00000000, 0x3FE6C000,
-/**/ 0x16C16C17, 0x3F26C16C,
-/**/ 0xBF581000, 0x3FD5D1BD,
-/**/ 0xC9C7C238, 0xBD38D6BD,
-/**/ 0x00000000, 0x3FE6C000,
-/**/ 0x95C33E00, 0xBF34F695,
-/**/ 0x7299C000, 0x3FD5DD1D,
-/**/ 0x8815CE17, 0xBD38AF61,
-/**/ 0x00000000, 0x3FE6B800,
-/**/ 0xE7802D73, 0x3F257B34,
-/**/ 0x20C29000, 0x3FD5E87B,
-/**/ 0x8F7738FA, 0x3D3527D1,
-/**/ 0x00000000, 0x3FE6B800,
-/**/ 0xF4A5582C, 0xBF3582BF,
-/**/ 0xCA8A2000, 0x3FD5F3D6,
-/**/ 0x8E19CC75, 0x3D37AF84,
-/**/ 0x00000000, 0x3FE6B000,
-/**/ 0x31A3CFC7, 0x3F2490AA,
-/**/ 0x70A79000, 0x3FD5FF30,
-/**/ 0x9F105039, 0x3D2E9E43,
-/**/ 0x00000000, 0x3FE6B000,
-/**/ 0x77C30E5A, 0xBF35E12C,
-/**/ 0x13D1A000, 0x3FD60A88,
-/**/ 0xC879AF55, 0x3D36E9B9,
-/**/ 0x00000000, 0x3FE6A800,
-/**/ 0x94016A94, 0x3F24016A,
-/**/ 0xB4BEC000, 0x3FD615DD,
-/**/ 0x90BC04B2, 0x3D13C7CA,
-/**/ 0x00000000, 0x3FE6A800,
-/**/ 0xAD33D63F, 0xBF36120B,
-/**/ 0x5424F000, 0x3FD62131,
-/**/ 0x4AA68669, 0xBD3382FC,
-/**/ 0x00000000, 0x3FE6A000,
-/**/ 0x3729043E, 0x3F23CD15,
-/**/ 0xF2B9C000, 0x3FD62C82,
-/**/ 0xBD7C8A98, 0x3D3E54BD } };
-
-static const union {int4 i[4350]; double x[2175]; } vj = { .i = {
-/**/ 0x7D161C28, 0x3F46A400,
-/**/ 0x20600000, 0xBF46A200,
-/**/ 0xAA7623D9, 0x3D27DC4E,
-/**/ 0xD596E639, 0x3F4693FA,
-/**/ 0x4CE00000, 0xBF4691FD,
-/**/ 0x29C3F0AD, 0x3D26B0CF,
-/**/ 0x3219CE89, 0x3F4683F5,
-/**/ 0x7B600000, 0xBF4681FA,
-/**/ 0x95B9FDCC, 0x3D22B290,
-/**/ 0x929ED397, 0x3F4673EF,
-/**/ 0xABE00000, 0xBF4671F7,
-/**/ 0xFA2F2D87, 0x3D17C727,
-/**/ 0xF725F3E2, 0x3F4663E9,
-/**/ 0xDE600000, 0xBF4661F4,
-/**/ 0x6EDBFF1C, 0x3CF22ED3,
-/**/ 0x5FAF2DE9, 0x3F4653E4,
-/**/ 0x12E00000, 0xBF4651F2,
-/**/ 0x157812BB, 0xBD144936,
-/**/ 0xCC3A802B, 0x3F4643DE,
-/**/ 0x49600000, 0xBF4641EF,
-/**/ 0x60314E05, 0xBD2959CB,
-/**/ 0x3CC7E927, 0x3F4633D9,
-/**/ 0x81E00000, 0xBF4631EC,
-/**/ 0xC3638E99, 0xBD35ABDA,
-/**/ 0xB157675C, 0x3F4623D3,
-/**/ 0xBC800000, 0xBF4621E9,
-/**/ 0xC63F9A21, 0x3D3FF1D3,
-/**/ 0x29E8F948, 0x3F4613CE,
-/**/ 0xF9000000, 0xBF4611E6,
-/**/ 0x71EEE611, 0x3D342D26,
-/**/ 0xA67C9D6B, 0x3F4603C8,
-/**/ 0x37800000, 0xBF4601E4,
-/**/ 0x11A09689, 0x3D1C1C77,
-/**/ 0x27125244, 0x3F45F3C3,
-/**/ 0x78000000, 0xBF45F1E1,
-/**/ 0xF7DC643C, 0xBD1DFD16,
-/**/ 0xABAA1651, 0x3F45E3BD,
-/**/ 0xBA800000, 0xBF45E1DE,
-/**/ 0x91318A02, 0xBD376503,
-/**/ 0x3443E812, 0x3F45D3B8,
-/**/ 0xFF200000, 0xBF45D1DB,
-/**/ 0xCE55DCDD, 0x3D3756E4,
-/**/ 0xC0DFC606, 0x3F45C3B2,
-/**/ 0x45A00000, 0xBF45C1D9,
-/**/ 0x8F6F8FA0, 0x3D12D5CF,
-/**/ 0x517DAEAB, 0x3F45B3AD,
-/**/ 0x8E200000, 0xBF45B1D6,
-/**/ 0x9B85DC2C, 0xBD2E90AB,
-/**/ 0xE61DA081, 0x3F45A3A7,
-/**/ 0xD8C00000, 0xBF45A1D3,
-/**/ 0x3BF5AC54, 0x3D3B5E88,
-/**/ 0x7EBF9A07, 0x3F4593A2,
-/**/ 0x25400000, 0xBF4591D1,
-/**/ 0x0C86DDB1, 0x3D12AC3A,
-/**/ 0x1B6399BB, 0x3F45839D,
-/**/ 0x73C00000, 0xBF4581CE,
-/**/ 0x76830985, 0xBD3361C2,
-/**/ 0xBC099E1C, 0x3F457397,
-/**/ 0xC4600000, 0xBF4571CB,
-/**/ 0xD062EBFF, 0x3D333915,
-/**/ 0x60B1A5AA, 0x3F456392,
-/**/ 0x16E00000, 0xBF4561C9,
-/**/ 0x9CC4988F, 0xBD1E0DA0,
-/**/ 0x095BAEE4, 0x3F45538D,
-/**/ 0x6B800000, 0xBF4551C6,
-/**/ 0x235BC18A, 0x3D3C69C4,
-/**/ 0xB607B848, 0x3F454387,
-/**/ 0xC2000000, 0xBF4541C3,
-/**/ 0xF7737723, 0xBCEFCC99,
-/**/ 0x66B5C056, 0x3F453382,
-/**/ 0x1A800000, 0xBF4531C1,
-/**/ 0x809CBCBB, 0xBD3FBAE2,
-/**/ 0x1B65C58C, 0x3F45237D,
-/**/ 0x75200000, 0xBF4521BE,
-/**/ 0x194FEE63, 0x3CCAA5C8,
-/**/ 0xD417C66A, 0x3F451377,
-/**/ 0xD1C00000, 0xBF4511BB,
-/**/ 0xE1CC7BBC, 0x3D3ED325,
-/**/ 0x90CBC16E, 0x3F450372,
-/**/ 0x30400000, 0xBF4501B9,
-/**/ 0x68AB3742, 0xBD0F0298,
-/**/ 0x5181B517, 0x3F44F36D,
-/**/ 0x90E00000, 0xBF44F1B6,
-/**/ 0x41E67AD9, 0x3D381BE1,
-/**/ 0x16399FE6, 0x3F44E368,
-/**/ 0xF3600000, 0xBF44E1B3,
-/**/ 0x668D3662, 0xBD2A6E79,
-/**/ 0xDEF38058, 0x3F44D362,
-/**/ 0x58000000, 0xBF44D1B1,
-/**/ 0x21F8B7C2, 0x3D284EA7,
-/**/ 0xABAF54EC, 0x3F44C35D,
-/**/ 0xBE800000, 0xBF44C1AE,
-/**/ 0x7417D9C5, 0xBD3BC76D,
-/**/ 0x7C6D1C22, 0x3F44B358,
-/**/ 0x27200000, 0xBF44B1AC,
-/**/ 0x16AAD1FC, 0xBD1409FD,
-/**/ 0x512CD479, 0x3F44A353,
-/**/ 0x91C00000, 0xBF44A1A9,
-/**/ 0x98BC14FD, 0x3D30771E,
-/**/ 0x29EE7C70, 0x3F44934E,
-/**/ 0xFE400000, 0xBF4491A6,
-/**/ 0x5CCB7232, 0xBD3B5993,
-/**/ 0x06B21285, 0x3F448349,
-/**/ 0x6CE00000, 0xBF4481A4,
-/**/ 0x5512F9C2, 0xBD20E729,
-/**/ 0xE7779538, 0x3F447343,
-/**/ 0xDD800000, 0xBF4471A1,
-/**/ 0x55B30899, 0x3D225436,
-/**/ 0xCC3F0308, 0x3F44633E,
-/**/ 0x50200000, 0xBF44619F,
-/**/ 0x9E54E31F, 0x3D39807C,
-/**/ 0xB5085A73, 0x3F445339,
-/**/ 0xC4A00000, 0xBF44519C,
-/**/ 0xD5804C0E, 0xBD376F6F,
-/**/ 0xA1D399FA, 0x3F444334,
-/**/ 0x3B400000, 0xBF44419A,
-/**/ 0x6CDE6425, 0xBD234953,
-/**/ 0x92A0C01A, 0x3F44332F,
-/**/ 0xB3E00000, 0xBF443197,
-/**/ 0xAAF6596F, 0x3D070E7B,
-/**/ 0x876FCB54, 0x3F44232A,
-/**/ 0x2E800000, 0xBF442195,
-/**/ 0x4EC011F1, 0x3D2C49F8,
-/**/ 0x8040BA25, 0x3F441325,
-/**/ 0xAB200000, 0xBF441192,
-/**/ 0xD8AAA7EB, 0x3D3825DC,
-/**/ 0x7D138B0E, 0x3F440320,
-/**/ 0x29A00000, 0xBF440190,
-/**/ 0xFE0B73D6, 0xBD3F1A8D,
-/**/ 0x7DE83C8C, 0x3F43F31B,
-/**/ 0xAA400000, 0xBF43F18D,
-/**/ 0xE46CA26B, 0xBD379B43,
-/**/ 0x82BECD20, 0x3F43E316,
-/**/ 0x2CE00000, 0xBF43E18B,
-/**/ 0x6283780D, 0xBD315B44,
-/**/ 0x8B973B49, 0x3F43D311,
-/**/ 0xB1800000, 0xBF43D188,
-/**/ 0x017589BE, 0xBD28B31E,
-/**/ 0x98718584, 0x3F43C30C,
-/**/ 0x38200000, 0xBF43C186,
-/**/ 0x8FBB296E, 0xBD212A46,
-/**/ 0xA94DAA52, 0x3F43B307,
-/**/ 0xC0C00000, 0xBF43B183,
-/**/ 0x045CBBD2, 0xBD183403,
-/**/ 0xBE2BA832, 0x3F43A302,
-/**/ 0x4B600000, 0xBF43A181,
-/**/ 0xD7CC5936, 0xBD13009B,
-/**/ 0xD70B7DA2, 0x3F4392FD,
-/**/ 0xD8000000, 0xBF43917E,
-/**/ 0xC1742279, 0xBD12B655,
-/**/ 0xF3ED2921, 0x3F4382F8,
-/**/ 0x66A00000, 0xBF43817C,
-/**/ 0xEA83FAE8, 0xBD17512E,
-/**/ 0x14D0A930, 0x3F4372F4,
-/**/ 0xF7400000, 0xBF437179,
-/**/ 0xBED65875, 0xBD206692,
-/**/ 0x39B5FC4C, 0x3F4362EF,
-/**/ 0x89E00000, 0xBF436177,
-/**/ 0xD38FFE9E, 0xBD27931B,
-/**/ 0x629D20F5, 0x3F4352EA,
-/**/ 0x1E800000, 0xBF435175,
-/**/ 0xE524208F, 0xBD309618,
-/**/ 0x8F8615AA, 0x3F4342E5,
-/**/ 0xB5200000, 0xBF434172,
-/**/ 0xDD4C72C5, 0xBD3697E9,
-/**/ 0xC070D8EB, 0x3F4332E0,
-/**/ 0x4DC00000, 0xBF433170,
-/**/ 0x5E6E12C3, 0xBD3DCE00,
-/**/ 0xF55D6935, 0x3F4322DB,
-/**/ 0xE8800000, 0xBF43216D,
-/**/ 0x0AE9A8CE, 0x3D39C8A4,
-/**/ 0x2E4BC509, 0x3F4312D7,
-/**/ 0x85200000, 0xBF43116B,
-/**/ 0xD1CD2FA1, 0x3D302D03,
-/**/ 0x6B3BEAE5, 0x3F4302D2,
-/**/ 0x23C00000, 0xBF430169,
-/**/ 0xA3BADFD1, 0x3D15807D,
-/**/ 0xAC2DD949, 0x3F42F2CD,
-/**/ 0xC4600000, 0xBF42F166,
-/**/ 0xF57F0504, 0xBD1A7422,
-/**/ 0xF1218EB3, 0x3F42E2C8,
-/**/ 0x67000000, 0xBF42E164,
-/**/ 0x2F2C781C, 0xBD33C974,
-/**/ 0x3A1709A3, 0x3F42D2C4,
-/**/ 0x0BC00000, 0xBF42D162,
-/**/ 0x851A1E61, 0x3D3DDBDD,
-/**/ 0x870E4898, 0x3F42C2BF,
-/**/ 0xB2600000, 0xBF42C15F,
-/**/ 0xA14AA8FD, 0x3D2CA7D9,
-/**/ 0xD8074A10, 0x3F42B2BA,
-/**/ 0x5B000000, 0xBF42B15D,
-/**/ 0xDDCDDFF5, 0xBD03022E,
-/**/ 0x2D020C8C, 0x3F42A2B6,
-/**/ 0x05A00000, 0xBF42A15B,
-/**/ 0x0F9231A8, 0xBD343FBA,
-/**/ 0x85FE8E8A, 0x3F4292B1,
-/**/ 0xB2600000, 0xBF429158,
-/**/ 0xA52C9CCF, 0x3D38B690,
-/**/ 0xE2FCCE8A, 0x3F4282AC,
-/**/ 0x61000000, 0xBF428156,
-/**/ 0xC8CC82EB, 0x3D120E6A,
-/**/ 0x43FCCB0A, 0x3F4272A8,
-/**/ 0x11A00000, 0xBF427154,
-/**/ 0x792E6C51, 0xBD30D79B,
-/**/ 0xA8FE8289, 0x3F4262A3,
-/**/ 0xC4600000, 0xBF426151,
-/**/ 0x91F7F7AA, 0x3D38A5EE,
-/**/ 0x1201F387, 0x3F42529F,
-/**/ 0x79000000, 0xBF42514F,
-/**/ 0x46C2E8BA, 0x3CEFA728,
-/**/ 0x7F071C84, 0x3F42429A,
-/**/ 0x2FA00000, 0xBF42414D,
-/**/ 0xFA447A17, 0xBD37D0BA,
-/**/ 0xF00DFBFD, 0x3F423295,
-/**/ 0xE8600000, 0xBF42314A,
-/**/ 0x94AF3FED, 0x3D2C7A24,
-/**/ 0x65169072, 0x3F422291,
-/**/ 0xA3000000, 0xBF422148,
-/**/ 0x050CEA04, 0xBD29B0BD,
-/**/ 0xDE20D863, 0x3F42128C,
-/**/ 0x5FC00000, 0xBF421146,
-/**/ 0x0C3035EB, 0x3D36EFF3,
-/**/ 0x5B2CD24E, 0x3F420288,
-/**/ 0x1E600000, 0xBF420144,
-/**/ 0x73569B27, 0xBD19A3E2,
-/**/ 0xDC3A7CB2, 0x3F41F283,
-/**/ 0xDF200000, 0xBF41F141,
-/**/ 0xEEB67715, 0x3D3B1DDE,
-/**/ 0x6149D610, 0x3F41E27F,
-/**/ 0xA1C00000, 0xBF41E13F,
-/**/ 0x94F49154, 0xBD11EA17,
-/**/ 0xEA5ADCE5, 0x3F41D27A,
-/**/ 0x66800000, 0xBF41D13D,
-/**/ 0x52DD9D37, 0x3D3ACED9,
-/**/ 0x776D8FB1, 0x3F41C276,
-/**/ 0x2D200000, 0xBF41C13B,
-/**/ 0xF72D8EEB, 0xBD1C140B,
-/**/ 0x0881ECF4, 0x3F41B272,
-/**/ 0xF5E00000, 0xBF41B138,
-/**/ 0x939583E1, 0x3D360AE5,
-/**/ 0x9D97F32C, 0x3F41A26D,
-/**/ 0xC0800000, 0xBF41A136,
-/**/ 0x1D246C7C, 0xBD2C00D9,
-/**/ 0x36AFA0D9, 0x3F419269,
-/**/ 0x8D400000, 0xBF419134,
-/**/ 0x0B955CFB, 0x3D29B40E,
-/**/ 0xD3C8F479, 0x3F418264,
-/**/ 0x5BE00000, 0xBF418132,
-/**/ 0x45A6C249, 0xBD3964BF,
-/**/ 0x74E3EC8D, 0x3F417260,
-/**/ 0x2CA00000, 0xBF417130,
-/**/ 0xF3363612, 0xBCE777E0,
-/**/ 0x1A008792, 0x3F41625C,
-/**/ 0xFF600000, 0xBF41612D,
-/**/ 0x28DE8296, 0x3D36D608,
-/**/ 0xC31EC409, 0x3F415257,
-/**/ 0xD4000000, 0xBF41512B,
-/**/ 0x4BB1B788, 0xBD32AE69,
-/**/ 0x703EA071, 0x3F414253,
-/**/ 0xAAC00000, 0xBF414129,
-/**/ 0x170ECD8C, 0x3D05BF68,
-/**/ 0x21601B48, 0x3F41324F,
-/**/ 0x83800000, 0xBF413127,
-/**/ 0x7C653BFC, 0x3D370A0B,
-/**/ 0xD683330E, 0x3F41224A,
-/**/ 0x5E200000, 0xBF412125,
-/**/ 0x77BBBEBF, 0xBD35B70D,
-/**/ 0x8FA7E642, 0x3F411246,
-/**/ 0x3AE00000, 0xBF411123,
-/**/ 0x93ABC1CD, 0xBD0C52EB,
-/**/ 0x4CCE3363, 0x3F410242,
-/**/ 0x19A00000, 0xBF410121,
-/**/ 0xE5C6F4C7, 0x3D2B2237,
-/**/ 0x0DF618F1, 0x3F40F23E,
-/**/ 0xFA600000, 0xBF40F11E,
-/**/ 0x1E9A50AD, 0x3D3D9C5F,
-/**/ 0xD31F956A, 0x3F40E239,
-/**/ 0xDD000000, 0xBF40E11C,
-/**/ 0x8965F0DA, 0xBD336793,
-/**/ 0x9C4AA74E, 0x3F40D235,
-/**/ 0xC1C00000, 0xBF40D11A,
-/**/ 0x7E49E231, 0xBD15E6EE,
-/**/ 0x69774D1D, 0x3F40C231,
-/**/ 0xA8800000, 0xBF40C118,
-/**/ 0x04FD621C, 0x3D1D9B9D,
-/**/ 0x3AA58554, 0x3F40B22D,
-/**/ 0x91400000, 0xBF40B116,
-/**/ 0x7DD9EED3, 0x3D333B55,
-/**/ 0x0FD54E74, 0x3F40A229,
-/**/ 0x7C000000, 0xBF40A114,
-/**/ 0x7AA78478, 0x3D3E048F,
-/**/ 0xE906A6FC, 0x3F409224,
-/**/ 0x68A00000, 0xBF409112,
-/**/ 0x644DDE88, 0xBD383C6A,
-/**/ 0xC6398D6B, 0x3F408220,
-/**/ 0x57600000, 0xBF408110,
-/**/ 0x76B8C83A, 0xBD2F0D2F,
-/**/ 0xA76E0040, 0x3F40721C,
-/**/ 0x48200000, 0xBF40710E,
-/**/ 0x9CE99FD3, 0xBD1F63E0,
-/**/ 0x8CA3FDFB, 0x3F406218,
-/**/ 0x3AE00000, 0xBF40610C,
-/**/ 0x4FE774F2, 0xBCF328B4,
-/**/ 0x75DB851A, 0x3F405214,
-/**/ 0x2FA00000, 0xBF40510A,
-/**/ 0x3782BCD4, 0x3D11B6BD,
-/**/ 0x6314941D, 0x3F404210,
-/**/ 0x26600000, 0xBF404108,
-/**/ 0xE7183792, 0x3D22116F,
-/**/ 0x544F2983, 0x3F40320C,
-/**/ 0x1F200000, 0xBF403106,
-/**/ 0x1B995B3D, 0x3D293F1E,
-/**/ 0x498B43CB, 0x3F402208,
-/**/ 0x19E00000, 0xBF402104,
-/**/ 0xFC162630, 0x3D2E6669,
-/**/ 0x42C8E175, 0x3F401204,
-/**/ 0x16A00000, 0xBF401102,
-/**/ 0x254FC9F8, 0x3D30C4AA,
-/**/ 0x40080100, 0x3F400200,
-/**/ 0x15600000, 0xBF400100,
-/**/ 0xE4431F92, 0x3D3154EE,
-/**/ 0x829141D6, 0x3F3FE3F8,
-/**/ 0x2C400000, 0xBF3FE1FC,
-/**/ 0x9B2D30FB, 0x3D30E503,
-/**/ 0x8D157F6B, 0x3F3FC3F0,
-/**/ 0x31C00000, 0xBF3FC1F8,
-/**/ 0x53EBD670, 0x3D2EEBD1,
-/**/ 0x9F9CB7BC, 0x3F3FA3E8,
-/**/ 0x3B400000, 0xBF3FA1F4,
-/**/ 0xE04A16E0, 0x3D2A113C,
-/**/ 0xBA26E7CA, 0x3F3F83E0,
-/**/ 0x48C00000, 0xBF3F81F0,
-/**/ 0x99C43E34, 0x3D233C4A,
-/**/ 0xDCB40C91, 0x3F3F63D8,
-/**/ 0x5A400000, 0xBF3F61EC,
-/**/ 0x7BD210C1, 0x3D14DDF6,
-/**/ 0x07442311, 0x3F3F43D1,
-/**/ 0x6FC00000, 0xBF3F41E8,
-/**/ 0x9E4B51C8, 0xBCC52C1D,
-/**/ 0x39D72849, 0x3F3F23C9,
-/**/ 0x89400000, 0xBF3F21E4,
-/**/ 0x8EA8C754, 0xBD1A196F,
-/**/ 0x746D1936, 0x3F3F03C1,
-/**/ 0xA6C00000, 0xBF3F01E0,
-/**/ 0xF95AF98D, 0xBD2BB719,
-/**/ 0xB705F2D8, 0x3F3EE3B9,
-/**/ 0xC8400000, 0xBF3EE1DC,
-/**/ 0x28FFD598, 0xBD3628EB,
-/**/ 0x01A1B22C, 0x3F3EC3B2,
-/**/ 0xEDC00000, 0xBF3EC1D8,
-/**/ 0x0BBAC8F8, 0xBD3F6D76,
-/**/ 0x54405432, 0x3F3EA3AA,
-/**/ 0x17800000, 0xBF3EA1D5,
-/**/ 0xB7A7EE0D, 0x3D3657D2,
-/**/ 0xAEE1D5E8, 0x3F3E83A2,
-/**/ 0x45000000, 0xBF3E81D1,
-/**/ 0xFA9CCC78, 0x3D264FDE,
-/**/ 0x1186344C, 0x3F3E639B,
-/**/ 0x76800000, 0xBF3E61CD,
-/**/ 0xE02EF455, 0xBCEF83EB,
-/**/ 0x7C2D6C5E, 0x3F3E4393,
-/**/ 0xAC000000, 0xBF3E41C9,
-/**/ 0x03C3E129, 0xBD2C26B3,
-/**/ 0xEED77B1B, 0x3F3E238B,
-/**/ 0xE5800000, 0xBF3E21C5,
-/**/ 0x904D773D, 0xBD3C1CBE,
-/**/ 0x69845D83, 0x3F3E0384,
-/**/ 0x23400000, 0xBF3E01C2,
-/**/ 0xD0615454, 0x3D34E8B1,
-/**/ 0xEC341093, 0x3F3DE37C,
-/**/ 0x64C00000, 0xBF3DE1BE,
-/**/ 0xE9BE933E, 0x3D13F7DF,
-/**/ 0x76E6914B, 0x3F3DC375,
-/**/ 0xAA400000, 0xBF3DC1BA,
-/**/ 0x707B004A, 0xBD27B7D7,
-/**/ 0x099BDCA9, 0x3F3DA36E,
-/**/ 0xF3C00000, 0xBF3DA1B6,
-/**/ 0xEE2141C3, 0xBD3DA3F8,
-/**/ 0xA453EFAC, 0x3F3D8366,
-/**/ 0x41800000, 0xBF3D81B3,
-/**/ 0x63D21825, 0x3D2F4DA1,
-/**/ 0x470EC752, 0x3F3D635F,
-/**/ 0x93000000, 0xBF3D61AF,
-/**/ 0xFAD0B844, 0xBD0FD473,
-/**/ 0xF1CC609A, 0x3F3D4357,
-/**/ 0xE8800000, 0xBF3D41AB,
-/**/ 0x298657C2, 0xBD388716,
-/**/ 0xA48CB882, 0x3F3D2350,
-/**/ 0x42400000, 0xBF3D21A8,
-/**/ 0x0B68711A, 0x3D32023A,
-/**/ 0x5F4FCC0A, 0x3F3D0349,
-/**/ 0x9FC00000, 0xBF3D01A4,
-/**/ 0x23A704B0, 0xBD117676,
-/**/ 0x22159830, 0x3F3CE342,
-/**/ 0x01400000, 0xBF3CE1A1,
-/**/ 0x8F391F09, 0xBD3BA59C,
-/**/ 0xECDE19F1, 0x3F3CC33A,
-/**/ 0x67000000, 0xBF3CC19D,
-/**/ 0x9EBBF706, 0x3D28567A,
-/**/ 0xBFA94E4E, 0x3F3CA333,
-/**/ 0xD0800000, 0xBF3CA199,
-/**/ 0x2D41F1CC, 0xBD29D41F,
-/**/ 0x9A773245, 0x3F3C832C,
-/**/ 0x3E400000, 0xBF3C8196,
-/**/ 0x14ED5134, 0x3D391B7D,
-/**/ 0x7D47C2D4, 0x3F3C6325,
-/**/ 0xAFC00000, 0xBF3C6192,
-/**/ 0x83403B5B, 0xBCFC31C5,
-/**/ 0x681AFCFA, 0x3F3C431E,
-/**/ 0x25400000, 0xBF3C418F,
-/**/ 0x88A1FFF3, 0xBD3D84DB,
-/**/ 0x5AF0DDB6, 0x3F3C2317,
-/**/ 0x9F000000, 0xBF3C218B,
-/**/ 0x6298A63B, 0x3D175CFF,
-/**/ 0x55C96207, 0x3F3C0310,
-/**/ 0x1C800000, 0xBF3C0188,
-/**/ 0xDFB8E489, 0xBD37ADC9,
-/**/ 0x58A486EA, 0x3F3BE309,
-/**/ 0x9E400000, 0xBF3BE184,
-/**/ 0x45069C64, 0x3D23DA0F,
-/**/ 0x6382495F, 0x3F3BC302,
-/**/ 0x23C00000, 0xBF3BC181,
-/**/ 0x4CC2EFE0, 0xBD35574B,
-/**/ 0x7662A665, 0x3F3BA2FB,
-/**/ 0xAD800000, 0xBF3BA17D,
-/**/ 0x4BED0B89, 0x3D250C7B,
-/**/ 0x91459AFA, 0x3F3B82F4,
-/**/ 0x3B000000, 0xBF3B817A,
-/**/ 0x322E5605, 0xBD36795D,
-/**/ 0xB42B241D, 0x3F3B62ED,
-/**/ 0xCCC00000, 0xBF3B6176,
-/**/ 0xF6413886, 0x3D1EAB91,
-/**/ 0xDF133ECC, 0x3F3B42E6,
-/**/ 0x62400000, 0xBF3B4173,
-/**/ 0xF86BE5B5, 0xBD3B0BFC,
-/**/ 0x11FDE807, 0x3F3B22E0,
-/**/ 0xFC000000, 0xBF3B216F,
-/**/ 0xDDE8D701, 0x3CF62FEB,
-/**/ 0x4CEB1CCC, 0x3F3B02D9,
-/**/ 0x99C00000, 0xBF3B016C,
-/**/ 0xF210FD9E, 0x3D3CF8D7,
-/**/ 0x8FDADA1A, 0x3F3AE2D2,
-/**/ 0x3B400000, 0xBF3AE169,
-/**/ 0x1526CFB0, 0xBD2092E2,
-/**/ 0xDACD1CEF, 0x3F3AC2CB,
-/**/ 0xE1000000, 0xBF3AC165,
-/**/ 0x18D261D5, 0x3D319D24,
-/**/ 0x2DC1E24A, 0x3F3AA2C5,
-/**/ 0x8A800000, 0xBF3AA162,
-/**/ 0x533CC8EC, 0xBD355268,
-/**/ 0x88B9272B, 0x3F3A82BE,
-/**/ 0x38400000, 0xBF3A815F,
-/**/ 0x0AFE6139, 0x3D074750,
-/**/ 0xEBB2E88F, 0x3F3A62B7,
-/**/ 0xEA000000, 0xBF3A615B,
-/**/ 0x6668AD57, 0x3D3A501B,
-/**/ 0x56AF2375, 0x3F3A42B1,
-/**/ 0x9F800000, 0xBF3A4158,
-/**/ 0xA98381BD, 0xBD2E37A7,
-/**/ 0xC9ADD4DD, 0x3F3A22AA,
-/**/ 0x59400000, 0xBF3A2155,
-/**/ 0x7B82F9AC, 0x3D1A9872,
-/**/ 0x44AEF9C5, 0x3F3A02A4,
-/**/ 0x17000000, 0xBF3A0152,
-/**/ 0x0FF040AD, 0x3D3B96ED,
-/**/ 0xC7B28F2C, 0x3F39E29D,
-/**/ 0xD8800000, 0xBF39E14E,
-/**/ 0x33534BD7, 0xBD304862,
-/**/ 0x52B89211, 0x3F39C297,
-/**/ 0x9E400000, 0xBF39C14B,
-/**/ 0x17AF009B, 0x3D084979,
-/**/ 0xE5C0FF72, 0x3F39A290,
-/**/ 0x68000000, 0xBF39A148,
-/**/ 0x604B64C9, 0x3D358CA1,
-/**/ 0x80CBD44E, 0x3F39828A,
-/**/ 0x35800000, 0xBF398145,
-/**/ 0x2E334404, 0xBD38BD0B,
-/**/ 0x23D90DA4, 0x3F396284,
-/**/ 0x07400000, 0xBF396142,
-/**/ 0xEF1B1C68, 0xBD1F4B58,
-/**/ 0xCEE8A873, 0x3F39427D,
-/**/ 0xDD000000, 0xBF39413E,
-/**/ 0x07E010EC, 0x3D209881,
-/**/ 0x81FAA1B9, 0x3F392277,
-/**/ 0xB6C00000, 0xBF39213B,
-/**/ 0x5CF03181, 0x3D37A139,
-/**/ 0x3D0EF676, 0x3F390271,
-/**/ 0x94400000, 0xBF390138,
-/**/ 0x65276B0B, 0xBD39D2EB,
-/**/ 0x0025A3A8, 0x3F38E26B,
-/**/ 0x76000000, 0xBF38E135,
-/**/ 0xEE3023F6, 0xBD281E5A,
-/**/ 0xCB3EA64F, 0x3F38C264,
-/**/ 0x5BC00000, 0xBF38C132,
-/**/ 0x3F9A4B53, 0x3CEDAE6E,
-/**/ 0x9E59FB68, 0x3F38A25E,
-/**/ 0x45800000, 0xBF38A12F,
-/**/ 0x412B648E, 0x3D2A47EF,
-/**/ 0x79779FF3, 0x3F388258,
-/**/ 0x33400000, 0xBF38812C,
-/**/ 0x5ED0D8F2, 0x3D38955F,
-/**/ 0x5C9790EE, 0x3F386252,
-/**/ 0x24C00000, 0xBF386129,
-/**/ 0x09939374, 0xBD3CBD55,
-/**/ 0x47B9CB5A, 0x3F38424C,
-/**/ 0x1A800000, 0xBF384126,
-/**/ 0x4F399186, 0xBD32D325,
-/**/ 0x3ADE4C33, 0x3F382246,
-/**/ 0x14400000, 0xBF382123,
-/**/ 0x524688EB, 0xBD235622,
-/**/ 0x3605107A, 0x3F380240,
-/**/ 0x12000000, 0xBF380120,
-/**/ 0xEB2F3DDC, 0xBCF44184,
-/**/ 0x392E152C, 0x3F37E23A,
-/**/ 0x13C00000, 0xBF37E11D,
-/**/ 0x2153D1B8, 0x3D198B16,
-/**/ 0x4459574A, 0x3F37C234,
-/**/ 0x19800000, 0xBF37C11A,
-/**/ 0x47A3C923, 0x3D2A9511,
-/**/ 0x5786D3D1, 0x3F37A22E,
-/**/ 0x23400000, 0xBF37A117,
-/**/ 0x4B4128D9, 0x3D337431,
-/**/ 0x72B687C1, 0x3F378228,
-/**/ 0x31000000, 0xBF378114,
-/**/ 0xC5BFE9E8, 0x3D38E0BF,
-/**/ 0x95E87019, 0x3F376222,
-/**/ 0x42C00000, 0xBF376111,
-/**/ 0x5A0B2CE9, 0x3D3D9134,
-/**/ 0xC11C89D8, 0x3F37421C,
-/**/ 0x58400000, 0xBF37410E,
-/**/ 0xB1802C40, 0xBD3E7970,
-/**/ 0xF452D1FB, 0x3F372216,
-/**/ 0x72000000, 0xBF37210B,
-/**/ 0x16E562C9, 0xBD3B3E2F,
-/**/ 0x2F8B4583, 0x3F370211,
-/**/ 0x8FC00000, 0xBF370108,
-/**/ 0x9087DACD, 0xBD38BC06,
-/**/ 0x72C5E16F, 0x3F36E20B,
-/**/ 0xB1800000, 0xBF36E105,
-/**/ 0xD92B1B21, 0xBD36F1F6,
-/**/ 0xBE02A2BC, 0x3F36C205,
-/**/ 0xD7400000, 0xBF36C102,
-/**/ 0xABF2CD23, 0xBD35DEFF,
-/**/ 0x1141866B, 0x3F36A200,
-/**/ 0x01000000, 0xBF36A100,
-/**/ 0xC462BC85, 0xBD358220,
-/**/ 0x6C828979, 0x3F3681FA,
-/**/ 0x2EC00000, 0xBF3680FD,
-/**/ 0xDE5ED723, 0xBD35DA59,
-/**/ 0xCFC5A8E7, 0x3F3661F4,
-/**/ 0x60800000, 0xBF3660FA,
-/**/ 0xB62B2CD1, 0xBD36E6AA,
-/**/ 0x3B0AE1B2, 0x3F3641EF,
-/**/ 0x96400000, 0xBF3640F7,
-/**/ 0x086BEF29, 0xBD38A613,
-/**/ 0xAE5230DA, 0x3F3621E9,
-/**/ 0xD0000000, 0xBF3620F4,
-/**/ 0x9225715D, 0xBD3B1792,
-/**/ 0x299B935F, 0x3F3601E4,
-/**/ 0x0DC00000, 0xBF3600F2,
-/**/ 0x10BC2805, 0xBD3E3A29,
-/**/ 0xACE7063E, 0x3F35E1DE,
-/**/ 0x4FC00000, 0xBF35E0EF,
-/**/ 0xBE0B570D, 0x3D3DF329,
-/**/ 0x38348676, 0x3F35C1D9,
-/**/ 0x95800000, 0xBF35C0EC,
-/**/ 0x1C0C5502, 0x3D397166,
-/**/ 0xCB841108, 0x3F35A1D3,
-/**/ 0xDF400000, 0xBF35A0E9,
-/**/ 0x4AC1FA2D, 0x3D34418C,
-/**/ 0x66D5A2F1, 0x3F3581CE,
-/**/ 0x2D000000, 0xBF3580E7,
-/**/ 0x168E9C6E, 0x3D2CC939,
-/**/ 0x0A293931, 0x3F3561C9,
-/**/ 0x7EC00000, 0xBF3560E4,
-/**/ 0x795CE154, 0x3D1F6E5C,
-/**/ 0xB57ED0C7, 0x3F3541C3,
-/**/ 0xD4800000, 0xBF3540E1,
-/**/ 0x898FEE67, 0x3CE4EF88,
-/**/ 0x68D666B1, 0x3F3521BE,
-/**/ 0x2E400000, 0xBF3520DF,
-/**/ 0x0B78D65E, 0xBD1CDACF,
-/**/ 0x242FF7EF, 0x3F3501B9,
-/**/ 0x8C000000, 0xBF3500DC,
-/**/ 0x6F1CBFB8, 0xBD2F7BF1,
-/**/ 0xE78B8180, 0x3F34E1B3,
-/**/ 0xEDC00000, 0xBF34E0D9,
-/**/ 0x5A899820, 0xBD38ED52,
-/**/ 0xB2E90063, 0x3F34C1AE,
-/**/ 0x53C00000, 0xBF34C0D7,
-/**/ 0x930A694E, 0x3D3D3C3F,
-/**/ 0x86487196, 0x3F34A1A9,
-/**/ 0xBD800000, 0xBF34A0D4,
-/**/ 0x4FA7CCCB, 0x3D32BFBD,
-/**/ 0x61A9D219, 0x3F3481A4,
-/**/ 0x2B400000, 0xBF3480D2,
-/**/ 0x65A26E32, 0x3D1E789C,
-/**/ 0x450D1EEB, 0x3F34619F,
-/**/ 0x9D000000, 0xBF3460CF,
-/**/ 0x47E500B5, 0xBD109E0B,
-/**/ 0x3072550B, 0x3F34419A,
-/**/ 0x12C00000, 0xBF3440CD,
-/**/ 0x3523FAE9, 0xBD309040,
-/**/ 0x23D97178, 0x3F342195,
-/**/ 0x8C800000, 0xBF3420CA,
-/**/ 0xD31DE7C2, 0xBD3D9B10,
-/**/ 0x1F427131, 0x3F340190,
-/**/ 0x0A800000, 0xBF3400C8,
-/**/ 0x90B287C4, 0x3D34B90B,
-/**/ 0x22AD5135, 0x3F33E18B,
-/**/ 0x8C400000, 0xBF33E0C5,
-/**/ 0xCA1B0FC2, 0x3D19B454,
-/**/ 0x2E1A0E83, 0x3F33C186,
-/**/ 0x12000000, 0xBF33C0C3,
-/**/ 0x638FC1F4, 0xBD20FBE7,
-/**/ 0x4188A61A, 0x3F33A181,
-/**/ 0x9BC00000, 0xBF33A0C0,
-/**/ 0xE0C03290, 0xBD38070E,
-/**/ 0x5CF914F9, 0x3F33817C,
-/**/ 0x29C00000, 0xBF3380BE,
-/**/ 0xE0B6E5F5, 0x3D37D2C3,
-/**/ 0x806B5820, 0x3F336177,
-/**/ 0xBB800000, 0xBF3360BB,
-/**/ 0x35598794, 0x3D1C4213,
-/**/ 0xABDF6C8D, 0x3F334172,
-/**/ 0x51400000, 0xBF3340B9,
-/**/ 0xC111C569, 0xBD249997,
-/**/ 0xDF554F40, 0x3F33216D,
-/**/ 0xEB000000, 0xBF3320B6,
-/**/ 0xEEEE28E2, 0xBD3C442D,
-/**/ 0x1ACCFD37, 0x3F330169,
-/**/ 0x89000000, 0xBF3300B4,
-/**/ 0xDBBF316D, 0x3D312B5E,
-/**/ 0x5E467372, 0x3F32E164,
-/**/ 0x2AC00000, 0xBF32E0B2,
-/**/ 0x7484E6E1, 0xBCFFD254,
-/**/ 0xA9C1AEF0, 0x3F32C15F,
-/**/ 0xD0800000, 0xBF32C0AF,
-/**/ 0x1F2C3F9D, 0xBD35BCBA,
-/**/ 0xFD3EACAF, 0x3F32A15A,
-/**/ 0x7A800000, 0xBF32A0AD,
-/**/ 0x8C8BAA61, 0x3D35EDA0,
-/**/ 0x58BD69B0, 0x3F328156,
-/**/ 0x28400000, 0xBF3280AB,
-/**/ 0x3F79FE5E, 0x3CF02EAF,
-/**/ 0xBC3DE2F1, 0x3F326151,
-/**/ 0xDA000000, 0xBF3260A8,
-/**/ 0xB1304AA8, 0xBD347BDA,
-/**/ 0x27C01572, 0x3F32414D,
-/**/ 0x90000000, 0xBF3240A6,
-/**/ 0xD46BE359, 0x3D35724F,
-/**/ 0x9B43FE30, 0x3F322148,
-/**/ 0x49C00000, 0xBF3220A4,
-/**/ 0x43BF90C9, 0xBCF31954,
-/**/ 0x16C99A2D, 0x3F320144,
-/**/ 0x07800000, 0xBF3200A2,
-/**/ 0xC4901E30, 0xBD386689,
-/**/ 0x9A50E666, 0x3F31E13F,
-/**/ 0xC9800000, 0xBF31E09F,
-/**/ 0x134E34BF, 0x3D2FA8E5,
-/**/ 0x25D9DFDB, 0x3F31C13B,
-/**/ 0x8F400000, 0xBF31C09D,
-/**/ 0x477D87DF, 0xBD20FF40,
-/**/ 0xB964838C, 0x3F31A136,
-/**/ 0x59400000, 0xBF31A09B,
-/**/ 0x68B5B77B, 0x3D3E9E3E,
-/**/ 0x54F0CE76, 0x3F318132,
-/**/ 0x27000000, 0xBF318099,
-/**/ 0x906F8A53, 0x3D14BC39,
-/**/ 0xF87EBD9A, 0x3F31612D,
-/**/ 0xF8C00000, 0xBF316096,
-/**/ 0xFCD50724, 0xBD34CC2F,
-/**/ 0xA40E4DF7, 0x3F314129,
-/**/ 0xCEC00000, 0xBF314094,
-/**/ 0x7A3A1B8D, 0x3D30AD83,
-/**/ 0x579F7C8B, 0x3F312125,
-/**/ 0xA8800000, 0xBF312092,
-/**/ 0x057F5C66, 0xBD24C5AE,
-/**/ 0x13324657, 0x3F310121,
-/**/ 0x86800000, 0xBF310090,
-/**/ 0xBFD488E0, 0x3D3A03C0,
-/**/ 0xD6C6A858, 0x3F30E11C,
-/**/ 0x68400000, 0xBF30E08E,
-/**/ 0x56935D63, 0xBD00EDA8,
-/**/ 0xA25C9F8F, 0x3F30C118,
-/**/ 0x4E000000, 0xBF30C08C,
-/**/ 0x2FDDD1CE, 0xBD3EC638,
-/**/ 0x75F428FB, 0x3F30A114,
-/**/ 0x38000000, 0xBF30A08A,
-/**/ 0x0CA3DCBE, 0x3D102CDE,
-/**/ 0x518D419B, 0x3F308110,
-/**/ 0x25C00000, 0xBF308088,
-/**/ 0xBFA78921, 0xBD39A865,
-/**/ 0x3527E66D, 0x3F30610C,
-/**/ 0x17C00000, 0xBF306086,
-/**/ 0x72CE37BD, 0x3D203FE0,
-/**/ 0x20C41472, 0x3F304108,
-/**/ 0x0D800000, 0xBF304084,
-/**/ 0x6054C3FA, 0xBD369AC6,
-/**/ 0x1461C8A9, 0x3F302104,
-/**/ 0x07800000, 0xBF302082,
-/**/ 0x4836293A, 0x3D2450ED,
-/**/ 0x10010010, 0x3F300100,
-/**/ 0x05400000, 0xBF300080,
-/**/ 0x88B3357C, 0xBD359558,
-/**/ 0x27436F4F, 0x3F2FC1F8,
-/**/ 0x0E800000, 0xBF2FC0FC,
-/**/ 0x92ECD4D1, 0x3D245998,
-/**/ 0x3E87D8DC, 0x3F2F81F0,
-/**/ 0x1A000000, 0xBF2F80F8,
-/**/ 0xB592170A, 0xBD36901A,
-/**/ 0x65CF36C6, 0x3F2F41E8,
-/**/ 0x2E000000, 0xBF2F40F4,
-/**/ 0x53524603, 0x3D2069E5,
-/**/ 0x9D19830B, 0x3F2F01E0,
-/**/ 0x49800000, 0xBF2F00F0,
-/**/ 0x69C22240, 0xBD39830B,
-/**/ 0xE466B7AB, 0x3F2EC1D8,
-/**/ 0x6D800000, 0xBF2EC0EC,
-/**/ 0xFB871BBA, 0x3D1123AC,
-/**/ 0x3BB6CEA4, 0x3F2E81D1,
-/**/ 0x99000000, 0xBF2E80E8,
-/**/ 0x2E158AF6, 0xBD3E6629,
-/**/ 0xA309C1F4, 0x3F2E41C9,
-/**/ 0xCD000000, 0xBF2E40E4,
-/**/ 0x2B29884E, 0xBCF8F488,
-/**/ 0x1A5F8B99, 0x3F2E01C2,
-/**/ 0x09000000, 0xBF2E00E1,
-/**/ 0x6EA006C6, 0x3D3ACE8D,
-/**/ 0xA1B82593, 0x3F2DC1BA,
-/**/ 0x4C800000, 0xBF2DC0DD,
-/**/ 0x59D0B687, 0xBD22974E,
-/**/ 0x391389E0, 0x3F2D81B3,
-/**/ 0x98800000, 0xBF2D80D9,
-/**/ 0xD7897CAD, 0x3D322319,
-/**/ 0xE071B27F, 0x3F2D41AB,
-/**/ 0xEC000000, 0xBF2D40D5,
-/**/ 0x57954C6E, 0xBD32E42F,
-/**/ 0x97D2996E, 0x3F2D01A4,
-/**/ 0x48000000, 0xBF2D00D2,
-/**/ 0xC741610E, 0x3D1E7DF5,
-/**/ 0x5F3638AB, 0x3F2CC19D,
-/**/ 0xAB800000, 0xBF2CC0CE,
-/**/ 0xA0909C5A, 0xBD3E50DF,
-/**/ 0x369C8A37, 0x3F2C8196,
-/**/ 0x17800000, 0xBF2C80CB,
-/**/ 0x8D8D1C8F, 0xBD12D119,
-/**/ 0x1E05880E, 0x3F2C418F,
-/**/ 0x8B800000, 0xBF2C40C7,
-/**/ 0x544D2574, 0x3D347649,
-/**/ 0x15712C30, 0x3F2C0188,
-/**/ 0x07000000, 0xBF2C00C4,
-/**/ 0x4EEA9E68, 0xBD32D030,
-/**/ 0x1CDF709C, 0x3F2BC181,
-/**/ 0x8B000000, 0xBF2BC0C0,
-/**/ 0x74A84109, 0x3D15E533,
-/**/ 0x34504F50, 0x3F2B817A,
-/**/ 0x17000000, 0xBF2B80BD,
-/**/ 0x025FBF68, 0x3D3D53C1,
-/**/ 0x5BC3C24B, 0x3F2B4173,
-/**/ 0xAA800000, 0xBF2B40B9,
-/**/ 0x6BAA2FA8, 0xBD267FA7,
-/**/ 0x9339C38C, 0x3F2B016C,
-/**/ 0x46800000, 0xBF2B00B6,
-/**/ 0xBB3FDE1E, 0x3D277F1D,
-/**/ 0xDAB24D11, 0x3F2AC165,
-/**/ 0xEA000000, 0xBF2AC0B2,
-/**/ 0x1A8CDBE2, 0xBD3DAD17,
-/**/ 0x322D58D9, 0x3F2A815F,
-/**/ 0x96000000, 0xBF2A80AF,
-/**/ 0xD81CF36E, 0xBD1E1315,
-/**/ 0x99AAE0E3, 0x3F2A4158,
-/**/ 0x4A000000, 0xBF2A40AC,
-/**/ 0xE649E7B4, 0x3D2C7307,
-/**/ 0x112ADF2D, 0x3F2A0152,
-/**/ 0x05800000, 0xBF2A00A9,
-/**/ 0xB77435EC, 0xBD3C713A,
-/**/ 0x98AD4DB7, 0x3F29C14B,
-/**/ 0xC9800000, 0xBF29C0A5,
-/**/ 0x3A7AE827, 0xBD1E1005,
-/**/ 0x3032267F, 0x3F298145,
-/**/ 0x95800000, 0xBF2980A2,
-/**/ 0xA8F2A842, 0x3D2A0460,
-/**/ 0xD7B96385, 0x3F29413E,
-/**/ 0x69000000, 0xBF29409F,
-/**/ 0xA7B8321E, 0xBD3EDDA5,
-/**/ 0x8F42FEC5, 0x3F290138,
-/**/ 0x45000000, 0xBF29009C,
-/**/ 0x3A3F0D33, 0xBD264506,
-/**/ 0x56CEF241, 0x3F28C132,
-/**/ 0x29000000, 0xBF28C099,
-/**/ 0x33EE13CD, 0x3D206930,
-/**/ 0x2E5D37F6, 0x3F28812C,
-/**/ 0x15000000, 0xBF288096,
-/**/ 0x22DF1FDA, 0x3D3B28AC,
-/**/ 0x15EDC9E3, 0x3F284126,
-/**/ 0x08800000, 0xBF284093,
-/**/ 0xDD73B6DB, 0xBD324546,
-/**/ 0x0D80A208, 0x3F280120,
-/**/ 0x04800000, 0xBF280090,
-/**/ 0x6DFEB485, 0xBCB440C2,
-/**/ 0x1515BA62, 0x3F27C11A,
-/**/ 0x08800000, 0xBF27C08D,
-/**/ 0x9823B19D, 0x3D31BCBE,
-/**/ 0x2CAD0CF1, 0x3F278114,
-/**/ 0x14000000, 0xBF27808A,
-/**/ 0xA9EB4E97, 0xBD3CD148,
-/**/ 0x544693B4, 0x3F27410E,
-/**/ 0x28000000, 0xBF274087,
-/**/ 0xCA4F73AA, 0xBD277AAC,
-/**/ 0x8BE248AA, 0x3F270108,
-/**/ 0x44000000, 0xBF270084,
-/**/ 0x26068EF7, 0x3D13E656,
-/**/ 0xD38025D2, 0x3F26C102,
-/**/ 0x68000000, 0xBF26C081,
-/**/ 0x44C3EC8A, 0x3D35547B,
-/**/ 0x2B20252A, 0x3F2680FD,
-/**/ 0x93800000, 0xBF26807E,
-/**/ 0x110DCE4B, 0xBD3AABA5,
-/**/ 0x92C240B1, 0x3F2640F7,
-/**/ 0xC7800000, 0xBF26407B,
-/**/ 0xAC011956, 0xBD260B96,
-/**/ 0x0A667267, 0x3F2600F2,
-/**/ 0x03800000, 0xBF260079,
-/**/ 0x5DFA826E, 0x3D111C22,
-/**/ 0x920CB44A, 0x3F25C0EC,
-/**/ 0x47800000, 0xBF25C076,
-/**/ 0xD8A2980A, 0x3D333BD6,
-/**/ 0x29B5005A, 0x3F2580E7,
-/**/ 0x93000000, 0xBF258073,
-/**/ 0x71C1D861, 0xBD3E2660,
-/**/ 0xD15F5095, 0x3F2540E1,
-/**/ 0xE7000000, 0xBF254070,
-/**/ 0x4E77E5EE, 0xBD2FBD3A,
-/**/ 0x890B9EFA, 0x3F2500DC,
-/**/ 0x43000000, 0xBF25006E,
-/**/ 0x7B90A2D9, 0xBCFEBDF2,
-/**/ 0x50B9E589, 0x3F24C0D7,
-/**/ 0xA7000000, 0xBF24C06B,
-/**/ 0x58F2FF2C, 0x3D2765B3,
-/**/ 0x286A1E40, 0x3F2480D2,
-/**/ 0x13000000, 0xBF248069,
-/**/ 0x74AE382C, 0x3D38FE8D,
-/**/ 0x101C431E, 0x3F2440CD,
-/**/ 0x86800000, 0xBF244066,
-/**/ 0xB0286224, 0xBD3A07C3,
-/**/ 0x07D04E23, 0x3F2400C8,
-/**/ 0x02800000, 0xBF240064,
-/**/ 0x46EFC0EC, 0xBD2ABE33,
-/**/ 0x0F86394D, 0x3F23C0C3,
-/**/ 0x86800000, 0xBF23C061,
-/**/ 0x70DE3151, 0xBCF06744,
-/**/ 0x273DFE9C, 0x3F2380BE,
-/**/ 0x12800000, 0xBF23805F,
-/**/ 0x05CFCD61, 0x3D260659,
-/**/ 0x4EF7980F, 0x3F2340B9,
-/**/ 0xA6800000, 0xBF23405C,
-/**/ 0xD7DBBEBC, 0x3D36BEC8,
-/**/ 0x86B2FFA4, 0x3F2300B4,
-/**/ 0x42000000, 0xBF23005A,
-/**/ 0x2B2027B4, 0xBD3DD29F,
-/**/ 0xCE702F5C, 0x3F22C0AF,
-/**/ 0xE6000000, 0xBF22C057,
-/**/ 0x6959A7D0, 0xBD32B00B,
-/**/ 0x262F2134, 0x3F2280AB,
-/**/ 0x92000000, 0xBF228055,
-/**/ 0x19FAAC2D, 0xBD1F61EF,
-/**/ 0x8DEFCF2C, 0x3F2240A6,
-/**/ 0x46000000, 0xBF224053,
-/**/ 0xCB16B8A8, 0x3D05A87E,
-/**/ 0x05B23344, 0x3F2200A2,
-/**/ 0x02000000, 0xBF220051,
-/**/ 0x23B9B257, 0x3D29F32F,
-/**/ 0x8D76477A, 0x3F21C09D,
-/**/ 0xC6000000, 0xBF21C04E,
-/**/ 0x7E214821, 0x3D36F61B,
-/**/ 0x253C05CD, 0x3F218099,
-/**/ 0x91800000, 0xBF21804C,
-/**/ 0x46FDFCA2, 0xBD3F5464,
-/**/ 0xCD03683D, 0x3F214094,
-/**/ 0x65800000, 0xBF21404A,
-/**/ 0xA30F2308, 0xBD35E4E7,
-/**/ 0x84CC68C9, 0x3F210090,
-/**/ 0x41800000, 0xBF210048,
-/**/ 0xF800CC34, 0xBD2974DC,
-/**/ 0x4C970171, 0x3F20C08C,
-/**/ 0x25800000, 0xBF20C046,
-/**/ 0xC1006E9D, 0xBD0E9FC5,
-/**/ 0x24632C32, 0x3F208088,
-/**/ 0x11800000, 0xBF208044,
-/**/ 0x078E4438, 0x3D133DE7,
-/**/ 0x0C30E30D, 0x3F204084,
-/**/ 0x05800000, 0xBF204042,
-/**/ 0x15F82A7B, 0x3D2A61D2,
-/**/ 0x04002001, 0x3F200080,
-/**/ 0x01800000, 0xBF200040,
-/**/ 0x3BBB110C, 0x3D355155,
-/**/ 0x17A1BA1A, 0x3F1F80F8,
-/**/ 0x0B000000, 0xBF1F807C,
-/**/ 0x6C520A9B, 0x3D3D31BE,
-/**/ 0x47462860, 0x3F1F00F0,
-/**/ 0x22000000, 0xBF1F0078,
-/**/ 0x4B6D83F6, 0xBD3B2CDB,
-/**/ 0x96ED7ED3, 0x3F1E80E8,
-/**/ 0x4A000000, 0xBF1E8074,
-/**/ 0xD4122C5A, 0xBD33C977,
-/**/ 0x0697B172, 0x3F1E00E1,
-/**/ 0x82000000, 0xBF1E0070,
-/**/ 0x2D1517C4, 0xBD29462E,
-/**/ 0x9644B43B, 0x3F1D80D9,
-/**/ 0xCA000000, 0xBF1D806C,
-/**/ 0xF0952D45, 0xBD16E2E3,
-/**/ 0x45F47B2C, 0x3F1D00D2,
-/**/ 0x22000000, 0xBF1D0069,
-/**/ 0x2DDC2A8D, 0x3CEED452,
-/**/ 0x15A6FA46, 0x3F1C80CB,
-/**/ 0x8A000000, 0xBF1C8065,
-/**/ 0xA08CEBE8, 0x3D1DAFEE,
-/**/ 0x055C2585, 0x3F1C00C4,
-/**/ 0x02000000, 0xBF1C0062,
-/**/ 0xBB11EF55, 0x3D2B50A4,
-/**/ 0x1513F0E9, 0x3F1B80BD,
-/**/ 0x8A000000, 0xBF1B805E,
-/**/ 0xC6D142BF, 0x3D33ACA6,
-/**/ 0x44CE5071, 0x3F1B00B6,
-/**/ 0x22000000, 0xBF1B005B,
-/**/ 0xF8CD3D11, 0x3D3979F8,
-/**/ 0x948B381A, 0x3F1A80AF,
-/**/ 0xCA000000, 0xBF1A8057,
-/**/ 0x07EDFD29, 0x3D3F1149,
-/**/ 0x044A9BE5, 0x3F1A00A9,
-/**/ 0x81000000, 0xBF1A0054,
-/**/ 0xF7BB7092, 0xBD3B8C68,
-/**/ 0x940C6FCF, 0x3F1980A2,
-/**/ 0x49000000, 0xBF198051,
-/**/ 0xF27E09A9, 0xBD365E1C,
-/**/ 0x43D0A7D8, 0x3F19009C,
-/**/ 0x21000000, 0xBF19004E,
-/**/ 0xD508D564, 0xBD3162D2,
-/**/ 0x139737FE, 0x3F188096,
-/**/ 0x09000000, 0xBF18804B,
-/**/ 0x18D5C93E, 0xBD293315,
-/**/ 0x03601440, 0x3F180090,
-/**/ 0x01000000, 0xBF180048,
-/**/ 0x0C26A328, 0xBD200288,
-/**/ 0x132B309E, 0x3F17808A,
-/**/ 0x09000000, 0xBF178045,
-/**/ 0x7E89FD6F, 0xBD0CC7F9,
-/**/ 0x42F88115, 0x3F170084,
-/**/ 0x21000000, 0xBF170042,
-/**/ 0x058494DC, 0x3CE40881,
-/**/ 0x92C7F9A5, 0x3F16807E,
-/**/ 0x49000000, 0xBF16803F,
-/**/ 0xCD5698B9, 0x3D12AE16,
-/**/ 0x02998E4D, 0x3F160079,
-/**/ 0x81000000, 0xBF16003C,
-/**/ 0xC5780E17, 0x3D21138B,
-/**/ 0x926D330B, 0x3F158073,
-/**/ 0xC9000000, 0xBF158039,
-/**/ 0x4E2001E2, 0x3D287809,
-/**/ 0x4242DBDF, 0x3F15006E,
-/**/ 0x21000000, 0xBF150037,
-/**/ 0x21448AA2, 0x3D2F8684,
-/**/ 0x121A7CC8, 0x3F148069,
-/**/ 0x89000000, 0xBF148034,
-/**/ 0x2F637D8E, 0x3D33207E,
-/**/ 0x01F409C4, 0x3F140064,
-/**/ 0x01000000, 0xBF140032,
-/**/ 0x12E44B29, 0x3D3654B9,
-/**/ 0x11CF76D3, 0x3F13805F,
-/**/ 0x89000000, 0xBF13802F,
-/**/ 0xCA5547F3, 0x3D3960F2,
-/**/ 0x41ACB7F4, 0x3F13005A,
-/**/ 0x21000000, 0xBF13002D,
-/**/ 0x6487063D, 0x3D3C462B,
-/**/ 0x918BC126, 0x3F128055,
-/**/ 0xC9000000, 0xBF12802A,
-/**/ 0xEFEA1107, 0x3D3F0562,
-/**/ 0x016C8668, 0x3F120051,
-/**/ 0x80000000, 0xBF120028,
-/**/ 0x857113CE, 0xBD3E6066,
-/**/ 0x914EFBBA, 0x3F11804C,
-/**/ 0x48000000, 0xBF118026,
-/**/ 0xEDD9EB54, 0xBD3BEA30,
-/**/ 0x41331519, 0x3F110048,
-/**/ 0x20000000, 0xBF110024,
-/**/ 0x3BFFFF5A, 0xBD3996FC,
-/**/ 0x1118C686, 0x3F108044,
-/**/ 0x08000000, 0xBF108022,
-/**/ 0x62F2E042, 0xBD3765C8,
-/**/ 0x01000400, 0x3F100040,
-/**/ 0x00000000, 0xBF100020,
-/**/ 0x562224CD, 0xBD355595,
-/**/ 0x21D1830C, 0x3F0F0078,
-/**/ 0x10000000, 0xBF0F003C,
-/**/ 0x095D69EB, 0xBD336563,
-/**/ 0x81A5E62E, 0x3F0E0070,
-/**/ 0x40000000, 0xBF0E0038,
-/**/ 0x70D45290, 0xBD319431,
-/**/ 0x217D1965, 0x3F0D0069,
-/**/ 0x90000000, 0xBF0D0034,
-/**/ 0x022D0EF6, 0xBD2FC201,
-/**/ 0x015704B1, 0x3F0C0062,
-/**/ 0x00000000, 0xBF0C0031,
-/**/ 0x5E276E21, 0xBD2C95A0,
-/**/ 0x2133900E, 0x3F0B005B,
-/**/ 0x90000000, 0xBF0B002D,
-/**/ 0xE0372A42, 0xBD29A140,
-/**/ 0x8112A37D, 0x3F0A0054,
-/**/ 0x40000000, 0xBF0A002A,
-/**/ 0x73BBB580, 0xBD26E2E2,
-/**/ 0x20F426FB, 0x3F09004E,
-/**/ 0x10000000, 0xBF090027,
-/**/ 0x04D48C20, 0xBD245885,
-/**/ 0x00D80288, 0x3F080048,
-/**/ 0x00000000, 0xBF080024,
-/**/ 0x80613426, 0xBD220028,
-/**/ 0x20BE1E23, 0x3F070042,
-/**/ 0x10000000, 0xBF070021,
-/**/ 0xA80279F3, 0xBD1FAF99,
-/**/ 0x80A661CA, 0x3F06003C,
-/**/ 0x40000000, 0xBF06001E,
-/**/ 0xDC287DFE, 0xBD1BBAE3,
-/**/ 0x2090B57C, 0x3F050037,
-/**/ 0x90000000, 0xBF05001B,
-/**/ 0x7B73B67C, 0xBD181E2F,
-/**/ 0x007D0139, 0x3F040032,
-/**/ 0x00000000, 0xBF040019,
-/**/ 0x65A375F8, 0xBD14D57C,
-/**/ 0x206B2CFF, 0x3F03002D,
-/**/ 0x90000000, 0xBF030016,
-/**/ 0x7BF71EC1, 0xBD11DCCA,
-/**/ 0x805B20CD, 0x3F020028,
-/**/ 0x40000000, 0xBF020014,
-/**/ 0x425C4447, 0xBD0E6033,
-/**/ 0x204CC4A3, 0x3F010024,
-/**/ 0x10000000, 0xBF010012,
-/**/ 0x730FFF5C, 0xBD0996D3,
-/**/ 0x00400080, 0x3F000020,
-/**/ 0x00000000, 0xBF000010,
-/**/ 0x558888DE, 0xBD055575,
-/**/ 0x406978C6, 0x3EFE0038,
-/**/ 0x20000000, 0xBEFE001C,
-/**/ 0xB845146A, 0xBD019418,
-/**/ 0x0055C096, 0x3EFC0031,
-/**/ 0x80000000, 0xBEFC0018,
-/**/ 0xD989DB3C, 0xBCFC957A,
-/**/ 0x4044A870, 0x3EFA002A,
-/**/ 0x20000000, 0xBEFA0015,
-/**/ 0x8F0EED2F, 0xBCF6E2C6,
-/**/ 0x00360051, 0x3EF80024,
-/**/ 0x00000000, 0xBEF80012,
-/**/ 0x40184CEB, 0xBCF20014,
-/**/ 0x40299839, 0x3EF6001E,
-/**/ 0x20000000, 0xBEF6000F,
-/**/ 0x434A1F5C, 0xBCEBBAC7,
-/**/ 0x001F4027, 0x3EF40019,
-/**/ 0x80000000, 0xBEF4000C,
-/**/ 0xDD68DD6A, 0xBCE4D568,
-/**/ 0x4016C81A, 0x3EF20014,
-/**/ 0x20000000, 0xBEF2000A,
-/**/ 0xA11710FC, 0xBCDE6019,
-/**/ 0x00100010, 0x3EF00010,
-/**/ 0x00000000, 0xBEF00008,
-/**/ 0x5562222D, 0xBCD55565,
-/**/ 0x80157013, 0x3EEC0018,
-/**/ 0x40000000, 0xBEEC000C,
-/**/ 0x176276C5, 0xBCCC9568,
-/**/ 0x000D800A, 0x3EE80012,
-/**/ 0x00000000, 0xBEE80009,
-/**/ 0x20061337, 0xBCC2000A,
-/**/ 0x8007D005, 0x3EE4000C,
-/**/ 0x40000000, 0xBEE40006,
-/**/ 0x195A3758, 0xBCB4D55F,
-/**/ 0x00040002, 0x3EE00008,
-/**/ 0x00000000, 0xBEE00004,
-/**/ 0x5558888A, 0xBCA5555D,
-/**/ 0x00036001, 0x3ED80009,
-/**/ 0x80000000, 0xBED80004,
-/**/ 0x100184CD, 0xBC920005,
-/**/ 0x00010000, 0x3ED00004,
-/**/ 0x00000000, 0xBED00002,
-/**/ 0x55562222, 0xBC755559,
-/**/ 0x00004000, 0x3EC00002,
-/**/ 0x00000000, 0xBEC00001,
-/**/ 0x55558889, 0xBC455557,
-/**/ 0x00000000, 0x00000000,
-/**/ 0x00000000, 0x00000000,
-/**/ 0x00000000, 0x00000000,
-/**/ 0x00008000, 0xBEBFFFFC,
-/**/ 0x00000000, 0x3EBFFFFE,
-/**/ 0x55558889, 0x3C455553,
-/**/ 0x00020000, 0xBECFFFF8,
-/**/ 0x00000000, 0x3ECFFFFC,
-/**/ 0x55562222, 0x3C755551,
-/**/ 0x00035FFF, 0xBED7FFF7,
-/**/ 0x80000000, 0x3ED7FFFB,
-/**/ 0xF00184CC, 0x3C91FFFA,
-/**/ 0x0007FFFC, 0xBEDFFFF0,
-/**/ 0x00000000, 0x3EDFFFF8,
-/**/ 0x55588887, 0x3CA5554D,
-/**/ 0x8007CFFB, 0xBEE3FFF3,
-/**/ 0xC0000000, 0x3EE3FFF9,
-/**/ 0x915A3753, 0x3CB4D54B,
-/**/ 0x000D7FF6, 0xBEE7FFEE,
-/**/ 0x00000000, 0x3EE7FFF7,
-/**/ 0xE006132F, 0x3CC1FFF5,
-/**/ 0x80156FED, 0xBEEBFFE7,
-/**/ 0xC0000000, 0x3EEBFFF3,
-/**/ 0x936276B2, 0x3CCC9542,
-/**/ 0x001FFFE0, 0xBEEFFFE0,
-/**/ 0x00000000, 0x3EEFFFF0,
-/**/ 0x55622217, 0x3CD55545,
-/**/ 0xC016C7E6, 0xBEF1FFEB,
-/**/ 0xE0000000, 0x3EF1FFF5,
-/**/ 0x5F1710D1, 0x3CDE5FE6,
-/**/ 0x001F3FD9, 0xBEF3FFE7,
-/**/ 0x80000000, 0x3EF3FFF3,
-/**/ 0xCD68DD41, 0x3CE4D541,
-/**/ 0xC02997C7, 0xBEF5FFE1,
-/**/ 0xE0000000, 0x3EF5FFF0,
-/**/ 0x124A1F13, 0x3CEBBA8E,
-/**/ 0x0035FFAF, 0xBEF7FFDC,
-/**/ 0x00000000, 0x3EF7FFEE,
-/**/ 0xC0184CAE, 0x3CF1FFEB,
-/**/ 0xC044A790, 0xBEF9FFD5,
-/**/ 0xE0000000, 0x3EF9FFEA,
-/**/ 0xC68EECCD, 0x3CF6E28E,
-/**/ 0x0055BF6A, 0xBEFBFFCF,
-/**/ 0x80000000, 0x3EFBFFE7,
-/**/ 0xD189DAA2, 0x3CFC952F,
-/**/ 0xC069773A, 0xBEFDFFC7,
-/**/ 0xE0000000, 0x3EFDFFE3,
-/**/ 0x480513F6, 0x3D0193E7,
-/**/ 0x007FFF00, 0xBEFFFFC0,
-/**/ 0x00000000, 0x3EFFFFE0,
-/**/ 0x55888833, 0x3D055535,
-/**/ 0xE04CC35D, 0xBF00FFDB,
-/**/ 0xF0000000, 0x3F00FFED,
-/**/ 0xE2CFFE66, 0x3D099681,
-/**/ 0x805B1F33, 0xBF01FFD7,
-/**/ 0xC0000000, 0x3F01FFEB,
-/**/ 0xBE5C42ED, 0x3D0E5FCC,
-/**/ 0xE06B2B01, 0xBF02FFD2,
-/**/ 0x70000000, 0x3F02FFE9,
-/**/ 0xD9D71DD1, 0x3D11DC8A,
-/**/ 0x007CFEC8, 0xBF03FFCE,
-/**/ 0x00000000, 0x3F03FFE7,
-/**/ 0x45A374B3, 0x3D14D52E,
-/**/ 0xE090B284, 0xBF04FFC8,
-/**/ 0x70000000, 0x3F04FFE4,
-/**/ 0x8553B4C7, 0x3D181DD0,
-/**/ 0x80A65E36, 0xBF05FFC3,
-/**/ 0xC0000000, 0x3F05FFE1,
-/**/ 0x7A287BBE, 0x3D1BBA71,
-/**/ 0xE0BE19DD, 0xBF06FFBD,
-/**/ 0xF0000000, 0x3F06FFDE,
-/**/ 0x03E27702, 0x3D1FAF11,
-/**/ 0x00D7FD78, 0xBF07FFB8,
-/**/ 0x00000000, 0x3F07FFDC,
-/**/ 0x80613240, 0x3D21FFD7,
-/**/ 0xE0F42105, 0xBF08FFB1,
-/**/ 0xF0000000, 0x3F08FFD8,
-/**/ 0xA6C489B3, 0x3D245825,
-/**/ 0x81129C84, 0xBF09FFAB,
-/**/ 0xC0000000, 0x3F09FFD5,
-/**/ 0xE2BBB26F, 0x3D26E272,
-/**/ 0xE13387F2, 0xBF0AFFA4,
-/**/ 0x70000000, 0x3F0AFFD2,
-/**/ 0x21272669, 0x3D29A0BF,
-/**/ 0x0156FB50, 0xBF0BFF9E,
-/**/ 0x00000000, 0x3F0BFFCF,
-/**/ 0x4E276957, 0x3D2C950A,
-/**/ 0xE17D0E9B, 0xBF0CFF96,
-/**/ 0x70000000, 0x3F0CFFCB,
-/**/ 0x551D090E, 0x3D2FC154,
-/**/ 0x81A5D9D2, 0xBF0DFF8F,
-/**/ 0xC0000000, 0x3F0DFFC7,
-/**/ 0x90544EF1, 0x3D3193CE,
-/**/ 0xE1D174F4, 0xBF0EFF87,
-/**/ 0xF0000000, 0x3F0EFFC3,
-/**/ 0x4D556583, 0x3D3364F2,
-/**/ 0x01FFF800, 0xBF0FFF80,
-/**/ 0x00000000, 0x3F0FFFC0,
-/**/ 0x56221F78, 0x3D355515,
-/**/ 0xF118BD7A, 0xBF107FBB,
-/**/ 0xF8000000, 0x3F107FDD,
-/**/ 0x9EEAD9D8, 0x3D376537,
-/**/ 0xC1330AE7, 0xBF10FFB7,
-/**/ 0xE0000000, 0x3F10FFDB,
-/**/ 0x1B7FF7AE, 0x3D399659,
-/**/ 0x714EF047, 0xBF117FB3,
-/**/ 0xB8000000, 0x3F117FD9,
-/**/ 0xBF51E233, 0x3D3BE979,
-/**/ 0x016C7998, 0xBF11FFAF,
-/**/ 0x80000000, 0x3F11FFD7,
-/**/ 0x7D7108FF, 0x3D3E5F99,
-/**/ 0x718BB2DA, 0xBF127FAA,
-/**/ 0x39000000, 0x3F127FD5,
-/**/ 0xB7721DC6, 0xBD3F0647,
-/**/ 0xC1ACA80C, 0xBF12FFA5,
-/**/ 0xE1000000, 0x3F12FFD2,
-/**/ 0xED071532, 0xBD3C4729,
-/**/ 0xF1CF652D, 0xBF137FA0,
-/**/ 0x79000000, 0x3F137FD0,
-/**/ 0x315D596D, 0xBD39620D,
-/**/ 0x01F3F63C, 0xBF13FF9C,
-/**/ 0x01000000, 0x3F13FFCE,
-/**/ 0x92E45F81, 0xBD3655F1,
-/**/ 0xF21A6739, 0xBF147F96,
-/**/ 0x79000000, 0x3F147FCB,
-/**/ 0x206B9526, 0xBD3321D7,
-/**/ 0xC242C421, 0xBF14FF91,
-/**/ 0xE1000000, 0x3F14FFC8,
-/**/ 0xD244C12A, 0xBD2F897B,
-/**/ 0x726D18F6, 0xBF157F8C,
-/**/ 0x39000000, 0x3F157FC6,
-/**/ 0xF93040AE, 0xBD287B4B,
-/**/ 0x029971B4, 0xBF15FF87,
-/**/ 0x81000000, 0x3F15FFC3,
-/**/ 0xD578562C, 0xBD21171E,
-/**/ 0x72C7DA5C, 0xBF167F81,
-/**/ 0xB9000000, 0x3F167FC0,
-/**/ 0x0F773DB4, 0xBD12B5E9,
-/**/ 0xC2F85EEC, 0xBF16FF7B,
-/**/ 0xE1000000, 0x3F16FFBD,
-/**/ 0x158A76C2, 0xBCE44CD3,
-/**/ 0xF32B0B63, 0xBF177F75,
-/**/ 0xF9000000, 0x3F177FBA,
-/**/ 0x2E48511B, 0x3D0CB55C,
-/**/ 0x035FEBC0, 0xBF17FF70,
-/**/ 0x01000000, 0x3F17FFB8,
-/**/ 0x184C534F, 0x3D1FFAF0,
-/**/ 0xF3970C03, 0xBF187F69,
-/**/ 0xF9000000, 0x3F187FB4,
-/**/ 0xACC53FBE, 0x3D292D95,
-/**/ 0xC3D07829, 0xBF18FF63,
-/**/ 0xE1000000, 0x3F18FFB1,
-/**/ 0xE48887C8, 0x3D315FD7,
-/**/ 0x740C3C32, 0xBF197F5D,
-/**/ 0xB9000000, 0x3F197FAE,
-/**/ 0x1DF5B242, 0x3D365AE3,
-/**/ 0x044A641C, 0xBF19FF57,
-/**/ 0x81000000, 0x3F19FFAB,
-/**/ 0x6FBB0E5F, 0x3D3B88EC,
-/**/ 0x748AFBE7, 0xBF1A7F50,
-/**/ 0x3A000000, 0x3F1A7FA8,
-/**/ 0x39766B40, 0xBD3F150C,
-/**/ 0xC4CE0F91, 0xBF1AFF49,
-/**/ 0xE2000000, 0x3F1AFFA4,
-/**/ 0xF14DB839, 0xBD397E06,
-/**/ 0xF513AB19, 0xBF1B7F42,
-/**/ 0x7A000000, 0x3F1B7FA1,
-/**/ 0xCBD9CC3D, 0xBD33B103,
-/**/ 0x055BDA7D, 0xBF1BFF3C,
-/**/ 0x02000000, 0x3F1BFF9E,
-/**/ 0xBB1321B5, 0xBD2B5A05,
-/**/ 0xF5A6A9BD, 0xBF1C7F34,
-/**/ 0x7A000000, 0x3F1C7F9A,
-/**/ 0xECAF9551, 0xBD1DC410,
-/**/ 0xC5F424D6, 0xBF1CFF2D,
-/**/ 0xE2000000, 0x3F1CFF96,
-/**/ 0x3DF3CD68, 0xBCEF80FF,
-/**/ 0x764457C8, 0xBF1D7F26,
-/**/ 0x3A000000, 0x3F1D7F93,
-/**/ 0x4271E737, 0x3D16CBC7,
-/**/ 0x06974E91, 0xBF1DFF1F,
-/**/ 0x82000000, 0x3F1DFF8F,
-/**/ 0x1D134848, 0x3D2939D2,
-/**/ 0x76ED1530, 0xBF1E7F17,
-/**/ 0xBA000000, 0x3F1E7F8B,
-/**/ 0xA9892C73, 0x3D33C2DD,
-/**/ 0xC745B7A4, 0xBF1EFF0F,
-/**/ 0xE2000000, 0x3F1EFF87,
-/**/ 0x8AEC69D5, 0x3D3B25CF,
-/**/ 0xF7A141EA, 0xBF1F7F07,
-/**/ 0xFB000000, 0x3F1F7F83,
-/**/ 0x645B412A, 0xBD3D3941,
-/**/ 0x07FFC002, 0xBF1FFF00,
-/**/ 0x03000000, 0x3F1FFF80,
-/**/ 0x3BBC6662, 0xBD355955,
-/**/ 0xFC309EF5, 0xBF203F7B,
-/**/ 0xFD800000, 0x3F203FBD,
-/**/ 0x260B17B3, 0xBD2A72D8,
-/**/ 0xE462E3D0, 0xBF207F77,
-/**/ 0xF1800000, 0x3F207FBB,
-/**/ 0x0994AE68, 0xBD136218,
-/**/ 0xBC96B492, 0xBF20BF73,
-/**/ 0xDD800000, 0x3F20BFB9,
-/**/ 0xECB2641F, 0x3D0E52E6,
-/**/ 0x84CC1739, 0xBF20FF6F,
-/**/ 0xC1800000, 0x3F20FFB7,
-/**/ 0xE7FCF60B, 0x3D296078,
-/**/ 0x3D0311C6, 0xBF213F6B,
-/**/ 0x9D800000, 0x3F213FB5,
-/**/ 0xA7850AFF, 0x3D35DA18,
-/**/ 0xE53BAA36, 0xBF217F66,
-/**/ 0x71800000, 0x3F217FB3,
-/**/ 0x5E7BB444, 0x3D3F48F1,
-/**/ 0x7D75E68A, 0xBF21BF62,
-/**/ 0x3E000000, 0x3F21BFB1,
-/**/ 0x812BC469, 0xBD370239,
-/**/ 0x05B1CCC0, 0xBF21FF5E,
-/**/ 0x02000000, 0x3F21FFAF,
-/**/ 0x23BF1A4D, 0xBD2A0CD0,
-/**/ 0x7DEF62D8, 0xBF223F59,
-/**/ 0xBE000000, 0x3F223FAC,
-/**/ 0x736E3623, 0xBD0614D3,
-/**/ 0xE62EAED0, 0xBF227F54,
-/**/ 0x72000000, 0x3F227FAA,
-/**/ 0x37EDEDB0, 0x3D1F28BD,
-/**/ 0x3E6FB6A9, 0xBF22BF50,
-/**/ 0x1E000000, 0x3F22BFA8,
-/**/ 0x07CE33C8, 0x3D32A0F5,
-/**/ 0x86B28060, 0xBF22FF4B,
-/**/ 0xC2000000, 0x3F22FFA5,
-/**/ 0xA31C6A8D, 0x3D3DC2B6,
-/**/ 0xBEF711F6, 0xBF233F46,
-/**/ 0x5E800000, 0x3F233FA3,
-/**/ 0xFC67C9FB, 0xBD36CF8B,
-/**/ 0xE73D7169, 0xBF237F41,
-/**/ 0xF2800000, 0x3F237FA0,
-/**/ 0xE6D88A89, 0xBD2629A5,
-/**/ 0xFF85A4B8, 0xBF23BF3C,
-/**/ 0x7E800000, 0x3F23BF9E,
-/**/ 0x202574EC, 0x3CEE7C34,
-/**/ 0x07CFB1E3, 0xBF23FF38,
-/**/ 0x02800000, 0x3F23FF9C,
-/**/ 0x46E594C1, 0x3D2A9723,
-/**/ 0x001B9EE8, 0xBF243F33,
-/**/ 0x7E800000, 0x3F243F99,
-/**/ 0xF61AE74C, 0x3D39F33C,
-/**/ 0xE86971C7, 0xBF247F2D,
-/**/ 0xF3000000, 0x3F247F96,
-/**/ 0x85341E31, 0xBD39141C,
-/**/ 0xC0B9307F, 0xBF24BF28,
-/**/ 0x5F000000, 0x3F24BF94,
-/**/ 0xDA0FAF09, 0xBD2792F5,
-/**/ 0x890AE10E, 0xBF24FF23,
-/**/ 0xC3000000, 0x3F24FF91,
-/**/ 0xFB239430, 0x3CFD4219,
-/**/ 0x415E8974, 0xBF253F1E,
-/**/ 0x1F000000, 0x3F253F8F,
-/**/ 0x0359434A, 0x3D2F8B72,
-/**/ 0xE9B42FAF, 0xBF257F18,
-/**/ 0x73000000, 0x3F257F8C,
-/**/ 0x1939FEDF, 0x3D3E0C4B,
-/**/ 0x820BD9BF, 0xBF25BF13,
-/**/ 0xBF800000, 0x3F25BF89,
-/**/ 0x39B301E2, 0xBD335728,
-/**/ 0x0A658DA3, 0xBF25FF0E,
-/**/ 0x03800000, 0x3F25FF87,
-/**/ 0x5E1E8D4F, 0xBD118E84,
-/**/ 0x82C15159, 0xBF263F08,
-/**/ 0x3F800000, 0x3F263F84,
-/**/ 0xBDDDD045, 0x3D25CFC0,
-/**/ 0xEB1F2AE1, 0xBF267F02,
-/**/ 0x73800000, 0x3F267F81,
-/**/ 0x08837E99, 0x3D3A8C5C,
-/**/ 0x437F203A, 0xBF26BEFD,
-/**/ 0xA0000000, 0x3F26BF7E,
-/**/ 0x3C56F12D, 0xBD35752E,
-/**/ 0x8BE13762, 0xBF26FEF7,
-/**/ 0xC4000000, 0x3F26FF7B,
-/**/ 0x46359E28, 0xBD146EFA,
-/**/ 0xC4457659, 0xBF273EF1,
-/**/ 0xE0000000, 0x3F273F78,
-/**/ 0xCD265865, 0x3D273355,
-/**/ 0xECABE31C, 0xBF277EEB,
-/**/ 0xF4000000, 0x3F277F75,
-/**/ 0x095DEBF8, 0x3D3CAC0E,
-/**/ 0x051483AC, 0xBF27BEE6,
-/**/ 0x00800000, 0x3F27BF73,
-/**/ 0x4C39F4DB, 0xBD31E395,
-/**/ 0x0D7F5E08, 0xBF27FEE0,
-/**/ 0x04800000, 0x3F27FF70,
-/**/ 0xA1314B81, 0xBCB43F3D,
-/**/ 0x05EC782D, 0xBF283EDA,
-/**/ 0x00800000, 0x3F283F6D,
-/**/ 0x115B8D70, 0x3D321B10,
-/**/ 0xEE5BD81B, 0xBF287ED3,
-/**/ 0xF5000000, 0x3F287F69,
-/**/ 0x83704FE1, 0xBD3B54A7,
-/**/ 0xC6CD83D1, 0xBF28BECD,
-/**/ 0xE1000000, 0x3F28BF66,
-/**/ 0x41229C91, 0xBD20C4CC,
-/**/ 0x8F41814D, 0xBF28FEC7,
-/**/ 0xC5000000, 0x3F28FF63,
-/**/ 0x2A183F17, 0x3D25E5A8,
-/**/ 0x47B7D68F, 0xBF293EC1,
-/**/ 0xA1000000, 0x3F293F60,
-/**/ 0xF81B997D, 0x3D3EAC06,
-/**/ 0xF0308995, 0xBF297EBA,
-/**/ 0x75800000, 0x3F297F5D,
-/**/ 0x3A1E5BAD, 0xBD2A6B9B,
-/**/ 0x88ABA05E, 0xBF29BEB4,
-/**/ 0x41800000, 0x3F29BF5A,
-/**/ 0xBDFE3C77, 0x3D1D3958,
-/**/ 0x112920E9, 0xBF29FEAE,
-/**/ 0x05800000, 0x3F29FF57,
-/**/ 0x375BA904, 0x3D3C3972,
-/**/ 0x89A91135, 0xBF2A3EA7,
-/**/ 0xC2000000, 0x3F2A3F53,
-/**/ 0x588DE85B, 0xBD2CE6F3,
-/**/ 0xF22B7740, 0xBF2A7EA0,
-/**/ 0x76000000, 0x3F2A7F50,
-/**/ 0x75AEDBFD, 0x3D1D2249,
-/**/ 0x4AB05909, 0xBF2ABE9A,
-/**/ 0x22000000, 0x3F2ABF4D,
-/**/ 0x2CE7BDAC, 0x3D3D6E96,
-/**/ 0x9337BC90, 0xBF2AFE93,
-/**/ 0xC6800000, 0x3F2AFF49,
-/**/ 0xCB7D724C, 0xBD2800DC,
-/**/ 0xCBC1A7D1, 0xBF2B3E8C,
-/**/ 0x62800000, 0x3F2B3F46,
-/**/ 0xFA591B29, 0x3D25F908,
-/**/ 0xF44E20CE, 0xBF2B7E85,
-/**/ 0xF7000000, 0x3F2B7F42,
-/**/ 0x53021ED8, 0xBD3D9991,
-/**/ 0x0CDD2D83, 0xBF2BBE7F,
-/**/ 0x83000000, 0x3F2BBF3F,
-/**/ 0xFD596AD6, 0xBD1706BF,
-/**/ 0x156ED3F0, 0xBF2BFE78,
-/**/ 0x07000000, 0x3F2BFF3C,
-/**/ 0x4EC45253, 0x3D328528,
-/**/ 0x0E031A14, 0xBF2C3E71,
-/**/ 0x83800000, 0x3F2C3F38,
-/**/ 0x927D8A9E, 0xBD34C408,
-/**/ 0xF69A05ED, 0xBF2C7E69,
-/**/ 0xF7800000, 0x3F2C7F34,
-/**/ 0xCAE2C25F, 0x3D118EF4,
-/**/ 0xCF339D7A, 0xBF2CBE62,
-/**/ 0x63800000, 0x3F2CBF31,
-/**/ 0x73DBBB41, 0x3D3DFD79,
-/**/ 0x97CFE6B9, 0xBF2CFE5B,
-/**/ 0xC8000000, 0x3F2CFF2D,
-/**/ 0xE7FE77E6, 0xBD1FD74F,
-/**/ 0x506EE7AA, 0xBF2D3E54,
-/**/ 0x24000000, 0x3F2D3F2A,
-/**/ 0xBDDB871F, 0x3D328AD4,
-/**/ 0xF910A64A, 0xBF2D7E4C,
-/**/ 0x78800000, 0x3F2D7F26,
-/**/ 0x903DDD81, 0xBD327F8C,
-/**/ 0x91B52899, 0xBF2DBE45,
-/**/ 0xC4800000, 0x3F2DBF22,
-/**/ 0xDF52840A, 0x3D21D80F,
-/**/ 0x1A5C7495, 0xBF2DFE3E,
-/**/ 0x09000000, 0x3F2DFF1F,
-/**/ 0xEED9F651, 0xBD3B316D,
-/**/ 0x9306903D, 0xBF2E3E36,
-/**/ 0x45000000, 0x3F2E3F1B,
-/**/ 0x76DB3C6B, 0x3CF2911A,
-/**/ 0xFBB3818F, 0xBF2E7E2E,
-/**/ 0x79000000, 0x3F2E7F17,
-/**/ 0x85559113, 0x3D3DFC86,
-/**/ 0x54634E89, 0xBF2EBE27,
-/**/ 0xA5800000, 0x3F2EBF13,
-/**/ 0x0AB3DBE7, 0xBD12D83E,
-/**/ 0x9D15FD2B, 0xBF2EFE1F,
-/**/ 0xC9800000, 0x3F2EFF0F,
-/**/ 0x617B99F1, 0x3D39124F,
-/**/ 0xD5CB9373, 0xBF2F3E17,
-/**/ 0xE6000000, 0x3F2F3F0B,
-/**/ 0xF8F64DA1, 0xBD2152B9,
-/**/ 0xFE841760, 0xBF2F7E0F,
-/**/ 0xFA000000, 0x3F2F7F07,
-/**/ 0x34C4735B, 0x3D3617EB,
-/**/ 0x173F8EEF, 0xBF2FBE08,
-/**/ 0x06800000, 0x3F2FBF04,
-/**/ 0x739FA712, 0xBD2551B0,
-/**/ 0x1FFE0020, 0xBF2FFE00,
-/**/ 0x0A800000, 0x3F2FFF00,
-/**/ 0x885DE027, 0x3D351558,
-/**/ 0x0C5FB879, 0xBF301EFC,
-/**/ 0x03800000, 0x3F301F7E,
-/**/ 0x68F8FC50, 0xBD255905,
-/**/ 0x00C1F3B0, 0xBF303EF8,
-/**/ 0xFD800000, 0x3F303F7B,
-/**/ 0xDF771CF4, 0x3D361295,
-/**/ 0xED25B4B7, 0xBF305EF3,
-/**/ 0xF3C00000, 0x3F305F79,
-/**/ 0xD8A255DB, 0xBD2158BB,
-/**/ 0xD18AFE8B, 0xBF307EEF,
-/**/ 0xE5C00000, 0x3F307F77,
-/**/ 0xB740E625, 0x3D3917A1,
-/**/ 0xADF1D42C, 0xBF309EEB,
-/**/ 0xD4000000, 0x3F309F75,
-/**/ 0x9C716D59, 0xBD1281AD,
-/**/ 0x825A3899, 0xBF30BEE7,
-/**/ 0xBE000000, 0x3F30BF73,
-/**/ 0x86ED7DDC, 0x3D3E2C7A,
-/**/ 0x4EC42ED1, 0xBF30DEE3,
-/**/ 0xA4400000, 0x3F30DF71,
-/**/ 0xF54F7E28, 0x3CF7F534,
-/**/ 0x132FB9D5, 0xBF30FEDF,
-/**/ 0x86800000, 0x3F30FF6F,
-/**/ 0x404F4E01, 0xBD3AA6E1,
-/**/ 0xCF9CDCA2, 0xBF311EDA,
-/**/ 0x64800000, 0x3F311F6D,
-/**/ 0x4A6EC981, 0x3D2375B9,
-/**/ 0x840B9A38, 0xBF313ED6,
-/**/ 0x3EC00000, 0x3F313F6B,
-/**/ 0x33401DD0, 0xBD315A73,
-/**/ 0x307BF596, 0xBF315ED2,
-/**/ 0x14C00000, 0x3F315F69,
-/**/ 0x02C11605, 0x3D341A2F,
-/**/ 0xD4EDF1BC, 0xBF317ECD,
-/**/ 0xE7000000, 0x3F317F66,
-/**/ 0xB2B7E8C5, 0xBD1798F3,
-/**/ 0x716191A8, 0xBF319EC9,
-/**/ 0xB5400000, 0x3F319F64,
-/**/ 0x35D62ED5, 0xBD3F5AB7,
-/**/ 0x05D6D85A, 0xBF31BEC5,
-/**/ 0x7F400000, 0x3F31BF62,
-/**/ 0xCA7EC7CD, 0x3D1EF6FF,
-/**/ 0x924DC8D2, 0xBF31DEC0,
-/**/ 0x45800000, 0x3F31DF60,
-/**/ 0xA8550396, 0xBD309BD7,
-/**/ 0x16C6660D, 0xBF31FEBC,
-/**/ 0x07800000, 0x3F31FF5E,
-/**/ 0xC3E31F70, 0x3D379981,
-/**/ 0x9340B30B, 0xBF321EB7,
-/**/ 0xC5C00000, 0x3F321F5B,
-/**/ 0x5FE92B94, 0x3CD7B300,
-/**/ 0x07BCB2CC, 0xBF323EB3,
-/**/ 0x80000000, 0x3F323F59,
-/**/ 0x25A7CF34, 0xBD364AF9,
-/**/ 0x743A684F, 0xBF325EAE,
-/**/ 0x36000000, 0x3F325F57,
-/**/ 0x17E48399, 0x3D339D32,
-/**/ 0xD8B9D692, 0xBF327EA9,
-/**/ 0xE8400000, 0x3F327F54,
-/**/ 0xCC387BD1, 0xBCFE7B27,
-/**/ 0x353B0095, 0xBF329EA5,
-/**/ 0x96800000, 0x3F329F52,
-/**/ 0x1AE7FA80, 0xBD36D8A7,
-/**/ 0x89BDE957, 0xBF32BEA0,
-/**/ 0x40800000, 0x3F32BF50,
-/**/ 0x05CF3DC3, 0x3D34CB54,
-/**/ 0xD64293D7, 0xBF32DE9B,
-/**/ 0xE6C00000, 0x3F32DF4D,
-/**/ 0xD5A4F691, 0x3CF053EA,
-/**/ 0x1AC90315, 0xBF32FE97,
-/**/ 0x89000000, 0x3F32FF4B,
-/**/ 0x5CAE7B16, 0xBD3229E7,
-/**/ 0x57513A0F, 0xBF331E92,
-/**/ 0x27000000, 0x3F331F49,
-/**/ 0xAEED4509, 0x3D3B3EE1,
-/**/ 0x8BDB3BC4, 0xBF333E8D,
-/**/ 0xC1400000, 0x3F333F46,
-/**/ 0x2E0C2605, 0x3D228133,
-/**/ 0xB8670B34, 0xBF335E88,
-/**/ 0x57800000, 0x3F335F44,
-/**/ 0xBBD6E280, 0xBD20477F,
-/**/ 0xDCF4AB5D, 0xBF337E83,
-/**/ 0xE9C00000, 0x3F337F41,
-/**/ 0xE9CE8AFC, 0xBD38ED2A,
-/**/ 0xF9841F3F, 0xBF339E7E,
-/**/ 0x77C00000, 0x3F339F3F,
-/**/ 0x39159F9B, 0x3D36E558,
-/**/ 0x0E1569D9, 0xBF33BE7A,
-/**/ 0x02000000, 0x3F33BF3D,
-/**/ 0x40681634, 0x3D1D5325,
-/**/ 0x1AA88E2A, 0xBF33DE75,
-/**/ 0x88400000, 0x3F33DF3A,
-/**/ 0x7F2112CE, 0xBD1E775F,
-/**/ 0x1F3D8F31, 0xBF33FE70,
-/**/ 0x0A800000, 0x3F33FF38,
-/**/ 0x91F80D1B, 0xBD35F18B,
-/**/ 0x1BD46FED, 0xBF341E6B,
-/**/ 0x88800000, 0x3F341F35,
-/**/ 0xFDC3FC2F, 0x3D3C5AAD,
-/**/ 0x106D335D, 0xBF343E66,
-/**/ 0x02C00000, 0x3F343F33,
-/**/ 0x268A89F1, 0x3D2E8FA9,
-/**/ 0xFD07DC80, 0xBF345E60,
-/**/ 0x79000000, 0x3F345F30,
-/**/ 0x902AC9EE, 0x3D06B73F,
-/**/ 0xE1A46E55, 0xBF347E5B,
-/**/ 0xEB400000, 0x3F347F2D,
-/**/ 0x45C43959, 0xBD21EE30,
-/**/ 0xBE42EBDC, 0xBF349E56,
-/**/ 0x59800000, 0x3F349F2B,
-/**/ 0xE8B753E8, 0xBD34212B,
-/**/ 0x92E35813, 0xBF34BE51,
-/**/ 0xC3C00000, 0x3F34BF28,
-/**/ 0x9D2064DB, 0xBD3EA653,
-/**/ 0x5F85B5F9, 0xBF34DE4C,
-/**/ 0x29C00000, 0x3F34DF26,
-/**/ 0x81DCB6FB, 0x3D377A70,
-/**/ 0x242A088D, 0xBF34FE47,
-/**/ 0x8C000000, 0x3F34FF23,
-/**/ 0x6BB44A6D, 0x3D2C8440,
-/**/ 0xE0D052CF, 0xBF351E41,
-/**/ 0xEA400000, 0x3F351F20,
-/**/ 0x0048AAF8, 0x3D16C6ED,
-/**/ 0x957897BD, 0xBF353E3C,
-/**/ 0x44800000, 0x3F353F1E,
-/**/ 0xF506A07E, 0xBD01ADF4,
-/**/ 0x4222DA57, 0xBF355E37,
-/**/ 0x9AC00000, 0x3F355F1B,
-/**/ 0x4B88A655, 0xBD22E69B,
-/**/ 0xE6CF1D9B, 0xBF357E31,
-/**/ 0xED000000, 0x3F357F18,
-/**/ 0x153DAEB0, 0xBD3005F2,
-/**/ 0x837D6488, 0xBF359E2C,
-/**/ 0x3B400000, 0x3F359F16,
-/**/ 0x2D5222B4, 0xBD35ECAC,
-/**/ 0x182DB21E, 0xBF35BE27,
-/**/ 0x85800000, 0x3F35BF13,
-/**/ 0x2EA6CB14, 0xBD3B267C,
-/**/ 0xA4E0095B, 0xBF35DE21,
-/**/ 0xCBC00000, 0x3F35DF10,
-/**/ 0x5A40A340, 0xBD3FB262,
-/**/ 0x29946D3F, 0xBF35FE1C,
-/**/ 0x0DC00000, 0x3F35FF0E,
-/**/ 0x0E7B79ED, 0x3D3C70A1,
-/**/ 0xA64AE0C7, 0xBF361E16,
-/**/ 0x4C000000, 0x3F361F0B,
-/**/ 0xC9C8D263, 0x3D39438D,
-/**/ 0x1B0366F4, 0xBF363E11,
-/**/ 0x86400000, 0x3F363F08,
-/**/ 0x9582CD0C, 0x3D36C763,
-/**/ 0x87BE02C5, 0xBF365E0B,
-/**/ 0xBC800000, 0x3F365F05,
-/**/ 0x2F24F1F9, 0x3D34FD22,
-/**/ 0xEC7AB737, 0xBF367E05,
-/**/ 0xEEC00000, 0x3F367F02,
-/**/ 0x53CAEA94, 0x3D33E5C9,
-/**/ 0x4939874A, 0xBF369E00,
-/**/ 0x1D000000, 0x3F369F00,
-/**/ 0xC03081D0, 0x3D338258,
-/**/ 0x9DFA75FE, 0xBF36BDFA,
-/**/ 0x47400000, 0x3F36BEFD,
-/**/ 0x30B1A458, 0x3D33D3D0,
-/**/ 0xEABD8651, 0xBF36DDF4,
-/**/ 0x6D800000, 0x3F36DEFA,
-/**/ 0x614A60C1, 0x3D34DB2F,
-/**/ 0x2F82BB41, 0xBF36FDEF,
-/**/ 0x8FC00000, 0x3F36FEF7,
-/**/ 0x0D96E7B8, 0x3D369976,
-/**/ 0x6C4A17CF, 0xBF371DE9,
-/**/ 0xAE000000, 0x3F371EF4,
-/**/ 0xF0D38C30, 0x3D390FA3,
-/**/ 0xA1139EF8, 0xBF373DE3,
-/**/ 0xC8400000, 0x3F373EF1,
-/**/ 0xC5DCC397, 0x3D3C3EB8,
-/**/ 0xCDDF53BC, 0xBF375DDD,
-/**/ 0xDEC00000, 0x3F375EEE,
-/**/ 0xB8D0D9FD, 0xBD3FD84B,
-/**/ 0xF2AD3919, 0xBF377DD7,
-/**/ 0xF1000000, 0x3F377EEB,
-/**/ 0xD11891A0, 0xBD3B3469,
-/**/ 0x0F7D520F, 0xBF379DD2,
-/**/ 0xFF400000, 0x3F379EE8,
-/**/ 0xC93D855B, 0xBD35D4A1,
-/**/ 0x244FA19D, 0xBF37BDCC,
-/**/ 0x09800000, 0x3F37BEE6,
-/**/ 0xCFC56806, 0xBD2F6FE7,
-/**/ 0x31242AC1, 0xBF37DDC6,
-/**/ 0x0FC00000, 0x3F37DEE3,
-/**/ 0xE815F202, 0xBD21BAC0,
-/**/ 0x35FAF079, 0xBF37FDC0,
-/**/ 0x12000000, 0x3F37FEE0,
-/**/ 0x5190C28B, 0xBCF43E7B,
-/**/ 0x32D3F5C6, 0xBF381DBA,
-/**/ 0x10400000, 0x3F381EDD,
-/**/ 0x34C1F9E9, 0x3D1C55D8,
-/**/ 0x27AF3DA6, 0xBF383DB4,
-/**/ 0x0A800000, 0x3F383EDA,
-/**/ 0x8AAF36D4, 0x3D302FB8,
-/**/ 0x148CCB18, 0xBF385DAE,
-/**/ 0x00C00000, 0x3F385ED7,
-/**/ 0x7AE0D0F8, 0x3D3A0BDF,
-/**/ 0xF96CA11B, 0xBF387DA7,
-/**/ 0xF3400000, 0x3F387ED3,
-/**/ 0x6B1CDAAF, 0xBD3B5515,
-/**/ 0xD64EC2AD, 0xBF389DA1,
-/**/ 0xE1800000, 0x3F389ED0,
-/**/ 0xE1179E5E, 0xBD2FE44C,
-/**/ 0xAB3332CD, 0xBF38BD9B,
-/**/ 0xCBC00000, 0x3F38BECD,
-/**/ 0xF86F56EC, 0xBD0E529E,
-/**/ 0x7819F47A, 0xBF38DD95,
-/**/ 0xB2000000, 0x3F38DECA,
-/**/ 0xFEB631AB, 0x3D2246C3,
-/**/ 0x3D030AB4, 0xBF38FD8F,
-/**/ 0x94400000, 0x3F38FEC7,
-/**/ 0xE04DA791, 0x3D36D7FA,
-/**/ 0xF9EE7878, 0xBF391D88,
-/**/ 0x72C00000, 0x3F391EC4,
-/**/ 0x86F7ADBB, 0xBD3AAB89,
-/**/ 0xAEDC40C7, 0xBF393D82,
-/**/ 0x4D000000, 0x3F393EC1,
-/**/ 0x032C6155, 0xBD26CC57,
-/**/ 0x5BCC669D, 0xBF395D7C,
-/**/ 0x23400000, 0x3F395EBE,
-/**/ 0x93C3EB3D, 0x3D12A452,
-/**/ 0x00BEECFB, 0xBF397D76,
-/**/ 0xF5800000, 0x3F397EBA,
-/**/ 0xA0BCD695, 0x3D358336,
-/**/ 0x9DB3D6E0, 0xBF399D6F,
-/**/ 0xC4000000, 0x3F399EB7,
-/**/ 0xDA737570, 0xBD38D6C5,
-/**/ 0x32AB2749, 0xBF39BD69,
-/**/ 0x8E400000, 0x3F39BEB4,
-/**/ 0x65026C7D, 0xBD198F84,
-/**/ 0xBFA4E136, 0xBF39DD62,
-/**/ 0x54800000, 0x3F39DEB1,
-/**/ 0x2EA9B41A, 0x3D29B9C9,
-/**/ 0x44A107A5, 0xBF39FD5C,
-/**/ 0x17000000, 0x3F39FEAE,
-/**/ 0x16137ACF, 0xBD3F1375,
-/**/ 0xC19F9D96, 0xBF3A1D55,
-/**/ 0xD5400000, 0x3F3A1EAA,
-/**/ 0xDE73AFA0, 0xBD2467DC,
-/**/ 0x36A0A607, 0xBF3A3D4F,
-/**/ 0x8F800000, 0x3F3A3EA7,
-/**/ 0x7B8357C6, 0x3D26F8F0,
-/**/ 0xA3A423F7, 0xBF3A5D48,
-/**/ 0x46000000, 0x3F3A5EA4,
-/**/ 0x5DA0DFB7, 0xBD3E0141,
-/**/ 0x08AA1A64, 0xBF3A7D42,
-/**/ 0xF8400000, 0x3F3A7EA0,
-/**/ 0x41050D29, 0xBD1AB06E,
-/**/ 0x65B28C4E, 0xBF3A9D3B,
-/**/ 0xA6800000, 0x3F3A9E9D,
-/**/ 0x56A0E005, 0x3D317CE9,
-/**/ 0xBABD7CB3, 0xBF3ABD34,
-/**/ 0x51000000, 0x3F3ABE9A,
-/**/ 0xF899EF39, 0xBD358532,
-/**/ 0x07CAEE92, 0xBF3ADD2E,
-/**/ 0xF7400000, 0x3F3ADE96,
-/**/ 0xC83BF5C2, 0x3D113A3C,
-/**/ 0x4CDAE4EA, 0xBF3AFD27,
-/**/ 0x99800000, 0x3F3AFE93,
-/**/ 0x863C7C8E, 0x3D3EF92F,
-/**/ 0x89ED62B9, 0xBF3B1D20,
-/**/ 0x38000000, 0x3F3B1E90,
-/**/ 0x3341CC3C, 0xBD161149,
-/**/ 0xBF026AFE, 0xBF3B3D19,
-/**/ 0xD2400000, 0x3F3B3E8C,
-/**/ 0x67C955DF, 0x3D36D709,
-/**/ 0xEC1A00B8, 0xBF3B5D12,
-/**/ 0x68C00000, 0x3F3B5E89,
-/**/ 0x5AE9B17A, 0xBD27E77B,
-/**/ 0x113426E6, 0xBF3B7D0C,
-/**/ 0xFB000000, 0x3F3B7E85,
-/**/ 0x219679DE, 0x3D321C58,
-/**/ 0x2E50E086, 0xBF3B9D05,
-/**/ 0x89800000, 0x3F3B9E82,
-/**/ 0xFAA62113, 0xBD2DEF6A,
-/**/ 0x43703097, 0xBF3BBCFE,
-/**/ 0x13C00000, 0x3F3BBE7F,
-/**/ 0x23305306, 0x3D30D119,
-/**/ 0x50921A17, 0xBF3BDCF7,
-/**/ 0x9A400000, 0x3F3BDE7B,
-/**/ 0x9FBACE27, 0xBD2D1078,
-/**/ 0x55B6A006, 0xBF3BFCF0,
-/**/ 0x1C800000, 0x3F3BFE78,
-/**/ 0xD625DF1E, 0x3D32FD49,
-/**/ 0x52DDC563, 0xBF3C1CE9,
-/**/ 0x9B000000, 0x3F3C1E74,
-/**/ 0x7D07255B, 0xBD253AA9,
-/**/ 0x48078D2B, 0xBF3C3CE2,
-/**/ 0x15400000, 0x3F3C3E71,
-/**/ 0x9E08B538, 0x3D38A8E7,
-/**/ 0x3533FA5D, 0xBF3C5CDB,
-/**/ 0x8BC00000, 0x3F3C5E6D,
-/**/ 0x45956AFC, 0xBD09780B,
-/**/ 0x1A630FF9, 0xBF3C7CD4,
-/**/ 0xFE400000, 0x3F3C7E69,
-/**/ 0x2792F44E, 0xBD3E2410,
-/**/ 0xF794D0FC, 0xBF3C9CCC,
-/**/ 0x6C800000, 0x3F3C9E66,
-/**/ 0x30AB4456, 0x3D1F2AEC,
-/**/ 0xCCC94066, 0xBF3CBCC5,
-/**/ 0xD7000000, 0x3F3CBE62,
-/**/ 0x231641D5, 0xBD3161A0,
-/**/ 0x9A006135, 0xBF3CDCBE,
-/**/ 0x3D400000, 0x3F3CDE5F,
-/**/ 0xF4AD1934, 0x3D3657DD,
-/**/ 0x5F3A3668, 0xBF3CFCB7,
-/**/ 0x9FC00000, 0x3F3CFE5B,
-/**/ 0x2E7AC798, 0xBCF07CB0,
-/**/ 0x1C76C2FD, 0xBF3D1CB0,
-/**/ 0xFE400000, 0x3F3D1E57,
-/**/ 0x6090F643, 0xBD377F9B,
-/**/ 0xD1B609F3, 0xBF3D3CA8,
-/**/ 0x58800000, 0x3F3D3E54,
-/**/ 0x849503E6, 0x3D32F16C,
-/**/ 0x7EF80E49, 0xBF3D5CA1,
-/**/ 0xAF000000, 0x3F3D5E50,
-/**/ 0xAF1CA4EA, 0xBCFB3B3A,
-/**/ 0x243CD2FE, 0xBF3D7C9A,
-/**/ 0x01800000, 0x3F3D7E4D,
-/**/ 0x4701415B, 0xBD356DFC,
-/**/ 0xC1845B0F, 0xBF3D9C92,
-/**/ 0x4FC00000, 0x3F3D9E49,
-/**/ 0x582AEA48, 0x3D37C392,
-/**/ 0x56CEA97C, 0xBF3DBC8B,
-/**/ 0x9A400000, 0x3F3DBE45,
-/**/ 0x67DCC15E, 0x3D1787DF,
-/**/ 0xE41BC143, 0xBF3DDC83,
-/**/ 0xE0C00000, 0x3F3DDE41,
-/**/ 0x352F961F, 0xBD262398,
-/**/ 0x696BA563, 0xBF3DFC7C,
-/**/ 0x23400000, 0x3F3DFE3E,
-/**/ 0xDEDD373A, 0xBD3B16B9,
-/**/ 0xE6BE58DA, 0xBF3E1C74,
-/**/ 0x61800000, 0x3F3E1E3A,
-/**/ 0x336BE94B, 0x3D35D42E,
-/**/ 0x5C13DEA7, 0xBF3E3C6D,
-/**/ 0x9C000000, 0x3F3E3E36,
-/**/ 0x08A303A2, 0x3D1EBFAF,
-/**/ 0xC96C39C9, 0xBF3E5C65,
-/**/ 0xD2800000, 0x3F3E5E32,
-/**/ 0x34856362, 0xBD160A06,
-/**/ 0x2EC76D3D, 0xBF3E7C5E,
-/**/ 0x05000000, 0x3F3E7E2F,
-/**/ 0x154CDF1A, 0xBD31C21A,
-/**/ 0x8C257C04, 0xBF3E9C56,
-/**/ 0x33800000, 0x3F3E9E2B,
-/**/ 0x31941F7F, 0xBD3D0DDE,
-/**/ 0xE186691B, 0xBF3EBC4E,
-/**/ 0x5DC00000, 0x3F3EBE27,
-/**/ 0xC26EC60D, 0x3D389B31,
-/**/ 0x2EEA3781, 0xBF3EDC47,
-/**/ 0x84400000, 0x3F3EDE23,
-/**/ 0xD583BEF8, 0x3D2E742A,
-/**/ 0x7450EA34, 0xBF3EFC3F,
-/**/ 0xA6C00000, 0x3F3EFE1F,
-/**/ 0xAC2DA351, 0x3D1B3F31,
-/**/ 0xB1BA8433, 0xBF3F1C37,
-/**/ 0xC5400000, 0x3F3F1E1B,
-/**/ 0x2DC67430, 0xBCE45533,
-/**/ 0xE727087C, 0xBF3F3C2F,
-/**/ 0xDFC00000, 0x3F3F3E17,
-/**/ 0xFF1174AE, 0xBD1C7133,
-/**/ 0x14967A0F, 0xBF3F5C28,
-/**/ 0xF6400000, 0x3F3F5E13,
-/**/ 0x4AE098DC, 0xBD29383C,
-/**/ 0x3A08DBE9, 0xBF3F7C20,
-/**/ 0x08C00000, 0x3F3F7E10,
-/**/ 0x684B0B3B, 0xBD31211D,
-/**/ 0x577E3109, 0xBF3F9C18,
-/**/ 0x17400000, 0x3F3F9E0C,
-/**/ 0x268D7464, 0xBD34AA4B,
-/**/ 0x6CF67C6E, 0xBF3FBC10,
-/**/ 0x21C00000, 0x3F3FBE08,
-/**/ 0xBED03388, 0xBD3736A7,
-/**/ 0x7A71C116, 0xBF3FDC08,
-/**/ 0x28400000, 0x3F3FDE04,
-/**/ 0x900BC4E5, 0xBD38C533,
-/**/ 0x7FF00200, 0xBF3FFC00,
-/**/ 0x2AC00000, 0x3F3FFE00,
-/**/ 0xF9987527, 0xBD3954EE,
-/**/ 0x3EB8A115, 0xBF400DFC,
-/**/ 0x14A00000, 0x3F400EFE,
-/**/ 0x5B2E613B, 0xBD38E4DA,
-/**/ 0x397AC249, 0xBF401DF8,
-/**/ 0x11E00000, 0x3F401EFC,
-/**/ 0x14E5761B, 0xBD3773F6,
-/**/ 0x303E661C, 0xBF402DF4,
-/**/ 0x0D200000, 0x3F402EFA,
-/**/ 0x873570A0, 0xBD350142,
-/**/ 0x23038E0C, 0xBF403DF0,
-/**/ 0x06600000, 0x3F403EF8,
-/**/ 0x12F5DD53, 0xBD318BC0,
-/**/ 0x11CA3B9A, 0xBF404DEC,
-/**/ 0xFDA00000, 0x3F404EF5,
-/**/ 0x32BC307C, 0xBD2A24DE,
-/**/ 0xFC927044, 0xBF405DE7,
-/**/ 0xF2E00000, 0x3F405EF3,
-/**/ 0xF01532DA, 0xBD1E513F,
-/**/ 0xE35C2D8A, 0xBF406DE3,
-/**/ 0xE6200000, 0x3F406EF1,
-/**/ 0xCE27534E, 0xBCF10631,
-/**/ 0xC62774EA, 0xBF407DDF,
-/**/ 0xD7600000, 0x3F407EEF,
-/**/ 0x86CE9380, 0x3D19E95C,
-/**/ 0xA4F447E4, 0xBF408DDB,
-/**/ 0xC6A00000, 0x3F408EED,
-/**/ 0xBA0CD2C3, 0x3D2E19BC,
-/**/ 0x7FC2A7F8, 0xBF409DD7,
-/**/ 0xB3E00000, 0x3F409EEB,
-/**/ 0x31FF7199, 0x3D38A832,
-/**/ 0x569296A4, 0xBF40ADD3,
-/**/ 0x9F400000, 0x3F40AEE9,
-/**/ 0xC2D77791, 0xBD3CB2AD,
-/**/ 0x29641567, 0xBF40BDCF,
-/**/ 0x88800000, 0x3F40BEE7,
-/**/ 0xE5545563, 0xBD3102C1,
-/**/ 0xF83725C2, 0xBF40CDCA,
-/**/ 0x6FC00000, 0x3F40CEE5,
-/**/ 0x66B3E48D, 0xBD111C2A,
-/**/ 0xC30BC932, 0xBF40DDC6,
-/**/ 0x55000000, 0x3F40DEE3,
-/**/ 0x7711FC2A, 0x3D2302EF,
-/**/ 0x89E20138, 0xBF40EDC2,
-/**/ 0x38400000, 0x3F40EEE1,
-/**/ 0xB558238E, 0x3D3857C4,
-/**/ 0x4CB9CF52, 0xBF40FDBE,
-/**/ 0x19A00000, 0x3F40FEDF,
-/**/ 0x1194C2E1, 0xBD37C324,
-/**/ 0x0B933501, 0xBF410DBA,
-/**/ 0xF8E00000, 0x3F410EDC,
-/**/ 0xFBCAF285, 0xBD1B390B,
-/**/ 0xC66E33C2, 0xBF411DB5,
-/**/ 0xD6200000, 0x3F411EDA,
-/**/ 0x0E52C3A4, 0x3D266ECF,
-/**/ 0x7D4ACD15, 0xBF412DB1,
-/**/ 0xB1600000, 0x3F412ED8,
-/**/ 0x1A4AF71D, 0x3D3E4EDB,
-/**/ 0x30290279, 0xBF413DAD,
-/**/ 0x8AC00000, 0x3F413ED6,
-/**/ 0x58C4D599, 0xBD2B0DD1,
-/**/ 0xDF08D56E, 0xBF414DA8,
-/**/ 0x62000000, 0x3F414ED4,
-/**/ 0x2FB4061D, 0x3D1EDC6F,
-/**/ 0x89EA4773, 0xBF415DA4,
-/**/ 0x37400000, 0x3F415ED2,
-/**/ 0x1BA53538, 0x3D3E09E8,
-/**/ 0x30CD5A06, 0xBF416DA0,
-/**/ 0x0AA00000, 0x3F416ED0,
-/**/ 0x4A5B4574, 0xBD251B08,
-/**/ 0xD3B20EA8, 0xBF417D9B,
-/**/ 0xDBE00000, 0x3F417ECD,
-/**/ 0x4241B57B, 0x3D2BE3AD,
-/**/ 0x729866D7, 0xBF418D97,
-/**/ 0xAB400000, 0x3F418ECB,
-/**/ 0xFA22BD16, 0xBD387707,
-/**/ 0x0D806412, 0xBF419D93,
-/**/ 0x78800000, 0x3F419EC9,
-/**/ 0xFFA2FC2F, 0x3D01C6FC,
-/**/ 0xA46A07D9, 0xBF41AD8E,
-/**/ 0x43C00000, 0x3F41AEC7,
-/**/ 0x05F32EE8, 0x3D3E028D,
-/**/ 0x375553AB, 0xBF41BD8A,
-/**/ 0x0D200000, 0x3F41BEC5,
-/**/ 0xC7E46F2B, 0xBD146400,
-/**/ 0xC6424907, 0xBF41CD85,
-/**/ 0xD4600000, 0x3F41CEC2,
-/**/ 0x8DFCE791, 0x3D38E737,
-/**/ 0x5130E96B, 0xBF41DD81,
-/**/ 0x99C00000, 0x3F41DEC0,
-/**/ 0x92F4A6CE, 0xBD1FEF30,
-/**/ 0xD8213659, 0xBF41ED7C,
-/**/ 0x5D000000, 0x3F41EEBE,
-/**/ 0x4AE68315, 0x3D383EF4,
-/**/ 0x5B13314D, 0xBF41FD78,
-/**/ 0x1E600000, 0x3F41FEBC,
-/**/ 0x39A8276A, 0xBD199E1E,
-/**/ 0xDA06DBC8, 0xBF420D73,
-/**/ 0xDDA00000, 0x3F420EB9,
-/**/ 0xE39F6D77, 0x3D3C11BF,
-/**/ 0x54FC3749, 0xBF421D6F,
-/**/ 0x9B000000, 0x3F421EB7,
-/**/ 0xC3A8C440, 0xBCD50D72,
-/**/ 0xCBF3454F, 0xBF422D6A,
-/**/ 0x56600000, 0x3F422EB5,
-/**/ 0x06E59170, 0xBD3B9869,
-/**/ 0x3EEC0759, 0xBF423D66,
-/**/ 0x0FA00000, 0x3F423EB3,
-/**/ 0x86930551, 0x3D248C4B,
-/**/ 0xADE67EE6, 0xBF424D61,
-/**/ 0xC7000000, 0x3F424EB0,
-/**/ 0xB3649FF7, 0xBD2D6F13,
-/**/ 0x18E2AD76, 0xBF425D5D,
-/**/ 0x7C400000, 0x3F425EAE,
-/**/ 0xB496441D, 0x3D396F87,
-/**/ 0x7FE09487, 0xBF426D58,
-/**/ 0x2FA00000, 0x3F426EAC,
-/**/ 0x01961A2F, 0x3D05E2D0,
-/**/ 0xE2E03598, 0xBF427D53,
-/**/ 0xE1000000, 0x3F427EA9,
-/**/ 0x652D1720, 0xBD32D013,
-/**/ 0x41E1922A, 0xBF428D4F,
-/**/ 0x90400000, 0x3F428EA7,
-/**/ 0x15C6A78A, 0x3D38CB3F,
-/**/ 0x9CE4ABBA, 0xBF429D4A,
-/**/ 0x3DA00000, 0x3F429EA5,
-/**/ 0x07F8A52A, 0x3D163D44,
-/**/ 0xF3E983C8, 0xBF42AD45,
-/**/ 0xE9000000, 0x3F42AEA2,
-/**/ 0x1FEC6070, 0xBD2905BC,
-/**/ 0x46F01BD4, 0xBF42BD41,
-/**/ 0x92600000, 0x3F42BEA0,
-/**/ 0x8FE5CB8E, 0xBD3D6A4E,
-/**/ 0x95F8755C, 0xBF42CD3C,
-/**/ 0x39A00000, 0x3F42CE9E,
-/**/ 0x120028B6, 0x3D32D9FF,
-/**/ 0xE10291DF, 0xBF42DD37,
-/**/ 0xDF000000, 0x3F42DE9B,
-/**/ 0x94B2D8A6, 0x3D112C29,
-/**/ 0x280E72DD, 0xBF42ED33,
-/**/ 0x82600000, 0x3F42EE99,
-/**/ 0x0E9DC27F, 0xBD222C5A,
-/**/ 0x6B1C19D4, 0xBF42FD2E,
-/**/ 0x23C00000, 0x3F42FE97,
-/**/ 0xA4C12307, 0xBD3548A7,
-/**/ 0xAA2B8844, 0xBF430D29,
-/**/ 0xC3000000, 0x3F430E94,
-/**/ 0x1B27A40C, 0x3D3FB49A,
-/**/ 0xE53CBFAC, 0xBF431D24,
-/**/ 0x60600000, 0x3F431E92,
-/**/ 0xC65D601D, 0x3D35E297,
-/**/ 0x1C4FC18B, 0xBF432D20,
-/**/ 0xFBC00000, 0x3F432E8F,
-/**/ 0xD4E46CD5, 0x3D2A84A1,
-/**/ 0x4F648F60, 0xBF433D1B,
-/**/ 0x95200000, 0x3F433E8D,
-/**/ 0x526215F8, 0x3D175314,
-/**/ 0x7E7B2AAB, 0xBF434D16,
-/**/ 0x2C800000, 0x3F434E8B,
-/**/ 0x9746A94C, 0xBCD9430B,
-/**/ 0xA99394E9, 0xBF435D11,
-/**/ 0xC1E00000, 0x3F435E88,
-/**/ 0x47EF6144, 0xBD15A88D,
-/**/ 0xD0ADCF9B, 0xBF436D0C,
-/**/ 0x55400000, 0x3F436E86,
-/**/ 0x94614FFB, 0xBD227301,
-/**/ 0xF3C9DC3F, 0xBF437D07,
-/**/ 0xE6A00000, 0x3F437E83,
-/**/ 0x16908831, 0xBD27A44A,
-/**/ 0x12E7BC55, 0xBF438D03,
-/**/ 0x76000000, 0x3F438E81,
-/**/ 0x13DE59AC, 0xBD2A6621,
-/**/ 0x2E07715C, 0xBF439CFE,
-/**/ 0x03600000, 0x3F439E7F,
-/**/ 0x76635000, 0xBD2AB687,
-/**/ 0x4528FCD2, 0xBF43ACF9,
-/**/ 0x8EC00000, 0x3F43AE7C,
-/**/ 0x28F7818F, 0xBD28937E,
-/**/ 0x584C6037, 0xBF43BCF4,
-/**/ 0x18200000, 0x3F43BE7A,
-/**/ 0x17328F27, 0xBD23FB06,
-/**/ 0x67719D0A, 0xBF43CCEF,
-/**/ 0x9F800000, 0x3F43CE77,
-/**/ 0x5AD74747, 0xBD19D640,
-/**/ 0x7298B4CA, 0xBF43DCEA,
-/**/ 0x24E00000, 0x3F43DE75,
-/**/ 0xC5CB9C74, 0xBCFB0E6A,
-/**/ 0x79C1A8F6, 0xBF43ECE5,
-/**/ 0xA8400000, 0x3F43EE72,
-/**/ 0xF21B8682, 0x3D1145E2,
-/**/ 0x7CEC7B0D, 0xBF43FCE0,
-/**/ 0x29A00000, 0x3F43FE70,
-/**/ 0x59543A06, 0x3D27251B,
-/**/ 0x7C192C8E, 0xBF440CDB,
-/**/ 0xA9000000, 0x3F440E6D,
-/**/ 0xAC6250B6, 0x3D341357,
-/**/ 0x7747BEF8, 0xBF441CD6,
-/**/ 0x26600000, 0x3F441E6B,
-/**/ 0x43A510F7, 0x3D3DD4D6,
-/**/ 0x6E7833CB, 0xBF442CD1,
-/**/ 0xA1E00000, 0x3F442E68,
-/**/ 0x05F7D1E1, 0xBD3727F7,
-/**/ 0x61AA8C85, 0xBF443CCC,
-/**/ 0x1B400000, 0x3F443E66,
-/**/ 0x527C9668, 0xBD25C421,
-/**/ 0x50DECAA5, 0xBF444CC7,
-/**/ 0x92A00000, 0x3F444E63,
-/**/ 0x053F70AC, 0x3D053C47,
-/**/ 0x3C14EFAB, 0xBF445CC2,
-/**/ 0x08000000, 0x3F445E61,
-/**/ 0x1E315FBB, 0x3D3175D5,
-/**/ 0x234CFD15, 0xBF446CBD,
-/**/ 0x7B800000, 0x3F446E5E,
-/**/ 0x6A8B33AC, 0xBD3E762C,
-/**/ 0x0686F463, 0xBF447CB8,
-/**/ 0xECE00000, 0x3F447E5B,
-/**/ 0x67AD9900, 0xBD2A36F8,
-/**/ 0xE5C2D713, 0xBF448CB2,
-/**/ 0x5C400000, 0x3F448E59,
-/**/ 0x1E974853, 0x3D161B95,
-/**/ 0xC100A6A5, 0xBF449CAD,
-/**/ 0xC9A00000, 0x3F449E56,
-/**/ 0x8CE22250, 0x3D3971F7,
-/**/ 0x98406498, 0xBF44ACA8,
-/**/ 0x35200000, 0x3F44AE54,
-/**/ 0xDF8A23F8, 0xBD315945,
-/**/ 0x6B82126A, 0xBF44BCA3,
-/**/ 0x9E800000, 0x3F44BE51,
-/**/ 0x1A63D360, 0x3D1498B2,
-/**/ 0x3AC5B19B, 0xBF44CC9E,
-/**/ 0x05E00000, 0x3F44CE4F,
-/**/ 0x4323A054, 0x3D3CF14E,
-/**/ 0x060B43AA, 0xBF44DC99,
-/**/ 0x6B600000, 0x3F44DE4C,
-/**/ 0x4CE35F94, 0xBD23EDC2,
-/**/ 0xCD52CA15, 0xBF44EC93,
-/**/ 0xCEC00000, 0x3F44EE49,
-/**/ 0xCCF1B48E, 0x3D306E9D,
-/**/ 0x909C465C, 0xBF44FC8E,
-/**/ 0x30400000, 0x3F44FE47,
-/**/ 0x5FF9440B, 0xBD33DD35,
-/**/ 0x4FE7B9FF, 0xBF450C89,
-/**/ 0x8FA00000, 0x3F450E44,
-/**/ 0xAA4D276D, 0x3D224D49,
-/**/ 0x0B35267A, 0xBF451C84,
-/**/ 0xED200000, 0x3F451E41,
-/**/ 0x11B557F9, 0xBD3884D4,
-/**/ 0xC2848D4F, 0xBF452C7E,
-/**/ 0x48800000, 0x3F452E3F,
-/**/ 0xB43290C4, 0x3D1C857D,
-/**/ 0x75D5EFFC, 0xBF453C79,
-/**/ 0xA2000000, 0x3F453E3C,
-/**/ 0x2D598D3C, 0xBD37E5C1,
-/**/ 0x25294FFF, 0xBF454C74,
-/**/ 0xF9600000, 0x3F454E39,
-/**/ 0x3FE47B89, 0x3D24CD93,
-/**/ 0xD07EAED8, 0xBF455C6E,
-/**/ 0x4EE00000, 0x3F455E37,
-/**/ 0xAA959122, 0xBD31F800,
-/**/ 0x77D60E06, 0xBF456C69,
-/**/ 0xA2400000, 0x3F456E34,
-/**/ 0x7329AF92, 0x3D32FEDF,
-/**/ 0x1B2F6F08, 0xBF457C64,
-/**/ 0xF3C00000, 0x3F457E31,
-/**/ 0x1C545A6F, 0xBD1ACE5A,
-/**/ 0xBA8AD35D, 0xBF458C5E,
-/**/ 0x43400000, 0x3F458E2F,
-/**/ 0x19F6B9EF, 0xBD3F0E63,
-/**/ 0x55E83C84, 0xBF459C59,
-/**/ 0x90A00000, 0x3F459E2C,
-/**/ 0x73005F6F, 0x3D23DEF2,
-/**/ 0xED47ABFB, 0xBF45AC53,
-/**/ 0xDC200000, 0x3F45AE29,
-/**/ 0x1C295DE7, 0xBD277204,
-/**/ 0x80A92343, 0xBF45BC4E,
-/**/ 0x25800000, 0x3F45BE27,
-/**/ 0x8D869589, 0x3D3FF92A,
-/**/ 0x100CA3D9, 0xBF45CC49,
-/**/ 0x6D000000, 0x3F45CE24,
-/**/ 0x145C5335, 0x3D2A0DFD,
-/**/ 0x9B722F3C, 0xBF45DC43,
-/**/ 0xB2800000, 0x3F45DE21,
-/**/ 0x6A8614B3, 0xBD123A1A,
-/**/ 0x22D9C6ED, 0xBF45EC3E,
-/**/ 0xF6000000, 0x3F45EE1E,
-/**/ 0x63CBC7E7, 0xBD34C665,
-/**/ 0xA6436C69, 0xBF45FC38,
-/**/ 0x37600000, 0x3F45FE1C,
-/**/ 0xAB6C51D7, 0x3D3C6061,
-/**/ 0x25AF2130, 0xBF460C33,
-/**/ 0x76E00000, 0x3F460E19,
-/**/ 0x1EC7F453, 0x3D2DCD9C,
-/**/ 0xA11CE6C1, 0xBF461C2D,
-/**/ 0xB4600000, 0x3F461E16,
-/**/ 0x20C52899, 0x3D066EFA,
-/**/ 0x188CBE9A, 0xBF462C28,
-/**/ 0xEFE00000, 0x3F462E13,
-/**/ 0xEB5FDD5C, 0xBD1FA5AC,
-/**/ 0x8BFEAA3B, 0xBF463C22,
-/**/ 0x29600000, 0x3F463E11,
-/**/ 0xF22FE2BC, 0xBD313E11,
-/**/ 0xFB72AB23, 0xBF464C1C,
-/**/ 0x60E00000, 0x3F464E0E,
-/**/ 0x6710E251, 0xBD392F15,
-/**/ 0x66E8C2D0, 0xBF465C17,
-/**/ 0x96600000, 0x3F465E0B,
-/**/ 0x1EFC78A7, 0xBD3FBB76,
-/**/ 0xCE60F2C1, 0xBF466C11,
-/**/ 0xC9C00000, 0x3F466E08,
-/**/ 0x602C1A84, 0x3D3B1DCB,
-/**/ 0x31DB3C76, 0xBF467C0C,
-/**/ 0xFB400000, 0x3F467E05,
-/**/ 0x9027DA74, 0x3D375DAE,
-/**/ 0x9157A16E, 0xBF468C06,
-/**/ 0x2AC00000, 0x3F468E03,
-/**/ 0xEA560DA0, 0x3D350532,
-/**/ 0xECD62326, 0xBF469C00,
-/**/ 0x58400000, 0x3F469E00,
-/**/ 0xE7B63DE2, 0x3D341557 } };
-
-#endif
-#endif
diff --git a/sysdeps/ieee754/dbl-64/urem.h b/sysdeps/ieee754/dbl-64/urem.h
index c810791a1c..91666797c0 100644
--- a/sysdeps/ieee754/dbl-64/urem.h
+++ b/sysdeps/ieee754/dbl-64/urem.h
@@ -1,7 +1,7 @@
/*
* IBM Accurate Mathematical Library
* Written by International Business Machines Corp.
- * Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2019 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 by
@@ -14,7 +14,7 @@
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
/************************************************************************/
diff --git a/sysdeps/ieee754/dbl-64/usncs.h b/sysdeps/ieee754/dbl-64/usncs.h
index 97d1418a23..3d8d348882 100644
--- a/sysdeps/ieee754/dbl-64/usncs.h
+++ b/sysdeps/ieee754/dbl-64/usncs.h
@@ -1,7 +1,7 @@
/*
* IBM Accurate Mathematical Library
* Written by International Business Machines Corp.
- * Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2019 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 by
@@ -14,7 +14,7 @@
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
/************************************************************************/
diff --git a/sysdeps/ieee754/dbl-64/utan.h b/sysdeps/ieee754/dbl-64/utan.h
index d619d0004b..645a267e8d 100644
--- a/sysdeps/ieee754/dbl-64/utan.h
+++ b/sysdeps/ieee754/dbl-64/utan.h
@@ -1,7 +1,7 @@
/*
* IBM Accurate Mathematical Library
* Written by International Business Machines Corp.
- * Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2019 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 by
@@ -14,7 +14,7 @@
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
/******************************************************************/
diff --git a/sysdeps/ieee754/dbl-64/utan.tbl b/sysdeps/ieee754/dbl-64/utan.tbl
index 92163ec3e8..89cf406b55 100644
--- a/sysdeps/ieee754/dbl-64/utan.tbl
+++ b/sysdeps/ieee754/dbl-64/utan.tbl
@@ -1,7 +1,7 @@
/*
* IBM Accurate Mathematical Library
* Written by International Business Machines Corp.
- * Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2019 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 by
@@ -14,7 +14,7 @@
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
/****************************************************************/
diff --git a/sysdeps/ieee754/dbl-64/w_exp.c b/sysdeps/ieee754/dbl-64/w_exp.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ieee754/dbl-64/w_exp.c
@@ -0,0 +1 @@
+/* Not needed. */
diff --git a/sysdeps/ieee754/dbl-64/w_exp2.c b/sysdeps/ieee754/dbl-64/w_exp2.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ieee754/dbl-64/w_exp2.c
@@ -0,0 +1 @@
+/* Not needed. */
diff --git a/sysdeps/ieee754/dbl-64/w_log.c b/sysdeps/ieee754/dbl-64/w_log.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ieee754/dbl-64/w_log.c
@@ -0,0 +1 @@
+/* Not needed. */
diff --git a/sysdeps/ieee754/dbl-64/w_log2.c b/sysdeps/ieee754/dbl-64/w_log2.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ieee754/dbl-64/w_log2.c
@@ -0,0 +1 @@
+/* Not needed. */
diff --git a/sysdeps/ieee754/dbl-64/w_pow.c b/sysdeps/ieee754/dbl-64/w_pow.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/ieee754/dbl-64/w_pow.c
@@ -0,0 +1 @@
+/* Not needed. */
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/e_log2.c b/sysdeps/ieee754/dbl-64/wordsize-64/e_log2.c
deleted file mode 100644
index f08d5b337d..0000000000
--- a/sysdeps/ieee754/dbl-64/wordsize-64/e_log2.c
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-/* __ieee754_log2(x)
- * Return the logarithm to base 2 of x
- *
- * Method :
- * 1. Argument Reduction: find k and f such that
- * x = 2^k * (1+f),
- * where sqrt(2)/2 < 1+f < sqrt(2) .
- *
- * 2. Approximation of log(1+f).
- * Let s = f/(2+f) ; based on log(1+f) = log(1+s) - log(1-s)
- * = 2s + 2/3 s**3 + 2/5 s**5 + .....,
- * = 2s + s*R
- * We use a special Reme algorithm on [0,0.1716] to generate
- * a polynomial of degree 14 to approximate R The maximum error
- * of this polynomial approximation is bounded by 2**-58.45. In
- * other words,
- * 2 4 6 8 10 12 14
- * R(z) ~ Lg1*s +Lg2*s +Lg3*s +Lg4*s +Lg5*s +Lg6*s +Lg7*s
- * (the values of Lg1 to Lg7 are listed in the program)
- * and
- * | 2 14 | -58.45
- * | Lg1*s +...+Lg7*s - R(z) | <= 2
- * | |
- * Note that 2s = f - s*f = f - hfsq + s*hfsq, where hfsq = f*f/2.
- * In order to guarantee error in log below 1ulp, we compute log
- * by
- * log(1+f) = f - s*(f - R) (if f is not too large)
- * log(1+f) = f - (hfsq - s*(hfsq+R)). (better accuracy)
- *
- * 3. Finally, log(x) = k + log(1+f).
- * = k+(f-(hfsq-(s*(hfsq+R))))
- *
- * Special cases:
- * log2(x) is NaN with signal if x < 0 (including -INF) ;
- * log2(+INF) is +INF; log(0) is -INF with signal;
- * log2(NaN) is that NaN with no signal.
- *
- * Constants:
- * The hexadecimal values are the intended ones for the following
- * constants. The decimal values may be used, provided that the
- * compiler will convert from decimal to binary accurately enough
- * to produce the hexadecimal values shown.
- */
-
-#include <math.h>
-#include <math_private.h>
-
-static const double ln2 = 0.69314718055994530942;
-static const double two54 = 1.80143985094819840000e+16; /* 4350000000000000 */
-static const double Lg1 = 6.666666666666735130e-01; /* 3FE5555555555593 */
-static const double Lg2 = 3.999999999940941908e-01; /* 3FD999999997FA04 */
-static const double Lg3 = 2.857142874366239149e-01; /* 3FD2492494229359 */
-static const double Lg4 = 2.222219843214978396e-01; /* 3FCC71C51D8E78AF */
-static const double Lg5 = 1.818357216161805012e-01; /* 3FC7466496CB03DE */
-static const double Lg6 = 1.531383769920937332e-01; /* 3FC39A09D078C69F */
-static const double Lg7 = 1.479819860511658591e-01; /* 3FC2F112DF3E5244 */
-
-static const double zero = 0.0;
-
-double
-__ieee754_log2 (double x)
-{
- double hfsq, f, s, z, R, w, t1, t2, dk;
- int64_t hx, i, j;
- int32_t k;
-
- EXTRACT_WORDS64 (hx, x);
-
- k = 0;
- if (hx < INT64_C(0x0010000000000000))
- { /* x < 2**-1022 */
- if (__glibc_unlikely ((hx & UINT64_C(0x7fffffffffffffff)) == 0))
- return -two54 / fabs (x); /* log(+-0)=-inf */
- if (__glibc_unlikely (hx < 0))
- return (x - x) / (x - x); /* log(-#) = NaN */
- k -= 54;
- x *= two54; /* subnormal number, scale up x */
- EXTRACT_WORDS64 (hx, x);
- }
- if (__glibc_unlikely (hx >= UINT64_C(0x7ff0000000000000)))
- return x + x;
- k += (hx >> 52) - 1023;
- hx &= UINT64_C(0x000fffffffffffff);
- i = (hx + UINT64_C(0x95f6400000000)) & UINT64_C(0x10000000000000);
- /* normalize x or x/2 */
- INSERT_WORDS64 (x, hx | (i ^ UINT64_C(0x3ff0000000000000)));
- k += (i >> 52);
- dk = (double) k;
- f = x - 1.0;
- if ((UINT64_C(0x000fffffffffffff) & (2 + hx)) < 3)
- { /* |f| < 2**-20 */
- if (f == zero)
- return dk;
- R = f * f * (0.5 - 0.33333333333333333 * f);
- return dk - (R - f) / ln2;
- }
- s = f / (2.0 + f);
- z = s * s;
- i = hx - UINT64_C(0x6147a00000000);
- w = z * z;
- j = UINT64_C(0x6b85100000000) - hx;
- t1 = w * (Lg2 + w * (Lg4 + w * Lg6));
- t2 = z * (Lg1 + w * (Lg3 + w * (Lg5 + w * Lg7)));
- i |= j;
- R = t2 + t1;
- if (i > 0)
- {
- hfsq = 0.5 * f * f;
- return dk - ((hfsq - (s * (hfsq + R))) - f) / ln2;
- }
- else
- {
- return dk - ((s * (f - R)) - f) / ln2;
- }
-}
-
-strong_alias (__ieee754_log2, __log2_finite)
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_ceil.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_ceil.c
deleted file mode 100644
index b99829d2b0..0000000000
--- a/sysdeps/ieee754/dbl-64/wordsize-64/s_ceil.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/* @(#)s_ceil.c 5.1 93/09/24 */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-/*
- * ceil(x)
- * Return x rounded toward -inf to integral value
- * Method:
- * Bit twiddling.
- */
-
-#include <math.h>
-#include <math_private.h>
-#include <libm-alias-double.h>
-
-double
-__ceil(double x)
-{
- int64_t i0,i;
- int32_t j0;
- EXTRACT_WORDS64(i0,x);
- j0 = ((i0>>52)&0x7ff)-0x3ff;
- if(j0<=51) {
- if(j0<0) {
- /* return 0*sign(x) if |x|<1 */
- if(i0<0) {i0=INT64_C(0x8000000000000000);}
- else if(i0!=0) { i0=INT64_C(0x3ff0000000000000);}
- } else {
- i = INT64_C(0x000fffffffffffff)>>j0;
- if((i0&i)==0) return x; /* x is integral */
- if(i0>0) i0 += UINT64_C(0x0010000000000000)>>j0;
- i0 &= (~i);
- }
- } else {
- if(j0==0x400) return x+x; /* inf or NaN */
- else return x; /* x is integral */
- }
- INSERT_WORDS64(x,i0);
- return x;
-}
-#ifndef __ceil
-libm_alias_double (__ceil, ceil)
-#endif
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_finite.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_finite.c
deleted file mode 100644
index 40676924fe..0000000000
--- a/sysdeps/ieee754/dbl-64/wordsize-64/s_finite.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-/*
- * finite(x) returns 1 is x is finite, else 0;
- * no branching!
- */
-
-#include <math.h>
-#include <math_private.h>
-#include <ldbl-classify-compat.h>
-#include <shlib-compat.h>
-#include <stdint.h>
-
-#undef __finite
-int
-__finite(double x)
-{
- int64_t lx;
- EXTRACT_WORDS64(lx,x);
- return (int)((uint64_t)((lx&INT64_C(0x7ff0000000000000))-INT64_C(0x7ff0000000000000))>>63);
-}
-hidden_def (__finite)
-weak_alias (__finite, finite)
-#ifdef NO_LONG_DOUBLE
-# if LDBL_CLASSIFY_COMPAT
-# if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_23)
-compat_symbol (libc, __finite, __finitel, GLIBC_2_0);
-# endif
-# if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_23)
-compat_symbol (libm, __finite, __finitel, GLIBC_2_1);
-# endif
-# endif
-weak_alias (__finite, finitel)
-#endif
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_floor.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_floor.c
deleted file mode 100644
index f7e0a77ec3..0000000000
--- a/sysdeps/ieee754/dbl-64/wordsize-64/s_floor.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/* Round double to integer away from zero.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 2011.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-/* Based on a version which carries the following copyright: */
-
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-#include <math.h>
-#include <math_private.h>
-#include <stdint.h>
-#include <libm-alias-double.h>
-
-/*
- * floor(x)
- * Return x rounded toward -inf to integral value
- * Method:
- * Bit twiddling.
- */
-
-
-double
-__floor (double x)
-{
- int64_t i0;
- EXTRACT_WORDS64(i0,x);
- int32_t j0 = ((i0>>52)&0x7ff)-0x3ff;
- if(__builtin_expect(j0<52, 1)) {
- if(j0<0) {
- /* return 0*sign(x) if |x|<1 */
- if(i0>=0) {i0=0;}
- else if((i0&0x7fffffffffffffffl)!=0)
- { i0=0xbff0000000000000l;}
- } else {
- uint64_t i = (0x000fffffffffffffl)>>j0;
- if((i0&i)==0) return x; /* x is integral */
- if(i0<0) i0 += (0x0010000000000000l)>>j0;
- i0 &= (~i);
- }
- INSERT_WORDS64(x,i0);
- } else if (j0==0x400)
- return x+x; /* inf or NaN */
- return x;
-}
-#ifndef __floor
-libm_alias_double (__floor, floor)
-#endif
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_frexp.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_frexp.c
index c73434f5f3..c092fde3b8 100644
--- a/sysdeps/ieee754/dbl-64/wordsize-64/s_frexp.c
+++ b/sysdeps/ieee754/dbl-64/wordsize-64/s_frexp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <inttypes.h>
#include <math.h>
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_getpayload.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_getpayload.c
index 1103ef2ed9..9b99b7ac4d 100644
--- a/sysdeps/ieee754/dbl-64/wordsize-64/s_getpayload.c
+++ b/sysdeps/ieee754/dbl-64/wordsize-64/s_getpayload.c
@@ -1,5 +1,5 @@
/* Get NaN payload. dbl-64/wordsize-64 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_isinf.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_isinf.c
deleted file mode 100644
index 2b427a8b4c..0000000000
--- a/sysdeps/ieee754/dbl-64/wordsize-64/s_isinf.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Written by J.T. Conklin <jtc@netbsd.org>.
- * Changed to return -1 for -Inf by Ulrich Drepper <drepper@cygnus.com>.
- * Public domain.
- */
-
-/*
- * isinf(x) returns 1 is x is inf, -1 if x is -inf, else 0;
- * no branching!
- */
-
-#include <math.h>
-#include <math_private.h>
-#include <ldbl-classify-compat.h>
-#include <shlib-compat.h>
-
-int
-__isinf (double x)
-{
- int64_t ix;
- EXTRACT_WORDS64(ix,x);
- int64_t t = ix & UINT64_C(0x7fffffffffffffff);
- t ^= UINT64_C(0x7ff0000000000000);
- t |= -t;
- return ~(t >> 63) & (ix >> 62);
-}
-hidden_def (__isinf)
-weak_alias (__isinf, isinf)
-#ifdef NO_LONG_DOUBLE
-# if LDBL_CLASSIFY_COMPAT && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_23)
-compat_symbol (libc, __isinf, __isinfl, GLIBC_2_0);
-# endif
-weak_alias (__isinf, isinfl)
-#endif
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_isnan.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_isnan.c
deleted file mode 100644
index cd805d157b..0000000000
--- a/sysdeps/ieee754/dbl-64/wordsize-64/s_isnan.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/* @(#)s_isnan.c 5.1 93/09/24 */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-/*
- * isnan(x) returns 1 is x is nan, else 0;
- * no branching!
- */
-
-#include <math.h>
-#include <math_private.h>
-#include <ldbl-classify-compat.h>
-#include <shlib-compat.h>
-#include <stdint.h>
-
-#undef __isnan
-int __isnan(double x)
-{
- int64_t hx;
- EXTRACT_WORDS64(hx,x);
- hx &= UINT64_C(0x7fffffffffffffff);
- hx = UINT64_C(0x7ff0000000000000) - hx;
- return (int)(((uint64_t)hx)>>63);
-}
-hidden_def (__isnan)
-weak_alias (__isnan, isnan)
-#ifdef NO_LONG_DOUBLE
-# if LDBL_CLASSIFY_COMPAT && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_23)
-compat_symbol (libc, __isnan, __isnanl, GLIBC_2_0);
-# endif
-weak_alias (__isnan, isnanl)
-#endif
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_issignaling.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_issignaling.c
index 63ef5ca7d8..2131853677 100644
--- a/sysdeps/ieee754/dbl-64/wordsize-64/s_issignaling.c
+++ b/sysdeps/ieee754/dbl-64/wordsize-64/s_issignaling.c
@@ -1,5 +1,5 @@
/* Test for signaling NaN.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_llround.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_llround.c
index e3b18eb893..f6706aef13 100644
--- a/sysdeps/ieee754/dbl-64/wordsize-64/s_llround.c
+++ b/sysdeps/ieee754/dbl-64/wordsize-64/s_llround.c
@@ -1,5 +1,5 @@
/* Round double value to long long int.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define lround __hidden_lround
#define __lround __hidden___lround
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_logb.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_logb.c
deleted file mode 100644
index c7fa8169c5..0000000000
--- a/sysdeps/ieee754/dbl-64/wordsize-64/s_logb.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Compute radix independent exponent.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-
-#include <math_private.h>
-#include <libm-alias-double.h>
-
-
-double
-__logb (double x)
-{
- int64_t ix, ex;
-
- EXTRACT_WORDS64 (ix, x);
- ix &= UINT64_C(0x7fffffffffffffff);
- if (ix == 0)
- return -1.0 / fabs (x);
- ex = ix >> 52;
- if (ex == 0x7ff)
- return x * x;
- if (__glibc_unlikely (ex == 0))
- {
- int m = __builtin_clzll (ix);
- ex -= m - 12;
- }
- return (double) (ex - 1023);
-}
-#ifndef __logb
-libm_alias_double (__logb, logb)
-#endif
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_lround.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_lround.c
index a88c6c8788..fbbe05fab8 100644
--- a/sysdeps/ieee754/dbl-64/wordsize-64/s_lround.c
+++ b/sysdeps/ieee754/dbl-64/wordsize-64/s_lround.c
@@ -1,5 +1,5 @@
/* Round double value to long int.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <limits.h>
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c
deleted file mode 100644
index a4a081724e..0000000000
--- a/sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/* Adapted for use as nearbyint by Ulrich Drepper <drepper@cygnus.com>. */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-/*
- * rint(x)
- * Return x rounded to integral value according to the prevailing
- * rounding mode.
- * Method:
- * Using floating addition.
- * Exception:
- * Inexact flag raised if x not equal to rint(x).
- */
-
-#include <fenv.h>
-#include <math.h>
-#include <math-barriers.h>
-#include <math_private.h>
-#include <libm-alias-double.h>
-
-static const double
-TWO52[2]={
- 4.50359962737049600000e+15, /* 0x43300000, 0x00000000 */
- -4.50359962737049600000e+15, /* 0xC3300000, 0x00000000 */
-};
-
-double
-__nearbyint(double x)
-{
- fenv_t env;
- int64_t i0,sx;
- int32_t j0;
- EXTRACT_WORDS64(i0,x);
- sx = (i0>>63)&1;
- j0 = ((i0>>52)&0x7ff)-0x3ff;
- if(__builtin_expect(j0<52, 1)) {
- if(j0<0) {
- libc_feholdexcept (&env);
- double w = TWO52[sx] + math_opt_barrier (x);
- double t = w-TWO52[sx];
- math_force_eval (t);
- libc_fesetenv (&env);
- return __copysign (t, x);
- }
- } else {
- if(j0==0x400) return x+x; /* inf or NaN */
- else return x; /* x is integral */
- }
- libc_feholdexcept (&env);
- double w = TWO52[sx] + math_opt_barrier (x);
- double t = w-TWO52[sx];
- math_force_eval (t);
- libc_fesetenv (&env);
- return t;
-}
-libm_alias_double (__nearbyint, nearbyint)
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_remquo.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_remquo.c
index bbfb1195ac..bb3fb07cd8 100644
--- a/sysdeps/ieee754/dbl-64/wordsize-64/s_remquo.c
+++ b/sysdeps/ieee754/dbl-64/wordsize-64/s_remquo.c
@@ -1,5 +1,5 @@
/* Compute remainder and a congruent to the quotient.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_rint.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_rint.c
deleted file mode 100644
index 622e479c5f..0000000000
--- a/sysdeps/ieee754/dbl-64/wordsize-64/s_rint.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-/*
- * rint(x)
- * Return x rounded to integral value according to the prevailing
- * rounding mode.
- * Method:
- * Using floating addition.
- * Exception:
- * Inexact flag raised if x not equal to rint(x).
- */
-
-#include <math.h>
-#include <math_private.h>
-#include <libm-alias-double.h>
-
-static const double
-TWO52[2]={
- 4.50359962737049600000e+15, /* 0x43300000, 0x00000000 */
- -4.50359962737049600000e+15, /* 0xC3300000, 0x00000000 */
-};
-
-double
-__rint(double x)
-{
- int64_t i0,sx;
- int32_t j0;
- EXTRACT_WORDS64(i0,x);
- sx = (i0>>63)&1;
- j0 = ((i0>>52)&0x7ff)-0x3ff;
- if(j0<52) {
- if(j0<0) {
- double w = TWO52[sx]+x;
- double t = w-TWO52[sx];
- EXTRACT_WORDS64(i0,t);
- INSERT_WORDS64(t,(i0&UINT64_C(0x7fffffffffffffff))|(sx<<63));
- return t;
- }
- } else {
- if(j0==0x400) return x+x; /* inf or NaN */
- else return x; /* x is integral */
- }
- double w = TWO52[sx]+x;
- return w-TWO52[sx];
-}
-#ifndef __rint
-libm_alias_double (__rint, rint)
-#endif
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_round.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_round.c
deleted file mode 100644
index 3323621ce3..0000000000
--- a/sysdeps/ieee754/dbl-64/wordsize-64/s_round.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/* Round double to integer away from zero.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-
-#include <math_private.h>
-#include <libm-alias-double.h>
-#include <stdint.h>
-
-
-double
-__round (double x)
-{
- int64_t i0, j0;
-
- EXTRACT_WORDS64 (i0, x);
- j0 = ((i0 >> 52) & 0x7ff) - 0x3ff;
- if (__glibc_likely (j0 < 52))
- {
- if (j0 < 0)
- {
- i0 &= UINT64_C(0x8000000000000000);
- if (j0 == -1)
- i0 |= UINT64_C(0x3ff0000000000000);
- }
- else
- {
- uint64_t i = UINT64_C(0x000fffffffffffff) >> j0;
- if ((i0 & i) == 0)
- /* X is integral. */
- return x;
-
- i0 += UINT64_C(0x0008000000000000) >> j0;
- i0 &= ~i;
- }
- }
- else
- {
- if (j0 == 0x400)
- /* Inf or NaN. */
- return x + x;
- else
- return x;
- }
-
- INSERT_WORDS64 (x, i0);
- return x;
-}
-libm_alias_double (__round, round)
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_roundeven.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_roundeven.c
index 7bbbb2dc20..c1738c47d6 100644
--- a/sysdeps/ieee754/dbl-64/wordsize-64/s_roundeven.c
+++ b/sysdeps/ieee754/dbl-64/wordsize-64/s_roundeven.c
@@ -1,6 +1,6 @@
/* Round to nearest integer value, rounding halfway cases to even.
dbl-64/wordsize-64 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_scalbln.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_scalbln.c
index 8dce51e928..071c9d7794 100644
--- a/sysdeps/ieee754/dbl-64/wordsize-64/s_scalbln.c
+++ b/sysdeps/ieee754/dbl-64/wordsize-64/s_scalbln.c
@@ -40,9 +40,9 @@ __scalbln (double x, long int n)
}
if (__builtin_expect(k==0x7ff, 0)) return x+x; /* NaN or Inf */
if (__builtin_expect(n< -50000, 0))
- return tiny*__copysign(tiny,x); /*underflow*/
+ return tiny*copysign(tiny,x); /*underflow*/
if (__builtin_expect(n> 50000 || k+n > 0x7fe, 0))
- return huge*__copysign(huge,x); /* overflow */
+ return huge*copysign(huge,x); /* overflow */
/* Now k and n are bounded we know that k = k+n does not
overflow. */
k = k+n;
@@ -50,7 +50,7 @@ __scalbln (double x, long int n)
{INSERT_WORDS64(x,(ix&UINT64_C(0x800fffffffffffff))|(k<<52));
return x;}
if (k <= -54)
- return tiny*__copysign(tiny,x); /*underflow*/
+ return tiny*copysign(tiny,x); /*underflow*/
k += 54; /* subnormal result */
INSERT_WORDS64(x,(ix&INT64_C(0x800fffffffffffff))|(k<<52));
return x*twom54;
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_scalbn.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_scalbn.c
index d517a919c8..4491227f3e 100644
--- a/sysdeps/ieee754/dbl-64/wordsize-64/s_scalbn.c
+++ b/sysdeps/ieee754/dbl-64/wordsize-64/s_scalbn.c
@@ -40,9 +40,9 @@ __scalbn (double x, int n)
}
if (__builtin_expect(k==0x7ff, 0)) return x+x; /* NaN or Inf */
if (__builtin_expect(n< -50000, 0))
- return tiny*__copysign(tiny,x); /*underflow*/
+ return tiny*copysign(tiny,x); /*underflow*/
if (__builtin_expect(n> 50000 || k+n > 0x7fe, 0))
- return huge*__copysign(huge,x); /* overflow */
+ return huge*copysign(huge,x); /* overflow */
/* Now k and n are bounded we know that k = k+n does not
overflow. */
k = k+n;
@@ -50,7 +50,7 @@ __scalbn (double x, int n)
{INSERT_WORDS64(x,(ix&UINT64_C(0x800fffffffffffff))|(k<<52));
return x;}
if (k <= -54)
- return tiny*__copysign(tiny,x); /*underflow*/
+ return tiny*copysign(tiny,x); /*underflow*/
k += 54; /* subnormal result */
INSERT_WORDS64(x,(ix&INT64_C(0x800fffffffffffff))|(k<<52));
return x*twom54;
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_setpayload_main.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_setpayload_main.c
index 6af92d7fe2..8018a6beec 100644
--- a/sysdeps/ieee754/dbl-64/wordsize-64/s_setpayload_main.c
+++ b/sysdeps/ieee754/dbl-64/wordsize-64/s_setpayload_main.c
@@ -1,5 +1,5 @@
/* Set NaN payload. dbl-64/wordsize-64 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_totalorder.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_totalorder.c
index c235e55c20..e9b7085310 100644
--- a/sysdeps/ieee754/dbl-64/wordsize-64/s_totalorder.c
+++ b/sysdeps/ieee754/dbl-64/wordsize-64/s_totalorder.c
@@ -1,5 +1,5 @@
/* Total order operation. dbl-64/wordsize-64 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,20 +14,22 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
#include <nan-high-order-bit.h>
#include <libm-alias-double.h>
#include <stdint.h>
+#include <shlib-compat.h>
+#include <first-versions.h>
int
-__totalorder (double x, double y)
+__totalorder (const double *x, const double *y)
{
int64_t ix, iy;
- EXTRACT_WORDS64 (ix, x);
- EXTRACT_WORDS64 (iy, y);
+ EXTRACT_WORDS64 (ix, *x);
+ EXTRACT_WORDS64 (iy, *y);
#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN
/* For the preferred quiet NaN convention, this operation is a
comparison of the representations of the arguments interpreted as
@@ -46,4 +48,29 @@ __totalorder (double x, double y)
iy ^= iy_sign >> 1;
return ix <= iy;
}
+#ifdef SHARED
+# define CONCATX(x, y) x ## y
+# define CONCAT(x, y) CONCATX (x, y)
+# define UNIQUE_ALIAS(name) CONCAT (name, __COUNTER__)
+# define do_symbol(orig_name, name, aliasname) \
+ strong_alias (orig_name, name) \
+ versioned_symbol (libm, name, aliasname, GLIBC_2_31)
+# undef weak_alias
+# define weak_alias(name, aliasname) \
+ do_symbol (name, UNIQUE_ALIAS (name), aliasname);
+#endif
libm_alias_double (__totalorder, totalorder)
+#if SHLIB_COMPAT (libm, GLIBC_2_25, GLIBC_2_31)
+int
+attribute_compat_text_section
+__totalorder_compat (double x, double y)
+{
+ return __totalorder (&x, &y);
+}
+#undef do_symbol
+#define do_symbol(orig_name, name, aliasname) \
+ strong_alias (orig_name, name) \
+ compat_symbol (libm, name, aliasname, \
+ CONCAT (FIRST_VERSION_libm_, aliasname))
+libm_alias_double (__totalorder_compat, totalorder)
+#endif
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_totalordermag.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_totalordermag.c
index 6da4f118a3..ddc4289d9b 100644
--- a/sysdeps/ieee754/dbl-64/wordsize-64/s_totalordermag.c
+++ b/sysdeps/ieee754/dbl-64/wordsize-64/s_totalordermag.c
@@ -1,5 +1,5 @@
/* Total order operation on absolute values. dbl-64/wordsize-64 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,20 +14,22 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
#include <nan-high-order-bit.h>
#include <libm-alias-double.h>
#include <stdint.h>
+#include <shlib-compat.h>
+#include <first-versions.h>
int
-__totalordermag (double x, double y)
+__totalordermag (const double *x, const double *y)
{
uint64_t ix, iy;
- EXTRACT_WORDS64 (ix, x);
- EXTRACT_WORDS64 (iy, y);
+ EXTRACT_WORDS64 (ix, *x);
+ EXTRACT_WORDS64 (iy, *y);
ix &= 0x7fffffffffffffffULL;
iy &= 0x7fffffffffffffffULL;
#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN
@@ -43,4 +45,29 @@ __totalordermag (double x, double y)
#endif
return ix <= iy;
}
+#ifdef SHARED
+# define CONCATX(x, y) x ## y
+# define CONCAT(x, y) CONCATX (x, y)
+# define UNIQUE_ALIAS(name) CONCAT (name, __COUNTER__)
+# define do_symbol(orig_name, name, aliasname) \
+ strong_alias (orig_name, name) \
+ versioned_symbol (libm, name, aliasname, GLIBC_2_31)
+# undef weak_alias
+# define weak_alias(name, aliasname) \
+ do_symbol (name, UNIQUE_ALIAS (name), aliasname);
+#endif
libm_alias_double (__totalordermag, totalordermag)
+#if SHLIB_COMPAT (libm, GLIBC_2_25, GLIBC_2_31)
+int
+attribute_compat_text_section
+__totalordermag_compat (double x, double y)
+{
+ return __totalordermag (&x, &y);
+}
+#undef do_symbol
+#define do_symbol(orig_name, name, aliasname) \
+ strong_alias (orig_name, name) \
+ compat_symbol (libm, name, aliasname, \
+ CONCAT (FIRST_VERSION_libm_, aliasname))
+libm_alias_double (__totalordermag_compat, totalordermag)
+#endif
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_trunc.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_trunc.c
deleted file mode 100644
index 19a09b894e..0000000000
--- a/sysdeps/ieee754/dbl-64/wordsize-64/s_trunc.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Truncate argument to nearest integral value not larger than the argument.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-
-#include <math_private.h>
-#include <libm-alias-double.h>
-
-
-double
-__trunc (double x)
-{
- int64_t i0, j0;
- int64_t sx;
-
- EXTRACT_WORDS64 (i0, x);
- sx = i0 & UINT64_C(0x8000000000000000);
- j0 = ((i0 >> 52) & 0x7ff) - 0x3ff;
- if (j0 < 52)
- {
- if (j0 < 0)
- /* The magnitude of the number is < 1 so the result is +-0. */
- INSERT_WORDS64 (x, sx);
- else
- INSERT_WORDS64 (x, sx | (i0 & ~(UINT64_C(0x000fffffffffffff) >> j0)));
- }
- else
- {
- if (j0 == 0x400)
- /* x is inf or NaN. */
- return x + x;
- }
-
- return x;
-}
-#ifndef __trunc
-libm_alias_double (__trunc, trunc)
-#endif
diff --git a/sysdeps/ieee754/dbl-64/x2y2m1.c b/sysdeps/ieee754/dbl-64/x2y2m1.c
index aa0d9703fa..7b40dbdad4 100644
--- a/sysdeps/ieee754/dbl-64/x2y2m1.c
+++ b/sysdeps/ieee754/dbl-64/x2y2m1.c
@@ -1,5 +1,5 @@
/* Compute x^2 + y^2 - 1, without large cancellation error.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,10 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
+#include <fenv_private.h>
#include <mul_split.h>
#include <stdlib.h>
diff --git a/sysdeps/ieee754/dbl-64/x2y2m1f.c b/sysdeps/ieee754/dbl-64/x2y2m1f.c
index a61dc4185f..9499f0aeb9 100644
--- a/sysdeps/ieee754/dbl-64/x2y2m1f.c
+++ b/sysdeps/ieee754/dbl-64/x2y2m1f.c
@@ -1,5 +1,5 @@
/* Compute x^2 + y^2 - 1, without large cancellation error.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/ieee754/float128/float1282mpn.c b/sysdeps/ieee754/float128/float1282mpn.c
index 49e8972221..65d76d7bba 100644
--- a/sysdeps/ieee754/float128/float1282mpn.c
+++ b/sysdeps/ieee754/float128/float1282mpn.c
@@ -1,5 +1,5 @@
/* Convert a _Float128 type to multiprecision.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <float128_private.h>
#include "../ldbl-128/ldbl2mpn.c"
diff --git a/sysdeps/ieee754/float128/float128_private.h b/sysdeps/ieee754/float128/float128_private.h
index 9dd15601e6..7f7f904152 100644
--- a/sysdeps/ieee754/float128/float128_private.h
+++ b/sysdeps/ieee754/float128/float128_private.h
@@ -1,5 +1,5 @@
/* _Float128 overrides for building ldbl-128 as _Float128.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This must be included before the function renames below. */
#include <gmp.h>
@@ -29,6 +29,7 @@
/* Renames derived from math_private.h. */
#include <math_private.h>
+#include <fenv_private.h>
#include <ieee754_float128.h>
#define ieee854_long_double_shape_type ieee854_float128_shape_type
#define ieee854_long_double ieee854_float128
@@ -138,6 +139,21 @@
#undef libm_alias_double_ldouble
#define libm_alias_double_ldouble(func) libm_alias_float64_float128 (func)
+#include <math-use-builtins.h>
+#undef USE_NEARBYINTL_BUILTIN
+#define USE_NEARBYINTL_BUILTIN USE_NEARBYINTF128_BUILTIN
+#undef USE_RINTL_BUILTIN
+#define USE_RINTL_BUILTIN USE_RINTF128_BUILTIN
+#undef USE_FLOORL_BUILTIN
+#define USE_FLOORL_BUILTIN USE_FLOORF128_BUILTIN
+#undef USE_CEILL_BUILTIN
+#define USE_CEILL_BUILTIN USE_CEILF128_BUILTIN
+#undef USE_TRUNCL_BUILTIN
+#define USE_TRUNCL_BUILTIN USE_TRUNCF128_BUILTIN
+#undef USE_ROUNDL_BUILTIN
+#define USE_ROUNDL_BUILTIN USE_ROUNDF128_BUILTIN
+#undef USE_COPYSIGNL_BUILTIN
+#define USE_COPYSIGNL_BUILTIN USE_COPYSIGNF128_BUILTIN
/* IEEE function renames. */
#define __ieee754_acoshl __ieee754_acoshf128
@@ -252,7 +268,9 @@
#define __tanhl __tanhf128
#define __tanl __tanf128
#define __totalorderl __totalorderf128
+#define __totalorder_compatl __totalorder_compatf128
#define __totalordermagl __totalordermagf128
+#define __totalordermag_compatl __totalordermag_compatf128
#define __truncl __truncf128
#define __x2y2m1l __x2y2m1f128
@@ -339,6 +357,13 @@
/* Builtin renames. */
#define __builtin_copysignl __builtin_copysignf128
#define __builtin_signbitl __builtin_signbit
+#define __builtin_nearbyintl __builtin_nearbyintf128
+#define __builtin_rintl __builtin_rintf128
+#define __builtin_floorl __builtin_floorf128
+#define __builtin_ceill __builtin_ceilf128
+#define __builtin_truncl __builtin_truncf128
+#define __builtin_roundl __builtin_roundf128
+#define __builtin_copysignl __builtin_copysignf128
/* Get the constant suffix from bits/floatn-compat.h. */
#define L(x) __f128 (x)
diff --git a/sysdeps/ieee754/float128/ieee754_float128.h b/sysdeps/ieee754/float128/ieee754_float128.h
index ea307eb9e9..27f06c0c73 100644
--- a/sysdeps/ieee754/float128/ieee754_float128.h
+++ b/sysdeps/ieee754/float128/ieee754_float128.h
@@ -1,5 +1,5 @@
/* _Float128 IEEE like macros.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _IEEE754_FLOAT128_H
#define _IEEE754_FLOAT128_H
diff --git a/sysdeps/ieee754/float128/math-nan-payload-float128.h b/sysdeps/ieee754/float128/math-nan-payload-float128.h
index 95ab953596..47cb2bf239 100644
--- a/sysdeps/ieee754/float128/math-nan-payload-float128.h
+++ b/sysdeps/ieee754/float128/math-nan-payload-float128.h
@@ -1,5 +1,5 @@
/* NaN payload handling for _Float128.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ieee754_float128.h>
diff --git a/sysdeps/ieee754/float128/mpn2float128.c b/sysdeps/ieee754/float128/mpn2float128.c
index 1360abc5c0..eaa70f8369 100644
--- a/sysdeps/ieee754/float128/mpn2float128.c
+++ b/sysdeps/ieee754/float128/mpn2float128.c
@@ -1,5 +1,5 @@
/* Convert a number in multi-precision format to _Float128.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "gmp.h"
#include "gmp-impl.h"
diff --git a/sysdeps/ieee754/float128/s_ceilf128.c b/sysdeps/ieee754/float128/s_ceilf128.c
index 0af15f5f03..34949ac98f 100644
--- a/sysdeps/ieee754/float128/s_ceilf128.c
+++ b/sysdeps/ieee754/float128/s_ceilf128.c
@@ -1,2 +1,3 @@
+#define NO_MATH_REDIRECT
#include <float128_private.h>
#include "../ldbl-128/s_ceill.c"
diff --git a/sysdeps/ieee754/float128/s_copysignf128.c b/sysdeps/ieee754/float128/s_copysignf128.c
index 808f7abbc0..fcb5162c66 100644
--- a/sysdeps/ieee754/float128/s_copysignf128.c
+++ b/sysdeps/ieee754/float128/s_copysignf128.c
@@ -1,2 +1,3 @@
+#define NO_MATH_REDIRECT
#include <float128_private.h>
#include "../ldbl-128/s_copysignl.c"
diff --git a/sysdeps/ieee754/float128/s_floorf128.c b/sysdeps/ieee754/float128/s_floorf128.c
index 18298436a1..e0a6412980 100644
--- a/sysdeps/ieee754/float128/s_floorf128.c
+++ b/sysdeps/ieee754/float128/s_floorf128.c
@@ -1,2 +1,3 @@
+#define NO_MATH_REDIRECT
#include <float128_private.h>
#include "../ldbl-128/s_floorl.c"
diff --git a/sysdeps/ieee754/float128/s_rintf128.c b/sysdeps/ieee754/float128/s_rintf128.c
index 2adb95f360..73c53776d9 100644
--- a/sysdeps/ieee754/float128/s_rintf128.c
+++ b/sysdeps/ieee754/float128/s_rintf128.c
@@ -1,2 +1,3 @@
+#define NO_MATH_REDIRECT
#include <float128_private.h>
#include "../ldbl-128/s_rintl.c"
diff --git a/sysdeps/ieee754/float128/s_roundf128.c b/sysdeps/ieee754/float128/s_roundf128.c
index 1eb36f2a5e..d9f6fa4754 100644
--- a/sysdeps/ieee754/float128/s_roundf128.c
+++ b/sysdeps/ieee754/float128/s_roundf128.c
@@ -1,2 +1,3 @@
+#define NO_MATH_REDIRECT
#include <float128_private.h>
#include "../ldbl-128/s_roundl.c"
diff --git a/sysdeps/ieee754/float128/s_signbitf128.c b/sysdeps/ieee754/float128/s_signbitf128.c
index 559df3b56c..82928c6a99 100644
--- a/sysdeps/ieee754/float128/s_signbitf128.c
+++ b/sysdeps/ieee754/float128/s_signbitf128.c
@@ -1,5 +1,5 @@
/* Return nonzero value if number is negative.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <float128_private.h>
#include <math.h>
diff --git a/sysdeps/ieee754/float128/s_truncf128.c b/sysdeps/ieee754/float128/s_truncf128.c
index 474d9dc77e..5786cfe4c0 100644
--- a/sysdeps/ieee754/float128/s_truncf128.c
+++ b/sysdeps/ieee754/float128/s_truncf128.c
@@ -1,2 +1,3 @@
+#define NO_MATH_REDIRECT
#include <float128_private.h>
#include "../ldbl-128/s_truncl.c"
diff --git a/sysdeps/ieee754/float128/strfromf128.c b/sysdeps/ieee754/float128/strfromf128.c
index bdc540aa71..c784e80f08 100644
--- a/sysdeps/ieee754/float128/strfromf128.c
+++ b/sysdeps/ieee754/float128/strfromf128.c
@@ -1,6 +1,6 @@
/* Definitions for strfromf128. Implementation in stdlib/strfrom-skeleton.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-2019 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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <bits/floatn.h>
diff --git a/sysdeps/ieee754/float128/strtof128.c b/sysdeps/ieee754/float128/strtof128.c
index b7265b125a..01aaac8e10 100644
--- a/sysdeps/ieee754/float128/strtof128.c
+++ b/sysdeps/ieee754/float128/strtof128.c
@@ -1,5 +1,5 @@
/* strtof128 wrapper of strtof128_l.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* The actual implementation for all floating point sizes is in strtod.c.
These macros tell it to produce the `_Float128' version, `strtof128'. */
diff --git a/sysdeps/ieee754/float128/strtof128_l.c b/sysdeps/ieee754/float128/strtof128_l.c
index eff0c97d46..1fac5085f1 100644
--- a/sysdeps/ieee754/float128/strtof128_l.c
+++ b/sysdeps/ieee754/float128/strtof128_l.c
@@ -1,5 +1,5 @@
/* Convert string representing a number to a _Float128 value, with locale.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <bits/types/locale_t.h>
diff --git a/sysdeps/ieee754/float128/strtof128_nan.c b/sysdeps/ieee754/float128/strtof128_nan.c
index 37a7f4e02e..c276a4dd50 100644
--- a/sysdeps/ieee754/float128/strtof128_nan.c
+++ b/sysdeps/ieee754/float128/strtof128_nan.c
@@ -1,6 +1,6 @@
/* Convert string for NaN payload to corresponding NaN. Narrow
strings, __float128.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/ieee754/float128/wcstof128.c b/sysdeps/ieee754/float128/wcstof128.c
index 4337b9f790..211f71ddbb 100644
--- a/sysdeps/ieee754/float128/wcstof128.c
+++ b/sysdeps/ieee754/float128/wcstof128.c
@@ -1,5 +1,5 @@
/* wcstof128 wrapper of wcstof128_l.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <bits/types/locale_t.h>
diff --git a/sysdeps/ieee754/float128/wcstof128_l.c b/sysdeps/ieee754/float128/wcstof128_l.c
index 19c3c51184..e291532293 100644
--- a/sysdeps/ieee754/float128/wcstof128_l.c
+++ b/sysdeps/ieee754/float128/wcstof128_l.c
@@ -1,5 +1,5 @@
/* Convert string representing a number to integer value, using given locale.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <bits/types/locale_t.h>
diff --git a/sysdeps/ieee754/float128/wcstof128_nan.c b/sysdeps/ieee754/float128/wcstof128_nan.c
index f504809dcf..74963fae85 100644
--- a/sysdeps/ieee754/float128/wcstof128_nan.c
+++ b/sysdeps/ieee754/float128/wcstof128_nan.c
@@ -1,6 +1,6 @@
/* Convert string for NaN payload to corresponding NaN. Wide strings,
_Float128.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib/strtod_nan_wide.h>
#include <math-type-macros-float128.h>
diff --git a/sysdeps/ieee754/flt-32/e_asinf.c b/sysdeps/ieee754/flt-32/e_asinf.c
index e03073b8bd..3328a8f296 100644
--- a/sysdeps/ieee754/flt-32/e_asinf.c
+++ b/sysdeps/ieee754/flt-32/e_asinf.c
@@ -33,7 +33,7 @@
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if defined(LIBM_SCCS) && !defined(lint)
static char rcsid[] = "$NetBSD: e_asinf.c,v 1.5 1995/05/12 04:57:25 jtc Exp $";
diff --git a/sysdeps/ieee754/flt-32/e_atanhf.c b/sysdeps/ieee754/flt-32/e_atanhf.c
index 207d759362..878e153ada 100644
--- a/sysdeps/ieee754/flt-32/e_atanhf.c
+++ b/sysdeps/ieee754/flt-32/e_atanhf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* __ieee754_atanh(x)
@@ -71,6 +71,6 @@ __ieee754_atanhf (float x)
return x / 0.0f;
}
- return __copysignf (t, x);
+ return copysignf (t, x);
}
strong_alias (__ieee754_atanhf, __atanhf_finite)
diff --git a/sysdeps/ieee754/flt-32/e_exp2f.c b/sysdeps/ieee754/flt-32/e_exp2f.c
index 7218e5d254..ba62a4d5e0 100644
--- a/sysdeps/ieee754/flt-32/e_exp2f.c
+++ b/sysdeps/ieee754/flt-32/e_exp2f.c
@@ -1,5 +1,5 @@
/* Single-precision 2^x function.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math-narrow-eval.h>
diff --git a/sysdeps/ieee754/flt-32/e_exp2f_data.c b/sysdeps/ieee754/flt-32/e_exp2f_data.c
index 8d4e702c92..1e54b55761 100644
--- a/sysdeps/ieee754/flt-32/e_exp2f_data.c
+++ b/sysdeps/ieee754/flt-32/e_exp2f_data.c
@@ -1,5 +1,5 @@
/* Shared data between expf, exp2f and powf.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "math_config.h"
diff --git a/sysdeps/ieee754/flt-32/e_expf.c b/sysdeps/ieee754/flt-32/e_expf.c
index f2238bfd74..3a2ed22b0d 100644
--- a/sysdeps/ieee754/flt-32/e_expf.c
+++ b/sysdeps/ieee754/flt-32/e_expf.c
@@ -1,5 +1,5 @@
/* Single-precision e^x function.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifdef __expf
# undef libm_hidden_proto
@@ -85,10 +85,7 @@ __expf (float x)
#if TOINT_INTRINSICS
kd = roundtoint (z);
ki = converttoint (z);
-#elif TOINT_RINT
- kd = rint (z);
- ki = (long) kd;
-#elif TOINT_SHIFT
+#else
# define SHIFT __exp2f_data.shift
kd = math_narrow_eval ((double) (z + SHIFT)); /* Needs to be double. */
ki = asuint64 (kd);
diff --git a/sysdeps/ieee754/flt-32/e_gammaf_r.c b/sysdeps/ieee754/flt-32/e_gammaf_r.c
index 8b23add347..2a72d96005 100644
--- a/sysdeps/ieee754/flt-32/e_gammaf_r.c
+++ b/sysdeps/ieee754/flt-32/e_gammaf_r.c
@@ -1,5 +1,5 @@
/* Implementation of gamma function according to ISO C.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@@ -15,11 +15,12 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math-narrow-eval.h>
#include <math_private.h>
+#include <fenv_private.h>
#include <math-underflow.h>
#include <float.h>
@@ -70,7 +71,7 @@ gammaf_positive (float x, int *exp2_adj)
{
/* Adjust into the range for applying Stirling's
approximation. */
- float n = __ceilf (4.0f - x);
+ float n = ceilf (4.0f - x);
x_adj = math_narrow_eval (x + n);
x_eps = (x - (x_adj - n));
prod = __gamma_productf (x_adj - n, x_eps, n, &eps);
@@ -80,7 +81,7 @@ gammaf_positive (float x, int *exp2_adj)
starting by computing pow (X_ADJ, X_ADJ) with a power of 2
factored out. */
float exp_adj = -eps;
- float x_adj_int = __roundf (x_adj);
+ float x_adj_int = roundf (x_adj);
float x_adj_frac = x_adj - x_adj_int;
int x_adj_log2;
float x_adj_mant = __frexpf (x_adj, &x_adj_log2);
@@ -120,7 +121,7 @@ __ieee754_gammaf_r (float x, int *signgamp)
return 1.0 / x;
}
if (__builtin_expect (hx < 0, 0)
- && (uint32_t) hx < 0xff800000 && __rintf (x) == x)
+ && (uint32_t) hx < 0xff800000 && rintf (x) == x)
{
/* Return value for integer x < 0 is NaN with invalid exception. */
*signgamp = 0;
@@ -164,8 +165,8 @@ __ieee754_gammaf_r (float x, int *signgamp)
}
else
{
- float tx = __truncf (x);
- *signgamp = (tx == 2.0f * __truncf (tx / 2.0f)) ? -1 : 1;
+ float tx = truncf (x);
+ *signgamp = (tx == 2.0f * truncf (tx / 2.0f)) ? -1 : 1;
if (x <= -42.0f)
/* Underflow. */
ret = FLT_MIN * FLT_MIN;
@@ -190,22 +191,22 @@ __ieee754_gammaf_r (float x, int *signgamp)
{
if (*signgamp < 0)
{
- ret = math_narrow_eval (-__copysignf (FLT_MAX, ret) * FLT_MAX);
+ ret = math_narrow_eval (-copysignf (FLT_MAX, ret) * FLT_MAX);
ret = -ret;
}
else
- ret = math_narrow_eval (__copysignf (FLT_MAX, ret) * FLT_MAX);
+ ret = math_narrow_eval (copysignf (FLT_MAX, ret) * FLT_MAX);
return ret;
}
else if (ret == 0)
{
if (*signgamp < 0)
{
- ret = math_narrow_eval (-__copysignf (FLT_MIN, ret) * FLT_MIN);
+ ret = math_narrow_eval (-copysignf (FLT_MIN, ret) * FLT_MIN);
ret = -ret;
}
else
- ret = math_narrow_eval (__copysignf (FLT_MIN, ret) * FLT_MIN);
+ ret = math_narrow_eval (copysignf (FLT_MIN, ret) * FLT_MIN);
return ret;
}
else
diff --git a/sysdeps/ieee754/flt-32/e_j1f.c b/sysdeps/ieee754/flt-32/e_j1f.c
index 887b5f7d1e..09b2296483 100644
--- a/sysdeps/ieee754/flt-32/e_j1f.c
+++ b/sysdeps/ieee754/flt-32/e_j1f.c
@@ -18,6 +18,7 @@
#include <math.h>
#include <math-narrow-eval.h>
#include <math_private.h>
+#include <fenv_private.h>
#include <math-underflow.h>
static float ponef(float), qonef(float);
diff --git a/sysdeps/ieee754/flt-32/e_jnf.c b/sysdeps/ieee754/flt-32/e_jnf.c
index cd15ed7d4b..ae29015424 100644
--- a/sysdeps/ieee754/flt-32/e_jnf.c
+++ b/sysdeps/ieee754/flt-32/e_jnf.c
@@ -18,6 +18,7 @@
#include <math.h>
#include <math-narrow-eval.h>
#include <math_private.h>
+#include <fenv_private.h>
#include <math-underflow.h>
static const float
@@ -173,7 +174,7 @@ __ieee754_jnf(int n, float x)
}
if (ret == 0)
{
- ret = math_narrow_eval (__copysignf (FLT_MIN, ret) * FLT_MIN);
+ ret = math_narrow_eval (copysignf (FLT_MIN, ret) * FLT_MIN);
__set_errno (ERANGE);
}
else
@@ -229,7 +230,7 @@ __ieee754_ynf(int n, float x)
}
out:
if (isinf (ret))
- ret = __copysignf (FLT_MAX, ret) * FLT_MAX;
+ ret = copysignf (FLT_MAX, ret) * FLT_MAX;
return ret;
}
strong_alias (__ieee754_ynf, __ynf_finite)
diff --git a/sysdeps/ieee754/flt-32/e_lgammaf_r.c b/sysdeps/ieee754/flt-32/e_lgammaf_r.c
index 8fdf9bb8bc..a7f9b9fbad 100644
--- a/sysdeps/ieee754/flt-32/e_lgammaf_r.c
+++ b/sysdeps/ieee754/flt-32/e_lgammaf_r.c
@@ -97,17 +97,17 @@ sin_pif(float x)
GET_FLOAT_WORD(ix,x);
ix &= 0x7fffffff;
- if(ix<0x3e800000) return __kernel_sinf(pi*x,zero,0);
+ if(ix<0x3e800000) return __sinf (pi*x);
y = -x; /* x is assume negative */
/*
* argument reduction, make sure inexact flag not raised if input
* is an integer
*/
- z = __floorf(y);
+ z = floorf(y);
if(z!=y) { /* inexact anyway */
y *= (float)0.5;
- y = (float)2.0*(y - __floorf(y)); /* y = |x| mod 2.0 */
+ y = (float)2.0*(y - floorf(y)); /* y = |x| mod 2.0 */
n = (int) (y*(float)4.0);
} else {
if(ix>=0x4b800000) {
@@ -121,14 +121,14 @@ sin_pif(float x)
}
}
switch (n) {
- case 0: y = __kernel_sinf(pi*y,zero,0); break;
+ case 0: y = __sinf (pi*y); break;
case 1:
- case 2: y = __kernel_cosf(pi*((float)0.5-y),zero); break;
+ case 2: y = __cosf (pi*((float)0.5-y)); break;
case 3:
- case 4: y = __kernel_sinf(pi*(one-y),zero,0); break;
+ case 4: y = __sinf (pi*(one-y)); break;
case 5:
- case 6: y = -__kernel_cosf(pi*(y-(float)1.5),zero); break;
- default: y = __kernel_sinf(pi*(y-(float)2.0),zero,0); break;
+ case 6: y = -__cosf (pi*(y-(float)1.5)); break;
+ default: y = __sinf (pi*(y-(float)2.0)); break;
}
return -y;
}
diff --git a/sysdeps/ieee754/flt-32/e_log2f.c b/sysdeps/ieee754/flt-32/e_log2f.c
index 62edc59cde..57bdb541f1 100644
--- a/sysdeps/ieee754/flt-32/e_log2f.c
+++ b/sysdeps/ieee754/flt-32/e_log2f.c
@@ -1,5 +1,5 @@
/* Single-precision log2 function.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <stdint.h>
diff --git a/sysdeps/ieee754/flt-32/e_log2f_data.c b/sysdeps/ieee754/flt-32/e_log2f_data.c
index 6390e9ce51..46c26fd202 100644
--- a/sysdeps/ieee754/flt-32/e_log2f_data.c
+++ b/sysdeps/ieee754/flt-32/e_log2f_data.c
@@ -1,5 +1,5 @@
/* Data definition for log2f.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "math_config.h"
diff --git a/sysdeps/ieee754/flt-32/e_logf.c b/sysdeps/ieee754/flt-32/e_logf.c
index 879a673e12..27b96129ac 100644
--- a/sysdeps/ieee754/flt-32/e_logf.c
+++ b/sysdeps/ieee754/flt-32/e_logf.c
@@ -1,5 +1,5 @@
/* Single-precision log function.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <stdint.h>
diff --git a/sysdeps/ieee754/flt-32/e_logf_data.c b/sysdeps/ieee754/flt-32/e_logf_data.c
index 0c71414a8a..7ad887cecb 100644
--- a/sysdeps/ieee754/flt-32/e_logf_data.c
+++ b/sysdeps/ieee754/flt-32/e_logf_data.c
@@ -1,5 +1,5 @@
/* Data definition for logf.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "math_config.h"
diff --git a/sysdeps/ieee754/flt-32/e_powf.c b/sysdeps/ieee754/flt-32/e_powf.c
index ece83f0dd2..9c1902fc5b 100644
--- a/sysdeps/ieee754/flt-32/e_powf.c
+++ b/sysdeps/ieee754/flt-32/e_powf.c
@@ -1,5 +1,5 @@
/* Single-precision pow function.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,9 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
+#include <math-barriers.h>
+#include <math-narrow-eval.h>
#include <stdint.h>
#include <shlib-compat.h>
#include <libm-alias-float.h>
@@ -118,7 +120,8 @@ exp2_inline (double_t xd, uint32_t sign_bias)
return y;
}
-/* Returns 0 if not int, 1 if odd int, 2 if even int. */
+/* Returns 0 if not int, 1 if odd int, 2 if even int. The argument is
+ the bit representation of a non-zero finite floating-point value. */
static inline int
checkint (uint32_t iy)
{
@@ -155,9 +158,9 @@ __powf (float x, float y)
if (__glibc_unlikely (zeroinfnan (iy)))
{
if (2 * iy == 0)
- return issignalingf_inline (x) ? x + y : 1.0f;
+ return issignaling (x) ? x + y : 1.0f;
if (ix == 0x3f800000)
- return issignalingf_inline (y) ? x + y : 1.0f;
+ return issignaling (y) ? x + y : 1.0f;
if (2 * ix > 2u * 0x7f800000 || 2 * iy > 2u * 0x7f800000)
return x + y;
if (2 * ix == 2 * 0x3f800000)
@@ -206,7 +209,17 @@ __powf (float x, float y)
{
/* |y*log(x)| >= 126. */
if (ylogx > 0x1.fffffffd1d571p+6 * POWF_SCALE)
+ /* |x^y| > 0x1.ffffffp127. */
return __math_oflowf (sign_bias);
+ if (WANT_ROUNDING && WANT_ERRNO
+ && ylogx > 0x1.fffffffa3aae2p+6 * POWF_SCALE)
+ /* |x^y| > 0x1.fffffep127, check if we round away from 0. */
+ if ((!sign_bias
+ && math_narrow_eval (1.0f + math_opt_barrier (0x1p-25f)) != 1.0f)
+ || (sign_bias
+ && math_narrow_eval (-1.0f - math_opt_barrier (0x1p-25f))
+ != -1.0f))
+ return __math_oflowf (sign_bias);
if (ylogx <= -150.0 * POWF_SCALE)
return __math_uflowf (sign_bias);
#if WANT_ERRNO_UFLOW
diff --git a/sysdeps/ieee754/flt-32/e_powf_log2_data.c b/sysdeps/ieee754/flt-32/e_powf_log2_data.c
index 27cd6b7a81..872fcc0562 100644
--- a/sysdeps/ieee754/flt-32/e_powf_log2_data.c
+++ b/sysdeps/ieee754/flt-32/e_powf_log2_data.c
@@ -1,5 +1,5 @@
/* Data definition for powf.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "math_config.h"
diff --git a/sysdeps/ieee754/flt-32/e_rem_pio2f.c b/sysdeps/ieee754/flt-32/e_rem_pio2f.c
deleted file mode 100644
index bd871a26c2..0000000000
--- a/sysdeps/ieee754/flt-32/e_rem_pio2f.c
+++ /dev/null
@@ -1,179 +0,0 @@
-/* e_rem_pio2f.c -- float version of e_rem_pio2.c
- * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
- */
-
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-#if defined(LIBM_SCCS) && !defined(lint)
-static char rcsid[] = "$NetBSD: e_rem_pio2f.c,v 1.5 1995/05/10 20:46:03 jtc Exp $";
-#endif
-
-/* __ieee754_rem_pio2f(x,y)
- *
- * return the remainder of x rem pi/2 in y[0]+y[1]
- * use __kernel_rem_pio2f()
- */
-
-#include <math.h>
-#include <math_private.h>
-
-/*
- * Table of constants for 2/pi, 396 Hex digits (476 decimal) of 2/pi
- */
-static const int32_t two_over_pi[] = {
-0xA2, 0xF9, 0x83, 0x6E, 0x4E, 0x44, 0x15, 0x29, 0xFC,
-0x27, 0x57, 0xD1, 0xF5, 0x34, 0xDD, 0xC0, 0xDB, 0x62,
-0x95, 0x99, 0x3C, 0x43, 0x90, 0x41, 0xFE, 0x51, 0x63,
-0xAB, 0xDE, 0xBB, 0xC5, 0x61, 0xB7, 0x24, 0x6E, 0x3A,
-0x42, 0x4D, 0xD2, 0xE0, 0x06, 0x49, 0x2E, 0xEA, 0x09,
-0xD1, 0x92, 0x1C, 0xFE, 0x1D, 0xEB, 0x1C, 0xB1, 0x29,
-0xA7, 0x3E, 0xE8, 0x82, 0x35, 0xF5, 0x2E, 0xBB, 0x44,
-0x84, 0xE9, 0x9C, 0x70, 0x26, 0xB4, 0x5F, 0x7E, 0x41,
-0x39, 0x91, 0xD6, 0x39, 0x83, 0x53, 0x39, 0xF4, 0x9C,
-0x84, 0x5F, 0x8B, 0xBD, 0xF9, 0x28, 0x3B, 0x1F, 0xF8,
-0x97, 0xFF, 0xDE, 0x05, 0x98, 0x0F, 0xEF, 0x2F, 0x11,
-0x8B, 0x5A, 0x0A, 0x6D, 0x1F, 0x6D, 0x36, 0x7E, 0xCF,
-0x27, 0xCB, 0x09, 0xB7, 0x4F, 0x46, 0x3F, 0x66, 0x9E,
-0x5F, 0xEA, 0x2D, 0x75, 0x27, 0xBA, 0xC7, 0xEB, 0xE5,
-0xF1, 0x7B, 0x3D, 0x07, 0x39, 0xF7, 0x8A, 0x52, 0x92,
-0xEA, 0x6B, 0xFB, 0x5F, 0xB1, 0x1F, 0x8D, 0x5D, 0x08,
-0x56, 0x03, 0x30, 0x46, 0xFC, 0x7B, 0x6B, 0xAB, 0xF0,
-0xCF, 0xBC, 0x20, 0x9A, 0xF4, 0x36, 0x1D, 0xA9, 0xE3,
-0x91, 0x61, 0x5E, 0xE6, 0x1B, 0x08, 0x65, 0x99, 0x85,
-0x5F, 0x14, 0xA0, 0x68, 0x40, 0x8D, 0xFF, 0xD8, 0x80,
-0x4D, 0x73, 0x27, 0x31, 0x06, 0x06, 0x15, 0x56, 0xCA,
-0x73, 0xA8, 0xC9, 0x60, 0xE2, 0x7B, 0xC0, 0x8C, 0x6B,
-};
-
-/* This array is like the one in e_rem_pio2.c, but the numbers are
- single precision and the last 8 bits are forced to 0. */
-static const int32_t npio2_hw[] = {
-0x3fc90f00, 0x40490f00, 0x4096cb00, 0x40c90f00, 0x40fb5300, 0x4116cb00,
-0x412fed00, 0x41490f00, 0x41623100, 0x417b5300, 0x418a3a00, 0x4196cb00,
-0x41a35c00, 0x41afed00, 0x41bc7e00, 0x41c90f00, 0x41d5a000, 0x41e23100,
-0x41eec200, 0x41fb5300, 0x4203f200, 0x420a3a00, 0x42108300, 0x4216cb00,
-0x421d1400, 0x42235c00, 0x4229a500, 0x422fed00, 0x42363600, 0x423c7e00,
-0x4242c700, 0x42490f00
-};
-
-/*
- * invpio2: 24 bits of 2/pi
- * pio2_1: first 17 bit of pi/2
- * pio2_1t: pi/2 - pio2_1
- * pio2_2: second 17 bit of pi/2
- * pio2_2t: pi/2 - (pio2_1+pio2_2)
- * pio2_3: third 17 bit of pi/2
- * pio2_3t: pi/2 - (pio2_1+pio2_2+pio2_3)
- */
-
-static const float
-zero = 0.0000000000e+00, /* 0x00000000 */
-half = 5.0000000000e-01, /* 0x3f000000 */
-two8 = 2.5600000000e+02, /* 0x43800000 */
-invpio2 = 6.3661980629e-01, /* 0x3f22f984 */
-pio2_1 = 1.5707855225e+00, /* 0x3fc90f80 */
-pio2_1t = 1.0804334124e-05, /* 0x37354443 */
-pio2_2 = 1.0804273188e-05, /* 0x37354400 */
-pio2_2t = 6.0770999344e-11, /* 0x2e85a308 */
-pio2_3 = 6.0770943833e-11, /* 0x2e85a300 */
-pio2_3t = 6.1232342629e-17; /* 0x248d3132 */
-
-int32_t __ieee754_rem_pio2f(float x, float *y)
-{
- float z,w,t,r,fn;
- float tx[3];
- int32_t e0,i,j,nx,n,ix,hx;
-
- GET_FLOAT_WORD(hx,x);
- ix = hx&0x7fffffff;
- if(ix<=0x3f490fd8) /* |x| ~<= pi/4 , no need for reduction */
- {y[0] = x; y[1] = 0; return 0;}
- if(ix<0x4016cbe4) { /* |x| < 3pi/4, special case with n=+-1 */
- if(hx>0) {
- z = x - pio2_1;
- if((ix&0xffffffc0)!=0x3fc90fc0) { /* 24+24 bit pi OK */
- y[0] = z - pio2_1t;
- y[1] = (z-y[0])-pio2_1t;
- } else { /* near pi/2, use 24+24+24 bit pi */
- z -= pio2_2;
- y[0] = z - pio2_2t;
- y[1] = (z-y[0])-pio2_2t;
- }
- return 1;
- } else { /* negative x */
- z = x + pio2_1;
- if((ix&0xffffffc0)!=0x3fc90fc0) { /* 24+24 bit pi OK */
- y[0] = z + pio2_1t;
- y[1] = (z-y[0])+pio2_1t;
- } else { /* near pi/2, use 24+24+24 bit pi */
- z += pio2_2;
- y[0] = z + pio2_2t;
- y[1] = (z-y[0])+pio2_2t;
- }
- return -1;
- }
- }
- if(ix<=0x43490f80) { /* |x| ~<= 2^7*(pi/2), medium size */
- t = fabsf(x);
- n = (int32_t) (t*invpio2+half);
- fn = (float)n;
- r = t-fn*pio2_1;
- w = fn*pio2_1t; /* 1st round good to 40 bit */
- if(n<32&&(int32_t)(ix&0xffffff00)!=npio2_hw[n-1]) {
- y[0] = r-w; /* quick check no cancellation */
- } else {
- uint32_t high;
- j = ix>>23;
- y[0] = r-w;
- GET_FLOAT_WORD(high,y[0]);
- i = j-((high>>23)&0xff);
- if(i>8) { /* 2nd iteration needed, good to 57 */
- t = r;
- w = fn*pio2_2;
- r = t-w;
- w = fn*pio2_2t-((t-r)-w);
- y[0] = r-w;
- GET_FLOAT_WORD(high,y[0]);
- i = j-((high>>23)&0xff);
- if(i>25) { /* 3rd iteration need, 74 bits acc */
- t = r; /* will cover all possible cases */
- w = fn*pio2_3;
- r = t-w;
- w = fn*pio2_3t-((t-r)-w);
- y[0] = r-w;
- }
- }
- }
- y[1] = (r-y[0])-w;
- if(hx<0) {y[0] = -y[0]; y[1] = -y[1]; return -n;}
- else return n;
- }
- /*
- * all other (large) arguments
- */
- if(ix>=0x7f800000) { /* x is inf or NaN */
- y[0]=y[1]=x-x; return 0;
- }
- /* set z = scalbn(|x|,ilogb(x)-7) */
- e0 = (ix>>23)-134; /* e0 = ilogb(z)-7; */
- SET_FLOAT_WORD(z, ix - ((int32_t)(e0<<23)));
- for(i=0;i<2;i++) {
- tx[i] = (float)((int32_t)(z));
- z = (z-tx[i])*two8;
- }
- tx[2] = z;
- nx = 3;
- while(tx[nx-1]==zero) nx--; /* skip zero term */
- n = __kernel_rem_pio2f(tx,y,e0,nx,2,two_over_pi);
- if(hx<0) {y[0] = -y[0]; y[1] = -y[1]; return -n;}
- return n;
-}
diff --git a/sysdeps/ieee754/flt-32/k_cosf.c b/sysdeps/ieee754/flt-32/k_cosf.c
deleted file mode 100644
index 63ca822f8c..0000000000
--- a/sysdeps/ieee754/flt-32/k_cosf.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/* k_cosf.c -- float version of k_cos.c
- * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
- */
-
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-#if defined(LIBM_SCCS) && !defined(lint)
-static char rcsid[] = "$NetBSD: k_cosf.c,v 1.4 1995/05/10 20:46:23 jtc Exp $";
-#endif
-
-#include <math.h>
-#include <math_private.h>
-
-static const float
-one = 1.0000000000e+00, /* 0x3f800000 */
-C1 = 4.1666667908e-02, /* 0x3d2aaaab */
-C2 = -1.3888889225e-03, /* 0xbab60b61 */
-C3 = 2.4801587642e-05, /* 0x37d00d01 */
-C4 = -2.7557314297e-07, /* 0xb493f27c */
-C5 = 2.0875723372e-09, /* 0x310f74f6 */
-C6 = -1.1359647598e-11; /* 0xad47d74e */
-
-float __kernel_cosf(float x, float y)
-{
- float a,hz,z,r,qx;
- int32_t ix;
- GET_FLOAT_WORD(ix,x);
- ix &= 0x7fffffff; /* ix = |x|'s high word*/
- if(ix<0x32000000) { /* if x < 2**27 */
- if(((int)x)==0) return one; /* generate inexact */
- }
- z = x*x;
- r = z*(C1+z*(C2+z*(C3+z*(C4+z*(C5+z*C6)))));
- if(ix < 0x3e99999a) /* if |x| < 0.3 */
- return one - ((float)0.5*z - (z*r - x*y));
- else {
- if(ix > 0x3f480000) { /* x > 0.78125 */
- qx = (float)0.28125;
- } else {
- SET_FLOAT_WORD(qx,ix-0x01000000); /* x/4 */
- }
- hz = (float)0.5*z-qx;
- a = one-qx;
- return a - (hz - (z*r-x*y));
- }
-}
diff --git a/sysdeps/ieee754/flt-32/k_rem_pio2f.c b/sysdeps/ieee754/flt-32/k_rem_pio2f.c
deleted file mode 100644
index ea4915b765..0000000000
--- a/sysdeps/ieee754/flt-32/k_rem_pio2f.c
+++ /dev/null
@@ -1,219 +0,0 @@
-/* k_rem_pio2f.c -- float version of k_rem_pio2.c
- * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
- */
-
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-#if defined(LIBM_SCCS) && !defined(lint)
-static char rcsid[] = "$NetBSD: k_rem_pio2f.c,v 1.4 1995/05/10 20:46:28 jtc Exp $";
-#endif
-
-#include <math.h>
-#include <math-narrow-eval.h>
-#include <math_private.h>
-#include <libc-diag.h>
-
-/* In the float version, the input parameter x contains 8 bit
- integers, not 24 bit integers. 113 bit precision is not supported. */
-
-static const int init_jk[] = {4,7,9}; /* initial value for jk */
-
-static const float PIo2[] = {
- 1.5703125000e+00, /* 0x3fc90000 */
- 4.5776367188e-04, /* 0x39f00000 */
- 2.5987625122e-05, /* 0x37da0000 */
- 7.5437128544e-08, /* 0x33a20000 */
- 6.0026650317e-11, /* 0x2e840000 */
- 7.3896444519e-13, /* 0x2b500000 */
- 5.3845816694e-15, /* 0x27c20000 */
- 5.6378512969e-18, /* 0x22d00000 */
- 8.3009228831e-20, /* 0x1fc40000 */
- 3.2756352257e-22, /* 0x1bc60000 */
- 6.3331015649e-25, /* 0x17440000 */
-};
-
-static const float
-zero = 0.0,
-one = 1.0,
-two8 = 2.5600000000e+02, /* 0x43800000 */
-twon8 = 3.9062500000e-03; /* 0x3b800000 */
-
-int __kernel_rem_pio2f(float *x, float *y, int e0, int nx, int prec, const int32_t *ipio2)
-{
- int32_t jz,jx,jv,jp,jk,carry,n,iq[20],i,j,k,m,q0,ih;
- float z,fw,f[20],fq[20],q[20];
-
- /* initialize jk*/
- jk = init_jk[prec];
- jp = jk;
-
- /* determine jx,jv,q0, note that 3>q0 */
- jx = nx-1;
- jv = (e0-3)/8; if(jv<0) jv=0;
- q0 = e0-8*(jv+1);
-
- /* set up f[0] to f[jx+jk] where f[jx+jk] = ipio2[jv+jk] */
- j = jv-jx; m = jx+jk;
- for(i=0;i<=m;i++,j++) f[i] = (j<0)? zero : (float) ipio2[j];
-
- /* compute q[0],q[1],...q[jk] */
- for (i=0;i<=jk;i++) {
- for(j=0,fw=0.0;j<=jx;j++)
- fw += x[j]*f[jx+i-j];
- q[i] = fw;
- }
-
- jz = jk;
-recompute:
- /* distill q[] into iq[] reversingly */
- for(i=0,j=jz,z=q[jz];j>0;i++,j--) {
- fw = (float)((int32_t)(twon8* z));
- iq[i] = (int32_t)(z-two8*fw);
- z = q[j-1]+fw;
- }
-
- /* compute n */
- z = __scalbnf(z,q0); /* actual value of z */
- z -= (float)8.0*__floorf(z*(float)0.125); /* trim off integer >= 8 */
- n = (int32_t) z;
- z -= (float)n;
- ih = 0;
- if(q0>0) { /* need iq[jz-1] to determine n */
- i = (iq[jz-1]>>(8-q0)); n += i;
- iq[jz-1] -= i<<(8-q0);
- ih = iq[jz-1]>>(7-q0);
- }
- else if(q0==0) ih = iq[jz-1]>>7;
- else if(z>=(float)0.5) ih=2;
-
- if(ih>0) { /* q > 0.5 */
- n += 1; carry = 0;
- for(i=0;i<jz ;i++) { /* compute 1-q */
- j = iq[i];
- if(carry==0) {
- if(j!=0) {
- carry = 1; iq[i] = 0x100- j;
- }
- } else iq[i] = 0xff - j;
- }
- if(q0>0) { /* rare case: chance is 1 in 12 */
- switch(q0) {
- case 1:
- iq[jz-1] &= 0x7f; break;
- case 2:
- iq[jz-1] &= 0x3f; break;
- }
- }
- if(ih==2) {
- z = one - z;
- if(carry!=0) z -= __scalbnf(one,q0);
- }
- }
-
- /* check if recomputation is needed */
- if(z==zero) {
- j = 0;
- for (i=jz-1;i>=jk;i--) j |= iq[i];
- if(j==0) { /* need recomputation */
- /* On s390x gcc 6.1 -O3 produces the warning "array subscript is
- below array bounds [-Werror=array-bounds]". Only
- __ieee754_rem_pio2f calls __kernel_rem_pio2f for normal
- numbers and |x| ~> 2^7*(pi/2). Thus x can't be zero and
- ipio2 is not zero, too. Thus not all iq[] values can't be
- zero. */
- DIAG_PUSH_NEEDS_COMMENT;
- DIAG_IGNORE_NEEDS_COMMENT (6.1, "-Warray-bounds");
- for(k=1;iq[jk-k]==0;k++); /* k = no. of terms needed */
- DIAG_POP_NEEDS_COMMENT;
-
- for(i=jz+1;i<=jz+k;i++) { /* add q[jz+1] to q[jz+k] */
- f[jx+i] = (float) ipio2[jv+i];
- for(j=0,fw=0.0;j<=jx;j++) fw += x[j]*f[jx+i-j];
- q[i] = fw;
- }
- jz += k;
- goto recompute;
- }
- }
-
- /* chop off zero terms */
- if(z==(float)0.0) {
- jz -= 1; q0 -= 8;
- while(iq[jz]==0) { jz--; q0-=8;}
- } else { /* break z into 8-bit if necessary */
- z = __scalbnf(z,-q0);
- if(z>=two8) {
- fw = (float)((int32_t)(twon8*z));
- iq[jz] = (int32_t)(z-two8*fw);
- jz += 1; q0 += 8;
- iq[jz] = (int32_t) fw;
- } else iq[jz] = (int32_t) z ;
- }
-
- /* convert integer "bit" chunk to floating-point value */
- fw = __scalbnf(one,q0);
- for(i=jz;i>=0;i--) {
- q[i] = fw*(float)iq[i]; fw*=twon8;
- }
-
- /* compute PIo2[0,...,jp]*q[jz,...,0] */
- for(i=jz;i>=0;i--) {
- for(fw=0.0,k=0;k<=jp&&k<=jz-i;k++) fw += PIo2[k]*q[i+k];
- fq[jz-i] = fw;
- }
-
- /* compress fq[] into y[] */
- switch(prec) {
- case 0:
- fw = 0.0;
- for (i=jz;i>=0;i--) fw += fq[i];
- y[0] = (ih==0)? fw: -fw;
- break;
- case 1:
- case 2:;
- float fv = 0.0;
- for (i=jz;i>=0;i--) fv = math_narrow_eval (fv + fq[i]);
- y[0] = (ih==0)? fv: -fv;
- /* GCC mainline (to be GCC 9), as of 2018-05-22 on
- i686, warns that fq[0] may be used uninitialized.
- This is not possible because jz is always
- nonnegative when the above loop initializing fq is
- executed, because the result is never zero to full
- precision (this function is not called for zero
- arguments). */
- DIAG_PUSH_NEEDS_COMMENT;
- DIAG_IGNORE_NEEDS_COMMENT (9, "-Wmaybe-uninitialized");
- fv = math_narrow_eval (fq[0]-fv);
- DIAG_POP_NEEDS_COMMENT;
- for (i=1;i<=jz;i++) fv = math_narrow_eval (fv + fq[i]);
- y[1] = (ih==0)? fv: -fv;
- break;
- case 3: /* painful */
- for (i=jz;i>0;i--) {
- float fv = math_narrow_eval (fq[i-1]+fq[i]);
- fq[i] += fq[i-1]-fv;
- fq[i-1] = fv;
- }
- for (i=jz;i>1;i--) {
- float fv = math_narrow_eval (fq[i-1]+fq[i]);
- fq[i] += fq[i-1]-fv;
- fq[i-1] = fv;
- }
- for (fw=0.0,i=jz;i>=2;i--) fw += fq[i];
- if(ih==0) {
- y[0] = fq[0]; y[1] = fq[1]; y[2] = fw;
- } else {
- y[0] = -fq[0]; y[1] = -fq[1]; y[2] = -fw;
- }
- }
- return n&7;
-}
diff --git a/sysdeps/ieee754/flt-32/k_sinf.c b/sysdeps/ieee754/flt-32/k_sinf.c
deleted file mode 100644
index dcf3c35358..0000000000
--- a/sysdeps/ieee754/flt-32/k_sinf.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/* k_sinf.c -- float version of k_sin.c
- * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
- */
-
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-#if defined(LIBM_SCCS) && !defined(lint)
-static char rcsid[] = "$NetBSD: k_sinf.c,v 1.4 1995/05/10 20:46:33 jtc Exp $";
-#endif
-
-#include <float.h>
-#include <math.h>
-#include <math_private.h>
-#include <math-underflow.h>
-
-static const float
-half = 5.0000000000e-01,/* 0x3f000000 */
-S1 = -1.6666667163e-01, /* 0xbe2aaaab */
-S2 = 8.3333337680e-03, /* 0x3c088889 */
-S3 = -1.9841270114e-04, /* 0xb9500d01 */
-S4 = 2.7557314297e-06, /* 0x3638ef1b */
-S5 = -2.5050759689e-08, /* 0xb2d72f34 */
-S6 = 1.5896910177e-10; /* 0x2f2ec9d3 */
-
-float __kernel_sinf(float x, float y, int iy)
-{
- float z,r,v;
- int32_t ix;
- GET_FLOAT_WORD(ix,x);
- ix &= 0x7fffffff; /* high word of x */
- if(ix<0x32000000) /* |x| < 2**-27 */
- {
- math_check_force_underflow (x);
- if ((int) x == 0)
- return x; /* generate inexact */
- }
- z = x*x;
- v = z*x;
- r = S2+z*(S3+z*(S4+z*(S5+z*S6)));
- if(iy==0) return x+v*(S1+z*r);
- else return x-((z*(half*y-v*r)-y)-v*S1);
-}
diff --git a/sysdeps/ieee754/flt-32/lgamma_negf.c b/sysdeps/ieee754/flt-32/lgamma_negf.c
index 01edb0b8de..c2c00eb5b2 100644
--- a/sysdeps/ieee754/flt-32/lgamma_negf.c
+++ b/sysdeps/ieee754/flt-32/lgamma_negf.c
@@ -1,5 +1,5 @@
/* lgammaf expanding around zeros.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,12 +14,13 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <float.h>
#include <math.h>
#include <math-narrow-eval.h>
#include <math_private.h>
+#include <fenv_private.h>
static const float lgamma_zeros[][2] =
{
@@ -196,7 +197,7 @@ __lgamma_negf (float x, int *signgamp)
{
/* Determine the half-integer region X lies in, handle exact
integers and determine the sign of the result. */
- int i = __floorf (-2 * x);
+ int i = floorf (-2 * x);
if ((i & 1) == 0 && i == -2 * x)
return 1.0f / 0.0f;
float xn = ((i & 1) == 0 ? -i / 2 : (-i - 1) / 2);
@@ -213,7 +214,7 @@ __lgamma_negf (float x, int *signgamp)
approximations to an adjusted version of the gamma function. */
if (i < 2)
{
- int j = __floorf (-8 * x) - 16;
+ int j = floorf (-8 * x) - 16;
float xm = (-33 - 2 * j) * 0.0625f;
float x_adj = x - xm;
size_t deg = poly_deg[j];
diff --git a/sysdeps/ieee754/flt-32/math_config.h b/sysdeps/ieee754/flt-32/math_config.h
index 9c4ef30173..57cf44130d 100644
--- a/sysdeps/ieee754/flt-32/math_config.h
+++ b/sysdeps/ieee754/flt-32/math_config.h
@@ -1,5 +1,5 @@
/* Configuration for math routines.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MATH_CONFIG_H
#define _MATH_CONFIG_H
@@ -38,13 +38,23 @@
#endif
#ifndef TOINT_INTRINSICS
+/* When set, the roundtoint and converttoint functions are provided with
+ the semantics documented below. */
# define TOINT_INTRINSICS 0
#endif
-#ifndef TOINT_RINT
-# define TOINT_RINT 0
-#endif
-#ifndef TOINT_SHIFT
-# define TOINT_SHIFT 1
+
+#if TOINT_INTRINSICS
+/* Round x to nearest int in all rounding modes, ties have to be rounded
+ consistently with converttoint so the results match. If the result
+ would be outside of [-2^31, 2^31-1] then the semantics is unspecified. */
+static inline double_t
+roundtoint (double_t x);
+
+/* Convert x to nearest int in all rounding modes, ties have to be rounded
+ consistently with roundtoint. If the result is not representible in an
+ int32_t then the semantics is unspecified. */
+static inline int32_t
+converttoint (double_t x);
#endif
static inline uint32_t
@@ -91,15 +101,6 @@ asdouble (uint64_t i)
return u.f;
}
-static inline int
-issignalingf_inline (float x)
-{
- uint32_t ix = asuint (x);
- if (HIGH_ORDER_BIT_IS_SET_FOR_SNAN)
- return (ix & 0x7fc00000) == 0x7fc00000;
- return 2 * (ix ^ 0x00400000) > 2u * 0x7fc00000;
-}
-
#define NOINLINE __attribute__ ((noinline))
attribute_hidden float __math_oflowf (uint32_t);
diff --git a/sysdeps/ieee754/flt-32/math_errf.c b/sysdeps/ieee754/flt-32/math_errf.c
index 5bc7ac6ef5..db1d79a598 100644
--- a/sysdeps/ieee754/flt-32/math_errf.c
+++ b/sysdeps/ieee754/flt-32/math_errf.c
@@ -1,5 +1,5 @@
/* Single-precision math error handling.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "math_config.h"
diff --git a/sysdeps/ieee754/flt-32/mpn2flt.c b/sysdeps/ieee754/flt-32/mpn2flt.c
index accca55fde..a8740b8cb5 100644
--- a/sysdeps/ieee754/flt-32/mpn2flt.c
+++ b/sysdeps/ieee754/flt-32/mpn2flt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "gmp.h"
#include "gmp-impl.h"
diff --git a/sysdeps/ieee754/flt-32/s_asinhf.c b/sysdeps/ieee754/flt-32/s_asinhf.c
index 0812b54dca..13af5db1eb 100644
--- a/sysdeps/ieee754/flt-32/s_asinhf.c
+++ b/sysdeps/ieee754/flt-32/s_asinhf.c
@@ -47,6 +47,6 @@ __asinhf(float x)
w =__log1pf(xa+t/(one+sqrtf(one+t)));
}
}
- return __copysignf(w, x);
+ return copysignf(w, x);
}
libm_alias_float (__asinh, asinh)
diff --git a/sysdeps/ieee754/flt-32/s_cbrtf.c b/sysdeps/ieee754/flt-32/s_cbrtf.c
index afa1454399..9aa99f2a73 100644
--- a/sysdeps/ieee754/flt-32/s_cbrtf.c
+++ b/sysdeps/ieee754/flt-32/s_cbrtf.c
@@ -1,5 +1,5 @@
/* Compute cubic root of float value.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Dirk Alboth <dirka@uni-paderborn.de> and
Ulrich Drepper <drepper@cygnus.com>, 1997.
@@ -16,10 +16,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
-#include <math_private.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/ieee754/flt-32/s_ceilf.c b/sysdeps/ieee754/flt-32/s_ceilf.c
index f289ec2341..5c4abfe145 100644
--- a/sysdeps/ieee754/flt-32/s_ceilf.c
+++ b/sysdeps/ieee754/flt-32/s_ceilf.c
@@ -13,36 +13,54 @@
* ====================================================
*/
+#define NO_MATH_REDIRECT
#include <math.h>
#include <math_private.h>
#include <libm-alias-float.h>
-
+#include <math-use-builtins.h>
float
-__ceilf(float x)
+__ceilf (float x)
{
- int32_t i0,j0;
- uint32_t i;
+#if USE_CEILF_BUILTIN
+ return __builtin_ceilf (x);
+#else
+ /* Use generic implementation. */
+ int32_t i0, j0;
+ uint32_t i;
- GET_FLOAT_WORD(i0,x);
- j0 = ((i0>>23)&0xff)-0x7f;
- if(j0<23) {
- if(j0<0) {
- /* return 0*sign(x) if |x|<1 */
- if(i0<0) {i0=0x80000000;}
- else if(i0!=0) { i0=0x3f800000;}
- } else {
- i = (0x007fffff)>>j0;
- if((i0&i)==0) return x; /* x is integral */
- if(i0>0) i0 += (0x00800000)>>j0;
- i0 &= (~i);
- }
- } else {
- if(__builtin_expect(j0==0x80, 0)) return x+x; /* inf or NaN */
- else return x; /* x is integral */
+ GET_FLOAT_WORD (i0, x);
+ j0 = ((i0 >> 23) & 0xff) - 0x7f;
+ if (j0 < 23)
+ {
+ if (j0 < 0)
+ {
+ /* return 0 * sign (x) if |x| < 1 */
+ if (i0 < 0)
+ i0 = 0x80000000;
+ else if (i0 != 0)
+ i0 = 0x3f800000;
+ }
+ else
+ {
+ i = (0x007fffff) >> j0;
+ if ((i0 & i) == 0)
+ return x; /* x is integral */
+ if (i0 > 0)
+ i0 += (0x00800000) >> j0;
+ i0 &= (~i);
}
- SET_FLOAT_WORD(x,i0);
- return x;
+ }
+ else
+ {
+ if (__glibc_unlikely (j0 == 0x80))
+ return x + x; /* inf or NaN */
+ else
+ return x; /* x is integral */
+ }
+ SET_FLOAT_WORD (x, i0);
+ return x;
+#endif /* ! USE_CEILF_BUILTIN */
}
#ifndef __ceilf
libm_alias_float (__ceil, ceil)
diff --git a/sysdeps/ieee754/flt-32/s_copysignf.c b/sysdeps/ieee754/flt-32/s_copysignf.c
index 3c4ac7ce68..1c097d313f 100644
--- a/sysdeps/ieee754/flt-32/s_copysignf.c
+++ b/sysdeps/ieee754/flt-32/s_copysignf.c
@@ -13,7 +13,7 @@
* ====================================================
*/
-#if defined(LIBM_SCCS) && !defined(lint)
+#if defined (LIBM_SCCS) && ! defined (lint)
static char rcsid[] = "$NetBSD: s_copysignf.c,v 1.4 1995/05/10 20:46:59 jtc Exp $";
#endif
@@ -23,16 +23,13 @@ static char rcsid[] = "$NetBSD: s_copysignf.c,v 1.4 1995/05/10 20:46:59 jtc Exp
* with the sign bit of y.
*/
+#define NO_MATH_REDIRECT
#include <math.h>
-#include <math_private.h>
#include <libm-alias-float.h>
-float __copysignf(float x, float y)
+float
+__copysignf (float x, float y)
{
- uint32_t ix,iy;
- GET_FLOAT_WORD(ix,x);
- GET_FLOAT_WORD(iy,y);
- SET_FLOAT_WORD(x,(ix&0x7fffffff)|(iy&0x80000000));
- return x;
+ return __builtin_copysignf (x, y);
}
libm_alias_float (__copysign, copysign)
diff --git a/sysdeps/ieee754/flt-32/s_cosf.c b/sysdeps/ieee754/flt-32/s_cosf.c
index 061264d259..1c24a6de8c 100644
--- a/sysdeps/ieee754/flt-32/s_cosf.c
+++ b/sysdeps/ieee754/flt-32/s_cosf.c
@@ -1,5 +1,5 @@
/* Compute cosine of argument.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,12 +14,13 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#include <errno.h>
+#include <stdint.h>
#include <math.h>
-#include <math_private.h>
+#include <math-barriers.h>
#include <libm-alias-float.h>
+#include "math_config.h"
#include "s_sincosf.h"
#ifndef COSF
@@ -28,121 +29,57 @@
# define COSF_FUNC COSF
#endif
+/* Fast cosf implementation. Worst-case ULP is 0.5607, maximum relative
+ error is 0.5303 * 2^-23. A single-step range reduction is used for
+ small values. Large inputs have their range reduced using fast integer
+ arithmetic.
+*/
float
-COSF_FUNC (float x)
+COSF_FUNC (float y)
{
- double theta = x;
- double abstheta = fabs (theta);
- if (isless (abstheta, M_PI_4))
+ double x = y;
+ double s;
+ int n;
+ const sincos_t *p = &__sincosf_table[0];
+
+ if (abstop12 (y) < abstop12 (pio4))
+ {
+ double x2 = x * x;
+
+ if (__glibc_unlikely (abstop12 (y) < abstop12 (0x1p-12f)))
+ return 1.0f;
+
+ return sinf_poly (x, x2, p, 1);
+ }
+ else if (__glibc_likely (abstop12 (y) < abstop12 (120.0f)))
{
- double cx;
- if (abstheta >= 0x1p-5)
- {
- const double theta2 = theta * theta;
- /* Chebyshev polynomial of the form for cos:
- * 1 + x^2 (C0 + x^2 (C1 + x^2 (C2 + x^2 (C3 + x^2 * C4)))). */
- cx = C3 + theta2 * C4;
- cx = C2 + theta2 * cx;
- cx = C1 + theta2 * cx;
- cx = C0 + theta2 * cx;
- cx = 1. + theta2 * cx;
- return cx;
- }
- else if (abstheta >= 0x1p-27)
- {
- /* A simpler Chebyshev approximation is close enough for this range:
- * 1 + x^2 (CC0 + x^3 * CC1). */
- const double theta2 = theta * theta;
- cx = CC0 + theta * theta2 * CC1;
- cx = 1.0 + theta2 * cx;
- return cx;
- }
- else
- {
- /* For small enough |theta|, this is close enough. */
- return 1.0 - abstheta;
- }
+ x = reduce_fast (x, p, &n);
+
+ /* Setup the signs for sin and cos. */
+ s = p->sign[n & 3];
+
+ if (n & 2)
+ p = &__sincosf_table[1];
+
+ return sinf_poly (x * s, x * x, p, n ^ 1);
}
- else /* |theta| >= Pi/4. */
+ else if (abstop12 (y) < abstop12 (INFINITY))
{
- if (isless (abstheta, 9 * M_PI_4))
- {
- /* There are cases where FE_UPWARD rounding mode can
- produce a result of abstheta * inv_PI_4 == 9,
- where abstheta < 9pi/4, so the domain for
- pio2_table must go to 5 (9 / 2 + 1). */
- unsigned int n = (abstheta * inv_PI_4) + 1;
- theta = abstheta - pio2_table[n / 2];
- return reduced_cos (theta, n);
- }
- else if (isless (abstheta, INFINITY))
- {
- if (abstheta < 0x1p+23)
- {
- unsigned int n = ((unsigned int) (abstheta * inv_PI_4)) + 1;
- double x = n / 2;
- theta = (abstheta - x * PI_2_hi) - x * PI_2_lo;
- /* Argument reduction needed. */
- return reduced_cos (theta, n);
- }
- else /* |theta| >= 2^23. */
- {
- x = fabsf (x);
- int exponent;
- GET_FLOAT_WORD (exponent, x);
- exponent = (exponent >> FLOAT_EXPONENT_SHIFT)
- - FLOAT_EXPONENT_BIAS;
- exponent += 3;
- exponent /= 28;
- double a = invpio4_table[exponent] * x;
- double b = invpio4_table[exponent + 1] * x;
- double c = invpio4_table[exponent + 2] * x;
- double d = invpio4_table[exponent + 3] * x;
- uint64_t l = a;
- l &= ~0x7;
- a -= l;
- double e = a + b;
- l = e;
- e = a - l;
- if (l & 1)
- {
- e -= 1.0;
- e += b;
- e += c;
- e += d;
- e *= M_PI_4;
- return reduced_cos (e, l + 1);
- }
- else
- {
- e += b;
- e += c;
- e += d;
- if (e <= 1.0)
- {
- e *= M_PI_4;
- return reduced_cos (e, l + 1);
- }
- else
- {
- l++;
- e -= 2.0;
- e *= M_PI_4;
- return reduced_cos (e, l + 1);
- }
- }
- }
- }
- else
- {
- int32_t ix;
- GET_FLOAT_WORD (ix, abstheta);
- /* cos(Inf or NaN) is NaN. */
- if (ix == 0x7f800000) /* Inf. */
- __set_errno (EDOM);
- return x - x;
- }
+ uint32_t xi = asuint (y);
+ int sign = xi >> 31;
+
+ x = reduce_large (xi, &n);
+
+ /* Setup signs for sin and cos - include original sign. */
+ s = p->sign[(n + sign) & 3];
+
+ if ((n + sign) & 2)
+ p = &__sincosf_table[1];
+
+ return sinf_poly (x * s, x * x, p, n ^ 1);
}
+ else
+ return __math_invalidf (y);
}
#ifndef COSF
diff --git a/sysdeps/ieee754/flt-32/s_floorf.c b/sysdeps/ieee754/flt-32/s_floorf.c
index 12aed343a0..da6c6dfa8a 100644
--- a/sysdeps/ieee754/flt-32/s_floorf.c
+++ b/sysdeps/ieee754/flt-32/s_floorf.c
@@ -20,35 +20,53 @@
* Bit twiddling.
*/
+#define NO_MATH_REDIRECT
#include <math.h>
#include <math_private.h>
#include <libm-alias-float.h>
+#include <math-use-builtins.h>
float
-__floorf(float x)
+__floorf (float x)
{
- int32_t i0,j0;
- uint32_t i;
- GET_FLOAT_WORD(i0,x);
- j0 = ((i0>>23)&0xff)-0x7f;
- if(j0<23) {
- if(j0<0) {
- /* return 0*sign(x) if |x|<1 */
- if(i0>=0) {i0=0;}
- else if((i0&0x7fffffff)!=0)
- { i0=0xbf800000;}
- } else {
- i = (0x007fffff)>>j0;
- if((i0&i)==0) return x; /* x is integral */
- if(i0<0) i0 += (0x00800000)>>j0;
- i0 &= (~i);
- }
- } else {
- if(__builtin_expect(j0==0x80, 0)) return x+x; /* inf or NaN */
- else return x; /* x is integral */
+#if USE_FLOORF_BUILTIN
+ return __builtin_floorf (x);
+#else
+ /* Use generic implementation. */
+ int32_t i0, j0;
+ uint32_t i;
+ GET_FLOAT_WORD (i0, x);
+ j0 = ((i0 >> 23) & 0xff) - 0x7f;
+ if (j0 < 23)
+ {
+ if (j0 < 0)
+ {
+ /* return 0 * sign (x) if |x| < 1 */
+ if (i0 >= 0)
+ i0 = 0;
+ else if ((i0 & 0x7fffffff) != 0)
+ i0 = 0xbf800000;
}
- SET_FLOAT_WORD(x,i0);
- return x;
+ else
+ {
+ i = (0x007fffff) >> j0;
+ if ((i0 & i) == 0)
+ return x; /* x is integral */
+ if (i0 < 0)
+ i0 += (0x00800000) >> j0;
+ i0 &= (~i);
+ }
+ }
+ else
+ {
+ if (__glibc_unlikely (j0 == 0x80))
+ return x + x; /* inf or NaN */
+ else
+ return x; /* x is integral */
+ }
+ SET_FLOAT_WORD (x, i0);
+ return x;
+#endif /* ! USE_FLOORF_BUILTIN */
}
#ifndef __floorf
libm_alias_float (__floor, floor)
diff --git a/sysdeps/ieee754/flt-32/s_fpclassifyf.c b/sysdeps/ieee754/flt-32/s_fpclassifyf.c
index 01df9f26f5..7ca9249694 100644
--- a/sysdeps/ieee754/flt-32/s_fpclassifyf.c
+++ b/sysdeps/ieee754/flt-32/s_fpclassifyf.c
@@ -1,5 +1,5 @@
/* Return classification value corresponding to argument.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/ieee754/flt-32/s_fromfpf_main.c b/sysdeps/ieee754/flt-32/s_fromfpf_main.c
index b220b7212c..4b1346d301 100644
--- a/sysdeps/ieee754/flt-32/s_fromfpf_main.c
+++ b/sysdeps/ieee754/flt-32/s_fromfpf_main.c
@@ -1,5 +1,5 @@
/* Round to integer type. flt-32 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fenv.h>
diff --git a/sysdeps/ieee754/flt-32/s_getpayloadf.c b/sysdeps/ieee754/flt-32/s_getpayloadf.c
index 98a16f9347..cb43862f76 100644
--- a/sysdeps/ieee754/flt-32/s_getpayloadf.c
+++ b/sysdeps/ieee754/flt-32/s_getpayloadf.c
@@ -1,5 +1,5 @@
/* Get NaN payload. flt-32 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fix-int-fp-convert-zero.h>
#include <math.h>
diff --git a/sysdeps/ieee754/flt-32/s_issignalingf.c b/sysdeps/ieee754/flt-32/s_issignalingf.c
index a18ba3e586..50da64111f 100644
--- a/sysdeps/ieee754/flt-32/s_issignalingf.c
+++ b/sysdeps/ieee754/flt-32/s_issignalingf.c
@@ -1,5 +1,5 @@
/* Test for signaling NaN.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/ieee754/flt-32/s_llrintf.c b/sysdeps/ieee754/flt-32/s_llrintf.c
index 7c64bb2db4..d1fd15c216 100644
--- a/sysdeps/ieee754/flt-32/s_llrintf.c
+++ b/sysdeps/ieee754/flt-32/s_llrintf.c
@@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <limits.h>
diff --git a/sysdeps/ieee754/flt-32/s_llroundf.c b/sysdeps/ieee754/flt-32/s_llroundf.c
index 5457f9fa88..bb6507bc83 100644
--- a/sysdeps/ieee754/flt-32/s_llroundf.c
+++ b/sysdeps/ieee754/flt-32/s_llroundf.c
@@ -1,5 +1,5 @@
/* Round float value to long long int.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <limits.h>
diff --git a/sysdeps/ieee754/flt-32/s_lrintf.c b/sysdeps/ieee754/flt-32/s_lrintf.c
index 5171377a4e..723d260226 100644
--- a/sysdeps/ieee754/flt-32/s_lrintf.c
+++ b/sysdeps/ieee754/flt-32/s_lrintf.c
@@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <limits.h>
diff --git a/sysdeps/ieee754/flt-32/s_lroundf.c b/sysdeps/ieee754/flt-32/s_lroundf.c
index 20e7216640..20fa75afee 100644
--- a/sysdeps/ieee754/flt-32/s_lroundf.c
+++ b/sysdeps/ieee754/flt-32/s_lroundf.c
@@ -1,5 +1,5 @@
/* Round float value to long int.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <limits.h>
diff --git a/sysdeps/ieee754/flt-32/s_nearbyintf.c b/sysdeps/ieee754/flt-32/s_nearbyintf.c
index 4dfe491f27..2a79907168 100644
--- a/sysdeps/ieee754/flt-32/s_nearbyintf.c
+++ b/sysdeps/ieee754/flt-32/s_nearbyintf.c
@@ -19,43 +19,55 @@
#include <math.h>
#include <math-barriers.h>
#include <math_private.h>
+#include <fenv_private.h>
#include <libm-alias-float.h>
-
-static const float
-TWO23[2]={
- 8.3886080000e+06, /* 0x4b000000 */
- -8.3886080000e+06, /* 0xcb000000 */
-};
+#include <math-use-builtins.h>
float
-__nearbyintf(float x)
+__nearbyintf (float x)
{
- fenv_t env;
- int32_t i0,j0,sx;
- float w,t;
- GET_FLOAT_WORD(i0,x);
- sx = (i0>>31)&1;
- j0 = ((i0>>23)&0xff)-0x7f;
- if(j0<23) {
- if(j0<0) {
- libc_feholdexceptf (&env);
- w = TWO23[sx] + math_opt_barrier (x);
- t = w-TWO23[sx];
- math_force_eval (t);
- libc_fesetenvf (&env);
- GET_FLOAT_WORD(i0,t);
- SET_FLOAT_WORD(t,(i0&0x7fffffff)|(sx<<31));
- return t;
- }
- } else {
- if(__builtin_expect(j0==0x80, 0)) return x+x; /* inf or NaN */
- else return x; /* x is integral */
+#if USE_NEARBYINTF_BUILTIN
+ return __builtin_nearbyintf (x);
+#else
+ /* Use generic implementation. */
+ static const float
+ TWO23[2] = {
+ 8.3886080000e+06, /* 0x4b000000 */
+ -8.3886080000e+06, /* 0xcb000000 */
+ };
+ fenv_t env;
+ int32_t i0, j0, sx;
+ float w, t;
+ GET_FLOAT_WORD (i0, x);
+ sx = (i0 >> 31) & 1;
+ j0 = ((i0 >> 23) & 0xff) - 0x7f;
+ if (j0 < 23)
+ {
+ if (j0 < 0)
+ {
+ libc_feholdexceptf (&env);
+ w = TWO23[sx] + math_opt_barrier (x);
+ t = w - TWO23[sx];
+ math_force_eval (t);
+ libc_fesetenvf (&env);
+ GET_FLOAT_WORD (i0, t);
+ SET_FLOAT_WORD (t, (i0 & 0x7fffffff) | (sx << 31));
+ return t;
}
- libc_feholdexceptf (&env);
- w = TWO23[sx] + math_opt_barrier (x);
- t = w-TWO23[sx];
- math_force_eval (t);
- libc_fesetenvf (&env);
- return t;
+ }
+ else
+ {
+ if (__glibc_unlikely (j0 == 0x80))
+ return x + x; /* inf or NaN */
+ else
+ return x; /* x is integral */
+ }
+ libc_feholdexceptf (&env);
+ w = TWO23[sx] + math_opt_barrier (x);
+ t = w - TWO23[sx];
+ math_force_eval (t);
+ libc_fesetenvf (&env);
+ return t;
+#endif /* ! USE_NEARBYINT_BUILTIN */
}
libm_alias_float (__nearbyint, nearbyint)
diff --git a/sysdeps/ieee754/flt-32/s_nextupf.c b/sysdeps/ieee754/flt-32/s_nextupf.c
index 87ec7ba21f..50d19924a6 100644
--- a/sysdeps/ieee754/flt-32/s_nextupf.c
+++ b/sysdeps/ieee754/flt-32/s_nextupf.c
@@ -1,5 +1,5 @@
/* Return the least floating-point number greater than X.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <float.h>
#include <math.h>
diff --git a/sysdeps/ieee754/flt-32/s_remquof.c b/sysdeps/ieee754/flt-32/s_remquof.c
index 66704d46c2..daa8a6fe82 100644
--- a/sysdeps/ieee754/flt-32/s_remquof.c
+++ b/sysdeps/ieee754/flt-32/s_remquof.c
@@ -1,5 +1,5 @@
/* Compute remainder and a congruent to the quotient.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/ieee754/flt-32/s_rintf.c b/sysdeps/ieee754/flt-32/s_rintf.c
index db6f260a0b..627bada566 100644
--- a/sysdeps/ieee754/flt-32/s_rintf.c
+++ b/sysdeps/ieee754/flt-32/s_rintf.c
@@ -13,38 +13,50 @@
* ====================================================
*/
+#define NO_MATH_REDIRECT
#include <math.h>
#include <math_private.h>
#include <libm-alias-float.h>
-
-static const float
-TWO23[2]={
- 8.3886080000e+06, /* 0x4b000000 */
- -8.3886080000e+06, /* 0xcb000000 */
-};
+#include <math-use-builtins.h>
float
-__rintf(float x)
+__rintf (float x)
{
- int32_t i0,j0,sx;
- float w,t;
- GET_FLOAT_WORD(i0,x);
- sx = (i0>>31)&1;
- j0 = ((i0>>23)&0xff)-0x7f;
- if(j0<23) {
- if(j0<0) {
- w = TWO23[sx]+x;
- t = w-TWO23[sx];
- GET_FLOAT_WORD(i0,t);
- SET_FLOAT_WORD(t,(i0&0x7fffffff)|(sx<<31));
- return t;
- }
- } else {
- if(j0==0x80) return x+x; /* inf or NaN */
- else return x; /* x is integral */
+#if USE_RINTF_BUILTIN
+ return __builtin_rintf (x);
+#else
+ /* Use generic implementation. */
+ static const float
+ TWO23[2] = {
+ 8.3886080000e+06, /* 0x4b000000 */
+ -8.3886080000e+06, /* 0xcb000000 */
+ };
+ int32_t i0, j0, sx;
+ float w, t;
+ GET_FLOAT_WORD (i0, x);
+ sx = (i0 >> 31) & 1;
+ j0 = ((i0 >> 23) & 0xff) - 0x7f;
+ if (j0 < 23)
+ {
+ if(j0 < 0)
+ {
+ w = TWO23[sx] + x;
+ t = w - TWO23[sx];
+ GET_FLOAT_WORD (i0, t);
+ SET_FLOAT_WORD (t, (i0 & 0x7fffffff) | (sx << 31));
+ return t;
}
- w = TWO23[sx]+x;
- return w-TWO23[sx];
+ }
+ else
+ {
+ if (j0 == 0x80)
+ return x + x; /* inf or NaN */
+ else
+ return x; /* x is integral */
+ }
+ w = TWO23[sx] + x;
+ return w - TWO23[sx];
+#endif /* ! USE_RINTF_BUILTIN */
}
#ifndef __rintf
libm_alias_float (__rint, rint)
diff --git a/sysdeps/ieee754/flt-32/s_roundevenf.c b/sysdeps/ieee754/flt-32/s_roundevenf.c
index 90f991d5c4..6cb1a3435f 100644
--- a/sysdeps/ieee754/flt-32/s_roundevenf.c
+++ b/sysdeps/ieee754/flt-32/s_roundevenf.c
@@ -1,6 +1,6 @@
/* Round to nearest integer value, rounding halfway cases to even.
flt-32 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/ieee754/flt-32/s_roundf.c b/sysdeps/ieee754/flt-32/s_roundf.c
index 7c95125d9c..5d91239d6e 100644
--- a/sysdeps/ieee754/flt-32/s_roundf.c
+++ b/sysdeps/ieee754/flt-32/s_roundf.c
@@ -1,5 +1,5 @@
/* Round float to integer away from zero.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@@ -15,17 +15,23 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
#include <math_private.h>
#include <libm-alias-float.h>
+#include <math-use-builtins.h>
float
__roundf (float x)
{
+#if USE_ROUNDF_BUILTIN
+ return __builtin_roundf (x);
+#else
+ /* Use generic implementation. */
int32_t i0, j0;
GET_FLOAT_WORD (i0, x);
@@ -60,5 +66,6 @@ __roundf (float x)
SET_FLOAT_WORD (x, i0);
return x;
+#endif /* ! USE_ROUNDF_BUILTIN */
}
libm_alias_float (__round, round)
diff --git a/sysdeps/ieee754/flt-32/s_scalbnf.c b/sysdeps/ieee754/flt-32/s_scalbnf.c
index f36ae241b2..1a760f767a 100644
--- a/sysdeps/ieee754/flt-32/s_scalbnf.c
+++ b/sysdeps/ieee754/flt-32/s_scalbnf.c
@@ -36,16 +36,16 @@ __scalbnf (float x, int n)
}
if (__builtin_expect(k==0xff, 0)) return x+x; /* NaN or Inf */
if (__builtin_expect(n< -50000, 0))
- return tiny*__copysignf(tiny,x); /*underflow*/
+ return tiny*copysignf(tiny,x); /*underflow*/
if (__builtin_expect(n> 50000 || k+n > 0xfe, 0))
- return huge*__copysignf(huge,x); /* overflow */
+ return huge*copysignf(huge,x); /* overflow */
/* Now k and n are bounded we know that k = k+n does not
overflow. */
k = k+n;
if (__builtin_expect(k > 0, 1)) /* normal result */
{SET_FLOAT_WORD(x,(ix&0x807fffff)|(k<<23)); return x;}
if (k <= -25)
- return tiny*__copysignf(tiny,x); /*underflow*/
+ return tiny*copysignf(tiny,x); /*underflow*/
k += 25; /* subnormal result */
SET_FLOAT_WORD(x,(ix&0x807fffff)|(k<<23));
return x*twom25;
diff --git a/sysdeps/ieee754/flt-32/s_setpayloadf_main.c b/sysdeps/ieee754/flt-32/s_setpayloadf_main.c
index a01c8677a3..99e0202e12 100644
--- a/sysdeps/ieee754/flt-32/s_setpayloadf_main.c
+++ b/sysdeps/ieee754/flt-32/s_setpayloadf_main.c
@@ -1,5 +1,5 @@
/* Set NaN payload. flt-32 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/ieee754/flt-32/s_signbitf.c b/sysdeps/ieee754/flt-32/s_signbitf.c
index e97c6261d2..88cdc2cdf0 100644
--- a/sysdeps/ieee754/flt-32/s_signbitf.c
+++ b/sysdeps/ieee754/flt-32/s_signbitf.c
@@ -1,5 +1,5 @@
/* Return nonzero value if number is negative.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/ieee754/flt-32/s_sincosf.c b/sysdeps/ieee754/flt-32/s_sincosf.c
index d4a5a1b22c..937471c37d 100644
--- a/sysdeps/ieee754/flt-32/s_sincosf.c
+++ b/sysdeps/ieee754/flt-32/s_sincosf.c
@@ -1,5 +1,5 @@
/* Compute sine and cosine of argument.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,12 +14,14 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
+#include <stdint.h>
#include <math.h>
-#include <math_private.h>
+#include <math-barriers.h>
#include <libm-alias-float.h>
+#include "math_config.h"
#include "s_sincosf.h"
#ifndef SINCOSF
@@ -28,141 +30,71 @@
# define SINCOSF_FUNC SINCOSF
#endif
+/* Fast sincosf implementation. Worst-case ULP is 0.5607, maximum relative
+ error is 0.5303 * 2^-23. A single-step range reduction is used for
+ small values. Large inputs have their range reduced using fast integer
+ arithmetic. */
void
-SINCOSF_FUNC (float x, float *sinx, float *cosx)
+SINCOSF_FUNC (float y, float *sinp, float *cosp)
{
- double cx;
- double theta = x;
- double abstheta = fabs (theta);
- /* If |x|< Pi/4. */
- if (isless (abstheta, M_PI_4))
+ double x = y;
+ double s;
+ int n;
+ const sincos_t *p = &__sincosf_table[0];
+
+ if (abstop12 (y) < abstop12 (pio4))
+ {
+ double x2 = x * x;
+
+ if (__glibc_unlikely (abstop12 (y) < abstop12 (0x1p-12f)))
+ {
+ /* Force underflow for tiny y. */
+ if (__glibc_unlikely (abstop12 (y) < abstop12 (0x1p-126f)))
+ math_force_eval ((float)x2);
+ *sinp = y;
+ *cosp = 1.0f;
+ return;
+ }
+
+ sincosf_poly (x, x2, p, 0, sinp, cosp);
+ }
+ else if (abstop12 (y) < abstop12 (120.0f))
{
- if (abstheta >= 0x1p-5) /* |x| >= 2^-5. */
- {
- const double theta2 = theta * theta;
- /* Chebyshev polynomial of the form for sin and cos. */
- cx = C3 + theta2 * C4;
- cx = C2 + theta2 * cx;
- cx = C1 + theta2 * cx;
- cx = C0 + theta2 * cx;
- cx = 1.0 + theta2 * cx;
- *cosx = cx;
- cx = S3 + theta2 * S4;
- cx = S2 + theta2 * cx;
- cx = S1 + theta2 * cx;
- cx = S0 + theta2 * cx;
- cx = theta + theta * theta2 * cx;
- *sinx = cx;
- }
- else if (abstheta >= 0x1p-27) /* |x| >= 2^-27. */
- {
- /* A simpler Chebyshev approximation is close enough for this range:
- for sin: x+x^3*(SS0+x^2*SS1)
- for cos: 1.0+x^2*(CC0+x^3*CC1). */
- const double theta2 = theta * theta;
- cx = CC0 + theta * theta2 * CC1;
- cx = 1.0 + theta2 * cx;
- *cosx = cx;
- cx = SS0 + theta2 * SS1;
- cx = theta + theta * theta2 * cx;
- *sinx = cx;
- }
- else
- {
- /* Handle some special cases. */
- if (theta)
- *sinx = theta - (theta * SMALL);
- else
- *sinx = theta;
- *cosx = 1.0 - abstheta;
- }
+ x = reduce_fast (x, p, &n);
+
+ /* Setup the signs for sin and cos. */
+ s = p->sign[n & 3];
+
+ if (n & 2)
+ p = &__sincosf_table[1];
+
+ sincosf_poly (x * s, x * x, p, n, sinp, cosp);
}
- else /* |x| >= Pi/4. */
+ else if (__glibc_likely (abstop12 (y) < abstop12 (INFINITY)))
{
- unsigned int signbit = isless (x, 0);
- if (isless (abstheta, 9 * M_PI_4)) /* |x| < 9*Pi/4. */
- {
- /* There are cases where FE_UPWARD rounding mode can
- produce a result of abstheta * inv_PI_4 == 9,
- where abstheta < 9pi/4, so the domain for
- pio2_table must go to 5 (9 / 2 + 1). */
- unsigned int n = (abstheta * inv_PI_4) + 1;
- theta = abstheta - pio2_table[n / 2];
- *sinx = reduced_sin (theta, n, signbit);
- *cosx = reduced_cos (theta, n);
- }
- else if (isless (abstheta, INFINITY))
- {
- if (abstheta < 0x1p+23) /* |x| < 2^23. */
- {
- unsigned int n = ((unsigned int) (abstheta * inv_PI_4)) + 1;
- double x = n / 2;
- theta = (abstheta - x * PI_2_hi) - x * PI_2_lo;
- /* Argument reduction needed. */
- *sinx = reduced_sin (theta, n, signbit);
- *cosx = reduced_cos (theta, n);
- }
- else /* |x| >= 2^23. */
- {
- x = fabsf (x);
- int exponent;
- GET_FLOAT_WORD (exponent, x);
- exponent
- = (exponent >> FLOAT_EXPONENT_SHIFT) - FLOAT_EXPONENT_BIAS;
- exponent += 3;
- exponent /= 28;
- double a = invpio4_table[exponent] * x;
- double b = invpio4_table[exponent + 1] * x;
- double c = invpio4_table[exponent + 2] * x;
- double d = invpio4_table[exponent + 3] * x;
- uint64_t l = a;
- l &= ~0x7;
- a -= l;
- double e = a + b;
- l = e;
- e = a - l;
- if (l & 1)
- {
- e -= 1.0;
- e += b;
- e += c;
- e += d;
- e *= M_PI_4;
- *sinx = reduced_sin (e, l + 1, signbit);
- *cosx = reduced_cos (e, l + 1);
- }
- else
- {
- e += b;
- e += c;
- e += d;
- if (e <= 1.0)
- {
- e *= M_PI_4;
- *sinx = reduced_sin (e, l + 1, signbit);
- *cosx = reduced_cos (e, l + 1);
- }
- else
- {
- l++;
- e -= 2.0;
- e *= M_PI_4;
- *sinx = reduced_sin (e, l + 1, signbit);
- *cosx = reduced_cos (e, l + 1);
- }
- }
- }
- }
- else
- {
- int32_t ix;
- /* High word of x. */
- GET_FLOAT_WORD (ix, abstheta);
- /* sin/cos(Inf or NaN) is NaN. */
- *sinx = *cosx = x - x;
- if (ix == 0x7f800000)
- __set_errno (EDOM);
- }
+ uint32_t xi = asuint (y);
+ int sign = xi >> 31;
+
+ x = reduce_large (xi, &n);
+
+ /* Setup signs for sin and cos - include original sign. */
+ s = p->sign[(n + sign) & 3];
+
+ if ((n + sign) & 2)
+ p = &__sincosf_table[1];
+
+ sincosf_poly (x * s, x * x, p, n, sinp, cosp);
+ }
+ else
+ {
+ /* Return NaN if Inf or NaN for both sin and cos. */
+ *sinp = *cosp = y - y;
+#if WANT_ERRNO
+ /* Needed to set errno for +-Inf, the add is a hack to work
+ around a gcc register allocation issue: just passing y
+ affects code generation in the fast path (PR86901). */
+ __math_invalidf (y + y);
+#endif
}
}
diff --git a/sysdeps/ieee754/flt-32/s_sincosf.h b/sysdeps/ieee754/flt-32/s_sincosf.h
index 35b5eee536..bc9bf780f3 100644
--- a/sysdeps/ieee754/flt-32/s_sincosf.h
+++ b/sysdeps/ieee754/flt-32/s_sincosf.h
@@ -1,5 +1,5 @@
/* Used by sinf, cosf and sincosf functions.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,142 +14,82 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-/* Chebyshev constants for cos, range -PI/4 - PI/4. */
-static const double C0 = -0x1.ffffffffe98aep-2;
-static const double C1 = 0x1.55555545c50c7p-5;
-static const double C2 = -0x1.6c16b348b6874p-10;
-static const double C3 = 0x1.a00eb9ac43ccp-16;
-static const double C4 = -0x1.23c97dd8844d7p-22;
+#include <stdint.h>
+#include <math.h>
+#include "math_config.h"
+#include <sincosf_poly.h>
-/* Chebyshev constants for sin, range -PI/4 - PI/4. */
-static const double S0 = -0x1.5555555551cd9p-3;
-static const double S1 = 0x1.1111110c2688bp-7;
-static const double S2 = -0x1.a019f8b4bd1f9p-13;
-static const double S3 = 0x1.71d7264e6b5b4p-19;
-static const double S4 = -0x1.a947e1674b58ap-26;
+/* 2PI * 2^-64. */
+static const double pi63 = 0x1.921FB54442D18p-62;
+/* PI / 4. */
+static const double pio4 = 0x1.921FB54442D18p-1;
-/* Chebyshev constants for sin, range 2^-27 - 2^-5. */
-static const double SS0 = -0x1.555555543d49dp-3;
-static const double SS1 = 0x1.110f475cec8c5p-7;
+/* Polynomial data (the cosine polynomial is negated in the 2nd entry). */
+extern const sincos_t __sincosf_table[2] attribute_hidden;
-/* Chebyshev constants for cos, range 2^-27 - 2^-5. */
-static const double CC0 = -0x1.fffffff5cc6fdp-2;
-static const double CC1 = 0x1.55514b178dac5p-5;
+/* Table with 4/PI to 192 bit precision. */
+extern const uint32_t __inv_pio4[] attribute_hidden;
-/* PI/2 with 98 bits of accuracy. */
-static const double PI_2_hi = 0x1.921fb544p+0;
-static const double PI_2_lo = 0x1.0b4611a626332p-34;
-
-static const double SMALL = 0x1p-50; /* 2^-50. */
-static const double inv_PI_4 = 0x1.45f306dc9c883p+0; /* 4/PI. */
-
-#define FLOAT_EXPONENT_SHIFT 23
-#define FLOAT_EXPONENT_BIAS 127
-
-static const double pio2_table[] = {
- 0 * M_PI_2,
- 1 * M_PI_2,
- 2 * M_PI_2,
- 3 * M_PI_2,
- 4 * M_PI_2,
- 5 * M_PI_2
-};
-
-static const double invpio4_table[] = {
- 0x0p+0,
- 0x1.45f306cp+0,
- 0x1.c9c882ap-28,
- 0x1.4fe13a8p-58,
- 0x1.f47d4dp-85,
- 0x1.bb81b6cp-112,
- 0x1.4acc9ep-142,
- 0x1.0e4107cp-169
-};
-
-static const double ones[] = { 1.0, -1.0 };
-
-/* Compute the sine value using Chebyshev polynomials where
- THETA is the range reduced absolute value of the input
- and it is less than Pi/4,
- N is calculated as trunc(|x|/(Pi/4)) + 1 and it is used to decide
- whether a sine or cosine approximation is more accurate and
- SIGNBIT is used to add the correct sign after the Chebyshev
- polynomial is computed. */
-static inline float
-reduced_sin (const double theta, const unsigned int n,
- const unsigned int signbit)
+/* Top 12 bits of the float representation with the sign bit cleared. */
+static inline uint32_t
+abstop12 (float x)
{
- double sx;
- const double theta2 = theta * theta;
- /* We are operating on |x|, so we need to add back the original
- signbit for sinf. */
- double sign;
- /* Determine positive or negative primary interval. */
- sign = ones[((n >> 2) & 1) ^ signbit];
- /* Are we in the primary interval of sin or cos? */
- if ((n & 2) == 0)
- {
- /* Here sinf() is calculated using sin Chebyshev polynomial:
- x+x^3*(S0+x^2*(S1+x^2*(S2+x^2*(S3+x^2*S4)))). */
- sx = S3 + theta2 * S4; /* S3+x^2*S4. */
- sx = S2 + theta2 * sx; /* S2+x^2*(S3+x^2*S4). */
- sx = S1 + theta2 * sx; /* S1+x^2*(S2+x^2*(S3+x^2*S4)). */
- sx = S0 + theta2 * sx; /* S0+x^2*(S1+x^2*(S2+x^2*(S3+x^2*S4))). */
- sx = theta + theta * theta2 * sx;
- }
- else
- {
- /* Here sinf() is calculated using cos Chebyshev polynomial:
- 1.0+x^2*(C0+x^2*(C1+x^2*(C2+x^2*(C3+x^2*C4)))). */
- sx = C3 + theta2 * C4; /* C3+x^2*C4. */
- sx = C2 + theta2 * sx; /* C2+x^2*(C3+x^2*C4). */
- sx = C1 + theta2 * sx; /* C1+x^2*(C2+x^2*(C3+x^2*C4)). */
- sx = C0 + theta2 * sx; /* C0+x^2*(C1+x^2*(C2+x^2*(C3+x^2*C4))). */
- sx = 1.0 + theta2 * sx;
- }
-
- /* Add in the signbit and assign the result. */
- return sign * sx;
+ return (asuint (x) >> 20) & 0x7ff;
}
-/* Compute the cosine value using Chebyshev polynomials where
- THETA is the range reduced absolute value of the input
- and it is less than Pi/4,
- N is calculated as trunc(|x|/(Pi/4)) + 1 and it is used to decide
- whether a sine or cosine approximation is more accurate and
- the sign of the result. */
-static inline float
-reduced_cos (double theta, unsigned int n)
+/* Fast range reduction using single multiply-subtract. Return the modulo of
+ X as a value between -PI/4 and PI/4 and store the quadrant in NP.
+ The values for PI/2 and 2/PI are accessed via P. Since PI/2 as a double
+ is accurate to 55 bits and the worst-case cancellation happens at 6 * PI/4,
+ the result is accurate for |X| <= 120.0. */
+static inline double
+reduce_fast (double x, const sincos_t *p, int *np)
{
- double sign, cx;
- const double theta2 = theta * theta;
-
- /* Determine positive or negative primary interval. */
- n += 2;
- sign = ones[(n >> 2) & 1];
+ double r;
+#if TOINT_INTRINSICS
+ /* Use fast round and lround instructions when available. */
+ r = x * p->hpi_inv;
+ *np = converttoint (r);
+ return x - roundtoint (r) * p->hpi;
+#else
+ /* Use scaled float to int conversion with explicit rounding.
+ hpi_inv is prescaled by 2^24 so the quadrant ends up in bits 24..31.
+ This avoids inaccuracies introduced by truncating negative values. */
+ r = x * p->hpi_inv;
+ int n = ((int32_t)r + 0x800000) >> 24;
+ *np = n;
+ return x - n * p->hpi;
+#endif
+}
- /* Are we in the primary interval of sin or cos? */
- if ((n & 2) == 0)
- {
- /* Here cosf() is calculated using sin Chebyshev polynomial:
- x+x^3*(S0+x^2*(S1+x^2*(S2+x^2*(S3+x^2*S4)))). */
- cx = S3 + theta2 * S4;
- cx = S2 + theta2 * cx;
- cx = S1 + theta2 * cx;
- cx = S0 + theta2 * cx;
- cx = theta + theta * theta2 * cx;
- }
- else
- {
- /* Here cosf() is calculated using cos Chebyshev polynomial:
- 1.0+x^2*(C0+x^2*(C1+x^2*(C2+x^2*(C3+x^2*C4)))). */
- cx = C3 + theta2 * C4;
- cx = C2 + theta2 * cx;
- cx = C1 + theta2 * cx;
- cx = C0 + theta2 * cx;
- cx = 1. + theta2 * cx;
- }
- return sign * cx;
+/* Reduce the range of XI to a multiple of PI/2 using fast integer arithmetic.
+ XI is a reinterpreted float and must be >= 2.0f (the sign bit is ignored).
+ Return the modulo between -PI/4 and PI/4 and store the quadrant in NP.
+ Reduction uses a table of 4/PI with 192 bits of precision. A 32x96->128 bit
+ multiply computes the exact 2.62-bit fixed-point modulo. Since the result
+ can have at most 29 leading zeros after the binary point, the double
+ precision result is accurate to 33 bits. */
+static inline double
+reduce_large (uint32_t xi, int *np)
+{
+ const uint32_t *arr = &__inv_pio4[(xi >> 26) & 15];
+ int shift = (xi >> 23) & 7;
+ uint64_t n, res0, res1, res2;
+
+ xi = (xi & 0xffffff) | 0x800000;
+ xi <<= shift;
+
+ res0 = xi * arr[0];
+ res1 = (uint64_t)xi * arr[4];
+ res2 = (uint64_t)xi * arr[8];
+ res0 = (res2 >> 32) | (res0 << 32);
+ res0 += res1;
+
+ n = (res0 + (1ULL << 61)) >> 62;
+ res0 -= n << 62;
+ double x = (int64_t)res0;
+ *np = n;
+ return x * pi63;
}
diff --git a/sysdeps/ieee754/flt-32/s_sincosf_data.c b/sysdeps/ieee754/flt-32/s_sincosf_data.c
new file mode 100644
index 0000000000..d8a6900711
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/s_sincosf_data.c
@@ -0,0 +1,74 @@
+/* Compute sine and cosine of argument.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdint.h>
+#include <math.h>
+#include "math_config.h"
+#include "s_sincosf.h"
+
+/* The constants and polynomials for sine and cosine. The 2nd entry
+ computes -cos (x) rather than cos (x) to get negation for free. */
+const sincos_t __sincosf_table[2] =
+{
+ {
+ { 1.0, -1.0, -1.0, 1.0 },
+#if TOINT_INTRINSICS
+ 0x1.45F306DC9C883p-1,
+#else
+ 0x1.45F306DC9C883p+23,
+#endif
+ 0x1.921FB54442D18p0,
+ 0x1p0,
+ -0x1.ffffffd0c621cp-2,
+ 0x1.55553e1068f19p-5,
+ -0x1.6c087e89a359dp-10,
+ 0x1.99343027bf8c3p-16,
+ -0x1.555545995a603p-3,
+ 0x1.1107605230bc4p-7,
+ -0x1.994eb3774cf24p-13
+ },
+ {
+ { 1.0, -1.0, -1.0, 1.0 },
+#if TOINT_INTRINSICS
+ 0x1.45F306DC9C883p-1,
+#else
+ 0x1.45F306DC9C883p+23,
+#endif
+ 0x1.921FB54442D18p0,
+ -0x1p0,
+ 0x1.ffffffd0c621cp-2,
+ -0x1.55553e1068f19p-5,
+ 0x1.6c087e89a359dp-10,
+ -0x1.99343027bf8c3p-16,
+ -0x1.555545995a603p-3,
+ 0x1.1107605230bc4p-7,
+ -0x1.994eb3774cf24p-13
+ }
+};
+
+/* Table with 4/PI to 192 bit precision. To avoid unaligned accesses
+ only 8 new bits are added per entry, making the table 4 times larger. */
+const uint32_t __inv_pio4[24] =
+{
+ 0xa2, 0xa2f9, 0xa2f983, 0xa2f9836e,
+ 0xf9836e4e, 0x836e4e44, 0x6e4e4415, 0x4e441529,
+ 0x441529fc, 0x1529fc27, 0x29fc2757, 0xfc2757d1,
+ 0x2757d1f5, 0x57d1f534, 0xd1f534dd, 0xf534ddc0,
+ 0x34ddc0db, 0xddc0db62, 0xc0db6295, 0xdb629599,
+ 0x6295993c, 0x95993c43, 0x993c4390, 0x3c439041
+};
diff --git a/sysdeps/ieee754/flt-32/s_sinf.c b/sysdeps/ieee754/flt-32/s_sinf.c
index 138e318dcc..5904106987 100644
--- a/sysdeps/ieee754/flt-32/s_sinf.c
+++ b/sysdeps/ieee754/flt-32/s_sinf.c
@@ -1,5 +1,5 @@
/* Compute sine of argument.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,12 +14,13 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#include <errno.h>
+#include <stdint.h>
#include <math.h>
-#include <math_private.h>
+#include <math-barriers.h>
#include <libm-alias-float.h>
+#include "math_config.h"
#include "s_sincosf.h"
#ifndef SINF
@@ -28,127 +29,62 @@
# define SINF_FUNC SINF
#endif
+/* Fast sinf implementation. Worst-case ULP is 0.5607, maximum relative
+ error is 0.5303 * 2^-23. A single-step range reduction is used for
+ small values. Large inputs have their range reduced using fast integer
+ arithmetic.
+*/
float
-SINF_FUNC (float x)
+SINF_FUNC (float y)
{
- double cx;
- double theta = x;
- double abstheta = fabs (theta);
- /* If |x|< Pi/4. */
- if (isless (abstheta, M_PI_4))
+ double x = y;
+ double s;
+ int n;
+ const sincos_t *p = &__sincosf_table[0];
+
+ if (abstop12 (y) < abstop12 (pio4))
+ {
+ s = x * x;
+
+ if (__glibc_unlikely (abstop12 (y) < abstop12 (0x1p-12f)))
+ {
+ /* Force underflow for tiny y. */
+ if (__glibc_unlikely (abstop12 (y) < abstop12 (0x1p-126f)))
+ math_force_eval ((float)s);
+ return y;
+ }
+
+ return sinf_poly (x, s, p, 0);
+ }
+ else if (__glibc_likely (abstop12 (y) < abstop12 (120.0f)))
{
- if (abstheta >= 0x1p-5) /* |x| >= 2^-5. */
- {
- const double theta2 = theta * theta;
- /* Chebyshev polynomial of the form for sin
- x+x^3*(S0+x^2*(S1+x^2*(S2+x^2*(S3+x^2*S4)))). */
- cx = S3 + theta2 * S4;
- cx = S2 + theta2 * cx;
- cx = S1 + theta2 * cx;
- cx = S0 + theta2 * cx;
- cx = theta + theta * theta2 * cx;
- return cx;
- }
- else if (abstheta >= 0x1p-27) /* |x| >= 2^-27. */
- {
- /* A simpler Chebyshev approximation is close enough for this range:
- for sin: x+x^3*(SS0+x^2*SS1). */
- const double theta2 = theta * theta;
- cx = SS0 + theta2 * SS1;
- cx = theta + theta * theta2 * cx;
- return cx;
- }
- else
- {
- /* Handle some special cases. */
- if (theta)
- return theta - (theta * SMALL);
- else
- return theta;
- }
+ x = reduce_fast (x, p, &n);
+
+ /* Setup the signs for sin and cos. */
+ s = p->sign[n & 3];
+
+ if (n & 2)
+ p = &__sincosf_table[1];
+
+ return sinf_poly (x * s, x * x, p, n);
}
- else /* |x| >= Pi/4. */
+ else if (abstop12 (y) < abstop12 (INFINITY))
{
- unsigned int signbit = isless (x, 0);
- if (isless (abstheta, 9 * M_PI_4)) /* |x| < 9*Pi/4. */
- {
- /* There are cases where FE_UPWARD rounding mode can
- produce a result of abstheta * inv_PI_4 == 9,
- where abstheta < 9pi/4, so the domain for
- pio2_table must go to 5 (9 / 2 + 1). */
- unsigned int n = (abstheta * inv_PI_4) + 1;
- theta = abstheta - pio2_table[n / 2];
- return reduced_sin (theta, n, signbit);
- }
- else if (isless (abstheta, INFINITY))
- {
- if (abstheta < 0x1p+23) /* |x| < 2^23. */
- {
- unsigned int n = ((unsigned int) (abstheta * inv_PI_4)) + 1;
- double x = n / 2;
- theta = (abstheta - x * PI_2_hi) - x * PI_2_lo;
- /* Argument reduction needed. */
- return reduced_sin (theta, n, signbit);
- }
- else /* |x| >= 2^23. */
- {
- x = fabsf (x);
- int exponent;
- GET_FLOAT_WORD (exponent, x);
- exponent
- = (exponent >> FLOAT_EXPONENT_SHIFT) - FLOAT_EXPONENT_BIAS;
- exponent += 3;
- exponent /= 28;
- double a = invpio4_table[exponent] * x;
- double b = invpio4_table[exponent + 1] * x;
- double c = invpio4_table[exponent + 2] * x;
- double d = invpio4_table[exponent + 3] * x;
- uint64_t l = a;
- l &= ~0x7;
- a -= l;
- double e = a + b;
- l = e;
- e = a - l;
- if (l & 1)
- {
- e -= 1.0;
- e += b;
- e += c;
- e += d;
- e *= M_PI_4;
- return reduced_sin (e, l + 1, signbit);
- }
- else
- {
- e += b;
- e += c;
- e += d;
- if (e <= 1.0)
- {
- e *= M_PI_4;
- return reduced_sin (e, l + 1, signbit);
- }
- else
- {
- l++;
- e -= 2.0;
- e *= M_PI_4;
- return reduced_sin (e, l + 1, signbit);
- }
- }
- }
- }
- else
- {
- int32_t ix;
- /* High word of x. */
- GET_FLOAT_WORD (ix, abstheta);
- /* Sin(Inf or NaN) is NaN. */
- if (ix == 0x7f800000)
- __set_errno (EDOM);
- return x - x;
- }
+ uint32_t xi = asuint (y);
+ int sign = xi >> 31;
+
+ x = reduce_large (xi, &n);
+
+ /* Setup signs for sin and cos - include original sign. */
+ s = p->sign[(n + sign) & 3];
+
+ if ((n + sign) & 2)
+ p = &__sincosf_table[1];
+
+ return sinf_poly (x * s, x * x, p, n);
}
+ else
+ return __math_invalidf (y);
}
#ifndef SINF
diff --git a/sysdeps/ieee754/flt-32/s_tanf.c b/sysdeps/ieee754/flt-32/s_tanf.c
index ba3af54913..fd104103ad 100644
--- a/sysdeps/ieee754/flt-32/s_tanf.c
+++ b/sysdeps/ieee754/flt-32/s_tanf.c
@@ -21,6 +21,33 @@ static char rcsid[] = "$NetBSD: s_tanf.c,v 1.4 1995/05/10 20:48:20 jtc Exp $";
#include <math.h>
#include <math_private.h>
#include <libm-alias-float.h>
+#include "s_sincosf.h"
+
+/* Reduce range of X to a multiple of PI/2. The modulo result is between
+ -PI/4 and PI/4 and returned as a high part y[0] and a low part y[1].
+ The low bit in the return value indicates the first or 2nd half of tanf. */
+static inline int32_t
+rem_pio2f (float x, float *y)
+{
+ double dx = x;
+ int n;
+ const sincos_t *p = &__sincosf_table[0];
+
+ if (__glibc_likely (abstop12 (x) < abstop12 (120.0f)))
+ dx = reduce_fast (dx, p, &n);
+ else
+ {
+ uint32_t xi = asuint (x);
+ int sign = xi >> 31;
+
+ dx = reduce_large (xi, &n);
+ dx = sign ? -dx : dx;
+ }
+
+ y[0] = dx;
+ y[1] = dx - y[0];
+ return n;
+}
float __tanf(float x)
{
@@ -42,7 +69,7 @@ float __tanf(float x)
/* argument reduction needed */
else {
- n = __ieee754_rem_pio2f(x,y);
+ n = rem_pio2f(x,y);
return __kernel_tanf(y[0],y[1],1-((n&1)<<1)); /* 1 -- n even
-1 -- n odd */
}
diff --git a/sysdeps/ieee754/flt-32/s_totalorderf.c b/sysdeps/ieee754/flt-32/s_totalorderf.c
index 928a8d6d8f..544ee3d85b 100644
--- a/sysdeps/ieee754/flt-32/s_totalorderf.c
+++ b/sysdeps/ieee754/flt-32/s_totalorderf.c
@@ -1,5 +1,5 @@
/* Total order operation. flt-32 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,20 +14,22 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
#include <libm-alias-float.h>
#include <nan-high-order-bit.h>
#include <stdint.h>
+#include <shlib-compat.h>
+#include <first-versions.h>
int
-__totalorderf (float x, float y)
+__totalorderf (const float *x, const float *y)
{
int32_t ix, iy;
- GET_FLOAT_WORD (ix, x);
- GET_FLOAT_WORD (iy, y);
+ GET_FLOAT_WORD (ix, *x);
+ GET_FLOAT_WORD (iy, *y);
#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN
/* For the preferred quiet NaN convention, this operation is a
comparison of the representations of the arguments interpreted as
@@ -45,4 +47,29 @@ __totalorderf (float x, float y)
iy ^= iy_sign >> 1;
return ix <= iy;
}
+#ifdef SHARED
+# define CONCATX(x, y) x ## y
+# define CONCAT(x, y) CONCATX (x, y)
+# define UNIQUE_ALIAS(name) CONCAT (name, __COUNTER__)
+# define do_symbol(orig_name, name, aliasname) \
+ strong_alias (orig_name, name) \
+ versioned_symbol (libm, name, aliasname, GLIBC_2_31)
+# undef weak_alias
+# define weak_alias(name, aliasname) \
+ do_symbol (name, UNIQUE_ALIAS (name), aliasname);
+#endif
libm_alias_float (__totalorder, totalorder)
+#if SHLIB_COMPAT (libm, GLIBC_2_25, GLIBC_2_31)
+int
+attribute_compat_text_section
+__totalorder_compatf (float x, float y)
+{
+ return __totalorderf (&x, &y);
+}
+#undef do_symbol
+#define do_symbol(orig_name, name, aliasname) \
+ strong_alias (orig_name, name) \
+ compat_symbol (libm, name, aliasname, \
+ CONCAT (FIRST_VERSION_libm_, aliasname))
+libm_alias_float (__totalorder_compat, totalorder)
+#endif
diff --git a/sysdeps/ieee754/flt-32/s_totalordermagf.c b/sysdeps/ieee754/flt-32/s_totalordermagf.c
index 0e383653a5..480c74832d 100644
--- a/sysdeps/ieee754/flt-32/s_totalordermagf.c
+++ b/sysdeps/ieee754/flt-32/s_totalordermagf.c
@@ -1,5 +1,5 @@
/* Total order operation on absolute values. flt-32 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,20 +14,22 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
#include <libm-alias-float.h>
#include <nan-high-order-bit.h>
#include <stdint.h>
+#include <shlib-compat.h>
+#include <first-versions.h>
int
-__totalordermagf (float x, float y)
+__totalordermagf (const float *x, const float *y)
{
uint32_t ix, iy;
- GET_FLOAT_WORD (ix, x);
- GET_FLOAT_WORD (iy, y);
+ GET_FLOAT_WORD (ix, *x);
+ GET_FLOAT_WORD (iy, *y);
ix &= 0x7fffffff;
iy &= 0x7fffffff;
#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN
@@ -43,4 +45,29 @@ __totalordermagf (float x, float y)
#endif
return ix <= iy;
}
+#ifdef SHARED
+# define CONCATX(x, y) x ## y
+# define CONCAT(x, y) CONCATX (x, y)
+# define UNIQUE_ALIAS(name) CONCAT (name, __COUNTER__)
+# define do_symbol(orig_name, name, aliasname) \
+ strong_alias (orig_name, name) \
+ versioned_symbol (libm, name, aliasname, GLIBC_2_31)
+# undef weak_alias
+# define weak_alias(name, aliasname) \
+ do_symbol (name, UNIQUE_ALIAS (name), aliasname);
+#endif
libm_alias_float (__totalordermag, totalordermag)
+#if SHLIB_COMPAT (libm, GLIBC_2_25, GLIBC_2_31)
+int
+attribute_compat_text_section
+__totalordermag_compatf (float x, float y)
+{
+ return __totalordermagf (&x, &y);
+}
+#undef do_symbol
+#define do_symbol(orig_name, name, aliasname) \
+ strong_alias (orig_name, name) \
+ compat_symbol (libm, name, aliasname, \
+ CONCAT (FIRST_VERSION_libm_, aliasname))
+libm_alias_float (__totalordermag_compat, totalordermag)
+#endif
diff --git a/sysdeps/ieee754/flt-32/s_truncf.c b/sysdeps/ieee754/flt-32/s_truncf.c
index 2e1464aeac..274638820e 100644
--- a/sysdeps/ieee754/flt-32/s_truncf.c
+++ b/sysdeps/ieee754/flt-32/s_truncf.c
@@ -1,5 +1,5 @@
/* Truncate argument to nearest integral value not larger than the argument.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@@ -15,17 +15,23 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
#include <math_private.h>
#include <libm-alias-float.h>
+#include <math-use-builtins.h>
float
__truncf (float x)
{
+#if USE_TRUNCF_BUILTIN
+ return __builtin_truncf (x);
+#else
+ /* Use generic implementation. */
int32_t i0, j0;
int sx;
@@ -48,6 +54,7 @@ __truncf (float x)
}
return x;
+#endif /* ! USE_TRUNCF_BUILTIN */
}
#ifndef __truncf
libm_alias_float (__trunc, trunc)
diff --git a/sysdeps/ieee754/flt-32/sincosf_poly.h b/sysdeps/ieee754/flt-32/sincosf_poly.h
new file mode 100644
index 0000000000..818923407c
--- /dev/null
+++ b/sysdeps/ieee754/flt-32/sincosf_poly.h
@@ -0,0 +1,87 @@
+/* Used by sinf, cosf and sincosf functions.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+/* The constants and polynomials for sine and cosine. */
+typedef struct
+{
+ double sign[4]; /* Sign of sine in quadrants 0..3. */
+ double hpi_inv; /* 2 / PI ( * 2^24 if !TOINT_INTRINSICS). */
+ double hpi; /* PI / 2. */
+ double c0, c1, c2, c3, c4; /* Cosine polynomial. */
+ double s1, s2, s3; /* Sine polynomial. */
+} sincos_t;
+
+/* Compute the sine and cosine of inputs X and X2 (X squared), using the
+ polynomial P and store the results in SINP and COSP. N is the quadrant,
+ if odd the cosine and sine polynomials are swapped. */
+static inline void
+sincosf_poly (double x, double x2, const sincos_t *p, int n, float *sinp,
+ float *cosp)
+{
+ double x3, x4, x5, x6, s, c, c1, c2, s1;
+
+ x4 = x2 * x2;
+ x3 = x2 * x;
+ c2 = p->c3 + x2 * p->c4;
+ s1 = p->s2 + x2 * p->s3;
+
+ /* Swap sin/cos result based on quadrant. */
+ float *tmp = (n & 1 ? cosp : sinp);
+ cosp = (n & 1 ? sinp : cosp);
+ sinp = tmp;
+
+ c1 = p->c0 + x2 * p->c1;
+ x5 = x3 * x2;
+ x6 = x4 * x2;
+
+ s = x + x3 * p->s1;
+ c = c1 + x4 * p->c2;
+
+ *sinp = s + x5 * s1;
+ *cosp = c + x6 * c2;
+}
+
+/* Return the sine of inputs X and X2 (X squared) using the polynomial P.
+ N is the quadrant, and if odd the cosine polynomial is used. */
+static inline float
+sinf_poly (double x, double x2, const sincos_t *p, int n)
+{
+ double x3, x4, x6, x7, s, c, c1, c2, s1;
+
+ if ((n & 1) == 0)
+ {
+ x3 = x * x2;
+ s1 = p->s2 + x2 * p->s3;
+
+ x7 = x3 * x2;
+ s = x + x3 * p->s1;
+
+ return s + x7 * s1;
+ }
+ else
+ {
+ x4 = x2 * x2;
+ c2 = p->c3 + x2 * p->c4;
+ c1 = p->c0 + x2 * p->c1;
+
+ x6 = x4 * x2;
+ c = c1 + x4 * p->c2;
+
+ return c + x6 * c2;
+ }
+}
diff --git a/sysdeps/ieee754/ieee754.h b/sysdeps/ieee754/ieee754.h
index 7dfa9f0a21..7605d0d321 100644
--- a/sysdeps/ieee754/ieee754.h
+++ b/sysdeps/ieee754/ieee754.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -13,14 +13,14 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _IEEE754_H
-
#define _IEEE754_H 1
+
#include <features.h>
-#include <endian.h>
+#include <bits/endian.h>
__BEGIN_DECLS
diff --git a/sysdeps/ieee754/k_standard.c b/sysdeps/ieee754/k_standard.c
index f74f9c712e..826f19785a 100644
--- a/sysdeps/ieee754/k_standard.c
+++ b/sysdeps/ieee754/k_standard.c
@@ -471,11 +471,11 @@ __kernel_standard(double x, double y, int type)
if (_LIB_VERSION == _SVID_) {
exc.retval = HUGE;
y *= 0.5;
- if(x<zero&&__rint(y)!=y) exc.retval = -HUGE;
+ if(x<zero&&rint(y)!=y) exc.retval = -HUGE;
} else {
exc.retval = HUGE_VAL;
y *= 0.5;
- if(x<zero&&__rint(y)!=y) exc.retval = -HUGE_VAL;
+ if(x<zero&&rint(y)!=y) exc.retval = -HUGE_VAL;
}
if (_LIB_VERSION == _POSIX_)
__set_errno (ERANGE);
@@ -491,7 +491,7 @@ __kernel_standard(double x, double y, int type)
exc.name = CSTR ("pow");
exc.retval = zero;
y *= 0.5;
- if (x < zero && __rint (y) != y)
+ if (x < zero && rint (y) != y)
exc.retval = -zero;
if (_LIB_VERSION == _POSIX_)
__set_errno (ERANGE);
@@ -693,7 +693,7 @@ __kernel_standard(double x, double y, int type)
/* scalb underflow */
exc.type = UNDERFLOW;
exc.name = CSTR ("scalb");
- exc.retval = __copysign(zero,x);
+ exc.retval = copysign(zero,x);
if (_LIB_VERSION == _POSIX_)
__set_errno (ERANGE);
else if (!matherr(&exc)) {
@@ -808,7 +808,7 @@ __kernel_standard(double x, double y, int type)
/* tgamma(finite) overflow */
exc.type = OVERFLOW;
exc.name = CSTR ("tgamma");
- exc.retval = __copysign (HUGE_VAL, x);
+ exc.retval = copysign (HUGE_VAL, x);
if (_LIB_VERSION == _POSIX_)
__set_errno (ERANGE);
else if (!matherr(&exc)) {
@@ -930,7 +930,7 @@ __kernel_standard(double x, double y, int type)
/* tgamma(+-0) */
exc.type = SING;
exc.name = CSTR ("tgamma");
- exc.retval = __copysign (HUGE_VAL, x);
+ exc.retval = copysign (HUGE_VAL, x);
if (_LIB_VERSION == _POSIX_)
__set_errno (ERANGE);
else if (!matherr(&exc)) {
diff --git a/sysdeps/ieee754/k_standardf.c b/sysdeps/ieee754/k_standardf.c
index b790ad266d..2b70a83b80 100644
--- a/sysdeps/ieee754/k_standardf.c
+++ b/sysdeps/ieee754/k_standardf.c
@@ -1,5 +1,5 @@
/* Implement __kernel_standard_f.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ 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
@@ -14,10 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
-#include <math_private.h>
#include <math-svid-compat.h>
diff --git a/sysdeps/ieee754/k_standardl.c b/sysdeps/ieee754/k_standardl.c
index 58abc22b6e..e6446b90e9 100644
--- a/sysdeps/ieee754/k_standardl.c
+++ b/sysdeps/ieee754/k_standardl.c
@@ -1,5 +1,5 @@
/* Implement __kernel_standard_l.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
Parts based on k_standard.c from fdlibm: */
@@ -32,7 +32,6 @@
#include <math.h>
#include <math-barriers.h>
-#include <math_private.h>
#include <math-svid-compat.h>
#include <fenv.h>
#include <float.h>
@@ -73,14 +72,14 @@ __kernel_standard_l (long double x, long double y, int type)
{
exc.retval = HUGE;
y *= 0.5;
- if (x < zero && __rintl (y) != y)
+ if (x < zero && rintl (y) != y)
exc.retval = -HUGE;
}
else
{
exc.retval = HUGE_VAL;
y *= 0.5;
- if (x < zero && __rintl (y) != y)
+ if (x < zero && rintl (y) != y)
exc.retval = -HUGE_VAL;
}
if (_LIB_VERSION == _POSIX_)
@@ -97,7 +96,7 @@ __kernel_standard_l (long double x, long double y, int type)
exc.name = (char *) "powl";
exc.retval = zero;
y *= 0.5;
- if (x < zero && __rintl (y) != y)
+ if (x < zero && rintl (y) != y)
exc.retval = -zero;
if (_LIB_VERSION == _POSIX_)
__set_errno (ERANGE);
diff --git a/sysdeps/ieee754/ldbl-128/bits/floatn.h b/sysdeps/ieee754/ldbl-128/bits/floatn.h
index 1d21ccee24..248a70a576 100644
--- a/sysdeps/ieee754/ldbl-128/bits/floatn.h
+++ b/sysdeps/ieee754/ldbl-128/bits/floatn.h
@@ -1,5 +1,5 @@
/* Macros to control TS 18661-3 glibc features on ldbl-128 platforms.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_FLOATN_H
#define _BITS_FLOATN_H
diff --git a/sysdeps/ieee754/ldbl-128/bits/long-double.h b/sysdeps/ieee754/ldbl-128/bits/long-double.h
index 3d6e1139f8..eac89e233a 100644
--- a/sysdeps/ieee754/ldbl-128/bits/long-double.h
+++ b/sysdeps/ieee754/ldbl-128/bits/long-double.h
@@ -1,5 +1,5 @@
/* Properties of long double type. ldbl-128 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* long double is distinct from double, so there is nothing to
define here. */
diff --git a/sysdeps/ieee754/ldbl-128/e_acosl.c b/sysdeps/ieee754/ldbl-128/e_acosl.c
index 0dc23dee2b..f698d0aa5c 100644
--- a/sysdeps/ieee754/ldbl-128/e_acosl.c
+++ b/sysdeps/ieee754/ldbl-128/e_acosl.c
@@ -29,7 +29,7 @@
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* __ieee754_acosl(x)
* Method :
diff --git a/sysdeps/ieee754/ldbl-128/e_asinl.c b/sysdeps/ieee754/ldbl-128/e_asinl.c
index 4835962db4..aa240f1ff2 100644
--- a/sysdeps/ieee754/ldbl-128/e_asinl.c
+++ b/sysdeps/ieee754/ldbl-128/e_asinl.c
@@ -29,7 +29,7 @@
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* __ieee754_asin(x)
* Method :
diff --git a/sysdeps/ieee754/ldbl-128/e_coshl.c b/sysdeps/ieee754/ldbl-128/e_coshl.c
index 70a2fe3e84..2b8c1abfc2 100644
--- a/sysdeps/ieee754/ldbl-128/e_coshl.c
+++ b/sysdeps/ieee754/ldbl-128/e_coshl.c
@@ -28,7 +28,7 @@
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* __ieee754_coshl(x)
* Method :
diff --git a/sysdeps/ieee754/ldbl-128/e_exp10l.c b/sysdeps/ieee754/ldbl-128/e_exp10l.c
index 9b1ff9d821..093ab09a53 100644
--- a/sysdeps/ieee754/ldbl-128/e_exp10l.c
+++ b/sysdeps/ieee754/ldbl-128/e_exp10l.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/ieee754/ldbl-128/e_expl.c b/sysdeps/ieee754/ldbl-128/e_expl.c
index b4b21c4957..a39f3d5c23 100644
--- a/sysdeps/ieee754/ldbl-128/e_expl.c
+++ b/sysdeps/ieee754/ldbl-128/e_expl.c
@@ -1,5 +1,5 @@
/* Quad-precision floating point e^x.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jj@ultra.linux.cz>
Partly based on double-precision code
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* The basic design here is from
Abraham Ziv, "Fast Evaluation of Elementary Mathematical Functions with
diff --git a/sysdeps/ieee754/ldbl-128/e_gammal_r.c b/sysdeps/ieee754/ldbl-128/e_gammal_r.c
index e2730b8fc2..8cef0f7a15 100644
--- a/sysdeps/ieee754/ldbl-128/e_gammal_r.c
+++ b/sysdeps/ieee754/ldbl-128/e_gammal_r.c
@@ -1,5 +1,5 @@
/* Implementation of gamma function according to ISO C.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997 and
Jakub Jelinek <jj@ultra.linux.cz, 1999.
@@ -16,10 +16,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
+#include <fenv_private.h>
#include <math-underflow.h>
#include <float.h>
@@ -68,7 +69,7 @@ gammal_positive (_Float128 x, int *exp2_adj)
{
/* Adjust into the range for using exp (lgamma). */
*exp2_adj = 0;
- _Float128 n = __ceill (x - L(1.5));
+ _Float128 n = ceill (x - L(1.5));
_Float128 x_adj = x - n;
_Float128 eps;
_Float128 prod = __gamma_productl (x_adj, 0, n, &eps);
@@ -85,7 +86,7 @@ gammal_positive (_Float128 x, int *exp2_adj)
{
/* Adjust into the range for applying Stirling's
approximation. */
- _Float128 n = __ceill (24 - x);
+ _Float128 n = ceill (24 - x);
x_adj = x + n;
x_eps = (x - (x_adj - n));
prod = __gamma_productl (x_adj - n, x_eps, n, &eps);
@@ -95,7 +96,7 @@ gammal_positive (_Float128 x, int *exp2_adj)
starting by computing pow (X_ADJ, X_ADJ) with a power of 2
factored out. */
_Float128 exp_adj = -eps;
- _Float128 x_adj_int = __roundl (x_adj);
+ _Float128 x_adj_int = roundl (x_adj);
_Float128 x_adj_frac = x_adj - x_adj_int;
int x_adj_log2;
_Float128 x_adj_mant = __frexpl (x_adj, &x_adj_log2);
@@ -135,7 +136,7 @@ __ieee754_gammal_r (_Float128 x, int *signgamp)
*signgamp = 0;
return 1.0 / x;
}
- if (hx < 0 && (uint64_t) hx < 0xffff000000000000ULL && __rintl (x) == x)
+ if (hx < 0 && (uint64_t) hx < 0xffff000000000000ULL && rintl (x) == x)
{
/* Return value for integer x < 0 is NaN with invalid exception. */
*signgamp = 0;
@@ -178,8 +179,8 @@ __ieee754_gammal_r (_Float128 x, int *signgamp)
}
else
{
- _Float128 tx = __truncl (x);
- *signgamp = (tx == 2 * __truncl (tx / 2)) ? -1 : 1;
+ _Float128 tx = truncl (x);
+ *signgamp = (tx == 2 * truncl (tx / 2)) ? -1 : 1;
if (x <= -1775)
/* Underflow. */
ret = LDBL_MIN * LDBL_MIN;
@@ -202,16 +203,16 @@ __ieee754_gammal_r (_Float128 x, int *signgamp)
if (isinf (ret) && x != 0)
{
if (*signgamp < 0)
- return -(-__copysignl (LDBL_MAX, ret) * LDBL_MAX);
+ return -(-copysignl (LDBL_MAX, ret) * LDBL_MAX);
else
- return __copysignl (LDBL_MAX, ret) * LDBL_MAX;
+ return copysignl (LDBL_MAX, ret) * LDBL_MAX;
}
else if (ret == 0)
{
if (*signgamp < 0)
- return -(-__copysignl (LDBL_MIN, ret) * LDBL_MIN);
+ return -(-copysignl (LDBL_MIN, ret) * LDBL_MIN);
else
- return __copysignl (LDBL_MIN, ret) * LDBL_MIN;
+ return copysignl (LDBL_MIN, ret) * LDBL_MIN;
}
else
return ret;
diff --git a/sysdeps/ieee754/ldbl-128/e_j0l.c b/sysdeps/ieee754/ldbl-128/e_j0l.c
index 5c699956b6..631d67b92c 100644
--- a/sysdeps/ieee754/ldbl-128/e_j0l.c
+++ b/sysdeps/ieee754/ldbl-128/e_j0l.c
@@ -89,7 +89,7 @@
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/ieee754/ldbl-128/e_j1l.c b/sysdeps/ieee754/ldbl-128/e_j1l.c
index e6f46f52e9..174f35df07 100644
--- a/sysdeps/ieee754/ldbl-128/e_j1l.c
+++ b/sysdeps/ieee754/ldbl-128/e_j1l.c
@@ -93,11 +93,12 @@
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <math.h>
#include <math_private.h>
+#include <fenv_private.h>
#include <math-underflow.h>
#include <float.h>
diff --git a/sysdeps/ieee754/ldbl-128/e_jnl.c b/sysdeps/ieee754/ldbl-128/e_jnl.c
index 7739eec291..9066e934f1 100644
--- a/sysdeps/ieee754/ldbl-128/e_jnl.c
+++ b/sysdeps/ieee754/ldbl-128/e_jnl.c
@@ -28,7 +28,7 @@
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* __ieee754_jn(n, x), __ieee754_yn(n, x)
@@ -60,6 +60,7 @@
#include <float.h>
#include <math.h>
#include <math_private.h>
+#include <fenv_private.h>
#include <math-underflow.h>
static const _Float128
@@ -149,6 +150,8 @@ __ieee754_jnl (int n, _Float128 x)
case 3:
temp = c - s;
break;
+ default:
+ __builtin_unreachable ();
}
b = invsqrtpi * temp / sqrtl (x);
}
@@ -298,7 +301,7 @@ __ieee754_jnl (int n, _Float128 x)
}
if (ret == 0)
{
- ret = __copysignl (LDBL_MIN, ret) * LDBL_MIN;
+ ret = copysignl (LDBL_MIN, ret) * LDBL_MIN;
__set_errno (ERANGE);
}
else
@@ -385,6 +388,8 @@ __ieee754_ynl (int n, _Float128 x)
case 3:
temp = s + c;
break;
+ default:
+ __builtin_unreachable ();
}
b = invsqrtpi * temp / sqrtl (x);
}
@@ -414,7 +419,7 @@ __ieee754_ynl (int n, _Float128 x)
}
out:
if (isinf (ret))
- ret = __copysignl (LDBL_MAX, ret) * LDBL_MAX;
+ ret = copysignl (LDBL_MAX, ret) * LDBL_MAX;
return ret;
}
strong_alias (__ieee754_ynl, __ynl_finite)
diff --git a/sysdeps/ieee754/ldbl-128/e_lgammal_r.c b/sysdeps/ieee754/ldbl-128/e_lgammal_r.c
index 5c50e4616a..f7359ce62e 100644
--- a/sysdeps/ieee754/ldbl-128/e_lgammal_r.c
+++ b/sysdeps/ieee754/ldbl-128/e_lgammal_r.c
@@ -66,7 +66,7 @@
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
@@ -776,11 +776,11 @@ __ieee754_lgammal_r (_Float128 x, int *signgamp)
if (x < -2 && x > -50)
return __lgamma_negl (x, signgamp);
q = -x;
- p = __floorl (q);
+ p = floorl (q);
if (p == q)
return (one / fabsl (p - p));
_Float128 halfp = p * L(0.5);
- if (halfp == __floorl (halfp))
+ if (halfp == floorl (halfp))
*signgamp = -1;
else
*signgamp = 1;
@@ -801,7 +801,7 @@ __ieee754_lgammal_r (_Float128 x, int *signgamp)
if (x < L(13.5))
{
p = 0;
- nx = __floorl (x + L(0.5));
+ nx = floorl (x + L(0.5));
nn = nx;
switch (nn)
{
diff --git a/sysdeps/ieee754/ldbl-128/e_log10l.c b/sysdeps/ieee754/ldbl-128/e_log10l.c
index e8f33984f2..7123c6f69a 100644
--- a/sysdeps/ieee754/ldbl-128/e_log10l.c
+++ b/sysdeps/ieee754/ldbl-128/e_log10l.c
@@ -57,7 +57,7 @@
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, see <http://www.gnu.org/licenses/>.
+ License along with this library; if not, see <https://www.gnu.org/licenses/>.
*/
#include <math.h>
diff --git a/sysdeps/ieee754/ldbl-128/e_log2l.c b/sysdeps/ieee754/ldbl-128/e_log2l.c
index 06bf04f5e3..b82cd80bbc 100644
--- a/sysdeps/ieee754/ldbl-128/e_log2l.c
+++ b/sysdeps/ieee754/ldbl-128/e_log2l.c
@@ -56,7 +56,7 @@
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, see <http://www.gnu.org/licenses/>.
+ License along with this library; if not, see <https://www.gnu.org/licenses/>.
*/
#include <math.h>
diff --git a/sysdeps/ieee754/ldbl-128/e_logl.c b/sysdeps/ieee754/ldbl-128/e_logl.c
index 8672047e43..be1ebe28b9 100644
--- a/sysdeps/ieee754/ldbl-128/e_logl.c
+++ b/sysdeps/ieee754/ldbl-128/e_logl.c
@@ -56,7 +56,7 @@
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/ieee754/ldbl-128/e_powl.c b/sysdeps/ieee754/ldbl-128/e_powl.c
index dc748c3a0b..967a730500 100644
--- a/sysdeps/ieee754/ldbl-128/e_powl.c
+++ b/sysdeps/ieee754/ldbl-128/e_powl.c
@@ -28,7 +28,7 @@
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* __ieee754_powl(x,y) return x**y
*
@@ -198,10 +198,10 @@ __ieee754_powl (_Float128 x, _Float128 y)
yisint = 2; /* even integer y */
else if (iy >= 0x3fff0000) /* 1.0 */
{
- if (__floorl (y) == y)
+ if (floorl (y) == y)
{
z = 0.5 * y;
- if (__floorl (z) == z)
+ if (floorl (z) == z)
yisint = 2;
else
yisint = 1;
@@ -413,7 +413,7 @@ __ieee754_powl (_Float128 x, _Float128 y)
n = 0;
if (i > 0x3ffe0000)
{ /* if |z| > 0.5, set n = [z+0.5] */
- n = __floorl (z + L(0.5));
+ n = floorl (z + L(0.5));
t = n;
p_h -= t;
}
diff --git a/sysdeps/ieee754/ldbl-128/e_rem_pio2l.c b/sysdeps/ieee754/ldbl-128/e_rem_pio2l.c
index d226d4218d..764a49f96c 100644
--- a/sysdeps/ieee754/ldbl-128/e_rem_pio2l.c
+++ b/sysdeps/ieee754/ldbl-128/e_rem_pio2l.c
@@ -1,5 +1,5 @@
/* Quad-precision floating point argument reduction.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jj@ultra.linux.cz>
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/ieee754/ldbl-128/e_sinhl.c b/sysdeps/ieee754/ldbl-128/e_sinhl.c
index 39e7cf3084..9bbafa8c7a 100644
--- a/sysdeps/ieee754/ldbl-128/e_sinhl.c
+++ b/sysdeps/ieee754/ldbl-128/e_sinhl.c
@@ -33,7 +33,7 @@
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* __ieee754_sinhl(x)
* Method :
diff --git a/sysdeps/ieee754/ldbl-128/gamma_productl.c b/sysdeps/ieee754/ldbl-128/gamma_productl.c
index 2c1a03a915..69986b8f81 100644
--- a/sysdeps/ieee754/ldbl-128/gamma_productl.c
+++ b/sysdeps/ieee754/ldbl-128/gamma_productl.c
@@ -1,5 +1,5 @@
/* Compute a product of X, X+1, ..., with an error estimate.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,10 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
+#include <fenv_private.h>
#include <mul_splitl.h>
/* Compute the product of X + X_EPS, X + X_EPS + 1, ..., X + X_EPS + N
diff --git a/sysdeps/ieee754/ldbl-128/ieee754.h b/sysdeps/ieee754/ldbl-128/ieee754.h
index d7173b6a8b..47f11d8a6b 100644
--- a/sysdeps/ieee754/ldbl-128/ieee754.h
+++ b/sysdeps/ieee754/ldbl-128/ieee754.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -13,14 +13,14 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _IEEE754_H
-
#define _IEEE754_H 1
+
#include <features.h>
-#include <endian.h>
+#include <bits/endian.h>
__BEGIN_DECLS
diff --git a/sysdeps/ieee754/ldbl-128/k_cosl.c b/sysdeps/ieee754/ldbl-128/k_cosl.c
index 866af57921..0463347acc 100644
--- a/sysdeps/ieee754/ldbl-128/k_cosl.c
+++ b/sysdeps/ieee754/ldbl-128/k_cosl.c
@@ -1,5 +1,5 @@
/* Quad-precision floating point cosine on <-pi/4,pi/4>.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jj@ultra.linux.cz>
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/ieee754/ldbl-128/k_sincosl.c b/sysdeps/ieee754/ldbl-128/k_sincosl.c
index 6eb33ae375..0cc1182521 100644
--- a/sysdeps/ieee754/ldbl-128/k_sincosl.c
+++ b/sysdeps/ieee754/ldbl-128/k_sincosl.c
@@ -1,5 +1,5 @@
/* Quad-precision floating point sine and cosine on <-pi/4,pi/4>.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jj@ultra.linux.cz>
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <float.h>
#include <math.h>
diff --git a/sysdeps/ieee754/ldbl-128/k_sinl.c b/sysdeps/ieee754/ldbl-128/k_sinl.c
index 9c19fb1bf2..97e38122fe 100644
--- a/sysdeps/ieee754/ldbl-128/k_sinl.c
+++ b/sysdeps/ieee754/ldbl-128/k_sinl.c
@@ -1,5 +1,5 @@
/* Quad-precision floating point sine on <-pi/4,pi/4>.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jj@ultra.linux.cz>
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <float.h>
#include <math.h>
diff --git a/sysdeps/ieee754/ldbl-128/k_tanl.c b/sysdeps/ieee754/ldbl-128/k_tanl.c
index 8da794d80c..8e93626a89 100644
--- a/sysdeps/ieee754/ldbl-128/k_tanl.c
+++ b/sysdeps/ieee754/ldbl-128/k_tanl.c
@@ -29,7 +29,7 @@
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* __kernel_tanl( x, y, k )
* kernel tan function on [-pi/4, pi/4], pi/4 ~ 0.7854
diff --git a/sysdeps/ieee754/ldbl-128/ldbl2mpn.c b/sysdeps/ieee754/ldbl-128/ldbl2mpn.c
index 0c0d43155d..1b4d032a5f 100644
--- a/sysdeps/ieee754/ldbl-128/ldbl2mpn.c
+++ b/sysdeps/ieee754/ldbl-128/ldbl2mpn.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "gmp.h"
#include "gmp-impl.h"
diff --git a/sysdeps/ieee754/ldbl-128/lgamma_negl.c b/sysdeps/ieee754/ldbl-128/lgamma_negl.c
index f5043719ad..70fb8017fe 100644
--- a/sysdeps/ieee754/ldbl-128/lgamma_negl.c
+++ b/sysdeps/ieee754/ldbl-128/lgamma_negl.c
@@ -1,5 +1,5 @@
/* lgammal expanding around zeros.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,11 +14,12 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <float.h>
#include <math.h>
#include <math_private.h>
+#include <fenv_private.h>
static const _Float128 lgamma_zeros[][2] =
{
@@ -448,7 +449,7 @@ __lgamma_negl (_Float128 x, int *signgamp)
{
/* Determine the half-integer region X lies in, handle exact
integers and determine the sign of the result. */
- int i = __floorl (-2 * x);
+ int i = floorl (-2 * x);
if ((i & 1) == 0 && i == -2 * x)
return L(1.0) / L(0.0);
_Float128 xn = ((i & 1) == 0 ? -i / 2 : (-i - 1) / 2);
@@ -465,7 +466,7 @@ __lgamma_negl (_Float128 x, int *signgamp)
approximations to an adjusted version of the gamma function. */
if (i < 2)
{
- int j = __floorl (-8 * x) - 16;
+ int j = floorl (-8 * x) - 16;
_Float128 xm = (-33 - 2 * j) * L(0.0625);
_Float128 x_adj = x - xm;
size_t deg = poly_deg[j];
diff --git a/sysdeps/ieee754/ldbl-128/lgamma_productl.c b/sysdeps/ieee754/ldbl-128/lgamma_productl.c
index fa69603aee..0615084cbd 100644
--- a/sysdeps/ieee754/ldbl-128/lgamma_productl.c
+++ b/sysdeps/ieee754/ldbl-128/lgamma_productl.c
@@ -1,5 +1,5 @@
/* Compute a product of 1 + (T/X), 1 + (T/(X+1)), ....
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/ieee754/ldbl-128/math-nan-payload-ldouble.h b/sysdeps/ieee754/ldbl-128/math-nan-payload-ldouble.h
index e2f092d3e1..1b1173f913 100644
--- a/sysdeps/ieee754/ldbl-128/math-nan-payload-ldouble.h
+++ b/sysdeps/ieee754/ldbl-128/math-nan-payload-ldouble.h
@@ -1,5 +1,5 @@
/* NaN payload handling for ldbl-128.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define SET_NAN_PAYLOAD(flt, mant) \
do \
diff --git a/sysdeps/ieee754/ldbl-128/math_ldbl.h b/sysdeps/ieee754/ldbl-128/math_ldbl.h
index db2bc5e0c3..40d759f4c8 100644
--- a/sysdeps/ieee754/ldbl-128/math_ldbl.h
+++ b/sysdeps/ieee754/ldbl-128/math_ldbl.h
@@ -1,5 +1,5 @@
/* Manipulation of the bit representation of 'long double' quantities.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MATH_LDBL_H_
#define _MATH_LDBL_H_ 1
diff --git a/sysdeps/ieee754/ldbl-128/mpn2ldbl.c b/sysdeps/ieee754/ldbl-128/mpn2ldbl.c
index 9fb9f5c3ad..018f15205a 100644
--- a/sysdeps/ieee754/ldbl-128/mpn2ldbl.c
+++ b/sysdeps/ieee754/ldbl-128/mpn2ldbl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "gmp.h"
#include "gmp-impl.h"
diff --git a/sysdeps/ieee754/ldbl-128/printf_fphex.c b/sysdeps/ieee754/ldbl-128/printf_fphex.c
index ec86afb6b1..e5c314e26c 100644
--- a/sysdeps/ieee754/ldbl-128/printf_fphex.c
+++ b/sysdeps/ieee754/ldbl-128/printf_fphex.c
@@ -1,6 +1,6 @@
/* Print floating point number in hexadecimal notation according to
ISO C99.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ldbl-128/printf_fphex_macros.h>
#define PRINT_FPHEX_LONG_DOUBLE \
diff --git a/sysdeps/ieee754/ldbl-128/printf_fphex_macros.h b/sysdeps/ieee754/ldbl-128/printf_fphex_macros.h
index 4d3ba72004..5735c7793e 100644
--- a/sysdeps/ieee754/ldbl-128/printf_fphex_macros.h
+++ b/sysdeps/ieee754/ldbl-128/printf_fphex_macros.h
@@ -1,5 +1,5 @@
/* Macro to print floating point numbers in hexadecimal notation.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define PRINT_FPHEX(FLOAT, VAR, IEEE854_UNION, IEEE854_BIAS) \
do { \
diff --git a/sysdeps/ieee754/ldbl-128/s_atanl.c b/sysdeps/ieee754/ldbl-128/s_atanl.c
index 022ccf4c45..90b884d562 100644
--- a/sysdeps/ieee754/ldbl-128/s_atanl.c
+++ b/sysdeps/ieee754/ldbl-128/s_atanl.c
@@ -56,7 +56,7 @@
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <float.h>
diff --git a/sysdeps/ieee754/ldbl-128/s_cbrtl.c b/sysdeps/ieee754/ldbl-128/s_cbrtl.c
index 526e850378..6f45ad4259 100644
--- a/sysdeps/ieee754/ldbl-128/s_cbrtl.c
+++ b/sysdeps/ieee754/ldbl-128/s_cbrtl.c
@@ -51,7 +51,7 @@ Adapted for glibc October, 2001.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/ieee754/ldbl-128/s_ceill.c b/sysdeps/ieee754/ldbl-128/s_ceill.c
index e6aba5f2af..c5d98e1e37 100644
--- a/sysdeps/ieee754/ldbl-128/s_ceill.c
+++ b/sysdeps/ieee754/ldbl-128/s_ceill.c
@@ -13,7 +13,7 @@
* ====================================================
*/
-#if defined(LIBM_SCCS) && !defined(lint)
+#if defined (LIBM_SCCS) && ! defined (lint)
static char rcsid[] = "$NetBSD: $";
#endif
@@ -24,44 +24,78 @@ static char rcsid[] = "$NetBSD: $";
* Bit twiddling.
*/
+#define NO_MATH_REDIRECT
#include <math.h>
#include <math_private.h>
#include <libm-alias-ldouble.h>
+#include <math-use-builtins.h>
-_Float128 __ceill(_Float128 x)
+_Float128
+__ceill (_Float128 x)
{
- int64_t i0,i1,j0;
- uint64_t i,j;
- GET_LDOUBLE_WORDS64(i0,i1,x);
- j0 = ((i0>>48)&0x7fff)-0x3fff;
- if(j0<48) {
- if(j0<0) {
- /* return 0*sign(x) if |x|<1 */
- if(i0<0) {i0=0x8000000000000000ULL;i1=0;}
- else if((i0|i1)!=0) { i0=0x3fff000000000000ULL;i1=0;}
- } else {
- i = (0x0000ffffffffffffULL)>>j0;
- if(((i0&i)|i1)==0) return x; /* x is integral */
- if(i0>0) i0 += (0x0001000000000000LL)>>j0;
- i0 &= (~i); i1=0;
+#if USE_CEILL_BUILTIN
+ return __builtin_ceill (x);
+#else
+ /* Use generic implementation. */
+ int64_t i0, i1, j0;
+ uint64_t i, j;
+ GET_LDOUBLE_WORDS64 (i0, i1, x);
+ j0 = ((i0 >> 48) & 0x7fff) - 0x3fff;
+ if (j0 < 48)
+ {
+ if (j0 < 0)
+ {
+ /* return 0 * sign (x) if |x| < 1 */
+ if (i0 < 0)
+ {
+ i0 = 0x8000000000000000ULL;
+ i1 = 0;
}
- } else if (j0>111) {
- if(j0==0x4000) return x+x; /* inf or NaN */
- else return x; /* x is integral */
- } else {
- i = -1ULL>>(j0-48);
- if((i1&i)==0) return x; /* x is integral */
- if(i0>0) {
- if(j0==48) i0+=1;
- else {
- j = i1+(1LL<<(112-j0));
- if(j<i1) i0 +=1 ; /* got a carry */
- i1=j;
- }
+ else if ((i0 | i1) != 0)
+ {
+ i0 = 0x3fff000000000000ULL;
+ i1 = 0;
}
- i1 &= (~i);
}
- SET_LDOUBLE_WORDS64(x,i0,i1);
- return x;
+ else
+ {
+ i = (0x0000ffffffffffffULL) >> j0;
+ if (((i0 & i) | i1) == 0)
+ return x; /* x is integral */
+ if (i0 > 0)
+ i0 += (0x0001000000000000LL) >> j0;
+ i0 &= (~i);
+ i1 = 0;
+ }
+ }
+ else if (j0 > 111)
+ {
+ if (j0 == 0x4000)
+ return x + x; /* inf or NaN */
+ else
+ return x; /* x is integral */
+ }
+ else
+ {
+ i = -1ULL >> (j0 - 48);
+ if ((i1 & i) == 0)
+ return x; /* x is integral */
+ if (i0 > 0)
+ {
+ if (j0 == 48)
+ i0 += 1;
+ else
+ {
+ j = i1 + (1LL << (112 - j0));
+ if (j < i1)
+ i0 += 1; /* got a carry */
+ i1 = j;
+ }
+ }
+ i1 &= (~i);
+ }
+ SET_LDOUBLE_WORDS64 (x, i0, i1);
+ return x;
+#endif /* ! USE_CEILL_BUILTIN */
}
libm_alias_ldouble (__ceil, ceil)
diff --git a/sysdeps/ieee754/ldbl-128/s_copysignl.c b/sysdeps/ieee754/ldbl-128/s_copysignl.c
index d23e0f72ea..a8b0639d2e 100644
--- a/sysdeps/ieee754/ldbl-128/s_copysignl.c
+++ b/sysdeps/ieee754/ldbl-128/s_copysignl.c
@@ -13,7 +13,7 @@
* ====================================================
*/
-#if defined(LIBM_SCCS) && !defined(lint)
+#if defined (LIBM_SCCS) && ! defined (lint)
static char rcsid[] = "$NetBSD: $";
#endif
@@ -23,17 +23,25 @@ static char rcsid[] = "$NetBSD: $";
* with the sign bit of y.
*/
+#define NO_MATH_REDIRECT
#include <math.h>
#include <math_private.h>
#include <libm-alias-ldouble.h>
+#include <math-use-builtins.h>
-_Float128 __copysignl(_Float128 x, _Float128 y)
+_Float128
+__copysignl (_Float128 x, _Float128 y)
{
- uint64_t hx,hy;
- GET_LDOUBLE_MSW64(hx,x);
- GET_LDOUBLE_MSW64(hy,y);
- SET_LDOUBLE_MSW64(x,(hx&0x7fffffffffffffffULL)
- |(hy&0x8000000000000000ULL));
- return x;
+#if USE_COPYSIGNL_BUILTIN
+ return __builtin_copysignl (x, y);
+#else
+ /* Use generic implementation. */
+ uint64_t hx, hy;
+ GET_LDOUBLE_MSW64 (hx, x);
+ GET_LDOUBLE_MSW64 (hy, y);
+ SET_LDOUBLE_MSW64 (x, (hx & 0x7fffffffffffffffULL)
+ | (hy & 0x8000000000000000ULL));
+ return x;
+#endif /* ! USE_COPYSIGNL_BUILTIN */
}
libm_alias_ldouble (__copysign, copysign)
diff --git a/sysdeps/ieee754/ldbl-128/s_daddl.c b/sysdeps/ieee754/ldbl-128/s_daddl.c
index 81e8e2d3e1..c47eba014b 100644
--- a/sysdeps/ieee754/ldbl-128/s_daddl.c
+++ b/sysdeps/ieee754/ldbl-128/s_daddl.c
@@ -1,5 +1,5 @@
/* Add long double (ldbl-128) values, narrowing the result to double.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define f32xaddf64x __hide_f32xaddf64x
#define f32xaddf128 __hide_f32xaddf128
diff --git a/sysdeps/ieee754/ldbl-128/s_ddivl.c b/sysdeps/ieee754/ldbl-128/s_ddivl.c
index c76df92bfb..fcb01b4500 100644
--- a/sysdeps/ieee754/ldbl-128/s_ddivl.c
+++ b/sysdeps/ieee754/ldbl-128/s_ddivl.c
@@ -1,5 +1,5 @@
/* Divide long double (ldbl-128) values, narrowing the result to double.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define f32xdivf64x __hide_f32xdivf64x
#define f32xdivf128 __hide_f32xdivf128
diff --git a/sysdeps/ieee754/ldbl-128/s_dmull.c b/sysdeps/ieee754/ldbl-128/s_dmull.c
index d32c4284e0..a259ea9441 100644
--- a/sysdeps/ieee754/ldbl-128/s_dmull.c
+++ b/sysdeps/ieee754/ldbl-128/s_dmull.c
@@ -1,5 +1,5 @@
/* Multiply long double (ldbl-128) values, narrowing the result to double.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define f32xmulf64x __hide_f32xmulf64x
#define f32xmulf128 __hide_f32xmulf128
diff --git a/sysdeps/ieee754/ldbl-128/s_dsubl.c b/sysdeps/ieee754/ldbl-128/s_dsubl.c
index 46d0f95b4c..c9ae21e71b 100644
--- a/sysdeps/ieee754/ldbl-128/s_dsubl.c
+++ b/sysdeps/ieee754/ldbl-128/s_dsubl.c
@@ -1,5 +1,5 @@
/* Subtract long double (ldbl-128) values, narrowing the result to double.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define f32xsubf64x __hide_f32xsubf64x
#define f32xsubf128 __hide_f32xsubf128
diff --git a/sysdeps/ieee754/ldbl-128/s_erfl.c b/sysdeps/ieee754/ldbl-128/s_erfl.c
index c0abfe2926..1cbedc249d 100644
--- a/sysdeps/ieee754/ldbl-128/s_erfl.c
+++ b/sysdeps/ieee754/ldbl-128/s_erfl.c
@@ -28,7 +28,7 @@
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* double erf(double x)
* double erfc(double x)
diff --git a/sysdeps/ieee754/ldbl-128/s_expm1l.c b/sysdeps/ieee754/ldbl-128/s_expm1l.c
index 66881af01a..d6d4c1b912 100644
--- a/sysdeps/ieee754/ldbl-128/s_expm1l.c
+++ b/sysdeps/ieee754/ldbl-128/s_expm1l.c
@@ -49,7 +49,7 @@
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
@@ -136,7 +136,7 @@ __expm1l (_Float128 x)
/* Express x = ln 2 (k + remainder), remainder not exceeding 1/2. */
xx = C1 + C2; /* ln 2. */
- px = __floorl (0.5 + x / xx);
+ px = floorl (0.5 + x / xx);
k = px;
/* remainder times ln 2 */
x -= px * C1;
diff --git a/sysdeps/ieee754/ldbl-128/s_f64xaddf128.c b/sysdeps/ieee754/ldbl-128/s_f64xaddf128.c
index 545c7b93fd..24d214b452 100644
--- a/sysdeps/ieee754/ldbl-128/s_f64xaddf128.c
+++ b/sysdeps/ieee754/ldbl-128/s_f64xaddf128.c
@@ -1,5 +1,5 @@
/* Add _Float128 values, converting the result to _Float64x.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math-narrow.h>
diff --git a/sysdeps/ieee754/ldbl-128/s_f64xdivf128.c b/sysdeps/ieee754/ldbl-128/s_f64xdivf128.c
index 64356bbdd7..519459a8cc 100644
--- a/sysdeps/ieee754/ldbl-128/s_f64xdivf128.c
+++ b/sysdeps/ieee754/ldbl-128/s_f64xdivf128.c
@@ -1,5 +1,5 @@
/* Divide _Float128 values, converting the result to _Float64x.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math-narrow.h>
diff --git a/sysdeps/ieee754/ldbl-128/s_f64xmulf128.c b/sysdeps/ieee754/ldbl-128/s_f64xmulf128.c
index ed88eabe40..11b1d3aea2 100644
--- a/sysdeps/ieee754/ldbl-128/s_f64xmulf128.c
+++ b/sysdeps/ieee754/ldbl-128/s_f64xmulf128.c
@@ -1,5 +1,5 @@
/* Multiply _Float128 values, converting the result to _Float64x.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math-narrow.h>
diff --git a/sysdeps/ieee754/ldbl-128/s_f64xsubf128.c b/sysdeps/ieee754/ldbl-128/s_f64xsubf128.c
index c9a63d9e84..5534928943 100644
--- a/sysdeps/ieee754/ldbl-128/s_f64xsubf128.c
+++ b/sysdeps/ieee754/ldbl-128/s_f64xsubf128.c
@@ -1,5 +1,5 @@
/* Subtract _Float128 values, converting the result to _Float64x.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math-narrow.h>
diff --git a/sysdeps/ieee754/ldbl-128/s_faddl.c b/sysdeps/ieee754/ldbl-128/s_faddl.c
index edbaa2103b..b2579c4129 100644
--- a/sysdeps/ieee754/ldbl-128/s_faddl.c
+++ b/sysdeps/ieee754/ldbl-128/s_faddl.c
@@ -1,5 +1,5 @@
/* Add long double (ldbl-128) values, narrowing the result to float.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define f32addf64x __hide_f32addf64x
#define f32addf128 __hide_f32addf128
diff --git a/sysdeps/ieee754/ldbl-128/s_fdivl.c b/sysdeps/ieee754/ldbl-128/s_fdivl.c
index b00fdb4eaa..f0b644ba1a 100644
--- a/sysdeps/ieee754/ldbl-128/s_fdivl.c
+++ b/sysdeps/ieee754/ldbl-128/s_fdivl.c
@@ -1,5 +1,5 @@
/* Divide long double (ldbl-128) values, narrowing the result to float.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define f32divf64x __hide_f32divf64x
#define f32divf128 __hide_f32divf128
diff --git a/sysdeps/ieee754/ldbl-128/s_floorl.c b/sysdeps/ieee754/ldbl-128/s_floorl.c
index f9c5e014f9..0475120d7e 100644
--- a/sysdeps/ieee754/ldbl-128/s_floorl.c
+++ b/sysdeps/ieee754/ldbl-128/s_floorl.c
@@ -24,45 +24,77 @@ static char rcsid[] = "$NetBSD: $";
* Bit twiddling.
*/
+#define NO_MATH_REDIRECT
#include <math.h>
#include <math_private.h>
#include <libm-alias-ldouble.h>
+#include <math-use-builtins.h>
-_Float128 __floorl(_Float128 x)
+_Float128
+__floorl (_Float128 x)
{
- int64_t i0,i1,j0;
- uint64_t i,j;
- GET_LDOUBLE_WORDS64(i0,i1,x);
- j0 = ((i0>>48)&0x7fff)-0x3fff;
- if(j0<48) {
- if(j0<0) {
- /* return 0*sign(x) if |x|<1 */
- if(i0>=0) {i0=i1=0;}
- else if(((i0&0x7fffffffffffffffLL)|i1)!=0)
- { i0=0xbfff000000000000ULL;i1=0;}
- } else {
- i = (0x0000ffffffffffffULL)>>j0;
- if(((i0&i)|i1)==0) return x; /* x is integral */
- if(i0<0) i0 += (0x0001000000000000LL)>>j0;
- i0 &= (~i); i1=0;
+#if USE_FLOORL_BUILTIN
+ return __builtin_floorl (x);
+#else
+ /* Use generic implementation. */
+ int64_t i0, i1, j0;
+ uint64_t i, j;
+ GET_LDOUBLE_WORDS64 (i0, i1, x);
+ j0 = ((i0 >> 48) & 0x7fff) - 0x3fff;
+ if (j0 < 48)
+ {
+ if (j0 < 0)
+ {
+ /* return 0 * sign (x) if |x| < 1 */
+ if (i0 >= 0)
+ {
+ i0 = i1 = 0;
}
- } else if (j0>111) {
- if(j0==0x4000) return x+x; /* inf or NaN */
- else return x; /* x is integral */
- } else {
- i = -1ULL>>(j0-48);
- if((i1&i)==0) return x; /* x is integral */
- if(i0<0) {
- if(j0==48) i0+=1;
- else {
- j = i1+(1LL<<(112-j0));
- if(j<i1) i0 +=1 ; /* got a carry */
- i1=j;
- }
+ else if (((i0 & 0x7fffffffffffffffLL) | i1) != 0)
+ {
+ i0 = 0xbfff000000000000ULL;
+ i1 = 0;
}
- i1 &= (~i);
}
- SET_LDOUBLE_WORDS64(x,i0,i1);
- return x;
+ else
+ {
+ i = (0x0000ffffffffffffULL) >> j0;
+ if (((i0 & i) | i1) == 0)
+ return x; /* x is integral */
+ if (i0 < 0)
+ i0 += (0x0001000000000000LL) >> j0;
+ i0 &= (~i);
+ i1 = 0;
+ }
+ }
+ else if (j0 > 111)
+ {
+ if (j0 == 0x4000)
+ return x + x; /* inf or NaN */
+ else
+ return x; /* x is integral */
+ }
+ else
+ {
+ i = -1ULL >> (j0 - 48);
+ if ((i1 & i) == 0)
+ return x; /* x is integral */
+ if (i0 < 0)
+ {
+ if (j0 == 48)
+ i0 += 1;
+ else
+ {
+ j = i1 + (1LL << (112 - j0));
+ if (j < i1)
+ i0 += 1 ; /* got a carry */
+ i1 = j;
+ }
+ }
+ i1 &= (~i);
+ }
+ SET_LDOUBLE_WORDS64 (x, i0, i1);
+ return x;
+#endif /* ! USE_FLOORL_BUILTIN */
}
libm_alias_ldouble (__floor, floor)
diff --git a/sysdeps/ieee754/ldbl-128/s_fma.c b/sysdeps/ieee754/ldbl-128/s_fma.c
index 19620dca5c..abd969ddea 100644
--- a/sysdeps/ieee754/ldbl-128/s_fma.c
+++ b/sysdeps/ieee754/ldbl-128/s_fma.c
@@ -1,5 +1,5 @@
/* Compute x * y + z as ternary operation.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 2010.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <fenv.h>
diff --git a/sysdeps/ieee754/ldbl-128/s_fmal.c b/sysdeps/ieee754/ldbl-128/s_fmal.c
index 4eba9253df..23f1f721fd 100644
--- a/sysdeps/ieee754/ldbl-128/s_fmal.c
+++ b/sysdeps/ieee754/ldbl-128/s_fmal.c
@@ -1,5 +1,5 @@
/* Compute x * y + z as ternary operation.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 2010.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <float.h>
#include <math.h>
diff --git a/sysdeps/ieee754/ldbl-128/s_fmull.c b/sysdeps/ieee754/ldbl-128/s_fmull.c
index dd399f9590..c34f3c9c83 100644
--- a/sysdeps/ieee754/ldbl-128/s_fmull.c
+++ b/sysdeps/ieee754/ldbl-128/s_fmull.c
@@ -1,5 +1,5 @@
/* Multiply long double (ldbl-128) values, narrowing the result to float.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define f32mulf64x __hide_f32mulf64x
#define f32mulf128 __hide_f32mulf128
diff --git a/sysdeps/ieee754/ldbl-128/s_fpclassifyl.c b/sysdeps/ieee754/ldbl-128/s_fpclassifyl.c
index 6deaa5cc45..fa6b050162 100644
--- a/sysdeps/ieee754/ldbl-128/s_fpclassifyl.c
+++ b/sysdeps/ieee754/ldbl-128/s_fpclassifyl.c
@@ -1,5 +1,5 @@
/* Return classification value corresponding to argument.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997 and
Jakub Jelinek <jj@ultra.linux.cz>, 1999.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/ieee754/ldbl-128/s_fromfpl_main.c b/sysdeps/ieee754/ldbl-128/s_fromfpl_main.c
index 5b9c1a84b2..b98e993151 100644
--- a/sysdeps/ieee754/ldbl-128/s_fromfpl_main.c
+++ b/sysdeps/ieee754/ldbl-128/s_fromfpl_main.c
@@ -1,5 +1,5 @@
/* Round to integer type. ldbl-128 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fenv.h>
diff --git a/sysdeps/ieee754/ldbl-128/s_fsubl.c b/sysdeps/ieee754/ldbl-128/s_fsubl.c
index 6a5e6b3173..26c2c8b37f 100644
--- a/sysdeps/ieee754/ldbl-128/s_fsubl.c
+++ b/sysdeps/ieee754/ldbl-128/s_fsubl.c
@@ -1,5 +1,5 @@
/* Subtract long double (ldbl-128) values, narrowing the result to float.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define f32subf64x __hide_f32subf64x
#define f32subf128 __hide_f32subf128
diff --git a/sysdeps/ieee754/ldbl-128/s_getpayloadl.c b/sysdeps/ieee754/ldbl-128/s_getpayloadl.c
index 3bdc429de6..6cce0d5aed 100644
--- a/sysdeps/ieee754/ldbl-128/s_getpayloadl.c
+++ b/sysdeps/ieee754/ldbl-128/s_getpayloadl.c
@@ -1,5 +1,5 @@
/* Get NaN payload. ldbl-128 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/ieee754/ldbl-128/s_issignalingl.c b/sysdeps/ieee754/ldbl-128/s_issignalingl.c
index 1893e80293..d557b97f10 100644
--- a/sysdeps/ieee754/ldbl-128/s_issignalingl.c
+++ b/sysdeps/ieee754/ldbl-128/s_issignalingl.c
@@ -1,5 +1,5 @@
/* Test for signaling NaN.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/ieee754/ldbl-128/s_llrintl.c b/sysdeps/ieee754/ldbl-128/s_llrintl.c
index ce17cf962a..5dcde66d88 100644
--- a/sysdeps/ieee754/ldbl-128/s_llrintl.c
+++ b/sysdeps/ieee754/ldbl-128/s_llrintl.c
@@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997 and
Jakub Jelinek <jj@ultra.linux.cz>, 1999.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <limits.h>
diff --git a/sysdeps/ieee754/ldbl-128/s_llroundl.c b/sysdeps/ieee754/ldbl-128/s_llroundl.c
index 1973e1bffd..96086d803d 100644
--- a/sysdeps/ieee754/ldbl-128/s_llroundl.c
+++ b/sysdeps/ieee754/ldbl-128/s_llroundl.c
@@ -1,5 +1,5 @@
/* Round long double value to long long int.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997 and
Jakub Jelinek <jj@ultra.linux.cz>, 1999.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <limits.h>
diff --git a/sysdeps/ieee754/ldbl-128/s_log1pl.c b/sysdeps/ieee754/ldbl-128/s_log1pl.c
index f3181dbc8e..16cc3383e6 100644
--- a/sysdeps/ieee754/ldbl-128/s_log1pl.c
+++ b/sysdeps/ieee754/ldbl-128/s_log1pl.c
@@ -50,7 +50,7 @@
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <float.h>
diff --git a/sysdeps/ieee754/ldbl-128/s_lrintl.c b/sysdeps/ieee754/ldbl-128/s_lrintl.c
index c1233a45dc..f65a2de686 100644
--- a/sysdeps/ieee754/ldbl-128/s_lrintl.c
+++ b/sysdeps/ieee754/ldbl-128/s_lrintl.c
@@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997 and
Jakub Jelinek <jj@ultra.linux.cz>, 1999.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <limits.h>
diff --git a/sysdeps/ieee754/ldbl-128/s_lroundl.c b/sysdeps/ieee754/ldbl-128/s_lroundl.c
index f109157d67..625ab5fc16 100644
--- a/sysdeps/ieee754/ldbl-128/s_lroundl.c
+++ b/sysdeps/ieee754/ldbl-128/s_lroundl.c
@@ -1,5 +1,5 @@
/* Round long double value to long int.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997 and
Jakub Jelinek <jj@ultra.linux.cz>, 1999.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <limits.h>
diff --git a/sysdeps/ieee754/ldbl-128/s_nearbyintl.c b/sysdeps/ieee754/ldbl-128/s_nearbyintl.c
index f044cb4334..8d26786f78 100644
--- a/sysdeps/ieee754/ldbl-128/s_nearbyintl.c
+++ b/sysdeps/ieee754/ldbl-128/s_nearbyintl.c
@@ -28,42 +28,54 @@
#include <math-barriers.h>
#include <math_private.h>
#include <libm-alias-ldouble.h>
+#include <math-use-builtins.h>
-static const _Float128
-TWO112[2]={
- L(5.19229685853482762853049632922009600E+33), /* 0x406F000000000000, 0 */
- L(-5.19229685853482762853049632922009600E+33) /* 0xC06F000000000000, 0 */
-};
-
-_Float128 __nearbyintl(_Float128 x)
+_Float128
+__nearbyintl (_Float128 x)
{
- fenv_t env;
- int64_t i0,j0,sx;
- uint64_t i1 __attribute__ ((unused));
- _Float128 w,t;
- GET_LDOUBLE_WORDS64(i0,i1,x);
- sx = (((uint64_t)i0)>>63);
- j0 = ((i0>>48)&0x7fff)-0x3fff;
- if(j0<112) {
- if(j0<0) {
- feholdexcept (&env);
- w = TWO112[sx] + math_opt_barrier (x);
- t = w-TWO112[sx];
- math_force_eval (t);
- fesetenv (&env);
- GET_LDOUBLE_MSW64(i0,t);
- SET_LDOUBLE_MSW64(t,(i0&0x7fffffffffffffffLL)|(sx<<63));
- return t;
- }
- } else {
- if(j0==0x4000) return x+x; /* inf or NaN */
- else return x; /* x is integral */
+#if USE_NEARBYINTL_BUILTIN
+ return __builtin_nearbyintl (x);
+#else
+ /* Use generic implementation. */
+ static const _Float128
+ TWO112[2] = {
+ L(5.19229685853482762853049632922009600E+33), /* 0x406F000000000000, 0 */
+ L(-5.19229685853482762853049632922009600E+33) /* 0xC06F000000000000, 0 */
+ };
+ fenv_t env;
+ int64_t i0, j0, sx;
+ uint64_t i1 __attribute__ ((unused));
+ _Float128 w, t;
+ GET_LDOUBLE_WORDS64 (i0, i1, x);
+ sx = (((uint64_t) i0) >> 63);
+ j0 = ((i0 >> 48) & 0x7fff) - 0x3fff;
+ if (j0 < 112)
+ {
+ if (j0 < 0)
+ {
+ feholdexcept (&env);
+ w = TWO112[sx] + math_opt_barrier (x);
+ t = w - TWO112[sx];
+ math_force_eval (t);
+ fesetenv (&env);
+ GET_LDOUBLE_MSW64 (i0, t);
+ SET_LDOUBLE_MSW64 (t, (i0 & 0x7fffffffffffffffLL) | (sx << 63));
+ return t;
}
- feholdexcept (&env);
- w = TWO112[sx] + math_opt_barrier (x);
- t = w-TWO112[sx];
- math_force_eval (t);
- fesetenv (&env);
- return t;
+ }
+ else
+ {
+ if (j0 == 0x4000)
+ return x + x; /* inf or NaN */
+ else
+ return x; /* x is integral */
+ }
+ feholdexcept (&env);
+ w = TWO112[sx] + math_opt_barrier (x);
+ t = w - TWO112[sx];
+ math_force_eval (t);
+ fesetenv (&env);
+ return t;
+#endif /* ! USE_NEARBYINTL_BUILTIN */
}
libm_alias_ldouble (__nearbyint, nearbyint)
diff --git a/sysdeps/ieee754/ldbl-128/s_nextupl.c b/sysdeps/ieee754/ldbl-128/s_nextupl.c
index 20827e6d09..9727376373 100644
--- a/sysdeps/ieee754/ldbl-128/s_nextupl.c
+++ b/sysdeps/ieee754/ldbl-128/s_nextupl.c
@@ -1,5 +1,5 @@
/* Return the least floating-point number greater than X.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <float.h>
#include <math.h>
diff --git a/sysdeps/ieee754/ldbl-128/s_remquol.c b/sysdeps/ieee754/ldbl-128/s_remquol.c
index 2fcea6ecdf..994818b0eb 100644
--- a/sysdeps/ieee754/ldbl-128/s_remquol.c
+++ b/sysdeps/ieee754/ldbl-128/s_remquol.c
@@ -1,5 +1,5 @@
/* Compute remainder and a congruent to the quotient.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997 and
Jakub Jelinek <jj@ultra.linux.cz>, 1999.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/ieee754/ldbl-128/s_rintl.c b/sysdeps/ieee754/ldbl-128/s_rintl.c
index 9e6637a225..16965f9582 100644
--- a/sysdeps/ieee754/ldbl-128/s_rintl.c
+++ b/sysdeps/ieee754/ldbl-128/s_rintl.c
@@ -13,7 +13,7 @@
* ====================================================
*/
-#if defined(LIBM_SCCS) && !defined(lint)
+#if defined (LIBM_SCCS) && ! defined (lint)
static char rcsid[] = "$NetBSD: $";
#endif
@@ -27,37 +27,50 @@ static char rcsid[] = "$NetBSD: $";
* Inexact flag raised if x not equal to rintl(x).
*/
+#define NO_MATH_REDIRECT
#include <math.h>
#include <math_private.h>
#include <libm-alias-ldouble.h>
+#include <math-use-builtins.h>
-static const _Float128
-TWO112[2]={
- 5.19229685853482762853049632922009600E+33L, /* 0x406F000000000000, 0 */
- -5.19229685853482762853049632922009600E+33L /* 0xC06F000000000000, 0 */
-};
-
-_Float128 __rintl(_Float128 x)
+_Float128
+__rintl (_Float128 x)
{
- int64_t i0,j0,sx;
- uint64_t i1 __attribute__ ((unused));
- _Float128 w,t;
- GET_LDOUBLE_WORDS64(i0,i1,x);
- sx = (((uint64_t)i0)>>63);
- j0 = ((i0>>48)&0x7fff)-0x3fff;
- if(j0<112) {
- if(j0<0) {
- w = TWO112[sx]+x;
- t = w-TWO112[sx];
- GET_LDOUBLE_MSW64(i0,t);
- SET_LDOUBLE_MSW64(t,(i0&0x7fffffffffffffffLL)|(sx<<63));
- return t;
- }
- } else {
- if(j0==0x4000) return x+x; /* inf or NaN */
- else return x; /* x is integral */
+#if USE_RINTL_BUILTIN
+ return __builtin_rintl (x);
+#else
+ /* Use generic implementation. */
+ static const _Float128
+ TWO112[2] = {
+ 5.19229685853482762853049632922009600E+33L, /* 0x406F000000000000, 0 */
+ -5.19229685853482762853049632922009600E+33L /* 0xC06F000000000000, 0 */
+ };
+ int64_t i0, j0, sx;
+ uint64_t i1 __attribute__ ((unused));
+ _Float128 w, t;
+ GET_LDOUBLE_WORDS64 (i0, i1, x);
+ sx = (((uint64_t) i0) >> 63);
+ j0 = ((i0 >> 48) & 0x7fff) - 0x3fff;
+ if (j0 < 112)
+ {
+ if (j0 < 0)
+ {
+ w = TWO112[sx] + x;
+ t = w - TWO112[sx];
+ GET_LDOUBLE_MSW64 (i0, t);
+ SET_LDOUBLE_MSW64 (t, (i0 & 0x7fffffffffffffffLL) | (sx << 63));
+ return t;
}
- w = TWO112[sx]+x;
- return w-TWO112[sx];
+ }
+ else
+ {
+ if (j0 == 0x4000)
+ return x + x; /* inf or NaN */
+ else
+ return x; /* x is integral */
+ }
+ w = TWO112[sx] + x;
+ return w - TWO112[sx];
+#endif /* ! USE_RINTL_BUILTIN */
}
libm_alias_ldouble (__rint, rint)
diff --git a/sysdeps/ieee754/ldbl-128/s_roundevenl.c b/sysdeps/ieee754/ldbl-128/s_roundevenl.c
index 5fc59af4ee..ad3c121023 100644
--- a/sysdeps/ieee754/ldbl-128/s_roundevenl.c
+++ b/sysdeps/ieee754/ldbl-128/s_roundevenl.c
@@ -1,6 +1,6 @@
/* Round to nearest integer value, rounding halfway cases to even.
ldbl-128 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/ieee754/ldbl-128/s_roundl.c b/sysdeps/ieee754/ldbl-128/s_roundl.c
index 22789cedf3..8c7ae82217 100644
--- a/sysdeps/ieee754/ldbl-128/s_roundl.c
+++ b/sysdeps/ieee754/ldbl-128/s_roundl.c
@@ -1,5 +1,5 @@
/* Round long double to integer away from zero.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997 and
Jakub Jelinek <jj@ultra.linux.cz>, 1999.
@@ -16,17 +16,23 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
#include <math_private.h>
#include <libm-alias-ldouble.h>
+#include <math-use-builtins.h>
_Float128
__roundl (_Float128 x)
{
+#if USE_ROUNDL_BUILTIN
+ return __builtin_roundl (x);
+#else
+ /* Use generic implementation. */
int32_t j0;
uint64_t i1, i0;
@@ -77,5 +83,6 @@ __roundl (_Float128 x)
SET_LDOUBLE_WORDS64 (x, i0, i1);
return x;
+#endif /* ! USE_ROUNDL_BUILTIN */
}
libm_alias_ldouble (__round, round)
diff --git a/sysdeps/ieee754/ldbl-128/s_scalblnl.c b/sysdeps/ieee754/ldbl-128/s_scalblnl.c
index 5864eaf93c..590b2ca023 100644
--- a/sysdeps/ieee754/ldbl-128/s_scalblnl.c
+++ b/sysdeps/ieee754/ldbl-128/s_scalblnl.c
@@ -46,16 +46,16 @@ _Float128 __scalblnl (_Float128 x, long int n)
k = ((hx>>48)&0x7fff) - 114;
}
if (k==0x7fff) return x+x; /* NaN or Inf */
- if (n< -50000) return tiny*__copysignl(tiny,x); /*underflow*/
+ if (n< -50000) return tiny*copysignl(tiny,x); /*underflow*/
if (n> 50000 || k+n > 0x7ffe)
- return huge*__copysignl(huge,x); /* overflow */
+ return huge*copysignl(huge,x); /* overflow */
/* Now k and n are bounded we know that k = k+n does not
overflow. */
k = k+n;
if (k > 0) /* normal result */
{SET_LDOUBLE_MSW64(x,(hx&0x8000ffffffffffffULL)|(k<<48)); return x;}
if (k <= -114)
- return tiny*__copysignl(tiny,x); /*underflow*/
+ return tiny*copysignl(tiny,x); /*underflow*/
k += 114; /* subnormal result */
SET_LDOUBLE_MSW64(x,(hx&0x8000ffffffffffffULL)|(k<<48));
return x*twom114;
diff --git a/sysdeps/ieee754/ldbl-128/s_scalbnl.c b/sysdeps/ieee754/ldbl-128/s_scalbnl.c
index e6fe796079..ad9a0b105a 100644
--- a/sysdeps/ieee754/ldbl-128/s_scalbnl.c
+++ b/sysdeps/ieee754/ldbl-128/s_scalbnl.c
@@ -46,16 +46,16 @@ _Float128 __scalbnl (_Float128 x, int n)
k = ((hx>>48)&0x7fff) - 114;
}
if (k==0x7fff) return x+x; /* NaN or Inf */
- if (n< -50000) return tiny*__copysignl(tiny,x); /*underflow*/
+ if (n< -50000) return tiny*copysignl(tiny,x); /*underflow*/
if (n> 50000 || k+n > 0x7ffe)
- return huge*__copysignl(huge,x); /* overflow */
+ return huge*copysignl(huge,x); /* overflow */
/* Now k and n are bounded we know that k = k+n does not
overflow. */
k = k+n;
if (k > 0) /* normal result */
{SET_LDOUBLE_MSW64(x,(hx&0x8000ffffffffffffULL)|(k<<48)); return x;}
if (k <= -114)
- return tiny*__copysignl(tiny,x); /*underflow*/
+ return tiny*copysignl(tiny,x); /*underflow*/
k += 114; /* subnormal result */
SET_LDOUBLE_MSW64(x,(hx&0x8000ffffffffffffULL)|(k<<48));
return x*twom114;
diff --git a/sysdeps/ieee754/ldbl-128/s_setpayloadl_main.c b/sysdeps/ieee754/ldbl-128/s_setpayloadl_main.c
index bb3fc8d9fb..177310563a 100644
--- a/sysdeps/ieee754/ldbl-128/s_setpayloadl_main.c
+++ b/sysdeps/ieee754/ldbl-128/s_setpayloadl_main.c
@@ -1,5 +1,5 @@
/* Set NaN payload. ldbl-128 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/ieee754/ldbl-128/s_signbitl.c b/sysdeps/ieee754/ldbl-128/s_signbitl.c
index 1aa93f709d..fdccb85147 100644
--- a/sysdeps/ieee754/ldbl-128/s_signbitl.c
+++ b/sysdeps/ieee754/ldbl-128/s_signbitl.c
@@ -1,5 +1,5 @@
/* Return nonzero value if number is negative.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/ieee754/ldbl-128/s_sincosl.c b/sysdeps/ieee754/ldbl-128/s_sincosl.c
index dfcb0be301..69f15c9538 100644
--- a/sysdeps/ieee754/ldbl-128/s_sincosl.c
+++ b/sysdeps/ieee754/ldbl-128/s_sincosl.c
@@ -1,5 +1,5 @@
/* Compute sine and cosine of argument.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997 and
Jakub Jelinek <jj@ultra.linux.cz>.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <math.h>
diff --git a/sysdeps/ieee754/ldbl-128/s_totalorderl.c b/sysdeps/ieee754/ldbl-128/s_totalorderl.c
index 080c9597b9..098bd2bcab 100644
--- a/sysdeps/ieee754/ldbl-128/s_totalorderl.c
+++ b/sysdeps/ieee754/ldbl-128/s_totalorderl.c
@@ -1,5 +1,5 @@
/* Total order operation. ldbl-128 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,21 +14,23 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
#include <libm-alias-ldouble.h>
#include <nan-high-order-bit.h>
#include <stdint.h>
+#include <shlib-compat.h>
+#include <first-versions.h>
int
-__totalorderl (_Float128 x, _Float128 y)
+__totalorderl (const _Float128 *x, const _Float128 *y)
{
int64_t hx, hy;
uint64_t lx, ly;
- GET_LDOUBLE_WORDS64 (hx, lx, x);
- GET_LDOUBLE_WORDS64 (hy, ly, y);
+ GET_LDOUBLE_WORDS64 (hx, lx, *x);
+ GET_LDOUBLE_WORDS64 (hy, ly, *y);
#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN
uint64_t uhx = hx & 0x7fffffffffffffffULL;
uint64_t uhy = hy & 0x7fffffffffffffffULL;
@@ -53,4 +55,29 @@ __totalorderl (_Float128 x, _Float128 y)
ly ^= hy_sign;
return hx < hy || (hx == hy && lx <= ly);
}
+#ifdef SHARED
+# define CONCATX(x, y) x ## y
+# define CONCAT(x, y) CONCATX (x, y)
+# define UNIQUE_ALIAS(name) CONCAT (name, __COUNTER__)
+# define do_symbol(orig_name, name, aliasname) \
+ strong_alias (orig_name, name) \
+ versioned_symbol (libm, name, aliasname, GLIBC_2_31)
+# undef weak_alias
+# define weak_alias(name, aliasname) \
+ do_symbol (name, UNIQUE_ALIAS (name), aliasname);
+#endif
libm_alias_ldouble (__totalorder, totalorder)
+#if SHLIB_COMPAT (libm, GLIBC_2_25, GLIBC_2_31)
+int
+attribute_compat_text_section
+__totalorder_compatl (_Float128 x, _Float128 y)
+{
+ return __totalorderl (&x, &y);
+}
+#undef do_symbol
+#define do_symbol(orig_name, name, aliasname) \
+ strong_alias (orig_name, name) \
+ compat_symbol (libm, name, aliasname, \
+ CONCAT (FIRST_VERSION_libm_, aliasname))
+libm_alias_ldouble (__totalorder_compat, totalorder)
+#endif
diff --git a/sysdeps/ieee754/ldbl-128/s_totalordermagl.c b/sysdeps/ieee754/ldbl-128/s_totalordermagl.c
index 642c48e8f5..b31788c77c 100644
--- a/sysdeps/ieee754/ldbl-128/s_totalordermagl.c
+++ b/sysdeps/ieee754/ldbl-128/s_totalordermagl.c
@@ -1,5 +1,5 @@
/* Total order operation on absolute values. ldbl-128 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,21 +14,23 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
#include <libm-alias-ldouble.h>
#include <nan-high-order-bit.h>
#include <stdint.h>
+#include <shlib-compat.h>
+#include <first-versions.h>
int
-__totalordermagl (_Float128 x, _Float128 y)
+__totalordermagl (const _Float128 *x, const _Float128 *y)
{
uint64_t hx, hy;
uint64_t lx, ly;
- GET_LDOUBLE_WORDS64 (hx, lx, x);
- GET_LDOUBLE_WORDS64 (hy, ly, y);
+ GET_LDOUBLE_WORDS64 (hx, lx, *x);
+ GET_LDOUBLE_WORDS64 (hy, ly, *y);
hx &= 0x7fffffffffffffffULL;
hy &= 0x7fffffffffffffffULL;
#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN
@@ -47,4 +49,29 @@ __totalordermagl (_Float128 x, _Float128 y)
#endif
return hx < hy || (hx == hy && lx <= ly);
}
+#ifdef SHARED
+# define CONCATX(x, y) x ## y
+# define CONCAT(x, y) CONCATX (x, y)
+# define UNIQUE_ALIAS(name) CONCAT (name, __COUNTER__)
+# define do_symbol(orig_name, name, aliasname) \
+ strong_alias (orig_name, name) \
+ versioned_symbol (libm, name, aliasname, GLIBC_2_31)
+# undef weak_alias
+# define weak_alias(name, aliasname) \
+ do_symbol (name, UNIQUE_ALIAS (name), aliasname);
+#endif
libm_alias_ldouble (__totalordermag, totalordermag)
+#if SHLIB_COMPAT (libm, GLIBC_2_25, GLIBC_2_31)
+int
+attribute_compat_text_section
+__totalordermag_compatl (_Float128 x, _Float128 y)
+{
+ return __totalordermagl (&x, &y);
+}
+#undef do_symbol
+#define do_symbol(orig_name, name, aliasname) \
+ strong_alias (orig_name, name) \
+ compat_symbol (libm, name, aliasname, \
+ CONCAT (FIRST_VERSION_libm_, aliasname))
+libm_alias_ldouble (__totalordermag_compat, totalordermag)
+#endif
diff --git a/sysdeps/ieee754/ldbl-128/s_truncl.c b/sysdeps/ieee754/ldbl-128/s_truncl.c
index f858ede3d2..d11ab937e2 100644
--- a/sysdeps/ieee754/ldbl-128/s_truncl.c
+++ b/sysdeps/ieee754/ldbl-128/s_truncl.c
@@ -1,5 +1,5 @@
/* Truncate argument to nearest integral value not larger than the argument.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997 and
Jakub Jelinek <jj@ultra.linux.cz>, 1999.
@@ -16,17 +16,23 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
#include <math_private.h>
#include <libm-alias-ldouble.h>
+#include <math-use-builtins.h>
_Float128
__truncl (_Float128 x)
{
+#if USE_TRUNCL_BUILTIN
+ return __builtin_truncl (x);
+#else
+ /* Use generic implementation. */
int32_t j0;
uint64_t i0, i1, sx;
@@ -53,5 +59,6 @@ __truncl (_Float128 x)
}
return x;
+#endif /* ! USE_TRUNCL_BUILTIN */
}
libm_alias_ldouble (__trunc, trunc)
diff --git a/sysdeps/ieee754/ldbl-128/strtold_l.c b/sysdeps/ieee754/ldbl-128/strtold_l.c
index 4b72ae1e33..1f2fcd68bc 100644
--- a/sysdeps/ieee754/ldbl-128/strtold_l.c
+++ b/sysdeps/ieee754/ldbl-128/strtold_l.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/ieee754/ldbl-128/t_expl.h b/sysdeps/ieee754/ldbl-128/t_expl.h
index b386fc1f54..10dd84527d 100644
--- a/sysdeps/ieee754/ldbl-128/t_expl.h
+++ b/sysdeps/ieee754/ldbl-128/t_expl.h
@@ -1,5 +1,5 @@
/* Accurate table for expl().
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jj@ultra.linux.cz>
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* __expl_table basically consists of four tables, T_EXPL_ARG{1,2} and
T_EXPL_RES{1,2}. All tables use positive and negative indexes, the 0 points
diff --git a/sysdeps/ieee754/ldbl-128/t_sincosl.c b/sysdeps/ieee754/ldbl-128/t_sincosl.c
index 7d65c5fcb0..94bd3adb63 100644
--- a/sysdeps/ieee754/ldbl-128/t_sincosl.c
+++ b/sysdeps/ieee754/ldbl-128/t_sincosl.c
@@ -1,5 +1,5 @@
/* Quad-precision floating point sine and cosine tables.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jj@ultra.linux.cz>
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* For 0.1484375 + n/128.0, n=0..82 this table contains
first 113 bits of cosine, then at least 113 additional
diff --git a/sysdeps/ieee754/ldbl-128/x2y2m1l.c b/sysdeps/ieee754/ldbl-128/x2y2m1l.c
index 390163fbc4..8ff1e724dc 100644
--- a/sysdeps/ieee754/ldbl-128/x2y2m1l.c
+++ b/sysdeps/ieee754/ldbl-128/x2y2m1l.c
@@ -1,5 +1,5 @@
/* Compute x^2 + y^2 - 1, without large cancellation error.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,10 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
+#include <fenv_private.h>
#include <mul_splitl.h>
#include <stdlib.h>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/Makefile b/sysdeps/ieee754/ldbl-128ibm-compat/Makefile
index 412beb5b5c..6d5414c54a 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/Makefile
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/Makefile
@@ -1,5 +1,177 @@
+ifeq ($(subdir),libio)
+ldbl-extra-routines += fwscanf \
+ swscanf \
+ wscanf \
+ vswscanf \
+ vwscanf
+endif
+
+ifeq ($(subdir),wcsmbs)
+ldbl-extra-routines += isoc99_fwscanf \
+ isoc99_swscanf \
+ isoc99_wscanf \
+ isoc99_vfwscanf \
+ isoc99_vswscanf \
+ isoc99_vwscanf
+
+tests-internal += test-wcstold-ibm128 test-wcstold-ieee128
+CFLAGS-test-wcstold-ieee128.c += -mfloat128 -mabi=ieeelongdouble -Wno-psabi
+CFLAGS-test-wcstold-ibm128.c += -mabi=ibmlongdouble -Wno-psabi
+
+$(objpfx)test-wcstold-ieee128: gnulib-tests += $(f128-loader-link)
+endif
+
ifeq ($(subdir),stdio-common)
-routines += ieee128-printf_size
+ldbl-extra-routines += printf_size \
+ asprintf \
+ dprintf \
+ fprintf \
+ printf \
+ snprintf \
+ sprintf \
+ vasprintf \
+ vdprintf \
+ vfprintf \
+ vprintf \
+ vsnprintf \
+ vsprintf \
+ fwprintf \
+ swprintf \
+ wprintf \
+ vfwprintf \
+ vswprintf \
+ vwprintf \
+ fscanf \
+ scanf \
+ sscanf \
+ vfscanf \
+ vscanf \
+ vsscanf \
+ vfwscanf \
+ obprintf \
+ obstack_chk \
+ vobstack_chk \
+ isoc99_fscanf \
+ isoc99_scanf \
+ isoc99_sscanf \
+ isoc99_vfscanf \
+ isoc99_vscanf \
+ isoc99_vsscanf
+
+# Printing long double values with IEEE binary128 format reuses part
+# of the internal float128 implementation (__printf_fp, __printf_fphex,
+# and __float128 variables and union members). Likewise, reading these
+# values reuses __strtof128_internal. Thus, the compilation of the
+# following functions, must have -mfloat128 and -mabi=ibmlongdouble
+# passed to the compiler.
+CFLAGS-vfprintf-internal.c += -mfloat128 -mabi=ibmlongdouble
+CFLAGS-vfwprintf-internal.c += -mfloat128 -mabi=ibmlongdouble
+CFLAGS-vfscanf-internal.c += -mfloat128 -mabi=ibmlongdouble
+CFLAGS-vfwscanf-internal.c += -mfloat128 -mabi=ibmlongdouble
+
+# Basic tests for the implementation of long double with IEEE binary128
+# format and for the related redirections in installed headers.
+tests-internal += test-printf-ieee128 test-printf-ibm128
+CFLAGS-test-printf-ieee128.c += -mfloat128 -mabi=ieeelongdouble -Wno-psabi
+CFLAGS-test-printf-ibm128.c += -mabi=ibmlongdouble -Wno-psabi
+
+tests-internal += test-wprintf-ieee128 test-wprintf-ibm128
+CFLAGS-test-wprintf-ieee128.c += -mfloat128 -mabi=ieeelongdouble -Wno-psabi
+CFLAGS-test-wprintf-ibm128.c += -mabi=ibmlongdouble -Wno-psabi
+
+tests-internal += test-obstack-ieee128 test-obstack-ibm128
+CFLAGS-test-obstack-ieee128.c += -mfloat128 -mabi=ieeelongdouble -Wno-psabi
+CFLAGS-test-obstack-ibm128.c += -mabi=ibmlongdouble -Wno-psabi
+
+tests-internal += test-obstack-chk-ieee128 test-obstack-chk-ibm128
+CFLAGS-test-obstack-chk-ieee128.c += -mfloat128 -mabi=ieeelongdouble -Wno-psabi
+CFLAGS-test-obstack-chk-ibm128.c += -mabi=ibmlongdouble -Wno-psabi
+
+tests-internal += test-scanf-ieee128 test-scanf-ibm128
+CFLAGS-test-scanf-ieee128.c += -mfloat128 -mabi=ieeelongdouble -Wno-psabi -std=c89 -D_GNU_SOURCE
+CFLAGS-test-scanf-ibm128.c += -mabi=ibmlongdouble -Wno-psabi -std=c89 -D_GNU_SOURCE
+
+$(objpfx)test-scanf-ieee128: gnulib-tests += $(f128-loader-link)
+
+tests-internal += test-wscanf-ieee128 test-wscanf-ibm128
+CFLAGS-test-wscanf-ieee128.c += -mfloat128 -mabi=ieeelongdouble -Wno-psabi -std=c89 -D_GNU_SOURCE
+CFLAGS-test-wscanf-ibm128.c += -mabi=ibmlongdouble -Wno-psabi -std=c89 -D_GNU_SOURCE
+
+$(objpfx)test-wscanf-ieee128: gnulib-tests += $(f128-loader-link)
+
+tests-internal += test-isoc99-scanf-ieee128 test-isoc99-scanf-ibm128
+CFLAGS-test-isoc99-scanf-ieee128.c += -mfloat128 -mabi=ieeelongdouble -Wno-psabi -std=c99
+CFLAGS-test-isoc99-scanf-ibm128.c += -mabi=ibmlongdouble -Wno-psabi -std=c99
+
+$(objpfx)test-isoc99-scanf-ieee128: gnulib-tests += $(f128-loader-link)
+
+tests-internal += test-isoc99-wscanf-ieee128 test-isoc99-wscanf-ibm128
+CFLAGS-test-isoc99-wscanf-ieee128.c += -mfloat128 -mabi=ieeelongdouble -Wno-psabi -std=c99
+CFLAGS-test-isoc99-wscanf-ibm128.c += -mabi=ibmlongdouble -Wno-psabi -std=c99
+
+$(objpfx)test-isoc99-wscanf-ieee128: gnulib-tests += $(f128-loader-link)
+
+ifeq ($(run-built-tests),yes)
+tests-special += $(objpfx)test-scanf-ieee128.out
+tests-special += $(objpfx)test-scanf-ibm128.out
+
+tests-special += $(objpfx)test-wscanf-ieee128.out
+tests-special += $(objpfx)test-wscanf-ibm128.out
+
+tests-special += $(objpfx)test-isoc99-scanf-ieee128.out
+tests-special += $(objpfx)test-isoc99-scanf-ibm128.out
+
+tests-special += $(objpfx)test-isoc99-wscanf-ieee128.out
+tests-special += $(objpfx)test-isoc99-wscanf-ibm128.out
+endif
+
+$(objpfx)test-scanf-ieee128.out: \
+ ../sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat.sh \
+ $(objpfx)test-scanf-ieee128
+ $(SHELL) $^ '$(test-program-prefix)' $@; \
+ $(evaluate-test)
+
+$(objpfx)test-scanf-ibm128.out: \
+ ../sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat.sh \
+ $(objpfx)test-scanf-ibm128
+ $(SHELL) $^ '$(test-program-prefix)' $@; \
+ $(evaluate-test)
+
+$(objpfx)test-wscanf-ieee128.out: \
+ ../sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat.sh \
+ $(objpfx)test-wscanf-ieee128
+ $(SHELL) $^ '$(test-program-prefix)' $@; \
+ $(evaluate-test)
+
+$(objpfx)test-wscanf-ibm128.out: \
+ ../sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat.sh \
+ $(objpfx)test-wscanf-ibm128
+ $(SHELL) $^ '$(test-program-prefix)' $@; \
+ $(evaluate-test)
+
+$(objpfx)test-isoc99-scanf-ieee128.out: \
+ ../sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat.sh \
+ $(objpfx)test-isoc99-scanf-ieee128
+ $(SHELL) $^ '$(test-program-prefix)' $@; \
+ $(evaluate-test)
+
+$(objpfx)test-isoc99-scanf-ibm128.out: \
+ ../sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat.sh \
+ $(objpfx)test-isoc99-scanf-ibm128
+ $(SHELL) $^ '$(test-program-prefix)' $@; \
+ $(evaluate-test)
+
+$(objpfx)test-isoc99-wscanf-ieee128.out: \
+ ../sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat.sh \
+ $(objpfx)test-isoc99-wscanf-ieee128
+ $(SHELL) $^ '$(test-program-prefix)' $@; \
+ $(evaluate-test)
+
+$(objpfx)test-isoc99-wscanf-ibm128.out: \
+ ../sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat.sh \
+ $(objpfx)test-isoc99-wscanf-ibm128
+ $(SHELL) $^ '$(test-program-prefix)' $@; \
+ $(evaluate-test)
tests-internal += test-printf-size-ieee128 test-printf-size-ibm128
CFLAGS-test-printf-size-ieee128.c += -mfloat128 -mabi=ieeelongdouble -Wno-psabi
@@ -20,3 +192,131 @@ $(objpfx)test-printf-size-ibm128.out: \
$(SHELL) $^ '$(test-program-prefix)' $@; \
$(evaluate-test)
endif
+
+ifeq ($(subdir),debug)
+ldbl-extra-routines += asprintf_chk \
+ dprintf_chk \
+ fprintf_chk \
+ printf_chk \
+ snprintf_chk \
+ sprintf_chk \
+ vasprintf_chk \
+ vdprintf_chk \
+ vfprintf_chk \
+ vprintf_chk \
+ vsnprintf_chk \
+ vsprintf_chk \
+ fwprintf_chk \
+ swprintf_chk \
+ wprintf_chk \
+ vfwprintf_chk \
+ vswprintf_chk \
+ vwprintf_chk
+
+tests-internal += test-printf-chk-ieee128 test-printf-chk-ibm128
+CFLAGS-test-printf-chk-ieee128.c += -mfloat128 -mabi=ieeelongdouble -Wno-psabi
+CFLAGS-test-printf-chk-ibm128.c += -mabi=ibmlongdouble -Wno-psabi
+
+tests-internal += test-printf-chk-redir-ieee128 test-printf-chk-redir-ibm128
+CFLAGS-test-printf-chk-redir-ieee128.c += -mfloat128 -mabi=ieeelongdouble \
+ -Wno-psabi -Wno-unused-result
+CFLAGS-test-printf-chk-redir-ibm128.c += -mabi=ibmlongdouble -Wno-psabi \
+ -Wno-unused-result
+
+tests-internal += test-wprintf-chk-ieee128 test-wprintf-chk-ibm128
+CFLAGS-test-wprintf-chk-ieee128.c += -mfloat128 -mabi=ieeelongdouble -Wno-psabi
+CFLAGS-test-wprintf-chk-ibm128.c += -mabi=ibmlongdouble -Wno-psabi
+
+tests-internal += test-wprintf-chk-redir-ieee128 test-wprintf-chk-redir-ibm128
+CFLAGS-test-wprintf-chk-redir-ieee128.c += -mfloat128 -mabi=ieeelongdouble \
+ -Wno-psabi -Wno-unused-result
+CFLAGS-test-wprintf-chk-redir-ibm128.c += -mabi=ibmlongdouble -Wno-psabi \
+ -Wno-unused-result
+endif
+
+ifeq ($(subdir),argp)
+ldbl-extra-routines += argp-help
+
+$(objpfx)tst-ieee128-argp.c: tst-ldbl-argp.c
+ cp $< $@
+
+$(objpfx)tst-ibm128-argp.c: tst-ldbl-argp.c
+ cp $< $@
+
+tests-internal += tst-ieee128-argp tst-ibm128-argp
+CFLAGS-tst-ieee128-argp.c += -mfloat128 -mabi=ieeelongdouble -Wno-psabi
+CFLAGS-tst-ibm128-argp.c += -mabi=ibmlongdouble -Wno-psabi
+endif
+
+ifeq ($(subdir),misc)
+ldbl-extra-routines += err \
+ error \
+ syslog
+
+tests-internal += tst-ibm128-warn tst-ieee128-warn
+tests-internal += tst-ibm128-error tst-ieee128-error
+
+$(objpfx)tst-ibm128-%.c: tst-ldbl-%.c
+ cp $< $@
+
+$(objpfx)tst-ieee128-%.c: tst-ldbl-%.c
+ cp $< $@
+
+CFLAGS-tst-ibm128-warn.c += -mabi=ibmlongdouble -Wno-psabi
+CFLAGS-tst-ibm128-error.c += -mabi=ibmlongdouble -Wno-psabi
+
+CFLAGS-tst-ieee128-warn.c += -mfloat128 -mabi=ieeelongdouble -Wno-psabi
+CFLAGS-tst-ieee128-error.c += -mfloat128 -mabi=ieeelongdouble -Wno-psabi
+
+tests-container += test-syslog-ieee128 test-syslog-ibm128
+CFLAGS-test-syslog-ieee128.c += -mfloat128 -mabi=ieeelongdouble -Wno-psabi
+CFLAGS-test-syslog-ibm128.c += -mabi=ibmlongdouble -Wno-psabi
+
+tests-container += test-syslog-chk-ieee128 test-syslog-chk-ibm128
+CFLAGS-test-syslog-chk-ieee128.c += -mfloat128 -mabi=ieeelongdouble -Wno-psabi
+CFLAGS-test-syslog-chk-ibm128.c += -mabi=ibmlongdouble -Wno-psabi
+endif
+
+ifeq ($(subdir),stdlib)
+ldbl-extra-routines += strfmon strfmon_l
+
+# Printing long double values with IEEE binary128 format reuses part
+# of the internal float128 implementation (__printf_fp, __printf_fphex,
+# and __float128 variables and union members). Thus, the compilation of
+# the following files, must have -mfloat128 passed to the compiler.
+# Also, guarantee that they are compiled in IBM long double mode.
+CFLAGS-strfmon.c += -mfloat128 -mabi=ibmlongdouble
+CFLAGS-strfmon_l.c += -mfloat128 -mabi=ibmlongdouble
+
+tests-internal += test-strfmon-ibm128 test-strfmon-ieee128
+CFLAGS-test-strfmon-ibm128.c += -mabi=ibmlongdouble -Wno-psabi
+CFLAGS-test-strfmon-ieee128.c += -mfloat128 -mabi=ieeelongdouble -Wno-psabi
+$(objpfx)tst-strfmon-ibm128.out: $(gen-locales)
+$(objpfx)tst-strfmon-ieee128.out: $(gen-locales)
+
+tests-internal += test-strfrom-ibm128 test-strfrom-ieee128
+CFLAGS-test-strfrom-ieee128.c += -mfloat128 -mabi=ieeelongdouble -Wno-psabi
+CFLAGS-test-strfrom-ibm128.c += -mabi=ibmlongdouble -Wno-psabi
+
+$(objpfx)test-strfrom-ieee128: gnulib-tests += $(f128-loader-link)
+endif
+
+# Add IEEE binary128 files as make targets.
+routines += $(foreach r,$(ldbl-extra-routines),ieee128-$(r))
+
+# On powerpc64le, the routines responsible for converting between long
+# double and string (e.g.: printf, scanf, strtold, strfroml) default to
+# IBM long double mode. When support for TS 18661-3 was added, several
+# internal functions were modified so that they could also handle
+# floating-point variables with IEEE binary128 format, but as an
+# additional type, _Float128.
+#
+# The following rule ensures that the string conversion routines will
+# always be built in IBM long double mode, with additional support for
+# IEEE binary128, through the use of -mabi=ibmlongdouble and -mfloat128.
+ldbl-ibm128-files := $(objpfx)test-%-ibm128^ \
+ $(foreach r,$(ldbl-extra-routines),$(objpfx)$(r)^) \
+ $(foreach r,$(ldbl-extra-routines),$(objpfx)$(r)-internal^)
+obj-suf-foreach = $(foreach suf,$(all-object-suffixes),$(subst ^,$(suf),$(1)))
+$(call obj-suf-foreach,$(ldbl-ibm128-files)): \
+ sysdep-CFLAGS += -mabi=ibmlongdouble
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/Versions b/sysdeps/ieee754/ldbl-128ibm-compat/Versions
index 4aa34dbe59..da8e0ce7ee 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/Versions
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/Versions
@@ -120,4 +120,109 @@ libc {
__wcstoieee128_l;
__printf_sizeieee128;
+
+ __asprintfieee128;
+ __dprintfieee128;
+ __fprintfieee128;
+ __printfieee128;
+ __snprintfieee128;
+ __sprintfieee128;
+
+ __vasprintfieee128;
+ __vdprintfieee128;
+ __vfprintfieee128;
+ __vprintfieee128;
+ __vsnprintfieee128;
+ __vsprintfieee128;
+
+ __fwprintfieee128;
+ __swprintfieee128;
+ __wprintfieee128;
+
+ __vfwprintfieee128;
+ __vswprintfieee128;
+ __vwprintfieee128;
+
+ __asprintf_chkieee128;
+ __dprintf_chkieee128;
+ __fprintf_chkieee128;
+ __printf_chkieee128;
+ __snprintf_chkieee128;
+ __sprintf_chkieee128;
+
+ __vasprintf_chkieee128;
+ __vdprintf_chkieee128;
+ __vfprintf_chkieee128;
+ __vprintf_chkieee128;
+ __vsnprintf_chkieee128;
+ __vsprintf_chkieee128;
+
+ __fwprintf_chkieee128;
+ __swprintf_chkieee128;
+ __wprintf_chkieee128;
+
+ __vfwprintf_chkieee128;
+ __vswprintf_chkieee128;
+ __vwprintf_chkieee128;
+
+ __obstack_printfieee128;
+ __obstack_vprintfieee128;
+ __obstack_printf_chkieee128;
+ __obstack_vprintf_chkieee128;
+
+ __syslogieee128;
+ __vsyslogieee128;
+ __syslog_chkieee128;
+ __vsyslog_chkieee128;
+
+ __fscanfieee128;
+ __scanfieee128;
+ __sscanfieee128;
+
+ __vfscanfieee128;
+ __vscanfieee128;
+ __vsscanfieee128;
+
+ __fwscanfieee128;
+ __swscanfieee128;
+ __wscanfieee128;
+
+ __vfwscanfieee128;
+ __vswscanfieee128;
+ __vwscanfieee128;
+
+ __isoc99_fscanfieee128;
+ __isoc99_scanfieee128;
+ __isoc99_sscanfieee128;
+
+ __isoc99_vfscanfieee128;
+ __isoc99_vscanfieee128;
+ __isoc99_vsscanfieee128;
+
+ __isoc99_fwscanfieee128;
+ __isoc99_swscanfieee128;
+ __isoc99_wscanfieee128;
+
+ __isoc99_vfwscanfieee128;
+ __isoc99_vswscanfieee128;
+ __isoc99_vwscanfieee128;
+
+ __argp_errorieee128;
+ __argp_failureieee128;
+
+ __warnieee128;
+ __warnxieee128;
+ __vwarnieee128;
+ __vwarnxieee128;
+ __errieee128;
+ __errxieee128;
+ __verrieee128;
+ __verrxieee128;
+
+ __errorieee128;
+ __error_at_lineieee128;
+
+ __strfmonieee128;
+ __strfmon_lieee128;
}
+}
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-argp-help.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-argp-help.c
new file mode 100644
index 0000000000..50b4e994ea
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-argp-help.c
@@ -0,0 +1,42 @@
+/* Wrapper for argp_error and argp_failure. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <argp.h>
+#include <libio/libioP.h>
+
+void
+___ieee128_argp_error (const struct argp_state *state, const char *fmt, ...)
+{
+ va_list ap;
+ va_start (ap, fmt);
+ __argp_error_internal (state, fmt, ap, PRINTF_LDBL_USES_FLOAT128);
+ va_end (ap);
+}
+strong_alias (___ieee128_argp_error, __argp_errorieee128)
+
+void
+___ieee128_argp_failure (const struct argp_state *state, int status,
+ int errnum, const char *fmt, ...)
+{
+ va_list ap;
+ va_start (ap, fmt);
+ __argp_failure_internal (state, status, errnum, fmt, ap,
+ PRINTF_LDBL_USES_FLOAT128);
+ va_end (ap);
+}
+strong_alias (___ieee128_argp_failure, __argp_failureieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-asprintf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-asprintf.c
new file mode 100644
index 0000000000..d3237ecede
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-asprintf.c
@@ -0,0 +1,35 @@
+/* Wrapper for asprintf. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdarg.h>
+#include <libio/libioP.h>
+
+extern int
+___ieee128_asprintf (char **string_ptr, const char *format, ...)
+{
+ va_list ap;
+ int done;
+
+ va_start (ap, format);
+ done = __vasprintf_internal (string_ptr, format, ap,
+ PRINTF_LDBL_USES_FLOAT128);
+ va_end (ap);
+
+ return done;
+}
+strong_alias (___ieee128_asprintf, __asprintfieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-asprintf_chk.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-asprintf_chk.c
new file mode 100644
index 0000000000..716787e280
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-asprintf_chk.c
@@ -0,0 +1,38 @@
+/* Wrapper for __asprintf_chk. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdarg.h>
+#include <libio/libioP.h>
+
+extern int
+___ieee128_asprintf_chk (char **string_ptr, int flag, const char *format, ...)
+{
+ va_list ap;
+ int done;
+
+ unsigned int mode = PRINTF_LDBL_USES_FLOAT128;
+ if (flag > 0)
+ mode |= PRINTF_FORTIFY;
+
+ va_start (ap, format);
+ done = __vasprintf_internal (string_ptr, format, ap, mode);
+ va_end (ap);
+
+ return done;
+}
+strong_alias (___ieee128_asprintf_chk, __asprintf_chkieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-dprintf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-dprintf.c
new file mode 100644
index 0000000000..203c7eb43c
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-dprintf.c
@@ -0,0 +1,34 @@
+/* Wrapper for dprintf. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdarg.h>
+#include <libio/libioP.h>
+
+extern int
+___ieee128_dprintf (int d, const char *format, ...)
+{
+ va_list ap;
+ int done;
+
+ va_start (ap, format);
+ done = __vdprintf_internal (d, format, ap, PRINTF_LDBL_USES_FLOAT128);
+ va_end (ap);
+
+ return done;
+}
+strong_alias (___ieee128_dprintf, __dprintfieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-dprintf_chk.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-dprintf_chk.c
new file mode 100644
index 0000000000..77377f4fa1
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-dprintf_chk.c
@@ -0,0 +1,38 @@
+/* Wrapper for __dprintf_chk. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdarg.h>
+#include <libio/libioP.h>
+
+extern int
+___ieee128_dprintf_chk (int d, int flag, const char *format, ...)
+{
+ va_list ap;
+ int done;
+
+ unsigned int mode = PRINTF_LDBL_USES_FLOAT128;
+ if (flag > 0)
+ mode |= PRINTF_FORTIFY;
+
+ va_start (ap, format);
+ done = __vdprintf_internal (d, format, ap, mode);
+ va_end (ap);
+
+ return done;
+}
+strong_alias (___ieee128_dprintf_chk, __dprintf_chkieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-err.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-err.c
new file mode 100644
index 0000000000..c74782ce69
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-err.c
@@ -0,0 +1,93 @@
+/* Wrappers for err.h functions. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <err.h>
+#include <stdarg.h>
+#include <libio/libioP.h>
+
+#define VA(call) \
+{ \
+ va_list ap; \
+ va_start (ap, format); \
+ IEEE128_CALL (call); \
+ va_end (ap); \
+}
+
+#define IEEE128_ALIAS(name) \
+ strong_alias (___ieee128_##name, __##name##ieee128)
+
+#define IEEE128_DECL(name) ___ieee128_##name
+#define IEEE128_CALL(name) ___ieee128_##name
+
+void
+IEEE128_DECL (vwarn) (const char *format, __gnuc_va_list ap)
+{
+ __vwarn_internal (format, ap, PRINTF_LDBL_USES_FLOAT128);
+}
+IEEE128_ALIAS (vwarn)
+
+void
+IEEE128_DECL (vwarnx) (const char *format, __gnuc_va_list ap)
+{
+ __vwarnx_internal (format, ap, PRINTF_LDBL_USES_FLOAT128);
+}
+IEEE128_ALIAS (vwarnx)
+
+void
+IEEE128_DECL (warn) (const char *format, ...)
+{
+ VA (vwarn (format, ap))
+}
+IEEE128_ALIAS (warn)
+
+void
+IEEE128_DECL (warnx) (const char *format, ...)
+{
+ VA (vwarnx (format, ap))
+}
+IEEE128_ALIAS (warnx)
+
+void
+IEEE128_DECL (verr) (int status, const char *format, __gnuc_va_list ap)
+{
+ IEEE128_CALL (vwarn) (format, ap);
+ exit (status);
+}
+IEEE128_ALIAS (verr)
+
+void
+IEEE128_DECL (verrx) (int status, const char *format, __gnuc_va_list ap)
+{
+ IEEE128_CALL (vwarnx) (format, ap);
+ exit (status);
+}
+IEEE128_ALIAS (verrx)
+
+void
+IEEE128_DECL (err) (int status, const char *format, ...)
+{
+ VA (verr (status, format, ap))
+}
+IEEE128_ALIAS (err)
+
+void
+IEEE128_DECL (errx) (int status, const char *format, ...)
+{
+ VA (verrx (status, format, ap))
+}
+IEEE128_ALIAS (errx)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-error.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-error.c
new file mode 100644
index 0000000000..3d4aa58d36
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-error.c
@@ -0,0 +1,51 @@
+/* Wrappers for error.h functions. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <error.h>
+#include <stdarg.h>
+#include <libio/libioP.h>
+
+#define IEEE128_ALIAS(name) \
+ strong_alias (___ieee128_##name, __##name##ieee128)
+
+#define IEEE128_DECL(name) ___ieee128_##name
+
+void
+IEEE128_DECL (error) (int status, int errnum, const char *message, ...)
+{
+ va_list ap;
+ va_start (ap, message);
+ __error_internal (status, errnum, message, ap,
+ PRINTF_LDBL_USES_FLOAT128);
+ va_end (ap);
+}
+IEEE128_ALIAS (error)
+
+void
+IEEE128_DECL (error_at_line) (int status, int errnum,
+ const char *file_name,
+ unsigned int line_number,
+ const char *message, ...)
+{
+ va_list ap;
+ va_start (ap, message);
+ __error_at_line_internal (status, errnum, file_name, line_number,
+ message, ap, PRINTF_LDBL_USES_FLOAT128);
+ va_end (ap);
+}
+IEEE128_ALIAS (error_at_line)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fprintf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fprintf.c
new file mode 100644
index 0000000000..ae62b55687
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fprintf.c
@@ -0,0 +1,34 @@
+/* Wrapper for fprintf. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdarg.h>
+#include <libio/libioP.h>
+
+extern int
+___ieee128_fprintf (FILE *fp, const char *format, ...)
+{
+ va_list ap;
+ int done;
+
+ va_start (ap, format);
+ done = __vfprintf_internal (fp, format, ap, PRINTF_LDBL_USES_FLOAT128);
+ va_end (ap);
+
+ return done;
+}
+strong_alias (___ieee128_fprintf, __fprintfieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fprintf_chk.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fprintf_chk.c
new file mode 100644
index 0000000000..3543222a68
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fprintf_chk.c
@@ -0,0 +1,38 @@
+/* Wrapper for __fprintf_chk. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdarg.h>
+#include <libio/libioP.h>
+
+extern int
+___ieee128_fprintf_chk (FILE *fp, int flag, const char *format, ...)
+{
+ va_list ap;
+ int done;
+
+ unsigned int mode = PRINTF_LDBL_USES_FLOAT128;
+ if (flag > 0)
+ mode |= PRINTF_FORTIFY;
+
+ va_start (ap, format);
+ done = __vfprintf_internal (fp, format, ap, mode);
+ va_end (ap);
+
+ return done;
+}
+strong_alias (___ieee128_fprintf_chk, __fprintf_chkieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fscanf.c
new file mode 100644
index 0000000000..6308e8c1f9
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fscanf.c
@@ -0,0 +1,34 @@
+/* Wrapper for fscanf. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdarg.h>
+#include <libio/libioP.h>
+
+extern int
+___ieee128_fscanf (FILE *fp, const char *format, ...)
+{
+ va_list arg;
+ int done;
+
+ va_start (arg, format);
+ done = __vfscanf_internal (fp, format, arg, SCANF_LDBL_USES_FLOAT128);
+ va_end (arg);
+
+ return done;
+}
+strong_alias (___ieee128_fscanf, __fscanfieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fwprintf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fwprintf.c
new file mode 100644
index 0000000000..bff51bb634
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fwprintf.c
@@ -0,0 +1,35 @@
+/* Wrapper for fwprintf. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdarg.h>
+#include <libio/libioP.h>
+
+extern int
+___ieee128_fwprintf (FILE *fp, const wchar_t *format, ...)
+{
+ va_list ap;
+ int done;
+
+ va_start (ap, format);
+ done = __vfwprintf_internal (fp, format, ap,
+ PRINTF_LDBL_USES_FLOAT128);
+ va_end (ap);
+
+ return done;
+}
+strong_alias (___ieee128_fwprintf, __fwprintfieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fwprintf_chk.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fwprintf_chk.c
new file mode 100644
index 0000000000..0baa3b5328
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fwprintf_chk.c
@@ -0,0 +1,38 @@
+/* Wrapper for __fwprintf_chk. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdarg.h>
+#include <libio/libioP.h>
+
+extern int
+___ieee128_fwprintf_chk (FILE *fp, int flag, const wchar_t *format, ...)
+{
+ va_list ap;
+ int done;
+
+ unsigned int mode = PRINTF_LDBL_USES_FLOAT128;
+ if (flag > 0)
+ mode |= PRINTF_FORTIFY;
+
+ va_start (ap, format);
+ done = __vfwprintf_internal (fp, format, ap, mode);
+ va_end (ap);
+
+ return done;
+}
+strong_alias (___ieee128_fwprintf_chk, __fwprintf_chkieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fwscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fwscanf.c
new file mode 100644
index 0000000000..9775e6d65d
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fwscanf.c
@@ -0,0 +1,35 @@
+/* Wrapper for fwscanf. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdarg.h>
+#include <libioP.h>
+
+extern int
+___ieee128_fwscanf (FILE *fp, const wchar_t *format, ...)
+{
+ va_list ap;
+ int done;
+
+ va_start (ap, format);
+ done = __vfwscanf_internal (fp, format, ap,
+ SCANF_LDBL_USES_FLOAT128);
+ va_end (ap);
+
+ return done;
+}
+strong_alias (___ieee128_fwscanf, __fwscanfieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_fscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_fscanf.c
new file mode 100644
index 0000000000..fd086133c3
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_fscanf.c
@@ -0,0 +1,35 @@
+/* Wrapper for __isoc99_fscanf. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdarg.h>
+#include <libio/libioP.h>
+
+extern int
+___ieee128_isoc99_fscanf (FILE *fp, const char *format, ...)
+{
+ va_list arg;
+ int done;
+ int mode_flags = SCANF_ISOC99_A | SCANF_LDBL_USES_FLOAT128;
+
+ va_start (arg, format);
+ done = __vfscanf_internal (fp, format, arg, mode_flags);
+ va_end (arg);
+
+ return done;
+}
+strong_alias (___ieee128_isoc99_fscanf, __isoc99_fscanfieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_fwscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_fwscanf.c
new file mode 100644
index 0000000000..8d5ef810de
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_fwscanf.c
@@ -0,0 +1,35 @@
+/* Wrapper for __isoc99_fwscanf. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdarg.h>
+#include <libioP.h>
+
+extern int
+___ieee128_isoc99_fwscanf (FILE *fp, const wchar_t *format, ...)
+{
+ va_list ap;
+ int done;
+ int mode_flags = SCANF_ISOC99_A | SCANF_LDBL_USES_FLOAT128;
+
+ va_start (ap, format);
+ done = __vfwscanf_internal (fp, format, ap, mode_flags);
+ va_end (ap);
+
+ return done;
+}
+strong_alias (___ieee128_isoc99_fwscanf, __isoc99_fwscanfieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_scanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_scanf.c
new file mode 100644
index 0000000000..87c9416232
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_scanf.c
@@ -0,0 +1,35 @@
+/* Wrapper for __isoc99_scanf. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdarg.h>
+#include <libio/libioP.h>
+
+extern int
+___ieee128_isoc99_scanf (const char *format, ...)
+{
+ va_list arg;
+ int done;
+ int mode_flags = SCANF_ISOC99_A | SCANF_LDBL_USES_FLOAT128;
+
+ va_start (arg, format);
+ done = __vfscanf_internal (stdin, format, arg, mode_flags);
+ va_end (arg);
+
+ return done;
+}
+strong_alias (___ieee128_isoc99_scanf, __isoc99_scanfieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_sscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_sscanf.c
new file mode 100644
index 0000000000..93be2f41cb
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_sscanf.c
@@ -0,0 +1,39 @@
+/* Wrapper for __isoc99_sscanf. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdarg.h>
+#include <strfile.h>
+#include <libioP.h>
+
+extern int
+___ieee128_isoc99_sscanf (const char *string, const char *format, ...)
+{
+ va_list arg;
+ int done;
+ int mode_flags = SCANF_ISOC99_A | SCANF_LDBL_USES_FLOAT128;
+
+ _IO_strfile sf;
+ FILE *fp = _IO_strfile_read (&sf, string);
+
+ va_start (arg, format);
+ done = __vfscanf_internal (fp, format, arg, mode_flags);
+ va_end (arg);
+
+ return done;
+}
+strong_alias (___ieee128_isoc99_sscanf, __isoc99_sscanfieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_swscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_swscanf.c
new file mode 100644
index 0000000000..da48f7e0e1
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_swscanf.c
@@ -0,0 +1,40 @@
+/* Wrapper for __isoc99_swscanf. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdarg.h>
+#include <strfile.h>
+#include <libioP.h>
+
+extern int
+___ieee128_isoc99_swscanf (const wchar_t *string, const wchar_t *format, ...)
+{
+ va_list ap;
+ int done;
+ int mode_flags = SCANF_ISOC99_A | SCANF_LDBL_USES_FLOAT128;
+
+ _IO_strfile sf;
+ struct _IO_wide_data wd;
+ FILE *fp = _IO_strfile_readw (&sf, &wd, string);
+
+ va_start (ap, format);
+ done = __vfwscanf_internal (fp, format, ap, mode_flags);
+ va_end (ap);
+
+ return done;
+}
+strong_alias (___ieee128_isoc99_swscanf, __isoc99_swscanfieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vfscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vfscanf.c
new file mode 100644
index 0000000000..00a018cd66
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vfscanf.c
@@ -0,0 +1,27 @@
+/* Wrapper for __isoc99_vfscanf. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <libio/libioP.h>
+
+extern int
+___ieee128_isoc99_vfscanf (FILE *fp, const char *format, va_list ap)
+{
+ int mode_flags = SCANF_ISOC99_A | SCANF_LDBL_USES_FLOAT128;
+ return __vfscanf_internal (fp, format, ap, mode_flags);
+}
+strong_alias (___ieee128_isoc99_vfscanf, __isoc99_vfscanfieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vfwscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vfwscanf.c
new file mode 100644
index 0000000000..6c1fbe7d65
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vfwscanf.c
@@ -0,0 +1,27 @@
+/* Wrapper for __isoc99_vfwscanf. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <libioP.h>
+
+extern int
+___ieee128_isoc99_vfwscanf (FILE *fp, const wchar_t *format, va_list ap)
+{
+ int mode_flags = SCANF_ISOC99_A | SCANF_LDBL_USES_FLOAT128;
+ return __vfwscanf_internal (fp, format, ap, mode_flags);
+}
+strong_alias (___ieee128_isoc99_vfwscanf, __isoc99_vfwscanfieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vscanf.c
new file mode 100644
index 0000000000..fa0b901fe3
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vscanf.c
@@ -0,0 +1,27 @@
+/* Wrapper for __isoc99_vscanf. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <libio/libioP.h>
+
+extern int
+___ieee128_isoc99_vscanf (const char *format, va_list ap)
+{
+ int mode_flags = SCANF_ISOC99_A | SCANF_LDBL_USES_FLOAT128;
+ return __vfscanf_internal (stdin, format, ap, mode_flags);
+}
+strong_alias (___ieee128_isoc99_vscanf, __isoc99_vscanfieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vsscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vsscanf.c
new file mode 100644
index 0000000000..bd59419018
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vsscanf.c
@@ -0,0 +1,30 @@
+/* Wrapper for __isoc99_vsscanf. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <strfile.h>
+#include <libioP.h>
+
+extern int
+___ieee128_isoc99_vsscanf (const char *string, const char *format, va_list ap)
+{
+ _IO_strfile sf;
+ FILE *fp = _IO_strfile_read (&sf, string);
+ int mode_flags = SCANF_ISOC99_A | SCANF_LDBL_USES_FLOAT128;
+ return __vfscanf_internal (fp, format, ap, mode_flags);
+}
+strong_alias (___ieee128_isoc99_vsscanf, __isoc99_vsscanfieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vswscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vswscanf.c
new file mode 100644
index 0000000000..875ea1cfea
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vswscanf.c
@@ -0,0 +1,32 @@
+/* Wrapper for __isoc99_vswscanf. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <libioP.h>
+#include <wchar.h>
+#include <strfile.h>
+
+extern int
+___ieee128_isoc99_vswscanf (wchar_t *string, const wchar_t *format, va_list ap)
+{
+ _IO_strfile sf;
+ struct _IO_wide_data wd;
+ FILE *fp = _IO_strfile_readw (&sf, &wd, string);
+ int mode_flags = SCANF_ISOC99_A | SCANF_LDBL_USES_FLOAT128;
+ return __vfwscanf_internal (fp, format, ap, mode_flags);
+}
+strong_alias (___ieee128_isoc99_vswscanf, __isoc99_vswscanfieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vwscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vwscanf.c
new file mode 100644
index 0000000000..3bda9b314d
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vwscanf.c
@@ -0,0 +1,27 @@
+/* Wrapper for __isoc99_vwscanf. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <libioP.h>
+
+extern int
+___ieee128_isoc99_vwscanf (const wchar_t *format, va_list ap)
+{
+ int mode_flags = SCANF_ISOC99_A | SCANF_LDBL_USES_FLOAT128;
+ return __vfwscanf_internal (stdin, format, ap, mode_flags);
+}
+strong_alias (___ieee128_isoc99_vwscanf, __isoc99_vwscanfieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_wscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_wscanf.c
new file mode 100644
index 0000000000..734b0f13d8
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_wscanf.c
@@ -0,0 +1,35 @@
+/* Wrapper for __isoc99_wscanf. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdarg.h>
+#include <libioP.h>
+
+extern int
+___ieee128_isoc99_wscanf (const wchar_t *format, ...)
+{
+ va_list ap;
+ int done;
+ int mode_flags = SCANF_ISOC99_A | SCANF_LDBL_USES_FLOAT128;
+
+ va_start (ap, format);
+ done = __vfwscanf_internal (stdin, format, ap, mode_flags);
+ va_end (ap);
+
+ return done;
+}
+strong_alias (___ieee128_isoc99_wscanf, __isoc99_wscanfieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-obprintf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-obprintf.c
new file mode 100644
index 0000000000..d70ea213fd
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-obprintf.c
@@ -0,0 +1,42 @@
+/* Wrapper for obstack_vprintf and obstack_printf. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdarg.h>
+#include <libio/libioP.h>
+
+int
+__ieee128_obstack_vprintf (struct obstack *obstack, const char *format,
+ va_list ap)
+{
+ return __obstack_vprintf_internal (obstack, format, ap,
+ PRINTF_LDBL_USES_FLOAT128);
+}
+strong_alias (__ieee128_obstack_vprintf, __obstack_vprintfieee128)
+
+int
+__ieee128_obstack_printf (struct obstack *obstack, const char *format, ...)
+{
+ int result;
+ va_list ap;
+ va_start (ap, format);
+ result = __obstack_vprintf_internal (obstack, format, ap,
+ PRINTF_LDBL_USES_FLOAT128);
+ va_end (ap);
+ return result;
+}
+strong_alias (__ieee128_obstack_printf, __obstack_printfieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-obstack_chk.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-obstack_chk.c
new file mode 100644
index 0000000000..db7c9fd768
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-obstack_chk.c
@@ -0,0 +1,39 @@
+/* Wrapper for __obstack_printf_chk. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdarg.h>
+#include <libio/libioP.h>
+
+extern int
+___ieee128_obstack_printf_chk (struct obstack *obstack, int flag,
+ const char *format, ...)
+{
+ va_list ap;
+ int done;
+
+ unsigned int mode = PRINTF_LDBL_USES_FLOAT128;
+ if (flag > 0)
+ mode |= PRINTF_FORTIFY;
+
+ va_start (ap, format);
+ done = __obstack_vprintf_internal (obstack, format, ap, mode);
+ va_end (ap);
+
+ return done;
+}
+strong_alias (___ieee128_obstack_printf_chk, __obstack_printf_chkieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-printf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-printf.c
new file mode 100644
index 0000000000..4a5228c231
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-printf.c
@@ -0,0 +1,35 @@
+/* Wrapper for printf. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdarg.h>
+#include <libio/libioP.h>
+
+extern int
+___ieee128_printf (const char *format, ...)
+{
+ va_list ap;
+ int done;
+
+ va_start (ap, format);
+ done = __vfprintf_internal (stdout, format, ap,
+ PRINTF_LDBL_USES_FLOAT128);
+ va_end (ap);
+
+ return done;
+}
+strong_alias (___ieee128_printf, __printfieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-printf_chk.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-printf_chk.c
new file mode 100644
index 0000000000..8ac3256a06
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-printf_chk.c
@@ -0,0 +1,38 @@
+/* Wrapper for __printf_chk. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdarg.h>
+#include <libio/libioP.h>
+
+extern int
+___ieee128_printf_chk (int flag, const char *format, ...)
+{
+ va_list ap;
+ int done;
+
+ unsigned int mode = PRINTF_LDBL_USES_FLOAT128;
+ if (flag > 0)
+ mode |= PRINTF_FORTIFY;
+
+ va_start (ap, format);
+ done = __vfprintf_internal (stdout, format, ap, mode);
+ va_end (ap);
+
+ return done;
+}
+strong_alias (___ieee128_printf_chk, __printf_chkieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-printf_size.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-printf_size.c
index 646f673648..c7576f1e85 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-printf_size.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-printf_size.c
@@ -1,5 +1,5 @@
/* Wrapper for printf_size. IEEE128 version.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <printf.h>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-scanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-scanf.c
new file mode 100644
index 0000000000..00cc5b9520
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-scanf.c
@@ -0,0 +1,34 @@
+/* Wrapper for scanf. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdarg.h>
+#include <libio/libioP.h>
+
+extern int
+___ieee128_scanf (const char *format, ...)
+{
+ va_list arg;
+ int done;
+
+ va_start (arg, format);
+ done = __vfscanf_internal (stdin, format, arg, SCANF_LDBL_USES_FLOAT128);
+ va_end (arg);
+
+ return done;
+}
+strong_alias (___ieee128_scanf, __scanfieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-snprintf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-snprintf.c
new file mode 100644
index 0000000000..af221b6e3a
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-snprintf.c
@@ -0,0 +1,35 @@
+/* Wrapper for snprintf. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdarg.h>
+#include <libio/libioP.h>
+
+extern int
+___ieee128_snprintf (char *s, size_t maxlen, const char *format, ...)
+{
+ va_list ap;
+ int done;
+
+ va_start (ap, format);
+ done = __vsnprintf_internal (s, maxlen, format, ap,
+ PRINTF_LDBL_USES_FLOAT128);
+ va_end (ap);
+
+ return done;
+}
+strong_alias (___ieee128_snprintf, __snprintfieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-snprintf_chk.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-snprintf_chk.c
new file mode 100644
index 0000000000..34daa4ba26
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-snprintf_chk.c
@@ -0,0 +1,42 @@
+/* Wrapper for __snprintf_chk. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdarg.h>
+#include <libio/libioP.h>
+
+extern int
+___ieee128_snprintf_chk (char *s, size_t maxlen, int flag, size_t slen,
+ const char *format, ...)
+{
+ va_list ap;
+ int done;
+
+ unsigned int mode = PRINTF_LDBL_USES_FLOAT128;
+ if (flag > 0)
+ mode |= PRINTF_FORTIFY;
+
+ if (__glibc_unlikely (slen < maxlen))
+ __chk_fail ();
+
+ va_start (ap, format);
+ done = __vsnprintf_internal (s, maxlen, format, ap, mode);
+ va_end (ap);
+
+ return done;
+}
+strong_alias (___ieee128_snprintf_chk, __snprintf_chkieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-sprintf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-sprintf.c
new file mode 100644
index 0000000000..c31b1e75c5
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-sprintf.c
@@ -0,0 +1,35 @@
+/* Wrapper for sprintf. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdarg.h>
+#include <libio/libioP.h>
+
+extern int
+___ieee128_sprintf (char *s, const char *format, ...)
+{
+ va_list ap;
+ int done;
+
+ va_start (ap, format);
+ done = __vsprintf_internal (s, -1, format, ap,
+ PRINTF_LDBL_USES_FLOAT128);
+ va_end (ap);
+
+ return done;
+}
+strong_alias (___ieee128_sprintf, __sprintfieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-sprintf_chk.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-sprintf_chk.c
new file mode 100644
index 0000000000..7d133d0216
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-sprintf_chk.c
@@ -0,0 +1,42 @@
+/* Wrapper for __sprintf_chk. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdarg.h>
+#include <libio/libioP.h>
+
+extern int
+___ieee128_sprintf_chk (char *s, int flag, size_t slen,
+ const char *format, ...)
+{
+ va_list ap;
+ int done;
+
+ unsigned int mode = PRINTF_LDBL_USES_FLOAT128;
+ if (flag > 0)
+ mode |= PRINTF_FORTIFY;
+
+ if (slen == 0)
+ __chk_fail ();
+
+ va_start (ap, format);
+ done = __vsprintf_internal (s, slen, format, ap, mode);
+ va_end (ap);
+
+ return done;
+}
+strong_alias (___ieee128_sprintf_chk, __sprintf_chkieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-sscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-sscanf.c
new file mode 100644
index 0000000000..d6ac121a57
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-sscanf.c
@@ -0,0 +1,38 @@
+/* Wrapper for sscanf. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdarg.h>
+#include <strfile.h>
+#include <libioP.h>
+
+extern int
+___ieee128_sscanf (const char *string, const char *format, ...)
+{
+ va_list arg;
+ int done;
+
+ _IO_strfile sf;
+ FILE *fp = _IO_strfile_read (&sf, string);
+
+ va_start (arg, format);
+ done = __vfscanf_internal (fp, format, arg, SCANF_LDBL_USES_FLOAT128);
+ va_end (arg);
+
+ return done;
+}
+strong_alias (___ieee128_sscanf, __sscanfieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-strfmon.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-strfmon.c
new file mode 100644
index 0000000000..c16e671795
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-strfmon.c
@@ -0,0 +1,35 @@
+/* Wrapper for strfmon. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <monetary.h>
+#include <stdarg.h>
+#include <locale/localeinfo.h>
+
+ssize_t
+___ieee128_strfmon (char *s, size_t maxsize, const char *format, ...)
+{
+ va_list ap;
+ ssize_t res;
+
+ va_start (ap, format);
+ res = __vstrfmon_l_internal (s, maxsize, _NL_CURRENT_LOCALE,
+ format, ap, STRFMON_LDBL_USES_FLOAT128);
+ va_end (ap);
+ return res;
+}
+weak_alias (___ieee128_strfmon, __strfmonieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-strfmon_l.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-strfmon_l.c
new file mode 100644
index 0000000000..b609c80ddc
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-strfmon_l.c
@@ -0,0 +1,35 @@
+/* Wrapper for strfmon_l. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <monetary.h>
+#include <stdarg.h>
+#include <locale/localeinfo.h>
+
+ssize_t
+___ieee128_strfmon_l (char *s, size_t maxsize, locale_t loc, const char *format, ...)
+{
+ va_list ap;
+ ssize_t res;
+
+ va_start (ap, format);
+ res = __vstrfmon_l_internal (s, maxsize, loc,
+ format, ap, STRFMON_LDBL_USES_FLOAT128);
+ va_end (ap);
+ return res;
+}
+weak_alias (___ieee128_strfmon_l, __strfmon_lieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-swprintf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-swprintf.c
new file mode 100644
index 0000000000..f8899b73ab
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-swprintf.c
@@ -0,0 +1,36 @@
+/* Wrapper for swprintf. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdarg.h>
+#include <libio/libioP.h>
+
+extern int
+___ieee128_swprintf (wchar_t *string, size_t maxlen,
+ const wchar_t *format, ...)
+{
+ va_list ap;
+ int done;
+
+ va_start (ap, format);
+ done = __vswprintf_internal (string, maxlen, format, ap,
+ PRINTF_LDBL_USES_FLOAT128);
+ va_end (ap);
+
+ return done;
+}
+strong_alias (___ieee128_swprintf, __swprintfieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-swprintf_chk.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-swprintf_chk.c
new file mode 100644
index 0000000000..d603d358d5
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-swprintf_chk.c
@@ -0,0 +1,42 @@
+/* Wrapper for __swprintf_chk. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdarg.h>
+#include <libio/libioP.h>
+
+extern int
+___ieee128_swprintf_chk (wchar_t *string, size_t maxlen, int flag,
+ size_t slen, const wchar_t *format, ...)
+{
+ va_list ap;
+ int done;
+
+ unsigned int mode = PRINTF_LDBL_USES_FLOAT128;
+ if (flag > 0)
+ mode |= PRINTF_FORTIFY;
+
+ if (__glibc_unlikely (slen < maxlen))
+ __chk_fail ();
+
+ va_start (ap, format);
+ done = __vswprintf_internal (string, maxlen, format, ap, mode);
+ va_end (ap);
+
+ return done;
+}
+strong_alias (___ieee128_swprintf_chk, __swprintf_chkieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-swscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-swscanf.c
new file mode 100644
index 0000000000..ef90e9c073
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-swscanf.c
@@ -0,0 +1,40 @@
+/* Wrapper for swscanf. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdarg.h>
+#include <strfile.h>
+#include <libioP.h>
+
+extern int
+___ieee128_swscanf (const wchar_t *string, const wchar_t *format, ...)
+{
+ va_list ap;
+ int done;
+
+ _IO_strfile sf;
+ struct _IO_wide_data wd;
+ FILE *fp = _IO_strfile_readw (&sf, &wd, string);
+
+ va_start (ap, format);
+ done = __vfwscanf_internal (fp, format, ap,
+ SCANF_LDBL_USES_FLOAT128);
+ va_end (ap);
+
+ return done;
+}
+strong_alias (___ieee128_swscanf, __swscanfieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-syslog.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-syslog.c
new file mode 100644
index 0000000000..225f62fe89
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-syslog.c
@@ -0,0 +1,65 @@
+/* Wrapper for syslog. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdarg.h>
+#include <libioP.h>
+#include <syslog.h>
+
+void
+___ieee128_syslog (int pri, const char *fmt, ...)
+{
+ va_list ap;
+
+ va_start (ap, fmt);
+ __vsyslog_internal (pri, fmt, ap, PRINTF_LDBL_USES_FLOAT128);
+ va_end (ap);
+}
+strong_alias (___ieee128_syslog, __syslogieee128)
+
+void
+___ieee128_vsyslog (int pri, const char *fmt, va_list ap)
+{
+ __vsyslog_internal (pri, fmt, ap, PRINTF_LDBL_USES_FLOAT128);
+}
+strong_alias (___ieee128_vsyslog, __vsyslogieee128)
+
+void
+___ieee128_syslog_chk (int pri, int flag, const char *fmt, ...)
+{
+ va_list ap;
+
+ unsigned int mode = PRINTF_LDBL_USES_FLOAT128;
+ if (flag > 0)
+ mode |= PRINTF_FORTIFY;
+
+ va_start (ap, fmt);
+ __vsyslog_internal (pri, fmt, ap, mode);
+ va_end (ap);
+}
+strong_alias (___ieee128_syslog_chk, __syslog_chkieee128)
+
+void
+___ieee128_vsyslog_chk (int pri, int flag, const char *fmt, va_list ap)
+{
+ unsigned int mode = PRINTF_LDBL_USES_FLOAT128;
+ if (flag > 0)
+ mode |= PRINTF_FORTIFY;
+
+ __vsyslog_internal (pri, fmt, ap, mode);
+}
+strong_alias (___ieee128_vsyslog_chk, __vsyslog_chkieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vasprintf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vasprintf.c
new file mode 100644
index 0000000000..3086f536e7
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vasprintf.c
@@ -0,0 +1,27 @@
+/* Wrapper for vasprintf. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <libio/libioP.h>
+
+extern int
+___ieee128_vasprintf (char **result_ptr, const char *format, va_list ap)
+{
+ return __vasprintf_internal (result_ptr, format, ap,
+ PRINTF_LDBL_USES_FLOAT128);
+}
+strong_alias (___ieee128_vasprintf, __vasprintfieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vasprintf_chk.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vasprintf_chk.c
new file mode 100644
index 0000000000..498b441b4c
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vasprintf_chk.c
@@ -0,0 +1,31 @@
+/* Wrapper for __vasprintf_chk. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <libio/libioP.h>
+
+extern int
+___ieee128_vasprintf_chk (char **result_ptr, int flag, const char *format,
+ va_list ap)
+{
+ unsigned int mode = PRINTF_LDBL_USES_FLOAT128;
+ if (flag > 0)
+ mode |= PRINTF_FORTIFY;
+
+ return __vasprintf_internal (result_ptr, format, ap, mode);
+}
+strong_alias (___ieee128_vasprintf_chk, __vasprintf_chkieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vdprintf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vdprintf.c
new file mode 100644
index 0000000000..d51cbddd64
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vdprintf.c
@@ -0,0 +1,26 @@
+/* Wrapper for vdprintf. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <libio/libioP.h>
+
+extern int
+___ieee128_vdprintf (int d, const char *format, va_list ap)
+{
+ return __vdprintf_internal (d, format, ap, PRINTF_LDBL_USES_FLOAT128);
+}
+strong_alias (___ieee128_vdprintf, __vdprintfieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vdprintf_chk.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vdprintf_chk.c
new file mode 100644
index 0000000000..72f9d0f85f
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vdprintf_chk.c
@@ -0,0 +1,30 @@
+/* Wrapper for __vdprintf_chk. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <libio/libioP.h>
+
+extern int
+___ieee128_vdprintf_chk (int d, int flag, const char *format, va_list ap)
+{
+ unsigned int mode = PRINTF_LDBL_USES_FLOAT128;
+ if (flag > 0)
+ mode |= PRINTF_FORTIFY;
+
+ return __vdprintf_internal (d, format, ap, mode);
+}
+strong_alias (___ieee128_vdprintf_chk, __vdprintf_chkieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfprintf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfprintf.c
new file mode 100644
index 0000000000..0d6ce7bd63
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfprintf.c
@@ -0,0 +1,26 @@
+/* Wrapper for vfprintf. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <libio/libioP.h>
+
+extern int
+___ieee128_vfprintf (FILE *fp, const char *format, va_list ap)
+{
+ return __vfprintf_internal (fp, format, ap, PRINTF_LDBL_USES_FLOAT128);
+}
+strong_alias (___ieee128_vfprintf, __vfprintfieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfprintf_chk.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfprintf_chk.c
new file mode 100644
index 0000000000..cc41020fb9
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfprintf_chk.c
@@ -0,0 +1,30 @@
+/* Wrapper for __vfprintf_chk. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <libio/libioP.h>
+
+extern int
+___ieee128_vfprintf_chk (FILE *fp, int flag, const char *format, va_list ap)
+{
+ unsigned int mode = PRINTF_LDBL_USES_FLOAT128;
+ if (flag > 0)
+ mode |= PRINTF_FORTIFY;
+
+ return __vfprintf_internal (fp, format, ap, mode);
+}
+strong_alias (___ieee128_vfprintf_chk, __vfprintf_chkieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfscanf.c
new file mode 100644
index 0000000000..93ec664755
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfscanf.c
@@ -0,0 +1,26 @@
+/* Wrapper for vfscanf. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <libio/libioP.h>
+
+extern int
+___ieee128_vfscanf (FILE *fp, const char *format, va_list ap)
+{
+ return __vfscanf_internal (fp, format, ap, SCANF_LDBL_USES_FLOAT128);
+}
+strong_alias (___ieee128_vfscanf, __vfscanfieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfwprintf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfwprintf.c
new file mode 100644
index 0000000000..ab9d274ded
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfwprintf.c
@@ -0,0 +1,27 @@
+/* Wrapper for vfwprintf. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <libio/libioP.h>
+
+extern int
+___ieee128_vfwprintf (FILE *fp, const wchar_t *format, va_list ap)
+{
+ return __vfwprintf_internal (fp, format, ap,
+ PRINTF_LDBL_USES_FLOAT128);
+}
+strong_alias (___ieee128_vfwprintf, __vfwprintfieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfwprintf_chk.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfwprintf_chk.c
new file mode 100644
index 0000000000..870b1561da
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfwprintf_chk.c
@@ -0,0 +1,31 @@
+/* Wrapper for __vfwprintf_chk. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <libio/libioP.h>
+
+extern int
+___ieee128_vfwprintf_chk (FILE *fp, int flag, const wchar_t *format,
+ va_list ap)
+{
+ unsigned int mode = PRINTF_LDBL_USES_FLOAT128;
+ if (flag > 0)
+ mode |= PRINTF_FORTIFY;
+
+ return __vfwprintf_internal (fp, format, ap, mode);
+}
+strong_alias (___ieee128_vfwprintf_chk, __vfwprintf_chkieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfwscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfwscanf.c
new file mode 100644
index 0000000000..d7cdff94de
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfwscanf.c
@@ -0,0 +1,27 @@
+/* Wrapper for vfwscanf. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <libioP.h>
+
+extern int
+___ieee128_vfwscanf (FILE *fp, const wchar_t *format, va_list ap)
+{
+ return __vfwscanf_internal (fp, format, ap,
+ SCANF_LDBL_USES_FLOAT128);
+}
+strong_alias (___ieee128_vfwscanf, __vfwscanfieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vobstack_chk.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vobstack_chk.c
new file mode 100644
index 0000000000..59641cf9e3
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vobstack_chk.c
@@ -0,0 +1,31 @@
+/* Wrapper for __obstack_vprintf_chk. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <libio/libioP.h>
+
+extern int
+___ieee128__obstack_vprintf_chk (struct obstack *obstack, int flag,
+ const char *format, va_list ap)
+{
+ unsigned int mode = PRINTF_LDBL_USES_FLOAT128;
+ if (flag > 0)
+ mode |= PRINTF_FORTIFY;
+
+ return __obstack_vprintf_internal (obstack, format, ap, mode);
+}
+strong_alias (___ieee128__obstack_vprintf_chk, __obstack_vprintf_chkieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vprintf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vprintf.c
new file mode 100644
index 0000000000..876ee5e4c1
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vprintf.c
@@ -0,0 +1,27 @@
+/* Wrapper for vprintf. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <libio/libioP.h>
+
+extern int
+___ieee128_vprintf (const char *format, va_list ap)
+{
+ return __vfprintf_internal (stdout, format, ap,
+ PRINTF_LDBL_USES_FLOAT128);
+}
+strong_alias (___ieee128_vprintf, __vprintfieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vprintf_chk.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vprintf_chk.c
new file mode 100644
index 0000000000..4222601b86
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vprintf_chk.c
@@ -0,0 +1,30 @@
+/* Wrapper for __vprintf_chk. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <libio/libioP.h>
+
+extern int
+___ieee128_vprintf_chk (int flag, const char *format, va_list ap)
+{
+ unsigned int mode = PRINTF_LDBL_USES_FLOAT128;
+ if (flag > 0)
+ mode |= PRINTF_FORTIFY;
+
+ return __vfprintf_internal (stdout, format, ap, mode);
+}
+strong_alias (___ieee128_vprintf_chk, __vprintf_chkieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vscanf.c
new file mode 100644
index 0000000000..7c05ce1be2
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vscanf.c
@@ -0,0 +1,26 @@
+/* Wrapper for vscanf. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <libio/libioP.h>
+
+extern int
+___ieee128_vscanf (const char *format, va_list ap)
+{
+ return __vfscanf_internal (stdin, format, ap, SCANF_LDBL_USES_FLOAT128);
+}
+strong_alias (___ieee128_vscanf, __vscanfieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsnprintf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsnprintf.c
new file mode 100644
index 0000000000..8637e468f2
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsnprintf.c
@@ -0,0 +1,28 @@
+/* Wrapper for vsnprintf. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <libio/libioP.h>
+
+extern int
+___ieee128_vsnprintf (char *string, size_t maxlen, const char *format,
+ va_list ap)
+{
+ return __vsnprintf_internal (string, maxlen, format, ap,
+ PRINTF_LDBL_USES_FLOAT128);
+}
+strong_alias (___ieee128_vsnprintf, __vsnprintfieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsnprintf_chk.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsnprintf_chk.c
new file mode 100644
index 0000000000..714d51c8d9
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsnprintf_chk.c
@@ -0,0 +1,34 @@
+/* Wrapper for __vsnprintf_chk. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <libio/libioP.h>
+
+extern int
+___ieee128_vsnprintf_chk (char *string, size_t maxlen, int flag,
+ size_t slen, const char *format, va_list ap)
+{
+ if (__glibc_unlikely (slen < maxlen))
+ __chk_fail ();
+
+ unsigned int mode = PRINTF_LDBL_USES_FLOAT128;
+ if (flag > 0)
+ mode |= PRINTF_FORTIFY;
+
+ return __vsnprintf_internal (string, maxlen, format, ap, mode);
+}
+strong_alias (___ieee128_vsnprintf_chk, __vsnprintf_chkieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsprintf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsprintf.c
new file mode 100644
index 0000000000..5361514b82
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsprintf.c
@@ -0,0 +1,27 @@
+/* Wrapper for vsprintf. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <libio/libioP.h>
+
+extern int
+___ieee128_vsprintf (char *string, const char *format, va_list ap)
+{
+ return __vsprintf_internal (string, -1, format, ap,
+ PRINTF_LDBL_USES_FLOAT128);
+}
+strong_alias (___ieee128_vsprintf, __vsprintfieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsprintf_chk.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsprintf_chk.c
new file mode 100644
index 0000000000..d8603f92bc
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsprintf_chk.c
@@ -0,0 +1,34 @@
+/* Wrapper for __vsprintf_chk. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <libio/libioP.h>
+
+extern int
+___ieee128_vsprintf_chk (char *string, int flag, size_t slen,
+ const char *format, va_list ap)
+{
+ unsigned int mode = PRINTF_LDBL_USES_FLOAT128;
+ if (flag > 0)
+ mode |= PRINTF_FORTIFY;
+
+ if (slen == 0)
+ __chk_fail ();
+
+ return __vsprintf_internal (string, slen, format, ap, mode);
+}
+strong_alias (___ieee128_vsprintf_chk, __vsprintf_chkieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsscanf.c
new file mode 100644
index 0000000000..75961ffe4d
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsscanf.c
@@ -0,0 +1,29 @@
+/* Wrapper for vsscanf. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <strfile.h>
+#include <libioP.h>
+
+extern int
+___ieee128_vsscanf (const char *string, const char *format, va_list ap)
+{
+ _IO_strfile sf;
+ FILE *fp = _IO_strfile_read (&sf, string);
+ return __vfscanf_internal (fp, format, ap, SCANF_LDBL_USES_FLOAT128);
+}
+strong_alias (___ieee128_vsscanf, __vsscanfieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vswprintf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vswprintf.c
new file mode 100644
index 0000000000..29107ef2ff
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vswprintf.c
@@ -0,0 +1,28 @@
+/* Wrapper for vswprintf. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <libio/libioP.h>
+
+extern int
+___ieee128_vswprintf (wchar_t *string, size_t maxlen,
+ const wchar_t *format, va_list ap)
+{
+ return __vswprintf_internal (string, maxlen, format, ap,
+ PRINTF_LDBL_USES_FLOAT128);
+}
+strong_alias (___ieee128_vswprintf, __vswprintfieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vswprintf_chk.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vswprintf_chk.c
new file mode 100644
index 0000000000..472cdb198c
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vswprintf_chk.c
@@ -0,0 +1,34 @@
+/* Wrapper for __vswprintf_chk. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <libio/libioP.h>
+
+extern int
+___ieee128_vswprintf_chk (wchar_t *string, size_t maxlen, int flag,
+ size_t slen, const wchar_t *format, va_list ap)
+{
+ unsigned int mode = PRINTF_LDBL_USES_FLOAT128;
+ if (flag > 0)
+ mode |= PRINTF_FORTIFY;
+
+ if (__glibc_unlikely (slen < maxlen))
+ __chk_fail ();
+
+ return __vswprintf_internal (string, maxlen, format, ap, mode);
+}
+strong_alias (___ieee128_vswprintf_chk, __vswprintf_chkieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vswscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vswscanf.c
new file mode 100644
index 0000000000..b8cb4409f9
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vswscanf.c
@@ -0,0 +1,32 @@
+/* Wrapper for vswscanf. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <libioP.h>
+#include <wchar.h>
+#include <strfile.h>
+
+extern int
+___ieee128_vswscanf (const wchar_t *string, const wchar_t *format,
+ va_list ap)
+{
+ _IO_strfile sf;
+ struct _IO_wide_data wd;
+ FILE *fp = _IO_strfile_readw (&sf, &wd, string);
+ return __vfwscanf_internal (fp, format, ap, SCANF_LDBL_USES_FLOAT128);
+}
+strong_alias (___ieee128_vswscanf, __vswscanfieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vwprintf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vwprintf.c
new file mode 100644
index 0000000000..40fd2dbc71
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vwprintf.c
@@ -0,0 +1,27 @@
+/* Wrapper for vwprintf. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <libio/libioP.h>
+
+extern int
+___ieee128_vwprintf (const wchar_t *format, va_list ap)
+{
+ return __vfwprintf_internal (stdout, format, ap,
+ PRINTF_LDBL_USES_FLOAT128);
+}
+strong_alias (___ieee128_vwprintf, __vwprintfieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vwprintf_chk.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vwprintf_chk.c
new file mode 100644
index 0000000000..ed22d69df6
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vwprintf_chk.c
@@ -0,0 +1,30 @@
+/* Wrapper for __vwprintf_chk. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <libio/libioP.h>
+
+extern int
+___ieee128_vwprintf_chk (int flag, const wchar_t *format, va_list ap)
+{
+ unsigned int mode = PRINTF_LDBL_USES_FLOAT128;
+ if (flag > 0)
+ mode |= PRINTF_FORTIFY;
+
+ return __vfwprintf_internal (stdout, format, ap, mode);
+}
+strong_alias (___ieee128_vwprintf_chk, __vwprintf_chkieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vwscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vwscanf.c
new file mode 100644
index 0000000000..3b32b32506
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vwscanf.c
@@ -0,0 +1,27 @@
+/* Wrapper for vwscanf. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <libioP.h>
+
+extern int
+___ieee128_vwscanf (const wchar_t *format, va_list ap)
+{
+ return __vfwscanf_internal (stdin, format, ap,
+ SCANF_LDBL_USES_FLOAT128);
+}
+strong_alias (___ieee128_vwscanf, __vwscanfieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-wprintf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-wprintf.c
new file mode 100644
index 0000000000..d0ec66e575
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-wprintf.c
@@ -0,0 +1,35 @@
+/* Wrapper for wprintf. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdarg.h>
+#include <libio/libioP.h>
+
+extern int
+___ieee128_wprintf (const wchar_t *format, ...)
+{
+ va_list ap;
+ int done;
+
+ va_start (ap, format);
+ done = __vfwprintf_internal (stdout, format, ap,
+ PRINTF_LDBL_USES_FLOAT128);
+ va_end (ap);
+
+ return done;
+}
+strong_alias (___ieee128_wprintf, __wprintfieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-wprintf_chk.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-wprintf_chk.c
new file mode 100644
index 0000000000..a737903097
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-wprintf_chk.c
@@ -0,0 +1,38 @@
+/* Wrapper for __wprintf_chk. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdarg.h>
+#include <libio/libioP.h>
+
+extern int
+___ieee128_wprintf_chk (int flag, const wchar_t *format, ...)
+{
+ va_list ap;
+ int done;
+
+ unsigned int mode = PRINTF_LDBL_USES_FLOAT128;
+ if (flag > 0)
+ mode |= PRINTF_FORTIFY;
+
+ va_start (ap, format);
+ done = __vfwprintf_internal (stdout, format, ap, mode);
+ va_end (ap);
+
+ return done;
+}
+strong_alias (___ieee128_wprintf_chk, __wprintf_chkieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-wscanf.c b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-wscanf.c
new file mode 100644
index 0000000000..302d8e30ca
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/ieee128-wscanf.c
@@ -0,0 +1,35 @@
+/* Wrapper for wscanf. IEEE128 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdarg.h>
+#include <libioP.h>
+
+extern int
+___ieee128_wscanf (const wchar_t *format, ...)
+{
+ va_list ap;
+ int done;
+
+ va_start (ap, format);
+ done = __vfwscanf_internal (stdin, format, ap,
+ SCANF_LDBL_USES_FLOAT128);
+ va_end (ap);
+
+ return done;
+}
+strong_alias (___ieee128_wscanf, __wscanfieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/libm-alias-float128.h b/sysdeps/ieee754/ldbl-128ibm-compat/libm-alias-float128.h
index a21dfcaea5..255bed14c9 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/libm-alias-float128.h
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/libm-alias-float128.h
@@ -1,5 +1,5 @@
/* Define aliases for libm _Float128 functions.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LIBM_ALIAS_FLOAT128_H
#define _LIBM_ALIAS_FLOAT128_H
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/strfromf128.c b/sysdeps/ieee754/ldbl-128ibm-compat/strfromf128.c
index 21eeb94af0..54a9236b5e 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/strfromf128.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/strfromf128.c
@@ -1,6 +1,6 @@
/* Definitions for strfromf128.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-2019 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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "../float128/strfromf128.c"
weak_alias (strfromf128, __strfromieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/strtof128.c b/sysdeps/ieee754/ldbl-128ibm-compat/strtof128.c
index 0cbdc2bc27..81ae019cf2 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/strtof128.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/strtof128.c
@@ -1,5 +1,5 @@
/* Definition of strtof128.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "../float128/strtof128.c"
weak_alias (strtof128, __strtoieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/strtof128_l.c b/sysdeps/ieee754/ldbl-128ibm-compat/strtof128_l.c
index 1a166cd4b0..4a4f4dbf69 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/strtof128_l.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/strtof128_l.c
@@ -1,5 +1,5 @@
/* Convert string representing a number to a _Float128 value, with locale.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "../float128/strtof128_l.c"
weak_alias (strtof128_l, __strtoieee128_l)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-isoc99-scanf-ibm128.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-isoc99-scanf-ibm128.c
new file mode 100644
index 0000000000..8cdee601f2
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-isoc99-scanf-ibm128.c
@@ -0,0 +1 @@
+#include <test-scanf-ldbl-compat.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-isoc99-scanf-ieee128.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-isoc99-scanf-ieee128.c
new file mode 100644
index 0000000000..8cdee601f2
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-isoc99-scanf-ieee128.c
@@ -0,0 +1 @@
+#include <test-scanf-ldbl-compat.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-isoc99-wscanf-ibm128.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-isoc99-wscanf-ibm128.c
new file mode 100644
index 0000000000..ef21fc4741
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-isoc99-wscanf-ibm128.c
@@ -0,0 +1 @@
+#include <test-wscanf-ldbl-compat.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-isoc99-wscanf-ieee128.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-isoc99-wscanf-ieee128.c
new file mode 100644
index 0000000000..ef21fc4741
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-isoc99-wscanf-ieee128.c
@@ -0,0 +1 @@
+#include <test-wscanf-ldbl-compat.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-obstack-chk-ibm128.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-obstack-chk-ibm128.c
new file mode 100644
index 0000000000..ca4c9f2d22
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-obstack-chk-ibm128.c
@@ -0,0 +1 @@
+#include <test-obstack-chk-ldbl-compat.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-obstack-chk-ieee128.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-obstack-chk-ieee128.c
new file mode 100644
index 0000000000..ca4c9f2d22
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-obstack-chk-ieee128.c
@@ -0,0 +1 @@
+#include <test-obstack-chk-ldbl-compat.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-obstack-chk-ldbl-compat.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-obstack-chk-ldbl-compat.c
new file mode 100644
index 0000000000..feae8f21c6
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-obstack-chk-ldbl-compat.c
@@ -0,0 +1,6 @@
+#define _FORTIFY_SOURCE 2
+#define OBSTACK_FUNCTION __obstack_printf_chk
+#define OBSTACK_FUNCTION_PARAMS (&ob, 1, "%.30Lf", ld)
+#define VOBSTACK_FUNCTION __obstack_vprintf_chk
+#define VOBSTACK_FUNCTION_PARAMS (&ob, 1, "%.30Lf", ap)
+#include <test-obstack-ldbl-compat-template.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-obstack-ibm128.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-obstack-ibm128.c
new file mode 100644
index 0000000000..be88675030
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-obstack-ibm128.c
@@ -0,0 +1 @@
+#include <test-obstack-ldbl-compat.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-obstack-ieee128.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-obstack-ieee128.c
new file mode 100644
index 0000000000..be88675030
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-obstack-ieee128.c
@@ -0,0 +1 @@
+#include <test-obstack-ldbl-compat.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-obstack-ldbl-compat-template.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-obstack-ldbl-compat-template.c
new file mode 100644
index 0000000000..9046ccd1cc
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-obstack-ldbl-compat-template.c
@@ -0,0 +1,64 @@
+/* Test for the long double variants of obstrack*printf functions.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <malloc.h>
+#include <obstack.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdarg.h>
+
+#include <support/check.h>
+
+#define obstack_chunk_alloc malloc
+#define obstack_chunk_free free
+
+static void
+do_test_call (void *last, ...)
+{
+ const char *expected = "-1.000000000000000000000000000000";
+ char *actual = NULL;
+ long double ld = -1;
+ struct obstack ob;
+ va_list ap;
+
+ obstack_init (&ob);
+ OBSTACK_FUNCTION OBSTACK_FUNCTION_PARAMS;
+ actual = (char *) obstack_finish (&ob);
+ TEST_VERIFY (strncmp (expected, actual, 33) == 0);
+ obstack_free (&ob, NULL);
+ actual = NULL;
+
+ obstack_init (&ob);
+ va_start (ap, last);
+ VOBSTACK_FUNCTION VOBSTACK_FUNCTION_PARAMS;
+ va_end (ap);
+ actual = (char *) obstack_finish (&ob);
+ TEST_VERIFY (strncmp (expected, actual, 33) == 0);
+ obstack_free (&ob, NULL);
+ actual = NULL;
+}
+
+static int
+do_test (void)
+{
+ long double ld = -1;
+ do_test_call (NULL, ld);
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-obstack-ldbl-compat.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-obstack-ldbl-compat.c
new file mode 100644
index 0000000000..3849d25ef1
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-obstack-ldbl-compat.c
@@ -0,0 +1,6 @@
+#define _FORTIFY_SOURCE 0
+#define OBSTACK_FUNCTION obstack_printf
+#define OBSTACK_FUNCTION_PARAMS (&ob, "%.30Lf", ld)
+#define VOBSTACK_FUNCTION obstack_vprintf
+#define VOBSTACK_FUNCTION_PARAMS (&ob, "%.30Lf", ap)
+#include <test-obstack-ldbl-compat-template.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-ibm128.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-ibm128.c
new file mode 100644
index 0000000000..7d50284d9c
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-ibm128.c
@@ -0,0 +1 @@
+#include <test-printf-chk-ldbl-compat.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-ieee128.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-ieee128.c
new file mode 100644
index 0000000000..7d50284d9c
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-ieee128.c
@@ -0,0 +1 @@
+#include <test-printf-chk-ldbl-compat.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-ldbl-compat.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-ldbl-compat.c
new file mode 100644
index 0000000000..697b825c22
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-ldbl-compat.c
@@ -0,0 +1,191 @@
+/* Test for the long double variants of *printf_chk functions.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#define _FORTIFY_SOURCE 2
+
+#include <stdarg.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#include <support/capture_subprocess.h>
+#include <support/check.h>
+
+static void
+do_test_call_varg (FILE *stream, const char *format, ...)
+{
+ char *buffer = NULL;
+ char string[128];
+ int res;
+ va_list args;
+
+ printf ("%20s", "__vasprintf_chk: ");
+ va_start (args, format);
+ res = __vasprintf_chk (&buffer, 1, format, args);
+ va_end (args);
+ if (res == -1)
+ printf ("Error using vasprintf\n");
+ if (buffer == NULL)
+ printf ("Error using vasprintf\n");
+ else
+ {
+ printf ("%s", buffer);
+ free (buffer);
+ }
+ printf ("\n");
+
+ printf ("%20s", "__vdprintf_chk: ");
+ va_start (args, format);
+ __vdprintf_chk (fileno (stream), 1, format, args);
+ va_end (args);
+ printf ("\n");
+
+ printf ("%20s", "__vfprintf_chk: ");
+ va_start (args, format);
+ __vfprintf_chk (stream, 1, format, args);
+ va_end (args);
+ printf ("\n");
+
+ printf ("%20s", "__vprintf_chk: ");
+ va_start (args, format);
+ __vprintf_chk (1, format, args);
+ va_end (args);
+ printf ("\n");
+
+ printf ("%20s", "__vsnprintf_chk: ");
+ va_start (args, format);
+ __vsnprintf_chk (string, 79, 1, 127, format, args);
+ va_end (args);
+ printf ("%s", string);
+ printf ("\n");
+
+ printf ("%20s", "__vsprintf_chk: ");
+ va_start (args, format);
+ __vsprintf_chk (string, 1, 127, format, args);
+ va_end (args);
+ printf ("%s", string);
+ printf ("\n");
+}
+
+static void
+do_test_call_rarg (FILE *stream, const char *format, long double ld,
+ double d)
+{
+ char *buffer = NULL;
+ char string[128];
+ int res;
+
+ printf ("%20s", "__asprintf_chk: ");
+ res = __asprintf_chk (&buffer, 1, format, ld, d);
+ if (res == -1)
+ printf ("Error using vasprintf\n");
+ if (buffer == NULL)
+ printf ("Error using asprintf\n");
+ else
+ {
+ printf ("%s", buffer);
+ free (buffer);
+ }
+ printf ("\n");
+
+ printf ("%20s", "__dprintf_chk: ");
+ __dprintf_chk (fileno (stream), 1, format, ld, d);
+ printf ("\n");
+
+ printf ("%20s", "__fprintf_chk: ");
+ __fprintf_chk (stdout, 1, format, ld, d);
+ printf ("\n");
+
+ printf ("%20s", "__printf_chk: ");
+ __printf_chk (1, format, ld, d);
+ printf ("\n");
+
+ printf ("%20s", "__snprintf_chk: ");
+ __snprintf_chk (string, 79, 1, 127, format, ld, d);
+ printf ("%s", string);
+ printf ("\n");
+
+ printf ("%20s", "__sprintf_chk: ");
+ __sprintf_chk (string, 1, 127, format, ld, d);
+ printf ("%s", string);
+ printf ("\n");
+}
+
+static void
+do_test_call (void)
+{
+ long double ld = -1;
+ double d = -1;
+
+ /* Print in decimal notation. */
+ do_test_call_rarg (stdout, "%.10Lf, %.10f", ld, d);
+ do_test_call_varg (stdout, "%.10Lf, %.10f", ld, d);
+
+ /* Print in hexadecimal notation. */
+ do_test_call_rarg (stdout, "%.10La, %.10a", ld, d);
+ do_test_call_varg (stdout, "%.10La, %.10a", ld, d);
+
+ /* Test positional parameters. */
+ do_test_call_varg (stdout, "%3$Lf, %2$Lf, %1$f",
+ (double) 1, (long double) 2, (long double) 3);
+}
+
+static int
+do_test (void)
+{
+ struct support_capture_subprocess result;
+ result = support_capture_subprocess ((void *) &do_test_call, NULL);
+
+ /* Compare against the expected output. */
+ const char *expected =
+ " __asprintf_chk: -1.0000000000, -1.0000000000\n"
+ " __dprintf_chk: -1.0000000000, -1.0000000000\n"
+ " __fprintf_chk: -1.0000000000, -1.0000000000\n"
+ " __printf_chk: -1.0000000000, -1.0000000000\n"
+ " __snprintf_chk: -1.0000000000, -1.0000000000\n"
+ " __sprintf_chk: -1.0000000000, -1.0000000000\n"
+ " __vasprintf_chk: -1.0000000000, -1.0000000000\n"
+ " __vdprintf_chk: -1.0000000000, -1.0000000000\n"
+ " __vfprintf_chk: -1.0000000000, -1.0000000000\n"
+ " __vprintf_chk: -1.0000000000, -1.0000000000\n"
+ " __vsnprintf_chk: -1.0000000000, -1.0000000000\n"
+ " __vsprintf_chk: -1.0000000000, -1.0000000000\n"
+ " __asprintf_chk: -0x1.0000000000p+0, -0x1.0000000000p+0\n"
+ " __dprintf_chk: -0x1.0000000000p+0, -0x1.0000000000p+0\n"
+ " __fprintf_chk: -0x1.0000000000p+0, -0x1.0000000000p+0\n"
+ " __printf_chk: -0x1.0000000000p+0, -0x1.0000000000p+0\n"
+ " __snprintf_chk: -0x1.0000000000p+0, -0x1.0000000000p+0\n"
+ " __sprintf_chk: -0x1.0000000000p+0, -0x1.0000000000p+0\n"
+ " __vasprintf_chk: -0x1.0000000000p+0, -0x1.0000000000p+0\n"
+ " __vdprintf_chk: -0x1.0000000000p+0, -0x1.0000000000p+0\n"
+ " __vfprintf_chk: -0x1.0000000000p+0, -0x1.0000000000p+0\n"
+ " __vprintf_chk: -0x1.0000000000p+0, -0x1.0000000000p+0\n"
+ " __vsnprintf_chk: -0x1.0000000000p+0, -0x1.0000000000p+0\n"
+ " __vsprintf_chk: -0x1.0000000000p+0, -0x1.0000000000p+0\n"
+ " __vasprintf_chk: 3.000000, 2.000000, 1.000000\n"
+ " __vdprintf_chk: 3.000000, 2.000000, 1.000000\n"
+ " __vfprintf_chk: 3.000000, 2.000000, 1.000000\n"
+ " __vprintf_chk: 3.000000, 2.000000, 1.000000\n"
+ " __vsnprintf_chk: 3.000000, 2.000000, 1.000000\n"
+ " __vsprintf_chk: 3.000000, 2.000000, 1.000000\n";
+ TEST_COMPARE_STRING (expected, result.out.buffer);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-redir-ibm128.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-redir-ibm128.c
new file mode 100644
index 0000000000..aeab22412b
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-redir-ibm128.c
@@ -0,0 +1,2 @@
+#define _FORTIFY_SOURCE 2
+#include <sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ldbl-compat.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-redir-ieee128.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-redir-ieee128.c
new file mode 100644
index 0000000000..aeab22412b
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-redir-ieee128.c
@@ -0,0 +1,2 @@
+#define _FORTIFY_SOURCE 2
+#include <sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ldbl-compat.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ibm128.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ibm128.c
new file mode 100644
index 0000000000..5de4ea3e7f
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ibm128.c
@@ -0,0 +1 @@
+#include <test-printf-ldbl-compat.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ieee128.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ieee128.c
new file mode 100644
index 0000000000..5de4ea3e7f
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ieee128.c
@@ -0,0 +1 @@
+#include <test-printf-ldbl-compat.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ldbl-compat.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ldbl-compat.c
new file mode 100644
index 0000000000..c6598da36b
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ldbl-compat.c
@@ -0,0 +1,182 @@
+/* Test for the long double variants of *printf functions.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdarg.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#include <support/capture_subprocess.h>
+#include <support/check.h>
+
+static void
+do_test_call_varg (FILE *stream, const char *format, ...)
+{
+ char *buffer = NULL;
+ char string[128];
+ va_list args;
+
+ printf ("%15s", "vasprintf: ");
+ va_start (args, format);
+ vasprintf (&buffer, format, args);
+ va_end (args);
+ if (buffer == NULL)
+ printf ("Error using vasprintf\n");
+ else
+ {
+ printf ("%s", buffer);
+ free (buffer);
+ }
+ printf ("\n");
+
+ printf ("%15s", "vdprintf: ");
+ va_start (args, format);
+ vdprintf (fileno (stream), format, args);
+ va_end (args);
+ printf ("\n");
+
+ printf ("%15s", "vfprintf: ");
+ va_start (args, format);
+ vfprintf (stream, format, args);
+ va_end (args);
+ printf ("\n");
+
+ printf ("%15s", "vprintf: ");
+ va_start (args, format);
+ vprintf (format, args);
+ va_end (args);
+ printf ("\n");
+
+ printf ("%15s", "vsnprintf: ");
+ va_start (args, format);
+ vsnprintf (string, 127, format, args);
+ va_end (args);
+ printf ("%s", string);
+ printf ("\n");
+
+ printf ("%15s", "vsprintf: ");
+ va_start (args, format);
+ vsprintf (string, format, args);
+ va_end (args);
+ printf ("%s", string);
+ printf ("\n");
+}
+
+static void
+do_test_call_rarg (FILE *stream, const char *format, long double ld, double d)
+{
+ char *buffer = NULL;
+ char string[128];
+
+ printf ("%15s", "asprintf: ");
+ asprintf (&buffer, format, ld, d);
+ if (buffer == NULL)
+ printf ("Error using asprintf\n");
+ else
+ {
+ printf ("%s", buffer);
+ free (buffer);
+ }
+ printf ("\n");
+
+ printf ("%15s", "dprintf: ");
+ dprintf (fileno (stream), format, ld, d);
+ printf ("\n");
+
+ printf ("%15s", "fprintf: ");
+ fprintf (stream, format, ld, d);
+ printf ("\n");
+
+ printf ("%15s", "printf: ");
+ printf (format, ld, d);
+ printf ("\n");
+
+ printf ("%15s", "snprintf: ");
+ snprintf (string, 127, format, ld, d);
+ printf ("%s", string);
+ printf ("\n");
+
+ printf ("%15s", "sprintf: ");
+ sprintf (string, format, ld, d);
+ printf ("%s", string);
+ printf ("\n");
+}
+
+static void
+do_test_call (void)
+{
+ long double ld = -1;
+ double d = -1;
+
+ /* Print in decimal notation. */
+ do_test_call_rarg (stdout, "%.10Lf, %.10f", ld, d);
+ do_test_call_varg (stdout, "%.10Lf, %.10f", ld, d);
+
+ /* Print in hexadecimal notation. */
+ do_test_call_rarg (stdout, "%.10La, %.10a", ld, d);
+ do_test_call_varg (stdout, "%.10La, %.10a", ld, d);
+
+ /* Test positional parameters. */
+ do_test_call_varg (stdout, "%3$Lf, %2$Lf, %1$f",
+ (double) 1, (long double) 2, (long double) 3);
+}
+
+static int
+do_test (void)
+{
+ struct support_capture_subprocess result;
+ result = support_capture_subprocess ((void *) &do_test_call, NULL);
+
+ /* Compare against the expected output. */
+ const char *expected =
+ " asprintf: -1.0000000000, -1.0000000000\n"
+ " dprintf: -1.0000000000, -1.0000000000\n"
+ " fprintf: -1.0000000000, -1.0000000000\n"
+ " printf: -1.0000000000, -1.0000000000\n"
+ " snprintf: -1.0000000000, -1.0000000000\n"
+ " sprintf: -1.0000000000, -1.0000000000\n"
+ " vasprintf: -1.0000000000, -1.0000000000\n"
+ " vdprintf: -1.0000000000, -1.0000000000\n"
+ " vfprintf: -1.0000000000, -1.0000000000\n"
+ " vprintf: -1.0000000000, -1.0000000000\n"
+ " vsnprintf: -1.0000000000, -1.0000000000\n"
+ " vsprintf: -1.0000000000, -1.0000000000\n"
+ " asprintf: -0x1.0000000000p+0, -0x1.0000000000p+0\n"
+ " dprintf: -0x1.0000000000p+0, -0x1.0000000000p+0\n"
+ " fprintf: -0x1.0000000000p+0, -0x1.0000000000p+0\n"
+ " printf: -0x1.0000000000p+0, -0x1.0000000000p+0\n"
+ " snprintf: -0x1.0000000000p+0, -0x1.0000000000p+0\n"
+ " sprintf: -0x1.0000000000p+0, -0x1.0000000000p+0\n"
+ " vasprintf: -0x1.0000000000p+0, -0x1.0000000000p+0\n"
+ " vdprintf: -0x1.0000000000p+0, -0x1.0000000000p+0\n"
+ " vfprintf: -0x1.0000000000p+0, -0x1.0000000000p+0\n"
+ " vprintf: -0x1.0000000000p+0, -0x1.0000000000p+0\n"
+ " vsnprintf: -0x1.0000000000p+0, -0x1.0000000000p+0\n"
+ " vsprintf: -0x1.0000000000p+0, -0x1.0000000000p+0\n"
+ " vasprintf: 3.000000, 2.000000, 1.000000\n"
+ " vdprintf: 3.000000, 2.000000, 1.000000\n"
+ " vfprintf: 3.000000, 2.000000, 1.000000\n"
+ " vprintf: 3.000000, 2.000000, 1.000000\n"
+ " vsnprintf: 3.000000, 2.000000, 1.000000\n"
+ " vsprintf: 3.000000, 2.000000, 1.000000\n";
+ TEST_COMPARE_STRING (expected, result.out.buffer);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ibm128.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ibm128.c
new file mode 100644
index 0000000000..8cdee601f2
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ibm128.c
@@ -0,0 +1 @@
+#include <test-scanf-ldbl-compat.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ieee128.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ieee128.c
new file mode 100644
index 0000000000..8cdee601f2
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ieee128.c
@@ -0,0 +1 @@
+#include <test-scanf-ldbl-compat.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat-template.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat-template.c
new file mode 100644
index 0000000000..9bdf6daa0b
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat-template.c
@@ -0,0 +1,134 @@
+/* Test for the long double variants of *scanf functions.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdarg.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <string.h>
+#include <wchar.h>
+
+#include <support/check.h>
+
+#define CLEAR_VARGS \
+ va_start (args, format); \
+ ldptr = va_arg (args, long double *); \
+ fptr = va_arg (args, float *); \
+ *ldptr = 0; \
+ *fptr = 0; \
+ va_end (args);
+
+#define CHECK_VARGS \
+ va_start (args, format); \
+ ldptr = va_arg (args, long double *); \
+ fptr = va_arg (args, float *); \
+ va_end (args); \
+ if (*ldptr == -1 && *fptr == -2) \
+ printf ("OK"); \
+ else \
+ printf ("ERROR (%Lf %f)", *ldptr, *fptr); \
+ printf ("\n");
+
+#define CLEAR_VALUE \
+ ld = 0; \
+ f = 0;
+
+#define CHECK_VALUE \
+ if (ld == -1 && f == -2) \
+ printf ("OK"); \
+ else \
+ printf ("ERROR (%Lf %f)", ld, f); \
+ printf ("\n");
+
+static void
+do_test_call (FILE *stream, CHAR *string, const CHAR *format, ...)
+{
+ float f;
+ long double ld;
+ float *fptr;
+ long double *ldptr;
+ va_list args;
+
+ CLEAR_VALUE
+ printf ("fscanf: ");
+ FSCANF (stream, format, &ld, &f);
+ CHECK_VALUE
+
+ CLEAR_VALUE
+ printf ("scanf: ");
+ SCANF (format, &ld, &f);
+ CHECK_VALUE
+
+ CLEAR_VALUE
+ printf ("sscanf: ");
+ SSCANF (string, format, &ld, &f);
+ CHECK_VALUE
+
+ CLEAR_VARGS
+ printf ("vfscanf: ");
+ va_start (args, format);
+ VFSCANF (stream, format, args);
+ va_end (args);
+ CHECK_VARGS
+
+ CLEAR_VARGS
+ printf ("vscanf: ");
+ va_start (args, format);
+ VSCANF (format, args);
+ va_end (args);
+ CHECK_VARGS
+
+ CLEAR_VARGS
+ printf ("vsscanf: ");
+ va_start (args, format);
+ VSSCANF (string, format, args);
+ va_end (args);
+ CHECK_VARGS
+}
+
+static int
+do_test (void)
+{
+ CHAR string[256];
+ float f;
+ long double ld;
+
+ /* Scan in decimal notation. */
+ STRCPY (string,
+ L ("-1.0 -2.0\n")
+ L ("-1.0 -2.0\n") );
+ do_test_call (stdin, string, L("%Lf %f"), &ld, &f);
+
+ /* Scan in hexadecimal notation. */
+ STRCPY (string,
+ L ("-0x1.0p+0 -0x2.0p+0\n")
+ L ("-0x1.0p+0 -0x2.0p+0\n") );
+ /* For ISO C99, scan the single-precision value with "%as" to test
+ that __isoc99_*scanf ignores the 's'. For DEPRECATED_SCANF, do not
+ use "%as", because that would try to scan a string and allocate
+ space for it. */
+#if __GLIBC_USE (DEPRECATED_SCANF)
+# define FMT "%La %a"
+#else
+# define FMT "%La %as"
+#endif
+ do_test_call (stdin, string, L(FMT), &ld, &f);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat.c
new file mode 100644
index 0000000000..e25652c963
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat.c
@@ -0,0 +1,15 @@
+/* Include stdio.h from libio/, because include/stdio.h and -std=c89 do
+ not work together. */
+#include <libio/stdio.h>
+
+#define CHAR char
+#define Lx(x) x
+#define L(x) Lx (x)
+#define FSCANF fscanf
+#define SSCANF sscanf
+#define SCANF scanf
+#define VFSCANF vfscanf
+#define VSSCANF vsscanf
+#define VSCANF vscanf
+#define STRCPY strcpy
+#include <test-scanf-ldbl-compat-template.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat.sh b/sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat.sh
new file mode 100644
index 0000000000..e022120c8e
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat.sh
@@ -0,0 +1,63 @@
+#!/bin/sh
+# Testing of *scanf. IEEE binary128 for powerpc64le version.
+# 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; if not, see
+# <https://www.gnu.org/licenses/>.
+
+set -e
+
+test_program=$1; shift
+test_program_prefix=$1; shift
+test_program_output=$1; shift
+
+status=0
+
+cat <<'EOF' |
+-0x1.0p+0 -0x2.0p+0
+-0x1.0p+0 -0x2.0p+0
+-0x1.0p+0 -0x2.0p+0
+-0x1.0p+0 -0x2.0p+0
+-0x1.0p+0 -0x2.0p+0
+-0x1.0p+0 -0x2.0p+0
+-0x1.0p+0 -0x2.0p+0
+-0x1.0p+0 -0x2.0p+0
+EOF
+${test_program_prefix} \
+ ${test_program} \
+ - \
+ > ${test_program_output} || status=1
+
+cat <<'EOF' |
+fscanf: OK
+scanf: OK
+sscanf: OK
+vfscanf: OK
+vscanf: OK
+vsscanf: OK
+fscanf: OK
+scanf: OK
+sscanf: OK
+vfscanf: OK
+vscanf: OK
+vsscanf: OK
+EOF
+cmp - ${test_program_output} > /dev/null 2>&1 ||
+{
+ status=1
+ echo "*** output comparison failed"
+}
+
+exit $status
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-strfmon-ibm128.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-strfmon-ibm128.c
new file mode 100644
index 0000000000..5d1def86af
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-strfmon-ibm128.c
@@ -0,0 +1 @@
+#include <test-strfmon-ldbl-compat.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-strfmon-ieee128.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-strfmon-ieee128.c
new file mode 100644
index 0000000000..5d1def86af
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-strfmon-ieee128.c
@@ -0,0 +1 @@
+#include <test-strfmon-ldbl-compat.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-strfmon-ldbl-compat.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-strfmon-ldbl-compat.c
new file mode 100644
index 0000000000..64f4b75153
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-strfmon-ldbl-compat.c
@@ -0,0 +1,59 @@
+/* Test for the long double variants of strfmon* functions.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <locale/locale.h>
+#include <monetary.h>
+
+#include <support/check.h>
+
+static int
+do_test (void)
+{
+ size_t written;
+ char buffer[64];
+ char *bufptr = buffer;
+ locale_t loc;
+
+ /* Using the C locale is enough for the purpose of this test case,
+ i.e.: to test that strfmon correctly reads long double values with
+ binary128 format. Grouping and currency are irrelevant, here. */
+ setlocale (LC_MONETARY, "C");
+ loc = newlocale (LC_MONETARY_MASK, "C", (locale_t) 0);
+
+ /* Write to the buffer. */
+ written = strfmon (bufptr, 32, "%.10i, %.10Li\n",
+ (double) -2, (long double) -1);
+ if (written < 0)
+ support_record_failure ();
+ else
+ bufptr += written;
+ written = strfmon_l (bufptr, 32, loc, "%.10i, %.10Li\n",
+ (double) -2, (long double) -1);
+ if (written < 0)
+ support_record_failure ();
+
+ /* Compare against the expected output. */
+ const char *expected =
+ "-2.0000000000, -1.0000000000\n"
+ "-2.0000000000, -1.0000000000\n";
+ TEST_COMPARE_STRING (expected, buffer);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-strfrom-ibm128.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-strfrom-ibm128.c
new file mode 100644
index 0000000000..93887706b9
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-strfrom-ibm128.c
@@ -0,0 +1 @@
+#include <test-strfrom-ldbl-compat.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-strfrom-ieee128.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-strfrom-ieee128.c
new file mode 100644
index 0000000000..93887706b9
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-strfrom-ieee128.c
@@ -0,0 +1 @@
+#include <test-strfrom-ldbl-compat.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-strfrom-ldbl-compat.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-strfrom-ldbl-compat.c
new file mode 100644
index 0000000000..f19a2cbacc
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-strfrom-ldbl-compat.c
@@ -0,0 +1,49 @@
+/* Test for the long double variants of strfroml and strtold.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdlib.h>
+
+#include <support/check.h>
+
+static int
+do_test (void)
+{
+ int written;
+ char buffer[64];
+ char *bufptr = buffer;
+ const char *expected = "-1.0000000000";
+ long double read;
+
+ /* Write to the buffer. */
+ written = strfroml (bufptr, 64, "%.10f", (long double) -1);
+ if (written < 0)
+ support_record_failure ();
+
+ /* Compare against the expected output. */
+ TEST_COMPARE_STRING (expected, buffer);
+
+ /* Read from the buffer. */
+ read = strtold (expected, NULL);
+
+ if (read != -1.0L)
+ support_record_failure ();
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-syslog-chk-ibm128.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-syslog-chk-ibm128.c
new file mode 100644
index 0000000000..bf42582687
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-syslog-chk-ibm128.c
@@ -0,0 +1 @@
+#include <test-syslog-chk-ldbl-compat.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-syslog-chk-ieee128.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-syslog-chk-ieee128.c
new file mode 100644
index 0000000000..bf42582687
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-syslog-chk-ieee128.c
@@ -0,0 +1 @@
+#include <test-syslog-chk-ldbl-compat.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-syslog-chk-ldbl-compat.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-syslog-chk-ldbl-compat.c
new file mode 100644
index 0000000000..513b2d2064
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-syslog-chk-ldbl-compat.c
@@ -0,0 +1,6 @@
+#define _FORTIFY_SOURCE 2
+#define SYSLOG_FUNCTION __syslog_chk
+#define SYSLOG_FUNCTION_PARAMS (LOG_DEBUG, 1, "%Lf\n", ld)
+#define VSYSLOG_FUNCTION __vsyslog_chk
+#define VSYSLOG_FUNCTION_PARAMS (LOG_DEBUG, 1, "%Lf\n", ap)
+#include <test-syslog-ldbl-compat-template.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-syslog-ibm128.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-syslog-ibm128.c
new file mode 100644
index 0000000000..8e64440e8c
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-syslog-ibm128.c
@@ -0,0 +1 @@
+#include <test-syslog-ldbl-compat.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-syslog-ieee128.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-syslog-ieee128.c
new file mode 100644
index 0000000000..8e64440e8c
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-syslog-ieee128.c
@@ -0,0 +1 @@
+#include <test-syslog-ldbl-compat.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-syslog-ldbl-compat-template.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-syslog-ldbl-compat-template.c
new file mode 100644
index 0000000000..78ef49c11e
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-syslog-ldbl-compat-template.c
@@ -0,0 +1,67 @@
+/* Test for the long double variants of *syslog* functions.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdarg.h>
+#include <stddef.h>
+#include <syslog.h>
+
+#include <support/capture_subprocess.h>
+#include <support/check.h>
+
+static void
+do_test_one_call (void *last, ...)
+{
+ long double ld = -1;
+ va_list ap;
+
+ /* Make syslog functions write to stderr with LOG_PERROR, so that it
+ can be captured by support_capture_subprocess and verified. */
+ openlog ("test-syslog", LOG_PERROR, LOG_USER);
+
+ /* Call syslog functions that take a format string. */
+ SYSLOG_FUNCTION SYSLOG_FUNCTION_PARAMS;
+ va_start (ap, last);
+ VSYSLOG_FUNCTION VSYSLOG_FUNCTION_PARAMS;
+ va_end (ap);
+}
+
+static void
+do_test_call (void)
+{
+ long double ld = -1;
+ do_test_one_call (NULL, ld);
+}
+
+static int
+do_test (void)
+{
+ struct support_capture_subprocess result;
+ result = support_capture_subprocess ((void *) &do_test_call, NULL);
+
+ do_test_call ();
+
+ /* Compare against the expected output. */
+ const char *expected =
+ "test-syslog: -1.000000\n"
+ "test-syslog: -1.000000\n";
+ TEST_COMPARE_STRING (expected, result.err.buffer);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-syslog-ldbl-compat.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-syslog-ldbl-compat.c
new file mode 100644
index 0000000000..ff0c0a5813
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-syslog-ldbl-compat.c
@@ -0,0 +1,6 @@
+#define _FORTIFY_SOURCE 0
+#define SYSLOG_FUNCTION syslog
+#define SYSLOG_FUNCTION_PARAMS (LOG_DEBUG, "%Lf\n", ld)
+#define VSYSLOG_FUNCTION vsyslog
+#define VSYSLOG_FUNCTION_PARAMS (LOG_DEBUG, "%Lf\n", ap)
+#include <test-syslog-ldbl-compat-template.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-wcstold-ibm128.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-wcstold-ibm128.c
new file mode 100644
index 0000000000..4d60692eeb
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-wcstold-ibm128.c
@@ -0,0 +1 @@
+#include <test-wcstold-ldbl-compat.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-wcstold-ieee128.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-wcstold-ieee128.c
new file mode 100644
index 0000000000..4d60692eeb
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-wcstold-ieee128.c
@@ -0,0 +1 @@
+#include <test-wcstold-ldbl-compat.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-wcstold-ldbl-compat.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-wcstold-ldbl-compat.c
new file mode 100644
index 0000000000..8abe4e51f8
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-wcstold-ldbl-compat.c
@@ -0,0 +1,36 @@
+/* Test for the long double variant of wcstold.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <wchar.h>
+
+#include <support/check.h>
+
+static int
+do_test (void)
+{
+ const wchar_t *input = L"-1.0000000000";
+ long double read;
+
+ read = wcstold (input, NULL);
+ if (read != -1.0L)
+ support_record_failure ();
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-chk-ibm128.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-chk-ibm128.c
new file mode 100644
index 0000000000..5323df71e2
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-chk-ibm128.c
@@ -0,0 +1 @@
+#include <test-wprintf-chk-ldbl-compat.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-chk-ieee128.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-chk-ieee128.c
new file mode 100644
index 0000000000..5323df71e2
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-chk-ieee128.c
@@ -0,0 +1 @@
+#include <test-wprintf-chk-ldbl-compat.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-chk-ldbl-compat.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-chk-ldbl-compat.c
new file mode 100644
index 0000000000..b3f87e1a7b
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-chk-ldbl-compat.c
@@ -0,0 +1,122 @@
+/* Test for the long double variants of *w*printf_chk functions.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#define _FORTIFY_SOURCE 2
+
+#include <stdarg.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <wchar.h>
+
+#include <support/capture_subprocess.h>
+#include <support/check.h>
+
+static void
+do_test_call_varg (FILE *stream, const wchar_t *format, ...)
+{
+ wchar_t string[128];
+ va_list args;
+
+ wprintf (L"%20Ls", L"__vfwprintf_chk: ");
+ va_start (args, format);
+ __vfwprintf_chk (stream, 1, format, args);
+ va_end (args);
+ wprintf (L"\n");
+
+ wprintf (L"%20Ls", L"__vswprintf_chk: ");
+ va_start (args, format);
+ __vswprintf_chk (string, 79, 1, 127, format, args);
+ va_end (args);
+ wprintf (L"%Ls", string);
+ wprintf (L"\n");
+
+ wprintf (L"%20Ls", L"__vwprintf_chk: ");
+ va_start (args, format);
+ __vwprintf_chk (1, format, args);
+ va_end (args);
+ wprintf (L"\n");
+}
+
+static void
+do_test_call_rarg (FILE *stream, const wchar_t *format, long double ld,
+ double d)
+{
+ wchar_t string[128];
+
+ wprintf (L"%20Ls", L"__fwprintf_chk: ");
+ __fwprintf_chk (stream, 1, format, ld, d);
+ wprintf (L"\n");
+
+ wprintf (L"%20Ls", L"__swprintf_chk: ");
+ __swprintf_chk (string, 79, 1, 127, format, ld, d);
+ wprintf (L"%Ls", string);
+ wprintf (L"\n");
+
+ wprintf (L"%20Ls", L"__wprintf_chk: ");
+ __wprintf_chk (1, format, ld, d);
+ wprintf (L"\n");
+}
+
+static void
+do_test_call (void)
+{
+ long double ld = -1;
+ double d = -1;
+
+ /* Print in decimal notation. */
+ do_test_call_rarg (stdout, L"%.10Lf, %.10f", ld, d);
+ do_test_call_varg (stdout, L"%.10Lf, %.10f", ld, d);
+
+ /* Print in hexadecimal notation. */
+ do_test_call_rarg (stdout, L"%.10La, %.10a", ld, d);
+ do_test_call_varg (stdout, L"%.10La, %.10a", ld, d);
+
+ /* Test positional parameters. */
+ do_test_call_varg (stdout, L"%3$Lf, %2$Lf, %1$f",
+ (double) 1, (long double) 2, (long double) 3);
+}
+
+static int
+do_test (void)
+{
+ struct support_capture_subprocess result;
+ result = support_capture_subprocess ((void *) &do_test_call, NULL);
+
+ /* Compare against the expected output. */
+ const char *expected =
+ " __fwprintf_chk: -1.0000000000, -1.0000000000\n"
+ " __swprintf_chk: -1.0000000000, -1.0000000000\n"
+ " __wprintf_chk: -1.0000000000, -1.0000000000\n"
+ " __vfwprintf_chk: -1.0000000000, -1.0000000000\n"
+ " __vswprintf_chk: -1.0000000000, -1.0000000000\n"
+ " __vwprintf_chk: -1.0000000000, -1.0000000000\n"
+ " __fwprintf_chk: -0x1.0000000000p+0, -0x1.0000000000p+0\n"
+ " __swprintf_chk: -0x1.0000000000p+0, -0x1.0000000000p+0\n"
+ " __wprintf_chk: -0x1.0000000000p+0, -0x1.0000000000p+0\n"
+ " __vfwprintf_chk: -0x1.0000000000p+0, -0x1.0000000000p+0\n"
+ " __vswprintf_chk: -0x1.0000000000p+0, -0x1.0000000000p+0\n"
+ " __vwprintf_chk: -0x1.0000000000p+0, -0x1.0000000000p+0\n"
+ " __vfwprintf_chk: 3.000000, 2.000000, 1.000000\n"
+ " __vswprintf_chk: 3.000000, 2.000000, 1.000000\n"
+ " __vwprintf_chk: 3.000000, 2.000000, 1.000000\n";
+ TEST_COMPARE_STRING (expected, result.out.buffer);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-chk-redir-ibm128.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-chk-redir-ibm128.c
new file mode 100644
index 0000000000..a12186a945
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-chk-redir-ibm128.c
@@ -0,0 +1,2 @@
+#define _FORTIFY_SOURCE 2
+#include <sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-ldbl-compat.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-chk-redir-ieee128.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-chk-redir-ieee128.c
new file mode 100644
index 0000000000..a12186a945
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-chk-redir-ieee128.c
@@ -0,0 +1,2 @@
+#define _FORTIFY_SOURCE 2
+#include <sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-ldbl-compat.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-ibm128.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-ibm128.c
new file mode 100644
index 0000000000..9e230cd6f8
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-ibm128.c
@@ -0,0 +1 @@
+#include <test-wprintf-ldbl-compat.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-ieee128.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-ieee128.c
new file mode 100644
index 0000000000..9e230cd6f8
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-ieee128.c
@@ -0,0 +1 @@
+#include <test-wprintf-ldbl-compat.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-ldbl-compat.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-ldbl-compat.c
new file mode 100644
index 0000000000..3f045f2485
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-ldbl-compat.c
@@ -0,0 +1,120 @@
+/* Test for the long double variants of *w*printf functions.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdarg.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <wchar.h>
+
+#include <support/capture_subprocess.h>
+#include <support/check.h>
+
+static void
+do_test_call_varg (FILE *stream, const wchar_t *format, ...)
+{
+ wchar_t string[128];
+ va_list args;
+
+ wprintf (L"%15Ls", L"vfwprintf: ");
+ va_start (args, format);
+ vfwprintf (stream, format, args);
+ va_end (args);
+ wprintf (L"\n");
+
+ wprintf (L"%15Ls", L"vswprintf: ");
+ va_start (args, format);
+ vswprintf (string, 127, format, args);
+ va_end (args);
+ wprintf (L"%Ls", string);
+ wprintf (L"\n");
+
+ wprintf (L"%15Ls", L"vwprintf: ");
+ va_start (args, format);
+ vwprintf (format, args);
+ va_end (args);
+ wprintf (L"\n");
+}
+
+static void
+do_test_call_rarg (FILE *stream, const wchar_t *format, long double ld,
+ double d)
+{
+ wchar_t string[128];
+
+ wprintf (L"%15Ls", L"fwprintf: ");
+ fwprintf (stream, format, ld, d);
+ wprintf (L"\n");
+
+ wprintf (L"%15Ls", L"swprintf: ");
+ swprintf (string, 127, format, ld, d);
+ wprintf (L"%Ls", string);
+ wprintf (L"\n");
+
+ wprintf (L"%15Ls", L"wprintf: ");
+ wprintf (format, ld, d);
+ wprintf (L"\n");
+}
+
+static void
+do_test_call (void)
+{
+ long double ld = -1;
+ double d = -1;
+
+ /* Print in decimal notation. */
+ do_test_call_rarg (stdout, L"%.10Lf, %.10f", ld, d);
+ do_test_call_varg (stdout, L"%.10Lf, %.10f", ld, d);
+
+ /* Print in hexadecimal notation. */
+ do_test_call_rarg (stdout, L"%.10La, %.10a", ld, d);
+ do_test_call_varg (stdout, L"%.10La, %.10a", ld, d);
+
+ /* Test positional parameters. */
+ do_test_call_varg (stdout, L"%3$Lf, %2$Lf, %1$f",
+ (double) 1, (long double) 2, (long double) 3);
+}
+
+static int
+do_test (void)
+{
+ struct support_capture_subprocess result;
+ result = support_capture_subprocess ((void *) &do_test_call, NULL);
+
+ /* Compare against the expected output. */
+ const char *expected =
+ " fwprintf: -1.0000000000, -1.0000000000\n"
+ " swprintf: -1.0000000000, -1.0000000000\n"
+ " wprintf: -1.0000000000, -1.0000000000\n"
+ " vfwprintf: -1.0000000000, -1.0000000000\n"
+ " vswprintf: -1.0000000000, -1.0000000000\n"
+ " vwprintf: -1.0000000000, -1.0000000000\n"
+ " fwprintf: -0x1.0000000000p+0, -0x1.0000000000p+0\n"
+ " swprintf: -0x1.0000000000p+0, -0x1.0000000000p+0\n"
+ " wprintf: -0x1.0000000000p+0, -0x1.0000000000p+0\n"
+ " vfwprintf: -0x1.0000000000p+0, -0x1.0000000000p+0\n"
+ " vswprintf: -0x1.0000000000p+0, -0x1.0000000000p+0\n"
+ " vwprintf: -0x1.0000000000p+0, -0x1.0000000000p+0\n"
+ " vfwprintf: 3.000000, 2.000000, 1.000000\n"
+ " vswprintf: 3.000000, 2.000000, 1.000000\n"
+ " vwprintf: 3.000000, 2.000000, 1.000000\n";
+ TEST_COMPARE_STRING (expected, result.out.buffer);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-wscanf-ibm128.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-wscanf-ibm128.c
new file mode 100644
index 0000000000..ef21fc4741
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-wscanf-ibm128.c
@@ -0,0 +1 @@
+#include <test-wscanf-ldbl-compat.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-wscanf-ieee128.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-wscanf-ieee128.c
new file mode 100644
index 0000000000..ef21fc4741
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-wscanf-ieee128.c
@@ -0,0 +1 @@
+#include <test-wscanf-ldbl-compat.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-wscanf-ldbl-compat.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-wscanf-ldbl-compat.c
new file mode 100644
index 0000000000..b8152aa2f2
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-wscanf-ldbl-compat.c
@@ -0,0 +1,15 @@
+/* Include stdio.h from libio/, because include/stdio.h and -std=c89 do
+ not work together. */
+#include <libio/stdio.h>
+
+#define CHAR wchar_t
+#define Lx(x) L##x
+#define L(x) Lx (x)
+#define FSCANF fwscanf
+#define SSCANF swscanf
+#define SCANF wscanf
+#define VFSCANF vfwscanf
+#define VSSCANF vswscanf
+#define VSCANF vwscanf
+#define STRCPY wcscpy
+#include <test-scanf-ldbl-compat-template.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/wcstof128.c b/sysdeps/ieee754/ldbl-128ibm-compat/wcstof128.c
index 22bdd56aee..837a0431eb 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/wcstof128.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/wcstof128.c
@@ -1,5 +1,5 @@
/* Definition of wcstof128.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "../float128/wcstof128.c"
weak_alias (wcstof128, __wcstoieee128)
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/wcstof128_l.c b/sysdeps/ieee754/ldbl-128ibm-compat/wcstof128_l.c
index adac083939..96800ae5ca 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/wcstof128_l.c
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/wcstof128_l.c
@@ -1,5 +1,5 @@
/* Convert string representing a number to a _Float128 value, with locale.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "../float128/wcstof128_l.c"
weak_alias (wcstof128_l, __wcstoieee128_l)
diff --git a/sysdeps/ieee754/ldbl-128ibm/bits/iscanonical.h b/sysdeps/ieee754/ldbl-128ibm/bits/iscanonical.h
index 60c54cca46..96b7baa394 100644
--- a/sysdeps/ieee754/ldbl-128ibm/bits/iscanonical.h
+++ b/sysdeps/ieee754/ldbl-128ibm/bits/iscanonical.h
@@ -1,5 +1,5 @@
/* Define iscanonical macro. ldbl-128ibm version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MATH_H
# error "Never use <bits/iscanonical.h> directly; include <math.h> instead."
diff --git a/sysdeps/ieee754/ldbl-128ibm/e_acosl.c b/sysdeps/ieee754/ldbl-128ibm/e_acosl.c
index 1f8e405c9b..36fe75e215 100644
--- a/sysdeps/ieee754/ldbl-128ibm/e_acosl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/e_acosl.c
@@ -29,7 +29,7 @@
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* __ieee754_acosl(x)
* Method :
diff --git a/sysdeps/ieee754/ldbl-128ibm/e_asinl.c b/sysdeps/ieee754/ldbl-128ibm/e_asinl.c
index e8b0221a92..0e54332cd5 100644
--- a/sysdeps/ieee754/ldbl-128ibm/e_asinl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/e_asinl.c
@@ -29,7 +29,7 @@
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* __ieee754_asin(x)
* Method :
diff --git a/sysdeps/ieee754/ldbl-128ibm/e_exp10l.c b/sysdeps/ieee754/ldbl-128ibm/e_exp10l.c
index b4c17856b2..7eedd57adb 100644
--- a/sysdeps/ieee754/ldbl-128ibm/e_exp10l.c
+++ b/sysdeps/ieee754/ldbl-128ibm/e_exp10l.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/ieee754/ldbl-128ibm/e_expl.c b/sysdeps/ieee754/ldbl-128ibm/e_expl.c
index 16d4205465..494f38bed7 100644
--- a/sysdeps/ieee754/ldbl-128ibm/e_expl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/e_expl.c
@@ -1,5 +1,5 @@
/* Quad-precision floating point e^x.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jj@ultra.linux.cz>
Partly based on double-precision code
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* The basic design here is from
Abraham Ziv, "Fast Evaluation of Elementary Mathematical Functions with
@@ -65,6 +65,7 @@
#include <fenv.h>
#include <inttypes.h>
#include <math_private.h>
+#include <fenv_private.h>
#include "t_expl.h"
@@ -133,6 +134,11 @@ static const long double C[] = {
1.98412698413981650382436541785404286E-04L,
};
+/* Avoid local PLT entry use from (int) roundl (...) being converted
+ to a call to lroundl in the case of 32-bit long and roundl not
+ inlined. */
+long int lroundl (long double) asm ("__lroundl");
+
long double
__ieee754_expl (long double x)
{
@@ -148,15 +154,15 @@ __ieee754_expl (long double x)
SET_RESTORE_ROUND (FE_TONEAREST);
- n = __roundl (x*M_1_LN2);
+ n = roundl (x*M_1_LN2);
x = x-n*M_LN2_0;
xl = n*M_LN2_1;
- tval1 = __roundl (x*TWO8);
+ tval1 = roundl (x*TWO8);
x -= __expl_table[T_EXPL_ARG1+2*tval1];
xl -= __expl_table[T_EXPL_ARG1+2*tval1+1];
- tval2 = __roundl (x*TWO15);
+ tval2 = roundl (x*TWO15);
x -= __expl_table[T_EXPL_ARG2+2*tval2];
xl -= __expl_table[T_EXPL_ARG2+2*tval2+1];
diff --git a/sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c b/sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c
index 84ea7ee0f5..d08a93aa8e 100644
--- a/sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c
+++ b/sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c
@@ -1,5 +1,5 @@
/* Implementation of gamma function according to ISO C.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997 and
Jakub Jelinek <jj@ultra.linux.cz, 1999.
@@ -16,10 +16,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
+#include <fenv_private.h>
#include <math-underflow.h>
#include <float.h>
@@ -67,7 +68,7 @@ gammal_positive (long double x, int *exp2_adj)
{
/* Adjust into the range for using exp (lgamma). */
*exp2_adj = 0;
- long double n = __ceill (x - 1.5L);
+ long double n = ceill (x - 1.5L);
long double x_adj = x - n;
long double eps;
long double prod = __gamma_productl (x_adj, 0, n, &eps);
@@ -84,7 +85,7 @@ gammal_positive (long double x, int *exp2_adj)
{
/* Adjust into the range for applying Stirling's
approximation. */
- long double n = __ceill (23.0L - x);
+ long double n = ceill (23.0L - x);
x_adj = x + n;
x_eps = (x - (x_adj - n));
prod = __gamma_productl (x_adj - n, x_eps, n, &eps);
@@ -94,7 +95,7 @@ gammal_positive (long double x, int *exp2_adj)
starting by computing pow (X_ADJ, X_ADJ) with a power of 2
factored out. */
long double exp_adj = -eps;
- long double x_adj_int = __roundl (x_adj);
+ long double x_adj_int = roundl (x_adj);
long double x_adj_frac = x_adj - x_adj_int;
int x_adj_log2;
long double x_adj_mant = __frexpl (x_adj, &x_adj_log2);
@@ -135,7 +136,7 @@ __ieee754_gammal_r (long double x, int *signgamp)
*signgamp = 0;
return 1.0 / x;
}
- if (hx < 0 && (uint64_t) hx < 0xfff0000000000000ULL && __rintl (x) == x)
+ if (hx < 0 && (uint64_t) hx < 0xfff0000000000000ULL && rintl (x) == x)
{
/* Return value for integer x < 0 is NaN with invalid exception. */
*signgamp = 0;
@@ -178,8 +179,8 @@ __ieee754_gammal_r (long double x, int *signgamp)
}
else
{
- long double tx = __truncl (x);
- *signgamp = (tx == 2.0L * __truncl (tx / 2.0L)) ? -1 : 1;
+ long double tx = truncl (x);
+ *signgamp = (tx == 2.0L * truncl (tx / 2.0L)) ? -1 : 1;
if (x <= -191.0L)
/* Underflow. */
ret = LDBL_MIN * LDBL_MIN;
@@ -202,16 +203,16 @@ __ieee754_gammal_r (long double x, int *signgamp)
if (isinf (ret) && x != 0)
{
if (*signgamp < 0)
- return -(-__copysignl (LDBL_MAX, ret) * LDBL_MAX);
+ return -(-copysignl (LDBL_MAX, ret) * LDBL_MAX);
else
- return __copysignl (LDBL_MAX, ret) * LDBL_MAX;
+ return copysignl (LDBL_MAX, ret) * LDBL_MAX;
}
else if (ret == 0)
{
if (*signgamp < 0)
- return -(-__copysignl (LDBL_MIN, ret) * LDBL_MIN);
+ return -(-copysignl (LDBL_MIN, ret) * LDBL_MIN);
else
- return __copysignl (LDBL_MIN, ret) * LDBL_MIN;
+ return copysignl (LDBL_MIN, ret) * LDBL_MIN;
}
else
return ret;
diff --git a/sysdeps/ieee754/ldbl-128ibm/e_j0l.c b/sysdeps/ieee754/ldbl-128ibm/e_j0l.c
index 448cfb63fe..d430c29247 100644
--- a/sysdeps/ieee754/ldbl-128ibm/e_j0l.c
+++ b/sysdeps/ieee754/ldbl-128ibm/e_j0l.c
@@ -13,7 +13,7 @@
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file was copied from sysdeps/ieee754/ldbl-128/e_j0l.c. */
diff --git a/sysdeps/ieee754/ldbl-128ibm/e_j1l.c b/sysdeps/ieee754/ldbl-128ibm/e_j1l.c
index 5126900f96..ec6b1cec96 100644
--- a/sysdeps/ieee754/ldbl-128ibm/e_j1l.c
+++ b/sysdeps/ieee754/ldbl-128ibm/e_j1l.c
@@ -13,7 +13,7 @@
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file was copied from sysdeps/ieee754/ldbl-128/e_j0l.c. */
@@ -21,6 +21,7 @@
#include <errno.h>
#include <math.h>
#include <math_private.h>
+#include <fenv_private.h>
#include <math-underflow.h>
#include <float.h>
diff --git a/sysdeps/ieee754/ldbl-128ibm/e_jnl.c b/sysdeps/ieee754/ldbl-128ibm/e_jnl.c
index 71b3addfba..3fe4c0e5c6 100644
--- a/sysdeps/ieee754/ldbl-128ibm/e_jnl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/e_jnl.c
@@ -28,7 +28,7 @@
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* __ieee754_jn(n, x), __ieee754_yn(n, x)
@@ -60,6 +60,7 @@
#include <float.h>
#include <math.h>
#include <math_private.h>
+#include <fenv_private.h>
#include <math-underflow.h>
static const long double
@@ -149,6 +150,8 @@ __ieee754_jnl (int n, long double x)
case 3:
temp = c - s;
break;
+ default:
+ __builtin_unreachable ();
}
b = invsqrtpi * temp / sqrtl (x);
}
@@ -298,7 +301,7 @@ __ieee754_jnl (int n, long double x)
}
if (ret == 0)
{
- ret = __copysignl (LDBL_MIN, ret) * LDBL_MIN;
+ ret = copysignl (LDBL_MIN, ret) * LDBL_MIN;
__set_errno (ERANGE);
}
else
@@ -385,6 +388,8 @@ __ieee754_ynl (int n, long double x)
case 3:
temp = s + c;
break;
+ default:
+ __builtin_unreachable ();
}
b = invsqrtpi * temp / sqrtl (x);
}
@@ -416,7 +421,7 @@ __ieee754_ynl (int n, long double x)
}
out:
if (isinf (ret))
- ret = __copysignl (LDBL_MAX, ret) * LDBL_MAX;
+ ret = copysignl (LDBL_MAX, ret) * LDBL_MAX;
return ret;
}
strong_alias (__ieee754_ynl, __ynl_finite)
diff --git a/sysdeps/ieee754/ldbl-128ibm/e_lgammal_r.c b/sysdeps/ieee754/ldbl-128ibm/e_lgammal_r.c
index 5b628bedc1..9dc130cfa9 100644
--- a/sysdeps/ieee754/ldbl-128ibm/e_lgammal_r.c
+++ b/sysdeps/ieee754/ldbl-128ibm/e_lgammal_r.c
@@ -13,7 +13,7 @@
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file was copied from sysdeps/ieee754/ldbl-128/e_lgammal_r.c. */
@@ -726,11 +726,11 @@ __ieee754_lgammal_r (long double x, int *signgamp)
if (x < -2 && x > -48)
return __lgamma_negl (x, signgamp);
q = -x;
- p = __floorl (q);
+ p = floorl (q);
if (p == q)
return (one / fabsl (p - p));
long double halfp = p * 0.5L;
- if (halfp == __floorl (halfp))
+ if (halfp == floorl (halfp))
*signgamp = -1;
else
*signgamp = 1;
@@ -751,7 +751,7 @@ __ieee754_lgammal_r (long double x, int *signgamp)
if (x < 13.5L)
{
p = 0;
- nx = __floorl (x + 0.5L);
+ nx = floorl (x + 0.5L);
nn = nx;
switch (nn)
{
diff --git a/sysdeps/ieee754/ldbl-128ibm/e_log10l.c b/sysdeps/ieee754/ldbl-128ibm/e_log10l.c
index 62e3214ca4..7efaacd0ed 100644
--- a/sysdeps/ieee754/ldbl-128ibm/e_log10l.c
+++ b/sysdeps/ieee754/ldbl-128ibm/e_log10l.c
@@ -57,7 +57,7 @@
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, see <http://www.gnu.org/licenses/>.
+ License along with this library; if not, see <https://www.gnu.org/licenses/>.
*/
#include <math.h>
diff --git a/sysdeps/ieee754/ldbl-128ibm/e_log2l.c b/sysdeps/ieee754/ldbl-128ibm/e_log2l.c
index 1f8b6e9d7f..57b4b68052 100644
--- a/sysdeps/ieee754/ldbl-128ibm/e_log2l.c
+++ b/sysdeps/ieee754/ldbl-128ibm/e_log2l.c
@@ -56,7 +56,7 @@
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, see <http://www.gnu.org/licenses/>.
+ License along with this library; if not, see <https://www.gnu.org/licenses/>.
*/
#include <math.h>
diff --git a/sysdeps/ieee754/ldbl-128ibm/e_logl.c b/sysdeps/ieee754/ldbl-128ibm/e_logl.c
index c44feca65b..65e17cb73c 100644
--- a/sysdeps/ieee754/ldbl-128ibm/e_logl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/e_logl.c
@@ -56,7 +56,7 @@
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/ieee754/ldbl-128ibm/e_powl.c b/sysdeps/ieee754/ldbl-128ibm/e_powl.c
index f59ad4e113..df09c87662 100644
--- a/sysdeps/ieee754/ldbl-128ibm/e_powl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/e_powl.c
@@ -28,7 +28,7 @@
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* __ieee754_powl(x,y) return x**y
*
@@ -195,10 +195,10 @@ __ieee754_powl (long double x, long double y)
yisint = 2; /* even integer y */
else if (iy >= 0x3ff00000) /* 1.0 */
{
- if (__floorl (y) == y)
+ if (floorl (y) == y)
{
z = 0.5 * y;
- if (__floorl (z) == z)
+ if (floorl (z) == z)
yisint = 2;
else
yisint = 1;
@@ -392,7 +392,7 @@ __ieee754_powl (long double x, long double y)
n = 0;
if (i > 0x3fe00000)
{ /* if |z| > 0.5, set n = [z+0.5] */
- n = __floorl (z + 0.5L);
+ n = floorl (z + 0.5L);
t = n;
p_h -= t;
}
diff --git a/sysdeps/ieee754/ldbl-128ibm/e_rem_pio2l.c b/sysdeps/ieee754/ldbl-128ibm/e_rem_pio2l.c
index 07cb1e8b4c..785443e436 100644
--- a/sysdeps/ieee754/ldbl-128ibm/e_rem_pio2l.c
+++ b/sysdeps/ieee754/ldbl-128ibm/e_rem_pio2l.c
@@ -1,5 +1,5 @@
/* Quad-precision floating point argument reduction.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jj@ultra.linux.cz>
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/ieee754/ldbl-128ibm/e_sqrtl.c b/sysdeps/ieee754/ldbl-128ibm/e_sqrtl.c
index 28b208883d..d80d7e9de3 100644
--- a/sysdeps/ieee754/ldbl-128ibm/e_sqrtl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/e_sqrtl.c
@@ -1,7 +1,7 @@
/*
* IBM Accurate Mathematical Library
* written by International Business Machines Corp.
- * Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ * Copyright (C) 2001-2019 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 by
@@ -14,7 +14,7 @@
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
/*********************************************************************/
/* MODULE_NAME: uroot.c */
diff --git a/sysdeps/ieee754/ldbl-128ibm/gamma_productl.c b/sysdeps/ieee754/ldbl-128ibm/gamma_productl.c
index e4d9887b6c..39b79a646d 100644
--- a/sysdeps/ieee754/ldbl-128ibm/gamma_productl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/gamma_productl.c
@@ -1,5 +1,5 @@
/* Compute a product of X, X+1, ..., with an error estimate.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/ieee754/ldbl-128ibm/ieee754.h b/sysdeps/ieee754/ldbl-128ibm/ieee754.h
index 8017d9846f..606b4c7d8a 100644
--- a/sysdeps/ieee754/ldbl-128ibm/ieee754.h
+++ b/sysdeps/ieee754/ldbl-128ibm/ieee754.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -13,14 +13,14 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _IEEE754_H
-
#define _IEEE754_H 1
+
#include <features.h>
-#include <endian.h>
+#include <bits/endian.h>
__BEGIN_DECLS
diff --git a/sysdeps/ieee754/ldbl-128ibm/k_cosl.c b/sysdeps/ieee754/ldbl-128ibm/k_cosl.c
index e40c53cad3..917563b0b5 100644
--- a/sysdeps/ieee754/ldbl-128ibm/k_cosl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/k_cosl.c
@@ -1,5 +1,5 @@
/* Quad-precision floating point cosine on <-pi/4,pi/4>.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jj@ultra.linux.cz>
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/ieee754/ldbl-128ibm/k_sincosl.c b/sysdeps/ieee754/ldbl-128ibm/k_sincosl.c
index ba95337c31..50de148e84 100644
--- a/sysdeps/ieee754/ldbl-128ibm/k_sincosl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/k_sincosl.c
@@ -1,5 +1,5 @@
/* Quad-precision floating point sine and cosine on <-pi/4,pi/4>.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jj@ultra.linux.cz>
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <float.h>
#include <math.h>
diff --git a/sysdeps/ieee754/ldbl-128ibm/k_sinl.c b/sysdeps/ieee754/ldbl-128ibm/k_sinl.c
index 46d1d7b52a..86f455c73c 100644
--- a/sysdeps/ieee754/ldbl-128ibm/k_sinl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/k_sinl.c
@@ -1,5 +1,5 @@
/* Quad-precision floating point sine on <-pi/4,pi/4>.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jj@ultra.linux.cz>
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <float.h>
#include <math.h>
diff --git a/sysdeps/ieee754/ldbl-128ibm/k_tanl.c b/sysdeps/ieee754/ldbl-128ibm/k_tanl.c
index 3927fca25c..cd95e46089 100644
--- a/sysdeps/ieee754/ldbl-128ibm/k_tanl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/k_tanl.c
@@ -29,7 +29,7 @@
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* __kernel_tanl( x, y, k )
* kernel tan function on [-pi/4, pi/4], pi/4 ~ 0.7854
diff --git a/sysdeps/ieee754/ldbl-128ibm/ldbl2mpn.c b/sysdeps/ieee754/ldbl-128ibm/ldbl2mpn.c
index 0e265ff5b2..d16e44a42e 100644
--- a/sysdeps/ieee754/ldbl-128ibm/ldbl2mpn.c
+++ b/sysdeps/ieee754/ldbl-128ibm/ldbl2mpn.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "gmp.h"
#include "gmp-impl.h"
diff --git a/sysdeps/ieee754/ldbl-128ibm/lgamma_negl.c b/sysdeps/ieee754/ldbl-128ibm/lgamma_negl.c
index e00f7b9889..a6ca1cc95a 100644
--- a/sysdeps/ieee754/ldbl-128ibm/lgamma_negl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/lgamma_negl.c
@@ -1,5 +1,5 @@
/* lgammal expanding around zeros.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,11 +14,12 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <float.h>
#include <math.h>
#include <math_private.h>
+#include <fenv_private.h>
static const long double lgamma_zeros[][2] =
{
@@ -429,7 +430,7 @@ __lgamma_negl (long double x, int *signgamp)
{
/* Determine the half-integer region X lies in, handle exact
integers and determine the sign of the result. */
- int i = __floorl (-2 * x);
+ int i = floorl (-2 * x);
if ((i & 1) == 0 && i == -2 * x)
return 1.0L / 0.0L;
long double xn = ((i & 1) == 0 ? -i / 2 : (-i - 1) / 2);
@@ -446,7 +447,7 @@ __lgamma_negl (long double x, int *signgamp)
approximations to an adjusted version of the gamma function. */
if (i < 2)
{
- int j = __floorl (-8 * x) - 16;
+ int j = floorl (-8 * x) - 16;
long double xm = (-33 - 2 * j) * 0.0625L;
long double x_adj = x - xm;
size_t deg = poly_deg[j];
diff --git a/sysdeps/ieee754/ldbl-128ibm/lgamma_productl.c b/sysdeps/ieee754/ldbl-128ibm/lgamma_productl.c
index dc0e8dd723..fc1223afcc 100644
--- a/sysdeps/ieee754/ldbl-128ibm/lgamma_productl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/lgamma_productl.c
@@ -1,5 +1,5 @@
/* Compute a product of 1 + (T/X), 1 + (T/(X+1)), ....
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/ieee754/ldbl-128ibm/math-nan-payload-ldouble.h b/sysdeps/ieee754/ldbl-128ibm/math-nan-payload-ldouble.h
index 653407597f..3baee322a3 100644
--- a/sysdeps/ieee754/ldbl-128ibm/math-nan-payload-ldouble.h
+++ b/sysdeps/ieee754/ldbl-128ibm/math-nan-payload-ldouble.h
@@ -1,5 +1,5 @@
/* NaN payload handling or ldbl-128ibm.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define SET_NAN_PAYLOAD(flt, mant) \
do \
diff --git a/sysdeps/ieee754/ldbl-128ibm/math_ldbl.h b/sysdeps/ieee754/ldbl-128ibm/math_ldbl.h
index ccb646620e..a9f5075473 100644
--- a/sysdeps/ieee754/ldbl-128ibm/math_ldbl.h
+++ b/sysdeps/ieee754/ldbl-128ibm/math_ldbl.h
@@ -1,5 +1,5 @@
/* Manipulation of the bit representation of 'long double' quantities.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MATH_LDBL_H_
#define _MATH_LDBL_H_ 1
diff --git a/sysdeps/ieee754/ldbl-128ibm/mpn2ldbl.c b/sysdeps/ieee754/ldbl-128ibm/mpn2ldbl.c
index ff9f6496bd..fbfe3248ea 100644
--- a/sysdeps/ieee754/ldbl-128ibm/mpn2ldbl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/mpn2ldbl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ieee754.h>
#include <errno.h>
diff --git a/sysdeps/ieee754/ldbl-128ibm/printf_fphex.c b/sysdeps/ieee754/ldbl-128ibm/printf_fphex.c
index 2908e8a819..4ea86378b6 100644
--- a/sysdeps/ieee754/ldbl-128ibm/printf_fphex.c
+++ b/sysdeps/ieee754/ldbl-128ibm/printf_fphex.c
@@ -1,5 +1,5 @@
/* Print floating point number in hexadecimal notation according to ISO C99.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define PRINT_FPHEX_LONG_DOUBLE \
do { \
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_atanl.c b/sysdeps/ieee754/ldbl-128ibm/s_atanl.c
index 32cf36c65d..0e16e74fd6 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_atanl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_atanl.c
@@ -56,7 +56,7 @@
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <float.h>
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_cbrtl.c b/sysdeps/ieee754/ldbl-128ibm/s_cbrtl.c
index 317d238057..57f6ad7668 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_cbrtl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_cbrtl.c
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file was copied from sysdeps/ieee754/ldbl-128/e_j0l.c. */
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_ceill.c b/sysdeps/ieee754/ldbl-128ibm/s_ceill.c
index 7dcff021c4..7bd9867898 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_ceill.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_ceill.c
@@ -1,6 +1,6 @@
/* Ceil (round to +inf) long double floating-point values.
IBM extended format long double version.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -15,14 +15,17 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
#include <math_private.h>
#include <math_ldbl_opt.h>
#include <float.h>
#include <ieee754.h>
+double ceil (double) asm ("__ceil");
+
long double
__ceill (long double x)
@@ -36,7 +39,7 @@ __ceill (long double x)
&& __builtin_isless (__builtin_fabs (xh),
__builtin_inf ()), 1))
{
- hi = __ceil (xh);
+ hi = ceil (xh);
if (hi != xh)
{
/* The high part is not an integer; the low part does not
@@ -47,7 +50,7 @@ __ceill (long double x)
else
{
/* The high part is a nonzero integer. */
- lo = __ceil (xl);
+ lo = ceil (xl);
xh = hi;
xl = lo;
ldbl_canonicalize_int (&xh, &xl);
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_copysignl.c b/sysdeps/ieee754/ldbl-128ibm/s_copysignl.c
index 3b8ec1a74d..9dbd9b86fa 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_copysignl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_copysignl.c
@@ -23,8 +23,8 @@ static char rcsid[] = "$NetBSD: $";
* with the sign bit of y.
*/
+#define NO_MATH_REDIRECT
#include <math.h>
-#include <math_private.h>
#include <math_ldbl_opt.h>
long double __copysignl(long double x, long double y)
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_daddl.c b/sysdeps/ieee754/ldbl-128ibm/s_daddl.c
index 28b7e06ace..d483bfd6b3 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_daddl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_daddl.c
@@ -1,5 +1,5 @@
/* Add long double (ldbl-128ibm) values, narrowing the result to double.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math-narrow.h>
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_ddivl.c b/sysdeps/ieee754/ldbl-128ibm/s_ddivl.c
index 6bbbbcf09d..aa6442e4f5 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_ddivl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_ddivl.c
@@ -1,5 +1,5 @@
/* Divide long double (ldbl-128ibm) values, narrowing the result to double.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math-narrow.h>
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_dmull.c b/sysdeps/ieee754/ldbl-128ibm/s_dmull.c
index 7b75b2b0f1..40c093349d 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_dmull.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_dmull.c
@@ -1,5 +1,5 @@
/* Multiply long double (ldbl-128ibm) values, narrowing the result to double.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math-narrow.h>
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_dsubl.c b/sysdeps/ieee754/ldbl-128ibm/s_dsubl.c
index e0e80f26a4..db37e6f772 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_dsubl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_dsubl.c
@@ -1,5 +1,5 @@
/* Subtract long double (ldbl-128ibm) values, narrowing the result to double.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math-narrow.h>
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_erfl.c b/sysdeps/ieee754/ldbl-128ibm/s_erfl.c
index 5302fee522..0cef1f2581 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_erfl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_erfl.c
@@ -28,7 +28,7 @@
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* double erf(double x)
* double erfc(double x)
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_expm1l.c b/sysdeps/ieee754/ldbl-128ibm/s_expm1l.c
index 42d57c6eec..e816ef521e 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_expm1l.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_expm1l.c
@@ -49,7 +49,7 @@
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <math.h>
@@ -120,7 +120,7 @@ __expm1l (long double x)
/* Express x = ln 2 (k + remainder), remainder not exceeding 1/2. */
xx = C1 + C2; /* ln 2. */
- px = __floorl (0.5 + x / xx);
+ px = floorl (0.5 + x / xx);
k = px;
/* remainder times ln 2 */
x -= px * C1;
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_faddl.c b/sysdeps/ieee754/ldbl-128ibm/s_faddl.c
index 55a391885c..089523ab8c 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_faddl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_faddl.c
@@ -1,5 +1,5 @@
/* Add long double (ldbl-128ibm) values, narrowing the result to float.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math-narrow.h>
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_fdivl.c b/sysdeps/ieee754/ldbl-128ibm/s_fdivl.c
index dd34c05502..d7f048ae4f 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_fdivl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_fdivl.c
@@ -1,5 +1,5 @@
/* Divide long double (ldbl-128ibm) values, narrowing the result to float.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math-narrow.h>
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_floorl.c b/sysdeps/ieee754/ldbl-128ibm/s_floorl.c
index 4aae5ae608..7a71c371c7 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_floorl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_floorl.c
@@ -1,6 +1,6 @@
/* Round to int long double floating-point values.
IBM extended format long double version.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -15,14 +15,17 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
#include <math_private.h>
#include <math_ldbl_opt.h>
#include <float.h>
#include <ieee754.h>
+double floor (double) asm ("__floor");
+
long double
__floorl (long double x)
@@ -36,7 +39,7 @@ __floorl (long double x)
&& __builtin_isless (__builtin_fabs (xh),
__builtin_inf ()), 1))
{
- hi = __floor (xh);
+ hi = floor (xh);
if (hi != xh)
{
/* The high part is not an integer; the low part does not
@@ -47,7 +50,7 @@ __floorl (long double x)
else
{
/* The high part is a nonzero integer. */
- lo = __floor (xl);
+ lo = floor (xl);
xh = hi;
xl = lo;
ldbl_canonicalize_int (&xh, &xl);
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_fmal.c b/sysdeps/ieee754/ldbl-128ibm/s_fmal.c
index e72a3e4d59..95cfc9534a 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_fmal.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_fmal.c
@@ -1,5 +1,5 @@
/* Compute x * y + z as ternary operation.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Flaherty <flaherty@linux.vnet.ibm.com>.
@@ -15,13 +15,14 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <float.h>
#include <math.h>
#include <math-barriers.h>
#include <math_private.h>
+#include <fenv_private.h>
#include <math-underflow.h>
#include <math_ldbl_opt.h>
#include <mul_split.h>
@@ -243,7 +244,7 @@ __fmal (long double x, long double y, long double z)
scale_val = math_opt_barrier (scale_val);
scale_val = __scalbn (scale_val, scale_exp);
if (fabs (scale_val) == DBL_MAX)
- return __copysignl (LDBL_MAX, scale_val);
+ return copysignl (LDBL_MAX, scale_val);
math_check_force_underflow (scale_val);
return scale_val;
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_fmull.c b/sysdeps/ieee754/ldbl-128ibm/s_fmull.c
index d1988f168d..a774d8f381 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_fmull.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_fmull.c
@@ -1,5 +1,5 @@
/* Multiply long double (ldbl-128ibm) values, narrowing the result to float.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math-narrow.h>
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_fpclassifyl.c b/sysdeps/ieee754/ldbl-128ibm/s_fpclassifyl.c
index 92c08cc995..345c5194d0 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_fpclassifyl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_fpclassifyl.c
@@ -1,5 +1,5 @@
/* Return classification value corresponding to argument.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997 and
Jakub Jelinek <jj@ultra.linux.cz>, 1999.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_fromfpl_main.c b/sysdeps/ieee754/ldbl-128ibm/s_fromfpl_main.c
index 76287c33dc..66681ae99c 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_fromfpl_main.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_fromfpl_main.c
@@ -1,5 +1,5 @@
/* Round to integer type. ldbl-128ibm version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fenv.h>
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_fsubl.c b/sysdeps/ieee754/ldbl-128ibm/s_fsubl.c
index aa6662de05..b981ce3354 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_fsubl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_fsubl.c
@@ -1,5 +1,5 @@
/* Subtract long double (ldbl-128ibm) values, narrowing the result to float.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math-narrow.h>
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_getpayloadl.c b/sysdeps/ieee754/ldbl-128ibm/s_getpayloadl.c
index 5b24955353..cb64018936 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_getpayloadl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_getpayloadl.c
@@ -1,5 +1,5 @@
/* Get NaN payload. ldbl-128ibm version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fix-int-fp-convert-zero.h>
#include <math.h>
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_iscanonicall.c b/sysdeps/ieee754/ldbl-128ibm/s_iscanonicall.c
index 91ce417992..3144562d61 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_iscanonicall.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_iscanonicall.c
@@ -1,5 +1,5 @@
/* Test whether long double value is canonical. ldbl-128ibm version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_issignalingl.c b/sysdeps/ieee754/ldbl-128ibm/s_issignalingl.c
index 126abce2de..1f6df158b4 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_issignalingl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_issignalingl.c
@@ -1,5 +1,5 @@
/* Test for signaling NaN.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_llrintl.c b/sysdeps/ieee754/ldbl-128ibm/s_llrintl.c
index 9d4535103e..3449cdfe1c 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_llrintl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_llrintl.c
@@ -1,6 +1,6 @@
/* Round to long long int long double floating-point values.
IBM extended format long double version.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <fenv.h>
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_llroundl.c b/sysdeps/ieee754/ldbl-128ibm/s_llroundl.c
index de6a7b5be2..2ce8e125a0 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_llroundl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_llroundl.c
@@ -1,6 +1,6 @@
/* Round to long long int long double floating-point values.
IBM extended format long double version.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <fenv.h>
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_log1pl.c b/sysdeps/ieee754/ldbl-128ibm/s_log1pl.c
index e499c9f604..0c768403da 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_log1pl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_log1pl.c
@@ -50,7 +50,7 @@
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_lrintl.c b/sysdeps/ieee754/ldbl-128ibm/s_lrintl.c
index 05fe7fefdf..3eebeca5cd 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_lrintl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_lrintl.c
@@ -1,6 +1,6 @@
/* Round to long int long double floating-point values.
IBM extended format long double version.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <fenv.h>
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_lroundl.c b/sysdeps/ieee754/ldbl-128ibm/s_lroundl.c
index bc8dda4c1d..b664c6025e 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_lroundl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_lroundl.c
@@ -1,6 +1,6 @@
/* Round to long int long double floating-point values.
IBM extended format long double version.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <fenv.h>
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_nearbyintl.c b/sysdeps/ieee754/ldbl-128ibm/s_nearbyintl.c
index bd691f3310..8afd2d5f8d 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_nearbyintl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_nearbyintl.c
@@ -1,6 +1,6 @@
/* Round to int long double floating-point values without raising inexact.
IBM extended format long double version.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define USE_AS_NEARBYINTL
#include "s_rintl.c"
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_nextupl.c b/sysdeps/ieee754/ldbl-128ibm/s_nextupl.c
index 9b532a3a25..7ee9a85ebd 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_nextupl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_nextupl.c
@@ -1,5 +1,5 @@
/* Return the least floating-point number greater than X.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <float.h>
#include <math.h>
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_remquol.c b/sysdeps/ieee754/ldbl-128ibm/s_remquol.c
index d87bce7982..154d0ee963 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_remquol.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_remquol.c
@@ -1,5 +1,5 @@
/* Compute remainder and a congruent to the quotient.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997 and
Jakub Jelinek <jj@ultra.linux.cz>, 1999.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_rintl.c b/sysdeps/ieee754/ldbl-128ibm/s_rintl.c
index f003609d95..bb7da1077b 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_rintl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_rintl.c
@@ -1,6 +1,6 @@
/* Round to int long double floating-point values.
IBM extended format long double version.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -15,15 +15,17 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This has been coded in assembler because GCC makes such a mess of it
when it's coded in C. */
+#define NO_MATH_REDIRECT
#include <math.h>
#include <fenv.h>
#include <math-barriers.h>
#include <math_private.h>
+#include <fenv_private.h>
#include <math_ldbl_opt.h>
#include <float.h>
#include <ieee754.h>
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_roundevenl.c b/sysdeps/ieee754/ldbl-128ibm/s_roundevenl.c
index 84950e215f..3fe974f4c9 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_roundevenl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_roundevenl.c
@@ -1,6 +1,6 @@
/* Round to nearest integer value, rounding halfway cases to even.
ldbl-128ibm version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_roundl.c b/sysdeps/ieee754/ldbl-128ibm/s_roundl.c
index 94a62dcd6c..e4a42318b2 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_roundl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_roundl.c
@@ -1,6 +1,6 @@
/* Round to int long double floating-point values.
IBM extended format long double version.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -15,17 +15,20 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This has been coded in assembler because GCC makes such a mess of it
when it's coded in C. */
+#define NO_MATH_REDIRECT
#include <math.h>
#include <math_private.h>
#include <math_ldbl_opt.h>
#include <float.h>
#include <ieee754.h>
+double round (double) asm ("__round");
+
long double
__roundl (long double x)
@@ -39,7 +42,7 @@ __roundl (long double x)
&& __builtin_isless (__builtin_fabs (xh),
__builtin_inf ()), 1))
{
- hi = __round (xh);
+ hi = round (xh);
if (hi != xh)
{
/* The high part is not an integer; the low part only
@@ -62,7 +65,7 @@ __roundl (long double x)
else
{
/* The high part is a nonzero integer. */
- lo = __round (xl);
+ lo = round (xl);
if (fabs (lo - xl) == 0.5)
{
if (xh > 0 && xl < 0)
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_scalblnl.c b/sysdeps/ieee754/ldbl-128ibm/s_scalblnl.c
index 031635267f..b6a2d30736 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_scalblnl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_scalblnl.c
@@ -56,9 +56,9 @@ long double __scalblnl (long double x, long int n)
k = ((hx>>52)&0x7ff) - 54;
}
else if (k==0x7ff) return x+x; /* NaN or Inf */
- if (n< -50000) return tiny*__copysignl(tiny,x); /*underflow */
+ if (n< -50000) return tiny*copysignl(tiny,x); /*underflow */
if (n> 50000 || k+n > 0x7fe)
- return huge*__copysignl(huge,x); /* overflow */
+ return huge*copysignl(huge,x); /* overflow */
/* Now k and n are bounded we know that k = k+n does not
overflow. */
k = k+n;
@@ -93,7 +93,7 @@ long double __scalblnl (long double x, long int n)
return x;
}
if (k <= -54)
- return tiny*__copysignl(tiny,x); /*underflow*/
+ return tiny*copysignl(tiny,x); /*underflow*/
k += 54; /* subnormal result */
lx &= 0x8000000000000000ULL;
hx &= 0x800fffffffffffffULL;
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_scalbnl.c b/sysdeps/ieee754/ldbl-128ibm/s_scalbnl.c
index 0c4508835e..bbefa86661 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_scalbnl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_scalbnl.c
@@ -56,9 +56,9 @@ long double __scalbnl (long double x, int n)
k = ((hx>>52)&0x7ff) - 54;
}
else if (k==0x7ff) return x+x; /* NaN or Inf */
- if (n< -50000) return tiny*__copysignl(tiny,x); /*underflow */
+ if (n< -50000) return tiny*copysignl(tiny,x); /*underflow */
if (n> 50000 || k+n > 0x7fe)
- return huge*__copysignl(huge,x); /* overflow */
+ return huge*copysignl(huge,x); /* overflow */
/* Now k and n are bounded we know that k = k+n does not
overflow. */
k = k+n;
@@ -93,7 +93,7 @@ long double __scalbnl (long double x, int n)
return x;
}
if (k <= -54)
- return tiny*__copysignl(tiny,x); /*underflow*/
+ return tiny*copysignl(tiny,x); /*underflow*/
k += 54; /* subnormal result */
lx &= 0x8000000000000000ULL;
hx &= 0x800fffffffffffffULL;
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_setpayloadl_main.c b/sysdeps/ieee754/ldbl-128ibm/s_setpayloadl_main.c
index e5b49d03a2..9fc6fed4d5 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_setpayloadl_main.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_setpayloadl_main.c
@@ -1,5 +1,5 @@
/* Set NaN payload. ldbl-128ibm version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_signbitl.c b/sysdeps/ieee754/ldbl-128ibm/s_signbitl.c
index 2f7eb62ee8..a259ce23da 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_signbitl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_signbitl.c
@@ -1,5 +1,5 @@
/* Return nonzero value if number is negative.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_ldbl_opt.h>
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_sincosl.c b/sysdeps/ieee754/ldbl-128ibm/s_sincosl.c
index ca4f9dff2f..13e387f3a8 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_sincosl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_sincosl.c
@@ -1,5 +1,5 @@
/* Compute sine and cosine of argument.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997 and
Jakub Jelinek <jj@ultra.linux.cz>.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <math.h>
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_totalorderl.c b/sysdeps/ieee754/ldbl-128ibm/s_totalorderl.c
index 9f20e01adc..6ddbec95c3 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_totalorderl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_totalorderl.c
@@ -1,5 +1,5 @@
/* Total order operation. ldbl-128ibm version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,22 +14,23 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
#include <nan-high-order-bit.h>
#include <stdint.h>
+#include <shlib-compat.h>
int
-__totalorderl (long double x, long double y)
+__totalorderl (const long double *x, const long double *y)
{
double xhi, xlo, yhi, ylo;
int64_t hx, hy, lx, ly;
- ldbl_unpack (x, &xhi, &xlo);
+ ldbl_unpack (*x, &xhi, &xlo);
EXTRACT_WORDS64 (hx, xhi);
- ldbl_unpack (y, &yhi, &ylo);
+ ldbl_unpack (*y, &yhi, &ylo);
EXTRACT_WORDS64 (hy, yhi);
#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN
# error not implemented
@@ -60,4 +61,13 @@ __totalorderl (long double x, long double y)
ly ^= ly_sign >> 1;
return lx <= ly;
}
-weak_alias (__totalorderl, totalorderl)
+versioned_symbol (libm, __totalorderl, totalorderl, GLIBC_2_31);
+#if SHLIB_COMPAT (libm, GLIBC_2_25, GLIBC_2_31)
+int
+attribute_compat_text_section
+__totalorder_compatl (long double x, long double y)
+{
+ return __totalorderl (&x, &y);
+}
+compat_symbol (libm, __totalorder_compatl, totalorderl, GLIBC_2_25);
+#endif
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_totalordermagl.c b/sysdeps/ieee754/ldbl-128ibm/s_totalordermagl.c
index d8027ffbb0..6ecee80046 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_totalordermagl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_totalordermagl.c
@@ -1,5 +1,5 @@
/* Total order operation on absolute values. ldbl-128ibm version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,22 +14,23 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
#include <nan-high-order-bit.h>
#include <stdint.h>
+#include <shlib-compat.h>
int
-__totalordermagl (long double x, long double y)
+__totalordermagl (const long double *x, const long double *y)
{
double xhi, xlo, yhi, ylo;
int64_t hx, hy, lx, ly;
- ldbl_unpack (x, &xhi, &xlo);
+ ldbl_unpack (*x, &xhi, &xlo);
EXTRACT_WORDS64 (hx, xhi);
- ldbl_unpack (y, &yhi, &ylo);
+ ldbl_unpack (*y, &yhi, &ylo);
EXTRACT_WORDS64 (hy, yhi);
#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN
# error not implemented
@@ -62,4 +63,13 @@ __totalordermagl (long double x, long double y)
ly ^= ly_sign >> 1;
return lx <= ly;
}
-weak_alias (__totalordermagl, totalordermagl)
+versioned_symbol (libm, __totalordermagl, totalordermagl, GLIBC_2_31);
+#if SHLIB_COMPAT (libm, GLIBC_2_25, GLIBC_2_31)
+int
+attribute_compat_text_section
+__totalordermag_compatl (long double x, long double y)
+{
+ return __totalordermagl (&x, &y);
+}
+compat_symbol (libm, __totalordermag_compatl, totalordermagl, GLIBC_2_25);
+#endif
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_truncl.c b/sysdeps/ieee754/ldbl-128ibm/s_truncl.c
index a915a01ac6..163492f22c 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_truncl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_truncl.c
@@ -1,6 +1,6 @@
/* Truncate (toward zero) long double floating-point values.
IBM extended format long double version.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -15,14 +15,19 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
#include <math_private.h>
#include <math_ldbl_opt.h>
#include <float.h>
#include <ieee754.h>
+double ceil (double) asm ("__ceil");
+double floor (double) asm ("__floor");
+double trunc (double) asm ("__trunc");
+
long double
__truncl (long double x)
@@ -36,7 +41,7 @@ __truncl (long double x)
&& __builtin_isless (__builtin_fabs (xh),
__builtin_inf ()), 1))
{
- hi = __trunc (xh);
+ hi = trunc (xh);
if (hi != xh)
{
/* The high part is not an integer; the low part does not
@@ -47,7 +52,7 @@ __truncl (long double x)
else
{
/* The high part is a nonzero integer. */
- lo = xh > 0 ? __floor (xl) : __ceil (xl);
+ lo = xh > 0 ? floor (xl) : ceil (xl);
xh = hi;
xl = lo;
ldbl_canonicalize_int (&xh, &xl);
diff --git a/sysdeps/ieee754/ldbl-128ibm/strtold_l.c b/sysdeps/ieee754/ldbl-128ibm/strtold_l.c
index 862fd533be..72f78d849c 100644
--- a/sysdeps/ieee754/ldbl-128ibm/strtold_l.c
+++ b/sysdeps/ieee754/ldbl-128ibm/strtold_l.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <stdlib.h>
diff --git a/sysdeps/ieee754/ldbl-128ibm/t_expl.h b/sysdeps/ieee754/ldbl-128ibm/t_expl.h
index ca2481caa1..d057c8e87f 100644
--- a/sysdeps/ieee754/ldbl-128ibm/t_expl.h
+++ b/sysdeps/ieee754/ldbl-128ibm/t_expl.h
@@ -1,5 +1,5 @@
/* Accurate table for expl().
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* __expl_table basically consists of four tables, T_EXPL_ARG{1,2} and
T_EXPL_RES{1,2}. All tables use positive and negative indexes, the 0 points
diff --git a/sysdeps/ieee754/ldbl-128ibm/t_sincosl.c b/sysdeps/ieee754/ldbl-128ibm/t_sincosl.c
index daeba17942..6f91f1e3d5 100644
--- a/sysdeps/ieee754/ldbl-128ibm/t_sincosl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/t_sincosl.c
@@ -1,5 +1,5 @@
/* Quad-precision floating point sine and cosine tables.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jj@ultra.linux.cz>
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* For 0.1484375 + n/128.0, n=0..82 this table contains
first 113 bits of cosine, then at least 113 additional
diff --git a/sysdeps/ieee754/ldbl-128ibm/test-canonical-ldbl-128ibm.c b/sysdeps/ieee754/ldbl-128ibm/test-canonical-ldbl-128ibm.c
index a2571649ec..1d4a5a20f6 100644
--- a/sysdeps/ieee754/ldbl-128ibm/test-canonical-ldbl-128ibm.c
+++ b/sysdeps/ieee754/ldbl-128ibm/test-canonical-ldbl-128ibm.c
@@ -1,5 +1,5 @@
/* Test iscanonical and canonicalizel for ldbl-128ibm.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <float.h>
#include <math.h>
diff --git a/sysdeps/ieee754/ldbl-128ibm/test-fmodl-ldbl-128ibm.c b/sysdeps/ieee754/ldbl-128ibm/test-fmodl-ldbl-128ibm.c
index c717616e3c..a70888ad3b 100644
--- a/sysdeps/ieee754/ldbl-128ibm/test-fmodl-ldbl-128ibm.c
+++ b/sysdeps/ieee754/ldbl-128ibm/test-fmodl-ldbl-128ibm.c
@@ -1,5 +1,5 @@
/* Test for ldbl-128ibm fmodl handling of equal values (bug 19602).
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define FUNC fmodl
#define SETUP
diff --git a/sysdeps/ieee754/ldbl-128ibm/test-fmodrem-ldbl-128ibm.c b/sysdeps/ieee754/ldbl-128ibm/test-fmodrem-ldbl-128ibm.c
index ce959faf90..a609f8012d 100644
--- a/sysdeps/ieee754/ldbl-128ibm/test-fmodrem-ldbl-128ibm.c
+++ b/sysdeps/ieee754/ldbl-128ibm/test-fmodrem-ldbl-128ibm.c
@@ -1,5 +1,5 @@
/* Test for ldbl-128ibm fmodl etc. handling of equal values.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <float.h>
diff --git a/sysdeps/ieee754/ldbl-128ibm/test-remainderl-ldbl-128ibm.c b/sysdeps/ieee754/ldbl-128ibm/test-remainderl-ldbl-128ibm.c
index 829cf48c89..a4050d5459 100644
--- a/sysdeps/ieee754/ldbl-128ibm/test-remainderl-ldbl-128ibm.c
+++ b/sysdeps/ieee754/ldbl-128ibm/test-remainderl-ldbl-128ibm.c
@@ -1,5 +1,5 @@
/* Test for ldbl-128ibm remainderl handling of equal values (bug 19677).
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define FUNC remainderl
#define SETUP fesetround (FE_DOWNWARD)
diff --git a/sysdeps/ieee754/ldbl-128ibm/test-remquol-ldbl-128ibm.c b/sysdeps/ieee754/ldbl-128ibm/test-remquol-ldbl-128ibm.c
index 446e84146d..668a56a82a 100644
--- a/sysdeps/ieee754/ldbl-128ibm/test-remquol-ldbl-128ibm.c
+++ b/sysdeps/ieee754/ldbl-128ibm/test-remquol-ldbl-128ibm.c
@@ -1,5 +1,5 @@
/* Test for ldbl-128ibm remquol handling of equal values (bug 19677).
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/ieee754/ldbl-128ibm/test-totalorderl-ldbl-128ibm.c b/sysdeps/ieee754/ldbl-128ibm/test-totalorderl-ldbl-128ibm.c
index 6412e1781d..b275dc5a1e 100644
--- a/sysdeps/ieee754/ldbl-128ibm/test-totalorderl-ldbl-128ibm.c
+++ b/sysdeps/ieee754/ldbl-128ibm/test-totalorderl-ldbl-128ibm.c
@@ -1,5 +1,5 @@
/* Test totalorderl and totalordermagl for ldbl-128ibm.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_ldbl.h>
@@ -46,8 +46,8 @@ do_test (void)
{
long double ldx = ldbl_pack (tests[i].hi, tests[i].lo1);
long double ldy = ldbl_pack (tests[i].hi, tests[i].lo2);
- bool to1 = totalorderl (ldx, ldy);
- bool to2 = totalorderl (ldy, ldx);
+ bool to1 = totalorderl (&ldx, &ldy);
+ bool to2 = totalorderl (&ldy, &ldx);
if (to1 && to2)
printf ("PASS: test %zu\n", i);
else
@@ -55,8 +55,8 @@ do_test (void)
printf ("FAIL: test %zu\n", i);
result = 1;
}
- to1 = totalordermagl (ldx, ldy);
- to2 = totalordermagl (ldy, ldx);
+ to1 = totalordermagl (&ldx, &ldy);
+ to2 = totalordermagl (&ldy, &ldx);
if (to1 && to2)
printf ("PASS: test %zu (totalordermagl)\n", i);
else
diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-strtold-ldbl-128ibm.c b/sysdeps/ieee754/ldbl-128ibm/tst-strtold-ldbl-128ibm.c
index 1893c04dda..32f18a7118 100644
--- a/sysdeps/ieee754/ldbl-128ibm/tst-strtold-ldbl-128ibm.c
+++ b/sysdeps/ieee754/ldbl-128ibm/tst-strtold-ldbl-128ibm.c
@@ -1,5 +1,5 @@
/* Test for ldbl-128ibm strtold overflow to infinity (bug 14551).
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fenv.h>
diff --git a/sysdeps/ieee754/ldbl-128ibm/x2y2m1l.c b/sysdeps/ieee754/ldbl-128ibm/x2y2m1l.c
index e299c48748..9e298bb03e 100644
--- a/sysdeps/ieee754/ldbl-128ibm/x2y2m1l.c
+++ b/sysdeps/ieee754/ldbl-128ibm/x2y2m1l.c
@@ -1,5 +1,5 @@
/* Compute x^2 + y^2 - 1, without large cancellation error.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,10 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
+#include <fenv_private.h>
#include <mul_split.h>
#include <stdlib.h>
diff --git a/sysdeps/ieee754/ldbl-64-128/s_finitel.c b/sysdeps/ieee754/ldbl-64-128/s_finitel.c
index 5a16e6a277..5b9a0f0248 100644
--- a/sysdeps/ieee754/ldbl-64-128/s_finitel.c
+++ b/sysdeps/ieee754/ldbl-64-128/s_finitel.c
@@ -1,5 +1,4 @@
#include <math.h>
-#include <math_private.h>
#include <math_ldbl_opt.h>
#undef weak_alias
#define weak_alias(n,a)
diff --git a/sysdeps/ieee754/ldbl-64-128/s_fpclassifyl.c b/sysdeps/ieee754/ldbl-64-128/s_fpclassifyl.c
index a14cea4001..13cf81511c 100644
--- a/sysdeps/ieee754/ldbl-64-128/s_fpclassifyl.c
+++ b/sysdeps/ieee754/ldbl-64-128/s_fpclassifyl.c
@@ -1,5 +1,4 @@
#include <math.h>
-#include <math_private.h>
#include <math_ldbl_opt.h>
#undef weak_alias
#define weak_alias(n,a)
diff --git a/sysdeps/ieee754/ldbl-64-128/s_isinfl.c b/sysdeps/ieee754/ldbl-64-128/s_isinfl.c
index 94d0b06277..58d8d3ab55 100644
--- a/sysdeps/ieee754/ldbl-64-128/s_isinfl.c
+++ b/sysdeps/ieee754/ldbl-64-128/s_isinfl.c
@@ -1,5 +1,4 @@
#include <math.h>
-#include <math_private.h>
#include <math_ldbl_opt.h>
#if !IS_IN (libm)
# undef weak_alias
diff --git a/sysdeps/ieee754/ldbl-64-128/s_isnanl.c b/sysdeps/ieee754/ldbl-64-128/s_isnanl.c
index 9a7a29770c..4783439834 100644
--- a/sysdeps/ieee754/ldbl-64-128/s_isnanl.c
+++ b/sysdeps/ieee754/ldbl-64-128/s_isnanl.c
@@ -1,5 +1,4 @@
#include <math.h>
-#include <math_private.h>
#include <math_ldbl_opt.h>
#if !IS_IN (libm)
# undef weak_alias
diff --git a/sysdeps/ieee754/ldbl-64-128/s_signbitl.c b/sysdeps/ieee754/ldbl-64-128/s_signbitl.c
index 39e0c34b6c..76cd0af347 100644
--- a/sysdeps/ieee754/ldbl-64-128/s_signbitl.c
+++ b/sysdeps/ieee754/ldbl-64-128/s_signbitl.c
@@ -1,5 +1,4 @@
#include <math.h>
-#include <math_private.h>
#include <math_ldbl_opt.h>
#undef weak_alias
#define weak_alias(n,a)
diff --git a/sysdeps/ieee754/ldbl-64-128/strtold_l.c b/sysdeps/ieee754/ldbl-64-128/strtold_l.c
index 448c26bbd0..b34bfffdb8 100644
--- a/sysdeps/ieee754/ldbl-64-128/strtold_l.c
+++ b/sysdeps/ieee754/ldbl-64-128/strtold_l.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <bits/floatn.h>
diff --git a/sysdeps/ieee754/ldbl-96/Makefile b/sysdeps/ieee754/ldbl-96/Makefile
index 790f670e44..9aa38deeb6 100644
--- a/sysdeps/ieee754/ldbl-96/Makefile
+++ b/sysdeps/ieee754/ldbl-96/Makefile
@@ -1,5 +1,5 @@
# Makefile for sysdeps/ieee754/ldbl-96.
-# Copyright (C) 2016-2018 Free Software Foundation, Inc.
+# Copyright (C) 2016-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
@@ -14,7 +14,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
ifeq ($(subdir),math)
tests += test-canonical-ldbl-96 test-totalorderl-ldbl-96
diff --git a/sysdeps/ieee754/ldbl-96/bits/iscanonical.h b/sysdeps/ieee754/ldbl-96/bits/iscanonical.h
index e1ee1356b7..d53a3b7a2d 100644
--- a/sysdeps/ieee754/ldbl-96/bits/iscanonical.h
+++ b/sysdeps/ieee754/ldbl-96/bits/iscanonical.h
@@ -1,5 +1,5 @@
/* Define iscanonical macro. ldbl-96 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MATH_H
# error "Never use <bits/iscanonical.h> directly; include <math.h> instead."
diff --git a/sysdeps/ieee754/ldbl-96/bits/long-double.h b/sysdeps/ieee754/ldbl-96/bits/long-double.h
index 28488e0b05..72d15da6c8 100644
--- a/sysdeps/ieee754/ldbl-96/bits/long-double.h
+++ b/sysdeps/ieee754/ldbl-96/bits/long-double.h
@@ -1,5 +1,5 @@
/* Properties of long double type. ldbl-96 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* long double is distinct from double, so there is nothing to
define here. */
diff --git a/sysdeps/ieee754/ldbl-96/e_asinl.c b/sysdeps/ieee754/ldbl-96/e_asinl.c
index 806906a58a..1740bd6f43 100644
--- a/sysdeps/ieee754/ldbl-96/e_asinl.c
+++ b/sysdeps/ieee754/ldbl-96/e_asinl.c
@@ -29,7 +29,7 @@
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* __ieee754_asin(x)
* Method :
diff --git a/sysdeps/ieee754/ldbl-96/e_gammal_r.c b/sysdeps/ieee754/ldbl-96/e_gammal_r.c
index fc7a5c55dc..fcda82d08d 100644
--- a/sysdeps/ieee754/ldbl-96/e_gammal_r.c
+++ b/sysdeps/ieee754/ldbl-96/e_gammal_r.c
@@ -1,5 +1,5 @@
/* Implementation of gamma function according to ISO C.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@@ -15,10 +15,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
+#include <fenv_private.h>
#include <math-underflow.h>
#include <float.h>
@@ -61,7 +62,7 @@ gammal_positive (long double x, int *exp2_adj)
{
/* Adjust into the range for using exp (lgamma). */
*exp2_adj = 0;
- long double n = __ceill (x - 1.5L);
+ long double n = ceill (x - 1.5L);
long double x_adj = x - n;
long double eps;
long double prod = __gamma_productl (x_adj, 0, n, &eps);
@@ -78,7 +79,7 @@ gammal_positive (long double x, int *exp2_adj)
{
/* Adjust into the range for applying Stirling's
approximation. */
- long double n = __ceill (13.0L - x);
+ long double n = ceill (13.0L - x);
x_adj = x + n;
x_eps = (x - (x_adj - n));
prod = __gamma_productl (x_adj - n, x_eps, n, &eps);
@@ -88,7 +89,7 @@ gammal_positive (long double x, int *exp2_adj)
starting by computing pow (X_ADJ, X_ADJ) with a power of 2
factored out. */
long double exp_adj = -eps;
- long double x_adj_int = __roundl (x_adj);
+ long double x_adj_int = roundl (x_adj);
long double x_adj_frac = x_adj - x_adj_int;
int x_adj_log2;
long double x_adj_mant = __frexpl (x_adj, &x_adj_log2);
@@ -140,7 +141,7 @@ __ieee754_gammal_r (long double x, int *signgamp)
*signgamp = 0;
return x + x;
}
- if (__builtin_expect ((es & 0x8000) != 0, 0) && __rintl (x) == x)
+ if (__builtin_expect ((es & 0x8000) != 0, 0) && rintl (x) == x)
{
/* Return value for integer x < 0 is NaN with invalid exception. */
*signgamp = 0;
@@ -170,8 +171,8 @@ __ieee754_gammal_r (long double x, int *signgamp)
}
else
{
- long double tx = __truncl (x);
- *signgamp = (tx == 2.0L * __truncl (tx / 2.0L)) ? -1 : 1;
+ long double tx = truncl (x);
+ *signgamp = (tx == 2.0L * truncl (tx / 2.0L)) ? -1 : 1;
if (x <= -1766.0L)
/* Underflow. */
ret = LDBL_MIN * LDBL_MIN;
@@ -194,16 +195,16 @@ __ieee754_gammal_r (long double x, int *signgamp)
if (isinf (ret) && x != 0)
{
if (*signgamp < 0)
- return -(-__copysignl (LDBL_MAX, ret) * LDBL_MAX);
+ return -(-copysignl (LDBL_MAX, ret) * LDBL_MAX);
else
- return __copysignl (LDBL_MAX, ret) * LDBL_MAX;
+ return copysignl (LDBL_MAX, ret) * LDBL_MAX;
}
else if (ret == 0)
{
if (*signgamp < 0)
- return -(-__copysignl (LDBL_MIN, ret) * LDBL_MIN);
+ return -(-copysignl (LDBL_MIN, ret) * LDBL_MIN);
else
- return __copysignl (LDBL_MIN, ret) * LDBL_MIN;
+ return copysignl (LDBL_MIN, ret) * LDBL_MIN;
}
else
return ret;
diff --git a/sysdeps/ieee754/ldbl-96/e_j0l.c b/sysdeps/ieee754/ldbl-96/e_j0l.c
index e720ae9558..76258bdf2b 100644
--- a/sysdeps/ieee754/ldbl-96/e_j0l.c
+++ b/sysdeps/ieee754/ldbl-96/e_j0l.c
@@ -28,7 +28,7 @@
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* __ieee754_j0(x), __ieee754_y0(x)
* Bessel function of the first and second kinds of order zero.
diff --git a/sysdeps/ieee754/ldbl-96/e_j1l.c b/sysdeps/ieee754/ldbl-96/e_j1l.c
index 581615d563..c0e8d304fd 100644
--- a/sysdeps/ieee754/ldbl-96/e_j1l.c
+++ b/sysdeps/ieee754/ldbl-96/e_j1l.c
@@ -28,7 +28,7 @@
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* __ieee754_j1(x), __ieee754_y1(x)
* Bessel function of the first and second kinds of order zero.
diff --git a/sysdeps/ieee754/ldbl-96/e_jnl.c b/sysdeps/ieee754/ldbl-96/e_jnl.c
index 394921f564..06aed7c287 100644
--- a/sysdeps/ieee754/ldbl-96/e_jnl.c
+++ b/sysdeps/ieee754/ldbl-96/e_jnl.c
@@ -28,7 +28,7 @@
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* __ieee754_jn(n, x), __ieee754_yn(n, x)
@@ -60,6 +60,7 @@
#include <float.h>
#include <math.h>
#include <math_private.h>
+#include <fenv_private.h>
#include <math-underflow.h>
static const long double
@@ -142,6 +143,8 @@ __ieee754_jnl (int n, long double x)
case 3:
temp = c - s;
break;
+ default:
+ __builtin_unreachable ();
}
b = invsqrtpi * temp / sqrtl (x);
}
@@ -291,7 +294,7 @@ __ieee754_jnl (int n, long double x)
}
if (ret == 0)
{
- ret = __copysignl (LDBL_MIN, ret) * LDBL_MIN;
+ ret = copysignl (LDBL_MIN, ret) * LDBL_MIN;
__set_errno (ERANGE);
}
else
@@ -371,6 +374,8 @@ __ieee754_ynl (int n, long double x)
case 3:
temp = s + c;
break;
+ default:
+ __builtin_unreachable ();
}
b = invsqrtpi * temp / sqrtl (x);
}
@@ -399,7 +404,7 @@ __ieee754_ynl (int n, long double x)
}
out:
if (isinf (ret))
- ret = __copysignl (LDBL_MAX, ret) * LDBL_MAX;
+ ret = copysignl (LDBL_MAX, ret) * LDBL_MAX;
return ret;
}
strong_alias (__ieee754_ynl, __ynl_finite)
diff --git a/sysdeps/ieee754/ldbl-96/e_lgammal_r.c b/sysdeps/ieee754/ldbl-96/e_lgammal_r.c
index 200421f5cc..d2802692c0 100644
--- a/sysdeps/ieee754/ldbl-96/e_lgammal_r.c
+++ b/sysdeps/ieee754/ldbl-96/e_lgammal_r.c
@@ -28,7 +28,7 @@
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* __ieee754_lgammal_r(x, signgamp)
* Reentrant version of the logarithm of the Gamma function
@@ -221,11 +221,11 @@ sin_pi (long double x)
* argument reduction, make sure inexact flag not raised if input
* is an integer
*/
- z = __floorl (y);
+ z = floorl (y);
if (z != y)
{ /* inexact anyway */
y *= 0.5;
- y = 2.0*(y - __floorl(y)); /* y = |x| mod 2.0 */
+ y = 2.0*(y - floorl(y)); /* y = |x| mod 2.0 */
n = (int) (y*4.0);
}
else
diff --git a/sysdeps/ieee754/ldbl-96/e_rem_pio2l.c b/sysdeps/ieee754/ldbl-96/e_rem_pio2l.c
index f67805f2d3..3c0348dfd3 100644
--- a/sysdeps/ieee754/ldbl-96/e_rem_pio2l.c
+++ b/sysdeps/ieee754/ldbl-96/e_rem_pio2l.c
@@ -1,5 +1,5 @@
/* Extended-precision floating point argument reduction.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Based on quad-precision code by Jakub Jelinek <jj@ultra.linux.cz>
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/ieee754/ldbl-96/gamma_product.c b/sysdeps/ieee754/ldbl-96/gamma_product.c
index f1b65e12e2..2067d48e54 100644
--- a/sysdeps/ieee754/ldbl-96/gamma_product.c
+++ b/sysdeps/ieee754/ldbl-96/gamma_product.c
@@ -1,5 +1,5 @@
/* Compute a product of X, X+1, ..., with an error estimate.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math-narrow-eval.h>
diff --git a/sysdeps/ieee754/ldbl-96/gamma_productl.c b/sysdeps/ieee754/ldbl-96/gamma_productl.c
index ed0c166d78..b6d39bdba9 100644
--- a/sysdeps/ieee754/ldbl-96/gamma_productl.c
+++ b/sysdeps/ieee754/ldbl-96/gamma_productl.c
@@ -1,5 +1,5 @@
/* Compute a product of X, X+1, ..., with an error estimate.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,10 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
+#include <fenv_private.h>
#include <mul_splitl.h>
/* Compute the product of X + X_EPS, X + X_EPS + 1, ..., X + X_EPS + N
diff --git a/sysdeps/ieee754/ldbl-96/k_cosl.c b/sysdeps/ieee754/ldbl-96/k_cosl.c
index da20385210..6d0234e9c4 100644
--- a/sysdeps/ieee754/ldbl-96/k_cosl.c
+++ b/sysdeps/ieee754/ldbl-96/k_cosl.c
@@ -1,5 +1,5 @@
/* Extended-precision floating point cosine on <-pi/4,pi/4>.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Based on quad-precision cosine by Jakub Jelinek <jj@ultra.linux.cz>
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/ieee754/ldbl-96/k_sinl.c b/sysdeps/ieee754/ldbl-96/k_sinl.c
index 2549f71d19..e25c1b3c50 100644
--- a/sysdeps/ieee754/ldbl-96/k_sinl.c
+++ b/sysdeps/ieee754/ldbl-96/k_sinl.c
@@ -1,5 +1,5 @@
/* Quad-precision floating point sine on <-pi/4,pi/4>.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Based on quad-precision sine by Jakub Jelinek <jj@ultra.linux.cz>
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* The polynomials have not been optimized for extended-precision and
may contain more terms than needed. */
diff --git a/sysdeps/ieee754/ldbl-96/k_tanl.c b/sysdeps/ieee754/ldbl-96/k_tanl.c
index 9b5151baa2..43a5aa4423 100644
--- a/sysdeps/ieee754/ldbl-96/k_tanl.c
+++ b/sysdeps/ieee754/ldbl-96/k_tanl.c
@@ -29,7 +29,7 @@
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* __kernel_tanl( x, y, k )
* kernel tan function on [-pi/4, pi/4], pi/4 ~ 0.7854
diff --git a/sysdeps/ieee754/ldbl-96/ldbl2mpn.c b/sysdeps/ieee754/ldbl-96/ldbl2mpn.c
index 0805051723..0d03b3875f 100644
--- a/sysdeps/ieee754/ldbl-96/ldbl2mpn.c
+++ b/sysdeps/ieee754/ldbl-96/ldbl2mpn.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "gmp.h"
#include "gmp-impl.h"
diff --git a/sysdeps/ieee754/ldbl-96/lgamma_negl.c b/sysdeps/ieee754/ldbl-96/lgamma_negl.c
index 6d2e0b7165..98db0dea58 100644
--- a/sysdeps/ieee754/ldbl-96/lgamma_negl.c
+++ b/sysdeps/ieee754/ldbl-96/lgamma_negl.c
@@ -1,5 +1,5 @@
/* lgammal expanding around zeros.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,11 +14,12 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <float.h>
#include <math.h>
#include <math_private.h>
+#include <fenv_private.h>
static const long double lgamma_zeros[][2] =
{
@@ -315,7 +316,7 @@ __lgamma_negl (long double x, int *signgamp)
{
/* Determine the half-integer region X lies in, handle exact
integers and determine the sign of the result. */
- int i = __floorl (-2 * x);
+ int i = floorl (-2 * x);
if ((i & 1) == 0 && i == -2 * x)
return 1.0L / 0.0L;
long double xn = ((i & 1) == 0 ? -i / 2 : (-i - 1) / 2);
@@ -332,7 +333,7 @@ __lgamma_negl (long double x, int *signgamp)
approximations to an adjusted version of the gamma function. */
if (i < 2)
{
- int j = __floorl (-8 * x) - 16;
+ int j = floorl (-8 * x) - 16;
long double xm = (-33 - 2 * j) * 0.0625L;
long double x_adj = x - xm;
size_t deg = poly_deg[j];
diff --git a/sysdeps/ieee754/ldbl-96/lgamma_product.c b/sysdeps/ieee754/ldbl-96/lgamma_product.c
index 1eb99c40a5..e41828f492 100644
--- a/sysdeps/ieee754/ldbl-96/lgamma_product.c
+++ b/sysdeps/ieee754/ldbl-96/lgamma_product.c
@@ -1,5 +1,5 @@
/* Compute a product of 1 + (T/X), 1 + (T/(X+1)), ....
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/ieee754/ldbl-96/lgamma_productl.c b/sysdeps/ieee754/ldbl-96/lgamma_productl.c
index 9141a3177a..8f087ea4b9 100644
--- a/sysdeps/ieee754/ldbl-96/lgamma_productl.c
+++ b/sysdeps/ieee754/ldbl-96/lgamma_productl.c
@@ -1,5 +1,5 @@
/* Compute a product of 1 + (T/X), 1 + (T/(X+1)), ....
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/ieee754/ldbl-96/math-nan-payload-ldouble.h b/sysdeps/ieee754/ldbl-96/math-nan-payload-ldouble.h
index ab2542c097..9912314d0e 100644
--- a/sysdeps/ieee754/ldbl-96/math-nan-payload-ldouble.h
+++ b/sysdeps/ieee754/ldbl-96/math-nan-payload-ldouble.h
@@ -1,5 +1,5 @@
/* NaN payload handling for ldbl-96.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define SET_NAN_PAYLOAD(flt, mant) \
do \
diff --git a/sysdeps/ieee754/ldbl-96/math_ldbl.h b/sysdeps/ieee754/ldbl-96/math_ldbl.h
index 99428f6eeb..7b80b53f45 100644
--- a/sysdeps/ieee754/ldbl-96/math_ldbl.h
+++ b/sysdeps/ieee754/ldbl-96/math_ldbl.h
@@ -1,5 +1,5 @@
/* Manipulation of the bit representation of 'long double' quantities.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MATH_LDBL_H_
#define _MATH_LDBL_H_ 1
diff --git a/sysdeps/ieee754/ldbl-96/mpn2ldbl.c b/sysdeps/ieee754/ldbl-96/mpn2ldbl.c
index 8cbf28256b..741eb6e337 100644
--- a/sysdeps/ieee754/ldbl-96/mpn2ldbl.c
+++ b/sysdeps/ieee754/ldbl-96/mpn2ldbl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "gmp.h"
#include "gmp-impl.h"
diff --git a/sysdeps/ieee754/ldbl-96/printf_fphex.c b/sysdeps/ieee754/ldbl-96/printf_fphex.c
index 45d97447a7..359f2fce8e 100644
--- a/sysdeps/ieee754/ldbl-96/printf_fphex.c
+++ b/sysdeps/ieee754/ldbl-96/printf_fphex.c
@@ -1,5 +1,5 @@
/* Print floating point number in hexadecimal notation according to ISO C99.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef LONG_DOUBLE_DENORM_BIAS
# define LONG_DOUBLE_DENORM_BIAS (IEEE854_LONG_DOUBLE_BIAS - 1)
diff --git a/sysdeps/ieee754/ldbl-96/s_asinhl.c b/sysdeps/ieee754/ldbl-96/s_asinhl.c
index 2b9ae1f677..0edd332150 100644
--- a/sysdeps/ieee754/ldbl-96/s_asinhl.c
+++ b/sysdeps/ieee754/ldbl-96/s_asinhl.c
@@ -62,6 +62,6 @@ long double __asinhl(long double x)
w =__log1pl(xa+t/(one+sqrtl(one+t)));
}
}
- return __copysignl(w, x);
+ return copysignl(w, x);
}
libm_alias_ldouble (__asinh, asinh)
diff --git a/sysdeps/ieee754/ldbl-96/s_cbrtl.c b/sysdeps/ieee754/ldbl-96/s_cbrtl.c
index 67cf86dd7a..7243ac503d 100644
--- a/sysdeps/ieee754/ldbl-96/s_cbrtl.c
+++ b/sysdeps/ieee754/ldbl-96/s_cbrtl.c
@@ -1,5 +1,5 @@
/* Compute cubic root of double value.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Dirk Alboth <dirka@uni-paderborn.de> and
Ulrich Drepper <drepper@cygnus.com>, 1997.
@@ -16,10 +16,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
-#include <math_private.h>
#include <libm-alias-ldouble.h>
diff --git a/sysdeps/ieee754/ldbl-96/s_copysignl.c b/sysdeps/ieee754/ldbl-96/s_copysignl.c
index 3c16d54783..d0a6dc163a 100644
--- a/sysdeps/ieee754/ldbl-96/s_copysignl.c
+++ b/sysdeps/ieee754/ldbl-96/s_copysignl.c
@@ -24,6 +24,7 @@ static char rcsid[] = "$NetBSD: $";
* with the sign bit of y.
*/
+#define NO_MATH_REDIRECT
#include <math.h>
#include <math_private.h>
#include <libm-alias-ldouble.h>
diff --git a/sysdeps/ieee754/ldbl-96/s_daddl.c b/sysdeps/ieee754/ldbl-96/s_daddl.c
index d1e3c17bc7..b3d6c2571e 100644
--- a/sysdeps/ieee754/ldbl-96/s_daddl.c
+++ b/sysdeps/ieee754/ldbl-96/s_daddl.c
@@ -1,5 +1,5 @@
/* Add long double (ldbl-96) values, narrowing the result to double.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define f32xaddf64x __hide_f32xaddf64x
#define f64addf64x __hide_f64addf64x
diff --git a/sysdeps/ieee754/ldbl-96/s_ddivl.c b/sysdeps/ieee754/ldbl-96/s_ddivl.c
index 9c266d1ff3..5ffdda9508 100644
--- a/sysdeps/ieee754/ldbl-96/s_ddivl.c
+++ b/sysdeps/ieee754/ldbl-96/s_ddivl.c
@@ -1,5 +1,5 @@
/* Divide long double (ldbl-96) values, narrowing the result to double.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define f32xdivf64x __hide_f32xdivf64x
#define f64divf64x __hide_f64divf64x
diff --git a/sysdeps/ieee754/ldbl-96/s_dmull.c b/sysdeps/ieee754/ldbl-96/s_dmull.c
index a717b0aa07..58cc1ab75d 100644
--- a/sysdeps/ieee754/ldbl-96/s_dmull.c
+++ b/sysdeps/ieee754/ldbl-96/s_dmull.c
@@ -1,5 +1,5 @@
/* Multiply long double (ldbl-96) values, narrowing the result to double.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define f32xmulf64x __hide_f32xmulf64x
#define f64mulf64x __hide_f64mulf64x
diff --git a/sysdeps/ieee754/ldbl-96/s_dsubl.c b/sysdeps/ieee754/ldbl-96/s_dsubl.c
index 5a855790f6..bbb8dd3fb0 100644
--- a/sysdeps/ieee754/ldbl-96/s_dsubl.c
+++ b/sysdeps/ieee754/ldbl-96/s_dsubl.c
@@ -1,5 +1,5 @@
/* Subtract long double (ldbl-96) values, narrowing the result to double.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define f32xsubf64x __hide_f32xsubf64x
#define f64subf64x __hide_f64subf64x
diff --git a/sysdeps/ieee754/ldbl-96/s_erfl.c b/sysdeps/ieee754/ldbl-96/s_erfl.c
index 1e42df70a7..6cc498d21f 100644
--- a/sysdeps/ieee754/ldbl-96/s_erfl.c
+++ b/sysdeps/ieee754/ldbl-96/s_erfl.c
@@ -28,7 +28,7 @@
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* double erf(double x)
* double erfc(double x)
diff --git a/sysdeps/ieee754/ldbl-96/s_faddl.c b/sysdeps/ieee754/ldbl-96/s_faddl.c
index 4164774cd4..051e81cf6e 100644
--- a/sysdeps/ieee754/ldbl-96/s_faddl.c
+++ b/sysdeps/ieee754/ldbl-96/s_faddl.c
@@ -1,5 +1,5 @@
/* Add long double (ldbl-96) values, narrowing the result to float.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define f32addf64x __hide_f32addf64x
#include <math.h>
diff --git a/sysdeps/ieee754/ldbl-96/s_fdivl.c b/sysdeps/ieee754/ldbl-96/s_fdivl.c
index ccb87ccd15..17a1248dde 100644
--- a/sysdeps/ieee754/ldbl-96/s_fdivl.c
+++ b/sysdeps/ieee754/ldbl-96/s_fdivl.c
@@ -1,5 +1,5 @@
/* Divide long double (ldbl-96) values, narrowing the result to float.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define f32divf64x __hide_f32divf64x
#include <math.h>
diff --git a/sysdeps/ieee754/ldbl-96/s_fma.c b/sysdeps/ieee754/ldbl-96/s_fma.c
index 986879cda5..7519936bdc 100644
--- a/sysdeps/ieee754/ldbl-96/s_fma.c
+++ b/sysdeps/ieee754/ldbl-96/s_fma.c
@@ -1,5 +1,5 @@
/* Compute x * y + z as ternary operation.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 2010.
@@ -15,14 +15,13 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <float.h>
#include <math.h>
#include <fenv.h>
#include <ieee754.h>
#include <math-barriers.h>
-#include <math_private.h>
#include <libm-alias-double.h>
/* This implementation uses rounding to odd to avoid problems with
diff --git a/sysdeps/ieee754/ldbl-96/s_fmal.c b/sysdeps/ieee754/ldbl-96/s_fmal.c
index 0b261fd17a..feae06b371 100644
--- a/sysdeps/ieee754/ldbl-96/s_fmal.c
+++ b/sysdeps/ieee754/ldbl-96/s_fmal.c
@@ -1,5 +1,5 @@
/* Compute x * y + z as ternary operation.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 2010.
@@ -15,14 +15,13 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <float.h>
#include <math.h>
#include <fenv.h>
#include <ieee754.h>
#include <math-barriers.h>
-#include <math_private.h>
#include <libm-alias-ldouble.h>
#include <tininess.h>
diff --git a/sysdeps/ieee754/ldbl-96/s_fmull.c b/sysdeps/ieee754/ldbl-96/s_fmull.c
index b7582526a6..3557006b25 100644
--- a/sysdeps/ieee754/ldbl-96/s_fmull.c
+++ b/sysdeps/ieee754/ldbl-96/s_fmull.c
@@ -1,5 +1,5 @@
/* Multiply long double (ldbl-96) values, narrowing the result to float.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define f32mulf64x __hide_f32mulf64x
#include <math.h>
diff --git a/sysdeps/ieee754/ldbl-96/s_fromfpl_main.c b/sysdeps/ieee754/ldbl-96/s_fromfpl_main.c
index 6f24ccf488..28d1aa758d 100644
--- a/sysdeps/ieee754/ldbl-96/s_fromfpl_main.c
+++ b/sysdeps/ieee754/ldbl-96/s_fromfpl_main.c
@@ -1,5 +1,5 @@
/* Round to integer type. ldbl-96 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fenv.h>
diff --git a/sysdeps/ieee754/ldbl-96/s_fsubl.c b/sysdeps/ieee754/ldbl-96/s_fsubl.c
index 54aaf68b74..52cbcaab75 100644
--- a/sysdeps/ieee754/ldbl-96/s_fsubl.c
+++ b/sysdeps/ieee754/ldbl-96/s_fsubl.c
@@ -1,5 +1,5 @@
/* Subtract long double (ldbl-96) values, narrowing the result to float.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define f32subf64x __hide_f32subf64x
#include <math.h>
diff --git a/sysdeps/ieee754/ldbl-96/s_getpayloadl.c b/sysdeps/ieee754/ldbl-96/s_getpayloadl.c
index 4b7b734f3d..80e1d73be3 100644
--- a/sysdeps/ieee754/ldbl-96/s_getpayloadl.c
+++ b/sysdeps/ieee754/ldbl-96/s_getpayloadl.c
@@ -1,5 +1,5 @@
/* Get NaN payload. ldbl-96 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/ieee754/ldbl-96/s_iscanonicall.c b/sysdeps/ieee754/ldbl-96/s_iscanonicall.c
index 413c6bd42c..f3cc7f4b17 100644
--- a/sysdeps/ieee754/ldbl-96/s_iscanonicall.c
+++ b/sysdeps/ieee754/ldbl-96/s_iscanonicall.c
@@ -1,5 +1,5 @@
/* Test whether long double value is canonical. ldbl-96 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <float.h>
#include <math.h>
diff --git a/sysdeps/ieee754/ldbl-96/s_issignalingl.c b/sysdeps/ieee754/ldbl-96/s_issignalingl.c
index b1dd41ecfd..2014703bcf 100644
--- a/sysdeps/ieee754/ldbl-96/s_issignalingl.c
+++ b/sysdeps/ieee754/ldbl-96/s_issignalingl.c
@@ -1,5 +1,5 @@
/* Test for signaling NaN.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/ieee754/ldbl-96/s_llrintl.c b/sysdeps/ieee754/ldbl-96/s_llrintl.c
index d45a69a1f7..59bea5d405 100644
--- a/sysdeps/ieee754/ldbl-96/s_llrintl.c
+++ b/sysdeps/ieee754/ldbl-96/s_llrintl.c
@@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <limits.h>
diff --git a/sysdeps/ieee754/ldbl-96/s_llroundl.c b/sysdeps/ieee754/ldbl-96/s_llroundl.c
index 601fd0e644..3d20c94755 100644
--- a/sysdeps/ieee754/ldbl-96/s_llroundl.c
+++ b/sysdeps/ieee754/ldbl-96/s_llroundl.c
@@ -1,5 +1,5 @@
/* Round long double value to long long int.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <limits.h>
diff --git a/sysdeps/ieee754/ldbl-96/s_lrintl.c b/sysdeps/ieee754/ldbl-96/s_lrintl.c
index df3222c7f2..8a4b671ea8 100644
--- a/sysdeps/ieee754/ldbl-96/s_lrintl.c
+++ b/sysdeps/ieee754/ldbl-96/s_lrintl.c
@@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <limits.h>
diff --git a/sysdeps/ieee754/ldbl-96/s_lroundl.c b/sysdeps/ieee754/ldbl-96/s_lroundl.c
index 0cc9f9c5d6..4dd88cc794 100644
--- a/sysdeps/ieee754/ldbl-96/s_lroundl.c
+++ b/sysdeps/ieee754/ldbl-96/s_lroundl.c
@@ -1,5 +1,5 @@
/* Round long double value to long int.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <limits.h>
diff --git a/sysdeps/ieee754/ldbl-96/s_nextupl.c b/sysdeps/ieee754/ldbl-96/s_nextupl.c
index 5dff32ce73..f64eb12904 100644
--- a/sysdeps/ieee754/ldbl-96/s_nextupl.c
+++ b/sysdeps/ieee754/ldbl-96/s_nextupl.c
@@ -1,5 +1,5 @@
/* Return the least floating-point number greater than X.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <float.h>
#include <math.h>
diff --git a/sysdeps/ieee754/ldbl-96/s_remquol.c b/sysdeps/ieee754/ldbl-96/s_remquol.c
index 88c5ea2084..6263ad7bbd 100644
--- a/sysdeps/ieee754/ldbl-96/s_remquol.c
+++ b/sysdeps/ieee754/ldbl-96/s_remquol.c
@@ -1,5 +1,5 @@
/* Compute remainder and a congruent to the quotient.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/ieee754/ldbl-96/s_roundevenl.c b/sysdeps/ieee754/ldbl-96/s_roundevenl.c
index be2e4fa49e..6544bf20f8 100644
--- a/sysdeps/ieee754/ldbl-96/s_roundevenl.c
+++ b/sysdeps/ieee754/ldbl-96/s_roundevenl.c
@@ -1,6 +1,6 @@
/* Round to nearest integer value, rounding halfway cases to even.
ldbl-96 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/ieee754/ldbl-96/s_roundl.c b/sysdeps/ieee754/ldbl-96/s_roundl.c
index c5c304cb2e..9c2116241f 100644
--- a/sysdeps/ieee754/ldbl-96/s_roundl.c
+++ b/sysdeps/ieee754/ldbl-96/s_roundl.c
@@ -1,5 +1,5 @@
/* Round long double to integer away from zero.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@@ -15,8 +15,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/ieee754/ldbl-96/s_scalblnl.c b/sysdeps/ieee754/ldbl-96/s_scalblnl.c
index 457e999c6c..d752248037 100644
--- a/sysdeps/ieee754/ldbl-96/s_scalblnl.c
+++ b/sysdeps/ieee754/ldbl-96/s_scalblnl.c
@@ -44,16 +44,16 @@ __scalblnl (long double x, long int n)
}
if (__builtin_expect(k==0x7fff, 0)) return x+x; /* NaN or Inf */
if (__builtin_expect(n< -50000, 0))
- return tiny*__copysignl(tiny,x);
+ return tiny*copysignl(tiny,x);
if (__builtin_expect(n> 50000 || k+n > 0x7ffe, 0))
- return huge*__copysignl(huge,x); /* overflow */
+ return huge*copysignl(huge,x); /* overflow */
/* Now k and n are bounded we know that k = k+n does not
overflow. */
k = k+n;
if (__builtin_expect(k > 0, 1)) /* normal result */
{SET_LDOUBLE_EXP(x,(es&0x8000)|k); return x;}
if (k <= -64)
- return tiny*__copysignl(tiny,x); /*underflow*/
+ return tiny*copysignl(tiny,x); /*underflow*/
k += 64; /* subnormal result */
SET_LDOUBLE_EXP(x,(es&0x8000)|k);
return x*twom64;
diff --git a/sysdeps/ieee754/ldbl-96/s_setpayloadl_main.c b/sysdeps/ieee754/ldbl-96/s_setpayloadl_main.c
index 6b85bdf1a9..8439f4cfec 100644
--- a/sysdeps/ieee754/ldbl-96/s_setpayloadl_main.c
+++ b/sysdeps/ieee754/ldbl-96/s_setpayloadl_main.c
@@ -1,5 +1,5 @@
/* Set NaN payload. ldbl-96 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/ieee754/ldbl-96/s_signbitl.c b/sysdeps/ieee754/ldbl-96/s_signbitl.c
index 19953c180a..785788829d 100644
--- a/sysdeps/ieee754/ldbl-96/s_signbitl.c
+++ b/sysdeps/ieee754/ldbl-96/s_signbitl.c
@@ -1,5 +1,5 @@
/* Return nonzero value if number is negative.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/ieee754/ldbl-96/s_sincosl.c b/sysdeps/ieee754/ldbl-96/s_sincosl.c
index 355c25dba9..fe9517bbd1 100644
--- a/sysdeps/ieee754/ldbl-96/s_sincosl.c
+++ b/sysdeps/ieee754/ldbl-96/s_sincosl.c
@@ -1,5 +1,5 @@
/* Compute sine and cosine of argument.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <math.h>
diff --git a/sysdeps/ieee754/ldbl-96/s_totalorderl.c b/sysdeps/ieee754/ldbl-96/s_totalorderl.c
index f5be9bf28e..98e5e3d699 100644
--- a/sysdeps/ieee754/ldbl-96/s_totalorderl.c
+++ b/sysdeps/ieee754/ldbl-96/s_totalorderl.c
@@ -1,5 +1,5 @@
/* Total order operation. ldbl-96 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <float.h>
#include <math.h>
@@ -22,15 +22,17 @@
#include <libm-alias-ldouble.h>
#include <nan-high-order-bit.h>
#include <stdint.h>
+#include <shlib-compat.h>
+#include <first-versions.h>
int
-__totalorderl (long double x, long double y)
+__totalorderl (const long double *x, const long double *y)
{
int16_t expx, expy;
uint32_t hx, hy;
uint32_t lx, ly;
- GET_LDOUBLE_WORDS (expx, hx, lx, x);
- GET_LDOUBLE_WORDS (expy, hy, ly, y);
+ GET_LDOUBLE_WORDS (expx, hx, lx, *x);
+ GET_LDOUBLE_WORDS (expy, hy, ly, *y);
if (LDBL_MIN_EXP == -16382)
{
/* M68K variant: for the greatest exponent, the high mantissa
@@ -56,4 +58,29 @@ __totalorderl (long double x, long double y)
ly ^= y_sign;
return expx < expy || (expx == expy && (hx < hy || (hx == hy && lx <= ly)));
}
+#ifdef SHARED
+# define CONCATX(x, y) x ## y
+# define CONCAT(x, y) CONCATX (x, y)
+# define UNIQUE_ALIAS(name) CONCAT (name, __COUNTER__)
+# define do_symbol(orig_name, name, aliasname) \
+ strong_alias (orig_name, name) \
+ versioned_symbol (libm, name, aliasname, GLIBC_2_31)
+# undef weak_alias
+# define weak_alias(name, aliasname) \
+ do_symbol (name, UNIQUE_ALIAS (name), aliasname);
+#endif
libm_alias_ldouble (__totalorder, totalorder)
+#if SHLIB_COMPAT (libm, GLIBC_2_25, GLIBC_2_31)
+int
+attribute_compat_text_section
+__totalorder_compatl (long double x, long double y)
+{
+ return __totalorderl (&x, &y);
+}
+#undef do_symbol
+#define do_symbol(orig_name, name, aliasname) \
+ strong_alias (orig_name, name) \
+ compat_symbol (libm, name, aliasname, \
+ CONCAT (FIRST_VERSION_libm_, aliasname))
+libm_alias_ldouble (__totalorder_compat, totalorder)
+#endif
diff --git a/sysdeps/ieee754/ldbl-96/s_totalordermagl.c b/sysdeps/ieee754/ldbl-96/s_totalordermagl.c
index 18efefaee1..0fe6f9be4a 100644
--- a/sysdeps/ieee754/ldbl-96/s_totalordermagl.c
+++ b/sysdeps/ieee754/ldbl-96/s_totalordermagl.c
@@ -1,5 +1,5 @@
/* Total order operation on absolute values. ldbl-96 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <float.h>
#include <math.h>
@@ -22,15 +22,17 @@
#include <libm-alias-ldouble.h>
#include <nan-high-order-bit.h>
#include <stdint.h>
+#include <shlib-compat.h>
+#include <first-versions.h>
int
-__totalordermagl (long double x, long double y)
+__totalordermagl (const long double *x, const long double *y)
{
uint16_t expx, expy;
uint32_t hx, hy;
uint32_t lx, ly;
- GET_LDOUBLE_WORDS (expx, hx, lx, x);
- GET_LDOUBLE_WORDS (expy, hy, ly, y);
+ GET_LDOUBLE_WORDS (expx, hx, lx, *x);
+ GET_LDOUBLE_WORDS (expy, hy, ly, *y);
expx &= 0x7fff;
expy &= 0x7fff;
if (LDBL_MIN_EXP == -16382)
@@ -50,4 +52,29 @@ __totalordermagl (long double x, long double y)
#endif
return expx < expy || (expx == expy && (hx < hy || (hx == hy && lx <= ly)));
}
+#ifdef SHARED
+# define CONCATX(x, y) x ## y
+# define CONCAT(x, y) CONCATX (x, y)
+# define UNIQUE_ALIAS(name) CONCAT (name, __COUNTER__)
+# define do_symbol(orig_name, name, aliasname) \
+ strong_alias (orig_name, name) \
+ versioned_symbol (libm, name, aliasname, GLIBC_2_31)
+# undef weak_alias
+# define weak_alias(name, aliasname) \
+ do_symbol (name, UNIQUE_ALIAS (name), aliasname);
+#endif
libm_alias_ldouble (__totalordermag, totalordermag)
+#if SHLIB_COMPAT (libm, GLIBC_2_25, GLIBC_2_31)
+int
+attribute_compat_text_section
+__totalordermag_compatl (long double x, long double y)
+{
+ return __totalordermagl (&x, &y);
+}
+#undef do_symbol
+#define do_symbol(orig_name, name, aliasname) \
+ strong_alias (orig_name, name) \
+ compat_symbol (libm, name, aliasname, \
+ CONCAT (FIRST_VERSION_libm_, aliasname))
+libm_alias_ldouble (__totalordermag_compat, totalordermag)
+#endif
diff --git a/sysdeps/ieee754/ldbl-96/strtold_l.c b/sysdeps/ieee754/ldbl-96/strtold_l.c
index 145e64f766..d980e1fdc8 100644
--- a/sysdeps/ieee754/ldbl-96/strtold_l.c
+++ b/sysdeps/ieee754/ldbl-96/strtold_l.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/ieee754/ldbl-96/t_sincosl.c b/sysdeps/ieee754/ldbl-96/t_sincosl.c
index 5d3531f677..726f97d640 100644
--- a/sysdeps/ieee754/ldbl-96/t_sincosl.c
+++ b/sysdeps/ieee754/ldbl-96/t_sincosl.c
@@ -1,5 +1,5 @@
/* Extended-precision floating point sine and cosine tables.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Based on quad-precision tables by Jakub Jelinek <jj@ultra.linux.cz>
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* For 0.1484375 + n/128.0, n=0..82 this table contains
first 64 bits of cosine, then at least 64 additional
diff --git a/sysdeps/ieee754/ldbl-96/test-canonical-ldbl-96.c b/sysdeps/ieee754/ldbl-96/test-canonical-ldbl-96.c
index cd63e01140..3d620a5e25 100644
--- a/sysdeps/ieee754/ldbl-96/test-canonical-ldbl-96.c
+++ b/sysdeps/ieee754/ldbl-96/test-canonical-ldbl-96.c
@@ -1,5 +1,5 @@
/* Test iscanonical and canonicalizel for ldbl-96.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <float.h>
#include <math.h>
diff --git a/sysdeps/ieee754/ldbl-96/test-totalorderl-ldbl-96.c b/sysdeps/ieee754/ldbl-96/test-totalorderl-ldbl-96.c
index 552a97783a..8b86965d1b 100644
--- a/sysdeps/ieee754/ldbl-96/test-totalorderl-ldbl-96.c
+++ b/sysdeps/ieee754/ldbl-96/test-totalorderl-ldbl-96.c
@@ -1,5 +1,5 @@
/* Test totalorderl and totalordermagl for ldbl-96.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <float.h>
#include <math.h>
@@ -51,10 +51,10 @@ do_test (void)
SET_LDOUBLE_WORDS (ldny, 0xffff,
(tests[i] >> 32) | 0x80000000,
tests[i] & 0xffffffffULL);
- bool to1 = totalorderl (ldx, ldy);
- bool to2 = totalorderl (ldy, ldx);
- bool to3 = totalorderl (ldnx, ldny);
- bool to4 = totalorderl (ldny, ldnx);
+ bool to1 = totalorderl (&ldx, &ldy);
+ bool to2 = totalorderl (&ldy, &ldx);
+ bool to3 = totalorderl (&ldnx, &ldny);
+ bool to4 = totalorderl (&ldny, &ldnx);
if (to1 && to2 && to3 && to4)
printf ("PASS: test %zu\n", i);
else
@@ -62,10 +62,10 @@ do_test (void)
printf ("FAIL: test %zu\n", i);
result = 1;
}
- to1 = totalordermagl (ldx, ldy);
- to2 = totalordermagl (ldy, ldx);
- to3 = totalordermagl (ldnx, ldny);
- to4 = totalordermagl (ldny, ldnx);
+ to1 = totalordermagl (&ldx, &ldy);
+ to2 = totalordermagl (&ldy, &ldx);
+ to3 = totalordermagl (&ldnx, &ldny);
+ to4 = totalordermagl (&ldny, &ldnx);
if (to1 && to2 && to3 && to4)
printf ("PASS: test %zu (totalordermagl)\n", i);
else
diff --git a/sysdeps/ieee754/ldbl-96/x2y2m1.c b/sysdeps/ieee754/ldbl-96/x2y2m1.c
index afe7ab161b..9f9f674162 100644
--- a/sysdeps/ieee754/ldbl-96/x2y2m1.c
+++ b/sysdeps/ieee754/ldbl-96/x2y2m1.c
@@ -1,5 +1,5 @@
/* Compute x^2 + y^2 - 1, without large cancellation error.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/ieee754/ldbl-96/x2y2m1l.c b/sysdeps/ieee754/ldbl-96/x2y2m1l.c
index 392830c1b0..f1c1f7c8c2 100644
--- a/sysdeps/ieee754/ldbl-96/x2y2m1l.c
+++ b/sysdeps/ieee754/ldbl-96/x2y2m1l.c
@@ -1,5 +1,5 @@
/* Compute x^2 + y^2 - 1, without large cancellation error.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,10 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
+#include <fenv_private.h>
#include <mul_splitl.h>
#include <stdlib.h>
diff --git a/sysdeps/ieee754/ldbl-opt/Makefile b/sysdeps/ieee754/ldbl-opt/Makefile
index ef790adc77..791a5eabd2 100644
--- a/sysdeps/ieee754/ldbl-opt/Makefile
+++ b/sysdeps/ieee754/ldbl-opt/Makefile
@@ -8,7 +8,7 @@ endif
ifeq ($(subdir),math)
libm-routines += s_nexttowardfd
-routines += math_ldbl_opt nldbl-compat
+routines += nldbl-compat
extra-libs += libnldbl
libnldbl-calls = asprintf dprintf fprintf fscanf fwprintf fwscanf iovfscanf \
@@ -172,7 +172,36 @@ CFLAGS-nldbl-y0.c = -fno-builtin-y0l
CFLAGS-nldbl-y1.c = -fno-builtin-y1l
CFLAGS-nldbl-yn.c = -fno-builtin-ynl
-tests += test-narrow-macros-ldbl-64
+tests += test-narrow-macros-ldbl-64 test-nldbl-redirect
CFLAGS-test-narrow-macros-ldbl-64.c += -mlong-double-64
+CFLAGS-test-nldbl-redirect.c += -mlong-double-64
+$(objpfx)test-nldbl-redirect: $(objpfx)libnldbl_nonshared.a
+
+endif
+
+# Tests for argp.h functions (reusing the relevant tests from argp/)
+ifeq ($(subdir),argp)
+tests-internal += tst-nldbl-argp
+
+$(objpfx)tst-nldbl-argp.c: tst-ldbl-argp.c
+ cp $< $@
+
+CFLAGS-tst-nldbl-argp.c += -mlong-double-64
+endif
+
+# Tests for err.h and error.h functions (reusing the relevant tests from
+# misc/).
+ifeq ($(subdir), misc)
+tests-internal += tst-nldbl-warn
+tests-internal += tst-nldbl-error
+
+$(objpfx)tst-nldbl-warn.c: tst-ldbl-warn.c
+ cp $< $@
+
+$(objpfx)tst-nldbl-error.c: tst-ldbl-error.c
+ cp $< $@
+
+CFLAGS-tst-nldbl-warn.c += -mlong-double-64
+CFLAGS-tst-nldbl-error.c += -mlong-double-64
endif
diff --git a/sysdeps/ieee754/ldbl-opt/Versions b/sysdeps/ieee754/ldbl-opt/Versions
index af0c4a098c..21a2db6888 100644
--- a/sysdeps/ieee754/ldbl-opt/Versions
+++ b/sysdeps/ieee754/ldbl-opt/Versions
@@ -78,6 +78,12 @@ libc {
__nldbl___dprintf_chk; __nldbl___vdprintf_chk;
__nldbl___obstack_printf_chk; __nldbl___obstack_vprintf_chk;
}
+ GLIBC_2.30 {
+ __nldbl_argp_error; __nldbl_argp_failure;
+ __nldbl_warn; __nldbl_vwarn; __nldbl_warnx; __nldbl_vwarnx;
+ __nldbl_err; __nldbl_verr; __nldbl_errx; __nldbl_verrx;
+ __nldbl_error; __nldbl_error_at_line;
+ }
}
libm {
NLDBL_VERSION {
diff --git a/sysdeps/ieee754/ldbl-opt/bits/long-double.h b/sysdeps/ieee754/ldbl-opt/bits/long-double.h
index 69b33890ff..1e8fb5886e 100644
--- a/sysdeps/ieee754/ldbl-opt/bits/long-double.h
+++ b/sysdeps/ieee754/ldbl-opt/bits/long-double.h
@@ -1,5 +1,5 @@
/* Properties of long double type. ldbl-opt version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef __NO_LONG_DOUBLE_MATH
# define __LONG_DOUBLE_MATH_OPTIONAL 1
diff --git a/sysdeps/ieee754/ldbl-opt/libm-alias-double.h b/sysdeps/ieee754/ldbl-opt/libm-alias-double.h
index 95f810f4eb..4ea4fced15 100644
--- a/sysdeps/ieee754/ldbl-opt/libm-alias-double.h
+++ b/sysdeps/ieee754/ldbl-opt/libm-alias-double.h
@@ -1,5 +1,5 @@
/* Define aliases for libm double functions. ldbl-opt version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LIBM_ALIAS_DOUBLE_H
#define _LIBM_ALIAS_DOUBLE_H
diff --git a/sysdeps/ieee754/ldbl-opt/libm-alias-ldouble.h b/sysdeps/ieee754/ldbl-opt/libm-alias-ldouble.h
index df9172b333..cc249c1d24 100644
--- a/sysdeps/ieee754/ldbl-opt/libm-alias-ldouble.h
+++ b/sysdeps/ieee754/ldbl-opt/libm-alias-ldouble.h
@@ -1,5 +1,5 @@
/* Define aliases for libm long double functions. ldbl-opt version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LIBM_ALIAS_LDOUBLE_H
#define _LIBM_ALIAS_LDOUBLE_H
diff --git a/sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h b/sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h
index 61ba784f86..cbe8156e39 100644
--- a/sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h
+++ b/sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h
@@ -20,10 +20,16 @@
long_double_symbol (libc, __GL_##name##_##aliasname, aliasname);
# define long_double_symbol_1(lib, local, symbol, version) \
versioned_symbol (lib, local, symbol, version)
+# define ldbl_compat_symbol(lib, local, symbol, version) \
+ compat_symbol (lib, local, symbol, LONG_DOUBLE_COMPAT_VERSION)
#else
# define ldbl_hidden_def(local, name) libc_hidden_def (name)
# define ldbl_strong_alias(name, aliasname) strong_alias (name, aliasname)
# define ldbl_weak_alias(name, aliasname) weak_alias (name, aliasname)
+/* Same as compat_symbol, ldbl_compat_symbol is not to be used outside
+ '#if SHLIB_COMPAT' statement and should fail if it is. */
+# define ldbl_compat_symbol(lib, local, symbol, version) \
+ _Static_assert (0, "ldbl_compat_symbol should be used inside SHLIB_COMPAT");
# ifndef __ASSEMBLER__
/* Note that weak_alias cannot be used - it is defined to nothing
in most of the C files. */
@@ -34,10 +40,3 @@
weak_alias (local, symbol)
# endif
#endif
-
-#ifndef __ASSEMBLER__
-/* Set temporarily to non-zero if long double should be considered
- the same as double. */
-extern __thread int __no_long_double attribute_tls_model_ie attribute_hidden;
-# define __ldbl_is_dbl __builtin_expect (__no_long_double, 0)
-#endif
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-canonicalize.c b/sysdeps/ieee754/ldbl-opt/nldbl-canonicalize.c
index a65d87458d..ec4cceec20 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-canonicalize.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-canonicalize.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for canonicalize.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "nldbl-compat.h"
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-compat.c b/sysdeps/ieee754/ldbl-opt/nldbl-compat.c
index ffb5fabebe..2e59f9e77b 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-compat.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-compat.c
@@ -1,5 +1,5 @@
/* *printf* family compatibility routines for IEEE double as long double
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@cygnus.com>, 2006.
@@ -15,11 +15,19 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+/* This file may define some of the deprecated scanf variants. */
+#include <features.h>
+#undef __GLIBC_USE_DEPRECATED_SCANF
+#define __GLIBC_USE_DEPRECATED_SCANF 1
+
+#include <argp.h>
+#include <err.h>
+#include <error.h>
#include <stdarg.h>
#include <stdio.h>
-#include <libioP.h>
+#include <libio/strfile.h>
#include <math.h>
#include <wchar.h>
#include <printf.h>
@@ -30,45 +38,15 @@
#include "nldbl-compat.h"
-libc_hidden_proto (__nldbl_vfprintf)
libc_hidden_proto (__nldbl_vsscanf)
-libc_hidden_proto (__nldbl_vsprintf)
libc_hidden_proto (__nldbl_vfscanf)
libc_hidden_proto (__nldbl_vfwscanf)
-libc_hidden_proto (__nldbl_vdprintf)
libc_hidden_proto (__nldbl_vswscanf)
-libc_hidden_proto (__nldbl_vfwprintf)
-libc_hidden_proto (__nldbl_vswprintf)
-libc_hidden_proto (__nldbl_vsnprintf)
-libc_hidden_proto (__nldbl_vasprintf)
-libc_hidden_proto (__nldbl_obstack_vprintf)
-libc_hidden_proto (__nldbl___vfwprintf_chk)
-libc_hidden_proto (__nldbl___vsnprintf_chk)
-libc_hidden_proto (__nldbl___vfprintf_chk)
-libc_hidden_proto (__nldbl___vsyslog_chk)
-libc_hidden_proto (__nldbl___vsprintf_chk)
-libc_hidden_proto (__nldbl___vswprintf_chk)
-libc_hidden_proto (__nldbl___vasprintf_chk)
-libc_hidden_proto (__nldbl___vdprintf_chk)
-libc_hidden_proto (__nldbl___obstack_vprintf_chk)
-libc_hidden_proto (__nldbl___vstrfmon)
-libc_hidden_proto (__nldbl___vstrfmon_l)
libc_hidden_proto (__nldbl___isoc99_vsscanf)
libc_hidden_proto (__nldbl___isoc99_vfscanf)
libc_hidden_proto (__nldbl___isoc99_vswscanf)
libc_hidden_proto (__nldbl___isoc99_vfwscanf)
-static void
-__nldbl_cleanup (void *arg)
-{
- __no_long_double = 0;
-}
-
-#define set_no_long_double() \
- __libc_cleanup_push (__nldbl_cleanup, NULL); __no_long_double = 1
-#define clear_no_long_double() \
- __no_long_double = 0; __libc_cleanup_pop (0)
-
/* Compatibility with IEEE double as long double.
IEEE quad long double is used by default for most programs, so
we don't need to split this into one file per function for the
@@ -78,14 +56,14 @@ int
attribute_compat_text_section
__nldbl___asprintf (char **string_ptr, const char *fmt, ...)
{
- va_list arg;
- int done;
+ va_list ap;
+ int ret;
- va_start (arg, fmt);
- done = __nldbl_vasprintf (string_ptr, fmt, arg);
- va_end (arg);
+ va_start (ap, fmt);
+ ret = __vasprintf_internal (string_ptr, fmt, ap, PRINTF_LDBL_IS_DBL);
+ va_end (ap);
- return done;
+ return ret;
}
weak_alias (__nldbl___asprintf, __nldbl_asprintf)
@@ -93,28 +71,28 @@ int
attribute_compat_text_section
__nldbl_dprintf (int d, const char *fmt, ...)
{
- va_list arg;
- int done;
+ va_list ap;
+ int ret;
- va_start (arg, fmt);
- done = __nldbl_vdprintf (d, fmt, arg);
- va_end (arg);
+ va_start (ap, fmt);
+ ret = __vdprintf_internal (d, fmt, ap, PRINTF_LDBL_IS_DBL);
+ va_end (ap);
- return done;
+ return ret;
}
int
attribute_compat_text_section
__nldbl_fprintf (FILE *stream, const char *fmt, ...)
{
- va_list arg;
- int done;
+ va_list ap;
+ int ret;
- va_start (arg, fmt);
- done = __nldbl_vfprintf (stream, fmt, arg);
- va_end (arg);
+ va_start (ap, fmt);
+ ret = __vfprintf_internal (stream, fmt, ap, PRINTF_LDBL_IS_DBL);
+ va_end (ap);
- return done;
+ return ret;
}
weak_alias (__nldbl_fprintf, __nldbl__IO_fprintf)
@@ -122,28 +100,28 @@ int
attribute_compat_text_section weak_function
__nldbl_fwprintf (FILE *stream, const wchar_t *fmt, ...)
{
- va_list arg;
- int done;
+ va_list ap;
+ int ret;
- va_start (arg, fmt);
- done = __nldbl_vfwprintf (stream, fmt, arg);
- va_end (arg);
+ va_start (ap, fmt);
+ ret = __vfwprintf_internal (stream, fmt, ap, PRINTF_LDBL_IS_DBL);
+ va_end (ap);
- return done;
+ return ret;
}
int
attribute_compat_text_section
__nldbl_printf (const char *fmt, ...)
{
- va_list arg;
- int done;
+ va_list ap;
+ int ret;
- va_start (arg, fmt);
- done = __nldbl_vfprintf (stdout, fmt, arg);
- va_end (arg);
+ va_start (ap, fmt);
+ ret = __vfprintf_internal (stdout, fmt, ap, PRINTF_LDBL_IS_DBL);
+ va_end (ap);
- return done;
+ return ret;
}
strong_alias (__nldbl_printf, __nldbl__IO_printf)
@@ -151,14 +129,14 @@ int
attribute_compat_text_section
__nldbl_sprintf (char *s, const char *fmt, ...)
{
- va_list arg;
- int done;
+ va_list ap;
+ int ret;
- va_start (arg, fmt);
- done = __nldbl_vsprintf (s, fmt, arg);
- va_end (arg);
+ va_start (ap, fmt);
+ ret = __vsprintf_internal (s, -1, fmt, ap, PRINTF_LDBL_IS_DBL);
+ va_end (ap);
- return done;
+ return ret;
}
strong_alias (__nldbl_sprintf, __nldbl__IO_sprintf)
@@ -166,122 +144,93 @@ int
attribute_compat_text_section
__nldbl_vfprintf (FILE *s, const char *fmt, va_list ap)
{
- int done;
- set_no_long_double ();
- done = _IO_vfprintf (s, fmt, ap);
- clear_no_long_double ();
- return done;
+ return __vfprintf_internal (s, fmt, ap, PRINTF_LDBL_IS_DBL);
}
-libc_hidden_def (__nldbl_vfprintf)
strong_alias (__nldbl_vfprintf, __nldbl__IO_vfprintf)
int
attribute_compat_text_section
-__nldbl__IO_vsprintf (char *string, const char *fmt, va_list ap)
+__nldbl___vsprintf (char *string, const char *fmt, va_list ap)
{
- int done;
- __no_long_double = 1;
- done = _IO_vsprintf (string, fmt, ap);
- __no_long_double = 0;
- return done;
+ return __vsprintf_internal (string, -1, fmt, ap, PRINTF_LDBL_IS_DBL);
}
-weak_alias (__nldbl__IO_vsprintf, __nldbl_vsprintf)
-libc_hidden_def (__nldbl_vsprintf)
+strong_alias (__nldbl___vsprintf, __nldbl__IO_vsprintf)
+weak_alias (__nldbl___vsprintf, __nldbl_vsprintf)
int
attribute_compat_text_section
__nldbl_obstack_vprintf (struct obstack *obstack, const char *fmt,
va_list ap)
{
- int done;
- __no_long_double = 1;
- done = _IO_obstack_vprintf (obstack, fmt, ap);
- __no_long_double = 0;
- return done;
+ return __obstack_vprintf_internal (obstack, fmt, ap, PRINTF_LDBL_IS_DBL);
}
-libc_hidden_def (__nldbl_obstack_vprintf)
int
attribute_compat_text_section
__nldbl_obstack_printf (struct obstack *obstack, const char *fmt, ...)
{
- int result;
+ int ret;
va_list ap;
va_start (ap, fmt);
- result = __nldbl_obstack_vprintf (obstack, fmt, ap);
+ ret = __obstack_vprintf_internal (obstack, fmt, ap, PRINTF_LDBL_IS_DBL);
va_end (ap);
- return result;
+ return ret;
}
int
attribute_compat_text_section weak_function
__nldbl_snprintf (char *s, size_t maxlen, const char *fmt, ...)
{
- va_list arg;
- int done;
+ va_list ap;
+ int ret;
- va_start (arg, fmt);
- done = __nldbl_vsnprintf (s, maxlen, fmt, arg);
- va_end (arg);
+ va_start (ap, fmt);
+ ret = __vsnprintf_internal (s, maxlen, fmt, ap, PRINTF_LDBL_IS_DBL);
+ va_end (ap);
- return done;
+ return ret;
}
int
attribute_compat_text_section
__nldbl_swprintf (wchar_t *s, size_t n, const wchar_t *fmt, ...)
{
- va_list arg;
- int done;
+ va_list ap;
+ int ret;
- va_start (arg, fmt);
- done = __nldbl_vswprintf (s, n, fmt, arg);
- va_end (arg);
+ va_start (ap, fmt);
+ ret = __vswprintf_internal (s, n, fmt, ap, PRINTF_LDBL_IS_DBL);
+ va_end (ap);
- return done;
+ return ret;
}
int
attribute_compat_text_section weak_function
__nldbl_vasprintf (char **result_ptr, const char *fmt, va_list ap)
{
- int res;
- __no_long_double = 1;
- res = _IO_vasprintf (result_ptr, fmt, ap);
- __no_long_double = 0;
- return res;
+ return __vasprintf_internal (result_ptr, fmt, ap, PRINTF_LDBL_IS_DBL);
}
-libc_hidden_def (__nldbl_vasprintf)
int
attribute_compat_text_section
-__nldbl_vdprintf (int d, const char *fmt, va_list arg)
+__nldbl_vdprintf (int d, const char *fmt, va_list ap)
{
- int res;
- set_no_long_double ();
- res = _IO_vdprintf (d, fmt, arg);
- clear_no_long_double ();
- return res;
+ return __vdprintf_internal (d, fmt, ap, PRINTF_LDBL_IS_DBL);
}
-libc_hidden_def (__nldbl_vdprintf)
int
attribute_compat_text_section weak_function
__nldbl_vfwprintf (FILE *s, const wchar_t *fmt, va_list ap)
{
- int res;
- set_no_long_double ();
- res = _IO_vfwprintf (s, fmt, ap);
- clear_no_long_double ();
- return res;
+ return __vfwprintf_internal (s, fmt, ap, PRINTF_LDBL_IS_DBL);
}
-libc_hidden_def (__nldbl_vfwprintf)
int
attribute_compat_text_section
__nldbl_vprintf (const char *fmt, va_list ap)
{
- return __nldbl_vfprintf (stdout, fmt, ap);
+ return __vfprintf_internal (stdout, fmt, ap, PRINTF_LDBL_IS_DBL);
}
int
@@ -289,13 +238,8 @@ attribute_compat_text_section
__nldbl_vsnprintf (char *string, size_t maxlen, const char *fmt,
va_list ap)
{
- int res;
- __no_long_double = 1;
- res = _IO_vsnprintf (string, maxlen, fmt, ap);
- __no_long_double = 0;
- return res;
+ return __vsnprintf_internal (string, maxlen, fmt, ap, PRINTF_LDBL_IS_DBL);
}
-libc_hidden_def (__nldbl_vsnprintf)
weak_alias (__nldbl_vsnprintf, __nldbl___vsnprintf)
int
@@ -303,55 +247,47 @@ attribute_compat_text_section weak_function
__nldbl_vswprintf (wchar_t *string, size_t maxlen, const wchar_t *fmt,
va_list ap)
{
- int res;
- __no_long_double = 1;
- res = _IO_vswprintf (string, maxlen, fmt, ap);
- __no_long_double = 0;
- return res;
+ return __vswprintf_internal (string, maxlen, fmt, ap, PRINTF_LDBL_IS_DBL);
}
-libc_hidden_def (__nldbl_vswprintf)
int
attribute_compat_text_section
__nldbl_vwprintf (const wchar_t *fmt, va_list ap)
{
- return __nldbl_vfwprintf (stdout, fmt, ap);
+ return __vfwprintf_internal (stdout, fmt, ap, PRINTF_LDBL_IS_DBL);
}
int
attribute_compat_text_section
__nldbl_wprintf (const wchar_t *fmt, ...)
{
- va_list arg;
- int done;
+ va_list ap;
+ int ret;
- va_start (arg, fmt);
- done = __nldbl_vfwprintf (stdout, fmt, arg);
- va_end (arg);
+ va_start (ap, fmt);
+ ret = __vfwprintf_internal (stdout, fmt, ap, PRINTF_LDBL_IS_DBL);
+ va_end (ap);
- return done;
+ return ret;
}
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_29)
int
attribute_compat_text_section
__nldbl__IO_vfscanf (FILE *s, const char *fmt, va_list ap, int *errp)
{
- int res;
- set_no_long_double ();
- res = _IO_vfscanf (s, fmt, ap, errp);
- clear_no_long_double ();
- return res;
+ int ret = __vfscanf_internal (s, fmt, ap, SCANF_LDBL_IS_DBL);
+ if (__glibc_unlikely (errp != 0))
+ *errp = (ret == -1);
+ return ret;
}
+#endif
int
attribute_compat_text_section
__nldbl___vfscanf (FILE *s, const char *fmt, va_list ap)
{
- int res;
- set_no_long_double ();
- res = _IO_vfscanf (s, fmt, ap, NULL);
- clear_no_long_double ();
- return res;
+ return __vfscanf_internal (s, fmt, ap, SCANF_LDBL_IS_DBL);
}
weak_alias (__nldbl___vfscanf, __nldbl_vfscanf)
libc_hidden_def (__nldbl_vfscanf)
@@ -360,26 +296,26 @@ int
attribute_compat_text_section
__nldbl_sscanf (const char *s, const char *fmt, ...)
{
- va_list arg;
- int done;
+ _IO_strfile sf;
+ FILE *f = _IO_strfile_read (&sf, s);
+ va_list ap;
+ int ret;
- va_start (arg, fmt);
- done = __nldbl_vsscanf (s, fmt, arg);
- va_end (arg);
+ va_start (ap, fmt);
+ ret = __vfscanf_internal (f, fmt, ap, SCANF_LDBL_IS_DBL);
+ va_end (ap);
- return done;
+ return ret;
}
strong_alias (__nldbl_sscanf, __nldbl__IO_sscanf)
int
attribute_compat_text_section
-__nldbl___vsscanf (const char *string, const char *fmt, va_list ap)
+__nldbl___vsscanf (const char *s, const char *fmt, va_list ap)
{
- int res;
- __no_long_double = 1;
- res = _IO_vsscanf (string, fmt, ap);
- __no_long_double = 0;
- return res;
+ _IO_strfile sf;
+ FILE *f = _IO_strfile_read (&sf, s);
+ return __vfscanf_internal (f, fmt, ap, SCANF_LDBL_IS_DBL);
}
weak_alias (__nldbl___vsscanf, __nldbl_vsscanf)
libc_hidden_def (__nldbl_vsscanf)
@@ -388,46 +324,42 @@ int
attribute_compat_text_section weak_function
__nldbl_vscanf (const char *fmt, va_list ap)
{
- return __nldbl_vfscanf (stdin, fmt, ap);
+ return __vfscanf_internal (stdin, fmt, ap, SCANF_LDBL_IS_DBL);
}
int
attribute_compat_text_section
__nldbl_fscanf (FILE *stream, const char *fmt, ...)
{
- va_list arg;
- int done;
+ va_list ap;
+ int ret;
- va_start (arg, fmt);
- done = __nldbl_vfscanf (stream, fmt, arg);
- va_end (arg);
+ va_start (ap, fmt);
+ ret = __vfscanf_internal (stream, fmt, ap, SCANF_LDBL_IS_DBL);
+ va_end (ap);
- return done;
+ return ret;
}
int
attribute_compat_text_section
__nldbl_scanf (const char *fmt, ...)
{
- va_list arg;
- int done;
+ va_list ap;
+ int ret;
- va_start (arg, fmt);
- done = __nldbl_vfscanf (stdin, fmt, arg);
- va_end (arg);
+ va_start (ap, fmt);
+ ret = __vfscanf_internal (stdin, fmt, ap, SCANF_LDBL_IS_DBL);
+ va_end (ap);
- return done;
+ return ret;
}
int
attribute_compat_text_section
__nldbl_vfwscanf (FILE *s, const wchar_t *fmt, va_list ap)
{
- int res;
- set_no_long_double ();
- res = _IO_vfwscanf (s, fmt, ap, NULL);
- clear_no_long_double ();
- return res;
+ return __vfwscanf_internal (s, fmt, ap, SCANF_LDBL_IS_DBL);
}
libc_hidden_def (__nldbl_vfwscanf)
@@ -435,25 +367,28 @@ int
attribute_compat_text_section
__nldbl_swscanf (const wchar_t *s, const wchar_t *fmt, ...)
{
- va_list arg;
- int done;
+ _IO_strfile sf;
+ struct _IO_wide_data wd;
+ FILE *f = _IO_strfile_readw (&sf, &wd, s);
+ va_list ap;
+ int ret;
- va_start (arg, fmt);
- done = __nldbl_vswscanf (s, fmt, arg);
- va_end (arg);
+ va_start (ap, fmt);
+ ret = __vfwscanf_internal (f, fmt, ap, SCANF_LDBL_IS_DBL);
+ va_end (ap);
- return done;
+ return ret;
}
int
attribute_compat_text_section
-__nldbl_vswscanf (const wchar_t *string, const wchar_t *fmt, va_list ap)
+__nldbl_vswscanf (const wchar_t *s, const wchar_t *fmt, va_list ap)
{
- int res;
- __no_long_double = 1;
- res = vswscanf (string, fmt, ap);
- __no_long_double = 0;
- return res;
+ _IO_strfile sf;
+ struct _IO_wide_data wd;
+ FILE *f = _IO_strfile_readw (&sf, &wd, s);
+
+ return __vfwscanf_internal (f, fmt, ap, SCANF_LDBL_IS_DBL);
}
libc_hidden_def (__nldbl_vswscanf)
@@ -461,77 +396,86 @@ int
attribute_compat_text_section weak_function
__nldbl_vwscanf (const wchar_t *fmt, va_list ap)
{
- return __nldbl_vfwscanf (stdin, fmt, ap);
+ return __vfwscanf_internal (stdin, fmt, ap, SCANF_LDBL_IS_DBL);
}
int
attribute_compat_text_section
__nldbl_fwscanf (FILE *stream, const wchar_t *fmt, ...)
{
- va_list arg;
- int done;
+ va_list ap;
+ int ret;
- va_start (arg, fmt);
- done = __nldbl_vfwscanf (stream, fmt, arg);
- va_end (arg);
+ va_start (ap, fmt);
+ ret = __vfwscanf_internal (stream, fmt, ap, SCANF_LDBL_IS_DBL);
+ va_end (ap);
- return done;
+ return ret;
}
int
attribute_compat_text_section
__nldbl_wscanf (const wchar_t *fmt, ...)
{
- va_list arg;
- int done;
+ va_list ap;
+ int ret;
- va_start (arg, fmt);
- done = __nldbl_vfwscanf (stdin, fmt, arg);
- va_end (arg);
+ va_start (ap, fmt);
+ ret = __vfwscanf_internal (stdin, fmt, ap, SCANF_LDBL_IS_DBL);
+ va_end (ap);
- return done;
+ return ret;
}
int
attribute_compat_text_section
__nldbl___fprintf_chk (FILE *stream, int flag, const char *fmt, ...)
{
- va_list arg;
- int done;
+ va_list ap;
+ int ret;
+ unsigned int mode = PRINTF_LDBL_IS_DBL;
+ if (flag > 0)
+ mode |= PRINTF_FORTIFY;
- va_start (arg, fmt);
- done = __nldbl___vfprintf_chk (stream, flag, fmt, arg);
- va_end (arg);
+ va_start (ap, fmt);
+ ret = __vfprintf_internal (stream, fmt, ap, mode);
+ va_end (ap);
- return done;
+ return ret;
}
int
attribute_compat_text_section
__nldbl___fwprintf_chk (FILE *stream, int flag, const wchar_t *fmt, ...)
{
- va_list arg;
- int done;
+ va_list ap;
+ int ret;
+ unsigned int mode = PRINTF_LDBL_IS_DBL;
+ if (flag > 0)
+ mode |= PRINTF_FORTIFY;
- va_start (arg, fmt);
- done = __nldbl___vfwprintf_chk (stream, flag, fmt, arg);
- va_end (arg);
+ va_start (ap, fmt);
+ ret = __vfwprintf_internal (stream, fmt, ap, mode);
+ va_end (ap);
- return done;
+ return ret;
}
int
attribute_compat_text_section
__nldbl___printf_chk (int flag, const char *fmt, ...)
{
- va_list arg;
- int done;
+ va_list ap;
+ int ret;
+ unsigned int mode = PRINTF_LDBL_IS_DBL;
+ if (flag > 0)
+ mode |= PRINTF_FORTIFY;
- va_start (arg, fmt);
- done = __nldbl___vfprintf_chk (stdout, flag, fmt, arg);
- va_end (arg);
+ va_start (ap, fmt);
+ ret = __vfprintf_internal (stdout, fmt, ap, mode);
+ va_end (ap);
- return done;
+ return ret;
}
int
@@ -539,74 +483,94 @@ attribute_compat_text_section
__nldbl___snprintf_chk (char *s, size_t maxlen, int flag, size_t slen,
const char *fmt, ...)
{
- va_list arg;
- int done;
+ if (__glibc_unlikely (slen < maxlen))
+ __chk_fail ();
- va_start (arg, fmt);
- done = __nldbl___vsnprintf_chk (s, maxlen, flag, slen, fmt, arg);
- va_end (arg);
+ va_list ap;
+ int ret;
+ unsigned int mode = PRINTF_LDBL_IS_DBL;
+ if (flag > 0)
+ mode |= PRINTF_FORTIFY;
+
+ va_start (ap, fmt);
+ ret = __vsnprintf_internal (s, maxlen, fmt, ap, mode);
+ va_end (ap);
- return done;
+ return ret;
}
int
attribute_compat_text_section
__nldbl___sprintf_chk (char *s, int flag, size_t slen, const char *fmt, ...)
{
- va_list arg;
- int done;
+ if (slen == 0)
+ __chk_fail ();
+
+ va_list ap;
+ int ret;
+ unsigned int mode = PRINTF_LDBL_IS_DBL;
+ if (flag > 0)
+ mode |= PRINTF_FORTIFY;
- va_start (arg, fmt);
- done = __nldbl___vsprintf_chk (s, flag, slen, fmt, arg);
- va_end (arg);
+ va_start (ap, fmt);
+ ret = __vsprintf_internal (s, slen, fmt, ap, mode);
+ va_end (ap);
- return done;
+ return ret;
}
int
attribute_compat_text_section
-__nldbl___swprintf_chk (wchar_t *s, size_t n, int flag, size_t slen,
+__nldbl___swprintf_chk (wchar_t *s, size_t maxlen, int flag, size_t slen,
const wchar_t *fmt, ...)
{
- va_list arg;
- int done;
+ if (__glibc_unlikely (slen < maxlen))
+ __chk_fail ();
+
+ va_list ap;
+ int ret;
+ unsigned int mode = PRINTF_LDBL_IS_DBL;
+ if (flag > 0)
+ mode |= PRINTF_FORTIFY;
- va_start (arg, fmt);
- done = __nldbl___vswprintf_chk (s, n, flag, slen, fmt, arg);
- va_end (arg);
+ va_start (ap, fmt);
+ ret = __vswprintf_internal (s, maxlen, fmt, ap, mode);
+ va_end (ap);
- return done;
+ return ret;
}
int
attribute_compat_text_section
__nldbl___vfprintf_chk (FILE *s, int flag, const char *fmt, va_list ap)
{
- int res;
- set_no_long_double ();
- res = __vfprintf_chk (s, flag, fmt, ap);
- clear_no_long_double ();
- return res;
+ unsigned int mode = PRINTF_LDBL_IS_DBL;
+ if (flag > 0)
+ mode |= PRINTF_FORTIFY;
+
+ return __vfprintf_internal (s, fmt, ap, mode);
}
-libc_hidden_def (__nldbl___vfprintf_chk)
int
attribute_compat_text_section
__nldbl___vfwprintf_chk (FILE *s, int flag, const wchar_t *fmt, va_list ap)
{
- int res;
- set_no_long_double ();
- res = __vfwprintf_chk (s, flag, fmt, ap);
- clear_no_long_double ();
- return res;
+ unsigned int mode = PRINTF_LDBL_IS_DBL;
+ if (flag > 0)
+ mode |= PRINTF_FORTIFY;
+
+ return __vfwprintf_internal (s, fmt, ap, mode);
}
-libc_hidden_def (__nldbl___vfwprintf_chk)
int
attribute_compat_text_section
__nldbl___vprintf_chk (int flag, const char *fmt, va_list ap)
{
- return __nldbl___vfprintf_chk (stdout, flag, fmt, ap);
+ unsigned int mode = PRINTF_LDBL_IS_DBL;
+ if (flag > 0)
+ mode |= PRINTF_FORTIFY;
+
+ return __vfprintf_internal (stdout, fmt, ap, mode);
}
int
@@ -614,139 +578,158 @@ attribute_compat_text_section
__nldbl___vsnprintf_chk (char *string, size_t maxlen, int flag, size_t slen,
const char *fmt, va_list ap)
{
- int res;
- __no_long_double = 1;
- res = __vsnprintf_chk (string, maxlen, flag, slen, fmt, ap);
- __no_long_double = 0;
- return res;
+ if (__glibc_unlikely (slen < maxlen))
+ __chk_fail ();
+
+ unsigned int mode = PRINTF_LDBL_IS_DBL;
+ if (flag > 0)
+ mode |= PRINTF_FORTIFY;
+
+ return __vsnprintf_internal (string, maxlen, fmt, ap, mode);
}
-libc_hidden_def (__nldbl___vsnprintf_chk)
int
attribute_compat_text_section
__nldbl___vsprintf_chk (char *string, int flag, size_t slen, const char *fmt,
va_list ap)
{
- int res;
- __no_long_double = 1;
- res = __vsprintf_chk (string, flag, slen, fmt, ap);
- __no_long_double = 0;
- return res;
+ if (slen == 0)
+ __chk_fail ();
+
+ unsigned int mode = PRINTF_LDBL_IS_DBL;
+ if (flag > 0)
+ mode |= PRINTF_FORTIFY;
+
+ return __vsprintf_internal (string, slen, fmt, ap, mode);
}
-libc_hidden_def (__nldbl___vsprintf_chk)
int
attribute_compat_text_section
__nldbl___vswprintf_chk (wchar_t *string, size_t maxlen, int flag, size_t slen,
const wchar_t *fmt, va_list ap)
{
- int res;
- __no_long_double = 1;
- res = __vswprintf_chk (string, maxlen, flag, slen, fmt, ap);
- __no_long_double = 0;
- return res;
+ if (__glibc_unlikely (slen < maxlen))
+ __chk_fail ();
+
+ unsigned int mode = PRINTF_LDBL_IS_DBL;
+ if (flag > 0)
+ mode |= PRINTF_FORTIFY;
+
+ return __vswprintf_internal (string, maxlen, fmt, ap, mode);
}
-libc_hidden_def (__nldbl___vswprintf_chk)
int
attribute_compat_text_section
__nldbl___vwprintf_chk (int flag, const wchar_t *fmt, va_list ap)
{
- return __nldbl___vfwprintf_chk (stdout, flag, fmt, ap);
+ unsigned int mode = PRINTF_LDBL_IS_DBL;
+ if (flag > 0)
+ mode |= PRINTF_FORTIFY;
+
+ return __vfwprintf_internal (stdout, fmt, ap, mode);
}
int
attribute_compat_text_section
__nldbl___wprintf_chk (int flag, const wchar_t *fmt, ...)
{
- va_list arg;
- int done;
+ va_list ap;
+ int ret;
+ unsigned int mode = PRINTF_LDBL_IS_DBL;
+ if (flag > 0)
+ mode |= PRINTF_FORTIFY;
- va_start (arg, fmt);
- done = __nldbl___vfwprintf_chk (stdout, flag, fmt, arg);
- va_end (arg);
+ va_start (ap, fmt);
+ ret = __vfwprintf_internal (stdout, fmt, ap, mode);
+ va_end (ap);
- return done;
+ return ret;
}
int
attribute_compat_text_section
-__nldbl___vasprintf_chk (char **ptr, int flag, const char *fmt, va_list arg)
+__nldbl___vasprintf_chk (char **ptr, int flag, const char *fmt, va_list ap)
{
- int res;
- __no_long_double = 1;
- res = __vasprintf_chk (ptr, flag, fmt, arg);
- __no_long_double = 0;
- return res;
+ unsigned int mode = PRINTF_LDBL_IS_DBL;
+ if (flag > 0)
+ mode |= PRINTF_FORTIFY;
+
+ return __vasprintf_internal (ptr, fmt, ap, mode);
}
-libc_hidden_def (__nldbl___vasprintf_chk)
int
attribute_compat_text_section
__nldbl___asprintf_chk (char **ptr, int flag, const char *fmt, ...)
{
- va_list arg;
- int done;
+ va_list ap;
+ int ret;
+ unsigned int mode = PRINTF_LDBL_IS_DBL;
+ if (flag > 0)
+ mode |= PRINTF_FORTIFY;
- va_start (arg, fmt);
- done = __nldbl___vasprintf_chk (ptr, flag, fmt, arg);
- va_end (arg);
+ va_start (ap, fmt);
+ ret = __vasprintf_internal (ptr, fmt, ap, mode);
+ va_end (ap);
- return done;
+ return ret;
}
int
attribute_compat_text_section
-__nldbl___vdprintf_chk (int d, int flag, const char *fmt, va_list arg)
+__nldbl___vdprintf_chk (int d, int flag, const char *fmt, va_list ap)
{
- int res;
- set_no_long_double ();
- res = __vdprintf_chk (d, flag, fmt, arg);
- clear_no_long_double ();
- return res;
+ unsigned int mode = PRINTF_LDBL_IS_DBL;
+ if (flag > 0)
+ mode |= PRINTF_FORTIFY;
+
+ return __vdprintf_internal (d, fmt, ap, mode);
}
-libc_hidden_def (__nldbl___vdprintf_chk)
int
attribute_compat_text_section
__nldbl___dprintf_chk (int d, int flag, const char *fmt, ...)
{
- va_list arg;
- int done;
+ va_list ap;
+ int ret;
+ unsigned int mode = PRINTF_LDBL_IS_DBL;
+ if (flag > 0)
+ mode |= PRINTF_FORTIFY;
- va_start (arg, fmt);
- done = __nldbl___vdprintf_chk (d, flag, fmt, arg);
- va_end (arg);
+ va_start (ap, fmt);
+ ret = __vdprintf_internal (d, fmt, ap, mode);
+ va_end (ap);
- return done;
+ return ret;
}
int
attribute_compat_text_section
__nldbl___obstack_vprintf_chk (struct obstack *obstack, int flag,
- const char *fmt, va_list arg)
+ const char *fmt, va_list ap)
{
- int res;
- __no_long_double = 1;
- res = __obstack_vprintf_chk (obstack, flag, fmt, arg);
- __no_long_double = 0;
- return res;
+ unsigned int mode = PRINTF_LDBL_IS_DBL;
+ if (flag > 0)
+ mode |= PRINTF_FORTIFY;
+
+ return __obstack_vprintf_internal (obstack, fmt, ap, mode);
}
-libc_hidden_def (__nldbl___obstack_vprintf_chk)
int
attribute_compat_text_section
__nldbl___obstack_printf_chk (struct obstack *obstack, int flag,
const char *fmt, ...)
{
- va_list arg;
- int done;
+ va_list ap;
+ int ret;
+ unsigned int mode = PRINTF_LDBL_IS_DBL;
+ if (flag > 0)
+ mode |= PRINTF_FORTIFY;
- va_start (arg, fmt);
- done = __nldbl___obstack_vprintf_chk (obstack, flag, fmt, arg);
- va_end (arg);
+ va_start (ap, fmt);
+ ret = __obstack_vprintf_internal (obstack, fmt, ap, mode);
+ va_end (ap);
- return done;
+ return ret;
}
extern __typeof (printf_size) __printf_size;
@@ -780,12 +763,13 @@ attribute_compat_text_section
__nldbl_strfmon (char *s, size_t maxsize, const char *format, ...)
{
va_list ap;
- ssize_t res;
+ ssize_t ret;
va_start (ap, format);
- res = __nldbl___vstrfmon (s, maxsize, format, ap);
+ ret = __vstrfmon_l_internal (s, maxsize, _NL_CURRENT_LOCALE, format, ap,
+ STRFMON_LDBL_IS_DBL);
va_end (ap);
- return res;
+ return ret;
}
ssize_t
@@ -794,12 +778,13 @@ __nldbl___strfmon_l (char *s, size_t maxsize, locale_t loc,
const char *format, ...)
{
va_list ap;
- ssize_t res;
+ ssize_t ret;
va_start (ap, format);
- res = __nldbl___vstrfmon_l (s, maxsize, loc, format, ap);
+ ret = __vstrfmon_l_internal (s, maxsize, loc, format, ap,
+ STRFMON_LDBL_IS_DBL);
va_end (ap);
- return res;
+ return ret;
}
weak_alias (__nldbl___strfmon_l, __nldbl_strfmon_l)
@@ -807,28 +792,18 @@ ssize_t
attribute_compat_text_section
__nldbl___vstrfmon (char *s, size_t maxsize, const char *format, va_list ap)
{
- ssize_t res;
- __no_long_double = 1;
- res = __vstrfmon_l (s, maxsize, _NL_CURRENT_LOCALE, format, ap);
- __no_long_double = 0;
- va_end (ap);
- return res;
+ return __vstrfmon_l_internal (s, maxsize, _NL_CURRENT_LOCALE, format, ap,
+ STRFMON_LDBL_IS_DBL);
}
-libc_hidden_def (__nldbl___vstrfmon)
ssize_t
attribute_compat_text_section
__nldbl___vstrfmon_l (char *s, size_t maxsize, locale_t loc,
const char *format, va_list ap)
{
- ssize_t res;
- __no_long_double = 1;
- res = __vstrfmon_l (s, maxsize, loc, format, ap);
- __no_long_double = 0;
- va_end (ap);
- return res;
+ return __vstrfmon_l_internal (s, maxsize, loc, format, ap,
+ STRFMON_LDBL_IS_DBL);
}
-libc_hidden_def (__nldbl___vstrfmon_l)
void
attribute_compat_text_section
@@ -836,18 +811,28 @@ __nldbl_syslog (int pri, const char *fmt, ...)
{
va_list ap;
va_start (ap, fmt);
- __nldbl___vsyslog_chk (pri, -1, fmt, ap);
+ __vsyslog_internal (pri, fmt, ap, PRINTF_LDBL_IS_DBL);
va_end (ap);
}
void
attribute_compat_text_section
+__nldbl_vsyslog (int pri, const char *fmt, va_list ap)
+{
+ __vsyslog_internal (pri, fmt, ap, PRINTF_LDBL_IS_DBL);
+}
+
+void
+attribute_compat_text_section
__nldbl___syslog_chk (int pri, int flag, const char *fmt, ...)
{
va_list ap;
+ unsigned int mode = PRINTF_LDBL_IS_DBL;
+ if (flag > 0)
+ mode |= PRINTF_FORTIFY;
va_start (ap, fmt);
- __nldbl___vsyslog_chk (pri, flag, fmt, ap);
+ __vsyslog_internal (pri, fmt, ap, mode);
va_end(ap);
}
@@ -855,28 +840,18 @@ void
attribute_compat_text_section
__nldbl___vsyslog_chk (int pri, int flag, const char *fmt, va_list ap)
{
- set_no_long_double ();
- __vsyslog_chk (pri, flag, fmt, ap);
- clear_no_long_double ();
-}
-libc_hidden_def (__nldbl___vsyslog_chk)
+ unsigned int mode = PRINTF_LDBL_IS_DBL;
+ if (flag > 0)
+ mode |= PRINTF_FORTIFY;
-void
-attribute_compat_text_section
-__nldbl_vsyslog (int pri, const char *fmt, va_list ap)
-{
- __nldbl___vsyslog_chk (pri, -1, fmt, ap);
+ __vsyslog_internal (pri, fmt, ap, mode);
}
int
attribute_compat_text_section
__nldbl___isoc99_vfscanf (FILE *s, const char *fmt, va_list ap)
{
- int res;
- set_no_long_double ();
- res = __isoc99_vfscanf (s, fmt, ap);
- clear_no_long_double ();
- return res;
+ return __vfscanf_internal (s, fmt, ap, SCANF_LDBL_IS_DBL | SCANF_ISOC99_A);
}
libc_hidden_def (__nldbl___isoc99_vfscanf)
@@ -884,25 +859,26 @@ int
attribute_compat_text_section
__nldbl___isoc99_sscanf (const char *s, const char *fmt, ...)
{
- va_list arg;
- int done;
+ _IO_strfile sf;
+ FILE *f = _IO_strfile_read (&sf, s);
+ va_list ap;
+ int ret;
- va_start (arg, fmt);
- done = __nldbl___isoc99_vsscanf (s, fmt, arg);
- va_end (arg);
+ va_start (ap, fmt);
+ ret = __vfscanf_internal (f, fmt, ap, SCANF_LDBL_IS_DBL | SCANF_ISOC99_A);
+ va_end (ap);
- return done;
+ return ret;
}
int
attribute_compat_text_section
-__nldbl___isoc99_vsscanf (const char *string, const char *fmt, va_list ap)
+__nldbl___isoc99_vsscanf (const char *s, const char *fmt, va_list ap)
{
- int res;
- __no_long_double = 1;
- res = __isoc99_vsscanf (string, fmt, ap);
- __no_long_double = 0;
- return res;
+ _IO_strfile sf;
+ FILE *f = _IO_strfile_read (&sf, s);
+
+ return __vfscanf_internal (f, fmt, ap, SCANF_LDBL_IS_DBL | SCANF_ISOC99_A);
}
libc_hidden_def (__nldbl___isoc99_vsscanf)
@@ -910,46 +886,44 @@ int
attribute_compat_text_section
__nldbl___isoc99_vscanf (const char *fmt, va_list ap)
{
- return __nldbl___isoc99_vfscanf (stdin, fmt, ap);
+ return __vfscanf_internal (stdin, fmt, ap,
+ SCANF_LDBL_IS_DBL | SCANF_ISOC99_A);
}
int
attribute_compat_text_section
-__nldbl___isoc99_fscanf (FILE *stream, const char *fmt, ...)
+__nldbl___isoc99_fscanf (FILE *s, const char *fmt, ...)
{
- va_list arg;
- int done;
+ va_list ap;
+ int ret;
- va_start (arg, fmt);
- done = __nldbl___isoc99_vfscanf (stream, fmt, arg);
- va_end (arg);
+ va_start (ap, fmt);
+ ret = __vfscanf_internal (s, fmt, ap, SCANF_LDBL_IS_DBL | SCANF_ISOC99_A);
+ va_end (ap);
- return done;
+ return ret;
}
int
attribute_compat_text_section
__nldbl___isoc99_scanf (const char *fmt, ...)
{
- va_list arg;
- int done;
+ va_list ap;
+ int ret;
- va_start (arg, fmt);
- done = __nldbl___isoc99_vfscanf (stdin, fmt, arg);
- va_end (arg);
+ va_start (ap, fmt);
+ ret = __vfscanf_internal (stdin, fmt, ap,
+ SCANF_LDBL_IS_DBL | SCANF_ISOC99_A);
+ va_end (ap);
- return done;
+ return ret;
}
int
attribute_compat_text_section
__nldbl___isoc99_vfwscanf (FILE *s, const wchar_t *fmt, va_list ap)
{
- int res;
- set_no_long_double ();
- res = __isoc99_vfwscanf (s, fmt, ap);
- clear_no_long_double ();
- return res;
+ return __vfwscanf_internal (s, fmt, ap, SCANF_LDBL_IS_DBL | SCANF_ISOC99_A);
}
libc_hidden_def (__nldbl___isoc99_vfwscanf)
@@ -957,26 +931,28 @@ int
attribute_compat_text_section
__nldbl___isoc99_swscanf (const wchar_t *s, const wchar_t *fmt, ...)
{
- va_list arg;
- int done;
+ _IO_strfile sf;
+ struct _IO_wide_data wd;
+ FILE *f = _IO_strfile_readw (&sf, &wd, s);
+ va_list ap;
+ int ret;
- va_start (arg, fmt);
- done = __nldbl___isoc99_vswscanf (s, fmt, arg);
- va_end (arg);
+ va_start (ap, fmt);
+ ret = __vfwscanf_internal (f, fmt, ap, SCANF_LDBL_IS_DBL | SCANF_ISOC99_A);
+ va_end (ap);
- return done;
+ return ret;
}
int
attribute_compat_text_section
-__nldbl___isoc99_vswscanf (const wchar_t *string, const wchar_t *fmt,
- va_list ap)
+__nldbl___isoc99_vswscanf (const wchar_t *s, const wchar_t *fmt, va_list ap)
{
- int res;
- __no_long_double = 1;
- res = __isoc99_vswscanf (string, fmt, ap);
- __no_long_double = 0;
- return res;
+ _IO_strfile sf;
+ struct _IO_wide_data wd;
+ FILE *f = _IO_strfile_readw (&sf, &wd, s);
+
+ return __vfwscanf_internal (f, fmt, ap, SCANF_LDBL_IS_DBL | SCANF_ISOC99_A);
}
libc_hidden_def (__nldbl___isoc99_vswscanf)
@@ -984,35 +960,138 @@ int
attribute_compat_text_section
__nldbl___isoc99_vwscanf (const wchar_t *fmt, va_list ap)
{
- return __nldbl___isoc99_vfwscanf (stdin, fmt, ap);
+ return __vfwscanf_internal (stdin, fmt, ap,
+ SCANF_LDBL_IS_DBL | SCANF_ISOC99_A);
}
int
attribute_compat_text_section
-__nldbl___isoc99_fwscanf (FILE *stream, const wchar_t *fmt, ...)
+__nldbl___isoc99_fwscanf (FILE *s, const wchar_t *fmt, ...)
{
- va_list arg;
- int done;
+ va_list ap;
+ int ret;
- va_start (arg, fmt);
- done = __nldbl___isoc99_vfwscanf (stream, fmt, arg);
- va_end (arg);
+ va_start (ap, fmt);
+ ret = __vfwscanf_internal (s, fmt, ap, SCANF_LDBL_IS_DBL | SCANF_ISOC99_A);
+ va_end (ap);
- return done;
+ return ret;
}
int
attribute_compat_text_section
__nldbl___isoc99_wscanf (const wchar_t *fmt, ...)
{
- va_list arg;
- int done;
+ va_list ap;
+ int ret;
+
+ va_start (ap, fmt);
+ ret = __vfwscanf_internal (stdin, fmt, ap,
+ SCANF_LDBL_IS_DBL | SCANF_ISOC99_A);
+ va_end (ap);
+
+ return ret;
+}
+
+void
+__nldbl_argp_error (const struct argp_state *state, const char *fmt, ...)
+{
+ va_list ap;
+ va_start (ap, fmt);
+ __argp_error_internal (state, fmt, ap, PRINTF_LDBL_IS_DBL);
+ va_end (ap);
+}
+
+void
+__nldbl_argp_failure (const struct argp_state *state, int status,
+ int errnum, const char *fmt, ...)
+{
+ va_list ap;
+ va_start (ap, fmt);
+ __argp_failure_internal (state, status, errnum, fmt, ap,
+ PRINTF_LDBL_IS_DBL);
+ va_end (ap);
+}
+
+#define VA_CALL(call) \
+{ \
+ va_list ap; \
+ va_start (ap, format); \
+ call (format, ap, PRINTF_LDBL_IS_DBL); \
+ va_end (ap); \
+}
+
+void
+__nldbl_err (int status, const char *format, ...)
+{
+ VA_CALL (__vwarn_internal)
+ exit (status);
+}
+
+void
+__nldbl_errx (int status, const char *format, ...)
+{
+ VA_CALL (__vwarnx_internal)
+ exit (status);
+}
+
+void
+__nldbl_verr (int status, const char *format, __gnuc_va_list ap)
+{
+ __vwarn_internal (format, ap, PRINTF_LDBL_IS_DBL);
+ exit (status);
+}
+
+void
+__nldbl_verrx (int status, const char *format, __gnuc_va_list ap)
+{
+ __vwarnx_internal (format, ap, PRINTF_LDBL_IS_DBL);
+ exit (status);
+}
+
+void
+__nldbl_warn (const char *format, ...)
+{
+ VA_CALL (__vwarn_internal)
+}
+
+void
+__nldbl_warnx (const char *format, ...)
+{
+ VA_CALL (__vwarnx_internal)
+}
+
+void
+__nldbl_vwarn (const char *format, __gnuc_va_list ap)
+{
+ __vwarn_internal (format, ap, PRINTF_LDBL_IS_DBL);
+}
+
+void
+__nldbl_vwarnx (const char *format, __gnuc_va_list ap)
+{
+ __vwarnx_internal (format, ap, PRINTF_LDBL_IS_DBL);
+}
- va_start (arg, fmt);
- done = __nldbl___isoc99_vfwscanf (stdin, fmt, arg);
- va_end (arg);
+void
+__nldbl_error (int status, int errnum, const char *message, ...)
+{
+ va_list ap;
+ va_start (ap, message);
+ __error_internal (status, errnum, message, ap, PRINTF_LDBL_IS_DBL);
+ va_end (ap);
+}
- return done;
+void
+__nldbl_error_at_line (int status, int errnum, const char *file_name,
+ unsigned int line_number, const char *message,
+ ...)
+{
+ va_list ap;
+ va_start (ap, message);
+ __error_at_line_internal (status, errnum, file_name, line_number,
+ message, ap, PRINTF_LDBL_IS_DBL);
+ va_end (ap);
}
#if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
@@ -1037,7 +1116,6 @@ compat_symbol (libc, __nldbl_vdprintf, vdprintf, GLIBC_2_0);
compat_symbol (libc, __nldbl_vsnprintf, vsnprintf, GLIBC_2_0);
compat_symbol (libc, __nldbl_vsprintf, vsprintf, GLIBC_2_0);
compat_symbol (libc, __nldbl__IO_sscanf, _IO_sscanf, GLIBC_2_0);
-compat_symbol (libc, __nldbl__IO_vfscanf, _IO_vfscanf, GLIBC_2_0);
compat_symbol (libc, __nldbl___vfscanf, __vfscanf, GLIBC_2_0);
compat_symbol (libc, __nldbl___vsscanf, __vsscanf, GLIBC_2_0);
compat_symbol (libc, __nldbl_fscanf, fscanf, GLIBC_2_0);
@@ -1050,6 +1128,12 @@ compat_symbol (libc, __nldbl___printf_fp, __printf_fp, GLIBC_2_0);
compat_symbol (libc, __nldbl_strfmon, strfmon, GLIBC_2_0);
compat_symbol (libc, __nldbl_syslog, syslog, GLIBC_2_0);
compat_symbol (libc, __nldbl_vsyslog, vsyslog, GLIBC_2_0);
+/* This function is not in public headers, but was exported until
+ version 2.29. For platforms that are newer than that, there's no
+ need to expose the symbol. */
+# if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_29)
+compat_symbol (libc, __nldbl__IO_vfscanf, _IO_vfscanf, GLIBC_2_0);
+# endif
#endif
#if LONG_DOUBLE_COMPAT(libc, GLIBC_2_1)
compat_symbol (libc, __nldbl___asprintf, __asprintf, GLIBC_2_1);
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-compat.h b/sysdeps/ieee754/ldbl-opt/nldbl-compat.h
index 888f561cac..816e4a89f9 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-compat.h
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-compat.h
@@ -1,5 +1,5 @@
/* Prototypes for compatibility double == long double entry points.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@cygnus.com>, 2006.
@@ -15,13 +15,20 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef __NLDBL_COMPAT_H
#define __NLDBL_COMPAT_H 1
+/* Ensure calls to libm functions from libnldbl_nonshared.a call
+ public names, not libm-internal names. */
+#define NO_MATH_REDIRECT
+
/* Avoid long double prototypes. */
#define __NO_LONG_DOUBLE_MATH 1
+#include <argp.h>
+#include <err.h>
+#include <error.h>
#include <stdarg.h>
#include <stdlib.h>
#include <stdint.h>
@@ -60,7 +67,6 @@ NLDBL_DECL (vsyslog);
NLDBL_DECL (qecvt);
NLDBL_DECL (qfcvt);
NLDBL_DECL (qgcvt);
-NLDBL_DECL (__vstrfmon_l);
NLDBL_DECL (__isoc99_scanf);
NLDBL_DECL (__isoc99_fscanf);
NLDBL_DECL (__isoc99_sscanf);
@@ -73,11 +79,26 @@ NLDBL_DECL (__isoc99_swscanf);
NLDBL_DECL (__isoc99_vwscanf);
NLDBL_DECL (__isoc99_vfwscanf);
NLDBL_DECL (__isoc99_vswscanf);
+NLDBL_DECL (argp_error);
+NLDBL_DECL (argp_failure);
+NLDBL_DECL (warn);
+NLDBL_DECL (vwarn);
+NLDBL_DECL (warnx);
+NLDBL_DECL (vwarnx);
+NLDBL_DECL (err);
+NLDBL_DECL (verr);
+NLDBL_DECL (errx);
+NLDBL_DECL (verrx);
+NLDBL_DECL (error);
+NLDBL_DECL (error_at_line);
-/* This one does not exist in the normal interface, only
- __nldbl___vstrfmon really exists. */
+/* These do not exist in the normal interface, but must exist in the
+ __nldbl interface so that they can be called from libnldbl. */
extern ssize_t __nldbl___vstrfmon (char *, size_t, const char *, va_list)
__THROW;
+extern ssize_t __nldbl___vstrfmon_l (char *, size_t, locale_t, const char *,
+ va_list)
+ __THROW;
/* These don't use __typeof because they were not declared by the headers,
since we don't compile with _FORTIFY_SOURCE. */
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-copysign.c b/sysdeps/ieee754/ldbl-opt/nldbl-copysign.c
index 045f00dda8..ef23badecc 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-copysign.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-copysign.c
@@ -4,5 +4,5 @@ double
attribute_hidden
copysignl (double x, double y)
{
- return __copysign (x, y);
+ return copysign (x, y);
}
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-dadd.c b/sysdeps/ieee754/ldbl-opt/nldbl-dadd.c
index acbcb3ff75..0c4e8b0922 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-dadd.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-dadd.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for dadd.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define daddl __hide_daddl
#include "nldbl-compat.h"
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-ddiv.c b/sysdeps/ieee754/ldbl-opt/nldbl-ddiv.c
index 5cb4606b7d..f59f0553ca 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-ddiv.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-ddiv.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for ddiv.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define ddivl __hide_ddivl
#include "nldbl-compat.h"
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-dmul.c b/sysdeps/ieee754/ldbl-opt/nldbl-dmul.c
index 9c9b94e067..99026a6802 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-dmul.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-dmul.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for dmul.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define dmull __hide_dmull
#include "nldbl-compat.h"
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-dsub.c b/sysdeps/ieee754/ldbl-opt/nldbl-dsub.c
index 1d31a75f13..0f4060ca16 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-dsub.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-dsub.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for dsub.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define dsubl __hide_dsubl
#include "nldbl-compat.h"
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-fadd.c b/sysdeps/ieee754/ldbl-opt/nldbl-fadd.c
index c31a6db475..535b90c989 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-fadd.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-fadd.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for fadd.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define faddl __hide_faddl
#include "nldbl-compat.h"
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-fdiv.c b/sysdeps/ieee754/ldbl-opt/nldbl-fdiv.c
index 2d043fc721..78e6f8a750 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-fdiv.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-fdiv.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for fdiv.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define fdivl __hide_fdivl
#include "nldbl-compat.h"
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-fmaxmag.c b/sysdeps/ieee754/ldbl-opt/nldbl-fmaxmag.c
index 774ed88a63..131bf3e216 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-fmaxmag.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-fmaxmag.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for fmaxmag.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "nldbl-compat.h"
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-fminmag.c b/sysdeps/ieee754/ldbl-opt/nldbl-fminmag.c
index 66dff4f3ff..9986d9bfc5 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-fminmag.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-fminmag.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for fminmag.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "nldbl-compat.h"
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-fmul.c b/sysdeps/ieee754/ldbl-opt/nldbl-fmul.c
index 2520d1b014..cf6b713bb3 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-fmul.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-fmul.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for fmul.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define fmull __hide_fmull
#include "nldbl-compat.h"
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-fromfp.c b/sysdeps/ieee754/ldbl-opt/nldbl-fromfp.c
index 59db6a9819..0111b54580 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-fromfp.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-fromfp.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for fromfp.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "nldbl-compat.h"
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-fromfpx.c b/sysdeps/ieee754/ldbl-opt/nldbl-fromfpx.c
index f8df721ff9..499723e27f 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-fromfpx.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-fromfpx.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for fromfpx.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "nldbl-compat.h"
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-fscanf.c b/sysdeps/ieee754/ldbl-opt/nldbl-fscanf.c
index 1b768e306f..00507187f3 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-fscanf.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-fscanf.c
@@ -1,3 +1,8 @@
+/* This file defines one of the deprecated scanf variants. */
+#include <features.h>
+#undef __GLIBC_USE_DEPRECATED_SCANF
+#define __GLIBC_USE_DEPRECATED_SCANF 1
+
#include "nldbl-compat.h"
int
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-fsub.c b/sysdeps/ieee754/ldbl-opt/nldbl-fsub.c
index 36dfe11a75..48bbe72d56 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-fsub.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-fsub.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for fsub.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define fsubl __hide_fsubl
#include "nldbl-compat.h"
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-fwscanf.c b/sysdeps/ieee754/ldbl-opt/nldbl-fwscanf.c
index 27fc1a7271..65782894a2 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-fwscanf.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-fwscanf.c
@@ -1,3 +1,8 @@
+/* This file defines one of the deprecated scanf variants. */
+#include <features.h>
+#undef __GLIBC_USE_DEPRECATED_SCANF
+#define __GLIBC_USE_DEPRECATED_SCANF 1
+
#include "nldbl-compat.h"
int
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-getpayload.c b/sysdeps/ieee754/ldbl-opt/nldbl-getpayload.c
index 425afebc52..95eed7994d 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-getpayload.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-getpayload.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for getpayload.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "nldbl-compat.h"
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-iovfscanf.c b/sysdeps/ieee754/ldbl-opt/nldbl-iovfscanf.c
index 442c11c203..6ed9b48624 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-iovfscanf.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-iovfscanf.c
@@ -1,3 +1,8 @@
+/* This file defines one of the deprecated scanf variants. */
+#include <features.h>
+#undef __GLIBC_USE_DEPRECATED_SCANF
+#define __GLIBC_USE_DEPRECATED_SCANF 1
+
#include "nldbl-compat.h"
int
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-llogb.c b/sysdeps/ieee754/ldbl-opt/nldbl-llogb.c
index d0dcf35f2d..afb48c5b8e 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-llogb.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-llogb.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for llogb.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "nldbl-compat.h"
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-nextdown.c b/sysdeps/ieee754/ldbl-opt/nldbl-nextdown.c
index 30f7f253f3..eca6588be0 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-nextdown.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-nextdown.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for nextdown.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "nldbl-compat.h"
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-nextup.c b/sysdeps/ieee754/ldbl-opt/nldbl-nextup.c
index 1f04fedbdd..5fc8ec4c1b 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-nextup.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-nextup.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for nextup.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "nldbl-compat.h"
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-roundeven.c b/sysdeps/ieee754/ldbl-opt/nldbl-roundeven.c
index ccafa45af1..695d085ab6 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-roundeven.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-roundeven.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for roundeven.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "nldbl-compat.h"
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-scanf.c b/sysdeps/ieee754/ldbl-opt/nldbl-scanf.c
index bbab371cbe..c10da284f2 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-scanf.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-scanf.c
@@ -1,3 +1,8 @@
+/* This file defines one of the deprecated scanf variants. */
+#include <features.h>
+#undef __GLIBC_USE_DEPRECATED_SCANF
+#define __GLIBC_USE_DEPRECATED_SCANF 1
+
#include "nldbl-compat.h"
int
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-setpayload.c b/sysdeps/ieee754/ldbl-opt/nldbl-setpayload.c
index 810e329454..5f7a7b078d 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-setpayload.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-setpayload.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for setpayload.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "nldbl-compat.h"
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-setpayloadsig.c b/sysdeps/ieee754/ldbl-opt/nldbl-setpayloadsig.c
index c510f3ea0b..f96d4bb4b1 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-setpayloadsig.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-setpayloadsig.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for setpayloadsig.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "nldbl-compat.h"
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-sscanf.c b/sysdeps/ieee754/ldbl-opt/nldbl-sscanf.c
index a771d49996..34e18be0a1 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-sscanf.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-sscanf.c
@@ -1,3 +1,8 @@
+/* This file defines one of the deprecated scanf variants. */
+#include <features.h>
+#undef __GLIBC_USE_DEPRECATED_SCANF
+#define __GLIBC_USE_DEPRECATED_SCANF 1
+
#include "nldbl-compat.h"
int
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-swscanf.c b/sysdeps/ieee754/ldbl-opt/nldbl-swscanf.c
index dd058f47ab..4076debc4e 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-swscanf.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-swscanf.c
@@ -1,3 +1,8 @@
+/* This file defines one of the deprecated scanf variants. */
+#include <features.h>
+#undef __GLIBC_USE_DEPRECATED_SCANF
+#define __GLIBC_USE_DEPRECATED_SCANF 1
+
#include "nldbl-compat.h"
int
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-totalorder.c b/sysdeps/ieee754/ldbl-opt/nldbl-totalorder.c
index 52aaa4618b..005126f659 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-totalorder.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-totalorder.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for totalorder.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,13 +14,13 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "nldbl-compat.h"
double
attribute_hidden
-totalorderl (double x, double y)
+totalorderl (const double *x, const double *y)
{
return totalorder (x, y);
}
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-totalordermag.c b/sysdeps/ieee754/ldbl-opt/nldbl-totalordermag.c
index 0a8860b53f..55e4bd486e 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-totalordermag.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-totalordermag.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for totalordermag.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,13 +14,13 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "nldbl-compat.h"
double
attribute_hidden
-totalordermagl (double x, double y)
+totalordermagl (const double *x, const double *y)
{
return totalordermag (x, y);
}
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-ufromfp.c b/sysdeps/ieee754/ldbl-opt/nldbl-ufromfp.c
index a7b6835ce6..a82fd553d7 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-ufromfp.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-ufromfp.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for ufromfp.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "nldbl-compat.h"
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-ufromfpx.c b/sysdeps/ieee754/ldbl-opt/nldbl-ufromfpx.c
index 61eea00996..038c3af93f 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-ufromfpx.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-ufromfpx.c
@@ -1,5 +1,5 @@
/* Compatibility routine for IEEE double as long double for ufromfpx.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "nldbl-compat.h"
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-vfscanf.c b/sysdeps/ieee754/ldbl-opt/nldbl-vfscanf.c
index f23465ee95..6f5ebc3045 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-vfscanf.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-vfscanf.c
@@ -1,3 +1,8 @@
+/* This file defines one of the deprecated scanf variants. */
+#include <features.h>
+#undef __GLIBC_USE_DEPRECATED_SCANF
+#define __GLIBC_USE_DEPRECATED_SCANF 1
+
#include "nldbl-compat.h"
int
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-vfwscanf.c b/sysdeps/ieee754/ldbl-opt/nldbl-vfwscanf.c
index be9febc9a0..0bef274726 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-vfwscanf.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-vfwscanf.c
@@ -1,3 +1,8 @@
+/* This file defines one of the deprecated scanf variants. */
+#include <features.h>
+#undef __GLIBC_USE_DEPRECATED_SCANF
+#define __GLIBC_USE_DEPRECATED_SCANF 1
+
#include "nldbl-compat.h"
int
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-vscanf.c b/sysdeps/ieee754/ldbl-opt/nldbl-vscanf.c
index e75907b905..38f654aa73 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-vscanf.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-vscanf.c
@@ -1,3 +1,8 @@
+/* This file defines one of the deprecated scanf variants. */
+#include <features.h>
+#undef __GLIBC_USE_DEPRECATED_SCANF
+#define __GLIBC_USE_DEPRECATED_SCANF 1
+
#include "nldbl-compat.h"
int
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-vsscanf.c b/sysdeps/ieee754/ldbl-opt/nldbl-vsscanf.c
index f5594c122c..33e10e49a9 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-vsscanf.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-vsscanf.c
@@ -1,3 +1,8 @@
+/* This file defines one of the deprecated scanf variants. */
+#include <features.h>
+#undef __GLIBC_USE_DEPRECATED_SCANF
+#define __GLIBC_USE_DEPRECATED_SCANF 1
+
#include "nldbl-compat.h"
int
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-vswscanf.c b/sysdeps/ieee754/ldbl-opt/nldbl-vswscanf.c
index bd4bb5131b..91c0d4cd4f 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-vswscanf.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-vswscanf.c
@@ -1,3 +1,8 @@
+/* This file defines one of the deprecated scanf variants. */
+#include <features.h>
+#undef __GLIBC_USE_DEPRECATED_SCANF
+#define __GLIBC_USE_DEPRECATED_SCANF 1
+
#include "nldbl-compat.h"
int
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-vwscanf.c b/sysdeps/ieee754/ldbl-opt/nldbl-vwscanf.c
index d39578ca4e..b3d0f1be18 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-vwscanf.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-vwscanf.c
@@ -1,3 +1,8 @@
+/* This file defines one of the deprecated scanf variants. */
+#include <features.h>
+#undef __GLIBC_USE_DEPRECATED_SCANF
+#define __GLIBC_USE_DEPRECATED_SCANF 1
+
#include "nldbl-compat.h"
int
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-wscanf.c b/sysdeps/ieee754/ldbl-opt/nldbl-wscanf.c
index 4ee3fdc15f..2689e27f06 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-wscanf.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-wscanf.c
@@ -1,3 +1,8 @@
+/* This file defines one of the deprecated scanf variants. */
+#include <features.h>
+#undef __GLIBC_USE_DEPRECATED_SCANF
+#define __GLIBC_USE_DEPRECATED_SCANF 1
+
#include "nldbl-compat.h"
int
diff --git a/sysdeps/ieee754/ldbl-opt/s_clog10.c b/sysdeps/ieee754/ldbl-opt/s_clog10.c
index 1ce017392c..bdd817e53d 100644
--- a/sysdeps/ieee754/ldbl-opt/s_clog10.c
+++ b/sysdeps/ieee754/ldbl-opt/s_clog10.c
@@ -1,5 +1,5 @@
/* Define __clog10l compat symbol for clog10 for ldbl-opt.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math_ldbl_opt.h>
#include <first-versions.h>
diff --git a/sysdeps/ieee754/ldbl-opt/s_clog10l.c b/sysdeps/ieee754/ldbl-opt/s_clog10l.c
index 77e1dc3812..d82180b65b 100644
--- a/sysdeps/ieee754/ldbl-opt/s_clog10l.c
+++ b/sysdeps/ieee754/ldbl-opt/s_clog10l.c
@@ -1,6 +1,6 @@
/* clog10l alias overrides for platforms where long double
was previously not unique.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define M_DECL_FUNC(x) __clog10l_internal
#include <math-type-macros-ldouble.h>
diff --git a/sysdeps/ieee754/ldbl-opt/s_ldexp.c b/sysdeps/ieee754/ldbl-opt/s_ldexp.c
index 94417193f5..b7d2926ac8 100644
--- a/sysdeps/ieee754/ldbl-opt/s_ldexp.c
+++ b/sysdeps/ieee754/ldbl-opt/s_ldexp.c
@@ -1,6 +1,6 @@
/* ldexp alias overrides for platforms where long double
was previously not unique.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math-type-macros-double.h>
#include <s_ldexp_template.c>
diff --git a/sysdeps/ieee754/ldbl-opt/s_ldexpl.c b/sysdeps/ieee754/ldbl-opt/s_ldexpl.c
index 8a60b03987..7322d7fe33 100644
--- a/sysdeps/ieee754/ldbl-opt/s_ldexpl.c
+++ b/sysdeps/ieee754/ldbl-opt/s_ldexpl.c
@@ -1,6 +1,6 @@
/* ldexpl alias overrides for platforms where long double
was previously not unique.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# define declare_mgen_alias(f,t)
diff --git a/sysdeps/ieee754/ldbl-opt/test-nldbl-redirect.c b/sysdeps/ieee754/ldbl-opt/test-nldbl-redirect.c
new file mode 100644
index 0000000000..3144d0dd19
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/test-nldbl-redirect.c
@@ -0,0 +1,42 @@
+/* Test libnldbl_nonshared.a wrappers call visible functions (bug 23735).
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+/* To use the wrappers, this file deliberately does not include
+ <math.h>. */
+
+long double sqrtl (long double);
+long double ceill (long double);
+long double floorl (long double);
+long double rintl (long double);
+long double truncl (long double);
+long double roundl (long double);
+
+volatile long double x = 2.25L;
+
+static int
+do_test (void)
+{
+ return (sqrtl (x) != 1.5L
+ || ceill (x) != 3.0L
+ || floorl (x) != 2.0L
+ || rintl (x) != 2.0L
+ || truncl (x) != 2.0L
+ || roundl (x) != 2.0L);
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/ieee754/s_signgam.c b/sysdeps/ieee754/s_signgam.c
index 9af3a75f1e..32116f3cd4 100644
--- a/sysdeps/ieee754/s_signgam.c
+++ b/sysdeps/ieee754/s_signgam.c
@@ -1,4 +1,3 @@
#include <math.h>
-#include <math_private.h>
int __signgam = 0;
weak_alias (__signgam, signgam)
diff --git a/sysdeps/ieee754/soft-fp/s_daddl.c b/sysdeps/ieee754/soft-fp/s_daddl.c
index efe3772413..ca2ef026a5 100644
--- a/sysdeps/ieee754/soft-fp/s_daddl.c
+++ b/sysdeps/ieee754/soft-fp/s_daddl.c
@@ -1,6 +1,6 @@
/* Add long double (ldbl-128) values, narrowing the result to double,
using soft-fp.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define f32xaddf64x __hide_f32xaddf64x
#define f32xaddf128 __hide_f32xaddf128
@@ -46,7 +46,7 @@ __daddl (_Float128 x, _Float128 y)
FP_UNPACK_SEMIRAW_Q (X, x);
FP_UNPACK_SEMIRAW_Q (Y, y);
FP_ADD_Q (R, X, Y);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
FP_TRUNC (D, Q, 2, 4, RN, R);
#else
FP_TRUNC (D, Q, 1, 2, RN, R);
diff --git a/sysdeps/ieee754/soft-fp/s_ddivl.c b/sysdeps/ieee754/soft-fp/s_ddivl.c
index 7e598a2132..6e08218452 100644
--- a/sysdeps/ieee754/soft-fp/s_ddivl.c
+++ b/sysdeps/ieee754/soft-fp/s_ddivl.c
@@ -1,6 +1,6 @@
/* Divide long double (ldbl-128) values, narrowing the result to
double, using soft-fp.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define f32xdivf64x __hide_f32xdivf64x
#define f32xdivf128 __hide_f32xdivf128
@@ -28,6 +28,16 @@
#undef f64divf128
#include <math-narrow.h>
+#include <libc-diag.h>
+
+/* R_f[01] are not set in cases where they are not used in packing,
+ but the compiler does not see that they are set in all cases where
+ they are used, resulting in warnings that they may be used
+ uninitialized. The location of the warning differs in different
+ versions of GCC, it may be where R is defined using a macro or it
+ may be where the macro is defined. This happens only with -O1. */
+DIAG_PUSH_NEEDS_COMMENT;
+DIAG_IGNORE_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
#include <soft-fp.h>
#include <double.h>
#include <quad.h>
@@ -46,7 +56,7 @@ __ddivl (_Float128 x, _Float128 y)
FP_UNPACK_Q (X, x);
FP_UNPACK_Q (Y, y);
FP_DIV_Q (R, X, Y);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
FP_TRUNC_COOKED (D, Q, 2, 4, RN, R);
#else
FP_TRUNC_COOKED (D, Q, 1, 2, RN, R);
@@ -56,4 +66,6 @@ __ddivl (_Float128 x, _Float128 y)
CHECK_NARROW_DIV (ret, x, y);
return ret;
}
+DIAG_POP_NEEDS_COMMENT;
+
libm_alias_double_ldouble (div)
diff --git a/sysdeps/ieee754/soft-fp/s_dmull.c b/sysdeps/ieee754/soft-fp/s_dmull.c
index 4ebf31140b..115c1dfd4f 100644
--- a/sysdeps/ieee754/soft-fp/s_dmull.c
+++ b/sysdeps/ieee754/soft-fp/s_dmull.c
@@ -1,6 +1,6 @@
/* Multiply long double (ldbl-128) values, narrowing the result to
double, using soft-fp.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define f32xmulf64x __hide_f32xmulf64x
#define f32xmulf128 __hide_f32xmulf128
@@ -46,7 +46,7 @@ __dmull (_Float128 x, _Float128 y)
FP_UNPACK_Q (X, x);
FP_UNPACK_Q (Y, y);
FP_MUL_Q (R, X, Y);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
FP_TRUNC_COOKED (D, Q, 2, 4, RN, R);
#else
FP_TRUNC_COOKED (D, Q, 1, 2, RN, R);
diff --git a/sysdeps/ieee754/soft-fp/s_dsubl.c b/sysdeps/ieee754/soft-fp/s_dsubl.c
index 52f489c6ed..713014dd65 100644
--- a/sysdeps/ieee754/soft-fp/s_dsubl.c
+++ b/sysdeps/ieee754/soft-fp/s_dsubl.c
@@ -1,6 +1,6 @@
/* Subtract long double (ldbl-128) values, narrowing the result to
double, using soft-fp.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define f32xsubf64x __hide_f32xsubf64x
#define f32xsubf128 __hide_f32xsubf128
@@ -46,7 +46,7 @@ __dsubl (_Float128 x, _Float128 y)
FP_UNPACK_SEMIRAW_Q (X, x);
FP_UNPACK_SEMIRAW_Q (Y, y);
FP_SUB_Q (R, X, Y);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
FP_TRUNC (D, Q, 2, 4, RN, R);
#else
FP_TRUNC (D, Q, 1, 2, RN, R);
diff --git a/sysdeps/ieee754/soft-fp/s_fadd.c b/sysdeps/ieee754/soft-fp/s_fadd.c
index 606e527300..1ce3c9d8fe 100644
--- a/sysdeps/ieee754/soft-fp/s_fadd.c
+++ b/sysdeps/ieee754/soft-fp/s_fadd.c
@@ -1,5 +1,5 @@
/* Add double values, narrowing the result to float, using soft-fp.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define f32addf64 __hide_f32addf64
#define f32addf32x __hide_f32addf32x
diff --git a/sysdeps/ieee754/soft-fp/s_faddl.c b/sysdeps/ieee754/soft-fp/s_faddl.c
index 42c4422060..1a7b3b2663 100644
--- a/sysdeps/ieee754/soft-fp/s_faddl.c
+++ b/sysdeps/ieee754/soft-fp/s_faddl.c
@@ -1,6 +1,6 @@
/* Add long double (ldbl-128) values, narrowing the result to float,
using soft-fp.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define f32addf64x __hide_f32addf64x
#define f32addf128 __hide_f32addf128
@@ -42,7 +42,7 @@ __faddl (_Float128 x, _Float128 y)
FP_UNPACK_SEMIRAW_Q (X, x);
FP_UNPACK_SEMIRAW_Q (Y, y);
FP_ADD_Q (R, X, Y);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
FP_TRUNC (S, Q, 1, 4, RN, R);
#else
FP_TRUNC (S, Q, 1, 2, RN, R);
diff --git a/sysdeps/ieee754/soft-fp/s_fdiv.c b/sysdeps/ieee754/soft-fp/s_fdiv.c
index 341339f5ed..3b79f94e3c 100644
--- a/sysdeps/ieee754/soft-fp/s_fdiv.c
+++ b/sysdeps/ieee754/soft-fp/s_fdiv.c
@@ -1,5 +1,5 @@
/* Divide double values, narrowing the result to float, using soft-fp.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define f32divf64 __hide_f32divf64
#define f32divf32x __hide_f32divf32x
@@ -25,6 +25,16 @@
#undef fdivl
#include <math-narrow.h>
+#include <libc-diag.h>
+
+/* R_f[01] are not set in cases where they are not used in packing,
+ but the compiler does not see that they are set in all cases where
+ they are used, resulting in warnings that they may be used
+ uninitialized. The location of the warning differs in different
+ versions of GCC, it may be where R is defined using a macro or it
+ may be where the macro is defined. This happens only with -O1. */
+DIAG_PUSH_NEEDS_COMMENT;
+DIAG_IGNORE_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
#include <soft-fp.h>
#include <single.h>
#include <double.h>
@@ -53,4 +63,6 @@ __fdiv (double x, double y)
CHECK_NARROW_DIV (ret, x, y);
return ret;
}
+DIAG_POP_NEEDS_COMMENT;
+
libm_alias_float_double (div)
diff --git a/sysdeps/ieee754/soft-fp/s_fdivl.c b/sysdeps/ieee754/soft-fp/s_fdivl.c
index 7fb3709c73..b759d14020 100644
--- a/sysdeps/ieee754/soft-fp/s_fdivl.c
+++ b/sysdeps/ieee754/soft-fp/s_fdivl.c
@@ -1,6 +1,6 @@
/* Divide long double (ldbl-128) values, narrowing the result to
float, using soft-fp.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define f32divf64x __hide_f32divf64x
#define f32divf128 __hide_f32divf128
@@ -24,6 +24,16 @@
#undef f32divf128
#include <math-narrow.h>
+#include <libc-diag.h>
+
+/* R_f[01] are not set in cases where they are not used in packing,
+ but the compiler does not see that they are set in all cases where
+ they are used, resulting in warnings that they may be used
+ uninitialized. The location of the warning differs in different
+ versions of GCC, it may be where R is defined using a macro or it
+ may be where the macro is defined. This happens only with -O1. */
+DIAG_PUSH_NEEDS_COMMENT;
+DIAG_IGNORE_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
#include <soft-fp.h>
#include <single.h>
#include <quad.h>
@@ -42,7 +52,7 @@ __fdivl (_Float128 x, _Float128 y)
FP_UNPACK_Q (X, x);
FP_UNPACK_Q (Y, y);
FP_DIV_Q (R, X, Y);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
FP_TRUNC_COOKED (S, Q, 1, 4, RN, R);
#else
FP_TRUNC_COOKED (S, Q, 1, 2, RN, R);
@@ -52,4 +62,6 @@ __fdivl (_Float128 x, _Float128 y)
CHECK_NARROW_DIV (ret, x, y);
return ret;
}
+DIAG_POP_NEEDS_COMMENT;
+
libm_alias_float_ldouble (div)
diff --git a/sysdeps/ieee754/soft-fp/s_fma.c b/sysdeps/ieee754/soft-fp/s_fma.c
index 41cf81a74b..b08e054736 100644
--- a/sysdeps/ieee754/soft-fp/s_fma.c
+++ b/sysdeps/ieee754/soft-fp/s_fma.c
@@ -1,5 +1,5 @@
/* Implement fma using soft-fp.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <libc-diag.h>
diff --git a/sysdeps/ieee754/soft-fp/s_fmaf.c b/sysdeps/ieee754/soft-fp/s_fmaf.c
index afe64356b3..352b0ff18b 100644
--- a/sysdeps/ieee754/soft-fp/s_fmaf.c
+++ b/sysdeps/ieee754/soft-fp/s_fmaf.c
@@ -1,5 +1,5 @@
/* Implement fmaf using soft-fp.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <libc-diag.h>
diff --git a/sysdeps/ieee754/soft-fp/s_fmal.c b/sysdeps/ieee754/soft-fp/s_fmal.c
index 4c2d4c5d9b..1f045b681d 100644
--- a/sysdeps/ieee754/soft-fp/s_fmal.c
+++ b/sysdeps/ieee754/soft-fp/s_fmal.c
@@ -1,5 +1,5 @@
/* Implement fmal using soft-fp.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <libc-diag.h>
diff --git a/sysdeps/ieee754/soft-fp/s_fmul.c b/sysdeps/ieee754/soft-fp/s_fmul.c
index 5f679b1d45..c7745b1d5a 100644
--- a/sysdeps/ieee754/soft-fp/s_fmul.c
+++ b/sysdeps/ieee754/soft-fp/s_fmul.c
@@ -1,5 +1,5 @@
/* Multiply double values, narrowing the result to float, using soft-fp.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define f32mulf64 __hide_f32mulf64
#define f32mulf32x __hide_f32mulf32x
diff --git a/sysdeps/ieee754/soft-fp/s_fmull.c b/sysdeps/ieee754/soft-fp/s_fmull.c
index da4a12c8ec..c3938e9783 100644
--- a/sysdeps/ieee754/soft-fp/s_fmull.c
+++ b/sysdeps/ieee754/soft-fp/s_fmull.c
@@ -1,6 +1,6 @@
/* Multiply long double (ldbl-128) values, narrowing the result to
float, using soft-fp.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define f32mulf64x __hide_f32mulf64x
#define f32mulf128 __hide_f32mulf128
@@ -42,7 +42,7 @@ __fmull (_Float128 x, _Float128 y)
FP_UNPACK_Q (X, x);
FP_UNPACK_Q (Y, y);
FP_MUL_Q (R, X, Y);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
FP_TRUNC_COOKED (S, Q, 1, 4, RN, R);
#else
FP_TRUNC_COOKED (S, Q, 1, 2, RN, R);
diff --git a/sysdeps/ieee754/soft-fp/s_fsub.c b/sysdeps/ieee754/soft-fp/s_fsub.c
index 824a3abbc7..a532d558bb 100644
--- a/sysdeps/ieee754/soft-fp/s_fsub.c
+++ b/sysdeps/ieee754/soft-fp/s_fsub.c
@@ -1,5 +1,5 @@
/* Subtract double values, narrowing the result to float, using soft-fp.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define f32subf64 __hide_f32subf64
#define f32subf32x __hide_f32subf32x
diff --git a/sysdeps/ieee754/soft-fp/s_fsubl.c b/sysdeps/ieee754/soft-fp/s_fsubl.c
index 84b1013797..1d99661724 100644
--- a/sysdeps/ieee754/soft-fp/s_fsubl.c
+++ b/sysdeps/ieee754/soft-fp/s_fsubl.c
@@ -1,6 +1,6 @@
/* Subtract long double (ldbl-128) values, narrowing the result to
float, using soft-fp.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define f32subf64x __hide_f32subf64x
#define f32subf128 __hide_f32subf128
@@ -42,7 +42,7 @@ __fsubl (_Float128 x, _Float128 y)
FP_UNPACK_SEMIRAW_Q (X, x);
FP_UNPACK_SEMIRAW_Q (Y, y);
FP_SUB_Q (R, X, Y);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
FP_TRUNC (S, Q, 1, 4, RN, R);
#else
FP_TRUNC (S, Q, 1, 2, RN, R);
diff --git a/sysdeps/init_array/elf-init.c b/sysdeps/init_array/elf-init.c
index 9fbe82e93c..d928e6997c 100644
--- a/sysdeps/init_array/elf-init.c
+++ b/sysdeps/init_array/elf-init.c
@@ -1,5 +1,5 @@
/* Startup support for ELF initializers/finalizers in the main executable.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define NO_INITFINI
#include <csu/elf-init.c>
diff --git a/sysdeps/init_array/gmon-start.c b/sysdeps/init_array/gmon-start.c
index 3bacaf7e38..9ea40b44b6 100644
--- a/sysdeps/init_array/gmon-start.c
+++ b/sysdeps/init_array/gmon-start.c
@@ -1,5 +1,5 @@
/* gmon startup hook using .preinit_array.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Instead of defining __gmon_start__ globally in gcrt1.o, we make it
static and just put a pointer to it into the .preinit_array section. */
diff --git a/sysdeps/init_array/pt-crti.S b/sysdeps/init_array/pt-crti.S
index 9bf17059dd..3955298eca 100644
--- a/sysdeps/init_array/pt-crti.S
+++ b/sysdeps/init_array/pt-crti.S
@@ -1,5 +1,5 @@
/* Special initializer support for libpthread.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This arranges for libpthread.so's special initializer to be called as
soon as the library is loaded. */
diff --git a/sysdeps/m68k/Makefile b/sysdeps/m68k/Makefile
index ac0aa0fd47..0d5fd6f84f 100644
--- a/sysdeps/m68k/Makefile
+++ b/sysdeps/m68k/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1993-2018 Free Software Foundation, Inc.
+# Copyright (C) 1993-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
# The mpn functions need this. All existing 68k ports use MIT syntax. If
# a new port wants to use Motorola or Sony syntax, it can redefine this
diff --git a/sysdeps/m68k/__longjmp.c b/sysdeps/m68k/__longjmp.c
index 9f8998e584..a2a8aa2e70 100644
--- a/sysdeps/m68k/__longjmp.c
+++ b/sysdeps/m68k/__longjmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <setjmp.h>
#include <stdlib.h>
diff --git a/sysdeps/m68k/asm-syntax.h b/sysdeps/m68k/asm-syntax.h
index c347b07431..1aa14547e1 100644
--- a/sysdeps/m68k/asm-syntax.h
+++ b/sysdeps/m68k/asm-syntax.h
@@ -1,5 +1,5 @@
/* Definitions for 68k syntax variations.
- Copyright (C) 1992-2018 Free Software Foundation, Inc.
+ Copyright (C) 1992-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library. Its master source is NOT part of
the C library, however. The master source lives in the GNU MP Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* For ELF we need to prefix register names and local labels. */
#define R_(r) %##r
diff --git a/sysdeps/m68k/backtrace.c b/sysdeps/m68k/backtrace.c
index 9e13e245db..8ce1bb05bc 100644
--- a/sysdeps/m68k/backtrace.c
+++ b/sysdeps/m68k/backtrace.c
@@ -1,5 +1,5 @@
/* Return backtrace of current program state.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libc-lock.h>
#include <dlfcn.h>
diff --git a/sysdeps/m68k/bits/endian.h b/sysdeps/m68k/bits/endian.h
deleted file mode 100644
index bf4ecb60a4..0000000000
--- a/sysdeps/m68k/bits/endian.h
+++ /dev/null
@@ -1,7 +0,0 @@
-/* m68k is big-endian. */
-
-#ifndef _ENDIAN_H
-# error "Never use <bits/endian.h> directly; include <endian.h> instead."
-#endif
-
-#define __BYTE_ORDER __BIG_ENDIAN
diff --git a/sysdeps/m68k/bits/endianness.h b/sysdeps/m68k/bits/endianness.h
new file mode 100644
index 0000000000..7e5f0d2969
--- /dev/null
+++ b/sysdeps/m68k/bits/endianness.h
@@ -0,0 +1,11 @@
+#ifndef _BITS_ENDIANNESS_H
+#define _BITS_ENDIANNESS_H 1
+
+#ifndef _BITS_ENDIAN_H
+# error "Never use <bits/endianness.h> directly; include <endian.h> instead."
+#endif
+
+/* m68k is big-endian. */
+#define __BYTE_ORDER __BIG_ENDIAN
+
+#endif /* bits/endianness.h */
diff --git a/sysdeps/m68k/bits/fenv.h b/sysdeps/m68k/bits/fenv.h
index 7050ceff24..51d26b70ed 100644
--- a/sysdeps/m68k/bits/fenv.h
+++ b/sysdeps/m68k/bits/fenv.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FENV_H
# error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
@@ -122,7 +122,7 @@ fenv_t;
# define FE_NOMASK_ENV ((const fenv_t *) -2)
#endif
-#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/sysdeps/m68k/bits/link.h b/sysdeps/m68k/bits/link.h
index c88ce6bd33..cd54a95f11 100644
--- a/sysdeps/m68k/bits/link.h
+++ b/sysdeps/m68k/bits/link.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LINK_H
# error "Never include <bits/link.h> directly; use <link.h> instead."
diff --git a/sysdeps/m68k/bits/setjmp.h b/sysdeps/m68k/bits/setjmp.h
index 9a7826c5e8..55a433c65d 100644
--- a/sysdeps/m68k/bits/setjmp.h
+++ b/sysdeps/m68k/bits/setjmp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define the machine-dependent type `jmp_buf'. m68k version. */
#ifndef _BITS_SETJMP_H
diff --git a/sysdeps/m68k/bsd-_setjmp.c b/sysdeps/m68k/bsd-_setjmp.c
index 369d894059..3d93df7829 100644
--- a/sysdeps/m68k/bsd-_setjmp.c
+++ b/sysdeps/m68k/bsd-_setjmp.c
@@ -1,5 +1,5 @@
/* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'. m68k version.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define BSD__SETJMP
#include <sysdeps/m68k/setjmp.c>
diff --git a/sysdeps/m68k/bsd-setjmp.c b/sysdeps/m68k/bsd-setjmp.c
index 53e51b7cfa..10419dfdd2 100644
--- a/sysdeps/m68k/bsd-setjmp.c
+++ b/sysdeps/m68k/bsd-setjmp.c
@@ -1,5 +1,5 @@
/* BSD `setjmp' entry point to `sigsetjmp (..., 1)'. m68k version.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define BSD_SETJMP
#include <sysdeps/m68k/setjmp.c>
diff --git a/sysdeps/m68k/coldfire/atomic-machine.h b/sysdeps/m68k/coldfire/atomic-machine.h
index 3ef9859f88..0ff61b96b2 100644
--- a/sysdeps/m68k/coldfire/atomic-machine.h
+++ b/sysdeps/m68k/coldfire/atomic-machine.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _ATOMIC_MACHINE_H
#define _ATOMIC_MACHINE_H 1
diff --git a/sysdeps/m68k/coldfire/fpu/e_sqrt.c b/sysdeps/m68k/coldfire/fpu/e_sqrt.c
index 3d51589eae..f8f1a3e242 100644
--- a/sysdeps/m68k/coldfire/fpu/e_sqrt.c
+++ b/sysdeps/m68k/coldfire/fpu/e_sqrt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2006-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
double
__ieee754_sqrt (double x)
diff --git a/sysdeps/m68k/coldfire/fpu/e_sqrtf.c b/sysdeps/m68k/coldfire/fpu/e_sqrtf.c
index 80636da591..34100473c0 100644
--- a/sysdeps/m68k/coldfire/fpu/e_sqrtf.c
+++ b/sysdeps/m68k/coldfire/fpu/e_sqrtf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2006-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
float
__ieee754_sqrtf (float x)
diff --git a/sysdeps/m68k/coldfire/fpu/fraiseexcpt.c b/sysdeps/m68k/coldfire/fpu/fraiseexcpt.c
index 8474542cfe..a439597720 100644
--- a/sysdeps/m68k/coldfire/fpu/fraiseexcpt.c
+++ b/sysdeps/m68k/coldfire/fpu/fraiseexcpt.c
@@ -1,5 +1,5 @@
/* Raise given exceptions.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <float.h>
diff --git a/sysdeps/m68k/coldfire/fpu/s_fabs.c b/sysdeps/m68k/coldfire/fpu/s_fabs.c
index 50e1cfe40c..cadb6fcb15 100644
--- a/sysdeps/m68k/coldfire/fpu/s_fabs.c
+++ b/sysdeps/m68k/coldfire/fpu/s_fabs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2006-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libm-alias-double.h>
diff --git a/sysdeps/m68k/coldfire/fpu/s_fabsf.c b/sysdeps/m68k/coldfire/fpu/s_fabsf.c
index 9b37d69782..da0f475831 100644
--- a/sysdeps/m68k/coldfire/fpu/s_fabsf.c
+++ b/sysdeps/m68k/coldfire/fpu/s_fabsf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2006-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libm-alias-float.h>
diff --git a/sysdeps/m68k/coldfire/fpu/s_lrint.c b/sysdeps/m68k/coldfire/fpu/s_lrint.c
index 2a0a4b8f56..77c4e816fc 100644
--- a/sysdeps/m68k/coldfire/fpu/s_lrint.c
+++ b/sysdeps/m68k/coldfire/fpu/s_lrint.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2006-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libm-alias-double.h>
diff --git a/sysdeps/m68k/coldfire/fpu/s_lrintf.c b/sysdeps/m68k/coldfire/fpu/s_lrintf.c
index 66f951c9f5..85334957e1 100644
--- a/sysdeps/m68k/coldfire/fpu/s_lrintf.c
+++ b/sysdeps/m68k/coldfire/fpu/s_lrintf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2006-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libm-alias-float.h>
diff --git a/sysdeps/m68k/coldfire/fpu/s_rint.c b/sysdeps/m68k/coldfire/fpu/s_rint.c
index a5bc4ad223..b22d8ba600 100644
--- a/sysdeps/m68k/coldfire/fpu/s_rint.c
+++ b/sysdeps/m68k/coldfire/fpu/s_rint.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2006-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
@@ -13,8 +13,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <libm-alias-double.h>
double
diff --git a/sysdeps/m68k/coldfire/fpu/s_rintf.c b/sysdeps/m68k/coldfire/fpu/s_rintf.c
index d68a3fda4d..745ed654be 100644
--- a/sysdeps/m68k/coldfire/fpu/s_rintf.c
+++ b/sysdeps/m68k/coldfire/fpu/s_rintf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2006-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
@@ -13,8 +13,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <libm-alias-float.h>
float
diff --git a/sysdeps/m68k/coldfire/math-tests.h b/sysdeps/m68k/coldfire/math-tests.h
deleted file mode 100644
index b05609d45d..0000000000
--- a/sysdeps/m68k/coldfire/math-tests.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Configuration for math tests. ColdFire version.
- Copyright (C) 2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-/* ColdFire soft float does not support exceptions and rounding modes. */
-#ifndef __mcffpu__
-# define ROUNDING_TESTS_float(MODE) ((MODE) == FE_TONEAREST)
-# define ROUNDING_TESTS_double(MODE) ((MODE) == FE_TONEAREST)
-# define ROUNDING_TESTS_long_double(MODE) ((MODE) == FE_TONEAREST)
-# define EXCEPTION_TESTS_float 0
-# define EXCEPTION_TESTS_double 0
-# define EXCEPTION_TESTS_long_double 0
-#endif
-
-#include_next <math-tests.h>
diff --git a/sysdeps/m68k/coldfire/sysdep.h b/sysdeps/m68k/coldfire/sysdep.h
index 7eab5047ab..4dfd16d06c 100644
--- a/sysdeps/m68k/coldfire/sysdep.h
+++ b/sysdeps/m68k/coldfire/sysdep.h
@@ -1,5 +1,5 @@
/* Assembler macros for Coldfire.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/m68k/sysdep.h>
diff --git a/sysdeps/m68k/crti.S b/sysdeps/m68k/crti.S
index e5f2157cd6..f0632b921f 100644
--- a/sysdeps/m68k/crti.S
+++ b/sysdeps/m68k/crti.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for m68k.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* crti.S puts a function prologue at the beginning of the .init and
.fini sections and defines global symbols for those addresses, so
diff --git a/sysdeps/m68k/crtn.S b/sysdeps/m68k/crtn.S
index a1dbf67e22..ec73d45f8e 100644
--- a/sysdeps/m68k/crtn.S
+++ b/sysdeps/m68k/crtn.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for m68k.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* crtn.S puts function epilogues in the .init and .fini sections
corresponding to the prologues in crti.S. */
diff --git a/sysdeps/m68k/dl-machine.h b/sysdeps/m68k/dl-machine.h
index 8eb2295deb..abb17218ee 100644
--- a/sysdeps/m68k/dl-machine.h
+++ b/sysdeps/m68k/dl-machine.h
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation inline functions. m68k version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef dl_machine_h
#define dl_machine_h
diff --git a/sysdeps/m68k/dl-tls.h b/sysdeps/m68k/dl-tls.h
index 20d7d0d333..f50960c163 100644
--- a/sysdeps/m68k/dl-tls.h
+++ b/sysdeps/m68k/dl-tls.h
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. M68K version.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Maxim Kuvyrkov <maxim@codesourcery.com>, 2010.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Type used for the representation of TLS information in the GOT. */
diff --git a/sysdeps/m68k/dl-trampoline.S b/sysdeps/m68k/dl-trampoline.S
index 7e1eace26b..45eade05fa 100644
--- a/sysdeps/m68k/dl-trampoline.S
+++ b/sysdeps/m68k/dl-trampoline.S
@@ -1,5 +1,5 @@
/* PLT trampolines. m68k version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/m68k/ffs.c b/sysdeps/m68k/ffs.c
index cbee8c201d..97aa50368e 100644
--- a/sysdeps/m68k/ffs.c
+++ b/sysdeps/m68k/ffs.c
@@ -1,7 +1,7 @@
/* ffs -- find first set bit in a word, counted from least significant end.
For mc68020, mc68030, mc68040.
This file is part of the GNU C Library.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 Free Software Foundation, Inc.
Contributed by Torbjorn Granlund (tege@sics.se).
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define ffsl __something_else
#include <string.h>
diff --git a/sysdeps/m68k/fpu/fclrexcpt.c b/sysdeps/m68k/fpu/fclrexcpt.c
index b3bf9b760b..1606c4aa59 100644
--- a/sysdeps/m68k/fpu/fclrexcpt.c
+++ b/sysdeps/m68k/fpu/fclrexcpt.c
@@ -1,5 +1,5 @@
/* Clear given exceptions in current floating-point environment.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/m68k/fpu/fedisblxcpt.c b/sysdeps/m68k/fpu/fedisblxcpt.c
index 0e62cd47c2..0b4c10676d 100644
--- a/sysdeps/m68k/fpu/fedisblxcpt.c
+++ b/sysdeps/m68k/fpu/fedisblxcpt.c
@@ -1,5 +1,5 @@
/* Disable floating-point exceptions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/m68k/fpu/feenablxcpt.c b/sysdeps/m68k/fpu/feenablxcpt.c
index a67c4ac6fd..50fe64b39d 100644
--- a/sysdeps/m68k/fpu/feenablxcpt.c
+++ b/sysdeps/m68k/fpu/feenablxcpt.c
@@ -1,5 +1,5 @@
/* Enable floating-point exceptions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/m68k/fpu/fegetenv.c b/sysdeps/m68k/fpu/fegetenv.c
index 4f5774191e..4dfad54839 100644
--- a/sysdeps/m68k/fpu/fegetenv.c
+++ b/sysdeps/m68k/fpu/fegetenv.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/m68k/fpu/fegetexcept.c b/sysdeps/m68k/fpu/fegetexcept.c
index 2167fb689d..aae1c6a864 100644
--- a/sysdeps/m68k/fpu/fegetexcept.c
+++ b/sysdeps/m68k/fpu/fegetexcept.c
@@ -1,5 +1,5 @@
/* Get enabled floating-point exceptions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/m68k/fpu/fegetmode.c b/sysdeps/m68k/fpu/fegetmode.c
index fb5a4cdba9..75ff99856a 100644
--- a/sysdeps/m68k/fpu/fegetmode.c
+++ b/sysdeps/m68k/fpu/fegetmode.c
@@ -1,5 +1,5 @@
/* Store current floating-point control modes. M68K version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/m68k/fpu/fegetround.c b/sysdeps/m68k/fpu/fegetround.c
index 5dd18b2ba7..10cd9d793a 100644
--- a/sysdeps/m68k/fpu/fegetround.c
+++ b/sysdeps/m68k/fpu/fegetround.c
@@ -1,5 +1,5 @@
/* Return current rounding direction.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/m68k/fpu/feholdexcpt.c b/sysdeps/m68k/fpu/feholdexcpt.c
index b47724a2e0..338ce3acd9 100644
--- a/sysdeps/m68k/fpu/feholdexcpt.c
+++ b/sysdeps/m68k/fpu/feholdexcpt.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment and clear exceptions.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/m68k/fpu/fesetenv.c b/sysdeps/m68k/fpu/fesetenv.c
index ab7b3e25ce..bd4a1f152f 100644
--- a/sysdeps/m68k/fpu/fesetenv.c
+++ b/sysdeps/m68k/fpu/fesetenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/m68k/fpu/fesetexcept.c b/sysdeps/m68k/fpu/fesetexcept.c
index 0906e526be..930c684208 100644
--- a/sysdeps/m68k/fpu/fesetexcept.c
+++ b/sysdeps/m68k/fpu/fesetexcept.c
@@ -1,5 +1,5 @@
/* Set given exception flags. M68K version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/m68k/fpu/fesetmode.c b/sysdeps/m68k/fpu/fesetmode.c
index 3569fd08ca..0273f6d5f4 100644
--- a/sysdeps/m68k/fpu/fesetmode.c
+++ b/sysdeps/m68k/fpu/fesetmode.c
@@ -1,5 +1,5 @@
/* Install given floating-point control modes. M68K version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/m68k/fpu/fesetround.c b/sysdeps/m68k/fpu/fesetround.c
index e2b0c4a98a..a32a5da847 100644
--- a/sysdeps/m68k/fpu/fesetround.c
+++ b/sysdeps/m68k/fpu/fesetround.c
@@ -1,5 +1,5 @@
/* Set current rounding direction.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/m68k/fpu/feupdateenv.c b/sysdeps/m68k/fpu/feupdateenv.c
index ee351a2f86..26f3c3107e 100644
--- a/sysdeps/m68k/fpu/feupdateenv.c
+++ b/sysdeps/m68k/fpu/feupdateenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment and raise exceptions.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/m68k/fpu/fgetexcptflg.c b/sysdeps/m68k/fpu/fgetexcptflg.c
index 87c29a3b89..fc9aadf3f3 100644
--- a/sysdeps/m68k/fpu/fgetexcptflg.c
+++ b/sysdeps/m68k/fpu/fgetexcptflg.c
@@ -1,5 +1,5 @@
/* Store current representation for exceptions.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/m68k/fpu/fsetexcptflg.c b/sysdeps/m68k/fpu/fsetexcptflg.c
index 1f2a5e4104..1e76ce457d 100644
--- a/sysdeps/m68k/fpu/fsetexcptflg.c
+++ b/sysdeps/m68k/fpu/fsetexcptflg.c
@@ -1,5 +1,5 @@
/* Set floating-point environment exception handling.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <math.h>
diff --git a/sysdeps/m68k/fpu/ftestexcept.c b/sysdeps/m68k/fpu/ftestexcept.c
index cb7f063873..e6f4e8ea88 100644
--- a/sysdeps/m68k/fpu/ftestexcept.c
+++ b/sysdeps/m68k/fpu/ftestexcept.c
@@ -1,5 +1,5 @@
/* Test exception in current environment.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/m68k/fpu_control.h b/sysdeps/m68k/fpu_control.h
index db8b0c9c17..ebb62b6254 100644
--- a/sysdeps/m68k/fpu_control.h
+++ b/sysdeps/m68k/fpu_control.h
@@ -1,5 +1,5 @@
/* 68k FPU control word definitions.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FPU_CONTROL_H
#define _FPU_CONTROL_H
diff --git a/sysdeps/m68k/gccframe.h b/sysdeps/m68k/gccframe.h
index c28db6c6ed..10b1d1cba2 100644
--- a/sysdeps/m68k/gccframe.h
+++ b/sysdeps/m68k/gccframe.h
@@ -1,5 +1,5 @@
/* Definition of object in frame unwind info. m68k version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define FIRST_PSEUDO_REGISTER 24
diff --git a/sysdeps/m68k/jmpbuf-unwind.h b/sysdeps/m68k/jmpbuf-unwind.h
index 8d0f3ffe6e..4b6f58a31f 100644
--- a/sysdeps/m68k/jmpbuf-unwind.h
+++ b/sysdeps/m68k/jmpbuf-unwind.h
@@ -1,5 +1,5 @@
/* Examine __jmp_buf for unwinding frames. m68k version.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <setjmp.h>
#include <stdint.h>
diff --git a/sysdeps/m68k/ldsodefs.h b/sysdeps/m68k/ldsodefs.h
index 58509ba823..092f853b95 100644
--- a/sysdeps/m68k/ldsodefs.h
+++ b/sysdeps/m68k/ldsodefs.h
@@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef __LDSODEFS_H
diff --git a/sysdeps/m68k/libc-tls.c b/sysdeps/m68k/libc-tls.c
index 6bf81e9b4e..117ea8732d 100644
--- a/sysdeps/m68k/libc-tls.c
+++ b/sysdeps/m68k/libc-tls.c
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. m68k version.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Maxim Kuvyrkov <maxim@codesourcery.com>, 2010.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <csu/libc-tls.c>
#include <dl-tls.h>
diff --git a/sysdeps/m68k/m680x0/add_n.S b/sysdeps/m68k/m680x0/add_n.S
index 5d61884c69..1521843438 100644
--- a/sysdeps/m68k/m680x0/add_n.S
+++ b/sysdeps/m68k/m680x0/add_n.S
@@ -1,7 +1,7 @@
/* mc68020 __mpn_add_n -- Add two limb vectors of the same length > 0 and store
sum in a third limb vector.
-Copyright (C) 1992-2018 Free Software Foundation, Inc.
+Copyright (C) 1992-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -16,7 +16,7 @@ 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 MP Library. If not, see <http://www.gnu.org/licenses/>. */
+along with the GNU MP Library. If not, see <https://www.gnu.org/licenses/>. */
/*
INPUT PARAMETERS
diff --git a/sysdeps/m68k/m680x0/bits/flt-eval-method.h b/sysdeps/m68k/m680x0/bits/flt-eval-method.h
index 8bcaf79a7b..6f7577d0b5 100644
--- a/sysdeps/m68k/m680x0/bits/flt-eval-method.h
+++ b/sysdeps/m68k/m680x0/bits/flt-eval-method.h
@@ -1,5 +1,5 @@
/* Define __GLIBC_FLT_EVAL_METHOD. M68K version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MATH_H
# error "Never use <bits/flt-eval-method.h> directly; include <math.h> instead."
diff --git a/sysdeps/m68k/m680x0/bits/fp-logb.h b/sysdeps/m68k/m680x0/bits/fp-logb.h
index ab2d11a0fe..0aba016b4b 100644
--- a/sysdeps/m68k/m680x0/bits/fp-logb.h
+++ b/sysdeps/m68k/m680x0/bits/fp-logb.h
@@ -1,5 +1,5 @@
/* Define __FP_LOGB0_IS_MIN and __FP_LOGBNAN_IS_MIN. M68K version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MATH_H
# error "Never use <bits/fp-logb.h> directly; include <math.h> instead."
diff --git a/sysdeps/m68k/m680x0/fpu/bits/mathinline.h b/sysdeps/m68k/m680x0/fpu/bits/mathinline.h
index fbe8d029df..3da8167c5d 100644
--- a/sysdeps/m68k/m680x0/fpu/bits/mathinline.h
+++ b/sysdeps/m68k/m680x0/fpu/bits/mathinline.h
@@ -1,5 +1,5 @@
/* Definitions of inline math functions implemented by the m68881/2.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MATH_H
# error "Never use <bits/mathinline.h> directly; include <math.h> instead."
diff --git a/sysdeps/m68k/m680x0/fpu/e_acos.c b/sysdeps/m68k/m680x0/fpu/e_acos.c
index 67a2616be7..af6b367bcc 100644
--- a/sysdeps/m68k/m680x0/fpu/e_acos.c
+++ b/sysdeps/m68k/m680x0/fpu/e_acos.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/m68k/m680x0/fpu/e_atan2.c b/sysdeps/m68k/m680x0/fpu/e_atan2.c
index f1cd00df78..dbac8c2750 100644
--- a/sysdeps/m68k/m680x0/fpu/e_atan2.c
+++ b/sysdeps/m68k/m680x0/fpu/e_atan2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/m68k/m680x0/fpu/e_exp_data.c b/sysdeps/m68k/m680x0/fpu/e_exp_data.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/m68k/m680x0/fpu/e_exp_data.c
@@ -0,0 +1 @@
+/* Not needed. */
diff --git a/sysdeps/m68k/m680x0/fpu/e_fmod.c b/sysdeps/m68k/m680x0/fpu/e_fmod.c
index 83dbd37e85..8b8f91ab59 100644
--- a/sysdeps/m68k/m680x0/fpu/e_fmod.c
+++ b/sysdeps/m68k/m680x0/fpu/e_fmod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/m68k/m680x0/fpu/e_ilogb.c b/sysdeps/m68k/m680x0/fpu/e_ilogb.c
index e1cb2938bf..ddf3e94689 100644
--- a/sysdeps/m68k/m680x0/fpu/e_ilogb.c
+++ b/sysdeps/m68k/m680x0/fpu/e_ilogb.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include "mathimpl.h"
diff --git a/sysdeps/m68k/m680x0/fpu/e_log2_data.c b/sysdeps/m68k/m680x0/fpu/e_log2_data.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/m68k/m680x0/fpu/e_log2_data.c
@@ -0,0 +1 @@
+/* Not needed. */
diff --git a/sysdeps/m68k/m680x0/fpu/e_log_data.c b/sysdeps/m68k/m680x0/fpu/e_log_data.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/m68k/m680x0/fpu/e_log_data.c
@@ -0,0 +1 @@
+/* Not needed. */
diff --git a/sysdeps/m68k/m680x0/fpu/e_pow.c b/sysdeps/m68k/m680x0/fpu/e_pow.c
index a94c0e0c0d..45c767d34f 100644
--- a/sysdeps/m68k/m680x0/fpu/e_pow.c
+++ b/sysdeps/m68k/m680x0/fpu/e_pow.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/m68k/m680x0/fpu/e_pow_log_data.c b/sysdeps/m68k/m680x0/fpu/e_pow_log_data.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/m68k/m680x0/fpu/e_pow_log_data.c
@@ -0,0 +1 @@
+/* Not needed. */
diff --git a/sysdeps/m68k/m680x0/fpu/e_rem_pio2.c b/sysdeps/m68k/m680x0/fpu/e_rem_pio2.c
deleted file mode 100644
index 1347b0468c..0000000000
--- a/sysdeps/m68k/m680x0/fpu/e_rem_pio2.c
+++ /dev/null
@@ -1,3 +0,0 @@
-/* Empty. This file is only meant to avoid compiling the file with the
- same name in the libm-ieee754 directory. The code is not used since
- there is an assembler version for all users of this file. */
diff --git a/sysdeps/m68k/m680x0/fpu/e_rem_pio2f.c b/sysdeps/m68k/m680x0/fpu/e_rem_pio2f.c
deleted file mode 100644
index 1347b0468c..0000000000
--- a/sysdeps/m68k/m680x0/fpu/e_rem_pio2f.c
+++ /dev/null
@@ -1,3 +0,0 @@
-/* Empty. This file is only meant to avoid compiling the file with the
- same name in the libm-ieee754 directory. The code is not used since
- there is an assembler version for all users of this file. */
diff --git a/sysdeps/m68k/m680x0/fpu/e_scalb.c b/sysdeps/m68k/m680x0/fpu/e_scalb.c
index efa3133363..d9ed2c0cb3 100644
--- a/sysdeps/m68k/m680x0/fpu/e_scalb.c
+++ b/sysdeps/m68k/m680x0/fpu/e_scalb.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/m68k/m680x0/fpu/fraiseexcpt.c b/sysdeps/m68k/m680x0/fpu/fraiseexcpt.c
index 99fee81548..6c9d007143 100644
--- a/sysdeps/m68k/m680x0/fpu/fraiseexcpt.c
+++ b/sysdeps/m68k/m680x0/fpu/fraiseexcpt.c
@@ -1,5 +1,5 @@
/* Raise given exceptions.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <float.h>
diff --git a/sysdeps/m68k/m680x0/fpu/k_rem_pio2f.c b/sysdeps/m68k/m680x0/fpu/k_rem_pio2f.c
deleted file mode 100644
index 1347b0468c..0000000000
--- a/sysdeps/m68k/m680x0/fpu/k_rem_pio2f.c
+++ /dev/null
@@ -1,3 +0,0 @@
-/* Empty. This file is only meant to avoid compiling the file with the
- same name in the libm-ieee754 directory. The code is not used since
- there is an assembler version for all users of this file. */
diff --git a/sysdeps/m68k/m680x0/fpu/math-barriers.h b/sysdeps/m68k/m680x0/fpu/math-barriers.h
index b1b78d5f11..a4f42c7e11 100644
--- a/sysdeps/m68k/m680x0/fpu/math-barriers.h
+++ b/sysdeps/m68k/m680x0/fpu/math-barriers.h
@@ -1,5 +1,5 @@
/* Control when floating-point expressions are evaluated. M68k version.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ 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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef M68K_MATH_BARRIERS_H
#define M68K_MATH_BARRIERS_H 1
diff --git a/sysdeps/m68k/m680x0/fpu/math_err.c b/sysdeps/m68k/m680x0/fpu/math_err.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/m68k/m680x0/fpu/math_err.c
@@ -0,0 +1 @@
+/* Not needed. */
diff --git a/sysdeps/m68k/m680x0/fpu/mathimpl.h b/sysdeps/m68k/m680x0/fpu/mathimpl.h
index 848f9cffaa..f6a1d13fd2 100644
--- a/sysdeps/m68k/m680x0/fpu/mathimpl.h
+++ b/sysdeps/m68k/m680x0/fpu/mathimpl.h
@@ -1,6 +1,6 @@
/* Definitions of libc internal inline math functions implemented
by the m68881/2.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file contains the definitions of the inline math functions that
are only used internally inside libm, not visible to the user. */
diff --git a/sysdeps/m68k/m680x0/fpu/s_atan_template.c b/sysdeps/m68k/m680x0/fpu/s_atan_template.c
index 8696a65105..f09e501807 100644
--- a/sysdeps/m68k/m680x0/fpu/s_atan_template.c
+++ b/sysdeps/m68k/m680x0/fpu/s_atan_template.c
@@ -1,5 +1,5 @@
/* Implement atan for m68k.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/m68k/m680x0/fpu/s_ccosh_template.c b/sysdeps/m68k/m680x0/fpu/s_ccosh_template.c
index 23308a20c3..4a46687df8 100644
--- a/sysdeps/m68k/m680x0/fpu/s_ccosh_template.c
+++ b/sysdeps/m68k/m680x0/fpu/s_ccosh_template.c
@@ -1,5 +1,5 @@
/* Complex cosine hyperbole function. m68k fpu version
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <complex.h>
#include <math.h>
diff --git a/sysdeps/m68k/m680x0/fpu/s_ceil_template.c b/sysdeps/m68k/m680x0/fpu/s_ceil_template.c
index a4d032d90c..6209f9b187 100644
--- a/sysdeps/m68k/m680x0/fpu/s_ceil_template.c
+++ b/sysdeps/m68k/m680x0/fpu/s_ceil_template.c
@@ -1,5 +1,5 @@
/* Implement ceil for m68k.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,8 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
FLOAT
diff --git a/sysdeps/m68k/m680x0/fpu/s_cexp_template.c b/sysdeps/m68k/m680x0/fpu/s_cexp_template.c
index 02de829470..a81f160b48 100644
--- a/sysdeps/m68k/m680x0/fpu/s_cexp_template.c
+++ b/sysdeps/m68k/m680x0/fpu/s_cexp_template.c
@@ -1,5 +1,5 @@
/* Complex exponential function. m68k fpu version
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <float.h>
#include <complex.h>
@@ -93,6 +93,7 @@ s(__cexp) (CFLOAT x)
break;
case 2:
__real__ retval = -__real__ retval;
+ /* Fall through. */
case 3:
__imag__ retval = -__imag__ retval;
break;
diff --git a/sysdeps/m68k/m680x0/fpu/s_cos_template.c b/sysdeps/m68k/m680x0/fpu/s_cos_template.c
index a2574debdc..61ce7bf7c9 100644
--- a/sysdeps/m68k/m680x0/fpu/s_cos_template.c
+++ b/sysdeps/m68k/m680x0/fpu/s_cos_template.c
@@ -1,5 +1,5 @@
/* Implement cos for m68k.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <errno.h>
diff --git a/sysdeps/m68k/m680x0/fpu/s_csin_template.c b/sysdeps/m68k/m680x0/fpu/s_csin_template.c
index 1ea0b1bb77..422bfc987a 100644
--- a/sysdeps/m68k/m680x0/fpu/s_csin_template.c
+++ b/sysdeps/m68k/m680x0/fpu/s_csin_template.c
@@ -1,5 +1,5 @@
/* Complex sine function. m68k fpu version
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <complex.h>
#include <math.h>
diff --git a/sysdeps/m68k/m680x0/fpu/s_csinh_template.c b/sysdeps/m68k/m680x0/fpu/s_csinh_template.c
index 26c41a290d..b6abcf0505 100644
--- a/sysdeps/m68k/m680x0/fpu/s_csinh_template.c
+++ b/sysdeps/m68k/m680x0/fpu/s_csinh_template.c
@@ -1,5 +1,5 @@
/* Complex sine hyperbole function. m68k fpu version
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <complex.h>
#include <math.h>
diff --git a/sysdeps/m68k/m680x0/fpu/s_expm1.c b/sysdeps/m68k/m680x0/fpu/s_expm1.c
index 3f9b4660a3..c8bdc83e95 100644
--- a/sysdeps/m68k/m680x0/fpu/s_expm1.c
+++ b/sysdeps/m68k/m680x0/fpu/s_expm1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math-type-macros-double.h>
#define o_threshold 7.09782712893383973096e+02
diff --git a/sysdeps/m68k/m680x0/fpu/s_expm1_template.c b/sysdeps/m68k/m680x0/fpu/s_expm1_template.c
index f055f7781a..0159062b49 100644
--- a/sysdeps/m68k/m680x0/fpu/s_expm1_template.c
+++ b/sysdeps/m68k/m680x0/fpu/s_expm1_template.c
@@ -1,5 +1,5 @@
/* Implement expm1 for m68k.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <errno.h>
diff --git a/sysdeps/m68k/m680x0/fpu/s_fabs_template.c b/sysdeps/m68k/m680x0/fpu/s_fabs_template.c
index 8af749a3f3..2dd2ce3fb0 100644
--- a/sysdeps/m68k/m680x0/fpu/s_fabs_template.c
+++ b/sysdeps/m68k/m680x0/fpu/s_fabs_template.c
@@ -1,5 +1,5 @@
/* Implement fabs for m68k.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/m68k/m680x0/fpu/s_floor_template.c b/sysdeps/m68k/m680x0/fpu/s_floor_template.c
index 7779813d84..19e1338336 100644
--- a/sysdeps/m68k/m680x0/fpu/s_floor_template.c
+++ b/sysdeps/m68k/m680x0/fpu/s_floor_template.c
@@ -1,5 +1,5 @@
/* Implement floor for m68k.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,8 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
FLOAT
diff --git a/sysdeps/m68k/m680x0/fpu/s_fpclassifyl.c b/sysdeps/m68k/m680x0/fpu/s_fpclassifyl.c
index 657fe0c476..bfa8ae102b 100644
--- a/sysdeps/m68k/m680x0/fpu/s_fpclassifyl.c
+++ b/sysdeps/m68k/m680x0/fpu/s_fpclassifyl.c
@@ -1,5 +1,5 @@
/* Return classification value corresponding to argument. m68k version.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
Fixed for m68k by Andreas Schwab <schwab@suse.de>.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/m68k/m680x0/fpu/s_frexp_template.c b/sysdeps/m68k/m680x0/fpu/s_frexp_template.c
index 5036433766..d0feabad44 100644
--- a/sysdeps/m68k/m680x0/fpu/s_frexp_template.c
+++ b/sysdeps/m68k/m680x0/fpu/s_frexp_template.c
@@ -1,5 +1,5 @@
/* Implement frexp for m68k.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/m68k/m680x0/fpu/s_frexpl.c b/sysdeps/m68k/m680x0/fpu/s_frexpl.c
index 44e67bf8d7..f92430b430 100644
--- a/sysdeps/m68k/m680x0/fpu/s_frexpl.c
+++ b/sysdeps/m68k/m680x0/fpu/s_frexpl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/m68k/m680x0/fpu/s_isinf.c b/sysdeps/m68k/m680x0/fpu/s_isinf.c
index 339db1f9f4..13ca3a3dd3 100644
--- a/sysdeps/m68k/m680x0/fpu/s_isinf.c
+++ b/sysdeps/m68k/m680x0/fpu/s_isinf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/m68k/m680x0/fpu/s_llrint.c b/sysdeps/m68k/m680x0/fpu/s_llrint.c
index 6ca1875869..0aedb7f3d7 100644
--- a/sysdeps/m68k/m680x0/fpu/s_llrint.c
+++ b/sysdeps/m68k/m680x0/fpu/s_llrint.c
@@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/m68k/m680x0/fpu/s_llrintf.c b/sysdeps/m68k/m680x0/fpu/s_llrintf.c
index f972cf99f1..5ccfab9d5a 100644
--- a/sysdeps/m68k/m680x0/fpu/s_llrintf.c
+++ b/sysdeps/m68k/m680x0/fpu/s_llrintf.c
@@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/m68k/m680x0/fpu/s_llrintl.c b/sysdeps/m68k/m680x0/fpu/s_llrintl.c
index 9caa46f98a..f9888b7c56 100644
--- a/sysdeps/m68k/m680x0/fpu/s_llrintl.c
+++ b/sysdeps/m68k/m680x0/fpu/s_llrintl.c
@@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/m68k/m680x0/fpu/s_log1p.c b/sysdeps/m68k/m680x0/fpu/s_log1p.c
index 5da96c5834..05a378dd64 100644
--- a/sysdeps/m68k/m680x0/fpu/s_log1p.c
+++ b/sysdeps/m68k/m680x0/fpu/s_log1p.c
@@ -1,5 +1,5 @@
/* Implement logp1 for m68k.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/m68k/m680x0/fpu/s_lrint_template.c b/sysdeps/m68k/m680x0/fpu/s_lrint_template.c
index 6a531789d2..2ecf1b2a24 100644
--- a/sysdeps/m68k/m680x0/fpu/s_lrint_template.c
+++ b/sysdeps/m68k/m680x0/fpu/s_lrint_template.c
@@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/m68k/m680x0/fpu/s_modf_template.c b/sysdeps/m68k/m680x0/fpu/s_modf_template.c
index a6f51bd6d7..778e044a56 100644
--- a/sysdeps/m68k/m680x0/fpu/s_modf_template.c
+++ b/sysdeps/m68k/m680x0/fpu/s_modf_template.c
@@ -1,5 +1,5 @@
/* Implement modf for m68k.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include "mathimpl.h"
diff --git a/sysdeps/m68k/m680x0/fpu/s_nearbyint_template.c b/sysdeps/m68k/m680x0/fpu/s_nearbyint_template.c
index 971511321b..51492556da 100644
--- a/sysdeps/m68k/m680x0/fpu/s_nearbyint_template.c
+++ b/sysdeps/m68k/m680x0/fpu/s_nearbyint_template.c
@@ -1,5 +1,5 @@
/* Implement nearbyint for m68k.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/m68k/m680x0/fpu/s_remquo_template.c b/sysdeps/m68k/m680x0/fpu/s_remquo_template.c
index e7c7be6271..c709792b9e 100644
--- a/sysdeps/m68k/m680x0/fpu/s_remquo_template.c
+++ b/sysdeps/m68k/m680x0/fpu/s_remquo_template.c
@@ -1,5 +1,5 @@
/* Compute remainder and a congruent to the quotient. m68k fpu version
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/m68k/m680x0/fpu/s_rint.c b/sysdeps/m68k/m680x0/fpu/s_rint.c
index fa092c07eb..cc88900d68 100644
--- a/sysdeps/m68k/m680x0/fpu/s_rint.c
+++ b/sysdeps/m68k/m680x0/fpu/s_rint.c
@@ -1,2 +1,3 @@
+#define NO_MATH_REDIRECT
#include <math-type-macros-double.h>
#include <s_rint_template.c>
diff --git a/sysdeps/m68k/m680x0/fpu/s_rint_template.c b/sysdeps/m68k/m680x0/fpu/s_rint_template.c
index 4f4ef12aab..d9cae49758 100644
--- a/sysdeps/m68k/m680x0/fpu/s_rint_template.c
+++ b/sysdeps/m68k/m680x0/fpu/s_rint_template.c
@@ -1,5 +1,5 @@
/* Implement rint for m68k.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/m68k/m680x0/fpu/s_rintf.c b/sysdeps/m68k/m680x0/fpu/s_rintf.c
index 5cda19c690..70d6be93b0 100644
--- a/sysdeps/m68k/m680x0/fpu/s_rintf.c
+++ b/sysdeps/m68k/m680x0/fpu/s_rintf.c
@@ -1,2 +1,3 @@
+#define NO_MATH_REDIRECT
#include <math-type-macros-float.h>
#include <s_rint_template.c>
diff --git a/sysdeps/m68k/m680x0/fpu/s_rintl.c b/sysdeps/m68k/m680x0/fpu/s_rintl.c
index df393ee895..c6492015b4 100644
--- a/sysdeps/m68k/m680x0/fpu/s_rintl.c
+++ b/sysdeps/m68k/m680x0/fpu/s_rintl.c
@@ -1,2 +1,3 @@
+#define NO_MATH_REDIRECT
#include <math-type-macros-ldouble.h>
#include <s_rint_template.c>
diff --git a/sysdeps/m68k/m680x0/fpu/s_scalbn.c b/sysdeps/m68k/m680x0/fpu/s_scalbn.c
index eed3a351fe..2a350c5907 100644
--- a/sysdeps/m68k/m680x0/fpu/s_scalbn.c
+++ b/sysdeps/m68k/m680x0/fpu/s_scalbn.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define scalbln __no_scalbln_decl
#define scalblnf __no_scalblnf_decl
diff --git a/sysdeps/m68k/m680x0/fpu/s_significand.c b/sysdeps/m68k/m680x0/fpu/s_significand.c
index 3259d4ee6a..c2e57c4e6c 100644
--- a/sysdeps/m68k/m680x0/fpu/s_significand.c
+++ b/sysdeps/m68k/m680x0/fpu/s_significand.c
@@ -1,5 +1,5 @@
/* Implement significand for m68k.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define FUNC significand
#include <s_log1p.c>
diff --git a/sysdeps/m68k/m680x0/fpu/s_sin_template.c b/sysdeps/m68k/m680x0/fpu/s_sin_template.c
index 6872889710..e962a36a55 100644
--- a/sysdeps/m68k/m680x0/fpu/s_sin_template.c
+++ b/sysdeps/m68k/m680x0/fpu/s_sin_template.c
@@ -1,5 +1,5 @@
/* Implement sin for m68k.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <errno.h>
diff --git a/sysdeps/m68k/m680x0/fpu/s_sincos_template.c b/sysdeps/m68k/m680x0/fpu/s_sincos_template.c
index 5d2af7e4ba..b54597cb6f 100644
--- a/sysdeps/m68k/m680x0/fpu/s_sincos_template.c
+++ b/sysdeps/m68k/m680x0/fpu/s_sincos_template.c
@@ -1,5 +1,5 @@
/* Implement sincos for m68k.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/m68k/m680x0/fpu/s_sincosf_data.c b/sysdeps/m68k/m680x0/fpu/s_sincosf_data.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/sysdeps/m68k/m680x0/fpu/s_sincosf_data.c
@@ -0,0 +1 @@
+/* Not needed. */
diff --git a/sysdeps/m68k/m680x0/fpu/s_tan_template.c b/sysdeps/m68k/m680x0/fpu/s_tan_template.c
index 54ec165f90..aa5c1f5aef 100644
--- a/sysdeps/m68k/m680x0/fpu/s_tan_template.c
+++ b/sysdeps/m68k/m680x0/fpu/s_tan_template.c
@@ -1,5 +1,5 @@
/* Implement tan for m68k.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <errno.h>
diff --git a/sysdeps/m68k/m680x0/fpu/s_tanh_template.c b/sysdeps/m68k/m680x0/fpu/s_tanh_template.c
index e7122a651c..897f778763 100644
--- a/sysdeps/m68k/m680x0/fpu/s_tanh_template.c
+++ b/sysdeps/m68k/m680x0/fpu/s_tanh_template.c
@@ -1,5 +1,5 @@
/* Implement tanh for m68k.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/m68k/m680x0/fpu/s_trunc_template.c b/sysdeps/m68k/m680x0/fpu/s_trunc_template.c
index 39a6822cfb..33e18fb789 100644
--- a/sysdeps/m68k/m680x0/fpu/s_trunc_template.c
+++ b/sysdeps/m68k/m680x0/fpu/s_trunc_template.c
@@ -1,5 +1,5 @@
/* Implement trunc for m68k.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,8 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
FLOAT
diff --git a/sysdeps/m68k/m680x0/fpu/t_exp.c b/sysdeps/m68k/m680x0/fpu/t_exp.c
deleted file mode 100644
index fd37963b05..0000000000
--- a/sysdeps/m68k/m680x0/fpu/t_exp.c
+++ /dev/null
@@ -1 +0,0 @@
-/* Empty. Not needed. */
diff --git a/sysdeps/m68k/m680x0/fpu/w_exp.c b/sysdeps/m68k/m680x0/fpu/w_exp.c
new file mode 100644
index 0000000000..27eee98a0a
--- /dev/null
+++ b/sysdeps/m68k/m680x0/fpu/w_exp.c
@@ -0,0 +1 @@
+#include <sysdeps/../math/w_exp.c>
diff --git a/sysdeps/m68k/m680x0/fpu/w_exp2.c b/sysdeps/m68k/m680x0/fpu/w_exp2.c
new file mode 100644
index 0000000000..e0636a7ceb
--- /dev/null
+++ b/sysdeps/m68k/m680x0/fpu/w_exp2.c
@@ -0,0 +1 @@
+#include <sysdeps/../math/w_exp2.c>
diff --git a/sysdeps/m68k/m680x0/fpu/w_log.c b/sysdeps/m68k/m680x0/fpu/w_log.c
new file mode 100644
index 0000000000..9b2b018711
--- /dev/null
+++ b/sysdeps/m68k/m680x0/fpu/w_log.c
@@ -0,0 +1 @@
+#include <sysdeps/../math/w_log.c>
diff --git a/sysdeps/m68k/m680x0/fpu/w_log2.c b/sysdeps/m68k/m680x0/fpu/w_log2.c
new file mode 100644
index 0000000000..eafbe5cf3e
--- /dev/null
+++ b/sysdeps/m68k/m680x0/fpu/w_log2.c
@@ -0,0 +1 @@
+#include <sysdeps/../math/w_log2.c>
diff --git a/sysdeps/m68k/m680x0/fpu/w_pow.c b/sysdeps/m68k/m680x0/fpu/w_pow.c
new file mode 100644
index 0000000000..b50c1988de
--- /dev/null
+++ b/sysdeps/m68k/m680x0/fpu/w_pow.c
@@ -0,0 +1 @@
+#include <sysdeps/../math/w_pow.c>
diff --git a/sysdeps/m68k/m680x0/lshift.S b/sysdeps/m68k/m680x0/lshift.S
index bba11c46dc..e250cdb5ba 100644
--- a/sysdeps/m68k/m680x0/lshift.S
+++ b/sysdeps/m68k/m680x0/lshift.S
@@ -1,6 +1,6 @@
/* mc68020 __mpn_lshift -- Shift left a low-level natural-number integer.
-Copyright (C) 1996-2018 Free Software Foundation, Inc.
+Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -15,7 +15,7 @@ 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 MP Library. If not, see <http://www.gnu.org/licenses/>. */
+along with the GNU MP Library. If not, see <https://www.gnu.org/licenses/>. */
/*
INPUT PARAMETERS
diff --git a/sysdeps/m68k/m680x0/m68020/addmul_1.S b/sysdeps/m68k/m680x0/m68020/addmul_1.S
index 2eee6d1543..64f6ca380f 100644
--- a/sysdeps/m68k/m680x0/m68020/addmul_1.S
+++ b/sysdeps/m68k/m680x0/m68020/addmul_1.S
@@ -1,7 +1,7 @@
/* mc68020 __mpn_addmul_1 -- Multiply a limb vector with a limb and add
the result to a second limb vector.
-Copyright (C) 1992-2018 Free Software Foundation, Inc.
+Copyright (C) 1992-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -16,7 +16,7 @@ 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 MP Library. If not, see <http://www.gnu.org/licenses/>. */
+along with the GNU MP Library. If not, see <https://www.gnu.org/licenses/>. */
/*
INPUT PARAMETERS
diff --git a/sysdeps/m68k/m680x0/m68020/atomic-machine.h b/sysdeps/m68k/m680x0/m68020/atomic-machine.h
index 1bc695d418..79d818a821 100644
--- a/sysdeps/m68k/m680x0/m68020/atomic-machine.h
+++ b/sysdeps/m68k/m680x0/m68020/atomic-machine.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/sysdeps/m68k/m680x0/m68020/mul_1.S b/sysdeps/m68k/m680x0/m68020/mul_1.S
index 2d7720672e..014bcff77a 100644
--- a/sysdeps/m68k/m680x0/m68020/mul_1.S
+++ b/sysdeps/m68k/m680x0/m68020/mul_1.S
@@ -1,7 +1,7 @@
/* mc68020 __mpn_mul_1 -- Multiply a limb vector with a limb and store
the result in a second limb vector.
-Copyright (C) 1992-2018 Free Software Foundation, Inc.
+Copyright (C) 1992-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -16,7 +16,7 @@ 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 MP Library. If not, see <http://www.gnu.org/licenses/>. */
+along with the GNU MP Library. If not, see <https://www.gnu.org/licenses/>. */
/*
INPUT PARAMETERS
diff --git a/sysdeps/m68k/m680x0/m68020/string_private.h b/sysdeps/m68k/m680x0/m68020/string_private.h
index 3c372a18b3..2e0f86464e 100644
--- a/sysdeps/m68k/m680x0/m68020/string_private.h
+++ b/sysdeps/m68k/m680x0/m68020/string_private.h
@@ -1,5 +1,5 @@
/* Define _STRING_ARCH_unaligned. m680x0 version, x >= 2.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Tell the generic inline macros that unaligned memory access is
possible. */
diff --git a/sysdeps/m68k/m680x0/m68020/submul_1.S b/sysdeps/m68k/m680x0/m68020/submul_1.S
index edb0975e6d..4166c30377 100644
--- a/sysdeps/m68k/m680x0/m68020/submul_1.S
+++ b/sysdeps/m68k/m680x0/m68020/submul_1.S
@@ -1,7 +1,7 @@
/* mc68020 __mpn_submul_1 -- Multiply a limb vector with a limb and subtract
the result from a second limb vector.
-Copyright (C) 1992-2018 Free Software Foundation, Inc.
+Copyright (C) 1992-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -16,7 +16,7 @@ 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 MP Library. If not, see <http://www.gnu.org/licenses/>. */
+along with the GNU MP Library. If not, see <https://www.gnu.org/licenses/>. */
/*
INPUT PARAMETERS
diff --git a/sysdeps/m68k/m680x0/rshift.S b/sysdeps/m68k/m680x0/rshift.S
index db9d60b3db..a915c5f9de 100644
--- a/sysdeps/m68k/m680x0/rshift.S
+++ b/sysdeps/m68k/m680x0/rshift.S
@@ -1,6 +1,6 @@
/* mc68020 __mpn_rshift -- Shift right a low-level natural-number integer.
-Copyright (C) 1996-2018 Free Software Foundation, Inc.
+Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -15,7 +15,7 @@ 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 MP Library. If not, see <http://www.gnu.org/licenses/>. */
+along with the GNU MP Library. If not, see <https://www.gnu.org/licenses/>. */
/*
INPUT PARAMETERS
diff --git a/sysdeps/m68k/m680x0/sub_n.S b/sysdeps/m68k/m680x0/sub_n.S
index 5e7732e3af..71d09bab6e 100644
--- a/sysdeps/m68k/m680x0/sub_n.S
+++ b/sysdeps/m68k/m680x0/sub_n.S
@@ -1,7 +1,7 @@
/* mc68020 __mpn_sub_n -- Subtract two limb vectors of the same length > 0 and
store difference in a third limb vector.
-Copyright (C) 1992-2018 Free Software Foundation, Inc.
+Copyright (C) 1992-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -16,7 +16,7 @@ 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 MP Library. If not, see <http://www.gnu.org/licenses/>. */
+along with the GNU MP Library. If not, see <https://www.gnu.org/licenses/>. */
/*
INPUT PARAMETERS
diff --git a/sysdeps/m68k/m680x0/sysdep.h b/sysdeps/m68k/m680x0/sysdep.h
index 5430f4236e..06dd31d869 100644
--- a/sysdeps/m68k/m680x0/sysdep.h
+++ b/sysdeps/m68k/m680x0/sysdep.h
@@ -1,5 +1,5 @@
/* Assembler macros for m680x0.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/m68k/sysdep.h>
diff --git a/sysdeps/m68k/memchr.S b/sysdeps/m68k/memchr.S
index 89cd8f6e91..e8ec8eeaa0 100644
--- a/sysdeps/m68k/memchr.S
+++ b/sysdeps/m68k/memchr.S
@@ -1,7 +1,7 @@
/* memchr (str, ch, n) -- Return pointer to first occurrence of CH in the
first N bytes of STR.
For Motorola 68000.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@gnu.org>.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "asm-syntax.h"
diff --git a/sysdeps/m68k/memcopy.h b/sysdeps/m68k/memcopy.h
index 58569c61c2..7b0119e41c 100644
--- a/sysdeps/m68k/memcopy.h
+++ b/sysdeps/m68k/memcopy.h
@@ -1,5 +1,5 @@
/* memcopy.h -- definitions for memory copy functions. Motorola 68020 version.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/generic/memcopy.h>
@@ -39,20 +39,28 @@
do \
{ \
((op_t *) dst_bp)[0] = ((op_t *) src_bp)[0]; \
+ /* Fall through. */ \
case 7: \
((op_t *) dst_bp)[1] = ((op_t *) src_bp)[1]; \
+ /* Fall through. */ \
case 6: \
((op_t *) dst_bp)[2] = ((op_t *) src_bp)[2]; \
+ /* Fall through. */ \
case 5: \
((op_t *) dst_bp)[3] = ((op_t *) src_bp)[3]; \
+ /* Fall through. */ \
case 4: \
((op_t *) dst_bp)[4] = ((op_t *) src_bp)[4]; \
+ /* Fall through. */ \
case 3: \
((op_t *) dst_bp)[5] = ((op_t *) src_bp)[5]; \
+ /* Fall through. */ \
case 2: \
((op_t *) dst_bp)[6] = ((op_t *) src_bp)[6]; \
+ /* Fall through. */ \
case 1: \
((op_t *) dst_bp)[7] = ((op_t *) src_bp)[7]; \
+ /* Fall through. */ \
case 0: \
src_bp += 32; \
dst_bp += 32; \
@@ -73,20 +81,28 @@
do \
{ \
*--__dst_ep = *--__src_ep; \
+ /* Fall through. */ \
case 7: \
*--__dst_ep = *--__src_ep; \
+ /* Fall through. */ \
case 6: \
*--__dst_ep = *--__src_ep; \
+ /* Fall through. */ \
case 5: \
*--__dst_ep = *--__src_ep; \
+ /* Fall through. */ \
case 4: \
*--__dst_ep = *--__src_ep; \
+ /* Fall through. */ \
case 3: \
*--__dst_ep = *--__src_ep; \
+ /* Fall through. */ \
case 2: \
*--__dst_ep = *--__src_ep; \
+ /* Fall through. */ \
case 1: \
*--__dst_ep = *--__src_ep; \
+ /* Fall through. */ \
case 0: \
__nblocks--; \
} \
diff --git a/sysdeps/m68k/memusage.h b/sysdeps/m68k/memusage.h
index eb88e203d7..ff8a46685c 100644
--- a/sysdeps/m68k/memusage.h
+++ b/sysdeps/m68k/memusage.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define GETSP() ({ register uintptr_t stack_ptr asm ("%sp"); stack_ptr; })
diff --git a/sysdeps/m68k/nptl/Makefile b/sysdeps/m68k/nptl/Makefile
index 97126b5971..1995fa97bf 100644
--- a/sysdeps/m68k/nptl/Makefile
+++ b/sysdeps/m68k/nptl/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2018 Free Software Foundation, Inc.
+# Copyright (C) 2010-2019 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# Contributed by Maxim Kuvyrkov <maxim@codesourcery.com>, 2010.
#
@@ -14,7 +14,7 @@
#
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library. If not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
ifeq ($(subdir),csu)
gen-as-const-headers += tcb-offsets.sym
diff --git a/sysdeps/m68k/nptl/bits/pthreadtypes-arch.h b/sysdeps/m68k/nptl/bits/pthreadtypes-arch.h
index 53e2d01db8..fe3ac611f8 100644
--- a/sysdeps/m68k/nptl/bits/pthreadtypes-arch.h
+++ b/sysdeps/m68k/nptl/bits/pthreadtypes-arch.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Maxim Kuvyrkov <maxim@codesourcery.com>, 2010.
@@ -14,12 +14,12 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_PTHREADTYPES_ARCH_H
#define _BITS_PTHREADTYPES_ARCH_H 1
-#include <endian.h>
+#include <bits/endian.h>
#define __SIZEOF_PTHREAD_ATTR_T 36
#define __SIZEOF_PTHREAD_MUTEX_T 24
@@ -31,33 +31,7 @@
#define __SIZEOF_PTHREAD_BARRIER_T 20
#define __SIZEOF_PTHREAD_BARRIERATTR_T 4
-/* Data structure for mutex handling. */
-#define __PTHREAD_COMPAT_PADDING_MID
-#define __PTHREAD_COMPAT_PADDING_END
-#define __PTHREAD_MUTEX_LOCK_ELISION 0
-#define __PTHREAD_MUTEX_NUSERS_AFTER_KIND 1
-#define __PTHREAD_MUTEX_USE_UNION 1
-
#define __LOCK_ALIGNMENT __attribute__ ((__aligned__ (4)))
#define __ONCE_ALIGNMENT __attribute__ ((__aligned__ (4)))
-struct __pthread_rwlock_arch_t
-{
- unsigned int __readers __attribute__ ((__aligned__ (4)));
- unsigned int __writers;
- unsigned int __wrphase_futex;
- unsigned int __writers_futex;
- unsigned int __pad3;
- unsigned int __pad4;
- unsigned char __pad1;
- unsigned char __pad2;
- unsigned char __shared;
- /* FLAGS must stay at this position in the structure to maintain
- binary compatibility. */
- unsigned char __flags;
- int __cur_writer;
-};
-
-#define __PTHREAD_RWLOCK_ELISION_EXTRA 0
-
#endif /* bits/pthreadtypes.h */
diff --git a/sysdeps/m68k/nptl/bits/semaphore.h b/sysdeps/m68k/nptl/bits/semaphore.h
index 56c1fb3cee..07184c8eaa 100644
--- a/sysdeps/m68k/nptl/bits/semaphore.h
+++ b/sysdeps/m68k/nptl/bits/semaphore.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Maxim Kuvyrkov <maxim@codesourcery.com>, 2010.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SEMAPHORE_H
# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
diff --git a/sysdeps/m68k/nptl/pthread-offsets.h b/sysdeps/m68k/nptl/pthread-offsets.h
deleted file mode 100644
index 9617354dc7..0000000000
--- a/sysdeps/m68k/nptl/pthread-offsets.h
+++ /dev/null
@@ -1,5 +0,0 @@
-#define __PTHREAD_MUTEX_NUSERS_OFFSET 16
-#define __PTHREAD_MUTEX_KIND_OFFSET 12
-#define __PTHREAD_MUTEX_SPINS_OFFSET 20
-#define __PTHREAD_MUTEX_ELISION_OFFSET 22
-#define __PTHREAD_MUTEX_LIST_OFFSET 20
diff --git a/sysdeps/m68k/nptl/pthreaddef.h b/sysdeps/m68k/nptl/pthreaddef.h
index 68fc37a394..559d7bcfd9 100644
--- a/sysdeps/m68k/nptl/pthreaddef.h
+++ b/sysdeps/m68k/nptl/pthreaddef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Maxim Kuvyrkov <maxim@codesourcery.com>, 2010.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Default stack size. */
#define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024)
diff --git a/sysdeps/m68k/nptl/tls.h b/sysdeps/m68k/nptl/tls.h
index 53be3a02cc..52f7c9b82b 100644
--- a/sysdeps/m68k/nptl/tls.h
+++ b/sysdeps/m68k/nptl/tls.h
@@ -1,5 +1,5 @@
/* Definition for thread-local data handling. NPTL/m68k version.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Maxim Kuvyrkov <maxim@codesourcery.com>, 2010.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _TLS_H
#define _TLS_H 1
diff --git a/sysdeps/m68k/rawmemchr.S b/sysdeps/m68k/rawmemchr.S
index 3fba31ec4f..912f347a20 100644
--- a/sysdeps/m68k/rawmemchr.S
+++ b/sysdeps/m68k/rawmemchr.S
@@ -1,6 +1,6 @@
/* rawmemchr (str, ch) -- Return pointer to first occurrence of CH in STR.
For Motorola 68000.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@gnu.org>.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "asm-syntax.h"
diff --git a/sysdeps/m68k/setjmp.c b/sysdeps/m68k/setjmp.c
index 650367f795..a26cd0f442 100644
--- a/sysdeps/m68k/setjmp.c
+++ b/sysdeps/m68k/setjmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <setjmp.h>
diff --git a/sysdeps/m68k/sotruss-lib.c b/sysdeps/m68k/sotruss-lib.c
index e6988379d3..5df364fa17 100644
--- a/sysdeps/m68k/sotruss-lib.c
+++ b/sysdeps/m68k/sotruss-lib.c
@@ -1,5 +1,5 @@
/* Override generic sotruss-lib.c to define actual functions for m68k.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define HAVE_ARCH_PLTENTER
#define HAVE_ARCH_PLTEXIT
diff --git a/sysdeps/m68k/stackinfo.h b/sysdeps/m68k/stackinfo.h
index e700508422..fc02f22531 100644
--- a/sysdeps/m68k/stackinfo.h
+++ b/sysdeps/m68k/stackinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file contains a bit of information about the stack allocation
of the processor. */
diff --git a/sysdeps/m68k/start.S b/sysdeps/m68k/start.S
index 7bab3e1cde..5e537fc334 100644
--- a/sysdeps/m68k/start.S
+++ b/sysdeps/m68k/start.S
@@ -1,5 +1,5 @@
/* Startup code compliant to the ELF m68k ABI.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This is the canonical entry point, usually the first thing in the text
segment. The SVR4/m68k ABI says that when the entry point runs,
diff --git a/sysdeps/m68k/strchr.S b/sysdeps/m68k/strchr.S
index e2f97f97f5..8853b5f43c 100644
--- a/sysdeps/m68k/strchr.S
+++ b/sysdeps/m68k/strchr.S
@@ -1,6 +1,6 @@
/* strchr (str, ch) -- Return pointer to first occurrence of CH in STR.
For Motorola 68000.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@gnu.org>.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "asm-syntax.h"
diff --git a/sysdeps/m68k/strchrnul.S b/sysdeps/m68k/strchrnul.S
index ea157555c1..60e3ccaf64 100644
--- a/sysdeps/m68k/strchrnul.S
+++ b/sysdeps/m68k/strchrnul.S
@@ -1,7 +1,7 @@
/* strchrnul (str, ch) -- Return pointer to first occurrence of CH in STR
or the final NUL byte.
For Motorola 68000.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@gnu.org>.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "asm-syntax.h"
diff --git a/sysdeps/m68k/symbol-hacks.h b/sysdeps/m68k/symbol-hacks.h
index 3b5b71ccbe..77fe4c8cde 100644
--- a/sysdeps/m68k/symbol-hacks.h
+++ b/sysdeps/m68k/symbol-hacks.h
@@ -1,5 +1,5 @@
/* Hacks needed for symbol manipulation. m68k version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/wordsize-32/divdi3-symbol-hacks.h>
diff --git a/sysdeps/m68k/sys/ucontext.h b/sysdeps/m68k/sys/ucontext.h
index 7b723d6862..457a67512c 100644
--- a/sysdeps/m68k/sys/ucontext.h
+++ b/sysdeps/m68k/sys/ucontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* System V/m68k ABI compliant context switching support. */
diff --git a/sysdeps/m68k/sysdep.h b/sysdeps/m68k/sysdep.h
index 0ecb3eae9f..0e25d91462 100644
--- a/sysdeps/m68k/sysdep.h
+++ b/sysdeps/m68k/sysdep.h
@@ -1,5 +1,5 @@
/* Assembler macros for m68k.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/generic/sysdep.h>
diff --git a/sysdeps/m68k/tls-macros.h b/sysdeps/m68k/tls-macros.h
index cf4a78cf97..f880a8cf69 100644
--- a/sysdeps/m68k/tls-macros.h
+++ b/sysdeps/m68k/tls-macros.h
@@ -1,5 +1,5 @@
/* Macros for accessing thread-local storage. m68k version.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Maxim Kuvyrkov <maxim@codesourcery.com>, 2010.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TLS_GD(x) \
({ \
diff --git a/sysdeps/m68k/tst-audit.h b/sysdeps/m68k/tst-audit.h
index d4d7369458..7f6c5fbae2 100644
--- a/sysdeps/m68k/tst-audit.h
+++ b/sysdeps/m68k/tst-audit.h
@@ -1,5 +1,5 @@
/* Definitions for testing PLT entry/exit auditing. m68k version.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define pltenter la_m68k_gnu_pltenter
#define pltexit la_m68k_gnu_pltexit
diff --git a/sysdeps/m68k/wcpcpy.c b/sysdeps/m68k/wcpcpy.c
deleted file mode 100644
index b87ccb69c5..0000000000
--- a/sysdeps/m68k/wcpcpy.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1996.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-/* The generic version of this file assumes that __alignof__(wchar_t) ==
- sizeof (wchar_t). We therefore use this port-specific implementation
- instead. */
-#include <wchar.h>
-
-/* Copy SRC to DEST, returning the address of the terminating L'\0' in
- DEST. */
-wchar_t *
-__wcpcpy (wchar_t *dest, const wchar_t *src)
-{
- do
- ;
- while ((*dest++ = *src++));
-
- return dest - 1;
-}
-
-weak_alias (__wcpcpy, wcpcpy)
diff --git a/sysdeps/m68k/wcpcpy_chk.c b/sysdeps/m68k/wcpcpy_chk.c
index c440af63c9..6192c78756 100644
--- a/sysdeps/m68k/wcpcpy_chk.c
+++ b/sysdeps/m68k/wcpcpy_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* The generic version of this file assumes that __alignof__(wchar_t) ==
sizeof (wchar_t). We therefore use this port-specific implementation
diff --git a/sysdeps/mach/Makefile b/sysdeps/mach/Makefile
index 475894b046..5808f51abc 100644
--- a/sysdeps/mach/Makefile
+++ b/sysdeps/mach/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1993-2018 Free Software Foundation, Inc.
+# Copyright (C) 1993-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
ifdef in-Makerules
diff --git a/sysdeps/mach/_strerror.c b/sysdeps/mach/_strerror.c
index 3ce7e5569c..d4d97929e5 100644
--- a/sysdeps/mach/_strerror.c
+++ b/sysdeps/mach/_strerror.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libintl.h>
#include <stdio.h>
diff --git a/sysdeps/mach/adjtime.c b/sysdeps/mach/adjtime.c
index 11c22c55b7..2060b0c11d 100644
--- a/sysdeps/mach/adjtime.c
+++ b/sysdeps/mach/adjtime.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/time.h>
diff --git a/sysdeps/mach/clock_gettime.c b/sysdeps/mach/clock_gettime.c
new file mode 100644
index 0000000000..0f872e5a45
--- /dev/null
+++ b/sysdeps/mach/clock_gettime.c
@@ -0,0 +1,51 @@
+/* Copyright (C) 1991-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <time.h>
+#include <mach.h>
+#include <shlib-compat.h>
+
+/* Get the current time of day, putting it into *TS.
+ Returns 0 on success, -1 on errors. */
+int
+__clock_gettime (clockid_t clock_id, struct timespec *ts)
+{
+ if (clock_id != CLOCK_REALTIME)
+ {
+ errno = EINVAL;
+ return -1;
+ }
+
+ /* __host_get_time can only fail if passed an invalid host_t.
+ __mach_host_self could theoretically fail (producing an
+ invalid host_t) due to resource exhaustion, but we assume
+ this will never happen. */
+ time_value_t tv;
+ __host_get_time (__mach_host_self (), &tv);
+ TIME_VALUE_TO_TIMESPEC (&tv, ts);
+ return 0;
+}
+libc_hidden_def (__clock_gettime)
+
+versioned_symbol (libc, __clock_gettime, clock_gettime, GLIBC_2_17);
+/* clock_gettime moved to libc in version 2.17;
+ old binaries may expect the symbol version it had in librt. */
+#if SHLIB_COMPAT (libc, GLIBC_2_2, GLIBC_2_17)
+strong_alias (__clock_gettime, __clock_gettime_2);
+compat_symbol (libc, __clock_gettime_2, clock_gettime, GLIBC_2_2);
+#endif
diff --git a/sysdeps/mach/clock_nanosleep.c b/sysdeps/mach/clock_nanosleep.c
new file mode 100644
index 0000000000..6dc67d649f
--- /dev/null
+++ b/sysdeps/mach/clock_nanosleep.c
@@ -0,0 +1,111 @@
+/* clock_nanosleep - high-resolution sleep with specifiable clock.
+ Copyright (C) 2002-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <mach.h>
+#include <time.h>
+#include <unistd.h>
+#include <posix-timer.h>
+#include <shlib-compat.h>
+
+static int
+nanosleep_call (const struct timespec *req, struct timespec *rem)
+{
+ mach_port_t recv;
+ struct timespec before;
+ error_t err;
+
+ const mach_msg_timeout_t ms
+ = req->tv_sec * 1000
+ + (req->tv_nsec + 999999) / 1000000;
+
+ recv = __mach_reply_port ();
+
+ if (rem != NULL)
+ __clock_gettime (CLOCK_REALTIME, &before);
+
+ err = __mach_msg (NULL, MACH_RCV_MSG|MACH_RCV_TIMEOUT|MACH_RCV_INTERRUPT,
+ 0, 0, recv, ms, MACH_PORT_NULL);
+ __mach_port_destroy (mach_task_self (), recv);
+ if (err == EMACH_RCV_INTERRUPTED)
+ {
+ if (rem != NULL)
+ {
+ struct timespec after, elapsed;
+ __clock_gettime (CLOCK_REALTIME, &after);
+ timespec_sub (&elapsed, &after, &before);
+ timespec_sub (rem, req, &elapsed);
+ }
+
+ return EINTR;
+ }
+
+ return 0;
+}
+
+int
+__clock_nanosleep (clockid_t clock_id, int flags, const struct timespec *req,
+ struct timespec *rem)
+{
+ if (clock_id != CLOCK_REALTIME
+ || !valid_nanoseconds (req->tv_nsec)
+ || (flags != 0 && flags != TIMER_ABSTIME))
+ return EINVAL;
+
+ struct timespec now;
+
+ /* If we got an absolute time, remap it. */
+ if (flags == TIMER_ABSTIME)
+ {
+ long int nsec;
+ long int sec;
+
+ /* Make sure we use safe data types. */
+ assert (sizeof (sec) >= sizeof (now.tv_sec));
+
+ /* Get the current time for this clock. */
+ if (__clock_gettime (clock_id, &now) != 0)
+ return errno;
+
+ /* Compute the difference. */
+ nsec = req->tv_nsec - now.tv_nsec;
+ sec = req->tv_sec - now.tv_sec - (nsec < 0);
+ if (sec < 0)
+ /* The time has already elapsed. */
+ return 0;
+
+ now.tv_sec = sec;
+ now.tv_nsec = nsec + (nsec < 0 ? 1000000000 : 0);
+
+ /* From now on this is our time. */
+ req = &now;
+
+ /* Make sure we are not modifying the struct pointed to by REM. */
+ rem = NULL;
+ }
+
+ return nanosleep_call (req, rem);
+}
+libc_hidden_def (__clock_nanosleep)
+versioned_symbol (libc, __clock_nanosleep, clock_nanosleep, GLIBC_2_17);
+/* clock_nanosleep moved to libc in version 2.17;
+ old binaries may expect the symbol version it had in librt. */
+#if SHLIB_COMPAT (libc, GLIBC_2_2, GLIBC_2_17)
+strong_alias (__clock_nanosleep, __clock_nanosleep_2);
+compat_symbol (libc, __clock_nanosleep_2, clock_nanosleep, GLIBC_2_2);
+#endif
diff --git a/sysdeps/mach/getloadavg.c b/sysdeps/mach/getloadavg.c
index 1554c0211e..cdaf9c0bc3 100644
--- a/sysdeps/mach/getloadavg.c
+++ b/sysdeps/mach/getloadavg.c
@@ -1,5 +1,5 @@
/* Get system load averages. Mach version.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <mach.h>
#include <mach/host_info.h>
diff --git a/sysdeps/mach/getpagesize.c b/sysdeps/mach/getpagesize.c
index 38c0576472..59ddac8d0e 100644
--- a/sysdeps/mach/getpagesize.c
+++ b/sysdeps/mach/getpagesize.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <mach.h>
diff --git a/sysdeps/mach/getsysstats.c b/sysdeps/mach/getsysstats.c
index e69fcd8e93..4a720d2e2b 100644
--- a/sysdeps/mach/getsysstats.c
+++ b/sysdeps/mach/getsysstats.c
@@ -1,5 +1,5 @@
/* System dependent pieces of sysconf; Mach version
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <mach.h>
diff --git a/sysdeps/mach/gettimeofday.c b/sysdeps/mach/gettimeofday.c
deleted file mode 100644
index 9453a76197..0000000000
--- a/sysdeps/mach/gettimeofday.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Copyright (C) 1991-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <stddef.h>
-#include <sys/time.h>
-#include <mach.h>
-
-/* Get the current time of day and timezone information,
- putting it into *TV and *TZ. If TZ is NULL, *TZ is not filled.
- Returns 0 on success, -1 on errors. */
-int
-__gettimeofday (struct timeval *tv, struct timezone *tz)
-{
- kern_return_t err;
-
- if (tz != NULL)
- *tz = (struct timezone){0, 0}; /* XXX */
-
- if (err = __host_get_time (__mach_host_self (), (time_value_t *) tv))
- {
- errno = err;
- return -1;
- }
- return 0;
-}
-libc_hidden_def (__gettimeofday)
-weak_alias (__gettimeofday, gettimeofday)
-libc_hidden_weak (gettimeofday)
diff --git a/sysdeps/mach/htl/bits/spin-lock-inline.h b/sysdeps/mach/htl/bits/spin-lock-inline.h
index 695c6dccde..bf76fbffee 100644
--- a/sysdeps/mach/htl/bits/spin-lock-inline.h
+++ b/sysdeps/mach/htl/bits/spin-lock-inline.h
@@ -1,5 +1,5 @@
/* Definitions of user-visible names for spin locks.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_SPIN_LOCK_INLINE_H
#define _BITS_SPIN_LOCK_INLINE_H 1
diff --git a/sysdeps/mach/htl/bits/types/__pthread_spinlock_t.h b/sysdeps/mach/htl/bits/types/__pthread_spinlock_t.h
index 038e2b429c..59bb9d51fc 100644
--- a/sysdeps/mach/htl/bits/types/__pthread_spinlock_t.h
+++ b/sysdeps/mach/htl/bits/types/__pthread_spinlock_t.h
@@ -1,5 +1,5 @@
/* Definitions of user-visible names for spin locks.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_TYPES___PTHREAD_SPINLOCK_T_H
#define _BITS_TYPES___PTHREAD_SPINLOCK_T_H 1
diff --git a/sysdeps/mach/htl/pt-block.c b/sysdeps/mach/htl/pt-block.c
index f62134c895..9565879196 100644
--- a/sysdeps/mach/htl/pt-block.c
+++ b/sysdeps/mach/htl/pt-block.c
@@ -1,5 +1,5 @@
/* Block a thread. Mach version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
diff --git a/sysdeps/mach/htl/pt-spin.c b/sysdeps/mach/htl/pt-spin.c
index 2b0b3c1175..a11ee10de0 100644
--- a/sysdeps/mach/htl/pt-spin.c
+++ b/sysdeps/mach/htl/pt-spin.c
@@ -1,5 +1,5 @@
/* Spin locks. Mach version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <machine-lock.h>
diff --git a/sysdeps/mach/htl/pt-stack-alloc.c b/sysdeps/mach/htl/pt-stack-alloc.c
index dc31ab745a..d7816e6dcd 100644
--- a/sysdeps/mach/htl/pt-stack-alloc.c
+++ b/sysdeps/mach/htl/pt-stack-alloc.c
@@ -1,5 +1,5 @@
/* Allocate a new stack. Mach version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
diff --git a/sysdeps/mach/htl/pt-thread-alloc.c b/sysdeps/mach/htl/pt-thread-alloc.c
index 39993e4993..305046a8fb 100644
--- a/sysdeps/mach/htl/pt-thread-alloc.c
+++ b/sysdeps/mach/htl/pt-thread-alloc.c
@@ -1,5 +1,5 @@
/* Start thread. Mach version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
diff --git a/sysdeps/mach/htl/pt-thread-start.c b/sysdeps/mach/htl/pt-thread-start.c
index a79eb0c523..89c8909639 100644
--- a/sysdeps/mach/htl/pt-thread-start.c
+++ b/sysdeps/mach/htl/pt-thread-start.c
@@ -1,5 +1,5 @@
/* Start thread. Mach version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
diff --git a/sysdeps/mach/htl/pt-thread-terminate.c b/sysdeps/mach/htl/pt-thread-terminate.c
index b4ec882916..05e62f20ce 100644
--- a/sysdeps/mach/htl/pt-thread-terminate.c
+++ b/sysdeps/mach/htl/pt-thread-terminate.c
@@ -1,5 +1,5 @@
/* Deallocate the kernel thread resources. Mach version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
diff --git a/sysdeps/mach/htl/pt-timedblock.c b/sysdeps/mach/htl/pt-timedblock.c
index 9301b8fa18..ff7f351323 100644
--- a/sysdeps/mach/htl/pt-timedblock.c
+++ b/sysdeps/mach/htl/pt-timedblock.c
@@ -1,5 +1,5 @@
/* Block a thread with a timeout. Mach version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
diff --git a/sysdeps/mach/htl/pt-wakeup.c b/sysdeps/mach/htl/pt-wakeup.c
index 069d232d7a..b718cd49b0 100644
--- a/sysdeps/mach/htl/pt-wakeup.c
+++ b/sysdeps/mach/htl/pt-wakeup.c
@@ -1,5 +1,5 @@
/* Wakeup a thread. Mach version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
diff --git a/sysdeps/mach/hurd/Makefile b/sysdeps/mach/hurd/Makefile
index 3a853a6cd9..6b48d8f843 100644
--- a/sysdeps/mach/hurd/Makefile
+++ b/sysdeps/mach/hurd/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1993-2018 Free Software Foundation, Inc.
+# Copyright (C) 1993-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
ifdef in-Makerules
@@ -91,10 +91,11 @@ $(common-objpfx)errnos.d: $(mach-errnos-deps)
$(hurd)/bits/errno.h: $(common-objpfx)stamp-errnos ;
$(common-objpfx)stamp-errnos: $(hurd)/errnos.awk $(errno.texinfo) \
$(mach-errnos-deps) $(common-objpfx)errnos.d
- $(AWK) -f $^ > $(hurd)/bits/errno.h-tmp
+ mkdir -p $(hurd-objpfx)bits
+ $(AWK) -f $^ > $(hurd-objpfx)bits/errno.h-tmp
# Make it unwritable so noone will edit it by mistake.
- -chmod a-w $(hurd)/bits/errno.h-tmp
- $(move-if-change) $(hurd)/bits/errno.h-tmp $(hurd)/bits/errno.h
+ -chmod a-w $(hurd-objpfx)bits/errno.h-tmp
+ $(move-if-change) $(hurd-objpfx)bits/errno.h-tmp $(hurd)/bits/errno.h
touch $@
common-generated += errnos.d stamp-errnos
@@ -194,6 +195,10 @@ ifeq (hurd, $(subdir))
sysdep_routines += cthreads
endif
+ifeq (io, $(subdir))
+sysdep_routines += f_setlk close_nocancel_nostatus
+endif
+
ifeq ($(subdir),sunrpc)
sysdep_headers += nfs/nfs.h
endif
diff --git a/sysdeps/mach/hurd/Versions b/sysdeps/mach/hurd/Versions
index f69d5fef67..6ddd2977f6 100644
--- a/sysdeps/mach/hurd/Versions
+++ b/sysdeps/mach/hurd/Versions
@@ -1,7 +1,7 @@
libc {
GLIBC_2.0 {
# functions with a weak definition in the dynamic linker
- __access; __getcwd; __mmap;
+ __mmap;
}
GLIBC_2.2.6 {
# functions with a weak definition in the dynamic linker
@@ -9,10 +9,11 @@ libc {
}
GLIBC_PRIVATE {
# Functions shared with the dynamic linker
- __access_noerrno; __libc_read; __libc_write; __libc_lseek64;
- __libc_lock_self0;
+ __access; __access_noerrno; __libc_read; __libc_write; __libc_lseek64;
+ __libc_lock_self0; __sigprocmask; __getcwd;
_dl_init_first;
+ __close_nocancel_nostatus;
}
}
@@ -22,7 +23,7 @@ ld {
__hurd_threadvar_stack_mask; __hurd_threadvar_stack_offset;
# functions that must be shared with libc
- __access; __close; __getcwd; __getpid;
+ __close; __getpid;
__mmap; __open; __read; __sbrk; __strtoul_internal;
__write; __writev; __xstat64; __fxstat64;
_exit; _hurd_intr_rpc_mach_msg;
@@ -40,7 +41,7 @@ ld {
_dl_init_first;
# functions that must be shared with libc
- __access_noerrno; __libc_read; __libc_write; __libc_lseek64;
- __libc_lock_self0;
+ __access; __access_noerrno; __libc_read; __libc_write; __libc_lseek64;
+ __libc_lock_self0; __sigprocmask; __getcwd;
}
}
diff --git a/sysdeps/mach/hurd/_exit.c b/sysdeps/mach/hurd/_exit.c
index 3cbda3ffa9..c46b707515 100644
--- a/sysdeps/mach/hurd/_exit.c
+++ b/sysdeps/mach/hurd/_exit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <hurd.h>
diff --git a/sysdeps/mach/hurd/accept.c b/sysdeps/mach/hurd/accept.c
index a6a3a9a0a0..edc677eb0f 100644
--- a/sysdeps/mach/hurd/accept.c
+++ b/sysdeps/mach/hurd/accept.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/socket.h>
diff --git a/sysdeps/mach/hurd/accept4.c b/sysdeps/mach/hurd/accept4.c
index 92bf92ddc3..d1f067302a 100644
--- a/sysdeps/mach/hurd/accept4.c
+++ b/sysdeps/mach/hurd/accept4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2019 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; see the file COPYING.LIB. If
- not, see <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/sysdeps/mach/hurd/access.c b/sysdeps/mach/hurd/access.c
index 31fd5bea56..5072742352 100644
--- a/sysdeps/mach/hurd/access.c
+++ b/sysdeps/mach/hurd/access.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
@@ -35,4 +35,5 @@ __access (const char *file, int type)
{
return __faccessat (AT_FDCWD, file, type, 0);
}
+libc_hidden_def (__access)
weak_alias (__access, access)
diff --git a/sysdeps/mach/hurd/adjtime.c b/sysdeps/mach/hurd/adjtime.c
index 66ee42a6ff..57c0c21a10 100644
--- a/sysdeps/mach/hurd/adjtime.c
+++ b/sysdeps/mach/hurd/adjtime.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/time.h>
diff --git a/sysdeps/mach/hurd/bind.c b/sysdeps/mach/hurd/bind.c
index fae826d534..af958e0ed9 100644
--- a/sysdeps/mach/hurd/bind.c
+++ b/sysdeps/mach/hurd/bind.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/socket.h>
diff --git a/sysdeps/mach/hurd/bits/errno.h b/sysdeps/mach/hurd/bits/errno.h
index 8096fb9c05..8f2fbfd80f 100644
--- a/sysdeps/mach/hurd/bits/errno.h
+++ b/sysdeps/mach/hurd/bits/errno.h
@@ -1,9 +1,17 @@
/* This file generated by errnos.awk from
errno.texi
+ stdc-predef.h
+ libc-symbols.h
mach/message.h
mach/kern_return.h
+ mach/i386/kern_return.h
+ mach/port.h
+ mach/boolean.h
+ mach/i386/boolean.h
+ mach/i386/vm_types.h
mach/mig_errors.h
device/device_types.h
+ mach/std_types.h
Do not edit this file; edit errnos.awk and regenerate it. */
#ifndef _BITS_ERRNO_H
diff --git a/sysdeps/mach/hurd/bits/fcntl.h b/sysdeps/mach/hurd/bits/fcntl.h
index 2cfaa872a5..6faee6bbaf 100644
--- a/sysdeps/mach/hurd/bits/fcntl.h
+++ b/sysdeps/mach/hurd/bits/fcntl.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for GNU.
- Copyright (C) 1993-2018 Free Software Foundation, Inc.
+ Copyright (C) 1993-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FCNTL_H
# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
@@ -163,9 +163,18 @@
# define F_GETOWN 5 /* Get owner (receiver of SIGIO). */
# define F_SETOWN 6 /* Set owner (receiver of SIGIO). */
#endif
-#define F_GETLK 7 /* Get record locking info. */
-#define F_SETLK 8 /* Set record locking info (non-blocking). */
-#define F_SETLKW 9 /* Set record locking info (blocking). */
+#ifdef __USE_FILE_OFFSET64
+# define F_GETLK F_GETLK64
+# define F_SETLK F_SETLK64
+# define F_SETLKW F_SETLKW64
+#else
+# define F_GETLK 7 /* Get record locking info. */
+# define F_SETLK 8 /* Set record locking info (non-blocking). */
+# define F_SETLKW 9 /* Set record locking info (blocking). */
+#endif
+#define F_GETLK64 10 /* Get record locking info. */
+#define F_SETLK64 11 /* Set record locking info (non-blocking). */
+#define F_SETLKW64 12 /* Set record locking info (blocking). */
#ifdef __USE_XOPEN2K8
# define F_DUPFD_CLOEXEC 1030 /* Duplicate, set FD_CLOEXEC on new one. */
diff --git a/sysdeps/mach/hurd/bits/ioctls.h b/sysdeps/mach/hurd/bits/ioctls.h
index 91a15b5083..f4eec5c29d 100644
--- a/sysdeps/mach/hurd/bits/ioctls.h
+++ b/sysdeps/mach/hurd/bits/ioctls.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef __BITS_IOCTLS_H
#define __BITS_IOCTLS_H 1
diff --git a/sysdeps/mach/hurd/bits/local_lim.h b/sysdeps/mach/hurd/bits/local_lim.h
index 97f87ad5d2..1773e61b98 100644
--- a/sysdeps/mach/hurd/bits/local_lim.h
+++ b/sysdeps/mach/hurd/bits/local_lim.h
@@ -1,5 +1,5 @@
/* Minimum guaranteed maximum values for system limits. Hurd version.
- Copyright (C) 1993-2018 Free Software Foundation, Inc.
+ Copyright (C) 1993-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* GNU has no arbitrary fixed limits on most of these things, so we
don't define the macros. Some things are unlimited. Some are in
diff --git a/sysdeps/mach/hurd/bits/param.h b/sysdeps/mach/hurd/bits/param.h
index 5d4faf793f..d8a4ad3752 100644
--- a/sysdeps/mach/hurd/bits/param.h
+++ b/sysdeps/mach/hurd/bits/param.h
@@ -1,5 +1,5 @@
/* Old-style Unix parameters and limits. Hurd version.
- Copyright (C) 1993-2018 Free Software Foundation, Inc.
+ Copyright (C) 1993-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_PARAM_H
# error "Never use <bits/param.h> directly; include <sys/param.h> instead."
diff --git a/sysdeps/mach/hurd/bits/posix_opt.h b/sysdeps/mach/hurd/bits/posix_opt.h
index dfb0ba46ec..5471b64091 100644
--- a/sysdeps/mach/hurd/bits/posix_opt.h
+++ b/sysdeps/mach/hurd/bits/posix_opt.h
@@ -1,5 +1,5 @@
/* Define POSIX options for GNU/Hurd.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _UNISTD_H
#error "Never include this file directly; use <unistd.h> instead."
diff --git a/sysdeps/mach/hurd/bits/socket.h b/sysdeps/mach/hurd/bits/socket.h
index 18959139dc..68a102b68d 100644
--- a/sysdeps/mach/hurd/bits/socket.h
+++ b/sysdeps/mach/hurd/bits/socket.h
@@ -1,5 +1,5 @@
/* System-specific socket constants and types. Hurd version.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#ifndef __BITS_SOCKET_H
#define __BITS_SOCKET_H 1
diff --git a/sysdeps/mach/hurd/bits/stat.h b/sysdeps/mach/hurd/bits/stat.h
index cb8680e000..f12382fe09 100644
--- a/sysdeps/mach/hurd/bits/stat.h
+++ b/sysdeps/mach/hurd/bits/stat.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if !defined _SYS_STAT_H && !defined _FCNTL_H
# error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
@@ -218,8 +218,8 @@ struct stat64
#define S_IMMAP0 000100000000
/* ALL the unused bits. */
-#define S_ISPARE (~(S_IFMT|S_ITRANS|S_INOCACHE|S_IMMAP0| \
- S_IUSEUNK|S_IUNKNOWN|07777))
+#define S_ISPARE (~(S_IFMT|S_ITRANS|S_INOCACHE|S_IMMAP0 \
+ |S_IUSEUNK|S_IUNKNOWN|07777))
#endif
#ifdef __USE_MISC
diff --git a/sysdeps/mach/hurd/bits/statfs.h b/sysdeps/mach/hurd/bits/statfs.h
index 82e570b222..da7c4e431e 100644
--- a/sysdeps/mach/hurd/bits/statfs.h
+++ b/sysdeps/mach/hurd/bits/statfs.h
@@ -1,5 +1,5 @@
/* Definition of `struct statfs', information about a filesystem.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_STATFS_H
# error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead."
diff --git a/sysdeps/mach/hurd/bits/statvfs.h b/sysdeps/mach/hurd/bits/statvfs.h
index 9880b2c9c7..969488c932 100644
--- a/sysdeps/mach/hurd/bits/statvfs.h
+++ b/sysdeps/mach/hurd/bits/statvfs.h
@@ -1,5 +1,5 @@
/* Definition of `struct statvfs', information about a filesystem.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_STATVFS_H
# error "Never include <bits/statvfs.h> directly; use <sys/statvfs.h> instead."
diff --git a/sysdeps/mach/hurd/bits/sysmacros.h b/sysdeps/mach/hurd/bits/sysmacros.h
index b75a329d04..d7f5d9afa7 100644
--- a/sysdeps/mach/hurd/bits/sysmacros.h
+++ b/sysdeps/mach/hurd/bits/sysmacros.h
@@ -1,5 +1,5 @@
/* Definitions of macros to access `dev_t' values. Hurd version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_SYSMACROS_H
#define _BITS_SYSMACROS_H 1
diff --git a/sysdeps/mach/hurd/bits/types/error_t.h b/sysdeps/mach/hurd/bits/types/error_t.h
index 286e5fdc6a..45cc1afe86 100644
--- a/sysdeps/mach/hurd/bits/types/error_t.h
+++ b/sysdeps/mach/hurd/bits/types/error_t.h
@@ -1,5 +1,5 @@
/* Define error_t.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <bits/errno.h>
diff --git a/sysdeps/mach/hurd/bits/typesizes.h b/sysdeps/mach/hurd/bits/typesizes.h
index d3026ba66e..3600137f50 100644
--- a/sysdeps/mach/hurd/bits/typesizes.h
+++ b/sysdeps/mach/hurd/bits/typesizes.h
@@ -1,5 +1,5 @@
/* bits/typesizes.h -- underlying types for *_t. Hurd version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_TYPES_H
# error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead."
@@ -64,5 +64,9 @@
/* Number of descriptors that can fit in an `fd_set'. */
#define __FD_SETSIZE 256
+/* Tell the libc code that fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and
+ fsfilcnt64_t are not the same type for all ABI purposes. */
+# define __STATFS_MATCHES_STATFS64 0
+
#endif /* bits/typesizes.h */
diff --git a/sysdeps/mach/hurd/brk.c b/sysdeps/mach/hurd/brk.c
index f8272e5f22..8ff87913c3 100644
--- a/sysdeps/mach/hurd/brk.c
+++ b/sysdeps/mach/hurd/brk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <hurd.h>
diff --git a/sysdeps/mach/hurd/chdir.c b/sysdeps/mach/hurd/chdir.c
index b1cec6266c..dd0191c734 100644
--- a/sysdeps/mach/hurd/chdir.c
+++ b/sysdeps/mach/hurd/chdir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <hurd.h>
diff --git a/sysdeps/mach/hurd/check_fds.c b/sysdeps/mach/hurd/check_fds.c
index c21432a80e..aa396830c3 100644
--- a/sysdeps/mach/hurd/check_fds.c
+++ b/sysdeps/mach/hurd/check_fds.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fcntl.h>
#include <paths.h>
diff --git a/sysdeps/mach/hurd/chflags.c b/sysdeps/mach/hurd/chflags.c
index 4673043d74..9c589cf86c 100644
--- a/sysdeps/mach/hurd/chflags.c
+++ b/sysdeps/mach/hurd/chflags.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/sysdeps/mach/hurd/chmod.c b/sysdeps/mach/hurd/chmod.c
index bed20efb7a..21c5ceb2f4 100644
--- a/sysdeps/mach/hurd/chmod.c
+++ b/sysdeps/mach/hurd/chmod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/sysdeps/mach/hurd/chown.c b/sysdeps/mach/hurd/chown.c
index 6a50f82646..125cc9b282 100644
--- a/sysdeps/mach/hurd/chown.c
+++ b/sysdeps/mach/hurd/chown.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/sysdeps/mach/hurd/chroot.c b/sysdeps/mach/hurd/chroot.c
index bd08556824..2bfb68ce1c 100644
--- a/sysdeps/mach/hurd/chroot.c
+++ b/sysdeps/mach/hurd/chroot.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <unistd.h>
diff --git a/sysdeps/mach/hurd/clock.c b/sysdeps/mach/hurd/clock.c
index 296ca89d21..a13f1d3a2d 100644
--- a/sysdeps/mach/hurd/clock.c
+++ b/sysdeps/mach/hurd/clock.c
@@ -1,5 +1,5 @@
/* Return the CPU time used by the program so far. Hurd version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <time.h>
#include <sys/time.h>
diff --git a/sysdeps/mach/hurd/clock_settime.c b/sysdeps/mach/hurd/clock_settime.c
new file mode 100644
index 0000000000..a69fdca46a
--- /dev/null
+++ b/sysdeps/mach/hurd/clock_settime.c
@@ -0,0 +1,55 @@
+/* Copyright (C) 1991-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <time.h>
+#include <hurd.h>
+#include <hurd/port.h>
+#include <shlib-compat.h>
+
+/* Set the current time of day.
+ This call is restricted to the super-user. */
+int
+__clock_settime (clockid_t clock_id, const struct timespec *ts)
+{
+ error_t err;
+ mach_port_t hostpriv;
+ time_value_t tv;
+
+ if (clock_id != CLOCK_REALTIME
+ || ! valid_nanoseconds (ts->tv_nsec))
+ return __hurd_fail (EINVAL);
+
+ err = __get_privileged_ports (&hostpriv, NULL);
+ if (err)
+ return __hurd_fail (EPERM);
+
+ TIMESPEC_TO_TIME_VALUE (&tv, ts);
+ err = __host_set_time (hostpriv, tv);
+ __mach_port_deallocate (__mach_task_self (), hostpriv);
+
+ return __hurd_fail (err);
+}
+libc_hidden_def (__clock_settime)
+
+versioned_symbol (libc, __clock_settime, clock_settime, GLIBC_2_17);
+/* clock_settime moved to libc in version 2.17;
+ old binaries may expect the symbol version it had in librt. */
+#if SHLIB_COMPAT (libc, GLIBC_2_2, GLIBC_2_17)
+strong_alias (__clock_settime, __clock_settime_2);
+compat_symbol (libc, __clock_settime_2, clock_settime, GLIBC_2_2);
+#endif
diff --git a/sysdeps/mach/hurd/close.c b/sysdeps/mach/hurd/close.c
index d064448b44..70dacf92f1 100644
--- a/sysdeps/mach/hurd/close.c
+++ b/sysdeps/mach/hurd/close.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/mach/hurd/close_nocancel_nostatus.c b/sysdeps/mach/hurd/close_nocancel_nostatus.c
new file mode 100644
index 0000000000..0c7c8acfba
--- /dev/null
+++ b/sysdeps/mach/hurd/close_nocancel_nostatus.c
@@ -0,0 +1,30 @@
+/* Copyright (C) 1991-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <unistd.h>
+#include <hurd.h>
+#include <hurd/fd.h>
+#include <not-cancel.h>
+
+/* Close the file descriptor FD. */
+void
+__close_nocancel_nostatus (int fd)
+{
+ HURD_FD_USE (fd, _hurd_fd_close (descriptor));
+}
+libc_hidden_def (__close_nocancel_nostatus)
diff --git a/sysdeps/mach/hurd/closedir.c b/sysdeps/mach/hurd/closedir.c
index 783cd580ab..f858231c20 100644
--- a/sysdeps/mach/hurd/closedir.c
+++ b/sysdeps/mach/hurd/closedir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/sysdeps/mach/hurd/configure.ac b/sysdeps/mach/hurd/configure.ac
index 774ffc80a9..a294dd5ea2 100644
--- a/sysdeps/mach/hurd/configure.ac
+++ b/sysdeps/mach/hurd/configure.ac
@@ -28,5 +28,5 @@ if test -n "$sysheaders"; then
fi
dnl ifunc does not work yet for static binaries
-dnl http://www.gnu.org/software/hurd/open_issues/ifunc.html
+dnl https://www.gnu.org/software/hurd/open_issues/ifunc.html
libc_cv_ld_gnu_indirect_function=no
diff --git a/sysdeps/mach/hurd/connect.c b/sysdeps/mach/hurd/connect.c
index 537d686778..2014ec9828 100644
--- a/sysdeps/mach/hurd/connect.c
+++ b/sysdeps/mach/hurd/connect.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <hurd.h>
diff --git a/sysdeps/mach/hurd/cthreads.c b/sysdeps/mach/hurd/cthreads.c
index 05c48e4e4c..e91b7ca2ae 100644
--- a/sysdeps/mach/hurd/cthreads.c
+++ b/sysdeps/mach/hurd/cthreads.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libc-lock.h>
#include <errno.h>
diff --git a/sysdeps/mach/hurd/device-nrs.h b/sysdeps/mach/hurd/device-nrs.h
index a006028e29..c961b80c44 100644
--- a/sysdeps/mach/hurd/device-nrs.h
+++ b/sysdeps/mach/hurd/device-nrs.h
@@ -1,5 +1,5 @@
/* Device numbers of devices used in the implementation. Hurd version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DEVICE_NRS_H
#define _DEVICE_NRS_H 1
diff --git a/sysdeps/mach/hurd/dirfd.c b/sysdeps/mach/hurd/dirfd.c
index f70ee8d3e3..20fa2a3934 100644
--- a/sysdeps/mach/hurd/dirfd.c
+++ b/sysdeps/mach/hurd/dirfd.c
@@ -1,5 +1,5 @@
/* dirfd -- Return the file descriptor used by a DIR stream. Hurd version.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dirent.h>
#include <dirstream.h>
diff --git a/sysdeps/mach/hurd/dirstream.h b/sysdeps/mach/hurd/dirstream.h
index 45d2e8e571..4bb4729cec 100644
--- a/sysdeps/mach/hurd/dirstream.h
+++ b/sysdeps/mach/hurd/dirstream.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DIRSTREAM_H
diff --git a/sysdeps/mach/hurd/dl-execstack.c b/sysdeps/mach/hurd/dl-execstack.c
index b658c9667e..8518dca9dd 100644
--- a/sysdeps/mach/hurd/dl-execstack.c
+++ b/sysdeps/mach/hurd/dl-execstack.c
@@ -1,5 +1,5 @@
/* Stack executability handling for GNU dynamic linker. Hurd version.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ldsodefs.h>
#include <hurdstartup.h>
diff --git a/sysdeps/mach/hurd/dl-fcntl.h b/sysdeps/mach/hurd/dl-fcntl.h
index 3de29dced9..9292eef1cd 100644
--- a/sysdeps/mach/hurd/dl-fcntl.h
+++ b/sysdeps/mach/hurd/dl-fcntl.h
@@ -1,6 +1,6 @@
/* Functions with hidden attribute internal to ld.so, which are declared
in include/fcntl.h. Hurd version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* __open can't be hidden in ld.so on Hurd since it will be preempted by the
one in libc.so after bootstrap. */
diff --git a/sysdeps/mach/hurd/dl-mman.h b/sysdeps/mach/hurd/dl-mman.h
index 3502c03187..776e19b45f 100644
--- a/sysdeps/mach/hurd/dl-mman.h
+++ b/sysdeps/mach/hurd/dl-mman.h
@@ -1,6 +1,6 @@
/* Functions with hidden attribute internal to ld.so, which are declared
in include/sys/mman.h. Hurd version.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Can't hide __mmap on Hurd, since __mmap in ld.so will be preempted by
the one in libc.so after bootstrap. */
diff --git a/sysdeps/mach/hurd/dl-sysdep.c b/sysdeps/mach/hurd/dl-sysdep.c
index b72913d3ba..fcbbe6a43a 100644
--- a/sysdeps/mach/hurd/dl-sysdep.c
+++ b/sysdeps/mach/hurd/dl-sysdep.c
@@ -1,5 +1,5 @@
/* Operating system support for run-time dynamic linker. Hurd version.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* In the static library, this is all handled by dl-support.c
or by the vanilla definitions in the rest of the C library. */
@@ -62,10 +62,6 @@ int __libc_multiple_libcs = 0; /* Defining this here avoids the inclusion
void *__libc_stack_end = NULL;
rtld_hidden_data_def(__libc_stack_end)
-#if HP_TIMING_AVAIL
-hp_timing_t _dl_cpuclock_offset;
-#endif
-
/* TODO: Initialize. */
void *_dl_random attribute_relro = NULL;
@@ -132,8 +128,8 @@ _dl_sysdep_start (void **start_argptr,
__tunables_init (_environ);
- if (_dl_hurd_data->flags & EXEC_STACK_ARGS &&
- _dl_hurd_data->user_entry == 0)
+ if (_dl_hurd_data->flags & EXEC_STACK_ARGS
+ && _dl_hurd_data->user_entry == 0)
_dl_hurd_data->user_entry = (vm_address_t) ENTRY_POINT;
unfmh(); /* XXX */
@@ -246,10 +242,6 @@ unfmh(); /* XXX */
/* Initialize frequently used global variable. */
GLRO(dl_pagesize) = __getpagesize ();
-#if HP_TIMING_AVAIL
- HP_TIMING_NOW (_dl_cpuclock_offset);
-#endif
-
fmh(); /* XXX */
/* See hurd/hurdstartup.c; this deals with getting information
@@ -272,19 +264,21 @@ _dl_sysdep_start_cleanup (void)
__mach_port_deallocate (__mach_task_self (), __mach_task_self_);
}
-/* Minimal open/close/mmap implementation sufficient for initial loading of
+/* Minimal open/close/mmap/etc. implementation sufficient for initial loading of
shared libraries. These are weak definitions so that when the
dynamic linker re-relocates itself to be user-visible (for -ldl),
it will get the user's definition (i.e. usually libc's).
- They also need to be set in the ld section of sysdeps/mach/hurd/Versions, to
- be overridable, and in libc.abilist and ld.abilist to be checked. */
+ They also need to be set in the libc and ld section of
+ sysdeps/mach/hurd/Versions, to be overridable, and in libc.abilist and
+ ld.abilist to be checked. */
/* This macro checks that the function does not get renamed to be hidden: we do
need these to be overridable by libc's. */
#define check_no_hidden(name) \
- static __typeof (name) __check_##name##_no_hidden \
- __attribute__ ((alias (#name)));
+ __typeof (name) __check_##name##_no_hidden \
+ __attribute__ ((alias (#name))) \
+ __attribute_copy__ (name);
/* Open FILE_NAME and return a Hurd I/O for it in *PORT, or return an
error. If STAT is non-zero, stat the file into that stat buffer. */
@@ -318,8 +312,8 @@ open_file (const char *file_name, int flags,
assert (!(flags & ~(O_READ | O_CLOEXEC)));
- startdir = _dl_hurd_data->portarray[file_name[0] == '/' ?
- INIT_PORT_CRDIR : INIT_PORT_CWDIR];
+ startdir = _dl_hurd_data->portarray[file_name[0] == '/'
+ ? INIT_PORT_CRDIR : INIT_PORT_CWDIR];
while (file_name[0] == '/')
file_name++;
@@ -364,9 +358,9 @@ __close (int fd)
return 0;
}
-check_no_hidden(__read);
+check_no_hidden(__pread64);
__ssize_t weak_function
-__read (int fd, void *buf, size_t nbytes)
+__pread64 (int fd, void *buf, size_t nbytes, off64_t offset)
{
error_t err;
char *data;
@@ -374,7 +368,7 @@ __read (int fd, void *buf, size_t nbytes)
data = buf;
nread = nbytes;
- err = __io_read ((mach_port_t) fd, &data, &nread, -1, nbytes);
+ err = __io_read ((mach_port_t) fd, &data, &nread, offset, nbytes);
if (err)
return __hurd_fail (err);
@@ -386,6 +380,14 @@ __read (int fd, void *buf, size_t nbytes)
return nread;
}
+libc_hidden_weak (__pread64)
+
+check_no_hidden(__read);
+__ssize_t weak_function
+__read (int fd, void *buf, size_t nbytes)
+{
+ return __pread64 (fd, buf, nbytes, -1);
+}
libc_hidden_weak (__read)
check_no_hidden(__write);
@@ -673,6 +675,14 @@ strong_alias (abort, __GI___chk_fail)
strong_alias (abort, __GI___fortify_fail)
strong_alias (abort, __GI___assert_fail)
strong_alias (abort, __GI___assert_perror_fail)
+
+check_no_hidden(__sigprocmask);
+int weak_function
+__sigprocmask (int how, const sigset_t *set, sigset_t *oset)
+{
+ /* We do not have signals yet at this stage. */
+ return 0;
+}
/* This function is called by interruptible RPC stubs. For initial
dynamic linking, just use the normal mach_msg. Since this defn is
diff --git a/sysdeps/mach/hurd/dl-sysdep.h b/sysdeps/mach/hurd/dl-sysdep.h
index 9a1f353a8d..c5bc4d44f3 100644
--- a/sysdeps/mach/hurd/dl-sysdep.h
+++ b/sysdeps/mach/hurd/dl-sysdep.h
@@ -1,5 +1,5 @@
/* System-specific settings for dynamic linker code. Hurd version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* The private errno doesn't make sense on the Hurd. errno is always the
thread-local slot shared with libc, and it matters to share the cell
diff --git a/sysdeps/mach/hurd/dl-unistd.h b/sysdeps/mach/hurd/dl-unistd.h
index da7f0ed18d..372bbe8c22 100644
--- a/sysdeps/mach/hurd/dl-unistd.h
+++ b/sysdeps/mach/hurd/dl-unistd.h
@@ -1,6 +1,6 @@
/* Functions with hidden attribute internal to ld.so, which are declared
in include/unistd.h. Hurd version.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Most stubs mustn't be hidden in ld.so on Hurd since they need to be preempted
by functions from libc.so after bootstrap. */
diff --git a/sysdeps/mach/hurd/dup2.c b/sysdeps/mach/hurd/dup2.c
index 3615461cb5..58650e609c 100644
--- a/sysdeps/mach/hurd/dup2.c
+++ b/sysdeps/mach/hurd/dup2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
diff --git a/sysdeps/mach/hurd/dup3.c b/sysdeps/mach/hurd/dup3.c
index 09ea24a00b..275be4c146 100644
--- a/sysdeps/mach/hurd/dup3.c
+++ b/sysdeps/mach/hurd/dup3.c
@@ -1,5 +1,5 @@
/* Duplicate a file descriptor to a given number, with flags. Hurd version.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/sysdeps/mach/hurd/eloop-threshold.h b/sysdeps/mach/hurd/eloop-threshold.h
index 2eaf4e2c5d..e09295b2fb 100644
--- a/sysdeps/mach/hurd/eloop-threshold.h
+++ b/sysdeps/mach/hurd/eloop-threshold.h
@@ -1,5 +1,5 @@
/* Threshold at which to diagnose ELOOP. Hurd version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _ELOOP_THRESHOLD_H
#define _ELOOP_THRESHOLD_H 1
diff --git a/sysdeps/mach/hurd/enbl-secure.c b/sysdeps/mach/hurd/enbl-secure.c
index 772bdb6bf8..5a417bb3a8 100644
--- a/sysdeps/mach/hurd/enbl-secure.c
+++ b/sysdeps/mach/hurd/enbl-secure.c
@@ -1,5 +1,5 @@
/* Define and initialize the `__libc_enable_secure' flag. Hurd version.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* There is no need for this file in the Hurd; it is just a placeholder
to prevent inclusion of the sysdeps/generic version.
diff --git a/sysdeps/mach/hurd/errlist.c b/sysdeps/mach/hurd/errlist.c
index 77cbabf23c..1cfda3b39f 100644
--- a/sysdeps/mach/hurd/errlist.c
+++ b/sysdeps/mach/hurd/errlist.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* sys_errlist cannot have Unix semantics on the Hurd, so it is easier just
to rename it. We also need to remap error codes to array indices by
diff --git a/sysdeps/mach/hurd/errno-loc.c b/sysdeps/mach/hurd/errno-loc.c
index 05e7673743..31a313248c 100644
--- a/sysdeps/mach/hurd/errno-loc.c
+++ b/sysdeps/mach/hurd/errno-loc.c
@@ -1,5 +1,5 @@
/* __errno_location -- helper function for locating per-thread errno value
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (rtld)
/* rtld can not access TLS too early, thus rtld_errno.
diff --git a/sysdeps/mach/hurd/errnos.awk b/sysdeps/mach/hurd/errnos.awk
index dc19350eb0..94a76a3f11 100644
--- a/sysdeps/mach/hurd/errnos.awk
+++ b/sysdeps/mach/hurd/errnos.awk
@@ -1,4 +1,4 @@
-# Copyright (C) 1991-2018 Free Software Foundation, Inc.
+# Copyright (C) 1991-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
# errno.texinfo contains lines like:
# @errno{ENOSYS, 123, Function not implemented}
@@ -23,7 +23,8 @@ BEGIN {
for (i = 1; i < ARGC; i++)
{
arg = ARGV[i];
- sub(/.*(manual|include)\//, "", arg)
+ sub(/.*(manual|include)\//, "", arg);
+ if (arg ~ /.*errnos.d/) continue;
print " " arg;
}
print " Do not edit this file; edit errnos.awk and regenerate it. */";
diff --git a/sysdeps/mach/hurd/euidaccess.c b/sysdeps/mach/hurd/euidaccess.c
index 2c7ce1f2b6..a6c6309a2c 100644
--- a/sysdeps/mach/hurd/euidaccess.c
+++ b/sysdeps/mach/hurd/euidaccess.c
@@ -1,5 +1,5 @@
/* Test for access to FILE using effective UID and GID. Hurd version.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <fcntl.h>
diff --git a/sysdeps/mach/hurd/execve.c b/sysdeps/mach/hurd/execve.c
index 1c5b681d89..a1942fb767 100644
--- a/sysdeps/mach/hurd/execve.c
+++ b/sysdeps/mach/hurd/execve.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <hurd.h>
diff --git a/sysdeps/mach/hurd/f_setlk.c b/sysdeps/mach/hurd/f_setlk.c
new file mode 100644
index 0000000000..dc77e845aa
--- /dev/null
+++ b/sysdeps/mach/hurd/f_setlk.c
@@ -0,0 +1,82 @@
+/* f_setlk -- locking part of fcntl
+ Copyright (C) 2014-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <sys/types.h>
+#include <sys/file.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <errno.h>
+
+/* XXX
+ We need new RPCs to support POSIX.1 fcntl file locking!!
+ For the time being we support the whole-file case only,
+ with all kinds of WRONG WRONG WRONG semantics,
+ by using flock. This is definitely the Wrong Thing,
+ but it might be better than nothing (?). */
+int
+__f_setlk (int fd, int type, int whence, __off64_t start, __off64_t len, int wait)
+{
+ int cmd = 0;
+
+ switch (type)
+ {
+ case F_RDLCK: cmd = LOCK_SH; break;
+ case F_WRLCK: cmd = LOCK_EX; break;
+ case F_UNLCK: cmd = LOCK_UN; break;
+ default:
+ errno = EINVAL;
+ return -1;
+ }
+
+ if (cmd != LOCK_UN && wait == 0)
+ cmd |= LOCK_NB;
+
+ if (whence == SEEK_CUR)
+ {
+ /* In case the target position is 0, we can support it below. */
+ __off64_t cur = __lseek64 (fd, 0, SEEK_CUR);
+
+ if (cur >= 0)
+ {
+ start = cur + start;
+ whence = SEEK_SET;
+ }
+ }
+
+ switch (whence)
+ {
+ case SEEK_SET:
+ if (start == 0 && len == 0) /* Whole file request. */
+ break;
+ /* It seems to be common for applications to lock the first
+ byte of the file when they are really doing whole-file locking.
+ So, since it's so wrong already, might as well do that too. */
+ if (start == 0 && len == 1)
+ break;
+ /* FALLTHROUGH */
+ case SEEK_CUR:
+ case SEEK_END:
+ errno = ENOTSUP;
+ return -1;
+ default:
+ errno = EINVAL;
+ return -1;
+ }
+
+ return __flock (fd, cmd);
+}
diff --git a/sysdeps/mach/hurd/f_setlk.h b/sysdeps/mach/hurd/f_setlk.h
new file mode 100644
index 0000000000..4fe47fe7ba
--- /dev/null
+++ b/sysdeps/mach/hurd/f_setlk.h
@@ -0,0 +1,23 @@
+/* Copyright (C) 2014-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _F_SETLK_H
+#define _F_SETLK_H 1
+
+extern int __f_setlk (int fd, int type, int whence, __off64_t start, __off64_t len, int wait);
+
+#endif /* f_setlk.h */
diff --git a/sysdeps/mach/hurd/faccessat.c b/sysdeps/mach/hurd/faccessat.c
index d9bceaada7..9f5f1dd4d8 100644
--- a/sysdeps/mach/hurd/faccessat.c
+++ b/sysdeps/mach/hurd/faccessat.c
@@ -1,5 +1,5 @@
/* Test for access to file, relative to open directory. Hurd version.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
@@ -60,7 +60,9 @@ __faccessat_common (int fd, const char *file, int type, int at_flags,
usual effective permissions. */
int hurd_flags = 0;
- __hurd_at_flags (&at_flags, &hurd_flags);
+ err = __hurd_at_flags (&at_flags, &hurd_flags);
+ if (err)
+ return errfunc (err);
error_t reauthenticate_cwdir_at (file_t *result)
{
diff --git a/sysdeps/mach/hurd/fchdir.c b/sysdeps/mach/hurd/fchdir.c
index 94ceda8a03..d862dcbb1e 100644
--- a/sysdeps/mach/hurd/fchdir.c
+++ b/sysdeps/mach/hurd/fchdir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/mach/hurd/fchflags.c b/sysdeps/mach/hurd/fchflags.c
index 443c8d9406..15cc687224 100644
--- a/sysdeps/mach/hurd/fchflags.c
+++ b/sysdeps/mach/hurd/fchflags.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/sysdeps/mach/hurd/fchmod.c b/sysdeps/mach/hurd/fchmod.c
index 5dd5dd99d9..908a38c704 100644
--- a/sysdeps/mach/hurd/fchmod.c
+++ b/sysdeps/mach/hurd/fchmod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/sysdeps/mach/hurd/fchmodat.c b/sysdeps/mach/hurd/fchmodat.c
index 4b4dabad31..5fadca11cc 100644
--- a/sysdeps/mach/hurd/fchmodat.c
+++ b/sysdeps/mach/hurd/fchmodat.c
@@ -1,5 +1,5 @@
/* Change the protections of file relative to open directory. Hurd version.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/sysdeps/mach/hurd/fchown.c b/sysdeps/mach/hurd/fchown.c
index 2c4c666c6f..a8de5054e5 100644
--- a/sysdeps/mach/hurd/fchown.c
+++ b/sysdeps/mach/hurd/fchown.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/sysdeps/mach/hurd/fchownat.c b/sysdeps/mach/hurd/fchownat.c
index 906ec05ba3..031df00151 100644
--- a/sysdeps/mach/hurd/fchownat.c
+++ b/sysdeps/mach/hurd/fchownat.c
@@ -1,5 +1,5 @@
/* Change owner and group of a file relative to open directory. Hurd version.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/sysdeps/mach/hurd/fcntl.c b/sysdeps/mach/hurd/fcntl.c
index 598317d811..0e3f0adbd9 100644
--- a/sysdeps/mach/hurd/fcntl.c
+++ b/sysdeps/mach/hurd/fcntl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
@@ -21,6 +21,7 @@
#include <hurd/fd.h>
#include <stdarg.h>
#include <sys/file.h> /* XXX for LOCK_* */
+#include "f_setlk.h"
/* Perform file control operations on FD. */
int
@@ -128,56 +129,111 @@ __libc_fcntl (int fd, int cmd, ...)
case F_SETLK:
case F_SETLKW:
{
- /* XXX
- We need new RPCs to support POSIX.1 fcntl file locking!!
- For the time being we support the whole-file case only,
- with all kinds of WRONG WRONG WRONG semantics,
- by using flock. This is definitely the Wrong Thing,
- but it might be better than nothing (?). */
struct flock *fl = va_arg (ap, struct flock *);
- va_end (ap);
+
switch (cmd)
{
case F_GETLK:
- errno = ENOSYS;
- return -1;
+ cmd = F_GETLK64;
+ break;
case F_SETLK:
- cmd = LOCK_NB;
+ cmd = F_SETLK64;
break;
- default:
- cmd = 0;
+ case F_SETLKW:
+ cmd = F_SETLKW64;
break;
- }
- switch (fl->l_type)
- {
- case F_RDLCK: cmd |= LOCK_SH; break;
- case F_WRLCK: cmd |= LOCK_EX; break;
- case F_UNLCK: cmd |= LOCK_UN; break;
default:
errno = EINVAL;
return -1;
}
- switch (fl->l_whence)
+
+ struct flock64 fl64 = {
+ .l_type = fl->l_type,
+ .l_whence = fl->l_whence,
+ .l_start = fl->l_start,
+ .l_len = fl->l_len,
+ .l_pid = fl->l_pid
+ };
+
+ err = HURD_FD_PORT_USE (d, __file_record_lock (port, cmd, &fl64,
+ MACH_PORT_NULL, MACH_MSG_TYPE_MAKE_SEND));
+
+ /* XXX: To remove once file_record_lock RPC is settled. */
+ if (err == EMIG_BAD_ID || err == EOPNOTSUPP)
{
- case SEEK_SET:
- if (fl->l_start == 0 && fl->l_len == 0) /* Whole file request. */
- break;
- /* It seems to be common for applications to lock the first
- byte of the file when they are really doing whole-file locking.
- So, since it's so wrong already, might as well do that too. */
- if (fl->l_start == 0 && fl->l_len == 1)
- break;
- /* FALLTHROUGH */
- case SEEK_CUR:
- case SEEK_END:
- errno = ENOTSUP;
- return -1;
- default:
- errno = EINVAL;
- return -1;
+ int wait = 0;
+ va_end (ap);
+ switch (cmd)
+ {
+ case F_GETLK64:
+ errno = ENOSYS;
+ return -1;
+ case F_SETLKW64:
+ wait = 1;
+ /* FALLTHROUGH */
+ case F_SETLK64:
+ return __f_setlk (fd, fl->l_type, fl->l_whence,
+ fl->l_start, fl->l_len, wait);
+ default:
+ errno = EINVAL;
+ return -1;
+ }
+ }
+ else if (cmd == F_GETLK64)
+ {
+ fl->l_type = fl64.l_type;
+ fl->l_whence = fl64.l_whence;
+ fl->l_start = fl64.l_start;
+ fl->l_len = fl64.l_len;
+ fl->l_pid = fl64.l_pid;
+
+ if ((sizeof fl->l_start != sizeof fl64.l_start
+ && fl->l_start != fl64.l_start)
+ || (sizeof fl->l_len != sizeof fl64.l_len
+ && fl->l_len != fl64.l_len))
+ {
+ errno = EOVERFLOW;
+ return -1;
+ }
+ }
+
+ result = err ? __hurd_dfail (fd, err) : 0;
+ break;
+ }
+
+ case F_GETLK64:
+ case F_SETLK64:
+ case F_SETLKW64:
+ {
+ struct flock64 *fl = va_arg (ap, struct flock64 *);
+
+ err = HURD_FD_PORT_USE (d, __file_record_lock (port, cmd, fl,
+ MACH_PORT_NULL, MACH_MSG_TYPE_MAKE_SEND));
+
+ /* XXX: To remove once file_record_lock RPC is settled. */
+ if (err == EMIG_BAD_ID || err == EOPNOTSUPP)
+ {
+ int wait = 0;
+ va_end (ap);
+ switch (cmd)
+ {
+ case F_GETLK64:
+ errno = ENOSYS;
+ return -1;
+ case F_SETLKW64:
+ wait = 1;
+ /* FALLTHROUGH */
+ case F_SETLK64:
+ return __f_setlk (fd, fl->l_type, fl->l_whence,
+ fl->l_start, fl->l_len, wait);
+ default:
+ errno = EINVAL;
+ return -1;
+ }
}
- return __flock (fd, cmd);
+ result = err ? __hurd_dfail (fd, err) : 0;
+ break;
}
case F_GETFL: /* Get per-open flags. */
@@ -215,3 +271,4 @@ strong_alias (__libc_fcntl, __libc_fcntl64)
libc_hidden_def (__libc_fcntl64)
weak_alias (__libc_fcntl64, __fcntl64)
libc_hidden_weak (__fcntl64)
+weak_alias (__fcntl64, fcntl64)
diff --git a/sysdeps/mach/hurd/fcntl64.c b/sysdeps/mach/hurd/fcntl64.c
new file mode 100644
index 0000000000..8b85360690
--- /dev/null
+++ b/sysdeps/mach/hurd/fcntl64.c
@@ -0,0 +1 @@
+/* fcntl64 is defined in fcntl.c as an alias. */
diff --git a/sysdeps/mach/hurd/fdatasync.c b/sysdeps/mach/hurd/fdatasync.c
index eda679f4c6..bdd29b9447 100644
--- a/sysdeps/mach/hurd/fdatasync.c
+++ b/sysdeps/mach/hurd/fdatasync.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/mach/hurd/fdopendir.c b/sysdeps/mach/hurd/fdopendir.c
index ec3a7486fd..2486e9c23d 100644
--- a/sysdeps/mach/hurd/fdopendir.c
+++ b/sysdeps/mach/hurd/fdopendir.c
@@ -1,5 +1,5 @@
/* Open a directory stream from a file descriptor. Hurd version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dirent.h>
#include <errno.h>
diff --git a/sysdeps/mach/hurd/fexecve.c b/sysdeps/mach/hurd/fexecve.c
index c5679f197e..05800c9602 100644
--- a/sysdeps/mach/hurd/fexecve.c
+++ b/sysdeps/mach/hurd/fexecve.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <hurd.h>
diff --git a/sysdeps/mach/hurd/fgetxattr.c b/sysdeps/mach/hurd/fgetxattr.c
index fc0b1feb12..80c03ecf58 100644
--- a/sysdeps/mach/hurd/fgetxattr.c
+++ b/sysdeps/mach/hurd/fgetxattr.c
@@ -1,5 +1,5 @@
/* Access to extended attributes on files. Hurd version.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/xattr.h>
diff --git a/sysdeps/mach/hurd/flistxattr.c b/sysdeps/mach/hurd/flistxattr.c
index 4564f50948..794f6eb14d 100644
--- a/sysdeps/mach/hurd/flistxattr.c
+++ b/sysdeps/mach/hurd/flistxattr.c
@@ -1,5 +1,5 @@
/* Access to extended attributes on files. Hurd version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/xattr.h>
diff --git a/sysdeps/mach/hurd/flock.c b/sysdeps/mach/hurd/flock.c
index 6d6f748df3..977ca4e82a 100644
--- a/sysdeps/mach/hurd/flock.c
+++ b/sysdeps/mach/hurd/flock.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/file.h>
diff --git a/sysdeps/mach/hurd/fork.c b/sysdeps/mach/hurd/fork.c
index 2d1e64c8d1..d0bf7642b8 100644
--- a/sysdeps/mach/hurd/fork.c
+++ b/sysdeps/mach/hurd/fork.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
@@ -271,11 +271,11 @@ __fork (void)
port,
MACH_MSG_TYPE_MOVE_SEND))
LOSE;
- if (refs > 1 &&
- (err = __mach_port_mod_refs (newtask,
- portnames[i],
- MACH_PORT_RIGHT_SEND,
- refs - 1)))
+ if (refs > 1
+ && (err = __mach_port_mod_refs (newtask,
+ portnames[i],
+ MACH_PORT_RIGHT_SEND,
+ refs - 1)))
LOSE;
}
if (porttypes[i] & MACH_PORT_TYPE_SEND_ONCE)
@@ -297,8 +297,8 @@ __fork (void)
LOSE;
}
}
- else if (porttypes[i] &
- (MACH_PORT_TYPE_SEND|MACH_PORT_TYPE_DEAD_NAME))
+ else if (porttypes[i]
+ & (MACH_PORT_TYPE_SEND|MACH_PORT_TYPE_DEAD_NAME))
{
/* This is a send right or a dead name.
Give the child as many references for it as we have. */
@@ -367,8 +367,8 @@ __fork (void)
LOSE;
if (insert == MACH_PORT_NULL)
continue;
- if (insert == portnames[i] &&
- (porttypes[i] & MACH_PORT_TYPE_DEAD_NAME))
+ if (insert == portnames[i]
+ && (porttypes[i] & MACH_PORT_TYPE_DEAD_NAME))
/* This is a dead name; allocate another dead name
with the same name in the child. */
allocate_dead_name:
@@ -393,10 +393,10 @@ __fork (void)
assert (__mach_port_extract_right (newtask, portnames[i],
MACH_MSG_TYPE_COPY_SEND,
&childport,
- &poly) == 0 &&
- childport == insert &&
- __mach_port_deallocate (__mach_task_self (),
- childport) == 0);
+ &poly) == 0
+ && childport == insert
+ && __mach_port_deallocate (__mach_task_self (),
+ childport) == 0);
break;
}
@@ -411,11 +411,11 @@ __fork (void)
case KERN_SUCCESS:
/* Give the child as many user references as we have. */
- if (refs > 1 &&
- (err = __mach_port_mod_refs (newtask,
- portnames[i],
- MACH_PORT_RIGHT_SEND,
- refs - 1)))
+ if (refs > 1
+ && (err = __mach_port_mod_refs (newtask,
+ portnames[i],
+ MACH_PORT_RIGHT_SEND,
+ refs - 1)))
LOSE;
}
}
@@ -432,33 +432,35 @@ __fork (void)
resume_threads ();
/* Create the child main user thread and signal thread. */
- if ((err = __thread_create (newtask, &thread)) ||
- (err = __thread_create (newtask, &sigthread)))
+ if ((err = __thread_create (newtask, &thread))
+ || (err = __thread_create (newtask, &sigthread)))
LOSE;
/* Insert send rights for those threads. We previously allocated
dead name rights with the names we want to give the thread ports
in the child as placeholders. Now deallocate them so we can use
the names. */
- if ((err = __mach_port_deallocate (newtask, ss->thread)) ||
- (err = __mach_port_insert_right (newtask, ss->thread,
- thread, MACH_MSG_TYPE_COPY_SEND)))
+ if ((err = __mach_port_deallocate (newtask, ss->thread))
+ || (err = __mach_port_insert_right (newtask, ss->thread,
+ thread,
+ MACH_MSG_TYPE_COPY_SEND)))
LOSE;
- if (thread_refs > 1 &&
- (err = __mach_port_mod_refs (newtask, ss->thread,
- MACH_PORT_RIGHT_SEND,
- thread_refs - 1)))
+ if (thread_refs > 1
+ && (err = __mach_port_mod_refs (newtask, ss->thread,
+ MACH_PORT_RIGHT_SEND,
+ thread_refs - 1)))
LOSE;
if ((_hurd_msgport_thread != MACH_PORT_NULL) /* Let user have none. */
- && ((err = __mach_port_deallocate (newtask, _hurd_msgport_thread)) ||
- (err = __mach_port_insert_right (newtask, _hurd_msgport_thread,
- sigthread,
- MACH_MSG_TYPE_COPY_SEND))))
+ && ((err = __mach_port_deallocate (newtask, _hurd_msgport_thread))
+ || (err = __mach_port_insert_right (newtask,
+ _hurd_msgport_thread,
+ sigthread,
+ MACH_MSG_TYPE_COPY_SEND))))
LOSE;
- if (sigthread_refs > 1 &&
- (err = __mach_port_mod_refs (newtask, _hurd_msgport_thread,
- MACH_PORT_RIGHT_SEND,
- sigthread_refs - 1)))
+ if (sigthread_refs > 1
+ && (err = __mach_port_mod_refs (newtask, _hurd_msgport_thread,
+ MACH_PORT_RIGHT_SEND,
+ sigthread_refs - 1)))
LOSE;
/* This seems like a convenient juncture to copy the proc server's
diff --git a/sysdeps/mach/hurd/fpathconf.c b/sysdeps/mach/hurd/fpathconf.c
index 4332aa70ac..a2669aee88 100644
--- a/sysdeps/mach/hurd/fpathconf.c
+++ b/sysdeps/mach/hurd/fpathconf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/sysdeps/mach/hurd/fremovexattr.c b/sysdeps/mach/hurd/fremovexattr.c
index 662ae38f89..3ae38859e3 100644
--- a/sysdeps/mach/hurd/fremovexattr.c
+++ b/sysdeps/mach/hurd/fremovexattr.c
@@ -1,5 +1,5 @@
/* Access to extended attributes on files. Hurd version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/xattr.h>
diff --git a/sysdeps/mach/hurd/fsetxattr.c b/sysdeps/mach/hurd/fsetxattr.c
index cd9653765c..9051fbc494 100644
--- a/sysdeps/mach/hurd/fsetxattr.c
+++ b/sysdeps/mach/hurd/fsetxattr.c
@@ -1,5 +1,5 @@
/* Access to extended attributes on files. Hurd version.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/xattr.h>
diff --git a/sysdeps/mach/hurd/fstatfs.c b/sysdeps/mach/hurd/fstatfs.c
index e8b03d24e7..c06fef4a86 100644
--- a/sysdeps/mach/hurd/fstatfs.c
+++ b/sysdeps/mach/hurd/fstatfs.c
@@ -1,5 +1,5 @@
/* fstatfs -- Return information about the filesystem on which FD resides.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/statfs.h>
diff --git a/sysdeps/mach/hurd/fstatfs64.c b/sysdeps/mach/hurd/fstatfs64.c
index 364b96e14d..adc4430a4c 100644
--- a/sysdeps/mach/hurd/fstatfs64.c
+++ b/sysdeps/mach/hurd/fstatfs64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/statfs.h>
#include <hurd.h>
diff --git a/sysdeps/mach/hurd/fstatvfs.c b/sysdeps/mach/hurd/fstatvfs.c
index 4fbf6e5bed..14c8f38145 100644
--- a/sysdeps/mach/hurd/fstatvfs.c
+++ b/sysdeps/mach/hurd/fstatvfs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/statfs.h>
#include <sys/statvfs.h>
diff --git a/sysdeps/mach/hurd/fstatvfs64.c b/sysdeps/mach/hurd/fstatvfs64.c
index f5e03316f4..f421355b87 100644
--- a/sysdeps/mach/hurd/fstatvfs64.c
+++ b/sysdeps/mach/hurd/fstatvfs64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/statfs.h>
#include <sys/statvfs.h>
diff --git a/sysdeps/mach/hurd/fsync.c b/sysdeps/mach/hurd/fsync.c
index d8ae6e0358..278edb9b2b 100644
--- a/sysdeps/mach/hurd/fsync.c
+++ b/sysdeps/mach/hurd/fsync.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/mach/hurd/ftruncate.c b/sysdeps/mach/hurd/ftruncate.c
index 94e17803ac..34d94083ff 100644
--- a/sysdeps/mach/hurd/ftruncate.c
+++ b/sysdeps/mach/hurd/ftruncate.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/types.h>
diff --git a/sysdeps/mach/hurd/ftruncate64.c b/sysdeps/mach/hurd/ftruncate64.c
index 7a33dd1823..6e3c09f69b 100644
--- a/sysdeps/mach/hurd/ftruncate64.c
+++ b/sysdeps/mach/hurd/ftruncate64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/types.h>
diff --git a/sysdeps/mach/hurd/futimens.c b/sysdeps/mach/hurd/futimens.c
index 4a3943e673..80895f1a55 100644
--- a/sysdeps/mach/hurd/futimens.c
+++ b/sysdeps/mach/hurd/futimens.c
@@ -1,5 +1,5 @@
/* futimens -- change access and modification times of open file. Hurd version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/time.h>
#include <errno.h>
diff --git a/sysdeps/mach/hurd/futimes.c b/sysdeps/mach/hurd/futimes.c
index 1b521e3e51..da47ff6688 100644
--- a/sysdeps/mach/hurd/futimes.c
+++ b/sysdeps/mach/hurd/futimes.c
@@ -1,5 +1,5 @@
/* futimes -- change access and modification times of open file. Hurd version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/time.h>
#include <errno.h>
diff --git a/sysdeps/mach/hurd/futimesat.c b/sysdeps/mach/hurd/futimesat.c
index b4939bf644..28b93f8cac 100644
--- a/sysdeps/mach/hurd/futimesat.c
+++ b/sysdeps/mach/hurd/futimesat.c
@@ -1,5 +1,5 @@
/* futimesat -- change access and modification times of file. Hurd version.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/time.h>
#include <errno.h>
diff --git a/sysdeps/mach/hurd/fxstat.c b/sysdeps/mach/hurd/fxstat.c
index f6570af630..b500b528f0 100644
--- a/sysdeps/mach/hurd/fxstat.c
+++ b/sysdeps/mach/hurd/fxstat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/sysdeps/mach/hurd/fxstat64.c b/sysdeps/mach/hurd/fxstat64.c
index fcdbb3671e..870a1a9bd8 100644
--- a/sysdeps/mach/hurd/fxstat64.c
+++ b/sysdeps/mach/hurd/fxstat64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef RTLD_STAT64 /* dl-fxstat64.c, but we don't want it. */
diff --git a/sysdeps/mach/hurd/fxstatat.c b/sysdeps/mach/hurd/fxstatat.c
index 06100d2226..9391cc4763 100644
--- a/sysdeps/mach/hurd/fxstatat.c
+++ b/sysdeps/mach/hurd/fxstatat.c
@@ -1,5 +1,5 @@
/* Get information about file named relative to open directory. Hurd version.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/sysdeps/mach/hurd/fxstatat64.c b/sysdeps/mach/hurd/fxstatat64.c
index 909f6f2481..bbf03cde77 100644
--- a/sysdeps/mach/hurd/fxstatat64.c
+++ b/sysdeps/mach/hurd/fxstatat64.c
@@ -1,5 +1,5 @@
/* Get information about file named relative to open directory. Hurd version.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/sysdeps/mach/hurd/gai_misc.h b/sysdeps/mach/hurd/gai_misc.h
index 7804139baa..5fc9d1471f 100644
--- a/sysdeps/mach/hurd/gai_misc.h
+++ b/sysdeps/mach/hurd/gai_misc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2006-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <signal.h>
diff --git a/sysdeps/mach/hurd/getclktck.c b/sysdeps/mach/hurd/getclktck.c
index 35458361f4..60b37ce313 100644
--- a/sysdeps/mach/hurd/getclktck.c
+++ b/sysdeps/mach/hurd/getclktck.c
@@ -1,5 +1,5 @@
/* Return run-time value of CLK_TCK for Hurd.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <time.h>
diff --git a/sysdeps/mach/hurd/getcwd.c b/sysdeps/mach/hurd/getcwd.c
index c30b7c507b..4114991144 100644
--- a/sysdeps/mach/hurd/getcwd.c
+++ b/sysdeps/mach/hurd/getcwd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/types.h>
@@ -148,8 +148,8 @@ __hurd_canonicalize_directory_name_internal (file_t thisdir,
dirdata = dirbuf;
dirdatasize = dirbufsize;
while (!(err = __dir_readdir (parent, &dirdata, &dirdatasize,
- direntry, -1, 0, &nentries)) &&
- nentries != 0)
+ direntry, -1, 0, &nentries))
+ && nentries != 0)
{
/* We have a block of directory entries. */
@@ -178,9 +178,9 @@ __hurd_canonicalize_directory_name_internal (file_t thisdir,
offset += d->d_reclen;
/* Ignore `.' and `..'. */
- if (d->d_name[0] == '.' &&
- (d->d_namlen == 1 ||
- (d->d_namlen == 2 && d->d_name[1] == '.')))
+ if (d->d_name[0] == '.'
+ && (d->d_namlen == 1
+ || (d->d_namlen == 2 && d->d_name[1] == '.')))
continue;
if (mount_point || d->d_ino == thisino)
@@ -266,11 +266,6 @@ __hurd_canonicalize_directory_name_internal (file_t thisdir,
So the root is our current directory. */
*--file_namep = '/';
- if (thisid != rootid)
- /* We did not get to our root directory. The returned name should
- not begin with a slash. */
- ++file_namep;
-
memmove (file_name, file_namep, file_name + size - file_namep);
cleanup ();
return file_name;
@@ -309,13 +304,7 @@ __getcwd (char *buf, size_t size)
__USEPORT (CWDIR,
__hurd_canonicalize_directory_name_internal (port,
buf, size));
- if (cwd && cwd[0] != '/')
- {
- /* `cwd' is an unknown root directory. */
- if (buf == NULL)
- free (cwd);
- return __hurd_fail (EGRATUITOUS), NULL;
- }
return cwd;
}
+libc_hidden_def (__getcwd)
weak_alias (__getcwd, getcwd)
diff --git a/sysdeps/mach/hurd/getdomain.c b/sysdeps/mach/hurd/getdomain.c
index dc32228849..aa6282b06a 100644
--- a/sysdeps/mach/hurd/getdomain.c
+++ b/sysdeps/mach/hurd/getdomain.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include "hurdhost.h"
diff --git a/sysdeps/mach/hurd/getdtsz.c b/sysdeps/mach/hurd/getdtsz.c
index 3fb8231d99..b19ed24f0c 100644
--- a/sysdeps/mach/hurd/getdtsz.c
+++ b/sysdeps/mach/hurd/getdtsz.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/mach/hurd/getegid.c b/sysdeps/mach/hurd/getegid.c
index d232482740..d84ed39d4e 100644
--- a/sysdeps/mach/hurd/getegid.c
+++ b/sysdeps/mach/hurd/getegid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/mach/hurd/getentropy.c b/sysdeps/mach/hurd/getentropy.c
new file mode 100644
index 0000000000..06175d90ce
--- /dev/null
+++ b/sysdeps/mach/hurd/getentropy.c
@@ -0,0 +1,64 @@
+/* Implementation of getentropy based on getrandom.
+ Copyright (C) 2016-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <sys/random.h>
+#include <assert.h>
+#include <errno.h>
+#include <unistd.h>
+
+/* Write LENGTH bytes of randomness starting at BUFFER. Return 0 on
+ success and -1 on failure. */
+int
+getentropy (void *buffer, size_t length)
+{
+ /* The interface is documented to return EIO for buffer lengths
+ longer than 256 bytes. */
+ if (length > 256)
+ {
+ __set_errno (EIO);
+ return -1;
+ }
+
+ /* Try to fill the buffer completely. Even with the 256 byte limit
+ above, we might still receive an EINTR error (when blocking
+ during boot). */
+ void *end = buffer + length;
+ while (buffer < end)
+ {
+ /* NB: No cancellation point. */
+ ssize_t bytes = __getrandom (buffer, end - buffer, 0);
+ if (bytes < 0)
+ {
+ if (errno == EINTR)
+ /* Try again if interrupted by a signal. */
+ continue;
+ else
+ return -1;
+ }
+ if (bytes == 0)
+ {
+ /* No more bytes available. This should not happen under
+ normal circumstances. */
+ __set_errno (EIO);
+ return -1;
+ }
+ /* Try again in case of a short read. */
+ buffer += bytes;
+ }
+ return 0;
+}
diff --git a/sysdeps/mach/hurd/geteuid.c b/sysdeps/mach/hurd/geteuid.c
index a8c87ccb69..d18e44b7aa 100644
--- a/sysdeps/mach/hurd/geteuid.c
+++ b/sysdeps/mach/hurd/geteuid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/mach/hurd/getgid.c b/sysdeps/mach/hurd/getgid.c
index 1e35f9c906..16b3d85985 100644
--- a/sysdeps/mach/hurd/getgid.c
+++ b/sysdeps/mach/hurd/getgid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/mach/hurd/getgroups.c b/sysdeps/mach/hurd/getgroups.c
index ad6babe56d..c2a35d024b 100644
--- a/sysdeps/mach/hurd/getgroups.c
+++ b/sysdeps/mach/hurd/getgroups.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/mach/hurd/gethostid.c b/sysdeps/mach/hurd/gethostid.c
index 0cfbb8ae7f..ea4927e413 100644
--- a/sysdeps/mach/hurd/gethostid.c
+++ b/sysdeps/mach/hurd/gethostid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <hurd.h>
diff --git a/sysdeps/mach/hurd/gethostname.c b/sysdeps/mach/hurd/gethostname.c
index 41fe0ecc1f..532f86faaa 100644
--- a/sysdeps/mach/hurd/gethostname.c
+++ b/sysdeps/mach/hurd/gethostname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include "hurdhost.h"
diff --git a/sysdeps/mach/hurd/getitimer.c b/sysdeps/mach/hurd/getitimer.c
index 65ffe9386e..0982357815 100644
--- a/sysdeps/mach/hurd/getitimer.c
+++ b/sysdeps/mach/hurd/getitimer.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -13,14 +13,15 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <errno.h>
#include <sys/time.h>
#include <hurd.h>
+#include <mach.h>
-/* XXX Temporary cheezoid implementation; see __setitmr.c. */
+/* XXX Temporary cheezoid implementation; see setitimer.c. */
/* These are defined in __setitmr.c. */
extern spin_lock_t _hurd_itimer_lock;
@@ -61,8 +62,12 @@ __getitimer (enum __itimer_which which, struct itimerval *value)
}
/* Get the time now. */
- if (__gettimeofday (&elapsed, NULL) < 0)
- return -1;
+ {
+ time_value_t tv;
+ __host_get_time (__mach_host_self (), &tv);
+ elapsed.tv_sec = tv.seconds;
+ elapsed.tv_usec = tv.microseconds;
+ }
/* Extract the current timer setting; and the time it was set, so we can
calculate the time elapsed so far. */
diff --git a/sysdeps/mach/hurd/getlogin.c b/sysdeps/mach/hurd/getlogin.c
index 0ee5a28bc9..ebdccc18eb 100644
--- a/sysdeps/mach/hurd/getlogin.c
+++ b/sysdeps/mach/hurd/getlogin.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <errno.h>
diff --git a/sysdeps/mach/hurd/getlogin_r.c b/sysdeps/mach/hurd/getlogin_r.c
index 79b8271a74..0a24307161 100644
--- a/sysdeps/mach/hurd/getlogin_r.c
+++ b/sysdeps/mach/hurd/getlogin_r.c
@@ -1,5 +1,5 @@
/* Reentrant function to return the current login name. Hurd version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/mach/hurd/getpeername.c b/sysdeps/mach/hurd/getpeername.c
index dc78538b75..b75e4ff199 100644
--- a/sysdeps/mach/hurd/getpeername.c
+++ b/sysdeps/mach/hurd/getpeername.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <string.h>
diff --git a/sysdeps/mach/hurd/getpgid.c b/sysdeps/mach/hurd/getpgid.c
index 83d14eaa27..d003b0bd97 100644
--- a/sysdeps/mach/hurd/getpgid.c
+++ b/sysdeps/mach/hurd/getpgid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/mach/hurd/getpid.c b/sysdeps/mach/hurd/getpid.c
index a7943def59..f528990980 100644
--- a/sysdeps/mach/hurd/getpid.c
+++ b/sysdeps/mach/hurd/getpid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/mach/hurd/getppid.c b/sysdeps/mach/hurd/getppid.c
index 212c9607c2..9c65b8a9e2 100644
--- a/sysdeps/mach/hurd/getppid.c
+++ b/sysdeps/mach/hurd/getppid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/mach/hurd/getpriority.c b/sysdeps/mach/hurd/getpriority.c
index c581ddd10f..6d14eca727 100644
--- a/sysdeps/mach/hurd/getpriority.c
+++ b/sysdeps/mach/hurd/getpriority.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <limits.h>
#include <hurd.h>
diff --git a/sysdeps/mach/hurd/getrandom.c b/sysdeps/mach/hurd/getrandom.c
new file mode 100644
index 0000000000..8bf42aa40d
--- /dev/null
+++ b/sysdeps/mach/hurd/getrandom.c
@@ -0,0 +1,46 @@
+/* Hurdish implementation of getrandom
+ Copyright (C) 2016-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <sys/random.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <not-cancel.h>
+
+/* Write up to LENGTH bytes of randomness starting at BUFFER.
+ Return the number of bytes written, or -1 on error. */
+ssize_t
+__getrandom (void *buffer, size_t length, unsigned int flags)
+{
+ const char *random_source = "/dev/urandom";
+ size_t amount_read;
+ int fd;
+
+ if (flags & GRND_RANDOM)
+ random_source = "/dev/random";
+
+ fd = __open_nocancel(random_source, O_RDONLY | O_CLOEXEC);
+ if (fd == -1)
+ return -1;
+
+ amount_read = __read_nocancel(fd, buffer, length);
+ __close_nocancel_nostatus(fd);
+ return amount_read;
+}
+
+libc_hidden_def (__getrandom)
+weak_alias (__getrandom, getrandom)
diff --git a/sysdeps/mach/hurd/getresgid.c b/sysdeps/mach/hurd/getresgid.c
index e5eeba8ac5..ed37877f99 100644
--- a/sysdeps/mach/hurd/getresgid.c
+++ b/sysdeps/mach/hurd/getresgid.c
@@ -1,5 +1,5 @@
/* getresgid -- fetch real group ID, effective group ID, and saved-set group ID
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/mach/hurd/getresuid.c b/sysdeps/mach/hurd/getresuid.c
index 4af4786fc5..fdb61a3af5 100644
--- a/sysdeps/mach/hurd/getresuid.c
+++ b/sysdeps/mach/hurd/getresuid.c
@@ -1,5 +1,5 @@
/* getresuid -- fetch real user ID, effective user ID, and saved-set user ID
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/mach/hurd/getrlimit.c b/sysdeps/mach/hurd/getrlimit.c
index 5b994c59a7..ed93841433 100644
--- a/sysdeps/mach/hurd/getrlimit.c
+++ b/sysdeps/mach/hurd/getrlimit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/resource.h>
#include <errno.h>
diff --git a/sysdeps/mach/hurd/getrusage.c b/sysdeps/mach/hurd/getrusage.c
index dfda2b7e1b..3b2f07741d 100644
--- a/sysdeps/mach/hurd/getrusage.c
+++ b/sysdeps/mach/hurd/getrusage.c
@@ -1,5 +1,5 @@
/* getrusage -- Get resource usage information about processes. Hurd version.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <string.h>
diff --git a/sysdeps/mach/hurd/getsid.c b/sysdeps/mach/hurd/getsid.c
index ae0e0a96bd..cb4a49dad6 100644
--- a/sysdeps/mach/hurd/getsid.c
+++ b/sysdeps/mach/hurd/getsid.c
@@ -1,5 +1,5 @@
/* getsid -- Return session ID of a process. Hurd version.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <unistd.h>
diff --git a/sysdeps/mach/hurd/getsockname.c b/sysdeps/mach/hurd/getsockname.c
index 2e56564824..3b7c938717 100644
--- a/sysdeps/mach/hurd/getsockname.c
+++ b/sysdeps/mach/hurd/getsockname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <string.h>
diff --git a/sysdeps/mach/hurd/getsockopt.c b/sysdeps/mach/hurd/getsockopt.c
index 364a622188..a2ac8da38f 100644
--- a/sysdeps/mach/hurd/getsockopt.c
+++ b/sysdeps/mach/hurd/getsockopt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/socket.h>
diff --git a/sysdeps/mach/hurd/getuid.c b/sysdeps/mach/hurd/getuid.c
index 80acbd4987..b069044ce2 100644
--- a/sysdeps/mach/hurd/getuid.c
+++ b/sysdeps/mach/hurd/getuid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/mach/hurd/getxattr.c b/sysdeps/mach/hurd/getxattr.c
index 3463bdfcb2..3fd973c88f 100644
--- a/sysdeps/mach/hurd/getxattr.c
+++ b/sysdeps/mach/hurd/getxattr.c
@@ -1,5 +1,5 @@
/* Access to extended attributes on files. Hurd version.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/xattr.h>
diff --git a/sysdeps/mach/hurd/group_member.c b/sysdeps/mach/hurd/group_member.c
index 5b4be63218..248fd92264 100644
--- a/sysdeps/mach/hurd/group_member.c
+++ b/sysdeps/mach/hurd/group_member.c
@@ -1,5 +1,5 @@
/* `group_member' -- test if process is in a given group. Hurd version.
- Copyright (C) 1993-2018 Free Software Foundation, Inc.
+ Copyright (C) 1993-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/mach/hurd/hp-timing.h b/sysdeps/mach/hurd/hp-timing.h
index 7bff90cb93..fd6914060a 100644
--- a/sysdeps/mach/hurd/hp-timing.h
+++ b/sysdeps/mach/hurd/hp-timing.h
@@ -1,5 +1,5 @@
/* High precision, low overhead timing functions. Generic version.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* We don't have support for high precision timing for now. */
#include <sysdeps/generic/hp-timing.h>
diff --git a/sysdeps/mach/hurd/htl/bits/pthread-np.h b/sysdeps/mach/hurd/htl/bits/pthread-np.h
index e42fb3a038..6ed2240741 100644
--- a/sysdeps/mach/hurd/htl/bits/pthread-np.h
+++ b/sysdeps/mach/hurd/htl/bits/pthread-np.h
@@ -1,5 +1,5 @@
/* Non-portable functions. Hurd on Mach version.
- Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* Never include this file directly; use <pthread.h> or <cthreads.h> instead.
diff --git a/sysdeps/mach/hurd/htl/bits/types/struct___pthread_mutex.h b/sysdeps/mach/hurd/htl/bits/types/struct___pthread_mutex.h
index 8417ee9531..25de7c3c06 100644
--- a/sysdeps/mach/hurd/htl/bits/types/struct___pthread_mutex.h
+++ b/sysdeps/mach/hurd/htl/bits/types/struct___pthread_mutex.h
@@ -1,5 +1,5 @@
/* Mutex type. Generic version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_TYPES_STRUCT___PTHREAD_MUTEX_H
#define _BITS_TYPES_STRUCT___PTHREAD_MUTEX_H 1
diff --git a/sysdeps/mach/hurd/htl/pt-attr-setstackaddr.c b/sysdeps/mach/hurd/htl/pt-attr-setstackaddr.c
index ff6bee83d0..b2eaa7b535 100644
--- a/sysdeps/mach/hurd/htl/pt-attr-setstackaddr.c
+++ b/sysdeps/mach/hurd/htl/pt-attr-setstackaddr.c
@@ -1,5 +1,5 @@
/* pthread_attr_setstackaddr. Hurd on Mach version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/mach/hurd/htl/pt-attr-setstacksize.c b/sysdeps/mach/hurd/htl/pt-attr-setstacksize.c
index e5c59d14b4..bcb12df0e5 100644
--- a/sysdeps/mach/hurd/htl/pt-attr-setstacksize.c
+++ b/sysdeps/mach/hurd/htl/pt-attr-setstacksize.c
@@ -1,5 +1,5 @@
/* pthread_attr_setstacksize. Hurd on Mach version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/mach/hurd/htl/pt-docancel.c b/sysdeps/mach/hurd/htl/pt-docancel.c
index 6e9428ce57..0cd5bf4c7a 100644
--- a/sysdeps/mach/hurd/htl/pt-docancel.c
+++ b/sysdeps/mach/hurd/htl/pt-docancel.c
@@ -1,5 +1,5 @@
/* Cancel a thread.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
diff --git a/sysdeps/mach/hurd/htl/pt-hurd-cond-timedwait.c b/sysdeps/mach/hurd/htl/pt-hurd-cond-timedwait.c
index 263d3bfd27..aa3eb9884c 100644
--- a/sysdeps/mach/hurd/htl/pt-hurd-cond-timedwait.c
+++ b/sysdeps/mach/hurd/htl/pt-hurd-cond-timedwait.c
@@ -1,5 +1,5 @@
/* pthread_hurd_cond_timedwait_np. Hurd-specific wait on a condition.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,11 +14,12 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <assert.h>
#include <hurd/signal.h>
+#include <time.h>
#include <pt-internal.h>
@@ -69,7 +70,7 @@ __pthread_hurd_cond_timedwait_internal (pthread_cond_t *cond,
assert (ss->intr_port == MACH_PORT_NULL); /* Sanity check for signal bugs. */
- if (abstime != NULL && (abstime->tv_nsec < 0 || abstime->tv_nsec >= 1000000000))
+ if (abstime != NULL && ! valid_nanoseconds (abstime->tv_nsec))
return EINVAL;
/* Atomically enqueue our thread on the condition variable's queue of
diff --git a/sysdeps/mach/hurd/htl/pt-hurd-cond-wait.c b/sysdeps/mach/hurd/htl/pt-hurd-cond-wait.c
index 067bd667e7..dd69b76861 100644
--- a/sysdeps/mach/hurd/htl/pt-hurd-cond-wait.c
+++ b/sysdeps/mach/hurd/htl/pt-hurd-cond-wait.c
@@ -1,5 +1,5 @@
/* pthread_hurd_cond_wait. Hurd-specific wait on a condition.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <assert.h>
diff --git a/sysdeps/mach/hurd/htl/pt-mutex-consistent.c b/sysdeps/mach/hurd/htl/pt-mutex-consistent.c
index e02f959a57..1ed7f874f0 100644
--- a/sysdeps/mach/hurd/htl/pt-mutex-consistent.c
+++ b/sysdeps/mach/hurd/htl/pt-mutex-consistent.c
@@ -1,5 +1,5 @@
/* pthread_mutex_consistent. Hurd version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdlib.h>
@@ -29,11 +29,11 @@ pthread_mutex_consistent (pthread_mutex_t *mtxp)
int ret = EINVAL;
unsigned int val = mtxp->__lock;
- if ((mtxp->__flags & PTHREAD_MUTEX_ROBUST) != 0 &&
- (val & LLL_DEAD_OWNER) != 0 &&
- atomic_compare_and_exchange_bool_acq (&mtxp->__lock,
- __getpid () | LLL_WAITERS,
- val) == 0)
+ if ((mtxp->__flags & PTHREAD_MUTEX_ROBUST) != 0
+ && (val & LLL_DEAD_OWNER) != 0
+ && atomic_compare_and_exchange_bool_acq (&mtxp->__lock,
+ __getpid () | LLL_WAITERS,
+ val) == 0)
{
/* The mutex is now ours, and it's consistent. */
mtxp->__owner_id = _pthread_self ()->thread;
diff --git a/sysdeps/mach/hurd/htl/pt-mutex-destroy.c b/sysdeps/mach/hurd/htl/pt-mutex-destroy.c
index 7e7c4bd7a7..471cef55b3 100644
--- a/sysdeps/mach/hurd/htl/pt-mutex-destroy.c
+++ b/sysdeps/mach/hurd/htl/pt-mutex-destroy.c
@@ -1,5 +1,5 @@
/* pthread_mutex_destroy. Hurd version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdlib.h>
diff --git a/sysdeps/mach/hurd/htl/pt-mutex-getprioceiling.c b/sysdeps/mach/hurd/htl/pt-mutex-getprioceiling.c
index e52da9cad2..048292a2c0 100644
--- a/sysdeps/mach/hurd/htl/pt-mutex-getprioceiling.c
+++ b/sysdeps/mach/hurd/htl/pt-mutex-getprioceiling.c
@@ -1,5 +1,5 @@
/* pthread_mutex_getprioceiling. Hurd version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdlib.h>
diff --git a/sysdeps/mach/hurd/htl/pt-mutex-init.c b/sysdeps/mach/hurd/htl/pt-mutex-init.c
index 687a4c0e67..d88cbda98d 100644
--- a/sysdeps/mach/hurd/htl/pt-mutex-init.c
+++ b/sysdeps/mach/hurd/htl/pt-mutex-init.c
@@ -1,5 +1,5 @@
/* pthread_mutex_init. Hurd version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdlib.h>
@@ -37,13 +37,13 @@ _pthread_mutex_init (pthread_mutex_t *mtxp, const pthread_mutexattr_t *attrp)
if (attrp == NULL)
attrp = &dfl_attr;
- mtxp->__flags = (attrp->__pshared == PTHREAD_PROCESS_SHARED ?
- GSYNC_SHARED : 0) | ((attrp->
- __prioceiling & PTHREAD_MUTEX_ROBUST) ?
- PTHREAD_MUTEX_ROBUST : 0);
+ mtxp->__flags = (attrp->__pshared == PTHREAD_PROCESS_SHARED
+ ? GSYNC_SHARED : 0) | ((attrp->__prioceiling
+ & PTHREAD_MUTEX_ROBUST)
+ ? PTHREAD_MUTEX_ROBUST : 0);
- mtxp->__type = attrp->__mutex_type +
- (attrp->__mutex_type != __PTHREAD_MUTEX_TIMED);
+ mtxp->__type = (attrp->__mutex_type
+ + (attrp->__mutex_type != __PTHREAD_MUTEX_TIMED));
mtxp->__owner_id = 0;
mtxp->__shpid = 0;
diff --git a/sysdeps/mach/hurd/htl/pt-mutex-lock.c b/sysdeps/mach/hurd/htl/pt-mutex-lock.c
index a7f1537756..843a31e8b1 100644
--- a/sysdeps/mach/hurd/htl/pt-mutex-lock.c
+++ b/sysdeps/mach/hurd/htl/pt-mutex-lock.c
@@ -1,5 +1,5 @@
/* pthread_mutex_lock. Hurd version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdlib.h>
diff --git a/sysdeps/mach/hurd/htl/pt-mutex-setprioceiling.c b/sysdeps/mach/hurd/htl/pt-mutex-setprioceiling.c
index c06520a83d..cb228455e5 100644
--- a/sysdeps/mach/hurd/htl/pt-mutex-setprioceiling.c
+++ b/sysdeps/mach/hurd/htl/pt-mutex-setprioceiling.c
@@ -1,5 +1,5 @@
/* pthread_mutex_setprioceiling. Hurd version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdlib.h>
diff --git a/sysdeps/mach/hurd/htl/pt-mutex-timedlock.c b/sysdeps/mach/hurd/htl/pt-mutex-timedlock.c
index f804ac08ad..e910e66325 100644
--- a/sysdeps/mach/hurd/htl/pt-mutex-timedlock.c
+++ b/sysdeps/mach/hurd/htl/pt-mutex-timedlock.c
@@ -1,5 +1,5 @@
/* pthread_mutex_timedlock. Hurd version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdlib.h>
diff --git a/sysdeps/mach/hurd/htl/pt-mutex-transfer-np.c b/sysdeps/mach/hurd/htl/pt-mutex-transfer-np.c
index f6281292ab..d1eb35df33 100644
--- a/sysdeps/mach/hurd/htl/pt-mutex-transfer-np.c
+++ b/sysdeps/mach/hurd/htl/pt-mutex-transfer-np.c
@@ -1,6 +1,6 @@
/* pthread_mutex_transfer_np. Transfer mutex ownership to another thread.
Hurd version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdlib.h>
@@ -58,8 +58,8 @@ __pthread_mutex_transfer_np (pthread_mutex_t *mtxp, pthread_t th)
/* Note that this can be used to transfer an inconsistent
* mutex as well. The new owner will still have the same
* flags as the original. */
- if (mtxp->__owner_id != self->thread ||
- (int) (mtxp->__lock & LLL_OWNER_MASK) != __getpid ())
+ if (mtxp->__owner_id != self->thread
+ || (int) (mtxp->__lock & LLL_OWNER_MASK) != __getpid ())
ret = EPERM;
else
mtxp->__owner_id = pt->thread;
diff --git a/sysdeps/mach/hurd/htl/pt-mutex-trylock.c b/sysdeps/mach/hurd/htl/pt-mutex-trylock.c
index 9828d783c1..3a686162ad 100644
--- a/sysdeps/mach/hurd/htl/pt-mutex-trylock.c
+++ b/sysdeps/mach/hurd/htl/pt-mutex-trylock.c
@@ -1,5 +1,5 @@
/* pthread_mutex_trylock. Hurd version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdlib.h>
diff --git a/sysdeps/mach/hurd/htl/pt-mutex-unlock.c b/sysdeps/mach/hurd/htl/pt-mutex-unlock.c
index 1699234420..15d19c91eb 100644
--- a/sysdeps/mach/hurd/htl/pt-mutex-unlock.c
+++ b/sysdeps/mach/hurd/htl/pt-mutex-unlock.c
@@ -1,5 +1,5 @@
/* pthread_mutex_unlock. Hurd version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdlib.h>
@@ -65,15 +65,15 @@ __pthread_mutex_unlock (pthread_mutex_t *mtxp)
self = _pthread_self ();
if (mtxp->__owner_id == NOTRECOVERABLE_ID)
; /* Nothing to do. */
- else if (mtxp->__owner_id != self->thread ||
- (int) (mtxp->__lock & LLL_OWNER_MASK) != __getpid ())
+ else if (mtxp->__owner_id != self->thread
+ || (int) (mtxp->__lock & LLL_OWNER_MASK) != __getpid ())
ret = EPERM;
else if (--mtxp->__cnt == 0)
{
/* Release the lock. If it's in an inconsistent
* state, mark it as irrecoverable. */
- mtxp->__owner_id = (mtxp->__lock & LLL_DEAD_OWNER) ?
- NOTRECOVERABLE_ID : 0;
+ mtxp->__owner_id = ((mtxp->__lock & LLL_DEAD_OWNER)
+ ? NOTRECOVERABLE_ID : 0);
__lll_robust_unlock (&mtxp->__lock, flags);
}
diff --git a/sysdeps/mach/hurd/htl/pt-mutex.h b/sysdeps/mach/hurd/htl/pt-mutex.h
index 4fc7259513..8bec1c1c2a 100644
--- a/sysdeps/mach/hurd/htl/pt-mutex.h
+++ b/sysdeps/mach/hurd/htl/pt-mutex.h
@@ -1,5 +1,5 @@
/* Internal definitions for pthreads library.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _PT_MUTEX_H
#define _PT_MUTEX_H 1
@@ -27,8 +27,8 @@
#define ROBUST_LOCK(self, mtxp, cb, ...) \
if (mtxp->__owner_id == NOTRECOVERABLE_ID) \
return ENOTRECOVERABLE; \
- else if (mtxp->__owner_id == self->thread && \
- __getpid () == (int)(mtxp->__lock & LLL_OWNER_MASK)) \
+ else if (mtxp->__owner_id == self->thread \
+ && __getpid () == (int)(mtxp->__lock & LLL_OWNER_MASK)) \
{ \
if (mtxp->__type == PT_MTX_RECURSIVE) \
{ \
@@ -63,9 +63,9 @@
/* Check that a thread owns the mutex. For non-robust, task-shared
* objects, we have to check the thread *and* process-id. */
#define mtx_owned_p(mtx, pt, flags) \
- ((mtx)->__owner_id == (pt)->thread && \
- (((flags) & GSYNC_SHARED) == 0 || \
- (mtx)->__shpid == __getpid ()))
+ ((mtx)->__owner_id == (pt)->thread \
+ && (((flags) & GSYNC_SHARED) == 0 \
+ || (mtx)->__shpid == __getpid ()))
/* Record a thread as the owner of the mutex. */
#define mtx_set_owner(mtx, pt, flags) \
diff --git a/sysdeps/mach/hurd/htl/pt-mutexattr-destroy.c b/sysdeps/mach/hurd/htl/pt-mutexattr-destroy.c
index de8de0f2a5..21a2f1aa71 100644
--- a/sysdeps/mach/hurd/htl/pt-mutexattr-destroy.c
+++ b/sysdeps/mach/hurd/htl/pt-mutexattr-destroy.c
@@ -1,5 +1,5 @@
/* pthread_mutexattr_destroy. Hurd version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdlib.h>
diff --git a/sysdeps/mach/hurd/htl/pt-mutexattr-getprioceiling.c b/sysdeps/mach/hurd/htl/pt-mutexattr-getprioceiling.c
index 8c6c748a40..f363a1587d 100644
--- a/sysdeps/mach/hurd/htl/pt-mutexattr-getprioceiling.c
+++ b/sysdeps/mach/hurd/htl/pt-mutexattr-getprioceiling.c
@@ -1,5 +1,5 @@
/* pthread_mutexattr_getprioceiling. Hurd version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdlib.h>
diff --git a/sysdeps/mach/hurd/htl/pt-mutexattr-getprotocol.c b/sysdeps/mach/hurd/htl/pt-mutexattr-getprotocol.c
index f0f9edcf47..9ebf14b878 100644
--- a/sysdeps/mach/hurd/htl/pt-mutexattr-getprotocol.c
+++ b/sysdeps/mach/hurd/htl/pt-mutexattr-getprotocol.c
@@ -1,5 +1,5 @@
/* pthread_mutexattr_getprotocol. Hurd version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdlib.h>
diff --git a/sysdeps/mach/hurd/htl/pt-mutexattr-getpshared.c b/sysdeps/mach/hurd/htl/pt-mutexattr-getpshared.c
index eb162beee8..878ed67e38 100644
--- a/sysdeps/mach/hurd/htl/pt-mutexattr-getpshared.c
+++ b/sysdeps/mach/hurd/htl/pt-mutexattr-getpshared.c
@@ -1,5 +1,5 @@
/* pthread_mutexattr_getpshared. Hurd version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdlib.h>
diff --git a/sysdeps/mach/hurd/htl/pt-mutexattr-getrobust.c b/sysdeps/mach/hurd/htl/pt-mutexattr-getrobust.c
index 5325e070fe..72f0e2269a 100644
--- a/sysdeps/mach/hurd/htl/pt-mutexattr-getrobust.c
+++ b/sysdeps/mach/hurd/htl/pt-mutexattr-getrobust.c
@@ -1,5 +1,5 @@
/* pthread_mutexattr_getrobust. Hurd version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdlib.h>
@@ -26,8 +26,8 @@
int
pthread_mutexattr_getrobust (const pthread_mutexattr_t *attrp, int *outp)
{
- *outp = (attrp->__prioceiling & PTHREAD_MUTEX_ROBUST) ?
- PTHREAD_MUTEX_ROBUST : PTHREAD_MUTEX_STALLED;
+ *outp = ((attrp->__prioceiling & PTHREAD_MUTEX_ROBUST)
+ ? PTHREAD_MUTEX_ROBUST : PTHREAD_MUTEX_STALLED);
return 0;
}
diff --git a/sysdeps/mach/hurd/htl/pt-mutexattr-gettype.c b/sysdeps/mach/hurd/htl/pt-mutexattr-gettype.c
index 78b7462895..30aba6830f 100644
--- a/sysdeps/mach/hurd/htl/pt-mutexattr-gettype.c
+++ b/sysdeps/mach/hurd/htl/pt-mutexattr-gettype.c
@@ -1,5 +1,5 @@
/* pthread_mutexattr_gettype. Hurd version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdlib.h>
diff --git a/sysdeps/mach/hurd/htl/pt-mutexattr-init.c b/sysdeps/mach/hurd/htl/pt-mutexattr-init.c
index c96afdc26d..627b834ef8 100644
--- a/sysdeps/mach/hurd/htl/pt-mutexattr-init.c
+++ b/sysdeps/mach/hurd/htl/pt-mutexattr-init.c
@@ -1,5 +1,5 @@
/* pthread_mutexattr_init. Hurd version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdlib.h>
diff --git a/sysdeps/mach/hurd/htl/pt-mutexattr-setprioceiling.c b/sysdeps/mach/hurd/htl/pt-mutexattr-setprioceiling.c
index f93cdef38d..1286b370b1 100644
--- a/sysdeps/mach/hurd/htl/pt-mutexattr-setprioceiling.c
+++ b/sysdeps/mach/hurd/htl/pt-mutexattr-setprioceiling.c
@@ -1,5 +1,5 @@
/* pthread_mutexattr_setprioceiling. Hurd version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdlib.h>
diff --git a/sysdeps/mach/hurd/htl/pt-mutexattr-setprotocol.c b/sysdeps/mach/hurd/htl/pt-mutexattr-setprotocol.c
index f971b5bc5f..cdf5a21957 100644
--- a/sysdeps/mach/hurd/htl/pt-mutexattr-setprotocol.c
+++ b/sysdeps/mach/hurd/htl/pt-mutexattr-setprotocol.c
@@ -1,5 +1,5 @@
/* pthread_mutexattr_setprotocol. Hurd version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdlib.h>
@@ -27,7 +27,8 @@ int
pthread_mutexattr_setprotocol (pthread_mutexattr_t *attrp, int proto)
{
(void) attrp;
- return proto == PTHREAD_PRIO_NONE ? 0 :
- proto != PTHREAD_PRIO_INHERIT &&
- proto != PTHREAD_PRIO_PROTECT ? EINVAL : ENOTSUP;
+ return (proto == PTHREAD_PRIO_NONE
+ ? 0
+ : (proto != PTHREAD_PRIO_INHERIT
+ && proto != PTHREAD_PRIO_PROTECT) ? EINVAL : ENOTSUP);
}
diff --git a/sysdeps/mach/hurd/htl/pt-mutexattr-setpshared.c b/sysdeps/mach/hurd/htl/pt-mutexattr-setpshared.c
index 6bed94fbce..a6c23efcf1 100644
--- a/sysdeps/mach/hurd/htl/pt-mutexattr-setpshared.c
+++ b/sysdeps/mach/hurd/htl/pt-mutexattr-setpshared.c
@@ -1,5 +1,5 @@
/* pthread_mutexattr_setpshared. Hurd version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdlib.h>
@@ -32,3 +32,4 @@ pthread_mutexattr_setpshared (pthread_mutexattr_t *attrp, int pshared)
attrp->__pshared = pshared;
return 0;
}
+stub_warning (pthread_mutexattr_setpshared)
diff --git a/sysdeps/mach/hurd/htl/pt-mutexattr-setrobust.c b/sysdeps/mach/hurd/htl/pt-mutexattr-setrobust.c
index b1baf6cbf8..95371a8837 100644
--- a/sysdeps/mach/hurd/htl/pt-mutexattr-setrobust.c
+++ b/sysdeps/mach/hurd/htl/pt-mutexattr-setrobust.c
@@ -1,5 +1,5 @@
/* pthread_mutexattr_setrobust. Hurd version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdlib.h>
diff --git a/sysdeps/mach/hurd/htl/pt-mutexattr-settype.c b/sysdeps/mach/hurd/htl/pt-mutexattr-settype.c
index 56b58887c1..0a972bef4f 100644
--- a/sysdeps/mach/hurd/htl/pt-mutexattr-settype.c
+++ b/sysdeps/mach/hurd/htl/pt-mutexattr-settype.c
@@ -1,5 +1,5 @@
/* pthread_mutexattr_settype. Hurd version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdlib.h>
diff --git a/sysdeps/mach/hurd/htl/pt-sigstate-destroy.c b/sysdeps/mach/hurd/htl/pt-sigstate-destroy.c
index e7154a371d..02868a03c5 100644
--- a/sysdeps/mach/hurd/htl/pt-sigstate-destroy.c
+++ b/sysdeps/mach/hurd/htl/pt-sigstate-destroy.c
@@ -1,5 +1,5 @@
/* Destroy the signal state. Hurd on Mach version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
diff --git a/sysdeps/mach/hurd/htl/pt-sigstate-init.c b/sysdeps/mach/hurd/htl/pt-sigstate-init.c
index 70832f9576..97bf0c3a78 100644
--- a/sysdeps/mach/hurd/htl/pt-sigstate-init.c
+++ b/sysdeps/mach/hurd/htl/pt-sigstate-init.c
@@ -1,5 +1,5 @@
/* Initialize the signal state. Hurd on Mach version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pt-internal.h>
diff --git a/sysdeps/mach/hurd/htl/pt-sigstate.c b/sysdeps/mach/hurd/htl/pt-sigstate.c
index f7050ec0df..845152ee48 100644
--- a/sysdeps/mach/hurd/htl/pt-sigstate.c
+++ b/sysdeps/mach/hurd/htl/pt-sigstate.c
@@ -1,5 +1,5 @@
/* Set a thread's signal state. Hurd on Mach version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <assert.h>
diff --git a/sysdeps/mach/hurd/htl/pt-sysdep.c b/sysdeps/mach/hurd/htl/pt-sysdep.c
index 673f048c37..509e848639 100644
--- a/sysdeps/mach/hurd/htl/pt-sysdep.c
+++ b/sysdeps/mach/hurd/htl/pt-sysdep.c
@@ -1,5 +1,5 @@
/* System dependent pthreads code. Hurd version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <stddef.h>
diff --git a/sysdeps/mach/hurd/htl/pt-sysdep.h b/sysdeps/mach/hurd/htl/pt-sysdep.h
index 5b15223da8..186192c7f4 100644
--- a/sysdeps/mach/hurd/htl/pt-sysdep.h
+++ b/sysdeps/mach/hurd/htl/pt-sysdep.h
@@ -1,5 +1,5 @@
/* Internal definitions for pthreads library.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _PT_SYSDEP_H
#define _PT_SYSDEP_H 1
diff --git a/sysdeps/mach/hurd/i386/Makefile b/sysdeps/mach/hurd/i386/Makefile
index 9a824fadf3..8404eb086c 100644
--- a/sysdeps/mach/hurd/i386/Makefile
+++ b/sysdeps/mach/hurd/i386/Makefile
@@ -87,6 +87,10 @@ test-xfail-XOPEN2K8/sys/socket.h/conform = yes
test-xfail-XOPEN2K8/sys/types.h/conform = yes
test-xfail-XOPEN2K8/stdlib.h/conform = yes
test-xfail-XOPEN2K8/arpa/inet.h/conform = yes
+
+# For bug 23819
+test-xfail-ISO11/threads.h/linknamespace = yes
+test-xfail-ISO11/threads.h/conform = yes
endif
# For bug 23286
diff --git a/sysdeps/mach/hurd/i386/____longjmp_chk.S b/sysdeps/mach/hurd/i386/____longjmp_chk.S
index 7c3a73adba..a70d6ce1d3 100644
--- a/sysdeps/mach/hurd/i386/____longjmp_chk.S
+++ b/sysdeps/mach/hurd/i386/____longjmp_chk.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <jmpbuf-offsets.h>
diff --git a/sysdeps/mach/hurd/i386/bits/sigcontext.h b/sysdeps/mach/hurd/i386/bits/sigcontext.h
index f493bc9750..9adc4db319 100644
--- a/sysdeps/mach/hurd/i386/bits/sigcontext.h
+++ b/sysdeps/mach/hurd/i386/bits/sigcontext.h
@@ -1,5 +1,5 @@
/* Machine-dependent signal context structure for GNU Hurd. i386 version.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_SIGCONTEXT_H
#define _BITS_SIGCONTEXT_H 1
diff --git a/sysdeps/mach/hurd/i386/exc2signal.c b/sysdeps/mach/hurd/i386/exc2signal.c
index 57bc05df99..48ed1def1d 100644
--- a/sysdeps/mach/hurd/i386/exc2signal.c
+++ b/sysdeps/mach/hurd/i386/exc2signal.c
@@ -1,5 +1,5 @@
/* Translate Mach exception codes into signal numbers. i386 version.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd.h>
#include <hurd/signal.h>
diff --git a/sysdeps/mach/hurd/i386/htl/pt-machdep.c b/sysdeps/mach/hurd/i386/htl/pt-machdep.c
index 2e35a095ab..f6cb1a1648 100644
--- a/sysdeps/mach/hurd/i386/htl/pt-machdep.c
+++ b/sysdeps/mach/hurd/i386/htl/pt-machdep.c
@@ -1,5 +1,5 @@
/* Machine dependent pthreads code. Hurd/i386 version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
diff --git a/sysdeps/mach/hurd/i386/htl/pt-setup.c b/sysdeps/mach/hurd/i386/htl/pt-setup.c
index e10d38a842..4d395e56a8 100644
--- a/sysdeps/mach/hurd/i386/htl/pt-setup.c
+++ b/sysdeps/mach/hurd/i386/htl/pt-setup.c
@@ -1,5 +1,5 @@
/* Setup thread stack. Hurd/i386 version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
#include <assert.h>
diff --git a/sysdeps/mach/hurd/i386/init-first.c b/sysdeps/mach/hurd/i386/init-first.c
index f8ad2ceb8e..5c21ebb958 100644
--- a/sysdeps/mach/hurd/i386/init-first.c
+++ b/sysdeps/mach/hurd/i386/init-first.c
@@ -1,5 +1,5 @@
/* Initialization code run first thing by the ELF startup code. For i386/Hurd.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <ctype.h>
@@ -30,6 +30,7 @@
#include <ldsodefs.h>
#include <fpu_control.h>
+#include <libc-diag.h>
extern void __mach_init (void);
extern void __init_misc (int, char **, char **);
@@ -126,8 +127,8 @@ init1 (int argc, char *arg0, ...)
char dummy;
const vm_address_t newsp = (vm_address_t) &dummy;
- if (d->stack_size != 0 && (newsp < d->stack_base ||
- newsp - d->stack_base > d->stack_size))
+ if (d->stack_size != 0 && (newsp < d->stack_base
+ || newsp - d->stack_base > d->stack_size))
/* The new stack pointer does not intersect with the
stack the exec server set up for us, so free that stack. */
__vm_deallocate (__mach_task_self (), d->stack_base, d->stack_size);
@@ -144,6 +145,12 @@ init1 (int argc, char *arg0, ...)
static inline void
init (int *data)
{
+ /* data is the address of the argc parameter to _dl_init_first or
+ doinit1 in _hurd_stack_setup, so the array subscripts are
+ undefined. */
+ DIAG_PUSH_NEEDS_COMMENT;
+ DIAG_IGNORE_NEEDS_COMMENT (10, "-Warray-bounds");
+
int argc = *data;
char **argv = (void *) (data + 1);
char **envp = &argv[argc + 1];
@@ -265,6 +272,8 @@ init (int *data)
restored by function return. */
asm volatile ("# a %0 c %1" : : "a" (usercode), "c" (&init1));
}
+
+ DIAG_POP_NEEDS_COMMENT; /* -Warray-bounds. */
}
/* These bits of inline assembler used to be located inside `init'.
@@ -361,7 +370,7 @@ _hurd_stack_setup (void)
*--data = caller;
asm volatile ("movl %0, %%esp\n" /* Switch to new outermost stack. */
"movl $0, %%ebp\n" /* Clear outermost frame pointer. */
- "jmp *%1" : : "r" (data), "r" (&doinit1) : "sp");
+ "jmp *%1" : : "r" (data), "r" (&doinit1));
/* NOTREACHED */
}
diff --git a/sysdeps/mach/hurd/i386/intr-msg.h b/sysdeps/mach/hurd/i386/intr-msg.h
index 64f05f8c4e..69393ae87c 100644
--- a/sysdeps/mach/hurd/i386/intr-msg.h
+++ b/sysdeps/mach/hurd/i386/intr-msg.h
@@ -1,5 +1,5 @@
/* Machine-dependent details of interruptible RPC messaging. i386 version.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,27 +14,36 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Note that we must mark OPTION and TIMEOUT as outputs of this operation,
to indicate that the signal thread might mutate them as part
of sending us to a signal handler. */
-#define INTR_MSG_TRAP(msg, option, send_size, rcv_size, rcv_name, timeout, notify) \
+
+/* After _hurd_intr_rpc_msg_about_to we need to make a last check of cancel, in
+ case we got interrupted right before _hurd_intr_rpc_msg_about_to. */
+#define INTR_MSG_TRAP(msg, option, send_size, rcv_size, rcv_name, timeout, notify, cancel_p, intr_port_p) \
({ \
error_t err; \
- asm (".globl _hurd_intr_rpc_msg_do_trap\n" \
- ".globl _hurd_intr_rpc_msg_in_trap\n" \
+ asm (".globl _hurd_intr_rpc_msg_about_to\n" \
".globl _hurd_intr_rpc_msg_cx_sp\n" \
+ ".globl _hurd_intr_rpc_msg_do_trap\n" \
+ ".globl _hurd_intr_rpc_msg_in_trap\n" \
".globl _hurd_intr_rpc_msg_sp_restored\n" \
- " movl %%esp, %%ecx\n" \
- " leal %3, %%esp\n" \
+ "_hurd_intr_rpc_msg_about_to: cmpl $0, %5\n" \
+ " jz _hurd_intr_rpc_msg_do\n" \
+ " movl $0, %3\n" \
+ " movl %6, %%eax\n" \
+ " jmp _hurd_intr_rpc_msg_sp_restored\n" \
+ "_hurd_intr_rpc_msg_do: movl %%esp, %%ecx\n" \
+ " leal %4, %%esp\n" \
"_hurd_intr_rpc_msg_cx_sp: movl $-25, %%eax\n" \
"_hurd_intr_rpc_msg_do_trap: lcall $7, $0 # status in %0\n" \
"_hurd_intr_rpc_msg_in_trap: movl %%ecx, %%esp\n" \
"_hurd_intr_rpc_msg_sp_restored:" \
- : "=a" (err), "+m" (option), "+m" (timeout) \
- : "m" ((&msg)[-1]) \
+ : "=a" (err), "+m" (option), "+m" (timeout), "=m" (*intr_port_p) \
+ : "m" ((&msg)[-1]), "m" (*cancel_p), "i" (EINTR) \
: "ecx"); \
err; \
})
diff --git a/sysdeps/mach/hurd/i386/ioperm.c b/sysdeps/mach/hurd/i386/ioperm.c
index 6f22a88490..a8e68c3a41 100644
--- a/sysdeps/mach/hurd/i386/ioperm.c
+++ b/sysdeps/mach/hurd/i386/ioperm.c
@@ -1,5 +1,5 @@
/* Access to hardware i/o ports. Hurd/x86 version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/io.h>
#include <hurd.h>
diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
index e3fc05137b..7c2cb2b05a 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -554,7 +554,7 @@ GLIBC_2.2.6 __xstat64 F
GLIBC_2.2.6 _authenticate F
GLIBC_2.2.6 _dl_mcount_wrapper F
GLIBC_2.2.6 _dl_mcount_wrapper_check F
-GLIBC_2.2.6 _end GLIBC_2.2.6 g ? D .bss 00000000
+GLIBC_2.2.6 _end D 0x0
GLIBC_2.2.6 _environ D 0x4
GLIBC_2.2.6 _exit F
GLIBC_2.2.6 _flushlbf F
@@ -711,6 +711,11 @@ GLIBC_2.2.6 clntudp_bufcreate F
GLIBC_2.2.6 clntudp_create F
GLIBC_2.2.6 clntunix_create F
GLIBC_2.2.6 clock F
+GLIBC_2.2.6 clock_getcpuclockid F
+GLIBC_2.2.6 clock_getres F
+GLIBC_2.2.6 clock_gettime F
+GLIBC_2.2.6 clock_nanosleep F
+GLIBC_2.2.6 clock_settime F
GLIBC_2.2.6 close F
GLIBC_2.2.6 closedir F
GLIBC_2.2.6 closelog F
@@ -2038,6 +2043,9 @@ GLIBC_2.27 wcstof64x_l F
GLIBC_2.28 fcntl64 F
GLIBC_2.28 renameat2 F
GLIBC_2.28 statx F
+GLIBC_2.29 _hurd_port_move F
+GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
+GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
GLIBC_2.3 __ctype_b_loc F
GLIBC_2.3 __ctype_tolower_loc F
GLIBC_2.3 __ctype_toupper_loc F
@@ -2172,6 +2180,7 @@ GLIBC_2.3.4 setipv4sourcefilter F
GLIBC_2.3.4 setsourcefilter F
GLIBC_2.3.4 xdr_quad_t F
GLIBC_2.3.4 xdr_u_quad_t F
+GLIBC_2.30 twalk_r F
GLIBC_2.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
GLIBC_2.4 __fgets_unlocked_chk F
diff --git a/sysdeps/mach/hurd/i386/libm.abilist b/sysdeps/mach/hurd/i386/libm.abilist
index fd0a277bdc..1a41ae589f 100644
--- a/sysdeps/mach/hurd/i386/libm.abilist
+++ b/sysdeps/mach/hurd/i386/libm.abilist
@@ -1068,3 +1068,24 @@ GLIBC_2.28 fmul F
GLIBC_2.28 fmull F
GLIBC_2.28 fsub F
GLIBC_2.28 fsubl F
+GLIBC_2.29 exp F
+GLIBC_2.29 exp2 F
+GLIBC_2.29 log F
+GLIBC_2.29 log2 F
+GLIBC_2.29 pow F
+GLIBC_2.31 totalorder F
+GLIBC_2.31 totalorderf F
+GLIBC_2.31 totalorderf128 F
+GLIBC_2.31 totalorderf32 F
+GLIBC_2.31 totalorderf32x F
+GLIBC_2.31 totalorderf64 F
+GLIBC_2.31 totalorderf64x F
+GLIBC_2.31 totalorderl F
+GLIBC_2.31 totalordermag F
+GLIBC_2.31 totalordermagf F
+GLIBC_2.31 totalordermagf128 F
+GLIBC_2.31 totalordermagf32 F
+GLIBC_2.31 totalordermagf32x F
+GLIBC_2.31 totalordermagf64 F
+GLIBC_2.31 totalordermagf64x F
+GLIBC_2.31 totalordermagl F
diff --git a/sysdeps/mach/hurd/i386/librt.abilist b/sysdeps/mach/hurd/i386/librt.abilist
index d5fe32b3a9..3726e41f06 100644
--- a/sysdeps/mach/hurd/i386/librt.abilist
+++ b/sysdeps/mach/hurd/i386/librt.abilist
@@ -13,11 +13,6 @@ GLIBC_2.2.6 aio_suspend F
GLIBC_2.2.6 aio_suspend64 F
GLIBC_2.2.6 aio_write F
GLIBC_2.2.6 aio_write64 F
-GLIBC_2.2.6 clock_getcpuclockid F
-GLIBC_2.2.6 clock_getres F
-GLIBC_2.2.6 clock_gettime F
-GLIBC_2.2.6 clock_nanosleep F
-GLIBC_2.2.6 clock_settime F
GLIBC_2.2.6 lio_listio F
GLIBC_2.2.6 lio_listio64 F
GLIBC_2.2.6 shm_open F
diff --git a/sysdeps/mach/hurd/i386/localplt.data b/sysdeps/mach/hurd/i386/localplt.data
index a5b5241b84..b89e04b24a 100644
--- a/sysdeps/mach/hurd/i386/localplt.data
+++ b/sysdeps/mach/hurd/i386/localplt.data
@@ -32,14 +32,15 @@ ld.so: __libc_lseek64
ld.so: __mmap
ld.so: __fxstat64
ld.so: __xstat64
-#ld.so: __access
+ld.so: __access
ld.so: __access_noerrno
ld.so: __getpid
-#ld.so: __getcwd
+ld.so: __getcwd
ld.so: __sbrk
ld.so: __strtoul_internal
#ld.so: _exit
ld.so: abort
+ld.so: __sigprocmask
ld.so: _hurd_intr_rpc_mach_msg
ld.so: __errno_location
# rtld_hidden is currently disabled to avoid having to special-case the
diff --git a/sysdeps/mach/hurd/i386/longjmp-ts.c b/sysdeps/mach/hurd/i386/longjmp-ts.c
index 37ac78ce5d..c7732c66a1 100644
--- a/sysdeps/mach/hurd/i386/longjmp-ts.c
+++ b/sysdeps/mach/hurd/i386/longjmp-ts.c
@@ -1,5 +1,5 @@
/* Perform a `longjmp' on a Mach thread_state. i386 version.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd/signal.h>
#include <setjmp.h>
diff --git a/sysdeps/mach/hurd/i386/sigcontextinfo.h b/sysdeps/mach/hurd/i386/sigcontextinfo.h
index 836ecb227f..42004f0041 100644
--- a/sysdeps/mach/hurd/i386/sigcontextinfo.h
+++ b/sysdeps/mach/hurd/i386/sigcontextinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -13,7 +13,16 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SIGCONTEXTINFO_H
+#define _SIGCONTEXTINFO_H
#define SIGCONTEXT struct sigcontext
-#define GET_PC(ctx) ((void *) (ctx).sc_eip)
+static inline uintptr_t
+sigcontext_get_pc (struct sigcontext ctx)
+{
+ return ctx.sc_eip;
+}
+
+#endif
diff --git a/sysdeps/mach/hurd/i386/sigreturn.c b/sysdeps/mach/hurd/i386/sigreturn.c
index 07633e17c8..a2bb6d0dfb 100644
--- a/sysdeps/mach/hurd/i386/sigreturn.c
+++ b/sysdeps/mach/hurd/i386/sigreturn.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
register int *sp asm ("%esp");
@@ -24,6 +24,36 @@ register int *sp asm ("%esp");
#include <stdlib.h>
#include <string.h>
+/* This is run on the thread stack after restoring it, to be able to
+ unlock SS off sigstack. */
+static void
+__sigreturn2 (int *usp)
+{
+ struct hurd_sigstate *ss = _hurd_self_sigstate ();
+ __spin_unlock (&ss->lock);
+
+ sp = usp;
+#define A(line) asm volatile (#line)
+ /* The members in the sigcontext are arranged in this order
+ so we can pop them easily. */
+
+ /* Pop the segment registers (except %cs and %ss, done last). */
+ A (popl %gs);
+ A (popl %fs);
+ A (popl %es);
+ A (popl %ds);
+ /* Pop the general registers. */
+ A (popa);
+ /* Pop the processor flags. */
+ A (popf);
+ /* Return to the saved PC. */
+ A (ret);
+
+ /* Firewall. */
+ A (hlt);
+#undef A
+}
+
int
__sigreturn (struct sigcontext *scp)
{
@@ -67,13 +97,7 @@ __sigreturn (struct sigcontext *scp)
}
if (scp->sc_onstack)
- {
- ss->sigaltstack.ss_flags &= ~SS_ONSTACK;
- /* XXX cannot unlock until off sigstack */
- abort ();
- }
- else
- __spin_unlock (&ss->lock);
+ ss->sigaltstack.ss_flags &= ~SS_ONSTACK;
/* Destroy the MiG reply port used by the signal handler, and restore the
reply port in use by the thread when interrupted. */
@@ -108,27 +132,19 @@ __sigreturn (struct sigcontext *scp)
*--usp = scp->sc_efl;
memcpy (usp -= 12, &scp->sc_i386_thread_state, 12 * sizeof (int));
- sp = usp;
-
-#define A(line) asm volatile (#line)
- /* The members in the sigcontext are arranged in this order
- so we can pop them easily. */
-
- /* Pop the segment registers (except %cs and %ss, done last). */
- A (popl %gs);
- A (popl %fs);
- A (popl %es);
- A (popl %ds);
- /* Pop the general registers. */
- A (popa);
- /* Pop the processor flags. */
- A (popf);
- /* Return to the saved PC. */
- A (ret);
+ /* Pass usp to __sigreturn2 so it can unwind itself easily. */
+ *(usp-1) = (int) usp;
+ --usp;
+ /* Bogus return address for __sigreturn2 */
+ *--usp = 0;
+ *--usp = (int) __sigreturn2;
+ /* Restore thread stack */
+ sp = usp;
+ /* Return into __sigreturn2. */
+ asm volatile ("ret");
/* Firewall. */
- A (hlt);
-#undef A
+ asm volatile ("hlt");
}
/* NOTREACHED */
diff --git a/sysdeps/mach/hurd/i386/static-start.S b/sysdeps/mach/hurd/i386/static-start.S
index 1df95a0a18..2f7fdbe89f 100644
--- a/sysdeps/mach/hurd/i386/static-start.S
+++ b/sysdeps/mach/hurd/i386/static-start.S
@@ -1,5 +1,5 @@
/* Startup code for statically linked Hurd/i386 binaries.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
.text
.globl _start
diff --git a/sysdeps/mach/hurd/i386/sys/io.h b/sysdeps/mach/hurd/i386/sys/io.h
index 81165f00a1..be6a2b3716 100644
--- a/sysdeps/mach/hurd/i386/sys/io.h
+++ b/sysdeps/mach/hurd/i386/sys/io.h
@@ -1,5 +1,5 @@
/* Access to hardware i/o ports. GNU/x86 version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_IO_H
#define _SYS_IO_H 1
diff --git a/sysdeps/mach/hurd/i386/tls.h b/sysdeps/mach/hurd/i386/tls.h
index da1f7b78da..11b2760a44 100644
--- a/sysdeps/mach/hurd/i386/tls.h
+++ b/sysdeps/mach/hurd/i386/tls.h
@@ -1,5 +1,5 @@
/* Definitions for thread-local data handling. Hurd/i386 version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _I386_TLS_H
#define _I386_TLS_H
diff --git a/sysdeps/mach/hurd/i386/trampoline.c b/sysdeps/mach/hurd/i386/trampoline.c
index 0e795f9389..0c5d5a194c 100644
--- a/sysdeps/mach/hurd/i386/trampoline.c
+++ b/sysdeps/mach/hurd/i386/trampoline.c
@@ -1,5 +1,5 @@
/* Set thread_state for sighandler, and sigcontext to recover. i386 version.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd/signal.h>
#include <hurd/userlink.h>
@@ -74,12 +74,6 @@ _hurd_setup_sighandler (struct hurd_sigstate *ss, __sighandler_t handler,
interrupted RPC frame. */
state->basic.esp = state->basic.uesp;
- if ((ss->actions[signo].sa_flags & SA_ONSTACK) &&
- !(ss->sigaltstack.ss_flags & (SS_DISABLE|SS_ONSTACK)))
- {
- sigsp = ss->sigaltstack.ss_sp + ss->sigaltstack.ss_size;
- ss->sigaltstack.ss_flags |= SS_ONSTACK;
- }
/* This code has intimate knowledge of the special mach_msg system call
done in intr-msg.c; that code does (see intr-msg.h):
movl %esp, %ecx
@@ -91,13 +85,20 @@ _hurd_setup_sighandler (struct hurd_sigstate *ss, __sighandler_t handler,
We must check for the window during which %esp points at the
mach_msg arguments. The space below until %ecx is used by
the _hurd_intr_rpc_mach_msg frame, and must not be clobbered. */
- else if (state->basic.eip >= (int) &_hurd_intr_rpc_msg_cx_sp &&
- state->basic.eip < (int) &_hurd_intr_rpc_msg_sp_restored)
- /* The SP now points at the mach_msg args, but there is more stack
- space used below it. The real SP is saved in %ecx; we must push the
- new frame below there, and restore that value as the SP on
- sigreturn. */
- sigsp = (char *) (state->basic.uesp = state->basic.ecx);
+ if (state->basic.eip >= (int) &_hurd_intr_rpc_msg_cx_sp
+ && state->basic.eip < (int) &_hurd_intr_rpc_msg_sp_restored)
+ /* The SP now points at the mach_msg args, but there is more stack
+ space used below it. The real SP is saved in %ecx; we must push the
+ new frame below there (if not on the altstack), and restore that value as
+ the SP on sigreturn. */
+ state->basic.uesp = state->basic.ecx;
+
+ if ((ss->actions[signo].sa_flags & SA_ONSTACK)
+ && !(ss->sigaltstack.ss_flags & (SS_DISABLE|SS_ONSTACK)))
+ {
+ sigsp = ss->sigaltstack.ss_sp + ss->sigaltstack.ss_size;
+ ss->sigaltstack.ss_flags |= SS_ONSTACK;
+ }
else
sigsp = (char *) state->basic.uesp;
diff --git a/sysdeps/mach/hurd/if_index.c b/sysdeps/mach/hurd/if_index.c
index 4303c938a8..20af77b2b9 100644
--- a/sysdeps/mach/hurd/if_index.c
+++ b/sysdeps/mach/hurd/if_index.c
@@ -1,5 +1,5 @@
/* Find network interface names and index numbers. Hurd version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <error.h>
#include <net/if.h>
diff --git a/sysdeps/mach/hurd/ifreq.c b/sysdeps/mach/hurd/ifreq.c
index 70a906a83a..191bd62e4b 100644
--- a/sysdeps/mach/hurd/ifreq.c
+++ b/sysdeps/mach/hurd/ifreq.c
@@ -1,5 +1,5 @@
/* Fetch the host's network interface list. Hurd version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ifreq.h>
#include <hurd.h>
diff --git a/sysdeps/mach/hurd/ifreq.h b/sysdeps/mach/hurd/ifreq.h
index 3ab8d858b6..c6e42f3bb5 100644
--- a/sysdeps/mach/hurd/ifreq.h
+++ b/sysdeps/mach/hurd/ifreq.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
diff --git a/sysdeps/mach/hurd/ioctl.c b/sysdeps/mach/hurd/ioctl.c
index 15b26f5bba..f450f9896e 100644
--- a/sysdeps/mach/hurd/ioctl.c
+++ b/sysdeps/mach/hurd/ioctl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/ioctl.h>
@@ -66,15 +66,15 @@ __ioctl (int fd, unsigned long int request, ...)
kern_return_t RetCode;
} header_typecheck;
};
- char data[3 * sizeof (mach_msg_type_t) +
- msg_align (_IOT_COUNT0 (type) * typesize (_IOT_TYPE0 (type))) +
- msg_align (_IOT_COUNT1 (type) * typesize (_IOT_TYPE1 (type))) +
- _IOT_COUNT2 (type) * typesize (_IOT_TYPE2 (type))];
+ char data[3 * sizeof (mach_msg_type_t)
+ + msg_align (_IOT_COUNT0 (type) * typesize (_IOT_TYPE0 (type)))
+ + msg_align (_IOT_COUNT1 (type) * typesize (_IOT_TYPE1 (type)))
+ + _IOT_COUNT2 (type) * typesize (_IOT_TYPE2 (type))];
#else /* Untyped Mach IPC format. */
mig_reply_error_t header;
- char data[_IOT_COUNT0 (type) * typesize (_IOT_TYPE0 (type)) +
- _IOT_COUNT1 (type) * typesize (_IOT_TYPE1 (type)) +
- _IOT_COUNT2 (type) * typesize (_IOT_TYPE2 (type))];
+ char data[_IOT_COUNT0 (type) * typesize (_IOT_TYPE0 (type))
+ + _IOT_COUNT1 (type) * typesize (_IOT_TYPE1 (type))
+ + _IOT_COUNT2 (type) * typesize (_IOT_TYPE2 (type))];
mach_msg_trailer_t trailer;
#endif
} msg;
@@ -177,6 +177,7 @@ __ioctl (int fd, unsigned long int request, ...)
case MACH_SEND_INVALID_REPLY:
case MACH_RCV_INVALID_NAME:
__mig_dealloc_reply_port (m->msgh_local_port);
+ /* Fall through. */
default:
return err;
}
@@ -191,17 +192,17 @@ __ioctl (int fd, unsigned long int request, ...)
}
if (m->msgh_id != msgid + 100)
- return (m->msgh_id == MACH_NOTIFY_SEND_ONCE ?
- MIG_SERVER_DIED : MIG_REPLY_MISMATCH);
+ return (m->msgh_id == MACH_NOTIFY_SEND_ONCE
+ ? MIG_SERVER_DIED : MIG_REPLY_MISMATCH);
- if (m->msgh_size != reply_size &&
- m->msgh_size != sizeof msg.header)
+ if (m->msgh_size != reply_size
+ && m->msgh_size != sizeof msg.header)
return MIG_TYPE_ERROR;
#ifdef MACH_MSG_TYPE_BIT
- if (msg.header_typecheck.RetCodeType !=
- ((union { mach_msg_type_t t; int i; })
- { t: io2mach_type (1, _IOTS (msg.header.RetCode)) }).i)
+ if (msg.header_typecheck.RetCodeType
+ != ((union { mach_msg_type_t t; int i; })
+ { t: io2mach_type (1, _IOTS (msg.header.RetCode)) }).i)
return MIG_TYPE_ERROR;
#endif
return msg.header.RetCode;
@@ -306,11 +307,11 @@ __ioctl (int fd, unsigned long int request, ...)
}
case 0:
- if (m->msgh_size != reply_size ||
- ((_IOC_INOUT (request) & IOC_OUT) &&
- (out (_IOT_COUNT0 (type), _IOT_TYPE0 (type), arg, &arg) ||
- out (_IOT_COUNT1 (type), _IOT_TYPE1 (type), arg, &arg) ||
- out (_IOT_COUNT2 (type), _IOT_TYPE2 (type), arg, &arg))))
+ if (m->msgh_size != reply_size
+ || ((_IOC_INOUT (request) & IOC_OUT)
+ && (out (_IOT_COUNT0 (type), _IOT_TYPE0 (type), arg, &arg)
+ || out (_IOT_COUNT1 (type), _IOT_TYPE1 (type), arg, &arg)
+ || out (_IOT_COUNT2 (type), _IOT_TYPE2 (type), arg, &arg))))
return __hurd_fail (MIG_TYPE_ERROR);
return 0;
@@ -318,6 +319,7 @@ __ioctl (int fd, unsigned long int request, ...)
case EOPNOTSUPP:
/* The server didn't understand the RPC. */
err = ENOTTY;
+ /* Fall through. */
default:
return __hurd_fail (err);
}
diff --git a/sysdeps/mach/hurd/isatty.c b/sysdeps/mach/hurd/isatty.c
index 4adc8901fb..5c44627557 100644
--- a/sysdeps/mach/hurd/isatty.c
+++ b/sysdeps/mach/hurd/isatty.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/mach/hurd/jmp-unwind.c b/sysdeps/mach/hurd/jmp-unwind.c
index d269f9f61b..0bc1c49af5 100644
--- a/sysdeps/mach/hurd/jmp-unwind.c
+++ b/sysdeps/mach/hurd/jmp-unwind.c
@@ -1,5 +1,5 @@
/* _longjmp_unwind -- Clean up stack frames unwound by longjmp. Hurd version.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <jmpbuf-unwind.h>
#include <hurd/userlink.h>
@@ -54,8 +54,8 @@ _longjmp_unwind (jmp_buf env, int val)
__spin_lock (&ss->critical_section_lock);
/* Remove local signal preemptors being unwound past. */
- while (ss->preemptors &&
- _JMPBUF_UNWINDS (env[0].__jmpbuf, ss->preemptors, demangle_ptr))
+ while (ss->preemptors
+ && _JMPBUF_UNWINDS (env[0].__jmpbuf, ss->preemptors, demangle_ptr))
ss->preemptors = ss->preemptors->next;
__spin_unlock (&ss->lock);
diff --git a/sysdeps/mach/hurd/kernel-features.h b/sysdeps/mach/hurd/kernel-features.h
index a13d6cdf11..adec16e52c 100644
--- a/sysdeps/mach/hurd/kernel-features.h
+++ b/sysdeps/mach/hurd/kernel-features.h
@@ -1,5 +1,5 @@
/* Set flags signalling availability of certain operating system features.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file can define __ASSUME_* macros checked by certain source files.
Almost none of these are used outside of sysdeps/unix/sysv/linux code.
diff --git a/sysdeps/mach/hurd/kill.c b/sysdeps/mach/hurd/kill.c
index 7e64e7c9d7..c7406ab8ba 100644
--- a/sysdeps/mach/hurd/kill.c
+++ b/sysdeps/mach/hurd/kill.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/types.h>
@@ -55,8 +55,8 @@ __kill (pid_t pid, int sig)
err = __task_terminate (refport);
__mach_port_deallocate (__mach_task_self (), refport);
}
- } while (err == MACH_SEND_INVALID_DEST ||
- err == MIG_SERVER_DIED);
+ } while (err == MACH_SEND_INVALID_DEST
+ || err == MIG_SERVER_DIED);
else
{
error_t taskerr;
@@ -103,8 +103,8 @@ __kill (pid_t pid, int sig)
}
err = HURD_MSGPORT_RPC (__proc_getmsgport (proc, pid, &msgport),
(taskerr = __proc_pid2task (proc, pid,
- &refport)) ?
- __proc_getsidport (proc, &refport) : 0, 1,
+ &refport))
+ ? __proc_getsidport (proc, &refport) : 0, 1,
kill_port (msgport, refport));
}
if (! err)
diff --git a/sysdeps/mach/hurd/lchmod.c b/sysdeps/mach/hurd/lchmod.c
index 0fd02e86b8..3b48c2820f 100644
--- a/sysdeps/mach/hurd/lchmod.c
+++ b/sysdeps/mach/hurd/lchmod.c
@@ -1,5 +1,5 @@
/* lchmod -- Change the protections of a file or symbolic link. Hurd version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/sysdeps/mach/hurd/lchown.c b/sysdeps/mach/hurd/lchown.c
index eb5760eb18..4ebcb837ba 100644
--- a/sysdeps/mach/hurd/lchown.c
+++ b/sysdeps/mach/hurd/lchown.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/sysdeps/mach/hurd/lgetxattr.c b/sysdeps/mach/hurd/lgetxattr.c
index ae385f8379..c93ab6b886 100644
--- a/sysdeps/mach/hurd/lgetxattr.c
+++ b/sysdeps/mach/hurd/lgetxattr.c
@@ -1,5 +1,5 @@
/* Access to extended attributes on files. Hurd version.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/xattr.h>
diff --git a/sysdeps/mach/hurd/libc-start.h b/sysdeps/mach/hurd/libc-start.h
index f7e39935ce..8e52898a12 100644
--- a/sysdeps/mach/hurd/libc-start.h
+++ b/sysdeps/mach/hurd/libc-start.h
@@ -1,5 +1,5 @@
/* Hurd definitions for libc main startup.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LIBC_START_H
#define _LIBC_START_H
diff --git a/sysdeps/mach/hurd/link.c b/sysdeps/mach/hurd/link.c
index f50d63cb1a..9d34d2359d 100644
--- a/sysdeps/mach/hurd/link.c
+++ b/sysdeps/mach/hurd/link.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/sysdeps/mach/hurd/linkat.c b/sysdeps/mach/hurd/linkat.c
index e2e427cb4d..acf28cf3ea 100644
--- a/sysdeps/mach/hurd/linkat.c
+++ b/sysdeps/mach/hurd/linkat.c
@@ -1,5 +1,5 @@
/* Make a link between file names relative to open directories. Hurd version.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/sysdeps/mach/hurd/listen.c b/sysdeps/mach/hurd/listen.c
index 2b2cf23eb6..74cd1d40e9 100644
--- a/sysdeps/mach/hurd/listen.c
+++ b/sysdeps/mach/hurd/listen.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <hurd.h>
diff --git a/sysdeps/mach/hurd/listxattr.c b/sysdeps/mach/hurd/listxattr.c
index c1af8072c1..60715475ca 100644
--- a/sysdeps/mach/hurd/listxattr.c
+++ b/sysdeps/mach/hurd/listxattr.c
@@ -1,5 +1,5 @@
/* Access to extended attributes on files. Hurd version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/xattr.h>
diff --git a/sysdeps/mach/hurd/llistxattr.c b/sysdeps/mach/hurd/llistxattr.c
index 0b3e848c7d..4b3d726395 100644
--- a/sysdeps/mach/hurd/llistxattr.c
+++ b/sysdeps/mach/hurd/llistxattr.c
@@ -1,5 +1,5 @@
/* Access to extended attributes on files. Hurd version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/xattr.h>
diff --git a/sysdeps/mach/hurd/lremovexattr.c b/sysdeps/mach/hurd/lremovexattr.c
index a6fa830d4a..101af3559e 100644
--- a/sysdeps/mach/hurd/lremovexattr.c
+++ b/sysdeps/mach/hurd/lremovexattr.c
@@ -1,5 +1,5 @@
/* Access to extended attributes on files. Hurd version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/xattr.h>
diff --git a/sysdeps/mach/hurd/lseek.c b/sysdeps/mach/hurd/lseek.c
index 0a4077268a..d21ff678b0 100644
--- a/sysdeps/mach/hurd/lseek.c
+++ b/sysdeps/mach/hurd/lseek.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <sys/types.h>
diff --git a/sysdeps/mach/hurd/lseek64.c b/sysdeps/mach/hurd/lseek64.c
index d058ab36ff..00232fc57a 100644
--- a/sysdeps/mach/hurd/lseek64.c
+++ b/sysdeps/mach/hurd/lseek64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <hurd.h>
diff --git a/sysdeps/mach/hurd/lsetxattr.c b/sysdeps/mach/hurd/lsetxattr.c
index 95a2899a09..5dfc953c69 100644
--- a/sysdeps/mach/hurd/lsetxattr.c
+++ b/sysdeps/mach/hurd/lsetxattr.c
@@ -1,5 +1,5 @@
/* Access to extended attributes on files. Hurd version.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/xattr.h>
diff --git a/sysdeps/mach/hurd/lutimes.c b/sysdeps/mach/hurd/lutimes.c
index 375ab3feb3..183e6a2de0 100644
--- a/sysdeps/mach/hurd/lutimes.c
+++ b/sysdeps/mach/hurd/lutimes.c
@@ -1,5 +1,5 @@
/* lutimes -- change access and modification times of a symlink. Hurd version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/time.h>
#include <errno.h>
diff --git a/sysdeps/mach/hurd/lxstat.c b/sysdeps/mach/hurd/lxstat.c
index ea69f78b2b..4f27f9c0a4 100644
--- a/sysdeps/mach/hurd/lxstat.c
+++ b/sysdeps/mach/hurd/lxstat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/stat.h>
diff --git a/sysdeps/mach/hurd/lxstat64.c b/sysdeps/mach/hurd/lxstat64.c
index e060d2c1f6..45d0313693 100644
--- a/sysdeps/mach/hurd/lxstat64.c
+++ b/sysdeps/mach/hurd/lxstat64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/sysdeps/mach/hurd/malloc-machine.h b/sysdeps/mach/hurd/malloc-machine.h
index 36a7d11dc5..7f9e4b980b 100644
--- a/sysdeps/mach/hurd/malloc-machine.h
+++ b/sysdeps/mach/hurd/malloc-machine.h
@@ -1,6 +1,6 @@
/* Basic platform-independent macro definitions for mutexes,
thread-specific data and parameters for malloc.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MALLOC_MACHINE_H
#define _MALLOC_MACHINE_H
diff --git a/sysdeps/mach/hurd/mig-reply.c b/sysdeps/mach/hurd/mig-reply.c
index 8350354500..3ff0d1a136 100644
--- a/sysdeps/mach/hurd/mig-reply.c
+++ b/sysdeps/mach/hurd/mig-reply.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <mach.h>
#include <mach/mig_support.h>
@@ -27,9 +27,9 @@ mach_port_t __hurd_reply_port0;
mach_port_t
__mig_get_reply_port (void)
{
- if (__hurd_local_reply_port == MACH_PORT_NULL ||
- (&__hurd_local_reply_port != &__hurd_reply_port0
- && __hurd_local_reply_port == __hurd_reply_port0))
+ if (__hurd_local_reply_port == MACH_PORT_NULL
+ || (&__hurd_local_reply_port != &__hurd_reply_port0
+ && __hurd_local_reply_port == __hurd_reply_port0))
__hurd_local_reply_port = __mach_reply_port ();
return __hurd_local_reply_port;
diff --git a/sysdeps/mach/hurd/mkdir.c b/sysdeps/mach/hurd/mkdir.c
index fa01aabde0..8bf9b59cfd 100644
--- a/sysdeps/mach/hurd/mkdir.c
+++ b/sysdeps/mach/hurd/mkdir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/sysdeps/mach/hurd/mkdirat.c b/sysdeps/mach/hurd/mkdirat.c
index f214e08cab..da7c3e80c1 100644
--- a/sysdeps/mach/hurd/mkdirat.c
+++ b/sysdeps/mach/hurd/mkdirat.c
@@ -1,5 +1,5 @@
/* Create a directory named relative to another open directory. Hurd version.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/sysdeps/mach/hurd/mlock.c b/sysdeps/mach/hurd/mlock.c
index 28a33be24f..1ed54e2602 100644
--- a/sysdeps/mach/hurd/mlock.c
+++ b/sysdeps/mach/hurd/mlock.c
@@ -1,5 +1,5 @@
/* mlock -- guarantee pages are resident in memory. Mach/Hurd version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <sys/mman.h>
diff --git a/sysdeps/mach/hurd/mlockall.c b/sysdeps/mach/hurd/mlockall.c
index 6fa944b21f..09c828b676 100644
--- a/sysdeps/mach/hurd/mlockall.c
+++ b/sysdeps/mach/hurd/mlockall.c
@@ -1,5 +1,5 @@
/* mlockall -- lock in core all the pages in this process. Hurd version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <sys/mman.h>
diff --git a/sysdeps/mach/hurd/mmap.c b/sysdeps/mach/hurd/mmap.c
index e388ac9783..1e6ab401af 100644
--- a/sysdeps/mach/hurd/mmap.c
+++ b/sysdeps/mach/hurd/mmap.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <sys/mman.h>
@@ -44,29 +44,6 @@ __mmap (void *addr, size_t len, int prot, int flags, int fd, off_t offset)
if ((mapaddr & (__vm_page_size - 1)) || (offset & (__vm_page_size - 1)))
return (void *) (long int) __hurd_fail (EINVAL);
- if ((flags & (MAP_TYPE|MAP_INHERIT)) == MAP_ANON
- && prot == (PROT_READ|PROT_WRITE)) /* cf VM_PROT_DEFAULT */
- {
- /* vm_allocate has (a little) less overhead in the kernel too. */
- err = __vm_allocate (__mach_task_self (), &mapaddr, len, mapaddr == 0);
-
- if (err == KERN_NO_SPACE)
- {
- if (flags & MAP_FIXED)
- {
- /* XXX this is not atomic as it is in unix! */
- /* The region is already allocated; deallocate it first. */
- err = __vm_deallocate (__mach_task_self (), mapaddr, len);
- if (!err)
- err = __vm_allocate (__mach_task_self (), &mapaddr, len, 0);
- }
- else if (mapaddr != 0)
- err = __vm_allocate (__mach_task_self (), &mapaddr, len, 1);
- }
-
- return err ? (void *) (long int) __hurd_fail (err) : (void *) mapaddr;
- }
-
vmprot = VM_PROT_NONE;
if (prot & PROT_READ)
vmprot |= VM_PROT_READ;
@@ -120,8 +97,8 @@ __mmap (void *addr, size_t len, int prot, int flags, int fd, off_t offset)
/* Remove extra reference. */
__mach_port_deallocate (__mach_task_self (), memobj);
}
- else if (wobj == MACH_PORT_NULL && /* Not writable by mapping. */
- !(flags & MAP_SHARED))
+ else if (wobj == MACH_PORT_NULL /* Not writable by mapping. */
+ && !(flags & MAP_SHARED))
/* The file can only be mapped for reading. Since we are
making a private mapping, we will never try to write the
object anyway, so we don't care. */
diff --git a/sysdeps/mach/hurd/mmap64.c b/sysdeps/mach/hurd/mmap64.c
index 19133ceca5..0a4ecf1291 100644
--- a/sysdeps/mach/hurd/mmap64.c
+++ b/sysdeps/mach/hurd/mmap64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/mman.h>
diff --git a/sysdeps/mach/hurd/msync.c b/sysdeps/mach/hurd/msync.c
new file mode 100644
index 0000000000..b5adc5517e
--- /dev/null
+++ b/sysdeps/mach/hurd/msync.c
@@ -0,0 +1,93 @@
+/* msync -- Synchronize mapped memory to external storage. Mach version.
+ Copyright (C) 2002-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <sys/types.h>
+#include <sys/mman.h>
+#include <errno.h>
+
+#include <hurd/hurd.h>
+
+/* Synchronize the region starting at ADDR and extending LEN bytes with the
+ file it maps. Filesystem operations on a file being mapped are
+ unpredictable before this is done. */
+
+int
+msync (void *addr, size_t length, int flags)
+{
+ boolean_t should_flush = flags & MS_INVALIDATE ? 1 : 0;
+ boolean_t should_iosync = flags & MS_ASYNC ? 0 : 1;
+
+ vm_address_t cur = (vm_address_t) addr;
+ vm_address_t target = cur + length;
+
+ vm_size_t len;
+ vm_prot_t prot;
+ vm_prot_t max_prot;
+ vm_inherit_t inherit;
+ boolean_t shared;
+ memory_object_name_t obj;
+ vm_offset_t offset;
+
+ kern_return_t err;
+
+ if (flags & (MS_SYNC | MS_ASYNC) == (MS_SYNC | MS_ASYNC))
+ return __hurd_fail (EINVAL);
+
+ while (cur < target)
+ {
+ vm_address_t begin = cur;
+
+ err = __vm_region (__mach_task_self (),
+ &begin, &len, &prot, &max_prot, &inherit,
+ &shared, &obj, &offset);
+
+ if (err != KERN_SUCCESS)
+ return __hurd_fail (err);
+
+ if (begin > cur)
+ /* We were given an address before the first region,
+ or we found a hole. */
+ cur = begin;
+
+ if (cur >= target)
+ /* We were given an ending address within a hole. */
+ break;
+
+ if (MACH_PORT_VALID (obj))
+ {
+ vm_size_t sync_len;
+
+ if (begin + len > target)
+ sync_len = target - begin;
+ else
+ sync_len = len;
+
+ err = __vm_object_sync (obj, cur - begin + offset, sync_len,
+ should_flush, 1, should_iosync);
+ __mach_port_deallocate (__mach_task_self (), obj);
+
+ if (err)
+ return __hurd_fail (err);
+
+ }
+
+ cur = begin + len;
+ }
+
+ return 0;
+}
diff --git a/sysdeps/mach/hurd/munlock.c b/sysdeps/mach/hurd/munlock.c
index 3ef4dbb175..a823ccd895 100644
--- a/sysdeps/mach/hurd/munlock.c
+++ b/sysdeps/mach/hurd/munlock.c
@@ -1,5 +1,5 @@
/* munlock -- undo the effects of prior mlock calls. Mach/Hurd version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <sys/mman.h>
diff --git a/sysdeps/mach/hurd/munlockall.c b/sysdeps/mach/hurd/munlockall.c
index 615b77f034..bbd74c3337 100644
--- a/sysdeps/mach/hurd/munlockall.c
+++ b/sysdeps/mach/hurd/munlockall.c
@@ -1,5 +1,5 @@
/* munlockall -- undo the effects of all prior mlock calls. Hurd version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <sys/mman.h>
diff --git a/sysdeps/mach/hurd/net/ethernet.h b/sysdeps/mach/hurd/net/ethernet.h
index 31f15cbe0f..46fe503859 100644
--- a/sysdeps/mach/hurd/net/ethernet.h
+++ b/sysdeps/mach/hurd/net/ethernet.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Based on the FreeBSD version of this file. Curiously, that file
lacks a copyright in the header. */
diff --git a/sysdeps/mach/hurd/net/if_arp.h b/sysdeps/mach/hurd/net/if_arp.h
index 01c8b62a99..bd5b3c3b10 100644
--- a/sysdeps/mach/hurd/net/if_arp.h
+++ b/sysdeps/mach/hurd/net/if_arp.h
@@ -1,5 +1,5 @@
/* Definitions for Address Resolution Protocol.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Based on the 4.4BSD and Linux version of this file. */
diff --git a/sysdeps/mach/hurd/net/if_ether.h b/sysdeps/mach/hurd/net/if_ether.h
index d499b1d6ed..5f19d4853f 100644
--- a/sysdeps/mach/hurd/net/if_ether.h
+++ b/sysdeps/mach/hurd/net/if_ether.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _NET_IF_ETHER_H
#define _NET_IF_ETHER_H 1
diff --git a/sysdeps/mach/hurd/net/route.h b/sysdeps/mach/hurd/net/route.h
index c47944316f..c10ffe16d0 100644
--- a/sysdeps/mach/hurd/net/route.h
+++ b/sysdeps/mach/hurd/net/route.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc..
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Based on the 4.4BSD and Linux version of this file. */
diff --git a/sysdeps/mach/hurd/not-cancel.h b/sysdeps/mach/hurd/not-cancel.h
new file mode 100644
index 0000000000..c9a67c199d
--- /dev/null
+++ b/sysdeps/mach/hurd/not-cancel.h
@@ -0,0 +1,62 @@
+/* Uncancelable versions of cancelable interfaces. Hurd version.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
+
+ 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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef NOT_CANCEL_H
+# define NOT_CANCEL_H
+
+#include <fcntl.h>
+#include <unistd.h>
+#include <sys/wait.h>
+#include <time.h>
+#include <sys/uio.h>
+#include <hurd.h>
+#include <hurd/fd.h>
+
+/* For now we have none. Map the name to the normal functions. */
+#define __open_nocancel(...) \
+ __open (__VA_ARGS__)
+#define __open64_nocancel(...) \
+ __open64 (__VA_ARGS__)
+#define __openat_nocancel(...) \
+ __openat (__VA_ARGS__)
+#define __openat64_nocancel(...) \
+ __openat64 (__VA_ARGS__)
+#define __close_nocancel(fd) \
+ __close (fd)
+
+void __close_nocancel_nostatus (int fd);
+
+#define __read_nocancel(fd, buf, n) \
+ __read (fd, buf, n)
+#define __pread64_nocancel(fd, buf, count, offset) \
+ __pread64 (fd, buf, count, offset)
+#define __write_nocancel(fd, buf, n) \
+ __write (fd, buf, n)
+#define __writev_nocancel_nostatus(fd, iov, n) \
+ (void) __writev (fd, iov, n)
+# define __waitpid_nocancel(pid, stat_loc, options) \
+ __waitpid (pid, stat_loc, options)
+#define __fcntl64_nocancel(fd, cmd, ...) \
+ __fcntl64 (fd, cmd, __VA_ARGS__)
+
+#if IS_IN (libc) || IS_IN (rtld)
+hidden_proto (__close_nocancel_nostatus)
+#endif
+
+#endif /* NOT_CANCEL_H */
diff --git a/sysdeps/mach/hurd/not-errno.h b/sysdeps/mach/hurd/not-errno.h
index 838a5abc69..eeb519ce8c 100644
--- a/sysdeps/mach/hurd/not-errno.h
+++ b/sysdeps/mach/hurd/not-errno.h
@@ -1,5 +1,5 @@
/* Syscall wrapper that do not set errno. Generic version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* The __access_noerrno stub mustn't be hidden in ld.so on Hurd since it needs
to be preempted by __access_noerrno from libc.so after bootstrap. */
diff --git a/sysdeps/mach/hurd/open.c b/sysdeps/mach/hurd/open.c
index 8acdd3d418..0e43db7fd0 100644
--- a/sysdeps/mach/hurd/open.c
+++ b/sysdeps/mach/hurd/open.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/sysdeps/mach/hurd/openat.c b/sysdeps/mach/hurd/openat.c
index 3534f256bc..790a5a0124 100644
--- a/sysdeps/mach/hurd/openat.c
+++ b/sysdeps/mach/hurd/openat.c
@@ -1,5 +1,5 @@
/* openat -- Open a file named relative to an open directory. Hurd version.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/sysdeps/mach/hurd/opendir.c b/sysdeps/mach/hurd/opendir.c
index bda138e439..1f04c197ec 100644
--- a/sysdeps/mach/hurd/opendir.c
+++ b/sysdeps/mach/hurd/opendir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <limits.h>
diff --git a/sysdeps/mach/hurd/pathconf.c b/sysdeps/mach/hurd/pathconf.c
index 62099a6c05..db4049e7f7 100644
--- a/sysdeps/mach/hurd/pathconf.c
+++ b/sysdeps/mach/hurd/pathconf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/sysdeps/mach/hurd/pipe.c b/sysdeps/mach/hurd/pipe.c
index 9e67ef7c84..ae5ed128fd 100644
--- a/sysdeps/mach/hurd/pipe.c
+++ b/sysdeps/mach/hurd/pipe.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
diff --git a/sysdeps/mach/hurd/pipe2.c b/sysdeps/mach/hurd/pipe2.c
index 288d4b8c67..506686300a 100644
--- a/sysdeps/mach/hurd/pipe2.c
+++ b/sysdeps/mach/hurd/pipe2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/socket.h>
diff --git a/sysdeps/mach/hurd/poll.c b/sysdeps/mach/hurd/poll.c
index 50d0ad7290..efde0478ea 100644
--- a/sysdeps/mach/hurd/poll.c
+++ b/sysdeps/mach/hurd/poll.c
@@ -1,5 +1,5 @@
/* poll file descriptors. Hurd version.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/poll.h>
#include <sys/time.h>
diff --git a/sysdeps/mach/hurd/ppoll.c b/sysdeps/mach/hurd/ppoll.c
index 615fc0814c..98b06c7f51 100644
--- a/sysdeps/mach/hurd/ppoll.c
+++ b/sysdeps/mach/hurd/ppoll.c
@@ -1,5 +1,5 @@
/* poll file descriptors. Hurd version.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/poll.h>
#include <sys/time.h>
diff --git a/sysdeps/mach/hurd/pread.c b/sysdeps/mach/hurd/pread.c
index 63a90aa4df..bd83d8d0a2 100644
--- a/sysdeps/mach/hurd/pread.c
+++ b/sysdeps/mach/hurd/pread.c
@@ -1,6 +1,6 @@
/* Read block from given position in file without changing file pointer.
Hurd version.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/mach/hurd/pread64.c b/sysdeps/mach/hurd/pread64.c
index 1a6ec06acd..84c61336fb 100644
--- a/sysdeps/mach/hurd/pread64.c
+++ b/sysdeps/mach/hurd/pread64.c
@@ -1,6 +1,6 @@
/* Read block from given position in file without changing file pointer.
Hurd version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/mach/hurd/profil.c b/sysdeps/mach/hurd/profil.c
index c2c2f9f119..54ab498656 100644
--- a/sysdeps/mach/hurd/profil.c
+++ b/sysdeps/mach/hurd/profil.c
@@ -1,5 +1,5 @@
/* Low-level statistical profiling support function. Mach/Hurd version.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <unistd.h>
diff --git a/sysdeps/mach/hurd/pselect.c b/sysdeps/mach/hurd/pselect.c
index 1d469c025a..25e5799e9e 100644
--- a/sysdeps/mach/hurd/pselect.c
+++ b/sysdeps/mach/hurd/pselect.c
@@ -1,5 +1,5 @@
/* pselect for Hurd.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/sysdeps/mach/hurd/ptrace.c b/sysdeps/mach/hurd/ptrace.c
index d0268a3f98..17baf6375d 100644
--- a/sysdeps/mach/hurd/ptrace.c
+++ b/sysdeps/mach/hurd/ptrace.c
@@ -1,5 +1,5 @@
/* Process tracing interface `ptrace' for GNU Hurd.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/ptrace.h>
@@ -178,8 +178,8 @@ ptrace (enum __ptrace_request request, ... )
if (! err)
{
err = __msg_set_init_int (msgport, task, INIT_TRACEMASK,
- request == PTRACE_DETACH ? 0 :
- ~(sigset_t) 0);
+ request == PTRACE_DETACH ? 0
+ : ~(sigset_t) 0);
if (! err)
{
if (request == PTRACE_ATTACH)
@@ -349,8 +349,8 @@ ptrace (enum __ptrace_request request, ... )
task_t task = __pid2task (pid);
if (task == MACH_PORT_NULL)
return -1;
- if ((vm_address_t) addr % __vm_page_size == 0 &&
- (vm_address_t) data % __vm_page_size == 0)
+ if ((vm_address_t) addr % __vm_page_size == 0
+ && (vm_address_t) data % __vm_page_size == 0)
{
/* Writing whole pages; can go directly from the user's buffer. */
ourpage = (vm_address_t) addr2;
diff --git a/sysdeps/mach/hurd/ptsname.c b/sysdeps/mach/hurd/ptsname.c
index 5c1dc6e981..310c8b83a2 100644
--- a/sysdeps/mach/hurd/ptsname.c
+++ b/sysdeps/mach/hurd/ptsname.c
@@ -1,5 +1,5 @@
/* ptsname -- return the name of a pty slave given an FD to the pty master
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <string.h>
diff --git a/sysdeps/mach/hurd/pwrite.c b/sysdeps/mach/hurd/pwrite.c
index 80be158489..446e0e274d 100644
--- a/sysdeps/mach/hurd/pwrite.c
+++ b/sysdeps/mach/hurd/pwrite.c
@@ -1,6 +1,6 @@
/* Write block at given position in file without changing file pointer.
Hurd version.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/mach/hurd/pwrite64.c b/sysdeps/mach/hurd/pwrite64.c
index bfa6b02c14..492dc09a89 100644
--- a/sysdeps/mach/hurd/pwrite64.c
+++ b/sysdeps/mach/hurd/pwrite64.c
@@ -1,6 +1,6 @@
/* Write block to given position in file without changing file pointer.
Hurd version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/mach/hurd/read.c b/sysdeps/mach/hurd/read.c
index 20a4b979f6..edbbbb6ca9 100644
--- a/sysdeps/mach/hurd/read.c
+++ b/sysdeps/mach/hurd/read.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/mach/hurd/readdir.c b/sysdeps/mach/hurd/readdir.c
index 16f608cf5a..99fa069ab0 100644
--- a/sysdeps/mach/hurd/readdir.c
+++ b/sysdeps/mach/hurd/readdir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/sysdeps/mach/hurd/readdir64.c b/sysdeps/mach/hurd/readdir64.c
index f28d8603ab..a3d168ebbc 100644
--- a/sysdeps/mach/hurd/readdir64.c
+++ b/sysdeps/mach/hurd/readdir64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dirent.h>
#include <stddef.h>
diff --git a/sysdeps/mach/hurd/readdir64_r.c b/sysdeps/mach/hurd/readdir64_r.c
index eb39833c71..60f81475b8 100644
--- a/sysdeps/mach/hurd/readdir64_r.c
+++ b/sysdeps/mach/hurd/readdir64_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dirent.h>
#include <stddef.h>
diff --git a/sysdeps/mach/hurd/readdir_r.c b/sysdeps/mach/hurd/readdir_r.c
index 4b34434170..a357820acc 100644
--- a/sysdeps/mach/hurd/readdir_r.c
+++ b/sysdeps/mach/hurd/readdir_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <limits.h>
diff --git a/sysdeps/mach/hurd/readlink.c b/sysdeps/mach/hurd/readlink.c
index e1368d8fd0..768cb2e4b3 100644
--- a/sysdeps/mach/hurd/readlink.c
+++ b/sysdeps/mach/hurd/readlink.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <hurd.h>
diff --git a/sysdeps/mach/hurd/readlinkat.c b/sysdeps/mach/hurd/readlinkat.c
index e601c6b619..267e0b3801 100644
--- a/sysdeps/mach/hurd/readlinkat.c
+++ b/sysdeps/mach/hurd/readlinkat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -13,7 +13,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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <hurd.h>
diff --git a/sysdeps/mach/hurd/reboot.c b/sysdeps/mach/hurd/reboot.c
index beeb9bfcbc..76436cac8d 100644
--- a/sysdeps/mach/hurd/reboot.c
+++ b/sysdeps/mach/hurd/reboot.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/mach/hurd/recv.c b/sysdeps/mach/hurd/recv.c
index 0bc5ce4bfc..ac87cf9ef1 100644
--- a/sysdeps/mach/hurd/recv.c
+++ b/sysdeps/mach/hurd/recv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/socket.h>
diff --git a/sysdeps/mach/hurd/recvfrom.c b/sysdeps/mach/hurd/recvfrom.c
index 5d71a21b98..166c7bbd4d 100644
--- a/sysdeps/mach/hurd/recvfrom.c
+++ b/sysdeps/mach/hurd/recvfrom.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <string.h>
diff --git a/sysdeps/mach/hurd/recvmsg.c b/sysdeps/mach/hurd/recvmsg.c
index 770ca7187b..bb8d8305ea 100644
--- a/sysdeps/mach/hurd/recvmsg.c
+++ b/sysdeps/mach/hurd/recvmsg.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -13,7 +13,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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <string.h>
diff --git a/sysdeps/mach/hurd/removexattr.c b/sysdeps/mach/hurd/removexattr.c
index 6fdb88c3e9..c2cccfb771 100644
--- a/sysdeps/mach/hurd/removexattr.c
+++ b/sysdeps/mach/hurd/removexattr.c
@@ -1,5 +1,5 @@
/* Access to extended attributes on files. Hurd version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/xattr.h>
diff --git a/sysdeps/mach/hurd/rename.c b/sysdeps/mach/hurd/rename.c
index ea3ffa3792..1d1d9b5f6d 100644
--- a/sysdeps/mach/hurd/rename.c
+++ b/sysdeps/mach/hurd/rename.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <hurd.h>
diff --git a/sysdeps/mach/hurd/renameat.c b/sysdeps/mach/hurd/renameat.c
index 7985763f73..e429a23f47 100644
--- a/sysdeps/mach/hurd/renameat.c
+++ b/sysdeps/mach/hurd/renameat.c
@@ -1,5 +1,5 @@
/* Rename a file using relative source and destination names. Hurd version.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <hurd.h>
@@ -24,26 +24,7 @@
int
__renameat (int oldfd, const char *old, int newfd, const char *new)
{
- error_t err;
- file_t olddir, newdir;
- const char *oldname, *newname;
-
- olddir = __directory_name_split_at (oldfd, old, (char **) &oldname);
- if (olddir == MACH_PORT_NULL)
- return -1;
- newdir = __directory_name_split_at (newfd, new, (char **) &newname);
- if (newdir == MACH_PORT_NULL)
- {
- __mach_port_deallocate (__mach_task_self (), olddir);
- return -1;
- }
-
- err = __dir_rename (olddir, oldname, newdir, newname, 0);
- __mach_port_deallocate (__mach_task_self (), olddir);
- __mach_port_deallocate (__mach_task_self (), newdir);
- if (err)
- return __hurd_fail (err);
- return 0;
+ return __renameat2 (oldfd, old, newfd, new, 0);
}
libc_hidden_def (__renameat)
weak_alias (__renameat, renameat)
diff --git a/sysdeps/mach/hurd/renameat2.c b/sysdeps/mach/hurd/renameat2.c
new file mode 100644
index 0000000000..9e8f39d540
--- /dev/null
+++ b/sysdeps/mach/hurd/renameat2.c
@@ -0,0 +1,58 @@
+/* Rename a file using relative source and destination names. Hurd version.
+ Copyright (C) 1991-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdio.h>
+#include <hurd.h>
+#include <hurd/fd.h>
+
+/* Rename the file OLD relative to OLDFD to NEW relative to NEWFD. */
+int
+__renameat2 (int oldfd, const char *old, int newfd, const char *new,
+ unsigned int flags)
+{
+ error_t err;
+ file_t olddir, newdir;
+ const char *oldname, *newname;
+ int excl = 0;
+
+ if ((flags & (RENAME_EXCHANGE | RENAME_NOREPLACE)) == (RENAME_EXCHANGE | RENAME_NOREPLACE))
+ return __hurd_fail (EINVAL);
+ if (flags & (RENAME_EXCHANGE | RENAME_WHITEOUT))
+ return __hurd_fail (ENOSYS);
+ if (flags & RENAME_NOREPLACE)
+ excl = 1;
+
+ olddir = __directory_name_split_at (oldfd, old, (char **) &oldname);
+ if (olddir == MACH_PORT_NULL)
+ return -1;
+ newdir = __directory_name_split_at (newfd, new, (char **) &newname);
+ if (newdir == MACH_PORT_NULL)
+ {
+ __mach_port_deallocate (__mach_task_self (), olddir);
+ return -1;
+ }
+
+ err = __dir_rename (olddir, oldname, newdir, newname, excl);
+ __mach_port_deallocate (__mach_task_self (), olddir);
+ __mach_port_deallocate (__mach_task_self (), newdir);
+ if (err)
+ return __hurd_fail (err);
+ return 0;
+}
+libc_hidden_def (__renameat2)
+weak_alias (__renameat2, renameat2)
diff --git a/sysdeps/mach/hurd/res_enable_icmp.c b/sysdeps/mach/hurd/res_enable_icmp.c
new file mode 100644
index 0000000000..d613158e8f
--- /dev/null
+++ b/sysdeps/mach/hurd/res_enable_icmp.c
@@ -0,0 +1,27 @@
+/* Enable full ICMP errors on a socket. No-op version for Hurd.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+/* Mach does not support the IP_RECVERR extension. */
+
+#include <resolv.h>
+
+int
+__res_enable_icmp (int family, int fd)
+{
+ return 0;
+}
diff --git a/sysdeps/mach/hurd/revoke.c b/sysdeps/mach/hurd/revoke.c
index 5b1495a238..d9258304d5 100644
--- a/sysdeps/mach/hurd/revoke.c
+++ b/sysdeps/mach/hurd/revoke.c
@@ -1,5 +1,5 @@
/* Revoke the access of all descriptors currently open on a file. Hurd version
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <errno.h>
diff --git a/sysdeps/mach/hurd/rewinddir.c b/sysdeps/mach/hurd/rewinddir.c
index 4e8864f9ea..1f4a043f1d 100644
--- a/sysdeps/mach/hurd/rewinddir.c
+++ b/sysdeps/mach/hurd/rewinddir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <dirent.h>
diff --git a/sysdeps/mach/hurd/rmdir.c b/sysdeps/mach/hurd/rmdir.c
index 1ad10fbb68..a3b5f9c6ed 100644
--- a/sysdeps/mach/hurd/rmdir.c
+++ b/sysdeps/mach/hurd/rmdir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/sysdeps/mach/hurd/sbrk.c b/sysdeps/mach/hurd/sbrk.c
index 2736342734..ac01d3366f 100644
--- a/sysdeps/mach/hurd/sbrk.c
+++ b/sysdeps/mach/hurd/sbrk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <hurd.h>
diff --git a/sysdeps/mach/hurd/seekdir.c b/sysdeps/mach/hurd/seekdir.c
index a7b9222452..04c6873f42 100644
--- a/sysdeps/mach/hurd/seekdir.c
+++ b/sysdeps/mach/hurd/seekdir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/sysdeps/mach/hurd/select.c b/sysdeps/mach/hurd/select.c
index bcf8fbf8f7..4ae453840b 100644
--- a/sysdeps/mach/hurd/select.c
+++ b/sysdeps/mach/hurd/select.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <sys/time.h>
diff --git a/sysdeps/mach/hurd/send.c b/sysdeps/mach/hurd/send.c
index c7dc907129..1df9d7285d 100644
--- a/sysdeps/mach/hurd/send.c
+++ b/sysdeps/mach/hurd/send.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/socket.h>
diff --git a/sysdeps/mach/hurd/sendfile.c b/sysdeps/mach/hurd/sendfile.c
index 4df66b56d7..3456cbd7a8 100644
--- a/sysdeps/mach/hurd/sendfile.c
+++ b/sysdeps/mach/hurd/sendfile.c
@@ -1,5 +1,5 @@
/* sendfile -- copy data directly from one file descriptor to another
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/sendfile.h>
#include <stddef.h>
diff --git a/sysdeps/mach/hurd/sendfile64.c b/sysdeps/mach/hurd/sendfile64.c
index ea4e96da90..44c7ca9ffc 100644
--- a/sysdeps/mach/hurd/sendfile64.c
+++ b/sysdeps/mach/hurd/sendfile64.c
@@ -1,5 +1,5 @@
/* sendfile -- copy data directly from one file descriptor to another
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/sendfile.h>
#include <hurd.h>
diff --git a/sysdeps/mach/hurd/sendmsg.c b/sysdeps/mach/hurd/sendmsg.c
index d12f4a1e90..af1b9d17a3 100644
--- a/sysdeps/mach/hurd/sendmsg.c
+++ b/sysdeps/mach/hurd/sendmsg.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -13,7 +13,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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <string.h>
diff --git a/sysdeps/mach/hurd/sendto.c b/sysdeps/mach/hurd/sendto.c
index 46cabbb9cf..73368f3805 100644
--- a/sysdeps/mach/hurd/sendto.c
+++ b/sysdeps/mach/hurd/sendto.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/socket.h>
diff --git a/sysdeps/mach/hurd/setdomain.c b/sysdeps/mach/hurd/setdomain.c
index f78e8626c1..ed9ddc19b4 100644
--- a/sysdeps/mach/hurd/setdomain.c
+++ b/sysdeps/mach/hurd/setdomain.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include "hurdhost.h"
diff --git a/sysdeps/mach/hurd/setegid.c b/sysdeps/mach/hurd/setegid.c
index c5e8cf622f..ef7233d2fa 100644
--- a/sysdeps/mach/hurd/setegid.c
+++ b/sysdeps/mach/hurd/setegid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/mach/hurd/seteuid.c b/sysdeps/mach/hurd/seteuid.c
index d6001960a8..0ea98df484 100644
--- a/sysdeps/mach/hurd/seteuid.c
+++ b/sysdeps/mach/hurd/seteuid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/mach/hurd/setgid.c b/sysdeps/mach/hurd/setgid.c
index faac055f71..98120bc6be 100644
--- a/sysdeps/mach/hurd/setgid.c
+++ b/sysdeps/mach/hurd/setgid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/mach/hurd/setgroups.c b/sysdeps/mach/hurd/setgroups.c
index cdfa869fc2..4633599435 100644
--- a/sysdeps/mach/hurd/setgroups.c
+++ b/sysdeps/mach/hurd/setgroups.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/types.h>
diff --git a/sysdeps/mach/hurd/sethostid.c b/sysdeps/mach/hurd/sethostid.c
index 90c816884b..e305c81dd7 100644
--- a/sysdeps/mach/hurd/sethostid.c
+++ b/sysdeps/mach/hurd/sethostid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <hurd.h>
diff --git a/sysdeps/mach/hurd/sethostname.c b/sysdeps/mach/hurd/sethostname.c
index 2771afc2f6..7dce2de40d 100644
--- a/sysdeps/mach/hurd/sethostname.c
+++ b/sysdeps/mach/hurd/sethostname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include "hurdhost.h"
diff --git a/sysdeps/mach/hurd/setitimer.c b/sysdeps/mach/hurd/setitimer.c
index f5dfb7da84..2aab365c31 100644
--- a/sysdeps/mach/hurd/setitimer.c
+++ b/sysdeps/mach/hurd/setitimer.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <errno.h>
@@ -23,6 +23,7 @@
#include <hurd/signal.h>
#include <hurd/sigpreempt.h>
#include <hurd/msg_request.h>
+#include <mach.h>
#include <mach/message.h>
/* XXX Temporary cheezoid implementation of ITIMER_REAL/SIGALRM. */
@@ -89,8 +90,8 @@ timer_thread (void)
err = __mach_msg (&msg.header,
MACH_RCV_MSG|MACH_RCV_TIMEOUT|MACH_RCV_INTERRUPT,
0, 0, _hurd_itimer_port,
- _hurd_itimerval.it_value.tv_sec * 1000 +
- _hurd_itimerval.it_value.tv_usec / 1000,
+ _hurd_itimerval.it_value.tv_sec * 1000
+ + _hurd_itimerval.it_value.tv_usec / 1000,
MACH_PORT_NULL);
switch (err)
{
@@ -128,7 +129,8 @@ timer_thread (void)
/* Forward declaration. */
static int setitimer_locked (const struct itimerval *new,
- struct itimerval *old, void *crit);
+ struct itimerval *old, void *crit,
+ int hurd_siglocked);
static sighandler_t
restart_itimer (struct hurd_signal_preemptor *preemptor,
@@ -142,7 +144,7 @@ restart_itimer (struct hurd_signal_preemptor *preemptor,
/* Either reload or disable the itimer. */
__spin_lock (&_hurd_itimer_lock);
it.it_value = it.it_interval = _hurd_itimerval.it_interval;
- setitimer_locked (&it, NULL, NULL);
+ setitimer_locked (&it, NULL, NULL, 1);
/* Continue with normal delivery (or hold, etc.) of SIGALRM. */
return SIG_ERR;
@@ -154,7 +156,7 @@ restart_itimer (struct hurd_signal_preemptor *preemptor,
static int
setitimer_locked (const struct itimerval *new, struct itimerval *old,
- void *crit)
+ void *crit, int hurd_siglocked)
{
struct itimerval newval;
struct timeval now, remaining, elapsed;
@@ -192,16 +194,19 @@ setitimer_locked (const struct itimerval *new, struct itimerval *old,
run `restart_itimer' each time a SIGALRM would arrive. */
static struct hurd_signal_preemptor preemptor =
{
- __sigmask (SIGALRM), 0, 0,
+ __sigmask (SIGALRM), SI_TIMER, SI_TIMER,
&restart_itimer,
};
- __mutex_lock (&_hurd_siglock);
+ if (!hurd_siglocked)
+ __mutex_lock (&_hurd_siglock);
if (! preemptor.next && _hurdsig_preemptors != &preemptor)
{
preemptor.next = _hurdsig_preemptors;
_hurdsig_preemptors = &preemptor;
+ _hurdsig_preempted_set |= preemptor.signals;
}
- __mutex_unlock (&_hurd_siglock);
+ if (!hurd_siglocked)
+ __mutex_unlock (&_hurd_siglock);
if (_hurd_itimer_port == MACH_PORT_NULL)
{
@@ -239,12 +244,12 @@ setitimer_locked (const struct itimerval *new, struct itimerval *old,
if ((newval.it_value.tv_sec | newval.it_value.tv_usec) != 0 || old != NULL)
{
/* Calculate how much time is remaining for the pending alarm. */
- if (__gettimeofday (&now, NULL) < 0)
- {
- __spin_unlock (&_hurd_itimer_lock);
- _hurd_critical_section_unlock (crit);
- return -1;
- }
+ {
+ time_value_t tv;
+ __host_get_time (__mach_host_self (), &tv);
+ now.tv_sec = tv.seconds;
+ now.tv_usec = tv.microseconds;
+ }
elapsed = now;
subtract_timeval (&elapsed, &_hurd_itimer_started);
remaining = _hurd_itimerval.it_value;
@@ -278,8 +283,8 @@ setitimer_locked (const struct itimerval *new, struct itimerval *old,
kernel context so that when the thread is resumed, mach_msg
will return to timer_thread (below) and it will fetch new
values from _hurd_itimerval. */
- if ((err = __thread_suspend (_hurd_itimer_thread)) ||
- (err = __thread_abort (_hurd_itimer_thread)))
+ if ((err = __thread_suspend (_hurd_itimer_thread))
+ || (err = __thread_abort (_hurd_itimer_thread)))
/* If we can't save it for later, nuke it. */
kill_itimer_thread ();
else
@@ -287,8 +292,8 @@ setitimer_locked (const struct itimerval *new, struct itimerval *old,
}
}
/* See if the timeout changed. If so, we must alert the itimer thread. */
- else if (remaining.tv_sec != newval.it_value.tv_sec ||
- remaining.tv_usec != newval.it_value.tv_usec)
+ else if (remaining.tv_sec != newval.it_value.tv_sec
+ || remaining.tv_usec != newval.it_value.tv_usec)
{
/* The timeout value is changing. Tell the itimer thread to
reexamine it and start counting down. If the itimer thread is
@@ -349,7 +354,7 @@ __setitimer (enum __itimer_which which, const struct itimerval *new,
crit = _hurd_critical_section_lock ();
__spin_lock (&_hurd_itimer_lock);
- return setitimer_locked (new, old, crit);
+ return setitimer_locked (new, old, crit, 0);
}
static void
@@ -364,7 +369,7 @@ fork_itimer (void)
it = _hurd_itimerval;
it.it_value = it.it_interval;
- setitimer_locked (&it, NULL, NULL);
+ setitimer_locked (&it, NULL, NULL, 0);
(void) &fork_itimer; /* Avoid gcc optimizing out the function. */
}
diff --git a/sysdeps/mach/hurd/setlogin.c b/sysdeps/mach/hurd/setlogin.c
index bb12e81a52..fe5402e3af 100644
--- a/sysdeps/mach/hurd/setlogin.c
+++ b/sysdeps/mach/hurd/setlogin.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/mach/hurd/setpgid.c b/sysdeps/mach/hurd/setpgid.c
index 98b1341cfa..7f2d29d7c8 100644
--- a/sysdeps/mach/hurd/setpgid.c
+++ b/sysdeps/mach/hurd/setpgid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/mach/hurd/setpriority.c b/sysdeps/mach/hurd/setpriority.c
index a9c263491d..7f764485dd 100644
--- a/sysdeps/mach/hurd/setpriority.c
+++ b/sysdeps/mach/hurd/setpriority.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <hurd.h>
#include <hurd/resource.h>
diff --git a/sysdeps/mach/hurd/setregid.c b/sysdeps/mach/hurd/setregid.c
index 45953474b7..d831b1298b 100644
--- a/sysdeps/mach/hurd/setregid.c
+++ b/sysdeps/mach/hurd/setregid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/types.h>
diff --git a/sysdeps/mach/hurd/setresgid.c b/sysdeps/mach/hurd/setresgid.c
index d09935d8b0..f62273856f 100644
--- a/sysdeps/mach/hurd/setresgid.c
+++ b/sysdeps/mach/hurd/setresgid.c
@@ -1,5 +1,5 @@
/* setresgid -- set real group ID, effective group ID, and saved-set group ID
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/mach/hurd/setresuid.c b/sysdeps/mach/hurd/setresuid.c
index 3ed7dfd021..ed73dce098 100644
--- a/sysdeps/mach/hurd/setresuid.c
+++ b/sysdeps/mach/hurd/setresuid.c
@@ -1,5 +1,5 @@
/* setresuid -- set real user ID, effective user ID, and saved-set user ID
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/mach/hurd/setreuid.c b/sysdeps/mach/hurd/setreuid.c
index 12548b375b..e751f586b1 100644
--- a/sysdeps/mach/hurd/setreuid.c
+++ b/sysdeps/mach/hurd/setreuid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/types.h>
diff --git a/sysdeps/mach/hurd/setrlimit.c b/sysdeps/mach/hurd/setrlimit.c
index 8866f05935..068aed37ac 100644
--- a/sysdeps/mach/hurd/setrlimit.c
+++ b/sysdeps/mach/hurd/setrlimit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
diff --git a/sysdeps/mach/hurd/setsid.c b/sysdeps/mach/hurd/setsid.c
index 7b989361d1..1022e06a23 100644
--- a/sysdeps/mach/hurd/setsid.c
+++ b/sysdeps/mach/hurd/setsid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/mach/hurd/setsockopt.c b/sysdeps/mach/hurd/setsockopt.c
index c837a7c9e9..2dea360712 100644
--- a/sysdeps/mach/hurd/setsockopt.c
+++ b/sysdeps/mach/hurd/setsockopt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/socket.h>
diff --git a/sysdeps/mach/hurd/settimeofday.c b/sysdeps/mach/hurd/settimeofday.c
deleted file mode 100644
index a29c488ed7..0000000000
--- a/sysdeps/mach/hurd/settimeofday.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/* Copyright (C) 1991-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <sys/time.h>
-#include <hurd.h>
-#include <hurd/port.h>
-
-/* Set the current time of day and timezone information.
- This call is restricted to the super-user. */
-int
-__settimeofday (const struct timeval *tv, const struct timezone *tz)
-{
- error_t err;
- mach_port_t hostpriv;
-
- if (tz != NULL)
- {
- errno = ENOSYS;
- return -1;
- }
-
- err = __get_privileged_ports (&hostpriv, NULL);
- if (err)
- return __hurd_fail (EPERM);
-
- /* `time_value_t' and `struct timeval' are in fact identical with the
- names changed. */
- err = __host_set_time (hostpriv, *(time_value_t *) tv);
- __mach_port_deallocate (__mach_task_self (), hostpriv);
-
- if (err)
- return __hurd_fail (err);
-
- return 0;
-}
-
-weak_alias (__settimeofday, settimeofday)
diff --git a/sysdeps/mach/hurd/setuid.c b/sysdeps/mach/hurd/setuid.c
index e3c0120c98..b0bcee8d4f 100644
--- a/sysdeps/mach/hurd/setuid.c
+++ b/sysdeps/mach/hurd/setuid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/mach/hurd/setxattr.c b/sysdeps/mach/hurd/setxattr.c
index ea23652190..7b728c8b4e 100644
--- a/sysdeps/mach/hurd/setxattr.c
+++ b/sysdeps/mach/hurd/setxattr.c
@@ -1,5 +1,5 @@
/* Access to extended attributes on files. Hurd version.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/xattr.h>
diff --git a/sysdeps/mach/hurd/shutdown.c b/sysdeps/mach/hurd/shutdown.c
index 484820f275..bad28ba35d 100644
--- a/sysdeps/mach/hurd/shutdown.c
+++ b/sysdeps/mach/hurd/shutdown.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/socket.h>
diff --git a/sysdeps/mach/hurd/sigaction.c b/sysdeps/mach/hurd/sigaction.c
index 5f010064c9..39ce9a1388 100644
--- a/sysdeps/mach/hurd/sigaction.c
+++ b/sysdeps/mach/hurd/sigaction.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
@@ -30,10 +30,10 @@ __sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
struct sigaction a, old;
sigset_t pending;
- if (sig <= 0 || sig >= NSIG ||
- (act != NULL && act->sa_handler != SIG_DFL &&
- ((__sigmask (sig) & _SIG_CANT_MASK) ||
- act->sa_handler == SIG_ERR)))
+ if (sig <= 0 || sig >= NSIG
+ || (act != NULL && act->sa_handler != SIG_DFL
+ && ((__sigmask (sig) & _SIG_CANT_MASK)
+ || act->sa_handler == SIG_ERR)))
{
errno = EINVAL;
return -1;
@@ -51,8 +51,8 @@ __sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
if (act != NULL)
ss->actions[sig] = a;
- if (act != NULL && sig == SIGCHLD &&
- (a.sa_flags & SA_NOCLDSTOP) != (old.sa_flags & SA_NOCLDSTOP))
+ if (act != NULL && sig == SIGCHLD
+ && (a.sa_flags & SA_NOCLDSTOP) != (old.sa_flags & SA_NOCLDSTOP))
{
__spin_unlock (&ss->lock);
diff --git a/sysdeps/mach/hurd/sigaltstack.c b/sysdeps/mach/hurd/sigaltstack.c
index 44b019aaf2..0c51870d4d 100644
--- a/sysdeps/mach/hurd/sigaltstack.c
+++ b/sysdeps/mach/hurd/sigaltstack.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <hurd.h>
@@ -36,8 +36,9 @@ __sigaltstack (const stack_t *argss, stack_t *oss)
s = _hurd_self_sigstate ();
__spin_lock (&s->lock);
- if (argss != NULL &&
- (ss.ss_flags & SS_DISABLE) && (s->sigaltstack.ss_flags & SS_ONSTACK))
+ if (argss != NULL
+ && (ss.ss_flags & SS_DISABLE)
+ && (s->sigaltstack.ss_flags & SS_ONSTACK))
{
/* Can't disable a stack that is in use. */
__spin_unlock (&s->lock);
diff --git a/sysdeps/mach/hurd/siglist.h b/sysdeps/mach/hurd/siglist.h
index 193ca6dec2..fbec044d10 100644
--- a/sysdeps/mach/hurd/siglist.h
+++ b/sysdeps/mach/hurd/siglist.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file is included multiple times. */
diff --git a/sysdeps/mach/hurd/sigpending.c b/sysdeps/mach/hurd/sigpending.c
index ea41ddc427..397d5ecd22 100644
--- a/sysdeps/mach/hurd/sigpending.c
+++ b/sysdeps/mach/hurd/sigpending.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/sysdeps/mach/hurd/sigprocmask.c b/sysdeps/mach/hurd/sigprocmask.c
index e2587afcbc..240c4290df 100644
--- a/sysdeps/mach/hurd/sigprocmask.c
+++ b/sysdeps/mach/hurd/sigprocmask.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/sysdeps/mach/hurd/sigstack.c b/sysdeps/mach/hurd/sigstack.c
index d87d220e39..465834052b 100644
--- a/sysdeps/mach/hurd/sigstack.c
+++ b/sysdeps/mach/hurd/sigstack.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/sysdeps/mach/hurd/sigsuspend.c b/sysdeps/mach/hurd/sigsuspend.c
index 7da3897722..9551285a70 100644
--- a/sysdeps/mach/hurd/sigsuspend.c
+++ b/sysdeps/mach/hurd/sigsuspend.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <hurd.h>
diff --git a/sysdeps/mach/hurd/sigwait.c b/sysdeps/mach/hurd/sigwait.c
index ce17cce895..b70f7685b3 100644
--- a/sysdeps/mach/hurd/sigwait.c
+++ b/sysdeps/mach/hurd/sigwait.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <hurd.h>
diff --git a/sysdeps/mach/hurd/socket.c b/sysdeps/mach/hurd/socket.c
index 43f2c3b2b5..b3bdc93a15 100644
--- a/sysdeps/mach/hurd/socket.c
+++ b/sysdeps/mach/hurd/socket.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/socket.h>
diff --git a/sysdeps/mach/hurd/socketpair.c b/sysdeps/mach/hurd/socketpair.c
index 6dce208157..5eb2252994 100644
--- a/sysdeps/mach/hurd/socketpair.c
+++ b/sysdeps/mach/hurd/socketpair.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/sysdeps/mach/hurd/spawni.c b/sysdeps/mach/hurd/spawni.c
index 9351c13e56..e6b032b8a4 100644
--- a/sysdeps/mach/hurd/spawni.c
+++ b/sysdeps/mach/hurd/spawni.c
@@ -1,5 +1,5 @@
/* spawn a new process running an executable. Hurd version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
@@ -113,6 +113,9 @@ __spawni (pid_t *pid, const char *file,
struct hurd_userlink *ulink_dtable = NULL;
struct hurd_sigstate *ss;
+ /* Child current working dir */
+ file_t ccwdir = MACH_PORT_NULL;
+
/* For POSIX_SPAWN_RESETIDS, this reauthenticates our root/current
directory ports with the new AUTH port. */
file_t rcrdir = MACH_PORT_NULL, rcwdir = MACH_PORT_NULL;
@@ -123,16 +126,25 @@ __spawni (pid_t *pid, const char *file,
if (*result != MACH_PORT_NULL)
return 0;
ref = __mach_reply_port ();
- err = HURD_PORT_USE
- (&_hurd_ports[which],
- ({
- err = __io_reauthenticate (port, ref, MACH_MSG_TYPE_MAKE_SEND);
- if (!err)
- err = __auth_user_authenticate (auth,
- ref, MACH_MSG_TYPE_MAKE_SEND,
- result);
- err;
- }));
+ if (which == INIT_PORT_CWDIR && ccwdir != MACH_PORT_NULL)
+ {
+ err = __io_reauthenticate (ccwdir, ref, MACH_MSG_TYPE_MAKE_SEND);
+ if (!err)
+ err = __auth_user_authenticate (auth,
+ ref, MACH_MSG_TYPE_MAKE_SEND,
+ result);
+ }
+ else
+ err = HURD_PORT_USE
+ (&_hurd_ports[which],
+ ({
+ err = __io_reauthenticate (port, ref, MACH_MSG_TYPE_MAKE_SEND);
+ if (!err)
+ err = __auth_user_authenticate (auth,
+ ref, MACH_MSG_TYPE_MAKE_SEND,
+ result);
+ err;
+ }));
__mach_port_destroy (__mach_task_self (), ref);
return err;
}
@@ -177,6 +189,14 @@ __spawni (pid_t *pid, const char *file,
return (reauthenticate (INIT_PORT_CWDIR, &rcwdir)
?: (*operate) (rcwdir));
}
+ else
+ switch (which)
+ {
+ case INIT_PORT_CWDIR:
+ if (ccwdir != MACH_PORT_NULL)
+ return (*operate) (ccwdir);
+ break;
+ }
assert (which != INIT_PORT_PROC);
return _hurd_ports_use (which, operate);
}
@@ -205,6 +225,80 @@ __spawni (pid_t *pid, const char *file,
return __hurd_file_name_lookup (&child_init_port, &child_fd, 0,
file, oflag, mode, result);
}
+ auto error_t child_chdir (const char *name)
+ {
+ file_t new_ccwdir;
+
+ /* Append trailing "/." to directory name to force ENOTDIR if
+ it's not a directory and EACCES if we don't have search
+ permission. */
+ len = strlen (name);
+ const char *lookup = name;
+ if (len >= 2 && name[len - 2] == '/' && name[len - 1] == '.')
+ lookup = name;
+ else if (len == 0)
+ /* Special-case empty file name according to POSIX. */
+ return __hurd_fail (ENOENT);
+ else
+ {
+ char *n = alloca (len + 3);
+ memcpy (n, name, len);
+ n[len] = '/';
+ n[len + 1] = '.';
+ n[len + 2] = '\0';
+ lookup = n;
+ }
+
+ error_t err = child_lookup (lookup, 0, 0, &new_ccwdir);
+ if (!err)
+ {
+ if (ccwdir != MACH_PORT_NULL)
+ __mach_port_deallocate (__mach_task_self (), ccwdir);
+ ccwdir = new_ccwdir;
+ }
+
+ return err;
+ }
+ inline error_t child_lookup_under (file_t startdir, const char *file,
+ int oflag, mode_t mode, file_t *result)
+ {
+ error_t use_init_port (int which, error_t (*operate) (mach_port_t))
+ {
+ return (which == INIT_PORT_CWDIR ? (*operate) (startdir)
+ : child_init_port (which, operate));
+ }
+
+ return __hurd_file_name_lookup (&use_init_port, &child_fd, 0,
+ file, oflag, mode, result);
+ }
+ auto error_t child_fchdir (int fd)
+ {
+ file_t new_ccwdir;
+ error_t err;
+
+ if ((unsigned int)fd >= dtablesize
+ || dtable[fd] == MACH_PORT_NULL)
+ return EBADF;
+
+ /* We look up "." to force ENOTDIR if it's not a directory and EACCES if
+ we don't have search permission. */
+ if (dtable_cells[fd] != NULL)
+ err = HURD_PORT_USE (dtable_cells[fd],
+ ({
+ child_lookup_under (port, ".", O_NOTRANS, 0, &new_ccwdir);
+ }));
+ else
+ err = child_lookup_under (dtable[fd], ".", O_NOTRANS, 0, &new_ccwdir);
+
+ if (!err)
+ {
+ if (ccwdir != MACH_PORT_NULL)
+ __mach_port_deallocate (__mach_task_self (), ccwdir);
+ ccwdir = new_ccwdir;
+ }
+
+ return err;
+ }
/* Do this once. */
@@ -351,7 +445,7 @@ __spawni (pid_t *pid, const char *file,
dtable = __alloca (dtablesize * sizeof (dtable[0]));
ulink_dtable = __alloca (dtablesize * sizeof (ulink_dtable[0]));
dtable_cells = __alloca (dtablesize * sizeof (dtable_cells[0]));
- dtable_cloexec = __alloca (dtablesize);
+ dtable_cloexec = __alloca (orig_dtablesize);
for (i = 0; i < dtablesize; ++i)
{
struct hurd_fd *const d = _hurd_dtable[i];
@@ -403,7 +497,7 @@ __spawni (pid_t *pid, const char *file,
{ \
/* We need to expand the dtable for the child. */ \
NEW_TABLE (dtable, newfd); \
- NEW_TABLE (ulink_dtable, newfd); \
+ NEW_ULINK_TABLE (ulink_dtable, newfd); \
NEW_TABLE (dtable_cells, newfd); \
dtablesize = newfd + 1; \
} \
@@ -414,6 +508,16 @@ __spawni (pid_t *pid, const char *file,
memcpy (new_##x, x, dtablesize * sizeof (x[0])); \
memset (&new_##x[dtablesize], 0, (newfd + 1 - dtablesize) * sizeof (x[0])); \
x = new_##x; } while (0)
+#define NEW_ULINK_TABLE(x, newfd) \
+ do { __typeof (x) new_##x = __alloca ((newfd + 1) * sizeof (x[0])); \
+ unsigned i; \
+ for (i = 0; i < dtablesize; i++) \
+ if (dtable_cells[i] != NULL) \
+ _hurd_port_move (dtable_cells[i], &new_##x[i], &x[i]); \
+ else \
+ memset (&new_##x[i], 0, sizeof (new_##x[i])); \
+ memset (&new_##x[dtablesize], 0, (newfd + 1 - dtablesize) * sizeof (x[0])); \
+ x = new_##x; } while (0)
struct __spawn_action *action = &file_actions->__actions[i];
@@ -485,6 +589,14 @@ __spawni (pid_t *pid, const char *file,
dtable_cells[fd] = NULL;
break;
}
+
+ case spawn_do_chdir:
+ err = child_chdir (action->action.chdir_action.path);
+ break;
+
+ case spawn_do_fchdir:
+ err = child_fchdir (action->action.fchdir_action.fd);
+ break;
}
if (err)
@@ -561,10 +673,10 @@ __spawni (pid_t *pid, const char *file,
/* There is no `PATH' in the environment.
The default search path is the current directory
followed by the path `confstr' returns for `_CS_PATH'. */
- len = confstr (_CS_PATH, (char *) NULL, 0);
+ len = __confstr (_CS_PATH, (char *) NULL, 0);
path = (char *) __alloca (1 + len);
path[0] = ':';
- (void) confstr (_CS_PATH, path + 1, len);
+ (void) __confstr (_CS_PATH, path + 1, len);
}
len = strlen (file) + 1;
@@ -708,6 +820,11 @@ __spawni (pid_t *pid, const char *file,
ports[i] = rcwdir;
continue;
}
+ if (ccwdir != MACH_PORT_NULL)
+ {
+ ports[i] = ccwdir;
+ continue;
+ }
break;
}
ports[i] = _hurd_port_get (&_hurd_ports[i], &ulink_ports[i]);
@@ -748,6 +865,8 @@ __spawni (pid_t *pid, const char *file,
case INIT_PORT_CWDIR:
if (flags & POSIX_SPAWN_RESETIDS)
continue;
+ if (ccwdir != MACH_PORT_NULL)
+ continue;
break;
}
_hurd_port_free (&_hurd_ports[i], &ulink_ports[i], ports[i]);
@@ -773,6 +892,8 @@ __spawni (pid_t *pid, const char *file,
}
__mach_port_deallocate (__mach_task_self (), auth);
__mach_port_deallocate (__mach_task_self (), proc);
+ if (ccwdir != MACH_PORT_NULL)
+ __mach_port_deallocate (__mach_task_self (), ccwdir);
if (rcrdir != MACH_PORT_NULL)
__mach_port_deallocate (__mach_task_self (), rcrdir);
if (rcwdir != MACH_PORT_NULL)
diff --git a/sysdeps/mach/hurd/statfs.c b/sysdeps/mach/hurd/statfs.c
index b64eae5182..ba012a3144 100644
--- a/sysdeps/mach/hurd/statfs.c
+++ b/sysdeps/mach/hurd/statfs.c
@@ -1,5 +1,5 @@
/* statfs -- Return information about the filesystem on which FILE resides.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/statfs.h>
diff --git a/sysdeps/mach/hurd/statfs64.c b/sysdeps/mach/hurd/statfs64.c
index 1697079fc3..000c325856 100644
--- a/sysdeps/mach/hurd/statfs64.c
+++ b/sysdeps/mach/hurd/statfs64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/statfs.h>
#include <hurd.h>
diff --git a/sysdeps/mach/hurd/statfsconv.c b/sysdeps/mach/hurd/statfsconv.c
index 4a699d10a6..adcbd65fe8 100644
--- a/sysdeps/mach/hurd/statfsconv.c
+++ b/sysdeps/mach/hurd/statfsconv.c
@@ -1,5 +1,5 @@
/* Convert between `struct statfs' format, and `struct statfs64' format.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/statfs.h>
#include <errno.h>
diff --git a/sysdeps/mach/hurd/statvfs.c b/sysdeps/mach/hurd/statvfs.c
index 92e197806d..6e45ca236b 100644
--- a/sysdeps/mach/hurd/statvfs.c
+++ b/sysdeps/mach/hurd/statvfs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/statfs.h>
#include <sys/statvfs.h>
diff --git a/sysdeps/mach/hurd/statvfs64.c b/sysdeps/mach/hurd/statvfs64.c
index f6dd8feda8..d175b6a33b 100644
--- a/sysdeps/mach/hurd/statvfs64.c
+++ b/sysdeps/mach/hurd/statvfs64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/statfs.h>
#include <sys/statvfs.h>
diff --git a/sysdeps/mach/hurd/symlink.c b/sysdeps/mach/hurd/symlink.c
index d8a31ec458..42469ae037 100644
--- a/sysdeps/mach/hurd/symlink.c
+++ b/sysdeps/mach/hurd/symlink.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <unistd.h>
diff --git a/sysdeps/mach/hurd/symlinkat.c b/sysdeps/mach/hurd/symlinkat.c
index 4c4eaaaee7..42bd9b2885 100644
--- a/sysdeps/mach/hurd/symlinkat.c
+++ b/sysdeps/mach/hurd/symlinkat.c
@@ -1,5 +1,5 @@
/* Create a symbolic link named relative to an open directory. Hurd version.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/sysdeps/mach/hurd/sync.c b/sysdeps/mach/hurd/sync.c
index ed5709ca34..0031c248cd 100644
--- a/sysdeps/mach/hurd/sync.c
+++ b/sysdeps/mach/hurd/sync.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/mach/hurd/syncfs.c b/sysdeps/mach/hurd/syncfs.c
index eb57f5dfed..57d7ed444b 100644
--- a/sysdeps/mach/hurd/syncfs.c
+++ b/sysdeps/mach/hurd/syncfs.c
@@ -1,6 +1,6 @@
/* Make all changes done to all files on the file system associated
with FD actually appear on disk.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <hurd.h>
diff --git a/sysdeps/mach/hurd/sysconf.c b/sysdeps/mach/hurd/sysconf.c
index b9d837a83f..3fe9a3af3b 100644
--- a/sysdeps/mach/hurd/sysconf.c
+++ b/sysdeps/mach/hurd/sysconf.c
@@ -1,5 +1,5 @@
/* Return values of system parameters. Hurd version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <limits.h>
#include <unistd.h>
diff --git a/sysdeps/mach/hurd/sysdep-cancel.h b/sysdeps/mach/hurd/sysdep-cancel.h
index ec55c7330f..f686a39024 100644
--- a/sysdeps/mach/hurd/sysdep-cancel.h
+++ b/sysdeps/mach/hurd/sysdep-cancel.h
@@ -6,4 +6,3 @@
#define RTLD_SINGLE_THREAD_P (0)
#define LIBC_CANCEL_ASYNC() 0 /* Just a dummy value. */
#define LIBC_CANCEL_RESET(val) ((void)(val)) /* Nothing, but evaluate it. */
-#define LIBC_CANCEL_HANDLED() /* Nothing. */
diff --git a/sysdeps/mach/hurd/telldir.c b/sysdeps/mach/hurd/telldir.c
index 5ff62f359f..049dbca912 100644
--- a/sysdeps/mach/hurd/telldir.c
+++ b/sysdeps/mach/hurd/telldir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/sysdeps/mach/hurd/times.c b/sysdeps/mach/hurd/times.c
index 246280115a..56a0062cd5 100644
--- a/sysdeps/mach/hurd/times.c
+++ b/sysdeps/mach/hurd/times.c
@@ -1,5 +1,5 @@
/* Return CPU and real time used by process and its children. Hurd version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
@@ -42,7 +42,7 @@ __times (struct tms *tms)
struct task_basic_info bi;
struct task_thread_times_info tti;
mach_msg_type_number_t count;
- union { time_value_t tvt; struct timeval tv; } now;
+ time_value_t now;
error_t err;
count = TASK_BASIC_INFO_COUNT;
@@ -65,10 +65,9 @@ __times (struct tms *tms)
/* XXX This can't be implemented until getrusage(RUSAGE_CHILDREN) can be. */
tms->tms_cutime = tms->tms_cstime = 0;
- if (__gettimeofday (&now.tv, NULL) < 0)
- return -1;
+ __host_get_time (__mach_host_self (), &now);
- return (clock_from_time_value (&now.tvt)
+ return (clock_from_time_value (&now)
- clock_from_time_value (&bi.creation_time));
}
weak_alias (__times, times)
diff --git a/sysdeps/mach/hurd/tls.h b/sysdeps/mach/hurd/tls.h
index 67c657b655..a7b3575f01 100644
--- a/sysdeps/mach/hurd/tls.h
+++ b/sysdeps/mach/hurd/tls.h
@@ -1,5 +1,5 @@
/* Definitions for thread-local data handling. Hurd version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _TLS_H
#define _TLS_H
diff --git a/sysdeps/mach/hurd/tmpfile.c b/sysdeps/mach/hurd/tmpfile.c
index 488bb6ae2b..232957a743 100644
--- a/sysdeps/mach/hurd/tmpfile.c
+++ b/sysdeps/mach/hurd/tmpfile.c
@@ -1,5 +1,5 @@
/* Open a stdio stream on an anonymous temporary file. Hurd version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <hurd.h>
diff --git a/sysdeps/mach/hurd/truncate.c b/sysdeps/mach/hurd/truncate.c
index e3fc452511..06d47098b7 100644
--- a/sysdeps/mach/hurd/truncate.c
+++ b/sysdeps/mach/hurd/truncate.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/sysdeps/mach/hurd/truncate64.c b/sysdeps/mach/hurd/truncate64.c
index 0d30a1cc01..10a8a53fd8 100644
--- a/sysdeps/mach/hurd/truncate64.c
+++ b/sysdeps/mach/hurd/truncate64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/sysdeps/mach/hurd/ttyname.c b/sysdeps/mach/hurd/ttyname.c
index f500095650..3e5b54a400 100644
--- a/sysdeps/mach/hurd/ttyname.c
+++ b/sysdeps/mach/hurd/ttyname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/mach/hurd/ttyname_r.c b/sysdeps/mach/hurd/ttyname_r.c
index b307080b6d..7e1bac0b08 100644
--- a/sysdeps/mach/hurd/ttyname_r.c
+++ b/sysdeps/mach/hurd/ttyname_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <string.h>
diff --git a/sysdeps/mach/hurd/umask.c b/sysdeps/mach/hurd/umask.c
index 420e35a5fc..b447811d5d 100644
--- a/sysdeps/mach/hurd/umask.c
+++ b/sysdeps/mach/hurd/umask.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/stat.h>
#include <hurd.h>
diff --git a/sysdeps/mach/hurd/uname.c b/sysdeps/mach/hurd/uname.c
index 2d5323e32d..d85626cc81 100644
--- a/sysdeps/mach/hurd/uname.c
+++ b/sysdeps/mach/hurd/uname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <sys/utsname.h>
diff --git a/sysdeps/mach/hurd/unlink.c b/sysdeps/mach/hurd/unlink.c
index 6376fefd57..7857722dad 100644
--- a/sysdeps/mach/hurd/unlink.c
+++ b/sysdeps/mach/hurd/unlink.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/sysdeps/mach/hurd/unlinkat.c b/sysdeps/mach/hurd/unlinkat.c
index f20a0f20a0..673ffb271d 100644
--- a/sysdeps/mach/hurd/unlinkat.c
+++ b/sysdeps/mach/hurd/unlinkat.c
@@ -1,5 +1,5 @@
/* unlinkat -- Remove a name relative to an open directory. Hurd version.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/sysdeps/mach/hurd/utime-helper.c b/sysdeps/mach/hurd/utime-helper.c
index 6aed3316a7..136059dd01 100644
--- a/sysdeps/mach/hurd/utime-helper.c
+++ b/sysdeps/mach/hurd/utime-helper.c
@@ -1,5 +1,5 @@
/* Helpers for utimes/utimens conversions.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <hurd/hurd_types.h>
diff --git a/sysdeps/mach/hurd/utimensat.c b/sysdeps/mach/hurd/utimensat.c
index ac9bc534c8..2ae73ad0f0 100644
--- a/sysdeps/mach/hurd/utimensat.c
+++ b/sysdeps/mach/hurd/utimensat.c
@@ -1,5 +1,5 @@
/* Change access and modification times of open file. Hurd version.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/time.h>
#include <errno.h>
diff --git a/sysdeps/mach/hurd/utimes.c b/sysdeps/mach/hurd/utimes.c
index bdf4d79790..962e536def 100644
--- a/sysdeps/mach/hurd/utimes.c
+++ b/sysdeps/mach/hurd/utimes.c
@@ -1,5 +1,5 @@
/* utimes -- change access and modification times of file. Hurd version.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/time.h>
#include <errno.h>
diff --git a/sysdeps/mach/hurd/wait4.c b/sysdeps/mach/hurd/wait4.c
index a72bcee145..78ad33e8f5 100644
--- a/sysdeps/mach/hurd/wait4.c
+++ b/sysdeps/mach/hurd/wait4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <sys/wait.h>
diff --git a/sysdeps/mach/hurd/write.c b/sysdeps/mach/hurd/write.c
index 3cf748be9d..f7832bd6c8 100644
--- a/sysdeps/mach/hurd/write.c
+++ b/sysdeps/mach/hurd/write.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/mach/hurd/x86/dl-sysdep.c b/sysdeps/mach/hurd/x86/dl-sysdep.c
index abb488cde9..5a39c91cd8 100644
--- a/sysdeps/mach/hurd/x86/dl-sysdep.c
+++ b/sysdeps/mach/hurd/x86/dl-sysdep.c
@@ -1,5 +1,5 @@
/* Operating system support for run-time dynamic linker. X86 version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <config.h>
#include <sysdeps/x86/cpu-tunables.c>
diff --git a/sysdeps/mach/hurd/xmknod.c b/sysdeps/mach/hurd/xmknod.c
index d6b8adce9b..19ee49cb31 100644
--- a/sysdeps/mach/hurd/xmknod.c
+++ b/sysdeps/mach/hurd/xmknod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/sysdeps/mach/hurd/xmknodat.c b/sysdeps/mach/hurd/xmknodat.c
index e4e866c4f4..da470d8ebc 100644
--- a/sysdeps/mach/hurd/xmknodat.c
+++ b/sysdeps/mach/hurd/xmknodat.c
@@ -1,5 +1,5 @@
/* Create a device file relative to an open directory. Hurd version.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/stat.h>
diff --git a/sysdeps/mach/hurd/xstat.c b/sysdeps/mach/hurd/xstat.c
index 46314706f3..cf66a0deb7 100644
--- a/sysdeps/mach/hurd/xstat.c
+++ b/sysdeps/mach/hurd/xstat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/stat.h>
diff --git a/sysdeps/mach/hurd/xstat64.c b/sysdeps/mach/hurd/xstat64.c
index f3a8ddc6e7..58fec10652 100644
--- a/sysdeps/mach/hurd/xstat64.c
+++ b/sysdeps/mach/hurd/xstat64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef RTLD_STAT64 /* dl-xstat64.c, but we don't want it. */
diff --git a/sysdeps/mach/hurd/xstatconv.c b/sysdeps/mach/hurd/xstatconv.c
index 1aa8aff317..af23544093 100644
--- a/sysdeps/mach/hurd/xstatconv.c
+++ b/sysdeps/mach/hurd/xstatconv.c
@@ -1,5 +1,5 @@
/* Convert between `struct stat' format, and `struct stat64' format.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/stat.h>
diff --git a/sysdeps/mach/i386/bits/mach/param.h b/sysdeps/mach/i386/bits/mach/param.h
index 15e842f4d3..126055a433 100644
--- a/sysdeps/mach/i386/bits/mach/param.h
+++ b/sysdeps/mach/i386/bits/mach/param.h
@@ -1,5 +1,5 @@
/* Old-style Unix parameters and limits. i386 Mach version.
- Copyright (C) 1993-2018 Free Software Foundation, Inc.
+ Copyright (C) 1993-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_PARAM_H
# error "Never use <bits/mach/param.h> directly; include <sys/param.h> instead."
diff --git a/sysdeps/mach/i386/machine-lock.h b/sysdeps/mach/i386/machine-lock.h
index 3c12021eb2..dc3a6af0c1 100644
--- a/sysdeps/mach/i386/machine-lock.h
+++ b/sysdeps/mach/i386/machine-lock.h
@@ -1,5 +1,5 @@
/* Machine-specific definition for spin locks. i386 version.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MACHINE_LOCK_H
#define _MACHINE_LOCK_H
diff --git a/sysdeps/mach/i386/machine-sp.h b/sysdeps/mach/i386/machine-sp.h
index 196c6a3802..bd74b884bd 100644
--- a/sysdeps/mach/i386/machine-sp.h
+++ b/sysdeps/mach/i386/machine-sp.h
@@ -1,5 +1,5 @@
/* Machine-specific function to return the stack pointer. i386 version.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MACHINE_SP_H
#define _MACHINE_SP_H
diff --git a/sysdeps/mach/i386/syscall.S b/sysdeps/mach/i386/syscall.S
index 531d4e9693..e20fdc9d1f 100644
--- a/sysdeps/mach/i386/syscall.S
+++ b/sysdeps/mach/i386/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/mach/i386/sysdep.h b/sysdeps/mach/i386/sysdep.h
index 3595ad7330..e6783d57f2 100644
--- a/sysdeps/mach/i386/sysdep.h
+++ b/sysdeps/mach/i386/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MACH_I386_SYSDEP_H
#define _MACH_I386_SYSDEP_H 1
diff --git a/sysdeps/mach/i386/thread_state.h b/sysdeps/mach/i386/thread_state.h
index be3c8a9cee..9e282ab16a 100644
--- a/sysdeps/mach/i386/thread_state.h
+++ b/sysdeps/mach/i386/thread_state.h
@@ -1,5 +1,5 @@
/* Mach thread state definitions for machine-independent code. i386 version.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MACH_I386_THREAD_STATE_H
#define _MACH_I386_THREAD_STATE_H 1
diff --git a/sysdeps/mach/libc-lock.h b/sysdeps/mach/libc-lock.h
index 2c64019b33..756974356b 100644
--- a/sysdeps/mach/libc-lock.h
+++ b/sysdeps/mach/libc-lock.h
@@ -1,5 +1,5 @@
/* libc-internal interface for mutex locks. Mach cthreads version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LIBC_LOCK_H
#define _LIBC_LOCK_H 1
diff --git a/sysdeps/mach/mprotect.c b/sysdeps/mach/mprotect.c
index 2e55f90b78..e10c2635fd 100644
--- a/sysdeps/mach/mprotect.c
+++ b/sysdeps/mach/mprotect.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <sys/mman.h>
diff --git a/sysdeps/mach/msync.c b/sysdeps/mach/msync.c
index 92ce15e639..f67cdb910d 100644
--- a/sysdeps/mach/msync.c
+++ b/sysdeps/mach/msync.c
@@ -1,5 +1,5 @@
/* msync -- Synchronize mapped memory to external storage. Mach version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <sys/mman.h>
diff --git a/sysdeps/mach/munmap.c b/sysdeps/mach/munmap.c
index 2ac9305ff8..6a5fb0f6f1 100644
--- a/sysdeps/mach/munmap.c
+++ b/sysdeps/mach/munmap.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <sys/mman.h>
diff --git a/sysdeps/mach/nanosleep.c b/sysdeps/mach/nanosleep.c
deleted file mode 100644
index e9a584d09c..0000000000
--- a/sysdeps/mach/nanosleep.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/* nanosleep -- sleep for a period specified with a struct timespec
- Copyright (C) 2002-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <mach.h>
-#include <sys/time.h>
-#include <time.h>
-#include <unistd.h>
-
-int
-__libc_nanosleep (const struct timespec *requested_time,
- struct timespec *remaining)
-{
- mach_port_t recv;
- struct timeval before, after;
-
- if (requested_time->tv_sec < 0
- || requested_time->tv_nsec < 0
- || requested_time->tv_nsec >= 1000000000)
- {
- errno = EINVAL;
- return -1;
- }
-
- const mach_msg_timeout_t ms
- = requested_time->tv_sec * 1000
- + (requested_time->tv_nsec + 999999) / 1000000;
-
- recv = __mach_reply_port ();
-
- if (remaining && __gettimeofday (&before, NULL) < 0)
- return -1;
- error_t err = __mach_msg (NULL, MACH_RCV_MSG|MACH_RCV_TIMEOUT|MACH_RCV_INTERRUPT,
- 0, 0, recv, ms, MACH_PORT_NULL);
- __mach_port_destroy (mach_task_self (), recv);
- if (err == EMACH_RCV_INTERRUPTED)
- {
- if (remaining && __gettimeofday (&after, NULL) >= 0)
- {
- struct timeval req_time, elapsed, rem;
- TIMESPEC_TO_TIMEVAL (&req_time, requested_time);
- timersub (&after, &before, &elapsed);
- timersub (&req_time, &elapsed, &rem);
- TIMEVAL_TO_TIMESPEC (&rem, remaining);
- }
-
- errno = EINTR;
- return -1;
- }
-
- return 0;
-}
-weak_alias(__libc_nanosleep, __nanosleep)
-libc_hidden_def (__nanosleep)
-weak_alias (__libc_nanosleep, nanosleep)
diff --git a/sysdeps/mach/pagecopy.h b/sysdeps/mach/pagecopy.h
index 8583df4569..6a8c3e0d9b 100644
--- a/sysdeps/mach/pagecopy.h
+++ b/sysdeps/mach/pagecopy.h
@@ -1,5 +1,5 @@
/* Macros for copying by pages; used in memcpy, memmove. Mach version.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <mach.h>
@@ -24,9 +24,9 @@
#define PAGE_SIZE __vm_page_size
#define PAGE_COPY_FWD(dstp, srcp, nbytes_left, nbytes) \
- ((nbytes_left) = ((nbytes) - \
- (__vm_copy (__mach_task_self (), \
- (vm_address_t) srcp, trunc_page (nbytes), \
- (vm_address_t) dstp) == KERN_SUCCESS \
- ? trunc_page (nbytes) \
- : 0)))
+ ((nbytes_left) = ((nbytes) \
+ - (__vm_copy (__mach_task_self (), \
+ (vm_address_t) srcp, trunc_page (nbytes), \
+ (vm_address_t) dstp) == KERN_SUCCESS \
+ ? trunc_page (nbytes) \
+ : 0)))
diff --git a/sysdeps/mach/readonly-area.c b/sysdeps/mach/readonly-area.c
index e236b5ec37..165c139207 100644
--- a/sysdeps/mach/readonly-area.c
+++ b/sysdeps/mach/readonly-area.c
@@ -1,5 +1,5 @@
/* Test if a memory region is wholly unwritable. Mach version.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include <stdint.h>
diff --git a/sysdeps/mach/sched_yield.c b/sysdeps/mach/sched_yield.c
index 654ab6c3a6..7c05977a09 100644
--- a/sysdeps/mach/sched_yield.c
+++ b/sysdeps/mach/sched_yield.c
@@ -1,5 +1,5 @@
/* sched_yield -- yield the processor. Mach version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sched.h>
diff --git a/sysdeps/mach/sleep.c b/sysdeps/mach/sleep.c
index 1cc6af4a07..267928e1e4 100644
--- a/sysdeps/mach/sleep.c
+++ b/sysdeps/mach/sleep.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <signal.h>
#include <time.h>
@@ -33,10 +33,10 @@ __sleep (unsigned int seconds)
recv = __mach_reply_port ();
- before = time ((time_t *) NULL);
+ before = time_now ();
(void) __mach_msg (NULL, MACH_RCV_MSG|MACH_RCV_TIMEOUT|MACH_RCV_INTERRUPT,
0, 0, recv, seconds * 1000, MACH_PORT_NULL);
- after = time ((time_t *) NULL);
+ after = time_now ();
__mach_port_destroy (__mach_task_self (), recv);
return seconds - (after - before);
diff --git a/sysdeps/mach/strerror_l.c b/sysdeps/mach/strerror_l.c
index 7111124439..bd4f9c9da4 100644
--- a/sysdeps/mach/strerror_l.c
+++ b/sysdeps/mach/strerror_l.c
@@ -1,5 +1,5 @@
/* strerror_l - Get errno description string in given locale. Mach version.
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libintl.h>
#include <locale.h>
diff --git a/sysdeps/mach/sysdep.h b/sysdeps/mach/sysdep.h
index 04bbf93c23..7bc49259f6 100644
--- a/sysdeps/mach/sysdep.h
+++ b/sysdeps/mach/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifdef __ASSEMBLER__
diff --git a/sysdeps/mach/thread_state.h b/sysdeps/mach/thread_state.h
index 2e3a10cbcb..ecd707d9c2 100644
--- a/sysdeps/mach/thread_state.h
+++ b/sysdeps/mach/thread_state.h
@@ -1,5 +1,5 @@
/* Generic definitions for dealing with Mach thread states.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Everything else is called `thread_state', but CMU's header file is
@@ -82,8 +82,8 @@ machine_get_basic_state (thread_t thread,
count = MACHINE_THREAD_STATE_COUNT;
if (__thread_get_state (thread, MACHINE_THREAD_STATE_FLAVOR,
(natural_t *) &state->basic,
- &count) != KERN_SUCCESS ||
- count != MACHINE_THREAD_STATE_COUNT)
+ &count) != KERN_SUCCESS
+ || count != MACHINE_THREAD_STATE_COUNT)
/* What kind of thread?? */
return 0; /* XXX */
diff --git a/sysdeps/mach/usleep.c b/sysdeps/mach/usleep.c
index 693d11d81a..578540d065 100644
--- a/sysdeps/mach/usleep.c
+++ b/sysdeps/mach/usleep.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <mach.h>
@@ -25,17 +25,12 @@ int
usleep (useconds_t useconds)
{
mach_port_t recv;
- struct timeval before, after;
recv = __mach_reply_port ();
- if (__gettimeofday (&before, NULL) < 0)
- return -1;
(void) __mach_msg (NULL, MACH_RCV_MSG|MACH_RCV_TIMEOUT|MACH_RCV_INTERRUPT,
0, 0, recv, (useconds + 999) / 1000, MACH_PORT_NULL);
__mach_port_destroy (mach_task_self (), recv);
- if (__gettimeofday (&after, NULL) < 0)
- return -1;
return 0;
}
diff --git a/sysdeps/mach/xpg-strerror.c b/sysdeps/mach/xpg-strerror.c
index c38ec3d753..18012b7870 100644
--- a/sysdeps/mach/xpg-strerror.c
+++ b/sysdeps/mach/xpg-strerror.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <libintl.h>
diff --git a/sysdeps/microblaze/__longjmp.S b/sysdeps/microblaze/__longjmp.S
index b93639bca0..b9fc52bb8a 100644
--- a/sysdeps/microblaze/__longjmp.S
+++ b/sysdeps/microblaze/__longjmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/microblaze/_mcount.S b/sysdeps/microblaze/_mcount.S
index 2fcf3c0d09..08bcc6821b 100644
--- a/sysdeps/microblaze/_mcount.S
+++ b/sysdeps/microblaze/_mcount.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
.global _mcount
.type _mcount, @function
diff --git a/sysdeps/microblaze/asm-syntax.h b/sysdeps/microblaze/asm-syntax.h
index 5fd720a831..b1534ca93b 100644
--- a/sysdeps/microblaze/asm-syntax.h
+++ b/sysdeps/microblaze/asm-syntax.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#undef ALIGN
#define ALIGN(log) .align 1<<log
diff --git a/sysdeps/microblaze/atomic-machine.h b/sysdeps/microblaze/atomic-machine.h
index 5ff5d16d75..45b99bf55e 100644
--- a/sysdeps/microblaze/atomic-machine.h
+++ b/sysdeps/microblaze/atomic-machine.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
#include <sysdep.h>
diff --git a/sysdeps/microblaze/backtrace.c b/sysdeps/microblaze/backtrace.c
index 3ba44679f4..fc937517bf 100644
--- a/sysdeps/microblaze/backtrace.c
+++ b/sysdeps/microblaze/backtrace.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <string.h>
diff --git a/sysdeps/microblaze/backtrace_linux.c b/sysdeps/microblaze/backtrace_linux.c
index a566c03be5..d4035bda43 100644
--- a/sysdeps/microblaze/backtrace_linux.c
+++ b/sysdeps/microblaze/backtrace_linux.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <asm/sigcontext.h>
diff --git a/sysdeps/microblaze/be/Implies b/sysdeps/microblaze/be/Implies
new file mode 100644
index 0000000000..1f8dcd0e17
--- /dev/null
+++ b/sysdeps/microblaze/be/Implies
@@ -0,0 +1 @@
+microblaze
diff --git a/sysdeps/microblaze/bits/endian.h b/sysdeps/microblaze/bits/endian.h
deleted file mode 100644
index 90641ddce6..0000000000
--- a/sysdeps/microblaze/bits/endian.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright (C) 1997-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _ENDIAN_H
-# error "Never use <bits/endian.h> directly; include <endian.h> instead."
-#endif
-
-/* MicroBlaze can be either big or little endian. */
-#ifdef _BIG_ENDIAN
-# define __BYTE_ORDER __BIG_ENDIAN
-# define __FLOAT_WORD_ORDER __BIG_ENDIAN
-#else
-# define __BYTE_ORDER __LITTLE_ENDIAN
-# define __FLOAT_WORD_ORDER __LITTLE_ENDIAN
-#endif
diff --git a/sysdeps/microblaze/bits/endianness.h b/sysdeps/microblaze/bits/endianness.h
new file mode 100644
index 0000000000..c4bb7e5f2e
--- /dev/null
+++ b/sysdeps/microblaze/bits/endianness.h
@@ -0,0 +1,15 @@
+#ifndef _BITS_ENDIANNESS_H
+#define _BITS_ENDIANNESS_H 1
+
+#ifndef _BITS_ENDIAN_H
+# error "Never use <bits/endianness.h> directly; include <endian.h> instead."
+#endif
+
+/* MicroBlaze has selectable endianness. */
+#ifdef _BIG_ENDIAN
+# define __BYTE_ORDER __BIG_ENDIAN
+#else
+# define __BYTE_ORDER __LITTLE_ENDIAN
+#endif
+
+#endif /* bits/endianness.h */
diff --git a/sysdeps/microblaze/bits/fenv.h b/sysdeps/microblaze/bits/fenv.h
index 9a8d87dae6..10ad106d3d 100644
--- a/sysdeps/microblaze/bits/fenv.h
+++ b/sysdeps/microblaze/bits/fenv.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* 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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FENV_H
# error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
@@ -41,7 +41,7 @@ typedef unsigned int 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/sysdeps/microblaze/bits/link.h b/sysdeps/microblaze/bits/link.h
index de401731f9..aaa79f1658 100644
--- a/sysdeps/microblaze/bits/link.h
+++ b/sysdeps/microblaze/bits/link.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LINK_H
# error "Never include <bits/link.h> directly; use <link.h> instead."
diff --git a/sysdeps/microblaze/bits/setjmp.h b/sysdeps/microblaze/bits/setjmp.h
index fda93eeae2..eacbdfcc51 100644
--- a/sysdeps/microblaze/bits/setjmp.h
+++ b/sysdeps/microblaze/bits/setjmp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define the machine-dependent type `jmp_buf'. */
diff --git a/sysdeps/microblaze/bsd-_setjmp.S b/sysdeps/microblaze/bsd-_setjmp.S
index 7129be02cd..bb07d16723 100644
--- a/sysdeps/microblaze/bsd-_setjmp.S
+++ b/sysdeps/microblaze/bsd-_setjmp.S
@@ -1,5 +1,5 @@
/* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define setjmp_name _setjmp
#define SAVEMASK 0
diff --git a/sysdeps/microblaze/bsd-setjmp.S b/sysdeps/microblaze/bsd-setjmp.S
index 388689dc3b..a788698d39 100644
--- a/sysdeps/microblaze/bsd-setjmp.S
+++ b/sysdeps/microblaze/bsd-setjmp.S
@@ -1,5 +1,5 @@
/* BSD `setjmp' entry point to `sigsetjmp (..., 1)'.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define setjmp_name setjmp
#define SAVEMASK 1
diff --git a/sysdeps/microblaze/crti.S b/sysdeps/microblaze/crti.S
index 09c8cd7ccd..bdce9d8e77 100644
--- a/sysdeps/microblaze/crti.S
+++ b/sysdeps/microblaze/crti.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for MicroBlaze.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* crti.S puts a function prologue at the beginning of the .init and
.fini sections and defines global symbols for those addresses, so
diff --git a/sysdeps/microblaze/crtn.S b/sysdeps/microblaze/crtn.S
index 61ec067244..5f8d94c316 100644
--- a/sysdeps/microblaze/crtn.S
+++ b/sysdeps/microblaze/crtn.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for MicroBlaze.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* crtn.S puts function epilogues in the .init and .fini sections
corresponding to the prologues in crti.S. */
diff --git a/sysdeps/microblaze/dl-machine.h b/sysdeps/microblaze/dl-machine.h
index 8480a7a34e..ea149ee445 100644
--- a/sysdeps/microblaze/dl-machine.h
+++ b/sysdeps/microblaze/dl-machine.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef dl_machine_h
#define dl_machine_h
@@ -153,10 +153,10 @@ _dl_start_user:\n\
of the main executable's symbols, as for a COPY reloc. */
#ifndef RTLD_BOOTSTRAP
# define elf_machine_type_class(type) \
- (((type) == R_MICROBLAZE_JUMP_SLOT || \
- (type) == R_MICROBLAZE_TLSDTPREL32 || \
- (type) == R_MICROBLAZE_TLSDTPMOD32 || \
- (type) == R_MICROBLAZE_TLSTPREL32) \
+ (((type) == R_MICROBLAZE_JUMP_SLOT \
+ || (type) == R_MICROBLAZE_TLSDTPREL32 \
+ || (type) == R_MICROBLAZE_TLSDTPMOD32 \
+ || (type) == R_MICROBLAZE_TLSTPREL32) \
* ELF_RTYPE_CLASS_PLT \
| ((type) == R_MICROBLAZE_COPY) * ELF_RTYPE_CLASS_COPY)
#else
@@ -226,9 +226,9 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
Elf32_Addr value = SYMBOL_ADDRESS (sym_map, sym, true);
value += reloc->r_addend;
- if (r_type == R_MICROBLAZE_GLOB_DAT ||
- r_type == R_MICROBLAZE_JUMP_SLOT ||
- r_type == R_MICROBLAZE_32)
+ if (r_type == R_MICROBLAZE_GLOB_DAT
+ || r_type == R_MICROBLAZE_JUMP_SLOT
+ || r_type == R_MICROBLAZE_32)
{
*reloc_addr = value;
}
diff --git a/sysdeps/microblaze/dl-tls.h b/sysdeps/microblaze/dl-tls.h
index 66ba0dd7ab..316970c192 100644
--- a/sysdeps/microblaze/dl-tls.h
+++ b/sysdeps/microblaze/dl-tls.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Type used for the representation of TLS information in the GOT. */
typedef struct
diff --git a/sysdeps/microblaze/dl-trampoline.S b/sysdeps/microblaze/dl-trampoline.S
index 8ddd968ff8..4ad6f544dd 100644
--- a/sysdeps/microblaze/dl-trampoline.S
+++ b/sysdeps/microblaze/dl-trampoline.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <libc-symbols.h>
diff --git a/sysdeps/microblaze/gccframe.h b/sysdeps/microblaze/gccframe.h
index 2bccbf41aa..2541a99374 100644
--- a/sysdeps/microblaze/gccframe.h
+++ b/sysdeps/microblaze/gccframe.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define FIRST_PSEUDO_REGISTER 78
diff --git a/sysdeps/microblaze/jmpbuf-unwind.h b/sysdeps/microblaze/jmpbuf-unwind.h
index 27b519677d..f404c42a31 100644
--- a/sysdeps/microblaze/jmpbuf-unwind.h
+++ b/sysdeps/microblaze/jmpbuf-unwind.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <setjmp.h>
#include <stdint.h>
diff --git a/sysdeps/microblaze/ldsodefs.h b/sysdeps/microblaze/ldsodefs.h
index 73ac775e92..33f6785826 100644
--- a/sysdeps/microblaze/ldsodefs.h
+++ b/sysdeps/microblaze/ldsodefs.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MICROBLAZE_LDSODEFS_H
#define _MICROBLAZE_LDSODEFS_H 1
diff --git a/sysdeps/microblaze/le/Implies b/sysdeps/microblaze/le/Implies
new file mode 100644
index 0000000000..1f8dcd0e17
--- /dev/null
+++ b/sysdeps/microblaze/le/Implies
@@ -0,0 +1 @@
+microblaze
diff --git a/sysdeps/microblaze/libc-tls.c b/sysdeps/microblaze/libc-tls.c
index 9971d105ba..91e79c232f 100644
--- a/sysdeps/microblaze/libc-tls.c
+++ b/sysdeps/microblaze/libc-tls.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <csu/libc-tls.c>
#include <dl-tls.h>
diff --git a/sysdeps/microblaze/machine-gmon.h b/sysdeps/microblaze/machine-gmon.h
index 70acd61bab..09da7187be 100644
--- a/sysdeps/microblaze/machine-gmon.h
+++ b/sysdeps/microblaze/machine-gmon.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* We need a special version of the `mcount' function because it has
to preserve more registers than your usual function. */
diff --git a/sysdeps/microblaze/memusage.h b/sysdeps/microblaze/memusage.h
index de17609cba..430cf99d76 100644
--- a/sysdeps/microblaze/memusage.h
+++ b/sysdeps/microblaze/memusage.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define GETSP() ({ register uintptr_t stack_ptr asm ("r1"); stack_ptr; })
diff --git a/sysdeps/microblaze/nptl/Makefile b/sysdeps/microblaze/nptl/Makefile
index bebbdef871..8e26dc445b 100644
--- a/sysdeps/microblaze/nptl/Makefile
+++ b/sysdeps/microblaze/nptl/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 2005-2018 Free Software Foundation, Inc.
+# Copyright (C) 2005-2019 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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
ifeq ($(subdir),csu)
gen-as-const-headers += tcb-offsets.sym
diff --git a/sysdeps/microblaze/nptl/bits/pthreadtypes-arch.h b/sysdeps/microblaze/nptl/bits/pthreadtypes-arch.h
deleted file mode 100644
index 846d5d0a57..0000000000
--- a/sysdeps/microblaze/nptl/bits/pthreadtypes-arch.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/* Copyright (C) 2002-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _BITS_PTHREADTYPES_ARCH_H
-# define _BITS_PTHREADTYPES_ARCH_H 1
-
-# include <endian.h>
-
-# define __SIZEOF_PTHREAD_ATTR_T 36
-# define __SIZEOF_PTHREAD_MUTEX_T 24
-# define __SIZEOF_PTHREAD_MUTEXATTR_T 4
-# define __SIZEOF_PTHREAD_COND_T 48
-# define __SIZEOF_PTHREAD_CONDATTR_T 4
-# define __SIZEOF_PTHREAD_RWLOCK_T 32
-# define __SIZEOF_PTHREAD_RWLOCKATTR_T 8
-# define __SIZEOF_PTHREAD_BARRIER_T 20
-# define __SIZEOF_PTHREAD_BARRIERATTR_T 4
-
-/* Definitions for internal mutex struct. */
-#define __PTHREAD_COMPAT_PADDING_MID
-#define __PTHREAD_COMPAT_PADDING_END
-#define __PTHREAD_MUTEX_LOCK_ELISION 0
-#define __PTHREAD_MUTEX_NUSERS_AFTER_KIND 1
-#define __PTHREAD_MUTEX_USE_UNION 1
-
-#define __LOCK_ALIGNMENT
-#define __ONCE_ALIGNMENT
-
-struct __pthread_rwlock_arch_t
-{
- unsigned int __readers;
- unsigned int __writers;
- unsigned int __wrphase_futex;
- unsigned int __writers_futex;
- unsigned int __pad3;
- unsigned int __pad4;
-# if __BYTE_ORDER == __BIG_ENDIAN
- unsigned char __pad1;
- unsigned char __pad2;
- unsigned char __shared;
- /* FLAGS must stay at this position in the structure to maintain
- binary compatibility. */
- unsigned char __flags;
-# else
- /* FLAGS must stay at this position in the structure to maintain
- binary compatibility. */
- unsigned char __flags;
- unsigned char __shared;
- unsigned char __pad1;
- unsigned char __pad2;
-# endif
- int __cur_writer;
-};
-
-# define __PTHREAD_RWLOCK_ELISION_EXTRA 0
-
-#endif /* bits/pthreadtypes.h. */
diff --git a/sysdeps/microblaze/nptl/bits/semaphore.h b/sysdeps/microblaze/nptl/bits/semaphore.h
index d08e71e56b..9988a717a0 100644
--- a/sysdeps/microblaze/nptl/bits/semaphore.h
+++ b/sysdeps/microblaze/nptl/bits/semaphore.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SEMAPHORE_H
# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
diff --git a/sysdeps/microblaze/nptl/pthread-offsets.h b/sysdeps/microblaze/nptl/pthread-offsets.h
deleted file mode 100644
index 9617354dc7..0000000000
--- a/sysdeps/microblaze/nptl/pthread-offsets.h
+++ /dev/null
@@ -1,5 +0,0 @@
-#define __PTHREAD_MUTEX_NUSERS_OFFSET 16
-#define __PTHREAD_MUTEX_KIND_OFFSET 12
-#define __PTHREAD_MUTEX_SPINS_OFFSET 20
-#define __PTHREAD_MUTEX_ELISION_OFFSET 22
-#define __PTHREAD_MUTEX_LIST_OFFSET 20
diff --git a/sysdeps/microblaze/nptl/pthreaddef.h b/sysdeps/microblaze/nptl/pthreaddef.h
index 12fac81398..34d32c7efe 100644
--- a/sysdeps/microblaze/nptl/pthreaddef.h
+++ b/sysdeps/microblaze/nptl/pthreaddef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include <string.h>
diff --git a/sysdeps/microblaze/nptl/tls.h b/sysdeps/microblaze/nptl/tls.h
index 8b489740f2..9d6ae4de0d 100644
--- a/sysdeps/microblaze/nptl/tls.h
+++ b/sysdeps/microblaze/nptl/tls.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _TLS_H
# define _TLS_H 1
diff --git a/sysdeps/microblaze/preconfigure b/sysdeps/microblaze/preconfigure
index 90e2e631d9..9c74afcebe 100644
--- a/sysdeps/microblaze/preconfigure
+++ b/sysdeps/microblaze/preconfigure
@@ -1,3 +1,154 @@
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
+ # Local preconfigure fragment for sysdeps/microblaze
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if ${ac_cv_path_GREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$GREP"; then
+ ac_path_GREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in grep ggrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_GREP" || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+ # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'GREP' >> "conftest.nl"
+ "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_GREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_GREP="$ac_path_GREP"
+ ac_path_GREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_GREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_GREP"; then
+ as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if ${ac_cv_path_EGREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+ then ac_cv_path_EGREP="$GREP -E"
+ else
+ if test -z "$EGREP"; then
+ ac_path_EGREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in egrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_EGREP" || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+ # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'EGREP' >> "conftest.nl"
+ "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_EGREP="$ac_path_EGREP"
+ ac_path_EGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_EGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_EGREP"; then
+ as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_EGREP=$EGREP
+fi
+
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
+ yes
+ #endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "yes" >/dev/null 2>&1; then :
+ endianness=le
+else
+ endianness=be
+fi
+rm -f conftest*
+
+
case "$machine" in
-microblaze*) base_machine=microblaze machine=microblaze ;;
+microblaze*) base_machine=microblaze machine=microblaze/$endianness ;;
esac
diff --git a/sysdeps/microblaze/preconfigure.ac b/sysdeps/microblaze/preconfigure.ac
new file mode 100644
index 0000000000..3d05d6fb7d
--- /dev/null
+++ b/sysdeps/microblaze/preconfigure.ac
@@ -0,0 +1,11 @@
+GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
+# Local preconfigure fragment for sysdeps/microblaze
+
+AC_EGREP_CPP(yes,[#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
+ yes
+ #endif
+ ], endianness=le, endianness=be)
+
+case "$machine" in
+microblaze*) base_machine=microblaze machine=microblaze/$endianness ;;
+esac
diff --git a/sysdeps/microblaze/setjmp.S b/sysdeps/microblaze/setjmp.S
index dda1f26e1b..861fd9c16a 100644
--- a/sysdeps/microblaze/setjmp.S
+++ b/sysdeps/microblaze/setjmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/microblaze/sotruss-lib.c b/sysdeps/microblaze/sotruss-lib.c
index a5f1f8decc..5fe76f611b 100644
--- a/sysdeps/microblaze/sotruss-lib.c
+++ b/sysdeps/microblaze/sotruss-lib.c
@@ -1,5 +1,5 @@
/* Override generic sotruss-lib.c to define actual functions for MicroBlaze.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define HAVE_ARCH_PLTENTER
#define HAVE_ARCH_PLTEXIT
diff --git a/sysdeps/microblaze/stackinfo.h b/sysdeps/microblaze/stackinfo.h
index cfa339bdee..1e97d6783f 100644
--- a/sysdeps/microblaze/stackinfo.h
+++ b/sysdeps/microblaze/stackinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file contains a bit of information about the stack allocation
of the processor. */
diff --git a/sysdeps/microblaze/start.S b/sysdeps/microblaze/start.S
index cc8dd13fe4..3b6c4de20b 100644
--- a/sysdeps/microblaze/start.S
+++ b/sysdeps/microblaze/start.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
.text
.globl _start
diff --git a/sysdeps/microblaze/sysdep.h b/sysdeps/microblaze/sysdep.h
index 86cd827a09..3a06824b46 100644
--- a/sysdeps/microblaze/sysdep.h
+++ b/sysdeps/microblaze/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/generic/sysdep.h>
diff --git a/sysdeps/microblaze/tls-macros.h b/sysdeps/microblaze/tls-macros.h
index 23d2f617f3..6f2e448c9b 100644
--- a/sysdeps/microblaze/tls-macros.h
+++ b/sysdeps/microblaze/tls-macros.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define TLS_LD(x) \
({ \
diff --git a/sysdeps/microblaze/tst-audit.h b/sysdeps/microblaze/tst-audit.h
index 11e73e0e10..e100c244f9 100644
--- a/sysdeps/microblaze/tst-audit.h
+++ b/sysdeps/microblaze/tst-audit.h
@@ -1,6 +1,6 @@
/* Definitions for testing PLT entry/exit auditing. MicroBlaze version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define pltenter la_microblaze_gnu_pltenter
#define pltexit la_microblaze_gnu_pltexit
diff --git a/sysdeps/mips/Makefile b/sysdeps/mips/Makefile
index 7ac6fa5031..6ad69e9ef9 100644
--- a/sysdeps/mips/Makefile
+++ b/sysdeps/mips/Makefile
@@ -82,3 +82,10 @@ $(objpfx)tst-mode-switch-2: $(shared-thread-library)
endif
endif
endif
+
+ifeq ($(subdir),elf)
+tests += tst-undefined-weak
+modules-names += tst-undefined-weak-lib
+
+$(objpfx)tst-undefined-weak: $(objpfx)tst-undefined-weak-lib.so
+endif
diff --git a/sysdeps/mips/__longjmp.c b/sysdeps/mips/__longjmp.c
index 56bb73f1bc..eb7e0d88ad 100644
--- a/sysdeps/mips/__longjmp.c
+++ b/sysdeps/mips/__longjmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Brendan Kehoe (brendan@zen.org).
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <setjmp.h>
#include <stdlib.h>
@@ -81,4 +81,9 @@ ____longjmp (__jmp_buf env_arg, int val_arg)
for (;;);
}
-strong_alias (____longjmp, __longjmp);
+/* Not using strong_alias because the nomips16 attribute cannot be
+ copied from ____longjmp to __longjmp, because of the
+ architecture-independent declaration of __longjmp without the
+ attribute and compiler errors for such attributes not being the
+ same on all declarations. */
+extern __typeof (____longjmp) __longjmp __attribute__ ((alias ("____longjmp")));
diff --git a/sysdeps/mips/add_n.S b/sysdeps/mips/add_n.S
index b0a8fd13b9..aa20c70cad 100644
--- a/sysdeps/mips/add_n.S
+++ b/sysdeps/mips/add_n.S
@@ -1,7 +1,7 @@
/* MIPS2 __mpn_add_n -- Add two limb vectors of the same length > 0 and
store sum in a third limb vector.
-Copyright (C) 1995-2018 Free Software Foundation, Inc.
+Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -17,7 +17,7 @@ License for more details.
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library. If not, see
-<http://www.gnu.org/licenses/>. */
+<https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/mips/addmul_1.S b/sysdeps/mips/addmul_1.S
index 0b182084d7..5636e0df40 100644
--- a/sysdeps/mips/addmul_1.S
+++ b/sysdeps/mips/addmul_1.S
@@ -1,7 +1,7 @@
/* MIPS __mpn_addmul_1 -- Multiply a limb vector with a single limb and
add the product to a second limb vector.
-Copyright (C) 1995-2018 Free Software Foundation, Inc.
+Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -17,7 +17,7 @@ License for more details.
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library. If not, see
-<http://www.gnu.org/licenses/>. */
+<https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/mips/atomic-machine.h b/sysdeps/mips/atomic-machine.h
index 5acf9487c1..c3e917385e 100644
--- a/sysdeps/mips/atomic-machine.h
+++ b/sysdeps/mips/atomic-machine.h
@@ -1,5 +1,5 @@
/* Low-level functions for atomic operations. Mips version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MIPS_ATOMIC_MACHINE_H
#define _MIPS_ATOMIC_MACHINE_H 1
diff --git a/sysdeps/mips/bits/dlfcn.h b/sysdeps/mips/bits/dlfcn.h
index 471ab4fdda..07aeefb693 100644
--- a/sysdeps/mips/bits/dlfcn.h
+++ b/sysdeps/mips/bits/dlfcn.h
@@ -1,5 +1,5 @@
/* System dependent definitions for run-time dynamic loading.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DLFCN_H
# error "Never use <bits/dlfcn.h> directly; include <dlfcn.h> instead."
diff --git a/sysdeps/mips/bits/endian.h b/sysdeps/mips/bits/endian.h
deleted file mode 100644
index 126059799d..0000000000
--- a/sysdeps/mips/bits/endian.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/* The MIPS architecture has selectable endianness.
- It exists in both little and big endian flavours and we
- want to be able to share the installed header files between
- both, so we define __BYTE_ORDER based on GCC's predefines. */
-
-#ifndef _ENDIAN_H
-# error "Never use <bits/endian.h> directly; include <endian.h> instead."
-#endif
-
-#ifdef __MIPSEB
-# define __BYTE_ORDER __BIG_ENDIAN
-#endif
-#ifdef __MIPSEL
-# define __BYTE_ORDER __LITTLE_ENDIAN
-#endif
diff --git a/sysdeps/mips/bits/endianness.h b/sysdeps/mips/bits/endianness.h
new file mode 100644
index 0000000000..09e138b89b
--- /dev/null
+++ b/sysdeps/mips/bits/endianness.h
@@ -0,0 +1,16 @@
+#ifndef _BITS_ENDIANNESS_H
+#define _BITS_ENDIANNESS_H 1
+
+#ifndef _BITS_ENDIAN_H
+# error "Never use <bits/endianness.h> directly; include <endian.h> instead."
+#endif
+
+/* MIPS has selectable endianness. */
+#ifdef __MIPSEB
+# define __BYTE_ORDER __BIG_ENDIAN
+#endif
+#ifdef __MIPSEL
+# define __BYTE_ORDER __LITTLE_ENDIAN
+#endif
+
+#endif /* bits/endianness.h */
diff --git a/sysdeps/mips/bits/fenv.h b/sysdeps/mips/bits/fenv.h
index 37d0a9e64d..d13d6b3328 100644
--- a/sysdeps/mips/bits/fenv.h
+++ b/sysdeps/mips/bits/fenv.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -13,35 +13,37 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FENV_H
# error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
#endif
+#ifdef __mips_hard_float
+
/* Define bits representing the exception. We use the bit positions
of the appropriate bits in the FPU control word. */
enum
{
FE_INEXACT =
-#define FE_INEXACT 0x04
+# define FE_INEXACT 0x04
FE_INEXACT,
FE_UNDERFLOW =
-#define FE_UNDERFLOW 0x08
+# define FE_UNDERFLOW 0x08
FE_UNDERFLOW,
FE_OVERFLOW =
-#define FE_OVERFLOW 0x10
+# define FE_OVERFLOW 0x10
FE_OVERFLOW,
FE_DIVBYZERO =
-#define FE_DIVBYZERO 0x20
+# define FE_DIVBYZERO 0x20
FE_DIVBYZERO,
FE_INVALID =
-#define FE_INVALID 0x40
+# define FE_INVALID 0x40
FE_INVALID,
};
-#define FE_ALL_EXCEPT \
+# define FE_ALL_EXCEPT \
(FE_INEXACT | FE_DIVBYZERO | FE_UNDERFLOW | FE_OVERFLOW | FE_INVALID)
/* The MIPS FPU supports all of the four defined rounding modes. We
@@ -50,19 +52,37 @@ enum
enum
{
FE_TONEAREST =
-#define FE_TONEAREST 0x0
+# define FE_TONEAREST 0x0
FE_TONEAREST,
FE_TOWARDZERO =
-#define FE_TOWARDZERO 0x1
+# define FE_TOWARDZERO 0x1
FE_TOWARDZERO,
FE_UPWARD =
-#define FE_UPWARD 0x2
+# define FE_UPWARD 0x2
FE_UPWARD,
FE_DOWNWARD =
-#define FE_DOWNWARD 0x3
+# define FE_DOWNWARD 0x3
FE_DOWNWARD
};
+#else
+
+/* In the soft-float case, only rounding to nearest is supported, with
+ no exceptions. */
+
+enum
+ {
+ __FE_UNDEFINED = -1,
+
+ FE_TONEAREST =
+# define FE_TONEAREST 0x0
+ FE_TONEAREST
+ };
+
+# define FE_ALL_EXCEPT 0
+
+#endif
+
/* Type representing exception flags. */
typedef unsigned short int fexcept_t;
@@ -79,12 +99,12 @@ fenv_t;
/* If the default argument is used we use this value. */
#define FE_DFL_ENV ((const fenv_t *) -1)
-#ifdef __USE_GNU
+#if defined __USE_GNU && defined __mips_hard_float
/* Floating-point environment where none of the exception is masked. */
# define FE_NOMASK_ENV ((const fenv_t *) -2)
#endif
-#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/sysdeps/mips/bits/ipctypes.h b/sysdeps/mips/bits/ipctypes.h
index 57b4aa5997..6a36e0e230 100644
--- a/sysdeps/mips/bits/ipctypes.h
+++ b/sysdeps/mips/bits/ipctypes.h
@@ -1,5 +1,5 @@
/* bits/ipctypes.h -- Define some types used by SysV IPC/MSG/SHM. MIPS version
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* Never include <bits/ipctypes.h> directly.
diff --git a/sysdeps/mips/bits/link.h b/sysdeps/mips/bits/link.h
index 207171c512..ed907e9ff6 100644
--- a/sysdeps/mips/bits/link.h
+++ b/sysdeps/mips/bits/link.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LINK_H
# error "Never include <bits/link.h> directly; use <link.h> instead."
diff --git a/sysdeps/mips/bits/setjmp.h b/sysdeps/mips/bits/setjmp.h
index e859101b00..97cedff990 100644
--- a/sysdeps/mips/bits/setjmp.h
+++ b/sysdeps/mips/bits/setjmp.h
@@ -1,5 +1,5 @@
/* Define the machine-dependent type `jmp_buf'. MIPS version.
- Copyright (C) 1992-2018 Free Software Foundation, Inc.
+ Copyright (C) 1992-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MIPS_BITS_SETJMP_H
#define _MIPS_BITS_SETJMP_H 1
diff --git a/sysdeps/mips/bits/wordsize.h b/sysdeps/mips/bits/wordsize.h
index 4dcc655eb9..8e81cab8bf 100644
--- a/sysdeps/mips/bits/wordsize.h
+++ b/sysdeps/mips/bits/wordsize.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sgidefs.h>
diff --git a/sysdeps/mips/bsd-_setjmp.S b/sysdeps/mips/bsd-_setjmp.S
index 8e041d0893..bf618d557c 100644
--- a/sysdeps/mips/bsd-_setjmp.S
+++ b/sysdeps/mips/bsd-_setjmp.S
@@ -1,5 +1,5 @@
/* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'. MIPS version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This just does a tail-call to `__sigsetjmp (ARG, 0)'.
We cannot do it in C because it must be a tail-call, so frame-unwinding
diff --git a/sysdeps/mips/bsd-setjmp.S b/sysdeps/mips/bsd-setjmp.S
index 6ea08661f2..477d93d9bc 100644
--- a/sysdeps/mips/bsd-setjmp.S
+++ b/sysdeps/mips/bsd-setjmp.S
@@ -1,5 +1,5 @@
/* BSD `setjmp' entry point to `sigsetjmp (..., 1)'. MIPS version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This just does a tail-call to `__sigsetjmp (ARG, 1)'.
We cannot do it in C because it must be a tail-call, so frame-unwinding
diff --git a/sysdeps/mips/dl-dtprocnum.h b/sysdeps/mips/dl-dtprocnum.h
index 14aaebec8e..4f3cbf4883 100644
--- a/sysdeps/mips/dl-dtprocnum.h
+++ b/sysdeps/mips/dl-dtprocnum.h
@@ -1,5 +1,5 @@
/* Configuration of lookup functions. MIPS version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Number of extra dynamic section entries for this architecture. By
default there are none. */
diff --git a/sysdeps/mips/dl-machine-reject-phdr.h b/sysdeps/mips/dl-machine-reject-phdr.h
index afa3d41b0a..91baa79dd9 100644
--- a/sysdeps/mips/dl-machine-reject-phdr.h
+++ b/sysdeps/mips/dl-machine-reject-phdr.h
@@ -1,5 +1,5 @@
/* Machine-dependent program header inspection for the ELF loader.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DL_MACHINE_REJECT_PHDR_H
#define _DL_MACHINE_REJECT_PHDR_H 1
diff --git a/sysdeps/mips/dl-machine.h b/sysdeps/mips/dl-machine.h
index 91fc640388..c036c7a905 100644
--- a/sysdeps/mips/dl-machine.h
+++ b/sysdeps/mips/dl-machine.h
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation inline functions. MIPS version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Kazumoto Kojima <kkojima@info.kanagawa-u.ac.jp>.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* FIXME: Profiling of shared libraries is not implemented yet. */
#ifndef dl_machine_h
@@ -712,8 +712,8 @@ elf_machine_reloc (struct link_map *map, ElfW(Addr) r_info,
it's totally unnecessary. */
if (ELFW(R_SYM) (r_info) == 0)
break;
- /* Fall through. */
#endif
+ /* Fall through. */
default:
_dl_reloc_bad_type (map, r_type, 0);
break;
diff --git a/sysdeps/mips/dl-procinfo.c b/sysdeps/mips/dl-procinfo.c
index 008d52d33e..bda7da0103 100644
--- a/sysdeps/mips/dl-procinfo.c
+++ b/sysdeps/mips/dl-procinfo.c
@@ -1,5 +1,5 @@
/* Data for Mips version of processor capability information.
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Robert Millan <rmh@gnu.org>.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This information must be kept in sync with the _DL_PLATFORM_COUNT
definitions in procinfo.h.
diff --git a/sysdeps/mips/dl-procinfo.h b/sysdeps/mips/dl-procinfo.h
index 68235c48f8..cb8280ff8b 100644
--- a/sysdeps/mips/dl-procinfo.h
+++ b/sysdeps/mips/dl-procinfo.h
@@ -1,5 +1,5 @@
/* Mips version of processor capability information handling macros.
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Robert Millan <rmh@gnu.org>.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DL_PROCINFO_H
#define _DL_PROCINFO_H 1
diff --git a/sysdeps/mips/dl-tls.h b/sysdeps/mips/dl-tls.h
index 7f9ce2a9e8..bc48b951a1 100644
--- a/sysdeps/mips/dl-tls.h
+++ b/sysdeps/mips/dl-tls.h
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. MIPS version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Type used for the representation of TLS information in the GOT. */
diff --git a/sysdeps/mips/dl-trampoline.c b/sysdeps/mips/dl-trampoline.c
index 35b6b93a89..74a2bffdc3 100644
--- a/sysdeps/mips/dl-trampoline.c
+++ b/sysdeps/mips/dl-trampoline.c
@@ -1,5 +1,5 @@
/* PLT trampoline. MIPS version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Kazumoto Kojima <kkojima@info.kanagawa-u.ac.jp>.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* FIXME: Profiling of shared libraries is not implemented yet. */
@@ -166,8 +166,8 @@ __dl_runtime_resolve (ElfW(Word) sym_index,
break;
}
- /* Fall through. */
}
+ /* Fall through. */
case 0:
{
/* We need to keep the scope around so do some locking. This is
diff --git a/sysdeps/mips/fpregdef.h b/sysdeps/mips/fpregdef.h
index 6b7e7b1333..85554e9ace 100644
--- a/sysdeps/mips/fpregdef.h
+++ b/sysdeps/mips/fpregdef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FPREGDEF_H
#define _FPREGDEF_H
diff --git a/sysdeps/mips/fpu/e_sqrt.c b/sysdeps/mips/fpu/e_sqrt.c
index 3a18711951..a8231160b1 100644
--- a/sysdeps/mips/fpu/e_sqrt.c
+++ b/sysdeps/mips/fpu/e_sqrt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Hartvig Ekner <hartvige@mips.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sgidefs.h>
diff --git a/sysdeps/mips/fpu/e_sqrtf.c b/sysdeps/mips/fpu/e_sqrtf.c
index ed858ab04a..c7e71a3f66 100644
--- a/sysdeps/mips/fpu/e_sqrtf.c
+++ b/sysdeps/mips/fpu/e_sqrtf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Hartvig Ekner <hartvige@mips.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sgidefs.h>
diff --git a/sysdeps/mips/fpu/fclrexcpt.c b/sysdeps/mips/fpu/fclrexcpt.c
index 51310d931f..49154c1bb2 100644
--- a/sysdeps/mips/fpu/fclrexcpt.c
+++ b/sysdeps/mips/fpu/fclrexcpt.c
@@ -1,5 +1,5 @@
/* Clear given exceptions in current floating-point environment.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fenv_libc.h>
diff --git a/sysdeps/mips/fpu/fedisblxcpt.c b/sysdeps/mips/fpu/fedisblxcpt.c
index 37a6a6e358..24f6122b20 100644
--- a/sysdeps/mips/fpu/fedisblxcpt.c
+++ b/sysdeps/mips/fpu/fedisblxcpt.c
@@ -1,5 +1,5 @@
/* Disable floating-point exceptions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fenv_libc.h>
diff --git a/sysdeps/mips/fpu/feenablxcpt.c b/sysdeps/mips/fpu/feenablxcpt.c
index 81f73ab6bd..2aacbfc7db 100644
--- a/sysdeps/mips/fpu/feenablxcpt.c
+++ b/sysdeps/mips/fpu/feenablxcpt.c
@@ -1,5 +1,5 @@
/* Enable floating-point exceptions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fenv_libc.h>
diff --git a/sysdeps/mips/fpu/fegetenv.c b/sysdeps/mips/fpu/fegetenv.c
index 8e8fa2c576..7ed5c5b754 100644
--- a/sysdeps/mips/fpu/fegetenv.c
+++ b/sysdeps/mips/fpu/fegetenv.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/mips/fpu/fegetexcept.c b/sysdeps/mips/fpu/fegetexcept.c
index da7e56f1d6..695e5b6654 100644
--- a/sysdeps/mips/fpu/fegetexcept.c
+++ b/sysdeps/mips/fpu/fegetexcept.c
@@ -1,5 +1,5 @@
/* Get enabled floating-point exceptions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fenv_libc.h>
diff --git a/sysdeps/mips/fpu/fegetmode.c b/sysdeps/mips/fpu/fegetmode.c
index e0a5180f7b..b593b0b9a0 100644
--- a/sysdeps/mips/fpu/fegetmode.c
+++ b/sysdeps/mips/fpu/fegetmode.c
@@ -1,5 +1,5 @@
/* Store current floating-point control modes. MIPS version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/mips/fpu/fegetround.c b/sysdeps/mips/fpu/fegetround.c
index a7ac444aea..057a11f994 100644
--- a/sysdeps/mips/fpu/fegetround.c
+++ b/sysdeps/mips/fpu/fegetround.c
@@ -1,5 +1,5 @@
/* Return current rounding direction.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@arthur.rhein-neckar.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/mips/fpu/feholdexcpt.c b/sysdeps/mips/fpu/feholdexcpt.c
index eb9d476498..18fd877709 100644
--- a/sysdeps/mips/fpu/feholdexcpt.c
+++ b/sysdeps/mips/fpu/feholdexcpt.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment and clear exceptions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/mips/fpu/fenv_libc.h b/sysdeps/mips/fpu/fenv_libc.h
index 4f32cddbca..e1c243e452 100644
--- a/sysdeps/mips/fpu/fenv_libc.h
+++ b/sysdeps/mips/fpu/fenv_libc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FENV_LIBC_H
#define _FENV_LIBC_H 1
diff --git a/sysdeps/mips/fpu/fenv_private.h b/sysdeps/mips/fpu/fenv_private.h
new file mode 100644
index 0000000000..5071bebc1b
--- /dev/null
+++ b/sysdeps/mips/fpu/fenv_private.h
@@ -0,0 +1,241 @@
+/* Internal math stuff. MIPS version.
+ Copyright (C) 2013-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef MIPS_FENV_PRIVATE_H
+#define MIPS_FENV_PRIVATE_H 1
+
+/* Inline functions to speed up the math library implementation. The
+ default versions of these routines are in generic/fenv_private.h
+ and call fesetround, feholdexcept, etc. These routines use inlined
+ code instead. */
+
+#include <fenv.h>
+#include <fenv_libc.h>
+#include <fpu_control.h>
+
+#define _FPU_MASK_ALL (_FPU_MASK_V | _FPU_MASK_Z | _FPU_MASK_O \
+ |_FPU_MASK_U | _FPU_MASK_I | FE_ALL_EXCEPT)
+
+static __always_inline void
+libc_feholdexcept_mips (fenv_t *envp)
+{
+ fpu_control_t cw;
+
+ /* Save the current state. */
+ _FPU_GETCW (cw);
+ envp->__fp_control_register = cw;
+
+ /* Clear all exception enable bits and flags. */
+ cw &= ~(_FPU_MASK_ALL);
+ _FPU_SETCW (cw);
+}
+#define libc_feholdexcept libc_feholdexcept_mips
+#define libc_feholdexceptf libc_feholdexcept_mips
+#define libc_feholdexceptl libc_feholdexcept_mips
+
+static __always_inline void
+libc_fesetround_mips (int round)
+{
+ fpu_control_t cw;
+
+ /* Get current state. */
+ _FPU_GETCW (cw);
+
+ /* Set rounding bits. */
+ cw &= ~_FPU_RC_MASK;
+ cw |= round;
+
+ /* Set new state. */
+ _FPU_SETCW (cw);
+}
+#define libc_fesetround libc_fesetround_mips
+#define libc_fesetroundf libc_fesetround_mips
+#define libc_fesetroundl libc_fesetround_mips
+
+static __always_inline void
+libc_feholdexcept_setround_mips (fenv_t *envp, int round)
+{
+ fpu_control_t cw;
+
+ /* Save the current state. */
+ _FPU_GETCW (cw);
+ envp->__fp_control_register = cw;
+
+ /* Clear all exception enable bits and flags. */
+ cw &= ~(_FPU_MASK_ALL);
+
+ /* Set rounding bits. */
+ cw &= ~_FPU_RC_MASK;
+ cw |= round;
+
+ /* Set new state. */
+ _FPU_SETCW (cw);
+}
+#define libc_feholdexcept_setround libc_feholdexcept_setround_mips
+#define libc_feholdexcept_setroundf libc_feholdexcept_setround_mips
+#define libc_feholdexcept_setroundl libc_feholdexcept_setround_mips
+
+#define libc_feholdsetround libc_feholdexcept_setround_mips
+#define libc_feholdsetroundf libc_feholdexcept_setround_mips
+#define libc_feholdsetroundl libc_feholdexcept_setround_mips
+
+static __always_inline void
+libc_fesetenv_mips (fenv_t *envp)
+{
+ fpu_control_t cw __attribute__ ((unused));
+
+ /* Read current state to flush fpu pipeline. */
+ _FPU_GETCW (cw);
+
+ _FPU_SETCW (envp->__fp_control_register);
+}
+#define libc_fesetenv libc_fesetenv_mips
+#define libc_fesetenvf libc_fesetenv_mips
+#define libc_fesetenvl libc_fesetenv_mips
+
+static __always_inline int
+libc_feupdateenv_test_mips (fenv_t *envp, int excepts)
+{
+ /* int ret = fetestexcept (excepts); feupdateenv (envp); return ret; */
+ int cw, temp;
+
+ /* Get current control word. */
+ _FPU_GETCW (cw);
+
+ /* Set flag bits (which are accumulative), and *also* set the
+ cause bits. The setting of the cause bits is what actually causes
+ the hardware to generate the exception, if the corresponding enable
+ bit is set as well. */
+ temp = cw & FE_ALL_EXCEPT;
+ temp |= envp->__fp_control_register | (temp << CAUSE_SHIFT);
+
+ /* Set new state. */
+ _FPU_SETCW (temp);
+
+ return cw & excepts & FE_ALL_EXCEPT;
+}
+#define libc_feupdateenv_test libc_feupdateenv_test_mips
+#define libc_feupdateenv_testf libc_feupdateenv_test_mips
+#define libc_feupdateenv_testl libc_feupdateenv_test_mips
+
+static __always_inline void
+libc_feupdateenv_mips (fenv_t *envp)
+{
+ libc_feupdateenv_test_mips (envp, 0);
+}
+#define libc_feupdateenv libc_feupdateenv_mips
+#define libc_feupdateenvf libc_feupdateenv_mips
+#define libc_feupdateenvl libc_feupdateenv_mips
+
+#define libc_feresetround libc_feupdateenv_mips
+#define libc_feresetroundf libc_feupdateenv_mips
+#define libc_feresetroundl libc_feupdateenv_mips
+
+static __always_inline int
+libc_fetestexcept_mips (int excepts)
+{
+ int cw;
+
+ /* Get current control word. */
+ _FPU_GETCW (cw);
+
+ return cw & excepts & FE_ALL_EXCEPT;
+}
+#define libc_fetestexcept libc_fetestexcept_mips
+#define libc_fetestexceptf libc_fetestexcept_mips
+#define libc_fetestexceptl libc_fetestexcept_mips
+
+/* Enable support for rounding mode context. */
+#define HAVE_RM_CTX 1
+
+static __always_inline void
+libc_feholdexcept_setround_mips_ctx (struct rm_ctx *ctx, int round)
+{
+ fpu_control_t old, new;
+
+ /* Save the current state. */
+ _FPU_GETCW (old);
+ ctx->env.__fp_control_register = old;
+
+ /* Clear all exception enable bits and flags. */
+ new = old & ~(_FPU_MASK_ALL);
+
+ /* Set rounding bits. */
+ new = (new & ~_FPU_RC_MASK) | round;
+
+ if (__glibc_unlikely (new != old))
+ {
+ _FPU_SETCW (new);
+ ctx->updated_status = true;
+ }
+ else
+ ctx->updated_status = false;
+}
+#define libc_feholdexcept_setround_ctx libc_feholdexcept_setround_mips_ctx
+#define libc_feholdexcept_setroundf_ctx libc_feholdexcept_setround_mips_ctx
+#define libc_feholdexcept_setroundl_ctx libc_feholdexcept_setround_mips_ctx
+
+static __always_inline void
+libc_fesetenv_mips_ctx (struct rm_ctx *ctx)
+{
+ libc_fesetenv_mips (&ctx->env);
+}
+#define libc_fesetenv_ctx libc_fesetenv_mips_ctx
+#define libc_fesetenvf_ctx libc_fesetenv_mips_ctx
+#define libc_fesetenvl_ctx libc_fesetenv_mips_ctx
+
+static __always_inline void
+libc_feupdateenv_mips_ctx (struct rm_ctx *ctx)
+{
+ if (__glibc_unlikely (ctx->updated_status))
+ libc_feupdateenv_test_mips (&ctx->env, 0);
+}
+#define libc_feupdateenv_ctx libc_feupdateenv_mips_ctx
+#define libc_feupdateenvf_ctx libc_feupdateenv_mips_ctx
+#define libc_feupdateenvl_ctx libc_feupdateenv_mips_ctx
+#define libc_feresetround_ctx libc_feupdateenv_mips_ctx
+#define libc_feresetroundf_ctx libc_feupdateenv_mips_ctx
+#define libc_feresetroundl_ctx libc_feupdateenv_mips_ctx
+
+static __always_inline void
+libc_feholdsetround_mips_ctx (struct rm_ctx *ctx, int round)
+{
+ fpu_control_t old, new;
+
+ /* Save the current state. */
+ _FPU_GETCW (old);
+ ctx->env.__fp_control_register = old;
+
+ /* Set rounding bits. */
+ new = (old & ~_FPU_RC_MASK) | round;
+
+ if (__glibc_unlikely (new != old))
+ {
+ _FPU_SETCW (new);
+ ctx->updated_status = true;
+ }
+ else
+ ctx->updated_status = false;
+}
+#define libc_feholdsetround_ctx libc_feholdsetround_mips_ctx
+#define libc_feholdsetroundf_ctx libc_feholdsetround_mips_ctx
+#define libc_feholdsetroundl_ctx libc_feholdsetround_mips_ctx
+
+#include_next <fenv_private.h>
+
+#endif
diff --git a/sysdeps/mips/fpu/fesetenv.c b/sysdeps/mips/fpu/fesetenv.c
index 8dee8782c3..f0da507e40 100644
--- a/sysdeps/mips/fpu/fesetenv.c
+++ b/sysdeps/mips/fpu/fesetenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/mips/fpu/fesetexcept.c b/sysdeps/mips/fpu/fesetexcept.c
index d14febca6b..0ab9b0b07a 100644
--- a/sysdeps/mips/fpu/fesetexcept.c
+++ b/sysdeps/mips/fpu/fesetexcept.c
@@ -1,5 +1,5 @@
/* Set given exception flags. MIPS version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/mips/fpu/fesetmode.c b/sysdeps/mips/fpu/fesetmode.c
index 68541735b4..aca0a53f04 100644
--- a/sysdeps/mips/fpu/fesetmode.c
+++ b/sysdeps/mips/fpu/fesetmode.c
@@ -1,5 +1,5 @@
/* Install given floating-point control modes. MIPS version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/mips/fpu/fesetround.c b/sysdeps/mips/fpu/fesetround.c
index 31fdeab368..5f4d7298de 100644
--- a/sysdeps/mips/fpu/fesetround.c
+++ b/sysdeps/mips/fpu/fesetround.c
@@ -1,5 +1,5 @@
/* Set current rounding direction.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@arthur.rhein-neckar.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/mips/fpu/feupdateenv.c b/sysdeps/mips/fpu/feupdateenv.c
index 669bfc3c9e..f87756180e 100644
--- a/sysdeps/mips/fpu/feupdateenv.c
+++ b/sysdeps/mips/fpu/feupdateenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment and raise exceptions.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/mips/fpu/fgetexcptflg.c b/sysdeps/mips/fpu/fgetexcptflg.c
index 1e594e1470..6f595c0caa 100644
--- a/sysdeps/mips/fpu/fgetexcptflg.c
+++ b/sysdeps/mips/fpu/fgetexcptflg.c
@@ -1,5 +1,5 @@
/* Store current representation for exceptions.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/mips/fpu/fraiseexcpt.c b/sysdeps/mips/fpu/fraiseexcpt.c
index 56ad431662..08846223f3 100644
--- a/sysdeps/mips/fpu/fraiseexcpt.c
+++ b/sysdeps/mips/fpu/fraiseexcpt.c
@@ -1,5 +1,5 @@
/* Raise given exceptions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fenv_libc.h>
diff --git a/sysdeps/mips/fpu/fsetexcptflg.c b/sysdeps/mips/fpu/fsetexcptflg.c
index dc447a7775..82f82f04fa 100644
--- a/sysdeps/mips/fpu/fsetexcptflg.c
+++ b/sysdeps/mips/fpu/fsetexcptflg.c
@@ -1,5 +1,5 @@
/* Set floating-point environment exception handling.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Hartvig Ekner <hartvige@mips.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/mips/fpu/ftestexcept.c b/sysdeps/mips/fpu/ftestexcept.c
index fa645b2675..4155fc0498 100644
--- a/sysdeps/mips/fpu/ftestexcept.c
+++ b/sysdeps/mips/fpu/ftestexcept.c
@@ -1,5 +1,5 @@
/* Test exception in current environment.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@arthur.rhein-neckar.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/mips/fpu_control.h b/sysdeps/mips/fpu_control.h
index a1d88fea06..8cb8190729 100644
--- a/sysdeps/mips/fpu_control.h
+++ b/sysdeps/mips/fpu_control.h
@@ -1,7 +1,6 @@
/* FPU control word bits. Mips version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
- Contributed by Olaf Flebbe and Ralf Baechle.
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 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FPU_CONTROL_H
#define _FPU_CONTROL_H
diff --git a/sysdeps/mips/gccframe.h b/sysdeps/mips/gccframe.h
index af6a17f17f..2c0d952599 100644
--- a/sysdeps/mips/gccframe.h
+++ b/sysdeps/mips/gccframe.h
@@ -1,5 +1,5 @@
/* Definition of object in frame unwind info. mips version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define FIRST_PSEUDO_REGISTER 76
diff --git a/sysdeps/mips/ieee754/bits/floatn.h b/sysdeps/mips/ieee754/bits/floatn.h
index 917fe4bc3c..7ab2dd67af 100644
--- a/sysdeps/mips/ieee754/bits/floatn.h
+++ b/sysdeps/mips/ieee754/bits/floatn.h
@@ -1,5 +1,5 @@
/* Macros to control TS 18661-3 glibc features on MIPS platforms.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_FLOATN_H
#define _BITS_FLOATN_H
diff --git a/sysdeps/mips/ieee754/bits/long-double.h b/sysdeps/mips/ieee754/bits/long-double.h
index a1e41d28df..b52f3f860e 100644
--- a/sysdeps/mips/ieee754/bits/long-double.h
+++ b/sysdeps/mips/ieee754/bits/long-double.h
@@ -1,5 +1,5 @@
/* Properties of long double type. MIPS version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sgidefs.h>
diff --git a/sysdeps/mips/ieee754/ieee754.h b/sysdeps/mips/ieee754/ieee754.h
index 9b94ecb280..250fa5e8c0 100644
--- a/sysdeps/mips/ieee754/ieee754.h
+++ b/sysdeps/mips/ieee754/ieee754.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -13,16 +13,19 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _IEEE754_H
-
#define _IEEE754_H 1
+
#include <features.h>
-#include <endian.h>
+#include <bits/endian.h>
-#include <float.h>
+#ifndef __LDBL_MANT_DIG__
+# include <float.h>
+# define __LDBL_MANT_DIG__ __LDBL_MANT_DIG__
+#endif
__BEGIN_DECLS
@@ -127,7 +130,7 @@ union ieee754_double
#define IEEE754_DOUBLE_BIAS 0x3ff /* Added to exponent. */
-#if LDBL_MANT_DIG == 113
+#if __LDBL_MANT_DIG__ == 113
union ieee854_long_double
{
@@ -184,7 +187,7 @@ union ieee854_long_double
#define IEEE854_LONG_DOUBLE_BIAS 0x3fff /* Added to exponent. */
-#elif LDBL_MANT_DIG == 64
+#elif __LDBL_MANT_DIG__ == 64
union ieee854_long_double
{
@@ -253,7 +256,7 @@ union ieee854_long_double
#define IEEE854_LONG_DOUBLE_BIAS 0x3fff
-#elif LDBL_MANT_DIG == 53
+#elif __LDBL_MANT_DIG__ == 53
union ieee854_long_double
{
@@ -316,7 +319,7 @@ union ieee854_long_double
#define IEEE854_LONG_DOUBLE_BIAS 0x3ff /* Added to exponent. */
-#endif /* LDBL_MANT_DIG == 53 */
+#endif /* __LDBL_MANT_DIG__ == 53 */
__END_DECLS
diff --git a/sysdeps/mips/include/sys/asm.h b/sysdeps/mips/include/sys/asm.h
index e44df8fe0b..bfb5d5ab79 100644
--- a/sysdeps/mips/include/sys/asm.h
+++ b/sysdeps/mips/include/sys/asm.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2013-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_ASM_H
#include_next <sys/asm.h>
diff --git a/sysdeps/mips/jmpbuf-unwind.h b/sysdeps/mips/jmpbuf-unwind.h
index 8318c4669e..28c6e887c0 100644
--- a/sysdeps/mips/jmpbuf-unwind.h
+++ b/sysdeps/mips/jmpbuf-unwind.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <setjmp.h>
#include <stdint.h>
diff --git a/sysdeps/mips/ldsodefs.h b/sysdeps/mips/ldsodefs.h
index c6e5ce7e66..656dc31ba0 100644
--- a/sysdeps/mips/ldsodefs.h
+++ b/sysdeps/mips/ldsodefs.h
@@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MIPS_LDSODEFS_H
#define _MIPS_LDSODEFS_H 1
@@ -26,6 +26,21 @@ struct La_mips_32_retval;
struct La_mips_64_regs;
struct La_mips_64_retval;
+#define ELF_MACHINE_GNU_HASH_ADDRIDX (DT_MIPS_XHASH - DT_LOPROC + DT_NUM)
+
+/* Calculate the index of a symbol in MIPS xhash. */
+#define ELF_MACHINE_HASH_SYMIDX(map, hasharr) \
+ ((map)->l_mach.mips_xlat_zero[(hasharr) - (map)->l_gnu_chain_zero])
+
+/* Setup MIPS xhash. */
+#define ELF_MACHINE_XHASH_SETUP(hash32, symbias, map) \
+ do \
+ { \
+ (hash32) += (map)->l_info[DT_MIPS (SYMTABNO)]->d_un.d_val - (symbias); \
+ (map)->l_mach.mips_xlat_zero = (hash32) - (symbias); \
+ } \
+ while (0)
+
#define ARCH_PLTENTER_MEMBERS \
Elf32_Addr (*mips_o32_gnu_pltenter) (Elf32_Sym *, unsigned int, \
uintptr_t *, uintptr_t *, \
diff --git a/sysdeps/mips/libc-tls.c b/sysdeps/mips/libc-tls.c
index a3d6165241..06dba3122f 100644
--- a/sysdeps/mips/libc-tls.c
+++ b/sysdeps/mips/libc-tls.c
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. MIPS version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <csu/libc-tls.c>
#include <dl-tls.h>
diff --git a/sysdeps/mips/linkmap.h b/sysdeps/mips/linkmap.h
index 1fb9678a6d..1e640c3ba9 100644
--- a/sysdeps/mips/linkmap.h
+++ b/sysdeps/mips/linkmap.h
@@ -3,4 +3,5 @@ struct link_map_machine
ElfW(Addr) plt; /* Address of .plt */
ElfW(Word) fpabi; /* FP ABI of the object */
unsigned int odd_spreg; /* Does the object require odd_spreg support? */
+ const Elf32_Word *mips_xlat_zero; /* .MIPS.xhash */
};
diff --git a/sysdeps/mips/lshift.S b/sysdeps/mips/lshift.S
index 5a2d19bc8f..57753c71fc 100644
--- a/sysdeps/mips/lshift.S
+++ b/sysdeps/mips/lshift.S
@@ -1,6 +1,6 @@
/* MIPS2 __mpn_lshift --
-Copyright (C) 1995-2018 Free Software Foundation, Inc.
+Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -16,7 +16,7 @@ License for more details.
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library. If not, see
-<http://www.gnu.org/licenses/>. */
+<https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/mips/machine-gmon.h b/sysdeps/mips/machine-gmon.h
index afc3ae5022..19a78ad556 100644
--- a/sysdeps/mips/machine-gmon.h
+++ b/sysdeps/mips/machine-gmon.h
@@ -1,5 +1,5 @@
/* Machine-specific calling sequence for `mcount' profiling function. MIPS
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sgidefs.h>
diff --git a/sysdeps/mips/math-tests-snan-payload.h b/sysdeps/mips/math-tests-snan-payload.h
new file mode 100644
index 0000000000..9d0706dc3b
--- /dev/null
+++ b/sysdeps/mips/math-tests-snan-payload.h
@@ -0,0 +1,30 @@
+/* Configuration for math tests: sNaN payloads. MIPS version.
+ Copyright (C) 2016-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef MIPS_MATH_TESTS_SNAN_PAYLOAD_H
+#define MIPS_MATH_TESTS_SNAN_PAYLOAD_H 1
+
+/* NaN payload preservation when converting a signaling NaN to quiet
+ is only required in NAN2008 mode. */
+#ifdef __mips_nan2008
+# define SNAN_TESTS_PRESERVE_PAYLOAD 1
+#else
+# define SNAN_TESTS_PRESERVE_PAYLOAD 0
+#endif
+
+#endif /* math-tests-snan-payload.h. */
diff --git a/sysdeps/mips/math-tests.h b/sysdeps/mips/math-tests.h
deleted file mode 100644
index 941d38bdf0..0000000000
--- a/sysdeps/mips/math-tests.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Configuration for math tests. MIPS version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <features.h>
-#include <sgidefs.h>
-
-/* MIPS soft float does not support exceptions and rounding modes. */
-#ifdef __mips_soft_float
-# define ROUNDING_TESTS_float(MODE) ((MODE) == FE_TONEAREST)
-# define ROUNDING_TESTS_double(MODE) ((MODE) == FE_TONEAREST)
-# define ROUNDING_TESTS_long_double(MODE) ((MODE) == FE_TONEAREST)
-# define EXCEPTION_TESTS_float 0
-# define EXCEPTION_TESTS_double 0
-# define EXCEPTION_TESTS_long_double 0
-#endif
-
-/* NaN payload preservation when converting a signaling NaN to quiet
- is only required in NAN2008 mode. */
-#ifndef __mips_nan2008
-# define SNAN_TESTS_PRESERVE_PAYLOAD 0
-#endif
-
-#include_next <math-tests.h>
diff --git a/sysdeps/mips/math_private.h b/sysdeps/mips/math_private.h
deleted file mode 100644
index 01ae8b18fd..0000000000
--- a/sysdeps/mips/math_private.h
+++ /dev/null
@@ -1,245 +0,0 @@
-/* Internal math stuff. MIPS version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef MIPS_MATH_PRIVATE_H
-#define MIPS_MATH_PRIVATE_H 1
-
-/* Inline functions to speed up the math library implementation. The
- default versions of these routines are in generic/math_private.h
- and call fesetround, feholdexcept, etc. These routines use inlined
- code instead. */
-
-#ifdef __mips_hard_float
-
-# include <fenv.h>
-# include <fenv_libc.h>
-# include <fpu_control.h>
-
-# define _FPU_MASK_ALL (_FPU_MASK_V | _FPU_MASK_Z | _FPU_MASK_O \
- |_FPU_MASK_U | _FPU_MASK_I | FE_ALL_EXCEPT)
-
-static __always_inline void
-libc_feholdexcept_mips (fenv_t *envp)
-{
- fpu_control_t cw;
-
- /* Save the current state. */
- _FPU_GETCW (cw);
- envp->__fp_control_register = cw;
-
- /* Clear all exception enable bits and flags. */
- cw &= ~(_FPU_MASK_ALL);
- _FPU_SETCW (cw);
-}
-# define libc_feholdexcept libc_feholdexcept_mips
-# define libc_feholdexceptf libc_feholdexcept_mips
-# define libc_feholdexceptl libc_feholdexcept_mips
-
-static __always_inline void
-libc_fesetround_mips (int round)
-{
- fpu_control_t cw;
-
- /* Get current state. */
- _FPU_GETCW (cw);
-
- /* Set rounding bits. */
- cw &= ~_FPU_RC_MASK;
- cw |= round;
-
- /* Set new state. */
- _FPU_SETCW (cw);
-}
-# define libc_fesetround libc_fesetround_mips
-# define libc_fesetroundf libc_fesetround_mips
-# define libc_fesetroundl libc_fesetround_mips
-
-static __always_inline void
-libc_feholdexcept_setround_mips (fenv_t *envp, int round)
-{
- fpu_control_t cw;
-
- /* Save the current state. */
- _FPU_GETCW (cw);
- envp->__fp_control_register = cw;
-
- /* Clear all exception enable bits and flags. */
- cw &= ~(_FPU_MASK_ALL);
-
- /* Set rounding bits. */
- cw &= ~_FPU_RC_MASK;
- cw |= round;
-
- /* Set new state. */
- _FPU_SETCW (cw);
-}
-# define libc_feholdexcept_setround libc_feholdexcept_setround_mips
-# define libc_feholdexcept_setroundf libc_feholdexcept_setround_mips
-# define libc_feholdexcept_setroundl libc_feholdexcept_setround_mips
-
-# define libc_feholdsetround libc_feholdexcept_setround_mips
-# define libc_feholdsetroundf libc_feholdexcept_setround_mips
-# define libc_feholdsetroundl libc_feholdexcept_setround_mips
-
-static __always_inline void
-libc_fesetenv_mips (fenv_t *envp)
-{
- fpu_control_t cw __attribute__ ((unused));
-
- /* Read current state to flush fpu pipeline. */
- _FPU_GETCW (cw);
-
- _FPU_SETCW (envp->__fp_control_register);
-}
-# define libc_fesetenv libc_fesetenv_mips
-# define libc_fesetenvf libc_fesetenv_mips
-# define libc_fesetenvl libc_fesetenv_mips
-
-static __always_inline int
-libc_feupdateenv_test_mips (fenv_t *envp, int excepts)
-{
- /* int ret = fetestexcept (excepts); feupdateenv (envp); return ret; */
- int cw, temp;
-
- /* Get current control word. */
- _FPU_GETCW (cw);
-
- /* Set flag bits (which are accumulative), and *also* set the
- cause bits. The setting of the cause bits is what actually causes
- the hardware to generate the exception, if the corresponding enable
- bit is set as well. */
- temp = cw & FE_ALL_EXCEPT;
- temp |= envp->__fp_control_register | (temp << CAUSE_SHIFT);
-
- /* Set new state. */
- _FPU_SETCW (temp);
-
- return cw & excepts & FE_ALL_EXCEPT;
-}
-# define libc_feupdateenv_test libc_feupdateenv_test_mips
-# define libc_feupdateenv_testf libc_feupdateenv_test_mips
-# define libc_feupdateenv_testl libc_feupdateenv_test_mips
-
-static __always_inline void
-libc_feupdateenv_mips (fenv_t *envp)
-{
- libc_feupdateenv_test_mips (envp, 0);
-}
-# define libc_feupdateenv libc_feupdateenv_mips
-# define libc_feupdateenvf libc_feupdateenv_mips
-# define libc_feupdateenvl libc_feupdateenv_mips
-
-# define libc_feresetround libc_feupdateenv_mips
-# define libc_feresetroundf libc_feupdateenv_mips
-# define libc_feresetroundl libc_feupdateenv_mips
-
-static __always_inline int
-libc_fetestexcept_mips (int excepts)
-{
- int cw;
-
- /* Get current control word. */
- _FPU_GETCW (cw);
-
- return cw & excepts & FE_ALL_EXCEPT;
-}
-# define libc_fetestexcept libc_fetestexcept_mips
-# define libc_fetestexceptf libc_fetestexcept_mips
-# define libc_fetestexceptl libc_fetestexcept_mips
-
-/* Enable support for rounding mode context. */
-# define HAVE_RM_CTX 1
-
-static __always_inline void
-libc_feholdexcept_setround_mips_ctx (struct rm_ctx *ctx, int round)
-{
- fpu_control_t old, new;
-
- /* Save the current state. */
- _FPU_GETCW (old);
- ctx->env.__fp_control_register = old;
-
- /* Clear all exception enable bits and flags. */
- new = old & ~(_FPU_MASK_ALL);
-
- /* Set rounding bits. */
- new = (new & ~_FPU_RC_MASK) | round;
-
- if (__glibc_unlikely (new != old))
- {
- _FPU_SETCW (new);
- ctx->updated_status = true;
- }
- else
- ctx->updated_status = false;
-}
-# define libc_feholdexcept_setround_ctx libc_feholdexcept_setround_mips_ctx
-# define libc_feholdexcept_setroundf_ctx libc_feholdexcept_setround_mips_ctx
-# define libc_feholdexcept_setroundl_ctx libc_feholdexcept_setround_mips_ctx
-
-static __always_inline void
-libc_fesetenv_mips_ctx (struct rm_ctx *ctx)
-{
- libc_fesetenv_mips (&ctx->env);
-}
-# define libc_fesetenv_ctx libc_fesetenv_mips_ctx
-# define libc_fesetenvf_ctx libc_fesetenv_mips_ctx
-# define libc_fesetenvl_ctx libc_fesetenv_mips_ctx
-
-static __always_inline void
-libc_feupdateenv_mips_ctx (struct rm_ctx *ctx)
-{
- if (__glibc_unlikely (ctx->updated_status))
- libc_feupdateenv_test_mips (&ctx->env, 0);
-}
-# define libc_feupdateenv_ctx libc_feupdateenv_mips_ctx
-# define libc_feupdateenvf_ctx libc_feupdateenv_mips_ctx
-# define libc_feupdateenvl_ctx libc_feupdateenv_mips_ctx
-# define libc_feresetround_ctx libc_feupdateenv_mips_ctx
-# define libc_feresetroundf_ctx libc_feupdateenv_mips_ctx
-# define libc_feresetroundl_ctx libc_feupdateenv_mips_ctx
-
-static __always_inline void
-libc_feholdsetround_mips_ctx (struct rm_ctx *ctx, int round)
-{
- fpu_control_t old, new;
-
- /* Save the current state. */
- _FPU_GETCW (old);
- ctx->env.__fp_control_register = old;
-
- /* Set rounding bits. */
- new = (old & ~_FPU_RC_MASK) | round;
-
- if (__glibc_unlikely (new != old))
- {
- _FPU_SETCW (new);
- ctx->updated_status = true;
- }
- else
- ctx->updated_status = false;
-}
-# define libc_feholdsetround_ctx libc_feholdsetround_mips_ctx
-# define libc_feholdsetroundf_ctx libc_feholdsetround_mips_ctx
-# define libc_feholdsetroundl_ctx libc_feholdsetround_mips_ctx
-
-#endif
-
-#include_next <math_private.h>
-
-#endif
diff --git a/sysdeps/mips/memcpy.S b/sysdeps/mips/memcpy.S
index 3e9bd1d61b..8a014840e4 100644
--- a/sysdeps/mips/memcpy.S
+++ b/sysdeps/mips/memcpy.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifdef ANDROID_CHANGES
# include "machine/asm.h"
diff --git a/sysdeps/mips/memset.S b/sysdeps/mips/memset.S
index 4145b00be0..5d1cff411e 100644
--- a/sysdeps/mips/memset.S
+++ b/sysdeps/mips/memset.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2013-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifdef ANDROID_CHANGES
# include "machine/asm.h"
diff --git a/sysdeps/mips/memusage.h b/sysdeps/mips/memusage.h
index 597a31e0a9..bf2375fa55 100644
--- a/sysdeps/mips/memusage.h
+++ b/sysdeps/mips/memusage.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define GETSP() ({ register uintptr_t stack_ptr asm ("$29"); stack_ptr; })
diff --git a/sysdeps/mips/mips32/crti.S b/sysdeps/mips/mips32/crti.S
index b3e1c4e0d5..d3f4b455cc 100644
--- a/sysdeps/mips/mips32/crti.S
+++ b/sysdeps/mips/mips32/crti.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for MIPS (o32).
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* crti.S puts a function prologue at the beginning of the .init and
.fini sections and defines global symbols for those addresses, so
diff --git a/sysdeps/mips/mips32/crtn.S b/sysdeps/mips/mips32/crtn.S
index 84efcb1938..ac4c2668bf 100644
--- a/sysdeps/mips/mips32/crtn.S
+++ b/sysdeps/mips/mips32/crtn.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for MIPS (o32).
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* crtn.S puts function epilogues in the .init and .fini sections
corresponding to the prologues in crti.S. */
diff --git a/sysdeps/mips/mips32/fpu/fix-fp-int-convert-overflow.h b/sysdeps/mips/mips32/fpu/fix-fp-int-convert-overflow.h
index 1afc7f65a6..10a7b5996f 100644
--- a/sysdeps/mips/mips32/fpu/fix-fp-int-convert-overflow.h
+++ b/sysdeps/mips/mips32/fpu/fix-fp-int-convert-overflow.h
@@ -1,5 +1,5 @@
/* Fix for conversion of floating point to integer overflow. MIPS version.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef FIX_FP_INT_CONVERT_OVERFLOW_H
#define FIX_FP_INT_CONVERT_OVERFLOW_H 1
diff --git a/sysdeps/mips/mips32/fpu/fpucw-helpers.c b/sysdeps/mips/mips32/fpu/fpucw-helpers.c
index c52d55460e..0c530077b9 100644
--- a/sysdeps/mips/mips32/fpu/fpucw-helpers.c
+++ b/sysdeps/mips/mips32/fpu/fpucw-helpers.c
@@ -1,5 +1,5 @@
/* FPU control word handling, MIPS version, needed by MIPS16 callers.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fpu_control.h>
diff --git a/sysdeps/mips/mips32/libm-test-ulps b/sysdeps/mips/mips32/libm-test-ulps
index e62cca3e03..798e3c465c 100644
--- a/sysdeps/mips/mips32/libm-test-ulps
+++ b/sysdeps/mips/mips32/libm-test-ulps
@@ -530,9 +530,9 @@ idouble: 1
ifloat: 1
Function: Imaginary part of "ccos_downward":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
Function: Real part of "ccos_towardzero":
@@ -542,9 +542,9 @@ idouble: 1
ifloat: 2
Function: Imaginary part of "ccos_towardzero":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
Function: Real part of "ccos_upward":
@@ -572,27 +572,27 @@ idouble: 1
ifloat: 1
Function: Real part of "ccosh_downward":
-double: 1
+double: 2
float: 3
-idouble: 1
+idouble: 2
ifloat: 3
Function: Imaginary part of "ccosh_downward":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
Function: Real part of "ccosh_towardzero":
-double: 1
+double: 2
float: 3
-idouble: 1
+idouble: 2
ifloat: 3
Function: Imaginary part of "ccosh_towardzero":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
Function: Real part of "ccosh_upward":
@@ -620,27 +620,27 @@ idouble: 1
ifloat: 2
Function: Real part of "cexp_downward":
-double: 1
+double: 2
float: 2
-idouble: 1
+idouble: 2
ifloat: 2
Function: Imaginary part of "cexp_downward":
-double: 1
+double: 3
float: 3
-idouble: 1
+idouble: 3
ifloat: 3
Function: Real part of "cexp_towardzero":
-double: 1
+double: 2
float: 2
-idouble: 1
+idouble: 2
ifloat: 2
Function: Imaginary part of "cexp_towardzero":
-double: 1
+double: 3
float: 3
-idouble: 1
+idouble: 3
ifloat: 3
Function: Real part of "cexp_upward":
@@ -650,9 +650,9 @@ idouble: 1
ifloat: 2
Function: Imaginary part of "cexp_upward":
-double: 1
+double: 3
float: 2
-idouble: 1
+idouble: 3
ifloat: 2
Function: Real part of "clog":
@@ -780,21 +780,21 @@ idouble: 1
ifloat: 1
Function: "cosh_downward":
-double: 1
+double: 2
float: 1
-idouble: 1
+idouble: 2
ifloat: 1
Function: "cosh_towardzero":
-double: 1
+double: 2
float: 1
-idouble: 1
+idouble: 2
ifloat: 1
Function: "cosh_upward":
-double: 1
+double: 2
float: 2
-idouble: 1
+idouble: 2
ifloat: 2
Function: Real part of "cpow":
@@ -808,9 +808,9 @@ float: 2
ifloat: 2
Function: Real part of "cpow_downward":
-double: 4
+double: 5
float: 8
-idouble: 4
+idouble: 5
ifloat: 8
Function: Imaginary part of "cpow_downward":
@@ -820,9 +820,9 @@ idouble: 1
ifloat: 2
Function: Real part of "cpow_towardzero":
-double: 4
+double: 5
float: 8
-idouble: 4
+idouble: 5
ifloat: 8
Function: Imaginary part of "cpow_towardzero":
@@ -850,9 +850,9 @@ idouble: 1
ifloat: 1
Function: Real part of "csin_downward":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
Function: Imaginary part of "csin_downward":
@@ -862,9 +862,9 @@ idouble: 1
ifloat: 1
Function: Real part of "csin_towardzero":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
Function: Imaginary part of "csin_towardzero":
@@ -902,9 +902,9 @@ idouble: 2
ifloat: 2
Function: Imaginary part of "csinh_downward":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
Function: Real part of "csinh_towardzero":
@@ -914,9 +914,9 @@ idouble: 2
ifloat: 2
Function: Imaginary part of "csinh_towardzero":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
Function: Real part of "csinh_upward":
@@ -1132,15 +1132,15 @@ double: 2
idouble: 2
Function: "exp10_downward":
-double: 2
+double: 3
float: 1
-idouble: 2
+idouble: 3
ifloat: 1
Function: "exp10_towardzero":
-double: 2
+double: 3
float: 1
-idouble: 2
+idouble: 3
ifloat: 1
Function: "exp10_upward":
diff --git a/sysdeps/mips/mips32/sfp-machine.h b/sysdeps/mips/mips32/sfp-machine.h
index 5215655029..8fa429a67e 100644
--- a/sysdeps/mips/mips32/sfp-machine.h
+++ b/sysdeps/mips/mips32/sfp-machine.h
@@ -56,8 +56,8 @@
NaNs is sNaN, in which case the result is NANSIGN/NANFRAC. */
# define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \
do { \
- if ((_FP_FRAC_HIGH_RAW_##fs(X) | \
- _FP_FRAC_HIGH_RAW_##fs(Y)) & _FP_QNANBIT_##fs) \
+ if ((_FP_FRAC_HIGH_RAW_##fs(X) \
+ | _FP_FRAC_HIGH_RAW_##fs(Y)) & _FP_QNANBIT_##fs) \
{ \
R##_s = _FP_NANSIGN_##fs; \
_FP_FRAC_SET_##wc(R,_FP_NANFRAC_##fs); \
diff --git a/sysdeps/mips/mips64/__longjmp.c b/sysdeps/mips/mips64/__longjmp.c
index e5d413280c..75bf7cd7be 100644
--- a/sysdeps/mips/mips64/__longjmp.c
+++ b/sysdeps/mips/mips64/__longjmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Brendan Kehoe (brendan@zen.org).
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <setjmp.h>
#include <sgidefs.h>
diff --git a/sysdeps/mips/mips64/add_n.S b/sysdeps/mips/mips64/add_n.S
index 46d6f77162..b6ab9debf6 100644
--- a/sysdeps/mips/mips64/add_n.S
+++ b/sysdeps/mips/mips64/add_n.S
@@ -1,7 +1,7 @@
/* MIPS3 __mpn_add_n -- Add two limb vectors of the same length > 0 and
* store sum in a third limb vector.
*
- * Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ * Copyright (C) 1995-2019 Free Software Foundation, Inc.
*
* This file is part of the GNU MP Library.
*
@@ -17,7 +17,7 @@
*
* You should have received a copy of the GNU Lesser General Public License
* along with the GNU MP Library. If not, see
- * <http://www.gnu.org/licenses/>.
+ * <https://www.gnu.org/licenses/>.
*/
#include <sysdep.h>
diff --git a/sysdeps/mips/mips64/addmul_1.S b/sysdeps/mips/mips64/addmul_1.S
index dae3a74438..b16dc192b8 100644
--- a/sysdeps/mips/mips64/addmul_1.S
+++ b/sysdeps/mips/mips64/addmul_1.S
@@ -1,7 +1,7 @@
/* MIPS3 __mpn_addmul_1 -- Multiply a limb vector with a single limb and
* add the product to a second limb vector.
*
- * Copyright (C) 1992-2018 Free Software Foundation, Inc.
+ * Copyright (C) 1992-2019 Free Software Foundation, Inc.
*
* This file is part of the GNU MP Library.
*
@@ -16,7 +16,7 @@
* License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
- * along with the GNU MP Library. If not, see <http://www.gnu.org/licenses/>.
+ * along with the GNU MP Library. If not, see <https://www.gnu.org/licenses/>.
*/
#include <sysdep.h>
diff --git a/sysdeps/mips/mips64/bsd-_setjmp.S b/sysdeps/mips/mips64/bsd-_setjmp.S
index f58ee38d1f..6a9d90778b 100644
--- a/sysdeps/mips/mips64/bsd-_setjmp.S
+++ b/sysdeps/mips/mips64/bsd-_setjmp.S
@@ -1,5 +1,5 @@
/* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'. MIPS64 version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This just does a tail-call to `__sigsetjmp (ARG, 0)'.
We cannot do it in C because it must be a tail-call, so frame-unwinding
diff --git a/sysdeps/mips/mips64/bsd-setjmp.S b/sysdeps/mips/mips64/bsd-setjmp.S
index 1f084daf3c..1336f9eb1e 100644
--- a/sysdeps/mips/mips64/bsd-setjmp.S
+++ b/sysdeps/mips/mips64/bsd-setjmp.S
@@ -1,5 +1,5 @@
/* BSD `setjmp' entry point to `sigsetjmp (..., 1)'. MIPS64 version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This just does a tail-call to `__sigsetjmp (ARG, 1)'.
We cannot do it in C because it must be a tail-call, so frame-unwinding
diff --git a/sysdeps/mips/mips64/e_sqrtl.c b/sysdeps/mips/mips64/e_sqrtl.c
index 6e3352962f..8386194a66 100644
--- a/sysdeps/mips/mips64/e_sqrtl.c
+++ b/sysdeps/mips/mips64/e_sqrtl.c
@@ -1,5 +1,5 @@
/* long double square root in software floating-point emulation.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include <soft-fp.h>
diff --git a/sysdeps/mips/mips64/gmp-mparam.h b/sysdeps/mips/mips64/gmp-mparam.h
index 9874aaefe3..809dcc1fa0 100644
--- a/sysdeps/mips/mips64/gmp-mparam.h
+++ b/sysdeps/mips/mips64/gmp-mparam.h
@@ -1,6 +1,6 @@
/* gmp-mparam.h -- Compiler/machine parameter header file.
-Copyright (C) 1991-2018 Free Software Foundation, Inc.
+Copyright (C) 1991-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -15,7 +15,7 @@ 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 MP Library. If not, see <http://www.gnu.org/licenses/>. */
+along with the GNU MP Library. If not, see <https://www.gnu.org/licenses/>. */
#if defined __GMP_H__ && ! defined _LONG_LONG_LIMB
#error "Included too late for _LONG_LONG_LIMB to take effect"
diff --git a/sysdeps/mips/mips64/libm-test-ulps b/sysdeps/mips/mips64/libm-test-ulps
index 82b15be5af..fec97bdc10 100644
--- a/sysdeps/mips/mips64/libm-test-ulps
+++ b/sysdeps/mips/mips64/libm-test-ulps
@@ -712,9 +712,9 @@ ildouble: 2
ldouble: 2
Function: Imaginary part of "ccos_downward":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
@@ -728,9 +728,9 @@ ildouble: 2
ldouble: 2
Function: Imaginary part of "ccos_towardzero":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
@@ -768,33 +768,33 @@ ildouble: 1
ldouble: 1
Function: Real part of "ccosh_downward":
-double: 1
+double: 2
float: 3
-idouble: 1
+idouble: 2
ifloat: 3
ildouble: 2
ldouble: 2
Function: Imaginary part of "ccosh_downward":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
Function: Real part of "ccosh_towardzero":
-double: 1
+double: 2
float: 3
-idouble: 1
+idouble: 2
ifloat: 3
ildouble: 2
ldouble: 2
Function: Imaginary part of "ccosh_towardzero":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
@@ -832,33 +832,33 @@ ildouble: 1
ldouble: 1
Function: Real part of "cexp_downward":
-double: 1
+double: 2
float: 2
-idouble: 1
+idouble: 2
ifloat: 2
ildouble: 2
ldouble: 2
Function: Imaginary part of "cexp_downward":
-double: 1
+double: 3
float: 3
-idouble: 1
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
Function: Real part of "cexp_towardzero":
-double: 1
+double: 2
float: 2
-idouble: 1
+idouble: 2
ifloat: 2
ildouble: 2
ldouble: 2
Function: Imaginary part of "cexp_towardzero":
-double: 1
+double: 3
float: 3
-idouble: 1
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
@@ -872,9 +872,9 @@ ildouble: 3
ldouble: 3
Function: Imaginary part of "cexp_upward":
-double: 1
+double: 3
float: 2
-idouble: 1
+idouble: 3
ifloat: 2
ildouble: 3
ldouble: 3
@@ -1046,25 +1046,25 @@ ildouble: 1
ldouble: 1
Function: "cosh_downward":
-double: 1
+double: 2
float: 1
-idouble: 1
+idouble: 2
ifloat: 1
ildouble: 1
ldouble: 2
Function: "cosh_towardzero":
-double: 1
+double: 2
float: 1
-idouble: 1
+idouble: 2
ifloat: 1
ildouble: 1
ldouble: 2
Function: "cosh_upward":
-double: 1
+double: 2
float: 2
-idouble: 1
+idouble: 2
ifloat: 2
ildouble: 1
ldouble: 3
@@ -1084,9 +1084,9 @@ ildouble: 1
ldouble: 1
Function: Real part of "cpow_downward":
-double: 4
+double: 5
float: 8
-idouble: 4
+idouble: 5
ifloat: 8
ildouble: 6
ldouble: 6
@@ -1100,9 +1100,9 @@ ildouble: 2
ldouble: 2
Function: Real part of "cpow_towardzero":
-double: 4
+double: 5
float: 8
-idouble: 4
+idouble: 5
ifloat: 8
ildouble: 6
ldouble: 6
@@ -1144,9 +1144,9 @@ ildouble: 1
ldouble: 1
Function: Real part of "csin_downward":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
@@ -1160,9 +1160,9 @@ ildouble: 2
ldouble: 2
Function: Real part of "csin_towardzero":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
@@ -1214,9 +1214,9 @@ ildouble: 2
ldouble: 2
Function: Imaginary part of "csinh_downward":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
@@ -1230,9 +1230,9 @@ ildouble: 2
ldouble: 2
Function: Imaginary part of "csinh_towardzero":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
@@ -1522,17 +1522,17 @@ ildouble: 2
ldouble: 2
Function: "exp10_downward":
-double: 2
+double: 3
float: 1
-idouble: 2
+idouble: 3
ifloat: 1
ildouble: 3
ldouble: 3
Function: "exp10_towardzero":
-double: 2
+double: 3
float: 1
-idouble: 2
+idouble: 3
ifloat: 1
ildouble: 3
ldouble: 3
diff --git a/sysdeps/mips/mips64/lshift.S b/sysdeps/mips/mips64/lshift.S
index 73b1cfb8e7..51879835ce 100644
--- a/sysdeps/mips/mips64/lshift.S
+++ b/sysdeps/mips/mips64/lshift.S
@@ -1,6 +1,6 @@
/* MIPS3 __mpn_lshift --
*
- * Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ * Copyright (C) 1995-2019 Free Software Foundation, Inc.
*
* This file is part of the GNU MP Library.
*
@@ -16,7 +16,7 @@
*
* You should have received a copy of the GNU Lesser General Public License
* along with the GNU MP Library. If not, see
- * <http://www.gnu.org/licenses/>.
+ * <https://www.gnu.org/licenses/>.
*/
#include <sysdep.h>
diff --git a/sysdeps/mips/mips64/mul_1.S b/sysdeps/mips/mips64/mul_1.S
index 8707257a68..4a48ef2b84 100644
--- a/sysdeps/mips/mips64/mul_1.S
+++ b/sysdeps/mips/mips64/mul_1.S
@@ -1,7 +1,7 @@
/* MIPS3 __mpn_mul_1 -- Multiply a limb vector with a single limb and
* store the product in a second limb vector.
*
- * Copyright (C) 1992-2018 Free Software Foundation, Inc.
+ * Copyright (C) 1992-2019 Free Software Foundation, Inc.
*
* This file is part of the GNU MP Library.
*
@@ -17,7 +17,7 @@
*
* You should have received a copy of the GNU Lesser General Public License
* along with the GNU MP Library. If not, see
- * <http://www.gnu.org/licenses/>.
+ * <https://www.gnu.org/licenses/>.
*/
#include <sysdep.h>
diff --git a/sysdeps/mips/mips64/n32/crti.S b/sysdeps/mips/mips64/n32/crti.S
index 59a09d5763..7f844fe568 100644
--- a/sysdeps/mips/mips64/n32/crti.S
+++ b/sysdeps/mips/mips64/n32/crti.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for MIPS (n32).
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* crti.S puts a function prologue at the beginning of the .init and
.fini sections and defines global symbols for those addresses, so
diff --git a/sysdeps/mips/mips64/n32/crtn.S b/sysdeps/mips/mips64/n32/crtn.S
index 6fa7630d0c..9d4e45936b 100644
--- a/sysdeps/mips/mips64/n32/crtn.S
+++ b/sysdeps/mips/mips64/n32/crtn.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for MIPS (n32).
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* crtn.S puts function epilogues in the .init and .fini sections
corresponding to the prologues in crti.S. */
diff --git a/sysdeps/mips/mips64/n64/crti.S b/sysdeps/mips/mips64/n64/crti.S
index fd468f0467..78cf9a8a7f 100644
--- a/sysdeps/mips/mips64/n64/crti.S
+++ b/sysdeps/mips/mips64/n64/crti.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for MIPS (n64).
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* crti.S puts a function prologue at the beginning of the .init and
.fini sections and defines global symbols for those addresses, so
diff --git a/sysdeps/mips/mips64/n64/crtn.S b/sysdeps/mips/mips64/n64/crtn.S
index 13f72c754c..7210c71617 100644
--- a/sysdeps/mips/mips64/n64/crtn.S
+++ b/sysdeps/mips/mips64/n64/crtn.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for MIPS (n64).
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* crtn.S puts function epilogues in the .init and .fini sections
corresponding to the prologues in crti.S. */
diff --git a/sysdeps/mips/mips64/rshift.S b/sysdeps/mips/mips64/rshift.S
index 22eede3b78..1c3e40fce2 100644
--- a/sysdeps/mips/mips64/rshift.S
+++ b/sysdeps/mips/mips64/rshift.S
@@ -1,6 +1,6 @@
/* MIPS3 __mpn_rshift --
*
- * Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ * Copyright (C) 1995-2019 Free Software Foundation, Inc.
*
* This file is part of the GNU MP Library.
*
@@ -16,7 +16,7 @@
*
* You should have received a copy of the GNU Lesser General Public License
* along with the GNU MP Library. If not, see
- * <http://www.gnu.org/licenses/>.
+ * <https://www.gnu.org/licenses/>.
*/
#include <sysdep.h>
diff --git a/sysdeps/mips/mips64/setjmp.S b/sysdeps/mips/mips64/setjmp.S
index ea30bd8efa..b67e4025d7 100644
--- a/sysdeps/mips/mips64/setjmp.S
+++ b/sysdeps/mips/mips64/setjmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sgidefs.h>
#include <sysdep.h>
diff --git a/sysdeps/mips/mips64/setjmp_aux.c b/sysdeps/mips/mips64/setjmp_aux.c
index 5354d40f38..ad98e666a6 100644
--- a/sysdeps/mips/mips64/setjmp_aux.c
+++ b/sysdeps/mips/mips64/setjmp_aux.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Brendan Kehoe (brendan@zen.org).
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <setjmp.h>
#include <sgidefs.h>
diff --git a/sysdeps/mips/mips64/sfp-machine.h b/sysdeps/mips/mips64/sfp-machine.h
index 35cc4ddeb1..4d1f90fc9b 100644
--- a/sysdeps/mips/mips64/sfp-machine.h
+++ b/sysdeps/mips/mips64/sfp-machine.h
@@ -59,8 +59,8 @@
NaNs is sNaN, in which case the result is NANSIGN/NANFRAC. */
# define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \
do { \
- if ((_FP_FRAC_HIGH_RAW_##fs(X) | \
- _FP_FRAC_HIGH_RAW_##fs(Y)) & _FP_QNANBIT_##fs) \
+ if ((_FP_FRAC_HIGH_RAW_##fs(X) \
+ | _FP_FRAC_HIGH_RAW_##fs(Y)) & _FP_QNANBIT_##fs) \
{ \
R##_s = _FP_NANSIGN_##fs; \
_FP_FRAC_SET_##wc(R,_FP_NANFRAC_##fs); \
@@ -74,6 +74,10 @@
} while (0)
#endif
+#define _FP_TININESS_AFTER_ROUNDING 1
+
+#ifdef __mips_hard_float
+
#define _FP_DECL_EX fpu_control_t _fcw
#define FP_ROUNDMODE (_fcw & 0x3)
@@ -89,9 +93,6 @@
#define FP_EX_DIVZERO FE_DIVBYZERO
#define FP_EX_INEXACT FE_INEXACT
-#define _FP_TININESS_AFTER_ROUNDING 1
-
-#ifdef __mips_hard_float
#define FP_INIT_ROUNDMODE \
do { \
_FPU_GETCW (_fcw); \
@@ -103,6 +104,4 @@ do { \
_FPU_SETCW (_fcw | _fex | (_fex << 10)); \
} while (0)
#define FP_TRAPPING_EXCEPTIONS ((_fcw >> 5) & 0x7c)
-#else
-#define FP_INIT_ROUNDMODE _fcw = FP_RND_NEAREST
#endif
diff --git a/sysdeps/mips/mips64/sub_n.S b/sysdeps/mips/mips64/sub_n.S
index 6cc09a7771..0778113677 100644
--- a/sysdeps/mips/mips64/sub_n.S
+++ b/sysdeps/mips/mips64/sub_n.S
@@ -1,7 +1,7 @@
/* MIPS3 __mpn_sub_n -- Subtract two limb vectors of the same length > 0 and
* store difference in a third limb vector.
*
- * Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ * Copyright (C) 1995-2019 Free Software Foundation, Inc.
*
* This file is part of the GNU MP Library.
*
@@ -17,7 +17,7 @@
*
* You should have received a copy of the GNU Lesser General Public License
* along with the GNU MP Library. If not, see
- * <http://www.gnu.org/licenses/>.
+ * <https://www.gnu.org/licenses/>.
*/
#include <sysdep.h>
diff --git a/sysdeps/mips/mips64/submul_1.S b/sysdeps/mips/mips64/submul_1.S
index fb9a1c2375..bb9a23db57 100644
--- a/sysdeps/mips/mips64/submul_1.S
+++ b/sysdeps/mips/mips64/submul_1.S
@@ -1,7 +1,7 @@
/* MIPS3 __mpn_submul_1 -- Multiply a limb vector with a single limb and
* subtract the product from a second limb vector.
*
- * Copyright (C) 1992-2018 Free Software Foundation, Inc.
+ * Copyright (C) 1992-2019 Free Software Foundation, Inc.
*
* This file is part of the GNU MP Library.
*
@@ -17,7 +17,7 @@
*
* You should have received a copy of the GNU Lesser General Public License
* along with the GNU MP Library. If not, see
- * <http://www.gnu.org/licenses/>.
+ * <https://www.gnu.org/licenses/>.
*/
#include <sysdep.h>
diff --git a/sysdeps/mips/mul_1.S b/sysdeps/mips/mul_1.S
index 02d9d5152f..4b6b885cc9 100644
--- a/sysdeps/mips/mul_1.S
+++ b/sysdeps/mips/mul_1.S
@@ -1,7 +1,7 @@
/* MIPS __mpn_mul_1 -- Multiply a limb vector with a single limb and
store the product in a second limb vector.
-Copyright (C) 1995-2018 Free Software Foundation, Inc.
+Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -17,7 +17,7 @@ License for more details.
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library. If not, see
-<http://www.gnu.org/licenses/>. */
+<https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/mips/nan-high-order-bit.h b/sysdeps/mips/nan-high-order-bit.h
index 0500605d01..16aee71aca 100644
--- a/sysdeps/mips/nan-high-order-bit.h
+++ b/sysdeps/mips/nan-high-order-bit.h
@@ -1,5 +1,5 @@
/* Specify NaN high-order bit conventions. MIPS version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef NAN_HIGH_ORDER_BIT_H
#define NAN_HIGH_ORDER_BIT_H 1
diff --git a/sysdeps/mips/nofpu/fesetenv.c b/sysdeps/mips/nofpu/fesetenv.c
new file mode 100644
index 0000000000..4667e76629
--- /dev/null
+++ b/sysdeps/mips/nofpu/fesetenv.c
@@ -0,0 +1,8 @@
+/* MIPS bits/fenv.h used to define exception macros for soft-float
+ despite that not supporting exceptions. Ensure use of the old
+ FE_NOMASK_ENV value still produces errors (see bug 17088). */
+#include <fenv.h>
+#undef FE_ALL_EXCEPT
+#define FE_ALL_EXCEPT 0x7c
+#define FE_NOMASK_ENV ((const fenv_t *) -2)
+#include <math/fesetenv.c>
diff --git a/sysdeps/mips/nofpu/feupdateenv.c b/sysdeps/mips/nofpu/feupdateenv.c
new file mode 100644
index 0000000000..9a7e316565
--- /dev/null
+++ b/sysdeps/mips/nofpu/feupdateenv.c
@@ -0,0 +1,8 @@
+/* MIPS bits/fenv.h used to define exception macros for soft-float
+ despite that not supporting exceptions. Ensure use of the old
+ FE_NOMASK_ENV value still produces errors (see bug 17088). */
+#include <fenv.h>
+#undef FE_ALL_EXCEPT
+#define FE_ALL_EXCEPT 0x7c
+#define FE_NOMASK_ENV ((const fenv_t *) -2)
+#include <math/feupdateenv.c>
diff --git a/sysdeps/mips/nptl/Makefile b/sysdeps/mips/nptl/Makefile
index 280fc5691d..9adc24d19f 100644
--- a/sysdeps/mips/nptl/Makefile
+++ b/sysdeps/mips/nptl/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 2005-2018 Free Software Foundation, Inc.
+# Copyright (C) 2005-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
ifeq ($(subdir),csu)
gen-as-const-headers += tcb-offsets.sym
diff --git a/sysdeps/mips/nptl/bits/pthreadtypes-arch.h b/sysdeps/mips/nptl/bits/pthreadtypes-arch.h
index f9e7d18a8b..f0f9133df4 100644
--- a/sysdeps/mips/nptl/bits/pthreadtypes-arch.h
+++ b/sysdeps/mips/nptl/bits/pthreadtypes-arch.h
@@ -1,5 +1,5 @@
/* Machine-specific pthread type layouts. MIPS version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,12 +14,12 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_PTHREADTYPES_ARCH_H
#define _BITS_PTHREADTYPES_ARCH_H 1
-#include <endian.h>
+#include <bits/endian.h>
#if _MIPS_SIM == _ABI64
# define __SIZEOF_PTHREAD_ATTR_T 56
@@ -38,52 +38,7 @@
#define __SIZEOF_PTHREAD_RWLOCKATTR_T 8
#define __SIZEOF_PTHREAD_BARRIERATTR_T 4
-/* Data structure for mutex handling. */
-#define __PTHREAD_COMPAT_PADDING_MID
-#define __PTHREAD_COMPAT_PADDING_END
-#define __PTHREAD_MUTEX_LOCK_ELISION 0
-#define __PTHREAD_MUTEX_NUSERS_AFTER_KIND (_MIPS_SIM != _ABI64)
-#define __PTHREAD_MUTEX_USE_UNION (_MIPS_SIM != _ABI64)
-
#define __LOCK_ALIGNMENT
#define __ONCE_ALIGNMENT
-struct __pthread_rwlock_arch_t
-{
- unsigned int __readers;
- unsigned int __writers;
- unsigned int __wrphase_futex;
- unsigned int __writers_futex;
- unsigned int __pad3;
- unsigned int __pad4;
-#if _MIPS_SIM == _ABI64
- int __cur_writer;
- int __shared;
- unsigned long int __pad1;
- unsigned long int __pad2;
- /* FLAGS must stay at this position in the structure to maintain
- binary compatibility. */
- unsigned int __flags;
-# else
-# if __BYTE_ORDER == __BIG_ENDIAN
- unsigned char __pad1;
- unsigned char __pad2;
- unsigned char __shared;
- /* FLAGS must stay at this position in the structure to maintain
- binary compatibility. */
- unsigned char __flags;
-# else
- /* FLAGS must stay at this position in the structure to maintain
- binary compatibility. */
- unsigned char __flags;
- unsigned char __shared;
- unsigned char __pad1;
- unsigned char __pad2;
-# endif
- int __cur_writer;
-#endif
-};
-
-#define __PTHREAD_RWLOCK_ELISION_EXTRA 0
-
#endif /* bits/pthreadtypes.h */
diff --git a/sysdeps/mips/nptl/bits/semaphore.h b/sysdeps/mips/nptl/bits/semaphore.h
index e78d075e5a..e76e6c3dc6 100644
--- a/sysdeps/mips/nptl/bits/semaphore.h
+++ b/sysdeps/mips/nptl/bits/semaphore.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SEMAPHORE_H
# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
diff --git a/sysdeps/mips/nptl/bits/struct_mutex.h b/sysdeps/mips/nptl/bits/struct_mutex.h
new file mode 100644
index 0000000000..3307265b11
--- /dev/null
+++ b/sysdeps/mips/nptl/bits/struct_mutex.h
@@ -0,0 +1,56 @@
+/* MIPS internal mutex struct definitions.
+ 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; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _THREAD_MUTEX_INTERNAL_H
+#define _THREAD_MUTEX_INTERNAL_H 1
+
+struct __pthread_mutex_s
+{
+ int __lock;
+ unsigned int __count;
+ int __owner;
+#if _MIPS_SIM == _ABI64
+ unsigned int __nusers;
+#endif
+ /* KIND must stay at this position in the structure to maintain
+ binary compatibility with static initializers. */
+ int __kind;
+#if _MIPS_SIM == _ABI64
+ int __spins;
+ __pthread_list_t __list;
+# define __PTHREAD_MUTEX_HAVE_PREV 1
+#else
+ unsigned int __nusers;
+ __extension__ union
+ {
+ int __spins;
+ __pthread_slist_t __list;
+ };
+# define __PTHREAD_MUTEX_HAVE_PREV 0
+#endif
+};
+
+#if _MIPS_SIM == _ABI64
+# define __PTHREAD_MUTEX_INITIALIZER(__kind) \
+ 0, 0, 0, 0, __kind, 0, { 0, 0 }
+#else
+# define __PTHREAD_MUTEX_INITIALIZER(__kind) \
+ 0, 0, 0, __kind, 0, { 0 }
+#endif
+
+#endif
diff --git a/sysdeps/mips/nptl/bits/struct_rwlock.h b/sysdeps/mips/nptl/bits/struct_rwlock.h
new file mode 100644
index 0000000000..93bf7cd442
--- /dev/null
+++ b/sysdeps/mips/nptl/bits/struct_rwlock.h
@@ -0,0 +1,71 @@
+/* MIPS internal rwlock struct definitions.
+ 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; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _RWLOCK_INTERNAL_H
+#define _RWLOCK_INTERNAL_H
+
+struct __pthread_rwlock_arch_t
+{
+ unsigned int __readers;
+ unsigned int __writers;
+ unsigned int __wrphase_futex;
+ unsigned int __writers_futex;
+ unsigned int __pad3;
+ unsigned int __pad4;
+#if _MIPS_SIM == _ABI64
+ int __cur_writer;
+ int __shared;
+ unsigned long int __pad1;
+ unsigned long int __pad2;
+ /* FLAGS must stay at this position in the structure to maintain
+ binary compatibility. */
+ unsigned int __flags;
+# else
+# if __BYTE_ORDER == __BIG_ENDIAN
+ unsigned char __pad1;
+ unsigned char __pad2;
+ unsigned char __shared;
+ /* FLAGS must stay at this position in the structure to maintain
+ binary compatibility. */
+ unsigned char __flags;
+# else
+ /* FLAGS must stay at this position in the structure to maintain
+ binary compatibility. */
+ unsigned char __flags;
+ unsigned char __shared;
+ unsigned char __pad1;
+ unsigned char __pad2;
+# endif
+ int __cur_writer;
+#endif
+};
+
+#if _MIPS_SIM == _ABI64
+# define __PTHREAD_RWLOCK_INITIALIZER(__flags) \
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, __flags
+#else
+# if __BYTE_ORDER == __BIG_ENDIAN
+# define __PTHREAD_RWLOCK_INITIALIZER(__flags) \
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, __flags, 0
+# else
+# define __PTHREAD_RWLOCK_INITIALIZER(__flags) \
+ 0, 0, 0, 0, 0, 0, __flags, 0, 0, 0, 0
+# endif
+#endif
+
+#endif
diff --git a/sysdeps/mips/nptl/pthread-offsets.h b/sysdeps/mips/nptl/pthread-offsets.h
index 0ac3eda3fb..e52b347531 100644
--- a/sysdeps/mips/nptl/pthread-offsets.h
+++ b/sysdeps/mips/nptl/pthread-offsets.h
@@ -1,13 +1,15 @@
#if _MIPS_SIM == _ABI64
-# define __PTHREAD_MUTEX_NUSERS_OFFSET 12
# define __PTHREAD_MUTEX_KIND_OFFSET 16
-# define __PTHREAD_MUTEX_SPINS_OFFSET 20
-# define __PTHREAD_MUTEX_ELISION_OFFSET 22
-# define __PTHREAD_MUTEX_LIST_OFFSET 24
#else
-# define __PTHREAD_MUTEX_NUSERS_OFFSET 16
# define __PTHREAD_MUTEX_KIND_OFFSET 12
-# define __PTHREAD_MUTEX_SPINS_OFFSET 20
-# define __PTHREAD_MUTEX_ELISION_OFFSET 22
-# define __PTHREAD_MUTEX_LIST_OFFSET 20
+#endif
+
+#if _MIPS_SIM == _ABI64
+# define __PTHREAD_RWLOCK_FLAGS_OFFSET 48
+#else
+# if __BYTE_ORDER == __BIG_ENDIAN
+# define __PTHREAD_RWLOCK_FLAGS_OFFSET 27
+# else
+# define __PTHREAD_RWLOCK_FLAGS_OFFSET 24
+# endif
#endif
diff --git a/sysdeps/mips/nptl/pthreaddef.h b/sysdeps/mips/nptl/pthreaddef.h
index 7b1283ae64..e06c2caccd 100644
--- a/sysdeps/mips/nptl/pthreaddef.h
+++ b/sysdeps/mips/nptl/pthreaddef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Default stack size. */
#define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024)
diff --git a/sysdeps/mips/nptl/tls.h b/sysdeps/mips/nptl/tls.h
index 777432fe1a..e0364d46a8 100644
--- a/sysdeps/mips/nptl/tls.h
+++ b/sysdeps/mips/nptl/tls.h
@@ -1,5 +1,5 @@
/* Definition for thread-local data handling. NPTL/MIPS version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _TLS_H
#define _TLS_H 1
diff --git a/sysdeps/mips/regdef.h b/sysdeps/mips/regdef.h
index d55b623759..34c1988c98 100644
--- a/sysdeps/mips/regdef.h
+++ b/sysdeps/mips/regdef.h
@@ -1,6 +1,5 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
- Contributed by Ralf Baechle <ralf@gnu.org>.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -14,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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _REGDEF_H
#define _REGDEF_H
diff --git a/sysdeps/mips/rshift.S b/sysdeps/mips/rshift.S
index a80b902a7d..254d3d0ca5 100644
--- a/sysdeps/mips/rshift.S
+++ b/sysdeps/mips/rshift.S
@@ -1,6 +1,6 @@
/* MIPS2 __mpn_rshift --
-Copyright (C) 1995-2018 Free Software Foundation, Inc.
+Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -16,7 +16,7 @@ License for more details.
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library. If not, see
-<http://www.gnu.org/licenses/>. */
+<https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/mips/setjmp.S b/sysdeps/mips/setjmp.S
index 5863ffafbc..22d319d15a 100644
--- a/sysdeps/mips/setjmp.S
+++ b/sysdeps/mips/setjmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/mips/setjmp_aux.c b/sysdeps/mips/setjmp_aux.c
index ee3e63f0ad..94ad2b4643 100644
--- a/sysdeps/mips/setjmp_aux.c
+++ b/sysdeps/mips/setjmp_aux.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Brendan Kehoe (brendan@zen.org).
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <setjmp.h>
diff --git a/sysdeps/mips/sgidefs.h b/sysdeps/mips/sgidefs.h
index e3721feeec..6495d75c77 100644
--- a/sysdeps/mips/sgidefs.h
+++ b/sysdeps/mips/sgidefs.h
@@ -1,6 +1,5 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
- Contributed by Ralf Baechle <ralf@gnu.org>.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -14,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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SGIDEFS_H
#define _SGIDEFS_H 1
diff --git a/sysdeps/mips/sotruss-lib.c b/sysdeps/mips/sotruss-lib.c
index 74d01bd1fc..82eef66d91 100644
--- a/sysdeps/mips/sotruss-lib.c
+++ b/sysdeps/mips/sotruss-lib.c
@@ -1,5 +1,5 @@
/* Override generic sotruss-lib.c to define actual functions for MIPS.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define HAVE_ARCH_PLTENTER
#define HAVE_ARCH_PLTEXIT
diff --git a/sysdeps/mips/stackinfo.h b/sysdeps/mips/stackinfo.h
index ff3b6f594c..c6638f0223 100644
--- a/sysdeps/mips/stackinfo.h
+++ b/sysdeps/mips/stackinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file contains a bit of information about the stack allocation
of the processor. */
diff --git a/sysdeps/mips/start.S b/sysdeps/mips/start.S
index a4c4ef0fae..a63e491aee 100644
--- a/sysdeps/mips/start.S
+++ b/sysdeps/mips/start.S
@@ -1,5 +1,5 @@
/* Startup code compliant to the ELF Mips ABI.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __ASSEMBLY__ 1
#include <entry.h>
diff --git a/sysdeps/mips/strcmp.S b/sysdeps/mips/strcmp.S
index 1afeda3c5f..d8ff40f802 100644
--- a/sysdeps/mips/strcmp.S
+++ b/sysdeps/mips/strcmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2014-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifdef ANDROID_CHANGES
# include "machine/asm.h"
diff --git a/sysdeps/mips/sub_n.S b/sysdeps/mips/sub_n.S
index 3202016c71..50b9c62ce3 100644
--- a/sysdeps/mips/sub_n.S
+++ b/sysdeps/mips/sub_n.S
@@ -1,7 +1,7 @@
/* MIPS2 __mpn_sub_n -- Subtract two limb vectors of the same length > 0 and
store difference in a third limb vector.
-Copyright (C) 1995-2018 Free Software Foundation, Inc.
+Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -17,7 +17,7 @@ License for more details.
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library. If not, see
-<http://www.gnu.org/licenses/>. */
+<https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/mips/submul_1.S b/sysdeps/mips/submul_1.S
index 641cdb2df9..e56673dfe9 100644
--- a/sysdeps/mips/submul_1.S
+++ b/sysdeps/mips/submul_1.S
@@ -1,7 +1,7 @@
/* MIPS __mpn_submul_1 -- Multiply a limb vector with a single limb and
subtract the product from a second limb vector.
-Copyright (C) 1995-2018 Free Software Foundation, Inc.
+Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -17,7 +17,7 @@ License for more details.
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library. If not, see
-<http://www.gnu.org/licenses/>. */
+<https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/mips/sys/asm.h b/sysdeps/mips/sys/asm.h
index 9fabc79472..2365402240 100644
--- a/sysdeps/mips/sys/asm.h
+++ b/sysdeps/mips/sys/asm.h
@@ -1,6 +1,5 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
- Contributed by Ralf Baechle <ralf@gnu.org>.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -14,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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_ASM_H
#define _SYS_ASM_H
@@ -232,8 +231,8 @@ symbol = value
* MIPS IV implementations are free to treat this as a nop. The R5000
* is one of them. So we should have an option not to use this instruction.
*/
-#if (_MIPS_ISA == _MIPS_ISA_MIPS4) || (_MIPS_ISA == _MIPS_ISA_MIPS5) || \
- (_MIPS_ISA == _MIPS_ISA_MIPS32) || (_MIPS_ISA == _MIPS_ISA_MIPS64)
+#if (_MIPS_ISA == _MIPS_ISA_MIPS4) || (_MIPS_ISA == _MIPS_ISA_MIPS5) \
+ || (_MIPS_ISA == _MIPS_ISA_MIPS32) || (_MIPS_ISA == _MIPS_ISA_MIPS64)
# define PREF(hint,addr) \
pref hint,addr
# define PREFX(hint,addr) \
@@ -278,8 +277,8 @@ symbol = value
.set pop; \
9:
#endif /* (_MIPS_ISA == _MIPS_ISA_MIPS2) || (_MIPS_ISA == _MIPS_ISA_MIPS3) */
-#if (_MIPS_ISA == _MIPS_ISA_MIPS4) || (_MIPS_ISA == _MIPS_ISA_MIPS5) || \
- (_MIPS_ISA == _MIPS_ISA_MIPS32) || (_MIPS_ISA == _MIPS_ISA_MIPS64)
+#if (_MIPS_ISA == _MIPS_ISA_MIPS4) || (_MIPS_ISA == _MIPS_ISA_MIPS5) \
+ || (_MIPS_ISA == _MIPS_ISA_MIPS32) || (_MIPS_ISA == _MIPS_ISA_MIPS64)
# define MOVN(rd,rs,rt) \
movn rd,rs,rt
# define MOVZ(rd,rs,rt) \
@@ -468,13 +467,13 @@ symbol = value
/*
* Some cp0 registers were extended to 64bit for MIPS III.
*/
-#if (_MIPS_ISA == _MIPS_ISA_MIPS1) || (_MIPS_ISA == _MIPS_ISA_MIPS2) || \
- (_MIPS_ISA == _MIPS_ISA_MIPS32)
+#if (_MIPS_ISA == _MIPS_ISA_MIPS1) || (_MIPS_ISA == _MIPS_ISA_MIPS2) \
+ || (_MIPS_ISA == _MIPS_ISA_MIPS32)
# define MFC0 mfc0
# define MTC0 mtc0
#endif
-#if (_MIPS_ISA == _MIPS_ISA_MIPS3) || (_MIPS_ISA == _MIPS_ISA_MIPS4) || \
- (_MIPS_ISA == _MIPS_ISA_MIPS5) || (_MIPS_ISA == _MIPS_ISA_MIPS64)
+#if (_MIPS_ISA == _MIPS_ISA_MIPS3) || (_MIPS_ISA == _MIPS_ISA_MIPS4) \
+ || (_MIPS_ISA == _MIPS_ISA_MIPS5) || (_MIPS_ISA == _MIPS_ISA_MIPS64)
# define MFC0 dmfc0
# define MTC0 dmtc0
#endif
diff --git a/sysdeps/mips/sys/fpregdef.h b/sysdeps/mips/sys/fpregdef.h
index be79d9e2e6..e89d35e5dd 100644
--- a/sysdeps/mips/sys/fpregdef.h
+++ b/sysdeps/mips/sys/fpregdef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_FPREGDEF_H
#define _SYS_FPREGDEF_H
diff --git a/sysdeps/mips/sys/regdef.h b/sysdeps/mips/sys/regdef.h
index 35a7c7ffaf..f74d7330be 100644
--- a/sysdeps/mips/sys/regdef.h
+++ b/sysdeps/mips/sys/regdef.h
@@ -1,6 +1,5 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
- Contributed by Ralf Baechle <ralf@gnu.org>.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -14,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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_REGDEF_H
#define _SYS_REGDEF_H
diff --git a/sysdeps/mips/sys/tas.h b/sysdeps/mips/sys/tas.h
index d5ed013e28..4a7e4ad0df 100644
--- a/sysdeps/mips/sys/tas.h
+++ b/sysdeps/mips/sys/tas.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Maciej W. Rozycki <macro@ds2.pg.gda.pl>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_TAS_H
#define _SYS_TAS_H 1
@@ -38,10 +38,11 @@ __NTH (_test_and_set (int *__p, int __v))
{
int __r, __t;
+ /* The R5900 reports itself as MIPS III but it does not have LL/SC. */
__asm__ __volatile__
("/* Inline test and set */\n"
".set push\n\t"
-#if _MIPS_SIM == _ABIO32 && __mips < 2
+#if _MIPS_SIM == _ABIO32 && (__mips < 2 || defined (_MIPS_ARCH_R5900))
".set mips2\n\t"
#endif
"sync\n\t"
diff --git a/sysdeps/mips/sys/ucontext.h b/sysdeps/mips/sys/ucontext.h
index aaa08fdea9..192c8aa356 100644
--- a/sysdeps/mips/sys/ucontext.h
+++ b/sysdeps/mips/sys/ucontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* System V/mips ABI compliant context switching support. */
diff --git a/sysdeps/mips/tst-abi-fp32mod.c b/sysdeps/mips/tst-abi-fp32mod.c
index fe0d6503e2..2dedd39e81 100644
--- a/sysdeps/mips/tst-abi-fp32mod.c
+++ b/sysdeps/mips/tst-abi-fp32mod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2014-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
int
fp32 (void)
diff --git a/sysdeps/mips/tst-abi-fp64amod.c b/sysdeps/mips/tst-abi-fp64amod.c
index 3f1e3827a5..f26a07fee5 100644
--- a/sysdeps/mips/tst-abi-fp64amod.c
+++ b/sysdeps/mips/tst-abi-fp64amod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2014-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
int
fp64a (void)
diff --git a/sysdeps/mips/tst-abi-fp64mod.c b/sysdeps/mips/tst-abi-fp64mod.c
index bdb46e4e7d..808a40652b 100644
--- a/sysdeps/mips/tst-abi-fp64mod.c
+++ b/sysdeps/mips/tst-abi-fp64mod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2014-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
int
fp64 (void)
diff --git a/sysdeps/mips/tst-abi-fpxxmod.c b/sysdeps/mips/tst-abi-fpxxmod.c
index 81b95da80e..ac60a78ac7 100644
--- a/sysdeps/mips/tst-abi-fpxxmod.c
+++ b/sysdeps/mips/tst-abi-fpxxmod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2014-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
int
fpxx (void)
diff --git a/sysdeps/mips/tst-abi-fpxxomod.c b/sysdeps/mips/tst-abi-fpxxomod.c
index d26966095c..354415582f 100644
--- a/sysdeps/mips/tst-abi-fpxxomod.c
+++ b/sysdeps/mips/tst-abi-fpxxomod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2014-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
int
fpxxo (void)
diff --git a/sysdeps/mips/tst-abi-interlink.c b/sysdeps/mips/tst-abi-interlink.c
index 7407e2564d..ff79232b4a 100644
--- a/sysdeps/mips/tst-abi-interlink.c
+++ b/sysdeps/mips/tst-abi-interlink.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2014-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/prctl.h>
#include <dlfcn.h>
diff --git a/sysdeps/mips/tst-audit.h b/sysdeps/mips/tst-audit.h
index 02adb0902c..11ecb18683 100644
--- a/sysdeps/mips/tst-audit.h
+++ b/sysdeps/mips/tst-audit.h
@@ -1,6 +1,6 @@
/* Definitions for testing PLT entry/exit auditing. ARM version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sgidefs.h>
diff --git a/sysdeps/mips/tst-mode-switch-1.c b/sysdeps/mips/tst-mode-switch-1.c
index aa73c82b22..f5f35a7d03 100644
--- a/sysdeps/mips/tst-mode-switch-1.c
+++ b/sysdeps/mips/tst-mode-switch-1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2014-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/sysdeps/mips/tst-mode-switch-2.c b/sysdeps/mips/tst-mode-switch-2.c
index 2f63e7ff8e..a063dc3dcf 100644
--- a/sysdeps/mips/tst-mode-switch-2.c
+++ b/sysdeps/mips/tst-mode-switch-2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2014-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdio.h>
diff --git a/sysdeps/mips/tst-mode-switch-3.c b/sysdeps/mips/tst-mode-switch-3.c
index f9ba8b2603..c7eee9b124 100644
--- a/sysdeps/mips/tst-mode-switch-3.c
+++ b/sysdeps/mips/tst-mode-switch-3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2014-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdio.h>
diff --git a/sysdeps/mips/tst-undefined-weak-lib.S b/sysdeps/mips/tst-undefined-weak-lib.S
new file mode 100644
index 0000000000..55df954a5b
--- /dev/null
+++ b/sysdeps/mips/tst-undefined-weak-lib.S
@@ -0,0 +1,43 @@
+/* Undefined weak symbol loading shared module.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <sgidefs.h>
+
+ .text
+ .globl x
+ .set nomips16
+ .set nomicromips
+ .ent x
+ .type x, @function
+x:
+ .set noreorder
+#if _MIPS_SIM == _ABIO32
+ .cpload $25
+ jr $31
+ lb $2,%got(a)($28)
+#else
+ .cpsetup $25,$24,x
+ lb $2,%got_disp(a)($28)
+ jr $31
+ .cpreturn
+#endif
+ .set reorder
+ .end x
+ .size x, .-x
+ .weak a
+ .hidden a
diff --git a/sysdeps/mips/tst-undefined-weak.c b/sysdeps/mips/tst-undefined-weak.c
new file mode 100644
index 0000000000..ad71f9817a
--- /dev/null
+++ b/sysdeps/mips/tst-undefined-weak.c
@@ -0,0 +1,28 @@
+/* Undefined weak symbol loading main executable.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+int *x (void);
+
+int
+do_test (void)
+{
+ x ();
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/nios2/Makefile b/sysdeps/nios2/Makefile
index 25fc2abfee..6c21b84f40 100644
--- a/sysdeps/nios2/Makefile
+++ b/sysdeps/nios2/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1993-2018 Free Software Foundation, Inc.
+# Copyright (C) 1993-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
pic-ccflag = -fpic
diff --git a/sysdeps/nios2/__longjmp.S b/sysdeps/nios2/__longjmp.S
index d8a6edab8a..c91e839312 100644
--- a/sysdeps/nios2/__longjmp.S
+++ b/sysdeps/nios2/__longjmp.S
@@ -1,5 +1,5 @@
/* longjmp for Nios II.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <jmpbuf-offsets.h>
diff --git a/sysdeps/nios2/bits/endian.h b/sysdeps/nios2/bits/endian.h
deleted file mode 100644
index 164f9e4d78..0000000000
--- a/sysdeps/nios2/bits/endian.h
+++ /dev/null
@@ -1,12 +0,0 @@
-/* The Nios II architecture has selectable endianness. */
-
-#ifndef _ENDIAN_H
-# error "Never use <bits/endian.h> directly; include <endian.h> instead."
-#endif
-
-#ifdef __nios2_big_endian__
-# define __BYTE_ORDER __BIG_ENDIAN
-#endif
-#ifdef __nios2_little_endian__
-# define __BYTE_ORDER __LITTLE_ENDIAN
-#endif
diff --git a/sysdeps/nios2/bits/endianness.h b/sysdeps/nios2/bits/endianness.h
new file mode 100644
index 0000000000..87e66ebd71
--- /dev/null
+++ b/sysdeps/nios2/bits/endianness.h
@@ -0,0 +1,16 @@
+#ifndef _BITS_ENDIANNESS_H
+#define _BITS_ENDIANNESS_H 1
+
+#ifndef _BITS_ENDIAN_H
+# error "Never use <bits/endianness.h> directly; include <endian.h> instead."
+#endif
+
+/* Nios II has selectable endianness. */
+#ifdef __nios2_big_endian__
+# define __BYTE_ORDER __BIG_ENDIAN
+#endif
+#ifdef __nios2_little_endian__
+# define __BYTE_ORDER __LITTLE_ENDIAN
+#endif
+
+#endif /* bits/endianness.h */
diff --git a/sysdeps/nios2/bits/fenv.h b/sysdeps/nios2/bits/fenv.h
index c39286658b..49e6e7f993 100644
--- a/sysdeps/nios2/bits/fenv.h
+++ b/sysdeps/nios2/bits/fenv.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FENV_H
# error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
@@ -43,7 +43,7 @@ typedef unsigned int fenv_t;
/* If the default argument is used we use this value. */
#define FE_DFL_ENV ((const fenv_t *) -1)
-#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/sysdeps/nios2/bits/link.h b/sysdeps/nios2/bits/link.h
index c34198866f..214463a79b 100644
--- a/sysdeps/nios2/bits/link.h
+++ b/sysdeps/nios2/bits/link.h
@@ -1,5 +1,5 @@
/* Machine-specific declarations for dynamic linker interface, Nios II version.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LINK_H
# error "Never include <bits/link.h> directly; use <link.h> instead."
diff --git a/sysdeps/nios2/bits/setjmp.h b/sysdeps/nios2/bits/setjmp.h
index b5cef8b2da..0594f7b6a0 100644
--- a/sysdeps/nios2/bits/setjmp.h
+++ b/sysdeps/nios2/bits/setjmp.h
@@ -1,5 +1,5 @@
/* Define the machine-dependent type `jmp_buf'. Nios II version.
- Copyright (C) 1992-2018 Free Software Foundation, Inc.
+ Copyright (C) 1992-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _NIOS2_BITS_SETJMP_H
#define _NIOS2_BITS_SETJMP_H 1
diff --git a/sysdeps/nios2/crti.S b/sysdeps/nios2/crti.S
index 46ab896ac0..98d68af695 100644
--- a/sysdeps/nios2/crti.S
+++ b/sysdeps/nios2/crti.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for Nios II.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* crti.S puts a function prologue at the beginning of the .init and
.fini sections and defines global symbols for those addresses, so
diff --git a/sysdeps/nios2/crtn.S b/sysdeps/nios2/crtn.S
index 18fe2e0036..2beebfb9d4 100644
--- a/sysdeps/nios2/crtn.S
+++ b/sysdeps/nios2/crtn.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for Nios II.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* crtn.S puts function epilogues in the .init and .fini sections
corresponding to the prologues in crti.S. */
diff --git a/sysdeps/nios2/dl-init.c b/sysdeps/nios2/dl-init.c
index a691706e70..ff140d99eb 100644
--- a/sysdeps/nios2/dl-init.c
+++ b/sysdeps/nios2/dl-init.c
@@ -1,5 +1,5 @@
/* Nios II specific procedures for initializing code.
- Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <elf/dl-init.c>
diff --git a/sysdeps/nios2/dl-machine.h b/sysdeps/nios2/dl-machine.h
index 1f57a343e0..806f50fb46 100644
--- a/sysdeps/nios2/dl-machine.h
+++ b/sysdeps/nios2/dl-machine.h
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation inline functions. Nios II version.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef dl_machine_h
#define dl_machine_h
diff --git a/sysdeps/nios2/dl-sysdep.h b/sysdeps/nios2/dl-sysdep.h
index 35103afdac..58812c3f36 100644
--- a/sysdeps/nios2/dl-sysdep.h
+++ b/sysdeps/nios2/dl-sysdep.h
@@ -1,5 +1,5 @@
/* System-specific settings for dynamic linker code. Nios II version.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include_next <dl-sysdep.h>
diff --git a/sysdeps/nios2/dl-tls.h b/sysdeps/nios2/dl-tls.h
index 2f4636233b..8e4b0f456d 100644
--- a/sysdeps/nios2/dl-tls.h
+++ b/sysdeps/nios2/dl-tls.h
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. Nios II version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Type used for the representation of TLS information in the GOT. */
diff --git a/sysdeps/nios2/dl-trampoline.S b/sysdeps/nios2/dl-trampoline.S
index 37f738e8f6..759c21b75d 100644
--- a/sysdeps/nios2/dl-trampoline.S
+++ b/sysdeps/nios2/dl-trampoline.S
@@ -1,5 +1,5 @@
/* PLT trampolines. Nios II version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <libc-symbols.h>
diff --git a/sysdeps/nios2/gccframe.h b/sysdeps/nios2/gccframe.h
index d031e90e88..783dc89650 100644
--- a/sysdeps/nios2/gccframe.h
+++ b/sysdeps/nios2/gccframe.h
@@ -1,5 +1,5 @@
/* Definition of object in frame unwind info. Nios II version.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define FIRST_PSEUDO_REGISTER 40
diff --git a/sysdeps/nios2/gmp-mparam.h b/sysdeps/nios2/gmp-mparam.h
index 8f9c107d1a..44e29ab004 100644
--- a/sysdeps/nios2/gmp-mparam.h
+++ b/sysdeps/nios2/gmp-mparam.h
@@ -1,6 +1,6 @@
/* gmp-mparam.h -- Compiler/machine parameter header file.
-Copyright (C) 2015-2018 Free Software Foundation, Inc.
+Copyright (C) 2015-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -16,7 +16,7 @@ License for more details.
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not, see
-<http://www.gnu.org/licenses/>. */
+<https://www.gnu.org/licenses/>. */
#include <sysdeps/generic/gmp-mparam.h>
diff --git a/sysdeps/nios2/jmpbuf-offsets.h b/sysdeps/nios2/jmpbuf-offsets.h
index 877b958acd..508dba8e03 100644
--- a/sysdeps/nios2/jmpbuf-offsets.h
+++ b/sysdeps/nios2/jmpbuf-offsets.h
@@ -1,5 +1,5 @@
/* Private macros for accessing __jmp_buf contents. Nios II version.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Save offsets within __jmp_buf. */
#define JB_R16 0
diff --git a/sysdeps/nios2/jmpbuf-unwind.h b/sysdeps/nios2/jmpbuf-unwind.h
index 18b7c6fa37..7f28400655 100644
--- a/sysdeps/nios2/jmpbuf-unwind.h
+++ b/sysdeps/nios2/jmpbuf-unwind.h
@@ -1,5 +1,5 @@
/* Examine __jmp_buf for unwinding frames. Nios II version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <setjmp.h>
#include <jmpbuf-offsets.h>
diff --git a/sysdeps/nios2/ldsodefs.h b/sysdeps/nios2/ldsodefs.h
index b68fb03fe3..e1f0afff6f 100644
--- a/sysdeps/nios2/ldsodefs.h
+++ b/sysdeps/nios2/ldsodefs.h
@@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _NIOS2_LDSODEFS_H
#define _NIOS2_LDSODEFS_H 1
diff --git a/sysdeps/nios2/libc-tls.c b/sysdeps/nios2/libc-tls.c
index d91af00a1e..2b7a9e72cc 100644
--- a/sysdeps/nios2/libc-tls.c
+++ b/sysdeps/nios2/libc-tls.c
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. Nios II version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <csu/libc-tls.c>
#include <dl-tls.h>
diff --git a/sysdeps/nios2/machine-gmon.h b/sysdeps/nios2/machine-gmon.h
index 5d0ff9d5d4..c8905e4c8a 100644
--- a/sysdeps/nios2/machine-gmon.h
+++ b/sysdeps/nios2/machine-gmon.h
@@ -1,5 +1,5 @@
/* Machine-dependent definitions for profiling support. Nios II version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/nios2/math-tests.h b/sysdeps/nios2/math-tests.h
deleted file mode 100644
index a1c2762786..0000000000
--- a/sysdeps/nios2/math-tests.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Configuration for math tests. Nios II version.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-/* Current Nios II soft-float does not support exceptions or rounding
- modes. */
-#define ROUNDING_TESTS_float(MODE) ((MODE) == FE_TONEAREST)
-#define ROUNDING_TESTS_double(MODE) ((MODE) == FE_TONEAREST)
-#define ROUNDING_TESTS_long_double(MODE) ((MODE) == FE_TONEAREST)
-#define EXCEPTION_TESTS_float 0
-#define EXCEPTION_TESTS_double 0
-#define EXCEPTION_TESTS_long_double 0
-
-#include_next <math-tests.h>
diff --git a/sysdeps/nios2/memusage.h b/sysdeps/nios2/memusage.h
index 459c811a4d..be2440ee97 100644
--- a/sysdeps/nios2/memusage.h
+++ b/sysdeps/nios2/memusage.h
@@ -1,5 +1,5 @@
/* Machine-specific definitions for memory usage profiling, Nios II version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define GETSP() ({ register uintptr_t stack_ptr asm ("%sp"); stack_ptr; })
diff --git a/sysdeps/nios2/nptl/Makefile b/sysdeps/nios2/nptl/Makefile
index bff5331346..396994b5e5 100644
--- a/sysdeps/nios2/nptl/Makefile
+++ b/sysdeps/nios2/nptl/Makefile
@@ -1,5 +1,5 @@
# NPTL makefile fragment for Nios II.
-# Copyright (C) 2005-2018 Free Software Foundation, Inc.
+# Copyright (C) 2005-2019 Free Software Foundation, Inc.
#
# This file is part of the GNU C Library.
#
@@ -15,7 +15,7 @@
#
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library. If not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
ifeq ($(subdir),csu)
gen-as-const-headers += tcb-offsets.sym
diff --git a/sysdeps/nios2/nptl/bits/pthreadtypes-arch.h b/sysdeps/nios2/nptl/bits/pthreadtypes-arch.h
index 0917cae580..28d1d84ad8 100644
--- a/sysdeps/nios2/nptl/bits/pthreadtypes-arch.h
+++ b/sysdeps/nios2/nptl/bits/pthreadtypes-arch.h
@@ -1,5 +1,5 @@
/* Machine-specific pthread type layouts. Nios II version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,12 +14,12 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_PTHREADTYPES_ARCH_H
#define _BITS_PTHREADTYPES_ARCH_H 1
-#include <endian.h>
+#include <bits/endian.h>
#define __SIZEOF_PTHREAD_ATTR_T 36
#define __SIZEOF_PTHREAD_MUTEX_T 24
@@ -31,42 +31,7 @@
#define __SIZEOF_PTHREAD_BARRIER_T 20
#define __SIZEOF_PTHREAD_BARRIERATTR_T 4
-/* Data structure for mutex handling. */
-#define __PTHREAD_COMPAT_PADDING_MID
-#define __PTHREAD_COMPAT_PADDING_END
-#define __PTHREAD_MUTEX_LOCK_ELISION 0
-#define __PTHREAD_MUTEX_NUSERS_AFTER_KIND 1
-#define __PTHREAD_MUTEX_USE_UNION 1
-
#define __LOCK_ALIGNMENT
#define __ONCE_ALIGNMENT
-struct __pthread_rwlock_arch_t
-{
- unsigned int __readers;
- unsigned int __writers;
- unsigned int __wrphase_futex;
- unsigned int __writers_futex;
- unsigned int __pad3;
- unsigned int __pad4;
-#if __BYTE_ORDER == __BIG_ENDIAN
- unsigned char __pad1;
- unsigned char __pad2;
- unsigned char __shared;
- /* FLAGS must stay at this position in the structure to maintain
- binary compatibility. */
- unsigned char __flags;
-#else
- /* FLAGS must stay at this position in the structure to maintain
- binary compatibility. */
- unsigned char __flags;
- unsigned char __shared;
- unsigned char __pad1;
- unsigned char __pad2;
-#endif
- int __cur_writer;
-};
-
-#define __PTHREAD_RWLOCK_ELISION_EXTRA 0
-
#endif /* bits/pthreadtypes.h */
diff --git a/sysdeps/nios2/nptl/bits/semaphore.h b/sysdeps/nios2/nptl/bits/semaphore.h
index 457b83e54f..68caffe9a8 100644
--- a/sysdeps/nios2/nptl/bits/semaphore.h
+++ b/sysdeps/nios2/nptl/bits/semaphore.h
@@ -1,5 +1,5 @@
/* Machine-specific POSIX semaphore type layouts. Nios II version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SEMAPHORE_H
# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
diff --git a/sysdeps/nios2/nptl/pthread-offsets.h b/sysdeps/nios2/nptl/pthread-offsets.h
deleted file mode 100644
index 9617354dc7..0000000000
--- a/sysdeps/nios2/nptl/pthread-offsets.h
+++ /dev/null
@@ -1,5 +0,0 @@
-#define __PTHREAD_MUTEX_NUSERS_OFFSET 16
-#define __PTHREAD_MUTEX_KIND_OFFSET 12
-#define __PTHREAD_MUTEX_SPINS_OFFSET 20
-#define __PTHREAD_MUTEX_ELISION_OFFSET 22
-#define __PTHREAD_MUTEX_LIST_OFFSET 20
diff --git a/sysdeps/nios2/nptl/pthreaddef.h b/sysdeps/nios2/nptl/pthreaddef.h
index b70d1d17b3..4064ffe3f3 100644
--- a/sysdeps/nios2/nptl/pthreaddef.h
+++ b/sysdeps/nios2/nptl/pthreaddef.h
@@ -1,5 +1,5 @@
/* pthread machine parameter definitions, Nios II version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Default stack size. */
#define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024)
diff --git a/sysdeps/nios2/nptl/tls.h b/sysdeps/nios2/nptl/tls.h
index 6fedb2a556..b86c758757 100644
--- a/sysdeps/nios2/nptl/tls.h
+++ b/sysdeps/nios2/nptl/tls.h
@@ -1,5 +1,5 @@
/* Definition for thread-local data handling. NPTL/Nios II version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _TLS_H
#define _TLS_H 1
diff --git a/sysdeps/nios2/setjmp.S b/sysdeps/nios2/setjmp.S
index 5e48e68528..e81cb14fb4 100644
--- a/sysdeps/nios2/setjmp.S
+++ b/sysdeps/nios2/setjmp.S
@@ -1,5 +1,5 @@
/* setjmp for Nios II.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <jmpbuf-offsets.h>
diff --git a/sysdeps/nios2/sotruss-lib.c b/sysdeps/nios2/sotruss-lib.c
index 7d8261ff2d..353b716c98 100644
--- a/sysdeps/nios2/sotruss-lib.c
+++ b/sysdeps/nios2/sotruss-lib.c
@@ -1,5 +1,5 @@
/* Override generic sotruss-lib.c to define actual functions for Nios II.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define HAVE_ARCH_PLTENTER
#define HAVE_ARCH_PLTEXIT
diff --git a/sysdeps/nios2/stackinfo.h b/sysdeps/nios2/stackinfo.h
index 341f7f6f86..1762d1bbf6 100644
--- a/sysdeps/nios2/stackinfo.h
+++ b/sysdeps/nios2/stackinfo.h
@@ -1,5 +1,5 @@
/* Stack environment definitions for Nios II.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file contains a bit of information about the stack allocation
of the processor. */
diff --git a/sysdeps/nios2/start.S b/sysdeps/nios2/start.S
index fa224ef75c..37b6873c18 100644
--- a/sysdeps/nios2/start.S
+++ b/sysdeps/nios2/start.S
@@ -1,5 +1,5 @@
/* Startup code for Nios II
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This is the canonical entry point, usually the first thing in the text
segment.
diff --git a/sysdeps/nios2/sysdep.h b/sysdeps/nios2/sysdep.h
index 38ea9456af..a9800b3ab4 100644
--- a/sysdeps/nios2/sysdep.h
+++ b/sysdeps/nios2/sysdep.h
@@ -1,5 +1,5 @@
/* Assembler macros for Nios II.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/generic/sysdep.h>
diff --git a/sysdeps/nios2/tst-audit.h b/sysdeps/nios2/tst-audit.h
index ac7e8943fd..b09dc527e2 100644
--- a/sysdeps/nios2/tst-audit.h
+++ b/sysdeps/nios2/tst-audit.h
@@ -1,5 +1,5 @@
/* Definitions for testing PLT entry/exit auditing. Nios II version.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define pltenter la_nios2_gnu_pltenter
#define pltexit la_nios2_gnu_pltexit
diff --git a/sysdeps/nptl/Makeconfig b/sysdeps/nptl/Makeconfig
index ce8998bbf5..e1734d6eac 100644
--- a/sysdeps/nptl/Makeconfig
+++ b/sysdeps/nptl/Makeconfig
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2018 Free Software Foundation, Inc.
+# Copyright (C) 2002-2019 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# Contributed by Ulrich Drepper <drepper@redhat.com>, 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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
# Makeconfig fragment for NPTL.
# This gets included at the end of the main glibc Makeconfig.
diff --git a/sysdeps/nptl/Makefile b/sysdeps/nptl/Makefile
index 6b87b82759..fbb9800a5c 100644
--- a/sysdeps/nptl/Makefile
+++ b/sysdeps/nptl/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2018 Free Software Foundation, Inc.
+# Copyright (C) 2002-2019 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# Contributed by Ulrich Drepper <drepper@redhat.com>, 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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
ifeq ($(subdir),nptl)
libpthread-sysdep_routines += errno-loc
diff --git a/sysdeps/nptl/aio_misc.h b/sysdeps/nptl/aio_misc.h
index 206d8e193d..74540aef75 100644
--- a/sysdeps/nptl/aio_misc.h
+++ b/sysdeps/nptl/aio_misc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2006-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* We define a special synchronization primitive for AIO. POSIX
conditional variables would be ideal but the pthread_cond_*wait
@@ -41,15 +41,15 @@
{ \
pthread_mutex_unlock (&__aio_requests_mutex); \
\
- int oldtype; \
- if (cancel) \
- oldtype = LIBC_CANCEL_ASYNC (); \
- \
int status; \
do \
{ \
- status = futex_reltimed_wait ((unsigned int *) futexaddr, oldval, \
- timeout, FUTEX_PRIVATE); \
+ if (cancel) \
+ status = futex_reltimed_wait_cancelable ( \
+ (unsigned int *) futexaddr, oldval, timeout, FUTEX_PRIVATE); \
+ else \
+ status = futex_reltimed_wait ((unsigned int *) futexaddr, \
+ oldval, timeout, FUTEX_PRIVATE); \
if (status != EAGAIN) \
break; \
\
@@ -57,9 +57,6 @@
} \
while (oldval != 0); \
\
- if (cancel) \
- LIBC_CANCEL_RESET (oldtype); \
- \
if (status == EINTR) \
result = EINTR; \
else if (status == ETIMEDOUT) \
diff --git a/sysdeps/nptl/allocrtsig.c b/sysdeps/nptl/allocrtsig.c
index 2039d62a83..3f62bf40e7 100644
--- a/sysdeps/nptl/allocrtsig.c
+++ b/sysdeps/nptl/allocrtsig.c
@@ -1,5 +1,5 @@
/* Handle real-time signal allocation. NPTL version.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,37 +14,18 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <signal.h>
#include <nptl/pthreadP.h>
-/* Up to three special signals might be used privately by libpthread.
- Figure out how many unique ones are actually used. */
-
-#ifdef SIGCANCEL
-# define SIGCANCEL_CONSUMES 1
-#else
-# define SIGCANCEL_CONSUMES 0
-#endif
-
-#if defined SIGTIMER && (!defined SIGCANCEL || SIGTIMER != SIGCANCEL)
-# define SIGTIMER_CONSUMES 1
-#else
-# define SIGTIMER_CONSUMES 0
-#endif
-
-#if (defined SIGSETXID \
- && (!defined SIGCANCEL || SIGSETXID != SIGCANCEL) \
- && (!defined SIGTIMER || SIGSETXID != SIGTIMER))
-# define SIGSETXID_CONSUMES 1
-#else
-# define SIGSETXID_CONSUMES 0
+#if SIGTIMER != SIGCANCEL
+# error "SIGTIMER and SIGCANCEL must be the same"
#endif
/* This tells the generic code (included below) how many signal
- numbers need to be reserved for libpthread's private uses. */
-#define RESERVED_SIGRT \
- (SIGCANCEL_CONSUMES + SIGTIMER_CONSUMES + SIGSETXID_CONSUMES)
+ numbers need to be reserved for libpthread's private uses
+ (SIGCANCEL and SIGSETXID). */
+#define RESERVED_SIGRT 2
#include <signal/allocrtsig.c>
diff --git a/sysdeps/nptl/bits/pthreadtypes-arch.h b/sysdeps/nptl/bits/pthreadtypes-arch.h
new file mode 100644
index 0000000000..373dd2bfc8
--- /dev/null
+++ b/sysdeps/nptl/bits/pthreadtypes-arch.h
@@ -0,0 +1,45 @@
+/* Machine-specific pthread type layouts. Generic version.
+ 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; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _BITS_PTHREADTYPES_ARCH_H
+#define _BITS_PTHREADTYPES_ARCH_H 1
+
+#include <bits/wordsize.h>
+
+#if __WORDSIZE == 64
+# define __SIZEOF_PTHREAD_ATTR_T 56
+# define __SIZEOF_PTHREAD_MUTEX_T 40
+# define __SIZEOF_PTHREAD_RWLOCK_T 56
+# define __SIZEOF_PTHREAD_BARRIER_T 32
+#else
+# define __SIZEOF_PTHREAD_ATTR_T 36
+# define __SIZEOF_PTHREAD_MUTEX_T 24
+# define __SIZEOF_PTHREAD_RWLOCK_T 32
+# define __SIZEOF_PTHREAD_BARRIER_T 20
+#endif
+#define __SIZEOF_PTHREAD_MUTEXATTR_T 4
+#define __SIZEOF_PTHREAD_RWLOCKATTR_T 8
+#define __SIZEOF_PTHREAD_BARRIERATTR_T 4
+#define __SIZEOF_PTHREAD_COND_T 48
+#define __SIZEOF_PTHREAD_CONDATTR_T 4
+
+#define __LOCK_ALIGNMENT
+#define __ONCE_ALIGNMENT
+
+#endif /* bits/pthreadtypes.h */
diff --git a/sysdeps/nptl/bits/pthreadtypes.h b/sysdeps/nptl/bits/pthreadtypes.h
index 70ce0a0448..d993b7d6ca 100644
--- a/sysdeps/nptl/bits/pthreadtypes.h
+++ b/sysdeps/nptl/bits/pthreadtypes.h
@@ -1,5 +1,5 @@
/* Declaration of common pthread types for all architectures.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_PTHREADTYPES_COMMON_H
# define _BITS_PTHREADTYPES_COMMON_H 1
diff --git a/sysdeps/nptl/bits/struct_mutex.h b/sysdeps/nptl/bits/struct_mutex.h
new file mode 100644
index 0000000000..24d42c44dc
--- /dev/null
+++ b/sysdeps/nptl/bits/struct_mutex.h
@@ -0,0 +1,84 @@
+/* Default mutex implementation struct definitions.
+ 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; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _THREAD_MUTEX_INTERNAL_H
+#define _THREAD_MUTEX_INTERNAL_H 1
+
+/* Generic struct for both POSIX and C11 mutexes. New ports are expected
+ to use the default layout, however architecture can redefine it to
+ add arch-specific extension (such as lock-elision). The struct have
+ a size of 32 bytes on LP32 and 40 bytes on LP64 architectures. */
+
+struct __pthread_mutex_s
+{
+ int __lock __LOCK_ALIGNMENT;
+ unsigned int __count;
+ int __owner;
+#if __WORDSIZE == 64
+ unsigned int __nusers;
+#endif
+ /* KIND must stay at this position in the structure to maintain
+ binary compatibility with static initializers.
+
+ Concurrency notes:
+ The __kind of a mutex is initialized either by the static
+ PTHREAD_MUTEX_INITIALIZER or by a call to pthread_mutex_init.
+
+ After a mutex has been initialized, the __kind of a mutex is usually not
+ changed. BUT it can be set to -1 in pthread_mutex_destroy or elision can
+ be enabled. This is done concurrently in the pthread_mutex_*lock
+ functions by using the macro FORCE_ELISION. This macro is only defined
+ for architectures which supports lock elision.
+
+ For elision, there are the flags PTHREAD_MUTEX_ELISION_NP and
+ PTHREAD_MUTEX_NO_ELISION_NP which can be set in addition to the already
+ set type of a mutex. Before a mutex is initialized, only
+ PTHREAD_MUTEX_NO_ELISION_NP can be set with pthread_mutexattr_settype.
+
+ After a mutex has been initialized, the functions pthread_mutex_*lock can
+ enable elision - if the mutex-type and the machine supports it - by
+ setting the flag PTHREAD_MUTEX_ELISION_NP. This is done concurrently.
+ Afterwards the lock / unlock functions are using specific elision
+ code-paths. */
+ int __kind;
+#if __WORDSIZE != 64
+ unsigned int __nusers;
+#endif
+#if __WORDSIZE == 64
+ int __spins;
+ __pthread_list_t __list;
+# define __PTHREAD_MUTEX_HAVE_PREV 1
+#else
+ __extension__ union
+ {
+ int __spins;
+ __pthread_slist_t __list;
+ };
+# define __PTHREAD_MUTEX_HAVE_PREV 0
+#endif
+};
+
+#if __PTHREAD_MUTEX_HAVE_PREV == 1
+# define __PTHREAD_MUTEX_INITIALIZER(__kind) \
+ 0, 0, 0, 0, __kind, 0, { 0, 0 }
+#else
+# define __PTHREAD_MUTEX_INITIALIZER(__kind) \
+ 0, 0, 0, __kind, 0, { 0 }
+#endif
+
+#endif
diff --git a/sysdeps/nptl/bits/struct_rwlock.h b/sysdeps/nptl/bits/struct_rwlock.h
new file mode 100644
index 0000000000..bb63028a46
--- /dev/null
+++ b/sysdeps/nptl/bits/struct_rwlock.h
@@ -0,0 +1,61 @@
+/* Default read-write lock implementation struct definitions.
+ 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; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef __RWLOCK_INTERNAL_H
+#define __RWLOCK_INTERNAL_H
+
+#include <bits/endian.h>
+
+/* Generic struct for both POSIX read-write lock. New ports are expected
+ to use the default layout, however archictetures can redefine it to add
+ arch-specific extensions (such as lock-elision). The struct have a size
+ of 32 bytes on both LP32 and LP64 architectures. */
+
+struct __pthread_rwlock_arch_t
+{
+ unsigned int __readers;
+ unsigned int __writers;
+ unsigned int __wrphase_futex;
+ unsigned int __writers_futex;
+ unsigned int __pad3;
+ unsigned int __pad4;
+ /* FLAGS must stay at its position in the structure to maintain
+ binary compatibility. */
+#if __BYTE_ORDER == __BIG_ENDIAN
+ unsigned char __pad1;
+ unsigned char __pad2;
+ unsigned char __shared;
+ unsigned char __flags;
+#else
+ unsigned char __flags;
+ unsigned char __shared;
+ unsigned char __pad1;
+ unsigned char __pad2;
+#endif
+ int __cur_writer;
+};
+
+#if __BYTE_ORDER == __BIG_ENDIAN
+# define __PTHREAD_RWLOCK_INITIALIZER(__flags) \
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, __flags, 0
+#else
+# define __PTHREAD_RWLOCK_INITIALIZER(__flags) \
+ 0, 0, 0, 0, 0, 0, __flags, 0, 0, 0, 0
+#endif
+
+#endif
diff --git a/sysdeps/nptl/bits/thread-shared-types.h b/sysdeps/nptl/bits/thread-shared-types.h
index 1e2092a05d..a409fa78a8 100644
--- a/sysdeps/nptl/bits/thread-shared-types.h
+++ b/sysdeps/nptl/bits/thread-shared-types.h
@@ -1,5 +1,5 @@
/* Common threading primitives definitions for both POSIX and C11.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _THREAD_SHARED_TYPES_H
#define _THREAD_SHARED_TYPES_H 1
@@ -32,36 +32,6 @@
__SIZEOF_PTHREAD_BARRIER_T - size of pthread_barrier_t.
__SIZEOF_PTHREAD_BARRIERATTR_T - size of pthread_barrierattr_t.
- Also, the following macros must be define for internal pthread_mutex_t
- struct definitions (struct __pthread_mutex_s):
-
- __PTHREAD_COMPAT_PADDING_MID - any additional members after 'kind'
- and before '__spin' (for 64 bits) or
- '__nusers' (for 32 bits).
- __PTHREAD_COMPAT_PADDING_END - any additional members at the end of
- the internal structure.
- __PTHREAD_MUTEX_LOCK_ELISION - 1 if the architecture supports lock
- elision or 0 otherwise.
- __PTHREAD_MUTEX_NUSERS_AFTER_KIND - control where to put __nusers. The
- preferred value for new architectures
- is 0.
- __PTHREAD_MUTEX_USE_UNION - control whether internal __spins and
- __list will be place inside a union for
- linuxthreads compatibility.
- The preferred value for new architectures
- is 0.
-
- For a new port the preferred values for the required defines are:
-
- #define __PTHREAD_COMPAT_PADDING_MID
- #define __PTHREAD_COMPAT_PADDING_END
- #define __PTHREAD_MUTEX_LOCK_ELISION 0
- #define __PTHREAD_MUTEX_NUSERS_AFTER_KIND 0
- #define __PTHREAD_MUTEX_USE_UNION 0
-
- __PTHREAD_MUTEX_LOCK_ELISION can be set to 1 if the hardware plans to
- eventually support lock elision using transactional memory.
-
The additional macro defines any constraint for the lock alignment
inside the thread structures:
@@ -69,81 +39,52 @@
Same idea but for the once locking primitive:
- __ONCE_ALIGNMENT - for pthread_once_t/once_flag definition.
+ __ONCE_ALIGNMENT - for pthread_once_t/once_flag definition. */
- And finally the internal pthread_rwlock_t (struct __pthread_rwlock_arch_t)
- must be defined.
- */
#include <bits/pthreadtypes-arch.h>
+
/* Common definition of pthread_mutex_t. */
-#if !__PTHREAD_MUTEX_USE_UNION
typedef struct __pthread_internal_list
{
struct __pthread_internal_list *__prev;
struct __pthread_internal_list *__next;
} __pthread_list_t;
-#else
+
typedef struct __pthread_internal_slist
{
struct __pthread_internal_slist *__next;
} __pthread_slist_t;
-#endif
-
-/* Lock elision support. */
-#if __PTHREAD_MUTEX_LOCK_ELISION
-# if !__PTHREAD_MUTEX_USE_UNION
-# define __PTHREAD_SPINS_DATA \
- short __spins; \
- short __elision
-# define __PTHREAD_SPINS 0, 0
-# else
-# define __PTHREAD_SPINS_DATA \
- struct \
- { \
- short __espins; \
- short __eelision; \
- } __elision_data
-# define __PTHREAD_SPINS { 0, 0 }
-# define __spins __elision_data.__espins
-# define __elision __elision_data.__eelision
-# endif
-#else
-# define __PTHREAD_SPINS_DATA int __spins
-/* Mutex __spins initializer used by PTHREAD_MUTEX_INITIALIZER. */
-# define __PTHREAD_SPINS 0
-#endif
-
-struct __pthread_mutex_s
-{
- int __lock __LOCK_ALIGNMENT;
- unsigned int __count;
- int __owner;
-#if !__PTHREAD_MUTEX_NUSERS_AFTER_KIND
- unsigned int __nusers;
-#endif
- /* KIND must stay at this position in the structure to maintain
- binary compatibility with static initializers. */
- int __kind;
- __PTHREAD_COMPAT_PADDING_MID
-#if __PTHREAD_MUTEX_NUSERS_AFTER_KIND
- unsigned int __nusers;
-#endif
-#if !__PTHREAD_MUTEX_USE_UNION
- __PTHREAD_SPINS_DATA;
- __pthread_list_t __list;
-# define __PTHREAD_MUTEX_HAVE_PREV 1
-#else
- __extension__ union
- {
- __PTHREAD_SPINS_DATA;
- __pthread_slist_t __list;
- };
-# define __PTHREAD_MUTEX_HAVE_PREV 0
-#endif
- __PTHREAD_COMPAT_PADDING_END
-};
+
+/* Arch-specific mutex definitions. A generic implementation is provided
+ by sysdeps/nptl/bits/struct_mutex.h. If required, an architecture
+ can override it by defining:
+
+ 1. struct __pthread_mutex_s (used on both pthread_mutex_t and mtx_t
+ definition). It should contains at least the internal members
+ defined in the generic version.
+
+ 2. __LOCK_ALIGNMENT for any extra attribute for internal lock used with
+ atomic operations.
+
+ 3. The macro __PTHREAD_MUTEX_INITIALIZER used for static initialization.
+ It should initialize the mutex internal flag. */
+
+#include <bits/struct_mutex.h>
+
+/* Arch-sepecific read-write lock definitions. A generic implementation is
+ provided by struct_rwlock.h. If required, an architecture can override it
+ by defining:
+
+ 1. struct __pthread_rwlock_arch_t (used on pthread_rwlock_t definition).
+ It should contain at least the internal members defined in the
+ generic version.
+
+ 2. The macro __PTHREAD_RWLOCK_INITIALIZER used for static initialization.
+ It should initialize the rwlock internal type. */
+
+#include <bits/struct_rwlock.h>
/* Common definition of pthread_cond_t. */
diff --git a/sysdeps/nptl/dl-tunables.list b/sysdeps/nptl/dl-tunables.list
new file mode 100644
index 0000000000..ceed0afd6b
--- /dev/null
+++ b/sysdeps/nptl/dl-tunables.list
@@ -0,0 +1,27 @@
+# Copyright (C) 2018-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
+# <https://www.gnu.org/licenses/>.
+
+glibc {
+ pthread {
+ mutex_spin_count {
+ type: INT_32
+ minval: 0
+ maxval: 32767
+ default: 100
+ }
+ }
+}
diff --git a/sysdeps/nptl/fork.c b/sysdeps/nptl/fork.c
index ec56a827eb..bf8a755f32 100644
--- a/sysdeps/nptl/fork.c
+++ b/sysdeps/nptl/fork.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <stdlib.h>
@@ -55,7 +55,7 @@ __libc_fork (void)
but our current fork implementation is not. */
bool multiple_threads = THREAD_GETMEM (THREAD_SELF, header.multiple_threads);
- __run_fork_handlers (atfork_run_prepare);
+ __run_fork_handlers (atfork_run_prepare, multiple_threads);
/* If we are not running multiple threads, we do not have to
preserve lock state. If fork runs from a signal handler, only
@@ -83,14 +83,6 @@ __libc_fork (void)
if (__fork_generation_pointer != NULL)
*__fork_generation_pointer += __PTHREAD_ONCE_FORK_GEN_INCR;
-#if HP_TIMING_AVAIL
- /* The CPU clock of the thread and process have to be set to zero. */
- hp_timing_t now;
- HP_TIMING_NOW (now);
- THREAD_SETMEM (self, cpuclock_offset, now);
- GL(dl_cpuclock_offset) = now;
-#endif
-
#ifdef __NR_set_robust_list
/* Initialize the robust mutex list setting in the kernel which has
been reset during the fork. We do not check for errors because if
@@ -134,7 +126,7 @@ __libc_fork (void)
__rtld_lock_initialize (GL(dl_load_lock));
/* Run the handlers registered for the child. */
- __run_fork_handlers (atfork_run_child);
+ __run_fork_handlers (atfork_run_child, multiple_threads);
}
else
{
@@ -149,7 +141,7 @@ __libc_fork (void)
}
/* Run the handlers registered for the parent. */
- __run_fork_handlers (atfork_run_parent);
+ __run_fork_handlers (atfork_run_parent, multiple_threads);
}
return pid;
diff --git a/sysdeps/nptl/fork.h b/sysdeps/nptl/fork.h
index 6eab61c121..536777f4d0 100644
--- a/sysdeps/nptl/fork.h
+++ b/sysdeps/nptl/fork.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <lowlevellock.h>
@@ -52,9 +52,11 @@ enum __run_fork_handler_type
- atfork_run_child: run all the CHILD_HANDLER and unlocks the internal
lock.
- atfork_run_parent: run all the PARENT_HANDLER and unlocks the internal
- lock. */
-extern void __run_fork_handlers (enum __run_fork_handler_type who)
- attribute_hidden;
+ lock.
+
+ Perform locking only if DO_LOCKING. */
+extern void __run_fork_handlers (enum __run_fork_handler_type who,
+ _Bool do_locking) attribute_hidden;
/* C library side function to register new fork handlers. */
extern int __register_atfork (void (*__prepare) (void),
diff --git a/sysdeps/nptl/futex-internal.h b/sysdeps/nptl/futex-internal.h
index 1a5624789d..4feb772f14 100644
--- a/sysdeps/nptl/futex-internal.h
+++ b/sysdeps/nptl/futex-internal.h
@@ -1,6 +1,6 @@
/* futex operations for glibc-internal use. Stub version; do not include
this file directly.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef STUB_FUTEX_INTERNAL_H
#define STUB_FUTEX_INTERNAL_H
@@ -49,10 +49,9 @@
futex word.
Both absolute and relative timeouts can be used. An absolute timeout
- expires when the given specific point in time on the CLOCK_REALTIME clock
+ expires when the given specific point in time on the specified clock
passes, or when it already has passed. A relative timeout expires when
- the given duration of time on the CLOCK_MONOTONIC clock passes. Relative
- timeouts may be imprecise (see futex_supports_exact_relative_timeouts).
+ the given duration of time on the CLOCK_MONOTONIC clock passes.
Due to POSIX requirements on when synchronization data structures such
as mutexes or semaphores can be destroyed and due to the futex design
@@ -75,17 +74,35 @@
# error FUTEX_PRIVATE must be equal to 0
#endif
+/* Calls __libc_fatal with an error message. Convenience function for
+ concrete implementations of the futex interface. */
+static __always_inline __attribute__ ((__noreturn__)) void
+futex_fatal_error (void)
+{
+ __libc_fatal ("The futex facility returned an unexpected error code.\n");
+}
+
+
+/* The Linux kernel treats provides absolute timeouts based on the
+ CLOCK_REALTIME clock and relative timeouts measured against the
+ CLOCK_MONOTONIC clock.
+
+ We expect a Linux kernel version of 2.6.22 or more recent (since this
+ version, EINTR is not returned on spurious wake-ups anymore). */
+
/* Returns EINVAL if PSHARED is neither PTHREAD_PROCESS_PRIVATE nor
PTHREAD_PROCESS_SHARED; otherwise, returns 0 if PSHARED is supported, and
ENOTSUP if not. */
static __always_inline int
-futex_supports_pshared (int pshared);
-
-/* Returns true if relative timeouts are robust to concurrent changes to the
- system clock. If this returns false, relative timeouts can still be used
- but might be effectively longer or shorter than requested. */
-static __always_inline bool
-futex_supports_exact_relative_timeouts (void);
+futex_supports_pshared (int pshared)
+{
+ if (__glibc_likely (pshared == PTHREAD_PROCESS_PRIVATE))
+ return 0;
+ else if (pshared == PTHREAD_PROCESS_SHARED)
+ return 0;
+ else
+ return EINVAL;
+}
/* Atomically wrt other futex operations on the same futex, this blocks iff
the value *FUTEX_WORD matches the expected value. This is
@@ -119,7 +136,27 @@ futex_supports_exact_relative_timeouts (void);
a futex_wait call when synchronizing similar to Dekker synchronization.
However, we make no such guarantee here. */
static __always_inline int
-futex_wait (unsigned int *futex_word, unsigned int expected, int private);
+futex_wait (unsigned int *futex_word, unsigned int expected, int private)
+{
+ int err = lll_futex_timed_wait (futex_word, expected, NULL, private);
+ switch (err)
+ {
+ case 0:
+ case -EAGAIN:
+ case -EINTR:
+ return -err;
+
+ case -ETIMEDOUT: /* Cannot have happened as we provided no timeout. */
+ case -EFAULT: /* Must have been caused by a glibc or application bug. */
+ case -EINVAL: /* Either due to wrong alignment or due to the timeout not
+ being normalized. Must have been caused by a glibc or
+ application bug. */
+ case -ENOSYS: /* Must have been caused by a glibc bug. */
+ /* No other errors are documented at this time. */
+ default:
+ futex_fatal_error ();
+ }
+}
/* Like futex_wait but does not provide any indication why we stopped waiting.
Thus, when this function returns, you have to always check FUTEX_WORD to
@@ -139,7 +176,30 @@ futex_wait_simple (unsigned int *futex_word, unsigned int expected,
/* Like futex_wait but is a POSIX cancellation point. */
static __always_inline int
futex_wait_cancelable (unsigned int *futex_word, unsigned int expected,
- int private);
+ int private)
+{
+ int oldtype;
+ oldtype = __pthread_enable_asynccancel ();
+ int err = lll_futex_timed_wait (futex_word, expected, NULL, private);
+ __pthread_disable_asynccancel (oldtype);
+ switch (err)
+ {
+ case 0:
+ case -EAGAIN:
+ case -EINTR:
+ return -err;
+
+ case -ETIMEDOUT: /* Cannot have happened as we provided no timeout. */
+ case -EFAULT: /* Must have been caused by a glibc or application bug. */
+ case -EINVAL: /* Either due to wrong alignment or due to the timeout not
+ being normalized. Must have been caused by a glibc or
+ application bug. */
+ case -ENOSYS: /* Must have been caused by a glibc bug. */
+ /* No other errors are documented at this time. */
+ default:
+ futex_fatal_error ();
+ }
+}
/* Like futex_wait, but will eventually time out (i.e., stop being
blocked) after the duration of time provided (i.e., RELTIME) has
@@ -151,25 +211,134 @@ futex_wait_cancelable (unsigned int *futex_word, unsigned int expected,
*/
static __always_inline int
futex_reltimed_wait (unsigned int* futex_word, unsigned int expected,
- const struct timespec* reltime, int private);
+ const struct timespec* reltime, int private)
+{
+ int err = lll_futex_timed_wait (futex_word, expected, reltime, private);
+ switch (err)
+ {
+ case 0:
+ case -EAGAIN:
+ case -EINTR:
+ case -ETIMEDOUT:
+ return -err;
+
+ case -EFAULT: /* Must have been caused by a glibc or application bug. */
+ case -EINVAL: /* Either due to wrong alignment or due to the timeout not
+ being normalized. Must have been caused by a glibc or
+ application bug. */
+ case -ENOSYS: /* Must have been caused by a glibc bug. */
+ /* No other errors are documented at this time. */
+ default:
+ futex_fatal_error ();
+ }
+}
/* Like futex_reltimed_wait but is a POSIX cancellation point. */
static __always_inline int
futex_reltimed_wait_cancelable (unsigned int* futex_word,
unsigned int expected,
- const struct timespec* reltime, int private);
+ const struct timespec* reltime, int private)
+{
+ int oldtype;
+ oldtype = LIBC_CANCEL_ASYNC ();
+ int err = lll_futex_timed_wait (futex_word, expected, reltime, private);
+ LIBC_CANCEL_RESET (oldtype);
+ switch (err)
+ {
+ case 0:
+ case -EAGAIN:
+ case -EINTR:
+ case -ETIMEDOUT:
+ return -err;
+
+ case -EFAULT: /* Must have been caused by a glibc or application bug. */
+ case -EINVAL: /* Either due to wrong alignment or due to the timeout not
+ being normalized. Must have been caused by a glibc or
+ application bug. */
+ case -ENOSYS: /* Must have been caused by a glibc bug. */
+ /* No other errors are documented at this time. */
+ default:
+ futex_fatal_error ();
+ }
+}
+
+/* Check whether the specified clockid is supported by
+ futex_abstimed_wait and futex_abstimed_wait_cancelable. */
+static __always_inline int
+futex_abstimed_supported_clockid (clockid_t clockid)
+{
+ return lll_futex_supported_clockid (clockid);
+}
/* Like futex_reltimed_wait, but the provided timeout (ABSTIME) is an
absolute point in time; a call will time out after this point in time. */
static __always_inline int
futex_abstimed_wait (unsigned int* futex_word, unsigned int expected,
- const struct timespec* abstime, int private);
+ clockid_t clockid,
+ const struct timespec* abstime, int private)
+{
+ /* Work around the fact that the kernel rejects negative timeout values
+ despite them being valid. */
+ if (__glibc_unlikely ((abstime != NULL) && (abstime->tv_sec < 0)))
+ return ETIMEDOUT;
+ int err = lll_futex_clock_wait_bitset (futex_word, expected,
+ clockid, abstime,
+ private);
+ switch (err)
+ {
+ case 0:
+ case -EAGAIN:
+ case -EINTR:
+ case -ETIMEDOUT:
+ return -err;
+
+ case -EFAULT: /* Must have been caused by a glibc or application bug. */
+ case -EINVAL: /* Either due to wrong alignment, unsupported
+ clockid or due to the timeout not being
+ normalized. Must have been caused by a glibc or
+ application bug. */
+ case -ENOSYS: /* Must have been caused by a glibc bug. */
+ /* No other errors are documented at this time. */
+ default:
+ futex_fatal_error ();
+ }
+}
/* Like futex_reltimed_wait but is a POSIX cancellation point. */
static __always_inline int
futex_abstimed_wait_cancelable (unsigned int* futex_word,
unsigned int expected,
- const struct timespec* abstime, int private);
+ clockid_t clockid,
+ const struct timespec* abstime, int private)
+{
+ /* Work around the fact that the kernel rejects negative timeout values
+ despite them being valid. */
+ if (__glibc_unlikely ((abstime != NULL) && (abstime->tv_sec < 0)))
+ return ETIMEDOUT;
+ int oldtype;
+ oldtype = __pthread_enable_asynccancel ();
+ int err = lll_futex_clock_wait_bitset (futex_word, expected,
+ clockid, abstime,
+ private);
+ __pthread_disable_asynccancel (oldtype);
+ switch (err)
+ {
+ case 0:
+ case -EAGAIN:
+ case -EINTR:
+ case -ETIMEDOUT:
+ return -err;
+
+ case -EFAULT: /* Must have been caused by a glibc or application bug. */
+ case -EINVAL: /* Either due to wrong alignment or due to the timeout not
+ being normalized. Must have been caused by a glibc or
+ application bug. */
+ case -ENOSYS: /* Must have been caused by a glibc bug. */
+ /* No other errors are documented at this time. */
+ default:
+ futex_fatal_error ();
+ }
+}
/* Atomically wrt other futex operations on the same futex, this unblocks the
specified number of processes, or all processes blocked on this futex if
@@ -190,14 +359,112 @@ futex_abstimed_wait_cancelable (unsigned int* futex_word,
object destruction (see above); therefore, we must not report or abort
on most errors. */
static __always_inline void
-futex_wake (unsigned int* futex_word, int processes_to_wake, int private);
+futex_wake (unsigned int* futex_word, int processes_to_wake, int private)
+{
+ int res = lll_futex_wake (futex_word, processes_to_wake, private);
+ /* No error. Ignore the number of woken processes. */
+ if (res >= 0)
+ return;
+ switch (res)
+ {
+ case -EFAULT: /* Could have happened due to memory reuse. */
+ case -EINVAL: /* Could be either due to incorrect alignment (a bug in
+ glibc or in the application) or due to memory being
+ reused for a PI futex. We cannot distinguish between the
+ two causes, and one of them is correct use, so we do not
+ act in this case. */
+ return;
+ case -ENOSYS: /* Must have been caused by a glibc bug. */
+ /* No other errors are documented at this time. */
+ default:
+ futex_fatal_error ();
+ }
+}
-/* Calls __libc_fatal with an error message. Convenience function for
- concrete implementations of the futex interface. */
-static __always_inline __attribute__ ((__noreturn__)) void
-futex_fatal_error (void)
+/* The operation checks the value of the futex, if the value is 0, then
+ it is atomically set to the caller's thread ID. If the futex value is
+ nonzero, it is atomically sets the FUTEX_WAITERS bit, which signals wrt
+ other futex owner that it cannot unlock the futex in user space by
+ atomically by setting its value to 0.
+
+ If more than one wait operations is issued, the enqueueing of the waiters
+ are done in descending priority order.
+
+ The ABSTIME arguments provides an absolute timeout (measured against the
+ CLOCK_REALTIME clock). If TIMEOUT is NULL, the operation will block
+ indefinitely.
+
+ Returns:
+
+ - 0 if woken by a PI unlock operation or spuriously.
+ - EAGAIN if the futex owner thread ID is about to exit, but has not yet
+ handled the state cleanup.
+ - EDEADLK if the futex is already locked by the caller.
+ - ESRCH if the thread ID int he futex does not exist.
+ - EINVAL is the state is corrupted or if there is a waiter on the
+ futex.
+ - ETIMEDOUT if the ABSTIME expires.
+*/
+static __always_inline int
+futex_lock_pi (unsigned int *futex_word, const struct timespec *abstime,
+ int private)
{
- __libc_fatal ("The futex facility returned an unexpected error code.");
+ int err = lll_futex_timed_lock_pi (futex_word, abstime, private);
+ switch (err)
+ {
+ case 0:
+ case -EAGAIN:
+ case -EINTR:
+ case -ETIMEDOUT:
+ case -ESRCH:
+ case -EDEADLK:
+ case -EINVAL: /* This indicates either state corruption or that the kernel
+ found a waiter on futex address which is waiting via
+ FUTEX_WAIT or FUTEX_WAIT_BITSET. This is reported on
+ some futex_lock_pi usage (pthread_mutex_timedlock for
+ instance). */
+ return -err;
+
+ case -EFAULT: /* Must have been caused by a glibc or application bug. */
+ case -ENOSYS: /* Must have been caused by a glibc bug. */
+ /* No other errors are documented at this time. */
+ default:
+ futex_fatal_error ();
+ }
+}
+
+/* Wakes the top priority waiter that called a futex_lock_pi operation on
+ the futex.
+
+ Returns the same values as futex_lock_pi under those same conditions;
+ additionally, returns EPERM when the caller is not allowed to attach
+ itself to the futex. */
+static __always_inline int
+futex_unlock_pi (unsigned int *futex_word, int private)
+{
+ int err = lll_futex_timed_unlock_pi (futex_word, private);
+ switch (err)
+ {
+ case 0:
+ case -EAGAIN:
+ case -EINTR:
+ case -ETIMEDOUT:
+ case -ESRCH:
+ case -EDEADLK:
+ case -ENOSYS:
+ case -EPERM: /* The caller is not allowed to attach itself to the futex.
+ Used to check if PI futexes are supported by the
+ kernel. */
+ return -err;
+
+ case -EINVAL: /* Either due to wrong alignment or due to the timeout not
+ being normalized. Must have been caused by a glibc or
+ application bug. */
+ case -EFAULT: /* Must have been caused by a glibc or application bug. */
+ /* No other errors are documented at this time. */
+ default:
+ futex_fatal_error ();
+ }
}
#endif /* futex-internal.h */
diff --git a/sysdeps/nptl/gai_misc.h b/sysdeps/nptl/gai_misc.h
index 815e6c0dc6..2cb9ebbce7 100644
--- a/sysdeps/nptl/gai_misc.h
+++ b/sysdeps/nptl/gai_misc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2006-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* We define a special synchronization primitive for AIO. POSIX
conditional variables would be ideal but the pthread_cond_*wait
@@ -42,15 +42,15 @@
{ \
pthread_mutex_unlock (&__gai_requests_mutex); \
\
- int oldtype; \
- if (cancel) \
- oldtype = LIBC_CANCEL_ASYNC (); \
- \
int status; \
do \
{ \
- status = futex_reltimed_wait ((unsigned int *) futexaddr, oldval, \
- timeout, FUTEX_PRIVATE); \
+ if (cancel) \
+ status = futex_reltimed_wait_cancelable ( \
+ (unsigned int *) futexaddr, oldval, timeout, FUTEX_PRIVATE); \
+ else \
+ status = futex_reltimed_wait ((unsigned int *) futexaddr, \
+ oldval, timeout, FUTEX_PRIVATE); \
if (status != EAGAIN) \
break; \
\
@@ -58,9 +58,6 @@
} \
while (oldval != 0); \
\
- if (cancel) \
- LIBC_CANCEL_RESET (oldtype); \
- \
if (status == EINTR) \
result = EINTR; \
else if (status == ETIMEDOUT) \
diff --git a/sysdeps/nptl/internaltypes.h b/sysdeps/nptl/internaltypes.h
index b78ad99a88..0539c6f3b1 100644
--- a/sysdeps/nptl/internaltypes.h
+++ b/sysdeps/nptl/internaltypes.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _INTERNALTYPES_H
#define _INTERNALTYPES_H 1
diff --git a/sysdeps/nptl/jmp-unwind.c b/sysdeps/nptl/jmp-unwind.c
index ea754df3ea..d252ee37fd 100644
--- a/sysdeps/nptl/jmp-unwind.c
+++ b/sysdeps/nptl/jmp-unwind.c
@@ -1,5 +1,5 @@
/* Clean up stack frames unwound by longjmp. Linux version.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <setjmp.h>
#include <stddef.h>
diff --git a/sysdeps/nptl/libc-lock.h b/sysdeps/nptl/libc-lock.h
index 801bcf7913..ee847e905f 100644
--- a/sysdeps/nptl/libc-lock.h
+++ b/sysdeps/nptl/libc-lock.h
@@ -1,5 +1,5 @@
/* libc-internal interface for mutex locks. NPTL version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#ifndef _LIBC_LOCK_H
#define _LIBC_LOCK_H 1
diff --git a/sysdeps/nptl/libc-lockP.h b/sysdeps/nptl/libc-lockP.h
index 989fefa370..62a3b18994 100644
--- a/sysdeps/nptl/libc-lockP.h
+++ b/sysdeps/nptl/libc-lockP.h
@@ -1,5 +1,5 @@
/* Private libc-internal interface for mutex locks. NPTL version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#ifndef _LIBC_LOCKP_H
#define _LIBC_LOCKP_H 1
@@ -71,23 +71,12 @@ typedef pthread_key_t __libc_key_t;
For the C library we take a deeper look at the initializer. For
this implementation all fields are initialized to zero. Therefore
we don't initialize the variable which allows putting it into the
- BSS section. (Except on PA-RISC and other odd architectures, where
- initialized locks must be set to one due to the lack of normal
- atomic operations.) */
+ BSS section. */
+_Static_assert (LLL_LOCK_INITIALIZER == 0, "LLL_LOCK_INITIALIZER != 0");
#define _LIBC_LOCK_INITIALIZER LLL_LOCK_INITIALIZER
-#if IS_IN (libc) || IS_IN (libpthread)
-# if LLL_LOCK_INITIALIZER == 0
-# define __libc_lock_define_initialized(CLASS,NAME) \
- CLASS __libc_lock_t NAME;
-# else
-# define __libc_lock_define_initialized(CLASS,NAME) \
- CLASS __libc_lock_t NAME = LLL_LOCK_INITIALIZER;
-# endif
-#else
-# define __libc_lock_define_initialized(CLASS,NAME) \
+#define __libc_lock_define_initialized(CLASS,NAME) \
CLASS __libc_lock_t NAME;
-#endif
#define __libc_rwlock_define_initialized(CLASS,NAME) \
CLASS __libc_rwlock_t NAME = PTHREAD_RWLOCK_INITIALIZER;
diff --git a/sysdeps/nptl/librt-cancellation.c b/sysdeps/nptl/librt-cancellation.c
index 39c5991205..93ebe4aa71 100644
--- a/sysdeps/nptl/librt-cancellation.c
+++ b/sysdeps/nptl/librt-cancellation.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <nptl/pthreadP.h>
diff --git a/sysdeps/nptl/lowlevellock-futex.h b/sysdeps/nptl/lowlevellock-futex.h
index 27b81b8347..ff0fd4edc4 100644
--- a/sysdeps/nptl/lowlevellock-futex.h
+++ b/sysdeps/nptl/lowlevellock-futex.h
@@ -1,5 +1,5 @@
/* Low-level locking access to futex facilities. Stub version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,19 +14,65 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LOWLEVELLOCK_FUTEX_H
#define _LOWLEVELLOCK_FUTEX_H 1
-#include <errno.h>
-
-
-/* Values for 'private' parameter of locking macros. Note pthreadP.h
- optimizes for these exact values, though they are not required. */
-#define LLL_PRIVATE 0
-#define LLL_SHARED 128
-
+#ifndef __ASSEMBLER__
+# include <sysdep.h>
+# include <sysdep-cancel.h>
+# include <kernel-features.h>
+#endif
+
+#define FUTEX_WAIT 0
+#define FUTEX_WAKE 1
+#define FUTEX_REQUEUE 3
+#define FUTEX_CMP_REQUEUE 4
+#define FUTEX_WAKE_OP 5
+#define FUTEX_OP_CLEAR_WAKE_IF_GT_ONE ((4 << 24) | 1)
+#define FUTEX_LOCK_PI 6
+#define FUTEX_UNLOCK_PI 7
+#define FUTEX_TRYLOCK_PI 8
+#define FUTEX_WAIT_BITSET 9
+#define FUTEX_WAKE_BITSET 10
+#define FUTEX_WAIT_REQUEUE_PI 11
+#define FUTEX_CMP_REQUEUE_PI 12
+#define FUTEX_PRIVATE_FLAG 128
+#define FUTEX_CLOCK_REALTIME 256
+
+#define FUTEX_BITSET_MATCH_ANY 0xffffffff
+
+/* Values for 'private' parameter of locking macros. Yes, the
+ definition seems to be backwards. But it is not. The bit will be
+ reversed before passing to the system call. */
+#define LLL_PRIVATE 0
+#define LLL_SHARED FUTEX_PRIVATE_FLAG
+
+#ifndef __ASSEMBLER__
+
+# if IS_IN (libc) || IS_IN (rtld)
+/* In libc.so or ld.so all futexes are private. */
+# define __lll_private_flag(fl, private) \
+ ({ \
+ /* Prevent warnings in callers of this macro. */ \
+ int __lll_private_flag_priv __attribute__ ((unused)); \
+ __lll_private_flag_priv = (private); \
+ ((fl) | FUTEX_PRIVATE_FLAG); \
+ })
+# else
+# define __lll_private_flag(fl, private) \
+ (((fl) | FUTEX_PRIVATE_FLAG) ^ (private))
+# endif
+
+# define lll_futex_syscall(nargs, futexp, op, ...) \
+ ({ \
+ INTERNAL_SYSCALL_DECL (__err); \
+ long int __ret = INTERNAL_SYSCALL (futex, __err, nargs, futexp, op, \
+ __VA_ARGS__); \
+ (__glibc_unlikely (INTERNAL_SYSCALL_ERROR_P (__ret, __err)) \
+ ? -INTERNAL_SYSCALL_ERRNO (__ret, __err) : 0); \
+ })
/* For most of these macros, the return value is never really used.
Nevertheless, the protocol is that each one returns a negated errno
@@ -36,51 +82,116 @@
/* Wait while *FUTEXP == VAL for an lll_futex_wake call on FUTEXP. */
-#define lll_futex_wait(futexp, val, private) \
+# define lll_futex_wait(futexp, val, private) \
lll_futex_timed_wait (futexp, val, NULL, private)
-/* Wait until a lll_futex_wake call on FUTEXP, or TIMEOUT elapses. */
-#define lll_futex_timed_wait(futexp, val, timeout, private) \
- -ENOSYS
-
-/* This macro should be defined only if FUTEX_CLOCK_REALTIME is also defined.
- If CLOCKBIT is zero, this is identical to lll_futex_timed_wait.
- If CLOCKBIT has FUTEX_CLOCK_REALTIME set, then it's the same but
- TIMEOUT is counted by CLOCK_REALTIME rather than CLOCK_MONOTONIC. */
-#define lll_futex_timed_wait_bitset(futexp, val, timeout, clockbit, private) \
- -ENOSYS
+# define lll_futex_timed_wait(futexp, val, timeout, private) \
+ lll_futex_syscall (4, futexp, \
+ __lll_private_flag (FUTEX_WAIT, private), \
+ val, timeout)
+
+/* Verify whether the supplied clockid is supported by
+ lll_futex_clock_wait_bitset. */
+# define lll_futex_supported_clockid(clockid) \
+ ((clockid) == CLOCK_REALTIME || (clockid) == CLOCK_MONOTONIC)
+
+/* The kernel currently only supports CLOCK_MONOTONIC or
+ CLOCK_REALTIME timeouts for FUTEX_WAIT_BITSET. We could attempt to
+ convert others here but currently do not. */
+# define lll_futex_clock_wait_bitset(futexp, val, clockid, timeout, private) \
+ ({ \
+ long int __ret; \
+ if (lll_futex_supported_clockid (clockid)) \
+ { \
+ const unsigned int clockbit = \
+ (clockid == CLOCK_REALTIME) ? FUTEX_CLOCK_REALTIME : 0; \
+ const int op = \
+ __lll_private_flag (FUTEX_WAIT_BITSET | clockbit, private); \
+ \
+ __ret = lll_futex_syscall (6, futexp, op, val, \
+ timeout, NULL /* Unused. */, \
+ FUTEX_BITSET_MATCH_ANY); \
+ } \
+ else \
+ __ret = -EINVAL; \
+ __ret; \
+ })
/* Wake up up to NR waiters on FUTEXP. */
-#define lll_futex_wake(futexp, nr, private) \
- -ENOSYS
+# define lll_futex_wake(futexp, nr, private) \
+ lll_futex_syscall (4, futexp, \
+ __lll_private_flag (FUTEX_WAKE, private), nr, 0)
/* Wake up up to NR_WAKE waiters on FUTEXP. Move up to NR_MOVE of the
- rest from waiting on FUTEXP to waiting on MUTEX (a different futex). */
-#define lll_futex_requeue(futexp, nr_wake, nr_move, mutex, val, private) \
- -ENOSYS
-
-/* Wake up up to NR_WAKE waiters on FUTEXP and NR_WAKE2 on FUTEXP2. */
-#define lll_futex_wake_unlock(futexp, nr_wake, nr_wake2, futexp2, private) \
- -ENOSYS
-
+ rest from waiting on FUTEXP to waiting on MUTEX (a different futex).
+ Returns non-zero if error happened, zero if success. */
+# define lll_futex_requeue(futexp, nr_wake, nr_move, mutex, val, private) \
+ lll_futex_syscall (6, futexp, \
+ __lll_private_flag (FUTEX_CMP_REQUEUE, private), \
+ nr_wake, nr_move, mutex, val)
+
+/* Wake up up to NR_WAKE waiters on FUTEXP and NR_WAKE2 on FUTEXP2.
+ Returns non-zero if error happened, zero if success. */
+# define lll_futex_wake_unlock(futexp, nr_wake, nr_wake2, futexp2, private) \
+ lll_futex_syscall (6, futexp, \
+ __lll_private_flag (FUTEX_WAKE_OP, private), \
+ nr_wake, nr_wake2, futexp2, \
+ FUTEX_OP_CLEAR_WAKE_IF_GT_ONE)
+
+
+/* Priority Inheritance support. */
+#define lll_futex_timed_lock_pi(futexp, abstime, private) \
+ lll_futex_syscall (4, futexp, \
+ __lll_private_flag (FUTEX_LOCK_PI, private), \
+ 0, abstime)
+
+#define lll_futex_timed_unlock_pi(futexp, private) \
+ lll_futex_syscall (4, futexp, \
+ __lll_private_flag (FUTEX_UNLOCK_PI, private), \
+ 0, 0)
/* Like lll_futex_wait (FUTEXP, VAL, PRIVATE) but with the expectation
that lll_futex_cmp_requeue_pi (FUTEXP, _, _, MUTEX, _, PRIVATE) will
be used to do the wakeup. Confers priority-inheritance behavior on
the waiter. */
-#define lll_futex_wait_requeue_pi(futexp, val, mutex, private) \
+# define lll_futex_wait_requeue_pi(futexp, val, mutex, private) \
lll_futex_timed_wait_requeue_pi (futexp, val, NULL, 0, mutex, private)
/* Like lll_futex_wait_requeue_pi, but with a timeout. */
-#define lll_futex_timed_wait_requeue_pi(futexp, val, timeout, clockbit, \
+# define lll_futex_timed_wait_requeue_pi(futexp, val, timeout, clockbit, \
mutex, private) \
- -ENOSYS
+ lll_futex_syscall (5, futexp, \
+ __lll_private_flag (FUTEX_WAIT_REQUEUE_PI \
+ | (clockbit), private), \
+ val, timeout, mutex)
/* Like lll_futex_requeue, but pairs with lll_futex_wait_requeue_pi
and inherits priority from the waiter. */
-#define lll_futex_cmp_requeue_pi(futexp, nr_wake, nr_move, mutex, \
+# define lll_futex_cmp_requeue_pi(futexp, nr_wake, nr_move, mutex, \
val, private) \
- -ENOSYS
-
+ lll_futex_syscall (6, futexp, \
+ __lll_private_flag (FUTEX_CMP_REQUEUE_PI, \
+ private), \
+ nr_wake, nr_move, mutex, val)
+
+/* Like lll_futex_wait, but acting as a cancellable entrypoint. */
+# define lll_futex_wait_cancel(futexp, val, private) \
+ ({ \
+ int __oldtype = CANCEL_ASYNC (); \
+ long int __err = lll_futex_wait (futexp, val, LLL_SHARED); \
+ CANCEL_RESET (__oldtype); \
+ __err; \
+ })
+
+/* Like lll_futex_timed_wait, but acting as a cancellable entrypoint. */
+# define lll_futex_timed_wait_cancel(futexp, val, timeout, private) \
+ ({ \
+ int __oldtype = CANCEL_ASYNC (); \
+ long int __err = lll_futex_timed_wait (futexp, val, timeout, private); \
+ CANCEL_RESET (__oldtype); \
+ __err; \
+ })
+
+#endif /* !__ASSEMBLER__ */
#endif /* lowlevellock-futex.h */
diff --git a/sysdeps/nptl/lowlevellock.h b/sysdeps/nptl/lowlevellock.h
index bfbda99940..92298f3b7e 100644
--- a/sysdeps/nptl/lowlevellock.h
+++ b/sysdeps/nptl/lowlevellock.h
@@ -1,5 +1,5 @@
/* Low-level lock implementation. Generic futex-based version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LOWLEVELLOCK_H
#define _LOWLEVELLOCK_H 1
#include <atomic.h>
#include <lowlevellock-futex.h>
+#include <time.h>
/* Low-level locks use a combination of atomic operations (to acquire and
release lock ownership) and futex operations (to block until the state
@@ -63,8 +64,10 @@
/* If LOCK is 0 (not acquired), set to 1 (acquired with no waiters) and return
0. Otherwise leave lock unchanged and return non-zero to indicate that the
lock was not acquired. */
+#define __lll_trylock(lock) \
+ __glibc_unlikely (atomic_compare_and_exchange_bool_acq ((lock), 1, 0))
#define lll_trylock(lock) \
- __glibc_unlikely (atomic_compare_and_exchange_bool_acq (&(lock), 1, 0))
+ __lll_trylock (&(lock))
/* If LOCK is 0 (not acquired), set to 2 (acquired, possibly with waiters) and
return 0. Otherwise leave lock unchanged and return non-zero to indicate
@@ -119,24 +122,36 @@ extern void __lll_lock_wait (int *futex, int private) attribute_hidden;
#define lll_cond_lock(futex, private) __lll_cond_lock (&(futex), private)
-extern int __lll_timedlock_wait (int *futex, const struct timespec *,
+extern int __lll_clocklock_wait (int *futex, int val, clockid_t,
+ const struct timespec *,
int private) attribute_hidden;
+#define lll_timedwait(futex, val, clockid, abstime, private) \
+ __lll_clocklock_wait (futex, val, clockid, abstime, private)
-/* As __lll_lock, but with a timeout. If the timeout occurs then return
- ETIMEDOUT. If ABSTIME is invalid, return EINVAL. */
-#define __lll_timedlock(futex, abstime, private) \
+/* As __lll_lock, but with an absolute timeout measured against the clock
+ specified in CLOCKID. If the timeout occurs then return ETIMEDOUT. If
+ ABSTIME is invalid, return EINVAL. */
+#define __lll_clocklock(futex, clockid, abstime, private) \
({ \
int *__futex = (futex); \
int __val = 0; \
\
if (__glibc_unlikely \
(atomic_compare_and_exchange_bool_acq (__futex, 1, 0))) \
- __val = __lll_timedlock_wait (__futex, abstime, private); \
+ { \
+ while (atomic_exchange_acq (futex, 2) != 0) \
+ { \
+ __val = __lll_clocklock_wait (__futex, 2, clockid, \
+ abstime, private); \
+ if (__val == EINVAL || __val == ETIMEDOUT) \
+ break; \
+ } \
+ } \
__val; \
})
-#define lll_timedlock(futex, abstime, private) \
- __lll_timedlock (&(futex), abstime, private)
+#define lll_clocklock(futex, clockid, abstime, private) \
+ __lll_clocklock (&(futex), clockid, abstime, private)
/* This is an expression rather than a statement even though its value is
@@ -175,34 +190,4 @@ extern int __lll_timedlock_wait (int *futex, const struct timespec *,
#define LLL_LOCK_INITIALIZER (0)
#define LLL_LOCK_INITIALIZER_LOCKED (1)
-
-/* The kernel notifies a process which uses CLONE_CHILD_CLEARTID via futex
- wake-up when the clone terminates. The memory location contains the
- thread ID while the clone is running and is reset to zero by the kernel
- afterwards. The kernel up to version 3.16.3 does not use the private futex
- operations for futex wake-up when the clone terminates. */
-#define lll_wait_tid(tid) \
- do { \
- __typeof (tid) __tid; \
- /* We need acquire MO here so that we synchronize \
- with the kernel's store to 0 when the clone \
- terminates. (see above) */ \
- while ((__tid = atomic_load_acquire (&(tid))) != 0) \
- lll_futex_wait (&(tid), __tid, LLL_SHARED); \
- } while (0)
-
-extern int __lll_timedwait_tid (int *, const struct timespec *)
- attribute_hidden;
-
-/* As lll_wait_tid, but with a timeout. If the timeout occurs then return
- ETIMEDOUT. If ABSTIME is invalid, return EINVAL. */
-#define lll_timedwait_tid(tid, abstime) \
- ({ \
- int __res = 0; \
- if ((tid) != 0) \
- __res = __lll_timedwait_tid (&(tid), (abstime)); \
- __res; \
- })
-
-
#endif /* lowlevellock.h */
diff --git a/sysdeps/nptl/malloc-machine.h b/sysdeps/nptl/malloc-machine.h
index b038339054..a14a7c5a81 100644
--- a/sysdeps/nptl/malloc-machine.h
+++ b/sysdeps/nptl/malloc-machine.h
@@ -1,6 +1,6 @@
/* Basic platform-independent macro definitions for mutexes,
thread-specific data and parameters for malloc.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MALLOC_MACHINE_H
#define _MALLOC_MACHINE_H
diff --git a/nptl_db/proc_service.h b/sysdeps/nptl/proc_service.h
index 1b88982f00..007bf1f91c 100644
--- a/nptl_db/proc_service.h
+++ b/sysdeps/nptl/proc_service.h
@@ -1,5 +1,5 @@
/* Callback interface for libthread_db, functions users must define.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _PROC_SERVICE_H
#define _PROC_SERVICE_H 1
diff --git a/sysdeps/nptl/pthread-functions.h b/sysdeps/nptl/pthread-functions.h
index fa103695d9..b5383ecbcf 100644
--- a/sysdeps/nptl/pthread-functions.h
+++ b/sysdeps/nptl/pthread-functions.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _PTHREAD_FUNCTIONS_H
#define _PTHREAD_FUNCTIONS_H 1
@@ -30,17 +30,6 @@ struct xid_command;
the thread functions. */
struct pthread_functions
{
- int (*ptr_pthread_attr_destroy) (pthread_attr_t *);
- int (*ptr___pthread_attr_init_2_0) (pthread_attr_t *);
- int (*ptr___pthread_attr_init_2_1) (pthread_attr_t *);
- int (*ptr_pthread_attr_getdetachstate) (const pthread_attr_t *, int *);
- int (*ptr_pthread_attr_setdetachstate) (pthread_attr_t *, int);
- int (*ptr_pthread_attr_getinheritsched) (const pthread_attr_t *, int *);
- int (*ptr_pthread_attr_setinheritsched) (pthread_attr_t *, int);
- int (*ptr_pthread_attr_getschedparam) (const pthread_attr_t *,
- struct sched_param *);
- int (*ptr_pthread_attr_setschedparam) (pthread_attr_t *,
- const struct sched_param *);
int (*ptr_pthread_attr_getschedpolicy) (const pthread_attr_t *, int *);
int (*ptr_pthread_attr_setschedpolicy) (pthread_attr_t *, int);
int (*ptr_pthread_attr_getscope) (const pthread_attr_t *, int *);
@@ -64,7 +53,6 @@ struct pthread_functions
int (*ptr___pthread_cond_timedwait_2_0) (pthread_cond_2_0_t *,
pthread_mutex_t *,
const struct timespec *);
- int (*ptr_pthread_equal) (pthread_t, pthread_t);
void (*ptr___pthread_exit) (void *) __attribute__ ((__noreturn__));
int (*ptr_pthread_getschedparam) (pthread_t, int *, struct sched_param *);
int (*ptr_pthread_setschedparam) (pthread_t, int,
diff --git a/sysdeps/nptl/pthread-offsets.h b/sysdeps/nptl/pthread-offsets.h
new file mode 100644
index 0000000000..a399608aa1
--- /dev/null
+++ b/sysdeps/nptl/pthread-offsets.h
@@ -0,0 +1,26 @@
+#include <bits/wordsize.h>
+
+/* These values are based on internal generic types from
+ mutex-internal.h and rwlock-internal.h. */
+
+#if __WORDSIZE == 64
+# define __PTHREAD_MUTEX_NUSERS_OFFSET 12
+# define __PTHREAD_MUTEX_KIND_OFFSET 16
+# define __PTHREAD_MUTEX_SPINS_OFFSET 20
+# define __PTHREAD_MUTEX_LIST_OFFSET 24
+#else
+# define __PTHREAD_MUTEX_NUSERS_OFFSET 16
+# define __PTHREAD_MUTEX_KIND_OFFSET 12
+# define __PTHREAD_MUTEX_SPINS_OFFSET 20
+# define __PTHREAD_MUTEX_LIST_OFFSET 20
+#endif
+
+#if __WORDSIZE == 64
+# define __PTHREAD_RWLOCK_FLAGS_OFFSET 48
+#else
+# if __BYTE_ORDER == __BIG_ENDIAN
+# define __PTHREAD_RWLOCK_FLAGS_OFFSET 27
+# else
+# define __PTHREAD_RWLOCK_FLAGS_OFFSET 24
+# endif
+#endif
diff --git a/sysdeps/nptl/pthread.h b/sysdeps/nptl/pthread.h
index df049abf74..a503b09993 100644
--- a/sysdeps/nptl/pthread.h
+++ b/sysdeps/nptl/pthread.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-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
@@ -13,16 +13,16 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _PTHREAD_H
#define _PTHREAD_H 1
#include <features.h>
-#include <endian.h>
#include <sched.h>
#include <time.h>
+#include <bits/endian.h>
#include <bits/pthreadtypes.h>
#include <bits/setjmp.h>
#include <bits/wordsize.h>
@@ -83,30 +83,15 @@ enum
#endif
-#if __PTHREAD_MUTEX_HAVE_PREV
-# define PTHREAD_MUTEX_INITIALIZER \
- { { 0, 0, 0, 0, 0, __PTHREAD_SPINS, { 0, 0 } } }
-# ifdef __USE_GNU
-# define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP \
- { { 0, 0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP, __PTHREAD_SPINS, { 0, 0 } } }
-# define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP \
- { { 0, 0, 0, 0, PTHREAD_MUTEX_ERRORCHECK_NP, __PTHREAD_SPINS, { 0, 0 } } }
-# define PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP \
- { { 0, 0, 0, 0, PTHREAD_MUTEX_ADAPTIVE_NP, __PTHREAD_SPINS, { 0, 0 } } }
-
-# endif
-#else
-# define PTHREAD_MUTEX_INITIALIZER \
- { { 0, 0, 0, 0, 0, { __PTHREAD_SPINS } } }
-# ifdef __USE_GNU
-# define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP \
- { { 0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP, 0, { __PTHREAD_SPINS } } }
-# define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP \
- { { 0, 0, 0, PTHREAD_MUTEX_ERRORCHECK_NP, 0, { __PTHREAD_SPINS } } }
-# define PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP \
- { { 0, 0, 0, PTHREAD_MUTEX_ADAPTIVE_NP, 0, { __PTHREAD_SPINS } } }
-
-# endif
+#define PTHREAD_MUTEX_INITIALIZER \
+ { { __PTHREAD_MUTEX_INITIALIZER (PTHREAD_MUTEX_DEFAULT) } }
+#ifdef __USE_GNU
+# define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP \
+ { { __PTHREAD_MUTEX_INITIALIZER (PTHREAD_MUTEX_RECURSIVE_NP) } }
+# define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP \
+ { { __PTHREAD_MUTEX_INITIALIZER (PTHREAD_MUTEX_ERRORCHECK_NP) } }
+# define PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP \
+ { { __PTHREAD_MUTEX_INITIALIZER (PTHREAD_MUTEX_ADAPTIVE_NP) } }
#endif
@@ -120,34 +105,13 @@ enum
PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP
};
-/* Define __PTHREAD_RWLOCK_INT_FLAGS_SHARED to 1 if pthread_rwlock_t
- has the shared field. All 64-bit architectures have the shared field
- in pthread_rwlock_t. */
-#ifndef __PTHREAD_RWLOCK_INT_FLAGS_SHARED
-# if __WORDSIZE == 64
-# define __PTHREAD_RWLOCK_INT_FLAGS_SHARED 1
-# endif
-#endif
/* Read-write lock initializers. */
# define PTHREAD_RWLOCK_INITIALIZER \
- { { 0, 0, 0, 0, 0, 0, 0, 0, __PTHREAD_RWLOCK_ELISION_EXTRA, 0, 0 } }
+ { { __PTHREAD_RWLOCK_INITIALIZER (PTHREAD_RWLOCK_DEFAULT_NP) } }
# ifdef __USE_GNU
-# ifdef __PTHREAD_RWLOCK_INT_FLAGS_SHARED
-# define PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP \
- { { 0, 0, 0, 0, 0, 0, 0, 0, __PTHREAD_RWLOCK_ELISION_EXTRA, 0, \
- PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP } }
-# else
-# if __BYTE_ORDER == __LITTLE_ENDIAN
-# define PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP \
- { { 0, 0, 0, 0, 0, 0, PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP, \
- 0, __PTHREAD_RWLOCK_ELISION_EXTRA, 0, 0 } }
-# else
-# define PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP \
- { { 0, 0, 0, 0, 0, 0, 0, 0, 0, PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP,\
- 0 } }
-# endif
-# endif
+# define PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP \
+ { { __PTHREAD_RWLOCK_INITIALIZER (PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP) } }
# endif
#endif /* Unix98 or XOpen2K */
@@ -263,6 +227,17 @@ extern int pthread_tryjoin_np (pthread_t __th, void **__thread_return) __THROW;
__THROW. */
extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return,
const struct timespec *__abstime);
+
+/* Make calling thread wait for termination of the thread TH, but only
+ until TIMEOUT measured against the clock specified by CLOCKID. The
+ exit status of the thread is stored in *THREAD_RETURN, if
+ THREAD_RETURN is not NULL.
+
+ This function is a cancellation point and therefore not marked with
+ __THROW. */
+extern int pthread_clockjoin_np (pthread_t __th, void **__thread_return,
+ clockid_t __clockid,
+ const struct timespec *__abstime);
#endif
/* Indicate that the thread TH is never to be joined with PTHREAD_JOIN.
@@ -770,6 +745,13 @@ extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex,
__abstime) __THROWNL __nonnull ((1, 2));
#endif
+#ifdef __USE_GNU
+extern int pthread_mutex_clocklock (pthread_mutex_t *__restrict __mutex,
+ clockid_t __clockid,
+ const struct timespec *__restrict
+ __abstime) __THROWNL __nonnull ((1, 3));
+#endif
+
/* Unlock a mutex. */
extern int pthread_mutex_unlock (pthread_mutex_t *__mutex)
__THROWNL __nonnull ((1));
@@ -909,6 +891,13 @@ extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock,
__abstime) __THROWNL __nonnull ((1, 2));
# endif
+# ifdef __USE_GNU
+extern int pthread_rwlock_clockrdlock (pthread_rwlock_t *__restrict __rwlock,
+ clockid_t __clockid,
+ const struct timespec *__restrict
+ __abstime) __THROWNL __nonnull ((1, 3));
+# endif
+
/* Acquire write lock for RWLOCK. */
extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock)
__THROWNL __nonnull ((1));
@@ -924,6 +913,13 @@ extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock,
__abstime) __THROWNL __nonnull ((1, 2));
# endif
+# ifdef __USE_GNU
+extern int pthread_rwlock_clockwrlock (pthread_rwlock_t *__restrict __rwlock,
+ clockid_t __clockid,
+ const struct timespec *__restrict
+ __abstime) __THROWNL __nonnull ((1, 3));
+# endif
+
/* Unlock RWLOCK. */
extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock)
__THROWNL __nonnull ((1));
@@ -1003,6 +999,21 @@ extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond,
const struct timespec *__restrict __abstime)
__nonnull ((1, 2, 3));
+# ifdef __USE_GNU
+/* Wait for condition variable COND to be signaled or broadcast until
+ ABSTIME measured by the specified clock. MUTEX is assumed to be
+ locked before. CLOCK is the clock to use. ABSTIME is an absolute
+ time specification against CLOCK's epoch.
+
+ This function is a cancellation point and therefore not marked with
+ __THROW. */
+extern int pthread_cond_clockwait (pthread_cond_t *__restrict __cond,
+ pthread_mutex_t *__restrict __mutex,
+ __clockid_t __clock_id,
+ const struct timespec *__restrict __abstime)
+ __nonnull ((1, 2, 4));
+# endif
+
/* Functions for handling condition variable attributes. */
/* Initialize condition variable attribute ATTR. */
diff --git a/sysdeps/nptl/setxid.h b/sysdeps/nptl/setxid.h
index de39efc723..c5566c4093 100644
--- a/sysdeps/nptl/setxid.h
+++ b/sysdeps/nptl/setxid.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <nptl/pthreadP.h>
#include <sysdep.h>
diff --git a/sysdeps/nptl/shm-directory.h b/sysdeps/nptl/shm-directory.h
index 7452191626..a9fb500a75 100644
--- a/sysdeps/nptl/shm-directory.h
+++ b/sysdeps/nptl/shm-directory.h
@@ -1,5 +1,5 @@
/* Header for directory for shm/sem files. NPTL version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SHM_DIRECTORY_H
diff --git a/sysdeps/nptl/stdio-lock.h b/sysdeps/nptl/stdio-lock.h
index 5b9782452f..68516bafeb 100644
--- a/sysdeps/nptl/stdio-lock.h
+++ b/sysdeps/nptl/stdio-lock.h
@@ -1,5 +1,5 @@
/* Thread package specific definitions of stream lock type. NPTL version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _STDIO_LOCK_H
#define _STDIO_LOCK_H 1
@@ -94,15 +94,8 @@ typedef struct { int lock; int cnt; void *owner; } _IO_lock_t;
__attribute__((cleanup (_IO_acquire_lock_fct))) \
= (_fp); \
_IO_flockfile (_IO_acquire_lock_file);
-# define _IO_acquire_lock_clear_flags2(_fp) \
- do { \
- FILE *_IO_acquire_lock_file \
- __attribute__((cleanup (_IO_acquire_lock_clear_flags2_fct))) \
- = (_fp); \
- _IO_flockfile (_IO_acquire_lock_file);
# else
# define _IO_acquire_lock(_fp) _IO_acquire_lock_needs_exceptions_enabled
-# define _IO_acquire_lock_clear_flags2(_fp) _IO_acquire_lock (_fp)
# endif
# define _IO_release_lock(_fp) ; } while (0)
diff --git a/sysdeps/nptl/sys/procfs.h b/sysdeps/nptl/sys/procfs.h
index d8c9383696..f6886374f1 100644
--- a/sysdeps/nptl/sys/procfs.h
+++ b/sysdeps/nptl/sys/procfs.h
@@ -1,5 +1,5 @@
/* Types used by thread_db callback interface. Stub version.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_PROCFS_H
#define _SYS_PROCFS_H 1
diff --git a/nptl_db/thread_db.h b/sysdeps/nptl/thread_db.h
index 4206aed02f..aa206231b2 100644
--- a/nptl_db/thread_db.h
+++ b/sysdeps/nptl/thread_db.h
@@ -1,5 +1,5 @@
/* thread_db.h -- interface to libthread_db.so library for debugging -lpthread
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _THREAD_DB_H
#define _THREAD_DB_H 1
diff --git a/sysdeps/nptl/threads.h b/sysdeps/nptl/threads.h
index 9800f93aa7..b4915b4775 100644
--- a/sysdeps/nptl/threads.h
+++ b/sysdeps/nptl/threads.h
@@ -1,5 +1,5 @@
/* ISO C11 Standard: 7.26 - Thread support library <threads.h>.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _THREADS_H
#define _THREADS_H 1
diff --git a/sysdeps/nptl/timer_routines.h b/sysdeps/nptl/timer_routines.h
index 9931015684..cf19f3aa48 100644
--- a/sysdeps/nptl/timer_routines.h
+++ b/sysdeps/nptl/timer_routines.h
@@ -1,5 +1,5 @@
/* Helper code for POSIX timer implementation on NPTL.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Kaz Kylheku <kaz@ashi.footprints.net>.
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#ifndef _TIMER_ROUTINES_H
#define _TIMER_ROUTINES_H 1
diff --git a/sysdeps/nptl/unwind-forcedunwind.c b/sysdeps/nptl/unwind-forcedunwind.c
index 5902fa4be7..d5ec914c57 100644
--- a/sysdeps/nptl/unwind-forcedunwind.c
+++ b/sysdeps/nptl/unwind-forcedunwind.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>.
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stdio.h>
diff --git a/sysdeps/posix/alarm.c b/sysdeps/posix/alarm.c
index 91543cef18..b5ad296ac4 100644
--- a/sysdeps/posix/alarm.c
+++ b/sysdeps/posix/alarm.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <sys/time.h>
diff --git a/sysdeps/posix/clock.c b/sysdeps/posix/clock.c
index 52382b72c1..7b987e06da 100644
--- a/sysdeps/posix/clock.c
+++ b/sysdeps/posix/clock.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/times.h>
#include <time.h>
diff --git a/sysdeps/posix/clock_getres.c b/sysdeps/posix/clock_getres.c
index e7924e0891..8d58ea6fdb 100644
--- a/sysdeps/posix/clock_getres.c
+++ b/sysdeps/posix/clock_getres.c
@@ -1,5 +1,5 @@
/* clock_getres -- Get the resolution of a POSIX clockid_t.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdint.h>
@@ -22,38 +22,7 @@
#include <unistd.h>
#include <sys/param.h>
#include <libc-internal.h>
-
-
-#if HP_TIMING_AVAIL
-static long int nsec; /* Clock frequency of the processor. */
-
-static int
-hp_timing_getres (struct timespec *res)
-{
- if (__glibc_unlikely (nsec == 0))
- {
- hp_timing_t freq;
-
- /* This can only happen if we haven't initialized the `nsec'
- variable yet. Do this now. We don't have to protect this
- code against multiple execution since all of them should
- lead to the same result. */
- freq = __get_clockfreq ();
- if (__glibc_unlikely (freq == 0))
- /* Something went wrong. */
- return -1;
-
- nsec = MAX (UINT64_C (1000000000) / freq, 1);
- }
-
- /* Fill in the values.
- The seconds are always zero (unless we have a 1Hz machine). */
- res->tv_sec = 0;
- res->tv_nsec = nsec;
-
- return 0;
-}
-#endif
+#include <shlib-compat.h>
static inline int
realtime_getres (struct timespec *res)
@@ -82,37 +51,22 @@ __clock_getres (clockid_t clock_id, struct timespec *res)
switch (clock_id)
{
-#ifdef SYSDEP_GETRES
- SYSDEP_GETRES;
-#endif
-
-#ifndef HANDLED_REALTIME
case CLOCK_REALTIME:
retval = realtime_getres (res);
break;
-#endif /* handled REALTIME */
default:
-#ifdef SYSDEP_GETRES_CPU
- SYSDEP_GETRES_CPU;
-#endif
-#if HP_TIMING_AVAIL
- if ((clock_id & ((1 << CLOCK_IDFIELD_SIZE) - 1))
- == CLOCK_THREAD_CPUTIME_ID)
- retval = hp_timing_getres (res);
- else
-#endif
- __set_errno (EINVAL);
+ __set_errno (EINVAL);
break;
-
-#if HP_TIMING_AVAIL && !defined HANDLED_CPUTIME
- case CLOCK_PROCESS_CPUTIME_ID:
- case CLOCK_THREAD_CPUTIME_ID:
- retval = hp_timing_getres (res);
- break;
-#endif
}
return retval;
}
-weak_alias (__clock_getres, clock_getres)
+
+versioned_symbol (libc, __clock_getres, clock_getres, GLIBC_2_17);
+/* clock_getres moved to libc in version 2.17;
+ old binaries may expect the symbol version it had in librt. */
+#if SHLIB_COMPAT (libc, GLIBC_2_2, GLIBC_2_17)
+strong_alias (__clock_getres, __clock_getres_2);
+compat_symbol (libc, __clock_getres_2, clock_getres, GLIBC_2_2);
+#endif
diff --git a/sysdeps/posix/closedir.c b/sysdeps/posix/closedir.c
index 9b1e698762..46ec53903b 100644
--- a/sysdeps/posix/closedir.c
+++ b/sysdeps/posix/closedir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/sysdeps/posix/ctermid.c b/sysdeps/posix/ctermid.c
index 767743b4e8..2b8c180b1d 100644
--- a/sysdeps/posix/ctermid.c
+++ b/sysdeps/posix/ctermid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <string.h>
diff --git a/sysdeps/posix/cuserid.c b/sysdeps/posix/cuserid.c
index 721c645608..b824021e97 100644
--- a/sysdeps/posix/cuserid.c
+++ b/sysdeps/posix/cuserid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pwd.h>
#include <stdio.h>
diff --git a/sysdeps/posix/dirfd.c b/sysdeps/posix/dirfd.c
index 5afc9f37e7..511843ed2b 100644
--- a/sysdeps/posix/dirfd.c
+++ b/sysdeps/posix/dirfd.c
@@ -1,5 +1,5 @@
/* Return the file descriptor used by a DIR stream. Unix version.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dirent.h>
#include <dirstream.h>
diff --git a/sysdeps/posix/dirstream.h b/sysdeps/posix/dirstream.h
index ae6faf65f5..521cac1380 100644
--- a/sysdeps/posix/dirstream.h
+++ b/sysdeps/posix/dirstream.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DIRSTREAM_H
#define _DIRSTREAM_H 1
diff --git a/sysdeps/posix/dl-fileid.h b/sysdeps/posix/dl-fileid.h
index 26bef2f9dc..ae88a35078 100644
--- a/sysdeps/posix/dl-fileid.h
+++ b/sysdeps/posix/dl-fileid.h
@@ -1,5 +1,5 @@
/* File identity for the dynamic linker. Generic POSIX.1 version.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdbool.h>
#include <sys/stat.h>
diff --git a/sysdeps/posix/dup.c b/sysdeps/posix/dup.c
index be6ec4b2bf..75e1f2b826 100644
--- a/sysdeps/posix/dup.c
+++ b/sysdeps/posix/dup.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/sysdeps/posix/dup2.c b/sysdeps/posix/dup2.c
index 6e050f5fad..145c400b2d 100644
--- a/sysdeps/posix/dup2.c
+++ b/sysdeps/posix/dup2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/sysdeps/posix/euidaccess.c b/sysdeps/posix/euidaccess.c
index ec44b0f696..cb492e75dd 100644
--- a/sysdeps/posix/euidaccess.c
+++ b/sysdeps/posix/euidaccess.c
@@ -1,5 +1,5 @@
/* Check if effective user id can access file
- Copyright (C) 1990-2018 Free Software Foundation, Inc.
+ Copyright (C) 1990-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Written by David MacKenzie and Torbjorn Granlund.
Adapted for GNU C library by Roland McGrath. */
diff --git a/sysdeps/posix/fdopendir.c b/sysdeps/posix/fdopendir.c
index b72eecc66b..2bca8f9a23 100644
--- a/sysdeps/posix/fdopendir.c
+++ b/sysdeps/posix/fdopendir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dirent.h>
#include <errno.h>
diff --git a/sysdeps/posix/flock.c b/sysdeps/posix/flock.c
index 998bc84866..2c5e661905 100644
--- a/sysdeps/posix/flock.c
+++ b/sysdeps/posix/flock.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file implements the `flock' function in terms of the POSIX.1 `fcntl'
locking mechanism. In 4BSD, these are two incompatible locking mechanisms,
diff --git a/sysdeps/posix/fpathconf.c b/sysdeps/posix/fpathconf.c
index a9d164564e..8586428556 100644
--- a/sysdeps/posix/fpathconf.c
+++ b/sysdeps/posix/fpathconf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/sysdeps/posix/gai_strerror.c b/sysdeps/posix/gai_strerror.c
index 6c2b66bf9f..f46a3b79d6 100644
--- a/sysdeps/posix/gai_strerror.c
+++ b/sysdeps/posix/gai_strerror.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Philip Blundell <pjb27@cam.ac.uk>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libintl.h>
#include <netdb.h>
diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c
index 553833d1f2..c67c5a955c 100644
--- a/sysdeps/posix/getaddrinfo.c
+++ b/sysdeps/posix/getaddrinfo.c
@@ -1,5 +1,5 @@
/* Host and service name lookups using Name Service Switch modules.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* The Inner Net License, Version 2.00
@@ -61,7 +61,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <nss.h>
#include <resolv/resolv-internal.h>
#include <resolv/resolv_context.h>
-#include <resolv/res_use_inet6.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdio_ext.h>
@@ -255,7 +254,6 @@ convert_hostent_to_gaih_addrtuple (const struct addrinfo *req,
break; \
if (!scratch_buffer_grow (tmpbuf)) \
{ \
- __resolv_context_enable_inet6 (res_ctx, res_enable_inet6); \
__resolv_context_put (res_ctx); \
result = -EAI_MEMORY; \
goto free_and_return; \
@@ -266,7 +264,6 @@ convert_hostent_to_gaih_addrtuple (const struct addrinfo *req,
{ \
if (h_errno == NETDB_INTERNAL) \
{ \
- __resolv_context_enable_inet6 (res_ctx, res_enable_inet6); \
__resolv_context_put (res_ctx); \
result = -EAI_SYSTEM; \
goto free_and_return; \
@@ -280,7 +277,6 @@ convert_hostent_to_gaih_addrtuple (const struct addrinfo *req,
{ \
if (!convert_hostent_to_gaih_addrtuple (req, _family, &th, &addrmem)) \
{ \
- __resolv_context_enable_inet6 (res_ctx, res_enable_inet6); \
__resolv_context_put (res_ctx); \
result = -EAI_SYSTEM; \
goto free_and_return; \
@@ -488,7 +484,7 @@ gaih_inet (const char *name, const struct gaih_service *service,
malloc_name = true;
}
- if (__inet_aton (name, (struct in_addr *) at->addr) != 0)
+ if (__inet_aton_exact (name, (struct in_addr *) at->addr) != 0)
{
if (req->ai_family == AF_UNSPEC || req->ai_family == AF_INET)
at->family = AF_INET;
@@ -558,7 +554,6 @@ gaih_inet (const char *name, const struct gaih_service *service,
enum nss_status status = NSS_STATUS_UNAVAIL;
int no_more;
struct resolv_context *res_ctx = NULL;
- bool res_enable_inet6 = false;
/* If we do not have to look for IPv6 addresses or the canonical
name, use the simple, old functions, which do not support
@@ -737,9 +732,9 @@ gaih_inet (const char *name, const struct gaih_service *service,
#endif
if (__nss_hosts_database == NULL)
- no_more = __nss_database_lookup ("hosts", NULL,
- "dns [!UNAVAIL=return] files",
- &__nss_hosts_database);
+ no_more = __nss_database_lookup2 ("hosts", NULL,
+ "dns [!UNAVAIL=return] files",
+ &__nss_hosts_database);
else
no_more = 0;
nip = __nss_hosts_database;
@@ -749,7 +744,6 @@ gaih_inet (const char *name, const struct gaih_service *service,
addresses to IPv6 addresses, so we use the no_inet6
function variant. */
res_ctx = __resolv_context_get ();
- res_enable_inet6 = __resolv_context_disable_inet6 (res_ctx);
if (res_ctx == NULL)
no_more = 1;
@@ -785,8 +779,6 @@ gaih_inet (const char *name, const struct gaih_service *service,
if (!scratch_buffer_grow (tmpbuf))
{
- __resolv_context_enable_inet6
- (res_ctx, res_enable_inet6);
__resolv_context_put (res_ctx);
result = -EAI_MEMORY;
goto free_and_return;
@@ -886,8 +878,6 @@ gaih_inet (const char *name, const struct gaih_service *service,
canonbuf = getcanonname (nip, at, name);
if (canonbuf == NULL)
{
- __resolv_context_enable_inet6
- (res_ctx, res_enable_inet6);
__resolv_context_put (res_ctx);
result = -EAI_MEMORY;
goto free_and_return;
@@ -932,7 +922,6 @@ gaih_inet (const char *name, const struct gaih_service *service,
nip = nip->next;
}
- __resolv_context_enable_inet6 (res_ctx, res_enable_inet6);
__resolv_context_put (res_ctx);
/* If we have a failure which sets errno, report it using
@@ -2197,6 +2186,10 @@ getaddrinfo (const char *name, const char *service,
if ((hints->ai_flags & AI_CANONNAME) && name == NULL)
return EAI_BADFLAGS;
+ if (hints->ai_family != AF_UNSPEC && hints->ai_family != AF_INET
+ && hints->ai_family != AF_INET6)
+ return EAI_FAMILY;
+
struct in6addrinfo *in6ai = NULL;
size_t in6ailen = 0;
bool seen_ipv4 = false;
@@ -2217,7 +2210,7 @@ getaddrinfo (const char *name, const char *service,
{
/* If we haven't seen both IPv4 and IPv6 interfaces we can
narrow down the search. */
- if ((! seen_ipv4 || ! seen_ipv6) && (seen_ipv4 || seen_ipv6))
+ if (seen_ipv4 != seen_ipv6)
{
local_hints = *hints;
local_hints.ai_family = seen_ipv4 ? PF_INET : PF_INET6;
@@ -2255,33 +2248,25 @@ getaddrinfo (const char *name, const char *service,
pservice = NULL;
struct addrinfo **end = &p;
-
unsigned int naddrs = 0;
- if (hints->ai_family == AF_UNSPEC || hints->ai_family == AF_INET
- || hints->ai_family == AF_INET6)
- {
- struct scratch_buffer tmpbuf;
- scratch_buffer_init (&tmpbuf);
- last_i = gaih_inet (name, pservice, hints, end, &naddrs, &tmpbuf);
- scratch_buffer_free (&tmpbuf);
+ struct scratch_buffer tmpbuf;
- if (last_i != 0)
- {
- freeaddrinfo (p);
- __free_in6ai (in6ai);
+ scratch_buffer_init (&tmpbuf);
+ last_i = gaih_inet (name, pservice, hints, end, &naddrs, &tmpbuf);
+ scratch_buffer_free (&tmpbuf);
- return -last_i;
- }
- while (*end)
- {
- end = &((*end)->ai_next);
- ++nresults;
- }
- }
- else
+ if (last_i != 0)
{
+ freeaddrinfo (p);
__free_in6ai (in6ai);
- return EAI_FAMILY;
+
+ return -last_i;
+ }
+
+ while (*end)
+ {
+ end = &((*end)->ai_next);
+ ++nresults;
}
if (naddrs > 1)
diff --git a/sysdeps/posix/getcwd.c b/sysdeps/posix/getcwd.c
index b53433a2dc..4a721c4cc6 100644
--- a/sysdeps/posix/getcwd.c
+++ b/sysdeps/posix/getcwd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Wants:
AC_STDC_HEADERS
@@ -531,5 +531,6 @@ __getcwd (char *buf, size_t size)
}
#if defined _LIBC && !defined __getcwd
+libc_hidden_def (__getcwd)
weak_alias (__getcwd, getcwd)
#endif
diff --git a/sysdeps/posix/getdtsz.c b/sysdeps/posix/getdtsz.c
index 0da5081575..019daa2cc0 100644
--- a/sysdeps/posix/getdtsz.c
+++ b/sysdeps/posix/getdtsz.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <limits.h>
#include <unistd.h>
diff --git a/sysdeps/posix/gethostname.c b/sysdeps/posix/gethostname.c
index 0e29e18617..a76e3285e1 100644
--- a/sysdeps/posix/gethostname.c
+++ b/sysdeps/posix/gethostname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <string.h>
diff --git a/sysdeps/posix/getpagesize.c b/sysdeps/posix/getpagesize.c
index 6f37dba644..87e15cc1bc 100644
--- a/sysdeps/posix/getpagesize.c
+++ b/sysdeps/posix/getpagesize.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Brendan Kehoe (brendan@cygnus.com).
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
diff --git a/sysdeps/posix/gettimeofday.c b/sysdeps/posix/gettimeofday.c
deleted file mode 100644
index ea00cd387d..0000000000
--- a/sysdeps/posix/gettimeofday.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/* Copyright (C) 1991-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <time.h>
-#include <sys/time.h>
-
-/* Get the current time of day and timezone information,
- putting it into *TV and *TZ. If TZ is NULL, *TZ is not filled.
- Returns 0 on success, -1 on errors. */
-int
-__gettimeofday (struct timeval *tv, struct timezone *tz)
-{
- if (tv == NULL)
- {
- __set_errno (EINVAL);
- return -1;
- }
-
- tv->tv_sec = (long int) time ((time_t *) NULL);
- tv->tv_usec = 0L;
-
- if (tz != NULL)
- {
- const time_t timer = tv->tv_sec;
- struct tm tm;
- const struct tm *tmp;
-
- const long int save_timezone = __timezone;
- const long int save_daylight = __daylight;
- char *save_tzname[2];
- save_tzname[0] = __tzname[0];
- save_tzname[1] = __tzname[1];
-
- tmp = localtime_r (&timer, &tm);
-
- tz->tz_minuteswest = __timezone / 60;
- tz->tz_dsttime = __daylight;
-
- __timezone = save_timezone;
- __daylight = save_daylight;
- __tzname[0] = save_tzname[0];
- __tzname[1] = save_tzname[1];
-
- if (tmp == NULL)
- return -1;
- }
-
- return 0;
-}
-libc_hidden_def (__gettimeofday)
-weak_alias (__gettimeofday, gettimeofday)
-libc_hidden_weak (gettimeofday)
diff --git a/sysdeps/posix/isatty.c b/sysdeps/posix/isatty.c
index a06e7ecad5..72d2cbf84d 100644
--- a/sysdeps/posix/isatty.c
+++ b/sysdeps/posix/isatty.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <termios.h>
diff --git a/sysdeps/posix/isfdtype.c b/sysdeps/posix/isfdtype.c
index 38e7fd4210..173cf6e283 100644
--- a/sysdeps/posix/isfdtype.c
+++ b/sysdeps/posix/isfdtype.c
@@ -1,5 +1,5 @@
/* Determine whether descriptor has given property.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/stat.h>
diff --git a/sysdeps/posix/killpg.c b/sysdeps/posix/killpg.c
index 533d2f1722..09a90c2777 100644
--- a/sysdeps/posix/killpg.c
+++ b/sysdeps/posix/killpg.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/sysdeps/posix/libc_fatal.c b/sysdeps/posix/libc_fatal.c
index 89a20080e1..a7c11412e8 100644
--- a/sysdeps/posix/libc_fatal.c
+++ b/sysdeps/posix/libc_fatal.c
@@ -1,5 +1,5 @@
/* Catastrophic failure reports. Generic POSIX.1 version.
- Copyright (C) 1993-2018 Free Software Foundation, Inc.
+ Copyright (C) 1993-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <atomic.h>
#include <errno.h>
@@ -45,16 +45,6 @@ writev_for_fatal (int fd, const struct iovec *iov, size_t niov, size_t total)
}
#endif
-#ifndef BEFORE_ABORT
-# define BEFORE_ABORT before_abort
-static void
-before_abort (int do_abort __attribute__ ((unused)),
- bool written __attribute__ ((unused)),
- int fd __attribute__ ((unused)))
-{
-}
-#endif
-
struct str_list
{
const char *str;
@@ -75,17 +65,6 @@ __libc_message (enum __libc_message_action action, const char *fmt, ...)
FATAL_PREPARE;
#endif
- /* Don't call __libc_secure_getenv if we aren't doing backtrace, which
- may access the corrupted stack. */
- if ((action & do_backtrace))
- {
- /* Open a descriptor for /dev/tty unless the user explicitly
- requests errors on standard error. */
- const char *on_2 = __libc_secure_getenv ("LIBC_FATAL_STDERR_");
- if (on_2 == NULL || *on_2 == '\0')
- fd = __open_nocancel (_PATH_TTY, O_RDWR | O_NOCTTY | O_NDELAY);
- }
-
if (fd == -1)
fd = STDERR_FILENO;
@@ -129,7 +108,6 @@ __libc_message (enum __libc_message_action action, const char *fmt, ...)
++nlist;
}
- bool written = false;
if (nlist > 0)
{
struct iovec *iov = alloca (nlist * sizeof (struct iovec));
@@ -143,7 +121,7 @@ __libc_message (enum __libc_message_action action, const char *fmt, ...)
list = list->next;
}
- written = WRITEV_FOR_FATAL (fd, iov, nlist, total);
+ WRITEV_FOR_FATAL (fd, iov, nlist, total);
if ((action & do_abort))
{
@@ -173,13 +151,8 @@ __libc_message (enum __libc_message_action action, const char *fmt, ...)
va_end (ap);
if ((action & do_abort))
- {
- if ((action & do_backtrace))
- BEFORE_ABORT (do_abort, written, fd);
-
- /* Kill the application. */
- abort ();
- }
+ /* Kill the application. */
+ abort ();
}
@@ -188,6 +161,6 @@ __libc_fatal (const char *message)
{
/* The loop is added only to keep gcc happy. */
while (1)
- __libc_message (do_abort | do_backtrace, "%s", message);
+ __libc_message (do_abort, "%s", message);
}
libc_hidden_def (__libc_fatal)
diff --git a/sysdeps/posix/mkfifo.c b/sysdeps/posix/mkfifo.c
index eedbf9e28c..c301b3852a 100644
--- a/sysdeps/posix/mkfifo.c
+++ b/sysdeps/posix/mkfifo.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/sysdeps/posix/mkfifoat.c b/sysdeps/posix/mkfifoat.c
index c54383eab9..e37f83bf5e 100644
--- a/sysdeps/posix/mkfifoat.c
+++ b/sysdeps/posix/mkfifoat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/stat.h>
diff --git a/sysdeps/posix/nice.c b/sysdeps/posix/nice.c
index 2d907e80e4..6ced8e5716 100644
--- a/sysdeps/posix/nice.c
+++ b/sysdeps/posix/nice.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/posix/open64.c b/sysdeps/posix/open64.c
index c4209c8cdb..d163b590bc 100644
--- a/sysdeps/posix/open64.c
+++ b/sysdeps/posix/open64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fcntl.h>
#include <stdarg.h>
@@ -34,16 +34,8 @@ __libc_open64 (const char *file, int oflag, ...)
va_end (arg);
}
- if (SINGLE_THREAD_P)
- return __libc_open (file, oflag | O_LARGEFILE, mode);
-
- int oldtype = LIBC_CANCEL_ASYNC ();
-
- int result = __libc_open (file, oflag | O_LARGEFILE, mode);
-
- LIBC_CANCEL_RESET (oldtype);
-
- return result;
+ /* __libc_open should be a cancellation point. */
+ return __libc_open (file, oflag | O_LARGEFILE, mode);
}
weak_alias (__libc_open64, __open64)
libc_hidden_weak (__open64)
diff --git a/sysdeps/posix/opendir.c b/sysdeps/posix/opendir.c
index bb6bd7cc85..7d0c6d4c96 100644
--- a/sysdeps/posix/opendir.c
+++ b/sysdeps/posix/opendir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dirent.h>
#include <fcntl.h>
diff --git a/sysdeps/posix/pathconf.c b/sysdeps/posix/pathconf.c
index 0f893ec1ba..b49ec37c9a 100644
--- a/sysdeps/posix/pathconf.c
+++ b/sysdeps/posix/pathconf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/sysdeps/posix/pause.c b/sysdeps/posix/pause.c
index 2b9eca2192..a3c050dc77 100644
--- a/sysdeps/posix/pause.c
+++ b/sysdeps/posix/pause.c
@@ -1,5 +1,5 @@
/* pause -- suspend the process until a signal arrives. POSIX.1 version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <signal.h>
#include <unistd.h>
@@ -38,5 +38,3 @@ __libc_pause (void)
return __sigsuspend (&set);
}
weak_alias (__libc_pause, pause)
-
-LIBC_CANCEL_HANDLED (); /* sigsuspend handles our cancellation. */
diff --git a/sysdeps/posix/posix_fallocate.c b/sysdeps/posix/posix_fallocate.c
index f3c2182486..6ce30b0c37 100644
--- a/sysdeps/posix/posix_fallocate.c
+++ b/sysdeps/posix/posix_fallocate.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/sysdeps/posix/posix_fallocate64.c b/sysdeps/posix/posix_fallocate64.c
index 2eaeab2a6f..a545e34530 100644
--- a/sysdeps/posix/posix_fallocate64.c
+++ b/sysdeps/posix/posix_fallocate64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/sysdeps/posix/pread.c b/sysdeps/posix/pread.c
index aa0a56cf98..480aa63a82 100644
--- a/sysdeps/posix/pread.c
+++ b/sysdeps/posix/pread.c
@@ -1,6 +1,6 @@
/* Read block from given position in file without changing file pointer.
POSIX version.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/posix/pread64.c b/sysdeps/posix/pread64.c
index 04146239a8..8164f790da 100644
--- a/sysdeps/posix/pread64.c
+++ b/sysdeps/posix/pread64.c
@@ -1,6 +1,6 @@
/* Read block from given position in file without changing file pointer.
POSIX version.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/posix/preadv.c b/sysdeps/posix/preadv.c
index f944ec746e..0dec19a12d 100644
--- a/sysdeps/posix/preadv.c
+++ b/sysdeps/posix/preadv.c
@@ -1,5 +1,5 @@
/* Read data into multiple buffers. Generic version.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
diff --git a/sysdeps/posix/preadv2.c b/sysdeps/posix/preadv2.c
index 4f8557ac83..7c5f894e3d 100644
--- a/sysdeps/posix/preadv2.c
+++ b/sysdeps/posix/preadv2.c
@@ -1,5 +1,5 @@
/* Generic version of preadv2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/posix/preadv64.c b/sysdeps/posix/preadv64.c
index d0ee6dae4a..859f4066d6 100644
--- a/sysdeps/posix/preadv64.c
+++ b/sysdeps/posix/preadv64.c
@@ -1,5 +1,5 @@
/* Read data into multiple buffers. Generic LFS version.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define PREADV preadv64
#define PREAD __pread64
diff --git a/sysdeps/posix/preadv64v2.c b/sysdeps/posix/preadv64v2.c
index f89ad08c54..0f2015aa5d 100644
--- a/sysdeps/posix/preadv64v2.c
+++ b/sysdeps/posix/preadv64v2.c
@@ -1,5 +1,5 @@
/* Generic version of preadv2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/posix/preadv_common.c b/sysdeps/posix/preadv_common.c
index 14fd4cea2a..756c407b65 100644
--- a/sysdeps/posix/preadv_common.c
+++ b/sysdeps/posix/preadv_common.c
@@ -1,6 +1,6 @@
/* Read data into multiple buffers. Base implementation for preadv
and preadv64.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <sys/uio.h>
diff --git a/sysdeps/posix/profil.c b/sysdeps/posix/profil.c
index ae0a663533..7e5c6bcd2f 100644
--- a/sysdeps/posix/profil.c
+++ b/sysdeps/posix/profil.c
@@ -1,5 +1,5 @@
/* Low-level statistical profiling support function. Mostly POSIX.1 version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <unistd.h>
#include <errno.h>
#include <signal.h>
#include <sys/time.h>
+#include <stdint.h>
#include <libc-internal.h>
#include <sigsetops.h>
@@ -36,9 +37,9 @@ static size_t pc_offset;
static u_int pc_scale;
static inline void
-profil_count (void *pc)
+profil_count (uintptr_t pc)
{
- size_t i = (pc - pc_offset - (void *) 0) / 2;
+ size_t i = (pc - pc_offset) / 2;
if (sizeof (unsigned long long int) > sizeof (size_t))
i = (unsigned long long int) i * pc_scale / 65536;
@@ -104,8 +105,14 @@ __profil (u_short *sample_buffer, size_t size, size_t offset, u_int scale)
pc_offset = offset;
pc_scale = scale;
- act.sa_handler = (sighandler_t) &__profil_counter;
- act.sa_flags = SA_RESTART;
+#ifdef SA_SIGINFO
+ act.sa_sigaction = __profil_counter;
+ act.sa_flags = SA_SIGINFO;
+#else
+ act.sa_handler = __profil_counter;
+ act.sa_flags = 0;
+#endif
+ act.sa_flags |= SA_RESTART;
__sigfillset (&act.sa_mask);
if (__sigaction (SIGPROF, &act, oact_ptr) < 0)
return -1;
diff --git a/sysdeps/posix/pwrite.c b/sysdeps/posix/pwrite.c
index 0455a806d0..5722e03bb3 100644
--- a/sysdeps/posix/pwrite.c
+++ b/sysdeps/posix/pwrite.c
@@ -1,6 +1,6 @@
/* Write block to given position in file without changing file pointer.
POSIX version.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/posix/pwrite64.c b/sysdeps/posix/pwrite64.c
index 38c1903958..38c0ffecb1 100644
--- a/sysdeps/posix/pwrite64.c
+++ b/sysdeps/posix/pwrite64.c
@@ -1,6 +1,6 @@
/* Write block to given position in file without changing file pointer.
POSIX version.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/posix/pwritev.c b/sysdeps/posix/pwritev.c
index 3a8b1b2081..c71b6d2bf7 100644
--- a/sysdeps/posix/pwritev.c
+++ b/sysdeps/posix/pwritev.c
@@ -1,5 +1,5 @@
/* Write data into multiple buffers. Generic version.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
diff --git a/sysdeps/posix/pwritev2.c b/sysdeps/posix/pwritev2.c
index a39304d9d9..2a9510a9b9 100644
--- a/sysdeps/posix/pwritev2.c
+++ b/sysdeps/posix/pwritev2.c
@@ -1,5 +1,5 @@
/* Generic version of pwritev2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/posix/pwritev64.c b/sysdeps/posix/pwritev64.c
index f16b1c1b8e..5464460d31 100644
--- a/sysdeps/posix/pwritev64.c
+++ b/sysdeps/posix/pwritev64.c
@@ -1,5 +1,5 @@
/* Write data into multiple buffers. Generic LFS version.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define PWRITEV pwritev64
#define PWRITE __pwrite64
diff --git a/sysdeps/posix/pwritev64v2.c b/sysdeps/posix/pwritev64v2.c
index 7a3a3239d7..5ed1927ca6 100644
--- a/sysdeps/posix/pwritev64v2.c
+++ b/sysdeps/posix/pwritev64v2.c
@@ -1,5 +1,5 @@
/* Generic version of pwritev2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/posix/pwritev_common.c b/sysdeps/posix/pwritev_common.c
index 344ab4d61b..4a4bb37d8b 100644
--- a/sysdeps/posix/pwritev_common.c
+++ b/sysdeps/posix/pwritev_common.c
@@ -1,6 +1,6 @@
/* Write data into multiple buffers. Base implementation for pwritev
and pwritev64.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <sys/uio.h>
diff --git a/sysdeps/posix/raise.c b/sysdeps/posix/raise.c
index 1f02b201e1..47895c392b 100644
--- a/sysdeps/posix/raise.c
+++ b/sysdeps/posix/raise.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <signal.h>
#include <unistd.h>
diff --git a/sysdeps/posix/readdir.c b/sysdeps/posix/readdir.c
index a6ecc0fe5b..f5cf523ec6 100644
--- a/sysdeps/posix/readdir.c
+++ b/sysdeps/posix/readdir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <limits.h>
diff --git a/sysdeps/posix/readdir_r.c b/sysdeps/posix/readdir_r.c
index 2d691e7242..4703095e22 100644
--- a/sysdeps/posix/readdir_r.c
+++ b/sysdeps/posix/readdir_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <limits.h>
diff --git a/sysdeps/posix/readv.c b/sysdeps/posix/readv.c
index 4fe6218454..a7567d68e7 100644
--- a/sysdeps/posix/readv.c
+++ b/sysdeps/posix/readv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include <unistd.h>
diff --git a/sysdeps/posix/remove.c b/sysdeps/posix/remove.c
index 1ddf9ebc1b..5af7adf89b 100644
--- a/sysdeps/posix/remove.c
+++ b/sysdeps/posix/remove.c
@@ -1,5 +1,5 @@
/* ANSI C `remove' function to delete a file or directory. POSIX.1 version.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdio.h>
diff --git a/sysdeps/posix/rename.c b/sysdeps/posix/rename.c
index 15c7f56e65..197c157b17 100644
--- a/sysdeps/posix/rename.c
+++ b/sysdeps/posix/rename.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <unistd.h>
@@ -30,8 +30,8 @@ rename (const char *old, const char *new)
{
__set_errno (save);
/* Race condition, required for 1003.1 conformance. */
- if (__unlink (new) < 0 ||
- __link (old, new) < 0)
+ if (__unlink (new) < 0
+ || __link (old, new) < 0)
return -1;
}
else
diff --git a/sysdeps/posix/rewinddir.c b/sysdeps/posix/rewinddir.c
index 5c5d8f1514..8372455575 100644
--- a/sysdeps/posix/rewinddir.c
+++ b/sysdeps/posix/rewinddir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <dirent.h>
diff --git a/sysdeps/posix/seekdir.c b/sysdeps/posix/seekdir.c
index bcf2405e16..53c747652e 100644
--- a/sysdeps/posix/seekdir.c
+++ b/sysdeps/posix/seekdir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/sysdeps/posix/shm-directory.c b/sysdeps/posix/shm-directory.c
index 4e2285ff24..8ce5d042b7 100644
--- a/sysdeps/posix/shm-directory.c
+++ b/sysdeps/posix/shm-directory.c
@@ -1,5 +1,5 @@
/* Determine directory for shm/sem files. Generic POSIX version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <shm-directory.h>
#include <unistd.h>
diff --git a/sysdeps/posix/shm-directory.h b/sysdeps/posix/shm-directory.h
index 55ded84efa..c7979ebb72 100644
--- a/sysdeps/posix/shm-directory.h
+++ b/sysdeps/posix/shm-directory.h
@@ -1,5 +1,5 @@
/* Header for directory for shm/sem files.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SHM_DIRECTORY_H
diff --git a/sysdeps/posix/shm_open.c b/sysdeps/posix/shm_open.c
index b9b473ceed..3c4eb08c90 100644
--- a/sysdeps/posix/shm_open.c
+++ b/sysdeps/posix/shm_open.c
@@ -1,5 +1,5 @@
/* shm_open -- open a POSIX shared memory object. Generic POSIX file version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
diff --git a/sysdeps/posix/shm_unlink.c b/sysdeps/posix/shm_unlink.c
index de8466f4c1..c829ecea53 100644
--- a/sysdeps/posix/shm_unlink.c
+++ b/sysdeps/posix/shm_unlink.c
@@ -1,5 +1,5 @@
/* shm_unlink -- remove a POSIX shared memory object. Generic POSIX version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
diff --git a/sysdeps/posix/sigblock.c b/sysdeps/posix/sigblock.c
index 9d8f4db47d..bd8244ec3f 100644
--- a/sysdeps/posix/sigblock.c
+++ b/sysdeps/posix/sigblock.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/sysdeps/posix/sigignore.c b/sysdeps/posix/sigignore.c
index 120d06cef1..5e8f532588 100644
--- a/sysdeps/posix/sigignore.c
+++ b/sysdeps/posix/sigignore.c
@@ -1,5 +1,5 @@
/* Set the disposition of SIG to SIG_IGN.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#define __need_NULL
diff --git a/sysdeps/posix/sigintr.c b/sysdeps/posix/sigintr.c
index 435fc75f3e..06d5bfc1cd 100644
--- a/sysdeps/posix/sigintr.c
+++ b/sysdeps/posix/sigintr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <signal.h>
diff --git a/sysdeps/posix/signal.c b/sysdeps/posix/signal.c
index 8a135c7b0e..8e0f258ee3 100644
--- a/sysdeps/posix/signal.c
+++ b/sysdeps/posix/signal.c
@@ -1,5 +1,5 @@
/* BSD-like signal function.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/sysdeps/posix/sigpause.c b/sysdeps/posix/sigpause.c
index db9df8eb6e..2d11e011fa 100644
--- a/sysdeps/posix/sigpause.c
+++ b/sysdeps/posix/sigpause.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define sigpause __rename_sigpause
#include <errno.h>
@@ -70,6 +70,3 @@ __xpg_sigpause (int sig)
return __sigpause (sig, 1);
}
strong_alias (__xpg_sigpause, __libc___xpg_sigpause)
-
-/* __sigsuspend handles cancellation. */
-LIBC_CANCEL_HANDLED ();
diff --git a/sysdeps/posix/sigset.c b/sysdeps/posix/sigset.c
index 6ab4a48767..fc35d95e99 100644
--- a/sysdeps/posix/sigset.c
+++ b/sysdeps/posix/sigset.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#define __need_NULL
diff --git a/sysdeps/posix/sigsetmask.c b/sysdeps/posix/sigsetmask.c
index 9895848937..fa5afb9194 100644
--- a/sysdeps/posix/sigsetmask.c
+++ b/sysdeps/posix/sigsetmask.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/sysdeps/posix/sigsuspend.c b/sysdeps/posix/sigsuspend.c
index 50953fc818..dfb0b99041 100644
--- a/sysdeps/posix/sigsuspend.c
+++ b/sysdeps/posix/sigsuspend.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/sysdeps/posix/sigwait.c b/sysdeps/posix/sigwait.c
index 4ff9d847d4..675e59fd7a 100644
--- a/sysdeps/posix/sigwait.c
+++ b/sysdeps/posix/sigwait.c
@@ -1,5 +1,5 @@
/* Implementation of sigwait function from POSIX.1c.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
@@ -85,16 +85,8 @@ do_sigwait (const sigset_t *set, int *sig)
int
__sigwait (const sigset_t *set, int *sig)
{
- if (SINGLE_THREAD_P)
- return do_sigwait (set, sig);
-
- int oldtype = LIBC_CANCEL_ASYNC ();
-
- int result = do_sigwait (set, sig);
-
- LIBC_CANCEL_RESET (oldtype);
-
- return result;
+ /* __sigsuspend should be a cancellation point. */
+ return do_sigitid (idtype, id, infop, options);
}
libc_hidden_def (__sigwait)
weak_alias (__sigwait, sigwait)
diff --git a/sysdeps/posix/sleep.c b/sysdeps/posix/sleep.c
index 7de748fe44..ce3b3985b2 100644
--- a/sysdeps/posix/sleep.c
+++ b/sysdeps/posix/sleep.c
@@ -1,5 +1,5 @@
/* Sleep for a given number of seconds. POSIX.1 version.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <time.h>
#include <unistd.h>
diff --git a/sysdeps/posix/spawni.c b/sysdeps/posix/spawni.c
index b138ab4393..55950501ac 100644
--- a/sysdeps/posix/spawni.c
+++ b/sysdeps/posix/spawni.c
@@ -1,5 +1,5 @@
/* Guts of POSIX spawn interface. Generic POSIX.1 version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <spawn.h>
#include <assert.h>
@@ -68,11 +68,11 @@ maybe_script_execute (struct posix_spawn_args *args)
ptrdiff_t argc = args->argc;
/* Construct an argument list for the shell. */
- char *new_argv[argc + 1];
+ char *new_argv[argc + 2];
new_argv[0] = (char *) _PATH_BSHELL;
new_argv[1] = (char *) args->file;
if (argc > 1)
- memcpy (new_argv + 2, argv + 1, argc * sizeof(char *));
+ memcpy (new_argv + 2, argv + 1, argc * sizeof (char *));
else
new_argv[2] = NULL;
@@ -204,9 +204,31 @@ __spawni_child (void *arguments)
break;
case spawn_do_dup2:
- if (__dup2 (action->action.dup2_action.fd,
- action->action.dup2_action.newfd)
- != action->action.dup2_action.newfd)
+ /* Austin Group issue #411 requires adddup2 action with source
+ and destination being equal to remove close-on-exec flag. */
+ if (action->action.dup2_action.fd
+ == action->action.dup2_action.newfd)
+ {
+ int fd = action->action.dup2_action.newfd;
+ int flags = __fcntl (fd, F_GETFD, 0);
+ if (flags == -1)
+ goto fail;
+ if (__fcntl (fd, F_SETFD, flags & ~FD_CLOEXEC) == -1)
+ goto fail;
+ }
+ else if (__dup2 (action->action.dup2_action.fd,
+ action->action.dup2_action.newfd)
+ != action->action.dup2_action.newfd)
+ goto fail;
+ break;
+
+ case spawn_do_chdir:
+ if (__chdir (action->action.chdir_action.path) != 0)
+ goto fail;
+ break;
+
+ case spawn_do_fchdir:
+ if (__fchdir (action->action.fchdir_action.fd) != 0)
goto fail;
break;
}
diff --git a/sysdeps/posix/sprofil.c b/sysdeps/posix/sprofil.c
index d9d639aaad..621771eb40 100644
--- a/sysdeps/posix/sprofil.c
+++ b/sysdeps/posix/sprofil.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 Free Software Foundation, Inc.
Contributed by David Mosberger-Tang <davidm@hpl.hp.com>.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <signal.h>
@@ -105,10 +105,10 @@ index_to_pc (unsigned long int n, size_t offset, unsigned int scale,
}
static void
-profil_count (void *pcp, int prof_uint)
+profil_count (uintptr_t pcp, int prof_uint)
{
struct region *region, *r = prof_info.last;
- size_t lo, hi, mid, pc = (unsigned long int) pcp;
+ size_t lo, hi, mid, pc = pcp;
unsigned long int i;
/* Fast path: pc is in same region as before. */
@@ -165,13 +165,13 @@ profil_count (void *pcp, int prof_uint)
}
static inline void
-profil_count_ushort (void *pcp)
+profil_count_ushort (uintptr_t pcp)
{
profil_count (pcp, 0);
}
static inline void
-profil_count_uint (void *pcp)
+profil_count_uint (uintptr_t pcp)
{
profil_count (pcp, 1);
}
@@ -334,11 +334,18 @@ __sprofil (struct prof *profp, int profcnt, struct timeval *tvp,
prof_info.last = prof_info.region;
/* Install SIGPROF handler. */
- if (flags & PROF_UINT)
- act.sa_handler = (sighandler_t) &__profil_counter_uint;
- else
- act.sa_handler = (sighandler_t) &__profil_counter_ushort;
- act.sa_flags = SA_RESTART;
+#ifdef SA_SIGINFO
+ act.sa_sigaction= flags & PROF_UINT
+ ? __profil_counter_uint
+ : __profil_counter_ushort;
+ act.sa_flags = SA_SIGINFO;
+#else
+ act.sa_handler = flags & PROF_UINT
+ ? (sighandler_t) __profil_counter_uint
+ : (sighandler_t) __profil_counter_ushort;
+ act.sa_flags = 0;
+#endif
+ act.sa_flags |= SA_RESTART;
__sigfillset (&act.sa_mask);
if (__sigaction (SIGPROF, &act, &prof_info.saved_action) < 0)
return -1;
diff --git a/sysdeps/posix/sysconf.c b/sysdeps/posix/sysconf.c
index 8b74ad6184..da1f22d1f4 100644
--- a/sysdeps/posix/sysconf.c
+++ b/sysdeps/posix/sysconf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <limits.h>
@@ -1116,11 +1116,7 @@ __sysconf (int name)
#endif
case _SC_STREAMS:
-#ifdef _XOPEN_STREAMS
- return _XOPEN_STREAMS;
-#else
return -1;
-#endif
case _SC_HOST_NAME_MAX:
#ifdef HOST_NAME_MAX
diff --git a/sysdeps/posix/system.c b/sysdeps/posix/system.c
index d7594436ed..d8c6cb8e1c 100644
--- a/sysdeps/posix/system.c
+++ b/sysdeps/posix/system.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -13,24 +13,40 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
-#include <stddef.h>
#include <stdlib.h>
#include <unistd.h>
+#include <sigsetops.h>
+#include <spawn.h>
+#include <pthread.h>
#include <sys/types.h>
#include <sys/wait.h>
-#include <libc-lock.h>
-#include <sysdep-cancel.h>
-#include <sigsetops.h>
+#include <stdio.h>
+#include <libc-lock.h>
+#include <not-errno.h>
+#include <not-cancel.h>
+#include <internal-signals.h>
#define SHELL_PATH "/bin/sh" /* Path of the shell. */
#define SHELL_NAME "sh" /* Name to give it. */
+/* This system implementation aims to be thread-safe, which requires to
+ restore the signal dispositions for SIGINT and SIGQUIT correctly and to
+ deal with cancellation by terminating the child process.
+
+ The signal disposition restoration on the single-thread case is
+ straighfoward. For multithreaded case, a reference-counter with a lock
+ is used, so the first thread will set the SIGINT/SIGQUIT dispositions and
+ last thread will restore them.
+
+ Cancellation handling is done with thread cancellation clean-up handlers
+ on waitpid call. */
+
#ifdef _LIBC_REENTRANT
static struct sigaction intr, quit;
static int sa_refcntr;
@@ -50,17 +66,45 @@ __libc_lock_define_initialized (static, lock);
#endif
+#if defined(_LIBC_REENTRANT) && defined(SIGCANCEL)
+struct cancel_handler_args
+{
+ struct sigaction *quit;
+ struct sigaction *intr;
+ pid_t pid;
+};
+
+static void
+cancel_handler (void *arg)
+{
+ struct cancel_handler_args *args = (struct cancel_handler_args *) (arg);
+
+ __kill_noerrno (args->pid, SIGKILL);
+
+ TEMP_FAILURE_RETRY (__waitpid_nocancel (args->pid, NULL, 0));
+
+ DO_LOCK ();
+ if (SUB_REF () == 0)
+ {
+ __sigaction (SIGQUIT, args->quit, NULL);
+ __sigaction (SIGINT, args->intr, NULL);
+ }
+ DO_UNLOCK ();
+}
+#endif
+
/* Execute LINE as a shell command, returning its status. */
static int
do_system (const char *line)
{
- int status, save;
+ int status;
pid_t pid;
struct sigaction sa;
#ifndef _LIBC_REENTRANT
struct sigaction intr, quit;
#endif
sigset_t omask;
+ sigset_t reset;
sa.sa_handler = SIG_IGN;
sa.sa_flags = 0;
@@ -69,105 +113,72 @@ do_system (const char *line)
DO_LOCK ();
if (ADD_REF () == 0)
{
- if (__sigaction (SIGINT, &sa, &intr) < 0)
- {
- (void) SUB_REF ();
- goto out;
- }
- if (__sigaction (SIGQUIT, &sa, &quit) < 0)
- {
- save = errno;
- (void) SUB_REF ();
- goto out_restore_sigint;
- }
+ /* sigaction can not fail with SIGINT/SIGQUIT used with SIG_IGN. */
+ __sigaction (SIGINT, &sa, &intr);
+ __sigaction (SIGQUIT, &sa, &quit);
}
DO_UNLOCK ();
- /* We reuse the bitmap in the 'sa' structure. */
__sigaddset (&sa.sa_mask, SIGCHLD);
- save = errno;
- if (__sigprocmask (SIG_BLOCK, &sa.sa_mask, &omask) < 0)
+ /* sigprocmask can not fail with SIG_BLOCK used with valid input
+ arguments. */
+ __sigprocmask (SIG_BLOCK, &sa.sa_mask, &omask);
+
+ __sigemptyset (&reset);
+ if (intr.sa_handler != SIG_IGN)
+ __sigaddset(&reset, SIGINT);
+ if (quit.sa_handler != SIG_IGN)
+ __sigaddset(&reset, SIGQUIT);
+
+ posix_spawnattr_t spawn_attr;
+ /* None of the posix_spawnattr_* function returns an error, including
+ posix_spawnattr_setflags for the follow specific usage (using valid
+ flags). */
+ __posix_spawnattr_init (&spawn_attr);
+ __posix_spawnattr_setsigmask (&spawn_attr, &omask);
+ __posix_spawnattr_setsigdefault (&spawn_attr, &reset);
+ __posix_spawnattr_setflags (&spawn_attr,
+ POSIX_SPAWN_SETSIGDEF | POSIX_SPAWN_SETSIGMASK);
+
+ status = __posix_spawn (&pid, SHELL_PATH, 0, &spawn_attr,
+ (char *const[]){ (char*) SHELL_NAME,
+ (char*) "-c",
+ (char *) line, NULL },
+ __environ);
+ __posix_spawnattr_destroy (&spawn_attr);
+
+ if (status == 0)
{
-#ifndef _LIBC
- if (errno == ENOSYS)
- __set_errno (save);
- else
-#endif
- {
- DO_LOCK ();
- if (SUB_REF () == 0)
- {
- save = errno;
- (void) __sigaction (SIGQUIT, &quit, (struct sigaction *) NULL);
- out_restore_sigint:
- (void) __sigaction (SIGINT, &intr, (struct sigaction *) NULL);
- __set_errno (save);
- }
- out:
- DO_UNLOCK ();
- return -1;
- }
- }
-
-#ifdef CLEANUP_HANDLER
- CLEANUP_HANDLER;
-#endif
-
-#ifdef FORK
- pid = FORK ();
-#else
- pid = __fork ();
+ /* Cancellation results in cleanup handlers running as exceptions in
+ the block where they were installed, so it is safe to reference
+ stack variable allocate in the broader scope. */
+#if defined(_LIBC_REENTRANT) && defined(SIGCANCEL)
+ struct cancel_handler_args cancel_args =
+ {
+ .quit = &quit,
+ .intr = &intr,
+ .pid = pid
+ };
+ __libc_cleanup_region_start (1, cancel_handler, &cancel_args);
#endif
- if (pid == (pid_t) 0)
- {
- /* Child side. */
- const char *new_argv[4];
- new_argv[0] = SHELL_NAME;
- new_argv[1] = "-c";
- new_argv[2] = line;
- new_argv[3] = NULL;
-
- /* Restore the signals. */
- (void) __sigaction (SIGINT, &intr, (struct sigaction *) NULL);
- (void) __sigaction (SIGQUIT, &quit, (struct sigaction *) NULL);
- (void) __sigprocmask (SIG_SETMASK, &omask, (sigset_t *) NULL);
- INIT_LOCK ();
-
- /* Exec the shell. */
- (void) __execve (SHELL_PATH, (char *const *) new_argv, __environ);
- _exit (127);
- }
- else if (pid < (pid_t) 0)
- /* The fork failed. */
- status = -1;
- else
- /* Parent side. */
- {
/* Note the system() is a cancellation point. But since we call
waitpid() which itself is a cancellation point we do not
have to do anything here. */
if (TEMP_FAILURE_RETRY (__waitpid (pid, &status, 0)) != pid)
status = -1;
- }
-
-#ifdef CLEANUP_HANDLER
- CLEANUP_RESET;
+#if defined(_LIBC_REENTRANT) && defined(SIGCANCEL)
+ __libc_cleanup_region_end (0);
#endif
+ }
- save = errno;
DO_LOCK ();
- if ((SUB_REF () == 0
- && (__sigaction (SIGINT, &intr, (struct sigaction *) NULL)
- | __sigaction (SIGQUIT, &quit, (struct sigaction *) NULL)) != 0)
- || __sigprocmask (SIG_SETMASK, &omask, (sigset_t *) NULL) != 0)
+ if (SUB_REF () == 0)
{
-#ifndef _LIBC
- /* glibc cannot be used on systems without waitpid. */
- if (errno == ENOSYS)
- __set_errno (save);
- else
-#endif
- status = -1;
+ /* sigaction can not fail with SIGINT/SIGQUIT used with old
+ disposition. Same applies for sigprocmask. */
+ __sigaction (SIGINT, &intr, NULL);
+ __sigaction (SIGQUIT, &quit, NULL);
+ __sigprocmask (SIG_SETMASK, &omask, NULL);
}
DO_UNLOCK ();
diff --git a/sysdeps/posix/sysv_signal.c b/sysdeps/posix/sysv_signal.c
index 2727ab0ee3..e1b85a89d7 100644
--- a/sysdeps/posix/sysv_signal.c
+++ b/sysdeps/posix/sysv_signal.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/sysdeps/posix/telldir.c b/sysdeps/posix/telldir.c
index 8caea582f9..d316fd8c79 100644
--- a/sysdeps/posix/telldir.c
+++ b/sysdeps/posix/telldir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dirent.h>
diff --git a/sysdeps/posix/tempname.c b/sysdeps/posix/tempname.c
index 432262a03b..692c336452 100644
--- a/sysdeps/posix/tempname.c
+++ b/sysdeps/posix/tempname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if !_LIBC
# include <config.h>
@@ -50,7 +50,7 @@
#include <string.h>
#include <fcntl.h>
-#include <sys/time.h>
+#include <time.h>
#include <stdint.h>
#include <unistd.h>
@@ -63,7 +63,6 @@
# define struct_stat64 struct stat
# define __gen_tempname gen_tempname
# define __getpid getpid
-# define __gettimeofday gettimeofday
# define __mkdir mkdir
# define __open open
# define __lxstat64(version, file, buf) lstat (file, buf)
@@ -71,22 +70,15 @@
#endif
#ifdef _LIBC
-# include <hp-timing.h>
-# if HP_TIMING_AVAIL
-# define RANDOM_BITS(Var) \
- if (__glibc_unlikely (value == UINT64_C (0))) \
- { \
- /* If this is the first time this function is used initialize \
- the variable we accumulate the value in to some somewhat \
- random value. If we'd not do this programs at startup time \
- might have a reduced set of possible names, at least on slow \
- machines. */ \
- struct timeval tv; \
- __gettimeofday (&tv, NULL); \
- value = ((uint64_t) tv.tv_usec << 16) ^ tv.tv_sec; \
- } \
- HP_TIMING_NOW (Var)
-# endif
+# include <random-bits.h>
+# define RANDOM_BITS(Var) ((Var) = random_bits ())
+# else
+# define RANDOM_BITS(Var) \
+ { \
+ struct timespec ts; \
+ clock_gettime (CLOCK_REALTIME, &ts); \
+ (Var) = ((uint64_t) tv.tv_nsec << 16) ^ tv.tv_sec; \
+ }
#endif
/* Use the widest available unsigned type if uint64_t is not
@@ -193,8 +185,6 @@ __gen_tempname (char *tmpl, int suffixlen, int flags, int kind)
{
int len;
char *XXXXXX;
- static uint64_t value;
- uint64_t random_time_bits;
unsigned int count;
int fd = -1;
int save_errno = errno;
@@ -226,21 +216,13 @@ __gen_tempname (char *tmpl, int suffixlen, int flags, int kind)
/* This is where the Xs start. */
XXXXXX = &tmpl[len - 6 - suffixlen];
- /* Get some more or less random data. */
-#ifdef RANDOM_BITS
- RANDOM_BITS (random_time_bits);
-#else
- {
- struct timeval tv;
- __gettimeofday (&tv, NULL);
- random_time_bits = ((uint64_t) tv.tv_usec << 16) ^ tv.tv_sec;
- }
-#endif
- value += random_time_bits ^ __getpid ();
-
- for (count = 0; count < attempts; value += 7777, ++count)
+ uint64_t pid = (uint64_t) __getpid () << 32;
+ for (count = 0; count < attempts; ++count)
{
- uint64_t v = value;
+ uint64_t v;
+ /* Get some more or less random data. */
+ RANDOM_BITS (v);
+ v ^= pid;
/* Fill in the random bits. */
XXXXXX[0] = letters[v % 62];
diff --git a/sysdeps/posix/time.c b/sysdeps/posix/time.c
deleted file mode 100644
index 6d0bb4bafc..0000000000
--- a/sysdeps/posix/time.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Copyright (C) 1991-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <stddef.h> /* For NULL. */
-#include <time.h>
-#include <sys/time.h>
-
-
-/* Return the current time as a `time_t' and also put it in *T if T is
- not NULL. Time is represented as seconds from Jan 1 00:00:00 1970. */
-time_t
-time (time_t *t)
-{
- struct timeval tv;
- time_t result;
-
- if (__gettimeofday (&tv, (struct timezone *) NULL))
- result = (time_t) -1;
- else
- result = (time_t) tv.tv_sec;
-
- if (t != NULL)
- *t = result;
- return result;
-}
-libc_hidden_def (time)
diff --git a/sysdeps/posix/timespec_get.c b/sysdeps/posix/timespec_get.c
deleted file mode 100644
index 6a40b64b8c..0000000000
--- a/sysdeps/posix/timespec_get.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/* timespec_get -- C11 interface to sample a clock. Generic POSIX.1 version.
- Copyright (C) 2013-2018 Free Software 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.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <time.h>
-
-
-/* Set TS to calendar time based in time base BASE. */
-int
-timespec_get (struct timespec *ts, int base)
-{
- switch (base)
- {
- case TIME_UTC:
- if (__clock_gettime (CLOCK_REALTIME, ts) < 0)
- return 0;
- break;
-
- default:
- return 0;
- }
-
- return base;
-}
diff --git a/sysdeps/posix/truncate.c b/sysdeps/posix/truncate.c
index 388e87734f..614415a637 100644
--- a/sysdeps/posix/truncate.c
+++ b/sysdeps/posix/truncate.c
@@ -1,5 +1,5 @@
/* Truncate a file given by name. Generic POSIX.1 version.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <errno.h>
diff --git a/sysdeps/posix/ttyname.c b/sysdeps/posix/ttyname.c
index 3dae5e8411..76dd0fb069 100644
--- a/sysdeps/posix/ttyname.c
+++ b/sysdeps/posix/ttyname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <limits.h>
diff --git a/sysdeps/posix/ttyname_r.c b/sysdeps/posix/ttyname_r.c
index 725de7c4fb..a4eb167c1f 100644
--- a/sysdeps/posix/ttyname_r.c
+++ b/sysdeps/posix/ttyname_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <limits.h>
diff --git a/sysdeps/posix/ulimit.c b/sysdeps/posix/ulimit.c
index 3a4c64dc90..ea5cf60850 100644
--- a/sysdeps/posix/ulimit.c
+++ b/sysdeps/posix/ulimit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdarg.h>
diff --git a/sysdeps/posix/usleep.c b/sysdeps/posix/usleep.c
index 3a3cd202c9..44b5b30953 100644
--- a/sysdeps/posix/usleep.c
+++ b/sysdeps/posix/usleep.c
@@ -1,5 +1,5 @@
/* Implementation of the BSD usleep function using nanosleep.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <time.h>
#include <unistd.h>
diff --git a/sysdeps/posix/utime.c b/sysdeps/posix/utime.c
index 63e4898c8d..7c07ecb27b 100644
--- a/sysdeps/posix/utime.c
+++ b/sysdeps/posix/utime.c
@@ -1,5 +1,5 @@
/* utime -- Change access and modification times of file. Posix version.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <errno.h>
diff --git a/sysdeps/posix/utimes.c b/sysdeps/posix/utimes.c
index a76eaf18a0..b9c44de5f7 100644
--- a/sysdeps/posix/utimes.c
+++ b/sysdeps/posix/utimes.c
@@ -1,5 +1,5 @@
/* utimes -- Change access and modification times of file. Posix version.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <utime.h>
#include <sys/time.h>
diff --git a/sysdeps/posix/wait.c b/sysdeps/posix/wait.c
index 2abcf24ab9..573aa47a6d 100644
--- a/sysdeps/posix/wait.c
+++ b/sysdeps/posix/wait.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/wait.h>
diff --git a/sysdeps/posix/wait3.c b/sysdeps/posix/wait3.c
index c3f977d62b..daba36c6dc 100644
--- a/sysdeps/posix/wait3.c
+++ b/sysdeps/posix/wait3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/wait.h>
diff --git a/sysdeps/posix/waitid.c b/sysdeps/posix/waitid.c
index 3207c742c2..0942623553 100644
--- a/sysdeps/posix/waitid.c
+++ b/sysdeps/posix/waitid.c
@@ -1,5 +1,5 @@
/* Pseudo implementation of waitid.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Zack Weinberg <zack@rabi.phys.columbia.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
@@ -151,16 +151,8 @@ OUR_WAITID (idtype_t idtype, id_t id, siginfo_t *infop, int options)
int
__waitid (idtype_t idtype, id_t id, siginfo_t *infop, int options)
{
- if (SINGLE_THREAD_P)
- return do_waitid (idtype, id, infop, options);
-
- int oldtype = LIBC_CANCEL_ASYNC ();
-
- int result = do_waitid (idtype, id, infop, options);
-
- LIBC_CANCEL_RESET (oldtype);
-
- return result;
+ /* __waitpid should be a cancellation point. */
+ return do_waitid (idtype, id, infop, options);
}
weak_alias (__waitid, waitid)
strong_alias (__waitid, __libc_waitid)
diff --git a/sysdeps/posix/writev.c b/sysdeps/posix/writev.c
index dbabe0d9ca..eb546e2f81 100644
--- a/sysdeps/posix/writev.c
+++ b/sysdeps/posix/writev.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include <unistd.h>
diff --git a/sysdeps/powerpc/Makefile b/sysdeps/powerpc/Makefile
index 6aa683b03f..df45d348d2 100644
--- a/sysdeps/powerpc/Makefile
+++ b/sysdeps/powerpc/Makefile
@@ -45,8 +45,15 @@ ifeq ($(subdir),misc)
sysdep_headers += sys/platform/ppc.h
tests += test-gettimebase
tests += tst-set_ppr
+
+# This test is expected to run and exit with EXIT_UNSUPPORTED on
+# processors that do not implement the Power ISA 2.06 or greater.
+# But the test makes use of instructions from Power ISA 2.06 and 2.07.
+CFLAGS-tst-set_ppr.c += -Wa,-many
endif
-ifneq (,$(filter %le,$(config-machine)))
-abilist-pattern = %-le.abilist
+ifeq ($(subdir),wcsmbs)
+CFLAGS-wcscpy.c += -DUNROLL_NTIMES=8
+CFLAGS-wcschr.c += -DUNROLL_NTIMES=8
+CFLAGS-wcsrchr.c += -DUNROLL_NTIMES=8
endif
diff --git a/sysdeps/powerpc/atomic-machine.h b/sysdeps/powerpc/atomic-machine.h
index 908380f98f..ca54266734 100644
--- a/sysdeps/powerpc/atomic-machine.h
+++ b/sysdeps/powerpc/atomic-machine.h
@@ -1,5 +1,5 @@
/* Atomic operations. PowerPC Common version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Paul Mackerras <paulus@au.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* Never include sysdeps/powerpc/atomic-machine.h directly.
diff --git a/sysdeps/powerpc/bits/endian.h b/sysdeps/powerpc/bits/endian.h
deleted file mode 100644
index 5bf6d90247..0000000000
--- a/sysdeps/powerpc/bits/endian.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright (C) 1997-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-/* PowerPC can be little or big endian. Hopefully gcc will know... */
-
-#ifndef _ENDIAN_H
-# error "Never use <bits/endian.h> directly; include <endian.h> instead."
-#endif
-
-#if defined __BIG_ENDIAN__ || defined _BIG_ENDIAN
-# if defined __LITTLE_ENDIAN__ || defined _LITTLE_ENDIAN
-# error Both BIG_ENDIAN and LITTLE_ENDIAN defined!
-# endif
-# define __BYTE_ORDER __BIG_ENDIAN
-#else
-# if defined __LITTLE_ENDIAN__ || defined _LITTLE_ENDIAN
-# define __BYTE_ORDER __LITTLE_ENDIAN
-# else
-# warning Cannot determine current byte order, assuming big-endian.
-# define __BYTE_ORDER __BIG_ENDIAN
-# endif
-#endif
diff --git a/sysdeps/powerpc/bits/endianness.h b/sysdeps/powerpc/bits/endianness.h
new file mode 100644
index 0000000000..3e7735237e
--- /dev/null
+++ b/sysdeps/powerpc/bits/endianness.h
@@ -0,0 +1,16 @@
+#ifndef _BITS_ENDIANNESS_H
+#define _BITS_ENDIANNESS_H 1
+
+#ifndef _BITS_ENDIAN_H
+# error "Never use <bits/endianness.h> directly; include <endian.h> instead."
+#endif
+
+/* PowerPC has selectable endianness. */
+#if defined __BIG_ENDIAN__ || defined _BIG_ENDIAN
+# define __BYTE_ORDER __BIG_ENDIAN
+#endif
+#if defined __LITTLE_ENDIAN__ || defined _LITTLE_ENDIAN
+# define __BYTE_ORDER __LITTLE_ENDIAN
+#endif
+
+#endif /* bits/endianness.h */
diff --git a/sysdeps/powerpc/bits/fenv.h b/sysdeps/powerpc/bits/fenv.h
index 39a75ebeec..18461fc8d9 100644
--- a/sysdeps/powerpc/bits/fenv.h
+++ b/sysdeps/powerpc/bits/fenv.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FENV_H
# error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
@@ -170,7 +170,7 @@ extern const fenv_t __fe_nonieee_env;
#endif
-#if __GLIBC_USE (IEC_60559_BFP_EXT)
+#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
/* Type representing floating-point control modes. */
typedef double femode_t;
diff --git a/sysdeps/powerpc/bits/fenvinline.h b/sysdeps/powerpc/bits/fenvinline.h
index 41316386ba..b3ca59e766 100644
--- a/sysdeps/powerpc/bits/fenvinline.h
+++ b/sysdeps/powerpc/bits/fenvinline.h
@@ -1,5 +1,5 @@
/* Inline floating-point environment handling functions for powerpc.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,17 +14,40 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if defined __GNUC__ && !defined _SOFT_FLOAT && !defined __NO_FPRS__
-/* Inline definition for fegetround. */
-# define __fegetround() \
- (__extension__ ({ int __fegetround_result; \
- __asm__ __volatile__ \
- ("mcrfs 7,7 ; mfcr %0" \
- : "=r"(__fegetround_result) : : "cr7"); \
- __fegetround_result & 3; }))
+/* Inline definitions for fegetround. */
+# define __fegetround_ISA300() \
+ (__extension__ ({ \
+ union { double __d; unsigned long long __ll; } __u; \
+ __asm__ __volatile__ ( \
+ ".machine push; .machine \"power9\"; mffsl %0; .machine pop" \
+ : "=f" (__u.__d)); \
+ __u.__ll & 0x0000000000000003LL; \
+ }))
+
+# define __fegetround_ISA2() \
+ (__extension__ ({ \
+ int __fegetround_result; \
+ __asm__ __volatile__ ("mcrfs 7,7 ; mfcr %0" \
+ : "=r"(__fegetround_result) : : "cr7"); \
+ __fegetround_result & 3; \
+ }))
+
+# ifdef _ARCH_PWR9
+# define __fegetround() __fegetround_ISA300()
+# elif defined __BUILTIN_CPU_SUPPORTS__
+# define __fegetround() \
+ (__glibc_likely (__builtin_cpu_supports ("arch_3_00")) \
+ ? __fegetround_ISA300() \
+ : __fegetround_ISA2() \
+ )
+# else
+# define __fegetround() __fegetround_ISA2()
+# endif
+
# define fegetround() __fegetround ()
# ifndef __NO_MATH_INLINES
diff --git a/sysdeps/powerpc/bits/floatn.h b/sysdeps/powerpc/bits/floatn.h
index c6d8b9b9b3..c0ac8469a6 100644
--- a/sysdeps/powerpc/bits/floatn.h
+++ b/sysdeps/powerpc/bits/floatn.h
@@ -1,5 +1,5 @@
/* Macros to control TS 18661-3 glibc features on powerpc.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_FLOATN_H
#define _BITS_FLOATN_H
diff --git a/sysdeps/powerpc/bits/fp-fast.h b/sysdeps/powerpc/bits/fp-fast.h
index 40924a8a07..45d34ac9ac 100644
--- a/sysdeps/powerpc/bits/fp-fast.h
+++ b/sysdeps/powerpc/bits/fp-fast.h
@@ -1,5 +1,5 @@
/* Define FP_FAST_* macros. PowerPC version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MATH_H
# error "Never use <bits/fp-fast.h> directly; include <math.h> instead."
diff --git a/sysdeps/powerpc/bits/hwcap.h b/sysdeps/powerpc/bits/hwcap.h
index b35f5eddc1..89e43fa1ad 100644
--- a/sysdeps/powerpc/bits/hwcap.h
+++ b/sysdeps/powerpc/bits/hwcap.h
@@ -1,5 +1,5 @@
/* Defines for bits in AT_HWCAP and AT_HWCAP2.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if !defined(_SYS_AUXV_H) && !defined(_SYSDEPS_SYSDEP_H)
# error "Never include <bits/hwcap.h> directly; use <sys/auxv.h> instead."
diff --git a/sysdeps/powerpc/bits/link.h b/sysdeps/powerpc/bits/link.h
index a23bb3676d..59c3f51234 100644
--- a/sysdeps/powerpc/bits/link.h
+++ b/sysdeps/powerpc/bits/link.h
@@ -1,5 +1,5 @@
/* Machine-specific declarations for dynamic linker interface. PowerPC version
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LINK_H
# error "Never include <bits/link.h> directly; use <link.h> instead."
diff --git a/sysdeps/powerpc/bits/mathinline.h b/sysdeps/powerpc/bits/mathinline.h
deleted file mode 100644
index e3e83865df..0000000000
--- a/sysdeps/powerpc/bits/mathinline.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/* Inline math functions for powerpc.
- Copyright (C) 1995-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _MATH_H
-# error "Never use <bits/mathinline.h> directly; include <math.h> instead."
-#endif
-
-#ifndef __extern_inline
-# define __MATH_INLINE __inline
-#else
-# define __MATH_INLINE __extern_inline
-#endif /* __cplusplus */
-
-#if defined __GNUC__ && !defined _SOFT_FLOAT && !defined __NO_FPRS__
-
-#if !defined __NO_MATH_INLINES && defined __OPTIMIZE__
-
-#ifdef __USE_ISOC99
-
-# ifndef __powerpc64__
-__MATH_INLINE long int lrint (double __x) __THROW;
-__MATH_INLINE long int
-__NTH (lrint (double __x))
-{
- union {
- double __d;
- long long __ll;
- } __u;
- __asm__ ("fctiw %0,%1" : "=f"(__u.__d) : "f"(__x));
- return __u.__ll;
-}
-
-__MATH_INLINE long int lrintf (float __x) __THROW;
-__MATH_INLINE long int
-__NTH (lrintf (float __x))
-{
- return lrint ((double) __x);
-}
-# endif
-
-#endif /* __USE_ISOC99 */
-#endif /* !__NO_MATH_INLINES && __OPTIMIZE__ */
-#endif /* __GNUC__ && !_SOFT_FLOAT && !__NO_FPRS__ */
diff --git a/sysdeps/powerpc/bits/setjmp.h b/sysdeps/powerpc/bits/setjmp.h
index 48ff130947..bc6ef0e52c 100644
--- a/sysdeps/powerpc/bits/setjmp.h
+++ b/sysdeps/powerpc/bits/setjmp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define the machine-dependent type `jmp_buf'. PowerPC version. */
#ifndef _BITS_SETJMP_H
diff --git a/sysdeps/powerpc/cpu-features.c b/sysdeps/powerpc/cpu-features.c
index 955d4778a6..c8c6c0b011 100644
--- a/sysdeps/powerpc/cpu-features.c
+++ b/sysdeps/powerpc/cpu-features.c
@@ -1,5 +1,5 @@
/* Initialize cpu feature data. PowerPC version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
#include <cpu-features.h>
@@ -30,7 +30,7 @@ init_cpu_features (struct cpu_features *cpu_features)
tunables is enable, since for this case user can explicit disable
unaligned optimizations. */
#if HAVE_TUNABLES
- int32_t cached_memfunc = TUNABLE_GET (glibc, tune, cached_memopt, int32_t,
+ int32_t cached_memfunc = TUNABLE_GET (glibc, cpu, cached_memopt, int32_t,
NULL);
cpu_features->use_cached_memopt = (cached_memfunc > 0);
#else
diff --git a/sysdeps/powerpc/cpu-features.h b/sysdeps/powerpc/cpu-features.h
index e596385b4b..91aa115253 100644
--- a/sysdeps/powerpc/cpu-features.h
+++ b/sysdeps/powerpc/cpu-features.h
@@ -1,5 +1,5 @@
/* Initialize cpu feature data. PowerPC version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef __CPU_FEATURES_POWERPC_H
# define __CPU_FEATURES_POWERPC_H
diff --git a/sysdeps/powerpc/dl-procinfo.c b/sysdeps/powerpc/dl-procinfo.c
index 35cac2e249..20706a648a 100644
--- a/sysdeps/powerpc/dl-procinfo.c
+++ b/sysdeps/powerpc/dl-procinfo.c
@@ -1,5 +1,5 @@
/* Data for processor capability information. PowerPC version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This information must be kept in sync with the _DL_HWCAP_COUNT
definition in procinfo.h.
diff --git a/sysdeps/powerpc/dl-procinfo.h b/sysdeps/powerpc/dl-procinfo.h
index 3803379ab2..66780bd7be 100644
--- a/sysdeps/powerpc/dl-procinfo.h
+++ b/sysdeps/powerpc/dl-procinfo.h
@@ -1,5 +1,5 @@
/* Processor capability information handling macros. PowerPC version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DL_PROCINFO_H
#define _DL_PROCINFO_H 1
@@ -147,6 +147,37 @@ _dl_string_platform (const char *str)
}
#if IS_IN (rtld)
+static inline void
+cache_geometry (const char * name, unsigned long int geometry)
+{
+ unsigned long int assocty, line;
+
+ _dl_printf ("%s", name);
+
+ line = geometry & 0xffff;
+ assocty = (geometry >> 16) & 0xffff;
+
+ if (line == 0)
+ _dl_printf ("Unknown line size, ");
+ else
+ _dl_printf ("%luB line size, ", line);
+
+ switch (assocty)
+ {
+ case 0:
+ _dl_printf ("Unknown associativity");
+ break;
+ case 1:
+ _dl_printf ("Directly mapped");
+ break;
+ case 0xffff:
+ _dl_printf ("Fully associative");
+ break;
+ default:
+ _dl_printf ("%lu-way set associative", assocty);
+ }
+}
+
static inline int
__attribute__ ((unused))
_dl_procinfo (unsigned int type, unsigned long int word)
@@ -154,7 +185,7 @@ _dl_procinfo (unsigned int type, unsigned long int word)
switch(type)
{
case AT_HWCAP:
- _dl_printf ("AT_HWCAP: ");
+ _dl_printf ("AT_HWCAP: ");
for (int i = 0; i <= _DL_HWCAP_LAST; ++i)
if (word & (1 << i))
@@ -164,7 +195,7 @@ _dl_procinfo (unsigned int type, unsigned long int word)
{
unsigned int offset = _DL_HWCAP_LAST + 1;
- _dl_printf ("AT_HWCAP2: ");
+ _dl_printf ("AT_HWCAP2: ");
/* We have to go through them all because the kernel added the
AT_HWCAP2 features starting with the high bits. */
@@ -173,8 +204,28 @@ _dl_procinfo (unsigned int type, unsigned long int word)
_dl_printf (" %s", _dl_hwcap_string (offset + i));
break;
}
+ case AT_L1I_CACHEGEOMETRY:
+ {
+ cache_geometry ("AT_L1I_CACHEGEOMETRY: ", word);
+ break;
+ }
+ case AT_L1D_CACHEGEOMETRY:
+ {
+ cache_geometry ("AT_L1D_CACHEGEOMETRY: ", word);
+ break;
+ }
+ case AT_L2_CACHEGEOMETRY:
+ {
+ cache_geometry ("AT_L2_CACHEGEOMETRY: ", word);
+ break;
+ }
+ case AT_L3_CACHEGEOMETRY:
+ {
+ cache_geometry ("AT_L3_CACHEGEOMETRY: ", word);
+ break;
+ }
default:
- /* This should not happen. */
+ /* Fallback to generic output mechanism. */
return -1;
}
_dl_printf ("\n");
diff --git a/sysdeps/powerpc/dl-tls.c b/sysdeps/powerpc/dl-tls.c
index 185ec69efe..c800d911c8 100644
--- a/sysdeps/powerpc/dl-tls.c
+++ b/sysdeps/powerpc/dl-tls.c
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. PowerPC version.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-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
diff --git a/sysdeps/powerpc/dl-tls.h b/sysdeps/powerpc/dl-tls.h
index 9f9306b83c..d872278ec2 100644
--- a/sysdeps/powerpc/dl-tls.h
+++ b/sysdeps/powerpc/dl-tls.h
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. PowerPC version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _PPC_DL_TLS_H
# define _PPC_DL_TLS_H 1
diff --git a/sysdeps/powerpc/dl-tunables.list b/sysdeps/powerpc/dl-tunables.list
index d26636a16b..1e487eb5e0 100644
--- a/sysdeps/powerpc/dl-tunables.list
+++ b/sysdeps/powerpc/dl-tunables.list
@@ -1,5 +1,5 @@
# powerpc specific tunables.
-# Copyright (C) 2017-2018 Free Software Foundation, Inc.
+# Copyright (C) 2017-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
@@ -14,10 +14,10 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
glibc {
- tune {
+ cpu {
cached_memopt {
type: INT_32
minval: 0
diff --git a/sysdeps/powerpc/ffs.c b/sysdeps/powerpc/ffs.c
index fce42ff4fc..50fe5bd365 100644
--- a/sysdeps/powerpc/ffs.c
+++ b/sysdeps/powerpc/ffs.c
@@ -1,6 +1,6 @@
/* Find first set bit in a word, counted from least significant end.
For PowerPC.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define ffsl __something_else
#include <limits.h>
diff --git a/sysdeps/powerpc/fpu/e_hypot.c b/sysdeps/powerpc/fpu/e_hypot.c
index b55db6d259..30d00e2603 100644
--- a/sysdeps/powerpc/fpu/e_hypot.c
+++ b/sysdeps/powerpc/fpu/e_hypot.c
@@ -1,5 +1,5 @@
/* Pythagorean addition using doubles
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library
Contributed by Adhemerval Zanella <azanella@br.ibm.com>, 2011
@@ -15,22 +15,13 @@
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
- not, see <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
#include <math-underflow.h>
#include <stdint.h>
-static const double two60 = 1.152921504606847e+18;
-static const double two500 = 3.2733906078961419e+150;
-static const double two600 = 4.149515568880993e+180;
-static const double two1022 = 4.49423283715579e+307;
-static const double twoM500 = 3.054936363499605e-151;
-static const double twoM600 = 2.4099198651028841e-181;
-static const double two60factor = 1.5592502418239997e+290;
-static const double pdnum = 2.225073858507201e-308;
-
/* __ieee754_hypot(x,y)
*
* This a FP only version without any FP->INT conversion.
@@ -39,53 +30,18 @@ static const double pdnum = 2.225073858507201e-308;
* is needed.
*/
-#ifdef _ARCH_PWR7
-/* POWER7 isinf and isnan optimization are fast. */
-# define TEST_INF_NAN(x, y) \
- if ((isinf(x) || isinf(y)) \
- && !issignaling (x) && !issignaling (y)) \
- return INFINITY; \
- if (isnan(x) || isnan(y)) \
- return x + y;
-# else
-/* For POWER6 and below isinf/isnan triggers LHS and PLT calls are
- * costly (especially for POWER6). */
-# define GET_TW0_HIGH_WORD(d1,d2,i1,i2) \
- do { \
- ieee_double_shape_type gh_u1; \
- ieee_double_shape_type gh_u2; \
- gh_u1.value = (d1); \
- gh_u2.value = (d2); \
- (i1) = gh_u1.parts.msw & 0x7fffffff; \
- (i2) = gh_u2.parts.msw & 0x7fffffff; \
- } while (0)
-
-# define TEST_INF_NAN(x, y) \
- do { \
- uint32_t hx, hy; \
- GET_TW0_HIGH_WORD(x, y, hx, hy); \
- if (hy > hx) { \
- uint32_t ht = hx; hx = hy; hy = ht; \
- } \
- if (hx >= 0x7ff00000) { \
- if ((hx == 0x7ff00000 || hy == 0x7ff00000) \
- && !issignaling (x) && !issignaling (y)) \
- return INFINITY; \
- return x + y; \
- } \
- } while (0)
-
-#endif
-
-
double
__ieee754_hypot (double x, double y)
{
+ if ((isinf (x) || isinf (y))
+ && !issignaling (x) && !issignaling (y))
+ return INFINITY;
+ if (isnan (x) || isnan (y))
+ return x + y;
+
x = fabs (x);
y = fabs (y);
- TEST_INF_NAN (x, y);
-
if (y > x)
{
double t = x;
@@ -94,40 +50,34 @@ __ieee754_hypot (double x, double y)
}
if (y == 0.0)
return x;
+
/* if y is higher enough, y * 2^60 might overflow. The tests if
y >= 1.7976931348623157e+308/2^60 (two60factor) and uses the
appropriate check to avoid the overflow exception generation. */
- if (y > two60factor)
- {
- if ((x / y) > two60)
- return x + y;
- }
- else
- {
- if (x > (y * two60))
- return x + y;
- }
- if (x > two500)
+ if (y <= 0x1.fffffffffffffp+963 && x > (y * 0x1p+60))
+ return x + y;
+
+ if (x > 0x1p+500)
{
- x *= twoM600;
- y *= twoM600;
- return sqrt (x * x + y * y) / twoM600;
+ x *= 0x1p-600;
+ y *= 0x1p-600;
+ return sqrt (x * x + y * y) / 0x1p-600;
}
- if (y < twoM500)
+ if (y < 0x1p-500)
{
- if (y <= pdnum)
+ if (y <= 0x0.fffffffffffffp-1022)
{
- x *= two1022;
- y *= two1022;
- double ret = sqrt (x * x + y * y) / two1022;
+ x *= 0x1p+1022;
+ y *= 0x1p+1022;
+ double ret = sqrt (x * x + y * y) / 0x1p+1022;
math_check_force_underflow_nonneg (ret);
return ret;
}
else
{
- x *= two600;
- y *= two600;
- return sqrt (x * x + y * y) / two600;
+ x *= 0x1p+600;
+ y *= 0x1p+600;
+ return sqrt (x * x + y * y) / 0x1p+600;
}
}
return sqrt (x * x + y * y);
diff --git a/sysdeps/powerpc/fpu/e_hypotf.c b/sysdeps/powerpc/fpu/e_hypotf.c
index 72b46ad9da..fe389deaec 100644
--- a/sysdeps/powerpc/fpu/e_hypotf.c
+++ b/sysdeps/powerpc/fpu/e_hypotf.c
@@ -1,5 +1,5 @@
/* Pythagorean addition using floats
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Adhemerval Zanella <azanella@br.ibm.com>, 2011
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
- not, see <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/powerpc/fpu/e_rem_pio2f.c b/sysdeps/powerpc/fpu/e_rem_pio2f.c
deleted file mode 100644
index 30fd53ee2c..0000000000
--- a/sysdeps/powerpc/fpu/e_rem_pio2f.c
+++ /dev/null
@@ -1,188 +0,0 @@
-/* e_rem_pio2f.c -- float version of e_rem_pio2.c
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Adhemerval Zanella <azanella@br.ibm.com>, 2011
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
- not, see <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-
-#include <math_private.h>
-#include "s_float_bitwise.h"
-
-/* defined in sysdeps/powerpc/fpu/k_rem_pio2f.c */
-int __fp_kernel_rem_pio2f (float *x, float *y, float e0, int32_t nx);
-
-/* __ieee754_rem_pio2f(x,y)
- *
- * return the remainder of x rem pi/2 in y[0]+y[1]
- */
-
-static const float npio2_hw[] = {
- 1.57077026e+00, 3.14154053e+00, 4.71228027e+00, 6.28308105e+00,
- 7.85388184e+00, 9.42456055e+00, 1.09953613e+01, 1.25661621e+01,
- 1.41369629e+01, 1.57077637e+01, 1.72783203e+01, 1.88491211e+01,
- 2.04199219e+01, 2.19907227e+01, 2.35615234e+01, 2.51323242e+01,
- 2.67031250e+01, 2.82739258e+01, 2.98447266e+01, 3.14155273e+01,
- 3.29863281e+01, 3.45566406e+01, 3.61279297e+01, 3.76982422e+01,
- 3.92695312e+01, 4.08398438e+01, 4.24111328e+01, 4.39814453e+01,
- 4.55527344e+01, 4.71230469e+01, 4.86943359e+01, 5.02646484e+01
-};
-
-
-static const float zero = 0.0000000000e+00;
-static const float two8 = 2.5600000000e+02;
-
-static const float half = 5.0000000000e-01;
-static const float invpio2 = 6.3661980629e-01;
-static const float pio2_1 = 1.5707855225e+00;
-static const float pio2_1t = 1.0804334124e-05;
-static const float pio2_2 = 1.0804273188e-05;
-static const float pio2_2t = 6.0770999344e-11;
-static const float pio2_3 = 6.0770943833e-11;
-static const float pio2_3t = 6.1232342629e-17;
-
-static const float pio4 = 7.8539801e-01;
-static const float pio3_4 = 2.3561945e+00;
-static const float pio2_24b = 1.5707951e+00;
-static const float pio2_2e7 = 2.0106054e+02;
-
-
-int32_t
-__ieee754_rem_pio2f (float x, float *y)
-{
- float ax, z, n, r, w, t, e0;
- float tx[3];
- int32_t i, nx;
-
- ax = __builtin_fabsf (x);
- if (ax <= pio4)
- {
- y[0] = x;
- y[1] = 0;
- return 0;
- }
- if (ax < pio3_4)
- {
- if (x > 0)
- {
- z = x - pio2_1;
- if (!__float_and_test28 (ax, pio2_24b))
- {
- y[0] = z - pio2_1t;
- y[1] = (z - y[0]) - pio2_1t;
- }
- else
- {
- z -= pio2_2;
- y[0] = z - pio2_2t;
- y[1] = (z - y[0]) - pio2_2t;
- }
- return 1;
- }
- else
- {
- z = x + pio2_1;
- if (!__float_and_test28 (ax, pio2_24b))
- {
- y[0] = z + pio2_1t;
- y[1] = (z - y[0]) + pio2_1t;
- }
- else
- {
- z += pio2_2;
- y[0] = z + pio2_2t;
- y[1] = (z - y[0]) + pio2_2t;
- }
- return -1;
- }
- }
- if (ax <= pio2_2e7)
- {
- n = __floorf (ax * invpio2 + half);
- i = (int32_t) n;
- r = ax - n * pio2_1;
- w = n * pio2_1t; /* 1st round good to 40 bit */
- if (i < 32 && !__float_and_test24 (ax, npio2_hw[i - 1]))
- {
- y[0] = r - w;
- }
- else
- {
- float i, j;
- j = __float_and8 (ax);
- y[0] = r - w;
- i = __float_and8 (y[0]);
- if (j / i > 256.0 || j / i < 3.9062500e-3)
- { /* 2nd iterations needed, good to 57 */
- t = r;
- w = n * pio2_2;
- r = t - w;
- w = n * pio2_2t - ((t - r) - w);
- y[0] = r - w;
- i = __float_and8 (y[0]);
- if (j / i > 33554432 || j / i < 2.9802322e-8)
- { /* 3rd iteration needed, 74 bits acc */
- t = r;
- w = n * pio2_3;
- r = t - w;
- w = n * pio2_3t - ((t - r) - w);
- y[0] = r - w;
- }
- }
- }
- y[1] = (r - y[0]) - w;
- if (x < 0)
- {
- y[0] = -y[0];
- y[1] = -y[1];
- return -i;
- }
- else
- {
- return i;
- }
- }
-
- /* all other (large) arguments */
- if (isnanf (x) || isinff (x))
- {
- y[0] = y[1] = x - x;
- return 0;
- }
-
- /* set z = scalbn(|x|,ilogb(x)-7) */
- e0 = __float_and8 (ax / 128.0);
- z = ax / e0;
-
- tx[0] = __floorf (z);
- z = (z - tx[0]) * two8;
- tx[1] = __floorf (z);
- z = (z - tx[1]) * two8;
- tx[2] = __floorf (z);
-
- nx = 3;
- while (tx[nx - 1] == zero)
- nx--;
-
- i = __fp_kernel_rem_pio2f (tx, y, e0, nx);
- if (x < 0)
- {
- y[0] = -y[0];
- y[1] = -y[1];
- return -i;
- }
- return i;
-}
diff --git a/sysdeps/powerpc/fpu/e_sqrt.c b/sysdeps/powerpc/fpu/e_sqrt.c
index 7dfb609565..85a4fa272e 100644
--- a/sysdeps/powerpc/fpu/e_sqrt.c
+++ b/sysdeps/powerpc/fpu/e_sqrt.c
@@ -1,5 +1,5 @@
/* Double-precision floating point square root.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,10 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
+#include <fenv.h>
#include <fenv_libc.h>
#include <inttypes.h>
#include <stdint.h>
diff --git a/sysdeps/powerpc/fpu/e_sqrtf.c b/sysdeps/powerpc/fpu/e_sqrtf.c
index be934c26a1..7a392867d2 100644
--- a/sysdeps/powerpc/fpu/e_sqrtf.c
+++ b/sysdeps/powerpc/fpu/e_sqrtf.c
@@ -1,5 +1,5 @@
/* Single-precision floating point square root.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,10 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
+#include <fenv.h>
#include <fenv_libc.h>
#include <inttypes.h>
#include <stdint.h>
@@ -137,7 +138,7 @@ __slow_ieee754_sqrtf (float x)
float
__ieee754_sqrtf (float x)
{
- double z;
+ float z;
#ifdef _ARCH_PPCSQ
asm ("fsqrts %0,%1\n" :"=f" (z):"f" (x));
diff --git a/sysdeps/powerpc/fpu/fclrexcpt.c b/sysdeps/powerpc/fpu/fclrexcpt.c
index 5ed4309a69..f7ee1323da 100644
--- a/sysdeps/powerpc/fpu/fclrexcpt.c
+++ b/sysdeps/powerpc/fpu/fclrexcpt.c
@@ -1,5 +1,5 @@
/* Clear given exceptions in current floating-point environment.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv_libc.h>
diff --git a/sysdeps/powerpc/fpu/fe_mask.c b/sysdeps/powerpc/fpu/fe_mask.c
index 5580e340b5..761a0b174b 100644
--- a/sysdeps/powerpc/fpu/fe_mask.c
+++ b/sysdeps/powerpc/fpu/fe_mask.c
@@ -1,5 +1,5 @@
/* Procedure definition for FE_MASK_ENV.
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <errno.h>
diff --git a/sysdeps/powerpc/fpu/fe_nomask.c b/sysdeps/powerpc/fpu/fe_nomask.c
index 4868315062..26ddb98355 100644
--- a/sysdeps/powerpc/fpu/fe_nomask.c
+++ b/sysdeps/powerpc/fpu/fe_nomask.c
@@ -1,5 +1,5 @@
/* Procedure definition for FE_NOMASK_ENV.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv_libc.h>
#include <errno.h>
diff --git a/sysdeps/powerpc/fpu/fedisblxcpt.c b/sysdeps/powerpc/fpu/fedisblxcpt.c
index 2daed44a41..9f86c5fbef 100644
--- a/sysdeps/powerpc/fpu/fedisblxcpt.c
+++ b/sysdeps/powerpc/fpu/fedisblxcpt.c
@@ -1,5 +1,5 @@
/* Disable floating-point exceptions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Geoffrey Keating <geoffk@geoffk.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv_libc.h>
@@ -26,32 +26,24 @@ fedisableexcept (int excepts)
int result, new;
/* Get current exception mask to return. */
- fe.fenv = curr.fenv = fegetenv_register ();
+ fe.fenv = curr.fenv = fegetenv_control ();
result = fenv_reg_to_exceptions (fe.l);
if ((excepts & FE_ALL_INVALID) == FE_ALL_INVALID)
excepts = (excepts | FE_INVALID) & ~ FE_ALL_INVALID;
+ new = fenv_exceptions_to_reg (excepts);
+
+ if (fenv_reg_to_exceptions (new) != excepts)
+ return -1;
+
/* Sets the new exception mask. */
- if (excepts & FE_INEXACT)
- fe.l &= ~(1 << (31 - FPSCR_XE));
- if (excepts & FE_DIVBYZERO)
- fe.l &= ~(1 << (31 - FPSCR_ZE));
- if (excepts & FE_UNDERFLOW)
- fe.l &= ~(1 << (31 - FPSCR_UE));
- if (excepts & FE_OVERFLOW)
- fe.l &= ~(1 << (31 - FPSCR_OE));
- if (excepts & FE_INVALID)
- fe.l &= ~(1 << (31 - FPSCR_VE));
+ fe.l &= ~new;
if (fe.l != curr.l)
- fesetenv_register (fe.fenv);
+ fesetenv_control (fe.fenv);
- new = __fegetexcept ();
- if (new == 0 && result != 0)
- (void)__fe_mask_env ();
+ __TEST_AND_ENTER_NON_STOP (-1ULL, fe.l);
- if ((new & excepts) != 0)
- result = -1;
return result;
}
diff --git a/sysdeps/powerpc/fpu/feenablxcpt.c b/sysdeps/powerpc/fpu/feenablxcpt.c
index 19cfe28e7a..141cfb4cd9 100644
--- a/sysdeps/powerpc/fpu/feenablxcpt.c
+++ b/sysdeps/powerpc/fpu/feenablxcpt.c
@@ -1,5 +1,5 @@
/* Enable floating-point exceptions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Geoffrey Keating <geoffk@geoffk.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv_libc.h>
@@ -26,33 +26,24 @@ feenableexcept (int excepts)
int result, new;
/* Get current exception mask to return. */
- fe.fenv = curr.fenv = fegetenv_register ();
+ fe.fenv = curr.fenv = fegetenv_control ();
result = fenv_reg_to_exceptions (fe.l);
if ((excepts & FE_ALL_INVALID) == FE_ALL_INVALID)
excepts = (excepts | FE_INVALID) & ~ FE_ALL_INVALID;
+ new = fenv_exceptions_to_reg (excepts);
+
+ if (fenv_reg_to_exceptions (new) != excepts)
+ return -1;
+
/* Sets the new exception mask. */
- if (excepts & FE_INEXACT)
- fe.l |= (1 << (31 - FPSCR_XE));
- if (excepts & FE_DIVBYZERO)
- fe.l |= (1 << (31 - FPSCR_ZE));
- if (excepts & FE_UNDERFLOW)
- fe.l |= (1 << (31 - FPSCR_UE));
- if (excepts & FE_OVERFLOW)
- fe.l |= (1 << (31 - FPSCR_OE));
- if (excepts & FE_INVALID)
- fe.l |= (1 << (31 - FPSCR_VE));
+ fe.l |= new;
if (fe.l != curr.l)
- fesetenv_register (fe.fenv);
-
- new = __fegetexcept ();
- if (new != 0 && result == 0)
- (void) __fe_nomask_env_priv ();
+ fesetenv_control (fe.fenv);
- if ((new & excepts) != excepts)
- result = -1;
+ __TEST_AND_EXIT_NON_STOP (0ULL, fe.l);
return result;
}
diff --git a/sysdeps/powerpc/fpu/fegetenv.c b/sysdeps/powerpc/fpu/fegetenv.c
index 8edf6e2b6e..7c093a0dc6 100644
--- a/sysdeps/powerpc/fpu/fegetenv.c
+++ b/sysdeps/powerpc/fpu/fegetenv.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv_libc.h>
diff --git a/sysdeps/powerpc/fpu/fegetexcept.c b/sysdeps/powerpc/fpu/fegetexcept.c
index a053a32bfe..179e3c4e81 100644
--- a/sysdeps/powerpc/fpu/fegetexcept.c
+++ b/sysdeps/powerpc/fpu/fegetexcept.c
@@ -1,5 +1,5 @@
/* Get floating-point exceptions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Geoffrey Keating <geoffk@geoffk.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv_libc.h>
@@ -23,21 +23,9 @@ int
__fegetexcept (void)
{
fenv_union_t fe;
- int result = 0;
- fe.fenv = fegetenv_register ();
+ fe.fenv = fegetenv_control ();
- if (fe.l & (1 << (31 - FPSCR_XE)))
- result |= FE_INEXACT;
- if (fe.l & (1 << (31 - FPSCR_ZE)))
- result |= FE_DIVBYZERO;
- if (fe.l & (1 << (31 - FPSCR_UE)))
- result |= FE_UNDERFLOW;
- if (fe.l & (1 << (31 - FPSCR_OE)))
- result |= FE_OVERFLOW;
- if (fe.l & (1 << (31 - FPSCR_VE)))
- result |= FE_INVALID;
-
- return result;
+ return fenv_reg_to_exceptions (fe.l);
}
weak_alias (__fegetexcept, fegetexcept)
diff --git a/sysdeps/powerpc/fpu/fegetmode.c b/sysdeps/powerpc/fpu/fegetmode.c
index b83dc9f625..65c5ebe56b 100644
--- a/sysdeps/powerpc/fpu/fegetmode.c
+++ b/sysdeps/powerpc/fpu/fegetmode.c
@@ -1,5 +1,5 @@
/* Store current floating-point control modes. PowerPC version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,13 +14,13 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv_libc.h>
int
fegetmode (femode_t *modep)
{
- *modep = fegetenv_register ();
+ *modep = fegetenv_control ();
return 0;
}
diff --git a/sysdeps/powerpc/fpu/fegetround.c b/sysdeps/powerpc/fpu/fegetround.c
index 6798068f4e..6af79e9d15 100644
--- a/sysdeps/powerpc/fpu/fegetround.c
+++ b/sysdeps/powerpc/fpu/fegetround.c
@@ -1,5 +1,5 @@
/* Return current rounding direction.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv_libc.h>
diff --git a/sysdeps/powerpc/fpu/feholdexcpt.c b/sysdeps/powerpc/fpu/feholdexcpt.c
index 8ec3fbff82..bcd09f63ec 100644
--- a/sysdeps/powerpc/fpu/feholdexcpt.c
+++ b/sysdeps/powerpc/fpu/feholdexcpt.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment and clear exceptions.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,11 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv_libc.h>
#include <fpu_control.h>
-#define _FPU_MASK_ALL (_FPU_MASK_ZM | _FPU_MASK_OM | _FPU_MASK_UM | _FPU_MASK_XM | _FPU_MASK_IM)
int
__feholdexcept (fenv_t *envp)
@@ -35,11 +34,7 @@ __feholdexcept (fenv_t *envp)
if (new.l == old.l)
return 0;
- /* If the old env had any enabled exceptions, then mask SIGFPE in the
- MSR FE0/FE1 bits. This may allow the FPU to run faster because it
- always takes the default action and can not generate SIGFPE. */
- if ((old.l & _FPU_MASK_ALL) != 0)
- (void)__fe_mask_env ();
+ __TEST_AND_ENTER_NON_STOP (old.l, 0ULL);
/* Put the new state in effect. */
fesetenv_register (new.fenv);
diff --git a/sysdeps/powerpc/fpu/fenv_const.c b/sysdeps/powerpc/fpu/fenv_const.c
index 84064f82fd..60abf87931 100644
--- a/sysdeps/powerpc/fpu/fenv_const.c
+++ b/sysdeps/powerpc/fpu/fenv_const.c
@@ -1,5 +1,5 @@
/* Constants for fenv_bits.h.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* We want to specify the bit pattern of the __fe_*_env constants, so
pretend they're really `long long' instead of `double'. */
diff --git a/sysdeps/powerpc/fpu/fenv_libc.h b/sysdeps/powerpc/fpu/fenv_libc.h
index 4c19d12b0b..ed368473ea 100644
--- a/sysdeps/powerpc/fpu/fenv_libc.h
+++ b/sysdeps/powerpc/fpu/fenv_libc.h
@@ -1,5 +1,5 @@
/* Internal libc stuff for floating point environment routines.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FENV_LIBC_H
#define _FENV_LIBC_H 1
@@ -27,13 +27,78 @@ extern const fenv_t *__fe_nomask_env_priv (void);
extern const fenv_t *__fe_mask_env (void) attribute_hidden;
+/* If the old env had any enabled exceptions and the new env has no enabled
+ exceptions, then mask SIGFPE in the MSR FE0/FE1 bits. This may allow the
+ FPU to run faster because it always takes the default action and can not
+ generate SIGFPE. */
+#define __TEST_AND_ENTER_NON_STOP(old, new) \
+ do { \
+ if (((old) & FPSCR_ENABLES_MASK) != 0 && ((new) & FPSCR_ENABLES_MASK) == 0) \
+ (void) __fe_mask_env (); \
+ } while (0)
+
+/* If the old env has no enabled exceptions and the new env has any enabled
+ exceptions, then unmask SIGFPE in the MSR FE0/FE1 bits. This will put the
+ hardware into "precise mode" and may cause the FPU to run slower on some
+ hardware. */
+#define __TEST_AND_EXIT_NON_STOP(old, new) \
+ do { \
+ if (((old) & FPSCR_ENABLES_MASK) == 0 && ((new) & FPSCR_ENABLES_MASK) != 0) \
+ (void) __fe_nomask_env_priv (); \
+ } while (0)
+
/* The sticky bits in the FPSCR indicating exceptions have occurred. */
#define FPSCR_STICKY_BITS ((FE_ALL_EXCEPT | FE_ALL_INVALID) & ~FE_INVALID)
/* Equivalent to fegetenv, but returns a fenv_t instead of taking a
pointer. */
-#define fegetenv_register() \
- ({ fenv_t env; asm volatile ("mffs %0" : "=f" (env)); env; })
+#define fegetenv_register() __builtin_mffs()
+
+/* Equivalent to fegetenv_register, but only returns bits for
+ status, exception enables, and mode.
+ Nicely, it turns out that the 'mffsl' instruction will decode to
+ 'mffs' on architectures older than "power9" because the additional
+ bits set for 'mffsl' are "don't care" for 'mffs'. 'mffs' is a superset
+ of 'mffsl'. */
+#define fegetenv_control() \
+ ({register double __fr; \
+ __asm__ __volatile__ ( \
+ ".machine push; .machine \"power9\"; mffsl %0; .machine pop" \
+ : "=f" (__fr)); \
+ __fr; \
+ })
+
+#define __fe_mffscrn(rn) \
+ ({register fenv_union_t __fr; \
+ if (__builtin_constant_p (rn)) \
+ __asm__ __volatile__ ( \
+ ".machine push; .machine \"power9\"; mffscrni %0,%1; .machine pop" \
+ : "=f" (__fr.fenv) : "i" (rn)); \
+ else \
+ { \
+ __fr.l = (rn); \
+ __asm__ __volatile__ ( \
+ ".machine push; .machine \"power9\"; mffscrn %0,%1; .machine pop" \
+ : "=f" (__fr.fenv) : "f" (__fr.fenv)); \
+ } \
+ __fr.fenv; \
+ })
+
+/* Like fegetenv_control, but also sets the rounding mode. */
+#ifdef _ARCH_PWR9
+#define fegetenv_and_set_rn(rn) __fe_mffscrn (rn)
+#else
+/* 'mffscrn' will decode to 'mffs' on ARCH < 3_00, which is still necessary
+ but not sufficient, because it does not set the rounding mode.
+ Explicitly set the rounding mode when 'mffscrn' actually doesn't. */
+#define fegetenv_and_set_rn(rn) \
+ ({register fenv_union_t __fr; \
+ __fr.fenv = __fe_mffscrn (rn); \
+ if (__glibc_unlikely (!(GLRO(dl_hwcap2) & PPC_FEATURE2_ARCH_3_00))) \
+ __fesetround_inline (rn); \
+ __fr.fenv; \
+ })
+#endif
/* Equivalent to fesetenv, but takes a fenv_t instead of a pointer. */
#define fesetenv_register(env) \
@@ -45,9 +110,14 @@ extern const fenv_t *__fe_mask_env (void) attribute_hidden;
"mtfsf 0xff,%0,1,0; " \
".machine pop" : : "f" (d)); \
else \
- asm volatile ("mtfsf 0xff,%0" : : "f" (d)); \
+ __builtin_mtfsf (0xff, d); \
} while(0)
+/* Set the last 2 nibbles of the FPSCR, which contain the
+ exception enables and the rounding mode.
+ 'fegetenv_control' retrieves these bits by reading the FPSCR. */
+#define fesetenv_control(env) __builtin_mtfsf (0b00000011, (env));
+
/* This very handy macro:
- Sets the rounding mode to 'round to nearest';
- Sets the processor into IEEE mode; and
@@ -57,9 +127,9 @@ extern const fenv_t *__fe_mask_env (void) attribute_hidden;
#define relax_fenv_state() \
do { \
if (GLRO(dl_hwcap) & PPC_FEATURE_HAS_DFP) \
- asm (".machine push; .machine \"power6\"; " \
+ asm volatile (".machine push; .machine \"power6\"; " \
"mtfsfi 7,0,1; .machine pop"); \
- asm ("mtfsfi 7,0"); \
+ asm volatile ("mtfsfi 7,0"); \
} while(0)
/* Set/clear a particular FPSCR bit (for instance,
@@ -78,7 +148,12 @@ typedef union
static inline int
__fesetround_inline (int round)
{
- if ((unsigned int) round < 2)
+#ifdef _ARCH_PWR9
+ __fe_mffscrn (round);
+#else
+ if (__glibc_likely (GLRO(dl_hwcap2) & PPC_FEATURE2_ARCH_3_00))
+ __fe_mffscrn (round);
+ else if ((unsigned int) round < 2)
{
asm volatile ("mtfsb0 30");
if ((unsigned int) round == 0)
@@ -94,64 +169,134 @@ __fesetround_inline (int round)
else
asm volatile ("mtfsb1 31");
}
-
+#endif
return 0;
}
+/* Same as __fesetround_inline, however without runtime check to use DFP
+ mtfsfi syntax (as relax_fenv_state) or if round value is valid. */
+static inline void
+__fesetround_inline_nocheck (const int round)
+{
+#ifdef _ARCH_PWR9
+ __fe_mffscrn (round);
+#else
+ if (__glibc_likely (GLRO(dl_hwcap2) & PPC_FEATURE2_ARCH_3_00))
+ __fe_mffscrn (round);
+ else
+ asm volatile ("mtfsfi 7,%0" : : "i" (round));
+#endif
+}
+
+#define FPSCR_MASK(bit) (1 << (31 - (bit)))
+
/* Definitions of all the FPSCR bit numbers */
enum {
FPSCR_FX = 0, /* exception summary */
+#define FPSCR_FX_MASK (FPSCR_MASK (FPSCR_FX))
FPSCR_FEX, /* enabled exception summary */
+#define FPSCR_FEX_MASK (FPSCR_MASK FPSCR_FEX))
FPSCR_VX, /* invalid operation summary */
+#define FPSCR_VX_MASK (FPSCR_MASK (FPSCR_VX))
FPSCR_OX, /* overflow */
+#define FPSCR_OX_MASK (FPSCR_MASK (FPSCR_OX))
FPSCR_UX, /* underflow */
+#define FPSCR_UX_MASK (FPSCR_MASK (FPSCR_UX))
FPSCR_ZX, /* zero divide */
+#define FPSCR_ZX_MASK (FPSCR_MASK (FPSCR_ZX))
FPSCR_XX, /* inexact */
+#define FPSCR_XX_MASK (FPSCR_MASK (FPSCR_XX))
FPSCR_VXSNAN, /* invalid operation for sNaN */
+#define FPSCR_VXSNAN_MASK (FPSCR_MASK (FPSCR_VXSNAN))
FPSCR_VXISI, /* invalid operation for Inf-Inf */
+#define FPSCR_VXISI_MASK (FPSCR_MASK (FPSCR_VXISI))
FPSCR_VXIDI, /* invalid operation for Inf/Inf */
+#define FPSCR_VXIDI_MASK (FPSCR_MASK (FPSCR_VXIDI))
FPSCR_VXZDZ, /* invalid operation for 0/0 */
+#define FPSCR_VXZDZ_MASK (FPSCR_MASK (FPSCR_VXZDZ))
FPSCR_VXIMZ, /* invalid operation for Inf*0 */
+#define FPSCR_VXIMZ_MASK (FPSCR_MASK (FPSCR_VXIMZ))
FPSCR_VXVC, /* invalid operation for invalid compare */
+#define FPSCR_VXVC_MASK (FPSCR_MASK (FPSCR_VXVC))
FPSCR_FR, /* fraction rounded [fraction was incremented by round] */
+#define FPSCR_FR_MASK (FPSCR_MASK (FPSCR_FR))
FPSCR_FI, /* fraction inexact */
+#define FPSCR_FI_MASK (FPSCR_MASK (FPSCR_FI))
FPSCR_FPRF_C, /* result class descriptor */
+#define FPSCR_FPRF_C_MASK (FPSCR_MASK (FPSCR_FPRF_C))
FPSCR_FPRF_FL, /* result less than (usually, less than 0) */
+#define FPSCR_FPRF_FL_MASK (FPSCR_MASK (FPSCR_FPRF_FL))
FPSCR_FPRF_FG, /* result greater than */
+#define FPSCR_FPRF_FG_MASK (FPSCR_MASK (FPSCR_FPRF_FG))
FPSCR_FPRF_FE, /* result equal to */
+#define FPSCR_FPRF_FE_MASK (FPSCR_MASK (FPSCR_FPRF_FE))
FPSCR_FPRF_FU, /* result unordered */
+#define FPSCR_FPRF_FU_MASK (FPSCR_MASK (FPSCR_FPRF_FU))
FPSCR_20, /* reserved */
FPSCR_VXSOFT, /* invalid operation set by software */
+#define FPSCR_VXSOFT_MASK (FPSCR_MASK (FPSCR_VXSOFT))
FPSCR_VXSQRT, /* invalid operation for square root */
+#define FPSCR_VXSQRT_MASK (FPSCR_MASK (FPSCR_VXSQRT))
FPSCR_VXCVI, /* invalid operation for invalid integer convert */
+#define FPSCR_VXCVI_MASK (FPSCR_MASK (FPSCR_VXCVI))
FPSCR_VE, /* invalid operation exception enable */
+#define FPSCR_VE_MASK (FPSCR_MASK (FPSCR_VE))
FPSCR_OE, /* overflow exception enable */
+#define FPSCR_OE_MASK (FPSCR_MASK (FPSCR_OE))
FPSCR_UE, /* underflow exception enable */
+#define FPSCR_UE_MASK (FPSCR_MASK (FPSCR_UE))
FPSCR_ZE, /* zero divide exception enable */
+#define FPSCR_ZE_MASK (FPSCR_MASK (FPSCR_ZE))
FPSCR_XE, /* inexact exception enable */
+#define FPSCR_XE_MASK (FPSCR_MASK (FPSCR_XE))
#ifdef _ARCH_PWR6
FPSCR_29, /* Reserved in ISA 2.05 */
+#define FPSCR_NI_MASK (FPSCR_MASK (FPSCR_29))
#else
- FPSCR_NI /* non-IEEE mode (typically, no denormalised numbers) */
+ FPSCR_NI, /* non-IEEE mode (typically, no denormalised numbers) */
+#define FPSCR_NI_MASK (FPSCR_MASK (FPSCR_NI))
#endif /* _ARCH_PWR6 */
/* the remaining two least-significant bits keep the rounding mode */
+ FPSCR_RN_hi,
+#define FPSCR_RN_hi_MASK (FPSCR_MASK (FPSCR_RN_hi))
+ FPSCR_RN_lo
+#define FPSCR_RN_lo_MASK (FPSCR_MASK (FPSCR_RN_lo))
};
+#define FPSCR_RN_MASK (FPSCR_RN_hi_MASK|FPSCR_RN_lo_MASK)
+#define FPSCR_ENABLES_MASK \
+ (FPSCR_VE_MASK|FPSCR_OE_MASK|FPSCR_UE_MASK|FPSCR_ZE_MASK|FPSCR_XE_MASK)
+#define FPSCR_BASIC_EXCEPTIONS_MASK \
+ (FPSCR_VX_MASK|FPSCR_OX_MASK|FPSCR_UX_MASK|FPSCR_ZX_MASK|FPSCR_XX_MASK)
+#define FPSCR_EXCEPTIONS_MASK (FPSCR_BASIC_EXCEPTIONS_MASK| \
+ FPSCR_VXSNAN_MASK|FPSCR_VXISI_MASK|FPSCR_VXIDI_MASK|FPSCR_VXZDZ_MASK| \
+ FPSCR_VXIMZ_MASK|FPSCR_VXVC_MASK|FPSCR_VXSOFT_MASK|FPSCR_VXSQRT_MASK| \
+ FPSCR_VXCVI_MASK)
+#define FPSCR_FPRF_MASK \
+ (FPSCR_FPRF_C_MASK|FPSCR_FPRF_FL_MASK|FPSCR_FPRF_FG_MASK| \
+ FPSCR_FPRF_FE_MASK|FPSCR_FPRF_FU_MASK)
+#define FPSCR_CONTROL_MASK (FPSCR_ENABLES_MASK|FPSCR_NI_MASK|FPSCR_RN_MASK)
+#define FPSCR_STATUS_MASK (FPSCR_FR_MASK|FPSCR_FI_MASK|FPSCR_FPRF_MASK)
+
+/* The bits in the FENV(1) ABI for exceptions correspond one-to-one with bits
+ in the FPSCR, albeit shifted to different but corresponding locations.
+ Similarly, the exception indicator bits in the FPSCR correspond one-to-one
+ with the exception enable bits. It is thus possible to map the FENV(1)
+ exceptions directly to the FPSCR enables with a simple mask and shift,
+ and vice versa. */
+#define FPSCR_EXCEPT_TO_ENABLE_SHIFT 22
+
static inline int
fenv_reg_to_exceptions (unsigned long long l)
{
- int result = 0;
- if (l & (1 << (31 - FPSCR_XE)))
- result |= FE_INEXACT;
- if (l & (1 << (31 - FPSCR_ZE)))
- result |= FE_DIVBYZERO;
- if (l & (1 << (31 - FPSCR_UE)))
- result |= FE_UNDERFLOW;
- if (l & (1 << (31 - FPSCR_OE)))
- result |= FE_OVERFLOW;
- if (l & (1 << (31 - FPSCR_VE)))
- result |= FE_INVALID;
- return result;
+ return (((int)l) & FPSCR_ENABLES_MASK) << FPSCR_EXCEPT_TO_ENABLE_SHIFT;
+}
+
+static inline unsigned long long
+fenv_exceptions_to_reg (int excepts)
+{
+ return (unsigned long long)
+ (excepts & FE_ALL_EXCEPT) >> FPSCR_EXCEPT_TO_ENABLE_SHIFT;
}
#ifdef _ARCH_PWR6
diff --git a/sysdeps/powerpc/fpu/fenv_private.h b/sysdeps/powerpc/fpu/fenv_private.h
index 945ab98018..4af767b965 100644
--- a/sysdeps/powerpc/fpu/fenv_private.h
+++ b/sysdeps/powerpc/fpu/fenv_private.h
@@ -1,5 +1,5 @@
/* Private floating point rounding and exceptions handling. PowerPC version.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,82 +14,40 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#ifndef FENV_PRIVATE_H
-#define FENV_PRIVATE_H 1
+#ifndef POWERPC_FENV_PRIVATE_H
+#define POWERPC_FENV_PRIVATE_H 1
#include <fenv.h>
#include <fenv_libc.h>
#include <fpu_control.h>
-/* Mask for the exception enable bits. */
-#define _FPU_ALL_TRAPS (_FPU_MASK_ZM | _FPU_MASK_OM | _FPU_MASK_UM \
- | _FPU_MASK_XM | _FPU_MASK_IM)
-
-/* Mask the rounding mode bits. */
-#define _FPU_MASK_RN 0xfffffffffffffffcLL
-
-/* Mask everything but the rounding modes and non-IEEE arithmetic flags. */
-#define _FPU_MASK_NOT_RN_NI 0xffffffff00000807LL
-
-/* Mask restore rounding mode and exception enabled. */
-#define _FPU_MASK_TRAPS_RN 0xffffffffffffff00LL
-
-/* Mask FP result flags, preserve fraction rounded/inexact bits. */
-#define _FPU_MASK_FRAC_INEX_RET_CC 0xfffffffffff80fffLL
+#ifdef _ARCH_PWR8
+/* There is no performance advantage to non-stop mode. */
+/* The odd syntax here is to innocuously reference the given variables
+ to prevent warnings about unused variables. */
+#define __TEST_AND_BEGIN_NON_STOP(old, new) do {} while ((old) * (new) * 0 != 0)
+#define __TEST_AND_END_NON_STOP(old, new) do {} while ((old) * (new) * 0 != 0)
+#else
+#define __TEST_AND_BEGIN_NON_STOP __TEST_AND_ENTER_NON_STOP
+#define __TEST_AND_END_NON_STOP __TEST_AND_EXIT_NON_STOP
+#endif
static __always_inline void
-__libc_feholdbits_ppc (fenv_t *envp, unsigned long long mask,
- unsigned long long bits)
+libc_feholdexcept_setround_ppc (fenv_t *envp, int r)
{
fenv_union_t old, new;
old.fenv = *envp = fegetenv_register ();
- new.l = (old.l & mask) | bits;
-
- /* If the old env had any enabled exceptions, then mask SIGFPE in the
- MSR FE0/FE1 bits. This may allow the FPU to run faster because it
- always takes the default action and can not generate SIGFPE. */
- if ((old.l & _FPU_ALL_TRAPS) != 0)
- (void) __fe_mask_env ();
+ __TEST_AND_BEGIN_NON_STOP (old.l, 0ULL);
+ /* Clear everything and set the rounding mode. */
+ new.l = r;
fesetenv_register (new.fenv);
}
-static __always_inline void
-libc_feholdexcept_ppc (fenv_t *envp)
-{
- __libc_feholdbits_ppc (envp, _FPU_MASK_NOT_RN_NI, 0LL);
-}
-
-static __always_inline void
-libc_feholdexcept_setround_ppc (fenv_t *envp, int r)
-{
- __libc_feholdbits_ppc (envp, _FPU_MASK_NOT_RN_NI & _FPU_MASK_RN, r);
-}
-
-static __always_inline void
-libc_fesetround_ppc (int r)
-{
- __fesetround_inline (r);
-}
-
-static __always_inline int
-libc_fetestexcept_ppc (int e)
-{
- fenv_union_t u;
- u.fenv = fegetenv_register ();
- return u.l & e;
-}
-
-static __always_inline void
-libc_feholdsetround_ppc (fenv_t *e, int r)
-{
- __libc_feholdbits_ppc (e, _FPU_MASK_TRAPS_RN, r);
-}
-
static __always_inline unsigned long long
__libc_femergeenv_ppc (const fenv_t *envp, unsigned long long old_mask,
unsigned long long new_mask)
@@ -102,22 +60,23 @@ __libc_femergeenv_ppc (const fenv_t *envp, unsigned long long old_mask,
/* Merge bits while masking unwanted bits from new and old env. */
new.l = (old.l & old_mask) | (new.l & new_mask);
- /* If the old env has no enabled exceptions and the new env has any enabled
- exceptions, then unmask SIGFPE in the MSR FE0/FE1 bits. This will put the
- hardware into "precise mode" and may cause the FPU to run slower on some
- hardware. */
- if ((old.l & _FPU_ALL_TRAPS) == 0 && (new.l & _FPU_ALL_TRAPS) != 0)
- (void) __fe_nomask_env_priv ();
-
- /* If the old env had any enabled exceptions and the new env has no enabled
- exceptions, then mask SIGFPE in the MSR FE0/FE1 bits. This may allow the
- FPU to run faster because it always takes the default action and can not
- generate SIGFPE. */
- if ((old.l & _FPU_ALL_TRAPS) != 0 && (new.l & _FPU_ALL_TRAPS) == 0)
- (void) __fe_mask_env ();
-
- /* Atomically enable and raise (if appropriate) exceptions set in `new'. */
- fesetenv_register (new.fenv);
+ __TEST_AND_END_NON_STOP (old.l, new.l);
+ __TEST_AND_BEGIN_NON_STOP (old.l, new.l);
+
+ /* If requesting to keep status, replace control, and merge exceptions,
+ and exceptions haven't changed, we can just set new control instead
+ of the whole FPSCR. */
+ if ((old_mask & (FPSCR_CONTROL_MASK|FPSCR_STATUS_MASK|FPSCR_EXCEPTIONS_MASK))
+ == (FPSCR_STATUS_MASK|FPSCR_EXCEPTIONS_MASK) &&
+ (new_mask & (FPSCR_CONTROL_MASK|FPSCR_STATUS_MASK|FPSCR_EXCEPTIONS_MASK))
+ == (FPSCR_CONTROL_MASK|FPSCR_EXCEPTIONS_MASK) &&
+ (old.l & FPSCR_EXCEPTIONS_MASK) == (new.l & FPSCR_EXCEPTIONS_MASK))
+ {
+ fesetenv_control (new.fenv);
+ }
+ else
+ /* Atomically enable and raise (if appropriate) exceptions set in `new'. */
+ fesetenv_register (new.fenv);
return old.l;
}
@@ -132,14 +91,15 @@ libc_fesetenv_ppc (const fenv_t *envp)
static __always_inline void
libc_feresetround_ppc (fenv_t *envp)
{
- __libc_femergeenv_ppc (envp, _FPU_MASK_TRAPS_RN, _FPU_MASK_FRAC_INEX_RET_CC);
+ fenv_union_t new = { .fenv = *envp };
+ fegetenv_and_set_rn (new.l & FPSCR_RN_MASK);
}
static __always_inline int
libc_feupdateenv_test_ppc (fenv_t *envp, int ex)
{
- return __libc_femergeenv_ppc (envp, _FPU_MASK_TRAPS_RN,
- _FPU_MASK_FRAC_INEX_RET_CC) & ex;
+ return __libc_femergeenv_ppc (envp, ~FPSCR_CONTROL_MASK,
+ ~FPSCR_STATUS_MASK) & ex;
}
static __always_inline void
@@ -174,18 +134,26 @@ libc_feupdateenv_ppc (fenv_t *e)
static __always_inline void
libc_feholdsetround_ppc_ctx (struct rm_ctx *ctx, int r)
{
+ fenv_union_t old;
+
+ ctx->env = old.fenv = fegetenv_and_set_rn (r);
+ ctx->updated_status = (r != (old.l & FPSCR_RN_MASK));
+}
+
+static __always_inline void
+libc_feholdsetround_noex_ppc_ctx (struct rm_ctx *ctx, int r)
+{
fenv_union_t old, new;
old.fenv = fegetenv_register ();
- new.l = (old.l & _FPU_MASK_TRAPS_RN) | r;
+ new.l = (old.l & ~(FPSCR_ENABLES_MASK|FPSCR_RN_MASK)) | r;
ctx->env = old.fenv;
if (__glibc_unlikely (new.l != old.l))
{
- if ((old.l & _FPU_ALL_TRAPS) != 0)
- (void) __fe_mask_env ();
- fesetenv_register (new.fenv);
+ __TEST_AND_BEGIN_NON_STOP (old.l, 0ULL);
+ fesetenv_control (new.fenv);
ctx->updated_status = true;
}
else
@@ -218,6 +186,9 @@ libc_feresetround_ppc_ctx (struct rm_ctx *ctx)
#define libc_feholdsetround_ctx libc_feholdsetround_ppc_ctx
#define libc_feholdsetroundf_ctx libc_feholdsetround_ppc_ctx
#define libc_feholdsetroundl_ctx libc_feholdsetround_ppc_ctx
+#define libc_feholdsetround_noex_ctx libc_feholdsetround_noex_ppc_ctx
+#define libc_feholdsetround_noexf_ctx libc_feholdsetround_noex_ppc_ctx
+#define libc_feholdsetround_noexl_ctx libc_feholdsetround_noex_ppc_ctx
#define libc_feresetround_ctx libc_feresetround_ppc_ctx
#define libc_feresetroundf_ctx libc_feresetround_ppc_ctx
#define libc_feresetroundl_ctx libc_feresetround_ppc_ctx
@@ -225,4 +196,6 @@ libc_feresetround_ppc_ctx (struct rm_ctx *ctx)
#define libc_feupdateenvf_ctx libc_feupdateenv_ppc_ctx
#define libc_feupdateenvl_ctx libc_feupdateenv_ppc_ctx
+#include_next <fenv_private.h>
+
#endif
diff --git a/sysdeps/powerpc/fpu/fesetenv.c b/sysdeps/powerpc/fpu/fesetenv.c
index ad9fda15b1..fc7b8192e2 100644
--- a/sysdeps/powerpc/fpu/fesetenv.c
+++ b/sysdeps/powerpc/fpu/fesetenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,13 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv_libc.h>
#include <fpu_control.h>
-#define _FPU_MASK_ALL (_FPU_MASK_ZM | _FPU_MASK_OM | _FPU_MASK_UM | _FPU_MASK_XM | _FPU_MASK_IM)
-
int
__fesetenv (const fenv_t *envp)
{
@@ -28,25 +26,12 @@ __fesetenv (const fenv_t *envp)
/* get the currently set exceptions. */
new.fenv = *envp;
- old.fenv = fegetenv_register ();
- if (old.l == new.l)
- return 0;
-
- /* If the old env has no enabled exceptions and the new env has any enabled
- exceptions, then unmask SIGFPE in the MSR FE0/FE1 bits. This will put the
- hardware into "precise mode" and may cause the FPU to run slower on some
- hardware. */
- if ((old.l & _FPU_MASK_ALL) == 0 && (new.l & _FPU_MASK_ALL) != 0)
- (void) __fe_nomask_env_priv ();
-
- /* If the old env had any enabled exceptions and the new env has no enabled
- exceptions, then mask SIGFPE in the MSR FE0/FE1 bits. This may allow the
- FPU to run faster because it always takes the default action and can not
- generate SIGFPE. */
- if ((old.l & _FPU_MASK_ALL) != 0 && (new.l & _FPU_MASK_ALL) == 0)
- (void)__fe_mask_env ();
-
- fesetenv_register (*envp);
+ old.fenv = fegetenv_control ();
+
+ __TEST_AND_EXIT_NON_STOP (old.l, new.l);
+ __TEST_AND_ENTER_NON_STOP (old.l, new.l);
+
+ fesetenv_register (new.fenv);
/* Success. */
return 0;
diff --git a/sysdeps/powerpc/fpu/fesetexcept.c b/sysdeps/powerpc/fpu/fesetexcept.c
index 85419c79f0..c165b042ba 100644
--- a/sysdeps/powerpc/fpu/fesetexcept.c
+++ b/sysdeps/powerpc/fpu/fesetexcept.c
@@ -1,5 +1,5 @@
/* Set given exception flags. PowerPC version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv_libc.h>
diff --git a/sysdeps/powerpc/fpu/fesetmode.c b/sysdeps/powerpc/fpu/fesetmode.c
index 32203a24ff..a7ead9f015 100644
--- a/sysdeps/powerpc/fpu/fesetmode.c
+++ b/sysdeps/powerpc/fpu/fesetmode.c
@@ -1,5 +1,5 @@
/* Install given floating-point control modes. PowerPC version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,16 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv_libc.h>
#include <fpu_control.h>
-#define _FPU_MASK_ALL (_FPU_MASK_ZM | _FPU_MASK_OM | _FPU_MASK_UM \
- | _FPU_MASK_XM | _FPU_MASK_IM)
-
-#define FPU_STATUS 0xbffff700ULL
-
int
fesetmode (const femode_t *modep)
{
@@ -32,18 +27,15 @@ fesetmode (const femode_t *modep)
/* Logic regarding enabled exceptions as in fesetenv. */
new.fenv = *modep;
- old.fenv = fegetenv_register ();
- new.l = (new.l & ~FPU_STATUS) | (old.l & FPU_STATUS);
+ old.fenv = fegetenv_control ();
+ new.l = (new.l & ~FPSCR_STATUS_MASK) | (old.l & FPSCR_STATUS_MASK);
if (old.l == new.l)
return 0;
- if ((old.l & _FPU_MASK_ALL) == 0 && (new.l & _FPU_MASK_ALL) != 0)
- (void) __fe_nomask_env_priv ();
-
- if ((old.l & _FPU_MASK_ALL) != 0 && (new.l & _FPU_MASK_ALL) == 0)
- (void) __fe_mask_env ();
+ __TEST_AND_EXIT_NON_STOP (old.l, new.l);
+ __TEST_AND_ENTER_NON_STOP (old.l, new.l);
- fesetenv_register (new.fenv);
+ fesetenv_control (new.fenv);
return 0;
}
diff --git a/sysdeps/powerpc/fpu/fesetround.c b/sysdeps/powerpc/fpu/fesetround.c
index 9ff239f7df..67dacb2d57 100644
--- a/sysdeps/powerpc/fpu/fesetround.c
+++ b/sysdeps/powerpc/fpu/fesetround.c
@@ -1,5 +1,5 @@
/* Set current rounding direction.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv_libc.h>
diff --git a/sysdeps/powerpc/fpu/feupdateenv.c b/sysdeps/powerpc/fpu/feupdateenv.c
index 2dbd1c4e9e..d5c7394252 100644
--- a/sysdeps/powerpc/fpu/feupdateenv.c
+++ b/sysdeps/powerpc/fpu/feupdateenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment and raise exceptions.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@@ -15,13 +15,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv_libc.h>
#include <fpu_control.h>
-#define _FPU_MASK_ALL (_FPU_MASK_ZM | _FPU_MASK_OM | _FPU_MASK_UM | _FPU_MASK_XM | _FPU_MASK_IM)
-
int
__feupdateenv (const fenv_t *envp)
{
@@ -36,19 +34,8 @@ __feupdateenv (const fenv_t *envp)
unchanged. */
new.l = (old.l & 0xffffffff1fffff00LL) | (new.l & 0x1ff80fff);
- /* If the old env has no enabled exceptions and the new env has any enabled
- exceptions, then unmask SIGFPE in the MSR FE0/FE1 bits. This will put
- the hardware into "precise mode" and may cause the FPU to run slower on
- some hardware. */
- if ((old.l & _FPU_MASK_ALL) == 0 && (new.l & _FPU_MASK_ALL) != 0)
- (void) __fe_nomask_env_priv ();
-
- /* If the old env had any enabled exceptions and the new env has no enabled
- exceptions, then mask SIGFPE in the MSR FE0/FE1 bits. This may allow the
- FPU to run faster because it always takes the default action and can not
- generate SIGFPE. */
- if ((old.l & _FPU_MASK_ALL) != 0 && (new.l & _FPU_MASK_ALL) == 0)
- (void)__fe_mask_env ();
+ __TEST_AND_EXIT_NON_STOP (old.l, new.l);
+ __TEST_AND_ENTER_NON_STOP (old.l, new.l);
/* Atomically enable and raise (if appropriate) exceptions set in `new'. */
fesetenv_register (new.fenv);
diff --git a/sysdeps/powerpc/fpu/fgetexcptflg.c b/sysdeps/powerpc/fpu/fgetexcptflg.c
index a0c1c5a183..4990121fd1 100644
--- a/sysdeps/powerpc/fpu/fgetexcptflg.c
+++ b/sysdeps/powerpc/fpu/fgetexcptflg.c
@@ -1,5 +1,5 @@
/* Store current representation for exceptions.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv_libc.h>
diff --git a/sysdeps/powerpc/fpu/fix-fp-int-compare-invalid.h b/sysdeps/powerpc/fpu/fix-fp-int-compare-invalid.h
index 00bf6cae58..58f3355b2c 100644
--- a/sysdeps/powerpc/fpu/fix-fp-int-compare-invalid.h
+++ b/sysdeps/powerpc/fpu/fix-fp-int-compare-invalid.h
@@ -1,6 +1,6 @@
/* Fix for missing "invalid" exceptions from floating-point
comparisons. PowerPC version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef FIX_FP_INT_COMPARE_INVALID_H
#define FIX_FP_INT_COMPARE_INVALID_H 1
diff --git a/sysdeps/powerpc/fpu/fraiseexcpt.c b/sysdeps/powerpc/fpu/fraiseexcpt.c
index 6859edce00..f9d0006ab1 100644
--- a/sysdeps/powerpc/fpu/fraiseexcpt.c
+++ b/sysdeps/powerpc/fpu/fraiseexcpt.c
@@ -1,5 +1,5 @@
/* Raise given exceptions.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv_libc.h>
diff --git a/sysdeps/powerpc/fpu/fsetexcptflg.c b/sysdeps/powerpc/fpu/fsetexcptflg.c
index b45dbd82bc..e91417dda8 100644
--- a/sysdeps/powerpc/fpu/fsetexcptflg.c
+++ b/sysdeps/powerpc/fpu/fsetexcptflg.c
@@ -1,5 +1,5 @@
/* Set floating-point environment exception handling.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv_libc.h>
diff --git a/sysdeps/powerpc/fpu/ftestexcept.c b/sysdeps/powerpc/fpu/ftestexcept.c
index d9febb0ab1..25d8abca98 100644
--- a/sysdeps/powerpc/fpu/ftestexcept.c
+++ b/sysdeps/powerpc/fpu/ftestexcept.c
@@ -1,5 +1,5 @@
/* Test exception in current environment.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv_libc.h>
diff --git a/sysdeps/powerpc/fpu/get-rounding-mode.h b/sysdeps/powerpc/fpu/get-rounding-mode.h
new file mode 100644
index 0000000000..781ee14b58
--- /dev/null
+++ b/sysdeps/powerpc/fpu/get-rounding-mode.h
@@ -0,0 +1,33 @@
+/* Determine floating-point rounding mode within libc. powerpc64 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _POWERPC64_GET_ROUNDING_MODE_H
+#define _POWERPC64_GET_ROUNDING_MODE_H 1
+
+#include <fenv.h>
+#include <fpu_control.h>
+
+/* Return the floating-point rounding mode. */
+
+static inline int
+get_rounding_mode (void)
+{
+ return _FPU_GET_RC ();
+}
+
+#endif /* get-rounding-mode.h */
diff --git a/sysdeps/powerpc/fpu/k_cosf.c b/sysdeps/powerpc/fpu/k_cosf.c
deleted file mode 100644
index 32d590d661..0000000000
--- a/sysdeps/powerpc/fpu/k_cosf.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/* k_cosf.c -- float version of k_cos.c
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Adhemerval Zanella <azanella@br.ibm.com>, 2011
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
- not, see <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-#include <fenv.h>
-#include <math_private.h>
-
-static const float twom27 = 7.4505806e-09;
-static const float dot3 = 3.0000001e-01;
-static const float dot78125 = 7.8125000e-01;
-
-static const float one = 1.0000000000e+00;
-static const float C1 = 4.1666667908e-02;
-static const float C2 = -1.3888889225e-03;
-static const float C3 = 2.4801587642e-05;
-static const float C4 = -2.7557314297e-07;
-static const float C5 = 2.0875723372e-09;
-static const float C6 = -1.1359647598e-11;
-
-float
-__kernel_cosf (float x, float y)
-{
- float a, hz, z, r, qx;
- float ix;
- ix = __builtin_fabsf (x);
- if (ix < twom27)
- { /* |x| < 2**-27 */
- __feraiseexcept (FE_INEXACT);
- return one;
- }
- z = x * x;
- r = z * (C1 + z * (C2 + z * (C3 + z * (C4 + z * (C5 + z * C6)))));
- if (ix < dot3) /* if |x| < 0.3 */
- return one - ((float) 0.5 * z - (z * r - x * y));
- else
- {
- if (ix > dot78125)
- { /* x > 0.78125 */
- qx = (float) 0.28125;
- }
- else
- {
- qx = ix / 4.0;
- }
- hz = (float) 0.5 *z - qx;
- a = one - qx;
- return a - (hz - (z * r - x * y));
- }
-}
diff --git a/sysdeps/powerpc/fpu/k_rem_pio2f.c b/sysdeps/powerpc/fpu/k_rem_pio2f.c
deleted file mode 100644
index 7e5a08ba5a..0000000000
--- a/sysdeps/powerpc/fpu/k_rem_pio2f.c
+++ /dev/null
@@ -1,273 +0,0 @@
-/* k_rem_pio2f.c -- float version of e_rem_pio2.c
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Adhemerval Zanella <azanella@br.ibm.com>, 2011
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
- not, see <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-
-#include <math_private.h>
-#include "s_float_bitwise.h"
-
-
-static const float two_over_pi[] = {
- 1.62000000e+02, 2.49000000e+02, 1.31000000e+02, 1.10000000e+02,
- 7.80000000e+01, 6.80000000e+01, 2.10000000e+01, 4.10000000e+01,
- 2.52000000e+02, 3.90000000e+01, 8.70000000e+01, 2.09000000e+02,
- 2.45000000e+02, 5.20000000e+01, 2.21000000e+02, 1.92000000e+02,
- 2.19000000e+02, 9.80000000e+01, 1.49000000e+02, 1.53000000e+02,
- 6.00000000e+01, 6.70000000e+01, 1.44000000e+02, 6.50000000e+01,
- 2.54000000e+02, 8.10000000e+01, 9.90000000e+01, 1.71000000e+02,
- 2.22000000e+02, 1.87000000e+02, 1.97000000e+02, 9.70000000e+01,
- 1.83000000e+02, 3.60000000e+01, 1.10000000e+02, 5.80000000e+01,
- 6.60000000e+01, 7.70000000e+01, 2.10000000e+02, 2.24000000e+02,
- 6.00000000e+00, 7.30000000e+01, 4.60000000e+01, 2.34000000e+02,
- 9.00000000e+00, 2.09000000e+02, 1.46000000e+02, 2.80000000e+01,
- 2.54000000e+02, 2.90000000e+01, 2.35000000e+02, 2.80000000e+01,
- 1.77000000e+02, 4.10000000e+01, 1.67000000e+02, 6.20000000e+01,
- 2.32000000e+02, 1.30000000e+02, 5.30000000e+01, 2.45000000e+02,
- 4.60000000e+01, 1.87000000e+02, 6.80000000e+01, 1.32000000e+02,
- 2.33000000e+02, 1.56000000e+02, 1.12000000e+02, 3.80000000e+01,
- 1.80000000e+02, 9.50000000e+01, 1.26000000e+02, 6.50000000e+01,
- 5.70000000e+01, 1.45000000e+02, 2.14000000e+02, 5.70000000e+01,
- 1.31000000e+02, 8.30000000e+01, 5.70000000e+01, 2.44000000e+02,
- 1.56000000e+02, 1.32000000e+02, 9.50000000e+01, 1.39000000e+02,
- 1.89000000e+02, 2.49000000e+02, 4.00000000e+01, 5.90000000e+01,
- 3.10000000e+01, 2.48000000e+02, 1.51000000e+02, 2.55000000e+02,
- 2.22000000e+02, 5.00000000e+00, 1.52000000e+02, 1.50000000e+01,
- 2.39000000e+02, 4.70000000e+01, 1.70000000e+01, 1.39000000e+02,
- 9.00000000e+01, 1.00000000e+01, 1.09000000e+02, 3.10000000e+01,
- 1.09000000e+02, 5.40000000e+01, 1.26000000e+02, 2.07000000e+02,
- 3.90000000e+01, 2.03000000e+02, 9.00000000e+00, 1.83000000e+02,
- 7.90000000e+01, 7.00000000e+01, 6.30000000e+01, 1.02000000e+02,
- 1.58000000e+02, 9.50000000e+01, 2.34000000e+02, 4.50000000e+01,
- 1.17000000e+02, 3.90000000e+01, 1.86000000e+02, 1.99000000e+02,
- 2.35000000e+02, 2.29000000e+02, 2.41000000e+02, 1.23000000e+02,
- 6.10000000e+01, 7.00000000e+00, 5.70000000e+01, 2.47000000e+02,
- 1.38000000e+02, 8.20000000e+01, 1.46000000e+02, 2.34000000e+02,
- 1.07000000e+02, 2.51000000e+02, 9.50000000e+01, 1.77000000e+02,
- 3.10000000e+01, 1.41000000e+02, 9.30000000e+01, 8.00000000e+00,
- 8.60000000e+01, 3.00000000e+00, 4.80000000e+01, 7.00000000e+01,
- 2.52000000e+02, 1.23000000e+02, 1.07000000e+02, 1.71000000e+02,
- 2.40000000e+02, 2.07000000e+02, 1.88000000e+02, 3.20000000e+01,
- 1.54000000e+02, 2.44000000e+02, 5.40000000e+01, 2.90000000e+01,
- 1.69000000e+02, 2.27000000e+02, 1.45000000e+02, 9.70000000e+01,
- 9.40000000e+01, 2.30000000e+02, 2.70000000e+01, 8.00000000e+00,
- 1.01000000e+02, 1.53000000e+02, 1.33000000e+02, 9.50000000e+01,
- 2.00000000e+01, 1.60000000e+02, 1.04000000e+02, 6.40000000e+01,
- 1.41000000e+02, 2.55000000e+02, 2.16000000e+02, 1.28000000e+02,
- 7.70000000e+01, 1.15000000e+02, 3.90000000e+01, 4.90000000e+01,
- 6.00000000e+00, 6.00000000e+00, 2.10000000e+01, 8.60000000e+01,
- 2.02000000e+02, 1.15000000e+02, 1.68000000e+02, 2.01000000e+02,
- 9.60000000e+01, 2.26000000e+02, 1.23000000e+02, 1.92000000e+02,
- 1.40000000e+02, 1.07000000e+02
-};
-
-
-static const float PIo2[] = {
- 1.5703125000e+00, /* 0x3fc90000 */
- 4.5776367188e-04, /* 0x39f00000 */
- 2.5987625122e-05, /* 0x37da0000 */
- 7.5437128544e-08, /* 0x33a20000 */
- 6.0026650317e-11, /* 0x2e840000 */
- 7.3896444519e-13, /* 0x2b500000 */
- 5.3845816694e-15, /* 0x27c20000 */
- 5.6378512969e-18, /* 0x22d00000 */
- 8.3009228831e-20, /* 0x1fc40000 */
- 3.2756352257e-22, /* 0x1bc60000 */
- 6.3331015649e-25, /* 0x17440000 */
-};
-
-
-static const float zero = 0.0000000000e+00;
-static const float one = 1.0000000000;
-static const float twon8 = 3.9062500000e-03;
-static const float two8 = 2.5600000000e+02;
-
-
-int32_t
-__fp_kernel_rem_pio2f (float *x, float *y, float e0, int32_t nx)
-{
- int32_t jz, jx, jv, jp, jk, carry, n, iq[20], i, j, k, m, q0, ih, exp;
- float z, fw, f[20], fq[20], q[20];
-
- /* initialize jk */
- jp = jk = 9;
-
- /* determine jx,jv,q0, note that 3>q0 */
- jx = nx - 1;
- exp = __float_get_exp (e0) - 127;
- jv = (exp - 3) / 8;
- if (jv < 0)
- jv = 0;
- q0 = exp - 8 * (jv + 1);
-
- /* set up f[0] to f[jx+jk] where f[jx+jk] = two_over_pi[jv+jk] */
- j = jv - jx;
- m = jx + jk;
- for (i = 0; i <= m; i++, j++)
- f[i] = (j < 0) ? zero : two_over_pi[j];
-
- /* compute q[0],q[1],...q[jk] */
- for (i = 0; i <= jk; i++)
- {
- for (j = 0, fw = 0.0; j <= jx; j++)
- fw += x[j] * f[jx + i - j];
- q[i] = fw;
- }
-
- jz = jk;
-recompute:
- /* distill q[] into iq[] reversingly */
- for (i = 0, j = jz, z = q[jz]; j > 0; i++, j--)
- {
- fw = __truncf (twon8 * z);
- iq[i] = (int32_t) (z - two8 * fw);
- z = q[j - 1] + fw;
- }
-
- /* compute n */
- z = __scalbnf (z, q0); /* actual value of z */
- z -= 8.0 * __floorf (z * 0.125); /* trim off integer >= 8 */
- n = (int32_t) z;
- z -= __truncf (z);
- ih = 0;
- if (q0 > 0)
- { /* need iq[jz-1] to determine n */
- i = (iq[jz - 1] >> (8 - q0));
- n += i;
- iq[jz - 1] -= i << (8 - q0);
- ih = iq[jz - 1] >> (7 - q0);
- }
- else if (q0 == 0)
- ih = iq[jz - 1] >> 7;
- else if (z >= 0.5)
- ih = 2;
-
- if (ih > 0)
- { /* q > 0.5 */
- n += 1;
- carry = 0;
- for (i = 0; i < jz; i++)
- { /* compute 1-q */
- j = iq[i];
- if (carry == 0)
- {
- if (j != 0)
- {
- carry = 1;
- iq[i] = 0x100 - j;
- }
- }
- else
- iq[i] = 0xff - j;
- }
- if (q0 > 0)
- { /* rare case: chance is 1 in 12 */
- switch (q0)
- {
- case 1:
- iq[jz - 1] &= 0x7f;
- break;
- case 2:
- iq[jz - 1] &= 0x3f;
- break;
- }
- }
- if (ih == 2)
- {
- z = one - z;
- if (carry != 0)
- z -= __scalbnf (one, q0);
- }
- }
-
- /* check if recomputation is needed */
- if (z == zero)
- {
- j = 0;
- for (i = jz - 1; i >= jk; i--)
- j |= iq[i];
- if (j == 0)
- { /* need recomputation */
- for (k = 1; iq[jk - k] == 0; k++); /* k = no. of terms needed */
-
- for (i = jz + 1; i <= jz + k; i++)
- { /* add q[jz+1] to q[jz+k] */
- f[jx + i] = two_over_pi[jv + i];
- for (j = 0, fw = 0.0; j <= jx; j++)
- fw += x[j] * f[jx + i - j];
- q[i] = fw;
- }
- jz += k;
- goto recompute;
- }
- }
-
- /* chop off zero terms */
- if (z == 0.0)
- {
- jz -= 1;
- q0 -= 8;
- while (iq[jz] == 0)
- {
- jz--;
- q0 -= 8;
- }
- }
- else
- { /* break z into 8-bit if necessary */
- z = __scalbnf (z, -q0);
- if (z >= two8)
- {
- fw = __truncf (twon8 * z);
- iq[jz] = (int32_t) (z - two8 * fw);
- jz += 1;
- q0 += 8;
- iq[jz] = (int32_t) fw;
- }
- else
- iq[jz] = (int32_t) z;
- }
-
- /* convert integer "bit" chunk to floating-point value */
- fw = __scalbnf (one, q0);
- for (i = jz; i >= 0; i--)
- {
- q[i] = fw * (float) iq[i];
- fw *= twon8;
- }
-
- /* compute PIo2[0,...,jp]*q[jz,...,0] */
- for (i = jz; i >= 0; i--)
- {
- for (fw = 0.0, k = 0; k <= jp && k <= jz - i; k++)
- fw += PIo2[k] * q[i + k];
- fq[jz - i] = fw;
- }
-
- /* compress fq[] into y[] */
- fw = 0.0;
- for (i = jz; i >= 0; i--)
- fw += fq[i];
- y[0] = (ih == 0) ? fw : -fw;
- fw = fq[0] - fw;
- for (i = 1; i <= jz; i++)
- fw += fq[i];
- y[1] = (ih == 0) ? fw : -fw;
-
- return n & 7;
-}
diff --git a/sysdeps/powerpc/fpu/k_sinf.c b/sysdeps/powerpc/fpu/k_sinf.c
deleted file mode 100644
index 0fb99c7b2b..0000000000
--- a/sysdeps/powerpc/fpu/k_sinf.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/* k_sinf.c -- float version of k_sin.c
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Adhemerval Zanella <azanella@br.ibm.com>, 2011
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
- not, see <http://www.gnu.org/licenses/>. */
-
-#include <float.h>
-#include <math.h>
-#include <fenv.h>
-#include <math_private.h>
-
-
-static const float twom27 = 7.4505806000e-09;
-static const float half = 5.0000000000e-01;
-static const float S1 = -1.6666667163e-01;
-static const float S2 = 8.3333337680e-03;
-static const float S3 = -1.9841270114e-04;
-static const float S4 = 2.7557314297e-06;
-static const float S5 = -2.5050759689e-08;
-static const float S6 = 1.5896910177e-10;
-
-
-float
-__kernel_sinf (float x, float y, int iy)
-{
- float z, r, v;
- float ix;
- ix = __builtin_fabsf (x);
- if (ix < twom27)
- { /* |x| < 2**-27 */
- if (ix < FLT_MIN && ix != 0.0f)
- __feraiseexcept (FE_UNDERFLOW|FE_INEXACT);
- else
- __feraiseexcept (FE_INEXACT);
- return x;
- }
- z = x * x;
- v = z * x;
- r = S2 + z * (S3 + z * (S4 + z * (S5 + z * S6)));
- if (iy == 0)
- return x + v * (S1 + z * r);
- else
- return x - ((z * (half * y - v * r) - y) - v * S1);
-}
diff --git a/sysdeps/powerpc/fpu/libm-test-ulps b/sysdeps/powerpc/fpu/libm-test-ulps
index f4c67c6423..1eec27c1dc 100644
--- a/sysdeps/powerpc/fpu/libm-test-ulps
+++ b/sysdeps/powerpc/fpu/libm-test-ulps
@@ -902,10 +902,10 @@ ildouble: 6
ldouble: 6
Function: Imaginary part of "ccos_downward":
-double: 2
+double: 3
float: 3
float128: 2
-idouble: 2
+idouble: 3
ifloat: 3
ifloat128: 2
ildouble: 6
@@ -922,10 +922,10 @@ ildouble: 6
ldouble: 6
Function: Imaginary part of "ccos_towardzero":
-double: 2
+double: 3
float: 3
float128: 2
-idouble: 2
+idouble: 3
ifloat: 3
ifloat128: 2
ildouble: 6
@@ -972,40 +972,40 @@ ildouble: 2
ldouble: 2
Function: Real part of "ccosh_downward":
-double: 1
+double: 2
float: 3
float128: 2
-idouble: 1
+idouble: 2
ifloat: 3
ifloat128: 2
ildouble: 6
ldouble: 6
Function: Imaginary part of "ccosh_downward":
-double: 2
+double: 3
float: 3
float128: 2
-idouble: 2
+idouble: 3
ifloat: 3
ifloat128: 2
ildouble: 6
ldouble: 6
Function: Real part of "ccosh_towardzero":
-double: 1
+double: 2
float: 3
float128: 2
-idouble: 1
+idouble: 2
ifloat: 3
ifloat128: 2
ildouble: 6
ldouble: 6
Function: Imaginary part of "ccosh_towardzero":
-double: 2
+double: 3
float: 3
float128: 2
-idouble: 2
+idouble: 3
ifloat: 3
ifloat128: 2
ildouble: 6
@@ -1052,40 +1052,40 @@ ildouble: 2
ldouble: 2
Function: Real part of "cexp_downward":
-double: 1
+double: 2
float: 2
float128: 2
-idouble: 1
+idouble: 2
ifloat: 2
ifloat128: 2
ildouble: 11
ldouble: 11
Function: Imaginary part of "cexp_downward":
-double: 1
+double: 3
float: 3
float128: 2
-idouble: 1
+idouble: 3
ifloat: 3
ifloat128: 2
ildouble: 11
ldouble: 11
Function: Real part of "cexp_towardzero":
-double: 1
+double: 2
float: 2
float128: 2
-idouble: 1
+idouble: 2
ifloat: 2
ifloat128: 2
ildouble: 11
ldouble: 11
Function: Imaginary part of "cexp_towardzero":
-double: 1
+double: 3
float: 3
float128: 2
-idouble: 1
+idouble: 3
ifloat: 3
ifloat128: 2
ildouble: 11
@@ -1102,10 +1102,10 @@ ildouble: 3
ldouble: 3
Function: Imaginary part of "cexp_upward":
-double: 1
+double: 3
float: 2
float128: 3
-idouble: 1
+idouble: 3
ifloat: 2
ifloat128: 3
ildouble: 3
@@ -1322,30 +1322,30 @@ ildouble: 3
ldouble: 3
Function: "cosh_downward":
-double: 1
+double: 2
float: 1
float128: 2
-idouble: 1
+idouble: 2
ifloat: 1
ifloat128: 1
ildouble: 2
ldouble: 2
Function: "cosh_towardzero":
-double: 1
+double: 2
float: 1
float128: 2
-idouble: 1
+idouble: 2
ifloat: 1
ifloat128: 1
ildouble: 2
ldouble: 2
Function: "cosh_upward":
-double: 1
+double: 2
float: 2
float128: 3
-idouble: 1
+idouble: 2
ifloat: 2
ifloat128: 1
ildouble: 2
@@ -1370,10 +1370,10 @@ ildouble: 2
ldouble: 2
Function: Real part of "cpow_downward":
-double: 4
+double: 5
float: 8
float128: 6
-idouble: 4
+idouble: 5
ifloat: 8
ifloat128: 6
ildouble: 7
@@ -1390,10 +1390,10 @@ ildouble: 4
ldouble: 4
Function: Real part of "cpow_towardzero":
-double: 4
+double: 5
float: 8
float128: 6
-idouble: 4
+idouble: 5
ifloat: 8
ifloat128: 6
ildouble: 8
@@ -1446,10 +1446,10 @@ ildouble: 1
ldouble: 1
Function: Real part of "csin_downward":
-double: 2
+double: 3
float: 3
float128: 2
-idouble: 2
+idouble: 3
ifloat: 3
ifloat128: 2
ildouble: 6
@@ -1466,10 +1466,10 @@ ildouble: 6
ldouble: 6
Function: Real part of "csin_towardzero":
-double: 2
+double: 3
float: 3
float128: 2
-idouble: 2
+idouble: 3
ifloat: 3
ifloat128: 2
ildouble: 6
@@ -1534,10 +1534,10 @@ ildouble: 6
ldouble: 6
Function: Imaginary part of "csinh_downward":
-double: 2
+double: 3
float: 3
float128: 2
-idouble: 2
+idouble: 3
ifloat: 3
ifloat128: 2
ildouble: 6
@@ -1554,10 +1554,10 @@ ildouble: 6
ldouble: 6
Function: Imaginary part of "csinh_towardzero":
-double: 2
+double: 3
float: 3
float128: 2
-idouble: 2
+idouble: 3
ifloat: 3
ifloat128: 2
ildouble: 6
@@ -1877,10 +1877,10 @@ ildouble: 3
ldouble: 3
Function: "erfc_downward":
-double: 3
+double: 4
float: 4
float128: 5
-idouble: 3
+idouble: 4
ifloat: 4
ifloat128: 5
ildouble: 10
@@ -1897,10 +1897,10 @@ ildouble: 9
ldouble: 9
Function: "erfc_upward":
-double: 3
+double: 4
float: 4
float128: 5
-idouble: 3
+idouble: 4
ifloat: 4
ifloat128: 5
ildouble: 7
@@ -1923,20 +1923,20 @@ ildouble: 1
ldouble: 1
Function: "exp10_downward":
-double: 2
+double: 3
float: 1
float128: 3
-idouble: 2
+idouble: 3
ifloat: 1
ifloat128: 3
ildouble: 9
ldouble: 9
Function: "exp10_towardzero":
-double: 2
+double: 3
float: 1
float128: 3
-idouble: 2
+idouble: 3
ifloat: 1
ifloat128: 3
ildouble: 9
diff --git a/sysdeps/powerpc/fpu/math-barriers.h b/sysdeps/powerpc/fpu/math-barriers.h
index 6da210219e..22959e95f5 100644
--- a/sysdeps/powerpc/fpu/math-barriers.h
+++ b/sysdeps/powerpc/fpu/math-barriers.h
@@ -1,5 +1,5 @@
/* Control when floating-point expressions are evaluated. PowerPC version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef POWERPC_MATH_BARRIERS_H
#define POWERPC_MATH_BARRIERS_H 1
diff --git a/sysdeps/powerpc/fpu/math-tests-trap-force.h b/sysdeps/powerpc/fpu/math-tests-trap-force.h
new file mode 100644
index 0000000000..9807395f73
--- /dev/null
+++ b/sysdeps/powerpc/fpu/math-tests-trap-force.h
@@ -0,0 +1,27 @@
+/* Configuration for math tests: support for setting exception flags
+ without causing enabled traps. PowerPC version.
+ Copyright (C) 2016-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef POWERPC_FPU_MATH_TESTS_TRAP_FORCE_H
+#define POWERPC_FPU_MATH_TESTS_TRAP_FORCE_H 1
+
+/* Setting exception flags in FPSCR results in enabled traps for those
+ exceptions being taken. */
+#define EXCEPTION_SET_FORCES_TRAP 1
+
+#endif /* math-tests-trap-force.h. */
diff --git a/sysdeps/powerpc/fpu/math_ldbl.h b/sysdeps/powerpc/fpu/math_ldbl.h
index 124391b94b..e8954dceac 100644
--- a/sysdeps/powerpc/fpu/math_ldbl.h
+++ b/sysdeps/powerpc/fpu/math_ldbl.h
@@ -1,5 +1,5 @@
/* Manipulation of the bit representation of 'long double' quantities.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MATH_LDBL_H_PPC_
#define _MATH_LDBL_H_PPC_ 1
diff --git a/sysdeps/powerpc/fpu/math_private.h b/sysdeps/powerpc/fpu/math_private.h
index e642d6c823..9b9391a6fb 100644
--- a/sysdeps/powerpc/fpu/math_private.h
+++ b/sysdeps/powerpc/fpu/math_private.h
@@ -1,5 +1,5 @@
/* Private inline math functions for powerpc.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _PPC_MATH_PRIVATE_H_
#define _PPC_MATH_PRIVATE_H_
@@ -22,7 +22,6 @@
#include <sysdep.h>
#include <ldsodefs.h>
#include <dl-procinfo.h>
-#include <fenv_private.h>
#include_next <math_private.h>
@@ -36,88 +35,4 @@ __ieee754_sqrtf128 (_Float128 __x)
}
#endif
-#if defined _ARCH_PWR5X
-
-# ifndef __round
-# define __round(x) \
- ({ double __z; \
- __asm __volatile ( \
- " frin %0,%1\n" \
- : "=f" (__z) \
- : "f" (x)); \
- __z; })
-# endif
-# ifndef __roundf
-# define __roundf(x) \
- ({ float __z; \
- __asm __volatile ( \
- " frin %0,%1\n" \
- " frsp %0,%0\n" \
- : "=f" (__z) \
- : "f" (x)); \
- __z; })
-# endif
-
-# ifndef __trunc
-# define __trunc(x) \
- ({ double __z; \
- __asm __volatile ( \
- " friz %0,%1\n" \
- : "=f" (__z) \
- : "f" (x)); \
- __z; })
-# endif
-# ifndef __truncf
-# define __truncf(x) \
- ({ float __z; \
- __asm __volatile ( \
- " friz %0,%1\n" \
- " frsp %0,%0\n" \
- : "=f" (__z) \
- : "f" (x)); \
- __z; })
-# endif
-
-# ifndef __ceil
-# define __ceil(x) \
- ({ double __z; \
- __asm __volatile ( \
- " frip %0,%1\n" \
- : "=f" (__z) \
- : "f" (x)); \
- __z; })
-# endif
-# ifndef __ceilf
-# define __ceilf(x) \
- ({ float __z; \
- __asm __volatile ( \
- " frip %0,%1\n" \
- " frsp %0,%0\n" \
- : "=f" (__z) \
- : "f" (x)); \
- __z; })
-# endif
-
-# ifndef __floor
-# define __floor(x) \
- ({ double __z; \
- __asm __volatile ( \
- " frim %0,%1\n" \
- : "=f" (__z) \
- : "f" (x)); \
- __z; })
-# endif
-# ifndef __floorf
-# define __floorf(x) \
- ({ float __z; \
- __asm __volatile ( \
- " frim %0,%1\n" \
- " frsp %0,%0\n" \
- : "=f" (__z) \
- : "f" (x)); \
- __z; })
-# endif
-
-#endif /* defined _ARCH_PWR5X */
-
#endif /* _PPC_MATH_PRIVATE_H_ */
diff --git a/sysdeps/powerpc/fpu/round_to_integer.h b/sysdeps/powerpc/fpu/round_to_integer.h
new file mode 100644
index 0000000000..2881819470
--- /dev/null
+++ b/sysdeps/powerpc/fpu/round_to_integer.h
@@ -0,0 +1,154 @@
+/* Round to integer generic implementation.
+ 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 Library General Public License as
+ published by the Free Software Foundation; either version 2 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If
+ not, see <https://www.gnu.org/licenses/>. */
+
+#ifndef _ROUND_TO_INTEGER_H
+#define _ROUND_TO_INTEGER_H
+
+#include <fenv_private.h>
+
+enum round_mode
+{
+ CEIL,
+ FLOOR,
+ ROUND,
+ TRUNC,
+ NEARBYINT,
+ RINT
+};
+
+static inline fenv_t
+set_fenv_mode (enum round_mode mode)
+{
+ fenv_t fe = 0;
+ if (mode != RINT)
+ /* Save current FPU rounding mode and inexact state. */
+ fe = fegetenv_register ();
+
+ switch (mode)
+ {
+ case CEIL:
+ __fesetround_inline_nocheck (FE_UPWARD);
+ break;
+ case FLOOR:
+ __fesetround_inline_nocheck (FE_DOWNWARD);
+ break;
+ case TRUNC:
+ case ROUND:
+ __fesetround_inline_nocheck (FE_TOWARDZERO);
+ break;
+ case NEARBYINT:
+ /* Disable FE_INEXACT exception */
+ reset_fpscr_bit (FPSCR_XE);
+ break;
+ case RINT:
+ break;
+ }
+ return fe;
+}
+
+static inline void
+reset_fenv_mode (fenv_t fe, enum round_mode mode)
+{
+ switch (mode)
+ {
+ default:
+ __builtin_mtfsf (0xff, fe);
+ break;
+ case RINT:
+ break;
+ }
+}
+
+static inline float
+round_to_integer_float (enum round_mode mode, float x)
+{
+ /* Ensure sNaN input is converted to qNaN. */
+ if (__glibc_unlikely (isnan (x)))
+ return x + x;
+
+ if (fabs (x) > 0x1p+23)
+ return x;
+
+ float r = x;
+
+ fenv_t fe = set_fenv_mode (mode);
+ if (x > 0.0)
+ {
+ /* IEEE 1003.1 round function. IEEE specifies "round to the nearest
+ integer value, rounding halfway cases away from zero, regardless of
+ the current rounding mode." However PowerPC Architecture defines
+ "Round to Nearest" as "Choose the best approximation. In case of a
+ tie, choose the one that is even (least significant bit o).".
+ So we can't use the PowerPC "Round to Nearest" mode. Instead we set
+ "Round toward Zero" mode and round by adding +-0.5 before rounding
+ to the integer value. */
+ if (mode == ROUND)
+ r += 0.5f;
+ r += 0x1p+23;
+ r -= 0x1p+23;
+ r = fabs (r);
+ }
+ else if (x < 0.0)
+ {
+ if (mode == ROUND)
+ r -= 0.5f;
+ r -= 0x1p+23;
+ r += 0x1p+23;
+ r = -fabs (r);
+ }
+ reset_fenv_mode (fe, mode);
+
+ return r;
+}
+
+static inline double
+round_to_integer_double (enum round_mode mode, double x)
+{
+ /* Ensure sNaN input is converted to qNaN. */
+ if (__glibc_unlikely (isnan (x)))
+ return x + x;
+
+ if (fabs (x) > 0x1p+52)
+ return x;
+
+ double r = x;
+
+ /* Save current FPU rounding mode and inexact state. */
+ fenv_t fe = set_fenv_mode (mode);
+ if (x > 0.0)
+ {
+ if (mode == ROUND)
+ r += 0.5;
+ r += 0x1p+52;
+ r -= 0x1p+52;
+ r = fabs (r);
+ }
+ else if (x < 0.0)
+ {
+ if (mode == ROUND)
+ r -= 0.5;
+ r -= 0x1p+52;
+ r += 0x1p+52;
+ r = -fabs (r);
+ }
+ reset_fenv_mode (fe, mode);
+
+ return r;
+}
+
+#endif
diff --git a/sysdeps/powerpc/fpu/s_ceil.c b/sysdeps/powerpc/fpu/s_ceil.c
new file mode 100644
index 0000000000..1ec060e5ca
--- /dev/null
+++ b/sysdeps/powerpc/fpu/s_ceil.c
@@ -0,0 +1,35 @@
+/* Smallest integral value not less than argument. PowerPC version.
+ 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 Library General Public License as
+ published by the Free Software Foundation; either version 2 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If
+ not, see <https://www.gnu.org/licenses/>. */
+
+#define NO_MATH_REDIRECT
+#include <math.h>
+#include <libm-alias-double.h>
+#include <round_to_integer.h>
+
+double
+__ceil (double x)
+{
+#ifdef _ARCH_PWR5X
+ return __builtin_ceil (x);
+#else
+ return round_to_integer_double (CEIL, x);
+#endif
+}
+#ifndef __ceil
+libm_alias_double (__ceil, ceil)
+#endif
diff --git a/sysdeps/powerpc/fpu/s_ceilf.c b/sysdeps/powerpc/fpu/s_ceilf.c
new file mode 100644
index 0000000000..8acabf94c9
--- /dev/null
+++ b/sysdeps/powerpc/fpu/s_ceilf.c
@@ -0,0 +1,35 @@
+/* Smallest integral value not less than argument. PowerPC version.
+ 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 Library General Public License as
+ published by the Free Software Foundation; either version 2 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If
+ not, see <https://www.gnu.org/licenses/>. */
+
+#define NO_MATH_REDIRECT
+#include <math.h>
+#include <libm-alias-float.h>
+#include <round_to_integer.h>
+
+float
+__ceilf (float x)
+{
+#ifdef _ARCH_PWR5X
+ return __builtin_ceilf (x);
+#else
+ return round_to_integer_float (CEIL, x);
+#endif
+}
+#ifndef __ceilf
+libm_alias_float (__ceil, ceil)
+#endif
diff --git a/sysdeps/powerpc/fpu/s_copysign.c b/sysdeps/powerpc/fpu/s_copysign.c
new file mode 100644
index 0000000000..f2e12b5798
--- /dev/null
+++ b/sysdeps/powerpc/fpu/s_copysign.c
@@ -0,0 +1,32 @@
+/* Copy sign of a number. PowerPC version.
+ 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 Library General Public License as
+ published by the Free Software Foundation; either version 2 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If
+ not, see <https://www.gnu.org/licenses/>. */
+
+#define NO_MATH_REDIRECT
+#include <math.h>
+#include <math_ldbl_opt.h>
+#include <libm-alias-double.h>
+
+double
+__copysign (double x, double y)
+{
+ return __builtin_copysign (x, y);
+}
+libm_alias_double (__copysign, copysign)
+#if LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)
+compat_symbol (libc, __copysign, copysignl, GLIBC_2_0);
+#endif
diff --git a/sysdeps/powerpc/fpu/s_copysignf.c b/sysdeps/powerpc/fpu/s_copysignf.c
new file mode 100644
index 0000000000..a73aa23749
--- /dev/null
+++ b/sysdeps/powerpc/fpu/s_copysignf.c
@@ -0,0 +1,28 @@
+/* Copy sign of a number. PowerPC version.
+ 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 Library General Public License as
+ published by the Free Software Foundation; either version 2 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If
+ not, see <https://www.gnu.org/licenses/>. */
+
+#define NO_MATH_REDIRECT
+#include <math.h>
+#include <libm-alias-float.h>
+
+float
+__copysignf (float x, float y)
+{
+ return __builtin_copysignf (x, y);
+}
+libm_alias_float (__copysign, copysign)
diff --git a/sysdeps/powerpc/fpu/s_cosf.c b/sysdeps/powerpc/fpu/s_cosf.c
deleted file mode 100644
index 9423eb9c35..0000000000
--- a/sysdeps/powerpc/fpu/s_cosf.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/* s_cosf.c -- float version of s_cos.c.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Adhemerval Zanella <azanella@br.ibm.com>, 2011
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
- not, see <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <math.h>
-#include <math_private.h>
-#include <libm-alias-float.h>
-
-static const float pio4 = 7.8539801e-1;
-
-float
-__cosf (float x)
-{
- float y[2], z = 0.0;
- float ix;
- int32_t n;
-
- ix = __builtin_fabsf (x);
-
- /* |x| ~< pi/4 */
- if (ix <= pio4)
- {
- return __kernel_cosf (x, z);
- /* cos(Inf or NaN) is NaN */
- }
- else if (isnanf (ix))
- {
- return x - x;
- }
- else if (isinff (ix))
- {
- __set_errno (EDOM);
- return x - x;
- }
-
- /* argument reduction needed */
- else
- {
- n = __ieee754_rem_pio2f (x, y);
- switch (n & 3)
- {
- case 0:
- return __kernel_cosf (y[0], y[1]);
- case 1:
- return -__kernel_sinf (y[0], y[1], 1);
- case 2:
- return -__kernel_cosf (y[0], y[1]);
- default:
- return __kernel_sinf (y[0], y[1], 1);
- }
- }
-}
-
-libm_alias_float (__cos, cos)
diff --git a/sysdeps/powerpc/fpu/s_fabs.S b/sysdeps/powerpc/fpu/s_fabs.S
deleted file mode 100644
index 01fb5829cd..0000000000
--- a/sysdeps/powerpc/fpu/s_fabs.S
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Floating-point absolute value. PowerPC version.
- Copyright (C) 1997-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <libm-alias-float.h>
-#include <libm-alias-double.h>
-
-ENTRY(__fabs)
-/* double [f1] fabs (double [f1] x); */
- fabs fp1,fp1
- blr
-END(__fabs)
-
-libm_alias_double (__fabs, fabs)
-
-/* It turns out that it's safe to use this code even for single-precision. */
-strong_alias(__fabs,__fabsf)
-libm_alias_float (__fabs, fabs)
diff --git a/sysdeps/powerpc/fpu/s_fabsf.S b/sysdeps/powerpc/fpu/s_fabsf.S
deleted file mode 100644
index 877c710ce8..0000000000
--- a/sysdeps/powerpc/fpu/s_fabsf.S
+++ /dev/null
@@ -1 +0,0 @@
-/* __fabsf is in s_fabs.S */
diff --git a/sysdeps/powerpc/fpu/s_float_bitwise.h b/sysdeps/powerpc/fpu/s_float_bitwise.h
deleted file mode 100644
index 6608692096..0000000000
--- a/sysdeps/powerpc/fpu/s_float_bitwise.h
+++ /dev/null
@@ -1,115 +0,0 @@
-/* Bitwise manipulation over float. Function prototypes.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Adhemerval Zanella <azanella@br.ibm.com>, 2011
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _FLOAT_BITWISE_
-#define _FLOAT_BITWISE_ 1
-
-#include <math_private.h>
-
-/* Returns (int)(num & 0x7FFFFFF0 == value) */
-static inline int
-__float_and_test28 (float num, float value)
-{
- float ret;
-#ifdef _ARCH_PWR7
- union {
- int i;
- float f;
- } mask = { .i = 0x7ffffff0 };
- __asm__ (
- /* the 'f' constraint is used on mask because we just need
- * to compare floats, not full vector */
- "xxland %x0,%x1,%x2" : "=f" (ret) : "f" (num), "f" (mask.f)
- );
-#else
- int32_t inum;
- GET_FLOAT_WORD(inum, num);
- inum = (inum & 0x7ffffff0);
- SET_FLOAT_WORD(ret, inum);
-#endif
- return (ret == value);
-}
-
-/* Returns (int)(num & 0x7FFFFF00 == value) */
-static inline int
-__float_and_test24 (float num, float value)
-{
- float ret;
-#ifdef _ARCH_PWR7
- union {
- int i;
- float f;
- } mask = { .i = 0x7fffff00 };
- __asm__ (
- "xxland %x0,%x1,%x2" : "=f" (ret) : "f" (num), "f" (mask.f)
- );
-#else
- int32_t inum;
- GET_FLOAT_WORD(inum, num);
- inum = (inum & 0x7fffff00);
- SET_FLOAT_WORD(ret, inum);
-#endif
- return (ret == value);
-}
-
-/* Returns (float)(num & 0x7F800000) */
-static inline float
-__float_and8 (float num)
-{
- float ret;
-#ifdef _ARCH_PWR7
- union {
- int i;
- float f;
- } mask = { .i = 0x7f800000 };
- __asm__ (
- "xxland %x0,%x1,%x2" : "=f" (ret) : "f" (num), "f" (mask.f)
- );
-#else
- int32_t inum;
- GET_FLOAT_WORD(inum, num);
- inum = (inum & 0x7f800000);
- SET_FLOAT_WORD(ret, inum);
-#endif
- return ret;
-}
-
-/* Returns ((int32_t)(num & 0x7F800000) >> 23) */
-static inline int32_t
-__float_get_exp (float num)
-{
- int32_t inum;
-#ifdef _ARCH_PWR7
- float ret;
- union {
- int i;
- float f;
- } mask = { .i = 0x7f800000 };
- __asm__ (
- "xxland %x0,%x1,%x2" : "=f" (ret) : "f" (num), "f" (mask.f)
- );
- GET_FLOAT_WORD(inum, ret);
-#else
- GET_FLOAT_WORD(inum, num);
- inum = inum & 0x7f800000;
-#endif
- return inum >> 23;
-}
-
-#endif /* s_float_bitwise.h */
diff --git a/sysdeps/powerpc/fpu/s_floor.c b/sysdeps/powerpc/fpu/s_floor.c
new file mode 100644
index 0000000000..f6d86f957f
--- /dev/null
+++ b/sysdeps/powerpc/fpu/s_floor.c
@@ -0,0 +1,35 @@
+/* Largest integral value not greater than argument. PowerPC version.
+ 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 Library General Public License as
+ published by the Free Software Foundation; either version 2 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If
+ not, see <https://www.gnu.org/licenses/>. */
+
+#define NO_MATH_REDIRECT
+#include <math.h>
+#include <libm-alias-double.h>
+#include <round_to_integer.h>
+
+double
+__floor (double x)
+{
+#ifdef _ARCH_PWR5X
+ return __builtin_floor (x);
+#else
+ return round_to_integer_double (FLOOR, x);
+#endif
+}
+#ifndef __floor
+libm_alias_double (__floor, floor)
+#endif
diff --git a/sysdeps/powerpc/fpu/s_floorf.c b/sysdeps/powerpc/fpu/s_floorf.c
new file mode 100644
index 0000000000..1a6775f802
--- /dev/null
+++ b/sysdeps/powerpc/fpu/s_floorf.c
@@ -0,0 +1,35 @@
+/* Smallest integral value not less than argument. PowerPC version.
+ 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 Library General Public License as
+ published by the Free Software Foundation; either version 2 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If
+ not, see <https://www.gnu.org/licenses/>. */
+
+#define NO_MATH_REDIRECT
+#include <math.h>
+#include <libm-alias-float.h>
+#include <round_to_integer.h>
+
+float
+__floorf (float x)
+{
+#ifdef _ARCH_PWR5X
+ return __builtin_floorf (x);
+#else
+ return round_to_integer_float (FLOOR, x);
+#endif
+}
+#ifndef __floorf
+libm_alias_float (__floor, floor)
+#endif
diff --git a/sysdeps/powerpc/fpu/s_fma.S b/sysdeps/powerpc/fpu/s_fma.S
deleted file mode 100644
index 23311bb8fd..0000000000
--- a/sysdeps/powerpc/fpu/s_fma.S
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Compute x * y + z as ternary operation. PowerPC version.
- Copyright (C) 2010-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <libm-alias-double.h>
-
-ENTRY_TOCLESS(__fma)
-/* double [f1] fma (double [f1] x, double [f2] y, double [f3] z); */
- fmadd fp1,fp1,fp2,fp3
- blr
-END(__fma)
-
-libm_alias_double (__fma, fma)
diff --git a/sysdeps/powerpc/fpu/s_fma.c b/sysdeps/powerpc/fpu/s_fma.c
new file mode 100644
index 0000000000..53a11612c9
--- /dev/null
+++ b/sysdeps/powerpc/fpu/s_fma.c
@@ -0,0 +1,27 @@
+/* Compute x * y + z as ternary operation. PowerPC version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <libm-alias-double.h>
+
+double
+__fma (double x, double y, double z)
+{
+ return __builtin_fma (x, y, z);
+}
+libm_alias_double (__fma, fma)
diff --git a/sysdeps/powerpc/fpu/s_fmaf.S b/sysdeps/powerpc/fpu/s_fmaf.S
deleted file mode 100644
index f0b070b748..0000000000
--- a/sysdeps/powerpc/fpu/s_fmaf.S
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Compute x * y + z as ternary operation. PowerPC version.
- Copyright (C) 2010-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <libm-alias-float.h>
-
-ENTRY_TOCLESS(__fmaf)
-/* float [f1] fmaf (float [f1] x, float [f2] y, float [f3] z); */
- fmadds fp1,fp1,fp2,fp3
- blr
-END(__fmaf)
-
-libm_alias_float (__fma, fma)
diff --git a/sysdeps/powerpc/fpu/s_fmaf.c b/sysdeps/powerpc/fpu/s_fmaf.c
new file mode 100644
index 0000000000..0f0b3af420
--- /dev/null
+++ b/sysdeps/powerpc/fpu/s_fmaf.c
@@ -0,0 +1,27 @@
+/* Compute x * y + z as ternary operation. PowerPC version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <libm-alias-float.h>
+
+float
+__fmaf (float x, float y, float z)
+{
+ return __builtin_fmaf (x, y, z);
+}
+libm_alias_float (__fma, fma)
diff --git a/sysdeps/powerpc/fpu/s_isnan.c b/sysdeps/powerpc/fpu/s_isnan.c
deleted file mode 100644
index 9bf8a78b1b..0000000000
--- a/sysdeps/powerpc/fpu/s_isnan.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/* Return 1 if argument is a NaN, else 0.
- Copyright (C) 1997-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-/* Ugly kludge to avoid declarations. */
-#define __isnanf __Xisnanf
-#define isnanf Xisnanf
-#define __GI___isnanf __GI___Xisnanf
-
-#include <math.h>
-#include <math_ldbl_opt.h>
-#include <fenv_libc.h>
-
-#undef __isnanf
-#undef isnanf
-#undef __GI___isnanf
-
-
-/* The hidden_proto in include/math.h was obscured by the macro hackery. */
-__typeof (__isnan) __isnanf;
-hidden_proto (__isnanf)
-
-
-int
-__isnan (double x)
-{
- fenv_t savedstate;
- int result;
- savedstate = fegetenv_register ();
- reset_fpscr_bit (FPSCR_VE);
- result = !(x == x);
- fesetenv_register (savedstate);
- return result;
-}
-hidden_def (__isnan)
-weak_alias (__isnan, isnan)
-
-
-/* It turns out that the 'double' version will also always work for
- single-precision. */
-strong_alias (__isnan, __isnanf)
-hidden_def (__isnanf)
-weak_alias (__isnanf, isnanf)
-
-#ifdef NO_LONG_DOUBLE
-strong_alias (__isnan, __isnanl)
-weak_alias (__isnan, isnanl)
-#endif
diff --git a/sysdeps/powerpc/fpu/s_isnanf.S b/sysdeps/powerpc/fpu/s_isnanf.S
deleted file mode 100644
index fc22f678a1..0000000000
--- a/sysdeps/powerpc/fpu/s_isnanf.S
+++ /dev/null
@@ -1 +0,0 @@
-/* __isnanf is in s_isnan.c */
diff --git a/sysdeps/powerpc/fpu/s_logb.c b/sysdeps/powerpc/fpu/s_logb.c
new file mode 100644
index 0000000000..20ce898c35
--- /dev/null
+++ b/sysdeps/powerpc/fpu/s_logb.c
@@ -0,0 +1,64 @@
+/* Get exponent of a floating-point value. PowerPC version.
+ Copyright (C) 2012-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
+ <https://www.gnu.org/licenses/>. */
+
+/* ISA 2.07 provides fast GPR to FP instruction (mfvsr{d,wz}) which make
+ generic implementation faster. */
+#if defined(_ARCH_PWR8) || !defined(_ARCH_PWR7)
+# include <sysdeps/ieee754/dbl-64/s_logb.c>
+#else
+# include <math.h>
+# include <math_private.h>
+# include <math_ldbl_opt.h>
+# include <libm-alias-double.h>
+
+/* This implementation avoids FP to INT conversions by using VSX
+ bitwise instructions over FP values. */
+double
+__logb (double x)
+{
+ double ret;
+
+ if (__glibc_unlikely (x == 0.0))
+ /* Raise FE_DIVBYZERO and return -HUGE_VAL[LF]. */
+ return -1.0 / fabs (x);
+
+ /* Mask to extract the exponent. */
+ asm ("xxland %x0,%x1,%x2\n"
+ "fcfid %0,%0"
+ : "=d" (ret)
+ : "d" (x), "d" (0x7ff0000000000000ULL));
+ ret = (ret * 0x1p-52) - 1023.0;
+ if (ret > 1023.0)
+ /* Multiplication is used to set logb (+-INF) = INF. */
+ return (x * x);
+ else if (ret == -1023.0)
+ {
+ /* POSIX specifies that denormal numbers are treated as
+ though they were normalized. */
+ int64_t ix;
+ EXTRACT_WORDS64 (ix, x);
+ ix &= UINT64_C (0x7fffffffffffffff);
+ return (double) (-1023 - (__builtin_clzll (ix) - 12));
+ }
+ /* Test to avoid logb_downward (0.0) == -0.0. */
+ return ret == -0.0 ? 0.0 : ret;
+}
+# ifndef __logb
+libm_alias_double (__logb, logb)
+# endif
+#endif
diff --git a/sysdeps/powerpc/fpu/s_logbf.c b/sysdeps/powerpc/fpu/s_logbf.c
new file mode 100644
index 0000000000..cc01ffa572
--- /dev/null
+++ b/sysdeps/powerpc/fpu/s_logbf.c
@@ -0,0 +1,56 @@
+/* Get exponent of a floating-point value. PowerPC version.
+ Copyright (C) 2012-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
+ <https://www.gnu.org/licenses/>. */
+
+/* ISA 2.07 provides fast GPR to FP instruction (mfvsr{d,wz}) which make
+ generic implementation faster. */
+#if defined(_ARCH_PWR8) || !defined(_ARCH_PWR7)
+# include <sysdeps/ieee754/flt-32/s_logbf.c>
+#else
+# include <math.h>
+# include <libm-alias-float.h>
+/* This implementation avoids FP to INT conversions by using VSX
+ bitwise instructions over FP values. */
+float
+__logbf (float x)
+{
+ /* VSX operation are all done internally as double. */
+ double ret;
+
+ if (__glibc_unlikely (x == 0.0))
+ /* Raise FE_DIVBYZERO and return -HUGE_VAL[LF]. */
+ return -1.0 / fabs (x);
+
+ /* mask to extract the exponent. */
+ asm ("xxland %x0,%x1,%x2\n"
+ "fcfid %0,%0"
+ : "=d"(ret)
+ : "d" (x), "d" (0x7ff0000000000000ULL));
+ /* ret = (ret >> 52) - 1023.0, since ret is double. */
+ ret = (ret * 0x1p-52) - 1023.0;
+ if (ret > 127.0)
+ /* Multiplication is used to set logb (+-INF) = INF. */
+ return (x * x);
+ /* Since operations are done with double we don't need
+ additional tests for subnormal numbers.
+ The test is to avoid logb_downward (0.0) == -0.0. */
+ return ret == -0.0 ? 0.0 : ret;
+}
+# ifndef __logbf
+libm_alias_float (__logb, logb)
+# endif
+#endif
diff --git a/sysdeps/powerpc/fpu/s_logbl.c b/sysdeps/powerpc/fpu/s_logbl.c
new file mode 100644
index 0000000000..a54c520e2f
--- /dev/null
+++ b/sysdeps/powerpc/fpu/s_logbl.c
@@ -0,0 +1,78 @@
+/* Get exponent of a floating-point value. PowerPC version.
+ Copyright (C) 2012-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
+ <https://www.gnu.org/licenses/>. */
+
+/* ISA 2.07 provides fast GPR to FP instruction (mfvsr{d,wz}) which make
+ generic implementation faster. */
+#if defined(_ARCH_PWR8) || !defined(_ARCH_PWR7)
+# include <./sysdeps/ieee754/ldbl-128ibm/s_logbl.c>
+#else
+# include <math.h>
+# include <math_private.h>
+# include <math_ldbl_opt.h>
+
+/* This implementation avoids FP to INT conversions by using VSX
+ bitwise instructions over FP values. */
+long double
+__logbl (long double x)
+{
+ double xh, xl;
+ double ret;
+ int64_t hx;
+
+ if (__glibc_unlikely (x == 0.0))
+ /* Raise FE_DIVBYZERO and return -HUGE_VAL[LF]. */
+ return -1.0L / __builtin_fabsl (x);
+
+ ldbl_unpack (x, &xh, &xl);
+ EXTRACT_WORDS64 (hx, xh);
+
+ /* Mask to extract the exponent. */
+ asm ("xxland %x0,%x1,%x2\n"
+ "fcfid %0,%0"
+ : "=d" (ret)
+ : "d" (xh), "d" (0x7ff0000000000000ULL));
+ ret = (ret * 0x1p-52) - 1023.0;
+ if (ret > 1023.0)
+ /* Multiplication is used to set logb (+-INF) = INF. */
+ return (xh * xh);
+ else if (ret == -1023.0)
+ {
+ /* POSIX specifies that denormal number is treated as
+ though it were normalized. */
+ return (long double) (- (__builtin_clzll (hx & 0x7fffffffffffffffLL) \
+ - 12) - 1023);
+ }
+ else if ((hx & 0x000fffffffffffffLL) == 0)
+ {
+ /* If the high part is a power of 2, and the low part is nonzero
+ with the opposite sign, the low part affects the
+ exponent. */
+ int64_t lx, rhx;
+ EXTRACT_WORDS64 (lx, xl);
+ rhx = (hx & 0x7ff0000000000000LL) >> 52;
+ if ((hx ^ lx) < 0 && (lx & 0x7fffffffffffffffLL) != 0)
+ rhx--;
+ return (long double) (rhx - 1023);
+ }
+ /* Test to avoid logb_downward (0.0) == -0.0. */
+ return ret == -0.0 ? 0.0 : ret;
+}
+# ifndef __logbl
+long_double_symbol (libm, __logbl, logbl);
+# endif
+#endif
diff --git a/sysdeps/powerpc/fpu/s_lrintf.S b/sysdeps/powerpc/fpu/s_lrintf.S
deleted file mode 100644
index e24766535f..0000000000
--- a/sysdeps/powerpc/fpu/s_lrintf.S
+++ /dev/null
@@ -1 +0,0 @@
-/* __lrintf is in s_lrint.c */
diff --git a/sysdeps/powerpc/fpu/s_lrintf.c b/sysdeps/powerpc/fpu/s_lrintf.c
new file mode 100644
index 0000000000..3f0c570a91
--- /dev/null
+++ b/sysdeps/powerpc/fpu/s_lrintf.c
@@ -0,0 +1 @@
+/* lrintf is implemented at s_llrint.c */
diff --git a/sysdeps/powerpc/fpu/s_modf.c b/sysdeps/powerpc/fpu/s_modf.c
new file mode 100644
index 0000000000..e65fd53b47
--- /dev/null
+++ b/sysdeps/powerpc/fpu/s_modf.c
@@ -0,0 +1,59 @@
+/* Copyright (C) 2013-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 Library General Public License as
+ published by the Free Software Foundation; either version 2 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If
+ not, see <https://www.gnu.org/licenses/>. */
+
+/* ISA 2.07 provides fast GPR to FP instruction (mfvsr{d,wz}) which make
+ generic implementation faster. Also disables for old ISAs that do not
+ have ceil/floor instructions. */
+#if defined(_ARCH_PWR8) || !defined(_ARCH_PWR5X)
+# include <sysdeps/ieee754/ldbl-opt/s_modf.c>
+#else
+# include <math.h>
+# include <math_ldbl_opt.h>
+# include <libm-alias-double.h>
+
+double
+__modf (double x, double *iptr)
+{
+ if (__builtin_isinf (x))
+ {
+ *iptr = x;
+ return copysign (0.0, x);
+ }
+ else if (__builtin_isnan (x))
+ {
+ *iptr = NAN;
+ return NAN;
+ }
+
+ if (x >= 0.0)
+ {
+ *iptr = floor (x);
+ return copysign (x - *iptr, x);
+ }
+ else
+ {
+ *iptr = ceil (x);
+ return copysign (x - *iptr, x);
+ }
+}
+# ifndef __modf
+libm_alias_double (__modf, modf)
+# if LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)
+compat_symbol (libc, __modf, modfl, GLIBC_2_0);
+# endif
+# endif
+#endif
diff --git a/sysdeps/powerpc/fpu/s_modff.c b/sysdeps/powerpc/fpu/s_modff.c
new file mode 100644
index 0000000000..94102ff508
--- /dev/null
+++ b/sysdeps/powerpc/fpu/s_modff.c
@@ -0,0 +1,55 @@
+/* Copyright (C) 2013-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 Library General Public License as
+ published by the Free Software Foundation; either version 2 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If
+ not, see <https://www.gnu.org/licenses/>. */
+
+/* ISA 2.07 provides fast GPR to FP instruction (mfvsr{d,wz}) which make
+ generic implementation faster. Also disables for old ISAs that do not
+ have ceil/floor instructions. */
+#if defined(_ARCH_PWR8) || !defined(_ARCH_PWR5X)
+# include <sysdeps/ieee754/flt-32/s_modff.c>
+#else
+# include <math.h>
+# include <libm-alias-float.h>
+
+float
+__modff (float x, float *iptr)
+{
+ if (__builtin_isinff (x))
+ {
+ *iptr = x;
+ return copysignf (0.0, x);
+ }
+ else if (__builtin_isnanf (x))
+ {
+ *iptr = NAN;
+ return NAN;
+ }
+
+ if (x >= 0.0)
+ {
+ *iptr = floorf (x);
+ return copysignf (x - *iptr, x);
+ }
+ else
+ {
+ *iptr = ceilf (x);
+ return copysignf (x - *iptr, x);
+ }
+}
+# ifndef __modff
+libm_alias_float (__modf, modf)
+# endif
+#endif
diff --git a/sysdeps/powerpc/fpu/s_nearbyint.c b/sysdeps/powerpc/fpu/s_nearbyint.c
new file mode 100644
index 0000000000..838d281794
--- /dev/null
+++ b/sysdeps/powerpc/fpu/s_nearbyint.c
@@ -0,0 +1,30 @@
+/* Largest integral value not greater than argument. PowerPC version.
+ 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 Library General Public License as
+ published by the Free Software Foundation; either version 2 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If
+ not, see <https://www.gnu.org/licenses/>. */
+
+#define NO_MATH_REDIRECT
+#include <math.h>
+#include <fenv_private.h>
+#include <libm-alias-double.h>
+#include <round_to_integer.h>
+
+double
+__nearbyint (double x)
+{
+ return round_to_integer_double (NEARBYINT, x);
+}
+libm_alias_double (__nearbyint, nearbyint)
diff --git a/sysdeps/powerpc/fpu/s_nearbyintf.c b/sysdeps/powerpc/fpu/s_nearbyintf.c
new file mode 100644
index 0000000000..18d33d1f33
--- /dev/null
+++ b/sysdeps/powerpc/fpu/s_nearbyintf.c
@@ -0,0 +1,30 @@
+/* Smallest integral value not less than argument. PowerPC version.
+ 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 Library General Public License as
+ published by the Free Software Foundation; either version 2 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If
+ not, see <https://www.gnu.org/licenses/>. */
+
+#define NO_MATH_REDIRECT
+#include <math.h>
+#include <fenv_private.h>
+#include <libm-alias-float.h>
+#include <round_to_integer.h>
+
+float
+__nearbyintf (float x)
+{
+ return round_to_integer_float (NEARBYINT, x);
+}
+libm_alias_float (__nearbyint, nearbyint)
diff --git a/sysdeps/powerpc/fpu/s_rint.c b/sysdeps/powerpc/fpu/s_rint.c
index 7a0cefd2a0..d780716b93 100644
--- a/sysdeps/powerpc/fpu/s_rint.c
+++ b/sysdeps/powerpc/fpu/s_rint.c
@@ -1,5 +1,5 @@
/* Round a 64-bit floating point value to the nearest integer.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,30 +14,16 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
#include <libm-alias-double.h>
+#include <round_to_integer.h>
double
__rint (double x)
{
- static const float TWO52 = 4503599627370496.0;
-
- if (fabs (x) < TWO52)
- {
- if (x > 0.0)
- {
- x += TWO52;
- x -= TWO52;
- }
- else if (x < 0.0)
- {
- x = TWO52 - x;
- x = -(x - TWO52);
- }
- }
-
- return x;
+ return round_to_integer_double (RINT, x);
}
libm_alias_double (__rint, rint)
diff --git a/sysdeps/powerpc/fpu/s_rintf.c b/sysdeps/powerpc/fpu/s_rintf.c
index 8752834a54..a35a380c5a 100644
--- a/sysdeps/powerpc/fpu/s_rintf.c
+++ b/sysdeps/powerpc/fpu/s_rintf.c
@@ -1,5 +1,5 @@
/* Round a 32-bit floating point value to the nearest integer.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,30 +14,16 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
#include <libm-alias-float.h>
+#include <round_to_integer.h>
float
__rintf (float x)
{
- static const float TWO23 = 8388608.0;
-
- if (fabsf (x) < TWO23)
- {
- if (x > 0.0)
- {
- x += TWO23;
- x -= TWO23;
- }
- else if (x < 0.0)
- {
- x = TWO23 - x;
- x = -(x - TWO23);
- }
- }
-
- return x;
+ return round_to_integer_float (RINT, x);
}
libm_alias_float (__rint, rint)
diff --git a/sysdeps/powerpc/fpu/s_round.c b/sysdeps/powerpc/fpu/s_round.c
new file mode 100644
index 0000000000..4e4f654400
--- /dev/null
+++ b/sysdeps/powerpc/fpu/s_round.c
@@ -0,0 +1,35 @@
+/* Largest integral value not greater than argument. PowerPC version.
+ 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 Library General Public License as
+ published by the Free Software Foundation; either version 2 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If
+ not, see <https://www.gnu.org/licenses/>. */
+
+#define NO_MATH_REDIRECT
+#include <math.h>
+#include <libm-alias-double.h>
+#include <round_to_integer.h>
+
+double
+__round (double x)
+{
+#ifdef _ARCH_PWR5X
+ return __builtin_round (x);
+#else
+ return round_to_integer_double (ROUND, x);
+#endif
+}
+#ifndef __round
+libm_alias_double (__round, round)
+#endif
diff --git a/sysdeps/powerpc/fpu/s_roundf.c b/sysdeps/powerpc/fpu/s_roundf.c
new file mode 100644
index 0000000000..661003bf44
--- /dev/null
+++ b/sysdeps/powerpc/fpu/s_roundf.c
@@ -0,0 +1,35 @@
+/* Smallest integral value not less than argument. PowerPC version.
+ 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 Library General Public License as
+ published by the Free Software Foundation; either version 2 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If
+ not, see <https://www.gnu.org/licenses/>. */
+
+#define NO_MATH_REDIRECT
+#include <math.h>
+#include <libm-alias-float.h>
+#include <round_to_integer.h>
+
+float
+__roundf (float x)
+{
+#ifdef _ARCH_PWR5X
+ return __builtin_roundf (x);
+#else
+ return round_to_integer_float (ROUND, x);
+#endif
+}
+#ifndef __roundf
+libm_alias_float (__round, round)
+#endif
diff --git a/sysdeps/powerpc/fpu/s_sinf.c b/sysdeps/powerpc/fpu/s_sinf.c
deleted file mode 100644
index 555a81b030..0000000000
--- a/sysdeps/powerpc/fpu/s_sinf.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/* s_sinf.c -- float version of s_sin.c.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Adhemerval Zanella <azanella@br.ibm.com>, 2011
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
- not, see <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <math.h>
-#include <math_private.h>
-#include <libm-alias-float.h>
-
-static const float pio4 = 7.8539801e-1;
-
-float
-__sinf (float x)
-{
- float y[2], z = 0.0;
- float ix;
- int32_t n;
-
- ix = __builtin_fabsf (x);
-
- /* |x| ~< pi/4 */
- if (ix <= pio4)
- {
- return __kernel_sinf (x, z, 0);
- /* sin(Inf or NaN) is NaN */
- }
- else if (isnanf (ix))
- {
- return x - x;
- }
- else if (isinff (ix))
- {
- __set_errno (EDOM);
- return x - x;
- }
-
- /* argument reduction needed */
- else
- {
- n = __ieee754_rem_pio2f (x, y);
- switch (n & 3)
- {
- case 0:
- return __kernel_sinf (y[0], y[1], 1);
- case 1:
- return __kernel_cosf (y[0], y[1]);
- case 2:
- return -__kernel_sinf (y[0], y[1], 1);
- default:
- return -__kernel_cosf (y[0], y[1]);
- }
- }
-}
-
-libm_alias_float (__sin, sin)
diff --git a/sysdeps/powerpc/fpu/s_trunc.c b/sysdeps/powerpc/fpu/s_trunc.c
new file mode 100644
index 0000000000..4402cc68ac
--- /dev/null
+++ b/sysdeps/powerpc/fpu/s_trunc.c
@@ -0,0 +1,35 @@
+/* Largest integral value not greater than argument. PowerPC version.
+ 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 Library General Public License as
+ published by the Free Software Foundation; either version 2 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If
+ not, see <https://www.gnu.org/licenses/>. */
+
+#define NO_MATH_REDIRECT
+#include <math.h>
+#include <libm-alias-double.h>
+#include <round_to_integer.h>
+
+double
+__trunc (double x)
+{
+#ifdef _ARCH_PWR5X
+ return __builtin_trunc (x);
+#else
+ return round_to_integer_double (TRUNC, x);
+#endif
+}
+#ifndef __trunc
+libm_alias_double (__trunc, trunc)
+#endif
diff --git a/sysdeps/powerpc/fpu/s_truncf.c b/sysdeps/powerpc/fpu/s_truncf.c
new file mode 100644
index 0000000000..d548e5fcc9
--- /dev/null
+++ b/sysdeps/powerpc/fpu/s_truncf.c
@@ -0,0 +1,35 @@
+/* Smallest integral value not less than argument. PowerPC version.
+ 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 Library General Public License as
+ published by the Free Software Foundation; either version 2 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If
+ not, see <https://www.gnu.org/licenses/>. */
+
+#define NO_MATH_REDIRECT
+#include <math.h>
+#include <libm-alias-float.h>
+#include <round_to_integer.h>
+
+float
+__truncf (float x)
+{
+#ifdef _ARCH_PWR5X
+ return __builtin_truncf (x);
+#else
+ return round_to_integer_float (TRUNC, x);
+#endif
+}
+#ifndef __truncf
+libm_alias_float (__trunc, trunc)
+#endif
diff --git a/sysdeps/powerpc/fpu/tst-setcontext-fpscr.c b/sysdeps/powerpc/fpu/tst-setcontext-fpscr.c
index 4b25ec3e40..222aea442e 100644
--- a/sysdeps/powerpc/fpu/tst-setcontext-fpscr.c
+++ b/sysdeps/powerpc/fpu/tst-setcontext-fpscr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ryan S. Arnold <rsa@us.ibm.com>
Sean Curry <spcurry@us.ibm.com>
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdio.h>
@@ -63,7 +63,7 @@ ElfW(Addr) query_auxv(int type)
do
{
- fread(&auxv_struct, sizeof(ElfW(auxv_t)), 1, auxv_f);
+ fread (&auxv_struct, sizeof (ElfW(auxv_t)), 1, auxv_f);
auxv[i] = auxv_struct;
i++;
} while(auxv_struct.a_type != AT_NULL);
@@ -97,9 +97,7 @@ typedef unsigned int si_fpscr_t __attribute__ ((__mode__ (__SI__)));
/* Macros for accessing the hardware control word on Power6[x]. */
#define _GET_DI_FPSCR(__fpscr) \
({union { double d; di_fpscr_t fpscr; } u; \
- register double fr; \
- __asm__ ("mffs %0" : "=f" (fr)); \
- u.d = fr; \
+ u.d = __builtin_mffs (); \
(__fpscr) = u.fpscr; \
u.fpscr; \
})
@@ -121,9 +119,7 @@ typedef unsigned int si_fpscr_t __attribute__ ((__mode__ (__SI__)));
# define _GET_SI_FPSCR(__fpscr) \
({union { double d; di_fpscr_t fpscr; } u; \
- register double fr; \
- __asm__ ("mffs %0" : "=f" (fr)); \
- u.d = fr; \
+ u.d = __builtin_mffs (); \
(__fpscr) = (si_fpscr_t) u.fpscr; \
(si_fpscr_t) u.fpscr; \
})
@@ -137,7 +133,7 @@ typedef unsigned int si_fpscr_t __attribute__ ((__mode__ (__SI__)));
u.fpscr = 0xfff80000ULL << 32; \
u.fpscr |= __fpscr & 0xffffffffULL; \
fr = u.d; \
- __asm__ ("mtfsf 255,%0" : : "f" (fr)); \
+ __builtin_mtfsf (255, fr); \
fr = 0.0; \
}
diff --git a/sysdeps/powerpc/fpu_control.h b/sysdeps/powerpc/fpu_control.h
index 9d0698b4fc..dc22a9293b 100644
--- a/sysdeps/powerpc/fpu_control.h
+++ b/sysdeps/powerpc/fpu_control.h
@@ -1,5 +1,5 @@
/* FPU control word definitions. PowerPC version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,11 +14,15 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FPU_CONTROL_H
#define _FPU_CONTROL_H
+#if defined __SPE__ || (defined __NO_FPRS__ && !defined _SOFT_FLOAT)
+# error "SPE/e500 is no longer supported"
+#endif
+
#ifdef _SOFT_FLOAT
# define _FPU_RESERVED 0xffffffff
@@ -28,41 +32,6 @@ typedef unsigned int fpu_control_t;
# define _FPU_SETCW(cw) (void) (cw)
extern fpu_control_t __fpu_control;
-#elif defined __NO_FPRS__ /* e500 */
-
-/* rounding control */
-# define _FPU_RC_NEAREST 0x00 /* RECOMMENDED */
-# define _FPU_RC_DOWN 0x03
-# define _FPU_RC_UP 0x02
-# define _FPU_RC_ZERO 0x01
-
-/* masking of interrupts */
-# define _FPU_MASK_ZM 0x10 /* zero divide */
-# define _FPU_MASK_OM 0x04 /* overflow */
-# define _FPU_MASK_UM 0x08 /* underflow */
-# define _FPU_MASK_XM 0x40 /* inexact */
-# define _FPU_MASK_IM 0x20 /* invalid operation */
-
-# define _FPU_RESERVED 0x00c10080 /* These bits are reserved and not changed. */
-
-/* Correct IEEE semantics require traps to be enabled at the hardware
- level; the kernel then does the emulation and determines whether
- generation of signals from those traps was enabled using prctl. */
-# define _FPU_DEFAULT 0x0000003c /* Default value. */
-# define _FPU_IEEE _FPU_DEFAULT
-
-/* Type of the control word. */
-typedef unsigned int fpu_control_t;
-
-/* Macros for accessing the hardware control word. */
-# define _FPU_GETCW(cw) \
- __asm__ volatile ("mfspefscr %0" : "=r" (cw))
-# define _FPU_SETCW(cw) \
- __asm__ volatile ("mtspefscr %0" : : "r" (cw))
-
-/* Default control word set at startup. */
-extern fpu_control_t __fpu_control;
-
#else /* PowerPC 6xx floating-point. */
/* rounding control */
@@ -71,6 +40,8 @@ extern fpu_control_t __fpu_control;
# define _FPU_RC_UP 0x02
# define _FPU_RC_ZERO 0x01
+# define _FPU_MASK_RC (_FPU_RC_NEAREST|_FPU_RC_DOWN|_FPU_RC_UP|_FPU_RC_ZERO)
+
# define _FPU_MASK_NI 0x04 /* non-ieee mode */
/* masking of interrupts */
@@ -96,20 +67,43 @@ typedef unsigned int fpu_control_t;
/* Macros for accessing the hardware control word. */
# define _FPU_GETCW(cw) \
({union { double __d; unsigned long long __ll; } __u; \
- register double __fr; \
- __asm__ ("mffs %0" : "=f" (__fr)); \
- __u.__d = __fr; \
+ __asm__ __volatile__("mffs %0" : "=f" (__u.__d)); \
(cw) = (fpu_control_t) __u.__ll; \
(fpu_control_t) __u.__ll; \
})
+# define _FPU_GET_RC_ISA300() \
+ ({union { double __d; unsigned long long __ll; } __u; \
+ __asm__ __volatile__( \
+ ".machine push; .machine \"power9\"; mffsl %0; .machine pop" \
+ : "=f" (__u.__d)); \
+ (fpu_control_t) (__u.__ll & _FPU_MASK_RC); \
+ })
+
+# ifdef _ARCH_PWR9
+# define _FPU_GET_RC() _FPU_GET_RC_ISA300()
+# elif defined __BUILTIN_CPU_SUPPORTS__
+# define _FPU_GET_RC() \
+ ({fpu_control_t __rc; \
+ __rc = __glibc_likely (__builtin_cpu_supports ("arch_3_00")) \
+ ? _FPU_GET_RC_ISA300 () \
+ : _FPU_GETCW (__rc) & _FPU_MASK_RC; \
+ __rc; \
+ })
+# else
+# define _FPU_GET_RC() \
+ ({fpu_control_t __rc = _FPU_GETCW (__rc) & _FPU_MASK_RC; \
+ __rc; \
+ })
+# endif
+
# define _FPU_SETCW(cw) \
{ union { double __d; unsigned long long __ll; } __u; \
register double __fr; \
__u.__ll = 0xfff80000LL << 32; /* This is a QNaN. */ \
__u.__ll |= (cw) & 0xffffffffLL; \
__fr = __u.__d; \
- __asm__ ("mtfsf 255,%0" : : "f" (__fr)); \
+ __asm__ __volatile__("mtfsf 255,%0" : : "f" (__fr)); \
}
/* Default control word set at startup. */
diff --git a/sysdeps/powerpc/gccframe.h b/sysdeps/powerpc/gccframe.h
index 60116a2ed7..6a5931a1e5 100644
--- a/sysdeps/powerpc/gccframe.h
+++ b/sysdeps/powerpc/gccframe.h
@@ -1,5 +1,5 @@
/* Definition of object in frame unwind info. powerpc version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define DWARF_FRAME_REGISTERS 77
diff --git a/sysdeps/powerpc/hwcapinfo.c b/sysdeps/powerpc/hwcapinfo.c
index a09b183093..35df5899dd 100644
--- a/sysdeps/powerpc/hwcapinfo.c
+++ b/sysdeps/powerpc/hwcapinfo.c
@@ -1,5 +1,5 @@
/* powerpc HWCAP/HWCAP2 and AT_PLATFORM data pre-processing.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <shlib-compat.h>
diff --git a/sysdeps/powerpc/hwcapinfo.h b/sysdeps/powerpc/hwcapinfo.h
index b53fad1beb..b6035e3ebb 100644
--- a/sysdeps/powerpc/hwcapinfo.h
+++ b/sysdeps/powerpc/hwcapinfo.h
@@ -1,5 +1,5 @@
/* powerpc HWCAP/HWCAP2 and AT_PLATFORM data pre-processing.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/sysdeps/powerpc/jmpbuf-offsets.h b/sysdeps/powerpc/jmpbuf-offsets.h
index a974360038..2864415b60 100644
--- a/sysdeps/powerpc/jmpbuf-offsets.h
+++ b/sysdeps/powerpc/jmpbuf-offsets.h
@@ -1,5 +1,5 @@
/* Private macros for accessing __jmp_buf contents. PowerPC version.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define JB_GPR1 0 /* Also known as the stack pointer */
#define JB_GPR2 1
diff --git a/sysdeps/powerpc/jmpbuf-unwind.h b/sysdeps/powerpc/jmpbuf-unwind.h
index cb10cd2584..bba0e24ec5 100644
--- a/sysdeps/powerpc/jmpbuf-unwind.h
+++ b/sysdeps/powerpc/jmpbuf-unwind.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <setjmp.h>
#include <jmpbuf-offsets.h>
diff --git a/sysdeps/powerpc/ldsodefs.h b/sysdeps/powerpc/ldsodefs.h
index 2a981d888d..8b2e32a8d1 100644
--- a/sysdeps/powerpc/ldsodefs.h
+++ b/sysdeps/powerpc/ldsodefs.h
@@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _POWERPC_LDSODEFS_H
#define _POWERPC_LDSODEFS_H 1
diff --git a/sysdeps/powerpc/libc-tls.c b/sysdeps/powerpc/libc-tls.c
index a2554e0819..7ff1817f9c 100644
--- a/sysdeps/powerpc/libc-tls.c
+++ b/sysdeps/powerpc/libc-tls.c
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. PowerPC version.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <csu/libc-tls.c>
#include <dl-tls.h>
diff --git a/sysdeps/powerpc/longjmp.c b/sysdeps/powerpc/longjmp.c
index e34115844f..01d365e624 100644
--- a/sysdeps/powerpc/longjmp.c
+++ b/sysdeps/powerpc/longjmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Versioned copy of sysdeps/generic/longjmp.c modified for AltiVec support. */
diff --git a/sysdeps/powerpc/machine-gmon.h b/sysdeps/powerpc/machine-gmon.h
index 8e34f24294..d1b244b075 100644
--- a/sysdeps/powerpc/machine-gmon.h
+++ b/sysdeps/powerpc/machine-gmon.h
@@ -1,5 +1,5 @@
/* PowerPC-specific implementation of profiling support.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* We need a special version of the `mcount' function because it has
to preserve more registers than your usual function. */
diff --git a/sysdeps/powerpc/math-tests-snan-cast.h b/sysdeps/powerpc/math-tests-snan-cast.h
new file mode 100644
index 0000000000..de781e6860
--- /dev/null
+++ b/sysdeps/powerpc/math-tests-snan-cast.h
@@ -0,0 +1,30 @@
+/* Configuration for math tests: casts of sNaN values. PowerPC version.
+ Copyright (C) 2013-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef POWERPC_MATH_TESTS_SNAN_CAST_H
+#define POWERPC_MATH_TESTS_SNAN_CAST_H 1
+
+/* On PowerPC, in versions of GCC up to at least 4.7.2, a type cast --
+ which is a IEEE 754-2008 general-computational convertFormat
+ operation (IEEE 754-2008, 5.4.2) -- does not turn a sNaN into a
+ qNaN (whilst raising an INVALID exception), which is contrary to
+ IEEE 754-2008 5.1 and 7.2. This renders certain tests infeasible
+ in this scenario. <https://gcc.gnu.org/PR56828>. */
+#define SNAN_TESTS_TYPE_CAST 0
+
+#endif /* math-tests-snan-cast.h. */
diff --git a/sysdeps/powerpc/math-tests.h b/sysdeps/powerpc/math-tests.h
deleted file mode 100644
index cf8adccefd..0000000000
--- a/sysdeps/powerpc/math-tests.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Configuration for math tests. PowerPC version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-/* On PowerPC, in versions of GCC up to at least 4.7.2, a type cast -- which is
- a IEEE 754-2008 general-computational convertFormat operation (IEEE
- 754-2008, 5.4.2) -- does not turn a sNaN into a qNaN (whilst raising an
- INVALID exception), which is contrary to IEEE 754-2008 5.1 and 7.2. This
- renders certain tests infeasible in this scenario.
- <http://gcc.gnu.org/PR56828>. */
-#define SNAN_TESTS_TYPE_CAST 0
-
-#ifndef __NO_FPRS__
-/* Setting exception flags in FPSCR results in enabled traps for those
- exceptions being taken. */
-# define EXCEPTION_SET_FORCES_TRAP 1
-#endif
-
-#include_next <math-tests.h>
diff --git a/sysdeps/powerpc/memusage.h b/sysdeps/powerpc/memusage.h
index 41048f26a4..b0940d7129 100644
--- a/sysdeps/powerpc/memusage.h
+++ b/sysdeps/powerpc/memusage.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define GETSP() ({ register uintptr_t stack_ptr asm ("%r1"); stack_ptr; })
diff --git a/sysdeps/powerpc/nofpu/atomic-feclearexcept.c b/sysdeps/powerpc/nofpu/atomic-feclearexcept.c
index fd19b69878..ba356a5e15 100644
--- a/sysdeps/powerpc/nofpu/atomic-feclearexcept.c
+++ b/sysdeps/powerpc/nofpu/atomic-feclearexcept.c
@@ -1,5 +1,5 @@
/* Clear floating-point exceptions for atomic compound assignment.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "soft-supp.h"
diff --git a/sysdeps/powerpc/nofpu/atomic-feholdexcept.c b/sysdeps/powerpc/nofpu/atomic-feholdexcept.c
index 563a0ddf92..811a33a566 100644
--- a/sysdeps/powerpc/nofpu/atomic-feholdexcept.c
+++ b/sysdeps/powerpc/nofpu/atomic-feholdexcept.c
@@ -1,6 +1,6 @@
/* Store current floating-point environment and clear exceptions for
atomic compound assignment.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "soft-supp.h"
diff --git a/sysdeps/powerpc/nofpu/atomic-feupdateenv.c b/sysdeps/powerpc/nofpu/atomic-feupdateenv.c
index 46a1763671..cd21316b29 100644
--- a/sysdeps/powerpc/nofpu/atomic-feupdateenv.c
+++ b/sysdeps/powerpc/nofpu/atomic-feupdateenv.c
@@ -1,6 +1,6 @@
/* Install given floating-point environment and raise exceptions for
atomic compound assignment.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "soft-supp.h"
diff --git a/sysdeps/powerpc/nofpu/fclrexcpt.c b/sysdeps/powerpc/nofpu/fclrexcpt.c
index 1a4c712cd8..7d9610af26 100644
--- a/sysdeps/powerpc/nofpu/fclrexcpt.c
+++ b/sysdeps/powerpc/nofpu/fclrexcpt.c
@@ -1,5 +1,5 @@
/* Clear floating-point exceptions (soft-float edition).
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
Contributed by Aldy Hernandez <aldyh@redhat.com>, 2002.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "soft-supp.h"
diff --git a/sysdeps/powerpc/nofpu/fedisblxcpt.c b/sysdeps/powerpc/nofpu/fedisblxcpt.c
index abf9e3cc90..307ec5b818 100644
--- a/sysdeps/powerpc/nofpu/fedisblxcpt.c
+++ b/sysdeps/powerpc/nofpu/fedisblxcpt.c
@@ -1,5 +1,5 @@
/* Disable exceptions (soft-float edition).
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
Contributed by Aldy Hernandez <aldyh@redhat.com>, 2002.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "soft-supp.h"
diff --git a/sysdeps/powerpc/nofpu/feenablxcpt.c b/sysdeps/powerpc/nofpu/feenablxcpt.c
index 084e69d310..3f7d1932ea 100644
--- a/sysdeps/powerpc/nofpu/feenablxcpt.c
+++ b/sysdeps/powerpc/nofpu/feenablxcpt.c
@@ -1,5 +1,5 @@
/* Enable exceptions (soft-float edition).
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
Contributed by Aldy Hernandez <aldyh@redhat.com>, 2002.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-supp.h"
#include <fenv.h>
diff --git a/sysdeps/powerpc/nofpu/fegetenv.c b/sysdeps/powerpc/nofpu/fegetenv.c
index fe96f60acf..1897354391 100644
--- a/sysdeps/powerpc/nofpu/fegetenv.c
+++ b/sysdeps/powerpc/nofpu/fegetenv.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment (soft-float edition).
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
Contributed by Aldy Hernandez <aldyh@redhat.com>, 2002, 2010.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "soft-supp.h"
diff --git a/sysdeps/powerpc/nofpu/fegetexcept.c b/sysdeps/powerpc/nofpu/fegetexcept.c
index b5468b5e72..e0bd5ca40a 100644
--- a/sysdeps/powerpc/nofpu/fegetexcept.c
+++ b/sysdeps/powerpc/nofpu/fegetexcept.c
@@ -1,5 +1,5 @@
/* Get floating-point exceptions (soft-float edition).
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
Contributed by Aldy Hernandez <aldyh@redhat.com>, 2002.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "soft-supp.h"
diff --git a/sysdeps/powerpc/nofpu/fegetmode.c b/sysdeps/powerpc/nofpu/fegetmode.c
index 7c896105d9..2435ebdf8b 100644
--- a/sysdeps/powerpc/nofpu/fegetmode.c
+++ b/sysdeps/powerpc/nofpu/fegetmode.c
@@ -1,5 +1,5 @@
/* Store current floating-point control modes. PowerPC soft-float version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "soft-supp.h"
diff --git a/sysdeps/powerpc/nofpu/fegetround.c b/sysdeps/powerpc/nofpu/fegetround.c
index eb329c97a0..4e90e7eebd 100644
--- a/sysdeps/powerpc/nofpu/fegetround.c
+++ b/sysdeps/powerpc/nofpu/fegetround.c
@@ -1,5 +1,5 @@
/* Return current rounding mode (soft-float edition).
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
Contributed by Aldy Hernandez <aldyh@redhat.com>, 2002.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "soft-supp.h"
diff --git a/sysdeps/powerpc/nofpu/feholdexcpt.c b/sysdeps/powerpc/nofpu/feholdexcpt.c
index 40345847f2..06bb706b6a 100644
--- a/sysdeps/powerpc/nofpu/feholdexcpt.c
+++ b/sysdeps/powerpc/nofpu/feholdexcpt.c
@@ -1,6 +1,6 @@
/* Store current floating-point environment and clear exceptions
(soft-float edition).
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
Contributed by Aldy Hernandez <aldyh@redhat.com>, 2002.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "soft-supp.h"
diff --git a/sysdeps/powerpc/nofpu/fenv_const.c b/sysdeps/powerpc/nofpu/fenv_const.c
index 367fc9e6c7..96331f9c23 100644
--- a/sysdeps/powerpc/nofpu/fenv_const.c
+++ b/sysdeps/powerpc/nofpu/fenv_const.c
@@ -1,5 +1,5 @@
/* Constants for fenv_bits.h (soft float edition).
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
Contributed by Aldy Hernandez <aldyh@redhat.com>, 2002.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* We want to specify the bit pattern of the __fe_*_env constants, so
pretend they're really `long long' instead of `double'. */
diff --git a/sysdeps/powerpc/nofpu/fesetenv.c b/sysdeps/powerpc/nofpu/fesetenv.c
index fd7c3b4ed3..f6ce08d7f4 100644
--- a/sysdeps/powerpc/nofpu/fesetenv.c
+++ b/sysdeps/powerpc/nofpu/fesetenv.c
@@ -1,5 +1,5 @@
/* Set floating point environment (soft-float edition).
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
Contributed by Aldy Hernandez <aldyh@redhat.com>, 2002.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "soft-supp.h"
diff --git a/sysdeps/powerpc/nofpu/fesetexcept.c b/sysdeps/powerpc/nofpu/fesetexcept.c
index a3309ec435..6a23da50c9 100644
--- a/sysdeps/powerpc/nofpu/fesetexcept.c
+++ b/sysdeps/powerpc/nofpu/fesetexcept.c
@@ -1,5 +1,5 @@
/* Set given exception flags. PowerPC soft-float version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-supp.h"
diff --git a/sysdeps/powerpc/nofpu/fesetmode.c b/sysdeps/powerpc/nofpu/fesetmode.c
index 88655ee15c..9dc972e12a 100644
--- a/sysdeps/powerpc/nofpu/fesetmode.c
+++ b/sysdeps/powerpc/nofpu/fesetmode.c
@@ -1,5 +1,5 @@
/* Install given floating-point control modes. PowerPC soft-float version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "soft-supp.h"
diff --git a/sysdeps/powerpc/nofpu/fesetround.c b/sysdeps/powerpc/nofpu/fesetround.c
index 75b51aafb1..12c458deea 100644
--- a/sysdeps/powerpc/nofpu/fesetround.c
+++ b/sysdeps/powerpc/nofpu/fesetround.c
@@ -1,5 +1,5 @@
/* Set rounding mode (soft-float edition).
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
Contributed by Aldy Hernandez <aldyh@redhat.com>, 2002.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "soft-supp.h"
diff --git a/sysdeps/powerpc/nofpu/feupdateenv.c b/sysdeps/powerpc/nofpu/feupdateenv.c
index f576a4f4c6..e29ac2d839 100644
--- a/sysdeps/powerpc/nofpu/feupdateenv.c
+++ b/sysdeps/powerpc/nofpu/feupdateenv.c
@@ -1,6 +1,6 @@
/* Install given floating-point environment and raise exceptions
(soft-float edition).
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
Contributed by Aldy Hernandez <aldyh@redhat.com>, 2002.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "soft-supp.h"
diff --git a/sysdeps/powerpc/nofpu/fgetexcptflg.c b/sysdeps/powerpc/nofpu/fgetexcptflg.c
index 331b81a643..7ac5103e6a 100644
--- a/sysdeps/powerpc/nofpu/fgetexcptflg.c
+++ b/sysdeps/powerpc/nofpu/fgetexcptflg.c
@@ -1,5 +1,5 @@
/* Store current representation for exceptions (soft-float edition).
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
Contributed by Aldy Hernandez <aldyh@redhat.com>, 2002.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "soft-supp.h"
diff --git a/sysdeps/powerpc/nofpu/flt-rounds.c b/sysdeps/powerpc/nofpu/flt-rounds.c
index 55419e1904..a42da02a0a 100644
--- a/sysdeps/powerpc/nofpu/flt-rounds.c
+++ b/sysdeps/powerpc/nofpu/flt-rounds.c
@@ -1,5 +1,5 @@
/* Return current rounding mode as correct value for FLT_ROUNDS.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
diff --git a/sysdeps/powerpc/nofpu/fraiseexcpt.c b/sysdeps/powerpc/nofpu/fraiseexcpt.c
index c8a4024425..b9bc549bb5 100644
--- a/sysdeps/powerpc/nofpu/fraiseexcpt.c
+++ b/sysdeps/powerpc/nofpu/fraiseexcpt.c
@@ -1,5 +1,5 @@
/* Raise given exceptions (soft-float edition).
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
Contributed by Aldy Hernandez <aldyh@redhat.com>, 2002.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "soft-supp.h"
diff --git a/sysdeps/powerpc/nofpu/fsetexcptflg.c b/sysdeps/powerpc/nofpu/fsetexcptflg.c
index 467195d778..4ae156fd15 100644
--- a/sysdeps/powerpc/nofpu/fsetexcptflg.c
+++ b/sysdeps/powerpc/nofpu/fsetexcptflg.c
@@ -1,5 +1,5 @@
/* Set floating-point environment exception handling (soft-float edition).
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
Contributed by Aldy Hernandez <aldyh@redhat.com>, 2002.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "soft-supp.h"
diff --git a/sysdeps/powerpc/nofpu/ftestexcept.c b/sysdeps/powerpc/nofpu/ftestexcept.c
index 4b586a7457..474383e5f1 100644
--- a/sysdeps/powerpc/nofpu/ftestexcept.c
+++ b/sysdeps/powerpc/nofpu/ftestexcept.c
@@ -1,5 +1,5 @@
/* Test floating-point exceptions (soft-float edition).
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
Contributed by Aldy Hernandez <aldyh@redhat.com>, 2002.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "soft-supp.h"
diff --git a/sysdeps/powerpc/nofpu/get-rounding-mode.h b/sysdeps/powerpc/nofpu/get-rounding-mode.h
index 4a59577682..94eb7f6284 100644
--- a/sysdeps/powerpc/nofpu/get-rounding-mode.h
+++ b/sysdeps/powerpc/nofpu/get-rounding-mode.h
@@ -1,6 +1,6 @@
/* Determine floating-point rounding mode within libc. PowerPC
soft-float version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _POWERPC_NOFPU_GET_ROUNDING_MODE_H
#define _POWERPC_NOFPU_GET_ROUNDING_MODE_H 1
diff --git a/sysdeps/powerpc/nofpu/libm-test-ulps b/sysdeps/powerpc/nofpu/libm-test-ulps
index 6c13a1852c..8aedb8bb2f 100644
--- a/sysdeps/powerpc/nofpu/libm-test-ulps
+++ b/sysdeps/powerpc/nofpu/libm-test-ulps
@@ -716,9 +716,9 @@ ildouble: 6
ldouble: 6
Function: Imaginary part of "ccos_downward":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 6
ldouble: 6
@@ -732,9 +732,9 @@ ildouble: 6
ldouble: 6
Function: Imaginary part of "ccos_towardzero":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 6
ldouble: 6
@@ -772,33 +772,33 @@ ildouble: 2
ldouble: 2
Function: Real part of "ccosh_downward":
-double: 1
+double: 2
float: 3
-idouble: 1
+idouble: 2
ifloat: 3
ildouble: 6
ldouble: 6
Function: Imaginary part of "ccosh_downward":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 6
ldouble: 6
Function: Real part of "ccosh_towardzero":
-double: 1
+double: 2
float: 3
-idouble: 1
+idouble: 2
ifloat: 3
ildouble: 10
ldouble: 10
Function: Imaginary part of "ccosh_towardzero":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 6
ldouble: 6
@@ -836,33 +836,33 @@ ildouble: 1
ldouble: 1
Function: Real part of "cexp_downward":
-double: 1
+double: 2
float: 2
-idouble: 1
+idouble: 2
ifloat: 2
ildouble: 11
ldouble: 11
Function: Imaginary part of "cexp_downward":
-double: 1
+double: 3
float: 3
-idouble: 1
+idouble: 3
ifloat: 3
ildouble: 11
ldouble: 11
Function: Real part of "cexp_towardzero":
-double: 1
+double: 2
float: 2
-idouble: 1
+idouble: 2
ifloat: 2
ildouble: 11
ldouble: 11
Function: Imaginary part of "cexp_towardzero":
-double: 1
+double: 3
float: 3
-idouble: 1
+idouble: 3
ifloat: 3
ildouble: 11
ldouble: 11
@@ -876,9 +876,9 @@ ildouble: 3
ldouble: 3
Function: Imaginary part of "cexp_upward":
-double: 1
+double: 3
float: 2
-idouble: 1
+idouble: 3
ifloat: 2
ildouble: 3
ldouble: 3
@@ -1050,25 +1050,25 @@ ildouble: 3
ldouble: 3
Function: "cosh_downward":
-double: 1
+double: 2
float: 1
-idouble: 1
+idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
Function: "cosh_towardzero":
-double: 1
+double: 2
float: 1
-idouble: 1
+idouble: 2
ifloat: 1
ildouble: 2
ldouble: 2
Function: "cosh_upward":
-double: 1
+double: 2
float: 2
-idouble: 1
+idouble: 2
ifloat: 2
ildouble: 2
ldouble: 2
@@ -1088,9 +1088,9 @@ ildouble: 1
ldouble: 1
Function: Real part of "cpow_downward":
-double: 4
+double: 5
float: 8
-idouble: 4
+idouble: 5
ifloat: 8
ildouble: 7
ldouble: 7
@@ -1104,9 +1104,9 @@ ildouble: 4
ldouble: 4
Function: Real part of "cpow_towardzero":
-double: 4
+double: 5
float: 8
-idouble: 4
+idouble: 5
ifloat: 8
ildouble: 8
ldouble: 8
@@ -1148,9 +1148,9 @@ ildouble: 1
ldouble: 1
Function: Real part of "csin_downward":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 6
ldouble: 6
@@ -1164,9 +1164,9 @@ ildouble: 6
ldouble: 6
Function: Real part of "csin_towardzero":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 6
ldouble: 6
@@ -1218,9 +1218,9 @@ ildouble: 6
ldouble: 6
Function: Imaginary part of "csinh_downward":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 6
ldouble: 6
@@ -1234,9 +1234,9 @@ ildouble: 6
ldouble: 6
Function: Imaginary part of "csinh_towardzero":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 6
ldouble: 6
@@ -1529,17 +1529,17 @@ ildouble: 1
ldouble: 1
Function: "exp10_downward":
-double: 2
+double: 3
float: 1
-idouble: 2
+idouble: 3
ifloat: 1
ildouble: 9
ldouble: 9
Function: "exp10_towardzero":
-double: 2
+double: 3
float: 1
-idouble: 2
+idouble: 3
ifloat: 1
ildouble: 9
ldouble: 9
diff --git a/sysdeps/powerpc/nofpu/sim-full.c b/sysdeps/powerpc/nofpu/sim-full.c
index 223bf488f2..031d34faeb 100644
--- a/sysdeps/powerpc/nofpu/sim-full.c
+++ b/sysdeps/powerpc/nofpu/sim-full.c
@@ -1,5 +1,5 @@
/* Software floating-point exception handling emulation.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
Contributed by Aldy Hernandez <aldyh@redhat.com>, 2002.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <signal.h>
#include "soft-fp.h"
@@ -23,14 +23,14 @@
/* Thread-local to store sticky exceptions. */
__thread int __sim_exceptions_thread __attribute__ ((nocommon));
-libc_hidden_data_def (__sim_exceptions_thread);
+libc_hidden_tls_def (__sim_exceptions_thread);
/* By default, no exceptions should trap. */
__thread int __sim_disabled_exceptions_thread = 0xffffffff;
-libc_hidden_data_def (__sim_disabled_exceptions_thread);
+libc_hidden_tls_def (__sim_disabled_exceptions_thread);
__thread int __sim_round_mode_thread __attribute__ ((nocommon));
-libc_hidden_data_def (__sim_round_mode_thread);
+libc_hidden_tls_def (__sim_round_mode_thread);
#if SIM_GLOBAL_COMPAT
int __sim_exceptions_global __attribute__ ((nocommon));
diff --git a/sysdeps/powerpc/nofpu/soft-supp.h b/sysdeps/powerpc/nofpu/soft-supp.h
index 12af14f42c..d21274a8c3 100644
--- a/sysdeps/powerpc/nofpu/soft-supp.h
+++ b/sysdeps/powerpc/nofpu/soft-supp.h
@@ -1,5 +1,5 @@
/* Internal support stuff for complete soft float.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
Contributed by Aldy Hernandez <aldyh@redhat.com>, 2002.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if defined __NO_FPRS__ && !defined _SOFT_FLOAT
diff --git a/sysdeps/powerpc/nofpu/sqrtdf2.c b/sysdeps/powerpc/nofpu/sqrtdf2.c
index 50d1d26ceb..de29d379fa 100644
--- a/sysdeps/powerpc/nofpu/sqrtdf2.c
+++ b/sysdeps/powerpc/nofpu/sqrtdf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return sqrt(a)
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "double.h"
diff --git a/sysdeps/powerpc/nofpu/sqrtsf2.c b/sysdeps/powerpc/nofpu/sqrtsf2.c
index 8684f9631b..32153a92e1 100644
--- a/sysdeps/powerpc/nofpu/sqrtsf2.c
+++ b/sysdeps/powerpc/nofpu/sqrtsf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return sqrt(a)
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -26,7 +26,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "single.h"
diff --git a/sysdeps/powerpc/novmx-longjmp.c b/sysdeps/powerpc/novmx-longjmp.c
index ac95d9ab0c..301dec5dc6 100644
--- a/sysdeps/powerpc/novmx-longjmp.c
+++ b/sysdeps/powerpc/novmx-longjmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Copy of sysdeps/generic/longjmp.c modified for backward compatibility
with old non AltiVec/VMX longjmp. */
diff --git a/sysdeps/powerpc/novmx-sigjmp.c b/sysdeps/powerpc/novmx-sigjmp.c
index 7acdd6fc09..f94f58291b 100644
--- a/sysdeps/powerpc/novmx-sigjmp.c
+++ b/sysdeps/powerpc/novmx-sigjmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Copy of sysdeps/generic/sigjmp.c modified for backward compatibility
with old non AltiVec/VMX setjmp. */
@@ -33,9 +33,9 @@
int
__novmx__sigjmp_save (__novmx__sigjmp_buf env, int savemask)
{
- env[0].__mask_was_saved = (savemask &&
- __sigprocmask (SIG_BLOCK, (sigset_t *) NULL,
- &env[0].__saved_mask) == 0);
+ env[0].__mask_was_saved = (savemask
+ && __sigprocmask (SIG_BLOCK, (sigset_t *) NULL,
+ &env[0].__saved_mask) == 0);
return 0;
}
diff --git a/sysdeps/powerpc/novmxsetjmp.h b/sysdeps/powerpc/novmxsetjmp.h
index 0a1f39a7cf..84c3c19a81 100644
--- a/sysdeps/powerpc/novmxsetjmp.h
+++ b/sysdeps/powerpc/novmxsetjmp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Copied from setjmp/setjmp.h, powerpc/bits/setjmp.h and modified
appropriately to keep backward compatible with setjmp without
diff --git a/sysdeps/powerpc/nptl/Makefile b/sysdeps/powerpc/nptl/Makefile
index ddce0844fd..6280cf6483 100644
--- a/sysdeps/powerpc/nptl/Makefile
+++ b/sysdeps/powerpc/nptl/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2018 Free Software Foundation, Inc.
+# Copyright (C) 2003-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
ifeq ($(subdir),csu)
gen-as-const-headers += tcb-offsets.sym
diff --git a/sysdeps/powerpc/nptl/bits/pthreadtypes-arch.h b/sysdeps/powerpc/nptl/bits/pthreadtypes-arch.h
deleted file mode 100644
index b6215d02f4..0000000000
--- a/sysdeps/powerpc/nptl/bits/pthreadtypes-arch.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/* Machine-specific pthread type layouts. PowerPC version.
- Copyright (C) 2003-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _BITS_PTHREADTYPES_ARCH_H
-#define _BITS_PTHREADTYPES_ARCH_H 1
-
-#include <bits/wordsize.h>
-
-#if __WORDSIZE == 64
-# define __SIZEOF_PTHREAD_MUTEX_T 40
-# define __SIZEOF_PTHREAD_ATTR_T 56
-# define __SIZEOF_PTHREAD_RWLOCK_T 56
-# define __SIZEOF_PTHREAD_BARRIER_T 32
-#else
-# define __SIZEOF_PTHREAD_MUTEX_T 24
-# define __SIZEOF_PTHREAD_ATTR_T 36
-# define __SIZEOF_PTHREAD_RWLOCK_T 32
-# define __SIZEOF_PTHREAD_BARRIER_T 20
-#endif
-#define __SIZEOF_PTHREAD_MUTEXATTR_T 4
-#define __SIZEOF_PTHREAD_COND_T 48
-#define __SIZEOF_PTHREAD_CONDATTR_T 4
-#define __SIZEOF_PTHREAD_RWLOCKATTR_T 8
-#define __SIZEOF_PTHREAD_BARRIERATTR_T 4
-
-/* Definitions for internal mutex struct. */
-#define __PTHREAD_COMPAT_PADDING_MID
-#define __PTHREAD_COMPAT_PADDING_END
-#define __PTHREAD_MUTEX_LOCK_ELISION 1
-#define __PTHREAD_MUTEX_NUSERS_AFTER_KIND (__WORDSIZE != 64)
-#define __PTHREAD_MUTEX_USE_UNION (__WORDSIZE != 64)
-
-#define __LOCK_ALIGNMENT
-#define __ONCE_ALIGNMENT
-
-struct __pthread_rwlock_arch_t
-{
- unsigned int __readers;
- unsigned int __writers;
- unsigned int __wrphase_futex;
- unsigned int __writers_futex;
- unsigned int __pad3;
- unsigned int __pad4;
-#if __WORDSIZE == 64
- int __cur_writer;
- int __shared;
- unsigned char __rwelision;
- unsigned char __pad1[7];
- unsigned long int __pad2;
- /* FLAGS must stay at this position in the structure to maintain
- binary compatibility. */
- unsigned int __flags;
-# define __PTHREAD_RWLOCK_ELISION_EXTRA 0, {0, 0, 0, 0, 0, 0, 0 }
-#else
- unsigned char __rwelision;
- unsigned char __pad2;
- unsigned char __shared;
- /* FLAGS must stay at this position in the structure to maintain
- binary compatibility. */
- unsigned char __flags;
- int __cur_writer;
-# define __PTHREAD_RWLOCK_ELISION_EXTRA 0
-#endif
-};
-
-#endif /* bits/pthreadtypes.h */
diff --git a/sysdeps/powerpc/nptl/bits/struct_mutex.h b/sysdeps/powerpc/nptl/bits/struct_mutex.h
new file mode 100644
index 0000000000..a13dd58c4f
--- /dev/null
+++ b/sysdeps/powerpc/nptl/bits/struct_mutex.h
@@ -0,0 +1,63 @@
+/* PowerPC internal mutex struct definitions.
+ 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; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _THREAD_MUTEX_INTERNAL_H
+#define _THREAD_MUTEX_INTERNAL_H 1
+
+struct __pthread_mutex_s
+{
+ int __lock;
+ unsigned int __count;
+ int __owner;
+#if __WORDSIZE == 64
+ unsigned int __nusers;
+#endif
+ /* KIND must stay at this position in the structure to maintain
+ binary compatibility with static initializers. */
+ int __kind;
+#if __WORDSIZE == 64
+ short __spins;
+ short __elision;
+ __pthread_list_t __list;
+# define __PTHREAD_MUTEX_HAVE_PREV 1
+#else
+ unsigned int __nusers;
+ __extension__ union
+ {
+ struct
+ {
+ short __espins;
+ short __elision;
+# define __spins __elision_data.__espins
+# define __elision __elision_data.__elision
+ } __elision_data;
+ __pthread_slist_t __list;
+ };
+# define __PTHREAD_MUTEX_HAVE_PREV 0
+#endif
+};
+
+#if __WORDSIZE == 64
+# define __PTHREAD_MUTEX_INITIALIZER(__kind) \
+ 0, 0, 0, 0, __kind, 0, 0, { 0, 0 }
+#else
+# define __PTHREAD_MUTEX_INITIALIZER(__kind) \
+ 0, 0, 0, __kind, 0, { { 0, 0 } }
+#endif
+
+#endif
diff --git a/sysdeps/powerpc/nptl/bits/struct_rwlock.h b/sysdeps/powerpc/nptl/bits/struct_rwlock.h
new file mode 100644
index 0000000000..ee457b0bfa
--- /dev/null
+++ b/sysdeps/powerpc/nptl/bits/struct_rwlock.h
@@ -0,0 +1,61 @@
+/* PowerPC internal rwlock struct definitions.
+ 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; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _RWLOCK_INTERNAL_H
+#define _RWLOCK_INTERNAL_H
+
+struct __pthread_rwlock_arch_t
+{
+ unsigned int __readers;
+ unsigned int __writers;
+ unsigned int __wrphase_futex;
+ unsigned int __writers_futex;
+ unsigned int __pad3;
+ unsigned int __pad4;
+#if __WORDSIZE == 64
+ int __cur_writer;
+ int __shared;
+ unsigned char __rwelision;
+ unsigned char __pad1[7];
+ unsigned long int __pad2;
+ /* FLAGS must stay at this position in the structure to maintain
+ binary compatibility. */
+ unsigned int __flags;
+# define __PTHREAD_RWLOCK_ELISION_EXTRA 0, {0, 0, 0, 0, 0, 0, 0 }
+#else
+ unsigned char __rwelision;
+ unsigned char __pad2;
+ unsigned char __shared;
+ /* FLAGS must stay at this position in the structure to maintain
+ binary compatibility. */
+ unsigned char __flags;
+ int __cur_writer;
+# define __PTHREAD_RWLOCK_ELISION_EXTRA 0
+#endif
+};
+
+#if __WORDSIZE == 64
+# define __PTHREAD_RWLOCK_INITIALIZER(__flags) \
+ 0, 0, 0, 0, 0, 0, 0, 0, __PTHREAD_RWLOCK_ELISION_EXTRA, 0, __flags
+#else
+# define __PTHREAD_RWLOCK_INITIALIZER(__flags) \
+ 0, 0, 0, 0, 0, 0, __PTHREAD_RWLOCK_ELISION_EXTRA, 0, 0, __flags, 0
+#endif
+
+#endif
diff --git a/sysdeps/powerpc/nptl/elide.h b/sysdeps/powerpc/nptl/elide.h
index f26bf3d382..a387093bea 100644
--- a/sysdeps/powerpc/nptl/elide.h
+++ b/sysdeps/powerpc/nptl/elide.h
@@ -1,5 +1,5 @@
/* elide.h: Generic lock elision support for powerpc.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef ELIDE_PPC_H
# define ELIDE_PPC_H
diff --git a/sysdeps/powerpc/nptl/pthread-offsets.h b/sysdeps/powerpc/nptl/pthread-offsets.h
index bdda1f197e..9e2112120b 100644
--- a/sysdeps/powerpc/nptl/pthread-offsets.h
+++ b/sysdeps/powerpc/nptl/pthread-offsets.h
@@ -1,15 +1,13 @@
#include <bits/wordsize.h>
#if __WORDSIZE == 64
-# define __PTHREAD_MUTEX_NUSERS_OFFSET 12
# define __PTHREAD_MUTEX_KIND_OFFSET 16
-# define __PTHREAD_MUTEX_SPINS_OFFSET 20
-# define __PTHREAD_MUTEX_ELISION_OFFSET 22
-# define __PTHREAD_MUTEX_LIST_OFFSET 24
#else
-# define __PTHREAD_MUTEX_NUSERS_OFFSET 16
# define __PTHREAD_MUTEX_KIND_OFFSET 12
-# define __PTHREAD_MUTEX_SPINS_OFFSET 20
-# define __PTHREAD_MUTEX_ELISION_OFFSET 22
-# define __PTHREAD_MUTEX_LIST_OFFSET 20
+#endif
+
+#if __WORDSIZE == 64
+# define __PTHREAD_RWLOCK_FLAGS_OFFSET 48
+#else
+# define __PTHREAD_RWLOCK_FLAGS_OFFSET 27
#endif
diff --git a/sysdeps/powerpc/nptl/pthread_spin_lock.c b/sysdeps/powerpc/nptl/pthread_spin_lock.c
index 858abee20c..579f86c451 100644
--- a/sysdeps/powerpc/nptl/pthread_spin_lock.c
+++ b/sysdeps/powerpc/nptl/pthread_spin_lock.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Paul Mackerras <paulus@au.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "pthreadP.h"
diff --git a/sysdeps/powerpc/nptl/pthread_spin_trylock.c b/sysdeps/powerpc/nptl/pthread_spin_trylock.c
index 2b106e3606..edef670ac9 100644
--- a/sysdeps/powerpc/nptl/pthread_spin_trylock.c
+++ b/sysdeps/powerpc/nptl/pthread_spin_trylock.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Paul Mackerras <paulus@au.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include "pthreadP.h"
diff --git a/sysdeps/powerpc/nptl/pthread_spin_unlock.c b/sysdeps/powerpc/nptl/pthread_spin_unlock.c
index 0a1ec2b5ac..a0800328cb 100644
--- a/sysdeps/powerpc/nptl/pthread_spin_unlock.c
+++ b/sysdeps/powerpc/nptl/pthread_spin_unlock.c
@@ -1,5 +1,5 @@
/* pthread_spin_unlock -- unlock a spin lock. PowerPC version.
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "pthreadP.h"
#include <lowlevellock.h>
diff --git a/sysdeps/powerpc/nptl/pthreaddef.h b/sysdeps/powerpc/nptl/pthreaddef.h
index 83416849ee..d0617968ed 100644
--- a/sysdeps/powerpc/nptl/pthreaddef.h
+++ b/sysdeps/powerpc/nptl/pthreaddef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Default stack size. */
#define ARCH_STACK_DEFAULT_SIZE (4 * 1024 * 1024)
diff --git a/sysdeps/powerpc/nptl/tcb-offsets.sym b/sysdeps/powerpc/nptl/tcb-offsets.sym
index e5bb2b376d..4c01615ad0 100644
--- a/sysdeps/powerpc/nptl/tcb-offsets.sym
+++ b/sysdeps/powerpc/nptl/tcb-offsets.sym
@@ -21,7 +21,6 @@ DSO_SLOT2 (offsetof (tcbhead_t, dso_slot2) - TLS_TCB_OFFSET - sizeof (tcbhead_
#ifdef __powerpc64__
TCB_AT_PLATFORM (offsetof (tcbhead_t, at_platform) - TLS_TCB_OFFSET - sizeof(tcbhead_t))
#endif
-TM_CAPABLE (offsetof (tcbhead_t, tm_capable) - TLS_TCB_OFFSET - sizeof (tcbhead_t))
#ifndef __powerpc64__
TCB_AT_PLATFORM (offsetof (tcbhead_t, at_platform) - TLS_TCB_OFFSET - sizeof(tcbhead_t))
PADDING (offsetof (tcbhead_t, padding) - TLS_TCB_OFFSET - sizeof(tcbhead_t))
diff --git a/sysdeps/powerpc/nptl/tls.h b/sysdeps/powerpc/nptl/tls.h
index f88fed5ecf..32ecb714ee 100644
--- a/sysdeps/powerpc/nptl/tls.h
+++ b/sysdeps/powerpc/nptl/tls.h
@@ -1,5 +1,5 @@
/* Definition for thread-local data handling. NPTL/PowerPC version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _TLS_H
#define _TLS_H 1
@@ -67,8 +67,7 @@ typedef struct
uint32_t padding;
uint32_t at_platform;
#endif
- /* Indicate if HTM capable (ISA 2.07). */
- uint32_t tm_capable;
+ uint32_t __unused;
/* Reservation for AT_PLATFORM data - powerpc64. */
#ifdef __powerpc64__
uint32_t at_platform;
@@ -142,7 +141,6 @@ register void *__thread_register __asm__ ("r13");
# define TLS_INIT_TP(tcbp) \
({ \
__thread_register = (void *) (tcbp) + TLS_TCB_OFFSET; \
- THREAD_SET_TM_CAPABLE (__tcb_hwcap & PPC_FEATURE2_HAS_HTM ? 1 : 0); \
THREAD_SET_HWCAP (__tcb_hwcap); \
THREAD_SET_AT_PLATFORM (__tcb_platform); \
NULL; \
@@ -151,8 +149,6 @@ register void *__thread_register __asm__ ("r13");
/* Value passed to 'clone' for initialization of the thread register. */
# define TLS_DEFINE_INIT_TP(tp, pd) \
void *tp = (void *) (pd) + TLS_TCB_OFFSET + TLS_PRE_TCB_SIZE; \
- (((tcbhead_t *) ((char *) tp - TLS_TCB_OFFSET))[-1].tm_capable) = \
- THREAD_GET_TM_CAPABLE (); \
(((tcbhead_t *) ((char *) tp - TLS_TCB_OFFSET))[-1].hwcap) = \
THREAD_GET_HWCAP (); \
(((tcbhead_t *) ((char *) tp - TLS_TCB_OFFSET))[-1].at_platform) = \
@@ -210,13 +206,6 @@ register void *__thread_register __asm__ ("r13");
+ TLS_PRE_TCB_SIZE))[-1].pointer_guard \
= THREAD_GET_POINTER_GUARD())
-/* tm_capable field in TCB head. */
-# define THREAD_GET_TM_CAPABLE() \
- (((tcbhead_t *) ((char *) __thread_register \
- - TLS_TCB_OFFSET))[-1].tm_capable)
-# define THREAD_SET_TM_CAPABLE(value) \
- (THREAD_GET_TM_CAPABLE () = (value))
-
/* hwcap field in TCB head. */
# define THREAD_GET_HWCAP() \
(((tcbhead_t *) ((char *) __thread_register \
diff --git a/sysdeps/powerpc/power4/fpu/Makefile b/sysdeps/powerpc/power4/fpu/Makefile
deleted file mode 100644
index f487ed6014..0000000000
--- a/sysdeps/powerpc/power4/fpu/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-# Makefile fragment for POWER4/5/5+ with FPU.
-
-ifeq ($(subdir),math)
-CFLAGS-mpa.c += --param max-unroll-times=4 -funroll-loops -fpeel-loops
-endif
diff --git a/sysdeps/powerpc/power4/fpu/mpa-arch.h b/sysdeps/powerpc/power4/fpu/mpa-arch.h
deleted file mode 100644
index a2913a84ea..0000000000
--- a/sysdeps/powerpc/power4/fpu/mpa-arch.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Overridable constants and operations.
- Copyright (C) 2013-2018 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 by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
-
- This program 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 this program; if not, see <http://www.gnu.org/licenses/>. */
-
-typedef double mantissa_t;
-typedef double mantissa_store_t;
-
-#define TWOPOW(i) (0x1.0p##i)
-
-#define RADIX TWOPOW (24) /* 2^24 */
-#define CUTTER TWOPOW (76) /* 2^76 */
-#define RADIXI 0x1.0p-24 /* 2^-24 */
-#define TWO52 TWOPOW (52) /* 2^52 */
-
-/* Divide D by RADIX and put the remainder in R. */
-#define DIV_RADIX(d,r) \
- ({ \
- double u = ((d) + CUTTER) - CUTTER; \
- if (u > (d)) \
- u -= RADIX; \
- r = (d) - u; \
- (d) = u * RADIXI; \
- })
-
-/* Put the integer component of a double X in R and retain the fraction in
- X. */
-#define INTEGER_OF(x, r) \
- ({ \
- double u = ((x) + TWO52) - TWO52; \
- if (u > (x)) \
- u -= 1; \
- (r) = u; \
- (x) -= u; \
- })
-
-/* Align IN down to a multiple of F, where F is a power of two. */
-#define ALIGN_DOWN_TO(in, f) \
- ({ \
- double factor = f * TWO52; \
- double u = (in + factor) - factor; \
- if (u > in) \
- u -= f; \
- u; \
- })
diff --git a/sysdeps/powerpc/power4/fpu/mpa.c b/sysdeps/powerpc/power4/fpu/mpa.c
deleted file mode 100644
index bf4d4998e5..0000000000
--- a/sysdeps/powerpc/power4/fpu/mpa.c
+++ /dev/null
@@ -1,214 +0,0 @@
-
-/*
- * IBM Accurate Mathematical Library
- * written by International Business Machines Corp.
- * Copyright (C) 2001-2018 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 by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program 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 this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-/* Define __mul and __sqr and use the rest from generic code. */
-#define NO__MUL
-#define NO__SQR
-
-#include <sysdeps/ieee754/dbl-64/mpa.c>
-
-/* Multiply *X and *Y and store result in *Z. X and Y may overlap but not X
- and Z or Y and Z. For P in [1, 2, 3], the exact result is truncated to P
- digits. In case P > 3 the error is bounded by 1.001 ULP. */
-void
-__mul (const mp_no *x, const mp_no *y, mp_no *z, int p)
-{
- long i, i1, i2, j, k, k2;
- long p2 = p;
- double u, zk, zk2;
-
- /* Is z=0? */
- if (__glibc_unlikely (X[0] * Y[0] == 0))
- {
- Z[0] = 0;
- return;
- }
-
- /* Multiply, add and carry */
- k2 = (p2 < 3) ? p2 + p2 : p2 + 3;
- zk = Z[k2] = 0;
- for (k = k2; k > 1;)
- {
- if (k > p2)
- {
- i1 = k - p2;
- i2 = p2 + 1;
- }
- else
- {
- i1 = 1;
- i2 = k;
- }
-#if 1
- /* Rearrange this inner loop to allow the fmadd instructions to be
- independent and execute in parallel on processors that have
- dual symmetrical FP pipelines. */
- if (i1 < (i2 - 1))
- {
- /* Make sure we have at least 2 iterations. */
- if (((i2 - i1) & 1L) == 1L)
- {
- /* Handle the odd iterations case. */
- zk2 = x->d[i2 - 1] * y->d[i1];
- }
- else
- zk2 = 0.0;
- /* Do two multiply/adds per loop iteration, using independent
- accumulators; zk and zk2. */
- for (i = i1, j = i2 - 1; i < i2 - 1; i += 2, j -= 2)
- {
- zk += x->d[i] * y->d[j];
- zk2 += x->d[i + 1] * y->d[j - 1];
- }
- zk += zk2; /* Final sum. */
- }
- else
- {
- /* Special case when iterations is 1. */
- zk += x->d[i1] * y->d[i1];
- }
-#else
- /* The original code. */
- for (i = i1, j = i2 - 1; i < i2; i++, j--)
- zk += X[i] * Y[j];
-#endif
-
- u = (zk + CUTTER) - CUTTER;
- if (u > zk)
- u -= RADIX;
- Z[k] = zk - u;
- zk = u * RADIXI;
- --k;
- }
- Z[k] = zk;
-
- int e = EX + EY;
- /* Is there a carry beyond the most significant digit? */
- if (Z[1] == 0)
- {
- for (i = 1; i <= p2; i++)
- Z[i] = Z[i + 1];
- e--;
- }
-
- EZ = e;
- Z[0] = X[0] * Y[0];
-}
-
-/* Square *X and store result in *Y. X and Y may not overlap. For P in
- [1, 2, 3], the exact result is truncated to P digits. In case P > 3 the
- error is bounded by 1.001 ULP. This is a faster special case of
- multiplication. */
-void
-__sqr (const mp_no *x, mp_no *y, int p)
-{
- long i, j, k, ip;
- double u, yk;
-
- /* Is z=0? */
- if (__glibc_unlikely (X[0] == 0))
- {
- Y[0] = 0;
- return;
- }
-
- /* We need not iterate through all X's since it's pointless to
- multiply zeroes. */
- for (ip = p; ip > 0; ip--)
- if (X[ip] != 0)
- break;
-
- k = (__glibc_unlikely (p < 3)) ? p + p : p + 3;
-
- while (k > 2 * ip + 1)
- Y[k--] = 0;
-
- yk = 0;
-
- while (k > p)
- {
- double yk2 = 0.0;
- long lim = k / 2;
-
- if (k % 2 == 0)
- {
- yk += X[lim] * X[lim];
- lim--;
- }
-
- /* In __mul, this loop (and the one within the next while loop) run
- between a range to calculate the mantissa as follows:
-
- Z[k] = X[k] * Y[n] + X[k+1] * Y[n-1] ... + X[n-1] * Y[k+1]
- + X[n] * Y[k]
-
- For X == Y, we can get away with summing halfway and doubling the
- result. For cases where the range size is even, the mid-point needs
- to be added separately (above). */
- for (i = k - p, j = p; i <= lim; i++, j--)
- yk2 += X[i] * X[j];
-
- yk += 2.0 * yk2;
-
- u = (yk + CUTTER) - CUTTER;
- if (u > yk)
- u -= RADIX;
- Y[k--] = yk - u;
- yk = u * RADIXI;
- }
-
- while (k > 1)
- {
- double yk2 = 0.0;
- long lim = k / 2;
-
- if (k % 2 == 0)
- {
- yk += X[lim] * X[lim];
- lim--;
- }
-
- /* Likewise for this loop. */
- for (i = 1, j = k - 1; i <= lim; i++, j--)
- yk2 += X[i] * X[j];
-
- yk += 2.0 * yk2;
-
- u = (yk + CUTTER) - CUTTER;
- if (u > yk)
- u -= RADIX;
- Y[k--] = yk - u;
- yk = u * RADIXI;
- }
- Y[k] = yk;
-
- /* Squares are always positive. */
- Y[0] = 1.0;
-
- int e = EX * 2;
- /* Is there a carry beyond the most significant digit? */
- if (__glibc_unlikely (Y[1] == 0))
- {
- for (i = 1; i <= p; i++)
- Y[i] = Y[i + 1];
- e--;
- }
- EY = e;
-}
diff --git a/sysdeps/powerpc/power4/wordcopy.c b/sysdeps/powerpc/power4/wordcopy.c
index 510de2e573..66d13ee32d 100644
--- a/sysdeps/powerpc/power4/wordcopy.c
+++ b/sysdeps/powerpc/power4/wordcopy.c
@@ -1,5 +1,5 @@
/* _memcopy.c -- subroutines for memory copy functions.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* BE VERY CAREFUL IF YOU CHANGE THIS CODE...! */
diff --git a/sysdeps/powerpc/power5+/fpu/s_modf.c b/sysdeps/powerpc/power5+/fpu/s_modf.c
deleted file mode 100644
index 7a32d31303..0000000000
--- a/sysdeps/powerpc/power5+/fpu/s_modf.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Copyright (C) 2013-2018 Free Software 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 Library General Public License as
- published by the Free Software Foundation; either version 2 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
- not, see <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-#include <math_private.h>
-#include <math_ldbl_opt.h>
-#include <libm-alias-double.h>
-
-double
-__modf (double x, double *iptr)
-{
- if (__builtin_isinf (x))
- {
- *iptr = x;
- return __copysign (0.0, x);
- }
- else if (__builtin_isnan (x))
- {
- *iptr = NAN;
- return NAN;
- }
-
- if (x >= 0.0)
- {
- *iptr = __floor (x);
- return __copysign (x - *iptr, x);
- }
- else
- {
- *iptr = __ceil (x);
- return __copysign (x - *iptr, x);
- }
-}
-libm_alias_double (__modf, modf)
-#if LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)
-compat_symbol (libc, __modf, modfl, GLIBC_2_0);
-#endif
diff --git a/sysdeps/powerpc/power5+/fpu/s_modff.c b/sysdeps/powerpc/power5+/fpu/s_modff.c
deleted file mode 100644
index c1bbae6479..0000000000
--- a/sysdeps/powerpc/power5+/fpu/s_modff.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Copyright (C) 2013-2018 Free Software 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 Library General Public License as
- published by the Free Software Foundation; either version 2 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
- not, see <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-#include <math_private.h>
-#include <libm-alias-float.h>
-
-float
-__modff (float x, float *iptr)
-{
- if (__builtin_isinff (x))
- {
- *iptr = x;
- return __copysignf (0.0, x);
- }
- else if (__builtin_isnanf (x))
- {
- *iptr = NAN;
- return NAN;
- }
-
- if (x >= 0.0)
- {
- *iptr = __floorf (x);
- return __copysignf (x - *iptr, x);
- }
- else
- {
- *iptr = __ceilf (x);
- return __copysignf (x - *iptr, x);
- }
-}
-libm_alias_float (__modf, modf)
diff --git a/sysdeps/powerpc/power6/wcschr.c b/sysdeps/powerpc/power6/wcschr.c
deleted file mode 100644
index 2bbb515c24..0000000000
--- a/sysdeps/powerpc/power6/wcschr.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/* wcschr.c - Wide Character Search for POWER6+.
- Copyright (C) 2012-2018 Free Software 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 <http://www.gnu.org/licenses/>. */
-
-#include <wchar.h>
-
-#ifndef WCSCHR
-# define WCSCHR __wcschr
-# define DEFAULT_WCSCHR
-#endif
-
-/* Find the first occurrence of WC in WCS. */
-wchar_t *
-WCSCHR (const wchar_t *wcs, const wchar_t wc)
-{
- const wchar_t *wcs2 = wcs + 1;
-
- if (*wcs == wc)
- return (wchar_t *) wcs;
- if (*wcs == L'\0')
- return NULL;
-
- do
- {
- wcs += 2;
-
- if (*wcs2 == wc)
- return (wchar_t *) wcs2;
- if (*wcs2 == L'\0')
- return NULL;
- wcs2 += 2;
-
- if (*wcs == wc)
- return (wchar_t *) wcs;
- if (*wcs == L'\0')
- return NULL;
- wcs += 2;
-
- if (*wcs2 == wc)
- return (wchar_t *) wcs2;
- if (*wcs2 == L'\0')
- return NULL;
- wcs2 += 2;
-
- if (*wcs == wc)
- return (wchar_t *) wcs;
- if (*wcs == L'\0')
- return NULL;
- wcs += 2;
-
- if (*wcs2 == wc)
- return (wchar_t *) wcs2;
- if (*wcs2 == L'\0')
- return NULL;
- wcs2 += 2;
-
- if (*wcs == wc)
- return (wchar_t *) wcs;
- if (*wcs == L'\0')
- return NULL;
- wcs += 2;
-
- if (*wcs2 == wc)
- return (wchar_t *) wcs2;
- if (*wcs2 == L'\0')
- return NULL;
- wcs2 += 2;
-
- if (*wcs == wc)
- return (wchar_t *) wcs;
- }
- while (*wcs != L'\0');
-
- return NULL;
-}
-#ifdef DEFAULT_WCSCHR
-libc_hidden_def (__wcschr)
-weak_alias (__wcschr, wcschr)
-libc_hidden_weak (wcschr)
-#else
-libc_hidden_def (wcschr)
-#endif
diff --git a/sysdeps/powerpc/power6/wcscpy.c b/sysdeps/powerpc/power6/wcscpy.c
deleted file mode 100644
index 202a5f824b..0000000000
--- a/sysdeps/powerpc/power6/wcscpy.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/* wcscpy.c - Wide Character Copy for POWER6+.
- Copyright (C) 2012-2018 Free Software 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 <http://www.gnu.org/licenses/>. */
-
-#include <stddef.h>
-#include <wchar.h>
-
-#ifndef WCSCPY
-# define WCSCPY wcscpy
-#endif
-
-/* Copy SRC to DEST. */
-wchar_t *
-WCSCPY (wchar_t *dest, const wchar_t *src)
-{
- wint_t c,d;
- wchar_t *wcp, *wcp2;
-
- if (__alignof__ (wchar_t) >= sizeof (wchar_t))
- {
- const ptrdiff_t off = dest - src;
-
- wcp = (wchar_t *) src;
- wcp2 = wcp + 1 ;
-
- do
- {
- d = *wcp;
- wcp[off] = d;
- if (d == L'\0')
- return dest;
- wcp += 2;
-
- c = *wcp2;
- wcp2[off] = c;
- if (c == L'\0')
- return dest;
- wcp2 += 2;
-
- d = *wcp;
- wcp[off] = d;
- if (d == L'\0')
- return dest;
- wcp += 2;
-
- c = *wcp2;
- wcp2[off] = c;
- if (c == L'\0')
- return dest;
- wcp2 += 2;
-
- d = *wcp;
- wcp[off] = d;
- if (d == L'\0')
- return dest;
- wcp += 2;
-
- c = *wcp2;
- wcp2[off] = c;
- if (c == L'\0')
- return dest;
- wcp2 += 2;
-
- d = *wcp;
- wcp[off] = d;
- if (d == L'\0')
- return dest;
- wcp += 2;
-
- c = *wcp2;
- wcp2[off] = c;
- if (c == L'\0')
- return dest;
- wcp2 += 2;
- }
- while (c != L'\0');
-
- }
- else
- {
- wcp = dest;
-
- do
- {
- c = *src++;
- *wcp++ = c;
- }
- while (c != L'\0');
- }
- return dest;
-}
diff --git a/sysdeps/powerpc/power6/wcsrchr.c b/sysdeps/powerpc/power6/wcsrchr.c
deleted file mode 100644
index 9ba9593d01..0000000000
--- a/sysdeps/powerpc/power6/wcsrchr.c
+++ /dev/null
@@ -1,89 +0,0 @@
-/* wcsrchr.c - Wide Character Reverse Search for POWER6+.
- Copyright (C) 2012-2018 Free Software 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 <http://www.gnu.org/licenses/>. */
-
-#include <wchar.h>
-
-#ifndef WCSRCHR
-# define WCSRCHR wcsrchr
-#endif
-
-/* Find the last occurrence of WC in WCS. */
-wchar_t *
-WCSRCHR (const wchar_t *wcs, const wchar_t wc)
-{
- const wchar_t *wcs2 = wcs + 1;
- const wchar_t *retval = NULL;
-
- if (*wcs == wc)
- retval = wcs;
-
- if (*wcs == L'\0') return (wchar_t *) retval;
-
- do
- {
- wcs+=2;
-
- if (*wcs2 == wc)
- retval = wcs2;
- if (*wcs2 == L'\0')
- return (wchar_t *) retval;
- wcs2+=2;
-
- if (*wcs == wc)
- retval = wcs;
- if (*wcs == L'\0')
- return (wchar_t *) retval;
- wcs+=2;
-
- if (*wcs2 == wc)
- retval = wcs2;
- if (*wcs2 == L'\0')
- return (wchar_t *) retval;
- wcs2+=2;
-
- if (*wcs == wc)
- retval = wcs;
- if (*wcs == L'\0')
- return (wchar_t *) retval;
- wcs+=2;
-
- if (*wcs2 == wc)
- retval = wcs2;
- if (*wcs2 == L'\0')
- return (wchar_t *) retval;
- wcs2+=2;
-
- if (*wcs == wc)
- retval = wcs;
- if (*wcs == L'\0')
- return (wchar_t *) retval;
- wcs+=2;
-
- if (*wcs2 == wc)
- retval = wcs2;
- if (*wcs2 == L'\0')
- return (wchar_t *) retval;
- wcs2+=2;
-
- if (*wcs == wc)
- retval = wcs;
- }
- while (*wcs != L'\0');
-
- return (wchar_t *) retval;
-}
diff --git a/sysdeps/powerpc/power6/wordcopy.c b/sysdeps/powerpc/power6/wordcopy.c
index 47e851ddb1..863a09c7d8 100644
--- a/sysdeps/powerpc/power6/wordcopy.c
+++ b/sysdeps/powerpc/power6/wordcopy.c
@@ -1,5 +1,5 @@
/* _memcopy.c -- subroutines for memory copy functions.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Torbjorn Granlund (tege@sics.se).
Updated for POWER6 by Steven Munroe (sjmunroe@us.ibm.com).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* BE VERY CAREFUL IF YOU CHANGE THIS CODE...! */
diff --git a/sysdeps/powerpc/power7/fpu/s_logb.c b/sysdeps/powerpc/power7/fpu/s_logb.c
deleted file mode 100644
index f7eec8ff06..0000000000
--- a/sysdeps/powerpc/power7/fpu/s_logb.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/* logb(). PowerPC/POWER7 version.
- Copyright (C) 2012-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-#include <math_private.h>
-#include <math_ldbl_opt.h>
-#include <libm-alias-double.h>
-
-/* This implementation avoids FP to INT conversions by using VSX
- bitwise instructions over FP values. */
-
-static const double two1div52 = 2.220446049250313e-16; /* 1/2**52 */
-static const double two10m1 = -1023.0; /* 2**10 -1 */
-
-/* FP mask to extract the exponent. */
-static const union {
- unsigned long long mask;
- double d;
-} mask = { 0x7ff0000000000000ULL };
-
-double
-__logb (double x)
-{
- double ret;
-
- if (__builtin_expect (x == 0.0, 0))
- /* Raise FE_DIVBYZERO and return -HUGE_VAL[LF]. */
- return -1.0 / __builtin_fabs (x);
-
- /* ret = x & 0x7ff0000000000000; */
- asm (
- "xxland %x0,%x1,%x2\n"
- "fcfid %0,%0"
- : "=f" (ret)
- : "f" (x), "f" (mask.d));
- /* ret = (ret >> 52) - 1023.0; */
- ret = (ret * two1div52) + two10m1;
- if (__builtin_expect (ret > -two10m1, 0))
- /* Multiplication is used to set logb (+-INF) = INF. */
- return (x * x);
- else if (__builtin_expect (ret == two10m1, 0))
- {
- /* POSIX specifies that denormal numbers are treated as
- though they were normalized. */
- int32_t lx, ix;
- int ma;
-
- EXTRACT_WORDS (ix, lx, x);
- ix &= 0x7fffffff;
- if (ix == 0)
- ma = __builtin_clz (lx) + 32;
- else
- ma = __builtin_clz (ix);
- return (double) (-1023 - (ma - 12));
- }
- /* Test to avoid logb_downward (0.0) == -0.0. */
- return ret == -0.0 ? 0.0 : ret;
-}
-libm_alias_double (__logb, logb)
diff --git a/sysdeps/powerpc/power7/fpu/s_logbf.c b/sysdeps/powerpc/power7/fpu/s_logbf.c
deleted file mode 100644
index 0832ad7022..0000000000
--- a/sysdeps/powerpc/power7/fpu/s_logbf.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/* logbf(). PowerPC/POWER7 version.
- Copyright (C) 2012-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include "math_private.h"
-#include <libm-alias-float.h>
-
-/* This implementation avoids FP to INT conversions by using VSX
- bitwise instructions over FP values. */
-
-static const double two1div52 = 2.220446049250313e-16; /* 1/2**52 */
-static const double two10m1 = -1023.0; /* -2**10 + 1 */
-static const double two7m1 = -127.0; /* -2**7 + 1 */
-
-/* FP mask to extract the exponent. */
-static const union {
- unsigned long long mask;
- double d;
-} mask = { 0x7ff0000000000000ULL };
-
-float
-__logbf (float x)
-{
- /* VSX operation are all done internally as double. */
- double ret;
-
- if (__builtin_expect (x == 0.0, 0))
- /* Raise FE_DIVBYZERO and return -HUGE_VAL[LF]. */
- return -1.0 / __builtin_fabsf (x);
-
- /* ret = x & 0x7f800000; */
- asm (
- "xxland %x0,%x1,%x2\n"
- "fcfid %0,%0"
- : "=f"(ret)
- : "f" (x), "f" (mask.d));
- /* ret = (ret >> 52) - 1023.0, since ret is double. */
- ret = (ret * two1div52) + two10m1;
- if (__builtin_expect (ret > -two7m1, 0))
- /* Multiplication is used to set logb (+-INF) = INF. */
- return (x * x);
- /* Since operations are done with double we don't need
- additional tests for subnormal numbers.
- The test is to avoid logb_downward (0.0) == -0.0. */
- return ret == -0.0 ? 0.0 : ret;
-}
-libm_alias_float (__logb, logb)
diff --git a/sysdeps/powerpc/power7/fpu/s_logbl.c b/sysdeps/powerpc/power7/fpu/s_logbl.c
deleted file mode 100644
index 192145a7a1..0000000000
--- a/sysdeps/powerpc/power7/fpu/s_logbl.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/* logbl(). PowerPC/POWER7 version.
- Copyright (C) 2012-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-#include <math_private.h>
-#include <math_ldbl_opt.h>
-
-/* This implementation avoids FP to INT conversions by using VSX
- bitwise instructions over FP values. */
-
-static const double two1div52 = 2.220446049250313e-16; /* 1/2**52 */
-static const double two10m1 = -1023.0; /* 2**10 -1 */
-
-/* FP mask to extract the exponent. */
-static const union {
- unsigned long long mask;
- double d;
-} mask = { 0x7ff0000000000000ULL };
-
-long double
-__logbl (long double x)
-{
- double xh, xl;
- double ret;
- int64_t hx;
-
- if (__builtin_expect (x == 0.0L, 0))
- /* Raise FE_DIVBYZERO and return -HUGE_VAL[LF]. */
- return -1.0L / __builtin_fabsl (x);
-
- ldbl_unpack (x, &xh, &xl);
- EXTRACT_WORDS64 (hx, xh);
- /* ret = x & 0x7ff0000000000000; */
- asm (
- "xxland %x0,%x1,%x2\n"
- "fcfid %0,%0"
- : "=f" (ret)
- : "f" (xh), "f" (mask.d));
- /* ret = (ret >> 52) - 1023.0; */
- ret = (ret * two1div52) + two10m1;
- if (__builtin_expect (ret > -two10m1, 0))
- /* Multiplication is used to set logb (+-INF) = INF. */
- return (xh * xh);
- else if (__builtin_expect (ret == two10m1, 0))
- {
- /* POSIX specifies that denormal number is treated as
- though it were normalized. */
- return (long double) (- (__builtin_clzll (hx & 0x7fffffffffffffffLL) \
- - 12) - 1023);
- }
- else if ((hx & 0x000fffffffffffffLL) == 0)
- {
- /* If the high part is a power of 2, and the low part is nonzero
- with the opposite sign, the low part affects the
- exponent. */
- int64_t lx, rhx;
- EXTRACT_WORDS64 (lx, xl);
- rhx = (hx & 0x7ff0000000000000LL) >> 52;
- if ((hx ^ lx) < 0 && (lx & 0x7fffffffffffffffLL) != 0)
- rhx--;
- return (long double) (rhx - 1023);
- }
- /* Test to avoid logb_downward (0.0) == -0.0. */
- return ret == -0.0 ? 0.0 : ret;
-}
-#ifndef __logbl
-long_double_symbol (libm, __logbl, logbl);
-#endif
diff --git a/sysdeps/powerpc/powerpc32/405/memcmp.S b/sysdeps/powerpc/powerpc32/405/memcmp.S
index da5a588870..b679c84865 100644
--- a/sysdeps/powerpc/powerpc32/405/memcmp.S
+++ b/sysdeps/powerpc/powerpc32/405/memcmp.S
@@ -1,5 +1,5 @@
/* Optimized memcmp implementation for PowerPC476.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/405/memcpy.S b/sysdeps/powerpc/powerpc32/405/memcpy.S
index 12b8a98c4f..64e61eb4c9 100644
--- a/sysdeps/powerpc/powerpc32/405/memcpy.S
+++ b/sysdeps/powerpc/powerpc32/405/memcpy.S
@@ -1,5 +1,5 @@
/* Optimized memcpy implementation for PowerPC476.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/405/memset.S b/sysdeps/powerpc/powerpc32/405/memset.S
index 14f35daead..83618d866d 100644
--- a/sysdeps/powerpc/powerpc32/405/memset.S
+++ b/sysdeps/powerpc/powerpc32/405/memset.S
@@ -1,5 +1,5 @@
/* Optimized memset for PowerPC405,440,464 (32-byte cacheline).
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/405/strcmp.S b/sysdeps/powerpc/powerpc32/405/strcmp.S
index 62420da8b9..82cb908bb1 100644
--- a/sysdeps/powerpc/powerpc32/405/strcmp.S
+++ b/sysdeps/powerpc/powerpc32/405/strcmp.S
@@ -1,5 +1,5 @@
/* Optimized strcmp implementation for PowerPC476.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/405/strcpy.S b/sysdeps/powerpc/powerpc32/405/strcpy.S
index 2244b5395b..3f4ed41969 100644
--- a/sysdeps/powerpc/powerpc32/405/strcpy.S
+++ b/sysdeps/powerpc/powerpc32/405/strcpy.S
@@ -1,5 +1,5 @@
/* Optimized strcpy implementation for PowerPC476.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/405/strlen.S b/sysdeps/powerpc/powerpc32/405/strlen.S
index eb84c8d2e2..2e7d882d84 100644
--- a/sysdeps/powerpc/powerpc32/405/strlen.S
+++ b/sysdeps/powerpc/powerpc32/405/strlen.S
@@ -1,5 +1,5 @@
/* Optimized strlen implementation for PowerPC476.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/405/strncmp.S b/sysdeps/powerpc/powerpc32/405/strncmp.S
index c63100d621..e96140f388 100644
--- a/sysdeps/powerpc/powerpc32/405/strncmp.S
+++ b/sysdeps/powerpc/powerpc32/405/strncmp.S
@@ -1,5 +1,5 @@
/* Optimized strncmp implementation for PowerPC476.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/476/memset.S b/sysdeps/powerpc/powerpc32/476/memset.S
index 3249d3f584..0ec25ac4fb 100644
--- a/sysdeps/powerpc/powerpc32/476/memset.S
+++ b/sysdeps/powerpc/powerpc32/476/memset.S
@@ -1,5 +1,5 @@
/* Optimized memset for PowerPC476 (128-byte cacheline).
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/__longjmp-common.S b/sysdeps/powerpc/powerpc32/__longjmp-common.S
index 0423e3ee88..3a282234be 100644
--- a/sysdeps/powerpc/powerpc32/__longjmp-common.S
+++ b/sysdeps/powerpc/powerpc32/__longjmp-common.S
@@ -1,5 +1,5 @@
/* longjmp for PowerPC.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <stap-probe.h>
@@ -25,12 +25,6 @@
# include <jmpbuf-offsets.h>
#endif
-#if defined __SPE__ || (defined __NO_FPRS__ && !defined _SOFT_FLOAT)
-# define LOAD_GP(N) evldd r##N,((JB_FPRS+((N)-14)*2)*4)(r3)
-#else
-# define LOAD_GP(N) lwz r##N,((JB_GPRS+(N)-14)*4)(r3)
-#endif
-
ENTRY (__longjmp_symbol)
#if defined PTR_DEMANGLE || defined CHECK_SP
@@ -46,13 +40,13 @@ ENTRY (__longjmp_symbol)
lwz r1,(JB_GPR1*4)(r3)
#endif
lwz r0,(JB_LR*4)(r3)
- LOAD_GP (14)
- LOAD_GP (15)
- LOAD_GP (16)
- LOAD_GP (17)
- LOAD_GP (18)
- LOAD_GP (19)
- LOAD_GP (20)
+ lwz r14,((JB_GPRS+14-14)*4)(r3)
+ lwz r15,((JB_GPRS+15-14)*4)(r3)
+ lwz r16,((JB_GPRS+16-14)*4)(r3)
+ lwz r17,((JB_GPRS+17-14)*4)(r3)
+ lwz r18,((JB_GPRS+18-14)*4)(r3)
+ lwz r19,((JB_GPRS+19-14)*4)(r3)
+ lwz r20,((JB_GPRS+20-14)*4)(r3)
#ifdef PTR_DEMANGLE
# ifndef CHECK_SP
PTR_DEMANGLE3 (r1, r24, r25)
@@ -63,19 +57,19 @@ ENTRY (__longjmp_symbol)
second argument (-4@4), and target address (4@0), respectively. */
LIBC_PROBE (longjmp, 3, 4@3, -4@4, 4@0)
mtlr r0
- LOAD_GP (21)
- LOAD_GP (22)
+ lwz r21,((JB_GPRS+21-14)*4)(r3)
+ lwz r22,((JB_GPRS+22-14)*4)(r3)
lwz r5,(JB_CR*4)(r3)
- LOAD_GP (23)
- LOAD_GP (24)
- LOAD_GP (25)
+ lwz r23,((JB_GPRS+23-14)*4)(r3)
+ lwz r24,((JB_GPRS+24-14)*4)(r3)
+ lwz r25,((JB_GPRS+25-14)*4)(r3)
mtcrf 0xFF,r5
- LOAD_GP (26)
- LOAD_GP (27)
- LOAD_GP (28)
- LOAD_GP (29)
- LOAD_GP (30)
- LOAD_GP (31)
+ lwz r26,((JB_GPRS+26-14)*4)(r3)
+ lwz r27,((JB_GPRS+27-14)*4)(r3)
+ lwz r28,((JB_GPRS+28-14)*4)(r3)
+ lwz r29,((JB_GPRS+29-14)*4)(r3)
+ lwz r30,((JB_GPRS+30-14)*4)(r3)
+ lwz r31,((JB_GPRS+31-14)*4)(r3)
LIBC_PROBE (longjmp_target, 3, 4@3, -4@4, 4@0)
mr r3,r4
blr
diff --git a/sysdeps/powerpc/powerpc32/__longjmp.S b/sysdeps/powerpc/powerpc32/__longjmp.S
index 2f5145e972..a981fd5d88 100644
--- a/sysdeps/powerpc/powerpc32/__longjmp.S
+++ b/sysdeps/powerpc/powerpc32/__longjmp.S
@@ -1,5 +1,5 @@
/* AltiVec/VMX (new) version of __longjmp for PowerPC.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libc-symbols.h>
#include <shlib-compat.h>
diff --git a/sysdeps/powerpc/powerpc32/a2/memcpy.S b/sysdeps/powerpc/powerpc32/a2/memcpy.S
index 196b6d98e5..9bc91a8df1 100644
--- a/sysdeps/powerpc/powerpc32/a2/memcpy.S
+++ b/sysdeps/powerpc/powerpc32/a2/memcpy.S
@@ -1,5 +1,5 @@
/* Optimized memcpy implementation for PowerPC A2.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by Michael Brutman <brutman@us.ibm.com>.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/add_n.S b/sysdeps/powerpc/powerpc32/add_n.S
index eeecc8d7d2..4a856e7343 100644
--- a/sysdeps/powerpc/powerpc32/add_n.S
+++ b/sysdeps/powerpc/powerpc32/add_n.S
@@ -1,5 +1,5 @@
/* Add two limb vectors of equal, non-zero length for PowerPC.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/addmul_1.S b/sysdeps/powerpc/powerpc32/addmul_1.S
index 9232a346a5..9a50c247b0 100644
--- a/sysdeps/powerpc/powerpc32/addmul_1.S
+++ b/sysdeps/powerpc/powerpc32/addmul_1.S
@@ -1,5 +1,5 @@
/* Multiply a limb vector by a single limb, for PowerPC.
- Copyright (C) 1993-2018 Free Software Foundation, Inc.
+ Copyright (C) 1993-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/atomic-machine.h b/sysdeps/powerpc/powerpc32/atomic-machine.h
index e0de9d858d..1bcddab573 100644
--- a/sysdeps/powerpc/powerpc32/atomic-machine.h
+++ b/sysdeps/powerpc/powerpc32/atomic-machine.h
@@ -1,5 +1,5 @@
/* Atomic operations. PowerPC32 version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Paul Mackerras <paulus@au.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* POWER6 adds a "Mutex Hint" to the Load and Reserve instruction.
This is a hint to the hardware to expect additional updates adjacent
diff --git a/sysdeps/powerpc/powerpc32/backtrace.c b/sysdeps/powerpc/powerpc32/backtrace.c
index 5422fdd50d..2e6a859d9f 100644
--- a/sysdeps/powerpc/powerpc32/backtrace.c
+++ b/sysdeps/powerpc/powerpc32/backtrace.c
@@ -1,5 +1,5 @@
/* Return backtrace of current program state.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <execinfo.h>
#include <stddef.h>
@@ -54,7 +54,7 @@ struct signal_frame_32 {
static inline int
is_sigtramp_address (void *nip)
{
-#ifdef SHARED
+#ifdef HAVE_SIGTRAMP_RT32
if (nip == VDSO_SYMBOL (sigtramp32))
return 1;
#endif
@@ -71,7 +71,7 @@ struct rt_signal_frame_32 {
static inline int
is_sigtramp_address_rt (void * nip)
{
-#ifdef SHARED
+#ifdef HAVE_SIGTRAMP_32
if (nip == VDSO_SYMBOL (sigtramp_rt32))
return 1;
#endif
diff --git a/sysdeps/powerpc/powerpc32/bsd-_setjmp.S b/sysdeps/powerpc/powerpc32/bsd-_setjmp.S
index 60fbffa141..ca8e7d1532 100644
--- a/sysdeps/powerpc/powerpc32/bsd-_setjmp.S
+++ b/sysdeps/powerpc/powerpc32/bsd-_setjmp.S
@@ -1,5 +1,5 @@
/* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'. PowerPC32/64 version.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <shlib-compat.h>
#include <libc-symbols.h>
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/bsd-setjmp.S b/sysdeps/powerpc/powerpc32/bsd-setjmp.S
index 6608b062dc..efcaf88ba0 100644
--- a/sysdeps/powerpc/powerpc32/bsd-setjmp.S
+++ b/sysdeps/powerpc/powerpc32/bsd-setjmp.S
@@ -1,5 +1,5 @@
/* BSD `setjmp' entry point to `sigsetjmp (..., 1)'. PowerPC32/64 version.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <shlib-compat.h>
#include <libc-symbols.h>
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/bzero.S b/sysdeps/powerpc/powerpc32/bzero.S
index 3ee0db04b9..4394a5d6b8 100644
--- a/sysdeps/powerpc/powerpc32/bzero.S
+++ b/sysdeps/powerpc/powerpc32/bzero.S
@@ -1,5 +1,5 @@
/* Optimized bzero `implementation' for PowerPC.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/cell/memcpy.S b/sysdeps/powerpc/powerpc32/cell/memcpy.S
index 484c0dcfd7..8bfeaed8e1 100644
--- a/sysdeps/powerpc/powerpc32/cell/memcpy.S
+++ b/sysdeps/powerpc/powerpc32/cell/memcpy.S
@@ -1,5 +1,5 @@
/* Optimized memcpy implementation for CELL BE PowerPC.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/crti.S b/sysdeps/powerpc/powerpc32/crti.S
index e4ee8dd484..eabfe5ab06 100644
--- a/sysdeps/powerpc/powerpc32/crti.S
+++ b/sysdeps/powerpc/powerpc32/crti.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for PowerPC.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* crti.S puts a function prologue at the beginning of the .init and
.fini sections and defines global symbols for those addresses, so
diff --git a/sysdeps/powerpc/powerpc32/crtn.S b/sysdeps/powerpc/powerpc32/crtn.S
index fbc5911290..a1856f6f22 100644
--- a/sysdeps/powerpc/powerpc32/crtn.S
+++ b/sysdeps/powerpc/powerpc32/crtn.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for PowerPC.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* crtn.S puts function epilogues in the .init and .fini sections
corresponding to the prologues in crti.S. */
diff --git a/sysdeps/powerpc/powerpc32/dl-irel.h b/sysdeps/powerpc/powerpc32/dl-irel.h
index a7368b2582..24cd6d9d6f 100644
--- a/sysdeps/powerpc/powerpc32/dl-irel.h
+++ b/sysdeps/powerpc/powerpc32/dl-irel.h
@@ -1,6 +1,6 @@
/* Machine-dependent ELF indirect relocation inline functions.
PowerPC version.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DL_IREL_H
#define _DL_IREL_H
@@ -46,7 +46,7 @@ elf_irela (const Elf32_Rela *reloc)
*reloc_addr = value;
}
else
- __libc_fatal ("unexpected reloc type in static binary");
+ __libc_fatal ("Unexpected reloc type in static binary.\n");
}
#endif /* dl-irel.h */
diff --git a/sysdeps/powerpc/powerpc32/dl-machine.c b/sysdeps/powerpc/powerpc32/dl-machine.c
index e82f1d8619..d3ce2c17a9 100644
--- a/sysdeps/powerpc/powerpc32/dl-machine.c
+++ b/sysdeps/powerpc/powerpc32/dl-machine.c
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation functions. PowerPC version.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <string.h>
@@ -348,7 +348,7 @@ __elf_machine_fixup_plt (struct link_map *map,
Elf32_Word index, offset, num_plt_entries;
num_plt_entries = (map->l_info[DT_PLTRELSZ]->d_un.d_val
- / sizeof(Elf32_Rela));
+ / sizeof (Elf32_Rela));
plt = (Elf32_Word *) D_PTR (map, l_info[DT_PLTGOT]);
offset = reloc_addr - plt;
index = (offset - PLT_INITIAL_ENTRY_WORDS)/2;
@@ -538,7 +538,7 @@ __process_machine_rela (struct link_map *map,
{
index = (offset - PLT_INITIAL_ENTRY_WORDS)/2;
num_plt_entries = (map->l_info[DT_PLTRELSZ]->d_un.d_val
- / sizeof(Elf32_Rela));
+ / sizeof (Elf32_Rela));
data_words = plt + PLT_DATA_START_WORDS (num_plt_entries);
data_words[index] = finaladdr;
reloc_addr[0] = OPCODE_LI (11, index * 4);
diff --git a/sysdeps/powerpc/powerpc32/dl-machine.h b/sysdeps/powerpc/powerpc32/dl-machine.h
index 31c7f3f95a..528690107b 100644
--- a/sysdeps/powerpc/powerpc32/dl-machine.h
+++ b/sysdeps/powerpc/powerpc32/dl-machine.h
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation inline functions. PowerPC version.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef dl_machine_h
#define dl_machine_h
diff --git a/sysdeps/powerpc/powerpc32/dl-start.S b/sysdeps/powerpc/powerpc32/dl-start.S
index 244d87fb6d..41c970b170 100644
--- a/sysdeps/powerpc/powerpc32/dl-start.S
+++ b/sysdeps/powerpc/powerpc32/dl-start.S
@@ -1,5 +1,5 @@
/* Machine-dependent ELF startup code. PowerPC version.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
@@ -34,6 +34,9 @@ ENTRY(_start)
_dl_start to save the link register). */
li r4,0
addi r1,r1,-16
+ cfi_adjust_cfa_offset (16)
+/* Mark lr as undefined to stop unwinding. */
+ cfi_undefined (lr)
stw r4,0(r1)
bl _dl_start@local
diff --git a/sysdeps/powerpc/powerpc32/dl-trampoline.S b/sysdeps/powerpc/powerpc32/dl-trampoline.S
index cac4e20443..87046b0d15 100644
--- a/sysdeps/powerpc/powerpc32/dl-trampoline.S
+++ b/sysdeps/powerpc/powerpc32/dl-trampoline.S
@@ -1,5 +1,5 @@
/* PLT trampolines. PPC32 version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/e500/nofpu/Makefile b/sysdeps/powerpc/powerpc32/e500/nofpu/Makefile
deleted file mode 100644
index adf556870a..0000000000
--- a/sysdeps/powerpc/powerpc32/e500/nofpu/Makefile
+++ /dev/null
@@ -1,9 +0,0 @@
-ifeq ($(subdir),math)
-libm-routines += fexcepts_to_spe fexcepts_from_spe
-libm-routines += fexcepts_to_prctl fexcepts_from_prctl
-libm-routines += fe_note_change
-endif
-
-ifeq ($(subdir),soft-fp)
-sysdep_routines += fraiseexcept-soft
-endif
diff --git a/sysdeps/powerpc/powerpc32/e500/nofpu/atomic-feclearexcept.c b/sysdeps/powerpc/powerpc32/e500/nofpu/atomic-feclearexcept.c
deleted file mode 100644
index 5108d5ca1e..0000000000
--- a/sysdeps/powerpc/powerpc32/e500/nofpu/atomic-feclearexcept.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Clear floating-point exceptions for atomic compound assignment.
- e500 version.
- Copyright (C) 2004-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv_libc.h>
-#include <stdlib.h>
-#include <sysdep.h>
-#include <sys/prctl.h>
-
-void
-__atomic_feclearexcept (void)
-{
- unsigned int fpescr, old_fpescr;
-
- /* Get the current state. */
- old_fpescr = fpescr = fegetenv_register ();
-
- /* Clear the relevant bits. */
- fpescr &= ~SPEFSCR_ALL_EXCEPT;
-
- /* Put the new state in effect. */
- fesetenv_register (fpescr);
-
- /* Let the kernel know if the "invalid" or "underflow" bit was
- cleared. */
- if (old_fpescr & (SPEFSCR_FINVS | SPEFSCR_FUNFS))
- {
- int pflags __attribute__ ((__unused__)), r;
- INTERNAL_SYSCALL_DECL (err);
-
- r = INTERNAL_SYSCALL (prctl, err, 2, PR_GET_FPEXC, &pflags);
- if (INTERNAL_SYSCALL_ERROR_P (r, err))
- abort ();
- }
-}
diff --git a/sysdeps/powerpc/powerpc32/e500/nofpu/atomic-feholdexcept.c b/sysdeps/powerpc/powerpc32/e500/nofpu/atomic-feholdexcept.c
deleted file mode 100644
index 137eba9629..0000000000
--- a/sysdeps/powerpc/powerpc32/e500/nofpu/atomic-feholdexcept.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Store current floating-point environment and clear exceptions for
- atomic compound assignment. e500 version.
- Copyright (C) 2004-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv_libc.h>
-#include <stdlib.h>
-#include <sysdep.h>
-#include <sys/prctl.h>
-
-void
-__atomic_feholdexcept (fenv_t *envp)
-{
- fenv_union_t u;
- INTERNAL_SYSCALL_DECL (err);
- int r;
-
- /* Get the current state. */
- r = INTERNAL_SYSCALL (prctl, err, 2, PR_GET_FPEXC, &u.l[0]);
- if (INTERNAL_SYSCALL_ERROR_P (r, err))
- abort ();
-
- u.l[1] = fegetenv_register ();
- *envp = u.fenv;
-
- /* Clear everything except for the rounding mode and trapping to the
- kernel. */
- u.l[0] &= ~(PR_FP_EXC_DIV
- | PR_FP_EXC_OVF
- | PR_FP_EXC_UND
- | PR_FP_EXC_RES
- | PR_FP_EXC_INV);
- u.l[1] &= SPEFSCR_FRMC | (SPEFSCR_ALL_EXCEPT_ENABLE & ~SPEFSCR_FINXE);
-
- /* Put the new state in effect. */
- fesetenv_register (u.l[1]);
- r = INTERNAL_SYSCALL (prctl, err, 2, PR_SET_FPEXC,
- u.l[0] | PR_FP_EXC_SW_ENABLE);
- if (INTERNAL_SYSCALL_ERROR_P (r, err))
- abort ();
-}
diff --git a/sysdeps/powerpc/powerpc32/e500/nofpu/atomic-feupdateenv.c b/sysdeps/powerpc/powerpc32/e500/nofpu/atomic-feupdateenv.c
deleted file mode 100644
index aa5faba52f..0000000000
--- a/sysdeps/powerpc/powerpc32/e500/nofpu/atomic-feupdateenv.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/* Install given floating-point environment and raise exceptions for
- atomic compound assignment. e500 version.
- Copyright (C) 2004-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv_libc.h>
-#include <stdlib.h>
-#include <sysdep.h>
-#include <sys/prctl.h>
-
-void
-__atomic_feupdateenv (const fenv_t *envp)
-{
- int exc;
- fenv_union_t u;
- INTERNAL_SYSCALL_DECL (err);
- int r;
-
- /* Save the currently set exceptions. */
- exc = fegetenv_register () & SPEFSCR_ALL_EXCEPT;
-
- u.fenv = *envp;
-
- fesetenv_register (u.l[1]);
- r = INTERNAL_SYSCALL (prctl, err, 2, PR_SET_FPEXC,
- u.l[0] | PR_FP_EXC_SW_ENABLE);
- if (INTERNAL_SYSCALL_ERROR_P (r, err))
- abort ();
-
- /* Raise (if appropriate) saved exceptions. */
- __feraiseexcept_soft (exc);
-}
diff --git a/sysdeps/powerpc/powerpc32/e500/nofpu/fclrexcpt.c b/sysdeps/powerpc/powerpc32/e500/nofpu/fclrexcpt.c
deleted file mode 100644
index d215d49f56..0000000000
--- a/sysdeps/powerpc/powerpc32/e500/nofpu/fclrexcpt.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/* Clear given exceptions in current floating-point environment. e500 version.
- Copyright (C) 2004-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv_libc.h>
-
-#undef feclearexcept
-int
-__feclearexcept (int excepts)
-{
- unsigned int fpescr;
- int excepts_spe = __fexcepts_to_spe (excepts);
-
- /* Get the current state. */
- fpescr = fegetenv_register ();
-
- /* Clear the relevant bits. */
- fpescr &= ~excepts_spe;
-
- /* Put the new state in effect. */
- fesetenv_register (fpescr);
-
- /* Let the kernel know if the "invalid" or "underflow" bit was
- cleared. */
- if (excepts & (FE_INVALID | FE_UNDERFLOW))
- __fe_note_change ();
-
- /* Success. */
- return 0;
-}
-
-#include <shlib-compat.h>
-#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
-strong_alias (__feclearexcept, __old_feclearexcept)
-compat_symbol (libm, __old_feclearexcept, feclearexcept, GLIBC_2_1);
-#endif
-
-libm_hidden_ver (__feclearexcept, feclearexcept)
-versioned_symbol (libm, __feclearexcept, feclearexcept, GLIBC_2_2);
diff --git a/sysdeps/powerpc/powerpc32/e500/nofpu/fe_note_change.c b/sysdeps/powerpc/powerpc32/e500/nofpu/fe_note_change.c
deleted file mode 100644
index 8e0bf03ba2..0000000000
--- a/sysdeps/powerpc/powerpc32/e500/nofpu/fe_note_change.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Note a change to floating-point exceptions.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv_libc.h>
-#include <sysdep.h>
-#include <sys/prctl.h>
-
-/* Inform the kernel of a change to floating-point exceptions. */
-
-void
-__fe_note_change (void)
-{
- int pflags, r;
- INTERNAL_SYSCALL_DECL (err);
-
- r = INTERNAL_SYSCALL (prctl, err, 2, PR_GET_FPEXC, &pflags);
- if (INTERNAL_SYSCALL_ERROR_P (r, err))
- return;
- if ((pflags & PR_FP_EXC_SW_ENABLE) == 0)
- INTERNAL_SYSCALL (prctl, err, 2, PR_SET_FPEXC,
- pflags | PR_FP_EXC_SW_ENABLE);
-}
-
-libm_hidden_def (__fe_note_change)
diff --git a/sysdeps/powerpc/powerpc32/e500/nofpu/fedisblxcpt.c b/sysdeps/powerpc/powerpc32/e500/nofpu/fedisblxcpt.c
deleted file mode 100644
index a766c7eb08..0000000000
--- a/sysdeps/powerpc/powerpc32/e500/nofpu/fedisblxcpt.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Disable floating-point exceptions. e500 version.
- Copyright (C) 2004-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv_libc.h>
-#include <sysdep.h>
-#include <sys/prctl.h>
-
-int
-fedisableexcept (int excepts)
-{
- int result = 0, pflags, r;
- INTERNAL_SYSCALL_DECL (err);
-
- r = INTERNAL_SYSCALL (prctl, err, 2, PR_GET_FPEXC, &pflags);
- if (INTERNAL_SYSCALL_ERROR_P (r, err))
- return -1;
-
- /* Save old enable bits. */
- result = __fexcepts_from_prctl (pflags);
-
- pflags &= ~__fexcepts_to_prctl (excepts);
- r = INTERNAL_SYSCALL (prctl, err, 2, PR_SET_FPEXC,
- pflags | PR_FP_EXC_SW_ENABLE);
- if (INTERNAL_SYSCALL_ERROR_P (r, err))
- return -1;
-
- /* If disabling signals for "inexact", also disable trapping to the
- kernel. */
- if ((excepts & FE_INEXACT) != 0)
- {
- unsigned long fpescr;
-
- fpescr = fegetenv_register ();
- fpescr &= ~SPEFSCR_FINXE;
- fesetenv_register (fpescr);
- }
-
- return result;
-}
diff --git a/sysdeps/powerpc/powerpc32/e500/nofpu/feenablxcpt.c b/sysdeps/powerpc/powerpc32/e500/nofpu/feenablxcpt.c
deleted file mode 100644
index 65f7d468d0..0000000000
--- a/sysdeps/powerpc/powerpc32/e500/nofpu/feenablxcpt.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Enable floating-point exceptions. e500 version.
- Copyright (C) 2004-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv_libc.h>
-#include <sysdep.h>
-#include <sys/prctl.h>
-
-int
-feenableexcept (int excepts)
-{
- unsigned int result = 0, pflags, r;
- INTERNAL_SYSCALL_DECL (err);
-
- r = INTERNAL_SYSCALL (prctl, err, 2, PR_GET_FPEXC, &pflags);
- if (INTERNAL_SYSCALL_ERROR_P (r, err))
- return -1;
-
- /* Save old enable bits. */
- result = __fexcepts_from_prctl (pflags);
-
- pflags |= __fexcepts_to_prctl (excepts);
- r = INTERNAL_SYSCALL (prctl, err, 2, PR_SET_FPEXC,
- pflags | PR_FP_EXC_SW_ENABLE);
- if (INTERNAL_SYSCALL_ERROR_P (r, err))
- return -1;
-
- /* If enabling signals for "inexact", also enable trapping to the
- kernel. */
- if ((excepts & FE_INEXACT) != 0)
- {
- unsigned long fpescr;
-
- fpescr = fegetenv_register ();
- fpescr |= SPEFSCR_FINXE;
- fesetenv_register (fpescr);
- }
-
- return result;
-}
diff --git a/sysdeps/powerpc/powerpc32/e500/nofpu/fegetenv.c b/sysdeps/powerpc/powerpc32/e500/nofpu/fegetenv.c
deleted file mode 100644
index 31502036e8..0000000000
--- a/sysdeps/powerpc/powerpc32/e500/nofpu/fegetenv.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Store current floating-point environment. e500 version.
- Copyright (C) 2004-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv_libc.h>
-#include <sysdep.h>
-#include <sys/prctl.h>
-
-int
-__fegetenv (fenv_t *envp)
-{
- fenv_union_t u;
- INTERNAL_SYSCALL_DECL (err);
- int r;
-
- r = INTERNAL_SYSCALL (prctl, err, 2, PR_GET_FPEXC, &u.l[0]);
- if (INTERNAL_SYSCALL_ERROR_P (r, err))
- return -1;
-
- u.l[1] = fegetenv_register ();
- *envp = u.fenv;
-
- /* Success. */
- return 0;
-}
-
-#include <shlib-compat.h>
-#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
-strong_alias (__fegetenv, __old_fegetenv)
-compat_symbol (libm, __old_fegetenv, fegetenv, GLIBC_2_1);
-#endif
-libm_hidden_def (__fegetenv)
-libm_hidden_ver (__fegetenv, fegetenv)
-
-versioned_symbol (libm, __fegetenv, fegetenv, GLIBC_2_2);
diff --git a/sysdeps/powerpc/powerpc32/e500/nofpu/fegetexcept.c b/sysdeps/powerpc/powerpc32/e500/nofpu/fegetexcept.c
deleted file mode 100644
index a3df28e730..0000000000
--- a/sysdeps/powerpc/powerpc32/e500/nofpu/fegetexcept.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Get floating-point exceptions. e500 version.
- Copyright (C) 2004-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv_libc.h>
-#include <sysdep.h>
-#include <sys/prctl.h>
-
-int
-fegetexcept (void)
-{
- int result = 0, pflags, r;
- INTERNAL_SYSCALL_DECL (err);
-
- r = INTERNAL_SYSCALL (prctl, err, 2, PR_GET_FPEXC, &pflags);
- if (INTERNAL_SYSCALL_ERROR_P (r, err))
- return -1;
-
- result = __fexcepts_from_prctl (pflags);
-
- return result;
-}
diff --git a/sysdeps/powerpc/powerpc32/e500/nofpu/fegetmode.c b/sysdeps/powerpc/powerpc32/e500/nofpu/fegetmode.c
deleted file mode 100644
index 0a2d70d13a..0000000000
--- a/sysdeps/powerpc/powerpc32/e500/nofpu/fegetmode.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Store current floating-point control modes. e500 version.
- Copyright (C) 2016-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv_libc.h>
-#include <sysdep.h>
-#include <sys/prctl.h>
-
-int
-fegetmode (femode_t *modep)
-{
- fenv_union_t u;
- INTERNAL_SYSCALL_DECL (err);
- int r;
-
- r = INTERNAL_SYSCALL (prctl, err, 2, PR_GET_FPEXC, &u.l[0]);
- if (INTERNAL_SYSCALL_ERROR_P (r, err))
- return -1;
-
- u.l[1] = fegetenv_register ();
- *modep = u.fenv;
- return 0;
-}
diff --git a/sysdeps/powerpc/powerpc32/e500/nofpu/fegetround.c b/sysdeps/powerpc/powerpc32/e500/nofpu/fegetround.c
deleted file mode 100644
index 99bdf7fb6c..0000000000
--- a/sysdeps/powerpc/powerpc32/e500/nofpu/fegetround.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Return current rounding direction. e500 version.
- Copyright (C) 2004-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv_libc.h>
-
-int
-__fegetround (void)
-{
- unsigned long fpescr;
-
- fpescr = fegetenv_register ();
- return fpescr & 3;
-}
-libm_hidden_def (__fegetround)
-weak_alias (__fegetround, fegetround)
-libm_hidden_weak (fegetround)
diff --git a/sysdeps/powerpc/powerpc32/e500/nofpu/feholdexcpt.c b/sysdeps/powerpc/powerpc32/e500/nofpu/feholdexcpt.c
deleted file mode 100644
index ff4a64909e..0000000000
--- a/sysdeps/powerpc/powerpc32/e500/nofpu/feholdexcpt.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/* Store current floating-point environment and clear exceptions.
- e500 version.
- Copyright (C) 2004-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv_libc.h>
-#include <sysdep.h>
-#include <sys/prctl.h>
-
-int
-__feholdexcept (fenv_t *envp)
-{
- fenv_union_t u;
- INTERNAL_SYSCALL_DECL (err);
- int r;
-
- /* Get the current state. */
- r = INTERNAL_SYSCALL (prctl, err, 2, PR_GET_FPEXC, &u.l[0]);
- if (INTERNAL_SYSCALL_ERROR_P (r, err))
- return -1;
-
- u.l[1] = fegetenv_register ();
- *envp = u.fenv;
-
- /* Clear everything except for the rounding mode and trapping to the
- kernel. */
- u.l[0] &= ~(PR_FP_EXC_DIV
- | PR_FP_EXC_OVF
- | PR_FP_EXC_UND
- | PR_FP_EXC_RES
- | PR_FP_EXC_INV);
- u.l[1] &= SPEFSCR_FRMC | (SPEFSCR_ALL_EXCEPT_ENABLE & ~SPEFSCR_FINXE);
-
- /* Put the new state in effect. */
- fesetenv_register (u.l[1]);
- r = INTERNAL_SYSCALL (prctl, err, 2, PR_SET_FPEXC,
- u.l[0] | PR_FP_EXC_SW_ENABLE);
- if (INTERNAL_SYSCALL_ERROR_P (r, err))
- return -1;
-
- return 0;
-}
-libm_hidden_def (__feholdexcept)
-weak_alias (__feholdexcept, feholdexcept)
-libm_hidden_weak (feholdexcept)
diff --git a/sysdeps/powerpc/powerpc32/e500/nofpu/fenv_const.c b/sysdeps/powerpc/powerpc32/e500/nofpu/fenv_const.c
deleted file mode 100644
index fe9c652f7a..0000000000
--- a/sysdeps/powerpc/powerpc32/e500/nofpu/fenv_const.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Constant floating-point environments for e500.
- Copyright (C) 2004-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-/* The use of "unsigned long long" as the type to define the
- bit-pattern explicitly, rather than the type "double" used in
- <bits/fenv.h>, means that we cannot include <fenv_libc.h> here to
- get the enum constants for the SPEFSCR bits to enable
- exceptions. */
-
-#include <sys/prctl.h>
-
-/* If the default argument is used we use this value. */
-const unsigned long long __fe_dfl_env __attribute__ ((aligned (8))) =
- 0x3cULL;
-
-/* The same representation is used for femode_t. */
-extern const unsigned long long __fe_dfl_mode
- __attribute__ ((aligned (8), alias ("__fe_dfl_env")));
-
-/* Floating-point environment where none of the exceptions are masked. */
-const unsigned long long __fe_enabled_env __attribute__ ((aligned (8))) =
- (((unsigned long long) (PR_FP_EXC_DIV
- | PR_FP_EXC_OVF
- | PR_FP_EXC_UND
- | PR_FP_EXC_RES
- | PR_FP_EXC_INV)) << 32) | 0x7cULL;
-
-/* Non-IEEE mode. */
-const unsigned long long __fe_nonieee_env __attribute__ ((aligned (8))) =
- 0x0ULL;
diff --git a/sysdeps/powerpc/powerpc32/e500/nofpu/fenv_libc.h b/sysdeps/powerpc/powerpc32/e500/nofpu/fenv_libc.h
deleted file mode 100644
index 386bbdc071..0000000000
--- a/sysdeps/powerpc/powerpc32/e500/nofpu/fenv_libc.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/* Internal libc stuff for floating point environment routines. e500 version.
- Copyright (C) 2004-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _FENV_LIBC_H
-#define _FENV_LIBC_H 1
-
-#include <fenv.h>
-
-int __feraiseexcept_spe (int);
-libm_hidden_proto (__feraiseexcept_spe)
-
-int __feraiseexcept_soft (int);
-libc_hidden_proto (__feraiseexcept_soft)
-
-int __fexcepts_to_spe (int);
-libm_hidden_proto (__fexcepts_to_spe)
-
-int __fexcepts_from_spe (int);
-libm_hidden_proto (__fexcepts_from_spe)
-
-int __fexcepts_to_prctl (int);
-libm_hidden_proto (__fexcepts_to_prctl)
-
-int __fexcepts_from_prctl (int);
-libm_hidden_proto (__fexcepts_from_prctl)
-
-void __fe_note_change (void);
-libm_hidden_proto (__fe_note_change)
-
-/* Equivalent to fegetenv, but returns an unsigned int instead of
- taking a pointer. */
-#define fegetenv_register() \
- ({ unsigned int fscr; asm volatile ("mfspefscr %0" : "=r" (fscr)); fscr; })
-
-/* Equivalent to fesetenv, but takes an unsigned int instead of a
- pointer. */
-#define fesetenv_register(fscr) \
- ({ asm volatile ("mtspefscr %0" : : "r" (fscr)); })
-
-typedef union
-{
- fenv_t fenv;
- unsigned int l[2];
-} fenv_union_t;
-
-/* Definitions of all the SPEFSCR bit numbers. */
-enum {
- SPEFSCR_SOVH = 0x80000000,
- SPEFSCR_OVH = 0x40000000,
- SPEFSCR_FGH = 0x20000000,
- SPEFSCR_FXH = 0x10000000,
- SPEFSCR_FINVH = 0x08000000,
- SPEFSCR_FDBZH = 0x04000000,
- SPEFSCR_FUNFH = 0x02000000,
- SPEFSCR_FOVFH = 0x01000000,
- /* 2 unused bits. */
- SPEFSCR_FINXS = 0x00200000,
- SPEFSCR_FINVS = 0x00100000,
- SPEFSCR_FDBZS = 0x00080000,
- SPEFSCR_FUNFS = 0x00040000,
- SPEFSCR_FOVFS = 0x00020000,
- /* Combination of the exception bits. */
- SPEFSCR_ALL_EXCEPT = 0x003e0000,
- SPEFSCR_MODE = 0x00010000,
- SPEFSCR_SOV = 0x00008000,
- SPEFSCR_OV = 0x00004000,
- SPEFSCR_FG = 0x00002000,
- SPEFSCR_FX = 0x00001000,
- SPEFSCR_FINV = 0x00000800,
- SPEFSCR_FDBZ = 0x00000400,
- SPEFSCR_FUNF = 0x00000200,
- SPEFSCR_FOVF = 0x00000100,
- /* 1 unused bit. */
- SPEFSCR_FINXE = 0x00000040,
- SPEFSCR_FINVE = 0x00000020,
- SPEFSCR_FDBZE = 0x00000010,
- SPEFSCR_FUNFE = 0x00000008,
- SPEFSCR_FOVFE = 0x00000004,
- /* Combination of the exception trap enable bits. */
- SPEFSCR_ALL_EXCEPT_ENABLE = 0x0000007c,
- SPEFSCR_FRMC = 0x00000003
-};
-
-#endif /* fenv_libc.h */
diff --git a/sysdeps/powerpc/powerpc32/e500/nofpu/fesetenv.c b/sysdeps/powerpc/powerpc32/e500/nofpu/fesetenv.c
deleted file mode 100644
index f768fe5d66..0000000000
--- a/sysdeps/powerpc/powerpc32/e500/nofpu/fesetenv.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Install given floating-point environment. e500 version.
- Copyright (C) 1997-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv_libc.h>
-#include <sysdep.h>
-#include <sys/prctl.h>
-
-int
-__fesetenv (const fenv_t *envp)
-{
- fenv_union_t u;
- INTERNAL_SYSCALL_DECL (err);
- int r;
-
- u.fenv = *envp;
-
- fesetenv_register (u.l[1]);
- r = INTERNAL_SYSCALL (prctl, err, 2, PR_SET_FPEXC,
- u.l[0] | PR_FP_EXC_SW_ENABLE);
- if (INTERNAL_SYSCALL_ERROR_P (r, err))
- return -1;
-
- /* Success. */
- return 0;
-}
-
-#include <shlib-compat.h>
-#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
-strong_alias (__fesetenv, __old_fesetenv)
-compat_symbol (libm, __old_fesetenv, fesetenv, GLIBC_2_1);
-#endif
-
-libm_hidden_def (__fesetenv)
-libm_hidden_ver (__fesetenv, fesetenv)
-versioned_symbol (libm, __fesetenv, fesetenv, GLIBC_2_2);
diff --git a/sysdeps/powerpc/powerpc32/e500/nofpu/fesetexcept.c b/sysdeps/powerpc/powerpc32/e500/nofpu/fesetexcept.c
deleted file mode 100644
index 5131885794..0000000000
--- a/sysdeps/powerpc/powerpc32/e500/nofpu/fesetexcept.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Set given exception flags. e500 version.
- Copyright (C) 2016-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv_libc.h>
-
-int
-fesetexcept (int excepts)
-{
- unsigned long old_spefscr, spefscr;
- int excepts_spe = __fexcepts_to_spe (excepts);
-
- old_spefscr = fegetenv_register ();
- spefscr = old_spefscr | excepts_spe;
- fesetenv_register (spefscr);
-
- /* If the state of the "invalid" or "underflow" flag has changed,
- inform the kernel. */
- if (((spefscr ^ old_spefscr) & (SPEFSCR_FINVS | SPEFSCR_FUNFS)) != 0)
- __fe_note_change ();
-
- return 0;
-}
diff --git a/sysdeps/powerpc/powerpc32/e500/nofpu/fesetmode.c b/sysdeps/powerpc/powerpc32/e500/nofpu/fesetmode.c
deleted file mode 100644
index 637956dece..0000000000
--- a/sysdeps/powerpc/powerpc32/e500/nofpu/fesetmode.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Install given floating-point control modes. e500 version.
- Copyright (C) 2016-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv_libc.h>
-#include <sysdep.h>
-#include <sys/prctl.h>
-
-#define SPEFSCR_STATUS 0xff3eff00
-
-int
-fesetmode (const femode_t *modep)
-{
- fenv_union_t u;
- INTERNAL_SYSCALL_DECL (err);
- int r;
-
- u.fenv = *modep;
- unsigned int spefscr = fegetenv_register ();
- spefscr = (spefscr & SPEFSCR_STATUS) | (u.l[1] & ~SPEFSCR_STATUS);
-
- fesetenv_register (spefscr);
- r = INTERNAL_SYSCALL (prctl, err, 2, PR_SET_FPEXC,
- u.l[0] | PR_FP_EXC_SW_ENABLE);
- if (INTERNAL_SYSCALL_ERROR_P (r, err))
- return -1;
-
- return 0;
-}
diff --git a/sysdeps/powerpc/powerpc32/e500/nofpu/fesetround.c b/sysdeps/powerpc/powerpc32/e500/nofpu/fesetround.c
deleted file mode 100644
index 5e5f51cd35..0000000000
--- a/sysdeps/powerpc/powerpc32/e500/nofpu/fesetround.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Set current rounding direction. e500 version.
- Copyright (C) 2004-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv_libc.h>
-
-int
-__fesetround (int round)
-{
- unsigned long fpescr;
-
- if ((unsigned int) round > 3)
- return 1;
-
- fpescr = fegetenv_register ();
- fpescr = (fpescr & ~SPEFSCR_FRMC) | (round & 3);
- fesetenv_register (fpescr);
-
- return 0;
-}
-libm_hidden_def (__fesetround)
-weak_alias (__fesetround, fesetround)
-libm_hidden_weak (fesetround)
diff --git a/sysdeps/powerpc/powerpc32/e500/nofpu/fetestexceptflag.c b/sysdeps/powerpc/powerpc32/e500/nofpu/fetestexceptflag.c
deleted file mode 100644
index a465a1cfa2..0000000000
--- a/sysdeps/powerpc/powerpc32/e500/nofpu/fetestexceptflag.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Test exception in saved exception state. e500 version.
- Copyright (C) 2016-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv_libc.h>
-
-int
-fetestexceptflag (const fexcept_t *flagp, int excepts)
-{
- return __fexcepts_from_spe (*flagp) & excepts & FE_ALL_EXCEPT;
-}
diff --git a/sysdeps/powerpc/powerpc32/e500/nofpu/feupdateenv.c b/sysdeps/powerpc/powerpc32/e500/nofpu/feupdateenv.c
deleted file mode 100644
index 2e132664e5..0000000000
--- a/sysdeps/powerpc/powerpc32/e500/nofpu/feupdateenv.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Install given floating-point environment and raise exceptions.
- e500 version.
- Copyright (C) 2004-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv_libc.h>
-
-int
-__feupdateenv (const fenv_t *envp)
-{
- int exc;
-
- /* Save the currently set exceptions. */
- exc = fegetenv_register () & SPEFSCR_ALL_EXCEPT;
-
- /* Install new environment. */
- __fesetenv (envp);
-
- /* Raise (if appropriate) saved exceptions. */
- __feraiseexcept_spe (exc);
-
- /* Success. */
- return 0;
-}
-
-#include <shlib-compat.h>
-#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
-strong_alias (__feupdateenv, __old_feupdateenv)
-compat_symbol (libm, __old_feupdateenv, feupdateenv, GLIBC_2_1);
-#endif
-
-libm_hidden_def (__feupdateenv)
-libm_hidden_ver (__feupdateenv, feupdateenv)
-versioned_symbol (libm, __feupdateenv, feupdateenv, GLIBC_2_2);
diff --git a/sysdeps/powerpc/powerpc32/e500/nofpu/fexcepts_from_prctl.c b/sysdeps/powerpc/powerpc32/e500/nofpu/fexcepts_from_prctl.c
deleted file mode 100644
index 248a31e1fc..0000000000
--- a/sysdeps/powerpc/powerpc32/e500/nofpu/fexcepts_from_prctl.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/* Convert floating-point exceptions from prctl form.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv_libc.h>
-#include <sys/prctl.h>
-
-/* Convert EXCEPTS from prctl bits to FE_* form, returning the
- converted value. */
-
-int
-__fexcepts_from_prctl (int excepts)
-{
- int result = 0;
- if (excepts & PR_FP_EXC_OVF)
- result |= FE_OVERFLOW;
- if (excepts & PR_FP_EXC_UND)
- result |= FE_UNDERFLOW;
- if (excepts & PR_FP_EXC_INV)
- result |= FE_INVALID;
- if (excepts & PR_FP_EXC_DIV)
- result |= FE_DIVBYZERO;
- if (excepts & PR_FP_EXC_RES)
- result |= FE_INEXACT;
- return result;
-}
-
-libm_hidden_def (__fexcepts_from_prctl)
diff --git a/sysdeps/powerpc/powerpc32/e500/nofpu/fexcepts_from_spe.c b/sysdeps/powerpc/powerpc32/e500/nofpu/fexcepts_from_spe.c
deleted file mode 100644
index bfb4e28342..0000000000
--- a/sysdeps/powerpc/powerpc32/e500/nofpu/fexcepts_from_spe.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Convert floating-point exceptions from SPEFSCR form.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv_libc.h>
-
-/* Convert EXCEPTS from SPEFSCR bits to FE_* form, returning the
- converted value. */
-
-int
-__fexcepts_from_spe (int excepts)
-{
- int result = 0;
- if (excepts & SPEFSCR_FINXS)
- result |= FE_INEXACT;
- if (excepts & SPEFSCR_FDBZS)
- result |= FE_DIVBYZERO;
- if (excepts & SPEFSCR_FUNFS)
- result |= FE_UNDERFLOW;
- if (excepts & SPEFSCR_FOVFS)
- result |= FE_OVERFLOW;
- if (excepts & SPEFSCR_FINVS)
- result |= FE_INVALID;
- return result;
-}
-
-libm_hidden_def (__fexcepts_from_spe)
diff --git a/sysdeps/powerpc/powerpc32/e500/nofpu/fexcepts_to_prctl.c b/sysdeps/powerpc/powerpc32/e500/nofpu/fexcepts_to_prctl.c
deleted file mode 100644
index 5c77cb86f0..0000000000
--- a/sysdeps/powerpc/powerpc32/e500/nofpu/fexcepts_to_prctl.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/* Convert floating-point exceptions to prctl form.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv_libc.h>
-#include <sys/prctl.h>
-
-/* Convert EXCEPTS from FE_* form to prctl bits, returning the
- converted value. */
-
-int
-__fexcepts_to_prctl (int excepts)
-{
- int result = 0;
- if (excepts & FE_INEXACT)
- result |= PR_FP_EXC_RES;
- if (excepts & FE_DIVBYZERO)
- result |= PR_FP_EXC_DIV;
- if (excepts & FE_UNDERFLOW)
- result |= PR_FP_EXC_UND;
- if (excepts & FE_OVERFLOW)
- result |= PR_FP_EXC_OVF;
- if (excepts & FE_INVALID)
- result |= PR_FP_EXC_INV;
- return result;
-}
-
-libm_hidden_def (__fexcepts_to_prctl)
diff --git a/sysdeps/powerpc/powerpc32/e500/nofpu/fexcepts_to_spe.c b/sysdeps/powerpc/powerpc32/e500/nofpu/fexcepts_to_spe.c
deleted file mode 100644
index 1d3047a669..0000000000
--- a/sysdeps/powerpc/powerpc32/e500/nofpu/fexcepts_to_spe.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Convert floating-point exceptions to SPEFSCR form.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv_libc.h>
-
-/* Convert EXCEPTS from FE_* form to SPEFSCR bits, returning the
- converted value. */
-
-int
-__fexcepts_to_spe (int excepts)
-{
- int result = 0;
- if (excepts & FE_INEXACT)
- result |= SPEFSCR_FINXS;
- if (excepts & FE_DIVBYZERO)
- result |= SPEFSCR_FDBZS;
- if (excepts & FE_UNDERFLOW)
- result |= SPEFSCR_FUNFS;
- if (excepts & FE_OVERFLOW)
- result |= SPEFSCR_FOVFS;
- if (excepts & FE_INVALID)
- result |= SPEFSCR_FINVS;
- return result;
-}
-
-libm_hidden_def (__fexcepts_to_spe)
diff --git a/sysdeps/powerpc/powerpc32/e500/nofpu/fgetexcptflg.c b/sysdeps/powerpc/powerpc32/e500/nofpu/fgetexcptflg.c
deleted file mode 100644
index 5840b46635..0000000000
--- a/sysdeps/powerpc/powerpc32/e500/nofpu/fgetexcptflg.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Store current representation for exceptions. e500 version.
- Copyright (C) 2004-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv_libc.h>
-
-int
-__fegetexceptflag (fexcept_t *flagp, int excepts)
-{
- unsigned long fpescr;
-
- /* Get the current state. */
- fpescr = fegetenv_register ();
-
- *flagp = fpescr & SPEFSCR_ALL_EXCEPT;
-
- /* Success. */
- return 0;
-}
-
-#include <shlib-compat.h>
-#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
-strong_alias (__fegetexceptflag, __old_fegetexceptflag)
-compat_symbol (libm, __old_fegetexceptflag, fegetexceptflag, GLIBC_2_1);
-#endif
-
-versioned_symbol (libm, __fegetexceptflag, fegetexceptflag, GLIBC_2_2);
diff --git a/sysdeps/powerpc/powerpc32/e500/nofpu/flt-rounds.c b/sysdeps/powerpc/powerpc32/e500/nofpu/flt-rounds.c
deleted file mode 100644
index 17a32f4ca0..0000000000
--- a/sysdeps/powerpc/powerpc32/e500/nofpu/flt-rounds.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Return current rounding mode as correct value for FLT_ROUNDS. e500
- version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv_libc.h>
-#include <stdlib.h>
-
-int
-__flt_rounds (void)
-{
- switch (fegetenv_register () & SPEFSCR_FRMC)
- {
- case FE_TOWARDZERO:
- return 0;
- case FE_TONEAREST:
- return 1;
- case FE_UPWARD:
- return 2;
- case FE_DOWNWARD:
- return 3;
- default:
- abort ();
- }
-}
diff --git a/sysdeps/powerpc/powerpc32/e500/nofpu/fraiseexcept-soft.c b/sysdeps/powerpc/powerpc32/e500/nofpu/fraiseexcept-soft.c
deleted file mode 100644
index 37ae81a12c..0000000000
--- a/sysdeps/powerpc/powerpc32/e500/nofpu/fraiseexcept-soft.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Raise given exceptions. e500 version for use from soft-fp.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Aldy Hernandez <aldyh@redhat.com>, 2004.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv_libc.h>
-#include <libc-symbols.h>
-
-#define __FERAISEEXCEPT_INTERNAL __feraiseexcept_soft
-#include "spe-raise.c"
-libc_hidden_def (__feraiseexcept_soft)
diff --git a/sysdeps/powerpc/powerpc32/e500/nofpu/fraiseexcpt.c b/sysdeps/powerpc/powerpc32/e500/nofpu/fraiseexcpt.c
deleted file mode 100644
index dfe0283f0a..0000000000
--- a/sysdeps/powerpc/powerpc32/e500/nofpu/fraiseexcpt.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Raise given exceptions. e500 version.
- Copyright (C) 2004-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv_libc.h>
-
-#define __FERAISEEXCEPT_INTERNAL __feraiseexcept_spe
-#include "spe-raise.c"
-
-libm_hidden_def (__feraiseexcept_spe)
-
-#undef feraiseexcept
-int
-__feraiseexcept (int excepts)
-{
- return __feraiseexcept_spe (__fexcepts_to_spe (excepts));
-}
-
-#include <shlib-compat.h>
-#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
-strong_alias (__feraiseexcept, __old_feraiseexcept)
-compat_symbol (libm, __old_feraiseexcept, feraiseexcept, GLIBC_2_1);
-#endif
-
-libm_hidden_def (__feraiseexcept)
-libm_hidden_ver (__feraiseexcept, feraiseexcept)
-versioned_symbol (libm, __feraiseexcept, feraiseexcept, GLIBC_2_2);
diff --git a/sysdeps/powerpc/powerpc32/e500/nofpu/fsetexcptflg.c b/sysdeps/powerpc/powerpc32/e500/nofpu/fsetexcptflg.c
deleted file mode 100644
index ec98d54d2a..0000000000
--- a/sysdeps/powerpc/powerpc32/e500/nofpu/fsetexcptflg.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Set floating-point environment exception handling. e500 version.
- Copyright (C) 1997-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv_libc.h>
-
-int
-__fesetexceptflag (const fexcept_t *flagp, int excepts)
-{
- unsigned long old_spefscr, spefscr;
- fexcept_t flag;
- int excepts_spe = __fexcepts_to_spe (excepts);
-
- /* Get the current state. */
- old_spefscr = fegetenv_register ();
-
- /* Ignore exceptions not listed in 'excepts'. */
- flag = *flagp & excepts_spe;
-
- /* Replace the exception status */
- spefscr = (old_spefscr & ~excepts_spe) | flag;
-
- /* Store the new status word (along with the rest of the environment). */
- fesetenv_register (spefscr);
-
- /* If the state of the "invalid" or "underflow" flag has changed,
- inform the kernel. */
- if (((spefscr ^ old_spefscr) & (SPEFSCR_FINVS | SPEFSCR_FUNFS)) != 0)
- __fe_note_change ();
-
- /* Success. */
- return 0;
-}
-
-#include <shlib-compat.h>
-#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
-strong_alias (__fesetexceptflag, __old_fesetexceptflag)
-compat_symbol (libm, __old_fesetexceptflag, fesetexceptflag, GLIBC_2_1);
-#endif
-
-versioned_symbol (libm, __fesetexceptflag, fesetexceptflag, GLIBC_2_2);
diff --git a/sysdeps/powerpc/powerpc32/e500/nofpu/ftestexcept.c b/sysdeps/powerpc/powerpc32/e500/nofpu/ftestexcept.c
deleted file mode 100644
index 612df632ed..0000000000
--- a/sysdeps/powerpc/powerpc32/e500/nofpu/ftestexcept.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Test exception in current environment. e500 version.
- Copyright (C) 2004-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv_libc.h>
-
-int
-fetestexcept (int excepts)
-{
- unsigned long f;
-
- /* Get the current state. */
- f = fegetenv_register ();
-
- return __fexcepts_from_spe (f) & excepts;
-}
-libm_hidden_def (fetestexcept)
diff --git a/sysdeps/powerpc/powerpc32/e500/nofpu/get-rounding-mode.h b/sysdeps/powerpc/powerpc32/e500/nofpu/get-rounding-mode.h
deleted file mode 100644
index 117e7331e9..0000000000
--- a/sysdeps/powerpc/powerpc32/e500/nofpu/get-rounding-mode.h
+++ /dev/null
@@ -1,4 +0,0 @@
-/* The generic version of get-rounding-mode.h using fpu_control.h, not
- the one using the software rounding mode, is correct for e500. */
-
-#include <sysdeps/generic/get-rounding-mode.h>
diff --git a/sysdeps/powerpc/powerpc32/e500/nofpu/s_fabsf.S b/sysdeps/powerpc/powerpc32/e500/nofpu/s_fabsf.S
deleted file mode 100644
index aa13fba0c3..0000000000
--- a/sysdeps/powerpc/powerpc32/e500/nofpu/s_fabsf.S
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Floating-point absolute value. e500 version.
- Copyright (C) 2004-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <libm-alias-float.h>
-
-ENTRY (__fabsf)
-/* float [r3] fabsf (float [r3] x) ; */
- efsabs r3,r3
- blr
-END (__fabsf)
-
-libm_alias_float (__fabs, fabs)
diff --git a/sysdeps/powerpc/powerpc32/e500/nofpu/spe-raise.c b/sysdeps/powerpc/powerpc32/e500/nofpu/spe-raise.c
deleted file mode 100644
index 4952e6ad17..0000000000
--- a/sysdeps/powerpc/powerpc32/e500/nofpu/spe-raise.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/* Raise given exceptions, given the SPEFSCR bits for those exceptions.
- Copyright (C) 1997-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv_libc.h>
-
-int
-__FERAISEEXCEPT_INTERNAL (int excepts)
-{
- unsigned long f;
-
- f = fegetenv_register ();
- f |= (excepts & SPEFSCR_ALL_EXCEPT);
- fesetenv_register (f);
-
- /* Force the operations that cause the exceptions. */
- if ((SPEFSCR_FINVS & excepts) != 0)
- /* 0 / 0 */
- asm volatile ("efsdiv %0,%0,%1" : : "r" (0), "r" (0));
-
- if ((SPEFSCR_FDBZS & excepts) != 0)
- /* 1.0 / 0.0 */
- asm volatile ("efsdiv %0,%0,%1" : : "r" (1.0F), "r" (0));
-
- if ((SPEFSCR_FOVFS & excepts) != 0)
- /* Largest normalized number plus itself. */
- asm volatile ("efsadd %0,%0,%1" : : "r" (0x7f7fffff), "r" (0x7f7fffff));
-
- if ((SPEFSCR_FUNFS & excepts) != 0)
- /* Smallest normalized number times itself. */
- asm volatile ("efsmul %0,%0,%1" : : "r" (0x800000), "r" (0x800000));
-
- if ((SPEFSCR_FINXS & excepts) != 0)
- /* Smallest normalized minus 1.0 raises the inexact flag. */
- asm volatile ("efssub %0,%0,%1" : : "r" (0x00800000), "r" (1.0F));
-
- /* Success. */
- return 0;
-}
diff --git a/sysdeps/powerpc/powerpc32/fpu/Makefile b/sysdeps/powerpc/powerpc32/fpu/Makefile
index e05073970d..b8b6bb0fa2 100644
--- a/sysdeps/powerpc/powerpc32/fpu/Makefile
+++ b/sysdeps/powerpc/powerpc32/fpu/Makefile
@@ -1,3 +1,10 @@
+ifeq ($(subdir),math)
+# lrint is aliased to lrintf, so suppress compiler builtins to
+# avoid mismatched signatures.
+CFLAGS-s_lrint.c += -fno-builtin-lrintf
+CFLAGS-s_lround.c += -fno-builtin-lroundf
+endif
+
ifeq ($(subdir),misc)
sysdep_routines += fprsave fprrest
endif
diff --git a/sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S b/sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S
index 7a4b068599..9568599b64 100644
--- a/sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S
+++ b/sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S
@@ -1,5 +1,5 @@
/* longjmp for PowerPC.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <stap-probe.h>
diff --git a/sysdeps/powerpc/powerpc32/fpu/__longjmp.S b/sysdeps/powerpc/powerpc32/fpu/__longjmp.S
index c59b59a4c3..7fab0e79bf 100644
--- a/sysdeps/powerpc/powerpc32/fpu/__longjmp.S
+++ b/sysdeps/powerpc/powerpc32/fpu/__longjmp.S
@@ -1,5 +1,5 @@
/* AltiVec/VMX (new) version of __longjmp for PowerPC.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libc-symbols.h>
#include <rtld-global-offsets.h>
diff --git a/sysdeps/powerpc/powerpc32/fpu/fix-int-fp-convert-zero.h b/sysdeps/powerpc/powerpc32/fpu/fix-int-fp-convert-zero.h
index 6bdc3480b2..07eda2b890 100644
--- a/sysdeps/powerpc/powerpc32/fpu/fix-int-fp-convert-zero.h
+++ b/sysdeps/powerpc/powerpc32/fpu/fix-int-fp-convert-zero.h
@@ -1,5 +1,5 @@
/* Fix for conversion of integer 0 to floating point. PowerPC version.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef FIX_INT_FP_CONVERT_ZERO_H
#define FIX_INT_FP_CONVERT_ZERO_H 1
diff --git a/sysdeps/powerpc/powerpc32/fpu/fprrest.S b/sysdeps/powerpc/powerpc32/fpu/fprrest.S
index c17bdf35df..a5769402ac 100644
--- a/sysdeps/powerpc/powerpc32/fpu/fprrest.S
+++ b/sysdeps/powerpc/powerpc32/fpu/fprrest.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
Floating Point Registers (FPRs) restore routine
diff --git a/sysdeps/powerpc/powerpc32/fpu/fprsave.S b/sysdeps/powerpc/powerpc32/fpu/fprsave.S
index 0822de23a0..5a4d181326 100644
--- a/sysdeps/powerpc/powerpc32/fpu/fprsave.S
+++ b/sysdeps/powerpc/powerpc32/fpu/fprsave.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
Floating Point Registers (FPRs) save routine
diff --git a/sysdeps/powerpc/powerpc32/fpu/s_ceil.S b/sysdeps/powerpc/powerpc32/fpu/s_ceil.S
deleted file mode 100644
index 7f2f97ada1..0000000000
--- a/sysdeps/powerpc/powerpc32/fpu/s_ceil.S
+++ /dev/null
@@ -1,76 +0,0 @@
-/* ceil function. PowerPC32 version.
- Copyright (C) 2004-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-#include <libm-alias-double.h>
-
- .section .rodata.cst4,"aM",@progbits,4
- .align 2
-.LC0: /* 2**52 */
- .long 0x59800000
-
- .section ".text"
-ENTRY (__ceil)
-#ifdef SHARED
- mflr r11
- cfi_register(lr,r11)
- SETUP_GOT_ACCESS(r9,got_label)
- addis r9,r9,.LC0-got_label@ha
- lfs fp13,.LC0-got_label@l(r9)
- mtlr r11
- cfi_same_value (lr)
-#else
- lis r9,.LC0@ha
- lfs fp13,.LC0@l(r9)
-#endif
- fabs fp0,fp1
- fsub fp12,fp13,fp13 /* generate 0.0 */
- fcmpu cr7,fp0,fp13 /* if (fabs(x) > TWO52) */
- mffs fp11 /* Save current FPU rounding mode and
- "inexact" state. */
- fcmpu cr6,fp1,fp12 /* if (x > 0.0) */
- bnl- cr7,.L10
- mtfsfi 7,2 /* Set rounding mode toward +inf. */
- ble- cr6,.L4
- fadd fp1,fp1,fp13 /* x+= TWO52; */
- fsub fp1,fp1,fp13 /* x-= TWO52; */
- fabs fp1,fp1 /* if (x == 0.0) */
- /* x = 0.0; */
- mtfsf 0xff,fp11 /* Restore previous rounding mode and
- "inexact" state. */
- blr
-.L4:
- bge- cr6,.L9 /* if (x < 0.0) */
- fsub fp1,fp1,fp13 /* x-= TWO52; */
- fadd fp1,fp1,fp13 /* x+= TWO52; */
- fnabs fp1,fp1 /* if (x == 0.0) */
- /* x = -0.0; */
-.L9:
- mtfsf 0xff,fp11 /* Restore previous rounding mode and
- "inexact" state. */
- blr
-.L10:
- /* Ensure sNaN input is converted to qNaN. */
- fcmpu cr7,fp1,fp1
- beqlr cr7
- fadd fp1,fp1,fp1
- blr
- END (__ceil)
-
-libm_alias_double (__ceil, ceil)
diff --git a/sysdeps/powerpc/powerpc32/fpu/s_ceilf.S b/sysdeps/powerpc/powerpc32/fpu/s_ceilf.S
deleted file mode 100644
index 3f5949004f..0000000000
--- a/sysdeps/powerpc/powerpc32/fpu/s_ceilf.S
+++ /dev/null
@@ -1,76 +0,0 @@
-/* float ceil function. PowerPC32 version.
- Copyright (C) 2004-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <libm-alias-float.h>
-
- .section .rodata.cst4,"aM",@progbits,4
- .align 2
-.LC0: /* 2**23 */
- .long 0x4b000000
-
- .section ".text"
-ENTRY (__ceilf)
-#ifdef SHARED
- mflr r11
- cfi_register(lr,r11)
- SETUP_GOT_ACCESS(r9,got_label)
- addis r9,r9,.LC0-got_label@ha
- lfs fp13,.LC0-got_label@l(r9)
- mtlr r11
- cfi_same_value (lr)
-#else
- lis r9,.LC0@ha
- lfs fp13,.LC0@l(r9)
-#endif
- fabs fp0,fp1
- fsubs fp12,fp13,fp13 /* generate 0.0 */
- fcmpu cr7,fp0,fp13 /* if (fabs(x) > TWO23) */
- mffs fp11 /* Save current FPU rounding mode and
- "inexact" state. */
- fcmpu cr6,fp1,fp12 /* if (x > 0.0) */
- bnl- cr7,.L10
- mtfsfi 7,2 /* Set rounding mode toward +inf. */
- ble- cr6,.L4
- fadds fp1,fp1,fp13 /* x+= TWO23; */
- fsubs fp1,fp1,fp13 /* x-= TWO23; */
- fabs fp1,fp1 /* if (x == 0.0) */
- /* x = 0.0; */
- mtfsf 0xff,fp11 /* Restore previous rounding mode and
- "inexact" state. */
- blr
-.L4:
- bge- cr6,.L9 /* if (x < 0.0) */
- fsubs fp1,fp1,fp13 /* x-= TWO23; */
- fadds fp1,fp1,fp13 /* x+= TWO23; */
- fnabs fp1,fp1 /* if (x == 0.0) */
- /* x = -0.0; */
-.L9:
- mtfsf 0xff,fp11 /* Restore previous rounding mode and
- "inexact" state. */
- blr
-.L10:
- /* Ensure sNaN input is converted to qNaN. */
- fcmpu cr7,fp1,fp1
- beqlr cr7
- fadds fp1,fp1,fp1
- blr
- END (__ceilf)
-
-libm_alias_float (__ceil, ceil)
-
diff --git a/sysdeps/powerpc/powerpc32/fpu/s_copysign.S b/sysdeps/powerpc/powerpc32/fpu/s_copysign.S
deleted file mode 100644
index 6ca90cd1e3..0000000000
--- a/sysdeps/powerpc/powerpc32/fpu/s_copysign.S
+++ /dev/null
@@ -1,53 +0,0 @@
-/* Copy a sign bit between floating-point values.
- Copyright (C) 1997-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-/* This has been coded in assembler because GCC makes such a mess of it
- when it's coded in C. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-#include <libm-alias-float.h>
-#include <libm-alias-double.h>
-
-ENTRY(__copysign)
-/* double [f1] copysign (double [f1] x, double [f2] y);
- copysign(x,y) returns a value with the magnitude of x and
- with the sign bit of y. */
- stwu r1,-16(r1)
- cfi_adjust_cfa_offset (16)
- stfd fp2,8(r1)
- lwz r3,8+HIWORD(r1)
- cmpwi r3,0
- addi r1,r1,16
- cfi_adjust_cfa_offset (-16)
- blt L(0)
- fabs fp1,fp1
- blr
-L(0): fnabs fp1,fp1
- blr
- END (__copysign)
-
-libm_alias_double (__copysign, copysign)
-
-/* It turns out that it's safe to use this code even for single-precision. */
-strong_alias(__copysign,__copysignf)
-libm_alias_float (__copysign, copysign)
-
-#if LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)
-compat_symbol (libc, __copysign, copysignl, GLIBC_2_0)
-#endif
diff --git a/sysdeps/powerpc/powerpc32/fpu/s_copysignf.S b/sysdeps/powerpc/powerpc32/fpu/s_copysignf.S
deleted file mode 100644
index e05438ae7d..0000000000
--- a/sysdeps/powerpc/powerpc32/fpu/s_copysignf.S
+++ /dev/null
@@ -1 +0,0 @@
-/* __copysignf is in s_copysign.S */
diff --git a/sysdeps/powerpc/powerpc32/fpu/s_copysignl.S b/sysdeps/powerpc/powerpc32/fpu/s_copysignl.S
index 0c9d18cb03..8d7fb549fd 100644
--- a/sysdeps/powerpc/powerpc32/fpu/s_copysignl.S
+++ b/sysdeps/powerpc/powerpc32/fpu/s_copysignl.S
@@ -1,6 +1,6 @@
/* Copy a sign bit between floating-point values.
IBM extended format long double version.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <math_ldbl_opt.h>
diff --git a/sysdeps/powerpc/powerpc32/fpu/s_fabsl.S b/sysdeps/powerpc/powerpc32/fpu/s_fabsl.S
index e6a726afb0..5bef019bb8 100644
--- a/sysdeps/powerpc/powerpc32/fpu/s_fabsl.S
+++ b/sysdeps/powerpc/powerpc32/fpu/s_fabsl.S
@@ -1,6 +1,6 @@
/* Copy a sign bit between floating-point values.
IBM extended format long double version.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <math_ldbl_opt.h>
diff --git a/sysdeps/powerpc/powerpc32/fpu/s_floor.S b/sysdeps/powerpc/powerpc32/fpu/s_floor.S
deleted file mode 100644
index cb2fd9596e..0000000000
--- a/sysdeps/powerpc/powerpc32/fpu/s_floor.S
+++ /dev/null
@@ -1,76 +0,0 @@
-/* Floor function. PowerPC32 version.
- Copyright (C) 2004-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-#include <libm-alias-double.h>
-
- .section .rodata.cst4,"aM",@progbits,4
- .align 2
-.LC0: /* 2**52 */
- .long 0x59800000
-
- .section ".text"
-ENTRY (__floor)
-#ifdef SHARED
- mflr r11
- cfi_register(lr,r11)
- SETUP_GOT_ACCESS(r9,got_label)
- addis r9,r9,.LC0-got_label@ha
- lfs fp13,.LC0-got_label@l(r9)
- mtlr r11
- cfi_same_value (lr)
-#else
- lis r9,.LC0@ha
- lfs fp13,.LC0@l(r9)
-#endif
- fabs fp0,fp1
- fsub fp12,fp13,fp13 /* generate 0.0 */
- fcmpu cr7,fp0,fp13 /* if (fabs(x) > TWO52) */
- mffs fp11 /* Save current FPU rounding mode and
- "inexact" state. */
- fcmpu cr6,fp1,fp12 /* if (x > 0.0) */
- bnl- cr7,.L10
- mtfsfi 7,3 /* Set rounding mode toward -inf. */
- ble- cr6,.L4
- fadd fp1,fp1,fp13 /* x+= TWO52; */
- fsub fp1,fp1,fp13 /* x-= TWO52; */
- fabs fp1,fp1 /* if (x == 0.0) */
- /* x = 0.0; */
- mtfsf 0xff,fp11 /* Restore previous rounding mode and
- "inexact" state. */
- blr
-.L4:
- bge- cr6,.L9 /* if (x < 0.0) */
- fsub fp1,fp1,fp13 /* x-= TWO52; */
- fadd fp1,fp1,fp13 /* x+= TWO52; */
- fnabs fp1,fp1 /* if (x == 0.0) */
- /* x = -0.0; */
-.L9:
- mtfsf 0xff,fp11 /* Restore previous rounding mode and
- "inexact" state. */
- blr
-.L10:
- /* Ensure sNaN input is converted to qNaN. */
- fcmpu cr7,fp1,fp1
- beqlr cr7
- fadd fp1,fp1,fp1
- blr
- END (__floor)
-
-libm_alias_double (__floor, floor)
diff --git a/sysdeps/powerpc/powerpc32/fpu/s_floorf.S b/sysdeps/powerpc/powerpc32/fpu/s_floorf.S
deleted file mode 100644
index 37b70d7c72..0000000000
--- a/sysdeps/powerpc/powerpc32/fpu/s_floorf.S
+++ /dev/null
@@ -1,76 +0,0 @@
-/* float Floor function. PowerPC32 version.
- Copyright (C) 2004-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <libm-alias-float.h>
-
- .section .rodata.cst4,"aM",@progbits,4
- .align 2
-.LC0: /* 2**23 */
- .long 0x4b000000
-
- .section ".text"
-ENTRY (__floorf)
-#ifdef SHARED
- mflr r11
- cfi_register(lr,r11)
- SETUP_GOT_ACCESS(r9,got_label)
- addis r9,r9,.LC0-got_label@ha
- lfs fp13,.LC0-got_label@l(r9)
- mtlr r11
- cfi_same_value (lr)
-#else
- lis r9,.LC0@ha
- lfs fp13,.LC0@l(r9)
-#endif
- fabs fp0,fp1
- fsubs fp12,fp13,fp13 /* generate 0.0 */
- fcmpu cr7,fp0,fp13 /* if (fabs(x) > TWO23) */
- mffs fp11 /* Save current FPU rounding mode and
- "inexact" state. */
- fcmpu cr6,fp1,fp12 /* if (x > 0.0) */
- bnl- cr7,.L10
- mtfsfi 7,3 /* Set rounding mode toward -inf. */
- ble- cr6,.L4
- fadds fp1,fp1,fp13 /* x+= TWO23; */
- fsubs fp1,fp1,fp13 /* x-= TWO23; */
- fabs fp1,fp1 /* if (x == 0.0) */
- /* x = 0.0; */
- mtfsf 0xff,fp11 /* Restore previous rounding mode and
- "inexact" state. */
- blr
-.L4:
- bge- cr6,.L9 /* if (x < 0.0) */
- fsubs fp1,fp1,fp13 /* x-= TWO23; */
- fadds fp1,fp1,fp13 /* x+= TWO23; */
- fnabs fp1,fp1 /* if (x == 0.0) */
- /* x = -0.0; */
-.L9:
- mtfsf 0xff,fp11 /* Restore previous rounding mode and
- "inexact" state. */
- blr
-.L10:
- /* Ensure sNaN input is converted to qNaN. */
- fcmpu cr7,fp1,fp1
- beqlr cr7
- fadds fp1,fp1,fp1
- blr
- END (__floorf)
-
-libm_alias_float (__floor, floor)
-
diff --git a/sysdeps/powerpc/powerpc32/fpu/s_isnan.S b/sysdeps/powerpc/powerpc32/fpu/s_isnan.S
deleted file mode 100644
index c0cec82ce0..0000000000
--- a/sysdeps/powerpc/powerpc32/fpu/s_isnan.S
+++ /dev/null
@@ -1,57 +0,0 @@
-/* isnan(). PowerPC32 version.
- Copyright (C) 2008-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-/* int __isnan(x) */
- .machine power4
-EALIGN (__isnan, 4, 0)
- mffs fp0
- mtfsb0 4*cr6+lt /* reset_fpscr_bit (FPSCR_VE) */
- fcmpu cr7,fp1,fp1
- mtfsf 255,fp0
- li r3,0
- beqlr+ cr7 /* (x == x) then not a NAN */
- li r3,1 /* else must be a NAN */
- blr
- END (__isnan)
-
-hidden_def (__isnan)
-weak_alias (__isnan, isnan)
-
-/* It turns out that the 'double' version will also always work for
- single-precision. */
-#ifndef __isnan
-strong_alias (__isnan, __isnanf)
-hidden_def (__isnanf)
-weak_alias (__isnanf, isnanf)
-#endif
-
-#ifdef NO_LONG_DOUBLE
-strong_alias (__isnan, __isnanl)
-weak_alias (__isnan, isnanl)
-#endif
-
-#if !IS_IN (libm)
-# if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
-compat_symbol (libc, __isnan, __isnanl, GLIBC_2_0);
-compat_symbol (libc, isnan, isnanl, GLIBC_2_0);
-# endif
-#endif
-
diff --git a/sysdeps/powerpc/powerpc32/fpu/s_llrint.c b/sysdeps/powerpc/powerpc32/fpu/s_llrint.c
index 3704f9b11e..48aa85323f 100644
--- a/sysdeps/powerpc/powerpc32/fpu/s_llrint.c
+++ b/sysdeps/powerpc/powerpc32/fpu/s_llrint.c
@@ -1,5 +1,5 @@
/* Round a double value to a long long in the current rounding mode.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <limits.h>
#include <math.h>
@@ -26,7 +26,13 @@
long long int
__llrint (double x)
{
- double rx = __rint (x);
+#ifdef _ARCH_PWR4
+ /* Assume powerpc64 instructions availability. */
+ long long int ret;
+ __asm__ ("fctid %0, %1" : "=d" (ret) : "d" (x));
+ return ret;
+#else
+ double rx = rint (x);
if (HAVE_PPC_FCTIDZ || rx != x)
return (long long int) rx;
else
@@ -53,5 +59,8 @@ __llrint (double x)
else
return (long long int) (long int) rx << 32;
}
+#endif
}
+#ifndef __llrint
libm_alias_double (__llrint, llrint)
+#endif
diff --git a/sysdeps/powerpc/powerpc32/fpu/s_llrintf.c b/sysdeps/powerpc/powerpc32/fpu/s_llrintf.c
index c5e78fa050..c6accb8d48 100644
--- a/sysdeps/powerpc/powerpc32/fpu/s_llrintf.c
+++ b/sysdeps/powerpc/powerpc32/fpu/s_llrintf.c
@@ -1,5 +1,5 @@
/* Round a float value to a long long in the current rounding mode.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
@@ -24,7 +24,13 @@
long long int
__llrintf (float x)
{
- float rx = __rintf (x);
+#ifdef _ARCH_PWR4
+ /* Assume powerpc64 instructions availability. */
+ long long int ret;
+ __asm__ ("fctid %0, %1" : "=d" (ret) : "d" (x));
+ return ret;
+#else
+ float rx = rintf (x);
if (HAVE_PPC_FCTIDZ || rx != x)
return (long long int) rx;
else
@@ -43,5 +49,6 @@ __llrintf (float x)
mant <<= exponent - 23;
return (long long int) ((i0 & 0x80000000) != 0 ? -mant : mant);
}
+#endif
}
libm_alias_float (__llrint, llrint)
diff --git a/sysdeps/powerpc/powerpc32/fpu/s_llround.c b/sysdeps/powerpc/powerpc32/fpu/s_llround.c
index d09f97f2a2..069d1ae2bf 100644
--- a/sysdeps/powerpc/powerpc32/fpu/s_llround.c
+++ b/sysdeps/powerpc/powerpc32/fpu/s_llround.c
@@ -1,5 +1,5 @@
/* Round double value to long long int.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,14 +14,14 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <limits.h>
#include <math.h>
-#include <math_ldbl_opt.h>
#include <math_private.h>
#include <stdint.h>
#include <libm-alias-double.h>
+#include <math-barriers.h>
/* Round to the nearest integer, with values exactly on a 0.5 boundary
rounded away from zero, regardless of the current rounding mode.
@@ -31,9 +31,53 @@
long long int
__llround (double x)
{
+#ifdef _ARCH_PWR5X
+ x = round (x);
+ /* The barrier prevents compiler from optimizing it to llround when
+ compiled with -fno-math-errno */
+ math_opt_barrier (x);
+ return x;
+#else
long long xr;
if (HAVE_PPC_FCTIDZ)
- xr = (long long) x;
+ {
+ /* IEEE 1003.1 lround function. IEEE specifies "round to the nearest
+ integer value, rounding halfway cases away from zero, regardless of
+ the current rounding mode." However PowerPC Architecture defines
+ "round to Nearest" as "Choose the best approximation. In case of a
+ tie, choose the one that is even (least significant bit o).".
+ So we can't use the PowerPC "round to Nearest" mode. Instead we set
+ "round toward Zero" mode and round by adding +-0.5 before rounding
+ to the integer value.
+
+ It is necessary to detect when x is (+-)0x1.fffffffffffffp-2
+ because adding +-0.5 in this case will cause an erroneous shift,
+ carry and round. We simply return 0 if 0.5 > x > -0.5. Likewise
+ if x is and odd number between +-(2^52 and 2^53-1) a shift and
+ carry will erroneously round if biased with +-0.5. Therefore if x
+ is greater/less than +-2^52 we don't need to bias the number with
+ +-0.5. */
+ double ax = fabs (x);
+
+ if (ax < 0.5)
+ return 0;
+
+ if (ax < 0x1p+52)
+ {
+ /* Test whether an integer to avoid spurious "inexact". */
+ double t = ax + 0x1p+52;
+ t = t - 0x1p+52;
+ if (ax != t)
+ {
+ ax = ax + 0.5;
+ if (x < 0.0)
+ ax = -fabs (ax);
+ x = ax;
+ }
+ }
+
+ return x;
+ }
else
{
/* Avoid incorrect exceptions from libgcc conversions (as of GCC
@@ -80,5 +124,8 @@ __llround (double x)
xr -= (long long) ((unsigned long long) xr - 1) < 0;
}
return xr;
+#endif
}
+#ifndef __llround
libm_alias_double (__llround, llround)
+#endif
diff --git a/sysdeps/powerpc/powerpc32/fpu/s_llroundf.c b/sysdeps/powerpc/powerpc32/fpu/s_llroundf.c
index 5337ccd4c8..e1dac879ca 100644
--- a/sysdeps/powerpc/powerpc32/fpu/s_llroundf.c
+++ b/sysdeps/powerpc/powerpc32/fpu/s_llroundf.c
@@ -1,5 +1,5 @@
/* Round float value to long long int.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/powerpc/powerpc32/fpu/s_lrint.S b/sysdeps/powerpc/powerpc32/fpu/s_lrint.S
deleted file mode 100644
index 49a97ff012..0000000000
--- a/sysdeps/powerpc/powerpc32/fpu/s_lrint.S
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Round double to long int. PowerPC32 version.
- Copyright (C) 2004-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-#include <libm-alias-float.h>
-#include <libm-alias-double.h>
-
-/* long int[r3] __lrint (double x[fp1]) */
-ENTRY (__lrint)
- stwu r1,-16(r1)
- fctiw fp13,fp1
- stfd fp13,8(r1)
- nop /* Ensure the following load is in a different dispatch group */
- nop /* to avoid pipe stall on POWER4&5. */
- nop
- lwz r3,8+LOWORD(r1)
- addi r1,r1,16
- blr
- END (__lrint)
-
-libm_alias_double (__lrint, lrint)
-
-strong_alias (__lrint, __lrintf)
-libm_alias_float (__lrint, lrint)
diff --git a/sysdeps/powerpc/powerpc32/fpu/s_lrint.c b/sysdeps/powerpc/powerpc32/fpu/s_lrint.c
new file mode 100644
index 0000000000..4d4981bfa8
--- /dev/null
+++ b/sysdeps/powerpc/powerpc32/fpu/s_lrint.c
@@ -0,0 +1,40 @@
+/* Round to nearest integer. PowerPC32 version.
+ 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 Library General Public License as
+ published by the Free Software Foundation; either version 2 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If
+ not, see <https://www.gnu.org/licenses/>. */
+
+#define NO_MATH_REDIRECT
+#define lrintf __redirect_lrintf
+#define __lrintf __redirect___lrintf
+#include <math.h>
+#undef lrintf
+#undef __lrintf
+#include <fenv_private.h>
+#include <libm-alias-double.h>
+#include <libm-alias-float.h>
+
+long int
+__lrint (double x)
+{
+ long long int ret;
+ __asm__ ("fctiw %0, %1" : "=d" (ret) : "d" (x));
+ return ret;
+}
+#ifndef __lrint
+libm_alias_double (__lrint, lrint)
+strong_alias (__lrint, __lrintf)
+libm_alias_float (__lrint, lrint)
+#endif
diff --git a/sysdeps/powerpc/powerpc32/fpu/s_lround.S b/sysdeps/powerpc/powerpc32/fpu/s_lround.S
deleted file mode 100644
index 03d7dae2a5..0000000000
--- a/sysdeps/powerpc/powerpc32/fpu/s_lround.S
+++ /dev/null
@@ -1,123 +0,0 @@
-/* lround function. PowerPC32 version.
- Copyright (C) 2004-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-#include <libm-alias-float.h>
-#include <libm-alias-double.h>
-
- .section .rodata.cst4,"aM",@progbits,4
- .align 2
-.LC0: /* 0.5 */
- .long 0x3f000000
-.LC1: /* 2^52. */
- .long 0x59800000
- .section .rodata.cst8,"aM",@progbits,8
- .align 3
-.LC2: /* 0x7fffffff.8p0. */
- .long 0x41dfffff
- .long 0xffe00000
-.LC3: /* -0x80000000.8p0. */
- .long 0xc1e00000
- .long 0x00100000
- .section ".text"
-
-/* long [r3] lround (float x [fp1])
- IEEE 1003.1 lround function. IEEE specifies "round to the nearest
- integer value, rounding halfway cases away from zero, regardless of
- the current rounding mode." However PowerPC Architecture defines
- "round to Nearest" as "Choose the best approximation. In case of a
- tie, choose the one that is even (least significant bit o).".
- So we can't use the PowerPC "round to Nearest" mode. Instead we set
- "round toward Zero" mode and round by adding +-0.5 before rounding
- to the integer value. It is necessary to detect when x is
- (+-)0x1.fffffffffffffp-2 because adding +-0.5 in this case will
- cause an erroneous shift, carry and round. We simply return 0 if
- 0.5 > x > -0.5. */
-
-ENTRY (__lround)
- stwu r1,-16(r1)
- cfi_adjust_cfa_offset (16)
-#ifdef SHARED
- mflr r11
- cfi_register(lr,r11)
- SETUP_GOT_ACCESS(r9,got_label)
- addis r10,r9,.LC0-got_label@ha
- lfs fp10,.LC0-got_label@l(r10)
- addis r10,r9,.LC1-got_label@ha
- lfs fp11,.LC1-got_label@l(r10)
- addis r10,r9,.LC2-got_label@ha
- lfd fp9,.LC2-got_label@l(r10)
- addis r10,r9,.LC3-got_label@ha
- lfd fp8,.LC3-got_label@l(r10)
- mtlr r11
- cfi_same_value (lr)
-#else
- lis r9,.LC0@ha
- lfs fp10,.LC0@l(r9)
- lis r9,.LC1@ha
- lfs fp11,.LC1@l(r9)
- lis r9,.LC2@ha
- lfd fp9,.LC2@l(r9)
- lis r9,.LC3@ha
- lfd fp8,.LC3@l(r9)
-#endif
- fabs fp2, fp1 /* Get the absolute value of x. */
- fsub fp12,fp10,fp10 /* Compute 0.0. */
- fcmpu cr6, fp2, fp10 /* if |x| < 0.5 */
- fcmpu cr5, fp1, fp9 /* if x >= 0x7fffffff.8p0 */
- fcmpu cr1, fp1, fp8 /* if x <= -0x80000000.8p0 */
- fcmpu cr7, fp1, fp12 /* x is negative? x < 0.0 */
- blt- cr6,.Lretzero
- bge- cr5,.Loflow
- ble- cr1,.Loflow
- /* Test whether an integer to avoid spurious "inexact". */
- fadd fp3,fp2,fp11
- fsub fp3,fp3,fp11
- fcmpu cr5, fp2, fp3
- beq cr5,.Lnobias
- fadd fp3,fp2,fp10 /* |x|+=0.5 bias to prepare to round. */
- bge cr7,.Lconvert /* x is positive so don't negate x. */
- fnabs fp3,fp3 /* -(|x|+=0.5) */
-.Lconvert:
- fctiwz fp4,fp3 /* Convert to Integer word lround toward 0. */
- stfd fp4,8(r1)
- nop /* Ensure the following load is in a different dispatch */
- nop /* group to avoid pipe stall on POWER4&5. */
- nop
- lwz r3,8+LOWORD(r1) /* Load return as integer. */
-.Lout:
- addi r1,r1,16
- blr
-.Lretzero: /* when 0.5 > x > -0.5 */
- li r3,0 /* return 0. */
- b .Lout
-.Lnobias:
- fmr fp3,fp1
- b .Lconvert
-.Loflow:
- fmr fp3,fp11
- bge cr7,.Lconvert
- fnabs fp3,fp3
- b .Lconvert
- END (__lround)
-
-libm_alias_double (__lround, lround)
-
-strong_alias (__lround, __lroundf)
-libm_alias_float (__lround, lround)
diff --git a/sysdeps/powerpc/powerpc32/fpu/s_lround.c b/sysdeps/powerpc/powerpc32/fpu/s_lround.c
new file mode 100644
index 0000000000..1f9726fc73
--- /dev/null
+++ b/sysdeps/powerpc/powerpc32/fpu/s_lround.c
@@ -0,0 +1,77 @@
+/* lround function. PowerPC32 version.
+ Copyright (C) 2004-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
+ <https://www.gnu.org/licenses/>. */
+
+#define lroundf __redirect_lroundf
+#define __lroundf __redirect___lroundf
+#include <math.h>
+#undef lroundf
+#undef __lroundf
+#include <libm-alias-float.h>
+#include <libm-alias-double.h>
+
+long int
+__lround (double x)
+{
+#ifdef _ARCH_PWR5X
+ x = round (x);
+#else
+ /* Ieee 1003.1 lround function. ieee specifies "round to the nearest
+ integer value, rounding halfway cases away from zero, regardless of
+ the current rounding mode." however powerpc architecture defines
+ "round to nearest" as "choose the best approximation. in case of a
+ tie, choose the one that is even (least significant bit o).".
+ so we can't use the powerpc "round to nearest" mode. instead we set
+ "round toward zero" mode and round by adding +-0.5 before rounding
+ to the integer value. it is necessary to detect when x is
+ (+-)0x1.fffffffffffffp-2 because adding +-0.5 in this case will
+ cause an erroneous shift, carry and round. we simply return 0 if
+ 0.5 > x > -0.5. */
+
+ double ax = fabs (x);
+
+ if (ax < 0.5)
+ return 0;
+
+ if (x >= 0x7fffffff.8p0 || x <= -0x80000000.8p0)
+ x = (x < 0.0) ? -0x1p+52 : 0x1p+52;
+ else
+ {
+ /* Test whether an integer to avoid spurious "inexact". */
+ double t = ax + 0x1p+52;
+ t = t - 0x1p+52;
+ if (ax != t)
+ {
+ ax = ax + 0.5;
+ if (x < 0.0)
+ ax = -fabs (ax);
+ x = ax;
+ }
+ }
+#endif
+ /* Force evaluation of values larger than long int, so invalid
+ exceptions are raise. */
+ long long int ret;
+ asm ("fctiwz %0, %1" : "=d" (ret) : "d" (x));
+ return ret;
+}
+#ifndef __lround
+libm_alias_double (__lround, lround)
+
+strong_alias (__lround, __lroundf)
+libm_alias_float (__lround, lround)
+#endif
diff --git a/sysdeps/powerpc/powerpc32/fpu/s_nearbyint.S b/sysdeps/powerpc/powerpc32/fpu/s_nearbyint.S
deleted file mode 100644
index 2481897816..0000000000
--- a/sysdeps/powerpc/powerpc32/fpu/s_nearbyint.S
+++ /dev/null
@@ -1,80 +0,0 @@
-/* Round to int floating-point values. PowerPC32 version.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Adhemerval Zanella <azanella@br.ibm.com>, 2011
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-/* This has been coded in assembler because GCC makes such a mess of it
- when it's coded in C. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-#include <libm-alias-double.h>
-
-
-/* double [fp1] nearbyint(double [fp1] x) */
-
- .section .rodata.cst4,"aM",@progbits,4
- .align 2
-.LC0: /* 2**52 */
- .long 0x59800000 /* TWO52: 2**52 */
-
- .section ".text"
-ENTRY (__nearbyint)
-#ifdef SHARED
- mflr r11
- cfi_register(lr,r11)
- bcl 20,31,1f
-1: mflr r9
- addis r9,r9,.LC0-1b@ha
- lfs fp13,.LC0-1b@l(r9)
- mtlr r11
- cfi_same_value (lr)
-#else
- lis r9,.LC0@ha
- lfs fp13,.LC0@l(r9)
-#endif
- fabs fp0,fp1
- fsub fp12,fp13,fp13 /* generate 0.0 */
- fcmpu cr7,fp0,fp13 /* if (fabs(x) > TWO52 */
- bge cr7,.L10
- fcmpu cr7,fp1,fp12 /* if (x > 0.0 */
- ble cr7,L(lessthanzero)
- mffs fp11
- mtfsb0 4*cr7+lt /* Disable FE_INEXACT exception */
- fadd fp1,fp1,fp13 /* x += TWO52 */
- fsub fp1,fp1,fp13 /* x -= TWO52 */
- fabs fp1,fp1 /* if (x == 0.0 */
- mtfsf 0xff,fp11 /* Restore FE_INEXACT state. */
- blr
-L(lessthanzero):
- bgelr cr7
- mffs fp11
- mtfsb0 4*cr7+lt /* Disable FE_INEXACT exception */
- fsub fp1,fp1,fp13 /* x -= TWO52 */
- fadd fp1,fp1,fp13 /* x += TWO52 */
- fnabs fp1,fp1 /* if (x == 0.0) */
- mtfsf 0xff,fp11 /* Restore FE_INEXACT state. */
- blr
-.L10:
- /* Ensure sNaN input is converted to qNaN. */
- fcmpu cr7,fp1,fp1
- beqlr cr7
- fadd fp1,fp1,fp1
- blr
-END (__nearbyint)
-
-libm_alias_double (__nearbyint, nearbyint)
diff --git a/sysdeps/powerpc/powerpc32/fpu/s_nearbyintf.S b/sysdeps/powerpc/powerpc32/fpu/s_nearbyintf.S
deleted file mode 100644
index 113ee81309..0000000000
--- a/sysdeps/powerpc/powerpc32/fpu/s_nearbyintf.S
+++ /dev/null
@@ -1,79 +0,0 @@
-/* Round to int floating-point values. PowerPC32 version.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Adhemerval Zanella <azanella@br.ibm.com>, 2011
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-/* This has been coded in assembler because GCC makes such a mess of it
- when it's coded in C. */
-
-#include <sysdep.h>
-#include <libm-alias-float.h>
-
-
-/* float [fp1] nearbyintf(float [fp1] x) */
-
- .section .rodata.cst4,"aM",@progbits,4
- .align 2
-.LC0:
- .long 0x4B000000 /* TWO23: 2**23 */
-
- .section ".text"
-ENTRY (__nearbyintf)
-#ifdef SHARED
- mflr r11
- cfi_register(lr,r11)
- bcl 20,31,1f
-1: mflr r9
- addis r9,r9,.LC0-1b@ha
- lfs fp13,.LC0-1b@l(r9)
- mtlr r11
- cfi_same_value (lr)
-#else
- lis r9,.LC0@ha
- lfs fp13,.LC0@l(r9)
-#endif
- fabs fp0,fp1
- fsub fp12,fp13,fp13 /* generate 0.0 */
- fcmpu cr7,fp0,fp13 /* if (fabs(x) > TWO23 */
- bge cr7,.L10
- fcmpu cr7,fp1,fp12 /* if (x > 0.0 */
- ble cr7,L(lessthanzero)
- mffs fp11
- mtfsb0 4*cr7+lt /* Disable FE_INEXACT exception */
- fadds fp1,fp1,fp13 /* x += TWO23 */
- fsubs fp1,fp1,fp13 /* x -= TWO23 */
- fabs fp1,fp1 /* if (x == 0.0) */
- mtfsf 0xff,fp11 /* Restore FE_INEXACT state. */
- blr
-L(lessthanzero):
- bgelr cr7
- mffs fp11
- mtfsb0 4*cr7+lt /* Disable FE_INEXACT exception */
- fsubs fp1,fp1,fp13 /* x -= TWO23 */
- fadds fp1,fp1,fp13 /* x += TWO23 */
- fnabs fp1,fp1 /* if (x == 0.0) */
- mtfsf 0xff,fp11 /* Restore FE_INEXACT state. */
- blr
-.L10:
- /* Ensure sNaN input is converted to qNaN. */
- fcmpu cr7,fp1,fp1
- beqlr cr7
- fadds fp1,fp1,fp1
- blr
-END (__nearbyintf)
-
-libm_alias_float (__nearbyint, nearbyint)
diff --git a/sysdeps/powerpc/powerpc32/fpu/s_rint.S b/sysdeps/powerpc/powerpc32/fpu/s_rint.S
deleted file mode 100644
index 7c7784adf9..0000000000
--- a/sysdeps/powerpc/powerpc32/fpu/s_rint.S
+++ /dev/null
@@ -1,69 +0,0 @@
-/* Round to int floating-point values. PowerPC32 version.
- Copyright (C) 2004-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-/* This has been coded in assembler because GCC makes such a mess of it
- when it's coded in C. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-#include <libm-alias-double.h>
-
- .section .rodata.cst4,"aM",@progbits,4
- .align 2
-.LC0: /* 2**52 */
- .long 0x59800000
-
- .section ".text"
-ENTRY (__rint)
-#ifdef SHARED
- mflr r11
- cfi_register(lr,r11)
- SETUP_GOT_ACCESS(r9,got_label)
- addis r9,r9,.LC0-got_label@ha
- lfs fp13,.LC0-got_label@l(r9)
- mtlr r11
- cfi_same_value (lr)
-#else
- lis r9,.LC0@ha
- lfs fp13,.LC0@l(r9)
-#endif
- fabs fp0,fp1
- fsub fp12,fp13,fp13 /* generate 0.0 */
- fcmpu cr7,fp0,fp13 /* if (fabs(x) > TWO52) */
- fcmpu cr6,fp1,fp12 /* if (x > 0.0) */
- bnl cr7,.L10
- bng cr6,.L4
- fadd fp1,fp1,fp13 /* x+= TWO52; */
- fsub fp1,fp1,fp13 /* x-= TWO52; */
- fabs fp1,fp1 /* if (x == 0.0) */
- blr /* x = 0.0; */
-.L4:
- bnllr cr6 /* if (x < 0.0) */
- fsub fp1,fp1,fp13 /* x-= TWO52; */
- fadd fp1,fp1,fp13 /* x+= TWO52; */
- fnabs fp1,fp1 /* if (x == 0.0) */
- blr /* x = -0.0; */
-.L10:
- /* Ensure sNaN input is converted to qNaN. */
- fcmpu cr7,fp1,fp1
- beqlr cr7
- fadd fp1,fp1,fp1
- blr
- END (__rint)
-
-libm_alias_double (__rint, rint)
diff --git a/sysdeps/powerpc/powerpc32/fpu/s_rintf.S b/sysdeps/powerpc/powerpc32/fpu/s_rintf.S
deleted file mode 100644
index 34e095399f..0000000000
--- a/sysdeps/powerpc/powerpc32/fpu/s_rintf.S
+++ /dev/null
@@ -1,66 +0,0 @@
-/* Round float to int floating-point values. PowerPC32 version.
- Copyright (C) 2004-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <libm-alias-float.h>
-
- .section .rodata.cst4,"aM",@progbits,4
- .align 2
-.LC0: /* 2**23 */
- .long 0x4b000000
-
- .section ".text"
-ENTRY (__rintf)
-#ifdef SHARED
- mflr r11
- cfi_register(lr,r11)
- SETUP_GOT_ACCESS(r9,got_label)
- addis r9,r9,.LC0-got_label@ha
- lfs fp13,.LC0-got_label@l(r9)
- mtlr r11
- cfi_same_value (lr)
-#else
- lis r9,.LC0@ha
- lfs fp13,.LC0@l(r9)
-#endif
- fabs fp0,fp1
- fsubs fp12,fp13,fp13 /* generate 0.0 */
- fcmpu cr7,fp0,fp13 /* if (fabs(x) > TWO23) */
- fcmpu cr6,fp1,fp12 /* if (x > 0.0) */
- bnl cr7,.L10
- bng cr6,.L4
- fadds fp1,fp1,fp13 /* x+= TWO23; */
- fsubs fp1,fp1,fp13 /* x-= TWO23; */
- fabs fp1,fp1 /* if (x == 0.0) */
- blr /* x = 0.0; */
-.L4:
- bnllr cr6 /* if (x < 0.0) */
- fsubs fp1,fp1,fp13 /* x-= TWO23; */
- fadds fp1,fp1,fp13 /* x+= TWO23; */
- fnabs fp1,fp1 /* if (x == 0.0) */
- blr /* x = -0.0; */
-.L10:
- /* Ensure sNaN input is converted to qNaN. */
- fcmpu cr7,fp1,fp1
- beqlr cr7
- fadds fp1,fp1,fp1
- blr
- END (__rintf)
-
-libm_alias_float (__rint, rint)
-
diff --git a/sysdeps/powerpc/powerpc32/fpu/s_round.S b/sysdeps/powerpc/powerpc32/fpu/s_round.S
deleted file mode 100644
index 6fb12ca2e9..0000000000
--- a/sysdeps/powerpc/powerpc32/fpu/s_round.S
+++ /dev/null
@@ -1,97 +0,0 @@
-/* round function. PowerPC32 version.
- Copyright (C) 2004-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-#include <libm-alias-double.h>
-
- .section .rodata.cst8,"aM",@progbits,8
- .align 2
-.LC0: /* 2**52 */
- .long 0x59800000
-.LC1: /* 0.5 */
- .long 0x3f000000
-
-/* double [fp1] round (double x [fp1])
- IEEE 1003.1 round function. IEEE specifies "round to the nearest
- integer value, rounding halfway cases away from zero, regardless of
- the current rounding mode." However PowerPC Architecture defines
- "Round to Nearest" as "Choose the best approximation. In case of a
- tie, choose the one that is even (least significant bit o).".
- So we can't use the PowerPC "Round to Nearest" mode. Instead we set
- "Round toward Zero" mode and round by adding +-0.5 before rounding
- to the integer value. */
-
- .section ".text"
-ENTRY (__round)
-#ifdef SHARED
- mflr r11
- cfi_register(lr,r11)
- SETUP_GOT_ACCESS(r9,got_label)
- addis r9,r9,.LC0-got_label@ha
- addi r9,r9,.LC0-got_label@l
- mtlr r11
- cfi_same_value (lr)
- lfs fp13,0(r9)
-#else
- lis r9,.LC0@ha
- lfs fp13,.LC0@l(r9)
-#endif
- fabs fp0,fp1
- fsub fp12,fp13,fp13 /* generate 0.0 */
- fcmpu cr7,fp0,fp13 /* if (fabs(x) > TWO52) */
- mffs fp11 /* Save current FPU rounding mode and
- "inexact" state. */
- fcmpu cr6,fp1,fp12 /* if (x > 0.0) */
- bnl- cr7,.L10
- mtfsfi 7,1 /* Set rounding mode toward 0. */
-#ifdef SHARED
- lfs fp10,.LC1-.LC0(r9)
-#else
- lis r9,.LC1@ha
- lfs fp10,.LC1@l(r9)
-#endif
- ble- cr6,.L4
- fadd fp1,fp1,fp10 /* x+= 0.5; */
- fadd fp1,fp1,fp13 /* x+= TWO52; */
- fsub fp1,fp1,fp13 /* x-= TWO52; */
- fabs fp1,fp1 /* if (x == 0.0) */
- /* x = 0.0; */
- mtfsf 0xff,fp11 /* Restore previous rounding mode and
- "inexact" state. */
- blr
-.L4:
- fsub fp9,fp1,fp10 /* x+= 0.5; */
- bge- cr6,.L9 /* if (x < 0.0) */
- fsub fp1,fp9,fp13 /* x-= TWO52; */
- fadd fp1,fp1,fp13 /* x+= TWO52; */
- fnabs fp1,fp1 /* if (x == 0.0) */
- /* x = -0.0; */
-.L9:
- mtfsf 0xff,fp11 /* Restore previous rounding mode and
- "inexact" state. */
- blr
-.L10:
- /* Ensure sNaN input is converted to qNaN. */
- fcmpu cr7,fp1,fp1
- beqlr cr7
- fadd fp1,fp1,fp1
- blr
- END (__round)
-
-libm_alias_double (__round, round)
diff --git a/sysdeps/powerpc/powerpc32/fpu/s_roundf.S b/sysdeps/powerpc/powerpc32/fpu/s_roundf.S
deleted file mode 100644
index 222c0dfc10..0000000000
--- a/sysdeps/powerpc/powerpc32/fpu/s_roundf.S
+++ /dev/null
@@ -1,96 +0,0 @@
-/* roundf function. PowerPC32 version.
- Copyright (C) 2004-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <libm-alias-float.h>
-
- .section .rodata.cst8,"aM",@progbits,8
- .align 3
-.LC0: /* 2**23 */
- .long 0x4b000000
-.LC1: /* 0.5 */
- .long 0x3f000000
-
-/* float [fp1] roundf (float x [fp1])
- IEEE 1003.1 round function. IEEE specifies "round to the nearest
- integer value, rounding halfway cases away from zero, regardless of
- the current rounding mode." However PowerPC Architecture defines
- "Round to Nearest" as "Choose the best approximation. In case of a
- tie, choose the one that is even (least significant bit o).".
- So we can't use the PowerPC "Round to Nearest" mode. Instead we set
- "Round toward Zero" mode and round by adding +-0.5 before rounding
- to the integer value. */
-
- .section ".text"
-ENTRY (__roundf )
-#ifdef SHARED
- mflr r11
- cfi_register(lr,r11)
- SETUP_GOT_ACCESS(r9,got_label)
- addis r9,r9,.LC0-got_label@ha
- addi r9,r9,.LC0-got_label@l
- mtlr r11
- cfi_same_value (lr)
- lfs fp13,0(r9)
-#else
- lis r9,.LC0@ha
- lfs fp13,.LC0@l(r9)
-#endif
- fabs fp0,fp1
- fsubs fp12,fp13,fp13 /* generate 0.0 */
- fcmpu cr7,fp0,fp13 /* if (fabs(x) > TWO23) */
- mffs fp11 /* Save current FPU rounding mode and
- "inexact" state. */
- fcmpu cr6,fp1,fp12 /* if (x > 0.0) */
- bnl- cr7,.L10
- mtfsfi 7,1 /* Set rounding mode toward 0. */
-#ifdef SHARED
- lfs fp10,.LC1-.LC0(r9)
-#else
- lfs fp10,.LC1@l(r9)
-#endif
- ble- cr6,.L4
- fadds fp1,fp1,fp10 /* x+= 0.5; */
- fadds fp1,fp1,fp13 /* x+= TWO23; */
- fsubs fp1,fp1,fp13 /* x-= TWO23; */
- fabs fp1,fp1 /* if (x == 0.0) */
- /* x = 0.0; */
- mtfsf 0xff,fp11 /* Restore previous rounding mode and
- "inexact" state. */
- blr
-.L4:
- fsubs fp9,fp1,fp10 /* x+= 0.5; */
- bge- cr6,.L9 /* if (x < 0.0) */
- fsubs fp1,fp9,fp13 /* x-= TWO23; */
- fadds fp1,fp1,fp13 /* x+= TWO23; */
- fnabs fp1,fp1 /* if (x == 0.0) */
- /* x = -0.0; */
-.L9:
- mtfsf 0xff,fp11 /* Restore previous rounding mode and
- "inexact" state. */
- blr
-.L10:
- /* Ensure sNaN input is converted to qNaN. */
- fcmpu cr7,fp1,fp1
- beqlr cr7
- fadds fp1,fp1,fp1
- blr
- END (__roundf)
-
-libm_alias_float (__round, round)
-
diff --git a/sysdeps/powerpc/powerpc32/fpu/s_trunc.S b/sysdeps/powerpc/powerpc32/fpu/s_trunc.S
deleted file mode 100644
index ff39a13d68..0000000000
--- a/sysdeps/powerpc/powerpc32/fpu/s_trunc.S
+++ /dev/null
@@ -1,83 +0,0 @@
-/* trunc function. PowerPC32 version.
- Copyright (C) 2004-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-#include <libm-alias-double.h>
-
- .section .rodata.cst4,"aM",@progbits,4
- .align 2
-.LC0: /* 2**52 */
- .long 0x59800000
-
-/* double [fp1] trunc (double x [fp1])
- IEEE 1003.1 trunc function. IEEE specifies "trunc to the integer
- value, in floating format, nearest to but no larger in magnitude
- then the argument."
- We set "round toward Zero" mode and trunc by adding +-2**52 then
- subtracting +-2**52. */
-
- .section ".text"
-ENTRY (__trunc)
-#ifdef SHARED
- mflr r11
- cfi_register(lr,r11)
- SETUP_GOT_ACCESS(r9,got_label)
- addis r9,r9,.LC0-got_label@ha
- lfs fp13,.LC0-got_label@l(r9)
- mtlr r11
- cfi_same_value (lr)
-#else
- lis r9,.LC0@ha
- lfs fp13,.LC0@l(r9)
-#endif
- fabs fp0,fp1
- fsub fp12,fp13,fp13 /* generate 0.0 */
- fcmpu cr7,fp0,fp13 /* if (fabs(x) > TWO52) */
- mffs fp11 /* Save current FPU rounding mode and
- "inexact" state. */
- fcmpu cr6,fp1,fp12 /* if (x > 0.0) */
- bnl- cr7,.L10
- mtfsfi 7,1 /* Set rounding toward 0 mode. */
- ble- cr6,.L4
- fadd fp1,fp1,fp13 /* x+= TWO52; */
- fsub fp1,fp1,fp13 /* x-= TWO52; */
- fabs fp1,fp1 /* if (x == 0.0) */
- /* x = 0.0; */
- mtfsf 0xff,fp11 /* Restore previous rounding mode and
- "inexact" state. */
- blr
-.L4:
- bge- cr6,.L9 /* if (x < 0.0) */
- fsub fp1,fp1,fp13 /* x-= TWO52; */
- fadd fp1,fp1,fp13 /* x+= TWO52; */
- fnabs fp1,fp1 /* if (x == 0.0) */
- /* x = -0.0; */
-.L9:
- mtfsf 0xff,fp11 /* Restore previous rounding mode and
- "inexact" state. */
- blr
-.L10:
- /* Ensure sNaN input is converted to qNaN. */
- fcmpu cr7,fp1,fp1
- beqlr cr7
- fadd fp1,fp1,fp1
- blr
- END (__trunc)
-
-libm_alias_double (__trunc, trunc)
diff --git a/sysdeps/powerpc/powerpc32/fpu/s_truncf.S b/sysdeps/powerpc/powerpc32/fpu/s_truncf.S
deleted file mode 100644
index 52e97f83f9..0000000000
--- a/sysdeps/powerpc/powerpc32/fpu/s_truncf.S
+++ /dev/null
@@ -1,83 +0,0 @@
-/* truncf function. PowerPC32 version.
- Copyright (C) 2004-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <libm-alias-float.h>
-
- .section .rodata.cst4,"aM",@progbits,4
- .align 2
-.LC0: /* 2**23 */
- .long 0x4b000000
-
-/* float [fp1] truncf (float x [fp1])
- IEEE 1003.1 trunc function. IEEE specifies "trunc to the integer
- value, in floating format, nearest to but no larger in magnitude
- then the argument."
- We set "round toward Zero" mode and trunc by adding +-2**23 then
- subtracting +-2**23. */
-
- .section ".text"
-ENTRY (__truncf)
-#ifdef SHARED
- mflr r11
- cfi_register(lr,r11)
- SETUP_GOT_ACCESS(r9,got_label)
- addis r9,r9,.LC0-got_label@ha
- lfs fp13,.LC0-got_label@l(r9)
- mtlr r11
- cfi_same_value (lr)
-#else
- lis r9,.LC0@ha
- lfs fp13,.LC0@l(r9)
-#endif
- fabs fp0,fp1
- fsubs fp12,fp13,fp13 /* generate 0.0 */
- fcmpu cr7,fp0,fp13 /* if (fabs(x) > TWO23) */
- mffs fp11 /* Save current FPU rounding mode and
- "inexact" state. */
- fcmpu cr6,fp1,fp12 /* if (x > 0.0) */
- bnl- cr7,.L10
- mtfsfi 7,1 /* Set rounding toward 0 mode. */
- ble- cr6,.L4
- fadds fp1,fp1,fp13 /* x+= TWO23; */
- fsubs fp1,fp1,fp13 /* x-= TWO23; */
- fabs fp1,fp1 /* if (x == 0.0) */
- /* x = 0.0; */
- mtfsf 0xff,fp11 /* Restore previous rounding mode and
- "inexact" state. */
- blr
-.L4:
- bge- cr6,.L9 /* if (x < 0.0) */
- fsubs fp1,fp1,fp13 /* x-= TWO23; */
- fadds fp1,fp1,fp13 /* x+= TWO23; */
- fnabs fp1,fp1 /* if (x == 0.0) */
- /* x = -0.0; */
-.L9:
- mtfsf 0xff,fp11 /* Restore previous rounding mode and
- "inexact" state. */
- blr
-.L10:
- /* Ensure sNaN input is converted to qNaN. */
- fcmpu cr7,fp1,fp1
- beqlr cr7
- fadds fp1,fp1,fp1
- blr
- END (__truncf)
-
-libm_alias_float (__trunc, trunc)
-
diff --git a/sysdeps/powerpc/powerpc32/fpu/setjmp-common.S b/sysdeps/powerpc/powerpc32/fpu/setjmp-common.S
index e2d781ed78..a9de99e5b7 100644
--- a/sysdeps/powerpc/powerpc32/fpu/setjmp-common.S
+++ b/sysdeps/powerpc/powerpc32/fpu/setjmp-common.S
@@ -1,5 +1,5 @@
/* setjmp for PowerPC.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <stap-probe.h>
diff --git a/sysdeps/powerpc/powerpc32/fpu/setjmp.S b/sysdeps/powerpc/powerpc32/fpu/setjmp.S
index 36eb839a97..6e5274be16 100644
--- a/sysdeps/powerpc/powerpc32/fpu/setjmp.S
+++ b/sysdeps/powerpc/powerpc32/fpu/setjmp.S
@@ -1,5 +1,5 @@
/* non altivec (old) version of setjmp for PowerPC.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libc-symbols.h>
#include <rtld-global-offsets.h>
diff --git a/sysdeps/powerpc/powerpc32/gprrest0.S b/sysdeps/powerpc/powerpc32/gprrest0.S
index 8186157a50..36cfbc2965 100644
--- a/sysdeps/powerpc/powerpc32/gprrest0.S
+++ b/sysdeps/powerpc/powerpc32/gprrest0.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
General Purpose Register (GPR) restore routine
diff --git a/sysdeps/powerpc/powerpc32/gprrest1.S b/sysdeps/powerpc/powerpc32/gprrest1.S
index f28575d941..17e27d1f13 100644
--- a/sysdeps/powerpc/powerpc32/gprrest1.S
+++ b/sysdeps/powerpc/powerpc32/gprrest1.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
General Purpose Register (GPR) restore routine
diff --git a/sysdeps/powerpc/powerpc32/gprsave0.S b/sysdeps/powerpc/powerpc32/gprsave0.S
index bdbed4b844..525ed108b5 100644
--- a/sysdeps/powerpc/powerpc32/gprsave0.S
+++ b/sysdeps/powerpc/powerpc32/gprsave0.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
General Purpose Register (GPR) save routine
diff --git a/sysdeps/powerpc/powerpc32/gprsave1.S b/sysdeps/powerpc/powerpc32/gprsave1.S
index e75829284b..d633c152cb 100644
--- a/sysdeps/powerpc/powerpc32/gprsave1.S
+++ b/sysdeps/powerpc/powerpc32/gprsave1.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
General Purpose Register (GPR) save routine
diff --git a/sysdeps/powerpc/powerpc32/libgcc-compat.S b/sysdeps/powerpc/powerpc32/libgcc-compat.S
index 0412d78ede..b5f25f701c 100644
--- a/sysdeps/powerpc/powerpc32/libgcc-compat.S
+++ b/sysdeps/powerpc/powerpc32/libgcc-compat.S
@@ -1,5 +1,5 @@
/* pre-.hidden libgcc compatibility
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
.file "libgcc-compat.S"
diff --git a/sysdeps/powerpc/powerpc32/lshift.S b/sysdeps/powerpc/powerpc32/lshift.S
index 78e0ed40f5..c371e13769 100644
--- a/sysdeps/powerpc/powerpc32/lshift.S
+++ b/sysdeps/powerpc/powerpc32/lshift.S
@@ -1,5 +1,5 @@
/* Shift a limb left, low level routine.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/memset.S b/sysdeps/powerpc/powerpc32/memset.S
index 94686f9573..fc8b1a2547 100644
--- a/sysdeps/powerpc/powerpc32/memset.S
+++ b/sysdeps/powerpc/powerpc32/memset.S
@@ -1,5 +1,5 @@
/* Optimized memset implementation for PowerPC.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/mul_1.S b/sysdeps/powerpc/powerpc32/mul_1.S
index 5536e47b41..8ad9927b8a 100644
--- a/sysdeps/powerpc/powerpc32/mul_1.S
+++ b/sysdeps/powerpc/powerpc32/mul_1.S
@@ -1,5 +1,5 @@
/* Multiply a limb vector by a limb, for PowerPC.
- Copyright (C) 1993-2018 Free Software Foundation, Inc.
+ Copyright (C) 1993-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/Makefile b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/Makefile
index 4e85021d50..60f2c95532 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/Makefile
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/Makefile
@@ -1,24 +1,16 @@
ifeq ($(subdir),math)
-sysdep_routines += s_isnan-power7 s_isnan-power6 s_isnan-power5 s_isnan-ppc32 \
- s_isnanf-power6 s_isnanf-power5 s_isinf-power7 \
- s_isinf-ppc32 s_isinff-ppc32 s_finite-power7 \
- s_finite-ppc32 s_finitef-ppc32 s_copysign-power6 \
- s_copysign-ppc32 s_modf-power5+ s_modf-ppc32 \
+sysdep_routines += s_modf-power5+ s_modf-ppc32 \
s_modff-power5+ s_modff-ppc32
libm-sysdep_routines += s_llrintf-power6 s_llrintf-ppc32 s_llrint-power6 \
s_llrint-ppc32 s_llround-power6 s_llround-power5+ \
- s_llround-ppc32 s_isnan-power7 \
- s_isnan-power6 s_isnan-power5 s_isnan-ppc32 \
- s_isnanf-power6 s_isnanf-power5 s_isinf-power7 \
- s_isinf-ppc32 s_isinff-ppc32 s_finite-power7 \
- s_finite-ppc32 s_finitef-ppc32 s_ceil-power5+ \
+ s_llround-ppc32 s_ceil-power5+ \
s_ceil-ppc32 s_ceilf-power5+ s_ceilf-ppc32 \
s_floor-power5+ s_floor-ppc32 s_floorf-power5+ \
s_floorf-ppc32 s_round-power5+ s_round-ppc32 \
s_roundf-power5+ s_roundf-ppc32 s_trunc-power5+ \
s_trunc-ppc32 s_truncf-power5+ s_truncf-ppc32 \
- s_copysign-power6 s_copysign-ppc32 s_lround-power6x \
+ s_lround-power6x \
s_lround-power5+ s_lround-ppc32 s_lrint-power6x \
s_lrint-ppc32 s_modf-power5+ s_modf-ppc32 \
s_modff-power5+ s_modff-ppc32 s_logbl-power7 \
@@ -26,6 +18,18 @@ libm-sysdep_routines += s_llrintf-power6 s_llrintf-ppc32 s_llrint-power6 \
s_logbf-power7 s_logbf-ppc32 e_hypot-power7 \
e_hypot-ppc32 e_hypotf-power7 e_hypotf-ppc32
+CFLAGS-s_llrintf-power6.c += -mcpu=power6
+CFLAGS-s_llrintf-ppc32.c += -mcpu=power4
+CFLAGS-s_llrint-power6.c += -mcpu=power6
+CFLAGS-s_llrint-ppc32.c += -mcpu=power4
+CFLAGS-s_lrint-ppc32.c += -mcpu=power4
+CFLAGS-s_llround-power6.c += -mcpu=power6
+CFLAGS-s_llround-power5+.c += -mcpu=power5+
+CFLAGS-s_llround-ppc32.c += -mcpu=power4
+CFLAGS-s_lround-ppc32.c += -mcpu=power4
+CFLAGS-s_lround-power5+.c += -mcpu=power5+
+CFLAGS-s_ceil-power5+.c = -mcpu=power5+
+CFLAGS-s_ceilf-power5+.c = -mcpu=power5+
CFLAGS-s_modf-power5+.c = -mcpu=power5+
CFLAGS-s_modff-power5+.c = -mcpu=power5+
CFLAGS-s_logbl-power7.c = -mcpu=power7
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypot-power7.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypot-power7.c
index b1200260a9..084b50e279 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypot-power7.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypot-power7.c
@@ -1,5 +1,5 @@
/* __ieee_hypot() POWER7 version.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypot-ppc32.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypot-ppc32.c
index e2b98fdb55..d56c10b430 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypot-ppc32.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypot-ppc32.c
@@ -1,5 +1,5 @@
/* __ieee_hypot() PowerPC32 version.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypot.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypot.c
index b05414f225..91e76bab34 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypot.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypot.c
@@ -1,5 +1,5 @@
/* Multiple versions of ieee754_hypot.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypotf-power7.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypotf-power7.c
index 2eacefd617..02ba1b60a0 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypotf-power7.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypotf-power7.c
@@ -1,5 +1,5 @@
/* __ieee754_hypot POWER7 version.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypotf-ppc32.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypotf-ppc32.c
index 353d0b7d29..b482ae7e25 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypotf-ppc32.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypotf-ppc32.c
@@ -1,5 +1,5 @@
/* __ieee_hypot() PowerPC32 version.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypotf.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypotf.c
index d432cd0023..5c6af03ef2 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypotf.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypotf.c
@@ -1,5 +1,5 @@
/* Multiple versions of ieee754_hypotf.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil-power5+.S b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil-power5+.S
deleted file mode 100644
index b8181585a8..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil-power5+.S
+++ /dev/null
@@ -1,33 +0,0 @@
-/* ceil function. PowerPC32/power5+ version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-#undef hidden_def
-#define hidden_def(name)
-#undef weak_alias
-#define weak_alias(name, alias)
-#undef strong_alias
-#define strong_alias(name, alias)
-#undef compat_symbol
-#define compat_symbol(lib, name, alias, ver)
-
-#define __ceil __ceil_power5plus
-
-#include <sysdeps/powerpc/powerpc32/power5+/fpu/s_ceil.S>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil-power5+.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil-power5+.c
new file mode 100644
index 0000000000..87bc66cdb0
--- /dev/null
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil-power5+.c
@@ -0,0 +1,3 @@
+#include <math.h>
+#define __ceil __ceil_power5plus
+#include <sysdeps/powerpc/fpu/s_ceil.c>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil-ppc32.S b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil-ppc32.S
deleted file mode 100644
index cd2bc69b67..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil-ppc32.S
+++ /dev/null
@@ -1,31 +0,0 @@
-/* ceil function. PowerPC32 default version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-#undef weak_alias
-#define weak_alias(a,b)
-#undef strong_alias
-#define strong_alias(a,b)
-#undef compat_symbol
-#define compat_symbol(a,b,c,d)
-
-#define __ceil __ceil_ppc32
-
-#include <sysdeps/powerpc/powerpc32/fpu/s_ceil.S>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil-ppc32.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil-ppc32.c
new file mode 100644
index 0000000000..93c098476b
--- /dev/null
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil-ppc32.c
@@ -0,0 +1,3 @@
+#include <math.h>
+#define __ceil __ceil_ppc32
+#include <sysdeps/powerpc/fpu/s_ceil.c>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil.c
index 5f3c0713fb..134c33d738 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil.c
@@ -1,5 +1,5 @@
/* Multiple versions of ceil.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,8 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
#include <math_ldbl_opt.h>
#include <shlib-compat.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceilf-power5+.S b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceilf-power5+.S
deleted file mode 100644
index d01aa6e7db..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceilf-power5+.S
+++ /dev/null
@@ -1,26 +0,0 @@
-/* ceilf function. PowerPC32/power5+ version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-
-#undef weak_alias
-#define weak_alias(name, alias)
-
-#define __ceilf __ceilf_power5plus
-
-#include <sysdeps/powerpc/powerpc32/power5+/fpu/s_ceilf.S>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceilf-power5+.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceilf-power5+.c
new file mode 100644
index 0000000000..a5bfa98535
--- /dev/null
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceilf-power5+.c
@@ -0,0 +1,3 @@
+#include <math.h>
+#define __ceilf __ceilf_power5plus
+#include <sysdeps/powerpc/fpu/s_ceilf.c>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceilf-ppc32.S b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceilf-ppc32.S
deleted file mode 100644
index 264e032b3b..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceilf-ppc32.S
+++ /dev/null
@@ -1,27 +0,0 @@
-/* ceilf function. PowerPC32 default version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-#undef weak_alias
-#define weak_alias(a,b)
-
-#define __ceilf __ceilf_ppc32
-
-#include <sysdeps/powerpc/powerpc32/fpu/s_ceilf.S>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceilf-ppc32.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceilf-ppc32.c
new file mode 100644
index 0000000000..a4dcdcb406
--- /dev/null
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceilf-ppc32.c
@@ -0,0 +1,3 @@
+#include <math.h>
+#define __ceilf __ceilf_ppc32
+#include <sysdeps/powerpc/fpu/s_ceilf.c>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceilf.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceilf.c
index 1f10ed6585..6f2624f485 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceilf.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceilf.c
@@ -1,5 +1,5 @@
/* Multiple versions of ceilf.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,8 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
#include <math_ldbl_opt.h>
#include <shlib-compat.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysign-power6.S b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysign-power6.S
deleted file mode 100644
index dce94759da..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysign-power6.S
+++ /dev/null
@@ -1,33 +0,0 @@
-/* copysign(). PowerPC32/POWER6 version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-#undef hidden_def
-#define hidden_def(name)
-#undef weak_alias
-#define weak_alias(name, alias)
-#undef strong_alias
-#define strong_alias(name, alias)
-#undef compat_symbol
-#define compat_symbol(lib, name, alias, ver)
-
-#define __copysign __copysign_power6
-
-#include <sysdeps/powerpc/powerpc32/power6/fpu/s_copysign.S>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysign-ppc32.S b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysign-ppc32.S
deleted file mode 100644
index 8e576f2dc4..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysign-ppc32.S
+++ /dev/null
@@ -1,34 +0,0 @@
-/* copysign(). PowerPC32 default version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-#undef weak_alias
-#define weak_alias(a,b)
-#undef strong_alias
-#define strong_alias(a,b)
-#undef compat_symbol
-#define compat_symbol(a, b, c, d)
-
-#define __copysign __copysign_ppc32
-#undef hidden_def
-#define hidden_def(name)
- strong_alias (__copysign_ppc32, __GI___copysign)
-
-#include <sysdeps/powerpc/powerpc32/fpu/s_copysign.S>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysign.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysign.c
deleted file mode 100644
index 86df7d6bc2..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysign.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/* Multiple versions of copysign.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-/* Redefine copysign so that the compiler won't complain about the type
- mismatch with the IFUNC selector in strong_alias below. */
-#undef __copysign
-#define __copysign __redirect_copysign
-#include <math.h>
-#include <math_ldbl_opt.h>
-#undef __copysign
-#include <shlib-compat.h>
-#include "init-arch.h"
-#include <libm-alias-double.h>
-
-extern __typeof (__redirect_copysign) __copysign_ppc32 attribute_hidden;
-extern __typeof (__redirect_copysign) __copysign_power6 attribute_hidden;
-
-extern __typeof (__redirect_copysign) __libm_copysign;
-libc_ifunc (__libm_copysign,
- (hwcap & PPC_FEATURE_ARCH_2_05)
- ? __copysign_power6
- : __copysign_ppc32);
-
-strong_alias (__libm_copysign, __copysign)
-libm_alias_double (__copysign, copysign)
-
-#if LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)
-compat_symbol (libc, __copysign, copysignl, GLIBC_2_0);
-#endif
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysignf.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysignf.c
deleted file mode 100644
index d2900b3287..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysignf.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Multiple versions of copysignf.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-#include <shlib-compat.h>
-#include "init-arch.h"
-#include <libm-alias-float.h>
-
-/* It's safe to use double-precision implementation for single-precision. */
-extern __typeof (__copysignf) __copysign_ppc32 attribute_hidden;
-extern __typeof (__copysignf) __copysign_power6 attribute_hidden;
-
-libc_ifunc (__copysignf,
- (hwcap & PPC_FEATURE_ARCH_2_05)
- ? __copysign_power6
- : __copysign_ppc32);
-
-libm_alias_float (__copysign, copysign)
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_finite-power7.S b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_finite-power7.S
deleted file mode 100644
index 034fec7d1c..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_finite-power7.S
+++ /dev/null
@@ -1,33 +0,0 @@
-/* finite(). PowerPC32/POWER7 version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-#undef hidden_def
-#define hidden_def(name)
-#undef weak_alias
-#define weak_alias(name, alias)
-#undef strong_alias
-#define strong_alias(name, alias)
-#undef compat_symbol
-#define compat_symbol(lib, name, alias, ver)
-
-#define __finite __finite_power7
-
-#include <sysdeps/powerpc/powerpc32/power7/fpu/s_finite.S>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_finite-ppc32.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_finite-ppc32.c
deleted file mode 100644
index 74498c2714..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_finite-ppc32.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* finite(). PowerPC32 default version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-
-#undef weak_alias
-#define weak_alias(a, b)
-#undef strong_alias
-#define strong_alias(a, b)
-
-#define FINITE __finite_ppc32
-#ifdef SHARED
-# undef hidden_def
-# define hidden_def(a) \
- __hidden_ver1 (__finite_ppc32, __GI___finite, __finite_ppc32);
-#endif
-
-#include <sysdeps/ieee754/dbl-64/s_finite.c>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_finite.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_finite.c
deleted file mode 100644
index 9ef6d109a6..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_finite.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/* Multiple versions of finite.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#define __finite __redirect___finite
-#define __finitef __redirect___finitef
-#define __finitel __redirect___finitel
-#include <math.h>
-#include <math_ldbl_opt.h>
-#include <shlib-compat.h>
-#include "init-arch.h"
-
-extern __typeof (__finite) __finite_ppc32 attribute_hidden;
-extern __typeof (__finite) __finite_power7 attribute_hidden;
-#undef __finite
-#undef __finitef
-#undef __finitel
-
-libc_ifunc_redirected (__redirect___finite, __finite,
- (hwcap & PPC_FEATURE_ARCH_2_06)
- ? __finite_power7
- : __finite_ppc32);
-
-weak_alias (__finite, finite)
-
-#ifdef NO_LONG_DOUBLE
-strong_alias (__finite, __finitel)
-weak_alias (__finite, finitel)
-#endif
-
-#if IS_IN (libm)
-# if LONG_DOUBLE_COMPAT (libm, GLIBC_2_0)
-compat_symbol (libm, finite, finitel, GLIBC_2_0);
-# endif
-# if LONG_DOUBLE_COMPAT (libm, GLIBC_2_1)
-compat_symbol (libm, __finite, __finitel, GLIBC_2_1);
-# endif
-#else
-# if LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)
-compat_symbol (libc, __finite, __finitel, GLIBC_2_0);
-compat_symbol (libc, finite, finitel, GLIBC_2_0);
-# endif
-#endif
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_finitef-ppc32.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_finitef-ppc32.c
deleted file mode 100644
index 681cb3fb25..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_finitef-ppc32.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* finitef(). PowerPC32 default version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-
-#undef weak_alias
-#define weak_alias(a, b)
-
-#define FINITEF __finitef_ppc32
-#ifdef SHARED
-# undef hidden_def
-# define hidden_def(a) \
- __hidden_ver1 (__finitef_ppc32, __GI___finitef, __finitef_ppc32);
-#endif
-
-#include <sysdeps/ieee754/flt-32/s_finitef.c>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_finitef.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_finitef.c
deleted file mode 100644
index b512ba6c64..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_finitef.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Multiple versions of finitef.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#define __finitef __redirect___finitef
-#include <math.h>
-#include <shlib-compat.h>
-#include "init-arch.h"
-
-extern __typeof (__finitef) __finitef_ppc32 attribute_hidden;
-/* The power7 finite(double) works for float. */
-extern __typeof (__finitef) __finite_power7 attribute_hidden;
-#undef __finitef
-
-libc_ifunc_redirected (__redirect___finitef, __finitef,
- (hwcap & PPC_FEATURE_ARCH_2_06)
- ? __finite_power7
- : __finitef_ppc32);
-
-weak_alias (__finitef, finitef)
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floor-power5+.S b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floor-power5+.S
deleted file mode 100644
index 709a1910e9..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floor-power5+.S
+++ /dev/null
@@ -1,33 +0,0 @@
-/* floor function. PowerPC32/power5+ version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-#undef hidden_def
-#define hidden_def(name)
-#undef weak_alias
-#define weak_alias(name, alias)
-#undef strong_alias
-#define strong_alias(name, alias)
-#undef compat_symbol
-#define compat_symbol(lib, name, alias, ver)
-
-#define __floor __floor_power5plus
-
-#include <sysdeps/powerpc/powerpc32/power5+/fpu/s_floor.S>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floor-power5+.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floor-power5+.c
new file mode 100644
index 0000000000..d3c2f52e57
--- /dev/null
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floor-power5+.c
@@ -0,0 +1,3 @@
+#include <math.h>
+#define __floor __floor_power5plus
+#include <sysdeps/powerpc/fpu/s_floor.c>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floor-ppc32.S b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floor-ppc32.S
deleted file mode 100644
index bf4110cde6..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floor-ppc32.S
+++ /dev/null
@@ -1,31 +0,0 @@
-/* floor function. PowerPC32 default version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-#undef weak_alias
-#define weak_alias(a,b)
-#undef strong_alias
-#define strong_alias(a,b)
-#undef compat_symbol
-#define compat_symbol(a,b,c,d)
-
-#define __floor __floor_ppc32
-
-#include <sysdeps/powerpc/powerpc32/fpu/s_floor.S>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floor-ppc32.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floor-ppc32.c
new file mode 100644
index 0000000000..9decd0faf8
--- /dev/null
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floor-ppc32.c
@@ -0,0 +1,3 @@
+#include <math.h>
+#define __floor __floor_ppc32
+#include <sysdeps/powerpc/fpu/s_floor.c>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floor.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floor.c
index 0152ea606e..6079fc617a 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floor.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floor.c
@@ -1,5 +1,5 @@
/* Multiple versions of floor.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,8 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
#include <math_ldbl_opt.h>
#include <shlib-compat.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floorf-power5+.S b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floorf-power5+.S
deleted file mode 100644
index 1a6b089060..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floorf-power5+.S
+++ /dev/null
@@ -1,26 +0,0 @@
-/* floorf function. PowerPC32/power5+ version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-
-#undef weak_alias
-#define weak_alias(name, alias)
-
-#define __floorf __floorf_power5plus
-
-#include <sysdeps/powerpc/powerpc32/power5+/fpu/s_floorf.S>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floorf-power5+.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floorf-power5+.c
new file mode 100644
index 0000000000..ecc409580b
--- /dev/null
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floorf-power5+.c
@@ -0,0 +1,3 @@
+#include <math.h>
+#define __floorf __floorf_power5plus
+#include <sysdeps/powerpc/fpu/s_floorf.c>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floorf-ppc32.S b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floorf-ppc32.S
deleted file mode 100644
index c1be69e0df..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floorf-ppc32.S
+++ /dev/null
@@ -1,27 +0,0 @@
-/* floorf function. PowerPC32 default version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-#undef weak_alias
-#define weak_alias(a,b)
-
-#define __floorf __floorf_ppc32
-
-#include <sysdeps/powerpc/powerpc32/fpu/s_floorf.S>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floorf-ppc32.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floorf-ppc32.c
new file mode 100644
index 0000000000..ba1d8f4d55
--- /dev/null
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floorf-ppc32.c
@@ -0,0 +1,3 @@
+#include <math.h>
+#define __floorf __floorf_ppc32
+#include <sysdeps/powerpc/fpu/s_floorf.c>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floorf.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floorf.c
index 57ae50c9f6..d2617bfb92 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floorf.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floorf.c
@@ -1,5 +1,5 @@
/* Multiple versions of floorf.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,8 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
#include <math_ldbl_opt.h>
#include <shlib-compat.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isinf-power7.S b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isinf-power7.S
deleted file mode 100644
index 3748019890..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isinf-power7.S
+++ /dev/null
@@ -1,33 +0,0 @@
-/* isinf(). PowerPC32/POWER7 version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-#undef hidden_def
-#define hidden_def(name)
-#undef weak_alias
-#define weak_alias(name, alias)
-#undef strong_alias
-#define strong_alias(name, alias)
-#undef compat_symbol
-#define compat_symbol(lib, name, alias, ver)
-
-#define __isinf __isinf_power7
-
-#include <sysdeps/powerpc/powerpc32/power7/fpu/s_isinf.S>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isinf-ppc32.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isinf-ppc32.c
deleted file mode 100644
index 633fe9485d..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isinf-ppc32.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* isinf(). PowerPC32 default version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-
-#undef weak_alias
-#define weak_alias(a, b)
-#undef strong_alias
-#define strong_alias(a, b)
-
-#define __isinf __isinf_ppc32
-#ifdef SHARED
-# undef hidden_def
-# define hidden_def(a) \
- __hidden_ver1 (__isinf_ppc32, __GI___isinf, __isinf_ppc32);
-#endif
-
-#include <sysdeps/ieee754/dbl-64/s_isinf.c>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isinf.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isinf.c
deleted file mode 100644
index 764d511c2a..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isinf.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Multiple versions of isinf.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#define __isinf __redirect___isinf
-#define __isinff __redirect___isinff
-#define __isinfl __redirect___isinfl
-#include <math.h>
-#include <math_ldbl_opt.h>
-#include <shlib-compat.h>
-#include "init-arch.h"
-
-extern __typeof (__isinf) __isinf_ppc32 attribute_hidden;
-extern __typeof (__isinf) __isinf_power7 attribute_hidden;
-#undef __isinf
-#undef __isinff
-#undef __isinfl
-
-libc_ifunc_redirected (__redirect___isinf, __isinf,
- (hwcap & PPC_FEATURE_ARCH_2_06)
- ? __isinf_power7
- : __isinf_ppc32);
-
-weak_alias (__isinf, isinf)
-
-#ifdef NO_LONG_DOUBLE
-strong_alias (__isinf, __isinfl)
-weak_alias (__isinf, isinfl)
-#endif
-
-#if !IS_IN (libm)
-# if LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)
-compat_symbol (libc, __isinf, __isinfl, GLIBC_2_0);
-compat_symbol (libc, isinf, isinfl, GLIBC_2_0);
-# endif
-#endif
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isinff-ppc32.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isinff-ppc32.c
deleted file mode 100644
index 8d1801abf1..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isinff-ppc32.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* isinff(). PowerPC32 default version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-
-#undef weak_alias
-#define weak_alias(a, b)
-
-#define __isinff __isinff_ppc32
-#ifdef SHARED
-# undef hidden_def
-# define hidden_def(a) \
- __hidden_ver1 (__isinff_ppc32, __GI___isinff, __isinff_ppc32);
-#endif
-
-#include <sysdeps/ieee754/flt-32/s_isinff.c>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isinff.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isinff.c
deleted file mode 100644
index 949c052788..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isinff.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Multiple versions of isinf.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#define __isinff __redirect___isinff
-#include <math.h>
-#include <math_ldbl_opt.h>
-#include <shlib-compat.h>
-#include "init-arch.h"
-
-extern __typeof (__isinff) __isinff_ppc32 attribute_hidden;
-/* The power7 isinf(double) works for float. */
-extern __typeof (__isinff) __isinf_power7 attribute_hidden;
-#undef __isinff
-
-libc_ifunc_redirected (__redirect___isinff, __isinff,
- (hwcap & PPC_FEATURE_ARCH_2_06)
- ? __isinf_power7
- : __isinff_ppc32);
-
-weak_alias (__isinff, isinff)
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnan-power5.S b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnan-power5.S
deleted file mode 100644
index de55f5ae27..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnan-power5.S
+++ /dev/null
@@ -1,33 +0,0 @@
-/* isnan(). PowerPC32/POWER5 version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-#undef hidden_def
-#define hidden_def(name)
-#undef weak_alias
-#define weak_alias(name, alias)
-#undef strong_alias
-#define strong_alias(name, alias)
-#undef compat_symbol
-#define compat_symbol(lib, name, symbol, ver)
-
-#define __isnan __isnan_power5
-
-#include <sysdeps/powerpc/powerpc32/power5/fpu/s_isnan.S>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnan-power6.S b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnan-power6.S
deleted file mode 100644
index f9008a2571..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnan-power6.S
+++ /dev/null
@@ -1,33 +0,0 @@
-/* isnan(). PowerPC32/POWER6 version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-#undef hidden_def
-#define hidden_def(name)
-#undef weak_alias
-#define weak_alias(name, alias)
-#undef strong_alias
-#define strong_alias(name, alias)
-#undef compat_symbol
-#define compat_symbol(lib, name, symbol, ver)
-
-#define __isnan __isnan_power6
-
-#include <sysdeps/powerpc/powerpc32/power6/fpu/s_isnan.S>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnan-power7.S b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnan-power7.S
deleted file mode 100644
index 08fe361ffe..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnan-power7.S
+++ /dev/null
@@ -1,33 +0,0 @@
-/* isnan(). PowerPC32/POWER7 version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-#undef hidden_def
-#define hidden_def(name)
-#undef weak_alias
-#define weak_alias(name, alias)
-#undef strong_alias
-#define strong_alias(name, alias)
-#undef compat_symbol
-#define compat_symbol(lib, name, symbol, ver)
-
-#define __isnan __isnan_power7
-
-#include <sysdeps/powerpc/powerpc32/power7/fpu/s_isnan.S>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnan-ppc32.S b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnan-ppc32.S
deleted file mode 100644
index 293174f80b..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnan-ppc32.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* isnan(). PowerPC32 default version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-#undef weak_alias
-#define weak_alias(a, b)
-#undef compat_symbol
-#define compat_symbol(a, b, c, d)
-
-#define __isnan __isnan_ppc32
-#undef hidden_def
-#define hidden_def(name)
- strong_alias (__isnan_ppc32, __GI___isnan)
-
-#include <sysdeps/powerpc/powerpc32/fpu/s_isnan.S>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnan.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnan.c
deleted file mode 100644
index 1a1dcb729b..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnan.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Multiple versions of isnan.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#define __isnan __redirect___isnan
-#define __isnanf __redirect___isnanf
-#define __isnanl __redirect___isnanl
-#include <math.h>
-#include <math_ldbl_opt.h>
-#include <shlib-compat.h>
-#include "init-arch.h"
-
-extern __typeof (__isnan) __isnan_ppc32 attribute_hidden;
-extern __typeof (__isnan) __isnan_power5 attribute_hidden;
-extern __typeof (__isnan) __isnan_power6 attribute_hidden;
-extern __typeof (__isnan) __isnan_power7 attribute_hidden;
-#undef __isnan
-#undef __isnanf
-#undef __isnanl
-
-libc_ifunc_redirected (__redirect___isnan, __isnan,
- (hwcap & PPC_FEATURE_ARCH_2_06)
- ? __isnan_power7
- : (hwcap & PPC_FEATURE_ARCH_2_05)
- ? __isnan_power6
- : (hwcap & PPC_FEATURE_POWER5)
- ? __isnan_power5
- : __isnan_ppc32);
-
-weak_alias (__isnan, isnan)
-
-#ifdef NO_LONG_DOUBLE
-strong_alias (__isnan, __isnanl)
-weak_alias (__isnan, isnanl)
-#endif
-
-#if !IS_IN (libm)
-# if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
-compat_symbol (libc, __isnan, __isnanl, GLIBC_2_0);
-compat_symbol (libc, isnan, isnanl, GLIBC_2_0);
-# endif
-#endif
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnanf-power5.S b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnanf-power5.S
deleted file mode 100644
index a9484177df..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnanf-power5.S
+++ /dev/null
@@ -1,28 +0,0 @@
-/* isnanf(). PowerPC32/POWER5 version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-
-#undef hidden_def
-#define hidden_def(name)
-#undef weak_alias
-#define weak_alias(name, alias)
-
-#define __isnanf __isnanf_power5
-
-#include <sysdeps/powerpc/powerpc32/power5/fpu/s_isnanf.S>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnanf-power6.S b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnanf-power6.S
deleted file mode 100644
index 3565165003..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnanf-power6.S
+++ /dev/null
@@ -1,28 +0,0 @@
-/* isnanf(). PowerPC32/POWER6 version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-
-#undef hidden_def
-#define hidden_def(name)
-#undef weak_alias
-#define weak_alias(name, alias)
-
-#define __isnanf __isnanf_power6
-
-#include <sysdeps/powerpc/powerpc32/power6/fpu/s_isnanf.S>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnanf.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnanf.c
deleted file mode 100644
index 0c04a314fb..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnanf.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Multiple versions of isnanf.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-#include <shlib-compat.h>
-#include "init-arch.h"
-
-/* Both ppc32 and power7 isnan(double) work for float. */
-extern __typeof (__isnanf) __isnan_ppc32 attribute_hidden;
-extern __typeof (__isnanf) __isnanf_power5 attribute_hidden;
-extern __typeof (__isnanf) __isnanf_power6 attribute_hidden;
-extern __typeof (__isnanf) __isnan_power7 attribute_hidden;
-
-libc_ifunc_hidden (__isnanf, __isnanf,
- (hwcap & PPC_FEATURE_ARCH_2_06)
- ? __isnan_power7
- : (hwcap & PPC_FEATURE_ARCH_2_05)
- ? __isnanf_power6
- : (hwcap & PPC_FEATURE_POWER5)
- ? __isnanf_power5
- : __isnan_ppc32);
-
-hidden_def (__isnanf)
-weak_alias (__isnanf, isnanf)
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrint-power6.S b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrint-power6.S
deleted file mode 100644
index 9a5c6063af..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrint-power6.S
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Round double to long int. PowerPC32/Power6.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-#undef weak_alias
-#define weak_alias(a,b)
-#undef strong_alias
-#define strong_alias(a,b)
-#undef compat_symbol
-#define compat_symbol(a,b,c,d)
-
-#define __llrint __llrint_power6
-
-#include <sysdeps/powerpc/powerpc32/power6/fpu/s_llrint.S>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrint-power6.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrint-power6.c
new file mode 100644
index 0000000000..328e11844f
--- /dev/null
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrint-power6.c
@@ -0,0 +1,2 @@
+#define __llrint __llrint_power6
+#include <sysdeps/powerpc/powerpc32/fpu/s_llrint.c>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrint-ppc32.S b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrint-ppc32.S
deleted file mode 100644
index 61a2fcd619..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrint-ppc32.S
+++ /dev/null
@@ -1,31 +0,0 @@
-/* llrint function. PowerPC32 default version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-#undef weak_alias
-#define weak_alias(a,b)
-#undef strong_alias
-#define strong_alias(a,b)
-#undef compat_symbol
-#define compat_symbol(a,b,c,d)
-
-#define __llrint __llrint_ppc32
-
-#include <sysdeps/powerpc/powerpc32/power4/fpu/s_llrint.S>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrint-ppc32.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrint-ppc32.c
new file mode 100644
index 0000000000..8f192ab990
--- /dev/null
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrint-ppc32.c
@@ -0,0 +1,2 @@
+#define __llrint __llrint_ppc32
+#include <sysdeps/powerpc/powerpc32/fpu/s_llrint.c>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrint.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrint.c
index 2981b61129..1146077dd4 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrint.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrint.c
@@ -1,5 +1,5 @@
/* Multiple versions of llrint.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_ldbl_opt.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrintf-power6.S b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrintf-power6.S
deleted file mode 100644
index a0c38b3e5a..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrintf-power6.S
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Round float to long int. PowerPC32/POWER6 version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-
-#undef weak_alias
-#define weak_alias(a,b)
-
-#define __llrintf __llrintf_power6
-
-#include <sysdeps/powerpc/powerpc32/power6/fpu/s_llrintf.S>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrintf-power6.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrintf-power6.c
new file mode 100644
index 0000000000..5b1a5a8cf0
--- /dev/null
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrintf-power6.c
@@ -0,0 +1,2 @@
+#define __llrintf __llrintf_power6
+#include <sysdeps/powerpc/powerpc32/fpu/s_llrintf.c>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrintf-ppc32.S b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrintf-ppc32.S
deleted file mode 100644
index eab87b79c3..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrintf-ppc32.S
+++ /dev/null
@@ -1,26 +0,0 @@
-/* llrintf function. PowerPC32 default version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-
-#undef weak_alias
-#define weak_alias(a,b)
-
-#define __llrintf __llrintf_ppc32
-
-#include <sysdeps/powerpc/powerpc32/power4/fpu/s_llrintf.S>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrintf-ppc32.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrintf-ppc32.c
new file mode 100644
index 0000000000..061962b84d
--- /dev/null
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrintf-ppc32.c
@@ -0,0 +1,2 @@
+#define __llrintf __llrintf_ppc32
+#include <sysdeps/powerpc/powerpc32/fpu/s_llrintf.c>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrintf.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrintf.c
index 12419451ac..0e7c3cb749 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrintf.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrintf.c
@@ -1,5 +1,5 @@
/* Multiple versions of llrintf.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <shlib-compat.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround-power5+.S b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround-power5+.S
deleted file mode 100644
index 0c62aa81ea..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround-power5+.S
+++ /dev/null
@@ -1,31 +0,0 @@
-/* lround function. PowerPC32/POWER5+ version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-#undef weak_alias
-#define weak_alias(a,b)
-#undef strong_alias
-#define strong_alias(a,b)
-#undef compat_symbol
-#define compat_symbol(a,b,c,d)
-
-#define __llround __llround_power5plus
-
-#include <sysdeps/powerpc/powerpc32/power5+/fpu/s_llround.S>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround-power5+.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround-power5+.c
new file mode 100644
index 0000000000..794fad71c2
--- /dev/null
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround-power5+.c
@@ -0,0 +1,2 @@
+#define __llround __llround_power5plus
+#include <sysdeps/powerpc/powerpc32/fpu/s_llround.c>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround-power6.S b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround-power6.S
deleted file mode 100644
index bc0fdd76f5..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround-power6.S
+++ /dev/null
@@ -1,31 +0,0 @@
-/* lround function. PowerPC32/POWER6 version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-#undef weak_alias
-#define weak_alias(a,b)
-#undef strong_alias
-#define strong_alias(a,b)
-#undef compat_symbol
-#define compat_symbol(a,b,c,d)
-
-#define __llround __llround_power6
-
-#include <sysdeps/powerpc/powerpc32/power6/fpu/s_llround.S>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround-power6.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround-power6.c
new file mode 100644
index 0000000000..2b588c4c54
--- /dev/null
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround-power6.c
@@ -0,0 +1,2 @@
+#define __llround __llround_power6
+#include <sysdeps/powerpc/powerpc32/fpu/s_llround.c>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround-ppc32.S b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround-ppc32.S
deleted file mode 100644
index 43a3403d1f..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround-ppc32.S
+++ /dev/null
@@ -1,31 +0,0 @@
-/* llround function. PowerPC32 default version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-#undef weak_alias
-#define weak_alias(a,b)
-#undef strong_alias
-#define strong_alias(a,b)
-#undef compat_symbol
-#define compat_symbol(a,b,c,d)
-
-#define __llround __llround_ppc32
-
-#include <sysdeps/powerpc/powerpc32/power4/fpu/s_llround.S>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround-ppc32.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround-ppc32.c
new file mode 100644
index 0000000000..3b5ff344bd
--- /dev/null
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround-ppc32.c
@@ -0,0 +1,2 @@
+#define __llround __llround_ppc32
+#include <sysdeps/powerpc/powerpc32/fpu/s_llround.c>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround.c
index 7889d71c71..7e08080161 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround.c
@@ -1,5 +1,5 @@
/* Multiple versions of llround.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_ldbl_opt.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llroundf.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llroundf.c
index ce0ac14dff..6fed302b08 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llroundf.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llroundf.c
@@ -1,5 +1,5 @@
/* Multiple versions of llroundf.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include "init-arch.h"
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logb-power7.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logb-power7.c
index 2a9726ce38..550200e1c4 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logb-power7.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logb-power7.c
@@ -1,5 +1,5 @@
/* logb(). PowerPC32/POWER7 version.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,18 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-#include <math_ldbl_opt.h>
-
-#undef weak_alias
-#define weak_alias(a, b)
-#undef strong_alias
-#define strong_alias(a, b)
-#undef compat_symbol
-#define compat_symbol(lib, name, alias, ver)
+ <https://www.gnu.org/licenses/>. */
#define __logb __logb_power7
-
-#include <sysdeps/powerpc/power7/fpu/s_logb.c>
+#include <sysdeps/powerpc/fpu/s_logb.c>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logb-ppc32.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logb-ppc32.c
index b21fc1a05b..cd9a4a1084 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logb-ppc32.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logb-ppc32.c
@@ -1,5 +1,5 @@
/* logb(). PowerPC32/POWER7 version.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logb.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logb.c
index 5f1b0d1e21..81c73b72cd 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logb.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logb.c
@@ -1,5 +1,5 @@
/* Multiple versions of logb.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_ldbl_opt.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbf-power7.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbf-power7.c
index 5ad1af97db..05b894e8ec 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbf-power7.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbf-power7.c
@@ -1,5 +1,5 @@
/* logbf(). PowerPC32/POWER7 version.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,13 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-
-#undef weak_alias
-#define weak_alias(a, b)
+ <https://www.gnu.org/licenses/>. */
#define __logbf __logbf_power7
-
-#include <sysdeps/powerpc/power7/fpu/s_logbf.c>
+#include <sysdeps/powerpc/fpu/s_logbf.c>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbf-ppc32.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbf-ppc32.c
index 732934437e..de9121b3d7 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbf-ppc32.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbf-ppc32.c
@@ -1,5 +1,5 @@
/* logbf(). PowerPC32 default implementation.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbf.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbf.c
index 34314d67f5..0463d91ed7 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbf.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbf.c
@@ -1,5 +1,5 @@
/* Multiple versions of logbf.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_ldbl_opt.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbl-power7.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbl-power7.c
index 2634375191..c6d9546e50 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbl-power7.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbl-power7.c
@@ -1,5 +1,5 @@
/* logbl(). PowerPC32/POWER7 version.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __logbl __logbl_power7
-
-#include <sysdeps/powerpc/power7/fpu/s_logbl.c>
+#include <sysdeps/powerpc/fpu/s_logbl.c>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbl-ppc32.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbl-ppc32.c
index 33d29a7c24..bcf6a6cb30 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbl-ppc32.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbl-ppc32.c
@@ -1,5 +1,5 @@
/* logbl(). PowerPC32/POWER7 version.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __logbl __logbl_ppc32
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbl.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbl.c
index 9556bc95d9..dbd1b39363 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbl.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbl.c
@@ -1,5 +1,5 @@
/* Multiple versions of logbl.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_ldbl_opt.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrint-power6x.S b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrint-power6x.S
index e75e352091..2c2eb7816d 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrint-power6x.S
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrint-power6x.S
@@ -1,5 +1,5 @@
/* Round double to long int. POWER6x PowerPC32 version.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <math_ldbl_opt.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrint-ppc32.S b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrint-ppc32.S
deleted file mode 100644
index 14863448cb..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrint-ppc32.S
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Round double to long int. PowerPC32 default version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-#undef weak_alias
-#define weak_alias(a,b)
-#undef strong_alias
-#define strong_alias(a,b)
-#undef compat_symbol
-#define compat_symbol(a,b,c,d)
-
-#define __lrint __lrint_ppc32
-
-#include <sysdeps/powerpc/powerpc32/fpu/s_lrint.S>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrint-ppc32.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrint-ppc32.c
new file mode 100644
index 0000000000..ce2764b61b
--- /dev/null
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrint-ppc32.c
@@ -0,0 +1,2 @@
+#define __lrint __lrint_ppc32
+#include <sysdeps/powerpc/powerpc32/fpu/s_lrint.c>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrint.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrint.c
index 3f6f34eea5..cc388574df 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrint.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrint.c
@@ -1,5 +1,5 @@
/* Multiple versions of lrint.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_ldbl_opt.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrintf.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrintf.c
index 1de8336a5b..f030718f2f 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrintf.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrintf.c
@@ -1,5 +1,5 @@
/* Multiple versions of lrintf.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include "init-arch.h"
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround-power5+.S b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround-power5+.S
deleted file mode 100644
index 9e99317a85..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround-power5+.S
+++ /dev/null
@@ -1,33 +0,0 @@
-/* lround function. POWER5+, PowerPC32 version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-#undef hidden_def
-#define hidden_def(name)
-#undef weak_alias
-#define weak_alias(name, alias)
-#undef strong_alias
-#define strong_alias(name, alias)
-#undef compat_symbol
-#define compat_symbol(lib, name, alias, ver)
-
-#define __lround __lround_power5plus
-
-#include <sysdeps/powerpc/powerpc32/power5+/fpu/s_lround.S>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround-power5+.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround-power5+.c
new file mode 100644
index 0000000000..d6a17c4bca
--- /dev/null
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround-power5+.c
@@ -0,0 +1,2 @@
+#define __lround __lround_power5plus
+#include <sysdeps/powerpc/powerpc32/fpu/s_lround.c>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround-power6x.S b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround-power6x.S
index 7c0a954b56..f8de72971d 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround-power6x.S
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround-power6x.S
@@ -1,5 +1,5 @@
/* lround function. POWER6x, PowerPC32 version.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <math_ldbl_opt.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround-ppc32.S b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround-ppc32.S
deleted file mode 100644
index 199c8a3c76..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround-ppc32.S
+++ /dev/null
@@ -1,31 +0,0 @@
-/* lround function. PowerPC32 default version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-#undef weak_alias
-#define weak_alias(a,b)
-#undef strong_alias
-#define strong_alias(a,b)
-#undef compat_symbol
-#define compat_symbol(a,b,c,d)
-
-#define __lround __lround_ppc32
-
-#include <sysdeps/powerpc/powerpc32/fpu/s_lround.S>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround-ppc32.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround-ppc32.c
new file mode 100644
index 0000000000..5355e1f712
--- /dev/null
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround-ppc32.c
@@ -0,0 +1,2 @@
+#define __lround __lround_ppc32
+#include <sysdeps/powerpc/powerpc32/fpu/s_lround.c>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround.c
index 63778e42b3..9869f7f20f 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround.c
@@ -1,5 +1,5 @@
/* Multiple versions of lround.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_ldbl_opt.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lroundf.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lroundf.c
index 8b60c03e61..eaf210dbee 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lroundf.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lroundf.c
@@ -1,5 +1,5 @@
/* Multiple versions of lroundf.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include "init-arch.h"
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf-power5+.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf-power5+.c
index 8b42d97a6f..f625baaf31 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf-power5+.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf-power5+.c
@@ -1,5 +1,5 @@
/* PowerPC/POWER5+ implementation for modf.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,18 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-#include <math_ldbl_opt.h>
-
-#undef weak_alias
-#define weak_alias(a,b)
-#undef strong_alias
-#define strong_alias(a,b)
-#undef compat_symbol
-#define compat_symbol(a,b,c,d)
+ <https://www.gnu.org/licenses/>. */
#define __modf __modf_power5plus
-
-#include <sysdeps/powerpc/power5+/fpu/s_modf.c>
+#include <sysdeps/powerpc/fpu/s_modf.c>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf-ppc32.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf-ppc32.c
index 7eeef17d40..cd799984a5 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf-ppc32.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf-ppc32.c
@@ -1,5 +1,5 @@
/* PowerPC32 default implementation for modf.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_ldbl_opt.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf.c
index fe810edaef..54f5be640c 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf.c
@@ -1,5 +1,5 @@
/* Multiple versions of modf.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_ldbl_opt.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff-power5+.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff-power5+.c
index b966d58780..dcae9ad846 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff-power5+.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff-power5+.c
@@ -1,5 +1,5 @@
/* PowerPC/POWER5+ implementation for modff.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,14 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-#include <math_ldbl_opt.h>
-
-#undef weak_alias
-#define weak_alias(a,b)
+ <https://www.gnu.org/licenses/>. */
#define __modff __modff_power5plus
-
-#include <sysdeps/powerpc/power5+/fpu/s_modff.c>
+#include <sysdeps/powerpc/fpu/s_modff.c>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff-ppc32.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff-ppc32.c
index 3ba36bf52f..480d281f33 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff-ppc32.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff-ppc32.c
@@ -1,5 +1,5 @@
/* PowerPC32 default implementation for modff.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff.c
index e1d6e82290..5043eef034 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff.c
@@ -1,5 +1,5 @@
/* Multiple versions of modff.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include "init-arch.h"
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_round-power5+.S b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_round-power5+.S
deleted file mode 100644
index 50fdd1bc44..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_round-power5+.S
+++ /dev/null
@@ -1,33 +0,0 @@
-/* round function. PowerPC32/power5+ version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-#undef hidden_def
-#define hidden_def(name)
-#undef weak_alias
-#define weak_alias(name, alias)
-#undef strong_alias
-#define strong_alias(name, alias)
-#undef compat_symbol
-#define compat_symbol(lib, name, alias, ver)
-
-#define __round __round_power5plus
-
-#include <sysdeps/powerpc/powerpc32/power5+/fpu/s_round.S>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_round-power5+.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_round-power5+.c
new file mode 100644
index 0000000000..3f6f87b4e2
--- /dev/null
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_round-power5+.c
@@ -0,0 +1,3 @@
+#include <math.h>
+#define __round __round_power5plus
+#include <sysdeps/powerpc/fpu/s_round.c>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_round-ppc32.S b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_round-ppc32.S
deleted file mode 100644
index e3a24275aa..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_round-ppc32.S
+++ /dev/null
@@ -1,31 +0,0 @@
-/* round function. PowerPC32 default version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-#undef weak_alias
-#define weak_alias(a,b)
-#undef strong_alias
-#define strong_alias(a,b)
-#undef compat_symbol
-#define compat_symbol(a,b,c,d)
-
-#define __round __round_ppc32
-
-#include <sysdeps/powerpc/powerpc32/fpu/s_round.S>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_round-ppc32.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_round-ppc32.c
new file mode 100644
index 0000000000..92fbadf789
--- /dev/null
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_round-ppc32.c
@@ -0,0 +1,3 @@
+#include <math.h>
+#define __round __round_ppc32
+#include <sysdeps/powerpc/fpu/s_round.c>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_round.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_round.c
index 65e7801315..47ef3bb01a 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_round.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_round.c
@@ -1,5 +1,5 @@
/* Multiple versions of round.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,8 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
#include <math_ldbl_opt.h>
#include <shlib-compat.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_roundf-power5+.S b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_roundf-power5+.S
deleted file mode 100644
index e1974ebc64..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_roundf-power5+.S
+++ /dev/null
@@ -1,26 +0,0 @@
-/* roundf function. PowerPC32/power5+ version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-
-#undef weak_alias
-#define weak_alias(name, alias)
-
-#define __roundf __roundf_power5plus
-
-#include <sysdeps/powerpc/powerpc32/power5+/fpu/s_roundf.S>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_roundf-power5+.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_roundf-power5+.c
new file mode 100644
index 0000000000..b0cb5c5190
--- /dev/null
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_roundf-power5+.c
@@ -0,0 +1,3 @@
+#include <math.h>
+#define __roundf __roundf_power5plus
+#include <sysdeps/powerpc/fpu/s_roundf.c>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_roundf-ppc32.S b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_roundf-ppc32.S
deleted file mode 100644
index 9323cf911a..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_roundf-ppc32.S
+++ /dev/null
@@ -1,27 +0,0 @@
-/* roundf function. PowerPC32 default version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-#undef weak_alias
-#define weak_alias(a,b)
-
-#define __roundf __roundf_ppc32
-
-#include <sysdeps/powerpc/powerpc32/fpu/s_roundf.S>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_roundf-ppc32.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_roundf-ppc32.c
new file mode 100644
index 0000000000..44023bbefd
--- /dev/null
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_roundf-ppc32.c
@@ -0,0 +1,3 @@
+#include <math.h>
+#define __roundf __roundf_ppc32
+#include <sysdeps/powerpc/fpu/s_roundf.c>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_roundf.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_roundf.c
index 0d923a2ca6..d426e2a114 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_roundf.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_roundf.c
@@ -1,5 +1,5 @@
/* Multiple versions of roundf.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,8 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
#include <math_ldbl_opt.h>
#include <shlib-compat.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_trunc-power5+.S b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_trunc-power5+.S
deleted file mode 100644
index 3e3441d575..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_trunc-power5+.S
+++ /dev/null
@@ -1,33 +0,0 @@
-/* trunc function. PowerPC32/power5+ version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-#undef hidden_def
-#define hidden_def(name)
-#undef weak_alias
-#define weak_alias(name, alias)
-#undef strong_alias
-#define strong_alias(name, alias)
-#undef compat_symbol
-#define compat_symbol(lib, name, alias, ver)
-
-#define __trunc __trunc_power5plus
-
-#include <sysdeps/powerpc/powerpc32/power5+/fpu/s_trunc.S>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_trunc-power5+.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_trunc-power5+.c
new file mode 100644
index 0000000000..47abda6810
--- /dev/null
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_trunc-power5+.c
@@ -0,0 +1,3 @@
+#include <math.h>
+#define __trunc __trunc_power5plus
+#include <sysdeps/powerpc/fpu/s_trunc.c>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_trunc-ppc32.S b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_trunc-ppc32.S
deleted file mode 100644
index 86e50ad66a..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_trunc-ppc32.S
+++ /dev/null
@@ -1,31 +0,0 @@
-/* trunc function. PowerPC32 default version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-#undef weak_alias
-#define weak_alias(a,b)
-#undef strong_alias
-#define strong_alias(a,b)
-#undef compat_symbol
-#define compat_symbol(a,b,c,d)
-
-#define __trunc __trunc_ppc32
-
-#include <sysdeps/powerpc/powerpc32/fpu/s_trunc.S>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_trunc-ppc32.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_trunc-ppc32.c
new file mode 100644
index 0000000000..5b9164295f
--- /dev/null
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_trunc-ppc32.c
@@ -0,0 +1,3 @@
+#include <math.h>
+#define __trunc __trunc_ppc32
+#include <sysdeps/powerpc/fpu/s_trunc.c>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_trunc.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_trunc.c
index 5712d6a3b2..8408cf1508 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_trunc.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_trunc.c
@@ -1,5 +1,5 @@
/* Multiple versions of trunc.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,8 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
#include <math_ldbl_opt.h>
#include <shlib-compat.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_truncf-power5+.S b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_truncf-power5+.S
deleted file mode 100644
index dfc3af881a..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_truncf-power5+.S
+++ /dev/null
@@ -1,26 +0,0 @@
-/* truncf function. PowerPC32/power5+ version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-
-#undef weak_alias
-#define weak_alias(name, alias)
-
-#define __truncf __truncf_power5plus
-
-#include <sysdeps/powerpc/powerpc32/power5+/fpu/s_truncf.S>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_truncf-power5+.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_truncf-power5+.c
new file mode 100644
index 0000000000..b8e75d4e28
--- /dev/null
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_truncf-power5+.c
@@ -0,0 +1,3 @@
+#include <math.h>
+#define __truncf __truncf_power5plus
+#include <sysdeps/powerpc/fpu/s_truncf.c>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_truncf-ppc32.S b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_truncf-ppc32.S
deleted file mode 100644
index f85dcfe3a9..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_truncf-ppc32.S
+++ /dev/null
@@ -1,27 +0,0 @@
-/* truncf function. PowerPC32 default version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-#undef weak_alias
-#define weak_alias(a,b)
-
-#define __truncf __truncf_ppc32
-
-#include <sysdeps/powerpc/powerpc32/fpu/s_truncf.S>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_truncf-ppc32.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_truncf-ppc32.c
new file mode 100644
index 0000000000..f20c82553a
--- /dev/null
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_truncf-ppc32.c
@@ -0,0 +1,3 @@
+#include <math.h>
+#define __truncf __truncf_ppc32
+#include <sysdeps/powerpc/fpu/s_truncf.c>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_truncf.c b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_truncf.c
index d5d72b52fe..08ec719278 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_truncf.c
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_truncf.c
@@ -1,5 +1,5 @@
/* Multiple versions of truncf.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,8 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
#include <math_ldbl_opt.h>
#include <shlib-compat.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/s_llrint.S b/sysdeps/powerpc/powerpc32/power4/fpu/s_llrint.S
deleted file mode 100644
index 00c600d18d..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/s_llrint.S
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Round double to long int. PowerPC32 on PowerPC64 version.
- Copyright (C) 2004-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-#include <libm-alias-double.h>
-
-/* long long int[r3, r4] __llrint (double x[fp1]) */
-ENTRY (__llrint)
- CALL_MCOUNT
- stwu r1,-16(r1)
- cfi_adjust_cfa_offset (16)
- fctid fp13,fp1
- stfd fp13,8(r1)
- nop /* Insure the following load is in a different dispatch group */
- nop /* to avoid pipe stall on POWER4&5. */
- nop
- lwz r3,8+HIWORD(r1)
- lwz r4,8+LOWORD(r1)
- addi r1,r1,16
- blr
- END (__llrint)
-
-libm_alias_double (__llrint, llrint)
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/s_llrintf.S b/sysdeps/powerpc/powerpc32/power4/fpu/s_llrintf.S
deleted file mode 100644
index ffc323cb43..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/s_llrintf.S
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Round float to long int. PowerPC32 on PowerPC64 version.
- Copyright (C) 2004-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <libm-alias-float.h>
-
-/* long long int[r3, r4] __llrintf (float x[fp1]) */
-ENTRY (__llrintf)
- CALL_MCOUNT
- stwu r1,-16(r1)
- cfi_adjust_cfa_offset (16)
- fctid fp13,fp1
- stfd fp13,8(r1)
- nop /* Insure the following load is in a different dispatch group */
- nop /* to avoid pipe stall on POWER4&5. */
- nop
- lwz r3,8+HIWORD(r1)
- lwz r4,8+LOWORD(r1)
- addi r1,r1,16
- blr
- END (__llrintf)
-
-libm_alias_float (__llrint, llrint)
-
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/s_llround.S b/sysdeps/powerpc/powerpc32/power4/fpu/s_llround.S
deleted file mode 100644
index 5ad89a1486..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/s_llround.S
+++ /dev/null
@@ -1,105 +0,0 @@
-/* llround function. PowerPC32 on PowerPC64 version.
- Copyright (C) 2004-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-#include <libm-alias-float.h>
-#include <libm-alias-double.h>
-
- .section .rodata.cst8,"aM",@progbits,8
- .align 3
- .LC0: .long (52+127)<<23 /* 0x1p+52 */
- .long (-1+127)<<23 /* 0.5 */
-
- .section ".text"
-
-/* long [r3] lround (float x [fp1])
- IEEE 1003.1 lround function. IEEE specifies "round to the nearest
- integer value, rounding halfway cases away from zero, regardless of
- the current rounding mode." However PowerPC Architecture defines
- "round to Nearest" as "Choose the best approximation. In case of a
- tie, choose the one that is even (least significant bit o).".
- So we can't use the PowerPC "round to Nearest" mode. Instead we set
- "round toward Zero" mode and round by adding +-0.5 before rounding
- to the integer value.
-
- It is necessary to detect when x is (+-)0x1.fffffffffffffp-2
- because adding +-0.5 in this case will cause an erroneous shift,
- carry and round. We simply return 0 if 0.5 > x > -0.5. Likewise
- if x is and odd number between +-(2^52 and 2^53-1) a shift and
- carry will erroneously round if biased with +-0.5. Therefore if x
- is greater/less than +-2^52 we don't need to bias the number with
- +-0.5. */
-
-ENTRY (__llround)
- stwu r1,-16(r1)
- cfi_adjust_cfa_offset (16)
-#ifdef SHARED
- mflr r11
- cfi_register(lr,r11)
- SETUP_GOT_ACCESS(r9,got_label)
- addis r9,r9,.LC0-got_label@ha
- addi r9,r9,.LC0-got_label@l
- mtlr r11
- cfi_same_value (lr)
- lfs fp9,0(r9)
- lfs fp10,4(r9)
-#else
- lis r9,.LC0@ha
- lfs fp9,.LC0@l(r9) /* Load 2^52 into fpr9. */
- lfs fp10,.LC0@l+4(r9) /* Load 0.5 into fpr10. */
-#endif
- fabs fp2,fp1 /* Get the absolute value of x. */
- fsub fp12,fp10,fp10 /* Compute 0.0 into fpr12. */
- fcmpu cr6,fp2,fp10 /* if |x| < 0.5 */
- fcmpu cr7,fp2,fp9 /* if |x| >= 2^52 */
- fcmpu cr1,fp1,fp12 /* x is negative? x < 0.0 */
- blt- cr6,.Lretzero /* 0.5 > x < -0.5 so just return 0. */
- bge- cr7,.Lnobias /* 2^52 > x < -2^52 just convert with no bias. */
- /* Test whether an integer to avoid spurious "inexact". */
- fadd fp3,fp2,fp9
- fsub fp3,fp3,fp9
- fcmpu cr5,fp2,fp3
- beq cr5,.Lnobias
- fadd fp3,fp2,fp10 /* |x|+=0.5 bias to prepare to round. */
- bge cr1,.Lconvert /* x is positive so don't negate x. */
- fnabs fp3,fp3 /* -(|x|+=0.5) */
-.Lconvert:
- fctidz fp4,fp3 /* Convert to Integer double word round toward 0. */
- stfd fp4,8(r1)
- nop
- nop
- nop
- lwz r3,8+HIWORD(r1) /* Load return as integer. */
- lwz r4,8+LOWORD(r1)
-.Lout:
- addi r1,r1,16
- blr
-.Lretzero: /* 0.5 > x > -0.5 */
- li r3,0 /* return 0. */
- li r4,0
- b .Lout
-.Lnobias:
- fmr fp3,fp1
- b .Lconvert
- END (__llround)
-
-libm_alias_double (__llround, llround)
-
-strong_alias (__llround, __llroundf)
-libm_alias_float (__llround, llround)
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/s_llroundf.S b/sysdeps/powerpc/powerpc32/power4/fpu/s_llroundf.S
deleted file mode 100644
index 72d6181541..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/fpu/s_llroundf.S
+++ /dev/null
@@ -1 +0,0 @@
-/* __llroundf is in s_llround.S */
diff --git a/sysdeps/powerpc/powerpc32/power4/hp-timing.h b/sysdeps/powerpc/powerpc32/power4/hp-timing.h
index 10efcac481..e355f2ccbd 100644
--- a/sysdeps/powerpc/powerpc32/power4/hp-timing.h
+++ b/sysdeps/powerpc/powerpc32/power4/hp-timing.h
@@ -1,5 +1,5 @@
/* High precision, low overhead timing functions. powerpc64 version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@@ -15,15 +15,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _HP_TIMING_H
#define _HP_TIMING_H 1
-/* We always assume having the timestamp register. */
-#define HP_TIMING_AVAIL (1)
-#define HP_SMALL_TIMING_AVAIL (1)
-
/* We indeed have inlined functions. */
#define HP_TIMING_INLINE (1)
diff --git a/sysdeps/powerpc/powerpc32/power4/memcmp.S b/sysdeps/powerpc/powerpc32/power4/memcmp.S
index cc4bd32482..3b8e5ba59c 100644
--- a/sysdeps/powerpc/powerpc32/power4/memcmp.S
+++ b/sysdeps/powerpc/powerpc32/power4/memcmp.S
@@ -1,5 +1,5 @@
/* Optimized strcmp implementation for PowerPC32.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/memcopy.h b/sysdeps/powerpc/powerpc32/power4/memcopy.h
index 8050abc83c..d37212d0e3 100644
--- a/sysdeps/powerpc/powerpc32/power4/memcopy.h
+++ b/sysdeps/powerpc/powerpc32/power4/memcopy.h
@@ -1,5 +1,5 @@
/* memcopy.h -- definitions for memory copy functions. Generic C version.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* The strategy of the memory functions is:
diff --git a/sysdeps/powerpc/powerpc32/power4/memcpy.S b/sysdeps/powerpc/powerpc32/power4/memcpy.S
index 44866d6b88..4063766e1b 100644
--- a/sysdeps/powerpc/powerpc32/power4/memcpy.S
+++ b/sysdeps/powerpc/powerpc32/power4/memcpy.S
@@ -1,5 +1,5 @@
/* Optimized memcpy implementation for PowerPC32 on PowerPC64.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/memset.S b/sysdeps/powerpc/powerpc32/power4/memset.S
index 7e8249ed24..3c43550383 100644
--- a/sysdeps/powerpc/powerpc32/power4/memset.S
+++ b/sysdeps/powerpc/powerpc32/power4/memset.S
@@ -1,5 +1,5 @@
/* Optimized memset implementation for PowerPC64.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/Makefile b/sysdeps/powerpc/powerpc32/power4/multiarch/Makefile
index bd9d360efa..5c68f07d19 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/Makefile
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/Makefile
@@ -15,16 +15,3 @@ sysdep_routines += memcpy-power7 memcpy-a2 memcpy-power6 memcpy-cell \
CFLAGS-strncase-power7.c += -mcpu=power7 -funroll-loops
CFLAGS-strncase_l-power7.c += -mcpu=power7 -funroll-loops
endif
-
-ifeq ($(subdir),wcsmbs)
-sysdep_routines += wcschr-power7 wcschr-power6 wcschr-ppc32 \
- wcsrchr-power7 wcsrchr-power6 wcsrchr-ppc32 \
- wcscpy-power7 wcscpy-power6 wcscpy-ppc32
-
-CFLAGS-wcschr-power7.c += -mcpu=power7
-CFLAGS-wcschr-power6.c += -mcpu=power6
-CFLAGS-wcsrchr-power7.c += -mcpu=power7
-CFLAGS-wcsrchr-power6.c += -mcpu=power6
-CFLAGS-wcscpy-power7.c += -mcpu=power7
-CFLAGS-wcscpy-power6.c += -mcpu=power6
-endif
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/bzero-power6.S b/sysdeps/powerpc/powerpc32/power4/multiarch/bzero-power6.S
index bdadd8b59b..49e602491a 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/bzero-power6.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/bzero-power6.S
@@ -1,5 +1,5 @@
/* Optimized bzero implementation for PowerPC32/POWER6.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by Luis Machado <luisgpm@br.ibm.com>.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/bzero-power7.S b/sysdeps/powerpc/powerpc32/power4/multiarch/bzero-power7.S
index 30ef633b9c..47e5b99408 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/bzero-power7.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/bzero-power7.S
@@ -1,5 +1,5 @@
/* Optimized bzero implementation for PowerPC32/POWER7.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by Luis Machado <luisgpm@br.ibm.com>.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/bzero-ppc32.S b/sysdeps/powerpc/powerpc32/power4/multiarch/bzero-ppc32.S
index 1af0a5aa61..c34cacd2b4 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/bzero-ppc32.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/bzero-ppc32.S
@@ -1,5 +1,5 @@
/* Optimized bzero implementation for PowerPC32/PPC32.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by Luis Machado <luisgpm@br.ibm.com>.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/bzero.c b/sysdeps/powerpc/powerpc32/power4/multiarch/bzero.c
index 95a5c8c48f..40fcc73dad 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/bzero.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/bzero.c
@@ -1,5 +1,5 @@
/* Multiple versions of bzero.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/ifunc-impl-list.c b/sysdeps/powerpc/powerpc32/power4/multiarch/ifunc-impl-list.c
index 3ddc33fa60..57419c91f0 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/ifunc-impl-list.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/ifunc-impl-list.c
@@ -1,5 +1,5 @@
/* Enumerate available IFUNC implementations of a function. PowerPC32 version.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <string.h>
@@ -187,38 +187,5 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
IFUNC_IMPL_ADD (array, i, strchr, 1,
__strchr_ppc))
- /* Support sysdeps/powerpc/powerpc32/power4/multiarch/wcschr.c. */
- IFUNC_IMPL (i, name, wcschr,
- IFUNC_IMPL_ADD (array, i, wcschr,
- hwcap & PPC_FEATURE_HAS_VSX,
- __wcschr_power7)
- IFUNC_IMPL_ADD (array, i, wcschr,
- hwcap & PPC_FEATURE_ARCH_2_05,
- __wcschr_power6)
- IFUNC_IMPL_ADD (array, i, wcschr, 1,
- __wcschr_ppc))
-
- /* Support sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr.c. */
- IFUNC_IMPL (i, name, wcsrchr,
- IFUNC_IMPL_ADD (array, i, wcsrchr,
- hwcap & PPC_FEATURE_HAS_VSX,
- __wcsrchr_power7)
- IFUNC_IMPL_ADD (array, i, wcsrchr,
- hwcap & PPC_FEATURE_ARCH_2_05,
- __wcsrchr_power6)
- IFUNC_IMPL_ADD (array, i, wcsrchr, 1,
- __wcsrchr_ppc))
-
- /* Support sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy.c. */
- IFUNC_IMPL (i, name, wcscpy,
- IFUNC_IMPL_ADD (array, i, wcscpy,
- hwcap & PPC_FEATURE_HAS_VSX,
- __wcscpy_power7)
- IFUNC_IMPL_ADD (array, i, wcscpy,
- hwcap & PPC_FEATURE_ARCH_2_05,
- __wcscpy_power6)
- IFUNC_IMPL_ADD (array, i, wcscpy, 1,
- __wcscpy_ppc))
-
return i;
}
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/init-arch.h b/sysdeps/powerpc/powerpc32/power4/multiarch/init-arch.h
index cf906ff227..554890afd0 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/init-arch.h
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/init-arch.h
@@ -1,5 +1,5 @@
/* This file is part of the GNU C Library.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ldsodefs.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/memchr-power7.S b/sysdeps/powerpc/powerpc32/power4/multiarch/memchr-power7.S
index e8e5f38199..a1fb6f3b83 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/memchr-power7.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/memchr-power7.S
@@ -1,5 +1,5 @@
/* Optimized memchr implementation for PowerPC32/POWER7 using cmpb insn.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by Luis Machado <luisgpm@br.ibm.com>.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/memchr-ppc32.c b/sysdeps/powerpc/powerpc32/power4/multiarch/memchr-ppc32.c
index 9333b54257..a41391c85f 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/memchr-ppc32.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/memchr-ppc32.c
@@ -1,5 +1,5 @@
/* PowerPC32 default implementation of memchr.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/memchr.c b/sysdeps/powerpc/powerpc32/power4/multiarch/memchr.c
index ac3d01ef52..4b8b59c393 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/memchr.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/memchr.c
@@ -1,5 +1,5 @@
/* Multiple versions of memchr.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# undef memchr
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/memcmp-power7.S b/sysdeps/powerpc/powerpc32/power4/multiarch/memcmp-power7.S
index 0fcb0e8a63..cff6599bda 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/memcmp-power7.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/memcmp-power7.S
@@ -1,5 +1,5 @@
/* Optimized memcmp implementation for POWER7/PowerPC32.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/memcmp-ppc32.S b/sysdeps/powerpc/powerpc32/power4/multiarch/memcmp-ppc32.S
index a58c6b88a6..7badbb9d4b 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/memcmp-ppc32.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/memcmp-ppc32.S
@@ -1,5 +1,5 @@
/* Default memcmp implementation for PowerPC32.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/memcmp.c b/sysdeps/powerpc/powerpc32/power4/multiarch/memcmp.c
index 00e7e7d2a5..eb4a333175 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/memcmp.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/memcmp.c
@@ -1,5 +1,5 @@
/* Multiple versions of memcmp.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-a2.S b/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-a2.S
index 539e260e30..ab612b4bc7 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-a2.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-a2.S
@@ -1,5 +1,5 @@
/* Optimized memcpy implementation for PowerPC A2.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-cell.S b/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-cell.S
index cbf7ff5d55..ff39eb0bf3 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-cell.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-cell.S
@@ -1,5 +1,5 @@
/* Optimized memcpy implementation for CELL BE PowerPC.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-power6.S b/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-power6.S
index 16f05bf4bc..82b69036dd 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-power6.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-power6.S
@@ -1,5 +1,5 @@
/* Optimized memcpy implementation for PowerPC32 on POWER6.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-power7.S b/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-power7.S
index a35b02aa15..b0f236b395 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-power7.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-power7.S
@@ -1,5 +1,5 @@
/* Optimized memcpy implementation for PowerPC32/POWER7.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-ppc32.S b/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-ppc32.S
index 7c11b12cfe..046228b632 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-ppc32.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-ppc32.S
@@ -1,5 +1,5 @@
/* Default memcpy implementation for PowerPC32.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy.c b/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy.c
index 7db588fb76..df2b297958 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy.c
@@ -1,5 +1,5 @@
/* Multiple versions of memcpy.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in lib and for
DSO. In static binaries we need memcpy before the initialization
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/memmove-power7.c b/sysdeps/powerpc/powerpc32/power4/multiarch/memmove-power7.c
index 1b9d70ec80..e14b940ae9 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/memmove-power7.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/memmove-power7.c
@@ -1,5 +1,5 @@
/* Power7 multiarch memmove.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <memcopy.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/memmove-ppc.c b/sysdeps/powerpc/powerpc32/power4/multiarch/memmove-ppc.c
index 3f300a7db3..041d5cbe62 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/memmove-ppc.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/memmove-ppc.c
@@ -1,5 +1,5 @@
/* Power7 multiarch memmove.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <memcopy.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/memmove.c b/sysdeps/powerpc/powerpc32/power4/multiarch/memmove.c
index 3634f3fcfb..5451d61e8a 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/memmove.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/memmove.c
@@ -1,5 +1,5 @@
/* Multiple versions of memmove. PowerPC32 version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if defined SHARED && IS_IN (libc)
/* Redefine memmove so that the compiler won't complain about the type
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/mempcpy-power7.S b/sysdeps/powerpc/powerpc32/power4/multiarch/mempcpy-power7.S
index 05f027158b..1b0614e3f5 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/mempcpy-power7.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/mempcpy-power7.S
@@ -1,5 +1,5 @@
/* Optimized mempcpy implementation for POWER7.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/mempcpy-ppc32.c b/sysdeps/powerpc/powerpc32/power4/multiarch/mempcpy-ppc32.c
index 441f7db653..637274f3ee 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/mempcpy-ppc32.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/mempcpy-ppc32.c
@@ -1,5 +1,5 @@
/* PowerPC32 default implementation of mempcpy.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define MEMPCPY __mempcpy_ppc
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/mempcpy.c b/sysdeps/powerpc/powerpc32/power4/multiarch/mempcpy.c
index caa77de8c4..d2b839e4c8 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/mempcpy.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/mempcpy.c
@@ -1,5 +1,5 @@
/* Multiple versions of mempcpy.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# define mempcpy __redirect_mempcpy
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/memrchr-power7.S b/sysdeps/powerpc/powerpc32/power4/multiarch/memrchr-power7.S
index faf7e86a9c..16287e9697 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/memrchr-power7.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/memrchr-power7.S
@@ -1,5 +1,5 @@
/* Optimized memrchr implementation for PowerPC32/POWER7 using cmpb insn.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by Luis Machado <luisgpm@br.ibm.com>.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/memrchr-ppc32.c b/sysdeps/powerpc/powerpc32/power4/multiarch/memrchr-ppc32.c
index 8f9f279c00..0fd985e234 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/memrchr-ppc32.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/memrchr-ppc32.c
@@ -1,5 +1,5 @@
/* PowerPC32 default implementation of memrchr.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# define MEMRCHR __memrchr_ppc
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/memrchr.c b/sysdeps/powerpc/powerpc32/power4/multiarch/memrchr.c
index 46e20df350..9892c5bcbf 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/memrchr.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/memrchr.c
@@ -1,5 +1,5 @@
/* Multiple versions of memrchr.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# include <string.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/memset-power6.S b/sysdeps/powerpc/powerpc32/power4/multiarch/memset-power6.S
index f1cd354853..0f3696d173 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/memset-power6.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/memset-power6.S
@@ -1,5 +1,5 @@
/* Optimized 32-bit memset implementation for POWER6.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/memset-power7.S b/sysdeps/powerpc/powerpc32/power4/multiarch/memset-power7.S
index 8c488ee36c..a577f08ea7 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/memset-power7.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/memset-power7.S
@@ -1,5 +1,5 @@
/* Optimized memset implementation for PowerPC32/POWER7.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/memset-ppc32.S b/sysdeps/powerpc/powerpc32/power4/multiarch/memset-ppc32.S
index f2278b48d3..962ab4e449 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/memset-ppc32.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/memset-ppc32.S
@@ -1,5 +1,5 @@
/* Default memset implementation for PowerPC32.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/memset.c b/sysdeps/powerpc/powerpc32/power4/multiarch/memset.c
index 3a2eb17a24..db54b6e49f 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/memset.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/memset.c
@@ -1,5 +1,5 @@
/* Multiple versions of memset.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for definition in libc. */
#if defined SHARED && IS_IN (libc)
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/rawmemchr-power7.S b/sysdeps/powerpc/powerpc32/power4/multiarch/rawmemchr-power7.S
index 494084f061..a0d66b6af7 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/rawmemchr-power7.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/rawmemchr-power7.S
@@ -1,5 +1,5 @@
/* Optimized rawrawmemchr implementation for PowerPC32/POWER7 using cmpb insn.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by Luis Machado <luisgpm@br.ibm.com>.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/rawmemchr-ppc32.c b/sysdeps/powerpc/powerpc32/power4/multiarch/rawmemchr-ppc32.c
index 8ebd039697..92caec9ce6 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/rawmemchr-ppc32.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/rawmemchr-ppc32.c
@@ -1,5 +1,5 @@
/* PowerPC32 default implementation of rawmemchr.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/rawmemchr.c b/sysdeps/powerpc/powerpc32/power4/multiarch/rawmemchr.c
index 14aaf8ea32..3278575e7f 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/rawmemchr.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/rawmemchr.c
@@ -1,5 +1,5 @@
/* Multiple versions of rawmemchr.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# define __rawmemchr __redirect___rawmemchr
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/rtld-memcmp.S b/sysdeps/powerpc/powerpc32/power4/multiarch/rtld-memcmp.S
index 2ffce4b887..0a02e6e06c 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/rtld-memcmp.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/rtld-memcmp.S
@@ -1,5 +1,5 @@
/* Loader memcmp implementation for PowerPC32.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/powerpc/powerpc32/power4/memcmp.S>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/rtld-memset.S b/sysdeps/powerpc/powerpc32/power4/multiarch/rtld-memset.S
index 3db95ad256..c92310370d 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/rtld-memset.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/rtld-memset.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2013-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
@@ -13,6 +13,6 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/powerpc/powerpc32/power4/memset.S>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/rtld-strchr.S b/sysdeps/powerpc/powerpc32/power4/multiarch/rtld-strchr.S
index bc7eaed61c..4814d936c4 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/rtld-strchr.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/rtld-strchr.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2013-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
@@ -13,6 +13,6 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/powerpc/powerpc32/strchr.S>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/rtld-strnlen.c b/sysdeps/powerpc/powerpc32/power4/multiarch/rtld-strnlen.c
index fd8aed4112..d0085e7361 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/rtld-strnlen.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/rtld-strnlen.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2013-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
@@ -13,6 +13,6 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string/strnlen.c>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp-power7.S b/sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp-power7.S
index 18695a078a..b3ed78612b 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp-power7.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp-power7.S
@@ -1,5 +1,5 @@
/* Optimized strcasecmp implementation for PowerPC32.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp.c b/sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp.c
index e05975981b..cd41c6c223 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp.c
@@ -1,5 +1,5 @@
/* Multiple versions of strcasecmp.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# include <string.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp_l-power7.S b/sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp_l-power7.S
index 8d00d285ea..78a52fe61d 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp_l-power7.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp_l-power7.S
@@ -1,5 +1,5 @@
/* Default strcasecmp implementation for PowerPC32.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ 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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp_l.c b/sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp_l.c
index 3a1a84768e..b8beeab0bb 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp_l.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp_l.c
@@ -1,5 +1,5 @@
/* Multiple versions of strcasecmp.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# include <string.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/strchr-power7.S b/sysdeps/powerpc/powerpc32/power4/multiarch/strchr-power7.S
index bfa7a7f121..8162976806 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/strchr-power7.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/strchr-power7.S
@@ -1,5 +1,5 @@
/* Optimized strchr implementation for PowerPC32/POWER7 using cmpb insn.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/strchr-ppc32.S b/sysdeps/powerpc/powerpc32/power4/multiarch/strchr-ppc32.S
index 7acf9022bd..36ca1e359c 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/strchr-ppc32.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/strchr-ppc32.S
@@ -1,5 +1,5 @@
/* PowerPC32 default implementation of strchr.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/strchr.c b/sysdeps/powerpc/powerpc32/power4/multiarch/strchr.c
index 832914916c..23ecbcf77e 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/strchr.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/strchr.c
@@ -1,5 +1,5 @@
/* Multiple versions of strchr.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for definition in libc. */
#if defined SHARED && IS_IN (libc)
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/strchrnul-power7.S b/sysdeps/powerpc/powerpc32/power4/multiarch/strchrnul-power7.S
index 5851294e5e..66c5b2bb3e 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/strchrnul-power7.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/strchrnul-power7.S
@@ -1,5 +1,5 @@
/* Optimized strchrnul implementation for PowerPC32/POWER7 using cmpb insn.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/strchrnul-ppc32.c b/sysdeps/powerpc/powerpc32/power4/multiarch/strchrnul-ppc32.c
index 7ae631f4ee..e1a6954c79 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/strchrnul-ppc32.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/strchrnul-ppc32.c
@@ -1,5 +1,5 @@
/* PowerPC32 default implementation of strchrnul.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/strchrnul.c b/sysdeps/powerpc/powerpc32/power4/multiarch/strchrnul.c
index 527160f7eb..7dd62ce533 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/strchrnul.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/strchrnul.c
@@ -1,5 +1,5 @@
/* Multiple versions of strchrnul.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# include <string.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/strlen-power7.S b/sysdeps/powerpc/powerpc32/power4/multiarch/strlen-power7.S
index d7b0dfa62e..d1afd21573 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/strlen-power7.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/strlen-power7.S
@@ -1,5 +1,5 @@
/* Optimized strlen implementation for PowerPC32/POWER7 using cmpb insn.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/strlen-ppc32.S b/sysdeps/powerpc/powerpc32/power4/multiarch/strlen-ppc32.S
index 99de9ca41f..d9ae88eb1a 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/strlen-ppc32.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/strlen-ppc32.S
@@ -1,5 +1,5 @@
/* Default strlen implementation for PowerPC32.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if defined SHARED && IS_IN (libc)
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/strlen.c b/sysdeps/powerpc/powerpc32/power4/multiarch/strlen.c
index 3ce050b8f2..2a971fb7b3 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/strlen.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/strlen.c
@@ -1,5 +1,5 @@
/* Multiple versions of strlen.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if defined SHARED && IS_IN (libc)
# define strlen __redirect_strlen
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/strncase-power7.c b/sysdeps/powerpc/powerpc32/power4/multiarch/strncase-power7.c
index d29fb55eef..b4f83ad312 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/strncase-power7.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/strncase-power7.c
@@ -1,5 +1,5 @@
/* Optimized strcasecmp_l implememtation for POWER7.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/strncase.c b/sysdeps/powerpc/powerpc32/power4/multiarch/strncase.c
index a286a7b92e..7576e49bef 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/strncase.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/strncase.c
@@ -1,5 +1,5 @@
/* Multiple versions of strncasecmp.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# include <string.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/strncase_l-power7.c b/sysdeps/powerpc/powerpc32/power4/multiarch/strncase_l-power7.c
index 5540a443a0..ebc23281a7 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/strncase_l-power7.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/strncase_l-power7.c
@@ -1,5 +1,5 @@
/* Optimized strcasecmp_l implememtation for POWER7.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/strncase_l.c b/sysdeps/powerpc/powerpc32/power4/multiarch/strncase_l.c
index 21ce9ec13d..a944f02bfc 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/strncase_l.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/strncase_l.c
@@ -1,5 +1,5 @@
/* Multiple versions of strncasecmp_l.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# include <string.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/strncmp-power7.S b/sysdeps/powerpc/powerpc32/power4/multiarch/strncmp-power7.S
index f1df407361..539ca6c921 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/strncmp-power7.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/strncmp-power7.S
@@ -1,5 +1,5 @@
/* Optimized strcmp implementation for POWER7/PowerPC32.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/strncmp-ppc32.S b/sysdeps/powerpc/powerpc32/power4/multiarch/strncmp-ppc32.S
index 59dd36daee..69e1748824 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/strncmp-ppc32.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/strncmp-ppc32.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2013-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/strncmp.c b/sysdeps/powerpc/powerpc32/power4/multiarch/strncmp.c
index cb1cbe72fe..ba00945781 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/strncmp.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/strncmp.c
@@ -1,5 +1,5 @@
/* Multiple versions of strncmp.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for definition in libc. */
#if defined SHARED && IS_IN (libc)
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/strnlen-power7.S b/sysdeps/powerpc/powerpc32/power4/multiarch/strnlen-power7.S
index d5137f619c..312860aa71 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/strnlen-power7.S
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/strnlen-power7.S
@@ -1,5 +1,5 @@
/* Optimized strnlen implementation for PowerPC32/POWER7 using cmpb insn.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by Luis Machado <luisgpm@br.ibm.com>.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/strnlen-ppc32.c b/sysdeps/powerpc/powerpc32/power4/multiarch/strnlen-ppc32.c
index df940d333f..d50d6de330 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/strnlen-ppc32.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/strnlen-ppc32.c
@@ -1,5 +1,5 @@
/* Default strnlen implementation for PowerPC32.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define STRNLEN __strnlen_ppc
#ifdef SHARED
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/strnlen.c b/sysdeps/powerpc/powerpc32/power4/multiarch/strnlen.c
index d056b74305..d11ad48770 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/strnlen.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/strnlen.c
@@ -1,5 +1,5 @@
/* Multiple versions of strnlen.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# define strnlen __redirect_strnlen
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/wcschr-power6.c b/sysdeps/powerpc/powerpc32/power4/multiarch/wcschr-power6.c
deleted file mode 100644
index dacc8af2b7..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/wcschr-power6.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/* wcschr.c - Wide Character Search for powerpc32/power6.
- Copyright (C) 2013-2018 Free Software 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 <http://www.gnu.org/licenses/>. */
-
-#include <wchar.h>
-
-#define WCSCHR __wcschr_power6
-
-#undef libc_hidden_def
-#define libc_hidden_def(name)
-
-#include <sysdeps/powerpc/power6/wcschr.c>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/wcschr-power7.c b/sysdeps/powerpc/powerpc32/power4/multiarch/wcschr-power7.c
deleted file mode 100644
index 2c284076f9..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/wcschr-power7.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/* wcschr.c - Wide Character Search for powerpc32/power7.
- Copyright (C) 2013-2018 Free Software 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 <http://www.gnu.org/licenses/>. */
-
-#include <wchar.h>
-
-#define WCSCHR __wcschr_power7
-
-#undef libc_hidden_def
-#define libc_hidden_def(name)
-
-#include <sysdeps/powerpc/power6/wcschr.c>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/wcschr-ppc32.c b/sysdeps/powerpc/powerpc32/power4/multiarch/wcschr-ppc32.c
deleted file mode 100644
index 340d4f1473..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/wcschr-ppc32.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <wchar.h>
-
-#if IS_IN (libc)
-# undef libc_hidden_weak
-# define libc_hidden_weak(name)
-
-# undef weak_alias
-# undef libc_hidden_def
-
-# ifdef SHARED
-# define libc_hidden_def(name) \
- __hidden_ver1 (__wcschr_ppc, __GI_wcschr, __wcschr_ppc); \
- strong_alias (__wcschr_ppc, __wcschr_ppc_1); \
- __hidden_ver1 (__wcschr_ppc_1, __GI___wcschr, __wcschr_ppc_1);
-# define weak_alias(name,alias)
-# else
-# define weak_alias(name, alias) \
- _weak_alias(__wcschr_ppc, __wcschr)
-# define libc_hidden_def(name)
-# endif /* SHARED */
-#endif
-
-extern __typeof (wcschr) __wcschr_ppc;
-
-#define WCSCHR __wcschr_ppc
-#include <wcsmbs/wcschr.c>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/wcschr.c b/sysdeps/powerpc/powerpc32/power4/multiarch/wcschr.c
deleted file mode 100644
index 97d55dc11c..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/wcschr.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Multiple versions of wcschr
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if IS_IN (libc)
-# define wcschr __redirect_wcschr
-# include <wchar.h>
-# include <shlib-compat.h>
-# include "init-arch.h"
-
-extern __typeof (__redirect_wcschr) __wcschr_ppc attribute_hidden;
-extern __typeof (__redirect_wcschr) __wcschr_power6 attribute_hidden;
-extern __typeof (__redirect_wcschr) __wcschr_power7 attribute_hidden;
-
-extern __typeof (__redirect_wcschr) __libc_wcschr;
-
-libc_ifunc (__libc_wcschr,
- (hwcap & PPC_FEATURE_HAS_VSX)
- ? __wcschr_power7 :
- (hwcap & PPC_FEATURE_ARCH_2_05)
- ? __wcschr_power6
- : __wcschr_ppc);
-#undef wcschr
-weak_alias (__libc_wcschr, wcschr)
-#else
-#include <wcsmbs/wcschr.c>
-#endif
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy-power6.c b/sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy-power6.c
deleted file mode 100644
index 9f0ae48363..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy-power6.c
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <wchar.h>
-
-#define WCSCPY __wcscpy_power6
-
-#include <sysdeps/powerpc/power6/wcscpy.c>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy-power7.c b/sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy-power7.c
deleted file mode 100644
index c4d6da5539..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy-power7.c
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <wchar.h>
-
-#define WCSCPY __wcscpy_power7
-
-#include <sysdeps/powerpc/power6/wcscpy.c>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy-ppc32.c b/sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy-ppc32.c
deleted file mode 100644
index b5d27ac7db..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy-ppc32.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <wchar.h>
-
-#if IS_IN (libc)
-# define WCSCPY __wcscpy_ppc
-#endif
-
-extern __typeof (wcscpy) __wcscpy_ppc;
-
-#include <wcsmbs/wcscpy.c>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy.c b/sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy.c
deleted file mode 100644
index 85bb8da3c2..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Multiple versions of wcscpy
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if IS_IN (libc)
-# include <wchar.h>
-# include <shlib-compat.h>
-# include "init-arch.h"
-
-extern __typeof (wcscpy) __wcscpy_ppc attribute_hidden;
-extern __typeof (wcscpy) __wcscpy_power6 attribute_hidden;
-extern __typeof (wcscpy) __wcscpy_power7 attribute_hidden;
-
-libc_ifunc (wcscpy,
- (hwcap & PPC_FEATURE_HAS_VSX)
- ? __wcscpy_power7 :
- (hwcap & PPC_FEATURE_ARCH_2_05)
- ? __wcscpy_power6
- : __wcscpy_ppc);
-#else
-#include <wcsmbs/wcscpy.c>
-#endif
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr-power6.c b/sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr-power6.c
deleted file mode 100644
index 230279368c..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr-power6.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#define WCSRCHR __wcsrchr_power6
-
-#include <sysdeps/powerpc/power6/wcsrchr.c>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr-power7.c b/sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr-power7.c
deleted file mode 100644
index f6f79b8c56..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr-power7.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#define WCSRCHR __wcsrchr_power7
-
-#include <sysdeps/powerpc/power6/wcsrchr.c>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr-ppc32.c b/sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr-ppc32.c
deleted file mode 100644
index 86d1efeee0..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr-ppc32.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <wchar.h>
-
-#if IS_IN (libc)
-# define WCSRCHR __wcsrchr_ppc
-#endif
-
-extern __typeof (wcsrchr) __wcsrchr_ppc;
-
-#include <wcsmbs/wcsrchr.c>
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr.c b/sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr.c
deleted file mode 100644
index b0a82bb365..0000000000
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Multiple versions of wcsrchr
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if IS_IN (libc)
-# include <wchar.h>
-# include <shlib-compat.h>
-# include "init-arch.h"
-
-extern __typeof (wcsrchr) __wcsrchr_ppc attribute_hidden;
-extern __typeof (wcsrchr) __wcsrchr_power6 attribute_hidden;
-extern __typeof (wcsrchr) __wcsrchr_power7 attribute_hidden;
-
-libc_ifunc (wcsrchr,
- (hwcap & PPC_FEATURE_HAS_VSX)
- ? __wcsrchr_power7 :
- (hwcap & PPC_FEATURE_ARCH_2_05)
- ? __wcsrchr_power6
- : __wcsrchr_ppc);
-#else
-#include <wcsmbs/wcsrchr.c>
-#endif
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/wordcopy-power7.c b/sysdeps/powerpc/powerpc32/power4/multiarch/wordcopy-power7.c
index 6d65ce6fe4..84d9a3629b 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/wordcopy-power7.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/wordcopy-power7.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2013-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define WORDCOPY_FWD_ALIGNED _wordcopy_fwd_aligned_power7
#define WORDCOPY_FWD_DEST_ALIGNED _wordcopy_fwd_dest_aligned_power7
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/wordcopy-ppc32.c b/sysdeps/powerpc/powerpc32/power4/multiarch/wordcopy-ppc32.c
index f409a34612..912c7124cf 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/wordcopy-ppc32.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/wordcopy-ppc32.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2013-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# define WORDCOPY_FWD_ALIGNED _wordcopy_fwd_aligned_ppc
diff --git a/sysdeps/powerpc/powerpc32/power4/strncmp.S b/sysdeps/powerpc/powerpc32/power4/strncmp.S
index ac806744eb..6c3ce90eef 100644
--- a/sysdeps/powerpc/powerpc32/power4/strncmp.S
+++ b/sysdeps/powerpc/powerpc32/power4/strncmp.S
@@ -1,5 +1,5 @@
/* Optimized strcmp implementation for PowerPC32.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/power5+/fpu/s_ceil.S b/sysdeps/powerpc/powerpc32/power5+/fpu/s_ceil.S
deleted file mode 100644
index 356c7a79ed..0000000000
--- a/sysdeps/powerpc/powerpc32/power5+/fpu/s_ceil.S
+++ /dev/null
@@ -1,29 +0,0 @@
-/* ceil function. PowerPC32/power5+ version.
- Copyright (C) 2006-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-#include <libm-alias-double.h>
-
- .machine "power5"
-EALIGN (__ceil, 4, 0)
- frip fp1, fp1
- blr
- END (__ceil)
-
-libm_alias_double (__ceil, ceil)
diff --git a/sysdeps/powerpc/powerpc32/power5+/fpu/s_ceilf.S b/sysdeps/powerpc/powerpc32/power5+/fpu/s_ceilf.S
deleted file mode 100644
index a0bcda17fd..0000000000
--- a/sysdeps/powerpc/powerpc32/power5+/fpu/s_ceilf.S
+++ /dev/null
@@ -1,30 +0,0 @@
-/* ceilf function. PowerPC32/power5+ version.
- Copyright (C) 2006-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <libm-alias-float.h>
-
- .machine "power5"
-EALIGN (__ceilf, 4, 0)
- frip fp1, fp1 /* The rounding instructions are double. */
- frsp fp1, fp1 /* But we need to set ooverflow for float. */
- blr
- END (__ceilf)
-
-libm_alias_float (__ceil, ceil)
-
diff --git a/sysdeps/powerpc/powerpc32/power5+/fpu/s_floor.S b/sysdeps/powerpc/powerpc32/power5+/fpu/s_floor.S
deleted file mode 100644
index e8a15f6c09..0000000000
--- a/sysdeps/powerpc/powerpc32/power5+/fpu/s_floor.S
+++ /dev/null
@@ -1,29 +0,0 @@
-/* floor function. PowerPC32/power5+ version.
- Copyright (C) 2006-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-#include <libm-alias-double.h>
-
- .machine "power5"
-EALIGN (__floor, 4, 0)
- frim fp1, fp1
- blr
- END (__floor)
-
-libm_alias_double (__floor, floor)
diff --git a/sysdeps/powerpc/powerpc32/power5+/fpu/s_floorf.S b/sysdeps/powerpc/powerpc32/power5+/fpu/s_floorf.S
deleted file mode 100644
index 385c40cdef..0000000000
--- a/sysdeps/powerpc/powerpc32/power5+/fpu/s_floorf.S
+++ /dev/null
@@ -1,30 +0,0 @@
-/* floorf function. PowerPC32/power5+ version.
- Copyright (C) 2006-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <libm-alias-float.h>
-
- .machine "power5"
-EALIGN (__floorf, 4, 0)
- frim fp1, fp1 /* The rounding instructions are double. */
- frsp fp1, fp1 /* But we need to set ooverflow for float. */
- blr
- END (__floorf)
-
-libm_alias_float (__floor, floor)
-
diff --git a/sysdeps/powerpc/powerpc32/power5+/fpu/s_llround.S b/sysdeps/powerpc/powerpc32/power5+/fpu/s_llround.S
deleted file mode 100644
index c70c0bd70b..0000000000
--- a/sysdeps/powerpc/powerpc32/power5+/fpu/s_llround.S
+++ /dev/null
@@ -1,53 +0,0 @@
-/* lround function. POWER5+, PowerPC32 version.
- Copyright (C) 2006-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-#include <libm-alias-float.h>
-#include <libm-alias-double.h>
-
-/* long [r3] llround (float x [fp1])
- IEEE 1003.1 lround function. IEEE specifies "round to the nearest
- integer value, rounding halfway cases away from zero, regardless of
- the current rounding mode." However PowerPC Architecture defines
- "round to Nearest" as "Choose the best approximation. In case of a
- tie, choose the one that is even (least significant bit o).".
- So we pre-round using the V2.02 Floating Round to Integer Nearest
- instruction before we use the Floating Convert to Integer Word with
- round to zero instruction. */
-
- .machine "power5"
-ENTRY (__llround)
- stwu r1,-16(r1)
- cfi_adjust_cfa_offset (16)
- frin fp2,fp1
- fctidz fp3,fp2 /* Convert To Integer Word lround toward 0. */
- stfd fp3,8(r1)
- nop /* Ensure the following load is in a different dispatch */
- nop /* group to avoid pipe stall on POWER4&5. */
- nop
- lwz r3,8+HIWORD(r1)
- lwz r4,8+LOWORD(r1)
- addi r1,r1,16
- blr
- END (__llround)
-
-libm_alias_double (__llround, llround)
-
-strong_alias (__llround, __llroundf)
-libm_alias_float (__llround, llround)
diff --git a/sysdeps/powerpc/powerpc32/power5+/fpu/s_llroundf.S b/sysdeps/powerpc/powerpc32/power5+/fpu/s_llroundf.S
deleted file mode 100644
index 030d2fdff8..0000000000
--- a/sysdeps/powerpc/powerpc32/power5+/fpu/s_llroundf.S
+++ /dev/null
@@ -1 +0,0 @@
-/* __llroundf is in s_llround.S */
diff --git a/sysdeps/powerpc/powerpc32/power5+/fpu/s_lround.S b/sysdeps/powerpc/powerpc32/power5+/fpu/s_lround.S
deleted file mode 100644
index 09fa022e9e..0000000000
--- a/sysdeps/powerpc/powerpc32/power5+/fpu/s_lround.S
+++ /dev/null
@@ -1,51 +0,0 @@
-/* lround function. POWER5+, PowerPC32 version.
- Copyright (C) 2006-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-#include <libm-alias-float.h>
-#include <libm-alias-double.h>
-
-/* long [r3] lround (float x [fp1])
- IEEE 1003.1 lround function. IEEE specifies "round to the nearest
- integer value, rounding halfway cases away from zero, regardless of
- the current rounding mode." However PowerPC Architecture defines
- "round to Nearest" as "Choose the best approximation. In case of a
- tie, choose the one that is even (least significant bit o).".
- So we pre-round using the V2.02 Floating Round to Integer Nearest
- instruction before we use the Floating Convert to Integer Word with
- round to zero instruction. */
-
- .machine "power5"
-ENTRY (__lround)
- stwu r1,-16(r1)
- cfi_adjust_cfa_offset (16)
- frin fp2,fp1
- fctiwz fp3,fp2 /* Convert To Integer Word lround toward 0. */
- stfd fp3,8(r1)
- nop /* Ensure the following load is in a different dispatch */
- nop /* group to avoid pipe stall on POWER4&5. */
- nop
- lwz r3,8+LOWORD(r1)
- addi r1,r1,16
- blr
- END (__lround)
-
-libm_alias_double (__lround, lround)
-
-strong_alias (__lround, __lroundf)
-libm_alias_float (__lround, lround)
diff --git a/sysdeps/powerpc/powerpc32/power5+/fpu/s_round.S b/sysdeps/powerpc/powerpc32/power5+/fpu/s_round.S
deleted file mode 100644
index 36c9bd3bee..0000000000
--- a/sysdeps/powerpc/powerpc32/power5+/fpu/s_round.S
+++ /dev/null
@@ -1,29 +0,0 @@
-/* round function. PowerPC32/power5+ version.
- Copyright (C) 2006-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-#include <libm-alias-double.h>
-
- .machine "power5"
-EALIGN (__round, 4, 0)
- frin fp1, fp1
- blr
- END (__round)
-
-libm_alias_double (__round, round)
diff --git a/sysdeps/powerpc/powerpc32/power5+/fpu/s_roundf.S b/sysdeps/powerpc/powerpc32/power5+/fpu/s_roundf.S
deleted file mode 100644
index c720e77136..0000000000
--- a/sysdeps/powerpc/powerpc32/power5+/fpu/s_roundf.S
+++ /dev/null
@@ -1,30 +0,0 @@
-/* roundf function. PowerPC32/power5+ version.
- Copyright (C) 2006-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <libm-alias-float.h>
-
- .machine "power5"
-EALIGN (__roundf, 4, 0)
- frin fp1, fp1 /* The rounding instructions are double. */
- frsp fp1, fp1 /* But we need to set ooverflow for float. */
- blr
- END (__roundf)
-
-libm_alias_float (__round, round)
-
diff --git a/sysdeps/powerpc/powerpc32/power5+/fpu/s_trunc.S b/sysdeps/powerpc/powerpc32/power5+/fpu/s_trunc.S
deleted file mode 100644
index 14007e9632..0000000000
--- a/sysdeps/powerpc/powerpc32/power5+/fpu/s_trunc.S
+++ /dev/null
@@ -1,29 +0,0 @@
-/* trunc function. PowerPC32/power5+ version.
- Copyright (C) 2006-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-#include <libm-alias-double.h>
-
- .machine "power5"
-EALIGN (__trunc, 4, 0)
- friz fp1, fp1
- blr
- END (__trunc)
-
-libm_alias_double (__trunc, trunc)
diff --git a/sysdeps/powerpc/powerpc32/power5+/fpu/s_truncf.S b/sysdeps/powerpc/powerpc32/power5+/fpu/s_truncf.S
deleted file mode 100644
index 092bae7a2d..0000000000
--- a/sysdeps/powerpc/powerpc32/power5+/fpu/s_truncf.S
+++ /dev/null
@@ -1,30 +0,0 @@
-/* truncf function. PowerPC32/power5+ version.
- Copyright (C) 2006-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <libm-alias-float.h>
-
- .machine "power5"
-EALIGN (__truncf, 4, 0)
- friz fp1, fp1 /* The rounding instructions are double. */
- frsp fp1, fp1 /* But we need to set ooverflow for float. */
- blr
- END (__truncf)
-
-libm_alias_float (__trunc, trunc)
-
diff --git a/sysdeps/powerpc/powerpc32/power5/fpu/s_isnan.S b/sysdeps/powerpc/powerpc32/power5/fpu/s_isnan.S
deleted file mode 100644
index f159454e0d..0000000000
--- a/sysdeps/powerpc/powerpc32/power5/fpu/s_isnan.S
+++ /dev/null
@@ -1,61 +0,0 @@
-/* isnan(). PowerPC32 version.
- Copyright (C) 2008-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-/* int __isnan(x) */
- .machine power5
-EALIGN (__isnan, 4, 0)
- stwu r1,-32(r1)
- cfi_adjust_cfa_offset (32)
- ori r1,r1,0
- stfd fp1,24(r1) /* copy FPR to GPR */
- ori r1,r1,0
- lwz r4,24+HIWORD(r1)
- lwz r5,24+LOWORD(r1)
- lis r0,0x7ff0 /* const long r0 0x7ff00000 00000000 */
- clrlwi r4,r4,1 /* x = fabs(x) */
- cmpw cr7,r4,r0 /* if (fabs(x) =< inf) */
- cmpwi cr6,r5,0
- li r3,0 /* then return 0 */
- addi r1,r1,32
- cfi_adjust_cfa_offset (-32)
- bltlr+ cr7
- bgt- cr7,L(NaN)
- beqlr+ cr6
-L(NaN):
- li r3,1 /* else return 1 */
- blr
- END (__isnan)
-
-hidden_def (__isnan)
-weak_alias (__isnan, isnan)
-
-#ifdef NO_LONG_DOUBLE
-strong_alias (__isnan, __isnanl)
-weak_alias (__isnan, isnanl)
-#endif
-
-#if !IS_IN (libm)
-# if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
-compat_symbol (libc, __isnan, __isnanl, GLIBC_2_0);
-compat_symbol (libc, isnan, isnanl, GLIBC_2_0);
-# endif
-#endif
-
diff --git a/sysdeps/powerpc/powerpc32/power5/fpu/s_isnanf.S b/sysdeps/powerpc/powerpc32/power5/fpu/s_isnanf.S
deleted file mode 100644
index c45e4563da..0000000000
--- a/sysdeps/powerpc/powerpc32/power5/fpu/s_isnanf.S
+++ /dev/null
@@ -1,45 +0,0 @@
-/* isnan(). PowerPC32 version.
- Copyright (C) 2008-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-/* int __isnanf(x) */
- .machine power5
-EALIGN (__isnanf, 4, 0)
- stwu r1,-32(r1)
- cfi_adjust_cfa_offset (32)
- stfs fp1,28(r1) /* copy FPR to GPR */
- nop
- nop
- lwz r4,28(r1)
- lis r0,0x7f80 /* const long r0 0x7f800000 */
- clrlwi r4,r4,1 /* x = fabs(x) */
- cmpw cr7,r4,r0 /* if (fabs(x) =< inf) */
- li r3,0 /* then return 0 */
- addi r1,r1,32
- cfi_adjust_cfa_offset (-32)
- blelr+ cr7
-L(NaN):
- li r3,1 /* else return 1 */
- blr
- END (__isnanf)
-
-hidden_def (__isnanf)
-weak_alias (__isnanf, isnanf)
-
diff --git a/sysdeps/powerpc/powerpc32/power6/fpu/s_copysign.S b/sysdeps/powerpc/powerpc32/power6/fpu/s_copysign.S
deleted file mode 100644
index 6069b29644..0000000000
--- a/sysdeps/powerpc/powerpc32/power6/fpu/s_copysign.S
+++ /dev/null
@@ -1,49 +0,0 @@
-/* copysign(). PowerPC32/POWER6 version.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
- Contributed by Luis Machado <luisgpm@br.ibm.com>.
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-#include <libm-alias-float.h>
-#include <libm-alias-double.h>
-
-/* double [f1] copysign (double [f1] x, double [f2] y);
- copysign(x,y) returns a value with the magnitude of x and
- with the sign bit of y. */
-
- .section ".text"
- .type __copysign, @function
- .machine power6
-EALIGN (__copysign, 4, 0)
- CALL_MCOUNT
- fcpsgn fp1,fp2,fp1
- blr
-END (__copysign)
-
-hidden_def (__copysign)
-libm_alias_double (__copysign, copysign)
-
-/* It turns out that the 'double' version will also always work for
- single-precision. */
-strong_alias (__copysign, __copysignf)
-hidden_def (__copysignf)
-libm_alias_float (__copysign, copysign)
-
-#if LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)
-compat_symbol (libc, copysign, copysignl, GLIBC_2_0);
-#endif
diff --git a/sysdeps/powerpc/powerpc32/power6/fpu/s_copysignf.S b/sysdeps/powerpc/powerpc32/power6/fpu/s_copysignf.S
deleted file mode 100644
index d4aa702d07..0000000000
--- a/sysdeps/powerpc/powerpc32/power6/fpu/s_copysignf.S
+++ /dev/null
@@ -1 +0,0 @@
-/* This function uses the same code as s_copysign.S. */
diff --git a/sysdeps/powerpc/powerpc32/power6/fpu/s_isnan.S b/sysdeps/powerpc/powerpc32/power6/fpu/s_isnan.S
deleted file mode 100644
index cecc7c8509..0000000000
--- a/sysdeps/powerpc/powerpc32/power6/fpu/s_isnan.S
+++ /dev/null
@@ -1,61 +0,0 @@
-/* isnan(). PowerPC32 version.
- Copyright (C) 2008-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-/* int __isnan(x) */
- .machine power6
-EALIGN (__isnan, 4, 0)
- stwu r1,-32(r1)
- cfi_adjust_cfa_offset (32)
- ori r1,r1,0
- stfd fp1,24(r1) /* copy FPR to GPR */
- ori r1,r1,0
- lwz r4,24+HIWORD(r1)
- lwz r5,24+LOWORD(r1)
- lis r0,0x7ff0 /* const long r0 0x7ff00000 00000000 */
- clrlwi r4,r4,1 /* x = fabs(x) */
- cmpw cr7,r4,r0 /* if (fabs(x) =< inf) */
- cmpwi cr6,r5,0
- li r3,0 /* then return 0 */
- addi r1,r1,32
- cfi_adjust_cfa_offset (-32)
- bltlr+ cr7
- bgt- cr7,L(NaN)
- beqlr+ cr6
-L(NaN):
- li r3,1 /* else return 1 */
- blr
- END (__isnan)
-
-hidden_def (__isnan)
-weak_alias (__isnan, isnan)
-
-#ifdef NO_LONG_DOUBLE
-strong_alias (__isnan, __isnanl)
-weak_alias (__isnan, isnanl)
-#endif
-
-#if !IS_IN (libm)
-# if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
-compat_symbol (libc, __isnan, __isnanl, GLIBC_2_0);
-compat_symbol (libc, isnan, isnanl, GLIBC_2_0);
-# endif
-#endif
-
diff --git a/sysdeps/powerpc/powerpc32/power6/fpu/s_isnanf.S b/sysdeps/powerpc/powerpc32/power6/fpu/s_isnanf.S
deleted file mode 100644
index 8faac974fd..0000000000
--- a/sysdeps/powerpc/powerpc32/power6/fpu/s_isnanf.S
+++ /dev/null
@@ -1,44 +0,0 @@
-/* isnanf(). PowerPC32 version.
- Copyright (C) 2008-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-/* int __isnanf(x) */
- .machine power6
-EALIGN (__isnanf, 4, 0)
- stwu r1,-32(r1)
- cfi_adjust_cfa_offset (32)
- ori r1,r1,0
- stfs fp1,24(r1) /* copy FPR to GPR */
- ori r1,r1,0
- lwz r4,24(r1)
- lis r0,0x7f80 /* const long r0 0x7f800000 */
- clrlwi r4,r4,1 /* x = fabs(x) */
- cmpw cr7,r4,r0 /* if (fabs(x) =< inf) */
- li r3,0 /* then return 0 */
- addi r1,r1,32
- cfi_adjust_cfa_offset (-32)
- blelr+ cr7
-L(NaN):
- li r3,1 /* else return 1 */
- blr
- END (__isnanf)
-
-hidden_def (__isnanf)
-weak_alias (__isnanf, isnanf)
diff --git a/sysdeps/powerpc/powerpc32/power6/fpu/s_llrint.S b/sysdeps/powerpc/powerpc32/power6/fpu/s_llrint.S
deleted file mode 100644
index 4ec398fa99..0000000000
--- a/sysdeps/powerpc/powerpc32/power6/fpu/s_llrint.S
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Round double to long int. PowerPC32 on PowerPC64 version.
- Copyright (C) 2004-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-#include <libm-alias-double.h>
-
-/* long long int[r3, r4] __llrint (double x[fp1]) */
-ENTRY (__llrint)
- CALL_MCOUNT
- stwu r1,-16(r1)
- cfi_adjust_cfa_offset (16)
- fctid fp13,fp1
- stfd fp13,8(r1)
-/* Insure the following load is in a different dispatch group by
- inserting "group ending nop". */
- ori r1,r1,0
- lwz r3,8+HIWORD(r1)
- lwz r4,8+LOWORD(r1)
- addi r1,r1,16
- blr
- END (__llrint)
-
-libm_alias_double (__llrint, llrint)
diff --git a/sysdeps/powerpc/powerpc32/power6/fpu/s_llrintf.S b/sysdeps/powerpc/powerpc32/power6/fpu/s_llrintf.S
deleted file mode 100644
index bb6b6bc3a2..0000000000
--- a/sysdeps/powerpc/powerpc32/power6/fpu/s_llrintf.S
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Round float to long int. PowerPC32 on PowerPC64 version.
- Copyright (C) 2004-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <libm-alias-float.h>
-
-/* long long int[r3, r4] __llrintf (float x[fp1]) */
-ENTRY (__llrintf)
- CALL_MCOUNT
- stwu r1,-16(r1)
- cfi_adjust_cfa_offset (16)
- fctid fp13,fp1
- stfd fp13,8(r1)
-/* Insure the following load is in a different dispatch group by
- inserting "group ending nop". */
- ori r1,r1,0
- lwz r3,8+HIWORD(r1)
- lwz r4,8+LOWORD(r1)
- addi r1,r1,16
- blr
- END (__llrintf)
-
-libm_alias_float (__llrint, llrint)
-
diff --git a/sysdeps/powerpc/powerpc32/power6/fpu/s_llround.S b/sysdeps/powerpc/powerpc32/power6/fpu/s_llround.S
deleted file mode 100644
index fc22a557ad..0000000000
--- a/sysdeps/powerpc/powerpc32/power6/fpu/s_llround.S
+++ /dev/null
@@ -1,53 +0,0 @@
-/* lround function. POWER5+, PowerPC32 version.
- Copyright (C) 2006-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-#include <libm-alias-float.h>
-#include <libm-alias-double.h>
-
-/* long [r3] llround (float x [fp1])
- IEEE 1003.1 lround function. IEEE specifies "round to the nearest
- integer value, rounding halfway cases away from zero, regardless of
- the current rounding mode." However PowerPC Architecture defines
- "round to Nearest" as "Choose the best approximation. In case of a
- tie, choose the one that is even (least significant bit o).".
- So we pre-round using the V2.02 Floating Round to Integer Nearest
- instruction before we use the Floating Convert to Integer Word with
- round to zero instruction. */
-
- .machine "power5"
-ENTRY (__llround)
- stwu r1,-16(r1)
- cfi_adjust_cfa_offset (16)
- frin fp2,fp1
- fctidz fp3,fp2 /* Convert To Integer Word lround toward 0. */
- stfd fp3,8(r1)
-/* Insure the following load is in a different dispatch group by
- inserting "group ending nop". */
- ori r1,r1,0
- lwz r3,8+HIWORD(r1)
- lwz r4,8+LOWORD(r1)
- addi r1,r1,16
- blr
- END (__llround)
-
-libm_alias_double (__llround, llround)
-
-strong_alias (__llround, __llroundf)
-libm_alias_float (__llround, llround)
diff --git a/sysdeps/powerpc/powerpc32/power6/fpu/s_llroundf.S b/sysdeps/powerpc/powerpc32/power6/fpu/s_llroundf.S
deleted file mode 100644
index 030d2fdff8..0000000000
--- a/sysdeps/powerpc/powerpc32/power6/fpu/s_llroundf.S
+++ /dev/null
@@ -1 +0,0 @@
-/* __llroundf is in s_llround.S */
diff --git a/sysdeps/powerpc/powerpc32/power6/memcpy.S b/sysdeps/powerpc/powerpc32/power6/memcpy.S
index 3ca26a2344..677cfcb4d3 100644
--- a/sysdeps/powerpc/powerpc32/power6/memcpy.S
+++ b/sysdeps/powerpc/powerpc32/power6/memcpy.S
@@ -1,5 +1,5 @@
/* Optimized memcpy implementation for PowerPC32 on POWER6.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/power6/memset.S b/sysdeps/powerpc/powerpc32/power6/memset.S
index 8f5e862199..70ab65df3f 100644
--- a/sysdeps/powerpc/powerpc32/power6/memset.S
+++ b/sysdeps/powerpc/powerpc32/power6/memset.S
@@ -1,5 +1,5 @@
/* Optimized 32-bit memset implementation for POWER6.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/power6x/fpu/s_lrint.S b/sysdeps/powerpc/powerpc32/power6x/fpu/s_lrint.S
index ad4a010425..c214f9112d 100644
--- a/sysdeps/powerpc/powerpc32/power6x/fpu/s_lrint.S
+++ b/sysdeps/powerpc/powerpc32/power6x/fpu/s_lrint.S
@@ -1,5 +1,5 @@
/* Round double to long int. POWER6x PowerPC32 version.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <math_ldbl_opt.h>
diff --git a/sysdeps/powerpc/powerpc32/power6x/fpu/s_lround.S b/sysdeps/powerpc/powerpc32/power6x/fpu/s_lround.S
index 5131d11e17..e85b11f351 100644
--- a/sysdeps/powerpc/powerpc32/power6x/fpu/s_lround.S
+++ b/sysdeps/powerpc/powerpc32/power6x/fpu/s_lround.S
@@ -1,5 +1,5 @@
/* lround function. POWER6x, PowerPC32 version.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <math_ldbl_opt.h>
diff --git a/sysdeps/powerpc/powerpc32/power7/fpu/s_finite.S b/sysdeps/powerpc/powerpc32/power7/fpu/s_finite.S
deleted file mode 100644
index 793cf0da94..0000000000
--- a/sysdeps/powerpc/powerpc32/power7/fpu/s_finite.S
+++ /dev/null
@@ -1,93 +0,0 @@
-/* finite(). PowerPC32/POWER7 version.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
- Contributed by Luis Machado <luisgpm@br.ibm.com>.
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-/* int __finite(x) */
- .section .rodata.cst8,"aM",@progbits,8
- .align 3
-.LC0: /* 1.0 */
- .quad 0x3ff0000000000000
-
- .section ".text"
- .type __finite, @function
- .machine power7
-ENTRY (__finite)
-#ifdef SHARED
- mflr r11
- cfi_register(lr,r11)
-
- SETUP_GOT_ACCESS(r9,got_label)
- addis r9,r9,.LC0-got_label@ha
- lfd fp0,.LC0-got_label@l(r9)
-
- mtlr r11
- cfi_same_value (lr)
-#else
- lis r9,.LC0@ha
- lfd fp0,.LC0@l(r9)
-#endif
- ftdiv cr7,fp1,fp0
- li r3,1
- bflr 30
-
- /* We have -INF/+INF/NaN or a denormal. */
-
- stwu r1,-16(r1) /* Allocate stack space. */
- stfd fp1,8(r1) /* Transfer FP to GPR's. */
-
- ori 2,2,0 /* Force a new dispatch group. */
- lhz r0,8+HISHORT(r1) /* Fetch the upper 16 bits of the FP value
- (biased exponent and sign bit). */
- clrlwi r0,r0,17 /* r0 = abs(r0). */
- addi r1,r1,16 /* Reset the stack pointer. */
- cmpwi cr7,r0,0x7ff0 /* r4 == 0x7ff0?. */
- bltlr cr7 /* LT means we have a denormal. */
- li r3,0
- blr
- END (__finite)
-
-hidden_def (__finite)
-weak_alias (__finite, finite)
-
-/* It turns out that the 'double' version will also always work for
- single-precision. */
-strong_alias (__finite, __finitef)
-hidden_def (__finitef)
-weak_alias (__finitef, finitef)
-
-#ifdef NO_LONG_DOUBLE
-strong_alias (__finite, __finitel)
-weak_alias (__finite, finitel)
-#endif
-
-#if IS_IN (libm)
-# if LONG_DOUBLE_COMPAT (libm, GLIBC_2_0)
-compat_symbol (libm, finite, finitel, GLIBC_2_0)
-# endif
-# if LONG_DOUBLE_COMPAT (libm, GLIBC_2_1)
-compat_symbol (libm, __finite, __finitel, GLIBC_2_1)
-# endif
-#else
-# if LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)
-compat_symbol (libc, __finite, __finitel, GLIBC_2_0);
-compat_symbol (libc, finite, finitel, GLIBC_2_0);
-# endif
-#endif
diff --git a/sysdeps/powerpc/powerpc32/power7/fpu/s_finitef.S b/sysdeps/powerpc/powerpc32/power7/fpu/s_finitef.S
deleted file mode 100644
index 54bd94176d..0000000000
--- a/sysdeps/powerpc/powerpc32/power7/fpu/s_finitef.S
+++ /dev/null
@@ -1 +0,0 @@
-/* This function uses the same code as s_finite.S. */
diff --git a/sysdeps/powerpc/powerpc32/power7/fpu/s_isinf.S b/sysdeps/powerpc/powerpc32/power7/fpu/s_isinf.S
deleted file mode 100644
index 400fec7fdc..0000000000
--- a/sysdeps/powerpc/powerpc32/power7/fpu/s_isinf.S
+++ /dev/null
@@ -1,85 +0,0 @@
-/* isinf(). PowerPC32/POWER7 version.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
- Contributed by Luis Machado <luisgpm@br.ibm.com>.
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-/* int __isinf(x) */
- .section .rodata.cst8,"aM",@progbits,8
- .align 3
-.LC0: /* 1.0 */
- .quad 0x3ff0000000000000
-
- .section ".text"
- .type __isinf, @function
- .machine power7
-ENTRY (__isinf)
-#ifdef SHARED
- mflr r11
- cfi_register(lr,r11)
-
- SETUP_GOT_ACCESS(r9,got_label)
- addis r9,r9,.LC0-got_label@ha
- lfd fp0,.LC0-got_label@l(r9)
-
- mtlr r11
- cfi_same_value (lr)
-#else
- lis r9,.LC0@ha
- lfd fp0,.LC0@l(r9)
-#endif
- ftdiv cr7,fp1,fp0
- li r3,0
- bflr 29 /* If not INF, return. */
-
- /* Either we have +INF or -INF. */
-
- stwu r1,-16(r1) /* Allocate stack space. */
- stfd fp1,8(r1) /* Transfer FP to GPR's. */
- ori 2,2,0 /* Force a new dispatch group. */
- lhz r4,8+HISHORT(r1) /* Fetch the upper 16 bits of the FP value
- (biased exponent and sign bit). */
- addi r1,r1,16 /* Reset the stack pointer. */
- cmpwi cr7,r4,0x7ff0 /* r4 == 0x7ff0? */
- li r3,1
- beqlr cr7 /* EQ means INF, otherwise -INF. */
- li r3,-1
- blr
- END (__isinf)
-
-hidden_def (__isinf)
-weak_alias (__isinf, isinf)
-
-/* It turns out that the 'double' version will also always work for
- single-precision. */
-strong_alias (__isinf, __isinff)
-hidden_def (__isinff)
-weak_alias (__isinff, isinff)
-
-#ifdef NO_LONG_DOUBLE
-strong_alias (__isinf, __isinfl)
-weak_alias (__isinf, isinfl)
-#endif
-
-#if !IS_IN (libm)
-# if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
-compat_symbol (libc, __isinf, __isinfl, GLIBC_2_0);
-compat_symbol (libc, isinf, isinfl, GLIBC_2_0);
-# endif
-#endif
diff --git a/sysdeps/powerpc/powerpc32/power7/fpu/s_isinff.S b/sysdeps/powerpc/powerpc32/power7/fpu/s_isinff.S
deleted file mode 100644
index be759e091e..0000000000
--- a/sysdeps/powerpc/powerpc32/power7/fpu/s_isinff.S
+++ /dev/null
@@ -1 +0,0 @@
-/* This function uses the same code as s_isinf.S. */
diff --git a/sysdeps/powerpc/powerpc32/power7/fpu/s_isnan.S b/sysdeps/powerpc/powerpc32/power7/fpu/s_isnan.S
deleted file mode 100644
index b8bb0e667e..0000000000
--- a/sysdeps/powerpc/powerpc32/power7/fpu/s_isnan.S
+++ /dev/null
@@ -1,90 +0,0 @@
-/* isnan(). PowerPC32/POWER7 version.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
- Contributed by Luis Machado <luisgpm@br.ibm.com>.
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-/* int __isnan(x) */
- .section .rodata.cst8,"aM",@progbits,8
- .align 3
-.LC0: /* 1.0 */
- .quad 0x3ff0000000000000
-
- .section ".text"
- .type __isnan, @function
- .machine power7
-ENTRY (__isnan)
-#ifdef SHARED
- mflr r11
- cfi_register(lr,r11)
-
- SETUP_GOT_ACCESS(r9,got_label)
- addis r9,r9,.LC0-got_label@ha
- lfd fp0,.LC0-got_label@l(r9)
-
- mtlr r11
- cfi_same_value (lr)
-#else
- lis r9,.LC0@ha
- lfd fp0,.LC0@l(r9)
-#endif
- ftdiv cr7,fp1,fp0
- li r3,0
- bflr 30 /* If not NaN or Inf, finish. */
-
- /* We have -INF/+INF/NaN or a denormal. */
-
- stwu r1,-16(r1) /* Allocate stack space. */
- stfd fp1,8(r1) /* Transfer FP to GPR's. */
- ori 2,2,0 /* Force a new dispatch group. */
- lwz r4,8+HIWORD(r1) /* Load the upper half of the FP value. */
- lwz r5,8+LOWORD(r1) /* Load the lower half of the FP value. */
- addi r1,r1,16 /* Reset the stack pointer. */
- lis r0,0x7ff0 /* Load the upper portion for an INF/NaN. */
- clrlwi r4,r4,1 /* r4 = abs(r4). */
- cmpw cr7,r4,r0 /* if (abs(r4) <= inf). */
- cmpwi cr6,r5,0 /* r5 == 0x00000000? */
- bltlr cr7 /* LT means we have a denormal. */
- bgt cr7,L(NaN) /* GT means we have a NaN. */
- beqlr cr6 /* EQ means we have +/-INF. */
-L(NaN):
- li r3,1 /* x == NaN? */
- blr
- END (__isnan)
-
-hidden_def (__isnan)
-weak_alias (__isnan, isnan)
-
-/* It turns out that the 'double' version will also always work for
- single-precision. */
-strong_alias (__isnan, __isnanf)
-hidden_def (__isnanf)
-weak_alias (__isnanf, isnanf)
-
-#ifdef NO_LONG_DOUBLE
-strong_alias (__isnan, __isnanl)
-weak_alias (__isnan, isnanl)
-#endif
-
-#if !IS_IN (libm)
-# if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
-compat_symbol (libc, __isnan, __isnanl, GLIBC_2_0);
-compat_symbol (libc, isnan, isnanl, GLIBC_2_0);
-# endif
-#endif
diff --git a/sysdeps/powerpc/powerpc32/power7/fpu/s_isnanf.S b/sysdeps/powerpc/powerpc32/power7/fpu/s_isnanf.S
deleted file mode 100644
index b48c85e0d3..0000000000
--- a/sysdeps/powerpc/powerpc32/power7/fpu/s_isnanf.S
+++ /dev/null
@@ -1 +0,0 @@
-/* This function uses the same code as s_isnan.S. */
diff --git a/sysdeps/powerpc/powerpc32/power7/memchr.S b/sysdeps/powerpc/powerpc32/power7/memchr.S
index ec78709c35..47ae9d5898 100644
--- a/sysdeps/powerpc/powerpc32/power7/memchr.S
+++ b/sysdeps/powerpc/powerpc32/power7/memchr.S
@@ -1,5 +1,5 @@
/* Optimized memchr implementation for PowerPC32/POWER7 using cmpb insn.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by Luis Machado <luisgpm@br.ibm.com>.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/power7/memcmp.S b/sysdeps/powerpc/powerpc32/power7/memcmp.S
index 8c1a00d635..cf9e330044 100644
--- a/sysdeps/powerpc/powerpc32/power7/memcmp.S
+++ b/sysdeps/powerpc/powerpc32/power7/memcmp.S
@@ -1,5 +1,5 @@
/* Optimized memcmp implementation for POWER7/PowerPC32.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/power7/memcpy.S b/sysdeps/powerpc/powerpc32/power7/memcpy.S
index 76b1c53c43..94382d5471 100644
--- a/sysdeps/powerpc/powerpc32/power7/memcpy.S
+++ b/sysdeps/powerpc/powerpc32/power7/memcpy.S
@@ -1,5 +1,5 @@
/* Optimized memcpy implementation for PowerPC32/POWER7.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by Luis Machado <luisgpm@br.ibm.com>.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/power7/mempcpy.S b/sysdeps/powerpc/powerpc32/power7/mempcpy.S
index 1a3f4ebea1..725f6aa933 100644
--- a/sysdeps/powerpc/powerpc32/power7/mempcpy.S
+++ b/sysdeps/powerpc/powerpc32/power7/mempcpy.S
@@ -1,5 +1,5 @@
/* Optimized mempcpy implementation for POWER7.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by Luis Machado <luisgpm@br.ibm.com>.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/power7/memrchr.S b/sysdeps/powerpc/powerpc32/power7/memrchr.S
index aedae95914..e4d5db9fb9 100644
--- a/sysdeps/powerpc/powerpc32/power7/memrchr.S
+++ b/sysdeps/powerpc/powerpc32/power7/memrchr.S
@@ -1,5 +1,5 @@
/* Optimized memrchr implementation for PowerPC32/POWER7 using cmpb insn.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by Luis Machado <luisgpm@br.ibm.com>.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/power7/memset.S b/sysdeps/powerpc/powerpc32/power7/memset.S
index 26fa736ab2..ceb68af78a 100644
--- a/sysdeps/powerpc/powerpc32/power7/memset.S
+++ b/sysdeps/powerpc/powerpc32/power7/memset.S
@@ -1,5 +1,5 @@
/* Optimized memset implementation for PowerPC32/POWER7.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by Luis Machado <luisgpm@br.ibm.com>.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/power7/rawmemchr.S b/sysdeps/powerpc/powerpc32/power7/rawmemchr.S
index a886e13c90..f482f52700 100644
--- a/sysdeps/powerpc/powerpc32/power7/rawmemchr.S
+++ b/sysdeps/powerpc/powerpc32/power7/rawmemchr.S
@@ -1,5 +1,5 @@
/* Optimized rawmemchr implementation for PowerPC32/POWER7 using cmpb insn.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by Luis Machado <luisgpm@br.ibm.com>.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/power7/strcasecmp.S b/sysdeps/powerpc/powerpc32/power7/strcasecmp.S
index 7bd8b43166..76e042deb7 100644
--- a/sysdeps/powerpc/powerpc32/power7/strcasecmp.S
+++ b/sysdeps/powerpc/powerpc32/power7/strcasecmp.S
@@ -1,5 +1,5 @@
/* Optimized strcasecmp implementation for PowerPC32.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ 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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <locale-defines.h>
diff --git a/sysdeps/powerpc/powerpc32/power7/strchr.S b/sysdeps/powerpc/powerpc32/power7/strchr.S
index 54bb4ad502..69641abb40 100644
--- a/sysdeps/powerpc/powerpc32/power7/strchr.S
+++ b/sysdeps/powerpc/powerpc32/power7/strchr.S
@@ -1,5 +1,5 @@
/* Optimized strchr implementation for PowerPC32/POWER7 using cmpb insn.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by Luis Machado <luisgpm@br.ibm.com>.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/power7/strchrnul.S b/sysdeps/powerpc/powerpc32/power7/strchrnul.S
index 634bf56e62..51024baf01 100644
--- a/sysdeps/powerpc/powerpc32/power7/strchrnul.S
+++ b/sysdeps/powerpc/powerpc32/power7/strchrnul.S
@@ -1,5 +1,5 @@
/* Optimized strchrnul implementation for PowerPC32/POWER7 using cmpb insn.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by Luis Machado <luisgpm@br.ibm.com>.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/power7/strlen.S b/sysdeps/powerpc/powerpc32/power7/strlen.S
index f7d1ebb8d4..dbe79c78c4 100644
--- a/sysdeps/powerpc/powerpc32/power7/strlen.S
+++ b/sysdeps/powerpc/powerpc32/power7/strlen.S
@@ -1,5 +1,5 @@
/* Optimized strlen implementation for PowerPC32/POWER7 using cmpb insn.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by Luis Machado <luisgpm@br.ibm.com>.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/power7/strncmp.S b/sysdeps/powerpc/powerpc32/power7/strncmp.S
index 9fe8e419ae..3d673e6057 100644
--- a/sysdeps/powerpc/powerpc32/power7/strncmp.S
+++ b/sysdeps/powerpc/powerpc32/power7/strncmp.S
@@ -1,5 +1,5 @@
/* Optimized strcmp implementation for POWER7/PowerPC32.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/power7/strnlen.S b/sysdeps/powerpc/powerpc32/power7/strnlen.S
index 2f28acc99a..99e7169909 100644
--- a/sysdeps/powerpc/powerpc32/power7/strnlen.S
+++ b/sysdeps/powerpc/powerpc32/power7/strnlen.S
@@ -1,5 +1,5 @@
/* Optimized strnlen implementation for PowerPC32/POWER7 using cmpb insn.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by Luis Machado <luisgpm@br.ibm.com>.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/ppc-mcount.S b/sysdeps/powerpc/powerpc32/ppc-mcount.S
index b3cf011ff5..17da19c843 100644
--- a/sysdeps/powerpc/powerpc32/ppc-mcount.S
+++ b/sysdeps/powerpc/powerpc32/ppc-mcount.S
@@ -1,5 +1,5 @@
/* PowerPC-specific implementation of profiling support.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This would be bad. */
#ifdef PROF
diff --git a/sysdeps/powerpc/powerpc32/register-dump.h b/sysdeps/powerpc/powerpc32/register-dump.h
index e4b1f25233..273d310f0d 100644
--- a/sysdeps/powerpc/powerpc32/register-dump.h
+++ b/sysdeps/powerpc/powerpc32/register-dump.h
@@ -1,5 +1,5 @@
/* Dump registers.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/uio.h>
#include <_itoa.h>
@@ -96,15 +96,15 @@ r28=000001c% r29=000001d% r30=000001e% r31=000001f% fscr=0000071% ccr=0000026%\
static void
register_dump (int fd, struct sigcontext *ctx)
{
- char buffer[sizeof(dumpform)];
+ char buffer[sizeof (dumpform)];
char *bufferpos;
unsigned regno;
unsigned *regs = (unsigned *)(ctx->regs);
- memcpy(buffer, dumpform, sizeof(dumpform));
+ memcpy(buffer, dumpform, sizeof (dumpform));
/* Generate the output. */
- while ((bufferpos = memchr (buffer, '%', sizeof(dumpform))))
+ while ((bufferpos = memchr (buffer, '%', sizeof (dumpform))))
{
regno = xtoi (bufferpos[-1]) | xtoi (bufferpos[-2]) << 4;
memset (bufferpos-2, '0', 3);
@@ -112,7 +112,7 @@ register_dump (int fd, struct sigcontext *ctx)
}
/* Write the output. */
- write (fd, buffer, sizeof(buffer) - 1);
+ write (fd, buffer, sizeof (buffer) - 1);
}
diff --git a/sysdeps/powerpc/powerpc32/rshift.S b/sysdeps/powerpc/powerpc32/rshift.S
index 90e3c7898c..3c14370e73 100644
--- a/sysdeps/powerpc/powerpc32/rshift.S
+++ b/sysdeps/powerpc/powerpc32/rshift.S
@@ -1,5 +1,5 @@
/* Shift a limb right, low level routine.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/setjmp-common.S b/sysdeps/powerpc/powerpc32/setjmp-common.S
index f271d244e9..fbd9865e09 100644
--- a/sysdeps/powerpc/powerpc32/setjmp-common.S
+++ b/sysdeps/powerpc/powerpc32/setjmp-common.S
@@ -1,5 +1,5 @@
/* setjmp for PowerPC.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <stap-probe.h>
@@ -25,12 +25,6 @@
# include <jmpbuf-offsets.h>
#endif
-#if defined __SPE__ || (defined __NO_FPRS__ && !defined _SOFT_FLOAT)
-# define SAVE_GP(N) evstdd r##N,((JB_FPRS+((N)-14)*2)*4)(3)
-#else
-# define SAVE_GP(N) stw r##N,((JB_GPRS+(N)-14)*4)(3)
-#endif
-
ENTRY (__sigsetjmp_symbol)
#ifdef PTR_MANGLE
@@ -44,31 +38,31 @@ ENTRY (__sigsetjmp_symbol)
/* setjmp probe expects longjmp first argument (4@3), second argument
(-4@4), and target address (4@0), respectively. */
LIBC_PROBE (setjmp, 3, 4@3, -4@4, 4@0)
- SAVE_GP (14)
+ stw r14,((JB_GPRS+14-14)*4)(3)
#ifdef PTR_MANGLE
PTR_MANGLE2 (r0, r10)
li r10,0
#endif
stw r0,(JB_LR*4)(3)
- SAVE_GP (15)
+ stw r15,((JB_GPRS+15-14)*4)(3)
mfcr r0
- SAVE_GP (16)
+ stw r16,((JB_GPRS+16-14)*4)(3)
stw r0,(JB_CR*4)(3)
- SAVE_GP (17)
- SAVE_GP (18)
- SAVE_GP (19)
- SAVE_GP (20)
- SAVE_GP (21)
- SAVE_GP (22)
- SAVE_GP (23)
- SAVE_GP (24)
- SAVE_GP (25)
- SAVE_GP (26)
- SAVE_GP (27)
- SAVE_GP (28)
- SAVE_GP (29)
- SAVE_GP (30)
- SAVE_GP (31)
+ stw r17,((JB_GPRS+17-14)*4)(3)
+ stw r18,((JB_GPRS+18-14)*4)(3)
+ stw r19,((JB_GPRS+19-14)*4)(3)
+ stw r20,((JB_GPRS+20-14)*4)(3)
+ stw r21,((JB_GPRS+21-14)*4)(3)
+ stw r22,((JB_GPRS+22-14)*4)(3)
+ stw r23,((JB_GPRS+23-14)*4)(3)
+ stw r24,((JB_GPRS+24-14)*4)(3)
+ stw r25,((JB_GPRS+25-14)*4)(3)
+ stw r26,((JB_GPRS+26-14)*4)(3)
+ stw r27,((JB_GPRS+27-14)*4)(3)
+ stw r28,((JB_GPRS+28-14)*4)(3)
+ stw r29,((JB_GPRS+29-14)*4)(3)
+ stw r30,((JB_GPRS+30-14)*4)(3)
+ stw r31,((JB_GPRS+31-14)*4)(3)
#if IS_IN (rtld)
li r3,0
blr
diff --git a/sysdeps/powerpc/powerpc32/setjmp.S b/sysdeps/powerpc/powerpc32/setjmp.S
index ba69bdc279..99a81f49cc 100644
--- a/sysdeps/powerpc/powerpc32/setjmp.S
+++ b/sysdeps/powerpc/powerpc32/setjmp.S
@@ -1,5 +1,5 @@
/* non altivec (old) version of setjmp for PowerPC.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <shlib-compat.h>
#include <libc-symbols.h>
diff --git a/sysdeps/powerpc/powerpc32/start.S b/sysdeps/powerpc/powerpc32/start.S
index 5c10a22f8a..143467be88 100644
--- a/sysdeps/powerpc/powerpc32/start.S
+++ b/sysdeps/powerpc/powerpc32/start.S
@@ -1,5 +1,5 @@
/* Startup code for programs linked with GNU libc.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/stpcpy.S b/sysdeps/powerpc/powerpc32/stpcpy.S
index bb7a0f4e00..6f1d1489e0 100644
--- a/sysdeps/powerpc/powerpc32/stpcpy.S
+++ b/sysdeps/powerpc/powerpc32/stpcpy.S
@@ -1,5 +1,5 @@
/* Optimized stpcpy implementation for PowerPC.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/strchr.S b/sysdeps/powerpc/powerpc32/strchr.S
index 38983a2d9e..e70ae9f4e2 100644
--- a/sysdeps/powerpc/powerpc32/strchr.S
+++ b/sysdeps/powerpc/powerpc32/strchr.S
@@ -1,5 +1,5 @@
/* Optimized strchr implementation for PowerPC.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/strcmp.S b/sysdeps/powerpc/powerpc32/strcmp.S
index bd038dbe5b..5d6e86081f 100644
--- a/sysdeps/powerpc/powerpc32/strcmp.S
+++ b/sysdeps/powerpc/powerpc32/strcmp.S
@@ -1,5 +1,5 @@
/* Optimized strcmp implementation for PowerPC.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/strcpy.S b/sysdeps/powerpc/powerpc32/strcpy.S
index 757dad9f08..718fcdd148 100644
--- a/sysdeps/powerpc/powerpc32/strcpy.S
+++ b/sysdeps/powerpc/powerpc32/strcpy.S
@@ -1,5 +1,5 @@
/* Optimized strcpy implementation for PowerPC.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/strlen.S b/sysdeps/powerpc/powerpc32/strlen.S
index 23a6f8a7a2..69b2aceda2 100644
--- a/sysdeps/powerpc/powerpc32/strlen.S
+++ b/sysdeps/powerpc/powerpc32/strlen.S
@@ -1,5 +1,5 @@
/* Optimized strlen implementation for PowerPC.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/strncmp.S b/sysdeps/powerpc/powerpc32/strncmp.S
index 2bbd4a455b..b42ac973b9 100644
--- a/sysdeps/powerpc/powerpc32/strncmp.S
+++ b/sysdeps/powerpc/powerpc32/strncmp.S
@@ -1,5 +1,5 @@
/* Optimized strcmp implementation for PowerPC32.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/sub_n.S b/sysdeps/powerpc/powerpc32/sub_n.S
index 698e71c6aa..2bda810f63 100644
--- a/sysdeps/powerpc/powerpc32/sub_n.S
+++ b/sysdeps/powerpc/powerpc32/sub_n.S
@@ -1,5 +1,5 @@
/* Subtract two limb vectors of equal, non-zero length for PowerPC.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/submul_1.S b/sysdeps/powerpc/powerpc32/submul_1.S
index 8522a545d2..b2049ce787 100644
--- a/sysdeps/powerpc/powerpc32/submul_1.S
+++ b/sysdeps/powerpc/powerpc32/submul_1.S
@@ -1,5 +1,5 @@
/* Multiply a limb vector by a single limb, for PowerPC.
- Copyright (C) 1993-2018 Free Software Foundation, Inc.
+ Copyright (C) 1993-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc32/symbol-hacks.h b/sysdeps/powerpc/powerpc32/symbol-hacks.h
index b986020b33..117935b9c7 100644
--- a/sysdeps/powerpc/powerpc32/symbol-hacks.h
+++ b/sysdeps/powerpc/powerpc32/symbol-hacks.h
@@ -1,5 +1,5 @@
/* Hacks needed for symbol manipulation. powerpc version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/wordsize-32/divdi3-symbol-hacks.h>
diff --git a/sysdeps/powerpc/powerpc32/sysdep.h b/sysdeps/powerpc/powerpc32/sysdep.h
index 5f1294ead3..c21ea87f5a 100644
--- a/sysdeps/powerpc/powerpc32/sysdep.h
+++ b/sysdeps/powerpc/powerpc32/sysdep.h
@@ -1,5 +1,5 @@
/* Assembly macros for 32-bit PowerPC.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/powerpc/sysdep.h>
@@ -90,24 +90,7 @@ GOT_LABEL: ; \
cfi_endproc; \
ASM_SIZE_DIRECTIVE(name)
-#if !IS_IN(rtld) && !defined(__SPE__)
-# define ABORT_TRANSACTION_IMPL \
- cmpwi 2,0; \
- beq 1f; \
- lwz 0,TM_CAPABLE(2); \
- cmpwi 0,0; \
- beq 1f; \
- li 11,_ABORT_SYSCALL; \
- tabort. 11; \
- .align 4; \
-1:
-#else
-# define ABORT_TRANSACTION_IMPL
-#endif
-#define ABORT_TRANSACTION ABORT_TRANSACTION_IMPL
-
#define DO_CALL(syscall) \
- ABORT_TRANSACTION \
li 0,syscall; \
sc
diff --git a/sysdeps/powerpc/powerpc32/tst-audit.h b/sysdeps/powerpc/powerpc32/tst-audit.h
index 735f94edcf..1337838931 100644
--- a/sysdeps/powerpc/powerpc32/tst-audit.h
+++ b/sysdeps/powerpc/powerpc32/tst-audit.h
@@ -1,6 +1,6 @@
/* Definitions for testing PLT entry/exit auditing. PowerPC32 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define pltenter la_ppc32_gnu_pltenter
#define pltexit la_ppc32_gnu_pltexit
diff --git a/sysdeps/powerpc/powerpc64/Makefile b/sysdeps/powerpc/powerpc64/Makefile
index a0bd0c9504..6e88df1d69 100644
--- a/sysdeps/powerpc/powerpc64/Makefile
+++ b/sysdeps/powerpc/powerpc64/Makefile
@@ -59,3 +59,8 @@ $(objpfx)tst-setjmp-bug21895-static.out: $(objpfx)setjmp-bug21895.so
tst-setjmp-bug21895-static-ENV = \
LD_LIBRARY_PATH=$(objpfx):$(common-objpfx):$(common-objpfx)setjmp:$(common-objpfx)elf
endif
+
+ifeq ($(subdir),stdlib)
+CFLAGS-tst-ucontext-ppc64-vscr.c += -maltivec
+tests += tst-ucontext-ppc64-vscr
+endif
diff --git a/sysdeps/powerpc/powerpc64/__longjmp-common.S b/sysdeps/powerpc/powerpc64/__longjmp-common.S
index 99c17c5797..6acf0e2b82 100644
--- a/sysdeps/powerpc/powerpc64/__longjmp-common.S
+++ b/sysdeps/powerpc/powerpc64/__longjmp-common.S
@@ -1,5 +1,5 @@
/* longjmp for PowerPC64.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <stap-probe.h>
diff --git a/sysdeps/powerpc/powerpc64/__longjmp.S b/sysdeps/powerpc/powerpc64/__longjmp.S
index c84b420686..1ec838054e 100644
--- a/sysdeps/powerpc/powerpc64/__longjmp.S
+++ b/sysdeps/powerpc/powerpc64/__longjmp.S
@@ -1,5 +1,5 @@
/* AltiVec/VMX (new) version of __longjmp for PowerPC64.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libc-symbols.h>
#include <rtld-global-offsets.h>
diff --git a/sysdeps/powerpc/powerpc64/a2/memcpy.S b/sysdeps/powerpc/powerpc64/a2/memcpy.S
index 488ab6dde3..6d5c5afddb 100644
--- a/sysdeps/powerpc/powerpc64/a2/memcpy.S
+++ b/sysdeps/powerpc/powerpc64/a2/memcpy.S
@@ -1,5 +1,5 @@
/* Optimized memcpy implementation for PowerPC A2.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by Michael Brutman <brutman@us.ibm.com>.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc64/addmul_1.S b/sysdeps/powerpc/powerpc64/addmul_1.S
index 48e3b1b290..7a8d3e5e03 100644
--- a/sysdeps/powerpc/powerpc64/addmul_1.S
+++ b/sysdeps/powerpc/powerpc64/addmul_1.S
@@ -1,6 +1,6 @@
/* PowerPC64 __mpn_addmul_1 -- Multiply a limb vector with a limb and add
the result to a second limb vector.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
@@ -34,16 +34,27 @@
#define N r5
#define VL r6
+#define R27SAVE (-40)
+#define R28SAVE (-32)
+#define R29SAVE (-24)
+#define R30SAVE (-16)
+#define R31SAVE (-8)
+
ENTRY_TOCLESS (FUNC, 5)
- std r31, -8(r1)
+ std r31, R31SAVE(r1)
rldicl. r0, N, 0, 62
- std r30, -16(r1)
+ std r30, R30SAVE(r1)
cmpdi VL, r0, 2
- std r29, -24(r1)
+ std r29, R29SAVE(r1)
addi N, N, 3
- std r28, -32(r1)
+ std r28, R28SAVE(r1)
srdi N, N, 2
- std r27, -40(r1)
+ std r27, R27SAVE(r1)
+ cfi_offset(r31, R31SAVE)
+ cfi_offset(r30, R30SAVE)
+ cfi_offset(r29, R29SAVE)
+ cfi_offset(r28, R28SAVE)
+ cfi_offset(r27, R27SAVE)
mtctr N
beq cr0, L(b00)
blt cr6, L(b01)
@@ -199,10 +210,10 @@ L(end): mulld r0, r9, VL
addic r11, r11, 1
#endif
addze RP, r8
- ld r31, -8(r1)
- ld r30, -16(r1)
- ld r29, -24(r1)
- ld r28, -32(r1)
- ld r27, -40(r1)
+ ld r31, R31SAVE(r1)
+ ld r30, R30SAVE(r1)
+ ld r29, R29SAVE(r1)
+ ld r28, R28SAVE(r1)
+ ld r27, R27SAVE(r1)
blr
END(FUNC)
diff --git a/sysdeps/powerpc/powerpc64/atomic-machine.h b/sysdeps/powerpc/powerpc64/atomic-machine.h
index 1f09c52bd2..daab51cd10 100644
--- a/sysdeps/powerpc/powerpc64/atomic-machine.h
+++ b/sysdeps/powerpc/powerpc64/atomic-machine.h
@@ -1,5 +1,5 @@
/* Atomic operations. PowerPC64 version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Paul Mackerras <paulus@au.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* POWER6 adds a "Mutex Hint" to the Load and Reserve instruction.
This is a hint to the hardware to expect additional updates adjacent
diff --git a/sysdeps/powerpc/powerpc64/backtrace.c b/sysdeps/powerpc/powerpc64/backtrace.c
index c0c4b48262..234d9c00dc 100644
--- a/sysdeps/powerpc/powerpc64/backtrace.c
+++ b/sysdeps/powerpc/powerpc64/backtrace.c
@@ -1,5 +1,5 @@
/* Return backtrace of current program state.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
- not, see <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <string.h>
@@ -57,7 +57,7 @@ struct signal_frame_64 {
static inline int
is_sigtramp_address (void *nip)
{
-#ifdef SHARED
+#ifdef HAVE_SIGTRAMP_RT64
if (nip == VDSO_SYMBOL (sigtramp_rt64))
return 1;
#endif
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/Makefile b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/Makefile
new file mode 100644
index 0000000000..b27bad3ba4
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/Makefile
@@ -0,0 +1,67 @@
+ifeq ($(subdir),math)
+# These functions are built both for libc and libm because they're required
+# by printf. While the libc objects have the prefix s_, the libm ones are
+# prefixed with m_.
+sysdep_calls := s_modf-power5+ \
+ s_modf-ppc64 \
+ s_modff-power5+ \
+ s_modff-ppc64
+
+sysdep_routines += $(sysdep_calls)
+libm-sysdep_routines += s_ceil-power5+ \
+ s_ceil-ppc64 \
+ s_ceilf-power5+ \
+ s_ceilf-ppc64 \
+ s_floor-power5+ \
+ s_floor-ppc64 \
+ s_floorf-power5+ \
+ s_floorf-ppc64 \
+ s_round-power5+ \
+ s_round-ppc64 \
+ s_roundf-power5+ \
+ s_roundf-ppc64 \
+ s_trunc-power5+ \
+ s_trunc-ppc64 \
+ s_truncf-power5+ \
+ s_truncf-ppc64 \
+ s_llrint-power8 \
+ s_llrint-power6x \
+ s_llrint-ppc64 \
+ s_llround-power8 \
+ s_llround-power6x \
+ s_llround-power5+ \
+ s_llround-ppc64 \
+ s_llroundf-ppc64 \
+ s_logb-power7 \
+ s_logbf-power7 \
+ s_logbl-power7 \
+ s_logb-ppc64 \
+ s_logbf-ppc64 \
+ s_logbl-ppc64 \
+ $(sysdep_calls:s_%=m_%)
+
+CFLAGS-s_ceil-power5+.c = -mcpu=power5+
+CFLAGS-s_ceilf-power5+.c = -mcpu=power5+
+CFLAGS-s_floor-power5+.c = -mcpu=power5+
+CFLAGS-s_floorf-power5+.c = -mcpu=power5+
+CFLAGS-s_round-power5+.c = -mcpu=power5+
+CFLAGS-s_roundf-power5+.c = -mcpu=power5+
+CFLAGS-s_trunc-power5+.c = -mcpu=power5+
+CFLAGS-s_truncf-power5+.c = -mcpu=power5+
+CFLAGS-s_llrint-power8.c += -mcpu=power8
+CFLAGS-s_llrint-power6x.c += -mcpu=power6x
+CFLAGS-s_llround-power8.c += -mcpu=power8
+CFLAGS-s_llround-power6x.c += -mcpu=power6x
+CFLAGS-s_llround-power5+.c += -mcpu=power5+
+
+CFLAGS-s_modf-power5+.c += -mcpu=power5+
+CFLAGS-s_modff-power5+.c += -mcpu=power5+
+CFLAGS-s_logbf-power7.c = -mcpu=power7
+CFLAGS-s_logbl-power7.c = -mcpu=power7
+CFLAGS-s_logb-power7.c = -mcpu=power7
+
+# These files quiet sNaNs in a way that is optimized away without
+# -fsignaling-nans.
+CFLAGS-s_modf-ppc64.c += -fsignaling-nans
+CFLAGS-s_modff-ppc64.c += -fsignaling-nans
+endif
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_ceil-power5+.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_ceil-power5+.c
new file mode 100644
index 0000000000..87bc66cdb0
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_ceil-power5+.c
@@ -0,0 +1,3 @@
+#include <math.h>
+#define __ceil __ceil_power5plus
+#include <sysdeps/powerpc/fpu/s_ceil.c>
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_ceil-ppc64.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_ceil-ppc64.c
new file mode 100644
index 0000000000..8711ff3229
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_ceil-ppc64.c
@@ -0,0 +1,3 @@
+#include <math.h>
+#define __ceil __ceil_ppc64
+#include <sysdeps/powerpc/fpu/s_ceil.c>
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_ceil.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_ceil.c
new file mode 100644
index 0000000000..afdc6a00d5
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_ceil.c
@@ -0,0 +1,32 @@
+/* Multiple versions of ceil.
+ Copyright (C) 2013-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
+ <https://www.gnu.org/licenses/>. */
+
+#define NO_MATH_REDIRECT
+#include <math.h>
+#include <libm-alias-double.h>
+#include "init-arch.h"
+
+extern __typeof (__ceil) __ceil_ppc64 attribute_hidden;
+extern __typeof (__ceil) __ceil_power5plus attribute_hidden;
+
+libc_ifunc (__ceil,
+ (hwcap & PPC_FEATURE_POWER5_PLUS)
+ ? __ceil_power5plus
+ : __ceil_ppc64);
+
+libm_alias_double (__ceil, ceil)
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_ceilf-power5+.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_ceilf-power5+.c
new file mode 100644
index 0000000000..a5bfa98535
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_ceilf-power5+.c
@@ -0,0 +1,3 @@
+#include <math.h>
+#define __ceilf __ceilf_power5plus
+#include <sysdeps/powerpc/fpu/s_ceilf.c>
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_ceilf-ppc64.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_ceilf-ppc64.c
new file mode 100644
index 0000000000..086251dc09
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_ceilf-ppc64.c
@@ -0,0 +1,3 @@
+#include <math.h>
+#define __ceilf __ceilf_ppc64
+#include <sysdeps/powerpc/fpu/s_ceilf.c>
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_ceilf.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_ceilf.c
new file mode 100644
index 0000000000..6b27b38578
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_ceilf.c
@@ -0,0 +1,32 @@
+/* Multiple versions of ceilf.
+ Copyright (C) 2013-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
+ <https://www.gnu.org/licenses/>. */
+
+#define NO_MATH_REDIRECT
+#include <math.h>
+#include <libm-alias-float.h>
+#include "init-arch.h"
+
+extern __typeof (__ceilf) __ceilf_ppc64 attribute_hidden;
+extern __typeof (__ceilf) __ceilf_power5plus attribute_hidden;
+
+libc_ifunc (__ceilf,
+ (hwcap & PPC_FEATURE_POWER5_PLUS)
+ ? __ceilf_power5plus
+ : __ceilf_ppc64);
+
+libm_alias_float (__ceil, ceil)
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_floor-power5+.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_floor-power5+.c
new file mode 100644
index 0000000000..d3c2f52e57
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_floor-power5+.c
@@ -0,0 +1,3 @@
+#include <math.h>
+#define __floor __floor_power5plus
+#include <sysdeps/powerpc/fpu/s_floor.c>
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_floor-ppc64.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_floor-ppc64.c
new file mode 100644
index 0000000000..92c072c886
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_floor-ppc64.c
@@ -0,0 +1,3 @@
+#include <math.h>
+#define __floor __floor_ppc64
+#include <sysdeps/powerpc/fpu/s_floor.c>
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_floor.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_floor.c
new file mode 100644
index 0000000000..8818f0921c
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_floor.c
@@ -0,0 +1,34 @@
+/* Multiple versions of floor.
+ Copyright (C) 2013-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
+ <https://www.gnu.org/licenses/>. */
+
+#define NO_MATH_REDIRECT
+#include <math.h>
+#include <math_ldbl_opt.h>
+#include <shlib-compat.h>
+#include "init-arch.h"
+#include <libm-alias-double.h>
+
+extern __typeof (__floor) __floor_ppc64 attribute_hidden;
+extern __typeof (__floor) __floor_power5plus attribute_hidden;
+
+libc_ifunc (__floor,
+ (hwcap & PPC_FEATURE_POWER5_PLUS)
+ ? __floor_power5plus
+ : __floor_ppc64);
+
+libm_alias_double (__floor, floor)
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_floorf-power5+.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_floorf-power5+.c
new file mode 100644
index 0000000000..ecc409580b
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_floorf-power5+.c
@@ -0,0 +1,3 @@
+#include <math.h>
+#define __floorf __floorf_power5plus
+#include <sysdeps/powerpc/fpu/s_floorf.c>
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_floorf-ppc64.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_floorf-ppc64.c
new file mode 100644
index 0000000000..ad657ecfc4
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_floorf-ppc64.c
@@ -0,0 +1,3 @@
+#include <math.h>
+#define __floorf __floorf_ppc64
+#include <sysdeps/powerpc/fpu/s_floorf.c>
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_floorf.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_floorf.c
new file mode 100644
index 0000000000..c434d6aefb
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_floorf.c
@@ -0,0 +1,34 @@
+/* Multiple versions of floorf.
+ Copyright (C) 2013-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
+ <https://www.gnu.org/licenses/>. */
+
+#define NO_MATH_REDIRECT
+#include <math.h>
+#include <math_ldbl_opt.h>
+#include <shlib-compat.h>
+#include "init-arch.h"
+#include <libm-alias-float.h>
+
+extern __typeof (__floorf) __floorf_ppc64 attribute_hidden;
+extern __typeof (__floorf) __floorf_power5plus attribute_hidden;
+
+libc_ifunc (__floorf,
+ (hwcap & PPC_FEATURE_POWER5_PLUS)
+ ? __floorf_power5plus
+ : __floorf_ppc64);
+
+libm_alias_float (__floor, floor)
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llrint-power6x.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llrint-power6x.c
new file mode 100644
index 0000000000..ee139b4045
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llrint-power6x.c
@@ -0,0 +1,2 @@
+#define __llrint __llrint_power6x
+#include <sysdeps/powerpc/powerpc64/fpu/s_llrint.c>
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llrint-power8.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llrint-power8.c
new file mode 100644
index 0000000000..0f5cbff69a
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llrint-power8.c
@@ -0,0 +1,2 @@
+#define __llrint __llrint_power8
+#include <sysdeps/powerpc/powerpc64/fpu/s_llrint.c>
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llrint-ppc64.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llrint-ppc64.c
new file mode 100644
index 0000000000..40f212716b
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llrint-ppc64.c
@@ -0,0 +1,2 @@
+#define __llrint __llrint_ppc64
+#include <sysdeps/powerpc/powerpc64/fpu/s_llrint.c>
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llrint.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llrint.c
new file mode 100644
index 0000000000..a8fb495a76
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llrint.c
@@ -0,0 +1,47 @@
+/* Multiple versions of llrint.
+ Copyright (C) 2013-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
+ <https://www.gnu.org/licenses/>. */
+
+/* Redefine lrint/__lrint so that the compiler won't complain about the type
+ mismatch with the IFUNC selector in strong_alias below. */
+#define lrint __hidden_lrint
+#define __lrint __hidden___lrint
+
+#include <math.h>
+#include <math_ldbl_opt.h>
+#undef lrint
+#undef __lrint
+#include <shlib-compat.h>
+#include "init-arch.h"
+#include <libm-alias-double.h>
+
+extern __typeof (__llrint) __llrint_ppc64 attribute_hidden;
+extern __typeof (__llrint) __llrint_power6x attribute_hidden;
+extern __typeof (__llrint) __llrint_power8 attribute_hidden;
+
+libc_ifunc (__llrint,
+ (hwcap2 & PPC_FEATURE2_ARCH_2_07)
+ ? __llrint_power8 :
+ (hwcap & PPC_FEATURE_POWER6_EXT)
+ ? __llrint_power6x
+ : __llrint_ppc64);
+
+libm_alias_double (__llrint, llrint)
+
+/* long has the same width as long long on PowerPC64. */
+strong_alias (__llrint, __lrint)
+libm_alias_double (__lrint, lrint)
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llrintf.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llrintf.c
new file mode 100644
index 0000000000..4604163cfd
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llrintf.c
@@ -0,0 +1,47 @@
+/* Multiple versions of llrintf.
+ Copyright (C) 2017-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
+ <https://www.gnu.org/licenses/>. */
+/* Redefine lrintf/__lrintf so that the compiler won't complain about the type
+ mismatch with the IFUNC selector in strong_alias below. */
+#define lrintf __hidden_lrintf
+#define __lrintf __hidden___lrintf
+
+#include <math.h>
+#undef lrintf
+#undef __lrintf
+#include "init-arch.h"
+#include <libm-alias-float.h>
+
+extern __typeof (__llrintf) __llrint_ppc64 attribute_hidden;
+extern __typeof (__llrintf) __llrint_power6x attribute_hidden;
+extern __typeof (__llrintf) __llrint_power8 attribute_hidden;
+
+/* The ppc64 ABI passes float and double parameters in 64bit floating point
+ registers (at least up to a point) as IEEE binary64 format, so effectively
+ of "double" type. Both l[l]rint and l[l]rintf return long type. So these
+ functions have identical signatures and functionality, and can use a
+ single implementation. */
+libc_ifunc (__llrintf,
+ (hwcap2 & PPC_FEATURE2_ARCH_2_07)
+ ? __llrint_power8 :
+ (hwcap & PPC_FEATURE_POWER6_EXT)
+ ? __llrint_power6x
+ : __llrint_ppc64);
+
+libm_alias_float (__llrint, llrint)
+strong_alias (__llrintf, __lrintf)
+libm_alias_float (__lrint, lrint)
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llround-power5+.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llround-power5+.c
new file mode 100644
index 0000000000..182132b825
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llround-power5+.c
@@ -0,0 +1,2 @@
+#define __llround __llround_power5plus
+#include <sysdeps/powerpc/powerpc64/fpu/s_llround.c>
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llround-power6x.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llround-power6x.c
new file mode 100644
index 0000000000..542319d56b
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llround-power6x.c
@@ -0,0 +1,2 @@
+#define __llround __llround_power6x
+#include <sysdeps/powerpc/powerpc64/fpu/s_llround.c>
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llround-power8.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llround-power8.c
new file mode 100644
index 0000000000..5d2b3b8d44
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llround-power8.c
@@ -0,0 +1,2 @@
+#define __llround __llround_power8
+#include <sysdeps/powerpc/powerpc64/fpu/s_llround.c>
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llround-ppc64.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llround-ppc64.c
new file mode 100644
index 0000000000..8793bd7814
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llround-ppc64.c
@@ -0,0 +1,2 @@
+#define __llround __llround_ppc64
+#include <sysdeps/powerpc/powerpc64/fpu/s_llround.c>
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llround.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llround.c
new file mode 100644
index 0000000000..6cf771c87c
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llround.c
@@ -0,0 +1,48 @@
+/* Multiple versions of llround.
+ Copyright (C) 2013-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
+ <https://www.gnu.org/licenses/>. */
+
+#define lround __hidden_lround
+#define __lround __hidden___lround
+
+#include <math.h>
+#include <math_ldbl_opt.h>
+#include <shlib-compat.h>
+#include "init-arch.h"
+#include <libm-alias-double.h>
+
+extern __typeof (__llround) __llround_ppc64 attribute_hidden;
+extern __typeof (__llround) __llround_power5plus attribute_hidden;
+extern __typeof (__llround) __llround_power6x attribute_hidden;
+extern __typeof (__llround) __llround_power8 attribute_hidden;
+
+libc_ifunc (__llround,
+ (hwcap2 & PPC_FEATURE2_ARCH_2_07)
+ ? __llround_power8 :
+ (hwcap & PPC_FEATURE_POWER6_EXT)
+ ? __llround_power6x :
+ (hwcap & PPC_FEATURE_POWER5_PLUS)
+ ? __llround_power5plus
+ : __llround_ppc64);
+
+libm_alias_double (__llround, llround)
+
+/* long has the same width as long long on PPC64. */
+#undef lround
+#undef __lround
+strong_alias (__llround, __lround)
+libm_alias_double (__lround, lround)
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llroundf-ppc64.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llroundf-ppc64.c
new file mode 100644
index 0000000000..dba4c654db
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llroundf-ppc64.c
@@ -0,0 +1,2 @@
+#define __llroundf __llroundf_ppc64
+#include <sysdeps/powerpc/powerpc64/fpu/s_llroundf.c>
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llroundf.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llroundf.c
new file mode 100644
index 0000000000..f363b16c78
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llroundf.c
@@ -0,0 +1,47 @@
+/* Multiple versions of llroundf.
+ Copyright (C) 2017-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
+ <https://www.gnu.org/licenses/>. */
+/* Redefine lroundf/__lroundf so that the compiler won't complain about
+ the type mismatch with the IFUNC selector in strong_alias below. */
+#define lroundf __hidden_lroundf
+#define __lroundf __hidden___lroundf
+
+#include <math.h>
+#undef lroundf
+#undef __lroundf
+#include "init-arch.h"
+#include <libm-alias-float.h>
+
+extern __typeof (__llroundf) __llroundf_ppc64 attribute_hidden;
+extern __typeof (__llroundf) __llround_power6x attribute_hidden;
+extern __typeof (__llroundf) __llround_power8 attribute_hidden;
+
+/* The ppc64 ABI passes float and double parameters in 64bit floating point
+ registers (at least up to a point) as IEEE binary64 format, so effectively
+ of "double" type. Both l[l]round and l[l]roundf return long type. So these
+ functions have identical signatures and functionality, and can use a
+ single implementation. */
+libc_ifunc (__llroundf,
+ (hwcap2 & PPC_FEATURE2_ARCH_2_07)
+ ? __llround_power8 :
+ (hwcap & PPC_FEATURE_POWER6_EXT)
+ ? __llround_power6x
+ : __llroundf_ppc64);
+
+libm_alias_float (__llround, llround)
+strong_alias (__llroundf, __lroundf)
+libm_alias_float (__lround, lround)
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_logb-power7.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logb-power7.c
index 504603a242..c28a8753ac 100644
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_logb-power7.c
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logb-power7.c
@@ -1,5 +1,5 @@
/* logb(). PowerPC64/POWER7 version.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,6 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#include <sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logb-power7.c>
+#define __logb __logb_power7
+#include <sysdeps/powerpc/fpu/s_logb.c>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_logb-ppc64.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logb-ppc64.c
index 0f1e4fc76b..1372b8cceb 100644
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_logb-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logb-ppc64.c
@@ -1,5 +1,5 @@
/* logb(). PowerPC32/POWER7 version.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logb.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logb.c
new file mode 100644
index 0000000000..04a0848c22
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logb.c
@@ -0,0 +1,33 @@
+/* Multiple versions of logb.
+ Copyright (C) 2013-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <math.h>
+#include <math_ldbl_opt.h>
+#include <shlib-compat.h>
+#include "init-arch.h"
+#include <libm-alias-double.h>
+
+extern __typeof (__logb) __logb_ppc64 attribute_hidden;
+extern __typeof (__logb) __logb_power7 attribute_hidden;
+
+libc_ifunc (__logb,
+ (hwcap & PPC_FEATURE_ARCH_2_06)
+ ? __logb_power7
+ : __logb_ppc64);
+
+libm_alias_double (__logb, logb)
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbf-power7.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbf-power7.c
index fee93e2352..c264a57d8c 100644
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbf-power7.c
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbf-power7.c
@@ -1,5 +1,5 @@
/* logb(). PowerPC64/POWER7 version.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,6 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#include <sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbf-power7.c>
+#define __logbf __logbf_power7
+#include <sysdeps/powerpc/fpu/s_logbf.c>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbf-ppc64.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbf-ppc64.c
index fe197b7e9b..0e95658440 100644
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbf-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbf-ppc64.c
@@ -1,5 +1,5 @@
/* logbf(). PowerPC64 default implementation.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbf.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbf.c
new file mode 100644
index 0000000000..378ca78d6b
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbf.c
@@ -0,0 +1,33 @@
+/* Multiple versions of logbf.
+ Copyright (C) 2013-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <math.h>
+#include <math_ldbl_opt.h>
+#include <shlib-compat.h>
+#include "init-arch.h"
+#include <libm-alias-float.h>
+
+extern __typeof (__logbf) __logbf_ppc64 attribute_hidden;
+extern __typeof (__logbf) __logbf_power7 attribute_hidden;
+
+libc_ifunc (__logbf,
+ (hwcap & PPC_FEATURE_ARCH_2_06)
+ ? __logbf_power7
+ : __logbf_ppc64);
+
+libm_alias_float (__logb, logb)
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbl-power7.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbl-power7.c
index eb08b5fe5e..dfb51015f1 100644
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbl-power7.c
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbl-power7.c
@@ -1,5 +1,5 @@
/* logb(). PowerPC64/POWER7 version.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,6 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#include <sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbl-power7.c>
+#define __logbl __logbl_power7
+#include <sysdeps/powerpc/fpu/s_logbl.c>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbl-ppc64.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbl-ppc64.c
index 62d8c95783..f5228e1ff4 100644
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbl-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbl-ppc64.c
@@ -1,5 +1,5 @@
/* logbl(). PowerPC64/POWER7 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __logbl __logbl_ppc64
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbl.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbl.c
new file mode 100644
index 0000000000..256329599f
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_logbl.c
@@ -0,0 +1,32 @@
+/* Multiple versions of logbl.
+ Copyright (C) 2013-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <math.h>
+#include <math_ldbl_opt.h>
+#include <shlib-compat.h>
+#include "init-arch.h"
+
+extern __typeof (__logbl) __logbl_ppc64 attribute_hidden;
+extern __typeof (__logbl) __logbl_power7 attribute_hidden;
+
+libc_ifunc (__logbl,
+ (hwcap & PPC_FEATURE_ARCH_2_06)
+ ? __logbl_power7
+ : __logbl_ppc64);
+
+long_double_symbol (libm, __logbl, logbl);
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_lrint.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_lrint.c
index d09286267b..d09286267b 100644
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_lrint.c
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_lrint.c
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_lround.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_lround.c
index 0dab5443e2..0dab5443e2 100644
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_lround.c
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_lround.c
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_modf-power5+.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modf-power5+.c
index c7a382445a..f625baaf31 100644
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_modf-power5+.c
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modf-power5+.c
@@ -1,5 +1,5 @@
/* PowerPC/POWER5+ implementation for modf.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,6 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#include <sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf-power5+.c>
+#define __modf __modf_power5plus
+#include <sysdeps/powerpc/fpu/s_modf.c>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_modf-ppc64.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modf-ppc64.c
index c4aabe8f6e..70c21ac8b9 100644
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_modf-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modf-ppc64.c
@@ -1,5 +1,5 @@
/* PowerPC64 default implementation for modf.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_ldbl_opt.h>
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modf.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modf.c
new file mode 100644
index 0000000000..61d7ae37a2
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modf.c
@@ -0,0 +1,37 @@
+/* Multiple versions of modf.
+ Copyright (C) 2013-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <math.h>
+#include <math_ldbl_opt.h>
+#include <shlib-compat.h>
+#include "init-arch.h"
+#include <libm-alias-double.h>
+
+extern __typeof (__modf) __modf_ppc64 attribute_hidden;
+extern __typeof (__modf) __modf_power5plus attribute_hidden;
+
+libc_ifunc (__modf,
+ (hwcap & PPC_FEATURE_POWER5_PLUS)
+ ? __modf_power5plus
+ : __modf_ppc64);
+
+libm_alias_double (__modf, modf)
+
+#if LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)
+compat_symbol (libc, __modf, modfl, GLIBC_2_0);
+#endif
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_modff-power5+.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modff-power5+.c
index 1c23444a21..dcae9ad846 100644
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_modff-power5+.c
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modff-power5+.c
@@ -1,5 +1,5 @@
/* PowerPC/POWER5+ implementation for modff.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,6 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#include <sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff-power5+.c>
+#define __modff __modff_power5plus
+#include <sysdeps/powerpc/fpu/s_modff.c>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_modff-ppc64.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modff-ppc64.c
index 0b1b289efd..e3c06600a0 100644
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_modff-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modff-ppc64.c
@@ -1,5 +1,5 @@
/* PowerPC64 default implementation for modff.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modff.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modff.c
new file mode 100644
index 0000000000..be78f8417b
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_modff.c
@@ -0,0 +1,31 @@
+/* Multiple versions of modff.
+ Copyright (C) 2013-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <math.h>
+#include "init-arch.h"
+#include <libm-alias-float.h>
+
+extern __typeof (__modff) __modff_ppc64 attribute_hidden;
+extern __typeof (__modff) __modff_power5plus attribute_hidden;
+
+libc_ifunc (__modff,
+ (hwcap & PPC_FEATURE_POWER5_PLUS)
+ ? __modff_power5plus
+ : __modff_ppc64);
+
+libm_alias_float (__modf, modf)
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_round-power5+.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_round-power5+.c
new file mode 100644
index 0000000000..3f6f87b4e2
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_round-power5+.c
@@ -0,0 +1,3 @@
+#include <math.h>
+#define __round __round_power5plus
+#include <sysdeps/powerpc/fpu/s_round.c>
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_round-ppc64.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_round-ppc64.c
new file mode 100644
index 0000000000..cb122e6afc
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_round-ppc64.c
@@ -0,0 +1,3 @@
+#include <math.h>
+#define __round __round_ppc64
+#include <sysdeps/powerpc/fpu/s_round.c>
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_round.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_round.c
new file mode 100644
index 0000000000..d12f410688
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_round.c
@@ -0,0 +1,34 @@
+/* Multiple versions of round.
+ Copyright (C) 2013-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
+ <https://www.gnu.org/licenses/>. */
+
+#define NO_MATH_REDIRECT
+#include <math.h>
+#include <math_ldbl_opt.h>
+#include <shlib-compat.h>
+#include "init-arch.h"
+#include <libm-alias-double.h>
+
+extern __typeof (__round) __round_ppc64 attribute_hidden;
+extern __typeof (__round) __round_power5plus attribute_hidden;
+
+libc_ifunc (__round,
+ (hwcap & PPC_FEATURE_POWER5_PLUS)
+ ? __round_power5plus
+ : __round_ppc64);
+
+libm_alias_double (__round, round)
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_roundf-power5+.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_roundf-power5+.c
new file mode 100644
index 0000000000..b0cb5c5190
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_roundf-power5+.c
@@ -0,0 +1,3 @@
+#include <math.h>
+#define __roundf __roundf_power5plus
+#include <sysdeps/powerpc/fpu/s_roundf.c>
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_roundf-ppc64.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_roundf-ppc64.c
new file mode 100644
index 0000000000..3e1de69147
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_roundf-ppc64.c
@@ -0,0 +1,3 @@
+#include <math.h>
+#define __roundf __roundf_ppc64
+#include <sysdeps/powerpc/fpu/s_roundf.c>
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_roundf.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_roundf.c
new file mode 100644
index 0000000000..846acb250e
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_roundf.c
@@ -0,0 +1,32 @@
+/* Multiple versions of roundf.
+ Copyright (C) 2013-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
+ <https://www.gnu.org/licenses/>. */
+
+#define NO_MATH_REDIRECT
+#include <math.h>
+#include "init-arch.h"
+#include <libm-alias-float.h>
+
+extern __typeof (__roundf) __roundf_ppc64 attribute_hidden;
+extern __typeof (__roundf) __roundf_power5plus attribute_hidden;
+
+libc_ifunc (__roundf,
+ (hwcap & PPC_FEATURE_POWER5_PLUS)
+ ? __roundf_power5plus
+ : __roundf_ppc64);
+
+libm_alias_float (__round, round)
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_trunc-power5+.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_trunc-power5+.c
new file mode 100644
index 0000000000..47abda6810
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_trunc-power5+.c
@@ -0,0 +1,3 @@
+#include <math.h>
+#define __trunc __trunc_power5plus
+#include <sysdeps/powerpc/fpu/s_trunc.c>
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_trunc-ppc64.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_trunc-ppc64.c
new file mode 100644
index 0000000000..21c47308fc
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_trunc-ppc64.c
@@ -0,0 +1,3 @@
+#include <math.h>
+#define __trunc __trunc_ppc64
+#include <sysdeps/powerpc/fpu/s_trunc.c>
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_trunc.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_trunc.c
new file mode 100644
index 0000000000..f854166bc8
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_trunc.c
@@ -0,0 +1,34 @@
+/* Multiple versions of trunc.
+ Copyright (C) 2013-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
+ <https://www.gnu.org/licenses/>. */
+
+#define NO_MATH_REDIRECT
+#include <math.h>
+#include <math_ldbl_opt.h>
+#include <shlib-compat.h>
+#include "init-arch.h"
+#include <libm-alias-double.h>
+
+extern __typeof (__trunc) __trunc_ppc64 attribute_hidden;
+extern __typeof (__trunc) __trunc_power5plus attribute_hidden;
+
+libc_ifunc (__trunc,
+ (hwcap & PPC_FEATURE_POWER5_PLUS)
+ ? __trunc_power5plus
+ : __trunc_ppc64);
+
+libm_alias_double (__trunc, trunc)
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_truncf-power5+.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_truncf-power5+.c
new file mode 100644
index 0000000000..b8e75d4e28
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_truncf-power5+.c
@@ -0,0 +1,3 @@
+#include <math.h>
+#define __truncf __truncf_power5plus
+#include <sysdeps/powerpc/fpu/s_truncf.c>
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_truncf-ppc64.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_truncf-ppc64.c
new file mode 100644
index 0000000000..aa6c6c1f98
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_truncf-ppc64.c
@@ -0,0 +1,3 @@
+#include <math.h>
+#define __truncf __truncf_ppc64
+#include <sysdeps/powerpc/fpu/s_truncf.c>
diff --git a/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_truncf.c b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_truncf.c
new file mode 100644
index 0000000000..670df103af
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_truncf.c
@@ -0,0 +1,32 @@
+/* Multiple versions of truncf.
+ Copyright (C) 2013-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
+ <https://www.gnu.org/licenses/>. */
+
+#define NO_MATH_REDIRECT
+#include <math.h>
+#include "init-arch.h"
+#include <libm-alias-float.h>
+
+extern __typeof (__truncf) __truncf_ppc64 attribute_hidden;
+extern __typeof (__truncf) __truncf_power5plus attribute_hidden;
+
+libc_ifunc (__truncf,
+ (hwcap & PPC_FEATURE_POWER5_PLUS)
+ ? __truncf_power5plus
+ : __truncf_ppc64);
+
+libm_alias_float (__trunc, trunc)
diff --git a/sysdeps/powerpc/powerpc64/bzero.S b/sysdeps/powerpc/powerpc64/bzero.S
index c66824a931..80ee013c48 100644
--- a/sysdeps/powerpc/powerpc64/bzero.S
+++ b/sysdeps/powerpc/powerpc64/bzero.S
@@ -1,5 +1,5 @@
/* Optimized bzero `implementation' for PowerPC64.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This code was moved into memset.S to solve a double stub call problem.
@local would have worked but it is not supported in PowerPC64 asm. */
diff --git a/sysdeps/powerpc/powerpc64/cell/memcpy.S b/sysdeps/powerpc/powerpc64/cell/memcpy.S
index 3e07003b58..05cceb31e2 100644
--- a/sysdeps/powerpc/powerpc64/cell/memcpy.S
+++ b/sysdeps/powerpc/powerpc64/cell/memcpy.S
@@ -1,5 +1,5 @@
/* Optimized memcpy implementation for CELL BE PowerPC.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc64/crti.S b/sysdeps/powerpc/powerpc64/crti.S
index 2242deb3dd..157cbec4de 100644
--- a/sysdeps/powerpc/powerpc64/crti.S
+++ b/sysdeps/powerpc/powerpc64/crti.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for PowerPC64.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* crti.S puts a function prologue at the beginning of the .init and
.fini sections and defines global symbols for those addresses, so
diff --git a/sysdeps/powerpc/powerpc64/crtn.S b/sysdeps/powerpc/powerpc64/crtn.S
index 6067bed6c3..59396a2508 100644
--- a/sysdeps/powerpc/powerpc64/crtn.S
+++ b/sysdeps/powerpc/powerpc64/crtn.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for PowerPC64.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* crtn.S puts function epilogues in the .init and .fini sections
corresponding to the prologues in crti.S. */
diff --git a/sysdeps/powerpc/powerpc64/dl-dtprocnum.h b/sysdeps/powerpc/powerpc64/dl-dtprocnum.h
index d46cadb9c9..75c3a9df85 100644
--- a/sysdeps/powerpc/powerpc64/dl-dtprocnum.h
+++ b/sysdeps/powerpc/powerpc64/dl-dtprocnum.h
@@ -1,5 +1,5 @@
/* Configuration of lookup functions. PowerPC64 version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Number of extra dynamic section entries for this architecture. By
default there are none. */
diff --git a/sysdeps/powerpc/powerpc64/dl-irel.h b/sysdeps/powerpc/powerpc64/dl-irel.h
index ab13c04358..f0f62c1278 100644
--- a/sysdeps/powerpc/powerpc64/dl-irel.h
+++ b/sysdeps/powerpc/powerpc64/dl-irel.h
@@ -1,6 +1,6 @@
/* Machine-dependent ELF indirect relocation inline functions.
PowerPC64 version.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DL_IREL_H
#define _DL_IREL_H
@@ -57,7 +57,7 @@ elf_irela (const Elf64_Rela *reloc)
#endif
}
else
- __libc_fatal ("unexpected reloc type in static binary");
+ __libc_fatal ("Unexpected reloc type in static binary.\n");
}
#endif /* dl-irel.h */
diff --git a/sysdeps/powerpc/powerpc64/dl-machine.c b/sysdeps/powerpc/powerpc64/dl-machine.c
index 959907bf02..6756cc93c3 100644
--- a/sysdeps/powerpc/powerpc64/dl-machine.c
+++ b/sysdeps/powerpc/powerpc64/dl-machine.c
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation functions. PowerPC64 version.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
- not, see <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <unistd.h>
diff --git a/sysdeps/powerpc/powerpc64/dl-machine.h b/sysdeps/powerpc/powerpc64/dl-machine.h
index 99a83d0c82..417b1b25eb 100644
--- a/sysdeps/powerpc/powerpc64/dl-machine.h
+++ b/sysdeps/powerpc/powerpc64/dl-machine.h
@@ -1,6 +1,6 @@
/* Machine-dependent ELF dynamic relocation inline functions.
PowerPC64 version.
- Copyright 1995-2018 Free Software Foundation, Inc.
+ Copyright 1995-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
- not, see <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#ifndef dl_machine_h
#define dl_machine_h
@@ -902,6 +902,7 @@ elf_machine_rela (struct link_map *map,
case R_PPC64_ADDR16_HI:
if (dont_expect (value + 0x80000000 >= 0x100000000LL))
_dl_reloc_overflow (map, "R_PPC64_ADDR16_HI", reloc_addr, refsym);
+ /* Fall through. */
case R_PPC64_ADDR16_HIGH:
*(Elf64_Half *) reloc_addr = PPC_HI (value);
break;
@@ -909,6 +910,7 @@ elf_machine_rela (struct link_map *map,
case R_PPC64_ADDR16_HA:
if (dont_expect (value + 0x80008000 >= 0x100000000LL))
_dl_reloc_overflow (map, "R_PPC64_ADDR16_HA", reloc_addr, refsym);
+ /* Fall through. */
case R_PPC64_ADDR16_HIGHA:
*(Elf64_Half *) reloc_addr = PPC_HA (value);
break;
diff --git a/sysdeps/powerpc/powerpc64/dl-trampoline.S b/sysdeps/powerpc/powerpc64/dl-trampoline.S
index aa141dc44b..63c4e230ad 100644
--- a/sysdeps/powerpc/powerpc64/dl-trampoline.S
+++ b/sysdeps/powerpc/powerpc64/dl-trampoline.S
@@ -1,5 +1,5 @@
/* PLT trampolines. PPC64 version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <rtld-global-offsets.h>
diff --git a/sysdeps/powerpc/powerpc64/entry.h b/sysdeps/powerpc/powerpc64/entry.h
index c2f7348cad..a463b5bcdf 100644
--- a/sysdeps/powerpc/powerpc64/entry.h
+++ b/sysdeps/powerpc/powerpc64/entry.h
@@ -1,5 +1,5 @@
/* Finding the entry point and start of text. PowerPC64 version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef __ASSEMBLY__
diff --git a/sysdeps/powerpc/powerpc64/ffsll.c b/sysdeps/powerpc/powerpc64/ffsll.c
index c95ad99b36..98b1a5ebae 100644
--- a/sysdeps/powerpc/powerpc64/ffsll.c
+++ b/sysdeps/powerpc/powerpc64/ffsll.c
@@ -1,6 +1,6 @@
/* Find first set bit in a word, counted from least significant end.
For PowerPC.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define ffsl __something_else
#include <limits.h>
diff --git a/sysdeps/powerpc/powerpc64/fpu/Makefile b/sysdeps/powerpc/powerpc64/fpu/Makefile
new file mode 100644
index 0000000000..05075c2a75
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/fpu/Makefile
@@ -0,0 +1,7 @@
+ifeq ($(subdir),math)
+# lrintf and llrintf are aliased to llrint, so suppress compiler builtins to
+# avoid mismatched signatures.
+CFLAGS-s_llrint.c += -fno-builtin-lrintf -fno-builtin-llrintf
+# Same as before but for lroundf and llroundf
+CFLAGS-s_llround.c += -fno-builtin-lroundf -fno-builtin-llroundf
+endif
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile b/sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile
deleted file mode 100644
index 73f2f69377..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile
+++ /dev/null
@@ -1,46 +0,0 @@
-ifeq ($(subdir),math)
-# These functions are built both for libc and libm because they're required
-# by printf. While the libc objects have the prefix s_, the libm ones are
-# prefixed with m_.
-sysdep_calls := s_copysign-power6 s_copysign-ppc64 \
- s_finite-power8 s_finite-power7 s_finite-ppc64 \
- s_finitef-ppc64 \
- s_isinf-power8 s_isinf-ppc64 \
- s_isinff-ppc64 s_isinf-power7 \
- s_isnan-power8 s_isnan-power7 s_isnan-power6x s_isnan-power6 \
- s_isnan-power5 s_isnan-ppc64 \
- s_modf-power5+ s_modf-ppc64 \
- s_modff-power5+ s_modff-ppc64
-
-sysdep_routines += $(sysdep_calls)
-libm-sysdep_routines += s_llround-power6x \
- s_llround-power5+ s_llround-ppc64 s_ceil-power5+ \
- s_ceil-ppc64 s_ceilf-power5+ s_ceilf-ppc64 \
- s_floor-power5+ s_floor-ppc64 s_floorf-power5+ \
- s_floorf-ppc64 s_round-power5+ s_round-ppc64 \
- s_roundf-power5+ s_roundf-ppc64 s_trunc-power5+ \
- s_trunc-ppc64 s_truncf-power5+ s_truncf-ppc64 \
- s_llrint-power6x s_llrint-ppc64 \
- s_logb-power7 s_logbf-power7 \
- s_logbl-power7 s_logb-ppc64 s_logbf-ppc64 \
- s_logbl-ppc64 e_hypot-ppc64 \
- e_hypot-power7 e_hypotf-ppc64 e_hypotf-power7 \
- s_llrint-power8 s_llround-power8 s_llroundf-ppc64 \
- e_expf-power8 e_expf-ppc64 \
- s_sinf-ppc64 s_sinf-power8 \
- s_cosf-ppc64 s_cosf-power8 \
- $(sysdep_calls:s_%=m_%)
-
-CFLAGS-s_logbf-power7.c = -mcpu=power7
-CFLAGS-s_logbl-power7.c = -mcpu=power7
-CFLAGS-s_logb-power7.c = -mcpu=power7
-CFLAGS-s_modf-power5+.c = -mcpu=power5+
-CFLAGS-s_modff-power5+.c = -mcpu=power5+
-CFLAGS-e_hypot-power7.c = -mcpu=power7
-CFLAGS-e_hypotf-power7.c = -mcpu=power7
-
-# These files quiet sNaNs in a way that is optimized away without
-# -fsignaling-nans.
-CFLAGS-s_modf-ppc64.c += -fsignaling-nans
-CFLAGS-s_modff-ppc64.c += -fsignaling-nans
-endif
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf-power8.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf-power8.S
deleted file mode 100644
index c9dad4e132..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf-power8.S
+++ /dev/null
@@ -1,24 +0,0 @@
-/* __ieee754_expf() POWER8 version.
- Copyright (C) 2016-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#undef strong_alias
-#define strong_alias(a, b)
-
-#define __ieee754_expf __ieee754_expf_power8
-
-#include <sysdeps/powerpc/powerpc64/power8/fpu/e_expf.S>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf-ppc64.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf-ppc64.c
deleted file mode 100644
index 8ab41a8ed4..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf-ppc64.c
+++ /dev/null
@@ -1,21 +0,0 @@
-/* __ieee_expf() PowerPC64 version.
- Copyright (C) 2016-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#define __expf __ieee754_expf_ppc64
-
-#include <sysdeps/ieee754/flt-32/e_expf.c>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf.c
deleted file mode 100644
index f752514efa..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Multiple versions of ieee754_expf.
- Copyright (C) 2016-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-#include <math_private.h>
-#include <math_ldbl_opt.h>
-#include "init-arch.h"
-
-extern __typeof (__ieee754_expf) __ieee754_expf_ppc64 attribute_hidden;
-extern __typeof (__ieee754_expf) __ieee754_expf_power8 attribute_hidden;
-
-libc_ifunc (__ieee754_expf,
- (hwcap2 & PPC_FEATURE2_ARCH_2_07)
- ? __ieee754_expf_power8
- : __ieee754_expf_ppc64);
-
-strong_alias (__ieee754_expf, __expf_finite)
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypot-power7.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypot-power7.c
deleted file mode 100644
index 416ef50df6..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypot-power7.c
+++ /dev/null
@@ -1,19 +0,0 @@
-/* __ieee_hypot() POWER7 version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypot-power7.c>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypot-ppc64.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypot-ppc64.c
deleted file mode 100644
index f469a24719..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypot-ppc64.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/* __ieee_hypot() PowerPC64 version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-
-#undef strong_alias
-#define strong_alias(a, b)
-
-#define __ieee754_hypot __ieee754_hypot_ppc64
-
-#include <sysdeps/powerpc/fpu/e_hypot.c>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypot.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypot.c
deleted file mode 100644
index 8d05c430cc..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypot.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Multiple versions of ieee754_hypot.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-#include <math_private.h>
-#include <math_ldbl_opt.h>
-#include <shlib-compat.h>
-#include "init-arch.h"
-
-extern __typeof (__ieee754_hypot) __ieee754_hypot_ppc64 attribute_hidden;
-extern __typeof (__ieee754_hypot) __ieee754_hypot_power7 attribute_hidden;
-
-libc_ifunc (__ieee754_hypot,
- (hwcap & PPC_FEATURE_ARCH_2_06)
- ? __ieee754_hypot_power7
- : __ieee754_hypot_ppc64);
-
-strong_alias (__ieee754_hypot, __hypot_finite)
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypotf-power7.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypotf-power7.c
deleted file mode 100644
index b40158fd29..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypotf-power7.c
+++ /dev/null
@@ -1,19 +0,0 @@
-/* __ieee_hypotf() POWER7 version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypotf-power7.c>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypotf-ppc64.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypotf-ppc64.c
deleted file mode 100644
index 54dbaee016..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypotf-ppc64.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/* __ieee_hypot() PowerPC64 version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-
-#undef strong_alias
-#define strong_alias(a, b)
-
-#define __ieee754_hypotf __ieee754_hypotf_ppc64
-
-#include <sysdeps/powerpc/fpu/e_hypotf.c>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypotf.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypotf.c
deleted file mode 100644
index 9bef1fea3f..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypotf.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Multiple versions of ieee754_hypot.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-#include <math_private.h>
-#include <math_ldbl_opt.h>
-#include <shlib-compat.h>
-#include "init-arch.h"
-
-extern __typeof (__ieee754_hypotf) __ieee754_hypotf_ppc64 attribute_hidden;
-extern __typeof (__ieee754_hypotf) __ieee754_hypotf_power7 attribute_hidden;
-
-libc_ifunc (__ieee754_hypotf,
- (hwcap & PPC_FEATURE_ARCH_2_06)
- ? __ieee754_hypotf_power7
- : __ieee754_hypotf_ppc64);
-
-strong_alias (__ieee754_hypotf, __hypotf_finite)
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceil-power5+.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceil-power5+.S
deleted file mode 100644
index 76651b694c..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceil-power5+.S
+++ /dev/null
@@ -1,30 +0,0 @@
-/* ceil function. PowerPC64/power5+ version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <shlib-compat.h>
-
-#undef weak_alias
-#define weak_alias(a,b)
-#undef strong_alias
-#define strong_alias(a,b)
-#undef compat_symbol
-#define compat_symbol(a,b,c,d)
-
-#define __ceil __ceil_power5plus
-
-#include <sysdeps/powerpc/powerpc64/power5+/fpu/s_ceil.S>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceil-ppc64.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceil-ppc64.S
deleted file mode 100644
index c75c66ba3b..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceil-ppc64.S
+++ /dev/null
@@ -1,30 +0,0 @@
-/* ceil function. PowerPC64 default version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <shlib-compat.h>
-
-#undef weak_alias
-#define weak_alias(a,b)
-#undef strong_alias
-#define strong_alias(a,b)
-#undef compat_symbol
-#define compat_symbol(a,b,c,d)
-
-#define __ceil __ceil_ppc64
-
-#include <sysdeps/powerpc/powerpc64/fpu/s_ceil.S>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceil.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceil.c
deleted file mode 100644
index 5cde4eb46f..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceil.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Multiple versions of ceil.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-#include <math_ldbl_opt.h>
-#include <shlib-compat.h>
-#include "init-arch.h"
-#include <libm-alias-double.h>
-
-extern __typeof (__ceil) __ceil_ppc64 attribute_hidden;
-extern __typeof (__ceil) __ceil_power5plus attribute_hidden;
-
-libc_ifunc (__ceil,
- (hwcap & PPC_FEATURE_POWER5_PLUS)
- ? __ceil_power5plus
- : __ceil_ppc64);
-
-libm_alias_double (__ceil, ceil)
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceilf-power5+.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceilf-power5+.S
deleted file mode 100644
index b9c9e14fba..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceilf-power5+.S
+++ /dev/null
@@ -1,24 +0,0 @@
-/* ceilf function. PowerPC64/power5+ version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#undef weak_alias
-#define weak_alias(a,b)
-
-#define __ceilf __ceilf_power5plus
-
-#include <sysdeps/powerpc/powerpc64/power5+/fpu/s_ceilf.S>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceilf-ppc64.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceilf-ppc64.S
deleted file mode 100644
index ce5cc49770..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceilf-ppc64.S
+++ /dev/null
@@ -1,24 +0,0 @@
-/* ceilf function. PowerPC64 default version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#undef weak_alias
-#define weak_alias(a,b)
-
-#define __ceilf __ceilf_ppc64
-
-#include <sysdeps/powerpc/powerpc64/fpu/s_ceilf.S>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceilf.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceilf.c
deleted file mode 100644
index 18697e52b3..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceilf.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Multiple versions of ceilf.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-#include <math_ldbl_opt.h>
-#include <shlib-compat.h>
-#include "init-arch.h"
-#include <libm-alias-float.h>
-
-extern __typeof (__ceilf) __ceilf_ppc64 attribute_hidden;
-extern __typeof (__ceilf) __ceilf_power5plus attribute_hidden;
-
-libc_ifunc (__ceilf,
- (hwcap & PPC_FEATURE_POWER5_PLUS)
- ? __ceilf_power5plus
- : __ceilf_ppc64);
-
-libm_alias_float (__ceil, ceil)
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign-power6.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign-power6.S
deleted file mode 100644
index 3ce85ca822..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign-power6.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* copysign(). PowerPC64 default version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <shlib-compat.h>
-
-#undef weak_alias
-#define weak_alias(a,b)
-#undef strong_alias
-#define strong_alias(a,b)
-#undef compat_symbol
-#define compat_symbol(a, b, c, d)
-#undef hidden_def
-#define hidden_def(name)
-
-#define __copysign __copysign_power6
-
-#include <sysdeps/powerpc/powerpc64/fpu/s_copysign.S>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign-ppc64.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign-ppc64.S
deleted file mode 100644
index 97fad681e3..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign-ppc64.S
+++ /dev/null
@@ -1,34 +0,0 @@
-/* copysign(). PowerPC64 default version.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
- Contributed by Luis Machado <luisgpm@br.ibm.com>.
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <shlib-compat.h>
-
-#undef weak_alias
-#define weak_alias(a,b)
-#undef strong_alias
-#define strong_alias(a,b)
-#undef compat_symbol
-#define compat_symbol(a, b, c, d)
-
-#define __copysign __copysign_ppc64
-#undef hidden_def
-#define hidden_def(name) \
- strong_alias (__copysign_ppc64, __GI___copysign)
-
-#include <sysdeps/powerpc/powerpc64/fpu/s_copysign.S>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign.c
deleted file mode 100644
index 74ce097397..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/* Multiple versions of copysign.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-/* Redefine copysign so that the compiler won't complain about the type
- mismatch with the IFUNC selector in strong_alias below. */
-#undef __copysign
-#define __copysign __redirect_copysign
-#include <math.h>
-#include <math_ldbl_opt.h>
-#undef __copysign
-#include <shlib-compat.h>
-#include "init-arch.h"
-#include <libm-alias-double.h>
-
-extern __typeof (__redirect_copysign) __copysign_ppc64 attribute_hidden;
-extern __typeof (__redirect_copysign) __copysign_power6 attribute_hidden;
-
-extern __typeof (__redirect_copysign) __libm_copysign;
-libc_ifunc (__libm_copysign,
- (hwcap & PPC_FEATURE_ARCH_2_05)
- ? __copysign_power6
- : __copysign_ppc64);
-
-strong_alias (__libm_copysign, __copysign)
-libm_alias_double (__copysign, copysign)
-
-#if LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)
-compat_symbol (libc, __copysign, copysignl, GLIBC_2_0);
-#endif
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysignf.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysignf.c
deleted file mode 100644
index 377a3f814c..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysignf.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Multiple versions of copysignf.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-#include <shlib-compat.h>
-#include "init-arch.h"
-#include <libm-alias-float.h>
-
-/* It's safe to use double-precision implementation for single-precision. */
-extern __typeof (__copysignf) __copysign_ppc64 attribute_hidden;
-extern __typeof (__copysignf) __copysign_power6 attribute_hidden;
-
-libc_ifunc (__copysignf,
- (hwcap & PPC_FEATURE_ARCH_2_05)
- ? __copysign_power6
- : __copysign_ppc64);
-
-libm_alias_float (__copysign, copysign)
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_cosf-power8.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_cosf-power8.S
deleted file mode 100644
index 17adc90ad2..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_cosf-power8.S
+++ /dev/null
@@ -1,24 +0,0 @@
-/* cosf function. PowerPC64/power8 version.
- Copyright (C) 2017-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#undef weak_alias
-#define weak_alias(a,b)
-
-#define __cosf __cosf_power8
-
-#include <sysdeps/powerpc/powerpc64/power8/fpu/s_cosf.S>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_cosf-ppc64.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_cosf-ppc64.c
deleted file mode 100644
index 34e0553b93..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_cosf-ppc64.c
+++ /dev/null
@@ -1,24 +0,0 @@
-/* cosf function. PowerPC64 default version.
- Copyright (C) 2017-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#undef weak_alias
-#define weak_alias(a, b)
-
-#define __cosf __cosf_ppc64
-
-#include <sysdeps/powerpc/fpu/s_cosf.c>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_cosf.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_cosf.c
deleted file mode 100644
index cb12178791..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_cosf.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Multiple versions of cosf.
- Copyright (C) 2017-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-#include <shlib-compat.h>
-#include "init-arch.h"
-#include <libm-alias-float.h>
-
-extern __typeof (__cosf) __cosf_ppc64 attribute_hidden;
-extern __typeof (__cosf) __cosf_power8 attribute_hidden;
-
-libc_ifunc (__cosf,
- (hwcap2 & PPC_FEATURE2_ARCH_2_07)
- ? __cosf_power8
- : __cosf_ppc64);
-
-libm_alias_float (__cos, cos)
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite-power7.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite-power7.S
deleted file mode 100644
index d3e9f606bd..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite-power7.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* isnan(). PowerPC64/POWER7 version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <shlib-compat.h>
-
-#undef hidden_def
-#define hidden_def(name)
-#undef weak_alias
-#define weak_alias(name, alias)
-#undef strong_alias
-#define strong_alias(name, alias)
-#undef compat_symbol
-#define compat_symbol(lib, name, symbol, ver)
-
-#define __finite __finite_power7
-
-#include <sysdeps/powerpc/powerpc64/power7/fpu/s_finite.S>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite-power8.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite-power8.S
deleted file mode 100644
index 7a200a5c1a..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite-power8.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* isnan(). PowerPC64/POWER7 version.
- Copyright (C) 2014-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <shlib-compat.h>
-
-#undef hidden_def
-#define hidden_def(name)
-#undef weak_alias
-#define weak_alias(name, alias)
-#undef strong_alias
-#define strong_alias(name, alias)
-#undef compat_symbol
-#define compat_symbol(lib, name, symbol, ver)
-
-#define __finite __finite_power8
-
-#include <sysdeps/powerpc/powerpc64/power8/fpu/s_finite.S>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite-ppc64.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite-ppc64.c
deleted file mode 100644
index 2a597fc38d..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite-ppc64.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* finite(). PowerPC64 default version.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
- Contributed by Luis Machado <luisgpm@br.ibm.com>.
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-
-#undef weak_alias
-#define weak_alias(a, b)
-#undef strong_alias
-#define strong_alias(a, b)
-
-#define FINITE __finite_ppc64
-#ifdef SHARED
-# undef hidden_def
-# define hidden_def(a) \
- __hidden_ver1 (__finite_ppc64, __GI___finite, __finite_ppc64);
-#endif
-
-#include <sysdeps/ieee754/dbl-64/s_finite.c>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite.c
deleted file mode 100644
index 14c9ea7fef..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/* Multiple versions of finite.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#define __finite __redirect___finite
-
-/* The following definitions, although not related to the 'double'
- version of 'finite', are required to guarantee macro expansions
- (e.g.: from __finitef to __redirect_finitef) in include/math.h, thus
- compensating for the unintended macro expansions in
- math/bits/mathcalls-helper-functions.h. */
-#define __finitef __redirect___finitef
-#define __finitel __redirect___finitel
-#define __finitef128 __redirect___finitef128
-
-#include <math.h>
-#include <math_ldbl_opt.h>
-#include <shlib-compat.h>
-#include "init-arch.h"
-
-extern __typeof (__finite) __finite_ppc64 attribute_hidden;
-extern __typeof (__finite) __finite_power7 attribute_hidden;
-extern __typeof (__finite) __finite_power8 attribute_hidden;
-#undef __finite
-#undef __finitef
-#undef __finitel
-#undef __finitef128
-
-libc_ifunc_redirected (__redirect___finite, __finite,
- (hwcap2 & PPC_FEATURE2_ARCH_2_07)
- ? __finite_power8
- : (hwcap & PPC_FEATURE_ARCH_2_06)
- ? __finite_power7
- : __finite_ppc64);
-
-weak_alias (__finite, finite)
-
-#ifdef NO_LONG_DOUBLE
-strong_alias (__finite, __finitel)
-weak_alias (__finite, finitel)
-#endif
-
-#if IS_IN (libm)
-# if LONG_DOUBLE_COMPAT (libm, GLIBC_2_0)
-compat_symbol (libm, finite, finitel, GLIBC_2_0);
-# endif
-# if LONG_DOUBLE_COMPAT (libm, GLIBC_2_1)
-compat_symbol (libm, __finite, __finitel, GLIBC_2_1);
-# endif
-#else
-# if LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)
-compat_symbol (libc, __finite, __finitel, GLIBC_2_0);
-compat_symbol (libc, finite, finitel, GLIBC_2_0);
-# endif
-#endif
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finitef-ppc64.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finitef-ppc64.c
deleted file mode 100644
index 0df571cd2e..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finitef-ppc64.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* finitef(). PowerPC64 default version.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
- Contributed by Luis Machado <luisgpm@br.ibm.com>.
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-
-#undef weak_alias
-#define weak_alias(a, b)
-
-#define FINITEF __finitef_ppc64
-#ifdef SHARED
-# undef hidden_def
-# define hidden_def(a) \
- __hidden_ver1 (__finitef_ppc64, __GI___finitef, __finitef_ppc64);
-#endif
-
-#include <sysdeps/ieee754/flt-32/s_finitef.c>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finitef.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finitef.c
deleted file mode 100644
index d2ffdeeb41..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finitef.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Multiple versions of finitef.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#define __finitef __redirect___finitef
-#include <math.h>
-#include <shlib-compat.h>
-#include "init-arch.h"
-
-extern __typeof (__finitef) __finitef_ppc64 attribute_hidden;
-/* The double-precision version also works for single-precision. */
-extern __typeof (__finitef) __finite_power7 attribute_hidden;
-extern __typeof (__finitef) __finite_power8 attribute_hidden;
-#undef __finitef
-
-libc_ifunc_redirected (__redirect___finitef, __finitef,
- (hwcap2 & PPC_FEATURE2_ARCH_2_07)
- ? __finite_power8
- : (hwcap & PPC_FEATURE_ARCH_2_06)
- ? __finite_power7
- : __finitef_ppc64);
-
-weak_alias (__finitef, finitef)
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floor-power5+.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floor-power5+.S
deleted file mode 100644
index 0c4c97f7a6..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floor-power5+.S
+++ /dev/null
@@ -1,30 +0,0 @@
-/* floor function. PowerPC64/power5+ version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <shlib-compat.h>
-
-#undef weak_alias
-#define weak_alias(a,b)
-#undef strong_alias
-#define strong_alias(a,b)
-#undef compat_symbol
-#define compat_symbol(a,b,c,d)
-
-#define __floor __floor_power5plus
-
-#include <sysdeps/powerpc/powerpc64/power5+/fpu/s_floor.S>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floor-ppc64.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floor-ppc64.S
deleted file mode 100644
index 97ec94d733..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floor-ppc64.S
+++ /dev/null
@@ -1,30 +0,0 @@
-/* floor function. PowerPC64 default version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <shlib-compat.h>
-
-#undef weak_alias
-#define weak_alias(a,b)
-#undef strong_alias
-#define strong_alias(a,b)
-#undef compat_symbol
-#define compat_symbol(a,b,c,d)
-
-#define __floor __floor_ppc64
-
-#include <sysdeps/powerpc/powerpc64/fpu/s_floor.S>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floor.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floor.c
deleted file mode 100644
index d1a21a1d12..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floor.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Multiple versions of floor.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-#include <math_ldbl_opt.h>
-#include <shlib-compat.h>
-#include "init-arch.h"
-#include <libm-alias-double.h>
-
-extern __typeof (__floor) __floor_ppc64 attribute_hidden;
-extern __typeof (__floor) __floor_power5plus attribute_hidden;
-
-libc_ifunc (__floor,
- (hwcap & PPC_FEATURE_POWER5_PLUS)
- ? __floor_power5plus
- : __floor_ppc64);
-
-libm_alias_double (__floor, floor)
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floorf-power5+.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floorf-power5+.S
deleted file mode 100644
index 10676569c3..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floorf-power5+.S
+++ /dev/null
@@ -1,24 +0,0 @@
-/* floorf function. PowerPC64/power5+ version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#undef weak_alias
-#define weak_alias(a,b)
-
-#define __floorf __floorf_power5plus
-
-#include <sysdeps/powerpc/powerpc64/power5+/fpu/s_floorf.S>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floorf-ppc64.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floorf-ppc64.S
deleted file mode 100644
index b207f0cad2..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floorf-ppc64.S
+++ /dev/null
@@ -1,24 +0,0 @@
-/* floorf function. PowerPC64 default version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#undef weak_alias
-#define weak_alias(a,b)
-
-#define __floorf __floorf_ppc64
-
-#include <sysdeps/powerpc/powerpc64/fpu/s_floorf.S>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floorf.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floorf.c
deleted file mode 100644
index d1bbc14614..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_floorf.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Multiple versions of floorf.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-#include <math_ldbl_opt.h>
-#include <shlib-compat.h>
-#include "init-arch.h"
-#include <libm-alias-float.h>
-
-extern __typeof (__floorf) __floorf_ppc64 attribute_hidden;
-extern __typeof (__floorf) __floorf_power5plus attribute_hidden;
-
-libc_ifunc (__floorf,
- (hwcap & PPC_FEATURE_POWER5_PLUS)
- ? __floorf_power5plus
- : __floorf_ppc64);
-
-libm_alias_float (__floor, floor)
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf-power7.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf-power7.S
deleted file mode 100644
index e644f9605f..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf-power7.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* isinf(). PowerPC64/POWER7 version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <shlib-compat.h>
-
-#undef hidden_def
-#define hidden_def(name)
-#undef weak_alias
-#define weak_alias(name, alias)
-#undef strong_alias
-#define strong_alias(name, alias)
-#undef compat_symbol
-#define compat_symbol(lib, name, alias, ver)
-
-#define __isinf __isinf_power7
-
-#include <sysdeps/powerpc/powerpc64/power7/fpu/s_isinf.S>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf-power8.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf-power8.S
deleted file mode 100644
index dc7764d915..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf-power8.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* isinf(). PowerPC64/POWER8 version.
- Copyright (C) 2014-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <shlib-compat.h>
-
-#undef hidden_def
-#define hidden_def(name)
-#undef weak_alias
-#define weak_alias(name, alias)
-#undef strong_alias
-#define strong_alias(name, alias)
-#undef compat_symbol
-#define compat_symbol(lib, name, alias, ver)
-
-#define __isinf __isinf_power8
-
-#include <sysdeps/powerpc/powerpc64/power8/fpu/s_isinf.S>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf-ppc64.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf-ppc64.c
deleted file mode 100644
index c1907980db..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf-ppc64.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* isinf(). PowerPC64 default version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-
-#undef weak_alias
-#define weak_alias(a, b)
-#undef strong_alias
-#define strong_alias(a, b)
-
-#define __isinf __isinf_ppc64
-#ifdef SHARED
-# undef hidden_def
-# define hidden_def(a) \
- __hidden_ver1 (__isinf_ppc64, __GI___isinf, __isinf_ppc64);
-#endif
-
-#include <sysdeps/ieee754/dbl-64/s_isinf.c>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf.c
deleted file mode 100644
index 44f5d0c129..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/* Multiple versions of isinf.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#define __isinf __redirect___isinf
-
-/* The following definitions, although not related to the 'double'
- version of 'isinf', are required to guarantee macro expansions
- (e.g.: from __isinff to __redirect_isinff) in include/math.h, thus
- compensating for the unintended macro expansions in
- math/bits/mathcalls-helper-functions.h. */
-#define __isinff __redirect___isinff
-#define __isinfl __redirect___isinfl
-#define __isinff128 __redirect___isinff128
-
-#include <math.h>
-#include <math_ldbl_opt.h>
-#include <shlib-compat.h>
-#include "init-arch.h"
-
-extern __typeof (__isinf) __isinf_ppc64 attribute_hidden;
-extern __typeof (__isinf) __isinf_power7 attribute_hidden;
-extern __typeof (__isinf) __isinf_power8 attribute_hidden;
-#undef __isinf
-#undef __isinff
-#undef __isinfl
-#undef __isinff128
-
-libc_ifunc_redirected (__redirect___isinf, __isinf,
- (hwcap2 & PPC_FEATURE2_ARCH_2_07)
- ? __isinf_power8
- : (hwcap & PPC_FEATURE_ARCH_2_06)
- ? __isinf_power7
- : __isinf_ppc64);
-
-weak_alias (__isinf, isinf)
-
-#ifdef NO_LONG_DOUBLE
-strong_alias (__isinf, __isinfl)
-weak_alias (__isinf, isinfl)
-#endif
-
-#if !IS_IN (libm)
-# if LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)
-compat_symbol (libc, __isinf, __isinfl, GLIBC_2_0);
-compat_symbol (libc, isinf, isinfl, GLIBC_2_0);
-# endif
-#endif
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinff-ppc64.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinff-ppc64.c
deleted file mode 100644
index 531f15d822..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinff-ppc64.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* isinff(). PowerPC64 default version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-
-#undef weak_alias
-#define weak_alias(a, b)
-
-#define __isinff __isinff_ppc64
-#ifdef SHARED
-# undef hidden_def
-# define hidden_def(a) \
- __hidden_ver1 (__isinff_ppc64, __GI___isinff, __isinff_ppc64);
-#endif
-
-#include <sysdeps/ieee754/flt-32/s_isinff.c>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinff.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinff.c
deleted file mode 100644
index 7e29a60713..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinff.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Multiple versions of isinf.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#define __isinff __redirect___isinff
-#include <math.h>
-#include <math_ldbl_opt.h>
-#include <shlib-compat.h>
-#include "init-arch.h"
-
-extern __typeof (__isinff) __isinff_ppc64 attribute_hidden;
-/* The double-precision version also works for single-precision. */
-extern __typeof (__isinff) __isinf_power7 attribute_hidden;
-extern __typeof (__isinff) __isinf_power8 attribute_hidden;
-#undef __isinff
-
-libc_ifunc_redirected (__redirect___isinff, __isinff,
- (hwcap2 & PPC_FEATURE2_ARCH_2_07)
- ? __isinf_power8
- : (hwcap & PPC_FEATURE_ARCH_2_06)
- ? __isinf_power7
- : __isinff_ppc64);
-
-weak_alias (__isinff, isinff)
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power5.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power5.S
deleted file mode 100644
index 749cdbc9fe..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power5.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* isnan(). PowerPC64/POWER5 version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <shlib-compat.h>
-
-#undef hidden_def
-#define hidden_def(name)
-#undef weak_alias
-#define weak_alias(name, alias)
-#undef strong_alias
-#define strong_alias(name, alias)
-#undef compat_symbol
-#define compat_symbol(lib, name, symbol, ver)
-
-#define __isnan __isnan_power5
-
-#include <sysdeps/powerpc/powerpc64/power5/fpu/s_isnan.S>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power6.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power6.S
deleted file mode 100644
index 51cbc6b243..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power6.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* isnan(). PowerPC64/POWER6 version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <shlib-compat.h>
-
-#undef hidden_def
-#define hidden_def(name)
-#undef weak_alias
-#define weak_alias(name, alias)
-#undef strong_alias
-#define strong_alias(name, alias)
-#undef compat_symbol
-#define compat_symbol(lib, name, symbol, ver)
-
-#define __isnan __isnan_power6
-
-#include <sysdeps/powerpc/powerpc64/power6/fpu/s_isnan.S>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power6x.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power6x.S
deleted file mode 100644
index a2d64dfeb7..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power6x.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* isnan(). PowerPC64/POWER6X version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <shlib-compat.h>
-
-#undef hidden_def
-#define hidden_def(name)
-#undef weak_alias
-#define weak_alias(name, alias)
-#undef strong_alias
-#define strong_alias(name, alias)
-#undef compat_symbol
-#define compat_symbol(lib, name, symbol, ver)
-
-#define __isnan __isnan_power6x
-
-#include <sysdeps/powerpc/powerpc64/power6x/fpu/s_isnan.S>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power7.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power7.S
deleted file mode 100644
index 8585808b51..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power7.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* isnan(). PowerPC64/POWER7 version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <shlib-compat.h>
-
-#undef hidden_def
-#define hidden_def(name)
-#undef weak_alias
-#define weak_alias(name, alias)
-#undef strong_alias
-#define strong_alias(name, alias)
-#undef compat_symbol
-#define compat_symbol(lib, name, symbol, ver)
-
-#define __isnan __isnan_power7
-
-#include <sysdeps/powerpc/powerpc64/power7/fpu/s_isnan.S>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power8.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power8.S
deleted file mode 100644
index d501878cb2..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power8.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* isnan(). PowerPC64/POWER7 version.
- Copyright (C) 2014-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <shlib-compat.h>
-
-#undef hidden_def
-#define hidden_def(name)
-#undef weak_alias
-#define weak_alias(name, alias)
-#undef strong_alias
-#define strong_alias(name, alias)
-#undef compat_symbol
-#define compat_symbol(lib, name, symbol, ver)
-
-#define __isnan __isnan_power8
-
-#include <sysdeps/powerpc/powerpc64/power8/fpu/s_isnan.S>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-ppc64.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-ppc64.S
deleted file mode 100644
index 82e14d8b2e..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-ppc64.S
+++ /dev/null
@@ -1,36 +0,0 @@
-/* isnan(). PowerPC32 default version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <shlib-compat.h>
-
-#undef weak_alias
-#define weak_alias(a,b)
-#undef strong_alias
-#define strong_alias(a,b)
-#undef compat_symbol
-#define compat_symbol(a,b,c,d)
-
-
-#define __isnan __isnan_ppc64
-#ifdef SHARED
- #undef hidden_def
- #define hidden_def(name) \
- .globl __GI___isnan ; .set __GI___isnan,__isnan_ppc64
-#endif
-
-#include <sysdeps/powerpc/powerpc64/fpu/s_isnan.S>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan.c
deleted file mode 100644
index 0c155130c6..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/* Multiple versions of isnan.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#define __isnan __redirect___isnan
-
-/* The following definitions, although not related to the 'double'
- version of 'isnan', are required to guarantee macro expansions
- (e.g.: from __isnanf to __redirect_isnanf) in include/math.h, thus
- compensating for the unintended macro expansions in
- math/bits/mathcalls-helper-functions.h. */
-#define __isnanf __redirect___isnanf
-#define __isnanl __redirect___isnanl
-#define __isnanf128 __redirect___isnanf128
-
-#include <math.h>
-#include <math_ldbl_opt.h>
-#include <shlib-compat.h>
-#include "init-arch.h"
-
-extern __typeof (__isnan) __isnan_ppc64 attribute_hidden;
-extern __typeof (__isnan) __isnan_power5 attribute_hidden;
-extern __typeof (__isnan) __isnan_power6 attribute_hidden;
-extern __typeof (__isnan) __isnan_power6x attribute_hidden;
-extern __typeof (__isnan) __isnan_power7 attribute_hidden;
-extern __typeof (__isnan) __isnan_power8 attribute_hidden;
-#undef __isnan
-#undef __isnanf
-#undef __isnanl
-#undef __isnanf128
-
-libc_ifunc_redirected (__redirect___isnan, __isnan,
- (hwcap2 & PPC_FEATURE2_ARCH_2_07)
- ? __isnan_power8
- : (hwcap & PPC_FEATURE_ARCH_2_06)
- ? __isnan_power7
- : (hwcap & PPC_FEATURE_POWER6_EXT)
- ? __isnan_power6x
- : (hwcap & PPC_FEATURE_ARCH_2_05)
- ? __isnan_power6
- : (hwcap & PPC_FEATURE_POWER5)
- ? __isnan_power5
- : __isnan_ppc64);
-
-weak_alias (__isnan, isnan)
-
-#ifdef NO_LONG_DOUBLE
-strong_alias (__isnan, __isnanl)
-weak_alias (__isnan, isnanl)
-#endif
-
-#if !IS_IN (libm)
-# if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
-compat_symbol (libc, __isnan, __isnanl, GLIBC_2_0);
-compat_symbol (libc, isnan, isnanl, GLIBC_2_0);
-# endif
-#endif
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnanf.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnanf.c
deleted file mode 100644
index e9558d554c..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnanf.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/* Multiple versions of isnan.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-#include "init-arch.h"
-
-/* The double-precision implementation also works for the single one. */
-extern __typeof (__isnanf) __isnan_ppc64 attribute_hidden;
-extern __typeof (__isnanf) __isnan_power5 attribute_hidden;
-extern __typeof (__isnanf) __isnan_power6 attribute_hidden;
-extern __typeof (__isnanf) __isnan_power6x attribute_hidden;
-extern __typeof (__isnanf) __isnan_power7 attribute_hidden;
-extern __typeof (__isnanf) __isnan_power8 attribute_hidden;
-
-libc_ifunc_hidden (__isnanf, __isnanf,
- (hwcap2 & PPC_FEATURE2_ARCH_2_07)
- ? __isnan_power8
- : (hwcap & PPC_FEATURE_ARCH_2_06)
- ? __isnan_power7
- : (hwcap & PPC_FEATURE_POWER6_EXT)
- ? __isnan_power6x
- : (hwcap & PPC_FEATURE_ARCH_2_05)
- ? __isnan_power6
- : (hwcap & PPC_FEATURE_POWER5)
- ? __isnan_power5
- : __isnan_ppc64);
-
-hidden_def (__isnanf)
-weak_alias (__isnanf, isnanf)
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-power6x.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-power6x.S
deleted file mode 100644
index 3de77d5c7a..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-power6x.S
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Round double to long int. PowerPC64/POWER6X default version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <shlib-compat.h>
-
-#undef weak_alias
-#define weak_alias(a,b)
-#undef strong_alias
-#define strong_alias(a,b)
-#undef compat_symbol
-#define compat_symbol(a,b,c,d)
-
-#define __llrint __llrint_power6x
-
-#include <sysdeps/powerpc/powerpc64/power6x/fpu/s_llrint.S>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-power8.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-power8.S
deleted file mode 100644
index 619527207f..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-power8.S
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Round double to long int. PowerPC64/POWER6X default version.
- Copyright (C) 2014-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <shlib-compat.h>
-
-#undef weak_alias
-#define weak_alias(a,b)
-#undef strong_alias
-#define strong_alias(a,b)
-#undef compat_symbol
-#define compat_symbol(a,b,c,d)
-
-#define __llrint __llrint_power8
-
-#include <sysdeps/powerpc/powerpc64/power8/fpu/s_llrint.S>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-ppc64.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-ppc64.S
deleted file mode 100644
index 093726628d..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-ppc64.S
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Round double to long int. PowerPC32 default version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <shlib-compat.h>
-
-#undef weak_alias
-#define weak_alias(a,b)
-#undef strong_alias
-#define strong_alias(a,b)
-#undef compat_symbol
-#define compat_symbol(a,b,c,d)
-
-#define __llrint __llrint_ppc64
-
-#include <sysdeps/powerpc/powerpc64/fpu/s_llrint.S>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint.c
deleted file mode 100644
index 59f8c2bd95..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Multiple versions of llrint.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-/* Redefine lrint/__lrint so that the compiler won't complain about the type
- mismatch with the IFUNC selector in strong_alias below. */
-#define lrint __hidden_lrint
-#define __lrint __hidden___lrint
-
-#include <math.h>
-#include <math_ldbl_opt.h>
-#undef lrint
-#undef __lrint
-#include <shlib-compat.h>
-#include "init-arch.h"
-#include <libm-alias-double.h>
-
-extern __typeof (__llrint) __llrint_ppc64 attribute_hidden;
-extern __typeof (__llrint) __llrint_power6x attribute_hidden;
-extern __typeof (__llrint) __llrint_power8 attribute_hidden;
-
-libc_ifunc (__llrint,
- (hwcap2 & PPC_FEATURE2_ARCH_2_07)
- ? __llrint_power8 :
- (hwcap & PPC_FEATURE_POWER6_EXT)
- ? __llrint_power6x
- : __llrint_ppc64);
-
-libm_alias_double (__llrint, llrint)
-
-/* long has the same width as long long on PowerPC64. */
-strong_alias (__llrint, __lrint)
-libm_alias_double (__lrint, lrint)
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrintf.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrintf.c
deleted file mode 100644
index 919b5de03a..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrintf.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Multiple versions of llrintf.
- Copyright (C) 2017-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-/* Redefine lrintf/__lrintf so that the compiler won't complain about the type
- mismatch with the IFUNC selector in strong_alias below. */
-#define lrintf __hidden_lrintf
-#define __lrintf __hidden___lrintf
-
-#include <math.h>
-#undef lrintf
-#undef __lrintf
-#include "init-arch.h"
-#include <libm-alias-float.h>
-
-extern __typeof (__llrintf) __llrint_ppc64 attribute_hidden;
-extern __typeof (__llrintf) __llrint_power6x attribute_hidden;
-extern __typeof (__llrintf) __llrint_power8 attribute_hidden;
-
-/* The ppc64 ABI passes float and double parameters in 64bit floating point
- registers (at least up to a point) as IEEE binary64 format, so effectively
- of "double" type. Both l[l]rint and l[l]rintf return long type. So these
- functions have identical signatures and functionality, and can use a
- single implementation. */
-libc_ifunc (__llrintf,
- (hwcap2 & PPC_FEATURE2_ARCH_2_07)
- ? __llrint_power8 :
- (hwcap & PPC_FEATURE_POWER6_EXT)
- ? __llrint_power6x
- : __llrint_ppc64);
-
-libm_alias_float (__llrint, llrint)
-strong_alias (__llrintf, __lrintf)
-libm_alias_float (__lrint, lrint)
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power5+.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power5+.S
deleted file mode 100644
index 448ec22478..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power5+.S
+++ /dev/null
@@ -1,31 +0,0 @@
-/* llround(). PowerPC64 default version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <shlib-compat.h>
-
-#undef weak_alias
-#define weak_alias(name, alias)
-#undef strong_alias
-#define strong_alias(name, alias)
-#undef compat_symbol
-#define compat_symbol(a,b,c,d)
-
-#define __llround __llround_power5plus
-#define __lround __lround_power5plus
-
-#include <sysdeps/powerpc/powerpc64/power5+/fpu/s_llround.S>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power6x.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power6x.S
deleted file mode 100644
index 9110148419..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power6x.S
+++ /dev/null
@@ -1,31 +0,0 @@
-/* llround(). PowerPC64 default version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <shlib-compat.h>
-
-#undef weak_alias
-#define weak_alias(name, alias)
-#undef strong_alias
-#define strong_alias(name, alias)
-#undef compat_symbol
-#define compat_symbol(lib, name, alias, ver)
-
-#define __llround __llround_power6x
-#define __lround __lround_power6x
-
-#include <sysdeps/powerpc/powerpc64/power6x/fpu/s_llround.S>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power8.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power8.S
deleted file mode 100644
index 3bbb5924ee..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-power8.S
+++ /dev/null
@@ -1,30 +0,0 @@
-/* llround(). PowerPC64 default version.
- Copyright (C) 2014-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <shlib-compat.h>
-
-#undef weak_alias
-#define weak_alias(name, alias)
-#undef strong_alias
-#define strong_alias(name, alias)
-#undef compat_symbol
-#define compat_symbol(lib, name, alias, ver)
-
-#define __llround __llround_power8
-
-#include <sysdeps/powerpc/powerpc64/power8/fpu/s_llround.S>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-ppc64.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-ppc64.S
deleted file mode 100644
index c098210ade..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround-ppc64.S
+++ /dev/null
@@ -1,27 +0,0 @@
-/* llround(). PowerPC64 default version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <shlib-compat.h>
-
-#undef compat_symbol
-#define compat_symbol(a,b,c,d)
-
-#define __llround __llround_ppc64
-#define __lround __lround_ppc64
-
-#include <sysdeps/powerpc/powerpc64/fpu/s_llround.S>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround.c
deleted file mode 100644
index 07ae196178..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llround.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Multiple versions of llround.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#define lround __hidden_lround
-#define __lround __hidden___lround
-
-#include <math.h>
-#include <math_ldbl_opt.h>
-#include <shlib-compat.h>
-#include "init-arch.h"
-#include <libm-alias-double.h>
-
-extern __typeof (__llround) __llround_ppc64 attribute_hidden;
-extern __typeof (__llround) __llround_power5plus attribute_hidden;
-extern __typeof (__llround) __llround_power6x attribute_hidden;
-extern __typeof (__llround) __llround_power8 attribute_hidden;
-
-libc_ifunc (__llround,
- (hwcap2 & PPC_FEATURE2_ARCH_2_07)
- ? __llround_power8 :
- (hwcap & PPC_FEATURE_POWER6_EXT)
- ? __llround_power6x :
- (hwcap & PPC_FEATURE_POWER5_PLUS)
- ? __llround_power5plus
- : __llround_ppc64);
-
-libm_alias_double (__llround, llround)
-
-/* long has the same width as long long on PPC64. */
-#undef lround
-#undef __lround
-strong_alias (__llround, __lround)
-libm_alias_double (__lround, lround)
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llroundf-ppc64.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llroundf-ppc64.S
deleted file mode 100644
index 1af420a1d9..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llroundf-ppc64.S
+++ /dev/null
@@ -1,31 +0,0 @@
-/* llroundf(). PowerPC64 default version.
- Copyright (C) 2017-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <shlib-compat.h>
-
-#undef weak_alias
-#define weak_alias(a,b)
-#undef strong_alias
-#define strong_alias(a,b)
-#undef compat_symbol
-#define compat_symbol(a,b,c,d)
-
-#define __llroundf __llroundf_ppc64
-#define __lroundf __lroundf_ppc64
-
-#include <sysdeps/powerpc/powerpc64/fpu/s_llroundf.S>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llroundf.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llroundf.c
deleted file mode 100644
index 792ae1dc5e..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_llroundf.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Multiple versions of llroundf.
- Copyright (C) 2017-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-/* Redefine lroundf/__lroundf so that the compiler won't complain about
- the type mismatch with the IFUNC selector in strong_alias below. */
-#define lroundf __hidden_lroundf
-#define __lroundf __hidden___lroundf
-
-#include <math.h>
-#undef lroundf
-#undef __lroundf
-#include "init-arch.h"
-#include <libm-alias-float.h>
-
-extern __typeof (__llroundf) __llroundf_ppc64 attribute_hidden;
-extern __typeof (__llroundf) __llround_power6x attribute_hidden;
-extern __typeof (__llroundf) __llround_power8 attribute_hidden;
-
-/* The ppc64 ABI passes float and double parameters in 64bit floating point
- registers (at least up to a point) as IEEE binary64 format, so effectively
- of "double" type. Both l[l]round and l[l]roundf return long type. So these
- functions have identical signatures and functionality, and can use a
- single implementation. */
-libc_ifunc (__llroundf,
- (hwcap2 & PPC_FEATURE2_ARCH_2_07)
- ? __llround_power8 :
- (hwcap & PPC_FEATURE_POWER6_EXT)
- ? __llround_power6x
- : __llroundf_ppc64);
-
-libm_alias_float (__llround, llround)
-strong_alias (__llroundf, __lroundf)
-libm_alias_float (__lround, lround)
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_logb.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_logb.c
deleted file mode 100644
index b4a72c81fd..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_logb.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Multiple versions of logb.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-#include <math_ldbl_opt.h>
-#include <shlib-compat.h>
-#include "init-arch.h"
-#include <libm-alias-double.h>
-
-extern __typeof (__logb) __logb_ppc64 attribute_hidden;
-extern __typeof (__logb) __logb_power7 attribute_hidden;
-
-libc_ifunc (__logb,
- (hwcap & PPC_FEATURE_ARCH_2_06)
- ? __logb_power7
- : __logb_ppc64);
-
-libm_alias_double (__logb, logb)
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbf.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbf.c
deleted file mode 100644
index 48e7d410e1..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbf.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Multiple versions of logbf.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-#include <math_ldbl_opt.h>
-#include <shlib-compat.h>
-#include "init-arch.h"
-#include <libm-alias-float.h>
-
-extern __typeof (__logbf) __logbf_ppc64 attribute_hidden;
-extern __typeof (__logbf) __logbf_power7 attribute_hidden;
-
-libc_ifunc (__logbf,
- (hwcap & PPC_FEATURE_ARCH_2_06)
- ? __logbf_power7
- : __logbf_ppc64);
-
-libm_alias_float (__logb, logb)
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbl.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbl.c
deleted file mode 100644
index f677c2aa69..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_logbl.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Multiple versions of logbl.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-#include <math_ldbl_opt.h>
-#include <shlib-compat.h>
-#include "init-arch.h"
-
-extern __typeof (__logbl) __logbl_ppc64 attribute_hidden;
-extern __typeof (__logbl) __logbl_power7 attribute_hidden;
-
-libc_ifunc (__logbl,
- (hwcap & PPC_FEATURE_ARCH_2_06)
- ? __logbl_power7
- : __logbl_ppc64);
-
-long_double_symbol (libm, __logbl, logbl);
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_modf.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_modf.c
deleted file mode 100644
index 1fe7408cf3..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_modf.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Multiple versions of modf.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-#include <math_ldbl_opt.h>
-#include <shlib-compat.h>
-#include "init-arch.h"
-#include <libm-alias-double.h>
-
-extern __typeof (__modf) __modf_ppc64 attribute_hidden;
-extern __typeof (__modf) __modf_power5plus attribute_hidden;
-
-libc_ifunc (__modf,
- (hwcap & PPC_FEATURE_POWER5_PLUS)
- ? __modf_power5plus
- : __modf_ppc64);
-
-libm_alias_double (__modf, modf)
-
-#if LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)
-compat_symbol (libc, __modf, modfl, GLIBC_2_0);
-#endif
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_modff.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_modff.c
deleted file mode 100644
index efa96a799b..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_modff.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Multiple versions of modff.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-#include "init-arch.h"
-#include <libm-alias-float.h>
-
-extern __typeof (__modff) __modff_ppc64 attribute_hidden;
-extern __typeof (__modff) __modff_power5plus attribute_hidden;
-
-libc_ifunc (__modff,
- (hwcap & PPC_FEATURE_POWER5_PLUS)
- ? __modff_power5plus
- : __modff_ppc64);
-
-libm_alias_float (__modf, modf)
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_round-power5+.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_round-power5+.S
deleted file mode 100644
index 67c001005a..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_round-power5+.S
+++ /dev/null
@@ -1,30 +0,0 @@
-/* round function. PowerPC64/power5+ version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <shlib-compat.h>
-
-#undef weak_alias
-#define weak_alias(a,b)
-#undef strong_alias
-#define strong_alias(a,b)
-#undef compat_symbol
-#define compat_symbol(a,b,c,d)
-
-#define __round __round_power5plus
-
-#include <sysdeps/powerpc/powerpc64/power5+/fpu/s_round.S>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_round-ppc64.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_round-ppc64.S
deleted file mode 100644
index 43cf13ab38..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_round-ppc64.S
+++ /dev/null
@@ -1,30 +0,0 @@
-/* round function. PowerPC64 default version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <shlib-compat.h>
-
-#undef weak_alias
-#define weak_alias(a,b)
-#undef strong_alias
-#define strong_alias(a,b)
-#undef compat_symbol
-#define compat_symbol(a,b,c,d)
-
-#define __round __round_ppc64
-
-#include <sysdeps/powerpc/powerpc64/fpu/s_round.S>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_round.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_round.c
deleted file mode 100644
index bfa4d8119e..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_round.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Multiple versions of round.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-#include <math_ldbl_opt.h>
-#include <shlib-compat.h>
-#include "init-arch.h"
-#include <libm-alias-double.h>
-
-extern __typeof (__round) __round_ppc64 attribute_hidden;
-extern __typeof (__round) __round_power5plus attribute_hidden;
-
-libc_ifunc (__round,
- (hwcap & PPC_FEATURE_POWER5_PLUS)
- ? __round_power5plus
- : __round_ppc64);
-
-libm_alias_double (__round, round)
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_roundf-power5+.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_roundf-power5+.S
deleted file mode 100644
index 6daf4c9f12..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_roundf-power5+.S
+++ /dev/null
@@ -1,24 +0,0 @@
-/* roundf function. PowerPC64/power5+ version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#undef weak_alias
-#define weak_alias(a,b)
-
-#define __roundf __roundf_power5plus
-
-#include <sysdeps/powerpc/powerpc64/power5+/fpu/s_roundf.S>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_roundf-ppc64.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_roundf-ppc64.S
deleted file mode 100644
index 9500b278cf..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_roundf-ppc64.S
+++ /dev/null
@@ -1,24 +0,0 @@
-/* roundf function. PowerPC64 default version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#undef weak_alias
-#define weak_alias(a,b)
-
-#define __roundf __roundf_ppc64
-
-#include <sysdeps/powerpc/powerpc64/fpu/s_roundf.S>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_roundf.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_roundf.c
deleted file mode 100644
index 3d77156846..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_roundf.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Multiple versions of roundf.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-#include <math_ldbl_opt.h>
-#include <shlib-compat.h>
-#include "init-arch.h"
-#include <libm-alias-float.h>
-
-extern __typeof (__roundf) __roundf_ppc64 attribute_hidden;
-extern __typeof (__roundf) __roundf_power5plus attribute_hidden;
-
-libc_ifunc (__roundf,
- (hwcap & PPC_FEATURE_POWER5_PLUS)
- ? __roundf_power5plus
- : __roundf_ppc64);
-
-libm_alias_float (__round, round)
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf-power8.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf-power8.S
deleted file mode 100644
index 6cc058e93c..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf-power8.S
+++ /dev/null
@@ -1,24 +0,0 @@
-/* sinf(). PowerPC64/POWER8 version.
- Copyright (C) 2016-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#undef weak_alias
-#define weak_alias(a, b)
-
-#define __sinf __sinf_power8
-
-#include <sysdeps/powerpc/powerpc64/power8/fpu/s_sinf.S>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf-ppc64.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf-ppc64.c
deleted file mode 100644
index 4f0a09e040..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf-ppc64.c
+++ /dev/null
@@ -1,24 +0,0 @@
-/* sinf(). PowerPC64 default version.
- Copyright (C) 2016-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#undef weak_alias
-#define weak_alias(a, b)
-
-#define __sinf __sinf_ppc64
-
-#include <sysdeps/powerpc/fpu/s_sinf.c>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf.c
deleted file mode 100644
index f1d9a97eea..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_sinf.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Multiple versions of sinf.
- Copyright (C) 2016-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-#include <shlib-compat.h>
-#include "init-arch.h"
-#include <libm-alias-float.h>
-
-extern __typeof (__sinf) __sinf_ppc64 attribute_hidden;
-extern __typeof (__sinf) __sinf_power8 attribute_hidden;
-
-libc_ifunc (__sinf,
- (hwcap2 & PPC_FEATURE2_ARCH_2_07)
- ? __sinf_power8
- : __sinf_ppc64);
-
-libm_alias_float (__sin, sin)
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_trunc-power5+.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_trunc-power5+.S
deleted file mode 100644
index c3cb5d3f21..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_trunc-power5+.S
+++ /dev/null
@@ -1,30 +0,0 @@
-/* trunc function. PowerPC64/power5+ version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <shlib-compat.h>
-
-#undef weak_alias
-#define weak_alias(a,b)
-#undef strong_alias
-#define strong_alias(a,b)
-#undef compat_symbol
-#define compat_symbol(a,b,c,d)
-
-#define __trunc __trunc_power5plus
-
-#include <sysdeps/powerpc/powerpc64/power5+/fpu/s_trunc.S>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_trunc-ppc64.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_trunc-ppc64.S
deleted file mode 100644
index 1cfe0531e8..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_trunc-ppc64.S
+++ /dev/null
@@ -1,30 +0,0 @@
-/* trunc function. PowerPC64 default version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <shlib-compat.h>
-
-#undef weak_alias
-#define weak_alias(a,b)
-#undef strong_alias
-#define strong_alias(a,b)
-#undef compat_symbol
-#define compat_symbol(a,b,c,d)
-
-#define __trunc __trunc_ppc64
-
-#include <sysdeps/powerpc/powerpc64/fpu/s_trunc.S>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_trunc.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_trunc.c
deleted file mode 100644
index 989ffc9cf4..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_trunc.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Multiple versions of trunc.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-#include <math_ldbl_opt.h>
-#include <shlib-compat.h>
-#include "init-arch.h"
-#include <libm-alias-double.h>
-
-extern __typeof (__trunc) __trunc_ppc64 attribute_hidden;
-extern __typeof (__trunc) __trunc_power5plus attribute_hidden;
-
-libc_ifunc (__trunc,
- (hwcap & PPC_FEATURE_POWER5_PLUS)
- ? __trunc_power5plus
- : __trunc_ppc64);
-
-libm_alias_double (__trunc, trunc)
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_truncf-power5+.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_truncf-power5+.S
deleted file mode 100644
index b40f00dd8e..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_truncf-power5+.S
+++ /dev/null
@@ -1,24 +0,0 @@
-/* truncf function. PowerPC64/power5+ version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#undef weak_alias
-#define weak_alias(a,b)
-
-#define __truncf __truncf_power5plus
-
-#include <sysdeps/powerpc/powerpc64/power5+/fpu/s_truncf.S>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_truncf-ppc64.S b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_truncf-ppc64.S
deleted file mode 100644
index b05bbfd1e5..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_truncf-ppc64.S
+++ /dev/null
@@ -1,24 +0,0 @@
-/* truncf function. PowerPC64 default version.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#undef weak_alias
-#define weak_alias(a,b)
-
-#define __truncf __truncf_ppc64
-
-#include <sysdeps/powerpc/powerpc64/fpu/s_truncf.S>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_truncf.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_truncf.c
deleted file mode 100644
index fc5351b0ca..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_truncf.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Multiple versions of truncf.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-#include <math_ldbl_opt.h>
-#include <shlib-compat.h>
-#include "init-arch.h"
-#include <libm-alias-float.h>
-
-extern __typeof (__truncf) __truncf_ppc64 attribute_hidden;
-extern __typeof (__truncf) __truncf_power5plus attribute_hidden;
-
-libc_ifunc (__truncf,
- (hwcap & PPC_FEATURE_POWER5_PLUS)
- ? __truncf_power5plus
- : __truncf_ppc64);
-
-libm_alias_float (__trunc, trunc)
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/w_expf.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/w_expf.c
deleted file mode 100644
index b5fe164520..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/w_expf.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/../math/w_expf.c>
diff --git a/sysdeps/powerpc/powerpc64/fpu/s_ceil.S b/sysdeps/powerpc/powerpc64/fpu/s_ceil.S
deleted file mode 100644
index 252d94f51e..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/s_ceil.S
+++ /dev/null
@@ -1,65 +0,0 @@
-/* ceil function. PowerPC64 version.
- Copyright (C) 2004-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-#include <libm-alias-double.h>
-
- .section ".toc","aw"
-.LC0: /* 2**52 */
- .tc FD_43300000_0[TC],0x4330000000000000
- .section ".text"
-
-ENTRY (__ceil, 4)
- CALL_MCOUNT 0
- lfd fp13,.LC0@toc(2)
- fabs fp0,fp1
- fsub fp12,fp13,fp13 /* generate 0.0 */
- fcmpu cr7,fp0,fp13 /* if (fabs(x) > TWO52) */
- mffs fp11 /* Save current FPU rounding mode and
- "inexact" state. */
- fcmpu cr6,fp1,fp12 /* if (x > 0.0) */
- bnl- cr7,.L10
- mtfsfi 7,2 /* Set rounding mode toward +inf. */
- ble- cr6,.L4
- fadd fp1,fp1,fp13 /* x+= TWO52; */
- fsub fp1,fp1,fp13 /* x-= TWO52; */
- fabs fp1,fp1 /* if (x == 0.0) */
- /* x = 0.0; */
- mtfsf 0xff,fp11 /* Restore previous rounding mode and
- "inexact" state. */
- blr
-.L4:
- bge- cr6,.L9 /* if (x < 0.0) */
- fsub fp1,fp1,fp13 /* x-= TWO52; */
- fadd fp1,fp1,fp13 /* x+= TWO52; */
- fnabs fp1,fp1 /* if (x == 0.0) */
- /* x = -0.0; */
-.L9:
- mtfsf 0xff,fp11 /* Restore previous rounding mode and
- "inexact" state. */
- blr
-.L10:
- /* Ensure sNaN input is converted to qNaN. */
- fcmpu cr7,fp1,fp1
- beqlr cr7
- fadd fp1,fp1,fp1
- blr
- END (__ceil)
-
-libm_alias_double (__ceil, ceil)
diff --git a/sysdeps/powerpc/powerpc64/fpu/s_ceilf.S b/sysdeps/powerpc/powerpc64/fpu/s_ceilf.S
deleted file mode 100644
index 3c62077c14..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/s_ceilf.S
+++ /dev/null
@@ -1,67 +0,0 @@
-/* float ceil function. PowerPC64 version.
- Copyright (C) 2004-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <libm-alias-float.h>
-
- .section ".toc","aw"
- .p2align 3
-.LC0: /* 2**23 */
- .long 0x4b000000
- .long 0x0
- .section ".text"
-
-ENTRY (__ceilf, 4)
- CALL_MCOUNT 0
- lfs fp13,.LC0@toc(2)
- fabs fp0,fp1
- fsubs fp12,fp13,fp13 /* generate 0.0 */
- fcmpu cr7,fp0,fp13 /* if (fabs(x) > TWO23) */
- mffs fp11 /* Save current FPU rounding mode and
- "inexact" state. */
- fcmpu cr6,fp1,fp12 /* if (x > 0.0) */
- bnl- cr7,.L10
- mtfsfi 7,2 /* Set rounding mode toward +inf. */
- ble- cr6,.L4
- fadds fp1,fp1,fp13 /* x+= TWO23; */
- fsubs fp1,fp1,fp13 /* x-= TWO23; */
- fabs fp1,fp1 /* if (x == 0.0) */
- /* x = 0.0; */
- mtfsf 0xff,fp11 /* Restore previous rounding mode and
- "inexact" state. */
- blr
-.L4:
- bge- cr6,.L9 /* if (x < 0.0) */
- fsubs fp1,fp1,fp13 /* x-= TWO23; */
- fadds fp1,fp1,fp13 /* x+= TWO23; */
- fnabs fp1,fp1 /* if (x == 0.0) */
- /* x = -0.0; */
-.L9:
- mtfsf 0xff,fp11 /* Restore previous rounding mode and
- "inexact" state. */
- blr
-.L10:
- /* Ensure sNaN input is converted to qNaN. */
- fcmpu cr7,fp1,fp1
- beqlr cr7
- fadds fp1,fp1,fp1
- blr
- END (__ceilf)
-
-libm_alias_float (__ceil, ceil)
-
diff --git a/sysdeps/powerpc/powerpc64/fpu/s_copysign.S b/sysdeps/powerpc/powerpc64/fpu/s_copysign.S
deleted file mode 100644
index e40cbc7b8b..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/s_copysign.S
+++ /dev/null
@@ -1,53 +0,0 @@
-/* Copy a sign bit between floating-point values. PowerPC64 version.
- Copyright (C) 1997-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-/* This has been coded in assembler because GCC makes such a mess of it
- when it's coded in C. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-#include <libm-alias-float.h>
-#include <libm-alias-double.h>
-
-ENTRY_TOCLESS (__copysign)
- CALL_MCOUNT 0
-/* double [f1] copysign (double [f1] x, double [f2] y);
- copysign(x,y) returns a value with the magnitude of x and
- with the sign bit of y. */
- stfd fp2,-8(r1)
- nop
- nop
- nop
- ld r3,-8(r1)
- cmpdi r3,0
- blt L(0)
- fabs fp1,fp1
- blr
-L(0): fnabs fp1,fp1
- blr
- END (__copysign)
-
-libm_alias_double (__copysign, copysign)
-
-/* It turns out that it's safe to use this code even for single-precision. */
-strong_alias(__copysign,__copysignf)
-libm_alias_float (__copysign, copysign)
-
-#if LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)
-compat_symbol (libc, __copysign, copysignl, GLIBC_2_0)
-#endif
diff --git a/sysdeps/powerpc/powerpc64/fpu/s_copysignf.S b/sysdeps/powerpc/powerpc64/fpu/s_copysignf.S
deleted file mode 100644
index e05438ae7d..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/s_copysignf.S
+++ /dev/null
@@ -1 +0,0 @@
-/* __copysignf is in s_copysign.S */
diff --git a/sysdeps/powerpc/powerpc64/fpu/s_copysignl.S b/sysdeps/powerpc/powerpc64/fpu/s_copysignl.S
index 1dcfa33b2e..d5934bf145 100644
--- a/sysdeps/powerpc/powerpc64/fpu/s_copysignl.S
+++ b/sysdeps/powerpc/powerpc64/fpu/s_copysignl.S
@@ -1,6 +1,6 @@
/* Copy a sign bit between floating-point values.
IBM extended format long double version.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <math_ldbl_opt.h>
diff --git a/sysdeps/powerpc/powerpc64/fpu/s_fabsl.S b/sysdeps/powerpc/powerpc64/fpu/s_fabsl.S
index 04936949ac..7e8d9a95f4 100644
--- a/sysdeps/powerpc/powerpc64/fpu/s_fabsl.S
+++ b/sysdeps/powerpc/powerpc64/fpu/s_fabsl.S
@@ -1,6 +1,6 @@
/* Copy a sign bit between floating-point values.
IBM extended format long double version.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <math_ldbl_opt.h>
diff --git a/sysdeps/powerpc/powerpc64/fpu/s_floor.S b/sysdeps/powerpc/powerpc64/fpu/s_floor.S
deleted file mode 100644
index f0d57c47dd..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/s_floor.S
+++ /dev/null
@@ -1,65 +0,0 @@
-/* Floor function. PowerPC64 version.
- Copyright (C) 2004-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-#include <libm-alias-double.h>
-
- .section ".toc","aw"
-.LC0: /* 2**52 */
- .tc FD_43300000_0[TC],0x4330000000000000
- .section ".text"
-
-ENTRY (__floor, 4)
- CALL_MCOUNT 0
- lfd fp13,.LC0@toc(2)
- fabs fp0,fp1
- fsub fp12,fp13,fp13 /* generate 0.0 */
- fcmpu cr7,fp0,fp13 /* if (fabs(x) > TWO52) */
- mffs fp11 /* Save current FPU rounding mode and
- "inexact" state. */
- fcmpu cr6,fp1,fp12 /* if (x > 0.0) */
- bnl- cr7,.L10
- mtfsfi 7,3 /* Set rounding mode toward -inf. */
- ble- cr6,.L4
- fadd fp1,fp1,fp13 /* x+= TWO52; */
- fsub fp1,fp1,fp13 /* x-= TWO52; */
- fabs fp1,fp1 /* if (x == 0.0) */
- /* x = 0.0; */
- mtfsf 0xff,fp11 /* Restore previous rounding mode and
- "inexact" state. */
- blr
-.L4:
- bge- cr6,.L9 /* if (x < 0.0) */
- fsub fp1,fp1,fp13 /* x-= TWO52; */
- fadd fp1,fp1,fp13 /* x+= TWO52; */
- fnabs fp1,fp1 /* if (x == 0.0) */
- /* x = -0.0; */
-.L9:
- mtfsf 0xff,fp11 /* Restore previous rounding mode and
- "inexact" state. */
- blr
-.L10:
- /* Ensure sNaN input is converted to qNaN. */
- fcmpu cr7,fp1,fp1
- beqlr cr7
- fadd fp1,fp1,fp1
- blr
- END (__floor)
-
-libm_alias_double (__floor, floor)
diff --git a/sysdeps/powerpc/powerpc64/fpu/s_floorf.S b/sysdeps/powerpc/powerpc64/fpu/s_floorf.S
deleted file mode 100644
index b8c70fa7de..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/s_floorf.S
+++ /dev/null
@@ -1,67 +0,0 @@
-/* float Floor function. PowerPC64 version.
- Copyright (C) 2004-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <libm-alias-float.h>
-
- .section ".toc","aw"
- .p2align 3
-.LC0: /* 2**23 */
- .long 0x4b000000
- .long 0x0
- .section ".text"
-
-ENTRY (__floorf, 4)
- CALL_MCOUNT 0
- lfs fp13,.LC0@toc(2)
- fabs fp0,fp1
- fsubs fp12,fp13,fp13 /* generate 0.0 */
- fcmpu cr7,fp0,fp13 /* if (fabs(x) > TWO23) */
- mffs fp11 /* Save current FPU rounding mode and
- "inexact" state. */
- fcmpu cr6,fp1,fp12 /* if (x > 0.0) */
- bnl- cr7,.L10
- mtfsfi 7,3 /* Set rounding mode toward -inf. */
- ble- cr6,.L4
- fadds fp1,fp1,fp13 /* x+= TWO23; */
- fsubs fp1,fp1,fp13 /* x-= TWO23; */
- fabs fp1,fp1 /* if (x == 0.0) */
- /* x = 0.0; */
- mtfsf 0xff,fp11 /* Restore previous rounding mode and
- "inexact" state. */
- blr
-.L4:
- bge- cr6,.L9 /* if (x < 0.0) */
- fsubs fp1,fp1,fp13 /* x-= TWO23; */
- fadds fp1,fp1,fp13 /* x+= TWO23; */
- fnabs fp1,fp1 /* if (x == 0.0) */
- /* x = -0.0; */
-.L9:
- mtfsf 0xff,fp11 /* Restore previous rounding mode and
- "inexact" state. */
- blr
-.L10:
- /* Ensure sNaN input is converted to qNaN. */
- fcmpu cr7,fp1,fp1
- beqlr cr7
- fadds fp1,fp1,fp1
- blr
- END (__floorf)
-
-libm_alias_float (__floor, floor)
-
diff --git a/sysdeps/powerpc/powerpc64/fpu/s_isnan.S b/sysdeps/powerpc/powerpc64/fpu/s_isnan.S
deleted file mode 100644
index 12d23969ee..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/s_isnan.S
+++ /dev/null
@@ -1,56 +0,0 @@
-/* isnan(). PowerPC64 version.
- Copyright (C) 2008-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-/* int __isnan(x) */
- .machine power4
-ENTRY_TOCLESS (__isnan, 4)
- CALL_MCOUNT 0
- mffs fp0
- mtfsb0 4*cr6+lt /* reset_fpscr_bit (FPSCR_VE) */
- fcmpu cr7,fp1,fp1
- mtfsf 255,fp0
- li r3,0
- beqlr+ cr7 /* (x == x) then not a NAN */
- li r3,1 /* else must be a NAN */
- blr
- END (__isnan)
-
-hidden_def (__isnan)
-weak_alias (__isnan, isnan)
-
-/* It turns out that the 'double' version will also always work for
- single-precision. */
-strong_alias (__isnan, __isnanf)
-hidden_def (__isnanf)
-weak_alias (__isnanf, isnanf)
-
-#ifdef NO_LONG_DOUBLE
-strong_alias (__isnan, __isnanl)
-weak_alias (__isnan, isnanl)
-#endif
-
-#if !IS_IN (libm)
-# if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
-compat_symbol (libc, __isnan, __isnanl, GLIBC_2_0);
-compat_symbol (libc, isnan, isnanl, GLIBC_2_0);
-# endif
-#endif
-
diff --git a/sysdeps/powerpc/powerpc64/fpu/s_llrint.S b/sysdeps/powerpc/powerpc64/fpu/s_llrint.S
deleted file mode 100644
index d3cc9b821e..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/s_llrint.S
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Round double to long int. PowerPC64 version.
- Copyright (C) 2004-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-#include <libm-alias-float.h>
-#include <libm-alias-double.h>
-
-/* long long int[r3] __llrint (double x[fp1]) */
-ENTRY_TOCLESS (__llrint)
- CALL_MCOUNT 0
- fctid fp13,fp1
- stfd fp13,-16(r1)
- nop /* Insure the following load is in a different dispatch group */
- nop /* to avoid pipe stall on POWER4&5. */
- nop
- ld r3,-16(r1)
- blr
- END (__llrint)
-
-strong_alias (__llrint, __lrint)
-libm_alias_double (__llrint, llrint)
-libm_alias_double (__lrint, lrint)
-/* The double version also works for single-precision as both float and
- double parameters are passed in 64bit FPRs and both versions are expected
- to return [long] long type. */
-strong_alias (__llrint, __llrintf)
-libm_alias_float (__llrint, llrint)
-strong_alias (__lrint, __lrintf)
-libm_alias_float (__lrint, lrint)
diff --git a/sysdeps/powerpc/powerpc64/fpu/s_llrint.c b/sysdeps/powerpc/powerpc64/fpu/s_llrint.c
new file mode 100644
index 0000000000..3c84f8f337
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/fpu/s_llrint.c
@@ -0,0 +1,55 @@
+/* Round to nearest integer. PowerPC64 version.
+ 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 Library General Public License as
+ published by the Free Software Foundation; either version 2 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If
+ not, see <https://www.gnu.org/licenses/>. */
+
+#define NO_MATH_REDIRECT
+#define lrint __redirect_lrint
+#define lrintf __redirect_lrintf
+#define llrintf __redirect_llrintf
+#define __lrint __redirect___lrint
+#define __lrintf __redirect___lrintf
+#define __llrintf __redirect___llrintf
+#include <math.h>
+#undef lrint
+#undef lrintf
+#undef llrintf
+#undef __lrint
+#undef __lrintf
+#undef __llrintf
+#include <libm-alias-float.h>
+#include <libm-alias-double.h>
+
+long long int
+__llrint (double x)
+{
+ long int ret;
+ __asm__ ("fctid %0, %1" : "=d" (ret) : "d" (x));
+ return ret;
+}
+#ifndef __llrint
+strong_alias (__llrint, __lrint)
+libm_alias_double (__llrint, llrint)
+libm_alias_double (__lrint, lrint)
+
+/* The double version also works for single-precision as both float and
+ double parameters are passed in 64bit FPRs and both versions are expected
+ to return [long] long type. */
+strong_alias (__llrint, __llrintf)
+libm_alias_float (__llrint, llrint)
+strong_alias (__lrint, __lrintf)
+libm_alias_float (__lrint, lrint)
+#endif
diff --git a/sysdeps/powerpc/powerpc64/fpu/s_llrintf.S b/sysdeps/powerpc/powerpc64/fpu/s_llrintf.S
deleted file mode 100644
index ba7752311d..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/s_llrintf.S
+++ /dev/null
@@ -1 +0,0 @@
-/* __llrintf is in s_llrint.S. */
diff --git a/sysdeps/powerpc/powerpc64/fpu/s_llrintf.c b/sysdeps/powerpc/powerpc64/fpu/s_llrintf.c
new file mode 100644
index 0000000000..fd8ce33620
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/fpu/s_llrintf.c
@@ -0,0 +1 @@
+/* llrintf is implemented at s_llrint.c */
diff --git a/sysdeps/powerpc/powerpc64/fpu/s_llround.S b/sysdeps/powerpc/powerpc64/fpu/s_llround.S
deleted file mode 100644
index 8efb29859b..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/s_llround.S
+++ /dev/null
@@ -1,86 +0,0 @@
-/* llround function. PowerPC64 version.
- Copyright (C) 2004-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-#include <libm-alias-double.h>
-
- .section ".toc","aw"
-.LC0: /* 2^52 */
- .tc FD_43300000_0[TC],0x4330000000000000
-.LC1: /* 0.5 */
- .tc FD_3fe00000_0[TC],0x3fe0000000000000
- .section ".text"
-
-/* long long [r3] llround (double x [fp1])
- IEEE 1003.1 llround function. IEEE specifies "round to the nearest
- integer value, rounding halfway cases away from zero, regardless of
- the current rounding mode." However PowerPC Architecture defines
- "round to Nearest" as "Choose the best approximation. In case of a
- tie, choose the one that is even (least significant bit o).".
- So we can't use the PowerPC "round to Nearest" mode. Instead we set
- "round toward Zero" mode and round by adding +-0.5 before rounding
- to the integer value.
-
- It is necessary to detect when x is (+-)0x1.fffffffffffffp-2
- because adding +-0.5 in this case will cause an erroneous shift,
- carry and round. We simply return 0 if 0.5 > x > -0.5. Likewise
- if x is and odd number between +-(2^52 and 2^53-1) a shift and
- carry will erroneously round if biased with +-0.5. Therefore if x
- is greater/less than +-2^52 we don't need to bias the number with
- +-0.5. */
-
-ENTRY (__llround)
- CALL_MCOUNT 0
- lfd fp9,.LC0@toc(2) /* Load 2^52 into fpr9. */
- lfd fp10,.LC1@toc(2)/* Load 0.5 into fpr10. */
- fabs fp2,fp1 /* Get the absolute value of x. */
- fsub fp12,fp10,fp10 /* Compute 0.0 into fp12. */
- fcmpu cr6,fp2,fp10 /* if |x| < 0.5 */
- fcmpu cr7,fp2,fp9 /* if |x| >= 2^52 */
- fcmpu cr1,fp1,fp12 /* x is negative? x < 0.0 */
- blt- cr6,.Lretzero /* 0.5 > x < -0.5 so just return 0. */
- bge- cr7,.Lnobias /* 2^52 > x < -2^52 just convert with no bias. */
- /* Test whether an integer to avoid spurious "inexact". */
- fadd fp3,fp2,fp9
- fsub fp3,fp3,fp9
- fcmpu cr5,fp2,fp3
- beq cr5,.Lnobias
- fadd fp3,fp2,fp10 /* |x|+=0.5 bias to prepare to round. */
- bge cr1,.Lconvert /* x is positive so don't negate x. */
- fnabs fp3,fp3 /* -(|x|+=0.5) */
-.Lconvert:
- fctidz fp4,fp3 /* Convert to Integer double word round toward 0. */
- stfd fp4,-16(r1)
- nop
- nop
- nop
- ld r3,-16(r1) /* Load return as integer. */
-.Lout:
- blr
-.Lretzero: /* 0.5 > x > -0.5 */
- li r3,0 /* return 0. */
- b .Lout
-.Lnobias:
- fmr fp3,fp1
- b .Lconvert
- END (__llround)
-
-strong_alias (__llround, __lround)
-libm_alias_double (__llround, llround)
-libm_alias_double (__lround, lround)
diff --git a/sysdeps/powerpc/powerpc64/fpu/s_llround.c b/sysdeps/powerpc/powerpc64/fpu/s_llround.c
new file mode 100644
index 0000000000..126bec23ae
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/fpu/s_llround.c
@@ -0,0 +1,83 @@
+/* Round to nearest integer. PowerPC64 version.
+ 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 Library General Public License as
+ published by the Free Software Foundation; either version 2 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If
+ not, see <https://www.gnu.org/licenses/>. */
+
+#define NO_MATH_REDIRECT
+#define lround __redirect_lround
+#define __lround __redirect___lround
+#include <math.h>
+#undef lround
+#undef __lround
+#include <libm-alias-double.h>
+#include <math-barriers.h>
+
+long long int
+__llround (double x)
+{
+#ifdef _ARCH_PWR5X
+ double r = __builtin_round (x);
+ /* Prevent gcc from calling llround directly when compiled with
+ -fno-math-errno by inserting a barrier. */
+ math_opt_barrier (r);
+ return r;
+#else
+ /* IEEE 1003.1 llround function. IEEE specifies "round to the nearest
+ integer value, rounding halfway cases away from zero, regardless of
+ the current rounding mode." However PowerPC Architecture defines
+ "round to Nearest" as "Choose the best approximation. In case of a
+ tie, choose the one that is even (least significant bit o).".
+ So we can't use the PowerPC "round to Nearest" mode. Instead we set
+ "round toward Zero" mode and round by adding +-0.5 before rounding
+ to the integer value.
+
+ It is necessary to detect when x is (+-)0x1.fffffffffffffp-2
+ because adding +-0.5 in this case will cause an erroneous shift,
+ carry and round. We simply return 0 if 0.5 > x > -0.5. Likewise
+ if x is and odd number between +-(2^52 and 2^53-1) a shift and
+ carry will erroneously round if biased with +-0.5. Therefore if x
+ is greater/less than +-2^52 we don't need to bias the number with
+ +-0.5. */
+
+ double ax = fabs (x);
+
+ if (ax < 0.5)
+ return 0;
+
+ if (ax < 0x1p+52)
+ {
+ /* Test whether an integer to avoid spurious "inexact". */
+ double t = ax + 0x1p+52;
+ t = t - 0x1p+52;
+ if (ax != t)
+ {
+ ax = ax + 0.5;
+ if (x < 0.0)
+ ax = -fabs (ax);
+ x = ax;
+ }
+ }
+
+ long int ret;
+ __asm__ ("fctidz %0, %1" : "=d" (ret) : "d" (x));
+ return ret;
+#endif
+}
+#ifndef __llround
+strong_alias (__llround, __lround)
+libm_alias_double (__llround, llround)
+libm_alias_double (__lround, lround)
+#endif
diff --git a/sysdeps/powerpc/powerpc64/fpu/s_llroundf.S b/sysdeps/powerpc/powerpc64/fpu/s_llroundf.S
deleted file mode 100644
index 613469602e..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/s_llroundf.S
+++ /dev/null
@@ -1,89 +0,0 @@
-/* llroundf function. PowerPC64 version.
- Copyright (C) 2004-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <libm-alias-float.h>
-
- .section ".toc","aw"
-.LC0: /* 2^23 */
- .tc FD_41600000_0[TC],0x4160000000000000
-.LC1: /* 0.5 */
- .tc FD_3fe00000_0[TC],0x3fe0000000000000
-.LC2: /* 2^52 */
- .tc FD_43300000_0[TC],0x4330000000000000
- .section ".text"
-
-/* long long [r3] llroundf (float x [fp1])
- IEEE 1003.1 llroundf function. IEEE specifies "roundf to the nearest
- integer value, rounding halfway cases away from zero, regardless of
- the current rounding mode." However PowerPC Architecture defines
- "roundf to Nearest" as "Choose the best approximation. In case of a
- tie, choose the one that is even (least significant bit o).".
- So we can't use the PowerPC "round to Nearest" mode. Instead we set
- "round toward Zero" mode and round by adding +-0.5 before rounding
- to the integer value.
-
- It is necessary to detect when x is (+-)0x1.fffffffffffffp-2
- because adding +-0.5 in this case will cause an erroneous shift,
- carry and round. We simply return 0 if 0.5 > x > -0.5. Likewise
- if x is and odd number between +-(2^23 and 2^24-1) a shift and
- carry will erroneously round if biased with +-0.5. Therefore if x
- is greater/less than +-2^23 we don't need to bias the number with
- +-0.5. */
-
-ENTRY (__llroundf)
- CALL_MCOUNT 0
- lfd fp9,.LC0@toc(2) /* Load 2^23 into fpr9. */
- lfd fp10,.LC1@toc(2)/* Load 0.5 into fpr10. */
- lfd fp11,.LC2@toc(2) /* Load 2^52 into fpr11. */
- fabs fp2,fp1 /* Get the absolute value of x. */
- fsub fp12,fp10,fp10 /* Compute 0.0 into fp12. */
- fcmpu cr6,fp2,fp10 /* if |x| < 0.5 */
- fcmpu cr7,fp2,fp9 /* if |x| >= 2^23 */
- fcmpu cr1,fp1,fp12 /* x is negative? x < 0.0 */
- blt- cr6,.Lretzero /* 0.5 > x < -0.5 so just return 0. */
- bge- cr7,.Lnobias /* 2^23 > x < -2^23 just convert with no bias. */
- /* Test whether an integer to avoid spurious "inexact". */
- fadd fp3,fp2,fp11
- fsub fp3,fp3,fp11
- fcmpu cr5,fp2,fp3
- beq cr5,.Lnobias
- fadd fp3,fp2,fp10 /* |x|+=0.5 bias to prepare to round. */
- bge cr1,.Lconvert /* x is positive so don't negate x. */
- fnabs fp3,fp3 /* -(|x|+=0.5) */
-.Lconvert:
- fctidz fp4,fp3 /* Convert to Integer double word round toward 0. */
- stfd fp4,-16(r1)
- nop
- nop
- nop
- ld r3,-16(r1) /* Load return as integer. */
-.Lout:
- blr
-.Lretzero: /* 0.5 > x > -0.5 */
- li r3,0 /* return 0. */
- b .Lout
-.Lnobias:
- fmr fp3,fp1
- b .Lconvert
- END (__llroundf)
-
-strong_alias (__llroundf, __lroundf)
-libm_alias_float (__llround, llround)
-libm_alias_float (__lround, lround)
-
diff --git a/sysdeps/powerpc/powerpc64/fpu/s_llroundf.c b/sysdeps/powerpc/powerpc64/fpu/s_llroundf.c
new file mode 100644
index 0000000000..736c9d8dd8
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/fpu/s_llroundf.c
@@ -0,0 +1,83 @@
+/* Round to nearest integer. PowerPC64 version.
+ 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 Library General Public License as
+ published by the Free Software Foundation; either version 2 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If
+ not, see <https://www.gnu.org/licenses/>. */
+
+#define NO_MATH_REDIRECT
+#define lroundf __redirect_llround
+#define __lroundf __redirect___lround
+#include <math.h>
+#undef lroundf
+#undef __lroundf
+#include <libm-alias-float.h>
+#include <math-barriers.h>
+
+long long int
+__llroundf (float x)
+{
+#ifdef _ARCH_PWR5X
+ double r = __builtin_round (x);
+ /* Prevent gcc from calling llround directly when compiled with
+ -fno-math-errno by inserting a barrier. */
+ math_opt_barrier (r);
+ return r;
+#else
+ /* IEEE 1003.1 llroundf function. IEEE specifies "roundf to the nearest
+ integer value, rounding halfway cases away from zero, regardless of
+ the current rounding mode." However PowerPC Architecture defines
+ "roundf to Nearest" as "Choose the best approximation. In case of a
+ tie, choose the one that is even (least significant bit o).".
+ So we can't use the PowerPC "round to Nearest" mode. Instead we set
+ "round toward Zero" mode and round by adding +-0.5 before rounding
+ to the integer value.
+
+ It is necessary to detect when x is (+-)0x1.fffffffffffffp-2
+ because adding +-0.5 in this case will cause an erroneous shift,
+ carry and round. We simply return 0 if 0.5 > x > -0.5. Likewise
+ if x is and odd number between +-(2^23 and 2^24-1) a shift and
+ carry will erroneously round if biased with +-0.5. Therefore if x
+ is greater/less than +-2^23 we don't need to bias the number with
+ +-0.5. */
+
+ float ax = fabsf (x);
+
+ if (ax < 0.5f)
+ return 0;
+
+ if (ax < 0x1p+23f)
+ {
+ /* Test whether an integer to avoid spurious "inexact". */
+ float t = ax + 0x1p+23f;
+ t = t - 0x1p+23f;
+ if (ax != t)
+ {
+ ax = ax + 0.5f;
+ if (x < 0.0f)
+ ax = -fabs (ax);
+ x = ax;
+ }
+ }
+
+ long int ret;
+ __asm__ ("fctidz %0, %1" : "=d" (ret) : "d" (x));
+ return ret;
+#endif
+}
+#ifndef __llroundf
+strong_alias (__llroundf, __lroundf)
+libm_alias_float (__llround, lround)
+libm_alias_float (__llround, llround)
+#endif
diff --git a/sysdeps/powerpc/powerpc64/fpu/s_lrint.S b/sysdeps/powerpc/powerpc64/fpu/s_lrint.S
deleted file mode 100644
index d3c2fff581..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/s_lrint.S
+++ /dev/null
@@ -1 +0,0 @@
-/* __lrint is in s_llrint.c */
diff --git a/sysdeps/powerpc/powerpc64/fpu/s_lrint.c b/sysdeps/powerpc/powerpc64/fpu/s_lrint.c
new file mode 100644
index 0000000000..4e48d8ca00
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/fpu/s_lrint.c
@@ -0,0 +1 @@
+/* lrint is implemented at s_llrint.c */
diff --git a/sysdeps/powerpc/powerpc64/fpu/s_lround.S b/sysdeps/powerpc/powerpc64/fpu/s_lround.S
deleted file mode 100644
index 4306c405c4..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/s_lround.S
+++ /dev/null
@@ -1 +0,0 @@
-/* __lround is in s_llround.S */
diff --git a/sysdeps/powerpc/powerpc64/fpu/s_lround.c b/sysdeps/powerpc/powerpc64/fpu/s_lround.c
new file mode 100644
index 0000000000..bec5026777
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/fpu/s_lround.c
@@ -0,0 +1 @@
+/* lround is implemented at s_llround.c as an alias to lround. */
diff --git a/sysdeps/powerpc/powerpc64/fpu/s_lroundf.S b/sysdeps/powerpc/powerpc64/fpu/s_lroundf.S
deleted file mode 100644
index 6b2a4e37a6..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/s_lroundf.S
+++ /dev/null
@@ -1 +0,0 @@
-/* __lroundf is in s_llroundf.S */
diff --git a/sysdeps/powerpc/powerpc64/fpu/s_lroundf.c b/sysdeps/powerpc/powerpc64/fpu/s_lroundf.c
new file mode 100644
index 0000000000..30400277f8
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/fpu/s_lroundf.c
@@ -0,0 +1 @@
+/* __lroundf is in s_llroundf.c */
diff --git a/sysdeps/powerpc/powerpc64/fpu/s_nearbyint.S b/sysdeps/powerpc/powerpc64/fpu/s_nearbyint.S
deleted file mode 100644
index 7d89e78f88..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/s_nearbyint.S
+++ /dev/null
@@ -1,68 +0,0 @@
-/* Round to int floating-point values. PowerPC64 version.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Adhemerval Zanella <azanella@br.ibm.com>, 2011
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-/* This has been coded in assembler because GCC makes such a mess of it
- when it's coded in C. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-#include <libm-alias-double.h>
-
-
-/* double [fp1] nearbyint(double [fp1] x) */
-
- .section ".toc","aw"
-.LC0: /* 2**52 */
- .tc FD_43300000_0[TC],0x4330000000000000
- .section ".text"
-
-ENTRY (__nearbyint, 4)
- CALL_MCOUNT 0
- fabs fp0,fp1
- lfd fp13,.LC0@toc(2)
- fcmpu cr7,fp0,fp13 /* if (fabs(x) > TWO52) */
- bge cr7,.L10
- fsub fp12,fp13,fp13 /* generate 0.0 */
- fcmpu cr7,fp1,fp12 /* if (x > 0.0) */
- ble cr7, L(lessthanzero)
- mffs fp11
- mtfsb0 4*cr7+lt /* Disable FE_INEXACT exception */
- fadd fp1,fp1,fp13 /* x+= TWO52 */
- fsub fp1,fp1,fp13 /* x-= TWO52 */
- fabs fp1,fp1 /* if (x == 0.0) */
- mtfsf 0xff,fp11 /* Restore FE_INEXACT state. */
- blr /* x = 0.0; */
-L(lessthanzero):
- bgelr cr7 /* if (x < 0.0) */
- mffs fp11
- mtfsb0 4*cr7+lt
- fsub fp1,fp1,fp13 /* x -= TWO52 */
- fadd fp1,fp1,fp13 /* x += TWO52 */
- fnabs fp1,fp1 /* if (x == 0.0) */
- mtfsf 0xff,fp11 /* Restore FE_INEXACT state. */
- blr /* x = -0.0; */
-.L10:
- /* Ensure sNaN input is converted to qNaN. */
- fcmpu cr7,fp1,fp1
- beqlr cr7
- fadd fp1,fp1,fp1
- blr
-END (__nearbyint)
-
-libm_alias_double (__nearbyint, nearbyint)
diff --git a/sysdeps/powerpc/powerpc64/fpu/s_nearbyintf.S b/sysdeps/powerpc/powerpc64/fpu/s_nearbyintf.S
deleted file mode 100644
index 4b62ba1e8d..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/s_nearbyintf.S
+++ /dev/null
@@ -1,69 +0,0 @@
-/* Round to int floating-point values. PowerPC64 version.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Adhemerval Zanella <azanella@br.ibm.com>, 2011
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-/* This has been coded in assembler because GCC makes such a mess of it
- when it's coded in C. */
-
-#include <sysdep.h>
-#include <libm-alias-float.h>
-
-
-/* float [fp1] nearbyintf(float [fp1]) */
-
- .section ".toc","aw"
- .p2align 3
-.LC0: /* 2**23 */
- .long 0x4b000000
- .long 0x0
- .section ".text"
-
-ENTRY (__nearbyintf, 4)
- CALL_MCOUNT 0
- fabs fp0,fp1
- lfs fp13,.LC0@toc(2)
- fcmpu cr7,fp0,fp13 /* if (fabs(x) > TWO52) */
- bge cr7,.L10
- fsubs fp12,fp13,fp13 /* generate 0.0 */
- fcmpu cr7,fp1,fp12 /* if (x > 0.0) */
- ble cr7, L(lessthanzero)
- mffs fp11
- mtfsb0 4*cr7+lt /* Disable FE_INEXACT exception */
- fadds fp1,fp1,fp13 /* x += TWO23 */
- fsubs fp1,fp1,fp13 /* x -= TWO23 */
- fabs fp1,fp1 /* if (x == 0.0) */
- mtfsf 0xff,fp11 /* Restore FE_INEXACT state. */
- blr /* x = 0.0; */
-L(lessthanzero):
- bgelr cr7 /* if (x < 0.0) */
- mffs fp11
- mtfsb0 4*cr7+lt /* Disable FE_INEXACT exception */
- fsubs fp1,fp1,fp13 /* x -= TWO23 */
- fadds fp1,fp1,fp13 /* x += TWO23 */
- fnabs fp1,fp1 /* if (x == 0.0) */
- mtfsf 0xff,fp11 /* Restore FE_INEXACT state. */
- blr /* x = -0.0; */
-.L10:
- /* Ensure sNaN input is converted to qNaN. */
- fcmpu cr7,fp1,fp1
- beqlr cr7
- fadds fp1,fp1,fp1
- blr
-END (__nearbyintf)
-
-libm_alias_float (__nearbyint, nearbyint)
diff --git a/sysdeps/powerpc/powerpc64/fpu/s_rint.S b/sysdeps/powerpc/powerpc64/fpu/s_rint.S
deleted file mode 100644
index a05e6dc8ca..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/s_rint.S
+++ /dev/null
@@ -1,58 +0,0 @@
-/* Round to int floating-point values. PowerPC64 version.
- Copyright (C) 2004-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-/* This has been coded in assembler because GCC makes such a mess of it
- when it's coded in C. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-#include <libm-alias-double.h>
-
- .section ".toc","aw"
-.LC0: /* 2**52 */
- .tc FD_43300000_0[TC],0x4330000000000000
- .section ".text"
-
-ENTRY (__rint, 4)
- CALL_MCOUNT 0
- lfd fp13,.LC0@toc(2)
- fabs fp0,fp1
- fsub fp12,fp13,fp13 /* generate 0.0 */
- fcmpu cr7,fp0,fp13 /* if (fabs(x) > TWO52) */
- fcmpu cr6,fp1,fp12 /* if (x > 0.0) */
- bnl cr7,.L10
- bng cr6,.L4
- fadd fp1,fp1,fp13 /* x+= TWO52; */
- fsub fp1,fp1,fp13 /* x-= TWO52; */
- fabs fp1,fp1 /* if (x == 0.0) */
- blr /* x = 0.0; */
-.L4:
- bnllr cr6 /* if (x < 0.0) */
- fsub fp1,fp1,fp13 /* x-= TWO52; */
- fadd fp1,fp1,fp13 /* x+= TWO52; */
- fnabs fp1,fp1 /* if (x == 0.0) */
- blr /* x = -0.0; */
-.L10:
- /* Ensure sNaN input is converted to qNaN. */
- fcmpu cr7,fp1,fp1
- beqlr cr7
- fadd fp1,fp1,fp1
- blr
- END (__rint)
-
-libm_alias_double (__rint, rint)
diff --git a/sysdeps/powerpc/powerpc64/fpu/s_rintf.S b/sysdeps/powerpc/powerpc64/fpu/s_rintf.S
deleted file mode 100644
index 7ac532cc8e..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/s_rintf.S
+++ /dev/null
@@ -1,57 +0,0 @@
-/* Round float to int floating-point values. PowerPC64 version.
- Copyright (C) 2004-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <libm-alias-float.h>
-
- .section ".toc","aw"
- .p2align 3
-.LC0: /* 2**23 */
- .long 0x4b000000
- .long 0x0
- .section ".text"
-
-ENTRY (__rintf, 4)
- CALL_MCOUNT 0
- lfs fp13,.LC0@toc(2)
- fabs fp0,fp1
- fsubs fp12,fp13,fp13 /* generate 0.0 */
- fcmpu cr7,fp0,fp13 /* if (fabs(x) > TWO23) */
- fcmpu cr6,fp1,fp12 /* if (x > 0.0) */
- bnl cr7,.L10
- bng cr6,.L4
- fadds fp1,fp1,fp13 /* x+= TWO23; */
- fsubs fp1,fp1,fp13 /* x-= TWO23; */
- fabs fp1,fp1 /* if (x == 0.0) */
- blr /* x = 0.0; */
-.L4:
- bnllr cr6 /* if (x < 0.0) */
- fsubs fp1,fp1,fp13 /* x-= TWO23; */
- fadds fp1,fp1,fp13 /* x+= TWO23; */
- fnabs fp1,fp1 /* if (x == 0.0) */
- blr /* x = -0.0; */
-.L10:
- /* Ensure sNaN input is converted to qNaN. */
- fcmpu cr7,fp1,fp1
- beqlr cr7
- fadds fp1,fp1,fp1
- blr
- END (__rintf)
-
-libm_alias_float (__rint, rint)
-
diff --git a/sysdeps/powerpc/powerpc64/fpu/s_round.S b/sysdeps/powerpc/powerpc64/fpu/s_round.S
deleted file mode 100644
index d5aa47c596..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/s_round.S
+++ /dev/null
@@ -1,80 +0,0 @@
-/* round function. PowerPC64 version.
- Copyright (C) 2004-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-#include <libm-alias-double.h>
-
- .section ".toc","aw"
-.LC0: /* 2**52 */
- .tc FD_43300000_0[TC],0x4330000000000000
-.LC1: /* 0.5 */
- .tc FD_3fe00000_0[TC],0x3fe0000000000000
- .section ".text"
-
-/* double [fp1] round (double x [fp1])
- IEEE 1003.1 round function. IEEE specifies "round to the nearest
- integer value, rounding halfway cases away from zero, regardless of
- the current rounding mode." However PowerPC Architecture defines
- "Round to Nearest" as "Choose the best approximation. In case of a
- tie, choose the one that is even (least significant bit o).".
- So we can't use the PowerPC "Round to Nearest" mode. Instead we set
- "Round toward Zero" mode and round by adding +-0.5 before rounding
- to the integer value. */
-
-ENTRY (__round, 4)
- CALL_MCOUNT 0
- lfd fp13,.LC0@toc(2)
- fabs fp0,fp1
- fsub fp12,fp13,fp13 /* generate 0.0 */
- fcmpu cr7,fp0,fp13 /* if (fabs(x) > TWO52) */
- mffs fp11 /* Save current FPU rounding mode and
- "inexact" state. */
- fcmpu cr6,fp1,fp12 /* if (x > 0.0) */
- bnl- cr7,.L10
- mtfsfi 7,1 /* Set rounding mode toward 0. */
- lfd fp10,.LC1@toc(2)
- ble- cr6,.L4
- fadd fp1,fp1,fp10 /* x+= 0.5; */
- fadd fp1,fp1,fp13 /* x+= TWO52; */
- fsub fp1,fp1,fp13 /* x-= TWO52; */
- fabs fp1,fp1 /* if (x == 0.0) */
- /* x = 0.0; */
- mtfsf 0xff,fp11 /* Restore previous rounding mode and
- "inexact" state. */
- blr
-.L4:
- fsub fp9,fp1,fp10 /* x+= 0.5; */
- bge- cr6,.L9 /* if (x < 0.0) */
- fsub fp1,fp9,fp13 /* x-= TWO52; */
- fadd fp1,fp1,fp13 /* x+= TWO52; */
- fnabs fp1,fp1 /* if (x == 0.0) */
- /* x = -0.0; */
-.L9:
- mtfsf 0xff,fp11 /* Restore previous rounding mode and
- "inexact" state. */
- blr
-.L10:
- /* Ensure sNaN input is converted to qNaN. */
- fcmpu cr7,fp1,fp1
- beqlr cr7
- fadd fp1,fp1,fp1
- blr
- END (__round)
-
-libm_alias_double (__round, round)
diff --git a/sysdeps/powerpc/powerpc64/fpu/s_roundf.S b/sysdeps/powerpc/powerpc64/fpu/s_roundf.S
deleted file mode 100644
index a8db632db6..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/s_roundf.S
+++ /dev/null
@@ -1,82 +0,0 @@
-/* roundf function. PowerPC64 version.
- Copyright (C) 2004-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <libm-alias-float.h>
-
- .section ".toc","aw"
- .p2align 3
-.LC0: /* 2**23 */
- .long 0x4b000000
-.LC1: /* 0.5 */
- .long 0x3f000000
-
- .section ".text"
-
-/* float [fp1] roundf (float x [fp1])
- IEEE 1003.1 round function. IEEE specifies "round to the nearest
- integer value, rounding halfway cases away from zero, regardless of
- the current rounding mode." However PowerPC Architecture defines
- "Round to Nearest" as "Choose the best approximation. In case of a
- tie, choose the one that is even (least significant bit o).".
- So we can't use the PowerPC "Round to Nearest" mode. Instead we set
- "Round toward Zero" mode and round by adding +-0.5 before rounding
- to the integer value. */
-
-ENTRY (__roundf, 4)
- CALL_MCOUNT 0
- lfs fp13,.LC0@toc(2)
- fabs fp0,fp1
- fsubs fp12,fp13,fp13 /* generate 0.0 */
- fcmpu cr7,fp0,fp13 /* if (fabs(x) > TWO23) */
- mffs fp11 /* Save current FPU rounding mode and
- "inexact" state. */
- fcmpu cr6,fp1,fp12 /* if (x > 0.0) */
- bnl- cr7,.L10
- mtfsfi 7,1 /* Set rounding mode toward 0. */
- lfs fp10,.LC1@toc(2)
- ble- cr6,.L4
- fadds fp1,fp1,fp10 /* x+= 0.5; */
- fadds fp1,fp1,fp13 /* x+= TWO23; */
- fsubs fp1,fp1,fp13 /* x-= TWO23; */
- fabs fp1,fp1 /* if (x == 0.0) */
- /* x = 0.0; */
- mtfsf 0xff,fp11 /* Restore previous rounding mode and
- "inexact" state. */
- blr
-.L4:
- fsubs fp9,fp1,fp10 /* x+= 0.5; */
- bge- cr6,.L9 /* if (x < 0.0) */
- fsubs fp1,fp9,fp13 /* x-= TWO23; */
- fadds fp1,fp1,fp13 /* x+= TWO23; */
- fnabs fp1,fp1 /* if (x == 0.0) */
- /* x = -0.0; */
-.L9:
- mtfsf 0xff,fp11 /* Restore previous rounding mode and
- "inexact" state. */
- blr
-.L10:
- /* Ensure sNaN input is converted to qNaN. */
- fcmpu cr7,fp1,fp1
- beqlr cr7
- fadds fp1,fp1,fp1
- blr
- END (__roundf)
-
-libm_alias_float (__round, round)
-
diff --git a/sysdeps/powerpc/powerpc64/fpu/s_trunc.S b/sysdeps/powerpc/powerpc64/fpu/s_trunc.S
deleted file mode 100644
index eecc72764a..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/s_trunc.S
+++ /dev/null
@@ -1,72 +0,0 @@
-/* trunc function. PowerPC64 version.
- Copyright (C) 2004-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-#include <libm-alias-double.h>
-
- .section ".toc","aw"
-.LC0: /* 2**52 */
- .tc FD_43300000_0[TC],0x4330000000000000
- .section ".text"
-
-/* double [fp1] trunc (double x [fp1])
- IEEE 1003.1 trunc function. IEEE specifies "trunc to the integer
- value, in floating format, nearest to but no larger in magnitude
- then the argument."
- We set "round toward Zero" mode and trunc by adding +-2**52 then
- subtracting +-2**52. */
-
-ENTRY (__trunc, 4)
- CALL_MCOUNT 0
- lfd fp13,.LC0@toc(2)
- fabs fp0,fp1
- fsub fp12,fp13,fp13 /* generate 0.0 */
- fcmpu cr7,fp0,fp13 /* if (fabs(x) > TWO52) */
- mffs fp11 /* Save current FPU rounding mode and
- "inexact" state. */
- fcmpu cr6,fp1,fp12 /* if (x > 0.0) */
- bnl- cr7,.L10
- mtfsfi 7,1 /* Set rounding toward 0 mode. */
- ble- cr6,.L4
- fadd fp1,fp1,fp13 /* x+= TWO52; */
- fsub fp1,fp1,fp13 /* x-= TWO52; */
- fabs fp1,fp1 /* if (x == 0.0) */
- /* x = 0.0; */
- mtfsf 0xff,fp11 /* Restore previous rounding mode and
- "inexact" state. */
- blr
-.L4:
- bge- cr6,.L9 /* if (x < 0.0) */
- fsub fp1,fp1,fp13 /* x-= TWO52; */
- fadd fp1,fp1,fp13 /* x+= TWO52; */
- fnabs fp1,fp1 /* if (x == 0.0) */
- /* x = -0.0; */
-.L9:
- mtfsf 0xff,fp11 /* Restore previous rounding mode and
- "inexact" state. */
- blr
-.L10:
- /* Ensure sNaN input is converted to qNaN. */
- fcmpu cr7,fp1,fp1
- beqlr cr7
- fadd fp1,fp1,fp1
- blr
- END (__trunc)
-
-libm_alias_double (__trunc, trunc)
diff --git a/sysdeps/powerpc/powerpc64/fpu/s_truncf.S b/sysdeps/powerpc/powerpc64/fpu/s_truncf.S
deleted file mode 100644
index 7796e6b26d..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/s_truncf.S
+++ /dev/null
@@ -1,74 +0,0 @@
-/* truncf function. PowerPC64 version.
- Copyright (C) 2004-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <libm-alias-float.h>
-
- .section ".toc","aw"
- .p2align 3
-.LC0: /* 2**23 */
- .long 0x4b000000
- .long 0x0
- .section ".text"
-
-/* float [fp1] truncf (float x [fp1])
- IEEE 1003.1 trunc function. IEEE specifies "trunc to the integer
- value, in floating format, nearest to but no larger in magnitude
- then the argument."
- We set "round toward Zero" mode and trunc by adding +-2**23 then
- subtracting +-2**23. */
-
-ENTRY (__truncf, 4)
- CALL_MCOUNT 0
- lfs fp13,.LC0@toc(2)
- fabs fp0,fp1
- fsubs fp12,fp13,fp13 /* generate 0.0 */
- fcmpu cr7,fp0,fp13 /* if (fabs(x) > TWO23) */
- mffs fp11 /* Save current FPU rounding mode and
- "inexact" state. */
- fcmpu cr6,fp1,fp12 /* if (x > 0.0) */
- bnl- cr7,.L10
- mtfsfi 7,1 /* Set rounding toward 0 mode. */
- ble- cr6,.L4
- fadds fp1,fp1,fp13 /* x+= TWO23; */
- fsubs fp1,fp1,fp13 /* x-= TWO23; */
- fabs fp1,fp1 /* if (x == 0.0) */
- /* x = 0.0; */
- mtfsf 0xff,fp11 /* Restore previous rounding mode and
- "inexact" state. */
- blr
-.L4:
- bge- cr6,.L9 /* if (x < 0.0) */
- fsubs fp1,fp1,fp13 /* x-= TWO23; */
- fadds fp1,fp1,fp13 /* x+= TWO23; */
- fnabs fp1,fp1 /* if (x == 0.0) */
- /* x = -0.0; */
-.L9:
- mtfsf 0xff,fp11 /* Restore previous rounding mode and
- "inexact" state. */
- blr
-.L10:
- /* Ensure sNaN input is converted to qNaN. */
- fcmpu cr7,fp1,fp1
- beqlr cr7
- fadds fp1,fp1,fp1
- blr
- END (__truncf)
-
-libm_alias_float (__trunc, trunc)
-
diff --git a/sysdeps/powerpc/powerpc64/hp-timing.h b/sysdeps/powerpc/powerpc64/hp-timing.h
index c0aa3642f6..afa6f06ed9 100644
--- a/sysdeps/powerpc/powerpc64/hp-timing.h
+++ b/sysdeps/powerpc/powerpc64/hp-timing.h
@@ -1,5 +1,5 @@
/* High precision, low overhead timing functions. powerpc64 version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@@ -15,15 +15,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _HP_TIMING_H
#define _HP_TIMING_H 1
-/* We always assume having the timestamp register. */
-#define HP_TIMING_AVAIL (1)
-#define HP_SMALL_TIMING_AVAIL (1)
-
/* We indeed have inlined functions. */
#define HP_TIMING_INLINE (1)
diff --git a/sysdeps/powerpc/powerpc64/le/Makefile b/sysdeps/powerpc/powerpc64/le/Makefile
index f59db1ca3c..0ce3868c3c 100644
--- a/sysdeps/powerpc/powerpc64/le/Makefile
+++ b/sysdeps/powerpc/powerpc64/le/Makefile
@@ -4,7 +4,7 @@
# libgcc requires __tcb_parse_hwcap_and_convert_at_platform when built with
# a binary128 type. That symbol is provided by the loader on dynamically
# linked executables, forcing to link the loader after libgcc link.
-f128-loader-link = $(as-needed) $(elf-objpfx)ld.so $(no-as-needed)
+f128-loader-link = -Wl,--as-needed $(elf-objpfx)ld.so -Wl,--no-as-needed
ifeq ($(subdir),math)
# sqrtf128 requires emulation before POWER9.
diff --git a/sysdeps/powerpc/powerpc64/le/configure b/sysdeps/powerpc/powerpc64/le/configure
index 66bb5dcc1a..bca80cec76 100644
--- a/sysdeps/powerpc/powerpc64/le/configure
+++ b/sysdeps/powerpc/powerpc64/le/configure
@@ -1,49 +1,9 @@
# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/powerpc/powerpc64le.
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports binary128 floating point type" >&5
-$as_echo_n "checking if $CC supports binary128 floating point type... " >&6; }
-if ${libc_cv_compiler_powerpc64le_binary128_ok+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- save_CFLAGS="$CFLAGS"
-CFLAGS="$CFLAGS -Werror -mfloat128"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-__float128 a, b, c, d, e;
-int i;
-
-__float128
-foobar (__float128 x)
-{
- a = __builtin_nansq ("0");
- b = __builtin_huge_valq ();
- c = __builtin_infq ();
- d = __builtin_fabsq (x);
- e = __builtin_nanq ("0");
- i = __builtin_signbit (x);
- return __builtin_copysignq (x, x);
-}
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- libc_cv_compiler_powerpc64le_binary128_ok=yes
-else
- libc_cv_compiler_powerpc64le_binary128_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-CFLAGS="$save_CFLAGS"
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_compiler_powerpc64le_binary128_ok" >&5
-$as_echo "$libc_cv_compiler_powerpc64le_binary128_ok" >&6; }
-if test "$libc_cv_compiler_powerpc64le_binary128_ok" != "yes"; then :
- critic_missing="$critic_missing binary128 floating point type (GCC >= 6.2) is required on powerpc64le."
-fi
-
OLD_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $libc_cv_cc_submachine"
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the target machine is at least POWER8" >&5
$as_echo_n "checking if the target machine is at least POWER8... " >&6; }
if ${libc_cv_target_power8_ok+:} false; then :
diff --git a/sysdeps/powerpc/powerpc64/le/configure.ac b/sysdeps/powerpc/powerpc64/le/configure.ac
index 20a49d89e8..7f2c9fbf1f 100644
--- a/sysdeps/powerpc/powerpc64/le/configure.ac
+++ b/sysdeps/powerpc/powerpc64/le/configure.ac
@@ -1,34 +1,6 @@
GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
# Local configure fragment for sysdeps/powerpc/powerpc64le.
-dnl Require binary128 floating point support on powerpc64le (available in
-dnl GCC 6.2).
-AC_CACHE_CHECK([if $CC supports binary128 floating point type],
- libc_cv_compiler_powerpc64le_binary128_ok, [dnl
-save_CFLAGS="$CFLAGS"
-CFLAGS="$CFLAGS -Werror -mfloat128"
-AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
-__float128 a, b, c, d, e;
-int i;
-
-__float128
-foobar (__float128 x)
-{
- a = __builtin_nansq ("0");
- b = __builtin_huge_valq ();
- c = __builtin_infq ();
- d = __builtin_fabsq (x);
- e = __builtin_nanq ("0");
- i = __builtin_signbit (x);
- return __builtin_copysignq (x, x);
-}
-]])],
- [libc_cv_compiler_powerpc64le_binary128_ok=yes],
- [libc_cv_compiler_powerpc64le_binary128_ok=no])
-CFLAGS="$save_CFLAGS"])
-AS_IF([test "$libc_cv_compiler_powerpc64le_binary128_ok" != "yes"],
- [critic_missing="$critic_missing binary128 floating point type (GCC >= 6.2) is required on powerpc64le."])
-
dnl Require at least POWER8 on powerpc64le
OLD_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $libc_cv_cc_submachine"
diff --git a/sysdeps/powerpc/powerpc64/le/fpu/e_sqrtf128.c b/sysdeps/powerpc/powerpc64/le/fpu/e_sqrtf128.c
index f7c8ea33d3..05781b3367 100644
--- a/sysdeps/powerpc/powerpc64/le/fpu/e_sqrtf128.c
+++ b/sysdeps/powerpc/powerpc64/le/fpu/e_sqrtf128.c
@@ -1,6 +1,6 @@
/* soft-fp sqrt for _Float128
Return sqrt(a)
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -24,7 +24,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/w_sqrtf128-power9.c b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/w_sqrtf128-power9.c
index 55d93b9256..9c4cd8c4be 100644
--- a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/w_sqrtf128-power9.c
+++ b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/w_sqrtf128-power9.c
@@ -1,5 +1,5 @@
/* POWER9 sqrt for _Float128
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math-type-macros-float128.h>
diff --git a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/w_sqrtf128-ppc64le.c b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/w_sqrtf128-ppc64le.c
index 72f09b1017..cf6895ea18 100644
--- a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/w_sqrtf128-ppc64le.c
+++ b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/w_sqrtf128-ppc64le.c
@@ -1,5 +1,5 @@
/* PPC64LE sqrt for _Float128
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math-type-macros-float128.h>
diff --git a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/w_sqrtf128.c b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/w_sqrtf128.c
index a44bf4f5cc..fe334b3069 100644
--- a/sysdeps/powerpc/powerpc64/le/fpu/multiarch/w_sqrtf128.c
+++ b/sysdeps/powerpc/powerpc64/le/fpu/multiarch/w_sqrtf128.c
@@ -1,5 +1,5 @@
/* Multiple versions of __sqrtf128.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define NO_MATH_REDIRECT
#include <math.h>
diff --git a/sysdeps/powerpc/powerpc64/le/fpu/sfp-machine.h b/sysdeps/powerpc/powerpc64/le/fpu/sfp-machine.h
index fac5dd0347..b4b27f95f4 100644
--- a/sysdeps/powerpc/powerpc64/le/fpu/sfp-machine.h
+++ b/sysdeps/powerpc/powerpc64/le/fpu/sfp-machine.h
@@ -6,7 +6,7 @@
typedef int TItype __attribute__ ((mode (TI)));
typedef unsigned int UTItype __attribute__ ((mode (TI)));
-#define TI_BITS (__CHAR_BIT__ * (int)sizeof(TItype))
+#define TI_BITS (__CHAR_BIT__ * (int) sizeof (TItype))
/* The type of the result of a floating point comparison. This must
match `__libgcc_cmp_return__' in GCC for the target. */
@@ -107,8 +107,7 @@ void __sfp_handle_exceptions (int);
#define FP_INIT_ROUNDMODE \
do { \
- __asm__ __volatile__ ("mffs %0" \
- : "=f" (_fpscr.d)); \
+ _fpscr.d = __builtin_mffs (); \
} while (0)
# define FP_ROUNDMODE (_fpscr.i & FP_RND_MASK)
diff --git a/sysdeps/powerpc/powerpc64/le/power9/fpu/e_sqrtf128.c b/sysdeps/powerpc/powerpc64/le/power9/fpu/e_sqrtf128.c
index 76ab451dbb..633af0ba3e 100644
--- a/sysdeps/powerpc/powerpc64/le/power9/fpu/e_sqrtf128.c
+++ b/sysdeps/powerpc/powerpc64/le/power9/fpu/e_sqrtf128.c
@@ -1,6 +1,6 @@
/* POWER9 sqrt for _Float128
Return sqrt(a)
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -24,7 +24,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
__float128
__ieee754_sqrtf128 (__float128 a)
diff --git a/sysdeps/powerpc/powerpc64/le/power9/strcmp.S b/sysdeps/powerpc/powerpc64/le/power9/strcmp.S
new file mode 100644
index 0000000000..38701d0994
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/le/power9/strcmp.S
@@ -0,0 +1,264 @@
+/* Optimized strcmp implementation for PowerPC64/POWER9.
+ Copyright (C) 2016-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
+ <https://www.gnu.org/licenses/>. */
+#include <sysdep.h>
+
+#ifndef STRCMP
+# define STRCMP strcmp
+#endif
+
+/* Implements the function
+
+ int [r3] strcmp (const char *s1 [r3], const char *s2 [r4])
+
+ The implementation uses unaligned doubleword access for first 32 bytes
+ as in POWER8 patch and uses vectorised loops after that. */
+
+/* TODO: Change this to actual instructions when minimum binutils is upgraded
+ to 2.27. Macros are defined below for these newer instructions in order
+ to maintain compatibility. */
+#define VCTZLSBB(r,v) .long (0x10010602 | ((r)<<(32-11)) | ((v)<<(32-21)))
+
+#define VEXTUBRX(t,a,b) .long (0x1000070d \
+ | ((t)<<(32-11)) \
+ | ((a)<<(32-16)) \
+ | ((b)<<(32-21)) )
+
+#define VCMPNEZB(t,a,b) .long (0x10000507 \
+ | ((t)<<(32-11)) \
+ | ((a)<<(32-16)) \
+ | ((b)<<(32-21)) )
+
+/* Get 16 bytes for unaligned case.
+ reg1: Vector to hold next 16 bytes.
+ reg2: Address to read from.
+ reg3: Permute control vector. */
+#define GET16BYTES(reg1, reg2, reg3) \
+ lvx reg1, 0, reg2; \
+ vperm v8, v2, reg1, reg3; \
+ vcmpequb. v8, v0, v8; \
+ beq cr6, 1f; \
+ vspltisb v9, 0; \
+ b 2f; \
+ .align 4; \
+1: \
+ addi r6, reg2, 16; \
+ lvx v9, 0, r6; \
+2: \
+ vperm reg1, v9, reg1, reg3;
+
+/* TODO: change this to .machine power9 when the minimum required binutils
+ allows it. */
+
+ .machine power7
+ENTRY_TOCLESS (STRCMP, 4)
+ li r0, 0
+
+ /* Check if [s1]+16 or [s2]+16 will cross a 4K page boundary using
+ the code:
+
+ (((size_t) s1) % PAGE_SIZE > (PAGE_SIZE - ITER_SIZE))
+
+ with PAGE_SIZE being 4096 and ITER_SIZE begin 16. */
+
+ rldicl r7, r3, 0, 52
+ rldicl r9, r4, 0, 52
+ cmpldi cr7, r7, 4096-16
+ bgt cr7, L(pagecross_check)
+ cmpldi cr5, r9, 4096-16
+ bgt cr5, L(pagecross_check)
+
+ /* For short strings up to 16 bytes, load both s1 and s2 using
+ unaligned dwords and compare. */
+ ld r8, 0(r3)
+ ld r10, 0(r4)
+ cmpb r12, r8, r0
+ cmpb r11, r8, r10
+ orc. r9, r12, r11
+ bne cr0, L(different_nocmpb)
+
+ ld r8, 8(r3)
+ ld r10, 8(r4)
+ cmpb r12, r8, r0
+ cmpb r11, r8, r10
+ orc. r9, r12, r11
+ bne cr0, L(different_nocmpb)
+
+ addi r7, r3, 16
+ addi r4, r4, 16
+
+L(align):
+ /* Now it has checked for first 16 bytes. */
+ vspltisb v0, 0
+ vspltisb v2, -1
+ lvsr v6, 0, r4 /* Compute mask. */
+ or r5, r4, r7
+ andi. r5, r5, 0xF
+ beq cr0, L(aligned)
+ andi. r5, r7, 0xF
+ beq cr0, L(s1_align)
+ lvsr v10, 0, r7 /* Compute mask. */
+
+ /* Both s1 and s2 are unaligned. */
+ GET16BYTES(v4, r7, v10)
+ GET16BYTES(v5, r4, v6)
+ VCMPNEZB(v7, v5, v4)
+ beq cr6, L(match)
+ b L(different)
+
+ /* Align s1 to qw and adjust s2 address. */
+ .align 4
+L(match):
+ clrldi r6, r7, 60
+ subfic r5, r6, 16
+ add r7, r7, r5
+ add r4, r4, r5
+ andi. r5, r4, 0xF
+ beq cr0, L(aligned)
+ lvsr v6, 0, r4
+ /* There are 2 loops depending on the input alignment.
+ Each loop gets 16 bytes from s1 and s2 and compares.
+ Loop until a mismatch or null occurs. */
+L(s1_align):
+ lvx v4, r7, r0
+ GET16BYTES(v5, r4, v6)
+ VCMPNEZB(v7, v5, v4)
+ addi r7, r7, 16
+ addi r4, r4, 16
+ bne cr6, L(different)
+
+ lvx v4, r7, r0
+ GET16BYTES(v5, r4, v6)
+ VCMPNEZB(v7, v5, v4)
+ addi r7, r7, 16
+ addi r4, r4, 16
+ bne cr6, L(different)
+
+ lvx v4, r7, r0
+ GET16BYTES(v5, r4, v6)
+ VCMPNEZB(v7, v5, v4)
+ addi r7, r7, 16
+ addi r4, r4, 16
+ bne cr6, L(different)
+
+ lvx v4, r7, r0
+ GET16BYTES(v5, r4, v6)
+ VCMPNEZB(v7, v5, v4)
+ addi r7, r7, 16
+ addi r4, r4, 16
+ beq cr6, L(s1_align)
+ b L(different)
+
+ .align 4
+L(aligned):
+ lvx v4, 0, r7
+ lvx v5, 0, r4
+ VCMPNEZB(v7, v5, v4)
+ addi r7, r7, 16
+ addi r4, r4, 16
+ bne cr6, L(different)
+
+ lvx v4, 0, r7
+ lvx v5, 0, r4
+ VCMPNEZB(v7, v5, v4)
+ addi r7, r7, 16
+ addi r4, r4, 16
+ bne cr6, L(different)
+
+ lvx v4, 0, r7
+ lvx v5, 0, r4
+ VCMPNEZB(v7, v5, v4)
+ addi r7, r7, 16
+ addi r4, r4, 16
+ bne cr6, L(different)
+
+ lvx v4, 0, r7
+ lvx v5, 0, r4
+ VCMPNEZB(v7, v5, v4)
+ addi r7, r7, 16
+ addi r4, r4, 16
+ beq cr6, L(aligned)
+
+ /* Calculate and return the difference. */
+L(different):
+ VCTZLSBB(r6, v7)
+ VEXTUBRX(r5, r6, v4)
+ VEXTUBRX(r4, r6, v5)
+ subf r3, r4, r5
+ extsw r3, r3
+ blr
+
+ .align 4
+L(different_nocmpb):
+ neg r3, r9
+ and r9, r9, r3
+ cntlzd r9, r9
+ subfic r9, r9, 63
+ srd r3, r8, r9
+ srd r10, r10, r9
+ rldicl r10, r10, 0, 56
+ rldicl r3, r3, 0, 56
+ subf r3, r10, r3
+ extsw r3, r3
+ blr
+
+ .align 4
+L(pagecross_check):
+ subfic r9, r9, 4096
+ subfic r7, r7, 4096
+ cmpld cr7, r7, r9
+ bge cr7, L(pagecross)
+ mr r7, r9
+
+ /* If unaligned 16 bytes reads across a 4K page boundary, it uses
+ a simple byte a byte comparison until the page alignment for s1
+ is reached. */
+L(pagecross):
+ add r7, r3, r7
+ subf r9, r3, r7
+ mtctr r9
+
+ .align 4
+L(pagecross_loop):
+ /* Loads a byte from s1 and s2, compare if *s1 is equal to *s2
+ and if *s1 is '\0'. */
+ lbz r9, 0(r3)
+ lbz r10, 0(r4)
+ addi r3, r3, 1
+ addi r4, r4, 1
+ cmplw cr7, r9, r10
+ cmpdi cr5, r9, r0
+ bne cr7, L(pagecross_ne)
+ beq cr5, L(pagecross_nullfound)
+ bdnz L(pagecross_loop)
+ b L(align)
+
+ .align 4
+L(pagecross_ne):
+ extsw r3, r9
+ mr r9, r10
+L(pagecross_retdiff):
+ subf r9, r9, r3
+ extsw r3, r9
+ blr
+
+ .align 4
+L(pagecross_nullfound):
+ li r3, 0
+ b L(pagecross_retdiff)
+END (STRCMP)
+libc_hidden_builtin_def (strcmp)
diff --git a/sysdeps/powerpc/powerpc64/power9/strncmp.S b/sysdeps/powerpc/powerpc64/le/power9/strncmp.S
index 40be98ff45..c8df1b6850 100644
--- a/sysdeps/powerpc/powerpc64/power9/strncmp.S
+++ b/sysdeps/powerpc/powerpc64/le/power9/strncmp.S
@@ -1,5 +1,5 @@
/* Optimized strncmp implementation for PowerPC64/POWER9.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -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
- <http://www.gnu.org/licenses/>. */
-#ifdef __LITTLE_ENDIAN__
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
/* Implements the function
@@ -31,16 +30,16 @@
#endif
/* TODO: Change this to actual instructions when minimum binutils is upgraded
- to 2.27. Macros are defined below for these newer instructions in order
+ to 2.27. Macros are defined below for these newer instructions in order
to maintain compatibility. */
-# define VCTZLSBB(r,v) .long (0x10010602 | ((r)<<(32-11)) | ((v)<<(32-21)))
+#define VCTZLSBB(r,v) .long (0x10010602 | ((r)<<(32-11)) | ((v)<<(32-21)))
-# define VEXTUBRX(t,a,b) .long (0x1000070d \
+#define VEXTUBRX(t,a,b) .long (0x1000070d \
| ((t)<<(32-11)) \
| ((a)<<(32-16)) \
| ((b)<<(32-21)) )
-# define VCMPNEZB(t,a,b) .long (0x10000507 \
+#define VCMPNEZB(t,a,b) .long (0x10000507 \
| ((t)<<(32-11)) \
| ((a)<<(32-16)) \
| ((b)<<(32-21)) )
@@ -49,7 +48,7 @@
reg1: Vector to hold next 16 bytes.
reg2: Address to read from.
reg3: Permute control vector. */
-# define GET16BYTES(reg1, reg2, reg3) \
+#define GET16BYTES(reg1, reg2, reg3) \
lvx reg1, 0, reg2; \
vperm v8, v2, reg1, reg3; \
vcmpequb. v8, v0, v8; \
@@ -374,6 +373,3 @@ L(byte_ne_3):
b L(byte_ne_1)
END(STRNCMP)
libc_hidden_builtin_def(strncmp)
-#else
-#include <sysdeps/powerpc/powerpc64/power8/strncmp.S>
-#endif
diff --git a/sysdeps/powerpc/powerpc64/lshift.S b/sysdeps/powerpc/powerpc64/lshift.S
index 8b6396ee6c..3633a90dea 100644
--- a/sysdeps/powerpc/powerpc64/lshift.S
+++ b/sysdeps/powerpc/powerpc64/lshift.S
@@ -1,5 +1,5 @@
/* PowerPC64 mpn_lshift -- rp[] = up[] << cnt
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
@@ -26,11 +26,15 @@
#define TNC r0
#define U0 r30
#define U1 r31
+#define U0SAVE (-16)
+#define U1SAVE (-8)
#define RETVAL r5
ENTRY_TOCLESS (__mpn_lshift, 5)
- std U1, -8(r1)
- std U0, -16(r1)
+ std U1, U1SAVE(r1)
+ std U0, U0SAVE(r1)
+ cfi_offset(U1, U1SAVE)
+ cfi_offset(U0, U0SAVE)
subfic TNC, CNT, 64
sldi r7, N, RP
add UP, UP, r7
@@ -170,8 +174,8 @@ L(cj3): or r10, r12, r7
L(cj2): std r10, -32(RP)
std r8, -40(RP)
-L(ret): ld U1, -8(r1)
- ld U0, -16(r1)
+L(ret): ld U1, U1SAVE(r1)
+ ld U0, U0SAVE(r1)
mr RP, RETVAL
blr
END(__mpn_lshift)
diff --git a/sysdeps/powerpc/powerpc64/memcpy.S b/sysdeps/powerpc/powerpc64/memcpy.S
index ebde694a4f..3610051fa5 100644
--- a/sysdeps/powerpc/powerpc64/memcpy.S
+++ b/sysdeps/powerpc/powerpc64/memcpy.S
@@ -1,5 +1,5 @@
/* Optimized memcpy implementation for PowerPC64.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc64/memset.S b/sysdeps/powerpc/powerpc64/memset.S
index a36df7caa8..5d96696e87 100644
--- a/sysdeps/powerpc/powerpc64/memset.S
+++ b/sysdeps/powerpc/powerpc64/memset.S
@@ -1,5 +1,5 @@
/* Optimized memset implementation for PowerPC64.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc64/mul_1.S b/sysdeps/powerpc/powerpc64/mul_1.S
index 953ded8028..52a27620bc 100644
--- a/sysdeps/powerpc/powerpc64/mul_1.S
+++ b/sysdeps/powerpc/powerpc64/mul_1.S
@@ -1,6 +1,6 @@
/* PowerPC64 __mpn_mul_1 -- Multiply a limb vector with a limb and store
the result in a second limb vector.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
@@ -24,9 +24,14 @@
#define N r5
#define VL r6
+#define R26SAVE (-48)
+#define R27SAVE (-40)
+
ENTRY_TOCLESS (__mpn_mul_1, 5)
- std r27, -40(r1)
- std r26, -48(r1)
+ std r27, R27SAVE(r1)
+ std r26, R26SAVE(r1)
+ cfi_offset(r27, R27SAVE)
+ cfi_offset(r26, R26SAVE)
li r12, 0
ld r26, 0(UP)
@@ -129,7 +134,7 @@ L(end): mulld r0, r26, VL
std r0, 0(RP)
std r7, 8(RP)
L(ret): addze RP, r8
- ld r27, -40(r1)
- ld r26, -48(r1)
+ ld r27, R27SAVE(r1)
+ ld r26, R26SAVE(r1)
blr
END(__mpn_mul_1)
diff --git a/sysdeps/powerpc/powerpc64/multiarch/Makefile b/sysdeps/powerpc/powerpc64/multiarch/Makefile
index 4df6b45c4c..ea936bf9ed 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/Makefile
+++ b/sysdeps/powerpc/powerpc64/multiarch/Makefile
@@ -12,7 +12,7 @@ sysdep_routines += memcpy-power8-cached memcpy-power7 memcpy-a2 memcpy-power6 \
strnlen-power8 strnlen-power7 strnlen-ppc64 \
strcasecmp-power7 strcasecmp_l-power7 \
strncase-power7 strncase_l-power7 \
- strncmp-power9 strncmp-power8 strncmp-power7 \
+ strncmp-power8 strncmp-power7 \
strncmp-power4 strncmp-ppc64 \
strchr-power8 strchr-power7 strchr-ppc64 \
strchrnul-power8 strchrnul-power7 strchrnul-ppc64 \
@@ -22,7 +22,7 @@ sysdep_routines += memcpy-power8-cached memcpy-power7 memcpy-a2 memcpy-power6 \
strncat-power8 strncat-power7 strncat-ppc64 \
strncpy-power7 strncpy-ppc64 \
stpncpy-power8 stpncpy-power7 stpncpy-ppc64 \
- strcmp-power9 strcmp-power8 strcmp-power7 strcmp-ppc64 \
+ strcmp-power8 strcmp-power7 strcmp-ppc64 \
strcat-power8 strcat-power7 strcat-ppc64 \
memmove-power7 memmove-ppc64 wordcopy-ppc64 bcopy-ppc64 \
strncpy-power8 strstr-power7 strstr-ppc64 \
@@ -31,19 +31,9 @@ sysdep_routines += memcpy-power8-cached memcpy-power7 memcpy-a2 memcpy-power6 \
strcasecmp-ppc64 strcasecmp-power8 strncase-ppc64 \
strncase-power8
+ifneq (,$(filter %le,$(config-machine)))
+sysdep_routines += strcmp-power9 strncmp-power9
+endif
CFLAGS-strncase-power7.c += -mcpu=power7 -funroll-loops
CFLAGS-strncase_l-power7.c += -mcpu=power7 -funroll-loops
endif
-
-ifeq ($(subdir),wcsmbs)
-sysdep_routines += wcschr-power7 wcschr-power6 wcschr-ppc64 \
- wcsrchr-power7 wcsrchr-power6 wcsrchr-ppc64 \
- wcscpy-power7 wcscpy-power6 wcscpy-ppc64 \
-
-CFLAGS-wcschr-power7.c += -mcpu=power7
-CFLAGS-wcschr-power6.c += -mcpu=power6
-CFLAGS-wcsrchr-power7.c += -mcpu=power7
-CFLAGS-wcsrchr-power6.c += -mcpu=power6
-CFLAGS-wcscpy-power7.c += -mcpu=power7
-CFLAGS-wcscpy-power6.c += -mcpu=power6
-endif
diff --git a/sysdeps/powerpc/powerpc64/multiarch/bcopy-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/bcopy-ppc64.c
index f28be7bf37..53230e3cd4 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/bcopy-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/bcopy-ppc64.c
@@ -1,5 +1,5 @@
/* PowerPC64 default bcopy.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/bcopy.c b/sysdeps/powerpc/powerpc64/multiarch/bcopy.c
index 1c4a229b1f..4c9468719b 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/bcopy.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/bcopy.c
@@ -1,5 +1,5 @@
/* PowerPC64 multiarch bcopy.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include "init-arch.h"
diff --git a/sysdeps/powerpc/powerpc64/multiarch/bzero.c b/sysdeps/powerpc/powerpc64/multiarch/bzero.c
index f8cb05bea8..eab5b537fb 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/bzero.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/bzero.c
@@ -1,5 +1,5 @@
/* Multiple versions of bzero. PowerPC64 version.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c b/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c
index 38a21e478e..c0c9ba3ca5 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c
@@ -1,5 +1,5 @@
/* Enumerate available IFUNC implementations of a function. PowerPC64 version.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <string.h>
@@ -112,8 +112,10 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
/* Support sysdeps/powerpc/powerpc64/multiarch/strncmp.c. */
IFUNC_IMPL (i, name, strncmp,
+#ifdef __LITTLE_ENDIAN__
IFUNC_IMPL_ADD (array, i, strncmp, hwcap2 & PPC_FEATURE2_ARCH_3_00,
__strncmp_power9)
+#endif
IFUNC_IMPL_ADD (array, i, strncmp, hwcap2 & PPC_FEATURE2_ARCH_2_07,
__strncmp_power8)
IFUNC_IMPL_ADD (array, i, strncmp, hwcap & PPC_FEATURE_HAS_VSX,
@@ -258,39 +260,6 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
IFUNC_IMPL_ADD (array, i, strncasecmp_l, 1,
__strncasecmp_l_ppc))
- /* Support sysdeps/powerpc/powerpc64/multiarch/wcschr.c. */
- IFUNC_IMPL (i, name, wcschr,
- IFUNC_IMPL_ADD (array, i, wcschr,
- hwcap & PPC_FEATURE_HAS_VSX,
- __wcschr_power7)
- IFUNC_IMPL_ADD (array, i, wcschr,
- hwcap & PPC_FEATURE_ARCH_2_05,
- __wcschr_power6)
- IFUNC_IMPL_ADD (array, i, wcschr, 1,
- __wcschr_ppc))
-
- /* Support sysdeps/powerpc/powerpc64/multiarch/wcschr.c. */
- IFUNC_IMPL (i, name, wcsrchr,
- IFUNC_IMPL_ADD (array, i, wcsrchr,
- hwcap & PPC_FEATURE_HAS_VSX,
- __wcsrchr_power7)
- IFUNC_IMPL_ADD (array, i, wcsrchr,
- hwcap & PPC_FEATURE_ARCH_2_05,
- __wcsrchr_power6)
- IFUNC_IMPL_ADD (array, i, wcsrchr, 1,
- __wcsrchr_ppc))
-
- /* Support sysdeps/powerpc/powerpc64/multiarch/wcscpy.c. */
- IFUNC_IMPL (i, name, wcscpy,
- IFUNC_IMPL_ADD (array, i, wcscpy,
- hwcap & PPC_FEATURE_HAS_VSX,
- __wcscpy_power7)
- IFUNC_IMPL_ADD (array, i, wcscpy,
- hwcap & PPC_FEATURE_ARCH_2_05,
- __wcscpy_power6)
- IFUNC_IMPL_ADD (array, i, wcscpy, 1,
- __wcscpy_ppc))
-
/* Support sysdeps/powerpc/powerpc64/multiarch/strrchr.c. */
IFUNC_IMPL (i, name, strrchr,
IFUNC_IMPL_ADD (array, i, strrchr,
@@ -337,9 +306,11 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
/* Support sysdeps/powerpc/powerpc64/multiarch/strcmp.c. */
IFUNC_IMPL (i, name, strcmp,
+#ifdef __LITTLE_ENDIAN__
IFUNC_IMPL_ADD (array, i, strcmp,
hwcap2 & PPC_FEATURE2_ARCH_3_00,
__strcmp_power9)
+#endif
IFUNC_IMPL_ADD (array, i, strcmp,
hwcap2 & PPC_FEATURE2_ARCH_2_07,
__strcmp_power8)
diff --git a/sysdeps/powerpc/powerpc64/multiarch/init-arch.h b/sysdeps/powerpc/powerpc64/multiarch/init-arch.h
index 207add351a..450f86346a 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/init-arch.h
+++ b/sysdeps/powerpc/powerpc64/multiarch/init-arch.h
@@ -1,5 +1,5 @@
/* This file is part of the GNU C Library.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-2019 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,6 +13,6 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/powerpc/powerpc32/power4/multiarch/init-arch.h>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memchr-power7.S b/sysdeps/powerpc/powerpc64/multiarch/memchr-power7.S
index 33b565f1e5..47be29afeb 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memchr-power7.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/memchr-power7.S
@@ -1,5 +1,5 @@
/* Optimized memchr implementation for PowerPC64/POWER7.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define MEMCHR __memchr_power7
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memchr-power8.S b/sysdeps/powerpc/powerpc64/multiarch/memchr-power8.S
index cb1f0face9..ab5251b87a 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memchr-power8.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/memchr-power8.S
@@ -1,5 +1,5 @@
/* Optimized memchr implementation for PowerPC64/POWER8.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define MEMCHR __memchr_power8
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memchr-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/memchr-ppc64.c
index 48cbe601eb..e20cd44e08 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memchr-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/memchr-ppc64.c
@@ -1,5 +1,5 @@
/* PowerPC64 default implementation of memchr.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memchr.c b/sysdeps/powerpc/powerpc64/multiarch/memchr.c
index cd71db972f..5b4ab0abc9 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memchr.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/memchr.c
@@ -1,5 +1,5 @@
/* Multiple versions of memchr.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# include <string.h>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memcmp-power4.S b/sysdeps/powerpc/powerpc64/multiarch/memcmp-power4.S
index 26879a2b0f..e53cfa68f7 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memcmp-power4.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/memcmp-power4.S
@@ -1,5 +1,5 @@
/* Optimized memcmp implementation for PowerPC64/POWER4.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define MEMCMP __memcmp_power4
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memcmp-power7.S b/sysdeps/powerpc/powerpc64/multiarch/memcmp-power7.S
index 9715d11d8d..25fcc9b5da 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memcmp-power7.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/memcmp-power7.S
@@ -1,5 +1,5 @@
/* Optimized memcmp implementation for PowerPC64/POWER7.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define MEMCMP __memcmp_power7
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memcmp-power8.S b/sysdeps/powerpc/powerpc64/multiarch/memcmp-power8.S
index c4da81c64e..9d5d2415d9 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memcmp-power8.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/memcmp-power8.S
@@ -1,5 +1,5 @@
/* Optimized memcmp implementation for PowerPC64/POWER8.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define MEMCMP __memcmp_power8
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memcmp-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/memcmp-ppc64.c
index 8180ed122b..b3bd622141 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memcmp-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/memcmp-ppc64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2013-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memcmp.c b/sysdeps/powerpc/powerpc64/multiarch/memcmp.c
index 2c7a083a65..1b6629d292 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memcmp.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/memcmp.c
@@ -1,5 +1,5 @@
/* Multiple versions of memcmp. PowerPC64 version.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memcpy-a2.S b/sysdeps/powerpc/powerpc64/multiarch/memcpy-a2.S
index 91eddcebe9..467cfd784f 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memcpy-a2.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/memcpy-a2.S
@@ -1,5 +1,5 @@
/* Optimized memcpy implementation for PowerPC A2.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define MEMCPY __memcpy_a2
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memcpy-cell.S b/sysdeps/powerpc/powerpc64/multiarch/memcpy-cell.S
index a93f5146fb..8c99a726bc 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memcpy-cell.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/memcpy-cell.S
@@ -1,5 +1,5 @@
/* Optimized memcpy implementation for PowerPC/CELL.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define MEMCPY __memcpy_cell
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memcpy-power4.S b/sysdeps/powerpc/powerpc64/multiarch/memcpy-power4.S
index bc6844535b..eee649f512 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memcpy-power4.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/memcpy-power4.S
@@ -1,5 +1,5 @@
/* Optimized memcpy implementation for PowerPC64/POWER4.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define MEMCPY __memcpy_power4
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memcpy-power6.S b/sysdeps/powerpc/powerpc64/multiarch/memcpy-power6.S
index 9d4c9927d9..a072581dde 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memcpy-power6.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/memcpy-power6.S
@@ -1,5 +1,5 @@
/* Optimized memcpy implementation for PowerPC/POWER6.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define MEMCPY __memcpy_power6
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memcpy-power7.S b/sysdeps/powerpc/powerpc64/multiarch/memcpy-power7.S
index b24452e29c..f6990a81df 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memcpy-power7.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/memcpy-power7.S
@@ -1,5 +1,5 @@
/* Optimized memcpy implementation for PowerPC/POWER7.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define MEMCPY __memcpy_power7
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memcpy-power8-cached.S b/sysdeps/powerpc/powerpc64/multiarch/memcpy-power8-cached.S
index 6b69e57212..b2f98a3583 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memcpy-power8-cached.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/memcpy-power8-cached.S
@@ -1,5 +1,5 @@
/* Optimized memcpy implementation for cached memory on PowerPC64/POWER8.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memcpy-ppc64.S b/sysdeps/powerpc/powerpc64/multiarch/memcpy-ppc64.S
index 55036676b3..5878b255d3 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memcpy-ppc64.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/memcpy-ppc64.S
@@ -1,5 +1,5 @@
/* Default memcpy implementation for PowerPC64.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if defined SHARED && IS_IN (libc)
# define MEMCPY __memcpy_ppc
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memcpy.c b/sysdeps/powerpc/powerpc64/multiarch/memcpy.c
index 44dea594f3..7efe064fe8 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memcpy.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/memcpy.c
@@ -1,5 +1,5 @@
/* Multiple versions of memcpy. PowerPC64 version.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in lib and for
DSO. In static binaries we need memcpy before the initialization
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memmove-power7.S b/sysdeps/powerpc/powerpc64/multiarch/memmove-power7.S
index 0b251d0f5f..b3b9e53fce 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memmove-power7.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/memmove-power7.S
@@ -1,5 +1,5 @@
/* Optimized memmove implementation for PowerPC64/POWER7.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define MEMMOVE __memmove_power7
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memmove-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/memmove-ppc64.c
index a185190360..8874c79ee4 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memmove-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/memmove-ppc64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2014-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <memcopy.h>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memmove.c b/sysdeps/powerpc/powerpc64/multiarch/memmove.c
index 39987155cc..33b3a6874a 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memmove.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/memmove.c
@@ -1,5 +1,5 @@
/* Multiple versions of memmove. PowerPC64 version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in lib and for
DSO. In static binaries we need memmove before the initialization
diff --git a/sysdeps/powerpc/powerpc64/multiarch/mempcpy-power7.S b/sysdeps/powerpc/powerpc64/multiarch/mempcpy-power7.S
index bee44f0364..012e593935 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/mempcpy-power7.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/mempcpy-power7.S
@@ -1,5 +1,5 @@
/* Optimized mempcpy implementation for PowerPC/POWER7.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define MEMPCPY __mempcpy_power7
diff --git a/sysdeps/powerpc/powerpc64/multiarch/mempcpy-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/mempcpy-ppc64.c
index a03748e8c6..51d816064b 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/mempcpy-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/mempcpy-ppc64.c
@@ -1,5 +1,5 @@
/* PowerPC64 default implementation of mempcpy.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/powerpc/powerpc32/power4/multiarch/mempcpy-ppc32.c>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/mempcpy.c b/sysdeps/powerpc/powerpc64/multiarch/mempcpy.c
index 35e2368fa6..0028190cb5 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/mempcpy.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/mempcpy.c
@@ -1,5 +1,5 @@
/* Multiple versions of mempcpy.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# define mempcpy __redirect_mempcpy
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memrchr-power7.S b/sysdeps/powerpc/powerpc64/multiarch/memrchr-power7.S
index afaae46dec..a2ec43c996 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memrchr-power7.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/memrchr-power7.S
@@ -1,5 +1,5 @@
/* Optimized memrchr implementation for PowerPC64/POWER7.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define MEMRCHR __memrchr_power7
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memrchr-power8.S b/sysdeps/powerpc/powerpc64/multiarch/memrchr-power8.S
index 453e2b620e..ae92351b79 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memrchr-power8.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/memrchr-power8.S
@@ -1,5 +1,5 @@
/* Optimized memrchr implementation for PowerPC64/POWER8.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define MEMRCHR __memrchr_power8
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memrchr-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/memrchr-ppc64.c
index e6d60c3fc3..ca9bdf1458 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memrchr-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/memrchr-ppc64.c
@@ -1,5 +1,5 @@
/* PowerPC64 default implementation of memrchr.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,5 +14,5 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/powerpc/powerpc32/power4/multiarch/memrchr-ppc32.c>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memrchr.c b/sysdeps/powerpc/powerpc64/multiarch/memrchr.c
index 48be9515e4..17dce79fbb 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memrchr.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/memrchr.c
@@ -1,5 +1,5 @@
/* Multiple versions of memrchr.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# include <string.h>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memset-power4.S b/sysdeps/powerpc/powerpc64/multiarch/memset-power4.S
index 78d6de9e19..671deb800f 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memset-power4.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/memset-power4.S
@@ -1,5 +1,5 @@
/* Optimized memset implementation for PowerPC64/POWER4.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define MEMSET __memset_power4
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memset-power6.S b/sysdeps/powerpc/powerpc64/multiarch/memset-power6.S
index 79d93c7615..4d5b4d6af2 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memset-power6.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/memset-power6.S
@@ -1,5 +1,5 @@
/* Optimized memset implementation for PowerPC64/POWER6.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define MEMSET __memset_power6
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memset-power7.S b/sysdeps/powerpc/powerpc64/multiarch/memset-power7.S
index 02d1855186..87f445f009 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memset-power7.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/memset-power7.S
@@ -1,5 +1,5 @@
/* Optimized memset implementation for PowerPC64/POWER7.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define MEMSET __memset_power7
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memset-power8.S b/sysdeps/powerpc/powerpc64/multiarch/memset-power8.S
index 932eeefca1..556387a11c 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memset-power8.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/memset-power8.S
@@ -1,5 +1,5 @@
/* Optimized memset implementation for PowerPC64/POWER8.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define MEMSET __memset_power8
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memset-ppc64.S b/sysdeps/powerpc/powerpc64/multiarch/memset-ppc64.S
index 61f4bc5089..dbca4f2422 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memset-ppc64.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/memset-ppc64.S
@@ -1,5 +1,5 @@
/* Default memset/bzero implementation for PowerPC64.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memset.c b/sysdeps/powerpc/powerpc64/multiarch/memset.c
index 1a7c46fecf..65780c254e 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memset.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/memset.c
@@ -1,5 +1,5 @@
/* Multiple versions of memset.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for definition in libc. */
#if defined SHARED && IS_IN (libc)
diff --git a/sysdeps/powerpc/powerpc64/multiarch/rawmemchr-power7.S b/sysdeps/powerpc/powerpc64/multiarch/rawmemchr-power7.S
index a268376729..1326b200c2 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/rawmemchr-power7.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/rawmemchr-power7.S
@@ -1,5 +1,5 @@
/* Optimized rawmemchr implementation for PowerPC64/POWER7.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define RAWMEMCHR __rawmemchr_power7
diff --git a/sysdeps/powerpc/powerpc64/multiarch/rawmemchr-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/rawmemchr-ppc64.c
index e5daa9225b..e1fe232d59 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/rawmemchr-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/rawmemchr-ppc64.c
@@ -1,5 +1,5 @@
/* PowerPC64 default implementation of rawmemchr.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/powerpc/powerpc32/power4/multiarch/rawmemchr-ppc32.c>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/rawmemchr.c b/sysdeps/powerpc/powerpc64/multiarch/rawmemchr.c
index 02bac49b53..6b3a816785 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/rawmemchr.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/rawmemchr.c
@@ -1,5 +1,5 @@
/* Multiple versions of rawmemchr.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# define __rawmemchr __redirect___rawmemchr
diff --git a/sysdeps/powerpc/powerpc64/multiarch/rtld-memset.c b/sysdeps/powerpc/powerpc64/multiarch/rtld-memset.c
index 611eff4bf6..638c64c2dc 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/rtld-memset.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/rtld-memset.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2013-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
@@ -13,6 +13,6 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/powerpc/powerpc64/rtld-memset.c>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/rtld-strchr.S b/sysdeps/powerpc/powerpc64/multiarch/rtld-strchr.S
index 9ec081aebd..be2e1bfe05 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/rtld-strchr.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/rtld-strchr.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2013-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
@@ -13,6 +13,6 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/powerpc/powerpc64/strchr.S>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/stpcpy-power7.c b/sysdeps/powerpc/powerpc64/multiarch/stpcpy-power7.c
index 44e9f15e9b..77fef52e90 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/stpcpy-power7.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/stpcpy-power7.c
@@ -1,5 +1,5 @@
/* Multiarch stpcpy for POWER7/PPC64.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/stpcpy-power8.S b/sysdeps/powerpc/powerpc64/multiarch/stpcpy-power8.S
index 7718869370..06a2dd45d6 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/stpcpy-power8.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/stpcpy-power8.S
@@ -1,5 +1,5 @@
/* Optimized stpcpy implementation for POWER8/PPC64.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define STPCPY __stpcpy_power8
diff --git a/sysdeps/powerpc/powerpc64/multiarch/stpcpy-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/stpcpy-ppc64.c
index 8359b7b4ca..c502e5da14 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/stpcpy-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/stpcpy-ppc64.c
@@ -1,5 +1,5 @@
/* Multiarch stpcpy for PPC64.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/stpcpy.c b/sysdeps/powerpc/powerpc64/multiarch/stpcpy.c
index 34c8896441..37a9f81b38 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/stpcpy.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/stpcpy.c
@@ -1,5 +1,5 @@
/* Multiple versions of stpcpy. PowerPC64 version.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if defined SHARED && IS_IN (libc)
# define __NO_STRING_INLINES
diff --git a/sysdeps/powerpc/powerpc64/multiarch/stpncpy-power7.S b/sysdeps/powerpc/powerpc64/multiarch/stpncpy-power7.S
index 6af2557c5d..9a97943bec 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/stpncpy-power7.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/stpncpy-power7.S
@@ -1,5 +1,5 @@
/* Optimized stpncpy implementation for POWER7.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define USE_AS_STPNCPY
diff --git a/sysdeps/powerpc/powerpc64/multiarch/stpncpy-power8.S b/sysdeps/powerpc/powerpc64/multiarch/stpncpy-power8.S
index 4fea202a54..bda53a25b3 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/stpncpy-power8.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/stpncpy-power8.S
@@ -1,5 +1,5 @@
/* Optimized stpncpy implementation for POWER8.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define STPNCPY __stpncpy_power8
diff --git a/sysdeps/powerpc/powerpc64/multiarch/stpncpy-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/stpncpy-ppc64.c
index 8f9dc08599..533fb7f0a9 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/stpncpy-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/stpncpy-ppc64.c
@@ -1,5 +1,5 @@
/* Default stpncpy implementation for PowerPC64.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define STPNCPY __stpncpy_ppc
#ifdef SHARED
diff --git a/sysdeps/powerpc/powerpc64/multiarch/stpncpy.c b/sysdeps/powerpc/powerpc64/multiarch/stpncpy.c
index 28e3c97b72..b358abf2fb 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/stpncpy.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/stpncpy.c
@@ -1,5 +1,5 @@
/* Multiple versions of stpncpy. PowerPC64 version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# define stpncpy __redirect_stpncpy
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcasecmp-power7.S b/sysdeps/powerpc/powerpc64/multiarch/strcasecmp-power7.S
index bec2f30703..790e486758 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strcasecmp-power7.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcasecmp-power7.S
@@ -1,5 +1,5 @@
/* Optimized strcasecmp implementation for POWER7.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __strcasecmp __strcasecmp_power7
#undef weak_alias
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcasecmp-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strcasecmp-power8.S
index 29453ff80d..05f5882296 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strcasecmp-power8.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcasecmp-power8.S
@@ -1,5 +1,5 @@
/* Optimized strcasecmp implementation for POWER8.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __strcasecmp __strcasecmp_power8
#undef weak_alias
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcasecmp-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/strcasecmp-ppc64.c
index b477255196..2d2024d528 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strcasecmp-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcasecmp-ppc64.c
@@ -1,5 +1,5 @@
/* Multiarch strcasecmp for PPC64.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define strcasecmp __strcasecmp_ppc
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcasecmp.c b/sysdeps/powerpc/powerpc64/multiarch/strcasecmp.c
index 1a6661e49c..9e38608ec4 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strcasecmp.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcasecmp.c
@@ -1,5 +1,5 @@
/* Multiple versions of strcasecmp
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <shlib-compat.h>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcasecmp_l-power7.S b/sysdeps/powerpc/powerpc64/multiarch/strcasecmp_l-power7.S
index 07e716950a..dabcb8abae 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strcasecmp_l-power7.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcasecmp_l-power7.S
@@ -1,5 +1,5 @@
/* Optimized strcasecmp_l implementation for POWER7.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __strcasecmp_l __strcasecmp_l_power7
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcasecmp_l.c b/sysdeps/powerpc/powerpc64/multiarch/strcasecmp_l.c
index 3edccc4333..4e4cf88a8f 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strcasecmp_l.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcasecmp_l.c
@@ -1,5 +1,5 @@
/* Multiple versions of strcasecmp_l.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# include <string.h>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcasestr-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strcasestr-power8.S
index 985f4e4e7d..4d6c909c14 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strcasestr-power8.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcasestr-power8.S
@@ -1,5 +1,5 @@
/* Optimized strcasestr implementation for POWER8.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define STRCASESTR __strcasestr_power8
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcasestr-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/strcasestr-ppc64.c
index 0805b6f939..698593b123 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strcasestr-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcasestr-ppc64.c
@@ -1,5 +1,5 @@
/* PowerPC64 default implementation of strcasestr.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcasestr.c b/sysdeps/powerpc/powerpc64/multiarch/strcasestr.c
index dc46bfd474..22c684b3d5 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strcasestr.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcasestr.c
@@ -1,5 +1,5 @@
/* Multiple versions of strcasestr.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# include <string.h>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcat-power7.c b/sysdeps/powerpc/powerpc64/multiarch/strcat-power7.c
index 31966827ed..da88cbba67 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strcat-power7.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcat-power7.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2014-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
@@ -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
- <http://www.gnu.org/licenses/ >. */
+ <https://www.gnu.org/licenses/ >. */
#include <string.h>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcat-power8.c b/sysdeps/powerpc/powerpc64/multiarch/strcat-power8.c
index 996a3b6a28..ab94f87794 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strcat-power8.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcat-power8.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2015-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
@@ -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
- <http://www.gnu.org/licenses/ >. */
+ <https://www.gnu.org/licenses/ >. */
#include <string.h>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcat-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/strcat-ppc64.c
index fc3ef2a2bf..2699af0a58 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strcat-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcat-ppc64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2014-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
@@ -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
- <http://www.gnu.org/licenses/ >. */
+ <https://www.gnu.org/licenses/ >. */
#include <string.h>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcat.c b/sysdeps/powerpc/powerpc64/multiarch/strcat.c
index 48035ed3c0..b5eec506d0 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strcat.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcat.c
@@ -1,5 +1,5 @@
/* Multiple versions of strcat. PowerPC64 version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# define strcat __redirect_strcat
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strchr-power7.S b/sysdeps/powerpc/powerpc64/multiarch/strchr-power7.S
index f91b809984..92825f86b7 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strchr-power7.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strchr-power7.S
@@ -1,5 +1,5 @@
/* Optimized strchr implementation for POWER7.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define STRCHR __strchr_power7
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strchr-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strchr-power8.S
index 16a484dbda..3ab3055092 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strchr-power8.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strchr-power8.S
@@ -1,5 +1,5 @@
/* Optimized strchr implementation for POWER8.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define STRCHR __strchr_power8
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strchr-ppc64.S b/sysdeps/powerpc/powerpc64/multiarch/strchr-ppc64.S
index cdbb9c151e..9d7e23e605 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strchr-ppc64.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strchr-ppc64.S
@@ -1,5 +1,5 @@
/* PowerPC64 default implementation of strchr.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifdef SHARED
# define STRCHR __strchr_ppc
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strchr.c b/sysdeps/powerpc/powerpc64/multiarch/strchr.c
index 6528469ee3..94d6c878b5 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strchr.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strchr.c
@@ -1,5 +1,5 @@
/* Multiple versions of strchr.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for definition in libc. */
#if defined SHARED && IS_IN (libc)
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strchrnul-power7.S b/sysdeps/powerpc/powerpc64/multiarch/strchrnul-power7.S
index fee140926b..47d3d56fe5 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strchrnul-power7.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strchrnul-power7.S
@@ -1,5 +1,5 @@
/* Optimized strchrnul implementation for POWER7.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define STRCHRNUL __strchrnul_power7
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strchrnul-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strchrnul-power8.S
index e17e918d00..116a72a4cd 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strchrnul-power8.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strchrnul-power8.S
@@ -1,5 +1,5 @@
/* Optimized strchrnul implementation for POWER8.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define STRCHRNUL __strchrnul_power8
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strchrnul-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/strchrnul-ppc64.c
index 59c6bc37f7..5ca8026efe 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strchrnul-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strchrnul-ppc64.c
@@ -1,5 +1,5 @@
/* PowerPC64 default implementation of strchrnul.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/powerpc/powerpc32/power4/multiarch/strchrnul-ppc32.c>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strchrnul.c b/sysdeps/powerpc/powerpc64/multiarch/strchrnul.c
index ead31f791c..4420f0c963 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strchrnul.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strchrnul.c
@@ -1,5 +1,5 @@
/* Multiple versions of strchrnul.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# include <string.h>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcmp-power7.S b/sysdeps/powerpc/powerpc64/multiarch/strcmp-power7.S
index 814d472680..0e62904ce2 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strcmp-power7.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcmp-power7.S
@@ -1,5 +1,5 @@
/* Optimized strcmp implementation for POWER7.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define STRCMP __strcmp_power7
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcmp-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strcmp-power8.S
index 68803ffc1b..33260db7ad 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strcmp-power8.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcmp-power8.S
@@ -1,5 +1,5 @@
/* Optimized strcmp implementation for POWER8/PPC64.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
#define STRCMP __strcmp_power8
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcmp-power9.S b/sysdeps/powerpc/powerpc64/multiarch/strcmp-power9.S
index 8b569d38be..735dff480d 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strcmp-power9.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcmp-power9.S
@@ -1,5 +1,5 @@
/* Optimized strcmp implementation for POWER9/PPC64.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,13 +14,13 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if IS_IN (libc)
+#if defined __LITTLE_ENDIAN__ && IS_IN (libc)
#define STRCMP __strcmp_power9
#undef libc_hidden_builtin_def
#define libc_hidden_builtin_def(name)
-#include <sysdeps/powerpc/powerpc64/power9/strcmp.S>
+#include <sysdeps/powerpc/powerpc64/le/power9/strcmp.S>
#endif
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcmp-ppc64.S b/sysdeps/powerpc/powerpc64/multiarch/strcmp-ppc64.S
index 43e1c6f697..1fca6f6a68 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strcmp-ppc64.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcmp-ppc64.S
@@ -1,5 +1,5 @@
/* Default strcmp implementation for PowerPC64.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if defined SHARED && IS_IN (libc)
# define STRCMP __strcmp_ppc
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcmp.c b/sysdeps/powerpc/powerpc64/multiarch/strcmp.c
index b669053166..33c77db379 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strcmp.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcmp.c
@@ -1,5 +1,5 @@
/* Multiple versions of strcmp. PowerPC64 version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if defined SHARED && IS_IN (libc)
# define strcmp __redirect_strcmp
@@ -27,13 +27,17 @@
extern __typeof (strcmp) __strcmp_ppc attribute_hidden;
extern __typeof (strcmp) __strcmp_power7 attribute_hidden;
extern __typeof (strcmp) __strcmp_power8 attribute_hidden;
+# ifdef __LITTLE_ENDIAN__
extern __typeof (strcmp) __strcmp_power9 attribute_hidden;
+# endif
# undef strcmp
libc_ifunc_redirected (__redirect_strcmp, strcmp,
+# ifdef __LITTLE_ENDIAN__
(hwcap2 & PPC_FEATURE2_ARCH_3_00)
? __strcmp_power9 :
+# endif
(hwcap2 & PPC_FEATURE2_ARCH_2_07)
? __strcmp_power8
: (hwcap & PPC_FEATURE_HAS_VSX)
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcpy-power7.c b/sysdeps/powerpc/powerpc64/multiarch/strcpy-power7.c
index 0a719519a6..99d58b7433 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strcpy-power7.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcpy-power7.c
@@ -1,5 +1,5 @@
/* Multiarch strcpy for POWER7/PPC64.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcpy-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strcpy-power8.S
index 5b68fc970e..7428af4b5f 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strcpy-power8.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcpy-power8.S
@@ -1,5 +1,5 @@
/* Optimized strcpy implementation for POWER8/PPC64.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define STRCPY __strcpy_power8
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcpy-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/strcpy-ppc64.c
index 22831974ab..93e3c69a82 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strcpy-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcpy-ppc64.c
@@ -1,5 +1,5 @@
/* Multiarch strcpy for PPC64.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcpy.c b/sysdeps/powerpc/powerpc64/multiarch/strcpy.c
index b18a92a62a..19a2fc0b36 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strcpy.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcpy.c
@@ -1,5 +1,5 @@
/* Multiple versions of strcpy. PowerPC64 version.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if defined SHARED && IS_IN (libc)
# define strcpy __redirect_strcpy
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcspn-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strcspn-power8.S
index 23bf1c1e5f..28111c2e9a 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strcspn-power8.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcspn-power8.S
@@ -1,5 +1,5 @@
/* Optimized strcspn implementation for POWER8.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define STRSPN __strcspn_power8
#undef libc_hidden_builtin_def
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcspn-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/strcspn-ppc64.c
index 03eac0d183..c8fc8adb9b 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strcspn-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcspn-ppc64.c
@@ -1,5 +1,5 @@
/* Default strcspn implementation for PowerPC64.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define STRCSPN __strcspn_ppc
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcspn.c b/sysdeps/powerpc/powerpc64/multiarch/strcspn.c
index 308aab5970..19c9de0c03 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strcspn.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strcspn.c
@@ -1,5 +1,5 @@
/* Multiple versions of strcspn. PowerPC64 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <shlib-compat.h>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strlen-power7.S b/sysdeps/powerpc/powerpc64/multiarch/strlen-power7.S
index 5f4591ff6c..6a5ed4bfbf 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strlen-power7.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strlen-power7.S
@@ -1,5 +1,5 @@
/* Optimized strlen implementation for POWER7.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define STRLEN __strlen_power7
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strlen-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strlen-power8.S
index fb8ffbf970..84ade4b2fa 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strlen-power8.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strlen-power8.S
@@ -1,5 +1,5 @@
/* Optimized strlen implementation for POWER8.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define STRLEN __strlen_power8
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strlen-ppc64.S b/sysdeps/powerpc/powerpc64/multiarch/strlen-ppc64.S
index 3e9e4814c9..c2133b009b 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strlen-ppc64.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strlen-ppc64.S
@@ -1,5 +1,5 @@
/* Default strlen implementation for PowerPC64.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if defined SHARED && IS_IN (libc)
# define STRLEN __strlen_ppc
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strlen.c b/sysdeps/powerpc/powerpc64/multiarch/strlen.c
index 74810dab99..31c7b69f9d 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strlen.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strlen.c
@@ -1,5 +1,5 @@
/* Multiple versions of strlen. PowerPC64 version.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if defined SHARED && IS_IN (libc)
/* Redefine strlen so that the compiler won't complain about the type
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncase-power7.c b/sysdeps/powerpc/powerpc64/multiarch/strncase-power7.c
index 27ca40c40a..7cad9397d7 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strncase-power7.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strncase-power7.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2013-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncase-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strncase-power8.S
index c0a0901a28..f7a1776158 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strncase-power8.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strncase-power8.S
@@ -1,5 +1,5 @@
/* Optimized strncasecmp implementation for POWER8.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __strncasecmp __strncasecmp_power8
#undef weak_alias
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncase-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/strncase-ppc64.c
index 31ed9510c6..672c807af4 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strncase-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strncase-ppc64.c
@@ -1,5 +1,5 @@
/* Multiarch strncasecmp for PPC64.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define strncasecmp __strncasecmp_ppc
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncase.c b/sysdeps/powerpc/powerpc64/multiarch/strncase.c
index 8cf7154c59..06a51edc99 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strncase.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strncase.c
@@ -1,5 +1,5 @@
/* Multiple versions of strncasecmp
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <shlib-compat.h>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncase_l-power7.c b/sysdeps/powerpc/powerpc64/multiarch/strncase_l-power7.c
index ae2c4a3554..0b42b95c32 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strncase_l-power7.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strncase_l-power7.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2013-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncase_l.c b/sysdeps/powerpc/powerpc64/multiarch/strncase_l.c
index d3c4bf18c1..b3b552a58d 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strncase_l.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strncase_l.c
@@ -1,5 +1,5 @@
/* Multiple versions of strncasecmp_l
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# include <string.h>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncat-power7.c b/sysdeps/powerpc/powerpc64/multiarch/strncat-power7.c
index a393c2ed60..2a5ca8b104 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strncat-power7.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strncat-power7.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2015-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
@@ -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
- <http://www.gnu.org/licenses/ >. */
+ <https://www.gnu.org/licenses/ >. */
#include <string.h>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncat-power8.c b/sysdeps/powerpc/powerpc64/multiarch/strncat-power8.c
index 7842a507a0..c5a7cc7e8e 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strncat-power8.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strncat-power8.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2017-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
@@ -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
- <http://www.gnu.org/licenses/ >. */
+ <https://www.gnu.org/licenses/ >. */
#include <string.h>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncat-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/strncat-ppc64.c
index dd0f166514..c92a028255 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strncat-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strncat-ppc64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2014-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
@@ -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
- <http://www.gnu.org/licenses/ >. */
+ <https://www.gnu.org/licenses/ >. */
#include <string.h>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncat.c b/sysdeps/powerpc/powerpc64/multiarch/strncat.c
index a2e5038e53..105e8e39c2 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strncat.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strncat.c
@@ -1,5 +1,5 @@
/* Multiple versions of strncat. PowerPC64 version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# include <string.h>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncmp-power4.S b/sysdeps/powerpc/powerpc64/multiarch/strncmp-power4.S
index 860f2ec18a..501648ca1a 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strncmp-power4.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strncmp-power4.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2013-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define STRNCMP __strncmp_power4
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncmp-power7.S b/sysdeps/powerpc/powerpc64/multiarch/strncmp-power7.S
index 8d4108e1ba..2407f455b8 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strncmp-power7.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strncmp-power7.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2013-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define STRNCMP __strncmp_power7
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncmp-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strncmp-power8.S
index e8a5fb804f..b1389f74ed 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strncmp-power8.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strncmp-power8.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2015-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
#define STRNCMP __strncmp_power8
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncmp-power9.S b/sysdeps/powerpc/powerpc64/multiarch/strncmp-power9.S
index 3356f72527..0ec0a4eb0c 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strncmp-power9.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strncmp-power9.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2016-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2016-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
@@ -13,13 +13,13 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if IS_IN (libc)
+#if defined __LITTLE_ENDIAN__ && IS_IN (libc)
#define STRNCMP __strncmp_power9
#undef libc_hidden_builtin_def
#define libc_hidden_builtin_def(name)
-#include <sysdeps/powerpc/powerpc64/power9/strncmp.S>
+#include <sysdeps/powerpc/powerpc64/le/power9/strncmp.S>
#endif
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncmp-ppc64.S b/sysdeps/powerpc/powerpc64/multiarch/strncmp-ppc64.S
index 1b5704a079..7e5d4c8e01 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strncmp-ppc64.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strncmp-ppc64.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2013-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if defined SHARED && IS_IN (libc)
# define STRNCMP __strncmp_ppc
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncmp.c b/sysdeps/powerpc/powerpc64/multiarch/strncmp.c
index c4a40d1ec7..8659b3a559 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strncmp.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strncmp.c
@@ -1,5 +1,5 @@
/* Multiple versions of strncmp.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for definition in libc. */
#if defined SHARED && IS_IN (libc)
@@ -29,14 +29,18 @@ extern __typeof (strncmp) __strncmp_ppc attribute_hidden;
extern __typeof (strncmp) __strncmp_power4 attribute_hidden;
extern __typeof (strncmp) __strncmp_power7 attribute_hidden;
extern __typeof (strncmp) __strncmp_power8 attribute_hidden;
+# ifdef __LITTLE_ENDIAN__
extern __typeof (strncmp) __strncmp_power9 attribute_hidden;
+# endif
# undef strncmp
/* Avoid DWARF definition DIE on ifunc symbol so that GDB can handle
ifunc symbol properly. */
libc_ifunc_redirected (__redirect_strncmp, strncmp,
+# ifdef __LITTLE_ENDIAN__
(hwcap2 & PPC_FEATURE2_ARCH_3_00)
? __strncmp_power9 :
+# endif
(hwcap2 & PPC_FEATURE2_ARCH_2_07)
? __strncmp_power8
: (hwcap & PPC_FEATURE_HAS_VSX)
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncpy-power7.S b/sysdeps/powerpc/powerpc64/multiarch/strncpy-power7.S
index a044c11327..3bf2d46e78 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strncpy-power7.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strncpy-power7.S
@@ -1,5 +1,5 @@
/* Optimized strncpy implementation for POWER7.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define STRNCPY __strncpy_power7
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncpy-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strncpy-power8.S
index 10b8453f58..ec94817b2d 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strncpy-power8.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strncpy-power8.S
@@ -1,5 +1,5 @@
/* Optimized strncpy implementation for POWER8.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define STRNCPY __strncpy_power8
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncpy-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/strncpy-ppc64.c
index 7efbe10905..ea1ada933b 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strncpy-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strncpy-ppc64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2014-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncpy.c b/sysdeps/powerpc/powerpc64/multiarch/strncpy.c
index 41e5ea8446..c5623ecb8b 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strncpy.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strncpy.c
@@ -1,5 +1,5 @@
/* Multiple versions of strncpy.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/ >. */
+ <https://www.gnu.org/licenses/ >. */
/* Define multiple versions only for definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strnlen-power7.S b/sysdeps/powerpc/powerpc64/multiarch/strnlen-power7.S
index 565937b534..5bf79f3b4e 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strnlen-power7.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strnlen-power7.S
@@ -1,5 +1,5 @@
/* Optimized strnlen version for POWER7.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define STRNLEN __strnlen_power7
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strnlen-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strnlen-power8.S
index ed5b67e607..bb0535b856 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strnlen-power8.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strnlen-power8.S
@@ -1,5 +1,5 @@
/* Optimized strnlen version for POWER8.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __strnlen __strnlen_power8
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strnlen-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/strnlen-ppc64.c
index ce710e218d..be593e1098 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strnlen-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strnlen-ppc64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2013-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
@@ -13,6 +13,6 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/powerpc/powerpc32/power4/multiarch/strnlen-ppc32.c>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strnlen.c b/sysdeps/powerpc/powerpc64/multiarch/strnlen.c
index 298bfa0dc1..2d8759bd0f 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strnlen.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strnlen.c
@@ -1,5 +1,5 @@
/* Multiple versions of strnlen.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# define strnlen __redirect_strnlen
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strrchr-power7.S b/sysdeps/powerpc/powerpc64/multiarch/strrchr-power7.S
index 949803031e..f60889c0f4 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strrchr-power7.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strrchr-power7.S
@@ -1,5 +1,5 @@
/* Optimized strrchr implementation for POWER7.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define STRRCHR __strrchr_power7
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strrchr-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strrchr-power8.S
index 342d02a38c..2342b6abb8 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strrchr-power8.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strrchr-power8.S
@@ -1,5 +1,5 @@
/* Optimized strrchr implementation for POWER8.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define STRRCHR __strrchr_power8
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strrchr-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/strrchr-ppc64.c
index bcf049a2ed..3e5b3accfc 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strrchr-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strrchr-ppc64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2014-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strrchr.c b/sysdeps/powerpc/powerpc64/multiarch/strrchr.c
index d46f7c0403..80187c59cc 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strrchr.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strrchr.c
@@ -1,5 +1,5 @@
/* Multiple versions of strrchr. PowerPC64 version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strspn-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strspn-power8.S
index bc9f493cf7..e8cba0db27 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strspn-power8.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strspn-power8.S
@@ -1,5 +1,5 @@
/* Optimized strspn implementation for POWER8.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define STRSPN __strspn_power8
#undef libc_hidden_builtin_def
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strspn-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/strspn-ppc64.c
index 05a240b252..bda506e1bc 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strspn-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strspn-ppc64.c
@@ -1,5 +1,5 @@
/* Default strspn implementation for PowerPC64.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define STRSPN __strspn_ppc
#ifdef SHARED
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strspn.c b/sysdeps/powerpc/powerpc64/multiarch/strspn.c
index 61251610e7..23ddce2a50 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strspn.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strspn.c
@@ -1,5 +1,5 @@
/* Multiple versions of strspn. PowerPC64 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
# include <string.h>
# include <shlib-compat.h>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strstr-power7.S b/sysdeps/powerpc/powerpc64/multiarch/strstr-power7.S
index a24ab585f4..2e9913e962 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strstr-power7.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strstr-power7.S
@@ -1,5 +1,5 @@
/* Optimized strstr implementation for POWER7.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define STRSTR __strstr_power7
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strstr-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/strstr-ppc64.c
index 971bb18f7a..77d271a9a7 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strstr-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strstr-ppc64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2015-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strstr.c b/sysdeps/powerpc/powerpc64/multiarch/strstr.c
index 264b5d88d5..dc6b77e509 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strstr.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/strstr.c
@@ -1,5 +1,5 @@
/* Multiple versions of strstr. PowerPC64 version.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/powerpc/powerpc64/multiarch/wcschr-power6.c b/sysdeps/powerpc/powerpc64/multiarch/wcschr-power6.c
deleted file mode 100644
index 52f562b613..0000000000
--- a/sysdeps/powerpc/powerpc64/multiarch/wcschr-power6.c
+++ /dev/null
@@ -1,19 +0,0 @@
-/* wcschr.c - Wide Character Search for powerpc64/power6.
- Copyright (C) 2013-2018 Free Software 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 <http://www.gnu.org/licenses/>. */
-
-#include <sysdeps/powerpc/powerpc32/power4/multiarch/wcschr-power6.c>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/wcschr-power7.c b/sysdeps/powerpc/powerpc64/multiarch/wcschr-power7.c
deleted file mode 100644
index 0acad04706..0000000000
--- a/sysdeps/powerpc/powerpc64/multiarch/wcschr-power7.c
+++ /dev/null
@@ -1,19 +0,0 @@
-/* wcschr.c - Wide Character Search for powerpc64/power7.
- Copyright (C) 2013-2018 Free Software 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 <http://www.gnu.org/licenses/>. */
-
-#include <sysdeps/powerpc/powerpc32/power4/multiarch/wcschr-power7.c>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/wcschr-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/wcschr-ppc64.c
deleted file mode 100644
index f72865241b..0000000000
--- a/sysdeps/powerpc/powerpc64/multiarch/wcschr-ppc64.c
+++ /dev/null
@@ -1,18 +0,0 @@
-/* Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdeps/powerpc/powerpc32/power4/multiarch/wcschr-ppc32.c>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/wcschr.c b/sysdeps/powerpc/powerpc64/multiarch/wcschr.c
deleted file mode 100644
index 9976a63afa..0000000000
--- a/sysdeps/powerpc/powerpc64/multiarch/wcschr.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Multiple versions of wcschr
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if IS_IN (libc)
-# define wcschr __redirect_wcschr
-# define __wcschr __redirect___wcschr
-# include <wchar.h>
-# include <shlib-compat.h>
-# include "init-arch.h"
-
-extern __typeof (wcschr) __wcschr_ppc attribute_hidden;
-extern __typeof (wcschr) __wcschr_power6 attribute_hidden;
-extern __typeof (wcschr) __wcschr_power7 attribute_hidden;
-# undef wcschr
-# undef __wcschr
-
-libc_ifunc_redirected (__redirect___wcschr, __wcschr,
- (hwcap & PPC_FEATURE_HAS_VSX)
- ? __wcschr_power7
- : (hwcap & PPC_FEATURE_ARCH_2_05)
- ? __wcschr_power6
- : __wcschr_ppc);
-weak_alias (__wcschr, wcschr)
-#else
-#undef libc_hidden_def
-#define libc_hidden_def(a)
-#include <wcsmbs/wcschr.c>
-#endif
diff --git a/sysdeps/powerpc/powerpc64/multiarch/wcscpy-power6.c b/sysdeps/powerpc/powerpc64/multiarch/wcscpy-power6.c
deleted file mode 100644
index ef0f7ccdc7..0000000000
--- a/sysdeps/powerpc/powerpc64/multiarch/wcscpy-power6.c
+++ /dev/null
@@ -1,19 +0,0 @@
-/* wcscpy.c - Wide Character Search for powerpc64/power6.
- Copyright (C) 2013-2018 Free Software 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 <http://www.gnu.org/licenses/>. */
-
-#include <sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy-power6.c>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/wcscpy-power7.c b/sysdeps/powerpc/powerpc64/multiarch/wcscpy-power7.c
deleted file mode 100644
index 2712f58156..0000000000
--- a/sysdeps/powerpc/powerpc64/multiarch/wcscpy-power7.c
+++ /dev/null
@@ -1,19 +0,0 @@
-/* wcscpy.c - Wide Character Search for powerpc64/power7.
- Copyright (C) 2013-2018 Free Software 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 <http://www.gnu.org/licenses/>. */
-
-#include <sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy-power7.c>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/wcscpy-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/wcscpy-ppc64.c
deleted file mode 100644
index 4bcf792544..0000000000
--- a/sysdeps/powerpc/powerpc64/multiarch/wcscpy-ppc64.c
+++ /dev/null
@@ -1,18 +0,0 @@
-/* Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy-ppc32.c>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/wcscpy.c b/sysdeps/powerpc/powerpc64/multiarch/wcscpy.c
deleted file mode 100644
index 76fc3569b8..0000000000
--- a/sysdeps/powerpc/powerpc64/multiarch/wcscpy.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Multiple versions of wcscpy.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if IS_IN (libc)
-# include <wchar.h>
-# include <shlib-compat.h>
-# include "init-arch.h"
-
-extern __typeof (wcscpy) __wcscpy_ppc attribute_hidden;
-extern __typeof (wcscpy) __wcscpy_power6 attribute_hidden;
-extern __typeof (wcscpy) __wcscpy_power7 attribute_hidden;
-
-libc_ifunc (wcscpy,
- (hwcap & PPC_FEATURE_HAS_VSX)
- ? __wcscpy_power7 :
- (hwcap & PPC_FEATURE_ARCH_2_05)
- ? __wcscpy_power6
- : __wcscpy_ppc);
-#else
-#include <wcsmbs/wcscpy.c>
-#endif
diff --git a/sysdeps/powerpc/powerpc64/multiarch/wcsrchr-power6.c b/sysdeps/powerpc/powerpc64/multiarch/wcsrchr-power6.c
deleted file mode 100644
index 05414b00e3..0000000000
--- a/sysdeps/powerpc/powerpc64/multiarch/wcsrchr-power6.c
+++ /dev/null
@@ -1,19 +0,0 @@
-/* wcsrchr.c - Wide Character Search for powerpc64/power6.
- Copyright (C) 2013-2018 Free Software 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 <http://www.gnu.org/licenses/>. */
-
-#include <sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr-power6.c>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/wcsrchr-power7.c b/sysdeps/powerpc/powerpc64/multiarch/wcsrchr-power7.c
deleted file mode 100644
index 35a56386d2..0000000000
--- a/sysdeps/powerpc/powerpc64/multiarch/wcsrchr-power7.c
+++ /dev/null
@@ -1,19 +0,0 @@
-/* wcsrchr.c - Wide Character Search for powerpc64/power7.
- Copyright (C) 2013-2018 Free Software 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 <http://www.gnu.org/licenses/>. */
-
-#include <sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr-power7.c>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/wcsrchr-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/wcsrchr-ppc64.c
deleted file mode 100644
index 708575042b..0000000000
--- a/sysdeps/powerpc/powerpc64/multiarch/wcsrchr-ppc64.c
+++ /dev/null
@@ -1,18 +0,0 @@
-/* Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr-ppc32.c>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/wcsrchr.c b/sysdeps/powerpc/powerpc64/multiarch/wcsrchr.c
deleted file mode 100644
index 06e4b61d11..0000000000
--- a/sysdeps/powerpc/powerpc64/multiarch/wcsrchr.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Multiple versions of wcsrchr.
- Copyright (C) 2013-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if IS_IN (libc)
-# include <wchar.h>
-# include <shlib-compat.h>
-# include "init-arch.h"
-
-extern __typeof (wcsrchr) __wcsrchr_ppc attribute_hidden;
-extern __typeof (wcsrchr) __wcsrchr_power6 attribute_hidden;
-extern __typeof (wcsrchr) __wcsrchr_power7 attribute_hidden;
-
-libc_ifunc (wcsrchr,
- (hwcap & PPC_FEATURE_HAS_VSX)
- ? __wcsrchr_power7 :
- (hwcap & PPC_FEATURE_ARCH_2_05)
- ? __wcsrchr_power6
- : __wcsrchr_ppc);
-#else
-#include <wcsmbs/wcsrchr.c>
-#endif
diff --git a/sysdeps/powerpc/powerpc64/multiarch/wordcopy-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/wordcopy-ppc64.c
index 486003f0c9..6363f3cf6d 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/wordcopy-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/wordcopy-ppc64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2013-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
@@ -13,6 +13,6 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/powerpc/powerpc32/power4/multiarch/wordcopy-ppc32.c>
diff --git a/sysdeps/powerpc/powerpc64/power4/memcmp.S b/sysdeps/powerpc/powerpc64/power4/memcmp.S
index e5319f101f..d030e79e27 100644
--- a/sysdeps/powerpc/powerpc64/power4/memcmp.S
+++ b/sysdeps/powerpc/powerpc64/power4/memcmp.S
@@ -1,5 +1,5 @@
/* Optimized memcmp implementation for PowerPC64.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
@@ -26,7 +26,14 @@
# define MEMCMP memcmp
#endif
+#ifndef __LITTLE_ENDIAN__
.machine power4
+#else
+/* Little endian is only available since POWER8, so it's safe to
+ specify .machine as power8 (or older), even though this is a POWER4
+ file. Since the little-endian code uses 'ldbrx', power7 is enough. */
+ .machine power7
+#endif
ENTRY_TOCLESS (MEMCMP, 4)
CALL_MCOUNT 3
diff --git a/sysdeps/powerpc/powerpc64/power4/memcpy.S b/sysdeps/powerpc/powerpc64/power4/memcpy.S
index ce074943f2..eef31bfc33 100644
--- a/sysdeps/powerpc/powerpc64/power4/memcpy.S
+++ b/sysdeps/powerpc/powerpc64/power4/memcpy.S
@@ -1,5 +1,5 @@
/* Optimized memcpy implementation for PowerPC64.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc64/power4/memset.S b/sysdeps/powerpc/powerpc64/power4/memset.S
index a8f0dfaa1a..099be24929 100644
--- a/sysdeps/powerpc/powerpc64/power4/memset.S
+++ b/sysdeps/powerpc/powerpc64/power4/memset.S
@@ -1,5 +1,5 @@
/* Optimized memset implementation for PowerPC64.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc64/power4/strncmp.S b/sysdeps/powerpc/powerpc64/power4/strncmp.S
index 73629e4191..a8c3c1c012 100644
--- a/sysdeps/powerpc/powerpc64/power4/strncmp.S
+++ b/sysdeps/powerpc/powerpc64/power4/strncmp.S
@@ -1,5 +1,5 @@
/* Optimized strcmp implementation for PowerPC64.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc64/power5+/fpu/s_ceil.S b/sysdeps/powerpc/powerpc64/power5+/fpu/s_ceil.S
deleted file mode 100644
index e500932573..0000000000
--- a/sysdeps/powerpc/powerpc64/power5+/fpu/s_ceil.S
+++ /dev/null
@@ -1,30 +0,0 @@
-/* ceil function. PowerPC64/power5+ version.
- Copyright (C) 2006-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-#include <libm-alias-double.h>
-
- .machine "power5"
-ENTRY_TOCLESS (__ceil, 4)
- CALL_MCOUNT 0
- frip fp1, fp1
- blr
- END (__ceil)
-
-libm_alias_double (__ceil, ceil)
diff --git a/sysdeps/powerpc/powerpc64/power5+/fpu/s_ceilf.S b/sysdeps/powerpc/powerpc64/power5+/fpu/s_ceilf.S
deleted file mode 100644
index d0b2118c2a..0000000000
--- a/sysdeps/powerpc/powerpc64/power5+/fpu/s_ceilf.S
+++ /dev/null
@@ -1,31 +0,0 @@
-/* ceilf function. PowerPC64/power5+ version.
- Copyright (C) 2006-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <libm-alias-float.h>
-
- .machine "power5"
-ENTRY_TOCLESS (__ceilf, 4)
- CALL_MCOUNT 0
- frip fp1, fp1 /* The rounding instructions are double. */
- frsp fp1, fp1 /* But we need to set ooverflow for float. */
- blr
- END (__ceilf)
-
-libm_alias_float (__ceil, ceil)
-
diff --git a/sysdeps/powerpc/powerpc64/power5+/fpu/s_floor.S b/sysdeps/powerpc/powerpc64/power5+/fpu/s_floor.S
deleted file mode 100644
index 9b9eb1529d..0000000000
--- a/sysdeps/powerpc/powerpc64/power5+/fpu/s_floor.S
+++ /dev/null
@@ -1,30 +0,0 @@
-/* floor function. PowerPC64/power5+ version.
- Copyright (C) 2006-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-#include <libm-alias-double.h>
-
- .machine "power5"
-ENTRY_TOCLESS (__floor, 4)
- CALL_MCOUNT 0
- frim fp1, fp1
- blr
- END (__floor)
-
-libm_alias_double (__floor, floor)
diff --git a/sysdeps/powerpc/powerpc64/power5+/fpu/s_floorf.S b/sysdeps/powerpc/powerpc64/power5+/fpu/s_floorf.S
deleted file mode 100644
index 790edbd9a4..0000000000
--- a/sysdeps/powerpc/powerpc64/power5+/fpu/s_floorf.S
+++ /dev/null
@@ -1,31 +0,0 @@
-/* floorf function. PowerPC64/power5+ version.
- Copyright (C) 2006-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <libm-alias-float.h>
-
- .machine "power5"
-ENTRY_TOCLESS (__floorf, 4)
- CALL_MCOUNT 0
- frim fp1, fp1 /* The rounding instructions are double. */
- frsp fp1, fp1 /* But we need to set ooverflow for float. */
- blr
- END (__floorf)
-
-libm_alias_float (__floor, floor)
-
diff --git a/sysdeps/powerpc/powerpc64/power5+/fpu/s_llround.S b/sysdeps/powerpc/powerpc64/power5+/fpu/s_llround.S
deleted file mode 100644
index 9fc4ec4a04..0000000000
--- a/sysdeps/powerpc/powerpc64/power5+/fpu/s_llround.S
+++ /dev/null
@@ -1,56 +0,0 @@
-/* llround function. POWER5+, PowerPC64 version.
- Copyright (C) 2006-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-#include <libm-alias-float.h>
-#include <libm-alias-double.h>
-
-/* long long [r3] llround (float x [fp1])
- IEEE 1003.1 llround function. IEEE specifies "round to the nearest
- integer value, rounding halfway cases away from zero, regardless of
- the current rounding mode." However PowerPC Architecture defines
- "round to Nearest" as "Choose the best approximation. In case of a
- tie, choose the one that is even (least significant bit o).".
- So we pre-round using the V2.02 Floating Round to Integer Nearest
- instruction before we use Floating Convert to Integer Word with
- round to zero instruction. */
-
- .machine "power5"
-ENTRY_TOCLESS (__llround, 4)
- CALL_MCOUNT 0
- frin fp2, fp1 /* Round to nearest +-0.5. */
- fctidz fp3, fp2 /* Convert To Integer DW round toward 0. */
- stfd fp3, -16(r1)
- nop /* Insure the following load is in a different dispatch group */
- nop /* to avoid pipe stall on POWER4&5. */
- nop
- ld r3, -16(r1)
- blr
- END (__llround)
-
-strong_alias (__llround, __lround)
-libm_alias_double (__llround, llround)
-libm_alias_double (__lround, lround)
-/* The double version also works for single-precision as both float and
- double parameters are passed in 64bit FPRs and both versions are expected
- to return [long] long type. */
-strong_alias (__llround, __llroundf)
-libm_alias_float (__llround, llround)
-strong_alias (__lround, __lroundf)
-libm_alias_float (__lround, lround)
diff --git a/sysdeps/powerpc/powerpc64/power5+/fpu/s_llroundf.S b/sysdeps/powerpc/powerpc64/power5+/fpu/s_llroundf.S
deleted file mode 100644
index 9ea6bd105b..0000000000
--- a/sysdeps/powerpc/powerpc64/power5+/fpu/s_llroundf.S
+++ /dev/null
@@ -1 +0,0 @@
-/* __lroundf is in s_llround.S. */
diff --git a/sysdeps/powerpc/powerpc64/power5+/fpu/s_round.S b/sysdeps/powerpc/powerpc64/power5+/fpu/s_round.S
deleted file mode 100644
index ed4df257d3..0000000000
--- a/sysdeps/powerpc/powerpc64/power5+/fpu/s_round.S
+++ /dev/null
@@ -1,30 +0,0 @@
-/* round function. PowerPC64/power5+ version.
- Copyright (C) 2006-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-#include <libm-alias-double.h>
-
- .machine "power5"
-ENTRY_TOCLESS (__round, 4)
- CALL_MCOUNT 0
- frin fp1, fp1
- blr
- END (__round)
-
-libm_alias_double (__round, round)
diff --git a/sysdeps/powerpc/powerpc64/power5+/fpu/s_roundf.S b/sysdeps/powerpc/powerpc64/power5+/fpu/s_roundf.S
deleted file mode 100644
index 32df46059a..0000000000
--- a/sysdeps/powerpc/powerpc64/power5+/fpu/s_roundf.S
+++ /dev/null
@@ -1,31 +0,0 @@
-/* roundf function. PowerPC64/power5+ version.
- Copyright (C) 2006-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <libm-alias-float.h>
-
- .machine "power5"
-ENTRY_TOCLESS (__roundf, 4)
- CALL_MCOUNT 0
- frin fp1, fp1 /* The rounding instructions are double. */
- frsp fp1, fp1 /* But we need to set ooverflow for float. */
- blr
- END (__roundf)
-
-libm_alias_float (__round, round)
-
diff --git a/sysdeps/powerpc/powerpc64/power5+/fpu/s_trunc.S b/sysdeps/powerpc/powerpc64/power5+/fpu/s_trunc.S
deleted file mode 100644
index a45766582a..0000000000
--- a/sysdeps/powerpc/powerpc64/power5+/fpu/s_trunc.S
+++ /dev/null
@@ -1,30 +0,0 @@
-/* trunc function. PowerPC64/power5+ version.
- Copyright (C) 2006-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-#include <libm-alias-double.h>
-
- .machine "power5"
-ENTRY_TOCLESS (__trunc, 4)
- CALL_MCOUNT 0
- friz fp1, fp1
- blr
- END (__trunc)
-
-libm_alias_double (__trunc, trunc)
diff --git a/sysdeps/powerpc/powerpc64/power5+/fpu/s_truncf.S b/sysdeps/powerpc/powerpc64/power5+/fpu/s_truncf.S
deleted file mode 100644
index f06f54f163..0000000000
--- a/sysdeps/powerpc/powerpc64/power5+/fpu/s_truncf.S
+++ /dev/null
@@ -1,31 +0,0 @@
-/* truncf function. PowerPC64/power5+ version.
- Copyright (C) 2006-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <libm-alias-float.h>
-
- .machine "power5"
-ENTRY_TOCLESS (__truncf, 4)
- CALL_MCOUNT 0
- friz fp1, fp1 /* The rounding instructions are double. */
- frsp fp1, fp1 /* But we need to set ooverflow for float. */
- blr
- END (__truncf)
-
-libm_alias_float (__trunc, trunc)
-
diff --git a/sysdeps/powerpc/powerpc64/power5/fpu/s_isnan.S b/sysdeps/powerpc/powerpc64/power5/fpu/s_isnan.S
deleted file mode 100644
index 83b5657b75..0000000000
--- a/sysdeps/powerpc/powerpc64/power5/fpu/s_isnan.S
+++ /dev/null
@@ -1,60 +0,0 @@
-/* isnan(). PowerPC64 version.
- Copyright (C) 2008-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-/* int __isnan(x) */
- .machine power5
-ENTRY_TOCLESS (__isnan, 4)
- CALL_MCOUNT 0
- stfd fp1,-8(r1) /* copy FPR to GPR */
- lis r0,0x7ff0
- nop /* insure the following is in a different */
- nop /* dispatch group */
- ld r4,-8(r1)
- sldi r0,r0,32 /* const long r0 0x7ff00000 00000000 */
- clrldi r4,r4,1 /* x = fabs(x) */
- cmpd cr7,r4,r0 /* if (fabs(x) <= inf) */
- li r3,0 /* then return 0 */
- blelr+ cr7
- li r3,1 /* else return 1 */
- blr
- END (__isnan)
-
-hidden_def (__isnan)
-weak_alias (__isnan, isnan)
-
-/* It turns out that the 'double' version will also always work for
- single-precision. */
-strong_alias (__isnan, __isnanf)
-hidden_def (__isnanf)
-weak_alias (__isnanf, isnanf)
-
-#ifdef NO_LONG_DOUBLE
-strong_alias (__isnan, __isnanl)
-weak_alias (__isnan, isnanl)
-#endif
-
-#if !IS_IN (libm)
-# if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
-compat_symbol (libc, __isnan, __isnanl, GLIBC_2_0);
-compat_symbol (libc, isnan, isnanl, GLIBC_2_0);
-# endif
-#endif
-
diff --git a/sysdeps/powerpc/powerpc64/power6/fpu/s_copysign.S b/sysdeps/powerpc/powerpc64/power6/fpu/s_copysign.S
deleted file mode 100644
index 03e8bedb67..0000000000
--- a/sysdeps/powerpc/powerpc64/power6/fpu/s_copysign.S
+++ /dev/null
@@ -1,49 +0,0 @@
-/* copysign(). PowerPC64/POWER6 version.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
- Contributed by Luis Machado <luisgpm@br.ibm.com>.
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-#include <libm-alias-float.h>
-#include <libm-alias-double.h>
-
-/* double [f1] copysign (double [f1] x, double [f2] y);
- copysign(x,y) returns a value with the magnitude of x and
- with the sign bit of y. */
-
- .section ".text"
- .type __copysign, @function
- .machine power6
-ENTRY_TOCLESS (__copysign, 4)
- CALL_MCOUNT 0
- fcpsgn fp1,fp2,fp1
- blr
-END (__copysign)
-
-hidden_def (__copysign)
-libm_alias_double (__copysign, copysign)
-
-/* It turns out that the 'double' version will also always work for
- single-precision. */
-strong_alias (__copysign, __copysignf)
-hidden_def (__copysignf)
-libm_alias_float (__copysign, copysign)
-
-#if LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)
-compat_symbol (libc, copysign, copysignl, GLIBC_2_0);
-#endif
diff --git a/sysdeps/powerpc/powerpc64/power6/fpu/s_copysignf.S b/sysdeps/powerpc/powerpc64/power6/fpu/s_copysignf.S
deleted file mode 100644
index d4aa702d07..0000000000
--- a/sysdeps/powerpc/powerpc64/power6/fpu/s_copysignf.S
+++ /dev/null
@@ -1 +0,0 @@
-/* This function uses the same code as s_copysign.S. */
diff --git a/sysdeps/powerpc/powerpc64/power6/fpu/s_isnan.S b/sysdeps/powerpc/powerpc64/power6/fpu/s_isnan.S
deleted file mode 100644
index 6296c944b5..0000000000
--- a/sysdeps/powerpc/powerpc64/power6/fpu/s_isnan.S
+++ /dev/null
@@ -1,59 +0,0 @@
-/* isnan(). PowerPC64 version.
- Copyright (C) 2008-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-/* int __isnan(x) */
- .machine power6
-ENTRY_TOCLESS (__isnan, 4)
- CALL_MCOUNT 0
- stfd fp1,-8(r1) /* copy FPR to GPR */
- ori r1,r1,0
- ld r4,-8(r1)
- lis r0,0x7ff0
- sldi r0,r0,32 /* const long r0 0x7ff00000 00000000 */
- clrldi r4,r4,1 /* x = fabs(x) */
- cmpd cr7,r4,r0 /* if (fabs(x) <= inf) */
- li r3,0 /* then return 0 */
- blelr+ cr7
- li r3,1 /* else return 1 */
- blr
- END (__isnan)
-
-hidden_def (__isnan)
-weak_alias (__isnan, isnan)
-
-/* It turns out that the 'double' version will also always work for
- single-precision. */
-strong_alias (__isnan, __isnanf)
-hidden_def (__isnanf)
-weak_alias (__isnanf, isnanf)
-
-#ifdef NO_LONG_DOUBLE
-strong_alias (__isnan, __isnanl)
-weak_alias (__isnan, isnanl)
-#endif
-
-#if !IS_IN (libm)
-# if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
-compat_symbol (libc, __isnan, __isnanl, GLIBC_2_0);
-compat_symbol (libc, isnan, isnanl, GLIBC_2_0);
-# endif
-#endif
-
diff --git a/sysdeps/powerpc/powerpc64/power6/memcpy.S b/sysdeps/powerpc/powerpc64/power6/memcpy.S
index 9356867568..89d36316e6 100644
--- a/sysdeps/powerpc/powerpc64/power6/memcpy.S
+++ b/sysdeps/powerpc/powerpc64/power6/memcpy.S
@@ -1,5 +1,5 @@
/* Optimized memcpy implementation for PowerPC64.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc64/power6/memset.S b/sysdeps/powerpc/powerpc64/power6/memset.S
index 3901e33da2..ff768a7fa8 100644
--- a/sysdeps/powerpc/powerpc64/power6/memset.S
+++ b/sysdeps/powerpc/powerpc64/power6/memset.S
@@ -1,5 +1,5 @@
/* Optimized 64-bit memset implementation for POWER6.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc64/power6/wcschr.c b/sysdeps/powerpc/powerpc64/power6/wcschr.c
deleted file mode 100644
index ae04a130cc..0000000000
--- a/sysdeps/powerpc/powerpc64/power6/wcschr.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/powerpc/power6/wcschr.c>
diff --git a/sysdeps/powerpc/powerpc64/power6/wcscpy.c b/sysdeps/powerpc/powerpc64/power6/wcscpy.c
deleted file mode 100644
index 722c8f995b..0000000000
--- a/sysdeps/powerpc/powerpc64/power6/wcscpy.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/powerpc/power6/wcscpy.c>
diff --git a/sysdeps/powerpc/powerpc64/power6/wcsrchr.c b/sysdeps/powerpc/powerpc64/power6/wcsrchr.c
deleted file mode 100644
index b86472d7bd..0000000000
--- a/sysdeps/powerpc/powerpc64/power6/wcsrchr.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/powerpc/power6/wcsrchr.c>
diff --git a/sysdeps/powerpc/powerpc64/power6x/fpu/s_isnan.S b/sysdeps/powerpc/powerpc64/power6x/fpu/s_isnan.S
deleted file mode 100644
index 96d0695ed2..0000000000
--- a/sysdeps/powerpc/powerpc64/power6x/fpu/s_isnan.S
+++ /dev/null
@@ -1,58 +0,0 @@
-/* isnan(). PowerPC64 version.
- Copyright (C) 2008-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-/* int __isnan(x) */
- .machine power6
-ENTRY_TOCLESS (__isnan, 4)
- CALL_MCOUNT 0
- mftgpr r4,fp1 /* copy FPR to GPR */
- lis r0,0x7ff0
- ori r1,r1,0
- clrldi r4,r4,1 /* x = fabs(x) */
- sldi r0,r0,32 /* const long r0 0x7ff00000 00000000 */
- cmpd cr7,r4,r0 /* if (fabs(x) <= inf) */
- li r3,0 /* then return 0 */
- blelr+ cr7
- li r3,1 /* else return 1 */
- blr
- END (__isnan)
-
-hidden_def (__isnan)
-weak_alias (__isnan, isnan)
-
-/* It turns out that the 'double' version will also always work for
- single-precision. */
-strong_alias (__isnan, __isnanf)
-hidden_def (__isnanf)
-weak_alias (__isnanf, isnanf)
-
-#ifdef NO_LONG_DOUBLE
-strong_alias (__isnan, __isnanl)
-weak_alias (__isnan, isnanl)
-#endif
-
-#if !IS_IN (libm)
-# if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
-compat_symbol (libc, __isnan, __isnanl, GLIBC_2_0);
-compat_symbol (libc, isnan, isnanl, GLIBC_2_0);
-# endif
-#endif
-
diff --git a/sysdeps/powerpc/powerpc64/power6x/fpu/s_llrint.S b/sysdeps/powerpc/powerpc64/power6x/fpu/s_llrint.S
deleted file mode 100644
index 36980be13f..0000000000
--- a/sysdeps/powerpc/powerpc64/power6x/fpu/s_llrint.S
+++ /dev/null
@@ -1,42 +0,0 @@
-/* Round double to long int. POWER6x PowerPC64 version.
- Copyright (C) 2006-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-#include <libm-alias-float.h>
-#include <libm-alias-double.h>
-
- .machine "power6"
-/* long long int[r3] __llrint (double x[fp1]) */
-ENTRY_TOCLESS (__llrint)
- CALL_MCOUNT 0
- fctid fp13,fp1
- mftgpr r3,fp13
- blr
- END (__llrint)
-
-strong_alias (__llrint, __lrint)
-libm_alias_double (__llrint, llrint)
-libm_alias_double (__lrint, lrint)
-/* The double version also works for single-precision as both float and
- double parameters are passed in 64bit FPRs and both versions are expected
- to return [long] long type. */
-strong_alias (__llrint, __llrintf)
-libm_alias_float (__llrint, llrint)
-strong_alias (__lrint, __lrintf)
-libm_alias_float (__lrint, lrint)
diff --git a/sysdeps/powerpc/powerpc64/power6x/fpu/s_llround.S b/sysdeps/powerpc/powerpc64/power6x/fpu/s_llround.S
deleted file mode 100644
index 605f55ed5f..0000000000
--- a/sysdeps/powerpc/powerpc64/power6x/fpu/s_llround.S
+++ /dev/null
@@ -1,52 +0,0 @@
-/* llround function. POWER6x PowerPC64 version.
- Copyright (C) 2006-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-#include <libm-alias-float.h>
-#include <libm-alias-double.h>
-
-/* long long [r3] llround (float x [fp1])
- IEEE 1003.1 llround function. IEEE specifies "round to the nearest
- integer value, rounding halfway cases away from zero, regardless of
- the current rounding mode." However PowerPC Architecture defines
- "round to Nearest" as "Choose the best approximation. In case of a
- tie, choose the one that is even (least significant bit o).".
- So we pre-round using the V2.02 Floating Round to Integer Nearest
- instruction before we use Floating Convert to Integer Word with
- round to zero instruction. */
-
- .machine "power6"
-ENTRY_TOCLESS (__llround)
- CALL_MCOUNT 0
- frin fp2,fp1 /* Round to nearest +-0.5. */
- fctidz fp3,fp2 /* Convert To Integer DW round toward 0. */
- mftgpr r3,fp3 /* Transfer integer to R3. */
- blr
- END (__llround)
-
-strong_alias (__llround, __lround)
-libm_alias_double (__llround, llround)
-libm_alias_double (__lround, lround)
-/* The double version also works for single-precision as both float and
- double parameters are passed in 64bit FPRs and both versions are expected
- to return [long] long type. */
-strong_alias (__llround, __llroundf)
-libm_alias_float (__llround, llround)
-strong_alias (__lround, __lroundf)
-libm_alias_float (__lround, lround)
diff --git a/sysdeps/powerpc/powerpc64/power6x/fpu/s_llroundf.S b/sysdeps/powerpc/powerpc64/power6x/fpu/s_llroundf.S
deleted file mode 100644
index 9ea6bd105b..0000000000
--- a/sysdeps/powerpc/powerpc64/power6x/fpu/s_llroundf.S
+++ /dev/null
@@ -1 +0,0 @@
-/* __lroundf is in s_llround.S. */
diff --git a/sysdeps/powerpc/powerpc64/power7/add_n.S b/sysdeps/powerpc/powerpc64/power7/add_n.S
index 1306e5aa2f..ce3de3a56f 100644
--- a/sysdeps/powerpc/powerpc64/power7/add_n.S
+++ b/sysdeps/powerpc/powerpc64/power7/add_n.S
@@ -1,6 +1,6 @@
/* PowerPC64 mpn_lshift -- mpn_add_n/mpn_sub_n -- mpn addition and
subtraction.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc64/power7/fpu/s_finite.S b/sysdeps/powerpc/powerpc64/power7/fpu/s_finite.S
deleted file mode 100644
index 78e3bdef80..0000000000
--- a/sysdeps/powerpc/powerpc64/power7/fpu/s_finite.S
+++ /dev/null
@@ -1,70 +0,0 @@
-/* finite(). PowerPC64/POWER7 version.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
- Contributed by Luis Machado <luisgpm@br.ibm.com>.
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-/* int __finite(x) */
- .section ".toc","aw"
-.LC0: /* 1.0 */
- .tc FD_ONE[TC],0x3ff0000000000000
- .section ".text"
- .type __finite, @function
- .machine power7
-ENTRY (__finite, 4)
- CALL_MCOUNT 0
- lfd fp0,.LC0@toc(r2)
- ftdiv cr7,fp1,fp0
- li r3,1
- bflr 30
-
- /* If we are here, we either have +/-INF,
- NaN or denormal. */
-
- stfd fp1,-16(r1) /* Transfer FP to GPR's. */
- ori 2,2,0 /* Force a new dispatch group. */
- lhz r4,-16+HISHORT(r1) /* Fetch the upper 16 bits of the FP value
- (biased exponent and sign bit). */
- clrlwi r4,r4,17 /* r4 = abs(r4). */
- cmpwi cr7,r4,0x7ff0 /* r4 == 0x7ff0? */
- bltlr cr7 /* LT means finite, other non-finite. */
- li r3,0
- blr
- END (__finite)
-
-hidden_def (__finite)
-weak_alias (__finite, finite)
-
-/* It turns out that the 'double' version will also always work for
- single-precision. */
-strong_alias (__finite, __finitef)
-hidden_def (__finitef)
-weak_alias (__finitef, finitef)
-
-#if IS_IN (libm)
-# if LONG_DOUBLE_COMPAT (libm, GLIBC_2_0)
-compat_symbol (libm, __finite, __finitel, GLIBC_2_0)
-compat_symbol (libm, finite, finitel, GLIBC_2_0)
-# endif
-#else
-# if LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)
-compat_symbol (libc, __finite, __finitel, GLIBC_2_0);
-compat_symbol (libc, finite, finitel, GLIBC_2_0);
-# endif
-#endif
diff --git a/sysdeps/powerpc/powerpc64/power7/fpu/s_finitef.S b/sysdeps/powerpc/powerpc64/power7/fpu/s_finitef.S
deleted file mode 100644
index 54bd94176d..0000000000
--- a/sysdeps/powerpc/powerpc64/power7/fpu/s_finitef.S
+++ /dev/null
@@ -1 +0,0 @@
-/* This function uses the same code as s_finite.S. */
diff --git a/sysdeps/powerpc/powerpc64/power7/fpu/s_isinf.S b/sysdeps/powerpc/powerpc64/power7/fpu/s_isinf.S
deleted file mode 100644
index 0fbb99d64d..0000000000
--- a/sysdeps/powerpc/powerpc64/power7/fpu/s_isinf.S
+++ /dev/null
@@ -1,69 +0,0 @@
-/* isinf(). PowerPC64/POWER7 version.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
- Contributed by Luis Machado <luisgpm@br.ibm.com>.
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-/* int __isinf(x) */
- .section ".toc","aw"
-.LC0: /* 1.0 */
- .tc FD_ONE[TC],0x3ff0000000000000
- .section ".text"
- .type __isinf, @function
- .machine power7
-ENTRY (__isinf, 4)
- CALL_MCOUNT 0
- lfd fp0,.LC0@toc(r2)
- ftdiv cr7,fp1,fp0
- li r3,0
- bflr 29 /* If not INF, return. */
-
- /* Either we have -INF/+INF or a denormal. */
-
- stfd fp1,-16(r1) /* Transfer FP to GPR's. */
- ori 2,2,0 /* Force a new dispatch group. */
- lhz r4,-16+HISHORT(r1) /* Fetch the upper 16 bits of the FP value
- (biased exponent and sign bit). */
- cmpwi cr7,r4,0x7ff0 /* r4 == 0x7ff0? */
- li r3,1
- beqlr cr7 /* EQ means INF, otherwise -INF. */
- li r3,-1
- blr
- END (__isinf)
-
-hidden_def (__isinf)
-weak_alias (__isinf, isinf)
-
-/* It turns out that the 'double' version will also always work for
- single-precision. */
-strong_alias (__isinf, __isinff)
-hidden_def (__isinff)
-weak_alias (__isinff, isinff)
-
-#ifdef NO_LONG_DOUBLE
-strong_alias (__isinf, __isinfl)
-weak_alias (__isinf, isinfl)
-#endif
-
-#if !IS_IN (libm)
-# if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
-compat_symbol (libc, __isinf, __isinfl, GLIBC_2_0);
-compat_symbol (libc, isinf, isinfl, GLIBC_2_0);
-# endif
-#endif
diff --git a/sysdeps/powerpc/powerpc64/power7/fpu/s_isinff.S b/sysdeps/powerpc/powerpc64/power7/fpu/s_isinff.S
deleted file mode 100644
index be759e091e..0000000000
--- a/sysdeps/powerpc/powerpc64/power7/fpu/s_isinff.S
+++ /dev/null
@@ -1 +0,0 @@
-/* This function uses the same code as s_isinf.S. */
diff --git a/sysdeps/powerpc/powerpc64/power7/fpu/s_isnan.S b/sysdeps/powerpc/powerpc64/power7/fpu/s_isnan.S
deleted file mode 100644
index 3f675d7e58..0000000000
--- a/sysdeps/powerpc/powerpc64/power7/fpu/s_isnan.S
+++ /dev/null
@@ -1,68 +0,0 @@
-/* isnan(). PowerPC64/POWER7 version.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
- Contributed by Luis Machado <luisgpm@br.ibm.com>.
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-/* int __isnan(x) */
- .section ".toc","aw"
-.LC0: /* 1.0 */
- .tc FD_ONE[TC],0x3ff0000000000000
- .section ".text"
- .type __isnan, @function
- .machine power7
-ENTRY (__isnan, 4)
- CALL_MCOUNT 0
- lfd fp0,.LC0@toc(r2)
- ftdiv cr7,fp1,fp0
- li r3,0
- bflr 30 /* If not NaN, finish. */
-
- stfd fp1,-16(r1) /* Transfer FP to GPR's. */
- ori 2,2,0 /* Force a new dispatch group. */
- ld r4,-16(r1) /* Load FP into GPR. */
- lis r0,0x7ff0
- sldi r0,r0,32 /* const long r0 0x7ff00000 00000000. */
- clrldi r4,r4,1 /* x = fabs(x) */
- cmpd cr7,r4,r0 /* if (fabs(x) <= inf) */
- blelr cr7 /* LE means not NaN. */
- li r3,1 /* else return 1 */
- blr
- END (__isnan)
-
-hidden_def (__isnan)
-weak_alias (__isnan, isnan)
-
-/* It turns out that the 'double' version will also always work for
- single-precision. */
-strong_alias (__isnan, __isnanf)
-hidden_def (__isnanf)
-weak_alias (__isnanf, isnanf)
-
-#ifdef NO_LONG_DOUBLE
-strong_alias (__isnan, __isnanl)
-weak_alias (__isnan, isnanl)
-#endif
-
-#if !IS_IN (libm)
-# if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
-compat_symbol (libc, __isnan, __isnanl, GLIBC_2_0);
-compat_symbol (libc, isnan, isnanl, GLIBC_2_0);
-# endif
-#endif
diff --git a/sysdeps/powerpc/powerpc64/power7/fpu/s_isnanf.S b/sysdeps/powerpc/powerpc64/power7/fpu/s_isnanf.S
deleted file mode 100644
index b48c85e0d3..0000000000
--- a/sysdeps/powerpc/powerpc64/power7/fpu/s_isnanf.S
+++ /dev/null
@@ -1 +0,0 @@
-/* This function uses the same code as s_isnan.S. */
diff --git a/sysdeps/powerpc/powerpc64/power7/fpu/s_logb.c b/sysdeps/powerpc/powerpc64/power7/fpu/s_logb.c
deleted file mode 100644
index 2599c771d9..0000000000
--- a/sysdeps/powerpc/powerpc64/power7/fpu/s_logb.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/powerpc/power7/fpu/s_logb.c>
diff --git a/sysdeps/powerpc/powerpc64/power7/fpu/s_logbf.c b/sysdeps/powerpc/powerpc64/power7/fpu/s_logbf.c
deleted file mode 100644
index 7a5a8032e0..0000000000
--- a/sysdeps/powerpc/powerpc64/power7/fpu/s_logbf.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/powerpc/power7/fpu/s_logbf.c>
diff --git a/sysdeps/powerpc/powerpc64/power7/fpu/s_logbl.c b/sysdeps/powerpc/powerpc64/power7/fpu/s_logbl.c
deleted file mode 100644
index 524ae2c78d..0000000000
--- a/sysdeps/powerpc/powerpc64/power7/fpu/s_logbl.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/powerpc/power7/fpu/s_logbl.c>
diff --git a/sysdeps/powerpc/powerpc64/power7/memchr.S b/sysdeps/powerpc/powerpc64/power7/memchr.S
index 9ab5ab2099..ab1d09e908 100644
--- a/sysdeps/powerpc/powerpc64/power7/memchr.S
+++ b/sysdeps/powerpc/powerpc64/power7/memchr.S
@@ -1,5 +1,5 @@
/* Optimized memchr implementation for PowerPC64/POWER7 using cmpb insn.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by Luis Machado <luisgpm@br.ibm.com>.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc64/power7/memcmp.S b/sysdeps/powerpc/powerpc64/power7/memcmp.S
index 91acdfbd92..886fdd213f 100644
--- a/sysdeps/powerpc/powerpc64/power7/memcmp.S
+++ b/sysdeps/powerpc/powerpc64/power7/memcmp.S
@@ -1,5 +1,5 @@
/* Optimized memcmp implementation for POWER7/PowerPC64.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc64/power7/memcpy.S b/sysdeps/powerpc/powerpc64/power7/memcpy.S
index 3d8629ca65..3f2b829daf 100644
--- a/sysdeps/powerpc/powerpc64/power7/memcpy.S
+++ b/sysdeps/powerpc/powerpc64/power7/memcpy.S
@@ -1,5 +1,5 @@
/* Optimized memcpy implementation for PowerPC64/POWER7.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by Luis Machado <luisgpm@br.ibm.com>.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc64/power7/memmove.S b/sysdeps/powerpc/powerpc64/power7/memmove.S
index b7f3dc28d1..81212250cb 100644
--- a/sysdeps/powerpc/powerpc64/power7/memmove.S
+++ b/sysdeps/powerpc/powerpc64/power7/memmove.S
@@ -1,5 +1,5 @@
/* Optimized memmove implementation for PowerPC64/POWER7.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc64/power7/mempcpy.S b/sysdeps/powerpc/powerpc64/power7/mempcpy.S
index 7f5a4745ef..0ceac40412 100644
--- a/sysdeps/powerpc/powerpc64/power7/mempcpy.S
+++ b/sysdeps/powerpc/powerpc64/power7/mempcpy.S
@@ -1,5 +1,5 @@
/* Optimized mempcpy implementation for POWER7.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by Luis Machado <luisgpm@br.ibm.com>.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc64/power7/memrchr.S b/sysdeps/powerpc/powerpc64/power7/memrchr.S
index 583d513c4c..fa46f8d656 100644
--- a/sysdeps/powerpc/powerpc64/power7/memrchr.S
+++ b/sysdeps/powerpc/powerpc64/power7/memrchr.S
@@ -1,5 +1,5 @@
/* Optimized memrchr implementation for PowerPC64/POWER7 using cmpb insn.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by Luis Machado <luisgpm@br.ibm.com>.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc64/power7/memset.S b/sysdeps/powerpc/powerpc64/power7/memset.S
index acd0adfb78..2520efbd04 100644
--- a/sysdeps/powerpc/powerpc64/power7/memset.S
+++ b/sysdeps/powerpc/powerpc64/power7/memset.S
@@ -1,5 +1,5 @@
/* Optimized memset implementation for PowerPC64/POWER7.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by Luis Machado <luisgpm@br.ibm.com>.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc64/power7/rawmemchr.S b/sysdeps/powerpc/powerpc64/power7/rawmemchr.S
index 6ada0ebb30..a84d470e44 100644
--- a/sysdeps/powerpc/powerpc64/power7/rawmemchr.S
+++ b/sysdeps/powerpc/powerpc64/power7/rawmemchr.S
@@ -1,5 +1,5 @@
/* Optimized rawmemchr implementation for PowerPC64/POWER7 using cmpb insn.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by Luis Machado <luisgpm@br.ibm.com>.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc64/power7/stpncpy.S b/sysdeps/powerpc/powerpc64/power7/stpncpy.S
index 279ce83973..168f902c09 100644
--- a/sysdeps/powerpc/powerpc64/power7/stpncpy.S
+++ b/sysdeps/powerpc/powerpc64/power7/stpncpy.S
@@ -1,5 +1,5 @@
/* Optimized stpncpy implementation for PowerPC64/POWER7.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define USE_AS_STPNCPY
#include <sysdeps/powerpc/powerpc64/power7/strncpy.S>
diff --git a/sysdeps/powerpc/powerpc64/power7/strcasecmp.S b/sysdeps/powerpc/powerpc64/power7/strcasecmp.S
index 1d4bc61137..51f19a6e65 100644
--- a/sysdeps/powerpc/powerpc64/power7/strcasecmp.S
+++ b/sysdeps/powerpc/powerpc64/power7/strcasecmp.S
@@ -1,5 +1,5 @@
/* Optimized strcasecmp implementation for PowerPC64.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ 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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <locale-defines.h>
diff --git a/sysdeps/powerpc/powerpc64/power7/strchr.S b/sysdeps/powerpc/powerpc64/power7/strchr.S
index da648b2749..8d5043c18d 100644
--- a/sysdeps/powerpc/powerpc64/power7/strchr.S
+++ b/sysdeps/powerpc/powerpc64/power7/strchr.S
@@ -1,5 +1,5 @@
/* Optimized strchr implementation for PowerPC64/POWER7 using cmpb insn.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by Luis Machado <luisgpm@br.ibm.com>.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc64/power7/strchrnul.S b/sysdeps/powerpc/powerpc64/power7/strchrnul.S
index f137174701..b1e644b406 100644
--- a/sysdeps/powerpc/powerpc64/power7/strchrnul.S
+++ b/sysdeps/powerpc/powerpc64/power7/strchrnul.S
@@ -1,5 +1,5 @@
/* Optimized strchrnul implementation for PowerPC64/POWER7 using cmpb insn.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by Luis Machado <luisgpm@br.ibm.com>.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc64/power7/strcmp.S b/sysdeps/powerpc/powerpc64/power7/strcmp.S
index c3d5ec1090..38d8925fd9 100644
--- a/sysdeps/powerpc/powerpc64/power7/strcmp.S
+++ b/sysdeps/powerpc/powerpc64/power7/strcmp.S
@@ -1,5 +1,5 @@
/* Optimized strcmp implementation for Power7 using 'cmpb' instruction
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* The optimization is achieved here through cmpb instruction.
8byte aligned strings are processed with double word comparision
diff --git a/sysdeps/powerpc/powerpc64/power7/strlen.S b/sysdeps/powerpc/powerpc64/power7/strlen.S
index 9758089a15..a05303d835 100644
--- a/sysdeps/powerpc/powerpc64/power7/strlen.S
+++ b/sysdeps/powerpc/powerpc64/power7/strlen.S
@@ -1,5 +1,5 @@
/* Optimized strlen implementation for PowerPC64/POWER7 using cmpb insn.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by Luis Machado <luisgpm@br.ibm.com>.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc64/power7/strncmp.S b/sysdeps/powerpc/powerpc64/power7/strncmp.S
index 0c7429d19f..ce49101fb1 100644
--- a/sysdeps/powerpc/powerpc64/power7/strncmp.S
+++ b/sysdeps/powerpc/powerpc64/power7/strncmp.S
@@ -1,5 +1,5 @@
/* Optimized strcmp implementation for POWER7/PowerPC64.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
@@ -28,6 +28,7 @@
const char *s2 [r4],
size_t size [r5]) */
+ .machine power7
ENTRY_TOCLESS (STRNCMP, 5)
CALL_MCOUNT 3
diff --git a/sysdeps/powerpc/powerpc64/power7/strncpy.S b/sysdeps/powerpc/powerpc64/power7/strncpy.S
index 1965f82a2b..8b7a15d90d 100644
--- a/sysdeps/powerpc/powerpc64/power7/strncpy.S
+++ b/sysdeps/powerpc/powerpc64/power7/strncpy.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2014-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc64/power7/strnlen.S b/sysdeps/powerpc/powerpc64/power7/strnlen.S
index 3097cac1fb..d37bea6f68 100644
--- a/sysdeps/powerpc/powerpc64/power7/strnlen.S
+++ b/sysdeps/powerpc/powerpc64/power7/strnlen.S
@@ -1,5 +1,5 @@
/* Optimized strnlen implementation for PowerPC64/POWER7 using cmpb insn.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by Luis Machado <luisgpm@br.ibm.com>.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc64/power7/strrchr.S b/sysdeps/powerpc/powerpc64/power7/strrchr.S
index e47e3d4188..400a0b1425 100644
--- a/sysdeps/powerpc/powerpc64/power7/strrchr.S
+++ b/sysdeps/powerpc/powerpc64/power7/strrchr.S
@@ -1,5 +1,5 @@
/* Optimized strrchr implementation for PowerPC64/POWER7 using cmpb insn.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc64/power7/strstr-ppc64.c b/sysdeps/powerpc/powerpc64/power7/strstr-ppc64.c
index 7559733c7c..55b6fb2284 100644
--- a/sysdeps/powerpc/powerpc64/power7/strstr-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/power7/strstr-ppc64.c
@@ -1,5 +1,5 @@
/* Optimized strstr implementation for PowerPC64/POWER7.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/sysdeps/powerpc/powerpc64/power7/strstr.S b/sysdeps/powerpc/powerpc64/power7/strstr.S
index ac92f9c517..6be198d5c0 100644
--- a/sysdeps/powerpc/powerpc64/power7/strstr.S
+++ b/sysdeps/powerpc/powerpc64/power7/strstr.S
@@ -1,5 +1,5 @@
/* Optimized strstr implementation for PowerPC64/POWER7.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc64/power7/sub_n.S b/sysdeps/powerpc/powerpc64/power7/sub_n.S
index 283e0cac6c..3c0cdce4f8 100644
--- a/sysdeps/powerpc/powerpc64/power7/sub_n.S
+++ b/sysdeps/powerpc/powerpc64/power7/sub_n.S
@@ -1,6 +1,6 @@
/* PowerPC64 mpn_lshift -- mpn_add_n/mpn_sub_n -- mpn addition and
subtraction.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc64/power8/fpu/e_expf.S b/sysdeps/powerpc/powerpc64/power8/fpu/e_expf.S
deleted file mode 100644
index 32ee8326e1..0000000000
--- a/sysdeps/powerpc/powerpc64/power8/fpu/e_expf.S
+++ /dev/null
@@ -1,303 +0,0 @@
-/* Optimized expf(). PowerPC64/POWER8 version.
- Copyright (C) 2016-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-
-/* Short algorithm description:
- *
- * Let K = 64 (table size).
- * e^x = 2^(x/log(2)) = 2^n * T[j] * (1 + P(y))
- * where:
- * x = m*log(2)/K + y, y in [0.0..log(2)/K]
- * m = n*K + j, m,n,j - signed integer, j in [0..K-1]
- * values of 2^(j/K) are tabulated as T[j].
- *
- * P(y) is a minimax polynomial approximation of expf(y)-1
- * on small interval [0.0..log(2)/K].
- *
- * P(y) = P3*y*y*y*y + P2*y*y*y + P1*y*y + P0*y, calculated as
- * z = y*y; P(y) = (P3*z + P1)*z + (P2*z + P0)*y
- *
- * Special cases:
- * expf(NaN) = NaN
- * expf(+INF) = +INF
- * expf(-INF) = 0
- * expf(x) = 1 for subnormals
- * for finite argument, only expf(0)=1 is exact
- * expf(x) overflows if x>88.7228317260742190
- * expf(x) underflows if x<-103.972076416015620
- */
-
-#define C1 0x42ad496b /* Single precision 125*log(2). */
-#define C2 0x31800000 /* Single precision 2^(-28). */
-#define SP_INF 0x7f800000 /* Single precision Inf. */
-#define SP_EXP_BIAS 0x1fc0 /* Single precision exponent bias. */
-
-#define DATA_OFFSET r9
-
-/* Implements the function
-
- float [fp1] expf (float [fp1] x) */
-
- .machine power8
-ENTRY (__ieee754_expf, 4)
- addis DATA_OFFSET,r2,.Lanchor@toc@ha
- addi DATA_OFFSET,DATA_OFFSET,.Lanchor@toc@l
-
- xscvdpspn v0,v1
- mfvsrd r8,v0 /* r8 = x */
- lfd fp2,(.KLN2-.Lanchor)(DATA_OFFSET)
- lfd fp3,(.P2-.Lanchor)(DATA_OFFSET)
- rldicl r3,r8,32,33 /* r3 = |x| */
- lis r4,C1@ha /* r4 = 125*log(2) */
- ori r4,r4,C1@l
- cmpw r3,r4
- lfd fp5,(.P3-.Lanchor)(DATA_OFFSET)
- lfd fp4,(.RS-.Lanchor)(DATA_OFFSET)
- fmadd fp2,fp1,fp2,fp4 /* fp2 = x * K/log(2) + (2^23 + 2^22) */
- bge L(special_paths) /* |x| >= 125*log(2) ? */
-
- lis r4,C2@ha
- ori r4,r4,C2@l
- cmpw r3,r4
- blt L(small_args) /* |x| < 2^(-28) ? */
-
- /* Main path: here if 2^(-28) <= |x| < 125*log(2) */
- frsp fp6,fp2
- xscvdpsp v2,v2
- mfvsrd r8,v2
- mr r3,r8 /* r3 = m */
- rldicl r8,r8,32,58 /* r8 = j */
- lfs fp4,(.SP_RS-.Lanchor)(DATA_OFFSET)
- fsubs fp2,fp6,fp4 /* fp2 = m = x * K/log(2) */
- srdi r3,r3,32
- clrrwi r3,r3,6 /* r3 = n */
- lfd fp6,(.NLN2K-.Lanchor)(DATA_OFFSET)
- fmadd fp0,fp2,fp6,fp1 /* fp0 = y = x - m*log(2)/K */
- fmul fp2,fp0,fp0 /* fp2 = z = y^2 */
- lfd fp4,(.P1-.Lanchor)(DATA_OFFSET)
- lfd fp6,(.P0-.Lanchor)(DATA_OFFSET)
- lis r4,SP_EXP_BIAS@ha
- ori r4,r4,SP_EXP_BIAS@l
- add r3,r3,r4
- rldic r3,r3,49,1 /* r3 = 2^n */
- fmadd fp4,fp5,fp2,fp4 /* fp4 = P3 * z + P1 */
- fmadd fp6,fp3,fp2,fp6 /* fp6 = P2 * z + P0 */
- mtvsrd v1,r3
- xscvspdp v1,v1
- fmul fp4,fp4,fp2 /* fp4 = (P3 * z + P1)*z */
- fmadd fp0,fp0,fp6,fp4 /* fp0 = P(y) */
- sldi r8,r8,3 /* Access doublewords from T[j]. */
- addi r6,DATA_OFFSET,(.Ttable-.Lanchor)
- lfdx fp3,r6,r8
- fmadd fp0,fp0,fp3,fp3 /* fp0 = T[j] * (1 + P(y)) */
- fmul fp1,fp1,fp0 /* fp1 = 2^n * T[j] * (1 + P(y)) */
- frsp fp1,fp1
- blr
-
- .align 4
-/* x is either underflow, overflow, infinite or NaN. */
-L(special_paths):
- srdi r8,r8,32
- rlwinm r8,r8,3,29,29 /* r8 = 0, if x positive.
- r8 = 4, otherwise. */
- addi r6,DATA_OFFSET,(.SPRANGE-.Lanchor)
- lwzx r4,r6,r8 /* r4 = .SPRANGE[signbit(x)] */
- cmpw r3,r4
- /* |x| <= .SPRANGE[signbit(x)] */
- ble L(near_under_or_overflow)
-
- lis r4,SP_INF@ha
- ori r4,r4,SP_INF@l
- cmpw r3,r4
- bge L(arg_inf_or_nan) /* |x| > Infinite ? */
-
- addi r6,DATA_OFFSET,(.SPLARGE_SMALL-.Lanchor)
- lfsx fp1,r6,r8
- fmuls fp1,fp1,fp1
- blr
-
-
- .align 4
-L(small_args):
- /* expf(x) = 1.0, where |x| < |2^(-28)| */
- lfs fp2,(.SPone-.Lanchor)(DATA_OFFSET)
- fadds fp1,fp1,fp2
- blr
-
-
- .align 4
-L(arg_inf_or_nan:)
- bne L(arg_nan)
-
- /* expf(+INF) = +INF
- expf(-INF) = 0 */
- addi r6,DATA_OFFSET,(.INF_ZERO-.Lanchor)
- lfsx fp1,r6,r8
- blr
-
-
- .align 4
-L(arg_nan):
- /* expf(NaN) = NaN */
- fadd fp1,fp1,fp1
- frsp fp1,fp1
- blr
-
- .align 4
-L(near_under_or_overflow):
- frsp fp6,fp2
- xscvdpsp v2,v2
- mfvsrd r8,v2
- mr r3,r8 /* r3 = m */
- rldicl r8,r8,32,58 /* r8 = j */
- lfs fp4,(.SP_RS-.Lanchor)(DATA_OFFSET)
- fsubs fp2,fp6,fp4 /* fp2 = m = x * K/log(2) */
- srdi r3,r3,32
- clrrwi r3,r3,6 /* r3 = n */
- lfd fp6,(.NLN2K-.Lanchor)(DATA_OFFSET)
- fmadd fp0,fp2,fp6,fp1 /* fp0 = y = x - m*log(2)/K */
- fmul fp2,fp0,fp0 /* fp2 = z = y^2 */
- lfd fp4,(.P1-.Lanchor)(DATA_OFFSET)
- lfd fp6,(.P0-.Lanchor)(DATA_OFFSET)
- ld r4,(.DP_EXP_BIAS-.Lanchor)(DATA_OFFSET)
- add r3,r3,r4
- rldic r3,r3,46,1 /* r3 = 2 */
- fmadd fp4,fp5,fp2,fp4 /* fp4 = P3 * z + P1 */
- fmadd fp6,fp3,fp2,fp6 /* fp6 = P2 * z + P0 */
- mtvsrd v1,r3
- fmul fp4,fp4,fp2 /* fp4 = (P3*z + P1)*z */
- fmadd fp0,fp0,fp6,fp4 /* fp0 = P(y) */
- sldi r8,r8,3 /* Access doublewords from T[j]. */
- addi r6,DATA_OFFSET,(.Ttable-.Lanchor)
- lfdx fp3,r6,r8
- fmadd fp0,fp0,fp3,fp3 /* fp0 = T[j] * (1 + T[j]) */
- fmul fp1,fp1,fp0 /* fp1 = 2^n * T[j] * (1 + T[j]) */
- frsp fp1,fp1
- blr
-END(__ieee754_expf)
-
- .section .rodata, "a",@progbits
-.Lanchor:
- .balign 8
-/* Table T[j] = 2^(j/K). Double precision. */
-.Ttable:
- .8byte 0x3ff0000000000000
- .8byte 0x3ff02c9a3e778061
- .8byte 0x3ff059b0d3158574
- .8byte 0x3ff0874518759bc8
- .8byte 0x3ff0b5586cf9890f
- .8byte 0x3ff0e3ec32d3d1a2
- .8byte 0x3ff11301d0125b51
- .8byte 0x3ff1429aaea92de0
- .8byte 0x3ff172b83c7d517b
- .8byte 0x3ff1a35beb6fcb75
- .8byte 0x3ff1d4873168b9aa
- .8byte 0x3ff2063b88628cd6
- .8byte 0x3ff2387a6e756238
- .8byte 0x3ff26b4565e27cdd
- .8byte 0x3ff29e9df51fdee1
- .8byte 0x3ff2d285a6e4030b
- .8byte 0x3ff306fe0a31b715
- .8byte 0x3ff33c08b26416ff
- .8byte 0x3ff371a7373aa9cb
- .8byte 0x3ff3a7db34e59ff7
- .8byte 0x3ff3dea64c123422
- .8byte 0x3ff4160a21f72e2a
- .8byte 0x3ff44e086061892d
- .8byte 0x3ff486a2b5c13cd0
- .8byte 0x3ff4bfdad5362a27
- .8byte 0x3ff4f9b2769d2ca7
- .8byte 0x3ff5342b569d4f82
- .8byte 0x3ff56f4736b527da
- .8byte 0x3ff5ab07dd485429
- .8byte 0x3ff5e76f15ad2148
- .8byte 0x3ff6247eb03a5585
- .8byte 0x3ff6623882552225
- .8byte 0x3ff6a09e667f3bcd
- .8byte 0x3ff6dfb23c651a2f
- .8byte 0x3ff71f75e8ec5f74
- .8byte 0x3ff75feb564267c9
- .8byte 0x3ff7a11473eb0187
- .8byte 0x3ff7e2f336cf4e62
- .8byte 0x3ff82589994cce13
- .8byte 0x3ff868d99b4492ed
- .8byte 0x3ff8ace5422aa0db
- .8byte 0x3ff8f1ae99157736
- .8byte 0x3ff93737b0cdc5e5
- .8byte 0x3ff97d829fde4e50
- .8byte 0x3ff9c49182a3f090
- .8byte 0x3ffa0c667b5de565
- .8byte 0x3ffa5503b23e255d
- .8byte 0x3ffa9e6b5579fdbf
- .8byte 0x3ffae89f995ad3ad
- .8byte 0x3ffb33a2b84f15fb
- .8byte 0x3ffb7f76f2fb5e47
- .8byte 0x3ffbcc1e904bc1d2
- .8byte 0x3ffc199bdd85529c
- .8byte 0x3ffc67f12e57d14b
- .8byte 0x3ffcb720dcef9069
- .8byte 0x3ffd072d4a07897c
- .8byte 0x3ffd5818dcfba487
- .8byte 0x3ffda9e603db3285
- .8byte 0x3ffdfc97337b9b5f
- .8byte 0x3ffe502ee78b3ff6
- .8byte 0x3ffea4afa2a490da
- .8byte 0x3ffefa1bee615a27
- .8byte 0x3fff50765b6e4540
- .8byte 0x3fffa7c1819e90d8
-
-.KLN2:
- .8byte 0x40571547652b82fe /* Double precision K/log(2). */
-
-/* Double precision polynomial coefficients. */
-.P0:
- .8byte 0x3fefffffffffe7c6
-.P1:
- .8byte 0x3fe00000008d6118
-.P2:
- .8byte 0x3fc55550da752d4f
-.P3:
- .8byte 0x3fa56420eb78fa85
-
-.RS:
- .8byte 0x4168000000000000 /* Double precision 2^23 + 2^22. */
-.NLN2K:
- .8byte 0xbf862e42fefa39ef /* Double precision -log(2)/K. */
-.DP_EXP_BIAS:
- .8byte 0x000000000000ffc0 /* Double precision exponent bias. */
-
- .balign 4
-.SPone:
- .4byte 0x3f800000 /* Single precision 1.0. */
-.SP_RS:
- .4byte 0x4b400000 /* Single precision 2^23 + 2^22. */
-
-.SPRANGE: /* Single precision overflow/underflow bounds. */
- .4byte 0x42b17217 /* if x>this bound, then result overflows. */
- .4byte 0x42cff1b4 /* if x<this bound, then result underflows. */
-
-.SPLARGE_SMALL:
- .4byte 0x71800000 /* 2^100. */
- .4byte 0x0d800000 /* 2^-100. */
-
-.INF_ZERO:
- .4byte 0x7f800000 /* Single precision Inf. */
- .4byte 0 /* Single precision zero. */
-
-strong_alias (__ieee754_expf, __expf_finite)
diff --git a/sysdeps/powerpc/powerpc64/power8/fpu/s_cosf.S b/sysdeps/powerpc/powerpc64/power8/fpu/s_cosf.S
deleted file mode 100644
index af71382fb2..0000000000
--- a/sysdeps/powerpc/powerpc64/power8/fpu/s_cosf.S
+++ /dev/null
@@ -1,509 +0,0 @@
-/* Optimized cosf(). PowerPC64/POWER8 version.
- Copyright (C) 2017-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#define _ERRNO_H 1
-#include <bits/errno.h>
-#include <libm-alias-float.h>
-
-#define FRAMESIZE (FRAME_MIN_SIZE+16)
-
-#define FLOAT_EXPONENT_SHIFT 23
-#define FLOAT_EXPONENT_BIAS 127
-#define INTEGER_BITS 3
-
-#define PI_4 0x3f490fdb /* PI/4 */
-#define NINEPI_4 0x40e231d6 /* 9 * PI/4 */
-#define TWO_PN5 0x3d000000 /* 2^-5 */
-#define TWO_PN27 0x32000000 /* 2^-27 */
-#define INFINITY 0x7f800000
-#define TWO_P23 0x4b000000 /* 2^23 */
-#define FX_FRACTION_1_28 0x9249250 /* 0x100000000 / 28 + 1 */
-
- /* Implements the function
-
- float [fp1] cosf (float [fp1] x) */
-
- .machine power8
-ENTRY (__cosf, 4)
- addis r9,r2,L(anchor)@toc@ha
- addi r9,r9,L(anchor)@toc@l
-
- lis r4,PI_4@h
- ori r4,r4,PI_4@l
-
- xscvdpspn v0,v1
- mfvsrd r8,v0
- rldicl r3,r8,32,33 /* Remove sign bit. */
-
- cmpw r3,r4
- bge L(greater_or_equal_pio4)
-
- lis r4,TWO_PN5@h
- ori r4,r4,TWO_PN5@l
-
- cmpw r3,r4
- blt L(less_2pn5)
-
- /* Chebyshev polynomial of the form:
- * 1.0+x^2*(C0+x^2*(C1+x^2*(C2+x^2*(C3+x^2*C4)))). */
-
- lfd fp9,(L(C0)-L(anchor))(r9)
- lfd fp10,(L(C1)-L(anchor))(r9)
- lfd fp11,(L(C2)-L(anchor))(r9)
- lfd fp12,(L(C3)-L(anchor))(r9)
- lfd fp13,(L(C4)-L(anchor))(r9)
-
- fmul fp2,fp1,fp1 /* x^2 */
- lfd fp3,(L(DPone)-L(anchor))(r9)
-
- fmadd fp4,fp2,fp13,fp12 /* C3+x^2*C4 */
- fmadd fp4,fp2,fp4,fp11 /* C2+x^2*(C3+x^2*C4) */
- fmadd fp4,fp2,fp4,fp10 /* C1+x^2*(C2+x^2*(C3+x^2*C4)) */
- fmadd fp4,fp2,fp4,fp9 /* C0+x^2*(C1+x^2*(C2+x^2*(C3+x^2*C4))) */
- fmadd fp1,fp2,fp4,fp3 /* 1.0+x^2*(C0+x^2*(C1+x^2*(C2+x^2*(C3+x^2*C4)))) */
- frsp fp1,fp1 /* Round to single precision. */
-
- blr
-
- .balign 16
-L(greater_or_equal_pio4):
- lis r4,NINEPI_4@h
- ori r4,r4,NINEPI_4@l
- cmpw r3,r4
- bge L(greater_or_equal_9pio4)
-
- /* Calculate quotient of |x|/(PI/4). */
- lfd fp2,(L(invpio4)-L(anchor))(r9)
- fabs fp1,fp1 /* |x| */
- fmul fp2,fp1,fp2 /* |x|/(PI/4) */
- fctiduz fp2,fp2
- mfvsrd r3,v2 /* n = |x| mod PI/4 */
-
- /* Now use that quotient to find |x| mod (PI/2). */
- addi r7,r3,1
- rldicr r5,r7,2,60 /* ((n+1) >> 1) << 3 */
- addi r6,r9,(L(pio2_table)-L(anchor))
- lfdx fp4,r5,r6
- fsub fp1,fp1,fp4
-
- .balign 16
-L(reduced):
- /* Now we are in the range -PI/4 to PI/4. */
-
- /* Work out if we are in a positive or negative primary interval. */
- addi r7,r7,2
- rldicl r4,r7,62,63 /* ((n+3) >> 2) & 1 */
-
- /* Load a 1.0 or -1.0. */
- addi r5,r9,(L(ones)-L(anchor))
- sldi r4,r4,3
- lfdx fp0,r4,r5
-
- /* Are we in the primary interval of sin or cos? */
- andi. r4,r7,0x2
- bne L(cos)
-
- /* Chebyshev polynomial of the form:
- x+x^3*(S0+x^2*(S1+x^2*(S2+x^2*(S3+x^2*S4)))). */
-
- lfd fp9,(L(S0)-L(anchor))(r9)
- lfd fp10,(L(S1)-L(anchor))(r9)
- lfd fp11,(L(S2)-L(anchor))(r9)
- lfd fp12,(L(S3)-L(anchor))(r9)
- lfd fp13,(L(S4)-L(anchor))(r9)
-
- fmul fp2,fp1,fp1 /* x^2 */
- fmul fp3,fp2,fp1 /* x^3 */
-
- fmadd fp4,fp2,fp13,fp12 /* S3+x^2*S4 */
- fmadd fp4,fp2,fp4,fp11 /* S2+x^2*(S3+x^2*S4) */
- fmadd fp4,fp2,fp4,fp10 /* S1+x^2*(S2+x^2*(S3+x^2*S4)) */
- fmadd fp4,fp2,fp4,fp9 /* S0+x^2*(S1+x^2*(S2+x^2*(S3+x^2*S4))) */
- fmadd fp4,fp3,fp4,fp1 /* x+x^3*(S0+x^2*(S1+x^2*(S2+x^2*(S3+x^2*S4)))) */
- fmul fp4,fp4,fp0 /* Add in the sign. */
- frsp fp1,fp4 /* Round to single precision. */
-
- blr
-
- .balign 16
-L(cos):
- /* Chebyshev polynomial of the form:
- 1.0+x^2*(C0+x^2*(C1+x^2*(C2+x^2*(C3+x^2*C4)))). */
-
- lfd fp9,(L(C0)-L(anchor))(r9)
- lfd fp10,(L(C1)-L(anchor))(r9)
- lfd fp11,(L(C2)-L(anchor))(r9)
- lfd fp12,(L(C3)-L(anchor))(r9)
- lfd fp13,(L(C4)-L(anchor))(r9)
-
- fmul fp2,fp1,fp1 /* x^2 */
- lfd fp3,(L(DPone)-L(anchor))(r9)
-
- fmadd fp4,fp2,fp13,fp12 /* C3+x^2*C4 */
- fmadd fp4,fp2,fp4,fp11 /* C2+x^2*(C3+x^2*C4) */
- fmadd fp4,fp2,fp4,fp10 /* C1+x^2*(C2+x^2*(C3+x^2*C4)) */
- fmadd fp4,fp2,fp4,fp9 /* C0+x^2*(C1+x^2*(C2+x^2*(C3+x^2*C4))) */
- fmadd fp4,fp2,fp4,fp3 /* 1.0 + x^2*(C0+x^2*(C1+x^2*(C2+x^2*(C3+x^2*C4)))) */
- fmul fp4,fp4,fp0 /* Add in the sign. */
- frsp fp1,fp4 /* Round to single precision. */
-
- blr
-
- .balign 16
-L(greater_or_equal_9pio4):
- lis r4,INFINITY@h
- ori r4,r4,INFINITY@l
- cmpw r3,r4
- bge L(inf_or_nan)
-
- lis r4,TWO_P23@h
- ori r4,r4,TWO_P23@l
- cmpw r3,r4
- bge L(greater_or_equal_2p23)
-
- fabs fp1,fp1 /* |x| */
-
- /* Calculate quotient of |x|/(PI/4). */
- lfd fp2,(L(invpio4)-L(anchor))(r9)
-
- lfd fp3,(L(DPone)-L(anchor))(r9)
- lfd fp4,(L(DPhalf)-L(anchor))(r9)
- fmul fp2,fp1,fp2 /* |x|/(PI/4) */
- friz fp2,fp2 /* n = floor(|x|/(PI/4)) */
-
- /* Calculate (n + 1) / 2. */
- fadd fp2,fp2,fp3 /* n + 1 */
- fmul fp3,fp2,fp4 /* (n + 1) / 2 */
- friz fp3,fp3
-
- lfd fp4,(L(pio2hi)-L(anchor))(r9)
- lfd fp5,(L(pio2lo)-L(anchor))(r9)
-
- fmul fp6,fp4,fp3
- fadd fp6,fp6,fp1
- fmadd fp1,fp5,fp3,fp6
-
- fctiduz fp2,fp2
- mfvsrd r7,v2 /* n + 1 */
-
- b L(reduced)
-
- .balign 16
-L(inf_or_nan):
- bne L(skip_errno_setting) /* Is a NAN? */
-
- /* We delayed the creation of the stack frame, as well as the saving of
- the link register, because only at this point, we are sure that
- doing so is actually needed. */
-
- stfd fp1,-8(r1)
-
- /* Save the link register. */
- mflr r0
- std r0,16(r1)
- cfi_offset(lr, 16)
-
- /* Create the stack frame. */
- stdu r1,-FRAMESIZE(r1)
- cfi_adjust_cfa_offset(FRAMESIZE)
-
- bl JUMPTARGET(__errno_location)
- nop
-
- /* Restore the stack frame. */
- addi r1,r1,FRAMESIZE
- cfi_adjust_cfa_offset(-FRAMESIZE)
- /* Restore the link register. */
- ld r0,16(r1)
- mtlr r0
-
- lfd fp1,-8(r1)
-
- /* errno = EDOM */
- li r4,EDOM
- stw r4,0(r3)
-
-L(skip_errno_setting):
- fsub fp1,fp1,fp1 /* x - x */
- blr
-
- .balign 16
-L(greater_or_equal_2p23):
- fabs fp1,fp1
-
- srwi r4,r3,FLOAT_EXPONENT_SHIFT
- subi r4,r4,FLOAT_EXPONENT_BIAS
-
- /* We reduce the input modulo pi/4, so we need 3 bits of integer
- to determine where in 2*pi we are. Index into our array
- accordingly. */
- addi r4,r4,INTEGER_BITS
-
- /* To avoid an expensive divide, for the range we care about (0 - 127)
- we can transform x/28 into:
-
- x/28 = (x * ((0x100000000 / 28) + 1)) >> 32
-
- mulhwu returns the top 32 bits of the 64 bit result, doing the
- shift for us in the same instruction. The top 32 bits are undefined,
- so we have to mask them. */
-
- lis r6,FX_FRACTION_1_28@h
- ori r6,r6,FX_FRACTION_1_28@l
- mulhwu r5,r4,r6
- clrldi r5,r5,32
-
- /* Get our pointer into the invpio4_table array. */
- sldi r4,r5,3
- addi r6,r9,(L(invpio4_table)-L(anchor))
- add r4,r4,r6
-
- lfd fp2,0(r4)
- lfd fp3,8(r4)
- lfd fp4,16(r4)
- lfd fp5,24(r4)
-
- fmul fp6,fp2,fp1
- fmul fp7,fp3,fp1
- fmul fp8,fp4,fp1
- fmul fp9,fp5,fp1
-
- /* Mask off larger integer bits in highest double word that we don't
- care about to avoid losing precision when combining with smaller
- values. */
- fctiduz fp10,fp6
- mfvsrd r7,v10
- rldicr r7,r7,0,(63-INTEGER_BITS)
- mtvsrd v10,r7
- fcfidu fp10,fp10 /* Integer bits. */
-
- fsub fp6,fp6,fp10 /* highest -= integer bits */
-
- /* Work out the integer component, rounded down. Use the top two
- limbs for this. */
- fadd fp10,fp6,fp7 /* highest + higher */
-
- fctiduz fp10,fp10
- mfvsrd r7,v10
- andi. r0,r7,1
- fcfidu fp10,fp10
-
- /* Subtract integer component from highest limb. */
- fsub fp12,fp6,fp10
-
- beq L(even_integer)
-
- /* Our integer component is odd, so we are in the -PI/4 to 0 primary
- region. We need to shift our result down by PI/4, and to do this
- in the mod (4/PI) space we simply subtract 1. */
- lfd fp11,(L(DPone)-L(anchor))(r9)
- fsub fp12,fp12,fp11
-
- /* Now add up all the limbs in order. */
- fadd fp12,fp12,fp7
- fadd fp12,fp12,fp8
- fadd fp12,fp12,fp9
-
- /* And finally multiply by pi/4. */
- lfd fp13,(L(pio4)-L(anchor))(r9)
- fmul fp1,fp12,fp13
-
- addi r7,r7,1
- b L(reduced)
-
-L(even_integer):
- lfd fp11,(L(DPone)-L(anchor))(r9)
-
- /* Now add up all the limbs in order. */
- fadd fp12,fp12,fp7
- fadd fp12,r12,fp8
- fadd fp12,r12,fp9
-
- /* We need to check if the addition of all the limbs resulted in us
- overflowing 1.0. */
- fcmpu 0,fp12,fp11
- bgt L(greater_than_one)
-
- /* And finally multiply by pi/4. */
- lfd fp13,(L(pio4)-L(anchor))(r9)
- fmul fp1,fp12,fp13
-
- addi r7,r7,1
- b L(reduced)
-
-L(greater_than_one):
- /* We did overflow 1.0 when adding up all the limbs. Add 1.0 to our
- integer, and subtract 1.0 from our result. Since that makes the
- integer component odd, we need to subtract another 1.0 as
- explained above. */
- addi r7,r7,1
-
- lfd fp11,(L(DPtwo)-L(anchor))(r9)
- fsub fp12,fp12,fp11
-
- /* And finally multiply by pi/4. */
- lfd fp13,(L(pio4)-L(anchor))(r9)
- fmul fp1,fp12,fp13
-
- addi r7,r7,1
- b L(reduced)
-
- .balign 16
-L(less_2pn5):
- lis r4,TWO_PN27@h
- ori r4,r4,TWO_PN27@l
-
- cmpw r3,r4
- blt L(less_2pn27)
-
- /* A simpler Chebyshev approximation is close enough for this range:
- 1.0+x^2*(CC0+x^3*CC1). */
-
- lfd fp10,(L(CC0)-L(anchor))(r9)
- lfd fp11,(L(CC1)-L(anchor))(r9)
-
- fmul fp2,fp1,fp1 /* x^2 */
- fmul fp3,fp2,fp1 /* x^3 */
- lfd fp1,(L(DPone)-L(anchor))(r9)
-
- fmadd fp4,fp3,fp11,fp10 /* CC0+x^3*CC1 */
- fmadd fp1,fp2,fp4,fp1 /* 1.0+x^2*(CC0+x^3*CC1) */
-
- frsp fp1,fp1 /* Round to single precision. */
-
- blr
-
- .balign 16
-L(less_2pn27):
- /* Handle some special cases:
-
- cosf(subnormal) raises inexact
- cosf(min_normalized) raises inexact
- cosf(normalized) raises inexact. */
-
- lfd fp2,(L(DPone)-L(anchor))(r9)
-
- fabs fp1,fp1 /* |x| */
- fsub fp1,fp2,fp1 /* 1.0-|x| */
-
- frsp fp1,fp1
-
- blr
-
-END (__cosf)
-
- .section .rodata, "a"
-
- .balign 8
-
-L(anchor):
-
- /* Chebyshev constants for sin, range -PI/4 - PI/4. */
-L(S0): .8byte 0xbfc5555555551cd9
-L(S1): .8byte 0x3f81111110c2688b
-L(S2): .8byte 0xbf2a019f8b4bd1f9
-L(S3): .8byte 0x3ec71d7264e6b5b4
-L(S4): .8byte 0xbe5a947e1674b58a
-
- /* Chebyshev constants for cos, range 2^-27 - 2^-5. */
-L(CC0): .8byte 0xbfdfffffff5cc6fd
-L(CC1): .8byte 0x3fa55514b178dac5
-
- /* Chebyshev constants for cos, range -PI/4 - PI/4. */
-L(C0): .8byte 0xbfdffffffffe98ae
-L(C1): .8byte 0x3fa55555545c50c7
-L(C2): .8byte 0xbf56c16b348b6874
-L(C3): .8byte 0x3efa00eb9ac43cc0
-L(C4): .8byte 0xbe923c97dd8844d7
-
-L(invpio2):
- .8byte 0x3fe45f306dc9c883 /* 2/PI */
-
-L(invpio4):
- .8byte 0x3ff45f306dc9c883 /* 4/PI */
-
-L(invpio4_table):
- .8byte 0x0000000000000000
- .8byte 0x3ff45f306c000000
- .8byte 0x3e3c9c882a000000
- .8byte 0x3c54fe13a8000000
- .8byte 0x3aaf47d4d0000000
- .8byte 0x38fbb81b6c000000
- .8byte 0x3714acc9e0000000
- .8byte 0x3560e4107c000000
- .8byte 0x33bca2c756000000
- .8byte 0x31fbd778ac000000
- .8byte 0x300b7246e0000000
- .8byte 0x2e5d2126e8000000
- .8byte 0x2c97003248000000
- .8byte 0x2ad77504e8000000
- .8byte 0x290921cfe0000000
- .8byte 0x274deb1cb0000000
- .8byte 0x25829a73e0000000
- .8byte 0x23fd1046be000000
- .8byte 0x2224baed10000000
- .8byte 0x20709d338e000000
- .8byte 0x1e535a2f80000000
- .8byte 0x1cef904e64000000
- .8byte 0x1b0d639830000000
- .8byte 0x1964ce7d24000000
- .8byte 0x17b908bf16000000
-
-L(pio4):
- .8byte 0x3fe921fb54442d18 /* PI/4 */
-
-/* PI/2 as a sum of two doubles. We only use 32 bits of the upper limb
- to avoid losing significant bits when multiplying with up to
- (2^22)/(pi/2). */
-L(pio2hi):
- .8byte 0xbff921fb54400000
-
-L(pio2lo):
- .8byte 0xbdd0b4611a626332
-
-L(pio2_table):
- .8byte 0
- .8byte 0x3ff921fb54442d18 /* 1 * PI/2 */
- .8byte 0x400921fb54442d18 /* 2 * PI/2 */
- .8byte 0x4012d97c7f3321d2 /* 3 * PI/2 */
- .8byte 0x401921fb54442d18 /* 4 * PI/2 */
- .8byte 0x401f6a7a2955385e /* 5 * PI/2 */
- .8byte 0x4022d97c7f3321d2 /* 6 * PI/2 */
- .8byte 0x4025fdbbe9bba775 /* 7 * PI/2 */
- .8byte 0x402921fb54442d18 /* 8 * PI/2 */
- .8byte 0x402c463abeccb2bb /* 9 * PI/2 */
- .8byte 0x402f6a7a2955385e /* 10 * PI/2 */
-
-L(small):
- .8byte 0x3cd0000000000000 /* 2^-50 */
-
-L(ones):
- .8byte 0x3ff0000000000000 /* +1.0 */
- .8byte 0xbff0000000000000 /* -1.0 */
-
-L(DPhalf):
- .8byte 0x3fe0000000000000 /* 0.5 */
-
-L(DPone):
- .8byte 0x3ff0000000000000 /* 1.0 */
-
-L(DPtwo):
- .8byte 0x4000000000000000 /* 2.0 */
-
-libm_alias_float (__cos, cos)
diff --git a/sysdeps/powerpc/powerpc64/power8/fpu/s_finite.S b/sysdeps/powerpc/powerpc64/power8/fpu/s_finite.S
deleted file mode 100644
index aac54a9364..0000000000
--- a/sysdeps/powerpc/powerpc64/power8/fpu/s_finite.S
+++ /dev/null
@@ -1,56 +0,0 @@
-/* isfinite(). PowerPC64/POWER8 version.
- Copyright (C) 2014-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-#define MFVSRD_R3_V1 .long 0x7c230066 /* mfvsrd r3,vs1 */
-
-/* int [r3] __finite ([fp1] x) */
-
-ENTRY_TOCLESS (__finite, 4)
- CALL_MCOUNT 0
- MFVSRD_R3_V1
- lis r9,0x8010
- clrldi r3,r3,1 /* r3 = r3 & 0x8000000000000000 */
- rldicr r9,r9,32,31 /* r9 = (r9 << 32) & 0xffffffff */
- add r3,r3,r9
- rldicl r3,r3,1,63
- blr
-END (__finite)
-
-hidden_def (__finite)
-weak_alias (__finite, finite)
-
-/* It turns out that the 'double' version will also always work for
- single-precision. */
-strong_alias (__finite, __finitef)
-hidden_def (__finitef)
-weak_alias (__finitef, finitef)
-
-#if IS_IN (libm)
-# if LONG_DOUBLE_COMPAT (libm, GLIBC_2_0)
-compat_symbol (libm, __finite, __finitel, GLIBC_2_0)
-compat_symbol (libm, finite, finitel, GLIBC_2_0)
-# endif
-#else
-# if LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)
-compat_symbol (libc, __finite, __finitel, GLIBC_2_0);
-compat_symbol (libc, finite, finitel, GLIBC_2_0);
-# endif
-#endif
diff --git a/sysdeps/powerpc/powerpc64/power8/fpu/s_finitef.S b/sysdeps/powerpc/powerpc64/power8/fpu/s_finitef.S
deleted file mode 100644
index 54bd94176d..0000000000
--- a/sysdeps/powerpc/powerpc64/power8/fpu/s_finitef.S
+++ /dev/null
@@ -1 +0,0 @@
-/* This function uses the same code as s_finite.S. */
diff --git a/sysdeps/powerpc/powerpc64/power8/fpu/s_isinf.S b/sysdeps/powerpc/powerpc64/power8/fpu/s_isinf.S
deleted file mode 100644
index 94746ef068..0000000000
--- a/sysdeps/powerpc/powerpc64/power8/fpu/s_isinf.S
+++ /dev/null
@@ -1,61 +0,0 @@
-/* isinf(). PowerPC64/POWER8 version.
- Copyright (C) 2014-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-#define MFVSRD_R3_V1 .long 0x7c230066 /* mfvsrd r3,vs1 */
-
-/* int [r3] __isinf([fp1] x) */
-
-ENTRY_TOCLESS (__isinf, 4)
- CALL_MCOUNT 0
- MFVSRD_R3_V1
- lis r9,0x7ff0 /* r9 = 0x7ff0 */
- rldicl r10,r3,0,1 /* r10 = r3 & (0x8000000000000000) */
- sldi r9,r9,32 /* r9 = r9 << 52 */
- cmpd cr7,r10,r9 /* fp1 & 0x7ff0000000000000 ? */
- beq cr7,L(inf)
- li r3,0 /* Not inf */
- blr
-L(inf):
- sradi r3,r3,63 /* r3 = r3 >> 63 */
- ori r3,r3,1 /* r3 = r3 | 0x1 */
- blr
-END (__isinf)
-
-hidden_def (__isinf)
-weak_alias (__isinf, isinf)
-
-/* It turns out that the 'double' version will also always work for
- single-precision. */
-strong_alias (__isinf, __isinff)
-hidden_def (__isinff)
-weak_alias (__isinff, isinff)
-
-#ifdef NO_LONG_DOUBLE
-strong_alias (__isinf, __isinfl)
-weak_alias (__isinf, isinfl)
-#endif
-
-#if !IS_IN (libm)
-# if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
-compat_symbol (libc, __isinf, __isinfl, GLIBC_2_0);
-compat_symbol (libc, isinf, isinfl, GLIBC_2_0);
-# endif
-#endif
diff --git a/sysdeps/powerpc/powerpc64/power8/fpu/s_isinff.S b/sysdeps/powerpc/powerpc64/power8/fpu/s_isinff.S
deleted file mode 100644
index be759e091e..0000000000
--- a/sysdeps/powerpc/powerpc64/power8/fpu/s_isinff.S
+++ /dev/null
@@ -1 +0,0 @@
-/* This function uses the same code as s_isinf.S. */
diff --git a/sysdeps/powerpc/powerpc64/power8/fpu/s_isnan.S b/sysdeps/powerpc/powerpc64/power8/fpu/s_isnan.S
deleted file mode 100644
index 8aef354f68..0000000000
--- a/sysdeps/powerpc/powerpc64/power8/fpu/s_isnan.S
+++ /dev/null
@@ -1,56 +0,0 @@
-/* isnan(). PowerPC64/POWER8 version.
- Copyright (C) 2014-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-#define MFVSRD_R3_V1 .long 0x7c230066 /* mfvsrd r3,vs1 */
-
-/* int [r3] __isnan([f1] x) */
-
-ENTRY_TOCLESS (__isnan, 4)
- CALL_MCOUNT 0
- MFVSRD_R3_V1
- lis r9,0x7ff0
- clrldi r3,r3,1 /* r3 = r3 & 0x8000000000000000 */
- rldicr r9,r9,32,31 /* r9 = (r9 << 32) & 0xffffffff */
- subf r3,r3,r9
- rldicl r3,r3,1,63
- blr
-END (__isnan)
-
-hidden_def (__isnan)
-weak_alias (__isnan, isnan)
-
-/* It turns out that the 'double' version will also always work for
- single-precision. */
-strong_alias (__isnan, __isnanf)
-hidden_def (__isnanf)
-weak_alias (__isnanf, isnanf)
-
-#ifdef NO_LONG_DOUBLE
-strong_alias (__isnan, __isnanl)
-weak_alias (__isnan, isnanl)
-#endif
-
-#if !IS_IN (libm)
-# if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
-compat_symbol (libc, __isnan, __isnanl, GLIBC_2_0);
-compat_symbol (libc, isnan, isnanl, GLIBC_2_0);
-# endif
-#endif
diff --git a/sysdeps/powerpc/powerpc64/power8/fpu/s_isnanf.S b/sysdeps/powerpc/powerpc64/power8/fpu/s_isnanf.S
deleted file mode 100644
index b48c85e0d3..0000000000
--- a/sysdeps/powerpc/powerpc64/power8/fpu/s_isnanf.S
+++ /dev/null
@@ -1 +0,0 @@
-/* This function uses the same code as s_isnan.S. */
diff --git a/sysdeps/powerpc/powerpc64/power8/fpu/s_llrint.S b/sysdeps/powerpc/powerpc64/power8/fpu/s_llrint.S
deleted file mode 100644
index 7f18d705a9..0000000000
--- a/sysdeps/powerpc/powerpc64/power8/fpu/s_llrint.S
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Round double to long int. POWER8 PowerPC64 version.
- Copyright (C) 2014-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-#include <libm-alias-float.h>
-#include <libm-alias-double.h>
-
-#define MFVSRD_R3_V1 .long 0x7c230066 /* mfvsrd r3,vs1 */
-
-/* long long int[r3] __llrint (double x[fp1]) */
-ENTRY_TOCLESS (__llrint)
- CALL_MCOUNT 0
- fctid fp1,fp1
- MFVSRD_R3_V1
- blr
-END (__llrint)
-
-strong_alias (__llrint, __lrint)
-libm_alias_double (__llrint, llrint)
-libm_alias_double (__lrint, lrint)
-/* The double version also works for single-precision as both float and
- double parameters are passed in 64bit FPRs and both versions are expected
- to return [long] long type. */
-strong_alias (__llrint, __llrintf)
-libm_alias_float (__llrint, llrint)
-strong_alias (__lrint, __lrintf)
-libm_alias_float (__lrint, lrint)
diff --git a/sysdeps/powerpc/powerpc64/power8/fpu/s_llround.S b/sysdeps/powerpc/powerpc64/power8/fpu/s_llround.S
deleted file mode 100644
index a22fc63bb3..0000000000
--- a/sysdeps/powerpc/powerpc64/power8/fpu/s_llround.S
+++ /dev/null
@@ -1,46 +0,0 @@
-/* llround function. POWER8 PowerPC64 version.
- Copyright (C) 2014-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <endian.h>
-#include <math_ldbl_opt.h>
-#include <libm-alias-float.h>
-#include <libm-alias-double.h>
-
-#define MFVSRD_R3_V1 .long 0x7c230066 /* mfvsrd r3,vs1 */
-
-/* long long [r3] llround (float x [fp1]) */
-
-ENTRY_TOCLESS (__llround)
- CALL_MCOUNT 0
- frin fp1,fp1 /* Round to nearest +-0.5. */
- fctidz fp1,fp1 /* Convert To Integer DW round toward 0. */
- MFVSRD_R3_V1
- blr
-END (__llround)
-
-strong_alias (__llround, __lround)
-libm_alias_double (__llround, llround)
-libm_alias_double (__lround, lround)
-/* The double version also works for single-precision as both float and
- double parameters are passed in 64bit FPRs and both versions are expected
- to return [long] long type. */
-strong_alias (__llround, __llroundf)
-libm_alias_float (__llround, llround)
-strong_alias (__lround, __lroundf)
-libm_alias_float (__lround, lround)
diff --git a/sysdeps/powerpc/powerpc64/power8/fpu/s_llroundf.S b/sysdeps/powerpc/powerpc64/power8/fpu/s_llroundf.S
deleted file mode 100644
index 9ea6bd105b..0000000000
--- a/sysdeps/powerpc/powerpc64/power8/fpu/s_llroundf.S
+++ /dev/null
@@ -1 +0,0 @@
-/* __lroundf is in s_llround.S. */
diff --git a/sysdeps/powerpc/powerpc64/power8/fpu/s_sinf.S b/sysdeps/powerpc/powerpc64/power8/fpu/s_sinf.S
deleted file mode 100644
index 59e613c102..0000000000
--- a/sysdeps/powerpc/powerpc64/power8/fpu/s_sinf.S
+++ /dev/null
@@ -1,520 +0,0 @@
-/* Optimized sinf(). PowerPC64/POWER8 version.
- Copyright (C) 2016-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#define _ERRNO_H 1
-#include <bits/errno.h>
-#include <libm-alias-float.h>
-
-#define FRAMESIZE (FRAME_MIN_SIZE+16)
-
-#define FLOAT_EXPONENT_SHIFT 23
-#define FLOAT_EXPONENT_BIAS 127
-#define INTEGER_BITS 3
-
-#define PI_4 0x3f490fdb /* PI/4 */
-#define NINEPI_4 0x40e231d6 /* 9 * PI/4 */
-#define TWO_PN5 0x3d000000 /* 2^-5 */
-#define TWO_PN27 0x32000000 /* 2^-27 */
-#define INFINITY 0x7f800000
-#define TWO_P23 0x4b000000 /* 2^27 */
-#define FX_FRACTION_1_28 0x9249250 /* 0x100000000 / 28 + 1 */
-
- /* Implements the function
-
- float [fp1] sinf (float [fp1] x) */
-
- .machine power8
-ENTRY (__sinf, 4)
- addis r9,r2,L(anchor)@toc@ha
- addi r9,r9,L(anchor)@toc@l
-
- lis r4,PI_4@h
- ori r4,r4,PI_4@l
-
- xscvdpspn v0,v1
- mfvsrd r8,v0
- rldicl r3,r8,32,33 /* Remove sign bit. */
-
- cmpw r3,r4
- bge L(greater_or_equal_pio4)
-
- lis r4,TWO_PN5@h
- ori r4,r4,TWO_PN5@l
-
- cmpw r3,r4
- blt L(less_2pn5)
-
- /* Chebyshev polynomial of the form:
- * x+x^3*(S0+x^2*(S1+x^2*(S2+x^2*(S3+x^2*S4)))). */
-
- lfd fp9,(L(S0)-L(anchor))(r9)
- lfd fp10,(L(S1)-L(anchor))(r9)
- lfd fp11,(L(S2)-L(anchor))(r9)
- lfd fp12,(L(S3)-L(anchor))(r9)
- lfd fp13,(L(S4)-L(anchor))(r9)
-
- fmul fp2,fp1,fp1 /* x^2 */
- fmul fp3,fp2,fp1 /* x^3 */
-
- fmadd fp4,fp2,fp13,fp12 /* S3+x^2*S4 */
- fmadd fp4,fp2,fp4,fp11 /* S2+x^2*(S3+x^2*S4) */
- fmadd fp4,fp2,fp4,fp10 /* S1+x^2*(S2+x^2*(S3+x^2*S4)) */
- fmadd fp4,fp2,fp4,fp9 /* S0+x^2*(S1+x^2*(S2+x^2*(S3+x^2*S4))) */
- fmadd fp1,fp3,fp4,fp1 /* x+x^3*(S0+x^2*(S1+x^2*(S2+x^2*(S3+x^2*S4)))) */
- frsp fp1,fp1 /* Round to single precision. */
-
- blr
-
- .balign 16
-L(greater_or_equal_pio4):
- lis r4,NINEPI_4@h
- ori r4,r4,NINEPI_4@l
- cmpw r3,r4
- bge L(greater_or_equal_9pio4)
-
- /* Calculate quotient of |x|/(PI/4). */
- lfd fp2,(L(invpio4)-L(anchor))(r9)
- fabs fp1,fp1 /* |x| */
- fmul fp2,fp1,fp2 /* |x|/(PI/4) */
- fctiduz fp2,fp2
- mfvsrd r3,v2 /* n = |x| mod PI/4 */
-
- /* Now use that quotient to find |x| mod (PI/2). */
- addi r7,r3,1
- rldicr r5,r7,2,60 /* ((n+1) >> 1) << 3 */
- addi r6,r9,(L(pio2_table)-L(anchor))
- lfdx fp4,r5,r6
- fsub fp1,fp1,fp4
-
- .balign 16
-L(reduced):
- /* Now we are in the range -PI/4 to PI/4. */
-
- /* Work out if we are in a positive or negative primary interval. */
- rldicl r4,r7,62,63 /* ((n+1) >> 2) & 1 */
-
- /* We are operating on |x|, so we need to add back the original
- sign. */
- rldicl r8,r8,33,63 /* (x >> 31) & 1, ie the sign bit. */
- xor r4,r4,r8 /* 0 if result should be positive,
- 1 if negative. */
-
- /* Load a 1.0 or -1.0. */
- addi r5,r9,(L(ones)-L(anchor))
- sldi r4,r4,3
- lfdx fp0,r4,r5
-
- /* Are we in the primary interval of sin or cos? */
- andi. r4,r7,0x2
- bne L(cos)
-
- /* Chebyshev polynomial of the form:
- x+x^3*(S0+x^2*(S1+x^2*(S2+x^2*(S3+x^2*S4)))). */
-
- lfd fp9,(L(S0)-L(anchor))(r9)
- lfd fp10,(L(S1)-L(anchor))(r9)
- lfd fp11,(L(S2)-L(anchor))(r9)
- lfd fp12,(L(S3)-L(anchor))(r9)
- lfd fp13,(L(S4)-L(anchor))(r9)
-
- fmul fp2,fp1,fp1 /* x^2 */
- fmul fp3,fp2,fp1 /* x^3 */
-
- fmadd fp4,fp2,fp13,fp12 /* S3+x^2*S4 */
- fmadd fp4,fp2,fp4,fp11 /* S2+x^2*(S3+x^2*S4) */
- fmadd fp4,fp2,fp4,fp10 /* S1+x^2*(S2+x^2*(S3+x^2*S4)) */
- fmadd fp4,fp2,fp4,fp9 /* S0+x^2*(S1+x^2*(S2+x^2*(S3+x^2*S4))) */
- fmadd fp4,fp3,fp4,fp1 /* x+x^3*(S0+x^2*(S1+x^2*(S2+x^2*(S3+x^2*S4)))) */
- fmul fp4,fp4,fp0 /* Add in the sign. */
- frsp fp1,fp4 /* Round to single precision. */
-
- blr
-
- .balign 16
-L(cos):
- /* Chebyshev polynomial of the form:
- 1.0+x^2*(C0+x^2*(C1+x^2*(C2+x^2*(C3+x^2*C4)))). */
-
- lfd fp9,(L(C0)-L(anchor))(r9)
- lfd fp10,(L(C1)-L(anchor))(r9)
- lfd fp11,(L(C2)-L(anchor))(r9)
- lfd fp12,(L(C3)-L(anchor))(r9)
- lfd fp13,(L(C4)-L(anchor))(r9)
-
- fmul fp2,fp1,fp1 /* x^2 */
- lfd fp3,(L(DPone)-L(anchor))(r9)
-
- fmadd fp4,fp2,fp13,fp12 /* C3+x^2*C4 */
- fmadd fp4,fp2,fp4,fp11 /* C2+x^2*(C3+x^2*C4) */
- fmadd fp4,fp2,fp4,fp10 /* C1+x^2*(C2+x^2*(C3+x^2*C4)) */
- fmadd fp4,fp2,fp4,fp9 /* C0+x^2*(C1+x^2*(C2+x^2*(C3+x^2*C4))) */
- fmadd fp4,fp2,fp4,fp3 /* 1.0 + x^2*(C0+x^2*(C1+x^2*(C2+x^2*(C3+x^2*C4)))) */
- fmul fp4,fp4,fp0 /* Add in the sign. */
- frsp fp1,fp4 /* Round to single precision. */
-
- blr
-
- .balign 16
-L(greater_or_equal_9pio4):
- lis r4,INFINITY@h
- ori r4,r4,INFINITY@l
- cmpw r3,r4
- bge L(inf_or_nan)
-
- lis r4,TWO_P23@h
- ori r4,r4,TWO_P23@l
- cmpw r3,r4
- bge L(greater_or_equal_2p23)
-
- fabs fp1,fp1 /* |x| */
-
- /* Calculate quotient of |x|/(PI/4). */
- lfd fp2,(L(invpio4)-L(anchor))(r9)
-
- lfd fp3,(L(DPone)-L(anchor))(r9)
- lfd fp4,(L(DPhalf)-L(anchor))(r9)
- fmul fp2,fp1,fp2 /* |x|/(PI/4) */
- friz fp2,fp2 /* n = floor(|x|/(PI/4)) */
-
- /* Calculate (n + 1) / 2. */
- fadd fp2,fp2,fp3 /* n + 1 */
- fmul fp3,fp2,fp4 /* (n + 1) / 2 */
- friz fp3,fp3
-
- lfd fp4,(L(pio2hi)-L(anchor))(r9)
- lfd fp5,(L(pio2lo)-L(anchor))(r9)
-
- fmul fp6,fp4,fp3
- fadd fp6,fp6,fp1
- fmadd fp1,fp5,fp3,fp6
-
- fctiduz fp2,fp2
- mfvsrd r7,v2 /* n + 1 */
-
- b L(reduced)
-
- .balign 16
-L(inf_or_nan):
- bne L(skip_errno_setting) /* Is a NAN? */
-
- /* We delayed the creation of the stack frame, as well as the saving of
- the link register, because only at this point, we are sure that
- doing so is actually needed. */
-
- stfd fp1,-8(r1)
-
- /* Save the link register. */
- mflr r0
- std r0,16(r1)
- cfi_offset(lr, 16)
-
- /* Create the stack frame. */
- stdu r1,-FRAMESIZE(r1)
- cfi_adjust_cfa_offset(FRAMESIZE)
-
- bl JUMPTARGET(__errno_location)
- nop
-
- /* Restore the stack frame. */
- addi r1,r1,FRAMESIZE
- cfi_adjust_cfa_offset(-FRAMESIZE)
- /* Restore the link register. */
- ld r0,16(r1)
- mtlr r0
-
- lfd fp1,-8(r1)
-
- /* errno = EDOM */
- li r4,EDOM
- stw r4,0(r3)
-
-L(skip_errno_setting):
- fsub fp1,fp1,fp1 /* x - x */
- blr
-
- .balign 16
-L(greater_or_equal_2p23):
- fabs fp1,fp1
-
- srwi r4,r3,FLOAT_EXPONENT_SHIFT
- subi r4,r4,FLOAT_EXPONENT_BIAS
-
- /* We reduce the input modulo pi/4, so we need 3 bits of integer
- to determine where in 2*pi we are. Index into our array
- accordingly. */
- addi r4,r4,INTEGER_BITS
-
- /* To avoid an expensive divide, for the range we care about (0 - 127)
- we can transform x/28 into:
-
- x/28 = (x * ((0x100000000 / 28) + 1)) >> 32
-
- mulhwu returns the top 32 bits of the 64 bit result, doing the
- shift for us in the same instruction. The top 32 bits are undefined,
- so we have to mask them. */
-
- lis r6,FX_FRACTION_1_28@h
- ori r6,r6,FX_FRACTION_1_28@l
- mulhwu r5,r4,r6
- clrldi r5,r5,32
-
- /* Get our pointer into the invpio4_table array. */
- sldi r4,r5,3
- addi r6,r9,(L(invpio4_table)-L(anchor))
- add r4,r4,r6
-
- lfd fp2,0(r4)
- lfd fp3,8(r4)
- lfd fp4,16(r4)
- lfd fp5,24(r4)
-
- fmul fp6,fp2,fp1
- fmul fp7,fp3,fp1
- fmul fp8,fp4,fp1
- fmul fp9,fp5,fp1
-
- /* Mask off larger integer bits in highest double word that we don't
- care about to avoid losing precision when combining with smaller
- values. */
- fctiduz fp10,fp6
- mfvsrd r7,v10
- rldicr r7,r7,0,(63-INTEGER_BITS)
- mtvsrd v10,r7
- fcfidu fp10,fp10 /* Integer bits. */
-
- fsub fp6,fp6,fp10 /* highest -= integer bits */
-
- /* Work out the integer component, rounded down. Use the top two
- limbs for this. */
- fadd fp10,fp6,fp7 /* highest + higher */
-
- fctiduz fp10,fp10
- mfvsrd r7,v10
- andi. r0,r7,1
- fcfidu fp10,fp10
-
- /* Subtract integer component from highest limb. */
- fsub fp12,fp6,fp10
-
- beq L(even_integer)
-
- /* Our integer component is odd, so we are in the -PI/4 to 0 primary
- region. We need to shift our result down by PI/4, and to do this
- in the mod (4/PI) space we simply subtract 1. */
- lfd fp11,(L(DPone)-L(anchor))(r9)
- fsub fp12,fp12,fp11
-
- /* Now add up all the limbs in order. */
- fadd fp12,fp12,fp7
- fadd fp12,fp12,fp8
- fadd fp12,fp12,fp9
-
- /* And finally multiply by pi/4. */
- lfd fp13,(L(pio4)-L(anchor))(r9)
- fmul fp1,fp12,fp13
-
- addi r7,r7,1
- b L(reduced)
-
-L(even_integer):
- lfd fp11,(L(DPone)-L(anchor))(r9)
-
- /* Now add up all the limbs in order. */
- fadd fp12,fp12,fp7
- fadd fp12,r12,fp8
- fadd fp12,r12,fp9
-
- /* We need to check if the addition of all the limbs resulted in us
- overflowing 1.0. */
- fcmpu 0,fp12,fp11
- bgt L(greater_than_one)
-
- /* And finally multiply by pi/4. */
- lfd fp13,(L(pio4)-L(anchor))(r9)
- fmul fp1,fp12,fp13
-
- addi r7,r7,1
- b L(reduced)
-
-L(greater_than_one):
- /* We did overflow 1.0 when adding up all the limbs. Add 1.0 to our
- integer, and subtract 1.0 from our result. Since that makes the
- integer component odd, we need to subtract another 1.0 as
- explained above. */
- addi r7,r7,1
-
- lfd fp11,(L(DPtwo)-L(anchor))(r9)
- fsub fp12,fp12,fp11
-
- /* And finally multiply by pi/4. */
- lfd fp13,(L(pio4)-L(anchor))(r9)
- fmul fp1,fp12,fp13
-
- addi r7,r7,1
- b L(reduced)
-
- .balign 16
-L(less_2pn5):
- lis r4,TWO_PN27@h
- ori r4,r4,TWO_PN27@l
-
- cmpw r3,r4
- blt L(less_2pn27)
-
- /* A simpler Chebyshev approximation is close enough for this range:
- x+x^3*(SS0+x^2*SS1). */
-
- lfd fp10,(L(SS0)-L(anchor))(r9)
- lfd fp11,(L(SS1)-L(anchor))(r9)
-
- fmul fp2,fp1,fp1 /* x^2 */
- fmul fp3,fp2,fp1 /* x^3 */
-
- fmadd fp4,fp2,fp11,fp10 /* SS0+x^2*SS1 */
- fmadd fp1,fp3,fp4,fp1 /* x+x^3*(SS0+x^2*SS1) */
-
- frsp fp1,fp1 /* Round to single precision. */
-
- blr
-
- .balign 16
-L(less_2pn27):
- cmpwi r3,0
- beq L(zero)
-
- /* Handle some special cases:
-
- sinf(subnormal) raises inexact/underflow
- sinf(min_normalized) raises inexact/underflow
- sinf(normalized) raises inexact. */
-
- lfd fp2,(L(small)-L(anchor))(r9)
-
- fmul fp2,fp1,fp2 /* x * small */
- fsub fp1,fp1,fp2 /* x - x * small */
-
- frsp fp1,fp1
-
- blr
-
- .balign 16
-L(zero):
- blr
-
-END (__sinf)
-
- .section .rodata, "a"
-
- .balign 8
-
-L(anchor):
-
- /* Chebyshev constants for sin, range -PI/4 - PI/4. */
-L(S0): .8byte 0xbfc5555555551cd9
-L(S1): .8byte 0x3f81111110c2688b
-L(S2): .8byte 0xbf2a019f8b4bd1f9
-L(S3): .8byte 0x3ec71d7264e6b5b4
-L(S4): .8byte 0xbe5a947e1674b58a
-
- /* Chebyshev constants for sin, range 2^-27 - 2^-5. */
-L(SS0): .8byte 0xbfc555555543d49d
-L(SS1): .8byte 0x3f8110f475cec8c5
-
- /* Chebyshev constants for cos, range -PI/4 - PI/4. */
-L(C0): .8byte 0xbfdffffffffe98ae
-L(C1): .8byte 0x3fa55555545c50c7
-L(C2): .8byte 0xbf56c16b348b6874
-L(C3): .8byte 0x3efa00eb9ac43cc0
-L(C4): .8byte 0xbe923c97dd8844d7
-
-L(invpio2):
- .8byte 0x3fe45f306dc9c883 /* 2/PI */
-
-L(invpio4):
- .8byte 0x3ff45f306dc9c883 /* 4/PI */
-
-L(invpio4_table):
- .8byte 0x0000000000000000
- .8byte 0x3ff45f306c000000
- .8byte 0x3e3c9c882a000000
- .8byte 0x3c54fe13a8000000
- .8byte 0x3aaf47d4d0000000
- .8byte 0x38fbb81b6c000000
- .8byte 0x3714acc9e0000000
- .8byte 0x3560e4107c000000
- .8byte 0x33bca2c756000000
- .8byte 0x31fbd778ac000000
- .8byte 0x300b7246e0000000
- .8byte 0x2e5d2126e8000000
- .8byte 0x2c97003248000000
- .8byte 0x2ad77504e8000000
- .8byte 0x290921cfe0000000
- .8byte 0x274deb1cb0000000
- .8byte 0x25829a73e0000000
- .8byte 0x23fd1046be000000
- .8byte 0x2224baed10000000
- .8byte 0x20709d338e000000
- .8byte 0x1e535a2f80000000
- .8byte 0x1cef904e64000000
- .8byte 0x1b0d639830000000
- .8byte 0x1964ce7d24000000
- .8byte 0x17b908bf16000000
-
-L(pio4):
- .8byte 0x3fe921fb54442d18 /* PI/4 */
-
-/* PI/2 as a sum of two doubles. We only use 32 bits of the upper limb
- to avoid losing significant bits when multiplying with up to
- (2^22)/(pi/2). */
-L(pio2hi):
- .8byte 0xbff921fb54400000
-
-L(pio2lo):
- .8byte 0xbdd0b4611a626332
-
-L(pio2_table):
- .8byte 0
- .8byte 0x3ff921fb54442d18 /* 1 * PI/2 */
- .8byte 0x400921fb54442d18 /* 2 * PI/2 */
- .8byte 0x4012d97c7f3321d2 /* 3 * PI/2 */
- .8byte 0x401921fb54442d18 /* 4 * PI/2 */
- .8byte 0x401f6a7a2955385e /* 5 * PI/2 */
- .8byte 0x4022d97c7f3321d2 /* 6 * PI/2 */
- .8byte 0x4025fdbbe9bba775 /* 7 * PI/2 */
- .8byte 0x402921fb54442d18 /* 8 * PI/2 */
- .8byte 0x402c463abeccb2bb /* 9 * PI/2 */
- .8byte 0x402f6a7a2955385e /* 10 * PI/2 */
-
-L(small):
- .8byte 0x3cd0000000000000 /* 2^-50 */
-
-L(ones):
- .8byte 0x3ff0000000000000 /* +1.0 */
- .8byte 0xbff0000000000000 /* -1.0 */
-
-L(DPhalf):
- .8byte 0x3fe0000000000000 /* 0.5 */
-
-L(DPone):
- .8byte 0x3ff0000000000000 /* 1.0 */
-
-L(DPtwo):
- .8byte 0x4000000000000000 /* 2.0 */
-
-libm_alias_float (__sin, sin)
diff --git a/sysdeps/powerpc/powerpc64/power8/fpu/w_expf.c b/sysdeps/powerpc/powerpc64/power8/fpu/w_expf.c
deleted file mode 100644
index b5fe164520..0000000000
--- a/sysdeps/powerpc/powerpc64/power8/fpu/w_expf.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/../math/w_expf.c>
diff --git a/sysdeps/powerpc/powerpc64/power8/memchr.S b/sysdeps/powerpc/powerpc64/power8/memchr.S
index 45ba1b479a..2d16bac464 100644
--- a/sysdeps/powerpc/powerpc64/power8/memchr.S
+++ b/sysdeps/powerpc/powerpc64/power8/memchr.S
@@ -1,5 +1,5 @@
/* Optimized memchr implementation for POWER8.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,27 +14,16 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
/* void *[r3] memchr (const void *s [r3], int c [r4], size_t n [r5]) */
-/* TODO: change these to the actual instructions when the minimum required
- binutils allows it. */
-#define MTVRD(v, r) .long (0x7c000167 | ((v)<<(32-11)) | ((r)<<(32-16)))
-#define MFVRD(r, v) .long (0x7c000067 | ((v)<<(32-11)) | ((r)<<(32-16)))
-#define VBPERMQ(t, a, b) .long (0x1000054c \
- | ((t)<<(32-11)) \
- | ((a)<<(32-16)) \
- | ((b)<<(32-21)) )
-
#ifndef MEMCHR
# define MEMCHR __memchr
#endif
-/* TODO: change this to .machine power8 when the minimum required binutils
- allows it. */
- .machine power7
+ .machine power8
ENTRY_TOCLESS (MEMCHR)
CALL_MCOUNT 3
dcbt 0, r3
@@ -97,7 +86,7 @@ L(align_qw):
li r0, 0
lvsl v11, r0, r0
vslb v10, v11, v10
- MTVRD(v1, r4)
+ mtvrd v1, r4
vspltb v1, v1, 7
cmpldi r5, 64
ble L(tail64)
@@ -210,10 +199,10 @@ L(tail64):
.align 4
L(found):
/* Permute the first bit of each byte into bits 48-63. */
- VBPERMQ(v6, v6, v10)
- VBPERMQ(v7, v7, v10)
- VBPERMQ(v8, v8, v10)
- VBPERMQ(v9, v9, v10)
+ vbpermq v6, v6, v10
+ vbpermq v7, v7, v10
+ vbpermq v8, v8, v10
+ vbpermq v9, v9, v10
/* Shift each component into its correct position for merging. */
#ifdef __LITTLE_ENDIAN__
vsldoi v7, v7, v7, 2
@@ -228,7 +217,7 @@ L(found):
vor v11, v6, v7
vor v4, v9, v8
vor v4, v11, v4
- MFVRD(r5, v4)
+ mfvrd r5, v4
#ifdef __LITTLE_ENDIAN__
addi r6, r5, -1
andc r6, r6, r5
@@ -243,16 +232,16 @@ L(found):
.align 4
L(found_16B):
/* Permute the first bit of each byte into bits 48-63. */
- VBPERMQ(v6, v6, v10)
+ vbpermq v6, v6, v10
/* Shift each component into its correct position for merging. */
#ifdef __LITTLE_ENDIAN__
- MFVRD(r7, v6)
+ mfvrd r7, v6
addi r6, r7, -1
andc r6, r6, r7
popcntd r6, r6
#else
vsldoi v6, v6, v6, 6
- MFVRD(r7, v6)
+ mfvrd r7, v6
cntlzd r6, r7 /* Count leading zeros before the match. */
#endif
add r3, r8, r6 /* Compute final length. */
diff --git a/sysdeps/powerpc/powerpc64/power8/memcmp.S b/sysdeps/powerpc/powerpc64/power8/memcmp.S
index ec4ccf3382..41b440ea5a 100644
--- a/sysdeps/powerpc/powerpc64/power8/memcmp.S
+++ b/sysdeps/powerpc/powerpc64/power8/memcmp.S
@@ -1,5 +1,5 @@
/* Optimized memcmp implementation for POWER7/PowerPC64.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
@@ -22,13 +22,10 @@
const char *s2 [r4],
size_t size [r5]) */
-/* TODO: change these to the actual instructions when the minimum required
- binutils allows it. */
-#define MFVRD(r,v) .long (0x7c000067 | ((v)<<(32-11)) | ((r)<<(32-16)))
#ifndef MEMCMP
# define MEMCMP memcmp
#endif
- .machine power7
+ .machine power8
ENTRY_TOCLESS (MEMCMP, 4)
CALL_MCOUNT 3
@@ -231,15 +228,15 @@ L(different2):
vperm v4, v4, v0, v9
vperm v5, v5, v0, v9
#endif
- MFVRD(r7, v4)
- MFVRD(r9, v5)
+ mfvrd r7, v4
+ mfvrd r9, v5
cmpld cr6, r7, r9
bne cr6, L(ret_diff)
/* Difference in second DW. */
vsldoi v4, v4, v4, 8
vsldoi v5, v5, v5, 8
- MFVRD(r7, v4)
- MFVRD(r9, v5)
+ mfvrd r7, v4
+ mfvrd r9, v5
cmpld cr6, r7, r9
L(ret_diff):
li rRTN, 1
@@ -256,15 +253,15 @@ L(different3):
vperm v6, v6, v0, v9
vperm v8, v8, v0, v9
#endif
- MFVRD(r7, v6)
- MFVRD(r9, v8)
+ mfvrd r7, v6
+ mfvrd r9, v8
cmpld cr6, r7, r9
bne cr6, L(ret_diff)
/* Difference in second DW. */
vsldoi v6, v6, v6, 8
vsldoi v8, v8, v8, 8
- MFVRD(r7, v6)
- MFVRD(r9, v8)
+ mfvrd r7, v6
+ mfvrd r9, v8
cmpld cr6, r7, r9
li rRTN, 1
bgtlr cr6
diff --git a/sysdeps/powerpc/powerpc64/power8/memrchr.S b/sysdeps/powerpc/powerpc64/power8/memrchr.S
index 54de6566bd..59f063e867 100644
--- a/sysdeps/powerpc/powerpc64/power8/memrchr.S
+++ b/sysdeps/powerpc/powerpc64/power8/memrchr.S
@@ -1,5 +1,5 @@
/* Optimized memrchr implementation for PowerPC64/POWER8.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-2019 Free Software Foundation, Inc.
Contributed by Luis Machado <luisgpm@br.ibm.com>.
This file is part of the GNU C Library.
@@ -15,24 +15,16 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
/* int [r3] memrchr (char *s [r3], int byte [r4], int size [r5]) */
-/* TODO: change these to the actual instructions when the minimum required
- binutils allows it. */
-#define MTVRD(v, r) .long (0x7c000167 | ((v)<<(32-11)) | ((r)<<(32-16)))
-#define MFVRD(r, v) .long (0x7c000067 | ((v)<<(32-11)) | ((r)<<(32-16)))
-#define VBPERMQ(t, a, b) .long (0x1000054c \
- | ((t)<<(32-11)) \
- | ((a)<<(32-16)) \
- | ((b)<<(32-21)) )
#ifndef MEMRCHR
# define MEMRCHR __memrchr
#endif
- .machine power7
+ .machine power8
ENTRY_TOCLESS (MEMRCHR)
CALL_MCOUNT 3
add r7, r3, r5 /* Calculate the last acceptable address. */
@@ -92,7 +84,7 @@ L(align_qw):
li r0, 0
lvsl v11, r0, r0
vslb v10, v11, v10
- MTVRD(v1, r4)
+ mtvrd v1, r4
vspltb v1, v1, 7
cmpldi r5, 64
ble L(tail64)
@@ -205,10 +197,10 @@ L(tail64):
.align 4
L(found):
/* Permute the first bit of each byte into bits 48-63. */
- VBPERMQ(v6, v6, v10)
- VBPERMQ(v7, v7, v10)
- VBPERMQ(v8, v8, v10)
- VBPERMQ(v9, v9, v10)
+ vbpermq v6, v6, v10
+ vbpermq v7, v7, v10
+ vbpermq v8, v8, v10
+ vbpermq v9, v9, v10
/* Shift each component into its correct position for merging. */
#ifdef __LITTLE_ENDIAN__
vsldoi v7, v7, v7, 2
@@ -223,7 +215,7 @@ L(found):
vor v11, v6, v7
vor v4, v9, v8
vor v4, v11, v4
- MFVRD(r5, v4)
+ mfvrd r5, v4
#ifdef __LITTLE_ENDIAN__
cntlzd r6, r5 /* Count leading zeros before the match. */
#else
@@ -245,7 +237,7 @@ L(found_16B):
bge L(last)
/* Now discard bytes before starting address. */
sub r9, r10, r8
- MTVRD(v9, r9)
+ mtvrd v9, r9
vspltisb v8, 3
/* Mask unwanted bytes. */
#ifdef __LITTLE_ENDIAN__
@@ -263,14 +255,14 @@ L(found_16B):
#endif
L(last):
/* Permute the first bit of each byte into bits 48-63. */
- VBPERMQ(v6, v6, v10)
+ vbpermq v6, v6, v10
/* Shift each component into its correct position for merging. */
#ifdef __LITTLE_ENDIAN__
vsldoi v6, v6, v6, 6
- MFVRD(r7, v6)
+ mfvrd r7, v6
cntlzd r6, r7 /* Count leading zeros before the match. */
#else
- MFVRD(r7, v6)
+ mfvrd r7, v6
addi r6, r7, -1
andc r6, r6, r7
popcntd r6, r6
diff --git a/sysdeps/powerpc/powerpc64/power8/memset.S b/sysdeps/powerpc/powerpc64/power8/memset.S
index a42232b42a..8f453de5a8 100644
--- a/sysdeps/powerpc/powerpc64/power8/memset.S
+++ b/sysdeps/powerpc/powerpc64/power8/memset.S
@@ -1,5 +1,5 @@
/* Optimized memset implementation for PowerPC64/POWER8.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,23 +14,17 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
-#define MTVSRD_V1_R4 .long 0x7c240166 /* mtvsrd v1,r4 */
-
/* void * [r3] memset (void *s [r3], int c [r4], size_t n [r5]));
Returns 's'. */
#ifndef MEMSET
# define MEMSET memset
#endif
-
- /* No need to use .machine power8 since mtvsrd is already
- handled by the define. It avoid breakage on binutils
- that does not support this machine specifier. */
- .machine power7
+ .machine power8
ENTRY_TOCLESS (MEMSET, 5)
CALL_MCOUNT 3
@@ -151,7 +145,7 @@ L(tail_bytes):
vector instruction to achieve best throughput. */
L(huge_vector):
/* Replicate set byte to quadword in VMX register. */
- MTVSRD_V1_R4
+ mtvsrd v1,r4
xxpermdi 32,v0,v1,0
vspltb v2,v0,15
diff --git a/sysdeps/powerpc/powerpc64/power8/stpcpy.S b/sysdeps/powerpc/powerpc64/power8/stpcpy.S
index ebdfaab97c..39b373793b 100644
--- a/sysdeps/powerpc/powerpc64/power8/stpcpy.S
+++ b/sysdeps/powerpc/powerpc64/power8/stpcpy.S
@@ -1,5 +1,5 @@
/* Optimized stpcpy implementation for PowerPC64/POWER8.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define USE_AS_STPCPY
#include <sysdeps/powerpc/powerpc64/power8/strcpy.S>
diff --git a/sysdeps/powerpc/powerpc64/power8/stpncpy.S b/sysdeps/powerpc/powerpc64/power8/stpncpy.S
index 95c86e9677..9c6665710a 100644
--- a/sysdeps/powerpc/powerpc64/power8/stpncpy.S
+++ b/sysdeps/powerpc/powerpc64/power8/stpncpy.S
@@ -1,5 +1,5 @@
/* Optimized stpncpy implementation for PowerPC64/POWER8.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define USE_AS_STPNCPY
#include <sysdeps/powerpc/powerpc64/power8/strncpy.S>
diff --git a/sysdeps/powerpc/powerpc64/power8/strcasecmp.S b/sysdeps/powerpc/powerpc64/power8/strcasecmp.S
index 3a2efe2a64..e3478cddca 100644
--- a/sysdeps/powerpc/powerpc64/power8/strcasecmp.S
+++ b/sysdeps/powerpc/powerpc64/power8/strcasecmp.S
@@ -1,5 +1,5 @@
/* Optimized strcasecmp implementation for PowerPC64.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <locale-defines.h>
@@ -91,21 +91,7 @@
3: \
TOLOWER()
-#ifdef _ARCH_PWR8
-# define VCLZD_V8_v7 vclzd v8, v7;
-# define MFVRD_R3_V1 mfvrd r3, v1;
-# define VSUBUDM_V9_V8 vsubudm v9, v9, v8;
-# define VPOPCNTD_V8_V8 vpopcntd v8, v8;
-# define VADDUQM_V7_V8 vadduqm v9, v7, v8;
-#else
-# define VCLZD_V8_v7 .long 0x11003fc2
-# define MFVRD_R3_V1 .long 0x7c230067
-# define VSUBUDM_V9_V8 .long 0x112944c0
-# define VPOPCNTD_V8_V8 .long 0x110047c3
-# define VADDUQM_V7_V8 .long 0x11274100
-#endif
-
- .machine power7
+ .machine power8
ENTRY (__STRCASECMP)
#ifdef USE_AS_STRNCASECMP
@@ -265,15 +251,15 @@ L(different):
#ifdef __LITTLE_ENDIAN__
/* Count trailing zero. */
vspltisb v8, -1
- VADDUQM_V7_V8
+ vadduqm v9, v7, v8
vandc v8, v9, v7
- VPOPCNTD_V8_V8
+ vpopcntd v8, v8
vspltb v6, v8, 15
vcmpequb. v6, v6, v1
blt cr6, L(shift8)
#else
/* Count leading zero. */
- VCLZD_V8_v7
+ vclzd v8, v7
vspltb v6, v8, 7
vcmpequb. v6, v6, v1
blt cr6, L(shift8)
@@ -291,7 +277,7 @@ L(skipsum):
/* Merge and move to GPR. */
vmrglb v6, v6, v7
vslo v1, v6, v1
- MFVRD_R3_V1
+ mfvrd r3, v1
/* Place the characters that are different in first position. */
sldi rSTR2, rRTN, 56
srdi rSTR2, rSTR2, 56
@@ -301,7 +287,7 @@ L(skipsum):
vslo v6, v5, v8
vslo v7, v4, v8
vmrghb v1, v6, v7
- MFVRD_R3_V1
+ mfvrd r3, v1
srdi rSTR2, rRTN, 48
sldi rSTR2, rSTR2, 56
srdi rSTR2, rSTR2, 56
@@ -320,15 +306,15 @@ L(null_found):
#ifdef __LITTLE_ENDIAN__
/* Count trailing zero. */
vspltisb v8, -1
- VADDUQM_V7_V8
+ vadduqm v9, v7, v8
vandc v8, v9, v7
- VPOPCNTD_V8_V8
+ vpopcntd v8, v8
vspltb v6, v8, 15
vcmpequb. v6, v6, v10
blt cr6, L(shift_8)
#else
/* Count leading zero. */
- VCLZD_V8_v7
+ vclzd v8, v7
vspltb v6, v8, 7
vcmpequb. v6, v6, v10
blt cr6, L(shift_8)
@@ -343,10 +329,10 @@ L(skipsum1):
vspltisb v10, 7
vslb v10, v10, v10
vsldoi v9, v0, v10, 1
- VSUBUDM_V9_V8
+ vsubudm v9, v9, v8
vspltisb v8, 8
vsldoi v8, v0, v8, 1
- VSUBUDM_V9_V8
+ vsubudm v9, v9, v8
/* Shift and remove junk after null character. */
#ifdef __LITTLE_ENDIAN__
vslo v5, v5, v9
diff --git a/sysdeps/powerpc/powerpc64/power8/strcasestr-ppc64.c b/sysdeps/powerpc/powerpc64/power8/strcasestr-ppc64.c
index 221d4733f4..46f7b80b5e 100644
--- a/sysdeps/powerpc/powerpc64/power8/strcasestr-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/power8/strcasestr-ppc64.c
@@ -1,5 +1,5 @@
/* Optimized strcasestr implementation for PowerPC64/POWER8.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/sysdeps/powerpc/powerpc64/power8/strcasestr.S b/sysdeps/powerpc/powerpc64/power8/strcasestr.S
index 9fc24c29f9..c603037d83 100644
--- a/sysdeps/powerpc/powerpc64/power8/strcasestr.S
+++ b/sysdeps/powerpc/powerpc64/power8/strcasestr.S
@@ -1,5 +1,5 @@
/* Optimized strcasestr implementation for PowerPC64/POWER8.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <locale-defines.h>
@@ -73,18 +73,8 @@
vor reg, v8, reg; \
vcmpequb. v6, reg, v4;
-/* TODO: change these to the actual instructions when the minimum required
- binutils allows it. */
-#ifdef _ARCH_PWR8
-#define VCLZD_V8_v7 vclzd v8, v7;
-#else
-#define VCLZD_V8_v7 .long 0x11003fc2
-#endif
-
#define FRAMESIZE (FRAME_MIN_SIZE+48)
-/* TODO: change this to .machine power8 when the minimum required binutils
- allows it. */
- .machine power7
+ .machine power8
ENTRY (STRCASESTR, 4)
CALL_MCOUNT 2
mflr r0 /* Load link register LR to r0. */
@@ -291,7 +281,7 @@ L(nullchk1):
vcmpequb. v6, v0, v7
/* Shift r3 by 16 bytes and proceed. */
blt cr6, L(shift16)
- VCLZD_V8_v7
+ vclzd v8, v7
#ifdef __LITTLE_ENDIAN__
vspltb v6, v8, 15
#else
diff --git a/sysdeps/powerpc/powerpc64/power8/strchr.S b/sysdeps/powerpc/powerpc64/power8/strchr.S
index c5e28d9c9e..3d61bf9d03 100644
--- a/sysdeps/powerpc/powerpc64/power8/strchr.S
+++ b/sysdeps/powerpc/powerpc64/power8/strchr.S
@@ -1,5 +1,5 @@
/* Optimized strchr implementation for PowerPC64/POWER8.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
@@ -33,17 +33,7 @@
#endif /* !USE_AS_STRCHRNUL */
/* int [r3] strchr (char *s [r3], int c [r4]) */
-/* TODO: change these to the actual instructions when the minimum required
- binutils allows it. */
-#define MTVRD(v,r) .long (0x7c000167 | ((v)<<(32-11)) | ((r)<<(32-16)))
-#define MFVRD(r,v) .long (0x7c000067 | ((v)<<(32-11)) | ((r)<<(32-16)))
-#define VBPERMQ(t,a,b) .long (0x1000054c \
- | ((t)<<(32-11)) \
- | ((a)<<(32-16)) \
- | ((b)<<(32-21)) )
-/* TODO: change this to .machine power8 when the minimum required binutils
- allows it. */
- .machine power7
+ .machine power8
ENTRY_TOCLESS (FUNC_NAME)
CALL_MCOUNT 2
dcbt 0,r3
@@ -178,7 +168,7 @@ L(vector):
vspltisb v10, 3
lvsl v11, r0, r0
vslb v10, v11, v10
- MTVRD(v1,r4)
+ mtvrd v1, r4
li r5, 16
vspltb v1, v1, 7
/* Compare 32 bytes in each loop. */
@@ -202,10 +192,10 @@ L(continue):
blt cr6, L(no_match)
#endif
/* Permute the first bit of each byte into bits 48-63. */
- VBPERMQ(v2, v2, v10)
- VBPERMQ(v3, v3, v10)
- VBPERMQ(v6, v6, v10)
- VBPERMQ(v7, v7, v10)
+ vbpermq v2, v2, v10
+ vbpermq v3, v3, v10
+ vbpermq v6, v6, v10
+ vbpermq v7, v7, v10
/* Shift each component into its correct position for merging. */
#ifdef __LITTLE_ENDIAN__
vsldoi v3, v3, v3, 2
@@ -221,7 +211,7 @@ L(continue):
vor v1, v3, v2
vor v2, v6, v7
vor v4, v1, v2
- MFVRD(r5, v4)
+ mfvrd r5, v4
#ifdef __LITTLE_ENDIAN__
addi r6, r5, -1
andc r6, r6, r5
@@ -347,8 +337,8 @@ L(continue1):
blt cr6, L(continue1)
addi r3, r3, -32
L(end1):
- VBPERMQ(v2, v2, v10)
- VBPERMQ(v3, v3, v10)
+ vbpermq v2, v2, v10
+ vbpermq v3, v3, v10
/* Shift each component into its correct position for merging. */
#ifdef __LITTLE_ENDIAN__
vsldoi v3, v3, v3, 2
@@ -359,7 +349,7 @@ L(end1):
/* Merge the results and move to a GPR. */
vor v4, v3, v2
- MFVRD(r5, v4)
+ mfvrd r5, v4
#ifdef __LITTLE_ENDIAN__
addi r6, r5, -1
andc r6, r6, r5
diff --git a/sysdeps/powerpc/powerpc64/power8/strchrnul.S b/sysdeps/powerpc/powerpc64/power8/strchrnul.S
index 022ad67a6b..542d06a285 100644
--- a/sysdeps/powerpc/powerpc64/power8/strchrnul.S
+++ b/sysdeps/powerpc/powerpc64/power8/strchrnul.S
@@ -1,5 +1,5 @@
/* Optimized strchrnul implementation for PowerPC64/POWER8.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define USE_AS_STRCHRNUL 1
#include <sysdeps/powerpc/powerpc64/power8/strchr.S>
diff --git a/sysdeps/powerpc/powerpc64/power8/strcmp.S b/sysdeps/powerpc/powerpc64/power8/strcmp.S
index 15e7351d1b..ae222cb206 100644
--- a/sysdeps/powerpc/powerpc64/power8/strcmp.S
+++ b/sysdeps/powerpc/powerpc64/power8/strcmp.S
@@ -1,5 +1,5 @@
/* Optimized strcmp implementation for PowerPC64/POWER8.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
@@ -31,6 +31,7 @@
64K as default, the page cross handling assumes minimum page size of
4k. */
+ .machine power8
ENTRY_TOCLESS (STRCMP, 4)
li r0,0
diff --git a/sysdeps/powerpc/powerpc64/power8/strcpy.S b/sysdeps/powerpc/powerpc64/power8/strcpy.S
index 956faf714f..1aee249dcd 100644
--- a/sysdeps/powerpc/powerpc64/power8/strcpy.S
+++ b/sysdeps/powerpc/powerpc64/power8/strcpy.S
@@ -1,5 +1,5 @@
/* Optimized strcpy/stpcpy implementation for PowerPC64/POWER8.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc64/power8/strcspn.S b/sysdeps/powerpc/powerpc64/power8/strcspn.S
index c2d130e7db..ce623b8f14 100644
--- a/sysdeps/powerpc/powerpc64/power8/strcspn.S
+++ b/sysdeps/powerpc/powerpc64/power8/strcspn.S
@@ -1,5 +1,5 @@
/* Optimized strcspn implementation for PowerPC64/POWER8.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define USE_AS_STRCSPN 1
#include <sysdeps/powerpc/powerpc64/power8/strspn.S>
diff --git a/sysdeps/powerpc/powerpc64/power8/strlen.S b/sysdeps/powerpc/powerpc64/power8/strlen.S
index 719b5c604c..bc9011cc2e 100644
--- a/sysdeps/powerpc/powerpc64/power8/strlen.S
+++ b/sysdeps/powerpc/powerpc64/power8/strlen.S
@@ -1,6 +1,6 @@
/* Optimized strlen implementation for PowerPC64/POWER8 using a vectorized
loop.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -15,27 +15,16 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
-/* TODO: change these to the actual instructions when the minimum required
- binutils allows it. */
-#define MFVRD(r,v) .long (0x7c000067 | ((v)<<(32-11)) | ((r)<<(32-16)))
-#define VBPERMQ(t,a,b) .long (0x1000054c \
- | ((t)<<(32-11)) \
- | ((a)<<(32-16)) \
- | ((b)<<(32-21)) )
-
/* int [r3] strlen (char *s [r3]) */
#ifndef STRLEN
# define STRLEN strlen
#endif
-
-/* TODO: change this to .machine power8 when the minimum required binutils
- allows it. */
- .machine power7
+ .machine power8
ENTRY_TOCLESS (STRLEN, 4)
CALL_MCOUNT 1
dcbt 0,r3
@@ -250,10 +239,10 @@ L(vmx_zero):
vslb v10,v11,v10
/* Permute the first bit of each byte into bits 48-63. */
- VBPERMQ(v1,v1,v10)
- VBPERMQ(v2,v2,v10)
- VBPERMQ(v3,v3,v10)
- VBPERMQ(v4,v4,v10)
+ vbpermq v1,v1,v10
+ vbpermq v2,v2,v10
+ vbpermq v3,v3,v10
+ vbpermq v4,v4,v10
/* Shift each component into its correct position for merging. */
#ifdef __LITTLE_ENDIAN__
@@ -270,7 +259,7 @@ L(vmx_zero):
vor v1,v2,v1
vor v2,v3,v4
vor v4,v1,v2
- MFVRD(r10,v4)
+ mfvrd r10,v4
/* Adjust address to the begninning of the current 64-byte block. */
addi r4,r4,-64
diff --git a/sysdeps/powerpc/powerpc64/power8/strncase.S b/sysdeps/powerpc/powerpc64/power8/strncase.S
index 050b63ab91..d517ecf85c 100644
--- a/sysdeps/powerpc/powerpc64/power8/strncase.S
+++ b/sysdeps/powerpc/powerpc64/power8/strncase.S
@@ -1,5 +1,5 @@
/* Optimized strncasecmp implementation for POWER8.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define USE_AS_STRNCASECMP 1
#include <sysdeps/powerpc/powerpc64/power8/strcasecmp.S>
diff --git a/sysdeps/powerpc/powerpc64/power8/strncmp.S b/sysdeps/powerpc/powerpc64/power8/strncmp.S
index 2eefa4a2ba..2efbe97631 100644
--- a/sysdeps/powerpc/powerpc64/power8/strncmp.S
+++ b/sysdeps/powerpc/powerpc64/power8/strncmp.S
@@ -1,5 +1,5 @@
/* Optimized strncmp implementation for PowerPC64/POWER8.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
@@ -31,7 +31,7 @@
64K as default, the page cross handling assumes minimum page size of
4k. */
- .machine power7
+ .machine power8
ENTRY_TOCLESS (STRNCMP, 4)
/* Check if size is 0. */
mr. r10,r5
diff --git a/sysdeps/powerpc/powerpc64/power8/strncpy.S b/sysdeps/powerpc/powerpc64/power8/strncpy.S
index e8c5c71f87..767e546c3b 100644
--- a/sysdeps/powerpc/powerpc64/power8/strncpy.S
+++ b/sysdeps/powerpc/powerpc64/power8/strncpy.S
@@ -1,5 +1,5 @@
/* Optimized strncpy/stpncpy implementation for PowerPC64/POWER8.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
@@ -60,7 +60,7 @@
64K as default, the page cross handling assumes minimum page size of
4k. */
- .machine power7
+ .machine power8
#ifdef MEMSET_is_local
ENTRY_TOCLESS (FUNC_NAME, 4)
#else
diff --git a/sysdeps/powerpc/powerpc64/power8/strnlen.S b/sysdeps/powerpc/powerpc64/power8/strnlen.S
index a98dfba4bd..90ec21db58 100644
--- a/sysdeps/powerpc/powerpc64/power8/strnlen.S
+++ b/sysdeps/powerpc/powerpc64/power8/strnlen.S
@@ -1,6 +1,6 @@
/* Optimized strnlen implementation for POWER8 using a vmx loop.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -12,7 +12,7 @@
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* It is implemented the following heuristic:
1. Case maxlen <= 32: align the pointer to 8 bytes to loop through
@@ -33,32 +33,9 @@
/* Define default page size to 4KB. */
#define PAGE_SIZE 4096
-/* The following macros implement Power ISA v2.07 opcodes
- that could not be used directly into this code to the keep
- compatibility with older binutils versions. */
-
-/* Move from vector register doubleword. */
-#define MFVRD(r,v) .long (0x7c000067 | ((v)<<(32-11)) | ((r)<<(32-16)))
-
-/* Move to vector register doubleword. */
-#define MTVRD(v,r) .long (0x7c000167 | ((v)<<(32-11)) | ((r)<<(32-16)))
-
-/* Vector Bit Permute Quadword. */
-#define VBPERMQ(t,a,b) .long (0x1000054c \
- | ((t)<<(32-11)) \
- | ((a)<<(32-16)) \
- | ((b)<<(32-21)) )
-
-/* Vector Population Count Halfword. */
-#define VPOPCNTH(t,b) .long (0x10000743 | ((t)<<(32-11)) | ((b)<<(32-21)))
-
-/* Vector Count Leading Zeros Halfword. */
-#define VCLZH(t,b) .long (0x10000742 | ((t)<<(32-11)) | ((b)<<(32-21)))
-
/* int [r3] strnlen (char *s [r3], size_t maxlen [r4]) */
-/* TODO: change to power8 when minimum required binutils allows it. */
- .machine power7
+ .machine power8
ENTRY_TOCLESS (__strnlen)
CALL_MCOUNT 2
dcbt 0,r3
@@ -207,7 +184,7 @@ L(smaller):
/* Place rounded up number of qw's to check into a vmx
register, and use some vector tricks to minimize
branching. */
- MTVRD(v7,r4) /* Copy maxlen from GPR to vector register. */
+ mtvrd v7,r4 /* copy maxlen from gpr to vector register. */
vspltisb v5,1
vspltisb v6,15
vspltb v2,v7,7
@@ -229,20 +206,20 @@ L(loop_16B):
beq cr6,L(loop_16B) /* If null bytes not found. */
vcmpequb v1,v1,v0
- VBPERMQ(v1,v1,v10)
+ vbpermq v1,v1,v10
#ifdef __LITTLE_ENDIAN__
vsubuhm v2,v1,v5 /* Form a mask of trailing zeros. */
vandc v2,v2,v1
- VPOPCNTH(v1,v2) /* Count of trailing zeros, 16 if none. */
+ vpopcnth v1,v2 /* count of trailing zeros, 16 if none. */
#else
- VCLZH(v1,v1) /* Count the leading zeros, 16 if none. */
+ vclzh v1,v1 /* count the leading zeros, 16 if none. */
#endif
/* Truncate to maximum allowable offset. */
vcmpgtub v2,v1,v7 /* Compare and truncate for matches beyond
maxlen. */
vsel v1,v1,v7,v2 /* 0-16 is now in byte 7. */
- MFVRD(r0,v1)
+ mfvrd r0,v1
addi r5,r5,-16 /* Undo speculative bump. */
extsb r0,r0 /* Clear whatever gunk is in the high 56b. */
add r5,r5,r0 /* Add the offset of whatever was found. */
@@ -262,10 +239,10 @@ L(found_64B):
vcmpequb v4,v4,v0
/* Permute the first bit of each byte into bits 48-63. */
- VBPERMQ(v1,v1,v10)
- VBPERMQ(v2,v2,v10)
- VBPERMQ(v3,v3,v10)
- VBPERMQ(v4,v4,v10)
+ vbpermq v1,v1,v10
+ vbpermq v2,v2,v10
+ vbpermq v3,v3,v10
+ vbpermq v4,v4,v10
/* Shift each component into its correct position for merging. */
#ifdef __LITTLE_ENDIAN__
@@ -286,7 +263,7 @@ L(found_64B):
/* Adjust address to the start of the current 64B block. */
addi r5,r5,-64
- MFVRD(r10,v4)
+ mfvrd r10,v4
#ifdef __LITTLE_ENDIAN__
addi r9,r10,-1 /* Form a mask from trailing zeros. */
andc r9,r9,r10
@@ -302,15 +279,15 @@ L(found_64B):
as a preparation for the 64B loop. */
.p2align 4
L(found_aligning64B):
- VBPERMQ(v1,v1,v10)
+ vbpermq v1,v1,v10
#ifdef __LITTLE_ENDIAN__
- MFVRD(r10,v1)
+ mfvrd r10,v1
addi r9,r10,-1 /* Form a mask from trailing zeros. */
andc r9,r9,r10
popcntd r0,r9 /* Count the bits in the mask. */
#else
vsldoi v1,v1,v1,6
- MFVRD(r10,v1)
+ mfvrd r10,v1
cntlzd r0,r10 /* Count leading zeros before the match. */
#endif
addi r5,r5,-16 /* Adjust address to offset of last 16 bytes
diff --git a/sysdeps/powerpc/powerpc64/power8/strrchr.S b/sysdeps/powerpc/powerpc64/power8/strrchr.S
index 6ff8a528b6..30f627cb92 100644
--- a/sysdeps/powerpc/powerpc64/power8/strrchr.S
+++ b/sysdeps/powerpc/powerpc64/power8/strrchr.S
@@ -1,5 +1,5 @@
/* Optimized strrchr implementation for PowerPC64/POWER7 using cmpb insn.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,31 +14,18 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
/* char *[r3] strrchr (char *s [r3], int c [r4]) */
-/* TODO: change these to the actual instructions when the minimum required
- binutils allows it. */
-#define MTVRD(v,r) .long (0x7c000167 | ((v)<<(32-11)) | ((r)<<(32-16)))
-#define MFVRD(r,v) .long (0x7c000067 | ((v)<<(32-11)) | ((r)<<(32-16)))
-#define VBPERMQ(t,a,b) .long (0x1000054c \
- | ((t)<<(32-11)) \
- | ((a)<<(32-16)) \
- | ((b)<<(32-21)) )
-#define VCLZD(r,v) .long (0x100007c2 | ((r)<<(32-11)) | ((v)<<(32-21)))
-#define VPOPCNTD(r,v) .long (0x100007c3 | ((r)<<(32-11)) | ((v)<<(32-21)))
-#define VADDUQM(t,a,b) .long (0x10000100 \
- | ((t)<<(32-11)) \
- | ((a)<<(32-16)) \
- | ((b)<<(32-21)) )
+
#ifdef __LITTLE_ENDIAN__
/* Find the match position from v6 and place result in r6. */
# define CALCULATE_MATCH() \
- VBPERMQ(v6, v6, v10); \
+ vbpermq v6, v6, v10; \
vsldoi v6, v6, v6, 6; \
- MFVRD(r7, v6); \
+ mfvrd r7, v6; \
cntlzd r6, r7; \
subfic r6, r6, 15;
/*
@@ -48,9 +35,9 @@
*/
# define FIND_NULL_POS(reg) \
vspltisb v11, -1; \
- VADDUQM(v11, reg, v11); \
+ vadduqm v11, reg, v11; \
vandc v11, v11, reg; \
- VPOPCNTD(v2, v11); \
+ vpopcntd v2, v11; \
vspltb v11, v2, 15; \
vcmpequb. v11, v11, v9; \
blt cr6, 1f; \
@@ -60,14 +47,14 @@
vsumsws v2, v2, v0;
#else
# define CALCULATE_MATCH() \
- VBPERMQ(v6, v6, v10); \
- MFVRD(r7, v6); \
+ vbpermq v6, v6, v10; \
+ mfvrd r7, v6; \
addi r6, r7, -1; \
andc r6, r6, r7; \
popcntd r6, r6; \
subfic r6, r6, 15;
# define FIND_NULL_POS(reg) \
- VCLZD(v2, reg); \
+ vclzd v2, reg; \
vspltb v11, v2, 7; \
vcmpequb. v11, v11, v9; \
blt cr6, 1f; \
@@ -80,7 +67,7 @@
#ifndef STRRCHR
# define STRRCHR strrchr
#endif
- .machine power7
+ .machine power8
ENTRY_TOCLESS (STRRCHR)
CALL_MCOUNT 2
dcbt 0,r3
@@ -243,7 +230,7 @@ L(vector):
vspltisb v10, 3
lvsl v11, r0, r0
vslb v10, v11, v10
- MTVRD(v1, r4)
+ mtvrd v1, r4
li r5, 16
vspltb v1, v1, 7
/* Compare 32 bytes in each loop. */
@@ -442,8 +429,8 @@ L(continue1):
addi r3, r3, 32
blt cr6, L(continue1)
addi r3, r3, -32
- VBPERMQ(v2, v2, v10)
- VBPERMQ(v3, v3, v10)
+ vbpermq v2, v2, v10
+ vbpermq v3, v3, v10
/* Shift each component into its correct position for merging. */
#ifdef __LITTLE_ENDIAN__
vsldoi v3, v3, v3, 2
@@ -453,7 +440,7 @@ L(continue1):
#endif
/* Merge the results and move to a GPR. */
vor v4, v3, v2
- MFVRD(r5, v4)
+ mfvrd r5, v4
#ifdef __LITTLE_ENDIAN__
addi r6, r5, -1
andc r6, r6, r5
diff --git a/sysdeps/powerpc/powerpc64/power8/strspn.S b/sysdeps/powerpc/powerpc64/power8/strspn.S
index 095f6d6f41..61cb01c320 100644
--- a/sysdeps/powerpc/powerpc64/power8/strspn.S
+++ b/sysdeps/powerpc/powerpc64/power8/strspn.S
@@ -1,6 +1,6 @@
/* Optimized strspn implementation for Power8.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* size_t [r3] strspn (const char *string [r3],
const char *needleAccept [r4]) */
@@ -52,22 +52,7 @@
#define XXVR(insn, vrt, vra, vrb) \
insn 32+vrt, 32+vra, 32+vrb
-/* ISA 2.07B instructions are not all defined for older binutils.
- Macros are defined below for these newer instructions in order
- to maintain compatibility. */
-
-/* Note, TX/SX is always set as VMX regs are the high 32 VSX regs. */
-#define MTVRD(v,r) .long (0x7c000167 | ((v)<<(32-11)) | ((r)<<(32-16)))
-#define MFVRD(r,v) .long (0x7c000067 | ((v)<<(32-11)) | ((r)<<(32-16)))
-
-#define VBPERMQ(t,a,b) .long (0x1000054c \
- | ((t)<<(32-11)) \
- | ((a)<<(32-16)) \
- | ((b)<<(32-21)) )
-
- /* This can be updated to power8 once the minimum version of
- binutils supports power8 and the above instructions. */
- .machine power7
+ .machine power8
ENTRY_TOCLESS (STRSPN, 4)
CALL_MCOUNT 2
@@ -135,10 +120,10 @@ L(needle_gt128):
L(start_cmp):
/* Move and merge bitmap into 2 VRs. bpermd is slower on P8. */
mr r0, r3 /* Save r3 for final length computation. */
- MTVRD (v5, r5)
- MTVRD (v6, r6)
- MTVRD (v7, r7)
- MTVRD (v8, r8)
+ mtvrd v5, r5
+ mtvrd v6, r6
+ mtvrd v7, r7
+ mtvrd v8, r8
/* Continue interleaved mask generation. */
#ifdef __LITTLE_ENDIAN__
@@ -160,8 +145,8 @@ L(start_cmp):
/* Compare the first 1-16B, while masking unwanted bytes. */
clrrdi r3, r3, 4 /* Note, counts from qw boundaries. */
vxor v9, v0, v1 /* Swap high bit. */
- VBPERMQ (v8, v5, v0)
- VBPERMQ (v7, v6, v9)
+ vbpermq v8, v5, v0
+ vbpermq v7, v6, v9
vor v7, v7, v8
vor v7, v7, v11 /* Ignore non-participating bytes. */
vcmpequh. v8, v7, v4
@@ -174,8 +159,8 @@ L(vec):
lvx v0, 0, r3
addi r3, r3, 16
vxor v9, v0, v1 /* Swap high bit. */
- VBPERMQ (v8, v5, v0)
- VBPERMQ (v7, v6, v9)
+ vbpermq v8, v5, v0
+ vbpermq v7, v6, v9
vor v7, v7, v8
vcmpequh. v8, v7, v4
blt cr6, L(vec)
@@ -183,7 +168,7 @@ L(vec):
addi r3, r3, -16
L(done):
subf r3, r0, r3
- MFVRD (r10, v7)
+ mfvrd r10, v7
#ifdef __LITTLE_ENDIAN__
addi r0, r10, 1 /* Count the trailing 1's. */
diff --git a/sysdeps/powerpc/powerpc64/power9/strcmp.S b/sysdeps/powerpc/powerpc64/power9/strcmp.S
deleted file mode 100644
index 98243a9d51..0000000000
--- a/sysdeps/powerpc/powerpc64/power9/strcmp.S
+++ /dev/null
@@ -1,268 +0,0 @@
-/* Optimized strcmp implementation for PowerPC64/POWER9.
- Copyright (C) 2016-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-#ifdef __LITTLE_ENDIAN__
-#include <sysdep.h>
-
-#ifndef STRCMP
-# define STRCMP strcmp
-#endif
-
-/* Implements the function
-
- int [r3] strcmp (const char *s1 [r3], const char *s2 [r4])
-
- The implementation uses unaligned doubleword access for first 32 bytes
- as in POWER8 patch and uses vectorised loops after that. */
-
-/* TODO: Change this to actual instructions when minimum binutils is upgraded
- to 2.27. Macros are defined below for these newer instructions in order
- to maintain compatibility. */
-# define VCTZLSBB(r,v) .long (0x10010602 | ((r)<<(32-11)) | ((v)<<(32-21)))
-
-# define VEXTUBRX(t,a,b) .long (0x1000070d \
- | ((t)<<(32-11)) \
- | ((a)<<(32-16)) \
- | ((b)<<(32-21)) )
-
-# define VCMPNEZB(t,a,b) .long (0x10000507 \
- | ((t)<<(32-11)) \
- | ((a)<<(32-16)) \
- | ((b)<<(32-21)) )
-
-/* Get 16 bytes for unaligned case.
- reg1: Vector to hold next 16 bytes.
- reg2: Address to read from.
- reg3: Permute control vector. */
-# define GET16BYTES(reg1, reg2, reg3) \
- lvx reg1, 0, reg2; \
- vperm v8, v2, reg1, reg3; \
- vcmpequb. v8, v0, v8; \
- beq cr6, 1f; \
- vspltisb v9, 0; \
- b 2f; \
- .align 4; \
-1: \
- addi r6, reg2, 16; \
- lvx v9, 0, r6; \
-2: \
- vperm reg1, v9, reg1, reg3;
-
-/* TODO: change this to .machine power9 when the minimum required binutils
- allows it. */
-
- .machine power7
-ENTRY_TOCLESS (STRCMP, 4)
- li r0, 0
-
- /* Check if [s1]+16 or [s2]+16 will cross a 4K page boundary using
- the code:
-
- (((size_t) s1) % PAGE_SIZE > (PAGE_SIZE - ITER_SIZE))
-
- with PAGE_SIZE being 4096 and ITER_SIZE begin 16. */
-
- rldicl r7, r3, 0, 52
- rldicl r9, r4, 0, 52
- cmpldi cr7, r7, 4096-16
- bgt cr7, L(pagecross_check)
- cmpldi cr5, r9, 4096-16
- bgt cr5, L(pagecross_check)
-
- /* For short strings up to 16 bytes, load both s1 and s2 using
- unaligned dwords and compare. */
- ld r8, 0(r3)
- ld r10, 0(r4)
- cmpb r12, r8, r0
- cmpb r11, r8, r10
- orc. r9, r12, r11
- bne cr0, L(different_nocmpb)
-
- ld r8, 8(r3)
- ld r10, 8(r4)
- cmpb r12, r8, r0
- cmpb r11, r8, r10
- orc. r9, r12, r11
- bne cr0, L(different_nocmpb)
-
- addi r7, r3, 16
- addi r4, r4, 16
-
-L(align):
- /* Now it has checked for first 16 bytes. */
- vspltisb v0, 0
- vspltisb v2, -1
- lvsr v6, 0, r4 /* Compute mask. */
- or r5, r4, r7
- andi. r5, r5, 0xF
- beq cr0, L(aligned)
- andi. r5, r7, 0xF
- beq cr0, L(s1_align)
- lvsr v10, 0, r7 /* Compute mask. */
-
- /* Both s1 and s2 are unaligned. */
- GET16BYTES(v4, r7, v10)
- GET16BYTES(v5, r4, v6)
- VCMPNEZB(v7, v5, v4)
- beq cr6, L(match)
- b L(different)
-
- /* Align s1 to qw and adjust s2 address. */
- .align 4
-L(match):
- clrldi r6, r7, 60
- subfic r5, r6, 16
- add r7, r7, r5
- add r4, r4, r5
- andi. r5, r4, 0xF
- beq cr0, L(aligned)
- lvsr v6, 0, r4
- /* There are 2 loops depending on the input alignment.
- Each loop gets 16 bytes from s1 and s2 and compares.
- Loop until a mismatch or null occurs. */
-L(s1_align):
- lvx v4, r7, r0
- GET16BYTES(v5, r4, v6)
- VCMPNEZB(v7, v5, v4)
- addi r7, r7, 16
- addi r4, r4, 16
- bne cr6, L(different)
-
- lvx v4, r7, r0
- GET16BYTES(v5, r4, v6)
- VCMPNEZB(v7, v5, v4)
- addi r7, r7, 16
- addi r4, r4, 16
- bne cr6, L(different)
-
- lvx v4, r7, r0
- GET16BYTES(v5, r4, v6)
- VCMPNEZB(v7, v5, v4)
- addi r7, r7, 16
- addi r4, r4, 16
- bne cr6, L(different)
-
- lvx v4, r7, r0
- GET16BYTES(v5, r4, v6)
- VCMPNEZB(v7, v5, v4)
- addi r7, r7, 16
- addi r4, r4, 16
- beq cr6, L(s1_align)
- b L(different)
-
- .align 4
-L(aligned):
- lvx v4, 0, r7
- lvx v5, 0, r4
- VCMPNEZB(v7, v5, v4)
- addi r7, r7, 16
- addi r4, r4, 16
- bne cr6, L(different)
-
- lvx v4, 0, r7
- lvx v5, 0, r4
- VCMPNEZB(v7, v5, v4)
- addi r7, r7, 16
- addi r4, r4, 16
- bne cr6, L(different)
-
- lvx v4, 0, r7
- lvx v5, 0, r4
- VCMPNEZB(v7, v5, v4)
- addi r7, r7, 16
- addi r4, r4, 16
- bne cr6, L(different)
-
- lvx v4, 0, r7
- lvx v5, 0, r4
- VCMPNEZB(v7, v5, v4)
- addi r7, r7, 16
- addi r4, r4, 16
- beq cr6, L(aligned)
-
- /* Calculate and return the difference. */
-L(different):
- VCTZLSBB(r6, v7)
- VEXTUBRX(r5, r6, v4)
- VEXTUBRX(r4, r6, v5)
- subf r3, r4, r5
- extsw r3, r3
- blr
-
- .align 4
-L(different_nocmpb):
- neg r3, r9
- and r9, r9, r3
- cntlzd r9, r9
- subfic r9, r9, 63
- srd r3, r8, r9
- srd r10, r10, r9
- rldicl r10, r10, 0, 56
- rldicl r3, r3, 0, 56
- subf r3, r10, r3
- extsw r3, r3
- blr
-
- .align 4
-L(pagecross_check):
- subfic r9, r9, 4096
- subfic r7, r7, 4096
- cmpld cr7, r7, r9
- bge cr7, L(pagecross)
- mr r7, r9
-
- /* If unaligned 16 bytes reads across a 4K page boundary, it uses
- a simple byte a byte comparison until the page alignment for s1
- is reached. */
-L(pagecross):
- add r7, r3, r7
- subf r9, r3, r7
- mtctr r9
-
- .align 4
-L(pagecross_loop):
- /* Loads a byte from s1 and s2, compare if *s1 is equal to *s2
- and if *s1 is '\0'. */
- lbz r9, 0(r3)
- lbz r10, 0(r4)
- addi r3, r3, 1
- addi r4, r4, 1
- cmplw cr7, r9, r10
- cmpdi cr5, r9, r0
- bne cr7, L(pagecross_ne)
- beq cr5, L(pagecross_nullfound)
- bdnz L(pagecross_loop)
- b L(align)
-
- .align 4
-L(pagecross_ne):
- extsw r3, r9
- mr r9, r10
-L(pagecross_retdiff):
- subf r9, r9, r3
- extsw r3, r9
- blr
-
- .align 4
-L(pagecross_nullfound):
- li r3, 0
- b L(pagecross_retdiff)
-END (STRCMP)
-libc_hidden_builtin_def (strcmp)
-#else
-#include <sysdeps/powerpc/powerpc64/power8/strcmp.S>
-#endif
diff --git a/sysdeps/powerpc/powerpc64/ppc-mcount.S b/sysdeps/powerpc/powerpc64/ppc-mcount.S
index 2d3f14d4cd..36299dac2b 100644
--- a/sysdeps/powerpc/powerpc64/ppc-mcount.S
+++ b/sysdeps/powerpc/powerpc64/ppc-mcount.S
@@ -1,5 +1,5 @@
/* PowerPC64-specific implementation of profiling support.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
/* We don't need to save the parameter-passing registers as gcc takes
@@ -38,4 +38,3 @@ ENTRY(_mcount)
addi r1,r1,FRAME_MIN_SIZE
blr
END(_mcount)
-
diff --git a/sysdeps/powerpc/powerpc64/register-dump.h b/sysdeps/powerpc/powerpc64/register-dump.h
index 57a9a02b6d..db8978f246 100644
--- a/sysdeps/powerpc/powerpc64/register-dump.h
+++ b/sysdeps/powerpc/powerpc64/register-dump.h
@@ -1,5 +1,5 @@
/* Dump registers.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/uio.h>
#include <_itoa.h>
@@ -100,15 +100,15 @@ fp28-31: 00000000000004c% 00000000000004d% 00000000000004e% 00000000000004f%\n\
static void
register_dump (int fd, struct sigcontext *ctx)
{
- char buffer[sizeof(dumpform)];
+ char buffer[sizeof (dumpform)];
char *bufferpos;
unsigned regno;
unsigned long *regs = (unsigned long *)(ctx->regs);
- memcpy(buffer, dumpform, sizeof(dumpform));
+ memcpy(buffer, dumpform, sizeof (dumpform));
/* Generate the output. */
- while ((bufferpos = memchr (buffer, '%', sizeof(dumpform))))
+ while ((bufferpos = memchr (buffer, '%', sizeof (dumpform))))
{
regno = xtoi (bufferpos[-1]) | xtoi (bufferpos[-2]) << 4;
memset (bufferpos-2, '0', 3);
@@ -116,7 +116,7 @@ register_dump (int fd, struct sigcontext *ctx)
}
/* Write the output. */
- write (fd, buffer, sizeof(buffer) - 1);
+ write (fd, buffer, sizeof (buffer) - 1);
}
diff --git a/sysdeps/powerpc/powerpc64/setjmp-bug21895.c b/sysdeps/powerpc/powerpc64/setjmp-bug21895.c
index 945a251d95..a4599ab6fd 100644
--- a/sysdeps/powerpc/powerpc64/setjmp-bug21895.c
+++ b/sysdeps/powerpc/powerpc64/setjmp-bug21895.c
@@ -1,6 +1,6 @@
/* Shared object part of test for setjmp interoperability with static
dlopen BZ #21895.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <setjmp.h>
diff --git a/sysdeps/powerpc/powerpc64/setjmp-common.S b/sysdeps/powerpc/powerpc64/setjmp-common.S
index ae92bb9b92..87e37c7de8 100644
--- a/sysdeps/powerpc/powerpc64/setjmp-common.S
+++ b/sysdeps/powerpc/powerpc64/setjmp-common.S
@@ -1,5 +1,5 @@
/* setjmp for PowerPC64.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <stap-probe.h>
diff --git a/sysdeps/powerpc/powerpc64/setjmp.S b/sysdeps/powerpc/powerpc64/setjmp.S
index a0f0e768f2..05b0c04c32 100644
--- a/sysdeps/powerpc/powerpc64/setjmp.S
+++ b/sysdeps/powerpc/powerpc64/setjmp.S
@@ -1,5 +1,5 @@
/* AltiVec (new) version of setjmp for PowerPC.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libc-symbols.h>
#include <rtld-global-offsets.h>
diff --git a/sysdeps/powerpc/powerpc64/start.S b/sysdeps/powerpc/powerpc64/start.S
index bd7189310c..ae9c645302 100644
--- a/sysdeps/powerpc/powerpc64/start.S
+++ b/sysdeps/powerpc/powerpc64/start.S
@@ -1,5 +1,5 @@
/* Startup code for programs linked with GNU libc. PowerPC64 version.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc64/strchr.S b/sysdeps/powerpc/powerpc64/strchr.S
index f4fbbea103..62d1632686 100644
--- a/sysdeps/powerpc/powerpc64/strchr.S
+++ b/sysdeps/powerpc/powerpc64/strchr.S
@@ -1,5 +1,5 @@
/* Optimized strchr implementation for PowerPC64.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc64/strcmp.S b/sysdeps/powerpc/powerpc64/strcmp.S
index 1862a2e5ce..5a502400f0 100644
--- a/sysdeps/powerpc/powerpc64/strcmp.S
+++ b/sysdeps/powerpc/powerpc64/strcmp.S
@@ -1,5 +1,5 @@
/* Optimized strcmp implementation for PowerPC64.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc64/strlen.S b/sysdeps/powerpc/powerpc64/strlen.S
index 4604f9c90f..6ef1b6212b 100644
--- a/sysdeps/powerpc/powerpc64/strlen.S
+++ b/sysdeps/powerpc/powerpc64/strlen.S
@@ -1,5 +1,5 @@
/* Optimized strlen implementation for PowerPC64.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc64/strncmp.S b/sysdeps/powerpc/powerpc64/strncmp.S
index bf535838df..473c0c65f7 100644
--- a/sysdeps/powerpc/powerpc64/strncmp.S
+++ b/sysdeps/powerpc/powerpc64/strncmp.S
@@ -1,5 +1,5 @@
/* Optimized strcmp implementation for PowerPC64.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/powerpc/powerpc64/submul_1.S b/sysdeps/powerpc/powerpc64/submul_1.S
index 7d2dea0281..9f03be0e86 100644
--- a/sysdeps/powerpc/powerpc64/submul_1.S
+++ b/sysdeps/powerpc/powerpc64/submul_1.S
@@ -1,6 +1,6 @@
/* PowerPC64 __mpn_addmul_1 -- Multiply a limb vector with a limb and subtract
the result to a second limb vector.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define USE_AS_SUBMUL
#include "addmul_1.S"
diff --git a/sysdeps/powerpc/powerpc64/sysdep.h b/sysdeps/powerpc/powerpc64/sysdep.h
index 2df1d9b6e6..db273f3346 100644
--- a/sysdeps/powerpc/powerpc64/sysdep.h
+++ b/sysdeps/powerpc/powerpc64/sysdep.h
@@ -1,5 +1,5 @@
/* Assembly macros for 64-bit PowerPC.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/powerpc/sysdep.h>
@@ -263,24 +263,7 @@ LT_LABELSUFFIX(name,_name_end): ; \
TRACEBACK_MASK(name,mask); \
END_2(name)
-#if !IS_IN(rtld)
-# define ABORT_TRANSACTION_IMPL \
- cmpdi 13,0; \
- beq 1f; \
- lwz 0,TM_CAPABLE(13); \
- cmpwi 0,0; \
- beq 1f; \
- li 11,_ABORT_SYSCALL; \
- tabort. 11; \
- .p2align 4; \
-1:
-#else
-# define ABORT_TRANSACTION_IMPL
-#endif
-#define ABORT_TRANSACTION ABORT_TRANSACTION_IMPL
-
#define DO_CALL(syscall) \
- ABORT_TRANSACTION \
li 0,syscall; \
sc
diff --git a/sysdeps/powerpc/powerpc64/tst-audit.h b/sysdeps/powerpc/powerpc64/tst-audit.h
index 1d8ea6fd76..faf8081374 100644
--- a/sysdeps/powerpc/powerpc64/tst-audit.h
+++ b/sysdeps/powerpc/powerpc64/tst-audit.h
@@ -1,6 +1,6 @@
/* Definitions for testing PLT entry/exit auditing. PowerPC64 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if _CALL_ELF != 2
#define pltenter la_ppc64_gnu_pltenter
diff --git a/sysdeps/powerpc/powerpc64/tst-setjmp-bug21895-static.c b/sysdeps/powerpc/powerpc64/tst-setjmp-bug21895-static.c
index 31ee88cd62..c5736ab33e 100644
--- a/sysdeps/powerpc/powerpc64/tst-setjmp-bug21895-static.c
+++ b/sysdeps/powerpc/powerpc64/tst-setjmp-bug21895-static.c
@@ -1,5 +1,5 @@
/* Test setjmp interoperability with static dlopen BZ #21895.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <setjmp.h>
#include <stdio.h>
diff --git a/sysdeps/powerpc/powerpc64/tst-ucontext-ppc64-vscr.c b/sysdeps/powerpc/powerpc64/tst-ucontext-ppc64-vscr.c
new file mode 100644
index 0000000000..fd2fb95f00
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/tst-ucontext-ppc64-vscr.c
@@ -0,0 +1,84 @@
+/* Test if POWER vscr read by ucontext.
+ Copyright (C) 2018 Free Software 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
+ <https://www.gnu.org/licenses/>. */
+
+#include <support/check.h>
+#include <sys/auxv.h>
+#include <ucontext.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <altivec.h>
+
+#define SAT 0x1
+
+/* This test is supported only on POWER 5 or higher. */
+#define PPC_CPU_SUPPORTED (PPC_FEATURE_POWER5 | PPC_FEATURE_POWER5_PLUS \
+ | PPC_FEATURE_ARCH_2_05 | PPC_FEATURE_ARCH_2_06 \
+ | PPC_FEATURE2_ARCH_2_07)
+static int
+do_test (void)
+{
+
+ if (!(getauxval(AT_HWCAP2) & PPC_CPU_SUPPORTED))
+ {
+ if (!(getauxval(AT_HWCAP) & PPC_CPU_SUPPORTED))
+ FAIL_UNSUPPORTED("This test is unsupported on POWER < 5\n");
+ }
+
+ uint32_t vscr[4] __attribute__ ((aligned (16)));
+ uint32_t* vscr_ptr = vscr;
+ uint32_t vscr_word;
+ ucontext_t ucp;
+ __vector unsigned int v0 = {0};
+ __vector unsigned int v1 = {0};
+
+ /* Set SAT bit in VSCR register. */
+ asm volatile (".machine push;\n"
+ ".machine \"power5\";\n"
+ "vspltisb %0,0;\n"
+ "vspltisb %1,-1;\n"
+ "vpkuwus %0,%0,%1;\n"
+ "mfvscr %0;\n"
+ "stvx %0,0,%2;\n"
+ ".machine pop;"
+ : "=v" (v0), "=v" (v1)
+ : "r" (vscr_ptr)
+ : "memory");
+#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
+ vscr_word = vscr[0];
+#else
+ vscr_word = vscr[3];
+#endif
+
+ if ((vscr_word & SAT) != SAT)
+ {
+ FAIL_EXIT1("FAIL: SAT bit is not set.\n");
+ }
+
+ if (getcontext (&ucp))
+ {
+ FAIL_EXIT1("FAIL: getcontext error\n");
+ }
+ if (ucp.uc_mcontext.v_regs->vscr.vscr_word != vscr_word)
+ {
+ FAIL_EXIT1("FAIL: ucontext vscr does not match with vscr\n");
+ }
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/powerpc/preconfigure b/sysdeps/powerpc/preconfigure
index e3ad6ec57f..a0ea745bb4 100644
--- a/sysdeps/powerpc/preconfigure
+++ b/sysdeps/powerpc/preconfigure
@@ -8,14 +8,18 @@ powerpc64*)
base_machine=powerpc machine=powerpc/powerpc64/be
;;
powerpc*)
- # Check for e500.
- $CC $CFLAGS $CPPFLAGS -E -dM -xc /dev/null > conftest.i
- if grep -q __NO_FPRS__ conftest.i && ! grep -q _SOFT_FLOAT conftest.i; then
- base_machine=powerpc machine=powerpc/powerpc32/e500
- else
- base_machine=powerpc machine=powerpc/powerpc32
- fi
- rm -f conftest.i
+ base_machine=powerpc machine=powerpc/powerpc32
with_fp_cond="!defined __NO_FPRS__"
+ case "$host_os" in
+ *gnuspe*)
+ # SPE support was dropped in glibc 2.30.
+ # We can't use AC_MSG_ERROR here.
+ # The parent script is in the middle of printing the
+ # "checking for sysdeps preconfigure fragments" line.
+ echo >&2
+ echo "Host system type $host is no longer supported." >&2
+ exit 1
+ ;;
+ esac
;;
esac
diff --git a/sysdeps/powerpc/sched_cpucount.c b/sysdeps/powerpc/sched_cpucount.c
index d0fc97bb33..d383e91618 100644
--- a/sysdeps/powerpc/sched_cpucount.c
+++ b/sysdeps/powerpc/sched_cpucount.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifdef _ARCH_PWR5
# define POPCNT(l) __builtin_popcountl (l)
diff --git a/sysdeps/powerpc/sigjmp.c b/sysdeps/powerpc/sigjmp.c
index a6e821eef4..f2db0ee415 100644
--- a/sysdeps/powerpc/sigjmp.c
+++ b/sysdeps/powerpc/sigjmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Versioned copy of sysdeps/generic/sigjmp.c modified for AltiVec support. */
@@ -29,9 +29,9 @@
int
__vmx__sigjmp_save (sigjmp_buf env, int savemask)
{
- env[0].__mask_was_saved = (savemask &&
- __sigprocmask (SIG_BLOCK, (sigset_t *) NULL,
- &env[0].__saved_mask) == 0);
+ env[0].__mask_was_saved = (savemask
+ && __sigprocmask (SIG_BLOCK, (sigset_t *) NULL,
+ &env[0].__saved_mask) == 0);
return 0;
}
diff --git a/sysdeps/powerpc/sotruss-lib.c b/sysdeps/powerpc/sotruss-lib.c
index fcfcc12b00..93be9fcd29 100644
--- a/sysdeps/powerpc/sotruss-lib.c
+++ b/sysdeps/powerpc/sotruss-lib.c
@@ -1,5 +1,5 @@
/* PowerPC specific sotruss-lib functions.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define HAVE_ARCH_PLTENTER
#define HAVE_ARCH_PLTEXIT
diff --git a/sysdeps/powerpc/stackinfo.h b/sysdeps/powerpc/stackinfo.h
index 19d51df27f..7c53677e26 100644
--- a/sysdeps/powerpc/stackinfo.h
+++ b/sysdeps/powerpc/stackinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file contains a bit of information about the stack allocation
of the processor. */
diff --git a/sysdeps/powerpc/sys/platform/ppc.h b/sysdeps/powerpc/sys/platform/ppc.h
index 24947a06e3..25579a0f8d 100644
--- a/sysdeps/powerpc/sys/platform/ppc.h
+++ b/sysdeps/powerpc/sys/platform/ppc.h
@@ -1,5 +1,5 @@
/* Facilities specific to the PowerPC architecture
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_PLATFORM_PPC_H
#define _SYS_PLATFORM_PPC_H 1
diff --git a/sysdeps/powerpc/sysdep.h b/sysdeps/powerpc/sysdep.h
index 8a6d236caa..9b881c5ab5 100644
--- a/sysdeps/powerpc/sysdep.h
+++ b/sysdeps/powerpc/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* Powerpc Feature masks for the Aux Vector Hardware Capabilities (AT_HWCAP).
@@ -21,8 +21,6 @@
*/
#define _SYSDEPS_SYSDEP_H 1
#include <bits/hwcap.h>
-#include <tls.h>
-#include <htm.h>
#define PPC_FEATURE_970 (PPC_FEATURE_POWER4 + PPC_FEATURE_HAS_ALTIVEC)
@@ -166,22 +164,4 @@
#define ALIGNARG(log2) log2
#define ASM_SIZE_DIRECTIVE(name) .size name,.-name
-#else
-
-/* Linux kernel powerpc documentation [1] states issuing a syscall inside a
- transaction is not recommended and may lead to undefined behavior. It
- also states syscalls do not abort transactions. To avoid such traps,
- we abort transaction just before syscalls.
-
- [1] Documentation/powerpc/transactional_memory.txt [Syscalls] */
-#if !IS_IN(rtld) && !defined(__SPE__)
-# define ABORT_TRANSACTION \
- ({ \
- if (THREAD_GET_TM_CAPABLE ()) \
- __libc_tabort (_ABORT_SYSCALL); \
- })
-#else
-# define ABORT_TRANSACTION
-#endif
-
#endif /* __ASSEMBLER__ */
diff --git a/sysdeps/powerpc/test-arith.c b/sysdeps/powerpc/test-arith.c
index f70b495037..d83a3593d3 100644
--- a/sysdeps/powerpc/test-arith.c
+++ b/sysdeps/powerpc/test-arith.c
@@ -1,5 +1,5 @@
/* Test floating-point arithmetic operations.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _GNU_SOURCE
#define _GNU_SOURCE
#endif
@@ -43,7 +43,7 @@ static const char * const rmnames[4] =
typedef union {
tocheck_t tc;
- unsigned char c[sizeof(tocheck_t)];
+ unsigned char c[sizeof (tocheck_t)];
} union_t;
/* Don't try reading these in a font that doesn't distinguish
@@ -170,7 +170,7 @@ pattern(int negative, pattern_t exp, pattern_t mant)
pattern_fill(mant, result.c, ESIZE+1, MSIZE);
#if 0
printf("neg=%d exp=%02x mant=%02x: ", negative, exp, mant);
- for (i = 0; i < sizeof(tocheck_t); i++)
+ for (i = 0; i < sizeof (tocheck_t); i++)
printf("%02x", result.c[i]);
printf("\n");
#endif
@@ -193,10 +193,10 @@ delta(tocheck_t x, int direction)
{
union_t tx;
tx.tc = pattern(xx.c[0] >> 7, P_O, P_Z);
- if (memcmp(tx.c, xx.c, sizeof(tocheck_t)) == 0)
+ if (memcmp (tx.c, xx.c, sizeof (tocheck_t)) == 0)
return x;
}
- for (i = sizeof(tocheck_t)-1; i > 0; i--)
+ for (i = sizeof (tocheck_t)-1; i > 0; i--)
{
xx.c[i] += direction;
if (xx.c[i] != (direction > 0 ? 0 : 0xff))
@@ -222,7 +222,7 @@ static const int all_exceptions = FE_ALL_EXCEPT;
static void
check_result(int line, const char *rm, tocheck_t expected, tocheck_t actual)
{
- if (memcmp(&expected, &actual, sizeof(tocheck_t)) != 0)
+ if (memcmp (&expected, &actual, sizeof (tocheck_t)) != 0)
{
unsigned char *ex, *ac;
size_t i;
@@ -231,10 +231,10 @@ check_result(int line, const char *rm, tocheck_t expected, tocheck_t actual)
" expected result 0x", __FILE__, line, rm);
ex = (unsigned char *)&expected;
ac = (unsigned char *)&actual;
- for (i = 0; i < sizeof(tocheck_t); i++)
+ for (i = 0; i < sizeof (tocheck_t); i++)
printf("%02x", ex[i]);
printf(" got 0x");
- for (i = 0; i < sizeof(tocheck_t); i++)
+ for (i = 0; i < sizeof (tocheck_t); i++)
printf("%02x", ac[i]);
printf("\n");
nerrors++;
@@ -325,13 +325,13 @@ check_excepts(int line, const char *rm, int expected, int actual)
size_t i;
printf("%s:%d:round %s:exceptions failed\n"
" expected exceptions ", __FILE__, line,rm);
- for (i = 0; i < sizeof(excepts)/sizeof(excepts[0]); i++)
+ for (i = 0; i < sizeof (excepts) / sizeof (excepts[0]); i++)
if (expected & excepts[i].except)
printf("%s ",excepts[i].name);
if ((expected & all_exceptions) == 0)
printf("- ");
printf("got");
- for (i = 0; i < sizeof(excepts)/sizeof(excepts[0]); i++)
+ for (i = 0; i < sizeof (excepts) / sizeof (excepts[0]); i++)
if (actual & excepts[i].except)
printf(" %s",excepts[i].name);
if ((actual & all_exceptions) == 0)
@@ -463,7 +463,7 @@ check_op(void)
tocheck_t r, a, b, x;
int raised;
- for (i = 0; i < sizeof(optests)/sizeof(optests[0]); i++)
+ for (i = 0; i < sizeof (optests) / sizeof (optests[0]); i++)
{
a = pattern(optests[i].a_sgn, optests[i].a_exp,
optests[i].a_mant);
@@ -504,13 +504,13 @@ fail_xr(int line, const char *rm, tocheck_t x, tocheck_t r, tocheck_t xx,
cx = (unsigned char *)&x;
cr = (unsigned char *)&r;
cxx = (unsigned char *)&xx;
- for (i = 0; i < sizeof(tocheck_t); i++)
+ for (i = 0; i < sizeof (tocheck_t); i++)
printf("%02x", cx[i]);
printf(" r=0x");
- for (i = 0; i < sizeof(tocheck_t); i++)
+ for (i = 0; i < sizeof (tocheck_t); i++)
printf("%02x", cr[i]);
printf(" xx=0x");
- for (i = 0; i < sizeof(tocheck_t); i++)
+ for (i = 0; i < sizeof (tocheck_t); i++)
printf("%02x", cxx[i]);
printf(" inexact=%d\n", xflag != 0);
nerrors++;
diff --git a/sysdeps/powerpc/test-get_hwcap-static.c b/sysdeps/powerpc/test-get_hwcap-static.c
index d7d8afb788..8f520ff1a0 100644
--- a/sysdeps/powerpc/test-get_hwcap-static.c
+++ b/sysdeps/powerpc/test-get_hwcap-static.c
@@ -1,5 +1,5 @@
/* Check __ppc_get_hwcap() and __ppc_get_at_plaftorm() functionality.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Tests if the hwcap, hwcap2 and platform data are stored in the TCB. */
diff --git a/sysdeps/powerpc/test-get_hwcap.c b/sysdeps/powerpc/test-get_hwcap.c
index 0f06f14753..cc1e7472a0 100644
--- a/sysdeps/powerpc/test-get_hwcap.c
+++ b/sysdeps/powerpc/test-get_hwcap.c
@@ -1,5 +1,5 @@
/* Check __ppc_get_hwcap() and __ppc_get_at_plaftorm() functionality.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Tests if the hwcap, hwcap2 and platform data are stored in the TCB. */
diff --git a/sysdeps/powerpc/test-gettimebase.c b/sysdeps/powerpc/test-gettimebase.c
index a55949763a..d326979de0 100644
--- a/sysdeps/powerpc/test-gettimebase.c
+++ b/sysdeps/powerpc/test-gettimebase.c
@@ -1,5 +1,5 @@
/* Check __ppc_get_timebase() for architecture changes
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Test if __ppc_get_timebase() is compatible with the current processor and if
it's changing between reads. A read failure might indicate a Power ISA or
diff --git a/sysdeps/powerpc/tst-set_ppr.c b/sysdeps/powerpc/tst-set_ppr.c
index c4f8096bf8..effb1a0df3 100644
--- a/sysdeps/powerpc/tst-set_ppr.c
+++ b/sysdeps/powerpc/tst-set_ppr.c
@@ -1,5 +1,5 @@
/* Test the implementation of __ppc_set_ppr_* functions.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <inttypes.h>
#include <stdio.h>
diff --git a/sysdeps/powerpc/tst-stack-align.h b/sysdeps/powerpc/tst-stack-align.h
index 7fd7013b69..5af7fea5ca 100644
--- a/sysdeps/powerpc/tst-stack-align.h
+++ b/sysdeps/powerpc/tst-stack-align.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdint.h>
diff --git a/sysdeps/powerpc/tst-tlsifunc-static.c b/sysdeps/powerpc/tst-tlsifunc-static.c
index 7cc566b0d3..cc6e68938b 100644
--- a/sysdeps/powerpc/tst-tlsifunc-static.c
+++ b/sysdeps/powerpc/tst-tlsifunc-static.c
@@ -1,5 +1,5 @@
/* Test if an executable can read from the TLS from an STT_GNU_IFUNC resolver.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "tst-tlsifunc.c"
diff --git a/sysdeps/powerpc/tst-tlsifunc.c b/sysdeps/powerpc/tst-tlsifunc.c
index 75cfb3e656..7e1956d393 100644
--- a/sysdeps/powerpc/tst-tlsifunc.c
+++ b/sysdeps/powerpc/tst-tlsifunc.c
@@ -1,5 +1,5 @@
/* Test if an executable can read from the TLS from an STT_GNU_IFUNC resolver.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
diff --git a/sysdeps/pthread/Makefile b/sysdeps/pthread/Makefile
index ea4f889489..d6a4068842 100644
--- a/sysdeps/pthread/Makefile
+++ b/sysdeps/pthread/Makefile
@@ -1,5 +1,5 @@
# sysdeps makefile fragment for all pthread-supporting configurations.
-# Copyright (C) 2014-2018 Free Software Foundation, Inc.
+# Copyright (C) 2014-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
@@ -14,7 +14,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
ifeq ($(subdir),rt)
diff --git a/sysdeps/pthread/aio_cancel.c b/sysdeps/pthread/aio_cancel.c
index dc259a6e48..0564c24065 100644
--- a/sysdeps/pthread/aio_cancel.c
+++ b/sysdeps/pthread/aio_cancel.c
@@ -1,5 +1,5 @@
/* Cancel requests associated with given file descriptor.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* We use an UGLY hack to prevent gcc from finding us cheating. The
diff --git a/sysdeps/pthread/aio_error.c b/sysdeps/pthread/aio_error.c
index ca01a1ee10..d641820bb5 100644
--- a/sysdeps/pthread/aio_error.c
+++ b/sysdeps/pthread/aio_error.c
@@ -1,5 +1,5 @@
/* Return error status of asynchronous I/O request.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* We use an UGLY hack to prevent gcc from finding us cheating. The
diff --git a/sysdeps/pthread/aio_fsync.c b/sysdeps/pthread/aio_fsync.c
index 8238b26192..6456342fa5 100644
--- a/sysdeps/pthread/aio_fsync.c
+++ b/sysdeps/pthread/aio_fsync.c
@@ -1,5 +1,5 @@
/* Synchronize I/O in given file descriptor.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* We use an UGLY hack to prevent gcc from finding us cheating. The
diff --git a/sysdeps/pthread/aio_misc.c b/sysdeps/pthread/aio_misc.c
index fb13d6210b..65b4b1ade8 100644
--- a/sysdeps/pthread/aio_misc.c
+++ b/sysdeps/pthread/aio_misc.c
@@ -1,5 +1,5 @@
/* Handle general operations.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <aio.h>
#include <assert.h>
@@ -614,13 +614,13 @@ handle_fildes_io (void *arg)
something to arrive in it. */
if (runp == NULL && optim.aio_idle_time >= 0)
{
- struct timeval now;
+ struct timespec now;
struct timespec wakeup_time;
++idle_thread_count;
- __gettimeofday (&now, NULL);
+ __clock_gettime (CLOCK_REALTIME, &now);
wakeup_time.tv_sec = now.tv_sec + optim.aio_idle_time;
- wakeup_time.tv_nsec = now.tv_usec * 1000;
+ wakeup_time.tv_nsec = now.tv_nsec;
if (wakeup_time.tv_nsec >= 1000000000)
{
wakeup_time.tv_nsec -= 1000000000;
diff --git a/sysdeps/pthread/aio_misc.h b/sysdeps/pthread/aio_misc.h
index 45fc9994ce..025df6c37a 100644
--- a/sysdeps/pthread/aio_misc.h
+++ b/sysdeps/pthread/aio_misc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _AIO_MISC_H
#define _AIO_MISC_H 1
diff --git a/sysdeps/pthread/aio_notify.c b/sysdeps/pthread/aio_notify.c
index 394083172a..d219d81f7e 100644
--- a/sysdeps/pthread/aio_notify.c
+++ b/sysdeps/pthread/aio_notify.c
@@ -1,5 +1,5 @@
/* Notify initiator of AIO request.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/sysdeps/pthread/aio_read.c b/sysdeps/pthread/aio_read.c
index 6c4dc42dee..f14e6323c7 100644
--- a/sysdeps/pthread/aio_read.c
+++ b/sysdeps/pthread/aio_read.c
@@ -1,5 +1,5 @@
/* Asynchronous read.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <aio.h>
diff --git a/sysdeps/pthread/aio_read64.c b/sysdeps/pthread/aio_read64.c
index ad680104f2..954c194af4 100644
--- a/sysdeps/pthread/aio_read64.c
+++ b/sysdeps/pthread/aio_read64.c
@@ -1,5 +1,5 @@
/* Asynchronous read, 64bit offset version.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <aio.h>
diff --git a/sysdeps/pthread/aio_suspend.c b/sysdeps/pthread/aio_suspend.c
index 010cbf84df..bb324a5fe6 100644
--- a/sysdeps/pthread/aio_suspend.c
+++ b/sysdeps/pthread/aio_suspend.c
@@ -1,5 +1,5 @@
/* Suspend until termination of a requests.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* We use an UGLY hack to prevent gcc from finding us cheating. The
@@ -183,11 +183,11 @@ aio_suspend (const struct aiocb *const list[], int nent,
{
/* We have to convert the relative timeout value into an
absolute time value with pthread_cond_timedwait expects. */
- struct timeval now;
+ struct timespec now;
struct timespec abstime;
- __gettimeofday (&now, NULL);
- abstime.tv_nsec = timeout->tv_nsec + now.tv_usec * 1000;
+ __clock_gettime (CLOCK_REALTIME, &now);
+ abstime.tv_nsec = timeout->tv_nsec + now.tv_nsec;
abstime.tv_sec = timeout->tv_sec + now.tv_sec;
if (abstime.tv_nsec >= 1000000000)
{
diff --git a/sysdeps/pthread/aio_write.c b/sysdeps/pthread/aio_write.c
index c6b09e3b14..7553ed6204 100644
--- a/sysdeps/pthread/aio_write.c
+++ b/sysdeps/pthread/aio_write.c
@@ -1,5 +1,5 @@
/* Asynchronous write.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <aio.h>
diff --git a/sysdeps/pthread/aio_write64.c b/sysdeps/pthread/aio_write64.c
index 94084c787f..c105bf12aa 100644
--- a/sysdeps/pthread/aio_write64.c
+++ b/sysdeps/pthread/aio_write64.c
@@ -1,5 +1,5 @@
/* Asynchronous write, 64bit offset version.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <aio.h>
diff --git a/sysdeps/pthread/allocalim.h b/sysdeps/pthread/allocalim.h
index 99f74838dd..1fe03eb932 100644
--- a/sysdeps/pthread/allocalim.h
+++ b/sysdeps/pthread/allocalim.h
@@ -1,5 +1,5 @@
/* Determine whether block of given size can be allocated on the stack or not.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <alloca.h>
#include <limits.h>
diff --git a/sysdeps/pthread/bits/sigthread.h b/sysdeps/pthread/bits/sigthread.h
index b1fb6150e4..768d3ae624 100644
--- a/sysdeps/pthread/bits/sigthread.h
+++ b/sysdeps/pthread/bits/sigthread.h
@@ -1,5 +1,5 @@
/* Signal handling function for threaded programs.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#ifndef _BITS_SIGTHREAD_H
#define _BITS_SIGTHREAD_H 1
diff --git a/sysdeps/pthread/flockfile.c b/sysdeps/pthread/flockfile.c
index 4dc3f75035..6cc3fd1078 100644
--- a/sysdeps/pthread/flockfile.c
+++ b/sysdeps/pthread/flockfile.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
diff --git a/sysdeps/pthread/ftrylockfile.c b/sysdeps/pthread/ftrylockfile.c
index 3fff61f3c6..359c882bcf 100644
--- a/sysdeps/pthread/ftrylockfile.c
+++ b/sysdeps/pthread/ftrylockfile.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/sysdeps/pthread/funlockfile.c b/sysdeps/pthread/funlockfile.c
index 27afe8c131..8ca3e85a0f 100644
--- a/sysdeps/pthread/funlockfile.c
+++ b/sysdeps/pthread/funlockfile.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <stdio.h>
diff --git a/sysdeps/pthread/lio_listio.c b/sysdeps/pthread/lio_listio.c
index ebf3c21fba..7100d2a926 100644
--- a/sysdeps/pthread/lio_listio.c
+++ b/sysdeps/pthread/lio_listio.c
@@ -1,5 +1,5 @@
/* Enqueue and list of read or write requests.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef lio_listio
#include <aio.h>
diff --git a/sysdeps/pthread/lio_listio64.c b/sysdeps/pthread/lio_listio64.c
index 09f098aceb..88cca0b76f 100644
--- a/sysdeps/pthread/lio_listio64.c
+++ b/sysdeps/pthread/lio_listio64.c
@@ -1,5 +1,5 @@
/* Enqueue and list of read or write requests, 64bit offset version.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <aio.h>
#include <assert.h>
diff --git a/sysdeps/pthread/posix-timer.h b/sysdeps/pthread/posix-timer.h
index d7af9a017a..63f29f3988 100644
--- a/sysdeps/pthread/posix-timer.h
+++ b/sysdeps/pthread/posix-timer.h
@@ -1,5 +1,5 @@
/* Definitions for POSIX timer implementation on top of NPTL.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Kaz Kylheku <kaz@ashi.footprints.net>.
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <limits.h>
#include <signal.h>
diff --git a/sysdeps/pthread/semaphore.h b/sysdeps/pthread/semaphore.h
index ff672ebd24..9cca9c96ca 100644
--- a/sysdeps/pthread/semaphore.h
+++ b/sysdeps/pthread/semaphore.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SEMAPHORE_H
#define _SEMAPHORE_H 1
@@ -33,24 +33,26 @@ __BEGIN_DECLS
/* Initialize semaphore object SEM to VALUE. If PSHARED then share it
with other processes. */
extern int sem_init (sem_t *__sem, int __pshared, unsigned int __value)
- __THROW;
+ __THROW __nonnull ((1));
+
/* Free resources associated with semaphore object SEM. */
-extern int sem_destroy (sem_t *__sem) __THROW;
+extern int sem_destroy (sem_t *__sem) __THROW __nonnull ((1));
/* Open a named semaphore NAME with open flags OFLAG. */
-extern sem_t *sem_open (const char *__name, int __oflag, ...) __THROW;
+extern sem_t *sem_open (const char *__name, int __oflag, ...)
+ __THROW __nonnull ((1));
/* Close descriptor for named semaphore SEM. */
-extern int sem_close (sem_t *__sem) __THROW;
+extern int sem_close (sem_t *__sem) __THROW __nonnull ((1));
/* Remove named semaphore NAME. */
-extern int sem_unlink (const char *__name) __THROW;
+extern int sem_unlink (const char *__name) __THROW __nonnull ((1));
/* Wait for SEM being posted.
This function is a cancellation point and therefore not marked with
__THROW. */
-extern int sem_wait (sem_t *__sem);
+extern int sem_wait (sem_t *__sem) __nonnull ((1));
#ifdef __USE_XOPEN2K
/* Similar to `sem_wait' but wait only until ABSTIME.
@@ -58,18 +60,26 @@ extern int sem_wait (sem_t *__sem);
This function is a cancellation point and therefore not marked with
__THROW. */
extern int sem_timedwait (sem_t *__restrict __sem,
- const struct timespec *__restrict __abstime);
+ const struct timespec *__restrict __abstime)
+ __nonnull ((1, 2));
+#endif
+
+#ifdef __USE_GNU
+extern int sem_clockwait (sem_t *__restrict __sem,
+ clockid_t clock,
+ const struct timespec *__restrict __abstime)
+ __nonnull ((1, 3));
#endif
/* Test whether SEM is posted. */
-extern int sem_trywait (sem_t *__sem) __THROWNL;
+extern int sem_trywait (sem_t *__sem) __THROWNL __nonnull ((1));
/* Post SEM. */
-extern int sem_post (sem_t *__sem) __THROWNL;
+extern int sem_post (sem_t *__sem) __THROWNL __nonnull ((1));
/* Get current value of SEM and store it in *SVAL. */
extern int sem_getvalue (sem_t *__restrict __sem, int *__restrict __sval)
- __THROW;
+ __THROW __nonnull ((1, 2));
__END_DECLS
diff --git a/sysdeps/pthread/timer_create.c b/sysdeps/pthread/timer_create.c
index 2381a60d6f..7b23db6db8 100644
--- a/sysdeps/pthread/timer_create.c
+++ b/sysdeps/pthread/timer_create.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Kaz Kylheku <kaz@ashi.footprints.net>.
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/sysdeps/pthread/timer_delete.c b/sysdeps/pthread/timer_delete.c
index 0daab37624..2232a623fe 100644
--- a/sysdeps/pthread/timer_delete.c
+++ b/sysdeps/pthread/timer_delete.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Kaz Kylheku <kaz@ashi.footprints.net>.
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
diff --git a/sysdeps/pthread/timer_getoverr.c b/sysdeps/pthread/timer_getoverr.c
index edd519964d..50a9a9c1d8 100644
--- a/sysdeps/pthread/timer_getoverr.c
+++ b/sysdeps/pthread/timer_getoverr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Kaz Kylheku <kaz@ashi.footprints.net>.
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/sysdeps/pthread/timer_gettime.c b/sysdeps/pthread/timer_gettime.c
index f5f060afec..01cd5369b3 100644
--- a/sysdeps/pthread/timer_gettime.c
+++ b/sysdeps/pthread/timer_gettime.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Kaz Kylheku <kaz@ashi.footprints.net>.
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/sysdeps/pthread/timer_routines.c b/sysdeps/pthread/timer_routines.c
index c12246792b..670d0fe52b 100644
--- a/sysdeps/pthread/timer_routines.c
+++ b/sysdeps/pthread/timer_routines.c
@@ -1,5 +1,5 @@
/* Helper code for POSIX timer implementation on NPTL.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Kaz Kylheku <kaz@ashi.footprints.net>.
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
diff --git a/sysdeps/pthread/timer_settime.c b/sysdeps/pthread/timer_settime.c
index 8a71a506f8..0fad4b1983 100644
--- a/sysdeps/pthread/timer_settime.c
+++ b/sysdeps/pthread/timer_settime.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Kaz Kylheku <kaz@ashi.footprints.net>.
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
@@ -41,10 +41,8 @@ timer_settime (timer_t timerid, int flags, const struct itimerspec *value,
goto bail;
}
- if (value->it_interval.tv_nsec < 0
- || value->it_interval.tv_nsec >= 1000000000
- || value->it_value.tv_nsec < 0
- || value->it_value.tv_nsec >= 1000000000)
+ if (! valid_nanoseconds (value->it_interval.tv_nsec)
+ || ! valid_nanoseconds (value->it_value.tv_nsec))
{
__set_errno (EINVAL);
goto bail;
diff --git a/sysdeps/pthread/tst-timer.c b/sysdeps/pthread/tst-timer.c
index 7a943afb7c..e2755e2951 100644
--- a/sysdeps/pthread/tst-timer.c
+++ b/sysdeps/pthread/tst-timer.c
@@ -1,5 +1,5 @@
/* Tests for POSIX timer implementation.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Kaz Kylheku <kaz@ashi.footprints.net>.
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/sysdeps/riscv/__longjmp.S b/sysdeps/riscv/__longjmp.S
index 0b9e5e10e2..44adce31e8 100644
--- a/sysdeps/riscv/__longjmp.S
+++ b/sysdeps/riscv/__longjmp.S
@@ -1,5 +1,5 @@
/* longjmp, RISC-V version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <sys/asm.h>
diff --git a/sysdeps/riscv/bits/endian.h b/sysdeps/riscv/bits/endian.h
deleted file mode 100644
index 4aaf559d4f..0000000000
--- a/sysdeps/riscv/bits/endian.h
+++ /dev/null
@@ -1,5 +0,0 @@
-#ifndef _ENDIAN_H
-# error "Never use <bits/endian.h> directly; include <endian.h> instead."
-#endif
-
-#define __BYTE_ORDER __LITTLE_ENDIAN
diff --git a/sysdeps/riscv/bits/endianness.h b/sysdeps/riscv/bits/endianness.h
new file mode 100644
index 0000000000..952d08595a
--- /dev/null
+++ b/sysdeps/riscv/bits/endianness.h
@@ -0,0 +1,11 @@
+#ifndef _BITS_ENDIANNESS_H
+#define _BITS_ENDIANNESS_H 1
+
+#ifndef _BITS_ENDIAN_H
+# error "Never use <bits/endianness.h> directly; include <endian.h> instead."
+#endif
+
+/* RISC-V is little-endian. */
+#define __BYTE_ORDER __LITTLE_ENDIAN
+
+#endif /* bits/endianness.h */
diff --git a/sysdeps/riscv/bits/fenv.h b/sysdeps/riscv/bits/fenv.h
index e23b7e253d..b5685c4efc 100644
--- a/sysdeps/riscv/bits/fenv.h
+++ b/sysdeps/riscv/bits/fenv.h
@@ -1,5 +1,5 @@
/* Floating point environment, RISC-V version.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FENV_H
# error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
@@ -65,7 +65,7 @@ typedef unsigned int fenv_t;
/* If the default argument is used we use this value. */
#define FE_DFL_ENV ((__const fenv_t *) -1)
-#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/sysdeps/riscv/bits/link.h b/sysdeps/riscv/bits/link.h
index cedc4ad9b2..5f71d94334 100644
--- a/sysdeps/riscv/bits/link.h
+++ b/sysdeps/riscv/bits/link.h
@@ -1,5 +1,5 @@
/* Machine-specific declarations for dynamic linker interface. RISC-V version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LINK_H
# error "Never include <bits/link.h> directly; use <link.h> instead."
diff --git a/sysdeps/riscv/bits/setjmp.h b/sysdeps/riscv/bits/setjmp.h
index 988ad6b1d6..ada85e4ea1 100644
--- a/sysdeps/riscv/bits/setjmp.h
+++ b/sysdeps/riscv/bits/setjmp.h
@@ -1,5 +1,5 @@
/* Define the machine-dependent type `jmp_buf'. RISC-V version.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ 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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _RISCV_BITS_SETJMP_H
#define _RISCV_BITS_SETJMP_H
diff --git a/sysdeps/riscv/bits/wordsize.h b/sysdeps/riscv/bits/wordsize.h
index 67a16ba622..27b76a97d4 100644
--- a/sysdeps/riscv/bits/wordsize.h
+++ b/sysdeps/riscv/bits/wordsize.h
@@ -1,5 +1,5 @@
/* Determine the wordsize from the preprocessor defines. RISC-V version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if __riscv_xlen == (__SIZEOF_POINTER__ * 8)
# define __WORDSIZE __riscv_xlen
diff --git a/sysdeps/riscv/dl-machine.h b/sysdeps/riscv/dl-machine.h
index 4cbde333ac..728db80eb3 100644
--- a/sysdeps/riscv/dl-machine.h
+++ b/sysdeps/riscv/dl-machine.h
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation inline functions. RISC-V version.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ 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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef dl_machine_h
#define dl_machine_h
diff --git a/sysdeps/riscv/dl-tls.h b/sysdeps/riscv/dl-tls.h
index ab2d860314..93a1807464 100644
--- a/sysdeps/riscv/dl-tls.h
+++ b/sysdeps/riscv/dl-tls.h
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. RISC-V version.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ 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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Type used for the representation of TLS information in the GOT. */
diff --git a/sysdeps/riscv/dl-trampoline.S b/sysdeps/riscv/dl-trampoline.S
index cda3be9f4e..333e29717b 100644
--- a/sysdeps/riscv/dl-trampoline.S
+++ b/sysdeps/riscv/dl-trampoline.S
@@ -1,5 +1,5 @@
/* RISC-V PLT trampoline
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <sys/asm.h>
diff --git a/sysdeps/riscv/e_sqrtl.c b/sysdeps/riscv/e_sqrtl.c
index 55a875d9fb..64cc61d365 100644
--- a/sysdeps/riscv/e_sqrtl.c
+++ b/sysdeps/riscv/e_sqrtl.c
@@ -1,5 +1,5 @@
/* long double square root in software floating-point emulation.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include <soft-fp/soft-fp.h>
diff --git a/sysdeps/riscv/fpu_control.h b/sysdeps/riscv/fpu_control.h
index c050d279b2..17b430381e 100644
--- a/sysdeps/riscv/fpu_control.h
+++ b/sysdeps/riscv/fpu_control.h
@@ -1,5 +1,5 @@
/* FPU control word bits. RISC-V version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FPU_CONTROL_H
#define _FPU_CONTROL_H
diff --git a/sysdeps/riscv/gccframe.h b/sysdeps/riscv/gccframe.h
index 3dc62863af..51f16a5a62 100644
--- a/sysdeps/riscv/gccframe.h
+++ b/sysdeps/riscv/gccframe.h
@@ -1,5 +1,5 @@
/* Definition of object in frame unwind info. RISC-V version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define FIRST_PSEUDO_REGISTER 66
diff --git a/sysdeps/riscv/jmpbuf-offsets.h b/sysdeps/riscv/jmpbuf-offsets.h
index fff4d0d9c6..c0149ad1b1 100644
--- a/sysdeps/riscv/jmpbuf-offsets.h
+++ b/sysdeps/riscv/jmpbuf-offsets.h
@@ -1,5 +1,5 @@
/* Private macros for accessing __jmp_buf contents. RISC-V version.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <jmpbuf-unwind.h>
diff --git a/sysdeps/riscv/jmpbuf-unwind.h b/sysdeps/riscv/jmpbuf-unwind.h
index 2e5f37f102..4c0a6ca9d6 100644
--- a/sysdeps/riscv/jmpbuf-unwind.h
+++ b/sysdeps/riscv/jmpbuf-unwind.h
@@ -1,5 +1,5 @@
/* Examine __jmp_buf for unwinding frames. RISC-V version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <setjmp.h>
#include <stdint.h>
diff --git a/sysdeps/riscv/ldsodefs.h b/sysdeps/riscv/ldsodefs.h
index c032b73a9c..2eb3c88511 100644
--- a/sysdeps/riscv/ldsodefs.h
+++ b/sysdeps/riscv/ldsodefs.h
@@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ 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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _RISCV_LDSODEFS_H
#define _RISCV_LDSODEFS_H 1
@@ -38,7 +38,8 @@ struct La_riscv_retval;
struct La_riscv_retval *, \
const char *);
-/* The RISC-V ABI specifies that the dynamic section has to be read-only. */
+/* Although the RISC-V ABI does not specify that the dynamic section has
+ to be read-only, it needs to be kept for ABI compatibility. */
#define DL_RO_DYN_SECTION 1
diff --git a/sysdeps/riscv/libc-tls.c b/sysdeps/riscv/libc-tls.c
index c72abc1d34..b5724d4564 100644
--- a/sysdeps/riscv/libc-tls.c
+++ b/sysdeps/riscv/libc-tls.c
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. RISC-V version.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ 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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <csu/libc-tls.c>
#include <dl-tls.h>
diff --git a/sysdeps/riscv/machine-gmon.h b/sysdeps/riscv/machine-gmon.h
index a50d50a2e1..3b746a37f3 100644
--- a/sysdeps/riscv/machine-gmon.h
+++ b/sysdeps/riscv/machine-gmon.h
@@ -1,5 +1,5 @@
/* RISC-V definitions for profiling support.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Accept 'frompc' address as argument from the function that calls
_mcount for profiling. Use __builtin_return_address (0)
diff --git a/sysdeps/riscv/math-tests-snan-payload.h b/sysdeps/riscv/math-tests-snan-payload.h
new file mode 100644
index 0000000000..442c280fc7
--- /dev/null
+++ b/sysdeps/riscv/math-tests-snan-payload.h
@@ -0,0 +1,26 @@
+/* Configuration for math tests: sNaN payloads. RISC-V version.
+ Copyright (C) 2016-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef RISCV_MATH_TESTS_SNAN_PAYLOAD_H
+#define RISCV_MATH_TESTS_SNAN_PAYLOAD_H 1
+
+/* RISC-V floating-point instructions do not preserve NaN
+ payloads. */
+#define SNAN_TESTS_PRESERVE_PAYLOAD 0
+
+#endif /* math-tests-snan-payload.h. */
diff --git a/sysdeps/riscv/math-tests-trap.h b/sysdeps/riscv/math-tests-trap.h
new file mode 100644
index 0000000000..8fc1b6eb72
--- /dev/null
+++ b/sysdeps/riscv/math-tests-trap.h
@@ -0,0 +1,26 @@
+/* Configuration for math tests: support for enabling exception traps.
+ RISC-V version.
+ Copyright (C) 2014-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef RISCV_MATH_TESTS_TRAP_H
+#define RISCV_MATH_TESTS_TRAP_H 1
+
+/* Trapping exceptions are not supported on RISC-V. */
+#define EXCEPTION_ENABLE_SUPPORTED(EXCEPT) ((EXCEPT) == 0)
+
+#endif /* math-tests-trap.h. */
diff --git a/sysdeps/riscv/math-tests.h b/sysdeps/riscv/math-tests.h
deleted file mode 100644
index 32a8356a78..0000000000
--- a/sysdeps/riscv/math-tests.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/* Configuration for math tests. RISC-V version
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Copied from the aarch64 version
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-/* Trapping exceptions are not supported on RISC-V. */
-#define EXCEPTION_ENABLE_SUPPORTED(EXCEPT) ((EXCEPT) == 0)
-
-/* Despite not supporting trapping exceptions, we support setting
- floating-point exception flags on hard-float targets. These are not
- supported on soft-float targets. */
-#ifndef __riscv_flen
-# define EXCEPTION_TESTS_float 0
-# define EXCEPTION_TESTS_double 0
-# define EXCEPTION_TESTS_long_double 0
-#endif
-
-/* On soft-float targets we only support the "to nearest" rounding mode. */
-#ifndef __riscv_flen
-# define ROUNDING_TESTS_float(MODE) ((MODE) == FE_TONEAREST)
-# define ROUNDING_TESTS_double(MODE) ((MODE) == FE_TONEAREST)
-# define ROUNDING_TESTS_long_double(MODE) ((MODE) == FE_TONEAREST)
-#endif
-
-/* RISC-V floating-point instructions do not preserve NaN payloads. */
-#define SNAN_TESTS_PRESERVE_PAYLOAD 0
-
-#include_next <math-tests.h>
diff --git a/sysdeps/riscv/memusage.h b/sysdeps/riscv/memusage.h
index a29e0d1e03..9bb38cb97c 100644
--- a/sysdeps/riscv/memusage.h
+++ b/sysdeps/riscv/memusage.h
@@ -1,5 +1,5 @@
/* Machine-specific definitions for memory usage profiling, RISC-V version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define GETSP() ({ register uintptr_t stack_ptr asm ("sp"); stack_ptr; })
diff --git a/sysdeps/riscv/nofpu/libm-test-ulps b/sysdeps/riscv/nofpu/libm-test-ulps
index 365f950074..700772a5bf 100644
--- a/sysdeps/riscv/nofpu/libm-test-ulps
+++ b/sysdeps/riscv/nofpu/libm-test-ulps
@@ -1006,6 +1006,8 @@ ildouble: 2
ldouble: 2
Function: "cos":
+double: 1
+idouble: 1
ildouble: 1
ldouble: 1
@@ -1902,6 +1904,8 @@ ildouble: 1
ldouble: 1
Function: "pow":
+double: 1
+idouble: 1
ildouble: 2
ldouble: 2
@@ -1930,6 +1934,8 @@ ildouble: 2
ldouble: 2
Function: "sin":
+double: 1
+idouble: 1
ildouble: 1
ldouble: 1
@@ -1952,6 +1958,8 @@ ildouble: 3
ldouble: 3
Function: "sincos":
+double: 1
+idouble: 1
ildouble: 1
ldouble: 1
diff --git a/sysdeps/riscv/nofpu/math-tests-exceptions.h b/sysdeps/riscv/nofpu/math-tests-exceptions.h
new file mode 100644
index 0000000000..bf8cdb2d30
--- /dev/null
+++ b/sysdeps/riscv/nofpu/math-tests-exceptions.h
@@ -0,0 +1,29 @@
+/* Configuration for math tests: support for exceptions. RISC-V
+ no-FPU version.
+ Copyright (C) 2013-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef RISCV_NOFPU_MATH_TESTS_EXCEPTIONS_H
+#define RISCV_NOFPU_MATH_TESTS_EXCEPTIONS_H 1
+
+/* We support setting floating-point exception flags on hard-float
+ targets. These are not supported on soft-float targets. */
+#define EXCEPTION_TESTS_float 0
+#define EXCEPTION_TESTS_double 0
+#define EXCEPTION_TESTS_long_double 0
+
+#endif /* math-tests-exceptions.h. */
diff --git a/sysdeps/riscv/nofpu/math-tests-rounding.h b/sysdeps/riscv/nofpu/math-tests-rounding.h
new file mode 100644
index 0000000000..0c76f4de2f
--- /dev/null
+++ b/sysdeps/riscv/nofpu/math-tests-rounding.h
@@ -0,0 +1,27 @@
+/* Configuration for math tests: rounding mode support. RISC-V no-FPU version.
+ Copyright (C) 2014-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef RISCV_NOFPU_MATH_TESTS_ROUNDING_H
+#define RISCV_NOFPU_MATH_TESTS_ROUNDING_H 1
+
+/* On soft-float targets we only support the "to nearest" rounding mode. */
+#define ROUNDING_TESTS_float(MODE) ((MODE) == FE_TONEAREST)
+#define ROUNDING_TESTS_double(MODE) ((MODE) == FE_TONEAREST)
+#define ROUNDING_TESTS_long_double(MODE) ((MODE) == FE_TONEAREST)
+
+#endif /* math-tests-rounding.h. */
diff --git a/sysdeps/riscv/nptl/Makefile b/sysdeps/riscv/nptl/Makefile
index c3cc7f36da..54c1a2873c 100644
--- a/sysdeps/riscv/nptl/Makefile
+++ b/sysdeps/riscv/nptl/Makefile
@@ -1,5 +1,5 @@
# Makefile for sysdeps/riscv/nptl.
-# Copyright (C) 2005-2018 Free Software Foundation, Inc.
+# Copyright (C) 2005-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
@@ -14,7 +14,7 @@
#
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
ifeq ($(subdir),csu)
gen-as-const-headers += tcb-offsets.sym
diff --git a/sysdeps/riscv/nptl/bits/pthreadtypes-arch.h b/sysdeps/riscv/nptl/bits/pthreadtypes-arch.h
index f6a55b6233..330c302fd2 100644
--- a/sysdeps/riscv/nptl/bits/pthreadtypes-arch.h
+++ b/sysdeps/riscv/nptl/bits/pthreadtypes-arch.h
@@ -1,5 +1,5 @@
/* Machine-specific pthread type layouts. RISC-V version.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ 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
@@ -14,12 +14,12 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_PTHREADTYPES_ARCH_H
#define _BITS_PTHREADTYPES_ARCH_H 1
-#include <endian.h>
+#include <bits/endian.h>
#if __riscv_xlen == 64
# define __SIZEOF_PTHREAD_ATTR_T 56
@@ -35,34 +35,7 @@
# error "rv32i-based systems are not supported"
#endif
-#define __PTHREAD_COMPAT_PADDING_MID
-#define __PTHREAD_COMPAT_PADDING_END
-#define __PTHREAD_MUTEX_LOCK_ELISION 0
-#define __PTHREAD_MUTEX_USE_UNION 0
-#define __PTHREAD_MUTEX_NUSERS_AFTER_KIND 0
-
#define __LOCK_ALIGNMENT
#define __ONCE_ALIGNMENT
-/* There is a lot of padding in this structure. While it's not strictly
- necessary on RISC-V, we're going to leave it in to be on the safe side in
- case it's needed in the future. Most other architectures have the padding,
- so this gives us the same extensibility as everyone else has. */
-struct __pthread_rwlock_arch_t
-{
- unsigned int __readers;
- unsigned int __writers;
- unsigned int __wrphase_futex;
- unsigned int __writers_futex;
- unsigned int __pad3;
- unsigned int __pad4;
- int __cur_writer;
- int __shared;
- unsigned long int __pad1;
- unsigned long int __pad2;
- unsigned int __flags;
-};
-
-#define __PTHREAD_RWLOCK_ELISION_EXTRA 0
-
#endif /* bits/pthreadtypes.h */
diff --git a/sysdeps/riscv/nptl/bits/semaphore.h b/sysdeps/riscv/nptl/bits/semaphore.h
index 2fed17d0e5..a8409e5bc3 100644
--- a/sysdeps/riscv/nptl/bits/semaphore.h
+++ b/sysdeps/riscv/nptl/bits/semaphore.h
@@ -1,5 +1,5 @@
/* Machine-specific POSIX semaphore type layouts. RISC-V version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SEMAPHORE_H
# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
diff --git a/sysdeps/riscv/nptl/bits/struct_rwlock.h b/sysdeps/riscv/nptl/bits/struct_rwlock.h
new file mode 100644
index 0000000000..65a094eedc
--- /dev/null
+++ b/sysdeps/riscv/nptl/bits/struct_rwlock.h
@@ -0,0 +1,45 @@
+/* RISC-V internal rwlock struct definitions.
+ 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; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _RWLOCK_INTERNAL_H
+#define _RWLOCK_INTERNAL_H
+
+/* There is a lot of padding in this structure. While it's not strictly
+ necessary on RISC-V, we're going to leave it in to be on the safe side in
+ case it's needed in the future. Most other architectures have the padding,
+ so this gives us the same extensibility as everyone else has. */
+struct __pthread_rwlock_arch_t
+{
+ unsigned int __readers;
+ unsigned int __writers;
+ unsigned int __wrphase_futex;
+ unsigned int __writers_futex;
+ unsigned int __pad3;
+ unsigned int __pad4;
+ int __cur_writer;
+ int __shared;
+ unsigned long int __pad1;
+ unsigned long int __pad2;
+ unsigned int __flags;
+};
+
+#define __PTHREAD_RWLOCK_INITIALIZER(__flags) \
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, __flags
+
+#endif
diff --git a/sysdeps/riscv/nptl/pthread-offsets.h b/sysdeps/riscv/nptl/pthread-offsets.h
deleted file mode 100644
index 5f7031834f..0000000000
--- a/sysdeps/riscv/nptl/pthread-offsets.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/* RISC-V pthread offsets
- Copyright (C) 2017-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#define __PTHREAD_MUTEX_NUSERS_OFFSET 12
-#define __PTHREAD_MUTEX_KIND_OFFSET 16
-#define __PTHREAD_MUTEX_SPINS_OFFSET 20
-#define __PTHREAD_MUTEX_ELISION_OFFSET 22
-#define __PTHREAD_MUTEX_LIST_OFFSET 24
diff --git a/sysdeps/riscv/nptl/pthreaddef.h b/sysdeps/riscv/nptl/pthreaddef.h
index 442422aefb..0a2d4927b8 100644
--- a/sysdeps/riscv/nptl/pthreaddef.h
+++ b/sysdeps/riscv/nptl/pthreaddef.h
@@ -1,5 +1,5 @@
/* pthread machine parameter definitions, RISC-V version.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ 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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Default stack size. */
#define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024)
diff --git a/sysdeps/riscv/nptl/tls.h b/sysdeps/riscv/nptl/tls.h
index 7745d59044..295d8cddf8 100644
--- a/sysdeps/riscv/nptl/tls.h
+++ b/sysdeps/riscv/nptl/tls.h
@@ -1,5 +1,5 @@
/* Definition for thread-local data handling. NPTL/RISC-V version.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ 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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _RISCV_TLS_H
#define _RISCV_TLS_H 1
@@ -99,9 +99,10 @@ typedef struct
# define TLS_DEFINE_INIT_TP(tp, pd) \
void *tp = (void *) (pd) + TLS_TCB_OFFSET + TLS_PRE_TCB_SIZE
-/* Magic for libthread_db to know how to do THREAD_SELF. */
+/* Informs libthread_db that the thread pointer is register 4, which is used
+ * to know how to do THREAD_SELF. */
# define DB_THREAD_SELF \
- CONST_THREAD_AREA (32, TLS_TCB_OFFSET + TLS_PRE_TCB_SIZE)
+ REGISTER (64, 64, 4 * 8, - TLS_TCB_OFFSET - TLS_PRE_TCB_SIZE)
/* Access to data in the thread descriptor is easy. */
# define THREAD_GETMEM(descr, member) \
diff --git a/sysdeps/riscv/rv64/rvd/libm-test-ulps b/sysdeps/riscv/rv64/rvd/libm-test-ulps
index f8feadcd0d..971373d87d 100644
--- a/sysdeps/riscv/rv64/rvd/libm-test-ulps
+++ b/sysdeps/riscv/rv64/rvd/libm-test-ulps
@@ -712,9 +712,9 @@ ildouble: 2
ldouble: 2
Function: Imaginary part of "ccos_downward":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
@@ -728,9 +728,9 @@ ildouble: 2
ldouble: 2
Function: Imaginary part of "ccos_towardzero":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
@@ -768,33 +768,33 @@ ildouble: 1
ldouble: 1
Function: Real part of "ccosh_downward":
-double: 1
+double: 2
float: 2
-idouble: 1
+idouble: 2
ifloat: 2
ildouble: 2
ldouble: 2
Function: Imaginary part of "ccosh_downward":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
Function: Real part of "ccosh_towardzero":
-double: 1
+double: 2
float: 3
-idouble: 1
+idouble: 2
ifloat: 3
ildouble: 2
ldouble: 2
Function: Imaginary part of "ccosh_towardzero":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
@@ -832,33 +832,33 @@ ildouble: 1
ldouble: 1
Function: Real part of "cexp_downward":
-double: 1
+double: 2
float: 2
-idouble: 1
+idouble: 2
ifloat: 2
ildouble: 2
ldouble: 2
Function: Imaginary part of "cexp_downward":
-double: 1
+double: 3
float: 3
-idouble: 1
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
Function: Real part of "cexp_towardzero":
-double: 1
+double: 2
float: 2
-idouble: 1
+idouble: 2
ifloat: 2
ildouble: 2
ldouble: 2
Function: Imaginary part of "cexp_towardzero":
-double: 1
+double: 3
float: 3
-idouble: 1
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
@@ -872,9 +872,9 @@ ildouble: 3
ldouble: 3
Function: Imaginary part of "cexp_upward":
-double: 1
+double: 3
float: 2
-idouble: 1
+idouble: 3
ifloat: 2
ildouble: 3
ldouble: 3
@@ -1006,24 +1006,32 @@ ildouble: 2
ldouble: 2
Function: "cos":
+double: 1
+idouble: 1
ildouble: 1
ldouble: 1
Function: "cos_downward":
double: 1
+float: 1
idouble: 1
+ifloat: 1
ildouble: 3
ldouble: 3
Function: "cos_towardzero":
double: 1
+float: 1
idouble: 1
+ifloat: 1
ildouble: 1
ldouble: 1
Function: "cos_upward":
double: 1
+float: 1
idouble: 1
+ifloat: 1
ildouble: 2
ldouble: 2
@@ -1036,25 +1044,25 @@ ildouble: 1
ldouble: 1
Function: "cosh_downward":
-double: 1
+double: 2
float: 1
-idouble: 1
+idouble: 2
ifloat: 1
ildouble: 1
ldouble: 2
Function: "cosh_towardzero":
-double: 1
+double: 2
float: 1
-idouble: 1
+idouble: 2
ifloat: 1
ildouble: 1
ldouble: 2
Function: "cosh_upward":
-double: 1
+double: 2
float: 2
-idouble: 1
+idouble: 2
ifloat: 2
ildouble: 1
ldouble: 3
@@ -1074,9 +1082,9 @@ ildouble: 1
ldouble: 1
Function: Real part of "cpow_downward":
-double: 4
+double: 5
float: 8
-idouble: 4
+idouble: 5
ifloat: 8
ildouble: 6
ldouble: 6
@@ -1090,9 +1098,9 @@ ildouble: 2
ldouble: 2
Function: Real part of "cpow_towardzero":
-double: 4
+double: 5
float: 8
-idouble: 4
+idouble: 5
ifloat: 8
ildouble: 6
ldouble: 6
@@ -1134,9 +1142,9 @@ ildouble: 1
ldouble: 1
Function: Real part of "csin_downward":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
@@ -1150,9 +1158,9 @@ ildouble: 2
ldouble: 2
Function: Real part of "csin_towardzero":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
@@ -1204,9 +1212,9 @@ ildouble: 2
ldouble: 2
Function: Imaginary part of "csinh_downward":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
@@ -1220,9 +1228,9 @@ ildouble: 2
ldouble: 2
Function: Imaginary part of "csinh_towardzero":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
@@ -1348,9 +1356,9 @@ ildouble: 4
ldouble: 4
Function: Imaginary part of "ctan_towardzero":
-double: 1
+double: 2
float: 2
-idouble: 1
+idouble: 2
ifloat: 2
ildouble: 5
ldouble: 5
@@ -1476,9 +1484,9 @@ ildouble: 2
ldouble: 2
Function: "erfc_downward":
-double: 3
+double: 4
float: 4
-idouble: 3
+idouble: 4
ifloat: 4
ildouble: 5
ldouble: 5
@@ -1492,9 +1500,9 @@ ildouble: 4
ldouble: 4
Function: "erfc_upward":
-double: 3
+double: 4
float: 4
-idouble: 3
+idouble: 4
ifloat: 4
ildouble: 5
ldouble: 5
@@ -1510,17 +1518,17 @@ ildouble: 2
ldouble: 2
Function: "exp10_downward":
-double: 2
+double: 3
float: 1
-idouble: 2
+idouble: 3
ifloat: 1
ildouble: 3
ldouble: 3
Function: "exp10_towardzero":
-double: 2
+double: 3
float: 1
-idouble: 2
+idouble: 3
ifloat: 1
ildouble: 3
ldouble: 3
@@ -1898,10 +1906,12 @@ ldouble: 2
Function: "log_upward":
double: 1
idouble: 1
-ildouble: 1
-ldouble: 1
+ildouble: 2
+ldouble: 2
Function: "pow":
+double: 1
+idouble: 1
ildouble: 2
ldouble: 2
@@ -1930,46 +1940,62 @@ ildouble: 2
ldouble: 2
Function: "sin":
+double: 1
+idouble: 1
ildouble: 1
ldouble: 1
Function: "sin_downward":
double: 1
+float: 1
idouble: 1
+ifloat: 1
ildouble: 3
ldouble: 3
Function: "sin_towardzero":
double: 1
+float: 1
idouble: 1
+ifloat: 1
ildouble: 2
ldouble: 2
Function: "sin_upward":
double: 1
+float: 1
idouble: 1
+ifloat: 1
ildouble: 3
ldouble: 3
Function: "sincos":
+double: 1
+idouble: 1
ildouble: 1
ldouble: 1
Function: "sincos_downward":
double: 1
+float: 1
idouble: 1
+ifloat: 1
ildouble: 3
ldouble: 3
Function: "sincos_towardzero":
double: 1
+float: 1
idouble: 1
+ifloat: 1
ildouble: 2
ldouble: 2
Function: "sincos_upward":
double: 1
+float: 1
idouble: 1
+ifloat: 1
ildouble: 3
ldouble: 3
diff --git a/sysdeps/riscv/rv64/rvd/s_ceil.c b/sysdeps/riscv/rv64/rvd/s_ceil.c
index af99ecca3d..c8d36ec80d 100644
--- a/sysdeps/riscv/rv64/rvd/s_ceil.c
+++ b/sysdeps/riscv/rv64/rvd/s_ceil.c
@@ -1,5 +1,5 @@
/* ceil(). RISC-V version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,10 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
-#include <math_private.h>
+#include <fenv_private.h>
#include <libm-alias-double.h>
#include <stdint.h>
diff --git a/sysdeps/riscv/rv64/rvd/s_floor.c b/sysdeps/riscv/rv64/rvd/s_floor.c
index f34af98cce..a01dded6d5 100644
--- a/sysdeps/riscv/rv64/rvd/s_floor.c
+++ b/sysdeps/riscv/rv64/rvd/s_floor.c
@@ -1,5 +1,5 @@
/* floor(). RISC-V version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,10 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
-#include <math_private.h>
+#include <fenv_private.h>
#include <libm-alias-double.h>
#include <stdint.h>
diff --git a/sysdeps/riscv/rv64/rvd/s_llrint.c b/sysdeps/riscv/rv64/rvd/s_llrint.c
index 8f37090d74..fee8de9787 100644
--- a/sysdeps/riscv/rv64/rvd/s_llrint.c
+++ b/sysdeps/riscv/rv64/rvd/s_llrint.c
@@ -1,5 +1,5 @@
/* llrint(). RISC-V version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libm-alias-double.h>
#include <stdint.h>
diff --git a/sysdeps/riscv/rv64/rvd/s_llround.c b/sysdeps/riscv/rv64/rvd/s_llround.c
index b7e448876b..384fff53cb 100644
--- a/sysdeps/riscv/rv64/rvd/s_llround.c
+++ b/sysdeps/riscv/rv64/rvd/s_llround.c
@@ -1,5 +1,5 @@
/* llround(). RISC-V version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libm-alias-double.h>
#include <stdint.h>
diff --git a/sysdeps/riscv/rv64/rvd/s_lrint.c b/sysdeps/riscv/rv64/rvd/s_lrint.c
index 48f61be966..607e6c34ed 100644
--- a/sysdeps/riscv/rv64/rvd/s_lrint.c
+++ b/sysdeps/riscv/rv64/rvd/s_lrint.c
@@ -1,5 +1,5 @@
/* lrint(). RISC-V version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libm-alias-double.h>
#include <stdint.h>
diff --git a/sysdeps/riscv/rv64/rvd/s_lround.c b/sysdeps/riscv/rv64/rvd/s_lround.c
index 392233cd04..77b65426aa 100644
--- a/sysdeps/riscv/rv64/rvd/s_lround.c
+++ b/sysdeps/riscv/rv64/rvd/s_lround.c
@@ -1,5 +1,5 @@
/* llround(). RISC-V version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libm-alias-double.h>
#include <stdint.h>
diff --git a/sysdeps/riscv/rv64/rvd/s_nearbyint.c b/sysdeps/riscv/rv64/rvd/s_nearbyint.c
index e17f038429..bf9835f014 100644
--- a/sysdeps/riscv/rv64/rvd/s_nearbyint.c
+++ b/sysdeps/riscv/rv64/rvd/s_nearbyint.c
@@ -1,5 +1,5 @@
/* nearbyint(). RISC-V version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,10 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
-#include <math_private.h>
+#include <fenv_private.h>
#include <libm-alias-double.h>
#include <stdint.h>
diff --git a/sysdeps/riscv/rv64/rvd/s_rint.c b/sysdeps/riscv/rv64/rvd/s_rint.c
index ef2380ea7f..ea2753182e 100644
--- a/sysdeps/riscv/rv64/rvd/s_rint.c
+++ b/sysdeps/riscv/rv64/rvd/s_rint.c
@@ -1,5 +1,5 @@
/* rint(). RISC-V version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,10 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
-#include <math_private.h>
+#include <stdbool.h>
#include <libm-alias-double.h>
#include <stdint.h>
diff --git a/sysdeps/riscv/rv64/rvd/s_round.c b/sysdeps/riscv/rv64/rvd/s_round.c
index 22cff63e09..1930125e90 100644
--- a/sysdeps/riscv/rv64/rvd/s_round.c
+++ b/sysdeps/riscv/rv64/rvd/s_round.c
@@ -1,5 +1,5 @@
/* round(). RISC-V version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,10 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
-#include <math_private.h>
+#include <fenv_private.h>
#include <libm-alias-double.h>
#include <stdint.h>
diff --git a/sysdeps/riscv/rv64/rvd/s_roundeven.c b/sysdeps/riscv/rv64/rvd/s_roundeven.c
index 26a0b2ded3..8aad415d4f 100644
--- a/sysdeps/riscv/rv64/rvd/s_roundeven.c
+++ b/sysdeps/riscv/rv64/rvd/s_roundeven.c
@@ -1,5 +1,5 @@
/* Round to nearest integer value, rounding halfway cases to even.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,10 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
-#include <math_private.h>
+#include <fenv_private.h>
#include <libm-alias-double.h>
#include <stdint.h>
diff --git a/sysdeps/riscv/rv64/rvd/s_trunc.c b/sysdeps/riscv/rv64/rvd/s_trunc.c
index a0f78e6cd1..345ad201e8 100644
--- a/sysdeps/riscv/rv64/rvd/s_trunc.c
+++ b/sysdeps/riscv/rv64/rvd/s_trunc.c
@@ -1,5 +1,5 @@
/* trunc(). RISC-V version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,10 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
-#include <math_private.h>
+#include <fenv_private.h>
#include <libm-alias-double.h>
#include <stdint.h>
diff --git a/sysdeps/riscv/rv64/rvf/s_llrintf.c b/sysdeps/riscv/rv64/rvf/s_llrintf.c
index ddfda6cfe2..6901c852e1 100644
--- a/sysdeps/riscv/rv64/rvf/s_llrintf.c
+++ b/sysdeps/riscv/rv64/rvf/s_llrintf.c
@@ -1,5 +1,5 @@
/* Round argument to nearest integral value according to current direction.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libm-alias-float.h>
#include <stdint.h>
diff --git a/sysdeps/riscv/rv64/rvf/s_llroundf.c b/sysdeps/riscv/rv64/rvf/s_llroundf.c
index 7132f81d2f..ed1d2eb855 100644
--- a/sysdeps/riscv/rv64/rvf/s_llroundf.c
+++ b/sysdeps/riscv/rv64/rvf/s_llroundf.c
@@ -1,5 +1,5 @@
/* Round float value to long long int. RISC-V version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libm-alias-float.h>
#include <stdint.h>
diff --git a/sysdeps/riscv/rv64/rvf/s_lrintf.c b/sysdeps/riscv/rv64/rvf/s_lrintf.c
index d8b2fe88bf..ebbff33a81 100644
--- a/sysdeps/riscv/rv64/rvf/s_lrintf.c
+++ b/sysdeps/riscv/rv64/rvf/s_lrintf.c
@@ -1,5 +1,5 @@
/* lrintf(). RISC-V version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/riscv/rv64/rvf/s_lroundf.c b/sysdeps/riscv/rv64/rvf/s_lroundf.c
index 010ce6904d..cf0beee308 100644
--- a/sysdeps/riscv/rv64/rvf/s_lroundf.c
+++ b/sysdeps/riscv/rv64/rvf/s_lroundf.c
@@ -1,5 +1,5 @@
/* lroundf(). RISC-V version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/riscv/rvd/e_sqrt.c b/sysdeps/riscv/rvd/e_sqrt.c
index 66627eec21..d4e5215139 100644
--- a/sysdeps/riscv/rvd/e_sqrt.c
+++ b/sysdeps/riscv/rvd/e_sqrt.c
@@ -1,5 +1,5 @@
/* Double precision floating point square root. RISC-V version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/riscv/rvd/s_copysign.c b/sysdeps/riscv/rvd/s_copysign.c
index 36fef55aa2..cd1d15a1e3 100644
--- a/sysdeps/riscv/rvd/s_copysign.c
+++ b/sysdeps/riscv/rvd/s_copysign.c
@@ -1,5 +1,5 @@
/* Copy sign bit between floating-point values. RISC-V version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,8 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
#include <libm-alias-double.h>
diff --git a/sysdeps/riscv/rvd/s_finite.c b/sysdeps/riscv/rvd/s_finite.c
index 402ae3fa3a..653fe5c516 100644
--- a/sysdeps/riscv/rvd/s_finite.c
+++ b/sysdeps/riscv/rvd/s_finite.c
@@ -1,5 +1,5 @@
/* finite(). RISC-V version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,10 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
-#include <math_private.h>
+#include <fenv_private.h>
int
__finite (double x)
diff --git a/sysdeps/riscv/rvd/s_fma.c b/sysdeps/riscv/rvd/s_fma.c
index 165557962f..ee10705185 100644
--- a/sysdeps/riscv/rvd/s_fma.c
+++ b/sysdeps/riscv/rvd/s_fma.c
@@ -1,5 +1,5 @@
/* Double precision floating point fused multiply-add. RISC-V version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <fenv.h>
diff --git a/sysdeps/riscv/rvd/s_fmax.c b/sysdeps/riscv/rvd/s_fmax.c
index 22e91bfc4b..f1cc89c452 100644
--- a/sysdeps/riscv/rvd/s_fmax.c
+++ b/sysdeps/riscv/rvd/s_fmax.c
@@ -1,5 +1,5 @@
/* fmax(). RISC-V version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,10 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
-#include <math_private.h>
+#include <fenv_private.h>
#include <libm-alias-double.h>
double
diff --git a/sysdeps/riscv/rvd/s_fmin.c b/sysdeps/riscv/rvd/s_fmin.c
index 7b35230cac..9c2e479f43 100644
--- a/sysdeps/riscv/rvd/s_fmin.c
+++ b/sysdeps/riscv/rvd/s_fmin.c
@@ -1,5 +1,5 @@
/* fmin(). RISC-V version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,10 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
-#include <math_private.h>
+#include <fenv_private.h>
#include <libm-alias-double.h>
double
diff --git a/sysdeps/riscv/rvd/s_fpclassify.c b/sysdeps/riscv/rvd/s_fpclassify.c
index fe693c2f4a..d354e4a8cb 100644
--- a/sysdeps/riscv/rvd/s_fpclassify.c
+++ b/sysdeps/riscv/rvd/s_fpclassify.c
@@ -1,5 +1,5 @@
/* fpclassify(). RISC-V version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,10 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
-#include <math_private.h>
+#include <fenv_private.h>
int
__fpclassify (double x)
diff --git a/sysdeps/riscv/rvd/s_isinf.c b/sysdeps/riscv/rvd/s_isinf.c
index 1b9767a718..8b43c2a000 100644
--- a/sysdeps/riscv/rvd/s_isinf.c
+++ b/sysdeps/riscv/rvd/s_isinf.c
@@ -1,5 +1,5 @@
/* isinf(). RISC-V version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,10 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
-#include <math_private.h>
+#include <fenv_private.h>
int
__isinf (double x)
diff --git a/sysdeps/riscv/rvd/s_isnan.c b/sysdeps/riscv/rvd/s_isnan.c
index 3739de7ec7..a08c574e95 100644
--- a/sysdeps/riscv/rvd/s_isnan.c
+++ b/sysdeps/riscv/rvd/s_isnan.c
@@ -1,5 +1,5 @@
/* isnan(). RISC_V version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,10 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
-#include <math_private.h>
+#include <fenv_private.h>
int
__isnan (double x)
diff --git a/sysdeps/riscv/rvd/s_issignaling.c b/sysdeps/riscv/rvd/s_issignaling.c
index 1b65206e9a..260da6e5fd 100644
--- a/sysdeps/riscv/rvd/s_issignaling.c
+++ b/sysdeps/riscv/rvd/s_issignaling.c
@@ -1,5 +1,5 @@
/* issignaling(). RISC-V version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,10 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
-#include <math_private.h>
+#include <fenv_private.h>
int
__issignaling (double x)
diff --git a/sysdeps/riscv/rvf/e_sqrtf.c b/sysdeps/riscv/rvf/e_sqrtf.c
index 711d93e430..5791350e7c 100644
--- a/sysdeps/riscv/rvf/e_sqrtf.c
+++ b/sysdeps/riscv/rvf/e_sqrtf.c
@@ -1,5 +1,5 @@
/* Single precision floating point square root. RISC-V version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/riscv/rvf/fclrexcpt.c b/sysdeps/riscv/rvf/fclrexcpt.c
index bdad377e88..dddc6f689d 100644
--- a/sysdeps/riscv/rvf/fclrexcpt.c
+++ b/sysdeps/riscv/rvf/fclrexcpt.c
@@ -1,5 +1,5 @@
/* Clear given exceptions in current floating-point environment.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/riscv/rvf/fegetenv.c b/sysdeps/riscv/rvf/fegetenv.c
index 1c29413be5..7e9735e05c 100644
--- a/sysdeps/riscv/rvf/fegetenv.c
+++ b/sysdeps/riscv/rvf/fegetenv.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/riscv/rvf/fegetmode.c b/sysdeps/riscv/rvf/fegetmode.c
index 67ae14c4ff..fff2443182 100644
--- a/sysdeps/riscv/rvf/fegetmode.c
+++ b/sysdeps/riscv/rvf/fegetmode.c
@@ -1,5 +1,5 @@
/* Store current floating-point control modes. RISC-V version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/riscv/rvf/fegetround.c b/sysdeps/riscv/rvf/fegetround.c
index f7692a827b..ab2f540559 100644
--- a/sysdeps/riscv/rvf/fegetround.c
+++ b/sysdeps/riscv/rvf/fegetround.c
@@ -1,5 +1,5 @@
/* Return current rounding direction.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,10 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
-#include <math_private.h>
+#include <fenv_private.h>
int
__fegetround (void)
diff --git a/sysdeps/riscv/rvf/feholdexcpt.c b/sysdeps/riscv/rvf/feholdexcpt.c
index ea9060f3dc..848e13a3f6 100644
--- a/sysdeps/riscv/rvf/feholdexcpt.c
+++ b/sysdeps/riscv/rvf/feholdexcpt.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment and clear exceptions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,10 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
-#include <math_private.h>
+#include <fenv_private.h>
int
__feholdexcept (fenv_t *envp)
diff --git a/sysdeps/riscv/rvf/fenv_private.h b/sysdeps/riscv/rvf/fenv_private.h
new file mode 100644
index 0000000000..2b45f8b3d0
--- /dev/null
+++ b/sysdeps/riscv/rvf/fenv_private.h
@@ -0,0 +1,161 @@
+/* Private floating point rounding and exceptions handling. RISC-V version.
+ Copyright (C) 2014-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef RISCV_FENV_PRIVATE_H
+#define RISCV_FENV_PRIVATE_H 1
+
+#include <fenv.h>
+#include <fpu_control.h>
+#include <get-rounding-mode.h>
+
+static __always_inline int
+riscv_getround (void)
+{
+ return get_rounding_mode ();
+}
+
+static __always_inline void
+riscv_setround (int rm)
+{
+ asm volatile ("fsrm %z0" : : "rJ" (rm));
+}
+
+static __always_inline int
+riscv_getflags (void)
+{
+ int flags;
+ asm volatile ("frflags %0" : "=r" (flags));
+ return flags;
+}
+
+static __always_inline void
+riscv_setflags (int flags)
+{
+ asm volatile ("fsflags %z0" : : "rJ" (flags));
+}
+
+static __always_inline void
+libc_feholdexcept_riscv (fenv_t *envp)
+{
+ asm volatile ("csrrc %0, fcsr, %1" : "=r" (*envp) : "i" (FE_ALL_EXCEPT));
+}
+
+#define libc_feholdexcept libc_feholdexcept_riscv
+#define libc_feholdexceptf libc_feholdexcept_riscv
+#define libc_feholdexceptl libc_feholdexcept_riscv
+
+static __always_inline void
+libc_fesetround_riscv (int round)
+{
+ riscv_setround (round);
+}
+
+#define libc_fesetround libc_fesetround_riscv
+#define libc_fesetroundf libc_fesetround_riscv
+#define libc_fesetroundl libc_fesetround_riscv
+
+static __always_inline void
+libc_feholdexcept_setround_riscv (fenv_t *envp, int round)
+{
+ libc_feholdexcept_riscv (envp);
+ libc_fesetround_riscv (round);
+}
+
+#define libc_feholdexcept_setround libc_feholdexcept_setround_riscv
+#define libc_feholdexcept_setroundf libc_feholdexcept_setround_riscv
+#define libc_feholdexcept_setroundl libc_feholdexcept_setround_riscv
+
+static __always_inline int
+libc_fetestexcept_riscv (int ex)
+{
+ return riscv_getflags () & ex;
+}
+
+#define libc_fetestexcept libc_fetestexcept_riscv
+#define libc_fetestexceptf libc_fetestexcept_riscv
+#define libc_fetestexceptl libc_fetestexcept_riscv
+
+static __always_inline void
+libc_fesetenv_riscv (const fenv_t *envp)
+{
+ long int env = (long int) envp - (long int) FE_DFL_ENV;
+ if (env != 0)
+ env = *envp;
+
+ _FPU_SETCW (env);
+}
+
+#define libc_fesetenv libc_fesetenv_riscv
+#define libc_fesetenvf libc_fesetenv_riscv
+#define libc_fesetenvl libc_fesetenv_riscv
+#define libc_feresetround_noex libc_fesetenv_riscv
+#define libc_feresetround_noexf libc_fesetenv_riscv
+#define libc_feresetround_noexl libc_fesetenv_riscv
+
+static __always_inline int
+libc_feupdateenv_test_riscv (const fenv_t *envp, int ex)
+{
+ fenv_t env = *envp;
+ int flags = riscv_getflags ();
+ asm volatile ("csrw fcsr, %z0" : : "rJ" (env | flags));
+ return flags & ex;
+}
+
+#define libc_feupdateenv_test libc_feupdateenv_test_riscv
+#define libc_feupdateenv_testf libc_feupdateenv_test_riscv
+#define libc_feupdateenv_testl libc_feupdateenv_test_riscv
+
+static __always_inline void
+libc_feupdateenv_riscv (const fenv_t *envp)
+{
+ _FPU_SETCW (*envp | riscv_getflags ());
+}
+
+#define libc_feupdateenv libc_feupdateenv_riscv
+#define libc_feupdateenvf libc_feupdateenv_riscv
+#define libc_feupdateenvl libc_feupdateenv_riscv
+
+static __always_inline void
+libc_feholdsetround_riscv (fenv_t *envp, int round)
+{
+ /* Note this implementation makes an improperly-formatted fenv_t and
+ so should only be used in conjunction with libc_feresetround. */
+ int old_round;
+ asm volatile ("csrrw %0, frm, %z1" : "=r" (old_round) : "rJ" (round));
+ *envp = old_round;
+}
+
+#define libc_feholdsetround libc_feholdsetround_riscv
+#define libc_feholdsetroundf libc_feholdsetround_riscv
+#define libc_feholdsetroundl libc_feholdsetround_riscv
+
+static __always_inline void
+libc_feresetround_riscv (fenv_t *envp)
+{
+ /* Note this implementation takes an improperly-formatted fenv_t and
+ so should only be used in conjunction with libc_feholdsetround. */
+ riscv_setround (*envp);
+}
+
+#define libc_feresetround libc_feresetround_riscv
+#define libc_feresetroundf libc_feresetround_riscv
+#define libc_feresetroundl libc_feresetround_riscv
+
+#include_next <fenv_private.h>
+
+#endif
diff --git a/sysdeps/riscv/rvf/fesetenv.c b/sysdeps/riscv/rvf/fesetenv.c
index 5d02d80101..6259b9f145 100644
--- a/sysdeps/riscv/rvf/fesetenv.c
+++ b/sysdeps/riscv/rvf/fesetenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,10 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
-#include <math_private.h>
+#include <fenv_private.h>
int
__fesetenv (const fenv_t *envp)
diff --git a/sysdeps/riscv/rvf/fesetexcept.c b/sysdeps/riscv/rvf/fesetexcept.c
index 70059aa61a..577d9133f2 100644
--- a/sysdeps/riscv/rvf/fesetexcept.c
+++ b/sysdeps/riscv/rvf/fesetexcept.c
@@ -1,5 +1,5 @@
/* Set given exception flags. RISC-V version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/riscv/rvf/fesetmode.c b/sysdeps/riscv/rvf/fesetmode.c
index d39c5626fe..7a8cd07f53 100644
--- a/sysdeps/riscv/rvf/fesetmode.c
+++ b/sysdeps/riscv/rvf/fesetmode.c
@@ -1,5 +1,5 @@
/* Install given floating-point control modes. RISC-V version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/riscv/rvf/fesetround.c b/sysdeps/riscv/rvf/fesetround.c
index bf705ef0c9..7dc6742cee 100644
--- a/sysdeps/riscv/rvf/fesetround.c
+++ b/sysdeps/riscv/rvf/fesetround.c
@@ -1,5 +1,5 @@
/* Set current rounding direction.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,10 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
-#include <math_private.h>
+#include <fenv_private.h>
int
__fesetround (int round)
diff --git a/sysdeps/riscv/rvf/feupdateenv.c b/sysdeps/riscv/rvf/feupdateenv.c
index 133d7eca11..505110630f 100644
--- a/sysdeps/riscv/rvf/feupdateenv.c
+++ b/sysdeps/riscv/rvf/feupdateenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment and raise exceptions.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,10 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
-#include <math_private.h>
+#include <fenv_private.h>
int
__feupdateenv (const fenv_t *envp)
diff --git a/sysdeps/riscv/rvf/fgetexcptflg.c b/sysdeps/riscv/rvf/fgetexcptflg.c
index 367f0135d4..270a149a75 100644
--- a/sysdeps/riscv/rvf/fgetexcptflg.c
+++ b/sysdeps/riscv/rvf/fgetexcptflg.c
@@ -1,5 +1,5 @@
/* Store current representation for exceptions.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,10 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
-#include <math_private.h>
+#include <fenv_private.h>
int
fegetexceptflag (fexcept_t *flagp, int excepts)
diff --git a/sysdeps/riscv/rvf/fraiseexcpt.c b/sysdeps/riscv/rvf/fraiseexcpt.c
index dee90c3476..188833f0d6 100644
--- a/sysdeps/riscv/rvf/fraiseexcpt.c
+++ b/sysdeps/riscv/rvf/fraiseexcpt.c
@@ -1,5 +1,5 @@
/* Raise given exceptions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/riscv/rvf/fsetexcptflg.c b/sysdeps/riscv/rvf/fsetexcptflg.c
index 9e5bebf289..c7335bd76b 100644
--- a/sysdeps/riscv/rvf/fsetexcptflg.c
+++ b/sysdeps/riscv/rvf/fsetexcptflg.c
@@ -1,5 +1,5 @@
/* Set floating-point environment exception handling.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/riscv/rvf/ftestexcept.c b/sysdeps/riscv/rvf/ftestexcept.c
index a248bd6319..d8e0215ec3 100644
--- a/sysdeps/riscv/rvf/ftestexcept.c
+++ b/sysdeps/riscv/rvf/ftestexcept.c
@@ -1,5 +1,5 @@
/* Test exception in current environment.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,10 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
-#include <math_private.h>
+#include <fenv_private.h>
int
fetestexcept (int excepts)
diff --git a/sysdeps/riscv/rvf/get-rounding-mode.h b/sysdeps/riscv/rvf/get-rounding-mode.h
index 42891324dd..55c9d1a006 100644
--- a/sysdeps/riscv/rvf/get-rounding-mode.h
+++ b/sysdeps/riscv/rvf/get-rounding-mode.h
@@ -1,5 +1,5 @@
/* Determine floating-point rounding mode within libc. RISC-V version.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _RISCV_GET_ROUNDING_MODE_H
#define _RISCV_GET_ROUNDING_MODE_H
diff --git a/sysdeps/riscv/rvf/math_private.h b/sysdeps/riscv/rvf/math_private.h
deleted file mode 100644
index cdb7858fc8..0000000000
--- a/sysdeps/riscv/rvf/math_private.h
+++ /dev/null
@@ -1,161 +0,0 @@
-/* Private floating point rounding and exceptions handling. RISC-V version.
- Copyright (C) 2014-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef RISCV_MATH_PRIVATE_H
-#define RISCV_MATH_PRIVATE_H 1
-
-#include <fenv.h>
-#include <fpu_control.h>
-#include <get-rounding-mode.h>
-
-static __always_inline int
-riscv_getround (void)
-{
- return get_rounding_mode ();
-}
-
-static __always_inline void
-riscv_setround (int rm)
-{
- asm volatile ("fsrm %z0" : : "rJ" (rm));
-}
-
-static __always_inline int
-riscv_getflags (void)
-{
- int flags;
- asm volatile ("frflags %0" : "=r" (flags));
- return flags;
-}
-
-static __always_inline void
-riscv_setflags (int flags)
-{
- asm volatile ("fsflags %z0" : : "rJ" (flags));
-}
-
-static __always_inline void
-libc_feholdexcept_riscv (fenv_t *envp)
-{
- asm volatile ("csrrc %0, fcsr, %1" : "=r" (*envp) : "i" (FE_ALL_EXCEPT));
-}
-
-#define libc_feholdexcept libc_feholdexcept_riscv
-#define libc_feholdexceptf libc_feholdexcept_riscv
-#define libc_feholdexceptl libc_feholdexcept_riscv
-
-static __always_inline void
-libc_fesetround_riscv (int round)
-{
- riscv_setround (round);
-}
-
-#define libc_fesetround libc_fesetround_riscv
-#define libc_fesetroundf libc_fesetround_riscv
-#define libc_fesetroundl libc_fesetround_riscv
-
-static __always_inline void
-libc_feholdexcept_setround_riscv (fenv_t *envp, int round)
-{
- libc_fesetround_riscv (round);
- libc_feholdexcept_riscv (envp);
-}
-
-#define libc_feholdexcept_setround libc_feholdexcept_setround_riscv
-#define libc_feholdexcept_setroundf libc_feholdexcept_setround_riscv
-#define libc_feholdexcept_setroundl libc_feholdexcept_setround_riscv
-
-static __always_inline int
-libc_fetestexcept_riscv (int ex)
-{
- return riscv_getflags () & ex;
-}
-
-#define libc_fetestexcept libc_fetestexcept_riscv
-#define libc_fetestexceptf libc_fetestexcept_riscv
-#define libc_fetestexceptl libc_fetestexcept_riscv
-
-static __always_inline void
-libc_fesetenv_riscv (const fenv_t *envp)
-{
- long int env = (long int) envp - (long int) FE_DFL_ENV;
- if (env != 0)
- env = *envp;
-
- _FPU_SETCW (env);
-}
-
-#define libc_fesetenv libc_fesetenv_riscv
-#define libc_fesetenvf libc_fesetenv_riscv
-#define libc_fesetenvl libc_fesetenv_riscv
-#define libc_feresetround_noex libc_fesetenv_riscv
-#define libc_feresetround_noexf libc_fesetenv_riscv
-#define libc_feresetround_noexl libc_fesetenv_riscv
-
-static __always_inline int
-libc_feupdateenv_test_riscv (const fenv_t *envp, int ex)
-{
- fenv_t env = *envp;
- int flags = riscv_getflags ();
- asm volatile ("csrw fcsr, %z0" : : "rJ" (env | flags));
- return flags & ex;
-}
-
-#define libc_feupdateenv_test libc_feupdateenv_test_riscv
-#define libc_feupdateenv_testf libc_feupdateenv_test_riscv
-#define libc_feupdateenv_testl libc_feupdateenv_test_riscv
-
-static __always_inline void
-libc_feupdateenv_riscv (const fenv_t *envp)
-{
- _FPU_SETCW (*envp | riscv_getflags ());
-}
-
-#define libc_feupdateenv libc_feupdateenv_riscv
-#define libc_feupdateenvf libc_feupdateenv_riscv
-#define libc_feupdateenvl libc_feupdateenv_riscv
-
-static __always_inline void
-libc_feholdsetround_riscv (fenv_t *envp, int round)
-{
- /* Note this implementation makes an improperly-formatted fenv_t and
- so should only be used in conjunction with libc_feresetround. */
- int old_round;
- asm volatile ("csrrw %0, frm, %z1" : "=r" (old_round) : "rJ" (round));
- *envp = old_round;
-}
-
-#define libc_feholdsetround libc_feholdsetround_riscv
-#define libc_feholdsetroundf libc_feholdsetround_riscv
-#define libc_feholdsetroundl libc_feholdsetround_riscv
-
-static __always_inline void
-libc_feresetround_riscv (fenv_t *envp)
-{
- /* Note this implementation takes an improperly-formatted fenv_t and
- so should only be used in conjunction with libc_feholdsetround. */
- riscv_setround (*envp);
-}
-
-#define libc_feresetround libc_feresetround_riscv
-#define libc_feresetroundf libc_feresetround_riscv
-#define libc_feresetroundl libc_feresetround_riscv
-
-#include_next <math_private.h>
-
-#endif
diff --git a/sysdeps/riscv/rvf/s_ceilf.c b/sysdeps/riscv/rvf/s_ceilf.c
index d7e291acf8..5cca2125bd 100644
--- a/sysdeps/riscv/rvf/s_ceilf.c
+++ b/sysdeps/riscv/rvf/s_ceilf.c
@@ -1,5 +1,5 @@
/* ceilf(). RISC-V version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,10 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
-#include <math_private.h>
+#include <fenv_private.h>
#include <libm-alias-float.h>
#include <stdint.h>
diff --git a/sysdeps/riscv/rvf/s_copysignf.c b/sysdeps/riscv/rvf/s_copysignf.c
index 4d1c122f7e..57da2dd8e3 100644
--- a/sysdeps/riscv/rvf/s_copysignf.c
+++ b/sysdeps/riscv/rvf/s_copysignf.c
@@ -1,5 +1,5 @@
/* copysignf(). RISC-V version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,8 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/riscv/rvf/s_finitef.c b/sysdeps/riscv/rvf/s_finitef.c
index 04ce08719b..ecb0b2e715 100644
--- a/sysdeps/riscv/rvf/s_finitef.c
+++ b/sysdeps/riscv/rvf/s_finitef.c
@@ -1,5 +1,5 @@
/* finitef(). RISC-V version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,10 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
-#include <math_private.h>
+#include <fenv_private.h>
int
__finitef (float x)
diff --git a/sysdeps/riscv/rvf/s_floorf.c b/sysdeps/riscv/rvf/s_floorf.c
index 3c9c625e2f..3cb8cb66a6 100644
--- a/sysdeps/riscv/rvf/s_floorf.c
+++ b/sysdeps/riscv/rvf/s_floorf.c
@@ -1,5 +1,5 @@
/* floorf(). RISC-V version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,10 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
-#include <math_private.h>
+#include <fenv_private.h>
#include <libm-alias-float.h>
#include <stdint.h>
diff --git a/sysdeps/riscv/rvf/s_fmaf.c b/sysdeps/riscv/rvf/s_fmaf.c
index 946e7ed0c9..224cf1f13d 100644
--- a/sysdeps/riscv/rvf/s_fmaf.c
+++ b/sysdeps/riscv/rvf/s_fmaf.c
@@ -1,5 +1,5 @@
/* fmaf(). RISC-V version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <fenv.h>
diff --git a/sysdeps/riscv/rvf/s_fmaxf.c b/sysdeps/riscv/rvf/s_fmaxf.c
index 63f7e3d664..658e84f7f5 100644
--- a/sysdeps/riscv/rvf/s_fmaxf.c
+++ b/sysdeps/riscv/rvf/s_fmaxf.c
@@ -1,5 +1,5 @@
/* fmaxf(). RISC-V version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,10 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
-#include <math_private.h>
+#include <fenv_private.h>
#include <libm-alias-float.h>
float
diff --git a/sysdeps/riscv/rvf/s_fminf.c b/sysdeps/riscv/rvf/s_fminf.c
index 82cca4e37d..f183f4a5dd 100644
--- a/sysdeps/riscv/rvf/s_fminf.c
+++ b/sysdeps/riscv/rvf/s_fminf.c
@@ -1,5 +1,5 @@
/* fminf(). RISC-V version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,10 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
-#include <math_private.h>
+#include <fenv_private.h>
#include <libm-alias-float.h>
float
diff --git a/sysdeps/riscv/rvf/s_fpclassifyf.c b/sysdeps/riscv/rvf/s_fpclassifyf.c
index 4abcf3edac..de2079973f 100644
--- a/sysdeps/riscv/rvf/s_fpclassifyf.c
+++ b/sysdeps/riscv/rvf/s_fpclassifyf.c
@@ -1,5 +1,5 @@
/* fpclassifyf(). RISC-V version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,10 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
-#include <math_private.h>
+#include <fenv_private.h>
int
__fpclassifyf (float x)
diff --git a/sysdeps/riscv/rvf/s_isinff.c b/sysdeps/riscv/rvf/s_isinff.c
index 1c7413190c..67a4f59b04 100644
--- a/sysdeps/riscv/rvf/s_isinff.c
+++ b/sysdeps/riscv/rvf/s_isinff.c
@@ -1,5 +1,5 @@
/* isinff(). RISC-V version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,10 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
-#include <math_private.h>
+#include <fenv_private.h>
int
__isinff (float x)
diff --git a/sysdeps/riscv/rvf/s_isnanf.c b/sysdeps/riscv/rvf/s_isnanf.c
index 30a88bb23c..c2972466c6 100644
--- a/sysdeps/riscv/rvf/s_isnanf.c
+++ b/sysdeps/riscv/rvf/s_isnanf.c
@@ -1,5 +1,5 @@
/* isnanf(). RISC-V version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,10 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
-#include <math_private.h>
+#include <fenv_private.h>
int
__isnanf (float x)
diff --git a/sysdeps/riscv/rvf/s_issignalingf.c b/sysdeps/riscv/rvf/s_issignalingf.c
index e67efc794b..51490e361f 100644
--- a/sysdeps/riscv/rvf/s_issignalingf.c
+++ b/sysdeps/riscv/rvf/s_issignalingf.c
@@ -1,5 +1,5 @@
/* issignalingf(). RISC-V version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,10 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
-#include <math_private.h>
+#include <fenv_private.h>
int
__issignalingf (float x)
diff --git a/sysdeps/riscv/rvf/s_nearbyintf.c b/sysdeps/riscv/rvf/s_nearbyintf.c
index d653794d71..720bca18b5 100644
--- a/sysdeps/riscv/rvf/s_nearbyintf.c
+++ b/sysdeps/riscv/rvf/s_nearbyintf.c
@@ -1,5 +1,5 @@
/* Round to int floating-point values. RISC-V version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,10 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
-#include <math_private.h>
+#include <fenv_private.h>
#include <libm-alias-float.h>
#include <stdint.h>
diff --git a/sysdeps/riscv/rvf/s_rintf.c b/sysdeps/riscv/rvf/s_rintf.c
index 2ec3877a4f..76f702e6b0 100644
--- a/sysdeps/riscv/rvf/s_rintf.c
+++ b/sysdeps/riscv/rvf/s_rintf.c
@@ -1,5 +1,5 @@
/* rintf(). RISC-V version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,10 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
-#include <math_private.h>
+#include <stdbool.h>
#include <libm-alias-float.h>
#include <stdint.h>
diff --git a/sysdeps/riscv/rvf/s_roundevenf.c b/sysdeps/riscv/rvf/s_roundevenf.c
index 48086c28ee..d49fc7495b 100644
--- a/sysdeps/riscv/rvf/s_roundevenf.c
+++ b/sysdeps/riscv/rvf/s_roundevenf.c
@@ -1,5 +1,5 @@
/* Round to nearest integer value, rounding halfway cases to even.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,10 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
-#include <math_private.h>
+#include <fenv_private.h>
#include <libm-alias-float.h>
#include <stdint.h>
diff --git a/sysdeps/riscv/rvf/s_roundf.c b/sysdeps/riscv/rvf/s_roundf.c
index dedf57cbb3..59c2d3dc8b 100644
--- a/sysdeps/riscv/rvf/s_roundf.c
+++ b/sysdeps/riscv/rvf/s_roundf.c
@@ -1,5 +1,5 @@
/* roundf(). RISC-V version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,10 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
-#include <math_private.h>
+#include <fenv_private.h>
#include <libm-alias-float.h>
#include <stdint.h>
diff --git a/sysdeps/riscv/rvf/s_truncf.c b/sysdeps/riscv/rvf/s_truncf.c
index e23926a2ae..4d5ca04be6 100644
--- a/sysdeps/riscv/rvf/s_truncf.c
+++ b/sysdeps/riscv/rvf/s_truncf.c
@@ -1,5 +1,5 @@
/* truncf(). RISC-V version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,10 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
-#include <math_private.h>
+#include <fenv_private.h>
#include <libm-alias-float.h>
#include <stdint.h>
diff --git a/sysdeps/riscv/setjmp.S b/sysdeps/riscv/setjmp.S
index cfbd276fc3..005c0f7451 100644
--- a/sysdeps/riscv/setjmp.S
+++ b/sysdeps/riscv/setjmp.S
@@ -1,5 +1,5 @@
/* setjmp for RISC-V.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <sys/asm.h>
diff --git a/sysdeps/riscv/sfp-machine.h b/sysdeps/riscv/sfp-machine.h
index e3884433f3..15386f2017 100644
--- a/sysdeps/riscv/sfp-machine.h
+++ b/sysdeps/riscv/sfp-machine.h
@@ -1,5 +1,5 @@
/* RISC-V softfloat definitions
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/riscv/sotruss-lib.c b/sysdeps/riscv/sotruss-lib.c
index f35b554db5..b4474d0011 100644
--- a/sysdeps/riscv/sotruss-lib.c
+++ b/sysdeps/riscv/sotruss-lib.c
@@ -1,5 +1,5 @@
/* Override generic sotruss-lib.c to define actual functions for RISC-V.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define HAVE_ARCH_PLTENTER
#define HAVE_ARCH_PLTEXIT
diff --git a/sysdeps/riscv/stackinfo.h b/sysdeps/riscv/stackinfo.h
index 5b4f91c6a1..3ca9d2532b 100644
--- a/sysdeps/riscv/stackinfo.h
+++ b/sysdeps/riscv/stackinfo.h
@@ -1,5 +1,5 @@
/* Stack environment definitions for RISC-V.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ 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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file contains a bit of information about the stack allocation
of the processor. */
diff --git a/sysdeps/riscv/start.S b/sysdeps/riscv/start.S
index 4635ddb5eb..dee984131c 100644
--- a/sysdeps/riscv/start.S
+++ b/sysdeps/riscv/start.S
@@ -1,5 +1,5 @@
/* Startup code compliant to the ELF RISC-V ABI.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __ASSEMBLY__ 1
#include <entry.h>
@@ -43,7 +43,11 @@
__libc_start_main wants this in a5. */
ENTRY (ENTRY_POINT)
- call .Lload_gp
+ /* Terminate call stack by noting ra is undefined. Use a dummy
+ .cfi_label to force starting the FDE. */
+ .cfi_label .Ldummy
+ cfi_undefined (ra)
+ call load_gp
mv a5, a0 /* rtld_fini. */
/* main may be in a shared library. */
la a0, main
@@ -54,7 +58,8 @@ ENTRY (ENTRY_POINT)
lla a4, __libc_csu_fini
mv a6, sp /* stack_end. */
- tail __libc_start_main@plt
+ call __libc_start_main@plt
+ ebreak
END (ENTRY_POINT)
/* Dynamic links need the global pointer to be initialized prior to calling
@@ -63,7 +68,7 @@ END (ENTRY_POINT)
needs to be initialized before calling __libc_start_main in that case.
So we redundantly initialize it at the beginning of _start. */
-.Lload_gp:
+load_gp:
.option push
.option norelax
lla gp, __global_pointer$
@@ -71,7 +76,7 @@ END (ENTRY_POINT)
ret
.section .preinit_array,"aw"
- .dc.a .Lload_gp
+ .dc.a load_gp
/* Define a symbol for the first piece of initialized data. */
.data
diff --git a/sysdeps/riscv/sys/asm.h b/sysdeps/riscv/sys/asm.h
index ddb84b683b..977e5999e7 100644
--- a/sysdeps/riscv/sys/asm.h
+++ b/sysdeps/riscv/sys/asm.h
@@ -1,5 +1,5 @@
/* Miscellaneous macros.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_ASM_H
#define _SYS_ASM_H
diff --git a/sysdeps/riscv/tls-macros.h b/sysdeps/riscv/tls-macros.h
index 7f0dd926d0..df0284f4fb 100644
--- a/sysdeps/riscv/tls-macros.h
+++ b/sysdeps/riscv/tls-macros.h
@@ -1,5 +1,5 @@
/* Macros to support TLS testing in times of missing compiler support.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/cdefs.h>
diff --git a/sysdeps/riscv/tst-audit.h b/sysdeps/riscv/tst-audit.h
index 7cce56d104..8a59d26a5e 100644
--- a/sysdeps/riscv/tst-audit.h
+++ b/sysdeps/riscv/tst-audit.h
@@ -1,5 +1,5 @@
/* Definitions for testing PLT entry/exit auditing. RISC-V version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define pltenter la_riscv_gnu_pltenter
#define pltexit la_riscv_gnu_pltexit
diff --git a/sysdeps/s390/Makefile b/sysdeps/s390/Makefile
index 8a54f88cd7..a8c49c928f 100644
--- a/sysdeps/s390/Makefile
+++ b/sysdeps/s390/Makefile
@@ -29,3 +29,77 @@ $(inst_gconvdir)/%.so: $(objpfx)%.so $(+force)
sysdeps-gconv-modules = ../sysdeps/s390/gconv-modules
endif
+
+ifeq ($(subdir),elf)
+ifeq ($(build-shared),yes)
+tests += tst-dl-runtime-resolve-noaudit tst-dl-runtime-resolve-audit \
+ tst-dl-runtime-profile-noaudit
+# FIXME: When both LD_PROFILE and LD_AUDIT are set, a segfault occurs.
+#tests += tst-dl-runtime-profile-audit
+modules-names += tst-dl-runtime-mod
+$(objpfx)tst-dl-runtime-resolve-noaudit: $(objpfx)tst-dl-runtime-mod.so
+$(objpfx)tst-dl-runtime-resolve-audit: $(objpfx)tst-dl-runtime-mod.so
+$(objpfx)tst-dl-runtime-profile-noaudit: $(objpfx)tst-dl-runtime-mod.so
+$(objpfx)tst-dl-runtime-profile-audit: $(objpfx)tst-dl-runtime-mod.so
+$(objpfx)tst-dl-runtime-resolve-audit.out: $(objpfx)tst-auditmod1.so
+$(objpfx)tst-dl-runtime-profile-audit.out: $(objpfx)tst-auditmod1.so
+# The profiling output goes to $LD_PROFILE_OUTPUT/$LD_PROFILE.profile
+env-profile = LD_PROFILE=$(objpfx)tst-dl-runtime-mod.so \
+ LD_PROFILE_OUTPUT=/
+env-audit = LD_AUDIT=$(objpfx)tst-auditmod1.so
+tst-dl-runtime-resolve-audit-ENV = $(env-audit)
+tst-dl-runtime-profile-noaudit-ENV = $(env-profile)
+tst-dl-runtime-profile-audit-ENV = $(env-profile) $(env-audit)
+endif
+endif
+
+ifeq ($(subdir),string)
+sysdep_routines += bzero memset memset-z900 \
+ memcmp memcmp-z900 \
+ mempcpy memcpy memcpy-z900 \
+ memmove memmove-c \
+ strstr strstr-arch13 strstr-vx strstr-c \
+ memmem memmem-arch13 memmem-vx memmem-c \
+ strlen strlen-vx strlen-c \
+ strnlen strnlen-vx strnlen-c \
+ strcpy strcpy-vx strcpy-z900 \
+ stpcpy stpcpy-vx stpcpy-c \
+ strncpy strncpy-vx strncpy-z900 \
+ stpncpy stpncpy-vx stpncpy-c \
+ strcat strcat-vx strcat-c \
+ strncat strncat-vx strncat-c \
+ strcmp strcmp-vx strcmp-z900 \
+ strncmp strncmp-vx strncmp-c \
+ strchr strchr-vx strchr-c \
+ strchrnul strchrnul-vx strchrnul-c \
+ strrchr strrchr-vx strrchr-c \
+ strspn strspn-vx strspn-c \
+ strpbrk strpbrk-vx strpbrk-c \
+ strcspn strcspn-vx strcspn-c \
+ memchr memchr-vx memchr-z900 \
+ rawmemchr rawmemchr-vx rawmemchr-c \
+ memccpy memccpy-vx memccpy-c \
+ memrchr memrchr-vx memrchr-c
+endif
+
+ifeq ($(subdir),wcsmbs)
+sysdep_routines += wcslen wcslen-vx wcslen-c \
+ wcsnlen wcsnlen-vx wcsnlen-c \
+ wcscpy wcscpy-vx wcscpy-c \
+ wcpcpy wcpcpy-vx wcpcpy-c \
+ wcsncpy wcsncpy-vx wcsncpy-c \
+ wcpncpy wcpncpy-vx wcpncpy-c \
+ wcscat wcscat-vx wcscat-c \
+ wcsncat wcsncat-vx wcsncat-c \
+ wcscmp wcscmp-vx wcscmp-c \
+ wcsncmp wcsncmp-vx wcsncmp-c \
+ wcschr wcschr-vx wcschr-c \
+ wcschrnul wcschrnul-vx wcschrnul-c \
+ wcsrchr wcsrchr-vx wcsrchr-c \
+ wcsspn wcsspn-vx wcsspn-c \
+ wcspbrk wcspbrk-vx wcspbrk-c \
+ wcscspn wcscspn-vx wcscspn-c \
+ wmemchr wmemchr-vx wmemchr-c \
+ wmemset wmemset-vx wmemset-c \
+ wmemcmp wmemcmp-vx wmemcmp-c
+endif
diff --git a/sysdeps/s390/asm-syntax.h b/sysdeps/s390/asm-syntax.h
index 2c37abf483..032cadfa1b 100644
--- a/sysdeps/s390/asm-syntax.h
+++ b/sysdeps/s390/asm-syntax.h
@@ -1,5 +1,5 @@
/* Definitions for S/390 syntax variations.
- Copyright (C) 1992-2018 Free Software Foundation, Inc.
+ Copyright (C) 1992-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library. Its master source is NOT part of
the C library, however. The master source lives in the GNU MP Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#undef ALIGN
#define ALIGN(log) .align 1<<log
diff --git a/sysdeps/s390/atomic-machine.h b/sysdeps/s390/atomic-machine.h
index b80b55ecd2..50eace8d3b 100644
--- a/sysdeps/s390/atomic-machine.h
+++ b/sysdeps/s390/atomic-machine.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Martin Schwidefsky <schwidefsky@de.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/sysdeps/s390/bits/endian.h b/sysdeps/s390/bits/endian.h
deleted file mode 100644
index ac27f0119a..0000000000
--- a/sysdeps/s390/bits/endian.h
+++ /dev/null
@@ -1,7 +0,0 @@
-/* s390 is big-endian */
-
-#ifndef _ENDIAN_H
-# error "Never use <bits/endian.h> directly; include <endian.h> instead."
-#endif
-
-#define __BYTE_ORDER __BIG_ENDIAN
diff --git a/sysdeps/s390/bits/endianness.h b/sysdeps/s390/bits/endianness.h
new file mode 100644
index 0000000000..c2d34e1c3e
--- /dev/null
+++ b/sysdeps/s390/bits/endianness.h
@@ -0,0 +1,11 @@
+#ifndef _BITS_ENDIANNESS_H
+#define _BITS_ENDIANNESS_H 1
+
+#ifndef _BITS_ENDIAN_H
+# error "Never use <bits/endianness.h> directly; include <endian.h> instead."
+#endif
+
+/* S/390 is big-endian. */
+#define __BYTE_ORDER __BIG_ENDIAN
+
+#endif /* bits/endianness.h */
diff --git a/sysdeps/s390/bits/flt-eval-method.h b/sysdeps/s390/bits/flt-eval-method.h
index b0663e80cc..819831ba42 100644
--- a/sysdeps/s390/bits/flt-eval-method.h
+++ b/sysdeps/s390/bits/flt-eval-method.h
@@ -1,5 +1,5 @@
/* Define __GLIBC_FLT_EVAL_METHOD. S/390 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MATH_H
# error "Never use <bits/flt-eval-method.h> directly; include <math.h> instead."
diff --git a/sysdeps/s390/bits/link.h b/sysdeps/s390/bits/link.h
index 8d17e9245b..a41c2b27de 100644
--- a/sysdeps/s390/bits/link.h
+++ b/sysdeps/s390/bits/link.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LINK_H
# error "Never include <bits/link.h> directly; use <link.h> instead."
diff --git a/sysdeps/s390/bits/setjmp.h b/sysdeps/s390/bits/setjmp.h
index 07229c292f..bc0d548232 100644
--- a/sysdeps/s390/bits/setjmp.h
+++ b/sysdeps/s390/bits/setjmp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define the machine-dependent type `jmp_buf'. IBM s390 version. */
diff --git a/sysdeps/s390/bits/xtitypes.h b/sysdeps/s390/bits/xtitypes.h
deleted file mode 100644
index 462b126d11..0000000000
--- a/sysdeps/s390/bits/xtitypes.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* bits/xtitypes.h -- Define some types used by <bits/stropts.h>. S390/S390x
- Copyright (C) 2002-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _STROPTS_H
-# error "Never include <bits/xtitypes.h> directly; use <stropts.h> instead."
-#endif
-
-#ifndef _BITS_XTITYPES_H
-#define _BITS_XTITYPES_H 1
-
-#include <bits/types.h>
-
-/* This type is used by some structs in <bits/stropts.h>. */
-typedef __S32_TYPE __t_scalar_t;
-typedef __U32_TYPE __t_uscalar_t;
-
-
-#endif /* bits/xtitypes.h */
diff --git a/sysdeps/s390/bzero.c b/sysdeps/s390/bzero.c
new file mode 100644
index 0000000000..9435461e1d
--- /dev/null
+++ b/sysdeps/s390/bzero.c
@@ -0,0 +1,47 @@
+/* Multiple versions of bzero.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-memset.h>
+#if HAVE_MEMSET_IFUNC
+# include <string.h>
+# include <ifunc-resolve.h>
+
+# if HAVE_MEMSET_Z900_G5
+extern __typeof (__bzero) BZERO_Z900_G5 attribute_hidden;
+# endif
+
+# if HAVE_MEMSET_Z10
+extern __typeof (__bzero) BZERO_Z10 attribute_hidden;
+# endif
+
+# if HAVE_MEMSET_Z196
+extern __typeof (__bzero) BZERO_Z196 attribute_hidden;
+# endif
+
+s390_libc_ifunc_expr (__bzero, __bzero,
+ ({
+ s390_libc_ifunc_expr_stfle_init ();
+ (HAVE_MEMSET_Z196 && S390_IS_Z196 (stfle_bits))
+ ? BZERO_Z196
+ : (HAVE_MEMSET_Z10 && S390_IS_Z10 (stfle_bits))
+ ? BZERO_Z10
+ : BZERO_DEFAULT;
+ })
+ )
+weak_alias (__bzero, bzero)
+#endif
diff --git a/sysdeps/s390/configure b/sysdeps/s390/configure
index 74b415f2ab..fa46e9e351 100644
--- a/sysdeps/s390/configure
+++ b/sysdeps/s390/configure
@@ -112,6 +112,82 @@ then
fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for S390 arch13 zarch instruction support" >&5
+$as_echo_n "checking for S390 arch13 zarch instruction support... " >&6; }
+if ${libc_cv_asm_s390_arch13+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat > conftest.c <<\EOF
+void testinsn (char *buf)
+{
+ __asm__ (".machine \"arch13\" \n\t"
+ ".machinemode \"zarch_nohighgprs\" \n\t"
+ "lghi %%r0,16 \n\t"
+ "mvcrl 0(%0),32(%0)" : : "a" (buf) : "memory", "r0");
+}
+EOF
+if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS --shared conftest.c
+ -o conftest.o &> /dev/null'
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; } ;
+then
+ libc_cv_asm_s390_arch13=yes
+else
+ libc_cv_asm_s390_arch13=no
+fi
+rm -f conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_asm_s390_arch13" >&5
+$as_echo "$libc_cv_asm_s390_arch13" >&6; }
+if test "$libc_cv_asm_s390_arch13" = yes ;
+then
+ $as_echo "#define HAVE_S390_ARCH13_ASM_SUPPORT 1" >>confdefs.h
+
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for S390 z10 zarch instruction support as default" >&5
+$as_echo_n "checking for S390 z10 zarch instruction support as default... " >&6; }
+if ${libc_cv_asm_s390_min_z10_zarch+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat > conftest.c <<\EOF
+void testinsn (void *a, void *b, int n)
+{
+ __asm__ ("exrl %2,1f \n\t"
+ "j 2f \n\t"
+ "1: mvc 0(1,%0),0(%1) \n\t"
+ "2:"
+ : : "a" (a), "a" (b), "d" (n)
+ : "memory", "cc");
+}
+EOF
+if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS --shared conftest.c
+ -o conftest.o &> /dev/null'
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; } ;
+then
+ libc_cv_asm_s390_min_z10_zarch=yes
+else
+ libc_cv_asm_s390_min_z10_zarch=no
+fi
+rm -f conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_asm_s390_min_z10_zarch" >&5
+$as_echo "$libc_cv_asm_s390_min_z10_zarch" >&6; }
+
+if test "$libc_cv_asm_s390_min_z10_zarch" = yes ;
+then
+ $as_echo "#define HAVE_S390_MIN_Z10_ZARCH_ASM_SUPPORT 1" >>confdefs.h
+
+fi
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for S390 z196 zarch instruction support as default" >&5
$as_echo_n "checking for S390 z196 zarch instruction support as default... " >&6; }
if ${libc_cv_asm_s390_min_z196_zarch+:} false; then :
@@ -148,5 +224,77 @@ then
fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for S390 z13 zarch instruction support as default" >&5
+$as_echo_n "checking for S390 z13 zarch instruction support as default... " >&6; }
+if ${libc_cv_asm_s390_min_z13_zarch+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat > conftest.c <<\EOF
+int testinsn (void)
+{
+ int i;
+ __asm__ ("vl %%v16,0(%%r15)\n\t"
+ "vlgvf %0,%%v16,0"
+ : "=d" (i) : : "memory", "v16");
+ return i;
+}
+EOF
+if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS --shared conftest.c
+ -o conftest.o &> /dev/null'
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; } ;
+then
+ libc_cv_asm_s390_min_z13_zarch=yes
+else
+ libc_cv_asm_s390_min_z13_zarch=no
+fi
+rm -f conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_asm_s390_min_z13_zarch" >&5
+$as_echo "$libc_cv_asm_s390_min_z13_zarch" >&6; }
+
+if test "$libc_cv_asm_s390_min_z13_zarch" = yes ;
+then
+ $as_echo "#define HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT 1" >>confdefs.h
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for S390 arch13 zarch instruction support as default" >&5
+$as_echo_n "checking for S390 arch13 zarch instruction support as default... " >&6; }
+if ${libc_cv_asm_s390_min_arch13_zarch+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat > conftest.c <<\EOF
+void testinsn (char *buf)
+{
+ __asm__ ("lghi %%r0,16 \n\t"
+ "mvcrl 0(%0),32(%0)" : : "a" (buf) : "memory", "r0");
+}
+EOF
+if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS --shared conftest.c
+ -o conftest.o &> /dev/null'
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; } ;
+then
+ libc_cv_asm_s390_min_arch13_zarch=yes
+else
+ libc_cv_asm_s390_min_arch13_zarch=no
+fi
+rm -f conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_asm_s390_min_arch13_zarch" >&5
+$as_echo "$libc_cv_asm_s390_min_arch13_zarch" >&6; }
+if test "$libc_cv_asm_s390_min_arch13_zarch" = yes ;
+then
+ $as_echo "#define HAVE_S390_MIN_ARCH13_ZARCH_ASM_SUPPORT 1" >>confdefs.h
+
+fi
+
test -n "$critic_missing" && as_fn_error $? "
*** $critic_missing" "$LINENO" 5
diff --git a/sysdeps/s390/configure.ac b/sysdeps/s390/configure.ac
index 1cdb021282..3ed5a8ef87 100644
--- a/sysdeps/s390/configure.ac
+++ b/sysdeps/s390/configure.ac
@@ -80,6 +80,61 @@ then
AC_DEFINE(HAVE_S390_VX_GCC_SUPPORT)
fi
+AC_CACHE_CHECK(for S390 arch13 zarch instruction support,
+ libc_cv_asm_s390_arch13, [dnl
+cat > conftest.c <<\EOF
+void testinsn (char *buf)
+{
+ __asm__ (".machine \"arch13\" \n\t"
+ ".machinemode \"zarch_nohighgprs\" \n\t"
+ "lghi %%r0,16 \n\t"
+ "mvcrl 0(%0),32(%0)" : : "a" (buf) : "memory", "r0");
+}
+EOF
+dnl test, if assembler supports S390 arch13 instructions
+if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS --shared conftest.c
+ -o conftest.o &> /dev/null]) ;
+then
+ libc_cv_asm_s390_arch13=yes
+else
+ libc_cv_asm_s390_arch13=no
+fi
+rm -f conftest* ])
+if test "$libc_cv_asm_s390_arch13" = yes ;
+then
+ AC_DEFINE(HAVE_S390_ARCH13_ASM_SUPPORT)
+fi
+
+
+AC_CACHE_CHECK(for S390 z10 zarch instruction support as default,
+ libc_cv_asm_s390_min_z10_zarch, [dnl
+cat > conftest.c <<\EOF
+void testinsn (void *a, void *b, int n)
+{
+ __asm__ ("exrl %2,1f \n\t"
+ "j 2f \n\t"
+ "1: mvc 0(1,%0),0(%1) \n\t"
+ "2:"
+ : : "a" (a), "a" (b), "d" (n)
+ : "memory", "cc");
+}
+EOF
+dnl
+dnl test, if assembler supports S390 z10 zarch instructions as default
+if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS --shared conftest.c
+ -o conftest.o &> /dev/null]) ;
+then
+ libc_cv_asm_s390_min_z10_zarch=yes
+else
+ libc_cv_asm_s390_min_z10_zarch=no
+fi
+rm -f conftest* ])
+
+if test "$libc_cv_asm_s390_min_z10_zarch" = yes ;
+then
+ AC_DEFINE(HAVE_S390_MIN_Z10_ZARCH_ASM_SUPPORT)
+fi
+
AC_CACHE_CHECK(for S390 z196 zarch instruction support as default,
libc_cv_asm_s390_min_z196_zarch, [dnl
cat > conftest.c <<\EOF
@@ -106,5 +161,56 @@ then
AC_DEFINE(HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT)
fi
+AC_CACHE_CHECK(for S390 z13 zarch instruction support as default,
+ libc_cv_asm_s390_min_z13_zarch, [dnl
+cat > conftest.c <<\EOF
+int testinsn (void)
+{
+ int i;
+ __asm__ ("vl %%v16,0(%%r15)\n\t"
+ "vlgvf %0,%%v16,0"
+ : "=d" (i) : : "memory", "v16");
+ return i;
+}
+EOF
+dnl
+dnl test, if assembler supports S390 z13 zarch instructions as default
+if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS --shared conftest.c
+ -o conftest.o &> /dev/null]) ;
+then
+ libc_cv_asm_s390_min_z13_zarch=yes
+else
+ libc_cv_asm_s390_min_z13_zarch=no
+fi
+rm -f conftest* ])
+
+if test "$libc_cv_asm_s390_min_z13_zarch" = yes ;
+then
+ AC_DEFINE(HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT)
+fi
+
+AC_CACHE_CHECK(for S390 arch13 zarch instruction support as default,
+ libc_cv_asm_s390_min_arch13_zarch, [dnl
+cat > conftest.c <<\EOF
+void testinsn (char *buf)
+{
+ __asm__ ("lghi %%r0,16 \n\t"
+ "mvcrl 0(%0),32(%0)" : : "a" (buf) : "memory", "r0");
+}
+EOF
+dnl test, if assembler supports S390 arch13 zarch instructions as default
+if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS --shared conftest.c
+ -o conftest.o &> /dev/null]) ;
+then
+ libc_cv_asm_s390_min_arch13_zarch=yes
+else
+ libc_cv_asm_s390_min_arch13_zarch=no
+fi
+rm -f conftest* ])
+if test "$libc_cv_asm_s390_min_arch13_zarch" = yes ;
+then
+ AC_DEFINE(HAVE_S390_MIN_ARCH13_ZARCH_ASM_SUPPORT)
+fi
+
test -n "$critic_missing" && AC_MSG_ERROR([
*** $critic_missing])
diff --git a/sysdeps/s390/dl-irel.h b/sysdeps/s390/dl-irel.h
index d8ba7ba427..d1fc81b1b8 100644
--- a/sysdeps/s390/dl-irel.h
+++ b/sysdeps/s390/dl-irel.h
@@ -1,6 +1,6 @@
/* Machine-dependent ELF indirect relocation inline functions.
Version for S/390 32 and 64 bit.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DL_IREL_H
#define _DL_IREL_H
@@ -46,7 +46,7 @@ elf_irela (const ElfW(Rela) *reloc)
*reloc_addr = value;
}
else
- __libc_fatal ("unexpected reloc type in static binary");
+ __libc_fatal ("Unexpected reloc type in static binary.\n");
}
#endif /* dl-irel.h */
diff --git a/sysdeps/s390/dl-procinfo.c b/sysdeps/s390/dl-procinfo.c
index 86c964caff..22e52e3d3c 100644
--- a/sysdeps/s390/dl-procinfo.c
+++ b/sysdeps/s390/dl-procinfo.c
@@ -1,5 +1,5 @@
/* Data for s390 version of processor capability information.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Martin Schwidefsky <schwidefsky@de.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This information must be kept in sync with the _DL_HWCAP_COUNT and
_DL_PLATFORM_COUNT definitions in procinfo.h.
@@ -46,12 +46,12 @@
#if !defined PROCINFO_DECL && defined SHARED
._dl_s390_cap_flags
#else
-PROCINFO_CLASS const char _dl_s390_cap_flags[15][9]
+PROCINFO_CLASS const char _dl_s390_cap_flags[19][9]
#endif
#ifndef PROCINFO_DECL
= {
"esan3", "zarch", "stfle", "msa", "ldisp", "eimm", "dfp", "edat", "etf3eh",
- "highgprs", "te", "vx", "vxd", "vxe", "gs"
+ "highgprs", "te", "vx", "vxd", "vxe", "gs", "vxe2", "vxp", "sort", "dflt"
}
#endif
#if !defined SHARED || defined PROCINFO_DECL
@@ -63,11 +63,11 @@ PROCINFO_CLASS const char _dl_s390_cap_flags[15][9]
#if !defined PROCINFO_DECL && defined SHARED
._dl_s390_platforms
#else
-PROCINFO_CLASS const char _dl_s390_platforms[9][7]
+PROCINFO_CLASS const char _dl_s390_platforms[10][7]
#endif
#ifndef PROCINFO_DECL
= {
- "g5", "z900", "z990", "z9-109", "z10", "z196", "zEC12", "z13", "z14"
+ "g5", "z900", "z990", "z9-109", "z10", "z196", "zEC12", "z13", "z14", "z15"
}
#endif
#if !defined SHARED || defined PROCINFO_DECL
diff --git a/sysdeps/s390/dl-procinfo.h b/sysdeps/s390/dl-procinfo.h
index b0383bfb4c..c9913b06b7 100644
--- a/sysdeps/s390/dl-procinfo.h
+++ b/sysdeps/s390/dl-procinfo.h
@@ -1,5 +1,5 @@
/* s390 version of processor capability information handling macros.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Martin Schwidefsky <schwidefsky@de.ibm.com>, 2006.
@@ -15,15 +15,15 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DL_PROCINFO_H
#define _DL_PROCINFO_H 1
#include <ldsodefs.h>
-#define _DL_HWCAP_COUNT 15
+#define _DL_HWCAP_COUNT 19
-#define _DL_PLATFORMS_COUNT 9
+#define _DL_PLATFORMS_COUNT 10
/* The kernel provides up to 32 capability bits with elf_hwcap. */
#define _DL_FIRST_PLATFORM 32
@@ -54,10 +54,16 @@ enum
HWCAP_S390_VXD = 1 << 12,
HWCAP_S390_VXE = 1 << 13,
HWCAP_S390_GS = 1 << 14,
+ HWCAP_S390_VXRS_EXT2 = 1 << 15,
+ HWCAP_S390_VXRS_PDE = 1 << 16,
+ HWCAP_S390_SORT = 1 << 17,
+ HWCAP_S390_DFLT = 1 << 18,
};
#define HWCAP_IMPORTANT (HWCAP_S390_ZARCH | HWCAP_S390_LDISP \
- | HWCAP_S390_EIMM | HWCAP_S390_DFP)
+ | HWCAP_S390_EIMM | HWCAP_S390_DFP \
+ | HWCAP_S390_VX | HWCAP_S390_VXE \
+ | HWCAP_S390_VXRS_EXT2)
/* We cannot provide a general printing function. */
#define _dl_procinfo(type, word) -1
diff --git a/sysdeps/s390/dl-tls.h b/sysdeps/s390/dl-tls.h
index 7a843f29ad..0723d65e11 100644
--- a/sysdeps/s390/dl-tls.h
+++ b/sysdeps/s390/dl-tls.h
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. s390 version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Type used for the representation of TLS information in the GOT. */
diff --git a/sysdeps/s390/ffs.c b/sysdeps/s390/ffs.c
index d46eec8e48..7ba6a66b52 100644
--- a/sysdeps/s390/ffs.c
+++ b/sysdeps/s390/ffs.c
@@ -1,6 +1,6 @@
/* ffs -- find first set bit in a word, counted from least significant end.
S/390 version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <limits.h>
#define ffsl __something_else
diff --git a/sysdeps/s390/fix-fp-int-convert-overflow.h b/sysdeps/s390/fix-fp-int-convert-overflow.h
index b60d4c54ac..0e9178ca06 100644
--- a/sysdeps/s390/fix-fp-int-convert-overflow.h
+++ b/sysdeps/s390/fix-fp-int-convert-overflow.h
@@ -1,5 +1,5 @@
/* Fix for conversion of floating point to integer overflow. S390 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef FIX_FP_INT_CONVERT_OVERFLOW_H
#define FIX_FP_INT_CONVERT_OVERFLOW_H 1
diff --git a/sysdeps/s390/fpu/bits/fenv.h b/sysdeps/s390/fpu/bits/fenv.h
index 079e71f3a5..9b12a668f7 100644
--- a/sysdeps/s390/fpu/bits/fenv.h
+++ b/sysdeps/s390/fpu/bits/fenv.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Denis Joseph Barrow <djbarrow@de.ibm.com>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FENV_H
# error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
@@ -91,7 +91,7 @@ typedef struct
# define FE_NOMASK_ENV ((const fenv_t *) -2)
#endif
-#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/sysdeps/s390/fpu/e_sqrt.c b/sysdeps/s390/fpu/e_sqrt.c
index b8b362a6bb..34c1ea3043 100644
--- a/sysdeps/s390/fpu/e_sqrt.c
+++ b/sysdeps/s390/fpu/e_sqrt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2019 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky <schwidefsky@de.ibm.com>.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math_private.h>
diff --git a/sysdeps/s390/fpu/e_sqrtf.c b/sysdeps/s390/fpu/e_sqrtf.c
index 2c67e3e656..5450d4cc7e 100644
--- a/sysdeps/s390/fpu/e_sqrtf.c
+++ b/sysdeps/s390/fpu/e_sqrtf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2019 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky <schwidefsky@de.ibm.com>.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math_private.h>
diff --git a/sysdeps/s390/fpu/e_sqrtl.c b/sysdeps/s390/fpu/e_sqrtl.c
index 209242b516..1f551fe965 100644
--- a/sysdeps/s390/fpu/e_sqrtl.c
+++ b/sysdeps/s390/fpu/e_sqrtl.c
@@ -1,5 +1,5 @@
/* Square root. S/390 FPU version.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky <schwidefsky@de.ibm.com>.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math_private.h>
diff --git a/sysdeps/s390/fpu/fclrexcpt.c b/sysdeps/s390/fpu/fclrexcpt.c
index 27b7255a79..667e8e29b5 100644
--- a/sysdeps/s390/fpu/fclrexcpt.c
+++ b/sysdeps/s390/fpu/fclrexcpt.c
@@ -1,5 +1,5 @@
/* Clear given exceptions in current floating-point environment.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv_libc.h>
#include <fpu_control.h>
diff --git a/sysdeps/s390/fpu/fedisblxcpt.c b/sysdeps/s390/fpu/fedisblxcpt.c
index fc0ac27cc3..cfd2124147 100644
--- a/sysdeps/s390/fpu/fedisblxcpt.c
+++ b/sysdeps/s390/fpu/fedisblxcpt.c
@@ -1,5 +1,5 @@
/* Disable floating-point exceptions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Denis Joseph Barrow (djbarrow@de.ibm.com).
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv_libc.h>
#include <fpu_control.h>
diff --git a/sysdeps/s390/fpu/feenablxcpt.c b/sysdeps/s390/fpu/feenablxcpt.c
index 067d8e9fa3..9580f994b0 100644
--- a/sysdeps/s390/fpu/feenablxcpt.c
+++ b/sysdeps/s390/fpu/feenablxcpt.c
@@ -1,5 +1,5 @@
/* Enable floating-point exceptions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Denis Joseph Barrow (djbarrow@de.ibm.com).
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv_libc.h>
#include <fpu_control.h>
diff --git a/sysdeps/s390/fpu/fegetenv.c b/sysdeps/s390/fpu/fegetenv.c
index 709fbd9c19..166a81638a 100644
--- a/sysdeps/s390/fpu/fegetenv.c
+++ b/sysdeps/s390/fpu/fegetenv.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Denis Joseph Barrow (djbarrow@de.ibm.com).
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv_libc.h>
#include <fpu_control.h>
diff --git a/sysdeps/s390/fpu/fegetexcept.c b/sysdeps/s390/fpu/fegetexcept.c
index 0fd39f14e4..621ec25aab 100644
--- a/sysdeps/s390/fpu/fegetexcept.c
+++ b/sysdeps/s390/fpu/fegetexcept.c
@@ -1,5 +1,5 @@
/* Get enabled floating-point exceptions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Denis Joseph Barrow (djbarrow@de.ibm.com).
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv_libc.h>
#include <fpu_control.h>
diff --git a/sysdeps/s390/fpu/fegetmode.c b/sysdeps/s390/fpu/fegetmode.c
index d6a5feff3d..b7f269b85f 100644
--- a/sysdeps/s390/fpu/fegetmode.c
+++ b/sysdeps/s390/fpu/fegetmode.c
@@ -1,5 +1,5 @@
/* Store current floating-point control modes. S/390 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/s390/fpu/fegetround.c b/sysdeps/s390/fpu/fegetround.c
index 3c38bc9189..847b5d2de5 100644
--- a/sysdeps/s390/fpu/fegetround.c
+++ b/sysdeps/s390/fpu/fegetround.c
@@ -1,5 +1,5 @@
/* Return current rounding direction.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Denis Joseph Barrow (djbarrow@de.ibm.com).
@@ -15,19 +15,14 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#include <fenv_libc.h>
-#include <fpu_control.h>
+#include <get-rounding-mode.h>
int
__fegetround (void)
{
- fexcept_t cw;
-
- _FPU_GETCW (cw);
-
- return cw & FPC_RM_MASK;
+ return get_rounding_mode ();
}
libm_hidden_def (__fegetround)
weak_alias (__fegetround, fegetround)
diff --git a/sysdeps/s390/fpu/feholdexcpt.c b/sysdeps/s390/fpu/feholdexcpt.c
index 5daee5675d..e2eb5d2a77 100644
--- a/sysdeps/s390/fpu/feholdexcpt.c
+++ b/sysdeps/s390/fpu/feholdexcpt.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment and clear exceptions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Denis Joseph Barrow (djbarrow@de.ibm.com).
@@ -15,21 +15,13 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#include <fenv_libc.h>
-#include <fpu_control.h>
+#include <fenv_private.h>
int __feholdexcept (fenv_t *envp)
{
- fexcept_t fpc;
- /* Store the environment. */
- __fegetenv (envp);
- /* Clear the current sticky bits as more than one exception
- may be generated. */
- fpc = envp->__fpc & ~(FPC_FLAGS_MASK | FPC_DXC_MASK);
- /* Hold from generating fpu exceptions temporarily. */
- _FPU_SETCW ((fpc & ~(FE_ALL_EXCEPT << FPC_EXCEPTION_MASK_SHIFT)));
+ libc_feholdexcept_s390 (envp);
return 0;
}
libm_hidden_def (__feholdexcept)
diff --git a/sysdeps/s390/fpu/fenv_libc.h b/sysdeps/s390/fpu/fenv_libc.h
index 0b4b7aad99..bb363fc1d8 100644
--- a/sysdeps/s390/fpu/fenv_libc.h
+++ b/sysdeps/s390/fpu/fenv_libc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Denis Joseph Barrow (djbarrow@de.ibm.com).
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FENV_LIBC_H
#define _FENV_LIBC_H 1
@@ -28,8 +28,8 @@
#define FPC_FLAGS_MASK 0x00F80000
#define FPC_DXC_MASK 0x0000FF00
#define FPC_RM_MASK 0x00000003
-#define FPC_VALID_MASK ((FPC_EXCEPTION_MASK|FPC_FLAGS_MASK| \
- FPC_DXC_MASK|FPC_RM_MASK))
+#define FPC_VALID_MASK ((FPC_EXCEPTION_MASK|FPC_FLAGS_MASK \
+ |FPC_DXC_MASK|FPC_RM_MASK))
#define FPC_EXCEPTION_MASK_SHIFT 24
#define FPC_FLAGS_SHIFT 16
diff --git a/sysdeps/s390/fpu/fenv_private.h b/sysdeps/s390/fpu/fenv_private.h
new file mode 100644
index 0000000000..babb9e3123
--- /dev/null
+++ b/sysdeps/s390/fpu/fenv_private.h
@@ -0,0 +1,250 @@
+/* Private floating point rounding and exceptions handling. 390/s390x version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef S390_FENV_PRIVATE_H
+#define S390_FENV_PRIVATE_H 1
+
+#include <fenv.h>
+#include <fenv_libc.h>
+#include <fpu_control.h>
+
+static __always_inline void
+libc_feholdexcept_s390 (fenv_t *envp)
+{
+ fpu_control_t fpc, fpc_new;
+
+ /* Store the environment. */
+ _FPU_GETCW (fpc);
+ envp->__fpc = fpc;
+
+ /* Clear the current exception flags and dxc field.
+ Hold from generating fpu exceptions temporarily. */
+ fpc_new = fpc & ~(FPC_FLAGS_MASK | FPC_DXC_MASK | FPC_EXCEPTION_MASK);
+
+ /* Only set new environment if it has changed. */
+ if (fpc_new != fpc)
+ _FPU_SETCW (fpc_new);
+}
+
+#define libc_feholdexcept libc_feholdexcept_s390
+#define libc_feholdexceptf libc_feholdexcept_s390
+#define libc_feholdexceptl libc_feholdexcept_s390
+
+static __always_inline void
+libc_fesetround_s390 (int round)
+{
+ __asm__ __volatile__ ("srnm 0(%0)" : : "a" (round));
+}
+
+#define libc_fesetround libc_fesetround_s390
+#define libc_fesetroundf libc_fesetround_s390
+#define libc_fesetroundl libc_fesetround_s390
+
+static __always_inline void
+libc_feholdexcept_setround_s390 (fenv_t *envp, int r)
+{
+ fpu_control_t fpc, fpc_new;
+
+ _FPU_GETCW (fpc);
+ envp->__fpc = fpc;
+
+ /* Clear the current exception flags and dxc field.
+ Hold from generating fpu exceptions temporarily.
+ Reset rounding mode bits. */
+ fpc_new = fpc & ~(FPC_FLAGS_MASK | FPC_DXC_MASK | FPC_EXCEPTION_MASK
+ | FPC_RM_MASK);
+
+ /* Set new rounding mode. */
+ fpc_new |= (r & FPC_RM_MASK);
+
+ /* Only set new environment if it has changed. */
+ if (fpc_new != fpc)
+ _FPU_SETCW (fpc_new);
+}
+
+#define libc_feholdexcept_setround libc_feholdexcept_setround_s390
+#define libc_feholdexcept_setroundf libc_feholdexcept_setround_s390
+#define libc_feholdexcept_setroundl libc_feholdexcept_setround_s390
+
+static __always_inline int
+libc_fetestexcept_s390 (int excepts)
+{
+ int res;
+ fexcept_t fpc;
+
+ _FPU_GETCW (fpc);
+
+ /* Get current exceptions. */
+ res = (fpc >> FPC_FLAGS_SHIFT) & FE_ALL_EXCEPT;
+ if ((fpc & FPC_NOT_FPU_EXCEPTION) == 0)
+ /* Bits 6, 7 of dxc-byte are zero,
+ thus bits 0-5 of dxc-byte correspond to the flag-bits.
+ Evaluate flags and last dxc-exception-code. */
+ res |= (fpc >> FPC_DXC_SHIFT) & FE_ALL_EXCEPT;
+
+ return res & excepts;
+}
+
+#define libc_fetestexcept libc_fetestexcept_s390
+#define libc_fetestexceptf libc_fetestexcept_s390
+#define libc_fetestexceptl libc_fetestexcept_s390
+
+static __always_inline void
+libc_fesetenv_s390 (const fenv_t *envp)
+{
+ _FPU_SETCW (envp->__fpc);
+}
+
+#define libc_fesetenv libc_fesetenv_s390
+#define libc_fesetenvf libc_fesetenv_s390
+#define libc_fesetenvl libc_fesetenv_s390
+
+static __always_inline int
+libc_feupdateenv_test_s390 (const fenv_t *envp, int ex)
+{
+ /* Get the currently raised exceptions. */
+ int excepts;
+ fexcept_t fpc_old;
+
+ _FPU_GETCW (fpc_old);
+
+ /* Get current exceptions. */
+ excepts = (fpc_old >> FPC_FLAGS_SHIFT) & FE_ALL_EXCEPT;
+ if ((fpc_old & FPC_NOT_FPU_EXCEPTION) == 0)
+ /* Bits 6, 7 of dxc-byte are zero,
+ thus bits 0-5 of dxc-byte correspond to the flag-bits.
+ Evaluate flags and last dxc-exception-code. */
+ excepts |= (fpc_old >> FPC_DXC_SHIFT) & FE_ALL_EXCEPT;
+
+ /* Merge the currently raised exceptions with those in envp. */
+ fpu_control_t fpc_new = envp->__fpc;
+ fpc_new |= excepts << FPC_FLAGS_SHIFT;
+
+ /* Install the new fpc from envp. */
+ if (fpc_new != fpc_old)
+ _FPU_SETCW (fpc_new);
+
+ /* Raise the exceptions if enabled in new fpc. */
+ if (__glibc_unlikely ((fpc_new >> FPC_EXCEPTION_MASK_SHIFT) & excepts))
+ __feraiseexcept (excepts);
+
+ return excepts & ex;
+}
+
+#define libc_feupdateenv_test libc_feupdateenv_test_s390
+#define libc_feupdateenv_testf libc_feupdateenv_test_s390
+#define libc_feupdateenv_testl libc_feupdateenv_test_s390
+
+static __always_inline void
+libc_feupdateenv_s390 (const fenv_t *envp)
+{
+ libc_feupdateenv_test_s390 (envp, 0);
+}
+
+#define libc_feupdateenv libc_feupdateenv_s390
+#define libc_feupdateenvf libc_feupdateenv_s390
+#define libc_feupdateenvl libc_feupdateenv_s390
+
+static __always_inline fenv_t
+libc_handle_user_fenv_s390 (const fenv_t *envp)
+{
+ fenv_t env;
+ if (envp == FE_DFL_ENV)
+ {
+ env.__fpc = _FPU_DEFAULT;
+ }
+ else if (envp == FE_NOMASK_ENV)
+ {
+ env.__fpc = FPC_EXCEPTION_MASK;
+ }
+ else
+ env = (*envp);
+
+ return env;
+}
+
+/* We have support for rounding mode context. */
+#define HAVE_RM_CTX 1
+
+static __always_inline void
+libc_feholdsetround_s390_ctx (struct rm_ctx *ctx, int r)
+{
+ fpu_control_t fpc;
+ int round;
+
+ _FPU_GETCW (fpc);
+ ctx->env.__fpc = fpc;
+
+ /* Check whether rounding modes are different. */
+ round = fpc & FPC_RM_MASK;
+
+ /* Set the rounding mode if changed. */
+ if (__glibc_unlikely (round != r))
+ {
+ ctx->updated_status = true;
+ libc_fesetround_s390 (r);
+ }
+ else
+ ctx->updated_status = false;
+}
+
+#define libc_feholdsetround_ctx libc_feholdsetround_s390_ctx
+#define libc_feholdsetroundf_ctx libc_feholdsetround_s390_ctx
+#define libc_feholdsetroundl_ctx libc_feholdsetround_s390_ctx
+
+static __always_inline void
+libc_feresetround_s390_ctx (struct rm_ctx *ctx)
+{
+ /* Restore the rounding mode if updated. */
+ if (__glibc_unlikely (ctx->updated_status))
+ {
+ fpu_control_t fpc;
+ _FPU_GETCW (fpc);
+ fpc = ctx->env.__fpc | (fpc & FPC_FLAGS_MASK);
+ _FPU_SETCW (fpc);
+ }
+}
+
+#define libc_feresetround_ctx libc_feresetround_s390_ctx
+#define libc_feresetroundf_ctx libc_feresetround_s390_ctx
+#define libc_feresetroundl_ctx libc_feresetround_s390_ctx
+
+static __always_inline void
+libc_feholdsetround_noex_s390_ctx (struct rm_ctx *ctx, int r)
+{
+ libc_feholdexcept_setround_s390 (&ctx->env, r);
+}
+
+#define libc_feholdsetround_noex_ctx libc_feholdsetround_noex_s390_ctx
+#define libc_feholdsetround_noexf_ctx libc_feholdsetround_noex_s390_ctx
+#define libc_feholdsetround_noexl_ctx libc_feholdsetround_noex_s390_ctx
+
+static __always_inline void
+libc_feresetround_noex_s390_ctx (struct rm_ctx *ctx)
+{
+ /* Restore exception flags and rounding mode. */
+ libc_fesetenv_s390 (&ctx->env);
+}
+
+#define libc_feresetround_noex_ctx libc_feresetround_noex_s390_ctx
+#define libc_feresetround_noexf_ctx libc_feresetround_noex_s390_ctx
+#define libc_feresetround_noexl_ctx libc_feresetround_noex_s390_ctx
+
+#include_next <fenv_private.h>
+
+#endif
diff --git a/sysdeps/s390/fpu/fesetenv.c b/sysdeps/s390/fpu/fesetenv.c
index c6c275d79d..dca26033a7 100644
--- a/sysdeps/s390/fpu/fesetenv.c
+++ b/sysdeps/s390/fpu/fesetenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Denis Joseph Barrow (djbarrow@de.ibm.com).
@@ -15,30 +15,15 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#include <fenv_libc.h>
-#include <fpu_control.h>
-#include <stddef.h>
-#include <unistd.h>
+#include <fenv_private.h>
int
__fesetenv (const fenv_t *envp)
{
- fenv_t env;
-
- if (envp == FE_DFL_ENV)
- {
- env.__fpc = _FPU_DEFAULT;
- }
- else if (envp == FE_NOMASK_ENV)
- {
- env.__fpc = FPC_EXCEPTION_MASK;
- }
- else
- env = (*envp);
-
- _FPU_SETCW (env.__fpc);
+ fenv_t env = libc_handle_user_fenv_s390 (envp);
+ libc_fesetenv_s390 (&env);
/* Success. */
return 0;
diff --git a/sysdeps/s390/fpu/fesetexcept.c b/sysdeps/s390/fpu/fesetexcept.c
index e41853e25e..39bc7f46fb 100644
--- a/sysdeps/s390/fpu/fesetexcept.c
+++ b/sysdeps/s390/fpu/fesetexcept.c
@@ -1,5 +1,5 @@
/* Set given exception flags. S/390 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/s390/fpu/fesetmode.c b/sysdeps/s390/fpu/fesetmode.c
index 37ede8f115..3362bc737c 100644
--- a/sysdeps/s390/fpu/fesetmode.c
+++ b/sysdeps/s390/fpu/fesetmode.c
@@ -1,5 +1,5 @@
/* Install given floating-point control modes. S/390 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/s390/fpu/fesetround.c b/sysdeps/s390/fpu/fesetround.c
index d8a84d2c96..752b41a171 100644
--- a/sysdeps/s390/fpu/fesetround.c
+++ b/sysdeps/s390/fpu/fesetround.c
@@ -1,5 +1,5 @@
/* Set current rounding direction.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Denis Joseph Barrow (djbarrow@de.ibm.com).
@@ -15,23 +15,20 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#include <fenv_libc.h>
-#include <fpu_control.h>
+#include <fenv_private.h>
int
__fesetround (int round)
{
- if ((round|FPC_RM_MASK) != FPC_RM_MASK)
+ if ((round | FPC_RM_MASK) != FPC_RM_MASK)
{
/* ROUND is not a valid rounding mode. */
return 1;
}
- __asm__ __volatile__ ("srnm 0(%0)"
- :
- : "a" (round));
+ libc_fesetround_s390 (round);
return 0;
}
libm_hidden_def (__fesetround)
diff --git a/sysdeps/s390/fpu/fetestexceptflag.c b/sysdeps/s390/fpu/fetestexceptflag.c
deleted file mode 100644
index 784d356f7b..0000000000
--- a/sysdeps/s390/fpu/fetestexceptflag.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Test exception in saved exception state. S/390 version.
- Copyright (C) 2016-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv.h>
-#include <fenv_libc.h>
-
-int
-fetestexceptflag (const fexcept_t *flagp, int excepts)
-{
- /* As *flagp is obtained by an earlier call of fegetexceptflag the
- bits 0-5 of dxc-byte are either zero or correspond to the
- flag-bits. Evaluate flags and last dxc-exception-code. */
- return (((*flagp >> FPC_FLAGS_SHIFT) | (*flagp >> FPC_DXC_SHIFT))
- & excepts
- & FE_ALL_EXCEPT);
-}
diff --git a/sysdeps/s390/fpu/feupdateenv.c b/sysdeps/s390/fpu/feupdateenv.c
index 4888e1a864..9ddff724e6 100644
--- a/sysdeps/s390/fpu/feupdateenv.c
+++ b/sysdeps/s390/fpu/feupdateenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment and raise exceptions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Denis Joseph Barrow (djbarrow@de.ibm.com).
@@ -15,24 +15,16 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#include <fenv_libc.h>
-#include <fpu_control.h>
+#include <fenv_private.h>
int
__feupdateenv (const fenv_t *envp)
{
- fexcept_t temp;
-
- _FPU_GETCW (temp);
- temp = (temp & FPC_FLAGS_MASK) >> FPC_FLAGS_SHIFT;
-
- /* Raise the exceptions since the last call to feholdenv */
- /* re install saved environment. */
- __fesetenv (envp);
- __feraiseexcept ((int) temp);
+ fenv_t env = libc_handle_user_fenv_s390 (envp);
+ libc_feupdateenv_s390 (&env);
/* Success. */
return 0;
diff --git a/sysdeps/s390/fpu/fgetexcptflg.c b/sysdeps/s390/fpu/fgetexcptflg.c
index 2a0f6dc77c..7231752029 100644
--- a/sysdeps/s390/fpu/fgetexcptflg.c
+++ b/sysdeps/s390/fpu/fgetexcptflg.c
@@ -1,5 +1,5 @@
/* Store current representation for exceptions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Denis Joseph Barrow (djbarrow@de.ibm.com).
@@ -15,26 +15,14 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#include <fenv_libc.h>
-#include <fpu_control.h>
+#include <fenv_private.h>
int
fegetexceptflag (fexcept_t *flagp, int excepts)
{
- fexcept_t temp, newexcepts;
-
- /* Get the current exceptions. */
- _FPU_GETCW (temp);
- newexcepts = excepts << FPC_FLAGS_SHIFT;
- if ((temp & FPC_NOT_FPU_EXCEPTION) == 0)
- /* Bits 6, 7 of dxc-byte are zero,
- thus bits 0-5 of dxc-byte correspond to the flag-bits.
- Evaluate flags and last dxc-exception-code. */
- newexcepts |= excepts << FPC_DXC_SHIFT;
-
- *flagp = temp & newexcepts;
+ *flagp = libc_fetestexcept_s390 (excepts);
/* Success. */
return 0;
diff --git a/sysdeps/s390/fpu/fix-fp-int-compare-invalid.h b/sysdeps/s390/fpu/fix-fp-int-compare-invalid.h
index 2ad36817c7..440b3d0036 100644
--- a/sysdeps/s390/fpu/fix-fp-int-compare-invalid.h
+++ b/sysdeps/s390/fpu/fix-fp-int-compare-invalid.h
@@ -1,6 +1,6 @@
/* Fix for missing "invalid" exceptions from floating-point
comparisons. s390 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef FIX_FP_INT_COMPARE_INVALID_H
#define FIX_FP_INT_COMPARE_INVALID_H 1
@@ -27,10 +27,12 @@
<https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77918>.
There exists an equivalent gcc bugzilla for Intel:
<https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52451>.
- Once the s390 gcc bug is fixed, the definition of FIX_COMPARE_INVALID
- should have a __GNUC_PREREQ conditional added so that e.g. the workaround
- to call feraiseexcept (FE_INVALID) in math/s_iseqsig_template.c can be
- avoided. */
-#define FIX_COMPARE_INVALID 1
+ This s390 gcc bug is fixed with gcc 10, thus we don't need the workaround
+ to call feraiseexcept (FE_INVALID) in math/s_iseqsig_template.c. */
+#if __GNUC_PREREQ (10, 0)
+# define FIX_COMPARE_INVALID 0
+#else
+# define FIX_COMPARE_INVALID 1
+#endif
#endif /* fix-fp-int-compare-invalid.h */
diff --git a/sysdeps/s390/fpu/fpu_control.h b/sysdeps/s390/fpu/fpu_control.h
index cb8bca2c56..cd65967d7a 100644
--- a/sysdeps/s390/fpu/fpu_control.h
+++ b/sysdeps/s390/fpu/fpu_control.h
@@ -1,5 +1,5 @@
/* FPU control word definitions. Stub version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Denis Joseph Barrow (djbarrow@de.ibm.com) and
Martin Schwidefsky (schwidefsky@de.ibm.com).
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FPU_CONTROL_H
#define _FPU_CONTROL_H
diff --git a/sysdeps/s390/fpu/fraiseexcpt.c b/sysdeps/s390/fpu/fraiseexcpt.c
index c1edf7a732..f1379e76d1 100644
--- a/sysdeps/s390/fpu/fraiseexcpt.c
+++ b/sysdeps/s390/fpu/fraiseexcpt.c
@@ -1,5 +1,5 @@
/* Raise given exceptions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Denis Joseph Barrow (djbarrow@de.ibm.com) and
Martin Schwidefsky (schwidefsky@de.ibm.com).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv_libc.h>
#include <float.h>
diff --git a/sysdeps/s390/fpu/fsetexcptflg.c b/sysdeps/s390/fpu/fsetexcptflg.c
index e50684c574..0b9517ef59 100644
--- a/sysdeps/s390/fpu/fsetexcptflg.c
+++ b/sysdeps/s390/fpu/fsetexcptflg.c
@@ -1,5 +1,5 @@
/* Set floating-point environment exception handling.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Denis Joseph Barrow (djbarrow@de.ibm.com).
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv_libc.h>
#include <math.h>
@@ -24,29 +24,26 @@
int
fesetexceptflag (const fexcept_t *flagp, int excepts)
{
- fexcept_t temp, newexcepts;
+ fexcept_t fpc, fpc_new;
/* Get the current environment. We have to do this since we cannot
separately set the status word. */
- _FPU_GETCW (temp);
- /* Install the new exception bits in the Accrued Exception Byte. */
- excepts = excepts & FE_ALL_EXCEPT;
- newexcepts = excepts << FPC_FLAGS_SHIFT;
- temp &= ~newexcepts;
- if ((temp & FPC_NOT_FPU_EXCEPTION) == 0)
+ _FPU_GETCW (fpc);
+
+ /* Clear the current exception bits. */
+ fpc_new = fpc & ~((excepts & FE_ALL_EXCEPT) << FPC_FLAGS_SHIFT);
+ if ((fpc & FPC_NOT_FPU_EXCEPTION) == 0)
/* Bits 6, 7 of dxc-byte are zero,
thus bits 0-5 of dxc-byte correspond to the flag-bits.
Clear given exceptions in dxc-field. */
- temp &= ~(excepts << FPC_DXC_SHIFT);
+ fpc_new &= ~((excepts & FE_ALL_EXCEPT) << FPC_DXC_SHIFT);
- /* Integrate dxc-byte of flagp into flags. The dxc-byte of flagp contains
- either an ieee-exception or 0 (see fegetexceptflag). */
- temp |= (*flagp | ((*flagp >> FPC_DXC_SHIFT) << FPC_FLAGS_SHIFT))
- & newexcepts;
+ /* Set exceptions from flagp in flags-field. */
+ fpc_new |= (*flagp & excepts & FE_ALL_EXCEPT) << FPC_FLAGS_SHIFT;
/* Store the new status word (along with the rest of the environment.
Possibly new exceptions are set but they won't get executed. */
- _FPU_SETCW (temp);
+ _FPU_SETCW (fpc_new);
/* Success. */
return 0;
diff --git a/sysdeps/s390/fpu/ftestexcept.c b/sysdeps/s390/fpu/ftestexcept.c
index 727b9b342d..ed7df8b02b 100644
--- a/sysdeps/s390/fpu/ftestexcept.c
+++ b/sysdeps/s390/fpu/ftestexcept.c
@@ -1,5 +1,5 @@
/* Test exception in current environment.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Denis Joseph Barrow (djbarrow@de.ibm.com).
@@ -15,25 +15,13 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#include <fenv_libc.h>
-#include <fpu_control.h>
+#include <fenv_private.h>
int
fetestexcept (int excepts)
{
- fexcept_t temp, res;
-
- /* Get current exceptions. */
- _FPU_GETCW (temp);
- res = temp >> FPC_FLAGS_SHIFT;
- if ((temp & FPC_NOT_FPU_EXCEPTION) == 0)
- /* Bits 6, 7 of dxc-byte are zero,
- thus bits 0-5 of dxc-byte correspond to the flag-bits.
- Evaluate flags and last dxc-exception-code. */
- res |= temp >> FPC_DXC_SHIFT;
-
- return res & excepts & FE_ALL_EXCEPT;
+ return libc_fetestexcept_s390 (excepts);
}
libm_hidden_def (fetestexcept)
diff --git a/sysdeps/s390/fpu/get-rounding-mode.h b/sysdeps/s390/fpu/get-rounding-mode.h
index ae40791af6..7c631857e1 100644
--- a/sysdeps/s390/fpu/get-rounding-mode.h
+++ b/sysdeps/s390/fpu/get-rounding-mode.h
@@ -1,5 +1,5 @@
/* Determine floating-point rounding mode within libc. S/390 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _S390_GET_ROUNDING_MODE_H
#define _S390_GET_ROUNDING_MODE_H 1
diff --git a/sysdeps/s390/fpu/libm-test-ulps b/sysdeps/s390/fpu/libm-test-ulps
index fec59c7d60..ce79257e2a 100644
--- a/sysdeps/s390/fpu/libm-test-ulps
+++ b/sysdeps/s390/fpu/libm-test-ulps
@@ -712,9 +712,9 @@ ildouble: 2
ldouble: 2
Function: Imaginary part of "ccos_downward":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
@@ -728,9 +728,9 @@ ildouble: 2
ldouble: 2
Function: Imaginary part of "ccos_towardzero":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
@@ -744,9 +744,9 @@ ildouble: 3
ldouble: 3
Function: Imaginary part of "ccos_upward":
-double: 2
+double: 1
float: 2
-idouble: 2
+idouble: 1
ifloat: 2
ildouble: 2
ldouble: 2
@@ -768,33 +768,33 @@ ildouble: 1
ldouble: 1
Function: Real part of "ccosh_downward":
-double: 1
+double: 2
float: 2
-idouble: 1
+idouble: 2
ifloat: 2
ildouble: 2
ldouble: 2
Function: Imaginary part of "ccosh_downward":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
Function: Real part of "ccosh_towardzero":
-double: 1
+double: 2
float: 3
-idouble: 1
+idouble: 2
ifloat: 3
ildouble: 2
ldouble: 2
Function: Imaginary part of "ccosh_towardzero":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
@@ -808,9 +808,9 @@ ildouble: 3
ldouble: 3
Function: Imaginary part of "ccosh_upward":
-double: 2
+double: 1
float: 2
-idouble: 2
+idouble: 1
ifloat: 2
ildouble: 2
ldouble: 2
@@ -832,33 +832,33 @@ ildouble: 1
ldouble: 1
Function: Real part of "cexp_downward":
-double: 1
+double: 2
float: 2
-idouble: 1
+idouble: 2
ifloat: 2
ildouble: 2
ldouble: 2
Function: Imaginary part of "cexp_downward":
-double: 1
+double: 3
float: 3
-idouble: 1
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
Function: Real part of "cexp_towardzero":
-double: 1
+double: 2
float: 2
-idouble: 1
+idouble: 2
ifloat: 2
ildouble: 2
ldouble: 2
Function: Imaginary part of "cexp_towardzero":
-double: 1
+double: 3
float: 3
-idouble: 1
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
@@ -872,9 +872,9 @@ ildouble: 3
ldouble: 3
Function: Imaginary part of "cexp_upward":
-double: 1
+double: 3
float: 2
-idouble: 1
+idouble: 3
ifloat: 2
ildouble: 3
ldouble: 3
@@ -1013,19 +1013,25 @@ ldouble: 1
Function: "cos_downward":
double: 1
+float: 1
idouble: 1
+ifloat: 1
ildouble: 3
ldouble: 3
Function: "cos_towardzero":
double: 1
+float: 1
idouble: 1
+ifloat: 1
ildouble: 1
ldouble: 1
Function: "cos_upward":
double: 1
+float: 1
idouble: 1
+ifloat: 1
ildouble: 2
ldouble: 2
@@ -1038,25 +1044,25 @@ ildouble: 1
ldouble: 1
Function: "cosh_downward":
-double: 1
+double: 2
float: 1
-idouble: 1
+idouble: 2
ifloat: 1
ildouble: 1
ldouble: 2
Function: "cosh_towardzero":
-double: 1
+double: 2
float: 1
-idouble: 1
+idouble: 2
ifloat: 1
ildouble: 1
ldouble: 2
Function: "cosh_upward":
-double: 1
+double: 2
float: 2
-idouble: 1
+idouble: 2
ifloat: 2
ildouble: 1
ldouble: 3
@@ -1076,9 +1082,9 @@ ildouble: 1
ldouble: 1
Function: Real part of "cpow_downward":
-double: 4
+double: 5
float: 8
-idouble: 4
+idouble: 5
ifloat: 8
ildouble: 6
ldouble: 6
@@ -1092,9 +1098,9 @@ ildouble: 2
ldouble: 2
Function: Real part of "cpow_towardzero":
-double: 4
+double: 5
float: 8
-idouble: 4
+idouble: 5
ifloat: 8
ildouble: 6
ldouble: 6
@@ -1136,9 +1142,9 @@ ildouble: 1
ldouble: 1
Function: Real part of "csin_downward":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
@@ -1152,9 +1158,9 @@ ildouble: 2
ldouble: 2
Function: Real part of "csin_towardzero":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
@@ -1168,9 +1174,9 @@ ildouble: 2
ldouble: 2
Function: Real part of "csin_upward":
-double: 2
+double: 1
float: 2
-idouble: 2
+idouble: 1
ifloat: 2
ildouble: 2
ldouble: 2
@@ -1206,9 +1212,9 @@ ildouble: 2
ldouble: 2
Function: Imaginary part of "csinh_downward":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
@@ -1222,9 +1228,9 @@ ildouble: 2
ldouble: 2
Function: Imaginary part of "csinh_towardzero":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
@@ -1238,9 +1244,9 @@ ildouble: 3
ldouble: 3
Function: Imaginary part of "csinh_upward":
-double: 2
+double: 1
float: 2
-idouble: 2
+idouble: 1
ifloat: 2
ildouble: 2
ldouble: 2
@@ -1390,9 +1396,9 @@ ildouble: 3
ldouble: 3
Function: Real part of "ctanh_downward":
-double: 4
+double: 2
float: 2
-idouble: 4
+idouble: 2
ifloat: 2
ildouble: 5
ldouble: 5
@@ -1422,9 +1428,9 @@ ildouble: 3
ldouble: 3
Function: Real part of "ctanh_upward":
-double: 2
+double: 1
float: 2
-idouble: 2
+idouble: 1
ifloat: 2
ildouble: 5
ldouble: 5
@@ -1478,9 +1484,9 @@ ildouble: 2
ldouble: 2
Function: "erfc_downward":
-double: 3
+double: 4
float: 4
-idouble: 3
+idouble: 4
ifloat: 4
ildouble: 5
ldouble: 5
@@ -1494,9 +1500,9 @@ ildouble: 4
ldouble: 4
Function: "erfc_upward":
-double: 3
+double: 4
float: 4
-idouble: 3
+idouble: 4
ifloat: 4
ildouble: 5
ldouble: 5
@@ -1512,18 +1518,14 @@ ildouble: 2
ldouble: 2
Function: "exp10_downward":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
+double: 3
+idouble: 3
ildouble: 3
ldouble: 3
Function: "exp10_towardzero":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
+double: 3
+idouble: 3
ildouble: 3
ldouble: 3
@@ -1684,9 +1686,9 @@ ildouble: 4
ldouble: 4
Function: "j0_towardzero":
-double: 2
+double: 3
float: 1
-idouble: 2
+idouble: 3
ifloat: 1
ildouble: 2
ldouble: 2
@@ -1864,28 +1866,24 @@ ildouble: 2
ldouble: 2
Function: "log2":
-double: 1
float: 1
-idouble: 1
ifloat: 1
ildouble: 2
ldouble: 2
Function: "log2_downward":
-double: 3
-idouble: 3
ildouble: 3
ldouble: 3
Function: "log2_towardzero":
-double: 2
-idouble: 2
+double: 1
+idouble: 1
ildouble: 1
ldouble: 1
Function: "log2_upward":
-double: 3
-idouble: 3
+double: 1
+idouble: 1
ildouble: 1
ldouble: 1
@@ -1939,19 +1937,25 @@ ldouble: 1
Function: "sin_downward":
double: 1
+float: 1
idouble: 1
+ifloat: 1
ildouble: 3
ldouble: 3
Function: "sin_towardzero":
double: 1
+float: 1
idouble: 1
+ifloat: 1
ildouble: 2
ldouble: 2
Function: "sin_upward":
double: 1
+float: 1
idouble: 1
+ifloat: 1
ildouble: 3
ldouble: 3
@@ -1963,19 +1967,25 @@ ldouble: 1
Function: "sincos_downward":
double: 1
+float: 1
idouble: 1
+ifloat: 1
ildouble: 3
ldouble: 3
Function: "sincos_towardzero":
double: 1
+float: 1
idouble: 1
+ifloat: 1
ildouble: 2
ldouble: 2
Function: "sincos_upward":
double: 1
+float: 1
idouble: 1
+ifloat: 1
ildouble: 3
ldouble: 3
@@ -2130,9 +2140,9 @@ ildouble: 3
ldouble: 3
Function: "y0_upward":
-double: 2
+double: 3
float: 5
-idouble: 2
+idouble: 3
ifloat: 5
ildouble: 3
ldouble: 3
@@ -2162,9 +2172,9 @@ ildouble: 2
ldouble: 2
Function: "y1_upward":
-double: 5
+double: 7
float: 2
-idouble: 5
+idouble: 7
ifloat: 2
ildouble: 5
ldouble: 5
diff --git a/sysdeps/s390/fpu/math-barriers.h b/sysdeps/s390/fpu/math-barriers.h
new file mode 100644
index 0000000000..7c3e6b15e0
--- /dev/null
+++ b/sysdeps/s390/fpu/math-barriers.h
@@ -0,0 +1,46 @@
+/* Control when floating-point expressions are evaluated. s390 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef S390_MATH_BARRIERS_H
+#define S390_MATH_BARRIERS_H 1
+
+#ifdef HAVE_S390_VX_GCC_SUPPORT
+# define ASM_CONSTRAINT_VR "v"
+#else
+# define ASM_CONSTRAINT_VR
+#endif
+
+#define math_opt_barrier(x) \
+ ({ __typeof (x) __x = (x); \
+ if (__builtin_types_compatible_p (__typeof (x), _Float128)) \
+ __asm__ ("# math_opt_barrier_f128 %0" : "+fm" (__x)); \
+ else \
+ __asm__ ("# math_opt_barrier %0" \
+ : "+f" ASM_CONSTRAINT_VR "m" (__x)); \
+ __x; })
+#define math_force_eval(x) \
+ ({ __typeof (x) __x = (x); \
+ if (__builtin_types_compatible_p (__typeof (x), _Float128)) \
+ __asm__ __volatile__ ("# math_force_eval_f128 %0" \
+ : : "fm" (__x)); \
+ else \
+ __asm__ __volatile__ ("# math_force_eval %0" \
+ : : "f" ASM_CONSTRAINT_VR "m" (__x)); \
+ })
+
+#endif
diff --git a/sysdeps/s390/fpu/math-use-builtins.h b/sysdeps/s390/fpu/math-use-builtins.h
new file mode 100644
index 0000000000..4c4aad2ab5
--- /dev/null
+++ b/sysdeps/s390/fpu/math-use-builtins.h
@@ -0,0 +1,111 @@
+/* Using math gcc builtins instead of generic implementation. s390/s390x version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef MATH_USE_BUILTINS_S390_H
+#define MATH_USE_BUILTINS_S390_H 1
+
+#ifdef HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT
+
+# include <features.h> /* For __GNUC_PREREQ. */
+
+/* GCC emits the z196 zarch "load fp integer" instructions for these
+ builtins if build with at least --march=z196 -mzarch. Otherwise a
+ function call to libc is emitted. */
+# define USE_NEARBYINT_BUILTIN 1
+# define USE_NEARBYINTF_BUILTIN 1
+# define USE_NEARBYINTL_BUILTIN 1
+
+# define USE_RINT_BUILTIN 1
+# define USE_RINTF_BUILTIN 1
+# define USE_RINTL_BUILTIN 1
+
+# define USE_FLOOR_BUILTIN 1
+# define USE_FLOORF_BUILTIN 1
+# define USE_FLOORL_BUILTIN 1
+
+# define USE_CEIL_BUILTIN 1
+# define USE_CEILF_BUILTIN 1
+# define USE_CEILL_BUILTIN 1
+
+# define USE_TRUNC_BUILTIN 1
+# define USE_TRUNCF_BUILTIN 1
+# define USE_TRUNCL_BUILTIN 1
+
+# define USE_ROUND_BUILTIN 1
+# define USE_ROUNDF_BUILTIN 1
+# define USE_ROUNDL_BUILTIN 1
+
+# if __GNUC_PREREQ (8, 0)
+# define USE_NEARBYINTF128_BUILTIN 1
+# define USE_RINTF128_BUILTIN 1
+# define USE_FLOORF128_BUILTIN 1
+# define USE_CEILF128_BUILTIN 1
+# define USE_TRUNCF128_BUILTIN 1
+# define USE_ROUNDF128_BUILTIN 1
+# else
+# define USE_NEARBYINTF128_BUILTIN 0
+# define USE_RINTF128_BUILTIN 0
+# define USE_FLOORF128_BUILTIN 0
+# define USE_CEILF128_BUILTIN 0
+# define USE_TRUNCF128_BUILTIN 0
+# define USE_ROUNDF128_BUILTIN 0
+# endif
+
+#else
+
+/* Disable the builtins if we do not have the z196 zarch instructions. */
+# define USE_NEARBYINT_BUILTIN 0
+# define USE_NEARBYINTF_BUILTIN 0
+# define USE_NEARBYINTL_BUILTIN 0
+# define USE_NEARBYINTF128_BUILTIN 0
+
+# define USE_RINT_BUILTIN 0
+# define USE_RINTF_BUILTIN 0
+# define USE_RINTL_BUILTIN 0
+# define USE_RINTF128_BUILTIN 0
+
+# define USE_FLOOR_BUILTIN 0
+# define USE_FLOORF_BUILTIN 0
+# define USE_FLOORL_BUILTIN 0
+# define USE_FLOORF128_BUILTIN 0
+
+# define USE_CEIL_BUILTIN 0
+# define USE_CEILF_BUILTIN 0
+# define USE_CEILL_BUILTIN 0
+# define USE_CEILF128_BUILTIN 0
+
+# define USE_TRUNC_BUILTIN 0
+# define USE_TRUNCF_BUILTIN 0
+# define USE_TRUNCL_BUILTIN 0
+# define USE_TRUNCF128_BUILTIN 0
+
+# define USE_ROUND_BUILTIN 0
+# define USE_ROUNDF_BUILTIN 0
+# define USE_ROUNDL_BUILTIN 0
+# define USE_ROUNDF128_BUILTIN 0
+
+#endif /* ! HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT */
+
+#define USE_COPYSIGNL_BUILTIN 1
+#if __GNUC_PREREQ (7, 0)
+# define USE_COPYSIGNF128_BUILTIN 1
+#else
+# define USE_COPYSIGNF128_BUILTIN 0
+#endif
+
+#endif /* math-use-builtins.h */
diff --git a/sysdeps/s390/fpu/math_private.h b/sysdeps/s390/fpu/math_private.h
new file mode 100644
index 0000000000..a1ae91a87c
--- /dev/null
+++ b/sysdeps/s390/fpu/math_private.h
@@ -0,0 +1,53 @@
+/* Configure optimized libm functions. S390 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef S390_MATH_PRIVATE_H
+#define S390_MATH_PRIVATE_H 1
+
+#include <stdint.h>
+#include <math.h>
+
+#ifdef HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT
+# define TOINT_INTRINSICS 1
+
+static inline double_t
+roundtoint (double_t x)
+{
+ double_t y;
+ /* The z196 zarch "load fp integer" (fidbra) instruction is rounding
+ x to the nearest integer with ties away from zero (M3-field: 1)
+ where inexact exceptions are suppressed (M4-field: 4). */
+ __asm__ ("fidbra %0,1,%1,4" : "=f" (y) : "f" (x));
+ return y;
+}
+
+static inline int32_t
+converttoint (double_t x)
+{
+ int32_t y;
+ /* The z196 zarch "convert to fixed" (cfdbra) instruction is rounding
+ x to the nearest integer with ties away from zero (M3-field: 1)
+ where inexact exceptions are suppressed (M4-field: 4). */
+ __asm__ ("cfdbra %0,1,%1,4" : "=d" (y) : "f" (x) : "cc");
+ return y;
+}
+#endif
+
+#include_next <math_private.h>
+
+#endif
diff --git a/sysdeps/s390/fpu/s_fma.c b/sysdeps/s390/fpu/s_fma.c
index 93405d0662..d715f621ed 100644
--- a/sysdeps/s390/fpu/s_fma.c
+++ b/sysdeps/s390/fpu/s_fma.c
@@ -1,5 +1,5 @@
/* Compute x * y + z as ternary operation. S/390 version.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 2010.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <libm-alias-double.h>
diff --git a/sysdeps/s390/fpu/s_fmaf.c b/sysdeps/s390/fpu/s_fmaf.c
index 0768495f16..e0d32e8470 100644
--- a/sysdeps/s390/fpu/s_fmaf.c
+++ b/sysdeps/s390/fpu/s_fmaf.c
@@ -1,5 +1,5 @@
/* Compute x * y + z as ternary operation. S/390 version.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 2010.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/s390/fpu/s_llrint.c b/sysdeps/s390/fpu/s_llrint.c
new file mode 100644
index 0000000000..edd796ae8c
--- /dev/null
+++ b/sysdeps/s390/fpu/s_llrint.c
@@ -0,0 +1,50 @@
+/* llrint() - S390 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#if defined __s390x__ && defined HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT
+/* We only support s390x as on s390 a long long int refers to a register pair
+ of two 4byte registers instead of a 8byte register which is produced by the
+ instruction.
+ Note: On s390 this instruction would only be used if build with -mzarch. */
+# include <math.h>
+# include <libm-alias-double.h>
+
+long long int
+__llrint (double x)
+{
+ long long int y;
+ /* The z196 zarch "convert to fixed" (cgdbra) instruction is rounding
+ according to current rounding mode (M3-field: 0).
+ First convert x with suppressed inexact exception and check if the
+ resulting value is beyond the target limits (indicated by cc=3;
+ Note: a nan is also indicated by cc=3).
+ If the resulting value is within the target limits, redo
+ without suppressing the inexact exception. */
+ __asm__ ("cgdbra %0,0,%1,4 \n\t"
+ "jo 1f \n\t"
+ "cgdbra %0,0,%1,0 \n\t"
+ "1:"
+ : "=&d" (y) : "f" (x) : "cc");
+ return y;
+}
+libm_alias_double (__llrint, llrint)
+
+#else
+# include <sysdeps/ieee754/dbl-64/s_llrint.c>
+#endif
diff --git a/sysdeps/s390/fpu/s_llrintf.c b/sysdeps/s390/fpu/s_llrintf.c
new file mode 100644
index 0000000000..3cbe7c581a
--- /dev/null
+++ b/sysdeps/s390/fpu/s_llrintf.c
@@ -0,0 +1,50 @@
+/* llrintf() - S390 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#if defined __s390x__ && defined HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT
+/* We only support s390x as on s390 a long long int refers to a register pair
+ of two 4byte registers instead of a 8byte register which is produced by the
+ instruction.
+ Note: On s390 this instruction would only be used if build with -mzarch. */
+# include <math.h>
+# include <libm-alias-float.h>
+
+long long int
+__llrintf (float x)
+{
+ long long int y;
+ /* The z196 zarch "convert to fixed" (cgebra) instruction is rounding
+ according to current rounding mode (M3-field: 0).
+ First convert x with suppressed inexact exception and check if the
+ resulting value is beyond the target limits (indicated by cc=3;
+ Note: a nan is also indicated by cc=3).
+ If the resulting value is within the target limits, redo
+ without suppressing the inexact exception. */
+ __asm__ ("cgebra %0,0,%1,4 \n\t"
+ "jo 1f \n\t"
+ "cgebra %0,0,%1,0 \n\t"
+ "1:"
+ : "=&d" (y) : "f" (x) : "cc");
+ return y;
+}
+libm_alias_float (__llrint, llrint)
+
+#else
+# include <sysdeps/ieee754/flt-32/s_llrintf.c>
+#endif
diff --git a/sysdeps/s390/fpu/s_llrintl.c b/sysdeps/s390/fpu/s_llrintl.c
new file mode 100644
index 0000000000..37eea5914f
--- /dev/null
+++ b/sysdeps/s390/fpu/s_llrintl.c
@@ -0,0 +1,51 @@
+/* llrintl() - S390 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#if defined __s390x__ && defined HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT
+/* We only support s390x as on s390 a long long int refers to a register pair
+ of two 4byte registers instead of a 8byte register which is produced by the
+ instruction.
+ Note: On s390 this instruction would only be used if build with -mzarch. */
+# include <math.h>
+# include <math_private.h>
+# include <libm-alias-ldouble.h>
+
+long long int
+__llrintl (_Float128 x)
+{
+ long long int y;
+ /* The z196 zarch "convert to fixed" (cgxbra) instruction is rounding
+ according to current rounding mode (M3-field: 0).
+ First convert x with suppressed inexact exception and check if the
+ resulting value is beyond the target limits (indicated by cc=3;
+ Note: a nan is also indicated by cc=3).
+ If the resulting value is within the target limits, redo
+ without suppressing the inexact exception. */
+ __asm__ ("cgxbra %0,0,%1,4 \n\t"
+ "jo 1f \n\t"
+ "cgxbra %0,0,%1,0 \n\t"
+ "1:"
+ : "=&d" (y) : "f" (x) : "cc");
+ return y;
+}
+libm_alias_ldouble (__llrint, llrint)
+
+#else
+# include <sysdeps/ieee754/ldbl-128/s_llrintl.c>
+#endif
diff --git a/sysdeps/s390/fpu/s_llround.c b/sysdeps/s390/fpu/s_llround.c
new file mode 100644
index 0000000000..f4a1b21637
--- /dev/null
+++ b/sysdeps/s390/fpu/s_llround.c
@@ -0,0 +1,42 @@
+/* llround() - S390 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#if defined __s390x__ && defined HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT
+/* We only support s390x as on s390 a long long int refers to a register pair
+ of two 4byte registers instead of a 8byte register which is produced by the
+ instruction.
+ Note: On s390 this instruction would only be used if build with -mzarch. */
+# include <math.h>
+# include <libm-alias-double.h>
+
+long long int
+__llround (double x)
+{
+ long long int y;
+ /* The z196 zarch "convert to fixed" (cgdbra) instruction is rounding
+ x to the nearest integer with "ties away from 0" rounding mode
+ (M3-field: 1) where inexact exceptions are suppressed (M4-field: 4). */
+ __asm__ ("cgdbra %0,1,%1,4" : "=d" (y) : "f" (x) : "cc");
+ return y;
+}
+libm_alias_double (__llround, llround)
+
+#else
+# include <sysdeps/ieee754/dbl-64/s_llround.c>
+#endif
diff --git a/sysdeps/s390/fpu/s_llroundf.c b/sysdeps/s390/fpu/s_llroundf.c
new file mode 100644
index 0000000000..d202f4be8c
--- /dev/null
+++ b/sysdeps/s390/fpu/s_llroundf.c
@@ -0,0 +1,42 @@
+/* llroundf() - S390 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#if defined __s390x__ && defined HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT
+/* We only support s390x as on s390 a long long int refers to a register pair
+ of two 4byte registers instead of a 8byte register which is produced by the
+ instruction.
+ Note: On s390 this instruction would only be used if build with -mzarch. */
+# include <math.h>
+# include <libm-alias-float.h>
+
+long long int
+__llroundf (float x)
+{
+ long long int y;
+ /* The z196 zarch "convert to fixed" (cgebra) instruction is rounding
+ x to the nearest integer with "ties away from 0" rounding mode
+ (M3-field: 1) where inexact exceptions are suppressed (M4-field: 4). */
+ __asm__ ("cgebra %0,1,%1,4" : "=d" (y) : "f" (x) : "cc");
+ return y;
+}
+libm_alias_float (__llround, llround)
+
+#else
+# include <sysdeps/ieee754/flt-32/s_llroundf.c>
+#endif
diff --git a/sysdeps/s390/fpu/s_llroundl.c b/sysdeps/s390/fpu/s_llroundl.c
new file mode 100644
index 0000000000..58976cd5c5
--- /dev/null
+++ b/sysdeps/s390/fpu/s_llroundl.c
@@ -0,0 +1,43 @@
+/* llroundl() - S390 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#if defined __s390x__ && defined HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT
+/* We only support s390x as on s390 a long long int refers to a register pair
+ of two 4byte registers instead of a 8byte register which is produced by the
+ instruction.
+ Note: On s390 this instruction would only be used if build with -mzarch. */
+# include <math.h>
+# include <math_private.h>
+# include <libm-alias-ldouble.h>
+
+long long int
+__llroundl (_Float128 x)
+{
+ long long int y;
+ /* The z196 zarch "convert to fixed" (cgxbra) instruction is rounding
+ x to the nearest integer with "ties away from 0" rounding mode
+ (M3-field: 1) where inexact exceptions are suppressed (M4-field: 4). */
+ __asm__ ("cgxbra %0,1,%1,4" : "=d" (y) : "f" (x) : "cc");
+ return y;
+}
+libm_alias_ldouble (__llround, llround)
+
+#else
+# include <sysdeps/ieee754/ldbl-128/s_llroundl.c>
+#endif
diff --git a/sysdeps/s390/fpu/s_lrint.c b/sysdeps/s390/fpu/s_lrint.c
new file mode 100644
index 0000000000..7be60665b5
--- /dev/null
+++ b/sysdeps/s390/fpu/s_lrint.c
@@ -0,0 +1,55 @@
+/* lrint() - S390 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifdef HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT
+# include <math.h>
+# include <libm-alias-double.h>
+
+/* The sizeof (long int) differs between s390x (8byte) and s390 (4byte).
+ Thus we need different instructions as the target size is encoded there.
+ Note: On s390 this instruction is only used if build with -mzarch. */
+# ifdef __s390x__
+# define INSN "cgdbra"
+# else
+# define INSN "cfdbra"
+# endif
+
+long int
+__lrint (double x)
+{
+ long int y;
+ /* The z196 zarch "convert to fixed" (cgdbra) instruction is rounding
+ according to current rounding mode (M3-field: 0).
+ First convert x with suppressed inexact exception and check if the
+ resulting value is beyond the target limits (indicated by cc=3;
+ Note: a nan is also indicated by cc=3).
+ If the resulting value is within the target limits, redo
+ without suppressing the inexact exception. */
+ __asm__ (INSN " %0,0,%1,4 \n\t"
+ "jo 1f \n\t"
+ INSN " %0,0,%1,0 \n\t"
+ "1:"
+ : "=&d" (y) : "f" (x) : "cc");
+ return y;
+}
+libm_alias_double (__lrint, lrint)
+
+#else
+# include <sysdeps/ieee754/dbl-64/s_lrint.c>
+#endif
diff --git a/sysdeps/s390/fpu/s_lrintf.c b/sysdeps/s390/fpu/s_lrintf.c
new file mode 100644
index 0000000000..d6a2a4081a
--- /dev/null
+++ b/sysdeps/s390/fpu/s_lrintf.c
@@ -0,0 +1,55 @@
+/* lrintf() - S390 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifdef HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT
+# include <math.h>
+# include <libm-alias-float.h>
+
+/* The sizeof (long int) differs between s390x (8byte) and s390 (4byte).
+ Thus we need different instructions as the target size is encoded there.
+ Note: On s390 this instruction is only used if build with -mzarch. */
+# ifdef __s390x__
+# define INSN "cgebra"
+# else
+# define INSN "cfebra"
+# endif
+
+long int
+__lrintf (float x)
+{
+ long int y;
+ /* The z196 zarch "convert to fixed" (cgebra) instruction is rounding
+ according to current rounding mode (M3-field: 0).
+ First convert x with suppressed inexact exception and check if the
+ resulting value is beyond the target limits (indicated by cc=3;
+ Note: a nan is also indicated by cc=3).
+ If the resulting value is within the target limits, redo
+ without suppressing the inexact exception. */
+ __asm__ (INSN " %0,0,%1,4 \n\t"
+ "jo 1f \n\t"
+ INSN " %0,0,%1,0 \n\t"
+ "1:"
+ : "=&d" (y) : "f" (x) : "cc");
+ return y;
+}
+libm_alias_float (__lrint, lrint)
+
+#else
+# include <sysdeps/ieee754/flt-32/s_lrintf.c>
+#endif
diff --git a/sysdeps/s390/fpu/s_lrintl.c b/sysdeps/s390/fpu/s_lrintl.c
new file mode 100644
index 0000000000..2d386ecff9
--- /dev/null
+++ b/sysdeps/s390/fpu/s_lrintl.c
@@ -0,0 +1,56 @@
+/* lrintl() - S390 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifdef HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT
+# include <math.h>
+# include <math_private.h>
+# include <libm-alias-ldouble.h>
+
+/* The sizeof (long int) differs between s390x (8byte) and s390 (4byte).
+ Thus we need different instructions as the target size is encoded there.
+ Note: On s390 this instruction is only used if build with -mzarch. */
+# ifdef __s390x__
+# define INSN "cgxbra"
+# else
+# define INSN "cfxbra"
+# endif
+
+long int
+__lrintl (_Float128 x)
+{
+ long int y;
+ /* The z196 zarch "convert to fixed" (cgxbra) instruction is rounding
+ according to current rounding mode (M3-field: 0).
+ First convert x with suppressed inexact exception and check if the
+ resulting value is beyond the target limits (indicated by cc=3;
+ Note: a nan is also indicated by cc=3).
+ If the resulting value is within the target limits, redo
+ without suppressing the inexact exception. */
+ __asm__ (INSN " %0,0,%1,4 \n\t"
+ "jo 1f \n\t"
+ INSN " %0,0,%1,0 \n\t"
+ "1:"
+ : "=&d" (y) : "f" (x) : "cc");
+ return y;
+}
+libm_alias_ldouble (__lrint, lrint)
+
+#else
+# include <sysdeps/ieee754/ldbl-128/s_lrintl.c>
+#endif
diff --git a/sysdeps/s390/fpu/s_lround.c b/sysdeps/s390/fpu/s_lround.c
new file mode 100644
index 0000000000..9290ec32cd
--- /dev/null
+++ b/sysdeps/s390/fpu/s_lround.c
@@ -0,0 +1,47 @@
+/* lround() - S390 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifdef HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT
+# include <math.h>
+# include <libm-alias-double.h>
+
+/* The sizeof (long int) differs between s390x (8byte) and s390 (4byte).
+ Thus we need different instructions as the target size is encoded there.
+ Note: On s390 this instruction is only used if build with -mzarch. */
+# ifdef __s390x__
+# define INSN "cgdbra"
+# else
+# define INSN "cfdbra"
+# endif
+
+long int
+__lround (double x)
+{
+ long int y;
+ /* The z196 zarch "convert to fixed" (cgdbra) instruction is rounding
+ x to the nearest integer with "ties away from 0" rounding mode
+ (M3-field: 1) where inexact exceptions are suppressed (M4-field: 4). */
+ __asm__ (INSN " %0,1,%1,4" : "=d" (y) : "f" (x) : "cc");
+ return y;
+}
+libm_alias_double (__lround, lround)
+
+#else
+# include <sysdeps/ieee754/dbl-64/s_lround.c>
+#endif
diff --git a/sysdeps/s390/fpu/s_lroundf.c b/sysdeps/s390/fpu/s_lroundf.c
new file mode 100644
index 0000000000..097b924c91
--- /dev/null
+++ b/sysdeps/s390/fpu/s_lroundf.c
@@ -0,0 +1,47 @@
+/* lroundf() - S390 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifdef HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT
+# include <math.h>
+# include <libm-alias-float.h>
+
+/* The sizeof (long int) differs between s390x (8byte) and s390 (4byte).
+ Thus we need different instructions as the target size is encoded there.
+ Note: On s390 this instruction is only used if build with -mzarch. */
+# ifdef __s390x__
+# define INSN "cgebra"
+# else
+# define INSN "cfebra"
+# endif
+
+long int
+__lroundf (float x)
+{
+ long int y;
+ /* The z196 zarch "convert to fixed" (cgebra) instruction is rounding
+ x to the nearest integer with "ties away from 0" rounding mode
+ (M3-field: 1) where inexact exceptions are suppressed (M4-field: 4). */
+ __asm__ (INSN " %0,1,%1,4" : "=d" (y) : "f" (x) : "cc");
+ return y;
+}
+libm_alias_float (__lround, lround)
+
+#else
+# include <sysdeps/ieee754/flt-32/s_lroundf.c>
+#endif
diff --git a/sysdeps/s390/fpu/s_lroundl.c b/sysdeps/s390/fpu/s_lroundl.c
new file mode 100644
index 0000000000..0ef77dc667
--- /dev/null
+++ b/sysdeps/s390/fpu/s_lroundl.c
@@ -0,0 +1,48 @@
+/* lroundl() - S390 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifdef HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT
+# include <math.h>
+# include <math_private.h>
+# include <libm-alias-ldouble.h>
+
+/* The sizeof (long int) differs between s390x (8byte) and s390 (4byte).
+ Thus we need different instructions as the target size is encoded there.
+ Note: On s390 this instruction is only used if build with -mzarch. */
+# ifdef __s390x__
+# define INSN "cgxbra"
+# else
+# define INSN "cfxbra"
+# endif
+
+long int
+__lroundl (_Float128 x)
+{
+ long int y;
+ /* The z196 zarch "convert to fixed" (cgxbra) instruction is rounding
+ x to the nearest integer with "ties away from 0" rounding mode
+ (M3-field: 1) where inexact exceptions are suppressed (M4-field: 4). */
+ __asm__ (INSN " %0,1,%1,4" : "=d" (y) : "f" (x) : "cc");
+ return y;
+}
+libm_alias_ldouble (__lround, lround)
+
+#else
+# include <sysdeps/ieee754/ldbl-128/s_lroundl.c>
+#endif
diff --git a/sysdeps/s390/fpu/s_roundeven.c b/sysdeps/s390/fpu/s_roundeven.c
new file mode 100644
index 0000000000..95a83a70e8
--- /dev/null
+++ b/sysdeps/s390/fpu/s_roundeven.c
@@ -0,0 +1,39 @@
+/* roundeven() - S390 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifdef HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT
+# include <math.h>
+# include <libm-alias-double.h>
+
+double
+__roundeven (double x)
+{
+ double y;
+ /* The z196 zarch "load fp integer" (fidbra) instruction is rounding
+ x to the nearest integer with "ties to even" rounding mode
+ (M3-field: 4) where inexact exceptions are suppressed (M4-field: 4). */
+ __asm__ ("fidbra %0,4,%1,4" : "=f" (y) : "f" (x));
+ return y;
+}
+hidden_def (__roundeven)
+libm_alias_double (__roundeven, roundeven)
+
+#else
+# include <sysdeps/ieee754/dbl-64/s_roundeven.c>
+#endif
diff --git a/sysdeps/s390/fpu/s_roundevenf.c b/sysdeps/s390/fpu/s_roundevenf.c
new file mode 100644
index 0000000000..c620a0189c
--- /dev/null
+++ b/sysdeps/s390/fpu/s_roundevenf.c
@@ -0,0 +1,38 @@
+/* roundevenf() - S390 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifdef HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT
+# include <math.h>
+# include <libm-alias-float.h>
+
+float
+__roundevenf (float x)
+{
+ float y;
+ /* The z196 zarch "load fp integer" (fiebra) instruction is rounding
+ x to the nearest integer with "ties to even" rounding mode
+ (M3-field: 4) where inexact exceptions are suppressed (M4-field: 4). */
+ __asm__ ("fiebra %0,4,%1,4" : "=f" (y) : "f" (x));
+ return y;
+}
+libm_alias_float (__roundeven, roundeven)
+
+#else
+# include <sysdeps/ieee754/flt-32/s_roundevenf.c>
+#endif
diff --git a/sysdeps/s390/fpu/s_roundevenl.c b/sysdeps/s390/fpu/s_roundevenl.c
new file mode 100644
index 0000000000..3481af2665
--- /dev/null
+++ b/sysdeps/s390/fpu/s_roundevenl.c
@@ -0,0 +1,39 @@
+/* roundevenl() - S390 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifdef HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT
+# include <math.h>
+# include <math_private.h>
+# include <libm-alias-ldouble.h>
+
+_Float128
+__roundevenl (_Float128 x)
+{
+ _Float128 y;
+ /* The z196 zarch "load fp integer" (fixbra) instruction is rounding
+ x to the nearest integer with "ties to even" rounding mode
+ (M3-field: 4) where inexact exceptions are suppressed (M4-field: 4). */
+ __asm__ ("fixbra %0,4,%1,4" : "=f" (y) : "f" (x));
+ return y;
+}
+libm_alias_ldouble (__roundeven, roundeven)
+
+#else
+# include <sysdeps/ieee754/ldbl-128/s_roundevenl.c>
+#endif
diff --git a/sysdeps/s390/gccframe.h b/sysdeps/s390/gccframe.h
index ad41f1f0ab..6114560633 100644
--- a/sysdeps/s390/gccframe.h
+++ b/sysdeps/s390/gccframe.h
@@ -1,5 +1,5 @@
/* Definition of object in frame unwind info. s390 version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define FIRST_PSEUDO_REGISTER 34
diff --git a/sysdeps/s390/gconv-modules b/sysdeps/s390/gconv-modules
index c24b4571f5..09d426a902 100644
--- a/sysdeps/s390/gconv-modules
+++ b/sysdeps/s390/gconv-modules
@@ -1,5 +1,5 @@
# GNU libc iconv configuration.
-# Copyright (C) 1997-2018 Free Software Foundation, Inc.
+# Copyright (C) 1997-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
@@ -14,7 +14,7 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
# All lines contain the following information:
diff --git a/sysdeps/s390/gmp-mparam.h b/sysdeps/s390/gmp-mparam.h
index fe7d708b78..123cc47ddb 100644
--- a/sysdeps/s390/gmp-mparam.h
+++ b/sysdeps/s390/gmp-mparam.h
@@ -1,5 +1,5 @@
/* gmp-mparam.h -- Compiler/machine parameter header file.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
This file is part of the GNU MP Library.
@@ -16,7 +16,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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <bits/wordsize.h>
diff --git a/sysdeps/s390/hp-timing.h b/sysdeps/s390/hp-timing.h
new file mode 100644
index 0000000000..c5c605c937
--- /dev/null
+++ b/sysdeps/s390/hp-timing.h
@@ -0,0 +1,42 @@
+/* High precision, low overhead timing functions. s390 version.
+ 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. If not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _HP_TIMING_S390_H
+#define _HP_TIMING_S390_H 1
+
+/* The stckf instruction is available starting with z9-109 zarch CPUs.
+ As there is no extra configure check for z9-109, the z10 one is used. */
+#ifdef HAVE_S390_MIN_Z10_ZARCH_ASM_SUPPORT
+# include <hp-timing-common.h>
+
+/* We use 64 bit values for the times.
+ Note: Bit 51 is incremented every 0.000 001s = 1us. */
+typedef unsigned long long int hp_timing_t;
+
+# define HP_TIMING_INLINE (1)
+
+# define HP_TIMING_NOW(VAR) \
+ do { \
+ __asm__ __volatile__ ("stckf %0" : "=Q" (VAR) : : "cc"); \
+ } while (0)
+
+#else
+# include_next <hp-timing.h>
+#endif
+
+#endif /* hp-timing.h */
diff --git a/sysdeps/s390/ifunc-memccpy.h b/sysdeps/s390/ifunc-memccpy.h
new file mode 100644
index 0000000000..451d082408
--- /dev/null
+++ b/sysdeps/s390/ifunc-memccpy.h
@@ -0,0 +1,52 @@
+/* memccpy variant information on S/390 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#if defined USE_MULTIARCH && IS_IN (libc) \
+ && ! defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define HAVE_MEMCCPY_IFUNC 1
+#else
+# define HAVE_MEMCCPY_IFUNC 0
+#endif
+
+#ifdef HAVE_S390_VX_ASM_SUPPORT
+# define HAVE_MEMCCPY_IFUNC_AND_VX_SUPPORT HAVE_MEMCCPY_IFUNC
+#else
+# define HAVE_MEMCCPY_IFUNC_AND_VX_SUPPORT 0
+#endif
+
+#if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define MEMCCPY_DEFAULT MEMCCPY_Z13
+# define HAVE_MEMCCPY_C 0
+# define HAVE_MEMCCPY_Z13 1
+#else
+# define MEMCCPY_DEFAULT MEMCCPY_C
+# define HAVE_MEMCCPY_C 1
+# define HAVE_MEMCCPY_Z13 HAVE_MEMCCPY_IFUNC_AND_VX_SUPPORT
+#endif
+
+#if HAVE_MEMCCPY_C
+# define MEMCCPY_C __memccpy_c
+#else
+# define MEMCCPY_C NULL
+#endif
+
+#if HAVE_MEMCCPY_Z13
+# define MEMCCPY_Z13 __memccpy_vx
+#else
+# define MEMCCPY_Z13 NULL
+#endif
diff --git a/sysdeps/s390/ifunc-memchr.h b/sysdeps/s390/ifunc-memchr.h
new file mode 100644
index 0000000000..1400d58756
--- /dev/null
+++ b/sysdeps/s390/ifunc-memchr.h
@@ -0,0 +1,52 @@
+/* memchr variant information on S/390 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#if defined USE_MULTIARCH && IS_IN (libc) \
+ && ! defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define HAVE_MEMCHR_IFUNC 1
+#else
+# define HAVE_MEMCHR_IFUNC 0
+#endif
+
+#ifdef HAVE_S390_VX_ASM_SUPPORT
+# define HAVE_MEMCHR_IFUNC_AND_VX_SUPPORT HAVE_MEMCHR_IFUNC
+#else
+# define HAVE_MEMCHR_IFUNC_AND_VX_SUPPORT 0
+#endif
+
+#if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define MEMCHR_DEFAULT MEMCHR_Z13
+# define HAVE_MEMCHR_Z900_G5 0
+# define HAVE_MEMCHR_Z13 1
+#else
+# define MEMCHR_DEFAULT MEMCHR_Z900_G5
+# define HAVE_MEMCHR_Z900_G5 1
+# define HAVE_MEMCHR_Z13 HAVE_MEMCHR_IFUNC_AND_VX_SUPPORT
+#endif
+
+#if HAVE_MEMCHR_Z900_G5
+# define MEMCHR_Z900_G5 __memchr_default
+#else
+# define MEMCHR_Z900_G5 NULL
+#endif
+
+#if HAVE_MEMCHR_Z13
+# define MEMCHR_Z13 __memchr_vx
+#else
+# define MEMCHR_Z13 NULL
+#endif
diff --git a/sysdeps/s390/ifunc-memcmp.h b/sysdeps/s390/ifunc-memcmp.h
new file mode 100644
index 0000000000..5e9171e163
--- /dev/null
+++ b/sysdeps/s390/ifunc-memcmp.h
@@ -0,0 +1,59 @@
+/* memcmp variant information on S/390 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#if defined USE_MULTIARCH && IS_IN (libc) \
+ && ! defined HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT
+# define HAVE_MEMCMP_IFUNC 1
+#else
+# define HAVE_MEMCMP_IFUNC 0
+#endif
+
+#if defined HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT
+# define MEMCMP_DEFAULT MEMCMP_Z196
+# define HAVE_MEMCMP_Z900_G5 0
+# define HAVE_MEMCMP_Z10 0
+# define HAVE_MEMCMP_Z196 1
+#elif defined HAVE_S390_MIN_Z10_ZARCH_ASM_SUPPORT
+# define MEMCMP_DEFAULT MEMCMP_Z10
+# define HAVE_MEMCMP_Z900_G5 0
+# define HAVE_MEMCMP_Z10 1
+# define HAVE_MEMCMP_Z196 HAVE_MEMCMP_IFUNC
+#else
+# define MEMCMP_DEFAULT MEMCMP_Z900_G5
+# define HAVE_MEMCMP_Z900_G5 1
+# define HAVE_MEMCMP_Z10 HAVE_MEMCMP_IFUNC
+# define HAVE_MEMCMP_Z196 HAVE_MEMCMP_IFUNC
+#endif
+
+#if HAVE_MEMCMP_Z900_G5
+# define MEMCMP_Z900_G5 __memcmp_default
+#else
+# define MEMCMP_Z900_G5 NULL
+#endif
+
+#if HAVE_MEMCMP_Z10
+# define MEMCMP_Z10 __memcmp_z10
+#else
+# define MEMCMP_Z10 NULL
+#endif
+
+#if HAVE_MEMCMP_Z196
+# define MEMCMP_Z196 __memcmp_z196
+#else
+# define MEMCMP_Z196 NULL
+#endif
diff --git a/sysdeps/s390/ifunc-memcpy.h b/sysdeps/s390/ifunc-memcpy.h
new file mode 100644
index 0000000000..9518681ead
--- /dev/null
+++ b/sysdeps/s390/ifunc-memcpy.h
@@ -0,0 +1,122 @@
+/* memcpy variant information on S/390 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#if defined SHARED && defined USE_MULTIARCH && IS_IN (libc) \
+ && ! defined HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT
+# define HAVE_MEMCPY_IFUNC 1
+#else
+# define HAVE_MEMCPY_IFUNC 0
+#endif
+
+#if defined HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT
+# define MEMCPY_DEFAULT MEMCPY_Z196
+# define MEMPCPY_DEFAULT MEMPCPY_Z196
+# define HAVE_MEMCPY_Z900_G5 0
+# define HAVE_MEMCPY_Z10 0
+# define HAVE_MEMCPY_Z196 1
+#elif defined HAVE_S390_MIN_Z10_ZARCH_ASM_SUPPORT
+# define MEMCPY_DEFAULT MEMCPY_Z10
+# define MEMPCPY_DEFAULT MEMPCPY_Z10
+# define HAVE_MEMCPY_Z900_G5 0
+# define HAVE_MEMCPY_Z10 1
+# define HAVE_MEMCPY_Z196 HAVE_MEMCPY_IFUNC
+#else
+# define MEMCPY_DEFAULT MEMCPY_Z900_G5
+# define MEMPCPY_DEFAULT MEMPCPY_Z900_G5
+# define HAVE_MEMCPY_Z900_G5 1
+# define HAVE_MEMCPY_Z10 HAVE_MEMCPY_IFUNC
+# define HAVE_MEMCPY_Z196 HAVE_MEMCPY_IFUNC
+#endif
+
+#if defined SHARED && defined USE_MULTIARCH && IS_IN (libc) \
+ && ! defined HAVE_S390_MIN_ARCH13_ZARCH_ASM_SUPPORT
+# define HAVE_MEMMOVE_IFUNC 1
+#else
+# define HAVE_MEMMOVE_IFUNC 0
+#endif
+
+#ifdef HAVE_S390_VX_ASM_SUPPORT
+# define HAVE_MEMMOVE_IFUNC_AND_VX_SUPPORT HAVE_MEMMOVE_IFUNC
+#else
+# define HAVE_MEMMOVE_IFUNC_AND_VX_SUPPORT 0
+#endif
+
+#ifdef HAVE_S390_ARCH13_ASM_SUPPORT
+# define HAVE_MEMMOVE_IFUNC_AND_ARCH13_SUPPORT HAVE_MEMMOVE_IFUNC
+#else
+# define HAVE_MEMMOVE_IFUNC_AND_ARCH13_SUPPORT 0
+#endif
+
+#if defined HAVE_S390_MIN_ARCH13_ZARCH_ASM_SUPPORT
+# define MEMMOVE_DEFAULT MEMMOVE_ARCH13
+# define HAVE_MEMMOVE_C 0
+# define HAVE_MEMMOVE_Z13 0
+# define HAVE_MEMMOVE_ARCH13 1
+#elif defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define MEMMOVE_DEFAULT MEMMOVE_Z13
+# define HAVE_MEMMOVE_C 0
+# define HAVE_MEMMOVE_Z13 1
+# define HAVE_MEMMOVE_ARCH13 HAVE_MEMMOVE_IFUNC_AND_ARCH13_SUPPORT
+#else
+# define MEMMOVE_DEFAULT MEMMOVE_C
+# define HAVE_MEMMOVE_C 1
+# define HAVE_MEMMOVE_Z13 HAVE_MEMMOVE_IFUNC_AND_VX_SUPPORT
+# define HAVE_MEMMOVE_ARCH13 HAVE_MEMMOVE_IFUNC_AND_ARCH13_SUPPORT
+#endif
+
+#if HAVE_MEMCPY_Z900_G5
+# define MEMCPY_Z900_G5 __memcpy_default
+# define MEMPCPY_Z900_G5 __mempcpy_default
+#else
+# define MEMCPY_Z900_G5 NULL
+# define MEMPCPY_Z900_G5 NULL
+#endif
+
+#if HAVE_MEMCPY_Z10
+# define MEMCPY_Z10 __memcpy_z10
+# define MEMPCPY_Z10 __mempcpy_z10
+#else
+# define MEMCPY_Z10 NULL
+# define MEMPCPY_Z10 NULL
+#endif
+
+#if HAVE_MEMCPY_Z196
+# define MEMCPY_Z196 __memcpy_z196
+# define MEMPCPY_Z196 __mempcpy_z196
+#else
+# define MEMCPY_Z196 NULL
+# define MEMPCPY_Z196 NULL
+#endif
+
+#if HAVE_MEMMOVE_C
+# define MEMMOVE_C __memmove_c
+#else
+# define MEMMOVE_C NULL
+#endif
+
+#if HAVE_MEMMOVE_Z13
+# define MEMMOVE_Z13 __memmove_z13
+#else
+# define MEMMOVE_Z13 NULL
+#endif
+
+#if HAVE_MEMMOVE_ARCH13
+# define MEMMOVE_ARCH13 __memmove_arch13
+#else
+# define MEMMOVE_ARCH13 NULL
+#endif
diff --git a/sysdeps/s390/ifunc-memmem.h b/sysdeps/s390/ifunc-memmem.h
new file mode 100644
index 0000000000..de3e2c1011
--- /dev/null
+++ b/sysdeps/s390/ifunc-memmem.h
@@ -0,0 +1,76 @@
+/* memmem variant information on S/390 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#if defined USE_MULTIARCH && IS_IN (libc) \
+ && ! defined HAVE_S390_MIN_ARCH13_ZARCH_ASM_SUPPORT
+# define HAVE_MEMMEM_IFUNC 1
+#else
+# define HAVE_MEMMEM_IFUNC 0
+#endif
+
+#ifdef HAVE_S390_VX_ASM_SUPPORT
+# define HAVE_MEMMEM_IFUNC_AND_VX_SUPPORT HAVE_MEMMEM_IFUNC
+#else
+# define HAVE_MEMMEM_IFUNC_AND_VX_SUPPORT 0
+#endif
+
+#ifdef HAVE_S390_ARCH13_ASM_SUPPORT
+# define HAVE_MEMMEM_IFUNC_AND_ARCH13_SUPPORT HAVE_MEMMEM_IFUNC
+#else
+# define HAVE_MEMMEM_IFUNC_AND_ARCH13_SUPPORT 0
+#endif
+
+#if defined HAVE_S390_MIN_ARCH13_ZARCH_ASM_SUPPORT
+# define MEMMEM_DEFAULT MEMMEM_ARCH13
+# define HAVE_MEMMEM_C 0
+# define HAVE_MEMMEM_Z13 1
+# define MEMMEM_Z13_ONLY_USED_AS_FALLBACK 1
+# define HAVE_MEMMEM_ARCH13 1
+#elif defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define MEMMEM_DEFAULT MEMMEM_Z13
+# define HAVE_MEMMEM_C 0
+# define HAVE_MEMMEM_Z13 1
+# define HAVE_MEMMEM_ARCH13 HAVE_MEMMEM_IFUNC_AND_ARCH13_SUPPORT
+#else
+# define MEMMEM_DEFAULT MEMMEM_C
+# define HAVE_MEMMEM_C 1
+# define HAVE_MEMMEM_Z13 HAVE_MEMMEM_IFUNC_AND_VX_SUPPORT
+# define HAVE_MEMMEM_ARCH13 HAVE_MEMMEM_IFUNC_AND_ARCH13_SUPPORT
+#endif
+
+#ifndef MEMMEM_Z13_ONLY_USED_AS_FALLBACK
+# define MEMMEM_Z13_ONLY_USED_AS_FALLBACK 0
+#endif
+
+#if HAVE_MEMMEM_C
+# define MEMMEM_C __memmem_c
+#else
+# define MEMMEM_C NULL
+#endif
+
+#if HAVE_MEMMEM_Z13
+# define MEMMEM_Z13 __memmem_vx
+#else
+# define MEMMEM_Z13 NULL
+#endif
+
+#if HAVE_MEMMEM_ARCH13
+# define MEMMEM_ARCH13 __memmem_arch13
+#else
+# define MEMMEM_ARCH13 NULL
+#endif
diff --git a/sysdeps/s390/ifunc-memrchr.h b/sysdeps/s390/ifunc-memrchr.h
new file mode 100644
index 0000000000..5355e580e2
--- /dev/null
+++ b/sysdeps/s390/ifunc-memrchr.h
@@ -0,0 +1,52 @@
+/* memrchr variant information on S/390 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#if defined USE_MULTIARCH && IS_IN (libc) \
+ && ! defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define HAVE_MEMRCHR_IFUNC 1
+#else
+# define HAVE_MEMRCHR_IFUNC 0
+#endif
+
+#ifdef HAVE_S390_VX_ASM_SUPPORT
+# define HAVE_MEMRCHR_IFUNC_AND_VX_SUPPORT HAVE_MEMRCHR_IFUNC
+#else
+# define HAVE_MEMRCHR_IFUNC_AND_VX_SUPPORT 0
+#endif
+
+#if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define MEMRCHR_DEFAULT MEMRCHR_Z13
+# define HAVE_MEMRCHR_C 0
+# define HAVE_MEMRCHR_Z13 1
+#else
+# define MEMRCHR_DEFAULT MEMRCHR_C
+# define HAVE_MEMRCHR_C 1
+# define HAVE_MEMRCHR_Z13 HAVE_MEMRCHR_IFUNC_AND_VX_SUPPORT
+#endif
+
+#if HAVE_MEMRCHR_C
+# define MEMRCHR_C __memrchr_c
+#else
+# define MEMRCHR_C NULL
+#endif
+
+#if HAVE_MEMRCHR_Z13
+# define MEMRCHR_Z13 __memrchr_vx
+#else
+# define MEMRCHR_Z13 NULL
+#endif
diff --git a/sysdeps/s390/ifunc-memset.h b/sysdeps/s390/ifunc-memset.h
new file mode 100644
index 0000000000..171c7c243e
--- /dev/null
+++ b/sysdeps/s390/ifunc-memset.h
@@ -0,0 +1,74 @@
+/* memset variant information on S/390 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#if defined USE_MULTIARCH && IS_IN (libc) \
+ && ! defined HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT
+# define HAVE_MEMSET_IFUNC 1
+#else
+# define HAVE_MEMSET_IFUNC 0
+#endif
+
+#if defined HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT
+# define MEMSET_DEFAULT MEMSET_Z196
+# define BZERO_DEFAULT BZERO_Z196
+# define HAVE_MEMSET_Z900_G5 0
+# define HAVE_MEMSET_Z10 0
+# define HAVE_MEMSET_Z196 1
+#elif defined HAVE_S390_MIN_Z10_ZARCH_ASM_SUPPORT
+# define MEMSET_DEFAULT MEMSET_Z10
+# define BZERO_DEFAULT BZERO_Z10
+# define HAVE_MEMSET_Z900_G5 0
+# define HAVE_MEMSET_Z10 1
+# define HAVE_MEMSET_Z196 HAVE_MEMSET_IFUNC
+#else
+# define MEMSET_DEFAULT MEMSET_Z900_G5
+# define BZERO_DEFAULT BZERO_Z900_G5
+# define HAVE_MEMSET_Z900_G5 1
+# define HAVE_MEMSET_Z10 HAVE_MEMSET_IFUNC
+# define HAVE_MEMSET_Z196 HAVE_MEMSET_IFUNC
+#endif
+
+#if HAVE_MEMSET_Z10 || HAVE_MEMSET_Z196
+# define HAVE_MEMSET_MVCLE 1
+#else
+# define HAVE_MEMSET_MVCLE 0
+#endif
+
+#if HAVE_MEMSET_Z900_G5
+# define MEMSET_Z900_G5 __memset_default
+# define BZERO_Z900_G5 __bzero_default
+#else
+# define MEMSET_Z900_G5 NULL
+# define BZERO_Z900_G5 NULL
+#endif
+
+#if HAVE_MEMSET_Z10
+# define MEMSET_Z10 __memset_z10
+# define BZERO_Z10 __bzero_z10
+#else
+# define MEMSET_Z10 NULL
+# define BZERO_Z10 NULL
+#endif
+
+#if HAVE_MEMSET_Z196
+# define MEMSET_Z196 __memset_z196
+# define BZERO_Z196 __bzero_z196
+#else
+# define MEMSET_Z196 NULL
+# define BZERO_Z196 NULL
+#endif
diff --git a/sysdeps/s390/ifunc-rawmemchr.h b/sysdeps/s390/ifunc-rawmemchr.h
new file mode 100644
index 0000000000..bd70c1a347
--- /dev/null
+++ b/sysdeps/s390/ifunc-rawmemchr.h
@@ -0,0 +1,52 @@
+/* rawmemchr variant information on S/390 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#if defined USE_MULTIARCH && IS_IN (libc) \
+ && ! defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define HAVE_RAWMEMCHR_IFUNC 1
+#else
+# define HAVE_RAWMEMCHR_IFUNC 0
+#endif
+
+#ifdef HAVE_S390_VX_ASM_SUPPORT
+# define HAVE_RAWMEMCHR_IFUNC_AND_VX_SUPPORT HAVE_RAWMEMCHR_IFUNC
+#else
+# define HAVE_RAWMEMCHR_IFUNC_AND_VX_SUPPORT 0
+#endif
+
+#if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define RAWMEMCHR_DEFAULT RAWMEMCHR_Z13
+# define HAVE_RAWMEMCHR_C 0
+# define HAVE_RAWMEMCHR_Z13 1
+#else
+# define RAWMEMCHR_DEFAULT RAWMEMCHR_C
+# define HAVE_RAWMEMCHR_C 1
+# define HAVE_RAWMEMCHR_Z13 HAVE_RAWMEMCHR_IFUNC_AND_VX_SUPPORT
+#endif
+
+#if HAVE_RAWMEMCHR_C
+# define RAWMEMCHR_C __rawmemchr_c
+#else
+# define RAWMEMCHR_C NULL
+#endif
+
+#if HAVE_RAWMEMCHR_Z13
+# define RAWMEMCHR_Z13 __rawmemchr_vx
+#else
+# define RAWMEMCHR_Z13 NULL
+#endif
diff --git a/sysdeps/s390/ifunc-stpcpy.h b/sysdeps/s390/ifunc-stpcpy.h
new file mode 100644
index 0000000000..a9d1518a50
--- /dev/null
+++ b/sysdeps/s390/ifunc-stpcpy.h
@@ -0,0 +1,52 @@
+/* stpcpy variant information on S/390 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#if defined USE_MULTIARCH && IS_IN (libc) \
+ && ! defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define HAVE_STPCPY_IFUNC 1
+#else
+# define HAVE_STPCPY_IFUNC 0
+#endif
+
+#ifdef HAVE_S390_VX_ASM_SUPPORT
+# define HAVE_STPCPY_IFUNC_AND_VX_SUPPORT HAVE_STPCPY_IFUNC
+#else
+# define HAVE_STPCPY_IFUNC_AND_VX_SUPPORT 0
+#endif
+
+#if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define STPCPY_DEFAULT STPCPY_Z13
+# define HAVE_STPCPY_C 0
+# define HAVE_STPCPY_Z13 1
+#else
+# define STPCPY_DEFAULT STPCPY_C
+# define HAVE_STPCPY_C 1
+# define HAVE_STPCPY_Z13 HAVE_STPCPY_IFUNC_AND_VX_SUPPORT
+#endif
+
+#if HAVE_STPCPY_C
+# define STPCPY_C __stpcpy_c
+#else
+# define STPCPY_C NULL
+#endif
+
+#if HAVE_STPCPY_Z13
+# define STPCPY_Z13 __stpcpy_vx
+#else
+# define STPCPY_Z13 NULL
+#endif
diff --git a/sysdeps/s390/ifunc-stpncpy.h b/sysdeps/s390/ifunc-stpncpy.h
new file mode 100644
index 0000000000..7a2e65366b
--- /dev/null
+++ b/sysdeps/s390/ifunc-stpncpy.h
@@ -0,0 +1,52 @@
+/* stpncpy variant information on S/390 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#if defined USE_MULTIARCH && IS_IN (libc) \
+ && ! defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define HAVE_STPNCPY_IFUNC 1
+#else
+# define HAVE_STPNCPY_IFUNC 0
+#endif
+
+#ifdef HAVE_S390_VX_ASM_SUPPORT
+# define HAVE_STPNCPY_IFUNC_AND_VX_SUPPORT HAVE_STPNCPY_IFUNC
+#else
+# define HAVE_STPNCPY_IFUNC_AND_VX_SUPPORT 0
+#endif
+
+#if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define STPNCPY_DEFAULT STPNCPY_Z13
+# define HAVE_STPNCPY_C 0
+# define HAVE_STPNCPY_Z13 1
+#else
+# define STPNCPY_DEFAULT STPNCPY_C
+# define HAVE_STPNCPY_C 1
+# define HAVE_STPNCPY_Z13 HAVE_STPNCPY_IFUNC_AND_VX_SUPPORT
+#endif
+
+#if HAVE_STPNCPY_C
+# define STPNCPY_C __stpncpy_c
+#else
+# define STPNCPY_C NULL
+#endif
+
+#if HAVE_STPNCPY_Z13
+# define STPNCPY_Z13 __stpncpy_vx
+#else
+# define STPNCPY_Z13 NULL
+#endif
diff --git a/sysdeps/s390/ifunc-strcat.h b/sysdeps/s390/ifunc-strcat.h
new file mode 100644
index 0000000000..3bda4f9093
--- /dev/null
+++ b/sysdeps/s390/ifunc-strcat.h
@@ -0,0 +1,52 @@
+/* strcat variant information on S/390 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#if defined USE_MULTIARCH && IS_IN (libc) \
+ && ! defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define HAVE_STRCAT_IFUNC 1
+#else
+# define HAVE_STRCAT_IFUNC 0
+#endif
+
+#ifdef HAVE_S390_VX_ASM_SUPPORT
+# define HAVE_STRCAT_IFUNC_AND_VX_SUPPORT HAVE_STRCAT_IFUNC
+#else
+# define HAVE_STRCAT_IFUNC_AND_VX_SUPPORT 0
+#endif
+
+#if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define STRCAT_DEFAULT STRCAT_Z13
+# define HAVE_STRCAT_C 0
+# define HAVE_STRCAT_Z13 1
+#else
+# define STRCAT_DEFAULT STRCAT_C
+# define HAVE_STRCAT_C 1
+# define HAVE_STRCAT_Z13 HAVE_STRCAT_IFUNC_AND_VX_SUPPORT
+#endif
+
+#if HAVE_STRCAT_C
+# define STRCAT_C __strcat_c
+#else
+# define STRCAT_C NULL
+#endif
+
+#if HAVE_STRCAT_Z13
+# define STRCAT_Z13 __strcat_vx
+#else
+# define STRCAT_Z13 NULL
+#endif
diff --git a/sysdeps/s390/ifunc-strchr.h b/sysdeps/s390/ifunc-strchr.h
new file mode 100644
index 0000000000..650f593865
--- /dev/null
+++ b/sysdeps/s390/ifunc-strchr.h
@@ -0,0 +1,52 @@
+/* strchr variant information on S/390 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#if defined USE_MULTIARCH && IS_IN (libc) \
+ && ! defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define HAVE_STRCHR_IFUNC 1
+#else
+# define HAVE_STRCHR_IFUNC 0
+#endif
+
+#ifdef HAVE_S390_VX_ASM_SUPPORT
+# define HAVE_STRCHR_IFUNC_AND_VX_SUPPORT HAVE_STRCHR_IFUNC
+#else
+# define HAVE_STRCHR_IFUNC_AND_VX_SUPPORT 0
+#endif
+
+#if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define STRCHR_DEFAULT STRCHR_Z13
+# define HAVE_STRCHR_C 0
+# define HAVE_STRCHR_Z13 1
+#else
+# define STRCHR_DEFAULT STRCHR_C
+# define HAVE_STRCHR_C 1
+# define HAVE_STRCHR_Z13 HAVE_STRCHR_IFUNC_AND_VX_SUPPORT
+#endif
+
+#if HAVE_STRCHR_C
+# define STRCHR_C __strchr_c
+#else
+# define STRCHR_C NULL
+#endif
+
+#if HAVE_STRCHR_Z13
+# define STRCHR_Z13 __strchr_vx
+#else
+# define STRCHR_Z13 NULL
+#endif
diff --git a/sysdeps/s390/ifunc-strchrnul.h b/sysdeps/s390/ifunc-strchrnul.h
new file mode 100644
index 0000000000..d0a5909416
--- /dev/null
+++ b/sysdeps/s390/ifunc-strchrnul.h
@@ -0,0 +1,52 @@
+/* strchrnul variant information on S/390 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#if defined USE_MULTIARCH && IS_IN (libc) \
+ && ! defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define HAVE_STRCHRNUL_IFUNC 1
+#else
+# define HAVE_STRCHRNUL_IFUNC 0
+#endif
+
+#ifdef HAVE_S390_VX_ASM_SUPPORT
+# define HAVE_STRCHRNUL_IFUNC_AND_VX_SUPPORT HAVE_STRCHRNUL_IFUNC
+#else
+# define HAVE_STRCHRNUL_IFUNC_AND_VX_SUPPORT 0
+#endif
+
+#if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define STRCHRNUL_DEFAULT STRCHRNUL_Z13
+# define HAVE_STRCHRNUL_C 0
+# define HAVE_STRCHRNUL_Z13 1
+#else
+# define STRCHRNUL_DEFAULT STRCHRNUL_C
+# define HAVE_STRCHRNUL_C 1
+# define HAVE_STRCHRNUL_Z13 HAVE_STRCHRNUL_IFUNC_AND_VX_SUPPORT
+#endif
+
+#if HAVE_STRCHRNUL_C
+# define STRCHRNUL_C __strchrnul_c
+#else
+# define STRCHRNUL_C NULL
+#endif
+
+#if HAVE_STRCHRNUL_Z13
+# define STRCHRNUL_Z13 __strchrnul_vx
+#else
+# define STRCHRNUL_Z13 NULL
+#endif
diff --git a/sysdeps/s390/ifunc-strcmp.h b/sysdeps/s390/ifunc-strcmp.h
new file mode 100644
index 0000000000..f3751e8cc7
--- /dev/null
+++ b/sysdeps/s390/ifunc-strcmp.h
@@ -0,0 +1,52 @@
+/* strcmp variant information on S/390 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#if defined USE_MULTIARCH && IS_IN (libc) \
+ && ! defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define HAVE_STRCMP_IFUNC 1
+#else
+# define HAVE_STRCMP_IFUNC 0
+#endif
+
+#ifdef HAVE_S390_VX_ASM_SUPPORT
+# define HAVE_STRCMP_IFUNC_AND_VX_SUPPORT HAVE_STRCMP_IFUNC
+#else
+# define HAVE_STRCMP_IFUNC_AND_VX_SUPPORT 0
+#endif
+
+#if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define STRCMP_DEFAULT STRCMP_Z13
+# define HAVE_STRCMP_Z900_G5 0
+# define HAVE_STRCMP_Z13 1
+#else
+# define STRCMP_DEFAULT STRCMP_Z900_G5
+# define HAVE_STRCMP_Z900_G5 1
+# define HAVE_STRCMP_Z13 HAVE_STRCMP_IFUNC_AND_VX_SUPPORT
+#endif
+
+#if HAVE_STRCMP_Z900_G5
+# define STRCMP_Z900_G5 __strcmp_default
+#else
+# define STRCMP_Z900_G5 NULL
+#endif
+
+#if HAVE_STRCMP_Z13
+# define STRCMP_Z13 __strcmp_vx
+#else
+# define STRCMP_Z13 NULL
+#endif
diff --git a/sysdeps/s390/ifunc-strcpy.h b/sysdeps/s390/ifunc-strcpy.h
new file mode 100644
index 0000000000..ed1a6db616
--- /dev/null
+++ b/sysdeps/s390/ifunc-strcpy.h
@@ -0,0 +1,52 @@
+/* strcpy variant information on S/390 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#if defined USE_MULTIARCH && IS_IN (libc) \
+ && ! defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define HAVE_STRCPY_IFUNC 1
+#else
+# define HAVE_STRCPY_IFUNC 0
+#endif
+
+#ifdef HAVE_S390_VX_ASM_SUPPORT
+# define HAVE_STRCPY_IFUNC_AND_VX_SUPPORT HAVE_STRCPY_IFUNC
+#else
+# define HAVE_STRCPY_IFUNC_AND_VX_SUPPORT 0
+#endif
+
+#if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define STRCPY_DEFAULT STRCPY_Z13
+# define HAVE_STRCPY_Z900_G5 0
+# define HAVE_STRCPY_Z13 1
+#else
+# define STRCPY_DEFAULT STRCPY_Z900_G5
+# define HAVE_STRCPY_Z900_G5 1
+# define HAVE_STRCPY_Z13 HAVE_STRCPY_IFUNC_AND_VX_SUPPORT
+#endif
+
+#if HAVE_STRCPY_Z900_G5
+# define STRCPY_Z900_G5 __strcpy_default
+#else
+# define STRCPY_Z900_G5 NULL
+#endif
+
+#if HAVE_STRCPY_Z13
+# define STRCPY_Z13 __strcpy_vx
+#else
+# define STRCPY_Z13 NULL
+#endif
diff --git a/sysdeps/s390/ifunc-strcspn.h b/sysdeps/s390/ifunc-strcspn.h
new file mode 100644
index 0000000000..3d80062cc5
--- /dev/null
+++ b/sysdeps/s390/ifunc-strcspn.h
@@ -0,0 +1,52 @@
+/* strcspn variant information on S/390 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#if defined USE_MULTIARCH && IS_IN (libc) \
+ && ! defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define HAVE_STRCSPN_IFUNC 1
+#else
+# define HAVE_STRCSPN_IFUNC 0
+#endif
+
+#ifdef HAVE_S390_VX_ASM_SUPPORT
+# define HAVE_STRCSPN_IFUNC_AND_VX_SUPPORT HAVE_STRCSPN_IFUNC
+#else
+# define HAVE_STRCSPN_IFUNC_AND_VX_SUPPORT 0
+#endif
+
+#if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define STRCSPN_DEFAULT STRCSPN_Z13
+# define HAVE_STRCSPN_C 0
+# define HAVE_STRCSPN_Z13 1
+#else
+# define STRCSPN_DEFAULT STRCSPN_C
+# define HAVE_STRCSPN_C 1
+# define HAVE_STRCSPN_Z13 HAVE_STRCSPN_IFUNC_AND_VX_SUPPORT
+#endif
+
+#if HAVE_STRCSPN_C
+# define STRCSPN_C __strcspn_c
+#else
+# define STRCSPN_C NULL
+#endif
+
+#if HAVE_STRCSPN_Z13
+# define STRCSPN_Z13 __strcspn_vx
+#else
+# define STRCSPN_Z13 NULL
+#endif
diff --git a/sysdeps/s390/ifunc-strlen.h b/sysdeps/s390/ifunc-strlen.h
new file mode 100644
index 0000000000..5660938589
--- /dev/null
+++ b/sysdeps/s390/ifunc-strlen.h
@@ -0,0 +1,52 @@
+/* strlen variant information on S/390 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#if defined USE_MULTIARCH && IS_IN (libc) \
+ && ! defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define HAVE_STRLEN_IFUNC 1
+#else
+# define HAVE_STRLEN_IFUNC 0
+#endif
+
+#ifdef HAVE_S390_VX_ASM_SUPPORT
+# define HAVE_STRLEN_IFUNC_AND_VX_SUPPORT HAVE_STRLEN_IFUNC
+#else
+# define HAVE_STRLEN_IFUNC_AND_VX_SUPPORT 0
+#endif
+
+#if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define STRLEN_DEFAULT STRLEN_Z13
+# define HAVE_STRLEN_C 0
+# define HAVE_STRLEN_Z13 1
+#else
+# define STRLEN_DEFAULT STRLEN_C
+# define HAVE_STRLEN_C 1
+# define HAVE_STRLEN_Z13 HAVE_STRLEN_IFUNC_AND_VX_SUPPORT
+#endif
+
+#if HAVE_STRLEN_C
+# define STRLEN_C __strlen_c
+#else
+# define STRLEN_C NULL
+#endif
+
+#if HAVE_STRLEN_Z13
+# define STRLEN_Z13 __strlen_vx
+#else
+# define STRLEN_Z13 NULL
+#endif
diff --git a/sysdeps/s390/ifunc-strncat.h b/sysdeps/s390/ifunc-strncat.h
new file mode 100644
index 0000000000..bc07c70841
--- /dev/null
+++ b/sysdeps/s390/ifunc-strncat.h
@@ -0,0 +1,52 @@
+/* strncat variant information on S/390 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#if defined USE_MULTIARCH && IS_IN (libc) \
+ && ! defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define HAVE_STRNCAT_IFUNC 1
+#else
+# define HAVE_STRNCAT_IFUNC 0
+#endif
+
+#ifdef HAVE_S390_VX_ASM_SUPPORT
+# define HAVE_STRNCAT_IFUNC_AND_VX_SUPPORT HAVE_STRNCAT_IFUNC
+#else
+# define HAVE_STRNCAT_IFUNC_AND_VX_SUPPORT 0
+#endif
+
+#if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define STRNCAT_DEFAULT STRNCAT_Z13
+# define HAVE_STRNCAT_C 0
+# define HAVE_STRNCAT_Z13 1
+#else
+# define STRNCAT_DEFAULT STRNCAT_C
+# define HAVE_STRNCAT_C 1
+# define HAVE_STRNCAT_Z13 HAVE_STRNCAT_IFUNC_AND_VX_SUPPORT
+#endif
+
+#if HAVE_STRNCAT_C
+# define STRNCAT_C __strncat_c
+#else
+# define STRNCAT_C NULL
+#endif
+
+#if HAVE_STRNCAT_Z13
+# define STRNCAT_Z13 __strncat_vx
+#else
+# define STRNCAT_Z13 NULL
+#endif
diff --git a/sysdeps/s390/ifunc-strncmp.h b/sysdeps/s390/ifunc-strncmp.h
new file mode 100644
index 0000000000..d630601de8
--- /dev/null
+++ b/sysdeps/s390/ifunc-strncmp.h
@@ -0,0 +1,52 @@
+/* strncmp variant information on S/390 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#if defined USE_MULTIARCH && IS_IN (libc) \
+ && ! defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define HAVE_STRNCMP_IFUNC 1
+#else
+# define HAVE_STRNCMP_IFUNC 0
+#endif
+
+#ifdef HAVE_S390_VX_ASM_SUPPORT
+# define HAVE_STRNCMP_IFUNC_AND_VX_SUPPORT HAVE_STRNCMP_IFUNC
+#else
+# define HAVE_STRNCMP_IFUNC_AND_VX_SUPPORT 0
+#endif
+
+#if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define STRNCMP_DEFAULT STRNCMP_Z13
+# define HAVE_STRNCMP_C 0
+# define HAVE_STRNCMP_Z13 1
+#else
+# define STRNCMP_DEFAULT STRNCMP_C
+# define HAVE_STRNCMP_C 1
+# define HAVE_STRNCMP_Z13 HAVE_STRNCMP_IFUNC_AND_VX_SUPPORT
+#endif
+
+#if HAVE_STRNCMP_C
+# define STRNCMP_C __strncmp_c
+#else
+# define STRNCMP_C NULL
+#endif
+
+#if HAVE_STRNCMP_Z13
+# define STRNCMP_Z13 __strncmp_vx
+#else
+# define STRNCMP_Z13 NULL
+#endif
diff --git a/sysdeps/s390/ifunc-strncpy.h b/sysdeps/s390/ifunc-strncpy.h
new file mode 100644
index 0000000000..e37df3dba3
--- /dev/null
+++ b/sysdeps/s390/ifunc-strncpy.h
@@ -0,0 +1,52 @@
+/* strncpy variant information on S/390 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#if defined USE_MULTIARCH && IS_IN (libc) \
+ && ! defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define HAVE_STRNCPY_IFUNC 1
+#else
+# define HAVE_STRNCPY_IFUNC 0
+#endif
+
+#ifdef HAVE_S390_VX_ASM_SUPPORT
+# define HAVE_STRNCPY_IFUNC_AND_VX_SUPPORT HAVE_STRNCPY_IFUNC
+#else
+# define HAVE_STRNCPY_IFUNC_AND_VX_SUPPORT 0
+#endif
+
+#if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define STRNCPY_DEFAULT STRNCPY_Z13
+# define HAVE_STRNCPY_Z900_G5 0
+# define HAVE_STRNCPY_Z13 1
+#else
+# define STRNCPY_DEFAULT STRNCPY_Z900_G5
+# define HAVE_STRNCPY_Z900_G5 1
+# define HAVE_STRNCPY_Z13 HAVE_STRNCPY_IFUNC_AND_VX_SUPPORT
+#endif
+
+#if HAVE_STRNCPY_Z900_G5
+# define STRNCPY_Z900_G5 __strncpy_default
+#else
+# define STRNCPY_Z900_G5 NULL
+#endif
+
+#if HAVE_STRNCPY_Z13
+# define STRNCPY_Z13 __strncpy_vx
+#else
+# define STRNCPY_Z13 NULL
+#endif
diff --git a/sysdeps/s390/ifunc-strnlen.h b/sysdeps/s390/ifunc-strnlen.h
new file mode 100644
index 0000000000..f0e8fc84d8
--- /dev/null
+++ b/sysdeps/s390/ifunc-strnlen.h
@@ -0,0 +1,52 @@
+/* strnlen variant information on S/390 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#if defined USE_MULTIARCH && IS_IN (libc) \
+ && ! defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define HAVE_STRNLEN_IFUNC 1
+#else
+# define HAVE_STRNLEN_IFUNC 0
+#endif
+
+#ifdef HAVE_S390_VX_ASM_SUPPORT
+# define HAVE_STRNLEN_IFUNC_AND_VX_SUPPORT HAVE_STRNLEN_IFUNC
+#else
+# define HAVE_STRNLEN_IFUNC_AND_VX_SUPPORT 0
+#endif
+
+#if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define STRNLEN_DEFAULT STRNLEN_Z13
+# define HAVE_STRNLEN_C 0
+# define HAVE_STRNLEN_Z13 1
+#else
+# define STRNLEN_DEFAULT STRNLEN_C
+# define HAVE_STRNLEN_C 1
+# define HAVE_STRNLEN_Z13 HAVE_STRNLEN_IFUNC_AND_VX_SUPPORT
+#endif
+
+#if HAVE_STRNLEN_C
+# define STRNLEN_C __strnlen_c
+#else
+# define STRNLEN_C NULL
+#endif
+
+#if HAVE_STRNLEN_Z13
+# define STRNLEN_Z13 __strnlen_vx
+#else
+# define STRNLEN_Z13 NULL
+#endif
diff --git a/sysdeps/s390/ifunc-strpbrk.h b/sysdeps/s390/ifunc-strpbrk.h
new file mode 100644
index 0000000000..f3f869b589
--- /dev/null
+++ b/sysdeps/s390/ifunc-strpbrk.h
@@ -0,0 +1,52 @@
+/* strpbrk variant information on S/390 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#if defined USE_MULTIARCH && IS_IN (libc) \
+ && ! defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define HAVE_STRPBRK_IFUNC 1
+#else
+# define HAVE_STRPBRK_IFUNC 0
+#endif
+
+#ifdef HAVE_S390_VX_ASM_SUPPORT
+# define HAVE_STRPBRK_IFUNC_AND_VX_SUPPORT HAVE_STRPBRK_IFUNC
+#else
+# define HAVE_STRPBRK_IFUNC_AND_VX_SUPPORT 0
+#endif
+
+#if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define STRPBRK_DEFAULT STRPBRK_Z13
+# define HAVE_STRPBRK_C 0
+# define HAVE_STRPBRK_Z13 1
+#else
+# define STRPBRK_DEFAULT STRPBRK_C
+# define HAVE_STRPBRK_C 1
+# define HAVE_STRPBRK_Z13 HAVE_STRPBRK_IFUNC_AND_VX_SUPPORT
+#endif
+
+#if HAVE_STRPBRK_C
+# define STRPBRK_C __strpbrk_c
+#else
+# define STRPBRK_C NULL
+#endif
+
+#if HAVE_STRPBRK_Z13
+# define STRPBRK_Z13 __strpbrk_vx
+#else
+# define STRPBRK_Z13 NULL
+#endif
diff --git a/sysdeps/s390/ifunc-strrchr.h b/sysdeps/s390/ifunc-strrchr.h
new file mode 100644
index 0000000000..666c2a750a
--- /dev/null
+++ b/sysdeps/s390/ifunc-strrchr.h
@@ -0,0 +1,52 @@
+/* strrchr variant information on S/390 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#if defined USE_MULTIARCH && IS_IN (libc) \
+ && ! defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define HAVE_STRRCHR_IFUNC 1
+#else
+# define HAVE_STRRCHR_IFUNC 0
+#endif
+
+#ifdef HAVE_S390_VX_ASM_SUPPORT
+# define HAVE_STRRCHR_IFUNC_AND_VX_SUPPORT HAVE_STRRCHR_IFUNC
+#else
+# define HAVE_STRRCHR_IFUNC_AND_VX_SUPPORT 0
+#endif
+
+#if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define STRRCHR_DEFAULT STRRCHR_Z13
+# define HAVE_STRRCHR_C 0
+# define HAVE_STRRCHR_Z13 1
+#else
+# define STRRCHR_DEFAULT STRRCHR_C
+# define HAVE_STRRCHR_C 1
+# define HAVE_STRRCHR_Z13 HAVE_STRRCHR_IFUNC_AND_VX_SUPPORT
+#endif
+
+#if HAVE_STRRCHR_C
+# define STRRCHR_C __strrchr_c
+#else
+# define STRRCHR_C NULL
+#endif
+
+#if HAVE_STRRCHR_Z13
+# define STRRCHR_Z13 __strrchr_vx
+#else
+# define STRRCHR_Z13 NULL
+#endif
diff --git a/sysdeps/s390/ifunc-strspn.h b/sysdeps/s390/ifunc-strspn.h
new file mode 100644
index 0000000000..11f553087b
--- /dev/null
+++ b/sysdeps/s390/ifunc-strspn.h
@@ -0,0 +1,52 @@
+/* strspn variant information on S/390 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#if defined USE_MULTIARCH && IS_IN (libc) \
+ && ! defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define HAVE_STRSPN_IFUNC 1
+#else
+# define HAVE_STRSPN_IFUNC 0
+#endif
+
+#ifdef HAVE_S390_VX_ASM_SUPPORT
+# define HAVE_STRSPN_IFUNC_AND_VX_SUPPORT HAVE_STRSPN_IFUNC
+#else
+# define HAVE_STRSPN_IFUNC_AND_VX_SUPPORT 0
+#endif
+
+#if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define STRSPN_DEFAULT STRSPN_Z13
+# define HAVE_STRSPN_C 0
+# define HAVE_STRSPN_Z13 1
+#else
+# define STRSPN_DEFAULT STRSPN_C
+# define HAVE_STRSPN_C 1
+# define HAVE_STRSPN_Z13 HAVE_STRSPN_IFUNC_AND_VX_SUPPORT
+#endif
+
+#if HAVE_STRSPN_C
+# define STRSPN_C __strspn_c
+#else
+# define STRSPN_C NULL
+#endif
+
+#if HAVE_STRSPN_Z13
+# define STRSPN_Z13 __strspn_vx
+#else
+# define STRSPN_Z13 NULL
+#endif
diff --git a/sysdeps/s390/ifunc-strstr.h b/sysdeps/s390/ifunc-strstr.h
new file mode 100644
index 0000000000..40501e8267
--- /dev/null
+++ b/sysdeps/s390/ifunc-strstr.h
@@ -0,0 +1,76 @@
+/* strstr variant information on S/390 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#if defined USE_MULTIARCH && IS_IN (libc) \
+ && ! defined HAVE_S390_MIN_ARCH13_ZARCH_ASM_SUPPORT
+# define HAVE_STRSTR_IFUNC 1
+#else
+# define HAVE_STRSTR_IFUNC 0
+#endif
+
+#ifdef HAVE_S390_VX_ASM_SUPPORT
+# define HAVE_STRSTR_IFUNC_AND_VX_SUPPORT HAVE_STRSTR_IFUNC
+#else
+# define HAVE_STRSTR_IFUNC_AND_VX_SUPPORT 0
+#endif
+
+#ifdef HAVE_S390_ARCH13_ASM_SUPPORT
+# define HAVE_STRSTR_IFUNC_AND_ARCH13_SUPPORT HAVE_STRSTR_IFUNC
+#else
+# define HAVE_STRSTR_IFUNC_AND_ARCH13_SUPPORT 0
+#endif
+
+#if defined HAVE_S390_MIN_ARCH13_ZARCH_ASM_SUPPORT
+# define STRSTR_DEFAULT STRSTR_ARCH13
+# define HAVE_STRSTR_C 0
+# define HAVE_STRSTR_Z13 1
+# define STRSTR_Z13_ONLY_USED_AS_FALLBACK 1
+# define HAVE_STRSTR_ARCH13 1
+#elif defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define STRSTR_DEFAULT STRSTR_Z13
+# define HAVE_STRSTR_C 0
+# define HAVE_STRSTR_Z13 1
+# define HAVE_STRSTR_ARCH13 HAVE_STRSTR_IFUNC_AND_ARCH13_SUPPORT
+#else
+# define STRSTR_DEFAULT STRSTR_C
+# define HAVE_STRSTR_C 1
+# define HAVE_STRSTR_Z13 HAVE_STRSTR_IFUNC_AND_VX_SUPPORT
+# define HAVE_STRSTR_ARCH13 HAVE_STRSTR_IFUNC_AND_ARCH13_SUPPORT
+#endif
+
+#ifndef STRSTR_Z13_ONLY_USED_AS_FALLBACK
+# define STRSTR_Z13_ONLY_USED_AS_FALLBACK 0
+#endif
+
+#if HAVE_STRSTR_C
+# define STRSTR_C __strstr_c
+#else
+# define STRSTR_C NULL
+#endif
+
+#if HAVE_STRSTR_Z13
+# define STRSTR_Z13 __strstr_vx
+#else
+# define STRSTR_Z13 NULL
+#endif
+
+#if HAVE_STRSTR_ARCH13
+# define STRSTR_ARCH13 __strstr_arch13
+#else
+# define STRSTR_ARCH13 NULL
+#endif
diff --git a/sysdeps/s390/ifunc-wcpcpy.h b/sysdeps/s390/ifunc-wcpcpy.h
new file mode 100644
index 0000000000..522045fdef
--- /dev/null
+++ b/sysdeps/s390/ifunc-wcpcpy.h
@@ -0,0 +1,53 @@
+/* wcpcpy variant information on S/390 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#if defined USE_MULTIARCH && IS_IN (libc) \
+ && ! defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define HAVE_WCPCPY_IFUNC 1
+#else
+# define HAVE_WCPCPY_IFUNC 0
+#endif
+
+#ifdef HAVE_S390_VX_ASM_SUPPORT
+# define HAVE_WCPCPY_IFUNC_AND_VX_SUPPORT HAVE_WCPCPY_IFUNC
+#else
+# define HAVE_WCPCPY_IFUNC_AND_VX_SUPPORT 0
+#endif
+
+#if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define WCPCPY_DEFAULT WCPCPY_Z13
+/* The z13 ifunc variant is using the common code variant as fallback! */
+# define HAVE_WCPCPY_C 1
+# define HAVE_WCPCPY_Z13 1
+#else
+# define WCPCPY_DEFAULT WCPCPY_C
+# define HAVE_WCPCPY_C 1
+# define HAVE_WCPCPY_Z13 HAVE_WCPCPY_IFUNC_AND_VX_SUPPORT
+#endif
+
+#if HAVE_WCPCPY_C
+# define WCPCPY_C __wcpcpy_c
+#else
+# define WCPCPY_C NULL
+#endif
+
+#if HAVE_WCPCPY_Z13
+# define WCPCPY_Z13 __wcpcpy_vx
+#else
+# define WCPCPY_Z13 NULL
+#endif
diff --git a/sysdeps/s390/ifunc-wcpncpy.h b/sysdeps/s390/ifunc-wcpncpy.h
new file mode 100644
index 0000000000..ca52698d6b
--- /dev/null
+++ b/sysdeps/s390/ifunc-wcpncpy.h
@@ -0,0 +1,53 @@
+/* wcpncpy variant information on S/390 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#if defined USE_MULTIARCH && IS_IN (libc) \
+ && ! defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define HAVE_WCPNCPY_IFUNC 1
+#else
+# define HAVE_WCPNCPY_IFUNC 0
+#endif
+
+#ifdef HAVE_S390_VX_ASM_SUPPORT
+# define HAVE_WCPNCPY_IFUNC_AND_VX_SUPPORT HAVE_WCPNCPY_IFUNC
+#else
+# define HAVE_WCPNCPY_IFUNC_AND_VX_SUPPORT 0
+#endif
+
+#if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define WCPNCPY_DEFAULT WCPNCPY_Z13
+/* The z13 ifunc variant is using the common code variant as fallback! */
+# define HAVE_WCPNCPY_C 1
+# define HAVE_WCPNCPY_Z13 1
+#else
+# define WCPNCPY_DEFAULT WCPNCPY_C
+# define HAVE_WCPNCPY_C 1
+# define HAVE_WCPNCPY_Z13 HAVE_WCPNCPY_IFUNC_AND_VX_SUPPORT
+#endif
+
+#if HAVE_WCPNCPY_C
+# define WCPNCPY_C __wcpncpy_c
+#else
+# define WCPNCPY_C NULL
+#endif
+
+#if HAVE_WCPNCPY_Z13
+# define WCPNCPY_Z13 __wcpncpy_vx
+#else
+# define WCPNCPY_Z13 NULL
+#endif
diff --git a/sysdeps/s390/ifunc-wcscat.h b/sysdeps/s390/ifunc-wcscat.h
new file mode 100644
index 0000000000..bf0f88e27b
--- /dev/null
+++ b/sysdeps/s390/ifunc-wcscat.h
@@ -0,0 +1,53 @@
+/* wcscat variant information on S/390 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#if defined USE_MULTIARCH && IS_IN (libc) \
+ && ! defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define HAVE_WCSCAT_IFUNC 1
+#else
+# define HAVE_WCSCAT_IFUNC 0
+#endif
+
+#ifdef HAVE_S390_VX_ASM_SUPPORT
+# define HAVE_WCSCAT_IFUNC_AND_VX_SUPPORT HAVE_WCSCAT_IFUNC
+#else
+# define HAVE_WCSCAT_IFUNC_AND_VX_SUPPORT 0
+#endif
+
+#if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define WCSCAT_DEFAULT WCSCAT_Z13
+/* The z13 ifunc variant is using the common code variant as fallback! */
+# define HAVE_WCSCAT_C 1
+# define HAVE_WCSCAT_Z13 1
+#else
+# define WCSCAT_DEFAULT WCSCAT_C
+# define HAVE_WCSCAT_C 1
+# define HAVE_WCSCAT_Z13 HAVE_WCSCAT_IFUNC_AND_VX_SUPPORT
+#endif
+
+#if HAVE_WCSCAT_C
+# define WCSCAT_C __wcscat_c
+#else
+# define WCSCAT_C NULL
+#endif
+
+#if HAVE_WCSCAT_Z13
+# define WCSCAT_Z13 __wcscat_vx
+#else
+# define WCSCAT_Z13 NULL
+#endif
diff --git a/sysdeps/s390/ifunc-wcschr.h b/sysdeps/s390/ifunc-wcschr.h
new file mode 100644
index 0000000000..7403ae8702
--- /dev/null
+++ b/sysdeps/s390/ifunc-wcschr.h
@@ -0,0 +1,53 @@
+/* wcschr variant information on S/390 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#if defined USE_MULTIARCH && IS_IN (libc) \
+ && ! defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define HAVE_WCSCHR_IFUNC 1
+#else
+# define HAVE_WCSCHR_IFUNC 0
+#endif
+
+#ifdef HAVE_S390_VX_ASM_SUPPORT
+# define HAVE_WCSCHR_IFUNC_AND_VX_SUPPORT HAVE_WCSCHR_IFUNC
+#else
+# define HAVE_WCSCHR_IFUNC_AND_VX_SUPPORT 0
+#endif
+
+#if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define WCSCHR_DEFAULT WCSCHR_Z13
+/* The z13 ifunc variant is using the common code variant as fallback! */
+# define HAVE_WCSCHR_C 1
+# define HAVE_WCSCHR_Z13 1
+#else
+# define WCSCHR_DEFAULT WCSCHR_C
+# define HAVE_WCSCHR_C 1
+# define HAVE_WCSCHR_Z13 HAVE_WCSCHR_IFUNC_AND_VX_SUPPORT
+#endif
+
+#if HAVE_WCSCHR_C
+# define WCSCHR_C __wcschr_c
+#else
+# define WCSCHR_C NULL
+#endif
+
+#if HAVE_WCSCHR_Z13
+# define WCSCHR_Z13 __wcschr_vx
+#else
+# define WCSCHR_Z13 NULL
+#endif
diff --git a/sysdeps/s390/ifunc-wcschrnul.h b/sysdeps/s390/ifunc-wcschrnul.h
new file mode 100644
index 0000000000..b81ed06f8f
--- /dev/null
+++ b/sysdeps/s390/ifunc-wcschrnul.h
@@ -0,0 +1,53 @@
+/* wcschrnul variant information on S/390 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#if defined USE_MULTIARCH && IS_IN (libc) \
+ && ! defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define HAVE_WCSCHRNUL_IFUNC 1
+#else
+# define HAVE_WCSCHRNUL_IFUNC 0
+#endif
+
+#ifdef HAVE_S390_VX_ASM_SUPPORT
+# define HAVE_WCSCHRNUL_IFUNC_AND_VX_SUPPORT HAVE_WCSCHRNUL_IFUNC
+#else
+# define HAVE_WCSCHRNUL_IFUNC_AND_VX_SUPPORT 0
+#endif
+
+#if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define WCSCHRNUL_DEFAULT WCSCHRNUL_Z13
+/* The z13 ifunc variant is using the common code variant as fallback! */
+# define HAVE_WCSCHRNUL_C 1
+# define HAVE_WCSCHRNUL_Z13 1
+#else
+# define WCSCHRNUL_DEFAULT WCSCHRNUL_C
+# define HAVE_WCSCHRNUL_C 1
+# define HAVE_WCSCHRNUL_Z13 HAVE_WCSCHRNUL_IFUNC_AND_VX_SUPPORT
+#endif
+
+#if HAVE_WCSCHRNUL_C
+# define WCSCHRNUL_C __wcschrnul_c
+#else
+# define WCSCHRNUL_C NULL
+#endif
+
+#if HAVE_WCSCHRNUL_Z13
+# define WCSCHRNUL_Z13 __wcschrnul_vx
+#else
+# define WCSCHRNUL_Z13 NULL
+#endif
diff --git a/sysdeps/s390/ifunc-wcscmp.h b/sysdeps/s390/ifunc-wcscmp.h
new file mode 100644
index 0000000000..6d0e7a2485
--- /dev/null
+++ b/sysdeps/s390/ifunc-wcscmp.h
@@ -0,0 +1,52 @@
+/* wcscmp variant information on S/390 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#if defined USE_MULTIARCH && IS_IN (libc) \
+ && ! defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define HAVE_WCSCMP_IFUNC 1
+#else
+# define HAVE_WCSCMP_IFUNC 0
+#endif
+
+#ifdef HAVE_S390_VX_ASM_SUPPORT
+# define HAVE_WCSCMP_IFUNC_AND_VX_SUPPORT HAVE_WCSCMP_IFUNC
+#else
+# define HAVE_WCSCMP_IFUNC_AND_VX_SUPPORT 0
+#endif
+
+#if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define WCSCMP_DEFAULT WCSCMP_Z13
+# define HAVE_WCSCMP_C 0
+# define HAVE_WCSCMP_Z13 1
+#else
+# define WCSCMP_DEFAULT WCSCMP_C
+# define HAVE_WCSCMP_C 1
+# define HAVE_WCSCMP_Z13 HAVE_WCSCMP_IFUNC_AND_VX_SUPPORT
+#endif
+
+#if HAVE_WCSCMP_C
+# define WCSCMP_C __wcscmp_c
+#else
+# define WCSCMP_C NULL
+#endif
+
+#if HAVE_WCSCMP_Z13
+# define WCSCMP_Z13 __wcscmp_vx
+#else
+# define WCSCMP_Z13 NULL
+#endif
diff --git a/sysdeps/s390/ifunc-wcscpy.h b/sysdeps/s390/ifunc-wcscpy.h
new file mode 100644
index 0000000000..732f7f3416
--- /dev/null
+++ b/sysdeps/s390/ifunc-wcscpy.h
@@ -0,0 +1,53 @@
+/* wcscpy variant information on S/390 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#if defined USE_MULTIARCH && IS_IN (libc) \
+ && ! defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define HAVE_WCSCPY_IFUNC 1
+#else
+# define HAVE_WCSCPY_IFUNC 0
+#endif
+
+#ifdef HAVE_S390_VX_ASM_SUPPORT
+# define HAVE_WCSCPY_IFUNC_AND_VX_SUPPORT HAVE_WCSCPY_IFUNC
+#else
+# define HAVE_WCSCPY_IFUNC_AND_VX_SUPPORT 0
+#endif
+
+#if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define WCSCPY_DEFAULT WCSCPY_Z13
+/* The z13 ifunc variant is using the common code variant as fallback! */
+# define HAVE_WCSCPY_C 1
+# define HAVE_WCSCPY_Z13 1
+#else
+# define WCSCPY_DEFAULT WCSCPY_C
+# define HAVE_WCSCPY_C 1
+# define HAVE_WCSCPY_Z13 HAVE_WCSCPY_IFUNC_AND_VX_SUPPORT
+#endif
+
+#if HAVE_WCSCPY_C
+# define WCSCPY_C __wcscpy_c
+#else
+# define WCSCPY_C NULL
+#endif
+
+#if HAVE_WCSCPY_Z13
+# define WCSCPY_Z13 __wcscpy_vx
+#else
+# define WCSCPY_Z13 NULL
+#endif
diff --git a/sysdeps/s390/ifunc-wcscspn.h b/sysdeps/s390/ifunc-wcscspn.h
new file mode 100644
index 0000000000..cdde7039f4
--- /dev/null
+++ b/sysdeps/s390/ifunc-wcscspn.h
@@ -0,0 +1,53 @@
+/* wcscspn variant information on S/390 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#if defined USE_MULTIARCH && IS_IN (libc) \
+ && ! defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define HAVE_WCSCSPN_IFUNC 1
+#else
+# define HAVE_WCSCSPN_IFUNC 0
+#endif
+
+#ifdef HAVE_S390_VX_ASM_SUPPORT
+# define HAVE_WCSCSPN_IFUNC_AND_VX_SUPPORT HAVE_WCSCSPN_IFUNC
+#else
+# define HAVE_WCSCSPN_IFUNC_AND_VX_SUPPORT 0
+#endif
+
+#if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define WCSCSPN_DEFAULT WCSCSPN_Z13
+/* The z13 ifunc variant is using the common code variant as fallback! */
+# define HAVE_WCSCSPN_C 1
+# define HAVE_WCSCSPN_Z13 1
+#else
+# define WCSCSPN_DEFAULT WCSCSPN_C
+# define HAVE_WCSCSPN_C 1
+# define HAVE_WCSCSPN_Z13 HAVE_WCSCSPN_IFUNC_AND_VX_SUPPORT
+#endif
+
+#if HAVE_WCSCSPN_C
+# define WCSCSPN_C __wcscspn_c
+#else
+# define WCSCSPN_C NULL
+#endif
+
+#if HAVE_WCSCSPN_Z13
+# define WCSCSPN_Z13 __wcscspn_vx
+#else
+# define WCSCSPN_Z13 NULL
+#endif
diff --git a/sysdeps/s390/ifunc-wcslen.h b/sysdeps/s390/ifunc-wcslen.h
new file mode 100644
index 0000000000..664e272578
--- /dev/null
+++ b/sysdeps/s390/ifunc-wcslen.h
@@ -0,0 +1,53 @@
+/* wcslen variant information on S/390 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#if defined USE_MULTIARCH && IS_IN (libc) \
+ && ! defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define HAVE_WCSLEN_IFUNC 1
+#else
+# define HAVE_WCSLEN_IFUNC 0
+#endif
+
+#ifdef HAVE_S390_VX_ASM_SUPPORT
+# define HAVE_WCSLEN_IFUNC_AND_VX_SUPPORT HAVE_WCSLEN_IFUNC
+#else
+# define HAVE_WCSLEN_IFUNC_AND_VX_SUPPORT 0
+#endif
+
+#if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define WCSLEN_DEFAULT WCSLEN_Z13
+/* The z13 ifunc variant is using the common code variant as fallback! */
+# define HAVE_WCSLEN_C 1
+# define HAVE_WCSLEN_Z13 1
+#else
+# define WCSLEN_DEFAULT WCSLEN_C
+# define HAVE_WCSLEN_C 1
+# define HAVE_WCSLEN_Z13 HAVE_WCSLEN_IFUNC_AND_VX_SUPPORT
+#endif
+
+#if HAVE_WCSLEN_C
+# define WCSLEN_C __wcslen_c
+#else
+# define WCSLEN_C NULL
+#endif
+
+#if HAVE_WCSLEN_Z13
+# define WCSLEN_Z13 __wcslen_vx
+#else
+# define WCSLEN_Z13 NULL
+#endif
diff --git a/sysdeps/s390/ifunc-wcsncat.h b/sysdeps/s390/ifunc-wcsncat.h
new file mode 100644
index 0000000000..f58c92dfee
--- /dev/null
+++ b/sysdeps/s390/ifunc-wcsncat.h
@@ -0,0 +1,53 @@
+/* wcsncat variant information on S/390 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#if defined USE_MULTIARCH && IS_IN (libc) \
+ && ! defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define HAVE_WCSNCAT_IFUNC 1
+#else
+# define HAVE_WCSNCAT_IFUNC 0
+#endif
+
+#ifdef HAVE_S390_VX_ASM_SUPPORT
+# define HAVE_WCSNCAT_IFUNC_AND_VX_SUPPORT HAVE_WCSNCAT_IFUNC
+#else
+# define HAVE_WCSNCAT_IFUNC_AND_VX_SUPPORT 0
+#endif
+
+#if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define WCSNCAT_DEFAULT WCSNCAT_Z13
+/* The z13 ifunc variant is using the common code variant as fallback! */
+# define HAVE_WCSNCAT_C 1
+# define HAVE_WCSNCAT_Z13 1
+#else
+# define WCSNCAT_DEFAULT WCSNCAT_C
+# define HAVE_WCSNCAT_C 1
+# define HAVE_WCSNCAT_Z13 HAVE_WCSNCAT_IFUNC_AND_VX_SUPPORT
+#endif
+
+#if HAVE_WCSNCAT_C
+# define WCSNCAT_C __wcsncat_c
+#else
+# define WCSNCAT_C NULL
+#endif
+
+#if HAVE_WCSNCAT_Z13
+# define WCSNCAT_Z13 __wcsncat_vx
+#else
+# define WCSNCAT_Z13 NULL
+#endif
diff --git a/sysdeps/s390/ifunc-wcsncmp.h b/sysdeps/s390/ifunc-wcsncmp.h
new file mode 100644
index 0000000000..8e2382f96d
--- /dev/null
+++ b/sysdeps/s390/ifunc-wcsncmp.h
@@ -0,0 +1,52 @@
+/* wcsncmp variant information on S/390 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#if defined USE_MULTIARCH && IS_IN (libc) \
+ && ! defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define HAVE_WCSNCMP_IFUNC 1
+#else
+# define HAVE_WCSNCMP_IFUNC 0
+#endif
+
+#ifdef HAVE_S390_VX_ASM_SUPPORT
+# define HAVE_WCSNCMP_IFUNC_AND_VX_SUPPORT HAVE_WCSNCMP_IFUNC
+#else
+# define HAVE_WCSNCMP_IFUNC_AND_VX_SUPPORT 0
+#endif
+
+#if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define WCSNCMP_DEFAULT WCSNCMP_Z13
+# define HAVE_WCSNCMP_C 0
+# define HAVE_WCSNCMP_Z13 1
+#else
+# define WCSNCMP_DEFAULT WCSNCMP_C
+# define HAVE_WCSNCMP_C 1
+# define HAVE_WCSNCMP_Z13 HAVE_WCSNCMP_IFUNC_AND_VX_SUPPORT
+#endif
+
+#if HAVE_WCSNCMP_C
+# define WCSNCMP_C __wcsncmp_c
+#else
+# define WCSNCMP_C NULL
+#endif
+
+#if HAVE_WCSNCMP_Z13
+# define WCSNCMP_Z13 __wcsncmp_vx
+#else
+# define WCSNCMP_Z13 NULL
+#endif
diff --git a/sysdeps/s390/ifunc-wcsncpy.h b/sysdeps/s390/ifunc-wcsncpy.h
new file mode 100644
index 0000000000..58a33863c8
--- /dev/null
+++ b/sysdeps/s390/ifunc-wcsncpy.h
@@ -0,0 +1,53 @@
+/* wcsncpy variant information on S/390 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#if defined USE_MULTIARCH && IS_IN (libc) \
+ && ! defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define HAVE_WCSNCPY_IFUNC 1
+#else
+# define HAVE_WCSNCPY_IFUNC 0
+#endif
+
+#ifdef HAVE_S390_VX_ASM_SUPPORT
+# define HAVE_WCSNCPY_IFUNC_AND_VX_SUPPORT HAVE_WCSNCPY_IFUNC
+#else
+# define HAVE_WCSNCPY_IFUNC_AND_VX_SUPPORT 0
+#endif
+
+#if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define WCSNCPY_DEFAULT WCSNCPY_Z13
+/* The z13 ifunc variant is using the common code variant as fallback! */
+# define HAVE_WCSNCPY_C 1
+# define HAVE_WCSNCPY_Z13 1
+#else
+# define WCSNCPY_DEFAULT WCSNCPY_C
+# define HAVE_WCSNCPY_C 1
+# define HAVE_WCSNCPY_Z13 HAVE_WCSNCPY_IFUNC_AND_VX_SUPPORT
+#endif
+
+#if HAVE_WCSNCPY_C
+# define WCSNCPY_C __wcsncpy_c
+#else
+# define WCSNCPY_C NULL
+#endif
+
+#if HAVE_WCSNCPY_Z13
+# define WCSNCPY_Z13 __wcsncpy_vx
+#else
+# define WCSNCPY_Z13 NULL
+#endif
diff --git a/sysdeps/s390/ifunc-wcsnlen.h b/sysdeps/s390/ifunc-wcsnlen.h
new file mode 100644
index 0000000000..6aabe2c102
--- /dev/null
+++ b/sysdeps/s390/ifunc-wcsnlen.h
@@ -0,0 +1,53 @@
+/* wcsnlen variant information on S/390 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#if defined USE_MULTIARCH && IS_IN (libc) \
+ && ! defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define HAVE_WCSNLEN_IFUNC 1
+#else
+# define HAVE_WCSNLEN_IFUNC 0
+#endif
+
+#ifdef HAVE_S390_VX_ASM_SUPPORT
+# define HAVE_WCSNLEN_IFUNC_AND_VX_SUPPORT HAVE_WCSNLEN_IFUNC
+#else
+# define HAVE_WCSNLEN_IFUNC_AND_VX_SUPPORT 0
+#endif
+
+#if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define WCSNLEN_DEFAULT WCSNLEN_Z13
+/* The z13 ifunc variant is using the common code variant as fallback! */
+# define HAVE_WCSNLEN_C 1
+# define HAVE_WCSNLEN_Z13 1
+#else
+# define WCSNLEN_DEFAULT WCSNLEN_C
+# define HAVE_WCSNLEN_C 1
+# define HAVE_WCSNLEN_Z13 HAVE_WCSNLEN_IFUNC_AND_VX_SUPPORT
+#endif
+
+#if HAVE_WCSNLEN_C
+# define WCSNLEN_C __wcsnlen_c
+#else
+# define WCSNLEN_C NULL
+#endif
+
+#if HAVE_WCSNLEN_Z13
+# define WCSNLEN_Z13 __wcsnlen_vx
+#else
+# define WCSNLEN_Z13 NULL
+#endif
diff --git a/sysdeps/s390/ifunc-wcspbrk.h b/sysdeps/s390/ifunc-wcspbrk.h
new file mode 100644
index 0000000000..17a5028f07
--- /dev/null
+++ b/sysdeps/s390/ifunc-wcspbrk.h
@@ -0,0 +1,53 @@
+/* wcspbrk variant information on S/390 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#if defined USE_MULTIARCH && IS_IN (libc) \
+ && ! defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define HAVE_WCSPBRK_IFUNC 1
+#else
+# define HAVE_WCSPBRK_IFUNC 0
+#endif
+
+#ifdef HAVE_S390_VX_ASM_SUPPORT
+# define HAVE_WCSPBRK_IFUNC_AND_VX_SUPPORT HAVE_WCSPBRK_IFUNC
+#else
+# define HAVE_WCSPBRK_IFUNC_AND_VX_SUPPORT 0
+#endif
+
+#if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define WCSPBRK_DEFAULT WCSPBRK_Z13
+/* The z13 ifunc variant is using the common code variant as fallback! */
+# define HAVE_WCSPBRK_C 1
+# define HAVE_WCSPBRK_Z13 1
+#else
+# define WCSPBRK_DEFAULT WCSPBRK_C
+# define HAVE_WCSPBRK_C 1
+# define HAVE_WCSPBRK_Z13 HAVE_WCSPBRK_IFUNC_AND_VX_SUPPORT
+#endif
+
+#if HAVE_WCSPBRK_C
+# define WCSPBRK_C __wcspbrk_c
+#else
+# define WCSPBRK_C NULL
+#endif
+
+#if HAVE_WCSPBRK_Z13
+# define WCSPBRK_Z13 __wcspbrk_vx
+#else
+# define WCSPBRK_Z13 NULL
+#endif
diff --git a/sysdeps/s390/ifunc-wcsrchr.h b/sysdeps/s390/ifunc-wcsrchr.h
new file mode 100644
index 0000000000..fcb65c68d9
--- /dev/null
+++ b/sysdeps/s390/ifunc-wcsrchr.h
@@ -0,0 +1,53 @@
+/* wcsrchr variant information on S/390 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#if defined USE_MULTIARCH && IS_IN (libc) \
+ && ! defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define HAVE_WCSRCHR_IFUNC 1
+#else
+# define HAVE_WCSRCHR_IFUNC 0
+#endif
+
+#ifdef HAVE_S390_VX_ASM_SUPPORT
+# define HAVE_WCSRCHR_IFUNC_AND_VX_SUPPORT HAVE_WCSRCHR_IFUNC
+#else
+# define HAVE_WCSRCHR_IFUNC_AND_VX_SUPPORT 0
+#endif
+
+#if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define WCSRCHR_DEFAULT WCSRCHR_Z13
+/* The z13 ifunc variant is using the common code variant as fallback! */
+# define HAVE_WCSRCHR_C 1
+# define HAVE_WCSRCHR_Z13 1
+#else
+# define WCSRCHR_DEFAULT WCSRCHR_C
+# define HAVE_WCSRCHR_C 1
+# define HAVE_WCSRCHR_Z13 HAVE_WCSRCHR_IFUNC_AND_VX_SUPPORT
+#endif
+
+#if HAVE_WCSRCHR_C
+# define WCSRCHR_C __wcsrchr_c
+#else
+# define WCSRCHR_C NULL
+#endif
+
+#if HAVE_WCSRCHR_Z13
+# define WCSRCHR_Z13 __wcsrchr_vx
+#else
+# define WCSRCHR_Z13 NULL
+#endif
diff --git a/sysdeps/s390/ifunc-wcsspn.h b/sysdeps/s390/ifunc-wcsspn.h
new file mode 100644
index 0000000000..734bde0729
--- /dev/null
+++ b/sysdeps/s390/ifunc-wcsspn.h
@@ -0,0 +1,53 @@
+/* wcsspn variant information on S/390 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#if defined USE_MULTIARCH && IS_IN (libc) \
+ && ! defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define HAVE_WCSSPN_IFUNC 1
+#else
+# define HAVE_WCSSPN_IFUNC 0
+#endif
+
+#ifdef HAVE_S390_VX_ASM_SUPPORT
+# define HAVE_WCSSPN_IFUNC_AND_VX_SUPPORT HAVE_WCSSPN_IFUNC
+#else
+# define HAVE_WCSSPN_IFUNC_AND_VX_SUPPORT 0
+#endif
+
+#if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define WCSSPN_DEFAULT WCSSPN_Z13
+/* The z13 ifunc variant is using the common code variant as fallback! */
+# define HAVE_WCSSPN_C 1
+# define HAVE_WCSSPN_Z13 1
+#else
+# define WCSSPN_DEFAULT WCSSPN_C
+# define HAVE_WCSSPN_C 1
+# define HAVE_WCSSPN_Z13 HAVE_WCSSPN_IFUNC_AND_VX_SUPPORT
+#endif
+
+#if HAVE_WCSSPN_C
+# define WCSSPN_C __wcsspn_c
+#else
+# define WCSSPN_C NULL
+#endif
+
+#if HAVE_WCSSPN_Z13
+# define WCSSPN_Z13 __wcsspn_vx
+#else
+# define WCSSPN_Z13 NULL
+#endif
diff --git a/sysdeps/s390/ifunc-wmemchr.h b/sysdeps/s390/ifunc-wmemchr.h
new file mode 100644
index 0000000000..0539b5f8ef
--- /dev/null
+++ b/sysdeps/s390/ifunc-wmemchr.h
@@ -0,0 +1,53 @@
+/* wmemchr variant information on S/390 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#if defined USE_MULTIARCH && IS_IN (libc) \
+ && ! defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define HAVE_WMEMCHR_IFUNC 1
+#else
+# define HAVE_WMEMCHR_IFUNC 0
+#endif
+
+#ifdef HAVE_S390_VX_ASM_SUPPORT
+# define HAVE_WMEMCHR_IFUNC_AND_VX_SUPPORT HAVE_WMEMCHR_IFUNC
+#else
+# define HAVE_WMEMCHR_IFUNC_AND_VX_SUPPORT 0
+#endif
+
+#if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define WMEMCHR_DEFAULT WMEMCHR_Z13
+/* The z13 ifunc variant is using the common code variant as fallback! */
+# define HAVE_WMEMCHR_C 1
+# define HAVE_WMEMCHR_Z13 1
+#else
+# define WMEMCHR_DEFAULT WMEMCHR_C
+# define HAVE_WMEMCHR_C 1
+# define HAVE_WMEMCHR_Z13 HAVE_WMEMCHR_IFUNC_AND_VX_SUPPORT
+#endif
+
+#if HAVE_WMEMCHR_C
+# define WMEMCHR_C __wmemchr_c
+#else
+# define WMEMCHR_C NULL
+#endif
+
+#if HAVE_WMEMCHR_Z13
+# define WMEMCHR_Z13 __wmemchr_vx
+#else
+# define WMEMCHR_Z13 NULL
+#endif
diff --git a/sysdeps/s390/ifunc-wmemcmp.h b/sysdeps/s390/ifunc-wmemcmp.h
new file mode 100644
index 0000000000..aaf8050fb4
--- /dev/null
+++ b/sysdeps/s390/ifunc-wmemcmp.h
@@ -0,0 +1,52 @@
+/* wmemcmp variant information on S/390 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#if defined USE_MULTIARCH && IS_IN (libc) \
+ && ! defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define HAVE_WMEMCMP_IFUNC 1
+#else
+# define HAVE_WMEMCMP_IFUNC 0
+#endif
+
+#ifdef HAVE_S390_VX_ASM_SUPPORT
+# define HAVE_WMEMCMP_IFUNC_AND_VX_SUPPORT HAVE_WMEMCMP_IFUNC
+#else
+# define HAVE_WMEMCMP_IFUNC_AND_VX_SUPPORT 0
+#endif
+
+#if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define WMEMCMP_DEFAULT WMEMCMP_Z13
+# define HAVE_WMEMCMP_C 0
+# define HAVE_WMEMCMP_Z13 1
+#else
+# define WMEMCMP_DEFAULT WMEMCMP_C
+# define HAVE_WMEMCMP_C 1
+# define HAVE_WMEMCMP_Z13 HAVE_WMEMCMP_IFUNC_AND_VX_SUPPORT
+#endif
+
+#if HAVE_WMEMCMP_C
+# define WMEMCMP_C __wmemcmp_c
+#else
+# define WMEMCMP_C NULL
+#endif
+
+#if HAVE_WMEMCMP_Z13
+# define WMEMCMP_Z13 __wmemcmp_vx
+#else
+# define WMEMCMP_Z13 NULL
+#endif
diff --git a/sysdeps/s390/ifunc-wmemset.h b/sysdeps/s390/ifunc-wmemset.h
new file mode 100644
index 0000000000..e509dc58c2
--- /dev/null
+++ b/sysdeps/s390/ifunc-wmemset.h
@@ -0,0 +1,53 @@
+/* wmemset variant information on S/390 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#if defined USE_MULTIARCH && IS_IN (libc) \
+ && ! defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define HAVE_WMEMSET_IFUNC 1
+#else
+# define HAVE_WMEMSET_IFUNC 0
+#endif
+
+#ifdef HAVE_S390_VX_ASM_SUPPORT
+# define HAVE_WMEMSET_IFUNC_AND_VX_SUPPORT HAVE_WMEMSET_IFUNC
+#else
+# define HAVE_WMEMSET_IFUNC_AND_VX_SUPPORT 0
+#endif
+
+#if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define WMEMSET_DEFAULT WMEMSET_Z13
+/* The z13 ifunc variant is using the common code variant as fallback! */
+# define HAVE_WMEMSET_C 1
+# define HAVE_WMEMSET_Z13 1
+#else
+# define WMEMSET_DEFAULT WMEMSET_C
+# define HAVE_WMEMSET_C 1
+# define HAVE_WMEMSET_Z13 HAVE_WMEMSET_IFUNC_AND_VX_SUPPORT
+#endif
+
+#if HAVE_WMEMSET_C
+# define WMEMSET_C __wmemset_c
+#else
+# define WMEMSET_C NULL
+#endif
+
+#if HAVE_WMEMSET_Z13
+# define WMEMSET_Z13 __wmemset_vx
+#else
+# define WMEMSET_Z13 NULL
+#endif
diff --git a/sysdeps/s390/iso-8859-1_cp037_z900.c b/sysdeps/s390/iso-8859-1_cp037_z900.c
index 8428d77e57..e074c0d877 100644
--- a/sysdeps/s390/iso-8859-1_cp037_z900.c
+++ b/sysdeps/s390/iso-8859-1_cp037_z900.c
@@ -1,7 +1,7 @@
/* Conversion between ISO 8859-1 and IBM037.
This module uses the translate instruction.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
Author: Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
Based on the work by Ulrich Drepper <drepper@cygnus.com>, 1997.
@@ -21,7 +21,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stdint.h>
@@ -227,12 +227,19 @@ __attribute__ ((aligned (8))) =
switch (length) \
{ \
case 7: outptr[6] = TABLE[inptr[6]]; \
+ /* Fall through. */ \
case 6: outptr[5] = TABLE[inptr[5]]; \
+ /* Fall through. */ \
case 5: outptr[4] = TABLE[inptr[4]]; \
+ /* Fall through. */ \
case 4: outptr[3] = TABLE[inptr[3]]; \
+ /* Fall through. */ \
case 3: outptr[2] = TABLE[inptr[2]]; \
+ /* Fall through. */ \
case 2: outptr[1] = TABLE[inptr[1]]; \
+ /* Fall through. */ \
case 1: outptr[0] = TABLE[inptr[0]]; \
+ /* Fall through. */ \
case 0: break; \
} \
inptr += length; \
diff --git a/sysdeps/s390/jmpbuf-offsets.h b/sysdeps/s390/jmpbuf-offsets.h
index 7c6aafd8fa..133040f961 100644
--- a/sysdeps/s390/jmpbuf-offsets.h
+++ b/sysdeps/s390/jmpbuf-offsets.h
@@ -1,5 +1,5 @@
/* Private macros for accessing __jmp_buf contents. S/390 version.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __JB_GPR6 0
#define __JB_GPR7 1
diff --git a/sysdeps/s390/jmpbuf-unwind.h b/sysdeps/s390/jmpbuf-unwind.h
index 9d42f3056b..c2adb8a6f6 100644
--- a/sysdeps/s390/jmpbuf-unwind.h
+++ b/sysdeps/s390/jmpbuf-unwind.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <setjmp.h>
#include <jmpbuf-offsets.h>
diff --git a/sysdeps/s390/ldsodefs.h b/sysdeps/s390/ldsodefs.h
index e545d953fb..59a55fb2b6 100644
--- a/sysdeps/s390/ldsodefs.h
+++ b/sysdeps/s390/ldsodefs.h
@@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _S390_LDSODEFS_H
#define _S390_LDSODEFS_H 1
diff --git a/sysdeps/s390/libc-tls.c b/sysdeps/s390/libc-tls.c
index 85ede75275..c842c372fb 100644
--- a/sysdeps/s390/libc-tls.c
+++ b/sysdeps/s390/libc-tls.c
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. S390 version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include <csu/libc-tls.c>
diff --git a/sysdeps/s390/longjmp.c b/sysdeps/s390/longjmp.c
index e61cdba2a3..3690ec3440 100644
--- a/sysdeps/s390/longjmp.c
+++ b/sysdeps/s390/longjmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2014-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
Versioned copy of setjmp/longjmp.c modified for versioning
the reverted jmpbuf extension. */
diff --git a/sysdeps/s390/machine-gmon.h b/sysdeps/s390/machine-gmon.h
index a7b77c41ca..6b0544817e 100644
--- a/sysdeps/s390/machine-gmon.h
+++ b/sysdeps/s390/machine-gmon.h
@@ -1,5 +1,5 @@
/* s390-specific implementation of profiling support.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/s390/multiarch/memccpy-c.c b/sysdeps/s390/memccpy-c.c
index 1f4c548199..a61f194daa 100644
--- a/sysdeps/s390/multiarch/memccpy-c.c
+++ b/sysdeps/s390/memccpy-c.c
@@ -1,5 +1,5 @@
/* Default memccpy implementation for S/390.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,12 +14,16 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define MEMCCPY __memccpy_c
+#include <ifunc-memccpy.h>
+
+#if HAVE_MEMCCPY_C
+# if HAVE_MEMCCPY_IFUNC
+# define MEMCCPY MEMCCPY_C
+# undef weak_alias
+# define weak_alias(a, b)
+#endif
-# include <string.h>
-extern __typeof (__memccpy) __memccpy_c;
# include <string/memccpy.c>
#endif
diff --git a/sysdeps/s390/multiarch/memccpy-vx.S b/sysdeps/s390/memccpy-vx.S
index 150aa0e4a4..c64ba1f838 100644
--- a/sysdeps/s390/multiarch/memccpy-vx.S
+++ b/sysdeps/s390/memccpy-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of memccpy.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,9 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
+#include <ifunc-memccpy.h>
+
+#if HAVE_MEMCCPY_Z13
# include "sysdep.h"
# include "asm-syntax.h"
@@ -42,7 +44,7 @@
-v19=part #2 of s
-v31=save area for r6
*/
-ENTRY(__memccpy_vx)
+ENTRY(MEMCCPY_Z13)
.machine "z13"
.machinemode "zarch_nohighgprs"
@@ -152,5 +154,11 @@ ENTRY(__memccpy_vx)
vlgvg %r7,%v31,1
lghi %r2,0 /* Return null. */
br %r14
-END(__memccpy_vx)
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
+END(MEMCCPY_Z13)
+
+# if ! HAVE_MEMCCPY_IFUNC
+strong_alias (MEMCCPY_Z13, __memccpy)
+weak_alias (__memccpy, memccpy)
+# endif
+
+#endif /* HAVE_MEMCCPY_Z13 */
diff --git a/sysdeps/s390/memccpy.c b/sysdeps/s390/memccpy.c
new file mode 100644
index 0000000000..e15b3289e5
--- /dev/null
+++ b/sysdeps/s390/memccpy.c
@@ -0,0 +1,39 @@
+/* Multiple versions of memccpy.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-memccpy.h>
+
+#if HAVE_MEMCCPY_IFUNC
+# include <string.h>
+# include <ifunc-resolve.h>
+
+# if HAVE_MEMCCPY_C
+extern __typeof (__memccpy) MEMCCPY_C attribute_hidden;
+# endif
+
+# if HAVE_MEMCCPY_Z13
+extern __typeof (__memccpy) MEMCCPY_Z13 attribute_hidden;
+# endif
+
+s390_libc_ifunc_expr (__memccpy, __memccpy,
+ (HAVE_MEMCCPY_Z13 && (hwcap & HWCAP_S390_VX))
+ ? MEMCCPY_Z13
+ : MEMCCPY_DEFAULT
+ )
+weak_alias (__memccpy, memccpy)
+#endif /* HAVE_MEMCCPY_IFUNC */
diff --git a/sysdeps/s390/multiarch/memchr-vx.S b/sysdeps/s390/memchr-vx.S
index 77d31e0036..23410dad1b 100644
--- a/sysdeps/s390/multiarch/memchr-vx.S
+++ b/sysdeps/s390/memchr-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of memchr.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,9 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
+#include <ifunc-memchr.h>
+#if HAVE_MEMCHR_Z13
# include "sysdep.h"
# include "asm-syntax.h"
@@ -38,7 +39,7 @@
-v17=index of found c
-v18=c replicated
*/
-ENTRY(__memchr_vx)
+ENTRY(MEMCHR_Z13)
.machine "z13"
.machinemode "zarch_nohighgprs"
@@ -149,11 +150,14 @@ ENTRY(__memchr_vx)
clgrjl %r0,%r4,.Lloop64
j .Llt64
-END(__memchr_vx)
+END(MEMCHR_Z13)
-# define memchr __memchr_c
-# undef libc_hidden_builtin_def
-# define libc_hidden_builtin_def(name) strong_alias(__memchr_c, __GI_memchr)
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
+# if ! HAVE_MEMCHR_IFUNC
+strong_alias (MEMCHR_Z13, __memchr)
+weak_alias (__memchr, memchr)
+# endif
-#include <memchr.S>
+# if ! HAVE_MEMCHR_Z900_G5 && defined SHARED && IS_IN (libc)
+strong_alias (MEMCHR_Z13, __GI_memchr)
+# endif
+#endif
diff --git a/sysdeps/s390/memchr-z900.S b/sysdeps/s390/memchr-z900.S
new file mode 100644
index 0000000000..1e4621e92c
--- /dev/null
+++ b/sysdeps/s390/memchr-z900.S
@@ -0,0 +1,63 @@
+/* Search a character in a block of memory. 31/64 bit S/390 version.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
+ Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
+ 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
+ <https://www.gnu.org/licenses/>. */
+
+/* INPUT PARAMETERS
+ %r2 = address to memory area
+ %r3 = character to find
+ %r4 = number of bytes to search. */
+
+#include <ifunc-memchr.h>
+#include "sysdep.h"
+#include "asm-syntax.h"
+
+#if HAVE_MEMCHR_Z900_G5
+# if defined __s390x__
+# define SLGR slgr
+# define LGHI lghi
+# define NGR ngr
+# define LGR lgr
+# else
+# define SLGR slr
+# define LGHI lhi
+# define NGR nr
+# define LGR lr
+# endif /* ! defined __s390x__ */
+
+ .text
+ENTRY(MEMCHR_Z900_G5)
+ LGHI %r0,0xff
+ NGR %r0,%r3
+ LGR %r1,%r2
+ la %r2,0(%r4,%r1)
+0: srst %r2,%r1
+ jo 0b
+ brc 13,1f
+ SLGR %r2,%r2
+1: br %r14
+END(MEMCHR_Z900_G5)
+
+# if ! HAVE_MEMCHR_IFUNC
+strong_alias (MEMCHR_Z900_G5, __memchr)
+weak_alias (__memchr, memchr)
+# endif
+
+# if defined SHARED && IS_IN (libc)
+strong_alias (MEMCHR_Z900_G5, __GI_memchr)
+# endif
+#endif
diff --git a/sysdeps/s390/memchr.c b/sysdeps/s390/memchr.c
new file mode 100644
index 0000000000..82bce95191
--- /dev/null
+++ b/sysdeps/s390/memchr.c
@@ -0,0 +1,41 @@
+/* Multiple versions of memchr.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-memchr.h>
+
+#if HAVE_MEMCHR_IFUNC
+# define memchr __redirect_memchr
+# include <string.h>
+# undef memchr
+# include <ifunc-resolve.h>
+
+# if HAVE_MEMCHR_Z900_G5
+extern __typeof (__redirect_memchr) MEMCHR_Z900_G5 attribute_hidden;
+# endif
+
+# if HAVE_MEMCHR_Z13
+extern __typeof (__redirect_memchr) MEMCHR_Z13 attribute_hidden;
+# endif
+
+s390_libc_ifunc_expr (__redirect_memchr, __memchr,
+ (HAVE_MEMCHR_Z13 && (hwcap & HWCAP_S390_VX))
+ ? MEMCHR_Z13
+ : MEMCHR_DEFAULT
+ )
+weak_alias (__memchr, memchr)
+#endif
diff --git a/sysdeps/s390/memcmp-z900.S b/sysdeps/s390/memcmp-z900.S
new file mode 100644
index 0000000000..996fed3af4
--- /dev/null
+++ b/sysdeps/s390/memcmp-z900.S
@@ -0,0 +1,173 @@
+/* memcmp - compare two memory blocks. 31/64 bit S/390 version.
+ Copyright (C) 2012-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
+ <https://www.gnu.org/licenses/>. */
+
+
+#include <sysdep.h>
+#include "asm-syntax.h"
+#include <ifunc-memcmp.h>
+
+/* INPUT PARAMETERS
+ %r2 = address of first memory area
+ %r3 = address of second memory area
+ %r4 = number of bytes to compare. */
+
+ .text
+
+#if HAVE_MEMCMP_Z900_G5
+# if defined __s390x__
+# define LTGR ltgr
+# define AGHI aghi
+# define BRCTG brctg
+# else
+# define LTGR ltr
+# define AGHI ahi
+# define BRCTG brct
+# endif /* ! defined __s390x__ */
+ENTRY(MEMCMP_Z900_G5)
+# if defined __s390x__
+ .machine "z900"
+# else
+ .machine "g5"
+ basr %r5,0
+.L_Z900_G5_16:
+# define Z900_G5_EX_D .L_Z900_G5_15-.L_Z900_G5_16
+# endif /* ! defined __s390x__ */
+ LTGR %r4,%r4
+ je .L_Z900_G5_4
+ AGHI %r4,-1
+# if defined __s390x__
+ srlg %r1,%r4,8
+ larl %r5,.L_Z900_G5_15
+# define Z900_G5_EX_D 0
+# else
+ lr %r1,%r4
+ srl %r1,8
+# endif /* ! defined __s390x__ */
+ LTGR %r1,%r1
+ jne .L_Z900_G5_12
+.L_Z900_G5_3:
+ ex %r4,Z900_G5_EX_D(%r5)
+.L_Z900_G5_4:
+ ipm %r2
+# if defined __s390x__
+ sllg %r2,%r2,34
+ srag %r2,%r2,62
+# else
+ sll %r2,2
+ sra %r2,30
+# endif /* ! defined __s390x__ */
+ br %r14
+.L_Z900_G5_12:
+ clc 0(256,%r3),0(%r2)
+ jne .L_Z900_G5_4
+ la %r3,256(%r3)
+ la %r2,256(%r2)
+ BRCTG %r1,.L_Z900_G5_12
+ j .L_Z900_G5_3
+.L_Z900_G5_15:
+ clc 0(1,%r3),0(%r2)
+END(MEMCMP_Z900_G5)
+# undef LTGR
+# undef AGHI
+# undef BRCTG
+#endif /* HAVE_MEMCMP_Z900_G5 */
+
+#if HAVE_MEMCMP_Z10
+ENTRY(MEMCMP_Z10)
+ .machine "z10"
+ .machinemode "zarch_nohighgprs"
+# if !defined __s390x__
+ llgfr %r4,%r4
+# endif /* !defined __s390x__ */
+ ltgr %r4,%r4
+ je .L_Z10_4
+ aghi %r4,-1
+ srlg %r1,%r4,8
+ cgijlh %r1,0,.L_Z10_12
+.L_Z10_3:
+ exrl %r4,.L_Z10_15
+.L_Z10_4:
+ ipm %r2
+ sllg %r2,%r2,34
+ srag %r2,%r2,62
+ br %r14
+.L_Z10_12:
+ pfd 1,512(%r3)
+ pfd 1,512(%r2)
+ clc 0(256,%r3),0(%r2)
+ jne .L_Z10_4
+ la %r3,256(%r3)
+ la %r2,256(%r2)
+ brctg %r1,.L_Z10_12
+ j .L_Z10_3
+.L_Z10_15:
+ clc 0(1,%r3),0(%r2)
+END(MEMCMP_Z10)
+#endif /* HAVE_MEMCMP_Z10 */
+
+#if HAVE_MEMCMP_Z196
+ENTRY(MEMCMP_Z196)
+ .machine "z196"
+ .machinemode "zarch_nohighgprs"
+# if !defined __s390x__
+ llgfr %r4,%r4
+# endif /* !defined __s390x__ */
+ ltgr %r4,%r4
+ je .L_Z196_4
+ aghi %r4,-1
+ srlg %r1,%r4,8
+ ltgr %r1,%r1
+ jne .L_Z196_2
+.L_Z196_3:
+ exrl %r4,.L_Z196_14
+.L_Z196_4:
+ ipm %r2
+ sllg %r2,%r2,34
+ srag %r2,%r2,62
+ br %r14
+.L_Z196_17:
+ la %r3,256(%r3)
+ la %r2,256(%r2)
+ aghi %r1,-1
+ je .L_Z196_3
+.L_Z196_2:
+ pfd 1,512(%r3)
+ pfd 1,512(%r2)
+ clc 0(256,%r3),0(%r2)
+ je .L_Z196_17
+ ipm %r2
+ sllg %r2,%r2,34
+ srag %r2,%r2,62
+ br %r14
+.L_Z196_14:
+ clc 0(1,%r3),0(%r2)
+END(MEMCMP_Z196)
+#endif /* HAVE_MEMCMP_Z196 */
+
+#if ! HAVE_MEMCMP_IFUNC
+/* If we don't use ifunc, define an alias for memcmp here.
+ Otherwise see sysdeps/s390/memcmp.c. */
+strong_alias (MEMCMP_DEFAULT, memcmp)
+weak_alias (memcmp, bcmp)
+#endif
+
+#if defined SHARED && IS_IN (libc)
+/* Defines the internal symbols.
+ Compare to libc_hidden_builtin_def (memcmp) in string/memcmp.c. */
+strong_alias (MEMCMP_DEFAULT, __GI_memcmp)
+#endif
diff --git a/sysdeps/s390/memcmp.c b/sysdeps/s390/memcmp.c
new file mode 100644
index 0000000000..cfb048f2bd
--- /dev/null
+++ b/sysdeps/s390/memcmp.c
@@ -0,0 +1,49 @@
+/* Multiple versions of memcmp.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-memcmp.h>
+#if HAVE_MEMCMP_IFUNC
+# define memcmp __redirect_memcmp
+# include <string.h>
+# undef memcmp
+# include <ifunc-resolve.h>
+
+# if HAVE_MEMCMP_Z900_G5
+extern __typeof (__redirect_memcmp) MEMCMP_Z900_G5 attribute_hidden;
+# endif
+
+# if HAVE_MEMCMP_Z10
+extern __typeof (__redirect_memcmp) MEMCMP_Z10 attribute_hidden;
+# endif
+
+# if HAVE_MEMCMP_Z196
+extern __typeof (__redirect_memcmp) MEMCMP_Z196 attribute_hidden;
+# endif
+
+s390_libc_ifunc_expr (__redirect_memcmp, memcmp,
+ ({
+ s390_libc_ifunc_expr_stfle_init ();
+ (HAVE_MEMCMP_Z196 && S390_IS_Z196 (stfle_bits))
+ ? MEMCMP_Z196
+ : (HAVE_MEMCMP_Z10 && S390_IS_Z10 (stfle_bits))
+ ? MEMCMP_Z10
+ : MEMCMP_DEFAULT;
+ })
+ )
+weak_alias (memcmp, bcmp);
+#endif
diff --git a/sysdeps/s390/memcopy.h b/sysdeps/s390/memcopy.h
new file mode 100644
index 0000000000..1a9554e6e4
--- /dev/null
+++ b/sysdeps/s390/memcopy.h
@@ -0,0 +1,23 @@
+/* memcopy.h -- definitions for memory copy functions.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <sysdeps/generic/memcopy.h>
+
+/* The s390/s390x memcpy implementations are safe to be used by memmove. */
+#undef MEMCPY_OK_FOR_FWD_MEMMOVE
+#define MEMCPY_OK_FOR_FWD_MEMMOVE 1
diff --git a/sysdeps/s390/memcpy-z900.S b/sysdeps/s390/memcpy-z900.S
new file mode 100644
index 0000000000..b5e8c2e1ab
--- /dev/null
+++ b/sysdeps/s390/memcpy-z900.S
@@ -0,0 +1,366 @@
+/* memcpy - copy a block from source to destination. 31/64 bit S/390 version.
+ Copyright (C) 2012-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
+ <https://www.gnu.org/licenses/>. */
+
+
+#include <sysdep.h>
+#include "asm-syntax.h"
+#include <ifunc-memcpy.h>
+
+/* INPUT PARAMETERS
+ %r2 = address of destination memory area
+ %r3 = address of source memory area
+ %r4 = number of bytes to copy. */
+
+ .text
+
+#if defined __s390x__
+# define LTGR ltgr
+# define CGHI cghi
+# define LGR lgr
+# define AGHI aghi
+# define BRCTG brctg
+#else
+# define LTGR ltr
+# define CGHI chi
+# define LGR lr
+# define AGHI ahi
+# define BRCTG brct
+#endif /* ! defined __s390x__ */
+
+#if HAVE_MEMCPY_Z900_G5
+ENTRY(MEMPCPY_Z900_G5)
+# if defined __s390x__
+ .machine "z900"
+# else
+ .machine "g5"
+# endif /* ! defined __s390x__ */
+ LGR %r1,%r2 # Use as dest
+ la %r2,0(%r4,%r2) # Return dest + n
+ j .L_Z900_G5_start
+END(MEMPCPY_Z900_G5)
+
+ENTRY(MEMCPY_Z900_G5)
+# if defined __s390x__
+ .machine "z900"
+# else
+ .machine "g5"
+# endif /* ! defined __s390x__ */
+ LGR %r1,%r2 # r1: Use as dest ; r2: Return dest
+.L_Z900_G5_start:
+ LTGR %r4,%r4
+ je .L_Z900_G5_4
+ AGHI %r4,-1
+# if defined __s390x__
+ srlg %r5,%r4,8
+# else
+ lr %r5,%r4
+ srl %r5,8
+# endif /* ! defined __s390x__ */
+ LTGR %r5,%r5
+ jne .L_Z900_G5_13
+.L_Z900_G5_3:
+# if defined __s390x__
+ larl %r5,.L_Z900_G5_15
+# define Z900_G5_EX_D 0
+# else
+ basr %r5,0
+.L_Z900_G5_14:
+# define Z900_G5_EX_D .L_Z900_G5_15-.L_Z900_G5_14
+# endif /* ! defined __s390x__ */
+ ex %r4,Z900_G5_EX_D(%r5)
+.L_Z900_G5_4:
+ br %r14
+.L_Z900_G5_13:
+ CGHI %r5,4096 # Switch to mvcle for copies >1MB
+ jh __memcpy_mvcle
+.L_Z900_G5_12:
+ mvc 0(256,%r1),0(%r3)
+ la %r1,256(%r1)
+ la %r3,256(%r3)
+ BRCTG %r5,.L_Z900_G5_12
+ j .L_Z900_G5_3
+.L_Z900_G5_15:
+ mvc 0(1,%r1),0(%r3)
+END(MEMCPY_Z900_G5)
+#endif /* HAVE_MEMCPY_Z900_G5 */
+
+ENTRY(__memcpy_mvcle)
+ # Using as standalone function will result in unexpected
+ # results since the length field is incremented by 1 in order to
+ # compensate the changes already done in the functions above.
+ LGR %r0,%r2 # backup return dest [ + n ]
+ AGHI %r4,1 # length + 1
+ LGR %r5,%r4 # source length
+ LGR %r4,%r3 # source address
+ LGR %r2,%r1 # destination address
+ LGR %r3,%r5 # destination length = source length
+.L_MVCLE_1:
+ mvcle %r2,%r4,0 # thats it, MVCLE is your friend
+ jo .L_MVCLE_1
+ LGR %r2,%r0 # return destination address
+ br %r14
+END(__memcpy_mvcle)
+
+#undef LTGR
+#undef CGHI
+#undef LGR
+#undef AGHI
+#undef BRCTG
+
+#if HAVE_MEMCPY_Z10
+ENTRY(MEMPCPY_Z10)
+ .machine "z10"
+ .machinemode "zarch_nohighgprs"
+ lgr %r1,%r2 # Use as dest
+ la %r2,0(%r4,%r2) # Return dest + n
+ j .L_Z10_start
+END(MEMPCPY_Z10)
+
+ENTRY(MEMCPY_Z10)
+ .machine "z10"
+ .machinemode "zarch_nohighgprs"
+ lgr %r1,%r2 # r1: Use as dest ; r2: Return dest
+.L_Z10_start:
+# if !defined __s390x__
+ llgfr %r4,%r4
+# endif /* !defined __s390x__ */
+ cgije %r4,0,.L_Z10_4
+ aghi %r4,-1
+ srlg %r5,%r4,8
+ cgijlh %r5,0,.L_Z10_13
+.L_Z10_3:
+ exrl %r4,.L_Z10_15
+.L_Z10_4:
+ br %r14
+.L_Z10_13:
+ cgfi %r5,65535 # Switch to mvcle for copies >16MB
+ jh __memcpy_mvcle
+.L_Z10_12:
+ pfd 1,768(%r3)
+ pfd 2,768(%r1)
+ mvc 0(256,%r1),0(%r3)
+ la %r1,256(%r1)
+ la %r3,256(%r3)
+ brctg %r5,.L_Z10_12
+ j .L_Z10_3
+.L_Z10_15:
+ mvc 0(1,%r1),0(%r3)
+END(MEMCPY_Z10)
+#endif /* HAVE_MEMCPY_Z10 */
+
+#if HAVE_MEMCPY_Z196
+ENTRY(MEMPCPY_Z196)
+ .machine "z196"
+ .machinemode "zarch_nohighgprs"
+ lgr %r1,%r2 # Use as dest
+ la %r2,0(%r4,%r2) # Return dest + n
+ j .L_Z196_start
+END(MEMPCPY_Z196)
+
+ENTRY(MEMCPY_Z196)
+ .machine "z196"
+ .machinemode "zarch_nohighgprs"
+ lgr %r1,%r2 # r1: Use as dest ; r2: Return dest
+.L_Z196_start:
+# if !defined __s390x__
+ llgfr %r4,%r4
+# endif /* !defined __s390x__ */
+ ltgr %r4,%r4
+ je .L_Z196_4
+.L_Z196_start2:
+ aghi %r4,-1
+ srlg %r5,%r4,8
+ ltgr %r5,%r5
+ jne .L_Z196_5
+.L_Z196_3:
+ exrl %r4,.L_Z196_14
+.L_Z196_4:
+ br %r14
+.L_Z196_5:
+ cgfi %r5,262144 # Switch to mvcle for copies >64MB
+ jh __memcpy_mvcle
+.L_Z196_2:
+ pfd 1,768(%r3)
+ pfd 2,768(%r1)
+ mvc 0(256,%r1),0(%r3)
+ aghi %r5,-1
+ la %r1,256(%r1)
+ la %r3,256(%r3)
+ jne .L_Z196_2
+ j .L_Z196_3
+.L_Z196_14:
+ mvc 0(1,%r1),0(%r3)
+END(MEMCPY_Z196)
+#endif /* HAVE_MEMCPY_Z196 */
+
+#if HAVE_MEMMOVE_Z13
+ENTRY(MEMMOVE_Z13)
+ .machine "z13"
+ .machinemode "zarch_nohighgprs"
+# if !defined __s390x__
+ /* Note: The 31bit dst and src pointers are prefixed with zeroes. */
+ llgfr %r4,%r4
+ llgfr %r3,%r3
+ llgfr %r2,%r2
+# endif /* !defined __s390x__ */
+ sgrk %r0,%r2,%r3
+ clgijh %r4,16,.L_MEMMOVE_Z13_LARGE
+ aghik %r5,%r4,-1
+.L_MEMMOVE_Z13_SMALL:
+ jl .L_MEMMOVE_Z13_END /* Jump away if len was zero. */
+ /* Store up to 16 bytes with vll/vstl which needs the index
+ instead of lengths. */
+ vll %v16,%r5,0(%r3)
+ vstl %v16,%r5,0(%r2)
+.L_MEMMOVE_Z13_END:
+ br %r14
+.L_MEMMOVE_Z13_LARGE:
+ lgr %r1,%r2 /* For memcpy: r1: Use as dest ;
+ r2: Return dest */
+ /* The unsigned comparison (dst - src >= len) determines if we can
+ execute the forward case with memcpy. */
+#if ! HAVE_MEMCPY_Z196
+# error The z13 variant of memmove needs the z196 variant of memcpy!
+#endif
+ clgrjhe %r0,%r4,.L_Z196_start2
+ risbgn %r5,%r4,4,128+63,60 /* r5 = r4 / 16 */
+ aghi %r4,-16
+ clgijhe %r5,8,.L_MEMMOVE_Z13_LARGE_64B
+.L_MEMMOVE_Z13_LARGE_16B_LOOP:
+ /* Store at least 16 bytes with vl/vst. The number of 16byte blocks
+ is stored in r5. */
+ vl %v16,0(%r4,%r3)
+ vst %v16,0(%r4,%r2)
+ aghi %r4,-16
+ brctg %r5,.L_MEMMOVE_Z13_LARGE_16B_LOOP
+ aghik %r5,%r4,15
+ j .L_MEMMOVE_Z13_SMALL
+.L_MEMMOVE_Z13_LARGE_64B:
+ /* Store at least 128 bytes with 4x vl/vst. The number of 64byte blocks
+ will be stored in r0. */
+ aghi %r4,-48
+ srlg %r0,%r5,2 /* r5 = %r0 / 4
+ => Number of 64byte blocks. */
+.L_MEMMOVE_Z13_LARGE_64B_LOOP:
+ vl %v20,48(%r4,%r3)
+ vl %v19,32(%r4,%r3)
+ vl %v18,16(%r4,%r3)
+ vl %v17,0(%r4,%r3)
+ vst %v20,48(%r4,%r2)
+ vst %v19,32(%r4,%r2)
+ vst %v18,16(%r4,%r2)
+ vst %v17,0(%r4,%r2)
+ aghi %r4,-64
+ brctg %r0,.L_MEMMOVE_Z13_LARGE_64B_LOOP
+ aghi %r4,48
+ /* Recalculate the number of 16byte blocks. */
+ risbg %r5,%r5,62,128+63,0 /* r5 = r5 & 3
+ => Remaining 16byte blocks. */
+ jne .L_MEMMOVE_Z13_LARGE_16B_LOOP
+ aghik %r5,%r4,15
+ j .L_MEMMOVE_Z13_SMALL
+END(MEMMOVE_Z13)
+#endif /* HAVE_MEMMOVE_Z13 */
+
+#if HAVE_MEMMOVE_ARCH13
+ENTRY(MEMMOVE_ARCH13)
+ .machine "arch13"
+ .machinemode "zarch_nohighgprs"
+# if ! defined __s390x__
+ /* Note: The 31bit dst and src pointers are prefixed with zeroes. */
+ llgfr %r4,%r4
+ llgfr %r3,%r3
+ llgfr %r2,%r2
+# endif /* ! defined __s390x__ */
+ sgrk %r5,%r2,%r3
+ aghik %r0,%r4,-1 /* Both vstl and mvcrl needs highest index. */
+ clgijh %r4,16,.L_MEMMOVE_ARCH13_LARGE
+.L_MEMMOVE_ARCH13_SMALL:
+ jl .L_MEMMOVE_ARCH13_END /* Return if len was zero (cc of aghik). */
+ /* Store up to 16 bytes with vll/vstl (needs highest index). */
+ vll %v16,%r0,0(%r3)
+ vstl %v16,%r0,0(%r2)
+.L_MEMMOVE_ARCH13_END:
+ br %r14
+.L_MEMMOVE_ARCH13_LARGE:
+ lgr %r1,%r2 /* For memcpy: r1: Use as dest ; r2: Return dest */
+ /* The unsigned comparison (dst - src >= len) determines if we can
+ execute the forward case with memcpy. */
+#if ! HAVE_MEMCPY_Z196
+# error The arch13 variant of memmove needs the z196 variant of memcpy!
+#endif
+ /* Backward case. */
+ clgrjhe %r5,%r4,.L_Z196_start2
+ clgijh %r0,255,.L_MEMMOVE_ARCH13_LARGER_256B
+ /* Move up to 256bytes with mvcrl (move right to left). */
+ mvcrl 0(%r1),0(%r3) /* Move (r0 + 1) bytes from r3 to r1. */
+ br %r14
+.L_MEMMOVE_ARCH13_LARGER_256B:
+ /* First move the "remaining" block of up to 256 bytes at the end of
+ src/dst buffers. Then move blocks of 256bytes in a loop starting
+ with the block at the end.
+ (If src/dst pointers are aligned e.g. to 256 bytes, then the pointers
+ passed to mvcrl instructions are aligned, too) */
+ risbgn %r5,%r0,8,128+63,56 /* r5 = r0 / 256 */
+ risbgn %r0,%r0,56,128+63,0 /* r0 = r0 & 0xFF */
+ slgr %r4,%r0
+ lay %r1,-1(%r4,%r1)
+ lay %r3,-1(%r4,%r3)
+ mvcrl 0(%r1),0(%r3) /* Move (r0 + 1) bytes from r3 to r1. */
+ lghi %r0,255 /* Always copy 256 bytes in the loop below! */
+.L_MEMMOVE_ARCH13_LARGE_256B_LOOP:
+ aghi %r1,-256
+ aghi %r3,-256
+ mvcrl 0(%r1),0(%r3) /* Move (r0 + 1) bytes from r3 to r1. */
+ brctg %r5,.L_MEMMOVE_ARCH13_LARGE_256B_LOOP
+ br %r14
+END(MEMMOVE_ARCH13)
+#endif /* HAVE_MEMMOVE_ARCH13 */
+
+#if ! HAVE_MEMCPY_IFUNC
+/* If we don't use ifunc, define an alias for mem[p]cpy here.
+ Otherwise see sysdeps/s390/mem[p]cpy.c. */
+strong_alias (MEMCPY_DEFAULT, memcpy)
+strong_alias (MEMPCPY_DEFAULT, __mempcpy)
+weak_alias (__mempcpy, mempcpy)
+#endif
+
+#if ! HAVE_MEMMOVE_IFUNC
+/* If we don't use ifunc, define an alias for memmove here.
+ Otherwise see sysdeps/s390/memmove.c. */
+# if ! HAVE_MEMMOVE_C
+/* If the c variant is needed, then sysdeps/s390/memmove-c.c
+ defines memmove.
+ Otherwise MEMMOVE_DEFAULT is implemented here and we have to define it. */
+strong_alias (MEMMOVE_DEFAULT, memmove)
+# endif
+#endif
+
+#if defined SHARED && IS_IN (libc)
+/* Defines the internal symbols.
+ Compare to libc_hidden_[builtin_]def (mem[p]cpy) in string/mem[p]cpy.c. */
+strong_alias (MEMCPY_DEFAULT, __GI_memcpy)
+strong_alias (MEMPCPY_DEFAULT, __GI_mempcpy)
+strong_alias (MEMPCPY_DEFAULT, __GI___mempcpy)
+# if ! HAVE_MEMMOVE_C
+/* If the c variant is needed, then sysdeps/s390/memmove-c.c
+ defines the internal symbol.
+ Otherwise MEMMOVE_DEFAULT is implemented here and we have to define it. */
+strong_alias (MEMMOVE_DEFAULT, __GI_memmove)
+# endif
+#endif
diff --git a/sysdeps/s390/memcpy.c b/sysdeps/s390/memcpy.c
new file mode 100644
index 0000000000..96868a32c1
--- /dev/null
+++ b/sysdeps/s390/memcpy.c
@@ -0,0 +1,49 @@
+/* Multiple versions of memcpy.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-memcpy.h>
+
+#if HAVE_MEMCPY_IFUNC
+# define memcpy __redirect_memcpy
+# include <string.h>
+# undef memcpy
+# include <ifunc-resolve.h>
+
+# if HAVE_MEMCPY_Z900_G5
+extern __typeof (__redirect_memcpy) MEMCPY_Z900_G5 attribute_hidden;
+# endif
+
+# if HAVE_MEMCPY_Z10
+extern __typeof (__redirect_memcpy) MEMCPY_Z10 attribute_hidden;
+# endif
+
+# if HAVE_MEMCPY_Z196
+extern __typeof (__redirect_memcpy) MEMCPY_Z196 attribute_hidden;
+# endif
+
+s390_libc_ifunc_expr (__redirect_memcpy, memcpy,
+ ({
+ s390_libc_ifunc_expr_stfle_init ();
+ (HAVE_MEMCPY_Z196 && S390_IS_Z196 (stfle_bits))
+ ? MEMCPY_Z196
+ : (HAVE_MEMCPY_Z10 && S390_IS_Z10 (stfle_bits))
+ ? MEMCPY_Z10
+ : MEMCPY_DEFAULT;
+ })
+ )
+#endif
diff --git a/sysdeps/s390/memmem-arch13.S b/sysdeps/s390/memmem-arch13.S
new file mode 100644
index 0000000000..532f2bf818
--- /dev/null
+++ b/sysdeps/s390/memmem-arch13.S
@@ -0,0 +1,161 @@
+/* Vector optimized 32/64 bit S/390 version of memmem.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-memmem.h>
+#if HAVE_MEMMEM_ARCH13
+# include "sysdep.h"
+# include "asm-syntax.h"
+ .text
+
+/* void *memmem(const void *haystack=r2, size_t haystacklen=r3,
+ const void *needle=r4, size_t needlelen=r5);
+ Locate a substring. */
+ENTRY(MEMMEM_ARCH13)
+ .machine "arch13"
+ .machinemode "zarch_nohighgprs"
+# if ! defined __s390x__
+ llgfr %r3,%r3
+ llgfr %r5,%r5
+ llgfr %r4,%r4
+ llgfr %r2,%r2
+# endif /* ! defined __s390x__ */
+ clgrjl %r3,%r5,.Lend_no_match /* Haystack < needle? */
+
+ /* Jump to fallback if needle > 9. See also strstr-arch13.S. */
+# if ! HAVE_MEMMEM_Z13
+# error The arch13 variant of memmem needs the z13 variant of memmem!
+# endif
+ clgfi %r5,9
+ jh MEMMEM_Z13
+
+ aghik %r0,%r5,-1 /* vll needs highest index. */
+ bc 4,0(%r14) /* cc==1: return if needle-len == 0. */
+ vll %v18,%r0,0(%r4) /* Load needle. */
+ vlvgb %v19,%r5,7 /* v19[7] contains length of needle. */
+
+ clgijh %r3,16,.Lhaystack_larger_16
+.Lhaystack_smaller_16_on_bb:
+ aghik %r0,%r3,-1 /* vll needs highest index. */
+ vll %v16,%r0,0(%r2) /* Load haystack. */
+.Lhaystack_smaller_16:
+ sgr %r3,%r5 /* r3 = largest valid match-index. */
+ jl .Lend_no_match /* Haystack-len < needle-len? */
+ vstrs %v20,%v16,%v18,%v19,0,0
+ /* Vector string search without zero search where v20 will contain
+ the index of a partial/full match or 16 (index is named k).
+ cc=0 (no match; k=16): .Lend_no_match
+ cc=1 (only available with zero-search): Ignore
+ cc=2 (full match; k<16): Needle found, but could be beyond haystack!
+ cc=3 (partial match; k<16): Always at end of v16 and thus beyond! */
+ brc 9,.Lend_no_match /* Jump away if cc == 0 || cc == 3. */
+ vlgvb %r1,%v20,7
+ /* Verify that the full-match (cc=2) is valid! */
+ clgrjh %r1,%r3,.Lend_no_match /* Jump away if match is beyond. */
+ la %r2,0(%r1,%r2)
+ br %r14
+.Lend_no_match:
+ lghi %r2,0
+ br %r14
+
+.Lhaystack_larger_16:
+ vl %v16,0(%r2)
+ lghi %r1,17
+ lay %r4,-16(%r3,%r2) /* Boundary for loading with vl. */
+ lay %r0,-64(%r3,%r2) /* Boundary for loading with 4xvl. */
+ /* See also strstr-arch13.S:
+ min-skip-partial-match-index = (16 - n_len) + 1 */
+ sgr %r1,%r5
+ clgfi %r3,64 /* Set Boundary to zero ... */
+ la %r3,0(%r3,%r2)
+ locghil %r0,0 /* ... if haystack < 64bytes. */
+ jh .Lloop64
+.Lloop:
+ la %r2,16(%r2)
+ /* Vector string search with zero search. cc=0 => no match. */
+ vstrs %v20,%v16,%v18,%v19,0,0
+ jne .Lloop_vstrs_nonzero_cc
+ clgrjh %r2,%r4,.Lhaystack_too_small
+.Lloop16:
+ vl %v16,0(%r2)
+ la %r2,16(%r2)
+ vstrs %v20,%v16,%v18,%v19,0,0
+ jne .Lloop_vstrs_nonzero_cc
+ clgrjle %r2,%r4,.Lloop16
+.Lhaystack_too_small:
+ sgr %r3,%r2 /* r3 = (haystack + len) - curr_pos */
+ je .Lend_no_match /* Remaining haystack is empty. */
+ lcbb %r0,0(%r2),6
+ jo .Lhaystack_smaller_16_on_bb
+ vl %v16,0(%r2) /* Load haystack. */
+ j .Lhaystack_smaller_16
+
+.Lend_match_found:
+ vlgvb %r4,%v20,7
+ sgr %r2,%r1
+ la %r2,0(%r4,%r2)
+ br %r14
+
+.Lloop_vstrs_nonzero_cc32:
+ la %r2,16(%r2)
+.Lloop_vstrs_nonzero_cc16:
+ la %r2,16(%r2)
+.Lloop_vstrs_nonzero_cc0:
+ la %r2,16(%r2)
+.Lloop_vstrs_nonzero_cc:
+ lay %r2,-16(%r1,%r2) /* Compute next load address. */
+ jh .Lend_match_found /* cc == 2 (full match) */
+ clgrjh %r2,%r4,.Lhaystack_too_small
+ vl %v16,0(%r2)
+.Lloop_vstrs_nonzero_cc_loop:
+ la %r2,0(%r1,%r2)
+ vstrs %v20,%v16,%v18,%v19,0,0
+ jh .Lend_match_found
+ clgrjh %r2,%r4,.Lhaystack_too_small
+ vl %v16,0(%r2) /* Next part of haystack. */
+ jo .Lloop_vstrs_nonzero_cc_loop
+ /* Case: no-match. */
+ clgrjh %r2,%r0,.Lloop /* Jump away if haystack has less than 64b. */
+.Lloop64:
+ vstrs %v20,%v16,%v18,%v19,0,0
+ jne .Lloop_vstrs_nonzero_cc0
+ vl %v16,16(%r2) /* Next part of haystack. */
+ vstrs %v20,%v16,%v18,%v19,0,0
+ jne .Lloop_vstrs_nonzero_cc16
+ vl %v16,32(%r2) /* Next part of haystack. */
+ vstrs %v20,%v16,%v18,%v19,0,0
+ jne .Lloop_vstrs_nonzero_cc32
+ vl %v16,48(%r2) /* Next part of haystack. */
+ la %r2,64(%r2)
+ vstrs %v20,%v16,%v18,%v19,0,0
+ jne .Lloop_vstrs_nonzero_cc
+ clgrjh %r2,%r4,.Lhaystack_too_small
+ vl %v16,0(%r2) /* Next part of haystack. */
+ clgrjle %r2,%r0,.Lloop64
+ j .Lloop
+END(MEMMEM_ARCH13)
+
+# if ! HAVE_MEMMEM_IFUNC
+strong_alias (MEMMEM_ARCH13, __memmem)
+weak_alias (__memmem, memmem)
+# endif
+
+# if MEMMEM_Z13_ONLY_USED_AS_FALLBACK && defined SHARED && IS_IN (libc)
+weak_alias (MEMMEM_ARCH13, __GI_memmem)
+strong_alias (MEMMEM_ARCH13, __GI___memmem)
+# endif
+#endif
diff --git a/sysdeps/s390/memmem-c.c b/sysdeps/s390/memmem-c.c
new file mode 100644
index 0000000000..f504e089f3
--- /dev/null
+++ b/sysdeps/s390/memmem-c.c
@@ -0,0 +1,47 @@
+/* Default memmem implementation for S/390.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-memmem.h>
+
+#if HAVE_MEMMEM_C
+# if HAVE_MEMMEM_IFUNC
+# include <string.h>
+
+# ifndef _LIBC
+# define memmem MEMMEM_C
+# else
+# define __memmem MEMMEM_C
+# endif
+
+# if defined SHARED && IS_IN (libc)
+# undef libc_hidden_def
+# define libc_hidden_def(name) \
+ strong_alias (__memmem_c, __memmem_c_1); \
+ __hidden_ver1 (__memmem_c, __GI___memmem, __memmem_c);
+
+# undef libc_hidden_weak
+# define libc_hidden_weak(name) \
+ __hidden_ver1 (__memmem_c_1, __GI_memmem, __memmem_c_1) __attribute__((weak));
+# endif
+
+# undef weak_alias
+# define weak_alias(a, b)
+# endif
+
+# include <string/memmem.c>
+#endif
diff --git a/sysdeps/s390/memmem-vx.c b/sysdeps/s390/memmem-vx.c
new file mode 100644
index 0000000000..a30430ec37
--- /dev/null
+++ b/sysdeps/s390/memmem-vx.c
@@ -0,0 +1,61 @@
+/* Default memmem implementation with vector string functions for S/390.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-memmem.h>
+
+#if HAVE_MEMMEM_Z13
+# include <string.h>
+# if HAVE_MEMMEM_IFUNC || MEMMEM_Z13_ONLY_USED_AS_FALLBACK
+
+# ifndef _LIBC
+# define memmem MEMMEM_Z13
+# else
+# define __memmem MEMMEM_Z13
+# endif
+
+# if defined SHARED && IS_IN (libc)
+# undef libc_hidden_def
+# undef libc_hidden_weak
+
+# if HAVE_MEMMEM_C || MEMMEM_Z13_ONLY_USED_AS_FALLBACK
+# define libc_hidden_def(name)
+# define libc_hidden_weak(name)
+# else
+# define libc_hidden_def(name) \
+ strong_alias (__memmem_vx, __memmem_vx_1); \
+ __hidden_ver1 (__memmem_vx, __GI___memmem, __memmem_vx);
+
+# define libc_hidden_weak(name) \
+ __hidden_ver1 (__memmem_vx_1, __GI_memmem, __memmem_vx_1) __attribute__((weak));
+# endif
+# endif
+
+# undef weak_alias
+# define weak_alias(a, b)
+# endif
+
+# ifdef USE_MULTIARCH
+extern __typeof (memchr) __memchr_vx attribute_hidden;
+# define memchr __memchr_vx
+
+extern __typeof (memcmp) __memcmp_z196 attribute_hidden;
+# define memcmp __memcmp_z196
+# endif
+
+# include <string/memmem.c>
+#endif
diff --git a/sysdeps/s390/memmem.c b/sysdeps/s390/memmem.c
new file mode 100644
index 0000000000..e0860bd3bc
--- /dev/null
+++ b/sysdeps/s390/memmem.c
@@ -0,0 +1,49 @@
+/* Multiple versions of memmem.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-memmem.h>
+
+#if HAVE_MEMMEM_IFUNC
+# define memmem __redirect_memmem
+# define __memmem __redirect___memmem
+# include <string.h>
+# include <ifunc-resolve.h>
+# undef memmem
+# undef __memmem
+
+# if HAVE_MEMMEM_C
+extern __typeof (__redirect_memmem) MEMMEM_C attribute_hidden;
+# endif
+
+# if HAVE_MEMMEM_Z13
+extern __typeof (__redirect_memmem) MEMMEM_Z13 attribute_hidden;
+# endif
+
+# if HAVE_MEMMEM_ARCH13
+extern __typeof (__redirect_memmem) MEMMEM_ARCH13 attribute_hidden;
+# endif
+
+s390_libc_ifunc_expr (__redirect_memmem, __memmem,
+ (HAVE_MEMMEM_ARCH13 && (hwcap & HWCAP_S390_VXRS_EXT2))
+ ? MEMMEM_ARCH13
+ : (HAVE_MEMMEM_Z13 && (hwcap & HWCAP_S390_VX))
+ ? MEMMEM_Z13
+ : MEMMEM_DEFAULT
+ )
+weak_alias (__memmem, memmem)
+#endif
diff --git a/sysdeps/s390/memmove-c.c b/sysdeps/s390/memmove-c.c
new file mode 100644
index 0000000000..b44849b1d6
--- /dev/null
+++ b/sysdeps/s390/memmove-c.c
@@ -0,0 +1,37 @@
+/* Fallback C version of memmove.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-memcpy.h>
+
+#if HAVE_MEMMOVE_C
+# if HAVE_MEMMOVE_IFUNC
+/* If we use ifunc, then the memmove symbol is defined
+ in sysdeps/s390/memmove.c and we use a different name here.
+ Otherwise, we have to define memmove here or in
+ sysdeps/s390/memcpy.S depending on the used default implementation. */
+# define MEMMOVE MEMMOVE_C
+# if defined SHARED && IS_IN (libc)
+/* Define the internal symbol. */
+# undef libc_hidden_builtin_def
+# define libc_hidden_builtin_def(name) \
+ __hidden_ver1 (__memmove_c, __GI_memmove, __memmove_c);
+# endif
+# endif
+
+# include <string/memmove.c>
+#endif
diff --git a/sysdeps/s390/memmove.c b/sysdeps/s390/memmove.c
new file mode 100644
index 0000000000..64066ba46b
--- /dev/null
+++ b/sysdeps/s390/memmove.c
@@ -0,0 +1,54 @@
+/* Multiple versions of memmove.
+ Copyright (C) 2016-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-memcpy.h>
+
+#if HAVE_MEMMOVE_IFUNC
+/* If we don't use ifunc, an alias is defined for memmove
+ in sysdeps/s390/memmove-c.c or sysdeps/s390/memcpy.S
+ depending on the used default implementation. */
+# undef memmove
+# define memmove __redirect_memmove
+# include <string.h>
+# include <ifunc-resolve.h>
+# undef memmove
+
+# if HAVE_MEMMOVE_C
+extern __typeof (__redirect_memmove) MEMMOVE_C attribute_hidden;
+# endif
+
+# if HAVE_MEMMOVE_Z13
+extern __typeof (__redirect_memmove) MEMMOVE_Z13 attribute_hidden;
+# endif
+
+# if HAVE_MEMMOVE_ARCH13
+extern __typeof (__redirect_memmove) MEMMOVE_ARCH13 attribute_hidden;
+# endif
+
+s390_libc_ifunc_expr (__redirect_memmove, memmove,
+ ({
+ s390_libc_ifunc_expr_stfle_init ();
+ (HAVE_MEMMOVE_ARCH13
+ && S390_IS_ARCH13_MIE3 (stfle_bits))
+ ? MEMMOVE_ARCH13
+ : (HAVE_MEMMOVE_Z13 && (hwcap & HWCAP_S390_VX))
+ ? MEMMOVE_Z13
+ : MEMMOVE_DEFAULT;
+ })
+ )
+#endif
diff --git a/sysdeps/s390/mempcpy.S b/sysdeps/s390/mempcpy.S
deleted file mode 100644
index 18ef29213e..0000000000
--- a/sysdeps/s390/mempcpy.S
+++ /dev/null
@@ -1,19 +0,0 @@
-/* CPU specific mempcpy without multiarch - 32/64 bit S/390 version.
- Copyright (C) 2016-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-/* mempcpy is implemented in memcpy.S. */
diff --git a/sysdeps/s390/mempcpy.c b/sysdeps/s390/mempcpy.c
new file mode 100644
index 0000000000..e3ebfdc963
--- /dev/null
+++ b/sysdeps/s390/mempcpy.c
@@ -0,0 +1,54 @@
+/* Multiple versions of mempcpy.
+ Copyright (C) 2016-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-memcpy.h>
+
+#if HAVE_MEMCPY_IFUNC
+# define mempcpy __redirect_mempcpy
+# define __mempcpy __redirect___mempcpy
+# define __NO_STRING_INLINES
+# define NO_MEMPCPY_STPCPY_REDIRECT
+# include <string.h>
+# undef mempcpy
+# undef __mempcpy
+# include <ifunc-resolve.h>
+
+# if HAVE_MEMCPY_Z900_G5
+extern __typeof (__redirect___mempcpy) MEMPCPY_Z900_G5 attribute_hidden;
+# endif
+
+# if HAVE_MEMCPY_Z10
+extern __typeof (__redirect___mempcpy) MEMPCPY_Z10 attribute_hidden;
+# endif
+
+# if HAVE_MEMCPY_Z196
+extern __typeof (__redirect___mempcpy) MEMPCPY_Z196 attribute_hidden;
+# endif
+
+s390_libc_ifunc_expr (__redirect___mempcpy, __mempcpy,
+ ({
+ s390_libc_ifunc_expr_stfle_init ();
+ (HAVE_MEMCPY_Z196 && S390_IS_Z196 (stfle_bits))
+ ? MEMPCPY_Z196
+ : (HAVE_MEMCPY_Z10 && S390_IS_Z10 (stfle_bits))
+ ? MEMPCPY_Z10
+ : MEMPCPY_DEFAULT;
+ })
+ )
+weak_alias (__mempcpy, mempcpy);
+#endif
diff --git a/sysdeps/s390/multiarch/memrchr-c.c b/sysdeps/s390/memrchr-c.c
index 1e3c914a5d..39c534b588 100644
--- a/sysdeps/s390/multiarch/memrchr-c.c
+++ b/sysdeps/s390/memrchr-c.c
@@ -1,5 +1,5 @@
/* Default memrchr implementation for S/390.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,12 +14,14 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define MEMRCHR __memrchr_c
+#include <ifunc-memrchr.h>
+
+#if HAVE_MEMRCHR_C
+# if HAVE_MEMRCHR_IFUNC
+# define MEMRCHR MEMRCHR_C
+# endif
-# include <string.h>
-extern __typeof (__memrchr) __memrchr_c;
# include <string/memrchr.c>
#endif
diff --git a/sysdeps/s390/multiarch/memrchr-vx.S b/sysdeps/s390/memrchr-vx.S
index 8e81f5ed75..f9e511207a 100644
--- a/sysdeps/s390/multiarch/memrchr-vx.S
+++ b/sysdeps/s390/memrchr-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of memrchr.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,9 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
+#include <ifunc-memrchr.h>
+
+#if HAVE_MEMRCHR_Z13
# include "sysdep.h"
# include "asm-syntax.h"
@@ -40,7 +42,7 @@
-v18=c replicated
-v20=permute pattern
*/
-ENTRY(__memrchr_vx)
+ENTRY(MEMRCHR_Z13)
.machine "z13"
.machinemode "zarch_nohighgprs"
@@ -156,5 +158,11 @@ ENTRY(__memrchr_vx)
clgijhe %r4,64,.Lloop64 /* If n >= 64 -> loop64. */
j .Llt64
-END(__memrchr_vx)
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
+END(MEMRCHR_Z13)
+
+# if ! HAVE_MEMRCHR_IFUNC
+strong_alias (MEMRCHR_Z13, __memrchr)
+weak_alias (__memrchr, memrchr)
+# endif
+
+#endif /* HAVE_MEMRCHR_Z13 */
diff --git a/sysdeps/s390/memrchr.c b/sysdeps/s390/memrchr.c
new file mode 100644
index 0000000000..d7c55993bd
--- /dev/null
+++ b/sysdeps/s390/memrchr.c
@@ -0,0 +1,39 @@
+/* Multiple versions of memrchr.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-memrchr.h>
+
+#if HAVE_MEMRCHR_IFUNC
+# include <string.h>
+# include <ifunc-resolve.h>
+
+# if HAVE_MEMRCHR_C
+extern __typeof (__memrchr) MEMRCHR_C attribute_hidden;
+# endif
+
+# if HAVE_MEMRCHR_Z13
+extern __typeof (__memrchr) MEMRCHR_Z13 attribute_hidden;
+# endif
+
+s390_libc_ifunc_expr (__memrchr, __memrchr,
+ (HAVE_MEMRCHR_Z13 && (hwcap & HWCAP_S390_VX))
+ ? MEMRCHR_Z13
+ : MEMRCHR_DEFAULT
+ )
+weak_alias (__memrchr, memrchr)
+#endif /* HAVE_MEMRCHR_IFUNC */
diff --git a/sysdeps/s390/memset-z900.S b/sysdeps/s390/memset-z900.S
new file mode 100644
index 0000000000..0c49ded7ab
--- /dev/null
+++ b/sysdeps/s390/memset-z900.S
@@ -0,0 +1,219 @@
+/* Set a block of memory to some byte value. 31/64 bit S/390 version.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
+ Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
+ 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
+ <https://www.gnu.org/licenses/>. */
+
+
+#include <sysdep.h>
+#include "asm-syntax.h"
+#include <ifunc-memset.h>
+
+/* INPUT PARAMETERS - MEMSET
+ %r2 = address of memory area
+ %r3 = byte to fill memory with
+ %r4 = number of bytes to fill.
+
+ INPUT PARAMETERS - BZERO
+ %r2 = address of memory area
+ %r3 = number of bytes to fill. */
+
+ .text
+
+#if HAVE_MEMSET_Z900_G5
+# if defined __s390x__
+# define LTGR ltgr
+# define CGHI cghi
+# define LGR lgr
+# define AGHI aghi
+# define BRCTG brctg
+# else
+# define LTGR ltr
+# define CGHI chi
+# define LGR lr
+# define AGHI ahi
+# define BRCTG brct
+# endif /* ! defined __s390x__ */
+
+ENTRY(BZERO_Z900_G5)
+ LGR %r4,%r3
+ xr %r3,%r3
+ j .L_Z900_G5_start
+END(BZERO_Z900_G5)
+
+ENTRY(MEMSET_Z900_G5)
+.L_Z900_G5_start:
+#if defined __s390x__
+ .machine "z900"
+#else
+ .machine "g5"
+#endif /* ! defined __s390x__ */
+ LTGR %r4,%r4
+ je .L_Z900_G5_4
+ stc %r3,0(%r2)
+ CGHI %r4,1
+ LGR %r1,%r2
+ je .L_Z900_G5_4
+ AGHI %r4,-2
+#if defined __s390x__
+ larl %r5,.L_Z900_G5_18
+ srlg %r3,%r4,8
+# define Z900_G5_EX_D 0
+#else
+ basr %r5,0
+.L_Z900_G5_19:
+# define Z900_G5_EX_D .L_Z900_G5_18-.L_Z900_G5_19
+ lr %r3,%r4
+ srl %r3,8
+#endif /* ! defined __s390x__ */
+ LTGR %r3,%r3
+ jne .L_Z900_G5_14
+.L_Z900_G5_3:
+ ex %r4,Z900_G5_EX_D(%r5)
+.L_Z900_G5_4:
+ br %r14
+.L_Z900_G5_14:
+ mvc 1(256,%r1),0(%r1)
+ la %r1,256(%r1)
+ BRCTG %r3,.L_Z900_G5_14
+ j .L_Z900_G5_3
+.L_Z900_G5_18:
+ mvc 1(1,%r1),0(%r1)
+END(MEMSET_Z900_G5)
+# undef LTGR
+# undef CGHI
+# undef LGR
+# undef AGHI
+# undef BRCTG
+#endif /* HAVE_MEMSET_Z900_G5 */
+
+#if HAVE_MEMSET_Z10
+ENTRY(BZERO_Z10)
+ .machine "z10"
+ .machinemode "zarch_nohighgprs"
+ lgr %r4,%r3
+ xr %r3,%r3
+ j .L_Z10_start
+END(BZERO_Z10)
+
+ENTRY(MEMSET_Z10)
+.L_Z10_start:
+ .machine "z10"
+ .machinemode "zarch_nohighgprs"
+# if !defined __s390x__
+ llgfr %r4,%r4
+# endif /* !defined __s390x__ */
+ cgije %r4,0,.L_Z10_4
+ stc %r3,0(%r2)
+ lgr %r1,%r2
+ cgije %r4,1,.L_Z10_4
+ aghi %r4,-2
+ srlg %r5,%r4,8
+ cgijlh %r5,0,.L_Z10_15
+.L_Z10_3:
+ exrl %r4,.L_Z10_18
+.L_Z10_4:
+ br %r14
+.L_Z10_15:
+ cgfi %r5,163840 # Switch to mvcle for >40MB
+ jh __memset_mvcle
+.L_Z10_14:
+ pfd 2,1024(%r1)
+ mvc 1(256,%r1),0(%r1)
+ la %r1,256(%r1)
+ brctg %r5,.L_Z10_14
+ j .L_Z10_3
+.L_Z10_18:
+ mvc 1(1,%r1),0(%r1)
+END(MEMSET_Z10)
+#endif /* HAVE_MEMSET_Z10 */
+
+#if HAVE_MEMSET_Z196
+ENTRY(BZERO_Z196)
+ .machine "z196"
+ .machinemode "zarch_nohighgprs"
+ lgr %r4,%r3
+ xr %r3,%r3
+ j .L_Z196_start
+END(BZERO_Z196)
+
+ENTRY(MEMSET_Z196)
+.L_Z196_start:
+ .machine "z196"
+ .machinemode "zarch_nohighgprs"
+# if !defined __s390x__
+ llgfr %r4,%r4
+# endif /* !defined __s390x__ */
+ ltgr %r4,%r4
+ je .L_Z196_4
+ stc %r3,0(%r2)
+ lgr %r1,%r2
+ cghi %r4,1
+ je .L_Z196_4
+ aghi %r4,-2
+ srlg %r5,%r4,8
+ ltgr %r5,%r5
+ jne .L_Z196_1
+.L_Z196_3:
+ exrl %r4,.L_Z196_17
+.L_Z196_4:
+ br %r14
+.L_Z196_1:
+ cgfi %r5,1048576
+ jh __memset_mvcle # Switch to mvcle for >256MB
+.L_Z196_2:
+ pfd 2,1024(%r1)
+ mvc 1(256,%r1),0(%r1)
+ aghi %r5,-1
+ la %r1,256(%r1)
+ jne .L_Z196_2
+ j .L_Z196_3
+.L_Z196_17:
+ mvc 1(1,%r1),0(%r1)
+END(MEMSET_Z196)
+#endif /* HAVE_MEMSET_Z196 */
+
+#if HAVE_MEMSET_MVCLE
+ENTRY(__memset_mvcle)
+ aghi %r4,2 # take back the change done by the caller
+ lgr %r0,%r2 # save source address
+ lgr %r1,%r3 # move pad byte to R1
+ lgr %r3,%r4 # move length to r3
+ sgr %r4,%r4 # no source for MVCLE, only a pad byte
+ sgr %r5,%r5
+.L0: mvcle %r2,%r4,0(%r1) # thats it, MVCLE is your friend
+ jo .L0
+ lgr %r2,%r0 # return value is source address
+.L1:
+ br %r14
+END(__memset_mvcle)
+#endif /* HAVE_MEMSET_MVCLE */
+
+#if ! HAVE_MEMSET_IFUNC
+/* If we don't use ifunc, define an alias for memset here.
+ Otherwise see sysdeps/s390/memset.c. */
+strong_alias (MEMSET_DEFAULT, memset)
+/* Same for bzero. If ifunc is used, see
+ sysdeps/s390/bzero.c. */
+strong_alias (BZERO_DEFAULT, __bzero)
+weak_alias (__bzero, bzero)
+#endif
+
+#if defined SHARED && IS_IN (libc)
+/* Defines the internal symbol.
+ Compare to libc_hidden_builtin_def (memset) in string/memset.c. */
+strong_alias (MEMSET_DEFAULT, __GI_memset)
+#endif
diff --git a/sysdeps/s390/memset.c b/sysdeps/s390/memset.c
new file mode 100644
index 0000000000..5aacb8cd9d
--- /dev/null
+++ b/sysdeps/s390/memset.c
@@ -0,0 +1,48 @@
+/* Multiple versions of memset.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-memset.h>
+#if HAVE_MEMSET_IFUNC
+# define memset __redirect_memset
+# include <string.h>
+# undef memset
+# include <ifunc-resolve.h>
+
+# if HAVE_MEMSET_Z900_G5
+extern __typeof (__redirect_memset) MEMSET_Z900_G5 attribute_hidden;
+# endif
+
+# if HAVE_MEMSET_Z10
+extern __typeof (__redirect_memset) MEMSET_Z10 attribute_hidden;
+# endif
+
+# if HAVE_MEMSET_Z196
+extern __typeof (__redirect_memset) MEMSET_Z196 attribute_hidden;
+# endif
+
+s390_libc_ifunc_expr (__redirect_memset, memset,
+ ({
+ s390_libc_ifunc_expr_stfle_init ();
+ (HAVE_MEMSET_Z196 && S390_IS_Z196 (stfle_bits))
+ ? MEMSET_Z196
+ : (HAVE_MEMSET_Z10 && S390_IS_Z10 (stfle_bits))
+ ? MEMSET_Z10
+ : MEMSET_DEFAULT;
+ })
+ )
+#endif
diff --git a/sysdeps/s390/memusage.h b/sysdeps/s390/memusage.h
index c408acd416..5f061fc123 100644
--- a/sysdeps/s390/memusage.h
+++ b/sysdeps/s390/memusage.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define GETSP() ({ register uintptr_t stack_ptr __asm__ ("15"); stack_ptr; })
diff --git a/sysdeps/s390/multiarch/8bit-generic.c b/sysdeps/s390/multiarch/8bit-generic.c
index d608beaa62..873ce2cc7a 100644
--- a/sysdeps/s390/multiarch/8bit-generic.c
+++ b/sysdeps/s390/multiarch/8bit-generic.c
@@ -1,5 +1,5 @@
/* Generic conversion to and from 8bit charsets - S390 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if defined HAVE_S390_VX_ASM_SUPPORT
diff --git a/sysdeps/s390/multiarch/Makefile b/sysdeps/s390/multiarch/Makefile
index c893ebc565..fec3615304 100644
--- a/sysdeps/s390/multiarch/Makefile
+++ b/sysdeps/s390/multiarch/Makefile
@@ -1,49 +1,3 @@
-ifeq ($(subdir),string)
-sysdep_routines += strlen strlen-vx strlen-c \
- strnlen strnlen-vx strnlen-c \
- strcpy strcpy-vx \
- stpcpy stpcpy-vx stpcpy-c \
- strncpy strncpy-vx \
- stpncpy stpncpy-vx stpncpy-c \
- strcat strcat-vx strcat-c \
- strncat strncat-vx strncat-c \
- strcmp strcmp-vx \
- strncmp strncmp-vx strncmp-c \
- strchr strchr-vx strchr-c \
- strchrnul strchrnul-vx strchrnul-c \
- strrchr strrchr-vx strrchr-c \
- strspn strspn-vx strspn-c \
- strpbrk strpbrk-vx strpbrk-c \
- strcspn strcspn-vx strcspn-c \
- memchr memchr-vx \
- rawmemchr rawmemchr-vx rawmemchr-c \
- memccpy memccpy-vx memccpy-c \
- memrchr memrchr-vx memrchr-c \
- mempcpy
-endif
-
-ifeq ($(subdir),wcsmbs)
-sysdep_routines += wcslen wcslen-vx wcslen-c \
- wcsnlen wcsnlen-vx wcsnlen-c \
- wcscpy wcscpy-vx wcscpy-c \
- wcpcpy wcpcpy-vx wcpcpy-c \
- wcsncpy wcsncpy-vx wcsncpy-c \
- wcpncpy wcpncpy-vx wcpncpy-c \
- wcscat wcscat-vx wcscat-c \
- wcsncat wcsncat-vx wcsncat-c \
- wcscmp wcscmp-vx wcscmp-c \
- wcsncmp wcsncmp-vx wcsncmp-c \
- wcschr wcschr-vx wcschr-c \
- wcschrnul wcschrnul-vx wcschrnul-c \
- wcsrchr wcsrchr-vx wcsrchr-c \
- wcsspn wcsspn-vx wcsspn-c \
- wcspbrk wcspbrk-vx wcspbrk-c \
- wcscspn wcscspn-vx wcscspn-c \
- wmemchr wmemchr-vx wmemchr-c \
- wmemset wmemset-vx wmemset-c \
- wmemcmp wmemcmp-vx wmemcmp-c
-endif
-
ifeq ($(subdir),iconvdata)
override define generate-8bit-table
$(make-target-directory)
diff --git a/sysdeps/s390/multiarch/gconv_simple.c b/sysdeps/s390/multiarch/gconv_simple.c
index aaa1ebf74a..4903e2bf92 100644
--- a/sysdeps/s390/multiarch/gconv_simple.c
+++ b/sysdeps/s390/multiarch/gconv_simple.c
@@ -1,5 +1,5 @@
/* Simple transformations functions - s390 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if defined HAVE_S390_VX_ASM_SUPPORT
# include <ifunc-resolve.h>
@@ -27,17 +27,18 @@
# define ICONV_C_NAME(NAME) __##NAME##_c
# define ICONV_VX_NAME(NAME) __##NAME##_vx
-# define ICONV_VX_IFUNC(FUNC) \
- extern __typeof (ICONV_C_NAME (FUNC)) __##FUNC; \
- s390_vx_libc_ifunc (__##FUNC) \
- int FUNC (struct __gconv_step *step, struct __gconv_step_data *data, \
- const unsigned char **inptrp, const unsigned char *inend, \
- unsigned char **outbufstart, size_t *irreversible, \
- int do_flush, int consume_incomplete) \
- { \
- return __##FUNC (step, data, inptrp, inend,outbufstart, \
- irreversible, do_flush, consume_incomplete); \
- }
+# ifdef HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+/* We support z13 instructions by default -> Just use the vector variant. */
+# define ICONV_VX_IFUNC(FUNC) strong_alias (ICONV_VX_NAME (FUNC), FUNC)
+# else
+/* We have to use ifunc to determine if z13 instructions are supported. */
+# define ICONV_VX_IFUNC(FUNC) \
+ s390_libc_ifunc_expr (ICONV_C_NAME (FUNC), FUNC, \
+ (hwcap & HWCAP_S390_VX) \
+ ? ICONV_VX_NAME (FUNC) \
+ : ICONV_C_NAME (FUNC) \
+ )
+# endif
# define ICONV_VX_SINGLE(NAME) \
static __typeof (NAME##_single) __##NAME##_vx_single __attribute__((alias(#NAME "_single")));
@@ -403,7 +404,7 @@ ICONV_VX_NAME (internal_ucs4le_loop) (struct __gconv_step *step,
const unsigned char **inptrp,
const unsigned char *inend,
unsigned char **outptrp,
- unsigned char *outend,
+ const unsigned char *outend,
size_t *irreversible)
{
const unsigned char *inptr = *inptrp;
@@ -503,7 +504,7 @@ ICONV_VX_NAME (ucs4_internal_loop) (struct __gconv_step *step,
const unsigned char **inptrp,
const unsigned char *inend,
unsigned char **outptrp,
- unsigned char *outend,
+ const unsigned char *outend,
size_t *irreversible)
{
int flags = step_data->__flags;
@@ -630,7 +631,7 @@ ICONV_VX_NAME (ucs4le_internal_loop) (struct __gconv_step *step,
const unsigned char **inptrp,
const unsigned char *inend,
unsigned char **outptrp,
- unsigned char *outend,
+ const unsigned char *outend,
size_t *irreversible)
{
int flags = step_data->__flags;
diff --git a/sysdeps/s390/multiarch/iconv/skeleton.c b/sysdeps/s390/multiarch/iconv/skeleton.c
index 8774a536ca..76fcfc1f93 100644
--- a/sysdeps/s390/multiarch/iconv/skeleton.c
+++ b/sysdeps/s390/multiarch/iconv/skeleton.c
@@ -1,5 +1,5 @@
/* Skeleton for a conversion module - S390 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef IGNORE_ICONV_SKELETON
# include_next <iconv/skeleton.c>
diff --git a/sysdeps/s390/multiarch/ifunc-impl-list.c b/sysdeps/s390/multiarch/ifunc-impl-list.c
index ec3373ae26..612eb59047 100644
--- a/sysdeps/s390/multiarch/ifunc-impl-list.c
+++ b/sysdeps/s390/multiarch/ifunc-impl-list.c
@@ -1,5 +1,5 @@
/* Enumerate available IFUNC implementations of a function. s390/s390x version.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,13 +14,57 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <string.h>
#include <wchar.h>
#include <ifunc-impl-list.h>
#include <ifunc-resolve.h>
+#include <ifunc-memset.h>
+#include <ifunc-memcmp.h>
+#include <ifunc-memcpy.h>
+#include <ifunc-strstr.h>
+#include <ifunc-memmem.h>
+#include <ifunc-strlen.h>
+#include <ifunc-strnlen.h>
+#include <ifunc-strcpy.h>
+#include <ifunc-stpcpy.h>
+#include <ifunc-strncpy.h>
+#include <ifunc-stpncpy.h>
+#include <ifunc-strcat.h>
+#include <ifunc-strncat.h>
+#include <ifunc-strcmp.h>
+#include <ifunc-strncmp.h>
+#include <ifunc-strchr.h>
+#include <ifunc-strchrnul.h>
+#include <ifunc-strrchr.h>
+#include <ifunc-strspn.h>
+#include <ifunc-strpbrk.h>
+#include <ifunc-strcspn.h>
+#include <ifunc-memchr.h>
+#include <ifunc-rawmemchr.h>
+#include <ifunc-memccpy.h>
+#include <ifunc-memrchr.h>
+#include <ifunc-wcslen.h>
+#include <ifunc-wcsnlen.h>
+#include <ifunc-wcscpy.h>
+#include <ifunc-wcpcpy.h>
+#include <ifunc-wcsncpy.h>
+#include <ifunc-wcpncpy.h>
+#include <ifunc-wcscat.h>
+#include <ifunc-wcsncat.h>
+#include <ifunc-wcscmp.h>
+#include <ifunc-wcsncmp.h>
+#include <ifunc-wcschr.h>
+#include <ifunc-wcschrnul.h>
+#include <ifunc-wcsrchr.h>
+#include <ifunc-wcsspn.h>
+#include <ifunc-wcspbrk.h>
+#include <ifunc-wcscspn.h>
+#include <ifunc-wmemchr.h>
+#include <ifunc-wmemset.h>
+#include <ifunc-wmemcmp.h>
/* Maximum number of IFUNC implementations. */
#define MAX_IFUNC 3
@@ -46,107 +90,599 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
S390_STORE_STFLE (stfle_bits);
}
+#if HAVE_MEMSET_IFUNC
IFUNC_IMPL (i, name, memset,
+# if HAVE_MEMSET_Z196
IFUNC_IMPL_ADD (array, i, memset,
- S390_IS_Z196 (stfle_bits), __memset_z196)
+ S390_IS_Z196 (stfle_bits), MEMSET_Z196)
+# endif
+# if HAVE_MEMSET_Z10
IFUNC_IMPL_ADD (array, i, memset,
- S390_IS_Z10 (stfle_bits), __memset_z10)
- IFUNC_IMPL_ADD (array, i, memset, 1, __memset_default))
-
+ S390_IS_Z10 (stfle_bits), MEMSET_Z10)
+# endif
+# if HAVE_MEMSET_Z900_G5
+ IFUNC_IMPL_ADD (array, i, memset, 1, MEMSET_Z900_G5)
+# endif
+ )
+
+ /* Note: bzero is implemented in memset. */
+ IFUNC_IMPL (i, name, bzero,
+# if HAVE_MEMSET_Z196
+ IFUNC_IMPL_ADD (array, i, bzero,
+ S390_IS_Z196 (stfle_bits), BZERO_Z196)
+# endif
+# if HAVE_MEMSET_Z10
+ IFUNC_IMPL_ADD (array, i, bzero,
+ S390_IS_Z10 (stfle_bits), BZERO_Z10)
+# endif
+# if HAVE_MEMSET_Z900_G5
+ IFUNC_IMPL_ADD (array, i, bzero, 1, BZERO_Z900_G5)
+# endif
+ )
+#endif /* HAVE_MEMSET_IFUNC */
+
+#if HAVE_MEMCMP_IFUNC
IFUNC_IMPL (i, name, memcmp,
+# if HAVE_MEMCMP_Z196
IFUNC_IMPL_ADD (array, i, memcmp,
- S390_IS_Z196 (stfle_bits), __memcmp_z196)
+ S390_IS_Z196 (stfle_bits), MEMCMP_Z196)
+# endif
+# if HAVE_MEMCMP_Z10
IFUNC_IMPL_ADD (array, i, memcmp,
- S390_IS_Z10 (stfle_bits), __memcmp_z10)
- IFUNC_IMPL_ADD (array, i, memcmp, 1, __memcmp_default))
-
-#ifdef SHARED
-
+ S390_IS_Z10 (stfle_bits), MEMCMP_Z10)
+# endif
+# if HAVE_MEMCMP_Z900_G5
+ IFUNC_IMPL_ADD (array, i, memcmp, 1, MEMCMP_Z900_G5)
+# endif
+ )
+#endif /* HAVE_MEMCMP_IFUNC */
+
+#if HAVE_MEMCPY_IFUNC
IFUNC_IMPL (i, name, memcpy,
+# if HAVE_MEMCPY_Z196
IFUNC_IMPL_ADD (array, i, memcpy,
- S390_IS_Z196 (stfle_bits), __memcpy_z196)
+ S390_IS_Z196 (stfle_bits), MEMCPY_Z196)
+# endif
+# if HAVE_MEMCPY_Z10
IFUNC_IMPL_ADD (array, i, memcpy,
- S390_IS_Z10 (stfle_bits), __memcpy_z10)
- IFUNC_IMPL_ADD (array, i, memcpy, 1, __memcpy_default))
+ S390_IS_Z10 (stfle_bits), MEMCPY_Z10)
+# endif
+# if HAVE_MEMCPY_Z900_G5
+ IFUNC_IMPL_ADD (array, i, memcpy, 1, MEMCPY_Z900_G5)
+# endif
+ )
IFUNC_IMPL (i, name, mempcpy,
+# if HAVE_MEMCPY_Z196
IFUNC_IMPL_ADD (array, i, mempcpy,
- S390_IS_Z196 (stfle_bits), ____mempcpy_z196)
+ S390_IS_Z196 (stfle_bits), MEMPCPY_Z196)
+# endif
+# if HAVE_MEMCPY_Z10
IFUNC_IMPL_ADD (array, i, mempcpy,
- S390_IS_Z10 (stfle_bits), ____mempcpy_z10)
- IFUNC_IMPL_ADD (array, i, mempcpy, 1, ____mempcpy_default))
-
-#endif /* SHARED */
-
-#ifdef HAVE_S390_VX_ASM_SUPPORT
-
-# define IFUNC_VX_IMPL(FUNC) \
- IFUNC_IMPL (i, name, FUNC, \
- IFUNC_IMPL_ADD (array, i, FUNC, dl_hwcap & HWCAP_S390_VX, \
- __##FUNC##_vx) \
- IFUNC_IMPL_ADD (array, i, FUNC, 1, __##FUNC##_c))
-
- IFUNC_VX_IMPL (strlen);
- IFUNC_VX_IMPL (wcslen);
-
- IFUNC_VX_IMPL (strnlen);
- IFUNC_VX_IMPL (wcsnlen);
-
- IFUNC_VX_IMPL (strcpy);
- IFUNC_VX_IMPL (wcscpy);
-
- IFUNC_VX_IMPL (stpcpy);
- IFUNC_VX_IMPL (wcpcpy);
-
- IFUNC_VX_IMPL (strncpy);
- IFUNC_VX_IMPL (wcsncpy);
-
- IFUNC_VX_IMPL (stpncpy);
- IFUNC_VX_IMPL (wcpncpy);
-
- IFUNC_VX_IMPL (strcat);
- IFUNC_VX_IMPL (wcscat);
-
- IFUNC_VX_IMPL (strncat);
- IFUNC_VX_IMPL (wcsncat);
-
- IFUNC_VX_IMPL (strcmp);
- IFUNC_VX_IMPL (wcscmp);
-
- IFUNC_VX_IMPL (strncmp);
- IFUNC_VX_IMPL (wcsncmp);
-
- IFUNC_VX_IMPL (strchr);
- IFUNC_VX_IMPL (wcschr);
-
- IFUNC_VX_IMPL (strchrnul);
- IFUNC_VX_IMPL (wcschrnul);
-
- IFUNC_VX_IMPL (strrchr);
- IFUNC_VX_IMPL (wcsrchr);
-
- IFUNC_VX_IMPL (strspn);
- IFUNC_VX_IMPL (wcsspn);
-
- IFUNC_VX_IMPL (strpbrk);
- IFUNC_VX_IMPL (wcspbrk);
-
- IFUNC_VX_IMPL (strcspn);
- IFUNC_VX_IMPL (wcscspn);
-
- IFUNC_VX_IMPL (memchr);
- IFUNC_VX_IMPL (wmemchr);
- IFUNC_VX_IMPL (rawmemchr);
-
- IFUNC_VX_IMPL (memccpy);
-
- IFUNC_VX_IMPL (wmemset);
-
- IFUNC_VX_IMPL (wmemcmp);
-
- IFUNC_VX_IMPL (memrchr);
-
-#endif /* HAVE_S390_VX_ASM_SUPPORT */
+ S390_IS_Z10 (stfle_bits), MEMPCPY_Z10)
+# endif
+# if HAVE_MEMCPY_Z900_G5
+ IFUNC_IMPL_ADD (array, i, mempcpy, 1, MEMPCPY_Z900_G5)
+# endif
+ )
+#endif /* HAVE_MEMCPY_IFUNC */
+
+#if HAVE_MEMMOVE_IFUNC
+ IFUNC_IMPL (i, name, memmove,
+# if HAVE_MEMMOVE_ARCH13
+ IFUNC_IMPL_ADD (array, i, memmove,
+ S390_IS_ARCH13_MIE3 (stfle_bits),
+ MEMMOVE_ARCH13)
+# endif
+# if HAVE_MEMMOVE_Z13
+ IFUNC_IMPL_ADD (array, i, memmove,
+ dl_hwcap & HWCAP_S390_VX, MEMMOVE_Z13)
+# endif
+# if HAVE_MEMMOVE_C
+ IFUNC_IMPL_ADD (array, i, memmove, 1, MEMMOVE_C)
+# endif
+ )
+#endif /* HAVE_MEMMOVE_IFUNC */
+
+#if HAVE_STRSTR_IFUNC
+ IFUNC_IMPL (i, name, strstr,
+# if HAVE_STRSTR_ARCH13
+ IFUNC_IMPL_ADD (array, i, strstr,
+ dl_hwcap & HWCAP_S390_VXRS_EXT2, STRSTR_ARCH13)
+# endif
+# if HAVE_STRSTR_Z13
+ IFUNC_IMPL_ADD (array, i, strstr,
+ dl_hwcap & HWCAP_S390_VX, STRSTR_Z13)
+# endif
+# if HAVE_STRSTR_C
+ IFUNC_IMPL_ADD (array, i, strstr, 1, STRSTR_C)
+# endif
+ )
+#endif /* HAVE_STRSTR_IFUNC */
+
+#if HAVE_MEMMEM_IFUNC
+ IFUNC_IMPL (i, name, memmem,
+# if HAVE_MEMMEM_ARCH13
+ IFUNC_IMPL_ADD (array, i, memmem,
+ dl_hwcap & HWCAP_S390_VXRS_EXT2, MEMMEM_ARCH13)
+# endif
+# if HAVE_MEMMEM_Z13
+ IFUNC_IMPL_ADD (array, i, memmem,
+ dl_hwcap & HWCAP_S390_VX, MEMMEM_Z13)
+# endif
+# if HAVE_MEMMEM_C
+ IFUNC_IMPL_ADD (array, i, memmem, 1, MEMMEM_C)
+# endif
+ )
+#endif /* HAVE_MEMMEM_IFUNC */
+
+#if HAVE_STRLEN_IFUNC
+ IFUNC_IMPL (i, name, strlen,
+# if HAVE_STRLEN_Z13
+ IFUNC_IMPL_ADD (array, i, strlen,
+ dl_hwcap & HWCAP_S390_VX, STRLEN_Z13)
+# endif
+# if HAVE_STRLEN_C
+ IFUNC_IMPL_ADD (array, i, strlen, 1, STRLEN_C)
+# endif
+ )
+#endif /* HAVE_STRLEN_IFUNC */
+
+#if HAVE_STRNLEN_IFUNC
+ IFUNC_IMPL (i, name, strnlen,
+# if HAVE_STRNLEN_Z13
+ IFUNC_IMPL_ADD (array, i, strnlen,
+ dl_hwcap & HWCAP_S390_VX, STRNLEN_Z13)
+# endif
+# if HAVE_STRNLEN_C
+ IFUNC_IMPL_ADD (array, i, strnlen, 1, STRNLEN_C)
+# endif
+ )
+#endif /* HAVE_STRNLEN_IFUNC */
+
+#if HAVE_STRCPY_IFUNC
+ IFUNC_IMPL (i, name, strcpy,
+# if HAVE_STRCPY_Z13
+ IFUNC_IMPL_ADD (array, i, strcpy,
+ dl_hwcap & HWCAP_S390_VX, STRCPY_Z13)
+# endif
+# if HAVE_STRCPY_Z900_G5
+ IFUNC_IMPL_ADD (array, i, strcpy, 1, STRCPY_Z900_G5)
+# endif
+ )
+#endif /* HAVE_STRCPY_IFUNC */
+
+#if HAVE_STPCPY_IFUNC
+ IFUNC_IMPL (i, name, stpcpy,
+# if HAVE_STPCPY_Z13
+ IFUNC_IMPL_ADD (array, i, stpcpy,
+ dl_hwcap & HWCAP_S390_VX, STPCPY_Z13)
+# endif
+# if HAVE_STPCPY_C
+ IFUNC_IMPL_ADD (array, i, stpcpy, 1, STPCPY_C)
+# endif
+ )
+#endif /* HAVE_STPCPY_IFUNC */
+
+#if HAVE_STRNCPY_IFUNC
+ IFUNC_IMPL (i, name, strncpy,
+# if HAVE_STRNCPY_Z13
+ IFUNC_IMPL_ADD (array, i, strncpy,
+ dl_hwcap & HWCAP_S390_VX, STRNCPY_Z13)
+# endif
+# if HAVE_STRNCPY_Z900_G5
+ IFUNC_IMPL_ADD (array, i, strncpy, 1, STRNCPY_Z900_G5)
+# endif
+ )
+#endif /* HAVE_STRNCPY_IFUNC */
+
+#if HAVE_STPNCPY_IFUNC
+ IFUNC_IMPL (i, name, stpncpy,
+# if HAVE_STPNCPY_Z13
+ IFUNC_IMPL_ADD (array, i, stpncpy,
+ dl_hwcap & HWCAP_S390_VX, STPNCPY_Z13)
+# endif
+# if HAVE_STPNCPY_C
+ IFUNC_IMPL_ADD (array, i, stpncpy, 1, STPNCPY_C)
+# endif
+ )
+#endif /* HAVE_STPNCPY_IFUNC */
+
+#if HAVE_STRCAT_IFUNC
+ IFUNC_IMPL (i, name, strcat,
+# if HAVE_STRCAT_Z13
+ IFUNC_IMPL_ADD (array, i, strcat,
+ dl_hwcap & HWCAP_S390_VX, STRCAT_Z13)
+# endif
+# if HAVE_STRCAT_C
+ IFUNC_IMPL_ADD (array, i, strcat, 1, STRCAT_C)
+# endif
+ )
+#endif /* HAVE_STRCAT_IFUNC */
+
+#if HAVE_STRNCAT_IFUNC
+ IFUNC_IMPL (i, name, strncat,
+# if HAVE_STRNCAT_Z13
+ IFUNC_IMPL_ADD (array, i, strncat,
+ dl_hwcap & HWCAP_S390_VX, STRNCAT_Z13)
+# endif
+# if HAVE_STRNCAT_C
+ IFUNC_IMPL_ADD (array, i, strncat, 1, STRNCAT_C)
+# endif
+ )
+#endif /* HAVE_STRNCAT_IFUNC */
+
+#if HAVE_STRCMP_IFUNC
+ IFUNC_IMPL (i, name, strcmp,
+# if HAVE_STRCMP_Z13
+ IFUNC_IMPL_ADD (array, i, strcmp,
+ dl_hwcap & HWCAP_S390_VX, STRCMP_Z13)
+# endif
+# if HAVE_STRCMP_Z900_G5
+ IFUNC_IMPL_ADD (array, i, strcmp, 1, STRCMP_Z900_G5)
+# endif
+ )
+#endif /* HAVE_STRCMP_IFUNC */
+
+#if HAVE_STRNCMP_IFUNC
+ IFUNC_IMPL (i, name, strncmp,
+# if HAVE_STRNCMP_Z13
+ IFUNC_IMPL_ADD (array, i, strncmp,
+ dl_hwcap & HWCAP_S390_VX, STRNCMP_Z13)
+# endif
+# if HAVE_STRNCMP_C
+ IFUNC_IMPL_ADD (array, i, strncmp, 1, STRNCMP_C)
+# endif
+ )
+#endif /* HAVE_STRNCMP_IFUNC */
+
+#if HAVE_STRCHR_IFUNC
+ IFUNC_IMPL (i, name, strchr,
+# if HAVE_STRCHR_Z13
+ IFUNC_IMPL_ADD (array, i, strchr,
+ dl_hwcap & HWCAP_S390_VX, STRCHR_Z13)
+# endif
+# if HAVE_STRCHR_C
+ IFUNC_IMPL_ADD (array, i, strchr, 1, STRCHR_C)
+# endif
+ )
+#endif /* HAVE_STRCHR_IFUNC */
+
+#if HAVE_STRCHRNUL_IFUNC
+ IFUNC_IMPL (i, name, strchrnul,
+# if HAVE_STRCHRNUL_Z13
+ IFUNC_IMPL_ADD (array, i, strchrnul,
+ dl_hwcap & HWCAP_S390_VX, STRCHRNUL_Z13)
+# endif
+# if HAVE_STRCHRNUL_C
+ IFUNC_IMPL_ADD (array, i, strchrnul, 1, STRCHRNUL_C)
+# endif
+ )
+#endif /* HAVE_STRCHRNUL_IFUNC */
+
+#if HAVE_STRRCHR_IFUNC
+ IFUNC_IMPL (i, name, strrchr,
+# if HAVE_STRRCHR_Z13
+ IFUNC_IMPL_ADD (array, i, strrchr,
+ dl_hwcap & HWCAP_S390_VX, STRRCHR_Z13)
+# endif
+# if HAVE_STRRCHR_C
+ IFUNC_IMPL_ADD (array, i, strrchr, 1, STRRCHR_C)
+# endif
+ )
+#endif /* HAVE_STRRCHR_IFUNC */
+
+#if HAVE_STRSPN_IFUNC
+ IFUNC_IMPL (i, name, strspn,
+# if HAVE_STRSPN_Z13
+ IFUNC_IMPL_ADD (array, i, strspn,
+ dl_hwcap & HWCAP_S390_VX, STRSPN_Z13)
+# endif
+# if HAVE_STRSPN_C
+ IFUNC_IMPL_ADD (array, i, strspn, 1, STRSPN_C)
+# endif
+ )
+#endif /* HAVE_STRSPN_IFUNC */
+
+#if HAVE_STRPBRK_IFUNC
+ IFUNC_IMPL (i, name, strpbrk,
+# if HAVE_STRPBRK_Z13
+ IFUNC_IMPL_ADD (array, i, strpbrk,
+ dl_hwcap & HWCAP_S390_VX, STRPBRK_Z13)
+# endif
+# if HAVE_STRPBRK_C
+ IFUNC_IMPL_ADD (array, i, strpbrk, 1, STRPBRK_C)
+# endif
+ )
+#endif /* HAVE_STRPBRK_IFUNC */
+
+#if HAVE_STRCSPN_IFUNC
+ IFUNC_IMPL (i, name, strcspn,
+# if HAVE_STRCSPN_Z13
+ IFUNC_IMPL_ADD (array, i, strcspn,
+ dl_hwcap & HWCAP_S390_VX, STRCSPN_Z13)
+# endif
+# if HAVE_STRCSPN_C
+ IFUNC_IMPL_ADD (array, i, strcspn, 1, STRCSPN_C)
+# endif
+ )
+#endif /* HAVE_STRCSPN_IFUNC */
+
+#if HAVE_MEMCHR_IFUNC
+ IFUNC_IMPL (i, name, memchr,
+# if HAVE_MEMCHR_Z13
+ IFUNC_IMPL_ADD (array, i, memchr,
+ dl_hwcap & HWCAP_S390_VX, MEMCHR_Z13)
+# endif
+# if HAVE_MEMCHR_Z900_G5
+ IFUNC_IMPL_ADD (array, i, memchr, 1, MEMCHR_Z900_G5)
+# endif
+ )
+#endif /* HAVE_MEMCHR_IFUNC */
+
+#if HAVE_RAWMEMCHR_IFUNC
+ IFUNC_IMPL (i, name, rawmemchr,
+# if HAVE_RAWMEMCHR_Z13
+ IFUNC_IMPL_ADD (array, i, rawmemchr,
+ dl_hwcap & HWCAP_S390_VX, RAWMEMCHR_Z13)
+# endif
+# if HAVE_RAWMEMCHR_C
+ IFUNC_IMPL_ADD (array, i, rawmemchr, 1, RAWMEMCHR_C)
+# endif
+ )
+#endif /* HAVE_RAWMEMCHR_IFUNC */
+
+#if HAVE_MEMCCPY_IFUNC
+ IFUNC_IMPL (i, name, memccpy,
+# if HAVE_MEMCCPY_Z13
+ IFUNC_IMPL_ADD (array, i, memccpy,
+ dl_hwcap & HWCAP_S390_VX, MEMCCPY_Z13)
+# endif
+# if HAVE_MEMCCPY_C
+ IFUNC_IMPL_ADD (array, i, memccpy, 1, MEMCCPY_C)
+# endif
+ )
+#endif /* HAVE_MEMCCPY_IFUNC */
+
+#if HAVE_MEMRCHR_IFUNC
+ IFUNC_IMPL (i, name, memrchr,
+# if HAVE_MEMRCHR_Z13
+ IFUNC_IMPL_ADD (array, i, memrchr,
+ dl_hwcap & HWCAP_S390_VX, MEMRCHR_Z13)
+# endif
+# if HAVE_MEMRCHR_C
+ IFUNC_IMPL_ADD (array, i, memrchr, 1, MEMRCHR_C)
+# endif
+ )
+#endif /* HAVE_MEMRCHR_IFUNC */
+
+#if HAVE_WCSLEN_IFUNC
+ IFUNC_IMPL (i, name, wcslen,
+# if HAVE_WCSLEN_Z13
+ IFUNC_IMPL_ADD (array, i, wcslen,
+ dl_hwcap & HWCAP_S390_VX, WCSLEN_Z13)
+# endif
+# if HAVE_WCSLEN_C
+ IFUNC_IMPL_ADD (array, i, wcslen, 1, WCSLEN_C)
+# endif
+ )
+#endif /* HAVE_WCSLEN_IFUNC */
+
+#if HAVE_WCSNLEN_IFUNC
+ IFUNC_IMPL (i, name, wcsnlen,
+# if HAVE_WCSNLEN_Z13
+ IFUNC_IMPL_ADD (array, i, wcsnlen,
+ dl_hwcap & HWCAP_S390_VX, WCSNLEN_Z13)
+# endif
+# if HAVE_WCSNLEN_C
+ IFUNC_IMPL_ADD (array, i, wcsnlen, 1, WCSNLEN_C)
+# endif
+ )
+#endif /* HAVE_WCSNLEN_IFUNC */
+
+#if HAVE_WCSCPY_IFUNC
+ IFUNC_IMPL (i, name, wcscpy,
+# if HAVE_WCSCPY_Z13
+ IFUNC_IMPL_ADD (array, i, wcscpy,
+ dl_hwcap & HWCAP_S390_VX, WCSCPY_Z13)
+# endif
+# if HAVE_WCSCPY_C
+ IFUNC_IMPL_ADD (array, i, wcscpy, 1, WCSCPY_C)
+# endif
+ )
+#endif /* HAVE_WCSCPY_IFUNC */
+
+#if HAVE_WCPCPY_IFUNC
+ IFUNC_IMPL (i, name, wcpcpy,
+# if HAVE_WCPCPY_Z13
+ IFUNC_IMPL_ADD (array, i, wcpcpy,
+ dl_hwcap & HWCAP_S390_VX, WCPCPY_Z13)
+# endif
+# if HAVE_WCPCPY_C
+ IFUNC_IMPL_ADD (array, i, wcpcpy, 1, WCPCPY_C)
+# endif
+ )
+#endif /* HAVE_WCPCPY_IFUNC */
+
+#if HAVE_WCSNCPY_IFUNC
+ IFUNC_IMPL (i, name, wcsncpy,
+# if HAVE_WCSNCPY_Z13
+ IFUNC_IMPL_ADD (array, i, wcsncpy,
+ dl_hwcap & HWCAP_S390_VX, WCSNCPY_Z13)
+# endif
+# if HAVE_WCSNCPY_C
+ IFUNC_IMPL_ADD (array, i, wcsncpy, 1, WCSNCPY_C)
+# endif
+ )
+#endif /* HAVE_WCSNCPY_IFUNC */
+
+#if HAVE_WCPNCPY_IFUNC
+ IFUNC_IMPL (i, name, wcpncpy,
+# if HAVE_WCPNCPY_Z13
+ IFUNC_IMPL_ADD (array, i, wcpncpy,
+ dl_hwcap & HWCAP_S390_VX, WCPNCPY_Z13)
+# endif
+# if HAVE_WCPNCPY_C
+ IFUNC_IMPL_ADD (array, i, wcpncpy, 1, WCPNCPY_C)
+# endif
+ )
+#endif /* HAVE_WCPNCPY_IFUNC */
+
+#if HAVE_WCSCAT_IFUNC
+ IFUNC_IMPL (i, name, wcscat,
+# if HAVE_WCSCAT_Z13
+ IFUNC_IMPL_ADD (array, i, wcscat,
+ dl_hwcap & HWCAP_S390_VX, WCSCAT_Z13)
+# endif
+# if HAVE_WCSCAT_C
+ IFUNC_IMPL_ADD (array, i, wcscat, 1, WCSCAT_C)
+# endif
+ )
+#endif /* HAVE_WCSCAT_IFUNC */
+
+#if HAVE_WCSNCAT_IFUNC
+ IFUNC_IMPL (i, name, wcsncat,
+# if HAVE_WCSNCAT_Z13
+ IFUNC_IMPL_ADD (array, i, wcsncat,
+ dl_hwcap & HWCAP_S390_VX, WCSNCAT_Z13)
+# endif
+# if HAVE_WCSNCAT_C
+ IFUNC_IMPL_ADD (array, i, wcsncat, 1, WCSNCAT_C)
+# endif
+ )
+#endif /* HAVE_WCSNCAT_IFUNC */
+
+#if HAVE_WCSCMP_IFUNC
+ IFUNC_IMPL (i, name, wcscmp,
+# if HAVE_WCSCMP_Z13
+ IFUNC_IMPL_ADD (array, i, wcscmp,
+ dl_hwcap & HWCAP_S390_VX, WCSCMP_Z13)
+# endif
+# if HAVE_WCSCMP_C
+ IFUNC_IMPL_ADD (array, i, wcscmp, 1, WCSCMP_C)
+# endif
+ )
+#endif /* HAVE_WCSCMP_IFUNC */
+
+#if HAVE_WCSNCMP_IFUNC
+ IFUNC_IMPL (i, name, wcsncmp,
+# if HAVE_WCSNCMP_Z13
+ IFUNC_IMPL_ADD (array, i, wcsncmp,
+ dl_hwcap & HWCAP_S390_VX, WCSNCMP_Z13)
+# endif
+# if HAVE_WCSNCMP_C
+ IFUNC_IMPL_ADD (array, i, wcsncmp, 1, WCSNCMP_C)
+# endif
+ )
+#endif /* HAVE_WCSNCMP_IFUNC */
+
+#if HAVE_WCSCHR_IFUNC
+ IFUNC_IMPL (i, name, wcschr,
+# if HAVE_WCSCHR_Z13
+ IFUNC_IMPL_ADD (array, i, wcschr,
+ dl_hwcap & HWCAP_S390_VX, WCSCHR_Z13)
+# endif
+# if HAVE_WCSCHR_C
+ IFUNC_IMPL_ADD (array, i, wcschr, 1, WCSCHR_C)
+# endif
+ )
+#endif /* HAVE_WCSCHR_IFUNC */
+
+#if HAVE_WCSCHRNUL_IFUNC
+ IFUNC_IMPL (i, name, wcschrnul,
+# if HAVE_WCSCHRNUL_Z13
+ IFUNC_IMPL_ADD (array, i, wcschrnul,
+ dl_hwcap & HWCAP_S390_VX, WCSCHRNUL_Z13)
+# endif
+# if HAVE_WCSCHRNUL_C
+ IFUNC_IMPL_ADD (array, i, wcschrnul, 1, WCSCHRNUL_C)
+# endif
+ )
+#endif /* HAVE_WCSCHRNUL_IFUNC */
+
+#if HAVE_WCSRCHR_IFUNC
+ IFUNC_IMPL (i, name, wcsrchr,
+# if HAVE_WCSRCHR_Z13
+ IFUNC_IMPL_ADD (array, i, wcsrchr,
+ dl_hwcap & HWCAP_S390_VX, WCSRCHR_Z13)
+# endif
+# if HAVE_WCSRCHR_C
+ IFUNC_IMPL_ADD (array, i, wcsrchr, 1, WCSRCHR_C)
+# endif
+ )
+#endif /* HAVE_WCSRCHR_IFUNC */
+
+#if HAVE_WCSSPN_IFUNC
+ IFUNC_IMPL (i, name, wcsspn,
+# if HAVE_WCSSPN_Z13
+ IFUNC_IMPL_ADD (array, i, wcsspn,
+ dl_hwcap & HWCAP_S390_VX, WCSSPN_Z13)
+# endif
+# if HAVE_WCSSPN_C
+ IFUNC_IMPL_ADD (array, i, wcsspn, 1, WCSSPN_C)
+# endif
+ )
+#endif /* HAVE_WCSSPN_IFUNC */
+
+#if HAVE_WCSPBRK_IFUNC
+ IFUNC_IMPL (i, name, wcspbrk,
+# if HAVE_WCSPBRK_Z13
+ IFUNC_IMPL_ADD (array, i, wcspbrk,
+ dl_hwcap & HWCAP_S390_VX, WCSPBRK_Z13)
+# endif
+# if HAVE_WCSPBRK_C
+ IFUNC_IMPL_ADD (array, i, wcspbrk, 1, WCSPBRK_C)
+# endif
+ )
+#endif /* HAVE_WCSPBRK_IFUNC */
+
+#if HAVE_WCSCSPN_IFUNC
+ IFUNC_IMPL (i, name, wcscspn,
+# if HAVE_WCSCSPN_Z13
+ IFUNC_IMPL_ADD (array, i, wcscspn,
+ dl_hwcap & HWCAP_S390_VX, WCSCSPN_Z13)
+# endif
+# if HAVE_WCSCSPN_C
+ IFUNC_IMPL_ADD (array, i, wcscspn, 1, WCSCSPN_C)
+# endif
+ )
+#endif /* HAVE_WCSCSPN_IFUNC */
+
+#if HAVE_WMEMCHR_IFUNC
+ IFUNC_IMPL (i, name, wmemchr,
+# if HAVE_WMEMCHR_Z13
+ IFUNC_IMPL_ADD (array, i, wmemchr,
+ dl_hwcap & HWCAP_S390_VX, WMEMCHR_Z13)
+# endif
+# if HAVE_WMEMCHR_C
+ IFUNC_IMPL_ADD (array, i, wmemchr, 1, WMEMCHR_C)
+# endif
+ )
+#endif /* HAVE_WMEMCHR_IFUNC */
+
+#if HAVE_WMEMSET_IFUNC
+ IFUNC_IMPL (i, name, wmemset,
+# if HAVE_WMEMSET_Z13
+ IFUNC_IMPL_ADD (array, i, wmemset,
+ dl_hwcap & HWCAP_S390_VX, WMEMSET_Z13)
+# endif
+# if HAVE_WMEMSET_C
+ IFUNC_IMPL_ADD (array, i, wmemset, 1, WMEMSET_C)
+# endif
+ )
+#endif /* HAVE_WMEMSET_IFUNC */
+
+#if HAVE_WMEMCMP_IFUNC
+ IFUNC_IMPL (i, name, wmemcmp,
+# if HAVE_WMEMCMP_Z13
+ IFUNC_IMPL_ADD (array, i, wmemcmp,
+ dl_hwcap & HWCAP_S390_VX, WMEMCMP_Z13)
+# endif
+# if HAVE_WMEMCMP_C
+ IFUNC_IMPL_ADD (array, i, wmemcmp, 1, WMEMCMP_C)
+# endif
+ )
+#endif /* HAVE_WMEMCMP_IFUNC */
return i;
}
diff --git a/sysdeps/s390/multiarch/ifunc-resolve.h b/sysdeps/s390/multiarch/ifunc-resolve.h
index b42ed922fd..f1218bf76f 100644
--- a/sysdeps/s390/multiarch/ifunc-resolve.h
+++ b/sysdeps/s390/multiarch/ifunc-resolve.h
@@ -1,6 +1,6 @@
/* IFUNC resolver function for CPU specific functions.
32/64 bit S/390 version.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -15,13 +15,18 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <dl-procinfo.h>
#define S390_STFLE_BITS_Z10 34 /* General instructions extension */
#define S390_STFLE_BITS_Z196 45 /* Distinct operands, pop ... */
+#define S390_STFLE_BITS_ARCH13_MIE3 61 /* Miscellaneous-Instruction-Extensions
+ Facility 3, e.g. mvcrl. */
+
+#define S390_IS_ARCH13_MIE3(STFLE_BITS) \
+ ((STFLE_BITS & (1ULL << (63 - S390_STFLE_BITS_ARCH13_MIE3))) != 0)
#define S390_IS_Z196(STFLE_BITS) \
((STFLE_BITS & (1ULL << (63 - S390_STFLE_BITS_Z196))) != 0)
@@ -40,50 +45,15 @@
".machine pop" "\n" \
: "=QS" (STFLE_BITS), "+d" (reg0) \
: : "cc");
-#define s390_libc_ifunc_init() \
+#define s390_libc_ifunc_expr_stfle_init() \
unsigned long long stfle_bits = 0ULL; \
- if (__glibc_likely((dl_hwcap & HWCAP_S390_STFLE) \
- && (dl_hwcap & HWCAP_S390_ZARCH) \
- && (dl_hwcap & HWCAP_S390_HIGH_GPRS))) \
+ if (__glibc_likely ((hwcap & HWCAP_S390_STFLE) \
+ && (hwcap & HWCAP_S390_ZARCH) \
+ && (hwcap & HWCAP_S390_HIGH_GPRS))) \
{ \
S390_STORE_STFLE (stfle_bits); \
}
-#define s390_libc_ifunc(TYPE_FUNC, RESOLVERFUNC, FUNC) \
- /* Make the declarations of the optimized functions hidden in order
- to prevent GOT slots being generated for them. */ \
- extern __typeof (TYPE_FUNC) RESOLVERFUNC##_z196 attribute_hidden; \
- extern __typeof (TYPE_FUNC) RESOLVERFUNC##_z10 attribute_hidden; \
- extern __typeof (TYPE_FUNC) RESOLVERFUNC##_default attribute_hidden; \
- __ifunc (TYPE_FUNC, FUNC, \
- __glibc_likely (S390_IS_Z196 (stfle_bits)) \
- ? RESOLVERFUNC##_z196 \
- : __glibc_likely (S390_IS_Z10 (stfle_bits)) \
- ? RESOLVERFUNC##_z10 \
- : RESOLVERFUNC##_default, \
- unsigned long int dl_hwcap, s390_libc_ifunc_init);
-
-#define s390_vx_libc_ifunc(FUNC) \
- s390_vx_libc_ifunc2_redirected(FUNC, FUNC, FUNC)
-
-#define s390_vx_libc_ifunc_redirected(TYPE_FUNC, FUNC) \
- s390_vx_libc_ifunc2_redirected(TYPE_FUNC, FUNC, FUNC)
-
-#define s390_vx_libc_ifunc2(RESOLVERFUNC, FUNC) \
- s390_vx_libc_ifunc2_redirected(FUNC, RESOLVERFUNC, FUNC)
-
-#define s390_vx_libc_ifunc_init()
-#define s390_vx_libc_ifunc2_redirected(TYPE_FUNC, RESOLVERFUNC, FUNC) \
- /* Make the declarations of the optimized functions hidden in order
- to prevent GOT slots being generated for them. */ \
- extern __typeof (TYPE_FUNC) RESOLVERFUNC##_vx attribute_hidden; \
- extern __typeof (TYPE_FUNC) RESOLVERFUNC##_c attribute_hidden; \
- __ifunc (TYPE_FUNC, FUNC, \
- (dl_hwcap & HWCAP_S390_VX) \
- ? RESOLVERFUNC##_vx \
- : RESOLVERFUNC##_c, \
- unsigned long int dl_hwcap, s390_vx_libc_ifunc_init);
-
#define s390_libc_ifunc_expr_init()
#define s390_libc_ifunc_expr(TYPE_FUNC, FUNC, EXPR) \
__ifunc (TYPE_FUNC, FUNC, EXPR, unsigned long int hwcap, \
diff --git a/sysdeps/s390/multiarch/memccpy.c b/sysdeps/s390/multiarch/memccpy.c
deleted file mode 100644
index 30aae82321..0000000000
--- a/sysdeps/s390/multiarch/memccpy.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Multiple versions of memccpy.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# include <string.h>
-# include <ifunc-resolve.h>
-
-s390_vx_libc_ifunc (__memccpy)
-weak_alias (__memccpy, memccpy)
-
-#else
-# include <string/memccpy.c>
-#endif /* !(defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)) */
diff --git a/sysdeps/s390/multiarch/memchr.c b/sysdeps/s390/multiarch/memchr.c
deleted file mode 100644
index 3885ebaa4d..0000000000
--- a/sysdeps/s390/multiarch/memchr.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Multiple versions of memchr.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define memchr __redirect_memchr
-# include <string.h>
-# undef memchr
-# include <ifunc-resolve.h>
-
-s390_vx_libc_ifunc2_redirected (__redirect_memchr, __memchr, memchr)
-
-#endif
diff --git a/sysdeps/s390/multiarch/mempcpy.c b/sysdeps/s390/multiarch/mempcpy.c
deleted file mode 100644
index 363fe47aef..0000000000
--- a/sysdeps/s390/multiarch/mempcpy.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Multiple versions of mempcpy.
- Copyright (C) 2016-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-
-#if defined SHARED && IS_IN (libc)
-# define mempcpy __redirect_mempcpy
-# define __mempcpy __redirect___mempcpy
-# define __NO_STRING_INLINES
-# define NO_MEMPCPY_STPCPY_REDIRECT
-# include <string.h>
-# undef mempcpy
-# undef __mempcpy
-# include <ifunc-resolve.h>
-
-s390_libc_ifunc (__redirect___mempcpy, ____mempcpy, __mempcpy)
-weak_alias (__mempcpy, mempcpy);
-#endif
diff --git a/sysdeps/s390/multiarch/memrchr.c b/sysdeps/s390/multiarch/memrchr.c
deleted file mode 100644
index 43a44abcf6..0000000000
--- a/sysdeps/s390/multiarch/memrchr.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Multiple versions of memrchr.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# include <string.h>
-# include <ifunc-resolve.h>
-
-s390_vx_libc_ifunc (__memrchr)
-weak_alias (__memrchr, memrchr)
-
-#else
-# include <string/memrchr.c>
-#endif /* !(defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)) */
diff --git a/sysdeps/s390/multiarch/rawmemchr-c.c b/sysdeps/s390/multiarch/rawmemchr-c.c
deleted file mode 100644
index f43c883a76..0000000000
--- a/sysdeps/s390/multiarch/rawmemchr-c.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Default rawmemchr implementation for S/390.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# include <string.h>
-
-# define RAWMEMCHR __rawmemchr_c
-# undef weak_alias
-# define weak_alias(a, b)
-# ifdef SHARED
-# undef libc_hidden_def
-# define libc_hidden_def(name) \
- __hidden_ver1 (__rawmemchr_c, __GI___rawmemchr, __rawmemchr_c);
-# endif /* SHARED */
-
-extern __typeof (rawmemchr) __rawmemchr_c attribute_hidden;
-
-# include <string/rawmemchr.c>
-#endif /* !(defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)) */
diff --git a/sysdeps/s390/multiarch/rawmemchr.c b/sysdeps/s390/multiarch/rawmemchr.c
deleted file mode 100644
index 5fdb2252df..0000000000
--- a/sysdeps/s390/multiarch/rawmemchr.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Multiple versions of rawmemchr.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define __rawmemchr __redirect___rawmemchr
-# include <string.h>
-# undef __rawmemchr
-# include <ifunc-resolve.h>
-
-s390_vx_libc_ifunc2_redirected (__redirect___rawmemchr, __rawmemchr
- , __rawmemchr)
-weak_alias (__rawmemchr, rawmemchr)
-
-#else
-# include <string/rawmemchr.c>
-#endif /* !(defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)) */
diff --git a/sysdeps/s390/multiarch/stpcpy-c.c b/sysdeps/s390/multiarch/stpcpy-c.c
deleted file mode 100644
index 4a1c3e5832..0000000000
--- a/sysdeps/s390/multiarch/stpcpy-c.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Default stpcpy implementation for S/390.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define STPCPY __stpcpy_c
-# undef weak_alias
-# define weak_alias(a, b)
-# ifdef SHARED
-# undef libc_hidden_def
-# define libc_hidden_def(name) \
- __hidden_ver1 (__stpcpy_c, __GI___stpcpy, __stpcpy_c);
-# undef libc_hidden_builtin_def
-# define libc_hidden_builtin_def(name) \
- strong_alias (__stpcpy_c, __stpcpy_c_1); \
- __hidden_ver1 (__stpcpy_c_1, __GI_stpcpy, __stpcpy_c_1);
-# endif /* SHARED */
-
-
-# include <string/stpcpy.c>
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
diff --git a/sysdeps/s390/multiarch/stpcpy.c b/sysdeps/s390/multiarch/stpcpy.c
deleted file mode 100644
index 654f9dfbef..0000000000
--- a/sysdeps/s390/multiarch/stpcpy.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Multiple versions of stpcpy.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define stpcpy __redirect_stpcpy
-# define __stpcpy __redirect___stpcpy
-/* Omit the stpcpy inline definitions because it would redefine stpcpy. */
-# define __NO_STRING_INLINES
-# define NO_MEMPCPY_STPCPY_REDIRECT
-# include <string.h>
-# undef stpcpy
-# undef __stpcpy
-# include <ifunc-resolve.h>
-
-s390_vx_libc_ifunc_redirected (__redirect___stpcpy, __stpcpy);
-weak_alias (__stpcpy, stpcpy)
-
-#else
-# include <string/stpcpy.c>
-#endif /* !(defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)) */
diff --git a/sysdeps/s390/multiarch/stpncpy-c.c b/sysdeps/s390/multiarch/stpncpy-c.c
deleted file mode 100644
index 45e50aa9e7..0000000000
--- a/sysdeps/s390/multiarch/stpncpy-c.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Default stpncpy implementation for S/390.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define STPNCPY __stpncpy_c
-# ifdef SHARED
-# undef libc_hidden_def
-# define libc_hidden_def(name) \
- __hidden_ver1 (__stpncpy_c, __GI___stpncpy, __stpncpy_c);
-# endif /* SHARED */
-
-# include <string/stpncpy.c>
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
diff --git a/sysdeps/s390/multiarch/stpncpy.c b/sysdeps/s390/multiarch/stpncpy.c
deleted file mode 100644
index f7f9d51a50..0000000000
--- a/sysdeps/s390/multiarch/stpncpy.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Multiple versions of stpncpy.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define stpncpy __redirect_stpncpy
-# define __stpncpy __redirect___stpncpy
-# include <string.h>
-# undef stpncpy
-# undef __stpncpy
-# include <ifunc-resolve.h>
-
-s390_vx_libc_ifunc_redirected (__redirect___stpncpy, __stpncpy)
-weak_alias (__stpncpy, stpncpy)
-
-#else
-# include <string/stpncpy.c>
-#endif /* !(defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)) */
diff --git a/sysdeps/s390/multiarch/strcat-c.c b/sysdeps/s390/multiarch/strcat-c.c
deleted file mode 100644
index f871faa7b5..0000000000
--- a/sysdeps/s390/multiarch/strcat-c.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Default strcat implementation for S/390.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define STRCAT __strcat_c
-# ifdef SHARED
-# undef libc_hidden_builtin_def
-# define libc_hidden_builtin_def(name) \
- __hidden_ver1 (__strcat_c, __GI_strcat, __strcat_c);
-# endif /* SHARED */
-
-# include <string/strcat.c>
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
diff --git a/sysdeps/s390/multiarch/strcat.c b/sysdeps/s390/multiarch/strcat.c
deleted file mode 100644
index 7d4126b44f..0000000000
--- a/sysdeps/s390/multiarch/strcat.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Multiple versions of strcat.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define strcat __redirect_strcat
-# include <string.h>
-# undef strcat
-# include <ifunc-resolve.h>
-
-s390_vx_libc_ifunc2_redirected (__redirect_strcat, __strcat, strcat)
-
-#else
-# include <string/strcat.c>
-#endif /* !(defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)) */
diff --git a/sysdeps/s390/multiarch/strchr-c.c b/sysdeps/s390/multiarch/strchr-c.c
deleted file mode 100644
index 606cb56788..0000000000
--- a/sysdeps/s390/multiarch/strchr-c.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Default strchr implementation for S/390.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define STRCHR __strchr_c
-# undef weak_alias
-# ifdef SHARED
-# undef libc_hidden_builtin_def
-# define libc_hidden_builtin_def(name) \
- __hidden_ver1 (__strchr_c, __GI_strchr, __strchr_c);
-# endif /* SHARED */
-
-# include <string/strchr.c>
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
diff --git a/sysdeps/s390/multiarch/strchr.c b/sysdeps/s390/multiarch/strchr.c
deleted file mode 100644
index 8aa33a51cc..0000000000
--- a/sysdeps/s390/multiarch/strchr.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Multiple versions of strchr.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define strchr __redirect_strchr
-/* Omit the strchr inline definitions because it would redefine strchr. */
-# define __NO_STRING_INLINES
-# include <string.h>
-# undef strchr
-# include <ifunc-resolve.h>
-
-s390_vx_libc_ifunc2_redirected (__redirect_strchr, __strchr, strchr)
-weak_alias (strchr, index)
-
-#else
-# include <string/strchr.c>
-#endif /* !(defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)) */
diff --git a/sysdeps/s390/multiarch/strchrnul-c.c b/sysdeps/s390/multiarch/strchrnul-c.c
deleted file mode 100644
index 020cebcf3e..0000000000
--- a/sysdeps/s390/multiarch/strchrnul-c.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Default strchrnul implementation for S/390.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define STRCHRNUL __strchrnul_c
-# define __strchrnul STRCHRNUL
-# undef weak_alias
-# define weak_alias(name, alias)
-
-# include <string/strchrnul.c>
-#endif
diff --git a/sysdeps/s390/multiarch/strchrnul.c b/sysdeps/s390/multiarch/strchrnul.c
deleted file mode 100644
index 62dfc6bd90..0000000000
--- a/sysdeps/s390/multiarch/strchrnul.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Multiple versions of strchrnul.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# include <string.h>
-# include <ifunc-resolve.h>
-
-s390_vx_libc_ifunc (__strchrnul)
-weak_alias (__strchrnul, strchrnul)
-
-#else
-# include <string/strchrnul.c>
-#endif /* !(defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)) */
diff --git a/sysdeps/s390/multiarch/strcmp.c b/sysdeps/s390/multiarch/strcmp.c
deleted file mode 100644
index 7c8b17b304..0000000000
--- a/sysdeps/s390/multiarch/strcmp.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Multiple versions of strcmp.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define strcmp __redirect_strcmp
-/* Omit the strcmp inline definitions because it would redefine strcmp. */
-# define __NO_STRING_INLINES
-# include <string.h>
-# include <ifunc-resolve.h>
-# undef strcmp
-
-s390_vx_libc_ifunc2_redirected (__redirect_strcmp, __strcmp, strcmp)
-
-#endif
diff --git a/sysdeps/s390/multiarch/strcpy.c b/sysdeps/s390/multiarch/strcpy.c
deleted file mode 100644
index 8f32a13f67..0000000000
--- a/sysdeps/s390/multiarch/strcpy.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Multiple versions of strcpy.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define strcpy __redirect_strcpy
-# include <string.h>
-# undef strcpy
-# include <ifunc-resolve.h>
-
-s390_vx_libc_ifunc2_redirected (__redirect_strcpy, __strcpy, strcpy)
-
-#endif
diff --git a/sysdeps/s390/multiarch/strcspn-c.c b/sysdeps/s390/multiarch/strcspn-c.c
deleted file mode 100644
index 7b454f5b56..0000000000
--- a/sysdeps/s390/multiarch/strcspn-c.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Default strcspn implementation for S/390.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define STRCSPN __strcspn_c
-# ifdef SHARED
-# undef libc_hidden_builtin_def
-# define libc_hidden_builtin_def(name) \
- __hidden_ver1 (__strcspn_c, __GI_strcspn, __strcspn_c);
-# endif /* SHARED */
-
-# include <string/strcspn.c>
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
diff --git a/sysdeps/s390/multiarch/strcspn.c b/sysdeps/s390/multiarch/strcspn.c
deleted file mode 100644
index 418ffcdded..0000000000
--- a/sysdeps/s390/multiarch/strcspn.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Multiple versions of strcspn.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define strcspn __redirect_strcspn
-/* Omit the strcspn inline definitions because it would redefine strcspn. */
-# define __NO_STRING_INLINES
-# include <string.h>
-# undef strcspn
-# include <ifunc-resolve.h>
-
-s390_vx_libc_ifunc2_redirected (__redirect_strcspn, __strcspn, strcspn)
-
-#else
-# include <string/strcspn.c>
-#endif /* !(defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)) */
diff --git a/sysdeps/s390/multiarch/strlen-c.c b/sysdeps/s390/multiarch/strlen-c.c
deleted file mode 100644
index a2c8e43624..0000000000
--- a/sysdeps/s390/multiarch/strlen-c.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Default strlen implementation for S/390.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define STRLEN __strlen_c
-# ifdef SHARED
-# undef libc_hidden_builtin_def
-# define libc_hidden_builtin_def(name) \
- __hidden_ver1 (__strlen_c, __GI_strlen, __strlen_c);
-# endif /* SHARED */
-
-# include <string/strlen.c>
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
diff --git a/sysdeps/s390/multiarch/strlen.c b/sysdeps/s390/multiarch/strlen.c
deleted file mode 100644
index 0edf8b7d02..0000000000
--- a/sysdeps/s390/multiarch/strlen.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Multiple versions of strlen.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define strlen __redirect_strlen
-# include <string.h>
-# include <ifunc-resolve.h>
-# undef strlen
-
-s390_vx_libc_ifunc2_redirected (__redirect_strlen, __strlen, strlen)
-
-#else
-# include <string/strlen.c>
-#endif /* !(defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)) */
diff --git a/sysdeps/s390/multiarch/strncat.c b/sysdeps/s390/multiarch/strncat.c
deleted file mode 100644
index 94b8dffa85..0000000000
--- a/sysdeps/s390/multiarch/strncat.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Multiple versions of strncat.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# include <string.h>
-# include <ifunc-resolve.h>
-
-s390_vx_libc_ifunc2 (__strncat, strncat)
-
-#else
-# include <string/strncat.c>
-#endif /* !(defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)) */
diff --git a/sysdeps/s390/multiarch/strncmp-c.c b/sysdeps/s390/multiarch/strncmp-c.c
deleted file mode 100644
index e54277ec1b..0000000000
--- a/sysdeps/s390/multiarch/strncmp-c.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Default strncmp implementation for S/390.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define STRNCMP __strncmp_c
-# ifdef SHARED
-# undef libc_hidden_builtin_def
-# define libc_hidden_builtin_def(name) \
- __hidden_ver1 (__strncmp_c, __GI_strncmp, __strncmp_c);
-# endif /* SHARED */
-
-# include <string/strncmp.c>
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
diff --git a/sysdeps/s390/multiarch/strncmp.c b/sysdeps/s390/multiarch/strncmp.c
deleted file mode 100644
index 0ec472c3b0..0000000000
--- a/sysdeps/s390/multiarch/strncmp.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Multiple versions of strncmp.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define strncmp __redirect_strncmp
-/* Omit the strncmp inline definitions because it would redefine strncmp. */
-# define __NO_STRING_INLINES
-# include <string.h>
-# undef strncmp
-# include <ifunc-resolve.h>
-
-s390_vx_libc_ifunc2_redirected (__redirect_strncmp, __strncmp, strncmp)
-
-#else
-# include <string/strncmp.c>
-#endif /* !(defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)) */
diff --git a/sysdeps/s390/multiarch/strncpy.c b/sysdeps/s390/multiarch/strncpy.c
deleted file mode 100644
index 2d4c456d96..0000000000
--- a/sysdeps/s390/multiarch/strncpy.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Multiple versions of strncpy.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define strncpy __redirect_strncpy
-/* Omit the strncpy inline definitions because it would redefine strncpy. */
-# define __NO_STRING_INLINES
-# include <string.h>
-# undef strncpy
-# include <ifunc-resolve.h>
-
-s390_vx_libc_ifunc2_redirected (__redirect_strncpy, __strncpy, strncpy);
-
-#endif
diff --git a/sysdeps/s390/multiarch/strnlen-c.c b/sysdeps/s390/multiarch/strnlen-c.c
deleted file mode 100644
index 353e83ed35..0000000000
--- a/sysdeps/s390/multiarch/strnlen-c.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Default strnlen implementation for S/390.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define STRNLEN __strnlen_c
-# ifdef SHARED
-# undef libc_hidden_def
-# define libc_hidden_def(name) \
- __hidden_ver1 (__strnlen_c, __GI_strnlen, __strnlen_c); \
- strong_alias (__strnlen_c, __strnlen_c_1); \
- __hidden_ver1 (__strnlen_c_1, __GI___strnlen, __strnlen_c_1);
-# endif /* SHARED */
-
-# include <string/strnlen.c>
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
diff --git a/sysdeps/s390/multiarch/strnlen.c b/sysdeps/s390/multiarch/strnlen.c
deleted file mode 100644
index 0f9cff5d69..0000000000
--- a/sysdeps/s390/multiarch/strnlen.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Multiple versions of strnlen.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define strnlen __redirect_strnlen
-# define __strnlen __redirect___strnlen
-# include <string.h>
-# undef strnlen
-# undef __strnlen
-# include <ifunc-resolve.h>
-
-s390_vx_libc_ifunc_redirected (__redirect___strnlen, __strnlen)
-weak_alias (__strnlen, strnlen)
-
-#else
-# include <string/strnlen.c>
-#endif /* !(defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)) */
diff --git a/sysdeps/s390/multiarch/strpbrk-c.c b/sysdeps/s390/multiarch/strpbrk-c.c
deleted file mode 100644
index 2c0517aeb5..0000000000
--- a/sysdeps/s390/multiarch/strpbrk-c.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Default strpbrk implementation for S/390.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define STRPBRK __strpbrk_c
-# ifdef SHARED
-# undef libc_hidden_builtin_def
-# define libc_hidden_builtin_def(name) \
- __hidden_ver1 (__strpbrk_c, __GI_strpbrk, __strpbrk_c);
-# endif /* SHARED */
-
-# include <string/strpbrk.c>
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
diff --git a/sysdeps/s390/multiarch/strpbrk.c b/sysdeps/s390/multiarch/strpbrk.c
deleted file mode 100644
index 11afc268f7..0000000000
--- a/sysdeps/s390/multiarch/strpbrk.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Multiple versions of strpbrk.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define strpbrk __redirect_strpbrk
-/* Omit the strpbrk inline definitions because it would redefine strpbrk. */
-# define __NO_STRING_INLINES
-# include <string.h>
-# undef strpbrk
-# include <ifunc-resolve.h>
-
-s390_vx_libc_ifunc2_redirected (__redirect_strpbrk, __strpbrk, strpbrk)
-
-#else
-# include <string/strpbrk.c>
-#endif /* !(defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)) */
diff --git a/sysdeps/s390/multiarch/strrchr-c.c b/sysdeps/s390/multiarch/strrchr-c.c
deleted file mode 100644
index 53ceb8086f..0000000000
--- a/sysdeps/s390/multiarch/strrchr-c.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Default strrchr implementation for S/390.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define STRRCHR __strrchr_c
-# undef weak_alias
-# ifdef SHARED
-# undef libc_hidden_builtin_def
-# define libc_hidden_builtin_def(name) \
- __hidden_ver1 (__strrchr_c, __GI_strrchr, __strrchr_c);
-# endif /* SHARED */
-
-# include <string/strrchr.c>
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
diff --git a/sysdeps/s390/multiarch/strrchr.c b/sysdeps/s390/multiarch/strrchr.c
deleted file mode 100644
index e00e25a3a4..0000000000
--- a/sysdeps/s390/multiarch/strrchr.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Multiple versions of strrchr.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define strrchr __redirect_strrchr
-# include <string.h>
-# undef strrchr
-# include <ifunc-resolve.h>
-
-s390_vx_libc_ifunc2_redirected (__redirect_strrchr, __strrchr, strrchr)
-weak_alias (strrchr, rindex);
-
-#else
-# include <string/strrchr.c>
-#endif /* !(defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)) */
diff --git a/sysdeps/s390/multiarch/strspn-c.c b/sysdeps/s390/multiarch/strspn-c.c
deleted file mode 100644
index 0efe61bfb2..0000000000
--- a/sysdeps/s390/multiarch/strspn-c.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Default strspn implementation for S/390.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define STRSPN __strspn_c
-# ifdef SHARED
-# undef libc_hidden_builtin_def
-# define libc_hidden_builtin_def(name) \
- __hidden_ver1 (__strspn_c, __GI_strspn, __strspn_c);
-# endif /* SHARED */
-
-# include <string/strspn.c>
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
diff --git a/sysdeps/s390/multiarch/strspn.c b/sysdeps/s390/multiarch/strspn.c
deleted file mode 100644
index bedbe98cfc..0000000000
--- a/sysdeps/s390/multiarch/strspn.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Multiple versions of strspn.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define strspn __redirect_strspn
-/* Omit the strspn inline definitions because it would redefine strspn. */
-# define __NO_STRING_INLINES
-# include <string.h>
-# undef strspn
-# include <ifunc-resolve.h>
-
-s390_vx_libc_ifunc2_redirected (__redirect_strspn, __strspn, strspn)
-
-#else
-# include <string/strspn.c>
-#endif /* !(defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)) */
diff --git a/sysdeps/s390/multiarch/utf16-utf32-z9.c b/sysdeps/s390/multiarch/utf16-utf32-z9.c
index 46a23b09bf..bf6296ae07 100644
--- a/sysdeps/s390/multiarch/utf16-utf32-z9.c
+++ b/sysdeps/s390/multiarch/utf16-utf32-z9.c
@@ -1,6 +1,6 @@
/* Conversion between UTF-16 and UTF-32 BE/internal - multiarch s390 version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/s390/utf16-utf32-z9.c>
#include <ifunc-resolve.h>
diff --git a/sysdeps/s390/multiarch/utf8-utf16-z9.c b/sysdeps/s390/multiarch/utf8-utf16-z9.c
index ad9b3fbcea..afd831b71a 100644
--- a/sysdeps/s390/multiarch/utf8-utf16-z9.c
+++ b/sysdeps/s390/multiarch/utf8-utf16-z9.c
@@ -1,6 +1,6 @@
/* Conversion between UTF-8 and UTF-16 - multiarch s390 version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/s390/utf8-utf16-z9.c>
#include <ifunc-resolve.h>
diff --git a/sysdeps/s390/multiarch/utf8-utf32-z9.c b/sysdeps/s390/multiarch/utf8-utf32-z9.c
index 011feeeea8..cc992b71f8 100644
--- a/sysdeps/s390/multiarch/utf8-utf32-z9.c
+++ b/sysdeps/s390/multiarch/utf8-utf32-z9.c
@@ -1,6 +1,6 @@
/* Conversion between UTF-8 and UTF-32 - multiarch s390 version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/s390/utf8-utf32-z9.c>
#include <ifunc-resolve.h>
diff --git a/sysdeps/s390/multiarch/wcpcpy.c b/sysdeps/s390/multiarch/wcpcpy.c
deleted file mode 100644
index f19d376d85..0000000000
--- a/sysdeps/s390/multiarch/wcpcpy.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Multiple versions of wcpcpy.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# include <wchar.h>
-# include <ifunc-resolve.h>
-
-s390_vx_libc_ifunc (__wcpcpy)
-weak_alias (__wcpcpy, wcpcpy)
-
-#else
-# include <wcsmbs/wcpcpy.c>
-#endif /* !(defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)) */
diff --git a/sysdeps/s390/multiarch/wcpncpy.c b/sysdeps/s390/multiarch/wcpncpy.c
deleted file mode 100644
index b72265fbe9..0000000000
--- a/sysdeps/s390/multiarch/wcpncpy.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Multiple versions of wcpncpy.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# include <wchar.h>
-# include <ifunc-resolve.h>
-
-s390_vx_libc_ifunc (__wcpncpy)
-weak_alias (__wcpncpy, wcpncpy)
-
-#else
-# include <wcsmbs/wcpncpy.c>
-#endif /* !(defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)) */
diff --git a/sysdeps/s390/multiarch/wcscat.c b/sysdeps/s390/multiarch/wcscat.c
deleted file mode 100644
index 33e4f6da3f..0000000000
--- a/sysdeps/s390/multiarch/wcscat.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Multiple versions of wcscat.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# include <wchar.h>
-# include <ifunc-resolve.h>
-
-s390_vx_libc_ifunc (__wcscat)
-weak_alias (__wcscat, wcscat)
-
-#else
-# include <wcsmbs/wcscat.c>
-#endif /* !(defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)) */
diff --git a/sysdeps/s390/multiarch/wcschr-c.c b/sysdeps/s390/multiarch/wcschr-c.c
deleted file mode 100644
index 8d6679c7f2..0000000000
--- a/sysdeps/s390/multiarch/wcschr-c.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Default wcschr implementation for S/390.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define WCSCHR __wcschr_c
-
-# include <wchar.h>
-extern __typeof (__wcschr) __wcschr_c;
-# undef weak_alias
-# define weak_alias(name, alias)
-# ifdef SHARED
-# undef libc_hidden_def
-# define libc_hidden_def(name) \
- __hidden_ver1 (__wcschr_c, __GI_wcschr, __wcschr_c); \
- strong_alias (__wcschr_c, __wcschr_c_1); \
- __hidden_ver1 (__wcschr_c_1, __GI___wcschr, __wcschr_c_1);
-# undef libc_hidden_weak
-# define libc_hidden_weak(name)
-# endif /* SHARED */
-
-# include <wcsmbs/wcschr.c>
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
diff --git a/sysdeps/s390/multiarch/wcschr.c b/sysdeps/s390/multiarch/wcschr.c
deleted file mode 100644
index f44138f771..0000000000
--- a/sysdeps/s390/multiarch/wcschr.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Multiple versions of wcschr.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define wcschr __redirect_wcschr
-# define __wcschr __redirect___wcschr
-# include <wchar.h>
-# undef wcschr
-# undef __wcschr
-# include <ifunc-resolve.h>
-
-s390_vx_libc_ifunc_redirected (__redirect___wcschr, __wcschr)
-weak_alias (__wcschr, wcschr)
-
-#else
-# include <wcsmbs/wcschr.c>
-#endif /* !(defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)) */
diff --git a/sysdeps/s390/multiarch/wcschrnul.c b/sysdeps/s390/multiarch/wcschrnul.c
deleted file mode 100644
index 807d7ee089..0000000000
--- a/sysdeps/s390/multiarch/wcschrnul.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Multiple versions of wcschrnul.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# include <wchar.h>
-# include <ifunc-resolve.h>
-
-s390_vx_libc_ifunc (__wcschrnul)
-weak_alias (__wcschrnul, wcschrnul)
-
-#else
-# include <wcsmbs/wcschrnul.c>
-#endif /* !(defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)) */
diff --git a/sysdeps/s390/multiarch/wcscmp-c.c b/sysdeps/s390/multiarch/wcscmp-c.c
deleted file mode 100644
index ce0817ae97..0000000000
--- a/sysdeps/s390/multiarch/wcscmp-c.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Default wcscmp implementation for S/390.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define WCSCMP __wcscmp_c
-
-# include <wchar.h>
-extern __typeof (wcscmp) __wcscmp_c;
-# undef weak_alias
-# define weak_alias(name, alias)
-# ifdef SHARED
-# undef libc_hidden_def
-# define libc_hidden_def(name) \
- __hidden_ver1 (__wcscmp_c, __GI___wcscmp, __wcscmp_c);
-# endif /* SHARED */
-# include <wcsmbs/wcscmp.c>
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
diff --git a/sysdeps/s390/multiarch/wcscmp.c b/sysdeps/s390/multiarch/wcscmp.c
deleted file mode 100644
index 5ee0fd4d88..0000000000
--- a/sysdeps/s390/multiarch/wcscmp.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Multiple versions of wcscmp.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define __wcscmp __redirect___wcscmp
-# include <wchar.h>
-# undef __wcscmp
-# include <ifunc-resolve.h>
-
-s390_vx_libc_ifunc_redirected (__redirect___wcscmp, __wcscmp)
-weak_alias (__wcscmp, wcscmp)
-
-#else
-# include <wcsmbs/wcscmp.c>
-#endif /* !(defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)) */
diff --git a/sysdeps/s390/multiarch/wcscpy.c b/sysdeps/s390/multiarch/wcscpy.c
deleted file mode 100644
index e69baa6c59..0000000000
--- a/sysdeps/s390/multiarch/wcscpy.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Multiple versions of wcscpy.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# include <wchar.h>
-# include <ifunc-resolve.h>
-
-s390_vx_libc_ifunc2 (__wcscpy, wcscpy)
-
-#else
-# include <wcsmbs/wcscpy.c>
-#endif /* !(defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)) */
diff --git a/sysdeps/s390/multiarch/wcscspn.c b/sysdeps/s390/multiarch/wcscspn.c
deleted file mode 100644
index 707327522a..0000000000
--- a/sysdeps/s390/multiarch/wcscspn.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Multiple versions of wcscspn.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# include <wchar.h>
-# include <ifunc-resolve.h>
-
-s390_vx_libc_ifunc2 (__wcscspn, wcscspn)
-
-#else
-# include <wcsmbs/wcscspn.c>
-#endif /* !(defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)) */
diff --git a/sysdeps/s390/multiarch/wcslen.c b/sysdeps/s390/multiarch/wcslen.c
deleted file mode 100644
index 3a1d1a32c9..0000000000
--- a/sysdeps/s390/multiarch/wcslen.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Multiple versions of wcslen.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# include <wchar.h>
-# include <ifunc-resolve.h>
-
-s390_vx_libc_ifunc (__wcslen)
-weak_alias (__wcslen, wcslen)
-
-#else
-# include <wcsmbs/wcslen.c>
-#endif /* !(defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)) */
diff --git a/sysdeps/s390/multiarch/wcsncat.c b/sysdeps/s390/multiarch/wcsncat.c
deleted file mode 100644
index c49b8ff786..0000000000
--- a/sysdeps/s390/multiarch/wcsncat.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Multiple versions of wcsncat.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# include <wchar.h>
-# include <ifunc-resolve.h>
-
-s390_vx_libc_ifunc2 (__wcsncat, wcsncat)
-
-#else
-# include <wcsmbs/wcsncat.c>
-#endif /* !(defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)) */
diff --git a/sysdeps/s390/multiarch/wcsncmp.c b/sysdeps/s390/multiarch/wcsncmp.c
deleted file mode 100644
index ee5f08c1e4..0000000000
--- a/sysdeps/s390/multiarch/wcsncmp.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Multiple versions of wcsncmp.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# include <wchar.h>
-# include <ifunc-resolve.h>
-
-s390_vx_libc_ifunc2 (__wcsncmp, wcsncmp)
-
-#else
-# include <wcsmbs/wcsncmp.c>
-#endif /* !(defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)) */
diff --git a/sysdeps/s390/multiarch/wcsncpy.c b/sysdeps/s390/multiarch/wcsncpy.c
deleted file mode 100644
index 7209c7d431..0000000000
--- a/sysdeps/s390/multiarch/wcsncpy.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Multiple versions of wcsncpy.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# include <wchar.h>
-# include <ifunc-resolve.h>
-
-s390_vx_libc_ifunc (__wcsncpy)
-weak_alias (__wcsncpy, wcsncpy)
-
-#else
-# include <wcsmbs/wcsncpy.c>
-#endif /* !(defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)) */
diff --git a/sysdeps/s390/multiarch/wcsnlen.c b/sysdeps/s390/multiarch/wcsnlen.c
deleted file mode 100644
index 5234074b1f..0000000000
--- a/sysdeps/s390/multiarch/wcsnlen.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Multiple versions of wcsnlen.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# include <wchar.h>
-# include <ifunc-resolve.h>
-
-s390_vx_libc_ifunc (__wcsnlen)
-weak_alias (__wcsnlen, wcsnlen)
-
-#else
-# include <wcsmbs/wcsnlen.c>
-#endif /* !(defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)) */
diff --git a/sysdeps/s390/multiarch/wcspbrk-c.c b/sysdeps/s390/multiarch/wcspbrk-c.c
deleted file mode 100644
index 6b6e7aade4..0000000000
--- a/sysdeps/s390/multiarch/wcspbrk-c.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Default wcspbrk implementation for S/390.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define WCSPBRK __wcspbrk_c
-
-# include <wchar.h>
-extern __typeof (wcspbrk) __wcspbrk_c;
-# ifdef SHARED
-# undef libc_hidden_def
-# define libc_hidden_def(name) \
- __hidden_ver1 (__wcspbrk_c, __GI_wcspbrk, __wcspbrk_c);
-# endif /* SHARED */
-
-# include <wcsmbs/wcspbrk.c>
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
diff --git a/sysdeps/s390/multiarch/wcspbrk.c b/sysdeps/s390/multiarch/wcspbrk.c
deleted file mode 100644
index 97876328b5..0000000000
--- a/sysdeps/s390/multiarch/wcspbrk.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Multiple versions of wcspbrk.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define wcspbrk __redirect_wcspbrk
-# include <wchar.h>
-# undef wcspbrk
-# include <ifunc-resolve.h>
-
-s390_vx_libc_ifunc2_redirected (__redirect_wcspbrk, __wcspbrk, wcspbrk)
-
-#else
-# include <wcsmbs/wcspbrk.c>
-#endif /* !(defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)) */
diff --git a/sysdeps/s390/multiarch/wcsrchr.c b/sysdeps/s390/multiarch/wcsrchr.c
deleted file mode 100644
index aa0b8a8f82..0000000000
--- a/sysdeps/s390/multiarch/wcsrchr.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Multiple versions of wcsrchr.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# include <wchar.h>
-# include <ifunc-resolve.h>
-
-s390_vx_libc_ifunc2 (__wcsrchr, wcsrchr)
-
-#else
-# include <wcsmbs/wcsrchr.c>
-#endif /* !(defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)) */
diff --git a/sysdeps/s390/multiarch/wcsspn-c.c b/sysdeps/s390/multiarch/wcsspn-c.c
deleted file mode 100644
index 2c0bd0f4e6..0000000000
--- a/sysdeps/s390/multiarch/wcsspn-c.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Default wcsspn implementation for S/390.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define WCSSPN __wcsspn_c
-
-# include <wchar.h>
-extern __typeof (wcsspn) __wcsspn_c;
-# ifdef SHARED
-# undef libc_hidden_def
-# define libc_hidden_def(name) \
- __hidden_ver1 (__wcsspn_c, __GI_wcsspn, __wcsspn_c);
-# endif /* SHARED */
-
-# include <wcsmbs/wcsspn.c>
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
diff --git a/sysdeps/s390/multiarch/wcsspn.c b/sysdeps/s390/multiarch/wcsspn.c
deleted file mode 100644
index 7743144a8c..0000000000
--- a/sysdeps/s390/multiarch/wcsspn.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Multiple versions of wcsspn.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define wcsspn __redirect_wcsspn
-# include <wchar.h>
-# undef wcsspn
-# include <ifunc-resolve.h>
-
-s390_vx_libc_ifunc2_redirected (__redirect_wcsspn, __wcsspn, wcsspn)
-
-#else
-# include <wcsmbs/wcsspn.c>
-#endif /* !(defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)) */
diff --git a/sysdeps/s390/multiarch/wmemchr-c.c b/sysdeps/s390/multiarch/wmemchr-c.c
deleted file mode 100644
index 089392b512..0000000000
--- a/sysdeps/s390/multiarch/wmemchr-c.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Default wmemchr implementation for S/390.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define WMEMCHR __wmemchr_c
-
-# include <wchar.h>
-extern __typeof (wmemchr) __wmemchr_c;
-# undef weak_alias
-# define weak_alias(name, alias)
-# ifdef SHARED
-# undef libc_hidden_def
-# define libc_hidden_def(name) \
- __hidden_ver1 (__wmemchr_c, __GI___wmemchr, __wmemchr_c);
-# undef libc_hidden_weak
-# define libc_hidden_weak(name) \
- strong_alias (__wmemchr_c, __wmemchr_c_1); \
- __hidden_ver1 (__wmemchr_c_1, __GI_wmemchr, __wmemchr_c_1);
-# endif /* SHARED */
-
-# include <wcsmbs/wmemchr.c>
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
diff --git a/sysdeps/s390/multiarch/wmemchr.c b/sysdeps/s390/multiarch/wmemchr.c
deleted file mode 100644
index 6b55c1d7fa..0000000000
--- a/sysdeps/s390/multiarch/wmemchr.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Multiple versions of wmemchr.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define wmemchr __redirect_wmemchr
-# define __wmemchr __redirect___wmemchr
-# include <wchar.h>
-# undef wmemchr
-# undef __wmemchr
-# include <ifunc-resolve.h>
-
-s390_vx_libc_ifunc_redirected (__redirect___wmemchr, __wmemchr)
-weak_alias (__wmemchr, wmemchr)
-
-#else
-# include <wcsmbs/wmemchr.c>
-#endif /* !(defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)) */
diff --git a/sysdeps/s390/multiarch/wmemcmp.c b/sysdeps/s390/multiarch/wmemcmp.c
deleted file mode 100644
index a4cb440c45..0000000000
--- a/sysdeps/s390/multiarch/wmemcmp.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Multiple versions of wmemcmp.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# include <wchar.h>
-# include <ifunc-resolve.h>
-
-s390_vx_libc_ifunc2 (__wmemcmp, wmemcmp)
-
-#else
-# include <wcsmbs/wmemcmp.c>
-#endif /* !(defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)) */
diff --git a/sysdeps/s390/multiarch/wmemset-c.c b/sysdeps/s390/multiarch/wmemset-c.c
deleted file mode 100644
index 1969cf93dc..0000000000
--- a/sysdeps/s390/multiarch/wmemset-c.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Default wmemset implementation for S/390.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define WMEMSET __wmemset_c
-
-# include <wchar.h>
-extern __typeof (__wmemset) __wmemset_c;
-# undef weak_alias
-# define weak_alias(name, alias)
-# ifdef SHARED
-# undef libc_hidden_def
-# define libc_hidden_def(name) \
- __hidden_ver1 (__wmemset_c, __GI___wmemset, __wmemset_c);
-# undef libc_hidden_weak
-# define libc_hidden_weak(name) \
- strong_alias (__wmemset_c, __wmemset_c_1); \
- __hidden_ver1 (__wmemset_c_1, __GI_wmemset, __wmemset_c_1);
-# endif /* SHARED */
-
-# include <wcsmbs/wmemset.c>
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
diff --git a/sysdeps/s390/multiarch/wmemset.c b/sysdeps/s390/multiarch/wmemset.c
deleted file mode 100644
index 149b481470..0000000000
--- a/sysdeps/s390/multiarch/wmemset.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Multiple versions of wmemset.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define wmemset __redirect_wmemset
-# define __wmemset __redirect___wmemset
-# include <wchar.h>
-# undef wmemset
-# undef __wmemset
-# include <ifunc-resolve.h>
-
-s390_vx_libc_ifunc_redirected (__redirect___wmemset, __wmemset)
-weak_alias (__wmemset, wmemset)
-
-#else
-# include <wcsmbs/wmemset.c>
-#endif /* !(defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)) */
diff --git a/sysdeps/s390/nptl/Makefile b/sysdeps/s390/nptl/Makefile
index 2b0d392c06..7e0d75aee6 100644
--- a/sysdeps/s390/nptl/Makefile
+++ b/sysdeps/s390/nptl/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2018 Free Software Foundation, Inc.
+# Copyright (C) 2003-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
ifeq ($(subdir),csu)
gen-as-const-headers += tcb-offsets.sym
diff --git a/sysdeps/s390/nptl/bits/pthreadtypes-arch.h b/sysdeps/s390/nptl/bits/pthreadtypes-arch.h
deleted file mode 100644
index 20db42c8a0..0000000000
--- a/sysdeps/s390/nptl/bits/pthreadtypes-arch.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/* Copyright (C) 2003-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _BITS_PTHREADTYPES_ARCH_H
-#define _BITS_PTHREADTYPES_ARCH_H 1
-
-#include <bits/wordsize.h>
-
-#if __WORDSIZE == 64
-# define __SIZEOF_PTHREAD_ATTR_T 56
-# define __SIZEOF_PTHREAD_MUTEX_T 40
-# define __SIZEOF_PTHREAD_RWLOCK_T 56
-# define __SIZEOF_PTHREAD_BARRIER_T 32
-#else
-# define __SIZEOF_PTHREAD_ATTR_T 36
-# define __SIZEOF_PTHREAD_MUTEX_T 24
-# define __SIZEOF_PTHREAD_RWLOCK_T 32
-# define __SIZEOF_PTHREAD_BARRIER_T 20
-#endif
-#define __SIZEOF_PTHREAD_MUTEXATTR_T 4
-#define __SIZEOF_PTHREAD_CONDATTR_T 4
-#define __SIZEOF_PTHREAD_COND_T 48
-#define __SIZEOF_PTHREAD_RWLOCKATTR_T 8
-#define __SIZEOF_PTHREAD_BARRIERATTR_T 4
-
-/* Definitions for internal mutex struct. */
-#define __PTHREAD_COMPAT_PADDING_MID
-#define __PTHREAD_COMPAT_PADDING_END
-#define __PTHREAD_MUTEX_LOCK_ELISION 1
-#define __PTHREAD_MUTEX_NUSERS_AFTER_KIND (__WORDSIZE != 64)
-#define __PTHREAD_MUTEX_USE_UNION (__WORDSIZE != 64)
-
-#define __LOCK_ALIGNMENT
-#define __ONCE_ALIGNMENT
-
-struct __pthread_rwlock_arch_t
-{
- unsigned int __readers;
- unsigned int __writers;
- unsigned int __wrphase_futex;
- unsigned int __writers_futex;
- unsigned int __pad3;
- unsigned int __pad4;
-#if __WORDSIZE == 64
- int __cur_writer;
- int __shared;
- unsigned long int __pad1;
- unsigned long int __pad2;
- /* FLAGS must stay at this position in the structure to maintain
- binary compatibility. */
- unsigned int __flags;
-# else
- unsigned char __pad1;
- unsigned char __pad2;
- unsigned char __shared;
- /* FLAGS must stay at this position in the structure to maintain
- binary compatibility. */
- unsigned char __flags;
- int __cur_writer;
-#endif
-};
-
-#define __PTHREAD_RWLOCK_ELISION_EXTRA 0
-
-#endif /* bits/pthreadtypes.h */
diff --git a/sysdeps/s390/nptl/bits/semaphore.h b/sysdeps/s390/nptl/bits/semaphore.h
index cb1b294922..e41d6bbce1 100644
--- a/sysdeps/s390/nptl/bits/semaphore.h
+++ b/sysdeps/s390/nptl/bits/semaphore.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Martin Schwidefsky <schwidefsky@de.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SEMAPHORE_H
# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
diff --git a/sysdeps/s390/nptl/bits/struct_mutex.h b/sysdeps/s390/nptl/bits/struct_mutex.h
new file mode 100644
index 0000000000..8f3c755c32
--- /dev/null
+++ b/sysdeps/s390/nptl/bits/struct_mutex.h
@@ -0,0 +1,63 @@
+/* S390 internal mutex struct definitions.
+ 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; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _THREAD_MUTEX_INTERNAL_H
+#define _THREAD_MUTEX_INTERNAL_H 1
+
+struct __pthread_mutex_s
+{
+ int __lock;
+ unsigned int __count;
+ int __owner;
+#if __WORDSIZE == 64
+ unsigned int __nusers;
+#endif
+ /* KIND must stay at this position in the structure to maintain
+ binary compatibility with static initializers. */
+ int __kind;
+#if __WORDSIZE == 64
+ short __spins;
+ short __elision;
+ __pthread_list_t __list;
+# define __PTHREAD_MUTEX_HAVE_PREV 1
+#else
+ unsigned int __nusers;
+ __extension__ union
+ {
+ struct
+ {
+ short __espins;
+ short __elision;
+ } _d;
+# define __spins _d.__espins
+# define __elision _d.__elision
+ __pthread_slist_t __list;
+ };
+# define __PTHREAD_MUTEX_HAVE_PREV 0
+#endif
+};
+
+#if __WORDSIZE == 64
+# define __PTHREAD_MUTEX_INITIALIZER(__kind) \
+ 0, 0, 0, 0, __kind, 0, 0, { 0, 0 }
+#else
+# define __PTHREAD_MUTEX_INITIALIZER(__kind) \
+ 0, 0, 0, __kind, 0, { { 0, 0 } }
+#endif
+
+#endif
diff --git a/sysdeps/s390/nptl/bits/struct_rwlock.h b/sysdeps/s390/nptl/bits/struct_rwlock.h
new file mode 100644
index 0000000000..5adad874a3
--- /dev/null
+++ b/sysdeps/s390/nptl/bits/struct_rwlock.h
@@ -0,0 +1,58 @@
+/* S390 internal rwlock struct definitions.
+ 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; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _RWLOCK_INTERNAL_H
+#define _RWLOCK_INTERNAL_H
+
+struct __pthread_rwlock_arch_t
+{
+ unsigned int __readers;
+ unsigned int __writers;
+ unsigned int __wrphase_futex;
+ unsigned int __writers_futex;
+ unsigned int __pad3;
+ unsigned int __pad4;
+#if __WORDSIZE == 64
+ int __cur_writer;
+ int __shared;
+ unsigned long int __pad1;
+ unsigned long int __pad2;
+ /* FLAGS must stay at this position in the structure to maintain
+ binary compatibility. */
+ unsigned int __flags;
+# else
+ unsigned char __pad1;
+ unsigned char __pad2;
+ unsigned char __shared;
+ /* FLAGS must stay at this position in the structure to maintain
+ binary compatibility. */
+ unsigned char __flags;
+ int __cur_writer;
+#endif
+};
+
+#if __WORDSIZE == 64
+# define __PTHREAD_RWLOCK_INITIALIZER(__flags) \
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, __flags
+#else
+# define __PTHREAD_RWLOCK_INITIALIZER(__flags) \
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, __flags, 0
+#endif
+
+#endif
diff --git a/sysdeps/s390/nptl/pthread-offsets.h b/sysdeps/s390/nptl/pthread-offsets.h
index bdda1f197e..9e2112120b 100644
--- a/sysdeps/s390/nptl/pthread-offsets.h
+++ b/sysdeps/s390/nptl/pthread-offsets.h
@@ -1,15 +1,13 @@
#include <bits/wordsize.h>
#if __WORDSIZE == 64
-# define __PTHREAD_MUTEX_NUSERS_OFFSET 12
# define __PTHREAD_MUTEX_KIND_OFFSET 16
-# define __PTHREAD_MUTEX_SPINS_OFFSET 20
-# define __PTHREAD_MUTEX_ELISION_OFFSET 22
-# define __PTHREAD_MUTEX_LIST_OFFSET 24
#else
-# define __PTHREAD_MUTEX_NUSERS_OFFSET 16
# define __PTHREAD_MUTEX_KIND_OFFSET 12
-# define __PTHREAD_MUTEX_SPINS_OFFSET 20
-# define __PTHREAD_MUTEX_ELISION_OFFSET 22
-# define __PTHREAD_MUTEX_LIST_OFFSET 20
+#endif
+
+#if __WORDSIZE == 64
+# define __PTHREAD_RWLOCK_FLAGS_OFFSET 48
+#else
+# define __PTHREAD_RWLOCK_FLAGS_OFFSET 27
#endif
diff --git a/sysdeps/s390/nptl/pthreaddef.h b/sysdeps/s390/nptl/pthreaddef.h
index 410ae7b896..2d63ddd4a9 100644
--- a/sysdeps/s390/nptl/pthreaddef.h
+++ b/sysdeps/s390/nptl/pthreaddef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Default stack size. */
#define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024)
diff --git a/sysdeps/s390/nptl/tls.h b/sysdeps/s390/nptl/tls.h
index 220bdfffb3..af32ed76da 100644
--- a/sysdeps/s390/nptl/tls.h
+++ b/sysdeps/s390/nptl/tls.h
@@ -1,5 +1,5 @@
/* Definition for thread-local data handling. NPTL/s390 version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _TLS_H
#define _TLS_H 1
diff --git a/sysdeps/s390/rawmemchr-c.c b/sysdeps/s390/rawmemchr-c.c
new file mode 100644
index 0000000000..f201a94bf3
--- /dev/null
+++ b/sysdeps/s390/rawmemchr-c.c
@@ -0,0 +1,34 @@
+/* Default rawmemchr implementation for S/390.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-rawmemchr.h>
+
+#if HAVE_RAWMEMCHR_C
+# if HAVE_RAWMEMCHR_IFUNC
+# define RAWMEMCHR RAWMEMCHR_C
+# undef weak_alias
+# define weak_alias(a, b)
+# if defined SHARED && IS_IN (libc)
+# undef libc_hidden_def
+# define libc_hidden_def(name) \
+ __hidden_ver1 (__rawmemchr_c, __GI___rawmemchr, __rawmemchr_c);
+# endif
+# endif
+
+# include <string/rawmemchr.c>
+#endif
diff --git a/sysdeps/s390/multiarch/rawmemchr-vx.S b/sysdeps/s390/rawmemchr-vx.S
index d5778be068..5b3ce56197 100644
--- a/sysdeps/s390/multiarch/rawmemchr-vx.S
+++ b/sysdeps/s390/rawmemchr-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of rawmemchr.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,9 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
+#include <ifunc-rawmemchr.h>
+
+#if HAVE_RAWMEMCHR_Z13
# include "sysdep.h"
# include "asm-syntax.h"
@@ -37,7 +39,7 @@
-v17=index of unequal
-v18=c replicated
*/
-ENTRY(__rawmemchr_vx)
+ENTRY(RAWMEMCHR_Z13)
.machine "z13"
.machinemode "zarch_nohighgprs"
@@ -88,5 +90,15 @@ ENTRY(__rawmemchr_vx)
.Lend_found:
la %r2,0(%r5,%r2) /* Return pointer to character. */
br %r14
-END(__rawmemchr_vx)
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
+END(RAWMEMCHR_Z13)
+
+# if ! HAVE_RAWMEMCHR_IFUNC
+strong_alias (RAWMEMCHR_Z13, __rawmemchr)
+weak_alias (__rawmemchr, rawmemchr)
+# endif
+
+# if ! HAVE_RAWMEMCHR_C && defined SHARED && IS_IN (libc)
+strong_alias (RAWMEMCHR_Z13, __GI___rawmemchr)
+# endif
+
+#endif /* HAVE_RAWMEMCHR_Z13 */
diff --git a/sysdeps/s390/rawmemchr.c b/sysdeps/s390/rawmemchr.c
new file mode 100644
index 0000000000..8b696ddebc
--- /dev/null
+++ b/sysdeps/s390/rawmemchr.c
@@ -0,0 +1,41 @@
+/* Multiple versions of rawmemchr.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-rawmemchr.h>
+
+#if HAVE_RAWMEMCHR_IFUNC
+# define __rawmemchr __redirect___rawmemchr
+# include <string.h>
+# undef __rawmemchr
+# include <ifunc-resolve.h>
+
+# if HAVE_RAWMEMCHR_C
+extern __typeof (__redirect___rawmemchr) RAWMEMCHR_C attribute_hidden;
+# endif
+
+# if HAVE_RAWMEMCHR_Z13
+extern __typeof (__redirect___rawmemchr) RAWMEMCHR_Z13 attribute_hidden;
+# endif
+
+s390_libc_ifunc_expr (__redirect___rawmemchr, __rawmemchr,
+ (HAVE_RAWMEMCHR_Z13 && (hwcap & HWCAP_S390_VX))
+ ? RAWMEMCHR_Z13
+ : RAWMEMCHR_DEFAULT
+ )
+weak_alias (__rawmemchr, rawmemchr)
+#endif /* HAVE_RAWMEMCHR_IFUNC */
diff --git a/sysdeps/s390/s390-32/__longjmp.c b/sysdeps/s390/s390-32/__longjmp.c
index eb3f78b383..18a913b1b6 100644
--- a/sysdeps/s390/s390-32/__longjmp.c
+++ b/sysdeps/s390/s390-32/__longjmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sysdep.h>
diff --git a/sysdeps/s390/s390-32/add_n.S b/sysdeps/s390/s390-32/add_n.S
index 0232a1b31e..fb47f150e0 100644
--- a/sysdeps/s390/s390-32/add_n.S
+++ b/sysdeps/s390/s390-32/add_n.S
@@ -1,6 +1,6 @@
/* Add two limb vectors of the same length > 0 and store sum in a third
limb vector.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
This file is part of the GNU MP Library.
@@ -16,7 +16,7 @@
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not,
- see <http://www.gnu.org/licenses/>. */
+ see <https://www.gnu.org/licenses/>. */
/*
INPUT PARAMETERS
diff --git a/sysdeps/s390/s390-32/addmul_1.S b/sysdeps/s390/s390-32/addmul_1.S
index ff592cf34e..f95eec530a 100644
--- a/sysdeps/s390/s390-32/addmul_1.S
+++ b/sysdeps/s390/s390-32/addmul_1.S
@@ -1,6 +1,6 @@
/* S390 __mpn_addmul_1 -- Multiply a limb vector with a limb and add
the result to a second limb vector.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
This file is part of the GNU MP Library.
@@ -16,7 +16,7 @@
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not,
- see <http://www.gnu.org/licenses/>. */
+ see <https://www.gnu.org/licenses/>. */
/*
INPUT PARAMETERS
diff --git a/sysdeps/s390/s390-32/backtrace.c b/sysdeps/s390/s390-32/backtrace.c
index f9e85b26d9..6325aa0f8c 100644
--- a/sysdeps/s390/s390-32/backtrace.c
+++ b/sysdeps/s390/s390-32/backtrace.c
@@ -1,5 +1,5 @@
/* Return backtrace of current program state.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky <schwidefsky@de.ibm.com>.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libc-lock.h>
#include <dlfcn.h>
diff --git a/sysdeps/s390/s390-32/bcopy.S b/sysdeps/s390/s390-32/bcopy.S
deleted file mode 100644
index 560e04fdee..0000000000
--- a/sysdeps/s390/s390-32/bcopy.S
+++ /dev/null
@@ -1,85 +0,0 @@
-/* bcopy -- copy a block from source to destination. S/390 version.
- This file is part of the GNU C Library.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
- Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-/* INPUT PARAMETERS
- %r2 = address of source
- %r3 = address of destination
- %r4 = number of bytes to copy. */
-
-#include "sysdep.h"
-#include "asm-syntax.h"
-
- .text
-ENTRY(__bcopy)
- ltr %r1,%r4 # zero bcopy ?
- jz .L4
- clr %r2,%r3 # check against destructive overlap
- jnl .L0
- alr %r1,%r2
- clr %r1,%r3
- jh .L7
-.L0: ahi %r4,-1 # length - 1
- lr %r1,%r4
- srl %r1,8
- ltr %r1,%r1 # < 256 bytes to move ?
- jz .L2
- chi %r1,255 # > 1MB to move ?
- jh .L5
-.L1: mvc 0(256,%r3),0(%r2) # move in 256 byte chunks
- la %r2,256(%r2)
- la %r3,256(%r3)
- brct %r1,.L1
-.L2: bras %r1,.L3 # setup base pointer for execute
- mvc 0(1,%r3),0(%r2) # instruction for execute
-.L3: ex %r4,0(%r1) # execute mvc with length ((%r4)&255)+1
-.L4: br %r14
-
- # data copies > 1MB are faster with mvcle.
-.L5: ahi %r4,1 # length + 1
- lr %r5,%r4 # source length
- lr %r4,%r2 # source address
- lr %r2,%r3 # set destination
- lr %r3,%r5 # destination length = source length
-.L6: mvcle %r2,%r4,0 # thats it, MVCLE is your friend
- jo .L6
- br %r14
-.L7: # destructive overlay, can not use mvcle
- lr %r1,%r2 # bcopy is called with source,dest
- lr %r2,%r3 # memmove with dest,source! Oh, well...
- lr %r3,%r1
- basr %r1,0
-.L8:
-#ifdef PIC
- al %r1,.L9-.L8(%r1) # get address of global offset table
- # load address of memmove
- l %r1,memmove@GOT(%r1)
- br %r1
-.L9: .long _GLOBAL_OFFSET_TABLE_-.L8
-#else
- al %r1,.L9-.L8(%r1) # load address of memmove
- br %r1 # jump to memmove
-.L9: .long memmove-.L8
-#endif
-
-END(__bcopy)
-
-#ifndef NO_WEAK_ALIAS
-weak_alias (__bcopy, bcopy)
-#endif
-
diff --git a/sysdeps/s390/s390-32/bzero.S b/sysdeps/s390/s390-32/bzero.S
deleted file mode 100644
index 897aa2154a..0000000000
--- a/sysdeps/s390/s390-32/bzero.S
+++ /dev/null
@@ -1,42 +0,0 @@
-/* bzero -- set a block of memory to zero. IBM S390 version
- This file is part of the GNU C Library.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
- Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-/*
- * R2 = address to memory area
- * R3 = number of bytes to fill
- */
-
-#include "sysdep.h"
-#include "asm-syntax.h"
-
- .text
-ENTRY(__bzero)
- ltr %r3,%r3
- jz .L1
- sr %r1,%r1 # set pad byte to zero
- sr %r4,%r4 # no source for MVCLE, only a pad byte
- sr %r5,%r5
-.L0: mvcle %r2,%r4,0(%r1) # thats it, MVCLE is your friend
- jo .L0
-.L1: br %r14
-END(__bzero)
-
-#ifndef NO_WEAK_ALIAS
-weak_alias (__bzero, bzero)
-#endif
diff --git a/sysdeps/s390/s390-32/crti.S b/sysdeps/s390/s390-32/crti.S
index 44b1a704fd..befa47bacd 100644
--- a/sysdeps/s390/s390-32/crti.S
+++ b/sysdeps/s390/s390-32/crti.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for S/390.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* crti.S puts a function prologue at the beginning of the .init and
.fini sections and defines global symbols for those addresses, so
diff --git a/sysdeps/s390/s390-32/crtn.S b/sysdeps/s390/s390-32/crtn.S
index 6cc476ea43..acf853ec1e 100644
--- a/sysdeps/s390/s390-32/crtn.S
+++ b/sysdeps/s390/s390-32/crtn.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for S/390.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* crtn.S puts function epilogues in the .init and .fini sections
corresponding to the prologues in crti.S. */
diff --git a/sysdeps/s390/s390-32/dl-machine.h b/sysdeps/s390/s390-32/dl-machine.h
index ded41adff8..a257b3bb3a 100644
--- a/sysdeps/s390/s390-32/dl-machine.h
+++ b/sysdeps/s390/s390-32/dl-machine.h
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation inline functions. S390 Version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Carl Pederson & Martin Schwidefsky.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef dl_machine_h
#define dl_machine_h
diff --git a/sysdeps/s390/s390-32/dl-sysdep.h b/sysdeps/s390/s390-32/dl-sysdep.h
index b2e063ff09..4c9f65e39e 100644
--- a/sysdeps/s390/s390-32/dl-sysdep.h
+++ b/sysdeps/s390/s390-32/dl-sysdep.h
@@ -1,5 +1,5 @@
/* System-specific settings for dynamic linker code. S/390 version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include_next <dl-sysdep.h>
diff --git a/sysdeps/s390/s390-32/dl-trampoline.S b/sysdeps/s390/s390-32/dl-trampoline.S
index 1ec409bc56..8ac9ff6d7a 100644
--- a/sysdeps/s390/s390-32/dl-trampoline.S
+++ b/sysdeps/s390/s390-32/dl-trampoline.S
@@ -1,5 +1,5 @@
/* PLT trampolines. s390 version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/s390/s390-32/dl-trampoline.h b/sysdeps/s390/s390-32/dl-trampoline.h
index d36c002743..cf0df41112 100644
--- a/sysdeps/s390/s390-32/dl-trampoline.h
+++ b/sysdeps/s390/s390-32/dl-trampoline.h
@@ -1,5 +1,5 @@
/* PLT trampolines. s390 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This code is used in dl-runtime.c to call the `fixup' function
and then redirect to the address it returns. */
@@ -26,8 +26,9 @@
* v24, v26, v28, v30, v25, v27, v29, v31 : vector parameter registers
* 24(r15), 28(r15) : PLT arguments PLT1, PLT2
* 96(r15) : additional stack parameters
- * The normal clobber rules for function calls apply:
- * r0 - r5 : call clobbered
+ * The slightly tightened normal clobber rules for function calls apply:
+ * r0 : call saved (for __fentry__)
+ * r1 - r5 : call clobbered
* r6 - r13 : call saved
* r14 : return address (call clobbered)
* r15 : stack pointer (call saved)
@@ -40,45 +41,69 @@
* v16 - v31 : call clobbered
*/
-
+#define CFA_OFF 96
+#define FRAME_OFF CFA_OFF + FRAME_SIZE
+#define V24_OFF -224
+#define V25_OFF -208
+#define V26_OFF -192
+#define V27_OFF -176
+#define V28_OFF -160
+#define V29_OFF -144
+#define V30_OFF -128
+#define V31_OFF -112
+#define R0_OFF -76
+#define PLT1_OFF -72
+#define PLT2_OFF -68
+#define R2_OFF -64
+#define R3_OFF -60
+#define R4_OFF -56
+#define R5_OFF -52
+#define R14_OFF -48
+#define R15_OFF -44
+#define F0_OFF -40
+#define F2_OFF -32
.globl _dl_runtime_resolve
.type _dl_runtime_resolve, @function
cfi_startproc
.align 16
_dl_runtime_resolve:
- stm %r2,%r5,32(%r15) # save registers
- cfi_offset (r2, -64)
- cfi_offset (r3, -60)
- cfi_offset (r4, -56)
- cfi_offset (r5, -52)
- stm %r14,%r15,48(%r15)
- cfi_offset (r14, -48)
- cfi_offset (r15, -44)
- std %f0,56(%r15)
- cfi_offset (f0, -40)
- std %f2,64(%r15)
- cfi_offset (f2, -32)
+ st %r0,CFA_OFF+R0_OFF(%r15)
+ cfi_offset (r0, R0_OFF)
+ stm %r2,%r5,CFA_OFF+R2_OFF(%r15) # save registers
+ cfi_offset (r2, R2_OFF)
+ cfi_offset (r3, R3_OFF)
+ cfi_offset (r4, R4_OFF)
+ cfi_offset (r5, R5_OFF)
+ stm %r14,%r15,CFA_OFF+R14_OFF(%r15)
+ cfi_offset (r14, R14_OFF)
+ cfi_offset (r15, R15_OFF)
+ std %f0,CFA_OFF+F0_OFF(%r15)
+ cfi_offset (f0, F0_OFF)
+ std %f2,CFA_OFF+F2_OFF(%r15)
+ cfi_offset (f2, F2_OFF)
lr %r0,%r15
- lm %r2,%r3,24(%r15) # load args saved by PLT
+ lm %r2,%r3,CFA_OFF+PLT1_OFF(%r15) # load args saved by PLT
#ifdef RESTORE_VRS
- ahi %r15,-224 # create stack frame
- cfi_adjust_cfa_offset (224)
+# define FRAME_SIZE (CFA_OFF + 128)
+ ahi %r15,-FRAME_SIZE # create stack frame
+ cfi_adjust_cfa_offset (FRAME_SIZE)
.machine push
.machine "z13"
.machinemode "zarch_nohighgprs"
- vstm %v24,%v31,96(%r15) # store call-clobbered vr arguments
- cfi_offset (v24, -224)
- cfi_offset (v25, -208)
- cfi_offset (v26, -192)
- cfi_offset (v27, -176)
- cfi_offset (v28, -160)
- cfi_offset (v29, -144)
- cfi_offset (v30, -128)
- cfi_offset (v31, -112)
+ vstm %v24,%v31,FRAME_OFF+V24_OFF(%r15) # save call-clobbered vr args
+ cfi_offset (v24, V24_OFF)
+ cfi_offset (v25, V25_OFF)
+ cfi_offset (v26, V26_OFF)
+ cfi_offset (v27, V27_OFF)
+ cfi_offset (v28, V28_OFF)
+ cfi_offset (v29, V29_OFF)
+ cfi_offset (v30, V30_OFF)
+ cfi_offset (v31, V31_OFF)
.machine pop
#else
- ahi %r15,-96 # create stack frame
- cfi_adjust_cfa_offset (96)
+# define FRAME_SIZE CFA_OFF
+ ahi %r15,-FRAME_SIZE # create stack frame
+ cfi_adjust_cfa_offset (FRAME_SIZE)
#endif
st %r0,0(%r15) # write backchain
basr %r1,0
@@ -89,142 +114,223 @@ _dl_runtime_resolve:
.machine push
.machine "z13"
.machinemode "zarch_nohighgprs"
- vlm %v24,%v31,96(%r15) # restore vector registers
+ vlm %v24,%v31,FRAME_OFF+V24_OFF(%r15) # restore vector registers
.machine pop
- lm %r14,%r15,272(%r15)# remove stack frame and restore registers
-#else
- lm %r14,%r15,144(%r15)# remove stack frame and restore registers
#endif
- cfi_def_cfa_offset (96)
- ld %f0,56(%r15)
- ld %f2,64(%r15)
- lm %r2,%r5,32(%r15)
+ lm %r14,%r15,FRAME_OFF+R14_OFF(%r15) # restore frame and registers
+#undef FRAME_SIZE
+ cfi_def_cfa_offset (CFA_OFF)
+ ld %f0,CFA_OFF+F0_OFF(%r15)
+ ld %f2,CFA_OFF+F2_OFF(%r15)
+ lm %r2,%r5,CFA_OFF+R2_OFF(%r15)
+ l %r0,CFA_OFF+R0_OFF(%r15)
br %r1
1: .long _dl_fixup - 0b
cfi_endproc
.size _dl_runtime_resolve, .-_dl_runtime_resolve
-
+#undef V24_OFF
+#undef V25_OFF
+#undef V26_OFF
+#undef V27_OFF
+#undef V28_OFF
+#undef V29_OFF
+#undef V30_OFF
+#undef V31_OFF
+#undef R0_OFF
+#undef PLT1_OFF
+#undef PLT2_OFF
+#undef R2_OFF
+#undef R3_OFF
+#undef R4_OFF
+#undef R5_OFF
+#undef R14_OFF
+#undef R15_OFF
+#undef F0_OFF
+#undef F2_OFF
#ifndef PROF
+# define SIZEOF_STRUCT_LA_S390_32_REGS 168
+# define REGS_OFF -264
+# define R2_OFF -264
+# define R3_OFF -260
+# define R4_OFF -256
+# define R5_OFF -252
+# define R6_OFF -248
+# define F0_OFF -240
+# define F2_OFF -232
+# define V24_OFF -224
+# define V25_OFF -208
+# define V26_OFF -192
+# define V27_OFF -176
+# define V28_OFF -160
+# define V29_OFF -144
+# define V30_OFF -128
+# define V31_OFF -112
+# define R0_OFF -88
+# define R12_OFF -84
+# define R14_OFF -80
+# define FRAMESIZE_OFF -76
+# define PLT1_OFF -72
+# define PLT2_OFF -68
+# define PREGS_OFF -64
+# define RETVAL_OFF -56
+# define RET_R2_OFF -56
+# define RET_R3_OFF -52
+# define RET_F0_OFF -48
+# define RET_V24_OFF -40
.globl _dl_runtime_profile
.type _dl_runtime_profile, @function
cfi_startproc
.align 16
_dl_runtime_profile:
- st %r12,12(%r15) # r12 is used as backup of r15
- cfi_offset (r12, -84)
- st %r14,16(%r15)
- cfi_offset (r14, -80)
- lr %r12,%r15 # backup stack pointer
+ st %r0,CFA_OFF+R0_OFF(%r15)
+ cfi_offset (r0, R0_OFF)
+ st %r12,CFA_OFF+R12_OFF(%r15) # r12 is used as backup of r15
+ cfi_offset (r12, R12_OFF)
+ st %r14,CFA_OFF+R14_OFF(%r15)
+ cfi_offset (r14, R14_OFF)
+ lr %r12,%r15 # backup stack pointer
cfi_def_cfa_register (12)
- ahi %r15,-264 # create stack frame:
- # 96 + sizeof(La_s390_32_regs)
- st %r12,0(%r15) # save backchain
+# define FRAME_SIZE (CFA_OFF + SIZEOF_STRUCT_LA_S390_32_REGS)
+ ahi %r15,-FRAME_SIZE # create stack frame:
+ st %r12,0(%r15) # save backchain
- stm %r2,%r6,96(%r15) # save registers
- cfi_offset (r2, -264) # + r6 needed as arg for
- cfi_offset (r3, -260) # _dl_profile_fixup
- cfi_offset (r4, -256)
- cfi_offset (r5, -252)
- cfi_offset (r6, -248)
- std %f0,120(%r15)
- cfi_offset (f0, -240)
- std %f2,128(%r15)
- cfi_offset (f2, -232)
-#ifdef RESTORE_VRS
+ stm %r2,%r6,FRAME_OFF+R2_OFF(%r15) # save registers
+ cfi_offset (r2, R2_OFF) # + r6 needed as arg for
+ cfi_offset (r3, R3_OFF) # _dl_profile_fixup
+ cfi_offset (r4, R4_OFF)
+ cfi_offset (r5, R5_OFF)
+ cfi_offset (r6, R6_OFF)
+ std %f0,FRAME_OFF+F0_OFF(%r15)
+ cfi_offset (f0, F0_OFF)
+ std %f2,FRAME_OFF+F2_OFF(%r15)
+ cfi_offset (f2, F2_OFF)
+# ifdef RESTORE_VRS
.machine push
.machine "z13"
.machinemode "zarch_nohighgprs"
- vstm %v24,%v31,136(%r15) # store call-clobbered vr arguments
- cfi_offset (v24, -224)
- cfi_offset (v25, -208)
- cfi_offset (v26, -192)
- cfi_offset (v27, -176)
- cfi_offset (v28, -160)
- cfi_offset (v29, -144)
- cfi_offset (v30, -128)
- cfi_offset (v31, -112)
+ vstm %v24,%v31,FRAME_OFF+V24_OFF(%r15) # store call-clobbered
+ cfi_offset (v24, V24_OFF) # vr arguments
+ cfi_offset (v25, V25_OFF)
+ cfi_offset (v26, V26_OFF)
+ cfi_offset (v27, V27_OFF)
+ cfi_offset (v28, V28_OFF)
+ cfi_offset (v29, V29_OFF)
+ cfi_offset (v30, V30_OFF)
+ cfi_offset (v31, V31_OFF)
.machine pop
-#endif
+# endif
- lm %r2,%r3,24(%r12) # load arguments saved by PLT
- lr %r4,%r14 # return address as third parameter
+ lm %r2,%r3,CFA_OFF+PLT1_OFF(%r12) # load arguments saved by PLT
+ lr %r4,%r14 # return address as third parm
basr %r1,0
0: l %r14,6f-0b(%r1)
- la %r5,96(%r15) # pointer to struct La_s390_32_regs
- la %r6,20(%r12) # long int * framesize
- bas %r14,0(%r14,%r1) # call resolver
- lr %r1,%r2 # function addr returned in r2
- ld %f0,120(%r15) # restore call-clobbered arg fprs
- ld %f2,128(%r15)
-#ifdef RESTORE_VRS
+ la %r5,FRAME_OFF+REGS_OFF(%r15) # struct La_s390_32_regs *
+ la %r6,CFA_OFF+FRAMESIZE_OFF(%r12) # long int * framesize
+ bas %r14,0(%r14,%r1) # call resolver
+ lr %r1,%r2 # function addr returned in r2
+ ld %f0,FRAME_OFF+F0_OFF(%r15) # restore call-clobbered
+ ld %f2,FRAME_OFF+F2_OFF(%r15) # arg fprs
+# ifdef RESTORE_VRS
.machine push
.machine "z13"
- .machinemode "zarch_nohighgprs"
- vlm %v24,%v31,136(%r15) # restore call-clobbered arg vrs
+ .machinemode "zarch_nohighgprs" # restore call-clobbered
+ vlm %v24,%v31,FRAME_OFF+V24_OFF(%r15)# arg vrs
.machine pop
-#endif
- icm %r0,15,20(%r12) # load & test framesize
+# endif
+ icm %r0,15,CFA_OFF+FRAMESIZE_OFF(%r12) # load & test framesize
jnm 2f
-
- lm %r2,%r6,96(%r15) # framesize < 0 means no pltexit call
- # so we can do a tail call without
- # copying the arg overflow area
- lr %r15,%r12 # remove stack frame
+ # framesize < 0 means no
+ lm %r2,%r6,FRAME_OFF+R2_OFF(%r15) # pltexit call, so we can do a
+ # tail call without
+ # copying the arg overflow area
+ lr %r15,%r12 # remove stack frame
cfi_def_cfa_register (15)
- l %r14,16(%r15) # restore registers
- l %r12,12(%r15)
- br %r1 # tail-call to the resolved function
+ l %r14,CFA_OFF+R14_OFF(%r15) # restore registers
+ l %r12,CFA_OFF+R12_OFF(%r15)
+ l %r0,CFA_OFF+R0_OFF(%r15)
+ br %r1 # tail call
cfi_def_cfa_register (12)
-2: la %r4,96(%r15) # pointer to struct La_s390_32_regs
- st %r4,32(%r12)
- jz 4f # framesize == 0 ?
- ahi %r0,7 # align framesize to 8
+2: la %r4,FRAME_OFF+REGS_OFF(%r15) # struct La_s390_32_regs *
+ st %r4,CFA_OFF+PREGS_OFF(%r12)
+ jz 4f # framesize == 0 ?
+ ahi %r0,7 # align framesize to 8
lhi %r2,-8
nr %r0,%r2
- slr %r15,%r0 # make room for framesize bytes
- st %r12,0(%r15) # save backchain
- la %r2,96(%r15)
- la %r3,96(%r12)
+ slr %r15,%r0 # make room for framesize bytes
+ st %r12,0(%r15) # save backchain
+ la %r2,FRAME_OFF+REGS_OFF(%r15)
+ la %r3,CFA_OFF(%r12)
srl %r0,3
-3: mvc 0(8,%r2),0(%r3) # copy additional parameters
+3: mvc 0(8,%r2),0(%r3) # copy additional parameters
la %r2,8(%r2)
la %r3,8(%r3)
brct %r0,3b
-4: lm %r2,%r6,0(%r4) # load register parameters
- basr %r14,%r1 # call resolved function
- stm %r2,%r3,40(%r12) # store return values r2, r3, f0
- std %f0,48(%r12) # to struct La_s390_32_retval
-#ifdef RESTORE_VRS
+4: lm %r2,%r6,0(%r4) # load register parameters
+ basr %r14,%r1 # call resolved function
+ stm %r2,%r3,CFA_OFF+RET_R2_OFF(%r12) # store return vals r2, r3, f0
+ std %f0,CFA_OFF+RET_F0_OFF(%r12) # to struct La_s390_32_retval
+# ifdef RESTORE_VRS
.machine push
.machine "z13"
- vst %v24,56(%r12) # store return value v24
+ vst %v24,CFA_OFF+RET_V24_OFF(%r12) # store return value v24
.machine pop
-#endif
- lm %r2,%r4,24(%r12) # r2, r3: load arguments saved by PLT
- # r4: pointer to struct La_s390_32_regs
+# endif
+ lm %r2,%r4,CFA_OFF+PLT1_OFF(%r12) # r2, r3: args saved by PLT
+ # r4: struct La_s390_32_regs *
basr %r1,0
5: l %r14,7f-5b(%r1)
- la %r5,40(%r12) # pointer to struct La_s390_32_retval
- bas %r14,0(%r14,%r1) # call _dl_call_pltexit
+ la %r5,CFA_OFF+RETVAL_OFF(%r12) # struct La_s390_32_retval *
+ bas %r14,0(%r14,%r1) # call _dl_call_pltexit
- lr %r15,%r12 # remove stack frame
+ lr %r15,%r12 # remove stack frame
+# undef FRAME_SIZE
cfi_def_cfa_register (15)
- l %r14,16(%r15) # restore registers
- l %r12,12(%r15)
- lm %r2,%r3,40(%r15) # restore return values
- ld %f0,48(%r15)
-#ifdef RESTORE_VRS
+ l %r14,CFA_OFF+R14_OFF(%r15) # restore registers
+ l %r12,CFA_OFF+R12_OFF(%r15)
+ l %r0,CFA_OFF+R0_OFF(%r15)
+ lm %r2,%r3,CFA_OFF+RET_R2_OFF(%r15) # restore return values
+ ld %f0,CFA_OFF+RET_F0_OFF(%r15)
+# ifdef RESTORE_VRS
.machine push
.machine "z13"
- vl %v24,56(%r15) # restore return value v24
+ vl %v24,CFA_OFF+RET_V24_OFF(%r15) # restore return value v24
.machine pop
-#endif
+# endif
br %r14
6: .long _dl_profile_fixup - 0b
7: .long _dl_call_pltexit - 5b
cfi_endproc
.size _dl_runtime_profile, .-_dl_runtime_profile
+# undef SIZEOF_STRUCT_LA_S390_32_REGS
+# undef REGS_OFF
+# undef R2_OFF
+# undef R3_OFF
+# undef R4_OFF
+# undef R5_OFF
+# undef R6_OFF
+# undef F0_OFF
+# undef F2_OFF
+# undef V24_OFF
+# undef V25_OFF
+# undef V26_OFF
+# undef V27_OFF
+# undef V28_OFF
+# undef V29_OFF
+# undef V30_OFF
+# undef V31_OFF
+# undef R0_OFF
+# undef R12_OFF
+# undef R14_OFF
+# undef FRAMESIZE_OFF
+# undef PLT1_OFF
+# undef PLT2_OFF
+# undef PREGS_OFF
+# undef RETVAL_OFF
+# undef RET_R2_OFF
+# undef RET_R3_OFF
+# undef RET_F0_OFF
+# undef RET_V24_OFF
#endif
diff --git a/sysdeps/s390/s390-32/memchr.S b/sysdeps/s390/s390-32/memchr.S
deleted file mode 100644
index 54f9b85f57..0000000000
--- a/sysdeps/s390/s390-32/memchr.S
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Search a character in a block of memory. For IBM S390
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-/*
- * R2 = address to memory area
- * R3 = character to find
- * R4 = number of bytes to search
- */
-
-#include "sysdep.h"
-#include "asm-syntax.h"
-
- .text
-ENTRY(memchr)
- lhi %r0,0xff
- nr %r0,%r3
- lr %r1,%r2
- la %r2,0(%r4,%r1)
-0: srst %r2,%r1
- jo 0b
- brc 13,1f
- slr %r2,%r2
-1: br %r14
-END(memchr)
-libc_hidden_builtin_def (memchr)
diff --git a/sysdeps/s390/s390-32/memcmp.S b/sysdeps/s390/s390-32/memcmp.S
deleted file mode 100644
index f9ad0bc745..0000000000
--- a/sysdeps/s390/s390-32/memcmp.S
+++ /dev/null
@@ -1,66 +0,0 @@
-/* memcmp - compare two memory blocks. 32 bit S/390 version.
- Copyright (C) 2012-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-
-#include "sysdep.h"
-#include "asm-syntax.h"
-
-/* INPUT PARAMETERS
- %r2 = address of first memory area
- %r3 = address of second memory area
- %r4 = number of bytes to compare. */
-
- .text
-#ifdef USE_MULTIARCH
-ENTRY(__memcmp_default)
-#else
-ENTRY(memcmp)
-#endif
- .machine "g5"
- basr %r5,0
-.L_G5_16:
- ltr %r4,%r4
- je .L_G5_4
- ahi %r4,-1
- lr %r1,%r4
- srl %r1,8
- ltr %r1,%r1
- jne .L_G5_12
- ex %r4,.L_G5_17-.L_G5_16(%r5)
-.L_G5_4:
- ipm %r2
- sll %r2,2
- sra %r2,30
- br %r14
-.L_G5_12:
- clc 0(256,%r3),0(%r2)
- jne .L_G5_4
- la %r3,256(%r3)
- la %r2,256(%r2)
- brct %r1,.L_G5_12
- ex %r4,.L_G5_17-.L_G5_16(%r5)
- j .L_G5_4
-.L_G5_17:
- clc 0(1,%r3),0(%r2)
-#ifdef USE_MULTIARCH
-END(__memcmp_default)
-#else
-END(memcmp)
-libc_hidden_builtin_def (memcmp)
-weak_alias(memcmp, bcmp)
-#endif
diff --git a/sysdeps/s390/s390-32/memcpy.S b/sysdeps/s390/s390-32/memcpy.S
deleted file mode 100644
index 493cc18aba..0000000000
--- a/sysdeps/s390/s390-32/memcpy.S
+++ /dev/null
@@ -1,89 +0,0 @@
-/* memcpy - copy a block from source to destination. S/390 version.
- Copyright (C) 2012-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-
-#include "sysdep.h"
-#include "asm-syntax.h"
-
-/* INPUT PARAMETERS
- %r2 = address of destination memory area
- %r3 = address of source memory area
- %r4 = number of bytes to copy. */
-
- .text
-ENTRY(__mempcpy)
- .machine "g5"
- lr %r1,%r2 # Use as dest
- la %r2,0(%r4,%r2) # Return dest + n
- j .L_G5_start
-END(__mempcpy)
-#ifndef USE_MULTIARCH
-libc_hidden_def (__mempcpy)
-weak_alias (__mempcpy, mempcpy)
-libc_hidden_builtin_def (mempcpy)
-#endif
-
-ENTRY(memcpy)
- .machine "g5"
- lr %r1,%r2 # r1: Use as dest ; r2: Return dest
-.L_G5_start:
- ltr %r4,%r4
- je .L_G5_99
- ahi %r4,-1
- lr %r5,%r4
- srl %r5,8
- ltr %r5,%r5
- jne .L_G5_13
-.L_G5_4:
- basr %r5,0
-.L_G5_16:
- ex %r4,.L_G5_17-.L_G5_16(%r5)
-.L_G5_99:
- br %r14
-.L_G5_13:
- chi %r5,4096 # Switch to mvcle for copies >1MB
- jh __memcpy_mvcle
-.L_G5_12:
- mvc 0(256,%r1),0(%r3)
- la %r1,256(%r1)
- la %r3,256(%r3)
- brct %r5,.L_G5_12
- j .L_G5_4
-.L_G5_17:
- mvc 0(1,%r1),0(%r3)
-END(memcpy)
-#ifndef USE_MULTIARCH
-libc_hidden_builtin_def (memcpy)
-#endif
-
-ENTRY(__memcpy_mvcle)
- # Using as standalone function will result in unexpected
- # results since the length field is incremented by 1 in order to
- # compensate the changes already done in the functions above.
- lr %r0,%r2 # backup return dest [ + n ]
- ahi %r4,1 # length + 1
- lr %r5,%r4 # source length
- lr %r4,%r3 # source address
- lr %r2,%r1 # destination address
- lr %r3,%r5 # destination length = source length
-.L_MVCLE_1:
- mvcle %r2,%r4,0 # thats it, MVCLE is your friend
- jo .L_MVCLE_1
- lr %r2,%r0 # return destination address
- br %r14
-END(__memcpy_mvcle)
diff --git a/sysdeps/s390/s390-32/memset.S b/sysdeps/s390/s390-32/memset.S
deleted file mode 100644
index 57f08e1cae..0000000000
--- a/sysdeps/s390/s390-32/memset.S
+++ /dev/null
@@ -1,65 +0,0 @@
-/* Set a block of memory to some byte value. For IBM S390
- Copyright (C) 2012-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-
-#include "sysdep.h"
-#include "asm-syntax.h"
-
-/* INPUT PARAMETERS
- %r2 = address to memory area
- %r3 = byte to fill memory with
- %r4 = number of bytes to fill. */
-
- .text
-
-#ifdef USE_MULTIARCH
-ENTRY(__memset_default)
-#else
-ENTRY(memset)
-#endif
- .machine "g5"
- basr %r5,0
-.L_G5_19:
- ltr %r4,%r4
- je .L_G5_4
- stc %r3,0(%r2)
- chi %r4,1
- lr %r1,%r2
- je .L_G5_4
- ahi %r4,-2
- lr %r3,%r4
- srl %r3,8
- ltr %r3,%r3
- jne .L_G5_14
- ex %r4,.L_G5_20-.L_G5_19(%r5)
-.L_G5_4:
- br %r14
-.L_G5_14:
- mvc 1(256,%r1),0(%r1)
- la %r1,256(%r1)
- brct %r3,.L_G5_14
- ex %r4,.L_G5_20-.L_G5_19(%r5)
- j .L_G5_4
-.L_G5_20:
- mvc 1(1,%r1),0(%r1)
-#ifdef USE_MULTIARCH
-END(__memset_default)
-#else
-END(memset)
-libc_hidden_builtin_def (memset)
-#endif
diff --git a/sysdeps/s390/s390-32/mul_1.S b/sysdeps/s390/s390-32/mul_1.S
index 6fa4fae437..eac285f496 100644
--- a/sysdeps/s390/s390-32/mul_1.S
+++ b/sysdeps/s390/s390-32/mul_1.S
@@ -1,6 +1,6 @@
/* __mpn_mul_1 -- Multiply a limb vector with a limb and store
the result in a second limb vector.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
This file is part of the GNU MP Library.
@@ -16,7 +16,7 @@
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not,
- see <http://www.gnu.org/licenses/>. */
+ see <https://www.gnu.org/licenses/>. */
/*
INPUT PARAMETERS
diff --git a/sysdeps/s390/s390-32/multiarch/Makefile b/sysdeps/s390/s390-32/multiarch/Makefile
deleted file mode 100644
index f8aee14bbd..0000000000
--- a/sysdeps/s390/s390-32/multiarch/Makefile
+++ /dev/null
@@ -1,4 +0,0 @@
-ifeq ($(subdir),string)
-sysdep_routines += memset memset-s390 memcpy memcpy-s390 \
- memcmp memcmp-s390
-endif
diff --git a/sysdeps/s390/s390-32/multiarch/memchr.c b/sysdeps/s390/s390-32/multiarch/memchr.c
deleted file mode 100644
index 5e1610afa4..0000000000
--- a/sysdeps/s390/s390-32/multiarch/memchr.c
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Multiple versions of memchr.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-/* This wrapper-file is needed, because otherwise file
- sysdeps/s390/s390-[32|64]/memchr.S will be used. */
-#include <sysdeps/s390/multiarch/memchr.c>
diff --git a/sysdeps/s390/s390-32/multiarch/memcmp-s390.S b/sysdeps/s390/s390-32/multiarch/memcmp-s390.S
deleted file mode 100644
index e53b508c98..0000000000
--- a/sysdeps/s390/s390-32/multiarch/memcmp-s390.S
+++ /dev/null
@@ -1,107 +0,0 @@
-/* CPU specific memcmp implementations. 32 bit S/390 version.
- Copyright (C) 2012-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-
-#include "sysdep.h"
-#include "asm-syntax.h"
-
-/* INPUT PARAMETERS
- %r2 = address of first memory area
- %r3 = address of second memory area
- %r4 = number of bytes to compare. */
-
- .text
-
-#if IS_IN (libc)
-
-ENTRY(__memcmp_z196)
- .machine "z196"
- .machinemode "zarch_nohighgprs"
- ltr %r4,%r4
- je .L_Z196_4
- ahi %r4,-1
- srlk %r1,%r4,8
- ltr %r1,%r1
- jne .L_Z196_2
-.L_Z196_3:
- exrl %r4,.L_Z196_14
-.L_Z196_4:
- ipm %r2
- sll %r2,2
- sra %r2,30
- br %r14
-.L_Z196_17:
- la %r3,256(%r3)
- la %r2,256(%r2)
- ahi %r1,-1
- je .L_Z196_3
-.L_Z196_2:
- pfd 1,512(%r3)
- pfd 1,512(%r2)
- clc 0(256,%r3),0(%r2)
- je .L_Z196_17
- ipm %r2
- sll %r2,2
- sra %r2,30
- br %r14
-.L_Z196_14:
- clc 0(1,%r3),0(%r2)
-END(__memcmp_z196)
-
-ENTRY(__memcmp_z10)
- .machine "z10"
- .machinemode "zarch_nohighgprs"
- ltr %r4,%r4
- je .L_Z10_4
- ahi %r4,-1
- lr %r1,%r4
- srl %r1,8
- cijlh %r1,0,.L_Z10_12
-.L_Z10_3:
- exrl %r4,.L_Z10_15
-.L_Z10_4:
- ipm %r2
- sll %r2,2
- sra %r2,30
- br %r14
-.L_Z10_12:
- pfd 1,512(%r3)
- pfd 1,512(%r2)
- clc 0(256,%r3),0(%r2)
- jne .L_Z10_4
- la %r3,256(%r3)
- la %r2,256(%r2)
- brct %r1,.L_Z10_12
- j .L_Z10_3
-.L_Z10_15:
- clc 0(1,%r3),0(%r2)
-END(__memcmp_z10)
-
-#endif /* IS_IN (libc) */
-
-#include "../memcmp.S"
-
-#if !IS_IN (libc)
-.globl memcmp
-.set memcmp,__memcmp_default
-.weak bcmp
-.set bcmp,__memcmp_default
-#elif defined SHARED && IS_IN (libc)
-.globl __GI_memcmp
-.set __GI_memcmp,__memcmp_default
-#endif
diff --git a/sysdeps/s390/s390-32/multiarch/memcmp.c b/sysdeps/s390/s390-32/multiarch/memcmp.c
deleted file mode 100644
index 1e6f31806e..0000000000
--- a/sysdeps/s390/s390-32/multiarch/memcmp.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Multiple versions of memcmp.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if IS_IN (libc)
-# define memcmp __redirect_memcmp
-# include <string.h>
-# undef memcmp
-# include <ifunc-resolve.h>
-
-s390_libc_ifunc (__redirect_memcmp, __memcmp, memcmp)
-weak_alias (memcmp, bcmp);
-#endif
diff --git a/sysdeps/s390/s390-32/multiarch/memcpy-s390.S b/sysdeps/s390/s390-32/multiarch/memcpy-s390.S
deleted file mode 100644
index aad13bd07c..0000000000
--- a/sysdeps/s390/s390-32/multiarch/memcpy-s390.S
+++ /dev/null
@@ -1,128 +0,0 @@
-/* CPU specific memcpy implementations. 32 bit S/390 version.
- Copyright (C) 2012-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-
-#include "sysdep.h"
-#include "asm-syntax.h"
-
-/* INPUT PARAMETERS
- %r2 = target operands address
- %r3 = source operands address
- %r4 = number of bytes to copy. */
-
- .text
-
-#if defined SHARED && IS_IN (libc)
-
-ENTRY(____mempcpy_z196)
- .machine "z196"
- .machinemode "zarch_nohighgprs"
- lr %r1,%r2 # Use as dest
- la %r2,0(%r4,%r2) # Return dest + n
- j .L_Z196_start
-END(____mempcpy_z196)
-
-ENTRY(__memcpy_z196)
- .machine "z196"
- .machinemode "zarch_nohighgprs"
- lr %r1,%r2 # r1: Use as dest ; r2: Return dest
-.L_Z196_start:
- llgfr %r4,%r4
- ltgr %r4,%r4
- je .L_Z196_4
- aghi %r4,-1
- srlg %r5,%r4,8
- ltgr %r5,%r5
- jne .L_Z196_5
-.L_Z196_3:
- exrl %r4,.L_Z196_14
-.L_Z196_4:
- br %r14
-.L_Z196_5:
- cgfi %r5,262144 # Switch to mvcle for copies >64MB
- jh __memcpy_mvcle
-.L_Z196_2:
- pfd 1,768(%r3)
- pfd 2,768(%r1)
- mvc 0(256,%r1),0(%r3)
- aghi %r5,-1
- la %r1,256(%r1)
- la %r3,256(%r3)
- jne .L_Z196_2
- j .L_Z196_3
-.L_Z196_14:
- mvc 0(1,%r1),0(%r3)
-END(__memcpy_z196)
-
-ENTRY(____mempcpy_z10)
- .machine "z10"
- .machinemode "zarch_nohighgprs"
- lr %r1,%r2 # Use as dest
- la %r2,0(%r4,%r2) # Return dest + n
- j .L_Z10_start
-END(____mempcpy_z10)
-
-ENTRY(__memcpy_z10)
- .machine "z10"
- .machinemode "zarch_nohighgprs"
- lr %r1,%r2 # r1: Use as dest ; r2: Return dest
-.L_Z10_start:
- llgfr %r4,%r4
- cgije %r4,0,.L_Z10_4
- aghi %r4,-1
- srlg %r5,%r4,8
- cgijlh %r5,0,.L_Z10_13
-.L_Z10_3:
- exrl %r4,.L_Z10_15
-.L_Z10_4:
- br %r14
-.L_Z10_13:
- cgfi %r5,65535 # Switch to mvcle for copies >16MB
- jh __memcpy_mvcle
-.L_Z10_12:
- pfd 1,768(%r3)
- pfd 2,768(%r1)
- mvc 0(256,%r1),0(%r3)
- la %r1,256(%r1)
- la %r3,256(%r3)
- brctg %r5,.L_Z10_12
- j .L_Z10_3
-.L_Z10_15:
- mvc 0(1,%r1),0(%r3)
-END(__memcpy_z10)
-
-# define __mempcpy ____mempcpy_default
-#endif /* SHARED && IS_IN (libc) */
-
-#define memcpy __memcpy_default
-#include "../memcpy.S"
-#undef memcpy
-
-#if defined SHARED && IS_IN (libc)
-.globl __GI_memcpy
-.set __GI_memcpy,__memcpy_default
-.globl __GI_mempcpy
-.set __GI_mempcpy,____mempcpy_default
-.globl __GI___mempcpy
-.set __GI___mempcpy,____mempcpy_default
-#else
-.globl memcpy
-.set memcpy,__memcpy_default
-.weak mempcpy
-.set mempcpy,__mempcpy
-#endif
diff --git a/sysdeps/s390/s390-32/multiarch/memcpy.c b/sysdeps/s390/s390-32/multiarch/memcpy.c
deleted file mode 100644
index c9577a854a..0000000000
--- a/sysdeps/s390/s390-32/multiarch/memcpy.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Multiple versions of memcpy.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-/* In the static lib memcpy is needed before the reloc is resolved. */
-#if defined SHARED && IS_IN (libc)
-# define memcpy __redirect_memcpy
-# include <string.h>
-# undef memcpy
-# include <ifunc-resolve.h>
-
-s390_libc_ifunc (__redirect_memcpy, __memcpy, memcpy)
-#endif
diff --git a/sysdeps/s390/s390-32/multiarch/memset-s390.S b/sysdeps/s390/s390-32/multiarch/memset-s390.S
deleted file mode 100644
index b092073d6b..0000000000
--- a/sysdeps/s390/s390-32/multiarch/memset-s390.S
+++ /dev/null
@@ -1,116 +0,0 @@
-/* Set a block of memory to some byte value. 32 bit S/390 version.
- Copyright (C) 2012-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-
-#include "sysdep.h"
-#include "asm-syntax.h"
-
-/* INPUT PARAMETERS
- %r2 = address of memory area
- %r3 = byte to fill memory with
- %r4 = number of bytes to fill. */
-
- .text
-
-#if IS_IN (libc)
-
-ENTRY(__memset_z196)
- .machine "z196"
- .machinemode "zarch_nohighgprs"
- llgfr %r4,%r4
- ltgr %r4,%r4
- je .L_Z196_4
- stc %r3,0(%r2)
- lr %r1,%r2
- cghi %r4,1
- je .L_Z196_4
- aghi %r4,-2
- srlg %r5,%r4,8
- ltgr %r5,%r5
- jne .L_Z196_1
-.L_Z196_3:
- exrl %r4,.L_Z196_17
-.L_Z196_4:
- br %r14
-.L_Z196_1:
- cgfi %r5,1048576
- jh __memset_mvcle # Switch to mvcle for >256MB
-.L_Z196_2:
- pfd 2,1024(%r1)
- mvc 1(256,%r1),0(%r1)
- aghi %r5,-1
- la %r1,256(%r1)
- jne .L_Z196_2
- j .L_Z196_3
-.L_Z196_17:
- mvc 1(1,%r1),0(%r1)
-END(__memset_z196)
-
-ENTRY(__memset_z10)
- .machine "z10"
- .machinemode "zarch_nohighgprs"
- llgfr %r4,%r4
- cgije %r4,0,.L_Z10_4
- stc %r3,0(%r2)
- lr %r1,%r2
- cgije %r4,1,.L_Z10_4
- aghi %r4,-2
- srlg %r5,%r4,8
- cgijlh %r5,0,.L_Z10_15
-.L_Z10_3:
- exrl %r4,.L_Z10_18
-.L_Z10_4:
- br %r14
-.L_Z10_15:
- cgfi %r5,163840 # Switch to mvcle for >40MB
- jh __memset_mvcle
-.L_Z10_14:
- pfd 2,1024(%r1)
- mvc 1(256,%r1),0(%r1)
- la %r1,256(%r1)
- brctg %r5,.L_Z10_14
- j .L_Z10_3
-.L_Z10_18:
- mvc 1(1,%r1),0(%r1)
-END(__memset_z10)
-
-ENTRY(__memset_mvcle)
- ahi %r4,2 # take back the change done by the caller
- lr %r0,%r2 # save source address
- lr %r1,%r3 # move pad byte to R1
- lr %r3,%r4
- sr %r4,%r4 # no source for MVCLE, only a pad byte
- sr %r5,%r5
-.L0: mvcle %r2,%r4,0(%r1) # thats it, MVCLE is your friend
- jo .L0
- lr %r2,%r0 # return value is source address
-.L1:
- br %r14
-END(__memset_mvcle)
-
-#endif /* IS_IN (libc) */
-
-#include "../memset.S"
-
-#if !IS_IN (libc)
-.globl memset
-.set memset,__memset_default
-#elif defined SHARED && IS_IN (libc)
-.globl __GI_memset
-.set __GI_memset,__memset_default
-#endif
diff --git a/sysdeps/s390/s390-32/multiarch/memset.c b/sysdeps/s390/s390-32/multiarch/memset.c
deleted file mode 100644
index 760b3e9df2..0000000000
--- a/sysdeps/s390/s390-32/multiarch/memset.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Multiple versions of memset.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if IS_IN (libc)
-# define memset __redirect_memset
-# include <string.h>
-# undef memset
-# include <ifunc-resolve.h>
-
-s390_libc_ifunc (__redirect_memset, __memset, memset)
-#endif
diff --git a/sysdeps/s390/s390-32/multiarch/strcmp.c b/sysdeps/s390/s390-32/multiarch/strcmp.c
deleted file mode 100644
index d06b0f3436..0000000000
--- a/sysdeps/s390/s390-32/multiarch/strcmp.c
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Multiple versions of strcmp.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-/* This wrapper-file is needed, because otherwise file
- sysdeps/s390/s390-[32|64]/strcmp.S will be used. */
-#include <sysdeps/s390/multiarch/strcmp.c>
diff --git a/sysdeps/s390/s390-32/multiarch/strcpy.c b/sysdeps/s390/s390-32/multiarch/strcpy.c
deleted file mode 100644
index 6a22e31a03..0000000000
--- a/sysdeps/s390/s390-32/multiarch/strcpy.c
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Multiple versions of strcpy.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-/* This wrapper-file is needed, because otherwise file
- sysdeps/s390/s390-[32|64]/strcpy.S will be used. */
-#include <sysdeps/s390/multiarch/strcpy.c>
diff --git a/sysdeps/s390/s390-32/multiarch/strncpy.c b/sysdeps/s390/s390-32/multiarch/strncpy.c
deleted file mode 100644
index 57f9df18d1..0000000000
--- a/sysdeps/s390/s390-32/multiarch/strncpy.c
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Multiple versions of strncpy.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-/* This wrapper-file is needed, because otherwise file
- sysdeps/s390/s390-[32|64]/strncpy.S will be used. */
-#include <sysdeps/s390/multiarch/strncpy.c>
diff --git a/sysdeps/s390/s390-32/s390-mcount.S b/sysdeps/s390/s390-32/s390-mcount.S
index 153777e1b8..037ed9401c 100644
--- a/sysdeps/s390/s390-32/s390-mcount.S
+++ b/sysdeps/s390/s390-32/s390-mcount.S
@@ -1,5 +1,5 @@
/* S/390-specific implementation of profiling support.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com)
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
@@ -55,9 +55,13 @@ C_LABEL(_mcount)
/* Save the caller-clobbered registers. */
ahi %r15,-128
cfi_adjust_cfa_offset (128)
+ /* binutils 2.28+: .cfi_val_offset r15, -96 */
+ .cfi_escape \
+ /* DW_CFA_val_offset */ 0x14, \
+ /* r15 */ 0x0f, \
+ /* scaled offset */ 0x18
stm %r14,%r5,96(%r15)
- cfi_offset (r14, 0)
- cfi_offset (r15, 4)
+ cfi_offset (r14, -128)
l %r2,132(%r15) # callers address = first parameter
la %r2,0(%r2) # clear bit 0
la %r3,0(%r14) # callees address = second parameter
diff --git a/sysdeps/s390/s390-32/setjmp.S b/sysdeps/s390/s390-32/setjmp.S
index fd2f991682..55f5e52ce4 100644
--- a/sysdeps/s390/s390-32/setjmp.S
+++ b/sysdeps/s390/s390-32/setjmp.S
@@ -1,5 +1,5 @@
/* setjmp for s390, ELF version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#define _ASM
diff --git a/sysdeps/s390/s390-32/start.S b/sysdeps/s390/s390-32/start.S
index 1483642985..6c2269f60e 100644
--- a/sysdeps/s390/s390-32/start.S
+++ b/sysdeps/s390/s390-32/start.S
@@ -1,5 +1,5 @@
/* Startup code compliant to the ELF s390 ABI.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
This file is part of the GNU C Library.
@@ -32,7 +32,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/s390/s390-32/strcmp.S b/sysdeps/s390/s390-32/strcmp.S
deleted file mode 100644
index 3cf3f239fd..0000000000
--- a/sysdeps/s390/s390-32/strcmp.S
+++ /dev/null
@@ -1,41 +0,0 @@
-/* strcmp - compare two string. S/390 version.
- This file is part of the GNU C Library.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
- Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-/* INPUT PARAMETERS
- %r2 = address of string 1
- %r3 = address of string 2. */
-
-#include "sysdep.h"
-#include "asm-syntax.h"
-
- .text
-ENTRY(strcmp)
- slr %r0,%r0
-0: clst %r2,%r3
- jo 0b
- jp 1f
- jm 2f
- slr %r2,%r2
- br %r14
-1: lhi %r2,1
- br %r14
-2: lhi %r2,-1
- br %r14
-END(strcmp)
-libc_hidden_builtin_def (strcmp)
diff --git a/sysdeps/s390/s390-32/strcpy.S b/sysdeps/s390/s390-32/strcpy.S
deleted file mode 100644
index d49136ee92..0000000000
--- a/sysdeps/s390/s390-32/strcpy.S
+++ /dev/null
@@ -1,36 +0,0 @@
-/* strcpy - copy a string from source to destination. For IBM S390
- This file is part of the GNU C Library.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
- Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-/*
- * R2 = address of destination
- * R3 = address of source
- */
-
-#include "sysdep.h"
-#include "asm-syntax.h"
-
- .text
-ENTRY(strcpy)
- slr %r0,%r0
- lr %r1,%r2
-0: mvst %r1,%r3
- jo 0b
- br %r14
-END(strcpy)
-libc_hidden_builtin_def (strcpy)
diff --git a/sysdeps/s390/s390-32/strncpy-z900.S b/sysdeps/s390/s390-32/strncpy-z900.S
new file mode 100644
index 0000000000..264d8d84e3
--- /dev/null
+++ b/sysdeps/s390/s390-32/strncpy-z900.S
@@ -0,0 +1,89 @@
+/* strncpy - copy at most n characters from a string from source to
+ destination. For IBM S390
+ This file is part of the GNU C Library.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
+ Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
+
+ 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
+ <https://www.gnu.org/licenses/>. */
+
+/*
+ * R2 = address of destination (dst)
+ * R3 = address of source (src)
+ * R4 = max of bytes to copy
+ */
+
+#include <ifunc-strncpy.h>
+#include "sysdep.h"
+#include "asm-syntax.h"
+
+#if HAVE_STRNCPY_Z900_G5
+ENTRY(STRNCPY_Z900_G5)
+ .text
+ st %r2,24(%r15) # save dst pointer
+ slr %r2,%r3 # %r3 points to src, %r2+%r3 to dst
+ lhi %r1,3
+ nr %r1,%r4 # last 2 bits of # bytes
+ srl %r4,2
+ ltr %r4,%r4 # less than 4 bytes to copy ?
+ jz .L1
+ bras %r5,.L0 # enter loop & load address of a 0
+ .long 0
+.L0: icm %r0,8,0(%r3) # first byte
+ jz .L3
+ icm %r0,4,1(%r3) # second byte
+ jz .L4
+ icm %r0,2,2(%r3) # third byte
+ jz .L5
+ icm %r0,1,3(%r3) # fourth byte
+ jz .L6
+ st %r0,0(%r2,%r3) # store all four to dest.
+ la %r3,4(%r3)
+ brct %r4,.L0
+.L1: ltr %r1,%r1
+ jz .Lexit
+.L2: icm %r0,1,0(%r3)
+ stc %r0,0(%r2,%r3)
+ la %r3,1(%r3)
+ jz .L7
+ brct %r1,.L2
+ j .Lexit
+.L3: icm %r0,4,0(%r5)
+.L4: icm %r0,2,0(%r5)
+.L5: icm %r0,1,0(%r5)
+.L6: st %r0,0(%r2,%r3)
+ la %r3,4(%r3)
+ ahi %r4,-1
+ j .L8
+.L7: ahi %r1,-1
+.L8: sll %r4,2
+ alr %r4,%r1
+ alr %r2,%r3 # start of dst area to be zeroed
+ lr %r3,%r4
+ slr %r4,%r4
+ slr %r5,%r5
+.L9: mvcle %r2,%r4,0 # pad dst with zeroes
+ jo .L9
+.Lexit: l %r2,24(%r15) # return dst pointer
+ br %r14
+END(STRNCPY_Z900_G5)
+
+# if ! HAVE_STRNCPY_IFUNC
+strong_alias (STRNCPY_Z900_G5, strncpy)
+# endif
+
+# if defined SHARED && IS_IN (libc)
+strong_alias (STRNCPY_Z900_G5, __GI_strncpy)
+# endif
+#endif
diff --git a/sysdeps/s390/s390-32/strncpy.S b/sysdeps/s390/s390-32/strncpy.S
deleted file mode 100644
index 9086eb1c70..0000000000
--- a/sysdeps/s390/s390-32/strncpy.S
+++ /dev/null
@@ -1,79 +0,0 @@
-/* strncpy - copy at most n characters from a string from source to
- destination. For IBM S390
- This file is part of the GNU C Library.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
- Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-/*
- * R2 = address of destination (dst)
- * R3 = address of source (src)
- * R4 = max of bytes to copy
- */
-
-#include "sysdep.h"
-#include "asm-syntax.h"
-
-ENTRY(strncpy)
- .text
- st %r2,24(%r15) # save dst pointer
- slr %r2,%r3 # %r3 points to src, %r2+%r3 to dst
- lhi %r1,3
- nr %r1,%r4 # last 2 bits of # bytes
- srl %r4,2
- ltr %r4,%r4 # less than 4 bytes to copy ?
- jz .L1
- bras %r5,.L0 # enter loop & load address of a 0
- .long 0
-.L0: icm %r0,8,0(%r3) # first byte
- jz .L3
- icm %r0,4,1(%r3) # second byte
- jz .L4
- icm %r0,2,2(%r3) # third byte
- jz .L5
- icm %r0,1,3(%r3) # fourth byte
- jz .L6
- st %r0,0(%r2,%r3) # store all four to dest.
- la %r3,4(%r3)
- brct %r4,.L0
-.L1: ltr %r1,%r1
- jz .Lexit
-.L2: icm %r0,1,0(%r3)
- stc %r0,0(%r2,%r3)
- la %r3,1(%r3)
- jz .L7
- brct %r1,.L2
- j .Lexit
-.L3: icm %r0,4,0(%r5)
-.L4: icm %r0,2,0(%r5)
-.L5: icm %r0,1,0(%r5)
-.L6: st %r0,0(%r2,%r3)
- la %r3,4(%r3)
- ahi %r4,-1
- j .L8
-.L7: ahi %r1,-1
-.L8: sll %r4,2
- alr %r4,%r1
- alr %r2,%r3 # start of dst area to be zeroed
- lr %r3,%r4
- slr %r4,%r4
- slr %r5,%r5
-.L9: mvcle %r2,%r4,0 # pad dst with zeroes
- jo .L9
-.Lexit: l %r2,24(%r15) # return dst pointer
- br %r14
-END(strncpy)
-libc_hidden_builtin_def (strncpy)
diff --git a/sysdeps/s390/s390-32/sub_n.S b/sysdeps/s390/s390-32/sub_n.S
index e7fdb604ff..cece137bae 100644
--- a/sysdeps/s390/s390-32/sub_n.S
+++ b/sysdeps/s390/s390-32/sub_n.S
@@ -1,6 +1,6 @@
/* __mpn_sub_n -- Add two limb vectors of the same length > 0 and store
sum in a third limb vector.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
This file is part of the GNU MP Library.
@@ -16,7 +16,7 @@
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not,
- see <http://www.gnu.org/licenses/>. */
+ see <https://www.gnu.org/licenses/>. */
/*
INPUT PARAMETERS
diff --git a/sysdeps/s390/s390-32/symbol-hacks.h b/sysdeps/s390/s390-32/symbol-hacks.h
index 879ce2f517..fcc4533e1c 100644
--- a/sysdeps/s390/s390-32/symbol-hacks.h
+++ b/sysdeps/s390/s390-32/symbol-hacks.h
@@ -1,5 +1,5 @@
/* Hacks needed for symbol manipulation. s390 version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/wordsize-32/divdi3-symbol-hacks.h>
diff --git a/sysdeps/s390/s390-32/sysdep.h b/sysdeps/s390/s390-32/sysdep.h
index 7e2763fe92..455a933c95 100644
--- a/sysdeps/s390/s390-32/sysdep.h
+++ b/sysdeps/s390/s390-32/sysdep.h
@@ -1,5 +1,5 @@
/* Assembler macros for s390.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/generic/sysdep.h>
@@ -32,7 +32,7 @@
#define ENTRY(name) \
.globl C_SYMBOL_NAME(name); \
.type C_SYMBOL_NAME(name),@function; \
- .align ALIGNARG(2); \
+ .align ALIGNARG(4); \
C_LABEL(name) \
cfi_startproc; \
CALL_MCOUNT
diff --git a/sysdeps/s390/s390-32/tst-audit.h b/sysdeps/s390/s390-32/tst-audit.h
index 173b1ec40c..64d6fbaafa 100644
--- a/sysdeps/s390/s390-32/tst-audit.h
+++ b/sysdeps/s390/s390-32/tst-audit.h
@@ -1,6 +1,6 @@
/* Definitions for testing PLT entry/exit auditing. S/390 32-bit version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define pltenter la_s390_32_gnu_pltenter
#define pltexit la_s390_32_gnu_pltexit
diff --git a/sysdeps/s390/s390-64/Implies b/sysdeps/s390/s390-64/Implies
index a8cae95f9d..7603c9859c 100644
--- a/sysdeps/s390/s390-64/Implies
+++ b/sysdeps/s390/s390-64/Implies
@@ -1 +1,2 @@
wordsize-64
+ieee754/dbl-64/wordsize-64
diff --git a/sysdeps/s390/s390-64/Versions b/sysdeps/s390/s390-64/Versions
new file mode 100644
index 0000000000..ec1d68313d
--- /dev/null
+++ b/sysdeps/s390/s390-64/Versions
@@ -0,0 +1,5 @@
+libc {
+ GLIBC_2.29 {
+ __fentry__;
+ }
+}
diff --git a/sysdeps/s390/s390-64/__longjmp.c b/sysdeps/s390/s390-64/__longjmp.c
index 17aa0810e6..5886b7754b 100644
--- a/sysdeps/s390/s390-64/__longjmp.c
+++ b/sysdeps/s390/s390-64/__longjmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sysdep.h>
diff --git a/sysdeps/s390/s390-64/add_n.S b/sysdeps/s390/s390-64/add_n.S
index 5cbc6d0d8e..150c41f852 100644
--- a/sysdeps/s390/s390-64/add_n.S
+++ b/sysdeps/s390/s390-64/add_n.S
@@ -1,6 +1,6 @@
/* Add two limb vectors of the same length > 0 and store sum in a third
limb vector.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
This file is part of the GNU MP Library.
@@ -16,7 +16,7 @@
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not,
- see <http://www.gnu.org/licenses/>. */
+ see <https://www.gnu.org/licenses/>. */
/*
INPUT PARAMETERS
diff --git a/sysdeps/s390/s390-64/backtrace.c b/sysdeps/s390/s390-64/backtrace.c
index 3efcbe4096..f6935dd2ca 100644
--- a/sysdeps/s390/s390-64/backtrace.c
+++ b/sysdeps/s390/s390-64/backtrace.c
@@ -1,5 +1,5 @@
/* Return backtrace of current program state. 64 bit S/390 version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky <schwidefsky@de.ibm.com>.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libc-lock.h>
#include <dlfcn.h>
diff --git a/sysdeps/s390/s390-64/bcopy.S b/sysdeps/s390/s390-64/bcopy.S
deleted file mode 100644
index 806dd15d02..0000000000
--- a/sysdeps/s390/s390-64/bcopy.S
+++ /dev/null
@@ -1,71 +0,0 @@
-/* bcopy -- copy a block from source to destination. 64 bit S/390 version.
- This file is part of the GNU C Library.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
- Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-/* INPUT PARAMETERS
- %r2 = address of source
- %r3 = address of destination
- %r4 = number of bytes to copy. */
-
-#include "sysdep.h"
-#include "asm-syntax.h"
-
- .text
-ENTRY(__bcopy)
- ltgr %r1,%r4 # zero bcopy ?
- jz .L4
- clgr %r2,%r3 # check against destructive overlap
- jnl .L0
- algr %r1,%r2
- clgr %r1,%r3
- jh .L7
-.L0: aghi %r4,-1 # length - 1
- srlg %r1,%r4,8
- ltgr %r1,%r1 # < 256 bytes to move ?
- jz .L2
- cghi %r1,255 # > 1MB to move ?
- jh .L5
-.L1: mvc 0(256,%r3),0(%r2) # move in 256 byte chunks
- la %r2,256(%r2)
- la %r3,256(%r3)
- brctg %r1,.L1
-.L2: bras %r1,.L3 # setup base pointer for execute
- mvc 0(1,%r3),0(%r2) # instruction for execute
-.L3: ex %r4,0(%r1) # execute mvc with length ((%r4)&255)+1
-.L4: br %r14
- # data copies > 1MB are faster with mvcle.
-.L5: aghi %r4,1 # length + 1
- lgr %r5,%r4 # source length
- lgr %r4,%r2 # source address
- lgr %r2,%r3 # set destination
- lgr %r3,%r5 # destination length = source length
-.L6: mvcle %r2,%r4,0 # thats it, MVCLE is your friend
- jo .L6
- br %r14
-.L7: # destructive overlay, can not use mvcle
- lgr %r1,%r2 # bcopy is called with source,dest
- lgr %r2,%r3 # memmove with dest,source! Oh, well...
- lgr %r3,%r1
- jg HIDDEN_BUILTIN_JUMPTARGET(memmove)
-
-END(__bcopy)
-
-#ifndef NO_WEAK_ALIAS
-weak_alias (__bcopy, bcopy)
-#endif
-
diff --git a/sysdeps/s390/s390-64/bzero.S b/sysdeps/s390/s390-64/bzero.S
deleted file mode 100644
index b321665298..0000000000
--- a/sysdeps/s390/s390-64/bzero.S
+++ /dev/null
@@ -1,41 +0,0 @@
-/* bzero -- set a block of memory to zero. 64 bit S/390 version.
- This file is part of the GNU C Library.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
- Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-/* INPUT PARAMETERS
- %r2 = address of memory area
- %r3 = number of bytes to fill. */
-
-#include "sysdep.h"
-#include "asm-syntax.h"
-
- .text
-ENTRY(__bzero)
- ltgr %r3,%r3
- jz .L1
- sgr %r1,%r1 # set pad byte to zero
- sgr %r4,%r4 # no source for MVCLE, only a pad byte
- sgr %r5,%r5
-.L0: mvcle %r2,%r4,0(%r1) # thats it, MVCLE is your friend
- jo .L0
-.L1: br %r14
-END(__bzero)
-
-#ifndef NO_WEAK_ALIAS
-weak_alias (__bzero, bzero)
-#endif
diff --git a/sysdeps/s390/s390-64/crti.S b/sysdeps/s390/s390-64/crti.S
index f676eb5259..74de3e785a 100644
--- a/sysdeps/s390/s390-64/crti.S
+++ b/sysdeps/s390/s390-64/crti.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for 64 bit S/390.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
This file is part of the GNU C Library.
@@ -32,7 +32,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* crti.S puts a function prologue at the beginning of the .init and
.fini sections and defines global symbols for those addresses, so
diff --git a/sysdeps/s390/s390-64/crtn.S b/sysdeps/s390/s390-64/crtn.S
index 8ae6394b72..b3f05e1651 100644
--- a/sysdeps/s390/s390-64/crtn.S
+++ b/sysdeps/s390/s390-64/crtn.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for 64 bit S/390.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
This file is part of the GNU C Library.
@@ -32,7 +32,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* crtn.S puts function epilogues in the .init and .fini sections
corresponding to the prologues in crti.S. */
diff --git a/sysdeps/s390/s390-64/dl-machine.h b/sysdeps/s390/s390-64/dl-machine.h
index f22db7860b..c17c5c892a 100644
--- a/sysdeps/s390/s390-64/dl-machine.h
+++ b/sysdeps/s390/s390-64/dl-machine.h
@@ -1,6 +1,6 @@
/* Machine-dependent ELF dynamic relocation inline functions.
64 bit S/390 Version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef dl_machine_h
#define dl_machine_h
diff --git a/sysdeps/s390/s390-64/dl-trampoline.S b/sysdeps/s390/s390-64/dl-trampoline.S
index 03c8f0415b..db4de4d693 100644
--- a/sysdeps/s390/s390-64/dl-trampoline.S
+++ b/sysdeps/s390/s390-64/dl-trampoline.S
@@ -1,5 +1,5 @@
/* PLT trampolines. s390x version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/s390/s390-64/dl-trampoline.h b/sysdeps/s390/s390-64/dl-trampoline.h
index d313fd521d..2585bffb75 100644
--- a/sysdeps/s390/s390-64/dl-trampoline.h
+++ b/sysdeps/s390/s390-64/dl-trampoline.h
@@ -1,5 +1,5 @@
/* PLT trampolines. s390x version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* The PLT stubs will call _dl_runtime_resolve/_dl_runtime_profile
* with the following linkage:
@@ -23,8 +23,9 @@
* v24, v26, v28, v30, v25, v27, v29, v31 : vector parameter registers
* 48(r15), 56(r15) : PLT arguments PLT1, PLT2
* 160(r15) : additional stack parameters
- * The normal clobber rules for function calls apply:
- * r0 - r5 : call clobbered
+ * The slightly tightened normal clobber rules for function calls apply:
+ * r0 : call saved (for __fentry__)
+ * r1 - r5 : call clobbered
* r6 - r13 : call saved
* r14 : return address (call clobbered)
* r15 : stack pointer (call saved)
@@ -37,47 +38,74 @@
* v16 - v31 : call clobbered
*/
+#define CFA_OFF 160
+#define FRAME_OFF CFA_OFF + FRAME_SIZE
+#define V24_OFF -288
+#define V25_OFF -272
+#define V26_OFF -256
+#define V27_OFF -240
+#define V28_OFF -224
+#define V29_OFF -208
+#define V30_OFF -192
+#define V31_OFF -176
+#define R0_OFF -120
+#define PLT1_OFF -112
+#define PLT2_OFF -104
+#define R2_OFF -96
+#define R3_OFF -88
+#define R4_OFF -80
+#define R5_OFF -72
+#define R14_OFF -64
+#define R15_OFF -56
+#define F0_OFF -48
+#define F2_OFF -40
+#define F4_OFF -32
+#define F6_OFF -24
.globl _dl_runtime_resolve
.type _dl_runtime_resolve, @function
cfi_startproc
.align 16
_dl_runtime_resolve:
- stmg %r2,%r5,64(%r15) # save call-clobbered argument registers
- cfi_offset (r2, -96)
- cfi_offset (r3, -88)
- cfi_offset (r4, -80)
- cfi_offset (r5, -72)
- stmg %r14,%r15,96(%r15)
- cfi_offset (r14, -64)
- cfi_offset (r15, -56)
- std %f0,112(%r15)
- cfi_offset (f0, -48)
- std %f2,120(%r15)
- cfi_offset (f2, -40)
- std %f4,128(%r15)
- cfi_offset (f4, -32)
- std %f6,136(%r15)
- cfi_offset (f6, -24)
- lmg %r2,%r3,48(%r15) # load args for fixup saved by PLT
+ stg %r0,CFA_OFF+R0_OFF(%r15)
+ cfi_offset (r0, R0_OFF)
+ stmg %r2,%r5,CFA_OFF+R2_OFF(%r15) # save registers
+ cfi_offset (r2, R2_OFF)
+ cfi_offset (r3, R3_OFF)
+ cfi_offset (r4, R4_OFF)
+ cfi_offset (r5, R5_OFF)
+ stmg %r14,%r15,CFA_OFF+R14_OFF(%r15)
+ cfi_offset (r14, R14_OFF)
+ cfi_offset (r15, R15_OFF)
+ std %f0,CFA_OFF+F0_OFF(%r15)
+ cfi_offset (f0, F0_OFF)
+ std %f2,CFA_OFF+F2_OFF(%r15)
+ cfi_offset (f2, F2_OFF)
+ std %f4,CFA_OFF+F4_OFF(%r15)
+ cfi_offset (f4, F4_OFF)
+ std %f6,CFA_OFF+F6_OFF(%r15)
+ cfi_offset (f6, F6_OFF)
+ lmg %r2,%r3,CFA_OFF+PLT1_OFF(%r15) # load args saved by PLT
lgr %r0,%r15
#ifdef RESTORE_VRS
- aghi %r15,-288 # create stack frame
- cfi_adjust_cfa_offset (288)
+# define FRAME_SIZE (CFA_OFF + 128)
+ aghi %r15,-FRAME_SIZE # create stack frame
+ cfi_adjust_cfa_offset (FRAME_SIZE)
.machine push
.machine "z13"
- vstm %v24,%v31,160(%r15)# store call-clobbered vector argument registers
- cfi_offset (v24, -288)
- cfi_offset (v25, -272)
- cfi_offset (v26, -256)
- cfi_offset (v27, -240)
- cfi_offset (v28, -224)
- cfi_offset (v29, -208)
- cfi_offset (v30, -192)
- cfi_offset (v31, -176)
+ vstm %v24,%v31,FRAME_OFF+V24_OFF(%r15) # save call-clobbered vr args
+ cfi_offset (v24, V24_OFF)
+ cfi_offset (v25, V25_OFF)
+ cfi_offset (v26, V26_OFF)
+ cfi_offset (v27, V27_OFF)
+ cfi_offset (v28, V28_OFF)
+ cfi_offset (v29, V29_OFF)
+ cfi_offset (v30, V30_OFF)
+ cfi_offset (v31, V31_OFF)
.machine pop
#else
- aghi %r15,-160 # create stack frame
- cfi_adjust_cfa_offset (160)
+# define FRAME_SIZE CFA_OFF
+ aghi %r15,-FRAME_SIZE # create stack frame
+ cfi_adjust_cfa_offset (FRAME_SIZE)
#endif
stg %r0,0(%r15) # write backchain
brasl %r14,_dl_fixup # call _dl_fixup
@@ -85,140 +113,225 @@ _dl_runtime_resolve:
#ifdef RESTORE_VRS
.machine push
.machine "z13"
- vlm %v24,%v31,160(%r15)# restore vector registers
+ vlm %v24,%v31,FRAME_OFF+V24_OFF(%r15) # restore vector registers
.machine pop
- lmg %r14,%r15,384(%r15)# remove stack frame and restore registers
-#else
- lmg %r14,%r15,256(%r15)# remove stack frame and restore registers
#endif
- cfi_def_cfa_offset (160)
- ld %f0,112(%r15)
- ld %f2,120(%r15)
- ld %f4,128(%r15)
- ld %f6,136(%r15)
- lmg %r2,%r5,64(%r15)
+ lmg %r14,%r15,FRAME_OFF+R14_OFF(%r15) # restore frame and registers
+#undef FRAME_SIZE
+ cfi_def_cfa_offset (CFA_OFF)
+ ld %f0,CFA_OFF+F0_OFF(%r15)
+ ld %f2,CFA_OFF+F2_OFF(%r15)
+ ld %f4,CFA_OFF+F4_OFF(%r15)
+ ld %f6,CFA_OFF+F6_OFF(%r15)
+ lmg %r2,%r5,CFA_OFF+R2_OFF(%r15)
+ lg %r0,CFA_OFF+R0_OFF(%r15)
br %r1
cfi_endproc
.size _dl_runtime_resolve, .-_dl_runtime_resolve
-
+#undef V24_OFF
+#undef V25_OFF
+#undef V26_OFF
+#undef V27_OFF
+#undef V28_OFF
+#undef V29_OFF
+#undef V30_OFF
+#undef V31_OFF
+#undef R0_OFF
+#undef PLT1_OFF
+#undef PLT2_OFF
+#undef R2_OFF
+#undef R3_OFF
+#undef R4_OFF
+#undef R5_OFF
+#undef R14_OFF
+#undef R15_OFF
+#undef F0_OFF
+#undef F2_OFF
+#undef F4_OFF
+#undef F6_OFF
#ifndef PROF
+# define SIZEOF_STRUCT_LA_S390_64_REGS 200
+# define REGS_OFF -360
+# define R2_OFF -360
+# define R3_OFF -352
+# define R4_OFF -344
+# define R5_OFF -336
+# define R6_OFF -328
+# define F0_OFF -320
+# define F2_OFF -312
+# define F4_OFF -304
+# define F6_OFF -296
+# define V24_OFF -288
+# define V25_OFF -272
+# define V26_OFF -256
+# define V27_OFF -240
+# define V28_OFF -224
+# define V29_OFF -208
+# define V30_OFF -192
+# define V31_OFF -176
+# define R0_OFF -144
+# define R12_OFF -136
+# define R14_OFF -128
+# define FRAMESIZE_OFF -120
+# define PLT1_OFF -112
+# define PLT2_OFF -104
+# define PREGS_OFF -96
+# define RETVAL_OFF -88
+# define RET_R2_OFF -88
+# define RET_F0_OFF -80
+# define RET_V24_OFF -72
.globl _dl_runtime_profile
.type _dl_runtime_profile, @function
cfi_startproc
.align 16
_dl_runtime_profile:
- stg %r12,24(%r15) # r12 is used as backup of r15
- cfi_offset (r12, -136)
- stg %r14,32(%r15)
- cfi_offset (r14, -128)
- lgr %r12,%r15 # backup stack pointer
+ stg %r0,CFA_OFF+R0_OFF(%r15)
+ cfi_offset (r0, R0_OFF)
+ stg %r12,CFA_OFF+R12_OFF(%r15) # r12 is used as backup of r15
+ cfi_offset (r12, R12_OFF)
+ stg %r14,CFA_OFF+R14_OFF(%r15)
+ cfi_offset (r14, R14_OFF)
+ lgr %r12,%r15 # backup stack pointer
cfi_def_cfa_register (12)
- aghi %r15,-360 # create stack frame:
- # 160 + sizeof(La_s390_64_regs)
- stg %r12,0(%r15) # save backchain
+# define FRAME_SIZE (CFA_OFF + SIZEOF_STRUCT_LA_S390_64_REGS)
+ aghi %r15,-FRAME_SIZE # create stack frame:
+ stg %r12,0(%r15) # save backchain
- stmg %r2,%r6,160(%r15) # save call-clobbered arg regs
- cfi_offset (r2, -360) # + r6 needed as arg for
- cfi_offset (r3, -352) # _dl_profile_fixup
- cfi_offset (r4, -344)
- cfi_offset (r5, -336)
- cfi_offset (r6, -328)
- std %f0,200(%r15)
- cfi_offset (f0, -320)
- std %f2,208(%r15)
- cfi_offset (f2, -312)
- std %f4,216(%r15)
- cfi_offset (f4, -304)
- std %f6,224(%r15)
- cfi_offset (f6, -296)
-#ifdef RESTORE_VRS
+ stmg %r2,%r6,FRAME_OFF+R2_OFF(%r15) # save call-clobbered arg regs
+ cfi_offset (r2, R2_OFF) # + r6 needed as arg for
+ cfi_offset (r3, R3_OFF) # _dl_profile_fixup
+ cfi_offset (r4, R4_OFF)
+ cfi_offset (r5, R5_OFF)
+ cfi_offset (r6, R6_OFF)
+ std %f0,FRAME_OFF+F0_OFF(%r15)
+ cfi_offset (f0, F0_OFF)
+ std %f2,FRAME_OFF+F2_OFF(%r15)
+ cfi_offset (f2, F2_OFF)
+ std %f4,FRAME_OFF+F4_OFF(%r15)
+ cfi_offset (f4, F4_OFF)
+ std %f6,FRAME_OFF+F6_OFF(%r15)
+ cfi_offset (f6, F6_OFF)
+# ifdef RESTORE_VRS
.machine push
.machine "z13"
- vstm %v24,%v31,232(%r15) # store call-clobbered vector arguments
- cfi_offset (v24, -288)
- cfi_offset (v25, -272)
- cfi_offset (v26, -256)
- cfi_offset (v27, -240)
- cfi_offset (v28, -224)
- cfi_offset (v29, -208)
- cfi_offset (v30, -192)
- cfi_offset (v31, -176)
+ vstm %v24,%v31,FRAME_OFF+V24_OFF(%r15) # store call-clobbered
+ cfi_offset (v24, V24_OFF) # vr arguments
+ cfi_offset (v25, V25_OFF)
+ cfi_offset (v26, V26_OFF)
+ cfi_offset (v27, V27_OFF)
+ cfi_offset (v28, V28_OFF)
+ cfi_offset (v29, V29_OFF)
+ cfi_offset (v30, V30_OFF)
+ cfi_offset (v31, V31_OFF)
.machine pop
-#endif
- lmg %r2,%r3,48(%r12) # load arguments saved by PLT
- lgr %r4,%r14 # return address as third parameter
- la %r5,160(%r15) # pointer to struct La_s390_64_regs
- la %r6,40(%r12) # long int * framesize
- brasl %r14,_dl_profile_fixup # call resolver
- lgr %r1,%r2 # function addr returned in r2
- ld %f0,200(%r15) # restore call-clobbered arg fprs
- ld %f2,208(%r15)
- ld %f4,216(%r15)
- ld %f6,224(%r15)
-#ifdef RESTORE_VRS
+# endif
+ lmg %r2,%r3,CFA_OFF+PLT1_OFF(%r12) # load arguments saved by PLT
+ lgr %r4,%r14 # return address as 3rd parameter
+ la %r5,FRAME_OFF+REGS_OFF(%r15) # struct La_s390_64_regs *
+ la %r6,CFA_OFF+FRAMESIZE_OFF(%r12) # long int * framesize
+ brasl %r14,_dl_profile_fixup # call resolver
+ lgr %r1,%r2 # function addr returned in r2
+ ld %f0,FRAME_OFF+F0_OFF(%r15) # restore call-clobbered
+ ld %f2,FRAME_OFF+F2_OFF(%r15) # arg fprs
+ ld %f4,FRAME_OFF+F4_OFF(%r15)
+ ld %f6,FRAME_OFF+F6_OFF(%r15)
+# ifdef RESTORE_VRS
.machine push
- .machine "z13"
- vlm %v24,%v31,232(%r15) # restore call-clobbered arg vrs
+ .machine "z13" # restore call-clobbered
+ vlm %v24,%v31,FRAME_OFF+V24_OFF(%r15)# arg vrs
.machine pop
-#endif
- lg %r0,40(%r12) # load framesize
+# endif
+ lg %r0,CFA_OFF+FRAMESIZE_OFF(%r12) # load framesize
ltgr %r0,%r0
jnm 1f
-
- lmg %r2,%r6,160(%r15) # framesize < 0 means no pltexit call
- # so we can do a tail call without
- # copying the arg overflow area
- lgr %r15,%r12 # remove stack frame
+ # framesize < 0 means no
+ lmg %r2,%r6,FRAME_OFF+R2_OFF(%r15) # pltexit call, so we can do a
+ # tail call without copying the
+ # arg overflow area
+ lgr %r15,%r12 # remove stack frame
cfi_def_cfa_register (15)
- lg %r14,32(%r15) # restore registers
- lg %r12,24(%r15)
- br %r1 # tail-call to resolved function
+ lg %r14,CFA_OFF+R14_OFF(%r15) # restore registers
+ lg %r12,CFA_OFF+R12_OFF(%r15)
+ lg %r0,CFA_OFF+R0_OFF(%r15)
+ br %r1 # tail call
cfi_def_cfa_register (12)
-1: la %r4,160(%r15) # pointer to struct La_s390_64_regs
- stg %r4,64(%r12)
- jz 4f # framesize == 0 ?
- aghi %r0,7 # align framesize to 8
+1: la %r4,FRAME_OFF+REGS_OFF(%r15) # struct La_s390_64_regs *
+ stg %r4,CFA_OFF+PREGS_OFF(%r12)
+ jz 4f # framesize == 0 ?
+ aghi %r0,7 # align framesize to 8
nill %r0,0xfff8
- slgr %r15,%r0 # make room for framesize bytes
- stg %r12,0(%r15) # save backchain
- la %r2,160(%r15)
- la %r3,160(%r12)
+ slgr %r15,%r0 # make room for framesize bytes
+ stg %r12,0(%r15) # save backchain
+ la %r2,FRAME_OFF+REGS_OFF(%r15)
+ la %r3,CFA_OFF(%r12)
srlg %r0,%r0,3
-3: mvc 0(8,%r2),0(%r3) # copy additional parameters
- la %r2,8(%r2) # depending on framesize
+3: mvc 0(8,%r2),0(%r3) # copy additional parameters
+ la %r2,8(%r2) # depending on framesize
la %r3,8(%r3)
brctg %r0,3b
-4: lmg %r2,%r6,0(%r4) # restore call-clobbered arg gprs
- basr %r14,%r1 # call resolved function
- stg %r2,72(%r12) # store return values r2, f0
- std %f0,80(%r12) # to struct La_s390_64_retval
-#ifdef RESTORE_VRS
+4: lmg %r2,%r6,0(%r4) # load register parameters
+ basr %r14,%r1 # call resolved function
+ stg %r2,CFA_OFF+RET_R2_OFF(%r12) # store return values r2, f0
+ std %f0,CFA_OFF+RET_F0_OFF(%r12) # to struct La_s390_64_retval
+# ifdef RESTORE_VRS
.machine push
.machine "z13"
- vst %v24,88(%r12) # store return value v24
+ vst %v24,CFA_OFF+RET_V24_OFF(%r12) # store return value v24
.machine pop
-#endif
- lmg %r2,%r4,48(%r12) # r2, r3: load arguments saved by PLT
- # r4: pointer to struct La_s390_64_regs
- la %r5,72(%r12) # pointer to struct La_s390_64_retval
+# endif
+ lmg %r2,%r4,CFA_OFF+PLT1_OFF(%r12) # r2, r3: args saved by PLT
+ # r4: struct La_s390_64_regs *
+ la %r5,CFA_OFF+RETVAL_OFF(%r12) # struct La_s390_64_retval *
brasl %r14,_dl_call_pltexit
- lgr %r15,%r12 # remove stack frame
+ lgr %r15,%r12 # remove stack frame
+# undef FRAME_SIZE
cfi_def_cfa_register (15)
- lg %r14,32(%r15) # restore registers
- lg %r12,24(%r15)
- lg %r2,72(%r15) # restore return values
- ld %f0,80(%r15)
-#ifdef RESTORE_VRS
+ lg %r14,CFA_OFF+R14_OFF(%r15) # restore registers
+ lg %r12,CFA_OFF+R12_OFF(%r15)
+ lg %r0,CFA_OFF+R0_OFF(%r15)
+ lg %r2,CFA_OFF+RET_R2_OFF(%r15) # restore return values
+ ld %f0,CFA_OFF+RET_F0_OFF(%r15)
+# ifdef RESTORE_VRS
.machine push
.machine "z13"
- vl %v24,88(%r15) # restore return value v24
+ vl %v24,CFA_OFF+RET_V24_OFF(%r15) # restore return value v24
.machine pop
-#endif
+# endif
br %r14 # Jump back to caller
cfi_endproc
.size _dl_runtime_profile, .-_dl_runtime_profile
+# undef SIZEOF_STRUCT_LA_S390_64_REGS
+# undef REGS_OFF
+# undef R2_OFF
+# undef R3_OFF
+# undef R4_OFF
+# undef R5_OFF
+# undef R6_OFF
+# undef F0_OFF
+# undef F2_OFF
+# undef F4_OFF
+# undef F6_OFF
+# undef V24_OFF
+# undef V25_OFF
+# undef V26_OFF
+# undef V27_OFF
+# undef V28_OFF
+# undef V29_OFF
+# undef V30_OFF
+# undef V31_OFF
+# undef R0_OFF
+# undef R12_OFF
+# undef R14_OFF
+# undef FRAMESIZE_OFF
+# undef PLT1_OFF
+# undef PLT2_OFF
+# undef PREGS_OFF
+# undef RETVAL_OFF
+# undef RET_R2_OFF
+# undef RET_F0_OFF
+# undef RET_V24_OFF
#endif
diff --git a/sysdeps/s390/s390-64/memchr.S b/sysdeps/s390/s390-64/memchr.S
deleted file mode 100644
index a19fcafa14..0000000000
--- a/sysdeps/s390/s390-64/memchr.S
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Search a character in a block of memory. 64 bit S/390 version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
- Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
- 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
- <http://www.gnu.org/licenses/>. */
-
-/* INPUT PARAMETERS
- %r2 = address to memory area
- %r3 = character to find
- %r4 = number of bytes to search. */
-
-#include "sysdep.h"
-#include "asm-syntax.h"
-
- .text
-ENTRY(memchr)
- lghi %r0,0xff
- ngr %r0,%r3
- lgr %r1,%r2
- la %r2,0(%r4,%r1)
-0: srst %r2,%r1
- jo 0b
- brc 13,1f
- slgr %r2,%r2
-1: br %r14
-END(memchr)
-libc_hidden_builtin_def (memchr)
diff --git a/sysdeps/s390/s390-64/memcmp.S b/sysdeps/s390/s390-64/memcmp.S
deleted file mode 100644
index 005b19de45..0000000000
--- a/sysdeps/s390/s390-64/memcmp.S
+++ /dev/null
@@ -1,64 +0,0 @@
-/* memcmp - compare two memory blocks. 64 bit S/390 version.
- Copyright (C) 2012-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-
-#include <sysdep.h>
-#include "asm-syntax.h"
-
-/* INPUT PARAMETERS
- %r2 = address of first memory area
- %r3 = address of second memory area
- %r4 = number of bytes to compare. */
-
- .text
-#ifdef USE_MULTIARCH
-ENTRY(__memcmp_default)
-#else
-ENTRY(memcmp)
-#endif
- .machine "z900"
- ltgr %r4,%r4
- je .L_Z900_4
- aghi %r4,-1
- srlg %r1,%r4,8
- ltgr %r1,%r1
- jne .L_Z900_12
-.L_Z900_3:
- larl %r1,.L_Z900_15
- ex %r4,0(%r1)
-.L_Z900_4:
- ipm %r2
- sllg %r2,%r2,34
- srag %r2,%r2,62
- br %r14
-.L_Z900_12:
- clc 0(256,%r3),0(%r2)
- jne .L_Z900_4
- la %r3,256(%r3)
- la %r2,256(%r2)
- brctg %r1,.L_Z900_12
- j .L_Z900_3
-.L_Z900_15:
- clc 0(1,%r3),0(%r2)
-#ifdef USE_MULTIARCH
-END(__memcmp_default)
-#else
-END(memcmp)
-libc_hidden_builtin_def (memcmp)
-weak_alias (memcmp, bcmp)
-#endif
diff --git a/sysdeps/s390/s390-64/memcpy.S b/sysdeps/s390/s390-64/memcpy.S
deleted file mode 100644
index 2e5490df23..0000000000
--- a/sysdeps/s390/s390-64/memcpy.S
+++ /dev/null
@@ -1,88 +0,0 @@
-/* memcpy - copy a block from source to destination. 64 bit S/390 version.
- Copyright (C) 2012-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-
-#include <sysdep.h>
-#include "asm-syntax.h"
-
-/* INPUT PARAMETERS
- %r2 = address of destination memory area
- %r3 = address of source memory area
- %r4 = number of bytes to copy. */
-
-
- .text
-ENTRY(__mempcpy)
- .machine "z900"
- lgr %r1,%r2 # Use as dest
- la %r2,0(%r4,%r2) # Return dest + n
- j .L_Z900_start
-END(__mempcpy)
-#ifndef USE_MULTIARCH
-libc_hidden_def (__mempcpy)
-weak_alias (__mempcpy, mempcpy)
-libc_hidden_builtin_def (mempcpy)
-#endif
-
-ENTRY(memcpy)
- .machine "z900"
- lgr %r1,%r2 # r1: Use as dest ; r2: Return dest
-.L_Z900_start:
- ltgr %r4,%r4
- je .L_Z900_4
- aghi %r4,-1
- srlg %r5,%r4,8
- ltgr %r5,%r5
- jne .L_Z900_13
-.L_Z900_3:
- larl %r5,.L_Z900_15
- ex %r4,0(%r5)
-.L_Z900_4:
- br %r14
-.L_Z900_13:
- cghi %r5,4096 # Switch to mvcle for copies >1MB
- jh __memcpy_mvcle
-.L_Z900_12:
- mvc 0(256,%r1),0(%r3)
- la %r1,256(%r1)
- la %r3,256(%r3)
- brctg %r5,.L_Z900_12
- j .L_Z900_3
-.L_Z900_15:
- mvc 0(1,%r1),0(%r3)
-END(memcpy)
-#ifndef USE_MULTIARCH
-libc_hidden_builtin_def (memcpy)
-#endif
-
-ENTRY(__memcpy_mvcle)
- # Using as standalone function will result in unexpected
- # results since the length field is incremented by 1 in order to
- # compensate the changes already done in the functions above.
- lgr %r0,%r2 # backup return dest [ + n ]
- aghi %r4,1 # length + 1
- lgr %r5,%r4 # source length
- lgr %r4,%r3 # source address
- lgr %r2,%r1 # destination address
- lgr %r3,%r5 # destination length = source length
-.L_MVCLE_1:
- mvcle %r2,%r4,0 # thats it, MVCLE is your friend
- jo .L_MVCLE_1
- lgr %r2,%r0 # return destination address
- br %r14
-END(__memcpy_mvcle)
diff --git a/sysdeps/s390/s390-64/memset.S b/sysdeps/s390/s390-64/memset.S
deleted file mode 100644
index 8799c6592c..0000000000
--- a/sysdeps/s390/s390-64/memset.S
+++ /dev/null
@@ -1,64 +0,0 @@
-/* Set a block of memory to some byte value. 64 bit S/390 version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
- Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
- 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
- <http://www.gnu.org/licenses/>. */
-
-
-#include <sysdep.h>
-#include "asm-syntax.h"
-
-/* INPUT PARAMETERS
- %r2 = address of memory area
- %r3 = byte to fill memory with
- %r4 = number of bytes to fill. */
-
- .text
-
-#ifdef USE_MULTIARCH
-ENTRY(__memset_default)
-#else
-ENTRY(memset)
-#endif
- .machine "z900"
- ltgr %r4,%r4
- je .L_Z900_4
- stc %r3,0(%r2)
- cghi %r4,1
- lgr %r1,%r2
- je .L_Z900_4
- aghi %r4,-2
- srlg %r3,%r4,8
- ltgr %r3,%r3
- jne .L_Z900_14
-.L_Z900_3:
- larl %r3,.L_Z900_18
- ex %r4,0(%r3)
-.L_Z900_4:
- br %r14
-.L_Z900_14:
- mvc 1(256,%r1),0(%r1)
- la %r1,256(%r1)
- brctg %r3,.L_Z900_14
- j .L_Z900_3
-.L_Z900_18:
- mvc 1(1,%r1),0(%r1)
-#ifdef USE_MULTIARCH
-END(__memset_default)
-#else
-END(memset)
-libc_hidden_builtin_def (memset)
-#endif
diff --git a/sysdeps/s390/s390-64/multiarch/Makefile b/sysdeps/s390/s390-64/multiarch/Makefile
deleted file mode 100644
index 91053b5364..0000000000
--- a/sysdeps/s390/s390-64/multiarch/Makefile
+++ /dev/null
@@ -1,4 +0,0 @@
-ifeq ($(subdir),string)
-sysdep_routines += memset memset-s390x memcpy memcpy-s390x \
- memcmp memcmp-s390x
-endif
diff --git a/sysdeps/s390/s390-64/multiarch/memchr.c b/sysdeps/s390/s390-64/multiarch/memchr.c
deleted file mode 100644
index 5e1610afa4..0000000000
--- a/sysdeps/s390/s390-64/multiarch/memchr.c
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Multiple versions of memchr.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-/* This wrapper-file is needed, because otherwise file
- sysdeps/s390/s390-[32|64]/memchr.S will be used. */
-#include <sysdeps/s390/multiarch/memchr.c>
diff --git a/sysdeps/s390/s390-64/multiarch/memcmp-s390x.S b/sysdeps/s390/s390-64/multiarch/memcmp-s390x.S
deleted file mode 100644
index 35f9bf9cf7..0000000000
--- a/sysdeps/s390/s390-64/multiarch/memcmp-s390x.S
+++ /dev/null
@@ -1,104 +0,0 @@
-/* CPU specific memcmp implementations. 64 bit S/390 version.
- Copyright (C) 2012-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-
-#include "sysdep.h"
-#include "asm-syntax.h"
-
-/* INPUT PARAMETERS
- %r2 = address of first memory area
- %r3 = address of second memory area
- %r4 = number of bytes to compare. */
-
- .text
-
-#if IS_IN (libc)
-
-ENTRY(__memcmp_z196)
- .machine "z196"
- ltgr %r4,%r4
- je .L_Z196_4
- aghi %r4,-1
- srlg %r1,%r4,8
- ltgr %r1,%r1
- jne .L_Z196_2
-.L_Z196_3:
- exrl %r4,.L_Z196_14
-.L_Z196_4:
- ipm %r2
- sllg %r2,%r2,34
- srag %r2,%r2,62
- br %r14
-.L_Z196_17:
- la %r3,256(%r3)
- la %r2,256(%r2)
- aghi %r1,-1
- je .L_Z196_3
-.L_Z196_2:
- pfd 1,512(%r3)
- pfd 1,512(%r2)
- clc 0(256,%r3),0(%r2)
- je .L_Z196_17
- ipm %r2
- sllg %r2,%r2,34
- srag %r2,%r2,62
- br %r14
-.L_Z196_14:
- clc 0(1,%r3),0(%r2)
-END(__memcmp_z196)
-
-ENTRY(__memcmp_z10)
- .machine "z10"
- ltgr %r4,%r4
- je .L_Z10_4
- aghi %r4,-1
- srlg %r1,%r4,8
- cgijlh %r1,0,.L_Z10_12
-.L_Z10_3:
- exrl %r4,.L_Z10_15
-.L_Z10_4:
- ipm %r2
- sllg %r2,%r2,34
- srag %r2,%r2,62
- br %r14
-.L_Z10_12:
- pfd 1,512(%r3)
- pfd 1,512(%r2)
- clc 0(256,%r3),0(%r2)
- jne .L_Z10_4
- la %r3,256(%r3)
- la %r2,256(%r2)
- brctg %r1,.L_Z10_12
- j .L_Z10_3
-.L_Z10_15:
- clc 0(1,%r3),0(%r2)
-END(__memcmp_z10)
-
-#endif /* IS_IN (libc) */
-
-#include "../memcmp.S"
-
-#if !IS_IN (libc)
-.globl memcmp
-.set memcmp,__memcmp_default
-.weak bcmp
-.set bcmp,__memcmp_default
-#elif defined SHARED && IS_IN (libc)
-.globl __GI_memcmp
-.set __GI_memcmp,__memcmp_default
-#endif
diff --git a/sysdeps/s390/s390-64/multiarch/memcmp.c b/sysdeps/s390/s390-64/multiarch/memcmp.c
deleted file mode 100644
index 1e6f31806e..0000000000
--- a/sysdeps/s390/s390-64/multiarch/memcmp.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Multiple versions of memcmp.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if IS_IN (libc)
-# define memcmp __redirect_memcmp
-# include <string.h>
-# undef memcmp
-# include <ifunc-resolve.h>
-
-s390_libc_ifunc (__redirect_memcmp, __memcmp, memcmp)
-weak_alias (memcmp, bcmp);
-#endif
diff --git a/sysdeps/s390/s390-64/multiarch/memcpy-s390x.S b/sysdeps/s390/s390-64/multiarch/memcpy-s390x.S
deleted file mode 100644
index 6d60a70834..0000000000
--- a/sysdeps/s390/s390-64/multiarch/memcpy-s390x.S
+++ /dev/null
@@ -1,122 +0,0 @@
-/* CPU specific memcpy implementations. 64 bit S/390 version.
- Copyright (C) 2012-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-
-#include "sysdep.h"
-#include "asm-syntax.h"
-
-/* INPUT PARAMETERS
- %r2 = target operands address
- %r3 = source operands address
- %r4 = number of bytes to copy. */
-
- .text
-
-#if defined SHARED && IS_IN (libc)
-
-ENTRY(____mempcpy_z196)
- .machine "z196"
- lgr %r1,%r2 # Use as dest
- la %r2,0(%r4,%r2) # Return dest + n
- j .L_Z196_start
-END(____mempcpy_z196)
-
-ENTRY(__memcpy_z196)
- .machine "z196"
- lgr %r1,%r2 # r1: Use as dest ; r2: Return dest
-.L_Z196_start:
- ltgr %r4,%r4
- je .L_Z196_4
- aghi %r4,-1
- srlg %r5,%r4,8
- ltgr %r5,%r5
- jne .L_Z196_5
-.L_Z196_3:
- exrl %r4,.L_Z196_14
-.L_Z196_4:
- br %r14
-.L_Z196_5:
- cgfi %r5,262144 # Switch to mvcle for copies >64MB
- jh __memcpy_mvcle
-.L_Z196_2:
- pfd 1,768(%r3)
- pfd 2,768(%r1)
- mvc 0(256,%r1),0(%r3)
- aghi %r5,-1
- la %r1,256(%r1)
- la %r3,256(%r3)
- jne .L_Z196_2
- j .L_Z196_3
-.L_Z196_14:
- mvc 0(1,%r1),0(%r3)
-END(__memcpy_z196)
-
-ENTRY(____mempcpy_z10)
- .machine "z10"
- lgr %r1,%r2 # Use as dest
- la %r2,0(%r4,%r2) # Return dest + n
- j .L_Z10_start
-END(____mempcpy_z10)
-
-ENTRY(__memcpy_z10)
- .machine "z10"
- lgr %r1,%r2 # r1: Use as dest ; r2: Return dest
-.L_Z10_start:
- cgije %r4,0,.L_Z10_4
- aghi %r4,-1
- srlg %r5,%r4,8
- cgijlh %r5,0,.L_Z10_13
-.L_Z10_3:
- exrl %r4,.L_Z10_15
-.L_Z10_4:
- br %r14
-.L_Z10_13:
- cgfi %r5,65535 # Switch to mvcle for copies >16MB
- jh __memcpy_mvcle
-.L_Z10_12:
- pfd 1,768(%r3)
- pfd 2,768(%r1)
- mvc 0(256,%r1),0(%r3)
- la %r1,256(%r1)
- la %r3,256(%r3)
- brctg %r5,.L_Z10_12
- j .L_Z10_3
-.L_Z10_15:
- mvc 0(1,%r1),0(%r3)
-END(__memcpy_z10)
-
-# define __mempcpy ____mempcpy_default
-#endif /* SHARED && IS_IN (libc) */
-
-#define memcpy __memcpy_default
-#include "../memcpy.S"
-#undef memcpy
-
-#if defined SHARED && IS_IN (libc)
-.globl __GI_memcpy
-.set __GI_memcpy,__memcpy_default
-.globl __GI_mempcpy
-.set __GI_mempcpy,____mempcpy_default
-.globl __GI___mempcpy
-.set __GI___mempcpy,____mempcpy_default
-#else
-.globl memcpy
-.set memcpy,__memcpy_default
-.weak mempcpy
-.set mempcpy,__mempcpy
-#endif
diff --git a/sysdeps/s390/s390-64/multiarch/memcpy.c b/sysdeps/s390/s390-64/multiarch/memcpy.c
deleted file mode 100644
index c9577a854a..0000000000
--- a/sysdeps/s390/s390-64/multiarch/memcpy.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Multiple versions of memcpy.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-/* In the static lib memcpy is needed before the reloc is resolved. */
-#if defined SHARED && IS_IN (libc)
-# define memcpy __redirect_memcpy
-# include <string.h>
-# undef memcpy
-# include <ifunc-resolve.h>
-
-s390_libc_ifunc (__redirect_memcpy, __memcpy, memcpy)
-#endif
diff --git a/sysdeps/s390/s390-64/multiarch/memset-s390x.S b/sysdeps/s390/s390-64/multiarch/memset-s390x.S
deleted file mode 100644
index 0c5aaef34f..0000000000
--- a/sysdeps/s390/s390-64/multiarch/memset-s390x.S
+++ /dev/null
@@ -1,112 +0,0 @@
-/* Set a block of memory to some byte value. 64 bit S/390 version.
- Copyright (C) 2012-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-
-#include "sysdep.h"
-#include "asm-syntax.h"
-
-/* INPUT PARAMETERS
- %r2 = address of memory area
- %r3 = byte to fill memory with
- %r4 = number of bytes to fill. */
-
- .text
-
-#if IS_IN (libc)
-
-ENTRY(__memset_z196)
- .machine "z196"
- ltgr %r4,%r4
- je .L_Z196_4
- stc %r3,0(%r2)
- lgr %r1,%r2
- cghi %r4,1
- je .L_Z196_4
- aghi %r4,-2
- srlg %r5,%r4,8
- ltgr %r5,%r5
- jne .L_Z196_1
-.L_Z196_3:
- exrl %r4,.L_Z196_17
-.L_Z196_4:
- br %r14
-.L_Z196_1:
- cgfi %r5,1048576
- jh __memset_mvcle # Switch to mvcle for >256MB
-.L_Z196_2:
- pfd 2,1024(%r1)
- mvc 1(256,%r1),0(%r1)
- aghi %r5,-1
- la %r1,256(%r1)
- jne .L_Z196_2
- j .L_Z196_3
-.L_Z196_17:
- mvc 1(1,%r1),0(%r1)
-END(__memset_z196)
-
-ENTRY(__memset_z10)
- .machine "z10"
- cgije %r4,0,.L_Z10_4
- stc %r3,0(%r2)
- lgr %r1,%r2
- cgije %r4,1,.L_Z10_4
- aghi %r4,-2
- srlg %r5,%r4,8
- cgijlh %r5,0,.L_Z10_15
-.L_Z10_3:
- exrl %r4,.L_Z10_18
-.L_Z10_4:
- br %r14
-.L_Z10_15:
- cgfi %r5,163840 # Switch to mvcle for >40MB
- jh __memset_mvcle
-.L_Z10_14:
- pfd 2,1024(%r1)
- mvc 1(256,%r1),0(%r1)
- la %r1,256(%r1)
- brctg %r5,.L_Z10_14
- j .L_Z10_3
-.L_Z10_18:
- mvc 1(1,%r1),0(%r1)
-END(__memset_z10)
-
-ENTRY(__memset_mvcle)
- aghi %r4,2 # take back the change done by the caller
- lgr %r0,%r2 # save source address
- lgr %r1,%r3 # move pad byte to R1
- lgr %r3,%r4 # move length to r3
- sgr %r4,%r4 # no source for MVCLE, only a pad byte
- sgr %r5,%r5
-.L0: mvcle %r2,%r4,0(%r1) # thats it, MVCLE is your friend
- jo .L0
- lgr %r2,%r0 # return value is source address
-.L1:
- br %r14
-END(__memset_mvcle)
-
-#endif /* IS_IN (libc) */
-
-#include "../memset.S"
-
-#if !IS_IN (libc)
-.globl memset
-.set memset,__memset_default
-#elif defined SHARED && IS_IN (libc)
-.globl __GI_memset
-.set __GI_memset,__memset_default
-#endif
diff --git a/sysdeps/s390/s390-64/multiarch/memset.c b/sysdeps/s390/s390-64/multiarch/memset.c
deleted file mode 100644
index 760b3e9df2..0000000000
--- a/sysdeps/s390/s390-64/multiarch/memset.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Multiple versions of memset.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#if IS_IN (libc)
-# define memset __redirect_memset
-# include <string.h>
-# undef memset
-# include <ifunc-resolve.h>
-
-s390_libc_ifunc (__redirect_memset, __memset, memset)
-#endif
diff --git a/sysdeps/s390/s390-64/multiarch/strcmp.c b/sysdeps/s390/s390-64/multiarch/strcmp.c
deleted file mode 100644
index d06b0f3436..0000000000
--- a/sysdeps/s390/s390-64/multiarch/strcmp.c
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Multiple versions of strcmp.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-/* This wrapper-file is needed, because otherwise file
- sysdeps/s390/s390-[32|64]/strcmp.S will be used. */
-#include <sysdeps/s390/multiarch/strcmp.c>
diff --git a/sysdeps/s390/s390-64/multiarch/strcpy.c b/sysdeps/s390/s390-64/multiarch/strcpy.c
deleted file mode 100644
index 6a22e31a03..0000000000
--- a/sysdeps/s390/s390-64/multiarch/strcpy.c
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Multiple versions of strcpy.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-/* This wrapper-file is needed, because otherwise file
- sysdeps/s390/s390-[32|64]/strcpy.S will be used. */
-#include <sysdeps/s390/multiarch/strcpy.c>
diff --git a/sysdeps/s390/s390-64/multiarch/strncpy.c b/sysdeps/s390/s390-64/multiarch/strncpy.c
deleted file mode 100644
index 57f9df18d1..0000000000
--- a/sysdeps/s390/s390-64/multiarch/strncpy.c
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Multiple versions of strncpy.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-/* This wrapper-file is needed, because otherwise file
- sysdeps/s390/s390-[32|64]/strncpy.S will be used. */
-#include <sysdeps/s390/multiarch/strncpy.c>
diff --git a/sysdeps/s390/s390-64/s390x-mcount.S b/sysdeps/s390/s390-64/s390x-mcount.S
index c6b5d65e17..9e8184c3ef 100644
--- a/sysdeps/s390/s390-64/s390x-mcount.S
+++ b/sysdeps/s390/s390-64/s390x-mcount.S
@@ -1,6 +1,5 @@
/* 64 bit S/390-specific implementation of profiling support.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
- Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com)
+ Copyright (C) 2018-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
@@ -15,63 +14,27 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-
-/* How profiling works on 64 bit S/390:
- On the start of each function _mcount is called with the address of a
- data word in %r1 (initialized to 0, used for counting). The compiler
- with the option -p generates code of the form:
-
- STM 6,15,24(15)
- BRAS 13,.LTN0_0
- .LT0_0:
- .LC13: .long .LP0
- .data
- .align 4
- .LP0: .long 0
- .text
- # function profiler
- stg 14,4(15)
- lg 1,.LC13-.LT0_0(13)
- brasl 14,_mcount
- lg 14,4(15)
-
- The _mcount implementation now has to call __mcount_internal with the
- address of .LP0 as first parameter and the return address as second
- parameter. &.LP0 was loaded to %r1 and the return address is in %r14.
- _mcount may not modify any register. */
-
- .globl C_SYMBOL_NAME(_mcount)
- .type C_SYMBOL_NAME(_mcount), @function
- cfi_startproc
- .align ALIGNARG(4)
-C_LABEL(_mcount)
- /* Save the caller-clobbered registers. */
- aghi %r15,-224
- cfi_adjust_cfa_offset (224)
- stmg %r14,%r5,160(%r15)
- cfi_offset (r14, 0)
- cfi_offset (r15, 8)
- lg %r2,232(%r15) # callers address = first parameter
- la %r2,0(%r2) # clear bit 0
- la %r3,0(%r14) # callees address = second parameter
-
-#ifdef PIC
- brasl %r14,__mcount_internal@PLT
-#else
- brasl %r14,__mcount_internal
-#endif
-
- /* Pop the saved registers. Please note that `mcount' has no
- return value. */
- lmg %r14,%r5,160(%r15)
- aghi %r15,224
- cfi_adjust_cfa_offset (-224)
- br %r14
- cfi_endproc
- ASM_SIZE_DIRECTIVE(C_SYMBOL_NAME(_mcount))
+ <https://www.gnu.org/licenses/>. */
+
+#define MCOUNT_SYMBOL _mcount
+#define MCOUNT_CALLER_OFF 232 /* Pushed by the _mcount stub. */
+#define MCOUNT_CALLEE_REG 14 /* Normal calling convention. */
+#define MCOUNT_RETURN_REG 14
+#include "s390x-mcount.h"
+#undef MCOUNT_SYMBOL
+#undef MCOUNT_CALLER_OFF
+#undef MCOUNT_CALLEE_REG
+#undef MCOUNT_RETURN_REG
+
+#define MCOUNT_SYMBOL __fentry__
+#define MCOUNT_CALLER_OFF 160 /* Saved %r14. */
+#define MCOUNT_CALLEE_REG 0 /* __fentry__ calling convention. */
+#define MCOUNT_RETURN_REG 1 /* Cannot return via %r0. */
+#include "s390x-mcount.h"
+#undef MCOUNT_SYMBOL
+#undef MCOUNT_CALLER_OFF
+#undef MCOUNT_CALLEE_REG
+#undef MCOUNT_RETURN_REG
#undef mcount
weak_alias (_mcount, mcount)
diff --git a/sysdeps/s390/s390-64/s390x-mcount.h b/sysdeps/s390/s390-64/s390x-mcount.h
new file mode 100644
index 0000000000..14ce0df578
--- /dev/null
+++ b/sysdeps/s390/s390-64/s390x-mcount.h
@@ -0,0 +1,99 @@
+/* 64 bit S/390-specific implementation of profiling support.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
+ Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com)
+ 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
+ <https://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+/* How profiling works on 64 bit S/390:
+ On the start of each function _mcount is called with the address of a
+ data word in %r1 (initialized to 0, used for counting). The compiler
+ with the option -p generates code of the form:
+
+ STM 6,15,24(15)
+ BRAS 13,.LTN0_0
+ .LT0_0:
+ .LC13: .long .LP0
+ .data
+ .align 4
+ .LP0: .long 0
+ .text
+ # function profiler
+ stg 14,8(15)
+ lg 1,.LC13-.LT0_0(13)
+ brasl 14,_mcount
+ lg 14,8(15)
+
+ The _mcount implementation now has to call __mcount_internal with the
+ address of .LP0 as first parameter and the return address as second
+ parameter. &.LP0 was loaded to %r1 and the return address is in %r14.
+ _mcount may not modify any register.
+
+ Alternatively, at the start of each function __fentry__ is called using a
+ single
+
+ # function profiler
+ brasl 0,__fentry__
+
+ instruction. In this case %r0 points to the callee, and %r14 points to the
+ caller. These values need to be passed to __mcount_internal using the same
+ sequence as for _mcount, so the code below is shared between both functions.
+ The only major difference is that __fentry__ cannot return through %r0, in
+ which the return address is located, because br instruction is a no-op with
+ this register. Therefore %r1, which is clobbered by the PLT anyway, is
+ used. */
+
+#define xglue(x, y) x ## y
+#define glue(x, y) xglue(x, y)
+
+ .globl C_SYMBOL_NAME(MCOUNT_SYMBOL)
+ .type C_SYMBOL_NAME(MCOUNT_SYMBOL), @function
+ cfi_startproc
+ .align ALIGNARG(4)
+C_LABEL(MCOUNT_SYMBOL)
+ cfi_return_column (glue(r, MCOUNT_CALLEE_REG))
+ /* Save the caller-clobbered registers. */
+ aghi %r15,-224
+ cfi_adjust_cfa_offset (224)
+ /* binutils 2.28+: .cfi_val_offset r15, -160 */
+ .cfi_escape \
+ /* DW_CFA_val_offset */ 0x14, \
+ /* r15 */ 0x0f, \
+ /* scaled offset */ 0x14
+ stmg %r14,%r5,160(%r15)
+ cfi_offset (r14, -224)
+ cfi_offset (r0, -224+16)
+ lg %r2,MCOUNT_CALLER_OFF(%r15) # callers address = 1st param
+ lgr %r3,glue(%r, MCOUNT_CALLEE_REG) # callees address = 2nd param
+
+#ifdef PIC
+ brasl %r14,__mcount_internal@PLT
+#else
+ brasl %r14,__mcount_internal
+#endif
+
+ /* Pop the saved registers. Please note that `mcount' has no
+ return value. */
+ lmg %r14,%r5,160(%r15)
+ aghi %r15,224
+ cfi_adjust_cfa_offset (-224)
+#if MCOUNT_RETURN_REG != MCOUNT_CALLEE_REG
+ lgr glue(%r, MCOUNT_RETURN_REG),glue(%r, MCOUNT_CALLEE_REG)
+#endif
+ br glue(%r, MCOUNT_RETURN_REG)
+ cfi_endproc
+ ASM_SIZE_DIRECTIVE(C_SYMBOL_NAME(MCOUNT_SYMBOL))
diff --git a/sysdeps/s390/s390-64/setjmp.S b/sysdeps/s390/s390-64/setjmp.S
index f512589fb9..03525f2e5a 100644
--- a/sysdeps/s390/s390-64/setjmp.S
+++ b/sysdeps/s390/s390-64/setjmp.S
@@ -1,5 +1,5 @@
/* setjmp for 64 bit S/390, ELF version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#define _ASM
diff --git a/sysdeps/s390/s390-64/start.S b/sysdeps/s390/s390-64/start.S
index 79e7b69f1d..c253ec638f 100644
--- a/sysdeps/s390/s390-64/start.S
+++ b/sysdeps/s390/s390-64/start.S
@@ -1,5 +1,5 @@
/* Startup code compliant to the 64 bit S/390 ELF ABI.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
This file is part of the GNU C Library.
@@ -32,7 +32,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/s390/s390-64/strcmp.S b/sysdeps/s390/s390-64/strcmp.S
deleted file mode 100644
index 6cf1addd8b..0000000000
--- a/sysdeps/s390/s390-64/strcmp.S
+++ /dev/null
@@ -1,41 +0,0 @@
-/* strcmp - compare two string. 64 bit S/390 version.
- This file is part of the GNU C Library.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
- Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-/* INPUT PARAMETERS
- %r2 = address of string 1
- %r3 = address of string 2. */
-
-#include "sysdep.h"
-#include "asm-syntax.h"
-
- .text
-ENTRY(strcmp)
- slr %r0,%r0
-0: clst %r2,%r3
- jo 0b
- jp 1f
- jm 2f
- slgr %r2,%r2
- br %r14
-1: lghi %r2,1
- br %r14
-2: lghi %r2,-1
- br %r14
-END(strcmp)
-libc_hidden_builtin_def (strcmp)
diff --git a/sysdeps/s390/s390-64/strcpy.S b/sysdeps/s390/s390-64/strcpy.S
deleted file mode 100644
index 203c73c905..0000000000
--- a/sysdeps/s390/s390-64/strcpy.S
+++ /dev/null
@@ -1,35 +0,0 @@
-/* strcpy - copy a string from source to destination. 64 bit S/390 version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
- Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
- 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
- <http://www.gnu.org/licenses/>. */
-
-/* INPUT PARAMETERS
- %r2 = address of destination
- %r3 = address of source. */
-
-#include "sysdep.h"
-#include "asm-syntax.h"
-
- .text
-ENTRY(strcpy)
- slgr %r0,%r0
- lgr %r1,%r2
-0: mvst %r1,%r3
- jo 0b
- br %r14
-END(strcpy)
-libc_hidden_builtin_def (strcpy)
diff --git a/sysdeps/s390/s390-64/strncpy-z900.S b/sysdeps/s390/s390-64/strncpy-z900.S
new file mode 100644
index 0000000000..f939ca55bc
--- /dev/null
+++ b/sysdeps/s390/s390-64/strncpy-z900.S
@@ -0,0 +1,100 @@
+/* strncpy - copy at most n characters from a string from source to
+ destination. 64 bit S/390 version
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
+ Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
+ 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
+ <https://www.gnu.org/licenses/>. */
+
+/* INPUT PARAMETERS
+ %r2 = address of destination (dst)
+ %r3 = address of source (src)
+ %r4 = max of bytes to copy. */
+
+#include <ifunc-strncpy.h>
+#include "sysdep.h"
+#include "asm-syntax.h"
+
+#if HAVE_STRNCPY_Z900_G5
+ENTRY(STRNCPY_Z900_G5)
+ .text
+ stg %r2,48(%r15) # save dst pointer
+ slgr %r2,%r3 # %r3 points to src, %r2+%r3 to dst
+ lghi %r1,7
+ ngr %r1,%r4 # last 3 bits of # bytes
+ srlg %r4,%r4,3
+ ltgr %r4,%r4 # less than 8 bytes to copy ?
+ jz .L1
+ bras %r5,.L0 # enter loop & load address of a 0
+ .long 0
+.L0: icmh %r0,8,0(%r3) # first byte
+ jz .L3
+ icmh %r0,4,1(%r3) # second byte
+ jz .L4
+ icmh %r0,2,2(%r3) # third byte
+ jz .L5
+ icmh %r0,1,3(%r3) # fourth byte
+ jz .L6
+ icm %r0,8,4(%r3) # fifth byte
+ jz .L7
+ icm %r0,4,5(%r3) # sixth byte
+ jz .L8
+ icm %r0,2,6(%r3) # seventh byte
+ jz .L9
+ icm %r0,1,7(%r3) # eigth byte
+ jz .L10
+ stg %r0,0(%r2,%r3) # store all eight to dest.
+ la %r3,8(%r3)
+ brct %r4,.L0
+.L1: ltgr %r1,%r1
+ jz .Lexit
+.L2: icm %r0,1,0(%r3)
+ stc %r0,0(%r2,%r3)
+ la %r3,1(%r3)
+ jz .L11
+ brct %r1,.L2
+ j .Lexit
+.L3: icmh %r0,4,0(%r5)
+.L4: icmh %r0,2,0(%r5)
+.L5: icmh %r0,1,0(%r5)
+.L6: icm %r0,8,0(%r5)
+.L7: icm %r0,4,0(%r5)
+.L8: icm %r0,2,0(%r5)
+.L9: icm %r0,1,0(%r5)
+.L10: stg %r0,0(%r2,%r3)
+ la %r3,8(%r3)
+ aghi %r4,-1
+ j .L12
+.L11: aghi %r1,-1
+.L12: sllg %r4,%r4,3
+ algr %r4,%r1
+ algr %r2,%r3 # start of dst area to be zeroed
+ lgr %r3,%r4
+ slgr %r4,%r4
+ slgr %r5,%r5
+.L13: mvcle %r2,%r4,0 # pad dst with zeroes
+ jo .L13
+.Lexit: lg %r2,48(%r15) # return dst pointer
+ br %r14
+END(STRNCPY_Z900_G5)
+
+# if ! HAVE_STRNCPY_IFUNC
+strong_alias (STRNCPY_Z900_G5, strncpy)
+# endif
+
+# if defined SHARED && IS_IN (libc)
+strong_alias (STRNCPY_Z900_G5, __GI_strncpy)
+# endif
+#endif
diff --git a/sysdeps/s390/s390-64/strncpy.S b/sysdeps/s390/s390-64/strncpy.S
deleted file mode 100644
index be40aa32d5..0000000000
--- a/sysdeps/s390/s390-64/strncpy.S
+++ /dev/null
@@ -1,90 +0,0 @@
-/* strncpy - copy at most n characters from a string from source to
- destination. 64 bit S/390 version
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
- Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
- 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
- <http://www.gnu.org/licenses/>. */
-
-/* INPUT PARAMETERS
- %r2 = address of destination (dst)
- %r3 = address of source (src)
- %r4 = max of bytes to copy. */
-
-#include "sysdep.h"
-#include "asm-syntax.h"
-
-ENTRY(strncpy)
- .text
- stg %r2,48(%r15) # save dst pointer
- slgr %r2,%r3 # %r3 points to src, %r2+%r3 to dst
- lghi %r1,7
- ngr %r1,%r4 # last 3 bits of # bytes
- srlg %r4,%r4,3
- ltgr %r4,%r4 # less than 8 bytes to copy ?
- jz .L1
- bras %r5,.L0 # enter loop & load address of a 0
- .long 0
-.L0: icmh %r0,8,0(%r3) # first byte
- jz .L3
- icmh %r0,4,1(%r3) # second byte
- jz .L4
- icmh %r0,2,2(%r3) # third byte
- jz .L5
- icmh %r0,1,3(%r3) # fourth byte
- jz .L6
- icm %r0,8,4(%r3) # fifth byte
- jz .L7
- icm %r0,4,5(%r3) # sixth byte
- jz .L8
- icm %r0,2,6(%r3) # seventh byte
- jz .L9
- icm %r0,1,7(%r3) # eigth byte
- jz .L10
- stg %r0,0(%r2,%r3) # store all eight to dest.
- la %r3,8(%r3)
- brct %r4,.L0
-.L1: ltgr %r1,%r1
- jz .Lexit
-.L2: icm %r0,1,0(%r3)
- stc %r0,0(%r2,%r3)
- la %r3,1(%r3)
- jz .L11
- brct %r1,.L2
- j .Lexit
-.L3: icmh %r0,4,0(%r5)
-.L4: icmh %r0,2,0(%r5)
-.L5: icmh %r0,1,0(%r5)
-.L6: icm %r0,8,0(%r5)
-.L7: icm %r0,4,0(%r5)
-.L8: icm %r0,2,0(%r5)
-.L9: icm %r0,1,0(%r5)
-.L10: stg %r0,0(%r2,%r3)
- la %r3,8(%r3)
- aghi %r4,-1
- j .L12
-.L11: aghi %r1,-1
-.L12: sllg %r4,%r4,3
- algr %r4,%r1
- algr %r2,%r3 # start of dst area to be zeroed
- lgr %r3,%r4
- slgr %r4,%r4
- slgr %r5,%r5
-.L13: mvcle %r2,%r4,0 # pad dst with zeroes
- jo .L13
-.Lexit: lg %r2,48(%r15) # return dst pointer
- br %r14
-END(strncpy)
-libc_hidden_builtin_def (strncpy)
diff --git a/sysdeps/s390/s390-64/sub_n.S b/sysdeps/s390/s390-64/sub_n.S
index ad5c7fc9ca..4e250531db 100644
--- a/sysdeps/s390/s390-64/sub_n.S
+++ b/sysdeps/s390/s390-64/sub_n.S
@@ -1,6 +1,6 @@
/* __mpn_sub_n -- Add two limb vectors of the same length > 0 and store
sum in a third limb vector. 64 bit S/390 version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
This file is part of the GNU MP Library.
@@ -16,7 +16,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 <http://www.gnu.org/licenses/>. */
+ see <https://www.gnu.org/licenses/>. */
/* INPUT PARAMETERS
%r2 = res_ptr
diff --git a/sysdeps/s390/s390-64/sysdep.h b/sysdeps/s390/s390-64/sysdep.h
index a573e08e92..69994bb384 100644
--- a/sysdeps/s390/s390-64/sysdep.h
+++ b/sysdeps/s390/s390-64/sysdep.h
@@ -1,5 +1,5 @@
/* Assembler macros for 64 bit S/390.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/generic/sysdep.h>
@@ -32,7 +32,7 @@
#define ENTRY(name) \
.globl C_SYMBOL_NAME(name); \
.type C_SYMBOL_NAME(name),@function; \
- .align ALIGNARG(2); \
+ .align ALIGNARG(4); \
C_LABEL(name) \
cfi_startproc; \
CALL_MCOUNT
diff --git a/sysdeps/s390/s390-64/tst-audit.h b/sysdeps/s390/s390-64/tst-audit.h
index 954373e24f..44e74c6815 100644
--- a/sysdeps/s390/s390-64/tst-audit.h
+++ b/sysdeps/s390/s390-64/tst-audit.h
@@ -1,6 +1,6 @@
/* Definitions for testing PLT entry/exit auditing. S/390 64-bit version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define pltenter la_s390_64_gnu_pltenter
#define pltexit la_s390_64_gnu_pltexit
diff --git a/sysdeps/s390/sotruss-lib.c b/sysdeps/s390/sotruss-lib.c
index 90b8f77e55..d5d195d46a 100644
--- a/sysdeps/s390/sotruss-lib.c
+++ b/sysdeps/s390/sotruss-lib.c
@@ -1,5 +1,5 @@
/* Override generic sotruss-lib.c to define actual functions for s390.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define HAVE_ARCH_PLTENTER
#define HAVE_ARCH_PLTEXIT
diff --git a/sysdeps/s390/stackinfo.h b/sysdeps/s390/stackinfo.h
index e429f361ae..350bd333d8 100644
--- a/sysdeps/s390/stackinfo.h
+++ b/sysdeps/s390/stackinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file contains a bit of information about the stack allocation
of the processor. */
diff --git a/sysdeps/s390/stpcpy-c.c b/sysdeps/s390/stpcpy-c.c
new file mode 100644
index 0000000000..7958dc465f
--- /dev/null
+++ b/sysdeps/s390/stpcpy-c.c
@@ -0,0 +1,40 @@
+/* Default stpcpy implementation for S/390.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-stpcpy.h>
+
+#if HAVE_STPCPY_C
+# if HAVE_STPCPY_IFUNC
+# define STPCPY STPCPY_C
+
+# undef weak_alias
+# define weak_alias(a, b)
+
+# if defined SHARED && IS_IN (libc)
+# undef libc_hidden_def
+# define libc_hidden_def(name) \
+ __hidden_ver1 (__stpcpy_c, __GI___stpcpy, __stpcpy_c);
+# undef libc_hidden_builtin_def
+# define libc_hidden_builtin_def(name) \
+ strong_alias (__stpcpy_c, __stpcpy_c_1); \
+ __hidden_ver1 (__stpcpy_c_1, __GI_stpcpy, __stpcpy_c_1);
+# endif
+# endif
+
+# include <string/stpcpy.c>
+#endif
diff --git a/sysdeps/s390/multiarch/stpcpy-vx.S b/sysdeps/s390/stpcpy-vx.S
index 6c17def0fc..97afbcfc92 100644
--- a/sysdeps/s390/multiarch/stpcpy-vx.S
+++ b/sysdeps/s390/stpcpy-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of stpcpy.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,9 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
+#include <ifunc-stpcpy.h>
+
+#if HAVE_STPCPY_Z13
# include "sysdep.h"
# include "asm-syntax.h"
@@ -36,7 +38,7 @@
-v17=index of zero
-v18=part of src
*/
-ENTRY(__stpcpy_vx)
+ENTRY(STPCPY_Z13)
.machine "z13"
.machinemode "zarch_nohighgprs"
@@ -100,5 +102,15 @@ ENTRY(__stpcpy_vx)
vstl %v16,%r5,0(%r2) /* Copy characters including zero. */
la %r2,0(%r5,%r2) /* Return pointer to zero. */
br %r14
-END(__stpcpy_vx)
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
+END(STPCPY_Z13)
+
+# if ! HAVE_STPCPY_IFUNC
+strong_alias (STPCPY_Z13, __stpcpy)
+weak_alias (__stpcpy, stpcpy)
+# endif
+
+# if ! HAVE_STPCPY_C && defined SHARED && IS_IN (libc)
+strong_alias (STPCPY_Z13, __GI_stpcpy)
+strong_alias (STPCPY_Z13, __GI___stpcpy)
+# endif
+#endif
diff --git a/sysdeps/s390/stpcpy.c b/sysdeps/s390/stpcpy.c
new file mode 100644
index 0000000000..6ea87712ff
--- /dev/null
+++ b/sysdeps/s390/stpcpy.c
@@ -0,0 +1,46 @@
+/* Multiple versions of stpcpy.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-stpcpy.h>
+
+#if HAVE_STPCPY_IFUNC
+# define stpcpy __redirect_stpcpy
+# define __stpcpy __redirect___stpcpy
+/* Omit the stpcpy inline definitions because it would redefine stpcpy. */
+# define __NO_STRING_INLINES
+# define NO_MEMPCPY_STPCPY_REDIRECT
+# include <string.h>
+# undef stpcpy
+# undef __stpcpy
+# include <ifunc-resolve.h>
+
+# if HAVE_STPCPY_C
+extern __typeof (__redirect_stpcpy) STPCPY_C attribute_hidden;
+# endif
+
+# if HAVE_STPCPY_Z13
+extern __typeof (__redirect_stpcpy) STPCPY_Z13 attribute_hidden;
+# endif
+
+s390_libc_ifunc_expr (__redirect___stpcpy, __stpcpy,
+ (HAVE_STPCPY_Z13 && (hwcap & HWCAP_S390_VX))
+ ? STPCPY_Z13
+ : STPCPY_DEFAULT
+ )
+weak_alias (__stpcpy, stpcpy)
+#endif
diff --git a/sysdeps/s390/stpncpy-c.c b/sysdeps/s390/stpncpy-c.c
new file mode 100644
index 0000000000..0f4a11c053
--- /dev/null
+++ b/sysdeps/s390/stpncpy-c.c
@@ -0,0 +1,33 @@
+/* Default stpncpy implementation for S/390.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-stpncpy.h>
+
+#if HAVE_STPNCPY_C
+# if HAVE_STPNCPY_IFUNC
+# define STPNCPY STPNCPY_C
+
+# if defined SHARED && IS_IN (libc)
+# undef libc_hidden_def
+# define libc_hidden_def(name) \
+ __hidden_ver1 (__stpncpy_c, __GI___stpncpy, __stpncpy_c);
+# endif
+# endif
+
+# include <string/stpncpy.c>
+#endif
diff --git a/sysdeps/s390/multiarch/stpncpy-vx.S b/sysdeps/s390/stpncpy-vx.S
index 922bd7a355..928e119945 100644
--- a/sysdeps/s390/multiarch/stpncpy-vx.S
+++ b/sysdeps/s390/stpncpy-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of stpncpy.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,9 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
+#include <ifunc-stpncpy.h>
+
+#if HAVE_STPNCPY_Z13
# include "sysdep.h"
# include "asm-syntax.h"
@@ -38,7 +40,7 @@
-%r6 = loaded bytes
-%r7 = border, tmp
*/
-ENTRY(__stpncpy_vx)
+ENTRY(STPNCPY_Z13)
.machine "z13"
.machinemode "zarch_nohighgprs"
@@ -196,5 +198,14 @@ ENTRY(__stpncpy_vx)
vl %v16,0(%r5,%r3) /* Load s. */
j .Llt64
-END(__stpncpy_vx)
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
+END(STPNCPY_Z13)
+
+# if ! HAVE_STPNCPY_IFUNC
+strong_alias (STPNCPY_Z13, __stpncpy)
+weak_alias (__stpncpy, stpncpy)
+# endif
+
+# if ! HAVE_STPNCPY_C && defined SHARED && IS_IN (libc)
+strong_alias (STPNCPY_Z13, __GI___stpncpy)
+# endif
+#endif
diff --git a/sysdeps/s390/stpncpy.c b/sysdeps/s390/stpncpy.c
new file mode 100644
index 0000000000..89e9f39e01
--- /dev/null
+++ b/sysdeps/s390/stpncpy.c
@@ -0,0 +1,43 @@
+/* Multiple versions of stpncpy.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-stpncpy.h>
+
+#if HAVE_STPNCPY_IFUNC
+# define stpncpy __redirect_stpncpy
+# define __stpncpy __redirect___stpncpy
+# include <string.h>
+# undef stpncpy
+# undef __stpncpy
+# include <ifunc-resolve.h>
+
+# if HAVE_STPNCPY_C
+extern __typeof (__redirect_stpncpy) STPNCPY_C attribute_hidden;
+# endif
+
+# if HAVE_STPNCPY_Z13
+extern __typeof (__redirect_stpncpy) STPNCPY_Z13 attribute_hidden;
+# endif
+
+s390_libc_ifunc_expr (__redirect___stpncpy, __stpncpy,
+ (HAVE_STPNCPY_Z13 && (hwcap & HWCAP_S390_VX))
+ ? STPNCPY_Z13
+ : STPNCPY_DEFAULT
+ )
+weak_alias (__stpncpy, stpncpy)
+#endif
diff --git a/sysdeps/s390/strcat-c.c b/sysdeps/s390/strcat-c.c
new file mode 100644
index 0000000000..5ae143c1f9
--- /dev/null
+++ b/sysdeps/s390/strcat-c.c
@@ -0,0 +1,32 @@
+/* Default strcat implementation for S/390.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-strcat.h>
+
+#if HAVE_STRCAT_C
+# if HAVE_STRCAT_IFUNC
+# define STRCAT STRCAT_C
+# if defined SHARED && IS_IN (libc)
+# undef libc_hidden_builtin_def
+# define libc_hidden_builtin_def(name) \
+ __hidden_ver1 (__strcat_c, __GI_strcat, __strcat_c);
+# endif
+# endif
+
+# include <string/strcat.c>
+#endif
diff --git a/sysdeps/s390/multiarch/strcat-vx.S b/sysdeps/s390/strcat-vx.S
index 3abbbccced..1fc80a21d2 100644
--- a/sysdeps/s390/multiarch/strcat-vx.S
+++ b/sysdeps/s390/strcat-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of strcat.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,9 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
+#include <ifunc-strcat.h>
+#if HAVE_STRCAT_Z13
# include "sysdep.h"
# include "asm-syntax.h"
@@ -37,7 +38,7 @@
-v17=index of zero
-v18=part of src
*/
-ENTRY(__strcat_vx)
+ENTRY(STRCAT_Z13)
.machine "z13"
.machinemode "zarch_nohighgprs"
@@ -157,5 +158,13 @@ ENTRY(__strcat_vx)
vstl %v16,%r5,0(%r2) /* Copy characters including zero. */
lgr %r2,%r0 /* Load saved dest-ptr. */
br %r14
-END(__strcat_vx)
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
+END(STRCAT_Z13)
+
+# if ! HAVE_STRCAT_IFUNC
+strong_alias (STRCAT_Z13, strcat)
+# endif
+
+# if ! HAVE_STRCAT_C && defined SHARED && IS_IN (libc)
+strong_alias (STRCAT_Z13, __GI_strcat)
+# endif
+#endif
diff --git a/sysdeps/s390/strcat.c b/sysdeps/s390/strcat.c
new file mode 100644
index 0000000000..abd6523104
--- /dev/null
+++ b/sysdeps/s390/strcat.c
@@ -0,0 +1,40 @@
+/* Multiple versions of strcat.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-strcat.h>
+
+#if HAVE_STRCAT_IFUNC
+# define strcat __redirect_strcat
+# include <string.h>
+# undef strcat
+# include <ifunc-resolve.h>
+
+# if HAVE_STRCAT_C
+extern __typeof (__redirect_strcat) STRCAT_C attribute_hidden;
+# endif
+
+# if HAVE_STRCAT_Z13
+extern __typeof (__redirect_strcat) STRCAT_Z13 attribute_hidden;
+# endif
+
+s390_libc_ifunc_expr (__redirect_strcat, strcat,
+ (HAVE_STRCAT_Z13 && (hwcap & HWCAP_S390_VX))
+ ? STRCAT_Z13
+ : STRCAT_DEFAULT
+ )
+#endif
diff --git a/sysdeps/s390/strchr-c.c b/sysdeps/s390/strchr-c.c
new file mode 100644
index 0000000000..4f60c1cbc9
--- /dev/null
+++ b/sysdeps/s390/strchr-c.c
@@ -0,0 +1,33 @@
+/* Default strchr implementation for S/390.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-strchr.h>
+
+#if HAVE_STRCHR_C
+# if HAVE_STRCHR_IFUNC
+# define STRCHR STRCHR_C
+# undef weak_alias
+# if defined SHARED && IS_IN (libc)
+# undef libc_hidden_builtin_def
+# define libc_hidden_builtin_def(name) \
+ __hidden_ver1 (__strchr_c, __GI_strchr, __strchr_c);
+# endif
+# endif
+
+# include <string/strchr.c>
+#endif
diff --git a/sysdeps/s390/multiarch/strchr-vx.S b/sysdeps/s390/strchr-vx.S
index 6e744fb82f..bc928e9ddd 100644
--- a/sysdeps/s390/multiarch/strchr-vx.S
+++ b/sysdeps/s390/strchr-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of strchr.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,9 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
+#include <ifunc-strchr.h>
+
+#if HAVE_STRCHR_Z13
# include "sysdep.h"
# include "asm-syntax.h"
@@ -36,7 +38,7 @@
-v17=index of unequal
-v18=replicated c
*/
-ENTRY(__strchr_vx)
+ENTRY(STRCHR_Z13)
.machine "z13"
.machinemode "zarch_nohighgprs"
@@ -96,5 +98,15 @@ ENTRY(__strchr_vx)
clije %r3,0,.Lcharacter /* Found zero and c is zero. */
lghi %r2,0 /* Return null if character not found. */
br %r14
-END(__strchr_vx)
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
+END(STRCHR_Z13)
+
+# if ! HAVE_STRCHR_IFUNC
+strong_alias (STRCHR_Z13, strchr)
+weak_alias (strchr, index)
+# endif
+
+# if ! HAVE_STRCHR_C && defined SHARED && IS_IN (libc)
+strong_alias (STRCHR_Z13, __GI_strchr)
+# endif
+
+#endif /* HAVE_STRCHR_Z13 */
diff --git a/sysdeps/s390/strchr.c b/sysdeps/s390/strchr.c
new file mode 100644
index 0000000000..5b1742905d
--- /dev/null
+++ b/sysdeps/s390/strchr.c
@@ -0,0 +1,43 @@
+/* Multiple versions of strchr.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-strchr.h>
+
+#if HAVE_STRCHR_IFUNC
+# define strchr __redirect_strchr
+/* Omit the strchr inline definitions because it would redefine strchr. */
+# define __NO_STRING_INLINES
+# include <string.h>
+# undef strchr
+# include <ifunc-resolve.h>
+
+# if HAVE_STRCHR_C
+extern __typeof (__redirect_strchr) STRCHR_C attribute_hidden;
+# endif
+
+# if HAVE_STRCHR_Z13
+extern __typeof (__redirect_strchr) STRCHR_Z13 attribute_hidden;
+# endif
+
+s390_libc_ifunc_expr (__redirect_strchr, strchr,
+ (HAVE_STRCHR_Z13 && (hwcap & HWCAP_S390_VX))
+ ? STRCHR_Z13
+ : STRCHR_DEFAULT
+ )
+weak_alias (strchr, index)
+#endif /* HAVE_STRCHR_IFUNC */
diff --git a/sysdeps/s390/strchrnul-c.c b/sysdeps/s390/strchrnul-c.c
new file mode 100644
index 0000000000..166682f33c
--- /dev/null
+++ b/sysdeps/s390/strchrnul-c.c
@@ -0,0 +1,30 @@
+/* Default strchrnul implementation for S/390.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-strchrnul.h>
+
+#if HAVE_STRCHRNUL_C
+# if HAVE_STRCHRNUL_IFUNC
+# define STRCHRNUL STRCHRNUL_C
+# define __strchrnul STRCHRNUL
+# undef weak_alias
+# define weak_alias(name, alias)
+# endif
+
+# include <string/strchrnul.c>
+#endif
diff --git a/sysdeps/s390/multiarch/strchrnul-vx.S b/sysdeps/s390/strchrnul-vx.S
index d561825e04..1dbe28591d 100644
--- a/sysdeps/s390/multiarch/strchrnul-vx.S
+++ b/sysdeps/s390/strchrnul-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of strchrnul.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,9 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
+#include <ifunc-strchrnul.h>
+
+#if HAVE_STRCHRNUL_Z13
# include "sysdep.h"
# include "asm-syntax.h"
@@ -35,7 +37,7 @@
-v16=part of s
-v18=vector with c replicated in every byte
*/
-ENTRY(__strchrnul_vx)
+ENTRY(STRCHRNUL_Z13)
.machine "z13"
.machinemode "zarch_nohighgprs"
@@ -89,5 +91,11 @@ ENTRY(__strchrnul_vx)
.Lend:
br %r14
-END(__strchrnul_vx)
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
+END(STRCHRNUL_Z13)
+
+# if ! HAVE_STRCHRNUL_IFUNC
+strong_alias (STRCHRNUL_Z13, __strchrnul)
+weak_alias (__strchrnul, strchrnul)
+# endif
+
+#endif /* HAVE_STRCHRNUL_Z13 */
diff --git a/sysdeps/s390/strchrnul.c b/sysdeps/s390/strchrnul.c
new file mode 100644
index 0000000000..6ee043bd5b
--- /dev/null
+++ b/sysdeps/s390/strchrnul.c
@@ -0,0 +1,39 @@
+/* Multiple versions of strchrnul.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-strchrnul.h>
+
+#if HAVE_STRCHRNUL_IFUNC
+# include <string.h>
+# include <ifunc-resolve.h>
+
+# if HAVE_STRCHRNUL_C
+extern __typeof (__strchrnul) STRCHRNUL_C attribute_hidden;
+# endif
+
+# if HAVE_STRCHRNUL_Z13
+extern __typeof (__strchrnul) STRCHRNUL_Z13 attribute_hidden;
+# endif
+
+s390_libc_ifunc_expr (__strchrnul, __strchrnul,
+ (HAVE_STRCHRNUL_Z13 && (hwcap & HWCAP_S390_VX))
+ ? STRCHRNUL_Z13
+ : STRCHRNUL_DEFAULT
+ )
+weak_alias (__strchrnul, strchrnul)
+#endif /* HAVE_STRCHRNUL_IFUNC */
diff --git a/sysdeps/s390/multiarch/strcmp-vx.S b/sysdeps/s390/strcmp-vx.S
index bcaeb564d4..71261586a0 100644
--- a/sysdeps/s390/multiarch/strcmp-vx.S
+++ b/sysdeps/s390/strcmp-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of strcmp.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,9 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
+#include <ifunc-strcmp.h>
+#if HAVE_STRCMP_Z13
# include "sysdep.h"
# include "asm-syntax.h"
@@ -36,7 +37,7 @@
-v17=part of s2
-v18=index of unequal
*/
-ENTRY(__strcmp_vx)
+ENTRY(STRCMP_Z13)
.machine "z13"
.machinemode "zarch_nohighgprs"
@@ -106,11 +107,13 @@ ENTRY(__strcmp_vx)
.Lend_equal:
lghi %r2,0
br %r14
-END(__strcmp_vx)
+END(STRCMP_Z13)
-# define strcmp __strcmp_c
-# undef libc_hidden_builtin_def
-# define libc_hidden_builtin_def(name) strong_alias(__strcmp_c, __GI_strcmp)
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
+# if ! HAVE_STRCMP_IFUNC
+strong_alias (STRCMP_Z13, strcmp)
+# endif
-#include <strcmp.S>
+# if ! HAVE_STRCMP_Z900_G5 && defined SHARED && IS_IN (libc)
+strong_alias (STRCMP_Z13, __GI_strcmp)
+# endif
+#endif
diff --git a/sysdeps/s390/strcmp-z900.S b/sysdeps/s390/strcmp-z900.S
new file mode 100644
index 0000000000..bc3a589602
--- /dev/null
+++ b/sysdeps/s390/strcmp-z900.S
@@ -0,0 +1,59 @@
+/* strcmp - compare two string. 64 bit S/390 version.
+ This file is part of the GNU C Library.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
+ Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
+
+ 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
+ <https://www.gnu.org/licenses/>. */
+
+/* INPUT PARAMETERS
+ %r2 = address of string 1
+ %r3 = address of string 2. */
+
+#include <ifunc-strcmp.h>
+#include "sysdep.h"
+#include "asm-syntax.h"
+
+#if HAVE_STRCMP_Z900_G5
+# if defined __s390x__
+# define SLGR slgr
+# define LGHI lghi
+# else
+# define SLGR slr
+# define LGHI lhi
+# endif /* ! defined __s390x__ */
+
+ .text
+ENTRY(STRCMP_Z900_G5)
+ SLGR %r0,%r0
+0: clst %r2,%r3
+ jo 0b
+ jp 1f
+ jm 2f
+ SLGR %r2,%r2
+ br %r14
+1: LGHI %r2,1
+ br %r14
+2: LGHI %r2,-1
+ br %r14
+END(STRCMP_Z900_G5)
+
+# if ! HAVE_STRCMP_IFUNC
+strong_alias (STRCMP_Z900_G5, strcmp)
+# endif
+
+# if defined SHARED && IS_IN (libc)
+strong_alias (STRCMP_Z900_G5, __GI_strcmp)
+# endif
+#endif
diff --git a/sysdeps/s390/strcmp.c b/sysdeps/s390/strcmp.c
new file mode 100644
index 0000000000..764320b0b4
--- /dev/null
+++ b/sysdeps/s390/strcmp.c
@@ -0,0 +1,42 @@
+/* Multiple versions of strcmp.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-strcmp.h>
+
+#if HAVE_STRCMP_IFUNC
+# define strcmp __redirect_strcmp
+/* Omit the strcmp inline definitions because it would redefine strcmp. */
+# define __NO_STRING_INLINES
+# include <string.h>
+# include <ifunc-resolve.h>
+# undef strcmp
+
+# if HAVE_STRCMP_Z900_G5
+extern __typeof (__redirect_strcmp) STRCMP_Z900_G5 attribute_hidden;
+# endif
+
+# if HAVE_STRCMP_Z13
+extern __typeof (__redirect_strcmp) STRCMP_Z13 attribute_hidden;
+# endif
+
+s390_libc_ifunc_expr (__redirect_strcmp, strcmp,
+ (HAVE_STRCMP_Z13 && (hwcap & HWCAP_S390_VX))
+ ? STRCMP_Z13
+ : STRCMP_DEFAULT
+ )
+#endif
diff --git a/sysdeps/s390/multiarch/strcpy-vx.S b/sysdeps/s390/strcpy-vx.S
index 52197f57f7..5fe893cac2 100644
--- a/sysdeps/s390/multiarch/strcpy-vx.S
+++ b/sysdeps/s390/strcpy-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of strcpy.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,15 +14,15 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-
-# include "sysdep.h"
-# include "asm-syntax.h"
+#include <ifunc-strcpy.h>
+#include "sysdep.h"
+#include "asm-syntax.h"
.text
+#if HAVE_STRCPY_Z13
/* char * strcpy (const char *dest, const char *src)
Copy string src to dest.
@@ -36,7 +36,7 @@
-v17=index of zero
-v18=part of src
*/
-ENTRY(__strcpy_vx)
+ENTRY(STRCPY_Z13)
.machine "z13"
.machinemode "zarch_nohighgprs"
@@ -97,13 +97,13 @@ ENTRY(__strcpy_vx)
.Lfound_align:
vstl %v16,%r5,0(%r2) /* Copy characters including zero. */
br %r14
-END(__strcpy_vx)
+END(STRCPY_Z13)
-/* Use mvst-strcpy-implementation as default implementation. */
-# define strcpy __strcpy_c
-# undef libc_hidden_builtin_def
-# define libc_hidden_builtin_def(name) strong_alias(__strcpy_c, __GI_strcpy)
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
+# if ! HAVE_STRCPY_IFUNC
+strong_alias (STRCPY_Z13, strcpy)
+# endif
-/* Include mvst-strcpy-implementation in s390-32/s390-64 subdirectory. */
-#include <strcpy.S>
+# if ! HAVE_STRCPY_Z900_G5 && defined SHARED && IS_IN (libc)
+strong_alias (STRCPY_Z13, __GI_strcpy)
+# endif
+#endif
diff --git a/sysdeps/s390/strcpy-z900.S b/sysdeps/s390/strcpy-z900.S
new file mode 100644
index 0000000000..7be55ef258
--- /dev/null
+++ b/sysdeps/s390/strcpy-z900.S
@@ -0,0 +1,56 @@
+/* strcpy - copy a string from source to destination. 64/31 bit S/390 version.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
+ Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
+ 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
+ <https://www.gnu.org/licenses/>. */
+
+/* INPUT PARAMETERS
+ %r2 = address of destination
+ %r3 = address of source. */
+
+#include <ifunc-strcpy.h>
+#include "sysdep.h"
+#include "asm-syntax.h"
+
+#if HAVE_STRCPY_Z900_G5
+# if defined __s390x__
+# define SLGR slgr
+# define LGR lgr
+# else
+# define SLGR slr
+# define LGR lr
+# endif /* ! defined __s390x__ */
+
+ .text
+ENTRY(STRCPY_Z900_G5)
+ SLGR %r0,%r0
+ LGR %r1,%r2
+0: mvst %r1,%r3
+ jo 0b
+ br %r14
+END(STRCPY_Z900_G5)
+
+# undef SLGR
+# undef LGR
+
+# if ! HAVE_STRCPY_IFUNC
+strong_alias (STRCPY_Z900_G5, strcpy)
+# endif
+
+# if defined SHARED && IS_IN (libc)
+strong_alias (STRCPY_Z900_G5, __GI_strcpy)
+# endif
+#endif
diff --git a/sysdeps/s390/strcpy.c b/sysdeps/s390/strcpy.c
new file mode 100644
index 0000000000..0c6330ace4
--- /dev/null
+++ b/sysdeps/s390/strcpy.c
@@ -0,0 +1,40 @@
+/* Multiple versions of strcpy.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-strcpy.h>
+
+#if HAVE_STRCPY_IFUNC
+# define strcpy __redirect_strcpy
+# include <string.h>
+# undef strcpy
+# include <ifunc-resolve.h>
+
+# if HAVE_STRCPY_Z900_G5
+extern __typeof (__redirect_strcpy) STRCPY_Z900_G5 attribute_hidden;
+# endif
+
+# if HAVE_STRCPY_Z13
+extern __typeof (__redirect_strcpy) STRCPY_Z13 attribute_hidden;
+# endif
+
+s390_libc_ifunc_expr (__redirect_strcpy, strcpy,
+ (HAVE_STRCPY_Z13 && (hwcap & HWCAP_S390_VX))
+ ? STRCPY_Z13
+ : STRCPY_DEFAULT
+ )
+#endif
diff --git a/sysdeps/s390/strcspn-c.c b/sysdeps/s390/strcspn-c.c
new file mode 100644
index 0000000000..bb04d577e9
--- /dev/null
+++ b/sysdeps/s390/strcspn-c.c
@@ -0,0 +1,32 @@
+/* Default strcspn implementation for S/390.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-strcspn.h>
+
+#if HAVE_STRCSPN_C
+# if HAVE_STRCSPN_IFUNC
+# define STRCSPN STRCSPN_C
+# if defined SHARED && IS_IN (libc)
+# undef libc_hidden_builtin_def
+# define libc_hidden_builtin_def(name) \
+ __hidden_ver1 (__strcspn_c, __GI_strcspn, __strcspn_c);
+# endif
+# endif
+
+# include <string/strcspn.c>
+#endif
diff --git a/sysdeps/s390/multiarch/strcspn-vx.S b/sysdeps/s390/strcspn-vx.S
index ea1668742b..7b5c045ad5 100644
--- a/sysdeps/s390/multiarch/strcspn-vx.S
+++ b/sysdeps/s390/strcspn-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of strcspn.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,9 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
+#include <ifunc-strcspn.h>
+
+#if HAVE_STRCSPN_Z13
# include "sysdep.h"
# include "asm-syntax.h"
@@ -58,7 +60,7 @@
otherwise =0;
r9: loaded byte count of vlbb reject-string
*/
-ENTRY(__strcspn_vx)
+ENTRY(STRCSPN_Z13)
.machine "z13"
.machinemode "zarch_nohighgprs"
@@ -277,5 +279,14 @@ ENTRY(__strcspn_vx)
vlgvg %r8,%v31,0
vlgvg %r9,%v31,1
br %r14
-END(__strcspn_vx)
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
+END(STRCSPN_Z13)
+
+# if ! HAVE_STRCSPN_IFUNC
+strong_alias (STRCSPN_Z13, strcspn)
+# endif
+
+# if ! HAVE_STRCSPN_C && defined SHARED && IS_IN (libc)
+strong_alias (STRCSPN_Z13, __GI_strcspn)
+# endif
+
+#endif /* HAVE_STRCSPN_Z13 */
diff --git a/sysdeps/s390/strcspn.c b/sysdeps/s390/strcspn.c
new file mode 100644
index 0000000000..2ab49caf20
--- /dev/null
+++ b/sysdeps/s390/strcspn.c
@@ -0,0 +1,42 @@
+/* Multiple versions of strcspn.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-strcspn.h>
+
+#if HAVE_STRCSPN_IFUNC
+# define strcspn __redirect_strcspn
+/* Omit the strcspn inline definitions because it would redefine strcspn. */
+# define __NO_STRING_INLINES
+# include <string.h>
+# undef strcspn
+# include <ifunc-resolve.h>
+
+# if HAVE_STRCSPN_C
+extern __typeof (__redirect_strcspn) STRCSPN_C attribute_hidden;
+# endif
+
+# if HAVE_STRCSPN_Z13
+extern __typeof (__redirect_strcspn) STRCSPN_Z13 attribute_hidden;
+# endif
+
+s390_libc_ifunc_expr (__redirect_strcspn, strcspn,
+ (HAVE_STRCSPN_Z13 && (hwcap & HWCAP_S390_VX))
+ ? STRCSPN_Z13
+ : STRCSPN_DEFAULT
+ )
+#endif /* HAVE_STRCSPN_IFUNC */
diff --git a/sysdeps/s390/string_private.h b/sysdeps/s390/string_private.h
index 32e40d3603..2a27a57dca 100644
--- a/sysdeps/s390/string_private.h
+++ b/sysdeps/s390/string_private.h
@@ -1,5 +1,5 @@
/* Define _STRING_ARCH_unaligned. S/390 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* The s390 processors can access unaligned multi-byte variables. */
#define _STRING_ARCH_unaligned 1
diff --git a/sysdeps/s390/strlen-c.c b/sysdeps/s390/strlen-c.c
new file mode 100644
index 0000000000..121dfd8d52
--- /dev/null
+++ b/sysdeps/s390/strlen-c.c
@@ -0,0 +1,32 @@
+/* Default strlen implementation for S/390.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-strlen.h>
+
+#if HAVE_STRLEN_C
+# if HAVE_STRLEN_IFUNC
+# define STRLEN STRLEN_C
+# if defined SHARED && IS_IN (libc)
+# undef libc_hidden_builtin_def
+# define libc_hidden_builtin_def(name) \
+ __hidden_ver1 (__strlen_c, __GI_strlen, __strlen_c);
+# endif
+# endif
+
+# include <string/strlen.c>
+#endif
diff --git a/sysdeps/s390/multiarch/strlen-vx.S b/sysdeps/s390/strlen-vx.S
index 9308b33237..44d541a6d0 100644
--- a/sysdeps/s390/multiarch/strlen-vx.S
+++ b/sysdeps/s390/strlen-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of strlen.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,9 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
+#include <ifunc-strlen.h>
+#if HAVE_STRLEN_Z13
# include "sysdep.h"
# include "asm-syntax.h"
@@ -34,7 +35,7 @@
-r5=current_len and return_value
-v16=part of s
*/
-ENTRY(__strlen_vx)
+ENTRY(STRLEN_Z13)
.machine "z13"
.machinemode "zarch_nohighgprs"
@@ -80,5 +81,13 @@ ENTRY(__strlen_vx)
vlgvb %r2,%v16,7 /* Load byte index of zero. */
algr %r2,%r5
br %r14
-END(__strlen_vx)
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
+END(STRLEN_Z13)
+
+# if ! HAVE_STRLEN_IFUNC
+strong_alias (STRLEN_Z13, strlen)
+# endif
+
+# if ! HAVE_STRLEN_C && defined SHARED && IS_IN (libc)
+strong_alias (STRLEN_Z13, __GI_strlen)
+# endif
+#endif
diff --git a/sysdeps/s390/strlen.c b/sysdeps/s390/strlen.c
new file mode 100644
index 0000000000..886eac6642
--- /dev/null
+++ b/sysdeps/s390/strlen.c
@@ -0,0 +1,40 @@
+/* Multiple versions of strlen.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-strlen.h>
+
+#if HAVE_STRLEN_IFUNC
+# define strlen __redirect_strlen
+# include <string.h>
+# include <ifunc-resolve.h>
+# undef strlen
+
+# if HAVE_STRLEN_C
+extern __typeof (__redirect_strlen) STRLEN_C attribute_hidden;
+# endif
+
+# if HAVE_STRLEN_Z13
+extern __typeof (__redirect_strlen) STRLEN_Z13 attribute_hidden;
+# endif
+
+s390_libc_ifunc_expr (__redirect_strlen, strlen,
+ (HAVE_STRLEN_Z13 && (hwcap & HWCAP_S390_VX))
+ ? STRLEN_Z13
+ : STRLEN_DEFAULT
+ )
+#endif
diff --git a/sysdeps/s390/multiarch/strncat-c.c b/sysdeps/s390/strncat-c.c
index 9e6c245ccb..3d4c509100 100644
--- a/sysdeps/s390/multiarch/strncat-c.c
+++ b/sysdeps/s390/strncat-c.c
@@ -1,5 +1,5 @@
/* Default strncat implementation for S/390.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,10 +14,14 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define STRNCAT __strncat_c
-# define STRNCAT_PRIMARY
+#include <ifunc-strncat.h>
+
+#if HAVE_STRNCAT_C
+# if HAVE_STRNCAT_IFUNC
+# define STRNCAT STRNCAT_C
+# define STRNCAT_PRIMARY
+# endif
# include <string/strncat.c>
#endif
diff --git a/sysdeps/s390/multiarch/strncat-vx.S b/sysdeps/s390/strncat-vx.S
index e6584d0f43..689e79d02d 100644
--- a/sysdeps/s390/multiarch/strncat-vx.S
+++ b/sysdeps/s390/strncat-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of strncat.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,9 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
+#include <ifunc-strncat.h>
+#if HAVE_STRNCAT_Z13
# include "sysdep.h"
# include "asm-syntax.h"
@@ -40,7 +41,7 @@
-v18=part of src
-v31=register save area for r6, r7
*/
-ENTRY(__strncat_vx)
+ENTRY(STRNCAT_Z13)
.machine "z13"
.machinemode "zarch_nohighgprs"
@@ -235,5 +236,17 @@ ENTRY(__strncat_vx)
vl %v16,0(%r5,%r3) /* Load s. */
j .Lcpy_lt64
-END(__strncat_vx)
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
+END(STRNCAT_Z13)
+
+# if ! HAVE_STRNCAT_IFUNC
+strong_alias (STRNCAT_Z13, strncat)
+# endif
+
+# if ! HAVE_STRNCAT_C
+/* See string/strncat.c and define STRNCAT_PRIMARY. */
+strong_alias (STRNCAT_Z13, __strncat)
+# if defined SHARED && IS_IN (libc)
+strong_alias (__strncat, __GI___strncat)
+# endif
+# endif
+#endif
diff --git a/sysdeps/s390/strncat.c b/sysdeps/s390/strncat.c
new file mode 100644
index 0000000000..d6b28122f5
--- /dev/null
+++ b/sysdeps/s390/strncat.c
@@ -0,0 +1,38 @@
+/* Multiple versions of strncat.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-strncat.h>
+
+#if HAVE_STRNCAT_IFUNC
+# include <string.h>
+# include <ifunc-resolve.h>
+
+# if HAVE_STRNCAT_C
+extern __typeof (__strncat) STRNCAT_C attribute_hidden;
+# endif
+
+# if HAVE_STRNCAT_Z13
+extern __typeof (__strncat) STRNCAT_Z13 attribute_hidden;
+# endif
+
+s390_libc_ifunc_expr (__strncat, strncat,
+ (HAVE_STRNCAT_Z13 && (hwcap & HWCAP_S390_VX))
+ ? STRNCAT_Z13
+ : STRNCAT_DEFAULT
+ )
+#endif
diff --git a/sysdeps/s390/strncmp-c.c b/sysdeps/s390/strncmp-c.c
new file mode 100644
index 0000000000..9732f516c7
--- /dev/null
+++ b/sysdeps/s390/strncmp-c.c
@@ -0,0 +1,32 @@
+/* Default strncmp implementation for S/390.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-strncmp.h>
+
+#if HAVE_STRNCMP_C
+# if HAVE_STRNCMP_IFUNC
+# define STRNCMP STRNCMP_C
+# if defined SHARED && IS_IN (libc)
+# undef libc_hidden_builtin_def
+# define libc_hidden_builtin_def(name) \
+ __hidden_ver1 (__strncmp_c, __GI_strncmp, __strncmp_c);
+# endif
+# endif
+
+# include <string/strncmp.c>
+#endif
diff --git a/sysdeps/s390/multiarch/strncmp-vx.S b/sysdeps/s390/strncmp-vx.S
index 168fd657da..6716490588 100644
--- a/sysdeps/s390/multiarch/strncmp-vx.S
+++ b/sysdeps/s390/strncmp-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of strncmp.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,9 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
+#include <ifunc-strncmp.h>
+
+#if HAVE_STRNCMP_Z13
# include "sysdep.h"
# include "asm-syntax.h"
@@ -37,7 +39,7 @@
-v17=part of s2
-v18=index of unequal
*/
-ENTRY(__strncmp_vx)
+ENTRY(STRNCMP_Z13)
.machine "z13"
.machinemode "zarch_nohighgprs"
@@ -133,5 +135,14 @@ ENTRY(__strncmp_vx)
.Lend_equal:
lghi %r2,0
br %r14
-END(__strncmp_vx)
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
+END(STRNCMP_Z13)
+
+# if ! HAVE_STRNCMP_IFUNC
+strong_alias (STRNCMP_Z13, strncmp)
+# endif
+
+# if ! HAVE_STRNCMP_C && defined SHARED && IS_IN (libc)
+strong_alias (STRNCMP_Z13, __GI_strncmp)
+# endif
+
+#endif /* HAVE_STRNCMP_Z13 */
diff --git a/sysdeps/s390/strncmp.c b/sysdeps/s390/strncmp.c
new file mode 100644
index 0000000000..40d123b81d
--- /dev/null
+++ b/sysdeps/s390/strncmp.c
@@ -0,0 +1,42 @@
+/* Multiple versions of strncmp.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-strncmp.h>
+
+#if HAVE_STRNCMP_IFUNC
+# define strncmp __redirect_strncmp
+/* Omit the strncmp inline definitions because it would redefine strncmp. */
+# define __NO_STRING_INLINES
+# include <string.h>
+# undef strncmp
+# include <ifunc-resolve.h>
+
+# if HAVE_STRNCMP_C
+extern __typeof (__redirect_strncmp) STRNCMP_C attribute_hidden;
+# endif
+
+# if HAVE_STRNCMP_Z13
+extern __typeof (__redirect_strncmp) STRNCMP_Z13 attribute_hidden;
+# endif
+
+s390_libc_ifunc_expr (__redirect_strncmp, strncmp,
+ (HAVE_STRNCMP_Z13 && (hwcap & HWCAP_S390_VX))
+ ? STRNCMP_Z13
+ : STRNCMP_DEFAULT
+ )
+#endif /* HAVE_STRNCMP_IFUNC */
diff --git a/sysdeps/s390/multiarch/strncpy-vx.S b/sysdeps/s390/strncpy-vx.S
index 2a37b7b84e..69c9498d96 100644
--- a/sysdeps/s390/multiarch/strncpy-vx.S
+++ b/sysdeps/s390/strncpy-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of strncpy.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,15 +14,15 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-
-# include "sysdep.h"
-# include "asm-syntax.h"
+#include <ifunc-strncpy.h>
+#include "sysdep.h"
+#include "asm-syntax.h"
.text
+#if HAVE_STRNCPY_Z13
/* char * strncpy (const char *dest, const char *src, size_t n)
Copy at most n characters of string src to dest.
@@ -40,7 +40,7 @@
-v18=part of src
-v31=register save area for r6, r7
*/
-ENTRY(__strncpy_vx)
+ENTRY(STRNCPY_Z13)
.machine "z13"
.machinemode "zarch_nohighgprs"
@@ -196,12 +196,13 @@ ENTRY(__strncpy_vx)
vl %v16,0(%r5,%r3) /* Load s. */
j .Llt64
-END(__strncpy_vx)
+END(STRNCPY_Z13)
-# define strncpy __strncpy_c
-# undef libc_hidden_builtin_def
-# define libc_hidden_builtin_def(name) strong_alias(__strncpy_c, __GI_strncpy)
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
+# if ! HAVE_STRNCPY_IFUNC
+strong_alias (STRNCPY_Z13, strncpy)
+# endif
-/* Include strncpy-implementation in s390-32/s390-64 subdirectory. */
-#include <strncpy.S>
+# if ! HAVE_STRNCPY_Z900_G5 && defined SHARED && IS_IN (libc)
+strong_alias (STRNCPY_Z13, __GI_strncpy)
+# endif
+#endif
diff --git a/sysdeps/s390/strncpy.c b/sysdeps/s390/strncpy.c
new file mode 100644
index 0000000000..06059d0130
--- /dev/null
+++ b/sysdeps/s390/strncpy.c
@@ -0,0 +1,42 @@
+/* Multiple versions of strncpy.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-strncpy.h>
+
+#if HAVE_STRNCPY_IFUNC
+# define strncpy __redirect_strncpy
+/* Omit the strncpy inline definitions because it would redefine strncpy. */
+# define __NO_STRING_INLINES
+# include <string.h>
+# undef strncpy
+# include <ifunc-resolve.h>
+
+# if HAVE_STRNCPY_Z900_G5
+extern __typeof (__redirect_strncpy) STRNCPY_Z900_G5 attribute_hidden;
+# endif
+
+# if HAVE_STRNCPY_Z13
+extern __typeof (__redirect_strncpy) STRNCPY_Z13 attribute_hidden;
+# endif
+
+s390_libc_ifunc_expr (__redirect_strncpy, strncpy,
+ (HAVE_STRNCPY_Z13 && (hwcap & HWCAP_S390_VX))
+ ? STRNCPY_Z13
+ : STRNCPY_DEFAULT
+ )
+#endif
diff --git a/sysdeps/s390/strnlen-c.c b/sysdeps/s390/strnlen-c.c
new file mode 100644
index 0000000000..e3e3b7723b
--- /dev/null
+++ b/sysdeps/s390/strnlen-c.c
@@ -0,0 +1,34 @@
+/* Default strnlen implementation for S/390.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-strnlen.h>
+
+#if HAVE_STRNLEN_C
+# if HAVE_STRNLEN_IFUNC
+# define STRNLEN STRNLEN_C
+# if defined SHARED && IS_IN (libc)
+# undef libc_hidden_def
+# define libc_hidden_def(name) \
+ __hidden_ver1 (__strnlen_c, __GI_strnlen, __strnlen_c); \
+ strong_alias (__strnlen_c, __strnlen_c_1); \
+ __hidden_ver1 (__strnlen_c_1, __GI___strnlen, __strnlen_c_1);
+# endif
+# endif
+
+# include <string/strnlen.c>
+#endif
diff --git a/sysdeps/s390/multiarch/strnlen-vx.S b/sysdeps/s390/strnlen-vx.S
index fc659a956c..5cd049aa8d 100644
--- a/sysdeps/s390/multiarch/strnlen-vx.S
+++ b/sysdeps/s390/strnlen-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of strnlen.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,9 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
+#include <ifunc-strnlen.h>
+
+#if HAVE_STRNLEN_Z13
# include "sysdep.h"
# include "asm-syntax.h"
@@ -34,7 +36,7 @@
-r5=current_len and return_value
-v16=part of s
*/
-ENTRY(__strnlen_vx)
+ENTRY(STRNLEN_Z13)
.machine "z13"
.machinemode "zarch_nohighgprs"
@@ -130,5 +132,16 @@ ENTRY(__strnlen_vx)
clgrjl %r1,%r3,.Lloop64
j .Llt64
-END(__strnlen_vx)
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
+END(STRNLEN_Z13)
+
+# if ! HAVE_STRNLEN_IFUNC
+strong_alias (STRNLEN_Z13, __strnlen)
+weak_alias (__strnlen, strnlen)
+# endif
+
+# if ! HAVE_STRNLEN_C && defined SHARED && IS_IN (libc)
+strong_alias (STRNLEN_Z13, __GI_strnlen)
+strong_alias (STRNLEN_Z13, __GI___strnlen)
+# endif
+
+#endif /* HAVE_STRNLEN_Z13 */
diff --git a/sysdeps/s390/strnlen.c b/sysdeps/s390/strnlen.c
new file mode 100644
index 0000000000..3212eaf66a
--- /dev/null
+++ b/sysdeps/s390/strnlen.c
@@ -0,0 +1,43 @@
+/* Multiple versions of strnlen.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-strnlen.h>
+
+#if HAVE_STRNLEN_IFUNC
+# define strnlen __redirect_strnlen
+# define __strnlen __redirect___strnlen
+# include <string.h>
+# undef strnlen
+# undef __strnlen
+# include <ifunc-resolve.h>
+
+# if HAVE_STRNLEN_C
+extern __typeof (__redirect_strnlen) STRNLEN_C attribute_hidden;
+# endif
+
+# if HAVE_STRNLEN_Z13
+extern __typeof (__redirect_strnlen) STRNLEN_Z13 attribute_hidden;
+# endif
+
+s390_libc_ifunc_expr (__redirect___strnlen, __strnlen,
+ (HAVE_STRNLEN_Z13 && (hwcap & HWCAP_S390_VX))
+ ? STRNLEN_Z13
+ : STRNLEN_DEFAULT
+ )
+weak_alias (__strnlen, strnlen)
+#endif /* HAVE_STRNLEN_IFUNC */
diff --git a/sysdeps/s390/strpbrk-c.c b/sysdeps/s390/strpbrk-c.c
new file mode 100644
index 0000000000..2c7634dcb7
--- /dev/null
+++ b/sysdeps/s390/strpbrk-c.c
@@ -0,0 +1,32 @@
+/* Default strpbrk implementation for S/390.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-strpbrk.h>
+
+#if HAVE_STRPBRK_C
+# if HAVE_STRPBRK_IFUNC
+# define STRPBRK STRPBRK_C
+# if defined SHARED && IS_IN (libc)
+# undef libc_hidden_builtin_def
+# define libc_hidden_builtin_def(name) \
+ __hidden_ver1 (__strpbrk_c, __GI_strpbrk, __strpbrk_c);
+# endif
+# endif
+
+# include <string/strpbrk.c>
+#endif
diff --git a/sysdeps/s390/multiarch/strpbrk-vx.S b/sysdeps/s390/strpbrk-vx.S
index e19c550ed4..ca050fd55d 100644
--- a/sysdeps/s390/multiarch/strpbrk-vx.S
+++ b/sysdeps/s390/strpbrk-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of strpbrk.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,9 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
+#include <ifunc-strpbrk.h>
+
+#if HAVE_STRPBRK_Z13
# include "sysdep.h"
# include "asm-syntax.h"
@@ -59,7 +61,7 @@
otherwise =0;
r9: loaded byte count of vlbb accept-string
*/
-ENTRY(__strpbrk_vx)
+ENTRY(STRPBRK_Z13)
.machine "z13"
.machinemode "zarch_nohighgprs"
@@ -298,5 +300,14 @@ ENTRY(__strpbrk_vx)
vlgvg %r9,%v31,1
lgr %r2,%r1
br %r14
-END(__strpbrk_vx)
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
+END(STRPBRK_Z13)
+
+# if ! HAVE_STRPBRK_IFUNC
+strong_alias (STRPBRK_Z13, strpbrk)
+# endif
+
+# if ! HAVE_STRPBRK_C && defined SHARED && IS_IN (libc)
+strong_alias (STRPBRK_Z13, __GI_strpbrk)
+# endif
+
+#endif /* HAVE_STRPBRK_Z13 */
diff --git a/sysdeps/s390/strpbrk.c b/sysdeps/s390/strpbrk.c
new file mode 100644
index 0000000000..26a8a575d2
--- /dev/null
+++ b/sysdeps/s390/strpbrk.c
@@ -0,0 +1,42 @@
+/* Multiple versions of strpbrk.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-strpbrk.h>
+
+#if HAVE_STRPBRK_IFUNC
+# define strpbrk __redirect_strpbrk
+/* Omit the strpbrk inline definitions because it would redefine strpbrk. */
+# define __NO_STRING_INLINES
+# include <string.h>
+# undef strpbrk
+# include <ifunc-resolve.h>
+
+# if HAVE_STRPBRK_C
+extern __typeof (__redirect_strpbrk) STRPBRK_C attribute_hidden;
+# endif
+
+# if HAVE_STRPBRK_Z13
+extern __typeof (__redirect_strpbrk) STRPBRK_Z13 attribute_hidden;
+# endif
+
+s390_libc_ifunc_expr (__redirect_strpbrk, strpbrk,
+ (HAVE_STRPBRK_Z13 && (hwcap & HWCAP_S390_VX))
+ ? STRPBRK_Z13
+ : STRPBRK_DEFAULT
+ )
+#endif /* HAVE_STRPBRK_IFUNC */
diff --git a/sysdeps/s390/strrchr-c.c b/sysdeps/s390/strrchr-c.c
new file mode 100644
index 0000000000..28dee35059
--- /dev/null
+++ b/sysdeps/s390/strrchr-c.c
@@ -0,0 +1,33 @@
+/* Default strrchr implementation for S/390.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-strrchr.h>
+
+#if HAVE_STRRCHR_C
+# if HAVE_STRRCHR_IFUNC
+# define STRRCHR STRRCHR_C
+# undef weak_alias
+# if defined SHARED && IS_IN (libc)
+# undef libc_hidden_builtin_def
+# define libc_hidden_builtin_def(name) \
+ __hidden_ver1 (__strrchr_c, __GI_strrchr, __strrchr_c);
+# endif
+# endif
+
+# include <string/strrchr.c>
+#endif
diff --git a/sysdeps/s390/multiarch/strrchr-vx.S b/sysdeps/s390/strrchr-vx.S
index 8b3b989631..f6b474c815 100644
--- a/sysdeps/s390/multiarch/strrchr-vx.S
+++ b/sysdeps/s390/strrchr-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of strrchr.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,9 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
+#include <ifunc-strrchr.h>
+
+#if HAVE_STRRCHR_Z13
# include "sysdep.h"
# include "asm-syntax.h"
@@ -39,7 +41,7 @@
-v19=part of s with last occurence of c.
-v20=permute pattern
*/
-ENTRY(__strrchr_vx)
+ENTRY(STRRCHR_Z13)
.machine "z13"
.machinemode "zarch_nohighgprs"
@@ -176,5 +178,15 @@ ENTRY(__strrchr_vx)
.Lpermute_mask:
.byte 0x0F,0x0E,0x0D,0x0C,0x0B,0x0A,0x09,0x08
.byte 0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00
-END(__strrchr_vx)
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
+END(STRRCHR_Z13)
+
+# if ! HAVE_STRRCHR_IFUNC
+strong_alias (STRRCHR_Z13, strrchr)
+weak_alias (strrchr, rindex)
+# endif
+
+# if ! HAVE_STRRCHR_C && defined SHARED && IS_IN (libc)
+strong_alias (STRRCHR_Z13, __GI_strrchr)
+# endif
+
+#endif /* HAVE_STRRCHR_Z13 */
diff --git a/sysdeps/s390/strrchr.c b/sysdeps/s390/strrchr.c
new file mode 100644
index 0000000000..cff05aa7cb
--- /dev/null
+++ b/sysdeps/s390/strrchr.c
@@ -0,0 +1,41 @@
+/* Multiple versions of strrchr.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-strrchr.h>
+
+#if HAVE_STRRCHR_IFUNC
+# define strrchr __redirect_strrchr
+# include <string.h>
+# undef strrchr
+# include <ifunc-resolve.h>
+
+# if HAVE_STRRCHR_C
+extern __typeof (__redirect_strrchr) STRRCHR_C attribute_hidden;
+# endif
+
+# if HAVE_STRRCHR_Z13
+extern __typeof (__redirect_strrchr) STRRCHR_Z13 attribute_hidden;
+# endif
+
+s390_libc_ifunc_expr (__redirect_strrchr, strrchr,
+ (HAVE_STRRCHR_Z13 && (hwcap & HWCAP_S390_VX))
+ ? STRRCHR_Z13
+ : STRRCHR_DEFAULT
+ )
+weak_alias (strrchr, rindex)
+#endif /* HAVE_STRRCHR_IFUNC */
diff --git a/sysdeps/s390/strspn-c.c b/sysdeps/s390/strspn-c.c
new file mode 100644
index 0000000000..4d358056f8
--- /dev/null
+++ b/sysdeps/s390/strspn-c.c
@@ -0,0 +1,32 @@
+/* Default strspn implementation for S/390.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-strspn.h>
+
+#if HAVE_STRSPN_C
+# if HAVE_STRSPN_IFUNC
+# define STRSPN STRSPN_C
+# if defined SHARED && IS_IN (libc)
+# undef libc_hidden_builtin_def
+# define libc_hidden_builtin_def(name) \
+ __hidden_ver1 (__strspn_c, __GI_strspn, __strspn_c);
+# endif
+# endif
+
+# include <string/strspn.c>
+#endif
diff --git a/sysdeps/s390/multiarch/strspn-vx.S b/sysdeps/s390/strspn-vx.S
index 6aa823e63b..dedf6f68b4 100644
--- a/sysdeps/s390/multiarch/strspn-vx.S
+++ b/sysdeps/s390/strspn-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of strspn.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,9 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
+#include <ifunc-strspn.h>
+
+#if HAVE_STRSPN_Z13
# include "sysdep.h"
# include "asm-syntax.h"
@@ -57,7 +59,7 @@
otherwise =0;
r9: loaded byte count of vlbb accept-string
*/
-ENTRY(__strspn_vx)
+ENTRY(STRSPN_Z13)
.machine "z13"
.machinemode "zarch_nohighgprs"
@@ -252,5 +254,14 @@ ENTRY(__strspn_vx)
Check for zero is in jump-target. */
j .Lslow_next_acc_notonbb /* ... and search for zero in
fully loaded vreg again. */
-END(__strspn_vx)
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
+END(STRSPN_Z13)
+
+# if ! HAVE_STRSPN_IFUNC
+strong_alias (STRSPN_Z13, strspn)
+# endif
+
+# if ! HAVE_STRSPN_C && defined SHARED && IS_IN (libc)
+strong_alias (STRSPN_Z13, __GI_strspn)
+# endif
+
+#endif /* HAVE_STRSPN_Z13 */
diff --git a/sysdeps/s390/strspn.c b/sysdeps/s390/strspn.c
new file mode 100644
index 0000000000..cce689a1b0
--- /dev/null
+++ b/sysdeps/s390/strspn.c
@@ -0,0 +1,42 @@
+/* Multiple versions of strspn.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-strspn.h>
+
+#if HAVE_STRSPN_IFUNC
+# define strspn __redirect_strspn
+/* Omit the strspn inline definitions because it would redefine strspn. */
+# define __NO_STRING_INLINES
+# include <string.h>
+# undef strspn
+# include <ifunc-resolve.h>
+
+# if HAVE_STRSPN_C
+extern __typeof (__redirect_strspn) STRSPN_C attribute_hidden;
+# endif
+
+# if HAVE_STRSPN_Z13
+extern __typeof (__redirect_strspn) STRSPN_Z13 attribute_hidden;
+# endif
+
+s390_libc_ifunc_expr (__redirect_strspn, strspn,
+ (HAVE_STRSPN_Z13 && (hwcap & HWCAP_S390_VX))
+ ? STRSPN_Z13
+ : STRSPN_DEFAULT
+ )
+#endif /* HAVE_STRSPN_IFUNC */
diff --git a/sysdeps/s390/strstr-arch13.S b/sysdeps/s390/strstr-arch13.S
new file mode 100644
index 0000000000..aefdb499e4
--- /dev/null
+++ b/sysdeps/s390/strstr-arch13.S
@@ -0,0 +1,179 @@
+/* Vector optimized 32/64 bit S/390 version of strstr.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-strstr.h>
+#if HAVE_STRSTR_ARCH13
+# include "sysdep.h"
+# include "asm-syntax.h"
+ .text
+
+/* char *strstr (const char *haystack=r2, const char *needle=r3)
+ Locate a substring. */
+ENTRY(STRSTR_ARCH13)
+ .machine "arch13"
+ .machinemode "zarch_nohighgprs"
+ lcbb %r1,0(%r3),6
+ jo .Lneedle_on_bb /* Needle on block-boundary? */
+ vl %v18,0(%r3),6 /* Load needle. */
+ vfenezb %v19,%v18,%v18 /* v19[7] contains the length of needle. */
+.Lneedle_loaded:
+ vlgvb %r4,%v19,7 /* Get index of zero or 16 if not found. */
+ lghi %r5,17 /* See below: min-skip-partial-match-index. */
+ cgibe %r4,0,0(%r14) /* Test if needle is zero and return. */
+
+ /* The vstrs instruction is able to handle needles up to a length of 16,
+ but then we may have to load the next part of haystack with a
+ small offset. This will be slow - see examples:
+ haystack =mmmmmmmmmmmmmmmm mmmmmmmmmmmmmmmmmm...mmmmmmmmmmmmmmmmmmma
+ needle = mmmmmmmmmmmmmma0
+ => needle_len=15; vstrs reports a partial match; haystack+=2
+ haystack =mmmmmmmmmmmmmmmm mmmmmmmmmmmmmmmmmm...mmmmmmmmmmmmmmmmmmma
+ needle = mmmmmmmma0000000
+ => needle_len=9; vstrs reports a partial match; haystack+=8 */
+# if ! HAVE_STRSTR_Z13
+# error The arch13 variant of strstr needs the z13 variant of strstr!
+# endif
+ clgfi %r4,9
+ jh STRSTR_Z13
+
+ /* In case of a partial match, the vstrs instruction returns the index
+ of the partial match in a vector-register. Then we have to
+ reload the string at the "current-position plus this index" and run
+ vstrs again in order to determine if it was a full match or no match.
+ Transferring this index from vr to gr, compute the haystack-address
+ and loading with vl is quite slow as all instructions have data
+ dependencies. Thus we assume, that a partial match is always at the
+ first possible index and just load the next part of haystack from
+ there instead of waiting until the correct index is computed:
+ min-skip-partial-match-index = (16 - n_len) + 1 */
+ sgr %r5,%r4
+
+.Lloop:
+ lcbb %r1,0(%r2),6
+ jo .Lloop_haystack_on_bb /* Haystack on block-boundary? */
+ vl %v16,0(%r2) /* Load next part of haystack. */
+.Lloop_haystack_loaded:
+ /* Vector string search with zero search (cc=0 => no match). */
+ vstrs %v20,%v16,%v18,%v19,0,2
+ jne .Lloop_vstrs_nonzero_cc
+ lcbb %r1,16(%r2),6 /* Next part of haystack. */
+ jo .Lloop_haystack_on_bb16
+ vl %v16,16(%r2)
+ vstrs %v20,%v16,%v18,%v19,0,2
+ jne .Lloop_vstrs_nonzero_cc16
+ lcbb %r1,32(%r2),6 /* Next part of haystack. */
+ jo .Lloop_haystack_on_bb32
+ vl %v16,32(%r2)
+ vstrs %v20,%v16,%v18,%v19,0,2
+ jne .Lloop_vstrs_nonzero_cc32
+ lcbb %r1,48(%r2),6 /* Next part of haystack. */
+ jo .Lloop_haystack_on_bb48
+ vl %v16,48(%r2)
+ vstrs %v20,%v16,%v18,%v19,0,2
+ jne .Lloop_vstrs_nonzero_cc48
+ la %r2,64(%r2)
+ j .Lloop
+
+.Lloop_vstrs_nonzero_cc48:
+ la %r2,16(%r2)
+.Lloop_vstrs_nonzero_cc32:
+ la %r2,16(%r2)
+.Lloop_vstrs_nonzero_cc16:
+ la %r2,16(%r2)
+.Lloop_vstrs_nonzero_cc:
+ jh .Lend_match_found /* cc == 2 (full match) */
+ jl .Lend_no_match /* cc == 1 (no match, end of string) */
+ /* cc == 3 (partial match) See above: min-skip-partial-match-index! */
+ lcbb %r1,0(%r5,%r2),6
+ la %r2,0(%r5,%r2)
+ jo .Lloop_haystack_on_bb
+ vl %v16,0(%r2)
+ vstrs %v20,%v16,%v18,%v19,0,2
+.Lloop_vstrs_nonzero_cc_loop:
+ jh .Lend_match_found
+ jl .Lend_no_match
+ la %r2,0(%r5,%r2)
+ je .Lloop
+ lcbb %r1,0(%r2),6 /* Next part of haystack. */
+ jo .Lloop_haystack_on_bb
+ vl %v16,0(%r2)
+ vstrs %v20,%v16,%v18,%v19,0,2
+ jh .Lend_match_found
+ jl .Lend_no_match
+ la %r2,0(%r5,%r2)
+ je .Lloop
+ lcbb %r1,0(%r2),6 /* Next part of haystack. */
+ jo .Lloop_haystack_on_bb
+ vl %v16,0(%r2)
+ vstrs %v20,%v16,%v18,%v19,0,2
+ jh .Lend_match_found
+ jl .Lend_no_match
+ la %r2,0(%r5,%r2)
+ je .Lloop
+ lcbb %r1,0(%r2),6 /* Next part of haystack. */
+ jo .Lloop_haystack_on_bb
+ vl %v16,0(%r2)
+ vstrs %v20,%v16,%v18,%v19,0,2
+ j .Lloop_vstrs_nonzero_cc_loop
+
+.Lend_no_match:
+ lghi %r2,0
+ br %r14
+.Lend_match_found:
+ vlgvb %r4,%v20,7
+ la %r2,0(%r4,%r2)
+ br %r14
+
+.Lloop_haystack_on_bb48:
+ la %r2,16(%r2)
+.Lloop_haystack_on_bb32:
+ la %r2,16(%r2)
+.Lloop_haystack_on_bb16:
+ la %r2,16(%r2)
+.Lloop_haystack_on_bb:
+ /* Haystack located on page-boundary. */
+ ahi %r1,-1 /* vll needs highest index instead of count. */
+ vll %v16,%r1,0(%r2)
+ vlvgb %v21,%r1,7
+ vfenezb %v17,%v16,%v16 /* Search zero in loaded haystack bytes. */
+ veclb %v17,%v21 /* Zero index <= loaded byte index? */
+ jle .Lloop_haystack_loaded /* -> v16 contains full haystack. */
+ vl %v16,0(%r2) /* Load haystack beyond page boundary. */
+ j .Lloop_haystack_loaded
+
+.Lneedle_on_bb:
+ /* Needle located on page-boundary. */
+ ahi %r1,-1 /* vll needs highest index instead of count. */
+ vll %v18,%r1,0(%r3)
+ vlvgb %v21,%r1,7
+ vfenezb %v19,%v18,%v18 /* Search zero in loaded needle bytes. */
+ veclb %v19,%v21 /* Zero index <= max loaded byte index? */
+ jle .Lneedle_loaded /* -> v18 contains full needle. */
+ vl %v18,0(%r3) /* Load needle beyond page boundary. */
+ vfenezb %v19,%v18,%v18
+ j .Lneedle_loaded
+END(STRSTR_ARCH13)
+
+# if ! HAVE_STRSTR_IFUNC
+strong_alias (STRSTR_ARCH13, strstr)
+# endif
+
+# if STRSTR_Z13_ONLY_USED_AS_FALLBACK && defined SHARED && IS_IN (libc)
+strong_alias (STRSTR_ARCH13, __GI_strstr)
+# endif
+#endif
diff --git a/sysdeps/s390/strstr-c.c b/sysdeps/s390/strstr-c.c
new file mode 100644
index 0000000000..b65c0c2d00
--- /dev/null
+++ b/sysdeps/s390/strstr-c.c
@@ -0,0 +1,32 @@
+/* Default strstr implementation for S/390.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-strstr.h>
+
+#if HAVE_STRSTR_C
+# if HAVE_STRSTR_IFUNC
+# define STRSTR STRSTR_C
+# if defined SHARED && IS_IN (libc)
+# undef libc_hidden_builtin_def
+# define libc_hidden_builtin_def(name) \
+ __hidden_ver1 (__strstr_c, __GI_strstr, __strstr_c);
+# endif
+# endif
+
+# include <string/strstr.c>
+#endif
diff --git a/sysdeps/s390/strstr-vx.c b/sysdeps/s390/strstr-vx.c
new file mode 100644
index 0000000000..750cc642a4
--- /dev/null
+++ b/sysdeps/s390/strstr-vx.c
@@ -0,0 +1,52 @@
+/* Default strstr implementation with vector string functions for S/390.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-strstr.h>
+
+#if HAVE_STRSTR_Z13
+# if HAVE_STRSTR_IFUNC || STRSTR_Z13_ONLY_USED_AS_FALLBACK
+# define STRSTR STRSTR_Z13
+# if defined SHARED && IS_IN (libc)
+# undef libc_hidden_builtin_def
+# if HAVE_STRSTR_C || STRSTR_Z13_ONLY_USED_AS_FALLBACK
+# define libc_hidden_builtin_def(name)
+# else
+# define libc_hidden_builtin_def(name) \
+ __hidden_ver1 (__strstr_vx, __GI_strstr, __strstr_vx);
+# endif
+# endif
+# endif
+
+# include <string.h>
+
+# ifdef USE_MULTIARCH
+extern __typeof (strchr) __strchr_vx attribute_hidden;
+# define strchr __strchr_vx
+
+extern __typeof (strlen) __strlen_vx attribute_hidden;
+# define strlen __strlen_vx
+
+extern __typeof (__strnlen) __strnlen_vx attribute_hidden;
+# define __strnlen __strnlen_vx
+
+extern __typeof (memcmp) __memcmp_z196 attribute_hidden;
+# define memcmp __memcmp_z196
+# endif
+
+# include <string/strstr.c>
+#endif
diff --git a/sysdeps/s390/strstr.c b/sysdeps/s390/strstr.c
new file mode 100644
index 0000000000..4e53d45780
--- /dev/null
+++ b/sysdeps/s390/strstr.c
@@ -0,0 +1,46 @@
+/* Multiple versions of strstr.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-strstr.h>
+
+#if HAVE_STRSTR_IFUNC
+# define strstr __redirect_strstr
+# include <string.h>
+# include <ifunc-resolve.h>
+# undef strstr
+
+# if HAVE_STRSTR_C
+extern __typeof (__redirect_strstr) STRSTR_C attribute_hidden;
+# endif
+
+# if HAVE_STRSTR_Z13
+extern __typeof (__redirect_strstr) STRSTR_Z13 attribute_hidden;
+# endif
+
+# if HAVE_STRSTR_ARCH13
+extern __typeof (__redirect_strstr) STRSTR_ARCH13 attribute_hidden;
+# endif
+
+s390_libc_ifunc_expr (__redirect_strstr, strstr,
+ (HAVE_STRSTR_ARCH13 && (hwcap & HWCAP_S390_VXRS_EXT2))
+ ? STRSTR_ARCH13
+ : (HAVE_STRSTR_Z13 && (hwcap & HWCAP_S390_VX))
+ ? STRSTR_Z13
+ : STRSTR_DEFAULT
+ )
+#endif
diff --git a/sysdeps/s390/tst-dl-runtime-mod.S b/sysdeps/s390/tst-dl-runtime-mod.S
new file mode 100644
index 0000000000..e52cc5d2b2
--- /dev/null
+++ b/sysdeps/s390/tst-dl-runtime-mod.S
@@ -0,0 +1,30 @@
+/* Shared library for the lazy binding tests.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+ .globl r0x2
+ .type r0x2, @function
+r0x2:
+ .cfi_startproc
+#if defined (__s390x__)
+ agr %r0,%r0
+#else
+ ar %r0,%r0
+#endif
+ br %r14
+ .cfi_endproc
+ .size r0x2, .-r0x2
diff --git a/sysdeps/s390/tst-dl-runtime-profile-audit.c b/sysdeps/s390/tst-dl-runtime-profile-audit.c
new file mode 100644
index 0000000000..c7964214c3
--- /dev/null
+++ b/sysdeps/s390/tst-dl-runtime-profile-audit.c
@@ -0,0 +1,19 @@
+/* Lazy binding test with profiling and auditing.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include "tst-dl-runtime.c"
diff --git a/sysdeps/s390/tst-dl-runtime-profile-noaudit.c b/sysdeps/s390/tst-dl-runtime-profile-noaudit.c
new file mode 100644
index 0000000000..1e6cc995a2
--- /dev/null
+++ b/sysdeps/s390/tst-dl-runtime-profile-noaudit.c
@@ -0,0 +1,19 @@
+/* Lazy binding test with profiling.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include "tst-dl-runtime.c"
diff --git a/sysdeps/s390/tst-dl-runtime-resolve-audit.c b/sysdeps/s390/tst-dl-runtime-resolve-audit.c
new file mode 100644
index 0000000000..3c9074faa2
--- /dev/null
+++ b/sysdeps/s390/tst-dl-runtime-resolve-audit.c
@@ -0,0 +1,19 @@
+/* Lazy binding test with auditing.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include "tst-dl-runtime.c"
diff --git a/sysdeps/s390/tst-dl-runtime-resolve-noaudit.c b/sysdeps/s390/tst-dl-runtime-resolve-noaudit.c
new file mode 100644
index 0000000000..ba105e36cd
--- /dev/null
+++ b/sysdeps/s390/tst-dl-runtime-resolve-noaudit.c
@@ -0,0 +1,19 @@
+/* Lazy binding test.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include "tst-dl-runtime.c"
diff --git a/sysdeps/s390/tst-dl-runtime.c b/sysdeps/s390/tst-dl-runtime.c
new file mode 100644
index 0000000000..455ddd49da
--- /dev/null
+++ b/sysdeps/s390/tst-dl-runtime.c
@@ -0,0 +1,91 @@
+/* Test that lazy binding does not clobber r0.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <assert.h>
+#include <dlfcn.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#if defined (__s390x__)
+static const unsigned long magic_value = 0x0011223344556677UL;
+#else
+static const unsigned long magic_value = 0x00112233;
+#endif
+
+unsigned long r0x2_trampoline (unsigned long);
+
+/* Invoke r0x2, which doubles the value in r0. If we get
+ value * 2 back, this means nothing clobbers r0, particularly,
+ _dl_runtime_resolve and _dl_runtime_profile. */
+asm (" .type r0x2_trampoline, @function\n"
+ "r0x2_trampoline:\n"
+#if defined (__s390x__)
+ " lgr %r0,%r2\n"
+ " stg %r14,112(%r15)\n"
+ " aghi %r15,-160\n"
+ " brasl %r14,r0x2@plt\n"
+ " aghi %r15,160\n"
+ " lg %r14,112(%r15)\n"
+ " lgr %r2,%r0\n"
+ " br %r14\n"
+#elif defined (__zarch__)
+ " lr %r0,%r2\n"
+ " st %r14,56(%r15)\n"
+ " ahi %r15,-96\n"
+ " brasl %r14,r0x2@plt\n"
+ " ahi %r15,96\n"
+ " l %r14,56(%r15)\n"
+ " lr %r2,%r0\n"
+ " br %r14\n"
+#else
+ " lr %r0,%r2\n"
+ " st %r14,56(%r15)\n"
+ " ahi %r15,-96\n"
+ " balr %r14,0\n"
+ " l %r14,1f-.(%r14)\n"
+ " basr %r14,%r14\n"
+ " ahi %r15,96\n"
+ " l %r14,56(%r15)\n"
+ " lr %r2,%r0\n"
+ " br %r14\n"
+ "1: .long r0x2\n"
+#endif
+ );
+
+static int
+do_test (void)
+{
+ int i;
+ unsigned long r0;
+ const char *run;
+
+ for (i = 0; i < 2; i++)
+ {
+ run = (i == 0) ? "lazy" : "non-lazy";
+ r0 = magic_value;
+ printf ("-> %s r0 = 0x%lx\n", run, r0);
+ r0 = r0x2_trampoline (r0);
+ printf ("<- %s r0 * 2 = 0x%lx\n", run, r0);
+ if (r0 != magic_value * 2)
+ return EXIT_FAILURE;
+ }
+ return EXIT_SUCCESS;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/s390/utf16-utf32-z9.c b/sysdeps/s390/utf16-utf32-z9.c
index 27086d3e8a..a85e328dd3 100644
--- a/sysdeps/s390/utf16-utf32-z9.c
+++ b/sysdeps/s390/utf16-utf32-z9.c
@@ -2,7 +2,7 @@
This module uses the Z9-109 variants of the Convert Unicode
instructions.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
Author: Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
Based on the work by Ulrich Drepper <drepper@cygnus.com>, 1997.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stdint.h>
diff --git a/sysdeps/s390/utf8-utf16-z9.c b/sysdeps/s390/utf8-utf16-z9.c
index 409d64c578..817674073a 100644
--- a/sysdeps/s390/utf8-utf16-z9.c
+++ b/sysdeps/s390/utf8-utf16-z9.c
@@ -2,7 +2,7 @@
This module uses the Z9-109 variants of the Convert Unicode
instructions.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
Author: Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
Based on the work by Ulrich Drepper <drepper@cygnus.com>, 1997.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stdint.h>
@@ -443,8 +443,8 @@ gconv_end (struct __gconv_step *data)
} \
\
/* See Principles of Operations cu12. */ \
- zabcd = (((inptr[0] & 0x7) << 2) | \
- ((inptr[1] & 0x30) >> 4)) - 1; \
+ zabcd = (((inptr[0] & 0x7) << 2) \
+ | ((inptr[1] & 0x30) >> 4)) - 1; \
\
/* z-bit must be zero after subtracting 1. */ \
if (zabcd & 0x10) \
diff --git a/sysdeps/s390/utf8-utf32-z9.c b/sysdeps/s390/utf8-utf32-z9.c
index c09d9b5bbd..9fc979206e 100644
--- a/sysdeps/s390/utf8-utf32-z9.c
+++ b/sysdeps/s390/utf8-utf32-z9.c
@@ -2,7 +2,7 @@
This module uses the Z9-109 variants of the Convert Unicode
instructions.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
Author: Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
Based on the work by Ulrich Drepper <drepper@cygnus.com>, 1997.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stdint.h>
diff --git a/sysdeps/s390/multiarch/wcpcpy-c.c b/sysdeps/s390/wcpcpy-c.c
index e3282fde19..adca7c18b6 100644
--- a/sysdeps/s390/multiarch/wcpcpy-c.c
+++ b/sysdeps/s390/wcpcpy-c.c
@@ -1,5 +1,5 @@
/* Default wcslen implementation for S/390.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,12 +14,14 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define WCPCPY __wcpcpy_c
+#include <ifunc-wcpcpy.h>
+
+#if HAVE_WCPCPY_C
+# if HAVE_WCPCPY_IFUNC || HAVE_WCPCPY_Z13
+# define WCPCPY WCPCPY_C
+# endif
-# include <wchar.h>
-extern __typeof (__wcpcpy) __wcpcpy_c;
# include <wcsmbs/wcpcpy.c>
#endif
diff --git a/sysdeps/s390/multiarch/wcpcpy-vx.S b/sysdeps/s390/wcpcpy-vx.S
index bff6e85628..611ad6bce6 100644
--- a/sysdeps/s390/multiarch/wcpcpy-vx.S
+++ b/sysdeps/s390/wcpcpy-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of wcpcpy.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,9 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
+#include <ifunc-wcpcpy.h>
+#if HAVE_WCPCPY_Z13
# include "sysdep.h"
# include "asm-syntax.h"
@@ -37,7 +38,7 @@
-v17=index of zero
-v18=part of src
*/
-ENTRY(__wcpcpy_vx)
+ENTRY(WCPCPY_Z13)
.machine "z13"
.machinemode "zarch_nohighgprs"
@@ -109,6 +110,11 @@ ENTRY(__wcpcpy_vx)
br %r14
.Lfallback:
- jg __wcpcpy_c
-END(__wcpcpy_vx)
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
+ jg WCPCPY_C
+END(WCPCPY_Z13)
+
+# if ! HAVE_WCPCPY_IFUNC
+strong_alias (WCPCPY_Z13, __wcpcpy)
+weak_alias (__wcpcpy, wcpcpy)
+# endif
+#endif
diff --git a/sysdeps/s390/wcpcpy.c b/sysdeps/s390/wcpcpy.c
new file mode 100644
index 0000000000..86c19c26a3
--- /dev/null
+++ b/sysdeps/s390/wcpcpy.c
@@ -0,0 +1,39 @@
+/* Multiple versions of wcpcpy.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-wcpcpy.h>
+
+#if HAVE_WCPCPY_IFUNC
+# include <wchar.h>
+# include <ifunc-resolve.h>
+
+# if HAVE_WCPCPY_C
+extern __typeof (__wcpcpy) WCPCPY_C attribute_hidden;
+# endif
+
+# if HAVE_WCPCPY_Z13
+extern __typeof (__wcpcpy) WCPCPY_Z13 attribute_hidden;
+# endif
+
+s390_libc_ifunc_expr (__wcpcpy, __wcpcpy,
+ (HAVE_WCPCPY_Z13 && (hwcap & HWCAP_S390_VX))
+ ? WCPCPY_Z13
+ : WCPCPY_DEFAULT
+ )
+weak_alias (__wcpcpy, wcpcpy)
+#endif
diff --git a/sysdeps/s390/multiarch/wcpncpy-c.c b/sysdeps/s390/wcpncpy-c.c
index 1f44bacea9..3351fd650a 100644
--- a/sysdeps/s390/multiarch/wcpncpy-c.c
+++ b/sysdeps/s390/wcpncpy-c.c
@@ -1,5 +1,5 @@
/* Default wcsncpy implementation for S/390.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,12 +14,14 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define WCPNCPY __wcpncpy_c
+#include <ifunc-wcpncpy.h>
+
+#if HAVE_WCPNCPY_C
+# if HAVE_WCPNCPY_IFUNC || HAVE_WCPNCPY_Z13
+# define WCPNCPY WCPNCPY_C
+# endif
-# include <wchar.h>
-extern __typeof (__wcpncpy) __wcpncpy_c;
# include <wcsmbs/wcpncpy.c>
#endif
diff --git a/sysdeps/s390/multiarch/wcpncpy-vx.S b/sysdeps/s390/wcpncpy-vx.S
index 004f512e1f..e4a0c9a0db 100644
--- a/sysdeps/s390/multiarch/wcpncpy-vx.S
+++ b/sysdeps/s390/wcpncpy-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of wcpncpy.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,9 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
+#include <ifunc-wcpncpy.h>
+#if HAVE_WCPNCPY_Z13
# include "sysdep.h"
# include "asm-syntax.h"
@@ -38,7 +39,7 @@
-%r6 = loaded bytes
-%r7 = border, tmp
*/
-ENTRY(__wcpncpy_vx)
+ENTRY(WCPNCPY_Z13)
.machine "z13"
.machinemode "zarch_nohighgprs"
@@ -217,6 +218,11 @@ ENTRY(__wcpncpy_vx)
j .Llt64
.Lfallback:
- jg __wcpncpy_c
-END(__wcpncpy_vx)
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
+ jg WCPNCPY_C
+END(WCPNCPY_Z13)
+
+# if ! HAVE_WCPNCPY_IFUNC
+strong_alias (WCPNCPY_Z13, __wcpncpy)
+weak_alias (__wcpncpy, wcpncpy)
+# endif
+#endif
diff --git a/sysdeps/s390/wcpncpy.c b/sysdeps/s390/wcpncpy.c
new file mode 100644
index 0000000000..86fbe1bb07
--- /dev/null
+++ b/sysdeps/s390/wcpncpy.c
@@ -0,0 +1,39 @@
+/* Multiple versions of wcpncpy.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-wcpncpy.h>
+
+#if HAVE_WCPNCPY_IFUNC
+# include <wchar.h>
+# include <ifunc-resolve.h>
+
+# if HAVE_WCPNCPY_C
+extern __typeof (__wcpncpy) WCPNCPY_C attribute_hidden;
+# endif
+
+# if HAVE_WCPNCPY_Z13
+extern __typeof (__wcpncpy) WCPNCPY_Z13 attribute_hidden;
+# endif
+
+s390_libc_ifunc_expr (__wcpncpy, __wcpncpy,
+ (HAVE_WCPNCPY_Z13 && (hwcap & HWCAP_S390_VX))
+ ? WCPNCPY_Z13
+ : WCPNCPY_DEFAULT
+ )
+weak_alias (__wcpncpy, wcpncpy)
+#endif
diff --git a/sysdeps/s390/multiarch/wcscat-c.c b/sysdeps/s390/wcscat-c.c
index 9a31c65a0b..0fc7998766 100644
--- a/sysdeps/s390/multiarch/wcscat-c.c
+++ b/sysdeps/s390/wcscat-c.c
@@ -1,5 +1,5 @@
/* Default wcscat implementation for S/390.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,12 +14,14 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define WCSCAT __wcscat_c
+#include <ifunc-wcscat.h>
+
+#if HAVE_WCSCAT_C
+# if HAVE_WCSCAT_IFUNC || HAVE_WCSCAT_Z13
+# define WCSCAT WCSCAT_C
+# endif
-# include <wchar.h>
-extern __typeof (__wcscat) __wcscat_c;
# include <wcsmbs/wcscat.c>
#endif
diff --git a/sysdeps/s390/multiarch/wcscat-vx.S b/sysdeps/s390/wcscat-vx.S
index 2164a8da41..a1da9feaec 100644
--- a/sysdeps/s390/multiarch/wcscat-vx.S
+++ b/sysdeps/s390/wcscat-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of wcscat.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,9 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
+#include <ifunc-wcscat.h>
+#if HAVE_WCSCAT_Z13
# include "sysdep.h"
# include "asm-syntax.h"
@@ -37,7 +38,7 @@
-v17=index of zero
-v18=part of src
*/
-ENTRY(__wcscat_vx)
+ENTRY(WCSCAT_Z13)
.machine "z13"
.machinemode "zarch_nohighgprs"
@@ -170,6 +171,11 @@ ENTRY(__wcscat_vx)
lgr %r2,%r0 /* Load saved dest-ptr. */
br %r14
.Lfallback:
- jg __wcscat_c
-END(__wcscat_vx)
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
+ jg WCSCAT_C
+END(WCSCAT_Z13)
+
+# if ! HAVE_WCSCAT_IFUNC
+strong_alias (WCSCAT_Z13, __wcscat)
+weak_alias (__wcscat, wcscat)
+# endif
+#endif
diff --git a/sysdeps/s390/wcscat.c b/sysdeps/s390/wcscat.c
new file mode 100644
index 0000000000..6d59110fe8
--- /dev/null
+++ b/sysdeps/s390/wcscat.c
@@ -0,0 +1,39 @@
+/* Multiple versions of wcscat.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-wcscat.h>
+
+#if HAVE_WCSCAT_IFUNC
+# include <wchar.h>
+# include <ifunc-resolve.h>
+
+# if HAVE_WCSCAT_C
+extern __typeof (__wcscat) WCSCAT_C attribute_hidden;
+# endif
+
+# if HAVE_WCSCAT_Z13
+extern __typeof (__wcscat) WCSCAT_Z13 attribute_hidden;
+# endif
+
+s390_libc_ifunc_expr (__wcscat, __wcscat,
+ (HAVE_WCSCAT_Z13 && (hwcap & HWCAP_S390_VX))
+ ? WCSCAT_Z13
+ : WCSCAT_DEFAULT
+ )
+weak_alias (__wcscat, wcscat)
+#endif
diff --git a/sysdeps/s390/wcschr-c.c b/sysdeps/s390/wcschr-c.c
new file mode 100644
index 0000000000..d2ac1c2d34
--- /dev/null
+++ b/sysdeps/s390/wcschr-c.c
@@ -0,0 +1,44 @@
+/* Default wcschr implementation for S/390.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-wcschr.h>
+
+#if HAVE_WCSCHR_C
+# if HAVE_WCSCHR_IFUNC || HAVE_WCSCHR_Z13
+# define WCSCHR WCSCHR_C
+
+# undef weak_alias
+# define weak_alias(name, alias)
+
+# if defined SHARED && IS_IN (libc)
+# undef libc_hidden_weak
+# define libc_hidden_weak(name)
+# undef libc_hidden_def
+# if ! defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define libc_hidden_def(name) \
+ __hidden_ver1 (__wcschr_c, __GI_wcschr, __wcschr_c) __attribute__((weak)); \
+ strong_alias (__wcschr_c, __wcschr_c_1); \
+ __hidden_ver1 (__wcschr_c_1, __GI___wcschr, __wcschr_c_1);
+# else
+# define libc_hidden_def(name)
+# endif
+# endif
+# endif
+
+# include <wcsmbs/wcschr.c>
+#endif
diff --git a/sysdeps/s390/multiarch/wcschr-vx.S b/sysdeps/s390/wcschr-vx.S
index 94e5df7f36..04ec01dd4e 100644
--- a/sysdeps/s390/multiarch/wcschr-vx.S
+++ b/sysdeps/s390/wcschr-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of wcschr.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,9 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
+#include <ifunc-wcschr.h>
+#if HAVE_WCSCHR_Z13
# include "sysdep.h"
# include "asm-syntax.h"
@@ -36,7 +37,7 @@
-v17=index of unequal
-v18=replicated c
*/
-ENTRY(__wcschr_vx)
+ENTRY(WCSCHR_Z13)
.machine "z13"
.machinemode "zarch_nohighgprs"
@@ -98,6 +99,17 @@ ENTRY(__wcschr_vx)
lghi %r2,0 /* Return null if character not found. */
br %r14
.Lfallback:
- jg __wcschr_c
-END(__wcschr_vx)
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
+ jg WCSCHR_C
+END(WCSCHR_Z13)
+
+# if ! HAVE_WCSCHR_IFUNC
+strong_alias (WCSCHR_Z13, __wcschr)
+weak_alias (__wcschr, wcschr)
+# endif
+
+# if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT \
+ && defined SHARED && IS_IN (libc)
+strong_alias (WCSCHR_Z13, __GI___wcschr)
+weak_alias (WCSCHR_Z13, __GI_wcschr)
+# endif
+#endif
diff --git a/sysdeps/s390/wcschr.c b/sysdeps/s390/wcschr.c
new file mode 100644
index 0000000000..6c7d40f7b9
--- /dev/null
+++ b/sysdeps/s390/wcschr.c
@@ -0,0 +1,43 @@
+/* Multiple versions of wcschr.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-wcschr.h>
+
+#if HAVE_WCSCHR_IFUNC
+# define wcschr __redirect_wcschr
+# define __wcschr __redirect___wcschr
+# include <wchar.h>
+# undef wcschr
+# undef __wcschr
+# include <ifunc-resolve.h>
+
+# if HAVE_WCSCHR_C
+extern __typeof (__redirect___wcschr) WCSCHR_C attribute_hidden;
+# endif
+
+# if HAVE_WCSCHR_Z13
+extern __typeof (__redirect___wcschr) WCSCHR_Z13 attribute_hidden;
+# endif
+
+s390_libc_ifunc_expr (__redirect___wcschr, __wcschr,
+ (HAVE_WCSCHR_Z13 && (hwcap & HWCAP_S390_VX))
+ ? WCSCHR_Z13
+ : WCSCHR_DEFAULT
+ )
+weak_alias (__wcschr, wcschr)
+#endif
diff --git a/sysdeps/s390/multiarch/wcschrnul-c.c b/sysdeps/s390/wcschrnul-c.c
index 00e776a3ad..d34a084767 100644
--- a/sysdeps/s390/multiarch/wcschrnul-c.c
+++ b/sysdeps/s390/wcschrnul-c.c
@@ -1,5 +1,5 @@
/* Default wcschrnul implementation for S/390.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,12 +14,14 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define WCSCHRNUL __wcschrnul_c
+#include <ifunc-wcschrnul.h>
+
+#if HAVE_WCSCHRNUL_C
+# if HAVE_WCSCHRNUL_IFUNC || HAVE_WCSCHRNUL_Z13
+# define WCSCHRNUL WCSCHRNUL_C
+# endif
-# include <wchar.h>
-extern __typeof (__wcschrnul) __wcschrnul_c;
# include <wcsmbs/wcschrnul.c>
#endif
diff --git a/sysdeps/s390/multiarch/wcschrnul-vx.S b/sysdeps/s390/wcschrnul-vx.S
index ebcd32b870..1f501d71c9 100644
--- a/sysdeps/s390/multiarch/wcschrnul-vx.S
+++ b/sysdeps/s390/wcschrnul-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of wcschrnul.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,9 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
+#include <ifunc-wcschrnul.h>
+#if HAVE_WCSCHRNUL_Z13
# include "sysdep.h"
# include "asm-syntax.h"
@@ -35,7 +36,7 @@
-v16=part of s
-v18=vector with c replicated in every byte
*/
-ENTRY(__wcschrnul_vx)
+ENTRY(WCSCHRNUL_Z13)
.machine "z13"
.machinemode "zarch_nohighgprs"
@@ -92,6 +93,11 @@ ENTRY(__wcschrnul_vx)
.Lend:
br %r14
.Lfallback:
- jg __wcschrnul_c
-END(__wcschrnul_vx)
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
+ jg WCSCHRNUL_C
+END(WCSCHRNUL_Z13)
+
+# if ! HAVE_WCSCHRNUL_IFUNC
+strong_alias (WCSCHRNUL_Z13, __wcschrnul)
+weak_alias (__wcschrnul, wcschrnul)
+# endif
+#endif
diff --git a/sysdeps/s390/wcschrnul.c b/sysdeps/s390/wcschrnul.c
new file mode 100644
index 0000000000..53e08f4fb7
--- /dev/null
+++ b/sysdeps/s390/wcschrnul.c
@@ -0,0 +1,39 @@
+/* Multiple versions of wcschrnul.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-wcschrnul.h>
+
+#if HAVE_WCSCHRNUL_IFUNC
+# include <wchar.h>
+# include <ifunc-resolve.h>
+
+# if HAVE_WCSCHRNUL_C
+extern __typeof (__wcschrnul) WCSCHRNUL_C attribute_hidden;
+# endif
+
+# if HAVE_WCSCHRNUL_Z13
+extern __typeof (__wcschrnul) WCSCHRNUL_Z13 attribute_hidden;
+# endif
+
+s390_libc_ifunc_expr (__wcschrnul, __wcschrnul,
+ (HAVE_WCSCHRNUL_Z13 && (hwcap & HWCAP_S390_VX))
+ ? WCSCHRNUL_Z13
+ : WCSCHRNUL_DEFAULT
+ )
+weak_alias (__wcschrnul, wcschrnul)
+#endif
diff --git a/sysdeps/s390/wcscmp-c.c b/sysdeps/s390/wcscmp-c.c
new file mode 100644
index 0000000000..c25a9c33b7
--- /dev/null
+++ b/sysdeps/s390/wcscmp-c.c
@@ -0,0 +1,34 @@
+/* Default wcscmp implementation for S/390.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-wcscmp.h>
+
+#if HAVE_WCSCMP_C
+# if HAVE_WCSCMP_IFUNC
+# define WCSCMP WCSCMP_C
+# undef weak_alias
+# define weak_alias(name, alias)
+# if defined SHARED && IS_IN (libc)
+# undef libc_hidden_def
+# define libc_hidden_def(name) \
+ __hidden_ver1 (__wcscmp_c, __GI___wcscmp, __wcscmp_c);
+# endif
+# endif
+
+# include <wcsmbs/wcscmp.c>
+#endif
diff --git a/sysdeps/s390/multiarch/wcscmp-vx.S b/sysdeps/s390/wcscmp-vx.S
index 14267dbfc7..d9718478aa 100644
--- a/sysdeps/s390/multiarch/wcscmp-vx.S
+++ b/sysdeps/s390/wcscmp-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of wcscmp.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,9 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
+#include <ifunc-wcscmp.h>
+#if HAVE_WCSCMP_Z13
# include "sysdep.h"
# include "asm-syntax.h"
@@ -36,7 +37,7 @@
-v17=part of s2
-v18=index of unequal
*/
-ENTRY(__wcscmp_vx)
+ENTRY(WCSCMP_Z13)
.machine "z13"
.machinemode "zarch_nohighgprs"
@@ -127,5 +128,14 @@ ENTRY(__wcscmp_vx)
.Lend_equal:
lghi %r2,0
br %r14
-END(__wcscmp_vx)
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
+END(WCSCMP_Z13)
+
+# if ! HAVE_WCSCMP_IFUNC
+strong_alias (WCSCMP_Z13, __wcscmp)
+weak_alias (__wcscmp, wcscmp)
+# endif
+
+# if ! HAVE_WCSCMP_C && defined SHARED && IS_IN (libc)
+strong_alias (WCSCMP_Z13, __GI___wcscmp)
+# endif
+#endif
diff --git a/sysdeps/s390/wcscmp.c b/sysdeps/s390/wcscmp.c
new file mode 100644
index 0000000000..26b40c31c8
--- /dev/null
+++ b/sysdeps/s390/wcscmp.c
@@ -0,0 +1,41 @@
+/* Multiple versions of wcscmp.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-wcscmp.h>
+
+#if HAVE_WCSCMP_IFUNC
+# define __wcscmp __redirect___wcscmp
+# include <wchar.h>
+# undef __wcscmp
+# include <ifunc-resolve.h>
+
+# if HAVE_WCSCMP_C
+extern __typeof (__redirect___wcscmp) WCSCMP_C attribute_hidden;
+# endif
+
+# if HAVE_WCSCMP_Z13
+extern __typeof (__redirect___wcscmp) WCSCMP_Z13 attribute_hidden;
+# endif
+
+s390_libc_ifunc_expr (__redirect___wcscmp, __wcscmp,
+ (HAVE_WCSCMP_Z13 && (hwcap & HWCAP_S390_VX))
+ ? WCSCMP_Z13
+ : WCSCMP_DEFAULT
+ )
+weak_alias (__wcscmp, wcscmp)
+#endif
diff --git a/sysdeps/s390/multiarch/wcscpy-c.c b/sysdeps/s390/wcscpy-c.c
index 4a510f466b..a3b7703d17 100644
--- a/sysdeps/s390/multiarch/wcscpy-c.c
+++ b/sysdeps/s390/wcscpy-c.c
@@ -1,5 +1,5 @@
/* Default wcscpy implementation for S/390.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,12 +14,14 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define WCSCPY __wcscpy_c
+#include <ifunc-wcscpy.h>
+
+#if HAVE_WCSCPY_C
+# if HAVE_WCSCPY_IFUNC || HAVE_WCSCPY_Z13
+# define WCSCPY WCSCPY_C
+# endif
-# include <wchar.h>
-extern __typeof (wcscpy) __wcscpy_c;
# include <wcsmbs/wcscpy.c>
#endif
diff --git a/sysdeps/s390/multiarch/wcscpy-vx.S b/sysdeps/s390/wcscpy-vx.S
index c2e81055be..c73fe9cee6 100644
--- a/sysdeps/s390/multiarch/wcscpy-vx.S
+++ b/sysdeps/s390/wcscpy-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of wcscpy.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,9 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
+#include <ifunc-wcscpy.h>
+#if HAVE_WCSCPY_Z13
# include "sysdep.h"
# include "asm-syntax.h"
@@ -37,7 +38,7 @@
-v17=index of zero
-v18=part of src
*/
-ENTRY(__wcscpy_vx)
+ENTRY(WCSCPY_Z13)
.machine "z13"
.machinemode "zarch_nohighgprs"
@@ -106,6 +107,14 @@ ENTRY(__wcscpy_vx)
br %r14
.Lfallback:
- jg __wcscpy_c
-END(__wcscpy_vx)
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
+ jg WCSCPY_C
+END(WCSCPY_Z13)
+
+# if ! HAVE_WCSCPY_IFUNC
+strong_alias (WCSCPY_Z13, __wcscpy)
+weak_alias (__wcscpy, wcscpy)
+# if defined SHARED && IS_IN (libc)
+strong_alias (__wcscpy, __GI___wcscpy)
+# endif
+# endif
+#endif
diff --git a/sysdeps/s390/wcscpy.c b/sysdeps/s390/wcscpy.c
new file mode 100644
index 0000000000..3476c07206
--- /dev/null
+++ b/sysdeps/s390/wcscpy.c
@@ -0,0 +1,40 @@
+/* Multiple versions of wcscpy.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-wcscpy.h>
+
+#if HAVE_WCSCPY_IFUNC
+# include <wchar.h>
+# include <ifunc-resolve.h>
+
+# if HAVE_WCSCPY_C
+extern __typeof (wcscpy) WCSCPY_C attribute_hidden;
+# endif
+
+# if HAVE_WCSCPY_Z13
+extern __typeof (wcscpy) WCSCPY_Z13 attribute_hidden;
+# endif
+
+s390_libc_ifunc_expr (wcscpy, __wcscpy,
+ (HAVE_WCSCPY_Z13 && (hwcap & HWCAP_S390_VX))
+ ? WCSCPY_Z13
+ : WCSCPY_DEFAULT
+ )
+weak_alias (__wcscpy, wcscpy)
+libc_hidden_def (__wcscpy)
+#endif
diff --git a/sysdeps/s390/multiarch/wcscspn-c.c b/sysdeps/s390/wcscspn-c.c
index 161e52e686..00d4e235e3 100644
--- a/sysdeps/s390/multiarch/wcscspn-c.c
+++ b/sysdeps/s390/wcscspn-c.c
@@ -1,5 +1,5 @@
/* Default wcscscpn implementation for S/390.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define WCSCSPN __wcscspn_c
+#include <ifunc-wcscspn.h>
-# include <wchar.h>
-extern __typeof (wcscspn) __wcscspn_c;
+#if HAVE_WCSCSPN_C
+# if HAVE_WCSCSPN_IFUNC || HAVE_WCSCSPN_Z13
+# define WCSCSPN WCSCSPN_C
+# endif
# include <wcsmbs/wcscspn.c>
#endif
diff --git a/sysdeps/s390/multiarch/wcscspn-vx.S b/sysdeps/s390/wcscspn-vx.S
index 06bc4e25d0..9be2975fae 100644
--- a/sysdeps/s390/multiarch/wcscspn-vx.S
+++ b/sysdeps/s390/wcscspn-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of wcscspn.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,9 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
+#include <ifunc-wcscspn.h>
+#if HAVE_WCSCSPN_Z13
# include "sysdep.h"
# include "asm-syntax.h"
@@ -57,7 +58,7 @@
otherwise =0;
r9: loaded byte count of vlbb reject-string
*/
-ENTRY(__wcscspn_vx)
+ENTRY(WCSCSPN_Z13)
.machine "z13"
.machinemode "zarch_nohighgprs"
@@ -288,6 +289,10 @@ ENTRY(__wcscspn_vx)
vlgvg %r9,%v31,1
br %r14
.Lfallback:
- jg __wcscspn_c
-END(__wcscspn_vx)
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
+ jg WCSCSPN_C
+END(WCSCSPN_Z13)
+
+# if ! HAVE_WCSCSPN_IFUNC
+strong_alias (WCSCSPN_Z13, wcscspn)
+# endif
+#endif
diff --git a/sysdeps/s390/wcscspn.c b/sysdeps/s390/wcscspn.c
new file mode 100644
index 0000000000..143888a8c2
--- /dev/null
+++ b/sysdeps/s390/wcscspn.c
@@ -0,0 +1,38 @@
+/* Multiple versions of wcscspn.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-wcscspn.h>
+
+#if HAVE_WCSCSPN_IFUNC
+# include <wchar.h>
+# include <ifunc-resolve.h>
+
+# if HAVE_WCSCSPN_C
+extern __typeof (wcscspn) WCSCSPN_C attribute_hidden;
+# endif
+
+# if HAVE_WCSCSPN_Z13
+extern __typeof (wcscspn) WCSCSPN_Z13 attribute_hidden;
+# endif
+
+s390_libc_ifunc_expr (wcscspn, wcscspn,
+ (HAVE_WCSCSPN_Z13 && (hwcap & HWCAP_S390_VX))
+ ? WCSCSPN_Z13
+ : WCSCSPN_DEFAULT
+ )
+#endif
diff --git a/sysdeps/s390/multiarch/wcslen-c.c b/sysdeps/s390/wcslen-c.c
index 32a23e206d..f18cb0986b 100644
--- a/sysdeps/s390/multiarch/wcslen-c.c
+++ b/sysdeps/s390/wcslen-c.c
@@ -1,5 +1,5 @@
/* Default wcslen implementation for S/390.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,12 +14,14 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define WCSLEN __wcslen_c
+#include <ifunc-wcslen.h>
+
+#if HAVE_WCSLEN_C
+# if HAVE_WCSLEN_IFUNC || HAVE_WCSLEN_Z13
+# define WCSLEN WCSLEN_C
+# endif
-# include <wchar.h>
-extern __typeof (__wcslen) __wcslen_c;
# include <wcsmbs/wcslen.c>
#endif
diff --git a/sysdeps/s390/multiarch/wcslen-vx.S b/sysdeps/s390/wcslen-vx.S
index 337cbed6ec..bfca77c0e3 100644
--- a/sysdeps/s390/multiarch/wcslen-vx.S
+++ b/sysdeps/s390/wcslen-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of wcslen.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,9 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
+#include <ifunc-wcslen.h>
+#if HAVE_WCSLEN_Z13
# include "sysdep.h"
# include "asm-syntax.h"
@@ -34,7 +35,7 @@
-r5=current_len and return_value
-v16=part of s
*/
-ENTRY(__wcslen_vx)
+ENTRY(WCSLEN_Z13)
.machine "z13"
.machinemode "zarch_nohighgprs"
@@ -86,6 +87,11 @@ ENTRY(__wcslen_vx)
srlg %r2,%r2,2 /* Convert byte-count to character-count. */
br %r14
.Lfallback:
- jg __wcslen_c
-END(__wcslen_vx)
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
+ jg WCSLEN_C
+END(WCSLEN_Z13)
+
+# if ! HAVE_WCSLEN_IFUNC
+strong_alias (WCSLEN_Z13, __wcslen)
+weak_alias (__wcslen, wcslen)
+# endif
+#endif
diff --git a/sysdeps/s390/wcslen.c b/sysdeps/s390/wcslen.c
new file mode 100644
index 0000000000..2e87f1bcb2
--- /dev/null
+++ b/sysdeps/s390/wcslen.c
@@ -0,0 +1,39 @@
+/* Multiple versions of wcslen.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-wcslen.h>
+
+#if HAVE_WCSLEN_IFUNC
+# include <wchar.h>
+# include <ifunc-resolve.h>
+
+# if HAVE_WCSLEN_C
+extern __typeof (__wcslen) WCSLEN_C attribute_hidden;
+# endif
+
+# if HAVE_WCSLEN_Z13
+extern __typeof (__wcslen) WCSLEN_Z13 attribute_hidden;
+# endif
+
+s390_libc_ifunc_expr (__wcslen, __wcslen,
+ (HAVE_WCSLEN_Z13 && (hwcap & HWCAP_S390_VX))
+ ? WCSLEN_Z13
+ : WCSLEN_DEFAULT
+ )
+weak_alias (__wcslen, wcslen)
+#endif
diff --git a/sysdeps/s390/multiarch/wcsncat-c.c b/sysdeps/s390/wcsncat-c.c
index 2cf1a76385..851436db4c 100644
--- a/sysdeps/s390/multiarch/wcsncat-c.c
+++ b/sysdeps/s390/wcsncat-c.c
@@ -1,5 +1,5 @@
/* Default wcsncat implementation for S/390.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,12 +14,14 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define WCSNCAT __wcsncat_c
+#include <ifunc-wcsncat.h>
+
+#if HAVE_WCSNCAT_C
+# if HAVE_WCSNCAT_IFUNC || HAVE_WCSNCAT_Z13
+# define WCSNCAT WCSNCAT_C
+# endif
-# include <wchar.h>
-extern __typeof (wcsncat) __wcsncat_c;
# include <wcsmbs/wcsncat.c>
#endif
diff --git a/sysdeps/s390/multiarch/wcsncat-vx.S b/sysdeps/s390/wcsncat-vx.S
index 1d3935690d..7eb0849287 100644
--- a/sysdeps/s390/multiarch/wcsncat-vx.S
+++ b/sysdeps/s390/wcsncat-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of wcsncat.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,9 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
+#include <ifunc-wcsncat.h>
+#if HAVE_WCSNCAT_Z13
# include "sysdep.h"
# include "asm-syntax.h"
@@ -40,7 +41,7 @@
-v18=part of src
-v31=register save area for r6, r7
*/
-ENTRY(__wcsncat_vx)
+ENTRY(WCSNCAT_Z13)
.machine "z13"
.machinemode "zarch_nohighgprs"
@@ -260,6 +261,10 @@ ENTRY(__wcsncat_vx)
j .Lcpy_lt64
.Lfallback:
- jg __wcsncat_c
-END(__wcsncat_vx)
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
+ jg WCSNCAT_C
+END(WCSNCAT_Z13)
+
+# if ! HAVE_WCSNCAT_IFUNC
+strong_alias (WCSNCAT_Z13, wcsncat)
+# endif
+#endif
diff --git a/sysdeps/s390/wcsncat.c b/sysdeps/s390/wcsncat.c
new file mode 100644
index 0000000000..89b5c3fc7b
--- /dev/null
+++ b/sysdeps/s390/wcsncat.c
@@ -0,0 +1,38 @@
+/* Multiple versions of wcsncat.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-wcsncat.h>
+
+#if HAVE_WCSNCAT_IFUNC
+# include <wchar.h>
+# include <ifunc-resolve.h>
+
+# if HAVE_WCSNCAT_C
+extern __typeof (wcsncat) WCSNCAT_C attribute_hidden;
+# endif
+
+# if HAVE_WCSNCAT_Z13
+extern __typeof (wcsncat) WCSNCAT_Z13 attribute_hidden;
+# endif
+
+s390_libc_ifunc_expr (wcsncat, wcsncat,
+ (HAVE_WCSNCAT_Z13 && (hwcap & HWCAP_S390_VX))
+ ? WCSNCAT_Z13
+ : WCSNCAT_DEFAULT
+ )
+#endif
diff --git a/sysdeps/s390/multiarch/wcsncmp-c.c b/sysdeps/s390/wcsncmp-c.c
index 92ab5e8b50..99edb0895b 100644
--- a/sysdeps/s390/multiarch/wcsncmp-c.c
+++ b/sysdeps/s390/wcsncmp-c.c
@@ -1,5 +1,5 @@
/* Default wcsncmp implementation for S/390.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,12 +14,14 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define WCSNCMP __wcsncmp_c
+#include <ifunc-wcsncmp.h>
+
+#if HAVE_WCSNCMP_C
+# if HAVE_WCSNCMP_IFUNC
+# define WCSNCMP WCSNCMP_C
+# endif
-# include <wchar.h>
-extern __typeof (wcsncmp) __wcsncmp_c;
# include <wcsmbs/wcsncmp.c>
#endif
diff --git a/sysdeps/s390/multiarch/wcsncmp-vx.S b/sysdeps/s390/wcsncmp-vx.S
index 34c203bc90..1b43080b42 100644
--- a/sysdeps/s390/multiarch/wcsncmp-vx.S
+++ b/sysdeps/s390/wcsncmp-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of wcsncmp.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,9 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
+#include <ifunc-wcsncmp.h>
+#if HAVE_WCSNCMP_Z13
# include "sysdep.h"
# include "asm-syntax.h"
@@ -37,7 +38,7 @@
-v17=part of s2
-v18=index of unequal
*/
-ENTRY(__wcsncmp_vx)
+ENTRY(WCSNCMP_Z13)
.machine "z13"
.machinemode "zarch_nohighgprs"
@@ -173,5 +174,9 @@ ENTRY(__wcsncmp_vx)
lghi %r1,-1
locgrl %r2,%r1
br %r14
-END(__wcsncmp_vx)
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
+END(WCSNCMP_Z13)
+
+# if ! HAVE_WCSNCMP_IFUNC
+strong_alias (WCSNCMP_Z13, wcsncmp)
+# endif
+#endif
diff --git a/sysdeps/s390/wcsncmp.c b/sysdeps/s390/wcsncmp.c
new file mode 100644
index 0000000000..e1a5dbe73c
--- /dev/null
+++ b/sysdeps/s390/wcsncmp.c
@@ -0,0 +1,38 @@
+/* Multiple versions of wcsncmp.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-wcsncmp.h>
+
+#if HAVE_WCSNCMP_IFUNC
+# include <wchar.h>
+# include <ifunc-resolve.h>
+
+# if HAVE_WCSNCMP_C
+extern __typeof (wcsncmp) WCSNCMP_C attribute_hidden;
+# endif
+
+# if HAVE_WCSNCMP_Z13
+extern __typeof (wcsncmp) WCSNCMP_Z13 attribute_hidden;
+# endif
+
+s390_libc_ifunc_expr (wcsncmp, wcsncmp,
+ (HAVE_WCSNCMP_Z13 && (hwcap & HWCAP_S390_VX))
+ ? WCSNCMP_Z13
+ : WCSNCMP_DEFAULT
+ )
+#endif
diff --git a/sysdeps/s390/multiarch/wcsncpy-c.c b/sysdeps/s390/wcsncpy-c.c
index 6b89b8c14b..ea2616da6f 100644
--- a/sysdeps/s390/multiarch/wcsncpy-c.c
+++ b/sysdeps/s390/wcsncpy-c.c
@@ -1,5 +1,5 @@
/* Default wcsncpy implementation for S/390.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,12 +14,14 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define WCSNCPY __wcsncpy_c
+#include <ifunc-wcsncpy.h>
+
+#if HAVE_WCSNCPY_C
+# if HAVE_WCSNCPY_IFUNC || HAVE_WCSNCPY_Z13
+# define WCSNCPY WCSNCPY_C
+# endif
-# include <wchar.h>
-extern __typeof (__wcsncpy) __wcsncpy_c;
# include <wcsmbs/wcsncpy.c>
#endif
diff --git a/sysdeps/s390/multiarch/wcsncpy-vx.S b/sysdeps/s390/wcsncpy-vx.S
index b3400d50d9..8adbb45be4 100644
--- a/sysdeps/s390/multiarch/wcsncpy-vx.S
+++ b/sysdeps/s390/wcsncpy-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of wcsncpy.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,9 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
+#include <ifunc-wcsncpy.h>
+#if HAVE_WCSNCPY_Z13
# include "sysdep.h"
# include "asm-syntax.h"
@@ -40,7 +41,7 @@
-v18=part of src
-v31=register save area for r6, r7
*/
-ENTRY(__wcsncpy_vx)
+ENTRY(WCSNCPY_Z13)
.machine "z13"
.machinemode "zarch_nohighgprs"
@@ -217,7 +218,11 @@ ENTRY(__wcsncpy_vx)
j .Llt64
.Lfallback:
- jg __wcsncpy_c
-END(__wcsncpy_vx)
-
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
+ jg WCSNCPY_C
+END(WCSNCPY_Z13)
+
+# if ! HAVE_WCSNCPY_IFUNC
+strong_alias (WCSNCPY_Z13, __wcsncpy)
+weak_alias (__wcsncpy, wcsncpy)
+# endif
+#endif
diff --git a/sysdeps/s390/wcsncpy.c b/sysdeps/s390/wcsncpy.c
new file mode 100644
index 0000000000..11bf027afc
--- /dev/null
+++ b/sysdeps/s390/wcsncpy.c
@@ -0,0 +1,39 @@
+/* Multiple versions of wcsncpy.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-wcsncpy.h>
+
+#if HAVE_WCSNCPY_IFUNC
+# include <wchar.h>
+# include <ifunc-resolve.h>
+
+# if HAVE_WCSNCPY_C
+extern __typeof (__wcsncpy) WCSNCPY_C attribute_hidden;
+# endif
+
+# if HAVE_WCSNCPY_Z13
+extern __typeof (__wcsncpy) WCSNCPY_Z13 attribute_hidden;
+# endif
+
+s390_libc_ifunc_expr (__wcsncpy, __wcsncpy,
+ (HAVE_WCSNCPY_Z13 && (hwcap & HWCAP_S390_VX))
+ ? WCSNCPY_Z13
+ : WCSNCPY_DEFAULT
+ )
+weak_alias (__wcsncpy, wcsncpy)
+#endif
diff --git a/sysdeps/s390/multiarch/wcsnlen-c.c b/sysdeps/s390/wcsnlen-c.c
index 8f43f5104f..6e0eb8f246 100644
--- a/sysdeps/s390/multiarch/wcsnlen-c.c
+++ b/sysdeps/s390/wcsnlen-c.c
@@ -1,5 +1,5 @@
/* Default wcsnlen implementation for S/390.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,12 +14,14 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define WCSNLEN __wcsnlen_c
+#include <ifunc-wcsnlen.h>
+
+#if HAVE_WCSNLEN_C
+# if HAVE_WCSNLEN_IFUNC || HAVE_WCSNLEN_Z13
+# define WCSNLEN WCSNLEN_C
+# endif
-# include <wchar.h>
-extern __typeof (__wcsnlen) __wcsnlen_c;
# include <wcsmbs/wcsnlen.c>
#endif
diff --git a/sysdeps/s390/multiarch/wcsnlen-vx.S b/sysdeps/s390/wcsnlen-vx.S
index 420f29fbc0..ae147cd51e 100644
--- a/sysdeps/s390/multiarch/wcsnlen-vx.S
+++ b/sysdeps/s390/wcsnlen-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of wcsnlen.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,9 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
+#include <ifunc-wcsnlen.h>
+#if HAVE_WCSNLEN_Z13
# include "sysdep.h"
# include "asm-syntax.h"
@@ -34,7 +35,7 @@
-r5=current_len and return_value
-v16=part of s
*/
-ENTRY(__wcsnlen_vx)
+ENTRY(WCSNLEN_Z13)
.machine "z13"
.machinemode "zarch_nohighgprs"
@@ -146,6 +147,11 @@ ENTRY(__wcsnlen_vx)
j .Llt64
.Lfallback:
- jg __wcsnlen_c
-END(__wcsnlen_vx)
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
+ jg WCSNLEN_C
+END(WCSNLEN_Z13)
+
+# if ! HAVE_WCSNLEN_IFUNC
+strong_alias (WCSNLEN_Z13, __wcsnlen)
+weak_alias (__wcsnlen, wcsnlen)
+# endif
+#endif
diff --git a/sysdeps/s390/wcsnlen.c b/sysdeps/s390/wcsnlen.c
new file mode 100644
index 0000000000..267513641c
--- /dev/null
+++ b/sysdeps/s390/wcsnlen.c
@@ -0,0 +1,39 @@
+/* Multiple versions of wcsnlen.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-wcsnlen.h>
+
+#if HAVE_WCSNLEN_IFUNC
+# include <wchar.h>
+# include <ifunc-resolve.h>
+
+# if HAVE_WCSNLEN_C
+extern __typeof (__wcsnlen) WCSNLEN_C attribute_hidden;
+# endif
+
+# if HAVE_WCSNLEN_Z13
+extern __typeof (__wcsnlen) WCSNLEN_Z13 attribute_hidden;
+# endif
+
+s390_libc_ifunc_expr (__wcsnlen, __wcsnlen,
+ (HAVE_WCSNLEN_Z13 && (hwcap & HWCAP_S390_VX))
+ ? WCSNLEN_Z13
+ : WCSNLEN_DEFAULT
+ )
+weak_alias (__wcsnlen, wcsnlen)
+#endif
diff --git a/sysdeps/s390/wcspbrk-c.c b/sysdeps/s390/wcspbrk-c.c
new file mode 100644
index 0000000000..40518d124a
--- /dev/null
+++ b/sysdeps/s390/wcspbrk-c.c
@@ -0,0 +1,37 @@
+/* Default wcspbrk implementation for S/390.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-wcspbrk.h>
+
+#if HAVE_WCSPBRK_C
+# if HAVE_WCSPBRK_IFUNC || HAVE_WCSPBRK_Z13
+# define WCSPBRK WCSPBRK_C
+
+# if defined SHARED && IS_IN (libc)
+# undef libc_hidden_def
+# if ! defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define libc_hidden_def(name) \
+ __hidden_ver1 (__wcspbrk_c, __GI_wcspbrk, __wcspbrk_c);
+# else
+# define libc_hidden_def(name)
+# endif
+# endif
+# endif
+
+# include <wcsmbs/wcspbrk.c>
+#endif
diff --git a/sysdeps/s390/multiarch/wcspbrk-vx.S b/sysdeps/s390/wcspbrk-vx.S
index 5c89ec5d33..92acaf2479 100644
--- a/sysdeps/s390/multiarch/wcspbrk-vx.S
+++ b/sysdeps/s390/wcspbrk-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of wcspbrk.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,9 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
+#include <ifunc-wcspbrk.h>
+#if HAVE_WCSPBRK_Z13
# include "sysdep.h"
# include "asm-syntax.h"
@@ -59,7 +60,7 @@
otherwise =0;
r9: loaded byte count of vlbb accept-string
*/
-ENTRY(__wcspbrk_vx)
+ENTRY(WCSPBRK_Z13)
.machine "z13"
.machinemode "zarch_nohighgprs"
@@ -310,6 +311,15 @@ ENTRY(__wcspbrk_vx)
lgr %r2,%r1
br %r14
.Lfallback:
- jg __wcspbrk_c
-END(__wcspbrk_vx)
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
+ jg WCSPBRK_C
+END(WCSPBRK_Z13)
+
+# if ! HAVE_WCSPBRK_IFUNC
+strong_alias (WCSPBRK_Z13, wcspbrk)
+# endif
+
+# if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT \
+ && defined SHARED && IS_IN (libc)
+strong_alias (WCSPBRK_Z13, __GI_wcspbrk)
+# endif
+#endif
diff --git a/sysdeps/s390/wcspbrk.c b/sysdeps/s390/wcspbrk.c
new file mode 100644
index 0000000000..4b44148e07
--- /dev/null
+++ b/sysdeps/s390/wcspbrk.c
@@ -0,0 +1,39 @@
+/* Multiple versions of wcspbrk.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-wcspbrk.h>
+
+#if HAVE_WCSPBRK_IFUNC
+# define wcspbrk __redirect_wcspbrk
+# include <wchar.h>
+# undef wcspbrk
+# include <ifunc-resolve.h>
+# if HAVE_WCSPBRK_C
+extern __typeof (__redirect_wcspbrk) WCSPBRK_C attribute_hidden;
+# endif
+
+# if HAVE_WCSPBRK_Z13
+extern __typeof (__redirect_wcspbrk) WCSPBRK_Z13 attribute_hidden;
+# endif
+
+s390_libc_ifunc_expr (__redirect_wcspbrk, wcspbrk,
+ (HAVE_WCSPBRK_Z13 && (hwcap & HWCAP_S390_VX))
+ ? WCSPBRK_Z13
+ : WCSPBRK_DEFAULT
+ )
+#endif
diff --git a/sysdeps/s390/multiarch/wcsrchr-c.c b/sysdeps/s390/wcsrchr-c.c
index 615250358b..6eb970462b 100644
--- a/sysdeps/s390/multiarch/wcsrchr-c.c
+++ b/sysdeps/s390/wcsrchr-c.c
@@ -1,5 +1,5 @@
/* Default wcsrchr implementation for S/390.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,12 +14,14 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define WCSRCHR __wcsrchr_c
+#include <ifunc-wcsrchr.h>
+
+#if HAVE_WCSRCHR_C
+# if HAVE_WCSRCHR_IFUNC || HAVE_WCSRCHR_Z13
+# define WCSRCHR WCSRCHR_C
+# endif
-# include <wchar.h>
-extern __typeof (wcsrchr) __wcsrchr_c;
# include <wcsmbs/wcsrchr.c>
#endif
diff --git a/sysdeps/s390/multiarch/wcsrchr-vx.S b/sysdeps/s390/wcsrchr-vx.S
index e40a554e5d..5d7aa5b647 100644
--- a/sysdeps/s390/multiarch/wcsrchr-vx.S
+++ b/sysdeps/s390/wcsrchr-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of wcsrchr.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,9 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
+#include <ifunc-wcsrchr.h>
+#if HAVE_WCSRCHR_Z13
# include "sysdep.h"
# include "asm-syntax.h"
@@ -39,7 +40,7 @@
-v19=part of s with last occurence of c.
-v20=permute pattern
*/
-ENTRY(__wcsrchr_vx)
+ENTRY(WCSRCHR_Z13)
.machine "z13"
.machinemode "zarch_nohighgprs"
@@ -185,6 +186,10 @@ ENTRY(__wcsrchr_vx)
.byte 0x0C,0x0D,0x0E,0x0F,0x08,0x09,0x0A,0x0B
.byte 0x04,0x05,0x06,0x07,0x00,0x01,0x02,0x03
.Lfallback:
- jg __wcsrchr_c
-END(__wcsrchr_vx)
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
+ jg WCSRCHR_C
+END(WCSRCHR_Z13)
+
+# if ! HAVE_WCSRCHR_IFUNC
+strong_alias (WCSRCHR_Z13, wcsrchr)
+# endif
+#endif
diff --git a/sysdeps/s390/wcsrchr.c b/sysdeps/s390/wcsrchr.c
new file mode 100644
index 0000000000..1ccc39f284
--- /dev/null
+++ b/sysdeps/s390/wcsrchr.c
@@ -0,0 +1,38 @@
+/* Multiple versions of wcsrchr.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-wcsrchr.h>
+
+#if HAVE_WCSRCHR_IFUNC
+# include <wchar.h>
+# include <ifunc-resolve.h>
+
+# if HAVE_WCSRCHR_C
+extern __typeof (wcsrchr) WCSRCHR_C attribute_hidden;
+# endif
+
+# if HAVE_WCSRCHR_Z13
+extern __typeof (wcsrchr) WCSRCHR_Z13 attribute_hidden;
+# endif
+
+s390_libc_ifunc_expr (wcsrchr, wcsrchr,
+ (HAVE_WCSRCHR_Z13 && (hwcap & HWCAP_S390_VX))
+ ? WCSRCHR_Z13
+ : WCSRCHR_DEFAULT
+ )
+#endif
diff --git a/sysdeps/s390/wcsspn-c.c b/sysdeps/s390/wcsspn-c.c
new file mode 100644
index 0000000000..a364f5b023
--- /dev/null
+++ b/sysdeps/s390/wcsspn-c.c
@@ -0,0 +1,37 @@
+/* Default wcsspn implementation for S/390.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-wcsspn.h>
+
+#if HAVE_WCSSPN_C
+# if HAVE_WCSSPN_IFUNC || HAVE_WCSSPN_Z13
+# define WCSSPN WCSSPN_C
+
+# if defined SHARED && IS_IN (libc)
+# undef libc_hidden_def
+# if ! defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define libc_hidden_def(name) \
+ __hidden_ver1 (__wcsspn_c, __GI_wcsspn, __wcsspn_c);
+# else
+# define libc_hidden_def(name)
+# endif
+# endif
+# endif
+
+# include <wcsmbs/wcsspn.c>
+#endif
diff --git a/sysdeps/s390/multiarch/wcsspn-vx.S b/sysdeps/s390/wcsspn-vx.S
index 548f2ad164..f8fd2afb02 100644
--- a/sysdeps/s390/multiarch/wcsspn-vx.S
+++ b/sysdeps/s390/wcsspn-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of wcsspn.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,9 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
+#include <ifunc-wcsspn.h>
+#if HAVE_WCSSPN_Z13
# include "sysdep.h"
# include "asm-syntax.h"
@@ -57,7 +58,7 @@
otherwise =0;
r9: loaded byte count of vlbb accept-string
*/
-ENTRY(__wcsspn_vx)
+ENTRY(WCSSPN_Z13)
.machine "z13"
.machinemode "zarch_nohighgprs"
@@ -265,6 +266,15 @@ ENTRY(__wcsspn_vx)
j .Lslow_next_acc_notonbb /* ... and search for zero in
fully loaded vreg again. */
.Lfallback:
- jg __wcsspn_c
-END(__wcsspn_vx)
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
+ jg WCSSPN_C
+END(WCSSPN_Z13)
+
+# if ! HAVE_WCSSPN_IFUNC
+strong_alias (WCSSPN_Z13, wcsspn)
+# endif
+
+# if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT \
+ && defined SHARED && IS_IN (libc)
+strong_alias (WCSSPN_Z13, __GI_wcsspn)
+# endif
+#endif
diff --git a/sysdeps/s390/wcsspn.c b/sysdeps/s390/wcsspn.c
new file mode 100644
index 0000000000..c0d3aa6bdc
--- /dev/null
+++ b/sysdeps/s390/wcsspn.c
@@ -0,0 +1,39 @@
+/* Multiple versions of wcsspn.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-wcsspn.h>
+
+#if HAVE_WCSSPN_IFUNC
+# define wcsspn __redirect_wcsspn
+# include <wchar.h>
+# undef wcsspn
+# include <ifunc-resolve.h>
+# if HAVE_WCSSPN_C
+extern __typeof (__redirect_wcsspn) WCSSPN_C attribute_hidden;
+# endif
+
+# if HAVE_WCSSPN_Z13
+extern __typeof (__redirect_wcsspn) WCSSPN_Z13 attribute_hidden;
+# endif
+
+s390_libc_ifunc_expr (__redirect_wcsspn, wcsspn,
+ (HAVE_WCSSPN_Z13 && (hwcap & HWCAP_S390_VX))
+ ? WCSSPN_Z13
+ : WCSSPN_DEFAULT
+ )
+#endif
diff --git a/sysdeps/s390/wmemchr-c.c b/sysdeps/s390/wmemchr-c.c
new file mode 100644
index 0000000000..c9511845f9
--- /dev/null
+++ b/sysdeps/s390/wmemchr-c.c
@@ -0,0 +1,44 @@
+/* Default wmemchr implementation for S/390.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-wmemchr.h>
+
+#if HAVE_WMEMCHR_C
+# if HAVE_WMEMCHR_IFUNC || HAVE_WMEMCHR_Z13
+# define WMEMCHR WMEMCHR_C
+
+# undef weak_alias
+# define weak_alias(name, alias)
+
+# if defined SHARED && IS_IN (libc)
+# undef libc_hidden_weak
+# define libc_hidden_weak(name)
+# undef libc_hidden_def
+# if ! defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define libc_hidden_def(name) \
+ __hidden_ver1 (__wmemchr_c, __GI_wmemchr, __wmemchr_c) __attribute__((weak)); \
+ strong_alias (__wmemchr_c, __wmemchr_c_1); \
+ __hidden_ver1 (__wmemchr_c_1, __GI___wmemchr, __wmemchr_c_1);
+# else
+# define libc_hidden_def(name)
+# endif
+# endif
+# endif
+
+# include <wcsmbs/wmemchr.c>
+#endif
diff --git a/sysdeps/s390/multiarch/wmemchr-vx.S b/sysdeps/s390/wmemchr-vx.S
index db057b579a..f142ea3add 100644
--- a/sysdeps/s390/multiarch/wmemchr-vx.S
+++ b/sysdeps/s390/wmemchr-vx.S
@@ -1,5 +1,5 @@
/* Vector optimized 32/64 bit S/390 version of wmemchr.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,9 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
+#include <ifunc-wmemchr.h>
+#if HAVE_WMEMCHR_Z13
# include "sysdep.h"
# include "asm-syntax.h"
@@ -38,7 +39,7 @@
-v17=index of found c
-v18=c replicated
*/
-ENTRY(__wmemchr_vx)
+ENTRY(WMEMCHR_Z13)
.machine "z13"
.machinemode "zarch_nohighgprs"
@@ -161,6 +162,17 @@ ENTRY(__wmemchr_vx)
j .Llt64
.Lfallback:
- jg __wmemchr_c
-END(__wmemchr_vx)
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
+ jg WMEMCHR_C
+END(WMEMCHR_Z13)
+
+# if ! HAVE_WMEMCHR_IFUNC
+strong_alias (WMEMCHR_Z13, __wmemchr)
+weak_alias (__wmemchr, wmemchr)
+# endif
+
+# if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT \
+ && defined SHARED && IS_IN (libc)
+strong_alias (WMEMCHR_Z13, __GI___wmemchr)
+weak_alias (WMEMCHR_Z13, __GI_wmemchr)
+# endif
+#endif
diff --git a/sysdeps/s390/wmemchr.c b/sysdeps/s390/wmemchr.c
new file mode 100644
index 0000000000..9d8c6287c6
--- /dev/null
+++ b/sysdeps/s390/wmemchr.c
@@ -0,0 +1,43 @@
+/* Multiple versions of wmemchr.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-wmemchr.h>
+
+#if HAVE_WMEMCHR_IFUNC
+# define wmemchr __redirect_wmemchr
+# define __wmemchr __redirect___wmemchr
+# include <wchar.h>
+# undef wmemchr
+# undef __wmemchr
+# include <ifunc-resolve.h>
+
+# if HAVE_WMEMCHR_C
+extern __typeof (__redirect___wmemchr) WMEMCHR_C attribute_hidden;
+# endif
+
+# if HAVE_WMEMCHR_Z13
+extern __typeof (__redirect___wmemchr) WMEMCHR_Z13 attribute_hidden;
+# endif
+
+s390_libc_ifunc_expr (__redirect___wmemchr, __wmemchr,
+ (HAVE_WMEMCHR_Z13 && (hwcap & HWCAP_S390_VX))
+ ? WMEMCHR_Z13
+ : WMEMCHR_DEFAULT
+ )
+weak_alias (__wmemchr, wmemchr)
+#endif
diff --git a/sysdeps/s390/multiarch/wmemcmp-c.c b/sysdeps/s390/wmemcmp-c.c
index 2fd39d5013..c6fbea589f 100644
--- a/sysdeps/s390/multiarch/wmemcmp-c.c
+++ b/sysdeps/s390/wmemcmp-c.c
@@ -1,5 +1,5 @@
/* Default wmemcmp implementation for S/390.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
-# define WMEMCMP __wmemcmp_c
+#include <ifunc-wmemcmp.h>
-# include <wchar.h>
-extern __typeof (wmemcmp) __wmemcmp_c;
+#if HAVE_WMEMCMP_C
+# if HAVE_WMEMCMP_IFUNC
+# define WMEMCMP WMEMCMP_C
+# endif
# include <wcsmbs/wmemcmp.c>
#endif
diff --git a/sysdeps/s390/multiarch/wmemcmp-vx.S b/sysdeps/s390/wmemcmp-vx.S
index e2fc21e419..292d881318 100644
--- a/sysdeps/s390/multiarch/wmemcmp-vx.S
+++ b/sysdeps/s390/wmemcmp-vx.S
@@ -1,5 +1,5 @@
/* Vector Optimized 32/64 bit S/390 version of wmemcmp.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,9 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
+#include <ifunc-wmemcmp.h>
+#if HAVE_WMEMCMP_Z13
# include "sysdep.h"
# include "asm-syntax.h"
@@ -37,7 +38,7 @@
-v17=part of s2
-v18=index of unequal
*/
-ENTRY(__wmemcmp_vx)
+ENTRY(WMEMCMP_Z13)
.machine "z13"
.machinemode "zarch_nohighgprs"
@@ -145,5 +146,10 @@ ENTRY(__wmemcmp_vx)
la %r2,0(%r5,%r2)
la %r3,0(%r5,%r3)
j .Lremaining
-END(__wmemcmp_vx)
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
+END(WMEMCMP_Z13)
+
+# if ! HAVE_WMEMCMP_IFUNC
+strong_alias (WMEMCMP_Z13, __wmemcmp)
+weak_alias (__wmemcmp, wmemcmp)
+# endif
+#endif
diff --git a/sysdeps/s390/wmemcmp.c b/sysdeps/s390/wmemcmp.c
new file mode 100644
index 0000000000..db2e044d07
--- /dev/null
+++ b/sysdeps/s390/wmemcmp.c
@@ -0,0 +1,39 @@
+/* Multiple versions of wmemcmp.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-wmemcmp.h>
+
+#if HAVE_WMEMCMP_IFUNC
+# include <wchar.h>
+# include <ifunc-resolve.h>
+
+# if HAVE_WMEMCMP_C
+extern __typeof (__wmemcmp) WMEMCMP_C attribute_hidden;
+# endif
+
+# if HAVE_WMEMCMP_Z13
+extern __typeof (__wmemcmp) WMEMCMP_Z13 attribute_hidden;
+# endif
+
+s390_libc_ifunc_expr (__wmemcmp, __wmemcmp,
+ (HAVE_WMEMCMP_Z13 && (hwcap & HWCAP_S390_VX))
+ ? WMEMCMP_Z13
+ : WMEMCMP_DEFAULT
+ )
+weak_alias (__wmemcmp, wmemcmp)
+#endif
diff --git a/sysdeps/s390/wmemset-c.c b/sysdeps/s390/wmemset-c.c
new file mode 100644
index 0000000000..db6cb85c60
--- /dev/null
+++ b/sysdeps/s390/wmemset-c.c
@@ -0,0 +1,44 @@
+/* Default wmemset implementation for S/390.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-wmemset.h>
+
+#if HAVE_WMEMSET_C
+# if HAVE_WMEMSET_IFUNC || HAVE_WMEMSET_Z13
+# define WMEMSET WMEMSET_C
+
+# undef weak_alias
+# define weak_alias(name, alias)
+
+# if defined SHARED && IS_IN (libc)
+# undef libc_hidden_weak
+# define libc_hidden_weak(name)
+# undef libc_hidden_def
+# if ! defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT
+# define libc_hidden_def(name) \
+ __hidden_ver1 (__wmemset_c, __GI_wmemset, __wmemset_c) __attribute__((weak)); \
+ strong_alias (__wmemset_c, __wmemset_c_1); \
+ __hidden_ver1 (__wmemset_c_1, __GI___wmemset, __wmemset_c_1);
+# else
+# define libc_hidden_def(name)
+# endif
+# endif
+# endif
+
+# include <wcsmbs/wmemset.c>
+#endif
diff --git a/sysdeps/s390/multiarch/wmemset-vx.S b/sysdeps/s390/wmemset-vx.S
index 0c2f6337b0..de3d95927b 100644
--- a/sysdeps/s390/multiarch/wmemset-vx.S
+++ b/sysdeps/s390/wmemset-vx.S
@@ -1,5 +1,5 @@
/* Vector Optimized 32/64 bit S/390 version of wmemset.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,9 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc)
+#include <ifunc-wmemset.h>
+#if HAVE_WMEMSET_Z13
# include "sysdep.h"
# include "asm-syntax.h"
@@ -38,7 +39,7 @@
-v17,v18,v19=copy of v16 for vstm
-v31=saved dest for return
*/
-ENTRY(__wmemset_vx)
+ENTRY(WMEMSET_Z13)
.machine "z13"
.machinemode "zarch_nohighgprs"
@@ -137,6 +138,17 @@ ENTRY(__wmemset_vx)
br %r14
.Lfallback:
srlg %r4,%r4,2 /* Convert byte-count to character-count. */
- jg __wmemset_c
-END(__wmemset_vx)
-#endif /* HAVE_S390_VX_ASM_SUPPORT && IS_IN (libc) */
+ jg WMEMSET_C
+END(WMEMSET_Z13)
+
+# if ! HAVE_WMEMSET_IFUNC
+strong_alias (WMEMSET_Z13, __wmemset)
+weak_alias (__wmemset, wmemset)
+# endif
+
+# if defined HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT \
+ && defined SHARED && IS_IN (libc)
+strong_alias (WMEMSET_Z13, __GI___wmemset)
+weak_alias (WMEMSET_Z13, __GI_wmemset)
+# endif
+#endif
diff --git a/sysdeps/s390/wmemset.c b/sysdeps/s390/wmemset.c
new file mode 100644
index 0000000000..7ee928afb6
--- /dev/null
+++ b/sysdeps/s390/wmemset.c
@@ -0,0 +1,43 @@
+/* Multiple versions of wmemset.
+ Copyright (C) 2015-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <ifunc-wmemset.h>
+
+#if HAVE_WMEMSET_IFUNC
+# define wmemset __redirect_wmemset
+# define __wmemset __redirect___wmemset
+# include <wchar.h>
+# undef wmemset
+# undef __wmemset
+# include <ifunc-resolve.h>
+
+# if HAVE_WMEMSET_C
+extern __typeof (__redirect___wmemset) WMEMSET_C attribute_hidden;
+# endif
+
+# if HAVE_WMEMSET_Z13
+extern __typeof (__redirect___wmemset) WMEMSET_Z13 attribute_hidden;
+# endif
+
+s390_libc_ifunc_expr (__redirect___wmemset, __wmemset,
+ (HAVE_WMEMSET_Z13 && (hwcap & HWCAP_S390_VX))
+ ? WMEMSET_Z13
+ : WMEMSET_DEFAULT
+ )
+weak_alias (__wmemset, wmemset)
+#endif
diff --git a/sysdeps/sh/____longjmp_chk.S b/sysdeps/sh/____longjmp_chk.S
index dec3924327..090459b8ef 100644
--- a/sysdeps/sh/____longjmp_chk.S
+++ b/sysdeps/sh/____longjmp_chk.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
.section .rodata.str1.1,"aMS",@progbits,1
.type longjmp_msg,@object
diff --git a/sysdeps/sh/_mcount.S b/sysdeps/sh/_mcount.S
index 8b08959b55..46dbe51b49 100644
--- a/sysdeps/sh/_mcount.S
+++ b/sysdeps/sh/_mcount.S
@@ -1,5 +1,5 @@
/* Machine-specific calling sequence for `mcount' profiling function. SuperH
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
Contributed by NIIBE Yutaka <gniibe@m17n.org>
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sh/be/sh3/Implies b/sysdeps/sh/be/sh3/Implies
new file mode 100644
index 0000000000..f95531b498
--- /dev/null
+++ b/sysdeps/sh/be/sh3/Implies
@@ -0,0 +1 @@
+sh/sh3
diff --git a/sysdeps/sh/be/sh4/Implies b/sysdeps/sh/be/sh4/Implies
new file mode 100644
index 0000000000..98357a92bb
--- /dev/null
+++ b/sysdeps/sh/be/sh4/Implies
@@ -0,0 +1 @@
+sh/sh4
diff --git a/sysdeps/sh/bits/endian.h b/sysdeps/sh/bits/endian.h
deleted file mode 100644
index 1fef1ff938..0000000000
--- a/sysdeps/sh/bits/endian.h
+++ /dev/null
@@ -1,13 +0,0 @@
-/* SH is bi-endian but with a big-endian FPU. */
-
-#ifndef _ENDIAN_H
-# error "Never use <bits/endian.h> directly; include <endian.h> instead."
-#endif
-
-#ifdef __LITTLE_ENDIAN__
-#define __BYTE_ORDER __LITTLE_ENDIAN
-#define __FLOAT_WORD_ORDER __LITTLE_ENDIAN
-#else
-#define __BYTE_ORDER __BIG_ENDIAN
-#define __FLOAT_WORD_ORDER __BIG_ENDIAN
-#endif
diff --git a/sysdeps/sh/bits/endianness.h b/sysdeps/sh/bits/endianness.h
new file mode 100644
index 0000000000..45c7c83a63
--- /dev/null
+++ b/sysdeps/sh/bits/endianness.h
@@ -0,0 +1,15 @@
+#ifndef _BITS_ENDIANNESS_H
+#define _BITS_ENDIANNESS_H 1
+
+#ifndef _BITS_ENDIAN_H
+# error "Never use <bits/endianness.h> directly; include <endian.h> instead."
+#endif
+
+/* SH has selectable endianness. */
+#ifdef __LITTLE_ENDIAN__
+#define __BYTE_ORDER __LITTLE_ENDIAN
+#else
+#define __BYTE_ORDER __BIG_ENDIAN
+#endif
+
+#endif /* bits/endianness.h */
diff --git a/sysdeps/sh/bits/fenv.h b/sysdeps/sh/bits/fenv.h
index 56e9ffad0d..c56d68e1d0 100644
--- a/sysdeps/sh/bits/fenv.h
+++ b/sysdeps/sh/bits/fenv.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FENV_H
# error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
@@ -75,7 +75,7 @@ fenv_t;
/* If the default argument is used we use this value. */
#define FE_DFL_ENV ((const fenv_t *) -1)
-#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/sysdeps/sh/bits/link.h b/sysdeps/sh/bits/link.h
index f153cc3632..875dade56d 100644
--- a/sysdeps/sh/bits/link.h
+++ b/sysdeps/sh/bits/link.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LINK_H
# error "Never include <bits/link.h> directly; use <link.h> instead."
diff --git a/sysdeps/sh/bits/setjmp.h b/sysdeps/sh/bits/setjmp.h
index 6f45edc4f7..2371d530dd 100644
--- a/sysdeps/sh/bits/setjmp.h
+++ b/sysdeps/sh/bits/setjmp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define the machine-dependent type `jmp_buf'. SH version. */
#ifndef _BITS_SETJMP_H
diff --git a/sysdeps/sh/bsd-_setjmp.S b/sysdeps/sh/bsd-_setjmp.S
index b75d1a3f15..25e0d2d4d6 100644
--- a/sysdeps/sh/bsd-_setjmp.S
+++ b/sysdeps/sh/bsd-_setjmp.S
@@ -1,5 +1,5 @@
/* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'. SH version.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This just does a tail-call to `__sigsetjmp (ARG, 0)'.
We cannot do it in C because it must be a tail-call, so frame-unwinding
diff --git a/sysdeps/sh/bsd-setjmp.S b/sysdeps/sh/bsd-setjmp.S
index 7732de45ee..72de2ddf1f 100644
--- a/sysdeps/sh/bsd-setjmp.S
+++ b/sysdeps/sh/bsd-setjmp.S
@@ -1,5 +1,5 @@
/* BSD `setjmp' entry point to `sigsetjmp (..., 1)'. SH version.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This just does a tail-call to `__sigsetjmp (ARG, 1)'.
We cannot do it in C because it must be a tail-call, so frame-unwinding
diff --git a/sysdeps/sh/crti.S b/sysdeps/sh/crti.S
index c0707406f5..845f63ce3a 100644
--- a/sysdeps/sh/crti.S
+++ b/sysdeps/sh/crti.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for SH.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* crti.S puts a function prologue at the beginning of the .init and
.fini sections and defines global symbols for those addresses, so
diff --git a/sysdeps/sh/crtn.S b/sysdeps/sh/crtn.S
index 138ae9a58a..425e61ca25 100644
--- a/sysdeps/sh/crtn.S
+++ b/sysdeps/sh/crtn.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for SH.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* crtn.S puts function epilogues in the .init and .fini sections
corresponding to the prologues in crti.S. */
diff --git a/sysdeps/sh/dl-machine.h b/sysdeps/sh/dl-machine.h
index d85f40f1a7..469578e090 100644
--- a/sysdeps/sh/dl-machine.h
+++ b/sysdeps/sh/dl-machine.h
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation inline functions. SH version.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef dl_machine_h
#define dl_machine_h
diff --git a/sysdeps/sh/dl-tls.h b/sysdeps/sh/dl-tls.h
index b2102a9472..a92d4e8f90 100644
--- a/sysdeps/sh/dl-tls.h
+++ b/sysdeps/sh/dl-tls.h
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. SH version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Type used for the representation of TLS information in the GOT. */
diff --git a/sysdeps/sh/dl-trampoline.S b/sysdeps/sh/dl-trampoline.S
index 0c8f84d26d..6e74c68b56 100644
--- a/sysdeps/sh/dl-trampoline.S
+++ b/sysdeps/sh/dl-trampoline.S
@@ -1,5 +1,5 @@
/* PLT trampolines. SH version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sh/fpu_control.h b/sysdeps/sh/fpu_control.h
index 7f220faf97..244d7276a4 100644
--- a/sysdeps/sh/fpu_control.h
+++ b/sysdeps/sh/fpu_control.h
@@ -1,5 +1,5 @@
/* FPU control word definitions. SH version.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FPU_CONTROL_H
#define _FPU_CONTROL_H
diff --git a/sysdeps/sh/gccframe.h b/sysdeps/sh/gccframe.h
index a89e8220c8..a12a2ecadc 100644
--- a/sysdeps/sh/gccframe.h
+++ b/sysdeps/sh/gccframe.h
@@ -1,5 +1,5 @@
/* Definition of object in frame unwind info. sh version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define DWARF_FRAME_REGISTERS 49
diff --git a/sysdeps/sh/gmp-mparam.h b/sysdeps/sh/gmp-mparam.h
index 94c09894a1..ba9d8c44c2 100644
--- a/sysdeps/sh/gmp-mparam.h
+++ b/sysdeps/sh/gmp-mparam.h
@@ -1,6 +1,6 @@
/* gmp-mparam.h -- Compiler/machine parameter header file.
-Copyright (C) 1991-2018 Free Software Foundation, Inc.
+Copyright (C) 1991-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -16,7 +16,7 @@ License for more details.
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not, see
-<http://www.gnu.org/licenses/>. */
+<https://www.gnu.org/licenses/>. */
#define BITS_PER_MP_LIMB 32
#define BYTES_PER_MP_LIMB 4
diff --git a/sysdeps/sh/jmpbuf-offsets.h b/sysdeps/sh/jmpbuf-offsets.h
index 0d2fdc66ba..7ee56d7ccd 100644
--- a/sysdeps/sh/jmpbuf-offsets.h
+++ b/sysdeps/sh/jmpbuf-offsets.h
@@ -1,5 +1,5 @@
/* Private macros for accessing __jmp_buf contents. SH version.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define JB_SIZE (4 * 15)
diff --git a/sysdeps/sh/jmpbuf-unwind.h b/sysdeps/sh/jmpbuf-unwind.h
index 65ee3dbf96..14d5792f05 100644
--- a/sysdeps/sh/jmpbuf-unwind.h
+++ b/sysdeps/sh/jmpbuf-unwind.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <setjmp.h>
#include <stdint.h>
diff --git a/sysdeps/sh/ldsodefs.h b/sysdeps/sh/ldsodefs.h
index 964dda39c7..87a4f963f4 100644
--- a/sysdeps/sh/ldsodefs.h
+++ b/sysdeps/sh/ldsodefs.h
@@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SH_LDSODEFS_H
#define _SH_LDSODEFS_H 1
diff --git a/sysdeps/sh/le/sh3/Implies b/sysdeps/sh/le/sh3/Implies
new file mode 100644
index 0000000000..f95531b498
--- /dev/null
+++ b/sysdeps/sh/le/sh3/Implies
@@ -0,0 +1 @@
+sh/sh3
diff --git a/sysdeps/sh/le/sh4/Implies b/sysdeps/sh/le/sh4/Implies
new file mode 100644
index 0000000000..98357a92bb
--- /dev/null
+++ b/sysdeps/sh/le/sh4/Implies
@@ -0,0 +1 @@
+sh/sh4
diff --git a/sysdeps/sh/libc-tls.c b/sysdeps/sh/libc-tls.c
index da9aab27cb..e088c3dc31 100644
--- a/sysdeps/sh/libc-tls.c
+++ b/sysdeps/sh/libc-tls.c
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. SH version.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <csu/libc-tls.c>
#include <dl-tls.h>
diff --git a/sysdeps/sh/libm-test-ulps b/sysdeps/sh/libm-test-ulps
index d614decfb1..dea132527a 100644
--- a/sysdeps/sh/libm-test-ulps
+++ b/sysdeps/sh/libm-test-ulps
@@ -270,9 +270,9 @@ idouble: 1
ifloat: 2
Function: Imaginary part of "ccos_towardzero":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
Function: Real part of "ccosh":
@@ -288,15 +288,15 @@ idouble: 1
ifloat: 1
Function: Real part of "ccosh_towardzero":
-double: 1
+double: 2
float: 3
-idouble: 1
+idouble: 2
ifloat: 3
Function: Imaginary part of "ccosh_towardzero":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
Function: Real part of "cexp":
@@ -312,15 +312,15 @@ idouble: 1
ifloat: 2
Function: Real part of "cexp_towardzero":
-double: 1
+double: 2
float: 2
-idouble: 1
+idouble: 2
ifloat: 2
Function: Imaginary part of "cexp_towardzero":
-double: 1
+double: 3
float: 3
-idouble: 1
+idouble: 3
ifloat: 3
Function: Real part of "clog":
@@ -388,9 +388,9 @@ idouble: 1
ifloat: 1
Function: "cosh_towardzero":
-double: 1
+double: 2
float: 1
-idouble: 1
+idouble: 2
ifloat: 1
Function: Real part of "cpow":
@@ -404,9 +404,9 @@ float: 2
ifloat: 2
Function: Real part of "cpow_towardzero":
-double: 4
+double: 5
float: 8
-idouble: 4
+idouble: 5
ifloat: 8
Function: Imaginary part of "cpow_towardzero":
@@ -422,9 +422,9 @@ idouble: 1
ifloat: 1
Function: Real part of "csin_towardzero":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
Function: Imaginary part of "csin_towardzero":
@@ -450,9 +450,9 @@ idouble: 2
ifloat: 2
Function: Imaginary part of "csinh_towardzero":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
Function: Real part of "csqrt":
@@ -556,9 +556,9 @@ double: 2
idouble: 2
Function: "exp10_towardzero":
-double: 2
+double: 3
float: 1
-idouble: 2
+idouble: 3
ifloat: 1
Function: "exp2":
diff --git a/sysdeps/sh/machine-gmon.h b/sysdeps/sh/machine-gmon.h
index def170d632..3a08a1998f 100644
--- a/sysdeps/sh/machine-gmon.h
+++ b/sysdeps/sh/machine-gmon.h
@@ -1,5 +1,5 @@
/* Machine-dependent definitions for profiling support. SH version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* We must not pollute the global namespace. */
#define mcount_internal __mcount_internal
diff --git a/sysdeps/sh/memcpy.S b/sysdeps/sh/memcpy.S
index d89f8bace3..4113023c8b 100644
--- a/sysdeps/sh/memcpy.S
+++ b/sysdeps/sh/memcpy.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Kazumoto Kojima <kkojima@rr.iij4u.or.jp>
Optimized by Toshiyasu Morita <toshiyasu.morita@hsa.hitachi.com>
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sh/memset.S b/sysdeps/sh/memset.S
index 8901253f8a..ae881107f1 100644
--- a/sysdeps/sh/memset.S
+++ b/sysdeps/sh/memset.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Kazumoto Kojima <kkojima@rr.iij4u.or.jp>
Optimized by Toshiyasu Morita <toshiyasu.morita@hsa.hitachi.com>
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sh/memusage.h b/sysdeps/sh/memusage.h
index 1e0e1c64a2..7484801bf2 100644
--- a/sysdeps/sh/memusage.h
+++ b/sysdeps/sh/memusage.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define GETSP() ({ register uintptr_t stack_ptr asm ("r15"); stack_ptr; })
diff --git a/sysdeps/sh/nptl/bits/pthreadtypes-arch.h b/sysdeps/sh/nptl/bits/pthreadtypes-arch.h
deleted file mode 100644
index d383d53ce5..0000000000
--- a/sysdeps/sh/nptl/bits/pthreadtypes-arch.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/* Copyright (C) 2002-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _BITS_PTHREADTYPES_ARCH_H
-#define _BITS_PTHREADTYPES_ARCH_H 1
-
-#include <endian.h>
-
-#define __SIZEOF_PTHREAD_ATTR_T 36
-#define __SIZEOF_PTHREAD_MUTEX_T 24
-#define __SIZEOF_PTHREAD_MUTEXATTR_T 4
-#define __SIZEOF_PTHREAD_COND_T 48
-#define __SIZEOF_PTHREAD_CONDATTR_T 4
-#define __SIZEOF_PTHREAD_RWLOCK_T 32
-#define __SIZEOF_PTHREAD_RWLOCKATTR_T 8
-#define __SIZEOF_PTHREAD_BARRIER_T 20
-#define __SIZEOF_PTHREAD_BARRIERATTR_T 4
-
-/* Definitions for internal mutex struct. */
-#define __PTHREAD_COMPAT_PADDING_MID
-#define __PTHREAD_COMPAT_PADDING_END
-#define __PTHREAD_MUTEX_LOCK_ELISION 0
-#define __PTHREAD_MUTEX_NUSERS_AFTER_KIND 1
-#define __PTHREAD_MUTEX_USE_UNION 1
-
-#define __LOCK_ALIGNMENT
-#define __ONCE_ALIGNMENT
-
-struct __pthread_rwlock_arch_t
-{
- unsigned int __readers;
- unsigned int __writers;
- unsigned int __wrphase_futex;
- unsigned int __writers_futex;
- unsigned int __pad3;
- unsigned int __pad4;
-#if __BYTE_ORDER == __BIG_ENDIAN
- unsigned char __pad1;
- unsigned char __pad2;
- unsigned char __shared;
- /* FLAGS must stay at this position in the structure to maintain
- binary compatibility. */
- unsigned char __flags;
-#else
- /* FLAGS must stay at this position in the structure to maintain
- binary compatibility. */
- unsigned char __flags;
- unsigned char __shared;
- unsigned char __pad1;
- unsigned char __pad2;
-#endif
- unsigned long int __cur_writer;
-};
-
-#define __PTHREAD_RWLOCK_ELISION_EXTRA 0
-
-#endif /* bits/pthreadtypes.h */
diff --git a/sysdeps/sh/nptl/bits/semaphore.h b/sysdeps/sh/nptl/bits/semaphore.h
index 2f906e0ecb..a3dc40bbbc 100644
--- a/sysdeps/sh/nptl/bits/semaphore.h
+++ b/sysdeps/sh/nptl/bits/semaphore.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SEMAPHORE_H
# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
diff --git a/sysdeps/sh/nptl/pthread-offsets.h b/sysdeps/sh/nptl/pthread-offsets.h
deleted file mode 100644
index 9617354dc7..0000000000
--- a/sysdeps/sh/nptl/pthread-offsets.h
+++ /dev/null
@@ -1,5 +0,0 @@
-#define __PTHREAD_MUTEX_NUSERS_OFFSET 16
-#define __PTHREAD_MUTEX_KIND_OFFSET 12
-#define __PTHREAD_MUTEX_SPINS_OFFSET 20
-#define __PTHREAD_MUTEX_ELISION_OFFSET 22
-#define __PTHREAD_MUTEX_LIST_OFFSET 20
diff --git a/sysdeps/sh/nptl/pthread_spin_init.c b/sysdeps/sh/nptl/pthread_spin_init.c
index 1c49df4f03..1ba6137489 100644
--- a/sysdeps/sh/nptl/pthread_spin_init.c
+++ b/sysdeps/sh/nptl/pthread_spin_init.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Not needed. pthread_spin_init is an alias for pthread_spin_unlock. */
diff --git a/sysdeps/sh/nptl/pthread_spin_lock.c b/sysdeps/sh/nptl/pthread_spin_lock.c
index 343ec85f5c..e03ff9a2f9 100644
--- a/sysdeps/sh/nptl/pthread_spin_lock.c
+++ b/sysdeps/sh/nptl/pthread_spin_lock.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "pthreadP.h"
diff --git a/sysdeps/sh/nptl/pthread_spin_trylock.S b/sysdeps/sh/nptl/pthread_spin_trylock.S
index c68b088629..beec250848 100644
--- a/sysdeps/sh/nptl/pthread_spin_trylock.S
+++ b/sysdeps/sh/nptl/pthread_spin_trylock.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread-errnos.h>
diff --git a/sysdeps/sh/nptl/pthread_spin_unlock.S b/sysdeps/sh/nptl/pthread_spin_unlock.S
index 7e75f83313..bbabb4a11d 100644
--- a/sysdeps/sh/nptl/pthread_spin_unlock.S
+++ b/sysdeps/sh/nptl/pthread_spin_unlock.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
.globl pthread_spin_unlock
.type pthread_spin_unlock,@function
diff --git a/sysdeps/sh/nptl/pthreaddef.h b/sysdeps/sh/nptl/pthreaddef.h
index 97c7e07100..c543fd9c48 100644
--- a/sysdeps/sh/nptl/pthreaddef.h
+++ b/sysdeps/sh/nptl/pthreaddef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sh/nptl/tls.h b/sysdeps/sh/nptl/tls.h
index 2585312f27..c3fe7f3506 100644
--- a/sysdeps/sh/nptl/tls.h
+++ b/sysdeps/sh/nptl/tls.h
@@ -1,5 +1,5 @@
/* Definition for thread-local data handling. NPTL/SH version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _TLS_H
#define _TLS_H
diff --git a/sysdeps/sh/preconfigure b/sysdeps/sh/preconfigure
index 16e29273df..078fb48b0f 100644
--- a/sysdeps/sh/preconfigure
+++ b/sysdeps/sh/preconfigure
@@ -1,12 +1,161 @@
-# preconfigure fragment for sh.
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
+ # Local preconfigure fragment for sysdeps/sh
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if ${ac_cv_path_GREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$GREP"; then
+ ac_path_GREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in grep ggrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_GREP" || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+ # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'GREP' >> "conftest.nl"
+ "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_GREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_GREP="$ac_path_GREP"
+ ac_path_GREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_GREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_GREP"; then
+ as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if ${ac_cv_path_EGREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+ then ac_cv_path_EGREP="$GREP -E"
+ else
+ if test -z "$EGREP"; then
+ ac_path_EGREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in egrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_EGREP" || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+ # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'EGREP' >> "conftest.nl"
+ "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_EGREP="$ac_path_EGREP"
+ ac_path_EGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_EGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_EGREP"; then
+ as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_EGREP=$EGREP
+fi
+
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
+ yes
+ #endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "yes" >/dev/null 2>&1; then :
+ endianness=le
+else
+ endianness=be
+fi
+rm -f conftest*
+
case "$machine" in
-sh3*) base_machine=sh
- machine=sh/sh3
- with_fp_cond="defined __SH_FPU_ANY__"
- ;;
-sh4*) base_machine=sh
- machine=sh/sh4
- with_fp_cond="defined __SH_FPU_ANY__"
- ;;
+sh3*) base_machine=sh
+ machine=sh/$endianness/sh3
+ with_fp_cond="defined __SH_FPU_ANY__"
+ ;;
+sh4*) base_machine=sh
+ machine=sh/$endianness/sh4
+ with_fp_cond="defined __SH_FPU_ANY__"
+ ;;
esac
diff --git a/sysdeps/sh/preconfigure.ac b/sysdeps/sh/preconfigure.ac
new file mode 100644
index 0000000000..78fd771ed5
--- /dev/null
+++ b/sysdeps/sh/preconfigure.ac
@@ -0,0 +1,18 @@
+GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
+# Local preconfigure fragment for sysdeps/sh
+
+AC_EGREP_CPP(yes,[#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
+ yes
+ #endif
+ ], endianness=le, endianness=be)
+
+case "$machine" in
+sh3*) base_machine=sh
+ machine=sh/$endianness/sh3
+ with_fp_cond="defined __SH_FPU_ANY__"
+ ;;
+sh4*) base_machine=sh
+ machine=sh/$endianness/sh4
+ with_fp_cond="defined __SH_FPU_ANY__"
+ ;;
+esac
diff --git a/sysdeps/sh/sh3/__longjmp.S b/sysdeps/sh/sh3/__longjmp.S
index 2c5eb9ca0f..5b3930124f 100644
--- a/sysdeps/sh/sh3/__longjmp.S
+++ b/sysdeps/sh/sh3/__longjmp.S
@@ -1,5 +1,5 @@
/* longjmp for SH.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#define _SETJMP_H
diff --git a/sysdeps/sh/sh3/setjmp.S b/sysdeps/sh/sh3/setjmp.S
index ec6d96fa2b..6a096c7d1f 100644
--- a/sysdeps/sh/sh3/setjmp.S
+++ b/sysdeps/sh/sh3/setjmp.S
@@ -1,5 +1,5 @@
/* setjmp for SH3.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <jmpbuf-offsets.h>
diff --git a/sysdeps/sh/sh4/__longjmp.S b/sysdeps/sh/sh4/__longjmp.S
index bcd1e7de40..238d29d441 100644
--- a/sysdeps/sh/sh4/__longjmp.S
+++ b/sysdeps/sh/sh4/__longjmp.S
@@ -1,5 +1,5 @@
/* longjmp for SH.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#define _SETJMP_H
diff --git a/sysdeps/sh/sh4/fpu/fclrexcpt.c b/sysdeps/sh/sh4/fpu/fclrexcpt.c
index c83650a7e4..c6f5dd045b 100644
--- a/sysdeps/sh/sh4/fpu/fclrexcpt.c
+++ b/sysdeps/sh/sh4/fpu/fclrexcpt.c
@@ -1,5 +1,5 @@
/* Clear given exceptions in current floating-point environment.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@arthur.rhein-neckar.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/sh/sh4/fpu/fedisblxcpt.c b/sysdeps/sh/sh4/fpu/fedisblxcpt.c
index c7948f5f88..6c43976268 100644
--- a/sysdeps/sh/sh4/fpu/fedisblxcpt.c
+++ b/sysdeps/sh/sh4/fpu/fedisblxcpt.c
@@ -1,5 +1,5 @@
/* Disable floating-point exceptions.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Nobuhiro Iwamatsu <iwamatsu@nigauri.org>, 2012.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/sh/sh4/fpu/feenablxcpt.c b/sysdeps/sh/sh4/fpu/feenablxcpt.c
index f9e24d7780..fde838324a 100644
--- a/sysdeps/sh/sh4/fpu/feenablxcpt.c
+++ b/sysdeps/sh/sh4/fpu/feenablxcpt.c
@@ -1,5 +1,5 @@
/* Enable floating-point exceptions.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Nobuhiro Iwamatsu <iwamatsu@nigauri.org>, 2012.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/sh/sh4/fpu/fegetenv.c b/sysdeps/sh/sh4/fpu/fegetenv.c
index 138b09b54b..467581ab1d 100644
--- a/sysdeps/sh/sh4/fpu/fegetenv.c
+++ b/sysdeps/sh/sh4/fpu/fegetenv.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/sh/sh4/fpu/fegetexcept.c b/sysdeps/sh/sh4/fpu/fegetexcept.c
index 2181546b62..2b28c203cd 100644
--- a/sysdeps/sh/sh4/fpu/fegetexcept.c
+++ b/sysdeps/sh/sh4/fpu/fegetexcept.c
@@ -1,5 +1,5 @@
/* Get enabled floating-point exceptions.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Nobuhiro Iwamatsu <iwamatsu@nigauri.org>, 2012.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/sh/sh4/fpu/fegetmode.c b/sysdeps/sh/sh4/fpu/fegetmode.c
index 516a881409..ab74908049 100644
--- a/sysdeps/sh/sh4/fpu/fegetmode.c
+++ b/sysdeps/sh/sh4/fpu/fegetmode.c
@@ -1,5 +1,5 @@
/* Store current floating-point control modes. SH4 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/sh/sh4/fpu/fegetround.c b/sysdeps/sh/sh4/fpu/fegetround.c
index fafba2dc36..0579e68c41 100644
--- a/sysdeps/sh/sh4/fpu/fegetround.c
+++ b/sysdeps/sh/sh4/fpu/fegetround.c
@@ -1,5 +1,5 @@
/* Return current rounding direction.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@arthur.rhein-neckar.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/sh/sh4/fpu/feholdexcpt.c b/sysdeps/sh/sh4/fpu/feholdexcpt.c
index 6f2d024efc..e78391c3ce 100644
--- a/sysdeps/sh/sh4/fpu/feholdexcpt.c
+++ b/sysdeps/sh/sh4/fpu/feholdexcpt.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment and clear exceptions.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/sh/sh4/fpu/fesetenv.c b/sysdeps/sh/sh4/fpu/fesetenv.c
index 241c2559fc..56a98dde29 100644
--- a/sysdeps/sh/sh4/fpu/fesetenv.c
+++ b/sysdeps/sh/sh4/fpu/fesetenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/sh/sh4/fpu/fesetexcept.c b/sysdeps/sh/sh4/fpu/fesetexcept.c
index 9ce7ef6bbc..66484e8cf4 100644
--- a/sysdeps/sh/sh4/fpu/fesetexcept.c
+++ b/sysdeps/sh/sh4/fpu/fesetexcept.c
@@ -1,5 +1,5 @@
/* Set given exception flags. SH4 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/sh/sh4/fpu/fesetmode.c b/sysdeps/sh/sh4/fpu/fesetmode.c
index a54f5dd8b1..6dc8f86b57 100644
--- a/sysdeps/sh/sh4/fpu/fesetmode.c
+++ b/sysdeps/sh/sh4/fpu/fesetmode.c
@@ -1,5 +1,5 @@
/* Install given floating-point control modes. SH4 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/sh/sh4/fpu/fesetround.c b/sysdeps/sh/sh4/fpu/fesetround.c
index 3248c9609e..e9cb456c27 100644
--- a/sysdeps/sh/sh4/fpu/fesetround.c
+++ b/sysdeps/sh/sh4/fpu/fesetround.c
@@ -1,5 +1,5 @@
/* Set current rounding direction.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@arthur.rhein-neckar.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/sh/sh4/fpu/feupdateenv.c b/sysdeps/sh/sh4/fpu/feupdateenv.c
index 4a95951802..21234829eb 100644
--- a/sysdeps/sh/sh4/fpu/feupdateenv.c
+++ b/sysdeps/sh/sh4/fpu/feupdateenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment and raise exceptions.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Nobuhiro Iwamatsu <iwamatsu@nigauri.org>, 2012.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/sh/sh4/fpu/fgetexcptflg.c b/sysdeps/sh/sh4/fpu/fgetexcptflg.c
index a73e501ea8..1fe67c23dc 100644
--- a/sysdeps/sh/sh4/fpu/fgetexcptflg.c
+++ b/sysdeps/sh/sh4/fpu/fgetexcptflg.c
@@ -1,5 +1,5 @@
/* Store current representation for exceptions.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/sh/sh4/fpu/fraiseexcpt.c b/sysdeps/sh/sh4/fpu/fraiseexcpt.c
index 12b9adc0ce..07a7fa5298 100644
--- a/sysdeps/sh/sh4/fpu/fraiseexcpt.c
+++ b/sysdeps/sh/sh4/fpu/fraiseexcpt.c
@@ -1,5 +1,5 @@
/* Raise given exceptions.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Nobuhiro Iwamatsu <iwamatsu@nigauri.org>, 2012.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <float.h>
diff --git a/sysdeps/sh/sh4/fpu/fsetexcptflg.c b/sysdeps/sh/sh4/fpu/fsetexcptflg.c
index 0948037393..4066038d88 100644
--- a/sysdeps/sh/sh4/fpu/fsetexcptflg.c
+++ b/sysdeps/sh/sh4/fpu/fsetexcptflg.c
@@ -1,5 +1,5 @@
/* Set floating-point environment exception handling.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <math.h>
diff --git a/sysdeps/sh/sh4/fpu/ftestexcept.c b/sysdeps/sh/sh4/fpu/ftestexcept.c
index 5de9910481..fe349df394 100644
--- a/sysdeps/sh/sh4/fpu/ftestexcept.c
+++ b/sysdeps/sh/sh4/fpu/ftestexcept.c
@@ -1,5 +1,5 @@
/* Test exception in current environment.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/sh/sh4/setjmp.S b/sysdeps/sh/sh4/setjmp.S
index 854cb57849..dbc1824f78 100644
--- a/sysdeps/sh/sh4/setjmp.S
+++ b/sysdeps/sh/sh4/setjmp.S
@@ -1,5 +1,5 @@
/* setjmp for SH4.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <jmpbuf-offsets.h>
diff --git a/sysdeps/sh/sotruss-lib.c b/sysdeps/sh/sotruss-lib.c
index 8facac53e3..6f63f32787 100644
--- a/sysdeps/sh/sotruss-lib.c
+++ b/sysdeps/sh/sotruss-lib.c
@@ -1,5 +1,5 @@
/* Override generic sotruss-lib.c to define actual functions for SH.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define HAVE_ARCH_PLTENTER
#define HAVE_ARCH_PLTEXIT
diff --git a/sysdeps/sh/stackinfo.h b/sysdeps/sh/stackinfo.h
index 9570a36c75..e07db435b1 100644
--- a/sysdeps/sh/stackinfo.h
+++ b/sysdeps/sh/stackinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file contains a bit of information about the stack allocation
of the processor. */
diff --git a/sysdeps/sh/start.S b/sysdeps/sh/start.S
index f52077abca..b86d0f2861 100644
--- a/sysdeps/sh/start.S
+++ b/sysdeps/sh/start.S
@@ -1,5 +1,5 @@
/* Startup code for SH & ELF.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This is the canonical entry point, usually the first thing in the text
segment.
diff --git a/sysdeps/sh/strlen.S b/sysdeps/sh/strlen.S
index 2b09a781b1..40f0f374b8 100644
--- a/sysdeps/sh/strlen.S
+++ b/sysdeps/sh/strlen.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Kazumoto Kojima <kkojima@rr.iij4u.or.jp>
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sh/sysdep.h b/sysdeps/sh/sysdep.h
index 37889fb0cc..2f109b241e 100644
--- a/sysdeps/sh/sysdep.h
+++ b/sysdeps/sh/sysdep.h
@@ -1,5 +1,5 @@
/* Assembler macros for SH.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/generic/sysdep.h>
diff --git a/sysdeps/sh/tst-audit.h b/sysdeps/sh/tst-audit.h
index 74473cdfe6..aacab9f443 100644
--- a/sysdeps/sh/tst-audit.h
+++ b/sysdeps/sh/tst-audit.h
@@ -1,6 +1,6 @@
/* Definitions for testing PLT entry/exit auditing. SH version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define pltenter la_sh_gnu_pltenter
#define pltexit la_sh_gnu_pltexit
diff --git a/sysdeps/sparc/Makefile b/sysdeps/sparc/Makefile
index 3f0c096400..38b33af6e0 100644
--- a/sysdeps/sparc/Makefile
+++ b/sysdeps/sparc/Makefile
@@ -16,5 +16,14 @@ CPPFLAGS-crti.S += -fPIC
CPPFLAGS-crtn.S += -fPIC
endif
+# nscd uses atomic_spin_nop which in turn requires cpu_relax
+ifeq ($(subdir),nscd)
+routines += cpu_relax
+endif
+
+ifeq ($(subdir), nptl)
+libpthread-routines += cpu_relax
+endif
+
# The assembler on SPARC needs the -fPIC flag even when it's assembler code.
ASFLAGS-.os += -fPIC
diff --git a/sysdeps/sparc/atomic-machine.h b/sysdeps/sparc/atomic-machine.h
new file mode 100644
index 0000000000..4453184c9c
--- /dev/null
+++ b/sysdeps/sparc/atomic-machine.h
@@ -0,0 +1,95 @@
+/* Atomic operations. Sparc version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _ATOMIC_MACHINE_H
+#define _ATOMIC_MACHINE_H 1
+
+#include <stdint.h>
+
+typedef int8_t atomic8_t;
+typedef uint8_t uatomic8_t;
+typedef int_fast8_t atomic_fast8_t;
+typedef uint_fast8_t uatomic_fast8_t;
+
+typedef int16_t atomic16_t;
+typedef uint16_t uatomic16_t;
+typedef int_fast16_t atomic_fast16_t;
+typedef uint_fast16_t uatomic_fast16_t;
+
+typedef int32_t atomic32_t;
+typedef uint32_t uatomic32_t;
+typedef int_fast32_t atomic_fast32_t;
+typedef uint_fast32_t uatomic_fast32_t;
+
+typedef int64_t atomic64_t;
+typedef uint64_t uatomic64_t;
+typedef int_fast64_t atomic_fast64_t;
+typedef uint_fast64_t uatomic_fast64_t;
+
+typedef intptr_t atomicptr_t;
+typedef uintptr_t uatomicptr_t;
+typedef intmax_t atomic_max_t;
+typedef uintmax_t uatomic_max_t;
+
+#ifdef __arch64__
+# define __HAVE_64B_ATOMICS 1
+#else
+# define __HAVE_64B_ATOMICS 0
+#endif
+#define USE_ATOMIC_COMPILER_BUILTINS 1
+
+/* XXX Is this actually correct? */
+#define ATOMIC_EXCHANGE_USES_CAS __HAVE_64B_ATOMICS
+
+/* Compare and exchange.
+ For all "bool" routines, we return FALSE if exchange succesful. */
+
+#define __arch_compare_and_exchange_val_int(mem, newval, oldval, model) \
+ ({ \
+ typeof (*mem) __oldval = (oldval); \
+ __atomic_compare_exchange_n (mem, (void *) &__oldval, newval, 0, \
+ model, __ATOMIC_RELAXED); \
+ __oldval; \
+ })
+
+#define atomic_compare_and_exchange_val_acq(mem, new, old) \
+ ({ \
+ __typeof ((__typeof (*(mem))) *(mem)) __result; \
+ if (sizeof (*mem) == 4 \
+ || (__HAVE_64B_ATOMICS && sizeof (*mem) == 8)) \
+ __result = __arch_compare_and_exchange_val_int (mem, new, old, \
+ __ATOMIC_ACQUIRE); \
+ else \
+ abort (); \
+ __result; \
+ })
+
+#ifdef __sparc_v9__
+# define atomic_full_barrier() \
+ __asm __volatile ("membar #LoadLoad | #LoadStore" \
+ " | #StoreLoad | #StoreStore" : : : "memory")
+# define atomic_read_barrier() \
+ __asm __volatile ("membar #LoadLoad | #LoadStore" : : : "memory")
+# define atomic_write_barrier() \
+ __asm __volatile ("membar #LoadStore | #StoreStore" : : : "memory")
+
+extern void __cpu_relax (void);
+# define atomic_spin_nop() __cpu_relax ()
+#endif
+
+#endif /* _ATOMIC_MACHINE_H */
diff --git a/sysdeps/sparc/backtrace.c b/sysdeps/sparc/backtrace.c
index e259408893..95e52ef7e0 100644
--- a/sysdeps/sparc/backtrace.c
+++ b/sysdeps/sparc/backtrace.c
@@ -1,5 +1,5 @@
/* Return backtrace of current program state.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller <davem@davemloft.net>
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
- not, see <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <execinfo.h>
#include <stddef.h>
diff --git a/sysdeps/sparc/bits/endian.h b/sysdeps/sparc/bits/endian.h
deleted file mode 100644
index 8acfdf5df6..0000000000
--- a/sysdeps/sparc/bits/endian.h
+++ /dev/null
@@ -1,12 +0,0 @@
-/* Sparc is big-endian, but v9 supports endian conversion on loads/stores
- and GCC supports such a mode. Be prepared. */
-
-#ifndef _ENDIAN_H
-# error "Never use <bits/endian.h> directly; include <endian.h> instead."
-#endif
-
-#ifdef __LITTLE_ENDIAN__
-# define __BYTE_ORDER __LITTLE_ENDIAN
-#else
-# define __BYTE_ORDER __BIG_ENDIAN
-#endif
diff --git a/sysdeps/sparc/bits/endianness.h b/sysdeps/sparc/bits/endianness.h
new file mode 100644
index 0000000000..0b6f5bf8b2
--- /dev/null
+++ b/sysdeps/sparc/bits/endianness.h
@@ -0,0 +1,16 @@
+#ifndef _BITS_ENDIANNESS_H
+#define _BITS_ENDIANNESS_H 1
+
+#ifndef _BITS_ENDIAN_H
+# error "Never use <bits/endianness.h> directly; include <endian.h> instead."
+#endif
+
+/* Sparc is big-endian, but v9 supports endian conversion on loads/stores
+ and GCC supports such a mode. Be prepared. */
+#ifdef __LITTLE_ENDIAN__
+# define __BYTE_ORDER __LITTLE_ENDIAN
+#else
+# define __BYTE_ORDER __BIG_ENDIAN
+#endif
+
+#endif /* bits/endianness.h */
diff --git a/sysdeps/sparc/bits/hwcap.h b/sysdeps/sparc/bits/hwcap.h
index a991029f02..1233bcb50e 100644
--- a/sysdeps/sparc/bits/hwcap.h
+++ b/sysdeps/sparc/bits/hwcap.h
@@ -1,5 +1,5 @@
/* Defines for bits in AT_HWCAP.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ 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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if !defined(_SYS_AUXV_H) && !defined(_SYSDEPS_SYSDEP_H)
# error "Never include <bits/hwcap.h> directly; use <sys/auxv.h> instead."
diff --git a/sysdeps/sparc/bits/link.h b/sysdeps/sparc/bits/link.h
index f4781a0107..5c9c292e7d 100644
--- a/sysdeps/sparc/bits/link.h
+++ b/sysdeps/sparc/bits/link.h
@@ -1,5 +1,5 @@
/* Machine-specific audit interfaces for dynamic linker. SPARC version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LINK_H
# error "Never include <bits/link.h> directly; use <link.h> instead."
diff --git a/sysdeps/sparc/configure b/sysdeps/sparc/configure
index bc6ac14e9f..491b00f0dc 100644
--- a/sysdeps/sparc/configure
+++ b/sysdeps/sparc/configure
@@ -1,41 +1,4 @@
# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/sparc.
-# Check for a GCC emitting GOTDATA relocations.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sparc gcc GOTDATA reloc support" >&5
-$as_echo_n "checking for sparc gcc GOTDATA reloc support... " >&6; }
-if ${libc_cv_sparc_gcc_gotdata+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat > conftest.c <<\EOF
-int data;
-int foo(void)
-{
- return data;
-}
-EOF
-libc_cv_sparc_gcc_gotdata=no
-if { ac_try='${CC-cc} -S $CFLAGS -O2 -fPIC conftest.c 1>&5'
- { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then
- if grep -q 'gdop_hix22' conftest.s \
- && grep -q 'gdop_lox10' conftest.s; then
- libc_cv_sparc_gcc_gotdata=yes
- fi
-fi
-rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_sparc_gcc_gotdata" >&5
-$as_echo "$libc_cv_sparc_gcc_gotdata" >&6; }
-if test $libc_cv_sparc_gcc_gotdata = yes; then
- $as_echo "#define HAVE_GCC_GOTDATA 1" >>confdefs.h
-
-fi
-
-if test $libc_cv_sparc_gcc_gotdata = yes; then
- $as_echo "#define PI_STATIC_AND_HIDDEN 1" >>confdefs.h
-
-fi
+$as_echo "#define PI_STATIC_AND_HIDDEN 1" >>confdefs.h
diff --git a/sysdeps/sparc/configure.ac b/sysdeps/sparc/configure.ac
index 43ad541464..5cdc0a984c 100644
--- a/sysdeps/sparc/configure.ac
+++ b/sysdeps/sparc/configure.ac
@@ -1,30 +1,4 @@
GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
# Local configure fragment for sysdeps/sparc.
-# Check for a GCC emitting GOTDATA relocations.
-AC_CACHE_CHECK(for sparc gcc GOTDATA reloc support, libc_cv_sparc_gcc_gotdata, [dnl
-changequote(,)dnl
-cat > conftest.c <<\EOF
-int data;
-int foo(void)
-{
- return data;
-}
-EOF
-changequote([,])dnl
-dnl
-libc_cv_sparc_gcc_gotdata=no
-if AC_TRY_COMMAND(${CC-cc} -S $CFLAGS -O2 -fPIC conftest.c 1>&AS_MESSAGE_LOG_FD); then
- if grep -q 'gdop_hix22' conftest.s \
- && grep -q 'gdop_lox10' conftest.s; then
- libc_cv_sparc_gcc_gotdata=yes
- fi
-fi
-rm -f conftest*])
-if test $libc_cv_sparc_gcc_gotdata = yes; then
- AC_DEFINE(HAVE_GCC_GOTDATA)
-fi
-
-if test $libc_cv_sparc_gcc_gotdata = yes; then
- AC_DEFINE(PI_STATIC_AND_HIDDEN)
-fi
+AC_DEFINE(PI_STATIC_AND_HIDDEN)
diff --git a/sysdeps/sparc/cpu_relax.c b/sysdeps/sparc/cpu_relax.c
new file mode 100644
index 0000000000..973dfb5935
--- /dev/null
+++ b/sysdeps/sparc/cpu_relax.c
@@ -0,0 +1,40 @@
+/* CPU strand yielding for busy loops. Linux/sparc version.
+ Copyright (C) 2017-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <sparc-ifunc.h>
+
+#ifdef __sparc_v9__
+static void
+__cpu_relax_generic (void)
+{
+ asm volatile ("rd %ccr, %g0;"
+ "rd %ccr, %g0;"
+ "rd %ccr, %g0");
+}
+
+static void
+__cpu_relax_pause (void)
+{
+ asm volatile ("wr %g0, 128, %asr27");
+}
+
+sparc_libc_ifunc (__cpu_relax,
+ hwcap & HWCAP_SPARC_PAUSE
+ ? __cpu_relax_pause
+ : __cpu_relax_generic)
+#endif
diff --git a/sysdeps/sparc/crti.S b/sysdeps/sparc/crti.S
index a7d1a08acc..0881b2e9da 100644
--- a/sysdeps/sparc/crti.S
+++ b/sysdeps/sparc/crti.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for sparc.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* crti.S puts a function prologue at the beginning of the .init and
.fini sections and defines global symbols for those addresses, so
diff --git a/sysdeps/sparc/crtn.S b/sysdeps/sparc/crtn.S
index ca98b1e10b..d92e9e2ede 100644
--- a/sysdeps/sparc/crtn.S
+++ b/sysdeps/sparc/crtn.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for sparc.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* crtn.S puts function epilogues in the .init and .fini sections
corresponding to the prologues in crti.S. */
diff --git a/sysdeps/sparc/dl-dtprocnum.h b/sysdeps/sparc/dl-dtprocnum.h
index 8362b7264a..a8f3140f32 100644
--- a/sysdeps/sparc/dl-dtprocnum.h
+++ b/sysdeps/sparc/dl-dtprocnum.h
@@ -1,5 +1,5 @@
/* Configuration of lookup functions. SPARC version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Number of extra dynamic section entries for this architecture. By
default there are none. */
diff --git a/sysdeps/sparc/dl-procinfo.c b/sysdeps/sparc/dl-procinfo.c
index 73c4298ff5..afeaf5eeb0 100644
--- a/sysdeps/sparc/dl-procinfo.c
+++ b/sysdeps/sparc/dl-procinfo.c
@@ -1,5 +1,5 @@
/* Data for Linux/sparc version of processor capability information.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This information must be kept in sync with the _DL_HWCAP_COUNT
definition in procinfo.h.
diff --git a/sysdeps/sparc/dl-procinfo.h b/sysdeps/sparc/dl-procinfo.h
index 64a85d6c7f..92c431af16 100644
--- a/sysdeps/sparc/dl-procinfo.h
+++ b/sysdeps/sparc/dl-procinfo.h
@@ -1,5 +1,5 @@
/* Linux/sparc version of processor capability information handling macros.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jj@ultra.linux.cz>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DL_PROCINFO_H
#define _DL_PROCINFO_H 1
@@ -31,8 +31,8 @@ _dl_procinfo (unsigned int type, unsigned long int word)
{
int i;
- /* Fallback to unknown output mechanism. */
- if (type == AT_HWCAP2)
+ /* Fallback to generic output mechanism. */
+ if (type != AT_HWCAP)
return -1;
_dl_printf ("AT_HWCAP: ");
diff --git a/sysdeps/sparc/dl-sysdep.h b/sysdeps/sparc/dl-sysdep.h
index e8678cc55a..2e58b3f1c0 100644
--- a/sysdeps/sparc/dl-sysdep.h
+++ b/sysdeps/sparc/dl-sysdep.h
@@ -1,5 +1,5 @@
/* System-specific settings for dynamic linker code. SPARC version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include_next <dl-sysdep.h>
diff --git a/sysdeps/sparc/dl-tls.h b/sysdeps/sparc/dl-tls.h
index 048d232237..c9119dce76 100644
--- a/sysdeps/sparc/dl-tls.h
+++ b/sysdeps/sparc/dl-tls.h
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. SPARC version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Type used for the representation of TLS information in the GOT. */
diff --git a/sysdeps/sparc/fpu/bits/fenv.h b/sysdeps/sparc/fpu/bits/fenv.h
index 7f978423f2..479d61b521 100644
--- a/sysdeps/sparc/fpu/bits/fenv.h
+++ b/sysdeps/sparc/fpu/bits/fenv.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FENV_H
# error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
@@ -92,7 +92,7 @@ typedef unsigned long int fenv_t;
# define __fenv_ldfsr(X) __asm__ __volatile__ ("ld %0,%%fsr" : : "m" (X))
#endif
-#if __GLIBC_USE (IEC_60559_BFP_EXT)
+#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
/* Type representing floating-point control modes. */
typedef unsigned long int femode_t;
diff --git a/sysdeps/sparc/fpu/fclrexcpt.c b/sysdeps/sparc/fpu/fclrexcpt.c
index 87961d71dd..e8b9c0848a 100644
--- a/sysdeps/sparc/fpu/fclrexcpt.c
+++ b/sysdeps/sparc/fpu/fclrexcpt.c
@@ -1,5 +1,5 @@
/* Clear given exceptions in current floating-point environment.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <shlib-compat.h>
diff --git a/sysdeps/sparc/fpu/fedisblxcpt.c b/sysdeps/sparc/fpu/fedisblxcpt.c
index 6321e7f188..136fa7e233 100644
--- a/sysdeps/sparc/fpu/fedisblxcpt.c
+++ b/sysdeps/sparc/fpu/fedisblxcpt.c
@@ -1,5 +1,5 @@
/* Disable floating-point exceptions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/sparc/fpu/feenablxcpt.c b/sysdeps/sparc/fpu/feenablxcpt.c
index 94eda112a9..76e6ca02fa 100644
--- a/sysdeps/sparc/fpu/feenablxcpt.c
+++ b/sysdeps/sparc/fpu/feenablxcpt.c
@@ -1,5 +1,5 @@
/* Enable floating-point exceptions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/sparc/fpu/fegetenv.c b/sysdeps/sparc/fpu/fegetenv.c
index 25af627589..37bf3d222b 100644
--- a/sysdeps/sparc/fpu/fegetenv.c
+++ b/sysdeps/sparc/fpu/fegetenv.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <shlib-compat.h>
diff --git a/sysdeps/sparc/fpu/fegetexcept.c b/sysdeps/sparc/fpu/fegetexcept.c
index 0078bf6d7a..be20e0c4a4 100644
--- a/sysdeps/sparc/fpu/fegetexcept.c
+++ b/sysdeps/sparc/fpu/fegetexcept.c
@@ -1,5 +1,5 @@
/* Get enabled floating-point exceptions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/sparc/fpu/fegetmode.c b/sysdeps/sparc/fpu/fegetmode.c
index 9fd50ec7a1..722f604fd5 100644
--- a/sysdeps/sparc/fpu/fegetmode.c
+++ b/sysdeps/sparc/fpu/fegetmode.c
@@ -1,5 +1,5 @@
/* Store current floating-point control modes. SPARC version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/sparc/fpu/fegetround.c b/sysdeps/sparc/fpu/fegetround.c
index ece7a713d5..cff44b199e 100644
--- a/sysdeps/sparc/fpu/fegetround.c
+++ b/sysdeps/sparc/fpu/fegetround.c
@@ -1,5 +1,5 @@
/* Return current rounding direction.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/sparc/fpu/feholdexcpt.c b/sysdeps/sparc/fpu/feholdexcpt.c
index 53f8b67096..7f5806dc47 100644
--- a/sysdeps/sparc/fpu/feholdexcpt.c
+++ b/sysdeps/sparc/fpu/feholdexcpt.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment and clear exceptions.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/sparc/fpu/fenv_private.h b/sysdeps/sparc/fpu/fenv_private.h
index 29b5d123cf..dbd1001ccb 100644
--- a/sysdeps/sparc/fpu/fenv_private.h
+++ b/sysdeps/sparc/fpu/fenv_private.h
@@ -1,5 +1,5 @@
-#ifndef FENV_PRIVATE_H
-#define FENV_PRIVATE_H 1
+#ifndef SPARC_FENV_PRIVATE_H
+#define SPARC_FENV_PRIVATE_H 1
#include <fenv.h>
@@ -179,4 +179,6 @@ libc_feholdsetround_sparc_ctx (struct rm_ctx *ctx, int round)
#define libc_feholdsetroundf_ctx libc_feholdsetround_sparc_ctx
#define libc_feholdsetroundl_ctx libc_feholdsetround_sparc_ctx
-#endif /* FENV_PRIVATE_H */
+#include_next <fenv_private.h>
+
+#endif /* SPARC_FENV_PRIVATE_H */
diff --git a/sysdeps/sparc/fpu/fesetenv.c b/sysdeps/sparc/fpu/fesetenv.c
index 297015da0c..f159166040 100644
--- a/sysdeps/sparc/fpu/fesetenv.c
+++ b/sysdeps/sparc/fpu/fesetenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <shlib-compat.h>
diff --git a/sysdeps/sparc/fpu/fesetexcept.c b/sysdeps/sparc/fpu/fesetexcept.c
index 6a7ff60fbd..a778a70e3b 100644
--- a/sysdeps/sparc/fpu/fesetexcept.c
+++ b/sysdeps/sparc/fpu/fesetexcept.c
@@ -1,5 +1,5 @@
/* Set given exception flags. SPARC version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/sparc/fpu/fesetmode.c b/sysdeps/sparc/fpu/fesetmode.c
index 49929545c5..a6c86d3da4 100644
--- a/sysdeps/sparc/fpu/fesetmode.c
+++ b/sysdeps/sparc/fpu/fesetmode.c
@@ -1,5 +1,5 @@
/* Install given floating-point control modes. SPARC version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/sparc/fpu/fesetround.c b/sysdeps/sparc/fpu/fesetround.c
index 2d538f5856..60c1a7d4af 100644
--- a/sysdeps/sparc/fpu/fesetround.c
+++ b/sysdeps/sparc/fpu/fesetround.c
@@ -1,5 +1,5 @@
/* Set current rounding direction.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/sparc/fpu/feupdateenv.c b/sysdeps/sparc/fpu/feupdateenv.c
index 2c06882fdd..5e26acb94b 100644
--- a/sysdeps/sparc/fpu/feupdateenv.c
+++ b/sysdeps/sparc/fpu/feupdateenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment and raise exceptions.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <shlib-compat.h>
diff --git a/sysdeps/sparc/fpu/fgetexcptflg.c b/sysdeps/sparc/fpu/fgetexcptflg.c
index 5e34db1a5e..c0badb334f 100644
--- a/sysdeps/sparc/fpu/fgetexcptflg.c
+++ b/sysdeps/sparc/fpu/fgetexcptflg.c
@@ -1,5 +1,5 @@
/* Store current representation for exceptions.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <shlib-compat.h>
diff --git a/sysdeps/sparc/fpu/fpu_control.h b/sysdeps/sparc/fpu/fpu_control.h
index fbd7c75530..af29e782c0 100644
--- a/sysdeps/sparc/fpu/fpu_control.h
+++ b/sysdeps/sparc/fpu/fpu_control.h
@@ -1,5 +1,5 @@
/* FPU control word bits. SPARC version.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Miguel de Icaza
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FPU_CONTROL_H
#define _FPU_CONTROL_H 1
diff --git a/sysdeps/sparc/fpu/fraiseexcpt.c b/sysdeps/sparc/fpu/fraiseexcpt.c
index 964c4f4ab2..79c028ecc9 100644
--- a/sysdeps/sparc/fpu/fraiseexcpt.c
+++ b/sysdeps/sparc/fpu/fraiseexcpt.c
@@ -1,5 +1,5 @@
/* Raise given exceptions.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <float.h>
diff --git a/sysdeps/sparc/fpu/fsetexcptflg.c b/sysdeps/sparc/fpu/fsetexcptflg.c
index 634b60d216..63cef78b0a 100644
--- a/sysdeps/sparc/fpu/fsetexcptflg.c
+++ b/sysdeps/sparc/fpu/fsetexcptflg.c
@@ -1,5 +1,5 @@
/* Set floating-point environment exception handling.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <math.h>
diff --git a/sysdeps/sparc/fpu/ftestexcept.c b/sysdeps/sparc/fpu/ftestexcept.c
index a31689431a..c7654658d4 100644
--- a/sysdeps/sparc/fpu/ftestexcept.c
+++ b/sysdeps/sparc/fpu/ftestexcept.c
@@ -1,5 +1,5 @@
/* Test exception in current environment.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/sparc/fpu/libm-test-ulps b/sysdeps/sparc/fpu/libm-test-ulps
index 84aed3a4e2..7fc00f2ceb 100644
--- a/sysdeps/sparc/fpu/libm-test-ulps
+++ b/sysdeps/sparc/fpu/libm-test-ulps
@@ -712,9 +712,9 @@ ildouble: 2
ldouble: 2
Function: Imaginary part of "ccos_downward":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
@@ -728,9 +728,9 @@ ildouble: 2
ldouble: 2
Function: Imaginary part of "ccos_towardzero":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
@@ -768,33 +768,33 @@ ildouble: 1
ldouble: 1
Function: Real part of "ccosh_downward":
-double: 1
+double: 2
float: 3
-idouble: 1
+idouble: 2
ifloat: 3
ildouble: 2
ldouble: 2
Function: Imaginary part of "ccosh_downward":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
Function: Real part of "ccosh_towardzero":
-double: 1
+double: 2
float: 3
-idouble: 1
+idouble: 2
ifloat: 3
ildouble: 2
ldouble: 2
Function: Imaginary part of "ccosh_towardzero":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
@@ -832,33 +832,33 @@ ildouble: 1
ldouble: 1
Function: Real part of "cexp_downward":
-double: 1
+double: 2
float: 2
-idouble: 1
+idouble: 2
ifloat: 2
ildouble: 2
ldouble: 2
Function: Imaginary part of "cexp_downward":
-double: 1
+double: 3
float: 3
-idouble: 1
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
Function: Real part of "cexp_towardzero":
-double: 1
+double: 2
float: 2
-idouble: 1
+idouble: 2
ifloat: 2
ildouble: 2
ldouble: 2
Function: Imaginary part of "cexp_towardzero":
-double: 1
+double: 3
float: 3
-idouble: 1
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
@@ -872,9 +872,9 @@ ildouble: 3
ldouble: 3
Function: Imaginary part of "cexp_upward":
-double: 1
+double: 3
float: 2
-idouble: 1
+idouble: 3
ifloat: 2
ildouble: 3
ldouble: 3
@@ -1046,25 +1046,25 @@ ildouble: 1
ldouble: 1
Function: "cosh_downward":
-double: 1
+double: 2
float: 1
-idouble: 1
+idouble: 2
ifloat: 1
ildouble: 1
ldouble: 2
Function: "cosh_towardzero":
-double: 1
+double: 2
float: 1
-idouble: 1
+idouble: 2
ifloat: 1
ildouble: 1
ldouble: 2
Function: "cosh_upward":
-double: 1
+double: 2
float: 2
-idouble: 1
+idouble: 2
ifloat: 2
ildouble: 1
ldouble: 3
@@ -1084,9 +1084,9 @@ ildouble: 1
ldouble: 1
Function: Real part of "cpow_downward":
-double: 4
+double: 5
float: 8
-idouble: 4
+idouble: 5
ifloat: 8
ildouble: 6
ldouble: 6
@@ -1100,9 +1100,9 @@ ildouble: 2
ldouble: 2
Function: Real part of "cpow_towardzero":
-double: 4
+double: 5
float: 8
-idouble: 4
+idouble: 5
ifloat: 8
ildouble: 6
ldouble: 6
@@ -1144,9 +1144,9 @@ ildouble: 1
ldouble: 1
Function: Real part of "csin_downward":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
@@ -1160,9 +1160,9 @@ ildouble: 3
ldouble: 3
Function: Real part of "csin_towardzero":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
@@ -1214,9 +1214,9 @@ ildouble: 3
ldouble: 3
Function: Imaginary part of "csinh_downward":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 2
ldouble: 2
@@ -1230,9 +1230,9 @@ ildouble: 3
ldouble: 3
Function: Imaginary part of "csinh_towardzero":
-double: 2
+double: 3
float: 3
-idouble: 2
+idouble: 3
ifloat: 3
ildouble: 3
ldouble: 3
@@ -1522,17 +1522,17 @@ ildouble: 2
ldouble: 2
Function: "exp10_downward":
-double: 2
+double: 3
float: 1
-idouble: 2
+idouble: 3
ifloat: 1
ildouble: 3
ldouble: 3
Function: "exp10_towardzero":
-double: 2
+double: 3
float: 1
-idouble: 2
+idouble: 3
ifloat: 1
ildouble: 3
ldouble: 3
diff --git a/sysdeps/sparc/fpu/math_private.h b/sysdeps/sparc/fpu/math_private.h
deleted file mode 100644
index 27946cec7b..0000000000
--- a/sysdeps/sparc/fpu/math_private.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#ifndef SPARC_MATH_PRIVATE_H
-#define SPARC_MATH_PRIVATE_H 1
-
-#include "fenv_private.h"
-#include_next <math_private.h>
-
-#endif /* SPARC_MATH_PRIVATE_H */
diff --git a/sysdeps/sparc/gccframe.h b/sysdeps/sparc/gccframe.h
index c4e6a9ca8f..a5cfd3a12e 100644
--- a/sysdeps/sparc/gccframe.h
+++ b/sysdeps/sparc/gccframe.h
@@ -1,5 +1,5 @@
/* Definition of object in frame unwind info. sparc version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define FIRST_PSEUDO_REGISTER 101
diff --git a/sysdeps/sparc/ldsodefs.h b/sysdeps/sparc/ldsodefs.h
index 3365550b5f..88e559cca1 100644
--- a/sysdeps/sparc/ldsodefs.h
+++ b/sysdeps/sparc/ldsodefs.h
@@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SPARC_LDSODEFS_H
#define _SPARC_LDSODEFS_H 1
diff --git a/sysdeps/sparc/machine-gmon.h b/sysdeps/sparc/machine-gmon.h
index 5b07916111..9c6f7ee810 100644
--- a/sysdeps/sparc/machine-gmon.h
+++ b/sysdeps/sparc/machine-gmon.h
@@ -1,5 +1,5 @@
/* sparc-specific implementation of profiling support.
- Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ Copyright (C) 2008-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller <davem@davemloft.net>, 2008
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/memusage.h b/sysdeps/sparc/memusage.h
index 0ed392e95f..2fcd0d1eae 100644
--- a/sysdeps/sparc/memusage.h
+++ b/sysdeps/sparc/memusage.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define GETSP() ({ register uintptr_t stack_ptr asm ("%sp"); stack_ptr; })
diff --git a/sysdeps/sparc/nptl/bits/pthreadtypes-arch.h b/sysdeps/sparc/nptl/bits/pthreadtypes-arch.h
deleted file mode 100644
index 3effddeb43..0000000000
--- a/sysdeps/sparc/nptl/bits/pthreadtypes-arch.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/* Machine-specific pthread type layouts. SPARC version.
- Copyright (C) 2003-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _BITS_PTHREADTYPES_ARCH_H
-#define _BITS_PTHREADTYPES_ARCH_H 1
-
-#include <bits/wordsize.h>
-
-#if __WORDSIZE == 64
-# define __SIZEOF_PTHREAD_ATTR_T 56
-# define __SIZEOF_PTHREAD_MUTEX_T 40
-# define __SIZEOF_PTHREAD_CONDATTR_T 4
-# define __SIZEOF_PTHREAD_RWLOCK_T 56
-# define __SIZEOF_PTHREAD_BARRIER_T 32
-#else
-# define __SIZEOF_PTHREAD_ATTR_T 36
-# define __SIZEOF_PTHREAD_MUTEX_T 24
-# define __SIZEOF_PTHREAD_CONDATTR_T 4
-# define __SIZEOF_PTHREAD_RWLOCK_T 32
-# define __SIZEOF_PTHREAD_BARRIER_T 20
-#endif
-#define __SIZEOF_PTHREAD_MUTEXATTR_T 4
-#define __SIZEOF_PTHREAD_COND_T 48
-#define __SIZEOF_PTHREAD_RWLOCKATTR_T 8
-#define __SIZEOF_PTHREAD_BARRIERATTR_T 4
-
-/* Definitions for internal mutex struct. */
-#define __PTHREAD_COMPAT_PADDING_MID
-#define __PTHREAD_COMPAT_PADDING_END
-#define __PTHREAD_MUTEX_LOCK_ELISION 0
-#define __PTHREAD_MUTEX_NUSERS_AFTER_KIND (__WORDSIZE != 64)
-#define __PTHREAD_MUTEX_USE_UNION (__WORDSIZE != 64)
-
-#define __LOCK_ALIGNMENT
-#define __ONCE_ALIGNMENT
-
-struct __pthread_rwlock_arch_t
-{
- unsigned int __readers;
- unsigned int __writers;
- unsigned int __wrphase_futex;
- unsigned int __writers_futex;
- unsigned int __pad3;
- unsigned int __pad4;
-#if __WORDSIZE == 64
- int __cur_writer;
- int __shared;
- unsigned long int __pad1;
- unsigned long int __pad2;
- /* FLAGS must stay at this position in the structure to maintain
- binary compatibility. */
- unsigned int __flags;
-#else
- unsigned char __pad1;
- unsigned char __pad2;
- unsigned char __shared;
- /* FLAGS must stay at this position in the structure to maintain
- binary compatibility. */
- unsigned char __flags;
- int __cur_writer;
-#endif
-};
-
-#define __PTHREAD_RWLOCK_ELISION_EXTRA 0
-
-#endif /* bits/pthreadtypes.h */
diff --git a/sysdeps/sparc/nptl/bits/semaphore.h b/sysdeps/sparc/nptl/bits/semaphore.h
index aeac74c9c7..ae01fa0af5 100644
--- a/sysdeps/sparc/nptl/bits/semaphore.h
+++ b/sysdeps/sparc/nptl/bits/semaphore.h
@@ -1,5 +1,5 @@
/* Machine-specific POSIX semaphore type layouts. SPARC version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SEMAPHORE_H
# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
diff --git a/sysdeps/sparc/nptl/bits/struct_rwlock.h b/sysdeps/sparc/nptl/bits/struct_rwlock.h
new file mode 100644
index 0000000000..8d3e799f46
--- /dev/null
+++ b/sysdeps/sparc/nptl/bits/struct_rwlock.h
@@ -0,0 +1,58 @@
+/* SPARC internal rwlock struct definitions.
+ 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; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _RWLOCK_INTERNAL_H
+#define _RWLOCK_INTERNAL_H
+
+struct __pthread_rwlock_arch_t
+{
+ unsigned int __readers;
+ unsigned int __writers;
+ unsigned int __wrphase_futex;
+ unsigned int __writers_futex;
+ unsigned int __pad3;
+ unsigned int __pad4;
+#if __WORDSIZE == 64
+ int __cur_writer;
+ int __shared;
+ unsigned long int __pad1;
+ unsigned long int __pad2;
+ /* FLAGS must stay at this position in the structure to maintain
+ binary compatibility. */
+ unsigned int __flags;
+#else
+ unsigned char __pad1;
+ unsigned char __pad2;
+ unsigned char __shared;
+ /* FLAGS must stay at this position in the structure to maintain
+ binary compatibility. */
+ unsigned char __flags;
+ int __cur_writer;
+#endif
+};
+
+#if __WORDSIZE == 64
+# define __PTHREAD_RWLOCK_INITIALIZER(__flags) \
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, __flags
+#else
+# define __PTHREAD_RWLOCK_INITIALIZER(__flags) \
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, __flags, 0
+#endif
+
+#endif
diff --git a/sysdeps/sparc/nptl/pthread-offsets.h b/sysdeps/sparc/nptl/pthread-offsets.h
deleted file mode 100644
index bdda1f197e..0000000000
--- a/sysdeps/sparc/nptl/pthread-offsets.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#include <bits/wordsize.h>
-
-#if __WORDSIZE == 64
-# define __PTHREAD_MUTEX_NUSERS_OFFSET 12
-# define __PTHREAD_MUTEX_KIND_OFFSET 16
-# define __PTHREAD_MUTEX_SPINS_OFFSET 20
-# define __PTHREAD_MUTEX_ELISION_OFFSET 22
-# define __PTHREAD_MUTEX_LIST_OFFSET 24
-#else
-# define __PTHREAD_MUTEX_NUSERS_OFFSET 16
-# define __PTHREAD_MUTEX_KIND_OFFSET 12
-# define __PTHREAD_MUTEX_SPINS_OFFSET 20
-# define __PTHREAD_MUTEX_ELISION_OFFSET 22
-# define __PTHREAD_MUTEX_LIST_OFFSET 20
-#endif
diff --git a/sysdeps/sparc/nptl/tls.h b/sysdeps/sparc/nptl/tls.h
index 2a79868ee2..57766943eb 100644
--- a/sysdeps/sparc/nptl/tls.h
+++ b/sysdeps/sparc/nptl/tls.h
@@ -1,5 +1,5 @@
/* Definitions for thread-local data handling. NPTL/sparc version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _TLS_H
#define _TLS_H
diff --git a/sysdeps/sparc/preconfigure b/sysdeps/sparc/preconfigure
index de86749573..5628746217 100644
--- a/sysdeps/sparc/preconfigure
+++ b/sysdeps/sparc/preconfigure
@@ -1,24 +1,10 @@
# preconfigure fragment for sparc.
case "$machine" in
-sparc | sparcv[67])
+sparc | sparcv8 | supersparc | hypersparc)
base_machine=sparc machine=sparc/sparc32 ;;
-sparcv8 | supersparc | hypersparc)
- base_machine=sparc machine=sparc/sparc32/sparcv8 ;;
-sparcv8plus | sparcv8plusa | sparcv9)
+sparcv8plus* | sparcv9*)
base_machine=sparc machine=sparc/sparc32/sparcv9 ;;
-sparcv8plusb | sparcv9b)
- base_machine=sparc machine=sparc/sparc32/sparcv9/sparcv9b ;;
-sparcv9v)
- base_machine=sparc machine=sparc/sparc32/sparcv9/sparcv9v ;;
-sparcv9v2)
- base_machine=sparc machine=sparc/sparc32/sparcv9/sparcv9v2 ;;
-sparc64)
+sparc64*)
base_machine=sparc machine=sparc/sparc64 ;;
-sparc64b)
- base_machine=sparc machine=sparc/sparc64/sparcv9b ;;
-sparc64v)
- base_machine=sparc machine=sparc/sparc64/sparcv9v ;;
-sparc64v2)
- base_machine=sparc machine=sparc/sparc64/sparcv9v2 ;;
esac
diff --git a/sysdeps/sparc/sparc-ifunc.h b/sysdeps/sparc/sparc-ifunc.h
index 561aeea2f8..ccefe16055 100644
--- a/sysdeps/sparc/sparc-ifunc.h
+++ b/sysdeps/sparc/sparc-ifunc.h
@@ -1,5 +1,5 @@
/* This file is part of the GNU C Library.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
@@ -35,7 +35,8 @@
#if defined SHARED
# define sparc_ifunc_redirected_hidden_def(redirect_name, name) \
__hidden_ver1 (name, __GI_##name, redirect_name) \
- __attribute__ ((visibility ("hidden")));
+ __attribute__ ((visibility ("hidden"))) \
+ __attribute_copy__ (name);
#else
# define sparc_ifunc_redirected_hidden_def(redirect_name, name)
#endif
diff --git a/sysdeps/sparc/sparc-mcount.S b/sysdeps/sparc/sparc-mcount.S
index 9c08464f6b..eaace1b8b5 100644
--- a/sysdeps/sparc/sparc-mcount.S
+++ b/sysdeps/sparc/sparc-mcount.S
@@ -1,5 +1,5 @@
/* sparc-specific implementation of profiling support.
- Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ Copyright (C) 2008-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller <davem@davemloft.net>, 2008.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc32/Makefile b/sysdeps/sparc/sparc32/Makefile
index 6a1b3716eb..008cb81548 100644
--- a/sysdeps/sparc/sparc32/Makefile
+++ b/sysdeps/sparc/sparc32/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1991-2018 Free Software Foundation, Inc.
+# Copyright (C) 1991-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
@@ -13,41 +13,14 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
ifeq ($(subdir),gnulib)
sysdep_routines = dotmul umul $(divrem) alloca
endif # gnulib
-# We distribute these files, even though they are generated,
-# so as to avoid the need for a functioning m4 to build the library.
divrem := sdiv udiv rem urem
-+divrem-NAME-sdiv := div
-+divrem-NAME-udiv := udiv
-+divrem-NAME-rem := rem
-+divrem-NAME-urem := urem
-+divrem-NAME = $(+divrem-NAME-$(basename $(notdir $@)))
-+divrem-OP-div := div
-+divrem-OP-udiv := div
-+divrem-OP-rem := rem
-+divrem-OP-urem := rem
-+divrem-S-div := true
-+divrem-S-rem := true
-+divrem-S-udiv := false
-+divrem-S-urem := false
-$(divrem:%=$(sysdep_dir)/sparc/sparc32/%.S): $(sysdep_dir)/sparc/sparc32/divrem.m4
- (echo -n "define(NAME,\`.$(+divrem-NAME)')"; \
- echo -n " define(OP,\`$(+divrem-OP-$(+divrem-NAME))')"; \
- echo -n " define(S,\`$(+divrem-S-$(+divrem-NAME))')"; \
- echo " /* This file is generated from divrem.m4; DO NOT EDIT! */"; \
- cat $<) | $(M4) > $@-tmp
-# Make it unwritable so noone will edit it by mistake.
- -chmod a-w $@-tmp
- mv -f $@-tmp $@
-
-sysdep-realclean := $(sysdep-realclean) $(divrem:%=sysdeps/sparc/sparc32/%.S)
-
# libgcc __divdi3 and __moddi3 uses .udiv and since it is also exported by
# libc.so linker will create PLTs for the symbol. To avoid it we strong alias
# the exported libc one to __wrap_.udiv and use linker option --wrap to make any
diff --git a/sysdeps/sparc/sparc32/__longjmp.S b/sysdeps/sparc/sparc32/__longjmp.S
index 8abb8ed7ff..934321fced 100644
--- a/sysdeps/sparc/sparc32/__longjmp.S
+++ b/sysdeps/sparc/sparc32/__longjmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc32/add_n.S b/sysdeps/sparc/sparc32/add_n.S
index 2fae8b9c32..ac1fbff8d7 100644
--- a/sysdeps/sparc/sparc32/add_n.S
+++ b/sysdeps/sparc/sparc32/add_n.S
@@ -1,7 +1,7 @@
! SPARC __mpn_add_n -- Add two limb vectors of the same length > 0 and store
! sum in a third limb vector.
!
-! Copyright (C) 1995-2018 Free Software Foundation, Inc.
+! Copyright (C) 1995-2019 Free Software Foundation, Inc.
!
! This file is part of the GNU MP Library.
!
@@ -17,7 +17,7 @@
!
! You should have received a copy of the GNU Lesser General Public License
! along with the GNU MP Library; see the file COPYING.LIB. If not,
-! see <http://www.gnu.org/licenses/>.
+! see <https://www.gnu.org/licenses/>.
! INPUT PARAMETERS
diff --git a/sysdeps/sparc/sparc32/addmul_1.S b/sysdeps/sparc/sparc32/addmul_1.S
index bbabe1ffcd..4708393aa5 100644
--- a/sysdeps/sparc/sparc32/addmul_1.S
+++ b/sysdeps/sparc/sparc32/addmul_1.S
@@ -1,146 +1,118 @@
-! SPARC __mpn_addmul_1 -- Multiply a limb vector with a limb and add
-! the result to a second limb vector.
-!
-! Copyright (C) 1992-2018 Free Software Foundation, Inc.
-!
+! SPARC v8 __mpn_addmul_1 -- Multiply a limb vector with a limb and
+! add the result to a second limb vector.
+
+! Copyright (C) 1992-2019 Free Software Foundation, Inc.
+
! This file is part of the GNU MP Library.
-!
+
! The GNU MP 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 MP 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 MP Library; see the file COPYING.LIB. If not,
-! see <http://www.gnu.org/licenses/>.
+! see <https://www.gnu.org/licenses/>.
! INPUT PARAMETERS
-! RES_PTR o0
-! S1_PTR o1
-! SIZE o2
-! S2_LIMB o3
+! res_ptr o0
+! s1_ptr o1
+! size o2
+! s2_limb o3
#include <sysdep.h>
ENTRY(__mpn_addmul_1)
- ! Make S1_PTR and RES_PTR point at the end of their blocks
- ! and put (- 4 x SIZE) in index/loop counter.
- sll %o2,2,%o2
- add %o0,%o2,%o4 ! RES_PTR in o4 since o0 is retval
- add %o1,%o2,%o1
- sub %g0,%o2,%o2
+ ld [%o1+0],%o4 ! 1
+ sll %o2,4,%g1
+ orcc %g0,%g0,%g2
+ mov %o7,%g4 ! Save return address register
+ and %g1,(4-1)<<4,%g1
+1: call 2f
+ add %o7,3f-1b,%g3
+2: jmp %g3+%g1
+ mov %g4,%o7 ! Restore return address register
- cmp %o3,0xfff
- bgu LOC(large)
+ .align 4
+3:
+LOC(00):
+ add %o0,-4,%o0
+ b LOC(loop00) /* 4, 8, 12, ... */
+ add %o1,-4,%o1
+ nop
+LOC(01):
+ b LOC(loop01) /* 1, 5, 9, ... */
+ nop
+ nop
+ nop
+LOC(10):
+ add %o0,-12,%o0 /* 2, 6, 10, ... */
+ b LOC(loop10)
+ add %o1,4,%o1
+ nop
+LOC(11):
+ add %o0,-8,%o0 /* 3, 7, 11, ... */
+ b LOC(loop11)
+ add %o1,-8,%o1
nop
- ld [%o1+%o2],%o5
- mov 0,%o0
- b LOC(0)
- add %o4,-4,%o4
-LOC(loop0):
- addcc %o5,%g1,%g1
- ld [%o1+%o2],%o5
- addx %o0,%g0,%o0
- st %g1,[%o4+%o2]
-LOC(0): wr %g0,%o3,%y
- sra %o5,31,%g2
- and %o3,%g2,%g2
- andcc %g1,0,%g1
- mulscc %g1,%o5,%g1
- mulscc %g1,%o5,%g1
- mulscc %g1,%o5,%g1
- mulscc %g1,%o5,%g1
- mulscc %g1,%o5,%g1
- mulscc %g1,%o5,%g1
- mulscc %g1,%o5,%g1
- mulscc %g1,%o5,%g1
- mulscc %g1,%o5,%g1
- mulscc %g1,%o5,%g1
- mulscc %g1,%o5,%g1
- mulscc %g1,%o5,%g1
- mulscc %g1,0,%g1
- sra %g1,20,%g4
- sll %g1,12,%g1
- rd %y,%g3
- srl %g3,20,%g3
- or %g1,%g3,%g1
-
- addcc %g1,%o0,%g1
- addx %g2,%g4,%o0 ! add sign-compensation and cy to hi limb
- addcc %o2,4,%o2 ! loop counter
- bne LOC(loop0)
- ld [%o4+%o2],%o5
-
- addcc %o5,%g1,%g1
- addx %o0,%g0,%o0
- retl
- st %g1,[%o4+%o2]
-
-
-LOC(large):
- ld [%o1+%o2],%o5
- mov 0,%o0
- sra %o3,31,%g4 ! g4 = mask of ones iff S2_LIMB < 0
- b LOC(1)
- add %o4,-4,%o4
LOC(loop):
- addcc %o5,%g3,%g3
- ld [%o1+%o2],%o5
- addx %o0,%g0,%o0
- st %g3,[%o4+%o2]
-LOC(1): wr %g0,%o5,%y
- and %o5,%g4,%g2
- andcc %g0,%g0,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%g0,%g1
- rd %y,%g3
- addcc %g3,%o0,%g3
- addx %g2,%g1,%o0
- addcc %o2,4,%o2
- bne LOC(loop)
- ld [%o4+%o2],%o5
+ addcc %g3,%g2,%g3 ! 1
+ ld [%o1+4],%o4 ! 2
+ rd %y,%g2 ! 1
+ addx %g0,%g2,%g2
+ ld [%o0+0],%g1 ! 2
+ addcc %g1,%g3,%g3
+ st %g3,[%o0+0] ! 1
+LOC(loop00):
+ umul %o4,%o3,%g3 ! 2
+ ld [%o0+4],%g1 ! 2
+ addxcc %g3,%g2,%g3 ! 2
+ ld [%o1+8],%o4 ! 3
+ rd %y,%g2 ! 2
+ addx %g0,%g2,%g2
+ nop
+ addcc %g1,%g3,%g3
+ st %g3,[%o0+4] ! 2
+LOC(loop11):
+ umul %o4,%o3,%g3 ! 3
+ addxcc %g3,%g2,%g3 ! 3
+ ld [%o1+12],%o4 ! 4
+ rd %y,%g2 ! 3
+ add %o1,16,%o1
+ addx %g0,%g2,%g2
+ ld [%o0+8],%g1 ! 2
+ addcc %g1,%g3,%g3
+ st %g3,[%o0+8] ! 3
+LOC(loop10):
+ umul %o4,%o3,%g3 ! 4
+ addxcc %g3,%g2,%g3 ! 4
+ ld [%o1+0],%o4 ! 1
+ rd %y,%g2 ! 4
+ addx %g0,%g2,%g2
+ ld [%o0+12],%g1 ! 2
+ addcc %g1,%g3,%g3
+ st %g3,[%o0+12] ! 4
+ add %o0,16,%o0
+ addx %g0,%g2,%g2
+LOC(loop01):
+ addcc %o2,-4,%o2
+ bg LOC(loop)
+ umul %o4,%o3,%g3 ! 1
- addcc %o5,%g3,%g3
- addx %o0,%g0,%o0
+ addcc %g3,%g2,%g3 ! 4
+ rd %y,%g2 ! 4
+ addx %g0,%g2,%g2
+ ld [%o0+0],%g1 ! 2
+ addcc %g1,%g3,%g3
+ st %g3,[%o0+0] ! 4
retl
- st %g3,[%o4+%o2]
+ addx %g0,%g2,%o0
END(__mpn_addmul_1)
diff --git a/sysdeps/sparc/sparc32/alloca.S b/sysdeps/sparc/sparc32/alloca.S
index b37a495367..e0a19c5cb7 100644
--- a/sysdeps/sparc/sparc32/alloca.S
+++ b/sysdeps/sparc/sparc32/alloca.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc32/atomic-machine.h b/sysdeps/sparc/sparc32/atomic-machine.h
deleted file mode 100644
index 31871dc344..0000000000
--- a/sysdeps/sparc/sparc32/atomic-machine.h
+++ /dev/null
@@ -1,363 +0,0 @@
-/* Atomic operations. sparc32 version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _ATOMIC_MACHINE_H
-#define _ATOMIC_MACHINE_H 1
-
-#include <stdint.h>
-
-typedef int8_t atomic8_t;
-typedef uint8_t uatomic8_t;
-typedef int_fast8_t atomic_fast8_t;
-typedef uint_fast8_t uatomic_fast8_t;
-
-typedef int16_t atomic16_t;
-typedef uint16_t uatomic16_t;
-typedef int_fast16_t atomic_fast16_t;
-typedef uint_fast16_t uatomic_fast16_t;
-
-typedef int32_t atomic32_t;
-typedef uint32_t uatomic32_t;
-typedef int_fast32_t atomic_fast32_t;
-typedef uint_fast32_t uatomic_fast32_t;
-
-typedef int64_t atomic64_t;
-typedef uint64_t uatomic64_t;
-typedef int_fast64_t atomic_fast64_t;
-typedef uint_fast64_t uatomic_fast64_t;
-
-typedef intptr_t atomicptr_t;
-typedef uintptr_t uatomicptr_t;
-typedef intmax_t atomic_max_t;
-typedef uintmax_t uatomic_max_t;
-
-#define __HAVE_64B_ATOMICS 0
-#define USE_ATOMIC_COMPILER_BUILTINS 0
-
-/* XXX Is this actually correct? */
-#define ATOMIC_EXCHANGE_USES_CAS 1
-
-
-/* We have no compare and swap, just test and set.
- The following implementation contends on 64 global locks
- per library and assumes no variable will be accessed using atomic.h
- macros from two different libraries. */
-
-__make_section_unallocated
- (".gnu.linkonce.b.__sparc32_atomic_locks, \"aw\", %nobits");
-
-volatile unsigned char __sparc32_atomic_locks[64]
- __attribute__ ((nocommon, section (".gnu.linkonce.b.__sparc32_atomic_locks"
- __sec_comment),
- visibility ("hidden")));
-
-#define __sparc32_atomic_do_lock(addr) \
- do \
- { \
- unsigned int __old_lock; \
- unsigned int __idx = (((long) addr >> 2) ^ ((long) addr >> 12)) \
- & 63; \
- do \
- __asm __volatile ("ldstub %1, %0" \
- : "=r" (__old_lock), \
- "=m" (__sparc32_atomic_locks[__idx]) \
- : "m" (__sparc32_atomic_locks[__idx]) \
- : "memory"); \
- while (__old_lock); \
- } \
- while (0)
-
-#define __sparc32_atomic_do_unlock(addr) \
- do \
- { \
- __sparc32_atomic_locks[(((long) addr >> 2) \
- ^ ((long) addr >> 12)) & 63] = 0; \
- __asm __volatile ("" ::: "memory"); \
- } \
- while (0)
-
-#define __sparc32_atomic_do_lock24(addr) \
- do \
- { \
- unsigned int __old_lock; \
- do \
- __asm __volatile ("ldstub %1, %0" \
- : "=r" (__old_lock), "=m" (*(addr)) \
- : "m" (*(addr)) \
- : "memory"); \
- while (__old_lock); \
- } \
- while (0)
-
-#define __sparc32_atomic_do_unlock24(addr) \
- do \
- { \
- __asm __volatile ("" ::: "memory"); \
- *(char *) (addr) = 0; \
- } \
- while (0)
-
-
-#ifndef SHARED
-# define __v9_compare_and_exchange_val_32_acq(mem, newval, oldval) \
-({union { __typeof (oldval) a; uint32_t v; } oldval_arg = { .a = (oldval) }; \
- union { __typeof (newval) a; uint32_t v; } newval_arg = { .a = (newval) }; \
- register uint32_t __acev_tmp __asm ("%g6"); \
- register __typeof (mem) __acev_mem __asm ("%g1") = (mem); \
- register uint32_t __acev_oldval __asm ("%g5"); \
- __acev_tmp = newval_arg.v; \
- __acev_oldval = oldval_arg.v; \
- /* .word 0xcde05005 is cas [%g1], %g5, %g6. Can't use cas here though, \
- because as will then mark the object file as V8+ arch. */ \
- __asm __volatile (".word 0xcde05005" \
- : "+r" (__acev_tmp), "=m" (*__acev_mem) \
- : "r" (__acev_oldval), "m" (*__acev_mem), \
- "r" (__acev_mem) : "memory"); \
- (__typeof (oldval)) __acev_tmp; })
-#endif
-
-/* The only basic operation needed is compare and exchange. */
-#define __v7_compare_and_exchange_val_acq(mem, newval, oldval) \
- ({ __typeof (mem) __acev_memp = (mem); \
- __typeof (*mem) __acev_ret; \
- __typeof (*mem) __acev_newval = (newval); \
- \
- __sparc32_atomic_do_lock (__acev_memp); \
- __acev_ret = *__acev_memp; \
- if (__acev_ret == (oldval)) \
- *__acev_memp = __acev_newval; \
- __sparc32_atomic_do_unlock (__acev_memp); \
- __acev_ret; })
-
-#define __v7_compare_and_exchange_bool_acq(mem, newval, oldval) \
- ({ __typeof (mem) __aceb_memp = (mem); \
- int __aceb_ret; \
- __typeof (*mem) __aceb_newval = (newval); \
- \
- __sparc32_atomic_do_lock (__aceb_memp); \
- __aceb_ret = 0; \
- if (*__aceb_memp == (oldval)) \
- *__aceb_memp = __aceb_newval; \
- else \
- __aceb_ret = 1; \
- __sparc32_atomic_do_unlock (__aceb_memp); \
- __aceb_ret; })
-
-#define __v7_exchange_acq(mem, newval) \
- ({ __typeof (mem) __acev_memp = (mem); \
- __typeof (*mem) __acev_ret; \
- __typeof (*mem) __acev_newval = (newval); \
- \
- __sparc32_atomic_do_lock (__acev_memp); \
- __acev_ret = *__acev_memp; \
- *__acev_memp = __acev_newval; \
- __sparc32_atomic_do_unlock (__acev_memp); \
- __acev_ret; })
-
-#define __v7_exchange_and_add(mem, value) \
- ({ __typeof (mem) __acev_memp = (mem); \
- __typeof (*mem) __acev_ret; \
- \
- __sparc32_atomic_do_lock (__acev_memp); \
- __acev_ret = *__acev_memp; \
- *__acev_memp = __acev_ret + (value); \
- __sparc32_atomic_do_unlock (__acev_memp); \
- __acev_ret; })
-
-/* Special versions, which guarantee that top 8 bits of all values
- are cleared and use those bits as the ldstub lock. */
-#define __v7_compare_and_exchange_val_24_acq(mem, newval, oldval) \
- ({ __typeof (mem) __acev_memp = (mem); \
- __typeof (*mem) __acev_ret; \
- __typeof (*mem) __acev_newval = (newval); \
- \
- __sparc32_atomic_do_lock24 (__acev_memp); \
- __acev_ret = *__acev_memp & 0xffffff; \
- if (__acev_ret == (oldval)) \
- *__acev_memp = __acev_newval; \
- else \
- __sparc32_atomic_do_unlock24 (__acev_memp); \
- __asm __volatile ("" ::: "memory"); \
- __acev_ret; })
-
-#define __v7_exchange_24_rel(mem, newval) \
- ({ __typeof (mem) __acev_memp = (mem); \
- __typeof (*mem) __acev_ret; \
- __typeof (*mem) __acev_newval = (newval); \
- \
- __sparc32_atomic_do_lock24 (__acev_memp); \
- __acev_ret = *__acev_memp & 0xffffff; \
- *__acev_memp = __acev_newval; \
- __asm __volatile ("" ::: "memory"); \
- __acev_ret; })
-
-#ifdef SHARED
-
-/* When dynamically linked, we assume pre-v9 libraries are only ever
- used on pre-v9 CPU. */
-# define __atomic_is_v9 0
-
-# define atomic_compare_and_exchange_val_acq(mem, newval, oldval) \
- __v7_compare_and_exchange_val_acq (mem, newval, oldval)
-
-# define atomic_compare_and_exchange_bool_acq(mem, newval, oldval) \
- __v7_compare_and_exchange_bool_acq (mem, newval, oldval)
-
-# define atomic_exchange_acq(mem, newval) \
- __v7_exchange_acq (mem, newval)
-
-# define atomic_exchange_and_add(mem, value) \
- __v7_exchange_and_add (mem, value)
-
-# define atomic_compare_and_exchange_val_24_acq(mem, newval, oldval) \
- ({ \
- if (sizeof (*mem) != 4) \
- abort (); \
- __v7_compare_and_exchange_val_24_acq (mem, newval, oldval); })
-
-# define atomic_exchange_24_rel(mem, newval) \
- ({ \
- if (sizeof (*mem) != 4) \
- abort (); \
- __v7_exchange_24_rel (mem, newval); })
-
-# define atomic_full_barrier() __asm ("" ::: "memory")
-# define atomic_read_barrier() atomic_full_barrier ()
-# define atomic_write_barrier() atomic_full_barrier ()
-
-#else
-
-/* In libc.a/libpthread.a etc. we don't know if we'll be run on
- pre-v9 or v9 CPU. To be interoperable with dynamically linked
- apps on v9 CPUs e.g. with process shared primitives, use cas insn
- on v9 CPUs and ldstub on pre-v9. */
-
-extern uint64_t _dl_hwcap __attribute__((weak));
-# define __atomic_is_v9 \
- (__builtin_expect (&_dl_hwcap != 0, 1) \
- && __builtin_expect (_dl_hwcap & HWCAP_SPARC_V9, HWCAP_SPARC_V9))
-
-# define atomic_compare_and_exchange_val_acq(mem, newval, oldval) \
- ({ \
- __typeof (*mem) __acev_wret; \
- if (sizeof (*mem) != 4) \
- abort (); \
- if (__atomic_is_v9) \
- __acev_wret \
- = __v9_compare_and_exchange_val_32_acq (mem, newval, oldval);\
- else \
- __acev_wret \
- = __v7_compare_and_exchange_val_acq (mem, newval, oldval); \
- __acev_wret; })
-
-# define atomic_compare_and_exchange_bool_acq(mem, newval, oldval) \
- ({ \
- int __acev_wret; \
- if (sizeof (*mem) != 4) \
- abort (); \
- if (__atomic_is_v9) \
- { \
- __typeof (oldval) __acev_woldval = (oldval); \
- __acev_wret \
- = __v9_compare_and_exchange_val_32_acq (mem, newval, \
- __acev_woldval) \
- != __acev_woldval; \
- } \
- else \
- __acev_wret \
- = __v7_compare_and_exchange_bool_acq (mem, newval, oldval); \
- __acev_wret; })
-
-# define atomic_exchange_rel(mem, newval) \
- ({ \
- __typeof (*mem) __acev_wret; \
- if (sizeof (*mem) != 4) \
- abort (); \
- if (__atomic_is_v9) \
- { \
- __typeof (mem) __acev_wmemp = (mem); \
- __typeof (*(mem)) __acev_wval = (newval); \
- do \
- __acev_wret = *__acev_wmemp; \
- while (__builtin_expect \
- (__v9_compare_and_exchange_val_32_acq (__acev_wmemp,\
- __acev_wval, \
- __acev_wret) \
- != __acev_wret, 0)); \
- } \
- else \
- __acev_wret = __v7_exchange_acq (mem, newval); \
- __acev_wret; })
-
-# define atomic_compare_and_exchange_val_24_acq(mem, newval, oldval) \
- ({ \
- __typeof (*mem) __acev_wret; \
- if (sizeof (*mem) != 4) \
- abort (); \
- if (__atomic_is_v9) \
- __acev_wret \
- = __v9_compare_and_exchange_val_32_acq (mem, newval, oldval);\
- else \
- __acev_wret \
- = __v7_compare_and_exchange_val_24_acq (mem, newval, oldval);\
- __acev_wret; })
-
-# define atomic_exchange_24_rel(mem, newval) \
- ({ \
- __typeof (*mem) __acev_w24ret; \
- if (sizeof (*mem) != 4) \
- abort (); \
- if (__atomic_is_v9) \
- __acev_w24ret = atomic_exchange_rel (mem, newval); \
- else \
- __acev_w24ret = __v7_exchange_24_rel (mem, newval); \
- __acev_w24ret; })
-
-#define atomic_full_barrier() \
- do { \
- if (__atomic_is_v9) \
- /* membar #LoadLoad | #LoadStore | #StoreLoad | #StoreStore */ \
- __asm __volatile (".word 0x8143e00f" : : : "memory"); \
- else \
- __asm __volatile ("" : : : "memory"); \
- } while (0)
-
-#define atomic_read_barrier() \
- do { \
- if (__atomic_is_v9) \
- /* membar #LoadLoad | #LoadStore */ \
- __asm __volatile (".word 0x8143e005" : : : "memory"); \
- else \
- __asm __volatile ("" : : : "memory"); \
- } while (0)
-
-#define atomic_write_barrier() \
- do { \
- if (__atomic_is_v9) \
- /* membar #LoadStore | #StoreStore */ \
- __asm __volatile (".word 0x8143e00c" : : : "memory"); \
- else \
- __asm __volatile ("" : : : "memory"); \
- } while (0)
-
-#endif
-
-#include <sysdep.h>
-
-#endif /* atomic-machine.h */
diff --git a/sysdeps/sparc/sparc32/bits/setjmp.h b/sysdeps/sparc/sparc32/bits/setjmp.h
index 381dec2191..b916b464b8 100644
--- a/sysdeps/sparc/sparc32/bits/setjmp.h
+++ b/sysdeps/sparc/sparc32/bits/setjmp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define the machine-dependent type `jmp_buf'. SPARC version. */
diff --git a/sysdeps/sparc/sparc32/configure b/sysdeps/sparc/sparc32/configure
new file mode 100644
index 0000000000..b6ec0e7d8f
--- /dev/null
+++ b/sysdeps/sparc/sparc32/configure
@@ -0,0 +1,197 @@
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
+ # Local configure fragment for sysdeps/sparc/sparc32
+
+# Test if compiler targets at least sparcv8.
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if ${ac_cv_path_GREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$GREP"; then
+ ac_path_GREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in grep ggrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_GREP" || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+ # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'GREP' >> "conftest.nl"
+ "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_GREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_GREP="$ac_path_GREP"
+ ac_path_GREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_GREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_GREP"; then
+ as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if ${ac_cv_path_EGREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+ then ac_cv_path_EGREP="$GREP -E"
+ else
+ if test -z "$EGREP"; then
+ ac_path_EGREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in egrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_EGREP" || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+ # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'EGREP' >> "conftest.nl"
+ "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_EGREP="$ac_path_EGREP"
+ ac_path_EGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_EGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_EGREP"; then
+ as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_EGREP=$EGREP
+fi
+
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for at least sparcv8 support" >&5
+$as_echo_n "checking for at least sparcv8 support... " >&6; }
+if ${libc_cv_sparcv8+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#if defined (__sparc_v8__) || defined (__sparc_v9__)
+ yes
+ #endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "yes" >/dev/null 2>&1; then :
+ libc_cv_sparcv8=yes
+else
+ libc_cv_sparcv8=no
+fi
+rm -f conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_sparcv8" >&5
+$as_echo "$libc_cv_sparcv8" >&6; }
+if test $libc_cv_sparcv8 = no; then
+ as_fn_error $? "no support for pre-v8 sparc" "$LINENO" 5
+fi
+
+# Test if compiler generates external calls to libatomic for CAS operation.
+# It is suffice to check for int only and the test is similar of C11
+# atomic_compare_exchange_strong using GCC builtins.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for external libatomic calls" >&5
+$as_echo_n "checking for external libatomic calls... " >&6; }
+if ${libc_cv_cas_uses_libatomic+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat > conftest.c <<EOF
+ _Bool foo (int *ptr, int *expected, int desired)
+ {
+ return __atomic_compare_exchange_n (ptr, expected, desired, 0,
+ __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST);
+ }
+EOF
+ libc_cv_cas_uses_libatomic=no
+ if { ac_try='${CC-cc} -S conftest.c -o conftest.s 1>&5'
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then
+ if grep '__atomic_compare_exchange_4' conftest.s >/dev/null; then
+ libc_cv_cas_uses_libatomic=yes
+ fi
+ fi
+ rm -f conftest.c conftest.s
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cas_uses_libatomic" >&5
+$as_echo "$libc_cv_cas_uses_libatomic" >&6; }
+if test $libc_cv_cas_uses_libatomic = yes; then
+ as_fn_error $? "external dependency of libatomic is not supported" "$LINENO" 5
+fi
diff --git a/sysdeps/sparc/sparc32/configure.ac b/sysdeps/sparc/sparc32/configure.ac
new file mode 100644
index 0000000000..462a423a2e
--- /dev/null
+++ b/sysdeps/sparc/sparc32/configure.ac
@@ -0,0 +1,37 @@
+GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
+# Local configure fragment for sysdeps/sparc/sparc32
+
+# Test if compiler targets at least sparcv8.
+AC_CACHE_CHECK([for at least sparcv8 support],
+ [libc_cv_sparcv8],
+ [AC_EGREP_CPP(yes,[#if defined (__sparc_v8__) || defined (__sparc_v9__)
+ yes
+ #endif
+ ], libc_cv_sparcv8=yes, libc_cv_sparcv8=no)])
+if test $libc_cv_sparcv8 = no; then
+ AC_MSG_ERROR([no support for pre-v8 sparc])
+fi
+
+# Test if compiler generates external calls to libatomic for CAS operation.
+# It is suffice to check for int only and the test is similar of C11
+# atomic_compare_exchange_strong using GCC builtins.
+AC_CACHE_CHECK(for external libatomic calls,
+ libc_cv_cas_uses_libatomic,
+ [cat > conftest.c <<EOF
+ _Bool foo (int *ptr, int *expected, int desired)
+ {
+ return __atomic_compare_exchange_n (ptr, expected, desired, 0,
+ __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST);
+ }
+EOF
+ libc_cv_cas_uses_libatomic=no
+ if AC_TRY_COMMAND(${CC-cc} -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD); then
+ if grep '__atomic_compare_exchange_4' conftest.s >/dev/null; then
+ libc_cv_cas_uses_libatomic=yes
+ fi
+ fi
+ rm -f conftest.c conftest.s
+ ])
+if test $libc_cv_cas_uses_libatomic = yes; then
+ AC_MSG_ERROR([external dependency of libatomic is not supported])
+fi
diff --git a/sysdeps/sparc/sparc32/divrem.m4 b/sysdeps/sparc/sparc32/divrem.m4
deleted file mode 100644
index c08c530020..0000000000
--- a/sysdeps/sparc/sparc32/divrem.m4
+++ /dev/null
@@ -1,234 +0,0 @@
-/*
- * Division and remainder, from Appendix E of the Sparc Version 8
- * Architecture Manual, with fixes from Gordon Irlam.
- */
-
-/*
- * Input: dividend and divisor in %o0 and %o1 respectively.
- *
- * m4 parameters:
- * NAME name of function to generate
- * OP OP=div => %o0 / %o1; OP=rem => %o0 % %o1
- * S S=true => signed; S=false => unsigned
- *
- * Algorithm parameters:
- * N how many bits per iteration we try to get (4)
- * WORDSIZE total number of bits (32)
- *
- * Derived constants:
- * TOPBITS number of bits in the top `decade' of a number
- *
- * Important variables:
- * Q the partial quotient under development (initially 0)
- * R the remainder so far, initially the dividend
- * ITER number of main division loop iterations required;
- * equal to ceil(log2(quotient) / N). Note that this
- * is the log base (2^N) of the quotient.
- * V the current comparand, initially divisor*2^(ITER*N-1)
- *
- * Cost:
- * Current estimate for non-large dividend is
- * ceil(log2(quotient) / N) * (10 + 7N/2) + C
- * A large dividend is one greater than 2^(31-TOPBITS) and takes a
- * different path, as the upper bits of the quotient must be developed
- * one bit at a time.
- */
-
-define(N, `4')dnl
-define(WORDSIZE, `32')dnl
-define(TOPBITS, eval(WORDSIZE - N*((WORDSIZE-1)/N)))dnl
-dnl
-define(dividend, `%o0')dnl
-define(divisor, `%o1')dnl
-define(Q, `%o2')dnl
-define(R, `%o3')dnl
-define(ITER, `%o4')dnl
-define(V, `%o5')dnl
-dnl
-dnl m4 reminder: ifelse(a,b,c,d) => if a is b, then c, else d
-define(T, `%g1')dnl
-define(SC, `%g2')dnl
-ifelse(S, `true', `define(SIGN, `%g3')')dnl
-
-dnl
-dnl This is the recursive definition for developing quotient digits.
-dnl
-dnl Parameters:
-dnl $1 the current depth, 1 <= $1 <= N
-dnl $2 the current accumulation of quotient bits
-dnl N max depth
-dnl
-dnl We add a new bit to $2 and either recurse or insert the bits in
-dnl the quotient. R, Q, and V are inputs and outputs as defined above;
-dnl the condition codes are expected to reflect the input R, and are
-dnl modified to reflect the output R.
-dnl
-define(DEVELOP_QUOTIENT_BITS,
-` ! depth $1, accumulated bits $2
- bl LOC($1.eval(2**N+$2))
- srl V,1,V
- ! remainder is positive
- subcc R,V,R
- ifelse($1, N,
- ` b 9f
- add Q, ($2*2+1), Q
-', ` DEVELOP_QUOTIENT_BITS(incr($1), `eval(2*$2+1)')')
-LOC($1.eval(2**N+$2)):
- ! remainder is negative
- addcc R,V,R
- ifelse($1, N,
- ` b 9f
- add Q, ($2*2-1), Q
-', ` DEVELOP_QUOTIENT_BITS(incr($1), `eval(2*$2-1)')')
-ifelse($1, 1, `9:')')dnl
-
-#include <sysdep.h>
-#include <sys/trap.h>
-
-ENTRY(NAME)
-ifelse(S, `true',
-` ! compute sign of result; if neither is negative, no problem
- orcc divisor, dividend, %g0 ! either negative?
- bge 2f ! no, go do the divide
-ifelse(OP, `div',
-` xor divisor, dividend, SIGN ! compute sign in any case',
-` mov dividend, SIGN ! sign of remainder matches dividend')
- tst divisor
- bge 1f
- tst dividend
- ! divisor is definitely negative; dividend might also be negative
- bge 2f ! if dividend not negative...
- sub %g0, divisor, divisor ! in any case, make divisor nonneg
-1: ! dividend is negative, divisor is nonnegative
- sub %g0, dividend, dividend ! make dividend nonnegative
-2:
-')
- ! Ready to divide. Compute size of quotient; scale comparand.
- orcc divisor, %g0, V
- bne 1f
- mov dividend, R
-
- ! Divide by zero trap. If it returns, return 0 (about as
- ! wrong as possible, but that is what SunOS does...).
- ta ST_DIV0
- retl
- clr %o0
-
-1:
- cmp R, V ! if divisor exceeds dividend, done
- blu LOC(got_result) ! (and algorithm fails otherwise)
- clr Q
- sethi %hi(1 << (WORDSIZE - TOPBITS - 1)), T
- cmp R, T
- blu LOC(not_really_big)
- clr ITER
-
- ! `Here the dividend is >= 2**(31-N) or so. We must be careful here,
- ! as our usual N-at-a-shot divide step will cause overflow and havoc.
- ! The number of bits in the result here is N*ITER+SC, where SC <= N.
- ! Compute ITER in an unorthodox manner: know we need to shift V into
- ! the top decade: so do not even bother to compare to R.'
- 1:
- cmp V, T
- bgeu 3f
- mov 1, SC
- sll V, N, V
- b 1b
- add ITER, 1, ITER
-
- ! Now compute SC.
- 2: addcc V, V, V
- bcc LOC(not_too_big)
- add SC, 1, SC
-
- ! We get here if the divisor overflowed while shifting.
- ! This means that R has the high-order bit set.
- ! Restore V and subtract from R.
- sll T, TOPBITS, T ! high order bit
- srl V, 1, V ! rest of V
- add V, T, V
- b LOC(do_single_div)
- sub SC, 1, SC
-
- LOC(not_too_big):
- 3: cmp V, R
- blu 2b
- nop
- be LOC(do_single_div)
- nop
- /* NB: these are commented out in the V8-Sparc manual as well */
- /* (I do not understand this) */
- ! V > R: went too far: back up 1 step
- ! srl V, 1, V
- ! dec SC
- ! do single-bit divide steps
- !
- ! We have to be careful here. We know that R >= V, so we can do the
- ! first divide step without thinking. BUT, the others are conditional,
- ! and are only done if R >= 0. Because both R and V may have the high-
- ! order bit set in the first step, just falling into the regular
- ! division loop will mess up the first time around.
- ! So we unroll slightly...
- LOC(do_single_div):
- subcc SC, 1, SC
- bl LOC(end_regular_divide)
- nop
- sub R, V, R
- mov 1, Q
- b LOC(end_single_divloop)
- nop
- LOC(single_divloop):
- sll Q, 1, Q
- bl 1f
- srl V, 1, V
- ! R >= 0
- sub R, V, R
- b 2f
- add Q, 1, Q
- 1: ! R < 0
- add R, V, R
- sub Q, 1, Q
- 2:
- LOC(end_single_divloop):
- subcc SC, 1, SC
- bge LOC(single_divloop)
- tst R
- b,a LOC(end_regular_divide)
-
-LOC(not_really_big):
-1:
- sll V, N, V
- cmp V, R
- bleu 1b
- addcc ITER, 1, ITER
- be LOC(got_result)
- sub ITER, 1, ITER
-
- tst R ! set up for initial iteration
-LOC(divloop):
- sll Q, N, Q
- DEVELOP_QUOTIENT_BITS(1, 0)
-LOC(end_regular_divide):
- subcc ITER, 1, ITER
- bge LOC(divloop)
- tst R
- bl,a LOC(got_result)
- ! non-restoring fixup here (one instruction only!)
-ifelse(OP, `div',
-` sub Q, 1, Q
-', ` add R, divisor, R
-')
-
-LOC(got_result):
-ifelse(S, `true',
-` ! check to see if answer should be < 0
- tst SIGN
- bl,a 1f
- ifelse(OP, `div', `sub %g0, Q, Q', `sub %g0, R, R')
-1:')
- retl
- ifelse(OP, `div', `mov Q, %o0', `mov R, %o0')
-
-END(NAME)
-ifelse(OP, `div', ifelse(S, `false', `strong_alias (.udiv, __wrap_.udiv)
-'))dnl
diff --git a/sysdeps/sparc/sparc32/dl-irel.h b/sysdeps/sparc/sparc32/dl-irel.h
index ffca36864f..1221a056e9 100644
--- a/sysdeps/sparc/sparc32/dl-irel.h
+++ b/sysdeps/sparc/sparc32/dl-irel.h
@@ -1,6 +1,6 @@
/* Machine-dependent ELF indirect relocation inline functions.
SPARC 32-bit version.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DL_IREL_H
#define _DL_IREL_H
@@ -56,7 +56,7 @@ elf_irela (const Elf32_Rela *reloc)
else if (r_type == R_SPARC_NONE)
;
else
- __libc_fatal ("unexpected reloc type in static binary");
+ __libc_fatal ("Unexpected reloc type in static binary.\n");
}
#endif /* dl-irel.h */
diff --git a/sysdeps/sparc/sparc32/dl-machine.h b/sysdeps/sparc/sparc32/dl-machine.h
index 042d02c7ca..359a004271 100644
--- a/sysdeps/sparc/sparc32/dl-machine.h
+++ b/sysdeps/sparc/sparc32/dl-machine.h
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation inline functions. SPARC version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef dl_machine_h
#define dl_machine_h
@@ -425,11 +425,13 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
*reloc_addr = value;
break;
case R_SPARC_IRELATIVE:
- value = ((Elf32_Addr (*) (int)) value) (GLRO(dl_hwcap));
+ if (__glibc_likely (!skip_ifunc))
+ value = ((Elf32_Addr (*) (int)) value) (GLRO(dl_hwcap));
*reloc_addr = value;
break;
case R_SPARC_JMP_IREL:
- value = ((Elf32_Addr (*) (int)) value) (GLRO(dl_hwcap));
+ if (__glibc_likely (!skip_ifunc))
+ value = ((Elf32_Addr (*) (int)) value) (GLRO(dl_hwcap));
/* Fall thru */
case R_SPARC_JMP_SLOT:
{
diff --git a/sysdeps/sparc/sparc32/dl-plt.h b/sysdeps/sparc/sparc32/dl-plt.h
index c09c0692ad..1786e59ac2 100644
--- a/sysdeps/sparc/sparc32/dl-plt.h
+++ b/sysdeps/sparc/sparc32/dl-plt.h
@@ -1,5 +1,5 @@
/* PLT fixups. Sparc 32-bit version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DL_PLT_H
#define _DL_PLT_H
diff --git a/sysdeps/sparc/sparc32/dl-trampoline.S b/sysdeps/sparc/sparc32/dl-trampoline.S
index 098ffcfacc..a3d2c6fe66 100644
--- a/sysdeps/sparc/sparc32/dl-trampoline.S
+++ b/sysdeps/sparc/sparc32/dl-trampoline.S
@@ -1,5 +1,5 @@
/* PLT trampolines. Sparc 32-bit version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc32/dotmul.S b/sysdeps/sparc/sparc32/dotmul.S
index d497ca672d..9b20cc3684 100644
--- a/sysdeps/sparc/sparc32/dotmul.S
+++ b/sysdeps/sparc/sparc32/dotmul.S
@@ -1,127 +1,13 @@
/*
- * Signed multiply, from Appendix E of the Sparc Version 8
- * Architecture Manual.
- */
-
-/*
- * Returns %o0 * %o1 in %o1%o0 (i.e., %o1 holds the upper 32 bits of
- * the 64-bit product).
- *
- * This code optimizes short (less than 13-bit) multiplies.
+ * Sparc v8 has multiply.
*/
#include <sysdep.h>
-
ENTRY(.mul)
- mov %o0, %y ! multiplier -> Y
- andncc %o0, 0xfff, %g0 ! test bits 12..31
- be LOC(mul_shortway) ! if zero, can do it the short way
- andcc %g0, %g0, %o4 ! zero the partial product and clear N and V
-
- /*
- * Long multiply. 32 steps, followed by a final shift step.
- */
- mulscc %o4, %o1, %o4 ! 1
- mulscc %o4, %o1, %o4 ! 2
- mulscc %o4, %o1, %o4 ! 3
- mulscc %o4, %o1, %o4 ! 4
- mulscc %o4, %o1, %o4 ! 5
- mulscc %o4, %o1, %o4 ! 6
- mulscc %o4, %o1, %o4 ! 7
- mulscc %o4, %o1, %o4 ! 8
- mulscc %o4, %o1, %o4 ! 9
- mulscc %o4, %o1, %o4 ! 10
- mulscc %o4, %o1, %o4 ! 11
- mulscc %o4, %o1, %o4 ! 12
- mulscc %o4, %o1, %o4 ! 13
- mulscc %o4, %o1, %o4 ! 14
- mulscc %o4, %o1, %o4 ! 15
- mulscc %o4, %o1, %o4 ! 16
- mulscc %o4, %o1, %o4 ! 17
- mulscc %o4, %o1, %o4 ! 18
- mulscc %o4, %o1, %o4 ! 19
- mulscc %o4, %o1, %o4 ! 20
- mulscc %o4, %o1, %o4 ! 21
- mulscc %o4, %o1, %o4 ! 22
- mulscc %o4, %o1, %o4 ! 23
- mulscc %o4, %o1, %o4 ! 24
- mulscc %o4, %o1, %o4 ! 25
- mulscc %o4, %o1, %o4 ! 26
- mulscc %o4, %o1, %o4 ! 27
- mulscc %o4, %o1, %o4 ! 28
- mulscc %o4, %o1, %o4 ! 29
- mulscc %o4, %o1, %o4 ! 30
- mulscc %o4, %o1, %o4 ! 31
- mulscc %o4, %o1, %o4 ! 32
- mulscc %o4, %g0, %o4 ! final shift
-
- ! If %o0 was negative, the result is
- ! (%o0 * %o1) + (%o1 << 32))
- ! We fix that here.
-
-#if 0
- tst %o0
- bge 1f
- rd %y, %o0
-
- ! %o0 was indeed negative; fix upper 32 bits of result by subtracting
- ! %o1 (i.e., return %o4 - %o1 in %o1).
- retl
- sub %o4, %o1, %o1
-
-1:
- retl
- mov %o4, %o1
-#else
- /* Faster code adapted from tege@sics.se's code for umul.S. */
- sra %o0, 31, %o2 ! make mask from sign bit
- and %o1, %o2, %o2 ! %o2 = 0 or %o1, depending on sign of %o0
- rd %y, %o0 ! get lower half of product
- retl
- sub %o4, %o2, %o1 ! subtract compensation
- ! and put upper half in place
-#endif
-
-LOC(mul_shortway):
- /*
- * Short multiply. 12 steps, followed by a final shift step.
- * The resulting bits are off by 12 and (32-12) = 20 bit positions,
- * but there is no problem with %o0 being negative (unlike above).
- */
- mulscc %o4, %o1, %o4 ! 1
- mulscc %o4, %o1, %o4 ! 2
- mulscc %o4, %o1, %o4 ! 3
- mulscc %o4, %o1, %o4 ! 4
- mulscc %o4, %o1, %o4 ! 5
- mulscc %o4, %o1, %o4 ! 6
- mulscc %o4, %o1, %o4 ! 7
- mulscc %o4, %o1, %o4 ! 8
- mulscc %o4, %o1, %o4 ! 9
- mulscc %o4, %o1, %o4 ! 10
- mulscc %o4, %o1, %o4 ! 11
- mulscc %o4, %o1, %o4 ! 12
- mulscc %o4, %g0, %o4 ! final shift
-
- /*
- * %o4 has 20 of the bits that should be in the low part of the
- * result; %y has the bottom 12 (as %y's top 12). That is:
- *
- * %o4 %y
- * +----------------+----------------+
- * | -12- | -20- | -12- | -20- |
- * +------(---------+------)---------+
- * --hi-- ----low-part----
- *
- * The upper 12 bits of %o4 should be sign-extended to form the
- * high part of the product (i.e., highpart = %o4 >> 20).
- */
- rd %y, %o5
- sll %o4, 12, %o0 ! shift middle bits left 12
- srl %o5, 20, %o5 ! shift low bits right 20, zero fill at left
- or %o5, %o0, %o0 ! construct low part of result
+ smul %o0, %o1, %o0
retl
- sra %o4, 20, %o1 ! ... and extract high part of result
+ rd %y, %o1
END(.mul)
diff --git a/sysdeps/sparc/sparc32/e_sqrt.c b/sysdeps/sparc/sparc32/e_sqrt.c
index d25e779473..2441b6c0f9 100644
--- a/sysdeps/sparc/sparc32/e_sqrt.c
+++ b/sysdeps/sparc/sparc32/e_sqrt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <math.h>
diff --git a/sysdeps/sparc/sparc32/fpu/e_sqrtl.c b/sysdeps/sparc/sparc32/fpu/e_sqrtl.c
index 181a39c1cb..268a405492 100644
--- a/sysdeps/sparc/sparc32/fpu/e_sqrtl.c
+++ b/sysdeps/sparc/sparc32/fpu/e_sqrtl.c
@@ -1,5 +1,5 @@
/* Long double square root, sparc32 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/sparc/sparc32/fpu/s_copysign.S b/sysdeps/sparc/sparc32/fpu/s_copysign.S
index 7743ee0c67..524c05c778 100644
--- a/sysdeps/sparc/sparc32/fpu/s_copysign.S
+++ b/sysdeps/sparc/sparc32/fpu/s_copysign.S
@@ -1,5 +1,5 @@
/* copysign function, sparc32 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller <davem@davemloft.net>, 2012.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <math_ldbl_opt.h>
diff --git a/sysdeps/sparc/sparc32/fpu/s_copysignf.S b/sysdeps/sparc/sparc32/fpu/s_copysignf.S
index becfc92e6d..ff15e4e9c5 100644
--- a/sysdeps/sparc/sparc32/fpu/s_copysignf.S
+++ b/sysdeps/sparc/sparc32/fpu/s_copysignf.S
@@ -1,5 +1,5 @@
/* float copysign function, sparc32 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller <davem@davemloft.net>, 2012.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/sparc/sparc32/fpu/s_fabs.S b/sysdeps/sparc/sparc32/fpu/s_fabs.S
index db639c94c2..71538cd65e 100644
--- a/sysdeps/sparc/sparc32/fpu/s_fabs.S
+++ b/sysdeps/sparc/sparc32/fpu/s_fabs.S
@@ -1,5 +1,5 @@
/* Float absolute value, sparc32 version.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ 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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <math_ldbl_opt.h>
diff --git a/sysdeps/sparc/sparc32/fpu/s_fabsf.S b/sysdeps/sparc/sparc32/fpu/s_fabsf.S
index 5fcab24125..8248b11922 100644
--- a/sysdeps/sparc/sparc32/fpu/s_fabsf.S
+++ b/sysdeps/sparc/sparc32/fpu/s_fabsf.S
@@ -1,5 +1,5 @@
/* Float absolute value, sparc32 version.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/sparc/sparc32/fpu/s_signbit.S b/sysdeps/sparc/sparc32/fpu/s_signbit.S
index 341d668aa5..846e6fbeb7 100644
--- a/sysdeps/sparc/sparc32/fpu/s_signbit.S
+++ b/sysdeps/sparc/sparc32/fpu/s_signbit.S
@@ -1,5 +1,5 @@
/* signbit(). sparc32 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc32/fpu/s_signbitl.S b/sysdeps/sparc/sparc32/fpu/s_signbitl.S
index 8f0832a60e..01c17a5641 100644
--- a/sysdeps/sparc/sparc32/fpu/s_signbitl.S
+++ b/sysdeps/sparc/sparc32/fpu/s_signbitl.S
@@ -1,5 +1,5 @@
/* signbitl(). sparc32 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <math_ldbl_opt.h>
diff --git a/sysdeps/sparc/sparc32/ieee754.h b/sysdeps/sparc/sparc32/ieee754.h
index d7173b6a8b..47f11d8a6b 100644
--- a/sysdeps/sparc/sparc32/ieee754.h
+++ b/sysdeps/sparc/sparc32/ieee754.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -13,14 +13,14 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _IEEE754_H
-
#define _IEEE754_H 1
+
#include <features.h>
-#include <endian.h>
+#include <bits/endian.h>
__BEGIN_DECLS
diff --git a/sysdeps/sparc/sparc32/jmpbuf-offsets.h b/sysdeps/sparc/sparc32/jmpbuf-offsets.h
index 53c4d44135..0f3965ca51 100644
--- a/sysdeps/sparc/sparc32/jmpbuf-offsets.h
+++ b/sysdeps/sparc/sparc32/jmpbuf-offsets.h
@@ -1,5 +1,5 @@
/* Private macros for accessing __jmp_buf contents. SPARC version.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define JB_SP 0
#define JB_FP 1
diff --git a/sysdeps/sparc/sparc32/jmpbuf-unwind.h b/sysdeps/sparc/sparc32/jmpbuf-unwind.h
index 8a4656cb58..6b93e99c19 100644
--- a/sysdeps/sparc/sparc32/jmpbuf-unwind.h
+++ b/sysdeps/sparc/sparc32/jmpbuf-unwind.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <setjmp.h>
#include <jmpbuf-offsets.h>
diff --git a/sysdeps/sparc/sparc32/lll_timedlock_wait.c b/sysdeps/sparc/sparc32/lll_timedlock_wait.c
deleted file mode 100644
index c2c93faf1b..0000000000
--- a/sysdeps/sparc/sparc32/lll_timedlock_wait.c
+++ /dev/null
@@ -1 +0,0 @@
-/* __lll_timedlock_wait is in lowlevellock.c. */
diff --git a/sysdeps/sparc/sparc32/lll_timedwait_tid.c b/sysdeps/sparc/sparc32/lll_timedwait_tid.c
deleted file mode 100644
index 511608ead9..0000000000
--- a/sysdeps/sparc/sparc32/lll_timedwait_tid.c
+++ /dev/null
@@ -1 +0,0 @@
-/* __lll_timedwait_tid is in lowlevellock.c. */
diff --git a/sysdeps/sparc/sparc32/lowlevellock.c b/sysdeps/sparc/sparc32/lowlevellock.c
deleted file mode 100644
index 8b18559bb6..0000000000
--- a/sysdeps/sparc/sparc32/lowlevellock.c
+++ /dev/null
@@ -1,131 +0,0 @@
-/* low level locking for pthread library. SPARC version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Paul Mackerras <paulus@au.ibm.com>, 2003.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <sysdep.h>
-#include <lowlevellock.h>
-#include <sys/time.h>
-
-
-void
-__lll_lock_wait_private (int *futex)
-{
- do
- {
- int oldval = atomic_compare_and_exchange_val_24_acq (futex, 2, 1);
- if (oldval != 0)
- lll_futex_wait (futex, 2, LLL_PRIVATE);
- }
- while (atomic_compare_and_exchange_val_24_acq (futex, 2, 0) != 0);
-}
-
-
-/* These functions don't get included in libc.so */
-#if IS_IN (libpthread)
-void
-__lll_lock_wait (int *futex, int private)
-{
- do
- {
- int oldval = atomic_compare_and_exchange_val_24_acq (futex, 2, 1);
- if (oldval != 0)
- lll_futex_wait (futex, 2, private);
- }
- while (atomic_compare_and_exchange_val_24_acq (futex, 2, 0) != 0);
-}
-
-
-int
-__lll_timedlock_wait (int *futex, const struct timespec *abstime, int private)
-{
- /* Reject invalid timeouts. */
- if (abstime->tv_nsec < 0 || abstime->tv_nsec >= 1000000000)
- return EINVAL;
-
- do
- {
- struct timeval tv;
- struct timespec rt;
-
- /* Get the current time. */
- (void) __gettimeofday (&tv, NULL);
-
- /* Compute relative timeout. */
- rt.tv_sec = abstime->tv_sec - tv.tv_sec;
- rt.tv_nsec = abstime->tv_nsec - tv.tv_usec * 1000;
- if (rt.tv_nsec < 0)
- {
- rt.tv_nsec += 1000000000;
- --rt.tv_sec;
- }
-
- /* Already timed out? */
- if (rt.tv_sec < 0)
- return ETIMEDOUT;
-
- /* Wait. */
- int oldval = atomic_compare_and_exchange_val_24_acq (futex, 2, 1);
- if (oldval != 0)
- lll_futex_timed_wait (futex, 2, &rt, private);
- }
- while (atomic_compare_and_exchange_val_24_acq (futex, 2, 0) != 0);
-
- return 0;
-}
-
-
-int
-__lll_timedwait_tid (int *tidp, const struct timespec *abstime)
-{
- int tid;
-
- if (abstime->tv_nsec < 0 || abstime->tv_nsec >= 1000000000)
- return EINVAL;
-
- /* Repeat until thread terminated. */
- while ((tid = *tidp) != 0)
- {
- struct timeval tv;
- struct timespec rt;
-
- /* Get the current time. */
- (void) __gettimeofday (&tv, NULL);
-
- /* Compute relative timeout. */
- rt.tv_sec = abstime->tv_sec - tv.tv_sec;
- rt.tv_nsec = abstime->tv_nsec - tv.tv_usec * 1000;
- if (rt.tv_nsec < 0)
- {
- rt.tv_nsec += 1000000000;
- --rt.tv_sec;
- }
-
- /* Already timed out? */
- if (rt.tv_sec < 0)
- return ETIMEDOUT;
-
- /* Wait until thread terminates. The kernel so far does not use
- the private futex operations for this. */
- if (lll_futex_timed_wait (tidp, tid, &rt, LLL_SHARED) == -ETIMEDOUT)
- return ETIMEDOUT;
- }
-
- return 0;
-}
-#endif
diff --git a/sysdeps/sparc/sparc32/lshift.S b/sysdeps/sparc/sparc32/lshift.S
index f2cef11d0e..3d2c26dba2 100644
--- a/sysdeps/sparc/sparc32/lshift.S
+++ b/sysdeps/sparc/sparc32/lshift.S
@@ -1,6 +1,6 @@
! Sparc __mpn_lshift --
!
-! Copyright (C) 1995-2018 Free Software Foundation, Inc.
+! Copyright (C) 1995-2019 Free Software Foundation, Inc.
!
! This file is part of the GNU MP Library.
!
@@ -16,7 +16,7 @@
!
! You should have received a copy of the GNU Lesser General Public License
! along with the GNU MP Library; see the file COPYING.LIB. If not,
-! see <http://www.gnu.org/licenses/>.
+! see <https://www.gnu.org/licenses/>.
! INPUT PARAMETERS
diff --git a/sysdeps/sparc/sparc32/memchr.S b/sysdeps/sparc/sparc32/memchr.S
index fc8fa3ea3a..6261e95d16 100644
--- a/sysdeps/sparc/sparc32/memchr.S
+++ b/sysdeps/sparc/sparc32/memchr.S
@@ -1,7 +1,7 @@
/* memchr (str, ch, n) -- Return pointer to first occurrence of CH in STR less
than N.
For SPARC v7.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jj@ultra.linux.cz> and
David S. Miller <davem@caip.rutgers.edu>.
@@ -25,7 +25,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc32/memcpy.S b/sysdeps/sparc/sparc32/memcpy.S
index 48b3ba87d5..8684c84440 100644
--- a/sysdeps/sparc/sparc32/memcpy.S
+++ b/sysdeps/sparc/sparc32/memcpy.S
@@ -1,6 +1,6 @@
/* Copy SIZE bytes from SRC to DEST.
For SPARC v7.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller <davem@caip.rutgers.edu>,
Eddie C. Dost <ecd@skynet.be> and
@@ -18,7 +18,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc32/memset.S b/sysdeps/sparc/sparc32/memset.S
index 034e1bc88b..e91785529f 100644
--- a/sysdeps/sparc/sparc32/memset.S
+++ b/sysdeps/sparc/sparc32/memset.S
@@ -1,6 +1,6 @@
/* Set a block of memory to some byte value.
For SPARC v7.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller <davem@caip.rutgers.edu> and
Jakub Jelinek <jj@ultra.linux.cz>.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc32/mul_1.S b/sysdeps/sparc/sparc32/mul_1.S
index 9fbd2e1319..86619c71d6 100644
--- a/sysdeps/sparc/sparc32/mul_1.S
+++ b/sysdeps/sparc/sparc32/mul_1.S
@@ -1,198 +1,102 @@
-! SPARC __mpn_mul_1 -- Multiply a limb vector with a limb and store
-! the result in a second limb vector.
-!
-! Copyright (C) 1992-2018 Free Software Foundation, Inc.
-!
+! SPARC v8 __mpn_mul_1 -- Multiply a limb vector with a single limb and
+! store the product in a second limb vector.
+
+! Copyright (C) 1992-2019 Free Software Foundation, Inc.
+
! This file is part of the GNU MP Library.
-!
+
! The GNU MP 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 MP 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 MP Library; see the file COPYING.LIB. If not,
-! see <http://www.gnu.org/licenses/>.
+! see <https://www.gnu.org/licenses/>.
! INPUT PARAMETERS
-! RES_PTR o0
-! S1_PTR o1
-! SIZE o2
-! S2_LIMB o3
-
-! ADD CODE FOR SMALL MULTIPLIERS!
-!1: ld
-! st
-!
-!2: ld ,a
-! addxcc a,a,x
-! st x,
-!
-!3_unrolled:
-! ld ,a
-! addxcc a,a,x1 ! 2a + cy
-! addx %g0,%g0,x2
-! addcc a,x1,x ! 3a + c
-! st x,
-!
-! ld ,a
-! addxcc a,a,y1
-! addx %g0,%g0,y2
-! addcc a,y1,x
-! st x,
-!
-!4_unrolled:
-! ld ,a
-! srl a,2,x1 ! 4a
-! addxcc y2,x1,x
-! sll a,30,x2
-! st x,
-!
-! ld ,a
-! srl a,2,y1
-! addxcc x2,y1,y
-! sll a,30,y2
-! st x,
-!
-!5_unrolled:
-! ld ,a
-! srl a,2,x1 ! 4a
-! addxcc a,x1,x ! 5a + c
-! sll a,30,x2
-! addx %g0,x2,x2
-! st x,
-!
-! ld ,a
-! srl a,2,y1
-! addxcc a,y1,x
-! sll a,30,y2
-! addx %g0,y2,y2
-! st x,
-!
-!8_unrolled:
-! ld ,a
-! srl a,3,x1 ! 8a
-! addxcc y2,x1,x
-! sll a,29,x2
-! st x,
-!
-! ld ,a
-! srl a,3,y1
-! addxcc x2,y1,y
-! sll a,29,y2
-! st x,
+! res_ptr o0
+! s1_ptr o1
+! size o2
+! s2_limb o3
#include <sysdep.h>
ENTRY(__mpn_mul_1)
- ! Make S1_PTR and RES_PTR point at the end of their blocks
- ! and put (- 4 x SIZE) in index/loop counter.
- sll %o2,2,%o2
- add %o0,%o2,%o4 ! RES_PTR in o4 since o0 is retval
- add %o1,%o2,%o1
- sub %g0,%o2,%o2
+ sll %o2,4,%g1
+ mov %o7,%g4 ! Save return address register
+ and %g1,(4-1)<<4,%g1
+1: call 2f
+ add %o7,3f-1b,%g3
+2: mov %g4,%o7 ! Restore return address register
+ jmp %g3+%g1
+ ld [%o1+0],%o4 ! 1
- cmp %o3,0xfff
- bgu LOC(large)
+ .align 4
+3:
+LOC(00):
+ add %o0,-4,%o0
+ add %o1,-4,%o1
+ b LOC(loop00) /* 4, 8, 12, ... */
+ orcc %g0,%g0,%g2
+LOC(01):
+ b LOC(loop01) /* 1, 5, 9, ... */
+ orcc %g0,%g0,%g2
nop
+ nop
+LOC(10):
+ add %o0,-12,%o0 /* 2, 6, 10, ... */
+ add %o1,4,%o1
+ b LOC(loop10)
+ orcc %g0,%g0,%g2
+ nop
+LOC(11):
+ add %o0,-8,%o0 /* 3, 7, 11, ... */
+ add %o1,-8,%o1
+ b LOC(loop11)
+ orcc %g0,%g0,%g2
- ld [%o1+%o2],%o5
- mov 0,%o0
- b LOC(0)
- add %o4,-4,%o4
-LOC(loop0):
- st %g1,[%o4+%o2]
-LOC(0): wr %g0,%o3,%y
- sra %o5,31,%g2
- and %o3,%g2,%g2
- andcc %g1,0,%g1
- mulscc %g1,%o5,%g1
- mulscc %g1,%o5,%g1
- mulscc %g1,%o5,%g1
- mulscc %g1,%o5,%g1
- mulscc %g1,%o5,%g1
- mulscc %g1,%o5,%g1
- mulscc %g1,%o5,%g1
- mulscc %g1,%o5,%g1
- mulscc %g1,%o5,%g1
- mulscc %g1,%o5,%g1
- mulscc %g1,%o5,%g1
- mulscc %g1,%o5,%g1
- mulscc %g1,0,%g1
- sra %g1,20,%g4
- sll %g1,12,%g1
- rd %y,%g3
- srl %g3,20,%g3
- or %g1,%g3,%g1
-
- addcc %g1,%o0,%g1
- addx %g2,%g4,%o0 ! add sign-compensation and cy to hi limb
- addcc %o2,4,%o2 ! loop counter
- bne,a LOC(loop0)
- ld [%o1+%o2],%o5
-
- retl
- st %g1,[%o4+%o2]
-
-
-LOC(large):
- ld [%o1+%o2],%o5
- mov 0,%o0
- sra %o3,31,%g4 ! g4 = mask of ones iff S2_LIMB < 0
- b LOC(1)
- add %o4,-4,%o4
LOC(loop):
- st %g3,[%o4+%o2]
-LOC(1): wr %g0,%o5,%y
- and %o5,%g4,%g2 ! g2 = S1_LIMB iff S2_LIMB < 0, else 0
- andcc %g0,%g0,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%g0,%g1
- rd %y,%g3
- addcc %g3,%o0,%g3
- addx %g2,%g1,%o0 ! add sign-compensation and cy to hi limb
- addcc %o2,4,%o2 ! loop counter
- bne,a LOC(loop)
- ld [%o1+%o2],%o5
+ addcc %g3,%g2,%g3 ! 1
+ ld [%o1+4],%o4 ! 2
+ st %g3,[%o0+0] ! 1
+ rd %y,%g2 ! 1
+LOC(loop00):
+ umul %o4,%o3,%g3 ! 2
+ addxcc %g3,%g2,%g3 ! 2
+ ld [%o1+8],%o4 ! 3
+ st %g3,[%o0+4] ! 2
+ rd %y,%g2 ! 2
+LOC(loop11):
+ umul %o4,%o3,%g3 ! 3
+ addxcc %g3,%g2,%g3 ! 3
+ ld [%o1+12],%o4 ! 4
+ add %o1,16,%o1
+ st %g3,[%o0+8] ! 3
+ rd %y,%g2 ! 3
+LOC(loop10):
+ umul %o4,%o3,%g3 ! 4
+ addxcc %g3,%g2,%g3 ! 4
+ ld [%o1+0],%o4 ! 1
+ st %g3,[%o0+12] ! 4
+ add %o0,16,%o0
+ rd %y,%g2 ! 4
+ addx %g0,%g2,%g2
+LOC(loop01):
+ addcc %o2,-4,%o2
+ bg LOC(loop)
+ umul %o4,%o3,%g3 ! 1
+ addcc %g3,%g2,%g3 ! 4
+ st %g3,[%o0+0] ! 4
+ rd %y,%g2 ! 4
retl
- st %g3,[%o4+%o2]
+ addx %g0,%g2,%o0
END(__mpn_mul_1)
diff --git a/sysdeps/sparc/sparc32/pthread_barrier_wait.c b/sysdeps/sparc/sparc32/pthread_barrier_wait.c
deleted file mode 100644
index e5ef911f62..0000000000
--- a/sysdeps/sparc/sparc32/pthread_barrier_wait.c
+++ /dev/null
@@ -1 +0,0 @@
-#error No support for pthread barriers on pre-v9 sparc.
diff --git a/sysdeps/sparc/sparc32/pthread_spin_lock.S b/sysdeps/sparc/sparc32/pthread_spin_lock.S
index a2feb1926a..d8d887a36f 100644
--- a/sysdeps/sparc/sparc32/pthread_spin_lock.S
+++ b/sysdeps/sparc/sparc32/pthread_spin_lock.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc32/pthread_spin_trylock.S b/sysdeps/sparc/sparc32/pthread_spin_trylock.S
index 2574eff88f..0f63a82b1f 100644
--- a/sysdeps/sparc/sparc32/pthread_spin_trylock.S
+++ b/sysdeps/sparc/sparc32/pthread_spin_trylock.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <pthread-errnos.h>
diff --git a/sysdeps/sparc/sparc32/pthreaddef.h b/sysdeps/sparc/sparc32/pthreaddef.h
index 57fe5fd514..b4bca920a5 100644
--- a/sysdeps/sparc/sparc32/pthreaddef.h
+++ b/sysdeps/sparc/sparc32/pthreaddef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Default stack size. */
#define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024)
diff --git a/sysdeps/sparc/sparc32/q_add.c b/sysdeps/sparc/sparc32/q_add.c
index 81c84d2b97..beaad121c0 100644
--- a/sysdeps/sparc/sparc32/q_add.c
+++ b/sysdeps/sparc/sparc32/q_add.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a + b
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "quad.h"
diff --git a/sysdeps/sparc/sparc32/q_cmp.c b/sysdeps/sparc/sparc32/q_cmp.c
index 6700df153b..866be9164a 100644
--- a/sysdeps/sparc/sparc32/q_cmp.c
+++ b/sysdeps/sparc/sparc32/q_cmp.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Compare a and b, return float condition code.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "quad.h"
diff --git a/sysdeps/sparc/sparc32/q_cmpe.c b/sysdeps/sparc/sparc32/q_cmpe.c
index b2c5ddfd00..f935eb1c29 100644
--- a/sysdeps/sparc/sparc32/q_cmpe.c
+++ b/sysdeps/sparc/sparc32/q_cmpe.c
@@ -1,7 +1,7 @@
/* Software floating-point emulation.
Compare a and b, return float condition code.
Signal exception (unless masked) if unordered.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -18,7 +18,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "quad.h"
diff --git a/sysdeps/sparc/sparc32/q_div.c b/sysdeps/sparc/sparc32/q_div.c
index 66e50b2836..7979b64bf5 100644
--- a/sysdeps/sparc/sparc32/q_div.c
+++ b/sysdeps/sparc/sparc32/q_div.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a / b
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "quad.h"
diff --git a/sysdeps/sparc/sparc32/q_dtoq.c b/sysdeps/sparc/sparc32/q_dtoq.c
index 17a1b6ac49..94cc45f925 100644
--- a/sysdeps/sparc/sparc32/q_dtoq.c
+++ b/sysdeps/sparc/sparc32/q_dtoq.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return (long double)(a)
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "double.h"
@@ -32,7 +32,7 @@ long double _Q_dtoq(const double a)
FP_INIT_ROUNDMODE;
FP_UNPACK_RAW_D(A, a);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
FP_EXTEND(Q,D,4,2,C,A);
#else
FP_EXTEND(Q,D,2,1,C,A);
diff --git a/sysdeps/sparc/sparc32/q_feq.c b/sysdeps/sparc/sparc32/q_feq.c
index 3b1e00c7c6..d6b7573cd7 100644
--- a/sysdeps/sparc/sparc32/q_feq.c
+++ b/sysdeps/sparc/sparc32/q_feq.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 if a == b
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "quad.h"
diff --git a/sysdeps/sparc/sparc32/q_fge.c b/sysdeps/sparc/sparc32/q_fge.c
index c0aa6051aa..a1687b48d1 100644
--- a/sysdeps/sparc/sparc32/q_fge.c
+++ b/sysdeps/sparc/sparc32/q_fge.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 if a >= b
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "quad.h"
diff --git a/sysdeps/sparc/sparc32/q_fgt.c b/sysdeps/sparc/sparc32/q_fgt.c
index 81a7e5330c..ed8f8a59dd 100644
--- a/sysdeps/sparc/sparc32/q_fgt.c
+++ b/sysdeps/sparc/sparc32/q_fgt.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 if a > b
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "quad.h"
diff --git a/sysdeps/sparc/sparc32/q_fle.c b/sysdeps/sparc/sparc32/q_fle.c
index e2d8ed5cea..037b1f444c 100644
--- a/sysdeps/sparc/sparc32/q_fle.c
+++ b/sysdeps/sparc/sparc32/q_fle.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 if a <= b
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "quad.h"
diff --git a/sysdeps/sparc/sparc32/q_flt.c b/sysdeps/sparc/sparc32/q_flt.c
index e26fc6a484..b707169c5e 100644
--- a/sysdeps/sparc/sparc32/q_flt.c
+++ b/sysdeps/sparc/sparc32/q_flt.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 if a < b
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "quad.h"
diff --git a/sysdeps/sparc/sparc32/q_fne.c b/sysdeps/sparc/sparc32/q_fne.c
index bb35da52de..8d1d4a3849 100644
--- a/sysdeps/sparc/sparc32/q_fne.c
+++ b/sysdeps/sparc/sparc32/q_fne.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 if a != b
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "quad.h"
diff --git a/sysdeps/sparc/sparc32/q_itoq.c b/sysdeps/sparc/sparc32/q_itoq.c
index 3f94204815..9b639b0699 100644
--- a/sysdeps/sparc/sparc32/q_itoq.c
+++ b/sysdeps/sparc/sparc32/q_itoq.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return (long double)(a)
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define FP_NO_EXCEPTIONS
#include "soft-fp.h"
diff --git a/sysdeps/sparc/sparc32/q_lltoq.c b/sysdeps/sparc/sparc32/q_lltoq.c
index c785c2b98b..35c8005949 100644
--- a/sysdeps/sparc/sparc32/q_lltoq.c
+++ b/sysdeps/sparc/sparc32/q_lltoq.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return (long double)a
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define FP_NO_EXCEPTIONS
#include "soft-fp.h"
diff --git a/sysdeps/sparc/sparc32/q_mul.c b/sysdeps/sparc/sparc32/q_mul.c
index 3bb5b7a819..216da468b9 100644
--- a/sysdeps/sparc/sparc32/q_mul.c
+++ b/sysdeps/sparc/sparc32/q_mul.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a * b
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "quad.h"
diff --git a/sysdeps/sparc/sparc32/q_neg.c b/sysdeps/sparc/sparc32/q_neg.c
index 1e0e0b7678..e14be971e9 100644
--- a/sysdeps/sparc/sparc32/q_neg.c
+++ b/sysdeps/sparc/sparc32/q_neg.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return !a
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "quad.h"
diff --git a/sysdeps/sparc/sparc32/q_qtod.c b/sysdeps/sparc/sparc32/q_qtod.c
index 5ad733a694..60ab0acc5c 100644
--- a/sysdeps/sparc/sparc32/q_qtod.c
+++ b/sysdeps/sparc/sparc32/q_qtod.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return (double)a
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "double.h"
@@ -32,7 +32,7 @@ double _Q_qtod(const long double a)
FP_INIT_ROUNDMODE;
FP_UNPACK_SEMIRAW_Q(A, a);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
FP_TRUNC(D,Q,2,4,R,A);
#else
FP_TRUNC(D,Q,1,2,R,A);
diff --git a/sysdeps/sparc/sparc32/q_qtoi.c b/sysdeps/sparc/sparc32/q_qtoi.c
index 0b5af2327e..b3456c852a 100644
--- a/sysdeps/sparc/sparc32/q_qtoi.c
+++ b/sysdeps/sparc/sparc32/q_qtoi.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return (int)a
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define FP_ROUNDMODE FP_RND_ZERO
#include "soft-fp.h"
diff --git a/sysdeps/sparc/sparc32/q_qtoll.c b/sysdeps/sparc/sparc32/q_qtoll.c
index 34c7b0b301..d9d31f8a96 100644
--- a/sysdeps/sparc/sparc32/q_qtoll.c
+++ b/sysdeps/sparc/sparc32/q_qtoll.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return (long long)a
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define FP_ROUNDMODE FP_RND_ZERO
#include "soft-fp.h"
diff --git a/sysdeps/sparc/sparc32/q_qtos.c b/sysdeps/sparc/sparc32/q_qtos.c
index 8e21c8270d..917b7f154f 100644
--- a/sysdeps/sparc/sparc32/q_qtos.c
+++ b/sysdeps/sparc/sparc32/q_qtos.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return (float)a
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "single.h"
@@ -32,7 +32,7 @@ float _Q_qtos(const long double a)
FP_INIT_ROUNDMODE;
FP_UNPACK_SEMIRAW_Q(A, a);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
FP_TRUNC(S,Q,1,4,R,A);
#else
FP_TRUNC(S,Q,1,2,R,A);
diff --git a/sysdeps/sparc/sparc32/q_qtou.c b/sysdeps/sparc/sparc32/q_qtou.c
index 0f2e55780a..51745b345a 100644
--- a/sysdeps/sparc/sparc32/q_qtou.c
+++ b/sysdeps/sparc/sparc32/q_qtou.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return (unsigned int)a
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define FP_ROUNDMODE FP_RND_ZERO
#include "soft-fp.h"
diff --git a/sysdeps/sparc/sparc32/q_qtoull.c b/sysdeps/sparc/sparc32/q_qtoull.c
index 1501e81fba..ff8a168130 100644
--- a/sysdeps/sparc/sparc32/q_qtoull.c
+++ b/sysdeps/sparc/sparc32/q_qtoull.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return (unsigned long long)a
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define FP_ROUNDMODE FP_RND_ZERO
#include "soft-fp.h"
diff --git a/sysdeps/sparc/sparc32/q_sqrt.c b/sysdeps/sparc/sparc32/q_sqrt.c
index d4d455c6cb..ad41bfa5ff 100644
--- a/sysdeps/sparc/sparc32/q_sqrt.c
+++ b/sysdeps/sparc/sparc32/q_sqrt.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return sqrtl(a)
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "quad.h"
diff --git a/sysdeps/sparc/sparc32/q_stoq.c b/sysdeps/sparc/sparc32/q_stoq.c
index 97896d73bb..9ab0ea83fe 100644
--- a/sysdeps/sparc/sparc32/q_stoq.c
+++ b/sysdeps/sparc/sparc32/q_stoq.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
c = (long double)(a)
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "single.h"
@@ -31,7 +31,7 @@ long double _Q_stoq(const float a)
long double c;
FP_UNPACK_RAW_S(A, a);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
FP_EXTEND(Q,S,4,1,C,A);
#else
FP_EXTEND(Q,S,2,1,C,A);
diff --git a/sysdeps/sparc/sparc32/q_sub.c b/sysdeps/sparc/sparc32/q_sub.c
index dd25722c25..37b1735aec 100644
--- a/sysdeps/sparc/sparc32/q_sub.c
+++ b/sysdeps/sparc/sparc32/q_sub.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
c = a - b
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "quad.h"
diff --git a/sysdeps/sparc/sparc32/q_ulltoq.c b/sysdeps/sparc/sparc32/q_ulltoq.c
index abed54fc33..8b51668d85 100644
--- a/sysdeps/sparc/sparc32/q_ulltoq.c
+++ b/sysdeps/sparc/sparc32/q_ulltoq.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return (long double)(a)
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define FP_NO_EXCEPTIONS
#include "soft-fp.h"
diff --git a/sysdeps/sparc/sparc32/q_util.c b/sysdeps/sparc/sparc32/q_util.c
index 82b7a84c37..342945e8aa 100644
--- a/sysdeps/sparc/sparc32/q_util.c
+++ b/sysdeps/sparc/sparc32/q_util.c
@@ -1,7 +1,7 @@
/* Software floating-point emulation.
Helper routine for _Q_* routines.
Simulate exceptions using double arithmetics.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <float.h>
#include <math.h>
diff --git a/sysdeps/sparc/sparc32/q_utoq.c b/sysdeps/sparc/sparc32/q_utoq.c
index cd0707e037..0f6554d82b 100644
--- a/sysdeps/sparc/sparc32/q_utoq.c
+++ b/sysdeps/sparc/sparc32/q_utoq.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
c = (long double)(a)
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define FP_NO_EXCEPTIONS
#include "soft-fp.h"
diff --git a/sysdeps/sparc/sparc32/rem.S b/sysdeps/sparc/sparc32/rem.S
index 79e09a9ef8..a2694e699e 100644
--- a/sysdeps/sparc/sparc32/rem.S
+++ b/sysdeps/sparc/sparc32/rem.S
@@ -1,363 +1,21 @@
- /* This file is generated from divrem.m4; DO NOT EDIT! */
/*
- * Division and remainder, from Appendix E of the Sparc Version 8
- * Architecture Manual, with fixes from Gordon Irlam.
+ * Sparc v8 has divide.
*/
-/*
- * Input: dividend and divisor in %o0 and %o1 respectively.
- *
- * m4 parameters:
- * .rem name of function to generate
- * rem rem=div => %o0 / %o1; rem=rem => %o0 % %o1
- * true true=true => signed; true=false => unsigned
- *
- * Algorithm parameters:
- * N how many bits per iteration we try to get (4)
- * WORDSIZE total number of bits (32)
- *
- * Derived constants:
- * TOPBITS number of bits in the top decade of a number
- *
- * Important variables:
- * Q the partial quotient under development (initially 0)
- * R the remainder so far, initially the dividend
- * ITER number of main division loop iterations required;
- * equal to ceil(log2(quotient) / N). Note that this
- * is the log base (2^N) of the quotient.
- * V the current comparand, initially divisor*2^(ITER*N-1)
- *
- * Cost:
- * Current estimate for non-large dividend is
- * ceil(log2(quotient) / N) * (10 + 7N/2) + C
- * A large dividend is one greater than 2^(31-TOPBITS) and takes a
- * different path, as the upper bits of the quotient must be developed
- * one bit at a time.
- */
-
-
-
#include <sysdep.h>
-#include <sys/trap.h>
ENTRY(.rem)
- ! compute sign of result; if neither is negative, no problem
- orcc %o1, %o0, %g0 ! either negative?
- bge 2f ! no, go do the divide
- mov %o0, %g3 ! sign of remainder matches %o0
- tst %o1
- bge 1f
- tst %o0
- ! %o1 is definitely negative; %o0 might also be negative
- bge 2f ! if %o0 not negative...
- sub %g0, %o1, %o1 ! in any case, make %o1 nonneg
-1: ! %o0 is negative, %o1 is nonnegative
- sub %g0, %o0, %o0 ! make %o0 nonnegative
-2:
-
- ! Ready to divide. Compute size of quotient; scale comparand.
- orcc %o1, %g0, %o5
- bne 1f
- mov %o0, %o3
-
- ! Divide by zero trap. If it returns, return 0 (about as
- ! wrong as possible, but that is what SunOS does...).
- ta ST_DIV0
- retl
- clr %o0
-
-1:
- cmp %o3, %o5 ! if %o1 exceeds %o0, done
- blu LOC(got_result) ! (and algorithm fails otherwise)
- clr %o2
- sethi %hi(1 << (32 - 4 - 1)), %g1
- cmp %o3, %g1
- blu LOC(not_really_big)
- clr %o4
-
- ! Here the dividend is >= 2**(31-N) or so. We must be careful here,
- ! as our usual N-at-a-shot divide step will cause overflow and havoc.
- ! The number of bits in the result here is N*ITER+SC, where SC <= N.
- ! Compute ITER in an unorthodox manner: know we need to shift V into
- ! the top decade: so do not even bother to compare to R.
- 1:
- cmp %o5, %g1
- bgeu 3f
- mov 1, %g2
- sll %o5, 4, %o5
- b 1b
- add %o4, 1, %o4
-
- ! Now compute %g2.
- 2: addcc %o5, %o5, %o5
- bcc LOC(not_too_big)
- add %g2, 1, %g2
-
- ! We get here if the %o1 overflowed while shifting.
- ! This means that %o3 has the high-order bit set.
- ! Restore %o5 and subtract from %o3.
- sll %g1, 4, %g1 ! high order bit
- srl %o5, 1, %o5 ! rest of %o5
- add %o5, %g1, %o5
- b LOC(do_single_div)
- sub %g2, 1, %g2
-
- LOC(not_too_big):
- 3: cmp %o5, %o3
- blu 2b
- nop
- be LOC(do_single_div)
- nop
- /* NB: these are commented out in the V8-Sparc manual as well */
- /* (I do not understand this) */
- ! %o5 > %o3: went too far: back up 1 step
- ! srl %o5, 1, %o5
- ! dec %g2
- ! do single-bit divide steps
- !
- ! We have to be careful here. We know that %o3 >= %o5, so we can do the
- ! first divide step without thinking. BUT, the others are conditional,
- ! and are only done if %o3 >= 0. Because both %o3 and %o5 may have the high-
- ! order bit set in the first step, just falling into the regular
- ! division loop will mess up the first time around.
- ! So we unroll slightly...
- LOC(do_single_div):
- subcc %g2, 1, %g2
- bl LOC(end_regular_divide)
- nop
- sub %o3, %o5, %o3
- mov 1, %o2
- b LOC(end_single_divloop)
- nop
- LOC(single_divloop):
- sll %o2, 1, %o2
- bl 1f
- srl %o5, 1, %o5
- ! %o3 >= 0
- sub %o3, %o5, %o3
- b 2f
- add %o2, 1, %o2
- 1: ! %o3 < 0
- add %o3, %o5, %o3
- sub %o2, 1, %o2
- 2:
- LOC(end_single_divloop):
- subcc %g2, 1, %g2
- bge LOC(single_divloop)
- tst %o3
- b,a LOC(end_regular_divide)
-
-LOC(not_really_big):
-1:
- sll %o5, 4, %o5
- cmp %o5, %o3
- bleu 1b
- addcc %o4, 1, %o4
- be LOC(got_result)
- sub %o4, 1, %o4
-
- tst %o3 ! set up for initial iteration
-LOC(divloop):
- sll %o2, 4, %o2
- ! depth 1, accumulated bits 0
- bl LOC(1.16)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- ! depth 2, accumulated bits 1
- bl LOC(2.17)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- ! depth 3, accumulated bits 3
- bl LOC(3.19)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- ! depth 4, accumulated bits 7
- bl LOC(4.23)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- b 9f
- add %o2, (7*2+1), %o2
-
-LOC(4.23):
- ! remainder is negative
- addcc %o3,%o5,%o3
- b 9f
- add %o2, (7*2-1), %o2
-
-
-LOC(3.19):
- ! remainder is negative
- addcc %o3,%o5,%o3
- ! depth 4, accumulated bits 5
- bl LOC(4.21)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- b 9f
- add %o2, (5*2+1), %o2
-
-LOC(4.21):
- ! remainder is negative
- addcc %o3,%o5,%o3
- b 9f
- add %o2, (5*2-1), %o2
-
-
-
-LOC(2.17):
- ! remainder is negative
- addcc %o3,%o5,%o3
- ! depth 3, accumulated bits 1
- bl LOC(3.17)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- ! depth 4, accumulated bits 3
- bl LOC(4.19)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- b 9f
- add %o2, (3*2+1), %o2
-
-LOC(4.19):
- ! remainder is negative
- addcc %o3,%o5,%o3
- b 9f
- add %o2, (3*2-1), %o2
-
-
-LOC(3.17):
- ! remainder is negative
- addcc %o3,%o5,%o3
- ! depth 4, accumulated bits 1
- bl LOC(4.17)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- b 9f
- add %o2, (1*2+1), %o2
-
-LOC(4.17):
- ! remainder is negative
- addcc %o3,%o5,%o3
- b 9f
- add %o2, (1*2-1), %o2
-
-
-
-
-LOC(1.16):
- ! remainder is negative
- addcc %o3,%o5,%o3
- ! depth 2, accumulated bits -1
- bl LOC(2.15)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- ! depth 3, accumulated bits -1
- bl LOC(3.15)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- ! depth 4, accumulated bits -1
- bl LOC(4.15)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- b 9f
- add %o2, (-1*2+1), %o2
-
-LOC(4.15):
- ! remainder is negative
- addcc %o3,%o5,%o3
- b 9f
- add %o2, (-1*2-1), %o2
-
-
-LOC(3.15):
- ! remainder is negative
- addcc %o3,%o5,%o3
- ! depth 4, accumulated bits -3
- bl LOC(4.13)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- b 9f
- add %o2, (-3*2+1), %o2
-
-LOC(4.13):
- ! remainder is negative
- addcc %o3,%o5,%o3
- b 9f
- add %o2, (-3*2-1), %o2
-
-
-
-LOC(2.15):
- ! remainder is negative
- addcc %o3,%o5,%o3
- ! depth 3, accumulated bits -3
- bl LOC(3.13)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- ! depth 4, accumulated bits -5
- bl LOC(4.11)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- b 9f
- add %o2, (-5*2+1), %o2
-
-LOC(4.11):
- ! remainder is negative
- addcc %o3,%o5,%o3
- b 9f
- add %o2, (-5*2-1), %o2
-
-
-LOC(3.13):
- ! remainder is negative
- addcc %o3,%o5,%o3
- ! depth 4, accumulated bits -7
- bl LOC(4.9)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- b 9f
- add %o2, (-7*2+1), %o2
-
-LOC(4.9):
- ! remainder is negative
- addcc %o3,%o5,%o3
- b 9f
- add %o2, (-7*2-1), %o2
-
-
-
-
-9:
-LOC(end_regular_divide):
- subcc %o4, 1, %o4
- bge LOC(divloop)
- tst %o3
- bl,a LOC(got_result)
- ! non-restoring fixup here (one instruction only!)
- add %o3, %o1, %o3
-
-LOC(got_result):
- ! check to see if answer should be < 0
- tst %g3
- bl,a 1f
- sub %g0, %o3, %o3
-1:
+ sra %o0, 31, %o2
+ wr %o2, 0, %y
+ nop
+ nop
+ nop
+ sdivcc %o0, %o1, %o2
+ bvs,a 1f
+ xnor %o2, %g0, %o2
+1: smul %o2, %o1, %o2
retl
- mov %o3, %o0
+ sub %o0, %o2, %o0
END(.rem)
diff --git a/sysdeps/sparc/sparc32/rshift.S b/sysdeps/sparc/sparc32/rshift.S
index 925decb485..6487ddf1ac 100644
--- a/sysdeps/sparc/sparc32/rshift.S
+++ b/sysdeps/sparc/sparc32/rshift.S
@@ -1,6 +1,6 @@
! sparc __mpn_rshift --
!
-! Copyright (C) 1995-2018 Free Software Foundation, Inc.
+! Copyright (C) 1995-2019 Free Software Foundation, Inc.
!
! This file is part of the GNU MP Library.
!
@@ -16,7 +16,7 @@
!
! You should have received a copy of the GNU Lesser General Public License
! along with the GNU MP Library; see the file COPYING.LIB. If not,
-! see <http://www.gnu.org/licenses/>.
+! see <https://www.gnu.org/licenses/>.
! INPUT PARAMETERS
diff --git a/sysdeps/sparc/sparc32/sdiv.S b/sysdeps/sparc/sparc32/sdiv.S
index ab29718827..bfc4acf2fa 100644
--- a/sysdeps/sparc/sparc32/sdiv.S
+++ b/sysdeps/sparc/sparc32/sdiv.S
@@ -1,363 +1,20 @@
- /* This file is generated from divrem.m4; DO NOT EDIT! */
/*
- * Division and remainder, from Appendix E of the Sparc Version 8
- * Architecture Manual, with fixes from Gordon Irlam.
+ * Sparc v8 has divide.
*/
-/*
- * Input: dividend and divisor in %o0 and %o1 respectively.
- *
- * m4 parameters:
- * .div name of function to generate
- * div div=div => %o0 / %o1; div=rem => %o0 % %o1
- * true true=true => signed; true=false => unsigned
- *
- * Algorithm parameters:
- * N how many bits per iteration we try to get (4)
- * WORDSIZE total number of bits (32)
- *
- * Derived constants:
- * TOPBITS number of bits in the top decade of a number
- *
- * Important variables:
- * Q the partial quotient under development (initially 0)
- * R the remainder so far, initially the dividend
- * ITER number of main division loop iterations required;
- * equal to ceil(log2(quotient) / N). Note that this
- * is the log base (2^N) of the quotient.
- * V the current comparand, initially divisor*2^(ITER*N-1)
- *
- * Cost:
- * Current estimate for non-large dividend is
- * ceil(log2(quotient) / N) * (10 + 7N/2) + C
- * A large dividend is one greater than 2^(31-TOPBITS) and takes a
- * different path, as the upper bits of the quotient must be developed
- * one bit at a time.
- */
-
-
-
#include <sysdep.h>
-#include <sys/trap.h>
ENTRY(.div)
- ! compute sign of result; if neither is negative, no problem
- orcc %o1, %o0, %g0 ! either negative?
- bge 2f ! no, go do the divide
- xor %o1, %o0, %g3 ! compute sign in any case
- tst %o1
- bge 1f
- tst %o0
- ! %o1 is definitely negative; %o0 might also be negative
- bge 2f ! if %o0 not negative...
- sub %g0, %o1, %o1 ! in any case, make %o1 nonneg
-1: ! %o0 is negative, %o1 is nonnegative
- sub %g0, %o0, %o0 ! make %o0 nonnegative
-2:
-
- ! Ready to divide. Compute size of quotient; scale comparand.
- orcc %o1, %g0, %o5
- bne 1f
- mov %o0, %o3
-
- ! Divide by zero trap. If it returns, return 0 (about as
- ! wrong as possible, but that is what SunOS does...).
- ta ST_DIV0
- retl
- clr %o0
-
-1:
- cmp %o3, %o5 ! if %o1 exceeds %o0, done
- blu LOC(got_result) ! (and algorithm fails otherwise)
- clr %o2
- sethi %hi(1 << (32 - 4 - 1)), %g1
- cmp %o3, %g1
- blu LOC(not_really_big)
- clr %o4
-
- ! Here the dividend is >= 2**(31-N) or so. We must be careful here,
- ! as our usual N-at-a-shot divide step will cause overflow and havoc.
- ! The number of bits in the result here is N*ITER+SC, where SC <= N.
- ! Compute ITER in an unorthodox manner: know we need to shift V into
- ! the top decade: so do not even bother to compare to R.
- 1:
- cmp %o5, %g1
- bgeu 3f
- mov 1, %g2
- sll %o5, 4, %o5
- b 1b
- add %o4, 1, %o4
-
- ! Now compute %g2.
- 2: addcc %o5, %o5, %o5
- bcc LOC(not_too_big)
- add %g2, 1, %g2
-
- ! We get here if the %o1 overflowed while shifting.
- ! This means that %o3 has the high-order bit set.
- ! Restore %o5 and subtract from %o3.
- sll %g1, 4, %g1 ! high order bit
- srl %o5, 1, %o5 ! rest of %o5
- add %o5, %g1, %o5
- b LOC(do_single_div)
- sub %g2, 1, %g2
-
- LOC(not_too_big):
- 3: cmp %o5, %o3
- blu 2b
- nop
- be LOC(do_single_div)
- nop
- /* NB: these are commented out in the V8-Sparc manual as well */
- /* (I do not understand this) */
- ! %o5 > %o3: went too far: back up 1 step
- ! srl %o5, 1, %o5
- ! dec %g2
- ! do single-bit divide steps
- !
- ! We have to be careful here. We know that %o3 >= %o5, so we can do the
- ! first divide step without thinking. BUT, the others are conditional,
- ! and are only done if %o3 >= 0. Because both %o3 and %o5 may have the high-
- ! order bit set in the first step, just falling into the regular
- ! division loop will mess up the first time around.
- ! So we unroll slightly...
- LOC(do_single_div):
- subcc %g2, 1, %g2
- bl LOC(end_regular_divide)
- nop
- sub %o3, %o5, %o3
- mov 1, %o2
- b LOC(end_single_divloop)
- nop
- LOC(single_divloop):
- sll %o2, 1, %o2
- bl 1f
- srl %o5, 1, %o5
- ! %o3 >= 0
- sub %o3, %o5, %o3
- b 2f
- add %o2, 1, %o2
- 1: ! %o3 < 0
- add %o3, %o5, %o3
- sub %o2, 1, %o2
- 2:
- LOC(end_single_divloop):
- subcc %g2, 1, %g2
- bge LOC(single_divloop)
- tst %o3
- b,a LOC(end_regular_divide)
-
-LOC(not_really_big):
-1:
- sll %o5, 4, %o5
- cmp %o5, %o3
- bleu 1b
- addcc %o4, 1, %o4
- be LOC(got_result)
- sub %o4, 1, %o4
-
- tst %o3 ! set up for initial iteration
-LOC(divloop):
- sll %o2, 4, %o2
- ! depth 1, accumulated bits 0
- bl LOC(1.16)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- ! depth 2, accumulated bits 1
- bl LOC(2.17)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- ! depth 3, accumulated bits 3
- bl LOC(3.19)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- ! depth 4, accumulated bits 7
- bl LOC(4.23)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- b 9f
- add %o2, (7*2+1), %o2
-
-LOC(4.23):
- ! remainder is negative
- addcc %o3,%o5,%o3
- b 9f
- add %o2, (7*2-1), %o2
-
-
-LOC(3.19):
- ! remainder is negative
- addcc %o3,%o5,%o3
- ! depth 4, accumulated bits 5
- bl LOC(4.21)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- b 9f
- add %o2, (5*2+1), %o2
-
-LOC(4.21):
- ! remainder is negative
- addcc %o3,%o5,%o3
- b 9f
- add %o2, (5*2-1), %o2
-
-
-
-LOC(2.17):
- ! remainder is negative
- addcc %o3,%o5,%o3
- ! depth 3, accumulated bits 1
- bl LOC(3.17)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- ! depth 4, accumulated bits 3
- bl LOC(4.19)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- b 9f
- add %o2, (3*2+1), %o2
-
-LOC(4.19):
- ! remainder is negative
- addcc %o3,%o5,%o3
- b 9f
- add %o2, (3*2-1), %o2
-
-
-LOC(3.17):
- ! remainder is negative
- addcc %o3,%o5,%o3
- ! depth 4, accumulated bits 1
- bl LOC(4.17)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- b 9f
- add %o2, (1*2+1), %o2
-
-LOC(4.17):
- ! remainder is negative
- addcc %o3,%o5,%o3
- b 9f
- add %o2, (1*2-1), %o2
-
-
-
-
-LOC(1.16):
- ! remainder is negative
- addcc %o3,%o5,%o3
- ! depth 2, accumulated bits -1
- bl LOC(2.15)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- ! depth 3, accumulated bits -1
- bl LOC(3.15)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- ! depth 4, accumulated bits -1
- bl LOC(4.15)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- b 9f
- add %o2, (-1*2+1), %o2
-
-LOC(4.15):
- ! remainder is negative
- addcc %o3,%o5,%o3
- b 9f
- add %o2, (-1*2-1), %o2
-
-
-LOC(3.15):
- ! remainder is negative
- addcc %o3,%o5,%o3
- ! depth 4, accumulated bits -3
- bl LOC(4.13)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- b 9f
- add %o2, (-3*2+1), %o2
-
-LOC(4.13):
- ! remainder is negative
- addcc %o3,%o5,%o3
- b 9f
- add %o2, (-3*2-1), %o2
-
-
-
-LOC(2.15):
- ! remainder is negative
- addcc %o3,%o5,%o3
- ! depth 3, accumulated bits -3
- bl LOC(3.13)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- ! depth 4, accumulated bits -5
- bl LOC(4.11)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- b 9f
- add %o2, (-5*2+1), %o2
-
-LOC(4.11):
- ! remainder is negative
- addcc %o3,%o5,%o3
- b 9f
- add %o2, (-5*2-1), %o2
-
-
-LOC(3.13):
- ! remainder is negative
- addcc %o3,%o5,%o3
- ! depth 4, accumulated bits -7
- bl LOC(4.9)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- b 9f
- add %o2, (-7*2+1), %o2
-
-LOC(4.9):
- ! remainder is negative
- addcc %o3,%o5,%o3
- b 9f
- add %o2, (-7*2-1), %o2
-
-
-
-
-9:
-LOC(end_regular_divide):
- subcc %o4, 1, %o4
- bge LOC(divloop)
- tst %o3
- bl,a LOC(got_result)
- ! non-restoring fixup here (one instruction only!)
- sub %o2, 1, %o2
-
-LOC(got_result):
- ! check to see if answer should be < 0
- tst %g3
- bl,a 1f
- sub %g0, %o2, %o2
-1:
- retl
- mov %o2, %o0
+ sra %o0, 31, %o2
+ wr %o2, 0, %y
+ nop
+ nop
+ nop
+ sdivcc %o0, %o1, %o0
+ bvs,a 1f
+ xnor %o0, %g0, %o0
+1: retl
+ nop
END(.div)
diff --git a/sysdeps/sparc/sparc32/sem_post.c b/sysdeps/sparc/sparc32/sem_post.c
deleted file mode 100644
index 623e6bf9a7..0000000000
--- a/sysdeps/sparc/sparc32/sem_post.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/* sem_post -- post to a POSIX semaphore. Generic futex-using version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <atomic.h>
-#include <errno.h>
-#include <sysdep.h>
-#include <lowlevellock.h>
-#include <internaltypes.h>
-#include <semaphore.h>
-#include <futex-internal.h>
-
-#include <shlib-compat.h>
-
-
-/* See sem_wait for an explanation of the algorithm. */
-int
-__new_sem_post (sem_t *sem)
-{
- struct new_sem *isem = (struct new_sem *) sem;
- int private = isem->private;
- unsigned int v;
-
- __sparc32_atomic_do_lock24 (&isem->pad);
-
- v = isem->value;
- if ((v >> SEM_VALUE_SHIFT) == SEM_VALUE_MAX)
- {
- __sparc32_atomic_do_unlock24 (&isem->pad);
-
- __set_errno (EOVERFLOW);
- return -1;
- }
- isem->value = v + (1 << SEM_VALUE_SHIFT);
-
- __sparc32_atomic_do_unlock24 (&isem->pad);
-
- if ((v & SEM_NWAITERS_MASK) != 0)
- futex_wake (&isem->value, 1, private);
-
- return 0;
-}
-versioned_symbol (libpthread, __new_sem_post, sem_post, GLIBC_2_1);
-
-
-#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_1)
-int
-attribute_compat_text_section
-__old_sem_post (sem_t *sem)
-{
- int *futex = (int *) sem;
-
- /* We must need to synchronize with consumers of this token, so the atomic
- increment must have release MO semantics. */
- atomic_write_barrier ();
- (void) atomic_increment_val (futex);
- /* We always have to assume it is a shared semaphore. */
- int err = lll_futex_wake (futex, 1, LLL_SHARED);
- if (__builtin_expect (err, 0) < 0)
- {
- __set_errno (-err);
- return -1;
- }
- return 0;
-}
-compat_symbol (libpthread, __old_sem_post, sem_post, GLIBC_2_0);
-#endif
diff --git a/sysdeps/sparc/sparc32/sem_waitcommon.c b/sysdeps/sparc/sparc32/sem_waitcommon.c
deleted file mode 100644
index 1ddd65f745..0000000000
--- a/sysdeps/sparc/sparc32/sem_waitcommon.c
+++ /dev/null
@@ -1,146 +0,0 @@
-/* sem_waitcommon -- wait on a semaphore, shared code.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Paul Mackerras <paulus@au.ibm.com>, 2003.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <sysdep.h>
-#include <futex-internal.h>
-#include <internaltypes.h>
-#include <semaphore.h>
-#include <sys/time.h>
-
-#include <pthreadP.h>
-#include <shlib-compat.h>
-#include <atomic.h>
-
-
-static void
-__sem_wait_32_finish (struct new_sem *sem);
-
-static void
-__sem_wait_cleanup (void *arg)
-{
- struct new_sem *sem = (struct new_sem *) arg;
-
- __sem_wait_32_finish (sem);
-}
-
-/* Wait until at least one token is available, possibly with a timeout.
- This is in a separate function in order to make sure gcc
- puts the call site into an exception region, and thus the
- cleanups get properly run. TODO still necessary? Other futex_wait
- users don't seem to need it. */
-static int
-__attribute__ ((noinline))
-do_futex_wait (struct new_sem *sem, const struct timespec *abstime)
-{
- int err;
-
- err = futex_abstimed_wait_cancelable (&sem->value, SEM_NWAITERS_MASK,
- abstime, sem->private);
-
- return err;
-}
-
-/* Fast path: Try to grab a token without blocking. */
-static int
-__new_sem_wait_fast (struct new_sem *sem, int definitive_result)
-{
- unsigned int v;
- int ret = 0;
-
- __sparc32_atomic_do_lock24(&sem->pad);
-
- v = sem->value;
- if ((v >> SEM_VALUE_SHIFT) == 0)
- ret = -1;
- else
- sem->value = v - (1 << SEM_VALUE_SHIFT);
-
- __sparc32_atomic_do_unlock24(&sem->pad);
-
- return ret;
-}
-
-/* Slow path that blocks. */
-static int
-__attribute__ ((noinline))
-__new_sem_wait_slow (struct new_sem *sem, const struct timespec *abstime)
-{
- unsigned int v;
- int err = 0;
-
- __sparc32_atomic_do_lock24(&sem->pad);
-
- sem->nwaiters++;
-
- pthread_cleanup_push (__sem_wait_cleanup, sem);
-
- /* Wait for a token to be available. Retry until we can grab one. */
- v = sem->value;
- do
- {
- if (!(v & SEM_NWAITERS_MASK))
- sem->value = v | SEM_NWAITERS_MASK;
-
- /* If there is no token, wait. */
- if ((v >> SEM_VALUE_SHIFT) == 0)
- {
- __sparc32_atomic_do_unlock24(&sem->pad);
-
- err = do_futex_wait(sem, abstime);
- if (err == ETIMEDOUT || err == EINTR)
- {
- __set_errno (err);
- err = -1;
- goto error;
- }
- err = 0;
-
- __sparc32_atomic_do_lock24(&sem->pad);
-
- /* We blocked, so there might be a token now. */
- v = sem->value;
- }
- }
- /* If there is no token, we must not try to grab one. */
- while ((v >> SEM_VALUE_SHIFT) == 0);
-
- sem->value = v - (1 << SEM_VALUE_SHIFT);
-
- __sparc32_atomic_do_unlock24(&sem->pad);
-
-error:
- pthread_cleanup_pop (0);
-
- __sem_wait_32_finish (sem);
-
- return err;
-}
-
-/* Stop being a registered waiter (non-64b-atomics code only). */
-static void
-__sem_wait_32_finish (struct new_sem *sem)
-{
- __sparc32_atomic_do_lock24(&sem->pad);
-
- if (--sem->nwaiters == 0)
- sem->value &= ~SEM_NWAITERS_MASK;
-
- __sparc32_atomic_do_unlock24(&sem->pad);
-}
diff --git a/sysdeps/sparc/sparc32/setjmp.S b/sysdeps/sparc/sparc32/setjmp.S
index eaa0af2539..8bf508dfbe 100644
--- a/sysdeps/sparc/sparc32/setjmp.S
+++ b/sysdeps/sparc/sparc32/setjmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <sys/trap.h>
diff --git a/sysdeps/sparc/sparc32/sfp-machine.h b/sysdeps/sparc/sparc32/sfp-machine.h
index ee5f33911a..e41ddb3d4b 100644
--- a/sysdeps/sparc/sparc32/sfp-machine.h
+++ b/sysdeps/sparc/sparc32/sfp-machine.h
@@ -1,6 +1,6 @@
/* Machine-dependent software floating-point definitions.
Sparc userland (_Q_*) version.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com),
Jakub Jelinek (jj@ultra.linux.cz) and
@@ -18,7 +18,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fpu_control.h>
#include <stdlib.h>
diff --git a/sysdeps/sparc/sparc32/sparcv8/Makefile b/sysdeps/sparc/sparc32/sparcv8/Makefile
deleted file mode 100644
index 2ff9853458..0000000000
--- a/sysdeps/sparc/sparc32/sparcv8/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-sysdep-CFLAGS += -mcpu=v8
diff --git a/sysdeps/sparc/sparc32/sparcv8/addmul_1.S b/sysdeps/sparc/sparc32/sparcv8/addmul_1.S
deleted file mode 100644
index ba2d56bdb2..0000000000
--- a/sysdeps/sparc/sparc32/sparcv8/addmul_1.S
+++ /dev/null
@@ -1,118 +0,0 @@
-! SPARC v8 __mpn_addmul_1 -- Multiply a limb vector with a limb and
-! add the result to a second limb vector.
-
-! Copyright (C) 1992-2018 Free Software Foundation, Inc.
-
-! This file is part of the GNU MP Library.
-
-! The GNU MP 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 MP 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 MP Library; see the file COPYING.LIB. If not,
-! see <http://www.gnu.org/licenses/>.
-
-
-! INPUT PARAMETERS
-! res_ptr o0
-! s1_ptr o1
-! size o2
-! s2_limb o3
-
-#include <sysdep.h>
-
-ENTRY(__mpn_addmul_1)
- ld [%o1+0],%o4 ! 1
- sll %o2,4,%g1
- orcc %g0,%g0,%g2
- mov %o7,%g4 ! Save return address register
- and %g1,(4-1)<<4,%g1
-1: call 2f
- add %o7,3f-1b,%g3
-2: jmp %g3+%g1
- mov %g4,%o7 ! Restore return address register
-
- .align 4
-3:
-LOC(00):
- add %o0,-4,%o0
- b LOC(loop00) /* 4, 8, 12, ... */
- add %o1,-4,%o1
- nop
-LOC(01):
- b LOC(loop01) /* 1, 5, 9, ... */
- nop
- nop
- nop
-LOC(10):
- add %o0,-12,%o0 /* 2, 6, 10, ... */
- b LOC(loop10)
- add %o1,4,%o1
- nop
-LOC(11):
- add %o0,-8,%o0 /* 3, 7, 11, ... */
- b LOC(loop11)
- add %o1,-8,%o1
- nop
-
-LOC(loop):
- addcc %g3,%g2,%g3 ! 1
- ld [%o1+4],%o4 ! 2
- rd %y,%g2 ! 1
- addx %g0,%g2,%g2
- ld [%o0+0],%g1 ! 2
- addcc %g1,%g3,%g3
- st %g3,[%o0+0] ! 1
-LOC(loop00):
- umul %o4,%o3,%g3 ! 2
- ld [%o0+4],%g1 ! 2
- addxcc %g3,%g2,%g3 ! 2
- ld [%o1+8],%o4 ! 3
- rd %y,%g2 ! 2
- addx %g0,%g2,%g2
- nop
- addcc %g1,%g3,%g3
- st %g3,[%o0+4] ! 2
-LOC(loop11):
- umul %o4,%o3,%g3 ! 3
- addxcc %g3,%g2,%g3 ! 3
- ld [%o1+12],%o4 ! 4
- rd %y,%g2 ! 3
- add %o1,16,%o1
- addx %g0,%g2,%g2
- ld [%o0+8],%g1 ! 2
- addcc %g1,%g3,%g3
- st %g3,[%o0+8] ! 3
-LOC(loop10):
- umul %o4,%o3,%g3 ! 4
- addxcc %g3,%g2,%g3 ! 4
- ld [%o1+0],%o4 ! 1
- rd %y,%g2 ! 4
- addx %g0,%g2,%g2
- ld [%o0+12],%g1 ! 2
- addcc %g1,%g3,%g3
- st %g3,[%o0+12] ! 4
- add %o0,16,%o0
- addx %g0,%g2,%g2
-LOC(loop01):
- addcc %o2,-4,%o2
- bg LOC(loop)
- umul %o4,%o3,%g3 ! 1
-
- addcc %g3,%g2,%g3 ! 4
- rd %y,%g2 ! 4
- addx %g0,%g2,%g2
- ld [%o0+0],%g1 ! 2
- addcc %g1,%g3,%g3
- st %g3,[%o0+0] ! 4
- retl
- addx %g0,%g2,%o0
-
-END(__mpn_addmul_1)
diff --git a/sysdeps/sparc/sparc32/sparcv8/dotmul.S b/sysdeps/sparc/sparc32/sparcv8/dotmul.S
deleted file mode 100644
index 9b20cc3684..0000000000
--- a/sysdeps/sparc/sparc32/sparcv8/dotmul.S
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * Sparc v8 has multiply.
- */
-
-#include <sysdep.h>
-
-ENTRY(.mul)
-
- smul %o0, %o1, %o0
- retl
- rd %y, %o1
-
-END(.mul)
diff --git a/sysdeps/sparc/sparc32/sparcv8/mul_1.S b/sysdeps/sparc/sparc32/sparcv8/mul_1.S
deleted file mode 100644
index eb2ffd5dc4..0000000000
--- a/sysdeps/sparc/sparc32/sparcv8/mul_1.S
+++ /dev/null
@@ -1,102 +0,0 @@
-! SPARC v8 __mpn_mul_1 -- Multiply a limb vector with a single limb and
-! store the product in a second limb vector.
-
-! Copyright (C) 1992-2018 Free Software Foundation, Inc.
-
-! This file is part of the GNU MP Library.
-
-! The GNU MP 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 MP 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 MP Library; see the file COPYING.LIB. If not,
-! see <http://www.gnu.org/licenses/>.
-
-
-! INPUT PARAMETERS
-! res_ptr o0
-! s1_ptr o1
-! size o2
-! s2_limb o3
-
-#include <sysdep.h>
-
-ENTRY(__mpn_mul_1)
- sll %o2,4,%g1
- mov %o7,%g4 ! Save return address register
- and %g1,(4-1)<<4,%g1
-1: call 2f
- add %o7,3f-1b,%g3
-2: mov %g4,%o7 ! Restore return address register
- jmp %g3+%g1
- ld [%o1+0],%o4 ! 1
-
- .align 4
-3:
-LOC(00):
- add %o0,-4,%o0
- add %o1,-4,%o1
- b LOC(loop00) /* 4, 8, 12, ... */
- orcc %g0,%g0,%g2
-LOC(01):
- b LOC(loop01) /* 1, 5, 9, ... */
- orcc %g0,%g0,%g2
- nop
- nop
-LOC(10):
- add %o0,-12,%o0 /* 2, 6, 10, ... */
- add %o1,4,%o1
- b LOC(loop10)
- orcc %g0,%g0,%g2
- nop
-LOC(11):
- add %o0,-8,%o0 /* 3, 7, 11, ... */
- add %o1,-8,%o1
- b LOC(loop11)
- orcc %g0,%g0,%g2
-
-LOC(loop):
- addcc %g3,%g2,%g3 ! 1
- ld [%o1+4],%o4 ! 2
- st %g3,[%o0+0] ! 1
- rd %y,%g2 ! 1
-LOC(loop00):
- umul %o4,%o3,%g3 ! 2
- addxcc %g3,%g2,%g3 ! 2
- ld [%o1+8],%o4 ! 3
- st %g3,[%o0+4] ! 2
- rd %y,%g2 ! 2
-LOC(loop11):
- umul %o4,%o3,%g3 ! 3
- addxcc %g3,%g2,%g3 ! 3
- ld [%o1+12],%o4 ! 4
- add %o1,16,%o1
- st %g3,[%o0+8] ! 3
- rd %y,%g2 ! 3
-LOC(loop10):
- umul %o4,%o3,%g3 ! 4
- addxcc %g3,%g2,%g3 ! 4
- ld [%o1+0],%o4 ! 1
- st %g3,[%o0+12] ! 4
- add %o0,16,%o0
- rd %y,%g2 ! 4
- addx %g0,%g2,%g2
-LOC(loop01):
- addcc %o2,-4,%o2
- bg LOC(loop)
- umul %o4,%o3,%g3 ! 1
-
- addcc %g3,%g2,%g3 ! 4
- st %g3,[%o0+0] ! 4
- rd %y,%g2 ! 4
- retl
- addx %g0,%g2,%o0
-
-END(__mpn_mul_1)
diff --git a/sysdeps/sparc/sparc32/sparcv8/rem.S b/sysdeps/sparc/sparc32/sparcv8/rem.S
deleted file mode 100644
index a2694e699e..0000000000
--- a/sysdeps/sparc/sparc32/sparcv8/rem.S
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Sparc v8 has divide.
- */
-
-#include <sysdep.h>
-
-ENTRY(.rem)
-
- sra %o0, 31, %o2
- wr %o2, 0, %y
- nop
- nop
- nop
- sdivcc %o0, %o1, %o2
- bvs,a 1f
- xnor %o2, %g0, %o2
-1: smul %o2, %o1, %o2
- retl
- sub %o0, %o2, %o0
-
-END(.rem)
diff --git a/sysdeps/sparc/sparc32/sparcv8/sdiv.S b/sysdeps/sparc/sparc32/sparcv8/sdiv.S
deleted file mode 100644
index bfc4acf2fa..0000000000
--- a/sysdeps/sparc/sparc32/sparcv8/sdiv.S
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * Sparc v8 has divide.
- */
-
-#include <sysdep.h>
-
-ENTRY(.div)
-
- sra %o0, 31, %o2
- wr %o2, 0, %y
- nop
- nop
- nop
- sdivcc %o0, %o1, %o0
- bvs,a 1f
- xnor %o0, %g0, %o0
-1: retl
- nop
-
-END(.div)
diff --git a/sysdeps/sparc/sparc32/sparcv8/submul_1.S b/sysdeps/sparc/sparc32/sparcv8/submul_1.S
deleted file mode 100644
index 2272645b1d..0000000000
--- a/sysdeps/sparc/sparc32/sparcv8/submul_1.S
+++ /dev/null
@@ -1,57 +0,0 @@
-! SPARC v8 __mpn_submul_1 -- Multiply a limb vector with a limb and
-! subtract the result from a second limb vector.
-
-! Copyright (C) 1992-2018 Free Software Foundation, Inc.
-
-! This file is part of the GNU MP Library.
-
-! The GNU MP 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 MP 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 MP Library; see the file COPYING.LIB. If not,
-! see <http://www.gnu.org/licenses/>.
-
-
-! INPUT PARAMETERS
-! res_ptr o0
-! s1_ptr o1
-! size o2
-! s2_limb o3
-
-#include <sysdep.h>
-
-ENTRY(__mpn_submul_1)
- sub %g0,%o2,%o2 ! negate ...
- sll %o2,2,%o2 ! ... and scale size
- sub %o1,%o2,%o1 ! o1 is offset s1_ptr
- sub %o0,%o2,%g1 ! g1 is offset res_ptr
-
- mov 0,%o0 ! clear cy_limb
-
-LOC(loop):
- ld [%o1+%o2],%o4
- ld [%g1+%o2],%g2
- umul %o4,%o3,%o5
- rd %y,%g3
- addcc %o5,%o0,%o5
- addx %g3,0,%o0
- subcc %g2,%o5,%g2
- addx %o0,0,%o0
- st %g2,[%g1+%o2]
-
- addcc %o2,4,%o2
- bne LOC(loop)
- nop
-
- retl
- nop
-
-END(__mpn_submul_1)
diff --git a/sysdeps/sparc/sparc32/sparcv8/udiv.S b/sysdeps/sparc/sparc32/sparcv8/udiv.S
deleted file mode 100644
index e9cab4e4ef..0000000000
--- a/sysdeps/sparc/sparc32/sparcv8/udiv.S
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * Sparc v8 has divide.
- */
-
-#include <sysdep.h>
-
-ENTRY(.udiv)
-
- wr %g0, 0, %y
- nop
- nop
- retl
- udiv %o0, %o1, %o0
-
-END(.udiv)
-strong_alias (.udiv, __wrap_.udiv)
diff --git a/sysdeps/sparc/sparc32/sparcv8/umul.S b/sysdeps/sparc/sparc32/sparcv8/umul.S
deleted file mode 100644
index cec454a7dd..0000000000
--- a/sysdeps/sparc/sparc32/sparcv8/umul.S
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * Sparc v8 has multiply.
- */
-
-#include <sysdep.h>
-
-ENTRY(.umul)
-
- umul %o0, %o1, %o0
- retl
- rd %y, %o1
-
-END(.umul)
diff --git a/sysdeps/sparc/sparc32/sparcv8/urem.S b/sysdeps/sparc/sparc32/sparcv8/urem.S
deleted file mode 100644
index cc2689d514..0000000000
--- a/sysdeps/sparc/sparc32/sparcv8/urem.S
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * Sparc v8 has divide.
- */
-
-#include <sysdep.h>
-
-ENTRY(.urem)
-
- wr %g0, 0, %y
- nop
- nop
- nop
- udiv %o0, %o1, %o2
- umul %o2, %o1, %o2
- retl
- sub %o0, %o2, %o0
-
-END(.urem)
diff --git a/sysdeps/sparc/sparc32/sparcv9/Makefile b/sysdeps/sparc/sparc32/sparcv9/Makefile
index 45507eabdb..c49b3bea99 100644
--- a/sysdeps/sparc/sparc32/sparcv9/Makefile
+++ b/sysdeps/sparc/sparc32/sparcv9/Makefile
@@ -4,12 +4,3 @@ ASFLAGS-.o += -Wa,-Av9d
ASFLAGS-.os += -Wa,-Av9d
ASFLAGS-.op += -Wa,-Av9d
ASFLAGS-.oS += -Wa,-Av9d
-
-# nscd uses atomic_spin_nop which in turn requires cpu_relax
-ifeq ($(subdir),nscd)
-routines += cpu_relax
-endif
-
-ifeq ($(subdir), nptl)
-libpthread-routines += cpu_relax
-endif
diff --git a/sysdeps/sparc/sparc32/sparcv9/addmul_1.S b/sysdeps/sparc/sparc32/sparcv9/addmul_1.S
index a85212b29b..347c35a030 100644
--- a/sysdeps/sparc/sparc32/sparcv9/addmul_1.S
+++ b/sysdeps/sparc/sparc32/sparcv9/addmul_1.S
@@ -1,7 +1,7 @@
! SPARC v9 32-bit __mpn_addmul_1 -- Multiply a limb vector with a limb
! and add the result to a second limb vector.
!
-! Copyright (C) 2013-2018 Free Software Foundation, Inc.
+! Copyright (C) 2013-2019 Free Software Foundation, Inc.
! This file is part of the GNU C Library.
! Contributed by David S. Miller <davem@davemloft.net>
!
@@ -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
-! <http://www.gnu.org/licenses/>.
+! <https://www.gnu.org/licenses/>.
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc32/sparcv9/atomic-machine.h b/sysdeps/sparc/sparc32/sparcv9/atomic-machine.h
deleted file mode 100644
index c4c5239f51..0000000000
--- a/sysdeps/sparc/sparc32/sparcv9/atomic-machine.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/* Atomic operations. sparcv9 version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <stdint.h>
-
-typedef int8_t atomic8_t;
-typedef uint8_t uatomic8_t;
-typedef int_fast8_t atomic_fast8_t;
-typedef uint_fast8_t uatomic_fast8_t;
-
-typedef int16_t atomic16_t;
-typedef uint16_t uatomic16_t;
-typedef int_fast16_t atomic_fast16_t;
-typedef uint_fast16_t uatomic_fast16_t;
-
-typedef int32_t atomic32_t;
-typedef uint32_t uatomic32_t;
-typedef int_fast32_t atomic_fast32_t;
-typedef uint_fast32_t uatomic_fast32_t;
-
-typedef int64_t atomic64_t;
-typedef uint64_t uatomic64_t;
-typedef int_fast64_t atomic_fast64_t;
-typedef uint_fast64_t uatomic_fast64_t;
-
-typedef intptr_t atomicptr_t;
-typedef uintptr_t uatomicptr_t;
-typedef intmax_t atomic_max_t;
-typedef uintmax_t uatomic_max_t;
-
-#define __HAVE_64B_ATOMICS 0
-#define USE_ATOMIC_COMPILER_BUILTINS 0
-
-/* XXX Is this actually correct? */
-#define ATOMIC_EXCHANGE_USES_CAS 0
-
-
-#define __arch_compare_and_exchange_val_8_acq(mem, newval, oldval) \
- (abort (), (__typeof (*mem)) 0)
-
-#define __arch_compare_and_exchange_val_16_acq(mem, newval, oldval) \
- (abort (), (__typeof (*mem)) 0)
-
-#define __arch_compare_and_exchange_val_32_acq(mem, newval, oldval) \
-({ \
- __typeof (*(mem)) __acev_tmp; \
- __typeof (mem) __acev_mem = (mem); \
- if (__builtin_constant_p (oldval) && (oldval) == 0) \
- __asm __volatile ("cas [%3], %%g0, %0" \
- : "=r" (__acev_tmp), "=m" (*__acev_mem) \
- : "m" (*__acev_mem), "r" (__acev_mem), \
- "0" (newval) : "memory"); \
- else \
- __asm __volatile ("cas [%4], %2, %0" \
- : "=r" (__acev_tmp), "=m" (*__acev_mem) \
- : "r" (oldval), "m" (*__acev_mem), "r" (__acev_mem), \
- "0" (newval) : "memory"); \
- __acev_tmp; })
-
-/* This can be implemented if needed. */
-#define __arch_compare_and_exchange_val_64_acq(mem, newval, oldval) \
- (abort (), (__typeof (*mem)) 0)
-
-#define atomic_exchange_acq(mem, newvalue) \
- ({ __typeof (*(mem)) __oldval; \
- __typeof (mem) __memp = (mem); \
- __typeof (*(mem)) __value = (newvalue); \
- \
- if (sizeof (*(mem)) == 4) \
- __asm ("swap %0, %1" \
- : "=m" (*__memp), "=r" (__oldval) \
- : "m" (*__memp), "1" (__value) : "memory"); \
- else \
- abort (); \
- __oldval; })
-
-#define atomic_compare_and_exchange_val_24_acq(mem, newval, oldval) \
- atomic_compare_and_exchange_val_acq (mem, newval, oldval)
-
-#define atomic_exchange_24_rel(mem, newval) \
- atomic_exchange_rel (mem, newval)
-
-#define atomic_full_barrier() \
- __asm __volatile ("membar #LoadLoad | #LoadStore" \
- " | #StoreLoad | #StoreStore" : : : "memory")
-#define atomic_read_barrier() \
- __asm __volatile ("membar #LoadLoad | #LoadStore" : : : "memory")
-#define atomic_write_barrier() \
- __asm __volatile ("membar #LoadStore | #StoreStore" : : : "memory")
-
-extern void __cpu_relax (void);
-#define atomic_spin_nop() __cpu_relax ()
diff --git a/sysdeps/sparc/sparc32/sparcv9/cpu_relax.c b/sysdeps/sparc/sparc32/sparcv9/cpu_relax.c
deleted file mode 100644
index 1670cf6558..0000000000
--- a/sysdeps/sparc/sparc32/sparcv9/cpu_relax.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/sparc/sparc64/cpu_relax.c>
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysign-vis3.S b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysign-vis3.S
index 8d6b047618..02fe47f39a 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysign-vis3.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysign-vis3.S
@@ -1,5 +1,5 @@
/* copysign function, sparc32 vis3 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller <davem@davemloft.net>, 2012.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysign.c b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysign.c
index 291e697d99..3ce6a41abd 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysign.c
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysign.c
@@ -1,5 +1,5 @@
/* copysign ifunc resolver, Linux/sparc32 version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,8 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#define __copysign __redirect_copysign
#include <math.h>
#include <math_ldbl_opt.h>
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysignf-vis3.S b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysignf-vis3.S
index dfe48da8e2..481d31df70 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysignf-vis3.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysignf-vis3.S
@@ -1,5 +1,5 @@
/* float copysign function, sparc32 vis3 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller <davem@davemloft.net>, 2012.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysignf.c b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysignf.c
index c051167b48..2c9b7fb199 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysignf.c
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysignf.c
@@ -1,5 +1,5 @@
/* copysign ifunc resolver, Linux/sparc32 version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,8 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
#include <sparc-ifunc.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabs-vis3.S b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabs-vis3.S
index e183d7d138..9387060d97 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabs-vis3.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabs-vis3.S
@@ -1,5 +1,5 @@
/* Float absolute value, sparc32+v9 vis3 version.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ 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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabs.c b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabs.c
index e4edf0124d..f36e780fdf 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabs.c
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabs.c
@@ -1,5 +1,5 @@
/* fabs ifunc resolver, Linux/sparc32 version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __fabs __redirect_fabs
#include <math.h>
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabsf-vis3.S b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabsf-vis3.S
index 805da5ed07..72b8375fb8 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabsf-vis3.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabsf-vis3.S
@@ -1,5 +1,5 @@
/* Float absolute value, sparc32 vis3 version.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabsf.c b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabsf.c
index 252ad8f714..661e4add86 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabsf.c
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabsf.c
@@ -1,5 +1,5 @@
/* fabsf ifunc resolver, Linux/sparc32 version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <sparc-ifunc.h>
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim-vis3.c b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim-vis3.c
index 297f5ab730..a5afe0951e 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim-vis3.c
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim-vis3.c
@@ -1,5 +1,5 @@
/* Compute positive difference, sparc 32-bit+v9+vis3.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.c b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.c
index 5b35daee13..2575713765 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.c
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.c
@@ -1,5 +1,5 @@
/* Compute positive difference, sparc 32-bit.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math_ldbl_opt.h>
#include <first-versions.h>
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf-vis3.c b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf-vis3.c
index 84aeba3280..d90feba6de 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf-vis3.c
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf-vis3.c
@@ -1,5 +1,5 @@
/* Float compute positive difference, sparc 32-bit+v9+vis3.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf.c b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf.c
index 7fab2a8163..ee79864e3f 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf.c
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf.c
@@ -1,5 +1,5 @@
/* Float compute positive difference, sparc 32-bit.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sparc-ifunc.h>
#include <math.h>
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fma-vis3.S b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fma-vis3.S
index 6c27aefca2..b51c6d7bf4 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fma-vis3.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fma-vis3.S
@@ -1,5 +1,5 @@
/* fma function, sparc32 vis3 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller <davem@davemloft.net>, 2012.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fmaf-vis3.S b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fmaf-vis3.S
index 8aa4b68088..6b2e9846eb 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fmaf-vis3.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fmaf-vis3.S
@@ -1,5 +1,5 @@
/* fmaf function, sparc32 vis3 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller <davem@davemloft.net>, 2012.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrint-vis3.S b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrint-vis3.S
index f3be7b978a..74604898cb 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrint-vis3.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrint-vis3.S
@@ -1,5 +1,5 @@
/* llrint(), sparc32 v9 vis3 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller <davem@davemloft.net>, 2012.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrint.c b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrint.c
index 599a76c59d..36149fd38b 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrint.c
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrint.c
@@ -1,5 +1,5 @@
/* llrint ifunc resolver, Linux/sparc32 version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __llrint __redirect_llrint
#include <math.h>
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrintf-vis3.S b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrintf-vis3.S
index f295a19158..c8a2d40cae 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrintf-vis3.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrintf-vis3.S
@@ -1,5 +1,5 @@
/* llrintf(), sparc32 v9 vis3 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller <davem@davemloft.net>, 2012.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrintf.c b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrintf.c
index 46802c22c8..44d20353f9 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrintf.c
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_llrintf.c
@@ -1,5 +1,5 @@
/* llrintf ifunc resolver, Linux/sparc32 version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <sparc-ifunc.h>
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyint-vis3.S b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyint-vis3.S
index 1edeb93d2f..ff42125aa3 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyint-vis3.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyint-vis3.S
@@ -1,7 +1,7 @@
/* Round float to int floating-point values without generating
an inexact exception, sparc32 v9 vis3 version.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller <davem@davemloft.net>, 2013.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <math_ldbl_opt.h>
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyint.c b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyint.c
index 3db79bb975..444ec78dd6 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyint.c
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyint.c
@@ -1,5 +1,5 @@
/* nearbyint ifunc resolver, Linux/sparc32 version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __nearbyint __redirect_nearbyint
#include <math.h>
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyintf-vis3.S b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyintf-vis3.S
index 8ce15647c5..d721595115 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyintf-vis3.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyintf-vis3.S
@@ -1,7 +1,7 @@
/* Round float to int floating-point values without generating
an inexact exception, sparc32 v9 vis3 version.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller <davem@davemloft.net>, 2013.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyintf.c b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyintf.c
index f899932a34..fe87123d60 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyintf.c
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyintf.c
@@ -1,5 +1,5 @@
/* nearbyintf ifunc resolver, Linux/sparc32 version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <sparc-ifunc.h>
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rint-vis3.S b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rint-vis3.S
index fe70d49f07..dcb1342667 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rint-vis3.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rint-vis3.S
@@ -1,5 +1,5 @@
/* Round float to int floating-point values, sparc32 v9 vis3 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller <davem@davemloft.net>, 2012.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rint.c b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rint.c
index bba7228355..70664ab727 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rint.c
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rint.c
@@ -1,5 +1,5 @@
/* rint ifunc resolver, Linux/sparc32 version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,8 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#define __rint __redirect_rint
#include <math.h>
#undef __rint
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rintf-vis3.S b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rintf-vis3.S
index 63b9c67846..917731d7c5 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rintf-vis3.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rintf-vis3.S
@@ -1,5 +1,5 @@
/* Round float to int floating-point values, sparc32 v9 vis3 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller <davem@davemloft.net>, 2012.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rintf.c b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rintf.c
index 74c5e25359..0dc45e5181 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rintf.c
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_rintf.c
@@ -1,5 +1,5 @@
/* rintf ifunc resolver, Linux/sparc32 version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,8 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
#include <sparc-ifunc.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/s_fabs.S b/sysdeps/sparc/sparc32/sparcv9/fpu/s_fabs.S
index bdc453da0d..8abe0e83be 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/s_fabs.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/s_fabs.S
@@ -1,5 +1,5 @@
/* Float absolute value, sparc32+v9 version.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ 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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <math_ldbl_opt.h>
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/s_isnan.S b/sysdeps/sparc/sparc32/sparcv9/fpu/s_isnan.S
index 29ae8c6a29..cc55d72684 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/s_isnan.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/s_isnan.S
@@ -1,5 +1,5 @@
/* isnan(). sparc32 v9 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <math_ldbl_opt.h>
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/s_llrint.S b/sysdeps/sparc/sparc32/sparcv9/fpu/s_llrint.S
index 8e645eaaec..24ad1ecd07 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/s_llrint.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/s_llrint.S
@@ -1,5 +1,5 @@
/* llrint(), sparc32 v9 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller <davem@davemloft.net>, 2012.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <math_ldbl_opt.h>
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/s_llrintf.S b/sysdeps/sparc/sparc32/sparcv9/fpu/s_llrintf.S
index 501a09c8b2..a5be9b7f89 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/s_llrintf.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/s_llrintf.S
@@ -1,5 +1,5 @@
/* llrintf(), sparc32 v9 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller <davem@davemloft.net>, 2012.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/s_lrintf.S b/sysdeps/sparc/sparc32/sparcv9/fpu/s_lrintf.S
index dbd6c9347e..62534a84cf 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/s_lrintf.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/s_lrintf.S
@@ -1,5 +1,5 @@
/* lrintf(), sparc32 v9 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller <davem@davemloft.net>, 2012.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyint.S b/sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyint.S
index 88f410ec52..bf71426d2c 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyint.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyint.S
@@ -1,7 +1,7 @@
/* Round float to int floating-point values without generating
an inexact exception, sparc32 v9 version.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller <davem@davemloft.net>, 2013.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <math_ldbl_opt.h>
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyintf.S b/sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyintf.S
index 00af8a8889..96028c22d3 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyintf.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyintf.S
@@ -1,7 +1,7 @@
/* Round float to int floating-point values without generating
an inexact exception, sparc32 v9 version.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller <davem@davemloft.net>, 2013.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/s_rint.S b/sysdeps/sparc/sparc32/sparcv9/fpu/s_rint.S
index c65f0c1f59..a2de4c7dac 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/s_rint.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/s_rint.S
@@ -1,5 +1,5 @@
/* Round float to int floating-point values, sparc32 v9 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller <davem@davemloft.net>, 2012.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <math_ldbl_opt.h>
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/s_rintf.S b/sysdeps/sparc/sparc32/sparcv9/fpu/s_rintf.S
index df8bc450a1..a4264fdab3 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/s_rintf.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/s_rintf.S
@@ -1,5 +1,5 @@
/* Round float to int floating-point values, sparc32 v9 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller <davem@davemloft.net>, 2012.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/sparc/sparc32/sparcv9/hp-timing.h b/sysdeps/sparc/sparc32/sparcv9/hp-timing.h
index 42451966f6..861d30ad6f 100644
--- a/sysdeps/sparc/sparc32/sparcv9/hp-timing.h
+++ b/sysdeps/sparc/sparc32/sparcv9/hp-timing.h
@@ -1,5 +1,5 @@
/* High precision, low overhead timing functions. sparcv9 version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller <davem@redhat.com>, 2001.
@@ -15,13 +15,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _HP_TIMING_H
#define _HP_TIMING_H 1
-#define HP_TIMING_AVAIL (1)
-#define HP_SMALL_TIMING_AVAIL (1)
#define HP_TIMING_INLINE (1)
typedef unsigned long long int hp_timing_t;
diff --git a/sysdeps/sparc/sparc32/sparcv9/mul_1.S b/sysdeps/sparc/sparc32/sparcv9/mul_1.S
index 8bfe3318c8..c37a817661 100644
--- a/sysdeps/sparc/sparc32/sparcv9/mul_1.S
+++ b/sysdeps/sparc/sparc32/sparcv9/mul_1.S
@@ -1,7 +1,7 @@
! SPARC v9 32-bit __mpn_mul_1 -- Multiply a limb vector with a single
! limb and store the product in a second limb vector.
!
-! Copyright (C) 2013-2018 Free Software Foundation, Inc.
+! Copyright (C) 2013-2019 Free Software Foundation, Inc.
! This file is part of the GNU C Library.
! Contributed by David S. Miller <davem@davemloft.net>
!
@@ -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
-! <http://www.gnu.org/licenses/>.
+! <https://www.gnu.org/licenses/>.
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc32/sparcv9/multiarch/memcpy-ultra1.S b/sysdeps/sparc/sparc32/sparcv9/multiarch/memcpy-ultra1.S
index 65604eb3a8..53c674c431 100644
--- a/sysdeps/sparc/sparc32/sparcv9/multiarch/memcpy-ultra1.S
+++ b/sysdeps/sparc/sparc32/sparcv9/multiarch/memcpy-ultra1.S
@@ -1,5 +1,5 @@
/* Default SPARC32 memcpy implementation.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# include <sysdep.h>
diff --git a/sysdeps/sparc/sparc32/sparcv9/multiarch/memset-ultra1.S b/sysdeps/sparc/sparc32/sparcv9/multiarch/memset-ultra1.S
index dd8343478a..d02c2b2d4e 100644
--- a/sysdeps/sparc/sparc32/sparcv9/multiarch/memset-ultra1.S
+++ b/sysdeps/sparc/sparc32/sparcv9/multiarch/memset-ultra1.S
@@ -1,5 +1,5 @@
/* Default SPARC memset implementation.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# include <sysdep.h>
diff --git a/sysdeps/sparc/sparc32/sparcv9/submul_1.S b/sysdeps/sparc/sparc32/sparcv9/submul_1.S
index 7df0a08054..0b77614e0e 100644
--- a/sysdeps/sparc/sparc32/sparcv9/submul_1.S
+++ b/sysdeps/sparc/sparc32/sparcv9/submul_1.S
@@ -1,7 +1,7 @@
! SPARC v9 32-bit __mpn_submul_1 -- Multiply a limb vector with a limb
! and subtract the result from a second limb vector.
!
-! Copyright (C) 2013-2018 Free Software Foundation, Inc.
+! Copyright (C) 2013-2019 Free Software Foundation, Inc.
! This file is part of the GNU C Library.
! Contributed by David S. Miller <davem@davemloft.net>
!
@@ -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
-! <http://www.gnu.org/licenses/>.
+! <https://www.gnu.org/licenses/>.
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc32/start.S b/sysdeps/sparc/sparc32/start.S
index 46ba8b6afa..2b6c41b7be 100644
--- a/sysdeps/sparc/sparc32/start.S
+++ b/sysdeps/sparc/sparc32/start.S
@@ -1,5 +1,5 @@
/* Startup code for elf32-sparc
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson <richard@gnu.ai.mit.edu>, 1997.
@@ -32,7 +32,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc32/stpcpy.S b/sysdeps/sparc/sparc32/stpcpy.S
index 225a17d46b..dae909809e 100644
--- a/sysdeps/sparc/sparc32/stpcpy.S
+++ b/sysdeps/sparc/sparc32/stpcpy.S
@@ -1,6 +1,6 @@
/* Copy SRC to DEST returning the address of the terminating '\0' in DEST.
For SPARC v7.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jj@ultra.linux.cz>.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc32/strcat.S b/sysdeps/sparc/sparc32/strcat.S
index cd49930a31..bdaa8c2b2b 100644
--- a/sysdeps/sparc/sparc32/strcat.S
+++ b/sysdeps/sparc/sparc32/strcat.S
@@ -1,6 +1,6 @@
/* strcat (dest, src) -- Append SRC on the end of DEST.
For SPARC v7.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jj@ultra.linux.cz>.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc32/strchr.S b/sysdeps/sparc/sparc32/strchr.S
index 24654a3ea4..f4cce8ffc1 100644
--- a/sysdeps/sparc/sparc32/strchr.S
+++ b/sysdeps/sparc/sparc32/strchr.S
@@ -1,6 +1,6 @@
/* strchr (str, ch) -- Return pointer to first occurrence of CH in STR.
For SPARC v7.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jj@ultra.linux.cz> and
David S. Miller <davem@caip.rutgers.edu>.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc32/strcmp.S b/sysdeps/sparc/sparc32/strcmp.S
index c477302b7f..8c2da5575c 100644
--- a/sysdeps/sparc/sparc32/strcmp.S
+++ b/sysdeps/sparc/sparc32/strcmp.S
@@ -1,6 +1,6 @@
/* Compare two strings for differences.
For SPARC v7.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jj@ultra.linux.cz>.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc32/strcpy.S b/sysdeps/sparc/sparc32/strcpy.S
index e793668e1a..6a19b74dff 100644
--- a/sysdeps/sparc/sparc32/strcpy.S
+++ b/sysdeps/sparc/sparc32/strcpy.S
@@ -1,6 +1,6 @@
/* Copy SRC to DEST returning DEST.
For SPARC v7.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jj@ultra.linux.cz>.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc32/strlen.S b/sysdeps/sparc/sparc32/strlen.S
index cad88b1f6b..75f1ecd545 100644
--- a/sysdeps/sparc/sparc32/strlen.S
+++ b/sysdeps/sparc/sparc32/strlen.S
@@ -1,6 +1,6 @@
/* Determine the length of a string.
For SPARC v7.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jj@ultra.linux.cz> and
David S. Miller <davem@davemloft.net>.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc32/sub_n.S b/sysdeps/sparc/sparc32/sub_n.S
index df640e481d..827e80b55e 100644
--- a/sysdeps/sparc/sparc32/sub_n.S
+++ b/sysdeps/sparc/sparc32/sub_n.S
@@ -1,7 +1,7 @@
! SPARC __mpn_sub_n -- Subtract two limb vectors of the same length > 0 and
! store difference in a third limb vector.
!
-! Copyright (C) 1995-2018 Free Software Foundation, Inc.
+! Copyright (C) 1995-2019 Free Software Foundation, Inc.
!
! This file is part of the GNU MP Library.
!
@@ -17,7 +17,7 @@
!
! You should have received a copy of the GNU Lesser General Public License
! along with the GNU MP Library; see the file COPYING.LIB. If not,
-! see <http://www.gnu.org/licenses/>.
+! see <https://www.gnu.org/licenses/>.
! INPUT PARAMETERS
diff --git a/sysdeps/sparc/sparc32/submul_1.S b/sysdeps/sparc/sparc32/submul_1.S
index 481947e869..11eef05300 100644
--- a/sysdeps/sparc/sparc32/submul_1.S
+++ b/sysdeps/sparc/sparc32/submul_1.S
@@ -1,146 +1,57 @@
-! SPARC __mpn_submul_1 -- Multiply a limb vector with a limb and subtract
-! the result from a second limb vector.
-!
-! Copyright (C) 1992-2018 Free Software Foundation, Inc.
-!
+! SPARC v8 __mpn_submul_1 -- Multiply a limb vector with a limb and
+! subtract the result from a second limb vector.
+
+! Copyright (C) 1992-2019 Free Software Foundation, Inc.
+
! This file is part of the GNU MP Library.
-!
+
! The GNU MP 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 MP 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 MP Library; see the file COPYING.LIB. If not,
-! see <http://www.gnu.org/licenses/>.
+! see <https://www.gnu.org/licenses/>.
! INPUT PARAMETERS
-! RES_PTR o0
-! S1_PTR o1
-! SIZE o2
-! S2_LIMB o3
+! res_ptr o0
+! s1_ptr o1
+! size o2
+! s2_limb o3
#include <sysdep.h>
ENTRY(__mpn_submul_1)
- ! Make S1_PTR and RES_PTR point at the end of their blocks
- ! and put (- 4 x SIZE) in index/loop counter.
- sll %o2,2,%o2
- add %o0,%o2,%o4 ! RES_PTR in o4 since o0 is retval
- add %o1,%o2,%o1
- sub %g0,%o2,%o2
-
- cmp %o3,0xfff
- bgu LOC(large)
- nop
+ sub %g0,%o2,%o2 ! negate ...
+ sll %o2,2,%o2 ! ... and scale size
+ sub %o1,%o2,%o1 ! o1 is offset s1_ptr
+ sub %o0,%o2,%g1 ! g1 is offset res_ptr
- ld [%o1+%o2],%o5
- mov 0,%o0
- b LOC(0)
- add %o4,-4,%o4
-LOC(loop0):
- subcc %o5,%g1,%g1
- ld [%o1+%o2],%o5
- addx %o0,%g0,%o0
- st %g1,[%o4+%o2]
-LOC(0): wr %g0,%o3,%y
- sra %o5,31,%g2
- and %o3,%g2,%g2
- andcc %g1,0,%g1
- mulscc %g1,%o5,%g1
- mulscc %g1,%o5,%g1
- mulscc %g1,%o5,%g1
- mulscc %g1,%o5,%g1
- mulscc %g1,%o5,%g1
- mulscc %g1,%o5,%g1
- mulscc %g1,%o5,%g1
- mulscc %g1,%o5,%g1
- mulscc %g1,%o5,%g1
- mulscc %g1,%o5,%g1
- mulscc %g1,%o5,%g1
- mulscc %g1,%o5,%g1
- mulscc %g1,0,%g1
- sra %g1,20,%g4
- sll %g1,12,%g1
- rd %y,%g3
- srl %g3,20,%g3
- or %g1,%g3,%g1
+ mov 0,%o0 ! clear cy_limb
- addcc %g1,%o0,%g1
- addx %g2,%g4,%o0 ! add sign-compensation and cy to hi limb
- addcc %o2,4,%o2 ! loop counter
- bne LOC(loop0)
- ld [%o4+%o2],%o5
-
- subcc %o5,%g1,%g1
- addx %o0,%g0,%o0
- retl
- st %g1,[%o4+%o2]
-
-
-LOC(large):
- ld [%o1+%o2],%o5
- mov 0,%o0
- sra %o3,31,%g4 ! g4 = mask of ones iff S2_LIMB < 0
- b LOC(1)
- add %o4,-4,%o4
LOC(loop):
- subcc %o5,%g3,%g3
- ld [%o1+%o2],%o5
- addx %o0,%g0,%o0
- st %g3,[%o4+%o2]
-LOC(1): wr %g0,%o5,%y
- and %o5,%g4,%g2
- andcc %g0,%g0,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%o3,%g1
- mulscc %g1,%g0,%g1
+ ld [%o1+%o2],%o4
+ ld [%g1+%o2],%g2
+ umul %o4,%o3,%o5
rd %y,%g3
- addcc %g3,%o0,%g3
- addx %g2,%g1,%o0
+ addcc %o5,%o0,%o5
+ addx %g3,0,%o0
+ subcc %g2,%o5,%g2
+ addx %o0,0,%o0
+ st %g2,[%g1+%o2]
+
addcc %o2,4,%o2
bne LOC(loop)
- ld [%o4+%o2],%o5
+ nop
- subcc %o5,%g3,%g3
- addx %o0,%g0,%o0
retl
- st %g3,[%o4+%o2]
+ nop
END(__mpn_submul_1)
diff --git a/sysdeps/sparc/sparc32/tst-audit.h b/sysdeps/sparc/sparc32/tst-audit.h
index d68b586798..feb34d98dd 100644
--- a/sysdeps/sparc/sparc32/tst-audit.h
+++ b/sysdeps/sparc/sparc32/tst-audit.h
@@ -1,6 +1,6 @@
/* Definitions for testing PLT entry/exit auditing. SPARC32 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define pltenter la_sparc32_gnu_pltenter
#define pltexit la_sparc32_gnu_pltexit
diff --git a/sysdeps/sparc/sparc32/udiv.S b/sysdeps/sparc/sparc32/udiv.S
index 1db6796431..e9cab4e4ef 100644
--- a/sysdeps/sparc/sparc32/udiv.S
+++ b/sysdeps/sparc/sparc32/udiv.S
@@ -1,347 +1,16 @@
- /* This file is generated from divrem.m4; DO NOT EDIT! */
/*
- * Division and remainder, from Appendix E of the Sparc Version 8
- * Architecture Manual, with fixes from Gordon Irlam.
+ * Sparc v8 has divide.
*/
-/*
- * Input: dividend and divisor in %o0 and %o1 respectively.
- *
- * m4 parameters:
- * .udiv name of function to generate
- * div div=div => %o0 / %o1; div=rem => %o0 % %o1
- * false false=true => signed; false=false => unsigned
- *
- * Algorithm parameters:
- * N how many bits per iteration we try to get (4)
- * WORDSIZE total number of bits (32)
- *
- * Derived constants:
- * TOPBITS number of bits in the top decade of a number
- *
- * Important variables:
- * Q the partial quotient under development (initially 0)
- * R the remainder so far, initially the dividend
- * ITER number of main division loop iterations required;
- * equal to ceil(log2(quotient) / N). Note that this
- * is the log base (2^N) of the quotient.
- * V the current comparand, initially divisor*2^(ITER*N-1)
- *
- * Cost:
- * Current estimate for non-large dividend is
- * ceil(log2(quotient) / N) * (10 + 7N/2) + C
- * A large dividend is one greater than 2^(31-TOPBITS) and takes a
- * different path, as the upper bits of the quotient must be developed
- * one bit at a time.
- */
-
-
-
#include <sysdep.h>
-#include <sys/trap.h>
ENTRY(.udiv)
- ! Ready to divide. Compute size of quotient; scale comparand.
- orcc %o1, %g0, %o5
- bne 1f
- mov %o0, %o3
-
- ! Divide by zero trap. If it returns, return 0 (about as
- ! wrong as possible, but that is what SunOS does...).
- ta ST_DIV0
- retl
- clr %o0
-
-1:
- cmp %o3, %o5 ! if %o1 exceeds %o0, done
- blu LOC(got_result) ! (and algorithm fails otherwise)
- clr %o2
- sethi %hi(1 << (32 - 4 - 1)), %g1
- cmp %o3, %g1
- blu LOC(not_really_big)
- clr %o4
-
- ! Here the dividend is >= 2**(31-N) or so. We must be careful here,
- ! as our usual N-at-a-shot divide step will cause overflow and havoc.
- ! The number of bits in the result here is N*ITER+SC, where SC <= N.
- ! Compute ITER in an unorthodox manner: know we need to shift V into
- ! the top decade: so do not even bother to compare to R.
- 1:
- cmp %o5, %g1
- bgeu 3f
- mov 1, %g2
- sll %o5, 4, %o5
- b 1b
- add %o4, 1, %o4
-
- ! Now compute %g2.
- 2: addcc %o5, %o5, %o5
- bcc LOC(not_too_big)
- add %g2, 1, %g2
-
- ! We get here if the %o1 overflowed while shifting.
- ! This means that %o3 has the high-order bit set.
- ! Restore %o5 and subtract from %o3.
- sll %g1, 4, %g1 ! high order bit
- srl %o5, 1, %o5 ! rest of %o5
- add %o5, %g1, %o5
- b LOC(do_single_div)
- sub %g2, 1, %g2
-
- LOC(not_too_big):
- 3: cmp %o5, %o3
- blu 2b
- nop
- be LOC(do_single_div)
- nop
- /* NB: these are commented out in the V8-Sparc manual as well */
- /* (I do not understand this) */
- ! %o5 > %o3: went too far: back up 1 step
- ! srl %o5, 1, %o5
- ! dec %g2
- ! do single-bit divide steps
- !
- ! We have to be careful here. We know that %o3 >= %o5, so we can do the
- ! first divide step without thinking. BUT, the others are conditional,
- ! and are only done if %o3 >= 0. Because both %o3 and %o5 may have the high-
- ! order bit set in the first step, just falling into the regular
- ! division loop will mess up the first time around.
- ! So we unroll slightly...
- LOC(do_single_div):
- subcc %g2, 1, %g2
- bl LOC(end_regular_divide)
- nop
- sub %o3, %o5, %o3
- mov 1, %o2
- b LOC(end_single_divloop)
- nop
- LOC(single_divloop):
- sll %o2, 1, %o2
- bl 1f
- srl %o5, 1, %o5
- ! %o3 >= 0
- sub %o3, %o5, %o3
- b 2f
- add %o2, 1, %o2
- 1: ! %o3 < 0
- add %o3, %o5, %o3
- sub %o2, 1, %o2
- 2:
- LOC(end_single_divloop):
- subcc %g2, 1, %g2
- bge LOC(single_divloop)
- tst %o3
- b,a LOC(end_regular_divide)
-
-LOC(not_really_big):
-1:
- sll %o5, 4, %o5
- cmp %o5, %o3
- bleu 1b
- addcc %o4, 1, %o4
- be LOC(got_result)
- sub %o4, 1, %o4
-
- tst %o3 ! set up for initial iteration
-LOC(divloop):
- sll %o2, 4, %o2
- ! depth 1, accumulated bits 0
- bl LOC(1.16)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- ! depth 2, accumulated bits 1
- bl LOC(2.17)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- ! depth 3, accumulated bits 3
- bl LOC(3.19)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- ! depth 4, accumulated bits 7
- bl LOC(4.23)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- b 9f
- add %o2, (7*2+1), %o2
-
-LOC(4.23):
- ! remainder is negative
- addcc %o3,%o5,%o3
- b 9f
- add %o2, (7*2-1), %o2
-
-
-LOC(3.19):
- ! remainder is negative
- addcc %o3,%o5,%o3
- ! depth 4, accumulated bits 5
- bl LOC(4.21)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- b 9f
- add %o2, (5*2+1), %o2
-
-LOC(4.21):
- ! remainder is negative
- addcc %o3,%o5,%o3
- b 9f
- add %o2, (5*2-1), %o2
-
-
-
-LOC(2.17):
- ! remainder is negative
- addcc %o3,%o5,%o3
- ! depth 3, accumulated bits 1
- bl LOC(3.17)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- ! depth 4, accumulated bits 3
- bl LOC(4.19)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- b 9f
- add %o2, (3*2+1), %o2
-
-LOC(4.19):
- ! remainder is negative
- addcc %o3,%o5,%o3
- b 9f
- add %o2, (3*2-1), %o2
-
-
-LOC(3.17):
- ! remainder is negative
- addcc %o3,%o5,%o3
- ! depth 4, accumulated bits 1
- bl LOC(4.17)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- b 9f
- add %o2, (1*2+1), %o2
-
-LOC(4.17):
- ! remainder is negative
- addcc %o3,%o5,%o3
- b 9f
- add %o2, (1*2-1), %o2
-
-
-
-
-LOC(1.16):
- ! remainder is negative
- addcc %o3,%o5,%o3
- ! depth 2, accumulated bits -1
- bl LOC(2.15)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- ! depth 3, accumulated bits -1
- bl LOC(3.15)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- ! depth 4, accumulated bits -1
- bl LOC(4.15)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- b 9f
- add %o2, (-1*2+1), %o2
-
-LOC(4.15):
- ! remainder is negative
- addcc %o3,%o5,%o3
- b 9f
- add %o2, (-1*2-1), %o2
-
-
-LOC(3.15):
- ! remainder is negative
- addcc %o3,%o5,%o3
- ! depth 4, accumulated bits -3
- bl LOC(4.13)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- b 9f
- add %o2, (-3*2+1), %o2
-
-LOC(4.13):
- ! remainder is negative
- addcc %o3,%o5,%o3
- b 9f
- add %o2, (-3*2-1), %o2
-
-
-
-LOC(2.15):
- ! remainder is negative
- addcc %o3,%o5,%o3
- ! depth 3, accumulated bits -3
- bl LOC(3.13)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- ! depth 4, accumulated bits -5
- bl LOC(4.11)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- b 9f
- add %o2, (-5*2+1), %o2
-
-LOC(4.11):
- ! remainder is negative
- addcc %o3,%o5,%o3
- b 9f
- add %o2, (-5*2-1), %o2
-
-
-LOC(3.13):
- ! remainder is negative
- addcc %o3,%o5,%o3
- ! depth 4, accumulated bits -7
- bl LOC(4.9)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- b 9f
- add %o2, (-7*2+1), %o2
-
-LOC(4.9):
- ! remainder is negative
- addcc %o3,%o5,%o3
- b 9f
- add %o2, (-7*2-1), %o2
-
-
-
-
-9:
-LOC(end_regular_divide):
- subcc %o4, 1, %o4
- bge LOC(divloop)
- tst %o3
- bl,a LOC(got_result)
- ! non-restoring fixup here (one instruction only!)
- sub %o2, 1, %o2
-
-
-LOC(got_result):
-
+ wr %g0, 0, %y
+ nop
+ nop
retl
- mov %o2, %o0
+ udiv %o0, %o1, %o0
END(.udiv)
strong_alias (.udiv, __wrap_.udiv)
diff --git a/sysdeps/sparc/sparc32/umul.S b/sysdeps/sparc/sparc32/umul.S
index 096554a2bc..cec454a7dd 100644
--- a/sysdeps/sparc/sparc32/umul.S
+++ b/sysdeps/sparc/sparc32/umul.S
@@ -1,155 +1,13 @@
/*
- * Unsigned multiply. Returns %o0 * %o1 in %o1%o0 (i.e., %o1 holds the
- * upper 32 bits of the 64-bit product).
- *
- * This code optimizes short (less than 13-bit) multiplies. Short
- * multiplies require 25 instruction cycles, and long ones require
- * 45 instruction cycles.
- *
- * On return, overflow has occurred (%o1 is not zero) if and only if
- * the Z condition code is clear, allowing, e.g., the following:
- *
- * call .umul
- * nop
- * bnz overflow (or tnz)
+ * Sparc v8 has multiply.
*/
#include <sysdep.h>
ENTRY(.umul)
- or %o0, %o1, %o4
- mov %o0, %y ! multiplier -> Y
- andncc %o4, 0xfff, %g0 ! test bits 12..31 of *both* args
- be LOC(mul_shortway) ! if zero, can do it the short way
- andcc %g0, %g0, %o4 ! zero the partial product; clear N & V
- /*
- * Long multiply. 32 steps, followed by a final shift step.
- */
- mulscc %o4, %o1, %o4 ! 1
- mulscc %o4, %o1, %o4 ! 2
- mulscc %o4, %o1, %o4 ! 3
- mulscc %o4, %o1, %o4 ! 4
- mulscc %o4, %o1, %o4 ! 5
- mulscc %o4, %o1, %o4 ! 6
- mulscc %o4, %o1, %o4 ! 7
- mulscc %o4, %o1, %o4 ! 8
- mulscc %o4, %o1, %o4 ! 9
- mulscc %o4, %o1, %o4 ! 10
- mulscc %o4, %o1, %o4 ! 11
- mulscc %o4, %o1, %o4 ! 12
- mulscc %o4, %o1, %o4 ! 13
- mulscc %o4, %o1, %o4 ! 14
- mulscc %o4, %o1, %o4 ! 15
- mulscc %o4, %o1, %o4 ! 16
- mulscc %o4, %o1, %o4 ! 17
- mulscc %o4, %o1, %o4 ! 18
- mulscc %o4, %o1, %o4 ! 19
- mulscc %o4, %o1, %o4 ! 20
- mulscc %o4, %o1, %o4 ! 21
- mulscc %o4, %o1, %o4 ! 22
- mulscc %o4, %o1, %o4 ! 23
- mulscc %o4, %o1, %o4 ! 24
- mulscc %o4, %o1, %o4 ! 25
- mulscc %o4, %o1, %o4 ! 26
- mulscc %o4, %o1, %o4 ! 27
- mulscc %o4, %o1, %o4 ! 28
- mulscc %o4, %o1, %o4 ! 29
- mulscc %o4, %o1, %o4 ! 30
- mulscc %o4, %o1, %o4 ! 31
- mulscc %o4, %o1, %o4 ! 32
- mulscc %o4, %g0, %o4 ! final shift
-
- /*
- * Normally, with the shift-and-add approach, if both numbers are
- * positive you get the correct result. With 32-bit two's-complement
- * numbers, -x is represented as
- *
- * x 32
- * ( 2 - ------ ) mod 2 * 2
- * 32
- * 2
- *
- * (the `mod 2' subtracts 1 from 1.bbbb). To avoid lots of 2^32s,
- * we can treat this as if the radix point were just to the left
- * of the sign bit (multiply by 2^32), and get
- *
- * -x = (2 - x) mod 2
- *
- * Then, ignoring the `mod 2's for convenience:
- *
- * x * y = xy
- * -x * y = 2y - xy
- * x * -y = 2x - xy
- * -x * -y = 4 - 2x - 2y + xy
- *
- * For signed multiplies, we subtract (x << 32) from the partial
- * product to fix this problem for negative multipliers (see mul.s).
- * Because of the way the shift into the partial product is calculated
- * (N xor V), this term is automatically removed for the multiplicand,
- * so we don't have to adjust.
- *
- * But for unsigned multiplies, the high order bit wasn't a sign bit,
- * and the correction is wrong. So for unsigned multiplies where the
- * high order bit is one, we end up with xy - (y << 32). To fix it
- * we add y << 32.
- */
-#if 0
- tst %o1
- bl,a 1f ! if %o1 < 0 (high order bit = 1),
- add %o4, %o0, %o4 ! %o4 += %o0 (add y to upper half)
-1: rd %y, %o0 ! get lower half of product
- retl
- addcc %o4, %g0, %o1 ! put upper half in place and set Z for %o1==0
-#else
- /* Faster code from tege@sics.se. */
- sra %o1, 31, %o2 ! make mask from sign bit
- and %o0, %o2, %o2 ! %o2 = 0 or %o0, depending on sign of %o1
- rd %y, %o0 ! get lower half of product
- retl
- addcc %o4, %o2, %o1 ! add compensation and put upper half in place
-#endif
-
-LOC(mul_shortway):
- /*
- * Short multiply. 12 steps, followed by a final shift step.
- * The resulting bits are off by 12 and (32-12) = 20 bit positions,
- * but there is no problem with %o0 being negative (unlike above),
- * and overflow is impossible (the answer is at most 24 bits long).
- */
- mulscc %o4, %o1, %o4 ! 1
- mulscc %o4, %o1, %o4 ! 2
- mulscc %o4, %o1, %o4 ! 3
- mulscc %o4, %o1, %o4 ! 4
- mulscc %o4, %o1, %o4 ! 5
- mulscc %o4, %o1, %o4 ! 6
- mulscc %o4, %o1, %o4 ! 7
- mulscc %o4, %o1, %o4 ! 8
- mulscc %o4, %o1, %o4 ! 9
- mulscc %o4, %o1, %o4 ! 10
- mulscc %o4, %o1, %o4 ! 11
- mulscc %o4, %o1, %o4 ! 12
- mulscc %o4, %g0, %o4 ! final shift
-
- /*
- * %o4 has 20 of the bits that should be in the result; %y has
- * the bottom 12 (as %y's top 12). That is:
- *
- * %o4 %y
- * +----------------+----------------+
- * | -12- | -20- | -12- | -20- |
- * +------(---------+------)---------+
- * -----result-----
- *
- * The 12 bits of %o4 left of the `result' area are all zero;
- * in fact, all top 20 bits of %o4 are zero.
- */
-
- rd %y, %o5
- sll %o4, 12, %o0 ! shift middle bits left 12
- srl %o5, 20, %o5 ! shift low bits right 20
- or %o5, %o0, %o0
+ umul %o0, %o1, %o0
retl
- addcc %g0, %g0, %o1 ! %o1 = zero, and set Z
+ rd %y, %o1
END(.umul)
diff --git a/sysdeps/sparc/sparc32/urem.S b/sysdeps/sparc/sparc32/urem.S
index 83fb4c242e..cc2689d514 100644
--- a/sysdeps/sparc/sparc32/urem.S
+++ b/sysdeps/sparc/sparc32/urem.S
@@ -1,346 +1,18 @@
- /* This file is generated from divrem.m4; DO NOT EDIT! */
/*
- * Division and remainder, from Appendix E of the Sparc Version 8
- * Architecture Manual, with fixes from Gordon Irlam.
+ * Sparc v8 has divide.
*/
-/*
- * Input: dividend and divisor in %o0 and %o1 respectively.
- *
- * m4 parameters:
- * .urem name of function to generate
- * rem rem=div => %o0 / %o1; rem=rem => %o0 % %o1
- * false false=true => signed; false=false => unsigned
- *
- * Algorithm parameters:
- * N how many bits per iteration we try to get (4)
- * WORDSIZE total number of bits (32)
- *
- * Derived constants:
- * TOPBITS number of bits in the top decade of a number
- *
- * Important variables:
- * Q the partial quotient under development (initially 0)
- * R the remainder so far, initially the dividend
- * ITER number of main division loop iterations required;
- * equal to ceil(log2(quotient) / N). Note that this
- * is the log base (2^N) of the quotient.
- * V the current comparand, initially divisor*2^(ITER*N-1)
- *
- * Cost:
- * Current estimate for non-large dividend is
- * ceil(log2(quotient) / N) * (10 + 7N/2) + C
- * A large dividend is one greater than 2^(31-TOPBITS) and takes a
- * different path, as the upper bits of the quotient must be developed
- * one bit at a time.
- */
-
-
-
#include <sysdep.h>
-#include <sys/trap.h>
ENTRY(.urem)
- ! Ready to divide. Compute size of quotient; scale comparand.
- orcc %o1, %g0, %o5
- bne 1f
- mov %o0, %o3
-
- ! Divide by zero trap. If it returns, return 0 (about as
- ! wrong as possible, but that is what SunOS does...).
- ta ST_DIV0
- retl
- clr %o0
-
-1:
- cmp %o3, %o5 ! if %o1 exceeds %o0, done
- blu LOC(got_result) ! (and algorithm fails otherwise)
- clr %o2
- sethi %hi(1 << (32 - 4 - 1)), %g1
- cmp %o3, %g1
- blu LOC(not_really_big)
- clr %o4
-
- ! Here the dividend is >= 2**(31-N) or so. We must be careful here,
- ! as our usual N-at-a-shot divide step will cause overflow and havoc.
- ! The number of bits in the result here is N*ITER+SC, where SC <= N.
- ! Compute ITER in an unorthodox manner: know we need to shift V into
- ! the top decade: so do not even bother to compare to R.
- 1:
- cmp %o5, %g1
- bgeu 3f
- mov 1, %g2
- sll %o5, 4, %o5
- b 1b
- add %o4, 1, %o4
-
- ! Now compute %g2.
- 2: addcc %o5, %o5, %o5
- bcc LOC(not_too_big)
- add %g2, 1, %g2
-
- ! We get here if the %o1 overflowed while shifting.
- ! This means that %o3 has the high-order bit set.
- ! Restore %o5 and subtract from %o3.
- sll %g1, 4, %g1 ! high order bit
- srl %o5, 1, %o5 ! rest of %o5
- add %o5, %g1, %o5
- b LOC(do_single_div)
- sub %g2, 1, %g2
-
- LOC(not_too_big):
- 3: cmp %o5, %o3
- blu 2b
- nop
- be LOC(do_single_div)
- nop
- /* NB: these are commented out in the V8-Sparc manual as well */
- /* (I do not understand this) */
- ! %o5 > %o3: went too far: back up 1 step
- ! srl %o5, 1, %o5
- ! dec %g2
- ! do single-bit divide steps
- !
- ! We have to be careful here. We know that %o3 >= %o5, so we can do the
- ! first divide step without thinking. BUT, the others are conditional,
- ! and are only done if %o3 >= 0. Because both %o3 and %o5 may have the high-
- ! order bit set in the first step, just falling into the regular
- ! division loop will mess up the first time around.
- ! So we unroll slightly...
- LOC(do_single_div):
- subcc %g2, 1, %g2
- bl LOC(end_regular_divide)
- nop
- sub %o3, %o5, %o3
- mov 1, %o2
- b LOC(end_single_divloop)
- nop
- LOC(single_divloop):
- sll %o2, 1, %o2
- bl 1f
- srl %o5, 1, %o5
- ! %o3 >= 0
- sub %o3, %o5, %o3
- b 2f
- add %o2, 1, %o2
- 1: ! %o3 < 0
- add %o3, %o5, %o3
- sub %o2, 1, %o2
- 2:
- LOC(end_single_divloop):
- subcc %g2, 1, %g2
- bge LOC(single_divloop)
- tst %o3
- b,a LOC(end_regular_divide)
-
-LOC(not_really_big):
-1:
- sll %o5, 4, %o5
- cmp %o5, %o3
- bleu 1b
- addcc %o4, 1, %o4
- be LOC(got_result)
- sub %o4, 1, %o4
-
- tst %o3 ! set up for initial iteration
-LOC(divloop):
- sll %o2, 4, %o2
- ! depth 1, accumulated bits 0
- bl LOC(1.16)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- ! depth 2, accumulated bits 1
- bl LOC(2.17)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- ! depth 3, accumulated bits 3
- bl LOC(3.19)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- ! depth 4, accumulated bits 7
- bl LOC(4.23)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- b 9f
- add %o2, (7*2+1), %o2
-
-LOC(4.23):
- ! remainder is negative
- addcc %o3,%o5,%o3
- b 9f
- add %o2, (7*2-1), %o2
-
-
-LOC(3.19):
- ! remainder is negative
- addcc %o3,%o5,%o3
- ! depth 4, accumulated bits 5
- bl LOC(4.21)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- b 9f
- add %o2, (5*2+1), %o2
-
-LOC(4.21):
- ! remainder is negative
- addcc %o3,%o5,%o3
- b 9f
- add %o2, (5*2-1), %o2
-
-
-
-LOC(2.17):
- ! remainder is negative
- addcc %o3,%o5,%o3
- ! depth 3, accumulated bits 1
- bl LOC(3.17)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- ! depth 4, accumulated bits 3
- bl LOC(4.19)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- b 9f
- add %o2, (3*2+1), %o2
-
-LOC(4.19):
- ! remainder is negative
- addcc %o3,%o5,%o3
- b 9f
- add %o2, (3*2-1), %o2
-
-
-LOC(3.17):
- ! remainder is negative
- addcc %o3,%o5,%o3
- ! depth 4, accumulated bits 1
- bl LOC(4.17)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- b 9f
- add %o2, (1*2+1), %o2
-
-LOC(4.17):
- ! remainder is negative
- addcc %o3,%o5,%o3
- b 9f
- add %o2, (1*2-1), %o2
-
-
-
-
-LOC(1.16):
- ! remainder is negative
- addcc %o3,%o5,%o3
- ! depth 2, accumulated bits -1
- bl LOC(2.15)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- ! depth 3, accumulated bits -1
- bl LOC(3.15)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- ! depth 4, accumulated bits -1
- bl LOC(4.15)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- b 9f
- add %o2, (-1*2+1), %o2
-
-LOC(4.15):
- ! remainder is negative
- addcc %o3,%o5,%o3
- b 9f
- add %o2, (-1*2-1), %o2
-
-
-LOC(3.15):
- ! remainder is negative
- addcc %o3,%o5,%o3
- ! depth 4, accumulated bits -3
- bl LOC(4.13)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- b 9f
- add %o2, (-3*2+1), %o2
-
-LOC(4.13):
- ! remainder is negative
- addcc %o3,%o5,%o3
- b 9f
- add %o2, (-3*2-1), %o2
-
-
-
-LOC(2.15):
- ! remainder is negative
- addcc %o3,%o5,%o3
- ! depth 3, accumulated bits -3
- bl LOC(3.13)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- ! depth 4, accumulated bits -5
- bl LOC(4.11)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- b 9f
- add %o2, (-5*2+1), %o2
-
-LOC(4.11):
- ! remainder is negative
- addcc %o3,%o5,%o3
- b 9f
- add %o2, (-5*2-1), %o2
-
-
-LOC(3.13):
- ! remainder is negative
- addcc %o3,%o5,%o3
- ! depth 4, accumulated bits -7
- bl LOC(4.9)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- b 9f
- add %o2, (-7*2+1), %o2
-
-LOC(4.9):
- ! remainder is negative
- addcc %o3,%o5,%o3
- b 9f
- add %o2, (-7*2-1), %o2
-
-
-
-
-9:
-LOC(end_regular_divide):
- subcc %o4, 1, %o4
- bge LOC(divloop)
- tst %o3
- bl,a LOC(got_result)
- ! non-restoring fixup here (one instruction only!)
- add %o3, %o1, %o3
-
-
-LOC(got_result):
-
+ wr %g0, 0, %y
+ nop
+ nop
+ nop
+ udiv %o0, %o1, %o2
+ umul %o2, %o1, %o2
retl
- mov %o3, %o0
+ sub %o0, %o2, %o0
END(.urem)
diff --git a/sysdeps/sparc/sparc64/Makefile b/sysdeps/sparc/sparc64/Makefile
index 16b760539e..7e3b62a595 100644
--- a/sysdeps/sparc/sparc64/Makefile
+++ b/sysdeps/sparc/sparc64/Makefile
@@ -1,5 +1,5 @@
# Makefile for SPARC 64-bit.
-# Copyright (C) 1997-2018 Free Software Foundation, Inc.
+# Copyright (C) 1997-2019 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# Contributed by Jakub Jelinek (jj@ultra.linux.cz).
#
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
sysdep-CFLAGS += -Wa,-Av9a -mvis
@@ -29,15 +29,6 @@ ASFLAGS-.os += -Wa,-Av9d
ASFLAGS-.op += -Wa,-Av9d
ASFLAGS-.oS += -Wa,-Av9d
-# nscd uses atomic_spin_nop which in turn requires cpu_relax
-ifeq ($(subdir),nscd)
-routines += cpu_relax
-endif
-
-ifeq ($(subdir),nptl)
-libpthread-routines += cpu_relax
-endif
-
ifeq ($(subdir),soft-fp)
sparc64-quad-routines := qp_add qp_cmp qp_cmpe qp_div qp_dtoq qp_feq qp_fge \
qp_fgt qp_fle qp_flt qp_fne qp_itoq qp_mul qp_neg qp_qtod qp_qtoi \
diff --git a/sysdeps/sparc/sparc64/add_n.S b/sysdeps/sparc/sparc64/add_n.S
index f804090c0d..799ebe3625 100644
--- a/sysdeps/sparc/sparc64/add_n.S
+++ b/sysdeps/sparc/sparc64/add_n.S
@@ -1,7 +1,7 @@
/* SPARC v9 __mpn_add_n -- Add two limb vectors of the same length > 0 and
store sum in a third limb vector.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -17,7 +17,7 @@
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not,
- see <http://www.gnu.org/licenses/>. */
+ see <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/addmul_1.S b/sysdeps/sparc/sparc64/addmul_1.S
index b36ce03764..92e63e3900 100644
--- a/sysdeps/sparc/sparc64/addmul_1.S
+++ b/sysdeps/sparc/sparc64/addmul_1.S
@@ -1,7 +1,7 @@
/* SPARC v9 __mpn_addmul_1 -- Multiply a limb vector with a single limb and
add the product to a second limb vector.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -17,7 +17,7 @@
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not,
- see <http://www.gnu.org/licenses/>. */
+ see <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/align-cpy.S b/sysdeps/sparc/sparc64/align-cpy.S
index 945a81a9e2..b313bcb57b 100644
--- a/sysdeps/sparc/sparc64/align-cpy.S
+++ b/sysdeps/sparc/sparc64/align-cpy.S
@@ -1,6 +1,6 @@
/* Aligned copy routines specified by Sparc V9 ABI.
For 64-bit sparc.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller (davem@davemloft.net)
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/atomic-machine.h b/sysdeps/sparc/sparc64/atomic-machine.h
deleted file mode 100644
index a737dda2c4..0000000000
--- a/sysdeps/sparc/sparc64/atomic-machine.h
+++ /dev/null
@@ -1,129 +0,0 @@
-/* Atomic operations. sparc64 version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <stdint.h>
-
-typedef int8_t atomic8_t;
-typedef uint8_t uatomic8_t;
-typedef int_fast8_t atomic_fast8_t;
-typedef uint_fast8_t uatomic_fast8_t;
-
-typedef int16_t atomic16_t;
-typedef uint16_t uatomic16_t;
-typedef int_fast16_t atomic_fast16_t;
-typedef uint_fast16_t uatomic_fast16_t;
-
-typedef int32_t atomic32_t;
-typedef uint32_t uatomic32_t;
-typedef int_fast32_t atomic_fast32_t;
-typedef uint_fast32_t uatomic_fast32_t;
-
-typedef int64_t atomic64_t;
-typedef uint64_t uatomic64_t;
-typedef int_fast64_t atomic_fast64_t;
-typedef uint_fast64_t uatomic_fast64_t;
-
-typedef intptr_t atomicptr_t;
-typedef uintptr_t uatomicptr_t;
-typedef intmax_t atomic_max_t;
-typedef uintmax_t uatomic_max_t;
-
-#define __HAVE_64B_ATOMICS 1
-#define USE_ATOMIC_COMPILER_BUILTINS 0
-
-/* XXX Is this actually correct? */
-#define ATOMIC_EXCHANGE_USES_CAS 1
-
-
-#define __arch_compare_and_exchange_val_8_acq(mem, newval, oldval) \
- (abort (), (__typeof (*mem)) 0)
-
-#define __arch_compare_and_exchange_val_16_acq(mem, newval, oldval) \
- (abort (), (__typeof (*mem)) 0)
-
-#define __arch_compare_and_exchange_val_32_acq(mem, newval, oldval) \
-({ \
- __typeof (*(mem)) __acev_tmp; \
- __typeof (mem) __acev_mem = (mem); \
- if (__builtin_constant_p (oldval) && (oldval) == 0) \
- __asm __volatile ("cas [%3], %%g0, %0" \
- : "=r" (__acev_tmp), "=m" (*__acev_mem) \
- : "m" (*__acev_mem), "r" (__acev_mem), \
- "0" (newval) : "memory"); \
- else \
- __asm __volatile ("cas [%4], %2, %0" \
- : "=r" (__acev_tmp), "=m" (*__acev_mem) \
- : "r" (oldval), "m" (*__acev_mem), "r" (__acev_mem), \
- "0" (newval) : "memory"); \
- __acev_tmp; })
-
-#define __arch_compare_and_exchange_val_64_acq(mem, newval, oldval) \
-({ \
- __typeof (*(mem)) __acev_tmp; \
- __typeof (mem) __acev_mem = (mem); \
- if (__builtin_constant_p (oldval) && (oldval) == 0) \
- __asm __volatile ("casx [%3], %%g0, %0" \
- : "=r" (__acev_tmp), "=m" (*__acev_mem) \
- : "m" (*__acev_mem), "r" (__acev_mem), \
- "0" ((long) (newval)) : "memory"); \
- else \
- __asm __volatile ("casx [%4], %2, %0" \
- : "=r" (__acev_tmp), "=m" (*__acev_mem) \
- : "r" ((long) (oldval)), "m" (*__acev_mem), \
- "r" (__acev_mem), "0" ((long) (newval)) : "memory"); \
- __acev_tmp; })
-
-#define atomic_exchange_acq(mem, newvalue) \
- ({ __typeof (*(mem)) __oldval, __val; \
- __typeof (mem) __memp = (mem); \
- __typeof (*(mem)) __value = (newvalue); \
- \
- if (sizeof (*(mem)) == 4) \
- __asm ("swap %0, %1" \
- : "=m" (*__memp), "=r" (__oldval) \
- : "m" (*__memp), "1" (__value) : "memory"); \
- else \
- { \
- __val = *__memp; \
- do \
- { \
- __oldval = __val; \
- __val = atomic_compare_and_exchange_val_acq (__memp, __value, \
- __oldval); \
- } \
- while (__builtin_expect (__val != __oldval, 0)); \
- } \
- __oldval; })
-
-#define atomic_compare_and_exchange_val_24_acq(mem, newval, oldval) \
- atomic_compare_and_exchange_val_acq (mem, newval, oldval)
-
-#define atomic_exchange_24_rel(mem, newval) \
- atomic_exchange_rel (mem, newval)
-
-#define atomic_full_barrier() \
- __asm __volatile ("membar #LoadLoad | #LoadStore" \
- " | #StoreLoad | #StoreStore" : : : "memory")
-#define atomic_read_barrier() \
- __asm __volatile ("membar #LoadLoad | #LoadStore" : : : "memory")
-#define atomic_write_barrier() \
- __asm __volatile ("membar #LoadStore | #StoreStore" : : : "memory")
-
-extern void __cpu_relax (void);
-#define atomic_spin_nop() __cpu_relax ()
diff --git a/sysdeps/sparc/sparc64/cpu_relax.c b/sysdeps/sparc/sparc64/cpu_relax.c
deleted file mode 100644
index c485777f8f..0000000000
--- a/sysdeps/sparc/sparc64/cpu_relax.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/* CPU strand yielding for busy loops. Linux/sparc64 version.
- Copyright (C) 2017-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sparc-ifunc.h>
-
-static void
-__cpu_relax_generic (void)
-{
- asm volatile ("rd %ccr, %g0;"
- "rd %ccr, %g0;"
- "rd %ccr, %g0");
-}
-
-static void
-__cpu_relax_pause (void)
-{
- asm volatile ("wr %g0, 128, %asr27");
-}
-
-sparc_libc_ifunc (__cpu_relax,
- hwcap & HWCAP_SPARC_PAUSE
- ? __cpu_relax_pause
- : __cpu_relax_generic)
diff --git a/sysdeps/sparc/sparc64/dl-irel.h b/sysdeps/sparc/sparc64/dl-irel.h
index c5cd3057ac..f0aa8008f2 100644
--- a/sysdeps/sparc/sparc64/dl-irel.h
+++ b/sysdeps/sparc/sparc64/dl-irel.h
@@ -1,6 +1,6 @@
/* Machine-dependent ELF indirect relocation inline functions.
SPARC 64-bit version.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DL_IREL_H
#define _DL_IREL_H
@@ -59,7 +59,7 @@ elf_irela (const Elf64_Rela *reloc)
else if (r_type == R_SPARC_NONE)
;
else
- __libc_fatal ("unexpected reloc type in static binary");
+ __libc_fatal ("Unexpected reloc type in static binary.\n");
}
#endif /* dl-irel.h */
diff --git a/sysdeps/sparc/sparc64/dl-machine.h b/sysdeps/sparc/sparc64/dl-machine.h
index cd6a6996cb..0acaf92a53 100644
--- a/sysdeps/sparc/sparc64/dl-machine.h
+++ b/sysdeps/sparc/sparc64/dl-machine.h
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation inline functions. Sparc64 version.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef dl_machine_h
#define dl_machine_h
@@ -450,11 +450,13 @@ elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc,
*reloc_addr = value;
break;
case R_SPARC_IRELATIVE:
- value = ((Elf64_Addr (*) (int)) value) (GLRO(dl_hwcap));
+ if (__glibc_likely (!skip_ifunc))
+ value = ((Elf64_Addr (*) (int)) value) (GLRO(dl_hwcap));
*reloc_addr = value;
break;
case R_SPARC_JMP_IREL:
- value = ((Elf64_Addr (*) (int)) value) (GLRO(dl_hwcap));
+ if (__glibc_likely (!skip_ifunc))
+ value = ((Elf64_Addr (*) (int)) value) (GLRO(dl_hwcap));
/* 'high' is always zero, for large PLT entries the linker
emits an R_SPARC_IRELATIVE. */
#ifdef RESOLVE_CONFLICT_FIND_MAP
@@ -547,65 +549,66 @@ elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc,
break;
case R_SPARC_WDISP30:
*(unsigned int *) reloc_addr =
- ((*(unsigned int *)reloc_addr & 0xc0000000) |
- (((value - (Elf64_Addr) reloc_addr) >> 2) & 0x3fffffff));
+ ((*(unsigned int *)reloc_addr & 0xc0000000)
+ | (((value - (Elf64_Addr) reloc_addr) >> 2) & 0x3fffffff));
break;
/* MEDLOW code model relocs */
case R_SPARC_LO10:
*(unsigned int *) reloc_addr =
- ((*(unsigned int *)reloc_addr & ~0x3ff) |
- (value & 0x3ff));
+ ((*(unsigned int *)reloc_addr & ~0x3ff)
+ | (value & 0x3ff));
break;
case R_SPARC_HI22:
*(unsigned int *) reloc_addr =
- ((*(unsigned int *)reloc_addr & 0xffc00000) |
- ((value >> 10) & 0x3fffff));
+ ((*(unsigned int *)reloc_addr & 0xffc00000)
+ | ((value >> 10) & 0x3fffff));
break;
case R_SPARC_OLO10:
*(unsigned int *) reloc_addr =
- ((*(unsigned int *)reloc_addr & ~0x1fff) |
- (((value & 0x3ff) + ELF64_R_TYPE_DATA (reloc->r_info)) & 0x1fff));
+ ((*(unsigned int *)reloc_addr & ~0x1fff)
+ | (((value & 0x3ff) + ELF64_R_TYPE_DATA (reloc->r_info)) & 0x1fff));
break;
/* ABS34 code model reloc */
case R_SPARC_H34:
*(unsigned int *) reloc_addr =
- ((*(unsigned int *)reloc_addr & 0xffc00000) |
- ((value >> 12) & 0x3fffff));
+ ((*(unsigned int *)reloc_addr & 0xffc00000)
+ | ((value >> 12) & 0x3fffff));
+ break;
/* MEDMID code model relocs */
case R_SPARC_H44:
*(unsigned int *) reloc_addr =
- ((*(unsigned int *)reloc_addr & 0xffc00000) |
- ((value >> 22) & 0x3fffff));
+ ((*(unsigned int *)reloc_addr & 0xffc00000)
+ | ((value >> 22) & 0x3fffff));
break;
case R_SPARC_M44:
*(unsigned int *) reloc_addr =
- ((*(unsigned int *)reloc_addr & ~0x3ff) |
- ((value >> 12) & 0x3ff));
+ ((*(unsigned int *)reloc_addr & ~0x3ff)
+ | ((value >> 12) & 0x3ff));
break;
case R_SPARC_L44:
*(unsigned int *) reloc_addr =
- ((*(unsigned int *)reloc_addr & ~0xfff) |
- (value & 0xfff));
+ ((*(unsigned int *)reloc_addr & ~0xfff)
+ | (value & 0xfff));
break;
/* MEDANY code model relocs */
case R_SPARC_HH22:
*(unsigned int *) reloc_addr =
- ((*(unsigned int *)reloc_addr & 0xffc00000) |
- (value >> 42));
+ ((*(unsigned int *)reloc_addr & 0xffc00000)
+ | (value >> 42));
break;
case R_SPARC_HM10:
*(unsigned int *) reloc_addr =
- ((*(unsigned int *)reloc_addr & ~0x3ff) |
- ((value >> 32) & 0x3ff));
+ ((*(unsigned int *)reloc_addr & ~0x3ff)
+ | ((value >> 32) & 0x3ff));
break;
case R_SPARC_LM22:
*(unsigned int *) reloc_addr =
- ((*(unsigned int *)reloc_addr & 0xffc00000) |
- ((value >> 10) & 0x003fffff));
+ ((*(unsigned int *)reloc_addr & 0xffc00000)
+ | ((value >> 10) & 0x003fffff));
break;
case R_SPARC_UA16:
((unsigned char *) reloc_addr_arg) [0] = value >> 8;
diff --git a/sysdeps/sparc/sparc64/dl-plt.h b/sysdeps/sparc/sparc64/dl-plt.h
index 46b690c1ad..9d88f84a32 100644
--- a/sysdeps/sparc/sparc64/dl-plt.h
+++ b/sysdeps/sparc/sparc64/dl-plt.h
@@ -1,5 +1,5 @@
/* PLT fixups. Sparc 64-bit version.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DL_PLT_H
#define _DL_PLT_H
diff --git a/sysdeps/sparc/sparc64/dl-trampoline.S b/sysdeps/sparc/sparc64/dl-trampoline.S
index 4948b88b96..b415953aa9 100644
--- a/sysdeps/sparc/sparc64/dl-trampoline.S
+++ b/sysdeps/sparc/sparc64/dl-trampoline.S
@@ -1,5 +1,5 @@
/* PLT trampolines. Sparc 64-bit version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/fpu/e_sqrtl.c b/sysdeps/sparc/sparc64/fpu/e_sqrtl.c
index 68bd584e35..22b62b281c 100644
--- a/sysdeps/sparc/sparc64/fpu/e_sqrtl.c
+++ b/sysdeps/sparc/sparc64/fpu/e_sqrtl.c
@@ -1,5 +1,5 @@
/* Long double square root, sparc64 version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_ceil-generic.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_ceil-generic.c
index febea745e1..80f68b6766 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_ceil-generic.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_ceil-generic.c
@@ -1,2 +1,2 @@
#define __ceil __ceil_generic
-#include <sysdeps/ieee754/dbl-64/wordsize-64/s_ceil.c>
+#include <sysdeps/ieee754/dbl-64/s_ceil.c>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_ceil-vis3.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_ceil-vis3.c
index a03a0090f0..2b89199c62 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_ceil-vis3.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_ceil-vis3.c
@@ -1,5 +1,5 @@
/* ceil function, sparc64 vis3 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,10 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#define __ceil __ceil_vis3
-#include <sysdeps/ieee754/dbl-64/wordsize-64/s_ceil.c>
+#include <sysdeps/ieee754/dbl-64/s_ceil.c>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_ceil.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_ceil.c
index 3d34622d43..3e00637576 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_ceil.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_ceil.c
@@ -1,5 +1,5 @@
/* ceil function, sparc64 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,8 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <sparc-ifunc.h>
#include <math.h>
#include <libm-alias-double.h>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf-vis3.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf-vis3.c
index eb9ed6f7de..a609d14daf 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf-vis3.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf-vis3.c
@@ -1,5 +1,5 @@
/* Float ceil function, sparc64 vis3 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf.c
index 18d2eb565d..fc941a670d 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf.c
@@ -1,5 +1,5 @@
/* Float ceil function, sparc64 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,8 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <sparc-ifunc.h>
#include <math.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_finite-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_finite-vis3.S
index 0cd3fd50c9..c2b12da396 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_finite-vis3.S
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_finite-vis3.S
@@ -1,5 +1,5 @@
/* finite(). sparc64 vis3 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_finite.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_finite.c
index b51ed19438..a58ddf4485 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_finite.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_finite.c
@@ -1,5 +1,5 @@
/* finite ifunc resolver, Linux/sparc64 version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __finite __redirect___finite
#define __finitef __redirect___finitef
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_finitef-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_finitef-vis3.S
index d0391f6dbf..ce0fd004a7 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_finitef-vis3.S
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_finitef-vis3.S
@@ -1,5 +1,5 @@
/* finitef(). sparc64 vis3 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_finitef.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_finitef.c
index 92cc5ef075..57c31fef41 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_finitef.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_finitef.c
@@ -1,5 +1,5 @@
/* finitef ifunc resolver, Linux/sparc64 version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __finitef __redirect___finitef
#include <math.h>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_floor-generic.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_floor-generic.c
index 0f3361a9fb..c92b600df1 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_floor-generic.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_floor-generic.c
@@ -1,2 +1,2 @@
#define __floor __floor_generic
-#include <sysdeps/ieee754/dbl-64/wordsize-64/s_floor.c>
+#include <sysdeps/ieee754/dbl-64/s_floor.c>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_floor-vis3.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_floor-vis3.c
index d9974161b0..4f3d53c0e3 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_floor-vis3.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_floor-vis3.c
@@ -1,5 +1,5 @@
/* floor function, sparc64 vis3 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,10 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#define __floor __floor_vis3
-#include <sysdeps/ieee754/dbl-64/wordsize-64/s_floor.c>
+#include <sysdeps/ieee754/dbl-64/s_floor.c>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_floor.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_floor.c
index 6e5ecd2b5d..5c0770b164 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_floor.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_floor.c
@@ -1,5 +1,5 @@
/* floor function, sparc64 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,8 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <sparc-ifunc.h>
#include <math.h>
#include <libm-alias-double.h>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_floorf-vis3.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_floorf-vis3.c
index d970da3752..6048daf9e7 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_floorf-vis3.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_floorf-vis3.c
@@ -1,5 +1,5 @@
/* Float floor function, sparc64 vis3 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_floorf.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_floorf.c
index b79fd83fa4..4ef151e541 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_floorf.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_floorf.c
@@ -1,5 +1,5 @@
/* Float floor function, sparc64 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,8 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <sparc-ifunc.h>
#include <math.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_fma-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_fma-vis3.S
index ba50b3a657..7b1278c5f5 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_fma-vis3.S
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_fma-vis3.S
@@ -1,5 +1,5 @@
/* fma function, sparc64 vis3 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller <davem@davemloft.net>, 2012.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_fmaf-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_fmaf-vis3.S
index fbfa5fd869..2229bad92e 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_fmaf-vis3.S
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_fmaf-vis3.S
@@ -1,5 +1,5 @@
/* fmaf function, sparc64 vis3 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller <davem@davemloft.net>, 2012.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_isinf-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_isinf-vis3.S
index bb5e6a0772..12c5a7dcec 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_isinf-vis3.S
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_isinf-vis3.S
@@ -1,5 +1,5 @@
/* isinf(). sparc64 vis3 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_isinf.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_isinf.c
index 2eea299486..548adc091f 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_isinf.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_isinf.c
@@ -1,5 +1,5 @@
/* isinf ifunc resolver, Linux/sparc64 version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __isinf __redirect___isinf
#define __isinff __redirect___isinff
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_isinff-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_isinff-vis3.S
index a80c22905f..a2d476ccaa 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_isinff-vis3.S
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_isinff-vis3.S
@@ -1,5 +1,5 @@
/* isinff(). sparc64 vis3 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_isinff.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_isinff.c
index 3b814c89fd..ec06633002 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_isinff.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_isinff.c
@@ -1,5 +1,5 @@
/* isinff ifunc resolver, Linux/sparc64 version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __isinff __redirect___isinff
#include <math.h>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_isnan-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_isnan-vis3.S
index aefb2c77c7..f624bb92bc 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_isnan-vis3.S
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_isnan-vis3.S
@@ -1,5 +1,5 @@
/* isnan(). sparc64 vis3 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_isnan.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_isnan.c
index ccf6fbe93a..5f2ee15e24 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_isnan.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_isnan.c
@@ -1,5 +1,5 @@
/* isnan ifunc resolver, Linux/sparc64 version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __isnan __redirect___isnan
#define __isnanf __redirect___isnanf
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_isnanf-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_isnanf-vis3.S
index 74c93aa228..233979df7b 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_isnanf-vis3.S
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_isnanf-vis3.S
@@ -1,5 +1,5 @@
/* isnanf(). sparc64 vis3 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_isnanf.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_isnanf.c
index 8ad3ccbc64..1746d954c9 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_isnanf.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_isnanf.c
@@ -1,5 +1,5 @@
/* isnanf ifunc resolver, Linux/sparc64 version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __isnanf __redirect___isnanf
#include <math.h>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_lrint-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_lrint-vis3.S
index 865bc4b9d7..dca5437ff1 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_lrint-vis3.S
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_lrint-vis3.S
@@ -1,5 +1,5 @@
/* lrint(), sparc64 vis3 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller <davem@davemloft.net>, 2012.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_lrint.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_lrint.c
index 159bcd9aa6..b15d0776c9 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_lrint.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_lrint.c
@@ -1,5 +1,5 @@
/* lrint/llrint ifunc resolver, Linux/sparc64 version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define lrint __redirect_lrint
#define llrint __redirect_llrint
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_lrintf-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_lrintf-vis3.S
index 229205e98a..66b1758f6c 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_lrintf-vis3.S
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_lrintf-vis3.S
@@ -1,5 +1,5 @@
/* lrintf(), sparc64 vis3 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller <davem@davemloft.net>, 2012.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_lrintf.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_lrintf.c
index ccb7cd9723..15218fa074 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_lrintf.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_lrintf.c
@@ -1,5 +1,5 @@
/* lrintf/llrintf ifunc resolver, Linux/sparc64 version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define lrintf __redirect_lrintf
#define llrintf __redirect_llrintf
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyint-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyint-vis3.S
index 29b53e917c..05cf13a8f3 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyint-vis3.S
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyint-vis3.S
@@ -1,7 +1,7 @@
/* Round float to int floating-point values without generating
an inexact exception, sparc64 vis3 version.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller <davem@davemloft.net>, 2013.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyint.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyint.c
index b58cbdcc9b..548a6bed61 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyint.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyint.c
@@ -1,5 +1,5 @@
/* nearbyint ifunc resolver, Linux/sparc64 version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <sparc-ifunc.h>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyintf-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyintf-vis3.S
index de2dbe9c93..f04478cc88 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyintf-vis3.S
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyintf-vis3.S
@@ -1,7 +1,7 @@
/* Round float to int floating-point values without generating
an inexact exception, sparc64 vis3 version.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller <davem@davemloft.net>, 2013.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyintf.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyintf.c
index bd18ea2fcb..b8cb9a4067 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyintf.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyintf.c
@@ -1,5 +1,5 @@
/* nearbyintf ifunc resolver, Linux/sparc64 version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <sparc-ifunc.h>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_rint-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_rint-vis3.S
index 19343c3de9..533f991f61 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_rint-vis3.S
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_rint-vis3.S
@@ -1,5 +1,5 @@
/* Round float to int floating-point values, sparc64 vis3 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller <davem@davemloft.net>, 2012.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_rint.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_rint.c
index ae782b0b60..2eeb241cbf 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_rint.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_rint.c
@@ -1,5 +1,5 @@
/* rint ifunc resolver, Linux/sparc64 version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,8 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
#include <sparc-ifunc.h>
#include <libm-alias-double.h>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_rintf-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_rintf-vis3.S
index 86a81c96d2..1e9bd68268 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_rintf-vis3.S
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_rintf-vis3.S
@@ -1,5 +1,5 @@
/* Round float to int floating-point values, sparc64 vis3 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller <davem@davemloft.net>, 2012.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_rintf.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_rintf.c
index e0265c47aa..08d8458fb2 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_rintf.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_rintf.c
@@ -1,5 +1,5 @@
/* rintf ifunc resolver, Linux/sparc64 version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,8 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <math.h>
#include <sparc-ifunc.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_signbit-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_signbit-vis3.S
index 4bc1571ce7..391e52f267 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_signbit-vis3.S
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_signbit-vis3.S
@@ -1,5 +1,5 @@
/* signbit(). sparc64 vis3 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_signbit.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_signbit.c
index 28d18b93af..edff2e228d 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_signbit.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_signbit.c
@@ -1,5 +1,5 @@
/* signbit ifunc resolver, Linux/sparc64 version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __signbit __redirect_signbit
#include <math.h>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_signbitf-vis3.S b/sysdeps/sparc/sparc64/fpu/multiarch/s_signbitf-vis3.S
index bafa7d1c57..9c4b033a40 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_signbitf-vis3.S
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_signbitf-vis3.S
@@ -1,5 +1,5 @@
/* signbitf(). sparc64 vis3 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_signbitf.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_signbitf.c
index b2648ee937..84e935a4ba 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_signbitf.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_signbitf.c
@@ -1,5 +1,5 @@
/* signbit ifunc resolver, Linux/sparc64 version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <sparc-ifunc.h>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_trunc-generic.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_trunc-generic.c
index 00abd2a643..c198ebb3d5 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_trunc-generic.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_trunc-generic.c
@@ -1,2 +1,2 @@
#define __trunc __trunc_generic
-#include <sysdeps/ieee754/dbl-64/wordsize-64/s_trunc.c>
+#include <sysdeps/ieee754/dbl-64/s_trunc.c>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_trunc-vis3.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_trunc-vis3.c
index a89916ba89..321a9eded6 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_trunc-vis3.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_trunc-vis3.c
@@ -1,5 +1,5 @@
/* trunc function, sparc64 vis3 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,10 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#define __trunc __trunc_vis3
-#include <sysdeps/ieee754/dbl-64/wordsize-64/s_trunc.c>
+#include <sysdeps/ieee754/dbl-64/s_trunc.c>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_trunc.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_trunc.c
index 82ad6ffcca..a26cde0ee1 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_trunc.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_trunc.c
@@ -1,5 +1,5 @@
/* trunc function, sparc64 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,8 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <sparc-ifunc.h>
#include <math.h>
#include <libm-alias-double.h>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_truncf-vis3.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_truncf-vis3.c
index 676b1b47aa..0c5303ab66 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_truncf-vis3.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_truncf-vis3.c
@@ -1,5 +1,5 @@
/* Float trunc function, sparc64 vis3 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/sparc/sparc64/fpu/multiarch/s_truncf.c b/sysdeps/sparc/sparc64/fpu/multiarch/s_truncf.c
index 1c7a4a038f..20ec6938ab 100644
--- a/sysdeps/sparc/sparc64/fpu/multiarch/s_truncf.c
+++ b/sysdeps/sparc/sparc64/fpu/multiarch/s_truncf.c
@@ -1,5 +1,5 @@
/* Float trunc function, sparc64 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,8 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <sparc-ifunc.h>
#include <math.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/sparc/sparc64/fpu/s_copysign.S b/sysdeps/sparc/sparc64/fpu/s_copysign.S
index f3f207dea0..9e2f7036b8 100644
--- a/sysdeps/sparc/sparc64/fpu/s_copysign.S
+++ b/sysdeps/sparc/sparc64/fpu/s_copysign.S
@@ -1,5 +1,5 @@
/* copysign function, sparc64 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller <davem@davemloft.net>, 2012.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <libm-alias-double.h>
diff --git a/sysdeps/sparc/sparc64/fpu/s_copysignf.S b/sysdeps/sparc/sparc64/fpu/s_copysignf.S
index 6fb25c3322..f4d292a5e6 100644
--- a/sysdeps/sparc/sparc64/fpu/s_copysignf.S
+++ b/sysdeps/sparc/sparc64/fpu/s_copysignf.S
@@ -1,5 +1,5 @@
/* float copysign function, sparc64 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller <davem@davemloft.net>, 2012.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/sparc/sparc64/fpu/s_finite.S b/sysdeps/sparc/sparc64/fpu/s_finite.S
index b3018bbbcd..dcafc0bdb4 100644
--- a/sysdeps/sparc/sparc64/fpu/s_finite.S
+++ b/sysdeps/sparc/sparc64/fpu/s_finite.S
@@ -1,5 +1,5 @@
/* finite(). sparc64 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/fpu/s_finitef.S b/sysdeps/sparc/sparc64/fpu/s_finitef.S
index e82af81079..947dffd2fc 100644
--- a/sysdeps/sparc/sparc64/fpu/s_finitef.S
+++ b/sysdeps/sparc/sparc64/fpu/s_finitef.S
@@ -1,5 +1,5 @@
/* finitef(). sparc64 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/fpu/s_isinf.S b/sysdeps/sparc/sparc64/fpu/s_isinf.S
index 6365bc438b..05360990e2 100644
--- a/sysdeps/sparc/sparc64/fpu/s_isinf.S
+++ b/sysdeps/sparc/sparc64/fpu/s_isinf.S
@@ -1,5 +1,5 @@
/* isinf(). sparc64 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/fpu/s_isinff.S b/sysdeps/sparc/sparc64/fpu/s_isinff.S
index 9737d91102..0d129eb038 100644
--- a/sysdeps/sparc/sparc64/fpu/s_isinff.S
+++ b/sysdeps/sparc/sparc64/fpu/s_isinff.S
@@ -1,5 +1,5 @@
/* isinff(). sparc64 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/fpu/s_isnan.S b/sysdeps/sparc/sparc64/fpu/s_isnan.S
index 47ac0cf247..80e31f1bc3 100644
--- a/sysdeps/sparc/sparc64/fpu/s_isnan.S
+++ b/sysdeps/sparc/sparc64/fpu/s_isnan.S
@@ -1,5 +1,5 @@
/* isnan(). sparc64 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/fpu/s_isnanf.S b/sysdeps/sparc/sparc64/fpu/s_isnanf.S
index 32e80219f7..b4c4609400 100644
--- a/sysdeps/sparc/sparc64/fpu/s_isnanf.S
+++ b/sysdeps/sparc/sparc64/fpu/s_isnanf.S
@@ -1,5 +1,5 @@
/* isnanf(). sparc64 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/fpu/s_lrint.S b/sysdeps/sparc/sparc64/fpu/s_lrint.S
index 907a466be5..f15876444b 100644
--- a/sysdeps/sparc/sparc64/fpu/s_lrint.S
+++ b/sysdeps/sparc/sparc64/fpu/s_lrint.S
@@ -1,5 +1,5 @@
/* lrint(), sparc64 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller <davem@davemloft.net>, 2012.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <libm-alias-double.h>
diff --git a/sysdeps/sparc/sparc64/fpu/s_lrintf.S b/sysdeps/sparc/sparc64/fpu/s_lrintf.S
index 7a341f6fc5..121eafbac6 100644
--- a/sysdeps/sparc/sparc64/fpu/s_lrintf.S
+++ b/sysdeps/sparc/sparc64/fpu/s_lrintf.S
@@ -1,5 +1,5 @@
/* lrintf(), sparc64 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller <davem@davemloft.net>, 2012.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/sparc/sparc64/fpu/s_nearbyint.S b/sysdeps/sparc/sparc64/fpu/s_nearbyint.S
index a8f099779f..4259fc941a 100644
--- a/sysdeps/sparc/sparc64/fpu/s_nearbyint.S
+++ b/sysdeps/sparc/sparc64/fpu/s_nearbyint.S
@@ -1,7 +1,7 @@
/* Round float to int floating-point values without generating
an inexact exception, sparc64 version.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller <davem@davemloft.net>, 2013.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <libm-alias-double.h>
diff --git a/sysdeps/sparc/sparc64/fpu/s_nearbyintf.S b/sysdeps/sparc/sparc64/fpu/s_nearbyintf.S
index 361ea5800d..c80b4153e3 100644
--- a/sysdeps/sparc/sparc64/fpu/s_nearbyintf.S
+++ b/sysdeps/sparc/sparc64/fpu/s_nearbyintf.S
@@ -1,7 +1,7 @@
/* Round float to int floating-point values without generating
an inexact exception, sparc64 version.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller <davem@davemloft.net>, 2013.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/sparc/sparc64/fpu/s_rint.S b/sysdeps/sparc/sparc64/fpu/s_rint.S
index 23745fb7e5..d6d4a6f905 100644
--- a/sysdeps/sparc/sparc64/fpu/s_rint.S
+++ b/sysdeps/sparc/sparc64/fpu/s_rint.S
@@ -1,5 +1,5 @@
/* Round float to int floating-point values, sparc64 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller <davem@davemloft.net>, 2012.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <libm-alias-double.h>
diff --git a/sysdeps/sparc/sparc64/fpu/s_rintf.S b/sysdeps/sparc/sparc64/fpu/s_rintf.S
index 7eeb175aa7..2f20b05015 100644
--- a/sysdeps/sparc/sparc64/fpu/s_rintf.S
+++ b/sysdeps/sparc/sparc64/fpu/s_rintf.S
@@ -1,5 +1,5 @@
/* Round float to int floating-point values, sparc64 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller <davem@davemloft.net>, 2012.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/sparc/sparc64/fpu/s_signbit.S b/sysdeps/sparc/sparc64/fpu/s_signbit.S
index 57fc717a48..758da3bdca 100644
--- a/sysdeps/sparc/sparc64/fpu/s_signbit.S
+++ b/sysdeps/sparc/sparc64/fpu/s_signbit.S
@@ -1,5 +1,5 @@
/* signbit(). sparc64 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/fpu/s_signbitf.S b/sysdeps/sparc/sparc64/fpu/s_signbitf.S
index 0b20f0189a..ba97c13634 100644
--- a/sysdeps/sparc/sparc64/fpu/s_signbitf.S
+++ b/sysdeps/sparc/sparc64/fpu/s_signbitf.S
@@ -1,5 +1,5 @@
/* signbitf(). sparc64 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/hp-timing.h b/sysdeps/sparc/sparc64/hp-timing.h
index 6632564106..29916e68ab 100644
--- a/sysdeps/sparc/sparc64/hp-timing.h
+++ b/sysdeps/sparc/sparc64/hp-timing.h
@@ -1,5 +1,5 @@
/* High precision, low overhead timing functions. sparc64 version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller <davem@redhat.com>, 2001.
@@ -15,13 +15,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _HP_TIMING_H
#define _HP_TIMING_H 1
-#define HP_TIMING_AVAIL (1)
-#define HP_SMALL_TIMING_AVAIL (1)
#define HP_TIMING_INLINE (1)
typedef unsigned long int hp_timing_t;
diff --git a/sysdeps/sparc/sparc64/jmpbuf-unwind.h b/sysdeps/sparc/sparc64/jmpbuf-unwind.h
index c07688dd2b..4ef99c924c 100644
--- a/sysdeps/sparc/sparc64/jmpbuf-unwind.h
+++ b/sysdeps/sparc/sparc64/jmpbuf-unwind.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller <davem@davemloft.net>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <setjmp.h>
#include <stdint.h>
diff --git a/sysdeps/sparc/sparc64/lshift.S b/sysdeps/sparc/sparc64/lshift.S
index 9fa0f99aea..d05e5799ed 100644
--- a/sysdeps/sparc/sparc64/lshift.S
+++ b/sysdeps/sparc/sparc64/lshift.S
@@ -1,6 +1,6 @@
/* SPARC v9 __mpn_lshift --
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -16,7 +16,7 @@
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not,
- see <http://www.gnu.org/licenses/>. */
+ see <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/memchr.S b/sysdeps/sparc/sparc64/memchr.S
index 1024cb0000..407bc153b5 100644
--- a/sysdeps/sparc/sparc64/memchr.S
+++ b/sysdeps/sparc/sparc64/memchr.S
@@ -1,9 +1,9 @@
/* memchr (str, ch, n) -- Return pointer to first occurrence of CH in STR less
than N.
For SPARC v9.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
- Contributed by Jan Vondrak <jvon4518@ss1000.ms.mff.cuni.cz> and
+ Contributed by Jan Vondrák <jvon4518@ss1000.ms.mff.cuni.cz> and
Jakub Jelinek <jj@ultra.linux.cz>.
This version is developed using the same algorithm as the fast C
version which carries the following introduction:
@@ -25,7 +25,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <asm/asi.h>
diff --git a/sysdeps/sparc/sparc64/memcmp.S b/sysdeps/sparc/sparc64/memcmp.S
index 46ac800102..1f3ae28602 100644
--- a/sysdeps/sparc/sparc64/memcmp.S
+++ b/sysdeps/sparc/sparc64/memcmp.S
@@ -1,8 +1,8 @@
/* Compare two memory blocks for differences in the first COUNT bytes.
For SPARC v9.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
- Contributed by Jan Vondrak <jvon4518@ss1000.ms.mff.cuni.cz> and
+ Contributed by Jan Vondrák <jvon4518@ss1000.ms.mff.cuni.cz> and
Jakub Jelinek <jj@ultra.linux.cz>.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <asm/asi.h>
diff --git a/sysdeps/sparc/sparc64/memcpy.S b/sysdeps/sparc/sparc64/memcpy.S
index e1542d26bf..d210824d3f 100644
--- a/sysdeps/sparc/sparc64/memcpy.S
+++ b/sysdeps/sparc/sparc64/memcpy.S
@@ -1,6 +1,6 @@
/* Copy SIZE bytes from SRC to DEST.
For UltraSPARC.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller (davem@caip.rutgers.edu) and
Jakub Jelinek (jakub@redhat.com).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <asm/asi.h>
diff --git a/sysdeps/sparc/sparc64/memmove.S b/sysdeps/sparc/sparc64/memmove.S
index 117786bc1c..e7677da8f5 100644
--- a/sysdeps/sparc/sparc64/memmove.S
+++ b/sysdeps/sparc/sparc64/memmove.S
@@ -1,7 +1,7 @@
/* Copy memory to memory until the specified number of bytes
has been copied. Overlap is handled correctly.
For SPARC V9.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/memset.S b/sysdeps/sparc/sparc64/memset.S
index 72ae8e1ca1..c581f3ef46 100644
--- a/sysdeps/sparc/sparc64/memset.S
+++ b/sysdeps/sparc/sparc64/memset.S
@@ -1,6 +1,6 @@
/* Set a block of memory to some byte value.
For UltraSPARC.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller (davem@caip.rutgers.edu) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <asm/asi.h>
diff --git a/sysdeps/sparc/sparc64/mul_1.S b/sysdeps/sparc/sparc64/mul_1.S
index 4b7f4dbbeb..2b885e6dd5 100644
--- a/sysdeps/sparc/sparc64/mul_1.S
+++ b/sysdeps/sparc/sparc64/mul_1.S
@@ -1,7 +1,7 @@
/* SPARC v9 __mpn_mul_1 -- Multiply a limb vector with a single limb and
store the product in a second limb vector.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -17,7 +17,7 @@
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not,
- see <http://www.gnu.org/licenses/>. */
+ see <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/multiarch/add_n-vis3.S b/sysdeps/sparc/sparc64/multiarch/add_n-vis3.S
index b4f1ef5181..f0456599ff 100644
--- a/sysdeps/sparc/sparc64/multiarch/add_n-vis3.S
+++ b/sysdeps/sparc/sparc64/multiarch/add_n-vis3.S
@@ -1,7 +1,7 @@
! SPARC v9 64-bit VIS3 __mpn_add_n -- Add two limb vectors of the same length > 0 and
! store sum in a third limb vector.
!
-! Copyright (C) 2013-2018 Free Software Foundation, Inc.
+! Copyright (C) 2013-2019 Free Software Foundation, Inc.
! This file is part of the GNU C Library.
! Contributed by David S. Miller <davem@davemloft.net>
!
@@ -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
-! <http://www.gnu.org/licenses/>.
+! <https://www.gnu.org/licenses/>.
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/multiarch/add_n.c b/sysdeps/sparc/sparc64/multiarch/add_n.c
index 47b0d0e3bc..ad789d7031 100644
--- a/sysdeps/sparc/sparc64/multiarch/add_n.c
+++ b/sysdeps/sparc/sparc64/multiarch/add_n.c
@@ -1,5 +1,5 @@
/* __mpn_add_n ifunc resolver, Linux/sparc64 version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <gmp.h>
#include <sparc-ifunc.h>
diff --git a/sysdeps/sparc/sparc64/multiarch/addmul_1-vis3.S b/sysdeps/sparc/sparc64/multiarch/addmul_1-vis3.S
index b5e808bddd..b0308b3593 100644
--- a/sysdeps/sparc/sparc64/multiarch/addmul_1-vis3.S
+++ b/sysdeps/sparc/sparc64/multiarch/addmul_1-vis3.S
@@ -1,7 +1,7 @@
! SPARC v9 64-bit VIS3 __mpn_addmul_1 -- Multiply a limb vector with a
! limb and add the result to a second limb vector.
!
-! Copyright (C) 2013-2018 Free Software Foundation, Inc.
+! Copyright (C) 2013-2019 Free Software Foundation, Inc.
! This file is part of the GNU C Library.
! Contributed by David S. Miller <davem@davemloft.net>
!
@@ -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
-! <http://www.gnu.org/licenses/>.
+! <https://www.gnu.org/licenses/>.
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/multiarch/addmul_1.c b/sysdeps/sparc/sparc64/multiarch/addmul_1.c
index afaeca870d..2007b9d82d 100644
--- a/sysdeps/sparc/sparc64/multiarch/addmul_1.c
+++ b/sysdeps/sparc/sparc64/multiarch/addmul_1.c
@@ -1,5 +1,5 @@
/* __mpn_addmul_1 ifunc resolver, Linux/sparc64 version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <gmp.h>
#include <sparc-ifunc.h>
diff --git a/sysdeps/sparc/sparc64/multiarch/bzero.c b/sysdeps/sparc/sparc64/multiarch/bzero.c
index 3af2ff3d47..56f779f68f 100644
--- a/sysdeps/sparc/sparc64/multiarch/bzero.c
+++ b/sysdeps/sparc/sparc64/multiarch/bzero.c
@@ -1,6 +1,6 @@
/* Multiple versions of bzero. SPARC64/Linux version.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# define bzero __redirect_bzero
diff --git a/sysdeps/sparc/sparc64/multiarch/ifunc-impl-list.c b/sysdeps/sparc/sparc64/multiarch/ifunc-impl-list.c
index 91c6565c7a..4c13e392c4 100644
--- a/sysdeps/sparc/sparc64/multiarch/ifunc-impl-list.c
+++ b/sysdeps/sparc/sparc64/multiarch/ifunc-impl-list.c
@@ -1,5 +1,5 @@
/* Enumerate available IFUNC implementations of a function. sparc version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <string.h>
diff --git a/sysdeps/sparc/sparc64/multiarch/ifunc-memcpy.h b/sysdeps/sparc/sparc64/multiarch/ifunc-memcpy.h
index 73ea15297a..38dc86f1ef 100644
--- a/sysdeps/sparc/sparc64/multiarch/ifunc-memcpy.h
+++ b/sysdeps/sparc/sparc64/multiarch/ifunc-memcpy.h
@@ -1,6 +1,6 @@
/* Common definition for memcpy and mempcpy implementation.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ifunc-init.h>
diff --git a/sysdeps/sparc/sparc64/multiarch/ifunc-memmove.h b/sysdeps/sparc/sparc64/multiarch/ifunc-memmove.h
index 4b89ff4baf..b3a9bac574 100644
--- a/sysdeps/sparc/sparc64/multiarch/ifunc-memmove.h
+++ b/sysdeps/sparc/sparc64/multiarch/ifunc-memmove.h
@@ -1,6 +1,6 @@
/* Common definition for memmove implementation.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ifunc-init.h>
diff --git a/sysdeps/sparc/sparc64/multiarch/ifunc-memset.h b/sysdeps/sparc/sparc64/multiarch/ifunc-memset.h
index d554638bd6..137e83b9de 100644
--- a/sysdeps/sparc/sparc64/multiarch/ifunc-memset.h
+++ b/sysdeps/sparc/sparc64/multiarch/ifunc-memset.h
@@ -1,6 +1,6 @@
/* Common definition for memset/bzero implementation.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ifunc-init.h>
diff --git a/sysdeps/sparc/sparc64/multiarch/md5-crop.S b/sysdeps/sparc/sparc64/multiarch/md5-crop.S
index 764a8aae48..8b8a245b93 100644
--- a/sysdeps/sparc/sparc64/multiarch/md5-crop.S
+++ b/sysdeps/sparc/sparc64/multiarch/md5-crop.S
@@ -1,5 +1,5 @@
/* MD5 using sparc crypto opcodes.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller (davem@davemloft.net)
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/multiarch/memcpy-memmove-niagara7.S b/sysdeps/sparc/sparc64/multiarch/memcpy-memmove-niagara7.S
index 61ba1ed408..531f7b4f7b 100644
--- a/sysdeps/sparc/sparc64/multiarch/memcpy-memmove-niagara7.S
+++ b/sysdeps/sparc/sparc64/multiarch/memcpy-memmove-niagara7.S
@@ -1,5 +1,5 @@
/* Copy SIZE bytes from SRC to DEST. For SUN4V M7.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/multiarch/memcpy-niagara1.S b/sysdeps/sparc/sparc64/multiarch/memcpy-niagara1.S
index 50b37af104..b59d8cafab 100644
--- a/sysdeps/sparc/sparc64/multiarch/memcpy-niagara1.S
+++ b/sysdeps/sparc/sparc64/multiarch/memcpy-niagara1.S
@@ -1,5 +1,5 @@
/* Copy SIZE bytes from SRC to DEST. For SUN4V Niagara.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller (davem@davemloft.net)
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/multiarch/memcpy-niagara2.S b/sysdeps/sparc/sparc64/multiarch/memcpy-niagara2.S
index 91d9eb3221..28102d02cd 100644
--- a/sysdeps/sparc/sparc64/multiarch/memcpy-niagara2.S
+++ b/sysdeps/sparc/sparc64/multiarch/memcpy-niagara2.S
@@ -1,5 +1,5 @@
/* Copy SIZE bytes from SRC to DEST. For SUN4V Niagara-2.
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller (davem@davemloft.net)
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/multiarch/memcpy-niagara4.S b/sysdeps/sparc/sparc64/multiarch/memcpy-niagara4.S
index 096a11cfd8..b0aef5cc17 100644
--- a/sysdeps/sparc/sparc64/multiarch/memcpy-niagara4.S
+++ b/sysdeps/sparc/sparc64/multiarch/memcpy-niagara4.S
@@ -1,5 +1,5 @@
/* Copy SIZE bytes from SRC to DEST. For SUN4V Niagara-4.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller (davem@davemloft.net)
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/multiarch/memcpy-ultra1.S b/sysdeps/sparc/sparc64/multiarch/memcpy-ultra1.S
index 8e0b3e2d48..6cf4b998dc 100644
--- a/sysdeps/sparc/sparc64/multiarch/memcpy-ultra1.S
+++ b/sysdeps/sparc/sparc64/multiarch/memcpy-ultra1.S
@@ -1,5 +1,5 @@
/* Default SPARC64 memcpy implementation.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S b/sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S
index 41cd606f59..99bf82d435 100644
--- a/sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S
+++ b/sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S
@@ -1,6 +1,6 @@
/* Copy SIZE bytes from SRC to DEST.
For UltraSPARC-III.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller (davem@redhat.com)
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
@@ -322,4 +322,4 @@ small_copy_unaligned:
END(__memcpy_ultra3)
-#endif \ No newline at end of file
+#endif
diff --git a/sysdeps/sparc/sparc64/multiarch/memcpy.c b/sysdeps/sparc/sparc64/multiarch/memcpy.c
index 7adb2936c7..111f28317e 100644
--- a/sysdeps/sparc/sparc64/multiarch/memcpy.c
+++ b/sysdeps/sparc/sparc64/multiarch/memcpy.c
@@ -1,6 +1,6 @@
/* Multiple versions of memcpy. SPARC64/Linux version.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# define memcpy __redirect_memcpy
diff --git a/sysdeps/sparc/sparc64/multiarch/memmove.c b/sysdeps/sparc/sparc64/multiarch/memmove.c
index 878d532cea..dcfb748685 100644
--- a/sysdeps/sparc/sparc64/multiarch/memmove.c
+++ b/sysdeps/sparc/sparc64/multiarch/memmove.c
@@ -1,6 +1,6 @@
/* Multiple versions of memmove.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# define memmove __redirect_memmove
diff --git a/sysdeps/sparc/sparc64/multiarch/mempcpy.c b/sysdeps/sparc/sparc64/multiarch/mempcpy.c
index ab398c6b08..4695df09f2 100644
--- a/sysdeps/sparc/sparc64/multiarch/mempcpy.c
+++ b/sysdeps/sparc/sparc64/multiarch/mempcpy.c
@@ -1,6 +1,6 @@
/* Multiple versions of mempcpy. SPARC64/Linux version.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# define mempcpy __redirect_mempcpy
diff --git a/sysdeps/sparc/sparc64/multiarch/memset-niagara1.S b/sysdeps/sparc/sparc64/multiarch/memset-niagara1.S
index 8752b16f4a..e7a82e7e0e 100644
--- a/sysdeps/sparc/sparc64/multiarch/memset-niagara1.S
+++ b/sysdeps/sparc/sparc64/multiarch/memset-niagara1.S
@@ -1,5 +1,5 @@
/* Set a block of memory to some byte value. For SUN4V Niagara.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller (davem@davemloft.net)
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/multiarch/memset-niagara4.S b/sysdeps/sparc/sparc64/multiarch/memset-niagara4.S
index 2198463a27..75c3f6a7bd 100644
--- a/sysdeps/sparc/sparc64/multiarch/memset-niagara4.S
+++ b/sysdeps/sparc/sparc64/multiarch/memset-niagara4.S
@@ -1,5 +1,5 @@
/* Set a block of memory to some byte value. For SUN4V Niagara-4.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller (davem@davemloft.net)
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/multiarch/memset-niagara7.S b/sysdeps/sparc/sparc64/multiarch/memset-niagara7.S
index 77910c7b62..7d55a99615 100644
--- a/sysdeps/sparc/sparc64/multiarch/memset-niagara7.S
+++ b/sysdeps/sparc/sparc64/multiarch/memset-niagara7.S
@@ -1,5 +1,5 @@
/* Set a block of memory to some byte value. For SUN4V M7.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/multiarch/memset-ultra1.S b/sysdeps/sparc/sparc64/multiarch/memset-ultra1.S
index dd9d2c17cd..4c341071de 100644
--- a/sysdeps/sparc/sparc64/multiarch/memset-ultra1.S
+++ b/sysdeps/sparc/sparc64/multiarch/memset-ultra1.S
@@ -1,5 +1,5 @@
/* Default SPARC64 memset implementation.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/multiarch/memset.c b/sysdeps/sparc/sparc64/multiarch/memset.c
index c2920c7df7..bea017d13d 100644
--- a/sysdeps/sparc/sparc64/multiarch/memset.c
+++ b/sysdeps/sparc/sparc64/multiarch/memset.c
@@ -1,6 +1,6 @@
/* Multiple versions of memset. SPARC64/Linux version.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# define memset __redirect_memset
diff --git a/sysdeps/sparc/sparc64/multiarch/mul_1-vis3.S b/sysdeps/sparc/sparc64/multiarch/mul_1-vis3.S
index 79452919cc..2eca2ea78c 100644
--- a/sysdeps/sparc/sparc64/multiarch/mul_1-vis3.S
+++ b/sysdeps/sparc/sparc64/multiarch/mul_1-vis3.S
@@ -1,7 +1,7 @@
! SPARC v9 64-bit VIS3 __mpn_mul_1 -- Multiply a limb vector with a single
! limb and store the product in a second limb vector.
!
-! Copyright (C) 2013-2018 Free Software Foundation, Inc.
+! Copyright (C) 2013-2019 Free Software Foundation, Inc.
! This file is part of the GNU C Library.
! Contributed by David S. Miller <davem@davemloft.net>
!
@@ -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
-! <http://www.gnu.org/licenses/>.
+! <https://www.gnu.org/licenses/>.
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/multiarch/mul_1.c b/sysdeps/sparc/sparc64/multiarch/mul_1.c
index 0b8d0cf0da..c53fd41385 100644
--- a/sysdeps/sparc/sparc64/multiarch/mul_1.c
+++ b/sysdeps/sparc/sparc64/multiarch/mul_1.c
@@ -1,5 +1,5 @@
/* __mpn_mul_1 ifunc resolver, Linux/sparc64 version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <gmp.h>
#include <sparc-ifunc.h>
diff --git a/sysdeps/sparc/sparc64/multiarch/sha256-crop.S b/sysdeps/sparc/sparc64/multiarch/sha256-crop.S
index 0f07b8d8a2..649c818e1e 100644
--- a/sysdeps/sparc/sparc64/multiarch/sha256-crop.S
+++ b/sysdeps/sparc/sparc64/multiarch/sha256-crop.S
@@ -1,5 +1,5 @@
/* SHA256 using sparc crypto opcodes.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller (davem@davemloft.net)
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/multiarch/sha512-crop.S b/sysdeps/sparc/sparc64/multiarch/sha512-crop.S
index f22eef3206..5244832ece 100644
--- a/sysdeps/sparc/sparc64/multiarch/sha512-crop.S
+++ b/sysdeps/sparc/sparc64/multiarch/sha512-crop.S
@@ -1,5 +1,5 @@
/* SHA512 using sparc crypto opcodes.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller (davem@davemloft.net)
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/multiarch/sub_n-vis3.S b/sysdeps/sparc/sparc64/multiarch/sub_n-vis3.S
index b71c93d36d..8b66f7452c 100644
--- a/sysdeps/sparc/sparc64/multiarch/sub_n-vis3.S
+++ b/sysdeps/sparc/sparc64/multiarch/sub_n-vis3.S
@@ -1,7 +1,7 @@
! SPARC v9 64-bit VIS3 __mpn_sub_n -- Subtract two limb vectors of the same length > 0
! and store difference in a third limb vector.
!
-! Copyright (C) 2013-2018 Free Software Foundation, Inc.
+! Copyright (C) 2013-2019 Free Software Foundation, Inc.
! This file is part of the GNU C Library.
! Contributed by David S. Miller <davem@davemloft.net>
!
@@ -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
-! <http://www.gnu.org/licenses/>.
+! <https://www.gnu.org/licenses/>.
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/multiarch/sub_n.c b/sysdeps/sparc/sparc64/multiarch/sub_n.c
index 2c1f428932..68f784fc3c 100644
--- a/sysdeps/sparc/sparc64/multiarch/sub_n.c
+++ b/sysdeps/sparc/sparc64/multiarch/sub_n.c
@@ -1,5 +1,5 @@
/* __mpn_sub_n ifunc resolver, Linux/sparc64 version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <gmp.h>
#include <sparc-ifunc.h>
diff --git a/sysdeps/sparc/sparc64/multiarch/submul_1-vis3.S b/sysdeps/sparc/sparc64/multiarch/submul_1-vis3.S
index 823f90afdd..7b0cd783fd 100644
--- a/sysdeps/sparc/sparc64/multiarch/submul_1-vis3.S
+++ b/sysdeps/sparc/sparc64/multiarch/submul_1-vis3.S
@@ -1,7 +1,7 @@
! SPARC v9 64-bit VIS3 __mpn_submul_1 -- Multiply a limb vector with a
! limb and subtract the result from a second limb vector.
!
-! Copyright (C) 2013-2018 Free Software Foundation, Inc.
+! Copyright (C) 2013-2019 Free Software Foundation, Inc.
! This file is part of the GNU C Library.
! Contributed by David S. Miller <davem@davemloft.net>
!
@@ -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
-! <http://www.gnu.org/licenses/>.
+! <https://www.gnu.org/licenses/>.
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/multiarch/submul_1.c b/sysdeps/sparc/sparc64/multiarch/submul_1.c
index 6934c6915a..4fa20cb677 100644
--- a/sysdeps/sparc/sparc64/multiarch/submul_1.c
+++ b/sysdeps/sparc/sparc64/multiarch/submul_1.c
@@ -1,5 +1,5 @@
/* __mpn_submul_1 ifunc resolver, Linux/sparc64 version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <gmp.h>
#include <sparc-ifunc.h>
diff --git a/sysdeps/sparc/sparc64/pthread_spin_lock.S b/sysdeps/sparc/sparc64/pthread_spin_lock.S
index a0cff0d49f..29a61d6bdf 100644
--- a/sysdeps/sparc/sparc64/pthread_spin_lock.S
+++ b/sysdeps/sparc/sparc64/pthread_spin_lock.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/pthread_spin_trylock.S b/sysdeps/sparc/sparc64/pthread_spin_trylock.S
index b8e63322b2..aa5544b5d6 100644
--- a/sysdeps/sparc/sparc64/pthread_spin_trylock.S
+++ b/sysdeps/sparc/sparc64/pthread_spin_trylock.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <pthread-errnos.h>
diff --git a/sysdeps/sparc/sparc64/pthread_spin_unlock.S b/sysdeps/sparc/sparc64/pthread_spin_unlock.S
index e6da4cc188..67bcafb324 100644
--- a/sysdeps/sparc/sparc64/pthread_spin_unlock.S
+++ b/sysdeps/sparc/sparc64/pthread_spin_unlock.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/pthreaddef.h b/sysdeps/sparc/sparc64/pthreaddef.h
index 62e2290b23..d42e217a93 100644
--- a/sysdeps/sparc/sparc64/pthreaddef.h
+++ b/sysdeps/sparc/sparc64/pthreaddef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Default stack size. */
#define ARCH_STACK_DEFAULT_SIZE (4 * 1024 * 1024)
diff --git a/sysdeps/sparc/sparc64/qp_add.c b/sysdeps/sparc/sparc64/qp_add.c
index aa9262f40e..111b2a241e 100644
--- a/sysdeps/sparc/sparc64/qp_add.c
+++ b/sysdeps/sparc/sparc64/qp_add.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
(*c) = (*a) + (*b)
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "quad.h"
diff --git a/sysdeps/sparc/sparc64/qp_cmp.c b/sysdeps/sparc/sparc64/qp_cmp.c
index 0f97e94cf1..7481e840a1 100644
--- a/sysdeps/sparc/sparc64/qp_cmp.c
+++ b/sysdeps/sparc/sparc64/qp_cmp.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Compare (*a) and (*b), return float condition code.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "quad.h"
diff --git a/sysdeps/sparc/sparc64/qp_cmpe.c b/sysdeps/sparc/sparc64/qp_cmpe.c
index 8ff9d400d6..b24e2f1a43 100644
--- a/sysdeps/sparc/sparc64/qp_cmpe.c
+++ b/sysdeps/sparc/sparc64/qp_cmpe.c
@@ -1,7 +1,7 @@
/* Software floating-point emulation.
Compare (*a) and (*b), return float condition code.
Signal exception (unless masked) if unordered.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -18,7 +18,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "quad.h"
diff --git a/sysdeps/sparc/sparc64/qp_div.c b/sysdeps/sparc/sparc64/qp_div.c
index 11a5571368..0ae725e6c1 100644
--- a/sysdeps/sparc/sparc64/qp_div.c
+++ b/sysdeps/sparc/sparc64/qp_div.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
(*c) = (*a) / (*b)
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "quad.h"
diff --git a/sysdeps/sparc/sparc64/qp_dtoq.c b/sysdeps/sparc/sparc64/qp_dtoq.c
index a53040559d..80b85548a2 100644
--- a/sysdeps/sparc/sparc64/qp_dtoq.c
+++ b/sysdeps/sparc/sparc64/qp_dtoq.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
(*c) = (long double)(a)
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "double.h"
@@ -31,7 +31,7 @@ void _Qp_dtoq(long double *c, const double a)
FP_INIT_ROUNDMODE;
FP_UNPACK_RAW_D(A, a);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
FP_EXTEND(Q,D,4,2,C,A);
#else
FP_EXTEND(Q,D,2,1,C,A);
diff --git a/sysdeps/sparc/sparc64/qp_feq.c b/sysdeps/sparc/sparc64/qp_feq.c
index 19d44a3612..8af84d4dfc 100644
--- a/sysdeps/sparc/sparc64/qp_feq.c
+++ b/sysdeps/sparc/sparc64/qp_feq.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 if (*a) == (*b)
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "quad.h"
diff --git a/sysdeps/sparc/sparc64/qp_fge.c b/sysdeps/sparc/sparc64/qp_fge.c
index 1c652f7a3a..4682b7262a 100644
--- a/sysdeps/sparc/sparc64/qp_fge.c
+++ b/sysdeps/sparc/sparc64/qp_fge.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 if (*a) >= (*b)
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "quad.h"
diff --git a/sysdeps/sparc/sparc64/qp_fgt.c b/sysdeps/sparc/sparc64/qp_fgt.c
index 203ad06525..acde2709d1 100644
--- a/sysdeps/sparc/sparc64/qp_fgt.c
+++ b/sysdeps/sparc/sparc64/qp_fgt.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 if (*a) > (*b)
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "quad.h"
diff --git a/sysdeps/sparc/sparc64/qp_fle.c b/sysdeps/sparc/sparc64/qp_fle.c
index e6b188038d..71df12db93 100644
--- a/sysdeps/sparc/sparc64/qp_fle.c
+++ b/sysdeps/sparc/sparc64/qp_fle.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 if (*a) <= (*b)
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "quad.h"
diff --git a/sysdeps/sparc/sparc64/qp_flt.c b/sysdeps/sparc/sparc64/qp_flt.c
index 64cd908f5c..b7ed2e747b 100644
--- a/sysdeps/sparc/sparc64/qp_flt.c
+++ b/sysdeps/sparc/sparc64/qp_flt.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 if (*a) < (*b)
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "quad.h"
diff --git a/sysdeps/sparc/sparc64/qp_fne.c b/sysdeps/sparc/sparc64/qp_fne.c
index 2b859d8bb2..94ceeb9aa0 100644
--- a/sysdeps/sparc/sparc64/qp_fne.c
+++ b/sysdeps/sparc/sparc64/qp_fne.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 if (*a) != (*b)
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "quad.h"
diff --git a/sysdeps/sparc/sparc64/qp_itoq.c b/sysdeps/sparc/sparc64/qp_itoq.c
index 626eef7602..3a6b3b24ad 100644
--- a/sysdeps/sparc/sparc64/qp_itoq.c
+++ b/sysdeps/sparc/sparc64/qp_itoq.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
(*c) = (long double)(a)
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "quad.h"
diff --git a/sysdeps/sparc/sparc64/qp_mul.c b/sysdeps/sparc/sparc64/qp_mul.c
index 20583ea026..c494cc090f 100644
--- a/sysdeps/sparc/sparc64/qp_mul.c
+++ b/sysdeps/sparc/sparc64/qp_mul.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
(*c) = (*a) * (*b)
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* As QP_HANDLE_EXCEPTIONS reloads FPU control word anyway,
avoid doing it twice. */
diff --git a/sysdeps/sparc/sparc64/qp_neg.S b/sysdeps/sparc/sparc64/qp_neg.S
index 7671a0ef49..edb71c6aed 100644
--- a/sysdeps/sparc/sparc64/qp_neg.S
+++ b/sysdeps/sparc/sparc64/qp_neg.S
@@ -1,6 +1,6 @@
/* Quad floating-point emulation.
(*c) = !(*a)
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/qp_qtod.c b/sysdeps/sparc/sparc64/qp_qtod.c
index c0f0e5370e..0c93db6b60 100644
--- a/sysdeps/sparc/sparc64/qp_qtod.c
+++ b/sysdeps/sparc/sparc64/qp_qtod.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return (double)(*a)
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "double.h"
@@ -32,7 +32,7 @@ double _Qp_qtod(const long double *a)
FP_INIT_ROUNDMODE;
FP_UNPACK_SEMIRAW_QP(A, a);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
FP_TRUNC(D,Q,2,4,R,A);
#else
FP_TRUNC(D,Q,1,2,R,A);
diff --git a/sysdeps/sparc/sparc64/qp_qtoi.c b/sysdeps/sparc/sparc64/qp_qtoi.c
index ca511e9fe5..aa6cb141a4 100644
--- a/sysdeps/sparc/sparc64/qp_qtoi.c
+++ b/sysdeps/sparc/sparc64/qp_qtoi.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return (int)(*a)
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define FP_ROUNDMODE FP_RND_ZERO
#include "soft-fp.h"
diff --git a/sysdeps/sparc/sparc64/qp_qtos.c b/sysdeps/sparc/sparc64/qp_qtos.c
index f78e15aca3..d8fe17f4fc 100644
--- a/sysdeps/sparc/sparc64/qp_qtos.c
+++ b/sysdeps/sparc/sparc64/qp_qtos.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return (float)(*a)
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "single.h"
@@ -32,7 +32,7 @@ float _Qp_qtos(const long double *a)
FP_INIT_ROUNDMODE;
FP_UNPACK_SEMIRAW_QP(A, a);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
FP_TRUNC(S,Q,1,4,R,A);
#else
FP_TRUNC(S,Q,1,2,R,A);
diff --git a/sysdeps/sparc/sparc64/qp_qtoui.c b/sysdeps/sparc/sparc64/qp_qtoui.c
index 3822dbd469..d53793f67d 100644
--- a/sysdeps/sparc/sparc64/qp_qtoui.c
+++ b/sysdeps/sparc/sparc64/qp_qtoui.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return (unsigned int)(*a)
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define FP_ROUNDMODE FP_RND_ZERO
#include "soft-fp.h"
diff --git a/sysdeps/sparc/sparc64/qp_qtoux.c b/sysdeps/sparc/sparc64/qp_qtoux.c
index d51192a17c..535fc96a70 100644
--- a/sysdeps/sparc/sparc64/qp_qtoux.c
+++ b/sysdeps/sparc/sparc64/qp_qtoux.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return (unsigned long)(*a)
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define FP_ROUNDMODE FP_RND_ZERO
#include "soft-fp.h"
diff --git a/sysdeps/sparc/sparc64/qp_qtox.c b/sysdeps/sparc/sparc64/qp_qtox.c
index 50f1057a9b..b713242896 100644
--- a/sysdeps/sparc/sparc64/qp_qtox.c
+++ b/sysdeps/sparc/sparc64/qp_qtox.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return (long)(*a)
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define FP_ROUNDMODE FP_RND_ZERO
#include "soft-fp.h"
diff --git a/sysdeps/sparc/sparc64/qp_sqrt.c b/sysdeps/sparc/sparc64/qp_sqrt.c
index 1b986392cb..6415fa1aec 100644
--- a/sysdeps/sparc/sparc64/qp_sqrt.c
+++ b/sysdeps/sparc/sparc64/qp_sqrt.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
(*c) = sqrtl(*a)
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "quad.h"
diff --git a/sysdeps/sparc/sparc64/qp_stoq.c b/sysdeps/sparc/sparc64/qp_stoq.c
index 88e5620b63..d0fe4f2ebd 100644
--- a/sysdeps/sparc/sparc64/qp_stoq.c
+++ b/sysdeps/sparc/sparc64/qp_stoq.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
(*c) = (long double)(a)
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "single.h"
@@ -31,7 +31,7 @@ void _Qp_stoq(long double *c, const float a)
FP_INIT_ROUNDMODE;
FP_UNPACK_RAW_S(A, a);
-#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
+#if _FP_W_TYPE_SIZE < 64
FP_EXTEND(Q,S,4,1,C,A);
#else
FP_EXTEND(Q,S,2,1,C,A);
diff --git a/sysdeps/sparc/sparc64/qp_sub.c b/sysdeps/sparc/sparc64/qp_sub.c
index e400c63d33..3548ec9b7b 100644
--- a/sysdeps/sparc/sparc64/qp_sub.c
+++ b/sysdeps/sparc/sparc64/qp_sub.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
(*c) = (*a) - (*b)
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "quad.h"
diff --git a/sysdeps/sparc/sparc64/qp_uitoq.c b/sysdeps/sparc/sparc64/qp_uitoq.c
index 0d43555c82..c8413b899a 100644
--- a/sysdeps/sparc/sparc64/qp_uitoq.c
+++ b/sysdeps/sparc/sparc64/qp_uitoq.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
(*c) = (long double)(a)
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "quad.h"
diff --git a/sysdeps/sparc/sparc64/qp_util.c b/sysdeps/sparc/sparc64/qp_util.c
index fc9edf2153..d5709882ca 100644
--- a/sysdeps/sparc/sparc64/qp_util.c
+++ b/sysdeps/sparc/sparc64/qp_util.c
@@ -1,7 +1,7 @@
/* Software floating-point emulation.
Helper routine for _Qp_* routines.
Simulate exceptions using double arithmetics.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <float.h>
#include <math.h>
diff --git a/sysdeps/sparc/sparc64/qp_uxtoq.c b/sysdeps/sparc/sparc64/qp_uxtoq.c
index ed2a8985d6..89aa0f3c40 100644
--- a/sysdeps/sparc/sparc64/qp_uxtoq.c
+++ b/sysdeps/sparc/sparc64/qp_uxtoq.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
(*c) = (long double)(a)
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "quad.h"
diff --git a/sysdeps/sparc/sparc64/qp_xtoq.c b/sysdeps/sparc/sparc64/qp_xtoq.c
index fe3e8e764d..6eff19a7f3 100644
--- a/sysdeps/sparc/sparc64/qp_xtoq.c
+++ b/sysdeps/sparc/sparc64/qp_xtoq.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
(*c) = (long double)(*a)
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "soft-fp.h"
#include "quad.h"
diff --git a/sysdeps/sparc/sparc64/rawmemchr.S b/sysdeps/sparc/sparc64/rawmemchr.S
index dd5e1a6c21..bbff802f69 100644
--- a/sysdeps/sparc/sparc64/rawmemchr.S
+++ b/sysdeps/sparc/sparc64/rawmemchr.S
@@ -1,6 +1,6 @@
/* rawmemchr (str, ch) -- Return pointer to first occurrence of CH in STR.
For SPARC v9.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jj@ultra.linux.cz>.
This version is developed using the same algorithm as the fast C
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <asm/asi.h>
diff --git a/sysdeps/sparc/sparc64/rshift.S b/sysdeps/sparc/sparc64/rshift.S
index c00ea983b3..683ef258e6 100644
--- a/sysdeps/sparc/sparc64/rshift.S
+++ b/sysdeps/sparc/sparc64/rshift.S
@@ -1,6 +1,6 @@
/* SPARC v9 __mpn_rshift --
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -16,7 +16,7 @@
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not,
- see <http://www.gnu.org/licenses/>. */
+ see <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/sfp-machine.h b/sysdeps/sparc/sparc64/sfp-machine.h
index 333f1988f3..a77ee42a25 100644
--- a/sysdeps/sparc/sparc64/sfp-machine.h
+++ b/sysdeps/sparc/sparc64/sfp-machine.h
@@ -1,6 +1,6 @@
/* Machine-dependent software floating-point definitions.
Sparc64 userland (_Q_* and _Qp_*) version.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com),
Jakub Jelinek (jj@ultra.linux.cz) and
@@ -18,7 +18,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fpu_control.h>
#include <fenv.h>
diff --git a/sysdeps/sparc/sparc64/start.S b/sysdeps/sparc/sparc64/start.S
index 75ff5093dc..fd60df8629 100644
--- a/sysdeps/sparc/sparc64/start.S
+++ b/sysdeps/sparc/sparc64/start.S
@@ -1,5 +1,5 @@
/* Startup code for elf64-sparc
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson <richard@gnu.ai.mit.edu>, 1997.
@@ -32,7 +32,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/stpcpy.S b/sysdeps/sparc/sparc64/stpcpy.S
index 64996d6448..ca58bf2bf5 100644
--- a/sysdeps/sparc/sparc64/stpcpy.S
+++ b/sysdeps/sparc/sparc64/stpcpy.S
@@ -1,8 +1,8 @@
/* Copy SRC to DEST returning the address of the terminating '\0' in DEST.
For SPARC v9.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
- Contributed by Jan Vondrak <jvon4518@ss1000.ms.mff.cuni.cz> and
+ Contributed by Jan Vondrák <jvon4518@ss1000.ms.mff.cuni.cz> and
Jakub Jelinek <jj@ultra.linux.cz>.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <asm/asi.h>
diff --git a/sysdeps/sparc/sparc64/stpncpy.S b/sysdeps/sparc/sparc64/stpncpy.S
index 15eddc1315..f89e1e3530 100644
--- a/sysdeps/sparc/sparc64/stpncpy.S
+++ b/sysdeps/sparc/sparc64/stpncpy.S
@@ -2,10 +2,10 @@
SRC to DEST, returning the address of the terminating '\0' in
DEST, if any, or else DEST + N.
For SPARC v9.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jj@ultra.linux.cz> and
- Jan Vondrak <jvon4518@ss1000.ms.mff.cuni.cz>.
+ Jan Vondrák <jvon4518@ss1000.ms.mff.cuni.cz>.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -19,7 +19,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <asm/asi.h>
diff --git a/sysdeps/sparc/sparc64/strcat.S b/sysdeps/sparc/sparc64/strcat.S
index b07de53914..3d179a446e 100644
--- a/sysdeps/sparc/sparc64/strcat.S
+++ b/sysdeps/sparc/sparc64/strcat.S
@@ -1,9 +1,9 @@
/* strcat (dest, src) -- Append SRC on the end of DEST.
For SPARC v9.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jj@ultra.linux.cz> and
- Jan Vondrak <jvon4518@ss1000.ms.mff.cuni.cz>.
+ Jan Vondrák <jvon4518@ss1000.ms.mff.cuni.cz>.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <asm/asi.h>
diff --git a/sysdeps/sparc/sparc64/strchr.S b/sysdeps/sparc/sparc64/strchr.S
index c026bb2507..e750a5a077 100644
--- a/sysdeps/sparc/sparc64/strchr.S
+++ b/sysdeps/sparc/sparc64/strchr.S
@@ -1,8 +1,8 @@
/* strchr (str, ch) -- Return pointer to first occurrence of CH in STR.
For SPARC v9.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
- Contributed by Jan Vondrak <jvon4518@ss1000.ms.mff.cuni.cz> and
+ Contributed by Jan Vondrák <jvon4518@ss1000.ms.mff.cuni.cz> and
Jakub Jelinek <jj@ultra.linux.cz>.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <asm/asi.h>
diff --git a/sysdeps/sparc/sparc64/strcmp.S b/sysdeps/sparc/sparc64/strcmp.S
index ddd6337479..7a7b0733ae 100644
--- a/sysdeps/sparc/sparc64/strcmp.S
+++ b/sysdeps/sparc/sparc64/strcmp.S
@@ -1,6 +1,6 @@
/* Compare two strings for differences.
For SPARC v9.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller <davem@davemloft.net>
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <asm/asi.h>
diff --git a/sysdeps/sparc/sparc64/strcpy.S b/sysdeps/sparc/sparc64/strcpy.S
index aad7a77878..bb46a5c152 100644
--- a/sysdeps/sparc/sparc64/strcpy.S
+++ b/sysdeps/sparc/sparc64/strcpy.S
@@ -1,8 +1,8 @@
/* Copy SRC to DEST returning DEST.
For SPARC v9.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
- Contributed by Jan Vondrak <jvon4518@ss1000.ms.mff.cuni.cz> and
+ Contributed by Jan Vondrák <jvon4518@ss1000.ms.mff.cuni.cz> and
Jakub Jelinek <jj@ultra.linux.cz>.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <asm/asi.h>
diff --git a/sysdeps/sparc/sparc64/strcspn.S b/sysdeps/sparc/sparc64/strcspn.S
index 40996fed8d..4401c69d63 100644
--- a/sysdeps/sparc/sparc64/strcspn.S
+++ b/sysdeps/sparc/sparc64/strcspn.S
@@ -1,7 +1,7 @@
/* strcspn (str, ss) -- Return the length of the initial segment of STR
which contains no characters from SS.
For SPARC v9.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jj@ultra.linux.cz>
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <asm/asi.h>
diff --git a/sysdeps/sparc/sparc64/strlen.S b/sysdeps/sparc/sparc64/strlen.S
index f843139e55..edf4010d7b 100644
--- a/sysdeps/sparc/sparc64/strlen.S
+++ b/sysdeps/sparc/sparc64/strlen.S
@@ -1,7 +1,7 @@
/* Determine the length of a string. For SPARC v9.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
- Contributed by Jan Vondrak <jvon4518@ss1000.ms.mff.cuni.cz>,
+ Contributed by Jan Vondrák <jvon4518@ss1000.ms.mff.cuni.cz>,
Jakub Jelinek <jj@ultra.linux.cz>, and
David S. Miller <davem@davemloft.net>.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/strncmp.S b/sysdeps/sparc/sparc64/strncmp.S
index 924190bf2d..ba22b3db7e 100644
--- a/sysdeps/sparc/sparc64/strncmp.S
+++ b/sysdeps/sparc/sparc64/strncmp.S
@@ -2,9 +2,9 @@
equal to or greater than zero if S1 is lexicographically less than,
equal to or greater than S2.
For SPARC v9.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
- Contributed by Jan Vondrak <jvon4518@ss1000.ms.mff.cuni.cz> and
+ Contributed by Jan Vondrák <jvon4518@ss1000.ms.mff.cuni.cz> and
Jakub Jelinek <jj@ultra.linux.cz>.
The GNU C Library is free software; you can redistribute it and/or
@@ -19,7 +19,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <asm/asi.h>
diff --git a/sysdeps/sparc/sparc64/strncpy.S b/sysdeps/sparc/sparc64/strncpy.S
index a59671c037..b5c9d1206a 100644
--- a/sysdeps/sparc/sparc64/strncpy.S
+++ b/sysdeps/sparc/sparc64/strncpy.S
@@ -2,9 +2,9 @@
null-terminated string from SRC to DST. If SRC does not cover all of
COUNT, the balance is zeroed.
For SPARC v9.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
- Contributed by Jan Vondrak <jvon4518@ss1000.ms.mff.cuni.cz> and
+ Contributed by Jan Vondrák <jvon4518@ss1000.ms.mff.cuni.cz> and
Jakub Jelinek <jj@ultra.linux.cz>.
The GNU C Library is free software; you can redistribute it and/or
@@ -19,7 +19,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <asm/asi.h>
diff --git a/sysdeps/sparc/sparc64/strpbrk.S b/sysdeps/sparc/sparc64/strpbrk.S
index 4b26566c9f..7bf318f390 100644
--- a/sysdeps/sparc/sparc64/strpbrk.S
+++ b/sysdeps/sparc/sparc64/strpbrk.S
@@ -1,7 +1,7 @@
/* strpbrk (s, accept) -- Find the first occurrence in S of any character in
ACCEPT.
For SPARC v9.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jj@ultra.linux.cz>
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <asm/asi.h>
diff --git a/sysdeps/sparc/sparc64/strspn.S b/sysdeps/sparc/sparc64/strspn.S
index 2a028aa135..b0585b58af 100644
--- a/sysdeps/sparc/sparc64/strspn.S
+++ b/sysdeps/sparc/sparc64/strspn.S
@@ -1,7 +1,7 @@
/* strspn (str, ss) -- Return the length of the maximum initial segment
of S which contains only characters in ACCEPT.
For SPARC v9.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jj@ultra.linux.cz>
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <asm/asi.h>
diff --git a/sysdeps/sparc/sparc64/sub_n.S b/sysdeps/sparc/sparc64/sub_n.S
index 2c8eca17a0..d281979e54 100644
--- a/sysdeps/sparc/sparc64/sub_n.S
+++ b/sysdeps/sparc/sparc64/sub_n.S
@@ -1,7 +1,7 @@
/* SPARC v9 __mpn_sub_n -- Subtract two limb vectors of the same length > 0
and store difference in a third limb vector.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -17,7 +17,7 @@
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not,
- see <http://www.gnu.org/licenses/>. */
+ see <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/submul_1.S b/sysdeps/sparc/sparc64/submul_1.S
index 490988303d..99fc7589e5 100644
--- a/sysdeps/sparc/sparc64/submul_1.S
+++ b/sysdeps/sparc/sparc64/submul_1.S
@@ -1,7 +1,7 @@
/* SPARC v9 __mpn_submul_1 -- Multiply a limb vector with a single limb and
subtract the product from a second limb vector.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -17,7 +17,7 @@
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not,
- see <http://www.gnu.org/licenses/>. */
+ see <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/sparc/sparc64/tst-audit.h b/sysdeps/sparc/sparc64/tst-audit.h
index 315094d039..55140416c9 100644
--- a/sysdeps/sparc/sparc64/tst-audit.h
+++ b/sysdeps/sparc/sparc64/tst-audit.h
@@ -1,6 +1,6 @@
/* Definitions for testing PLT entry/exit auditing. SPARC64 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define pltenter la_sparc64_gnu_pltenter
#define pltexit la_sparc64_gnu_pltexit
diff --git a/sysdeps/sparc/stackinfo.h b/sysdeps/sparc/stackinfo.h
index f75adfb5f7..5423a48b3d 100644
--- a/sysdeps/sparc/stackinfo.h
+++ b/sysdeps/sparc/stackinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file contains a bit of information about the stack allocation
of the processor. */
diff --git a/sysdeps/sparc/sysdep.h b/sysdeps/sparc/sysdep.h
index 487852c7ec..e2c55e2b77 100644
--- a/sysdeps/sparc/sysdep.h
+++ b/sysdeps/sparc/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* 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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _SYSDEPS_SYSDEP_H 1
#include <bits/hwcap.h>
diff --git a/sysdeps/unix/Makefile b/sysdeps/unix/Makefile
index e768c0bef5..b0c5adfe11 100644
--- a/sysdeps/unix/Makefile
+++ b/sysdeps/unix/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1991-2018 Free Software Foundation, Inc.
+# Copyright (C) 1991-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
ifndef inhibit-unix-syscalls
diff --git a/sysdeps/unix/alpha/pipe.S b/sysdeps/unix/alpha/pipe.S
index bbd359e257..d40feb843a 100644
--- a/sysdeps/unix/alpha/pipe.S
+++ b/sysdeps/unix/alpha/pipe.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Mosberger (davidm@cs.arizona.edu).
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* __pipe is a special syscall since it returns two values. */
diff --git a/sysdeps/unix/alpha/sysdep.S b/sysdeps/unix/alpha/sysdep.S
index 35fda0c67a..0bb7d6d922 100644
--- a/sysdeps/unix/alpha/sysdep.S
+++ b/sysdeps/unix/alpha/sysdep.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Brendan Kehoe (brendan@zen.org).
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <features.h>
diff --git a/sysdeps/unix/alpha/sysdep.h b/sysdeps/unix/alpha/sysdep.h
index 104aa8e48b..00cc97ffb3 100644
--- a/sysdeps/unix/alpha/sysdep.h
+++ b/sysdeps/unix/alpha/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Brendan Kehoe (brendan@zen.org).
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/unix/sysdep.h>
#include <dl-sysdep.h> /* Defines RTLD_PRIVATE_ERRNO. */
@@ -200,7 +200,7 @@ __LABEL(name) \
no matter what the "real" sign of the 32-bit type. We want to
preserve that when filling in values for the kernel. */
#define syscall_promote(arg) \
- (sizeof(arg) == 4 ? (long)(int)(long)(arg) : (long)(arg))
+ (sizeof (arg) == 4 ? (long)(int)(long)(arg) : (long)(arg))
/* Make sure and "use" the variable that we're not returning,
in order to suppress unused variable warnings. */
diff --git a/sysdeps/unix/arm/sysdep.S b/sysdeps/unix/arm/sysdep.S
index 4d94432687..96a9a45bcf 100644
--- a/sysdeps/unix/arm/sysdep.S
+++ b/sysdeps/unix/arm/sysdep.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#define _ERRNO_H
diff --git a/sysdeps/unix/arm/sysdep.h b/sysdeps/unix/arm/sysdep.h
index 8694192fd9..23081b9a81 100644
--- a/sysdeps/unix/arm/sysdep.h
+++ b/sysdeps/unix/arm/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/unix/sysdep.h>
#include <sysdeps/arm/sysdep.h>
diff --git a/sysdeps/unix/bsd/bits/signum.h b/sysdeps/unix/bsd/bits/signum.h
index 85e11d6882..74664cd466 100644
--- a/sysdeps/unix/bsd/bits/signum.h
+++ b/sysdeps/unix/bsd/bits/signum.h
@@ -1,5 +1,5 @@
/* Signal number definitions. BSD version.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_SIGNUM_H
#define _BITS_SIGNUM_H 1
diff --git a/sysdeps/unix/bsd/bits/sockaddr.h b/sysdeps/unix/bsd/bits/sockaddr.h
index 8a8030638f..46b2200f78 100644
--- a/sysdeps/unix/bsd/bits/sockaddr.h
+++ b/sysdeps/unix/bsd/bits/sockaddr.h
@@ -1,5 +1,5 @@
/* Definition of struct sockaddr_* common members and sizes, BSD version.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* Never include this file directly; use <sys/socket.h> instead.
diff --git a/sysdeps/unix/bsd/ftime.c b/sysdeps/unix/bsd/ftime.c
deleted file mode 100644
index 10011b6bae..0000000000
--- a/sysdeps/unix/bsd/ftime.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Copyright (C) 1994-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sys/timeb.h>
-#include <sys/time.h>
-
-int
-ftime (struct timeb *timebuf)
-{
- struct timeval tv;
- struct timezone tz;
-
- if (__gettimeofday (&tv, &tz) < 0)
- return -1;
-
- timebuf->time = tv.tv_sec;
- timebuf->millitm = (tv.tv_usec + 500) / 1000;
- if (timebuf->millitm == 1000)
- {
- ++timebuf->time;
- timebuf->millitm = 0;
- }
- timebuf->timezone = tz.tz_minuteswest;
- timebuf->dstflag = tz.tz_dsttime;
- return 0;
-}
diff --git a/sysdeps/unix/bsd/getpt.c b/sysdeps/unix/bsd/getpt.c
index ea4947fb4f..46207f4e62 100644
--- a/sysdeps/unix/bsd/getpt.c
+++ b/sysdeps/unix/bsd/getpt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Zack Weinberg <zack@rabi.phys.columbia.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/sysdeps/unix/bsd/gtty.c b/sysdeps/unix/bsd/gtty.c
index 77e2a7268c..7ba046fcb2 100644
--- a/sysdeps/unix/bsd/gtty.c
+++ b/sysdeps/unix/bsd/gtty.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sgtty.h>
diff --git a/sysdeps/unix/bsd/stty.c b/sysdeps/unix/bsd/stty.c
index 8a0bbdef80..66d53315bb 100644
--- a/sysdeps/unix/bsd/stty.c
+++ b/sysdeps/unix/bsd/stty.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sgtty.h>
diff --git a/sysdeps/unix/bsd/tcdrain.c b/sysdeps/unix/bsd/tcdrain.c
index 6492694b64..a0a877eb68 100644
--- a/sysdeps/unix/bsd/tcdrain.c
+++ b/sysdeps/unix/bsd/tcdrain.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <sys/ioctl.h>
diff --git a/sysdeps/unix/bsd/tcflow.c b/sysdeps/unix/bsd/tcflow.c
index 3eb5f61093..12d3ae3a36 100644
--- a/sysdeps/unix/bsd/tcflow.c
+++ b/sysdeps/unix/bsd/tcflow.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/sysdeps/unix/bsd/tcflush.c b/sysdeps/unix/bsd/tcflush.c
index d0f7b76974..73794809d6 100644
--- a/sysdeps/unix/bsd/tcflush.c
+++ b/sysdeps/unix/bsd/tcflush.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/sysdeps/unix/bsd/tcgetattr.c b/sysdeps/unix/bsd/tcgetattr.c
index 7a9acd17bd..cc8f748a8c 100644
--- a/sysdeps/unix/bsd/tcgetattr.c
+++ b/sysdeps/unix/bsd/tcgetattr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <termios.h>
diff --git a/sysdeps/unix/bsd/tcgetpgrp.c b/sysdeps/unix/bsd/tcgetpgrp.c
index 24d77e675b..5cdf1ec0a6 100644
--- a/sysdeps/unix/bsd/tcgetpgrp.c
+++ b/sysdeps/unix/bsd/tcgetpgrp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/ioctl.h>
#include <errno.h>
diff --git a/sysdeps/unix/bsd/tcsendbrk.c b/sysdeps/unix/bsd/tcsendbrk.c
index 39ce08914e..9728c5399c 100644
--- a/sysdeps/unix/bsd/tcsendbrk.c
+++ b/sysdeps/unix/bsd/tcsendbrk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/sysdeps/unix/bsd/tcsetattr.c b/sysdeps/unix/bsd/tcsetattr.c
index 5803be4fc0..4d616c1c54 100644
--- a/sysdeps/unix/bsd/tcsetattr.c
+++ b/sysdeps/unix/bsd/tcsetattr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/sysdeps/unix/bsd/tcsetpgrp.c b/sysdeps/unix/bsd/tcsetpgrp.c
index 10b8b60394..83e94f03d9 100644
--- a/sysdeps/unix/bsd/tcsetpgrp.c
+++ b/sysdeps/unix/bsd/tcsetpgrp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <sys/ioctl.h>
diff --git a/sysdeps/unix/bsd/ualarm.c b/sysdeps/unix/bsd/ualarm.c
index 3c317f6654..894073f162 100644
--- a/sysdeps/unix/bsd/ualarm.c
+++ b/sysdeps/unix/bsd/ualarm.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/time.h>
#include <unistd.h>
diff --git a/sysdeps/unix/bsd/unlockpt.c b/sysdeps/unix/bsd/unlockpt.c
index d771d3201e..bd86d8c1e6 100644
--- a/sysdeps/unix/bsd/unlockpt.c
+++ b/sysdeps/unix/bsd/unlockpt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Zack Weinberg <zack@rabi.phys.columbia.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <paths.h>
#include <stdlib.h>
diff --git a/sysdeps/unix/bsd/wait.c b/sysdeps/unix/bsd/wait.c
index 13c6cde851..3207d96330 100644
--- a/sysdeps/unix/bsd/wait.c
+++ b/sysdeps/unix/bsd/wait.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/wait.h>
#include <errno.h>
diff --git a/sysdeps/unix/bsd/wait3.c b/sysdeps/unix/bsd/wait3.c
index 3c7f534a01..d7fa7e4496 100644
--- a/sysdeps/unix/bsd/wait3.c
+++ b/sysdeps/unix/bsd/wait3.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/wait.h>
diff --git a/sysdeps/unix/bsd/waitpid.c b/sysdeps/unix/bsd/waitpid.c
index 543b94fc9f..679d45d3dd 100644
--- a/sysdeps/unix/bsd/waitpid.c
+++ b/sysdeps/unix/bsd/waitpid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/wait.h>
diff --git a/sysdeps/unix/clock_gettime.c b/sysdeps/unix/clock_gettime.c
deleted file mode 100644
index 96df78ab1e..0000000000
--- a/sysdeps/unix/clock_gettime.c
+++ /dev/null
@@ -1,136 +0,0 @@
-/* clock_gettime -- Get the current time from a POSIX clockid_t. Unix version.
- Copyright (C) 1999-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <stdint.h>
-#include <time.h>
-#include <sys/time.h>
-#include <libc-internal.h>
-#include <ldsodefs.h>
-
-
-#if HP_TIMING_AVAIL
-/* Clock frequency of the processor. We make it a 64-bit variable
- because some jokers are already playing with processors with more
- than 4GHz. */
-static hp_timing_t freq;
-
-
-/* This function is defined in the thread library. */
-extern int __pthread_clock_gettime (clockid_t clock_id, hp_timing_t freq,
- struct timespec *tp)
- __attribute__ ((__weak__));
-
-static int
-hp_timing_gettime (clockid_t clock_id, struct timespec *tp)
-{
- hp_timing_t tsc;
-
- if (__glibc_unlikely (freq == 0))
- {
- /* This can only happen if we haven't initialized the `freq'
- variable yet. Do this now. We don't have to protect this
- code against multiple execution since all of them should
- lead to the same result. */
- freq = __get_clockfreq ();
- if (__glibc_unlikely (freq == 0))
- /* Something went wrong. */
- return -1;
- }
-
- if (clock_id != CLOCK_PROCESS_CPUTIME_ID
- && __pthread_clock_gettime != NULL)
- return __pthread_clock_gettime (clock_id, freq, tp);
-
- /* Get the current counter. */
- HP_TIMING_NOW (tsc);
-
- /* Compute the offset since the start time of the process. */
- tsc -= GL(dl_cpuclock_offset);
-
- /* Compute the seconds. */
- tp->tv_sec = tsc / freq;
-
- /* And the nanoseconds. This computation should be stable until
- we get machines with about 16GHz frequency. */
- tp->tv_nsec = ((tsc % freq) * UINT64_C (1000000000)) / freq;
-
- return 0;
-}
-#endif
-
-
-static inline int
-realtime_gettime (struct timespec *tp)
-{
- struct timeval tv;
- int retval = __gettimeofday (&tv, NULL);
- if (retval == 0)
- /* Convert into `timespec'. */
- TIMEVAL_TO_TIMESPEC (&tv, tp);
- return retval;
-}
-
-
-/* Get current value of CLOCK and store it in TP. */
-int
-__clock_gettime (clockid_t clock_id, struct timespec *tp)
-{
- int retval = -1;
-
- switch (clock_id)
- {
-#ifdef SYSDEP_GETTIME
- SYSDEP_GETTIME;
-#endif
-
-#ifndef HANDLED_REALTIME
- case CLOCK_REALTIME:
- {
- struct timeval tv;
- retval = __gettimeofday (&tv, NULL);
- if (retval == 0)
- TIMEVAL_TO_TIMESPEC (&tv, tp);
- }
- break;
-#endif
-
- default:
-#ifdef SYSDEP_GETTIME_CPU
- SYSDEP_GETTIME_CPU (clock_id, tp);
-#endif
-#if HP_TIMING_AVAIL
- if ((clock_id & ((1 << CLOCK_IDFIELD_SIZE) - 1))
- == CLOCK_THREAD_CPUTIME_ID)
- retval = hp_timing_gettime (clock_id, tp);
- else
-#endif
- __set_errno (EINVAL);
- break;
-
-#if HP_TIMING_AVAIL && !defined HANDLED_CPUTIME
- case CLOCK_PROCESS_CPUTIME_ID:
- retval = hp_timing_gettime (clock_id, tp);
- break;
-#endif
- }
-
- return retval;
-}
-weak_alias (__clock_gettime, clock_gettime)
-libc_hidden_def (__clock_gettime)
diff --git a/sysdeps/unix/clock_nanosleep.c b/sysdeps/unix/clock_nanosleep.c
deleted file mode 100644
index 97b3d6b6ab..0000000000
--- a/sysdeps/unix/clock_nanosleep.c
+++ /dev/null
@@ -1,101 +0,0 @@
-/* High-resolution sleep with the specified clock.
- Copyright (C) 2000-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <assert.h>
-#include <errno.h>
-#include <time.h>
-#include <hp-timing.h>
-#include <sysdep-cancel.h>
-
-#if HP_TIMING_AVAIL
-# define CPUCLOCK_P(clock) \
- ((clock) == CLOCK_PROCESS_CPUTIME_ID \
- || ((clock) & ((1 << CLOCK_IDFIELD_SIZE) - 1)) == CLOCK_THREAD_CPUTIME_ID)
-#else
-# define CPUCLOCK_P(clock) 0
-#endif
-
-#ifndef INVALID_CLOCK_P
-# define INVALID_CLOCK_P(cl) \
- ((cl) < CLOCK_REALTIME || (cl) > CLOCK_THREAD_CPUTIME_ID)
-#endif
-
-
-/* This implementation assumes that these is only a `nanosleep' system
- call. So we have to remap all other activities. */
-int
-__clock_nanosleep (clockid_t clock_id, int flags, const struct timespec *req,
- struct timespec *rem)
-{
- struct timespec now;
-
- if (__builtin_expect (req->tv_nsec, 0) < 0
- || __builtin_expect (req->tv_nsec, 0) >= 1000000000)
- return EINVAL;
-
- if (clock_id == CLOCK_THREAD_CPUTIME_ID)
- return EINVAL; /* POSIX specifies EINVAL for this case. */
-
-#ifdef SYSDEP_NANOSLEEP
- SYSDEP_NANOSLEEP;
-#endif
-
- if (CPUCLOCK_P (clock_id))
- return ENOTSUP;
-
- if (INVALID_CLOCK_P (clock_id))
- return EINVAL;
-
- /* If we got an absolute time, remap it. */
- if (flags == TIMER_ABSTIME)
- {
- long int nsec;
- long int sec;
-
- /* Make sure we use safe data types. */
- assert (sizeof (sec) >= sizeof (now.tv_sec));
-
- /* Get the current time for this clock. */
- if (__builtin_expect (__clock_gettime (clock_id, &now), 0) != 0)
- return errno;
-
- /* Compute the difference. */
- nsec = req->tv_nsec - now.tv_nsec;
- sec = req->tv_sec - now.tv_sec - (nsec < 0);
- if (sec < 0)
- /* The time has already elapsed. */
- return 0;
-
- now.tv_sec = sec;
- now.tv_nsec = nsec + (nsec < 0 ? 1000000000 : 0);
-
- /* From now on this is our time. */
- req = &now;
-
- /* Make sure we are not modifying the struct pointed to by REM. */
- rem = NULL;
- }
- else if (__builtin_expect (flags, 0) != 0)
- return EINVAL;
- else if (clock_id != CLOCK_REALTIME)
- /* Not supported. */
- return ENOTSUP;
-
- return __builtin_expect (__nanosleep (req, rem), 0) ? errno : 0;
-}
-weak_alias (__clock_nanosleep, clock_nanosleep)
diff --git a/sysdeps/unix/clock_settime.c b/sysdeps/unix/clock_settime.c
deleted file mode 100644
index 38813eddf7..0000000000
--- a/sysdeps/unix/clock_settime.c
+++ /dev/null
@@ -1,126 +0,0 @@
-/* Copyright (C) 1999-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <time.h>
-#include <sys/time.h>
-#include <ldsodefs.h>
-
-
-#if HP_TIMING_AVAIL && !defined HANDLED_CPUTIME
-/* Clock frequency of the processor. We make it a 64-bit variable
- because some jokers are already playing with processors with more
- than 4GHz. */
-static hp_timing_t freq;
-
-
-/* This function is defined in the thread library. */
-extern void __pthread_clock_settime (clockid_t clock_id, hp_timing_t offset)
- __attribute__ ((__weak__));
-
-
-static int
-hp_timing_settime (clockid_t clock_id, const struct timespec *tp)
-{
- hp_timing_t tsc;
- hp_timing_t usertime;
-
- /* First thing is to get the current time. */
- HP_TIMING_NOW (tsc);
-
- if (__glibc_unlikely (freq == 0))
- {
- /* This can only happen if we haven't initialized the `freq'
- variable yet. Do this now. We don't have to protect this
- code against multiple execution since all of them should lead
- to the same result. */
- freq = __get_clockfreq ();
- if (__glibc_unlikely (freq == 0))
- /* Something went wrong. */
- return -1;
- }
-
- /* Convert the user-provided time into CPU ticks. */
- usertime = tp->tv_sec * freq + (tp->tv_nsec * freq) / 1000000000ull;
-
- /* Determine the offset and use it as the new base value. */
- if (clock_id == CLOCK_PROCESS_CPUTIME_ID
- || __pthread_clock_settime == NULL)
- GL(dl_cpuclock_offset) = tsc - usertime;
- else
- __pthread_clock_settime (clock_id, tsc - usertime);
-
- return 0;
-}
-#endif
-
-
-/* Set CLOCK to value TP. */
-int
-__clock_settime (clockid_t clock_id, const struct timespec *tp)
-{
- int retval;
-
- /* Make sure the time cvalue is OK. */
- if (tp->tv_nsec < 0 || tp->tv_nsec >= 1000000000)
- {
- __set_errno (EINVAL);
- return -1;
- }
-
- switch (clock_id)
- {
-#define HANDLE_REALTIME \
- do { \
- struct timeval tv; \
- TIMESPEC_TO_TIMEVAL (&tv, tp); \
- \
- retval = __settimeofday (&tv, NULL); \
- } while (0)
-
-#ifdef SYSDEP_SETTIME
- SYSDEP_SETTIME;
-#endif
-
-#ifndef HANDLED_REALTIME
- case CLOCK_REALTIME:
- HANDLE_REALTIME;
- break;
-#endif
-
- default:
-#ifdef SYSDEP_SETTIME_CPU
- SYSDEP_SETTIME_CPU;
-#endif
-#ifndef HANDLED_CPUTIME
-# if HP_TIMING_AVAIL
- if (CPUCLOCK_WHICH (clock_id) == CLOCK_PROCESS_CPUTIME_ID
- || CPUCLOCK_WHICH (clock_id) == CLOCK_THREAD_CPUTIME_ID)
- retval = hp_timing_settime (clock_id, tp);
- else
-# endif
- {
- __set_errno (EINVAL);
- retval = -1;
- }
-#endif
- break;
- }
-
- return retval;
-}
-weak_alias (__clock_settime, clock_settime)
diff --git a/sysdeps/unix/get_child_max.c b/sysdeps/unix/get_child_max.c
index 33553999c5..0115e1bd4d 100644
--- a/sysdeps/unix/get_child_max.c
+++ b/sysdeps/unix/get_child_max.c
@@ -1,5 +1,5 @@
/* Get POSIX {CHILD_MAX} run-time limit value. Unix version.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <limits.h>
#include <sys/sysinfo.h>
diff --git a/sysdeps/unix/getlogin.c b/sysdeps/unix/getlogin.c
index 426e67d70f..76f9582b6e 100644
--- a/sysdeps/unix/getlogin.c
+++ b/sysdeps/unix/getlogin.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/unix/getlogin_r.c b/sysdeps/unix/getlogin_r.c
index 444df7e4d3..b5d1ebc56c 100644
--- a/sysdeps/unix/getlogin_r.c
+++ b/sysdeps/unix/getlogin_r.c
@@ -1,5 +1,5 @@
/* Reentrant function to return the current login name. Unix version.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
@@ -64,8 +64,8 @@ __getlogin_r (char *name, size_t name_len)
held so that our search is thread-safe. */
__libc_lock_lock (__libc_utmp_lock);
- (*__libc_utmp_jump_table->setutent) ();
- result = (*__libc_utmp_jump_table->getutline_r) (&line, &buffer, &ut);
+ __libc_setutent ();
+ result = __libc_getutline_r (&line, &buffer, &ut);
if (result < 0)
{
if (errno == ESRCH)
@@ -74,8 +74,7 @@ __getlogin_r (char *name, size_t name_len)
else
result = errno;
}
- (*__libc_utmp_jump_table->endutent) ();
- __libc_utmp_jump_table = &__libc_utmp_unknown_functions;
+ __libc_endutent ();
__libc_lock_unlock (__libc_utmp_lock);
if (result == 0)
diff --git a/sysdeps/unix/getpagesize.c b/sysdeps/unix/getpagesize.c
index 7d44af087b..e8d7b8bb9a 100644
--- a/sysdeps/unix/getpagesize.c
+++ b/sysdeps/unix/getpagesize.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <sys/param.h>
diff --git a/sysdeps/unix/grantpt.c b/sysdeps/unix/grantpt.c
index 9d851a4e14..d44f53060b 100644
--- a/sysdeps/unix/grantpt.c
+++ b/sysdeps/unix/grantpt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Zack Weinberg <zack@rabi.phys.columbia.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
@@ -178,8 +178,8 @@ grantpt (int fd)
owner. For security reasons, make it writable by the group only
when originally writable and when the group of the device is that
special group. */
- mode_t mode = S_IRUSR|S_IWUSR|
- ((st.st_gid == gid) ? (st.st_mode & S_IWGRP) : 0);
+ mode_t mode = S_IRUSR|S_IWUSR
+ |((st.st_gid == gid) ? (st.st_mode & S_IWGRP) : 0);
#endif
if ((st.st_mode & ACCESSPERMS) != mode)
diff --git a/sysdeps/unix/i386/sysdep.S b/sysdeps/unix/i386/sysdep.S
index f996ce3878..31a8780c9f 100644
--- a/sysdeps/unix/i386/sysdep.S
+++ b/sysdeps/unix/i386/sysdep.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#define _ERRNO_H
diff --git a/sysdeps/unix/i386/sysdep.h b/sysdeps/unix/i386/sysdep.h
index 98ba743c35..7b7b74862b 100644
--- a/sysdeps/unix/i386/sysdep.h
+++ b/sysdeps/unix/i386/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/unix/sysdep.h>
#include <sysdeps/i386/sysdep.h>
diff --git a/sysdeps/unix/ifreq.c b/sysdeps/unix/ifreq.c
index 087ff8705d..6e2a9912e0 100644
--- a/sysdeps/unix/ifreq.c
+++ b/sysdeps/unix/ifreq.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "ifreq.h"
diff --git a/sysdeps/unix/inet/Subdirs b/sysdeps/unix/inet/Subdirs
index 0a02dd4447..90791e6e07 100644
--- a/sysdeps/unix/inet/Subdirs
+++ b/sysdeps/unix/inet/Subdirs
@@ -5,4 +5,3 @@ sunrpc
nis
nscd
nss
-streams
diff --git a/sysdeps/unix/make-syscalls.sh b/sysdeps/unix/make-syscalls.sh
index e39b2d6d52..fe24bbc78f 100644
--- a/sysdeps/unix/make-syscalls.sh
+++ b/sysdeps/unix/make-syscalls.sh
@@ -7,7 +7,7 @@
#
# This script is used to process the syscall data encoded in the various
# syscalls.list files to produce thin assembly syscall wrappers around the
-# appropriate OS syscall. See syscall-template.s for more details on the
+# appropriate OS syscall. See syscall-template.S for more details on the
# actual wrapper.
#
# Syscall Signature Prefixes:
@@ -27,7 +27,7 @@
# n: scalar buffer length (e.g., 3rd arg to read)
# N: pointer to value/return scalar buffer length (e.g., 6th arg to recvfrom)
# p: non-NULL pointer to typed object (e.g., any non-void* arg)
-# P: optionally-NULL pointer to typed object (e.g., 2nd argument to gettimeofday)
+# P: optionally-NULL pointer to typed object (e.g., 3rd argument to sigaction)
# s: non-NULL string (e.g., 1st arg to open)
# S: optionally-NULL string (e.g., 1st arg to acct)
# v: vararg scalar (e.g., optional 3rd arg to open)
@@ -283,10 +283,9 @@ while read file srcfile caller syscall args strong weak; do
(echo '#define ${strong} __redirect_${strong}'; \\
echo '#include <dl-vdso.h>'; \\
echo '#undef ${strong}'; \\
- echo '#define vdso_ifunc_init() \\'; \\
- echo ' PREPARE_VERSION_KNOWN (symver, ${vdso_symver})'; \\
+ echo '#define vdso_ifunc_init()'; \\
echo '__ifunc (__redirect_${strong}, ${strong},'; \\
- echo ' _dl_vdso_vsym ("${vdso_symbol}", &symver), void,'; \\
+ echo ' get_vdso_symbol ("${vdso_symbol}"), void,'; \\
echo ' vdso_ifunc_init)'; \\
EOF
# This is doing "hidden_def (${strong})", but the compiler
diff --git a/sysdeps/unix/mips/mips32/sysdep.h b/sysdeps/unix/mips/mips32/sysdep.h
index 825d007489..03e82f502c 100644
--- a/sysdeps/unix/mips/mips32/sysdep.h
+++ b/sysdeps/unix/mips/mips32/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Brendan Kehoe (brendan@zen.org).
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/unix/mips/sysdep.h>
diff --git a/sysdeps/unix/mips/mips64/n32/sysdep.h b/sysdeps/unix/mips/mips64/n32/sysdep.h
index 78c1eca872..6c005f0e34 100644
--- a/sysdeps/unix/mips/mips64/n32/sysdep.h
+++ b/sysdeps/unix/mips/mips64/n32/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Alexandre Oliva <aoliva@redhat.com>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/unix/mips/sysdep.h>
diff --git a/sysdeps/unix/mips/mips64/n64/sysdep.h b/sysdeps/unix/mips/mips64/n64/sysdep.h
index a559917e64..862f70bc29 100644
--- a/sysdeps/unix/mips/mips64/n64/sysdep.h
+++ b/sysdeps/unix/mips/mips64/n64/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Alexandre Oliva <aoliva@redhat.com>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/unix/mips/sysdep.h>
diff --git a/sysdeps/unix/mips/pipe.S b/sysdeps/unix/mips/pipe.S
index 6902a063df..01f4613d26 100644
--- a/sysdeps/unix/mips/pipe.S
+++ b/sysdeps/unix/mips/pipe.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Brendan Kehoe (brendan@zen.org).
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/mips/sysdep.S b/sysdeps/unix/mips/sysdep.S
index 702d99e707..0a8e727427 100644
--- a/sysdeps/unix/mips/sysdep.S
+++ b/sysdeps/unix/mips/sysdep.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Brendan Kehoe (brendan@zen.org).
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#define _ERRNO_H
diff --git a/sysdeps/unix/mips/sysdep.h b/sysdeps/unix/mips/sysdep.h
index f3018a7779..cf0daa95c9 100644
--- a/sysdeps/unix/mips/sysdep.h
+++ b/sysdeps/unix/mips/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Brendan Kehoe (brendan@zen.org).
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sgidefs.h>
#include <sysdeps/unix/sysdep.h>
diff --git a/sysdeps/unix/powerpc/sysdep.h b/sysdeps/unix/powerpc/sysdep.h
index 284062e956..4f58441556 100644
--- a/sysdeps/unix/powerpc/sysdep.h
+++ b/sysdeps/unix/powerpc/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/unix/sysdep.h>
#include <bits/wordsize.h>
diff --git a/sysdeps/unix/pt-fcntl.c b/sysdeps/unix/pt-fcntl.c
index 3d64054dd0..c21ec13712 100644
--- a/sysdeps/unix/pt-fcntl.c
+++ b/sysdeps/unix/pt-fcntl.c
@@ -1,5 +1,5 @@
/* ABI compatibility for 'fcntl' symbol in libpthread ABI.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fcntl.h>
#include <stdarg.h>
diff --git a/sysdeps/unix/sh/sysdep.S b/sysdeps/unix/sh/sysdep.S
index ea723c51cb..1714e7f934 100644
--- a/sysdeps/unix/sh/sysdep.S
+++ b/sysdeps/unix/sh/sysdep.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#define _ERRNO_H
diff --git a/sysdeps/unix/sh/sysdep.h b/sysdeps/unix/sh/sysdep.h
index 376ecbd769..5bd51d5869 100644
--- a/sysdeps/unix/sh/sysdep.h
+++ b/sysdeps/unix/sh/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/unix/sysdep.h>
#include <sysdeps/sh/sysdep.h>
diff --git a/sysdeps/unix/sockatmark.c b/sysdeps/unix/sockatmark.c
index a87a4920b3..33b0583ec0 100644
--- a/sysdeps/unix/sockatmark.c
+++ b/sysdeps/unix/sockatmark.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -13,12 +13,12 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/ioctl.h>
#include <sys/socket.h>
-/* Determine wheter socket is at a out-of-band mark. */
+/* Determine whether socket is at a out-of-band mark. */
int
sockatmark (int fd)
{
diff --git a/sysdeps/unix/stime.c b/sysdeps/unix/stime.c
deleted file mode 100644
index bbdeb3c6f2..0000000000
--- a/sysdeps/unix/stime.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright (C) 1992-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <stddef.h> /* For NULL. */
-#include <sys/time.h>
-#include <time.h>
-
-/* Set the system clock to *WHEN. */
-
-int
-stime (const time_t *when)
-{
- struct timeval tv;
-
- if (when == NULL)
- {
- __set_errno (EINVAL);
- return -1;
- }
-
- tv.tv_sec = *when;
- tv.tv_usec = 0;
- return __settimeofday (&tv, (struct timezone *) 0);
-}
diff --git a/sysdeps/unix/syscall-template.S b/sysdeps/unix/syscall-template.S
index 89060bf3ee..2ab3d3c58d 100644
--- a/sysdeps/unix/syscall-template.S
+++ b/sysdeps/unix/syscall-template.S
@@ -1,5 +1,5 @@
/* Assembly code template for system call stubs.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* The real guts of this work are in the macros defined in the
machine- and kernel-specific sysdep.h header file. Cancellable syscalls
diff --git a/sysdeps/unix/syscall.S b/sysdeps/unix/syscall.S
index 6d82a63e6d..e17e3049c9 100644
--- a/sysdeps/unix/syscall.S
+++ b/sysdeps/unix/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/syscalls.list b/sysdeps/unix/syscalls.list
index 61e5360b4d..e28e801c7a 100644
--- a/sysdeps/unix/syscalls.list
+++ b/sysdeps/unix/syscalls.list
@@ -33,7 +33,6 @@ getrlimit - getrlimit i:ip __getrlimit getrlimit
getrusage - getrusage i:ip __getrusage getrusage
getsockname - getsockname i:ibN __getsockname getsockname
getsockopt - getsockopt i:iiiBN getsockopt
-gettimeofday - gettimeofday i:pP __gettimeofday gettimeofday
getuid - getuid Ei: __getuid getuid
ioctl - ioctl i:iiI __ioctl ioctl
kill - kill i:ii __kill kill
@@ -76,7 +75,6 @@ setreuid - setreuid i:ii __setreuid setreuid
setrlimit - setrlimit i:ip __setrlimit setrlimit
setsid - setsid i: __setsid setsid
setsockopt - setsockopt i:iiibn setsockopt __setsockopt
-settimeofday - settimeofday i:PP __settimeofday settimeofday
setuid - setuid i:i __setuid setuid
shutdown - shutdown i:ii shutdown
sigaction - sigaction i:ipp __sigaction sigaction
diff --git a/sysdeps/unix/sysdep.h b/sysdeps/unix/sysdep.h
index 29c39618c2..10468c7129 100644
--- a/sysdeps/unix/sysdep.h
+++ b/sysdeps/unix/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -13,10 +13,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/generic/sysdep.h>
-
+#include <single-thread.h>
#include <sys/syscall.h>
#define HAVE_SYSCALLS
diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile
index f71cc39c7e..07776d28ea 100644
--- a/sysdeps/unix/sysv/linux/Makefile
+++ b/sysdeps/unix/sysv/linux/Makefile
@@ -14,7 +14,7 @@ endif
ifeq ($(subdir),misc)
include $(firstword $(wildcard $(sysdirs:=/sysctl.mk)))
-sysdep_routines += clone umount umount2 readahead \
+sysdep_routines += adjtimex clone umount umount2 readahead \
setfsuid setfsgid epoll_pwait signalfd \
eventfd eventfd_read eventfd_write prlimit \
personality epoll_wait tee vmsplice splice \
@@ -40,14 +40,25 @@ sysdep_headers += sys/mount.h sys/acct.h sys/sysctl.h \
bits/signalfd.h bits/timerfd.h bits/epoll.h \
bits/socket_type.h bits/syscall.h bits/sysctl.h \
bits/mman-linux.h bits/mman-shared.h bits/ptrace-shared.h \
- bits/siginfo-arch.h bits/siginfo-consts-arch.h
+ bits/siginfo-arch.h bits/siginfo-consts-arch.h \
+ bits/procfs.h bits/procfs-id.h bits/procfs-extra.h \
+ bits/procfs-prregset.h bits/mman-map-flags-generic.h \
+ bits/msq-pad.h bits/sem-pad.h bits/shmlba.h bits/shm-pad.h \
+ bits/termios-struct.h bits/termios-c_cc.h \
+ bits/termios-c_iflag.h bits/termios-c_oflag.h \
+ bits/termios-baud.h bits/termios-c_cflag.h \
+ bits/termios-c_lflag.h bits/termios-tcflow.h \
+ bits/termios-misc.h \
+ bits/ipc-perm.h
tests += tst-clone tst-clone2 tst-clone3 tst-fanotify tst-personality \
tst-quota tst-sync_file_range tst-sysconf-iov_max tst-ttyname \
test-errno-linux tst-memfd_create tst-mlock2 tst-pkey \
- tst-rlimit-infinity tst-ofdlocks
-tests-internal += tst-ofdlocks-compat
+ tst-rlimit-infinity tst-ofdlocks tst-gettid tst-gettid-kill \
+ tst-tgkill
+tests-internal += tst-ofdlocks-compat tst-sigcontext-get_pc
+CFLAGS-tst-sigcontext-get_pc.c = -fasynchronous-unwind-tables
# Generate the list of SYS_* macros for the system calls (__NR_*
# macros). The file syscall-names.list contains all possible system
@@ -97,6 +108,19 @@ $(objpfx)tst-sysconf-iov_max: $(objpfx)tst-sysconf-iov_max-uapi.o
$(objpfx)tst-pkey: $(shared-thread-library)
+tests-special += $(objpfx)tst-mman-consts.out
+$(objpfx)tst-mman-consts.out: ../sysdeps/unix/sysv/linux/tst-mman-consts.py
+ PYTHONPATH=../scripts \
+ $(PYTHON) ../sysdeps/unix/sysv/linux/tst-mman-consts.py \
+ --cc="$(CC) $(patsubst -DMODULE_NAME=%, \
+ -DMODULE_NAME=testsuite, \
+ $(CPPFLAGS))" \
+ < /dev/null > $@ 2>&1; $(evaluate-test)
+
+$(objpfx)tst-gettid: $(shared-thread-library)
+$(objpfx)tst-gettid-kill: $(shared-thread-library)
+$(objpfx)tst-tgkill: $(shared-thread-library)
+
endif # $(subdir) == misc
ifeq ($(subdir),time)
@@ -112,21 +136,34 @@ tests-special += $(objpfx)tst-signal-numbers.out
# in this context, but signal.c includes signal.h and not much else so it'll
# be conservatively correct.
$(objpfx)tst-signal-numbers.out: \
- ../sysdeps/unix/sysv/linux/tst-signal-numbers.sh \
+ ../sysdeps/unix/sysv/linux/tst-signal-numbers.py \
$(objpfx)signal.o*
- AWK=$(AWK) $(SHELL) ../sysdeps/unix/sysv/linux/tst-signal-numbers.sh \
- $(CC) $(patsubst -DMODULE_NAME=%,-DMODULE_NAME=testsuite,$(CPPFLAGS)) \
- < /dev/null > $@; $(evaluate-test)
+ PYTHONPATH=../scripts \
+ $(PYTHON) ../sysdeps/unix/sysv/linux/tst-signal-numbers.py \
+ --cc="$(CC) $(patsubst -DMODULE_NAME=%, \
+ -DMODULE_NAME=testsuite, \
+ $(CPPFLAGS))" \
+ < /dev/null > $@ 2>&1; $(evaluate-test)
endif
ifeq ($(subdir),socket)
sysdep_headers += net/if_ppp.h net/ppp-comp.h \
net/ppp_defs.h net/if_arp.h net/route.h net/ethernet.h \
- net/if_slip.h net/if_packet.h net/if_shaper.h
+ net/if_slip.h net/if_packet.h net/if_shaper.h \
+ bits/socket-constants.h
sysdep_routines += cmsg_nxthdr
CFLAGS-recvmmsg.c = -fexceptions -fasynchronous-unwind-tables
CFLAGS-sendmmsg.c = -fexceptions -fasynchronous-unwind-tables
-endif
+
+tests-special += $(objpfx)tst-socket-consts.out
+$(objpfx)tst-socket-consts.out: ../sysdeps/unix/sysv/linux/tst-socket-consts.py
+ PYTHONPATH=../scripts \
+ $(PYTHON) ../sysdeps/unix/sysv/linux/tst-socket-consts.py \
+ --cc="$(CC) $(patsubst -DMODULE_NAME=%, \
+ -DMODULE_NAME=testsuite, \
+ $(CPPFLAGS)) -D_ISOMAC" \
+ < /dev/null > $@ 2>&1; $(evaluate-test)
+endif # $(subdir) == socket
ifeq ($(subdir),sunrpc)
sysdep_headers += nfs/nfs.h
@@ -139,10 +176,13 @@ endif
ifeq ($(subdir),posix)
sysdep_headers += bits/initspin.h
-sysdep_routines += sched_getcpu oldglob
+sysdep_routines += sched_getcpu oldglob getcpu
tests += tst-affinity tst-affinity-pid
+tests-static := tst-affinity-static
+tests += $(tests-static)
+
CFLAGS-fork.c = $(libio-mtsafe)
CFLAGS-getpid.o = -fomit-frame-pointer
CFLAGS-getpid.os = -fomit-frame-pointer
@@ -161,6 +201,8 @@ inhibit-glue = yes
ifeq ($(subdir),dirent)
sysdep_routines += getdirentries getdirentries64
+tests += tst-getdents64
+tests-internal += tst-readdir64-compat
endif
ifeq ($(subdir),nis)
@@ -170,10 +212,11 @@ endif
ifeq ($(subdir),io)
sysdep_routines += xstatconv internal_statvfs internal_statvfs64 \
sync_file_range fallocate fallocate64 \
- close_nocancel fcntl_nocancel nanosleep_nocancel \
+ close_nocancel fcntl_nocancel \
open_nocancel open64_nocancel \
openat_nocancel openat64_nocancel \
- pause_nocancel read_nocancel waitpid_nocancel write_nocancel
+ read_nocancel pread64_nocancel \
+ waitpid_nocancel write_nocancel statx_cp
sysdep_headers += bits/fcntl-linux.h
diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions
index 336c13b57d..d385085c61 100644
--- a/sysdeps/unix/sysv/linux/Versions
+++ b/sysdeps/unix/sysv/linux/Versions
@@ -171,11 +171,18 @@ libc {
mlock2;
pkey_alloc; pkey_free; pkey_set; pkey_get; pkey_mprotect;
}
+ GLIBC_2.29 {
+ getcpu;
+ }
+ GLIBC_2.30 {
+ getdents64; gettid; tgkill;
+ }
GLIBC_PRIVATE {
# functions used in other libraries
__syscall_rt_sigqueueinfo;
__open_nocancel;
__read_nocancel;
+ __pread64_nocancel;
__close_nocancel;
__sigtimedwait;
# functions used by nscd
diff --git a/sysdeps/unix/sysv/linux/_exit.c b/sysdeps/unix/sysv/linux/_exit.c
index 7b68bd9730..1590cfd479 100644
--- a/sysdeps/unix/sysv/linux/_exit.c
+++ b/sysdeps/unix/sysv/linux/_exit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdlib.h>
diff --git a/sysdeps/unix/sysv/linux/a.out.h b/sysdeps/unix/sysv/linux/a.out.h
index e3f4bdd08f..79df4852fd 100644
--- a/sysdeps/unix/sysv/linux/a.out.h
+++ b/sysdeps/unix/sysv/linux/a.out.h
@@ -64,8 +64,8 @@ enum machine_type
&& N_MAGIC(x) != ZMAGIC && N_MAGIC(x) != QMAGIC)
#define _N_HDROFF(x) (1024 - sizeof (struct exec))
#define N_TXTOFF(x) \
- (N_MAGIC(x) == ZMAGIC ? _N_HDROFF((x)) + sizeof (struct exec) : \
- (N_MAGIC(x) == QMAGIC ? 0 : sizeof (struct exec)))
+ (N_MAGIC(x) == ZMAGIC ? _N_HDROFF((x)) + sizeof (struct exec) \
+ : (N_MAGIC(x) == QMAGIC ? 0 : sizeof (struct exec)))
#define N_DATOFF(x) (N_TXTOFF(x) + (x).a_text)
#define N_TRELOFF(x) (N_DATOFF(x) + (x).a_data)
#define N_DRELOFF(x) (N_TRELOFF(x) + N_TRSIZE(x))
diff --git a/sysdeps/unix/sysv/linux/aarch64/__read_tp.S b/sysdeps/unix/sysv/linux/aarch64/__read_tp.S
index 92fc0191a5..c05ccc507f 100644
--- a/sysdeps/unix/sysv/linux/aarch64/__read_tp.S
+++ b/sysdeps/unix/sysv/linux/aarch64/__read_tp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/aarch64/bits/fcntl.h b/sysdeps/unix/sysv/linux/aarch64/bits/fcntl.h
index e09ff4125c..f15b101866 100644
--- a/sysdeps/unix/sysv/linux/aarch64/bits/fcntl.h
+++ b/sysdeps/unix/sysv/linux/aarch64/bits/fcntl.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for the AArch64 Linux ABI.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FCNTL_H
# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
diff --git a/sysdeps/unix/sysv/linux/aarch64/bits/hwcap.h b/sysdeps/unix/sysv/linux/aarch64/bits/hwcap.h
index 083791349c..e82bba7c8e 100644
--- a/sysdeps/unix/sysv/linux/aarch64/bits/hwcap.h
+++ b/sysdeps/unix/sysv/linux/aarch64/bits/hwcap.h
@@ -1,5 +1,5 @@
/* Defines for bits in AT_HWCAP. AArch64 Linux version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if !defined (_SYS_AUXV_H)
# error "Never include <bits/hwcap.h> directly; use <sys/auxv.h> instead."
#endif
-/* The following must match the kernel's <asm/hwcap.h>. */
+/* The following must match the kernel's <asm/hwcap.h> and update the
+ list together with sysdeps/unix/sysv/linux/aarch64/dl-procinfo.c. */
#define HWCAP_FP (1 << 0)
#define HWCAP_ASIMD (1 << 1)
#define HWCAP_EVTSTRM (1 << 2)
@@ -49,3 +50,7 @@
#define HWCAP_USCAT (1 << 25)
#define HWCAP_ILRCPC (1 << 26)
#define HWCAP_FLAGM (1 << 27)
+#define HWCAP_SSBS (1 << 28)
+#define HWCAP_SB (1 << 29)
+#define HWCAP_PACA (1 << 30)
+#define HWCAP_PACG (1UL << 31)
diff --git a/sysdeps/unix/sysv/linux/aarch64/bits/ipc.h b/sysdeps/unix/sysv/linux/aarch64/bits/ipc.h
deleted file mode 100644
index d66cf4412d..0000000000
--- a/sysdeps/unix/sysv/linux/aarch64/bits/ipc.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Copyright (C) 1995-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_IPC_H
-# error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
-#endif
-
-#include <bits/types.h>
-
-/* Mode bits for `msgget', `semget', and `shmget'. */
-#define IPC_CREAT 01000 /* Create key if key does not exist. */
-#define IPC_EXCL 02000 /* Fail if key exists. */
-#define IPC_NOWAIT 04000 /* Return error on wait. */
-
-/* Control commands for `msgctl', `semctl', and `shmctl'. */
-#define IPC_RMID 0 /* Remove identifier. */
-#define IPC_SET 1 /* Set `ipc_perm' options. */
-#define IPC_STAT 2 /* Get `ipc_perm' options. */
-#ifdef __USE_GNU
-# define IPC_INFO 3 /* See ipcs. */
-#endif
-
-/* Special key values. */
-#define IPC_PRIVATE ((__key_t) 0) /* Private key. */
-
-
-/* Data structure used to pass permission information to IPC operations. */
-struct ipc_perm
- {
- __key_t __key; /* Key. */
- __uid_t uid; /* Owner's user ID. */
- __gid_t gid; /* Owner's group ID. */
- __uid_t cuid; /* Creator's user ID. */
- __gid_t cgid; /* Creator's group ID. */
- unsigned int mode; /* Read/write permission. */
- unsigned short int __seq; /* Sequence number. */
- unsigned short int __pad1;
- __syscall_ulong_t __glibc_reserved1;
- __syscall_ulong_t __glibc_reserved2;
- };
diff --git a/sysdeps/unix/sysv/linux/aarch64/bits/local_lim.h b/sysdeps/unix/sysv/linux/aarch64/bits/local_lim.h
index 37aab9a24d..5076ae24f5 100644
--- a/sysdeps/unix/sysv/linux/aarch64/bits/local_lim.h
+++ b/sysdeps/unix/sysv/linux/aarch64/bits/local_lim.h
@@ -1,5 +1,5 @@
/* Minimum guaranteed maximum values for system limits. Linux version.
- Copyright (C) 1993-2018 Free Software Foundation, Inc.
+ Copyright (C) 1993-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* The kernel header pollutes the namespace with the NR_OPEN symbol
and defines LINK_MAX although filesystems have different maxima. A
diff --git a/sysdeps/unix/sysv/linux/aarch64/bits/mman.h b/sysdeps/unix/sysv/linux/aarch64/bits/mman.h
deleted file mode 100644
index 577566044d..0000000000
--- a/sysdeps/unix/sysv/linux/aarch64/bits/mman.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Definitions for POSIX memory map interface. Linux/AArch64 version.
-
- Copyright (C) 1997-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_MMAN_H
-# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
-#endif
-
-/* The following definitions basically come from the kernel headers.
- But the kernel header is not namespace clean. */
-
-/* These are Linux-specific. */
-#ifdef __USE_MISC
-# define MAP_GROWSDOWN 0x00100 /* Stack-like segment. */
-# define MAP_DENYWRITE 0x00800 /* ETXTBSY */
-# define MAP_EXECUTABLE 0x01000 /* Mark it as an executable. */
-# define MAP_LOCKED 0x02000 /* Lock the mapping. */
-# define MAP_NORESERVE 0x04000 /* Don't check for reservations. */
-# define MAP_POPULATE 0x08000 /* Populate (prefault) pagetables. */
-# define MAP_NONBLOCK 0x10000 /* Do not block on IO. */
-# define MAP_STACK 0x20000 /* Allocation is for a stack. */
-# define MAP_HUGETLB 0x40000 /* Create huge page mapping. */
-# define MAP_SYNC 0x80000 /* Perform synchronous page
- faults for the mapping. */
-# define MAP_FIXED_NOREPLACE 0x100000 /* MAP_FIXED but do not unmap
- underlying mapping. */
-#endif
-
-
-
-/* Include generic Linux declarations. */
-#include <bits/mman-linux.h>
diff --git a/sysdeps/unix/sysv/linux/aarch64/bits/procfs.h b/sysdeps/unix/sysv/linux/aarch64/bits/procfs.h
new file mode 100644
index 0000000000..aa50b0f4a0
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/bits/procfs.h
@@ -0,0 +1,35 @@
+/* Types for registers for sys/procfs.h. AArch64 version.
+ Copyright (C) 1996-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PROCFS_H
+# error "Never include <bits/procfs.h> directly; use <sys/procfs.h> instead."
+#endif
+
+/* Type for a general-purpose register. */
+typedef __uint64_t elf_greg_t;
+
+/* And the whole bunch of them. We could have used `struct
+ pt_regs' directly in the typedef, but tradition says that
+ the register set is an array, which does have some peculiar
+ semantics, so leave it that way. */
+#define ELF_NGREG (sizeof (struct user_regs_struct) / sizeof (elf_greg_t))
+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
+
+/* Register set for the floating-point registers. */
+typedef struct user_fpsimd_struct elf_fpregset_t;
diff --git a/sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h b/sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h
index 712f3dafd4..a7f20cf5ed 100644
--- a/sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h
+++ b/sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h
@@ -1,5 +1,5 @@
/* sigstack, sigaltstack definitions.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_SIGSTACK_H
#define _BITS_SIGSTACK_H 1
diff --git a/sysdeps/unix/sysv/linux/aarch64/clone.S b/sysdeps/unix/sysv/linux/aarch64/clone.S
index e065304825..f2964413e6 100644
--- a/sysdeps/unix/sysv/linux/aarch64/clone.S
+++ b/sysdeps/unix/sysv/linux/aarch64/clone.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* clone() is even more special than fork() as it mucks with stacks
and invokes a function in the right context after its all over. */
diff --git a/sysdeps/unix/sysv/linux/aarch64/cpu-features.c b/sysdeps/unix/sysv/linux/aarch64/cpu-features.c
index 39eba0186f..4fc241a6e5 100644
--- a/sysdeps/unix/sysv/linux/aarch64/cpu-features.c
+++ b/sysdeps/unix/sysv/linux/aarch64/cpu-features.c
@@ -1,6 +1,6 @@
/* Initialize CPU feature data. AArch64 version.
This file is part of the GNU C Library.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-2019 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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <cpu-features.h>
#include <sys/auxv.h>
@@ -36,6 +36,8 @@ static struct cpu_list cpu_list[] = {
{"thunderx2t99", 0x431F0AF0},
{"thunderx2t99p1", 0x420F5160},
{"phecda", 0x680F0000},
+ {"ares", 0x411FD0C0},
+ {"emag", 0x503F0001},
{"generic", 0x0}
};
@@ -57,7 +59,7 @@ init_cpu_features (struct cpu_features *cpu_features)
#if HAVE_TUNABLES
/* Get the tunable override. */
- const char *mcpu = TUNABLE_GET (glibc, tune, cpu, const char *, NULL);
+ const char *mcpu = TUNABLE_GET (glibc, cpu, name, const char *, NULL);
if (mcpu != NULL)
midr = get_midr_from_mcpu (mcpu);
#endif
diff --git a/sysdeps/unix/sysv/linux/aarch64/cpu-features.h b/sysdeps/unix/sysv/linux/aarch64/cpu-features.h
index eb35adfbe9..0fa57dc66f 100644
--- a/sysdeps/unix/sysv/linux/aarch64/cpu-features.h
+++ b/sysdeps/unix/sysv/linux/aarch64/cpu-features.h
@@ -1,6 +1,6 @@
/* Initialize CPU feature data. AArch64 version.
This file is part of the GNU C Library.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-2019 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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _CPU_FEATURES_AARCH64_H
#define _CPU_FEATURES_AARCH64_H
@@ -51,6 +51,11 @@
#define IS_PHECDA(midr) (MIDR_IMPLEMENTOR(midr) == 'h' \
&& MIDR_PARTNUM(midr) == 0x000)
+#define IS_ARES(midr) (MIDR_IMPLEMENTOR(midr) == 'A' \
+ && MIDR_PARTNUM(midr) == 0xd0c)
+
+#define IS_EMAG(midr) (MIDR_IMPLEMENTOR(midr) == 'P' \
+ && MIDR_PARTNUM(midr) == 0x000)
struct cpu_features
{
diff --git a/sysdeps/unix/sysv/linux/aarch64/dl-cache.h b/sysdeps/unix/sysv/linux/aarch64/dl-cache.h
index 54b64893cc..c4442f3461 100644
--- a/sysdeps/unix/sysv/linux/aarch64/dl-cache.h
+++ b/sysdeps/unix/sysv/linux/aarch64/dl-cache.h
@@ -1,5 +1,5 @@
/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ldconfig.h>
diff --git a/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.c b/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.c
index 2ac06351cb..c49c2df714 100644
--- a/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.c
+++ b/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.c
@@ -1,6 +1,6 @@
/* Data for AArch64 version of processor capability information.
Linux version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* If anything should be added here check whether the size of each string
is still ok with the given array size.
@@ -57,7 +57,7 @@ PROCINFO_CLASS struct cpu_features _dl_aarch64_cpu_features
#endif
/* Number of HWCAP bits set. */
-#define _DL_HWCAP_COUNT 28
+#define _DL_HWCAP_COUNT 32
#if !defined PROCINFO_DECL && defined SHARED
._dl_aarch64_cap_flags
@@ -69,7 +69,8 @@ PROCINFO_CLASS const char _dl_aarch64_cap_flags[_DL_HWCAP_COUNT][10]
= { "fp", "asimd", "evtstrm", "aes", "pmull", "sha1", "sha2", "crc32",
"atomics", "fphp", "asimdhp", "cpuid", "asimdrdm", "jscvt", "fcma",
"lrcpc", "dcpop", "sha3", "sm3", "sm4", "asimddp", "sha512", "sve",
- "asimdfhm", "dit", "uscat", "ilrcpc", "flagm" }
+ "asimdfhm", "dit", "uscat", "ilrcpc", "flagm", "ssbs", "sb", "paca",
+ "pacg" }
#endif
#if !defined SHARED || defined PROCINFO_DECL
;
diff --git a/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.h b/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.h
index f746f52c8d..63a3074f8b 100644
--- a/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.h
+++ b/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.h
@@ -1,5 +1,5 @@
/* Processor capability information handling macros - aarch64 version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DL_PROCINFO_H
#define _DL_PROCINFO_H 1
diff --git a/sysdeps/unix/sysv/linux/aarch64/dl-static.c b/sysdeps/unix/sysv/linux/aarch64/dl-static.c
index 13694b2a9e..b444723a6f 100644
--- a/sysdeps/unix/sysv/linux/aarch64/dl-static.c
+++ b/sysdeps/unix/sysv/linux/aarch64/dl-static.c
@@ -1,5 +1,5 @@
/* Variable initialization. AArch64 version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ldsodefs.h>
diff --git a/sysdeps/unix/sysv/linux/aarch64/getcontext.S b/sysdeps/unix/sysv/linux/aarch64/getcontext.S
index 479e8bf3b4..c84b210f2e 100644
--- a/sysdeps/unix/sysv/linux/aarch64/getcontext.S
+++ b/sysdeps/unix/sysv/linux/aarch64/getcontext.S
@@ -1,6 +1,6 @@
/* Save current context.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "ucontext_i.h"
diff --git a/sysdeps/unix/sysv/linux/aarch64/gettimeofday.c b/sysdeps/unix/sysv/linux/aarch64/gettimeofday.c
index 8ff83e4e7d..7e772e05ce 100644
--- a/sysdeps/unix/sysv/linux/aarch64/gettimeofday.c
+++ b/sysdeps/unix/sysv/linux/aarch64/gettimeofday.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2018 Free Software Foundation, Inc.
+/* Copyright (C) 2018-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -14,58 +14,45 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Get the current time of day and timezone information,
putting it into *tv and *tz. If tz is null, *tz is not filled.
Returns 0 on success, -1 on errors. */
-#ifdef SHARED
+#include <time.h>
+#include <sysdep.h>
-# define __gettimeofday __redirect___gettimeofday
-# include <sys/time.h>
-# undef __gettimeofday
+#ifdef HAVE_GETTIMEOFDAY_VSYSCALL
# define HAVE_VSYSCALL
-# include <dl-vdso.h>
-# include <sysdep-vdso.h>
+#endif
+#include <sysdep-vdso.h>
/* Used as a fallback in the ifunc resolver if VDSO is not available
and for libc.so internal __gettimeofday calls. */
-
static int
-__gettimeofday_vsyscall (struct timeval *tv, struct timezone *tz)
+__gettimeofday_vsyscall (struct timeval *restrict tv, void *restrict tz)
{
+ if (__glibc_unlikely (tz != 0))
+ memset (tz, 0, sizeof *tz);
+
return INLINE_VSYSCALL (gettimeofday, 2, tv, tz);
}
-/* PREPARE_VERSION will need an __LP64__ ifdef when ILP32 support
- goes in. See _libc_vdso_platform_setup in
- sysdeps/unix/sysv/linux/aarch64/init-first.c. */
-
-# undef INIT_ARCH
-# define INIT_ARCH() \
- PREPARE_VERSION (linux_version, "LINUX_2.6.39", 123718537); \
- void *vdso_gettimeofday = \
- _dl_vdso_vsym ("__kernel_gettimeofday", &linux_version);
-
-libc_ifunc_hidden (__redirect___gettimeofday, __gettimeofday,
- vdso_gettimeofday ?: (void *) __gettimeofday_vsyscall)
+#ifdef SHARED
+# include <dl-vdso.h>
+# include <sysdep-vdso.h>
-__hidden_ver1 (__gettimeofday_vsyscall, __GI___gettimeofday,
- __gettimeofday_vsyscall);
+# define INIT_ARCH()
+libc_ifunc (__gettimeofday,
+ (get_vdso_symbol (HAVE_GETTIMEOFDAY_VSYSCALL)
+ ?: __gettimeofday_vsyscall))
#else
-
-# include <sys/time.h>
-# include <sysdep.h>
int
-__gettimeofday (struct timeval *tv, struct timezone *tz)
+__gettimeofday (struct timeval *restrict tv, void *restrict tz)
{
- return INLINE_SYSCALL (gettimeofday, 2, tv, tz);
+ return __gettimeofday_vsyscall (tv, tz);
}
-libc_hidden_def (__gettimeofday)
-
#endif
-
weak_alias (__gettimeofday, gettimeofday)
-libc_hidden_weak (gettimeofday)
diff --git a/sysdeps/unix/sysv/linux/aarch64/init-first.c b/sysdeps/unix/sysv/linux/aarch64/init-first.c
deleted file mode 100644
index 4c1895a1b9..0000000000
--- a/sysdeps/unix/sysv/linux/aarch64/init-first.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/* Copyright (C) 2007-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifdef SHARED
-# include <dl-vdso.h>
-# include <libc-vdso.h>
-
-int (*VDSO_SYMBOL(gettimeofday)) (struct timeval *, void *) attribute_hidden;
-int (*VDSO_SYMBOL(clock_gettime)) (clockid_t, struct timespec *);
-int (*VDSO_SYMBOL(clock_getres)) (clockid_t, struct timespec *);
-
-static inline void
-_libc_vdso_platform_setup (void)
-{
-#ifdef __LP64__
- PREPARE_VERSION (linux_version, "LINUX_2.6.39", 123718537);
-#else
- PREPARE_VERSION (linux_version, "LINUX_4.9", 61765625);
-#endif
-
- void *p = _dl_vdso_vsym ("__kernel_gettimeofday", &linux_version);
- PTR_MANGLE (p);
- VDSO_SYMBOL(gettimeofday) = p;
-
- p = _dl_vdso_vsym ("__kernel_clock_gettime", &linux_version);
- PTR_MANGLE (p);
- VDSO_SYMBOL(clock_gettime) = p;
-
- p = _dl_vdso_vsym ("__kernel_clock_getres", &linux_version);
- PTR_MANGLE (p);
- VDSO_SYMBOL(clock_getres) = p;
-}
-
-# define VDSO_SETUP _libc_vdso_platform_setup
-#endif
-
-#include <csu/init-first.c>
diff --git a/sysdeps/unix/sysv/linux/aarch64/ioctl.S b/sysdeps/unix/sysv/linux/aarch64/ioctl.S
index e53e5d7710..31c2021d01 100644
--- a/sysdeps/unix/sysv/linux/aarch64/ioctl.S
+++ b/sysdeps/unix/sysv/linux/aarch64/ioctl.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/aarch64/ipc_priv.h b/sysdeps/unix/sysv/linux/aarch64/ipc_priv.h
index db527f3fbb..bd410dbd66 100644
--- a/sysdeps/unix/sysv/linux/aarch64/ipc_priv.h
+++ b/sysdeps/unix/sysv/linux/aarch64/ipc_priv.h
@@ -1,5 +1,5 @@
/* Old SysV permission definition for Linux. AArch64 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/ipc.h> /* For __key_t */
diff --git a/sysdeps/unix/sysv/linux/aarch64/kernel-features.h b/sysdeps/unix/sysv/linux/aarch64/kernel-features.h
index 9cfa51471c..1ca02cedc4 100644
--- a/sysdeps/unix/sysv/linux/aarch64/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/aarch64/kernel-features.h
@@ -1,6 +1,6 @@
/* Set flags signalling availability of kernel features based on given
kernel version number. AArch64 version.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include_next <kernel-features.h>
diff --git a/sysdeps/unix/sysv/linux/aarch64/kernel_rt_sigframe.h b/sysdeps/unix/sysv/linux/aarch64/kernel_rt_sigframe.h
index 599786f7b9..21a736b5a8 100644
--- a/sysdeps/unix/sysv/linux/aarch64/kernel_rt_sigframe.h
+++ b/sysdeps/unix/sysv/linux/aarch64/kernel_rt_sigframe.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This structure must have the same shape as the linux kernel
equivalent. */
diff --git a/sysdeps/unix/sysv/linux/aarch64/ldconfig.h b/sysdeps/unix/sysv/linux/aarch64/ldconfig.h
index 5cbc2ca38f..658cf7981e 100644
--- a/sysdeps/unix/sysv/linux/aarch64/ldconfig.h
+++ b/sysdeps/unix/sysv/linux/aarch64/ldconfig.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/generic/ldconfig.h>
diff --git a/sysdeps/unix/sysv/linux/aarch64/ldsodefs.h b/sysdeps/unix/sysv/linux/aarch64/ldsodefs.h
index ff88292cec..42c4960549 100644
--- a/sysdeps/unix/sysv/linux/aarch64/ldsodefs.h
+++ b/sysdeps/unix/sysv/linux/aarch64/ldsodefs.h
@@ -1,6 +1,6 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
AArch64 version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LDSODEFS_H
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc-__read_tp.S b/sysdeps/unix/sysv/linux/aarch64/libc-__read_tp.S
index 6f95d29f92..23c5141b39 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc-__read_tp.S
+++ b/sysdeps/unix/sysv/linux/aarch64/libc-__read_tp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <__read_tp.S>
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc-start.c b/sysdeps/unix/sysv/linux/aarch64/libc-start.c
index dd17deaea5..770ce0554e 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc-start.c
+++ b/sysdeps/unix/sysv/linux/aarch64/libc-start.c
@@ -1,5 +1,5 @@
/* Override csu/libc-start.c on AArch64.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef SHARED
# include <ldsodefs.h>
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc-vdso.h b/sysdeps/unix/sysv/linux/aarch64/libc-vdso.h
deleted file mode 100644
index 65b2228662..0000000000
--- a/sysdeps/unix/sysv/linux/aarch64/libc-vdso.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (C) 2009-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _LIBC_VDSO_H
-#define _LIBC_VDSO_H
-
-#ifdef SHARED
-
-# include <sysdep-vdso.h>
-
-extern int (*VDSO_SYMBOL(gettimeofday)) (struct timeval *, void *)
- attribute_hidden;
-extern int (*VDSO_SYMBOL(clock_gettime)) (clockid_t, struct timespec *);
-extern int (*VDSO_SYMBOL(clock_getres)) (clockid_t, struct timespec *);
-
-#endif
-
-#endif /* _LIBC_VDSO_H */
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 15f966f841..a4c31932cb 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -2138,3 +2138,10 @@ GLIBC_2.28 thrd_current F
GLIBC_2.28 thrd_equal F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
+GLIBC_2.29 getcpu F
+GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
+GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
+GLIBC_2.30 getdents64 F
+GLIBC_2.30 gettid F
+GLIBC_2.30 tgkill F
+GLIBC_2.30 twalk_r F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libm.abilist b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
index 37e99a91bc..62e1fee467 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
@@ -1032,3 +1032,24 @@ GLIBC_2.28 fmul F
GLIBC_2.28 fmull F
GLIBC_2.28 fsub F
GLIBC_2.28 fsubl F
+GLIBC_2.29 exp F
+GLIBC_2.29 exp2 F
+GLIBC_2.29 log F
+GLIBC_2.29 log2 F
+GLIBC_2.29 pow F
+GLIBC_2.31 totalorder F
+GLIBC_2.31 totalorderf F
+GLIBC_2.31 totalorderf128 F
+GLIBC_2.31 totalorderf32 F
+GLIBC_2.31 totalorderf32x F
+GLIBC_2.31 totalorderf64 F
+GLIBC_2.31 totalorderf64x F
+GLIBC_2.31 totalorderl F
+GLIBC_2.31 totalordermag F
+GLIBC_2.31 totalordermagf F
+GLIBC_2.31 totalordermagf128 F
+GLIBC_2.31 totalordermagf32 F
+GLIBC_2.31 totalordermagf32x F
+GLIBC_2.31 totalordermagf64 F
+GLIBC_2.31 totalordermagf64x F
+GLIBC_2.31 totalordermagl F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
index 9a9e4cee85..98a8473fcd 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
@@ -11,7 +11,6 @@ GLIBC_2.17 __libc_allocate_rtsig F
GLIBC_2.17 __libc_current_sigrtmax F
GLIBC_2.17 __libc_current_sigrtmin F
GLIBC_2.17 __lseek F
-GLIBC_2.17 __nanosleep F
GLIBC_2.17 __open F
GLIBC_2.17 __open64 F
GLIBC_2.17 __pread64 F
@@ -45,7 +44,6 @@ GLIBC_2.17 __read F
GLIBC_2.17 __res_state F
GLIBC_2.17 __send F
GLIBC_2.17 __sigaction F
-GLIBC_2.17 __vfork F
GLIBC_2.17 __wait F
GLIBC_2.17 __write F
GLIBC_2.17 _pthread_cleanup_pop F
@@ -65,29 +63,20 @@ GLIBC_2.17 longjmp F
GLIBC_2.17 lseek F
GLIBC_2.17 lseek64 F
GLIBC_2.17 msync F
-GLIBC_2.17 nanosleep F
GLIBC_2.17 open F
GLIBC_2.17 open64 F
GLIBC_2.17 pause F
GLIBC_2.17 pread F
GLIBC_2.17 pread64 F
-GLIBC_2.17 pthread_attr_destroy F
GLIBC_2.17 pthread_attr_getaffinity_np F
-GLIBC_2.17 pthread_attr_getdetachstate F
GLIBC_2.17 pthread_attr_getguardsize F
-GLIBC_2.17 pthread_attr_getinheritsched F
-GLIBC_2.17 pthread_attr_getschedparam F
GLIBC_2.17 pthread_attr_getschedpolicy F
GLIBC_2.17 pthread_attr_getscope F
GLIBC_2.17 pthread_attr_getstack F
GLIBC_2.17 pthread_attr_getstackaddr F
GLIBC_2.17 pthread_attr_getstacksize F
-GLIBC_2.17 pthread_attr_init F
GLIBC_2.17 pthread_attr_setaffinity_np F
-GLIBC_2.17 pthread_attr_setdetachstate F
GLIBC_2.17 pthread_attr_setguardsize F
-GLIBC_2.17 pthread_attr_setinheritsched F
-GLIBC_2.17 pthread_attr_setschedparam F
GLIBC_2.17 pthread_attr_setschedpolicy F
GLIBC_2.17 pthread_attr_setscope F
GLIBC_2.17 pthread_attr_setstack F
@@ -115,7 +104,6 @@ GLIBC_2.17 pthread_condattr_setclock F
GLIBC_2.17 pthread_condattr_setpshared F
GLIBC_2.17 pthread_create F
GLIBC_2.17 pthread_detach F
-GLIBC_2.17 pthread_equal F
GLIBC_2.17 pthread_exit F
GLIBC_2.17 pthread_getaffinity_np F
GLIBC_2.17 pthread_getattr_np F
@@ -171,7 +159,6 @@ GLIBC_2.17 pthread_rwlockattr_getpshared F
GLIBC_2.17 pthread_rwlockattr_init F
GLIBC_2.17 pthread_rwlockattr_setkind_np F
GLIBC_2.17 pthread_rwlockattr_setpshared F
-GLIBC_2.17 pthread_self F
GLIBC_2.17 pthread_setaffinity_np F
GLIBC_2.17 pthread_setcancelstate F
GLIBC_2.17 pthread_setcanceltype F
@@ -216,7 +203,6 @@ GLIBC_2.17 siglongjmp F
GLIBC_2.17 sigwait F
GLIBC_2.17 system F
GLIBC_2.17 tcdrain F
-GLIBC_2.17 vfork F
GLIBC_2.17 wait F
GLIBC_2.17 waitpid F
GLIBC_2.17 write F
@@ -243,3 +229,9 @@ GLIBC_2.28 tss_create F
GLIBC_2.28 tss_delete F
GLIBC_2.28 tss_get F
GLIBC_2.28 tss_set F
+GLIBC_2.30 pthread_cond_clockwait F
+GLIBC_2.30 pthread_mutex_clocklock F
+GLIBC_2.30 pthread_rwlock_clockrdlock F
+GLIBC_2.30 pthread_rwlock_clockwrlock F
+GLIBC_2.30 sem_clockwait F
+GLIBC_2.31 pthread_clockjoin_np F
diff --git a/sysdeps/unix/sysv/linux/aarch64/makecontext.c b/sysdeps/unix/sysv/linux/aarch64/makecontext.c
index 112adc21fe..c71a8a0130 100644
--- a/sysdeps/unix/sysv/linux/aarch64/makecontext.c
+++ b/sysdeps/unix/sysv/linux/aarch64/makecontext.c
@@ -1,5 +1,5 @@
/* Create new context.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <stdarg.h>
diff --git a/sysdeps/unix/sysv/linux/aarch64/profil-counter.h b/sysdeps/unix/sysv/linux/aarch64/profil-counter.h
deleted file mode 100644
index 67e6211e2f..0000000000
--- a/sysdeps/unix/sysv/linux/aarch64/profil-counter.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Copyright (C) 2009-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-/* We can use the ix86 version. */
-#include <sysdeps/unix/sysv/linux/i386/profil-counter.h>
diff --git a/sysdeps/unix/sysv/linux/aarch64/pt-vfork.c b/sysdeps/unix/sysv/linux/aarch64/pt-vfork.c
deleted file mode 100644
index 2b277f25ec..0000000000
--- a/sysdeps/unix/sysv/linux/aarch64/pt-vfork.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/* vfork ABI-compatibility entry points for libpthread.
- Copyright (C) 2014-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <shlib-compat.h>
-
-/* libpthread used to have its own vfork implementation that differed
- from libc's only in having a pointless micro-optimization. There
- is no longer any use to having a separate copy in libpthread, but
- the historical ABI requires it. For static linking, there is no
- need to provide anything here--the libc version will be linked in.
- For shared library ABI compatibility, there must be __vfork and
- vfork symbols in libpthread.so. */
-
-#if HAVE_IFUNC
-# include <nptl/pt-vfork.c>
-#elif (SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_20) \
- || SHLIB_COMPAT (libpthread, GLIBC_2_1_2, GLIBC_2_20))
-
-/* Thankfully, on AArch64 we can rely on the compiler generating
- a tail call here. */
-
-extern void __libc_vfork (void);
-
-void
-vfork_compat (void)
-{
- __libc_vfork ();
-}
-
-# if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_20)
-compat_symbol (libpthread, vfork_compat, vfork, GLIBC_2_0);
-# endif
-
-# if SHLIB_COMPAT (libpthread, GLIBC_2_1_2, GLIBC_2_20)
-strong_alias (vfork_compat, vfork_compat2)
-compat_symbol (libpthread, vfork_compat2, __vfork, GLIBC_2_1_2);
-# endif
-
-#endif
diff --git a/sysdeps/unix/sysv/linux/aarch64/readelflib.c b/sysdeps/unix/sysv/linux/aarch64/readelflib.c
index 81b575101f..2fc3d1374f 100644
--- a/sysdeps/unix/sysv/linux/aarch64/readelflib.c
+++ b/sysdeps/unix/sysv/linux/aarch64/readelflib.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-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
@@ -13,6 +13,6 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "../arm/readelflib.c"
diff --git a/sysdeps/unix/sysv/linux/aarch64/setcontext.S b/sysdeps/unix/sysv/linux/aarch64/setcontext.S
index 604ed19f61..ac39ffcdf3 100644
--- a/sysdeps/unix/sysv/linux/aarch64/setcontext.S
+++ b/sysdeps/unix/sysv/linux/aarch64/setcontext.S
@@ -1,6 +1,6 @@
/* Set current context.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "ucontext_i.h"
diff --git a/sysdeps/unix/sysv/linux/aarch64/sigaction.c b/sysdeps/unix/sysv/linux/aarch64/sigaction.c
index fef195eefb..1e7198c6cf 100644
--- a/sysdeps/unix/sysv/linux/aarch64/sigaction.c
+++ b/sysdeps/unix/sysv/linux/aarch64/sigaction.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Required for AArch32 compatibility. */
#define SA_RESTORER 0x04000000
diff --git a/sysdeps/unix/sysv/linux/aarch64/sigcontextinfo.h b/sysdeps/unix/sysv/linux/aarch64/sigcontextinfo.h
index 04596eff9c..6f50f4ee0d 100644
--- a/sysdeps/unix/sysv/linux/aarch64/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/aarch64/sigcontextinfo.h
@@ -1,5 +1,5 @@
/* AArch64 definitions for signal handling calling conventions.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,22 +14,18 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SIGCONTEXTINFO_H
+#define _SIGCONTEXTINFO_H
#include <stdint.h>
#include <sys/ucontext.h>
-#define SIGCONTEXT siginfo_t *_si, ucontext_t *
-#define GET_PC(ctx) ((void *) (uintptr_t) (ctx)->uc_mcontext.pc)
-
-/* There is no reliable way to get the sigcontext unless we use a
- three-argument signal handler. */
-#define __sigaction(sig, act, oact) ({ \
- (act)->sa_flags |= SA_SIGINFO; \
- (__sigaction) (sig, act, oact); \
-})
+static inline uintptr_t
+sigcontext_get_pc (const ucontext_t *ctx)
+{
+ return ctx->uc_mcontext.pc;
+}
-#define sigaction(sig, act, oact) ({ \
- (act)->sa_flags |= SA_SIGINFO; \
- (sigaction) (sig, act, oact); \
-})
+#endif
diff --git a/sysdeps/unix/sysv/linux/aarch64/swapcontext.S b/sysdeps/unix/sysv/linux/aarch64/swapcontext.S
index 3f57a519ed..375648419a 100644
--- a/sysdeps/unix/sysv/linux/aarch64/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/aarch64/swapcontext.S
@@ -1,6 +1,6 @@
/* Modify saved context.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/aarch64/sys/elf.h b/sysdeps/unix/sysv/linux/aarch64/sys/elf.h
index 1e87fd9665..3fbc761912 100644
--- a/sysdeps/unix/sysv/linux/aarch64/sys/elf.h
+++ b/sysdeps/unix/sysv/linux/aarch64/sys/elf.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_ELF_H
#define _SYS_ELF_H 1
diff --git a/sysdeps/unix/sysv/linux/aarch64/sys/procfs.h b/sysdeps/unix/sysv/linux/aarch64/sys/procfs.h
deleted file mode 100644
index d48ba39551..0000000000
--- a/sysdeps/unix/sysv/linux/aarch64/sys/procfs.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/* Copyright (C) 1996-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_PROCFS_H
-#define _SYS_PROCFS_H 1
-
-/* This is somewhat modelled after the file of the same name on SVR4
- systems. It provides a definition of the core file format for ELF
- used on Linux. It doesn't have anything to do with the /proc file
- system, even though Linux has one.
-
- Anyway, the whole purpose of this file is for GDB and GDB only.
- Don't read too much into it. Don't use it for anything other than
- GDB unless you know what you are doing. */
-
-#include <features.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#include <sys/user.h>
-
-__BEGIN_DECLS
-
-/* Type for a general-purpose register. */
-typedef __uint64_t elf_greg_t;
-
-/* And the whole bunch of them. We could have used `struct
- pt_regs' directly in the typedef, but tradition says that
- the register set is an array, which does have some peculiar
- semantics, so leave it that way. */
-#define ELF_NGREG (sizeof (struct user_regs_struct) / sizeof(elf_greg_t))
-typedef elf_greg_t elf_gregset_t[ELF_NGREG];
-
-/* Register set for the floating-point registers. */
-typedef struct user_fpsimd_struct elf_fpregset_t;
-
-/* Signal info. */
-struct elf_siginfo
- {
- int si_signo; /* Signal number. */
- int si_code; /* Extra code. */
- int si_errno; /* Errno. */
- };
-
-/* Definitions to generate Intel SVR4-like core files. These mostly
- have the same names as the SVR4 types with "elf_" tacked on the
- front to prevent clashes with Linux definitions, and the typedef
- forms have been avoided. This is mostly like the SVR4 structure,
- but more Linuxy, with things that Linux does not support and which
- GDB doesn't really use excluded. */
-
-struct elf_prstatus
- {
- struct elf_siginfo pr_info; /* Info associated with signal. */
- short int pr_cursig; /* Current signal. */
- unsigned long int pr_sigpend; /* Set of pending signals. */
- unsigned long int pr_sighold; /* Set of held signals. */
- __pid_t pr_pid;
- __pid_t pr_ppid;
- __pid_t pr_pgrp;
- __pid_t pr_sid;
- struct timeval pr_utime; /* User time. */
- struct timeval pr_stime; /* System time. */
- struct timeval pr_cutime; /* Cumulative user time. */
- struct timeval pr_cstime; /* Cumulative system time. */
- elf_gregset_t pr_reg; /* GP registers. */
- int pr_fpvalid; /* True if math copro being used. */
- };
-
-
-#define ELF_PRARGSZ (80) /* Number of chars for args. */
-
-struct elf_prpsinfo
- {
- char pr_state; /* Numeric process state. */
- char pr_sname; /* Char for pr_state. */
- char pr_zomb; /* Zombie. */
- char pr_nice; /* Nice val. */
- unsigned long int pr_flag; /* Flags. */
- unsigned int pr_uid;
- unsigned int pr_gid;
- int pr_pid, pr_ppid, pr_pgrp, pr_sid;
- /* Lots missing */
- char pr_fname[16]; /* Filename of executable. */
- char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
- };
-
-/* The rest of this file provides the types for emulation of the
- Solaris <proc_service.h> interfaces that should be implemented by
- users of libthread_db. */
-
-/* Addresses. */
-typedef void *psaddr_t;
-
-/* Register sets. Linux has different names. */
-typedef elf_gregset_t prgregset_t;
-typedef elf_fpregset_t prfpregset_t;
-
-/* We don't have any differences between processes and threads,
- therefore have only one PID type. */
-typedef __pid_t lwpid_t;
-
-/* Process status and info. In the end we do provide typedefs for them. */
-typedef struct elf_prstatus prstatus_t;
-typedef struct elf_prpsinfo prpsinfo_t;
-
-__END_DECLS
-
-#endif /* sys/procfs.h */
diff --git a/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h b/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h
index 93e373c3ad..5f724aeffe 100644
--- a/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h
+++ b/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h
@@ -1,5 +1,5 @@
/* `ptrace' debugger support interface. Linux/AArch64 version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_PTRACE_H
#define _SYS_PTRACE_H 1
@@ -136,8 +136,12 @@ enum __ptrace_request
#define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER
/* Get seccomp BPF filter metadata. */
- PTRACE_SECCOMP_GET_METADATA = 0x420d
+ PTRACE_SECCOMP_GET_METADATA = 0x420d,
#define PTRACE_SECCOMP_GET_METADATA PTRACE_SECCOMP_GET_METADATA
+
+ /* Get information about system call. */
+ PTRACE_GET_SYSCALL_INFO = 0x420e
+#define PTRACE_GET_SYSCALL_INFO PTRACE_GET_SYSCALL_INFO
};
diff --git a/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h b/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h
index f1b3ab59e2..298e405eec 100644
--- a/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* System V/AArch64 ABI compliant context switching support. */
diff --git a/sysdeps/unix/sysv/linux/aarch64/sys/user.h b/sysdeps/unix/sysv/linux/aarch64/sys/user.h
index 14993c9c85..d86412e9a7 100644
--- a/sysdeps/unix/sysv/linux/aarch64/sys/user.h
+++ b/sysdeps/unix/sysv/linux/aarch64/sys/user.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_USER_H
#define _SYS_USER_H 1
diff --git a/sysdeps/unix/sysv/linux/aarch64/syscall.S b/sysdeps/unix/sysv/linux/aarch64/syscall.S
index c5c5e2416f..d020afc395 100644
--- a/sysdeps/unix/sysv/linux/aarch64/syscall.S
+++ b/sysdeps/unix/sysv/linux/aarch64/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/aarch64/sysconf.c b/sysdeps/unix/sysv/linux/aarch64/sysconf.c
index c560f45f37..d77f59798f 100644
--- a/sysdeps/unix/sysv/linux/aarch64/sysconf.c
+++ b/sysdeps/unix/sysv/linux/aarch64/sysconf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2017-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <stdbool.h>
diff --git a/sysdeps/unix/sysv/linux/aarch64/sysdep.c b/sysdeps/unix/sysv/linux/aarch64/sysdep.c
index 7c3a05b5ff..fcf5b6ec8f 100644
--- a/sysdeps/unix/sysv/linux/aarch64/sysdep.c
+++ b/sysdeps/unix/sysv/linux/aarch64/sysdep.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <errno.h>
diff --git a/sysdeps/unix/sysv/linux/aarch64/sysdep.h b/sysdeps/unix/sysv/linux/aarch64/sysdep.h
index 9ac2f0702a..53b515aab6 100644
--- a/sysdeps/unix/sysv/linux/aarch64/sysdep.h
+++ b/sysdeps/unix/sysv/linux/aarch64/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LINUX_AARCH64_SYSDEP_H
#define _LINUX_AARCH64_SYSDEP_H 1
@@ -151,11 +151,18 @@
#else /* not __ASSEMBLER__ */
+# ifdef __LP64__
+# define VDSO_NAME "LINUX_2.6.39"
+# define VDSO_HASH 123718537
+# else
+# define VDSO_NAME "LINUX_4.9"
+# define VDSO_HASH 61765625
+# endif
/* List of system calls which are supported as vsyscalls. */
-# define HAVE_CLOCK_GETRES_VSYSCALL 1
-# define HAVE_CLOCK_GETTIME_VSYSCALL 1
-# define HAVE_GETTIMEOFDAY_VSYSCALL 1
+# define HAVE_CLOCK_GETRES_VSYSCALL "__kernel_clock_getres"
+# define HAVE_CLOCK_GETTIME_VSYSCALL "__kernel_clock_gettime"
+# define HAVE_GETTIMEOFDAY_VSYSCALL "__kernel_gettimeofday"
/* Previously AArch64 used the generic version without the libc_hidden_def
which lead in a non existent __send symbol in libc.so. */
@@ -252,9 +259,9 @@
#endif /* __ASSEMBLER__ */
/* Pointer mangling is supported for AArch64. */
-#if (IS_IN (rtld) || \
- (!defined SHARED && (IS_IN (libc) \
- || IS_IN (libpthread))))
+#if (IS_IN (rtld) \
+ || (!defined SHARED && (IS_IN (libc) \
+ || IS_IN (libpthread))))
# ifdef __ASSEMBLER__
/* Note, dst, src, guard, and tmp are all register numbers rather than
register names so they will work with both ILP32 and LP64. */
diff --git a/sysdeps/unix/sysv/linux/aarch64/ucontext-internal.h b/sysdeps/unix/sysv/linux/aarch64/ucontext-internal.h
index 0ecfdd7a4c..791bd8b480 100644
--- a/sysdeps/unix/sysv/linux/aarch64/ucontext-internal.h
+++ b/sysdeps/unix/sysv/linux/aarch64/ucontext-internal.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define SP_ALIGN_SIZE 15
diff --git a/sysdeps/unix/sysv/linux/aarch64/vfork.S b/sysdeps/unix/sysv/linux/aarch64/vfork.S
index 9986fbddf5..6a51c4394d 100644
--- a/sysdeps/unix/sysv/linux/aarch64/vfork.S
+++ b/sysdeps/unix/sysv/linux/aarch64/vfork.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#define _ERRNO_H 1
diff --git a/sysdeps/unix/sysv/linux/accept.c b/sysdeps/unix/sysv/linux/accept.c
index 4d8c0e3593..9fb6966dff 100644
--- a/sysdeps/unix/sysv/linux/accept.c
+++ b/sysdeps/unix/sysv/linux/accept.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2015-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/socket.h>
#include <sysdep-cancel.h>
diff --git a/sysdeps/unix/sysv/linux/accept4.c b/sysdeps/unix/sysv/linux/accept4.c
index 8317c6843f..963be98d43 100644
--- a/sysdeps/unix/sysv/linux/accept4.c
+++ b/sysdeps/unix/sysv/linux/accept4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2008.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/sysdeps/unix/sysv/linux/access.c b/sysdeps/unix/sysv/linux/access.c
index 2da8e68f47..f9fd6e64cf 100644
--- a/sysdeps/unix/sysv/linux/access.c
+++ b/sysdeps/unix/sysv/linux/access.c
@@ -1,5 +1,5 @@
/* Linux implementation for access function.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fcntl.h>
#include <unistd.h>
@@ -29,4 +29,5 @@ __access (const char *file, int type)
return INLINE_SYSCALL_CALL (faccessat, AT_FDCWD, file, type);
#endif
}
+libc_hidden_def (__access)
weak_alias (__access, access)
diff --git a/sysdeps/unix/sysv/linux/adjtime.c b/sysdeps/unix/sysv/linux/adjtime.c
index 6edecb70e8..6b8021caa3 100644
--- a/sysdeps/unix/sysv/linux/adjtime.c
+++ b/sysdeps/unix/sysv/linux/adjtime.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <limits.h>
@@ -23,39 +23,14 @@
#define MAX_SEC (INT_MAX / 1000000L - 2)
#define MIN_SEC (INT_MIN / 1000000L + 2)
-#ifndef MOD_OFFSET
-#define modes mode
-#endif
-
-#ifndef TIMEVAL
-#define TIMEVAL timeval
-#endif
-
-#ifndef TIMEX
-#define TIMEX timex
-#endif
-
-#ifndef ADJTIME
-#define ADJTIME __adjtime
-#endif
-
-#ifndef ADJTIMEX
-#define NO_LOCAL_ADJTIME
-#define ADJTIMEX(x) __adjtimex (x)
-#endif
-
-#ifndef LINKAGE
-#define LINKAGE
-#endif
-
-LINKAGE int
-ADJTIME (const struct TIMEVAL *itv, struct TIMEVAL *otv)
+int
+__adjtime (const struct timeval *itv, struct timeval *otv)
{
- struct TIMEX tntx;
+ struct timex tntx;
if (itv)
{
- struct TIMEVAL tmp;
+ struct timeval tmp;
/* We will do some check here. */
tmp.tv_sec = itv->tv_sec + itv->tv_usec / 1000000L;
@@ -68,7 +43,7 @@ ADJTIME (const struct TIMEVAL *itv, struct TIMEVAL *otv)
else
tntx.modes = ADJ_OFFSET_SS_READ;
- if (__glibc_unlikely (ADJTIMEX (&tntx) < 0))
+ if (__glibc_unlikely (__adjtimex (&tntx) < 0))
return -1;
if (otv)
@@ -87,6 +62,9 @@ ADJTIME (const struct TIMEVAL *itv, struct TIMEVAL *otv)
return 0;
}
-#ifdef NO_LOCAL_ADJTIME
+#ifdef VERSION_adjtime
+weak_alias (__adjtime, __wadjtime);
+default_symbol_version (__wadjtime, adjtime, VERSION_adjtime);
+#else
weak_alias (__adjtime, adjtime)
#endif
diff --git a/sysdeps/unix/sysv/linux/adjtimex.c b/sysdeps/unix/sysv/linux/adjtimex.c
new file mode 100644
index 0000000000..95be503109
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/adjtimex.c
@@ -0,0 +1,40 @@
+/* Tune kernel clock. Linux specific syscall.
+ 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; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/timex.h>
+#include <sysdep.h>
+
+int
+___adjtimex (struct timex *buf)
+{
+ return __clock_adjtime (CLOCK_REALTIME, buf);
+}
+
+#ifdef VERSION_adjtimex
+weak_alias (___adjtimex, __wadjtimex);
+weak_alias (___adjtimex, __wnadjtime);
+default_symbol_version (___adjtimex, __adjtimex, VERSION_adjtimex);
+default_symbol_version (__wadjtimex, adjtimex, VERSION_adjtimex);
+default_symbol_version (__wnadjtime, ntp_adjtime, VERSION_adjtimex);
+libc_hidden_ver (___adjtimex, __adjtimex);
+#else
+strong_alias (___adjtimex, __adjtimex)
+weak_alias (___adjtimex, adjtimex)
+weak_alias (___adjtimex, ntp_adjtime)
+libc_hidden_def (__adjtimex)
+#endif
diff --git a/sysdeps/unix/sysv/linux/aio_misc.h b/sysdeps/unix/sysv/linux/aio_misc.h
index 0d8aa45516..92159f3aaf 100644
--- a/sysdeps/unix/sysv/linux/aio_misc.h
+++ b/sysdeps/unix/sysv/linux/aio_misc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 2004.
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#ifndef _AIO_MISC_H
# include_next <aio_misc.h>
diff --git a/sysdeps/unix/sysv/linux/aio_sigqueue.c b/sysdeps/unix/sysv/linux/aio_sigqueue.c
index 536f2ee9f5..6ef03b8e35 100644
--- a/sysdeps/unix/sysv/linux/aio_sigqueue.c
+++ b/sysdeps/unix/sysv/linux/aio_sigqueue.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <aio.h>
#include <errno.h>
diff --git a/sysdeps/unix/sysv/linux/alpha/Makefile b/sysdeps/unix/sysv/linux/alpha/Makefile
index 50f4fb1183..2e132e474b 100644
--- a/sysdeps/unix/sysv/linux/alpha/Makefile
+++ b/sysdeps/unix/sysv/linux/alpha/Makefile
@@ -9,7 +9,7 @@ sysdep_routines += ieee_get_fp_control ieee_set_fp_control \
ioperm
# Support old timeval32 entry points
-sysdep_routines += osf_gettimeofday osf_settimeofday \
+sysdep_routines += osf_adjtime osf_gettimeofday osf_settimeofday \
osf_getitimer osf_setitimer osf_utimes \
osf_getrusage osf_wait4
@@ -31,7 +31,7 @@ libm-routines += multc3 divtc3
endif # math
ifeq ($(subdir),nptl)
-# pull in __syscall_error routine, __sigprocmask, __syscall_rt_sigaction
+# pull in __syscall_error routine, __sigprocmask, sigaction stubs.
libpthread-routines += sysdep sigprocmask rt_sigaction
libpthread-shared-only-routines += sysdep sigprocmask rt_sigaction
endif
diff --git a/sysdeps/unix/sysv/linux/alpha/____longjmp_chk.S b/sysdeps/unix/sysv/linux/alpha/____longjmp_chk.S
index de5496175b..12396ae759 100644
--- a/sysdeps/unix/sysv/linux/alpha/____longjmp_chk.S
+++ b/sysdeps/unix/sysv/linux/alpha/____longjmp_chk.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <jmpbuf-offsets.h>
diff --git a/sysdeps/unix/sysv/linux/alpha/a.out.h b/sysdeps/unix/sysv/linux/alpha/a.out.h
index a7699f0fe0..901b914d86 100644
--- a/sysdeps/unix/sysv/linux/alpha/a.out.h
+++ b/sysdeps/unix/sysv/linux/alpha/a.out.h
@@ -72,8 +72,8 @@ struct exec
#define a_gpvalue ah.gpvalue
-#define AOUTHSZ sizeof(struct aouthdr)
-#define SCNHSZ sizeof(struct scnhdr)
+#define AOUTHSZ sizeof (struct aouthdr)
+#define SCNHSZ sizeof (struct scnhdr)
#define SCNROUND 16
enum machine_type
@@ -123,9 +123,9 @@ enum machine_type
&& N_MAGIC(x) != ZMAGIC && N_MAGIC(x) != QMAGIC)
#define _N_HDROFF(x) (1024 - sizeof (struct exec))
#define N_TXTOFF(x) \
- ((long) N_MAGIC(x) == ZMAGIC ? 0 : \
- (sizeof (struct exec) + (x).fh.f_nscns * SCNHSZ + SCNROUND - 1) \
- & ~(SCNROUND - 1))
+ ((long) N_MAGIC(x) == ZMAGIC ? 0 \
+ : ((sizeof (struct exec) + (x).fh.f_nscns * SCNHSZ + SCNROUND - 1) \
+ & ~(SCNROUND - 1)))
#define N_DATOFF(x) (N_TXTOFF(x) + (x).a_text)
#define N_TRELOFF(x) (N_DATOFF(x) + (x).a_data)
diff --git a/sysdeps/unix/sysv/linux/alpha/adjtime.c b/sysdeps/unix/sysv/linux/alpha/adjtime.c
index fe534d301c..9cb058ee55 100644
--- a/sysdeps/unix/sysv/linux/alpha/adjtime.c
+++ b/sysdeps/unix/sysv/linux/alpha/adjtime.c
@@ -1,4 +1,5 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* adjtime -- Adjust the current time of day. Linux/Alpha/tv64 version.
+ 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
@@ -13,82 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <shlib-compat.h>
-#include <sysdep.h>
-#include <sys/time.h>
-
-
-#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
-struct timeval32
-{
- int tv_sec, tv_usec;
-};
-
-struct timex32 {
- unsigned int modes; /* mode selector */
- long offset; /* time offset (usec) */
- long freq; /* frequency offset (scaled ppm) */
- long maxerror; /* maximum error (usec) */
- long esterror; /* estimated error (usec) */
- int status; /* clock command/status */
- long constant; /* pll time constant */
- long precision; /* clock precision (usec) (read only) */
- long tolerance; /* clock frequency tolerance (ppm)
- * (read only)
- */
- struct timeval32 time; /* (read only) */
- long tick; /* (modified) usecs between clock ticks */
-
- long ppsfreq; /* pps frequency (scaled ppm) (ro) */
- long jitter; /* pps jitter (us) (ro) */
- int shift; /* interval duration (s) (shift) (ro) */
- long stabil; /* pps stability (scaled ppm) (ro) */
- long jitcnt; /* jitter limit exceeded (ro) */
- long calcnt; /* calibration intervals (ro) */
- long errcnt; /* calibration errors (ro) */
- long stbcnt; /* stability limit exceeded (ro) */
-
- int :32; int :32; int :32; int :32;
- int :32; int :32; int :32; int :32;
- int :32; int :32; int :32; int :32;
-};
-
-#define TIMEVAL timeval32
-#define TIMEX timex32
-#define ADJTIME attribute_compat_text_section __adjtime_tv32
-#define ADJTIMEX(x) INLINE_SYSCALL (old_adjtimex, 1, x)
-#define ADJTIMEX32(x) INLINE_SYSCALL (old_adjtimex, 1, x)
+ <https://www.gnu.org/licenses/>. */
+/* We can use the generic Linux implementation, but we have to override its
+ default symbol version. */
+#define VERSION_adjtime GLIBC_2.1
#include <sysdeps/unix/sysv/linux/adjtime.c>
-
-int attribute_compat_text_section
-__adjtimex_tv32 (struct timex32 *tx) { return ADJTIMEX (tx); }
-
-strong_alias (__adjtimex_tv32, __adjtimex_tv32_1);
-strong_alias (__adjtimex_tv32, __adjtimex_tv32_2);
-compat_symbol (libc, __adjtimex_tv32_1, __adjtimex, GLIBC_2_0);
-compat_symbol (libc, __adjtimex_tv32_2, adjtimex, GLIBC_2_0);
-compat_symbol (libc, __adjtime_tv32, adjtime, GLIBC_2_0);
-#endif /* SHLIB_COMPAT */
-
-#undef TIMEVAL
-#undef TIMEX
-#undef ADJTIME
-#undef ADJTIMEX
-#define TIMEVAL timeval
-#define TIMEX timex
-#define ADJTIMEX(x) INLINE_SYSCALL (adjtimex, 1, x)
-
-#include <sysdeps/unix/sysv/linux/adjtime.c>
-
-int
-__adjtimex_tv64 (struct timex *tx) { return ADJTIMEX (tx); }
-
-libc_hidden_ver (__adjtimex_tv64, __adjtimex)
-strong_alias (__adjtimex_tv64, __adjtimex_tv64p);
-weak_alias (__adjtimex_tv64, ntp_adjtime);
-versioned_symbol (libc, __adjtimex_tv64, __adjtimex, GLIBC_2_1);
-versioned_symbol (libc, __adjtimex_tv64p, adjtimex, GLIBC_2_1);
-versioned_symbol (libc, __adjtime, adjtime, GLIBC_2_1);
diff --git a/sysdeps/unix/sysv/linux/alpha/adjtimex.c b/sysdeps/unix/sysv/linux/alpha/adjtimex.c
new file mode 100644
index 0000000000..1a8e0a9529
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/adjtimex.c
@@ -0,0 +1,22 @@
+/* adjtimex -- Adjust the current time of day. Linux/Alpha/tv64 version.
+ 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; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* We can use the generic Linux implementation, but we have to override its
+ default symbol version. */
+#define VERSION_adjtimex GLIBC_2.1
+#include <sysdeps/unix/sysv/linux/adjtimex.c>
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/dirent.h b/sysdeps/unix/sysv/linux/alpha/bits/dirent.h
index 9dbcdaf60e..24b52da89c 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/dirent.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/dirent.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_DIRENT_H
#define _BITS_DIRENT_H 1
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/epoll.h b/sysdeps/unix/sysv/linux/alpha/bits/epoll.h
index 026ccb06fd..bb646a0017 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/epoll.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/epoll.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_EPOLL_H
# error "Never use <bits/epoll.h> directly; include <sys/epoll.h> instead."
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/errno.h b/sysdeps/unix/sysv/linux/alpha/bits/errno.h
index c35b4ddb1f..57134e699b 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/errno.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/errno.h
@@ -1,5 +1,5 @@
/* Error constants. Linux/Alpha specific version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_ERRNO_H
#define _BITS_ERRNO_H 1
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/eventfd.h b/sysdeps/unix/sysv/linux/alpha/bits/eventfd.h
index 09ba5c50e3..eb0c714c0d 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/eventfd.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/eventfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_EVENTFD_H
# error "Never use <bits/eventfd.h> directly; include <sys/eventfd.h> instead."
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/fcntl.h b/sysdeps/unix/sysv/linux/alpha/bits/fcntl.h
index 99c6053b86..e8b06e2763 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/fcntl.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/fcntl.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for Linux.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FCNTL_H
# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/inotify.h b/sysdeps/unix/sysv/linux/alpha/bits/inotify.h
index 92ca6f5c3c..4b9589a9c6 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/inotify.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/inotify.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_INOTIFY_H
# error "Never use <bits/inotify.h> directly; include <sys/inotify.h> instead."
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/ioctls.h b/sysdeps/unix/sysv/linux/alpha/bits/ioctls.h
index 876f56dee9..8b6fc34f68 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/ioctls.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/ioctls.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_IOCTL_H
# error "Never use <bits/ioctls.h> directly; include <sys/ioctl.h> instead."
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/ipc.h b/sysdeps/unix/sysv/linux/alpha/bits/ipc.h
deleted file mode 100644
index 67a3d8dd6f..0000000000
--- a/sysdeps/unix/sysv/linux/alpha/bits/ipc.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Copyright (C) 1995-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_IPC_H
-# error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
-#endif
-
-#include <bits/types.h>
-
-/* Mode bits for `msgget', `semget', and `shmget'. */
-#define IPC_CREAT 01000 /* Create key if key does not exist. */
-#define IPC_EXCL 02000 /* Fail if key exists. */
-#define IPC_NOWAIT 04000 /* Return error on wait. */
-
-/* Control commands for `msgctl', `semctl', and `shmctl'. */
-#define IPC_RMID 0 /* Remove identifier. */
-#define IPC_SET 1 /* Set `ipc_perm' options. */
-#define IPC_STAT 2 /* Get `ipc_perm' options. */
-#ifdef __USE_GNU
-# define IPC_INFO 3 /* See ipcs. */
-#endif
-
-/* Special key values. */
-#define IPC_PRIVATE ((__key_t) 0) /* Private key. */
-
-
-/* Data structure used to pass permission information to IPC operations. */
-struct ipc_perm
- {
- __key_t __key; /* Key. */
- unsigned int uid; /* Owner's user ID. */
- unsigned int gid; /* Owner's group ID. */
- unsigned int cuid; /* Creator's user ID. */
- unsigned int cgid; /* Creator's group ID. */
- unsigned int mode; /* Read/write permission. */
- unsigned short int __seq; /* Sequence number. */
- unsigned short int __pad1;
- unsigned long int __glibc_reserved1;
- unsigned long int __glibc_reserved2;
- };
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/local_lim.h b/sysdeps/unix/sysv/linux/alpha/bits/local_lim.h
index 7805fa510e..00180dbb59 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/local_lim.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/local_lim.h
@@ -1,5 +1,5 @@
/* Minimum guaranteed maximum values for system limits. Linux/Alpha version.
- Copyright (C) 1993-2018 Free Software Foundation, Inc.
+ Copyright (C) 1993-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Library General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* The kernel header pollutes the namespace with the NR_OPEN symbol
and defines LINK_MAX although filesystems have different maxima. A
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/mman.h b/sysdeps/unix/sysv/linux/alpha/bits/mman.h
index 3abfd8449f..da7c6f57ea 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/mman.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/mman.h
@@ -1,5 +1,5 @@
/* Definitions for POSIX memory map interface. Linux/Alpha version.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_MMAN_H
# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/msq.h b/sysdeps/unix/sysv/linux/alpha/bits/msq.h
deleted file mode 100644
index d15802d109..0000000000
--- a/sysdeps/unix/sysv/linux/alpha/bits/msq.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/* Copyright (C) 1995-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_MSG_H
-# error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
-#endif
-
-#include <bits/types.h>
-
-/* Define options for message queue functions. */
-#define MSG_NOERROR 010000 /* no error if message is too big */
-#ifdef __USE_GNU
-# define MSG_EXCEPT 020000 /* recv any msg except of specified type */
-# define MSG_COPY 040000 /* copy (not remove) all queue messages */
-#endif
-
-/* Types used in the structure definition. */
-typedef unsigned long int msgqnum_t;
-typedef unsigned long int msglen_t;
-
-
-/* Structure of record for one message inside the kernel.
- The type `struct msg' is opaque. */
-struct msqid_ds
-{
- struct ipc_perm msg_perm; /* structure describing operation permission */
- __time_t msg_stime; /* time of last msgsnd command */
- __time_t msg_rtime; /* time of last msgrcv command */
- __time_t msg_ctime; /* time of last change */
- unsigned long int __msg_cbytes; /* current number of bytes on queue */
- msgqnum_t msg_qnum; /* number of messages currently on queue */
- msglen_t msg_qbytes; /* max number of bytes allowed on queue */
- __pid_t msg_lspid; /* pid of last msgsnd() */
- __pid_t msg_lrpid; /* pid of last msgrcv() */
- unsigned long int __glibc_reserved1;
- unsigned long int __glibc_reserved2;
-};
-
-#ifdef __USE_MISC
-
-# define msg_cbytes __msg_cbytes
-
-/* ipcs ctl commands */
-# define MSG_STAT 11
-# define MSG_INFO 12
-# define MSG_STAT_ANY 13
-
-/* buffer for msgctl calls IPC_INFO, MSG_INFO */
-struct msginfo
- {
- int msgpool;
- int msgmap;
- int msgmax;
- int msgmnb;
- int msgmni;
- int msgssz;
- int msgtql;
- unsigned short int msgseg;
- };
-
-#endif /* __USE_MISC */
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/netdb.h b/sysdeps/unix/sysv/linux/alpha/bits/netdb.h
index a78e805d00..42897d85b5 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/netdb.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/netdb.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _NETDB_H
# error "Never include <bits/netdb.h> directly; use <netdb.h> instead."
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/procfs-prregset.h b/sysdeps/unix/sysv/linux/alpha/bits/procfs-prregset.h
new file mode 100644
index 0000000000..bfb6f66bbb
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/bits/procfs-prregset.h
@@ -0,0 +1,25 @@
+/* Types of prgregset_t and prfpregset_t. Alpha version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PROCFS_H
+# error "Never include <bits/procfs-prregset.h> directly; use <sys/procfs.h> instead."
+#endif
+
+typedef gregset_t __prgregset_t;
+typedef fpregset_t __prfpregset_t;
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/procfs.h b/sysdeps/unix/sysv/linux/alpha/bits/procfs.h
new file mode 100644
index 0000000000..994c3695ad
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/bits/procfs.h
@@ -0,0 +1,38 @@
+/* Types for registers for sys/procfs.h. Alpha version.
+ Copyright (C) 1996-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PROCFS_H
+# error "Never include <bits/procfs.h> directly; use <sys/procfs.h> instead."
+#endif
+
+#include <signal.h>
+#include <sys/ucontext.h>
+
+/*
+ * The OSF/1 version of <sys/procfs.h> makes gregset_t 46 entries long.
+ * I have no idea why that is so. For now, we just leave it at 33
+ * (32 general regs + processor status word).
+ */
+#define ELF_NGREG 33
+#define ELF_NFPREG 32
+
+typedef unsigned long elf_greg_t;
+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
+
+typedef double elf_fpreg_t;
+typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/resource.h b/sysdeps/unix/sysv/linux/alpha/bits/resource.h
index dddcb0f049..0234fc3298 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/resource.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/resource.h
@@ -1,5 +1,5 @@
/* Bit values & structures for resource limits. Alpha/Linux version.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_RESOURCE_H
# error "Never use <bits/resource.h> directly; include <sys/resource.h> instead."
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/sem.h b/sysdeps/unix/sysv/linux/alpha/bits/sem.h
deleted file mode 100644
index d218cf4f92..0000000000
--- a/sysdeps/unix/sysv/linux/alpha/bits/sem.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/* Copyright (C) 1995-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_SEM_H
-# error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
-#endif
-
-#include <sys/types.h>
-
-/* Flags for `semop'. */
-#define SEM_UNDO 0x1000 /* undo the operation on exit */
-
-/* Commands for `semctl'. */
-#define GETPID 11 /* get sempid */
-#define GETVAL 12 /* get semval */
-#define GETALL 13 /* get all semval's */
-#define GETNCNT 14 /* get semncnt */
-#define GETZCNT 15 /* get semzcnt */
-#define SETVAL 16 /* set semval */
-#define SETALL 17 /* set all semval's */
-
-
-/* Data structure describing a set of semaphores. */
-struct semid_ds
-{
- struct ipc_perm sem_perm; /* operation permission struct */
- __time_t sem_otime; /* last semop() time */
- __time_t sem_ctime; /* last time changed by semctl() */
- unsigned long int sem_nsems; /* number of semaphores in set */
- unsigned long int __glibc_reserved1;
- unsigned long int __glibc_reserved2;
-};
-
-/* The user should define a union like the following to use it for arguments
- for `semctl'.
-
- union semun
- {
- int val; <= value for SETVAL
- struct semid_ds *buf; <= buffer for IPC_STAT & IPC_SET
- unsigned short int *array; <= array for GETALL & SETALL
- struct seminfo *__buf; <= buffer for IPC_INFO
- };
-
- Previous versions of this file used to define this union but this is
- incorrect. One can test the macro _SEM_SEMUN_UNDEFINED to see whether
- one must define the union or not. */
-#define _SEM_SEMUN_UNDEFINED 1
-
-#ifdef __USE_MISC
-
-/* ipcs ctl cmds */
-# define SEM_STAT 18
-# define SEM_INFO 19
-# define SEM_STAT_ANY 20
-
-struct seminfo
-{
- int semmap;
- int semmni;
- int semmns;
- int semmnu;
- int semmsl;
- int semopm;
- int semume;
- int semusz;
- int semvmx;
- int semaem;
-};
-
-#endif /* __USE_MISC */
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/semaphore.h b/sysdeps/unix/sysv/linux/alpha/bits/semaphore.h
index 6d8bac3137..0941185612 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/semaphore.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/semaphore.h
@@ -1,5 +1,5 @@
/* Machine-specific POSIX semaphore type layouts. Alpha version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SEMAPHORE_H
# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/shm.h b/sysdeps/unix/sysv/linux/alpha/bits/shm.h
deleted file mode 100644
index 16cd984e52..0000000000
--- a/sysdeps/unix/sysv/linux/alpha/bits/shm.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/* Copyright (C) 1995-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_SHM_H
-# error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
-#endif
-
-#include <bits/types.h>
-
-/* Permission flag for shmget. */
-#define SHM_R 0400 /* or S_IRUGO from <linux/stat.h> */
-#define SHM_W 0200 /* or S_IWUGO from <linux/stat.h> */
-
-/* Flags for `shmat'. */
-#define SHM_RDONLY 010000 /* attach read-only else read-write */
-#define SHM_RND 020000 /* round attach address to SHMLBA */
-#define SHM_REMAP 040000 /* take-over region on attach */
-#define SHM_EXEC 0100000 /* execution access */
-
-/* Commands for `shmctl'. */
-#define SHM_LOCK 11 /* lock segment (root only) */
-#define SHM_UNLOCK 12 /* unlock segment (root only) */
-
-__BEGIN_DECLS
-
-/* Segment low boundary address multiple. */
-#define SHMLBA (__getpagesize ())
-extern int __getpagesize (void) __THROW __attribute__ ((__const__));
-
-
-/* Type to count number of attaches. */
-typedef unsigned long int shmatt_t;
-
-/* Data structure describing a shared memory segment. */
-struct shmid_ds
- {
- struct ipc_perm shm_perm; /* operation permission struct */
- size_t shm_segsz; /* size of segment in bytes */
- __time_t shm_atime; /* time of last shmat() */
- __time_t shm_dtime; /* time of last shmdt() */
- __time_t shm_ctime; /* time of last change by shmctl() */
- __pid_t shm_cpid; /* pid of creator */
- __pid_t shm_lpid; /* pid of last shmop */
- shmatt_t shm_nattch; /* number of current attaches */
- unsigned long int __glibc_reserved1;
- unsigned long int __glibc_reserved2;
- };
-
-#ifdef __USE_MISC
-
-/* ipcs ctl commands */
-# define SHM_STAT 13
-# define SHM_INFO 14
-# define SHM_STAT_ANY 15
-
-/* shm_mode upper byte flags */
-# define SHM_DEST 01000 /* segment will be destroyed on last detach */
-# define SHM_LOCKED 02000 /* segment will not be swapped */
-# define SHM_HUGETLB 04000 /* segment is mapped via hugetlb */
-# define SHM_NORESERVE 010000 /* don't check for reservations */
-
-struct shminfo
- {
- unsigned long int shmmax;
- unsigned long int shmmin;
- unsigned long int shmmni;
- unsigned long int shmseg;
- unsigned long int shmall;
- unsigned long int __glibc_reserved1;
- unsigned long int __glibc_reserved2;
- unsigned long int __glibc_reserved3;
- unsigned long int __glibc_reserved4;
- };
-
-struct shm_info
- {
- int used_ids;
- unsigned long int shm_tot; /* total allocated shm */
- unsigned long int shm_rss; /* total resident shm */
- unsigned long int shm_swp; /* total swapped shm */
- unsigned long int swap_attempts;
- unsigned long int swap_successes;
- };
-
-#endif /* __USE_MISC */
-
-__END_DECLS
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/sigaction.h b/sysdeps/unix/sysv/linux/alpha/bits/sigaction.h
index 2700a4ac12..fa7184b4fd 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/sigaction.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/sigaction.h
@@ -1,5 +1,5 @@
/* The proper definitions for Linux/Alpha sigaction.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_SIGACTION_H
#define _BITS_SIGACTION_H 1
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/signalfd.h b/sysdeps/unix/sysv/linux/alpha/bits/signalfd.h
index b59588b8ee..c6fef47285 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/signalfd.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/signalfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_SIGNALFD_H
# error "Never use <bits/signalfd.h> directly; include <sys/signalfd.h> instead."
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/signum.h b/sysdeps/unix/sysv/linux/alpha/bits/signum.h
index 9df647816e..f1c6347a9f 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/signum.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/signum.h
@@ -1,5 +1,5 @@
/* Signal number definitions. Linux/Alpha version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_SIGNUM_H
#define _BITS_SIGNUM_H 1
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/sigstack.h b/sysdeps/unix/sysv/linux/alpha/bits/sigstack.h
index 6adf3e4a77..d3976c3dab 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/sigstack.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/sigstack.h
@@ -1,5 +1,5 @@
/* sigstack, sigaltstack definitions.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_SIGSTACK_H
#define _BITS_SIGSTACK_H 1
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/socket-constants.h b/sysdeps/unix/sysv/linux/alpha/bits/socket-constants.h
new file mode 100644
index 0000000000..4e7eb7f1e0
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/bits/socket-constants.h
@@ -0,0 +1,38 @@
+/* Socket constants which vary among Linux architectures. Version for alpha.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SOCKET_H
+# error "Never include <bits/socket-constants.h> directly; use <sys/socket.h> instead."
+#endif
+
+#define SOL_SOCKET 65535
+#define SO_ACCEPTCONN 4116
+#define SO_BROADCAST 32
+#define SO_DONTROUTE 16
+#define SO_ERROR 4103
+#define SO_KEEPALIVE 8
+#define SO_LINGER 128
+#define SO_OOBINLINE 256
+#define SO_RCVBUF 4098
+#define SO_RCVLOWAT 4112
+#define SO_RCVTIMEO 4114
+#define SO_REUSEADDR 4
+#define SO_SNDBUF 4097
+#define SO_SNDLOWAT 4113
+#define SO_SNDTIMEO 4115
+#define SO_TYPE 4104
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/socket_type.h b/sysdeps/unix/sysv/linux/alpha/bits/socket_type.h
index c27c8df6a8..55ba439769 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/socket_type.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/socket_type.h
@@ -1,5 +1,5 @@
/* Define enum __socket_type for Linux/Alpha.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_SOCKET_H
# error "Never include <bits/socket_type.h> directly; use <sys/socket.h> instead."
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/stat.h b/sysdeps/unix/sysv/linux/alpha/bits/stat.h
index bd19bb4a8a..f768febeb1 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/stat.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/stat.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if !defined _SYS_STAT_H && !defined _FCNTL_H
# error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/statfs.h b/sysdeps/unix/sysv/linux/alpha/bits/statfs.h
index afb4688363..98c60b5393 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/statfs.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/statfs.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_STATFS_H
# error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead."
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/termios-baud.h b/sysdeps/unix/sysv/linux/alpha/bits/termios-baud.h
new file mode 100644
index 0000000000..d9a1b813d1
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/bits/termios-baud.h
@@ -0,0 +1,46 @@
+/* termios baud rate selection definitions. Linux/alpha version.
+ 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. If not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _TERMIOS_H
+# error "Never include <bits/termios-baud.h> directly; use <termios.h> instead."
+#endif
+
+#ifdef __USE_MISC
+# define CBAUD 0000037
+# define CBAUDEX 0000000
+# define CMSPAR 010000000000 /* mark or space (stick) parity */
+# define CRTSCTS 020000000000 /* flow control */
+#endif
+
+#define B57600 00020
+#define B115200 00021
+#define B230400 00022
+#define B460800 00023
+#define B500000 00024
+#define B576000 00025
+#define B921600 00026
+#define B1000000 00027
+#define B1152000 00030
+#define B1500000 00031
+#define B2000000 00032
+#define B2500000 00033
+#define B3000000 00034
+#define B3500000 00035
+#define B4000000 00036
+
+#define __MAX_BAUD B4000000
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/termios-c_cc.h b/sysdeps/unix/sysv/linux/alpha/bits/termios-c_cc.h
new file mode 100644
index 0000000000..736a78ec52
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/bits/termios-c_cc.h
@@ -0,0 +1,40 @@
+/* termios c_cc symbolic constant definitions. Linux/alpha version.
+ 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. If not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _TERMIOS_H
+# error "Never include <bits/termios-c_cc.h> directly; use <termios.h> instead."
+#endif
+
+/* c_cc characters */
+#define VEOF 0
+#define VEOL 1
+#define VEOL2 2
+#define VERASE 3
+#define VWERASE 4
+#define VKILL 5
+#define VREPRINT 6
+#define VSWTC 7
+#define VINTR 8
+#define VQUIT 9
+#define VSUSP 10
+#define VSTART 12
+#define VSTOP 13
+#define VLNEXT 14
+#define VDISCARD 15
+#define VMIN 16
+#define VTIME 17
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/termios-c_cflag.h b/sysdeps/unix/sysv/linux/alpha/bits/termios-c_cflag.h
new file mode 100644
index 0000000000..3d6cbbe4a4
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/bits/termios-c_cflag.h
@@ -0,0 +1,35 @@
+/* termios control mode definitions. Linux/alpha version.
+ 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. If not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _TERMIOS_H
+# error "Never include <bits/termios-c_cflag.h> directly; use <termios.h> instead."
+#endif
+
+#define CSIZE 00001400
+#define CS5 00000000
+#define CS6 00000400
+#define CS7 00001000
+#define CS8 00001400
+
+#define CSTOPB 00002000
+#define CREAD 00004000
+#define PARENB 00010000
+#define PARODD 00020000
+#define HUPCL 00040000
+
+#define CLOCAL 00100000
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/termios-c_iflag.h b/sysdeps/unix/sysv/linux/alpha/bits/termios-c_iflag.h
new file mode 100644
index 0000000000..1be90ae7c3
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/bits/termios-c_iflag.h
@@ -0,0 +1,38 @@
+/* termios input mode definitions. Linux/alpha version.
+ 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. If not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _TERMIOS_H
+# error "Never include <bits/termios-c_iflags.h> directly; use <termios.h> instead."
+#endif
+
+/* c_iflag bits */
+#define IGNBRK 0000001
+#define BRKINT 0000002
+#define IGNPAR 0000004
+#define PARMRK 0000010
+#define INPCK 0000020
+#define ISTRIP 0000040
+#define INLCR 0000100
+#define IGNCR 0000200
+#define ICRNL 0000400
+#define IXON 0001000
+#define IXOFF 0002000
+#define IXANY 0004000
+#define IUCLC 0010000
+#define IMAXBEL 0020000
+#define IUTF8 0040000
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/termios-c_lflag.h b/sysdeps/unix/sysv/linux/alpha/bits/termios-c_lflag.h
new file mode 100644
index 0000000000..d2d2b23676
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/bits/termios-c_lflag.h
@@ -0,0 +1,42 @@
+/* termios local mode definitions. Linux/alpha version.
+ 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. If not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _TERMIOS_H
+# error "Never include <bits/termios-c_lflag.h> directly; use <termios.h> instead."
+#endif
+
+/* c_lflag bits */
+#define ISIG 0x00000080
+#define ICANON 0x00000100
+#if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K)
+# define XCASE 0x00004000
+#endif
+#define ECHO 0x00000008
+#define ECHOE 0x00000002
+#define ECHOK 0x00000004
+#define ECHONL 0x00000010
+#define NOFLSH 0x80000000
+#define TOSTOP 0x00400000
+#ifdef __USE_MISC
+# define ECHOCTL 0x00000040
+# define ECHOPRT 0x00000020
+# define ECHOKE 0x00000001
+# define FLUSHO 0x00800000
+# define PENDIN 0x20000000
+#endif
+#define IEXTEN 0x00000400
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/termios-c_oflag.h b/sysdeps/unix/sysv/linux/alpha/bits/termios-c_oflag.h
new file mode 100644
index 0000000000..831d272717
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/bits/termios-c_oflag.h
@@ -0,0 +1,66 @@
+/* termios output mode definitions. Linux/alpha version.
+ 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. If not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _TERMIOS_H
+# error "Never include <bits/termios-c_oflag.h> directly; use <termios.h> instead."
+#endif
+
+/* c_oflag bits */
+#define OPOST 0000001
+#define ONLCR 0000002
+#define OLCUC 0000004
+
+#define OCRNL 0000010
+#define ONOCR 0000020
+#define ONLRET 0000040
+
+#define OFILL 00000100
+#define OFDEL 00000200
+#if defined __USE_MISC || defined __USE_XOPEN
+# define NLDLY 00001400
+# define NL0 00000000
+# define NL1 00000400
+# if defined __USE_MISC
+# define NL2 00001000
+# define NL3 00001400
+# endif
+# define TABDLY 00006000
+# define TAB0 00000000
+# define TAB1 00002000
+# define TAB2 00004000
+# define TAB3 00006000
+# define CRDLY 00030000
+# define CR0 00000000
+# define CR1 00010000
+# define CR2 00020000
+# define CR3 00030000
+# define FFDLY 00040000
+# define FF0 00000000
+# define FF1 00040000
+# define BSDLY 00100000
+# define BS0 00000000
+# define BS1 00100000
+#endif
+
+#define VTDLY 00200000
+#define VT0 00000000
+#define VT1 00200000
+
+#ifdef __USE_MISC
+# define XTABS TAB3
+#endif
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/termios-struct.h b/sysdeps/unix/sysv/linux/alpha/bits/termios-struct.h
new file mode 100644
index 0000000000..7c37019b98
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/bits/termios-struct.h
@@ -0,0 +1,37 @@
+/* struct termios definition. Linux/alpha version.
+ 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. If not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _TERMIOS_H
+# error "Never include <bits/termios-struct.h> directly; use <termios.h> instead."
+#endif
+
+/* Alpha has C_CC before C_LINE compare to Linux generic definition. */
+#define NCCS 32
+struct termios
+ {
+ tcflag_t c_iflag; /* input mode flags */
+ tcflag_t c_oflag; /* output mode flags */
+ tcflag_t c_cflag; /* control mode flags */
+ tcflag_t c_lflag; /* local mode flags */
+ cc_t c_cc[NCCS]; /* control characters */
+ cc_t c_line; /* line discipline (== c_cc[33]) */
+ speed_t c_ispeed; /* input speed */
+ speed_t c_ospeed; /* output speed */
+#define _HAVE_STRUCT_TERMIOS_C_ISPEED 1
+#define _HAVE_STRUCT_TERMIOS_C_OSPEED 1
+ };
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/termios.h b/sysdeps/unix/sysv/linux/alpha/bits/termios.h
deleted file mode 100644
index 24423e8fc9..0000000000
--- a/sysdeps/unix/sysv/linux/alpha/bits/termios.h
+++ /dev/null
@@ -1,223 +0,0 @@
-/* termios type and macro definitions. Linux version.
- Copyright (C) 1993-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _TERMIOS_H
-# error "Never include <bits/termios.h> directly; use <termios.h> instead."
-#endif
-
-typedef unsigned char cc_t;
-typedef unsigned int speed_t;
-typedef unsigned int tcflag_t;
-
-#define NCCS 32
-struct termios
- {
- tcflag_t c_iflag; /* input mode flags */
- tcflag_t c_oflag; /* output mode flags */
- tcflag_t c_cflag; /* control mode flags */
- tcflag_t c_lflag; /* local mode flags */
- cc_t c_cc[NCCS]; /* control characters */
- cc_t c_line; /* line discipline (== c_cc[33]) */
- speed_t c_ispeed; /* input speed */
- speed_t c_ospeed; /* output speed */
-#define _HAVE_STRUCT_TERMIOS_C_ISPEED 1
-#define _HAVE_STRUCT_TERMIOS_C_OSPEED 1
- };
-
-/* c_cc characters */
-#define VEOF 0
-#define VEOL 1
-#define VEOL2 2
-#define VERASE 3
-#define VWERASE 4
-#define VKILL 5
-#define VREPRINT 6
-#define VSWTC 7
-#define VINTR 8
-#define VQUIT 9
-#define VSUSP 10
-#define VSTART 12
-#define VSTOP 13
-#define VLNEXT 14
-#define VDISCARD 15
-#define VMIN 16
-#define VTIME 17
-
-/* c_iflag bits */
-#define IGNBRK 0000001
-#define BRKINT 0000002
-#define IGNPAR 0000004
-#define PARMRK 0000010
-#define INPCK 0000020
-#define ISTRIP 0000040
-#define INLCR 0000100
-#define IGNCR 0000200
-#define ICRNL 0000400
-#define IXON 0001000
-#define IXOFF 0002000
-#define IXANY 0004000
-#define IUCLC 0010000
-#define IMAXBEL 0020000
-#define IUTF8 0040000
-
-/* c_oflag bits */
-#define OPOST 0000001
-#define ONLCR 0000002
-#define OLCUC 0000004
-
-#define OCRNL 0000010
-#define ONOCR 0000020
-#define ONLRET 0000040
-
-#define OFILL 00000100
-#define OFDEL 00000200
-#if defined __USE_MISC || defined __USE_XOPEN
-# define NLDLY 00001400
-# define NL0 00000000
-# define NL1 00000400
-# if defined __USE_MISC
-# define NL2 00001000
-# define NL3 00001400
-# endif
-# define TABDLY 00006000
-# define TAB0 00000000
-# define TAB1 00002000
-# define TAB2 00004000
-# define TAB3 00006000
-# define CRDLY 00030000
-# define CR0 00000000
-# define CR1 00010000
-# define CR2 00020000
-# define CR3 00030000
-# define FFDLY 00040000
-# define FF0 00000000
-# define FF1 00040000
-# define BSDLY 00100000
-# define BS0 00000000
-# define BS1 00100000
-#endif
-
-#define VTDLY 00200000
-#define VT0 00000000
-#define VT1 00200000
-
-#ifdef __USE_MISC
-# define XTABS TAB3
-#endif
-
-/* c_cflag bit meaning */
-#ifdef __USE_MISC
-# define CBAUD 0000037
-#endif
-#define B0 0000000 /* hang up */
-#define B50 0000001
-#define B75 0000002
-#define B110 0000003
-#define B134 0000004
-#define B150 0000005
-#define B200 0000006
-#define B300 0000007
-#define B600 0000010
-#define B1200 0000011
-#define B1800 0000012
-#define B2400 0000013
-#define B4800 0000014
-#define B9600 0000015
-#define B19200 0000016
-#define B38400 0000017
-#ifdef __USE_MISC
-# define EXTA B19200
-# define EXTB B38400
-# define CBAUDEX 0000000
-#endif
-#define B57600 00020
-#define B115200 00021
-#define B230400 00022
-#define B460800 00023
-#define B500000 00024
-#define B576000 00025
-#define B921600 00026
-#define B1000000 00027
-#define B1152000 00030
-#define B1500000 00031
-#define B2000000 00032
-#define B2500000 00033
-#define B3000000 00034
-#define B3500000 00035
-#define B4000000 00036
-
-#define __MAX_BAUD B4000000
-
-#define CSIZE 00001400
-#define CS5 00000000
-#define CS6 00000400
-#define CS7 00001000
-#define CS8 00001400
-
-#define CSTOPB 00002000
-#define CREAD 00004000
-#define PARENB 00010000
-#define PARODD 00020000
-#define HUPCL 00040000
-
-#define CLOCAL 00100000
-#ifdef __USE_MISC
-# define CMSPAR 010000000000 /* mark or space (stick) parity */
-# define CRTSCTS 020000000000 /* flow control */
-#endif
-
-/* c_lflag bits */
-#define ISIG 0x00000080
-#define ICANON 0x00000100
-#if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K)
-# define XCASE 0x00004000
-#endif
-#define ECHO 0x00000008
-#define ECHOE 0x00000002
-#define ECHOK 0x00000004
-#define ECHONL 0x00000010
-#define NOFLSH 0x80000000
-#define TOSTOP 0x00400000
-#ifdef __USE_MISC
-# define ECHOCTL 0x00000040
-# define ECHOPRT 0x00000020
-# define ECHOKE 0x00000001
-# define FLUSHO 0x00800000
-# define PENDIN 0x20000000
-#endif
-#define IEXTEN 0x00000400
-
-/* Values for the ACTION argument to `tcflow'. */
-#define TCOOFF 0
-#define TCOON 1
-#define TCIOFF 2
-#define TCION 3
-
-/* Values for the QUEUE_SELECTOR argument to `tcflush'. */
-#define TCIFLUSH 0
-#define TCOFLUSH 1
-#define TCIOFLUSH 2
-
-/* Values for the OPTIONAL_ACTIONS argument to `tcsetattr'. */
-#define TCSANOW 0
-#define TCSADRAIN 1
-#define TCSAFLUSH 2
-
-
-#define _IOT_termios /* Hurd ioctl type field. */ \
- _IOT (_IOTS (cflag_t), 4, _IOTS (cc_t), NCCS, _IOTS (speed_t), 2)
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/timerfd.h b/sysdeps/unix/sysv/linux/alpha/bits/timerfd.h
index 8f81eabe4c..d1e6095950 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/timerfd.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/timerfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_TIMERFD_H
# error "Never use <bits/timerfd.h> directly; include <sys/timerfd.h> instead."
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h b/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h
index d9a0b0467c..687b4df006 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h
@@ -1,5 +1,5 @@
/* bits/typesizes.h -- underlying types for *_t. Linux/Alpha version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_TYPES_H
# error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead."
@@ -69,6 +69,9 @@
/* And for __rlim_t and __rlim64_t. */
#define __RLIM_T_MATCHES_RLIM64_T 1
+/* Not for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t. */
+# define __STATFS_MATCHES_STATFS64 0
+
/* Number of descriptors that can fit in an `fd_set'. */
#define __FD_SETSIZE 1024
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/wordsize.h b/sysdeps/unix/sysv/linux/alpha/bits/wordsize.h
index 91574cb296..9f49e3e6c9 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/wordsize.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/wordsize.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __WORDSIZE 64
#define __WORDSIZE_TIME64_COMPAT32 0
diff --git a/sysdeps/unix/sysv/linux/alpha/brk.S b/sysdeps/unix/sysv/linux/alpha/brk.S
index 2c4e138240..a74bd771dd 100644
--- a/sysdeps/unix/sysv/linux/alpha/brk.S
+++ b/sysdeps/unix/sysv/linux/alpha/brk.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Brendan Kehoe <brendan@zen.org>, 1993.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* __brk is a special syscall under Linux since it never returns an
error. Instead, the error condition is indicated by returning the old
diff --git a/sysdeps/unix/sysv/linux/alpha/clone.S b/sysdeps/unix/sysv/linux/alpha/clone.S
index 810a2e5e78..31bb495a2b 100644
--- a/sysdeps/unix/sysv/linux/alpha/clone.S
+++ b/sysdeps/unix/sysv/linux/alpha/clone.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson <rth@tamu.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* clone() is even more special than fork() as it mucks with stacks
and invokes a function in the right context after its all over. */
diff --git a/sysdeps/unix/sysv/linux/alpha/dl-auxv.h b/sysdeps/unix/sysv/linux/alpha/dl-auxv.h
index 979ea2246e..b912f30da8 100644
--- a/sysdeps/unix/sysv/linux/alpha/dl-auxv.h
+++ b/sysdeps/unix/sysv/linux/alpha/dl-auxv.h
@@ -1,5 +1,5 @@
/* Auxiliary vector processing for Linux/Alpha.
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Scan the Aux Vector for the cache shape entries. */
diff --git a/sysdeps/unix/sysv/linux/alpha/fraiseexcpt.S b/sysdeps/unix/sysv/linux/alpha/fraiseexcpt.S
index a6d854b6f8..55eb6ba725 100644
--- a/sysdeps/unix/sysv/linux/alpha/fraiseexcpt.S
+++ b/sysdeps/unix/sysv/linux/alpha/fraiseexcpt.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "kernel_sysinfo.h"
diff --git a/sysdeps/unix/sysv/linux/alpha/fxstat.c b/sysdeps/unix/sysv/linux/alpha/fxstat.c
index 8a7a13ad69..a3ab946a24 100644
--- a/sysdeps/unix/sysv/linux/alpha/fxstat.c
+++ b/sysdeps/unix/sysv/linux/alpha/fxstat.c
@@ -1,5 +1,5 @@
/* fxstat using old-style Unix stat system call.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __fxstat64 __fxstat64_disable
diff --git a/sysdeps/unix/sysv/linux/alpha/fxstatat.c b/sysdeps/unix/sysv/linux/alpha/fxstatat.c
index 69ddbcd279..c7468a239c 100644
--- a/sysdeps/unix/sysv/linux/alpha/fxstatat.c
+++ b/sysdeps/unix/sysv/linux/alpha/fxstatat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __fxstatat64 __fxstatat64_disable
diff --git a/sysdeps/unix/sysv/linux/alpha/getcontext.S b/sysdeps/unix/sysv/linux/alpha/getcontext.S
index 84c6b00549..8a8c0108b2 100644
--- a/sysdeps/unix/sysv/linux/alpha/getcontext.S
+++ b/sysdeps/unix/sysv/linux/alpha/getcontext.S
@@ -1,5 +1,5 @@
/* Save current context.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <ucontext-offsets.h>
diff --git a/sysdeps/unix/alpha/getegid.S b/sysdeps/unix/sysv/linux/alpha/getegid.S
index 97ee854ff0..a4a3bf9fed 100644
--- a/sysdeps/unix/alpha/getegid.S
+++ b/sysdeps/unix/sysv/linux/alpha/getegid.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/alpha/geteuid.S b/sysdeps/unix/sysv/linux/alpha/geteuid.S
index 1ec51425ac..f24980844a 100644
--- a/sysdeps/unix/alpha/geteuid.S
+++ b/sysdeps/unix/sysv/linux/alpha/geteuid.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/alpha/gethostname.c b/sysdeps/unix/sysv/linux/alpha/gethostname.c
index 6d9273c096..b2acca6a11 100644
--- a/sysdeps/unix/sysv/linux/alpha/gethostname.c
+++ b/sysdeps/unix/sysv/linux/alpha/gethostname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <string.h>
diff --git a/sysdeps/unix/alpha/getppid.S b/sysdeps/unix/sysv/linux/alpha/getppid.S
index 740992446c..bbbbff763e 100644
--- a/sysdeps/unix/alpha/getppid.S
+++ b/sysdeps/unix/sysv/linux/alpha/getppid.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/alpha/getrlimit64.c b/sysdeps/unix/sysv/linux/alpha/getrlimit64.c
index 5502586462..855582a030 100644
--- a/sysdeps/unix/sysv/linux/alpha/getrlimit64.c
+++ b/sysdeps/unix/sysv/linux/alpha/getrlimit64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2018 Free Software Foundation, Inc.
+/* Copyright (C) 2018-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define USE_VERSIONED_RLIMIT
#include <sysdeps/unix/sysv/linux/getrlimit64.c>
diff --git a/sysdeps/unix/sysv/linux/alpha/getsysstats.c b/sysdeps/unix/sysv/linux/alpha/getsysstats.c
index 99b513c255..85911aec9b 100644
--- a/sysdeps/unix/sysv/linux/alpha/getsysstats.c
+++ b/sysdeps/unix/sysv/linux/alpha/getsysstats.c
@@ -1,5 +1,5 @@
/* Determine various system internal values, Linux/Alpha version.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@suse.de>
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* We need to define a special parser for /proc/cpuinfo. */
diff --git a/sysdeps/unix/sysv/linux/alpha/gettimeofday.c b/sysdeps/unix/sysv/linux/alpha/gettimeofday.c
new file mode 100644
index 0000000000..262a3c2352
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/gettimeofday.c
@@ -0,0 +1,22 @@
+/* gettimeofday -- Get the current time of day. Linux/Alpha/tv64 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+/* We can use the generic implementation, but we have to override its
+ default symbol version. */
+#define VERSION_gettimeofday GLIBC_2.1
+#include <time/gettimeofday.c>
diff --git a/sysdeps/unix/sysv/linux/alpha/globfree.c b/sysdeps/unix/sysv/linux/alpha/globfree.c
index 79c56ee3c4..9c47ecce7b 100644
--- a/sysdeps/unix/sysv/linux/alpha/globfree.c
+++ b/sysdeps/unix/sysv/linux/alpha/globfree.c
@@ -1,5 +1,5 @@
/* Compat globfree. Linux/alpha version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define globfree64 __no_globfree64_decl
#include <sys/types.h>
diff --git a/sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S b/sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S
index 406ee6ad14..6615e7a5eb 100644
--- a/sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S
+++ b/sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Mosberger <davidm@azstarnet.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "kernel_sysinfo.h"
diff --git a/sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S b/sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S
index 9673824a66..868c3443e5 100644
--- a/sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S
+++ b/sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Mosberger <davidm@azstarnet.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "kernel_sysinfo.h"
diff --git a/sysdeps/unix/sysv/linux/alpha/ioperm.c b/sysdeps/unix/sysv/linux/alpha/ioperm.c
index b41ce7662e..ceb367216f 100644
--- a/sysdeps/unix/sysv/linux/alpha/ioperm.c
+++ b/sysdeps/unix/sysv/linux/alpha/ioperm.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* I/O access is restricted to ISA port space (ports 0..65535).
Modern devices hopefully are sane enough not to put any performance
@@ -506,14 +506,15 @@ process_cpuinfo(struct cpuinfo_data *data)
{
if (fgets_unlocked (dummy, 256, fp) == NULL)
break;
- if (!got_type &&
- sscanf (dummy, "system type : %256[^\n]\n", data->systype) == 1)
+ if (!got_type
+ && sscanf (dummy, "system type : %256[^\n]\n", data->systype) == 1)
got_type = 1;
- if (!got_vari &&
- sscanf (dummy, "system variation : %256[^\n]\n", data->sysvari) == 1)
+ if (!got_vari
+ && (sscanf (dummy, "system variation : %256[^\n]\n", data->sysvari)
+ == 1))
got_vari = 1;
- if (!got_model &&
- sscanf (dummy, "cpu model : %256[^\n]\n", data->cpumodel) == 1)
+ if (!got_model
+ && sscanf (dummy, "cpu model : %256[^\n]\n", data->cpumodel) == 1)
got_model = 1;
}
diff --git a/sysdeps/unix/sysv/linux/alpha/ipc_priv.h b/sysdeps/unix/sysv/linux/alpha/ipc_priv.h
index 5b9f68de03..51891654cc 100644
--- a/sysdeps/unix/sysv/linux/alpha/ipc_priv.h
+++ b/sysdeps/unix/sysv/linux/alpha/ipc_priv.h
@@ -1,5 +1,5 @@
/* Old SysV permission definition for Linux. Alpha version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,19 +14,8 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#include <sys/ipc.h> /* For __key_t */
-
-#define __IPC_64 0x100
-
-struct __old_ipc_perm
-{
- __key_t __key; /* Key. */
- unsigned int uid; /* Owner's user ID. */
- unsigned int gid; /* Owner's group ID. */
- unsigned int cuid; /* Creator's user ID. */
- unsigned int cgid; /* Creator's group ID. */
- unsigned int mode; /* Read/write permission. */
- unsigned short int __seq; /* Sequence number. */
-};
+#define __OLD_IPC_ID_TYPE unsigned int
+#define __OLD_IPC_MODE_TYPE unsigned int
+#include <sysdeps/unix/sysv/linux/ipc_priv.h>
diff --git a/sysdeps/unix/sysv/linux/alpha/kernel-features.h b/sysdeps/unix/sysv/linux/alpha/kernel-features.h
index 402d2573d7..d12916c656 100644
--- a/sysdeps/unix/sysv/linux/alpha/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/alpha/kernel-features.h
@@ -1,6 +1,6 @@
/* Set flags signalling availability of kernel features based on given
kernel version number.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-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
@@ -15,22 +15,23 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _KERNEL_FEATURES_H
#define _KERNEL_FEATURES_H 1
#include_next <kernel-features.h>
-#undef __ASSUME_ST_INO_64_BIT
-#define __ASSUME_ST_INO_64_BIT 0
-
-/* There never has been support for fstat64. */
-#undef __ASSUME_STATFS64
-#define __ASSUME_STATFS64 0
+/* Support for statfs64 was added in 5.1. */
+#if __LINUX_KERNEL_VERSION < 0x050100
+# undef __ASSUME_STATFS64
+# define __ASSUME_STATFS64 0
+#endif
-/* Alpha defines SysV ipc shmat syscall with a different name. */
-#define __NR_shmat __NR_osf_shmat
+/* Alpha used to define SysV ipc shmat syscall with a different name. */
+#ifndef __NR_shmat
+# define __NR_shmat __NR_osf_shmat
+#endif
#define __ASSUME_RECV_SYSCALL 1
#define __ASSUME_SEND_SYSCALL 1
@@ -48,8 +49,10 @@
/* Support for copy_file_range, statx was added in kernel 4.13. */
#if __LINUX_KERNEL_VERSION < 0x040D00
# undef __ASSUME_MLOCK2
-# undef __ASSUME_COPY_FILE_RANGE
# undef __ASSUME_STATX
#endif
+/* Alpha requires old sysvipc even being a 64-bit architecture. */
+#undef __ASSUME_SYSVIPC_DEFAULT_IPC_64
+
#endif /* _KERNEL_FEATURES_H */
diff --git a/sysdeps/unix/sysv/linux/alpha/kernel_sigaction.h b/sysdeps/unix/sysv/linux/alpha/kernel_sigaction.h
index 25180ff9c9..679179b563 100644
--- a/sysdeps/unix/sysv/linux/alpha/kernel_sigaction.h
+++ b/sysdeps/unix/sysv/linux/alpha/kernel_sigaction.h
@@ -1,12 +1,11 @@
-#ifndef _KERNEL_SIGACTION_H
-# define _KERNEL_SIGACTION_H
+#include <sysdeps/unix/sysv/linux/kernel_sigaction.h>
-/* This is the sigaction structure from the Linux 3.2 kernel. */
-struct kernel_sigaction
-{
- __sighandler_t k_sa_handler;
- unsigned int sa_flags;
- sigset_t sa_mask;
-};
+void __syscall_rt_sigreturn (void) attribute_hidden;
+void __syscall_sigreturn (void) attribute_hidden;
-#endif
+#define STUB(act, sigsetsize) \
+ (sigsetsize), \
+ (act) ? ((unsigned long)((act->sa_flags & SA_SIGINFO) \
+ ? &__syscall_rt_sigreturn \
+ : &__syscall_sigreturn)) \
+ : 0
diff --git a/sysdeps/unix/sysv/linux/alpha/kernel_termios.h b/sysdeps/unix/sysv/linux/alpha/kernel_termios.h
index b72bd176ea..994c16d614 100644
--- a/sysdeps/unix/sysv/linux/alpha/kernel_termios.h
+++ b/sysdeps/unix/sysv/linux/alpha/kernel_termios.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _KERNEL_TERMIOS_H
#define _KERNEL_TERMIOS_H 1
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index e22b91655d..e7f2174ac2 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -1863,6 +1863,11 @@ GLIBC_2.2 __xpg_sigpause F
GLIBC_2.2 _flushlbf F
GLIBC_2.2 _res_hconf D 0x48
GLIBC_2.2 bind_textdomain_codeset F
+GLIBC_2.2 clock_getcpuclockid F
+GLIBC_2.2 clock_getres F
+GLIBC_2.2 clock_gettime F
+GLIBC_2.2 clock_nanosleep F
+GLIBC_2.2 clock_settime F
GLIBC_2.2 dcngettext F
GLIBC_2.2 dngettext F
GLIBC_2.2 fgetpos F
@@ -2033,6 +2038,9 @@ GLIBC_2.28 thrd_current F
GLIBC_2.28 thrd_equal F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
+GLIBC_2.29 getcpu F
+GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
+GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
GLIBC_2.3 __ctype_b_loc F
GLIBC_2.3 __ctype_tolower_loc F
GLIBC_2.3 __ctype_toupper_loc F
@@ -2201,6 +2209,22 @@ GLIBC_2.3.4 setipv4sourcefilter F
GLIBC_2.3.4 setsourcefilter F
GLIBC_2.3.4 xdr_quad_t F
GLIBC_2.3.4 xdr_u_quad_t F
+GLIBC_2.30 __nldbl_argp_error F
+GLIBC_2.30 __nldbl_argp_failure F
+GLIBC_2.30 __nldbl_err F
+GLIBC_2.30 __nldbl_error F
+GLIBC_2.30 __nldbl_error_at_line F
+GLIBC_2.30 __nldbl_errx F
+GLIBC_2.30 __nldbl_verr F
+GLIBC_2.30 __nldbl_verrx F
+GLIBC_2.30 __nldbl_vwarn F
+GLIBC_2.30 __nldbl_vwarnx F
+GLIBC_2.30 __nldbl_warn F
+GLIBC_2.30 __nldbl_warnx F
+GLIBC_2.30 getdents64 F
+GLIBC_2.30 gettid F
+GLIBC_2.30 tgkill F
+GLIBC_2.30 twalk_r F
GLIBC_2.4 _IO_fprintf F
GLIBC_2.4 _IO_printf F
GLIBC_2.4 _IO_sprintf F
diff --git a/sysdeps/unix/sysv/linux/alpha/libm.abilist b/sysdeps/unix/sysv/linux/alpha/libm.abilist
index 2773d61cd1..08ac3905a0 100644
--- a/sysdeps/unix/sysv/linux/alpha/libm.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libm.abilist
@@ -1043,6 +1043,11 @@ GLIBC_2.28 fmul F
GLIBC_2.28 fmull F
GLIBC_2.28 fsub F
GLIBC_2.28 fsubl F
+GLIBC_2.29 exp F
+GLIBC_2.29 exp2 F
+GLIBC_2.29 log F
+GLIBC_2.29 log2 F
+GLIBC_2.29 pow F
GLIBC_2.3.4 __c1_cabsf F
GLIBC_2.3.4 __c1_cacosf F
GLIBC_2.3.4 __c1_cacoshf F
@@ -1089,6 +1094,22 @@ GLIBC_2.3.4 csinhf F
GLIBC_2.3.4 csqrtf F
GLIBC_2.3.4 ctanf F
GLIBC_2.3.4 ctanhf F
+GLIBC_2.31 totalorder F
+GLIBC_2.31 totalorderf F
+GLIBC_2.31 totalorderf128 F
+GLIBC_2.31 totalorderf32 F
+GLIBC_2.31 totalorderf32x F
+GLIBC_2.31 totalorderf64 F
+GLIBC_2.31 totalorderf64x F
+GLIBC_2.31 totalorderl F
+GLIBC_2.31 totalordermag F
+GLIBC_2.31 totalordermagf F
+GLIBC_2.31 totalordermagf128 F
+GLIBC_2.31 totalordermagf32 F
+GLIBC_2.31 totalordermagf32x F
+GLIBC_2.31 totalordermagf64 F
+GLIBC_2.31 totalordermagf64x F
+GLIBC_2.31 totalordermagl F
GLIBC_2.4 __clog10l F
GLIBC_2.4 __finitel F
GLIBC_2.4 __fpclassifyl F
diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
index b413007ccb..da5e9979a8 100644
--- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
@@ -42,20 +42,11 @@ GLIBC_2.0 funlockfile F
GLIBC_2.0 longjmp F
GLIBC_2.0 lseek F
GLIBC_2.0 msync F
-GLIBC_2.0 nanosleep F
GLIBC_2.0 open F
GLIBC_2.0 pause F
GLIBC_2.0 pthread_atfork F
-GLIBC_2.0 pthread_attr_destroy F
-GLIBC_2.0 pthread_attr_getdetachstate F
-GLIBC_2.0 pthread_attr_getinheritsched F
-GLIBC_2.0 pthread_attr_getschedparam F
GLIBC_2.0 pthread_attr_getschedpolicy F
GLIBC_2.0 pthread_attr_getscope F
-GLIBC_2.0 pthread_attr_init F
-GLIBC_2.0 pthread_attr_setdetachstate F
-GLIBC_2.0 pthread_attr_setinheritsched F
-GLIBC_2.0 pthread_attr_setschedparam F
GLIBC_2.0 pthread_attr_setschedpolicy F
GLIBC_2.0 pthread_attr_setscope F
GLIBC_2.0 pthread_cancel F
@@ -69,7 +60,6 @@ GLIBC_2.0 pthread_condattr_destroy F
GLIBC_2.0 pthread_condattr_init F
GLIBC_2.0 pthread_create F
GLIBC_2.0 pthread_detach F
-GLIBC_2.0 pthread_equal F
GLIBC_2.0 pthread_exit F
GLIBC_2.0 pthread_getschedparam F
GLIBC_2.0 pthread_getspecific F
@@ -88,7 +78,6 @@ GLIBC_2.0 pthread_mutexattr_getkind_np F
GLIBC_2.0 pthread_mutexattr_init F
GLIBC_2.0 pthread_mutexattr_setkind_np F
GLIBC_2.0 pthread_once F
-GLIBC_2.0 pthread_self F
GLIBC_2.0 pthread_setcancelstate F
GLIBC_2.0 pthread_setcanceltype F
GLIBC_2.0 pthread_setschedparam F
@@ -114,7 +103,6 @@ GLIBC_2.0 siglongjmp F
GLIBC_2.0 sigwait F
GLIBC_2.0 system F
GLIBC_2.0 tcdrain F
-GLIBC_2.0 vfork F
GLIBC_2.0 wait F
GLIBC_2.0 waitpid F
GLIBC_2.0 write F
@@ -124,7 +112,6 @@ GLIBC_2.1 __libc_current_sigrtmin F
GLIBC_2.1 pthread_attr_getguardsize F
GLIBC_2.1 pthread_attr_getstackaddr F
GLIBC_2.1 pthread_attr_getstacksize F
-GLIBC_2.1 pthread_attr_init F
GLIBC_2.1 pthread_attr_setguardsize F
GLIBC_2.1 pthread_attr_setstackaddr F
GLIBC_2.1 pthread_attr_setstacksize F
@@ -155,7 +142,7 @@ GLIBC_2.1 sem_wait F
GLIBC_2.1.1 sem_close F
GLIBC_2.1.1 sem_open F
GLIBC_2.1.1 sem_unlink F
-GLIBC_2.1.2 __vfork F
+GLIBC_2.1.2 __libpthread_version_placeholder F
GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 pthread_getname_np F
GLIBC_2.12 pthread_mutex_consistent F
@@ -205,7 +192,7 @@ GLIBC_2.2 pwrite F
GLIBC_2.2 pwrite64 F
GLIBC_2.2 sem_timedwait F
GLIBC_2.2.3 pthread_getattr_np F
-GLIBC_2.2.6 __nanosleep F
+GLIBC_2.2.6 __libpthread_version_placeholder F
GLIBC_2.28 call_once F
GLIBC_2.28 cnd_broadcast F
GLIBC_2.28 cnd_destroy F
@@ -255,6 +242,12 @@ GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
GLIBC_2.3.4 pthread_setaffinity_np F
GLIBC_2.3.4 pthread_setschedprio F
+GLIBC_2.30 pthread_cond_clockwait F
+GLIBC_2.30 pthread_mutex_clocklock F
+GLIBC_2.30 pthread_rwlock_clockrdlock F
+GLIBC_2.30 pthread_rwlock_clockwrlock F
+GLIBC_2.30 sem_clockwait F
+GLIBC_2.31 pthread_clockjoin_np F
GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 pthread_mutex_getprioceiling F
GLIBC_2.4 pthread_mutex_setprioceiling F
diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
index d7a049cf60..71f86e03ce 100644
--- a/sysdeps/unix/sysv/linux/alpha/librt.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/librt.abilist
@@ -15,11 +15,6 @@ GLIBC_2.1 aio_write F
GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
GLIBC_2.1 lio_listio64 F
-GLIBC_2.2 clock_getcpuclockid F
-GLIBC_2.2 clock_getres F
-GLIBC_2.2 clock_gettime F
-GLIBC_2.2 clock_nanosleep F
-GLIBC_2.2 clock_settime F
GLIBC_2.2 shm_open F
GLIBC_2.2 shm_unlink F
GLIBC_2.2 timer_create F
diff --git a/sysdeps/unix/sysv/linux/alpha/lxstat.c b/sysdeps/unix/sysv/linux/alpha/lxstat.c
index 986fc13cd6..8daf56b840 100644
--- a/sysdeps/unix/sysv/linux/alpha/lxstat.c
+++ b/sysdeps/unix/sysv/linux/alpha/lxstat.c
@@ -1,5 +1,5 @@
/* lxstat using old-style Unix stat system call.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __lxstat64 __lxstat64_disable
diff --git a/sysdeps/unix/sysv/linux/alpha/makecontext.S b/sysdeps/unix/sysv/linux/alpha/makecontext.S
index cae2144e03..f266cae613 100644
--- a/sysdeps/unix/sysv/linux/alpha/makecontext.S
+++ b/sysdeps/unix/sysv/linux/alpha/makecontext.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <ucontext-offsets.h>
diff --git a/sysdeps/unix/sysv/linux/alpha/oldglob.c b/sysdeps/unix/sysv/linux/alpha/oldglob.c
index 6585dd7c2f..204e0962ff 100644
--- a/sysdeps/unix/sysv/linux/alpha/oldglob.c
+++ b/sysdeps/unix/sysv/linux/alpha/oldglob.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file contains only wrappers around the real glob functions. It
became necessary since the glob_t structure changed. */
diff --git a/sysdeps/unix/sysv/linux/alpha/osf_adjtime.c b/sysdeps/unix/sysv/linux/alpha/osf_adjtime.c
new file mode 100644
index 0000000000..91ad8747da
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/osf_adjtime.c
@@ -0,0 +1,130 @@
+/* adjtime -- adjust the system clock. Linux/Alpha/tv32 version.
+ 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; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <shlib-compat.h>
+
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
+
+#include <sys/time.h>
+#include <sys/timex.h>
+#include <tv32-compat.h>
+
+struct timex32 {
+ unsigned int modes; /* mode selector */
+ long offset; /* time offset (usec) */
+ long freq; /* frequency offset (scaled ppm) */
+ long maxerror; /* maximum error (usec) */
+ long esterror; /* estimated error (usec) */
+ int status; /* clock command/status */
+ long constant; /* pll time constant */
+ long precision; /* clock precision (usec) (read only) */
+ long tolerance; /* clock frequency tolerance (ppm)
+ * (read only)
+ */
+ struct timeval32 time; /* (read only) */
+ long tick; /* (modified) usecs between clock ticks */
+
+ long ppsfreq; /* pps frequency (scaled ppm) (ro) */
+ long jitter; /* pps jitter (us) (ro) */
+ int shift; /* interval duration (s) (shift) (ro) */
+ long stabil; /* pps stability (scaled ppm) (ro) */
+ long jitcnt; /* jitter limit exceeded (ro) */
+ long calcnt; /* calibration intervals (ro) */
+ long errcnt; /* calibration errors (ro) */
+ long stbcnt; /* stability limit exceeded (ro) */
+
+ int :32; int :32; int :32; int :32;
+ int :32; int :32; int :32; int :32;
+ int :32; int :32; int :32; int :32;
+};
+
+int
+attribute_compat_text_section
+__adjtime_tv32 (const struct timeval32 *itv, struct timeval32 *otv)
+{
+ struct timeval itv64 = valid_timeval_to_timeval64 (*itv);
+ struct timeval otv64;
+
+ if (__adjtime (&itv64, &otv64) == -1)
+ return -1;
+
+ *otv = valid_timeval64_to_timeval (otv64);
+ return 0;
+}
+
+int
+attribute_compat_text_section
+__adjtimex_tv32 (struct timex32 *tx)
+{
+ struct timex tx64;
+ memset (&tx64, 0, sizeof tx64);
+ tx64.modes = tx->modes;
+ tx64.offset = tx->offset;
+ tx64.freq = tx->freq;
+ tx64.maxerror = tx->maxerror;
+ tx64.esterror = tx->esterror;
+ tx64.status = tx->status;
+ tx64.constant = tx->constant;
+ tx64.precision = tx->precision;
+ tx64.tolerance = tx->tolerance;
+ tx64.tick = tx->tick;
+ tx64.ppsfreq = tx->ppsfreq;
+ tx64.jitter = tx->jitter;
+ tx64.shift = tx->shift;
+ tx64.stabil = tx->stabil;
+ tx64.jitcnt = tx->jitcnt;
+ tx64.calcnt = tx->calcnt;
+ tx64.errcnt = tx->errcnt;
+ tx64.stbcnt = tx->stbcnt;
+ tx64.time = valid_timeval_to_timeval64 (tx->time);
+
+ int status = __adjtimex (&tx64);
+ if (status < 0)
+ return status;
+
+ memset (tx, 0, sizeof *tx);
+ tx->modes = tx64.modes;
+ tx->offset = tx64.offset;
+ tx->freq = tx64.freq;
+ tx->maxerror = tx64.maxerror;
+ tx->esterror = tx64.esterror;
+ tx->status = tx64.status;
+ tx->constant = tx64.constant;
+ tx->precision = tx64.precision;
+ tx->tolerance = tx64.tolerance;
+ tx->tick = tx64.tick;
+ tx->ppsfreq = tx64.ppsfreq;
+ tx->jitter = tx64.jitter;
+ tx->shift = tx64.shift;
+ tx->stabil = tx64.stabil;
+ tx->jitcnt = tx64.jitcnt;
+ tx->calcnt = tx64.calcnt;
+ tx->errcnt = tx64.errcnt;
+ tx->stbcnt = tx64.stbcnt;
+ tx->time = valid_timeval64_to_timeval (tx64.time);
+
+ return status;
+}
+
+strong_alias (__adjtimex_tv32, __adjtimex_tv32_1);
+strong_alias (__adjtimex_tv32, __adjtimex_tv32_2);
+compat_symbol (libc, __adjtimex_tv32_1, __adjtimex, GLIBC_2_0);
+compat_symbol (libc, __adjtimex_tv32_2, adjtimex, GLIBC_2_0);
+compat_symbol (libc, __adjtime_tv32, adjtime, GLIBC_2_0);
+
+#endif /* SHLIB_COMPAT */
diff --git a/sysdeps/unix/sysv/linux/alpha/osf_getitimer.c b/sysdeps/unix/sysv/linux/alpha/osf_getitimer.c
new file mode 100644
index 0000000000..8fe63a72a9
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/osf_getitimer.c
@@ -0,0 +1,43 @@
+/* getitimer -- Get the state of an interval timer. Linux/Alpha/tv32 version.
+ 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; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <shlib-compat.h>
+
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
+
+#include <sys/time.h>
+#include <tv32-compat.h>
+
+int
+attribute_compat_text_section
+__getitimer_tv32 (int which, struct itimerval32 *curr_value)
+{
+ struct itimerval curr_value_64;
+ if (__getitimer (which, &curr_value_64) == -1)
+ return -1;
+
+ /* Write all fields of 'curr_value' regardless of overflow. */
+ curr_value->it_interval
+ = valid_timeval64_to_timeval (curr_value_64.it_interval);
+ curr_value->it_value
+ = valid_timeval64_to_timeval (curr_value_64.it_value);
+ return 0;
+}
+
+compat_symbol (libc, __getitimer_tv32, getitimer, GLIBC_2_0);
+#endif
diff --git a/sysdeps/unix/sysv/linux/alpha/osf_getrusage.c b/sysdeps/unix/sysv/linux/alpha/osf_getrusage.c
new file mode 100644
index 0000000000..918e8445d4
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/osf_getrusage.c
@@ -0,0 +1,39 @@
+/* utimes -- change file timestamps. Linux/Alpha/tv32 version.
+ 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; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <shlib-compat.h>
+
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
+
+#include <sys/time.h>
+#include <sys/resource.h>
+#include <tv32-compat.h>
+
+int
+__getrusage_tv32 (int who, struct rusage32 *usage32)
+{
+ struct rusage usage64;
+ if (__getrusage (who, &usage64) == -1)
+ return -1;
+
+ rusage64_to_rusage32 (usage32, &usage64);
+ return 0;
+}
+
+compat_symbol (libc, __getrusage_tv32, getrusage, GLIBC_2_0);
+#endif
diff --git a/sysdeps/unix/sysv/linux/alpha/osf_gettimeofday.c b/sysdeps/unix/sysv/linux/alpha/osf_gettimeofday.c
new file mode 100644
index 0000000000..4698c8a5db
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/osf_gettimeofday.c
@@ -0,0 +1,48 @@
+/* gettimeofday -- Get the current time of day. Linux/Alpha/tv32 version.
+ 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; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <shlib-compat.h>
+
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
+
+#include <string.h>
+#include <time.h>
+#include <sys/time.h>
+#include <tv32-compat.h>
+
+/* Get the current time of day and timezone information putting it
+ into *TV and *TZ. */
+
+int
+attribute_compat_text_section
+__gettimeofday_tv32 (struct timeval32 *restrict tv32, void *restrict tz)
+{
+ if (__glibc_unlikely (tz != 0))
+ memset (tz, 0, sizeof (struct timezone));
+
+ struct timespec ts;
+ __clock_gettime (CLOCK_REALTIME, &ts);
+
+ *tv32 = valid_timespec_to_timeval32 (ts);
+ return 0;
+}
+
+compat_symbol (libc, __gettimeofday_tv32, __gettimeofday, GLIBC_2_0);
+strong_alias (__gettimeofday_tv32, __gettimeofday_tv32_1);
+compat_symbol (libc, __gettimeofday_tv32_1, gettimeofday, GLIBC_2_0);
+#endif
diff --git a/sysdeps/unix/sysv/linux/alpha/osf_setitimer.c b/sysdeps/unix/sysv/linux/alpha/osf_setitimer.c
new file mode 100644
index 0000000000..9184a88a8f
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/osf_setitimer.c
@@ -0,0 +1,53 @@
+/* getitimer -- Get the state of an interval timer. Linux/Alpha/tv32 version.
+ 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; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <shlib-compat.h>
+
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
+
+#include <sys/time.h>
+#include <tv32-compat.h>
+
+int
+attribute_compat_text_section
+__setitimer_tv32 (int which, const struct itimerval32 *restrict new_value,
+ struct itimerval32 *restrict old_value)
+{
+ struct itimerval new_value_64;
+ new_value_64.it_interval
+ = valid_timeval_to_timeval64 (new_value->it_interval);
+ new_value_64.it_value
+ = valid_timeval_to_timeval64 (new_value->it_value);
+
+ if (old_value == NULL)
+ return __setitimer (which, &new_value_64, NULL);
+
+ struct itimerval old_value_64;
+ if (__setitimer (which, &new_value_64, &old_value_64) == -1)
+ return -1;
+
+ /* Write all fields of 'old_value' regardless of overflow. */
+ old_value->it_interval
+ = valid_timeval64_to_timeval (old_value_64.it_interval);
+ old_value->it_value
+ = valid_timeval64_to_timeval (old_value_64.it_value);
+ return 0;
+}
+
+compat_symbol (libc, __setitimer_tv32, setitimer, GLIBC_2_0);
+#endif
diff --git a/sysdeps/unix/sysv/linux/alpha/osf_settimeofday.c b/sysdeps/unix/sysv/linux/alpha/osf_settimeofday.c
new file mode 100644
index 0000000000..48eef67429
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/osf_settimeofday.c
@@ -0,0 +1,50 @@
+/* settimeofday -- Set the current time of day. Linux/Alpha/tv32 version.
+ 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; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <shlib-compat.h>
+
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
+
+#include <sys/time.h>
+#include <time.h>
+#include <errno.h>
+#include <tv32-compat.h>
+
+/* Set the current time of day and timezone information.
+ This call is restricted to the super-user. */
+int
+attribute_compat_text_section
+__settimeofday_tv32 (const struct timeval32 *tv32,
+ const struct timezone *tz)
+{
+ if (__glibc_unlikely (tz != 0))
+ {
+ if (tv32 != 0)
+ {
+ __set_errno (EINVAL);
+ return -1;
+ }
+ return __settimezone (tz);
+ }
+
+ struct timespec ts = valid_timeval32_to_timespec (*tv32);
+ return __clock_settime (CLOCK_REALTIME, &ts);
+}
+
+compat_symbol (libc, __settimeofday_tv32, settimeofday, GLIBC_2_0);
+#endif
diff --git a/sysdeps/unix/sysv/linux/alpha/osf_utimes.c b/sysdeps/unix/sysv/linux/alpha/osf_utimes.c
new file mode 100644
index 0000000000..dbb72a921e
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/osf_utimes.c
@@ -0,0 +1,37 @@
+/* utimes -- change file timestamps. Linux/Alpha/tv32 version.
+ 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; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <shlib-compat.h>
+
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
+
+#include <sys/time.h>
+#include <tv32-compat.h>
+
+int
+attribute_compat_text_section
+__utimes_tv32 (const char *filename, const struct timeval32 times32[2])
+{
+ struct timeval times[2];
+ times[0] = valid_timeval_to_timeval64 (times32[0]);
+ times[1] = valid_timeval_to_timeval64 (times32[1]);
+ return __utimes (filename, times);
+}
+
+compat_symbol (libc, __utimes_tv32, utimes, GLIBC_2_0);
+#endif
diff --git a/sysdeps/unix/sysv/linux/alpha/osf_wait4.c b/sysdeps/unix/sysv/linux/alpha/osf_wait4.c
new file mode 100644
index 0000000000..e8db554660
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/osf_wait4.c
@@ -0,0 +1,41 @@
+/* wait4 -- wait for process to change state. Linux/Alpha/tv32 version.
+ 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; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <shlib-compat.h>
+
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
+
+#include <sys/time.h>
+#include <sys/resource.h>
+#include <sys/wait.h>
+#include <tv32-compat.h>
+
+pid_t
+attribute_compat_text_section
+__wait4_tv32 (pid_t pid, int *status, int options, struct rusage32 *usage32)
+{
+ struct rusage usage64;
+ pid_t child = __wait4 (pid, status, options, &usage64);
+
+ if (child >= 0 && usage32 != NULL)
+ rusage64_to_rusage32 (usage32, &usage64);
+ return child;
+}
+
+compat_symbol (libc, __wait4_tv32, wait4, GLIBC_2_0);
+#endif
diff --git a/sysdeps/unix/sysv/linux/alpha/pt-vfork.S b/sysdeps/unix/sysv/linux/alpha/pt-vfork.S
deleted file mode 100644
index 7ecaa78dd0..0000000000
--- a/sysdeps/unix/sysv/linux/alpha/pt-vfork.S
+++ /dev/null
@@ -1,43 +0,0 @@
-/* vfork ABI-compatibility entry points for libpthread.
- Copyright (C) 2014-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <shlib-compat.h>
-
-/* libpthread used to have its own vfork implementation that differed
- from libc's only in having a pointless micro-optimization. There
- is no longer any use to having a separate copy in libpthread, but
- the historical ABI requires it. For static linking, there is no
- need to provide anything here--the libc version will be linked in.
- For shared library ABI compatibility, there must be __vfork and
- vfork symbols in libpthread.so. */
-
-#if (SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_20) \
- || SHLIB_COMPAT (libpthread, GLIBC_2_1_2, GLIBC_2_20))
-
-#include <vfork.S>
-
-#endif
-
-#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_20)
-compat_symbol (libpthread, __libc_vfork, vfork, GLIBC_2_0);
-#endif
-
-#if SHLIB_COMPAT (libpthread, GLIBC_2_1_2, GLIBC_2_20)
-strong_alias (__libc_vfork, __vfork_compat)
-compat_symbol (libpthread, __vfork_compat, __vfork, GLIBC_2_1_2);
-#endif
diff --git a/sysdeps/unix/sysv/linux/alpha/register-dump.h b/sysdeps/unix/sysv/linux/alpha/register-dump.h
index f693c68a44..cca692176e 100644
--- a/sysdeps/unix/sysv/linux/alpha/register-dump.h
+++ b/sysdeps/unix/sysv/linux/alpha/register-dump.h
@@ -1,5 +1,5 @@
/* Dump registers.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,10 +14,12 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#include <stddef.h>
#include <string.h>
+#include <ucontext.h>
+#include <sys/uio.h>
+#include <_itoa.h>
/* We will print the register dump in this format:
@@ -48,109 +50,190 @@
TA0: XXXXXXXXXXXXXXXX TA1: XXXXXXXXXXXXXXXX TA2: XXXXXXXXXXXXXXXX
*/
-#define NREGS (32+32+3)
-
-static const char __attribute__((aligned(8))) regnames[NREGS][8] =
-{
- " V0: ", " T0: ", " T1: ",
- " T2: ", " T3: ", " T4: ",
- " T5: ", " T6: ", " T7: ",
- " S0: ", " S1: ", " S2: ",
- " S3: ", " S4: ", " S5: ",
- " S6: ", " A0: ", " A1: ",
- " A2: ", " A3: ", " A4: ",
- " A5: ", " T8: ", " T9: ",
- " T10: ", " T11: ", " RA: ",
- " T12: ", " AT: ", " GP: ",
- " SP: ", " PC: ",
-
- " FP0: ", " FP1: ", " FP2: ",
- " FP3: ", " FP4: ", " FP5: ",
- " FP6: ", " FP7: ", " FP8: ",
- " FP9: ", " FP10: ", " FP11: ",
- " FP12: ", " FP13: ", " FP14: ",
- " FP15: ", " FP16: ", " FP17: ",
- " FP18: ", " FP19: ", " FP20: ",
- " FP21: ", " FP22: ", " FP23: ",
- " FP24: ", " FP25: ", " FP26: ",
- " FP27: ", " FP28: ", " FP29: ",
- " FP30: ", " FPCR: ",
-
- " TA0: ", " TA1: ", " TA2: "
-};
-
-#define O(FIELD, LF) offsetof(struct sigcontext, FIELD) + LF
-
-static const int offsets[NREGS] =
+static void
+hexvalue (unsigned long int value, char *buf, size_t len)
{
- O(sc_regs[0], 0), O(sc_regs[1], 0), O(sc_regs[2], 1),
- O(sc_regs[3], 0), O(sc_regs[4], 0), O(sc_regs[5], 1),
- O(sc_regs[6], 0), O(sc_regs[7], 0), O(sc_regs[8], 1),
- O(sc_regs[9], 0), O(sc_regs[10], 0), O(sc_regs[11], 1),
- O(sc_regs[12], 0), O(sc_regs[13], 0), O(sc_regs[14], 1),
- O(sc_regs[15], 0), O(sc_regs[16], 0), O(sc_regs[17], 1),
- O(sc_regs[18], 0), O(sc_regs[19], 0), O(sc_regs[20], 1),
- O(sc_regs[21], 0), O(sc_regs[22], 0), O(sc_regs[23], 1),
- O(sc_regs[24], 0), O(sc_regs[25], 0), O(sc_regs[26], 1),
- O(sc_regs[27], 0), O(sc_regs[28], 0), O(sc_regs[29], 1),
- O(sc_regs[30], 0), O(sc_pc, 2),
-
- O(sc_fpregs[0], 0), O(sc_fpregs[1], 0), O(sc_fpregs[2], 1),
- O(sc_fpregs[3], 0), O(sc_fpregs[4], 0), O(sc_fpregs[5], 1),
- O(sc_fpregs[6], 0), O(sc_fpregs[7], 0), O(sc_fpregs[8], 1),
- O(sc_fpregs[9], 0), O(sc_fpregs[10], 0), O(sc_fpregs[11], 1),
- O(sc_fpregs[12], 0), O(sc_fpregs[13], 0), O(sc_fpregs[14], 1),
- O(sc_fpregs[15], 0), O(sc_fpregs[16], 0), O(sc_fpregs[17], 1),
- O(sc_fpregs[18], 0), O(sc_fpregs[19], 0), O(sc_fpregs[20], 1),
- O(sc_fpregs[21], 0), O(sc_fpregs[22], 0), O(sc_fpregs[23], 1),
- O(sc_fpregs[24], 0), O(sc_fpregs[25], 0), O(sc_fpregs[26], 1),
- O(sc_fpregs[27], 0), O(sc_fpregs[28], 0), O(sc_fpregs[29], 1),
- O(sc_fpregs[30], 0), O(sc_fpcr, 2),
-
- O(sc_traparg_a0, 0), O(sc_traparg_a1, 0), O(sc_traparg_a2, 1)
-};
-
-#undef O
+ char *cp = _itoa_word (value, buf + len, 16, 0);
+ while (cp > buf)
+ *--cp = '0';
+}
static void
-register_dump (int fd, struct sigcontext *ctx)
+register_dump (int fd, struct ucontext_t *ctx)
{
- char buf[NREGS*(8+16) + 25 + 80];
- char *p = buf;
- size_t i;
-
- p = stpcpy (p, "Register dump:\n\n");
-
- for (i = 0; i < NREGS; ++i)
- {
- int this_offset, this_lf;
- unsigned long val;
- signed long j;
-
- this_offset = offsets[i];
- this_lf = this_offset & 7;
-
- val = *(unsigned long *)(((size_t)ctx + this_offset) & -8);
-
- memcpy (p, regnames[i], 8);
- p += 8;
-
- for (j = 60; j >= 0; j -= 4)
- {
- unsigned long x = (val >> j) & 15;
- x += x < 10 ? '0' : 'a' - 10;
- *p++ = x;
- }
-
- if (this_lf > 0)
- {
- if (this_lf > 1)
- *p++ = '\n';
- *p++ = '\n';
- }
- }
-
- write (fd, buf, p - buf);
+ struct iovec iov[31 * 2 + 2 /* REGS + PC. */
+ + 31 * 2 + 2 /* FREGS + FPCR. */
+ + (3 * 2) /* TA0, TA1, TA3. */
+ + 1 /* '\n'. */];
+ size_t nr = 0;
+
+#define ADD_STRING(str) \
+ iov[nr].iov_base = (char *) str; \
+ iov[nr].iov_len = strlen (str); \
+ ++nr
+#define ADD_MEM(str, len) \
+ iov[nr].iov_base = str; \
+ iov[nr].iov_len = len; \
+ ++nr
+
+ char regs[31][16];
+ char pc[16];
+ for (int i = 0; i < 31; i++)
+ hexvalue (ctx->uc_mcontext.sc_regs[i], regs[i], 16);
+ hexvalue (ctx->uc_mcontext.sc_pc, pc, 16);
+
+ /* Generate the output. */
+ ADD_STRING ("Register dump:\n\n V0: ");
+ ADD_MEM (regs[0], 16);
+ ADD_STRING (" T0: ");
+ ADD_MEM (regs[1], 16);
+ ADD_STRING (" T1: ");
+ ADD_MEM (regs[2], 16);
+ ADD_STRING ("\n T2: ");
+ ADD_MEM (regs[3], 16);
+ ADD_STRING (" T3: ");
+ ADD_MEM (regs[4], 16);
+ ADD_STRING (" T4: ");
+ ADD_MEM (regs[5], 16);
+ ADD_STRING ("\n T5: ");
+ ADD_MEM (regs[6], 16);
+ ADD_STRING (" T6: ");
+ ADD_MEM (regs[7], 16);
+ ADD_STRING (" T7: ");
+ ADD_MEM (regs[8], 16);
+ ADD_STRING ("\n S0: ");
+ ADD_MEM (regs[9], 16);
+ ADD_STRING (" S1: ");
+ ADD_MEM (regs[10], 16);
+ ADD_STRING (" S2: ");
+ ADD_MEM (regs[11], 16);
+ ADD_STRING ("\n S3: ");
+ ADD_MEM (regs[12], 16);
+ ADD_STRING (" S4: ");
+ ADD_MEM (regs[13], 16);
+ ADD_STRING (" S5: ");
+ ADD_MEM (regs[14], 16);
+ ADD_STRING ("\n S6: ");
+ ADD_MEM (regs[15], 16);
+ ADD_STRING (" A0: ");
+ ADD_MEM (regs[16], 16);
+ ADD_STRING (" A1: ");
+ ADD_MEM (regs[17], 16);
+ ADD_STRING ("\n A2: ");
+ ADD_MEM (regs[18], 16);
+ ADD_STRING (" A3: ");
+ ADD_MEM (regs[19], 16);
+ ADD_STRING (" A4: ");
+ ADD_MEM (regs[20], 16);
+ ADD_STRING ("\n A5: ");
+ ADD_MEM (regs[21], 16);
+ ADD_STRING (" T8: ");
+ ADD_MEM (regs[22], 16);
+ ADD_STRING (" T9: ");
+ ADD_MEM (regs[23], 16);
+ ADD_STRING ("\n T10: ");
+ ADD_MEM (regs[24], 16);
+ ADD_STRING (" T11: ");
+ ADD_MEM (regs[25], 16);
+ ADD_STRING (" RA: ");
+ ADD_MEM (regs[26], 16);
+ ADD_STRING ("\n T12: ");
+ ADD_MEM (regs[27], 16);
+ ADD_STRING (" AT: ");
+ ADD_MEM (regs[28], 16);
+ ADD_STRING (" GP: ");
+ ADD_MEM (regs[29], 16);
+ ADD_STRING ("\n SP: ");
+ ADD_MEM (regs[30], 16);
+ ADD_STRING (" PC: ");
+ ADD_MEM (pc, 16);
+
+ char fpregs[31][16];
+ char fpcr[16];
+ for (int i = 0; i < 31; i++)
+ hexvalue (ctx->uc_mcontext.sc_fpregs[i], fpregs[i], 16);
+ hexvalue (ctx->uc_mcontext.sc_fpcr, fpcr, 16);
+
+ ADD_STRING ("\n\n FP0: ");
+ ADD_MEM (fpregs[0], 16);
+ ADD_STRING (" FP1: ");
+ ADD_MEM (fpregs[1], 16);
+ ADD_STRING (" FP2: ");
+ ADD_MEM (fpregs[2], 16);
+ ADD_STRING ("\n FP3: ");
+ ADD_MEM (fpregs[3], 16);
+ ADD_STRING (" FP4: ");
+ ADD_MEM (fpregs[4], 16);
+ ADD_STRING (" FP5: ");
+ ADD_MEM (fpregs[5], 16);
+ ADD_STRING ("\n FP6: ");
+ ADD_MEM (fpregs[6], 16);
+ ADD_STRING (" FP7: ");
+ ADD_MEM (fpregs[7], 16);
+ ADD_STRING (" FP8: ");
+ ADD_MEM (fpregs[8], 16);
+ ADD_STRING ("\n FP9: ");
+ ADD_MEM (fpregs[9], 16);
+ ADD_STRING (" FP10: ");
+ ADD_MEM (fpregs[10], 16);
+ ADD_STRING (" FP11: ");
+ ADD_MEM (fpregs[11], 16);
+ ADD_STRING ("\n FP12: ");
+ ADD_MEM (fpregs[12], 16);
+ ADD_STRING (" FP13: ");
+ ADD_MEM (fpregs[13], 16);
+ ADD_STRING (" FP14: ");
+ ADD_MEM (fpregs[14], 16);
+ ADD_STRING ("\n FP15: ");
+ ADD_MEM (fpregs[15], 16);
+ ADD_STRING (" FP16: ");
+ ADD_MEM (fpregs[16], 16);
+ ADD_STRING (" FP17: ");
+ ADD_MEM (fpregs[17], 16);
+ ADD_STRING ("\n FP18: ");
+ ADD_MEM (fpregs[18], 16);
+ ADD_STRING (" FP19: ");
+ ADD_MEM (fpregs[19], 16);
+ ADD_STRING (" FP20: ");
+ ADD_MEM (fpregs[20], 16);
+ ADD_STRING ("\n FP21: ");
+ ADD_MEM (fpregs[21], 16);
+ ADD_STRING (" FP22: ");
+ ADD_MEM (fpregs[22], 16);
+ ADD_STRING (" FP23: ");
+ ADD_MEM (fpregs[23], 16);
+ ADD_STRING ("\n FP24: ");
+ ADD_MEM (fpregs[24], 16);
+ ADD_STRING (" FP25: ");
+ ADD_MEM (fpregs[25], 16);
+ ADD_STRING (" FP26: ");
+ ADD_MEM (fpregs[26], 16);
+ ADD_STRING ("\n FP27: ");
+ ADD_MEM (fpregs[27], 16);
+ ADD_STRING (" FP28: ");
+ ADD_MEM (fpregs[28], 16);
+ ADD_STRING (" FP29: ");
+ ADD_MEM (fpregs[29], 16);
+ ADD_STRING ("\n FP30: ");
+ ADD_MEM (fpregs[30], 16);
+ ADD_STRING (" FPCR: ");
+ ADD_MEM (fpcr, 16);
+
+ char traparg[3][16];
+ hexvalue (ctx->uc_mcontext.sc_traparg_a0, traparg[0], 16);
+ hexvalue (ctx->uc_mcontext.sc_traparg_a1, traparg[1], 16);
+ hexvalue (ctx->uc_mcontext.sc_traparg_a2, traparg[2], 16);
+ ADD_STRING ("\n\n TA0: ");
+ ADD_MEM (traparg[0], 16);
+ ADD_STRING (" TA1: ");
+ ADD_MEM (traparg[1], 16);
+ ADD_STRING (" TA2: ");
+ ADD_MEM (traparg[2], 16);
+
+ ADD_STRING ("\n");
+
+ /* Write the stuff out. */
+ writev (fd, iov, nr);
}
#define REGISTER_DUMP register_dump (fd, ctx)
diff --git a/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S b/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S
index ca25eee611..3de1437e91 100644
--- a/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S
+++ b/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson <rth@cygnus.com>, 1998
@@ -14,47 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
-/* On Alpha we desparately want to avoid having to issue an imb. Ordinarily
- the kernel would have to issue one after setting up the signal return
- stack, but the Linux rt_sigaction syscall is prepared to accept a pointer
- to the sigreturn syscall, instead of inlining it on the stack.
-
- This just about halves signal delivery time. */
-
- .text
-
-ENTRY(__syscall_rt_sigaction)
- cfi_startproc
- ldgp gp,0(pv)
-#ifdef PROF
- .set noat
- lda AT, _mcount
- jsr AT, (AT), _mcount
- .set at
-#endif
- .prologue 1
-
- beq a1, 0f
- ldl t0, 8(a1) # sa_flags
-
- ldah a4, __syscall_sigreturn(gp) !gprelhigh
- ldah t1, __syscall_rt_sigreturn(gp) !gprelhigh
- lda a4, __syscall_sigreturn(a4) !gprellow
- lda t1, __syscall_rt_sigreturn(t1) !gprellow
- and t0, 0x40, t0 # SA_SIGINFO
- cmovne t0, t1, a4
-
-0: ldi v0, __NR_rt_sigaction
- callsys
- bne a3, SYSCALL_ERROR_LABEL
- ret
- cfi_endproc
-PSEUDO_END(__syscall_rt_sigaction)
-
/* To enable unwinding through the signal frame without special hackery
elsewhere, describe the entire struct sigcontext with unwind info.
@@ -104,6 +67,8 @@ __syscall_sigreturn:
callsys
.size __syscall_sigreturn, .-__syscall_sigreturn
.type __syscall_sigreturn, @function
+ .global __syscall_sigreturn;
+ .hidden __syscall_sigreturn;
/* See above wrt including the nop. */
cfi_def_cfa_offset (176 + 648)
@@ -116,5 +81,7 @@ __syscall_rt_sigreturn:
callsys
.size __syscall_rt_sigreturn, .-__syscall_rt_sigreturn
.type __syscall_rt_sigreturn, @function
+ .global __syscall_rt_sigreturn;
+ .hidden __syscall_rt_sigreturn;
cfi_endproc
diff --git a/sysdeps/unix/sysv/linux/alpha/select.c b/sysdeps/unix/sysv/linux/alpha/select.c
index 9db925c4e2..2c4fc4c160 100644
--- a/sysdeps/unix/sysv/linux/alpha/select.c
+++ b/sysdeps/unix/sysv/linux/alpha/select.c
@@ -1,5 +1,5 @@
/* Linux/alpha select implementation.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/time.h>
#include <sys/types.h>
diff --git a/sysdeps/unix/sysv/linux/alpha/setcontext.S b/sysdeps/unix/sysv/linux/alpha/setcontext.S
index 5b7a806a6f..8017d40b17 100644
--- a/sysdeps/unix/sysv/linux/alpha/setcontext.S
+++ b/sysdeps/unix/sysv/linux/alpha/setcontext.S
@@ -1,5 +1,5 @@
/* Install given context.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <ucontext-offsets.h>
diff --git a/sysdeps/unix/sysv/linux/alpha/setfpucw.c b/sysdeps/unix/sysv/linux/alpha/setfpucw.c
index 4cbdd2db37..a24932f6db 100644
--- a/sysdeps/unix/sysv/linux/alpha/setfpucw.c
+++ b/sysdeps/unix/sysv/linux/alpha/setfpucw.c
@@ -1,5 +1,5 @@
/* Set FP exception mask and rounding mode.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fpu_control.h>
#include <fenv_libc.h>
diff --git a/sysdeps/unix/sysv/linux/alpha/setrlimit64.c b/sysdeps/unix/sysv/linux/alpha/setrlimit64.c
index 871c878b7e..a4e04796a7 100644
--- a/sysdeps/unix/sysv/linux/alpha/setrlimit64.c
+++ b/sysdeps/unix/sysv/linux/alpha/setrlimit64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2018 Free Software Foundation, Inc.
+/* Copyright (C) 2018-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define USE_VERSIONED_RLIMIT
#include <sysdeps/unix/sysv/linux/setrlimit64.c>
diff --git a/sysdeps/unix/sysv/linux/alpha/settimeofday.c b/sysdeps/unix/sysv/linux/alpha/settimeofday.c
new file mode 100644
index 0000000000..36a6901e4e
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/settimeofday.c
@@ -0,0 +1,22 @@
+/* settimeofday -- Set the current time of day. Linux/Alpha/tv64 version.
+ 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; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* We can use the generic implementation, but we have to override its
+ default symbol version. */
+#define VERSION_settimeofday GLIBC_2.1
+#include <time/settimeofday.c>
diff --git a/sysdeps/unix/sysv/linux/alpha/sigaction.c b/sysdeps/unix/sysv/linux/alpha/sigaction.c
deleted file mode 100644
index 8051043587..0000000000
--- a/sysdeps/unix/sysv/linux/alpha/sigaction.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Copyright (C) 2003-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <sys/cdefs.h>
-#include <stddef.h>
-
-/*
- * In order to get the hidden arguments for rt_sigaction set up
- * properly, we need to call the assembly version. Detect this in the
- * INLINE_SYSCALL macro, and fail to expand inline in that case.
- */
-
-#undef INLINE_SYSCALL
-#define INLINE_SYSCALL(name, nr, args...) \
- (__NR_##name == __NR_rt_sigaction \
- ? __syscall_rt_sigaction(args) \
- : INLINE_SYSCALL1(name, nr, args))
-
-struct kernel_sigaction;
-extern int __syscall_rt_sigaction (int, const struct kernel_sigaction *,
- struct kernel_sigaction *, size_t);
-
-#include <sysdeps/unix/sysv/linux/sigaction.c>
diff --git a/sysdeps/unix/sysv/linux/alpha/sigcontextinfo.h b/sysdeps/unix/sysv/linux/alpha/sigcontextinfo.h
index a0a57f3988..1158beae7b 100644
--- a/sysdeps/unix/sysv/linux/alpha/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/alpha/sigcontextinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -13,7 +13,18 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#define SIGCONTEXT int _code, struct sigcontext *
-#define GET_PC(ctx) ((void *) (ctx)->sc_pc)
+#ifndef _SIGCONTEXTINFO_H
+#define _SIGCONTEXTINFO_H
+
+#include <stdint.h>
+#include <sys/ucontext.h>
+
+static inline uintptr_t
+sigcontext_get_pc (const ucontext_t *ctx)
+{
+ return ctx->uc_mcontext.sc_pc;
+}
+
+#endif
diff --git a/sysdeps/unix/sysv/linux/alpha/sigprocmask.c b/sysdeps/unix/sysv/linux/alpha/sigprocmask.c
index a79f3e147d..0e807179bf 100644
--- a/sysdeps/unix/sysv/linux/alpha/sigprocmask.c
+++ b/sysdeps/unix/sysv/linux/alpha/sigprocmask.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Mosberger (davidm@azstarnet.com).
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/alpha/sizes.h b/sysdeps/unix/sysv/linux/alpha/sizes.h
index 9a48a825d9..28786b510c 100644
--- a/sysdeps/unix/sysv/linux/alpha/sizes.h
+++ b/sysdeps/unix/sysv/linux/alpha/sizes.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SIZES_H
#define _SIZES_H 1
diff --git a/sysdeps/unix/sysv/linux/alpha/swapcontext.S b/sysdeps/unix/sysv/linux/alpha/swapcontext.S
index 686b6b6344..691ee3fe4e 100644
--- a/sysdeps/unix/sysv/linux/alpha/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/alpha/swapcontext.S
@@ -1,5 +1,5 @@
/* Save current context and install the given one.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <ucontext-offsets.h>
diff --git a/sysdeps/unix/sysv/linux/alpha/sys/acct.h b/sysdeps/unix/sysv/linux/alpha/sys/acct.h
index f6e55ad85d..8552cef9ff 100644
--- a/sysdeps/unix/sysv/linux/alpha/sys/acct.h
+++ b/sysdeps/unix/sysv/linux/alpha/sys/acct.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_ACCT_H
diff --git a/sysdeps/unix/sysv/linux/alpha/sys/io.h b/sysdeps/unix/sysv/linux/alpha/sys/io.h
index df50f7e7d5..ca56f85b6a 100644
--- a/sysdeps/unix/sysv/linux/alpha/sys/io.h
+++ b/sysdeps/unix/sysv/linux/alpha/sys/io.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_IO_H
diff --git a/sysdeps/unix/sysv/linux/alpha/sys/procfs.h b/sysdeps/unix/sysv/linux/alpha/sys/procfs.h
deleted file mode 100644
index a6cbb025fb..0000000000
--- a/sysdeps/unix/sysv/linux/alpha/sys/procfs.h
+++ /dev/null
@@ -1,127 +0,0 @@
-/* Copyright (C) 1996-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_PROCFS_H
-#define _SYS_PROCFS_H 1
-
-/* This is somehow modelled after the file of the same name on SysVr4
- systems. It provides a definition of the core file format for ELF
- used on Linux. */
-
-#include <features.h>
-#include <signal.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#include <sys/ucontext.h>
-#include <sys/user.h>
-
-__BEGIN_DECLS
-
-/*
- * The OSF/1 version of <sys/procfs.h> makes gregset_t 46 entries long.
- * I have no idea why that is so. For now, we just leave it at 33
- * (32 general regs + processor status word).
- */
-#define ELF_NGREG 33
-#define ELF_NFPREG 32
-
-typedef unsigned long elf_greg_t;
-typedef elf_greg_t elf_gregset_t[ELF_NGREG];
-
-typedef double elf_fpreg_t;
-typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
-
-struct elf_siginfo
- {
- int si_signo; /* Signal number. */
- int si_code; /* Extra code. */
- int si_errno; /* Errno. */
- };
-
-/* Definitions to generate Intel SVR4-like core files. These mostly
- have the same names as the SVR4 types with "elf_" tacked on the
- front to prevent clashes with linux definitions, and the typedef
- forms have been avoided. This is mostly like the SVR4 structure,
- but more Linuxy, with things that Linux does not support and which
- gdb doesn't really use excluded. Fields present but not used are
- marked with "XXX". */
-struct elf_prstatus
- {
-#if 0
- long int pr_flags; /* XXX Process flags. */
- short int pr_why; /* XXX Reason for process halt. */
- short int pr_what; /* XXX More detailed reason. */
-#endif
- struct elf_siginfo pr_info; /* Info associated with signal. */
- short int pr_cursig; /* Current signal. */
- unsigned long int pr_sigpend; /* Set of pending signals. */
- unsigned long int pr_sighold; /* Set of held signals. */
-#if 0
- stack_t pr_altstack; /* Alternate stack info. */
- struct sigaction pr_action; /* Signal action for current sig. */
-#endif
- __pid_t pr_pid;
- __pid_t pr_ppid;
- __pid_t pr_pgrp;
- __pid_t pr_sid;
- struct timeval pr_utime; /* User time. */
- struct timeval pr_stime; /* System time. */
- struct timeval pr_cutime; /* Cumulative user time. */
- struct timeval pr_cstime; /* Cumulative system time. */
-#if 0
- long int pr_instr; /* Current instruction. */
-#endif
- elf_gregset_t pr_reg; /* GP registers. */
- int pr_fpvalid; /* True if math copro being used. */
- };
-
-
-#define ELF_PRARGSZ (80) /* Number of chars for args */
-
-struct elf_prpsinfo
- {
- char pr_state; /* Numeric process state. */
- char pr_sname; /* Char for pr_state. */
- char pr_zomb; /* Zombie. */
- char pr_nice; /* Nice val. */
- unsigned long int pr_flag; /* Flags. */
- unsigned int pr_uid;
- unsigned int pr_gid;
- int pr_pid, pr_ppid, pr_pgrp, pr_sid;
- /* Lots missing */
- char pr_fname[16]; /* Filename of executable. */
- char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
- };
-
-/* Addresses. */
-typedef void *psaddr_t;
-
-/* Register sets. Linux has different names. */
-typedef gregset_t prgregset_t;
-typedef fpregset_t prfpregset_t;
-
-/* We don't have any differences between processes and threads,
- therefore habe only ine PID type. */
-typedef __pid_t lwpid_t;
-
-
-typedef struct elf_prstatus prstatus_t;
-typedef struct elf_prpsinfo prpsinfo_t;
-
-__END_DECLS
-
-#endif /* sys/procfs.h */
diff --git a/sysdeps/unix/sysv/linux/alpha/sys/ucontext.h b/sysdeps/unix/sysv/linux/alpha/sys/ucontext.h
index 6aa614e43d..88f6831207 100644
--- a/sysdeps/unix/sysv/linux/alpha/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/alpha/sys/ucontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_UCONTEXT_H
#define _SYS_UCONTEXT_H 1
diff --git a/sysdeps/unix/sysv/linux/alpha/sys/user.h b/sysdeps/unix/sysv/linux/alpha/sys/user.h
index 548afcf0ce..737e567764 100644
--- a/sysdeps/unix/sysv/linux/alpha/sys/user.h
+++ b/sysdeps/unix/sysv/linux/alpha/sys/user.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_USER_H
#define _SYS_USER_H 1
diff --git a/sysdeps/unix/sysv/linux/alpha/syscall.S b/sysdeps/unix/sysv/linux/alpha/syscall.S
index 1cf18fb82f..f66de7e591 100644
--- a/sysdeps/unix/sysv/linux/alpha/syscall.S
+++ b/sysdeps/unix/sysv/linux/alpha/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Mosberger <davidm@azstarnet.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/alpha/syscalls.list b/sysdeps/unix/sysv/linux/alpha/syscalls.list
index 12cd021b60..95a27e18e8 100644
--- a/sysdeps/unix/sysv/linux/alpha/syscalls.list
+++ b/sysdeps/unix/sysv/linux/alpha/syscalls.list
@@ -1,4 +1,4 @@
-# File name Caller Syscall name # args Strong name Weak names
+# File name Caller Syscall name Args Strong name Weak names
sigstack - sigstack 2 sigstack
@@ -22,23 +22,13 @@ pciconfig_read EXTRA pciconfig_read 5 pciconfig_read
pciconfig_write EXTRA pciconfig_write 5 pciconfig_write
pciconfig_iobase EXTRA pciconfig_iobase 3 __pciconfig_iobase pciconfig_iobase
-# support old timeval32 entry points
-osf_gettimeofday - osf_gettimeofday 2 __gettimeofday_tv32 __gettimeofday@GLIBC_2.0 gettimeofday@GLIBC_2.0
-osf_settimeofday - osf_settimeofday 2 __settimeofday_tv32 settimeofday@GLIBC_2.0
-osf_getitimer - osf_getitimer 2 __getitimer_tv32 getitimer@GLIBC_2.0
-osf_setitimer - osf_setitimer 3 __setitimer_tv32 setitimer@GLIBC_2.0
-osf_utimes - osf_utimes 2 __utimes_tv32 utimes@GLIBC_2.0
-osf_getrusage - osf_getrusage 2 __getrusage_tv32 getrusage@GLIBC_2.0
-osf_wait4 - osf_wait4 4 __wait4_tv32 wait4@GLIBC_2.0
-
-# support new timeval64 entry points
-gettimeofday - gettimeofday 2 __GI___gettimeofday gettimeofday@@GLIBC_2.1 __gettimeofday@@GLIBC_2.1
-settimeofday - settimeofday 2 __settimeofday settimeofday@@GLIBC_2.1
-getitimer - getitimer 2 __getitimer getitimer@@GLIBC_2.1
-setitimer - setitimer 3 __setitimer setitimer@@GLIBC_2.1
-utimes - utimes 2 __utimes utimes@@GLIBC_2.1
-getrusage - getrusage 2 __getrusage getrusage@@GLIBC_2.1
-wait4 - wait4 4 __wait4 wait4@@GLIBC_2.1
+# timeval64 entry points (see osf_*.c for GLIBC_2.0 timeval32 equivalents)
+gettimeofday - gettimeofday i:pP __GI___gettimeofday gettimeofday@@GLIBC_2.1 __gettimeofday@@GLIBC_2.1
+getitimer - getitimer i:ip __getitimer getitimer@@GLIBC_2.1
+setitimer - setitimer i:ipP __setitimer setitimer@@GLIBC_2.1
+utimes - utimes i:sp __utimes utimes@@GLIBC_2.1
+getrusage - getrusage i:ip __getrusage getrusage@@GLIBC_2.1
+wait4 - wait4 i:iWiP __wait4 wait4@@GLIBC_2.1
# avoid 64-bit aliases on 32-bit statfs syscalls
fstatfs - fstatfs i:ip __fstatfs fstatfs
diff --git a/sysdeps/unix/sysv/linux/alpha/sysconf.c b/sysdeps/unix/sysv/linux/alpha/sysconf.c
index a1d56ca88b..0e198b53d7 100644
--- a/sysdeps/unix/sysv/linux/alpha/sysconf.c
+++ b/sysdeps/unix/sysv/linux/alpha/sysconf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <stdbool.h>
diff --git a/sysdeps/unix/sysv/linux/alpha/sysdep.h b/sysdeps/unix/sysv/linux/alpha/sysdep.h
index 080405021f..acb9de44c2 100644
--- a/sysdeps/unix/sysv/linux/alpha/sysdep.h
+++ b/sysdeps/unix/sysv/linux/alpha/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>, August 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LINUX_ALPHA_SYSDEP_H
#define _LINUX_ALPHA_SYSDEP_H 1
@@ -51,7 +51,9 @@
* Some syscalls no Linux program should know about:
*/
#define __NR_osf_sigprocmask 48
-#define __NR_osf_shmat 209
+#ifndef __NR_osf_shmat
+# define __NR_osf_shmat 209
+#endif
#define __NR_osf_getsysinfo 256
#define __NR_osf_setsysinfo 257
@@ -72,27 +74,4 @@
#define SINGLE_THREAD_BY_GLOBAL 1
-/*
- * In order to get the hidden arguments for rt_sigaction set up
- * properly, we need to call the assembly version. This shouldn't
- * happen except for inside sigaction.c, where we handle this
- * specially. Catch other uses and error.
- */
-
-#undef INLINE_SYSCALL
-#define INLINE_SYSCALL(name, nr, args...) \
-({ \
- extern char ChEcK[__NR_##name == __NR_rt_sigaction ? -1 : 1] \
- __attribute__((unused)); \
- INLINE_SYSCALL1(name, nr, args); \
-})
-
-#undef INTERNAL_SYSCALL
-#define INTERNAL_SYSCALL(name, err_out, nr, args...) \
-({ \
- extern char ChEcK[__NR_##name == __NR_rt_sigaction ? -1 : 1] \
- __attribute__((unused)); \
- INTERNAL_SYSCALL1(name, err_out, nr, args); \
-})
-
#endif /* _LINUX_ALPHA_SYSDEP_H */
diff --git a/sysdeps/unix/sysv/linux/alpha/tv32-compat.h b/sysdeps/unix/sysv/linux/alpha/tv32-compat.h
new file mode 100644
index 0000000000..0fbf284bb5
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/tv32-compat.h
@@ -0,0 +1,124 @@
+/* Compatibility definitions for `struct timeval' with 32-bit time_t.
+ 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; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _TV32_COMPAT_H
+#define _TV32_COMPAT_H 1
+
+#include <features.h>
+
+#include <bits/types.h>
+#include <bits/types/time_t.h>
+#include <bits/types/struct_timeval.h>
+#include <bits/types/struct_timespec.h>
+#include <bits/types/struct_rusage.h>
+
+#include <stdint.h> // for INT32_MAX
+#include <string.h> // for memset
+
+#define TV_USEC_MAX 999999 // 10**6 - 1
+
+/* A version of 'struct timeval' with 32-bit time_t. */
+struct timeval32
+{
+ int32_t tv_sec;
+ int32_t tv_usec;
+};
+
+/* Structures containing 'struct timeval' with 32-bit time_t. */
+struct itimerval32
+{
+ struct timeval32 it_interval;
+ struct timeval32 it_value;
+};
+
+struct rusage32
+{
+ struct timeval32 ru_utime; /* user time used */
+ struct timeval32 ru_stime; /* system time used */
+ long ru_maxrss; /* maximum resident set size */
+ long ru_ixrss; /* integral shared memory size */
+ long ru_idrss; /* integral unshared data size */
+ long ru_isrss; /* integral unshared stack size */
+ long ru_minflt; /* page reclaims */
+ long ru_majflt; /* page faults */
+ long ru_nswap; /* swaps */
+ long ru_inblock; /* block input operations */
+ long ru_oublock; /* block output operations */
+ long ru_msgsnd; /* messages sent */
+ long ru_msgrcv; /* messages received */
+ long ru_nsignals; /* signals received */
+ long ru_nvcsw; /* voluntary context switches */
+ long ru_nivcsw; /* involuntary " */
+};
+
+/* Conversion functions. If the seconds field of a timeval32 would
+ overflow, they write { INT32_MAX, TV_USEC_MAX } to the output. */
+
+static inline struct timeval
+valid_timeval_to_timeval64 (const struct timeval32 tv)
+{
+ return (struct timeval) { tv.tv_sec, tv.tv_usec };
+}
+
+static inline struct timeval32
+valid_timeval64_to_timeval (const struct timeval tv64)
+{
+ if (__glibc_unlikely (tv64.tv_sec > (time_t) INT32_MAX))
+ return (struct timeval32) { INT32_MAX, TV_USEC_MAX};
+ return (struct timeval32) { tv64.tv_sec, tv64.tv_usec };
+}
+
+static inline struct timespec
+valid_timeval32_to_timespec (const struct timeval32 tv)
+{
+ return (struct timespec) { tv.tv_sec, tv.tv_usec * 1000 };
+}
+
+static inline struct timeval32
+valid_timespec_to_timeval32 (const struct timespec ts)
+{
+ return (struct timeval32) { (time_t) ts.tv_sec, ts.tv_nsec / 1000 };
+}
+
+static inline void
+rusage64_to_rusage32 (struct rusage32 *restrict r32,
+ const struct rusage *restrict r64)
+{
+ /* Make sure the entire output structure is cleared, including
+ padding and reserved fields. */
+ memset (r32, 0, sizeof *r32);
+
+ r32->ru_utime = valid_timeval64_to_timeval (r64->ru_utime);
+ r32->ru_stime = valid_timeval64_to_timeval (r64->ru_stime);
+ r32->ru_maxrss = r64->ru_maxrss;
+ r32->ru_ixrss = r64->ru_ixrss;
+ r32->ru_idrss = r64->ru_idrss;
+ r32->ru_isrss = r64->ru_isrss;
+ r32->ru_minflt = r64->ru_minflt;
+ r32->ru_majflt = r64->ru_majflt;
+ r32->ru_nswap = r64->ru_nswap;
+ r32->ru_inblock = r64->ru_inblock;
+ r32->ru_oublock = r64->ru_oublock;
+ r32->ru_msgsnd = r64->ru_msgsnd;
+ r32->ru_msgrcv = r64->ru_msgrcv;
+ r32->ru_nsignals = r64->ru_nsignals;
+ r32->ru_nvcsw = r64->ru_nvcsw;
+ r32->ru_nivcsw = r64->ru_nivcsw;
+}
+
+#endif /* tv32-compat.h */
diff --git a/sysdeps/unix/sysv/linux/alpha/vfork.S b/sysdeps/unix/sysv/linux/alpha/vfork.S
index 73333da583..3f8126ce22 100644
--- a/sysdeps/unix/sysv/linux/alpha/vfork.S
+++ b/sysdeps/unix/sysv/linux/alpha/vfork.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <tcb-offsets.h>
diff --git a/sysdeps/unix/sysv/linux/alpha/xstat.c b/sysdeps/unix/sysv/linux/alpha/xstat.c
index 67ef9d109d..39ed084d97 100644
--- a/sysdeps/unix/sysv/linux/alpha/xstat.c
+++ b/sysdeps/unix/sysv/linux/alpha/xstat.c
@@ -1,5 +1,5 @@
/* xstat using old-style Unix stat system call.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __xstat64 __xstat64_disable
diff --git a/sysdeps/unix/sysv/linux/alpha/xstatconv.c b/sysdeps/unix/sysv/linux/alpha/xstatconv.c
index f77af380ff..fcb01ee597 100644
--- a/sysdeps/unix/sysv/linux/alpha/xstatconv.c
+++ b/sysdeps/unix/sysv/linux/alpha/xstatconv.c
@@ -1,5 +1,5 @@
/* Convert between the kernel's `struct stat' format, and libc's.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <string.h>
diff --git a/sysdeps/unix/sysv/linux/alpha/xstatconv.h b/sysdeps/unix/sysv/linux/alpha/xstatconv.h
index 0ebb9c7339..dd64764382 100644
--- a/sysdeps/unix/sysv/linux/alpha/xstatconv.h
+++ b/sysdeps/unix/sysv/linux/alpha/xstatconv.h
@@ -1,5 +1,5 @@
/* Convert between the kernel's `struct stat' format, and libc's.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/syscall.h>
diff --git a/sysdeps/unix/sysv/linux/alphasort64.c b/sysdeps/unix/sysv/linux/alphasort64.c
index 7bacdff561..3c9fa09748 100644
--- a/sysdeps/unix/sysv/linux/alphasort64.c
+++ b/sysdeps/unix/sysv/linux/alphasort64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define alphasort __no_alphasort_decl
#include <dirent.h>
diff --git a/sysdeps/unix/sysv/linux/arch-fork.h b/sysdeps/unix/sysv/linux/arch-fork.h
index 046d9fc60d..2c2876d3e8 100644
--- a/sysdeps/unix/sysv/linux/arch-fork.h
+++ b/sysdeps/unix/sysv/linux/arch-fork.h
@@ -1,5 +1,5 @@
/* arch_fork definition for Linux fork implementation.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef __ARCH_FORK_H
#define __ARCH_FORK_H
diff --git a/sysdeps/unix/sysv/linux/arm/Makefile b/sysdeps/unix/sysv/linux/arm/Makefile
index 4adc35de04..d7a2f6a8a7 100644
--- a/sysdeps/unix/sysv/linux/arm/Makefile
+++ b/sysdeps/unix/sysv/linux/arm/Makefile
@@ -5,7 +5,7 @@ endif
ifeq ($(subdir),misc)
sysdep_routines += ioperm
-sysdep_headers += sys/elf.h sys/io.h
+sysdep_headers += sys/elf.h
endif
ifeq ($(subdir),signal)
diff --git a/sysdeps/unix/sysv/linux/arm/____longjmp_chk.S b/sysdeps/unix/sysv/linux/arm/____longjmp_chk.S
index 1b2901a221..7c0bbddea4 100644
--- a/sysdeps/unix/sysv/linux/arm/____longjmp_chk.S
+++ b/sysdeps/unix/sysv/linux/arm/____longjmp_chk.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S b/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S
index 871702317a..8b0f6b24a4 100644
--- a/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S
+++ b/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/arm/arm-features.h b/sysdeps/unix/sysv/linux/arm/arm-features.h
index 92044a61a2..06bbd49f07 100644
--- a/sysdeps/unix/sysv/linux/arm/arm-features.h
+++ b/sysdeps/unix/sysv/linux/arm/arm-features.h
@@ -1,5 +1,5 @@
/* Macros to test for CPU features on ARM. Linux version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LINUX_ARM_FEATURES_H
#define _LINUX_ARM_FEATURES_H 1
diff --git a/sysdeps/unix/sysv/linux/arm/atomic-machine.h b/sysdeps/unix/sysv/linux/arm/atomic-machine.h
index ad165274d8..2bfa07f833 100644
--- a/sysdeps/unix/sysv/linux/arm/atomic-machine.h
+++ b/sysdeps/unix/sysv/linux/arm/atomic-machine.h
@@ -1,5 +1,5 @@
/* Atomic operations. ARM/Linux version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
@@ -49,16 +49,23 @@
declarations of A_OLDVAL et al because when NEWVAL or OLDVAL is of the
form *PTR and PTR has a 'volatile ... *' type, then __typeof (*PTR) has
a 'volatile ...' type and this triggers -Wvolatile-register-var to
- complain about 'register volatile ... asm ("reg")'. */
+ complain about 'register volatile ... asm ("reg")'.
+
+ We use the same union trick in the declaration of A_PTR because when
+ MEM is of the from *PTR and PTR has a 'const ... *' type, then __typeof
+ (*PTR) has a 'const ...' type and this enables the compiler to substitute
+ the variable with its initializer in asm statements, which may cause the
+ corresponding operand to appear in a different register. */
#ifdef __thumb2__
/* Thumb-2 has ldrex/strex. However it does not have barrier instructions,
so we still need to use the kernel helper. */
# define __arm_assisted_compare_and_exchange_val_32_acq(mem, newval, oldval) \
- ({ union { __typeof (oldval) a; uint32_t v; } oldval_arg = { .a = (oldval) };\
+ ({ union { __typeof (mem) a; uint32_t v; } mem_arg = { .a = (mem) }; \
+ union { __typeof (oldval) a; uint32_t v; } oldval_arg = { .a = (oldval) };\
union { __typeof (newval) a; uint32_t v; } newval_arg = { .a = (newval) };\
register uint32_t a_oldval asm ("r0"); \
register uint32_t a_newval asm ("r1") = newval_arg.v; \
- register __typeof (mem) a_ptr asm ("r2") = (mem); \
+ register uint32_t a_ptr asm ("r2") = mem_arg.v; \
register uint32_t a_tmp asm ("r3"); \
register uint32_t a_oldval2 asm ("r4") = oldval_arg.v; \
__asm__ __volatile__ \
@@ -79,11 +86,12 @@
(__typeof (oldval)) a_tmp; })
#else
# define __arm_assisted_compare_and_exchange_val_32_acq(mem, newval, oldval) \
- ({ union { __typeof (oldval) a; uint32_t v; } oldval_arg = { .a = (oldval) };\
+ ({ union { __typeof (mem) a; uint32_t v; } mem_arg = { .a = (mem) }; \
+ union { __typeof (oldval) a; uint32_t v; } oldval_arg = { .a = (oldval) };\
union { __typeof (newval) a; uint32_t v; } newval_arg = { .a = (newval) };\
register uint32_t a_oldval asm ("r0"); \
register uint32_t a_newval asm ("r1") = newval_arg.v; \
- register __typeof (mem) a_ptr asm ("r2") = (mem); \
+ register uint32_t a_ptr asm ("r2") = mem_arg.v; \
register uint32_t a_tmp asm ("r3"); \
register uint32_t a_oldval2 asm ("r4") = oldval_arg.v; \
__asm__ __volatile__ \
diff --git a/sysdeps/unix/sysv/linux/arm/be/Implies b/sysdeps/unix/sysv/linux/arm/be/Implies
new file mode 100644
index 0000000000..ee17c57671
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/arm/be/Implies
@@ -0,0 +1 @@
+unix/sysv/linux/arm
diff --git a/sysdeps/unix/sysv/linux/arm/be/Versions b/sysdeps/unix/sysv/linux/arm/be/Versions
new file mode 100644
index 0000000000..a50cd57630
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/arm/be/Versions
@@ -0,0 +1,5 @@
+libc {
+ GLIBC_2.31 {
+ msgctl; semctl; shmctl;
+ }
+}
diff --git a/sysdeps/unix/sysv/linux/arm/ld.abilist b/sysdeps/unix/sysv/linux/arm/be/ld.abilist
index a301c6ebc4..a301c6ebc4 100644
--- a/sysdeps/unix/sysv/linux/arm/ld.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/ld.abilist
diff --git a/sysdeps/unix/sysv/linux/arm/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/arm/be/libBrokenLocale.abilist
index 7e60a808d8..7e60a808d8 100644
--- a/sysdeps/unix/sysv/linux/arm/libBrokenLocale.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libBrokenLocale.abilist
diff --git a/sysdeps/unix/sysv/linux/arm/libanl.abilist b/sysdeps/unix/sysv/linux/arm/be/libanl.abilist
index a8fafedb66..a8fafedb66 100644
--- a/sysdeps/unix/sysv/linux/arm/libanl.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libanl.abilist
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
new file mode 100644
index 0000000000..b152c0e24a
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -0,0 +1,2182 @@
+GLIBC_2.10 __cxa_at_quick_exit F
+GLIBC_2.10 __posix_getopt F
+GLIBC_2.10 accept4 F
+GLIBC_2.10 endsgent F
+GLIBC_2.10 fallocate F
+GLIBC_2.10 fgetsgent F
+GLIBC_2.10 fgetsgent_r F
+GLIBC_2.10 getsgent F
+GLIBC_2.10 getsgent_r F
+GLIBC_2.10 getsgnam F
+GLIBC_2.10 getsgnam_r F
+GLIBC_2.10 malloc_info F
+GLIBC_2.10 preadv F
+GLIBC_2.10 preadv64 F
+GLIBC_2.10 psiginfo F
+GLIBC_2.10 putsgent F
+GLIBC_2.10 pwritev F
+GLIBC_2.10 pwritev64 F
+GLIBC_2.10 quick_exit F
+GLIBC_2.10 register_printf_modifier F
+GLIBC_2.10 register_printf_specifier F
+GLIBC_2.10 register_printf_type F
+GLIBC_2.10 setsgent F
+GLIBC_2.10 sgetsgent F
+GLIBC_2.10 sgetsgent_r F
+GLIBC_2.11 __longjmp_chk F
+GLIBC_2.11 execvpe F
+GLIBC_2.11 fallocate64 F
+GLIBC_2.11 mkostemps F
+GLIBC_2.11 mkostemps64 F
+GLIBC_2.11 mkstemps F
+GLIBC_2.11 mkstemps64 F
+GLIBC_2.12 _sys_errlist D 0x21c
+GLIBC_2.12 _sys_nerr D 0x4
+GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 recvmmsg F
+GLIBC_2.12 sys_errlist D 0x21c
+GLIBC_2.12 sys_nerr D 0x4
+GLIBC_2.13 fanotify_init F
+GLIBC_2.13 fanotify_mark F
+GLIBC_2.13 prlimit F
+GLIBC_2.13 prlimit64 F
+GLIBC_2.14 clock_adjtime F
+GLIBC_2.14 name_to_handle_at F
+GLIBC_2.14 open_by_handle_at F
+GLIBC_2.14 sendmmsg F
+GLIBC_2.14 setns F
+GLIBC_2.14 syncfs F
+GLIBC_2.15 __fdelt_chk F
+GLIBC_2.15 __fdelt_warn F
+GLIBC_2.15 posix_spawn F
+GLIBC_2.15 posix_spawnp F
+GLIBC_2.15 process_vm_readv F
+GLIBC_2.15 process_vm_writev F
+GLIBC_2.15 scandirat F
+GLIBC_2.15 scandirat64 F
+GLIBC_2.16 __getauxval F
+GLIBC_2.16 __poll_chk F
+GLIBC_2.16 __ppoll_chk F
+GLIBC_2.16 aligned_alloc F
+GLIBC_2.16 c16rtomb F
+GLIBC_2.16 c32rtomb F
+GLIBC_2.16 getauxval F
+GLIBC_2.16 mbrtoc16 F
+GLIBC_2.16 mbrtoc32 F
+GLIBC_2.16 timespec_get F
+GLIBC_2.17 clock_getcpuclockid F
+GLIBC_2.17 clock_getres F
+GLIBC_2.17 clock_gettime F
+GLIBC_2.17 clock_nanosleep F
+GLIBC_2.17 clock_settime F
+GLIBC_2.17 secure_getenv F
+GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.22 fmemopen F
+GLIBC_2.23 fts64_children F
+GLIBC_2.23 fts64_close F
+GLIBC_2.23 fts64_open F
+GLIBC_2.23 fts64_read F
+GLIBC_2.23 fts64_set F
+GLIBC_2.24 quick_exit F
+GLIBC_2.25 __explicit_bzero_chk F
+GLIBC_2.25 explicit_bzero F
+GLIBC_2.25 getentropy F
+GLIBC_2.25 getrandom F
+GLIBC_2.25 strfromd F
+GLIBC_2.25 strfromf F
+GLIBC_2.25 strfroml F
+GLIBC_2.26 preadv2 F
+GLIBC_2.26 preadv64v2 F
+GLIBC_2.26 pwritev2 F
+GLIBC_2.26 pwritev64v2 F
+GLIBC_2.26 reallocarray F
+GLIBC_2.27 copy_file_range F
+GLIBC_2.27 glob F
+GLIBC_2.27 glob64 F
+GLIBC_2.27 memfd_create F
+GLIBC_2.27 mlock2 F
+GLIBC_2.27 pkey_alloc F
+GLIBC_2.27 pkey_free F
+GLIBC_2.27 pkey_get F
+GLIBC_2.27 pkey_mprotect F
+GLIBC_2.27 pkey_set F
+GLIBC_2.27 strfromf32 F
+GLIBC_2.27 strfromf32x F
+GLIBC_2.27 strfromf64 F
+GLIBC_2.27 strtof32 F
+GLIBC_2.27 strtof32_l F
+GLIBC_2.27 strtof32x F
+GLIBC_2.27 strtof32x_l F
+GLIBC_2.27 strtof64 F
+GLIBC_2.27 strtof64_l F
+GLIBC_2.27 wcstof32 F
+GLIBC_2.27 wcstof32_l F
+GLIBC_2.27 wcstof32x F
+GLIBC_2.27 wcstof32x_l F
+GLIBC_2.27 wcstof64 F
+GLIBC_2.27 wcstof64_l F
+GLIBC_2.28 fcntl F
+GLIBC_2.28 fcntl64 F
+GLIBC_2.28 renameat2 F
+GLIBC_2.28 statx F
+GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_equal F
+GLIBC_2.28 thrd_sleep F
+GLIBC_2.28 thrd_yield F
+GLIBC_2.29 getcpu F
+GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
+GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
+GLIBC_2.30 getdents64 F
+GLIBC_2.30 gettid F
+GLIBC_2.30 tgkill F
+GLIBC_2.30 twalk_r F
+GLIBC_2.31 msgctl F
+GLIBC_2.31 semctl F
+GLIBC_2.31 shmctl F
+GLIBC_2.4 _Exit F
+GLIBC_2.4 _IO_2_1_stderr_ D 0xa0
+GLIBC_2.4 _IO_2_1_stdin_ D 0xa0
+GLIBC_2.4 _IO_2_1_stdout_ D 0xa0
+GLIBC_2.4 _IO_adjust_column F
+GLIBC_2.4 _IO_adjust_wcolumn F
+GLIBC_2.4 _IO_default_doallocate F
+GLIBC_2.4 _IO_default_finish F
+GLIBC_2.4 _IO_default_pbackfail F
+GLIBC_2.4 _IO_default_uflow F
+GLIBC_2.4 _IO_default_xsgetn F
+GLIBC_2.4 _IO_default_xsputn F
+GLIBC_2.4 _IO_do_write F
+GLIBC_2.4 _IO_doallocbuf F
+GLIBC_2.4 _IO_fclose F
+GLIBC_2.4 _IO_fdopen F
+GLIBC_2.4 _IO_feof F
+GLIBC_2.4 _IO_ferror F
+GLIBC_2.4 _IO_fflush F
+GLIBC_2.4 _IO_fgetpos F
+GLIBC_2.4 _IO_fgetpos64 F
+GLIBC_2.4 _IO_fgets F
+GLIBC_2.4 _IO_file_attach F
+GLIBC_2.4 _IO_file_close F
+GLIBC_2.4 _IO_file_close_it F
+GLIBC_2.4 _IO_file_doallocate F
+GLIBC_2.4 _IO_file_finish F
+GLIBC_2.4 _IO_file_fopen F
+GLIBC_2.4 _IO_file_init F
+GLIBC_2.4 _IO_file_jumps D 0x54
+GLIBC_2.4 _IO_file_open F
+GLIBC_2.4 _IO_file_overflow F
+GLIBC_2.4 _IO_file_read F
+GLIBC_2.4 _IO_file_seek F
+GLIBC_2.4 _IO_file_seekoff F
+GLIBC_2.4 _IO_file_setbuf F
+GLIBC_2.4 _IO_file_stat F
+GLIBC_2.4 _IO_file_sync F
+GLIBC_2.4 _IO_file_underflow F
+GLIBC_2.4 _IO_file_write F
+GLIBC_2.4 _IO_file_xsputn F
+GLIBC_2.4 _IO_flockfile F
+GLIBC_2.4 _IO_flush_all F
+GLIBC_2.4 _IO_flush_all_linebuffered F
+GLIBC_2.4 _IO_fopen F
+GLIBC_2.4 _IO_fprintf F
+GLIBC_2.4 _IO_fputs F
+GLIBC_2.4 _IO_fread F
+GLIBC_2.4 _IO_free_backup_area F
+GLIBC_2.4 _IO_free_wbackup_area F
+GLIBC_2.4 _IO_fsetpos F
+GLIBC_2.4 _IO_fsetpos64 F
+GLIBC_2.4 _IO_ftell F
+GLIBC_2.4 _IO_ftrylockfile F
+GLIBC_2.4 _IO_funlockfile F
+GLIBC_2.4 _IO_fwrite F
+GLIBC_2.4 _IO_getc F
+GLIBC_2.4 _IO_getline F
+GLIBC_2.4 _IO_getline_info F
+GLIBC_2.4 _IO_gets F
+GLIBC_2.4 _IO_init F
+GLIBC_2.4 _IO_init_marker F
+GLIBC_2.4 _IO_init_wmarker F
+GLIBC_2.4 _IO_iter_begin F
+GLIBC_2.4 _IO_iter_end F
+GLIBC_2.4 _IO_iter_file F
+GLIBC_2.4 _IO_iter_next F
+GLIBC_2.4 _IO_least_wmarker F
+GLIBC_2.4 _IO_link_in F
+GLIBC_2.4 _IO_list_all D 0x4
+GLIBC_2.4 _IO_list_lock F
+GLIBC_2.4 _IO_list_resetlock F
+GLIBC_2.4 _IO_list_unlock F
+GLIBC_2.4 _IO_marker_delta F
+GLIBC_2.4 _IO_marker_difference F
+GLIBC_2.4 _IO_padn F
+GLIBC_2.4 _IO_peekc_locked F
+GLIBC_2.4 _IO_popen F
+GLIBC_2.4 _IO_printf F
+GLIBC_2.4 _IO_proc_close F
+GLIBC_2.4 _IO_proc_open F
+GLIBC_2.4 _IO_putc F
+GLIBC_2.4 _IO_puts F
+GLIBC_2.4 _IO_remove_marker F
+GLIBC_2.4 _IO_seekmark F
+GLIBC_2.4 _IO_seekoff F
+GLIBC_2.4 _IO_seekpos F
+GLIBC_2.4 _IO_seekwmark F
+GLIBC_2.4 _IO_setb F
+GLIBC_2.4 _IO_setbuffer F
+GLIBC_2.4 _IO_setvbuf F
+GLIBC_2.4 _IO_sgetn F
+GLIBC_2.4 _IO_sprintf F
+GLIBC_2.4 _IO_sputbackc F
+GLIBC_2.4 _IO_sputbackwc F
+GLIBC_2.4 _IO_sscanf F
+GLIBC_2.4 _IO_str_init_readonly F
+GLIBC_2.4 _IO_str_init_static F
+GLIBC_2.4 _IO_str_overflow F
+GLIBC_2.4 _IO_str_pbackfail F
+GLIBC_2.4 _IO_str_seekoff F
+GLIBC_2.4 _IO_str_underflow F
+GLIBC_2.4 _IO_sungetc F
+GLIBC_2.4 _IO_sungetwc F
+GLIBC_2.4 _IO_switch_to_get_mode F
+GLIBC_2.4 _IO_switch_to_main_wget_area F
+GLIBC_2.4 _IO_switch_to_wbackup_area F
+GLIBC_2.4 _IO_switch_to_wget_mode F
+GLIBC_2.4 _IO_un_link F
+GLIBC_2.4 _IO_ungetc F
+GLIBC_2.4 _IO_unsave_markers F
+GLIBC_2.4 _IO_unsave_wmarkers F
+GLIBC_2.4 _IO_vfprintf F
+GLIBC_2.4 _IO_vfscanf F
+GLIBC_2.4 _IO_vsprintf F
+GLIBC_2.4 _IO_wdefault_doallocate F
+GLIBC_2.4 _IO_wdefault_finish F
+GLIBC_2.4 _IO_wdefault_pbackfail F
+GLIBC_2.4 _IO_wdefault_uflow F
+GLIBC_2.4 _IO_wdefault_xsgetn F
+GLIBC_2.4 _IO_wdefault_xsputn F
+GLIBC_2.4 _IO_wdo_write F
+GLIBC_2.4 _IO_wdoallocbuf F
+GLIBC_2.4 _IO_wfile_jumps D 0x54
+GLIBC_2.4 _IO_wfile_overflow F
+GLIBC_2.4 _IO_wfile_seekoff F
+GLIBC_2.4 _IO_wfile_sync F
+GLIBC_2.4 _IO_wfile_underflow F
+GLIBC_2.4 _IO_wfile_xsputn F
+GLIBC_2.4 _IO_wmarker_delta F
+GLIBC_2.4 _IO_wsetb F
+GLIBC_2.4 __adjtimex F
+GLIBC_2.4 __aeabi_MB_CUR_MAX F
+GLIBC_2.4 __aeabi_assert F
+GLIBC_2.4 __aeabi_atexit F
+GLIBC_2.4 __aeabi_errno_addr F
+GLIBC_2.4 __aeabi_localeconv F
+GLIBC_2.4 __aeabi_memclr F
+GLIBC_2.4 __aeabi_memclr4 F
+GLIBC_2.4 __aeabi_memclr8 F
+GLIBC_2.4 __aeabi_memcpy F
+GLIBC_2.4 __aeabi_memcpy4 F
+GLIBC_2.4 __aeabi_memcpy8 F
+GLIBC_2.4 __aeabi_memmove F
+GLIBC_2.4 __aeabi_memmove4 F
+GLIBC_2.4 __aeabi_memmove8 F
+GLIBC_2.4 __aeabi_memset F
+GLIBC_2.4 __aeabi_memset4 F
+GLIBC_2.4 __aeabi_memset8 F
+GLIBC_2.4 __after_morecore_hook D 0x4
+GLIBC_2.4 __argz_count F
+GLIBC_2.4 __argz_next F
+GLIBC_2.4 __argz_stringify F
+GLIBC_2.4 __asprintf F
+GLIBC_2.4 __assert F
+GLIBC_2.4 __assert_fail F
+GLIBC_2.4 __assert_perror_fail F
+GLIBC_2.4 __backtrace F
+GLIBC_2.4 __backtrace_symbols F
+GLIBC_2.4 __backtrace_symbols_fd F
+GLIBC_2.4 __bsd_getpgrp F
+GLIBC_2.4 __bzero F
+GLIBC_2.4 __check_rhosts_file D 0x4
+GLIBC_2.4 __chk_fail F
+GLIBC_2.4 __clone F
+GLIBC_2.4 __close F
+GLIBC_2.4 __cmsg_nxthdr F
+GLIBC_2.4 __confstr_chk F
+GLIBC_2.4 __connect F
+GLIBC_2.4 __ctype_b_loc F
+GLIBC_2.4 __ctype_get_mb_cur_max F
+GLIBC_2.4 __ctype_tolower_loc F
+GLIBC_2.4 __ctype_toupper_loc F
+GLIBC_2.4 __curbrk D 0x4
+GLIBC_2.4 __cxa_atexit F
+GLIBC_2.4 __cxa_finalize F
+GLIBC_2.4 __cyg_profile_func_enter F
+GLIBC_2.4 __cyg_profile_func_exit F
+GLIBC_2.4 __daylight D 0x4
+GLIBC_2.4 __dcgettext F
+GLIBC_2.4 __default_morecore F
+GLIBC_2.4 __dgettext F
+GLIBC_2.4 __dup2 F
+GLIBC_2.4 __duplocale F
+GLIBC_2.4 __endmntent F
+GLIBC_2.4 __environ D 0x4
+GLIBC_2.4 __errno_location F
+GLIBC_2.4 __fbufsize F
+GLIBC_2.4 __fcntl F
+GLIBC_2.4 __ffs F
+GLIBC_2.4 __fgets_chk F
+GLIBC_2.4 __fgets_unlocked_chk F
+GLIBC_2.4 __fgetws_chk F
+GLIBC_2.4 __fgetws_unlocked_chk F
+GLIBC_2.4 __finite F
+GLIBC_2.4 __finitef F
+GLIBC_2.4 __finitel F
+GLIBC_2.4 __flbf F
+GLIBC_2.4 __fork F
+GLIBC_2.4 __fpending F
+GLIBC_2.4 __fprintf_chk F
+GLIBC_2.4 __fpu_control D 0x4
+GLIBC_2.4 __fpurge F
+GLIBC_2.4 __freadable F
+GLIBC_2.4 __freading F
+GLIBC_2.4 __free_hook D 0x4
+GLIBC_2.4 __freelocale F
+GLIBC_2.4 __fsetlocking F
+GLIBC_2.4 __fwprintf_chk F
+GLIBC_2.4 __fwritable F
+GLIBC_2.4 __fwriting F
+GLIBC_2.4 __fxstat F
+GLIBC_2.4 __fxstat64 F
+GLIBC_2.4 __fxstatat F
+GLIBC_2.4 __fxstatat64 F
+GLIBC_2.4 __getcwd_chk F
+GLIBC_2.4 __getdelim F
+GLIBC_2.4 __getdomainname_chk F
+GLIBC_2.4 __getgroups_chk F
+GLIBC_2.4 __gethostname_chk F
+GLIBC_2.4 __getlogin_r_chk F
+GLIBC_2.4 __getmntent_r F
+GLIBC_2.4 __getpagesize F
+GLIBC_2.4 __getpgid F
+GLIBC_2.4 __getpid F
+GLIBC_2.4 __gets_chk F
+GLIBC_2.4 __gettimeofday F
+GLIBC_2.4 __getwd_chk F
+GLIBC_2.4 __gmtime_r F
+GLIBC_2.4 __gnu_Unwind_Find_exidx F
+GLIBC_2.4 __h_errno_location F
+GLIBC_2.4 __isalnum_l F
+GLIBC_2.4 __isalpha_l F
+GLIBC_2.4 __isascii_l F
+GLIBC_2.4 __isblank_l F
+GLIBC_2.4 __iscntrl_l F
+GLIBC_2.4 __isctype F
+GLIBC_2.4 __isdigit_l F
+GLIBC_2.4 __isgraph_l F
+GLIBC_2.4 __isinf F
+GLIBC_2.4 __isinff F
+GLIBC_2.4 __isinfl F
+GLIBC_2.4 __islower_l F
+GLIBC_2.4 __isnan F
+GLIBC_2.4 __isnanf F
+GLIBC_2.4 __isnanl F
+GLIBC_2.4 __isprint_l F
+GLIBC_2.4 __ispunct_l F
+GLIBC_2.4 __isspace_l F
+GLIBC_2.4 __isupper_l F
+GLIBC_2.4 __iswalnum_l F
+GLIBC_2.4 __iswalpha_l F
+GLIBC_2.4 __iswblank_l F
+GLIBC_2.4 __iswcntrl_l F
+GLIBC_2.4 __iswctype F
+GLIBC_2.4 __iswctype_l F
+GLIBC_2.4 __iswdigit_l F
+GLIBC_2.4 __iswgraph_l F
+GLIBC_2.4 __iswlower_l F
+GLIBC_2.4 __iswprint_l F
+GLIBC_2.4 __iswpunct_l F
+GLIBC_2.4 __iswspace_l F
+GLIBC_2.4 __iswupper_l F
+GLIBC_2.4 __iswxdigit_l F
+GLIBC_2.4 __isxdigit_l F
+GLIBC_2.4 __ivaliduser F
+GLIBC_2.4 __key_decryptsession_pk_LOCAL D 0x4
+GLIBC_2.4 __key_encryptsession_pk_LOCAL D 0x4
+GLIBC_2.4 __key_gendes_LOCAL D 0x4
+GLIBC_2.4 __libc_allocate_rtsig F
+GLIBC_2.4 __libc_calloc F
+GLIBC_2.4 __libc_current_sigrtmax F
+GLIBC_2.4 __libc_current_sigrtmin F
+GLIBC_2.4 __libc_free F
+GLIBC_2.4 __libc_freeres F
+GLIBC_2.4 __libc_init_first F
+GLIBC_2.4 __libc_mallinfo F
+GLIBC_2.4 __libc_malloc F
+GLIBC_2.4 __libc_mallopt F
+GLIBC_2.4 __libc_memalign F
+GLIBC_2.4 __libc_pvalloc F
+GLIBC_2.4 __libc_realloc F
+GLIBC_2.4 __libc_sa_len F
+GLIBC_2.4 __libc_start_main F
+GLIBC_2.4 __libc_valloc F
+GLIBC_2.4 __lseek F
+GLIBC_2.4 __lxstat F
+GLIBC_2.4 __lxstat64 F
+GLIBC_2.4 __malloc_hook D 0x4
+GLIBC_2.4 __malloc_initialize_hook D 0x4
+GLIBC_2.4 __mbrlen F
+GLIBC_2.4 __mbrtowc F
+GLIBC_2.4 __mbsnrtowcs_chk F
+GLIBC_2.4 __mbsrtowcs_chk F
+GLIBC_2.4 __mbstowcs_chk F
+GLIBC_2.4 __memalign_hook D 0x4
+GLIBC_2.4 __memcpy_chk F
+GLIBC_2.4 __memmove_chk F
+GLIBC_2.4 __mempcpy F
+GLIBC_2.4 __mempcpy_chk F
+GLIBC_2.4 __mempcpy_small F
+GLIBC_2.4 __memset_chk F
+GLIBC_2.4 __monstartup F
+GLIBC_2.4 __morecore D 0x4
+GLIBC_2.4 __nanosleep F
+GLIBC_2.4 __newlocale F
+GLIBC_2.4 __nl_langinfo_l F
+GLIBC_2.4 __nss_configure_lookup F
+GLIBC_2.4 __nss_database_lookup F
+GLIBC_2.4 __nss_group_lookup F
+GLIBC_2.4 __nss_hostname_digits_dots F
+GLIBC_2.4 __nss_hosts_lookup F
+GLIBC_2.4 __nss_next F
+GLIBC_2.4 __nss_passwd_lookup F
+GLIBC_2.4 __open F
+GLIBC_2.4 __open64 F
+GLIBC_2.4 __overflow F
+GLIBC_2.4 __pipe F
+GLIBC_2.4 __poll F
+GLIBC_2.4 __pread64 F
+GLIBC_2.4 __pread64_chk F
+GLIBC_2.4 __pread_chk F
+GLIBC_2.4 __printf_chk F
+GLIBC_2.4 __printf_fp F
+GLIBC_2.4 __profile_frequency F
+GLIBC_2.4 __progname D 0x4
+GLIBC_2.4 __progname_full D 0x4
+GLIBC_2.4 __ptsname_r_chk F
+GLIBC_2.4 __pwrite64 F
+GLIBC_2.4 __rawmemchr F
+GLIBC_2.4 __rcmd_errstr D 0x4
+GLIBC_2.4 __read F
+GLIBC_2.4 __read_chk F
+GLIBC_2.4 __readlink_chk F
+GLIBC_2.4 __realloc_hook D 0x4
+GLIBC_2.4 __realpath_chk F
+GLIBC_2.4 __recv_chk F
+GLIBC_2.4 __recvfrom_chk F
+GLIBC_2.4 __register_atfork F
+GLIBC_2.4 __res_init F
+GLIBC_2.4 __res_nclose F
+GLIBC_2.4 __res_ninit F
+GLIBC_2.4 __res_randomid F
+GLIBC_2.4 __res_state F
+GLIBC_2.4 __rpc_thread_createerr F
+GLIBC_2.4 __rpc_thread_svc_fdset F
+GLIBC_2.4 __rpc_thread_svc_max_pollfd F
+GLIBC_2.4 __rpc_thread_svc_pollfd F
+GLIBC_2.4 __sbrk F
+GLIBC_2.4 __sched_get_priority_max F
+GLIBC_2.4 __sched_get_priority_min F
+GLIBC_2.4 __sched_getparam F
+GLIBC_2.4 __sched_getscheduler F
+GLIBC_2.4 __sched_setscheduler F
+GLIBC_2.4 __sched_yield F
+GLIBC_2.4 __secure_getenv F
+GLIBC_2.4 __select F
+GLIBC_2.4 __send F
+GLIBC_2.4 __setmntent F
+GLIBC_2.4 __setpgid F
+GLIBC_2.4 __sigaction F
+GLIBC_2.4 __sigaddset F
+GLIBC_2.4 __sigdelset F
+GLIBC_2.4 __sigismember F
+GLIBC_2.4 __signbit F
+GLIBC_2.4 __signbitf F
+GLIBC_2.4 __sigpause F
+GLIBC_2.4 __sigsetjmp F
+GLIBC_2.4 __sigsuspend F
+GLIBC_2.4 __snprintf_chk F
+GLIBC_2.4 __sprintf_chk F
+GLIBC_2.4 __stack_chk_fail F
+GLIBC_2.4 __statfs F
+GLIBC_2.4 __stpcpy F
+GLIBC_2.4 __stpcpy_chk F
+GLIBC_2.4 __stpcpy_small F
+GLIBC_2.4 __stpncpy F
+GLIBC_2.4 __stpncpy_chk F
+GLIBC_2.4 __strcasecmp F
+GLIBC_2.4 __strcasecmp_l F
+GLIBC_2.4 __strcasestr F
+GLIBC_2.4 __strcat_chk F
+GLIBC_2.4 __strcoll_l F
+GLIBC_2.4 __strcpy_chk F
+GLIBC_2.4 __strcpy_small F
+GLIBC_2.4 __strcspn_c1 F
+GLIBC_2.4 __strcspn_c2 F
+GLIBC_2.4 __strcspn_c3 F
+GLIBC_2.4 __strdup F
+GLIBC_2.4 __strerror_r F
+GLIBC_2.4 __strfmon_l F
+GLIBC_2.4 __strftime_l F
+GLIBC_2.4 __strncasecmp_l F
+GLIBC_2.4 __strncat_chk F
+GLIBC_2.4 __strncpy_chk F
+GLIBC_2.4 __strndup F
+GLIBC_2.4 __strpbrk_c2 F
+GLIBC_2.4 __strpbrk_c3 F
+GLIBC_2.4 __strsep_1c F
+GLIBC_2.4 __strsep_2c F
+GLIBC_2.4 __strsep_3c F
+GLIBC_2.4 __strsep_g F
+GLIBC_2.4 __strspn_c1 F
+GLIBC_2.4 __strspn_c2 F
+GLIBC_2.4 __strspn_c3 F
+GLIBC_2.4 __strtod_internal F
+GLIBC_2.4 __strtod_l F
+GLIBC_2.4 __strtof_internal F
+GLIBC_2.4 __strtof_l F
+GLIBC_2.4 __strtok_r F
+GLIBC_2.4 __strtok_r_1c F
+GLIBC_2.4 __strtol_internal F
+GLIBC_2.4 __strtol_l F
+GLIBC_2.4 __strtold_internal F
+GLIBC_2.4 __strtold_l F
+GLIBC_2.4 __strtoll_internal F
+GLIBC_2.4 __strtoll_l F
+GLIBC_2.4 __strtoul_internal F
+GLIBC_2.4 __strtoul_l F
+GLIBC_2.4 __strtoull_internal F
+GLIBC_2.4 __strtoull_l F
+GLIBC_2.4 __strverscmp F
+GLIBC_2.4 __strxfrm_l F
+GLIBC_2.4 __swprintf_chk F
+GLIBC_2.4 __sysconf F
+GLIBC_2.4 __sysctl F
+GLIBC_2.4 __syslog_chk F
+GLIBC_2.4 __sysv_signal F
+GLIBC_2.4 __timezone D 0x4
+GLIBC_2.4 __toascii_l F
+GLIBC_2.4 __tolower_l F
+GLIBC_2.4 __toupper_l F
+GLIBC_2.4 __towctrans F
+GLIBC_2.4 __towctrans_l F
+GLIBC_2.4 __towlower_l F
+GLIBC_2.4 __towupper_l F
+GLIBC_2.4 __ttyname_r_chk F
+GLIBC_2.4 __tzname D 0x8
+GLIBC_2.4 __uflow F
+GLIBC_2.4 __underflow F
+GLIBC_2.4 __uselocale F
+GLIBC_2.4 __vfork F
+GLIBC_2.4 __vfprintf_chk F
+GLIBC_2.4 __vfscanf F
+GLIBC_2.4 __vfwprintf_chk F
+GLIBC_2.4 __vprintf_chk F
+GLIBC_2.4 __vsnprintf F
+GLIBC_2.4 __vsnprintf_chk F
+GLIBC_2.4 __vsprintf_chk F
+GLIBC_2.4 __vsscanf F
+GLIBC_2.4 __vswprintf_chk F
+GLIBC_2.4 __vsyslog_chk F
+GLIBC_2.4 __vwprintf_chk F
+GLIBC_2.4 __wait F
+GLIBC_2.4 __waitpid F
+GLIBC_2.4 __wcpcpy_chk F
+GLIBC_2.4 __wcpncpy_chk F
+GLIBC_2.4 __wcrtomb_chk F
+GLIBC_2.4 __wcscasecmp_l F
+GLIBC_2.4 __wcscat_chk F
+GLIBC_2.4 __wcscoll_l F
+GLIBC_2.4 __wcscpy_chk F
+GLIBC_2.4 __wcsftime_l F
+GLIBC_2.4 __wcsncasecmp_l F
+GLIBC_2.4 __wcsncat_chk F
+GLIBC_2.4 __wcsncpy_chk F
+GLIBC_2.4 __wcsnrtombs_chk F
+GLIBC_2.4 __wcsrtombs_chk F
+GLIBC_2.4 __wcstod_internal F
+GLIBC_2.4 __wcstod_l F
+GLIBC_2.4 __wcstof_internal F
+GLIBC_2.4 __wcstof_l F
+GLIBC_2.4 __wcstol_internal F
+GLIBC_2.4 __wcstol_l F
+GLIBC_2.4 __wcstold_internal F
+GLIBC_2.4 __wcstold_l F
+GLIBC_2.4 __wcstoll_internal F
+GLIBC_2.4 __wcstoll_l F
+GLIBC_2.4 __wcstombs_chk F
+GLIBC_2.4 __wcstoul_internal F
+GLIBC_2.4 __wcstoul_l F
+GLIBC_2.4 __wcstoull_internal F
+GLIBC_2.4 __wcstoull_l F
+GLIBC_2.4 __wcsxfrm_l F
+GLIBC_2.4 __wctomb_chk F
+GLIBC_2.4 __wctrans_l F
+GLIBC_2.4 __wctype_l F
+GLIBC_2.4 __wmemcpy_chk F
+GLIBC_2.4 __wmemmove_chk F
+GLIBC_2.4 __wmempcpy_chk F
+GLIBC_2.4 __wmemset_chk F
+GLIBC_2.4 __woverflow F
+GLIBC_2.4 __wprintf_chk F
+GLIBC_2.4 __write F
+GLIBC_2.4 __wuflow F
+GLIBC_2.4 __wunderflow F
+GLIBC_2.4 __xmknod F
+GLIBC_2.4 __xmknodat F
+GLIBC_2.4 __xpg_basename F
+GLIBC_2.4 __xpg_sigpause F
+GLIBC_2.4 __xpg_strerror_r F
+GLIBC_2.4 __xstat F
+GLIBC_2.4 __xstat64 F
+GLIBC_2.4 _authenticate F
+GLIBC_2.4 _dl_mcount_wrapper F
+GLIBC_2.4 _dl_mcount_wrapper_check F
+GLIBC_2.4 _environ D 0x4
+GLIBC_2.4 _exit F
+GLIBC_2.4 _flushlbf F
+GLIBC_2.4 _libc_intl_domainname D 0x5
+GLIBC_2.4 _longjmp F
+GLIBC_2.4 _mcleanup F
+GLIBC_2.4 _mcount F
+GLIBC_2.4 _nl_default_dirname D 0x12
+GLIBC_2.4 _nl_domain_bindings D 0x4
+GLIBC_2.4 _nl_msg_cat_cntr D 0x4
+GLIBC_2.4 _null_auth D 0xc
+GLIBC_2.4 _obstack_allocated_p F
+GLIBC_2.4 _obstack_begin F
+GLIBC_2.4 _obstack_begin_1 F
+GLIBC_2.4 _obstack_free F
+GLIBC_2.4 _obstack_memory_used F
+GLIBC_2.4 _obstack_newchunk F
+GLIBC_2.4 _res D 0x200
+GLIBC_2.4 _res_hconf D 0x30
+GLIBC_2.4 _rpc_dtablesize F
+GLIBC_2.4 _seterr_reply F
+GLIBC_2.4 _setjmp F
+GLIBC_2.4 _sys_errlist D 0x210
+GLIBC_2.4 _sys_nerr D 0x4
+GLIBC_2.4 _sys_siglist D 0x104
+GLIBC_2.4 _tolower F
+GLIBC_2.4 _toupper F
+GLIBC_2.4 a64l F
+GLIBC_2.4 abort F
+GLIBC_2.4 abs F
+GLIBC_2.4 accept F
+GLIBC_2.4 access F
+GLIBC_2.4 acct F
+GLIBC_2.4 addmntent F
+GLIBC_2.4 addseverity F
+GLIBC_2.4 adjtime F
+GLIBC_2.4 adjtimex F
+GLIBC_2.4 advance F
+GLIBC_2.4 alarm F
+GLIBC_2.4 alphasort F
+GLIBC_2.4 alphasort64 F
+GLIBC_2.4 argp_err_exit_status D 0x4
+GLIBC_2.4 argp_error F
+GLIBC_2.4 argp_failure F
+GLIBC_2.4 argp_help F
+GLIBC_2.4 argp_parse F
+GLIBC_2.4 argp_program_bug_address D 0x4
+GLIBC_2.4 argp_program_version D 0x4
+GLIBC_2.4 argp_program_version_hook D 0x4
+GLIBC_2.4 argp_state_help F
+GLIBC_2.4 argp_usage F
+GLIBC_2.4 argz_add F
+GLIBC_2.4 argz_add_sep F
+GLIBC_2.4 argz_append F
+GLIBC_2.4 argz_count F
+GLIBC_2.4 argz_create F
+GLIBC_2.4 argz_create_sep F
+GLIBC_2.4 argz_delete F
+GLIBC_2.4 argz_extract F
+GLIBC_2.4 argz_insert F
+GLIBC_2.4 argz_next F
+GLIBC_2.4 argz_replace F
+GLIBC_2.4 argz_stringify F
+GLIBC_2.4 asctime F
+GLIBC_2.4 asctime_r F
+GLIBC_2.4 asprintf F
+GLIBC_2.4 atof F
+GLIBC_2.4 atoi F
+GLIBC_2.4 atol F
+GLIBC_2.4 atoll F
+GLIBC_2.4 authdes_create F
+GLIBC_2.4 authdes_getucred F
+GLIBC_2.4 authdes_pk_create F
+GLIBC_2.4 authnone_create F
+GLIBC_2.4 authunix_create F
+GLIBC_2.4 authunix_create_default F
+GLIBC_2.4 backtrace F
+GLIBC_2.4 backtrace_symbols F
+GLIBC_2.4 backtrace_symbols_fd F
+GLIBC_2.4 basename F
+GLIBC_2.4 bcmp F
+GLIBC_2.4 bcopy F
+GLIBC_2.4 bdflush F
+GLIBC_2.4 bind F
+GLIBC_2.4 bind_textdomain_codeset F
+GLIBC_2.4 bindresvport F
+GLIBC_2.4 bindtextdomain F
+GLIBC_2.4 brk F
+GLIBC_2.4 bsd_signal F
+GLIBC_2.4 bsearch F
+GLIBC_2.4 btowc F
+GLIBC_2.4 bzero F
+GLIBC_2.4 calloc F
+GLIBC_2.4 callrpc F
+GLIBC_2.4 canonicalize_file_name F
+GLIBC_2.4 capget F
+GLIBC_2.4 capset F
+GLIBC_2.4 catclose F
+GLIBC_2.4 catgets F
+GLIBC_2.4 catopen F
+GLIBC_2.4 cbc_crypt F
+GLIBC_2.4 cfgetispeed F
+GLIBC_2.4 cfgetospeed F
+GLIBC_2.4 cfmakeraw F
+GLIBC_2.4 cfree F
+GLIBC_2.4 cfsetispeed F
+GLIBC_2.4 cfsetospeed F
+GLIBC_2.4 cfsetspeed F
+GLIBC_2.4 chdir F
+GLIBC_2.4 chflags F
+GLIBC_2.4 chmod F
+GLIBC_2.4 chown F
+GLIBC_2.4 chroot F
+GLIBC_2.4 clearenv F
+GLIBC_2.4 clearerr F
+GLIBC_2.4 clearerr_unlocked F
+GLIBC_2.4 clnt_broadcast F
+GLIBC_2.4 clnt_create F
+GLIBC_2.4 clnt_pcreateerror F
+GLIBC_2.4 clnt_perrno F
+GLIBC_2.4 clnt_perror F
+GLIBC_2.4 clnt_spcreateerror F
+GLIBC_2.4 clnt_sperrno F
+GLIBC_2.4 clnt_sperror F
+GLIBC_2.4 clntraw_create F
+GLIBC_2.4 clnttcp_create F
+GLIBC_2.4 clntudp_bufcreate F
+GLIBC_2.4 clntudp_create F
+GLIBC_2.4 clntunix_create F
+GLIBC_2.4 clock F
+GLIBC_2.4 clock_getcpuclockid F
+GLIBC_2.4 clock_getres F
+GLIBC_2.4 clock_gettime F
+GLIBC_2.4 clock_nanosleep F
+GLIBC_2.4 clock_settime F
+GLIBC_2.4 clone F
+GLIBC_2.4 close F
+GLIBC_2.4 closedir F
+GLIBC_2.4 closelog F
+GLIBC_2.4 confstr F
+GLIBC_2.4 connect F
+GLIBC_2.4 copysign F
+GLIBC_2.4 copysignf F
+GLIBC_2.4 copysignl F
+GLIBC_2.4 creat F
+GLIBC_2.4 creat64 F
+GLIBC_2.4 create_module F
+GLIBC_2.4 ctermid F
+GLIBC_2.4 ctime F
+GLIBC_2.4 ctime_r F
+GLIBC_2.4 cuserid F
+GLIBC_2.4 daemon F
+GLIBC_2.4 daylight D 0x4
+GLIBC_2.4 dcgettext F
+GLIBC_2.4 dcngettext F
+GLIBC_2.4 delete_module F
+GLIBC_2.4 des_setparity F
+GLIBC_2.4 dgettext F
+GLIBC_2.4 difftime F
+GLIBC_2.4 dirfd F
+GLIBC_2.4 dirname F
+GLIBC_2.4 div F
+GLIBC_2.4 dl_iterate_phdr F
+GLIBC_2.4 dngettext F
+GLIBC_2.4 dprintf F
+GLIBC_2.4 drand48 F
+GLIBC_2.4 drand48_r F
+GLIBC_2.4 dup F
+GLIBC_2.4 dup2 F
+GLIBC_2.4 duplocale F
+GLIBC_2.4 dysize F
+GLIBC_2.4 eaccess F
+GLIBC_2.4 ecb_crypt F
+GLIBC_2.4 ecvt F
+GLIBC_2.4 ecvt_r F
+GLIBC_2.4 endaliasent F
+GLIBC_2.4 endfsent F
+GLIBC_2.4 endgrent F
+GLIBC_2.4 endhostent F
+GLIBC_2.4 endmntent F
+GLIBC_2.4 endnetent F
+GLIBC_2.4 endnetgrent F
+GLIBC_2.4 endprotoent F
+GLIBC_2.4 endpwent F
+GLIBC_2.4 endrpcent F
+GLIBC_2.4 endservent F
+GLIBC_2.4 endspent F
+GLIBC_2.4 endttyent F
+GLIBC_2.4 endusershell F
+GLIBC_2.4 endutent F
+GLIBC_2.4 endutxent F
+GLIBC_2.4 environ D 0x4
+GLIBC_2.4 envz_add F
+GLIBC_2.4 envz_entry F
+GLIBC_2.4 envz_get F
+GLIBC_2.4 envz_merge F
+GLIBC_2.4 envz_remove F
+GLIBC_2.4 envz_strip F
+GLIBC_2.4 epoll_create F
+GLIBC_2.4 epoll_ctl F
+GLIBC_2.4 epoll_wait F
+GLIBC_2.4 erand48 F
+GLIBC_2.4 erand48_r F
+GLIBC_2.4 err F
+GLIBC_2.4 error F
+GLIBC_2.4 error_at_line F
+GLIBC_2.4 error_message_count D 0x4
+GLIBC_2.4 error_one_per_line D 0x4
+GLIBC_2.4 error_print_progname D 0x4
+GLIBC_2.4 errx F
+GLIBC_2.4 ether_aton F
+GLIBC_2.4 ether_aton_r F
+GLIBC_2.4 ether_hostton F
+GLIBC_2.4 ether_line F
+GLIBC_2.4 ether_ntoa F
+GLIBC_2.4 ether_ntoa_r F
+GLIBC_2.4 ether_ntohost F
+GLIBC_2.4 euidaccess F
+GLIBC_2.4 execl F
+GLIBC_2.4 execle F
+GLIBC_2.4 execlp F
+GLIBC_2.4 execv F
+GLIBC_2.4 execve F
+GLIBC_2.4 execvp F
+GLIBC_2.4 exit F
+GLIBC_2.4 faccessat F
+GLIBC_2.4 fattach F
+GLIBC_2.4 fchdir F
+GLIBC_2.4 fchflags F
+GLIBC_2.4 fchmod F
+GLIBC_2.4 fchmodat F
+GLIBC_2.4 fchown F
+GLIBC_2.4 fchownat F
+GLIBC_2.4 fclose F
+GLIBC_2.4 fcloseall F
+GLIBC_2.4 fcntl F
+GLIBC_2.4 fcvt F
+GLIBC_2.4 fcvt_r F
+GLIBC_2.4 fdatasync F
+GLIBC_2.4 fdetach F
+GLIBC_2.4 fdopen F
+GLIBC_2.4 fdopendir F
+GLIBC_2.4 feof F
+GLIBC_2.4 feof_unlocked F
+GLIBC_2.4 ferror F
+GLIBC_2.4 ferror_unlocked F
+GLIBC_2.4 fexecve F
+GLIBC_2.4 fflush F
+GLIBC_2.4 fflush_unlocked F
+GLIBC_2.4 ffs F
+GLIBC_2.4 ffsl F
+GLIBC_2.4 ffsll F
+GLIBC_2.4 fgetc F
+GLIBC_2.4 fgetc_unlocked F
+GLIBC_2.4 fgetgrent F
+GLIBC_2.4 fgetgrent_r F
+GLIBC_2.4 fgetpos F
+GLIBC_2.4 fgetpos64 F
+GLIBC_2.4 fgetpwent F
+GLIBC_2.4 fgetpwent_r F
+GLIBC_2.4 fgets F
+GLIBC_2.4 fgets_unlocked F
+GLIBC_2.4 fgetspent F
+GLIBC_2.4 fgetspent_r F
+GLIBC_2.4 fgetwc F
+GLIBC_2.4 fgetwc_unlocked F
+GLIBC_2.4 fgetws F
+GLIBC_2.4 fgetws_unlocked F
+GLIBC_2.4 fgetxattr F
+GLIBC_2.4 fileno F
+GLIBC_2.4 fileno_unlocked F
+GLIBC_2.4 finite F
+GLIBC_2.4 finitef F
+GLIBC_2.4 finitel F
+GLIBC_2.4 flistxattr F
+GLIBC_2.4 flock F
+GLIBC_2.4 flockfile F
+GLIBC_2.4 fmemopen F
+GLIBC_2.4 fmtmsg F
+GLIBC_2.4 fnmatch F
+GLIBC_2.4 fopen F
+GLIBC_2.4 fopen64 F
+GLIBC_2.4 fopencookie F
+GLIBC_2.4 fork F
+GLIBC_2.4 fpathconf F
+GLIBC_2.4 fprintf F
+GLIBC_2.4 fputc F
+GLIBC_2.4 fputc_unlocked F
+GLIBC_2.4 fputs F
+GLIBC_2.4 fputs_unlocked F
+GLIBC_2.4 fputwc F
+GLIBC_2.4 fputwc_unlocked F
+GLIBC_2.4 fputws F
+GLIBC_2.4 fputws_unlocked F
+GLIBC_2.4 fread F
+GLIBC_2.4 fread_unlocked F
+GLIBC_2.4 free F
+GLIBC_2.4 freeaddrinfo F
+GLIBC_2.4 freeifaddrs F
+GLIBC_2.4 freelocale F
+GLIBC_2.4 fremovexattr F
+GLIBC_2.4 freopen F
+GLIBC_2.4 freopen64 F
+GLIBC_2.4 frexp F
+GLIBC_2.4 frexpf F
+GLIBC_2.4 frexpl F
+GLIBC_2.4 fscanf F
+GLIBC_2.4 fseek F
+GLIBC_2.4 fseeko F
+GLIBC_2.4 fseeko64 F
+GLIBC_2.4 fsetpos F
+GLIBC_2.4 fsetpos64 F
+GLIBC_2.4 fsetxattr F
+GLIBC_2.4 fstatfs F
+GLIBC_2.4 fstatfs64 F
+GLIBC_2.4 fstatvfs F
+GLIBC_2.4 fstatvfs64 F
+GLIBC_2.4 fsync F
+GLIBC_2.4 ftell F
+GLIBC_2.4 ftello F
+GLIBC_2.4 ftello64 F
+GLIBC_2.4 ftime F
+GLIBC_2.4 ftok F
+GLIBC_2.4 ftruncate F
+GLIBC_2.4 ftruncate64 F
+GLIBC_2.4 ftrylockfile F
+GLIBC_2.4 fts_children F
+GLIBC_2.4 fts_close F
+GLIBC_2.4 fts_open F
+GLIBC_2.4 fts_read F
+GLIBC_2.4 fts_set F
+GLIBC_2.4 ftw F
+GLIBC_2.4 ftw64 F
+GLIBC_2.4 funlockfile F
+GLIBC_2.4 futimes F
+GLIBC_2.4 futimesat F
+GLIBC_2.4 fwide F
+GLIBC_2.4 fwprintf F
+GLIBC_2.4 fwrite F
+GLIBC_2.4 fwrite_unlocked F
+GLIBC_2.4 fwscanf F
+GLIBC_2.4 gai_strerror F
+GLIBC_2.4 gcvt F
+GLIBC_2.4 get_avphys_pages F
+GLIBC_2.4 get_current_dir_name F
+GLIBC_2.4 get_kernel_syms F
+GLIBC_2.4 get_myaddress F
+GLIBC_2.4 get_nprocs F
+GLIBC_2.4 get_nprocs_conf F
+GLIBC_2.4 get_phys_pages F
+GLIBC_2.4 getaddrinfo F
+GLIBC_2.4 getaliasbyname F
+GLIBC_2.4 getaliasbyname_r F
+GLIBC_2.4 getaliasent F
+GLIBC_2.4 getaliasent_r F
+GLIBC_2.4 getc F
+GLIBC_2.4 getc_unlocked F
+GLIBC_2.4 getchar F
+GLIBC_2.4 getchar_unlocked F
+GLIBC_2.4 getcontext F
+GLIBC_2.4 getcwd F
+GLIBC_2.4 getdate F
+GLIBC_2.4 getdate_err D 0x4
+GLIBC_2.4 getdate_r F
+GLIBC_2.4 getdelim F
+GLIBC_2.4 getdirentries F
+GLIBC_2.4 getdirentries64 F
+GLIBC_2.4 getdomainname F
+GLIBC_2.4 getdtablesize F
+GLIBC_2.4 getegid F
+GLIBC_2.4 getenv F
+GLIBC_2.4 geteuid F
+GLIBC_2.4 getfsent F
+GLIBC_2.4 getfsfile F
+GLIBC_2.4 getfsspec F
+GLIBC_2.4 getgid F
+GLIBC_2.4 getgrent F
+GLIBC_2.4 getgrent_r F
+GLIBC_2.4 getgrgid F
+GLIBC_2.4 getgrgid_r F
+GLIBC_2.4 getgrnam F
+GLIBC_2.4 getgrnam_r F
+GLIBC_2.4 getgrouplist F
+GLIBC_2.4 getgroups F
+GLIBC_2.4 gethostbyaddr F
+GLIBC_2.4 gethostbyaddr_r F
+GLIBC_2.4 gethostbyname F
+GLIBC_2.4 gethostbyname2 F
+GLIBC_2.4 gethostbyname2_r F
+GLIBC_2.4 gethostbyname_r F
+GLIBC_2.4 gethostent F
+GLIBC_2.4 gethostent_r F
+GLIBC_2.4 gethostid F
+GLIBC_2.4 gethostname F
+GLIBC_2.4 getifaddrs F
+GLIBC_2.4 getipv4sourcefilter F
+GLIBC_2.4 getitimer F
+GLIBC_2.4 getline F
+GLIBC_2.4 getloadavg F
+GLIBC_2.4 getlogin F
+GLIBC_2.4 getlogin_r F
+GLIBC_2.4 getmntent F
+GLIBC_2.4 getmntent_r F
+GLIBC_2.4 getmsg F
+GLIBC_2.4 getnameinfo F
+GLIBC_2.4 getnetbyaddr F
+GLIBC_2.4 getnetbyaddr_r F
+GLIBC_2.4 getnetbyname F
+GLIBC_2.4 getnetbyname_r F
+GLIBC_2.4 getnetent F
+GLIBC_2.4 getnetent_r F
+GLIBC_2.4 getnetgrent F
+GLIBC_2.4 getnetgrent_r F
+GLIBC_2.4 getnetname F
+GLIBC_2.4 getopt F
+GLIBC_2.4 getopt_long F
+GLIBC_2.4 getopt_long_only F
+GLIBC_2.4 getpagesize F
+GLIBC_2.4 getpass F
+GLIBC_2.4 getpeername F
+GLIBC_2.4 getpgid F
+GLIBC_2.4 getpgrp F
+GLIBC_2.4 getpid F
+GLIBC_2.4 getpmsg F
+GLIBC_2.4 getppid F
+GLIBC_2.4 getpriority F
+GLIBC_2.4 getprotobyname F
+GLIBC_2.4 getprotobyname_r F
+GLIBC_2.4 getprotobynumber F
+GLIBC_2.4 getprotobynumber_r F
+GLIBC_2.4 getprotoent F
+GLIBC_2.4 getprotoent_r F
+GLIBC_2.4 getpt F
+GLIBC_2.4 getpublickey F
+GLIBC_2.4 getpw F
+GLIBC_2.4 getpwent F
+GLIBC_2.4 getpwent_r F
+GLIBC_2.4 getpwnam F
+GLIBC_2.4 getpwnam_r F
+GLIBC_2.4 getpwuid F
+GLIBC_2.4 getpwuid_r F
+GLIBC_2.4 getresgid F
+GLIBC_2.4 getresuid F
+GLIBC_2.4 getrlimit F
+GLIBC_2.4 getrlimit64 F
+GLIBC_2.4 getrpcbyname F
+GLIBC_2.4 getrpcbyname_r F
+GLIBC_2.4 getrpcbynumber F
+GLIBC_2.4 getrpcbynumber_r F
+GLIBC_2.4 getrpcent F
+GLIBC_2.4 getrpcent_r F
+GLIBC_2.4 getrpcport F
+GLIBC_2.4 getrusage F
+GLIBC_2.4 gets F
+GLIBC_2.4 getsecretkey F
+GLIBC_2.4 getservbyname F
+GLIBC_2.4 getservbyname_r F
+GLIBC_2.4 getservbyport F
+GLIBC_2.4 getservbyport_r F
+GLIBC_2.4 getservent F
+GLIBC_2.4 getservent_r F
+GLIBC_2.4 getsid F
+GLIBC_2.4 getsockname F
+GLIBC_2.4 getsockopt F
+GLIBC_2.4 getsourcefilter F
+GLIBC_2.4 getspent F
+GLIBC_2.4 getspent_r F
+GLIBC_2.4 getspnam F
+GLIBC_2.4 getspnam_r F
+GLIBC_2.4 getsubopt F
+GLIBC_2.4 gettext F
+GLIBC_2.4 gettimeofday F
+GLIBC_2.4 getttyent F
+GLIBC_2.4 getttynam F
+GLIBC_2.4 getuid F
+GLIBC_2.4 getusershell F
+GLIBC_2.4 getutent F
+GLIBC_2.4 getutent_r F
+GLIBC_2.4 getutid F
+GLIBC_2.4 getutid_r F
+GLIBC_2.4 getutline F
+GLIBC_2.4 getutline_r F
+GLIBC_2.4 getutmp F
+GLIBC_2.4 getutmpx F
+GLIBC_2.4 getutxent F
+GLIBC_2.4 getutxid F
+GLIBC_2.4 getutxline F
+GLIBC_2.4 getw F
+GLIBC_2.4 getwc F
+GLIBC_2.4 getwc_unlocked F
+GLIBC_2.4 getwchar F
+GLIBC_2.4 getwchar_unlocked F
+GLIBC_2.4 getwd F
+GLIBC_2.4 getxattr F
+GLIBC_2.4 glob F
+GLIBC_2.4 glob64 F
+GLIBC_2.4 glob_pattern_p F
+GLIBC_2.4 globfree F
+GLIBC_2.4 globfree64 F
+GLIBC_2.4 gmtime F
+GLIBC_2.4 gmtime_r F
+GLIBC_2.4 gnu_dev_major F
+GLIBC_2.4 gnu_dev_makedev F
+GLIBC_2.4 gnu_dev_minor F
+GLIBC_2.4 gnu_get_libc_release F
+GLIBC_2.4 gnu_get_libc_version F
+GLIBC_2.4 grantpt F
+GLIBC_2.4 group_member F
+GLIBC_2.4 gsignal F
+GLIBC_2.4 gtty F
+GLIBC_2.4 h_errlist D 0x14
+GLIBC_2.4 h_nerr D 0x4
+GLIBC_2.4 hasmntopt F
+GLIBC_2.4 hcreate F
+GLIBC_2.4 hcreate_r F
+GLIBC_2.4 hdestroy F
+GLIBC_2.4 hdestroy_r F
+GLIBC_2.4 herror F
+GLIBC_2.4 host2netname F
+GLIBC_2.4 hsearch F
+GLIBC_2.4 hsearch_r F
+GLIBC_2.4 hstrerror F
+GLIBC_2.4 htonl F
+GLIBC_2.4 htons F
+GLIBC_2.4 iconv F
+GLIBC_2.4 iconv_close F
+GLIBC_2.4 iconv_open F
+GLIBC_2.4 if_freenameindex F
+GLIBC_2.4 if_indextoname F
+GLIBC_2.4 if_nameindex F
+GLIBC_2.4 if_nametoindex F
+GLIBC_2.4 imaxabs F
+GLIBC_2.4 imaxdiv F
+GLIBC_2.4 in6addr_any D 0x10
+GLIBC_2.4 in6addr_loopback D 0x10
+GLIBC_2.4 inb F
+GLIBC_2.4 index F
+GLIBC_2.4 inet6_option_alloc F
+GLIBC_2.4 inet6_option_append F
+GLIBC_2.4 inet6_option_find F
+GLIBC_2.4 inet6_option_init F
+GLIBC_2.4 inet6_option_next F
+GLIBC_2.4 inet6_option_space F
+GLIBC_2.4 inet_addr F
+GLIBC_2.4 inet_aton F
+GLIBC_2.4 inet_lnaof F
+GLIBC_2.4 inet_makeaddr F
+GLIBC_2.4 inet_netof F
+GLIBC_2.4 inet_network F
+GLIBC_2.4 inet_nsap_addr F
+GLIBC_2.4 inet_nsap_ntoa F
+GLIBC_2.4 inet_ntoa F
+GLIBC_2.4 inet_ntop F
+GLIBC_2.4 inet_pton F
+GLIBC_2.4 init_module F
+GLIBC_2.4 initgroups F
+GLIBC_2.4 initstate F
+GLIBC_2.4 initstate_r F
+GLIBC_2.4 inl F
+GLIBC_2.4 innetgr F
+GLIBC_2.4 inotify_add_watch F
+GLIBC_2.4 inotify_init F
+GLIBC_2.4 inotify_rm_watch F
+GLIBC_2.4 insque F
+GLIBC_2.4 inw F
+GLIBC_2.4 ioctl F
+GLIBC_2.4 ioperm F
+GLIBC_2.4 iopl F
+GLIBC_2.4 iruserok F
+GLIBC_2.4 iruserok_af F
+GLIBC_2.4 isalnum F
+GLIBC_2.4 isalnum_l F
+GLIBC_2.4 isalpha F
+GLIBC_2.4 isalpha_l F
+GLIBC_2.4 isascii F
+GLIBC_2.4 isastream F
+GLIBC_2.4 isatty F
+GLIBC_2.4 isblank F
+GLIBC_2.4 isblank_l F
+GLIBC_2.4 iscntrl F
+GLIBC_2.4 iscntrl_l F
+GLIBC_2.4 isctype F
+GLIBC_2.4 isdigit F
+GLIBC_2.4 isdigit_l F
+GLIBC_2.4 isfdtype F
+GLIBC_2.4 isgraph F
+GLIBC_2.4 isgraph_l F
+GLIBC_2.4 isinf F
+GLIBC_2.4 isinff F
+GLIBC_2.4 isinfl F
+GLIBC_2.4 islower F
+GLIBC_2.4 islower_l F
+GLIBC_2.4 isnan F
+GLIBC_2.4 isnanf F
+GLIBC_2.4 isnanl F
+GLIBC_2.4 isprint F
+GLIBC_2.4 isprint_l F
+GLIBC_2.4 ispunct F
+GLIBC_2.4 ispunct_l F
+GLIBC_2.4 isspace F
+GLIBC_2.4 isspace_l F
+GLIBC_2.4 isupper F
+GLIBC_2.4 isupper_l F
+GLIBC_2.4 iswalnum F
+GLIBC_2.4 iswalnum_l F
+GLIBC_2.4 iswalpha F
+GLIBC_2.4 iswalpha_l F
+GLIBC_2.4 iswblank F
+GLIBC_2.4 iswblank_l F
+GLIBC_2.4 iswcntrl F
+GLIBC_2.4 iswcntrl_l F
+GLIBC_2.4 iswctype F
+GLIBC_2.4 iswctype_l F
+GLIBC_2.4 iswdigit F
+GLIBC_2.4 iswdigit_l F
+GLIBC_2.4 iswgraph F
+GLIBC_2.4 iswgraph_l F
+GLIBC_2.4 iswlower F
+GLIBC_2.4 iswlower_l F
+GLIBC_2.4 iswprint F
+GLIBC_2.4 iswprint_l F
+GLIBC_2.4 iswpunct F
+GLIBC_2.4 iswpunct_l F
+GLIBC_2.4 iswspace F
+GLIBC_2.4 iswspace_l F
+GLIBC_2.4 iswupper F
+GLIBC_2.4 iswupper_l F
+GLIBC_2.4 iswxdigit F
+GLIBC_2.4 iswxdigit_l F
+GLIBC_2.4 isxdigit F
+GLIBC_2.4 isxdigit_l F
+GLIBC_2.4 jrand48 F
+GLIBC_2.4 jrand48_r F
+GLIBC_2.4 key_decryptsession F
+GLIBC_2.4 key_decryptsession_pk F
+GLIBC_2.4 key_encryptsession F
+GLIBC_2.4 key_encryptsession_pk F
+GLIBC_2.4 key_gendes F
+GLIBC_2.4 key_get_conv F
+GLIBC_2.4 key_secretkey_is_set F
+GLIBC_2.4 key_setnet F
+GLIBC_2.4 key_setsecret F
+GLIBC_2.4 kill F
+GLIBC_2.4 killpg F
+GLIBC_2.4 klogctl F
+GLIBC_2.4 l64a F
+GLIBC_2.4 labs F
+GLIBC_2.4 lchmod F
+GLIBC_2.4 lchown F
+GLIBC_2.4 lckpwdf F
+GLIBC_2.4 lcong48 F
+GLIBC_2.4 lcong48_r F
+GLIBC_2.4 ldexp F
+GLIBC_2.4 ldexpf F
+GLIBC_2.4 ldexpl F
+GLIBC_2.4 ldiv F
+GLIBC_2.4 lfind F
+GLIBC_2.4 lgetxattr F
+GLIBC_2.4 link F
+GLIBC_2.4 linkat F
+GLIBC_2.4 listen F
+GLIBC_2.4 listxattr F
+GLIBC_2.4 llabs F
+GLIBC_2.4 lldiv F
+GLIBC_2.4 llistxattr F
+GLIBC_2.4 llseek F
+GLIBC_2.4 loc1 D 0x4
+GLIBC_2.4 loc2 D 0x4
+GLIBC_2.4 localeconv F
+GLIBC_2.4 localtime F
+GLIBC_2.4 localtime_r F
+GLIBC_2.4 lockf F
+GLIBC_2.4 lockf64 F
+GLIBC_2.4 locs D 0x4
+GLIBC_2.4 longjmp F
+GLIBC_2.4 lrand48 F
+GLIBC_2.4 lrand48_r F
+GLIBC_2.4 lremovexattr F
+GLIBC_2.4 lsearch F
+GLIBC_2.4 lseek F
+GLIBC_2.4 lseek64 F
+GLIBC_2.4 lsetxattr F
+GLIBC_2.4 lutimes F
+GLIBC_2.4 madvise F
+GLIBC_2.4 makecontext F
+GLIBC_2.4 mallinfo F
+GLIBC_2.4 malloc F
+GLIBC_2.4 malloc_get_state F
+GLIBC_2.4 malloc_set_state F
+GLIBC_2.4 malloc_stats F
+GLIBC_2.4 malloc_trim F
+GLIBC_2.4 malloc_usable_size F
+GLIBC_2.4 mallopt F
+GLIBC_2.4 mallwatch D 0x4
+GLIBC_2.4 mblen F
+GLIBC_2.4 mbrlen F
+GLIBC_2.4 mbrtowc F
+GLIBC_2.4 mbsinit F
+GLIBC_2.4 mbsnrtowcs F
+GLIBC_2.4 mbsrtowcs F
+GLIBC_2.4 mbstowcs F
+GLIBC_2.4 mbtowc F
+GLIBC_2.4 mcheck F
+GLIBC_2.4 mcheck_check_all F
+GLIBC_2.4 mcheck_pedantic F
+GLIBC_2.4 mcount F
+GLIBC_2.4 memalign F
+GLIBC_2.4 memccpy F
+GLIBC_2.4 memchr F
+GLIBC_2.4 memcmp F
+GLIBC_2.4 memcpy F
+GLIBC_2.4 memfrob F
+GLIBC_2.4 memmem F
+GLIBC_2.4 memmove F
+GLIBC_2.4 mempcpy F
+GLIBC_2.4 memrchr F
+GLIBC_2.4 memset F
+GLIBC_2.4 mincore F
+GLIBC_2.4 mkdir F
+GLIBC_2.4 mkdirat F
+GLIBC_2.4 mkdtemp F
+GLIBC_2.4 mkfifo F
+GLIBC_2.4 mkfifoat F
+GLIBC_2.4 mkstemp F
+GLIBC_2.4 mkstemp64 F
+GLIBC_2.4 mktemp F
+GLIBC_2.4 mktime F
+GLIBC_2.4 mlock F
+GLIBC_2.4 mlockall F
+GLIBC_2.4 mmap F
+GLIBC_2.4 mmap64 F
+GLIBC_2.4 modf F
+GLIBC_2.4 modff F
+GLIBC_2.4 modfl F
+GLIBC_2.4 moncontrol F
+GLIBC_2.4 monstartup F
+GLIBC_2.4 mount F
+GLIBC_2.4 mprobe F
+GLIBC_2.4 mprotect F
+GLIBC_2.4 mrand48 F
+GLIBC_2.4 mrand48_r F
+GLIBC_2.4 mremap F
+GLIBC_2.4 msgctl F
+GLIBC_2.4 msgget F
+GLIBC_2.4 msgrcv F
+GLIBC_2.4 msgsnd F
+GLIBC_2.4 msync F
+GLIBC_2.4 mtrace F
+GLIBC_2.4 munlock F
+GLIBC_2.4 munlockall F
+GLIBC_2.4 munmap F
+GLIBC_2.4 muntrace F
+GLIBC_2.4 nanosleep F
+GLIBC_2.4 netname2host F
+GLIBC_2.4 netname2user F
+GLIBC_2.4 newlocale F
+GLIBC_2.4 nfsservctl F
+GLIBC_2.4 nftw F
+GLIBC_2.4 nftw64 F
+GLIBC_2.4 ngettext F
+GLIBC_2.4 nice F
+GLIBC_2.4 nl_langinfo F
+GLIBC_2.4 nl_langinfo_l F
+GLIBC_2.4 nrand48 F
+GLIBC_2.4 nrand48_r F
+GLIBC_2.4 ntohl F
+GLIBC_2.4 ntohs F
+GLIBC_2.4 ntp_adjtime F
+GLIBC_2.4 ntp_gettime F
+GLIBC_2.4 obstack_alloc_failed_handler D 0x4
+GLIBC_2.4 obstack_exit_failure D 0x4
+GLIBC_2.4 obstack_free F
+GLIBC_2.4 obstack_printf F
+GLIBC_2.4 obstack_vprintf F
+GLIBC_2.4 on_exit F
+GLIBC_2.4 open F
+GLIBC_2.4 open64 F
+GLIBC_2.4 open_memstream F
+GLIBC_2.4 open_wmemstream F
+GLIBC_2.4 openat F
+GLIBC_2.4 openat64 F
+GLIBC_2.4 opendir F
+GLIBC_2.4 openlog F
+GLIBC_2.4 optarg D 0x4
+GLIBC_2.4 opterr D 0x4
+GLIBC_2.4 optind D 0x4
+GLIBC_2.4 optopt D 0x4
+GLIBC_2.4 outb F
+GLIBC_2.4 outl F
+GLIBC_2.4 outw F
+GLIBC_2.4 parse_printf_format F
+GLIBC_2.4 passwd2des F
+GLIBC_2.4 pathconf F
+GLIBC_2.4 pause F
+GLIBC_2.4 pclose F
+GLIBC_2.4 perror F
+GLIBC_2.4 personality F
+GLIBC_2.4 pipe F
+GLIBC_2.4 pivot_root F
+GLIBC_2.4 pmap_getmaps F
+GLIBC_2.4 pmap_getport F
+GLIBC_2.4 pmap_rmtcall F
+GLIBC_2.4 pmap_set F
+GLIBC_2.4 pmap_unset F
+GLIBC_2.4 poll F
+GLIBC_2.4 popen F
+GLIBC_2.4 posix_fadvise F
+GLIBC_2.4 posix_fadvise64 F
+GLIBC_2.4 posix_fallocate F
+GLIBC_2.4 posix_fallocate64 F
+GLIBC_2.4 posix_madvise F
+GLIBC_2.4 posix_memalign F
+GLIBC_2.4 posix_openpt F
+GLIBC_2.4 posix_spawn F
+GLIBC_2.4 posix_spawn_file_actions_addclose F
+GLIBC_2.4 posix_spawn_file_actions_adddup2 F
+GLIBC_2.4 posix_spawn_file_actions_addopen F
+GLIBC_2.4 posix_spawn_file_actions_destroy F
+GLIBC_2.4 posix_spawn_file_actions_init F
+GLIBC_2.4 posix_spawnattr_destroy F
+GLIBC_2.4 posix_spawnattr_getflags F
+GLIBC_2.4 posix_spawnattr_getpgroup F
+GLIBC_2.4 posix_spawnattr_getschedparam F
+GLIBC_2.4 posix_spawnattr_getschedpolicy F
+GLIBC_2.4 posix_spawnattr_getsigdefault F
+GLIBC_2.4 posix_spawnattr_getsigmask F
+GLIBC_2.4 posix_spawnattr_init F
+GLIBC_2.4 posix_spawnattr_setflags F
+GLIBC_2.4 posix_spawnattr_setpgroup F
+GLIBC_2.4 posix_spawnattr_setschedparam F
+GLIBC_2.4 posix_spawnattr_setschedpolicy F
+GLIBC_2.4 posix_spawnattr_setsigdefault F
+GLIBC_2.4 posix_spawnattr_setsigmask F
+GLIBC_2.4 posix_spawnp F
+GLIBC_2.4 ppoll F
+GLIBC_2.4 prctl F
+GLIBC_2.4 pread F
+GLIBC_2.4 pread64 F
+GLIBC_2.4 printf F
+GLIBC_2.4 printf_size F
+GLIBC_2.4 printf_size_info F
+GLIBC_2.4 profil F
+GLIBC_2.4 profil_counter F
+GLIBC_2.4 program_invocation_name D 0x4
+GLIBC_2.4 program_invocation_short_name D 0x4
+GLIBC_2.4 pselect F
+GLIBC_2.4 psignal F
+GLIBC_2.4 pthread_attr_destroy F
+GLIBC_2.4 pthread_attr_getdetachstate F
+GLIBC_2.4 pthread_attr_getinheritsched F
+GLIBC_2.4 pthread_attr_getschedparam F
+GLIBC_2.4 pthread_attr_getschedpolicy F
+GLIBC_2.4 pthread_attr_getscope F
+GLIBC_2.4 pthread_attr_init F
+GLIBC_2.4 pthread_attr_setdetachstate F
+GLIBC_2.4 pthread_attr_setinheritsched F
+GLIBC_2.4 pthread_attr_setschedparam F
+GLIBC_2.4 pthread_attr_setschedpolicy F
+GLIBC_2.4 pthread_attr_setscope F
+GLIBC_2.4 pthread_cond_broadcast F
+GLIBC_2.4 pthread_cond_destroy F
+GLIBC_2.4 pthread_cond_init F
+GLIBC_2.4 pthread_cond_signal F
+GLIBC_2.4 pthread_cond_timedwait F
+GLIBC_2.4 pthread_cond_wait F
+GLIBC_2.4 pthread_condattr_destroy F
+GLIBC_2.4 pthread_condattr_init F
+GLIBC_2.4 pthread_equal F
+GLIBC_2.4 pthread_exit F
+GLIBC_2.4 pthread_getschedparam F
+GLIBC_2.4 pthread_mutex_destroy F
+GLIBC_2.4 pthread_mutex_init F
+GLIBC_2.4 pthread_mutex_lock F
+GLIBC_2.4 pthread_mutex_unlock F
+GLIBC_2.4 pthread_self F
+GLIBC_2.4 pthread_setcancelstate F
+GLIBC_2.4 pthread_setcanceltype F
+GLIBC_2.4 pthread_setschedparam F
+GLIBC_2.4 ptrace F
+GLIBC_2.4 ptsname F
+GLIBC_2.4 ptsname_r F
+GLIBC_2.4 putc F
+GLIBC_2.4 putc_unlocked F
+GLIBC_2.4 putchar F
+GLIBC_2.4 putchar_unlocked F
+GLIBC_2.4 putenv F
+GLIBC_2.4 putgrent F
+GLIBC_2.4 putmsg F
+GLIBC_2.4 putpmsg F
+GLIBC_2.4 putpwent F
+GLIBC_2.4 puts F
+GLIBC_2.4 putspent F
+GLIBC_2.4 pututline F
+GLIBC_2.4 pututxline F
+GLIBC_2.4 putw F
+GLIBC_2.4 putwc F
+GLIBC_2.4 putwc_unlocked F
+GLIBC_2.4 putwchar F
+GLIBC_2.4 putwchar_unlocked F
+GLIBC_2.4 pvalloc F
+GLIBC_2.4 pwrite F
+GLIBC_2.4 pwrite64 F
+GLIBC_2.4 qecvt F
+GLIBC_2.4 qecvt_r F
+GLIBC_2.4 qfcvt F
+GLIBC_2.4 qfcvt_r F
+GLIBC_2.4 qgcvt F
+GLIBC_2.4 qsort F
+GLIBC_2.4 query_module F
+GLIBC_2.4 quotactl F
+GLIBC_2.4 raise F
+GLIBC_2.4 rand F
+GLIBC_2.4 rand_r F
+GLIBC_2.4 random F
+GLIBC_2.4 random_r F
+GLIBC_2.4 rawmemchr F
+GLIBC_2.4 rcmd F
+GLIBC_2.4 rcmd_af F
+GLIBC_2.4 re_comp F
+GLIBC_2.4 re_compile_fastmap F
+GLIBC_2.4 re_compile_pattern F
+GLIBC_2.4 re_exec F
+GLIBC_2.4 re_match F
+GLIBC_2.4 re_match_2 F
+GLIBC_2.4 re_search F
+GLIBC_2.4 re_search_2 F
+GLIBC_2.4 re_set_registers F
+GLIBC_2.4 re_set_syntax F
+GLIBC_2.4 re_syntax_options D 0x4
+GLIBC_2.4 read F
+GLIBC_2.4 readahead F
+GLIBC_2.4 readdir F
+GLIBC_2.4 readdir64 F
+GLIBC_2.4 readdir64_r F
+GLIBC_2.4 readdir_r F
+GLIBC_2.4 readlink F
+GLIBC_2.4 readlinkat F
+GLIBC_2.4 readv F
+GLIBC_2.4 realloc F
+GLIBC_2.4 realpath F
+GLIBC_2.4 reboot F
+GLIBC_2.4 recv F
+GLIBC_2.4 recvfrom F
+GLIBC_2.4 recvmsg F
+GLIBC_2.4 regcomp F
+GLIBC_2.4 regerror F
+GLIBC_2.4 regexec F
+GLIBC_2.4 regfree F
+GLIBC_2.4 register_printf_function F
+GLIBC_2.4 registerrpc F
+GLIBC_2.4 remap_file_pages F
+GLIBC_2.4 remove F
+GLIBC_2.4 removexattr F
+GLIBC_2.4 remque F
+GLIBC_2.4 rename F
+GLIBC_2.4 renameat F
+GLIBC_2.4 revoke F
+GLIBC_2.4 rewind F
+GLIBC_2.4 rewinddir F
+GLIBC_2.4 rexec F
+GLIBC_2.4 rexec_af F
+GLIBC_2.4 rexecoptions D 0x4
+GLIBC_2.4 rindex F
+GLIBC_2.4 rmdir F
+GLIBC_2.4 rpc_createerr D 0x10
+GLIBC_2.4 rpmatch F
+GLIBC_2.4 rresvport F
+GLIBC_2.4 rresvport_af F
+GLIBC_2.4 rtime F
+GLIBC_2.4 ruserok F
+GLIBC_2.4 ruserok_af F
+GLIBC_2.4 ruserpass F
+GLIBC_2.4 sbrk F
+GLIBC_2.4 scalbn F
+GLIBC_2.4 scalbnf F
+GLIBC_2.4 scalbnl F
+GLIBC_2.4 scandir F
+GLIBC_2.4 scandir64 F
+GLIBC_2.4 scanf F
+GLIBC_2.4 sched_get_priority_max F
+GLIBC_2.4 sched_get_priority_min F
+GLIBC_2.4 sched_getaffinity F
+GLIBC_2.4 sched_getparam F
+GLIBC_2.4 sched_getscheduler F
+GLIBC_2.4 sched_rr_get_interval F
+GLIBC_2.4 sched_setaffinity F
+GLIBC_2.4 sched_setparam F
+GLIBC_2.4 sched_setscheduler F
+GLIBC_2.4 sched_yield F
+GLIBC_2.4 seed48 F
+GLIBC_2.4 seed48_r F
+GLIBC_2.4 seekdir F
+GLIBC_2.4 select F
+GLIBC_2.4 semctl F
+GLIBC_2.4 semget F
+GLIBC_2.4 semop F
+GLIBC_2.4 semtimedop F
+GLIBC_2.4 send F
+GLIBC_2.4 sendfile F
+GLIBC_2.4 sendfile64 F
+GLIBC_2.4 sendmsg F
+GLIBC_2.4 sendto F
+GLIBC_2.4 setaliasent F
+GLIBC_2.4 setbuf F
+GLIBC_2.4 setbuffer F
+GLIBC_2.4 setcontext F
+GLIBC_2.4 setdomainname F
+GLIBC_2.4 setegid F
+GLIBC_2.4 setenv F
+GLIBC_2.4 seteuid F
+GLIBC_2.4 setfsent F
+GLIBC_2.4 setfsgid F
+GLIBC_2.4 setfsuid F
+GLIBC_2.4 setgid F
+GLIBC_2.4 setgrent F
+GLIBC_2.4 setgroups F
+GLIBC_2.4 sethostent F
+GLIBC_2.4 sethostid F
+GLIBC_2.4 sethostname F
+GLIBC_2.4 setipv4sourcefilter F
+GLIBC_2.4 setitimer F
+GLIBC_2.4 setjmp F
+GLIBC_2.4 setlinebuf F
+GLIBC_2.4 setlocale F
+GLIBC_2.4 setlogin F
+GLIBC_2.4 setlogmask F
+GLIBC_2.4 setmntent F
+GLIBC_2.4 setnetent F
+GLIBC_2.4 setnetgrent F
+GLIBC_2.4 setpgid F
+GLIBC_2.4 setpgrp F
+GLIBC_2.4 setpriority F
+GLIBC_2.4 setprotoent F
+GLIBC_2.4 setpwent F
+GLIBC_2.4 setregid F
+GLIBC_2.4 setresgid F
+GLIBC_2.4 setresuid F
+GLIBC_2.4 setreuid F
+GLIBC_2.4 setrlimit F
+GLIBC_2.4 setrlimit64 F
+GLIBC_2.4 setrpcent F
+GLIBC_2.4 setservent F
+GLIBC_2.4 setsid F
+GLIBC_2.4 setsockopt F
+GLIBC_2.4 setsourcefilter F
+GLIBC_2.4 setspent F
+GLIBC_2.4 setstate F
+GLIBC_2.4 setstate_r F
+GLIBC_2.4 settimeofday F
+GLIBC_2.4 setttyent F
+GLIBC_2.4 setuid F
+GLIBC_2.4 setusershell F
+GLIBC_2.4 setutent F
+GLIBC_2.4 setutxent F
+GLIBC_2.4 setvbuf F
+GLIBC_2.4 setxattr F
+GLIBC_2.4 sgetspent F
+GLIBC_2.4 sgetspent_r F
+GLIBC_2.4 shmat F
+GLIBC_2.4 shmctl F
+GLIBC_2.4 shmdt F
+GLIBC_2.4 shmget F
+GLIBC_2.4 shutdown F
+GLIBC_2.4 sigaction F
+GLIBC_2.4 sigaddset F
+GLIBC_2.4 sigaltstack F
+GLIBC_2.4 sigandset F
+GLIBC_2.4 sigblock F
+GLIBC_2.4 sigdelset F
+GLIBC_2.4 sigemptyset F
+GLIBC_2.4 sigfillset F
+GLIBC_2.4 siggetmask F
+GLIBC_2.4 sighold F
+GLIBC_2.4 sigignore F
+GLIBC_2.4 siginterrupt F
+GLIBC_2.4 sigisemptyset F
+GLIBC_2.4 sigismember F
+GLIBC_2.4 siglongjmp F
+GLIBC_2.4 signal F
+GLIBC_2.4 sigorset F
+GLIBC_2.4 sigpause F
+GLIBC_2.4 sigpending F
+GLIBC_2.4 sigprocmask F
+GLIBC_2.4 sigqueue F
+GLIBC_2.4 sigrelse F
+GLIBC_2.4 sigreturn F
+GLIBC_2.4 sigset F
+GLIBC_2.4 sigsetmask F
+GLIBC_2.4 sigstack F
+GLIBC_2.4 sigsuspend F
+GLIBC_2.4 sigtimedwait F
+GLIBC_2.4 sigvec F
+GLIBC_2.4 sigwait F
+GLIBC_2.4 sigwaitinfo F
+GLIBC_2.4 sleep F
+GLIBC_2.4 snprintf F
+GLIBC_2.4 sockatmark F
+GLIBC_2.4 socket F
+GLIBC_2.4 socketpair F
+GLIBC_2.4 sprintf F
+GLIBC_2.4 sprofil F
+GLIBC_2.4 srand F
+GLIBC_2.4 srand48 F
+GLIBC_2.4 srand48_r F
+GLIBC_2.4 srandom F
+GLIBC_2.4 srandom_r F
+GLIBC_2.4 sscanf F
+GLIBC_2.4 ssignal F
+GLIBC_2.4 sstk F
+GLIBC_2.4 statfs F
+GLIBC_2.4 statfs64 F
+GLIBC_2.4 statvfs F
+GLIBC_2.4 statvfs64 F
+GLIBC_2.4 stderr D 0x4
+GLIBC_2.4 stdin D 0x4
+GLIBC_2.4 stdout D 0x4
+GLIBC_2.4 step F
+GLIBC_2.4 stime F
+GLIBC_2.4 stpcpy F
+GLIBC_2.4 stpncpy F
+GLIBC_2.4 strcasecmp F
+GLIBC_2.4 strcasecmp_l F
+GLIBC_2.4 strcasestr F
+GLIBC_2.4 strcat F
+GLIBC_2.4 strchr F
+GLIBC_2.4 strchrnul F
+GLIBC_2.4 strcmp F
+GLIBC_2.4 strcoll F
+GLIBC_2.4 strcoll_l F
+GLIBC_2.4 strcpy F
+GLIBC_2.4 strcspn F
+GLIBC_2.4 strdup F
+GLIBC_2.4 strerror F
+GLIBC_2.4 strerror_r F
+GLIBC_2.4 strfmon F
+GLIBC_2.4 strfmon_l F
+GLIBC_2.4 strfry F
+GLIBC_2.4 strftime F
+GLIBC_2.4 strftime_l F
+GLIBC_2.4 strlen F
+GLIBC_2.4 strncasecmp F
+GLIBC_2.4 strncasecmp_l F
+GLIBC_2.4 strncat F
+GLIBC_2.4 strncmp F
+GLIBC_2.4 strncpy F
+GLIBC_2.4 strndup F
+GLIBC_2.4 strnlen F
+GLIBC_2.4 strpbrk F
+GLIBC_2.4 strptime F
+GLIBC_2.4 strptime_l F
+GLIBC_2.4 strrchr F
+GLIBC_2.4 strsep F
+GLIBC_2.4 strsignal F
+GLIBC_2.4 strspn F
+GLIBC_2.4 strstr F
+GLIBC_2.4 strtod F
+GLIBC_2.4 strtod_l F
+GLIBC_2.4 strtof F
+GLIBC_2.4 strtof_l F
+GLIBC_2.4 strtoimax F
+GLIBC_2.4 strtok F
+GLIBC_2.4 strtok_r F
+GLIBC_2.4 strtol F
+GLIBC_2.4 strtol_l F
+GLIBC_2.4 strtold F
+GLIBC_2.4 strtold_l F
+GLIBC_2.4 strtoll F
+GLIBC_2.4 strtoll_l F
+GLIBC_2.4 strtoq F
+GLIBC_2.4 strtoul F
+GLIBC_2.4 strtoul_l F
+GLIBC_2.4 strtoull F
+GLIBC_2.4 strtoull_l F
+GLIBC_2.4 strtoumax F
+GLIBC_2.4 strtouq F
+GLIBC_2.4 strverscmp F
+GLIBC_2.4 strxfrm F
+GLIBC_2.4 strxfrm_l F
+GLIBC_2.4 stty F
+GLIBC_2.4 svc_exit F
+GLIBC_2.4 svc_fdset D 0x80
+GLIBC_2.4 svc_getreq F
+GLIBC_2.4 svc_getreq_common F
+GLIBC_2.4 svc_getreq_poll F
+GLIBC_2.4 svc_getreqset F
+GLIBC_2.4 svc_max_pollfd D 0x4
+GLIBC_2.4 svc_pollfd D 0x4
+GLIBC_2.4 svc_register F
+GLIBC_2.4 svc_run F
+GLIBC_2.4 svc_sendreply F
+GLIBC_2.4 svc_unregister F
+GLIBC_2.4 svcauthdes_stats D 0xc
+GLIBC_2.4 svcerr_auth F
+GLIBC_2.4 svcerr_decode F
+GLIBC_2.4 svcerr_noproc F
+GLIBC_2.4 svcerr_noprog F
+GLIBC_2.4 svcerr_progvers F
+GLIBC_2.4 svcerr_systemerr F
+GLIBC_2.4 svcerr_weakauth F
+GLIBC_2.4 svcfd_create F
+GLIBC_2.4 svcraw_create F
+GLIBC_2.4 svctcp_create F
+GLIBC_2.4 svcudp_bufcreate F
+GLIBC_2.4 svcudp_create F
+GLIBC_2.4 svcudp_enablecache F
+GLIBC_2.4 svcunix_create F
+GLIBC_2.4 svcunixfd_create F
+GLIBC_2.4 swab F
+GLIBC_2.4 swapcontext F
+GLIBC_2.4 swapoff F
+GLIBC_2.4 swapon F
+GLIBC_2.4 swprintf F
+GLIBC_2.4 swscanf F
+GLIBC_2.4 symlink F
+GLIBC_2.4 symlinkat F
+GLIBC_2.4 sync F
+GLIBC_2.4 sys_errlist D 0x210
+GLIBC_2.4 sys_nerr D 0x4
+GLIBC_2.4 sys_sigabbrev D 0x104
+GLIBC_2.4 sys_siglist D 0x104
+GLIBC_2.4 syscall F
+GLIBC_2.4 sysconf F
+GLIBC_2.4 sysctl F
+GLIBC_2.4 sysinfo F
+GLIBC_2.4 syslog F
+GLIBC_2.4 system F
+GLIBC_2.4 sysv_signal F
+GLIBC_2.4 tcdrain F
+GLIBC_2.4 tcflow F
+GLIBC_2.4 tcflush F
+GLIBC_2.4 tcgetattr F
+GLIBC_2.4 tcgetpgrp F
+GLIBC_2.4 tcgetsid F
+GLIBC_2.4 tcsendbreak F
+GLIBC_2.4 tcsetattr F
+GLIBC_2.4 tcsetpgrp F
+GLIBC_2.4 tdelete F
+GLIBC_2.4 tdestroy F
+GLIBC_2.4 telldir F
+GLIBC_2.4 tempnam F
+GLIBC_2.4 textdomain F
+GLIBC_2.4 tfind F
+GLIBC_2.4 time F
+GLIBC_2.4 timegm F
+GLIBC_2.4 timelocal F
+GLIBC_2.4 times F
+GLIBC_2.4 timezone D 0x4
+GLIBC_2.4 tmpfile F
+GLIBC_2.4 tmpfile64 F
+GLIBC_2.4 tmpnam F
+GLIBC_2.4 tmpnam_r F
+GLIBC_2.4 toascii F
+GLIBC_2.4 tolower F
+GLIBC_2.4 tolower_l F
+GLIBC_2.4 toupper F
+GLIBC_2.4 toupper_l F
+GLIBC_2.4 towctrans F
+GLIBC_2.4 towctrans_l F
+GLIBC_2.4 towlower F
+GLIBC_2.4 towlower_l F
+GLIBC_2.4 towupper F
+GLIBC_2.4 towupper_l F
+GLIBC_2.4 tr_break F
+GLIBC_2.4 truncate F
+GLIBC_2.4 truncate64 F
+GLIBC_2.4 tsearch F
+GLIBC_2.4 ttyname F
+GLIBC_2.4 ttyname_r F
+GLIBC_2.4 ttyslot F
+GLIBC_2.4 twalk F
+GLIBC_2.4 tzname D 0x8
+GLIBC_2.4 tzset F
+GLIBC_2.4 ualarm F
+GLIBC_2.4 ulckpwdf F
+GLIBC_2.4 ulimit F
+GLIBC_2.4 umask F
+GLIBC_2.4 umount F
+GLIBC_2.4 umount2 F
+GLIBC_2.4 uname F
+GLIBC_2.4 ungetc F
+GLIBC_2.4 ungetwc F
+GLIBC_2.4 unlink F
+GLIBC_2.4 unlinkat F
+GLIBC_2.4 unlockpt F
+GLIBC_2.4 unsetenv F
+GLIBC_2.4 unshare F
+GLIBC_2.4 updwtmp F
+GLIBC_2.4 updwtmpx F
+GLIBC_2.4 uselib F
+GLIBC_2.4 uselocale F
+GLIBC_2.4 user2netname F
+GLIBC_2.4 usleep F
+GLIBC_2.4 ustat F
+GLIBC_2.4 utime F
+GLIBC_2.4 utimes F
+GLIBC_2.4 utmpname F
+GLIBC_2.4 utmpxname F
+GLIBC_2.4 valloc F
+GLIBC_2.4 vasprintf F
+GLIBC_2.4 vdprintf F
+GLIBC_2.4 verr F
+GLIBC_2.4 verrx F
+GLIBC_2.4 versionsort F
+GLIBC_2.4 versionsort64 F
+GLIBC_2.4 vfork F
+GLIBC_2.4 vfprintf F
+GLIBC_2.4 vfscanf F
+GLIBC_2.4 vfwprintf F
+GLIBC_2.4 vfwscanf F
+GLIBC_2.4 vhangup F
+GLIBC_2.4 vlimit F
+GLIBC_2.4 vprintf F
+GLIBC_2.4 vscanf F
+GLIBC_2.4 vsnprintf F
+GLIBC_2.4 vsprintf F
+GLIBC_2.4 vsscanf F
+GLIBC_2.4 vswprintf F
+GLIBC_2.4 vswscanf F
+GLIBC_2.4 vsyslog F
+GLIBC_2.4 vtimes F
+GLIBC_2.4 vwarn F
+GLIBC_2.4 vwarnx F
+GLIBC_2.4 vwprintf F
+GLIBC_2.4 vwscanf F
+GLIBC_2.4 wait F
+GLIBC_2.4 wait3 F
+GLIBC_2.4 wait4 F
+GLIBC_2.4 waitid F
+GLIBC_2.4 waitpid F
+GLIBC_2.4 warn F
+GLIBC_2.4 warnx F
+GLIBC_2.4 wcpcpy F
+GLIBC_2.4 wcpncpy F
+GLIBC_2.4 wcrtomb F
+GLIBC_2.4 wcscasecmp F
+GLIBC_2.4 wcscasecmp_l F
+GLIBC_2.4 wcscat F
+GLIBC_2.4 wcschr F
+GLIBC_2.4 wcschrnul F
+GLIBC_2.4 wcscmp F
+GLIBC_2.4 wcscoll F
+GLIBC_2.4 wcscoll_l F
+GLIBC_2.4 wcscpy F
+GLIBC_2.4 wcscspn F
+GLIBC_2.4 wcsdup F
+GLIBC_2.4 wcsftime F
+GLIBC_2.4 wcsftime_l F
+GLIBC_2.4 wcslen F
+GLIBC_2.4 wcsncasecmp F
+GLIBC_2.4 wcsncasecmp_l F
+GLIBC_2.4 wcsncat F
+GLIBC_2.4 wcsncmp F
+GLIBC_2.4 wcsncpy F
+GLIBC_2.4 wcsnlen F
+GLIBC_2.4 wcsnrtombs F
+GLIBC_2.4 wcspbrk F
+GLIBC_2.4 wcsrchr F
+GLIBC_2.4 wcsrtombs F
+GLIBC_2.4 wcsspn F
+GLIBC_2.4 wcsstr F
+GLIBC_2.4 wcstod F
+GLIBC_2.4 wcstod_l F
+GLIBC_2.4 wcstof F
+GLIBC_2.4 wcstof_l F
+GLIBC_2.4 wcstoimax F
+GLIBC_2.4 wcstok F
+GLIBC_2.4 wcstol F
+GLIBC_2.4 wcstol_l F
+GLIBC_2.4 wcstold F
+GLIBC_2.4 wcstold_l F
+GLIBC_2.4 wcstoll F
+GLIBC_2.4 wcstoll_l F
+GLIBC_2.4 wcstombs F
+GLIBC_2.4 wcstoq F
+GLIBC_2.4 wcstoul F
+GLIBC_2.4 wcstoul_l F
+GLIBC_2.4 wcstoull F
+GLIBC_2.4 wcstoull_l F
+GLIBC_2.4 wcstoumax F
+GLIBC_2.4 wcstouq F
+GLIBC_2.4 wcswcs F
+GLIBC_2.4 wcswidth F
+GLIBC_2.4 wcsxfrm F
+GLIBC_2.4 wcsxfrm_l F
+GLIBC_2.4 wctob F
+GLIBC_2.4 wctomb F
+GLIBC_2.4 wctrans F
+GLIBC_2.4 wctrans_l F
+GLIBC_2.4 wctype F
+GLIBC_2.4 wctype_l F
+GLIBC_2.4 wcwidth F
+GLIBC_2.4 wmemchr F
+GLIBC_2.4 wmemcmp F
+GLIBC_2.4 wmemcpy F
+GLIBC_2.4 wmemmove F
+GLIBC_2.4 wmempcpy F
+GLIBC_2.4 wmemset F
+GLIBC_2.4 wordexp F
+GLIBC_2.4 wordfree F
+GLIBC_2.4 wprintf F
+GLIBC_2.4 write F
+GLIBC_2.4 writev F
+GLIBC_2.4 wscanf F
+GLIBC_2.4 xdecrypt F
+GLIBC_2.4 xdr_accepted_reply F
+GLIBC_2.4 xdr_array F
+GLIBC_2.4 xdr_authdes_cred F
+GLIBC_2.4 xdr_authdes_verf F
+GLIBC_2.4 xdr_authunix_parms F
+GLIBC_2.4 xdr_bool F
+GLIBC_2.4 xdr_bytes F
+GLIBC_2.4 xdr_callhdr F
+GLIBC_2.4 xdr_callmsg F
+GLIBC_2.4 xdr_char F
+GLIBC_2.4 xdr_cryptkeyarg F
+GLIBC_2.4 xdr_cryptkeyarg2 F
+GLIBC_2.4 xdr_cryptkeyres F
+GLIBC_2.4 xdr_des_block F
+GLIBC_2.4 xdr_double F
+GLIBC_2.4 xdr_enum F
+GLIBC_2.4 xdr_float F
+GLIBC_2.4 xdr_free F
+GLIBC_2.4 xdr_getcredres F
+GLIBC_2.4 xdr_hyper F
+GLIBC_2.4 xdr_int F
+GLIBC_2.4 xdr_int16_t F
+GLIBC_2.4 xdr_int32_t F
+GLIBC_2.4 xdr_int64_t F
+GLIBC_2.4 xdr_int8_t F
+GLIBC_2.4 xdr_key_netstarg F
+GLIBC_2.4 xdr_key_netstres F
+GLIBC_2.4 xdr_keybuf F
+GLIBC_2.4 xdr_keystatus F
+GLIBC_2.4 xdr_long F
+GLIBC_2.4 xdr_longlong_t F
+GLIBC_2.4 xdr_netnamestr F
+GLIBC_2.4 xdr_netobj F
+GLIBC_2.4 xdr_opaque F
+GLIBC_2.4 xdr_opaque_auth F
+GLIBC_2.4 xdr_pmap F
+GLIBC_2.4 xdr_pmaplist F
+GLIBC_2.4 xdr_pointer F
+GLIBC_2.4 xdr_quad_t F
+GLIBC_2.4 xdr_reference F
+GLIBC_2.4 xdr_rejected_reply F
+GLIBC_2.4 xdr_replymsg F
+GLIBC_2.4 xdr_rmtcall_args F
+GLIBC_2.4 xdr_rmtcallres F
+GLIBC_2.4 xdr_short F
+GLIBC_2.4 xdr_sizeof F
+GLIBC_2.4 xdr_string F
+GLIBC_2.4 xdr_u_char F
+GLIBC_2.4 xdr_u_hyper F
+GLIBC_2.4 xdr_u_int F
+GLIBC_2.4 xdr_u_long F
+GLIBC_2.4 xdr_u_longlong_t F
+GLIBC_2.4 xdr_u_quad_t F
+GLIBC_2.4 xdr_u_short F
+GLIBC_2.4 xdr_uint16_t F
+GLIBC_2.4 xdr_uint32_t F
+GLIBC_2.4 xdr_uint64_t F
+GLIBC_2.4 xdr_uint8_t F
+GLIBC_2.4 xdr_union F
+GLIBC_2.4 xdr_unixcred F
+GLIBC_2.4 xdr_vector F
+GLIBC_2.4 xdr_void F
+GLIBC_2.4 xdr_wrapstring F
+GLIBC_2.4 xdrmem_create F
+GLIBC_2.4 xdrrec_create F
+GLIBC_2.4 xdrrec_endofrecord F
+GLIBC_2.4 xdrrec_eof F
+GLIBC_2.4 xdrrec_skiprecord F
+GLIBC_2.4 xdrstdio_create F
+GLIBC_2.4 xencrypt F
+GLIBC_2.4 xprt_register F
+GLIBC_2.4 xprt_unregister F
+GLIBC_2.5 __readlinkat_chk F
+GLIBC_2.5 inet6_opt_append F
+GLIBC_2.5 inet6_opt_find F
+GLIBC_2.5 inet6_opt_finish F
+GLIBC_2.5 inet6_opt_get_val F
+GLIBC_2.5 inet6_opt_init F
+GLIBC_2.5 inet6_opt_next F
+GLIBC_2.5 inet6_opt_set_val F
+GLIBC_2.5 inet6_rth_add F
+GLIBC_2.5 inet6_rth_getaddr F
+GLIBC_2.5 inet6_rth_init F
+GLIBC_2.5 inet6_rth_reverse F
+GLIBC_2.5 inet6_rth_segments F
+GLIBC_2.5 inet6_rth_space F
+GLIBC_2.5 splice F
+GLIBC_2.5 tee F
+GLIBC_2.5 vmsplice F
+GLIBC_2.6 __sched_cpucount F
+GLIBC_2.6 epoll_pwait F
+GLIBC_2.6 futimens F
+GLIBC_2.6 sched_getcpu F
+GLIBC_2.6 strerror_l F
+GLIBC_2.6 sync_file_range F
+GLIBC_2.6 utimensat F
+GLIBC_2.7 __fread_chk F
+GLIBC_2.7 __fread_unlocked_chk F
+GLIBC_2.7 __isoc99_fscanf F
+GLIBC_2.7 __isoc99_fwscanf F
+GLIBC_2.7 __isoc99_scanf F
+GLIBC_2.7 __isoc99_sscanf F
+GLIBC_2.7 __isoc99_swscanf F
+GLIBC_2.7 __isoc99_vfscanf F
+GLIBC_2.7 __isoc99_vfwscanf F
+GLIBC_2.7 __isoc99_vscanf F
+GLIBC_2.7 __isoc99_vsscanf F
+GLIBC_2.7 __isoc99_vswscanf F
+GLIBC_2.7 __isoc99_vwscanf F
+GLIBC_2.7 __isoc99_wscanf F
+GLIBC_2.7 __open64_2 F
+GLIBC_2.7 __open_2 F
+GLIBC_2.7 __openat64_2 F
+GLIBC_2.7 __openat_2 F
+GLIBC_2.7 __sched_cpualloc F
+GLIBC_2.7 __sched_cpufree F
+GLIBC_2.7 eventfd F
+GLIBC_2.7 eventfd_read F
+GLIBC_2.7 eventfd_write F
+GLIBC_2.7 mkostemp F
+GLIBC_2.7 mkostemp64 F
+GLIBC_2.7 signalfd F
+GLIBC_2.8 __asprintf_chk F
+GLIBC_2.8 __dprintf_chk F
+GLIBC_2.8 __gnu_mcount_nc F
+GLIBC_2.8 __obstack_printf_chk F
+GLIBC_2.8 __obstack_vprintf_chk F
+GLIBC_2.8 __vasprintf_chk F
+GLIBC_2.8 __vdprintf_chk F
+GLIBC_2.8 qsort_r F
+GLIBC_2.8 timerfd_create F
+GLIBC_2.8 timerfd_gettime F
+GLIBC_2.8 timerfd_settime F
+GLIBC_2.9 dup3 F
+GLIBC_2.9 epoll_create1 F
+GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/arm/libcrypt.abilist b/sysdeps/unix/sysv/linux/arm/be/libcrypt.abilist
index 78a25b6df2..78a25b6df2 100644
--- a/sysdeps/unix/sysv/linux/arm/libcrypt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libcrypt.abilist
diff --git a/sysdeps/unix/sysv/linux/arm/libdl.abilist b/sysdeps/unix/sysv/linux/arm/be/libdl.abilist
index 40132b1374..40132b1374 100644
--- a/sysdeps/unix/sysv/linux/arm/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libdl.abilist
diff --git a/sysdeps/unix/sysv/linux/arm/be/libm.abilist b/sysdeps/unix/sysv/linux/arm/be/libm.abilist
new file mode 100644
index 0000000000..dd5931f288
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/arm/be/libm.abilist
@@ -0,0 +1,784 @@
+GLIBC_2.15 __acos_finite F
+GLIBC_2.15 __acosf_finite F
+GLIBC_2.15 __acosh_finite F
+GLIBC_2.15 __acoshf_finite F
+GLIBC_2.15 __asin_finite F
+GLIBC_2.15 __asinf_finite F
+GLIBC_2.15 __atan2_finite F
+GLIBC_2.15 __atan2f_finite F
+GLIBC_2.15 __atanh_finite F
+GLIBC_2.15 __atanhf_finite F
+GLIBC_2.15 __cosh_finite F
+GLIBC_2.15 __coshf_finite F
+GLIBC_2.15 __exp10_finite F
+GLIBC_2.15 __exp10f_finite F
+GLIBC_2.15 __exp2_finite F
+GLIBC_2.15 __exp2f_finite F
+GLIBC_2.15 __exp_finite F
+GLIBC_2.15 __expf_finite F
+GLIBC_2.15 __fmod_finite F
+GLIBC_2.15 __fmodf_finite F
+GLIBC_2.15 __gamma_r_finite F
+GLIBC_2.15 __gammaf_r_finite F
+GLIBC_2.15 __hypot_finite F
+GLIBC_2.15 __hypotf_finite F
+GLIBC_2.15 __j0_finite F
+GLIBC_2.15 __j0f_finite F
+GLIBC_2.15 __j1_finite F
+GLIBC_2.15 __j1f_finite F
+GLIBC_2.15 __jn_finite F
+GLIBC_2.15 __jnf_finite F
+GLIBC_2.15 __lgamma_r_finite F
+GLIBC_2.15 __lgammaf_r_finite F
+GLIBC_2.15 __log10_finite F
+GLIBC_2.15 __log10f_finite F
+GLIBC_2.15 __log2_finite F
+GLIBC_2.15 __log2f_finite F
+GLIBC_2.15 __log_finite F
+GLIBC_2.15 __logf_finite F
+GLIBC_2.15 __pow_finite F
+GLIBC_2.15 __powf_finite F
+GLIBC_2.15 __remainder_finite F
+GLIBC_2.15 __remainderf_finite F
+GLIBC_2.15 __scalb_finite F
+GLIBC_2.15 __scalbf_finite F
+GLIBC_2.15 __sinh_finite F
+GLIBC_2.15 __sinhf_finite F
+GLIBC_2.15 __sqrt_finite F
+GLIBC_2.15 __sqrtf_finite F
+GLIBC_2.15 __y0_finite F
+GLIBC_2.15 __y0f_finite F
+GLIBC_2.15 __y1_finite F
+GLIBC_2.15 __y1f_finite F
+GLIBC_2.15 __yn_finite F
+GLIBC_2.15 __ynf_finite F
+GLIBC_2.18 __issignaling F
+GLIBC_2.18 __issignalingf F
+GLIBC_2.23 __signgam D 0x4
+GLIBC_2.23 lgamma F
+GLIBC_2.23 lgammaf F
+GLIBC_2.23 lgammal F
+GLIBC_2.24 nextdown F
+GLIBC_2.24 nextdownf F
+GLIBC_2.24 nextdownl F
+GLIBC_2.24 nextup F
+GLIBC_2.24 nextupf F
+GLIBC_2.24 nextupl F
+GLIBC_2.25 __iseqsig F
+GLIBC_2.25 __iseqsigf F
+GLIBC_2.25 canonicalize F
+GLIBC_2.25 canonicalizef F
+GLIBC_2.25 canonicalizel F
+GLIBC_2.25 fegetmode F
+GLIBC_2.25 fesetexcept F
+GLIBC_2.25 fesetmode F
+GLIBC_2.25 fetestexceptflag F
+GLIBC_2.25 fmaxmag F
+GLIBC_2.25 fmaxmagf F
+GLIBC_2.25 fmaxmagl F
+GLIBC_2.25 fminmag F
+GLIBC_2.25 fminmagf F
+GLIBC_2.25 fminmagl F
+GLIBC_2.25 fromfp F
+GLIBC_2.25 fromfpf F
+GLIBC_2.25 fromfpl F
+GLIBC_2.25 fromfpx F
+GLIBC_2.25 fromfpxf F
+GLIBC_2.25 fromfpxl F
+GLIBC_2.25 getpayload F
+GLIBC_2.25 getpayloadf F
+GLIBC_2.25 getpayloadl F
+GLIBC_2.25 llogb F
+GLIBC_2.25 llogbf F
+GLIBC_2.25 llogbl F
+GLIBC_2.25 roundeven F
+GLIBC_2.25 roundevenf F
+GLIBC_2.25 roundevenl F
+GLIBC_2.25 setpayload F
+GLIBC_2.25 setpayloadf F
+GLIBC_2.25 setpayloadl F
+GLIBC_2.25 setpayloadsig F
+GLIBC_2.25 setpayloadsigf F
+GLIBC_2.25 setpayloadsigl F
+GLIBC_2.25 totalorder F
+GLIBC_2.25 totalorderf F
+GLIBC_2.25 totalorderl F
+GLIBC_2.25 totalordermag F
+GLIBC_2.25 totalordermagf F
+GLIBC_2.25 totalordermagl F
+GLIBC_2.25 ufromfp F
+GLIBC_2.25 ufromfpf F
+GLIBC_2.25 ufromfpl F
+GLIBC_2.25 ufromfpx F
+GLIBC_2.25 ufromfpxf F
+GLIBC_2.25 ufromfpxl F
+GLIBC_2.27 acosf32 F
+GLIBC_2.27 acosf32x F
+GLIBC_2.27 acosf64 F
+GLIBC_2.27 acoshf32 F
+GLIBC_2.27 acoshf32x F
+GLIBC_2.27 acoshf64 F
+GLIBC_2.27 asinf32 F
+GLIBC_2.27 asinf32x F
+GLIBC_2.27 asinf64 F
+GLIBC_2.27 asinhf32 F
+GLIBC_2.27 asinhf32x F
+GLIBC_2.27 asinhf64 F
+GLIBC_2.27 atan2f32 F
+GLIBC_2.27 atan2f32x F
+GLIBC_2.27 atan2f64 F
+GLIBC_2.27 atanf32 F
+GLIBC_2.27 atanf32x F
+GLIBC_2.27 atanf64 F
+GLIBC_2.27 atanhf32 F
+GLIBC_2.27 atanhf32x F
+GLIBC_2.27 atanhf64 F
+GLIBC_2.27 cabsf32 F
+GLIBC_2.27 cabsf32x F
+GLIBC_2.27 cabsf64 F
+GLIBC_2.27 cacosf32 F
+GLIBC_2.27 cacosf32x F
+GLIBC_2.27 cacosf64 F
+GLIBC_2.27 cacoshf32 F
+GLIBC_2.27 cacoshf32x F
+GLIBC_2.27 cacoshf64 F
+GLIBC_2.27 canonicalizef32 F
+GLIBC_2.27 canonicalizef32x F
+GLIBC_2.27 canonicalizef64 F
+GLIBC_2.27 cargf32 F
+GLIBC_2.27 cargf32x F
+GLIBC_2.27 cargf64 F
+GLIBC_2.27 casinf32 F
+GLIBC_2.27 casinf32x F
+GLIBC_2.27 casinf64 F
+GLIBC_2.27 casinhf32 F
+GLIBC_2.27 casinhf32x F
+GLIBC_2.27 casinhf64 F
+GLIBC_2.27 catanf32 F
+GLIBC_2.27 catanf32x F
+GLIBC_2.27 catanf64 F
+GLIBC_2.27 catanhf32 F
+GLIBC_2.27 catanhf32x F
+GLIBC_2.27 catanhf64 F
+GLIBC_2.27 cbrtf32 F
+GLIBC_2.27 cbrtf32x F
+GLIBC_2.27 cbrtf64 F
+GLIBC_2.27 ccosf32 F
+GLIBC_2.27 ccosf32x F
+GLIBC_2.27 ccosf64 F
+GLIBC_2.27 ccoshf32 F
+GLIBC_2.27 ccoshf32x F
+GLIBC_2.27 ccoshf64 F
+GLIBC_2.27 ceilf32 F
+GLIBC_2.27 ceilf32x F
+GLIBC_2.27 ceilf64 F
+GLIBC_2.27 cexpf32 F
+GLIBC_2.27 cexpf32x F
+GLIBC_2.27 cexpf64 F
+GLIBC_2.27 cimagf32 F
+GLIBC_2.27 cimagf32x F
+GLIBC_2.27 cimagf64 F
+GLIBC_2.27 clog10f32 F
+GLIBC_2.27 clog10f32x F
+GLIBC_2.27 clog10f64 F
+GLIBC_2.27 clogf32 F
+GLIBC_2.27 clogf32x F
+GLIBC_2.27 clogf64 F
+GLIBC_2.27 conjf32 F
+GLIBC_2.27 conjf32x F
+GLIBC_2.27 conjf64 F
+GLIBC_2.27 copysignf32 F
+GLIBC_2.27 copysignf32x F
+GLIBC_2.27 copysignf64 F
+GLIBC_2.27 cosf32 F
+GLIBC_2.27 cosf32x F
+GLIBC_2.27 cosf64 F
+GLIBC_2.27 coshf32 F
+GLIBC_2.27 coshf32x F
+GLIBC_2.27 coshf64 F
+GLIBC_2.27 cpowf32 F
+GLIBC_2.27 cpowf32x F
+GLIBC_2.27 cpowf64 F
+GLIBC_2.27 cprojf32 F
+GLIBC_2.27 cprojf32x F
+GLIBC_2.27 cprojf64 F
+GLIBC_2.27 crealf32 F
+GLIBC_2.27 crealf32x F
+GLIBC_2.27 crealf64 F
+GLIBC_2.27 csinf32 F
+GLIBC_2.27 csinf32x F
+GLIBC_2.27 csinf64 F
+GLIBC_2.27 csinhf32 F
+GLIBC_2.27 csinhf32x F
+GLIBC_2.27 csinhf64 F
+GLIBC_2.27 csqrtf32 F
+GLIBC_2.27 csqrtf32x F
+GLIBC_2.27 csqrtf64 F
+GLIBC_2.27 ctanf32 F
+GLIBC_2.27 ctanf32x F
+GLIBC_2.27 ctanf64 F
+GLIBC_2.27 ctanhf32 F
+GLIBC_2.27 ctanhf32x F
+GLIBC_2.27 ctanhf64 F
+GLIBC_2.27 erfcf32 F
+GLIBC_2.27 erfcf32x F
+GLIBC_2.27 erfcf64 F
+GLIBC_2.27 erff32 F
+GLIBC_2.27 erff32x F
+GLIBC_2.27 erff64 F
+GLIBC_2.27 exp10f32 F
+GLIBC_2.27 exp10f32x F
+GLIBC_2.27 exp10f64 F
+GLIBC_2.27 exp2f F
+GLIBC_2.27 exp2f32 F
+GLIBC_2.27 exp2f32x F
+GLIBC_2.27 exp2f64 F
+GLIBC_2.27 expf F
+GLIBC_2.27 expf32 F
+GLIBC_2.27 expf32x F
+GLIBC_2.27 expf64 F
+GLIBC_2.27 expm1f32 F
+GLIBC_2.27 expm1f32x F
+GLIBC_2.27 expm1f64 F
+GLIBC_2.27 fabsf32 F
+GLIBC_2.27 fabsf32x F
+GLIBC_2.27 fabsf64 F
+GLIBC_2.27 fdimf32 F
+GLIBC_2.27 fdimf32x F
+GLIBC_2.27 fdimf64 F
+GLIBC_2.27 floorf32 F
+GLIBC_2.27 floorf32x F
+GLIBC_2.27 floorf64 F
+GLIBC_2.27 fmaf32 F
+GLIBC_2.27 fmaf32x F
+GLIBC_2.27 fmaf64 F
+GLIBC_2.27 fmaxf32 F
+GLIBC_2.27 fmaxf32x F
+GLIBC_2.27 fmaxf64 F
+GLIBC_2.27 fmaxmagf32 F
+GLIBC_2.27 fmaxmagf32x F
+GLIBC_2.27 fmaxmagf64 F
+GLIBC_2.27 fminf32 F
+GLIBC_2.27 fminf32x F
+GLIBC_2.27 fminf64 F
+GLIBC_2.27 fminmagf32 F
+GLIBC_2.27 fminmagf32x F
+GLIBC_2.27 fminmagf64 F
+GLIBC_2.27 fmodf32 F
+GLIBC_2.27 fmodf32x F
+GLIBC_2.27 fmodf64 F
+GLIBC_2.27 frexpf32 F
+GLIBC_2.27 frexpf32x F
+GLIBC_2.27 frexpf64 F
+GLIBC_2.27 fromfpf32 F
+GLIBC_2.27 fromfpf32x F
+GLIBC_2.27 fromfpf64 F
+GLIBC_2.27 fromfpxf32 F
+GLIBC_2.27 fromfpxf32x F
+GLIBC_2.27 fromfpxf64 F
+GLIBC_2.27 getpayloadf32 F
+GLIBC_2.27 getpayloadf32x F
+GLIBC_2.27 getpayloadf64 F
+GLIBC_2.27 hypotf32 F
+GLIBC_2.27 hypotf32x F
+GLIBC_2.27 hypotf64 F
+GLIBC_2.27 ilogbf32 F
+GLIBC_2.27 ilogbf32x F
+GLIBC_2.27 ilogbf64 F
+GLIBC_2.27 j0f32 F
+GLIBC_2.27 j0f32x F
+GLIBC_2.27 j0f64 F
+GLIBC_2.27 j1f32 F
+GLIBC_2.27 j1f32x F
+GLIBC_2.27 j1f64 F
+GLIBC_2.27 jnf32 F
+GLIBC_2.27 jnf32x F
+GLIBC_2.27 jnf64 F
+GLIBC_2.27 ldexpf32 F
+GLIBC_2.27 ldexpf32x F
+GLIBC_2.27 ldexpf64 F
+GLIBC_2.27 lgammaf32 F
+GLIBC_2.27 lgammaf32_r F
+GLIBC_2.27 lgammaf32x F
+GLIBC_2.27 lgammaf32x_r F
+GLIBC_2.27 lgammaf64 F
+GLIBC_2.27 lgammaf64_r F
+GLIBC_2.27 llogbf32 F
+GLIBC_2.27 llogbf32x F
+GLIBC_2.27 llogbf64 F
+GLIBC_2.27 llrintf32 F
+GLIBC_2.27 llrintf32x F
+GLIBC_2.27 llrintf64 F
+GLIBC_2.27 llroundf32 F
+GLIBC_2.27 llroundf32x F
+GLIBC_2.27 llroundf64 F
+GLIBC_2.27 log10f32 F
+GLIBC_2.27 log10f32x F
+GLIBC_2.27 log10f64 F
+GLIBC_2.27 log1pf32 F
+GLIBC_2.27 log1pf32x F
+GLIBC_2.27 log1pf64 F
+GLIBC_2.27 log2f F
+GLIBC_2.27 log2f32 F
+GLIBC_2.27 log2f32x F
+GLIBC_2.27 log2f64 F
+GLIBC_2.27 logbf32 F
+GLIBC_2.27 logbf32x F
+GLIBC_2.27 logbf64 F
+GLIBC_2.27 logf F
+GLIBC_2.27 logf32 F
+GLIBC_2.27 logf32x F
+GLIBC_2.27 logf64 F
+GLIBC_2.27 lrintf32 F
+GLIBC_2.27 lrintf32x F
+GLIBC_2.27 lrintf64 F
+GLIBC_2.27 lroundf32 F
+GLIBC_2.27 lroundf32x F
+GLIBC_2.27 lroundf64 F
+GLIBC_2.27 modff32 F
+GLIBC_2.27 modff32x F
+GLIBC_2.27 modff64 F
+GLIBC_2.27 nanf32 F
+GLIBC_2.27 nanf32x F
+GLIBC_2.27 nanf64 F
+GLIBC_2.27 nearbyintf32 F
+GLIBC_2.27 nearbyintf32x F
+GLIBC_2.27 nearbyintf64 F
+GLIBC_2.27 nextafterf32 F
+GLIBC_2.27 nextafterf32x F
+GLIBC_2.27 nextafterf64 F
+GLIBC_2.27 nextdownf32 F
+GLIBC_2.27 nextdownf32x F
+GLIBC_2.27 nextdownf64 F
+GLIBC_2.27 nextupf32 F
+GLIBC_2.27 nextupf32x F
+GLIBC_2.27 nextupf64 F
+GLIBC_2.27 powf F
+GLIBC_2.27 powf32 F
+GLIBC_2.27 powf32x F
+GLIBC_2.27 powf64 F
+GLIBC_2.27 remainderf32 F
+GLIBC_2.27 remainderf32x F
+GLIBC_2.27 remainderf64 F
+GLIBC_2.27 remquof32 F
+GLIBC_2.27 remquof32x F
+GLIBC_2.27 remquof64 F
+GLIBC_2.27 rintf32 F
+GLIBC_2.27 rintf32x F
+GLIBC_2.27 rintf64 F
+GLIBC_2.27 roundevenf32 F
+GLIBC_2.27 roundevenf32x F
+GLIBC_2.27 roundevenf64 F
+GLIBC_2.27 roundf32 F
+GLIBC_2.27 roundf32x F
+GLIBC_2.27 roundf64 F
+GLIBC_2.27 scalblnf32 F
+GLIBC_2.27 scalblnf32x F
+GLIBC_2.27 scalblnf64 F
+GLIBC_2.27 scalbnf32 F
+GLIBC_2.27 scalbnf32x F
+GLIBC_2.27 scalbnf64 F
+GLIBC_2.27 setpayloadf32 F
+GLIBC_2.27 setpayloadf32x F
+GLIBC_2.27 setpayloadf64 F
+GLIBC_2.27 setpayloadsigf32 F
+GLIBC_2.27 setpayloadsigf32x F
+GLIBC_2.27 setpayloadsigf64 F
+GLIBC_2.27 sincosf32 F
+GLIBC_2.27 sincosf32x F
+GLIBC_2.27 sincosf64 F
+GLIBC_2.27 sinf32 F
+GLIBC_2.27 sinf32x F
+GLIBC_2.27 sinf64 F
+GLIBC_2.27 sinhf32 F
+GLIBC_2.27 sinhf32x F
+GLIBC_2.27 sinhf64 F
+GLIBC_2.27 sqrtf32 F
+GLIBC_2.27 sqrtf32x F
+GLIBC_2.27 sqrtf64 F
+GLIBC_2.27 tanf32 F
+GLIBC_2.27 tanf32x F
+GLIBC_2.27 tanf64 F
+GLIBC_2.27 tanhf32 F
+GLIBC_2.27 tanhf32x F
+GLIBC_2.27 tanhf64 F
+GLIBC_2.27 tgammaf32 F
+GLIBC_2.27 tgammaf32x F
+GLIBC_2.27 tgammaf64 F
+GLIBC_2.27 totalorderf32 F
+GLIBC_2.27 totalorderf32x F
+GLIBC_2.27 totalorderf64 F
+GLIBC_2.27 totalordermagf32 F
+GLIBC_2.27 totalordermagf32x F
+GLIBC_2.27 totalordermagf64 F
+GLIBC_2.27 truncf32 F
+GLIBC_2.27 truncf32x F
+GLIBC_2.27 truncf64 F
+GLIBC_2.27 ufromfpf32 F
+GLIBC_2.27 ufromfpf32x F
+GLIBC_2.27 ufromfpf64 F
+GLIBC_2.27 ufromfpxf32 F
+GLIBC_2.27 ufromfpxf32x F
+GLIBC_2.27 ufromfpxf64 F
+GLIBC_2.27 y0f32 F
+GLIBC_2.27 y0f32x F
+GLIBC_2.27 y0f64 F
+GLIBC_2.27 y1f32 F
+GLIBC_2.27 y1f32x F
+GLIBC_2.27 y1f64 F
+GLIBC_2.27 ynf32 F
+GLIBC_2.27 ynf32x F
+GLIBC_2.27 ynf64 F
+GLIBC_2.28 daddl F
+GLIBC_2.28 ddivl F
+GLIBC_2.28 dmull F
+GLIBC_2.28 dsubl F
+GLIBC_2.28 f32addf32x F
+GLIBC_2.28 f32addf64 F
+GLIBC_2.28 f32divf32x F
+GLIBC_2.28 f32divf64 F
+GLIBC_2.28 f32mulf32x F
+GLIBC_2.28 f32mulf64 F
+GLIBC_2.28 f32subf32x F
+GLIBC_2.28 f32subf64 F
+GLIBC_2.28 f32xaddf64 F
+GLIBC_2.28 f32xdivf64 F
+GLIBC_2.28 f32xmulf64 F
+GLIBC_2.28 f32xsubf64 F
+GLIBC_2.28 fadd F
+GLIBC_2.28 faddl F
+GLIBC_2.28 fdiv F
+GLIBC_2.28 fdivl F
+GLIBC_2.28 fmul F
+GLIBC_2.28 fmull F
+GLIBC_2.28 fsub F
+GLIBC_2.28 fsubl F
+GLIBC_2.29 exp F
+GLIBC_2.29 exp2 F
+GLIBC_2.29 log F
+GLIBC_2.29 log2 F
+GLIBC_2.29 pow F
+GLIBC_2.31 totalorder F
+GLIBC_2.31 totalorderf F
+GLIBC_2.31 totalorderf32 F
+GLIBC_2.31 totalorderf32x F
+GLIBC_2.31 totalorderf64 F
+GLIBC_2.31 totalorderl F
+GLIBC_2.31 totalordermag F
+GLIBC_2.31 totalordermagf F
+GLIBC_2.31 totalordermagf32 F
+GLIBC_2.31 totalordermagf32x F
+GLIBC_2.31 totalordermagf64 F
+GLIBC_2.31 totalordermagl F
+GLIBC_2.4 _LIB_VERSION D 0x4
+GLIBC_2.4 __clog10 F
+GLIBC_2.4 __clog10f F
+GLIBC_2.4 __clog10l F
+GLIBC_2.4 __finite F
+GLIBC_2.4 __finitef F
+GLIBC_2.4 __finitel F
+GLIBC_2.4 __fpclassify F
+GLIBC_2.4 __fpclassifyf F
+GLIBC_2.4 __signbit F
+GLIBC_2.4 __signbitf F
+GLIBC_2.4 acos F
+GLIBC_2.4 acosf F
+GLIBC_2.4 acosh F
+GLIBC_2.4 acoshf F
+GLIBC_2.4 acoshl F
+GLIBC_2.4 acosl F
+GLIBC_2.4 asin F
+GLIBC_2.4 asinf F
+GLIBC_2.4 asinh F
+GLIBC_2.4 asinhf F
+GLIBC_2.4 asinhl F
+GLIBC_2.4 asinl F
+GLIBC_2.4 atan F
+GLIBC_2.4 atan2 F
+GLIBC_2.4 atan2f F
+GLIBC_2.4 atan2l F
+GLIBC_2.4 atanf F
+GLIBC_2.4 atanh F
+GLIBC_2.4 atanhf F
+GLIBC_2.4 atanhl F
+GLIBC_2.4 atanl F
+GLIBC_2.4 cabs F
+GLIBC_2.4 cabsf F
+GLIBC_2.4 cabsl F
+GLIBC_2.4 cacos F
+GLIBC_2.4 cacosf F
+GLIBC_2.4 cacosh F
+GLIBC_2.4 cacoshf F
+GLIBC_2.4 cacoshl F
+GLIBC_2.4 cacosl F
+GLIBC_2.4 carg F
+GLIBC_2.4 cargf F
+GLIBC_2.4 cargl F
+GLIBC_2.4 casin F
+GLIBC_2.4 casinf F
+GLIBC_2.4 casinh F
+GLIBC_2.4 casinhf F
+GLIBC_2.4 casinhl F
+GLIBC_2.4 casinl F
+GLIBC_2.4 catan F
+GLIBC_2.4 catanf F
+GLIBC_2.4 catanh F
+GLIBC_2.4 catanhf F
+GLIBC_2.4 catanhl F
+GLIBC_2.4 catanl F
+GLIBC_2.4 cbrt F
+GLIBC_2.4 cbrtf F
+GLIBC_2.4 cbrtl F
+GLIBC_2.4 ccos F
+GLIBC_2.4 ccosf F
+GLIBC_2.4 ccosh F
+GLIBC_2.4 ccoshf F
+GLIBC_2.4 ccoshl F
+GLIBC_2.4 ccosl F
+GLIBC_2.4 ceil F
+GLIBC_2.4 ceilf F
+GLIBC_2.4 ceill F
+GLIBC_2.4 cexp F
+GLIBC_2.4 cexpf F
+GLIBC_2.4 cexpl F
+GLIBC_2.4 cimag F
+GLIBC_2.4 cimagf F
+GLIBC_2.4 cimagl F
+GLIBC_2.4 clog F
+GLIBC_2.4 clog10 F
+GLIBC_2.4 clog10f F
+GLIBC_2.4 clog10l F
+GLIBC_2.4 clogf F
+GLIBC_2.4 clogl F
+GLIBC_2.4 conj F
+GLIBC_2.4 conjf F
+GLIBC_2.4 conjl F
+GLIBC_2.4 copysign F
+GLIBC_2.4 copysignf F
+GLIBC_2.4 copysignl F
+GLIBC_2.4 cos F
+GLIBC_2.4 cosf F
+GLIBC_2.4 cosh F
+GLIBC_2.4 coshf F
+GLIBC_2.4 coshl F
+GLIBC_2.4 cosl F
+GLIBC_2.4 cpow F
+GLIBC_2.4 cpowf F
+GLIBC_2.4 cpowl F
+GLIBC_2.4 cproj F
+GLIBC_2.4 cprojf F
+GLIBC_2.4 cprojl F
+GLIBC_2.4 creal F
+GLIBC_2.4 crealf F
+GLIBC_2.4 creall F
+GLIBC_2.4 csin F
+GLIBC_2.4 csinf F
+GLIBC_2.4 csinh F
+GLIBC_2.4 csinhf F
+GLIBC_2.4 csinhl F
+GLIBC_2.4 csinl F
+GLIBC_2.4 csqrt F
+GLIBC_2.4 csqrtf F
+GLIBC_2.4 csqrtl F
+GLIBC_2.4 ctan F
+GLIBC_2.4 ctanf F
+GLIBC_2.4 ctanh F
+GLIBC_2.4 ctanhf F
+GLIBC_2.4 ctanhl F
+GLIBC_2.4 ctanl F
+GLIBC_2.4 drem F
+GLIBC_2.4 dremf F
+GLIBC_2.4 dreml F
+GLIBC_2.4 erf F
+GLIBC_2.4 erfc F
+GLIBC_2.4 erfcf F
+GLIBC_2.4 erfcl F
+GLIBC_2.4 erff F
+GLIBC_2.4 erfl F
+GLIBC_2.4 exp F
+GLIBC_2.4 exp10 F
+GLIBC_2.4 exp10f F
+GLIBC_2.4 exp10l F
+GLIBC_2.4 exp2 F
+GLIBC_2.4 exp2f F
+GLIBC_2.4 exp2l F
+GLIBC_2.4 expf F
+GLIBC_2.4 expl F
+GLIBC_2.4 expm1 F
+GLIBC_2.4 expm1f F
+GLIBC_2.4 expm1l F
+GLIBC_2.4 fabs F
+GLIBC_2.4 fabsf F
+GLIBC_2.4 fabsl F
+GLIBC_2.4 fdim F
+GLIBC_2.4 fdimf F
+GLIBC_2.4 fdiml F
+GLIBC_2.4 feclearexcept F
+GLIBC_2.4 fedisableexcept F
+GLIBC_2.4 feenableexcept F
+GLIBC_2.4 fegetenv F
+GLIBC_2.4 fegetexcept F
+GLIBC_2.4 fegetexceptflag F
+GLIBC_2.4 fegetround F
+GLIBC_2.4 feholdexcept F
+GLIBC_2.4 feraiseexcept F
+GLIBC_2.4 fesetenv F
+GLIBC_2.4 fesetexceptflag F
+GLIBC_2.4 fesetround F
+GLIBC_2.4 fetestexcept F
+GLIBC_2.4 feupdateenv F
+GLIBC_2.4 finite F
+GLIBC_2.4 finitef F
+GLIBC_2.4 finitel F
+GLIBC_2.4 floor F
+GLIBC_2.4 floorf F
+GLIBC_2.4 floorl F
+GLIBC_2.4 fma F
+GLIBC_2.4 fmaf F
+GLIBC_2.4 fmal F
+GLIBC_2.4 fmax F
+GLIBC_2.4 fmaxf F
+GLIBC_2.4 fmaxl F
+GLIBC_2.4 fmin F
+GLIBC_2.4 fminf F
+GLIBC_2.4 fminl F
+GLIBC_2.4 fmod F
+GLIBC_2.4 fmodf F
+GLIBC_2.4 fmodl F
+GLIBC_2.4 frexp F
+GLIBC_2.4 frexpf F
+GLIBC_2.4 frexpl F
+GLIBC_2.4 gamma F
+GLIBC_2.4 gammaf F
+GLIBC_2.4 gammal F
+GLIBC_2.4 hypot F
+GLIBC_2.4 hypotf F
+GLIBC_2.4 hypotl F
+GLIBC_2.4 ilogb F
+GLIBC_2.4 ilogbf F
+GLIBC_2.4 ilogbl F
+GLIBC_2.4 j0 F
+GLIBC_2.4 j0f F
+GLIBC_2.4 j0l F
+GLIBC_2.4 j1 F
+GLIBC_2.4 j1f F
+GLIBC_2.4 j1l F
+GLIBC_2.4 jn F
+GLIBC_2.4 jnf F
+GLIBC_2.4 jnl F
+GLIBC_2.4 ldexp F
+GLIBC_2.4 ldexpf F
+GLIBC_2.4 ldexpl F
+GLIBC_2.4 lgamma F
+GLIBC_2.4 lgamma_r F
+GLIBC_2.4 lgammaf F
+GLIBC_2.4 lgammaf_r F
+GLIBC_2.4 lgammal F
+GLIBC_2.4 lgammal_r F
+GLIBC_2.4 llrint F
+GLIBC_2.4 llrintf F
+GLIBC_2.4 llrintl F
+GLIBC_2.4 llround F
+GLIBC_2.4 llroundf F
+GLIBC_2.4 llroundl F
+GLIBC_2.4 log F
+GLIBC_2.4 log10 F
+GLIBC_2.4 log10f F
+GLIBC_2.4 log10l F
+GLIBC_2.4 log1p F
+GLIBC_2.4 log1pf F
+GLIBC_2.4 log1pl F
+GLIBC_2.4 log2 F
+GLIBC_2.4 log2f F
+GLIBC_2.4 log2l F
+GLIBC_2.4 logb F
+GLIBC_2.4 logbf F
+GLIBC_2.4 logbl F
+GLIBC_2.4 logf F
+GLIBC_2.4 logl F
+GLIBC_2.4 lrint F
+GLIBC_2.4 lrintf F
+GLIBC_2.4 lrintl F
+GLIBC_2.4 lround F
+GLIBC_2.4 lroundf F
+GLIBC_2.4 lroundl F
+GLIBC_2.4 matherr F
+GLIBC_2.4 modf F
+GLIBC_2.4 modff F
+GLIBC_2.4 modfl F
+GLIBC_2.4 nan F
+GLIBC_2.4 nanf F
+GLIBC_2.4 nanl F
+GLIBC_2.4 nearbyint F
+GLIBC_2.4 nearbyintf F
+GLIBC_2.4 nearbyintl F
+GLIBC_2.4 nextafter F
+GLIBC_2.4 nextafterf F
+GLIBC_2.4 nextafterl F
+GLIBC_2.4 nexttoward F
+GLIBC_2.4 nexttowardf F
+GLIBC_2.4 nexttowardl F
+GLIBC_2.4 pow F
+GLIBC_2.4 pow10 F
+GLIBC_2.4 pow10f F
+GLIBC_2.4 pow10l F
+GLIBC_2.4 powf F
+GLIBC_2.4 powl F
+GLIBC_2.4 remainder F
+GLIBC_2.4 remainderf F
+GLIBC_2.4 remainderl F
+GLIBC_2.4 remquo F
+GLIBC_2.4 remquof F
+GLIBC_2.4 remquol F
+GLIBC_2.4 rint F
+GLIBC_2.4 rintf F
+GLIBC_2.4 rintl F
+GLIBC_2.4 round F
+GLIBC_2.4 roundf F
+GLIBC_2.4 roundl F
+GLIBC_2.4 scalb F
+GLIBC_2.4 scalbf F
+GLIBC_2.4 scalbl F
+GLIBC_2.4 scalbln F
+GLIBC_2.4 scalblnf F
+GLIBC_2.4 scalblnl F
+GLIBC_2.4 scalbn F
+GLIBC_2.4 scalbnf F
+GLIBC_2.4 scalbnl F
+GLIBC_2.4 signgam D 0x4
+GLIBC_2.4 significand F
+GLIBC_2.4 significandf F
+GLIBC_2.4 significandl F
+GLIBC_2.4 sin F
+GLIBC_2.4 sincos F
+GLIBC_2.4 sincosf F
+GLIBC_2.4 sincosl F
+GLIBC_2.4 sinf F
+GLIBC_2.4 sinh F
+GLIBC_2.4 sinhf F
+GLIBC_2.4 sinhl F
+GLIBC_2.4 sinl F
+GLIBC_2.4 sqrt F
+GLIBC_2.4 sqrtf F
+GLIBC_2.4 sqrtl F
+GLIBC_2.4 tan F
+GLIBC_2.4 tanf F
+GLIBC_2.4 tanh F
+GLIBC_2.4 tanhf F
+GLIBC_2.4 tanhl F
+GLIBC_2.4 tanl F
+GLIBC_2.4 tgamma F
+GLIBC_2.4 tgammaf F
+GLIBC_2.4 tgammal F
+GLIBC_2.4 trunc F
+GLIBC_2.4 truncf F
+GLIBC_2.4 truncl F
+GLIBC_2.4 y0 F
+GLIBC_2.4 y0f F
+GLIBC_2.4 y0l F
+GLIBC_2.4 y1 F
+GLIBC_2.4 y1f F
+GLIBC_2.4 y1l F
+GLIBC_2.4 yn F
+GLIBC_2.4 ynf F
+GLIBC_2.4 ynl F
diff --git a/sysdeps/unix/sysv/linux/arm/libnsl.abilist b/sysdeps/unix/sysv/linux/arm/be/libnsl.abilist
index a005a75181..a005a75181 100644
--- a/sysdeps/unix/sysv/linux/arm/libnsl.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libnsl.abilist
diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
new file mode 100644
index 0000000000..c5b7aeb7c4
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
@@ -0,0 +1,237 @@
+GLIBC_2.11 pthread_sigqueue F
+GLIBC_2.12 pthread_getname_np F
+GLIBC_2.12 pthread_mutex_consistent F
+GLIBC_2.12 pthread_mutexattr_getrobust F
+GLIBC_2.12 pthread_mutexattr_setrobust F
+GLIBC_2.12 pthread_setname_np F
+GLIBC_2.18 pthread_getattr_default_np F
+GLIBC_2.18 pthread_setattr_default_np F
+GLIBC_2.28 call_once F
+GLIBC_2.28 cnd_broadcast F
+GLIBC_2.28 cnd_destroy F
+GLIBC_2.28 cnd_init F
+GLIBC_2.28 cnd_signal F
+GLIBC_2.28 cnd_timedwait F
+GLIBC_2.28 cnd_wait F
+GLIBC_2.28 mtx_destroy F
+GLIBC_2.28 mtx_init F
+GLIBC_2.28 mtx_lock F
+GLIBC_2.28 mtx_timedlock F
+GLIBC_2.28 mtx_trylock F
+GLIBC_2.28 mtx_unlock F
+GLIBC_2.28 thrd_create F
+GLIBC_2.28 thrd_detach F
+GLIBC_2.28 thrd_exit F
+GLIBC_2.28 thrd_join F
+GLIBC_2.28 tss_create F
+GLIBC_2.28 tss_delete F
+GLIBC_2.28 tss_get F
+GLIBC_2.28 tss_set F
+GLIBC_2.30 pthread_cond_clockwait F
+GLIBC_2.30 pthread_mutex_clocklock F
+GLIBC_2.30 pthread_rwlock_clockrdlock F
+GLIBC_2.30 pthread_rwlock_clockwrlock F
+GLIBC_2.30 sem_clockwait F
+GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.4 _IO_flockfile F
+GLIBC_2.4 _IO_ftrylockfile F
+GLIBC_2.4 _IO_funlockfile F
+GLIBC_2.4 __close F
+GLIBC_2.4 __connect F
+GLIBC_2.4 __errno_location F
+GLIBC_2.4 __fcntl F
+GLIBC_2.4 __fork F
+GLIBC_2.4 __h_errno_location F
+GLIBC_2.4 __libc_allocate_rtsig F
+GLIBC_2.4 __libc_current_sigrtmax F
+GLIBC_2.4 __libc_current_sigrtmin F
+GLIBC_2.4 __lseek F
+GLIBC_2.4 __open F
+GLIBC_2.4 __open64 F
+GLIBC_2.4 __pread64 F
+GLIBC_2.4 __pthread_cleanup_routine F
+GLIBC_2.4 __pthread_getspecific F
+GLIBC_2.4 __pthread_key_create F
+GLIBC_2.4 __pthread_mutex_destroy F
+GLIBC_2.4 __pthread_mutex_init F
+GLIBC_2.4 __pthread_mutex_lock F
+GLIBC_2.4 __pthread_mutex_trylock F
+GLIBC_2.4 __pthread_mutex_unlock F
+GLIBC_2.4 __pthread_mutexattr_destroy F
+GLIBC_2.4 __pthread_mutexattr_init F
+GLIBC_2.4 __pthread_mutexattr_settype F
+GLIBC_2.4 __pthread_once F
+GLIBC_2.4 __pthread_register_cancel F
+GLIBC_2.4 __pthread_register_cancel_defer F
+GLIBC_2.4 __pthread_rwlock_destroy F
+GLIBC_2.4 __pthread_rwlock_init F
+GLIBC_2.4 __pthread_rwlock_rdlock F
+GLIBC_2.4 __pthread_rwlock_tryrdlock F
+GLIBC_2.4 __pthread_rwlock_trywrlock F
+GLIBC_2.4 __pthread_rwlock_unlock F
+GLIBC_2.4 __pthread_rwlock_wrlock F
+GLIBC_2.4 __pthread_setspecific F
+GLIBC_2.4 __pthread_unregister_cancel F
+GLIBC_2.4 __pthread_unregister_cancel_restore F
+GLIBC_2.4 __pthread_unwind_next F
+GLIBC_2.4 __pwrite64 F
+GLIBC_2.4 __read F
+GLIBC_2.4 __res_state F
+GLIBC_2.4 __send F
+GLIBC_2.4 __sigaction F
+GLIBC_2.4 __wait F
+GLIBC_2.4 __write F
+GLIBC_2.4 _pthread_cleanup_pop F
+GLIBC_2.4 _pthread_cleanup_pop_restore F
+GLIBC_2.4 _pthread_cleanup_push F
+GLIBC_2.4 _pthread_cleanup_push_defer F
+GLIBC_2.4 accept F
+GLIBC_2.4 close F
+GLIBC_2.4 connect F
+GLIBC_2.4 fcntl F
+GLIBC_2.4 flockfile F
+GLIBC_2.4 fork F
+GLIBC_2.4 fsync F
+GLIBC_2.4 ftrylockfile F
+GLIBC_2.4 funlockfile F
+GLIBC_2.4 longjmp F
+GLIBC_2.4 lseek F
+GLIBC_2.4 lseek64 F
+GLIBC_2.4 msync F
+GLIBC_2.4 open F
+GLIBC_2.4 open64 F
+GLIBC_2.4 pause F
+GLIBC_2.4 pread F
+GLIBC_2.4 pread64 F
+GLIBC_2.4 pthread_attr_getaffinity_np F
+GLIBC_2.4 pthread_attr_getguardsize F
+GLIBC_2.4 pthread_attr_getschedpolicy F
+GLIBC_2.4 pthread_attr_getscope F
+GLIBC_2.4 pthread_attr_getstack F
+GLIBC_2.4 pthread_attr_getstackaddr F
+GLIBC_2.4 pthread_attr_getstacksize F
+GLIBC_2.4 pthread_attr_setaffinity_np F
+GLIBC_2.4 pthread_attr_setguardsize F
+GLIBC_2.4 pthread_attr_setschedpolicy F
+GLIBC_2.4 pthread_attr_setscope F
+GLIBC_2.4 pthread_attr_setstack F
+GLIBC_2.4 pthread_attr_setstackaddr F
+GLIBC_2.4 pthread_attr_setstacksize F
+GLIBC_2.4 pthread_barrier_destroy F
+GLIBC_2.4 pthread_barrier_init F
+GLIBC_2.4 pthread_barrier_wait F
+GLIBC_2.4 pthread_barrierattr_destroy F
+GLIBC_2.4 pthread_barrierattr_getpshared F
+GLIBC_2.4 pthread_barrierattr_init F
+GLIBC_2.4 pthread_barrierattr_setpshared F
+GLIBC_2.4 pthread_cancel F
+GLIBC_2.4 pthread_cond_broadcast F
+GLIBC_2.4 pthread_cond_destroy F
+GLIBC_2.4 pthread_cond_init F
+GLIBC_2.4 pthread_cond_signal F
+GLIBC_2.4 pthread_cond_timedwait F
+GLIBC_2.4 pthread_cond_wait F
+GLIBC_2.4 pthread_condattr_destroy F
+GLIBC_2.4 pthread_condattr_getclock F
+GLIBC_2.4 pthread_condattr_getpshared F
+GLIBC_2.4 pthread_condattr_init F
+GLIBC_2.4 pthread_condattr_setclock F
+GLIBC_2.4 pthread_condattr_setpshared F
+GLIBC_2.4 pthread_create F
+GLIBC_2.4 pthread_detach F
+GLIBC_2.4 pthread_exit F
+GLIBC_2.4 pthread_getaffinity_np F
+GLIBC_2.4 pthread_getattr_np F
+GLIBC_2.4 pthread_getconcurrency F
+GLIBC_2.4 pthread_getcpuclockid F
+GLIBC_2.4 pthread_getschedparam F
+GLIBC_2.4 pthread_getspecific F
+GLIBC_2.4 pthread_join F
+GLIBC_2.4 pthread_key_create F
+GLIBC_2.4 pthread_key_delete F
+GLIBC_2.4 pthread_kill F
+GLIBC_2.4 pthread_kill_other_threads_np F
+GLIBC_2.4 pthread_mutex_consistent_np F
+GLIBC_2.4 pthread_mutex_destroy F
+GLIBC_2.4 pthread_mutex_getprioceiling F
+GLIBC_2.4 pthread_mutex_init F
+GLIBC_2.4 pthread_mutex_lock F
+GLIBC_2.4 pthread_mutex_setprioceiling F
+GLIBC_2.4 pthread_mutex_timedlock F
+GLIBC_2.4 pthread_mutex_trylock F
+GLIBC_2.4 pthread_mutex_unlock F
+GLIBC_2.4 pthread_mutexattr_destroy F
+GLIBC_2.4 pthread_mutexattr_getkind_np F
+GLIBC_2.4 pthread_mutexattr_getprioceiling F
+GLIBC_2.4 pthread_mutexattr_getprotocol F
+GLIBC_2.4 pthread_mutexattr_getpshared F
+GLIBC_2.4 pthread_mutexattr_getrobust_np F
+GLIBC_2.4 pthread_mutexattr_gettype F
+GLIBC_2.4 pthread_mutexattr_init F
+GLIBC_2.4 pthread_mutexattr_setkind_np F
+GLIBC_2.4 pthread_mutexattr_setprioceiling F
+GLIBC_2.4 pthread_mutexattr_setprotocol F
+GLIBC_2.4 pthread_mutexattr_setpshared F
+GLIBC_2.4 pthread_mutexattr_setrobust_np F
+GLIBC_2.4 pthread_mutexattr_settype F
+GLIBC_2.4 pthread_once F
+GLIBC_2.4 pthread_rwlock_destroy F
+GLIBC_2.4 pthread_rwlock_init F
+GLIBC_2.4 pthread_rwlock_rdlock F
+GLIBC_2.4 pthread_rwlock_timedrdlock F
+GLIBC_2.4 pthread_rwlock_timedwrlock F
+GLIBC_2.4 pthread_rwlock_tryrdlock F
+GLIBC_2.4 pthread_rwlock_trywrlock F
+GLIBC_2.4 pthread_rwlock_unlock F
+GLIBC_2.4 pthread_rwlock_wrlock F
+GLIBC_2.4 pthread_rwlockattr_destroy F
+GLIBC_2.4 pthread_rwlockattr_getkind_np F
+GLIBC_2.4 pthread_rwlockattr_getpshared F
+GLIBC_2.4 pthread_rwlockattr_init F
+GLIBC_2.4 pthread_rwlockattr_setkind_np F
+GLIBC_2.4 pthread_rwlockattr_setpshared F
+GLIBC_2.4 pthread_setaffinity_np F
+GLIBC_2.4 pthread_setcancelstate F
+GLIBC_2.4 pthread_setcanceltype F
+GLIBC_2.4 pthread_setconcurrency F
+GLIBC_2.4 pthread_setschedparam F
+GLIBC_2.4 pthread_setschedprio F
+GLIBC_2.4 pthread_setspecific F
+GLIBC_2.4 pthread_sigmask F
+GLIBC_2.4 pthread_spin_destroy F
+GLIBC_2.4 pthread_spin_init F
+GLIBC_2.4 pthread_spin_lock F
+GLIBC_2.4 pthread_spin_trylock F
+GLIBC_2.4 pthread_spin_unlock F
+GLIBC_2.4 pthread_testcancel F
+GLIBC_2.4 pthread_timedjoin_np F
+GLIBC_2.4 pthread_tryjoin_np F
+GLIBC_2.4 pthread_yield F
+GLIBC_2.4 pwrite F
+GLIBC_2.4 pwrite64 F
+GLIBC_2.4 raise F
+GLIBC_2.4 read F
+GLIBC_2.4 recv F
+GLIBC_2.4 recvfrom F
+GLIBC_2.4 recvmsg F
+GLIBC_2.4 sem_close F
+GLIBC_2.4 sem_destroy F
+GLIBC_2.4 sem_getvalue F
+GLIBC_2.4 sem_init F
+GLIBC_2.4 sem_open F
+GLIBC_2.4 sem_post F
+GLIBC_2.4 sem_timedwait F
+GLIBC_2.4 sem_trywait F
+GLIBC_2.4 sem_unlink F
+GLIBC_2.4 sem_wait F
+GLIBC_2.4 send F
+GLIBC_2.4 sendmsg F
+GLIBC_2.4 sendto F
+GLIBC_2.4 sigaction F
+GLIBC_2.4 siglongjmp F
+GLIBC_2.4 sigwait F
+GLIBC_2.4 system F
+GLIBC_2.4 tcdrain F
+GLIBC_2.4 wait F
+GLIBC_2.4 waitpid F
+GLIBC_2.4 write F
diff --git a/sysdeps/unix/sysv/linux/arm/libresolv.abilist b/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
index 2dd5094f76..2dd5094f76 100644
--- a/sysdeps/unix/sysv/linux/arm/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libresolv.abilist
diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
new file mode 100644
index 0000000000..3c0647b251
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -0,0 +1,35 @@
+GLIBC_2.4 aio_cancel F
+GLIBC_2.4 aio_cancel64 F
+GLIBC_2.4 aio_error F
+GLIBC_2.4 aio_error64 F
+GLIBC_2.4 aio_fsync F
+GLIBC_2.4 aio_fsync64 F
+GLIBC_2.4 aio_init F
+GLIBC_2.4 aio_read F
+GLIBC_2.4 aio_read64 F
+GLIBC_2.4 aio_return F
+GLIBC_2.4 aio_return64 F
+GLIBC_2.4 aio_suspend F
+GLIBC_2.4 aio_suspend64 F
+GLIBC_2.4 aio_write F
+GLIBC_2.4 aio_write64 F
+GLIBC_2.4 lio_listio F
+GLIBC_2.4 lio_listio64 F
+GLIBC_2.4 mq_close F
+GLIBC_2.4 mq_getattr F
+GLIBC_2.4 mq_notify F
+GLIBC_2.4 mq_open F
+GLIBC_2.4 mq_receive F
+GLIBC_2.4 mq_send F
+GLIBC_2.4 mq_setattr F
+GLIBC_2.4 mq_timedreceive F
+GLIBC_2.4 mq_timedsend F
+GLIBC_2.4 mq_unlink F
+GLIBC_2.4 shm_open F
+GLIBC_2.4 shm_unlink F
+GLIBC_2.4 timer_create F
+GLIBC_2.4 timer_delete F
+GLIBC_2.4 timer_getoverrun F
+GLIBC_2.4 timer_gettime F
+GLIBC_2.4 timer_settime F
+GLIBC_2.7 __mq_open_2 F
diff --git a/sysdeps/unix/sysv/linux/arm/libthread_db.abilist b/sysdeps/unix/sysv/linux/arm/be/libthread_db.abilist
index 065a2626c8..065a2626c8 100644
--- a/sysdeps/unix/sysv/linux/arm/libthread_db.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libthread_db.abilist
diff --git a/sysdeps/unix/sysv/linux/arm/libutil.abilist b/sysdeps/unix/sysv/linux/arm/be/libutil.abilist
index cc1420e68c..cc1420e68c 100644
--- a/sysdeps/unix/sysv/linux/arm/libutil.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libutil.abilist
diff --git a/sysdeps/unix/sysv/linux/arm/bits/fcntl.h b/sysdeps/unix/sysv/linux/arm/bits/fcntl.h
index d9c105b834..59fe35c0d8 100644
--- a/sysdeps/unix/sysv/linux/arm/bits/fcntl.h
+++ b/sysdeps/unix/sysv/linux/arm/bits/fcntl.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for Linux.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FCNTL_H
# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
diff --git a/sysdeps/unix/sysv/linux/arm/bits/hwcap.h b/sysdeps/unix/sysv/linux/arm/bits/hwcap.h
index 1568f49ce3..2e59201715 100644
--- a/sysdeps/unix/sysv/linux/arm/bits/hwcap.h
+++ b/sysdeps/unix/sysv/linux/arm/bits/hwcap.h
@@ -1,5 +1,5 @@
/* Defines for bits in AT_HWCAP. ARM Linux version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if !defined (_SYS_AUXV_H) && !defined (_LINUX_ARM_SYSDEP_H)
# error "Never include <bits/hwcap.h> directly; use <sys/auxv.h> instead."
diff --git a/sysdeps/unix/sysv/linux/arm/bits/mman.h b/sysdeps/unix/sysv/linux/arm/bits/mman.h
deleted file mode 100644
index 63813dcee7..0000000000
--- a/sysdeps/unix/sysv/linux/arm/bits/mman.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/* Definitions for POSIX memory map interface. Linux/ARM version.
- Copyright (C) 1997-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_MMAN_H
-# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
-#endif
-
-/* The following definitions basically come from the kernel headers.
- But the kernel header is not namespace clean. */
-
-/* These are Linux-specific. */
-#ifdef __USE_MISC
-# define MAP_GROWSDOWN 0x00100 /* Stack-like segment. */
-# define MAP_DENYWRITE 0x00800 /* ETXTBSY */
-# define MAP_EXECUTABLE 0x01000 /* Mark it as an executable. */
-# define MAP_LOCKED 0x02000 /* Lock the mapping. */
-# define MAP_NORESERVE 0x04000 /* Don't check for reservations. */
-# define MAP_POPULATE 0x08000 /* Populate (prefault) pagetables. */
-# define MAP_NONBLOCK 0x10000 /* Do not block on IO. */
-# define MAP_STACK 0x20000 /* Allocation is for a stack. */
-# define MAP_HUGETLB 0x40000 /* Create huge page mapping. */
-# define MAP_SYNC 0x80000 /* Perform synchronous page
- faults for the mapping. */
-# define MAP_FIXED_NOREPLACE 0x100000 /* MAP_FIXED but do not unmap
- underlying mapping. */
-#endif
-
-/* Include generic Linux declarations. */
-#include <bits/mman-linux.h>
diff --git a/sysdeps/unix/sysv/linux/arm/bits/procfs-id.h b/sysdeps/unix/sysv/linux/arm/bits/procfs-id.h
new file mode 100644
index 0000000000..82d988c941
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/arm/bits/procfs-id.h
@@ -0,0 +1,25 @@
+/* Types of pr_uid and pr_gid in struct elf_prpsinfo. Arm version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PROCFS_H
+# error "Never include <bits/procfs-id.h> directly; use <sys/procfs.h> instead."
+#endif
+
+typedef unsigned short int __pr_uid_t;
+typedef unsigned short int __pr_gid_t;
diff --git a/sysdeps/unix/sysv/linux/arm/bits/procfs.h b/sysdeps/unix/sysv/linux/arm/bits/procfs.h
new file mode 100644
index 0000000000..cf8e9d6c93
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/arm/bits/procfs.h
@@ -0,0 +1,34 @@
+/* Types for registers for sys/procfs.h. Arm version.
+ Copyright (C) 1996-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PROCFS_H
+# error "Never include <bits/procfs.h> directly; use <sys/procfs.h> instead."
+#endif
+
+/* Type for a general-purpose register. */
+typedef unsigned long elf_greg_t;
+
+/* And the whole bunch of them. We could have used `struct
+ user_regs' directly in the typedef, but tradition says that
+ the register set is an array, which does have some peculiar
+ semantics, so leave it that way. */
+#define ELF_NGREG (sizeof (struct user_regs) / sizeof (elf_greg_t))
+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
+
+/* Register set for the floating-point registers. */
+typedef struct user_fpregs elf_fpregset_t;
diff --git a/sysdeps/unix/sysv/linux/arm/bits/shm.h b/sysdeps/unix/sysv/linux/arm/bits/shm.h
deleted file mode 100644
index e3d4916a50..0000000000
--- a/sysdeps/unix/sysv/linux/arm/bits/shm.h
+++ /dev/null
@@ -1,104 +0,0 @@
-/* Copyright (C) 1995-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_SHM_H
-# error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
-#endif
-
-#include <bits/types.h>
-
-/* Permission flag for shmget. */
-#define SHM_R 0400 /* or S_IRUGO from <linux/stat.h> */
-#define SHM_W 0200 /* or S_IWUGO from <linux/stat.h> */
-
-/* Flags for `shmat'. */
-#define SHM_RDONLY 010000 /* attach read-only else read-write */
-#define SHM_RND 020000 /* round attach address to SHMLBA */
-#define SHM_REMAP 040000 /* take-over region on attach */
-#define SHM_EXEC 0100000 /* execution access */
-
-/* Commands for `shmctl'. */
-#define SHM_LOCK 11 /* lock segment (root only) */
-#define SHM_UNLOCK 12 /* unlock segment (root only) */
-
-__BEGIN_DECLS
-
-/* Segment low boundary address multiple. */
-#define SHMLBA (__getpagesize () << 2)
-extern int __getpagesize (void) __THROW __attribute__ ((__const__));
-
-
-/* Type to count number of attaches. */
-typedef unsigned long int shmatt_t;
-
-/* Data structure describing a shared memory segment. */
-struct shmid_ds
- {
- struct ipc_perm shm_perm; /* operation permission struct */
- size_t shm_segsz; /* size of segment in bytes */
- __time_t shm_atime; /* time of last shmat() */
- unsigned long int __glibc_reserved1;
- __time_t shm_dtime; /* time of last shmdt() */
- unsigned long int __glibc_reserved2;
- __time_t shm_ctime; /* time of last change by shmctl() */
- unsigned long int __glibc_reserved3;
- __pid_t shm_cpid; /* pid of creator */
- __pid_t shm_lpid; /* pid of last shmop */
- shmatt_t shm_nattch; /* number of current attaches */
- unsigned long int __glibc_reserved4;
- unsigned long int __glibc_reserved5;
- };
-
-#ifdef __USE_MISC
-
-/* ipcs ctl commands */
-# define SHM_STAT 13
-# define SHM_INFO 14
-# define SHM_STAT_ANY 15
-
-/* shm_mode upper byte flags */
-# define SHM_DEST 01000 /* segment will be destroyed on last detach */
-# define SHM_LOCKED 02000 /* segment will not be swapped */
-# define SHM_HUGETLB 04000 /* segment is mapped via hugetlb */
-# define SHM_NORESERVE 010000 /* don't check for reservations */
-
-struct shminfo
- {
- unsigned long int shmmax;
- unsigned long int shmmin;
- unsigned long int shmmni;
- unsigned long int shmseg;
- unsigned long int shmall;
- unsigned long int __glibc_reserved1;
- unsigned long int __glibc_reserved2;
- unsigned long int __glibc_reserved3;
- unsigned long int __glibc_reserved4;
- };
-
-struct shm_info
- {
- int used_ids;
- unsigned long int shm_tot; /* total allocated shm */
- unsigned long int shm_rss; /* total resident shm */
- unsigned long int shm_swp; /* total swapped shm */
- unsigned long int swap_attempts;
- unsigned long int swap_successes;
- };
-
-#endif /* __USE_MISC */
-
-__END_DECLS
diff --git a/sysdeps/unix/sysv/linux/arm/bits/shmlba.h b/sysdeps/unix/sysv/linux/arm/bits/shmlba.h
new file mode 100644
index 0000000000..f4000522b6
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/arm/bits/shmlba.h
@@ -0,0 +1,29 @@
+/* Define SHMLBA. ARM version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SHM_H
+# error "Never use <bits/shmlba.h> directly; include <sys/shm.h> instead."
+#endif
+
+__BEGIN_DECLS
+
+/* Segment low boundary address multiple. */
+#define SHMLBA (__getpagesize () << 2)
+extern int __getpagesize (void) __THROW __attribute__ ((__const__));
+
+__END_DECLS
diff --git a/sysdeps/unix/sysv/linux/arm/brk.c b/sysdeps/unix/sysv/linux/arm/brk.c
index 43a4586a6a..0bee3b4b6b 100644
--- a/sysdeps/unix/sysv/linux/arm/brk.c
+++ b/sysdeps/unix/sysv/linux/arm/brk.c
@@ -1,5 +1,5 @@
/* brk system call for Linux/ARM.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/unix/sysv/linux/arm/clone.S b/sysdeps/unix/sysv/linux/arm/clone.S
index 288b734256..8799f56549 100644
--- a/sysdeps/unix/sysv/linux/arm/clone.S
+++ b/sysdeps/unix/sysv/linux/arm/clone.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Pat Beirne <patb@corelcomputer.com>
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* clone() is even more special than fork() as it mucks with stacks
and invokes a function in the right context after its all over. */
diff --git a/sysdeps/unix/sysv/linux/arm/dl-cache.h b/sysdeps/unix/sysv/linux/arm/dl-cache.h
index 252af4245a..bcb4f1d8be 100644
--- a/sysdeps/unix/sysv/linux/arm/dl-cache.h
+++ b/sysdeps/unix/sysv/linux/arm/dl-cache.h
@@ -1,5 +1,5 @@
/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ldconfig.h>
diff --git a/sysdeps/unix/sysv/linux/arm/dl-machine.h b/sysdeps/unix/sysv/linux/arm/dl-machine.h
index 64e2448c2d..5860258a61 100644
--- a/sysdeps/unix/sysv/linux/arm/dl-machine.h
+++ b/sysdeps/unix/sysv/linux/arm/dl-machine.h
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation inline functions. ARM/Linux version
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef dl_machine_h
diff --git a/sysdeps/unix/sysv/linux/arm/dl-procinfo.c b/sysdeps/unix/sysv/linux/arm/dl-procinfo.c
index 185e34764b..96e1cfc80c 100644
--- a/sysdeps/unix/sysv/linux/arm/dl-procinfo.c
+++ b/sysdeps/unix/sysv/linux/arm/dl-procinfo.c
@@ -1,5 +1,5 @@
/* Data for Linux/ARM version of processor capability information.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Philip Blundell <philb@gnu.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This information must be kept in sync with the _DL_HWCAP_COUNT and
_DL_PLATFORM_COUNT definitions in procinfo.h.
diff --git a/sysdeps/unix/sysv/linux/arm/dl-procinfo.h b/sysdeps/unix/sysv/linux/arm/dl-procinfo.h
index 31f2f04c0b..7a8b69fdb0 100644
--- a/sysdeps/unix/sysv/linux/arm/dl-procinfo.h
+++ b/sysdeps/unix/sysv/linux/arm/dl-procinfo.h
@@ -1,5 +1,5 @@
/* Linux/ARM version of processor capability information handling macros.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Philip Blundell <philb@gnu.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DL_PROCINFO_H
#define _DL_PROCINFO_H 1
@@ -67,7 +67,7 @@ _dl_procinfo (unsigned int type, unsigned long int word)
break;
}
default:
- /* This should not happen. */
+ /* Fallback to generic output mechanism. */
return -1;
}
_dl_printf ("\n");
diff --git a/sysdeps/unix/sysv/linux/arm/getcontext.S b/sysdeps/unix/sysv/linux/arm/getcontext.S
index e7284157dc..625c24b6d5 100644
--- a/sysdeps/unix/sysv/linux/arm/getcontext.S
+++ b/sysdeps/unix/sysv/linux/arm/getcontext.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <rtld-global-offsets.h>
diff --git a/sysdeps/unix/sysv/linux/arm/init-first.c b/sysdeps/unix/sysv/linux/arm/init-first.c
deleted file mode 100644
index f4293b1cf8..0000000000
--- a/sysdeps/unix/sysv/linux/arm/init-first.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/* Initialization code run first thing by the ELF startup code. Linux/ARM.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifdef SHARED
-# include <dl-vdso.h>
-# include <libc-vdso.h>
-
-int (*VDSO_SYMBOL(gettimeofday)) (struct timeval *, void *) attribute_hidden;
-int (*VDSO_SYMBOL(clock_gettime)) (clockid_t, struct timespec *);
-
-static inline void
-_libc_vdso_platform_setup (void)
-{
- PREPARE_VERSION_KNOWN (linux26, LINUX_2_6);
-
- void *p = _dl_vdso_vsym ("__vdso_gettimeofday", &linux26);
- PTR_MANGLE (p);
- VDSO_SYMBOL (gettimeofday) = p;
-
- p = _dl_vdso_vsym ("__vdso_clock_gettime", &linux26);
- PTR_MANGLE (p);
- VDSO_SYMBOL (clock_gettime) = p;
-}
-
-# define VDSO_SETUP _libc_vdso_platform_setup
-#endif
-
-#include <csu/init-first.c>
diff --git a/sysdeps/unix/sysv/linux/arm/ioperm.c b/sysdeps/unix/sysv/linux/arm/ioperm.c
index 4c0bb63d51..8bdfcf3b64 100644
--- a/sysdeps/unix/sysv/linux/arm/ioperm.c
+++ b/sysdeps/unix/sysv/linux/arm/ioperm.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Phil Blundell, based on the Alpha version by
David Mosberger.
@@ -15,169 +15,73 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
-
-/* I/O port access on the ARM is something of a fiction. What we do is to
- map an appropriate area of /dev/mem into user space so that a program
- can blast away at the hardware in such a way as to generate I/O cycles
- on the bus. To insulate user code from dependencies on particular
- hardware we don't allow calls to inb() and friends to be inlined, but
- force them to come through code in here every time. Performance-critical
- registers tend to be memory mapped these days so this should be no big
- problem. */
-
-/* Once upon a time this file used mprotect to enable and disable
- access to particular areas of I/O space. Unfortunately the
- mprotect syscall also has the side effect of enabling caching for
- the area affected (this is a kernel limitation). So we now just
- enable all the ports all of the time. */
-
-#include <errno.h>
-#include <fcntl.h>
-#include <stdio.h>
-#include <ctype.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-#include <sys/types.h>
-#include <sys/mman.h>
-
-#include <sys/sysctl.h>
-
-#define MAX_PORT 0x10000
-
-static struct {
- unsigned long int base;
- unsigned long int io_base;
- unsigned int shift;
- unsigned int initdone; /* since all the above could be 0 */
-} io;
-
-#define IO_ADDR(port) (io.base + ((port) << io.shift))
-
-/*
- * Initialize I/O system. The io_bae and port_shift values are fetched
- * using sysctl (CTL_BUS, CTL_BUS_ISA, ISA_*).
- */
-
-static int
-init_iosys (void)
-{
- static int iobase_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_BASE };
- static int ioshift_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_SHIFT };
- size_t len = sizeof(io.base);
-
- if (! __sysctl (iobase_name, 3, &io.io_base, &len, NULL, 0)
- && ! __sysctl (ioshift_name, 3, &io.shift, &len, NULL, 0))
- {
- io.initdone = 1;
- return 0;
- }
-
- /* sysctl has failed... */
- __set_errno (ENODEV);
- return -1;
-}
+ <https://www.gnu.org/licenses/>. */
+
+#include <shlib-compat.h>
+
+#if SHLIB_COMPAT (libc, GLIBC_2_4, GLIBC_2_30)
+# include <errno.h>
int
-_ioperm (unsigned long int from, unsigned long int num, int turn_on)
+ioperm (unsigned long int from, unsigned long int num, int turn_on)
{
- if (! io.initdone && init_iosys () < 0)
- return -1;
-
- /* this test isn't as silly as it may look like; consider overflows! */
- if (from >= MAX_PORT || from + num > MAX_PORT)
- {
- __set_errno (EINVAL);
- return -1;
- }
-
- if (turn_on)
- {
- if (! io.base)
- {
- int fd;
-
- fd = __open ("/dev/mem", O_RDWR);
- if (fd < 0)
- return -1;
-
- io.base =
- (unsigned long int) __mmap (0, MAX_PORT << io.shift,
- PROT_READ | PROT_WRITE,
- MAP_SHARED, fd, io.io_base);
- __close (fd);
- if ((long) io.base == -1)
- return -1;
- }
- }
-
- return 0;
+ __set_errno (ENOSYS);
+ return -1;
}
-
+compat_symbol (libc, ioperm, ioperm, GLIBC_2_4);
int
-_iopl (unsigned int level)
+iopl (unsigned int level)
{
- if (level > 3)
- {
- __set_errno (EINVAL);
- return -1;
- }
- if (level)
- {
- return _ioperm (0, MAX_PORT, 1);
- }
- return 0;
+ __set_errno (ENOSYS);
+ return -1;
}
+compat_symbol (libc, iopl, iopl, GLIBC_2_4);
+
+/* The remaining functions do not have any way to indicate failure.
+ However, it is only valid to call them after calling ioperm/iopl,
+ which will have indicated failure. */
void
-_outb (unsigned char b, unsigned long int port)
+outb (unsigned char b, unsigned long int port)
{
- *((volatile unsigned char *)(IO_ADDR (port))) = b;
}
-
+compat_symbol (libc, outb, outb, GLIBC_2_4);
void
-_outw (unsigned short b, unsigned long int port)
+outw (unsigned short b, unsigned long int port)
{
- *((volatile unsigned short *)(IO_ADDR (port))) = b;
}
-
+compat_symbol (libc, outw, outw, GLIBC_2_4);
void
-_outl (unsigned int b, unsigned long int port)
+outl (unsigned int b, unsigned long int port)
{
- *((volatile unsigned long *)(IO_ADDR (port))) = b;
}
-
+compat_symbol (libc, outl, outl, GLIBC_2_4);
unsigned int
-_inb (unsigned long int port)
+inb (unsigned long int port)
{
- return *((volatile unsigned char *)(IO_ADDR (port)));
+ return 0;
}
+compat_symbol (libc, inb, inb, GLIBC_2_4);
unsigned int
-_inw (unsigned long int port)
+inw (unsigned long int port)
{
- return *((volatile unsigned short *)(IO_ADDR (port)));
+ return 0;
}
+compat_symbol (libc, inw, inw, GLIBC_2_4);
unsigned int
-_inl (unsigned long int port)
+inl (unsigned long int port)
{
- return *((volatile unsigned long *)(IO_ADDR (port)));
+ return 0;
}
+compat_symbol (libc, inl, inl, GLIBC_2_4);
-weak_alias (_ioperm, ioperm);
-weak_alias (_iopl, iopl);
-weak_alias (_inb, inb);
-weak_alias (_inw, inw);
-weak_alias (_inl, inl);
-weak_alias (_outb, outb);
-weak_alias (_outw, outw);
-weak_alias (_outl, outl);
+#endif /* SHLIB_COMAT */
diff --git a/sysdeps/unix/sysv/linux/arm/kernel-features.h b/sysdeps/unix/sysv/linux/arm/kernel-features.h
index 7831ab1e0f..d66f3a4ab7 100644
--- a/sysdeps/unix/sysv/linux/arm/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/arm/kernel-features.h
@@ -1,6 +1,6 @@
/* Set flags signalling availability of kernel features based on given
kernel version number.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -15,8 +15,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#include <endian.h>
#include_next <kernel-features.h>
/* The ARM kernel before 3.14.3 may or may not support
@@ -40,5 +41,18 @@
#define __ASSUME_RECV_SYSCALL 1
#define __ASSUME_SEND_SYSCALL 1
+/* Support for the mlock2 and copy_file_range syscalls was added to
+ the compat syscall table for 64-bit kernels in 4.7, although
+ present in 32-bit kernels from 4.4 and 4.5 respectively. */
+#if __LINUX_KERNEL_VERSION < 0x040700
+# undef __ASSUME_MLOCK2
+#endif
+
#undef __ASSUME_CLONE_DEFAULT
#define __ASSUME_CLONE_BACKWARDS 1
+
+#if __BYTE_ORDER == __BIG_ENDIAN
+# define __ASSUME_SYSVIPC_BROKEN_MODE_T
+#endif
+
+#undef __ASSUME_SYSVIPC_DEFAULT_IPC_64
diff --git a/sysdeps/unix/sysv/linux/arm/ldconfig.h b/sysdeps/unix/sysv/linux/arm/ldconfig.h
index 1ab8cf3cbb..2a25bfe5dc 100644
--- a/sysdeps/unix/sysv/linux/arm/ldconfig.h
+++ b/sysdeps/unix/sysv/linux/arm/ldconfig.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/generic/ldconfig.h>
diff --git a/sysdeps/unix/sysv/linux/arm/ldsodefs.h b/sysdeps/unix/sysv/linux/arm/ldsodefs.h
index fc8edce3d6..221c4bfd9a 100644
--- a/sysdeps/unix/sysv/linux/arm/ldsodefs.h
+++ b/sysdeps/unix/sysv/linux/arm/ldsodefs.h
@@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _ARM_LINUX_LDSODEFS_H
#define _ARM_LINUX_LDSODEFS_H 1
diff --git a/sysdeps/unix/sysv/linux/arm/le/Implies b/sysdeps/unix/sysv/linux/arm/le/Implies
new file mode 100644
index 0000000000..ee17c57671
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/arm/le/Implies
@@ -0,0 +1 @@
+unix/sysv/linux/arm
diff --git a/sysdeps/unix/sysv/linux/arm/le/ld.abilist b/sysdeps/unix/sysv/linux/arm/le/ld.abilist
new file mode 100644
index 0000000000..a301c6ebc4
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/arm/le/ld.abilist
@@ -0,0 +1,9 @@
+GLIBC_2.4 __libc_stack_end D 0x4
+GLIBC_2.4 __stack_chk_guard D 0x4
+GLIBC_2.4 __tls_get_addr F
+GLIBC_2.4 _dl_mcount F
+GLIBC_2.4 _r_debug D 0x14
+GLIBC_2.4 calloc F
+GLIBC_2.4 free F
+GLIBC_2.4 malloc F
+GLIBC_2.4 realloc F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/arm/le/libBrokenLocale.abilist
new file mode 100644
index 0000000000..7e60a808d8
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/arm/le/libBrokenLocale.abilist
@@ -0,0 +1 @@
+GLIBC_2.4 __ctype_get_mb_cur_max F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libanl.abilist b/sysdeps/unix/sysv/linux/arm/le/libanl.abilist
new file mode 100644
index 0000000000..a8fafedb66
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/arm/le/libanl.abilist
@@ -0,0 +1,4 @@
+GLIBC_2.4 gai_cancel F
+GLIBC_2.4 gai_error F
+GLIBC_2.4 gai_suspend F
+GLIBC_2.4 getaddrinfo_a F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
new file mode 100644
index 0000000000..9371927927
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -0,0 +1,2179 @@
+GLIBC_2.10 __cxa_at_quick_exit F
+GLIBC_2.10 __posix_getopt F
+GLIBC_2.10 accept4 F
+GLIBC_2.10 endsgent F
+GLIBC_2.10 fallocate F
+GLIBC_2.10 fgetsgent F
+GLIBC_2.10 fgetsgent_r F
+GLIBC_2.10 getsgent F
+GLIBC_2.10 getsgent_r F
+GLIBC_2.10 getsgnam F
+GLIBC_2.10 getsgnam_r F
+GLIBC_2.10 malloc_info F
+GLIBC_2.10 preadv F
+GLIBC_2.10 preadv64 F
+GLIBC_2.10 psiginfo F
+GLIBC_2.10 putsgent F
+GLIBC_2.10 pwritev F
+GLIBC_2.10 pwritev64 F
+GLIBC_2.10 quick_exit F
+GLIBC_2.10 register_printf_modifier F
+GLIBC_2.10 register_printf_specifier F
+GLIBC_2.10 register_printf_type F
+GLIBC_2.10 setsgent F
+GLIBC_2.10 sgetsgent F
+GLIBC_2.10 sgetsgent_r F
+GLIBC_2.11 __longjmp_chk F
+GLIBC_2.11 execvpe F
+GLIBC_2.11 fallocate64 F
+GLIBC_2.11 mkostemps F
+GLIBC_2.11 mkostemps64 F
+GLIBC_2.11 mkstemps F
+GLIBC_2.11 mkstemps64 F
+GLIBC_2.12 _sys_errlist D 0x21c
+GLIBC_2.12 _sys_nerr D 0x4
+GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 recvmmsg F
+GLIBC_2.12 sys_errlist D 0x21c
+GLIBC_2.12 sys_nerr D 0x4
+GLIBC_2.13 fanotify_init F
+GLIBC_2.13 fanotify_mark F
+GLIBC_2.13 prlimit F
+GLIBC_2.13 prlimit64 F
+GLIBC_2.14 clock_adjtime F
+GLIBC_2.14 name_to_handle_at F
+GLIBC_2.14 open_by_handle_at F
+GLIBC_2.14 sendmmsg F
+GLIBC_2.14 setns F
+GLIBC_2.14 syncfs F
+GLIBC_2.15 __fdelt_chk F
+GLIBC_2.15 __fdelt_warn F
+GLIBC_2.15 posix_spawn F
+GLIBC_2.15 posix_spawnp F
+GLIBC_2.15 process_vm_readv F
+GLIBC_2.15 process_vm_writev F
+GLIBC_2.15 scandirat F
+GLIBC_2.15 scandirat64 F
+GLIBC_2.16 __getauxval F
+GLIBC_2.16 __poll_chk F
+GLIBC_2.16 __ppoll_chk F
+GLIBC_2.16 aligned_alloc F
+GLIBC_2.16 c16rtomb F
+GLIBC_2.16 c32rtomb F
+GLIBC_2.16 getauxval F
+GLIBC_2.16 mbrtoc16 F
+GLIBC_2.16 mbrtoc32 F
+GLIBC_2.16 timespec_get F
+GLIBC_2.17 clock_getcpuclockid F
+GLIBC_2.17 clock_getres F
+GLIBC_2.17 clock_gettime F
+GLIBC_2.17 clock_nanosleep F
+GLIBC_2.17 clock_settime F
+GLIBC_2.17 secure_getenv F
+GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.22 fmemopen F
+GLIBC_2.23 fts64_children F
+GLIBC_2.23 fts64_close F
+GLIBC_2.23 fts64_open F
+GLIBC_2.23 fts64_read F
+GLIBC_2.23 fts64_set F
+GLIBC_2.24 quick_exit F
+GLIBC_2.25 __explicit_bzero_chk F
+GLIBC_2.25 explicit_bzero F
+GLIBC_2.25 getentropy F
+GLIBC_2.25 getrandom F
+GLIBC_2.25 strfromd F
+GLIBC_2.25 strfromf F
+GLIBC_2.25 strfroml F
+GLIBC_2.26 preadv2 F
+GLIBC_2.26 preadv64v2 F
+GLIBC_2.26 pwritev2 F
+GLIBC_2.26 pwritev64v2 F
+GLIBC_2.26 reallocarray F
+GLIBC_2.27 copy_file_range F
+GLIBC_2.27 glob F
+GLIBC_2.27 glob64 F
+GLIBC_2.27 memfd_create F
+GLIBC_2.27 mlock2 F
+GLIBC_2.27 pkey_alloc F
+GLIBC_2.27 pkey_free F
+GLIBC_2.27 pkey_get F
+GLIBC_2.27 pkey_mprotect F
+GLIBC_2.27 pkey_set F
+GLIBC_2.27 strfromf32 F
+GLIBC_2.27 strfromf32x F
+GLIBC_2.27 strfromf64 F
+GLIBC_2.27 strtof32 F
+GLIBC_2.27 strtof32_l F
+GLIBC_2.27 strtof32x F
+GLIBC_2.27 strtof32x_l F
+GLIBC_2.27 strtof64 F
+GLIBC_2.27 strtof64_l F
+GLIBC_2.27 wcstof32 F
+GLIBC_2.27 wcstof32_l F
+GLIBC_2.27 wcstof32x F
+GLIBC_2.27 wcstof32x_l F
+GLIBC_2.27 wcstof64 F
+GLIBC_2.27 wcstof64_l F
+GLIBC_2.28 fcntl F
+GLIBC_2.28 fcntl64 F
+GLIBC_2.28 renameat2 F
+GLIBC_2.28 statx F
+GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_equal F
+GLIBC_2.28 thrd_sleep F
+GLIBC_2.28 thrd_yield F
+GLIBC_2.29 getcpu F
+GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
+GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
+GLIBC_2.30 getdents64 F
+GLIBC_2.30 gettid F
+GLIBC_2.30 tgkill F
+GLIBC_2.30 twalk_r F
+GLIBC_2.4 _Exit F
+GLIBC_2.4 _IO_2_1_stderr_ D 0xa0
+GLIBC_2.4 _IO_2_1_stdin_ D 0xa0
+GLIBC_2.4 _IO_2_1_stdout_ D 0xa0
+GLIBC_2.4 _IO_adjust_column F
+GLIBC_2.4 _IO_adjust_wcolumn F
+GLIBC_2.4 _IO_default_doallocate F
+GLIBC_2.4 _IO_default_finish F
+GLIBC_2.4 _IO_default_pbackfail F
+GLIBC_2.4 _IO_default_uflow F
+GLIBC_2.4 _IO_default_xsgetn F
+GLIBC_2.4 _IO_default_xsputn F
+GLIBC_2.4 _IO_do_write F
+GLIBC_2.4 _IO_doallocbuf F
+GLIBC_2.4 _IO_fclose F
+GLIBC_2.4 _IO_fdopen F
+GLIBC_2.4 _IO_feof F
+GLIBC_2.4 _IO_ferror F
+GLIBC_2.4 _IO_fflush F
+GLIBC_2.4 _IO_fgetpos F
+GLIBC_2.4 _IO_fgetpos64 F
+GLIBC_2.4 _IO_fgets F
+GLIBC_2.4 _IO_file_attach F
+GLIBC_2.4 _IO_file_close F
+GLIBC_2.4 _IO_file_close_it F
+GLIBC_2.4 _IO_file_doallocate F
+GLIBC_2.4 _IO_file_finish F
+GLIBC_2.4 _IO_file_fopen F
+GLIBC_2.4 _IO_file_init F
+GLIBC_2.4 _IO_file_jumps D 0x54
+GLIBC_2.4 _IO_file_open F
+GLIBC_2.4 _IO_file_overflow F
+GLIBC_2.4 _IO_file_read F
+GLIBC_2.4 _IO_file_seek F
+GLIBC_2.4 _IO_file_seekoff F
+GLIBC_2.4 _IO_file_setbuf F
+GLIBC_2.4 _IO_file_stat F
+GLIBC_2.4 _IO_file_sync F
+GLIBC_2.4 _IO_file_underflow F
+GLIBC_2.4 _IO_file_write F
+GLIBC_2.4 _IO_file_xsputn F
+GLIBC_2.4 _IO_flockfile F
+GLIBC_2.4 _IO_flush_all F
+GLIBC_2.4 _IO_flush_all_linebuffered F
+GLIBC_2.4 _IO_fopen F
+GLIBC_2.4 _IO_fprintf F
+GLIBC_2.4 _IO_fputs F
+GLIBC_2.4 _IO_fread F
+GLIBC_2.4 _IO_free_backup_area F
+GLIBC_2.4 _IO_free_wbackup_area F
+GLIBC_2.4 _IO_fsetpos F
+GLIBC_2.4 _IO_fsetpos64 F
+GLIBC_2.4 _IO_ftell F
+GLIBC_2.4 _IO_ftrylockfile F
+GLIBC_2.4 _IO_funlockfile F
+GLIBC_2.4 _IO_fwrite F
+GLIBC_2.4 _IO_getc F
+GLIBC_2.4 _IO_getline F
+GLIBC_2.4 _IO_getline_info F
+GLIBC_2.4 _IO_gets F
+GLIBC_2.4 _IO_init F
+GLIBC_2.4 _IO_init_marker F
+GLIBC_2.4 _IO_init_wmarker F
+GLIBC_2.4 _IO_iter_begin F
+GLIBC_2.4 _IO_iter_end F
+GLIBC_2.4 _IO_iter_file F
+GLIBC_2.4 _IO_iter_next F
+GLIBC_2.4 _IO_least_wmarker F
+GLIBC_2.4 _IO_link_in F
+GLIBC_2.4 _IO_list_all D 0x4
+GLIBC_2.4 _IO_list_lock F
+GLIBC_2.4 _IO_list_resetlock F
+GLIBC_2.4 _IO_list_unlock F
+GLIBC_2.4 _IO_marker_delta F
+GLIBC_2.4 _IO_marker_difference F
+GLIBC_2.4 _IO_padn F
+GLIBC_2.4 _IO_peekc_locked F
+GLIBC_2.4 _IO_popen F
+GLIBC_2.4 _IO_printf F
+GLIBC_2.4 _IO_proc_close F
+GLIBC_2.4 _IO_proc_open F
+GLIBC_2.4 _IO_putc F
+GLIBC_2.4 _IO_puts F
+GLIBC_2.4 _IO_remove_marker F
+GLIBC_2.4 _IO_seekmark F
+GLIBC_2.4 _IO_seekoff F
+GLIBC_2.4 _IO_seekpos F
+GLIBC_2.4 _IO_seekwmark F
+GLIBC_2.4 _IO_setb F
+GLIBC_2.4 _IO_setbuffer F
+GLIBC_2.4 _IO_setvbuf F
+GLIBC_2.4 _IO_sgetn F
+GLIBC_2.4 _IO_sprintf F
+GLIBC_2.4 _IO_sputbackc F
+GLIBC_2.4 _IO_sputbackwc F
+GLIBC_2.4 _IO_sscanf F
+GLIBC_2.4 _IO_str_init_readonly F
+GLIBC_2.4 _IO_str_init_static F
+GLIBC_2.4 _IO_str_overflow F
+GLIBC_2.4 _IO_str_pbackfail F
+GLIBC_2.4 _IO_str_seekoff F
+GLIBC_2.4 _IO_str_underflow F
+GLIBC_2.4 _IO_sungetc F
+GLIBC_2.4 _IO_sungetwc F
+GLIBC_2.4 _IO_switch_to_get_mode F
+GLIBC_2.4 _IO_switch_to_main_wget_area F
+GLIBC_2.4 _IO_switch_to_wbackup_area F
+GLIBC_2.4 _IO_switch_to_wget_mode F
+GLIBC_2.4 _IO_un_link F
+GLIBC_2.4 _IO_ungetc F
+GLIBC_2.4 _IO_unsave_markers F
+GLIBC_2.4 _IO_unsave_wmarkers F
+GLIBC_2.4 _IO_vfprintf F
+GLIBC_2.4 _IO_vfscanf F
+GLIBC_2.4 _IO_vsprintf F
+GLIBC_2.4 _IO_wdefault_doallocate F
+GLIBC_2.4 _IO_wdefault_finish F
+GLIBC_2.4 _IO_wdefault_pbackfail F
+GLIBC_2.4 _IO_wdefault_uflow F
+GLIBC_2.4 _IO_wdefault_xsgetn F
+GLIBC_2.4 _IO_wdefault_xsputn F
+GLIBC_2.4 _IO_wdo_write F
+GLIBC_2.4 _IO_wdoallocbuf F
+GLIBC_2.4 _IO_wfile_jumps D 0x54
+GLIBC_2.4 _IO_wfile_overflow F
+GLIBC_2.4 _IO_wfile_seekoff F
+GLIBC_2.4 _IO_wfile_sync F
+GLIBC_2.4 _IO_wfile_underflow F
+GLIBC_2.4 _IO_wfile_xsputn F
+GLIBC_2.4 _IO_wmarker_delta F
+GLIBC_2.4 _IO_wsetb F
+GLIBC_2.4 __adjtimex F
+GLIBC_2.4 __aeabi_MB_CUR_MAX F
+GLIBC_2.4 __aeabi_assert F
+GLIBC_2.4 __aeabi_atexit F
+GLIBC_2.4 __aeabi_errno_addr F
+GLIBC_2.4 __aeabi_localeconv F
+GLIBC_2.4 __aeabi_memclr F
+GLIBC_2.4 __aeabi_memclr4 F
+GLIBC_2.4 __aeabi_memclr8 F
+GLIBC_2.4 __aeabi_memcpy F
+GLIBC_2.4 __aeabi_memcpy4 F
+GLIBC_2.4 __aeabi_memcpy8 F
+GLIBC_2.4 __aeabi_memmove F
+GLIBC_2.4 __aeabi_memmove4 F
+GLIBC_2.4 __aeabi_memmove8 F
+GLIBC_2.4 __aeabi_memset F
+GLIBC_2.4 __aeabi_memset4 F
+GLIBC_2.4 __aeabi_memset8 F
+GLIBC_2.4 __after_morecore_hook D 0x4
+GLIBC_2.4 __argz_count F
+GLIBC_2.4 __argz_next F
+GLIBC_2.4 __argz_stringify F
+GLIBC_2.4 __asprintf F
+GLIBC_2.4 __assert F
+GLIBC_2.4 __assert_fail F
+GLIBC_2.4 __assert_perror_fail F
+GLIBC_2.4 __backtrace F
+GLIBC_2.4 __backtrace_symbols F
+GLIBC_2.4 __backtrace_symbols_fd F
+GLIBC_2.4 __bsd_getpgrp F
+GLIBC_2.4 __bzero F
+GLIBC_2.4 __check_rhosts_file D 0x4
+GLIBC_2.4 __chk_fail F
+GLIBC_2.4 __clone F
+GLIBC_2.4 __close F
+GLIBC_2.4 __cmsg_nxthdr F
+GLIBC_2.4 __confstr_chk F
+GLIBC_2.4 __connect F
+GLIBC_2.4 __ctype_b_loc F
+GLIBC_2.4 __ctype_get_mb_cur_max F
+GLIBC_2.4 __ctype_tolower_loc F
+GLIBC_2.4 __ctype_toupper_loc F
+GLIBC_2.4 __curbrk D 0x4
+GLIBC_2.4 __cxa_atexit F
+GLIBC_2.4 __cxa_finalize F
+GLIBC_2.4 __cyg_profile_func_enter F
+GLIBC_2.4 __cyg_profile_func_exit F
+GLIBC_2.4 __daylight D 0x4
+GLIBC_2.4 __dcgettext F
+GLIBC_2.4 __default_morecore F
+GLIBC_2.4 __dgettext F
+GLIBC_2.4 __dup2 F
+GLIBC_2.4 __duplocale F
+GLIBC_2.4 __endmntent F
+GLIBC_2.4 __environ D 0x4
+GLIBC_2.4 __errno_location F
+GLIBC_2.4 __fbufsize F
+GLIBC_2.4 __fcntl F
+GLIBC_2.4 __ffs F
+GLIBC_2.4 __fgets_chk F
+GLIBC_2.4 __fgets_unlocked_chk F
+GLIBC_2.4 __fgetws_chk F
+GLIBC_2.4 __fgetws_unlocked_chk F
+GLIBC_2.4 __finite F
+GLIBC_2.4 __finitef F
+GLIBC_2.4 __finitel F
+GLIBC_2.4 __flbf F
+GLIBC_2.4 __fork F
+GLIBC_2.4 __fpending F
+GLIBC_2.4 __fprintf_chk F
+GLIBC_2.4 __fpu_control D 0x4
+GLIBC_2.4 __fpurge F
+GLIBC_2.4 __freadable F
+GLIBC_2.4 __freading F
+GLIBC_2.4 __free_hook D 0x4
+GLIBC_2.4 __freelocale F
+GLIBC_2.4 __fsetlocking F
+GLIBC_2.4 __fwprintf_chk F
+GLIBC_2.4 __fwritable F
+GLIBC_2.4 __fwriting F
+GLIBC_2.4 __fxstat F
+GLIBC_2.4 __fxstat64 F
+GLIBC_2.4 __fxstatat F
+GLIBC_2.4 __fxstatat64 F
+GLIBC_2.4 __getcwd_chk F
+GLIBC_2.4 __getdelim F
+GLIBC_2.4 __getdomainname_chk F
+GLIBC_2.4 __getgroups_chk F
+GLIBC_2.4 __gethostname_chk F
+GLIBC_2.4 __getlogin_r_chk F
+GLIBC_2.4 __getmntent_r F
+GLIBC_2.4 __getpagesize F
+GLIBC_2.4 __getpgid F
+GLIBC_2.4 __getpid F
+GLIBC_2.4 __gets_chk F
+GLIBC_2.4 __gettimeofday F
+GLIBC_2.4 __getwd_chk F
+GLIBC_2.4 __gmtime_r F
+GLIBC_2.4 __gnu_Unwind_Find_exidx F
+GLIBC_2.4 __h_errno_location F
+GLIBC_2.4 __isalnum_l F
+GLIBC_2.4 __isalpha_l F
+GLIBC_2.4 __isascii_l F
+GLIBC_2.4 __isblank_l F
+GLIBC_2.4 __iscntrl_l F
+GLIBC_2.4 __isctype F
+GLIBC_2.4 __isdigit_l F
+GLIBC_2.4 __isgraph_l F
+GLIBC_2.4 __isinf F
+GLIBC_2.4 __isinff F
+GLIBC_2.4 __isinfl F
+GLIBC_2.4 __islower_l F
+GLIBC_2.4 __isnan F
+GLIBC_2.4 __isnanf F
+GLIBC_2.4 __isnanl F
+GLIBC_2.4 __isprint_l F
+GLIBC_2.4 __ispunct_l F
+GLIBC_2.4 __isspace_l F
+GLIBC_2.4 __isupper_l F
+GLIBC_2.4 __iswalnum_l F
+GLIBC_2.4 __iswalpha_l F
+GLIBC_2.4 __iswblank_l F
+GLIBC_2.4 __iswcntrl_l F
+GLIBC_2.4 __iswctype F
+GLIBC_2.4 __iswctype_l F
+GLIBC_2.4 __iswdigit_l F
+GLIBC_2.4 __iswgraph_l F
+GLIBC_2.4 __iswlower_l F
+GLIBC_2.4 __iswprint_l F
+GLIBC_2.4 __iswpunct_l F
+GLIBC_2.4 __iswspace_l F
+GLIBC_2.4 __iswupper_l F
+GLIBC_2.4 __iswxdigit_l F
+GLIBC_2.4 __isxdigit_l F
+GLIBC_2.4 __ivaliduser F
+GLIBC_2.4 __key_decryptsession_pk_LOCAL D 0x4
+GLIBC_2.4 __key_encryptsession_pk_LOCAL D 0x4
+GLIBC_2.4 __key_gendes_LOCAL D 0x4
+GLIBC_2.4 __libc_allocate_rtsig F
+GLIBC_2.4 __libc_calloc F
+GLIBC_2.4 __libc_current_sigrtmax F
+GLIBC_2.4 __libc_current_sigrtmin F
+GLIBC_2.4 __libc_free F
+GLIBC_2.4 __libc_freeres F
+GLIBC_2.4 __libc_init_first F
+GLIBC_2.4 __libc_mallinfo F
+GLIBC_2.4 __libc_malloc F
+GLIBC_2.4 __libc_mallopt F
+GLIBC_2.4 __libc_memalign F
+GLIBC_2.4 __libc_pvalloc F
+GLIBC_2.4 __libc_realloc F
+GLIBC_2.4 __libc_sa_len F
+GLIBC_2.4 __libc_start_main F
+GLIBC_2.4 __libc_valloc F
+GLIBC_2.4 __lseek F
+GLIBC_2.4 __lxstat F
+GLIBC_2.4 __lxstat64 F
+GLIBC_2.4 __malloc_hook D 0x4
+GLIBC_2.4 __malloc_initialize_hook D 0x4
+GLIBC_2.4 __mbrlen F
+GLIBC_2.4 __mbrtowc F
+GLIBC_2.4 __mbsnrtowcs_chk F
+GLIBC_2.4 __mbsrtowcs_chk F
+GLIBC_2.4 __mbstowcs_chk F
+GLIBC_2.4 __memalign_hook D 0x4
+GLIBC_2.4 __memcpy_chk F
+GLIBC_2.4 __memmove_chk F
+GLIBC_2.4 __mempcpy F
+GLIBC_2.4 __mempcpy_chk F
+GLIBC_2.4 __mempcpy_small F
+GLIBC_2.4 __memset_chk F
+GLIBC_2.4 __monstartup F
+GLIBC_2.4 __morecore D 0x4
+GLIBC_2.4 __nanosleep F
+GLIBC_2.4 __newlocale F
+GLIBC_2.4 __nl_langinfo_l F
+GLIBC_2.4 __nss_configure_lookup F
+GLIBC_2.4 __nss_database_lookup F
+GLIBC_2.4 __nss_group_lookup F
+GLIBC_2.4 __nss_hostname_digits_dots F
+GLIBC_2.4 __nss_hosts_lookup F
+GLIBC_2.4 __nss_next F
+GLIBC_2.4 __nss_passwd_lookup F
+GLIBC_2.4 __open F
+GLIBC_2.4 __open64 F
+GLIBC_2.4 __overflow F
+GLIBC_2.4 __pipe F
+GLIBC_2.4 __poll F
+GLIBC_2.4 __pread64 F
+GLIBC_2.4 __pread64_chk F
+GLIBC_2.4 __pread_chk F
+GLIBC_2.4 __printf_chk F
+GLIBC_2.4 __printf_fp F
+GLIBC_2.4 __profile_frequency F
+GLIBC_2.4 __progname D 0x4
+GLIBC_2.4 __progname_full D 0x4
+GLIBC_2.4 __ptsname_r_chk F
+GLIBC_2.4 __pwrite64 F
+GLIBC_2.4 __rawmemchr F
+GLIBC_2.4 __rcmd_errstr D 0x4
+GLIBC_2.4 __read F
+GLIBC_2.4 __read_chk F
+GLIBC_2.4 __readlink_chk F
+GLIBC_2.4 __realloc_hook D 0x4
+GLIBC_2.4 __realpath_chk F
+GLIBC_2.4 __recv_chk F
+GLIBC_2.4 __recvfrom_chk F
+GLIBC_2.4 __register_atfork F
+GLIBC_2.4 __res_init F
+GLIBC_2.4 __res_nclose F
+GLIBC_2.4 __res_ninit F
+GLIBC_2.4 __res_randomid F
+GLIBC_2.4 __res_state F
+GLIBC_2.4 __rpc_thread_createerr F
+GLIBC_2.4 __rpc_thread_svc_fdset F
+GLIBC_2.4 __rpc_thread_svc_max_pollfd F
+GLIBC_2.4 __rpc_thread_svc_pollfd F
+GLIBC_2.4 __sbrk F
+GLIBC_2.4 __sched_get_priority_max F
+GLIBC_2.4 __sched_get_priority_min F
+GLIBC_2.4 __sched_getparam F
+GLIBC_2.4 __sched_getscheduler F
+GLIBC_2.4 __sched_setscheduler F
+GLIBC_2.4 __sched_yield F
+GLIBC_2.4 __secure_getenv F
+GLIBC_2.4 __select F
+GLIBC_2.4 __send F
+GLIBC_2.4 __setmntent F
+GLIBC_2.4 __setpgid F
+GLIBC_2.4 __sigaction F
+GLIBC_2.4 __sigaddset F
+GLIBC_2.4 __sigdelset F
+GLIBC_2.4 __sigismember F
+GLIBC_2.4 __signbit F
+GLIBC_2.4 __signbitf F
+GLIBC_2.4 __sigpause F
+GLIBC_2.4 __sigsetjmp F
+GLIBC_2.4 __sigsuspend F
+GLIBC_2.4 __snprintf_chk F
+GLIBC_2.4 __sprintf_chk F
+GLIBC_2.4 __stack_chk_fail F
+GLIBC_2.4 __statfs F
+GLIBC_2.4 __stpcpy F
+GLIBC_2.4 __stpcpy_chk F
+GLIBC_2.4 __stpcpy_small F
+GLIBC_2.4 __stpncpy F
+GLIBC_2.4 __stpncpy_chk F
+GLIBC_2.4 __strcasecmp F
+GLIBC_2.4 __strcasecmp_l F
+GLIBC_2.4 __strcasestr F
+GLIBC_2.4 __strcat_chk F
+GLIBC_2.4 __strcoll_l F
+GLIBC_2.4 __strcpy_chk F
+GLIBC_2.4 __strcpy_small F
+GLIBC_2.4 __strcspn_c1 F
+GLIBC_2.4 __strcspn_c2 F
+GLIBC_2.4 __strcspn_c3 F
+GLIBC_2.4 __strdup F
+GLIBC_2.4 __strerror_r F
+GLIBC_2.4 __strfmon_l F
+GLIBC_2.4 __strftime_l F
+GLIBC_2.4 __strncasecmp_l F
+GLIBC_2.4 __strncat_chk F
+GLIBC_2.4 __strncpy_chk F
+GLIBC_2.4 __strndup F
+GLIBC_2.4 __strpbrk_c2 F
+GLIBC_2.4 __strpbrk_c3 F
+GLIBC_2.4 __strsep_1c F
+GLIBC_2.4 __strsep_2c F
+GLIBC_2.4 __strsep_3c F
+GLIBC_2.4 __strsep_g F
+GLIBC_2.4 __strspn_c1 F
+GLIBC_2.4 __strspn_c2 F
+GLIBC_2.4 __strspn_c3 F
+GLIBC_2.4 __strtod_internal F
+GLIBC_2.4 __strtod_l F
+GLIBC_2.4 __strtof_internal F
+GLIBC_2.4 __strtof_l F
+GLIBC_2.4 __strtok_r F
+GLIBC_2.4 __strtok_r_1c F
+GLIBC_2.4 __strtol_internal F
+GLIBC_2.4 __strtol_l F
+GLIBC_2.4 __strtold_internal F
+GLIBC_2.4 __strtold_l F
+GLIBC_2.4 __strtoll_internal F
+GLIBC_2.4 __strtoll_l F
+GLIBC_2.4 __strtoul_internal F
+GLIBC_2.4 __strtoul_l F
+GLIBC_2.4 __strtoull_internal F
+GLIBC_2.4 __strtoull_l F
+GLIBC_2.4 __strverscmp F
+GLIBC_2.4 __strxfrm_l F
+GLIBC_2.4 __swprintf_chk F
+GLIBC_2.4 __sysconf F
+GLIBC_2.4 __sysctl F
+GLIBC_2.4 __syslog_chk F
+GLIBC_2.4 __sysv_signal F
+GLIBC_2.4 __timezone D 0x4
+GLIBC_2.4 __toascii_l F
+GLIBC_2.4 __tolower_l F
+GLIBC_2.4 __toupper_l F
+GLIBC_2.4 __towctrans F
+GLIBC_2.4 __towctrans_l F
+GLIBC_2.4 __towlower_l F
+GLIBC_2.4 __towupper_l F
+GLIBC_2.4 __ttyname_r_chk F
+GLIBC_2.4 __tzname D 0x8
+GLIBC_2.4 __uflow F
+GLIBC_2.4 __underflow F
+GLIBC_2.4 __uselocale F
+GLIBC_2.4 __vfork F
+GLIBC_2.4 __vfprintf_chk F
+GLIBC_2.4 __vfscanf F
+GLIBC_2.4 __vfwprintf_chk F
+GLIBC_2.4 __vprintf_chk F
+GLIBC_2.4 __vsnprintf F
+GLIBC_2.4 __vsnprintf_chk F
+GLIBC_2.4 __vsprintf_chk F
+GLIBC_2.4 __vsscanf F
+GLIBC_2.4 __vswprintf_chk F
+GLIBC_2.4 __vsyslog_chk F
+GLIBC_2.4 __vwprintf_chk F
+GLIBC_2.4 __wait F
+GLIBC_2.4 __waitpid F
+GLIBC_2.4 __wcpcpy_chk F
+GLIBC_2.4 __wcpncpy_chk F
+GLIBC_2.4 __wcrtomb_chk F
+GLIBC_2.4 __wcscasecmp_l F
+GLIBC_2.4 __wcscat_chk F
+GLIBC_2.4 __wcscoll_l F
+GLIBC_2.4 __wcscpy_chk F
+GLIBC_2.4 __wcsftime_l F
+GLIBC_2.4 __wcsncasecmp_l F
+GLIBC_2.4 __wcsncat_chk F
+GLIBC_2.4 __wcsncpy_chk F
+GLIBC_2.4 __wcsnrtombs_chk F
+GLIBC_2.4 __wcsrtombs_chk F
+GLIBC_2.4 __wcstod_internal F
+GLIBC_2.4 __wcstod_l F
+GLIBC_2.4 __wcstof_internal F
+GLIBC_2.4 __wcstof_l F
+GLIBC_2.4 __wcstol_internal F
+GLIBC_2.4 __wcstol_l F
+GLIBC_2.4 __wcstold_internal F
+GLIBC_2.4 __wcstold_l F
+GLIBC_2.4 __wcstoll_internal F
+GLIBC_2.4 __wcstoll_l F
+GLIBC_2.4 __wcstombs_chk F
+GLIBC_2.4 __wcstoul_internal F
+GLIBC_2.4 __wcstoul_l F
+GLIBC_2.4 __wcstoull_internal F
+GLIBC_2.4 __wcstoull_l F
+GLIBC_2.4 __wcsxfrm_l F
+GLIBC_2.4 __wctomb_chk F
+GLIBC_2.4 __wctrans_l F
+GLIBC_2.4 __wctype_l F
+GLIBC_2.4 __wmemcpy_chk F
+GLIBC_2.4 __wmemmove_chk F
+GLIBC_2.4 __wmempcpy_chk F
+GLIBC_2.4 __wmemset_chk F
+GLIBC_2.4 __woverflow F
+GLIBC_2.4 __wprintf_chk F
+GLIBC_2.4 __write F
+GLIBC_2.4 __wuflow F
+GLIBC_2.4 __wunderflow F
+GLIBC_2.4 __xmknod F
+GLIBC_2.4 __xmknodat F
+GLIBC_2.4 __xpg_basename F
+GLIBC_2.4 __xpg_sigpause F
+GLIBC_2.4 __xpg_strerror_r F
+GLIBC_2.4 __xstat F
+GLIBC_2.4 __xstat64 F
+GLIBC_2.4 _authenticate F
+GLIBC_2.4 _dl_mcount_wrapper F
+GLIBC_2.4 _dl_mcount_wrapper_check F
+GLIBC_2.4 _environ D 0x4
+GLIBC_2.4 _exit F
+GLIBC_2.4 _flushlbf F
+GLIBC_2.4 _libc_intl_domainname D 0x5
+GLIBC_2.4 _longjmp F
+GLIBC_2.4 _mcleanup F
+GLIBC_2.4 _mcount F
+GLIBC_2.4 _nl_default_dirname D 0x12
+GLIBC_2.4 _nl_domain_bindings D 0x4
+GLIBC_2.4 _nl_msg_cat_cntr D 0x4
+GLIBC_2.4 _null_auth D 0xc
+GLIBC_2.4 _obstack_allocated_p F
+GLIBC_2.4 _obstack_begin F
+GLIBC_2.4 _obstack_begin_1 F
+GLIBC_2.4 _obstack_free F
+GLIBC_2.4 _obstack_memory_used F
+GLIBC_2.4 _obstack_newchunk F
+GLIBC_2.4 _res D 0x200
+GLIBC_2.4 _res_hconf D 0x30
+GLIBC_2.4 _rpc_dtablesize F
+GLIBC_2.4 _seterr_reply F
+GLIBC_2.4 _setjmp F
+GLIBC_2.4 _sys_errlist D 0x210
+GLIBC_2.4 _sys_nerr D 0x4
+GLIBC_2.4 _sys_siglist D 0x104
+GLIBC_2.4 _tolower F
+GLIBC_2.4 _toupper F
+GLIBC_2.4 a64l F
+GLIBC_2.4 abort F
+GLIBC_2.4 abs F
+GLIBC_2.4 accept F
+GLIBC_2.4 access F
+GLIBC_2.4 acct F
+GLIBC_2.4 addmntent F
+GLIBC_2.4 addseverity F
+GLIBC_2.4 adjtime F
+GLIBC_2.4 adjtimex F
+GLIBC_2.4 advance F
+GLIBC_2.4 alarm F
+GLIBC_2.4 alphasort F
+GLIBC_2.4 alphasort64 F
+GLIBC_2.4 argp_err_exit_status D 0x4
+GLIBC_2.4 argp_error F
+GLIBC_2.4 argp_failure F
+GLIBC_2.4 argp_help F
+GLIBC_2.4 argp_parse F
+GLIBC_2.4 argp_program_bug_address D 0x4
+GLIBC_2.4 argp_program_version D 0x4
+GLIBC_2.4 argp_program_version_hook D 0x4
+GLIBC_2.4 argp_state_help F
+GLIBC_2.4 argp_usage F
+GLIBC_2.4 argz_add F
+GLIBC_2.4 argz_add_sep F
+GLIBC_2.4 argz_append F
+GLIBC_2.4 argz_count F
+GLIBC_2.4 argz_create F
+GLIBC_2.4 argz_create_sep F
+GLIBC_2.4 argz_delete F
+GLIBC_2.4 argz_extract F
+GLIBC_2.4 argz_insert F
+GLIBC_2.4 argz_next F
+GLIBC_2.4 argz_replace F
+GLIBC_2.4 argz_stringify F
+GLIBC_2.4 asctime F
+GLIBC_2.4 asctime_r F
+GLIBC_2.4 asprintf F
+GLIBC_2.4 atof F
+GLIBC_2.4 atoi F
+GLIBC_2.4 atol F
+GLIBC_2.4 atoll F
+GLIBC_2.4 authdes_create F
+GLIBC_2.4 authdes_getucred F
+GLIBC_2.4 authdes_pk_create F
+GLIBC_2.4 authnone_create F
+GLIBC_2.4 authunix_create F
+GLIBC_2.4 authunix_create_default F
+GLIBC_2.4 backtrace F
+GLIBC_2.4 backtrace_symbols F
+GLIBC_2.4 backtrace_symbols_fd F
+GLIBC_2.4 basename F
+GLIBC_2.4 bcmp F
+GLIBC_2.4 bcopy F
+GLIBC_2.4 bdflush F
+GLIBC_2.4 bind F
+GLIBC_2.4 bind_textdomain_codeset F
+GLIBC_2.4 bindresvport F
+GLIBC_2.4 bindtextdomain F
+GLIBC_2.4 brk F
+GLIBC_2.4 bsd_signal F
+GLIBC_2.4 bsearch F
+GLIBC_2.4 btowc F
+GLIBC_2.4 bzero F
+GLIBC_2.4 calloc F
+GLIBC_2.4 callrpc F
+GLIBC_2.4 canonicalize_file_name F
+GLIBC_2.4 capget F
+GLIBC_2.4 capset F
+GLIBC_2.4 catclose F
+GLIBC_2.4 catgets F
+GLIBC_2.4 catopen F
+GLIBC_2.4 cbc_crypt F
+GLIBC_2.4 cfgetispeed F
+GLIBC_2.4 cfgetospeed F
+GLIBC_2.4 cfmakeraw F
+GLIBC_2.4 cfree F
+GLIBC_2.4 cfsetispeed F
+GLIBC_2.4 cfsetospeed F
+GLIBC_2.4 cfsetspeed F
+GLIBC_2.4 chdir F
+GLIBC_2.4 chflags F
+GLIBC_2.4 chmod F
+GLIBC_2.4 chown F
+GLIBC_2.4 chroot F
+GLIBC_2.4 clearenv F
+GLIBC_2.4 clearerr F
+GLIBC_2.4 clearerr_unlocked F
+GLIBC_2.4 clnt_broadcast F
+GLIBC_2.4 clnt_create F
+GLIBC_2.4 clnt_pcreateerror F
+GLIBC_2.4 clnt_perrno F
+GLIBC_2.4 clnt_perror F
+GLIBC_2.4 clnt_spcreateerror F
+GLIBC_2.4 clnt_sperrno F
+GLIBC_2.4 clnt_sperror F
+GLIBC_2.4 clntraw_create F
+GLIBC_2.4 clnttcp_create F
+GLIBC_2.4 clntudp_bufcreate F
+GLIBC_2.4 clntudp_create F
+GLIBC_2.4 clntunix_create F
+GLIBC_2.4 clock F
+GLIBC_2.4 clock_getcpuclockid F
+GLIBC_2.4 clock_getres F
+GLIBC_2.4 clock_gettime F
+GLIBC_2.4 clock_nanosleep F
+GLIBC_2.4 clock_settime F
+GLIBC_2.4 clone F
+GLIBC_2.4 close F
+GLIBC_2.4 closedir F
+GLIBC_2.4 closelog F
+GLIBC_2.4 confstr F
+GLIBC_2.4 connect F
+GLIBC_2.4 copysign F
+GLIBC_2.4 copysignf F
+GLIBC_2.4 copysignl F
+GLIBC_2.4 creat F
+GLIBC_2.4 creat64 F
+GLIBC_2.4 create_module F
+GLIBC_2.4 ctermid F
+GLIBC_2.4 ctime F
+GLIBC_2.4 ctime_r F
+GLIBC_2.4 cuserid F
+GLIBC_2.4 daemon F
+GLIBC_2.4 daylight D 0x4
+GLIBC_2.4 dcgettext F
+GLIBC_2.4 dcngettext F
+GLIBC_2.4 delete_module F
+GLIBC_2.4 des_setparity F
+GLIBC_2.4 dgettext F
+GLIBC_2.4 difftime F
+GLIBC_2.4 dirfd F
+GLIBC_2.4 dirname F
+GLIBC_2.4 div F
+GLIBC_2.4 dl_iterate_phdr F
+GLIBC_2.4 dngettext F
+GLIBC_2.4 dprintf F
+GLIBC_2.4 drand48 F
+GLIBC_2.4 drand48_r F
+GLIBC_2.4 dup F
+GLIBC_2.4 dup2 F
+GLIBC_2.4 duplocale F
+GLIBC_2.4 dysize F
+GLIBC_2.4 eaccess F
+GLIBC_2.4 ecb_crypt F
+GLIBC_2.4 ecvt F
+GLIBC_2.4 ecvt_r F
+GLIBC_2.4 endaliasent F
+GLIBC_2.4 endfsent F
+GLIBC_2.4 endgrent F
+GLIBC_2.4 endhostent F
+GLIBC_2.4 endmntent F
+GLIBC_2.4 endnetent F
+GLIBC_2.4 endnetgrent F
+GLIBC_2.4 endprotoent F
+GLIBC_2.4 endpwent F
+GLIBC_2.4 endrpcent F
+GLIBC_2.4 endservent F
+GLIBC_2.4 endspent F
+GLIBC_2.4 endttyent F
+GLIBC_2.4 endusershell F
+GLIBC_2.4 endutent F
+GLIBC_2.4 endutxent F
+GLIBC_2.4 environ D 0x4
+GLIBC_2.4 envz_add F
+GLIBC_2.4 envz_entry F
+GLIBC_2.4 envz_get F
+GLIBC_2.4 envz_merge F
+GLIBC_2.4 envz_remove F
+GLIBC_2.4 envz_strip F
+GLIBC_2.4 epoll_create F
+GLIBC_2.4 epoll_ctl F
+GLIBC_2.4 epoll_wait F
+GLIBC_2.4 erand48 F
+GLIBC_2.4 erand48_r F
+GLIBC_2.4 err F
+GLIBC_2.4 error F
+GLIBC_2.4 error_at_line F
+GLIBC_2.4 error_message_count D 0x4
+GLIBC_2.4 error_one_per_line D 0x4
+GLIBC_2.4 error_print_progname D 0x4
+GLIBC_2.4 errx F
+GLIBC_2.4 ether_aton F
+GLIBC_2.4 ether_aton_r F
+GLIBC_2.4 ether_hostton F
+GLIBC_2.4 ether_line F
+GLIBC_2.4 ether_ntoa F
+GLIBC_2.4 ether_ntoa_r F
+GLIBC_2.4 ether_ntohost F
+GLIBC_2.4 euidaccess F
+GLIBC_2.4 execl F
+GLIBC_2.4 execle F
+GLIBC_2.4 execlp F
+GLIBC_2.4 execv F
+GLIBC_2.4 execve F
+GLIBC_2.4 execvp F
+GLIBC_2.4 exit F
+GLIBC_2.4 faccessat F
+GLIBC_2.4 fattach F
+GLIBC_2.4 fchdir F
+GLIBC_2.4 fchflags F
+GLIBC_2.4 fchmod F
+GLIBC_2.4 fchmodat F
+GLIBC_2.4 fchown F
+GLIBC_2.4 fchownat F
+GLIBC_2.4 fclose F
+GLIBC_2.4 fcloseall F
+GLIBC_2.4 fcntl F
+GLIBC_2.4 fcvt F
+GLIBC_2.4 fcvt_r F
+GLIBC_2.4 fdatasync F
+GLIBC_2.4 fdetach F
+GLIBC_2.4 fdopen F
+GLIBC_2.4 fdopendir F
+GLIBC_2.4 feof F
+GLIBC_2.4 feof_unlocked F
+GLIBC_2.4 ferror F
+GLIBC_2.4 ferror_unlocked F
+GLIBC_2.4 fexecve F
+GLIBC_2.4 fflush F
+GLIBC_2.4 fflush_unlocked F
+GLIBC_2.4 ffs F
+GLIBC_2.4 ffsl F
+GLIBC_2.4 ffsll F
+GLIBC_2.4 fgetc F
+GLIBC_2.4 fgetc_unlocked F
+GLIBC_2.4 fgetgrent F
+GLIBC_2.4 fgetgrent_r F
+GLIBC_2.4 fgetpos F
+GLIBC_2.4 fgetpos64 F
+GLIBC_2.4 fgetpwent F
+GLIBC_2.4 fgetpwent_r F
+GLIBC_2.4 fgets F
+GLIBC_2.4 fgets_unlocked F
+GLIBC_2.4 fgetspent F
+GLIBC_2.4 fgetspent_r F
+GLIBC_2.4 fgetwc F
+GLIBC_2.4 fgetwc_unlocked F
+GLIBC_2.4 fgetws F
+GLIBC_2.4 fgetws_unlocked F
+GLIBC_2.4 fgetxattr F
+GLIBC_2.4 fileno F
+GLIBC_2.4 fileno_unlocked F
+GLIBC_2.4 finite F
+GLIBC_2.4 finitef F
+GLIBC_2.4 finitel F
+GLIBC_2.4 flistxattr F
+GLIBC_2.4 flock F
+GLIBC_2.4 flockfile F
+GLIBC_2.4 fmemopen F
+GLIBC_2.4 fmtmsg F
+GLIBC_2.4 fnmatch F
+GLIBC_2.4 fopen F
+GLIBC_2.4 fopen64 F
+GLIBC_2.4 fopencookie F
+GLIBC_2.4 fork F
+GLIBC_2.4 fpathconf F
+GLIBC_2.4 fprintf F
+GLIBC_2.4 fputc F
+GLIBC_2.4 fputc_unlocked F
+GLIBC_2.4 fputs F
+GLIBC_2.4 fputs_unlocked F
+GLIBC_2.4 fputwc F
+GLIBC_2.4 fputwc_unlocked F
+GLIBC_2.4 fputws F
+GLIBC_2.4 fputws_unlocked F
+GLIBC_2.4 fread F
+GLIBC_2.4 fread_unlocked F
+GLIBC_2.4 free F
+GLIBC_2.4 freeaddrinfo F
+GLIBC_2.4 freeifaddrs F
+GLIBC_2.4 freelocale F
+GLIBC_2.4 fremovexattr F
+GLIBC_2.4 freopen F
+GLIBC_2.4 freopen64 F
+GLIBC_2.4 frexp F
+GLIBC_2.4 frexpf F
+GLIBC_2.4 frexpl F
+GLIBC_2.4 fscanf F
+GLIBC_2.4 fseek F
+GLIBC_2.4 fseeko F
+GLIBC_2.4 fseeko64 F
+GLIBC_2.4 fsetpos F
+GLIBC_2.4 fsetpos64 F
+GLIBC_2.4 fsetxattr F
+GLIBC_2.4 fstatfs F
+GLIBC_2.4 fstatfs64 F
+GLIBC_2.4 fstatvfs F
+GLIBC_2.4 fstatvfs64 F
+GLIBC_2.4 fsync F
+GLIBC_2.4 ftell F
+GLIBC_2.4 ftello F
+GLIBC_2.4 ftello64 F
+GLIBC_2.4 ftime F
+GLIBC_2.4 ftok F
+GLIBC_2.4 ftruncate F
+GLIBC_2.4 ftruncate64 F
+GLIBC_2.4 ftrylockfile F
+GLIBC_2.4 fts_children F
+GLIBC_2.4 fts_close F
+GLIBC_2.4 fts_open F
+GLIBC_2.4 fts_read F
+GLIBC_2.4 fts_set F
+GLIBC_2.4 ftw F
+GLIBC_2.4 ftw64 F
+GLIBC_2.4 funlockfile F
+GLIBC_2.4 futimes F
+GLIBC_2.4 futimesat F
+GLIBC_2.4 fwide F
+GLIBC_2.4 fwprintf F
+GLIBC_2.4 fwrite F
+GLIBC_2.4 fwrite_unlocked F
+GLIBC_2.4 fwscanf F
+GLIBC_2.4 gai_strerror F
+GLIBC_2.4 gcvt F
+GLIBC_2.4 get_avphys_pages F
+GLIBC_2.4 get_current_dir_name F
+GLIBC_2.4 get_kernel_syms F
+GLIBC_2.4 get_myaddress F
+GLIBC_2.4 get_nprocs F
+GLIBC_2.4 get_nprocs_conf F
+GLIBC_2.4 get_phys_pages F
+GLIBC_2.4 getaddrinfo F
+GLIBC_2.4 getaliasbyname F
+GLIBC_2.4 getaliasbyname_r F
+GLIBC_2.4 getaliasent F
+GLIBC_2.4 getaliasent_r F
+GLIBC_2.4 getc F
+GLIBC_2.4 getc_unlocked F
+GLIBC_2.4 getchar F
+GLIBC_2.4 getchar_unlocked F
+GLIBC_2.4 getcontext F
+GLIBC_2.4 getcwd F
+GLIBC_2.4 getdate F
+GLIBC_2.4 getdate_err D 0x4
+GLIBC_2.4 getdate_r F
+GLIBC_2.4 getdelim F
+GLIBC_2.4 getdirentries F
+GLIBC_2.4 getdirentries64 F
+GLIBC_2.4 getdomainname F
+GLIBC_2.4 getdtablesize F
+GLIBC_2.4 getegid F
+GLIBC_2.4 getenv F
+GLIBC_2.4 geteuid F
+GLIBC_2.4 getfsent F
+GLIBC_2.4 getfsfile F
+GLIBC_2.4 getfsspec F
+GLIBC_2.4 getgid F
+GLIBC_2.4 getgrent F
+GLIBC_2.4 getgrent_r F
+GLIBC_2.4 getgrgid F
+GLIBC_2.4 getgrgid_r F
+GLIBC_2.4 getgrnam F
+GLIBC_2.4 getgrnam_r F
+GLIBC_2.4 getgrouplist F
+GLIBC_2.4 getgroups F
+GLIBC_2.4 gethostbyaddr F
+GLIBC_2.4 gethostbyaddr_r F
+GLIBC_2.4 gethostbyname F
+GLIBC_2.4 gethostbyname2 F
+GLIBC_2.4 gethostbyname2_r F
+GLIBC_2.4 gethostbyname_r F
+GLIBC_2.4 gethostent F
+GLIBC_2.4 gethostent_r F
+GLIBC_2.4 gethostid F
+GLIBC_2.4 gethostname F
+GLIBC_2.4 getifaddrs F
+GLIBC_2.4 getipv4sourcefilter F
+GLIBC_2.4 getitimer F
+GLIBC_2.4 getline F
+GLIBC_2.4 getloadavg F
+GLIBC_2.4 getlogin F
+GLIBC_2.4 getlogin_r F
+GLIBC_2.4 getmntent F
+GLIBC_2.4 getmntent_r F
+GLIBC_2.4 getmsg F
+GLIBC_2.4 getnameinfo F
+GLIBC_2.4 getnetbyaddr F
+GLIBC_2.4 getnetbyaddr_r F
+GLIBC_2.4 getnetbyname F
+GLIBC_2.4 getnetbyname_r F
+GLIBC_2.4 getnetent F
+GLIBC_2.4 getnetent_r F
+GLIBC_2.4 getnetgrent F
+GLIBC_2.4 getnetgrent_r F
+GLIBC_2.4 getnetname F
+GLIBC_2.4 getopt F
+GLIBC_2.4 getopt_long F
+GLIBC_2.4 getopt_long_only F
+GLIBC_2.4 getpagesize F
+GLIBC_2.4 getpass F
+GLIBC_2.4 getpeername F
+GLIBC_2.4 getpgid F
+GLIBC_2.4 getpgrp F
+GLIBC_2.4 getpid F
+GLIBC_2.4 getpmsg F
+GLIBC_2.4 getppid F
+GLIBC_2.4 getpriority F
+GLIBC_2.4 getprotobyname F
+GLIBC_2.4 getprotobyname_r F
+GLIBC_2.4 getprotobynumber F
+GLIBC_2.4 getprotobynumber_r F
+GLIBC_2.4 getprotoent F
+GLIBC_2.4 getprotoent_r F
+GLIBC_2.4 getpt F
+GLIBC_2.4 getpublickey F
+GLIBC_2.4 getpw F
+GLIBC_2.4 getpwent F
+GLIBC_2.4 getpwent_r F
+GLIBC_2.4 getpwnam F
+GLIBC_2.4 getpwnam_r F
+GLIBC_2.4 getpwuid F
+GLIBC_2.4 getpwuid_r F
+GLIBC_2.4 getresgid F
+GLIBC_2.4 getresuid F
+GLIBC_2.4 getrlimit F
+GLIBC_2.4 getrlimit64 F
+GLIBC_2.4 getrpcbyname F
+GLIBC_2.4 getrpcbyname_r F
+GLIBC_2.4 getrpcbynumber F
+GLIBC_2.4 getrpcbynumber_r F
+GLIBC_2.4 getrpcent F
+GLIBC_2.4 getrpcent_r F
+GLIBC_2.4 getrpcport F
+GLIBC_2.4 getrusage F
+GLIBC_2.4 gets F
+GLIBC_2.4 getsecretkey F
+GLIBC_2.4 getservbyname F
+GLIBC_2.4 getservbyname_r F
+GLIBC_2.4 getservbyport F
+GLIBC_2.4 getservbyport_r F
+GLIBC_2.4 getservent F
+GLIBC_2.4 getservent_r F
+GLIBC_2.4 getsid F
+GLIBC_2.4 getsockname F
+GLIBC_2.4 getsockopt F
+GLIBC_2.4 getsourcefilter F
+GLIBC_2.4 getspent F
+GLIBC_2.4 getspent_r F
+GLIBC_2.4 getspnam F
+GLIBC_2.4 getspnam_r F
+GLIBC_2.4 getsubopt F
+GLIBC_2.4 gettext F
+GLIBC_2.4 gettimeofday F
+GLIBC_2.4 getttyent F
+GLIBC_2.4 getttynam F
+GLIBC_2.4 getuid F
+GLIBC_2.4 getusershell F
+GLIBC_2.4 getutent F
+GLIBC_2.4 getutent_r F
+GLIBC_2.4 getutid F
+GLIBC_2.4 getutid_r F
+GLIBC_2.4 getutline F
+GLIBC_2.4 getutline_r F
+GLIBC_2.4 getutmp F
+GLIBC_2.4 getutmpx F
+GLIBC_2.4 getutxent F
+GLIBC_2.4 getutxid F
+GLIBC_2.4 getutxline F
+GLIBC_2.4 getw F
+GLIBC_2.4 getwc F
+GLIBC_2.4 getwc_unlocked F
+GLIBC_2.4 getwchar F
+GLIBC_2.4 getwchar_unlocked F
+GLIBC_2.4 getwd F
+GLIBC_2.4 getxattr F
+GLIBC_2.4 glob F
+GLIBC_2.4 glob64 F
+GLIBC_2.4 glob_pattern_p F
+GLIBC_2.4 globfree F
+GLIBC_2.4 globfree64 F
+GLIBC_2.4 gmtime F
+GLIBC_2.4 gmtime_r F
+GLIBC_2.4 gnu_dev_major F
+GLIBC_2.4 gnu_dev_makedev F
+GLIBC_2.4 gnu_dev_minor F
+GLIBC_2.4 gnu_get_libc_release F
+GLIBC_2.4 gnu_get_libc_version F
+GLIBC_2.4 grantpt F
+GLIBC_2.4 group_member F
+GLIBC_2.4 gsignal F
+GLIBC_2.4 gtty F
+GLIBC_2.4 h_errlist D 0x14
+GLIBC_2.4 h_nerr D 0x4
+GLIBC_2.4 hasmntopt F
+GLIBC_2.4 hcreate F
+GLIBC_2.4 hcreate_r F
+GLIBC_2.4 hdestroy F
+GLIBC_2.4 hdestroy_r F
+GLIBC_2.4 herror F
+GLIBC_2.4 host2netname F
+GLIBC_2.4 hsearch F
+GLIBC_2.4 hsearch_r F
+GLIBC_2.4 hstrerror F
+GLIBC_2.4 htonl F
+GLIBC_2.4 htons F
+GLIBC_2.4 iconv F
+GLIBC_2.4 iconv_close F
+GLIBC_2.4 iconv_open F
+GLIBC_2.4 if_freenameindex F
+GLIBC_2.4 if_indextoname F
+GLIBC_2.4 if_nameindex F
+GLIBC_2.4 if_nametoindex F
+GLIBC_2.4 imaxabs F
+GLIBC_2.4 imaxdiv F
+GLIBC_2.4 in6addr_any D 0x10
+GLIBC_2.4 in6addr_loopback D 0x10
+GLIBC_2.4 inb F
+GLIBC_2.4 index F
+GLIBC_2.4 inet6_option_alloc F
+GLIBC_2.4 inet6_option_append F
+GLIBC_2.4 inet6_option_find F
+GLIBC_2.4 inet6_option_init F
+GLIBC_2.4 inet6_option_next F
+GLIBC_2.4 inet6_option_space F
+GLIBC_2.4 inet_addr F
+GLIBC_2.4 inet_aton F
+GLIBC_2.4 inet_lnaof F
+GLIBC_2.4 inet_makeaddr F
+GLIBC_2.4 inet_netof F
+GLIBC_2.4 inet_network F
+GLIBC_2.4 inet_nsap_addr F
+GLIBC_2.4 inet_nsap_ntoa F
+GLIBC_2.4 inet_ntoa F
+GLIBC_2.4 inet_ntop F
+GLIBC_2.4 inet_pton F
+GLIBC_2.4 init_module F
+GLIBC_2.4 initgroups F
+GLIBC_2.4 initstate F
+GLIBC_2.4 initstate_r F
+GLIBC_2.4 inl F
+GLIBC_2.4 innetgr F
+GLIBC_2.4 inotify_add_watch F
+GLIBC_2.4 inotify_init F
+GLIBC_2.4 inotify_rm_watch F
+GLIBC_2.4 insque F
+GLIBC_2.4 inw F
+GLIBC_2.4 ioctl F
+GLIBC_2.4 ioperm F
+GLIBC_2.4 iopl F
+GLIBC_2.4 iruserok F
+GLIBC_2.4 iruserok_af F
+GLIBC_2.4 isalnum F
+GLIBC_2.4 isalnum_l F
+GLIBC_2.4 isalpha F
+GLIBC_2.4 isalpha_l F
+GLIBC_2.4 isascii F
+GLIBC_2.4 isastream F
+GLIBC_2.4 isatty F
+GLIBC_2.4 isblank F
+GLIBC_2.4 isblank_l F
+GLIBC_2.4 iscntrl F
+GLIBC_2.4 iscntrl_l F
+GLIBC_2.4 isctype F
+GLIBC_2.4 isdigit F
+GLIBC_2.4 isdigit_l F
+GLIBC_2.4 isfdtype F
+GLIBC_2.4 isgraph F
+GLIBC_2.4 isgraph_l F
+GLIBC_2.4 isinf F
+GLIBC_2.4 isinff F
+GLIBC_2.4 isinfl F
+GLIBC_2.4 islower F
+GLIBC_2.4 islower_l F
+GLIBC_2.4 isnan F
+GLIBC_2.4 isnanf F
+GLIBC_2.4 isnanl F
+GLIBC_2.4 isprint F
+GLIBC_2.4 isprint_l F
+GLIBC_2.4 ispunct F
+GLIBC_2.4 ispunct_l F
+GLIBC_2.4 isspace F
+GLIBC_2.4 isspace_l F
+GLIBC_2.4 isupper F
+GLIBC_2.4 isupper_l F
+GLIBC_2.4 iswalnum F
+GLIBC_2.4 iswalnum_l F
+GLIBC_2.4 iswalpha F
+GLIBC_2.4 iswalpha_l F
+GLIBC_2.4 iswblank F
+GLIBC_2.4 iswblank_l F
+GLIBC_2.4 iswcntrl F
+GLIBC_2.4 iswcntrl_l F
+GLIBC_2.4 iswctype F
+GLIBC_2.4 iswctype_l F
+GLIBC_2.4 iswdigit F
+GLIBC_2.4 iswdigit_l F
+GLIBC_2.4 iswgraph F
+GLIBC_2.4 iswgraph_l F
+GLIBC_2.4 iswlower F
+GLIBC_2.4 iswlower_l F
+GLIBC_2.4 iswprint F
+GLIBC_2.4 iswprint_l F
+GLIBC_2.4 iswpunct F
+GLIBC_2.4 iswpunct_l F
+GLIBC_2.4 iswspace F
+GLIBC_2.4 iswspace_l F
+GLIBC_2.4 iswupper F
+GLIBC_2.4 iswupper_l F
+GLIBC_2.4 iswxdigit F
+GLIBC_2.4 iswxdigit_l F
+GLIBC_2.4 isxdigit F
+GLIBC_2.4 isxdigit_l F
+GLIBC_2.4 jrand48 F
+GLIBC_2.4 jrand48_r F
+GLIBC_2.4 key_decryptsession F
+GLIBC_2.4 key_decryptsession_pk F
+GLIBC_2.4 key_encryptsession F
+GLIBC_2.4 key_encryptsession_pk F
+GLIBC_2.4 key_gendes F
+GLIBC_2.4 key_get_conv F
+GLIBC_2.4 key_secretkey_is_set F
+GLIBC_2.4 key_setnet F
+GLIBC_2.4 key_setsecret F
+GLIBC_2.4 kill F
+GLIBC_2.4 killpg F
+GLIBC_2.4 klogctl F
+GLIBC_2.4 l64a F
+GLIBC_2.4 labs F
+GLIBC_2.4 lchmod F
+GLIBC_2.4 lchown F
+GLIBC_2.4 lckpwdf F
+GLIBC_2.4 lcong48 F
+GLIBC_2.4 lcong48_r F
+GLIBC_2.4 ldexp F
+GLIBC_2.4 ldexpf F
+GLIBC_2.4 ldexpl F
+GLIBC_2.4 ldiv F
+GLIBC_2.4 lfind F
+GLIBC_2.4 lgetxattr F
+GLIBC_2.4 link F
+GLIBC_2.4 linkat F
+GLIBC_2.4 listen F
+GLIBC_2.4 listxattr F
+GLIBC_2.4 llabs F
+GLIBC_2.4 lldiv F
+GLIBC_2.4 llistxattr F
+GLIBC_2.4 llseek F
+GLIBC_2.4 loc1 D 0x4
+GLIBC_2.4 loc2 D 0x4
+GLIBC_2.4 localeconv F
+GLIBC_2.4 localtime F
+GLIBC_2.4 localtime_r F
+GLIBC_2.4 lockf F
+GLIBC_2.4 lockf64 F
+GLIBC_2.4 locs D 0x4
+GLIBC_2.4 longjmp F
+GLIBC_2.4 lrand48 F
+GLIBC_2.4 lrand48_r F
+GLIBC_2.4 lremovexattr F
+GLIBC_2.4 lsearch F
+GLIBC_2.4 lseek F
+GLIBC_2.4 lseek64 F
+GLIBC_2.4 lsetxattr F
+GLIBC_2.4 lutimes F
+GLIBC_2.4 madvise F
+GLIBC_2.4 makecontext F
+GLIBC_2.4 mallinfo F
+GLIBC_2.4 malloc F
+GLIBC_2.4 malloc_get_state F
+GLIBC_2.4 malloc_set_state F
+GLIBC_2.4 malloc_stats F
+GLIBC_2.4 malloc_trim F
+GLIBC_2.4 malloc_usable_size F
+GLIBC_2.4 mallopt F
+GLIBC_2.4 mallwatch D 0x4
+GLIBC_2.4 mblen F
+GLIBC_2.4 mbrlen F
+GLIBC_2.4 mbrtowc F
+GLIBC_2.4 mbsinit F
+GLIBC_2.4 mbsnrtowcs F
+GLIBC_2.4 mbsrtowcs F
+GLIBC_2.4 mbstowcs F
+GLIBC_2.4 mbtowc F
+GLIBC_2.4 mcheck F
+GLIBC_2.4 mcheck_check_all F
+GLIBC_2.4 mcheck_pedantic F
+GLIBC_2.4 mcount F
+GLIBC_2.4 memalign F
+GLIBC_2.4 memccpy F
+GLIBC_2.4 memchr F
+GLIBC_2.4 memcmp F
+GLIBC_2.4 memcpy F
+GLIBC_2.4 memfrob F
+GLIBC_2.4 memmem F
+GLIBC_2.4 memmove F
+GLIBC_2.4 mempcpy F
+GLIBC_2.4 memrchr F
+GLIBC_2.4 memset F
+GLIBC_2.4 mincore F
+GLIBC_2.4 mkdir F
+GLIBC_2.4 mkdirat F
+GLIBC_2.4 mkdtemp F
+GLIBC_2.4 mkfifo F
+GLIBC_2.4 mkfifoat F
+GLIBC_2.4 mkstemp F
+GLIBC_2.4 mkstemp64 F
+GLIBC_2.4 mktemp F
+GLIBC_2.4 mktime F
+GLIBC_2.4 mlock F
+GLIBC_2.4 mlockall F
+GLIBC_2.4 mmap F
+GLIBC_2.4 mmap64 F
+GLIBC_2.4 modf F
+GLIBC_2.4 modff F
+GLIBC_2.4 modfl F
+GLIBC_2.4 moncontrol F
+GLIBC_2.4 monstartup F
+GLIBC_2.4 mount F
+GLIBC_2.4 mprobe F
+GLIBC_2.4 mprotect F
+GLIBC_2.4 mrand48 F
+GLIBC_2.4 mrand48_r F
+GLIBC_2.4 mremap F
+GLIBC_2.4 msgctl F
+GLIBC_2.4 msgget F
+GLIBC_2.4 msgrcv F
+GLIBC_2.4 msgsnd F
+GLIBC_2.4 msync F
+GLIBC_2.4 mtrace F
+GLIBC_2.4 munlock F
+GLIBC_2.4 munlockall F
+GLIBC_2.4 munmap F
+GLIBC_2.4 muntrace F
+GLIBC_2.4 nanosleep F
+GLIBC_2.4 netname2host F
+GLIBC_2.4 netname2user F
+GLIBC_2.4 newlocale F
+GLIBC_2.4 nfsservctl F
+GLIBC_2.4 nftw F
+GLIBC_2.4 nftw64 F
+GLIBC_2.4 ngettext F
+GLIBC_2.4 nice F
+GLIBC_2.4 nl_langinfo F
+GLIBC_2.4 nl_langinfo_l F
+GLIBC_2.4 nrand48 F
+GLIBC_2.4 nrand48_r F
+GLIBC_2.4 ntohl F
+GLIBC_2.4 ntohs F
+GLIBC_2.4 ntp_adjtime F
+GLIBC_2.4 ntp_gettime F
+GLIBC_2.4 obstack_alloc_failed_handler D 0x4
+GLIBC_2.4 obstack_exit_failure D 0x4
+GLIBC_2.4 obstack_free F
+GLIBC_2.4 obstack_printf F
+GLIBC_2.4 obstack_vprintf F
+GLIBC_2.4 on_exit F
+GLIBC_2.4 open F
+GLIBC_2.4 open64 F
+GLIBC_2.4 open_memstream F
+GLIBC_2.4 open_wmemstream F
+GLIBC_2.4 openat F
+GLIBC_2.4 openat64 F
+GLIBC_2.4 opendir F
+GLIBC_2.4 openlog F
+GLIBC_2.4 optarg D 0x4
+GLIBC_2.4 opterr D 0x4
+GLIBC_2.4 optind D 0x4
+GLIBC_2.4 optopt D 0x4
+GLIBC_2.4 outb F
+GLIBC_2.4 outl F
+GLIBC_2.4 outw F
+GLIBC_2.4 parse_printf_format F
+GLIBC_2.4 passwd2des F
+GLIBC_2.4 pathconf F
+GLIBC_2.4 pause F
+GLIBC_2.4 pclose F
+GLIBC_2.4 perror F
+GLIBC_2.4 personality F
+GLIBC_2.4 pipe F
+GLIBC_2.4 pivot_root F
+GLIBC_2.4 pmap_getmaps F
+GLIBC_2.4 pmap_getport F
+GLIBC_2.4 pmap_rmtcall F
+GLIBC_2.4 pmap_set F
+GLIBC_2.4 pmap_unset F
+GLIBC_2.4 poll F
+GLIBC_2.4 popen F
+GLIBC_2.4 posix_fadvise F
+GLIBC_2.4 posix_fadvise64 F
+GLIBC_2.4 posix_fallocate F
+GLIBC_2.4 posix_fallocate64 F
+GLIBC_2.4 posix_madvise F
+GLIBC_2.4 posix_memalign F
+GLIBC_2.4 posix_openpt F
+GLIBC_2.4 posix_spawn F
+GLIBC_2.4 posix_spawn_file_actions_addclose F
+GLIBC_2.4 posix_spawn_file_actions_adddup2 F
+GLIBC_2.4 posix_spawn_file_actions_addopen F
+GLIBC_2.4 posix_spawn_file_actions_destroy F
+GLIBC_2.4 posix_spawn_file_actions_init F
+GLIBC_2.4 posix_spawnattr_destroy F
+GLIBC_2.4 posix_spawnattr_getflags F
+GLIBC_2.4 posix_spawnattr_getpgroup F
+GLIBC_2.4 posix_spawnattr_getschedparam F
+GLIBC_2.4 posix_spawnattr_getschedpolicy F
+GLIBC_2.4 posix_spawnattr_getsigdefault F
+GLIBC_2.4 posix_spawnattr_getsigmask F
+GLIBC_2.4 posix_spawnattr_init F
+GLIBC_2.4 posix_spawnattr_setflags F
+GLIBC_2.4 posix_spawnattr_setpgroup F
+GLIBC_2.4 posix_spawnattr_setschedparam F
+GLIBC_2.4 posix_spawnattr_setschedpolicy F
+GLIBC_2.4 posix_spawnattr_setsigdefault F
+GLIBC_2.4 posix_spawnattr_setsigmask F
+GLIBC_2.4 posix_spawnp F
+GLIBC_2.4 ppoll F
+GLIBC_2.4 prctl F
+GLIBC_2.4 pread F
+GLIBC_2.4 pread64 F
+GLIBC_2.4 printf F
+GLIBC_2.4 printf_size F
+GLIBC_2.4 printf_size_info F
+GLIBC_2.4 profil F
+GLIBC_2.4 profil_counter F
+GLIBC_2.4 program_invocation_name D 0x4
+GLIBC_2.4 program_invocation_short_name D 0x4
+GLIBC_2.4 pselect F
+GLIBC_2.4 psignal F
+GLIBC_2.4 pthread_attr_destroy F
+GLIBC_2.4 pthread_attr_getdetachstate F
+GLIBC_2.4 pthread_attr_getinheritsched F
+GLIBC_2.4 pthread_attr_getschedparam F
+GLIBC_2.4 pthread_attr_getschedpolicy F
+GLIBC_2.4 pthread_attr_getscope F
+GLIBC_2.4 pthread_attr_init F
+GLIBC_2.4 pthread_attr_setdetachstate F
+GLIBC_2.4 pthread_attr_setinheritsched F
+GLIBC_2.4 pthread_attr_setschedparam F
+GLIBC_2.4 pthread_attr_setschedpolicy F
+GLIBC_2.4 pthread_attr_setscope F
+GLIBC_2.4 pthread_cond_broadcast F
+GLIBC_2.4 pthread_cond_destroy F
+GLIBC_2.4 pthread_cond_init F
+GLIBC_2.4 pthread_cond_signal F
+GLIBC_2.4 pthread_cond_timedwait F
+GLIBC_2.4 pthread_cond_wait F
+GLIBC_2.4 pthread_condattr_destroy F
+GLIBC_2.4 pthread_condattr_init F
+GLIBC_2.4 pthread_equal F
+GLIBC_2.4 pthread_exit F
+GLIBC_2.4 pthread_getschedparam F
+GLIBC_2.4 pthread_mutex_destroy F
+GLIBC_2.4 pthread_mutex_init F
+GLIBC_2.4 pthread_mutex_lock F
+GLIBC_2.4 pthread_mutex_unlock F
+GLIBC_2.4 pthread_self F
+GLIBC_2.4 pthread_setcancelstate F
+GLIBC_2.4 pthread_setcanceltype F
+GLIBC_2.4 pthread_setschedparam F
+GLIBC_2.4 ptrace F
+GLIBC_2.4 ptsname F
+GLIBC_2.4 ptsname_r F
+GLIBC_2.4 putc F
+GLIBC_2.4 putc_unlocked F
+GLIBC_2.4 putchar F
+GLIBC_2.4 putchar_unlocked F
+GLIBC_2.4 putenv F
+GLIBC_2.4 putgrent F
+GLIBC_2.4 putmsg F
+GLIBC_2.4 putpmsg F
+GLIBC_2.4 putpwent F
+GLIBC_2.4 puts F
+GLIBC_2.4 putspent F
+GLIBC_2.4 pututline F
+GLIBC_2.4 pututxline F
+GLIBC_2.4 putw F
+GLIBC_2.4 putwc F
+GLIBC_2.4 putwc_unlocked F
+GLIBC_2.4 putwchar F
+GLIBC_2.4 putwchar_unlocked F
+GLIBC_2.4 pvalloc F
+GLIBC_2.4 pwrite F
+GLIBC_2.4 pwrite64 F
+GLIBC_2.4 qecvt F
+GLIBC_2.4 qecvt_r F
+GLIBC_2.4 qfcvt F
+GLIBC_2.4 qfcvt_r F
+GLIBC_2.4 qgcvt F
+GLIBC_2.4 qsort F
+GLIBC_2.4 query_module F
+GLIBC_2.4 quotactl F
+GLIBC_2.4 raise F
+GLIBC_2.4 rand F
+GLIBC_2.4 rand_r F
+GLIBC_2.4 random F
+GLIBC_2.4 random_r F
+GLIBC_2.4 rawmemchr F
+GLIBC_2.4 rcmd F
+GLIBC_2.4 rcmd_af F
+GLIBC_2.4 re_comp F
+GLIBC_2.4 re_compile_fastmap F
+GLIBC_2.4 re_compile_pattern F
+GLIBC_2.4 re_exec F
+GLIBC_2.4 re_match F
+GLIBC_2.4 re_match_2 F
+GLIBC_2.4 re_search F
+GLIBC_2.4 re_search_2 F
+GLIBC_2.4 re_set_registers F
+GLIBC_2.4 re_set_syntax F
+GLIBC_2.4 re_syntax_options D 0x4
+GLIBC_2.4 read F
+GLIBC_2.4 readahead F
+GLIBC_2.4 readdir F
+GLIBC_2.4 readdir64 F
+GLIBC_2.4 readdir64_r F
+GLIBC_2.4 readdir_r F
+GLIBC_2.4 readlink F
+GLIBC_2.4 readlinkat F
+GLIBC_2.4 readv F
+GLIBC_2.4 realloc F
+GLIBC_2.4 realpath F
+GLIBC_2.4 reboot F
+GLIBC_2.4 recv F
+GLIBC_2.4 recvfrom F
+GLIBC_2.4 recvmsg F
+GLIBC_2.4 regcomp F
+GLIBC_2.4 regerror F
+GLIBC_2.4 regexec F
+GLIBC_2.4 regfree F
+GLIBC_2.4 register_printf_function F
+GLIBC_2.4 registerrpc F
+GLIBC_2.4 remap_file_pages F
+GLIBC_2.4 remove F
+GLIBC_2.4 removexattr F
+GLIBC_2.4 remque F
+GLIBC_2.4 rename F
+GLIBC_2.4 renameat F
+GLIBC_2.4 revoke F
+GLIBC_2.4 rewind F
+GLIBC_2.4 rewinddir F
+GLIBC_2.4 rexec F
+GLIBC_2.4 rexec_af F
+GLIBC_2.4 rexecoptions D 0x4
+GLIBC_2.4 rindex F
+GLIBC_2.4 rmdir F
+GLIBC_2.4 rpc_createerr D 0x10
+GLIBC_2.4 rpmatch F
+GLIBC_2.4 rresvport F
+GLIBC_2.4 rresvport_af F
+GLIBC_2.4 rtime F
+GLIBC_2.4 ruserok F
+GLIBC_2.4 ruserok_af F
+GLIBC_2.4 ruserpass F
+GLIBC_2.4 sbrk F
+GLIBC_2.4 scalbn F
+GLIBC_2.4 scalbnf F
+GLIBC_2.4 scalbnl F
+GLIBC_2.4 scandir F
+GLIBC_2.4 scandir64 F
+GLIBC_2.4 scanf F
+GLIBC_2.4 sched_get_priority_max F
+GLIBC_2.4 sched_get_priority_min F
+GLIBC_2.4 sched_getaffinity F
+GLIBC_2.4 sched_getparam F
+GLIBC_2.4 sched_getscheduler F
+GLIBC_2.4 sched_rr_get_interval F
+GLIBC_2.4 sched_setaffinity F
+GLIBC_2.4 sched_setparam F
+GLIBC_2.4 sched_setscheduler F
+GLIBC_2.4 sched_yield F
+GLIBC_2.4 seed48 F
+GLIBC_2.4 seed48_r F
+GLIBC_2.4 seekdir F
+GLIBC_2.4 select F
+GLIBC_2.4 semctl F
+GLIBC_2.4 semget F
+GLIBC_2.4 semop F
+GLIBC_2.4 semtimedop F
+GLIBC_2.4 send F
+GLIBC_2.4 sendfile F
+GLIBC_2.4 sendfile64 F
+GLIBC_2.4 sendmsg F
+GLIBC_2.4 sendto F
+GLIBC_2.4 setaliasent F
+GLIBC_2.4 setbuf F
+GLIBC_2.4 setbuffer F
+GLIBC_2.4 setcontext F
+GLIBC_2.4 setdomainname F
+GLIBC_2.4 setegid F
+GLIBC_2.4 setenv F
+GLIBC_2.4 seteuid F
+GLIBC_2.4 setfsent F
+GLIBC_2.4 setfsgid F
+GLIBC_2.4 setfsuid F
+GLIBC_2.4 setgid F
+GLIBC_2.4 setgrent F
+GLIBC_2.4 setgroups F
+GLIBC_2.4 sethostent F
+GLIBC_2.4 sethostid F
+GLIBC_2.4 sethostname F
+GLIBC_2.4 setipv4sourcefilter F
+GLIBC_2.4 setitimer F
+GLIBC_2.4 setjmp F
+GLIBC_2.4 setlinebuf F
+GLIBC_2.4 setlocale F
+GLIBC_2.4 setlogin F
+GLIBC_2.4 setlogmask F
+GLIBC_2.4 setmntent F
+GLIBC_2.4 setnetent F
+GLIBC_2.4 setnetgrent F
+GLIBC_2.4 setpgid F
+GLIBC_2.4 setpgrp F
+GLIBC_2.4 setpriority F
+GLIBC_2.4 setprotoent F
+GLIBC_2.4 setpwent F
+GLIBC_2.4 setregid F
+GLIBC_2.4 setresgid F
+GLIBC_2.4 setresuid F
+GLIBC_2.4 setreuid F
+GLIBC_2.4 setrlimit F
+GLIBC_2.4 setrlimit64 F
+GLIBC_2.4 setrpcent F
+GLIBC_2.4 setservent F
+GLIBC_2.4 setsid F
+GLIBC_2.4 setsockopt F
+GLIBC_2.4 setsourcefilter F
+GLIBC_2.4 setspent F
+GLIBC_2.4 setstate F
+GLIBC_2.4 setstate_r F
+GLIBC_2.4 settimeofday F
+GLIBC_2.4 setttyent F
+GLIBC_2.4 setuid F
+GLIBC_2.4 setusershell F
+GLIBC_2.4 setutent F
+GLIBC_2.4 setutxent F
+GLIBC_2.4 setvbuf F
+GLIBC_2.4 setxattr F
+GLIBC_2.4 sgetspent F
+GLIBC_2.4 sgetspent_r F
+GLIBC_2.4 shmat F
+GLIBC_2.4 shmctl F
+GLIBC_2.4 shmdt F
+GLIBC_2.4 shmget F
+GLIBC_2.4 shutdown F
+GLIBC_2.4 sigaction F
+GLIBC_2.4 sigaddset F
+GLIBC_2.4 sigaltstack F
+GLIBC_2.4 sigandset F
+GLIBC_2.4 sigblock F
+GLIBC_2.4 sigdelset F
+GLIBC_2.4 sigemptyset F
+GLIBC_2.4 sigfillset F
+GLIBC_2.4 siggetmask F
+GLIBC_2.4 sighold F
+GLIBC_2.4 sigignore F
+GLIBC_2.4 siginterrupt F
+GLIBC_2.4 sigisemptyset F
+GLIBC_2.4 sigismember F
+GLIBC_2.4 siglongjmp F
+GLIBC_2.4 signal F
+GLIBC_2.4 sigorset F
+GLIBC_2.4 sigpause F
+GLIBC_2.4 sigpending F
+GLIBC_2.4 sigprocmask F
+GLIBC_2.4 sigqueue F
+GLIBC_2.4 sigrelse F
+GLIBC_2.4 sigreturn F
+GLIBC_2.4 sigset F
+GLIBC_2.4 sigsetmask F
+GLIBC_2.4 sigstack F
+GLIBC_2.4 sigsuspend F
+GLIBC_2.4 sigtimedwait F
+GLIBC_2.4 sigvec F
+GLIBC_2.4 sigwait F
+GLIBC_2.4 sigwaitinfo F
+GLIBC_2.4 sleep F
+GLIBC_2.4 snprintf F
+GLIBC_2.4 sockatmark F
+GLIBC_2.4 socket F
+GLIBC_2.4 socketpair F
+GLIBC_2.4 sprintf F
+GLIBC_2.4 sprofil F
+GLIBC_2.4 srand F
+GLIBC_2.4 srand48 F
+GLIBC_2.4 srand48_r F
+GLIBC_2.4 srandom F
+GLIBC_2.4 srandom_r F
+GLIBC_2.4 sscanf F
+GLIBC_2.4 ssignal F
+GLIBC_2.4 sstk F
+GLIBC_2.4 statfs F
+GLIBC_2.4 statfs64 F
+GLIBC_2.4 statvfs F
+GLIBC_2.4 statvfs64 F
+GLIBC_2.4 stderr D 0x4
+GLIBC_2.4 stdin D 0x4
+GLIBC_2.4 stdout D 0x4
+GLIBC_2.4 step F
+GLIBC_2.4 stime F
+GLIBC_2.4 stpcpy F
+GLIBC_2.4 stpncpy F
+GLIBC_2.4 strcasecmp F
+GLIBC_2.4 strcasecmp_l F
+GLIBC_2.4 strcasestr F
+GLIBC_2.4 strcat F
+GLIBC_2.4 strchr F
+GLIBC_2.4 strchrnul F
+GLIBC_2.4 strcmp F
+GLIBC_2.4 strcoll F
+GLIBC_2.4 strcoll_l F
+GLIBC_2.4 strcpy F
+GLIBC_2.4 strcspn F
+GLIBC_2.4 strdup F
+GLIBC_2.4 strerror F
+GLIBC_2.4 strerror_r F
+GLIBC_2.4 strfmon F
+GLIBC_2.4 strfmon_l F
+GLIBC_2.4 strfry F
+GLIBC_2.4 strftime F
+GLIBC_2.4 strftime_l F
+GLIBC_2.4 strlen F
+GLIBC_2.4 strncasecmp F
+GLIBC_2.4 strncasecmp_l F
+GLIBC_2.4 strncat F
+GLIBC_2.4 strncmp F
+GLIBC_2.4 strncpy F
+GLIBC_2.4 strndup F
+GLIBC_2.4 strnlen F
+GLIBC_2.4 strpbrk F
+GLIBC_2.4 strptime F
+GLIBC_2.4 strptime_l F
+GLIBC_2.4 strrchr F
+GLIBC_2.4 strsep F
+GLIBC_2.4 strsignal F
+GLIBC_2.4 strspn F
+GLIBC_2.4 strstr F
+GLIBC_2.4 strtod F
+GLIBC_2.4 strtod_l F
+GLIBC_2.4 strtof F
+GLIBC_2.4 strtof_l F
+GLIBC_2.4 strtoimax F
+GLIBC_2.4 strtok F
+GLIBC_2.4 strtok_r F
+GLIBC_2.4 strtol F
+GLIBC_2.4 strtol_l F
+GLIBC_2.4 strtold F
+GLIBC_2.4 strtold_l F
+GLIBC_2.4 strtoll F
+GLIBC_2.4 strtoll_l F
+GLIBC_2.4 strtoq F
+GLIBC_2.4 strtoul F
+GLIBC_2.4 strtoul_l F
+GLIBC_2.4 strtoull F
+GLIBC_2.4 strtoull_l F
+GLIBC_2.4 strtoumax F
+GLIBC_2.4 strtouq F
+GLIBC_2.4 strverscmp F
+GLIBC_2.4 strxfrm F
+GLIBC_2.4 strxfrm_l F
+GLIBC_2.4 stty F
+GLIBC_2.4 svc_exit F
+GLIBC_2.4 svc_fdset D 0x80
+GLIBC_2.4 svc_getreq F
+GLIBC_2.4 svc_getreq_common F
+GLIBC_2.4 svc_getreq_poll F
+GLIBC_2.4 svc_getreqset F
+GLIBC_2.4 svc_max_pollfd D 0x4
+GLIBC_2.4 svc_pollfd D 0x4
+GLIBC_2.4 svc_register F
+GLIBC_2.4 svc_run F
+GLIBC_2.4 svc_sendreply F
+GLIBC_2.4 svc_unregister F
+GLIBC_2.4 svcauthdes_stats D 0xc
+GLIBC_2.4 svcerr_auth F
+GLIBC_2.4 svcerr_decode F
+GLIBC_2.4 svcerr_noproc F
+GLIBC_2.4 svcerr_noprog F
+GLIBC_2.4 svcerr_progvers F
+GLIBC_2.4 svcerr_systemerr F
+GLIBC_2.4 svcerr_weakauth F
+GLIBC_2.4 svcfd_create F
+GLIBC_2.4 svcraw_create F
+GLIBC_2.4 svctcp_create F
+GLIBC_2.4 svcudp_bufcreate F
+GLIBC_2.4 svcudp_create F
+GLIBC_2.4 svcudp_enablecache F
+GLIBC_2.4 svcunix_create F
+GLIBC_2.4 svcunixfd_create F
+GLIBC_2.4 swab F
+GLIBC_2.4 swapcontext F
+GLIBC_2.4 swapoff F
+GLIBC_2.4 swapon F
+GLIBC_2.4 swprintf F
+GLIBC_2.4 swscanf F
+GLIBC_2.4 symlink F
+GLIBC_2.4 symlinkat F
+GLIBC_2.4 sync F
+GLIBC_2.4 sys_errlist D 0x210
+GLIBC_2.4 sys_nerr D 0x4
+GLIBC_2.4 sys_sigabbrev D 0x104
+GLIBC_2.4 sys_siglist D 0x104
+GLIBC_2.4 syscall F
+GLIBC_2.4 sysconf F
+GLIBC_2.4 sysctl F
+GLIBC_2.4 sysinfo F
+GLIBC_2.4 syslog F
+GLIBC_2.4 system F
+GLIBC_2.4 sysv_signal F
+GLIBC_2.4 tcdrain F
+GLIBC_2.4 tcflow F
+GLIBC_2.4 tcflush F
+GLIBC_2.4 tcgetattr F
+GLIBC_2.4 tcgetpgrp F
+GLIBC_2.4 tcgetsid F
+GLIBC_2.4 tcsendbreak F
+GLIBC_2.4 tcsetattr F
+GLIBC_2.4 tcsetpgrp F
+GLIBC_2.4 tdelete F
+GLIBC_2.4 tdestroy F
+GLIBC_2.4 telldir F
+GLIBC_2.4 tempnam F
+GLIBC_2.4 textdomain F
+GLIBC_2.4 tfind F
+GLIBC_2.4 time F
+GLIBC_2.4 timegm F
+GLIBC_2.4 timelocal F
+GLIBC_2.4 times F
+GLIBC_2.4 timezone D 0x4
+GLIBC_2.4 tmpfile F
+GLIBC_2.4 tmpfile64 F
+GLIBC_2.4 tmpnam F
+GLIBC_2.4 tmpnam_r F
+GLIBC_2.4 toascii F
+GLIBC_2.4 tolower F
+GLIBC_2.4 tolower_l F
+GLIBC_2.4 toupper F
+GLIBC_2.4 toupper_l F
+GLIBC_2.4 towctrans F
+GLIBC_2.4 towctrans_l F
+GLIBC_2.4 towlower F
+GLIBC_2.4 towlower_l F
+GLIBC_2.4 towupper F
+GLIBC_2.4 towupper_l F
+GLIBC_2.4 tr_break F
+GLIBC_2.4 truncate F
+GLIBC_2.4 truncate64 F
+GLIBC_2.4 tsearch F
+GLIBC_2.4 ttyname F
+GLIBC_2.4 ttyname_r F
+GLIBC_2.4 ttyslot F
+GLIBC_2.4 twalk F
+GLIBC_2.4 tzname D 0x8
+GLIBC_2.4 tzset F
+GLIBC_2.4 ualarm F
+GLIBC_2.4 ulckpwdf F
+GLIBC_2.4 ulimit F
+GLIBC_2.4 umask F
+GLIBC_2.4 umount F
+GLIBC_2.4 umount2 F
+GLIBC_2.4 uname F
+GLIBC_2.4 ungetc F
+GLIBC_2.4 ungetwc F
+GLIBC_2.4 unlink F
+GLIBC_2.4 unlinkat F
+GLIBC_2.4 unlockpt F
+GLIBC_2.4 unsetenv F
+GLIBC_2.4 unshare F
+GLIBC_2.4 updwtmp F
+GLIBC_2.4 updwtmpx F
+GLIBC_2.4 uselib F
+GLIBC_2.4 uselocale F
+GLIBC_2.4 user2netname F
+GLIBC_2.4 usleep F
+GLIBC_2.4 ustat F
+GLIBC_2.4 utime F
+GLIBC_2.4 utimes F
+GLIBC_2.4 utmpname F
+GLIBC_2.4 utmpxname F
+GLIBC_2.4 valloc F
+GLIBC_2.4 vasprintf F
+GLIBC_2.4 vdprintf F
+GLIBC_2.4 verr F
+GLIBC_2.4 verrx F
+GLIBC_2.4 versionsort F
+GLIBC_2.4 versionsort64 F
+GLIBC_2.4 vfork F
+GLIBC_2.4 vfprintf F
+GLIBC_2.4 vfscanf F
+GLIBC_2.4 vfwprintf F
+GLIBC_2.4 vfwscanf F
+GLIBC_2.4 vhangup F
+GLIBC_2.4 vlimit F
+GLIBC_2.4 vprintf F
+GLIBC_2.4 vscanf F
+GLIBC_2.4 vsnprintf F
+GLIBC_2.4 vsprintf F
+GLIBC_2.4 vsscanf F
+GLIBC_2.4 vswprintf F
+GLIBC_2.4 vswscanf F
+GLIBC_2.4 vsyslog F
+GLIBC_2.4 vtimes F
+GLIBC_2.4 vwarn F
+GLIBC_2.4 vwarnx F
+GLIBC_2.4 vwprintf F
+GLIBC_2.4 vwscanf F
+GLIBC_2.4 wait F
+GLIBC_2.4 wait3 F
+GLIBC_2.4 wait4 F
+GLIBC_2.4 waitid F
+GLIBC_2.4 waitpid F
+GLIBC_2.4 warn F
+GLIBC_2.4 warnx F
+GLIBC_2.4 wcpcpy F
+GLIBC_2.4 wcpncpy F
+GLIBC_2.4 wcrtomb F
+GLIBC_2.4 wcscasecmp F
+GLIBC_2.4 wcscasecmp_l F
+GLIBC_2.4 wcscat F
+GLIBC_2.4 wcschr F
+GLIBC_2.4 wcschrnul F
+GLIBC_2.4 wcscmp F
+GLIBC_2.4 wcscoll F
+GLIBC_2.4 wcscoll_l F
+GLIBC_2.4 wcscpy F
+GLIBC_2.4 wcscspn F
+GLIBC_2.4 wcsdup F
+GLIBC_2.4 wcsftime F
+GLIBC_2.4 wcsftime_l F
+GLIBC_2.4 wcslen F
+GLIBC_2.4 wcsncasecmp F
+GLIBC_2.4 wcsncasecmp_l F
+GLIBC_2.4 wcsncat F
+GLIBC_2.4 wcsncmp F
+GLIBC_2.4 wcsncpy F
+GLIBC_2.4 wcsnlen F
+GLIBC_2.4 wcsnrtombs F
+GLIBC_2.4 wcspbrk F
+GLIBC_2.4 wcsrchr F
+GLIBC_2.4 wcsrtombs F
+GLIBC_2.4 wcsspn F
+GLIBC_2.4 wcsstr F
+GLIBC_2.4 wcstod F
+GLIBC_2.4 wcstod_l F
+GLIBC_2.4 wcstof F
+GLIBC_2.4 wcstof_l F
+GLIBC_2.4 wcstoimax F
+GLIBC_2.4 wcstok F
+GLIBC_2.4 wcstol F
+GLIBC_2.4 wcstol_l F
+GLIBC_2.4 wcstold F
+GLIBC_2.4 wcstold_l F
+GLIBC_2.4 wcstoll F
+GLIBC_2.4 wcstoll_l F
+GLIBC_2.4 wcstombs F
+GLIBC_2.4 wcstoq F
+GLIBC_2.4 wcstoul F
+GLIBC_2.4 wcstoul_l F
+GLIBC_2.4 wcstoull F
+GLIBC_2.4 wcstoull_l F
+GLIBC_2.4 wcstoumax F
+GLIBC_2.4 wcstouq F
+GLIBC_2.4 wcswcs F
+GLIBC_2.4 wcswidth F
+GLIBC_2.4 wcsxfrm F
+GLIBC_2.4 wcsxfrm_l F
+GLIBC_2.4 wctob F
+GLIBC_2.4 wctomb F
+GLIBC_2.4 wctrans F
+GLIBC_2.4 wctrans_l F
+GLIBC_2.4 wctype F
+GLIBC_2.4 wctype_l F
+GLIBC_2.4 wcwidth F
+GLIBC_2.4 wmemchr F
+GLIBC_2.4 wmemcmp F
+GLIBC_2.4 wmemcpy F
+GLIBC_2.4 wmemmove F
+GLIBC_2.4 wmempcpy F
+GLIBC_2.4 wmemset F
+GLIBC_2.4 wordexp F
+GLIBC_2.4 wordfree F
+GLIBC_2.4 wprintf F
+GLIBC_2.4 write F
+GLIBC_2.4 writev F
+GLIBC_2.4 wscanf F
+GLIBC_2.4 xdecrypt F
+GLIBC_2.4 xdr_accepted_reply F
+GLIBC_2.4 xdr_array F
+GLIBC_2.4 xdr_authdes_cred F
+GLIBC_2.4 xdr_authdes_verf F
+GLIBC_2.4 xdr_authunix_parms F
+GLIBC_2.4 xdr_bool F
+GLIBC_2.4 xdr_bytes F
+GLIBC_2.4 xdr_callhdr F
+GLIBC_2.4 xdr_callmsg F
+GLIBC_2.4 xdr_char F
+GLIBC_2.4 xdr_cryptkeyarg F
+GLIBC_2.4 xdr_cryptkeyarg2 F
+GLIBC_2.4 xdr_cryptkeyres F
+GLIBC_2.4 xdr_des_block F
+GLIBC_2.4 xdr_double F
+GLIBC_2.4 xdr_enum F
+GLIBC_2.4 xdr_float F
+GLIBC_2.4 xdr_free F
+GLIBC_2.4 xdr_getcredres F
+GLIBC_2.4 xdr_hyper F
+GLIBC_2.4 xdr_int F
+GLIBC_2.4 xdr_int16_t F
+GLIBC_2.4 xdr_int32_t F
+GLIBC_2.4 xdr_int64_t F
+GLIBC_2.4 xdr_int8_t F
+GLIBC_2.4 xdr_key_netstarg F
+GLIBC_2.4 xdr_key_netstres F
+GLIBC_2.4 xdr_keybuf F
+GLIBC_2.4 xdr_keystatus F
+GLIBC_2.4 xdr_long F
+GLIBC_2.4 xdr_longlong_t F
+GLIBC_2.4 xdr_netnamestr F
+GLIBC_2.4 xdr_netobj F
+GLIBC_2.4 xdr_opaque F
+GLIBC_2.4 xdr_opaque_auth F
+GLIBC_2.4 xdr_pmap F
+GLIBC_2.4 xdr_pmaplist F
+GLIBC_2.4 xdr_pointer F
+GLIBC_2.4 xdr_quad_t F
+GLIBC_2.4 xdr_reference F
+GLIBC_2.4 xdr_rejected_reply F
+GLIBC_2.4 xdr_replymsg F
+GLIBC_2.4 xdr_rmtcall_args F
+GLIBC_2.4 xdr_rmtcallres F
+GLIBC_2.4 xdr_short F
+GLIBC_2.4 xdr_sizeof F
+GLIBC_2.4 xdr_string F
+GLIBC_2.4 xdr_u_char F
+GLIBC_2.4 xdr_u_hyper F
+GLIBC_2.4 xdr_u_int F
+GLIBC_2.4 xdr_u_long F
+GLIBC_2.4 xdr_u_longlong_t F
+GLIBC_2.4 xdr_u_quad_t F
+GLIBC_2.4 xdr_u_short F
+GLIBC_2.4 xdr_uint16_t F
+GLIBC_2.4 xdr_uint32_t F
+GLIBC_2.4 xdr_uint64_t F
+GLIBC_2.4 xdr_uint8_t F
+GLIBC_2.4 xdr_union F
+GLIBC_2.4 xdr_unixcred F
+GLIBC_2.4 xdr_vector F
+GLIBC_2.4 xdr_void F
+GLIBC_2.4 xdr_wrapstring F
+GLIBC_2.4 xdrmem_create F
+GLIBC_2.4 xdrrec_create F
+GLIBC_2.4 xdrrec_endofrecord F
+GLIBC_2.4 xdrrec_eof F
+GLIBC_2.4 xdrrec_skiprecord F
+GLIBC_2.4 xdrstdio_create F
+GLIBC_2.4 xencrypt F
+GLIBC_2.4 xprt_register F
+GLIBC_2.4 xprt_unregister F
+GLIBC_2.5 __readlinkat_chk F
+GLIBC_2.5 inet6_opt_append F
+GLIBC_2.5 inet6_opt_find F
+GLIBC_2.5 inet6_opt_finish F
+GLIBC_2.5 inet6_opt_get_val F
+GLIBC_2.5 inet6_opt_init F
+GLIBC_2.5 inet6_opt_next F
+GLIBC_2.5 inet6_opt_set_val F
+GLIBC_2.5 inet6_rth_add F
+GLIBC_2.5 inet6_rth_getaddr F
+GLIBC_2.5 inet6_rth_init F
+GLIBC_2.5 inet6_rth_reverse F
+GLIBC_2.5 inet6_rth_segments F
+GLIBC_2.5 inet6_rth_space F
+GLIBC_2.5 splice F
+GLIBC_2.5 tee F
+GLIBC_2.5 vmsplice F
+GLIBC_2.6 __sched_cpucount F
+GLIBC_2.6 epoll_pwait F
+GLIBC_2.6 futimens F
+GLIBC_2.6 sched_getcpu F
+GLIBC_2.6 strerror_l F
+GLIBC_2.6 sync_file_range F
+GLIBC_2.6 utimensat F
+GLIBC_2.7 __fread_chk F
+GLIBC_2.7 __fread_unlocked_chk F
+GLIBC_2.7 __isoc99_fscanf F
+GLIBC_2.7 __isoc99_fwscanf F
+GLIBC_2.7 __isoc99_scanf F
+GLIBC_2.7 __isoc99_sscanf F
+GLIBC_2.7 __isoc99_swscanf F
+GLIBC_2.7 __isoc99_vfscanf F
+GLIBC_2.7 __isoc99_vfwscanf F
+GLIBC_2.7 __isoc99_vscanf F
+GLIBC_2.7 __isoc99_vsscanf F
+GLIBC_2.7 __isoc99_vswscanf F
+GLIBC_2.7 __isoc99_vwscanf F
+GLIBC_2.7 __isoc99_wscanf F
+GLIBC_2.7 __open64_2 F
+GLIBC_2.7 __open_2 F
+GLIBC_2.7 __openat64_2 F
+GLIBC_2.7 __openat_2 F
+GLIBC_2.7 __sched_cpualloc F
+GLIBC_2.7 __sched_cpufree F
+GLIBC_2.7 eventfd F
+GLIBC_2.7 eventfd_read F
+GLIBC_2.7 eventfd_write F
+GLIBC_2.7 mkostemp F
+GLIBC_2.7 mkostemp64 F
+GLIBC_2.7 signalfd F
+GLIBC_2.8 __asprintf_chk F
+GLIBC_2.8 __dprintf_chk F
+GLIBC_2.8 __gnu_mcount_nc F
+GLIBC_2.8 __obstack_printf_chk F
+GLIBC_2.8 __obstack_vprintf_chk F
+GLIBC_2.8 __vasprintf_chk F
+GLIBC_2.8 __vdprintf_chk F
+GLIBC_2.8 qsort_r F
+GLIBC_2.8 timerfd_create F
+GLIBC_2.8 timerfd_gettime F
+GLIBC_2.8 timerfd_settime F
+GLIBC_2.9 dup3 F
+GLIBC_2.9 epoll_create1 F
+GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libcrypt.abilist b/sysdeps/unix/sysv/linux/arm/le/libcrypt.abilist
new file mode 100644
index 0000000000..78a25b6df2
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/arm/le/libcrypt.abilist
@@ -0,0 +1,7 @@
+GLIBC_2.4 crypt F
+GLIBC_2.4 crypt_r F
+GLIBC_2.4 encrypt F
+GLIBC_2.4 encrypt_r F
+GLIBC_2.4 fcrypt F
+GLIBC_2.4 setkey F
+GLIBC_2.4 setkey_r F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libdl.abilist b/sysdeps/unix/sysv/linux/arm/le/libdl.abilist
new file mode 100644
index 0000000000..40132b1374
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/arm/le/libdl.abilist
@@ -0,0 +1,9 @@
+GLIBC_2.4 dladdr F
+GLIBC_2.4 dladdr1 F
+GLIBC_2.4 dlclose F
+GLIBC_2.4 dlerror F
+GLIBC_2.4 dlinfo F
+GLIBC_2.4 dlmopen F
+GLIBC_2.4 dlopen F
+GLIBC_2.4 dlsym F
+GLIBC_2.4 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libm.abilist b/sysdeps/unix/sysv/linux/arm/le/libm.abilist
new file mode 100644
index 0000000000..dd5931f288
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/arm/le/libm.abilist
@@ -0,0 +1,784 @@
+GLIBC_2.15 __acos_finite F
+GLIBC_2.15 __acosf_finite F
+GLIBC_2.15 __acosh_finite F
+GLIBC_2.15 __acoshf_finite F
+GLIBC_2.15 __asin_finite F
+GLIBC_2.15 __asinf_finite F
+GLIBC_2.15 __atan2_finite F
+GLIBC_2.15 __atan2f_finite F
+GLIBC_2.15 __atanh_finite F
+GLIBC_2.15 __atanhf_finite F
+GLIBC_2.15 __cosh_finite F
+GLIBC_2.15 __coshf_finite F
+GLIBC_2.15 __exp10_finite F
+GLIBC_2.15 __exp10f_finite F
+GLIBC_2.15 __exp2_finite F
+GLIBC_2.15 __exp2f_finite F
+GLIBC_2.15 __exp_finite F
+GLIBC_2.15 __expf_finite F
+GLIBC_2.15 __fmod_finite F
+GLIBC_2.15 __fmodf_finite F
+GLIBC_2.15 __gamma_r_finite F
+GLIBC_2.15 __gammaf_r_finite F
+GLIBC_2.15 __hypot_finite F
+GLIBC_2.15 __hypotf_finite F
+GLIBC_2.15 __j0_finite F
+GLIBC_2.15 __j0f_finite F
+GLIBC_2.15 __j1_finite F
+GLIBC_2.15 __j1f_finite F
+GLIBC_2.15 __jn_finite F
+GLIBC_2.15 __jnf_finite F
+GLIBC_2.15 __lgamma_r_finite F
+GLIBC_2.15 __lgammaf_r_finite F
+GLIBC_2.15 __log10_finite F
+GLIBC_2.15 __log10f_finite F
+GLIBC_2.15 __log2_finite F
+GLIBC_2.15 __log2f_finite F
+GLIBC_2.15 __log_finite F
+GLIBC_2.15 __logf_finite F
+GLIBC_2.15 __pow_finite F
+GLIBC_2.15 __powf_finite F
+GLIBC_2.15 __remainder_finite F
+GLIBC_2.15 __remainderf_finite F
+GLIBC_2.15 __scalb_finite F
+GLIBC_2.15 __scalbf_finite F
+GLIBC_2.15 __sinh_finite F
+GLIBC_2.15 __sinhf_finite F
+GLIBC_2.15 __sqrt_finite F
+GLIBC_2.15 __sqrtf_finite F
+GLIBC_2.15 __y0_finite F
+GLIBC_2.15 __y0f_finite F
+GLIBC_2.15 __y1_finite F
+GLIBC_2.15 __y1f_finite F
+GLIBC_2.15 __yn_finite F
+GLIBC_2.15 __ynf_finite F
+GLIBC_2.18 __issignaling F
+GLIBC_2.18 __issignalingf F
+GLIBC_2.23 __signgam D 0x4
+GLIBC_2.23 lgamma F
+GLIBC_2.23 lgammaf F
+GLIBC_2.23 lgammal F
+GLIBC_2.24 nextdown F
+GLIBC_2.24 nextdownf F
+GLIBC_2.24 nextdownl F
+GLIBC_2.24 nextup F
+GLIBC_2.24 nextupf F
+GLIBC_2.24 nextupl F
+GLIBC_2.25 __iseqsig F
+GLIBC_2.25 __iseqsigf F
+GLIBC_2.25 canonicalize F
+GLIBC_2.25 canonicalizef F
+GLIBC_2.25 canonicalizel F
+GLIBC_2.25 fegetmode F
+GLIBC_2.25 fesetexcept F
+GLIBC_2.25 fesetmode F
+GLIBC_2.25 fetestexceptflag F
+GLIBC_2.25 fmaxmag F
+GLIBC_2.25 fmaxmagf F
+GLIBC_2.25 fmaxmagl F
+GLIBC_2.25 fminmag F
+GLIBC_2.25 fminmagf F
+GLIBC_2.25 fminmagl F
+GLIBC_2.25 fromfp F
+GLIBC_2.25 fromfpf F
+GLIBC_2.25 fromfpl F
+GLIBC_2.25 fromfpx F
+GLIBC_2.25 fromfpxf F
+GLIBC_2.25 fromfpxl F
+GLIBC_2.25 getpayload F
+GLIBC_2.25 getpayloadf F
+GLIBC_2.25 getpayloadl F
+GLIBC_2.25 llogb F
+GLIBC_2.25 llogbf F
+GLIBC_2.25 llogbl F
+GLIBC_2.25 roundeven F
+GLIBC_2.25 roundevenf F
+GLIBC_2.25 roundevenl F
+GLIBC_2.25 setpayload F
+GLIBC_2.25 setpayloadf F
+GLIBC_2.25 setpayloadl F
+GLIBC_2.25 setpayloadsig F
+GLIBC_2.25 setpayloadsigf F
+GLIBC_2.25 setpayloadsigl F
+GLIBC_2.25 totalorder F
+GLIBC_2.25 totalorderf F
+GLIBC_2.25 totalorderl F
+GLIBC_2.25 totalordermag F
+GLIBC_2.25 totalordermagf F
+GLIBC_2.25 totalordermagl F
+GLIBC_2.25 ufromfp F
+GLIBC_2.25 ufromfpf F
+GLIBC_2.25 ufromfpl F
+GLIBC_2.25 ufromfpx F
+GLIBC_2.25 ufromfpxf F
+GLIBC_2.25 ufromfpxl F
+GLIBC_2.27 acosf32 F
+GLIBC_2.27 acosf32x F
+GLIBC_2.27 acosf64 F
+GLIBC_2.27 acoshf32 F
+GLIBC_2.27 acoshf32x F
+GLIBC_2.27 acoshf64 F
+GLIBC_2.27 asinf32 F
+GLIBC_2.27 asinf32x F
+GLIBC_2.27 asinf64 F
+GLIBC_2.27 asinhf32 F
+GLIBC_2.27 asinhf32x F
+GLIBC_2.27 asinhf64 F
+GLIBC_2.27 atan2f32 F
+GLIBC_2.27 atan2f32x F
+GLIBC_2.27 atan2f64 F
+GLIBC_2.27 atanf32 F
+GLIBC_2.27 atanf32x F
+GLIBC_2.27 atanf64 F
+GLIBC_2.27 atanhf32 F
+GLIBC_2.27 atanhf32x F
+GLIBC_2.27 atanhf64 F
+GLIBC_2.27 cabsf32 F
+GLIBC_2.27 cabsf32x F
+GLIBC_2.27 cabsf64 F
+GLIBC_2.27 cacosf32 F
+GLIBC_2.27 cacosf32x F
+GLIBC_2.27 cacosf64 F
+GLIBC_2.27 cacoshf32 F
+GLIBC_2.27 cacoshf32x F
+GLIBC_2.27 cacoshf64 F
+GLIBC_2.27 canonicalizef32 F
+GLIBC_2.27 canonicalizef32x F
+GLIBC_2.27 canonicalizef64 F
+GLIBC_2.27 cargf32 F
+GLIBC_2.27 cargf32x F
+GLIBC_2.27 cargf64 F
+GLIBC_2.27 casinf32 F
+GLIBC_2.27 casinf32x F
+GLIBC_2.27 casinf64 F
+GLIBC_2.27 casinhf32 F
+GLIBC_2.27 casinhf32x F
+GLIBC_2.27 casinhf64 F
+GLIBC_2.27 catanf32 F
+GLIBC_2.27 catanf32x F
+GLIBC_2.27 catanf64 F
+GLIBC_2.27 catanhf32 F
+GLIBC_2.27 catanhf32x F
+GLIBC_2.27 catanhf64 F
+GLIBC_2.27 cbrtf32 F
+GLIBC_2.27 cbrtf32x F
+GLIBC_2.27 cbrtf64 F
+GLIBC_2.27 ccosf32 F
+GLIBC_2.27 ccosf32x F
+GLIBC_2.27 ccosf64 F
+GLIBC_2.27 ccoshf32 F
+GLIBC_2.27 ccoshf32x F
+GLIBC_2.27 ccoshf64 F
+GLIBC_2.27 ceilf32 F
+GLIBC_2.27 ceilf32x F
+GLIBC_2.27 ceilf64 F
+GLIBC_2.27 cexpf32 F
+GLIBC_2.27 cexpf32x F
+GLIBC_2.27 cexpf64 F
+GLIBC_2.27 cimagf32 F
+GLIBC_2.27 cimagf32x F
+GLIBC_2.27 cimagf64 F
+GLIBC_2.27 clog10f32 F
+GLIBC_2.27 clog10f32x F
+GLIBC_2.27 clog10f64 F
+GLIBC_2.27 clogf32 F
+GLIBC_2.27 clogf32x F
+GLIBC_2.27 clogf64 F
+GLIBC_2.27 conjf32 F
+GLIBC_2.27 conjf32x F
+GLIBC_2.27 conjf64 F
+GLIBC_2.27 copysignf32 F
+GLIBC_2.27 copysignf32x F
+GLIBC_2.27 copysignf64 F
+GLIBC_2.27 cosf32 F
+GLIBC_2.27 cosf32x F
+GLIBC_2.27 cosf64 F
+GLIBC_2.27 coshf32 F
+GLIBC_2.27 coshf32x F
+GLIBC_2.27 coshf64 F
+GLIBC_2.27 cpowf32 F
+GLIBC_2.27 cpowf32x F
+GLIBC_2.27 cpowf64 F
+GLIBC_2.27 cprojf32 F
+GLIBC_2.27 cprojf32x F
+GLIBC_2.27 cprojf64 F
+GLIBC_2.27 crealf32 F
+GLIBC_2.27 crealf32x F
+GLIBC_2.27 crealf64 F
+GLIBC_2.27 csinf32 F
+GLIBC_2.27 csinf32x F
+GLIBC_2.27 csinf64 F
+GLIBC_2.27 csinhf32 F
+GLIBC_2.27 csinhf32x F
+GLIBC_2.27 csinhf64 F
+GLIBC_2.27 csqrtf32 F
+GLIBC_2.27 csqrtf32x F
+GLIBC_2.27 csqrtf64 F
+GLIBC_2.27 ctanf32 F
+GLIBC_2.27 ctanf32x F
+GLIBC_2.27 ctanf64 F
+GLIBC_2.27 ctanhf32 F
+GLIBC_2.27 ctanhf32x F
+GLIBC_2.27 ctanhf64 F
+GLIBC_2.27 erfcf32 F
+GLIBC_2.27 erfcf32x F
+GLIBC_2.27 erfcf64 F
+GLIBC_2.27 erff32 F
+GLIBC_2.27 erff32x F
+GLIBC_2.27 erff64 F
+GLIBC_2.27 exp10f32 F
+GLIBC_2.27 exp10f32x F
+GLIBC_2.27 exp10f64 F
+GLIBC_2.27 exp2f F
+GLIBC_2.27 exp2f32 F
+GLIBC_2.27 exp2f32x F
+GLIBC_2.27 exp2f64 F
+GLIBC_2.27 expf F
+GLIBC_2.27 expf32 F
+GLIBC_2.27 expf32x F
+GLIBC_2.27 expf64 F
+GLIBC_2.27 expm1f32 F
+GLIBC_2.27 expm1f32x F
+GLIBC_2.27 expm1f64 F
+GLIBC_2.27 fabsf32 F
+GLIBC_2.27 fabsf32x F
+GLIBC_2.27 fabsf64 F
+GLIBC_2.27 fdimf32 F
+GLIBC_2.27 fdimf32x F
+GLIBC_2.27 fdimf64 F
+GLIBC_2.27 floorf32 F
+GLIBC_2.27 floorf32x F
+GLIBC_2.27 floorf64 F
+GLIBC_2.27 fmaf32 F
+GLIBC_2.27 fmaf32x F
+GLIBC_2.27 fmaf64 F
+GLIBC_2.27 fmaxf32 F
+GLIBC_2.27 fmaxf32x F
+GLIBC_2.27 fmaxf64 F
+GLIBC_2.27 fmaxmagf32 F
+GLIBC_2.27 fmaxmagf32x F
+GLIBC_2.27 fmaxmagf64 F
+GLIBC_2.27 fminf32 F
+GLIBC_2.27 fminf32x F
+GLIBC_2.27 fminf64 F
+GLIBC_2.27 fminmagf32 F
+GLIBC_2.27 fminmagf32x F
+GLIBC_2.27 fminmagf64 F
+GLIBC_2.27 fmodf32 F
+GLIBC_2.27 fmodf32x F
+GLIBC_2.27 fmodf64 F
+GLIBC_2.27 frexpf32 F
+GLIBC_2.27 frexpf32x F
+GLIBC_2.27 frexpf64 F
+GLIBC_2.27 fromfpf32 F
+GLIBC_2.27 fromfpf32x F
+GLIBC_2.27 fromfpf64 F
+GLIBC_2.27 fromfpxf32 F
+GLIBC_2.27 fromfpxf32x F
+GLIBC_2.27 fromfpxf64 F
+GLIBC_2.27 getpayloadf32 F
+GLIBC_2.27 getpayloadf32x F
+GLIBC_2.27 getpayloadf64 F
+GLIBC_2.27 hypotf32 F
+GLIBC_2.27 hypotf32x F
+GLIBC_2.27 hypotf64 F
+GLIBC_2.27 ilogbf32 F
+GLIBC_2.27 ilogbf32x F
+GLIBC_2.27 ilogbf64 F
+GLIBC_2.27 j0f32 F
+GLIBC_2.27 j0f32x F
+GLIBC_2.27 j0f64 F
+GLIBC_2.27 j1f32 F
+GLIBC_2.27 j1f32x F
+GLIBC_2.27 j1f64 F
+GLIBC_2.27 jnf32 F
+GLIBC_2.27 jnf32x F
+GLIBC_2.27 jnf64 F
+GLIBC_2.27 ldexpf32 F
+GLIBC_2.27 ldexpf32x F
+GLIBC_2.27 ldexpf64 F
+GLIBC_2.27 lgammaf32 F
+GLIBC_2.27 lgammaf32_r F
+GLIBC_2.27 lgammaf32x F
+GLIBC_2.27 lgammaf32x_r F
+GLIBC_2.27 lgammaf64 F
+GLIBC_2.27 lgammaf64_r F
+GLIBC_2.27 llogbf32 F
+GLIBC_2.27 llogbf32x F
+GLIBC_2.27 llogbf64 F
+GLIBC_2.27 llrintf32 F
+GLIBC_2.27 llrintf32x F
+GLIBC_2.27 llrintf64 F
+GLIBC_2.27 llroundf32 F
+GLIBC_2.27 llroundf32x F
+GLIBC_2.27 llroundf64 F
+GLIBC_2.27 log10f32 F
+GLIBC_2.27 log10f32x F
+GLIBC_2.27 log10f64 F
+GLIBC_2.27 log1pf32 F
+GLIBC_2.27 log1pf32x F
+GLIBC_2.27 log1pf64 F
+GLIBC_2.27 log2f F
+GLIBC_2.27 log2f32 F
+GLIBC_2.27 log2f32x F
+GLIBC_2.27 log2f64 F
+GLIBC_2.27 logbf32 F
+GLIBC_2.27 logbf32x F
+GLIBC_2.27 logbf64 F
+GLIBC_2.27 logf F
+GLIBC_2.27 logf32 F
+GLIBC_2.27 logf32x F
+GLIBC_2.27 logf64 F
+GLIBC_2.27 lrintf32 F
+GLIBC_2.27 lrintf32x F
+GLIBC_2.27 lrintf64 F
+GLIBC_2.27 lroundf32 F
+GLIBC_2.27 lroundf32x F
+GLIBC_2.27 lroundf64 F
+GLIBC_2.27 modff32 F
+GLIBC_2.27 modff32x F
+GLIBC_2.27 modff64 F
+GLIBC_2.27 nanf32 F
+GLIBC_2.27 nanf32x F
+GLIBC_2.27 nanf64 F
+GLIBC_2.27 nearbyintf32 F
+GLIBC_2.27 nearbyintf32x F
+GLIBC_2.27 nearbyintf64 F
+GLIBC_2.27 nextafterf32 F
+GLIBC_2.27 nextafterf32x F
+GLIBC_2.27 nextafterf64 F
+GLIBC_2.27 nextdownf32 F
+GLIBC_2.27 nextdownf32x F
+GLIBC_2.27 nextdownf64 F
+GLIBC_2.27 nextupf32 F
+GLIBC_2.27 nextupf32x F
+GLIBC_2.27 nextupf64 F
+GLIBC_2.27 powf F
+GLIBC_2.27 powf32 F
+GLIBC_2.27 powf32x F
+GLIBC_2.27 powf64 F
+GLIBC_2.27 remainderf32 F
+GLIBC_2.27 remainderf32x F
+GLIBC_2.27 remainderf64 F
+GLIBC_2.27 remquof32 F
+GLIBC_2.27 remquof32x F
+GLIBC_2.27 remquof64 F
+GLIBC_2.27 rintf32 F
+GLIBC_2.27 rintf32x F
+GLIBC_2.27 rintf64 F
+GLIBC_2.27 roundevenf32 F
+GLIBC_2.27 roundevenf32x F
+GLIBC_2.27 roundevenf64 F
+GLIBC_2.27 roundf32 F
+GLIBC_2.27 roundf32x F
+GLIBC_2.27 roundf64 F
+GLIBC_2.27 scalblnf32 F
+GLIBC_2.27 scalblnf32x F
+GLIBC_2.27 scalblnf64 F
+GLIBC_2.27 scalbnf32 F
+GLIBC_2.27 scalbnf32x F
+GLIBC_2.27 scalbnf64 F
+GLIBC_2.27 setpayloadf32 F
+GLIBC_2.27 setpayloadf32x F
+GLIBC_2.27 setpayloadf64 F
+GLIBC_2.27 setpayloadsigf32 F
+GLIBC_2.27 setpayloadsigf32x F
+GLIBC_2.27 setpayloadsigf64 F
+GLIBC_2.27 sincosf32 F
+GLIBC_2.27 sincosf32x F
+GLIBC_2.27 sincosf64 F
+GLIBC_2.27 sinf32 F
+GLIBC_2.27 sinf32x F
+GLIBC_2.27 sinf64 F
+GLIBC_2.27 sinhf32 F
+GLIBC_2.27 sinhf32x F
+GLIBC_2.27 sinhf64 F
+GLIBC_2.27 sqrtf32 F
+GLIBC_2.27 sqrtf32x F
+GLIBC_2.27 sqrtf64 F
+GLIBC_2.27 tanf32 F
+GLIBC_2.27 tanf32x F
+GLIBC_2.27 tanf64 F
+GLIBC_2.27 tanhf32 F
+GLIBC_2.27 tanhf32x F
+GLIBC_2.27 tanhf64 F
+GLIBC_2.27 tgammaf32 F
+GLIBC_2.27 tgammaf32x F
+GLIBC_2.27 tgammaf64 F
+GLIBC_2.27 totalorderf32 F
+GLIBC_2.27 totalorderf32x F
+GLIBC_2.27 totalorderf64 F
+GLIBC_2.27 totalordermagf32 F
+GLIBC_2.27 totalordermagf32x F
+GLIBC_2.27 totalordermagf64 F
+GLIBC_2.27 truncf32 F
+GLIBC_2.27 truncf32x F
+GLIBC_2.27 truncf64 F
+GLIBC_2.27 ufromfpf32 F
+GLIBC_2.27 ufromfpf32x F
+GLIBC_2.27 ufromfpf64 F
+GLIBC_2.27 ufromfpxf32 F
+GLIBC_2.27 ufromfpxf32x F
+GLIBC_2.27 ufromfpxf64 F
+GLIBC_2.27 y0f32 F
+GLIBC_2.27 y0f32x F
+GLIBC_2.27 y0f64 F
+GLIBC_2.27 y1f32 F
+GLIBC_2.27 y1f32x F
+GLIBC_2.27 y1f64 F
+GLIBC_2.27 ynf32 F
+GLIBC_2.27 ynf32x F
+GLIBC_2.27 ynf64 F
+GLIBC_2.28 daddl F
+GLIBC_2.28 ddivl F
+GLIBC_2.28 dmull F
+GLIBC_2.28 dsubl F
+GLIBC_2.28 f32addf32x F
+GLIBC_2.28 f32addf64 F
+GLIBC_2.28 f32divf32x F
+GLIBC_2.28 f32divf64 F
+GLIBC_2.28 f32mulf32x F
+GLIBC_2.28 f32mulf64 F
+GLIBC_2.28 f32subf32x F
+GLIBC_2.28 f32subf64 F
+GLIBC_2.28 f32xaddf64 F
+GLIBC_2.28 f32xdivf64 F
+GLIBC_2.28 f32xmulf64 F
+GLIBC_2.28 f32xsubf64 F
+GLIBC_2.28 fadd F
+GLIBC_2.28 faddl F
+GLIBC_2.28 fdiv F
+GLIBC_2.28 fdivl F
+GLIBC_2.28 fmul F
+GLIBC_2.28 fmull F
+GLIBC_2.28 fsub F
+GLIBC_2.28 fsubl F
+GLIBC_2.29 exp F
+GLIBC_2.29 exp2 F
+GLIBC_2.29 log F
+GLIBC_2.29 log2 F
+GLIBC_2.29 pow F
+GLIBC_2.31 totalorder F
+GLIBC_2.31 totalorderf F
+GLIBC_2.31 totalorderf32 F
+GLIBC_2.31 totalorderf32x F
+GLIBC_2.31 totalorderf64 F
+GLIBC_2.31 totalorderl F
+GLIBC_2.31 totalordermag F
+GLIBC_2.31 totalordermagf F
+GLIBC_2.31 totalordermagf32 F
+GLIBC_2.31 totalordermagf32x F
+GLIBC_2.31 totalordermagf64 F
+GLIBC_2.31 totalordermagl F
+GLIBC_2.4 _LIB_VERSION D 0x4
+GLIBC_2.4 __clog10 F
+GLIBC_2.4 __clog10f F
+GLIBC_2.4 __clog10l F
+GLIBC_2.4 __finite F
+GLIBC_2.4 __finitef F
+GLIBC_2.4 __finitel F
+GLIBC_2.4 __fpclassify F
+GLIBC_2.4 __fpclassifyf F
+GLIBC_2.4 __signbit F
+GLIBC_2.4 __signbitf F
+GLIBC_2.4 acos F
+GLIBC_2.4 acosf F
+GLIBC_2.4 acosh F
+GLIBC_2.4 acoshf F
+GLIBC_2.4 acoshl F
+GLIBC_2.4 acosl F
+GLIBC_2.4 asin F
+GLIBC_2.4 asinf F
+GLIBC_2.4 asinh F
+GLIBC_2.4 asinhf F
+GLIBC_2.4 asinhl F
+GLIBC_2.4 asinl F
+GLIBC_2.4 atan F
+GLIBC_2.4 atan2 F
+GLIBC_2.4 atan2f F
+GLIBC_2.4 atan2l F
+GLIBC_2.4 atanf F
+GLIBC_2.4 atanh F
+GLIBC_2.4 atanhf F
+GLIBC_2.4 atanhl F
+GLIBC_2.4 atanl F
+GLIBC_2.4 cabs F
+GLIBC_2.4 cabsf F
+GLIBC_2.4 cabsl F
+GLIBC_2.4 cacos F
+GLIBC_2.4 cacosf F
+GLIBC_2.4 cacosh F
+GLIBC_2.4 cacoshf F
+GLIBC_2.4 cacoshl F
+GLIBC_2.4 cacosl F
+GLIBC_2.4 carg F
+GLIBC_2.4 cargf F
+GLIBC_2.4 cargl F
+GLIBC_2.4 casin F
+GLIBC_2.4 casinf F
+GLIBC_2.4 casinh F
+GLIBC_2.4 casinhf F
+GLIBC_2.4 casinhl F
+GLIBC_2.4 casinl F
+GLIBC_2.4 catan F
+GLIBC_2.4 catanf F
+GLIBC_2.4 catanh F
+GLIBC_2.4 catanhf F
+GLIBC_2.4 catanhl F
+GLIBC_2.4 catanl F
+GLIBC_2.4 cbrt F
+GLIBC_2.4 cbrtf F
+GLIBC_2.4 cbrtl F
+GLIBC_2.4 ccos F
+GLIBC_2.4 ccosf F
+GLIBC_2.4 ccosh F
+GLIBC_2.4 ccoshf F
+GLIBC_2.4 ccoshl F
+GLIBC_2.4 ccosl F
+GLIBC_2.4 ceil F
+GLIBC_2.4 ceilf F
+GLIBC_2.4 ceill F
+GLIBC_2.4 cexp F
+GLIBC_2.4 cexpf F
+GLIBC_2.4 cexpl F
+GLIBC_2.4 cimag F
+GLIBC_2.4 cimagf F
+GLIBC_2.4 cimagl F
+GLIBC_2.4 clog F
+GLIBC_2.4 clog10 F
+GLIBC_2.4 clog10f F
+GLIBC_2.4 clog10l F
+GLIBC_2.4 clogf F
+GLIBC_2.4 clogl F
+GLIBC_2.4 conj F
+GLIBC_2.4 conjf F
+GLIBC_2.4 conjl F
+GLIBC_2.4 copysign F
+GLIBC_2.4 copysignf F
+GLIBC_2.4 copysignl F
+GLIBC_2.4 cos F
+GLIBC_2.4 cosf F
+GLIBC_2.4 cosh F
+GLIBC_2.4 coshf F
+GLIBC_2.4 coshl F
+GLIBC_2.4 cosl F
+GLIBC_2.4 cpow F
+GLIBC_2.4 cpowf F
+GLIBC_2.4 cpowl F
+GLIBC_2.4 cproj F
+GLIBC_2.4 cprojf F
+GLIBC_2.4 cprojl F
+GLIBC_2.4 creal F
+GLIBC_2.4 crealf F
+GLIBC_2.4 creall F
+GLIBC_2.4 csin F
+GLIBC_2.4 csinf F
+GLIBC_2.4 csinh F
+GLIBC_2.4 csinhf F
+GLIBC_2.4 csinhl F
+GLIBC_2.4 csinl F
+GLIBC_2.4 csqrt F
+GLIBC_2.4 csqrtf F
+GLIBC_2.4 csqrtl F
+GLIBC_2.4 ctan F
+GLIBC_2.4 ctanf F
+GLIBC_2.4 ctanh F
+GLIBC_2.4 ctanhf F
+GLIBC_2.4 ctanhl F
+GLIBC_2.4 ctanl F
+GLIBC_2.4 drem F
+GLIBC_2.4 dremf F
+GLIBC_2.4 dreml F
+GLIBC_2.4 erf F
+GLIBC_2.4 erfc F
+GLIBC_2.4 erfcf F
+GLIBC_2.4 erfcl F
+GLIBC_2.4 erff F
+GLIBC_2.4 erfl F
+GLIBC_2.4 exp F
+GLIBC_2.4 exp10 F
+GLIBC_2.4 exp10f F
+GLIBC_2.4 exp10l F
+GLIBC_2.4 exp2 F
+GLIBC_2.4 exp2f F
+GLIBC_2.4 exp2l F
+GLIBC_2.4 expf F
+GLIBC_2.4 expl F
+GLIBC_2.4 expm1 F
+GLIBC_2.4 expm1f F
+GLIBC_2.4 expm1l F
+GLIBC_2.4 fabs F
+GLIBC_2.4 fabsf F
+GLIBC_2.4 fabsl F
+GLIBC_2.4 fdim F
+GLIBC_2.4 fdimf F
+GLIBC_2.4 fdiml F
+GLIBC_2.4 feclearexcept F
+GLIBC_2.4 fedisableexcept F
+GLIBC_2.4 feenableexcept F
+GLIBC_2.4 fegetenv F
+GLIBC_2.4 fegetexcept F
+GLIBC_2.4 fegetexceptflag F
+GLIBC_2.4 fegetround F
+GLIBC_2.4 feholdexcept F
+GLIBC_2.4 feraiseexcept F
+GLIBC_2.4 fesetenv F
+GLIBC_2.4 fesetexceptflag F
+GLIBC_2.4 fesetround F
+GLIBC_2.4 fetestexcept F
+GLIBC_2.4 feupdateenv F
+GLIBC_2.4 finite F
+GLIBC_2.4 finitef F
+GLIBC_2.4 finitel F
+GLIBC_2.4 floor F
+GLIBC_2.4 floorf F
+GLIBC_2.4 floorl F
+GLIBC_2.4 fma F
+GLIBC_2.4 fmaf F
+GLIBC_2.4 fmal F
+GLIBC_2.4 fmax F
+GLIBC_2.4 fmaxf F
+GLIBC_2.4 fmaxl F
+GLIBC_2.4 fmin F
+GLIBC_2.4 fminf F
+GLIBC_2.4 fminl F
+GLIBC_2.4 fmod F
+GLIBC_2.4 fmodf F
+GLIBC_2.4 fmodl F
+GLIBC_2.4 frexp F
+GLIBC_2.4 frexpf F
+GLIBC_2.4 frexpl F
+GLIBC_2.4 gamma F
+GLIBC_2.4 gammaf F
+GLIBC_2.4 gammal F
+GLIBC_2.4 hypot F
+GLIBC_2.4 hypotf F
+GLIBC_2.4 hypotl F
+GLIBC_2.4 ilogb F
+GLIBC_2.4 ilogbf F
+GLIBC_2.4 ilogbl F
+GLIBC_2.4 j0 F
+GLIBC_2.4 j0f F
+GLIBC_2.4 j0l F
+GLIBC_2.4 j1 F
+GLIBC_2.4 j1f F
+GLIBC_2.4 j1l F
+GLIBC_2.4 jn F
+GLIBC_2.4 jnf F
+GLIBC_2.4 jnl F
+GLIBC_2.4 ldexp F
+GLIBC_2.4 ldexpf F
+GLIBC_2.4 ldexpl F
+GLIBC_2.4 lgamma F
+GLIBC_2.4 lgamma_r F
+GLIBC_2.4 lgammaf F
+GLIBC_2.4 lgammaf_r F
+GLIBC_2.4 lgammal F
+GLIBC_2.4 lgammal_r F
+GLIBC_2.4 llrint F
+GLIBC_2.4 llrintf F
+GLIBC_2.4 llrintl F
+GLIBC_2.4 llround F
+GLIBC_2.4 llroundf F
+GLIBC_2.4 llroundl F
+GLIBC_2.4 log F
+GLIBC_2.4 log10 F
+GLIBC_2.4 log10f F
+GLIBC_2.4 log10l F
+GLIBC_2.4 log1p F
+GLIBC_2.4 log1pf F
+GLIBC_2.4 log1pl F
+GLIBC_2.4 log2 F
+GLIBC_2.4 log2f F
+GLIBC_2.4 log2l F
+GLIBC_2.4 logb F
+GLIBC_2.4 logbf F
+GLIBC_2.4 logbl F
+GLIBC_2.4 logf F
+GLIBC_2.4 logl F
+GLIBC_2.4 lrint F
+GLIBC_2.4 lrintf F
+GLIBC_2.4 lrintl F
+GLIBC_2.4 lround F
+GLIBC_2.4 lroundf F
+GLIBC_2.4 lroundl F
+GLIBC_2.4 matherr F
+GLIBC_2.4 modf F
+GLIBC_2.4 modff F
+GLIBC_2.4 modfl F
+GLIBC_2.4 nan F
+GLIBC_2.4 nanf F
+GLIBC_2.4 nanl F
+GLIBC_2.4 nearbyint F
+GLIBC_2.4 nearbyintf F
+GLIBC_2.4 nearbyintl F
+GLIBC_2.4 nextafter F
+GLIBC_2.4 nextafterf F
+GLIBC_2.4 nextafterl F
+GLIBC_2.4 nexttoward F
+GLIBC_2.4 nexttowardf F
+GLIBC_2.4 nexttowardl F
+GLIBC_2.4 pow F
+GLIBC_2.4 pow10 F
+GLIBC_2.4 pow10f F
+GLIBC_2.4 pow10l F
+GLIBC_2.4 powf F
+GLIBC_2.4 powl F
+GLIBC_2.4 remainder F
+GLIBC_2.4 remainderf F
+GLIBC_2.4 remainderl F
+GLIBC_2.4 remquo F
+GLIBC_2.4 remquof F
+GLIBC_2.4 remquol F
+GLIBC_2.4 rint F
+GLIBC_2.4 rintf F
+GLIBC_2.4 rintl F
+GLIBC_2.4 round F
+GLIBC_2.4 roundf F
+GLIBC_2.4 roundl F
+GLIBC_2.4 scalb F
+GLIBC_2.4 scalbf F
+GLIBC_2.4 scalbl F
+GLIBC_2.4 scalbln F
+GLIBC_2.4 scalblnf F
+GLIBC_2.4 scalblnl F
+GLIBC_2.4 scalbn F
+GLIBC_2.4 scalbnf F
+GLIBC_2.4 scalbnl F
+GLIBC_2.4 signgam D 0x4
+GLIBC_2.4 significand F
+GLIBC_2.4 significandf F
+GLIBC_2.4 significandl F
+GLIBC_2.4 sin F
+GLIBC_2.4 sincos F
+GLIBC_2.4 sincosf F
+GLIBC_2.4 sincosl F
+GLIBC_2.4 sinf F
+GLIBC_2.4 sinh F
+GLIBC_2.4 sinhf F
+GLIBC_2.4 sinhl F
+GLIBC_2.4 sinl F
+GLIBC_2.4 sqrt F
+GLIBC_2.4 sqrtf F
+GLIBC_2.4 sqrtl F
+GLIBC_2.4 tan F
+GLIBC_2.4 tanf F
+GLIBC_2.4 tanh F
+GLIBC_2.4 tanhf F
+GLIBC_2.4 tanhl F
+GLIBC_2.4 tanl F
+GLIBC_2.4 tgamma F
+GLIBC_2.4 tgammaf F
+GLIBC_2.4 tgammal F
+GLIBC_2.4 trunc F
+GLIBC_2.4 truncf F
+GLIBC_2.4 truncl F
+GLIBC_2.4 y0 F
+GLIBC_2.4 y0f F
+GLIBC_2.4 y0l F
+GLIBC_2.4 y1 F
+GLIBC_2.4 y1f F
+GLIBC_2.4 y1l F
+GLIBC_2.4 yn F
+GLIBC_2.4 ynf F
+GLIBC_2.4 ynl F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libnsl.abilist b/sysdeps/unix/sysv/linux/arm/le/libnsl.abilist
new file mode 100644
index 0000000000..a005a75181
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/arm/le/libnsl.abilist
@@ -0,0 +1,121 @@
+GLIBC_2.4 __free_fdresult F
+GLIBC_2.4 __nis_default_access F
+GLIBC_2.4 __nis_default_group F
+GLIBC_2.4 __nis_default_owner F
+GLIBC_2.4 __nis_default_ttl F
+GLIBC_2.4 __nis_finddirectory F
+GLIBC_2.4 __nis_hash F
+GLIBC_2.4 __nisbind_connect F
+GLIBC_2.4 __nisbind_create F
+GLIBC_2.4 __nisbind_destroy F
+GLIBC_2.4 __nisbind_next F
+GLIBC_2.4 __yp_check F
+GLIBC_2.4 nis_add F
+GLIBC_2.4 nis_add_entry F
+GLIBC_2.4 nis_addmember F
+GLIBC_2.4 nis_checkpoint F
+GLIBC_2.4 nis_clone_directory F
+GLIBC_2.4 nis_clone_object F
+GLIBC_2.4 nis_clone_result F
+GLIBC_2.4 nis_creategroup F
+GLIBC_2.4 nis_destroy_object F
+GLIBC_2.4 nis_destroygroup F
+GLIBC_2.4 nis_dir_cmp F
+GLIBC_2.4 nis_domain_of F
+GLIBC_2.4 nis_domain_of_r F
+GLIBC_2.4 nis_first_entry F
+GLIBC_2.4 nis_free_directory F
+GLIBC_2.4 nis_free_object F
+GLIBC_2.4 nis_free_request F
+GLIBC_2.4 nis_freenames F
+GLIBC_2.4 nis_freeresult F
+GLIBC_2.4 nis_freeservlist F
+GLIBC_2.4 nis_freetags F
+GLIBC_2.4 nis_getnames F
+GLIBC_2.4 nis_getservlist F
+GLIBC_2.4 nis_ismember F
+GLIBC_2.4 nis_leaf_of F
+GLIBC_2.4 nis_leaf_of_r F
+GLIBC_2.4 nis_lerror F
+GLIBC_2.4 nis_list F
+GLIBC_2.4 nis_local_directory F
+GLIBC_2.4 nis_local_group F
+GLIBC_2.4 nis_local_host F
+GLIBC_2.4 nis_local_principal F
+GLIBC_2.4 nis_lookup F
+GLIBC_2.4 nis_mkdir F
+GLIBC_2.4 nis_modify F
+GLIBC_2.4 nis_modify_entry F
+GLIBC_2.4 nis_name_of F
+GLIBC_2.4 nis_name_of_r F
+GLIBC_2.4 nis_next_entry F
+GLIBC_2.4 nis_perror F
+GLIBC_2.4 nis_ping F
+GLIBC_2.4 nis_print_directory F
+GLIBC_2.4 nis_print_entry F
+GLIBC_2.4 nis_print_group F
+GLIBC_2.4 nis_print_group_entry F
+GLIBC_2.4 nis_print_link F
+GLIBC_2.4 nis_print_object F
+GLIBC_2.4 nis_print_result F
+GLIBC_2.4 nis_print_rights F
+GLIBC_2.4 nis_print_table F
+GLIBC_2.4 nis_read_obj F
+GLIBC_2.4 nis_remove F
+GLIBC_2.4 nis_remove_entry F
+GLIBC_2.4 nis_removemember F
+GLIBC_2.4 nis_rmdir F
+GLIBC_2.4 nis_servstate F
+GLIBC_2.4 nis_sperrno F
+GLIBC_2.4 nis_sperror F
+GLIBC_2.4 nis_sperror_r F
+GLIBC_2.4 nis_stats F
+GLIBC_2.4 nis_verifygroup F
+GLIBC_2.4 nis_write_obj F
+GLIBC_2.4 readColdStartFile F
+GLIBC_2.4 writeColdStartFile F
+GLIBC_2.4 xdr_cback_data F
+GLIBC_2.4 xdr_domainname F
+GLIBC_2.4 xdr_keydat F
+GLIBC_2.4 xdr_mapname F
+GLIBC_2.4 xdr_obj_p F
+GLIBC_2.4 xdr_peername F
+GLIBC_2.4 xdr_valdat F
+GLIBC_2.4 xdr_yp_buf F
+GLIBC_2.4 xdr_ypall F
+GLIBC_2.4 xdr_ypbind_binding F
+GLIBC_2.4 xdr_ypbind_resp F
+GLIBC_2.4 xdr_ypbind_resptype F
+GLIBC_2.4 xdr_ypbind_setdom F
+GLIBC_2.4 xdr_ypdelete_args F
+GLIBC_2.4 xdr_ypmap_parms F
+GLIBC_2.4 xdr_ypmaplist F
+GLIBC_2.4 xdr_yppush_status F
+GLIBC_2.4 xdr_yppushresp_xfr F
+GLIBC_2.4 xdr_ypreq_key F
+GLIBC_2.4 xdr_ypreq_nokey F
+GLIBC_2.4 xdr_ypreq_xfr F
+GLIBC_2.4 xdr_ypresp_all F
+GLIBC_2.4 xdr_ypresp_key_val F
+GLIBC_2.4 xdr_ypresp_maplist F
+GLIBC_2.4 xdr_ypresp_master F
+GLIBC_2.4 xdr_ypresp_order F
+GLIBC_2.4 xdr_ypresp_val F
+GLIBC_2.4 xdr_ypresp_xfr F
+GLIBC_2.4 xdr_ypstat F
+GLIBC_2.4 xdr_ypupdate_args F
+GLIBC_2.4 xdr_ypxfrstat F
+GLIBC_2.4 yp_all F
+GLIBC_2.4 yp_bind F
+GLIBC_2.4 yp_first F
+GLIBC_2.4 yp_get_default_domain F
+GLIBC_2.4 yp_maplist F
+GLIBC_2.4 yp_master F
+GLIBC_2.4 yp_match F
+GLIBC_2.4 yp_next F
+GLIBC_2.4 yp_order F
+GLIBC_2.4 yp_unbind F
+GLIBC_2.4 yp_update F
+GLIBC_2.4 ypbinderr_string F
+GLIBC_2.4 yperr_string F
+GLIBC_2.4 ypprot_err F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
new file mode 100644
index 0000000000..c5b7aeb7c4
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
@@ -0,0 +1,237 @@
+GLIBC_2.11 pthread_sigqueue F
+GLIBC_2.12 pthread_getname_np F
+GLIBC_2.12 pthread_mutex_consistent F
+GLIBC_2.12 pthread_mutexattr_getrobust F
+GLIBC_2.12 pthread_mutexattr_setrobust F
+GLIBC_2.12 pthread_setname_np F
+GLIBC_2.18 pthread_getattr_default_np F
+GLIBC_2.18 pthread_setattr_default_np F
+GLIBC_2.28 call_once F
+GLIBC_2.28 cnd_broadcast F
+GLIBC_2.28 cnd_destroy F
+GLIBC_2.28 cnd_init F
+GLIBC_2.28 cnd_signal F
+GLIBC_2.28 cnd_timedwait F
+GLIBC_2.28 cnd_wait F
+GLIBC_2.28 mtx_destroy F
+GLIBC_2.28 mtx_init F
+GLIBC_2.28 mtx_lock F
+GLIBC_2.28 mtx_timedlock F
+GLIBC_2.28 mtx_trylock F
+GLIBC_2.28 mtx_unlock F
+GLIBC_2.28 thrd_create F
+GLIBC_2.28 thrd_detach F
+GLIBC_2.28 thrd_exit F
+GLIBC_2.28 thrd_join F
+GLIBC_2.28 tss_create F
+GLIBC_2.28 tss_delete F
+GLIBC_2.28 tss_get F
+GLIBC_2.28 tss_set F
+GLIBC_2.30 pthread_cond_clockwait F
+GLIBC_2.30 pthread_mutex_clocklock F
+GLIBC_2.30 pthread_rwlock_clockrdlock F
+GLIBC_2.30 pthread_rwlock_clockwrlock F
+GLIBC_2.30 sem_clockwait F
+GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.4 _IO_flockfile F
+GLIBC_2.4 _IO_ftrylockfile F
+GLIBC_2.4 _IO_funlockfile F
+GLIBC_2.4 __close F
+GLIBC_2.4 __connect F
+GLIBC_2.4 __errno_location F
+GLIBC_2.4 __fcntl F
+GLIBC_2.4 __fork F
+GLIBC_2.4 __h_errno_location F
+GLIBC_2.4 __libc_allocate_rtsig F
+GLIBC_2.4 __libc_current_sigrtmax F
+GLIBC_2.4 __libc_current_sigrtmin F
+GLIBC_2.4 __lseek F
+GLIBC_2.4 __open F
+GLIBC_2.4 __open64 F
+GLIBC_2.4 __pread64 F
+GLIBC_2.4 __pthread_cleanup_routine F
+GLIBC_2.4 __pthread_getspecific F
+GLIBC_2.4 __pthread_key_create F
+GLIBC_2.4 __pthread_mutex_destroy F
+GLIBC_2.4 __pthread_mutex_init F
+GLIBC_2.4 __pthread_mutex_lock F
+GLIBC_2.4 __pthread_mutex_trylock F
+GLIBC_2.4 __pthread_mutex_unlock F
+GLIBC_2.4 __pthread_mutexattr_destroy F
+GLIBC_2.4 __pthread_mutexattr_init F
+GLIBC_2.4 __pthread_mutexattr_settype F
+GLIBC_2.4 __pthread_once F
+GLIBC_2.4 __pthread_register_cancel F
+GLIBC_2.4 __pthread_register_cancel_defer F
+GLIBC_2.4 __pthread_rwlock_destroy F
+GLIBC_2.4 __pthread_rwlock_init F
+GLIBC_2.4 __pthread_rwlock_rdlock F
+GLIBC_2.4 __pthread_rwlock_tryrdlock F
+GLIBC_2.4 __pthread_rwlock_trywrlock F
+GLIBC_2.4 __pthread_rwlock_unlock F
+GLIBC_2.4 __pthread_rwlock_wrlock F
+GLIBC_2.4 __pthread_setspecific F
+GLIBC_2.4 __pthread_unregister_cancel F
+GLIBC_2.4 __pthread_unregister_cancel_restore F
+GLIBC_2.4 __pthread_unwind_next F
+GLIBC_2.4 __pwrite64 F
+GLIBC_2.4 __read F
+GLIBC_2.4 __res_state F
+GLIBC_2.4 __send F
+GLIBC_2.4 __sigaction F
+GLIBC_2.4 __wait F
+GLIBC_2.4 __write F
+GLIBC_2.4 _pthread_cleanup_pop F
+GLIBC_2.4 _pthread_cleanup_pop_restore F
+GLIBC_2.4 _pthread_cleanup_push F
+GLIBC_2.4 _pthread_cleanup_push_defer F
+GLIBC_2.4 accept F
+GLIBC_2.4 close F
+GLIBC_2.4 connect F
+GLIBC_2.4 fcntl F
+GLIBC_2.4 flockfile F
+GLIBC_2.4 fork F
+GLIBC_2.4 fsync F
+GLIBC_2.4 ftrylockfile F
+GLIBC_2.4 funlockfile F
+GLIBC_2.4 longjmp F
+GLIBC_2.4 lseek F
+GLIBC_2.4 lseek64 F
+GLIBC_2.4 msync F
+GLIBC_2.4 open F
+GLIBC_2.4 open64 F
+GLIBC_2.4 pause F
+GLIBC_2.4 pread F
+GLIBC_2.4 pread64 F
+GLIBC_2.4 pthread_attr_getaffinity_np F
+GLIBC_2.4 pthread_attr_getguardsize F
+GLIBC_2.4 pthread_attr_getschedpolicy F
+GLIBC_2.4 pthread_attr_getscope F
+GLIBC_2.4 pthread_attr_getstack F
+GLIBC_2.4 pthread_attr_getstackaddr F
+GLIBC_2.4 pthread_attr_getstacksize F
+GLIBC_2.4 pthread_attr_setaffinity_np F
+GLIBC_2.4 pthread_attr_setguardsize F
+GLIBC_2.4 pthread_attr_setschedpolicy F
+GLIBC_2.4 pthread_attr_setscope F
+GLIBC_2.4 pthread_attr_setstack F
+GLIBC_2.4 pthread_attr_setstackaddr F
+GLIBC_2.4 pthread_attr_setstacksize F
+GLIBC_2.4 pthread_barrier_destroy F
+GLIBC_2.4 pthread_barrier_init F
+GLIBC_2.4 pthread_barrier_wait F
+GLIBC_2.4 pthread_barrierattr_destroy F
+GLIBC_2.4 pthread_barrierattr_getpshared F
+GLIBC_2.4 pthread_barrierattr_init F
+GLIBC_2.4 pthread_barrierattr_setpshared F
+GLIBC_2.4 pthread_cancel F
+GLIBC_2.4 pthread_cond_broadcast F
+GLIBC_2.4 pthread_cond_destroy F
+GLIBC_2.4 pthread_cond_init F
+GLIBC_2.4 pthread_cond_signal F
+GLIBC_2.4 pthread_cond_timedwait F
+GLIBC_2.4 pthread_cond_wait F
+GLIBC_2.4 pthread_condattr_destroy F
+GLIBC_2.4 pthread_condattr_getclock F
+GLIBC_2.4 pthread_condattr_getpshared F
+GLIBC_2.4 pthread_condattr_init F
+GLIBC_2.4 pthread_condattr_setclock F
+GLIBC_2.4 pthread_condattr_setpshared F
+GLIBC_2.4 pthread_create F
+GLIBC_2.4 pthread_detach F
+GLIBC_2.4 pthread_exit F
+GLIBC_2.4 pthread_getaffinity_np F
+GLIBC_2.4 pthread_getattr_np F
+GLIBC_2.4 pthread_getconcurrency F
+GLIBC_2.4 pthread_getcpuclockid F
+GLIBC_2.4 pthread_getschedparam F
+GLIBC_2.4 pthread_getspecific F
+GLIBC_2.4 pthread_join F
+GLIBC_2.4 pthread_key_create F
+GLIBC_2.4 pthread_key_delete F
+GLIBC_2.4 pthread_kill F
+GLIBC_2.4 pthread_kill_other_threads_np F
+GLIBC_2.4 pthread_mutex_consistent_np F
+GLIBC_2.4 pthread_mutex_destroy F
+GLIBC_2.4 pthread_mutex_getprioceiling F
+GLIBC_2.4 pthread_mutex_init F
+GLIBC_2.4 pthread_mutex_lock F
+GLIBC_2.4 pthread_mutex_setprioceiling F
+GLIBC_2.4 pthread_mutex_timedlock F
+GLIBC_2.4 pthread_mutex_trylock F
+GLIBC_2.4 pthread_mutex_unlock F
+GLIBC_2.4 pthread_mutexattr_destroy F
+GLIBC_2.4 pthread_mutexattr_getkind_np F
+GLIBC_2.4 pthread_mutexattr_getprioceiling F
+GLIBC_2.4 pthread_mutexattr_getprotocol F
+GLIBC_2.4 pthread_mutexattr_getpshared F
+GLIBC_2.4 pthread_mutexattr_getrobust_np F
+GLIBC_2.4 pthread_mutexattr_gettype F
+GLIBC_2.4 pthread_mutexattr_init F
+GLIBC_2.4 pthread_mutexattr_setkind_np F
+GLIBC_2.4 pthread_mutexattr_setprioceiling F
+GLIBC_2.4 pthread_mutexattr_setprotocol F
+GLIBC_2.4 pthread_mutexattr_setpshared F
+GLIBC_2.4 pthread_mutexattr_setrobust_np F
+GLIBC_2.4 pthread_mutexattr_settype F
+GLIBC_2.4 pthread_once F
+GLIBC_2.4 pthread_rwlock_destroy F
+GLIBC_2.4 pthread_rwlock_init F
+GLIBC_2.4 pthread_rwlock_rdlock F
+GLIBC_2.4 pthread_rwlock_timedrdlock F
+GLIBC_2.4 pthread_rwlock_timedwrlock F
+GLIBC_2.4 pthread_rwlock_tryrdlock F
+GLIBC_2.4 pthread_rwlock_trywrlock F
+GLIBC_2.4 pthread_rwlock_unlock F
+GLIBC_2.4 pthread_rwlock_wrlock F
+GLIBC_2.4 pthread_rwlockattr_destroy F
+GLIBC_2.4 pthread_rwlockattr_getkind_np F
+GLIBC_2.4 pthread_rwlockattr_getpshared F
+GLIBC_2.4 pthread_rwlockattr_init F
+GLIBC_2.4 pthread_rwlockattr_setkind_np F
+GLIBC_2.4 pthread_rwlockattr_setpshared F
+GLIBC_2.4 pthread_setaffinity_np F
+GLIBC_2.4 pthread_setcancelstate F
+GLIBC_2.4 pthread_setcanceltype F
+GLIBC_2.4 pthread_setconcurrency F
+GLIBC_2.4 pthread_setschedparam F
+GLIBC_2.4 pthread_setschedprio F
+GLIBC_2.4 pthread_setspecific F
+GLIBC_2.4 pthread_sigmask F
+GLIBC_2.4 pthread_spin_destroy F
+GLIBC_2.4 pthread_spin_init F
+GLIBC_2.4 pthread_spin_lock F
+GLIBC_2.4 pthread_spin_trylock F
+GLIBC_2.4 pthread_spin_unlock F
+GLIBC_2.4 pthread_testcancel F
+GLIBC_2.4 pthread_timedjoin_np F
+GLIBC_2.4 pthread_tryjoin_np F
+GLIBC_2.4 pthread_yield F
+GLIBC_2.4 pwrite F
+GLIBC_2.4 pwrite64 F
+GLIBC_2.4 raise F
+GLIBC_2.4 read F
+GLIBC_2.4 recv F
+GLIBC_2.4 recvfrom F
+GLIBC_2.4 recvmsg F
+GLIBC_2.4 sem_close F
+GLIBC_2.4 sem_destroy F
+GLIBC_2.4 sem_getvalue F
+GLIBC_2.4 sem_init F
+GLIBC_2.4 sem_open F
+GLIBC_2.4 sem_post F
+GLIBC_2.4 sem_timedwait F
+GLIBC_2.4 sem_trywait F
+GLIBC_2.4 sem_unlink F
+GLIBC_2.4 sem_wait F
+GLIBC_2.4 send F
+GLIBC_2.4 sendmsg F
+GLIBC_2.4 sendto F
+GLIBC_2.4 sigaction F
+GLIBC_2.4 siglongjmp F
+GLIBC_2.4 sigwait F
+GLIBC_2.4 system F
+GLIBC_2.4 tcdrain F
+GLIBC_2.4 wait F
+GLIBC_2.4 waitpid F
+GLIBC_2.4 write F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist b/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
new file mode 100644
index 0000000000..2dd5094f76
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/arm/le/libresolv.abilist
@@ -0,0 +1,91 @@
+GLIBC_2.4 __b64_ntop F
+GLIBC_2.4 __b64_pton F
+GLIBC_2.4 __dn_comp F
+GLIBC_2.4 __dn_count_labels F
+GLIBC_2.4 __dn_expand F
+GLIBC_2.4 __dn_skipname F
+GLIBC_2.4 __fp_nquery F
+GLIBC_2.4 __fp_query F
+GLIBC_2.4 __fp_resstat F
+GLIBC_2.4 __hostalias F
+GLIBC_2.4 __loc_aton F
+GLIBC_2.4 __loc_ntoa F
+GLIBC_2.4 __p_cdname F
+GLIBC_2.4 __p_cdnname F
+GLIBC_2.4 __p_class F
+GLIBC_2.4 __p_class_syms D 0x54
+GLIBC_2.4 __p_fqname F
+GLIBC_2.4 __p_fqnname F
+GLIBC_2.4 __p_option F
+GLIBC_2.4 __p_query F
+GLIBC_2.4 __p_rcode F
+GLIBC_2.4 __p_secstodate F
+GLIBC_2.4 __p_time F
+GLIBC_2.4 __p_type F
+GLIBC_2.4 __p_type_syms D 0x228
+GLIBC_2.4 __putlong F
+GLIBC_2.4 __putshort F
+GLIBC_2.4 __res_close F
+GLIBC_2.4 __res_dnok F
+GLIBC_2.4 __res_hnok F
+GLIBC_2.4 __res_hostalias F
+GLIBC_2.4 __res_isourserver F
+GLIBC_2.4 __res_mailok F
+GLIBC_2.4 __res_mkquery F
+GLIBC_2.4 __res_nameinquery F
+GLIBC_2.4 __res_nmkquery F
+GLIBC_2.4 __res_nquery F
+GLIBC_2.4 __res_nquerydomain F
+GLIBC_2.4 __res_nsearch F
+GLIBC_2.4 __res_nsend F
+GLIBC_2.4 __res_ownok F
+GLIBC_2.4 __res_queriesmatch F
+GLIBC_2.4 __res_query F
+GLIBC_2.4 __res_querydomain F
+GLIBC_2.4 __res_search F
+GLIBC_2.4 __res_send F
+GLIBC_2.4 __sym_ntop F
+GLIBC_2.4 __sym_ntos F
+GLIBC_2.4 __sym_ston F
+GLIBC_2.4 _gethtbyaddr F
+GLIBC_2.4 _gethtbyname F
+GLIBC_2.4 _gethtbyname2 F
+GLIBC_2.4 _gethtent F
+GLIBC_2.4 _getlong F
+GLIBC_2.4 _getshort F
+GLIBC_2.4 _res_opcodes D 0x40
+GLIBC_2.4 _sethtent F
+GLIBC_2.4 inet_net_ntop F
+GLIBC_2.4 inet_net_pton F
+GLIBC_2.4 inet_neta F
+GLIBC_2.4 res_gethostbyaddr F
+GLIBC_2.4 res_gethostbyname F
+GLIBC_2.4 res_gethostbyname2 F
+GLIBC_2.4 res_send_setqhook F
+GLIBC_2.4 res_send_setrhook F
+GLIBC_2.9 ns_datetosecs F
+GLIBC_2.9 ns_format_ttl F
+GLIBC_2.9 ns_get16 F
+GLIBC_2.9 ns_get32 F
+GLIBC_2.9 ns_initparse F
+GLIBC_2.9 ns_makecanon F
+GLIBC_2.9 ns_msg_getflag F
+GLIBC_2.9 ns_name_compress F
+GLIBC_2.9 ns_name_ntol F
+GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pack F
+GLIBC_2.9 ns_name_pton F
+GLIBC_2.9 ns_name_rollback F
+GLIBC_2.9 ns_name_skip F
+GLIBC_2.9 ns_name_uncompress F
+GLIBC_2.9 ns_name_unpack F
+GLIBC_2.9 ns_parse_ttl F
+GLIBC_2.9 ns_parserr F
+GLIBC_2.9 ns_put16 F
+GLIBC_2.9 ns_put32 F
+GLIBC_2.9 ns_samedomain F
+GLIBC_2.9 ns_samename F
+GLIBC_2.9 ns_skiprr F
+GLIBC_2.9 ns_sprintrr F
+GLIBC_2.9 ns_sprintrrf F
+GLIBC_2.9 ns_subdomain F
diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
new file mode 100644
index 0000000000..3c0647b251
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -0,0 +1,35 @@
+GLIBC_2.4 aio_cancel F
+GLIBC_2.4 aio_cancel64 F
+GLIBC_2.4 aio_error F
+GLIBC_2.4 aio_error64 F
+GLIBC_2.4 aio_fsync F
+GLIBC_2.4 aio_fsync64 F
+GLIBC_2.4 aio_init F
+GLIBC_2.4 aio_read F
+GLIBC_2.4 aio_read64 F
+GLIBC_2.4 aio_return F
+GLIBC_2.4 aio_return64 F
+GLIBC_2.4 aio_suspend F
+GLIBC_2.4 aio_suspend64 F
+GLIBC_2.4 aio_write F
+GLIBC_2.4 aio_write64 F
+GLIBC_2.4 lio_listio F
+GLIBC_2.4 lio_listio64 F
+GLIBC_2.4 mq_close F
+GLIBC_2.4 mq_getattr F
+GLIBC_2.4 mq_notify F
+GLIBC_2.4 mq_open F
+GLIBC_2.4 mq_receive F
+GLIBC_2.4 mq_send F
+GLIBC_2.4 mq_setattr F
+GLIBC_2.4 mq_timedreceive F
+GLIBC_2.4 mq_timedsend F
+GLIBC_2.4 mq_unlink F
+GLIBC_2.4 shm_open F
+GLIBC_2.4 shm_unlink F
+GLIBC_2.4 timer_create F
+GLIBC_2.4 timer_delete F
+GLIBC_2.4 timer_getoverrun F
+GLIBC_2.4 timer_gettime F
+GLIBC_2.4 timer_settime F
+GLIBC_2.7 __mq_open_2 F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libthread_db.abilist b/sysdeps/unix/sysv/linux/arm/le/libthread_db.abilist
new file mode 100644
index 0000000000..065a2626c8
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/arm/le/libthread_db.abilist
@@ -0,0 +1,40 @@
+GLIBC_2.4 td_init F
+GLIBC_2.4 td_log F
+GLIBC_2.4 td_symbol_list F
+GLIBC_2.4 td_ta_clear_event F
+GLIBC_2.4 td_ta_delete F
+GLIBC_2.4 td_ta_enable_stats F
+GLIBC_2.4 td_ta_event_addr F
+GLIBC_2.4 td_ta_event_getmsg F
+GLIBC_2.4 td_ta_get_nthreads F
+GLIBC_2.4 td_ta_get_ph F
+GLIBC_2.4 td_ta_get_stats F
+GLIBC_2.4 td_ta_map_id2thr F
+GLIBC_2.4 td_ta_map_lwp2thr F
+GLIBC_2.4 td_ta_new F
+GLIBC_2.4 td_ta_reset_stats F
+GLIBC_2.4 td_ta_set_event F
+GLIBC_2.4 td_ta_setconcurrency F
+GLIBC_2.4 td_ta_thr_iter F
+GLIBC_2.4 td_ta_tsd_iter F
+GLIBC_2.4 td_thr_clear_event F
+GLIBC_2.4 td_thr_dbresume F
+GLIBC_2.4 td_thr_dbsuspend F
+GLIBC_2.4 td_thr_event_enable F
+GLIBC_2.4 td_thr_event_getmsg F
+GLIBC_2.4 td_thr_get_info F
+GLIBC_2.4 td_thr_getfpregs F
+GLIBC_2.4 td_thr_getgregs F
+GLIBC_2.4 td_thr_getxregs F
+GLIBC_2.4 td_thr_getxregsize F
+GLIBC_2.4 td_thr_set_event F
+GLIBC_2.4 td_thr_setfpregs F
+GLIBC_2.4 td_thr_setgregs F
+GLIBC_2.4 td_thr_setprio F
+GLIBC_2.4 td_thr_setsigpending F
+GLIBC_2.4 td_thr_setxregs F
+GLIBC_2.4 td_thr_sigsetmask F
+GLIBC_2.4 td_thr_tls_get_addr F
+GLIBC_2.4 td_thr_tlsbase F
+GLIBC_2.4 td_thr_tsd F
+GLIBC_2.4 td_thr_validate F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libutil.abilist b/sysdeps/unix/sysv/linux/arm/le/libutil.abilist
new file mode 100644
index 0000000000..cc1420e68c
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/arm/le/libutil.abilist
@@ -0,0 +1,6 @@
+GLIBC_2.4 forkpty F
+GLIBC_2.4 login F
+GLIBC_2.4 login_tty F
+GLIBC_2.4 logout F
+GLIBC_2.4 logwtmp F
+GLIBC_2.4 openpty F
diff --git a/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S b/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S
index d26ad1f8d3..8e097aa507 100644
--- a/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S
+++ b/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2010-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* When this file is built for inclusion in nscd, _FORTIFY_SOURCE is
defined but -O is not used, resulting in a warning from features.h. */
diff --git a/sysdeps/unix/sysv/linux/arm/libc-vdso.h b/sysdeps/unix/sysv/linux/arm/libc-vdso.h
deleted file mode 100644
index 52dd355818..0000000000
--- a/sysdeps/unix/sysv/linux/arm/libc-vdso.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* VDSO function pointer declarations. Linux/ARM.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _LIBC_VDSO_H
-#define _LIBC_VDSO_H
-
-#ifdef SHARED
-
-# include <sysdep-vdso.h>
-
-extern int (*VDSO_SYMBOL(gettimeofday)) (struct timeval *, void *)
- attribute_hidden;
-extern int (*VDSO_SYMBOL(clock_gettime)) (clockid_t, struct timespec *);
-
-#endif
-
-#endif /* _LIBC_VDSO_H */
diff --git a/sysdeps/unix/sysv/linux/arm/libc.abilist b/sysdeps/unix/sysv/linux/arm/libc.abilist
deleted file mode 100644
index a231812eea..0000000000
--- a/sysdeps/unix/sysv/linux/arm/libc.abilist
+++ /dev/null
@@ -1,2167 +0,0 @@
-GLIBC_2.10 __cxa_at_quick_exit F
-GLIBC_2.10 __posix_getopt F
-GLIBC_2.10 accept4 F
-GLIBC_2.10 endsgent F
-GLIBC_2.10 fallocate F
-GLIBC_2.10 fgetsgent F
-GLIBC_2.10 fgetsgent_r F
-GLIBC_2.10 getsgent F
-GLIBC_2.10 getsgent_r F
-GLIBC_2.10 getsgnam F
-GLIBC_2.10 getsgnam_r F
-GLIBC_2.10 malloc_info F
-GLIBC_2.10 preadv F
-GLIBC_2.10 preadv64 F
-GLIBC_2.10 psiginfo F
-GLIBC_2.10 putsgent F
-GLIBC_2.10 pwritev F
-GLIBC_2.10 pwritev64 F
-GLIBC_2.10 quick_exit F
-GLIBC_2.10 register_printf_modifier F
-GLIBC_2.10 register_printf_specifier F
-GLIBC_2.10 register_printf_type F
-GLIBC_2.10 setsgent F
-GLIBC_2.10 sgetsgent F
-GLIBC_2.10 sgetsgent_r F
-GLIBC_2.11 __longjmp_chk F
-GLIBC_2.11 execvpe F
-GLIBC_2.11 fallocate64 F
-GLIBC_2.11 mkostemps F
-GLIBC_2.11 mkostemps64 F
-GLIBC_2.11 mkstemps F
-GLIBC_2.11 mkstemps64 F
-GLIBC_2.12 _sys_errlist D 0x21c
-GLIBC_2.12 _sys_nerr D 0x4
-GLIBC_2.12 ntp_gettimex F
-GLIBC_2.12 recvmmsg F
-GLIBC_2.12 sys_errlist D 0x21c
-GLIBC_2.12 sys_nerr D 0x4
-GLIBC_2.13 fanotify_init F
-GLIBC_2.13 fanotify_mark F
-GLIBC_2.13 prlimit F
-GLIBC_2.13 prlimit64 F
-GLIBC_2.14 clock_adjtime F
-GLIBC_2.14 name_to_handle_at F
-GLIBC_2.14 open_by_handle_at F
-GLIBC_2.14 sendmmsg F
-GLIBC_2.14 setns F
-GLIBC_2.14 syncfs F
-GLIBC_2.15 __fdelt_chk F
-GLIBC_2.15 __fdelt_warn F
-GLIBC_2.15 posix_spawn F
-GLIBC_2.15 posix_spawnp F
-GLIBC_2.15 process_vm_readv F
-GLIBC_2.15 process_vm_writev F
-GLIBC_2.15 scandirat F
-GLIBC_2.15 scandirat64 F
-GLIBC_2.16 __getauxval F
-GLIBC_2.16 __poll_chk F
-GLIBC_2.16 __ppoll_chk F
-GLIBC_2.16 aligned_alloc F
-GLIBC_2.16 c16rtomb F
-GLIBC_2.16 c32rtomb F
-GLIBC_2.16 getauxval F
-GLIBC_2.16 mbrtoc16 F
-GLIBC_2.16 mbrtoc32 F
-GLIBC_2.16 timespec_get F
-GLIBC_2.17 clock_getcpuclockid F
-GLIBC_2.17 clock_getres F
-GLIBC_2.17 clock_gettime F
-GLIBC_2.17 clock_nanosleep F
-GLIBC_2.17 clock_settime F
-GLIBC_2.17 secure_getenv F
-GLIBC_2.18 __cxa_thread_atexit_impl F
-GLIBC_2.22 fmemopen F
-GLIBC_2.23 fts64_children F
-GLIBC_2.23 fts64_close F
-GLIBC_2.23 fts64_open F
-GLIBC_2.23 fts64_read F
-GLIBC_2.23 fts64_set F
-GLIBC_2.24 quick_exit F
-GLIBC_2.25 __explicit_bzero_chk F
-GLIBC_2.25 explicit_bzero F
-GLIBC_2.25 getentropy F
-GLIBC_2.25 getrandom F
-GLIBC_2.25 strfromd F
-GLIBC_2.25 strfromf F
-GLIBC_2.25 strfroml F
-GLIBC_2.26 preadv2 F
-GLIBC_2.26 preadv64v2 F
-GLIBC_2.26 pwritev2 F
-GLIBC_2.26 pwritev64v2 F
-GLIBC_2.26 reallocarray F
-GLIBC_2.27 copy_file_range F
-GLIBC_2.27 glob F
-GLIBC_2.27 glob64 F
-GLIBC_2.27 memfd_create F
-GLIBC_2.27 mlock2 F
-GLIBC_2.27 pkey_alloc F
-GLIBC_2.27 pkey_free F
-GLIBC_2.27 pkey_get F
-GLIBC_2.27 pkey_mprotect F
-GLIBC_2.27 pkey_set F
-GLIBC_2.27 strfromf32 F
-GLIBC_2.27 strfromf32x F
-GLIBC_2.27 strfromf64 F
-GLIBC_2.27 strtof32 F
-GLIBC_2.27 strtof32_l F
-GLIBC_2.27 strtof32x F
-GLIBC_2.27 strtof32x_l F
-GLIBC_2.27 strtof64 F
-GLIBC_2.27 strtof64_l F
-GLIBC_2.27 wcstof32 F
-GLIBC_2.27 wcstof32_l F
-GLIBC_2.27 wcstof32x F
-GLIBC_2.27 wcstof32x_l F
-GLIBC_2.27 wcstof64 F
-GLIBC_2.27 wcstof64_l F
-GLIBC_2.28 fcntl F
-GLIBC_2.28 fcntl64 F
-GLIBC_2.28 renameat2 F
-GLIBC_2.28 statx F
-GLIBC_2.28 thrd_current F
-GLIBC_2.28 thrd_equal F
-GLIBC_2.28 thrd_sleep F
-GLIBC_2.28 thrd_yield F
-GLIBC_2.4 _Exit F
-GLIBC_2.4 _IO_2_1_stderr_ D 0xa0
-GLIBC_2.4 _IO_2_1_stdin_ D 0xa0
-GLIBC_2.4 _IO_2_1_stdout_ D 0xa0
-GLIBC_2.4 _IO_adjust_column F
-GLIBC_2.4 _IO_adjust_wcolumn F
-GLIBC_2.4 _IO_default_doallocate F
-GLIBC_2.4 _IO_default_finish F
-GLIBC_2.4 _IO_default_pbackfail F
-GLIBC_2.4 _IO_default_uflow F
-GLIBC_2.4 _IO_default_xsgetn F
-GLIBC_2.4 _IO_default_xsputn F
-GLIBC_2.4 _IO_do_write F
-GLIBC_2.4 _IO_doallocbuf F
-GLIBC_2.4 _IO_fclose F
-GLIBC_2.4 _IO_fdopen F
-GLIBC_2.4 _IO_feof F
-GLIBC_2.4 _IO_ferror F
-GLIBC_2.4 _IO_fflush F
-GLIBC_2.4 _IO_fgetpos F
-GLIBC_2.4 _IO_fgetpos64 F
-GLIBC_2.4 _IO_fgets F
-GLIBC_2.4 _IO_file_attach F
-GLIBC_2.4 _IO_file_close F
-GLIBC_2.4 _IO_file_close_it F
-GLIBC_2.4 _IO_file_doallocate F
-GLIBC_2.4 _IO_file_finish F
-GLIBC_2.4 _IO_file_fopen F
-GLIBC_2.4 _IO_file_init F
-GLIBC_2.4 _IO_file_jumps D 0x54
-GLIBC_2.4 _IO_file_open F
-GLIBC_2.4 _IO_file_overflow F
-GLIBC_2.4 _IO_file_read F
-GLIBC_2.4 _IO_file_seek F
-GLIBC_2.4 _IO_file_seekoff F
-GLIBC_2.4 _IO_file_setbuf F
-GLIBC_2.4 _IO_file_stat F
-GLIBC_2.4 _IO_file_sync F
-GLIBC_2.4 _IO_file_underflow F
-GLIBC_2.4 _IO_file_write F
-GLIBC_2.4 _IO_file_xsputn F
-GLIBC_2.4 _IO_flockfile F
-GLIBC_2.4 _IO_flush_all F
-GLIBC_2.4 _IO_flush_all_linebuffered F
-GLIBC_2.4 _IO_fopen F
-GLIBC_2.4 _IO_fprintf F
-GLIBC_2.4 _IO_fputs F
-GLIBC_2.4 _IO_fread F
-GLIBC_2.4 _IO_free_backup_area F
-GLIBC_2.4 _IO_free_wbackup_area F
-GLIBC_2.4 _IO_fsetpos F
-GLIBC_2.4 _IO_fsetpos64 F
-GLIBC_2.4 _IO_ftell F
-GLIBC_2.4 _IO_ftrylockfile F
-GLIBC_2.4 _IO_funlockfile F
-GLIBC_2.4 _IO_fwrite F
-GLIBC_2.4 _IO_getc F
-GLIBC_2.4 _IO_getline F
-GLIBC_2.4 _IO_getline_info F
-GLIBC_2.4 _IO_gets F
-GLIBC_2.4 _IO_init F
-GLIBC_2.4 _IO_init_marker F
-GLIBC_2.4 _IO_init_wmarker F
-GLIBC_2.4 _IO_iter_begin F
-GLIBC_2.4 _IO_iter_end F
-GLIBC_2.4 _IO_iter_file F
-GLIBC_2.4 _IO_iter_next F
-GLIBC_2.4 _IO_least_wmarker F
-GLIBC_2.4 _IO_link_in F
-GLIBC_2.4 _IO_list_all D 0x4
-GLIBC_2.4 _IO_list_lock F
-GLIBC_2.4 _IO_list_resetlock F
-GLIBC_2.4 _IO_list_unlock F
-GLIBC_2.4 _IO_marker_delta F
-GLIBC_2.4 _IO_marker_difference F
-GLIBC_2.4 _IO_padn F
-GLIBC_2.4 _IO_peekc_locked F
-GLIBC_2.4 _IO_popen F
-GLIBC_2.4 _IO_printf F
-GLIBC_2.4 _IO_proc_close F
-GLIBC_2.4 _IO_proc_open F
-GLIBC_2.4 _IO_putc F
-GLIBC_2.4 _IO_puts F
-GLIBC_2.4 _IO_remove_marker F
-GLIBC_2.4 _IO_seekmark F
-GLIBC_2.4 _IO_seekoff F
-GLIBC_2.4 _IO_seekpos F
-GLIBC_2.4 _IO_seekwmark F
-GLIBC_2.4 _IO_setb F
-GLIBC_2.4 _IO_setbuffer F
-GLIBC_2.4 _IO_setvbuf F
-GLIBC_2.4 _IO_sgetn F
-GLIBC_2.4 _IO_sprintf F
-GLIBC_2.4 _IO_sputbackc F
-GLIBC_2.4 _IO_sputbackwc F
-GLIBC_2.4 _IO_sscanf F
-GLIBC_2.4 _IO_str_init_readonly F
-GLIBC_2.4 _IO_str_init_static F
-GLIBC_2.4 _IO_str_overflow F
-GLIBC_2.4 _IO_str_pbackfail F
-GLIBC_2.4 _IO_str_seekoff F
-GLIBC_2.4 _IO_str_underflow F
-GLIBC_2.4 _IO_sungetc F
-GLIBC_2.4 _IO_sungetwc F
-GLIBC_2.4 _IO_switch_to_get_mode F
-GLIBC_2.4 _IO_switch_to_main_wget_area F
-GLIBC_2.4 _IO_switch_to_wbackup_area F
-GLIBC_2.4 _IO_switch_to_wget_mode F
-GLIBC_2.4 _IO_un_link F
-GLIBC_2.4 _IO_ungetc F
-GLIBC_2.4 _IO_unsave_markers F
-GLIBC_2.4 _IO_unsave_wmarkers F
-GLIBC_2.4 _IO_vfprintf F
-GLIBC_2.4 _IO_vfscanf F
-GLIBC_2.4 _IO_vsprintf F
-GLIBC_2.4 _IO_wdefault_doallocate F
-GLIBC_2.4 _IO_wdefault_finish F
-GLIBC_2.4 _IO_wdefault_pbackfail F
-GLIBC_2.4 _IO_wdefault_uflow F
-GLIBC_2.4 _IO_wdefault_xsgetn F
-GLIBC_2.4 _IO_wdefault_xsputn F
-GLIBC_2.4 _IO_wdo_write F
-GLIBC_2.4 _IO_wdoallocbuf F
-GLIBC_2.4 _IO_wfile_jumps D 0x54
-GLIBC_2.4 _IO_wfile_overflow F
-GLIBC_2.4 _IO_wfile_seekoff F
-GLIBC_2.4 _IO_wfile_sync F
-GLIBC_2.4 _IO_wfile_underflow F
-GLIBC_2.4 _IO_wfile_xsputn F
-GLIBC_2.4 _IO_wmarker_delta F
-GLIBC_2.4 _IO_wsetb F
-GLIBC_2.4 __adjtimex F
-GLIBC_2.4 __aeabi_MB_CUR_MAX F
-GLIBC_2.4 __aeabi_assert F
-GLIBC_2.4 __aeabi_atexit F
-GLIBC_2.4 __aeabi_errno_addr F
-GLIBC_2.4 __aeabi_localeconv F
-GLIBC_2.4 __aeabi_memclr F
-GLIBC_2.4 __aeabi_memclr4 F
-GLIBC_2.4 __aeabi_memclr8 F
-GLIBC_2.4 __aeabi_memcpy F
-GLIBC_2.4 __aeabi_memcpy4 F
-GLIBC_2.4 __aeabi_memcpy8 F
-GLIBC_2.4 __aeabi_memmove F
-GLIBC_2.4 __aeabi_memmove4 F
-GLIBC_2.4 __aeabi_memmove8 F
-GLIBC_2.4 __aeabi_memset F
-GLIBC_2.4 __aeabi_memset4 F
-GLIBC_2.4 __aeabi_memset8 F
-GLIBC_2.4 __after_morecore_hook D 0x4
-GLIBC_2.4 __argz_count F
-GLIBC_2.4 __argz_next F
-GLIBC_2.4 __argz_stringify F
-GLIBC_2.4 __asprintf F
-GLIBC_2.4 __assert F
-GLIBC_2.4 __assert_fail F
-GLIBC_2.4 __assert_perror_fail F
-GLIBC_2.4 __backtrace F
-GLIBC_2.4 __backtrace_symbols F
-GLIBC_2.4 __backtrace_symbols_fd F
-GLIBC_2.4 __bsd_getpgrp F
-GLIBC_2.4 __bzero F
-GLIBC_2.4 __check_rhosts_file D 0x4
-GLIBC_2.4 __chk_fail F
-GLIBC_2.4 __clone F
-GLIBC_2.4 __close F
-GLIBC_2.4 __cmsg_nxthdr F
-GLIBC_2.4 __confstr_chk F
-GLIBC_2.4 __connect F
-GLIBC_2.4 __ctype_b_loc F
-GLIBC_2.4 __ctype_get_mb_cur_max F
-GLIBC_2.4 __ctype_tolower_loc F
-GLIBC_2.4 __ctype_toupper_loc F
-GLIBC_2.4 __curbrk D 0x4
-GLIBC_2.4 __cxa_atexit F
-GLIBC_2.4 __cxa_finalize F
-GLIBC_2.4 __cyg_profile_func_enter F
-GLIBC_2.4 __cyg_profile_func_exit F
-GLIBC_2.4 __daylight D 0x4
-GLIBC_2.4 __dcgettext F
-GLIBC_2.4 __default_morecore F
-GLIBC_2.4 __dgettext F
-GLIBC_2.4 __dup2 F
-GLIBC_2.4 __duplocale F
-GLIBC_2.4 __endmntent F
-GLIBC_2.4 __environ D 0x4
-GLIBC_2.4 __errno_location F
-GLIBC_2.4 __fbufsize F
-GLIBC_2.4 __fcntl F
-GLIBC_2.4 __ffs F
-GLIBC_2.4 __fgets_chk F
-GLIBC_2.4 __fgets_unlocked_chk F
-GLIBC_2.4 __fgetws_chk F
-GLIBC_2.4 __fgetws_unlocked_chk F
-GLIBC_2.4 __finite F
-GLIBC_2.4 __finitef F
-GLIBC_2.4 __finitel F
-GLIBC_2.4 __flbf F
-GLIBC_2.4 __fork F
-GLIBC_2.4 __fpending F
-GLIBC_2.4 __fprintf_chk F
-GLIBC_2.4 __fpu_control D 0x4
-GLIBC_2.4 __fpurge F
-GLIBC_2.4 __freadable F
-GLIBC_2.4 __freading F
-GLIBC_2.4 __free_hook D 0x4
-GLIBC_2.4 __freelocale F
-GLIBC_2.4 __fsetlocking F
-GLIBC_2.4 __fwprintf_chk F
-GLIBC_2.4 __fwritable F
-GLIBC_2.4 __fwriting F
-GLIBC_2.4 __fxstat F
-GLIBC_2.4 __fxstat64 F
-GLIBC_2.4 __fxstatat F
-GLIBC_2.4 __fxstatat64 F
-GLIBC_2.4 __getcwd_chk F
-GLIBC_2.4 __getdelim F
-GLIBC_2.4 __getdomainname_chk F
-GLIBC_2.4 __getgroups_chk F
-GLIBC_2.4 __gethostname_chk F
-GLIBC_2.4 __getlogin_r_chk F
-GLIBC_2.4 __getmntent_r F
-GLIBC_2.4 __getpagesize F
-GLIBC_2.4 __getpgid F
-GLIBC_2.4 __getpid F
-GLIBC_2.4 __gets_chk F
-GLIBC_2.4 __gettimeofday F
-GLIBC_2.4 __getwd_chk F
-GLIBC_2.4 __gmtime_r F
-GLIBC_2.4 __gnu_Unwind_Find_exidx F
-GLIBC_2.4 __h_errno_location F
-GLIBC_2.4 __isalnum_l F
-GLIBC_2.4 __isalpha_l F
-GLIBC_2.4 __isascii_l F
-GLIBC_2.4 __isblank_l F
-GLIBC_2.4 __iscntrl_l F
-GLIBC_2.4 __isctype F
-GLIBC_2.4 __isdigit_l F
-GLIBC_2.4 __isgraph_l F
-GLIBC_2.4 __isinf F
-GLIBC_2.4 __isinff F
-GLIBC_2.4 __isinfl F
-GLIBC_2.4 __islower_l F
-GLIBC_2.4 __isnan F
-GLIBC_2.4 __isnanf F
-GLIBC_2.4 __isnanl F
-GLIBC_2.4 __isprint_l F
-GLIBC_2.4 __ispunct_l F
-GLIBC_2.4 __isspace_l F
-GLIBC_2.4 __isupper_l F
-GLIBC_2.4 __iswalnum_l F
-GLIBC_2.4 __iswalpha_l F
-GLIBC_2.4 __iswblank_l F
-GLIBC_2.4 __iswcntrl_l F
-GLIBC_2.4 __iswctype F
-GLIBC_2.4 __iswctype_l F
-GLIBC_2.4 __iswdigit_l F
-GLIBC_2.4 __iswgraph_l F
-GLIBC_2.4 __iswlower_l F
-GLIBC_2.4 __iswprint_l F
-GLIBC_2.4 __iswpunct_l F
-GLIBC_2.4 __iswspace_l F
-GLIBC_2.4 __iswupper_l F
-GLIBC_2.4 __iswxdigit_l F
-GLIBC_2.4 __isxdigit_l F
-GLIBC_2.4 __ivaliduser F
-GLIBC_2.4 __key_decryptsession_pk_LOCAL D 0x4
-GLIBC_2.4 __key_encryptsession_pk_LOCAL D 0x4
-GLIBC_2.4 __key_gendes_LOCAL D 0x4
-GLIBC_2.4 __libc_allocate_rtsig F
-GLIBC_2.4 __libc_calloc F
-GLIBC_2.4 __libc_current_sigrtmax F
-GLIBC_2.4 __libc_current_sigrtmin F
-GLIBC_2.4 __libc_free F
-GLIBC_2.4 __libc_freeres F
-GLIBC_2.4 __libc_init_first F
-GLIBC_2.4 __libc_mallinfo F
-GLIBC_2.4 __libc_malloc F
-GLIBC_2.4 __libc_mallopt F
-GLIBC_2.4 __libc_memalign F
-GLIBC_2.4 __libc_pvalloc F
-GLIBC_2.4 __libc_realloc F
-GLIBC_2.4 __libc_sa_len F
-GLIBC_2.4 __libc_start_main F
-GLIBC_2.4 __libc_valloc F
-GLIBC_2.4 __lseek F
-GLIBC_2.4 __lxstat F
-GLIBC_2.4 __lxstat64 F
-GLIBC_2.4 __malloc_hook D 0x4
-GLIBC_2.4 __malloc_initialize_hook D 0x4
-GLIBC_2.4 __mbrlen F
-GLIBC_2.4 __mbrtowc F
-GLIBC_2.4 __mbsnrtowcs_chk F
-GLIBC_2.4 __mbsrtowcs_chk F
-GLIBC_2.4 __mbstowcs_chk F
-GLIBC_2.4 __memalign_hook D 0x4
-GLIBC_2.4 __memcpy_chk F
-GLIBC_2.4 __memmove_chk F
-GLIBC_2.4 __mempcpy F
-GLIBC_2.4 __mempcpy_chk F
-GLIBC_2.4 __mempcpy_small F
-GLIBC_2.4 __memset_chk F
-GLIBC_2.4 __monstartup F
-GLIBC_2.4 __morecore D 0x4
-GLIBC_2.4 __nanosleep F
-GLIBC_2.4 __newlocale F
-GLIBC_2.4 __nl_langinfo_l F
-GLIBC_2.4 __nss_configure_lookup F
-GLIBC_2.4 __nss_database_lookup F
-GLIBC_2.4 __nss_group_lookup F
-GLIBC_2.4 __nss_hostname_digits_dots F
-GLIBC_2.4 __nss_hosts_lookup F
-GLIBC_2.4 __nss_next F
-GLIBC_2.4 __nss_passwd_lookup F
-GLIBC_2.4 __open F
-GLIBC_2.4 __open64 F
-GLIBC_2.4 __overflow F
-GLIBC_2.4 __pipe F
-GLIBC_2.4 __poll F
-GLIBC_2.4 __pread64 F
-GLIBC_2.4 __pread64_chk F
-GLIBC_2.4 __pread_chk F
-GLIBC_2.4 __printf_chk F
-GLIBC_2.4 __printf_fp F
-GLIBC_2.4 __profile_frequency F
-GLIBC_2.4 __progname D 0x4
-GLIBC_2.4 __progname_full D 0x4
-GLIBC_2.4 __ptsname_r_chk F
-GLIBC_2.4 __pwrite64 F
-GLIBC_2.4 __rawmemchr F
-GLIBC_2.4 __rcmd_errstr D 0x4
-GLIBC_2.4 __read F
-GLIBC_2.4 __read_chk F
-GLIBC_2.4 __readlink_chk F
-GLIBC_2.4 __realloc_hook D 0x4
-GLIBC_2.4 __realpath_chk F
-GLIBC_2.4 __recv_chk F
-GLIBC_2.4 __recvfrom_chk F
-GLIBC_2.4 __register_atfork F
-GLIBC_2.4 __res_init F
-GLIBC_2.4 __res_nclose F
-GLIBC_2.4 __res_ninit F
-GLIBC_2.4 __res_randomid F
-GLIBC_2.4 __res_state F
-GLIBC_2.4 __rpc_thread_createerr F
-GLIBC_2.4 __rpc_thread_svc_fdset F
-GLIBC_2.4 __rpc_thread_svc_max_pollfd F
-GLIBC_2.4 __rpc_thread_svc_pollfd F
-GLIBC_2.4 __sbrk F
-GLIBC_2.4 __sched_get_priority_max F
-GLIBC_2.4 __sched_get_priority_min F
-GLIBC_2.4 __sched_getparam F
-GLIBC_2.4 __sched_getscheduler F
-GLIBC_2.4 __sched_setscheduler F
-GLIBC_2.4 __sched_yield F
-GLIBC_2.4 __secure_getenv F
-GLIBC_2.4 __select F
-GLIBC_2.4 __send F
-GLIBC_2.4 __setmntent F
-GLIBC_2.4 __setpgid F
-GLIBC_2.4 __sigaction F
-GLIBC_2.4 __sigaddset F
-GLIBC_2.4 __sigdelset F
-GLIBC_2.4 __sigismember F
-GLIBC_2.4 __signbit F
-GLIBC_2.4 __signbitf F
-GLIBC_2.4 __sigpause F
-GLIBC_2.4 __sigsetjmp F
-GLIBC_2.4 __sigsuspend F
-GLIBC_2.4 __snprintf_chk F
-GLIBC_2.4 __sprintf_chk F
-GLIBC_2.4 __stack_chk_fail F
-GLIBC_2.4 __statfs F
-GLIBC_2.4 __stpcpy F
-GLIBC_2.4 __stpcpy_chk F
-GLIBC_2.4 __stpcpy_small F
-GLIBC_2.4 __stpncpy F
-GLIBC_2.4 __stpncpy_chk F
-GLIBC_2.4 __strcasecmp F
-GLIBC_2.4 __strcasecmp_l F
-GLIBC_2.4 __strcasestr F
-GLIBC_2.4 __strcat_chk F
-GLIBC_2.4 __strcoll_l F
-GLIBC_2.4 __strcpy_chk F
-GLIBC_2.4 __strcpy_small F
-GLIBC_2.4 __strcspn_c1 F
-GLIBC_2.4 __strcspn_c2 F
-GLIBC_2.4 __strcspn_c3 F
-GLIBC_2.4 __strdup F
-GLIBC_2.4 __strerror_r F
-GLIBC_2.4 __strfmon_l F
-GLIBC_2.4 __strftime_l F
-GLIBC_2.4 __strncasecmp_l F
-GLIBC_2.4 __strncat_chk F
-GLIBC_2.4 __strncpy_chk F
-GLIBC_2.4 __strndup F
-GLIBC_2.4 __strpbrk_c2 F
-GLIBC_2.4 __strpbrk_c3 F
-GLIBC_2.4 __strsep_1c F
-GLIBC_2.4 __strsep_2c F
-GLIBC_2.4 __strsep_3c F
-GLIBC_2.4 __strsep_g F
-GLIBC_2.4 __strspn_c1 F
-GLIBC_2.4 __strspn_c2 F
-GLIBC_2.4 __strspn_c3 F
-GLIBC_2.4 __strtod_internal F
-GLIBC_2.4 __strtod_l F
-GLIBC_2.4 __strtof_internal F
-GLIBC_2.4 __strtof_l F
-GLIBC_2.4 __strtok_r F
-GLIBC_2.4 __strtok_r_1c F
-GLIBC_2.4 __strtol_internal F
-GLIBC_2.4 __strtol_l F
-GLIBC_2.4 __strtold_internal F
-GLIBC_2.4 __strtold_l F
-GLIBC_2.4 __strtoll_internal F
-GLIBC_2.4 __strtoll_l F
-GLIBC_2.4 __strtoul_internal F
-GLIBC_2.4 __strtoul_l F
-GLIBC_2.4 __strtoull_internal F
-GLIBC_2.4 __strtoull_l F
-GLIBC_2.4 __strverscmp F
-GLIBC_2.4 __strxfrm_l F
-GLIBC_2.4 __swprintf_chk F
-GLIBC_2.4 __sysconf F
-GLIBC_2.4 __sysctl F
-GLIBC_2.4 __syslog_chk F
-GLIBC_2.4 __sysv_signal F
-GLIBC_2.4 __timezone D 0x4
-GLIBC_2.4 __toascii_l F
-GLIBC_2.4 __tolower_l F
-GLIBC_2.4 __toupper_l F
-GLIBC_2.4 __towctrans F
-GLIBC_2.4 __towctrans_l F
-GLIBC_2.4 __towlower_l F
-GLIBC_2.4 __towupper_l F
-GLIBC_2.4 __ttyname_r_chk F
-GLIBC_2.4 __tzname D 0x8
-GLIBC_2.4 __uflow F
-GLIBC_2.4 __underflow F
-GLIBC_2.4 __uselocale F
-GLIBC_2.4 __vfork F
-GLIBC_2.4 __vfprintf_chk F
-GLIBC_2.4 __vfscanf F
-GLIBC_2.4 __vfwprintf_chk F
-GLIBC_2.4 __vprintf_chk F
-GLIBC_2.4 __vsnprintf F
-GLIBC_2.4 __vsnprintf_chk F
-GLIBC_2.4 __vsprintf_chk F
-GLIBC_2.4 __vsscanf F
-GLIBC_2.4 __vswprintf_chk F
-GLIBC_2.4 __vsyslog_chk F
-GLIBC_2.4 __vwprintf_chk F
-GLIBC_2.4 __wait F
-GLIBC_2.4 __waitpid F
-GLIBC_2.4 __wcpcpy_chk F
-GLIBC_2.4 __wcpncpy_chk F
-GLIBC_2.4 __wcrtomb_chk F
-GLIBC_2.4 __wcscasecmp_l F
-GLIBC_2.4 __wcscat_chk F
-GLIBC_2.4 __wcscoll_l F
-GLIBC_2.4 __wcscpy_chk F
-GLIBC_2.4 __wcsftime_l F
-GLIBC_2.4 __wcsncasecmp_l F
-GLIBC_2.4 __wcsncat_chk F
-GLIBC_2.4 __wcsncpy_chk F
-GLIBC_2.4 __wcsnrtombs_chk F
-GLIBC_2.4 __wcsrtombs_chk F
-GLIBC_2.4 __wcstod_internal F
-GLIBC_2.4 __wcstod_l F
-GLIBC_2.4 __wcstof_internal F
-GLIBC_2.4 __wcstof_l F
-GLIBC_2.4 __wcstol_internal F
-GLIBC_2.4 __wcstol_l F
-GLIBC_2.4 __wcstold_internal F
-GLIBC_2.4 __wcstold_l F
-GLIBC_2.4 __wcstoll_internal F
-GLIBC_2.4 __wcstoll_l F
-GLIBC_2.4 __wcstombs_chk F
-GLIBC_2.4 __wcstoul_internal F
-GLIBC_2.4 __wcstoul_l F
-GLIBC_2.4 __wcstoull_internal F
-GLIBC_2.4 __wcstoull_l F
-GLIBC_2.4 __wcsxfrm_l F
-GLIBC_2.4 __wctomb_chk F
-GLIBC_2.4 __wctrans_l F
-GLIBC_2.4 __wctype_l F
-GLIBC_2.4 __wmemcpy_chk F
-GLIBC_2.4 __wmemmove_chk F
-GLIBC_2.4 __wmempcpy_chk F
-GLIBC_2.4 __wmemset_chk F
-GLIBC_2.4 __woverflow F
-GLIBC_2.4 __wprintf_chk F
-GLIBC_2.4 __write F
-GLIBC_2.4 __wuflow F
-GLIBC_2.4 __wunderflow F
-GLIBC_2.4 __xmknod F
-GLIBC_2.4 __xmknodat F
-GLIBC_2.4 __xpg_basename F
-GLIBC_2.4 __xpg_sigpause F
-GLIBC_2.4 __xpg_strerror_r F
-GLIBC_2.4 __xstat F
-GLIBC_2.4 __xstat64 F
-GLIBC_2.4 _authenticate F
-GLIBC_2.4 _dl_mcount_wrapper F
-GLIBC_2.4 _dl_mcount_wrapper_check F
-GLIBC_2.4 _environ D 0x4
-GLIBC_2.4 _exit F
-GLIBC_2.4 _flushlbf F
-GLIBC_2.4 _libc_intl_domainname D 0x5
-GLIBC_2.4 _longjmp F
-GLIBC_2.4 _mcleanup F
-GLIBC_2.4 _mcount F
-GLIBC_2.4 _nl_default_dirname D 0x12
-GLIBC_2.4 _nl_domain_bindings D 0x4
-GLIBC_2.4 _nl_msg_cat_cntr D 0x4
-GLIBC_2.4 _null_auth D 0xc
-GLIBC_2.4 _obstack_allocated_p F
-GLIBC_2.4 _obstack_begin F
-GLIBC_2.4 _obstack_begin_1 F
-GLIBC_2.4 _obstack_free F
-GLIBC_2.4 _obstack_memory_used F
-GLIBC_2.4 _obstack_newchunk F
-GLIBC_2.4 _res D 0x200
-GLIBC_2.4 _res_hconf D 0x30
-GLIBC_2.4 _rpc_dtablesize F
-GLIBC_2.4 _seterr_reply F
-GLIBC_2.4 _setjmp F
-GLIBC_2.4 _sys_errlist D 0x210
-GLIBC_2.4 _sys_nerr D 0x4
-GLIBC_2.4 _sys_siglist D 0x104
-GLIBC_2.4 _tolower F
-GLIBC_2.4 _toupper F
-GLIBC_2.4 a64l F
-GLIBC_2.4 abort F
-GLIBC_2.4 abs F
-GLIBC_2.4 accept F
-GLIBC_2.4 access F
-GLIBC_2.4 acct F
-GLIBC_2.4 addmntent F
-GLIBC_2.4 addseverity F
-GLIBC_2.4 adjtime F
-GLIBC_2.4 adjtimex F
-GLIBC_2.4 advance F
-GLIBC_2.4 alarm F
-GLIBC_2.4 alphasort F
-GLIBC_2.4 alphasort64 F
-GLIBC_2.4 argp_err_exit_status D 0x4
-GLIBC_2.4 argp_error F
-GLIBC_2.4 argp_failure F
-GLIBC_2.4 argp_help F
-GLIBC_2.4 argp_parse F
-GLIBC_2.4 argp_program_bug_address D 0x4
-GLIBC_2.4 argp_program_version D 0x4
-GLIBC_2.4 argp_program_version_hook D 0x4
-GLIBC_2.4 argp_state_help F
-GLIBC_2.4 argp_usage F
-GLIBC_2.4 argz_add F
-GLIBC_2.4 argz_add_sep F
-GLIBC_2.4 argz_append F
-GLIBC_2.4 argz_count F
-GLIBC_2.4 argz_create F
-GLIBC_2.4 argz_create_sep F
-GLIBC_2.4 argz_delete F
-GLIBC_2.4 argz_extract F
-GLIBC_2.4 argz_insert F
-GLIBC_2.4 argz_next F
-GLIBC_2.4 argz_replace F
-GLIBC_2.4 argz_stringify F
-GLIBC_2.4 asctime F
-GLIBC_2.4 asctime_r F
-GLIBC_2.4 asprintf F
-GLIBC_2.4 atof F
-GLIBC_2.4 atoi F
-GLIBC_2.4 atol F
-GLIBC_2.4 atoll F
-GLIBC_2.4 authdes_create F
-GLIBC_2.4 authdes_getucred F
-GLIBC_2.4 authdes_pk_create F
-GLIBC_2.4 authnone_create F
-GLIBC_2.4 authunix_create F
-GLIBC_2.4 authunix_create_default F
-GLIBC_2.4 backtrace F
-GLIBC_2.4 backtrace_symbols F
-GLIBC_2.4 backtrace_symbols_fd F
-GLIBC_2.4 basename F
-GLIBC_2.4 bcmp F
-GLIBC_2.4 bcopy F
-GLIBC_2.4 bdflush F
-GLIBC_2.4 bind F
-GLIBC_2.4 bind_textdomain_codeset F
-GLIBC_2.4 bindresvport F
-GLIBC_2.4 bindtextdomain F
-GLIBC_2.4 brk F
-GLIBC_2.4 bsd_signal F
-GLIBC_2.4 bsearch F
-GLIBC_2.4 btowc F
-GLIBC_2.4 bzero F
-GLIBC_2.4 calloc F
-GLIBC_2.4 callrpc F
-GLIBC_2.4 canonicalize_file_name F
-GLIBC_2.4 capget F
-GLIBC_2.4 capset F
-GLIBC_2.4 catclose F
-GLIBC_2.4 catgets F
-GLIBC_2.4 catopen F
-GLIBC_2.4 cbc_crypt F
-GLIBC_2.4 cfgetispeed F
-GLIBC_2.4 cfgetospeed F
-GLIBC_2.4 cfmakeraw F
-GLIBC_2.4 cfree F
-GLIBC_2.4 cfsetispeed F
-GLIBC_2.4 cfsetospeed F
-GLIBC_2.4 cfsetspeed F
-GLIBC_2.4 chdir F
-GLIBC_2.4 chflags F
-GLIBC_2.4 chmod F
-GLIBC_2.4 chown F
-GLIBC_2.4 chroot F
-GLIBC_2.4 clearenv F
-GLIBC_2.4 clearerr F
-GLIBC_2.4 clearerr_unlocked F
-GLIBC_2.4 clnt_broadcast F
-GLIBC_2.4 clnt_create F
-GLIBC_2.4 clnt_pcreateerror F
-GLIBC_2.4 clnt_perrno F
-GLIBC_2.4 clnt_perror F
-GLIBC_2.4 clnt_spcreateerror F
-GLIBC_2.4 clnt_sperrno F
-GLIBC_2.4 clnt_sperror F
-GLIBC_2.4 clntraw_create F
-GLIBC_2.4 clnttcp_create F
-GLIBC_2.4 clntudp_bufcreate F
-GLIBC_2.4 clntudp_create F
-GLIBC_2.4 clntunix_create F
-GLIBC_2.4 clock F
-GLIBC_2.4 clone F
-GLIBC_2.4 close F
-GLIBC_2.4 closedir F
-GLIBC_2.4 closelog F
-GLIBC_2.4 confstr F
-GLIBC_2.4 connect F
-GLIBC_2.4 copysign F
-GLIBC_2.4 copysignf F
-GLIBC_2.4 copysignl F
-GLIBC_2.4 creat F
-GLIBC_2.4 creat64 F
-GLIBC_2.4 create_module F
-GLIBC_2.4 ctermid F
-GLIBC_2.4 ctime F
-GLIBC_2.4 ctime_r F
-GLIBC_2.4 cuserid F
-GLIBC_2.4 daemon F
-GLIBC_2.4 daylight D 0x4
-GLIBC_2.4 dcgettext F
-GLIBC_2.4 dcngettext F
-GLIBC_2.4 delete_module F
-GLIBC_2.4 des_setparity F
-GLIBC_2.4 dgettext F
-GLIBC_2.4 difftime F
-GLIBC_2.4 dirfd F
-GLIBC_2.4 dirname F
-GLIBC_2.4 div F
-GLIBC_2.4 dl_iterate_phdr F
-GLIBC_2.4 dngettext F
-GLIBC_2.4 dprintf F
-GLIBC_2.4 drand48 F
-GLIBC_2.4 drand48_r F
-GLIBC_2.4 dup F
-GLIBC_2.4 dup2 F
-GLIBC_2.4 duplocale F
-GLIBC_2.4 dysize F
-GLIBC_2.4 eaccess F
-GLIBC_2.4 ecb_crypt F
-GLIBC_2.4 ecvt F
-GLIBC_2.4 ecvt_r F
-GLIBC_2.4 endaliasent F
-GLIBC_2.4 endfsent F
-GLIBC_2.4 endgrent F
-GLIBC_2.4 endhostent F
-GLIBC_2.4 endmntent F
-GLIBC_2.4 endnetent F
-GLIBC_2.4 endnetgrent F
-GLIBC_2.4 endprotoent F
-GLIBC_2.4 endpwent F
-GLIBC_2.4 endrpcent F
-GLIBC_2.4 endservent F
-GLIBC_2.4 endspent F
-GLIBC_2.4 endttyent F
-GLIBC_2.4 endusershell F
-GLIBC_2.4 endutent F
-GLIBC_2.4 endutxent F
-GLIBC_2.4 environ D 0x4
-GLIBC_2.4 envz_add F
-GLIBC_2.4 envz_entry F
-GLIBC_2.4 envz_get F
-GLIBC_2.4 envz_merge F
-GLIBC_2.4 envz_remove F
-GLIBC_2.4 envz_strip F
-GLIBC_2.4 epoll_create F
-GLIBC_2.4 epoll_ctl F
-GLIBC_2.4 epoll_wait F
-GLIBC_2.4 erand48 F
-GLIBC_2.4 erand48_r F
-GLIBC_2.4 err F
-GLIBC_2.4 error F
-GLIBC_2.4 error_at_line F
-GLIBC_2.4 error_message_count D 0x4
-GLIBC_2.4 error_one_per_line D 0x4
-GLIBC_2.4 error_print_progname D 0x4
-GLIBC_2.4 errx F
-GLIBC_2.4 ether_aton F
-GLIBC_2.4 ether_aton_r F
-GLIBC_2.4 ether_hostton F
-GLIBC_2.4 ether_line F
-GLIBC_2.4 ether_ntoa F
-GLIBC_2.4 ether_ntoa_r F
-GLIBC_2.4 ether_ntohost F
-GLIBC_2.4 euidaccess F
-GLIBC_2.4 execl F
-GLIBC_2.4 execle F
-GLIBC_2.4 execlp F
-GLIBC_2.4 execv F
-GLIBC_2.4 execve F
-GLIBC_2.4 execvp F
-GLIBC_2.4 exit F
-GLIBC_2.4 faccessat F
-GLIBC_2.4 fattach F
-GLIBC_2.4 fchdir F
-GLIBC_2.4 fchflags F
-GLIBC_2.4 fchmod F
-GLIBC_2.4 fchmodat F
-GLIBC_2.4 fchown F
-GLIBC_2.4 fchownat F
-GLIBC_2.4 fclose F
-GLIBC_2.4 fcloseall F
-GLIBC_2.4 fcntl F
-GLIBC_2.4 fcvt F
-GLIBC_2.4 fcvt_r F
-GLIBC_2.4 fdatasync F
-GLIBC_2.4 fdetach F
-GLIBC_2.4 fdopen F
-GLIBC_2.4 fdopendir F
-GLIBC_2.4 feof F
-GLIBC_2.4 feof_unlocked F
-GLIBC_2.4 ferror F
-GLIBC_2.4 ferror_unlocked F
-GLIBC_2.4 fexecve F
-GLIBC_2.4 fflush F
-GLIBC_2.4 fflush_unlocked F
-GLIBC_2.4 ffs F
-GLIBC_2.4 ffsl F
-GLIBC_2.4 ffsll F
-GLIBC_2.4 fgetc F
-GLIBC_2.4 fgetc_unlocked F
-GLIBC_2.4 fgetgrent F
-GLIBC_2.4 fgetgrent_r F
-GLIBC_2.4 fgetpos F
-GLIBC_2.4 fgetpos64 F
-GLIBC_2.4 fgetpwent F
-GLIBC_2.4 fgetpwent_r F
-GLIBC_2.4 fgets F
-GLIBC_2.4 fgets_unlocked F
-GLIBC_2.4 fgetspent F
-GLIBC_2.4 fgetspent_r F
-GLIBC_2.4 fgetwc F
-GLIBC_2.4 fgetwc_unlocked F
-GLIBC_2.4 fgetws F
-GLIBC_2.4 fgetws_unlocked F
-GLIBC_2.4 fgetxattr F
-GLIBC_2.4 fileno F
-GLIBC_2.4 fileno_unlocked F
-GLIBC_2.4 finite F
-GLIBC_2.4 finitef F
-GLIBC_2.4 finitel F
-GLIBC_2.4 flistxattr F
-GLIBC_2.4 flock F
-GLIBC_2.4 flockfile F
-GLIBC_2.4 fmemopen F
-GLIBC_2.4 fmtmsg F
-GLIBC_2.4 fnmatch F
-GLIBC_2.4 fopen F
-GLIBC_2.4 fopen64 F
-GLIBC_2.4 fopencookie F
-GLIBC_2.4 fork F
-GLIBC_2.4 fpathconf F
-GLIBC_2.4 fprintf F
-GLIBC_2.4 fputc F
-GLIBC_2.4 fputc_unlocked F
-GLIBC_2.4 fputs F
-GLIBC_2.4 fputs_unlocked F
-GLIBC_2.4 fputwc F
-GLIBC_2.4 fputwc_unlocked F
-GLIBC_2.4 fputws F
-GLIBC_2.4 fputws_unlocked F
-GLIBC_2.4 fread F
-GLIBC_2.4 fread_unlocked F
-GLIBC_2.4 free F
-GLIBC_2.4 freeaddrinfo F
-GLIBC_2.4 freeifaddrs F
-GLIBC_2.4 freelocale F
-GLIBC_2.4 fremovexattr F
-GLIBC_2.4 freopen F
-GLIBC_2.4 freopen64 F
-GLIBC_2.4 frexp F
-GLIBC_2.4 frexpf F
-GLIBC_2.4 frexpl F
-GLIBC_2.4 fscanf F
-GLIBC_2.4 fseek F
-GLIBC_2.4 fseeko F
-GLIBC_2.4 fseeko64 F
-GLIBC_2.4 fsetpos F
-GLIBC_2.4 fsetpos64 F
-GLIBC_2.4 fsetxattr F
-GLIBC_2.4 fstatfs F
-GLIBC_2.4 fstatfs64 F
-GLIBC_2.4 fstatvfs F
-GLIBC_2.4 fstatvfs64 F
-GLIBC_2.4 fsync F
-GLIBC_2.4 ftell F
-GLIBC_2.4 ftello F
-GLIBC_2.4 ftello64 F
-GLIBC_2.4 ftime F
-GLIBC_2.4 ftok F
-GLIBC_2.4 ftruncate F
-GLIBC_2.4 ftruncate64 F
-GLIBC_2.4 ftrylockfile F
-GLIBC_2.4 fts_children F
-GLIBC_2.4 fts_close F
-GLIBC_2.4 fts_open F
-GLIBC_2.4 fts_read F
-GLIBC_2.4 fts_set F
-GLIBC_2.4 ftw F
-GLIBC_2.4 ftw64 F
-GLIBC_2.4 funlockfile F
-GLIBC_2.4 futimes F
-GLIBC_2.4 futimesat F
-GLIBC_2.4 fwide F
-GLIBC_2.4 fwprintf F
-GLIBC_2.4 fwrite F
-GLIBC_2.4 fwrite_unlocked F
-GLIBC_2.4 fwscanf F
-GLIBC_2.4 gai_strerror F
-GLIBC_2.4 gcvt F
-GLIBC_2.4 get_avphys_pages F
-GLIBC_2.4 get_current_dir_name F
-GLIBC_2.4 get_kernel_syms F
-GLIBC_2.4 get_myaddress F
-GLIBC_2.4 get_nprocs F
-GLIBC_2.4 get_nprocs_conf F
-GLIBC_2.4 get_phys_pages F
-GLIBC_2.4 getaddrinfo F
-GLIBC_2.4 getaliasbyname F
-GLIBC_2.4 getaliasbyname_r F
-GLIBC_2.4 getaliasent F
-GLIBC_2.4 getaliasent_r F
-GLIBC_2.4 getc F
-GLIBC_2.4 getc_unlocked F
-GLIBC_2.4 getchar F
-GLIBC_2.4 getchar_unlocked F
-GLIBC_2.4 getcontext F
-GLIBC_2.4 getcwd F
-GLIBC_2.4 getdate F
-GLIBC_2.4 getdate_err D 0x4
-GLIBC_2.4 getdate_r F
-GLIBC_2.4 getdelim F
-GLIBC_2.4 getdirentries F
-GLIBC_2.4 getdirentries64 F
-GLIBC_2.4 getdomainname F
-GLIBC_2.4 getdtablesize F
-GLIBC_2.4 getegid F
-GLIBC_2.4 getenv F
-GLIBC_2.4 geteuid F
-GLIBC_2.4 getfsent F
-GLIBC_2.4 getfsfile F
-GLIBC_2.4 getfsspec F
-GLIBC_2.4 getgid F
-GLIBC_2.4 getgrent F
-GLIBC_2.4 getgrent_r F
-GLIBC_2.4 getgrgid F
-GLIBC_2.4 getgrgid_r F
-GLIBC_2.4 getgrnam F
-GLIBC_2.4 getgrnam_r F
-GLIBC_2.4 getgrouplist F
-GLIBC_2.4 getgroups F
-GLIBC_2.4 gethostbyaddr F
-GLIBC_2.4 gethostbyaddr_r F
-GLIBC_2.4 gethostbyname F
-GLIBC_2.4 gethostbyname2 F
-GLIBC_2.4 gethostbyname2_r F
-GLIBC_2.4 gethostbyname_r F
-GLIBC_2.4 gethostent F
-GLIBC_2.4 gethostent_r F
-GLIBC_2.4 gethostid F
-GLIBC_2.4 gethostname F
-GLIBC_2.4 getifaddrs F
-GLIBC_2.4 getipv4sourcefilter F
-GLIBC_2.4 getitimer F
-GLIBC_2.4 getline F
-GLIBC_2.4 getloadavg F
-GLIBC_2.4 getlogin F
-GLIBC_2.4 getlogin_r F
-GLIBC_2.4 getmntent F
-GLIBC_2.4 getmntent_r F
-GLIBC_2.4 getmsg F
-GLIBC_2.4 getnameinfo F
-GLIBC_2.4 getnetbyaddr F
-GLIBC_2.4 getnetbyaddr_r F
-GLIBC_2.4 getnetbyname F
-GLIBC_2.4 getnetbyname_r F
-GLIBC_2.4 getnetent F
-GLIBC_2.4 getnetent_r F
-GLIBC_2.4 getnetgrent F
-GLIBC_2.4 getnetgrent_r F
-GLIBC_2.4 getnetname F
-GLIBC_2.4 getopt F
-GLIBC_2.4 getopt_long F
-GLIBC_2.4 getopt_long_only F
-GLIBC_2.4 getpagesize F
-GLIBC_2.4 getpass F
-GLIBC_2.4 getpeername F
-GLIBC_2.4 getpgid F
-GLIBC_2.4 getpgrp F
-GLIBC_2.4 getpid F
-GLIBC_2.4 getpmsg F
-GLIBC_2.4 getppid F
-GLIBC_2.4 getpriority F
-GLIBC_2.4 getprotobyname F
-GLIBC_2.4 getprotobyname_r F
-GLIBC_2.4 getprotobynumber F
-GLIBC_2.4 getprotobynumber_r F
-GLIBC_2.4 getprotoent F
-GLIBC_2.4 getprotoent_r F
-GLIBC_2.4 getpt F
-GLIBC_2.4 getpublickey F
-GLIBC_2.4 getpw F
-GLIBC_2.4 getpwent F
-GLIBC_2.4 getpwent_r F
-GLIBC_2.4 getpwnam F
-GLIBC_2.4 getpwnam_r F
-GLIBC_2.4 getpwuid F
-GLIBC_2.4 getpwuid_r F
-GLIBC_2.4 getresgid F
-GLIBC_2.4 getresuid F
-GLIBC_2.4 getrlimit F
-GLIBC_2.4 getrlimit64 F
-GLIBC_2.4 getrpcbyname F
-GLIBC_2.4 getrpcbyname_r F
-GLIBC_2.4 getrpcbynumber F
-GLIBC_2.4 getrpcbynumber_r F
-GLIBC_2.4 getrpcent F
-GLIBC_2.4 getrpcent_r F
-GLIBC_2.4 getrpcport F
-GLIBC_2.4 getrusage F
-GLIBC_2.4 gets F
-GLIBC_2.4 getsecretkey F
-GLIBC_2.4 getservbyname F
-GLIBC_2.4 getservbyname_r F
-GLIBC_2.4 getservbyport F
-GLIBC_2.4 getservbyport_r F
-GLIBC_2.4 getservent F
-GLIBC_2.4 getservent_r F
-GLIBC_2.4 getsid F
-GLIBC_2.4 getsockname F
-GLIBC_2.4 getsockopt F
-GLIBC_2.4 getsourcefilter F
-GLIBC_2.4 getspent F
-GLIBC_2.4 getspent_r F
-GLIBC_2.4 getspnam F
-GLIBC_2.4 getspnam_r F
-GLIBC_2.4 getsubopt F
-GLIBC_2.4 gettext F
-GLIBC_2.4 gettimeofday F
-GLIBC_2.4 getttyent F
-GLIBC_2.4 getttynam F
-GLIBC_2.4 getuid F
-GLIBC_2.4 getusershell F
-GLIBC_2.4 getutent F
-GLIBC_2.4 getutent_r F
-GLIBC_2.4 getutid F
-GLIBC_2.4 getutid_r F
-GLIBC_2.4 getutline F
-GLIBC_2.4 getutline_r F
-GLIBC_2.4 getutmp F
-GLIBC_2.4 getutmpx F
-GLIBC_2.4 getutxent F
-GLIBC_2.4 getutxid F
-GLIBC_2.4 getutxline F
-GLIBC_2.4 getw F
-GLIBC_2.4 getwc F
-GLIBC_2.4 getwc_unlocked F
-GLIBC_2.4 getwchar F
-GLIBC_2.4 getwchar_unlocked F
-GLIBC_2.4 getwd F
-GLIBC_2.4 getxattr F
-GLIBC_2.4 glob F
-GLIBC_2.4 glob64 F
-GLIBC_2.4 glob_pattern_p F
-GLIBC_2.4 globfree F
-GLIBC_2.4 globfree64 F
-GLIBC_2.4 gmtime F
-GLIBC_2.4 gmtime_r F
-GLIBC_2.4 gnu_dev_major F
-GLIBC_2.4 gnu_dev_makedev F
-GLIBC_2.4 gnu_dev_minor F
-GLIBC_2.4 gnu_get_libc_release F
-GLIBC_2.4 gnu_get_libc_version F
-GLIBC_2.4 grantpt F
-GLIBC_2.4 group_member F
-GLIBC_2.4 gsignal F
-GLIBC_2.4 gtty F
-GLIBC_2.4 h_errlist D 0x14
-GLIBC_2.4 h_nerr D 0x4
-GLIBC_2.4 hasmntopt F
-GLIBC_2.4 hcreate F
-GLIBC_2.4 hcreate_r F
-GLIBC_2.4 hdestroy F
-GLIBC_2.4 hdestroy_r F
-GLIBC_2.4 herror F
-GLIBC_2.4 host2netname F
-GLIBC_2.4 hsearch F
-GLIBC_2.4 hsearch_r F
-GLIBC_2.4 hstrerror F
-GLIBC_2.4 htonl F
-GLIBC_2.4 htons F
-GLIBC_2.4 iconv F
-GLIBC_2.4 iconv_close F
-GLIBC_2.4 iconv_open F
-GLIBC_2.4 if_freenameindex F
-GLIBC_2.4 if_indextoname F
-GLIBC_2.4 if_nameindex F
-GLIBC_2.4 if_nametoindex F
-GLIBC_2.4 imaxabs F
-GLIBC_2.4 imaxdiv F
-GLIBC_2.4 in6addr_any D 0x10
-GLIBC_2.4 in6addr_loopback D 0x10
-GLIBC_2.4 inb F
-GLIBC_2.4 index F
-GLIBC_2.4 inet6_option_alloc F
-GLIBC_2.4 inet6_option_append F
-GLIBC_2.4 inet6_option_find F
-GLIBC_2.4 inet6_option_init F
-GLIBC_2.4 inet6_option_next F
-GLIBC_2.4 inet6_option_space F
-GLIBC_2.4 inet_addr F
-GLIBC_2.4 inet_aton F
-GLIBC_2.4 inet_lnaof F
-GLIBC_2.4 inet_makeaddr F
-GLIBC_2.4 inet_netof F
-GLIBC_2.4 inet_network F
-GLIBC_2.4 inet_nsap_addr F
-GLIBC_2.4 inet_nsap_ntoa F
-GLIBC_2.4 inet_ntoa F
-GLIBC_2.4 inet_ntop F
-GLIBC_2.4 inet_pton F
-GLIBC_2.4 init_module F
-GLIBC_2.4 initgroups F
-GLIBC_2.4 initstate F
-GLIBC_2.4 initstate_r F
-GLIBC_2.4 inl F
-GLIBC_2.4 innetgr F
-GLIBC_2.4 inotify_add_watch F
-GLIBC_2.4 inotify_init F
-GLIBC_2.4 inotify_rm_watch F
-GLIBC_2.4 insque F
-GLIBC_2.4 inw F
-GLIBC_2.4 ioctl F
-GLIBC_2.4 ioperm F
-GLIBC_2.4 iopl F
-GLIBC_2.4 iruserok F
-GLIBC_2.4 iruserok_af F
-GLIBC_2.4 isalnum F
-GLIBC_2.4 isalnum_l F
-GLIBC_2.4 isalpha F
-GLIBC_2.4 isalpha_l F
-GLIBC_2.4 isascii F
-GLIBC_2.4 isastream F
-GLIBC_2.4 isatty F
-GLIBC_2.4 isblank F
-GLIBC_2.4 isblank_l F
-GLIBC_2.4 iscntrl F
-GLIBC_2.4 iscntrl_l F
-GLIBC_2.4 isctype F
-GLIBC_2.4 isdigit F
-GLIBC_2.4 isdigit_l F
-GLIBC_2.4 isfdtype F
-GLIBC_2.4 isgraph F
-GLIBC_2.4 isgraph_l F
-GLIBC_2.4 isinf F
-GLIBC_2.4 isinff F
-GLIBC_2.4 isinfl F
-GLIBC_2.4 islower F
-GLIBC_2.4 islower_l F
-GLIBC_2.4 isnan F
-GLIBC_2.4 isnanf F
-GLIBC_2.4 isnanl F
-GLIBC_2.4 isprint F
-GLIBC_2.4 isprint_l F
-GLIBC_2.4 ispunct F
-GLIBC_2.4 ispunct_l F
-GLIBC_2.4 isspace F
-GLIBC_2.4 isspace_l F
-GLIBC_2.4 isupper F
-GLIBC_2.4 isupper_l F
-GLIBC_2.4 iswalnum F
-GLIBC_2.4 iswalnum_l F
-GLIBC_2.4 iswalpha F
-GLIBC_2.4 iswalpha_l F
-GLIBC_2.4 iswblank F
-GLIBC_2.4 iswblank_l F
-GLIBC_2.4 iswcntrl F
-GLIBC_2.4 iswcntrl_l F
-GLIBC_2.4 iswctype F
-GLIBC_2.4 iswctype_l F
-GLIBC_2.4 iswdigit F
-GLIBC_2.4 iswdigit_l F
-GLIBC_2.4 iswgraph F
-GLIBC_2.4 iswgraph_l F
-GLIBC_2.4 iswlower F
-GLIBC_2.4 iswlower_l F
-GLIBC_2.4 iswprint F
-GLIBC_2.4 iswprint_l F
-GLIBC_2.4 iswpunct F
-GLIBC_2.4 iswpunct_l F
-GLIBC_2.4 iswspace F
-GLIBC_2.4 iswspace_l F
-GLIBC_2.4 iswupper F
-GLIBC_2.4 iswupper_l F
-GLIBC_2.4 iswxdigit F
-GLIBC_2.4 iswxdigit_l F
-GLIBC_2.4 isxdigit F
-GLIBC_2.4 isxdigit_l F
-GLIBC_2.4 jrand48 F
-GLIBC_2.4 jrand48_r F
-GLIBC_2.4 key_decryptsession F
-GLIBC_2.4 key_decryptsession_pk F
-GLIBC_2.4 key_encryptsession F
-GLIBC_2.4 key_encryptsession_pk F
-GLIBC_2.4 key_gendes F
-GLIBC_2.4 key_get_conv F
-GLIBC_2.4 key_secretkey_is_set F
-GLIBC_2.4 key_setnet F
-GLIBC_2.4 key_setsecret F
-GLIBC_2.4 kill F
-GLIBC_2.4 killpg F
-GLIBC_2.4 klogctl F
-GLIBC_2.4 l64a F
-GLIBC_2.4 labs F
-GLIBC_2.4 lchmod F
-GLIBC_2.4 lchown F
-GLIBC_2.4 lckpwdf F
-GLIBC_2.4 lcong48 F
-GLIBC_2.4 lcong48_r F
-GLIBC_2.4 ldexp F
-GLIBC_2.4 ldexpf F
-GLIBC_2.4 ldexpl F
-GLIBC_2.4 ldiv F
-GLIBC_2.4 lfind F
-GLIBC_2.4 lgetxattr F
-GLIBC_2.4 link F
-GLIBC_2.4 linkat F
-GLIBC_2.4 listen F
-GLIBC_2.4 listxattr F
-GLIBC_2.4 llabs F
-GLIBC_2.4 lldiv F
-GLIBC_2.4 llistxattr F
-GLIBC_2.4 llseek F
-GLIBC_2.4 loc1 D 0x4
-GLIBC_2.4 loc2 D 0x4
-GLIBC_2.4 localeconv F
-GLIBC_2.4 localtime F
-GLIBC_2.4 localtime_r F
-GLIBC_2.4 lockf F
-GLIBC_2.4 lockf64 F
-GLIBC_2.4 locs D 0x4
-GLIBC_2.4 longjmp F
-GLIBC_2.4 lrand48 F
-GLIBC_2.4 lrand48_r F
-GLIBC_2.4 lremovexattr F
-GLIBC_2.4 lsearch F
-GLIBC_2.4 lseek F
-GLIBC_2.4 lseek64 F
-GLIBC_2.4 lsetxattr F
-GLIBC_2.4 lutimes F
-GLIBC_2.4 madvise F
-GLIBC_2.4 makecontext F
-GLIBC_2.4 mallinfo F
-GLIBC_2.4 malloc F
-GLIBC_2.4 malloc_get_state F
-GLIBC_2.4 malloc_set_state F
-GLIBC_2.4 malloc_stats F
-GLIBC_2.4 malloc_trim F
-GLIBC_2.4 malloc_usable_size F
-GLIBC_2.4 mallopt F
-GLIBC_2.4 mallwatch D 0x4
-GLIBC_2.4 mblen F
-GLIBC_2.4 mbrlen F
-GLIBC_2.4 mbrtowc F
-GLIBC_2.4 mbsinit F
-GLIBC_2.4 mbsnrtowcs F
-GLIBC_2.4 mbsrtowcs F
-GLIBC_2.4 mbstowcs F
-GLIBC_2.4 mbtowc F
-GLIBC_2.4 mcheck F
-GLIBC_2.4 mcheck_check_all F
-GLIBC_2.4 mcheck_pedantic F
-GLIBC_2.4 mcount F
-GLIBC_2.4 memalign F
-GLIBC_2.4 memccpy F
-GLIBC_2.4 memchr F
-GLIBC_2.4 memcmp F
-GLIBC_2.4 memcpy F
-GLIBC_2.4 memfrob F
-GLIBC_2.4 memmem F
-GLIBC_2.4 memmove F
-GLIBC_2.4 mempcpy F
-GLIBC_2.4 memrchr F
-GLIBC_2.4 memset F
-GLIBC_2.4 mincore F
-GLIBC_2.4 mkdir F
-GLIBC_2.4 mkdirat F
-GLIBC_2.4 mkdtemp F
-GLIBC_2.4 mkfifo F
-GLIBC_2.4 mkfifoat F
-GLIBC_2.4 mkstemp F
-GLIBC_2.4 mkstemp64 F
-GLIBC_2.4 mktemp F
-GLIBC_2.4 mktime F
-GLIBC_2.4 mlock F
-GLIBC_2.4 mlockall F
-GLIBC_2.4 mmap F
-GLIBC_2.4 mmap64 F
-GLIBC_2.4 modf F
-GLIBC_2.4 modff F
-GLIBC_2.4 modfl F
-GLIBC_2.4 moncontrol F
-GLIBC_2.4 monstartup F
-GLIBC_2.4 mount F
-GLIBC_2.4 mprobe F
-GLIBC_2.4 mprotect F
-GLIBC_2.4 mrand48 F
-GLIBC_2.4 mrand48_r F
-GLIBC_2.4 mremap F
-GLIBC_2.4 msgctl F
-GLIBC_2.4 msgget F
-GLIBC_2.4 msgrcv F
-GLIBC_2.4 msgsnd F
-GLIBC_2.4 msync F
-GLIBC_2.4 mtrace F
-GLIBC_2.4 munlock F
-GLIBC_2.4 munlockall F
-GLIBC_2.4 munmap F
-GLIBC_2.4 muntrace F
-GLIBC_2.4 nanosleep F
-GLIBC_2.4 netname2host F
-GLIBC_2.4 netname2user F
-GLIBC_2.4 newlocale F
-GLIBC_2.4 nfsservctl F
-GLIBC_2.4 nftw F
-GLIBC_2.4 nftw64 F
-GLIBC_2.4 ngettext F
-GLIBC_2.4 nice F
-GLIBC_2.4 nl_langinfo F
-GLIBC_2.4 nl_langinfo_l F
-GLIBC_2.4 nrand48 F
-GLIBC_2.4 nrand48_r F
-GLIBC_2.4 ntohl F
-GLIBC_2.4 ntohs F
-GLIBC_2.4 ntp_adjtime F
-GLIBC_2.4 ntp_gettime F
-GLIBC_2.4 obstack_alloc_failed_handler D 0x4
-GLIBC_2.4 obstack_exit_failure D 0x4
-GLIBC_2.4 obstack_free F
-GLIBC_2.4 obstack_printf F
-GLIBC_2.4 obstack_vprintf F
-GLIBC_2.4 on_exit F
-GLIBC_2.4 open F
-GLIBC_2.4 open64 F
-GLIBC_2.4 open_memstream F
-GLIBC_2.4 open_wmemstream F
-GLIBC_2.4 openat F
-GLIBC_2.4 openat64 F
-GLIBC_2.4 opendir F
-GLIBC_2.4 openlog F
-GLIBC_2.4 optarg D 0x4
-GLIBC_2.4 opterr D 0x4
-GLIBC_2.4 optind D 0x4
-GLIBC_2.4 optopt D 0x4
-GLIBC_2.4 outb F
-GLIBC_2.4 outl F
-GLIBC_2.4 outw F
-GLIBC_2.4 parse_printf_format F
-GLIBC_2.4 passwd2des F
-GLIBC_2.4 pathconf F
-GLIBC_2.4 pause F
-GLIBC_2.4 pclose F
-GLIBC_2.4 perror F
-GLIBC_2.4 personality F
-GLIBC_2.4 pipe F
-GLIBC_2.4 pivot_root F
-GLIBC_2.4 pmap_getmaps F
-GLIBC_2.4 pmap_getport F
-GLIBC_2.4 pmap_rmtcall F
-GLIBC_2.4 pmap_set F
-GLIBC_2.4 pmap_unset F
-GLIBC_2.4 poll F
-GLIBC_2.4 popen F
-GLIBC_2.4 posix_fadvise F
-GLIBC_2.4 posix_fadvise64 F
-GLIBC_2.4 posix_fallocate F
-GLIBC_2.4 posix_fallocate64 F
-GLIBC_2.4 posix_madvise F
-GLIBC_2.4 posix_memalign F
-GLIBC_2.4 posix_openpt F
-GLIBC_2.4 posix_spawn F
-GLIBC_2.4 posix_spawn_file_actions_addclose F
-GLIBC_2.4 posix_spawn_file_actions_adddup2 F
-GLIBC_2.4 posix_spawn_file_actions_addopen F
-GLIBC_2.4 posix_spawn_file_actions_destroy F
-GLIBC_2.4 posix_spawn_file_actions_init F
-GLIBC_2.4 posix_spawnattr_destroy F
-GLIBC_2.4 posix_spawnattr_getflags F
-GLIBC_2.4 posix_spawnattr_getpgroup F
-GLIBC_2.4 posix_spawnattr_getschedparam F
-GLIBC_2.4 posix_spawnattr_getschedpolicy F
-GLIBC_2.4 posix_spawnattr_getsigdefault F
-GLIBC_2.4 posix_spawnattr_getsigmask F
-GLIBC_2.4 posix_spawnattr_init F
-GLIBC_2.4 posix_spawnattr_setflags F
-GLIBC_2.4 posix_spawnattr_setpgroup F
-GLIBC_2.4 posix_spawnattr_setschedparam F
-GLIBC_2.4 posix_spawnattr_setschedpolicy F
-GLIBC_2.4 posix_spawnattr_setsigdefault F
-GLIBC_2.4 posix_spawnattr_setsigmask F
-GLIBC_2.4 posix_spawnp F
-GLIBC_2.4 ppoll F
-GLIBC_2.4 prctl F
-GLIBC_2.4 pread F
-GLIBC_2.4 pread64 F
-GLIBC_2.4 printf F
-GLIBC_2.4 printf_size F
-GLIBC_2.4 printf_size_info F
-GLIBC_2.4 profil F
-GLIBC_2.4 profil_counter F
-GLIBC_2.4 program_invocation_name D 0x4
-GLIBC_2.4 program_invocation_short_name D 0x4
-GLIBC_2.4 pselect F
-GLIBC_2.4 psignal F
-GLIBC_2.4 pthread_attr_destroy F
-GLIBC_2.4 pthread_attr_getdetachstate F
-GLIBC_2.4 pthread_attr_getinheritsched F
-GLIBC_2.4 pthread_attr_getschedparam F
-GLIBC_2.4 pthread_attr_getschedpolicy F
-GLIBC_2.4 pthread_attr_getscope F
-GLIBC_2.4 pthread_attr_init F
-GLIBC_2.4 pthread_attr_setdetachstate F
-GLIBC_2.4 pthread_attr_setinheritsched F
-GLIBC_2.4 pthread_attr_setschedparam F
-GLIBC_2.4 pthread_attr_setschedpolicy F
-GLIBC_2.4 pthread_attr_setscope F
-GLIBC_2.4 pthread_cond_broadcast F
-GLIBC_2.4 pthread_cond_destroy F
-GLIBC_2.4 pthread_cond_init F
-GLIBC_2.4 pthread_cond_signal F
-GLIBC_2.4 pthread_cond_timedwait F
-GLIBC_2.4 pthread_cond_wait F
-GLIBC_2.4 pthread_condattr_destroy F
-GLIBC_2.4 pthread_condattr_init F
-GLIBC_2.4 pthread_equal F
-GLIBC_2.4 pthread_exit F
-GLIBC_2.4 pthread_getschedparam F
-GLIBC_2.4 pthread_mutex_destroy F
-GLIBC_2.4 pthread_mutex_init F
-GLIBC_2.4 pthread_mutex_lock F
-GLIBC_2.4 pthread_mutex_unlock F
-GLIBC_2.4 pthread_self F
-GLIBC_2.4 pthread_setcancelstate F
-GLIBC_2.4 pthread_setcanceltype F
-GLIBC_2.4 pthread_setschedparam F
-GLIBC_2.4 ptrace F
-GLIBC_2.4 ptsname F
-GLIBC_2.4 ptsname_r F
-GLIBC_2.4 putc F
-GLIBC_2.4 putc_unlocked F
-GLIBC_2.4 putchar F
-GLIBC_2.4 putchar_unlocked F
-GLIBC_2.4 putenv F
-GLIBC_2.4 putgrent F
-GLIBC_2.4 putmsg F
-GLIBC_2.4 putpmsg F
-GLIBC_2.4 putpwent F
-GLIBC_2.4 puts F
-GLIBC_2.4 putspent F
-GLIBC_2.4 pututline F
-GLIBC_2.4 pututxline F
-GLIBC_2.4 putw F
-GLIBC_2.4 putwc F
-GLIBC_2.4 putwc_unlocked F
-GLIBC_2.4 putwchar F
-GLIBC_2.4 putwchar_unlocked F
-GLIBC_2.4 pvalloc F
-GLIBC_2.4 pwrite F
-GLIBC_2.4 pwrite64 F
-GLIBC_2.4 qecvt F
-GLIBC_2.4 qecvt_r F
-GLIBC_2.4 qfcvt F
-GLIBC_2.4 qfcvt_r F
-GLIBC_2.4 qgcvt F
-GLIBC_2.4 qsort F
-GLIBC_2.4 query_module F
-GLIBC_2.4 quotactl F
-GLIBC_2.4 raise F
-GLIBC_2.4 rand F
-GLIBC_2.4 rand_r F
-GLIBC_2.4 random F
-GLIBC_2.4 random_r F
-GLIBC_2.4 rawmemchr F
-GLIBC_2.4 rcmd F
-GLIBC_2.4 rcmd_af F
-GLIBC_2.4 re_comp F
-GLIBC_2.4 re_compile_fastmap F
-GLIBC_2.4 re_compile_pattern F
-GLIBC_2.4 re_exec F
-GLIBC_2.4 re_match F
-GLIBC_2.4 re_match_2 F
-GLIBC_2.4 re_search F
-GLIBC_2.4 re_search_2 F
-GLIBC_2.4 re_set_registers F
-GLIBC_2.4 re_set_syntax F
-GLIBC_2.4 re_syntax_options D 0x4
-GLIBC_2.4 read F
-GLIBC_2.4 readahead F
-GLIBC_2.4 readdir F
-GLIBC_2.4 readdir64 F
-GLIBC_2.4 readdir64_r F
-GLIBC_2.4 readdir_r F
-GLIBC_2.4 readlink F
-GLIBC_2.4 readlinkat F
-GLIBC_2.4 readv F
-GLIBC_2.4 realloc F
-GLIBC_2.4 realpath F
-GLIBC_2.4 reboot F
-GLIBC_2.4 recv F
-GLIBC_2.4 recvfrom F
-GLIBC_2.4 recvmsg F
-GLIBC_2.4 regcomp F
-GLIBC_2.4 regerror F
-GLIBC_2.4 regexec F
-GLIBC_2.4 regfree F
-GLIBC_2.4 register_printf_function F
-GLIBC_2.4 registerrpc F
-GLIBC_2.4 remap_file_pages F
-GLIBC_2.4 remove F
-GLIBC_2.4 removexattr F
-GLIBC_2.4 remque F
-GLIBC_2.4 rename F
-GLIBC_2.4 renameat F
-GLIBC_2.4 revoke F
-GLIBC_2.4 rewind F
-GLIBC_2.4 rewinddir F
-GLIBC_2.4 rexec F
-GLIBC_2.4 rexec_af F
-GLIBC_2.4 rexecoptions D 0x4
-GLIBC_2.4 rindex F
-GLIBC_2.4 rmdir F
-GLIBC_2.4 rpc_createerr D 0x10
-GLIBC_2.4 rpmatch F
-GLIBC_2.4 rresvport F
-GLIBC_2.4 rresvport_af F
-GLIBC_2.4 rtime F
-GLIBC_2.4 ruserok F
-GLIBC_2.4 ruserok_af F
-GLIBC_2.4 ruserpass F
-GLIBC_2.4 sbrk F
-GLIBC_2.4 scalbn F
-GLIBC_2.4 scalbnf F
-GLIBC_2.4 scalbnl F
-GLIBC_2.4 scandir F
-GLIBC_2.4 scandir64 F
-GLIBC_2.4 scanf F
-GLIBC_2.4 sched_get_priority_max F
-GLIBC_2.4 sched_get_priority_min F
-GLIBC_2.4 sched_getaffinity F
-GLIBC_2.4 sched_getparam F
-GLIBC_2.4 sched_getscheduler F
-GLIBC_2.4 sched_rr_get_interval F
-GLIBC_2.4 sched_setaffinity F
-GLIBC_2.4 sched_setparam F
-GLIBC_2.4 sched_setscheduler F
-GLIBC_2.4 sched_yield F
-GLIBC_2.4 seed48 F
-GLIBC_2.4 seed48_r F
-GLIBC_2.4 seekdir F
-GLIBC_2.4 select F
-GLIBC_2.4 semctl F
-GLIBC_2.4 semget F
-GLIBC_2.4 semop F
-GLIBC_2.4 semtimedop F
-GLIBC_2.4 send F
-GLIBC_2.4 sendfile F
-GLIBC_2.4 sendfile64 F
-GLIBC_2.4 sendmsg F
-GLIBC_2.4 sendto F
-GLIBC_2.4 setaliasent F
-GLIBC_2.4 setbuf F
-GLIBC_2.4 setbuffer F
-GLIBC_2.4 setcontext F
-GLIBC_2.4 setdomainname F
-GLIBC_2.4 setegid F
-GLIBC_2.4 setenv F
-GLIBC_2.4 seteuid F
-GLIBC_2.4 setfsent F
-GLIBC_2.4 setfsgid F
-GLIBC_2.4 setfsuid F
-GLIBC_2.4 setgid F
-GLIBC_2.4 setgrent F
-GLIBC_2.4 setgroups F
-GLIBC_2.4 sethostent F
-GLIBC_2.4 sethostid F
-GLIBC_2.4 sethostname F
-GLIBC_2.4 setipv4sourcefilter F
-GLIBC_2.4 setitimer F
-GLIBC_2.4 setjmp F
-GLIBC_2.4 setlinebuf F
-GLIBC_2.4 setlocale F
-GLIBC_2.4 setlogin F
-GLIBC_2.4 setlogmask F
-GLIBC_2.4 setmntent F
-GLIBC_2.4 setnetent F
-GLIBC_2.4 setnetgrent F
-GLIBC_2.4 setpgid F
-GLIBC_2.4 setpgrp F
-GLIBC_2.4 setpriority F
-GLIBC_2.4 setprotoent F
-GLIBC_2.4 setpwent F
-GLIBC_2.4 setregid F
-GLIBC_2.4 setresgid F
-GLIBC_2.4 setresuid F
-GLIBC_2.4 setreuid F
-GLIBC_2.4 setrlimit F
-GLIBC_2.4 setrlimit64 F
-GLIBC_2.4 setrpcent F
-GLIBC_2.4 setservent F
-GLIBC_2.4 setsid F
-GLIBC_2.4 setsockopt F
-GLIBC_2.4 setsourcefilter F
-GLIBC_2.4 setspent F
-GLIBC_2.4 setstate F
-GLIBC_2.4 setstate_r F
-GLIBC_2.4 settimeofday F
-GLIBC_2.4 setttyent F
-GLIBC_2.4 setuid F
-GLIBC_2.4 setusershell F
-GLIBC_2.4 setutent F
-GLIBC_2.4 setutxent F
-GLIBC_2.4 setvbuf F
-GLIBC_2.4 setxattr F
-GLIBC_2.4 sgetspent F
-GLIBC_2.4 sgetspent_r F
-GLIBC_2.4 shmat F
-GLIBC_2.4 shmctl F
-GLIBC_2.4 shmdt F
-GLIBC_2.4 shmget F
-GLIBC_2.4 shutdown F
-GLIBC_2.4 sigaction F
-GLIBC_2.4 sigaddset F
-GLIBC_2.4 sigaltstack F
-GLIBC_2.4 sigandset F
-GLIBC_2.4 sigblock F
-GLIBC_2.4 sigdelset F
-GLIBC_2.4 sigemptyset F
-GLIBC_2.4 sigfillset F
-GLIBC_2.4 siggetmask F
-GLIBC_2.4 sighold F
-GLIBC_2.4 sigignore F
-GLIBC_2.4 siginterrupt F
-GLIBC_2.4 sigisemptyset F
-GLIBC_2.4 sigismember F
-GLIBC_2.4 siglongjmp F
-GLIBC_2.4 signal F
-GLIBC_2.4 sigorset F
-GLIBC_2.4 sigpause F
-GLIBC_2.4 sigpending F
-GLIBC_2.4 sigprocmask F
-GLIBC_2.4 sigqueue F
-GLIBC_2.4 sigrelse F
-GLIBC_2.4 sigreturn F
-GLIBC_2.4 sigset F
-GLIBC_2.4 sigsetmask F
-GLIBC_2.4 sigstack F
-GLIBC_2.4 sigsuspend F
-GLIBC_2.4 sigtimedwait F
-GLIBC_2.4 sigvec F
-GLIBC_2.4 sigwait F
-GLIBC_2.4 sigwaitinfo F
-GLIBC_2.4 sleep F
-GLIBC_2.4 snprintf F
-GLIBC_2.4 sockatmark F
-GLIBC_2.4 socket F
-GLIBC_2.4 socketpair F
-GLIBC_2.4 sprintf F
-GLIBC_2.4 sprofil F
-GLIBC_2.4 srand F
-GLIBC_2.4 srand48 F
-GLIBC_2.4 srand48_r F
-GLIBC_2.4 srandom F
-GLIBC_2.4 srandom_r F
-GLIBC_2.4 sscanf F
-GLIBC_2.4 ssignal F
-GLIBC_2.4 sstk F
-GLIBC_2.4 statfs F
-GLIBC_2.4 statfs64 F
-GLIBC_2.4 statvfs F
-GLIBC_2.4 statvfs64 F
-GLIBC_2.4 stderr D 0x4
-GLIBC_2.4 stdin D 0x4
-GLIBC_2.4 stdout D 0x4
-GLIBC_2.4 step F
-GLIBC_2.4 stime F
-GLIBC_2.4 stpcpy F
-GLIBC_2.4 stpncpy F
-GLIBC_2.4 strcasecmp F
-GLIBC_2.4 strcasecmp_l F
-GLIBC_2.4 strcasestr F
-GLIBC_2.4 strcat F
-GLIBC_2.4 strchr F
-GLIBC_2.4 strchrnul F
-GLIBC_2.4 strcmp F
-GLIBC_2.4 strcoll F
-GLIBC_2.4 strcoll_l F
-GLIBC_2.4 strcpy F
-GLIBC_2.4 strcspn F
-GLIBC_2.4 strdup F
-GLIBC_2.4 strerror F
-GLIBC_2.4 strerror_r F
-GLIBC_2.4 strfmon F
-GLIBC_2.4 strfmon_l F
-GLIBC_2.4 strfry F
-GLIBC_2.4 strftime F
-GLIBC_2.4 strftime_l F
-GLIBC_2.4 strlen F
-GLIBC_2.4 strncasecmp F
-GLIBC_2.4 strncasecmp_l F
-GLIBC_2.4 strncat F
-GLIBC_2.4 strncmp F
-GLIBC_2.4 strncpy F
-GLIBC_2.4 strndup F
-GLIBC_2.4 strnlen F
-GLIBC_2.4 strpbrk F
-GLIBC_2.4 strptime F
-GLIBC_2.4 strptime_l F
-GLIBC_2.4 strrchr F
-GLIBC_2.4 strsep F
-GLIBC_2.4 strsignal F
-GLIBC_2.4 strspn F
-GLIBC_2.4 strstr F
-GLIBC_2.4 strtod F
-GLIBC_2.4 strtod_l F
-GLIBC_2.4 strtof F
-GLIBC_2.4 strtof_l F
-GLIBC_2.4 strtoimax F
-GLIBC_2.4 strtok F
-GLIBC_2.4 strtok_r F
-GLIBC_2.4 strtol F
-GLIBC_2.4 strtol_l F
-GLIBC_2.4 strtold F
-GLIBC_2.4 strtold_l F
-GLIBC_2.4 strtoll F
-GLIBC_2.4 strtoll_l F
-GLIBC_2.4 strtoq F
-GLIBC_2.4 strtoul F
-GLIBC_2.4 strtoul_l F
-GLIBC_2.4 strtoull F
-GLIBC_2.4 strtoull_l F
-GLIBC_2.4 strtoumax F
-GLIBC_2.4 strtouq F
-GLIBC_2.4 strverscmp F
-GLIBC_2.4 strxfrm F
-GLIBC_2.4 strxfrm_l F
-GLIBC_2.4 stty F
-GLIBC_2.4 svc_exit F
-GLIBC_2.4 svc_fdset D 0x80
-GLIBC_2.4 svc_getreq F
-GLIBC_2.4 svc_getreq_common F
-GLIBC_2.4 svc_getreq_poll F
-GLIBC_2.4 svc_getreqset F
-GLIBC_2.4 svc_max_pollfd D 0x4
-GLIBC_2.4 svc_pollfd D 0x4
-GLIBC_2.4 svc_register F
-GLIBC_2.4 svc_run F
-GLIBC_2.4 svc_sendreply F
-GLIBC_2.4 svc_unregister F
-GLIBC_2.4 svcauthdes_stats D 0xc
-GLIBC_2.4 svcerr_auth F
-GLIBC_2.4 svcerr_decode F
-GLIBC_2.4 svcerr_noproc F
-GLIBC_2.4 svcerr_noprog F
-GLIBC_2.4 svcerr_progvers F
-GLIBC_2.4 svcerr_systemerr F
-GLIBC_2.4 svcerr_weakauth F
-GLIBC_2.4 svcfd_create F
-GLIBC_2.4 svcraw_create F
-GLIBC_2.4 svctcp_create F
-GLIBC_2.4 svcudp_bufcreate F
-GLIBC_2.4 svcudp_create F
-GLIBC_2.4 svcudp_enablecache F
-GLIBC_2.4 svcunix_create F
-GLIBC_2.4 svcunixfd_create F
-GLIBC_2.4 swab F
-GLIBC_2.4 swapcontext F
-GLIBC_2.4 swapoff F
-GLIBC_2.4 swapon F
-GLIBC_2.4 swprintf F
-GLIBC_2.4 swscanf F
-GLIBC_2.4 symlink F
-GLIBC_2.4 symlinkat F
-GLIBC_2.4 sync F
-GLIBC_2.4 sys_errlist D 0x210
-GLIBC_2.4 sys_nerr D 0x4
-GLIBC_2.4 sys_sigabbrev D 0x104
-GLIBC_2.4 sys_siglist D 0x104
-GLIBC_2.4 syscall F
-GLIBC_2.4 sysconf F
-GLIBC_2.4 sysctl F
-GLIBC_2.4 sysinfo F
-GLIBC_2.4 syslog F
-GLIBC_2.4 system F
-GLIBC_2.4 sysv_signal F
-GLIBC_2.4 tcdrain F
-GLIBC_2.4 tcflow F
-GLIBC_2.4 tcflush F
-GLIBC_2.4 tcgetattr F
-GLIBC_2.4 tcgetpgrp F
-GLIBC_2.4 tcgetsid F
-GLIBC_2.4 tcsendbreak F
-GLIBC_2.4 tcsetattr F
-GLIBC_2.4 tcsetpgrp F
-GLIBC_2.4 tdelete F
-GLIBC_2.4 tdestroy F
-GLIBC_2.4 telldir F
-GLIBC_2.4 tempnam F
-GLIBC_2.4 textdomain F
-GLIBC_2.4 tfind F
-GLIBC_2.4 time F
-GLIBC_2.4 timegm F
-GLIBC_2.4 timelocal F
-GLIBC_2.4 times F
-GLIBC_2.4 timezone D 0x4
-GLIBC_2.4 tmpfile F
-GLIBC_2.4 tmpfile64 F
-GLIBC_2.4 tmpnam F
-GLIBC_2.4 tmpnam_r F
-GLIBC_2.4 toascii F
-GLIBC_2.4 tolower F
-GLIBC_2.4 tolower_l F
-GLIBC_2.4 toupper F
-GLIBC_2.4 toupper_l F
-GLIBC_2.4 towctrans F
-GLIBC_2.4 towctrans_l F
-GLIBC_2.4 towlower F
-GLIBC_2.4 towlower_l F
-GLIBC_2.4 towupper F
-GLIBC_2.4 towupper_l F
-GLIBC_2.4 tr_break F
-GLIBC_2.4 truncate F
-GLIBC_2.4 truncate64 F
-GLIBC_2.4 tsearch F
-GLIBC_2.4 ttyname F
-GLIBC_2.4 ttyname_r F
-GLIBC_2.4 ttyslot F
-GLIBC_2.4 twalk F
-GLIBC_2.4 tzname D 0x8
-GLIBC_2.4 tzset F
-GLIBC_2.4 ualarm F
-GLIBC_2.4 ulckpwdf F
-GLIBC_2.4 ulimit F
-GLIBC_2.4 umask F
-GLIBC_2.4 umount F
-GLIBC_2.4 umount2 F
-GLIBC_2.4 uname F
-GLIBC_2.4 ungetc F
-GLIBC_2.4 ungetwc F
-GLIBC_2.4 unlink F
-GLIBC_2.4 unlinkat F
-GLIBC_2.4 unlockpt F
-GLIBC_2.4 unsetenv F
-GLIBC_2.4 unshare F
-GLIBC_2.4 updwtmp F
-GLIBC_2.4 updwtmpx F
-GLIBC_2.4 uselib F
-GLIBC_2.4 uselocale F
-GLIBC_2.4 user2netname F
-GLIBC_2.4 usleep F
-GLIBC_2.4 ustat F
-GLIBC_2.4 utime F
-GLIBC_2.4 utimes F
-GLIBC_2.4 utmpname F
-GLIBC_2.4 utmpxname F
-GLIBC_2.4 valloc F
-GLIBC_2.4 vasprintf F
-GLIBC_2.4 vdprintf F
-GLIBC_2.4 verr F
-GLIBC_2.4 verrx F
-GLIBC_2.4 versionsort F
-GLIBC_2.4 versionsort64 F
-GLIBC_2.4 vfork F
-GLIBC_2.4 vfprintf F
-GLIBC_2.4 vfscanf F
-GLIBC_2.4 vfwprintf F
-GLIBC_2.4 vfwscanf F
-GLIBC_2.4 vhangup F
-GLIBC_2.4 vlimit F
-GLIBC_2.4 vprintf F
-GLIBC_2.4 vscanf F
-GLIBC_2.4 vsnprintf F
-GLIBC_2.4 vsprintf F
-GLIBC_2.4 vsscanf F
-GLIBC_2.4 vswprintf F
-GLIBC_2.4 vswscanf F
-GLIBC_2.4 vsyslog F
-GLIBC_2.4 vtimes F
-GLIBC_2.4 vwarn F
-GLIBC_2.4 vwarnx F
-GLIBC_2.4 vwprintf F
-GLIBC_2.4 vwscanf F
-GLIBC_2.4 wait F
-GLIBC_2.4 wait3 F
-GLIBC_2.4 wait4 F
-GLIBC_2.4 waitid F
-GLIBC_2.4 waitpid F
-GLIBC_2.4 warn F
-GLIBC_2.4 warnx F
-GLIBC_2.4 wcpcpy F
-GLIBC_2.4 wcpncpy F
-GLIBC_2.4 wcrtomb F
-GLIBC_2.4 wcscasecmp F
-GLIBC_2.4 wcscasecmp_l F
-GLIBC_2.4 wcscat F
-GLIBC_2.4 wcschr F
-GLIBC_2.4 wcschrnul F
-GLIBC_2.4 wcscmp F
-GLIBC_2.4 wcscoll F
-GLIBC_2.4 wcscoll_l F
-GLIBC_2.4 wcscpy F
-GLIBC_2.4 wcscspn F
-GLIBC_2.4 wcsdup F
-GLIBC_2.4 wcsftime F
-GLIBC_2.4 wcsftime_l F
-GLIBC_2.4 wcslen F
-GLIBC_2.4 wcsncasecmp F
-GLIBC_2.4 wcsncasecmp_l F
-GLIBC_2.4 wcsncat F
-GLIBC_2.4 wcsncmp F
-GLIBC_2.4 wcsncpy F
-GLIBC_2.4 wcsnlen F
-GLIBC_2.4 wcsnrtombs F
-GLIBC_2.4 wcspbrk F
-GLIBC_2.4 wcsrchr F
-GLIBC_2.4 wcsrtombs F
-GLIBC_2.4 wcsspn F
-GLIBC_2.4 wcsstr F
-GLIBC_2.4 wcstod F
-GLIBC_2.4 wcstod_l F
-GLIBC_2.4 wcstof F
-GLIBC_2.4 wcstof_l F
-GLIBC_2.4 wcstoimax F
-GLIBC_2.4 wcstok F
-GLIBC_2.4 wcstol F
-GLIBC_2.4 wcstol_l F
-GLIBC_2.4 wcstold F
-GLIBC_2.4 wcstold_l F
-GLIBC_2.4 wcstoll F
-GLIBC_2.4 wcstoll_l F
-GLIBC_2.4 wcstombs F
-GLIBC_2.4 wcstoq F
-GLIBC_2.4 wcstoul F
-GLIBC_2.4 wcstoul_l F
-GLIBC_2.4 wcstoull F
-GLIBC_2.4 wcstoull_l F
-GLIBC_2.4 wcstoumax F
-GLIBC_2.4 wcstouq F
-GLIBC_2.4 wcswcs F
-GLIBC_2.4 wcswidth F
-GLIBC_2.4 wcsxfrm F
-GLIBC_2.4 wcsxfrm_l F
-GLIBC_2.4 wctob F
-GLIBC_2.4 wctomb F
-GLIBC_2.4 wctrans F
-GLIBC_2.4 wctrans_l F
-GLIBC_2.4 wctype F
-GLIBC_2.4 wctype_l F
-GLIBC_2.4 wcwidth F
-GLIBC_2.4 wmemchr F
-GLIBC_2.4 wmemcmp F
-GLIBC_2.4 wmemcpy F
-GLIBC_2.4 wmemmove F
-GLIBC_2.4 wmempcpy F
-GLIBC_2.4 wmemset F
-GLIBC_2.4 wordexp F
-GLIBC_2.4 wordfree F
-GLIBC_2.4 wprintf F
-GLIBC_2.4 write F
-GLIBC_2.4 writev F
-GLIBC_2.4 wscanf F
-GLIBC_2.4 xdecrypt F
-GLIBC_2.4 xdr_accepted_reply F
-GLIBC_2.4 xdr_array F
-GLIBC_2.4 xdr_authdes_cred F
-GLIBC_2.4 xdr_authdes_verf F
-GLIBC_2.4 xdr_authunix_parms F
-GLIBC_2.4 xdr_bool F
-GLIBC_2.4 xdr_bytes F
-GLIBC_2.4 xdr_callhdr F
-GLIBC_2.4 xdr_callmsg F
-GLIBC_2.4 xdr_char F
-GLIBC_2.4 xdr_cryptkeyarg F
-GLIBC_2.4 xdr_cryptkeyarg2 F
-GLIBC_2.4 xdr_cryptkeyres F
-GLIBC_2.4 xdr_des_block F
-GLIBC_2.4 xdr_double F
-GLIBC_2.4 xdr_enum F
-GLIBC_2.4 xdr_float F
-GLIBC_2.4 xdr_free F
-GLIBC_2.4 xdr_getcredres F
-GLIBC_2.4 xdr_hyper F
-GLIBC_2.4 xdr_int F
-GLIBC_2.4 xdr_int16_t F
-GLIBC_2.4 xdr_int32_t F
-GLIBC_2.4 xdr_int64_t F
-GLIBC_2.4 xdr_int8_t F
-GLIBC_2.4 xdr_key_netstarg F
-GLIBC_2.4 xdr_key_netstres F
-GLIBC_2.4 xdr_keybuf F
-GLIBC_2.4 xdr_keystatus F
-GLIBC_2.4 xdr_long F
-GLIBC_2.4 xdr_longlong_t F
-GLIBC_2.4 xdr_netnamestr F
-GLIBC_2.4 xdr_netobj F
-GLIBC_2.4 xdr_opaque F
-GLIBC_2.4 xdr_opaque_auth F
-GLIBC_2.4 xdr_pmap F
-GLIBC_2.4 xdr_pmaplist F
-GLIBC_2.4 xdr_pointer F
-GLIBC_2.4 xdr_quad_t F
-GLIBC_2.4 xdr_reference F
-GLIBC_2.4 xdr_rejected_reply F
-GLIBC_2.4 xdr_replymsg F
-GLIBC_2.4 xdr_rmtcall_args F
-GLIBC_2.4 xdr_rmtcallres F
-GLIBC_2.4 xdr_short F
-GLIBC_2.4 xdr_sizeof F
-GLIBC_2.4 xdr_string F
-GLIBC_2.4 xdr_u_char F
-GLIBC_2.4 xdr_u_hyper F
-GLIBC_2.4 xdr_u_int F
-GLIBC_2.4 xdr_u_long F
-GLIBC_2.4 xdr_u_longlong_t F
-GLIBC_2.4 xdr_u_quad_t F
-GLIBC_2.4 xdr_u_short F
-GLIBC_2.4 xdr_uint16_t F
-GLIBC_2.4 xdr_uint32_t F
-GLIBC_2.4 xdr_uint64_t F
-GLIBC_2.4 xdr_uint8_t F
-GLIBC_2.4 xdr_union F
-GLIBC_2.4 xdr_unixcred F
-GLIBC_2.4 xdr_vector F
-GLIBC_2.4 xdr_void F
-GLIBC_2.4 xdr_wrapstring F
-GLIBC_2.4 xdrmem_create F
-GLIBC_2.4 xdrrec_create F
-GLIBC_2.4 xdrrec_endofrecord F
-GLIBC_2.4 xdrrec_eof F
-GLIBC_2.4 xdrrec_skiprecord F
-GLIBC_2.4 xdrstdio_create F
-GLIBC_2.4 xencrypt F
-GLIBC_2.4 xprt_register F
-GLIBC_2.4 xprt_unregister F
-GLIBC_2.5 __readlinkat_chk F
-GLIBC_2.5 inet6_opt_append F
-GLIBC_2.5 inet6_opt_find F
-GLIBC_2.5 inet6_opt_finish F
-GLIBC_2.5 inet6_opt_get_val F
-GLIBC_2.5 inet6_opt_init F
-GLIBC_2.5 inet6_opt_next F
-GLIBC_2.5 inet6_opt_set_val F
-GLIBC_2.5 inet6_rth_add F
-GLIBC_2.5 inet6_rth_getaddr F
-GLIBC_2.5 inet6_rth_init F
-GLIBC_2.5 inet6_rth_reverse F
-GLIBC_2.5 inet6_rth_segments F
-GLIBC_2.5 inet6_rth_space F
-GLIBC_2.5 splice F
-GLIBC_2.5 tee F
-GLIBC_2.5 vmsplice F
-GLIBC_2.6 __sched_cpucount F
-GLIBC_2.6 epoll_pwait F
-GLIBC_2.6 futimens F
-GLIBC_2.6 sched_getcpu F
-GLIBC_2.6 strerror_l F
-GLIBC_2.6 sync_file_range F
-GLIBC_2.6 utimensat F
-GLIBC_2.7 __fread_chk F
-GLIBC_2.7 __fread_unlocked_chk F
-GLIBC_2.7 __isoc99_fscanf F
-GLIBC_2.7 __isoc99_fwscanf F
-GLIBC_2.7 __isoc99_scanf F
-GLIBC_2.7 __isoc99_sscanf F
-GLIBC_2.7 __isoc99_swscanf F
-GLIBC_2.7 __isoc99_vfscanf F
-GLIBC_2.7 __isoc99_vfwscanf F
-GLIBC_2.7 __isoc99_vscanf F
-GLIBC_2.7 __isoc99_vsscanf F
-GLIBC_2.7 __isoc99_vswscanf F
-GLIBC_2.7 __isoc99_vwscanf F
-GLIBC_2.7 __isoc99_wscanf F
-GLIBC_2.7 __open64_2 F
-GLIBC_2.7 __open_2 F
-GLIBC_2.7 __openat64_2 F
-GLIBC_2.7 __openat_2 F
-GLIBC_2.7 __sched_cpualloc F
-GLIBC_2.7 __sched_cpufree F
-GLIBC_2.7 eventfd F
-GLIBC_2.7 eventfd_read F
-GLIBC_2.7 eventfd_write F
-GLIBC_2.7 mkostemp F
-GLIBC_2.7 mkostemp64 F
-GLIBC_2.7 signalfd F
-GLIBC_2.8 __asprintf_chk F
-GLIBC_2.8 __dprintf_chk F
-GLIBC_2.8 __gnu_mcount_nc F
-GLIBC_2.8 __obstack_printf_chk F
-GLIBC_2.8 __obstack_vprintf_chk F
-GLIBC_2.8 __vasprintf_chk F
-GLIBC_2.8 __vdprintf_chk F
-GLIBC_2.8 qsort_r F
-GLIBC_2.8 timerfd_create F
-GLIBC_2.8 timerfd_gettime F
-GLIBC_2.8 timerfd_settime F
-GLIBC_2.9 dup3 F
-GLIBC_2.9 epoll_create1 F
-GLIBC_2.9 inotify_init1 F
-GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/arm/libm.abilist b/sysdeps/unix/sysv/linux/arm/libm.abilist
deleted file mode 100644
index e126eb07e3..0000000000
--- a/sysdeps/unix/sysv/linux/arm/libm.abilist
+++ /dev/null
@@ -1,767 +0,0 @@
-GLIBC_2.15 __acos_finite F
-GLIBC_2.15 __acosf_finite F
-GLIBC_2.15 __acosh_finite F
-GLIBC_2.15 __acoshf_finite F
-GLIBC_2.15 __asin_finite F
-GLIBC_2.15 __asinf_finite F
-GLIBC_2.15 __atan2_finite F
-GLIBC_2.15 __atan2f_finite F
-GLIBC_2.15 __atanh_finite F
-GLIBC_2.15 __atanhf_finite F
-GLIBC_2.15 __cosh_finite F
-GLIBC_2.15 __coshf_finite F
-GLIBC_2.15 __exp10_finite F
-GLIBC_2.15 __exp10f_finite F
-GLIBC_2.15 __exp2_finite F
-GLIBC_2.15 __exp2f_finite F
-GLIBC_2.15 __exp_finite F
-GLIBC_2.15 __expf_finite F
-GLIBC_2.15 __fmod_finite F
-GLIBC_2.15 __fmodf_finite F
-GLIBC_2.15 __gamma_r_finite F
-GLIBC_2.15 __gammaf_r_finite F
-GLIBC_2.15 __hypot_finite F
-GLIBC_2.15 __hypotf_finite F
-GLIBC_2.15 __j0_finite F
-GLIBC_2.15 __j0f_finite F
-GLIBC_2.15 __j1_finite F
-GLIBC_2.15 __j1f_finite F
-GLIBC_2.15 __jn_finite F
-GLIBC_2.15 __jnf_finite F
-GLIBC_2.15 __lgamma_r_finite F
-GLIBC_2.15 __lgammaf_r_finite F
-GLIBC_2.15 __log10_finite F
-GLIBC_2.15 __log10f_finite F
-GLIBC_2.15 __log2_finite F
-GLIBC_2.15 __log2f_finite F
-GLIBC_2.15 __log_finite F
-GLIBC_2.15 __logf_finite F
-GLIBC_2.15 __pow_finite F
-GLIBC_2.15 __powf_finite F
-GLIBC_2.15 __remainder_finite F
-GLIBC_2.15 __remainderf_finite F
-GLIBC_2.15 __scalb_finite F
-GLIBC_2.15 __scalbf_finite F
-GLIBC_2.15 __sinh_finite F
-GLIBC_2.15 __sinhf_finite F
-GLIBC_2.15 __sqrt_finite F
-GLIBC_2.15 __sqrtf_finite F
-GLIBC_2.15 __y0_finite F
-GLIBC_2.15 __y0f_finite F
-GLIBC_2.15 __y1_finite F
-GLIBC_2.15 __y1f_finite F
-GLIBC_2.15 __yn_finite F
-GLIBC_2.15 __ynf_finite F
-GLIBC_2.18 __issignaling F
-GLIBC_2.18 __issignalingf F
-GLIBC_2.23 __signgam D 0x4
-GLIBC_2.23 lgamma F
-GLIBC_2.23 lgammaf F
-GLIBC_2.23 lgammal F
-GLIBC_2.24 nextdown F
-GLIBC_2.24 nextdownf F
-GLIBC_2.24 nextdownl F
-GLIBC_2.24 nextup F
-GLIBC_2.24 nextupf F
-GLIBC_2.24 nextupl F
-GLIBC_2.25 __iseqsig F
-GLIBC_2.25 __iseqsigf F
-GLIBC_2.25 canonicalize F
-GLIBC_2.25 canonicalizef F
-GLIBC_2.25 canonicalizel F
-GLIBC_2.25 fegetmode F
-GLIBC_2.25 fesetexcept F
-GLIBC_2.25 fesetmode F
-GLIBC_2.25 fetestexceptflag F
-GLIBC_2.25 fmaxmag F
-GLIBC_2.25 fmaxmagf F
-GLIBC_2.25 fmaxmagl F
-GLIBC_2.25 fminmag F
-GLIBC_2.25 fminmagf F
-GLIBC_2.25 fminmagl F
-GLIBC_2.25 fromfp F
-GLIBC_2.25 fromfpf F
-GLIBC_2.25 fromfpl F
-GLIBC_2.25 fromfpx F
-GLIBC_2.25 fromfpxf F
-GLIBC_2.25 fromfpxl F
-GLIBC_2.25 getpayload F
-GLIBC_2.25 getpayloadf F
-GLIBC_2.25 getpayloadl F
-GLIBC_2.25 llogb F
-GLIBC_2.25 llogbf F
-GLIBC_2.25 llogbl F
-GLIBC_2.25 roundeven F
-GLIBC_2.25 roundevenf F
-GLIBC_2.25 roundevenl F
-GLIBC_2.25 setpayload F
-GLIBC_2.25 setpayloadf F
-GLIBC_2.25 setpayloadl F
-GLIBC_2.25 setpayloadsig F
-GLIBC_2.25 setpayloadsigf F
-GLIBC_2.25 setpayloadsigl F
-GLIBC_2.25 totalorder F
-GLIBC_2.25 totalorderf F
-GLIBC_2.25 totalorderl F
-GLIBC_2.25 totalordermag F
-GLIBC_2.25 totalordermagf F
-GLIBC_2.25 totalordermagl F
-GLIBC_2.25 ufromfp F
-GLIBC_2.25 ufromfpf F
-GLIBC_2.25 ufromfpl F
-GLIBC_2.25 ufromfpx F
-GLIBC_2.25 ufromfpxf F
-GLIBC_2.25 ufromfpxl F
-GLIBC_2.27 acosf32 F
-GLIBC_2.27 acosf32x F
-GLIBC_2.27 acosf64 F
-GLIBC_2.27 acoshf32 F
-GLIBC_2.27 acoshf32x F
-GLIBC_2.27 acoshf64 F
-GLIBC_2.27 asinf32 F
-GLIBC_2.27 asinf32x F
-GLIBC_2.27 asinf64 F
-GLIBC_2.27 asinhf32 F
-GLIBC_2.27 asinhf32x F
-GLIBC_2.27 asinhf64 F
-GLIBC_2.27 atan2f32 F
-GLIBC_2.27 atan2f32x F
-GLIBC_2.27 atan2f64 F
-GLIBC_2.27 atanf32 F
-GLIBC_2.27 atanf32x F
-GLIBC_2.27 atanf64 F
-GLIBC_2.27 atanhf32 F
-GLIBC_2.27 atanhf32x F
-GLIBC_2.27 atanhf64 F
-GLIBC_2.27 cabsf32 F
-GLIBC_2.27 cabsf32x F
-GLIBC_2.27 cabsf64 F
-GLIBC_2.27 cacosf32 F
-GLIBC_2.27 cacosf32x F
-GLIBC_2.27 cacosf64 F
-GLIBC_2.27 cacoshf32 F
-GLIBC_2.27 cacoshf32x F
-GLIBC_2.27 cacoshf64 F
-GLIBC_2.27 canonicalizef32 F
-GLIBC_2.27 canonicalizef32x F
-GLIBC_2.27 canonicalizef64 F
-GLIBC_2.27 cargf32 F
-GLIBC_2.27 cargf32x F
-GLIBC_2.27 cargf64 F
-GLIBC_2.27 casinf32 F
-GLIBC_2.27 casinf32x F
-GLIBC_2.27 casinf64 F
-GLIBC_2.27 casinhf32 F
-GLIBC_2.27 casinhf32x F
-GLIBC_2.27 casinhf64 F
-GLIBC_2.27 catanf32 F
-GLIBC_2.27 catanf32x F
-GLIBC_2.27 catanf64 F
-GLIBC_2.27 catanhf32 F
-GLIBC_2.27 catanhf32x F
-GLIBC_2.27 catanhf64 F
-GLIBC_2.27 cbrtf32 F
-GLIBC_2.27 cbrtf32x F
-GLIBC_2.27 cbrtf64 F
-GLIBC_2.27 ccosf32 F
-GLIBC_2.27 ccosf32x F
-GLIBC_2.27 ccosf64 F
-GLIBC_2.27 ccoshf32 F
-GLIBC_2.27 ccoshf32x F
-GLIBC_2.27 ccoshf64 F
-GLIBC_2.27 ceilf32 F
-GLIBC_2.27 ceilf32x F
-GLIBC_2.27 ceilf64 F
-GLIBC_2.27 cexpf32 F
-GLIBC_2.27 cexpf32x F
-GLIBC_2.27 cexpf64 F
-GLIBC_2.27 cimagf32 F
-GLIBC_2.27 cimagf32x F
-GLIBC_2.27 cimagf64 F
-GLIBC_2.27 clog10f32 F
-GLIBC_2.27 clog10f32x F
-GLIBC_2.27 clog10f64 F
-GLIBC_2.27 clogf32 F
-GLIBC_2.27 clogf32x F
-GLIBC_2.27 clogf64 F
-GLIBC_2.27 conjf32 F
-GLIBC_2.27 conjf32x F
-GLIBC_2.27 conjf64 F
-GLIBC_2.27 copysignf32 F
-GLIBC_2.27 copysignf32x F
-GLIBC_2.27 copysignf64 F
-GLIBC_2.27 cosf32 F
-GLIBC_2.27 cosf32x F
-GLIBC_2.27 cosf64 F
-GLIBC_2.27 coshf32 F
-GLIBC_2.27 coshf32x F
-GLIBC_2.27 coshf64 F
-GLIBC_2.27 cpowf32 F
-GLIBC_2.27 cpowf32x F
-GLIBC_2.27 cpowf64 F
-GLIBC_2.27 cprojf32 F
-GLIBC_2.27 cprojf32x F
-GLIBC_2.27 cprojf64 F
-GLIBC_2.27 crealf32 F
-GLIBC_2.27 crealf32x F
-GLIBC_2.27 crealf64 F
-GLIBC_2.27 csinf32 F
-GLIBC_2.27 csinf32x F
-GLIBC_2.27 csinf64 F
-GLIBC_2.27 csinhf32 F
-GLIBC_2.27 csinhf32x F
-GLIBC_2.27 csinhf64 F
-GLIBC_2.27 csqrtf32 F
-GLIBC_2.27 csqrtf32x F
-GLIBC_2.27 csqrtf64 F
-GLIBC_2.27 ctanf32 F
-GLIBC_2.27 ctanf32x F
-GLIBC_2.27 ctanf64 F
-GLIBC_2.27 ctanhf32 F
-GLIBC_2.27 ctanhf32x F
-GLIBC_2.27 ctanhf64 F
-GLIBC_2.27 erfcf32 F
-GLIBC_2.27 erfcf32x F
-GLIBC_2.27 erfcf64 F
-GLIBC_2.27 erff32 F
-GLIBC_2.27 erff32x F
-GLIBC_2.27 erff64 F
-GLIBC_2.27 exp10f32 F
-GLIBC_2.27 exp10f32x F
-GLIBC_2.27 exp10f64 F
-GLIBC_2.27 exp2f F
-GLIBC_2.27 exp2f32 F
-GLIBC_2.27 exp2f32x F
-GLIBC_2.27 exp2f64 F
-GLIBC_2.27 expf F
-GLIBC_2.27 expf32 F
-GLIBC_2.27 expf32x F
-GLIBC_2.27 expf64 F
-GLIBC_2.27 expm1f32 F
-GLIBC_2.27 expm1f32x F
-GLIBC_2.27 expm1f64 F
-GLIBC_2.27 fabsf32 F
-GLIBC_2.27 fabsf32x F
-GLIBC_2.27 fabsf64 F
-GLIBC_2.27 fdimf32 F
-GLIBC_2.27 fdimf32x F
-GLIBC_2.27 fdimf64 F
-GLIBC_2.27 floorf32 F
-GLIBC_2.27 floorf32x F
-GLIBC_2.27 floorf64 F
-GLIBC_2.27 fmaf32 F
-GLIBC_2.27 fmaf32x F
-GLIBC_2.27 fmaf64 F
-GLIBC_2.27 fmaxf32 F
-GLIBC_2.27 fmaxf32x F
-GLIBC_2.27 fmaxf64 F
-GLIBC_2.27 fmaxmagf32 F
-GLIBC_2.27 fmaxmagf32x F
-GLIBC_2.27 fmaxmagf64 F
-GLIBC_2.27 fminf32 F
-GLIBC_2.27 fminf32x F
-GLIBC_2.27 fminf64 F
-GLIBC_2.27 fminmagf32 F
-GLIBC_2.27 fminmagf32x F
-GLIBC_2.27 fminmagf64 F
-GLIBC_2.27 fmodf32 F
-GLIBC_2.27 fmodf32x F
-GLIBC_2.27 fmodf64 F
-GLIBC_2.27 frexpf32 F
-GLIBC_2.27 frexpf32x F
-GLIBC_2.27 frexpf64 F
-GLIBC_2.27 fromfpf32 F
-GLIBC_2.27 fromfpf32x F
-GLIBC_2.27 fromfpf64 F
-GLIBC_2.27 fromfpxf32 F
-GLIBC_2.27 fromfpxf32x F
-GLIBC_2.27 fromfpxf64 F
-GLIBC_2.27 getpayloadf32 F
-GLIBC_2.27 getpayloadf32x F
-GLIBC_2.27 getpayloadf64 F
-GLIBC_2.27 hypotf32 F
-GLIBC_2.27 hypotf32x F
-GLIBC_2.27 hypotf64 F
-GLIBC_2.27 ilogbf32 F
-GLIBC_2.27 ilogbf32x F
-GLIBC_2.27 ilogbf64 F
-GLIBC_2.27 j0f32 F
-GLIBC_2.27 j0f32x F
-GLIBC_2.27 j0f64 F
-GLIBC_2.27 j1f32 F
-GLIBC_2.27 j1f32x F
-GLIBC_2.27 j1f64 F
-GLIBC_2.27 jnf32 F
-GLIBC_2.27 jnf32x F
-GLIBC_2.27 jnf64 F
-GLIBC_2.27 ldexpf32 F
-GLIBC_2.27 ldexpf32x F
-GLIBC_2.27 ldexpf64 F
-GLIBC_2.27 lgammaf32 F
-GLIBC_2.27 lgammaf32_r F
-GLIBC_2.27 lgammaf32x F
-GLIBC_2.27 lgammaf32x_r F
-GLIBC_2.27 lgammaf64 F
-GLIBC_2.27 lgammaf64_r F
-GLIBC_2.27 llogbf32 F
-GLIBC_2.27 llogbf32x F
-GLIBC_2.27 llogbf64 F
-GLIBC_2.27 llrintf32 F
-GLIBC_2.27 llrintf32x F
-GLIBC_2.27 llrintf64 F
-GLIBC_2.27 llroundf32 F
-GLIBC_2.27 llroundf32x F
-GLIBC_2.27 llroundf64 F
-GLIBC_2.27 log10f32 F
-GLIBC_2.27 log10f32x F
-GLIBC_2.27 log10f64 F
-GLIBC_2.27 log1pf32 F
-GLIBC_2.27 log1pf32x F
-GLIBC_2.27 log1pf64 F
-GLIBC_2.27 log2f F
-GLIBC_2.27 log2f32 F
-GLIBC_2.27 log2f32x F
-GLIBC_2.27 log2f64 F
-GLIBC_2.27 logbf32 F
-GLIBC_2.27 logbf32x F
-GLIBC_2.27 logbf64 F
-GLIBC_2.27 logf F
-GLIBC_2.27 logf32 F
-GLIBC_2.27 logf32x F
-GLIBC_2.27 logf64 F
-GLIBC_2.27 lrintf32 F
-GLIBC_2.27 lrintf32x F
-GLIBC_2.27 lrintf64 F
-GLIBC_2.27 lroundf32 F
-GLIBC_2.27 lroundf32x F
-GLIBC_2.27 lroundf64 F
-GLIBC_2.27 modff32 F
-GLIBC_2.27 modff32x F
-GLIBC_2.27 modff64 F
-GLIBC_2.27 nanf32 F
-GLIBC_2.27 nanf32x F
-GLIBC_2.27 nanf64 F
-GLIBC_2.27 nearbyintf32 F
-GLIBC_2.27 nearbyintf32x F
-GLIBC_2.27 nearbyintf64 F
-GLIBC_2.27 nextafterf32 F
-GLIBC_2.27 nextafterf32x F
-GLIBC_2.27 nextafterf64 F
-GLIBC_2.27 nextdownf32 F
-GLIBC_2.27 nextdownf32x F
-GLIBC_2.27 nextdownf64 F
-GLIBC_2.27 nextupf32 F
-GLIBC_2.27 nextupf32x F
-GLIBC_2.27 nextupf64 F
-GLIBC_2.27 powf F
-GLIBC_2.27 powf32 F
-GLIBC_2.27 powf32x F
-GLIBC_2.27 powf64 F
-GLIBC_2.27 remainderf32 F
-GLIBC_2.27 remainderf32x F
-GLIBC_2.27 remainderf64 F
-GLIBC_2.27 remquof32 F
-GLIBC_2.27 remquof32x F
-GLIBC_2.27 remquof64 F
-GLIBC_2.27 rintf32 F
-GLIBC_2.27 rintf32x F
-GLIBC_2.27 rintf64 F
-GLIBC_2.27 roundevenf32 F
-GLIBC_2.27 roundevenf32x F
-GLIBC_2.27 roundevenf64 F
-GLIBC_2.27 roundf32 F
-GLIBC_2.27 roundf32x F
-GLIBC_2.27 roundf64 F
-GLIBC_2.27 scalblnf32 F
-GLIBC_2.27 scalblnf32x F
-GLIBC_2.27 scalblnf64 F
-GLIBC_2.27 scalbnf32 F
-GLIBC_2.27 scalbnf32x F
-GLIBC_2.27 scalbnf64 F
-GLIBC_2.27 setpayloadf32 F
-GLIBC_2.27 setpayloadf32x F
-GLIBC_2.27 setpayloadf64 F
-GLIBC_2.27 setpayloadsigf32 F
-GLIBC_2.27 setpayloadsigf32x F
-GLIBC_2.27 setpayloadsigf64 F
-GLIBC_2.27 sincosf32 F
-GLIBC_2.27 sincosf32x F
-GLIBC_2.27 sincosf64 F
-GLIBC_2.27 sinf32 F
-GLIBC_2.27 sinf32x F
-GLIBC_2.27 sinf64 F
-GLIBC_2.27 sinhf32 F
-GLIBC_2.27 sinhf32x F
-GLIBC_2.27 sinhf64 F
-GLIBC_2.27 sqrtf32 F
-GLIBC_2.27 sqrtf32x F
-GLIBC_2.27 sqrtf64 F
-GLIBC_2.27 tanf32 F
-GLIBC_2.27 tanf32x F
-GLIBC_2.27 tanf64 F
-GLIBC_2.27 tanhf32 F
-GLIBC_2.27 tanhf32x F
-GLIBC_2.27 tanhf64 F
-GLIBC_2.27 tgammaf32 F
-GLIBC_2.27 tgammaf32x F
-GLIBC_2.27 tgammaf64 F
-GLIBC_2.27 totalorderf32 F
-GLIBC_2.27 totalorderf32x F
-GLIBC_2.27 totalorderf64 F
-GLIBC_2.27 totalordermagf32 F
-GLIBC_2.27 totalordermagf32x F
-GLIBC_2.27 totalordermagf64 F
-GLIBC_2.27 truncf32 F
-GLIBC_2.27 truncf32x F
-GLIBC_2.27 truncf64 F
-GLIBC_2.27 ufromfpf32 F
-GLIBC_2.27 ufromfpf32x F
-GLIBC_2.27 ufromfpf64 F
-GLIBC_2.27 ufromfpxf32 F
-GLIBC_2.27 ufromfpxf32x F
-GLIBC_2.27 ufromfpxf64 F
-GLIBC_2.27 y0f32 F
-GLIBC_2.27 y0f32x F
-GLIBC_2.27 y0f64 F
-GLIBC_2.27 y1f32 F
-GLIBC_2.27 y1f32x F
-GLIBC_2.27 y1f64 F
-GLIBC_2.27 ynf32 F
-GLIBC_2.27 ynf32x F
-GLIBC_2.27 ynf64 F
-GLIBC_2.28 daddl F
-GLIBC_2.28 ddivl F
-GLIBC_2.28 dmull F
-GLIBC_2.28 dsubl F
-GLIBC_2.28 f32addf32x F
-GLIBC_2.28 f32addf64 F
-GLIBC_2.28 f32divf32x F
-GLIBC_2.28 f32divf64 F
-GLIBC_2.28 f32mulf32x F
-GLIBC_2.28 f32mulf64 F
-GLIBC_2.28 f32subf32x F
-GLIBC_2.28 f32subf64 F
-GLIBC_2.28 f32xaddf64 F
-GLIBC_2.28 f32xdivf64 F
-GLIBC_2.28 f32xmulf64 F
-GLIBC_2.28 f32xsubf64 F
-GLIBC_2.28 fadd F
-GLIBC_2.28 faddl F
-GLIBC_2.28 fdiv F
-GLIBC_2.28 fdivl F
-GLIBC_2.28 fmul F
-GLIBC_2.28 fmull F
-GLIBC_2.28 fsub F
-GLIBC_2.28 fsubl F
-GLIBC_2.4 _LIB_VERSION D 0x4
-GLIBC_2.4 __clog10 F
-GLIBC_2.4 __clog10f F
-GLIBC_2.4 __clog10l F
-GLIBC_2.4 __finite F
-GLIBC_2.4 __finitef F
-GLIBC_2.4 __finitel F
-GLIBC_2.4 __fpclassify F
-GLIBC_2.4 __fpclassifyf F
-GLIBC_2.4 __signbit F
-GLIBC_2.4 __signbitf F
-GLIBC_2.4 acos F
-GLIBC_2.4 acosf F
-GLIBC_2.4 acosh F
-GLIBC_2.4 acoshf F
-GLIBC_2.4 acoshl F
-GLIBC_2.4 acosl F
-GLIBC_2.4 asin F
-GLIBC_2.4 asinf F
-GLIBC_2.4 asinh F
-GLIBC_2.4 asinhf F
-GLIBC_2.4 asinhl F
-GLIBC_2.4 asinl F
-GLIBC_2.4 atan F
-GLIBC_2.4 atan2 F
-GLIBC_2.4 atan2f F
-GLIBC_2.4 atan2l F
-GLIBC_2.4 atanf F
-GLIBC_2.4 atanh F
-GLIBC_2.4 atanhf F
-GLIBC_2.4 atanhl F
-GLIBC_2.4 atanl F
-GLIBC_2.4 cabs F
-GLIBC_2.4 cabsf F
-GLIBC_2.4 cabsl F
-GLIBC_2.4 cacos F
-GLIBC_2.4 cacosf F
-GLIBC_2.4 cacosh F
-GLIBC_2.4 cacoshf F
-GLIBC_2.4 cacoshl F
-GLIBC_2.4 cacosl F
-GLIBC_2.4 carg F
-GLIBC_2.4 cargf F
-GLIBC_2.4 cargl F
-GLIBC_2.4 casin F
-GLIBC_2.4 casinf F
-GLIBC_2.4 casinh F
-GLIBC_2.4 casinhf F
-GLIBC_2.4 casinhl F
-GLIBC_2.4 casinl F
-GLIBC_2.4 catan F
-GLIBC_2.4 catanf F
-GLIBC_2.4 catanh F
-GLIBC_2.4 catanhf F
-GLIBC_2.4 catanhl F
-GLIBC_2.4 catanl F
-GLIBC_2.4 cbrt F
-GLIBC_2.4 cbrtf F
-GLIBC_2.4 cbrtl F
-GLIBC_2.4 ccos F
-GLIBC_2.4 ccosf F
-GLIBC_2.4 ccosh F
-GLIBC_2.4 ccoshf F
-GLIBC_2.4 ccoshl F
-GLIBC_2.4 ccosl F
-GLIBC_2.4 ceil F
-GLIBC_2.4 ceilf F
-GLIBC_2.4 ceill F
-GLIBC_2.4 cexp F
-GLIBC_2.4 cexpf F
-GLIBC_2.4 cexpl F
-GLIBC_2.4 cimag F
-GLIBC_2.4 cimagf F
-GLIBC_2.4 cimagl F
-GLIBC_2.4 clog F
-GLIBC_2.4 clog10 F
-GLIBC_2.4 clog10f F
-GLIBC_2.4 clog10l F
-GLIBC_2.4 clogf F
-GLIBC_2.4 clogl F
-GLIBC_2.4 conj F
-GLIBC_2.4 conjf F
-GLIBC_2.4 conjl F
-GLIBC_2.4 copysign F
-GLIBC_2.4 copysignf F
-GLIBC_2.4 copysignl F
-GLIBC_2.4 cos F
-GLIBC_2.4 cosf F
-GLIBC_2.4 cosh F
-GLIBC_2.4 coshf F
-GLIBC_2.4 coshl F
-GLIBC_2.4 cosl F
-GLIBC_2.4 cpow F
-GLIBC_2.4 cpowf F
-GLIBC_2.4 cpowl F
-GLIBC_2.4 cproj F
-GLIBC_2.4 cprojf F
-GLIBC_2.4 cprojl F
-GLIBC_2.4 creal F
-GLIBC_2.4 crealf F
-GLIBC_2.4 creall F
-GLIBC_2.4 csin F
-GLIBC_2.4 csinf F
-GLIBC_2.4 csinh F
-GLIBC_2.4 csinhf F
-GLIBC_2.4 csinhl F
-GLIBC_2.4 csinl F
-GLIBC_2.4 csqrt F
-GLIBC_2.4 csqrtf F
-GLIBC_2.4 csqrtl F
-GLIBC_2.4 ctan F
-GLIBC_2.4 ctanf F
-GLIBC_2.4 ctanh F
-GLIBC_2.4 ctanhf F
-GLIBC_2.4 ctanhl F
-GLIBC_2.4 ctanl F
-GLIBC_2.4 drem F
-GLIBC_2.4 dremf F
-GLIBC_2.4 dreml F
-GLIBC_2.4 erf F
-GLIBC_2.4 erfc F
-GLIBC_2.4 erfcf F
-GLIBC_2.4 erfcl F
-GLIBC_2.4 erff F
-GLIBC_2.4 erfl F
-GLIBC_2.4 exp F
-GLIBC_2.4 exp10 F
-GLIBC_2.4 exp10f F
-GLIBC_2.4 exp10l F
-GLIBC_2.4 exp2 F
-GLIBC_2.4 exp2f F
-GLIBC_2.4 exp2l F
-GLIBC_2.4 expf F
-GLIBC_2.4 expl F
-GLIBC_2.4 expm1 F
-GLIBC_2.4 expm1f F
-GLIBC_2.4 expm1l F
-GLIBC_2.4 fabs F
-GLIBC_2.4 fabsf F
-GLIBC_2.4 fabsl F
-GLIBC_2.4 fdim F
-GLIBC_2.4 fdimf F
-GLIBC_2.4 fdiml F
-GLIBC_2.4 feclearexcept F
-GLIBC_2.4 fedisableexcept F
-GLIBC_2.4 feenableexcept F
-GLIBC_2.4 fegetenv F
-GLIBC_2.4 fegetexcept F
-GLIBC_2.4 fegetexceptflag F
-GLIBC_2.4 fegetround F
-GLIBC_2.4 feholdexcept F
-GLIBC_2.4 feraiseexcept F
-GLIBC_2.4 fesetenv F
-GLIBC_2.4 fesetexceptflag F
-GLIBC_2.4 fesetround F
-GLIBC_2.4 fetestexcept F
-GLIBC_2.4 feupdateenv F
-GLIBC_2.4 finite F
-GLIBC_2.4 finitef F
-GLIBC_2.4 finitel F
-GLIBC_2.4 floor F
-GLIBC_2.4 floorf F
-GLIBC_2.4 floorl F
-GLIBC_2.4 fma F
-GLIBC_2.4 fmaf F
-GLIBC_2.4 fmal F
-GLIBC_2.4 fmax F
-GLIBC_2.4 fmaxf F
-GLIBC_2.4 fmaxl F
-GLIBC_2.4 fmin F
-GLIBC_2.4 fminf F
-GLIBC_2.4 fminl F
-GLIBC_2.4 fmod F
-GLIBC_2.4 fmodf F
-GLIBC_2.4 fmodl F
-GLIBC_2.4 frexp F
-GLIBC_2.4 frexpf F
-GLIBC_2.4 frexpl F
-GLIBC_2.4 gamma F
-GLIBC_2.4 gammaf F
-GLIBC_2.4 gammal F
-GLIBC_2.4 hypot F
-GLIBC_2.4 hypotf F
-GLIBC_2.4 hypotl F
-GLIBC_2.4 ilogb F
-GLIBC_2.4 ilogbf F
-GLIBC_2.4 ilogbl F
-GLIBC_2.4 j0 F
-GLIBC_2.4 j0f F
-GLIBC_2.4 j0l F
-GLIBC_2.4 j1 F
-GLIBC_2.4 j1f F
-GLIBC_2.4 j1l F
-GLIBC_2.4 jn F
-GLIBC_2.4 jnf F
-GLIBC_2.4 jnl F
-GLIBC_2.4 ldexp F
-GLIBC_2.4 ldexpf F
-GLIBC_2.4 ldexpl F
-GLIBC_2.4 lgamma F
-GLIBC_2.4 lgamma_r F
-GLIBC_2.4 lgammaf F
-GLIBC_2.4 lgammaf_r F
-GLIBC_2.4 lgammal F
-GLIBC_2.4 lgammal_r F
-GLIBC_2.4 llrint F
-GLIBC_2.4 llrintf F
-GLIBC_2.4 llrintl F
-GLIBC_2.4 llround F
-GLIBC_2.4 llroundf F
-GLIBC_2.4 llroundl F
-GLIBC_2.4 log F
-GLIBC_2.4 log10 F
-GLIBC_2.4 log10f F
-GLIBC_2.4 log10l F
-GLIBC_2.4 log1p F
-GLIBC_2.4 log1pf F
-GLIBC_2.4 log1pl F
-GLIBC_2.4 log2 F
-GLIBC_2.4 log2f F
-GLIBC_2.4 log2l F
-GLIBC_2.4 logb F
-GLIBC_2.4 logbf F
-GLIBC_2.4 logbl F
-GLIBC_2.4 logf F
-GLIBC_2.4 logl F
-GLIBC_2.4 lrint F
-GLIBC_2.4 lrintf F
-GLIBC_2.4 lrintl F
-GLIBC_2.4 lround F
-GLIBC_2.4 lroundf F
-GLIBC_2.4 lroundl F
-GLIBC_2.4 matherr F
-GLIBC_2.4 modf F
-GLIBC_2.4 modff F
-GLIBC_2.4 modfl F
-GLIBC_2.4 nan F
-GLIBC_2.4 nanf F
-GLIBC_2.4 nanl F
-GLIBC_2.4 nearbyint F
-GLIBC_2.4 nearbyintf F
-GLIBC_2.4 nearbyintl F
-GLIBC_2.4 nextafter F
-GLIBC_2.4 nextafterf F
-GLIBC_2.4 nextafterl F
-GLIBC_2.4 nexttoward F
-GLIBC_2.4 nexttowardf F
-GLIBC_2.4 nexttowardl F
-GLIBC_2.4 pow F
-GLIBC_2.4 pow10 F
-GLIBC_2.4 pow10f F
-GLIBC_2.4 pow10l F
-GLIBC_2.4 powf F
-GLIBC_2.4 powl F
-GLIBC_2.4 remainder F
-GLIBC_2.4 remainderf F
-GLIBC_2.4 remainderl F
-GLIBC_2.4 remquo F
-GLIBC_2.4 remquof F
-GLIBC_2.4 remquol F
-GLIBC_2.4 rint F
-GLIBC_2.4 rintf F
-GLIBC_2.4 rintl F
-GLIBC_2.4 round F
-GLIBC_2.4 roundf F
-GLIBC_2.4 roundl F
-GLIBC_2.4 scalb F
-GLIBC_2.4 scalbf F
-GLIBC_2.4 scalbl F
-GLIBC_2.4 scalbln F
-GLIBC_2.4 scalblnf F
-GLIBC_2.4 scalblnl F
-GLIBC_2.4 scalbn F
-GLIBC_2.4 scalbnf F
-GLIBC_2.4 scalbnl F
-GLIBC_2.4 signgam D 0x4
-GLIBC_2.4 significand F
-GLIBC_2.4 significandf F
-GLIBC_2.4 significandl F
-GLIBC_2.4 sin F
-GLIBC_2.4 sincos F
-GLIBC_2.4 sincosf F
-GLIBC_2.4 sincosl F
-GLIBC_2.4 sinf F
-GLIBC_2.4 sinh F
-GLIBC_2.4 sinhf F
-GLIBC_2.4 sinhl F
-GLIBC_2.4 sinl F
-GLIBC_2.4 sqrt F
-GLIBC_2.4 sqrtf F
-GLIBC_2.4 sqrtl F
-GLIBC_2.4 tan F
-GLIBC_2.4 tanf F
-GLIBC_2.4 tanh F
-GLIBC_2.4 tanhf F
-GLIBC_2.4 tanhl F
-GLIBC_2.4 tanl F
-GLIBC_2.4 tgamma F
-GLIBC_2.4 tgammaf F
-GLIBC_2.4 tgammal F
-GLIBC_2.4 trunc F
-GLIBC_2.4 truncf F
-GLIBC_2.4 truncl F
-GLIBC_2.4 y0 F
-GLIBC_2.4 y0f F
-GLIBC_2.4 y0l F
-GLIBC_2.4 y1 F
-GLIBC_2.4 y1f F
-GLIBC_2.4 y1l F
-GLIBC_2.4 yn F
-GLIBC_2.4 ynf F
-GLIBC_2.4 ynl F
diff --git a/sysdeps/unix/sysv/linux/arm/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/libpthread.abilist
deleted file mode 100644
index af82a4c632..0000000000
--- a/sysdeps/unix/sysv/linux/arm/libpthread.abilist
+++ /dev/null
@@ -1,245 +0,0 @@
-GLIBC_2.11 pthread_sigqueue F
-GLIBC_2.12 pthread_getname_np F
-GLIBC_2.12 pthread_mutex_consistent F
-GLIBC_2.12 pthread_mutexattr_getrobust F
-GLIBC_2.12 pthread_mutexattr_setrobust F
-GLIBC_2.12 pthread_setname_np F
-GLIBC_2.18 pthread_getattr_default_np F
-GLIBC_2.18 pthread_setattr_default_np F
-GLIBC_2.28 call_once F
-GLIBC_2.28 cnd_broadcast F
-GLIBC_2.28 cnd_destroy F
-GLIBC_2.28 cnd_init F
-GLIBC_2.28 cnd_signal F
-GLIBC_2.28 cnd_timedwait F
-GLIBC_2.28 cnd_wait F
-GLIBC_2.28 mtx_destroy F
-GLIBC_2.28 mtx_init F
-GLIBC_2.28 mtx_lock F
-GLIBC_2.28 mtx_timedlock F
-GLIBC_2.28 mtx_trylock F
-GLIBC_2.28 mtx_unlock F
-GLIBC_2.28 thrd_create F
-GLIBC_2.28 thrd_detach F
-GLIBC_2.28 thrd_exit F
-GLIBC_2.28 thrd_join F
-GLIBC_2.28 tss_create F
-GLIBC_2.28 tss_delete F
-GLIBC_2.28 tss_get F
-GLIBC_2.28 tss_set F
-GLIBC_2.4 _IO_flockfile F
-GLIBC_2.4 _IO_ftrylockfile F
-GLIBC_2.4 _IO_funlockfile F
-GLIBC_2.4 __close F
-GLIBC_2.4 __connect F
-GLIBC_2.4 __errno_location F
-GLIBC_2.4 __fcntl F
-GLIBC_2.4 __fork F
-GLIBC_2.4 __h_errno_location F
-GLIBC_2.4 __libc_allocate_rtsig F
-GLIBC_2.4 __libc_current_sigrtmax F
-GLIBC_2.4 __libc_current_sigrtmin F
-GLIBC_2.4 __lseek F
-GLIBC_2.4 __nanosleep F
-GLIBC_2.4 __open F
-GLIBC_2.4 __open64 F
-GLIBC_2.4 __pread64 F
-GLIBC_2.4 __pthread_cleanup_routine F
-GLIBC_2.4 __pthread_getspecific F
-GLIBC_2.4 __pthread_key_create F
-GLIBC_2.4 __pthread_mutex_destroy F
-GLIBC_2.4 __pthread_mutex_init F
-GLIBC_2.4 __pthread_mutex_lock F
-GLIBC_2.4 __pthread_mutex_trylock F
-GLIBC_2.4 __pthread_mutex_unlock F
-GLIBC_2.4 __pthread_mutexattr_destroy F
-GLIBC_2.4 __pthread_mutexattr_init F
-GLIBC_2.4 __pthread_mutexattr_settype F
-GLIBC_2.4 __pthread_once F
-GLIBC_2.4 __pthread_register_cancel F
-GLIBC_2.4 __pthread_register_cancel_defer F
-GLIBC_2.4 __pthread_rwlock_destroy F
-GLIBC_2.4 __pthread_rwlock_init F
-GLIBC_2.4 __pthread_rwlock_rdlock F
-GLIBC_2.4 __pthread_rwlock_tryrdlock F
-GLIBC_2.4 __pthread_rwlock_trywrlock F
-GLIBC_2.4 __pthread_rwlock_unlock F
-GLIBC_2.4 __pthread_rwlock_wrlock F
-GLIBC_2.4 __pthread_setspecific F
-GLIBC_2.4 __pthread_unregister_cancel F
-GLIBC_2.4 __pthread_unregister_cancel_restore F
-GLIBC_2.4 __pthread_unwind_next F
-GLIBC_2.4 __pwrite64 F
-GLIBC_2.4 __read F
-GLIBC_2.4 __res_state F
-GLIBC_2.4 __send F
-GLIBC_2.4 __sigaction F
-GLIBC_2.4 __vfork F
-GLIBC_2.4 __wait F
-GLIBC_2.4 __write F
-GLIBC_2.4 _pthread_cleanup_pop F
-GLIBC_2.4 _pthread_cleanup_pop_restore F
-GLIBC_2.4 _pthread_cleanup_push F
-GLIBC_2.4 _pthread_cleanup_push_defer F
-GLIBC_2.4 accept F
-GLIBC_2.4 close F
-GLIBC_2.4 connect F
-GLIBC_2.4 fcntl F
-GLIBC_2.4 flockfile F
-GLIBC_2.4 fork F
-GLIBC_2.4 fsync F
-GLIBC_2.4 ftrylockfile F
-GLIBC_2.4 funlockfile F
-GLIBC_2.4 longjmp F
-GLIBC_2.4 lseek F
-GLIBC_2.4 lseek64 F
-GLIBC_2.4 msync F
-GLIBC_2.4 nanosleep F
-GLIBC_2.4 open F
-GLIBC_2.4 open64 F
-GLIBC_2.4 pause F
-GLIBC_2.4 pread F
-GLIBC_2.4 pread64 F
-GLIBC_2.4 pthread_attr_destroy F
-GLIBC_2.4 pthread_attr_getaffinity_np F
-GLIBC_2.4 pthread_attr_getdetachstate F
-GLIBC_2.4 pthread_attr_getguardsize F
-GLIBC_2.4 pthread_attr_getinheritsched F
-GLIBC_2.4 pthread_attr_getschedparam F
-GLIBC_2.4 pthread_attr_getschedpolicy F
-GLIBC_2.4 pthread_attr_getscope F
-GLIBC_2.4 pthread_attr_getstack F
-GLIBC_2.4 pthread_attr_getstackaddr F
-GLIBC_2.4 pthread_attr_getstacksize F
-GLIBC_2.4 pthread_attr_init F
-GLIBC_2.4 pthread_attr_setaffinity_np F
-GLIBC_2.4 pthread_attr_setdetachstate F
-GLIBC_2.4 pthread_attr_setguardsize F
-GLIBC_2.4 pthread_attr_setinheritsched F
-GLIBC_2.4 pthread_attr_setschedparam F
-GLIBC_2.4 pthread_attr_setschedpolicy F
-GLIBC_2.4 pthread_attr_setscope F
-GLIBC_2.4 pthread_attr_setstack F
-GLIBC_2.4 pthread_attr_setstackaddr F
-GLIBC_2.4 pthread_attr_setstacksize F
-GLIBC_2.4 pthread_barrier_destroy F
-GLIBC_2.4 pthread_barrier_init F
-GLIBC_2.4 pthread_barrier_wait F
-GLIBC_2.4 pthread_barrierattr_destroy F
-GLIBC_2.4 pthread_barrierattr_getpshared F
-GLIBC_2.4 pthread_barrierattr_init F
-GLIBC_2.4 pthread_barrierattr_setpshared F
-GLIBC_2.4 pthread_cancel F
-GLIBC_2.4 pthread_cond_broadcast F
-GLIBC_2.4 pthread_cond_destroy F
-GLIBC_2.4 pthread_cond_init F
-GLIBC_2.4 pthread_cond_signal F
-GLIBC_2.4 pthread_cond_timedwait F
-GLIBC_2.4 pthread_cond_wait F
-GLIBC_2.4 pthread_condattr_destroy F
-GLIBC_2.4 pthread_condattr_getclock F
-GLIBC_2.4 pthread_condattr_getpshared F
-GLIBC_2.4 pthread_condattr_init F
-GLIBC_2.4 pthread_condattr_setclock F
-GLIBC_2.4 pthread_condattr_setpshared F
-GLIBC_2.4 pthread_create F
-GLIBC_2.4 pthread_detach F
-GLIBC_2.4 pthread_equal F
-GLIBC_2.4 pthread_exit F
-GLIBC_2.4 pthread_getaffinity_np F
-GLIBC_2.4 pthread_getattr_np F
-GLIBC_2.4 pthread_getconcurrency F
-GLIBC_2.4 pthread_getcpuclockid F
-GLIBC_2.4 pthread_getschedparam F
-GLIBC_2.4 pthread_getspecific F
-GLIBC_2.4 pthread_join F
-GLIBC_2.4 pthread_key_create F
-GLIBC_2.4 pthread_key_delete F
-GLIBC_2.4 pthread_kill F
-GLIBC_2.4 pthread_kill_other_threads_np F
-GLIBC_2.4 pthread_mutex_consistent_np F
-GLIBC_2.4 pthread_mutex_destroy F
-GLIBC_2.4 pthread_mutex_getprioceiling F
-GLIBC_2.4 pthread_mutex_init F
-GLIBC_2.4 pthread_mutex_lock F
-GLIBC_2.4 pthread_mutex_setprioceiling F
-GLIBC_2.4 pthread_mutex_timedlock F
-GLIBC_2.4 pthread_mutex_trylock F
-GLIBC_2.4 pthread_mutex_unlock F
-GLIBC_2.4 pthread_mutexattr_destroy F
-GLIBC_2.4 pthread_mutexattr_getkind_np F
-GLIBC_2.4 pthread_mutexattr_getprioceiling F
-GLIBC_2.4 pthread_mutexattr_getprotocol F
-GLIBC_2.4 pthread_mutexattr_getpshared F
-GLIBC_2.4 pthread_mutexattr_getrobust_np F
-GLIBC_2.4 pthread_mutexattr_gettype F
-GLIBC_2.4 pthread_mutexattr_init F
-GLIBC_2.4 pthread_mutexattr_setkind_np F
-GLIBC_2.4 pthread_mutexattr_setprioceiling F
-GLIBC_2.4 pthread_mutexattr_setprotocol F
-GLIBC_2.4 pthread_mutexattr_setpshared F
-GLIBC_2.4 pthread_mutexattr_setrobust_np F
-GLIBC_2.4 pthread_mutexattr_settype F
-GLIBC_2.4 pthread_once F
-GLIBC_2.4 pthread_rwlock_destroy F
-GLIBC_2.4 pthread_rwlock_init F
-GLIBC_2.4 pthread_rwlock_rdlock F
-GLIBC_2.4 pthread_rwlock_timedrdlock F
-GLIBC_2.4 pthread_rwlock_timedwrlock F
-GLIBC_2.4 pthread_rwlock_tryrdlock F
-GLIBC_2.4 pthread_rwlock_trywrlock F
-GLIBC_2.4 pthread_rwlock_unlock F
-GLIBC_2.4 pthread_rwlock_wrlock F
-GLIBC_2.4 pthread_rwlockattr_destroy F
-GLIBC_2.4 pthread_rwlockattr_getkind_np F
-GLIBC_2.4 pthread_rwlockattr_getpshared F
-GLIBC_2.4 pthread_rwlockattr_init F
-GLIBC_2.4 pthread_rwlockattr_setkind_np F
-GLIBC_2.4 pthread_rwlockattr_setpshared F
-GLIBC_2.4 pthread_self F
-GLIBC_2.4 pthread_setaffinity_np F
-GLIBC_2.4 pthread_setcancelstate F
-GLIBC_2.4 pthread_setcanceltype F
-GLIBC_2.4 pthread_setconcurrency F
-GLIBC_2.4 pthread_setschedparam F
-GLIBC_2.4 pthread_setschedprio F
-GLIBC_2.4 pthread_setspecific F
-GLIBC_2.4 pthread_sigmask F
-GLIBC_2.4 pthread_spin_destroy F
-GLIBC_2.4 pthread_spin_init F
-GLIBC_2.4 pthread_spin_lock F
-GLIBC_2.4 pthread_spin_trylock F
-GLIBC_2.4 pthread_spin_unlock F
-GLIBC_2.4 pthread_testcancel F
-GLIBC_2.4 pthread_timedjoin_np F
-GLIBC_2.4 pthread_tryjoin_np F
-GLIBC_2.4 pthread_yield F
-GLIBC_2.4 pwrite F
-GLIBC_2.4 pwrite64 F
-GLIBC_2.4 raise F
-GLIBC_2.4 read F
-GLIBC_2.4 recv F
-GLIBC_2.4 recvfrom F
-GLIBC_2.4 recvmsg F
-GLIBC_2.4 sem_close F
-GLIBC_2.4 sem_destroy F
-GLIBC_2.4 sem_getvalue F
-GLIBC_2.4 sem_init F
-GLIBC_2.4 sem_open F
-GLIBC_2.4 sem_post F
-GLIBC_2.4 sem_timedwait F
-GLIBC_2.4 sem_trywait F
-GLIBC_2.4 sem_unlink F
-GLIBC_2.4 sem_wait F
-GLIBC_2.4 send F
-GLIBC_2.4 sendmsg F
-GLIBC_2.4 sendto F
-GLIBC_2.4 sigaction F
-GLIBC_2.4 siglongjmp F
-GLIBC_2.4 sigwait F
-GLIBC_2.4 system F
-GLIBC_2.4 tcdrain F
-GLIBC_2.4 vfork F
-GLIBC_2.4 wait F
-GLIBC_2.4 waitpid F
-GLIBC_2.4 write F
diff --git a/sysdeps/unix/sysv/linux/arm/librt.abilist b/sysdeps/unix/sysv/linux/arm/librt.abilist
deleted file mode 100644
index cfbbd27557..0000000000
--- a/sysdeps/unix/sysv/linux/arm/librt.abilist
+++ /dev/null
@@ -1,40 +0,0 @@
-GLIBC_2.4 aio_cancel F
-GLIBC_2.4 aio_cancel64 F
-GLIBC_2.4 aio_error F
-GLIBC_2.4 aio_error64 F
-GLIBC_2.4 aio_fsync F
-GLIBC_2.4 aio_fsync64 F
-GLIBC_2.4 aio_init F
-GLIBC_2.4 aio_read F
-GLIBC_2.4 aio_read64 F
-GLIBC_2.4 aio_return F
-GLIBC_2.4 aio_return64 F
-GLIBC_2.4 aio_suspend F
-GLIBC_2.4 aio_suspend64 F
-GLIBC_2.4 aio_write F
-GLIBC_2.4 aio_write64 F
-GLIBC_2.4 clock_getcpuclockid F
-GLIBC_2.4 clock_getres F
-GLIBC_2.4 clock_gettime F
-GLIBC_2.4 clock_nanosleep F
-GLIBC_2.4 clock_settime F
-GLIBC_2.4 lio_listio F
-GLIBC_2.4 lio_listio64 F
-GLIBC_2.4 mq_close F
-GLIBC_2.4 mq_getattr F
-GLIBC_2.4 mq_notify F
-GLIBC_2.4 mq_open F
-GLIBC_2.4 mq_receive F
-GLIBC_2.4 mq_send F
-GLIBC_2.4 mq_setattr F
-GLIBC_2.4 mq_timedreceive F
-GLIBC_2.4 mq_timedsend F
-GLIBC_2.4 mq_unlink F
-GLIBC_2.4 shm_open F
-GLIBC_2.4 shm_unlink F
-GLIBC_2.4 timer_create F
-GLIBC_2.4 timer_delete F
-GLIBC_2.4 timer_getoverrun F
-GLIBC_2.4 timer_gettime F
-GLIBC_2.4 timer_settime F
-GLIBC_2.7 __mq_open_2 F
diff --git a/sysdeps/unix/sysv/linux/arm/lockf64.c b/sysdeps/unix/sysv/linux/arm/lockf64.c
deleted file mode 100644
index a88f5a784a..0000000000
--- a/sysdeps/unix/sysv/linux/arm/lockf64.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/lockf64.c>
diff --git a/sysdeps/unix/sysv/linux/arm/makecontext.c b/sysdeps/unix/sysv/linux/arm/makecontext.c
index 92781fe3cf..b82bce543b 100644
--- a/sysdeps/unix/sysv/linux/arm/makecontext.c
+++ b/sysdeps/unix/sysv/linux/arm/makecontext.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdarg.h>
#include <ucontext.h>
diff --git a/sysdeps/unix/sysv/linux/arm/profil-counter.h b/sysdeps/unix/sysv/linux/arm/profil-counter.h
index 120e07ae21..20d947a8a2 100644
--- a/sysdeps/unix/sysv/linux/arm/profil-counter.h
+++ b/sysdeps/unix/sysv/linux/arm/profil-counter.h
@@ -1,5 +1,5 @@
/* Low-level statistical profiling support function. Linux/ARM version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,15 +14,15 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <signal.h>
#include <sigcontextinfo.h>
void
-__profil_counter (int signo, const SIGCONTEXT scp)
+__profil_counter (int signo, siginfo_t *_si, void *scp)
{
- profil_count ((void *) GET_PC (scp));
+ profil_count (sigcontext_get_pc (scp));
/* This is a hack to prevent the compiler from implementing the
above function call as a sibcall. The sibcall would overwrite
@@ -30,5 +30,8 @@ __profil_counter (int signo, const SIGCONTEXT scp)
asm volatile ("");
}
#ifndef __profil_counter
-weak_alias (__profil_counter, profil_counter)
+# include <shlib-compat.h>
+# if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_31)
+compat_symbol (libc, __profil_counter, profil_counter, GLIBC_2_0);
+# endif
#endif
diff --git a/sysdeps/unix/sysv/linux/arm/readelflib.c b/sysdeps/unix/sysv/linux/arm/readelflib.c
index a493e3a07f..d217a27127 100644
--- a/sysdeps/unix/sysv/linux/arm/readelflib.c
+++ b/sysdeps/unix/sysv/linux/arm/readelflib.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 1999 and
Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
int process_elf32_file (const char *file_name, const char *lib, int *flag,
diff --git a/sysdeps/unix/sysv/linux/arm/register-dump.h b/sysdeps/unix/sysv/linux/arm/register-dump.h
index 5f85802817..f3ee3375ca 100644
--- a/sysdeps/unix/sysv/linux/arm/register-dump.h
+++ b/sysdeps/unix/sysv/linux/arm/register-dump.h
@@ -1,5 +1,5 @@
/* Dump registers.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Philip Blundell <pb@nexus.co.uk>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/uio.h>
#include <_itoa.h>
diff --git a/sysdeps/unix/sysv/linux/arm/setcontext.S b/sysdeps/unix/sysv/linux/arm/setcontext.S
index 7a0cd48090..7259c29d9a 100644
--- a/sysdeps/unix/sysv/linux/arm/setcontext.S
+++ b/sysdeps/unix/sysv/linux/arm/setcontext.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* ??? Needs more rearrangement for the LDM to handle thumb mode. */
#define NO_THUMB
diff --git a/sysdeps/unix/sysv/linux/arm/sigaction.c b/sysdeps/unix/sysv/linux/arm/sigaction.c
index c828250815..47a39224b7 100644
--- a/sysdeps/unix/sysv/linux/arm/sigaction.c
+++ b/sysdeps/unix/sysv/linux/arm/sigaction.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define SA_RESTORER 0x04000000
diff --git a/sysdeps/unix/sysv/linux/arm/sigcontextinfo.h b/sysdeps/unix/sysv/linux/arm/sigcontextinfo.h
index b8e79c2c4c..cfb6a1a030 100644
--- a/sysdeps/unix/sysv/linux/arm/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/arm/sigcontextinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Philip Blundell <philb@gnu.org>, 1999.
@@ -14,26 +14,15 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#include <sys/ucontext.h>
+#ifndef _SIGCONTEXTINFO_H
+#define _SIGCONTEXTINFO_H
-#define SIGCONTEXT siginfo_t *_si, ucontext_t *
+static inline uintptr_t
+sigcontext_get_pc (const ucontext_t *ctx)
+{
+ return ctx->uc_mcontext.arm_pc;
+}
-/* The sigcontext structure changed between 2.0 and 2.1 kernels. On any
- modern system we should be able to assume that the "new" format will be
- in use. */
-
-#define GET_PC(ctx) ((void *) (ctx)->uc_mcontext.arm_pc)
-
-/* There is no reliable way to get the sigcontext unless we use a
- three-argument signal handler. */
-#define __sigaction(sig, act, oact) ({ \
- (act)->sa_flags |= SA_SIGINFO; \
- (__sigaction) (sig, act, oact); \
-})
-
-#define sigaction(sig, act, oact) ({ \
- (act)->sa_flags |= SA_SIGINFO; \
- (sigaction) (sig, act, oact); \
-})
+#endif
diff --git a/sysdeps/unix/sysv/linux/arm/sigrestorer.S b/sysdeps/unix/sysv/linux/arm/sigrestorer.S
index 24a9c93f42..eb1be3bf31 100644
--- a/sysdeps/unix/sysv/linux/arm/sigrestorer.S
+++ b/sysdeps/unix/sysv/linux/arm/sigrestorer.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/arm/swapcontext.S b/sysdeps/unix/sysv/linux/arm/swapcontext.S
index b42ca2a1ec..45ee04e6fe 100644
--- a/sysdeps/unix/sysv/linux/arm/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/arm/swapcontext.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/arm/sys/elf.h b/sysdeps/unix/sysv/linux/arm/sys/elf.h
index 8faa721210..20f2c19811 100644
--- a/sysdeps/unix/sysv/linux/arm/sys/elf.h
+++ b/sysdeps/unix/sysv/linux/arm/sys/elf.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_ELF_H
#define _SYS_ELF_H 1
diff --git a/sysdeps/unix/sysv/linux/arm/sys/io.h b/sysdeps/unix/sysv/linux/arm/sys/io.h
deleted file mode 100644
index 152e8f8efa..0000000000
--- a/sysdeps/unix/sysv/linux/arm/sys/io.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Copyright (C) 1996-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_IO_H
-
-#define _SYS_IO_H 1
-#include <features.h>
-
-__BEGIN_DECLS
-
-/* If TURN_ON is TRUE, request for permission to do direct i/o on the
- port numbers in the range [FROM,FROM+NUM-1]. Otherwise, turn I/O
- permission off for that range. This call requires root privileges. */
-extern int ioperm (unsigned long int __from, unsigned long int __num,
- int __turn_on) __THROW;
-
-/* Set the I/O privilege level to LEVEL. If LEVEL is nonzero,
- permission to access any I/O port is granted. This call requires
- root privileges. */
-extern int iopl (int __level) __THROW;
-
-/* The functions that actually perform reads and writes. */
-extern unsigned char inb (unsigned long int __port) __THROW;
-extern unsigned short int inw (unsigned long int __port) __THROW;
-extern unsigned long int inl (unsigned long int __port) __THROW;
-
-extern void outb (unsigned char __value, unsigned long int __port) __THROW;
-extern void outw (unsigned short __value, unsigned long int __port) __THROW;
-extern void outl (unsigned long __value, unsigned long int __port) __THROW;
-
-__END_DECLS
-
-#endif /* _SYS_IO_H */
diff --git a/sysdeps/unix/sysv/linux/arm/sys/procfs.h b/sysdeps/unix/sysv/linux/arm/sys/procfs.h
deleted file mode 100644
index 6f177af923..0000000000
--- a/sysdeps/unix/sysv/linux/arm/sys/procfs.h
+++ /dev/null
@@ -1,122 +0,0 @@
-/* Copyright (C) 1996-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_PROCFS_H
-#define _SYS_PROCFS_H 1
-
-/* This is somewhat modelled after the file of the same name on SVR4
- systems. It provides a definition of the core file format for ELF
- used on Linux. It doesn't have anything to do with the /proc file
- system, even though Linux has one.
-
- Anyway, the whole purpose of this file is for GDB and GDB only.
- Don't read too much into it. Don't use it for anything other than
- GDB unless you know what you are doing. */
-
-#include <features.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#include <sys/user.h>
-
-__BEGIN_DECLS
-
-/* Type for a general-purpose register. */
-typedef unsigned long elf_greg_t;
-
-/* And the whole bunch of them. We could have used `struct
- user_regs' directly in the typedef, but tradition says that
- the register set is an array, which does have some peculiar
- semantics, so leave it that way. */
-#define ELF_NGREG (sizeof (struct user_regs) / sizeof(elf_greg_t))
-typedef elf_greg_t elf_gregset_t[ELF_NGREG];
-
-/* Register set for the floating-point registers. */
-typedef struct user_fpregs elf_fpregset_t;
-
-/* Signal info. */
-struct elf_siginfo
- {
- int si_signo; /* Signal number. */
- int si_code; /* Extra code. */
- int si_errno; /* Errno. */
- };
-
-/* Definitions to generate Intel SVR4-like core files. These mostly
- have the same names as the SVR4 types with "elf_" tacked on the
- front to prevent clashes with Linux definitions, and the typedef
- forms have been avoided. This is mostly like the SVR4 structure,
- but more Linuxy, with things that Linux does not support and which
- GDB doesn't really use excluded. */
-
-struct elf_prstatus
- {
- struct elf_siginfo pr_info; /* Info associated with signal. */
- short int pr_cursig; /* Current signal. */
- unsigned long int pr_sigpend; /* Set of pending signals. */
- unsigned long int pr_sighold; /* Set of held signals. */
- __pid_t pr_pid;
- __pid_t pr_ppid;
- __pid_t pr_pgrp;
- __pid_t pr_sid;
- struct timeval pr_utime; /* User time. */
- struct timeval pr_stime; /* System time. */
- struct timeval pr_cutime; /* Cumulative user time. */
- struct timeval pr_cstime; /* Cumulative system time. */
- elf_gregset_t pr_reg; /* GP registers. */
- int pr_fpvalid; /* True if math copro being used. */
- };
-
-
-#define ELF_PRARGSZ (80) /* Number of chars for args. */
-
-struct elf_prpsinfo
- {
- char pr_state; /* Numeric process state. */
- char pr_sname; /* Char for pr_state. */
- char pr_zomb; /* Zombie. */
- char pr_nice; /* Nice val. */
- unsigned long int pr_flag; /* Flags. */
- unsigned short int pr_uid;
- unsigned short int pr_gid;
- int pr_pid, pr_ppid, pr_pgrp, pr_sid;
- /* Lots missing */
- char pr_fname[16]; /* Filename of executable. */
- char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
- };
-
-/* The rest of this file provides the types for emulation of the
- Solaris <proc_service.h> interfaces that should be implemented by
- users of libthread_db. */
-
-/* Addresses. */
-typedef void *psaddr_t;
-
-/* Register sets. Linux has different names. */
-typedef elf_gregset_t prgregset_t;
-typedef elf_fpregset_t prfpregset_t;
-
-/* We don't have any differences between processes and threads,
- therefore have only one PID type. */
-typedef __pid_t lwpid_t;
-
-/* Process status and info. In the end we do provide typedefs for them. */
-typedef struct elf_prstatus prstatus_t;
-typedef struct elf_prpsinfo prpsinfo_t;
-
-__END_DECLS
-
-#endif /* sys/procfs.h */
diff --git a/sysdeps/unix/sysv/linux/arm/sys/ptrace.h b/sysdeps/unix/sysv/linux/arm/sys/ptrace.h
index bc54a1e5e2..c586fe4db1 100644
--- a/sysdeps/unix/sysv/linux/arm/sys/ptrace.h
+++ b/sysdeps/unix/sysv/linux/arm/sys/ptrace.h
@@ -1,5 +1,5 @@
/* `ptrace' debugger support interface. Linux/ARM version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -196,8 +196,12 @@ enum __ptrace_request
#define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER
/* Get seccomp BPF filter metadata. */
- PTRACE_SECCOMP_GET_METADATA = 0x420d
+ PTRACE_SECCOMP_GET_METADATA = 0x420d,
#define PTRACE_SECCOMP_GET_METADATA PTRACE_SECCOMP_GET_METADATA
+
+ /* Get information about system call. */
+ PTRACE_GET_SYSCALL_INFO = 0x420e
+#define PTRACE_GET_SYSCALL_INFO PTRACE_GET_SYSCALL_INFO
};
diff --git a/sysdeps/unix/sysv/linux/arm/sys/ucontext.h b/sysdeps/unix/sysv/linux/arm/sys/ucontext.h
index 831d0293f1..f9cce0170b 100644
--- a/sysdeps/unix/sysv/linux/arm/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/arm/sys/ucontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* System V/ARM ABI compliant context switching support. */
diff --git a/sysdeps/unix/sysv/linux/arm/sys/user.h b/sysdeps/unix/sysv/linux/arm/sys/user.h
index bc520fab65..fe905dd618 100644
--- a/sysdeps/unix/sysv/linux/arm/sys/user.h
+++ b/sysdeps/unix/sysv/linux/arm/sys/user.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_USER_H
#define _SYS_USER_H 1
diff --git a/sysdeps/unix/sysv/linux/arm/syscall.S b/sysdeps/unix/sysv/linux/arm/syscall.S
index d531910855..4fb39ad10e 100644
--- a/sysdeps/unix/sysv/linux/arm/syscall.S
+++ b/sysdeps/unix/sysv/linux/arm/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/arm/sysdep.S b/sysdeps/unix/sysv/linux/arm/sysdep.S
index 1ee8716c10..682adf06e1 100644
--- a/sysdeps/unix/sysv/linux/arm/sysdep.S
+++ b/sysdeps/unix/sysv/linux/arm/sysdep.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/arm/sysdep.h b/sysdeps/unix/sysv/linux/arm/sysdep.h
index 174c530412..e9e022e037 100644
--- a/sysdeps/unix/sysv/linux/arm/sysdep.h
+++ b/sysdeps/unix/sysv/linux/arm/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>, August 1995.
ARM changes by Philip Blundell, <pjb27@cam.ac.uk>, May 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LINUX_ARM_SYSDEP_H
#define _LINUX_ARM_SYSDEP_H 1
@@ -388,9 +388,12 @@ __local_syscall_error: \
#undef INTERNAL_SYSCALL_ERRNO
#define INTERNAL_SYSCALL_ERRNO(val, err) (-(val))
+#define VDSO_NAME "LINUX_2.6"
+#define VDSO_HASH 61765110
+
/* List of system calls which are supported as vsyscalls. */
-#define HAVE_CLOCK_GETTIME_VSYSCALL 1
-#define HAVE_GETTIMEOFDAY_VSYSCALL 1
+#define HAVE_CLOCK_GETTIME_VSYSCALL "__vdso_clock_gettime"
+#define HAVE_GETTIMEOFDAY_VSYSCALL "__vdso_gettimeofday"
#define LOAD_ARGS_0()
#define ASM_ARGS_0
diff --git a/sysdeps/unix/sysv/linux/arm/tls.h b/sysdeps/unix/sysv/linux/arm/tls.h
index c910111d2c..7dd9b646d4 100644
--- a/sysdeps/unix/sysv/linux/arm/tls.h
+++ b/sysdeps/unix/sysv/linux/arm/tls.h
@@ -1,5 +1,5 @@
/* Definition for thread-local data handling. ARM/Linux version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LINUX_ARM_TLS_H
#define _LINUX_ARM_TLS_H 1
diff --git a/sysdeps/unix/sysv/linux/arm/vfork.S b/sysdeps/unix/sysv/linux/arm/vfork.S
index 53fae8aa50..d5f3020194 100644
--- a/sysdeps/unix/sysv/linux/arm/vfork.S
+++ b/sysdeps/unix/sysv/linux/arm/vfork.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Philip Blundell <philb@gnu.org>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#define _ERRNO_H 1
diff --git a/sysdeps/unix/sysv/linux/bind.c b/sysdeps/unix/sysv/linux/bind.c
index 98c35bcd63..90507d1469 100644
--- a/sysdeps/unix/sysv/linux/bind.c
+++ b/sysdeps/unix/sysv/linux/bind.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2015-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/sysdeps/unix/sysv/linux/bits/dirent.h b/sysdeps/unix/sysv/linux/bits/dirent.h
index f312720547..a92d2e1307 100644
--- a/sysdeps/unix/sysv/linux/bits/dirent.h
+++ b/sysdeps/unix/sysv/linux/bits/dirent.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DIRENT_H
# error "Never use <bits/dirent.h> directly; include <dirent.h> instead."
diff --git a/sysdeps/unix/sysv/linux/bits/dirent_ext.h b/sysdeps/unix/sysv/linux/bits/dirent_ext.h
new file mode 100644
index 0000000000..c5aac69251
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/bits/dirent_ext.h
@@ -0,0 +1,33 @@
+/* System-specific extensions of <dirent.h>. Linux version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _DIRENT_H
+# error "Never include <bits/dirent_ext.h> directly; use <dirent.h> instead."
+#endif
+
+__BEGIN_DECLS
+
+#ifdef __USE_GNU
+/* Read from the directory descriptor FD into LENGTH bytes at BUFFER.
+ Return the number of bytes read on success (0 for end of
+ directory), and -1 for failure. */
+extern __ssize_t getdents64 (int __fd, void *__buffer, size_t __length)
+ __THROW __nonnull ((2));
+#endif
+
+__END_DECLS
diff --git a/sysdeps/unix/sysv/linux/bits/epoll.h b/sysdeps/unix/sysv/linux/bits/epoll.h
index d4aea329ac..8377319856 100644
--- a/sysdeps/unix/sysv/linux/bits/epoll.h
+++ b/sysdeps/unix/sysv/linux/bits/epoll.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_EPOLL_H
# error "Never use <bits/epoll.h> directly; include <sys/epoll.h> instead."
diff --git a/sysdeps/unix/sysv/linux/bits/errno.h b/sysdeps/unix/sysv/linux/bits/errno.h
index e0f7f0b6ae..84be7a484d 100644
--- a/sysdeps/unix/sysv/linux/bits/errno.h
+++ b/sysdeps/unix/sysv/linux/bits/errno.h
@@ -1,5 +1,5 @@
/* Error constants. Linux specific version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_ERRNO_H
#define _BITS_ERRNO_H 1
diff --git a/sysdeps/unix/sysv/linux/bits/eventfd.h b/sysdeps/unix/sysv/linux/bits/eventfd.h
index 5941174216..2348ccc8ea 100644
--- a/sysdeps/unix/sysv/linux/bits/eventfd.h
+++ b/sysdeps/unix/sysv/linux/bits/eventfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_EVENTFD_H
# error "Never use <bits/eventfd.h> directly; include <sys/eventfd.h> instead."
diff --git a/sysdeps/unix/sysv/linux/bits/fcntl-linux.h b/sysdeps/unix/sysv/linux/bits/fcntl-linux.h
index 269494261e..820f1152cf 100644
--- a/sysdeps/unix/sysv/linux/bits/fcntl-linux.h
+++ b/sysdeps/unix/sysv/linux/bits/fcntl-linux.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for Linux.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FCNTL_H
# error "Never use <bits/fcntl-linux.h> directly; include <fcntl.h> instead."
@@ -284,6 +284,8 @@ struct f_owner_ex
# define F_SEAL_SHRINK 0x0002 /* Prevent file from shrinking. */
# define F_SEAL_GROW 0x0004 /* Prevent file from growing. */
# define F_SEAL_WRITE 0x0008 /* Prevent writes. */
+# define F_SEAL_FUTURE_WRITE 0x0010 /* Prevent future writes while
+ mapped. */
#endif
#ifdef __USE_GNU
@@ -332,6 +334,11 @@ struct f_owner_ex
# define SYNC_FILE_RANGE_WAIT_AFTER 4 /* Wait upon writeout of all pages in
the range after performing the
write. */
+/* SYNC_FILE_RANGE_WRITE_AND_WAIT ensures all pages in the range are
+ written to disk before returning. */
+# define SYNC_FILE_RANGE_WRITE_AND_WAIT (SYNC_FILE_RANGE_WRITE \
+ | SYNC_FILE_RANGE_WAIT_BEFORE \
+ | SYNC_FILE_RANGE_WAIT_AFTER)
/* Flags for SPLICE and VMSPLICE. */
# define SPLICE_F_MOVE 1 /* Move pages instead of copying. */
diff --git a/sysdeps/unix/sysv/linux/bits/in.h b/sysdeps/unix/sysv/linux/bits/in.h
index 2c86102629..0fa1743ac0 100644
--- a/sysdeps/unix/sysv/linux/bits/in.h
+++ b/sysdeps/unix/sysv/linux/bits/in.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Linux version. */
@@ -191,6 +191,8 @@ struct in_pktinfo
#define IPV6_V6ONLY 26
#define IPV6_JOIN_ANYCAST 27
#define IPV6_LEAVE_ANYCAST 28
+#define IPV6_MULTICAST_ALL 29
+#define IPV6_ROUTER_ALERT_ISOLATE 30
#define IPV6_IPSEC_POLICY 34
#define IPV6_XFRM_POLICY 35
#define IPV6_HDRINCL 36
diff --git a/sysdeps/unix/sysv/linux/bits/inotify.h b/sysdeps/unix/sysv/linux/bits/inotify.h
index d16087625b..962c16190d 100644
--- a/sysdeps/unix/sysv/linux/bits/inotify.h
+++ b/sysdeps/unix/sysv/linux/bits/inotify.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_INOTIFY_H
# error "Never use <bits/inotify.h> directly; include <sys/inotify.h> instead."
diff --git a/sysdeps/unix/sysv/linux/bits/ioctl-types.h b/sysdeps/unix/sysv/linux/bits/ioctl-types.h
index 28fd1db025..0ef639e867 100644
--- a/sysdeps/unix/sysv/linux/bits/ioctl-types.h
+++ b/sysdeps/unix/sysv/linux/bits/ioctl-types.h
@@ -1,5 +1,5 @@
/* Structure types for pre-termios terminal ioctls. Linux version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_IOCTL_H
# error "Never use <bits/ioctl-types.h> directly; include <sys/ioctl.h> instead."
diff --git a/sysdeps/unix/sysv/linux/bits/ioctls.h b/sysdeps/unix/sysv/linux/bits/ioctls.h
index b719f6ef2a..6bb51f8389 100644
--- a/sysdeps/unix/sysv/linux/bits/ioctls.h
+++ b/sysdeps/unix/sysv/linux/bits/ioctls.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_IOCTL_H
# error "Never use <bits/ioctls.h> directly; include <sys/ioctl.h> instead."
diff --git a/sysdeps/unix/sysv/linux/bits/ipc-perm.h b/sysdeps/unix/sysv/linux/bits/ipc-perm.h
new file mode 100644
index 0000000000..2c3f49f292
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/bits/ipc-perm.h
@@ -0,0 +1,40 @@
+/* struct ipc_perm definition.
+ 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; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_IPC_H
+# error "Never use <bits/ipc-perm.h> directly; include <sys/ipc.h> instead."
+#endif
+
+/* Data structure used to pass permission information to IPC operations.
+ It follows the kernel ipc64_perm size so the syscall can be made directly
+ without temporary buffer copy. However, since glibc defines the MODE
+ field as mode_t per POSIX definition (BZ#18231), it omits the __PAD1 field
+ (since glibc does not export mode_t as 16-bit for any architecture). */
+struct ipc_perm
+{
+ __key_t __key; /* Key. */
+ __uid_t uid; /* Owner's user ID. */
+ __gid_t gid; /* Owner's group ID. */
+ __uid_t cuid; /* Creator's user ID. */
+ __gid_t cgid; /* Creator's group ID. */
+ __mode_t mode; /* Read/write permission. */
+ unsigned short int __seq; /* Sequence number. */
+ unsigned short int __pad2;
+ __syscall_ulong_t __glibc_reserved1;
+ __syscall_ulong_t __glibc_reserved2;
+};
diff --git a/sysdeps/unix/sysv/linux/bits/ipc.h b/sysdeps/unix/sysv/linux/bits/ipc.h
index 46656c54cb..9939857ab5 100644
--- a/sysdeps/unix/sysv/linux/bits/ipc.h
+++ b/sysdeps/unix/sysv/linux/bits/ipc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_IPC_H
# error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
@@ -37,19 +37,4 @@
/* Special key values. */
#define IPC_PRIVATE ((__key_t) 0) /* Private key. */
-
-/* Data structure used to pass permission information to IPC operations. */
-struct ipc_perm
- {
- __key_t __key; /* Key. */
- __uid_t uid; /* Owner's user ID. */
- __gid_t gid; /* Owner's group ID. */
- __uid_t cuid; /* Creator's user ID. */
- __gid_t cgid; /* Creator's group ID. */
- unsigned short int mode; /* Read/write permission. */
- unsigned short int __pad1;
- unsigned short int __seq; /* Sequence number. */
- unsigned short int __pad2;
- __syscall_ulong_t __glibc_reserved1;
- __syscall_ulong_t __glibc_reserved2;
- };
+#include <bits/ipc-perm.h>
diff --git a/sysdeps/unix/sysv/linux/bits/local_lim.h b/sysdeps/unix/sysv/linux/bits/local_lim.h
index 2d82ada43c..4972dee65a 100644
--- a/sysdeps/unix/sysv/linux/bits/local_lim.h
+++ b/sysdeps/unix/sysv/linux/bits/local_lim.h
@@ -1,5 +1,5 @@
/* Minimum guaranteed maximum values for system limits. Linux version.
- Copyright (C) 1993-2018 Free Software Foundation, Inc.
+ Copyright (C) 1993-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
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
/* The kernel header pollutes the namespace with the NR_OPEN symbol
and defines LINK_MAX although filesystems have different maxima. A
diff --git a/sysdeps/unix/sysv/linux/bits/mman-linux.h b/sysdeps/unix/sysv/linux/bits/mman-linux.h
index 70edeb6d60..c0b11bfe24 100644
--- a/sysdeps/unix/sysv/linux/bits/mman-linux.h
+++ b/sysdeps/unix/sysv/linux/bits/mman-linux.h
@@ -1,5 +1,5 @@
/* Definitions for POSIX memory map interface. Linux generic version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_MMAN_H
# error "Never use <bits/mman-linux.h> directly; include <sys/mman.h> instead."
@@ -67,12 +67,6 @@
#define MS_SYNC 4 /* Synchronous memory sync. */
#define MS_INVALIDATE 2 /* Invalidate the caches. */
-/* Flags for `mremap'. */
-#ifdef __USE_GNU
-# define MREMAP_MAYMOVE 1
-# define MREMAP_FIXED 2
-#endif
-
/* Advice to `madvise'. */
#ifdef __USE_MISC
# define MADV_NORMAL 0 /* No further special treatment. */
@@ -93,6 +87,8 @@
# define MADV_DODUMP 17 /* Clear the MADV_DONTDUMP flag. */
# define MADV_WIPEONFORK 18 /* Zero memory on fork, child only. */
# define MADV_KEEPONFORK 19 /* Undo MADV_WIPEONFORK. */
+# define MADV_COLD 20 /* Deactivate these pages. */
+# define MADV_PAGEOUT 21 /* Reclaim these pages. */
# define MADV_HWPOISON 100 /* Poison a page for testing. */
#endif
diff --git a/sysdeps/unix/sysv/linux/bits/mman-map-flags-generic.h b/sysdeps/unix/sysv/linux/bits/mman-map-flags-generic.h
new file mode 100644
index 0000000000..9ff541a710
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/bits/mman-map-flags-generic.h
@@ -0,0 +1,42 @@
+/* Definitions for POSIX memory map interface. Linux/generic version.
+ Copyright (C) 1997-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_MMAN_H
+# error "Never use <bits/mman-map-flags-generic.h> directly; include <sys/mman.h> instead."
+#endif
+
+/* These definitions are appropriate for architectures that, in the
+ Linux kernel, either have no uapi/asm/mman.h, or have one that
+ includes asm-generic/mman.h without any changes to the values of
+ the MAP_* flags defined in that header. */
+
+#ifdef __USE_MISC
+# define MAP_GROWSDOWN 0x00100 /* Stack-like segment. */
+# define MAP_DENYWRITE 0x00800 /* ETXTBSY. */
+# define MAP_EXECUTABLE 0x01000 /* Mark it as an executable. */
+# define MAP_LOCKED 0x02000 /* Lock the mapping. */
+# define MAP_NORESERVE 0x04000 /* Don't check for reservations. */
+# define MAP_POPULATE 0x08000 /* Populate (prefault) pagetables. */
+# define MAP_NONBLOCK 0x10000 /* Do not block on IO. */
+# define MAP_STACK 0x20000 /* Allocation is for a stack. */
+# define MAP_HUGETLB 0x40000 /* Create huge page mapping. */
+# define MAP_SYNC 0x80000 /* Perform synchronous page
+ faults for the mapping. */
+# define MAP_FIXED_NOREPLACE 0x100000 /* MAP_FIXED but do not unmap
+ underlying mapping. */
+#endif
diff --git a/sysdeps/unix/sysv/linux/bits/mman-shared.h b/sysdeps/unix/sysv/linux/bits/mman-shared.h
index d15ba95c9d..1f94dc115a 100644
--- a/sysdeps/unix/sysv/linux/bits/mman-shared.h
+++ b/sysdeps/unix/sysv/linux/bits/mman-shared.h
@@ -1,5 +1,5 @@
/* Memory-mapping-related declarations/definitions, not architecture-specific.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,13 +14,17 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_MMAN_H
# error "Never use <bits/mman-shared.h> directly; include <sys/mman.h> instead."
#endif
#ifdef __USE_GNU
+/* Flags for mremap. */
+# define MREMAP_MAYMOVE 1
+# define MREMAP_FIXED 2
+
/* Flags for memfd_create. */
# ifndef MFD_CLOEXEC
# define MFD_CLOEXEC 1U
diff --git a/sysdeps/unix/sysv/linux/bits/mman.h b/sysdeps/unix/sysv/linux/bits/mman.h
new file mode 100644
index 0000000000..9067177aca
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/bits/mman.h
@@ -0,0 +1,32 @@
+/* Definitions for POSIX memory map interface. Linux/generic version.
+ Copyright (C) 1997-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_MMAN_H
+# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
+#endif
+
+/* These definitions are appropriate for architectures that, in the
+ Linux kernel, either have no uapi/asm/mman.h, or have one that
+ includes asm-generic/mman.h without any changes or additions
+ relevant to glibc. If there are additions relevant to glibc, an
+ architecture-specific bits/mman.h is needed. */
+
+#include <bits/mman-map-flags-generic.h>
+
+/* Include generic Linux declarations. */
+#include <bits/mman-linux.h>
diff --git a/sysdeps/unix/sysv/linux/bits/mqueue.h b/sysdeps/unix/sysv/linux/bits/mqueue.h
index 321e1c369a..c1c7356a99 100644
--- a/sysdeps/unix/sysv/linux/bits/mqueue.h
+++ b/sysdeps/unix/sysv/linux/bits/mqueue.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MQUEUE_H
# error "Never use <bits/mqueue.h> directly; include <mqueue.h> instead."
diff --git a/sysdeps/unix/sysv/linux/bits/msq-pad.h b/sysdeps/unix/sysv/linux/bits/msq-pad.h
new file mode 100644
index 0000000000..732d5f2e8c
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/bits/msq-pad.h
@@ -0,0 +1,31 @@
+/* Define where padding goes in struct msqid_ds. Generic version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_MSG_H
+# error "Never use <bits/msq-pad.h> directly; include <sys/msg.h> instead."
+#endif
+
+#include <bits/timesize.h>
+
+/* On most architectures, padding goes after time fields for 32-bit
+ systems and is omitted for 64-bit systems. Some architectures pad
+ before time fields instead, or omit padding despite being
+ 32-bit. */
+
+#define __MSQ_PAD_AFTER_TIME (__TIMESIZE == 32)
+#define __MSQ_PAD_BEFORE_TIME 0
diff --git a/sysdeps/unix/sysv/linux/bits/msq.h b/sysdeps/unix/sysv/linux/bits/msq.h
index 319521018d..6d060d605a 100644
--- a/sysdeps/unix/sysv/linux/bits/msq.h
+++ b/sysdeps/unix/sysv/linux/bits/msq.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -13,13 +13,14 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_MSG_H
# error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
#endif
#include <bits/types.h>
+#include <bits/msq-pad.h>
/* Define options for message queue functions. */
#define MSG_NOERROR 010000 /* no error if message is too big */
@@ -29,28 +30,35 @@
#endif
/* Types used in the structure definition. */
-typedef unsigned long int msgqnum_t;
-typedef unsigned long int msglen_t;
+typedef __syscall_ulong_t msgqnum_t;
+typedef __syscall_ulong_t msglen_t;
+#if __MSQ_PAD_BEFORE_TIME
+# define __MSQ_PAD_TIME(NAME, RES) \
+ unsigned long int __glibc_reserved ## RES; __time_t NAME
+#elif __MSQ_PAD_AFTER_TIME
+# define __MSQ_PAD_TIME(NAME, RES) \
+ __time_t NAME; unsigned long int __glibc_reserved ## RES
+#else
+# define __MSQ_PAD_TIME(NAME, RES) \
+ __time_t NAME
+#endif
/* Structure of record for one message inside the kernel.
The type `struct msg' is opaque. */
struct msqid_ds
{
struct ipc_perm msg_perm; /* structure describing operation permission */
- __time_t msg_stime; /* time of last msgsnd command */
- unsigned long int __glibc_reserved1;
- __time_t msg_rtime; /* time of last msgrcv command */
- unsigned long int __glibc_reserved2;
- __time_t msg_ctime; /* time of last change */
- unsigned long int __glibc_reserved3;
- unsigned long int __msg_cbytes; /* current number of bytes on queue */
+ __MSQ_PAD_TIME (msg_stime, 1); /* time of last msgsnd command */
+ __MSQ_PAD_TIME (msg_rtime, 2); /* time of last msgrcv command */
+ __MSQ_PAD_TIME (msg_ctime, 3); /* time of last change */
+ __syscall_ulong_t __msg_cbytes; /* current number of bytes on queue */
msgqnum_t msg_qnum; /* number of messages currently on queue */
msglen_t msg_qbytes; /* max number of bytes allowed on queue */
__pid_t msg_lspid; /* pid of last msgsnd() */
__pid_t msg_lrpid; /* pid of last msgrcv() */
- unsigned long int __glibc_reserved4;
- unsigned long int __glibc_reserved5;
+ __syscall_ulong_t __glibc_reserved4;
+ __syscall_ulong_t __glibc_reserved5;
};
#ifdef __USE_MISC
diff --git a/sysdeps/unix/sysv/linux/bits/param.h b/sysdeps/unix/sysv/linux/bits/param.h
index 03486c167d..998c52f068 100644
--- a/sysdeps/unix/sysv/linux/bits/param.h
+++ b/sysdeps/unix/sysv/linux/bits/param.h
@@ -1,5 +1,5 @@
/* Old-style Unix parameters and limits. Linux version.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_PARAM_H
# error "Never use <bits/param.h> directly; include <sys/param.h> instead."
diff --git a/sysdeps/unix/sysv/linux/bits/poll.h b/sysdeps/unix/sysv/linux/bits/poll.h
index 4bd9db6fab..acbd1e490f 100644
--- a/sysdeps/unix/sysv/linux/bits/poll.h
+++ b/sysdeps/unix/sysv/linux/bits/poll.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_POLL_H
# error "Never use <bits/poll.h> directly; include <sys/poll.h> instead."
diff --git a/sysdeps/unix/sysv/linux/bits/posix_opt.h b/sysdeps/unix/sysv/linux/bits/posix_opt.h
index 2339d4a147..6b630a6604 100644
--- a/sysdeps/unix/sysv/linux/bits/posix_opt.h
+++ b/sysdeps/unix/sysv/linux/bits/posix_opt.h
@@ -1,5 +1,5 @@
/* Define POSIX options for Linux.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#ifndef _BITS_POSIX_OPT_H
#define _BITS_POSIX_OPT_H 1
@@ -25,7 +25,10 @@
/* Processes have a saved set-user-ID and a saved set-group-ID. */
#define _POSIX_SAVED_IDS 1
-/* Priority scheduling is supported. */
+/* Priority scheduling is not supported with the correct semantics,
+ but GNU/Linux applications expect that the corresponding interfaces
+ are available, even though the semantics do not meet the POSIX
+ requirements. See glibc bug 14829. */
#define _POSIX_PRIORITY_SCHEDULING 200809L
/* Synchronizing file data is supported. */
diff --git a/sysdeps/unix/sysv/linux/bits/procfs-extra.h b/sysdeps/unix/sysv/linux/bits/procfs-extra.h
new file mode 100644
index 0000000000..5025075cb2
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/bits/procfs-extra.h
@@ -0,0 +1,22 @@
+/* Extra sys/procfs.h definitions. Generic Linux version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PROCFS_H
+# error "Never include <bits/procfs-extra.h> directly; use <sys/procfs.h> instead."
+#endif
diff --git a/sysdeps/unix/sysv/linux/bits/procfs-id.h b/sysdeps/unix/sysv/linux/bits/procfs-id.h
new file mode 100644
index 0000000000..17de29163c
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/bits/procfs-id.h
@@ -0,0 +1,25 @@
+/* Types of pr_uid and pr_gid in struct elf_prpsinfo. Generic Linux version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PROCFS_H
+# error "Never include <bits/procfs-id.h> directly; use <sys/procfs.h> instead."
+#endif
+
+typedef unsigned int __pr_uid_t;
+typedef unsigned int __pr_gid_t;
diff --git a/sysdeps/unix/sysv/linux/bits/procfs-prregset.h b/sysdeps/unix/sysv/linux/bits/procfs-prregset.h
new file mode 100644
index 0000000000..ffaa83c3ce
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/bits/procfs-prregset.h
@@ -0,0 +1,25 @@
+/* Types of prgregset_t and prfpregset_t. Generic Linux version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PROCFS_H
+# error "Never include <bits/procfs-prregset.h> directly; use <sys/procfs.h> instead."
+#endif
+
+typedef elf_gregset_t __prgregset_t;
+typedef elf_fpregset_t __prfpregset_t;
diff --git a/sysdeps/unix/sysv/linux/bits/procfs.h b/sysdeps/unix/sysv/linux/bits/procfs.h
new file mode 100644
index 0000000000..fbe0f1a981
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/bits/procfs.h
@@ -0,0 +1 @@
+#error "This file must be supplied by each architecture using it."
diff --git a/sysdeps/unix/sysv/linux/bits/ptrace-shared.h b/sysdeps/unix/sysv/linux/bits/ptrace-shared.h
index 03a779140c..f351d2f45b 100644
--- a/sysdeps/unix/sysv/linux/bits/ptrace-shared.h
+++ b/sysdeps/unix/sysv/linux/bits/ptrace-shared.h
@@ -1,6 +1,6 @@
/* `ptrace' debugger support interface. Linux version,
not architecture-specific.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_PTRACE_H
# error "Never use <bits/ptrace-shared.h> directly; include <sys/ptrace.h> instead."
@@ -52,6 +52,15 @@ enum __ptrace_eventcodes
PTRACE_EVENT_STOP = 128
};
+/* Type of stop for PTRACE_GET_SYSCALL_INFO. */
+enum __ptrace_get_syscall_info_op
+{
+ PTRACE_SYSCALL_INFO_NONE = 0,
+ PTRACE_SYSCALL_INFO_ENTRY = 1,
+ PTRACE_SYSCALL_INFO_EXIT = 2,
+ PTRACE_SYSCALL_INFO_SECCOMP = 3
+};
+
/* Arguments for PTRACE_PEEKSIGINFO. */
struct __ptrace_peeksiginfo_args
{
@@ -73,6 +82,44 @@ struct __ptrace_seccomp_metadata
__uint64_t flags; /* Output: filter's flags. */
};
+/* Results of PTRACE_GET_SYSCALL_INFO. */
+struct __ptrace_syscall_info
+{
+ __uint8_t op; /* One of the enum
+ __ptrace_get_syscall_info_op
+ values. */
+ __uint32_t arch __attribute__ ((__aligned__ (4))); /* AUDIT_ARCH_*
+ value. */
+ __uint64_t instruction_pointer; /* Instruction pointer. */
+ __uint64_t stack_pointer; /* Stack pointer. */
+ union
+ {
+ /* System call number and arguments, for
+ PTRACE_SYSCALL_INFO_ENTRY. */
+ struct
+ {
+ __uint64_t nr;
+ __uint64_t args[6];
+ } entry;
+ /* System call return value and error flag, for
+ PTRACE_SYSCALL_INFO_EXIT. */
+ struct
+ {
+ __int64_t rval;
+ __uint8_t is_error;
+ } exit;
+ /* System call number, arguments and SECCOMP_RET_DATA portion of
+ SECCOMP_RET_TRACE return value, for
+ PTRACE_SYSCALL_INFO_SECCOMP. */
+ struct
+ {
+ __uint64_t nr;
+ __uint64_t args[6];
+ __uint32_t ret_data;
+ } seccomp;
+ };
+};
+
/* Perform process tracing functions. REQUEST is one of the values
above, and determines the action to be taken.
For all requests except PTRACE_TRACEME, PID specifies the process to be
diff --git a/sysdeps/unix/sysv/linux/bits/resource.h b/sysdeps/unix/sysv/linux/bits/resource.h
index fafbadf94f..8c8e187284 100644
--- a/sysdeps/unix/sysv/linux/bits/resource.h
+++ b/sysdeps/unix/sysv/linux/bits/resource.h
@@ -1,5 +1,5 @@
/* Bit values & structures for resource limits. Linux version.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_RESOURCE_H
# error "Never use <bits/resource.h> directly; include <sys/resource.h> instead."
diff --git a/sysdeps/unix/sysv/linux/bits/sched.h b/sysdeps/unix/sysv/linux/bits/sched.h
index 34f27a7d9b..b27755c39e 100644
--- a/sysdeps/unix/sysv/linux/bits/sched.h
+++ b/sysdeps/unix/sysv/linux/bits/sched.h
@@ -1,6 +1,6 @@
/* Definitions of constants and data structure for POSIX 1003.1b-1993
scheduling interface.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_SCHED_H
#define _BITS_SCHED_H 1
@@ -44,6 +44,8 @@
# define CLONE_FS 0x00000200 /* Set if fs info shared between processes. */
# define CLONE_FILES 0x00000400 /* Set if open files shared between processes. */
# define CLONE_SIGHAND 0x00000800 /* Set if signal handlers shared. */
+# define CLONE_PIDFD 0x00001000 /* Set if a pidfd should be placed
+ in parent. */
# define CLONE_PTRACE 0x00002000 /* Set if tracing continues on the child. */
# define CLONE_VFORK 0x00004000 /* Set if the parent wants the child to
wake it up on mm_release. */
@@ -86,6 +88,9 @@ extern int unshare (int __flags) __THROW;
/* Get index of currently used CPU. */
extern int sched_getcpu (void) __THROW;
+/* Get currently used CPU and NUMA node. */
+extern int getcpu (unsigned int *, unsigned int *) __THROW;
+
/* Switch process to namespace of type NSTYPE indicated by FD. */
extern int setns (int __fd, int __nstype) __THROW;
#endif
diff --git a/sysdeps/unix/sysv/linux/bits/sem-pad.h b/sysdeps/unix/sysv/linux/bits/sem-pad.h
new file mode 100644
index 0000000000..405904b4b1
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/bits/sem-pad.h
@@ -0,0 +1,33 @@
+/* Define where padding goes in struct semid_ds. Generic version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SEM_H
+# error "Never use <bits/sem-pad.h> directly; include <sys/sem.h> instead."
+#endif
+
+#include <bits/timesize.h>
+
+/* On most architectures, padding goes after time fields for 32-bit
+ systems and is omitted for 64-bit systems. Some architectures pad
+ before time fields instead, or omit padding despite being 32-bit,
+ or include it despite being 64-bit. This must match the layout
+ used for struct semid64_ds in <asm/sembuf.h>, as glibc does not do
+ layout conversions for this structure. */
+
+#define __SEM_PAD_AFTER_TIME (__TIMESIZE == 32)
+#define __SEM_PAD_BEFORE_TIME 0
diff --git a/sysdeps/unix/sysv/linux/bits/sem.h b/sysdeps/unix/sysv/linux/bits/sem.h
index 7ccd600517..400b5bfcf9 100644
--- a/sysdeps/unix/sysv/linux/bits/sem.h
+++ b/sysdeps/unix/sysv/linux/bits/sem.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -13,13 +13,14 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_SEM_H
# error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
#endif
#include <sys/types.h>
+#include <bits/sem-pad.h>
/* Flags for `semop'. */
#define SEM_UNDO 0x1000 /* undo the operation on exit */
@@ -34,17 +35,26 @@
#define SETALL 17 /* set all semval's */
+#if __SEM_PAD_BEFORE_TIME
+# define __SEM_PAD_TIME(NAME, RES) \
+ __syscall_ulong_t __glibc_reserved ## RES; __time_t NAME
+#elif __SEM_PAD_AFTER_TIME
+# define __SEM_PAD_TIME(NAME, RES) \
+ __time_t NAME; __syscall_ulong_t __glibc_reserved ## RES
+#else
+# define __SEM_PAD_TIME(NAME, RES) \
+ __time_t NAME
+#endif
+
/* Data structure describing a set of semaphores. */
struct semid_ds
{
struct ipc_perm sem_perm; /* operation permission struct */
- __time_t sem_otime; /* last semop() time */
- unsigned long int __glibc_reserved1;
- __time_t sem_ctime; /* last time changed by semctl() */
- unsigned long int __glibc_reserved2;
- unsigned long int sem_nsems; /* number of semaphores in set */
- unsigned long int __glibc_reserved3;
- unsigned long int __glibc_reserved4;
+ __SEM_PAD_TIME (sem_otime, 1); /* last semop() time */
+ __SEM_PAD_TIME (sem_ctime, 2); /* last time changed by semctl() */
+ __syscall_ulong_t sem_nsems; /* number of semaphores in set */
+ __syscall_ulong_t __glibc_reserved3;
+ __syscall_ulong_t __glibc_reserved4;
};
/* The user should define a union like the following to use it for arguments
diff --git a/sysdeps/unix/sysv/linux/bits/shm-pad.h b/sysdeps/unix/sysv/linux/bits/shm-pad.h
new file mode 100644
index 0000000000..c18ea464cf
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/bits/shm-pad.h
@@ -0,0 +1,37 @@
+/* Define where padding goes in struct shmid_ds. Generic version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SHM_H
+# error "Never use <bits/shm-pad.h> directly; include <sys/shm.h> instead."
+#endif
+
+#include <bits/timesize.h>
+
+/* On most architectures, padding goes after time fields for 32-bit
+ systems and is omitted for 64-bit systems. Some architectures pad
+ before time fields instead, or omit padding despite being 32-bit,
+ or include it despite being 64-bit. Furthermore, some
+ architectures place shm_segsz after the time fields rather than
+ before them, with or without padding there. This must match the
+ layout used for struct shmid64_ds in <asm/shmbuf.h>, as glibc does
+ not do layout conversions for this structure. */
+
+#define __SHM_PAD_AFTER_TIME (__TIMESIZE == 32)
+#define __SHM_PAD_BEFORE_TIME 0
+#define __SHM_SEGSZ_AFTER_TIME 0
+#define __SHM_PAD_BETWEEN_TIME_AND_SEGSZ 0
diff --git a/sysdeps/unix/sysv/linux/bits/shm.h b/sysdeps/unix/sysv/linux/bits/shm.h
index 896c1d96bf..b1dbd4322f 100644
--- a/sysdeps/unix/sysv/linux/bits/shm.h
+++ b/sysdeps/unix/sysv/linux/bits/shm.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -13,13 +13,16 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_SHM_H
# error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
#endif
#include <bits/types.h>
+#include <bits/wordsize.h>
+#include <bits/shmlba.h>
+#include <bits/shm-pad.h>
/* Permission flag for shmget. */
#define SHM_R 0400 /* or S_IRUGO from <linux/stat.h> */
@@ -37,30 +40,41 @@
__BEGIN_DECLS
-/* Segment low boundary address multiple. */
-#define SHMLBA (__getpagesize ())
-extern int __getpagesize (void) __THROW __attribute__ ((__const__));
-
-
/* Type to count number of attaches. */
-typedef unsigned long int shmatt_t;
+typedef __syscall_ulong_t shmatt_t;
+
+#if __SHM_PAD_BEFORE_TIME
+# define __SHM_PAD_TIME(NAME, RES) \
+ unsigned long int __glibc_reserved ## RES; __time_t NAME
+#elif __SHM_PAD_AFTER_TIME
+# define __SHM_PAD_TIME(NAME, RES) \
+ __time_t NAME; unsigned long int __glibc_reserved ## RES
+#else
+# define __SHM_PAD_TIME(NAME, RES) \
+ __time_t NAME
+#endif
/* Data structure describing a shared memory segment. */
struct shmid_ds
{
struct ipc_perm shm_perm; /* operation permission struct */
+#if !__SHM_SEGSZ_AFTER_TIME
+ size_t shm_segsz; /* size of segment in bytes */
+#endif
+ __SHM_PAD_TIME (shm_atime, 1); /* time of last shmat() */
+ __SHM_PAD_TIME (shm_dtime, 2); /* time of last shmdt() */
+ __SHM_PAD_TIME (shm_ctime, 3); /* time of last change by shmctl() */
+#if __SHM_PAD_BETWEEN_TIME_AND_SEGSZ
+ unsigned long int __glibc_reserved4;
+#endif
+#if __SHM_SEGSZ_AFTER_TIME
size_t shm_segsz; /* size of segment in bytes */
- __time_t shm_atime; /* time of last shmat() */
- unsigned long int __glibc_reserved1;
- __time_t shm_dtime; /* time of last shmdt() */
- unsigned long int __glibc_reserved2;
- __time_t shm_ctime; /* time of last change by shmctl() */
- unsigned long int __glibc_reserved3;
+#endif
__pid_t shm_cpid; /* pid of creator */
__pid_t shm_lpid; /* pid of last shmop */
shmatt_t shm_nattch; /* number of current attaches */
- unsigned long int __glibc_reserved4;
- unsigned long int __glibc_reserved5;
+ __syscall_ulong_t __glibc_reserved5;
+ __syscall_ulong_t __glibc_reserved6;
};
#ifdef __USE_MISC
@@ -78,25 +92,25 @@ struct shmid_ds
struct shminfo
{
- unsigned long int shmmax;
- unsigned long int shmmin;
- unsigned long int shmmni;
- unsigned long int shmseg;
- unsigned long int shmall;
- unsigned long int __glibc_reserved1;
- unsigned long int __glibc_reserved2;
- unsigned long int __glibc_reserved3;
- unsigned long int __glibc_reserved4;
+ __syscall_ulong_t shmmax;
+ __syscall_ulong_t shmmin;
+ __syscall_ulong_t shmmni;
+ __syscall_ulong_t shmseg;
+ __syscall_ulong_t shmall;
+ __syscall_ulong_t __glibc_reserved1;
+ __syscall_ulong_t __glibc_reserved2;
+ __syscall_ulong_t __glibc_reserved3;
+ __syscall_ulong_t __glibc_reserved4;
};
struct shm_info
{
int used_ids;
- unsigned long int shm_tot; /* total allocated shm */
- unsigned long int shm_rss; /* total resident shm */
- unsigned long int shm_swp; /* total swapped shm */
- unsigned long int swap_attempts;
- unsigned long int swap_successes;
+ __syscall_ulong_t shm_tot; /* total allocated shm */
+ __syscall_ulong_t shm_rss; /* total resident shm */
+ __syscall_ulong_t shm_swp; /* total swapped shm */
+ __syscall_ulong_t swap_attempts;
+ __syscall_ulong_t swap_successes;
};
#endif /* __USE_MISC */
diff --git a/sysdeps/unix/sysv/linux/bits/shmlba.h b/sysdeps/unix/sysv/linux/bits/shmlba.h
new file mode 100644
index 0000000000..057b68831a
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/bits/shmlba.h
@@ -0,0 +1,29 @@
+/* Define SHMLBA. Generic version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SHM_H
+# error "Never use <bits/shmlba.h> directly; include <sys/shm.h> instead."
+#endif
+
+__BEGIN_DECLS
+
+/* Segment low boundary address multiple. */
+#define SHMLBA (__getpagesize ())
+extern int __getpagesize (void) __THROW __attribute__ ((__const__));
+
+__END_DECLS
diff --git a/sysdeps/unix/sysv/linux/bits/sigaction.h b/sysdeps/unix/sysv/linux/bits/sigaction.h
index a4225c8787..09f25a57b4 100644
--- a/sysdeps/unix/sysv/linux/bits/sigaction.h
+++ b/sysdeps/unix/sysv/linux/bits/sigaction.h
@@ -1,5 +1,5 @@
/* The proper definitions for Linux's sigaction.
- Copyright (C) 1993-2018 Free Software Foundation, Inc.
+ Copyright (C) 1993-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_SIGACTION_H
#define _BITS_SIGACTION_H 1
diff --git a/sysdeps/unix/sysv/linux/bits/sigcontext.h b/sysdeps/unix/sysv/linux/bits/sigcontext.h
index 4828d59f90..fdb801680d 100644
--- a/sysdeps/unix/sysv/linux/bits/sigcontext.h
+++ b/sysdeps/unix/sysv/linux/bits/sigcontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_SIGCONTEXT_H
#define _BITS_SIGCONTEXT_H 1
diff --git a/sysdeps/unix/sysv/linux/bits/sigevent-consts.h b/sysdeps/unix/sysv/linux/bits/sigevent-consts.h
index 897b7d26ff..1097f5de79 100644
--- a/sysdeps/unix/sysv/linux/bits/sigevent-consts.h
+++ b/sysdeps/unix/sysv/linux/bits/sigevent-consts.h
@@ -1,5 +1,5 @@
/* sigevent constants. Linux version.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_SIGEVENT_CONSTS_H
#define _BITS_SIGEVENT_CONSTS_H 1
diff --git a/sysdeps/unix/sysv/linux/bits/siginfo-consts.h b/sysdeps/unix/sysv/linux/bits/siginfo-consts.h
index 193bd9c471..e5303bc37d 100644
--- a/sysdeps/unix/sysv/linux/bits/siginfo-consts.h
+++ b/sysdeps/unix/sysv/linux/bits/siginfo-consts.h
@@ -1,5 +1,5 @@
/* siginfo constants. Linux version.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_SIGINFO_CONSTS_H
#define _BITS_SIGINFO_CONSTS_H 1
@@ -35,7 +35,9 @@
enum
{
SI_ASYNCNL = -60, /* Sent by asynch name lookup completion. */
- SI_TKILL = -6, /* Sent by tkill. */
+ SI_DETHREAD = -7, /* Sent by execve killing subsidiary
+ threads. */
+ SI_TKILL, /* Sent by tkill. */
SI_SIGIO, /* Sent by queued SIGIO. */
#if __SI_ASYNCIO_AFTER_SIGIO
SI_ASYNCIO, /* Sent by AIO completion. */
@@ -51,6 +53,7 @@ enum
SI_KERNEL = 0x80 /* Send by kernel. */
#define SI_ASYNCNL SI_ASYNCNL
+#define SI_DETHREAD SI_DETHREAD
#define SI_TKILL SI_TKILL
#define SI_SIGIO SI_SIGIO
#define SI_ASYNCIO SI_ASYNCIO
@@ -81,8 +84,10 @@ enum
# define ILL_PRVREG ILL_PRVREG
ILL_COPROC, /* Coprocessor error. */
# define ILL_COPROC ILL_COPROC
- ILL_BADSTK /* Internal stack error. */
+ ILL_BADSTK, /* Internal stack error. */
# define ILL_BADSTK ILL_BADSTK
+ ILL_BADIADDR /* Unimplemented instruction address. */
+# define ILL_BADIADDR ILL_BADIADDR
};
/* `si_code' values for SIGFPE signal. */
@@ -102,8 +107,12 @@ enum
# define FPE_FLTRES FPE_FLTRES
FPE_FLTINV, /* Floating point invalid operation. */
# define FPE_FLTINV FPE_FLTINV
- FPE_FLTSUB /* Subscript out of range. */
+ FPE_FLTSUB, /* Subscript out of range. */
# define FPE_FLTSUB FPE_FLTSUB
+ FPE_FLTUNK = 14, /* Undiagnosed floating-point exception. */
+# define FPE_FLTUNK FPE_FLTUNK
+ FPE_CONDTRAP /* Trap on condition. */
+# define FPE_CONDTRAP FPE_CONDTRAP
};
/* `si_code' values for SIGSEGV signal. */
@@ -115,8 +124,14 @@ enum
# define SEGV_ACCERR SEGV_ACCERR
SEGV_BNDERR, /* Bounds checking failure. */
# define SEGV_BNDERR SEGV_BNDERR
- SEGV_PKUERR /* Protection key checking failure. */
+ SEGV_PKUERR, /* Protection key checking failure. */
# define SEGV_PKUERR SEGV_PKUERR
+ SEGV_ACCADI, /* ADI not enabled for mapped object. */
+# define SEGV_ACCADI SEGV_ACCADI
+ SEGV_ADIDERR, /* Disrupting MCD error. */
+# define SEGV_ADIDERR SEGV_ADIDERR
+ SEGV_ADIPERR /* Precise MCD exception. */
+# define SEGV_ADIPERR SEGV_ADIPERR
};
/* `si_code' values for SIGBUS signal. */
@@ -141,8 +156,14 @@ enum
{
TRAP_BRKPT = 1, /* Process breakpoint. */
# define TRAP_BRKPT TRAP_BRKPT
- TRAP_TRACE /* Process trace trap. */
+ TRAP_TRACE, /* Process trace trap. */
# define TRAP_TRACE TRAP_TRACE
+ TRAP_BRANCH, /* Process taken branch trap. */
+# define TRAP_BRANCH TRAP_BRANCH
+ TRAP_HWBKPT, /* Hardware breakpoint/watchpoint. */
+# define TRAP_HWBKPT TRAP_HWBKPT
+ TRAP_UNK /* Undiagnosed trap. */
+# define TRAP_UNK TRAP_UNK
};
# endif
diff --git a/sysdeps/unix/sysv/linux/bits/signal_ext.h b/sysdeps/unix/sysv/linux/bits/signal_ext.h
new file mode 100644
index 0000000000..397f284e2a
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/bits/signal_ext.h
@@ -0,0 +1,31 @@
+/* System-specific extensions of <signal.h>, Linux version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SIGNAL_H
+# error "Never include <bits/signal_ext.h> directly; use <signal.h> instead."
+#endif
+
+#ifdef __USE_GNU
+
+/* Send SIGNAL to the thread TID in the thread group (process)
+ identified by TGID. This function behaves like kill, but also
+ fails with ESRCH if the specified TID does not belong to the
+ specified thread group. */
+extern int tgkill (__pid_t __tgid, __pid_t __tid, int __signal);
+
+#endif /* __USE_GNU */
diff --git a/sysdeps/unix/sysv/linux/bits/signalfd.h b/sysdeps/unix/sysv/linux/bits/signalfd.h
index 9e5271e868..228ef7b671 100644
--- a/sysdeps/unix/sysv/linux/bits/signalfd.h
+++ b/sysdeps/unix/sysv/linux/bits/signalfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_SIGNALFD_H
# error "Never use <bits/signalfd.h> directly; include <sys/signalfd.h> instead."
diff --git a/sysdeps/unix/sysv/linux/bits/signum.h b/sysdeps/unix/sysv/linux/bits/signum.h
index 0f70ce5059..fea9a52511 100644
--- a/sysdeps/unix/sysv/linux/bits/signum.h
+++ b/sysdeps/unix/sysv/linux/bits/signum.h
@@ -1,5 +1,5 @@
/* Signal number definitions. Linux version.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_SIGNUM_H
#define _BITS_SIGNUM_H 1
diff --git a/sysdeps/unix/sysv/linux/bits/sigstack.h b/sysdeps/unix/sysv/linux/bits/sigstack.h
index c9e7ddfcaf..7795be5eef 100644
--- a/sysdeps/unix/sysv/linux/bits/sigstack.h
+++ b/sysdeps/unix/sysv/linux/bits/sigstack.h
@@ -1,5 +1,5 @@
/* sigstack, sigaltstack definitions.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_SIGSTACK_H
#define _BITS_SIGSTACK_H 1
diff --git a/sysdeps/unix/sysv/linux/bits/socket-constants.h b/sysdeps/unix/sysv/linux/bits/socket-constants.h
new file mode 100644
index 0000000000..b296dc4890
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/bits/socket-constants.h
@@ -0,0 +1,38 @@
+/* Socket constants which vary among Linux architectures.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SOCKET_H
+# error "Never include <bits/socket-constants.h> directly; use <sys/socket.h> instead."
+#endif
+
+#define SOL_SOCKET 1
+#define SO_ACCEPTCONN 30
+#define SO_BROADCAST 6
+#define SO_DONTROUTE 5
+#define SO_ERROR 4
+#define SO_KEEPALIVE 9
+#define SO_LINGER 13
+#define SO_OOBINLINE 10
+#define SO_RCVBUF 8
+#define SO_RCVLOWAT 18
+#define SO_RCVTIMEO 20
+#define SO_REUSEADDR 2
+#define SO_SNDBUF 7
+#define SO_SNDLOWAT 19
+#define SO_SNDTIMEO 21
+#define SO_TYPE 3
diff --git a/sysdeps/unix/sysv/linux/bits/socket.h b/sysdeps/unix/sysv/linux/bits/socket.h
index fa409f0fab..7537a7e86b 100644
--- a/sysdeps/unix/sysv/linux/bits/socket.h
+++ b/sysdeps/unix/sysv/linux/bits/socket.h
@@ -1,5 +1,5 @@
/* System-specific socket constants and types. Linux version.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef __BITS_SOCKET_H
#define __BITS_SOCKET_H
@@ -85,7 +85,8 @@ typedef __socklen_t socklen_t;
#define PF_KCM 41 /* Kernel Connection Multiplexor. */
#define PF_QIPCRTR 42 /* Qualcomm IPC Router. */
#define PF_SMC 43 /* SMC sockets. */
-#define PF_MAX 44 /* For now.. */
+#define PF_XDP 44 /* XDP sockets. */
+#define PF_MAX 45 /* For now.. */
/* Address families. */
#define AF_UNSPEC PF_UNSPEC
@@ -135,6 +136,7 @@ typedef __socklen_t socklen_t;
#define AF_KCM PF_KCM
#define AF_QIPCRTR PF_QIPCRTR
#define AF_SMC PF_SMC
+#define AF_XDP PF_XDP
#define AF_MAX PF_MAX
/* Socket level values. Others are defined in the appropriate headers.
@@ -164,9 +166,10 @@ typedef __socklen_t socklen_t;
#define SOL_NFC 280
#define SOL_KCM 281
#define SOL_TLS 282
+#define SOL_XDP 283
/* Maximum queue length specifiable by listen. */
-#define SOMAXCONN 128
+#define SOMAXCONN 4096
/* Get the definition of the macro to define the common sockaddr members. */
#include <bits/sockaddr.h>
@@ -346,98 +349,12 @@ struct ucred
};
#endif
-/* Ugly workaround for unclean kernel headers. */
-#ifndef __USE_MISC
-# ifndef FIOGETOWN
-# define __SYS_SOCKET_H_undef_FIOGETOWN
-# endif
-# ifndef FIOSETOWN
-# define __SYS_SOCKET_H_undef_FIOSETOWN
-# endif
-# ifndef SIOCATMARK
-# define __SYS_SOCKET_H_undef_SIOCATMARK
-# endif
-# ifndef SIOCGPGRP
-# define __SYS_SOCKET_H_undef_SIOCGPGRP
-# endif
-# ifndef SIOCGSTAMP
-# define __SYS_SOCKET_H_undef_SIOCGSTAMP
-# endif
-# ifndef SIOCGSTAMPNS
-# define __SYS_SOCKET_H_undef_SIOCGSTAMPNS
-# endif
-# ifndef SIOCSPGRP
-# define __SYS_SOCKET_H_undef_SIOCSPGRP
-# endif
-#endif
-#ifndef IOCSIZE_MASK
-# define __SYS_SOCKET_H_undef_IOCSIZE_MASK
-#endif
-#ifndef IOCSIZE_SHIFT
-# define __SYS_SOCKET_H_undef_IOCSIZE_SHIFT
-#endif
-#ifndef IOC_IN
-# define __SYS_SOCKET_H_undef_IOC_IN
-#endif
-#ifndef IOC_INOUT
-# define __SYS_SOCKET_H_undef_IOC_INOUT
-#endif
-#ifndef IOC_OUT
-# define __SYS_SOCKET_H_undef_IOC_OUT
-#endif
-
-/* Get socket manipulation related informations from kernel headers. */
-#include <asm/socket.h>
-
-#ifndef __USE_MISC
-# ifdef __SYS_SOCKET_H_undef_FIOGETOWN
-# undef __SYS_SOCKET_H_undef_FIOGETOWN
-# undef FIOGETOWN
-# endif
-# ifdef __SYS_SOCKET_H_undef_FIOSETOWN
-# undef __SYS_SOCKET_H_undef_FIOSETOWN
-# undef FIOSETOWN
-# endif
-# ifdef __SYS_SOCKET_H_undef_SIOCATMARK
-# undef __SYS_SOCKET_H_undef_SIOCATMARK
-# undef SIOCATMARK
-# endif
-# ifdef __SYS_SOCKET_H_undef_SIOCGPGRP
-# undef __SYS_SOCKET_H_undef_SIOCGPGRP
-# undef SIOCGPGRP
-# endif
-# ifdef __SYS_SOCKET_H_undef_SIOCGSTAMP
-# undef __SYS_SOCKET_H_undef_SIOCGSTAMP
-# undef SIOCGSTAMP
-# endif
-# ifdef __SYS_SOCKET_H_undef_SIOCGSTAMPNS
-# undef __SYS_SOCKET_H_undef_SIOCGSTAMPNS
-# undef SIOCGSTAMPNS
-# endif
-# ifdef __SYS_SOCKET_H_undef_SIOCSPGRP
-# undef __SYS_SOCKET_H_undef_SIOCSPGRP
-# undef SIOCSPGRP
-# endif
-#endif
-#ifdef __SYS_SOCKET_H_undef_IOCSIZE_MASK
-# undef __SYS_SOCKET_H_undef_IOCSIZE_MASK
-# undef IOCSIZE_MASK
-#endif
-#ifdef __SYS_SOCKET_H_undef_IOCSIZE_SHIFT
-# undef __SYS_SOCKET_H_undef_IOCSIZE_SHIFT
-# undef IOCSIZE_SHIFT
-#endif
-#ifdef __SYS_SOCKET_H_undef_IOC_IN
-# undef __SYS_SOCKET_H_undef_IOC_IN
-# undef IOC_IN
-#endif
-#ifdef __SYS_SOCKET_H_undef_IOC_INOUT
-# undef __SYS_SOCKET_H_undef_IOC_INOUT
-# undef IOC_INOUT
-#endif
-#ifdef __SYS_SOCKET_H_undef_IOC_OUT
-# undef __SYS_SOCKET_H_undef_IOC_OUT
-# undef IOC_OUT
+#ifdef __USE_MISC
+# include <bits/types/time_t.h>
+# include <asm/socket.h>
+#else
+# define SO_DEBUG 1
+# include <bits/socket-constants.h>
#endif
/* Structure used to manipulate the SO_LINGER option. */
diff --git a/sysdeps/unix/sysv/linux/bits/socket_type.h b/sysdeps/unix/sysv/linux/bits/socket_type.h
index 035394ab77..61d3c73525 100644
--- a/sysdeps/unix/sysv/linux/bits/socket_type.h
+++ b/sysdeps/unix/sysv/linux/bits/socket_type.h
@@ -1,5 +1,5 @@
/* Define enum __socket_type for generic Linux.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_SOCKET_H
# error "Never include <bits/socket_type.h> directly; use <sys/socket.h> instead."
diff --git a/sysdeps/unix/sysv/linux/bits/ss_flags.h b/sysdeps/unix/sysv/linux/bits/ss_flags.h
index f7fb9d02a3..588a73d463 100644
--- a/sysdeps/unix/sysv/linux/bits/ss_flags.h
+++ b/sysdeps/unix/sysv/linux/bits/ss_flags.h
@@ -1,5 +1,5 @@
/* ss_flags values for stack_t. Linux version.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_SS_FLAGS_H
#define _BITS_SS_FLAGS_H 1
diff --git a/sysdeps/unix/sysv/linux/bits/stat.h b/sysdeps/unix/sysv/linux/bits/stat.h
index 48ef82d862..1cb30f8d3d 100644
--- a/sysdeps/unix/sysv/linux/bits/stat.h
+++ b/sysdeps/unix/sysv/linux/bits/stat.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if !defined _SYS_STAT_H && !defined _FCNTL_H
# error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
diff --git a/sysdeps/unix/sysv/linux/bits/statfs.h b/sysdeps/unix/sysv/linux/bits/statfs.h
index f073867e22..f01b328460 100644
--- a/sysdeps/unix/sysv/linux/bits/statfs.h
+++ b/sysdeps/unix/sysv/linux/bits/statfs.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_STATFS_H
# error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead."
diff --git a/sysdeps/unix/sysv/linux/bits/statvfs.h b/sysdeps/unix/sysv/linux/bits/statvfs.h
index 0d95901a22..e3533e9c91 100644
--- a/sysdeps/unix/sysv/linux/bits/statvfs.h
+++ b/sysdeps/unix/sysv/linux/bits/statvfs.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_STATVFS_H
# error "Never include <bits/statvfs.h> directly; use <sys/statvfs.h> instead."
diff --git a/sysdeps/unix/sysv/linux/bits/statx.h b/sysdeps/unix/sysv/linux/bits/statx.h
new file mode 100644
index 0000000000..2015c8262e
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/bits/statx.h
@@ -0,0 +1,39 @@
+/* statx-related definitions and declarations. Linux version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+/* This interface is based on <linux/stat.h> in Linux. */
+
+#ifndef _SYS_STAT_H
+# error Never include <bits/statx.h> directly, include <sys/stat.h> instead.
+#endif
+
+/* Use the Linux kernel header if available. */
+
+/* Use "" to work around incorrect macro expansion of the
+ __has_include argument (GCC PR 80005). */
+#ifdef __has_include
+# if __has_include ("linux/stat.h")
+# include "linux/stat.h"
+# ifdef STATX_TYPE
+# define __statx_timestamp_defined 1
+# define __statx_defined 1
+# endif
+# endif
+#endif
+
+#include <bits/statx-generic.h>
diff --git a/sysdeps/unix/sysv/linux/bits/sys_errlist.h b/sysdeps/unix/sysv/linux/bits/sys_errlist.h
index 4f725e95ff..1e8d12b734 100644
--- a/sysdeps/unix/sysv/linux/bits/sys_errlist.h
+++ b/sysdeps/unix/sysv/linux/bits/sys_errlist.h
@@ -1,5 +1,5 @@
/* Declare sys_errlist and sys_nerr, or don't. Compatibility (do) version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _STDIO_H
# error "Never include <bits/sys_errlist.h> directly; use <stdio.h> instead."
diff --git a/sysdeps/unix/sysv/linux/bits/termios-baud.h b/sysdeps/unix/sysv/linux/bits/termios-baud.h
new file mode 100644
index 0000000000..da9ec80f61
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/bits/termios-baud.h
@@ -0,0 +1,48 @@
+/* termios baud rate selection definitions. Linux/generic version.
+ 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. If not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _TERMIOS_H
+# error "Never include <bits/termios-baud.h> directly; use <termios.h> instead."
+#endif
+
+#ifdef __USE_MISC
+# define CBAUD 000000010017 /* Baud speed mask (not in POSIX). */
+# define CBAUDEX 000000010000 /* Extra baud speed mask, included in CBAUD.
+ (not in POSIX). */
+# define CIBAUD 002003600000 /* Input baud rate (not used). */
+# define CMSPAR 010000000000 /* Mark or space (stick) parity. */
+# define CRTSCTS 020000000000 /* Flow control. */
+#endif
+
+/* Extra output baud rates (not in POSIX). */
+#define B57600 0010001
+#define B115200 0010002
+#define B230400 0010003
+#define B460800 0010004
+#define B500000 0010005
+#define B576000 0010006
+#define B921600 0010007
+#define B1000000 0010010
+#define B1152000 0010011
+#define B1500000 0010012
+#define B2000000 0010013
+#define B2500000 0010014
+#define B3000000 0010015
+#define B3500000 0010016
+#define B4000000 0010017
+#define __MAX_BAUD B4000000
diff --git a/sysdeps/unix/sysv/linux/bits/termios-c_cc.h b/sysdeps/unix/sysv/linux/bits/termios-c_cc.h
new file mode 100644
index 0000000000..797eee9d61
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/bits/termios-c_cc.h
@@ -0,0 +1,40 @@
+/* termios c_cc symbolic constant definitions. Linux/generic version.
+ 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. If not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _TERMIOS_H
+# error "Never include <bits/termios_c_cc.h> directly; use <termios.h> instead."
+#endif
+
+/* c_cc characters */
+#define VINTR 0
+#define VQUIT 1
+#define VERASE 2
+#define VKILL 3
+#define VEOF 4
+#define VTIME 5
+#define VMIN 6
+#define VSWTC 7
+#define VSTART 8
+#define VSTOP 9
+#define VSUSP 10
+#define VEOL 11
+#define VREPRINT 12
+#define VDISCARD 13
+#define VWERASE 14
+#define VLNEXT 15
+#define VEOL2 16
diff --git a/sysdeps/unix/sysv/linux/bits/termios-c_cflag.h b/sysdeps/unix/sysv/linux/bits/termios-c_cflag.h
new file mode 100644
index 0000000000..3a5e9e3020
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/bits/termios-c_cflag.h
@@ -0,0 +1,34 @@
+/* termios control mode definitions. Linux/generic version.
+ 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. If not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _TERMIOS_H
+# error "Never include <bits/termios-c_cflag.h> directly; use <termios.h> instead."
+#endif
+
+/* c_cflag bits. */
+#define CSIZE 0000060
+#define CS5 0000000
+#define CS6 0000020
+#define CS7 0000040
+#define CS8 0000060
+#define CSTOPB 0000100
+#define CREAD 0000200
+#define PARENB 0000400
+#define PARODD 0001000
+#define HUPCL 0002000
+#define CLOCAL 0004000
diff --git a/sysdeps/unix/sysv/linux/bits/termios-c_iflag.h b/sysdeps/unix/sysv/linux/bits/termios-c_iflag.h
new file mode 100644
index 0000000000..3c7d934aec
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/bits/termios-c_iflag.h
@@ -0,0 +1,40 @@
+/* termios input mode definitions. Linux/generic version.
+ 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. If not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _TERMIOS_H
+# error "Never include <bits/termios-ciflags.h> directly; use <termios.h> instead."
+#endif
+
+/* c_iflag bits */
+#define IGNBRK 0000001 /* Ignore break condition. */
+#define BRKINT 0000002 /* Signal interrupt on break. */
+#define IGNPAR 0000004 /* Ignore characters with parity errors. */
+#define PARMRK 0000010 /* Mark parity and framing errors. */
+#define INPCK 0000020 /* Enable input parity check. */
+#define ISTRIP 0000040 /* Strip 8th bit off characters. */
+#define INLCR 0000100 /* Map NL to CR on input. */
+#define IGNCR 0000200 /* Ignore CR. */
+#define ICRNL 0000400 /* Map CR to NL on input. */
+#define IUCLC 0001000 /* Map uppercase characters to lowercase on input
+ (not in POSIX). */
+#define IXON 0002000 /* Enable start/stop output control. */
+#define IXANY 0004000 /* Enable any character to restart output. */
+#define IXOFF 0010000 /* Enable start/stop input control. */
+#define IMAXBEL 0020000 /* Ring bell when input queue is full
+ (not in POSIX). */
+#define IUTF8 0040000 /* Input is UTF8 (not in POSIX). */
diff --git a/sysdeps/unix/sysv/linux/bits/termios-c_lflag.h b/sysdeps/unix/sysv/linux/bits/termios-c_lflag.h
new file mode 100644
index 0000000000..847db4f51f
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/bits/termios-c_lflag.h
@@ -0,0 +1,58 @@
+/* termios local mode definitions. Linux/generic version.
+ 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. If not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _TERMIOS_H
+# error "Never include <bits/termios-c_lflag.h> directly; use <termios.h> instead."
+#endif
+
+/* c_lflag bits */
+#define ISIG 0000001 /* Enable signals. */
+#define ICANON 0000002 /* Canonical input (erase and kill processing). */
+#if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K)
+# define XCASE 0000004
+#endif
+#define ECHO 0000010 /* Enable echo. */
+#define ECHOE 0000020 /* Echo erase character as error-correcting
+ backspace. */
+#define ECHOK 0000040 /* Echo KILL. */
+#define ECHONL 0000100 /* Echo NL. */
+#define NOFLSH 0000200 /* Disable flush after interrupt or quit. */
+#define TOSTOP 0000400 /* Send SIGTTOU for background output. */
+#ifdef __USE_MISC
+# define ECHOCTL 0001000 /* If ECHO is also set, terminal special characters
+ other than TAB, NL, START, and STOP are echoed as
+ ^X, where X is the character with ASCII code 0x40
+ greater than the special character
+ (not in POSIX). */
+# define ECHOPRT 0002000 /* If ICANON and ECHO are also set, characters are
+ printed as they are being erased
+ (not in POSIX). */
+# define ECHOKE 0004000 /* If ICANON is also set, KILL is echoed by erasing
+ each character on the line, as specified by ECHOE
+ and ECHOPRT (not in POSIX). */
+# define FLUSHO 0010000 /* Output is being flushed. This flag is toggled by
+ typing the DISCARD character (not in POSIX). */
+# define PENDIN 0040000 /* All characters in the input queue are reprinted
+ when the next character is read
+ (not in POSIX). */
+#endif
+#define IEXTEN 0100000 /* Enable implementation-defined input
+ processing. */
+#ifdef __USE_MISC
+# define EXTPROC 0200000
+#endif
diff --git a/sysdeps/unix/sysv/linux/bits/termios-c_oflag.h b/sysdeps/unix/sysv/linux/bits/termios-c_oflag.h
new file mode 100644
index 0000000000..79d7ef158b
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/bits/termios-c_oflag.h
@@ -0,0 +1,61 @@
+/* termios output mode definitions. Linux/generic version.
+ 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. If not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _TERMIOS_H
+# error "Never include <bits/termios-c_oflag.h> directly; use <termios.h> instead."
+#endif
+
+/* c_oflag bits */
+#define OPOST 0000001 /* Post-process output. */
+#define OLCUC 0000002 /* Map lowercase characters to uppercase on output.
+ (not in POSIX). */
+#define ONLCR 0000004 /* Map NL to CR-NL on output. */
+#define OCRNL 0000010 /* Map CR to NL on output. */
+#define ONOCR 0000020 /* No CR output at column 0. */
+#define ONLRET 0000040 /* NL performs CR function. */
+#define OFILL 0000100 /* Use fill characters for delay. */
+#define OFDEL 0000200 /* Fill is DEL. */
+#if defined __USE_MISC || defined __USE_XOPEN
+# define NLDLY 0000400 /* Select newline delays: */
+# define NL0 0000000 /* Newline type 0. */
+# define NL1 0000400 /* Newline type 1. */
+# define CRDLY 0003000 /* Select carriage-return delays: */
+# define CR0 0000000 /* Carriage-return delay type 0. */
+# define CR1 0001000 /* Carriage-return delay type 1. */
+# define CR2 0002000 /* Carriage-return delay type 2. */
+# define CR3 0003000 /* Carriage-return delay type 3. */
+# define TABDLY 0014000 /* Select horizontal-tab delays: */
+# define TAB0 0000000 /* Horizontal-tab delay type 0. */
+# define TAB1 0004000 /* Horizontal-tab delay type 1. */
+# define TAB2 0010000 /* Horizontal-tab delay type 2. */
+# define TAB3 0014000 /* Expand tabs to spaces. */
+# define BSDLY 0020000 /* Select backspace delays: */
+# define BS0 0000000 /* Backspace-delay type 0. */
+# define BS1 0020000 /* Backspace-delay type 1. */
+# define FFDLY 0100000 /* Select form-feed delays: */
+# define FF0 0000000 /* Form-feed delay type 0. */
+# define FF1 0100000 /* Form-feed delay type 1. */
+#endif
+
+#define VTDLY 0040000 /* Select vertical-tab delays: */
+#define VT0 0000000 /* Vertical-tab delay type 0. */
+#define VT1 0040000 /* Vertical-tab delay type 1. */
+
+#ifdef __USE_MISC
+# define XTABS 0014000
+#endif
diff --git a/sysdeps/unix/sysv/linux/bits/termios-misc.h b/sysdeps/unix/sysv/linux/bits/termios-misc.h
new file mode 100644
index 0000000000..d29f6c2ef2
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/bits/termios-misc.h
@@ -0,0 +1,21 @@
+/* termios baud platform specific definitions. Linux/generic version.
+ 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. If not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _TERMIOS_H
+# error "Never include <bits/termios-misc.h> directly; use <termios.h> instead."
+#endif
diff --git a/sysdeps/unix/sysv/linux/bits/termios-struct.h b/sysdeps/unix/sysv/linux/bits/termios-struct.h
new file mode 100644
index 0000000000..0ab21e2d84
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/bits/termios-struct.h
@@ -0,0 +1,36 @@
+/* struct termios definition. Linux/generic version.
+ 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. If not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _TERMIOS_H
+# error "Never include <bits/termios-struct.h> directly; use <termios.h> instead."
+#endif
+
+#define NCCS 32
+struct termios
+ {
+ tcflag_t c_iflag; /* input mode flags */
+ tcflag_t c_oflag; /* output mode flags */
+ tcflag_t c_cflag; /* control mode flags */
+ tcflag_t c_lflag; /* local mode flags */
+ cc_t c_line; /* line discipline */
+ cc_t c_cc[NCCS]; /* control characters */
+ speed_t c_ispeed; /* input speed */
+ speed_t c_ospeed; /* output speed */
+#define _HAVE_STRUCT_TERMIOS_C_ISPEED 1
+#define _HAVE_STRUCT_TERMIOS_C_OSPEED 1
+ };
diff --git a/sysdeps/unix/sysv/linux/bits/termios-tcflow.h b/sysdeps/unix/sysv/linux/bits/termios-tcflow.h
new file mode 100644
index 0000000000..a91f5071e6
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/bits/termios-tcflow.h
@@ -0,0 +1,26 @@
+/* termios tcflag symbolic contants definitions. Linux/generic version.
+ 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. If not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _TERMIOS_H
+# error "Never include <bits/termios-tcflow.h> directly; use <termios.h> instead."
+#endif
+
+/* tcsetattr uses these. */
+#define TCSANOW 0
+#define TCSADRAIN 1
+#define TCSAFLUSH 2
diff --git a/sysdeps/unix/sysv/linux/bits/termios.h b/sysdeps/unix/sysv/linux/bits/termios.h
index 35efa97576..b70f5666ca 100644
--- a/sysdeps/unix/sysv/linux/bits/termios.h
+++ b/sysdeps/unix/sysv/linux/bits/termios.h
@@ -1,5 +1,5 @@
/* termios type and macro definitions. Linux version.
- Copyright (C) 1993-2018 Free Software Foundation, Inc.
+ Copyright (C) 1993-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _TERMIOS_H
# error "Never include <bits/termios.h> directly; use <termios.h> instead."
@@ -24,100 +24,12 @@ typedef unsigned char cc_t;
typedef unsigned int speed_t;
typedef unsigned int tcflag_t;
-#define NCCS 32
-struct termios
- {
- tcflag_t c_iflag; /* input mode flags */
- tcflag_t c_oflag; /* output mode flags */
- tcflag_t c_cflag; /* control mode flags */
- tcflag_t c_lflag; /* local mode flags */
- cc_t c_line; /* line discipline */
- cc_t c_cc[NCCS]; /* control characters */
- speed_t c_ispeed; /* input speed */
- speed_t c_ospeed; /* output speed */
-#define _HAVE_STRUCT_TERMIOS_C_ISPEED 1
-#define _HAVE_STRUCT_TERMIOS_C_OSPEED 1
- };
-
-/* c_cc characters */
-#define VINTR 0
-#define VQUIT 1
-#define VERASE 2
-#define VKILL 3
-#define VEOF 4
-#define VTIME 5
-#define VMIN 6
-#define VSWTC 7
-#define VSTART 8
-#define VSTOP 9
-#define VSUSP 10
-#define VEOL 11
-#define VREPRINT 12
-#define VDISCARD 13
-#define VWERASE 14
-#define VLNEXT 15
-#define VEOL2 16
-
-/* c_iflag bits */
-#define IGNBRK 0000001
-#define BRKINT 0000002
-#define IGNPAR 0000004
-#define PARMRK 0000010
-#define INPCK 0000020
-#define ISTRIP 0000040
-#define INLCR 0000100
-#define IGNCR 0000200
-#define ICRNL 0000400
-#define IUCLC 0001000
-#define IXON 0002000
-#define IXANY 0004000
-#define IXOFF 0010000
-#define IMAXBEL 0020000
-#define IUTF8 0040000
-
-/* c_oflag bits */
-#define OPOST 0000001
-#define OLCUC 0000002
-#define ONLCR 0000004
-#define OCRNL 0000010
-#define ONOCR 0000020
-#define ONLRET 0000040
-#define OFILL 0000100
-#define OFDEL 0000200
-#if defined __USE_MISC || defined __USE_XOPEN
-# define NLDLY 0000400
-# define NL0 0000000
-# define NL1 0000400
-# define CRDLY 0003000
-# define CR0 0000000
-# define CR1 0001000
-# define CR2 0002000
-# define CR3 0003000
-# define TABDLY 0014000
-# define TAB0 0000000
-# define TAB1 0004000
-# define TAB2 0010000
-# define TAB3 0014000
-# define BSDLY 0020000
-# define BS0 0000000
-# define BS1 0020000
-# define FFDLY 0100000
-# define FF0 0000000
-# define FF1 0100000
-#endif
-
-#define VTDLY 0040000
-#define VT0 0000000
-#define VT1 0040000
-
-#ifdef __USE_MISC
-# define XTABS 0014000
-#endif
+#include <bits/termios-struct.h>
+#include <bits/termios-c_cc.h>
+#include <bits/termios-c_iflag.h>
+#include <bits/termios-c_oflag.h>
/* c_cflag bit meaning */
-#ifdef __USE_MISC
-# define CBAUD 0010017
-#endif
#define B0 0000000 /* hang up */
#define B50 0000001
#define B75 0000002
@@ -138,64 +50,14 @@ struct termios
# define EXTA B19200
# define EXTB B38400
#endif
-#define CSIZE 0000060
-#define CS5 0000000
-#define CS6 0000020
-#define CS7 0000040
-#define CS8 0000060
-#define CSTOPB 0000100
-#define CREAD 0000200
-#define PARENB 0000400
-#define PARODD 0001000
-#define HUPCL 0002000
-#define CLOCAL 0004000
-#ifdef __USE_MISC
-# define CBAUDEX 0010000
-#endif
-#define B57600 0010001
-#define B115200 0010002
-#define B230400 0010003
-#define B460800 0010004
-#define B500000 0010005
-#define B576000 0010006
-#define B921600 0010007
-#define B1000000 0010010
-#define B1152000 0010011
-#define B1500000 0010012
-#define B2000000 0010013
-#define B2500000 0010014
-#define B3000000 0010015
-#define B3500000 0010016
-#define B4000000 0010017
-#define __MAX_BAUD B4000000
-#ifdef __USE_MISC
-# define CIBAUD 002003600000 /* input baud rate (not used) */
-# define CMSPAR 010000000000 /* mark or space (stick) parity */
-# define CRTSCTS 020000000000 /* flow control */
-#endif
+#include <bits/termios-baud.h>
+
+#include <bits/termios-c_cflag.h>
+#include <bits/termios-c_lflag.h>
-/* c_lflag bits */
-#define ISIG 0000001
-#define ICANON 0000002
-#if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K)
-# define XCASE 0000004
-#endif
-#define ECHO 0000010
-#define ECHOE 0000020
-#define ECHOK 0000040
-#define ECHONL 0000100
-#define NOFLSH 0000200
-#define TOSTOP 0000400
-#ifdef __USE_MISC
-# define ECHOCTL 0001000
-# define ECHOPRT 0002000
-# define ECHOKE 0004000
-# define FLUSHO 0010000
-# define PENDIN 0040000
-#endif
-#define IEXTEN 0100000
#ifdef __USE_MISC
-# define EXTPROC 0200000
+/* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
+# define TIOCSER_TEMT 0x01 /* Transmitter physically empty */
#endif
/* tcflow() and TCXONC use these */
@@ -209,11 +71,6 @@ struct termios
#define TCOFLUSH 1
#define TCIOFLUSH 2
-/* tcsetattr uses these */
-#define TCSANOW 0
-#define TCSADRAIN 1
-#define TCSAFLUSH 2
-
+#include <bits/termios-tcflow.h>
-#define _IOT_termios /* Hurd ioctl type field. */ \
- _IOT (_IOTS (cflag_t), 4, _IOTS (cc_t), NCCS, _IOTS (speed_t), 2)
+#include <bits/termios-misc.h>
diff --git a/sysdeps/unix/sysv/linux/bits/time.h b/sysdeps/unix/sysv/linux/bits/time.h
index 3df0dfd33a..faec89befc 100644
--- a/sysdeps/unix/sysv/linux/bits/time.h
+++ b/sysdeps/unix/sysv/linux/bits/time.h
@@ -1,5 +1,5 @@
/* System-dependent timing definitions. Linux version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* Never include this file directly; use <time.h> instead.
diff --git a/sysdeps/unix/sysv/linux/bits/timerfd.h b/sysdeps/unix/sysv/linux/bits/timerfd.h
index 305f1e4e9b..eab625e1bd 100644
--- a/sysdeps/unix/sysv/linux/bits/timerfd.h
+++ b/sysdeps/unix/sysv/linux/bits/timerfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_TIMERFD_H
# error "Never use <bits/timerfd.h> directly; include <sys/timerfd.h> instead."
diff --git a/sysdeps/unix/sysv/linux/bits/timex.h b/sysdeps/unix/sysv/linux/bits/timex.h
index 1dbcc0b57d..772034d017 100644
--- a/sysdeps/unix/sysv/linux/bits/timex.h
+++ b/sysdeps/unix/sysv/linux/bits/timex.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_TIMEX_H
#define _BITS_TIMEX_H 1
@@ -104,7 +104,7 @@ struct timex
#define STA_CLK 0x8000 /* clock source (0 = A, 1 = B) (ro) */
/* Read-only bits */
-#define STA_RONLY (STA_PPSSIGNAL | STA_PPSJITTER | STA_PPSWANDER | \
- STA_PPSERROR | STA_CLOCKERR | STA_NANO | STA_MODE | STA_CLK)
+#define STA_RONLY (STA_PPSSIGNAL | STA_PPSJITTER | STA_PPSWANDER \
+ | STA_PPSERROR | STA_CLOCKERR | STA_NANO | STA_MODE | STA_CLK)
#endif /* bits/timex.h */
diff --git a/sysdeps/unix/sysv/linux/bits/types/siginfo_t.h b/sysdeps/unix/sysv/linux/bits/types/siginfo_t.h
index 33766d1813..43c4e009a4 100644
--- a/sysdeps/unix/sysv/linux/bits/types/siginfo_t.h
+++ b/sysdeps/unix/sysv/linux/bits/types/siginfo_t.h
@@ -107,7 +107,7 @@ typedef struct
/* SIGPOLL. */
struct
{
- long int si_band; /* Band event for SIGPOLL. */
+ __SI_BAND_TYPE si_band; /* Band event for SIGPOLL. */
int si_fd;
} _sigpoll;
diff --git a/sysdeps/unix/sysv/linux/bits/types/stack_t.h b/sysdeps/unix/sysv/linux/bits/types/stack_t.h
index ce809ade4a..6d6eb87b9f 100644
--- a/sysdeps/unix/sysv/linux/bits/types/stack_t.h
+++ b/sysdeps/unix/sysv/linux/bits/types/stack_t.h
@@ -1,5 +1,5 @@
/* Define stack_t. Linux version.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef __stack_t_defined
#define __stack_t_defined 1
diff --git a/sysdeps/unix/sysv/linux/bits/uio-ext.h b/sysdeps/unix/sysv/linux/bits/uio-ext.h
index 8698bc1200..854536513c 100644
--- a/sysdeps/unix/sysv/linux/bits/uio-ext.h
+++ b/sysdeps/unix/sysv/linux/bits/uio-ext.h
@@ -1,5 +1,5 @@
/* Operating system-specific extensions to sys/uio.h - Linux version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_UIO_EXT_H
#define _BITS_UIO_EXT_H 1
diff --git a/sysdeps/unix/sysv/linux/bits/uio_lim.h b/sysdeps/unix/sysv/linux/bits/uio_lim.h
index a443fd8e5f..7c9a27dd04 100644
--- a/sysdeps/unix/sysv/linux/bits/uio_lim.h
+++ b/sysdeps/unix/sysv/linux/bits/uio_lim.h
@@ -1,5 +1,5 @@
/* Implementation limits related to sys/uio.h - Linux version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_UIO_LIM_H
#define _BITS_UIO_LIM_H 1
diff --git a/sysdeps/unix/sysv/linux/bits/unistd_ext.h b/sysdeps/unix/sysv/linux/bits/unistd_ext.h
new file mode 100644
index 0000000000..c180cc07bb
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/bits/unistd_ext.h
@@ -0,0 +1,36 @@
+/* System-specific extensions of <unistd.h>, Linux version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _UNISTD_H
+# error "Never include <bits/unistd_ext.h> directly; use <unistd.h> instead."
+#endif
+
+#ifdef __USE_GNU
+
+/* Return the kernel thread ID (TID) of the current thread. The
+ returned value is not subject to caching. Most Linux system calls
+ accept a TID in place of a PID. Using the TID to change properties
+ of a thread that has been created using pthread_create can lead to
+ undefined behavior (comparable to manipulating file descriptors
+ directly that have not been created explicitly). Note that a TID
+ uniquely identifies a thread only while this thread is running; a
+ TID can be reused once a thread has exited, even if the thread is
+ not detached and has not been joined. */
+extern __pid_t gettid (void) __THROW;
+
+#endif
diff --git a/sysdeps/unix/sysv/linux/bits/utsname.h b/sysdeps/unix/sysv/linux/bits/utsname.h
index 9cc1c3523d..f1edc37de9 100644
--- a/sysdeps/unix/sysv/linux/bits/utsname.h
+++ b/sysdeps/unix/sysv/linux/bits/utsname.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_UTSNAME_H
# error "Never include <bits/utsname.h> directly; use <sys/utsname.h> instead."
diff --git a/sysdeps/unix/sysv/linux/bits/waitflags.h b/sysdeps/unix/sysv/linux/bits/waitflags.h
index e8b1dddfe4..4d1c27e6a0 100644
--- a/sysdeps/unix/sysv/linux/bits/waitflags.h
+++ b/sysdeps/unix/sysv/linux/bits/waitflags.h
@@ -1,5 +1,5 @@
/* Definitions of flag bits for `waitpid' et al.
- Copyright (C) 1992-2018 Free Software Foundation, Inc.
+ Copyright (C) 1992-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if !defined _SYS_WAIT_H && !defined _STDLIB_H
# error "Never include <bits/waitflags.h> directly; use <sys/wait.h> instead."
diff --git a/sysdeps/unix/sysv/linux/check_native.c b/sysdeps/unix/sysv/linux/check_native.c
index 6eed8d74e0..82e2a0d83f 100644
--- a/sysdeps/unix/sysv/linux/check_native.c
+++ b/sysdeps/unix/sysv/linux/check_native.c
@@ -1,5 +1,5 @@
/* Determine whether interfaces use native transport. Linux version.
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
@@ -69,7 +69,7 @@ __check_native (uint32_t a1_index, int *a1_native,
req.nlh.nlmsg_type = RTM_GETLINK;
req.nlh.nlmsg_flags = NLM_F_ROOT | NLM_F_MATCH | NLM_F_REQUEST;
req.nlh.nlmsg_pid = 0;
- req.nlh.nlmsg_seq = time (NULL);
+ req.nlh.nlmsg_seq = time_now ();
req.g.rtgen_family = AF_UNSPEC;
assert (sizeof (req) - offsetof (struct req, pad) == 3);
diff --git a/sysdeps/unix/sysv/linux/check_pf.c b/sysdeps/unix/sysv/linux/check_pf.c
index 04cd104aec..bcb9c602aa 100644
--- a/sysdeps/unix/sysv/linux/check_pf.c
+++ b/sysdeps/unix/sysv/linux/check_pf.c
@@ -1,5 +1,5 @@
/* Determine protocol families for which interfaces exist. Linux version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
@@ -126,7 +126,7 @@ make_request (int fd, pid_t pid)
req.nlh.nlmsg_type = RTM_GETADDR;
req.nlh.nlmsg_flags = NLM_F_ROOT | NLM_F_MATCH | NLM_F_REQUEST;
req.nlh.nlmsg_pid = 0;
- req.nlh.nlmsg_seq = time (NULL);
+ req.nlh.nlmsg_seq = time_now ();
req.g.rtgen_family = AF_UNSPEC;
assert (sizeof (req) - offsetof (struct req, pad) == 3);
diff --git a/sysdeps/unix/sysv/linux/clock.c b/sysdeps/unix/sysv/linux/clock.c
index d3771bd862..3f8f18477f 100644
--- a/sysdeps/unix/sysv/linux/clock.c
+++ b/sysdeps/unix/sysv/linux/clock.c
@@ -1,5 +1,5 @@
/* Return the time used by the program so far (user time + system time).
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/times.h>
#include <time.h>
diff --git a/sysdeps/unix/sysv/linux/clock_getcpuclockid.c b/sysdeps/unix/sysv/linux/clock_getcpuclockid.c
index 190a47950e..959bdd13a4 100644
--- a/sysdeps/unix/sysv/linux/clock_getcpuclockid.c
+++ b/sysdeps/unix/sysv/linux/clock_getcpuclockid.c
@@ -1,5 +1,5 @@
/* clock_getcpuclockid -- Get a clockid_t for process CPU time. Linux version.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,12 +14,13 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <time.h>
#include <unistd.h>
#include "kernel-posix-cpu-timers.h"
+#include <shlib-compat.h>
int
__clock_getcpuclockid (pid_t pid, clockid_t *clock_id)
@@ -45,4 +46,11 @@ __clock_getcpuclockid (pid_t pid, clockid_t *clock_id)
else
return INTERNAL_SYSCALL_ERRNO (r, err);
}
-weak_alias (__clock_getcpuclockid, clock_getcpuclockid)
+
+versioned_symbol (libc, __clock_getcpuclockid, clock_getcpuclockid, GLIBC_2_17);
+/* clock_getcpuclockid moved to libc in version 2.17;
+ old binaries may expect the symbol version it had in librt. */
+#if SHLIB_COMPAT (libc, GLIBC_2_2, GLIBC_2_17)
+strong_alias (__clock_getcpuclockid, __clock_getcpuclockid_2);
+compat_symbol (libc, __clock_getcpuclockid_2, clock_getcpuclockid, GLIBC_2_2);
+#endif
diff --git a/sysdeps/unix/sysv/linux/clock_getres.c b/sysdeps/unix/sysv/linux/clock_getres.c
index 5d94f59afe..9497f78787 100644
--- a/sysdeps/unix/sysv/linux/clock_getres.c
+++ b/sysdeps/unix/sysv/linux/clock_getres.c
@@ -1,5 +1,5 @@
/* clock_getres -- Get the resolution of a POSIX clockid_t. Linux version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,38 +14,63 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <errno.h>
#include <time.h>
-#include "kernel-posix-cpu-timers.h"
#ifdef HAVE_CLOCK_GETRES_VSYSCALL
# define HAVE_VSYSCALL
#endif
#include <sysdep-vdso.h>
+#include <shlib-compat.h>
+#include <kernel-features.h>
-#define SYSCALL_GETRES \
- retval = INLINE_VSYSCALL (clock_getres, 2, clock_id, res); \
- break
-
-/* The REALTIME and MONOTONIC clock are definitely supported in the
- kernel. */
-#define SYSDEP_GETRES \
- SYSDEP_GETRES_CPUTIME \
- case CLOCK_REALTIME: \
- case CLOCK_MONOTONIC: \
- case CLOCK_MONOTONIC_RAW: \
- case CLOCK_REALTIME_COARSE: \
- case CLOCK_MONOTONIC_COARSE: \
- SYSCALL_GETRES
-
-/* We handled the REALTIME clock here. */
-#define HANDLED_REALTIME 1
-#define HANDLED_CPUTIME 1
-
-#define SYSDEP_GETRES_CPU SYSCALL_GETRES
-#define SYSDEP_GETRES_CPUTIME /* Default catches them too. */
-
-#include <sysdeps/posix/clock_getres.c>
+/* Get resolution of clock. */
+int
+__clock_getres64 (clockid_t clock_id, struct __timespec64 *res)
+{
+#ifdef __ASSUME_TIME64_SYSCALLS
+# ifndef __NR_clock_getres_time64
+ return INLINE_VSYSCALL (clock_getres, 2, clock_id, res);
+# else
+ return INLINE_SYSCALL (clock_getres_time64, 2, clock_id, res);
+# endif
+#else
+# ifdef __NR_clock_getres_time64
+ int ret = INLINE_SYSCALL (clock_getres_time64, 2, clock_id, res);
+ if (ret == 0 || errno != ENOSYS)
+ return ret;
+# endif
+ struct timespec ts32;
+ int retval = INLINE_VSYSCALL (clock_getres, 2, clock_id, &ts32);
+ if (! retval && res)
+ *res = valid_timespec_to_timespec64 (ts32);
+
+ return retval;
+#endif
+}
+
+#if __TIMESIZE != 64
+int
+__clock_getres (clockid_t clock_id, struct timespec *res)
+{
+ struct __timespec64 ts64;
+ int retval;
+
+ retval = __clock_getres64 (clock_id, &ts64);
+ if (! retval && res)
+ *res = valid_timespec64_to_timespec (ts64);
+
+ return retval;
+}
+#endif
+
+versioned_symbol (libc, __clock_getres, clock_getres, GLIBC_2_17);
+/* clock_getres moved to libc in version 2.17;
+ old binaries may expect the symbol version it had in librt. */
+#if SHLIB_COMPAT (libc, GLIBC_2_2, GLIBC_2_17)
+strong_alias (__clock_getres, __clock_getres_2);
+compat_symbol (libc, __clock_getres_2, clock_getres, GLIBC_2_2);
+#endif
diff --git a/sysdeps/unix/sysv/linux/clock_gettime.c b/sysdeps/unix/sysv/linux/clock_gettime.c
index d837fa36b1..875c4fe905 100644
--- a/sysdeps/unix/sysv/linux/clock_gettime.c
+++ b/sysdeps/unix/sysv/linux/clock_gettime.c
@@ -1,5 +1,5 @@
/* clock_gettime -- Get current time from a POSIX clockid_t. Linux version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,9 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
+#include <kernel-features.h>
#include <errno.h>
#include <time.h>
#include "kernel-posix-cpu-timers.h"
@@ -26,22 +27,61 @@
#endif
#include <sysdep-vdso.h>
-/* The REALTIME and MONOTONIC clock are definitely supported in the
- kernel. */
-#define SYSDEP_GETTIME \
- SYSDEP_GETTIME_CPUTIME; \
- case CLOCK_REALTIME: \
- case CLOCK_MONOTONIC: \
- retval = INLINE_VSYSCALL (clock_gettime, 2, clock_id, tp); \
- break
-
-/* We handled the REALTIME clock here. */
-#define HANDLED_REALTIME 1
-#define HANDLED_CPUTIME 1
-
-#define SYSDEP_GETTIME_CPU(clock_id, tp) \
- retval = INLINE_VSYSCALL (clock_gettime, 2, clock_id, tp); \
- break
-#define SYSDEP_GETTIME_CPUTIME /* Default catches them too. */
-
-#include <sysdeps/unix/clock_gettime.c>
+#include <shlib-compat.h>
+
+/* Get current value of CLOCK and store it in TP. */
+int
+__clock_gettime64 (clockid_t clock_id, struct __timespec64 *tp)
+{
+#ifdef __ASSUME_TIME64_SYSCALLS
+# ifndef __NR_clock_gettime64
+# define __NR_clock_gettime64 __NR_clock_gettime
+# define __vdso_clock_gettime64 __vdso_clock_gettime
+# endif
+ return INLINE_VSYSCALL (clock_gettime64, 2, clock_id, tp);
+#else
+# if defined HAVE_CLOCK_GETTIME64_VSYSCALL
+ int ret64 = INLINE_VSYSCALL (clock_gettime64, 2, clock_id, tp);
+ if (ret64 == 0 || errno != ENOSYS)
+ return ret64;
+# endif
+ struct timespec tp32;
+ int ret = INLINE_VSYSCALL (clock_gettime, 2, clock_id, &tp32);
+ if (ret == 0)
+ *tp = valid_timespec_to_timespec64 (tp32);
+ return ret;
+#endif
+}
+
+#if __TIMESIZE != 64
+int
+__clock_gettime (clockid_t clock_id, struct timespec *tp)
+{
+ int ret;
+ struct __timespec64 tp64;
+
+ ret = __clock_gettime64 (clock_id, &tp64);
+
+ if (ret == 0)
+ {
+ if (! in_time_t_range (tp64.tv_sec))
+ {
+ __set_errno (EOVERFLOW);
+ return -1;
+ }
+
+ *tp = valid_timespec64_to_timespec (tp64);
+ }
+
+ return ret;
+}
+#endif
+libc_hidden_def (__clock_gettime)
+
+versioned_symbol (libc, __clock_gettime, clock_gettime, GLIBC_2_17);
+/* clock_gettime moved to libc in version 2.17;
+ old binaries may expect the symbol version it had in librt. */
+#if SHLIB_COMPAT (libc, GLIBC_2_2, GLIBC_2_17)
+strong_alias (__clock_gettime, __clock_gettime_2);
+compat_symbol (libc, __clock_gettime_2, clock_gettime, GLIBC_2_2);
+#endif
diff --git a/sysdeps/unix/sysv/linux/clock_nanosleep.c b/sysdeps/unix/sysv/linux/clock_nanosleep.c
index 93d5d6ef12..fc47c58ee7 100644
--- a/sysdeps/unix/sysv/linux/clock_nanosleep.c
+++ b/sysdeps/unix/sysv/linux/clock_nanosleep.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-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
@@ -13,22 +13,23 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <time.h>
+#include <kernel-features.h>
#include <errno.h>
#include <sysdep-cancel.h>
#include "kernel-posix-cpu-timers.h"
+#include <shlib-compat.h>
/* We can simply use the syscall. The CPU clocks are not supported
with this function. */
int
-__clock_nanosleep (clockid_t clock_id, int flags, const struct timespec *req,
- struct timespec *rem)
+__clock_nanosleep_time64 (clockid_t clock_id, int flags, const struct __timespec64 *req,
+ struct __timespec64 *rem)
{
- INTERNAL_SYSCALL_DECL (err);
int r;
if (clock_id == CLOCK_THREAD_CPUTIME_ID)
@@ -36,19 +37,67 @@ __clock_nanosleep (clockid_t clock_id, int flags, const struct timespec *req,
if (clock_id == CLOCK_PROCESS_CPUTIME_ID)
clock_id = MAKE_PROCESS_CPUCLOCK (0, CPUCLOCK_SCHED);
- if (SINGLE_THREAD_P)
- r = INTERNAL_SYSCALL (clock_nanosleep, err, 4, clock_id, flags, req, rem);
- else
- {
- int oldstate = LIBC_CANCEL_ASYNC ();
+ /* If the call is interrupted by a signal handler or encounters an error,
+ it returns a positive value similar to errno. */
+ INTERNAL_SYSCALL_DECL (err);
+
+#ifdef __ASSUME_TIME64_SYSCALLS
+# ifndef __NR_clock_nanosleep_time64
+# define __NR_clock_nanosleep_time64 __NR_clock_nanosleep
+# endif
+ r = INTERNAL_SYSCALL_CANCEL (clock_nanosleep_time64, err, clock_id,
+ flags, req, rem);
+#else
+# ifdef __NR_clock_nanosleep_time64
+ r = INTERNAL_SYSCALL_CANCEL (clock_nanosleep_time64, err, clock_id,
+ flags, req, rem);
- r = INTERNAL_SYSCALL (clock_nanosleep, err, 4, clock_id, flags, req,
- rem);
+ if (r != -ENOSYS)
+ return (INTERNAL_SYSCALL_ERROR_P (r, err)
+ ? INTERNAL_SYSCALL_ERRNO (r, err) : 0);
+# endif /* __NR_clock_nanosleep_time64 */
- LIBC_CANCEL_RESET (oldstate);
+ if (! in_time_t_range (req->tv_sec))
+ {
+ __set_errno (EOVERFLOW);
+ return -1;
}
+ struct timespec tr32;
+ struct timespec ts32 = valid_timespec64_to_timespec (*req);
+ r = INTERNAL_SYSCALL_CANCEL (clock_nanosleep, err, clock_id, flags,
+ &ts32, &tr32);
+
+ if (r == -EINTR && rem != NULL && (flags & TIMER_ABSTIME) == 0)
+ *rem = valid_timespec_to_timespec64 (tr32);
+#endif /* __ASSUME_TIME64_SYSCALLS */
+
return (INTERNAL_SYSCALL_ERROR_P (r, err)
? INTERNAL_SYSCALL_ERRNO (r, err) : 0);
}
-weak_alias (__clock_nanosleep, clock_nanosleep)
+
+#if __TIMESIZE != 64
+int
+__clock_nanosleep (clockid_t clock_id, int flags, const struct timespec *req,
+ struct timespec *rem)
+{
+ int r;
+ struct __timespec64 treq64, trem64;
+
+ treq64 = valid_timespec_to_timespec64 (*req);
+ r = __clock_nanosleep_time64 (clock_id, flags, &treq64, &trem64);
+
+ if (r == EINTR && rem != NULL && (flags & TIMER_ABSTIME) == 0)
+ *rem = valid_timespec64_to_timespec (trem64);
+
+ return r;
+}
+#endif
+libc_hidden_def (__clock_nanosleep)
+versioned_symbol (libc, __clock_nanosleep, clock_nanosleep, GLIBC_2_17);
+/* clock_nanosleep moved to libc in version 2.17;
+ old binaries may expect the symbol version it had in librt. */
+#if SHLIB_COMPAT (libc, GLIBC_2_2, GLIBC_2_17)
+strong_alias (__clock_nanosleep, __clock_nanosleep_2);
+compat_symbol (libc, __clock_nanosleep_2, clock_nanosleep, GLIBC_2_2);
+#endif
diff --git a/sysdeps/unix/sysv/linux/clock_settime.c b/sysdeps/unix/sysv/linux/clock_settime.c
index 5f3f22f74b..bda113809b 100644
--- a/sysdeps/unix/sysv/linux/clock_settime.c
+++ b/sysdeps/unix/sysv/linux/clock_settime.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-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
@@ -13,26 +13,63 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sysdep.h>
#include <time.h>
+#include <shlib-compat.h>
+#include <kernel-features.h>
-#include "kernel-posix-cpu-timers.h"
+/* Set CLOCK to value TP. */
+int
+__clock_settime64 (clockid_t clock_id, const struct __timespec64 *tp)
+{
+ /* Make sure the time cvalue is OK. */
+ if (! valid_nanoseconds (tp->tv_nsec))
+ {
+ __set_errno (EINVAL);
+ return -1;
+ }
+#ifdef __ASSUME_TIME64_SYSCALLS
+# ifndef __NR_clock_settime64
+# define __NR_clock_settime64 __NR_clock_settime
+# endif
+ return INLINE_SYSCALL_CALL (clock_settime64, clock_id, tp);
+#else
+# ifdef __NR_clock_settime64
+ int ret = INLINE_SYSCALL_CALL (clock_settime64, clock_id, tp);
+ if (ret == 0 || errno != ENOSYS)
+ return ret;
+# endif
+ if (! in_time_t_range (tp->tv_sec))
+ {
+ __set_errno (EOVERFLOW);
+ return -1;
+ }
-/* The REALTIME clock is definitely supported in the kernel. */
-#define SYSDEP_SETTIME \
- case CLOCK_REALTIME: \
- retval = INLINE_SYSCALL (clock_settime, 2, clock_id, tp); \
- break
+ struct timespec ts32 = valid_timespec64_to_timespec (*tp);
+ return INLINE_SYSCALL_CALL (clock_settime, clock_id, &ts32);
+#endif
+}
-/* We handled the REALTIME clock here. */
-#define HANDLED_REALTIME 1
+#if __TIMESIZE != 64
+int
+__clock_settime (clockid_t clock_id, const struct timespec *tp)
+{
+ struct __timespec64 ts64 = valid_timespec_to_timespec64 (*tp);
-#define HANDLED_CPUTIME 1
-#define SYSDEP_SETTIME_CPU \
- retval = INLINE_SYSCALL (clock_settime, 2, clock_id, tp)
+ return __clock_settime64 (clock_id, &ts64);
+}
+#endif
-#include <sysdeps/unix/clock_settime.c>
+libc_hidden_def (__clock_settime)
+
+versioned_symbol (libc, __clock_settime, clock_settime, GLIBC_2_17);
+/* clock_settime moved to libc in version 2.17;
+ old binaries may expect the symbol version it had in librt. */
+#if SHLIB_COMPAT (libc, GLIBC_2_2, GLIBC_2_17)
+strong_alias (__clock_settime, __clock_settime_2);
+compat_symbol (libc, __clock_settime_2, clock_settime, GLIBC_2_2);
+#endif
diff --git a/sysdeps/unix/sysv/linux/close.c b/sysdeps/unix/sysv/linux/close.c
index fa0938bd89..0e387a340a 100644
--- a/sysdeps/unix/sysv/linux/close.c
+++ b/sysdeps/unix/sysv/linux/close.c
@@ -1,5 +1,5 @@
/* Linux close syscall implementation.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <sysdep-cancel.h>
diff --git a/sysdeps/unix/sysv/linux/close_nocancel.c b/sysdeps/unix/sysv/linux/close_nocancel.c
index 7d744f9096..bb288199e6 100644
--- a/sysdeps/unix/sysv/linux/close_nocancel.c
+++ b/sysdeps/unix/sysv/linux/close_nocancel.c
@@ -1,5 +1,5 @@
/* Linux close syscall implementation -- non-cancellable.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <sysdep-cancel.h>
diff --git a/sysdeps/unix/sysv/linux/cmsg_nxthdr.c b/sysdeps/unix/sysv/linux/cmsg_nxthdr.c
index bab0be6884..18735f060f 100644
--- a/sysdeps/unix/sysv/linux/cmsg_nxthdr.c
+++ b/sysdeps/unix/sysv/linux/cmsg_nxthdr.c
@@ -1,5 +1,5 @@
/* Return point to next ancillary data entry in message header.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <sys/socket.h>
diff --git a/sysdeps/unix/sysv/linux/connect.c b/sysdeps/unix/sysv/linux/connect.c
index fd8a84bc3e..4ada43037d 100644
--- a/sysdeps/unix/sysv/linux/connect.c
+++ b/sysdeps/unix/sysv/linux/connect.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2015-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/socket.h>
#include <sysdep-cancel.h>
diff --git a/sysdeps/unix/sysv/linux/copy_file_range.c b/sysdeps/unix/sysv/linux/copy_file_range.c
index 7b1a50f752..9bbed6bd9e 100644
--- a/sysdeps/unix/sysv/linux/copy_file_range.c
+++ b/sysdeps/unix/sysv/linux/copy_file_range.c
@@ -1,5 +1,5 @@
/* Linux implementation of copy_file_range.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,33 +14,22 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sysdep-cancel.h>
#include <unistd.h>
-/* Include the fallback implementation. */
-#ifndef __ASSUME_COPY_FILE_RANGE
-#define COPY_FILE_RANGE_DECL static
-#define COPY_FILE_RANGE copy_file_range_compat
-#include <io/copy_file_range-compat.c>
-#endif
-
ssize_t
copy_file_range (int infd, __off64_t *pinoff,
int outfd, __off64_t *poutoff,
size_t length, unsigned int flags)
{
#ifdef __NR_copy_file_range
- ssize_t ret = SYSCALL_CANCEL (copy_file_range, infd, pinoff, outfd, poutoff,
- length, flags);
-# ifndef __ASSUME_COPY_FILE_RANGE
- if (ret == -1 && errno == ENOSYS)
- ret = copy_file_range_compat (infd, pinoff, outfd, poutoff, length, flags);
-# endif
- return ret;
-#else /* !__NR_copy_file_range */
- return copy_file_range_compat (infd, pinoff, outfd, poutoff, length, flags);
+ return SYSCALL_CANCEL (copy_file_range, infd, pinoff, outfd, poutoff,
+ length, flags);
+#else
+ __set_errno (ENOSYS);
+ return -1;
#endif
}
diff --git a/sysdeps/unix/sysv/linux/creat.c b/sysdeps/unix/sysv/linux/creat.c
index c996cbd3cc..e55514999e 100644
--- a/sysdeps/unix/sysv/linux/creat.c
+++ b/sysdeps/unix/sysv/linux/creat.c
@@ -1,5 +1,5 @@
/* Linux default implementation for creat.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fcntl.h>
#include <sys/types.h>
@@ -35,6 +35,4 @@ __creat (const char *file, mode_t mode)
}
weak_alias (__creat, creat)
-LIBC_CANCEL_HANDLED ();
-
#endif
diff --git a/sysdeps/unix/sysv/linux/creat64.c b/sysdeps/unix/sysv/linux/creat64.c
index d3ada38c9c..6b95e7e6de 100644
--- a/sysdeps/unix/sysv/linux/creat64.c
+++ b/sysdeps/unix/sysv/linux/creat64.c
@@ -1,5 +1,5 @@
/* Linux default implementation for LFS creat.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fcntl.h>
#include <sys/types.h>
@@ -37,5 +37,3 @@ weak_alias (__creat64, creat64)
strong_alias (__creat64, __creat)
weak_alias (__creat64, creat)
#endif
-
-LIBC_CANCEL_HANDLED ();
diff --git a/sysdeps/unix/sysv/linux/createthread.c b/sysdeps/unix/sysv/linux/createthread.c
index 5879e51bd2..27c3adb137 100644
--- a/sysdeps/unix/sysv/linux/createthread.c
+++ b/sysdeps/unix/sysv/linux/createthread.c
@@ -1,5 +1,5 @@
/* Low-level thread creation for NPTL. Linux version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sched.h>
#include <setjmp.h>
diff --git a/sysdeps/unix/sysv/linux/csky/Implies b/sysdeps/unix/sysv/linux/csky/Implies
new file mode 100644
index 0000000000..f37776ccef
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/csky/Implies
@@ -0,0 +1,3 @@
+unix/sysv/linux/generic/wordsize-32
+unix/sysv/linux/generic
+csky/nptl
diff --git a/sysdeps/unix/sysv/linux/csky/Makefile b/sysdeps/unix/sysv/linux/csky/Makefile
new file mode 100644
index 0000000000..4462bc0bc7
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/csky/Makefile
@@ -0,0 +1,8 @@
+ifeq ($(subdir),misc)
+sysdep_routines += cacheflush
+sysdep_headers += sys/cachectl.h
+endif
+
+ifeq ($(subdir),stdlib)
+gen-as-const-headers += ucontext_i.sym
+endif
diff --git a/sysdeps/unix/sysv/linux/csky/Versions b/sysdeps/unix/sysv/linux/csky/Versions
new file mode 100644
index 0000000000..b61b3b269c
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/csky/Versions
@@ -0,0 +1,5 @@
+libc {
+ GLIBC_2.29 {
+ cacheflush;
+ }
+}
diff --git a/sysdeps/unix/sysv/linux/csky/abiv2/____longjmp_chk.S b/sysdeps/unix/sysv/linux/csky/abiv2/____longjmp_chk.S
new file mode 100644
index 0000000000..96d9023c1c
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/csky/abiv2/____longjmp_chk.S
@@ -0,0 +1,81 @@
+/* longjmp with sp check for C-SKY ABIV2.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+ .section .rodata.str1.8,"aMS",@progbits,1
+ .align 2
+ .type longjmp_msg,@object
+longjmp_msg:
+ .string "longjmp causes uninitialized stack frame"
+ .size longjmp_msg, .-longjmp_msg
+
+ .text
+#define __longjmp ____longjmp_chk
+
+#ifdef __PIC__
+# define CALL_FAIL \
+ subi sp, 8; \
+ stw gb, (sp, 0); \
+ grs gb, .Lgetpc1; \
+.Lgetpc1: \
+ lrw t0, .Lgetpc1@GOTPC; \
+ addu gb, gb, t0; \
+ lrw a0, longjmp_msg@GOTOFF; \
+ addu a0, a0, gb; \
+ lrw t0, (HIDDEN_JUMPTARGET (__fortify_fail))@PLT; \
+ ldr.w t0, (gb, t0 << 0); \
+ jsr t0; \
+ ldw gb, (sp, 0); \
+ addi sp, 8;
+#else /* __PIC__ */
+# define CALL_FAIL \
+ lrw a0, longjmp_msg; \
+ jsri HIDDEN_JUMPTARGET (__fortify_fail);
+#endif /* __PIC__ */
+
+# define CHECK_SP(reg) \
+ cmplt sp, reg; \
+ bt .Lok1; \
+ mov r9, a0; \
+ mov t0, r7; \
+ lrw r7, __NR_sigaltstack; \
+ movi a0, 0; \
+ subi sp, 12; /* sizeof (stack_t) */ \
+ mov a1, sp; \
+ trap 0; \
+ mov r7, t0; \
+ cmpnei a0, 0; \
+ bt .Lok; \
+ ldw a1, (sp, 4); \
+ btsti a1, 1; \
+ bt .Lfail; \
+ ldw a1, (sp, 0); \
+ ldw a3, (sp, 8); \
+ add a1, a3; \
+ sub a1, reg; \
+ cmphs a1, a3; \
+ bt .Lok; \
+.Lfail: \
+ addi sp, 12; \
+ CALL_FAIL \
+.Lok: \
+ mov a0, r9; \
+.Lok1:
+
+#include <__longjmp.S>
diff --git a/sysdeps/unix/sysv/linux/csky/abiv2/clone.S b/sysdeps/unix/sysv/linux/csky/abiv2/clone.S
new file mode 100644
index 0000000000..6ff15110f0
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/csky/abiv2/clone.S
@@ -0,0 +1,98 @@
+/* Wrapper around clone system call. C-SKY ABIV2 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+/* clone() is even more special than fork() as it mucks with stacks
+ and invokes a function in the right context after its all over. */
+
+#include <sysdep.h>
+#define _ERRNO_H 1
+#include <bits/errno.h>
+
+/* int clone (int (*fn) (void *arg), void *child_stack, int flags, void *arg,
+ pid_t *ptid, struct user_desc *tls, pid_t *ctid) */
+
+ .text
+ENTRY (__clone)
+ /* Sanity check arguments. */
+ cmpnei a0, 0 /* No NULL function pointers. */
+ bf __error_arg
+ cmpnei a1, 0 /* No NULL stack pointers. */
+ bf __error_arg
+
+ subi a1, 8
+ stw a0, (a1, 0) /* Insert the function into the new stack. */
+ stw a3, (a1, 4) /* Insert the args into the new stack. */
+
+ mov t1, r7 /* Save r7. */
+ mov t2, r4 /* Save r4. */
+
+ /* The syscall expects the args to be in different slots. */
+ mov a0, a2
+ ldw a2, (sp, 0)
+ ldw a3, (sp, 8)
+ ldw r4, (sp, 4)
+ lrw r7, __NR_clone
+ trap 0
+
+ mov r7, t1 /* Restore r7. */
+ mov r4, t2 /* Restore r4. */
+ btsti a0, 31 /* Check if return is less than zero. */
+ bt __do_syscall_error
+ cmpnei a0, 0
+ bf __thread_start
+ rts
+
+__error_arg:
+ lrw a0, -EINVAL
+
+__do_syscall_error:
+#ifdef __PIC__
+ subi sp, 8
+ stw gb, (sp, 0)
+ stw r15, (sp, 4)
+ grs gb, .Lgetpc
+.Lgetpc:
+ lrw t0, .Lgetpc@GOTPC
+ addu gb, gb, t0
+ lrw t0, __syscall_error@PLT
+ ldr.w t0, (gb, t0 << 0)
+ jsr t0
+ ldw gb, (sp, 0)
+ ldw r15, (sp, 4)
+ addi sp, 8
+#else
+ jmpi __syscall_error
+#endif /* __PIC__ */
+ rts
+PSEUDO_END (__clone)
+
+ENTRY (__thread_start)
+ .cfi_label .Ldummy
+ cfi_undefined (lr)
+ ldw a0, (sp, 4) /* Restore args from new sp. */
+ ldw a1, (sp, 0) /* Restore function from new sp. */
+ addi sp, 8
+ jsr a1
+
+ /* exit */
+ lrw r7, __NR_exit
+ trap 0
+END (__thread_start)
+
+libc_hidden_def (__clone)
+weak_alias (__clone, clone)
diff --git a/sysdeps/unix/sysv/linux/csky/abiv2/getcontext.S b/sysdeps/unix/sysv/linux/csky/abiv2/getcontext.S
new file mode 100644
index 0000000000..a3c9da14a4
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/csky/abiv2/getcontext.S
@@ -0,0 +1,73 @@
+/* Save current context. C-SKY ABIV2 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+#include "ucontext_i.h"
+
+/* int getcontext (ucontext_t *ucp) */
+
+ENTRY (__getcontext)
+ /* No need to save r2-r7 or a0-a3. */
+ mov t0, a0
+
+ addi a0, MCONTEXT_CSKY_R4
+
+ stm r4-r13, (a0) /* Save r4-r13. */
+ stw sp, (t0, MCONTEXT_CSKY_SP) /* Save sp. */
+ stw r15, (t0, MCONTEXT_CSKY_LR) /* Save lr. */
+ stw r15, (t0, MCONTEXT_CSKY_PC) /* Return to PC. */
+ addi a0, t0, MCONTEXT_CSKY_R16
+ stm r16-r31, (a0) /* Save r16-r31. */
+ movi a0, 0
+ stw a0, (t0, MCONTEXT_CSKY_A0) /* Return zero. */
+
+ subi sp, 8
+ stw t0, (sp, 0) /* Save t0 after "save sp". */
+
+ /* __sigprocmask (SIG_BLOCK, NULL, &(ucontext->uc_sigmask)) */
+ movi a0, SIG_BLOCK
+ movi a1, 0
+ addi a2, t0, UCONTEXT_SIGMASK
+
+ /* Do sigprocmask syscall. */
+#ifdef __PIC__
+ subi sp, 8
+ stw gb, (sp, 0)
+ grs gb, .Lgetpc
+.Lgetpc:
+ lrw a3, .Lgetpc@GOTPC
+ addu gb, gb, a3
+ lrw a3, __sigprocmask@PLT
+ ldr.w a3, (gb, a3 << 0)
+ jsr a3
+ ldw gb, (sp, 0)
+ addi sp, 8
+#else
+ jsri __sigprocmask
+#endif
+
+ ldw t0, (sp, 0)
+ addi sp, 8
+ /* Restore r15 for sigprocmask changes. */
+ ldw r15, (t0, MCONTEXT_CSKY_LR)
+ movi a0, 0 /* Return 0. */
+ jmp r15
+END (__getcontext)
+
+weak_alias (__getcontext, getcontext)
diff --git a/sysdeps/unix/sysv/linux/csky/abiv2/setcontext.S b/sysdeps/unix/sysv/linux/csky/abiv2/setcontext.S
new file mode 100644
index 0000000000..21142b6eb1
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/csky/abiv2/setcontext.S
@@ -0,0 +1,98 @@
+/* Set saved user context to current context. C-SKY ABIV2 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+#include "ucontext_i.h"
+
+/* int setcontext (const ucontext_t *ucp) */
+
+ENTRY (__setcontext)
+ mov t0, a0
+ subi sp, 8
+ stw a0, (sp, 0)
+
+ /* Set sigmask. */
+ movi a0, SIG_SETMASK
+ addi a1, t0, UCONTEXT_SIGMASK
+ movi a2, 0
+
+ /* Do sigprocmask syscall. */
+#ifdef __PIC__
+ subi sp, 8
+ stw gb, (sp, 0)
+ grs gb, .Lgetpc1
+.Lgetpc1:
+ lrw a3, .Lgetpc1@GOTPC
+ addu gb, gb, a3
+ lrw a3, __sigprocmask@PLT
+ ldr.w a3, (gb, a3 << 0)
+ jsr a3
+ ldw gb, (sp, 0)
+ addi sp, 8
+#else
+ jsri __sigprocmask
+#endif /* __PIC__ */
+
+ ldw t0, (sp, 0)
+ addi sp, 8
+ /* Set r0-r11. Load a0-a3, for makecontext requires. */
+ addi t1, t0, MCONTEXT_CSKY_A0
+ ldm r0-r11, (t1)
+ ldw sp, (t0, MCONTEXT_CSKY_SP) /* Load sp. */
+ ldw r15, (t0, MCONTEXT_CSKY_LR) /* Load lr. */
+ ldw t0, (t0, MCONTEXT_CSKY_PC) /* Load start addr. */
+ jmp t0
+END (setcontext)
+weak_alias (__setcontext, setcontext)
+
+ENTRY (__startcontext)
+ .cfi_label .Ldummy
+ cfi_undefined (lr)
+ mov a0, r9
+ cmpnei r9, 0 /* r9 was set in makecontext. */
+ bf 1f /* null, then exit. */
+
+ /* Call setcontext. */
+#ifdef __PIC__
+ grs t1, .Lgetpc2
+.Lgetpc2:
+ lrw t0, .Lgetpc2@GOTPC
+ addu t1, t1, t0
+ lrw t0, __setcontext@GOT
+ ldr.w t0, (t1, t0 << 0)
+#else
+ lrw t0, __setcontext
+#endif
+ jsr t0
+
+1:
+ /* Call _exit. */
+#ifdef __PIC__
+ grs t1, .Lgetpc3
+.Lgetpc3:
+ lrw t0, .Lgetpc3@GOTPC
+ addu t1, t1, t0
+ lrw t0, _exit@GOT
+ ldr.w t0, (t1, t0 << 0)
+#else
+ lrw t0, _exit
+#endif
+ jsr t0
+
+END (__startcontext)
diff --git a/sysdeps/unix/sysv/linux/csky/abiv2/swapcontext.S b/sysdeps/unix/sysv/linux/csky/abiv2/swapcontext.S
new file mode 100644
index 0000000000..802aee4fa5
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/csky/abiv2/swapcontext.S
@@ -0,0 +1,78 @@
+/* Save and set current context. C-SKY ABIV2 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+#include "ucontext_i.h"
+
+/* int swapcontext (ucontext_t *oucp, const ucontext_t *ucp) */
+
+ENTRY (swapcontext)
+ /* Save params and lr. */
+ subi sp, 16
+ stw a0, (sp, 0)
+ stw a1, (sp, 4)
+ stw r15, (sp, 8)
+
+ /* Call getcontext. */
+#ifdef __PIC__
+ grs t1, .Lgetpc1
+.Lgetpc1:
+ lrw t0, .Lgetpc1@GOTPC
+ addu t1, t1, t0
+ lrw t0, __getcontext@GOT
+ ldr.w t0, (t1, t0 << 0)
+ jsr t0
+#else /* !__PIC__ */
+ jsri __getcontext
+#endif
+
+ mov a3, a0 /* Save return value. */
+
+ /* Restore params and lr. */
+ ldw a0, (sp, 0)
+ ldw a1, (sp, 4)
+ ldw r15, (sp, 8)
+ addi sp, 16
+
+ cmpnei a3, 0
+ bt error_exit
+
+ /* Fix up LR and the PC. */
+ stw sp, (a0, MCONTEXT_CSKY_SP)
+ stw r15, (a0, MCONTEXT_CSKY_LR)
+ stw r15, (a0, MCONTEXT_CSKY_PC)
+
+ /* Set setcontext's arg. */
+ mov a0, a1
+
+#ifdef __PIC__
+ grs t1, .Lgetpc2
+.Lgetpc2:
+ lrw a3, .Lgetpc2@GOTPC
+ addu t1, t1, a3
+ lrw a3, __setcontext@GOT
+ ldr.w a3, (t1, a3 << 0)
+#else /* __PIC__ */
+ lrw a3, __setcontext
+#endif /* __PIC__ */
+ jmp a3
+
+error_exit:
+ jmp r15
+END (swapcontext)
diff --git a/sysdeps/unix/sysv/linux/csky/abiv2/syscall.S b/sysdeps/unix/sysv/linux/csky/abiv2/syscall.S
new file mode 100644
index 0000000000..0457166fc5
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/csky/abiv2/syscall.S
@@ -0,0 +1,69 @@
+/* System call interface. C-SKY ABIV2 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+/* long syscall(long sysnum, long a, long b, long c, long d, long e, long f) */
+
+ENTRY (syscall)
+ subi sp, 8
+ stw r4, (sp, 0)
+ stw r5, (sp, 4)
+ mov t0, r7
+
+ /* Put system call number in r7, adjust shift for arguments
+ and load extra arguments from stack. */
+ mov r7, a0
+ mov a0, a1
+ mov a1, a2
+ mov a2, a3
+ ldw a3, (sp, 8)
+ ldw r4, (sp, 12)
+ ldw r5, (sp, 16)
+ trap 0
+
+ /* Restore temp registers. */
+ mov r7, t0
+ ldw r4, (sp, 0)
+ ldw r5, (sp, 4)
+ addi sp, 8
+
+ /* Check return value. */
+ lrw t0, 0xfffff000
+ cmphs a0, t0
+ bf 1f
+#ifdef __PIC__
+ subi sp, 8
+ stw gb, (sp, 0)
+ stw lr, (sp, 4)
+ grs gb, .Lgetpc
+.Lgetpc:
+ lrw t0, .Lgetpc@GOTPC
+ addu gb, gb, t0
+ lrw t0, __syscall_error@PLT
+ ldr.w t0, (gb, t0 << 0)
+ jsr t0
+ ldw gb, (sp, 0)
+ ldw lr, (sp, 4)
+ addi sp, 8
+#else
+ jmpi __syscall_error
+#endif /* __PIC__ */
+1:
+ rts
+PSEUDO_END (syscall)
diff --git a/sysdeps/unix/sysv/linux/csky/abiv2/sysdep.S b/sysdeps/unix/sysv/linux/csky/abiv2/sysdep.S
new file mode 100644
index 0000000000..a3a40c24c0
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/csky/abiv2/sysdep.S
@@ -0,0 +1,65 @@
+/* syscall error handlers. C-SKY ABIV2 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+/* The syscall stubs jump here when they detect an error.
+ The code for Linux is almost identical to the canonical Unix
+ code, except that the error number in R0 is negated. */
+
+#undef CALL_MCOUNT
+#define CALL_MCOUNT /* Don't insert the profiling call, it clobbers R0. */
+
+ .text
+ENTRY (__syscall_error)
+ movi a1, 0
+ rsub a0, a0, a1
+
+#if !IS_IN (rtld)
+ mov a1, a0
+ mov a0, tls
+
+ grs t1, .Lgetpc1
+.Lgetpc1:
+ lrw t0, errno@gottpoff
+ add t1, t1, t0
+ ldw t1, (t1)
+ add t1, a0
+ stw a1, (t1)
+ bmaski a0, 0
+ rts
+#elif RTLD_PRIVATE_ERRNO /* !IS_IN (rtld) */
+# ifdef __PIC__
+ grs t1, .Lgetpc2
+.Lgetpc2:
+ lrw t0, .Lgetpc2@GOTPC
+ addu t1, t1, t0
+ lrw t0, rtld_errno@PLT
+ ldr.w t0, (t1, t0 << 0)
+# else
+ lrw t0, rtld_errno
+# endif /* __PIC__ */
+ stw a0, (t0)
+ bmaski a0, 0
+ rts
+#else
+# error "Unsupported non-TLS case"
+#endif /* RTLD_PRIVATE_ERRNO */
+
+#undef __syscall_error
+END (__syscall_error)
diff --git a/sysdeps/unix/sysv/linux/csky/abiv2/ucontext_i.sym b/sysdeps/unix/sysv/linux/csky/abiv2/ucontext_i.sym
new file mode 100644
index 0000000000..4581b65e49
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/csky/abiv2/ucontext_i.sym
@@ -0,0 +1,32 @@
+#include <inttypes.h>
+#include <signal.h>
+#include <stddef.h>
+#include <sys/ucontext.h>
+
+SIG_BLOCK
+SIG_SETMASK
+
+-- Offsets of the fields in the ucontext_t structure.
+#define ucontext(member) offsetof (ucontext_t, member)
+#define mcontext(member) ucontext (uc_mcontext.member)
+#define greg(member) mcontext (__gregs.member)
+#define fpreg(member) mcontext (__fpregs.member)
+
+UCONTEXT_FLAGS ucontext (__uc_flags)
+UCONTEXT_LINK ucontext (uc_link)
+UCONTEXT_STACK ucontext (uc_stack)
+UCONTEXT_MCONTEXT ucontext (uc_mcontext)
+UCONTEXT_SIGMASK ucontext (uc_sigmask)
+
+MCONTEXT_CSKY_PC greg (__pc)
+MCONTEXT_CSKY_SP greg (__usp)
+MCONTEXT_CSKY_LR greg (__lr)
+MCONTEXT_CSKY_A0 greg (__a0)
+MCONTEXT_CSKY_R8 greg (__regs[2])
+MCONTEXT_CSKY_R16 greg (__exregs[0])
+MCONTEXT_CSKY_HI greg (__rhi)
+MCONTEXT_CSKY_LO greg (__rlo)
+MCONTEXT_CSKY_R4 greg (__regs[0])
+MCONTEXT_CSKY_FESR fpreg (__fesr)
+MCONTEXT_CSKY_FCR fpreg (__fcr)
+MCONTEXT_CSKY_FR0 fpreg (__vr[0])
diff --git a/sysdeps/unix/sysv/linux/csky/bits/procfs.h b/sysdeps/unix/sysv/linux/csky/bits/procfs.h
new file mode 100644
index 0000000000..51dec4cce2
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/csky/bits/procfs.h
@@ -0,0 +1,37 @@
+/* Types for registers for sys/procfs.h. C-SKY version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PROCFS_H
+# error "Never include <bits/procfs.h> directly; use <sys/procfs.h> instead."
+#endif
+
+#include <asm/ptrace.h>
+
+/* Type for a general-purpose register. */
+typedef unsigned long elf_greg_t;
+/* Type for a floating-point registers. */
+typedef unsigned long elf_fpreg_t;
+
+/* In gdb/bfd elf32-csky.c, csky_elf_grok_prstatus() use fixed size of
+ elf_prstatus. It's 148 for abiv1 and 220 for abiv2, the size is enough
+ for coredump and no need full sizeof (struct pt_regs). */
+#define ELF_NGREG ((sizeof (struct pt_regs) / sizeof (elf_greg_t)) - 2)
+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
+
+#define ELF_NFPREG (sizeof (struct user_fp) / sizeof (elf_fpreg_t))
+typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
diff --git a/sysdeps/unix/sysv/linux/csky/bits/shmlba.h b/sysdeps/unix/sysv/linux/csky/bits/shmlba.h
new file mode 100644
index 0000000000..345ee6c157
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/csky/bits/shmlba.h
@@ -0,0 +1,29 @@
+/* Define SHMLBA. C-SKY version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SHM_H
+# error "Never use <bits/shmlba.h> directly; include <sys/shm.h> instead."
+#endif
+
+__BEGIN_DECLS
+
+/* Segment low boundary address multiple. */
+#define SHMLBA (__getpagesize () << 2)
+extern int __getpagesize (void) __THROW __attribute__ ((__const__));
+
+__END_DECLS
diff --git a/sysdeps/unix/sysv/linux/csky/c++-types.data b/sysdeps/unix/sysv/linux/csky/c++-types.data
new file mode 100644
index 0000000000..303f4570c8
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/csky/c++-types.data
@@ -0,0 +1,67 @@
+blkcnt64_t:x
+blkcnt_t:l
+blksize_t:i
+caddr_t:Pc
+clockid_t:i
+clock_t:l
+daddr_t:i
+dev_t:y
+fd_mask:l
+fsblkcnt64_t:y
+fsblkcnt_t:m
+fsfilcnt64_t:y
+fsfilcnt_t:m
+fsid_t:8__fsid_t
+gid_t:j
+id_t:j
+ino64_t:y
+ino_t:m
+int16_t:s
+int32_t:i
+int64_t:x
+int8_t:a
+intptr_t:i
+key_t:i
+loff_t:x
+mode_t:j
+nlink_t:j
+off64_t:x
+off_t:l
+pid_t:i
+pthread_attr_t:14pthread_attr_t
+pthread_barrier_t:17pthread_barrier_t
+pthread_barrierattr_t:21pthread_barrierattr_t
+pthread_cond_t:14pthread_cond_t
+pthread_condattr_t:18pthread_condattr_t
+pthread_key_t:j
+pthread_mutex_t:15pthread_mutex_t
+pthread_mutexattr_t:19pthread_mutexattr_t
+pthread_once_t:i
+pthread_rwlock_t:16pthread_rwlock_t
+pthread_rwlockattr_t:20pthread_rwlockattr_t
+pthread_spinlock_t:i
+pthread_t:m
+quad_t:x
+register_t:i
+rlim64_t:y
+rlim_t:m
+sigset_t:10__sigset_t
+size_t:j
+socklen_t:j
+ssize_t:i
+suseconds_t:l
+time_t:l
+u_char:h
+uid_t:j
+uint:j
+u_int:j
+u_int16_t:t
+u_int32_t:j
+u_int64_t:y
+u_int8_t:h
+ulong:m
+u_long:m
+u_quad_t:y
+useconds_t:j
+ushort:t
+u_short:t
diff --git a/sysdeps/unix/sysv/linux/csky/configure b/sysdeps/unix/sysv/linux/csky/configure
new file mode 100644
index 0000000000..9fa8a3126d
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/csky/configure
@@ -0,0 +1,4 @@
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
+
+arch_minimum_kernel=4.20.0
+ldd_rewrite_script=sysdeps/unix/sysv/linux/ldd-rewrite.sed
diff --git a/sysdeps/unix/sysv/linux/csky/configure.ac b/sysdeps/unix/sysv/linux/csky/configure.ac
new file mode 100644
index 0000000000..89448969d4
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/csky/configure.ac
@@ -0,0 +1,5 @@
+GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
+# Local configure fragment for sysdeps/unix/sysv/linux/csky
+
+arch_minimum_kernel=4.20.0
+ldd_rewrite_script=sysdeps/unix/sysv/linux/ldd-rewrite.sed
diff --git a/sysdeps/unix/sysv/linux/csky/jmp_buf-macros.h b/sysdeps/unix/sysv/linux/csky/jmp_buf-macros.h
new file mode 100644
index 0000000000..5a390c7662
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/csky/jmp_buf-macros.h
@@ -0,0 +1,6 @@
+#define JMP_BUF_SIZE 268
+#define SIGJMP_BUF_SIZE 268
+#define JMP_BUF_ALIGN 4
+#define SIGJMP_BUF_ALIGN 4
+#define MASK_WAS_SAVED_OFFSET 136
+#define SAVED_MASK_OFFSET 140
diff --git a/sysdeps/unix/sysv/linux/csky/kernel-features.h b/sysdeps/unix/sysv/linux/csky/kernel-features.h
new file mode 100644
index 0000000000..8ef73930bd
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/csky/kernel-features.h
@@ -0,0 +1,29 @@
+/* Set flags signalling availability of kernel features based on given
+ kernel version number.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include_next <kernel-features.h>
+
+/* fadvise64_64 reorganize the syscall arguments. */
+#define __ASSUME_FADVISE64_64_6ARG 1
+
+/* Define this if your 32-bit syscall API requires 64-bit register
+ pairs to start with an even-number register. */
+#ifdef __CSKYABIV1__
+# define __ASSUME_ALIGNED_REGISTER_PAIRS 1
+#endif
diff --git a/sysdeps/unix/sysv/linux/csky/ld.abilist b/sysdeps/unix/sysv/linux/csky/ld.abilist
new file mode 100644
index 0000000000..71576160ed
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/csky/ld.abilist
@@ -0,0 +1,9 @@
+GLIBC_2.29 __libc_stack_end D 0x4
+GLIBC_2.29 __stack_chk_guard D 0x4
+GLIBC_2.29 __tls_get_addr F
+GLIBC_2.29 _dl_mcount F
+GLIBC_2.29 _r_debug D 0x14
+GLIBC_2.29 calloc F
+GLIBC_2.29 free F
+GLIBC_2.29 malloc F
+GLIBC_2.29 realloc F
diff --git a/sysdeps/unix/sysv/linux/csky/ldconfig.h b/sysdeps/unix/sysv/linux/csky/ldconfig.h
new file mode 100644
index 0000000000..c221738aa1
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/csky/ldconfig.h
@@ -0,0 +1,34 @@
+/* ldconfig default paths and libraries. Linux/C-SKY version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <sysdeps/generic/ldconfig.h>
+
+#define LD_SO_PREFIX "/lib/ld-linux-"
+#define LD_SO_SUFFIX ".so.1"
+
+#ifdef __CSKY_HARD_FLOAT__
+# define LD_SO_ABI "cskyv2-hf"
+#else
+# define LD_SO_ABI "cskyv2"
+#endif
+
+#define SYSDEP_KNOWN_INTERPRETER_NAMES \
+ { LD_SO_PREFIX LD_SO_ABI LD_SO_SUFFIX, FLAG_ELF_LIBC6 },
+#define SYSDEP_KNOWN_LIBRARY_NAMES \
+ { "libc.so.6", FLAG_ELF_LIBC6 }, \
+ { "libm.so.6", FLAG_ELF_LIBC6 },
diff --git a/sysdeps/unix/sysv/linux/csky/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/csky/libBrokenLocale.abilist
new file mode 100644
index 0000000000..96b4163a25
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/csky/libBrokenLocale.abilist
@@ -0,0 +1 @@
+GLIBC_2.29 __ctype_get_mb_cur_max F
diff --git a/sysdeps/unix/sysv/linux/csky/libanl.abilist b/sysdeps/unix/sysv/linux/csky/libanl.abilist
new file mode 100644
index 0000000000..416a6f8ddb
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/csky/libanl.abilist
@@ -0,0 +1,4 @@
+GLIBC_2.29 gai_cancel F
+GLIBC_2.29 gai_error F
+GLIBC_2.29 gai_suspend F
+GLIBC_2.29 getaddrinfo_a F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
new file mode 100644
index 0000000000..9b3cee65bb
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -0,0 +1,2091 @@
+GLIBC_2.29 _Exit F
+GLIBC_2.29 _IO_2_1_stderr_ D 0x98
+GLIBC_2.29 _IO_2_1_stdin_ D 0x98
+GLIBC_2.29 _IO_2_1_stdout_ D 0x98
+GLIBC_2.29 _IO_adjust_column F
+GLIBC_2.29 _IO_adjust_wcolumn F
+GLIBC_2.29 _IO_default_doallocate F
+GLIBC_2.29 _IO_default_finish F
+GLIBC_2.29 _IO_default_pbackfail F
+GLIBC_2.29 _IO_default_uflow F
+GLIBC_2.29 _IO_default_xsgetn F
+GLIBC_2.29 _IO_default_xsputn F
+GLIBC_2.29 _IO_do_write F
+GLIBC_2.29 _IO_doallocbuf F
+GLIBC_2.29 _IO_fclose F
+GLIBC_2.29 _IO_fdopen F
+GLIBC_2.29 _IO_feof F
+GLIBC_2.29 _IO_ferror F
+GLIBC_2.29 _IO_fflush F
+GLIBC_2.29 _IO_fgetpos F
+GLIBC_2.29 _IO_fgetpos64 F
+GLIBC_2.29 _IO_fgets F
+GLIBC_2.29 _IO_file_attach F
+GLIBC_2.29 _IO_file_close F
+GLIBC_2.29 _IO_file_close_it F
+GLIBC_2.29 _IO_file_doallocate F
+GLIBC_2.29 _IO_file_finish F
+GLIBC_2.29 _IO_file_fopen F
+GLIBC_2.29 _IO_file_init F
+GLIBC_2.29 _IO_file_jumps D 0x54
+GLIBC_2.29 _IO_file_open F
+GLIBC_2.29 _IO_file_overflow F
+GLIBC_2.29 _IO_file_read F
+GLIBC_2.29 _IO_file_seek F
+GLIBC_2.29 _IO_file_seekoff F
+GLIBC_2.29 _IO_file_setbuf F
+GLIBC_2.29 _IO_file_stat F
+GLIBC_2.29 _IO_file_sync F
+GLIBC_2.29 _IO_file_underflow F
+GLIBC_2.29 _IO_file_write F
+GLIBC_2.29 _IO_file_xsputn F
+GLIBC_2.29 _IO_flockfile F
+GLIBC_2.29 _IO_flush_all F
+GLIBC_2.29 _IO_flush_all_linebuffered F
+GLIBC_2.29 _IO_fopen F
+GLIBC_2.29 _IO_fprintf F
+GLIBC_2.29 _IO_fputs F
+GLIBC_2.29 _IO_fread F
+GLIBC_2.29 _IO_free_backup_area F
+GLIBC_2.29 _IO_free_wbackup_area F
+GLIBC_2.29 _IO_fsetpos F
+GLIBC_2.29 _IO_fsetpos64 F
+GLIBC_2.29 _IO_ftell F
+GLIBC_2.29 _IO_ftrylockfile F
+GLIBC_2.29 _IO_funlockfile F
+GLIBC_2.29 _IO_fwrite F
+GLIBC_2.29 _IO_getc F
+GLIBC_2.29 _IO_getline F
+GLIBC_2.29 _IO_getline_info F
+GLIBC_2.29 _IO_gets F
+GLIBC_2.29 _IO_init F
+GLIBC_2.29 _IO_init_marker F
+GLIBC_2.29 _IO_init_wmarker F
+GLIBC_2.29 _IO_iter_begin F
+GLIBC_2.29 _IO_iter_end F
+GLIBC_2.29 _IO_iter_file F
+GLIBC_2.29 _IO_iter_next F
+GLIBC_2.29 _IO_least_wmarker F
+GLIBC_2.29 _IO_link_in F
+GLIBC_2.29 _IO_list_all D 0x4
+GLIBC_2.29 _IO_list_lock F
+GLIBC_2.29 _IO_list_resetlock F
+GLIBC_2.29 _IO_list_unlock F
+GLIBC_2.29 _IO_marker_delta F
+GLIBC_2.29 _IO_marker_difference F
+GLIBC_2.29 _IO_padn F
+GLIBC_2.29 _IO_peekc_locked F
+GLIBC_2.29 _IO_popen F
+GLIBC_2.29 _IO_printf F
+GLIBC_2.29 _IO_proc_close F
+GLIBC_2.29 _IO_proc_open F
+GLIBC_2.29 _IO_putc F
+GLIBC_2.29 _IO_puts F
+GLIBC_2.29 _IO_remove_marker F
+GLIBC_2.29 _IO_seekmark F
+GLIBC_2.29 _IO_seekoff F
+GLIBC_2.29 _IO_seekpos F
+GLIBC_2.29 _IO_seekwmark F
+GLIBC_2.29 _IO_setb F
+GLIBC_2.29 _IO_setbuffer F
+GLIBC_2.29 _IO_setvbuf F
+GLIBC_2.29 _IO_sgetn F
+GLIBC_2.29 _IO_sprintf F
+GLIBC_2.29 _IO_sputbackc F
+GLIBC_2.29 _IO_sputbackwc F
+GLIBC_2.29 _IO_sscanf F
+GLIBC_2.29 _IO_str_init_readonly F
+GLIBC_2.29 _IO_str_init_static F
+GLIBC_2.29 _IO_str_overflow F
+GLIBC_2.29 _IO_str_pbackfail F
+GLIBC_2.29 _IO_str_seekoff F
+GLIBC_2.29 _IO_str_underflow F
+GLIBC_2.29 _IO_sungetc F
+GLIBC_2.29 _IO_sungetwc F
+GLIBC_2.29 _IO_switch_to_get_mode F
+GLIBC_2.29 _IO_switch_to_main_wget_area F
+GLIBC_2.29 _IO_switch_to_wbackup_area F
+GLIBC_2.29 _IO_switch_to_wget_mode F
+GLIBC_2.29 _IO_un_link F
+GLIBC_2.29 _IO_ungetc F
+GLIBC_2.29 _IO_unsave_markers F
+GLIBC_2.29 _IO_unsave_wmarkers F
+GLIBC_2.29 _IO_vfprintf F
+GLIBC_2.29 _IO_vsprintf F
+GLIBC_2.29 _IO_wdefault_doallocate F
+GLIBC_2.29 _IO_wdefault_finish F
+GLIBC_2.29 _IO_wdefault_pbackfail F
+GLIBC_2.29 _IO_wdefault_uflow F
+GLIBC_2.29 _IO_wdefault_xsgetn F
+GLIBC_2.29 _IO_wdefault_xsputn F
+GLIBC_2.29 _IO_wdo_write F
+GLIBC_2.29 _IO_wdoallocbuf F
+GLIBC_2.29 _IO_wfile_jumps D 0x54
+GLIBC_2.29 _IO_wfile_overflow F
+GLIBC_2.29 _IO_wfile_seekoff F
+GLIBC_2.29 _IO_wfile_sync F
+GLIBC_2.29 _IO_wfile_underflow F
+GLIBC_2.29 _IO_wfile_xsputn F
+GLIBC_2.29 _IO_wmarker_delta F
+GLIBC_2.29 _IO_wsetb F
+GLIBC_2.29 ___brk_addr D 0x4
+GLIBC_2.29 __adjtimex F
+GLIBC_2.29 __after_morecore_hook D 0x4
+GLIBC_2.29 __argz_count F
+GLIBC_2.29 __argz_next F
+GLIBC_2.29 __argz_stringify F
+GLIBC_2.29 __asprintf F
+GLIBC_2.29 __asprintf_chk F
+GLIBC_2.29 __assert F
+GLIBC_2.29 __assert_fail F
+GLIBC_2.29 __assert_perror_fail F
+GLIBC_2.29 __backtrace F
+GLIBC_2.29 __backtrace_symbols F
+GLIBC_2.29 __backtrace_symbols_fd F
+GLIBC_2.29 __bsd_getpgrp F
+GLIBC_2.29 __bzero F
+GLIBC_2.29 __check_rhosts_file D 0x4
+GLIBC_2.29 __chk_fail F
+GLIBC_2.29 __clone F
+GLIBC_2.29 __close F
+GLIBC_2.29 __cmsg_nxthdr F
+GLIBC_2.29 __confstr_chk F
+GLIBC_2.29 __connect F
+GLIBC_2.29 __ctype_b_loc F
+GLIBC_2.29 __ctype_get_mb_cur_max F
+GLIBC_2.29 __ctype_tolower_loc F
+GLIBC_2.29 __ctype_toupper_loc F
+GLIBC_2.29 __curbrk D 0x4
+GLIBC_2.29 __cxa_at_quick_exit F
+GLIBC_2.29 __cxa_atexit F
+GLIBC_2.29 __cxa_finalize F
+GLIBC_2.29 __cxa_thread_atexit_impl F
+GLIBC_2.29 __cyg_profile_func_enter F
+GLIBC_2.29 __cyg_profile_func_exit F
+GLIBC_2.29 __daylight D 0x4
+GLIBC_2.29 __dcgettext F
+GLIBC_2.29 __default_morecore F
+GLIBC_2.29 __dgettext F
+GLIBC_2.29 __dprintf_chk F
+GLIBC_2.29 __dup2 F
+GLIBC_2.29 __duplocale F
+GLIBC_2.29 __endmntent F
+GLIBC_2.29 __environ D 0x4
+GLIBC_2.29 __errno_location F
+GLIBC_2.29 __explicit_bzero_chk F
+GLIBC_2.29 __fbufsize F
+GLIBC_2.29 __fcntl F
+GLIBC_2.29 __fdelt_chk F
+GLIBC_2.29 __fdelt_warn F
+GLIBC_2.29 __ffs F
+GLIBC_2.29 __fgets_chk F
+GLIBC_2.29 __fgets_unlocked_chk F
+GLIBC_2.29 __fgetws_chk F
+GLIBC_2.29 __fgetws_unlocked_chk F
+GLIBC_2.29 __finite F
+GLIBC_2.29 __finitef F
+GLIBC_2.29 __flbf F
+GLIBC_2.29 __fork F
+GLIBC_2.29 __fpending F
+GLIBC_2.29 __fprintf_chk F
+GLIBC_2.29 __fpu_control D 0x4
+GLIBC_2.29 __fpurge F
+GLIBC_2.29 __fread_chk F
+GLIBC_2.29 __fread_unlocked_chk F
+GLIBC_2.29 __freadable F
+GLIBC_2.29 __freading F
+GLIBC_2.29 __free_hook D 0x4
+GLIBC_2.29 __freelocale F
+GLIBC_2.29 __fsetlocking F
+GLIBC_2.29 __fwprintf_chk F
+GLIBC_2.29 __fwritable F
+GLIBC_2.29 __fwriting F
+GLIBC_2.29 __fxstat F
+GLIBC_2.29 __fxstat64 F
+GLIBC_2.29 __fxstatat F
+GLIBC_2.29 __fxstatat64 F
+GLIBC_2.29 __getauxval F
+GLIBC_2.29 __getcwd_chk F
+GLIBC_2.29 __getdelim F
+GLIBC_2.29 __getdomainname_chk F
+GLIBC_2.29 __getgroups_chk F
+GLIBC_2.29 __gethostname_chk F
+GLIBC_2.29 __getlogin_r_chk F
+GLIBC_2.29 __getmntent_r F
+GLIBC_2.29 __getpagesize F
+GLIBC_2.29 __getpgid F
+GLIBC_2.29 __getpid F
+GLIBC_2.29 __gets_chk F
+GLIBC_2.29 __gettimeofday F
+GLIBC_2.29 __getwd_chk F
+GLIBC_2.29 __gmtime_r F
+GLIBC_2.29 __h_errno_location F
+GLIBC_2.29 __isalnum_l F
+GLIBC_2.29 __isalpha_l F
+GLIBC_2.29 __isascii_l F
+GLIBC_2.29 __isblank_l F
+GLIBC_2.29 __iscntrl_l F
+GLIBC_2.29 __isctype F
+GLIBC_2.29 __isdigit_l F
+GLIBC_2.29 __isgraph_l F
+GLIBC_2.29 __isinf F
+GLIBC_2.29 __isinff F
+GLIBC_2.29 __islower_l F
+GLIBC_2.29 __isnan F
+GLIBC_2.29 __isnanf F
+GLIBC_2.29 __isoc99_fscanf F
+GLIBC_2.29 __isoc99_fwscanf F
+GLIBC_2.29 __isoc99_scanf F
+GLIBC_2.29 __isoc99_sscanf F
+GLIBC_2.29 __isoc99_swscanf F
+GLIBC_2.29 __isoc99_vfscanf F
+GLIBC_2.29 __isoc99_vfwscanf F
+GLIBC_2.29 __isoc99_vscanf F
+GLIBC_2.29 __isoc99_vsscanf F
+GLIBC_2.29 __isoc99_vswscanf F
+GLIBC_2.29 __isoc99_vwscanf F
+GLIBC_2.29 __isoc99_wscanf F
+GLIBC_2.29 __isprint_l F
+GLIBC_2.29 __ispunct_l F
+GLIBC_2.29 __isspace_l F
+GLIBC_2.29 __isupper_l F
+GLIBC_2.29 __iswalnum_l F
+GLIBC_2.29 __iswalpha_l F
+GLIBC_2.29 __iswblank_l F
+GLIBC_2.29 __iswcntrl_l F
+GLIBC_2.29 __iswctype F
+GLIBC_2.29 __iswctype_l F
+GLIBC_2.29 __iswdigit_l F
+GLIBC_2.29 __iswgraph_l F
+GLIBC_2.29 __iswlower_l F
+GLIBC_2.29 __iswprint_l F
+GLIBC_2.29 __iswpunct_l F
+GLIBC_2.29 __iswspace_l F
+GLIBC_2.29 __iswupper_l F
+GLIBC_2.29 __iswxdigit_l F
+GLIBC_2.29 __isxdigit_l F
+GLIBC_2.29 __ivaliduser F
+GLIBC_2.29 __key_decryptsession_pk_LOCAL D 0x4
+GLIBC_2.29 __key_encryptsession_pk_LOCAL D 0x4
+GLIBC_2.29 __key_gendes_LOCAL D 0x4
+GLIBC_2.29 __libc_allocate_rtsig F
+GLIBC_2.29 __libc_calloc F
+GLIBC_2.29 __libc_current_sigrtmax F
+GLIBC_2.29 __libc_current_sigrtmin F
+GLIBC_2.29 __libc_free F
+GLIBC_2.29 __libc_freeres F
+GLIBC_2.29 __libc_init_first F
+GLIBC_2.29 __libc_mallinfo F
+GLIBC_2.29 __libc_malloc F
+GLIBC_2.29 __libc_mallopt F
+GLIBC_2.29 __libc_memalign F
+GLIBC_2.29 __libc_pvalloc F
+GLIBC_2.29 __libc_realloc F
+GLIBC_2.29 __libc_sa_len F
+GLIBC_2.29 __libc_start_main F
+GLIBC_2.29 __libc_valloc F
+GLIBC_2.29 __longjmp_chk F
+GLIBC_2.29 __lseek F
+GLIBC_2.29 __lxstat F
+GLIBC_2.29 __lxstat64 F
+GLIBC_2.29 __malloc_hook D 0x4
+GLIBC_2.29 __mbrlen F
+GLIBC_2.29 __mbrtowc F
+GLIBC_2.29 __mbsnrtowcs_chk F
+GLIBC_2.29 __mbsrtowcs_chk F
+GLIBC_2.29 __mbstowcs_chk F
+GLIBC_2.29 __memalign_hook D 0x4
+GLIBC_2.29 __memcpy_chk F
+GLIBC_2.29 __memmove_chk F
+GLIBC_2.29 __mempcpy F
+GLIBC_2.29 __mempcpy_chk F
+GLIBC_2.29 __memset_chk F
+GLIBC_2.29 __monstartup F
+GLIBC_2.29 __morecore D 0x4
+GLIBC_2.29 __nanosleep F
+GLIBC_2.29 __newlocale F
+GLIBC_2.29 __nl_langinfo_l F
+GLIBC_2.29 __nss_configure_lookup F
+GLIBC_2.29 __nss_database_lookup F
+GLIBC_2.29 __nss_hostname_digits_dots F
+GLIBC_2.29 __nss_next F
+GLIBC_2.29 __obstack_printf_chk F
+GLIBC_2.29 __obstack_vprintf_chk F
+GLIBC_2.29 __open F
+GLIBC_2.29 __open64 F
+GLIBC_2.29 __open64_2 F
+GLIBC_2.29 __open_2 F
+GLIBC_2.29 __openat64_2 F
+GLIBC_2.29 __openat_2 F
+GLIBC_2.29 __overflow F
+GLIBC_2.29 __pipe F
+GLIBC_2.29 __poll F
+GLIBC_2.29 __poll_chk F
+GLIBC_2.29 __posix_getopt F
+GLIBC_2.29 __ppoll_chk F
+GLIBC_2.29 __pread64 F
+GLIBC_2.29 __pread64_chk F
+GLIBC_2.29 __pread_chk F
+GLIBC_2.29 __printf_chk F
+GLIBC_2.29 __printf_fp F
+GLIBC_2.29 __profile_frequency F
+GLIBC_2.29 __progname D 0x4
+GLIBC_2.29 __progname_full D 0x4
+GLIBC_2.29 __ptsname_r_chk F
+GLIBC_2.29 __pwrite64 F
+GLIBC_2.29 __rawmemchr F
+GLIBC_2.29 __rcmd_errstr D 0x4
+GLIBC_2.29 __read F
+GLIBC_2.29 __read_chk F
+GLIBC_2.29 __readlink_chk F
+GLIBC_2.29 __readlinkat_chk F
+GLIBC_2.29 __realloc_hook D 0x4
+GLIBC_2.29 __realpath_chk F
+GLIBC_2.29 __recv_chk F
+GLIBC_2.29 __recvfrom_chk F
+GLIBC_2.29 __register_atfork F
+GLIBC_2.29 __res_init F
+GLIBC_2.29 __res_nclose F
+GLIBC_2.29 __res_ninit F
+GLIBC_2.29 __res_randomid F
+GLIBC_2.29 __res_state F
+GLIBC_2.29 __rpc_thread_createerr F
+GLIBC_2.29 __rpc_thread_svc_fdset F
+GLIBC_2.29 __rpc_thread_svc_max_pollfd F
+GLIBC_2.29 __rpc_thread_svc_pollfd F
+GLIBC_2.29 __sbrk F
+GLIBC_2.29 __sched_cpualloc F
+GLIBC_2.29 __sched_cpucount F
+GLIBC_2.29 __sched_cpufree F
+GLIBC_2.29 __sched_get_priority_max F
+GLIBC_2.29 __sched_get_priority_min F
+GLIBC_2.29 __sched_getparam F
+GLIBC_2.29 __sched_getscheduler F
+GLIBC_2.29 __sched_setscheduler F
+GLIBC_2.29 __sched_yield F
+GLIBC_2.29 __select F
+GLIBC_2.29 __send F
+GLIBC_2.29 __setmntent F
+GLIBC_2.29 __setpgid F
+GLIBC_2.29 __sigaction F
+GLIBC_2.29 __signbit F
+GLIBC_2.29 __signbitf F
+GLIBC_2.29 __sigpause F
+GLIBC_2.29 __sigsetjmp F
+GLIBC_2.29 __sigsuspend F
+GLIBC_2.29 __snprintf_chk F
+GLIBC_2.29 __sprintf_chk F
+GLIBC_2.29 __stack_chk_fail F
+GLIBC_2.29 __statfs F
+GLIBC_2.29 __stpcpy F
+GLIBC_2.29 __stpcpy_chk F
+GLIBC_2.29 __stpncpy F
+GLIBC_2.29 __stpncpy_chk F
+GLIBC_2.29 __strcasecmp F
+GLIBC_2.29 __strcasecmp_l F
+GLIBC_2.29 __strcasestr F
+GLIBC_2.29 __strcat_chk F
+GLIBC_2.29 __strcoll_l F
+GLIBC_2.29 __strcpy_chk F
+GLIBC_2.29 __strdup F
+GLIBC_2.29 __strerror_r F
+GLIBC_2.29 __strfmon_l F
+GLIBC_2.29 __strftime_l F
+GLIBC_2.29 __strncasecmp_l F
+GLIBC_2.29 __strncat_chk F
+GLIBC_2.29 __strncpy_chk F
+GLIBC_2.29 __strndup F
+GLIBC_2.29 __strsep_g F
+GLIBC_2.29 __strtod_internal F
+GLIBC_2.29 __strtod_l F
+GLIBC_2.29 __strtof_internal F
+GLIBC_2.29 __strtof_l F
+GLIBC_2.29 __strtok_r F
+GLIBC_2.29 __strtol_internal F
+GLIBC_2.29 __strtol_l F
+GLIBC_2.29 __strtold_internal F
+GLIBC_2.29 __strtold_l F
+GLIBC_2.29 __strtoll_internal F
+GLIBC_2.29 __strtoll_l F
+GLIBC_2.29 __strtoul_internal F
+GLIBC_2.29 __strtoul_l F
+GLIBC_2.29 __strtoull_internal F
+GLIBC_2.29 __strtoull_l F
+GLIBC_2.29 __strverscmp F
+GLIBC_2.29 __strxfrm_l F
+GLIBC_2.29 __swprintf_chk F
+GLIBC_2.29 __sysconf F
+GLIBC_2.29 __syslog_chk F
+GLIBC_2.29 __sysv_signal F
+GLIBC_2.29 __timezone D 0x4
+GLIBC_2.29 __toascii_l F
+GLIBC_2.29 __tolower_l F
+GLIBC_2.29 __toupper_l F
+GLIBC_2.29 __towctrans F
+GLIBC_2.29 __towctrans_l F
+GLIBC_2.29 __towlower_l F
+GLIBC_2.29 __towupper_l F
+GLIBC_2.29 __ttyname_r_chk F
+GLIBC_2.29 __tzname D 0x8
+GLIBC_2.29 __uflow F
+GLIBC_2.29 __underflow F
+GLIBC_2.29 __uselocale F
+GLIBC_2.29 __vasprintf_chk F
+GLIBC_2.29 __vdprintf_chk F
+GLIBC_2.29 __vfork F
+GLIBC_2.29 __vfprintf_chk F
+GLIBC_2.29 __vfscanf F
+GLIBC_2.29 __vfwprintf_chk F
+GLIBC_2.29 __vprintf_chk F
+GLIBC_2.29 __vsnprintf F
+GLIBC_2.29 __vsnprintf_chk F
+GLIBC_2.29 __vsprintf_chk F
+GLIBC_2.29 __vsscanf F
+GLIBC_2.29 __vswprintf_chk F
+GLIBC_2.29 __vsyslog_chk F
+GLIBC_2.29 __vwprintf_chk F
+GLIBC_2.29 __wait F
+GLIBC_2.29 __waitpid F
+GLIBC_2.29 __wcpcpy_chk F
+GLIBC_2.29 __wcpncpy_chk F
+GLIBC_2.29 __wcrtomb_chk F
+GLIBC_2.29 __wcscasecmp_l F
+GLIBC_2.29 __wcscat_chk F
+GLIBC_2.29 __wcscoll_l F
+GLIBC_2.29 __wcscpy_chk F
+GLIBC_2.29 __wcsftime_l F
+GLIBC_2.29 __wcsncasecmp_l F
+GLIBC_2.29 __wcsncat_chk F
+GLIBC_2.29 __wcsncpy_chk F
+GLIBC_2.29 __wcsnrtombs_chk F
+GLIBC_2.29 __wcsrtombs_chk F
+GLIBC_2.29 __wcstod_internal F
+GLIBC_2.29 __wcstod_l F
+GLIBC_2.29 __wcstof_internal F
+GLIBC_2.29 __wcstof_l F
+GLIBC_2.29 __wcstol_internal F
+GLIBC_2.29 __wcstol_l F
+GLIBC_2.29 __wcstold_internal F
+GLIBC_2.29 __wcstold_l F
+GLIBC_2.29 __wcstoll_internal F
+GLIBC_2.29 __wcstoll_l F
+GLIBC_2.29 __wcstombs_chk F
+GLIBC_2.29 __wcstoul_internal F
+GLIBC_2.29 __wcstoul_l F
+GLIBC_2.29 __wcstoull_internal F
+GLIBC_2.29 __wcstoull_l F
+GLIBC_2.29 __wcsxfrm_l F
+GLIBC_2.29 __wctomb_chk F
+GLIBC_2.29 __wctrans_l F
+GLIBC_2.29 __wctype_l F
+GLIBC_2.29 __wmemcpy_chk F
+GLIBC_2.29 __wmemmove_chk F
+GLIBC_2.29 __wmempcpy_chk F
+GLIBC_2.29 __wmemset_chk F
+GLIBC_2.29 __woverflow F
+GLIBC_2.29 __wprintf_chk F
+GLIBC_2.29 __write F
+GLIBC_2.29 __wuflow F
+GLIBC_2.29 __wunderflow F
+GLIBC_2.29 __xmknod F
+GLIBC_2.29 __xmknodat F
+GLIBC_2.29 __xpg_basename F
+GLIBC_2.29 __xpg_sigpause F
+GLIBC_2.29 __xpg_strerror_r F
+GLIBC_2.29 __xstat F
+GLIBC_2.29 __xstat64 F
+GLIBC_2.29 _authenticate F
+GLIBC_2.29 _dl_mcount_wrapper F
+GLIBC_2.29 _dl_mcount_wrapper_check F
+GLIBC_2.29 _environ D 0x4
+GLIBC_2.29 _exit F
+GLIBC_2.29 _flushlbf F
+GLIBC_2.29 _libc_intl_domainname D 0x5
+GLIBC_2.29 _longjmp F
+GLIBC_2.29 _mcleanup F
+GLIBC_2.29 _mcount F
+GLIBC_2.29 _nl_default_dirname D 0x12
+GLIBC_2.29 _nl_domain_bindings D 0x4
+GLIBC_2.29 _nl_msg_cat_cntr D 0x4
+GLIBC_2.29 _null_auth D 0xc
+GLIBC_2.29 _obstack_allocated_p F
+GLIBC_2.29 _obstack_begin F
+GLIBC_2.29 _obstack_begin_1 F
+GLIBC_2.29 _obstack_free F
+GLIBC_2.29 _obstack_memory_used F
+GLIBC_2.29 _obstack_newchunk F
+GLIBC_2.29 _res D 0x200
+GLIBC_2.29 _res_hconf D 0x30
+GLIBC_2.29 _rpc_dtablesize F
+GLIBC_2.29 _seterr_reply F
+GLIBC_2.29 _setjmp F
+GLIBC_2.29 _sys_errlist D 0x21c
+GLIBC_2.29 _sys_nerr D 0x4
+GLIBC_2.29 _sys_siglist D 0x104
+GLIBC_2.29 _tolower F
+GLIBC_2.29 _toupper F
+GLIBC_2.29 a64l F
+GLIBC_2.29 abort F
+GLIBC_2.29 abs F
+GLIBC_2.29 accept F
+GLIBC_2.29 accept4 F
+GLIBC_2.29 access F
+GLIBC_2.29 acct F
+GLIBC_2.29 addmntent F
+GLIBC_2.29 addseverity F
+GLIBC_2.29 adjtime F
+GLIBC_2.29 adjtimex F
+GLIBC_2.29 alarm F
+GLIBC_2.29 aligned_alloc F
+GLIBC_2.29 alphasort F
+GLIBC_2.29 alphasort64 F
+GLIBC_2.29 argp_err_exit_status D 0x4
+GLIBC_2.29 argp_error F
+GLIBC_2.29 argp_failure F
+GLIBC_2.29 argp_help F
+GLIBC_2.29 argp_parse F
+GLIBC_2.29 argp_program_bug_address D 0x4
+GLIBC_2.29 argp_program_version D 0x4
+GLIBC_2.29 argp_program_version_hook D 0x4
+GLIBC_2.29 argp_state_help F
+GLIBC_2.29 argp_usage F
+GLIBC_2.29 argz_add F
+GLIBC_2.29 argz_add_sep F
+GLIBC_2.29 argz_append F
+GLIBC_2.29 argz_count F
+GLIBC_2.29 argz_create F
+GLIBC_2.29 argz_create_sep F
+GLIBC_2.29 argz_delete F
+GLIBC_2.29 argz_extract F
+GLIBC_2.29 argz_insert F
+GLIBC_2.29 argz_next F
+GLIBC_2.29 argz_replace F
+GLIBC_2.29 argz_stringify F
+GLIBC_2.29 asctime F
+GLIBC_2.29 asctime_r F
+GLIBC_2.29 asprintf F
+GLIBC_2.29 atof F
+GLIBC_2.29 atoi F
+GLIBC_2.29 atol F
+GLIBC_2.29 atoll F
+GLIBC_2.29 authdes_create F
+GLIBC_2.29 authdes_getucred F
+GLIBC_2.29 authdes_pk_create F
+GLIBC_2.29 authnone_create F
+GLIBC_2.29 authunix_create F
+GLIBC_2.29 authunix_create_default F
+GLIBC_2.29 backtrace F
+GLIBC_2.29 backtrace_symbols F
+GLIBC_2.29 backtrace_symbols_fd F
+GLIBC_2.29 basename F
+GLIBC_2.29 bcmp F
+GLIBC_2.29 bcopy F
+GLIBC_2.29 bind F
+GLIBC_2.29 bind_textdomain_codeset F
+GLIBC_2.29 bindresvport F
+GLIBC_2.29 bindtextdomain F
+GLIBC_2.29 brk F
+GLIBC_2.29 bsd_signal F
+GLIBC_2.29 bsearch F
+GLIBC_2.29 btowc F
+GLIBC_2.29 bzero F
+GLIBC_2.29 c16rtomb F
+GLIBC_2.29 c32rtomb F
+GLIBC_2.29 cacheflush F
+GLIBC_2.29 calloc F
+GLIBC_2.29 callrpc F
+GLIBC_2.29 canonicalize_file_name F
+GLIBC_2.29 capget F
+GLIBC_2.29 capset F
+GLIBC_2.29 catclose F
+GLIBC_2.29 catgets F
+GLIBC_2.29 catopen F
+GLIBC_2.29 cbc_crypt F
+GLIBC_2.29 cfgetispeed F
+GLIBC_2.29 cfgetospeed F
+GLIBC_2.29 cfmakeraw F
+GLIBC_2.29 cfsetispeed F
+GLIBC_2.29 cfsetospeed F
+GLIBC_2.29 cfsetspeed F
+GLIBC_2.29 chdir F
+GLIBC_2.29 chflags F
+GLIBC_2.29 chmod F
+GLIBC_2.29 chown F
+GLIBC_2.29 chroot F
+GLIBC_2.29 clearenv F
+GLIBC_2.29 clearerr F
+GLIBC_2.29 clearerr_unlocked F
+GLIBC_2.29 clnt_broadcast F
+GLIBC_2.29 clnt_create F
+GLIBC_2.29 clnt_pcreateerror F
+GLIBC_2.29 clnt_perrno F
+GLIBC_2.29 clnt_perror F
+GLIBC_2.29 clnt_spcreateerror F
+GLIBC_2.29 clnt_sperrno F
+GLIBC_2.29 clnt_sperror F
+GLIBC_2.29 clntraw_create F
+GLIBC_2.29 clnttcp_create F
+GLIBC_2.29 clntudp_bufcreate F
+GLIBC_2.29 clntudp_create F
+GLIBC_2.29 clntunix_create F
+GLIBC_2.29 clock F
+GLIBC_2.29 clock_adjtime F
+GLIBC_2.29 clock_getcpuclockid F
+GLIBC_2.29 clock_getres F
+GLIBC_2.29 clock_gettime F
+GLIBC_2.29 clock_nanosleep F
+GLIBC_2.29 clock_settime F
+GLIBC_2.29 clone F
+GLIBC_2.29 close F
+GLIBC_2.29 closedir F
+GLIBC_2.29 closelog F
+GLIBC_2.29 confstr F
+GLIBC_2.29 connect F
+GLIBC_2.29 copy_file_range F
+GLIBC_2.29 copysign F
+GLIBC_2.29 copysignf F
+GLIBC_2.29 copysignl F
+GLIBC_2.29 creat F
+GLIBC_2.29 creat64 F
+GLIBC_2.29 ctermid F
+GLIBC_2.29 ctime F
+GLIBC_2.29 ctime_r F
+GLIBC_2.29 cuserid F
+GLIBC_2.29 daemon F
+GLIBC_2.29 daylight D 0x4
+GLIBC_2.29 dcgettext F
+GLIBC_2.29 dcngettext F
+GLIBC_2.29 delete_module F
+GLIBC_2.29 des_setparity F
+GLIBC_2.29 dgettext F
+GLIBC_2.29 difftime F
+GLIBC_2.29 dirfd F
+GLIBC_2.29 dirname F
+GLIBC_2.29 div F
+GLIBC_2.29 dl_iterate_phdr F
+GLIBC_2.29 dngettext F
+GLIBC_2.29 dprintf F
+GLIBC_2.29 drand48 F
+GLIBC_2.29 drand48_r F
+GLIBC_2.29 dup F
+GLIBC_2.29 dup2 F
+GLIBC_2.29 dup3 F
+GLIBC_2.29 duplocale F
+GLIBC_2.29 dysize F
+GLIBC_2.29 eaccess F
+GLIBC_2.29 ecb_crypt F
+GLIBC_2.29 ecvt F
+GLIBC_2.29 ecvt_r F
+GLIBC_2.29 endaliasent F
+GLIBC_2.29 endfsent F
+GLIBC_2.29 endgrent F
+GLIBC_2.29 endhostent F
+GLIBC_2.29 endmntent F
+GLIBC_2.29 endnetent F
+GLIBC_2.29 endnetgrent F
+GLIBC_2.29 endprotoent F
+GLIBC_2.29 endpwent F
+GLIBC_2.29 endrpcent F
+GLIBC_2.29 endservent F
+GLIBC_2.29 endsgent F
+GLIBC_2.29 endspent F
+GLIBC_2.29 endttyent F
+GLIBC_2.29 endusershell F
+GLIBC_2.29 endutent F
+GLIBC_2.29 endutxent F
+GLIBC_2.29 environ D 0x4
+GLIBC_2.29 envz_add F
+GLIBC_2.29 envz_entry F
+GLIBC_2.29 envz_get F
+GLIBC_2.29 envz_merge F
+GLIBC_2.29 envz_remove F
+GLIBC_2.29 envz_strip F
+GLIBC_2.29 epoll_create F
+GLIBC_2.29 epoll_create1 F
+GLIBC_2.29 epoll_ctl F
+GLIBC_2.29 epoll_pwait F
+GLIBC_2.29 epoll_wait F
+GLIBC_2.29 erand48 F
+GLIBC_2.29 erand48_r F
+GLIBC_2.29 err F
+GLIBC_2.29 error F
+GLIBC_2.29 error_at_line F
+GLIBC_2.29 error_message_count D 0x4
+GLIBC_2.29 error_one_per_line D 0x4
+GLIBC_2.29 error_print_progname D 0x4
+GLIBC_2.29 errx F
+GLIBC_2.29 ether_aton F
+GLIBC_2.29 ether_aton_r F
+GLIBC_2.29 ether_hostton F
+GLIBC_2.29 ether_line F
+GLIBC_2.29 ether_ntoa F
+GLIBC_2.29 ether_ntoa_r F
+GLIBC_2.29 ether_ntohost F
+GLIBC_2.29 euidaccess F
+GLIBC_2.29 eventfd F
+GLIBC_2.29 eventfd_read F
+GLIBC_2.29 eventfd_write F
+GLIBC_2.29 execl F
+GLIBC_2.29 execle F
+GLIBC_2.29 execlp F
+GLIBC_2.29 execv F
+GLIBC_2.29 execve F
+GLIBC_2.29 execvp F
+GLIBC_2.29 execvpe F
+GLIBC_2.29 exit F
+GLIBC_2.29 explicit_bzero F
+GLIBC_2.29 faccessat F
+GLIBC_2.29 fallocate F
+GLIBC_2.29 fallocate64 F
+GLIBC_2.29 fanotify_init F
+GLIBC_2.29 fanotify_mark F
+GLIBC_2.29 fattach F
+GLIBC_2.29 fchdir F
+GLIBC_2.29 fchflags F
+GLIBC_2.29 fchmod F
+GLIBC_2.29 fchmodat F
+GLIBC_2.29 fchown F
+GLIBC_2.29 fchownat F
+GLIBC_2.29 fclose F
+GLIBC_2.29 fcloseall F
+GLIBC_2.29 fcntl F
+GLIBC_2.29 fcntl64 F
+GLIBC_2.29 fcvt F
+GLIBC_2.29 fcvt_r F
+GLIBC_2.29 fdatasync F
+GLIBC_2.29 fdetach F
+GLIBC_2.29 fdopen F
+GLIBC_2.29 fdopendir F
+GLIBC_2.29 feof F
+GLIBC_2.29 feof_unlocked F
+GLIBC_2.29 ferror F
+GLIBC_2.29 ferror_unlocked F
+GLIBC_2.29 fexecve F
+GLIBC_2.29 fflush F
+GLIBC_2.29 fflush_unlocked F
+GLIBC_2.29 ffs F
+GLIBC_2.29 ffsl F
+GLIBC_2.29 ffsll F
+GLIBC_2.29 fgetc F
+GLIBC_2.29 fgetc_unlocked F
+GLIBC_2.29 fgetgrent F
+GLIBC_2.29 fgetgrent_r F
+GLIBC_2.29 fgetpos F
+GLIBC_2.29 fgetpos64 F
+GLIBC_2.29 fgetpwent F
+GLIBC_2.29 fgetpwent_r F
+GLIBC_2.29 fgets F
+GLIBC_2.29 fgets_unlocked F
+GLIBC_2.29 fgetsgent F
+GLIBC_2.29 fgetsgent_r F
+GLIBC_2.29 fgetspent F
+GLIBC_2.29 fgetspent_r F
+GLIBC_2.29 fgetwc F
+GLIBC_2.29 fgetwc_unlocked F
+GLIBC_2.29 fgetws F
+GLIBC_2.29 fgetws_unlocked F
+GLIBC_2.29 fgetxattr F
+GLIBC_2.29 fileno F
+GLIBC_2.29 fileno_unlocked F
+GLIBC_2.29 finite F
+GLIBC_2.29 finitef F
+GLIBC_2.29 finitel F
+GLIBC_2.29 flistxattr F
+GLIBC_2.29 flock F
+GLIBC_2.29 flockfile F
+GLIBC_2.29 fmemopen F
+GLIBC_2.29 fmtmsg F
+GLIBC_2.29 fnmatch F
+GLIBC_2.29 fopen F
+GLIBC_2.29 fopen64 F
+GLIBC_2.29 fopencookie F
+GLIBC_2.29 fork F
+GLIBC_2.29 fpathconf F
+GLIBC_2.29 fprintf F
+GLIBC_2.29 fputc F
+GLIBC_2.29 fputc_unlocked F
+GLIBC_2.29 fputs F
+GLIBC_2.29 fputs_unlocked F
+GLIBC_2.29 fputwc F
+GLIBC_2.29 fputwc_unlocked F
+GLIBC_2.29 fputws F
+GLIBC_2.29 fputws_unlocked F
+GLIBC_2.29 fread F
+GLIBC_2.29 fread_unlocked F
+GLIBC_2.29 free F
+GLIBC_2.29 freeaddrinfo F
+GLIBC_2.29 freeifaddrs F
+GLIBC_2.29 freelocale F
+GLIBC_2.29 fremovexattr F
+GLIBC_2.29 freopen F
+GLIBC_2.29 freopen64 F
+GLIBC_2.29 frexp F
+GLIBC_2.29 frexpf F
+GLIBC_2.29 frexpl F
+GLIBC_2.29 fscanf F
+GLIBC_2.29 fseek F
+GLIBC_2.29 fseeko F
+GLIBC_2.29 fseeko64 F
+GLIBC_2.29 fsetpos F
+GLIBC_2.29 fsetpos64 F
+GLIBC_2.29 fsetxattr F
+GLIBC_2.29 fstatfs F
+GLIBC_2.29 fstatfs64 F
+GLIBC_2.29 fstatvfs F
+GLIBC_2.29 fstatvfs64 F
+GLIBC_2.29 fsync F
+GLIBC_2.29 ftell F
+GLIBC_2.29 ftello F
+GLIBC_2.29 ftello64 F
+GLIBC_2.29 ftime F
+GLIBC_2.29 ftok F
+GLIBC_2.29 ftruncate F
+GLIBC_2.29 ftruncate64 F
+GLIBC_2.29 ftrylockfile F
+GLIBC_2.29 fts64_children F
+GLIBC_2.29 fts64_close F
+GLIBC_2.29 fts64_open F
+GLIBC_2.29 fts64_read F
+GLIBC_2.29 fts64_set F
+GLIBC_2.29 fts_children F
+GLIBC_2.29 fts_close F
+GLIBC_2.29 fts_open F
+GLIBC_2.29 fts_read F
+GLIBC_2.29 fts_set F
+GLIBC_2.29 ftw F
+GLIBC_2.29 ftw64 F
+GLIBC_2.29 funlockfile F
+GLIBC_2.29 futimens F
+GLIBC_2.29 futimes F
+GLIBC_2.29 futimesat F
+GLIBC_2.29 fwide F
+GLIBC_2.29 fwprintf F
+GLIBC_2.29 fwrite F
+GLIBC_2.29 fwrite_unlocked F
+GLIBC_2.29 fwscanf F
+GLIBC_2.29 gai_strerror F
+GLIBC_2.29 gcvt F
+GLIBC_2.29 get_avphys_pages F
+GLIBC_2.29 get_current_dir_name F
+GLIBC_2.29 get_myaddress F
+GLIBC_2.29 get_nprocs F
+GLIBC_2.29 get_nprocs_conf F
+GLIBC_2.29 get_phys_pages F
+GLIBC_2.29 getaddrinfo F
+GLIBC_2.29 getaliasbyname F
+GLIBC_2.29 getaliasbyname_r F
+GLIBC_2.29 getaliasent F
+GLIBC_2.29 getaliasent_r F
+GLIBC_2.29 getauxval F
+GLIBC_2.29 getc F
+GLIBC_2.29 getc_unlocked F
+GLIBC_2.29 getchar F
+GLIBC_2.29 getchar_unlocked F
+GLIBC_2.29 getcontext F
+GLIBC_2.29 getcpu F
+GLIBC_2.29 getcwd F
+GLIBC_2.29 getdate F
+GLIBC_2.29 getdate_err D 0x4
+GLIBC_2.29 getdate_r F
+GLIBC_2.29 getdelim F
+GLIBC_2.29 getdirentries F
+GLIBC_2.29 getdirentries64 F
+GLIBC_2.29 getdomainname F
+GLIBC_2.29 getdtablesize F
+GLIBC_2.29 getegid F
+GLIBC_2.29 getentropy F
+GLIBC_2.29 getenv F
+GLIBC_2.29 geteuid F
+GLIBC_2.29 getfsent F
+GLIBC_2.29 getfsfile F
+GLIBC_2.29 getfsspec F
+GLIBC_2.29 getgid F
+GLIBC_2.29 getgrent F
+GLIBC_2.29 getgrent_r F
+GLIBC_2.29 getgrgid F
+GLIBC_2.29 getgrgid_r F
+GLIBC_2.29 getgrnam F
+GLIBC_2.29 getgrnam_r F
+GLIBC_2.29 getgrouplist F
+GLIBC_2.29 getgroups F
+GLIBC_2.29 gethostbyaddr F
+GLIBC_2.29 gethostbyaddr_r F
+GLIBC_2.29 gethostbyname F
+GLIBC_2.29 gethostbyname2 F
+GLIBC_2.29 gethostbyname2_r F
+GLIBC_2.29 gethostbyname_r F
+GLIBC_2.29 gethostent F
+GLIBC_2.29 gethostent_r F
+GLIBC_2.29 gethostid F
+GLIBC_2.29 gethostname F
+GLIBC_2.29 getifaddrs F
+GLIBC_2.29 getipv4sourcefilter F
+GLIBC_2.29 getitimer F
+GLIBC_2.29 getline F
+GLIBC_2.29 getloadavg F
+GLIBC_2.29 getlogin F
+GLIBC_2.29 getlogin_r F
+GLIBC_2.29 getmntent F
+GLIBC_2.29 getmntent_r F
+GLIBC_2.29 getmsg F
+GLIBC_2.29 getnameinfo F
+GLIBC_2.29 getnetbyaddr F
+GLIBC_2.29 getnetbyaddr_r F
+GLIBC_2.29 getnetbyname F
+GLIBC_2.29 getnetbyname_r F
+GLIBC_2.29 getnetent F
+GLIBC_2.29 getnetent_r F
+GLIBC_2.29 getnetgrent F
+GLIBC_2.29 getnetgrent_r F
+GLIBC_2.29 getnetname F
+GLIBC_2.29 getopt F
+GLIBC_2.29 getopt_long F
+GLIBC_2.29 getopt_long_only F
+GLIBC_2.29 getpagesize F
+GLIBC_2.29 getpass F
+GLIBC_2.29 getpeername F
+GLIBC_2.29 getpgid F
+GLIBC_2.29 getpgrp F
+GLIBC_2.29 getpid F
+GLIBC_2.29 getpmsg F
+GLIBC_2.29 getppid F
+GLIBC_2.29 getpriority F
+GLIBC_2.29 getprotobyname F
+GLIBC_2.29 getprotobyname_r F
+GLIBC_2.29 getprotobynumber F
+GLIBC_2.29 getprotobynumber_r F
+GLIBC_2.29 getprotoent F
+GLIBC_2.29 getprotoent_r F
+GLIBC_2.29 getpt F
+GLIBC_2.29 getpublickey F
+GLIBC_2.29 getpw F
+GLIBC_2.29 getpwent F
+GLIBC_2.29 getpwent_r F
+GLIBC_2.29 getpwnam F
+GLIBC_2.29 getpwnam_r F
+GLIBC_2.29 getpwuid F
+GLIBC_2.29 getpwuid_r F
+GLIBC_2.29 getrandom F
+GLIBC_2.29 getresgid F
+GLIBC_2.29 getresuid F
+GLIBC_2.29 getrlimit F
+GLIBC_2.29 getrlimit64 F
+GLIBC_2.29 getrpcbyname F
+GLIBC_2.29 getrpcbyname_r F
+GLIBC_2.29 getrpcbynumber F
+GLIBC_2.29 getrpcbynumber_r F
+GLIBC_2.29 getrpcent F
+GLIBC_2.29 getrpcent_r F
+GLIBC_2.29 getrpcport F
+GLIBC_2.29 getrusage F
+GLIBC_2.29 gets F
+GLIBC_2.29 getsecretkey F
+GLIBC_2.29 getservbyname F
+GLIBC_2.29 getservbyname_r F
+GLIBC_2.29 getservbyport F
+GLIBC_2.29 getservbyport_r F
+GLIBC_2.29 getservent F
+GLIBC_2.29 getservent_r F
+GLIBC_2.29 getsgent F
+GLIBC_2.29 getsgent_r F
+GLIBC_2.29 getsgnam F
+GLIBC_2.29 getsgnam_r F
+GLIBC_2.29 getsid F
+GLIBC_2.29 getsockname F
+GLIBC_2.29 getsockopt F
+GLIBC_2.29 getsourcefilter F
+GLIBC_2.29 getspent F
+GLIBC_2.29 getspent_r F
+GLIBC_2.29 getspnam F
+GLIBC_2.29 getspnam_r F
+GLIBC_2.29 getsubopt F
+GLIBC_2.29 gettext F
+GLIBC_2.29 gettimeofday F
+GLIBC_2.29 getttyent F
+GLIBC_2.29 getttynam F
+GLIBC_2.29 getuid F
+GLIBC_2.29 getusershell F
+GLIBC_2.29 getutent F
+GLIBC_2.29 getutent_r F
+GLIBC_2.29 getutid F
+GLIBC_2.29 getutid_r F
+GLIBC_2.29 getutline F
+GLIBC_2.29 getutline_r F
+GLIBC_2.29 getutmp F
+GLIBC_2.29 getutmpx F
+GLIBC_2.29 getutxent F
+GLIBC_2.29 getutxid F
+GLIBC_2.29 getutxline F
+GLIBC_2.29 getw F
+GLIBC_2.29 getwc F
+GLIBC_2.29 getwc_unlocked F
+GLIBC_2.29 getwchar F
+GLIBC_2.29 getwchar_unlocked F
+GLIBC_2.29 getwd F
+GLIBC_2.29 getxattr F
+GLIBC_2.29 glob F
+GLIBC_2.29 glob64 F
+GLIBC_2.29 glob_pattern_p F
+GLIBC_2.29 globfree F
+GLIBC_2.29 globfree64 F
+GLIBC_2.29 gmtime F
+GLIBC_2.29 gmtime_r F
+GLIBC_2.29 gnu_dev_major F
+GLIBC_2.29 gnu_dev_makedev F
+GLIBC_2.29 gnu_dev_minor F
+GLIBC_2.29 gnu_get_libc_release F
+GLIBC_2.29 gnu_get_libc_version F
+GLIBC_2.29 grantpt F
+GLIBC_2.29 group_member F
+GLIBC_2.29 gsignal F
+GLIBC_2.29 gtty F
+GLIBC_2.29 h_errlist D 0x14
+GLIBC_2.29 h_nerr D 0x4
+GLIBC_2.29 hasmntopt F
+GLIBC_2.29 hcreate F
+GLIBC_2.29 hcreate_r F
+GLIBC_2.29 hdestroy F
+GLIBC_2.29 hdestroy_r F
+GLIBC_2.29 herror F
+GLIBC_2.29 host2netname F
+GLIBC_2.29 hsearch F
+GLIBC_2.29 hsearch_r F
+GLIBC_2.29 hstrerror F
+GLIBC_2.29 htonl F
+GLIBC_2.29 htons F
+GLIBC_2.29 iconv F
+GLIBC_2.29 iconv_close F
+GLIBC_2.29 iconv_open F
+GLIBC_2.29 if_freenameindex F
+GLIBC_2.29 if_indextoname F
+GLIBC_2.29 if_nameindex F
+GLIBC_2.29 if_nametoindex F
+GLIBC_2.29 imaxabs F
+GLIBC_2.29 imaxdiv F
+GLIBC_2.29 in6addr_any D 0x10
+GLIBC_2.29 in6addr_loopback D 0x10
+GLIBC_2.29 index F
+GLIBC_2.29 inet6_opt_append F
+GLIBC_2.29 inet6_opt_find F
+GLIBC_2.29 inet6_opt_finish F
+GLIBC_2.29 inet6_opt_get_val F
+GLIBC_2.29 inet6_opt_init F
+GLIBC_2.29 inet6_opt_next F
+GLIBC_2.29 inet6_opt_set_val F
+GLIBC_2.29 inet6_option_alloc F
+GLIBC_2.29 inet6_option_append F
+GLIBC_2.29 inet6_option_find F
+GLIBC_2.29 inet6_option_init F
+GLIBC_2.29 inet6_option_next F
+GLIBC_2.29 inet6_option_space F
+GLIBC_2.29 inet6_rth_add F
+GLIBC_2.29 inet6_rth_getaddr F
+GLIBC_2.29 inet6_rth_init F
+GLIBC_2.29 inet6_rth_reverse F
+GLIBC_2.29 inet6_rth_segments F
+GLIBC_2.29 inet6_rth_space F
+GLIBC_2.29 inet_addr F
+GLIBC_2.29 inet_aton F
+GLIBC_2.29 inet_lnaof F
+GLIBC_2.29 inet_makeaddr F
+GLIBC_2.29 inet_netof F
+GLIBC_2.29 inet_network F
+GLIBC_2.29 inet_nsap_addr F
+GLIBC_2.29 inet_nsap_ntoa F
+GLIBC_2.29 inet_ntoa F
+GLIBC_2.29 inet_ntop F
+GLIBC_2.29 inet_pton F
+GLIBC_2.29 init_module F
+GLIBC_2.29 initgroups F
+GLIBC_2.29 initstate F
+GLIBC_2.29 initstate_r F
+GLIBC_2.29 innetgr F
+GLIBC_2.29 inotify_add_watch F
+GLIBC_2.29 inotify_init F
+GLIBC_2.29 inotify_init1 F
+GLIBC_2.29 inotify_rm_watch F
+GLIBC_2.29 insque F
+GLIBC_2.29 ioctl F
+GLIBC_2.29 iruserok F
+GLIBC_2.29 iruserok_af F
+GLIBC_2.29 isalnum F
+GLIBC_2.29 isalnum_l F
+GLIBC_2.29 isalpha F
+GLIBC_2.29 isalpha_l F
+GLIBC_2.29 isascii F
+GLIBC_2.29 isastream F
+GLIBC_2.29 isatty F
+GLIBC_2.29 isblank F
+GLIBC_2.29 isblank_l F
+GLIBC_2.29 iscntrl F
+GLIBC_2.29 iscntrl_l F
+GLIBC_2.29 isctype F
+GLIBC_2.29 isdigit F
+GLIBC_2.29 isdigit_l F
+GLIBC_2.29 isfdtype F
+GLIBC_2.29 isgraph F
+GLIBC_2.29 isgraph_l F
+GLIBC_2.29 isinf F
+GLIBC_2.29 isinff F
+GLIBC_2.29 isinfl F
+GLIBC_2.29 islower F
+GLIBC_2.29 islower_l F
+GLIBC_2.29 isnan F
+GLIBC_2.29 isnanf F
+GLIBC_2.29 isnanl F
+GLIBC_2.29 isprint F
+GLIBC_2.29 isprint_l F
+GLIBC_2.29 ispunct F
+GLIBC_2.29 ispunct_l F
+GLIBC_2.29 isspace F
+GLIBC_2.29 isspace_l F
+GLIBC_2.29 isupper F
+GLIBC_2.29 isupper_l F
+GLIBC_2.29 iswalnum F
+GLIBC_2.29 iswalnum_l F
+GLIBC_2.29 iswalpha F
+GLIBC_2.29 iswalpha_l F
+GLIBC_2.29 iswblank F
+GLIBC_2.29 iswblank_l F
+GLIBC_2.29 iswcntrl F
+GLIBC_2.29 iswcntrl_l F
+GLIBC_2.29 iswctype F
+GLIBC_2.29 iswctype_l F
+GLIBC_2.29 iswdigit F
+GLIBC_2.29 iswdigit_l F
+GLIBC_2.29 iswgraph F
+GLIBC_2.29 iswgraph_l F
+GLIBC_2.29 iswlower F
+GLIBC_2.29 iswlower_l F
+GLIBC_2.29 iswprint F
+GLIBC_2.29 iswprint_l F
+GLIBC_2.29 iswpunct F
+GLIBC_2.29 iswpunct_l F
+GLIBC_2.29 iswspace F
+GLIBC_2.29 iswspace_l F
+GLIBC_2.29 iswupper F
+GLIBC_2.29 iswupper_l F
+GLIBC_2.29 iswxdigit F
+GLIBC_2.29 iswxdigit_l F
+GLIBC_2.29 isxdigit F
+GLIBC_2.29 isxdigit_l F
+GLIBC_2.29 jrand48 F
+GLIBC_2.29 jrand48_r F
+GLIBC_2.29 key_decryptsession F
+GLIBC_2.29 key_decryptsession_pk F
+GLIBC_2.29 key_encryptsession F
+GLIBC_2.29 key_encryptsession_pk F
+GLIBC_2.29 key_gendes F
+GLIBC_2.29 key_get_conv F
+GLIBC_2.29 key_secretkey_is_set F
+GLIBC_2.29 key_setnet F
+GLIBC_2.29 key_setsecret F
+GLIBC_2.29 kill F
+GLIBC_2.29 killpg F
+GLIBC_2.29 klogctl F
+GLIBC_2.29 l64a F
+GLIBC_2.29 labs F
+GLIBC_2.29 lchmod F
+GLIBC_2.29 lchown F
+GLIBC_2.29 lckpwdf F
+GLIBC_2.29 lcong48 F
+GLIBC_2.29 lcong48_r F
+GLIBC_2.29 ldexp F
+GLIBC_2.29 ldexpf F
+GLIBC_2.29 ldexpl F
+GLIBC_2.29 ldiv F
+GLIBC_2.29 lfind F
+GLIBC_2.29 lgetxattr F
+GLIBC_2.29 link F
+GLIBC_2.29 linkat F
+GLIBC_2.29 listen F
+GLIBC_2.29 listxattr F
+GLIBC_2.29 llabs F
+GLIBC_2.29 lldiv F
+GLIBC_2.29 llistxattr F
+GLIBC_2.29 localeconv F
+GLIBC_2.29 localtime F
+GLIBC_2.29 localtime_r F
+GLIBC_2.29 lockf F
+GLIBC_2.29 lockf64 F
+GLIBC_2.29 longjmp F
+GLIBC_2.29 lrand48 F
+GLIBC_2.29 lrand48_r F
+GLIBC_2.29 lremovexattr F
+GLIBC_2.29 lsearch F
+GLIBC_2.29 lseek F
+GLIBC_2.29 lseek64 F
+GLIBC_2.29 lsetxattr F
+GLIBC_2.29 lutimes F
+GLIBC_2.29 madvise F
+GLIBC_2.29 makecontext F
+GLIBC_2.29 mallinfo F
+GLIBC_2.29 malloc F
+GLIBC_2.29 malloc_info F
+GLIBC_2.29 malloc_stats F
+GLIBC_2.29 malloc_trim F
+GLIBC_2.29 malloc_usable_size F
+GLIBC_2.29 mallopt F
+GLIBC_2.29 mallwatch D 0x4
+GLIBC_2.29 mblen F
+GLIBC_2.29 mbrlen F
+GLIBC_2.29 mbrtoc16 F
+GLIBC_2.29 mbrtoc32 F
+GLIBC_2.29 mbrtowc F
+GLIBC_2.29 mbsinit F
+GLIBC_2.29 mbsnrtowcs F
+GLIBC_2.29 mbsrtowcs F
+GLIBC_2.29 mbstowcs F
+GLIBC_2.29 mbtowc F
+GLIBC_2.29 mcheck F
+GLIBC_2.29 mcheck_check_all F
+GLIBC_2.29 mcheck_pedantic F
+GLIBC_2.29 memalign F
+GLIBC_2.29 memccpy F
+GLIBC_2.29 memchr F
+GLIBC_2.29 memcmp F
+GLIBC_2.29 memcpy F
+GLIBC_2.29 memfd_create F
+GLIBC_2.29 memfrob F
+GLIBC_2.29 memmem F
+GLIBC_2.29 memmove F
+GLIBC_2.29 mempcpy F
+GLIBC_2.29 memrchr F
+GLIBC_2.29 memset F
+GLIBC_2.29 mincore F
+GLIBC_2.29 mkdir F
+GLIBC_2.29 mkdirat F
+GLIBC_2.29 mkdtemp F
+GLIBC_2.29 mkfifo F
+GLIBC_2.29 mkfifoat F
+GLIBC_2.29 mkostemp F
+GLIBC_2.29 mkostemp64 F
+GLIBC_2.29 mkostemps F
+GLIBC_2.29 mkostemps64 F
+GLIBC_2.29 mkstemp F
+GLIBC_2.29 mkstemp64 F
+GLIBC_2.29 mkstemps F
+GLIBC_2.29 mkstemps64 F
+GLIBC_2.29 mktemp F
+GLIBC_2.29 mktime F
+GLIBC_2.29 mlock F
+GLIBC_2.29 mlock2 F
+GLIBC_2.29 mlockall F
+GLIBC_2.29 mmap F
+GLIBC_2.29 mmap64 F
+GLIBC_2.29 modf F
+GLIBC_2.29 modff F
+GLIBC_2.29 modfl F
+GLIBC_2.29 moncontrol F
+GLIBC_2.29 monstartup F
+GLIBC_2.29 mount F
+GLIBC_2.29 mprobe F
+GLIBC_2.29 mprotect F
+GLIBC_2.29 mrand48 F
+GLIBC_2.29 mrand48_r F
+GLIBC_2.29 mremap F
+GLIBC_2.29 msgctl F
+GLIBC_2.29 msgget F
+GLIBC_2.29 msgrcv F
+GLIBC_2.29 msgsnd F
+GLIBC_2.29 msync F
+GLIBC_2.29 mtrace F
+GLIBC_2.29 munlock F
+GLIBC_2.29 munlockall F
+GLIBC_2.29 munmap F
+GLIBC_2.29 muntrace F
+GLIBC_2.29 name_to_handle_at F
+GLIBC_2.29 nanosleep F
+GLIBC_2.29 netname2host F
+GLIBC_2.29 netname2user F
+GLIBC_2.29 newlocale F
+GLIBC_2.29 nftw F
+GLIBC_2.29 nftw64 F
+GLIBC_2.29 ngettext F
+GLIBC_2.29 nice F
+GLIBC_2.29 nl_langinfo F
+GLIBC_2.29 nl_langinfo_l F
+GLIBC_2.29 nrand48 F
+GLIBC_2.29 nrand48_r F
+GLIBC_2.29 ntohl F
+GLIBC_2.29 ntohs F
+GLIBC_2.29 ntp_adjtime F
+GLIBC_2.29 ntp_gettime F
+GLIBC_2.29 ntp_gettimex F
+GLIBC_2.29 obstack_alloc_failed_handler D 0x4
+GLIBC_2.29 obstack_exit_failure D 0x4
+GLIBC_2.29 obstack_free F
+GLIBC_2.29 obstack_printf F
+GLIBC_2.29 obstack_vprintf F
+GLIBC_2.29 on_exit F
+GLIBC_2.29 open F
+GLIBC_2.29 open64 F
+GLIBC_2.29 open_by_handle_at F
+GLIBC_2.29 open_memstream F
+GLIBC_2.29 open_wmemstream F
+GLIBC_2.29 openat F
+GLIBC_2.29 openat64 F
+GLIBC_2.29 opendir F
+GLIBC_2.29 openlog F
+GLIBC_2.29 optarg D 0x4
+GLIBC_2.29 opterr D 0x4
+GLIBC_2.29 optind D 0x4
+GLIBC_2.29 optopt D 0x4
+GLIBC_2.29 parse_printf_format F
+GLIBC_2.29 passwd2des F
+GLIBC_2.29 pathconf F
+GLIBC_2.29 pause F
+GLIBC_2.29 pclose F
+GLIBC_2.29 perror F
+GLIBC_2.29 personality F
+GLIBC_2.29 pipe F
+GLIBC_2.29 pipe2 F
+GLIBC_2.29 pivot_root F
+GLIBC_2.29 pkey_alloc F
+GLIBC_2.29 pkey_free F
+GLIBC_2.29 pkey_get F
+GLIBC_2.29 pkey_mprotect F
+GLIBC_2.29 pkey_set F
+GLIBC_2.29 pmap_getmaps F
+GLIBC_2.29 pmap_getport F
+GLIBC_2.29 pmap_rmtcall F
+GLIBC_2.29 pmap_set F
+GLIBC_2.29 pmap_unset F
+GLIBC_2.29 poll F
+GLIBC_2.29 popen F
+GLIBC_2.29 posix_fadvise F
+GLIBC_2.29 posix_fadvise64 F
+GLIBC_2.29 posix_fallocate F
+GLIBC_2.29 posix_fallocate64 F
+GLIBC_2.29 posix_madvise F
+GLIBC_2.29 posix_memalign F
+GLIBC_2.29 posix_openpt F
+GLIBC_2.29 posix_spawn F
+GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
+GLIBC_2.29 posix_spawn_file_actions_addclose F
+GLIBC_2.29 posix_spawn_file_actions_adddup2 F
+GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
+GLIBC_2.29 posix_spawn_file_actions_addopen F
+GLIBC_2.29 posix_spawn_file_actions_destroy F
+GLIBC_2.29 posix_spawn_file_actions_init F
+GLIBC_2.29 posix_spawnattr_destroy F
+GLIBC_2.29 posix_spawnattr_getflags F
+GLIBC_2.29 posix_spawnattr_getpgroup F
+GLIBC_2.29 posix_spawnattr_getschedparam F
+GLIBC_2.29 posix_spawnattr_getschedpolicy F
+GLIBC_2.29 posix_spawnattr_getsigdefault F
+GLIBC_2.29 posix_spawnattr_getsigmask F
+GLIBC_2.29 posix_spawnattr_init F
+GLIBC_2.29 posix_spawnattr_setflags F
+GLIBC_2.29 posix_spawnattr_setpgroup F
+GLIBC_2.29 posix_spawnattr_setschedparam F
+GLIBC_2.29 posix_spawnattr_setschedpolicy F
+GLIBC_2.29 posix_spawnattr_setsigdefault F
+GLIBC_2.29 posix_spawnattr_setsigmask F
+GLIBC_2.29 posix_spawnp F
+GLIBC_2.29 ppoll F
+GLIBC_2.29 prctl F
+GLIBC_2.29 pread F
+GLIBC_2.29 pread64 F
+GLIBC_2.29 preadv F
+GLIBC_2.29 preadv2 F
+GLIBC_2.29 preadv64 F
+GLIBC_2.29 preadv64v2 F
+GLIBC_2.29 printf F
+GLIBC_2.29 printf_size F
+GLIBC_2.29 printf_size_info F
+GLIBC_2.29 prlimit F
+GLIBC_2.29 prlimit64 F
+GLIBC_2.29 process_vm_readv F
+GLIBC_2.29 process_vm_writev F
+GLIBC_2.29 profil F
+GLIBC_2.29 program_invocation_name D 0x4
+GLIBC_2.29 program_invocation_short_name D 0x4
+GLIBC_2.29 pselect F
+GLIBC_2.29 psiginfo F
+GLIBC_2.29 psignal F
+GLIBC_2.29 pthread_attr_destroy F
+GLIBC_2.29 pthread_attr_getdetachstate F
+GLIBC_2.29 pthread_attr_getinheritsched F
+GLIBC_2.29 pthread_attr_getschedparam F
+GLIBC_2.29 pthread_attr_getschedpolicy F
+GLIBC_2.29 pthread_attr_getscope F
+GLIBC_2.29 pthread_attr_init F
+GLIBC_2.29 pthread_attr_setdetachstate F
+GLIBC_2.29 pthread_attr_setinheritsched F
+GLIBC_2.29 pthread_attr_setschedparam F
+GLIBC_2.29 pthread_attr_setschedpolicy F
+GLIBC_2.29 pthread_attr_setscope F
+GLIBC_2.29 pthread_cond_broadcast F
+GLIBC_2.29 pthread_cond_destroy F
+GLIBC_2.29 pthread_cond_init F
+GLIBC_2.29 pthread_cond_signal F
+GLIBC_2.29 pthread_cond_timedwait F
+GLIBC_2.29 pthread_cond_wait F
+GLIBC_2.29 pthread_condattr_destroy F
+GLIBC_2.29 pthread_condattr_init F
+GLIBC_2.29 pthread_equal F
+GLIBC_2.29 pthread_exit F
+GLIBC_2.29 pthread_getschedparam F
+GLIBC_2.29 pthread_mutex_destroy F
+GLIBC_2.29 pthread_mutex_init F
+GLIBC_2.29 pthread_mutex_lock F
+GLIBC_2.29 pthread_mutex_unlock F
+GLIBC_2.29 pthread_self F
+GLIBC_2.29 pthread_setcancelstate F
+GLIBC_2.29 pthread_setcanceltype F
+GLIBC_2.29 pthread_setschedparam F
+GLIBC_2.29 ptrace F
+GLIBC_2.29 ptsname F
+GLIBC_2.29 ptsname_r F
+GLIBC_2.29 putc F
+GLIBC_2.29 putc_unlocked F
+GLIBC_2.29 putchar F
+GLIBC_2.29 putchar_unlocked F
+GLIBC_2.29 putenv F
+GLIBC_2.29 putgrent F
+GLIBC_2.29 putmsg F
+GLIBC_2.29 putpmsg F
+GLIBC_2.29 putpwent F
+GLIBC_2.29 puts F
+GLIBC_2.29 putsgent F
+GLIBC_2.29 putspent F
+GLIBC_2.29 pututline F
+GLIBC_2.29 pututxline F
+GLIBC_2.29 putw F
+GLIBC_2.29 putwc F
+GLIBC_2.29 putwc_unlocked F
+GLIBC_2.29 putwchar F
+GLIBC_2.29 putwchar_unlocked F
+GLIBC_2.29 pvalloc F
+GLIBC_2.29 pwrite F
+GLIBC_2.29 pwrite64 F
+GLIBC_2.29 pwritev F
+GLIBC_2.29 pwritev2 F
+GLIBC_2.29 pwritev64 F
+GLIBC_2.29 pwritev64v2 F
+GLIBC_2.29 qecvt F
+GLIBC_2.29 qecvt_r F
+GLIBC_2.29 qfcvt F
+GLIBC_2.29 qfcvt_r F
+GLIBC_2.29 qgcvt F
+GLIBC_2.29 qsort F
+GLIBC_2.29 qsort_r F
+GLIBC_2.29 quick_exit F
+GLIBC_2.29 quotactl F
+GLIBC_2.29 raise F
+GLIBC_2.29 rand F
+GLIBC_2.29 rand_r F
+GLIBC_2.29 random F
+GLIBC_2.29 random_r F
+GLIBC_2.29 rawmemchr F
+GLIBC_2.29 rcmd F
+GLIBC_2.29 rcmd_af F
+GLIBC_2.29 re_comp F
+GLIBC_2.29 re_compile_fastmap F
+GLIBC_2.29 re_compile_pattern F
+GLIBC_2.29 re_exec F
+GLIBC_2.29 re_match F
+GLIBC_2.29 re_match_2 F
+GLIBC_2.29 re_search F
+GLIBC_2.29 re_search_2 F
+GLIBC_2.29 re_set_registers F
+GLIBC_2.29 re_set_syntax F
+GLIBC_2.29 re_syntax_options D 0x4
+GLIBC_2.29 read F
+GLIBC_2.29 readahead F
+GLIBC_2.29 readdir F
+GLIBC_2.29 readdir64 F
+GLIBC_2.29 readdir64_r F
+GLIBC_2.29 readdir_r F
+GLIBC_2.29 readlink F
+GLIBC_2.29 readlinkat F
+GLIBC_2.29 readv F
+GLIBC_2.29 realloc F
+GLIBC_2.29 reallocarray F
+GLIBC_2.29 realpath F
+GLIBC_2.29 reboot F
+GLIBC_2.29 recv F
+GLIBC_2.29 recvfrom F
+GLIBC_2.29 recvmmsg F
+GLIBC_2.29 recvmsg F
+GLIBC_2.29 regcomp F
+GLIBC_2.29 regerror F
+GLIBC_2.29 regexec F
+GLIBC_2.29 regfree F
+GLIBC_2.29 register_printf_function F
+GLIBC_2.29 register_printf_modifier F
+GLIBC_2.29 register_printf_specifier F
+GLIBC_2.29 register_printf_type F
+GLIBC_2.29 registerrpc F
+GLIBC_2.29 remap_file_pages F
+GLIBC_2.29 remove F
+GLIBC_2.29 removexattr F
+GLIBC_2.29 remque F
+GLIBC_2.29 rename F
+GLIBC_2.29 renameat F
+GLIBC_2.29 renameat2 F
+GLIBC_2.29 revoke F
+GLIBC_2.29 rewind F
+GLIBC_2.29 rewinddir F
+GLIBC_2.29 rexec F
+GLIBC_2.29 rexec_af F
+GLIBC_2.29 rexecoptions D 0x4
+GLIBC_2.29 rindex F
+GLIBC_2.29 rmdir F
+GLIBC_2.29 rpc_createerr D 0x10
+GLIBC_2.29 rpmatch F
+GLIBC_2.29 rresvport F
+GLIBC_2.29 rresvport_af F
+GLIBC_2.29 rtime F
+GLIBC_2.29 ruserok F
+GLIBC_2.29 ruserok_af F
+GLIBC_2.29 ruserpass F
+GLIBC_2.29 sbrk F
+GLIBC_2.29 scalbn F
+GLIBC_2.29 scalbnf F
+GLIBC_2.29 scalbnl F
+GLIBC_2.29 scandir F
+GLIBC_2.29 scandir64 F
+GLIBC_2.29 scandirat F
+GLIBC_2.29 scandirat64 F
+GLIBC_2.29 scanf F
+GLIBC_2.29 sched_get_priority_max F
+GLIBC_2.29 sched_get_priority_min F
+GLIBC_2.29 sched_getaffinity F
+GLIBC_2.29 sched_getcpu F
+GLIBC_2.29 sched_getparam F
+GLIBC_2.29 sched_getscheduler F
+GLIBC_2.29 sched_rr_get_interval F
+GLIBC_2.29 sched_setaffinity F
+GLIBC_2.29 sched_setparam F
+GLIBC_2.29 sched_setscheduler F
+GLIBC_2.29 sched_yield F
+GLIBC_2.29 secure_getenv F
+GLIBC_2.29 seed48 F
+GLIBC_2.29 seed48_r F
+GLIBC_2.29 seekdir F
+GLIBC_2.29 select F
+GLIBC_2.29 semctl F
+GLIBC_2.29 semget F
+GLIBC_2.29 semop F
+GLIBC_2.29 semtimedop F
+GLIBC_2.29 send F
+GLIBC_2.29 sendfile F
+GLIBC_2.29 sendfile64 F
+GLIBC_2.29 sendmmsg F
+GLIBC_2.29 sendmsg F
+GLIBC_2.29 sendto F
+GLIBC_2.29 setaliasent F
+GLIBC_2.29 setbuf F
+GLIBC_2.29 setbuffer F
+GLIBC_2.29 setcontext F
+GLIBC_2.29 setdomainname F
+GLIBC_2.29 setegid F
+GLIBC_2.29 setenv F
+GLIBC_2.29 seteuid F
+GLIBC_2.29 setfsent F
+GLIBC_2.29 setfsgid F
+GLIBC_2.29 setfsuid F
+GLIBC_2.29 setgid F
+GLIBC_2.29 setgrent F
+GLIBC_2.29 setgroups F
+GLIBC_2.29 sethostent F
+GLIBC_2.29 sethostid F
+GLIBC_2.29 sethostname F
+GLIBC_2.29 setipv4sourcefilter F
+GLIBC_2.29 setitimer F
+GLIBC_2.29 setjmp F
+GLIBC_2.29 setlinebuf F
+GLIBC_2.29 setlocale F
+GLIBC_2.29 setlogin F
+GLIBC_2.29 setlogmask F
+GLIBC_2.29 setmntent F
+GLIBC_2.29 setnetent F
+GLIBC_2.29 setnetgrent F
+GLIBC_2.29 setns F
+GLIBC_2.29 setpgid F
+GLIBC_2.29 setpgrp F
+GLIBC_2.29 setpriority F
+GLIBC_2.29 setprotoent F
+GLIBC_2.29 setpwent F
+GLIBC_2.29 setregid F
+GLIBC_2.29 setresgid F
+GLIBC_2.29 setresuid F
+GLIBC_2.29 setreuid F
+GLIBC_2.29 setrlimit F
+GLIBC_2.29 setrlimit64 F
+GLIBC_2.29 setrpcent F
+GLIBC_2.29 setservent F
+GLIBC_2.29 setsgent F
+GLIBC_2.29 setsid F
+GLIBC_2.29 setsockopt F
+GLIBC_2.29 setsourcefilter F
+GLIBC_2.29 setspent F
+GLIBC_2.29 setstate F
+GLIBC_2.29 setstate_r F
+GLIBC_2.29 settimeofday F
+GLIBC_2.29 setttyent F
+GLIBC_2.29 setuid F
+GLIBC_2.29 setusershell F
+GLIBC_2.29 setutent F
+GLIBC_2.29 setutxent F
+GLIBC_2.29 setvbuf F
+GLIBC_2.29 setxattr F
+GLIBC_2.29 sgetsgent F
+GLIBC_2.29 sgetsgent_r F
+GLIBC_2.29 sgetspent F
+GLIBC_2.29 sgetspent_r F
+GLIBC_2.29 shmat F
+GLIBC_2.29 shmctl F
+GLIBC_2.29 shmdt F
+GLIBC_2.29 shmget F
+GLIBC_2.29 shutdown F
+GLIBC_2.29 sigaction F
+GLIBC_2.29 sigaddset F
+GLIBC_2.29 sigaltstack F
+GLIBC_2.29 sigandset F
+GLIBC_2.29 sigblock F
+GLIBC_2.29 sigdelset F
+GLIBC_2.29 sigemptyset F
+GLIBC_2.29 sigfillset F
+GLIBC_2.29 siggetmask F
+GLIBC_2.29 sighold F
+GLIBC_2.29 sigignore F
+GLIBC_2.29 siginterrupt F
+GLIBC_2.29 sigisemptyset F
+GLIBC_2.29 sigismember F
+GLIBC_2.29 siglongjmp F
+GLIBC_2.29 signal F
+GLIBC_2.29 signalfd F
+GLIBC_2.29 sigorset F
+GLIBC_2.29 sigpause F
+GLIBC_2.29 sigpending F
+GLIBC_2.29 sigprocmask F
+GLIBC_2.29 sigqueue F
+GLIBC_2.29 sigrelse F
+GLIBC_2.29 sigreturn F
+GLIBC_2.29 sigset F
+GLIBC_2.29 sigsetmask F
+GLIBC_2.29 sigstack F
+GLIBC_2.29 sigsuspend F
+GLIBC_2.29 sigtimedwait F
+GLIBC_2.29 sigwait F
+GLIBC_2.29 sigwaitinfo F
+GLIBC_2.29 sleep F
+GLIBC_2.29 snprintf F
+GLIBC_2.29 sockatmark F
+GLIBC_2.29 socket F
+GLIBC_2.29 socketpair F
+GLIBC_2.29 splice F
+GLIBC_2.29 sprintf F
+GLIBC_2.29 sprofil F
+GLIBC_2.29 srand F
+GLIBC_2.29 srand48 F
+GLIBC_2.29 srand48_r F
+GLIBC_2.29 srandom F
+GLIBC_2.29 srandom_r F
+GLIBC_2.29 sscanf F
+GLIBC_2.29 ssignal F
+GLIBC_2.29 sstk F
+GLIBC_2.29 statfs F
+GLIBC_2.29 statfs64 F
+GLIBC_2.29 statvfs F
+GLIBC_2.29 statvfs64 F
+GLIBC_2.29 statx F
+GLIBC_2.29 stderr D 0x4
+GLIBC_2.29 stdin D 0x4
+GLIBC_2.29 stdout D 0x4
+GLIBC_2.29 stime F
+GLIBC_2.29 stpcpy F
+GLIBC_2.29 stpncpy F
+GLIBC_2.29 strcasecmp F
+GLIBC_2.29 strcasecmp_l F
+GLIBC_2.29 strcasestr F
+GLIBC_2.29 strcat F
+GLIBC_2.29 strchr F
+GLIBC_2.29 strchrnul F
+GLIBC_2.29 strcmp F
+GLIBC_2.29 strcoll F
+GLIBC_2.29 strcoll_l F
+GLIBC_2.29 strcpy F
+GLIBC_2.29 strcspn F
+GLIBC_2.29 strdup F
+GLIBC_2.29 strerror F
+GLIBC_2.29 strerror_l F
+GLIBC_2.29 strerror_r F
+GLIBC_2.29 strfmon F
+GLIBC_2.29 strfmon_l F
+GLIBC_2.29 strfromd F
+GLIBC_2.29 strfromf F
+GLIBC_2.29 strfromf32 F
+GLIBC_2.29 strfromf32x F
+GLIBC_2.29 strfromf64 F
+GLIBC_2.29 strfroml F
+GLIBC_2.29 strfry F
+GLIBC_2.29 strftime F
+GLIBC_2.29 strftime_l F
+GLIBC_2.29 strlen F
+GLIBC_2.29 strncasecmp F
+GLIBC_2.29 strncasecmp_l F
+GLIBC_2.29 strncat F
+GLIBC_2.29 strncmp F
+GLIBC_2.29 strncpy F
+GLIBC_2.29 strndup F
+GLIBC_2.29 strnlen F
+GLIBC_2.29 strpbrk F
+GLIBC_2.29 strptime F
+GLIBC_2.29 strptime_l F
+GLIBC_2.29 strrchr F
+GLIBC_2.29 strsep F
+GLIBC_2.29 strsignal F
+GLIBC_2.29 strspn F
+GLIBC_2.29 strstr F
+GLIBC_2.29 strtod F
+GLIBC_2.29 strtod_l F
+GLIBC_2.29 strtof F
+GLIBC_2.29 strtof32 F
+GLIBC_2.29 strtof32_l F
+GLIBC_2.29 strtof32x F
+GLIBC_2.29 strtof32x_l F
+GLIBC_2.29 strtof64 F
+GLIBC_2.29 strtof64_l F
+GLIBC_2.29 strtof_l F
+GLIBC_2.29 strtoimax F
+GLIBC_2.29 strtok F
+GLIBC_2.29 strtok_r F
+GLIBC_2.29 strtol F
+GLIBC_2.29 strtol_l F
+GLIBC_2.29 strtold F
+GLIBC_2.29 strtold_l F
+GLIBC_2.29 strtoll F
+GLIBC_2.29 strtoll_l F
+GLIBC_2.29 strtoq F
+GLIBC_2.29 strtoul F
+GLIBC_2.29 strtoul_l F
+GLIBC_2.29 strtoull F
+GLIBC_2.29 strtoull_l F
+GLIBC_2.29 strtoumax F
+GLIBC_2.29 strtouq F
+GLIBC_2.29 strverscmp F
+GLIBC_2.29 strxfrm F
+GLIBC_2.29 strxfrm_l F
+GLIBC_2.29 stty F
+GLIBC_2.29 svc_exit F
+GLIBC_2.29 svc_fdset D 0x80
+GLIBC_2.29 svc_getreq F
+GLIBC_2.29 svc_getreq_common F
+GLIBC_2.29 svc_getreq_poll F
+GLIBC_2.29 svc_getreqset F
+GLIBC_2.29 svc_max_pollfd D 0x4
+GLIBC_2.29 svc_pollfd D 0x4
+GLIBC_2.29 svc_register F
+GLIBC_2.29 svc_run F
+GLIBC_2.29 svc_sendreply F
+GLIBC_2.29 svc_unregister F
+GLIBC_2.29 svcauthdes_stats D 0xc
+GLIBC_2.29 svcerr_auth F
+GLIBC_2.29 svcerr_decode F
+GLIBC_2.29 svcerr_noproc F
+GLIBC_2.29 svcerr_noprog F
+GLIBC_2.29 svcerr_progvers F
+GLIBC_2.29 svcerr_systemerr F
+GLIBC_2.29 svcerr_weakauth F
+GLIBC_2.29 svcfd_create F
+GLIBC_2.29 svcraw_create F
+GLIBC_2.29 svctcp_create F
+GLIBC_2.29 svcudp_bufcreate F
+GLIBC_2.29 svcudp_create F
+GLIBC_2.29 svcudp_enablecache F
+GLIBC_2.29 svcunix_create F
+GLIBC_2.29 svcunixfd_create F
+GLIBC_2.29 swab F
+GLIBC_2.29 swapcontext F
+GLIBC_2.29 swapoff F
+GLIBC_2.29 swapon F
+GLIBC_2.29 swprintf F
+GLIBC_2.29 swscanf F
+GLIBC_2.29 symlink F
+GLIBC_2.29 symlinkat F
+GLIBC_2.29 sync F
+GLIBC_2.29 sync_file_range F
+GLIBC_2.29 syncfs F
+GLIBC_2.29 sys_errlist D 0x21c
+GLIBC_2.29 sys_nerr D 0x4
+GLIBC_2.29 sys_sigabbrev D 0x104
+GLIBC_2.29 sys_siglist D 0x104
+GLIBC_2.29 syscall F
+GLIBC_2.29 sysconf F
+GLIBC_2.29 sysctl F
+GLIBC_2.29 sysinfo F
+GLIBC_2.29 syslog F
+GLIBC_2.29 system F
+GLIBC_2.29 sysv_signal F
+GLIBC_2.29 tcdrain F
+GLIBC_2.29 tcflow F
+GLIBC_2.29 tcflush F
+GLIBC_2.29 tcgetattr F
+GLIBC_2.29 tcgetpgrp F
+GLIBC_2.29 tcgetsid F
+GLIBC_2.29 tcsendbreak F
+GLIBC_2.29 tcsetattr F
+GLIBC_2.29 tcsetpgrp F
+GLIBC_2.29 tdelete F
+GLIBC_2.29 tdestroy F
+GLIBC_2.29 tee F
+GLIBC_2.29 telldir F
+GLIBC_2.29 tempnam F
+GLIBC_2.29 textdomain F
+GLIBC_2.29 tfind F
+GLIBC_2.29 thrd_current F
+GLIBC_2.29 thrd_equal F
+GLIBC_2.29 thrd_sleep F
+GLIBC_2.29 thrd_yield F
+GLIBC_2.29 time F
+GLIBC_2.29 timegm F
+GLIBC_2.29 timelocal F
+GLIBC_2.29 timerfd_create F
+GLIBC_2.29 timerfd_gettime F
+GLIBC_2.29 timerfd_settime F
+GLIBC_2.29 times F
+GLIBC_2.29 timespec_get F
+GLIBC_2.29 timezone D 0x4
+GLIBC_2.29 tmpfile F
+GLIBC_2.29 tmpfile64 F
+GLIBC_2.29 tmpnam F
+GLIBC_2.29 tmpnam_r F
+GLIBC_2.29 toascii F
+GLIBC_2.29 tolower F
+GLIBC_2.29 tolower_l F
+GLIBC_2.29 toupper F
+GLIBC_2.29 toupper_l F
+GLIBC_2.29 towctrans F
+GLIBC_2.29 towctrans_l F
+GLIBC_2.29 towlower F
+GLIBC_2.29 towlower_l F
+GLIBC_2.29 towupper F
+GLIBC_2.29 towupper_l F
+GLIBC_2.29 tr_break F
+GLIBC_2.29 truncate F
+GLIBC_2.29 truncate64 F
+GLIBC_2.29 tsearch F
+GLIBC_2.29 ttyname F
+GLIBC_2.29 ttyname_r F
+GLIBC_2.29 ttyslot F
+GLIBC_2.29 twalk F
+GLIBC_2.29 tzname D 0x8
+GLIBC_2.29 tzset F
+GLIBC_2.29 ualarm F
+GLIBC_2.29 ulckpwdf F
+GLIBC_2.29 ulimit F
+GLIBC_2.29 umask F
+GLIBC_2.29 umount F
+GLIBC_2.29 umount2 F
+GLIBC_2.29 uname F
+GLIBC_2.29 ungetc F
+GLIBC_2.29 ungetwc F
+GLIBC_2.29 unlink F
+GLIBC_2.29 unlinkat F
+GLIBC_2.29 unlockpt F
+GLIBC_2.29 unsetenv F
+GLIBC_2.29 unshare F
+GLIBC_2.29 updwtmp F
+GLIBC_2.29 updwtmpx F
+GLIBC_2.29 uselocale F
+GLIBC_2.29 user2netname F
+GLIBC_2.29 usleep F
+GLIBC_2.29 utime F
+GLIBC_2.29 utimensat F
+GLIBC_2.29 utimes F
+GLIBC_2.29 utmpname F
+GLIBC_2.29 utmpxname F
+GLIBC_2.29 valloc F
+GLIBC_2.29 vasprintf F
+GLIBC_2.29 vdprintf F
+GLIBC_2.29 verr F
+GLIBC_2.29 verrx F
+GLIBC_2.29 versionsort F
+GLIBC_2.29 versionsort64 F
+GLIBC_2.29 vfork F
+GLIBC_2.29 vfprintf F
+GLIBC_2.29 vfscanf F
+GLIBC_2.29 vfwprintf F
+GLIBC_2.29 vfwscanf F
+GLIBC_2.29 vhangup F
+GLIBC_2.29 vlimit F
+GLIBC_2.29 vmsplice F
+GLIBC_2.29 vprintf F
+GLIBC_2.29 vscanf F
+GLIBC_2.29 vsnprintf F
+GLIBC_2.29 vsprintf F
+GLIBC_2.29 vsscanf F
+GLIBC_2.29 vswprintf F
+GLIBC_2.29 vswscanf F
+GLIBC_2.29 vsyslog F
+GLIBC_2.29 vtimes F
+GLIBC_2.29 vwarn F
+GLIBC_2.29 vwarnx F
+GLIBC_2.29 vwprintf F
+GLIBC_2.29 vwscanf F
+GLIBC_2.29 wait F
+GLIBC_2.29 wait3 F
+GLIBC_2.29 wait4 F
+GLIBC_2.29 waitid F
+GLIBC_2.29 waitpid F
+GLIBC_2.29 warn F
+GLIBC_2.29 warnx F
+GLIBC_2.29 wcpcpy F
+GLIBC_2.29 wcpncpy F
+GLIBC_2.29 wcrtomb F
+GLIBC_2.29 wcscasecmp F
+GLIBC_2.29 wcscasecmp_l F
+GLIBC_2.29 wcscat F
+GLIBC_2.29 wcschr F
+GLIBC_2.29 wcschrnul F
+GLIBC_2.29 wcscmp F
+GLIBC_2.29 wcscoll F
+GLIBC_2.29 wcscoll_l F
+GLIBC_2.29 wcscpy F
+GLIBC_2.29 wcscspn F
+GLIBC_2.29 wcsdup F
+GLIBC_2.29 wcsftime F
+GLIBC_2.29 wcsftime_l F
+GLIBC_2.29 wcslen F
+GLIBC_2.29 wcsncasecmp F
+GLIBC_2.29 wcsncasecmp_l F
+GLIBC_2.29 wcsncat F
+GLIBC_2.29 wcsncmp F
+GLIBC_2.29 wcsncpy F
+GLIBC_2.29 wcsnlen F
+GLIBC_2.29 wcsnrtombs F
+GLIBC_2.29 wcspbrk F
+GLIBC_2.29 wcsrchr F
+GLIBC_2.29 wcsrtombs F
+GLIBC_2.29 wcsspn F
+GLIBC_2.29 wcsstr F
+GLIBC_2.29 wcstod F
+GLIBC_2.29 wcstod_l F
+GLIBC_2.29 wcstof F
+GLIBC_2.29 wcstof32 F
+GLIBC_2.29 wcstof32_l F
+GLIBC_2.29 wcstof32x F
+GLIBC_2.29 wcstof32x_l F
+GLIBC_2.29 wcstof64 F
+GLIBC_2.29 wcstof64_l F
+GLIBC_2.29 wcstof_l F
+GLIBC_2.29 wcstoimax F
+GLIBC_2.29 wcstok F
+GLIBC_2.29 wcstol F
+GLIBC_2.29 wcstol_l F
+GLIBC_2.29 wcstold F
+GLIBC_2.29 wcstold_l F
+GLIBC_2.29 wcstoll F
+GLIBC_2.29 wcstoll_l F
+GLIBC_2.29 wcstombs F
+GLIBC_2.29 wcstoq F
+GLIBC_2.29 wcstoul F
+GLIBC_2.29 wcstoul_l F
+GLIBC_2.29 wcstoull F
+GLIBC_2.29 wcstoull_l F
+GLIBC_2.29 wcstoumax F
+GLIBC_2.29 wcstouq F
+GLIBC_2.29 wcswcs F
+GLIBC_2.29 wcswidth F
+GLIBC_2.29 wcsxfrm F
+GLIBC_2.29 wcsxfrm_l F
+GLIBC_2.29 wctob F
+GLIBC_2.29 wctomb F
+GLIBC_2.29 wctrans F
+GLIBC_2.29 wctrans_l F
+GLIBC_2.29 wctype F
+GLIBC_2.29 wctype_l F
+GLIBC_2.29 wcwidth F
+GLIBC_2.29 wmemchr F
+GLIBC_2.29 wmemcmp F
+GLIBC_2.29 wmemcpy F
+GLIBC_2.29 wmemmove F
+GLIBC_2.29 wmempcpy F
+GLIBC_2.29 wmemset F
+GLIBC_2.29 wordexp F
+GLIBC_2.29 wordfree F
+GLIBC_2.29 wprintf F
+GLIBC_2.29 write F
+GLIBC_2.29 writev F
+GLIBC_2.29 wscanf F
+GLIBC_2.29 xdecrypt F
+GLIBC_2.29 xdr_accepted_reply F
+GLIBC_2.29 xdr_array F
+GLIBC_2.29 xdr_authdes_cred F
+GLIBC_2.29 xdr_authdes_verf F
+GLIBC_2.29 xdr_authunix_parms F
+GLIBC_2.29 xdr_bool F
+GLIBC_2.29 xdr_bytes F
+GLIBC_2.29 xdr_callhdr F
+GLIBC_2.29 xdr_callmsg F
+GLIBC_2.29 xdr_char F
+GLIBC_2.29 xdr_cryptkeyarg F
+GLIBC_2.29 xdr_cryptkeyarg2 F
+GLIBC_2.29 xdr_cryptkeyres F
+GLIBC_2.29 xdr_des_block F
+GLIBC_2.29 xdr_double F
+GLIBC_2.29 xdr_enum F
+GLIBC_2.29 xdr_float F
+GLIBC_2.29 xdr_free F
+GLIBC_2.29 xdr_getcredres F
+GLIBC_2.29 xdr_hyper F
+GLIBC_2.29 xdr_int F
+GLIBC_2.29 xdr_int16_t F
+GLIBC_2.29 xdr_int32_t F
+GLIBC_2.29 xdr_int64_t F
+GLIBC_2.29 xdr_int8_t F
+GLIBC_2.29 xdr_key_netstarg F
+GLIBC_2.29 xdr_key_netstres F
+GLIBC_2.29 xdr_keybuf F
+GLIBC_2.29 xdr_keystatus F
+GLIBC_2.29 xdr_long F
+GLIBC_2.29 xdr_longlong_t F
+GLIBC_2.29 xdr_netnamestr F
+GLIBC_2.29 xdr_netobj F
+GLIBC_2.29 xdr_opaque F
+GLIBC_2.29 xdr_opaque_auth F
+GLIBC_2.29 xdr_pmap F
+GLIBC_2.29 xdr_pmaplist F
+GLIBC_2.29 xdr_pointer F
+GLIBC_2.29 xdr_quad_t F
+GLIBC_2.29 xdr_reference F
+GLIBC_2.29 xdr_rejected_reply F
+GLIBC_2.29 xdr_replymsg F
+GLIBC_2.29 xdr_rmtcall_args F
+GLIBC_2.29 xdr_rmtcallres F
+GLIBC_2.29 xdr_short F
+GLIBC_2.29 xdr_sizeof F
+GLIBC_2.29 xdr_string F
+GLIBC_2.29 xdr_u_char F
+GLIBC_2.29 xdr_u_hyper F
+GLIBC_2.29 xdr_u_int F
+GLIBC_2.29 xdr_u_long F
+GLIBC_2.29 xdr_u_longlong_t F
+GLIBC_2.29 xdr_u_quad_t F
+GLIBC_2.29 xdr_u_short F
+GLIBC_2.29 xdr_uint16_t F
+GLIBC_2.29 xdr_uint32_t F
+GLIBC_2.29 xdr_uint64_t F
+GLIBC_2.29 xdr_uint8_t F
+GLIBC_2.29 xdr_union F
+GLIBC_2.29 xdr_unixcred F
+GLIBC_2.29 xdr_vector F
+GLIBC_2.29 xdr_void F
+GLIBC_2.29 xdr_wrapstring F
+GLIBC_2.29 xdrmem_create F
+GLIBC_2.29 xdrrec_create F
+GLIBC_2.29 xdrrec_endofrecord F
+GLIBC_2.29 xdrrec_eof F
+GLIBC_2.29 xdrrec_skiprecord F
+GLIBC_2.29 xdrstdio_create F
+GLIBC_2.29 xencrypt F
+GLIBC_2.29 xprt_register F
+GLIBC_2.29 xprt_unregister F
+GLIBC_2.30 getdents64 F
+GLIBC_2.30 gettid F
+GLIBC_2.30 tgkill F
+GLIBC_2.30 twalk_r F
diff --git a/sysdeps/unix/sysv/linux/csky/libcrypt.abilist b/sysdeps/unix/sysv/linux/csky/libcrypt.abilist
new file mode 100644
index 0000000000..da3abbf8fb
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/csky/libcrypt.abilist
@@ -0,0 +1,2 @@
+GLIBC_2.29 crypt F
+GLIBC_2.29 crypt_r F
diff --git a/sysdeps/unix/sysv/linux/csky/libdl.abilist b/sysdeps/unix/sysv/linux/csky/libdl.abilist
new file mode 100644
index 0000000000..8fcb609ddc
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/csky/libdl.abilist
@@ -0,0 +1,9 @@
+GLIBC_2.29 dladdr F
+GLIBC_2.29 dladdr1 F
+GLIBC_2.29 dlclose F
+GLIBC_2.29 dlerror F
+GLIBC_2.29 dlinfo F
+GLIBC_2.29 dlmopen F
+GLIBC_2.29 dlopen F
+GLIBC_2.29 dlsym F
+GLIBC_2.29 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/csky/libm.abilist b/sysdeps/unix/sysv/linux/csky/libm.abilist
new file mode 100644
index 0000000000..88cdf00342
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/csky/libm.abilist
@@ -0,0 +1,765 @@
+GLIBC_2.29 __acos_finite F
+GLIBC_2.29 __acosf_finite F
+GLIBC_2.29 __acosh_finite F
+GLIBC_2.29 __acoshf_finite F
+GLIBC_2.29 __asin_finite F
+GLIBC_2.29 __asinf_finite F
+GLIBC_2.29 __atan2_finite F
+GLIBC_2.29 __atan2f_finite F
+GLIBC_2.29 __atanh_finite F
+GLIBC_2.29 __atanhf_finite F
+GLIBC_2.29 __clog10 F
+GLIBC_2.29 __clog10f F
+GLIBC_2.29 __clog10l F
+GLIBC_2.29 __cosh_finite F
+GLIBC_2.29 __coshf_finite F
+GLIBC_2.29 __exp10_finite F
+GLIBC_2.29 __exp10f_finite F
+GLIBC_2.29 __exp2_finite F
+GLIBC_2.29 __exp2f_finite F
+GLIBC_2.29 __exp_finite F
+GLIBC_2.29 __expf_finite F
+GLIBC_2.29 __finite F
+GLIBC_2.29 __finitef F
+GLIBC_2.29 __fmod_finite F
+GLIBC_2.29 __fmodf_finite F
+GLIBC_2.29 __fpclassify F
+GLIBC_2.29 __fpclassifyf F
+GLIBC_2.29 __gamma_r_finite F
+GLIBC_2.29 __gammaf_r_finite F
+GLIBC_2.29 __hypot_finite F
+GLIBC_2.29 __hypotf_finite F
+GLIBC_2.29 __iseqsig F
+GLIBC_2.29 __iseqsigf F
+GLIBC_2.29 __issignaling F
+GLIBC_2.29 __issignalingf F
+GLIBC_2.29 __j0_finite F
+GLIBC_2.29 __j0f_finite F
+GLIBC_2.29 __j1_finite F
+GLIBC_2.29 __j1f_finite F
+GLIBC_2.29 __jn_finite F
+GLIBC_2.29 __jnf_finite F
+GLIBC_2.29 __lgamma_r_finite F
+GLIBC_2.29 __lgammaf_r_finite F
+GLIBC_2.29 __log10_finite F
+GLIBC_2.29 __log10f_finite F
+GLIBC_2.29 __log2_finite F
+GLIBC_2.29 __log2f_finite F
+GLIBC_2.29 __log_finite F
+GLIBC_2.29 __logf_finite F
+GLIBC_2.29 __pow_finite F
+GLIBC_2.29 __powf_finite F
+GLIBC_2.29 __remainder_finite F
+GLIBC_2.29 __remainderf_finite F
+GLIBC_2.29 __scalb_finite F
+GLIBC_2.29 __scalbf_finite F
+GLIBC_2.29 __signbit F
+GLIBC_2.29 __signbitf F
+GLIBC_2.29 __signgam D 0x4
+GLIBC_2.29 __sinh_finite F
+GLIBC_2.29 __sinhf_finite F
+GLIBC_2.29 __sqrt_finite F
+GLIBC_2.29 __sqrtf_finite F
+GLIBC_2.29 __y0_finite F
+GLIBC_2.29 __y0f_finite F
+GLIBC_2.29 __y1_finite F
+GLIBC_2.29 __y1f_finite F
+GLIBC_2.29 __yn_finite F
+GLIBC_2.29 __ynf_finite F
+GLIBC_2.29 acos F
+GLIBC_2.29 acosf F
+GLIBC_2.29 acosf32 F
+GLIBC_2.29 acosf32x F
+GLIBC_2.29 acosf64 F
+GLIBC_2.29 acosh F
+GLIBC_2.29 acoshf F
+GLIBC_2.29 acoshf32 F
+GLIBC_2.29 acoshf32x F
+GLIBC_2.29 acoshf64 F
+GLIBC_2.29 acoshl F
+GLIBC_2.29 acosl F
+GLIBC_2.29 asin F
+GLIBC_2.29 asinf F
+GLIBC_2.29 asinf32 F
+GLIBC_2.29 asinf32x F
+GLIBC_2.29 asinf64 F
+GLIBC_2.29 asinh F
+GLIBC_2.29 asinhf F
+GLIBC_2.29 asinhf32 F
+GLIBC_2.29 asinhf32x F
+GLIBC_2.29 asinhf64 F
+GLIBC_2.29 asinhl F
+GLIBC_2.29 asinl F
+GLIBC_2.29 atan F
+GLIBC_2.29 atan2 F
+GLIBC_2.29 atan2f F
+GLIBC_2.29 atan2f32 F
+GLIBC_2.29 atan2f32x F
+GLIBC_2.29 atan2f64 F
+GLIBC_2.29 atan2l F
+GLIBC_2.29 atanf F
+GLIBC_2.29 atanf32 F
+GLIBC_2.29 atanf32x F
+GLIBC_2.29 atanf64 F
+GLIBC_2.29 atanh F
+GLIBC_2.29 atanhf F
+GLIBC_2.29 atanhf32 F
+GLIBC_2.29 atanhf32x F
+GLIBC_2.29 atanhf64 F
+GLIBC_2.29 atanhl F
+GLIBC_2.29 atanl F
+GLIBC_2.29 cabs F
+GLIBC_2.29 cabsf F
+GLIBC_2.29 cabsf32 F
+GLIBC_2.29 cabsf32x F
+GLIBC_2.29 cabsf64 F
+GLIBC_2.29 cabsl F
+GLIBC_2.29 cacos F
+GLIBC_2.29 cacosf F
+GLIBC_2.29 cacosf32 F
+GLIBC_2.29 cacosf32x F
+GLIBC_2.29 cacosf64 F
+GLIBC_2.29 cacosh F
+GLIBC_2.29 cacoshf F
+GLIBC_2.29 cacoshf32 F
+GLIBC_2.29 cacoshf32x F
+GLIBC_2.29 cacoshf64 F
+GLIBC_2.29 cacoshl F
+GLIBC_2.29 cacosl F
+GLIBC_2.29 canonicalize F
+GLIBC_2.29 canonicalizef F
+GLIBC_2.29 canonicalizef32 F
+GLIBC_2.29 canonicalizef32x F
+GLIBC_2.29 canonicalizef64 F
+GLIBC_2.29 canonicalizel F
+GLIBC_2.29 carg F
+GLIBC_2.29 cargf F
+GLIBC_2.29 cargf32 F
+GLIBC_2.29 cargf32x F
+GLIBC_2.29 cargf64 F
+GLIBC_2.29 cargl F
+GLIBC_2.29 casin F
+GLIBC_2.29 casinf F
+GLIBC_2.29 casinf32 F
+GLIBC_2.29 casinf32x F
+GLIBC_2.29 casinf64 F
+GLIBC_2.29 casinh F
+GLIBC_2.29 casinhf F
+GLIBC_2.29 casinhf32 F
+GLIBC_2.29 casinhf32x F
+GLIBC_2.29 casinhf64 F
+GLIBC_2.29 casinhl F
+GLIBC_2.29 casinl F
+GLIBC_2.29 catan F
+GLIBC_2.29 catanf F
+GLIBC_2.29 catanf32 F
+GLIBC_2.29 catanf32x F
+GLIBC_2.29 catanf64 F
+GLIBC_2.29 catanh F
+GLIBC_2.29 catanhf F
+GLIBC_2.29 catanhf32 F
+GLIBC_2.29 catanhf32x F
+GLIBC_2.29 catanhf64 F
+GLIBC_2.29 catanhl F
+GLIBC_2.29 catanl F
+GLIBC_2.29 cbrt F
+GLIBC_2.29 cbrtf F
+GLIBC_2.29 cbrtf32 F
+GLIBC_2.29 cbrtf32x F
+GLIBC_2.29 cbrtf64 F
+GLIBC_2.29 cbrtl F
+GLIBC_2.29 ccos F
+GLIBC_2.29 ccosf F
+GLIBC_2.29 ccosf32 F
+GLIBC_2.29 ccosf32x F
+GLIBC_2.29 ccosf64 F
+GLIBC_2.29 ccosh F
+GLIBC_2.29 ccoshf F
+GLIBC_2.29 ccoshf32 F
+GLIBC_2.29 ccoshf32x F
+GLIBC_2.29 ccoshf64 F
+GLIBC_2.29 ccoshl F
+GLIBC_2.29 ccosl F
+GLIBC_2.29 ceil F
+GLIBC_2.29 ceilf F
+GLIBC_2.29 ceilf32 F
+GLIBC_2.29 ceilf32x F
+GLIBC_2.29 ceilf64 F
+GLIBC_2.29 ceill F
+GLIBC_2.29 cexp F
+GLIBC_2.29 cexpf F
+GLIBC_2.29 cexpf32 F
+GLIBC_2.29 cexpf32x F
+GLIBC_2.29 cexpf64 F
+GLIBC_2.29 cexpl F
+GLIBC_2.29 cimag F
+GLIBC_2.29 cimagf F
+GLIBC_2.29 cimagf32 F
+GLIBC_2.29 cimagf32x F
+GLIBC_2.29 cimagf64 F
+GLIBC_2.29 cimagl F
+GLIBC_2.29 clog F
+GLIBC_2.29 clog10 F
+GLIBC_2.29 clog10f F
+GLIBC_2.29 clog10f32 F
+GLIBC_2.29 clog10f32x F
+GLIBC_2.29 clog10f64 F
+GLIBC_2.29 clog10l F
+GLIBC_2.29 clogf F
+GLIBC_2.29 clogf32 F
+GLIBC_2.29 clogf32x F
+GLIBC_2.29 clogf64 F
+GLIBC_2.29 clogl F
+GLIBC_2.29 conj F
+GLIBC_2.29 conjf F
+GLIBC_2.29 conjf32 F
+GLIBC_2.29 conjf32x F
+GLIBC_2.29 conjf64 F
+GLIBC_2.29 conjl F
+GLIBC_2.29 copysign F
+GLIBC_2.29 copysignf F
+GLIBC_2.29 copysignf32 F
+GLIBC_2.29 copysignf32x F
+GLIBC_2.29 copysignf64 F
+GLIBC_2.29 copysignl F
+GLIBC_2.29 cos F
+GLIBC_2.29 cosf F
+GLIBC_2.29 cosf32 F
+GLIBC_2.29 cosf32x F
+GLIBC_2.29 cosf64 F
+GLIBC_2.29 cosh F
+GLIBC_2.29 coshf F
+GLIBC_2.29 coshf32 F
+GLIBC_2.29 coshf32x F
+GLIBC_2.29 coshf64 F
+GLIBC_2.29 coshl F
+GLIBC_2.29 cosl F
+GLIBC_2.29 cpow F
+GLIBC_2.29 cpowf F
+GLIBC_2.29 cpowf32 F
+GLIBC_2.29 cpowf32x F
+GLIBC_2.29 cpowf64 F
+GLIBC_2.29 cpowl F
+GLIBC_2.29 cproj F
+GLIBC_2.29 cprojf F
+GLIBC_2.29 cprojf32 F
+GLIBC_2.29 cprojf32x F
+GLIBC_2.29 cprojf64 F
+GLIBC_2.29 cprojl F
+GLIBC_2.29 creal F
+GLIBC_2.29 crealf F
+GLIBC_2.29 crealf32 F
+GLIBC_2.29 crealf32x F
+GLIBC_2.29 crealf64 F
+GLIBC_2.29 creall F
+GLIBC_2.29 csin F
+GLIBC_2.29 csinf F
+GLIBC_2.29 csinf32 F
+GLIBC_2.29 csinf32x F
+GLIBC_2.29 csinf64 F
+GLIBC_2.29 csinh F
+GLIBC_2.29 csinhf F
+GLIBC_2.29 csinhf32 F
+GLIBC_2.29 csinhf32x F
+GLIBC_2.29 csinhf64 F
+GLIBC_2.29 csinhl F
+GLIBC_2.29 csinl F
+GLIBC_2.29 csqrt F
+GLIBC_2.29 csqrtf F
+GLIBC_2.29 csqrtf32 F
+GLIBC_2.29 csqrtf32x F
+GLIBC_2.29 csqrtf64 F
+GLIBC_2.29 csqrtl F
+GLIBC_2.29 ctan F
+GLIBC_2.29 ctanf F
+GLIBC_2.29 ctanf32 F
+GLIBC_2.29 ctanf32x F
+GLIBC_2.29 ctanf64 F
+GLIBC_2.29 ctanh F
+GLIBC_2.29 ctanhf F
+GLIBC_2.29 ctanhf32 F
+GLIBC_2.29 ctanhf32x F
+GLIBC_2.29 ctanhf64 F
+GLIBC_2.29 ctanhl F
+GLIBC_2.29 ctanl F
+GLIBC_2.29 daddl F
+GLIBC_2.29 ddivl F
+GLIBC_2.29 dmull F
+GLIBC_2.29 drem F
+GLIBC_2.29 dremf F
+GLIBC_2.29 dreml F
+GLIBC_2.29 dsubl F
+GLIBC_2.29 erf F
+GLIBC_2.29 erfc F
+GLIBC_2.29 erfcf F
+GLIBC_2.29 erfcf32 F
+GLIBC_2.29 erfcf32x F
+GLIBC_2.29 erfcf64 F
+GLIBC_2.29 erfcl F
+GLIBC_2.29 erff F
+GLIBC_2.29 erff32 F
+GLIBC_2.29 erff32x F
+GLIBC_2.29 erff64 F
+GLIBC_2.29 erfl F
+GLIBC_2.29 exp F
+GLIBC_2.29 exp10 F
+GLIBC_2.29 exp10f F
+GLIBC_2.29 exp10f32 F
+GLIBC_2.29 exp10f32x F
+GLIBC_2.29 exp10f64 F
+GLIBC_2.29 exp10l F
+GLIBC_2.29 exp2 F
+GLIBC_2.29 exp2f F
+GLIBC_2.29 exp2f32 F
+GLIBC_2.29 exp2f32x F
+GLIBC_2.29 exp2f64 F
+GLIBC_2.29 exp2l F
+GLIBC_2.29 expf F
+GLIBC_2.29 expf32 F
+GLIBC_2.29 expf32x F
+GLIBC_2.29 expf64 F
+GLIBC_2.29 expl F
+GLIBC_2.29 expm1 F
+GLIBC_2.29 expm1f F
+GLIBC_2.29 expm1f32 F
+GLIBC_2.29 expm1f32x F
+GLIBC_2.29 expm1f64 F
+GLIBC_2.29 expm1l F
+GLIBC_2.29 f32addf32x F
+GLIBC_2.29 f32addf64 F
+GLIBC_2.29 f32divf32x F
+GLIBC_2.29 f32divf64 F
+GLIBC_2.29 f32mulf32x F
+GLIBC_2.29 f32mulf64 F
+GLIBC_2.29 f32subf32x F
+GLIBC_2.29 f32subf64 F
+GLIBC_2.29 f32xaddf64 F
+GLIBC_2.29 f32xdivf64 F
+GLIBC_2.29 f32xmulf64 F
+GLIBC_2.29 f32xsubf64 F
+GLIBC_2.29 fabs F
+GLIBC_2.29 fabsf F
+GLIBC_2.29 fabsf32 F
+GLIBC_2.29 fabsf32x F
+GLIBC_2.29 fabsf64 F
+GLIBC_2.29 fabsl F
+GLIBC_2.29 fadd F
+GLIBC_2.29 faddl F
+GLIBC_2.29 fdim F
+GLIBC_2.29 fdimf F
+GLIBC_2.29 fdimf32 F
+GLIBC_2.29 fdimf32x F
+GLIBC_2.29 fdimf64 F
+GLIBC_2.29 fdiml F
+GLIBC_2.29 fdiv F
+GLIBC_2.29 fdivl F
+GLIBC_2.29 feclearexcept F
+GLIBC_2.29 fedisableexcept F
+GLIBC_2.29 feenableexcept F
+GLIBC_2.29 fegetenv F
+GLIBC_2.29 fegetexcept F
+GLIBC_2.29 fegetexceptflag F
+GLIBC_2.29 fegetmode F
+GLIBC_2.29 fegetround F
+GLIBC_2.29 feholdexcept F
+GLIBC_2.29 feraiseexcept F
+GLIBC_2.29 fesetenv F
+GLIBC_2.29 fesetexcept F
+GLIBC_2.29 fesetexceptflag F
+GLIBC_2.29 fesetmode F
+GLIBC_2.29 fesetround F
+GLIBC_2.29 fetestexcept F
+GLIBC_2.29 fetestexceptflag F
+GLIBC_2.29 feupdateenv F
+GLIBC_2.29 finite F
+GLIBC_2.29 finitef F
+GLIBC_2.29 finitel F
+GLIBC_2.29 floor F
+GLIBC_2.29 floorf F
+GLIBC_2.29 floorf32 F
+GLIBC_2.29 floorf32x F
+GLIBC_2.29 floorf64 F
+GLIBC_2.29 floorl F
+GLIBC_2.29 fma F
+GLIBC_2.29 fmaf F
+GLIBC_2.29 fmaf32 F
+GLIBC_2.29 fmaf32x F
+GLIBC_2.29 fmaf64 F
+GLIBC_2.29 fmal F
+GLIBC_2.29 fmax F
+GLIBC_2.29 fmaxf F
+GLIBC_2.29 fmaxf32 F
+GLIBC_2.29 fmaxf32x F
+GLIBC_2.29 fmaxf64 F
+GLIBC_2.29 fmaxl F
+GLIBC_2.29 fmaxmag F
+GLIBC_2.29 fmaxmagf F
+GLIBC_2.29 fmaxmagf32 F
+GLIBC_2.29 fmaxmagf32x F
+GLIBC_2.29 fmaxmagf64 F
+GLIBC_2.29 fmaxmagl F
+GLIBC_2.29 fmin F
+GLIBC_2.29 fminf F
+GLIBC_2.29 fminf32 F
+GLIBC_2.29 fminf32x F
+GLIBC_2.29 fminf64 F
+GLIBC_2.29 fminl F
+GLIBC_2.29 fminmag F
+GLIBC_2.29 fminmagf F
+GLIBC_2.29 fminmagf32 F
+GLIBC_2.29 fminmagf32x F
+GLIBC_2.29 fminmagf64 F
+GLIBC_2.29 fminmagl F
+GLIBC_2.29 fmod F
+GLIBC_2.29 fmodf F
+GLIBC_2.29 fmodf32 F
+GLIBC_2.29 fmodf32x F
+GLIBC_2.29 fmodf64 F
+GLIBC_2.29 fmodl F
+GLIBC_2.29 fmul F
+GLIBC_2.29 fmull F
+GLIBC_2.29 frexp F
+GLIBC_2.29 frexpf F
+GLIBC_2.29 frexpf32 F
+GLIBC_2.29 frexpf32x F
+GLIBC_2.29 frexpf64 F
+GLIBC_2.29 frexpl F
+GLIBC_2.29 fromfp F
+GLIBC_2.29 fromfpf F
+GLIBC_2.29 fromfpf32 F
+GLIBC_2.29 fromfpf32x F
+GLIBC_2.29 fromfpf64 F
+GLIBC_2.29 fromfpl F
+GLIBC_2.29 fromfpx F
+GLIBC_2.29 fromfpxf F
+GLIBC_2.29 fromfpxf32 F
+GLIBC_2.29 fromfpxf32x F
+GLIBC_2.29 fromfpxf64 F
+GLIBC_2.29 fromfpxl F
+GLIBC_2.29 fsub F
+GLIBC_2.29 fsubl F
+GLIBC_2.29 gamma F
+GLIBC_2.29 gammaf F
+GLIBC_2.29 gammal F
+GLIBC_2.29 getpayload F
+GLIBC_2.29 getpayloadf F
+GLIBC_2.29 getpayloadf32 F
+GLIBC_2.29 getpayloadf32x F
+GLIBC_2.29 getpayloadf64 F
+GLIBC_2.29 getpayloadl F
+GLIBC_2.29 hypot F
+GLIBC_2.29 hypotf F
+GLIBC_2.29 hypotf32 F
+GLIBC_2.29 hypotf32x F
+GLIBC_2.29 hypotf64 F
+GLIBC_2.29 hypotl F
+GLIBC_2.29 ilogb F
+GLIBC_2.29 ilogbf F
+GLIBC_2.29 ilogbf32 F
+GLIBC_2.29 ilogbf32x F
+GLIBC_2.29 ilogbf64 F
+GLIBC_2.29 ilogbl F
+GLIBC_2.29 j0 F
+GLIBC_2.29 j0f F
+GLIBC_2.29 j0f32 F
+GLIBC_2.29 j0f32x F
+GLIBC_2.29 j0f64 F
+GLIBC_2.29 j0l F
+GLIBC_2.29 j1 F
+GLIBC_2.29 j1f F
+GLIBC_2.29 j1f32 F
+GLIBC_2.29 j1f32x F
+GLIBC_2.29 j1f64 F
+GLIBC_2.29 j1l F
+GLIBC_2.29 jn F
+GLIBC_2.29 jnf F
+GLIBC_2.29 jnf32 F
+GLIBC_2.29 jnf32x F
+GLIBC_2.29 jnf64 F
+GLIBC_2.29 jnl F
+GLIBC_2.29 ldexp F
+GLIBC_2.29 ldexpf F
+GLIBC_2.29 ldexpf32 F
+GLIBC_2.29 ldexpf32x F
+GLIBC_2.29 ldexpf64 F
+GLIBC_2.29 ldexpl F
+GLIBC_2.29 lgamma F
+GLIBC_2.29 lgamma_r F
+GLIBC_2.29 lgammaf F
+GLIBC_2.29 lgammaf32 F
+GLIBC_2.29 lgammaf32_r F
+GLIBC_2.29 lgammaf32x F
+GLIBC_2.29 lgammaf32x_r F
+GLIBC_2.29 lgammaf64 F
+GLIBC_2.29 lgammaf64_r F
+GLIBC_2.29 lgammaf_r F
+GLIBC_2.29 lgammal F
+GLIBC_2.29 lgammal_r F
+GLIBC_2.29 llogb F
+GLIBC_2.29 llogbf F
+GLIBC_2.29 llogbf32 F
+GLIBC_2.29 llogbf32x F
+GLIBC_2.29 llogbf64 F
+GLIBC_2.29 llogbl F
+GLIBC_2.29 llrint F
+GLIBC_2.29 llrintf F
+GLIBC_2.29 llrintf32 F
+GLIBC_2.29 llrintf32x F
+GLIBC_2.29 llrintf64 F
+GLIBC_2.29 llrintl F
+GLIBC_2.29 llround F
+GLIBC_2.29 llroundf F
+GLIBC_2.29 llroundf32 F
+GLIBC_2.29 llroundf32x F
+GLIBC_2.29 llroundf64 F
+GLIBC_2.29 llroundl F
+GLIBC_2.29 log F
+GLIBC_2.29 log10 F
+GLIBC_2.29 log10f F
+GLIBC_2.29 log10f32 F
+GLIBC_2.29 log10f32x F
+GLIBC_2.29 log10f64 F
+GLIBC_2.29 log10l F
+GLIBC_2.29 log1p F
+GLIBC_2.29 log1pf F
+GLIBC_2.29 log1pf32 F
+GLIBC_2.29 log1pf32x F
+GLIBC_2.29 log1pf64 F
+GLIBC_2.29 log1pl F
+GLIBC_2.29 log2 F
+GLIBC_2.29 log2f F
+GLIBC_2.29 log2f32 F
+GLIBC_2.29 log2f32x F
+GLIBC_2.29 log2f64 F
+GLIBC_2.29 log2l F
+GLIBC_2.29 logb F
+GLIBC_2.29 logbf F
+GLIBC_2.29 logbf32 F
+GLIBC_2.29 logbf32x F
+GLIBC_2.29 logbf64 F
+GLIBC_2.29 logbl F
+GLIBC_2.29 logf F
+GLIBC_2.29 logf32 F
+GLIBC_2.29 logf32x F
+GLIBC_2.29 logf64 F
+GLIBC_2.29 logl F
+GLIBC_2.29 lrint F
+GLIBC_2.29 lrintf F
+GLIBC_2.29 lrintf32 F
+GLIBC_2.29 lrintf32x F
+GLIBC_2.29 lrintf64 F
+GLIBC_2.29 lrintl F
+GLIBC_2.29 lround F
+GLIBC_2.29 lroundf F
+GLIBC_2.29 lroundf32 F
+GLIBC_2.29 lroundf32x F
+GLIBC_2.29 lroundf64 F
+GLIBC_2.29 lroundl F
+GLIBC_2.29 modf F
+GLIBC_2.29 modff F
+GLIBC_2.29 modff32 F
+GLIBC_2.29 modff32x F
+GLIBC_2.29 modff64 F
+GLIBC_2.29 modfl F
+GLIBC_2.29 nan F
+GLIBC_2.29 nanf F
+GLIBC_2.29 nanf32 F
+GLIBC_2.29 nanf32x F
+GLIBC_2.29 nanf64 F
+GLIBC_2.29 nanl F
+GLIBC_2.29 nearbyint F
+GLIBC_2.29 nearbyintf F
+GLIBC_2.29 nearbyintf32 F
+GLIBC_2.29 nearbyintf32x F
+GLIBC_2.29 nearbyintf64 F
+GLIBC_2.29 nearbyintl F
+GLIBC_2.29 nextafter F
+GLIBC_2.29 nextafterf F
+GLIBC_2.29 nextafterf32 F
+GLIBC_2.29 nextafterf32x F
+GLIBC_2.29 nextafterf64 F
+GLIBC_2.29 nextafterl F
+GLIBC_2.29 nextdown F
+GLIBC_2.29 nextdownf F
+GLIBC_2.29 nextdownf32 F
+GLIBC_2.29 nextdownf32x F
+GLIBC_2.29 nextdownf64 F
+GLIBC_2.29 nextdownl F
+GLIBC_2.29 nexttoward F
+GLIBC_2.29 nexttowardf F
+GLIBC_2.29 nexttowardl F
+GLIBC_2.29 nextup F
+GLIBC_2.29 nextupf F
+GLIBC_2.29 nextupf32 F
+GLIBC_2.29 nextupf32x F
+GLIBC_2.29 nextupf64 F
+GLIBC_2.29 nextupl F
+GLIBC_2.29 pow F
+GLIBC_2.29 powf F
+GLIBC_2.29 powf32 F
+GLIBC_2.29 powf32x F
+GLIBC_2.29 powf64 F
+GLIBC_2.29 powl F
+GLIBC_2.29 remainder F
+GLIBC_2.29 remainderf F
+GLIBC_2.29 remainderf32 F
+GLIBC_2.29 remainderf32x F
+GLIBC_2.29 remainderf64 F
+GLIBC_2.29 remainderl F
+GLIBC_2.29 remquo F
+GLIBC_2.29 remquof F
+GLIBC_2.29 remquof32 F
+GLIBC_2.29 remquof32x F
+GLIBC_2.29 remquof64 F
+GLIBC_2.29 remquol F
+GLIBC_2.29 rint F
+GLIBC_2.29 rintf F
+GLIBC_2.29 rintf32 F
+GLIBC_2.29 rintf32x F
+GLIBC_2.29 rintf64 F
+GLIBC_2.29 rintl F
+GLIBC_2.29 round F
+GLIBC_2.29 roundeven F
+GLIBC_2.29 roundevenf F
+GLIBC_2.29 roundevenf32 F
+GLIBC_2.29 roundevenf32x F
+GLIBC_2.29 roundevenf64 F
+GLIBC_2.29 roundevenl F
+GLIBC_2.29 roundf F
+GLIBC_2.29 roundf32 F
+GLIBC_2.29 roundf32x F
+GLIBC_2.29 roundf64 F
+GLIBC_2.29 roundl F
+GLIBC_2.29 scalb F
+GLIBC_2.29 scalbf F
+GLIBC_2.29 scalbl F
+GLIBC_2.29 scalbln F
+GLIBC_2.29 scalblnf F
+GLIBC_2.29 scalblnf32 F
+GLIBC_2.29 scalblnf32x F
+GLIBC_2.29 scalblnf64 F
+GLIBC_2.29 scalblnl F
+GLIBC_2.29 scalbn F
+GLIBC_2.29 scalbnf F
+GLIBC_2.29 scalbnf32 F
+GLIBC_2.29 scalbnf32x F
+GLIBC_2.29 scalbnf64 F
+GLIBC_2.29 scalbnl F
+GLIBC_2.29 setpayload F
+GLIBC_2.29 setpayloadf F
+GLIBC_2.29 setpayloadf32 F
+GLIBC_2.29 setpayloadf32x F
+GLIBC_2.29 setpayloadf64 F
+GLIBC_2.29 setpayloadl F
+GLIBC_2.29 setpayloadsig F
+GLIBC_2.29 setpayloadsigf F
+GLIBC_2.29 setpayloadsigf32 F
+GLIBC_2.29 setpayloadsigf32x F
+GLIBC_2.29 setpayloadsigf64 F
+GLIBC_2.29 setpayloadsigl F
+GLIBC_2.29 signgam D 0x4
+GLIBC_2.29 significand F
+GLIBC_2.29 significandf F
+GLIBC_2.29 significandl F
+GLIBC_2.29 sin F
+GLIBC_2.29 sincos F
+GLIBC_2.29 sincosf F
+GLIBC_2.29 sincosf32 F
+GLIBC_2.29 sincosf32x F
+GLIBC_2.29 sincosf64 F
+GLIBC_2.29 sincosl F
+GLIBC_2.29 sinf F
+GLIBC_2.29 sinf32 F
+GLIBC_2.29 sinf32x F
+GLIBC_2.29 sinf64 F
+GLIBC_2.29 sinh F
+GLIBC_2.29 sinhf F
+GLIBC_2.29 sinhf32 F
+GLIBC_2.29 sinhf32x F
+GLIBC_2.29 sinhf64 F
+GLIBC_2.29 sinhl F
+GLIBC_2.29 sinl F
+GLIBC_2.29 sqrt F
+GLIBC_2.29 sqrtf F
+GLIBC_2.29 sqrtf32 F
+GLIBC_2.29 sqrtf32x F
+GLIBC_2.29 sqrtf64 F
+GLIBC_2.29 sqrtl F
+GLIBC_2.29 tan F
+GLIBC_2.29 tanf F
+GLIBC_2.29 tanf32 F
+GLIBC_2.29 tanf32x F
+GLIBC_2.29 tanf64 F
+GLIBC_2.29 tanh F
+GLIBC_2.29 tanhf F
+GLIBC_2.29 tanhf32 F
+GLIBC_2.29 tanhf32x F
+GLIBC_2.29 tanhf64 F
+GLIBC_2.29 tanhl F
+GLIBC_2.29 tanl F
+GLIBC_2.29 tgamma F
+GLIBC_2.29 tgammaf F
+GLIBC_2.29 tgammaf32 F
+GLIBC_2.29 tgammaf32x F
+GLIBC_2.29 tgammaf64 F
+GLIBC_2.29 tgammal F
+GLIBC_2.29 totalorder F
+GLIBC_2.29 totalorderf F
+GLIBC_2.29 totalorderf32 F
+GLIBC_2.29 totalorderf32x F
+GLIBC_2.29 totalorderf64 F
+GLIBC_2.29 totalorderl F
+GLIBC_2.29 totalordermag F
+GLIBC_2.29 totalordermagf F
+GLIBC_2.29 totalordermagf32 F
+GLIBC_2.29 totalordermagf32x F
+GLIBC_2.29 totalordermagf64 F
+GLIBC_2.29 totalordermagl F
+GLIBC_2.29 trunc F
+GLIBC_2.29 truncf F
+GLIBC_2.29 truncf32 F
+GLIBC_2.29 truncf32x F
+GLIBC_2.29 truncf64 F
+GLIBC_2.29 truncl F
+GLIBC_2.29 ufromfp F
+GLIBC_2.29 ufromfpf F
+GLIBC_2.29 ufromfpf32 F
+GLIBC_2.29 ufromfpf32x F
+GLIBC_2.29 ufromfpf64 F
+GLIBC_2.29 ufromfpl F
+GLIBC_2.29 ufromfpx F
+GLIBC_2.29 ufromfpxf F
+GLIBC_2.29 ufromfpxf32 F
+GLIBC_2.29 ufromfpxf32x F
+GLIBC_2.29 ufromfpxf64 F
+GLIBC_2.29 ufromfpxl F
+GLIBC_2.29 y0 F
+GLIBC_2.29 y0f F
+GLIBC_2.29 y0f32 F
+GLIBC_2.29 y0f32x F
+GLIBC_2.29 y0f64 F
+GLIBC_2.29 y0l F
+GLIBC_2.29 y1 F
+GLIBC_2.29 y1f F
+GLIBC_2.29 y1f32 F
+GLIBC_2.29 y1f32x F
+GLIBC_2.29 y1f64 F
+GLIBC_2.29 y1l F
+GLIBC_2.29 yn F
+GLIBC_2.29 ynf F
+GLIBC_2.29 ynf32 F
+GLIBC_2.29 ynf32x F
+GLIBC_2.29 ynf64 F
+GLIBC_2.29 ynl F
+GLIBC_2.31 totalorder F
+GLIBC_2.31 totalorderf F
+GLIBC_2.31 totalorderf32 F
+GLIBC_2.31 totalorderf32x F
+GLIBC_2.31 totalorderf64 F
+GLIBC_2.31 totalorderl F
+GLIBC_2.31 totalordermag F
+GLIBC_2.31 totalordermagf F
+GLIBC_2.31 totalordermagf32 F
+GLIBC_2.31 totalordermagf32x F
+GLIBC_2.31 totalordermagf64 F
+GLIBC_2.31 totalordermagl F
diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
new file mode 100644
index 0000000000..edbdea39cf
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
@@ -0,0 +1,230 @@
+GLIBC_2.29 _IO_flockfile F
+GLIBC_2.29 _IO_ftrylockfile F
+GLIBC_2.29 _IO_funlockfile F
+GLIBC_2.29 __close F
+GLIBC_2.29 __connect F
+GLIBC_2.29 __errno_location F
+GLIBC_2.29 __h_errno_location F
+GLIBC_2.29 __libc_allocate_rtsig F
+GLIBC_2.29 __libc_current_sigrtmax F
+GLIBC_2.29 __libc_current_sigrtmin F
+GLIBC_2.29 __lseek F
+GLIBC_2.29 __open F
+GLIBC_2.29 __open64 F
+GLIBC_2.29 __pread64 F
+GLIBC_2.29 __pthread_cleanup_routine F
+GLIBC_2.29 __pthread_getspecific F
+GLIBC_2.29 __pthread_key_create F
+GLIBC_2.29 __pthread_mutex_destroy F
+GLIBC_2.29 __pthread_mutex_init F
+GLIBC_2.29 __pthread_mutex_lock F
+GLIBC_2.29 __pthread_mutex_trylock F
+GLIBC_2.29 __pthread_mutex_unlock F
+GLIBC_2.29 __pthread_mutexattr_destroy F
+GLIBC_2.29 __pthread_mutexattr_init F
+GLIBC_2.29 __pthread_mutexattr_settype F
+GLIBC_2.29 __pthread_once F
+GLIBC_2.29 __pthread_register_cancel F
+GLIBC_2.29 __pthread_register_cancel_defer F
+GLIBC_2.29 __pthread_rwlock_destroy F
+GLIBC_2.29 __pthread_rwlock_init F
+GLIBC_2.29 __pthread_rwlock_rdlock F
+GLIBC_2.29 __pthread_rwlock_tryrdlock F
+GLIBC_2.29 __pthread_rwlock_trywrlock F
+GLIBC_2.29 __pthread_rwlock_unlock F
+GLIBC_2.29 __pthread_rwlock_wrlock F
+GLIBC_2.29 __pthread_setspecific F
+GLIBC_2.29 __pthread_unregister_cancel F
+GLIBC_2.29 __pthread_unregister_cancel_restore F
+GLIBC_2.29 __pthread_unwind_next F
+GLIBC_2.29 __pwrite64 F
+GLIBC_2.29 __read F
+GLIBC_2.29 __res_state F
+GLIBC_2.29 __send F
+GLIBC_2.29 __sigaction F
+GLIBC_2.29 __wait F
+GLIBC_2.29 __write F
+GLIBC_2.29 _pthread_cleanup_pop F
+GLIBC_2.29 _pthread_cleanup_pop_restore F
+GLIBC_2.29 _pthread_cleanup_push F
+GLIBC_2.29 _pthread_cleanup_push_defer F
+GLIBC_2.29 accept F
+GLIBC_2.29 call_once F
+GLIBC_2.29 close F
+GLIBC_2.29 cnd_broadcast F
+GLIBC_2.29 cnd_destroy F
+GLIBC_2.29 cnd_init F
+GLIBC_2.29 cnd_signal F
+GLIBC_2.29 cnd_timedwait F
+GLIBC_2.29 cnd_wait F
+GLIBC_2.29 connect F
+GLIBC_2.29 flockfile F
+GLIBC_2.29 fsync F
+GLIBC_2.29 ftrylockfile F
+GLIBC_2.29 funlockfile F
+GLIBC_2.29 lseek F
+GLIBC_2.29 lseek64 F
+GLIBC_2.29 msync F
+GLIBC_2.29 mtx_destroy F
+GLIBC_2.29 mtx_init F
+GLIBC_2.29 mtx_lock F
+GLIBC_2.29 mtx_timedlock F
+GLIBC_2.29 mtx_trylock F
+GLIBC_2.29 mtx_unlock F
+GLIBC_2.29 open F
+GLIBC_2.29 open64 F
+GLIBC_2.29 pause F
+GLIBC_2.29 pread F
+GLIBC_2.29 pread64 F
+GLIBC_2.29 pthread_attr_getaffinity_np F
+GLIBC_2.29 pthread_attr_getguardsize F
+GLIBC_2.29 pthread_attr_getschedpolicy F
+GLIBC_2.29 pthread_attr_getscope F
+GLIBC_2.29 pthread_attr_getstack F
+GLIBC_2.29 pthread_attr_getstackaddr F
+GLIBC_2.29 pthread_attr_getstacksize F
+GLIBC_2.29 pthread_attr_setaffinity_np F
+GLIBC_2.29 pthread_attr_setguardsize F
+GLIBC_2.29 pthread_attr_setschedpolicy F
+GLIBC_2.29 pthread_attr_setscope F
+GLIBC_2.29 pthread_attr_setstack F
+GLIBC_2.29 pthread_attr_setstackaddr F
+GLIBC_2.29 pthread_attr_setstacksize F
+GLIBC_2.29 pthread_barrier_destroy F
+GLIBC_2.29 pthread_barrier_init F
+GLIBC_2.29 pthread_barrier_wait F
+GLIBC_2.29 pthread_barrierattr_destroy F
+GLIBC_2.29 pthread_barrierattr_getpshared F
+GLIBC_2.29 pthread_barrierattr_init F
+GLIBC_2.29 pthread_barrierattr_setpshared F
+GLIBC_2.29 pthread_cancel F
+GLIBC_2.29 pthread_cond_broadcast F
+GLIBC_2.29 pthread_cond_destroy F
+GLIBC_2.29 pthread_cond_init F
+GLIBC_2.29 pthread_cond_signal F
+GLIBC_2.29 pthread_cond_timedwait F
+GLIBC_2.29 pthread_cond_wait F
+GLIBC_2.29 pthread_condattr_destroy F
+GLIBC_2.29 pthread_condattr_getclock F
+GLIBC_2.29 pthread_condattr_getpshared F
+GLIBC_2.29 pthread_condattr_init F
+GLIBC_2.29 pthread_condattr_setclock F
+GLIBC_2.29 pthread_condattr_setpshared F
+GLIBC_2.29 pthread_create F
+GLIBC_2.29 pthread_detach F
+GLIBC_2.29 pthread_exit F
+GLIBC_2.29 pthread_getaffinity_np F
+GLIBC_2.29 pthread_getattr_default_np F
+GLIBC_2.29 pthread_getattr_np F
+GLIBC_2.29 pthread_getconcurrency F
+GLIBC_2.29 pthread_getcpuclockid F
+GLIBC_2.29 pthread_getname_np F
+GLIBC_2.29 pthread_getschedparam F
+GLIBC_2.29 pthread_getspecific F
+GLIBC_2.29 pthread_join F
+GLIBC_2.29 pthread_key_create F
+GLIBC_2.29 pthread_key_delete F
+GLIBC_2.29 pthread_kill F
+GLIBC_2.29 pthread_kill_other_threads_np F
+GLIBC_2.29 pthread_mutex_consistent F
+GLIBC_2.29 pthread_mutex_consistent_np F
+GLIBC_2.29 pthread_mutex_destroy F
+GLIBC_2.29 pthread_mutex_getprioceiling F
+GLIBC_2.29 pthread_mutex_init F
+GLIBC_2.29 pthread_mutex_lock F
+GLIBC_2.29 pthread_mutex_setprioceiling F
+GLIBC_2.29 pthread_mutex_timedlock F
+GLIBC_2.29 pthread_mutex_trylock F
+GLIBC_2.29 pthread_mutex_unlock F
+GLIBC_2.29 pthread_mutexattr_destroy F
+GLIBC_2.29 pthread_mutexattr_getkind_np F
+GLIBC_2.29 pthread_mutexattr_getprioceiling F
+GLIBC_2.29 pthread_mutexattr_getprotocol F
+GLIBC_2.29 pthread_mutexattr_getpshared F
+GLIBC_2.29 pthread_mutexattr_getrobust F
+GLIBC_2.29 pthread_mutexattr_getrobust_np F
+GLIBC_2.29 pthread_mutexattr_gettype F
+GLIBC_2.29 pthread_mutexattr_init F
+GLIBC_2.29 pthread_mutexattr_setkind_np F
+GLIBC_2.29 pthread_mutexattr_setprioceiling F
+GLIBC_2.29 pthread_mutexattr_setprotocol F
+GLIBC_2.29 pthread_mutexattr_setpshared F
+GLIBC_2.29 pthread_mutexattr_setrobust F
+GLIBC_2.29 pthread_mutexattr_setrobust_np F
+GLIBC_2.29 pthread_mutexattr_settype F
+GLIBC_2.29 pthread_once F
+GLIBC_2.29 pthread_rwlock_destroy F
+GLIBC_2.29 pthread_rwlock_init F
+GLIBC_2.29 pthread_rwlock_rdlock F
+GLIBC_2.29 pthread_rwlock_timedrdlock F
+GLIBC_2.29 pthread_rwlock_timedwrlock F
+GLIBC_2.29 pthread_rwlock_tryrdlock F
+GLIBC_2.29 pthread_rwlock_trywrlock F
+GLIBC_2.29 pthread_rwlock_unlock F
+GLIBC_2.29 pthread_rwlock_wrlock F
+GLIBC_2.29 pthread_rwlockattr_destroy F
+GLIBC_2.29 pthread_rwlockattr_getkind_np F
+GLIBC_2.29 pthread_rwlockattr_getpshared F
+GLIBC_2.29 pthread_rwlockattr_init F
+GLIBC_2.29 pthread_rwlockattr_setkind_np F
+GLIBC_2.29 pthread_rwlockattr_setpshared F
+GLIBC_2.29 pthread_setaffinity_np F
+GLIBC_2.29 pthread_setattr_default_np F
+GLIBC_2.29 pthread_setcancelstate F
+GLIBC_2.29 pthread_setcanceltype F
+GLIBC_2.29 pthread_setconcurrency F
+GLIBC_2.29 pthread_setname_np F
+GLIBC_2.29 pthread_setschedparam F
+GLIBC_2.29 pthread_setschedprio F
+GLIBC_2.29 pthread_setspecific F
+GLIBC_2.29 pthread_sigmask F
+GLIBC_2.29 pthread_sigqueue F
+GLIBC_2.29 pthread_spin_destroy F
+GLIBC_2.29 pthread_spin_init F
+GLIBC_2.29 pthread_spin_lock F
+GLIBC_2.29 pthread_spin_trylock F
+GLIBC_2.29 pthread_spin_unlock F
+GLIBC_2.29 pthread_testcancel F
+GLIBC_2.29 pthread_timedjoin_np F
+GLIBC_2.29 pthread_tryjoin_np F
+GLIBC_2.29 pthread_yield F
+GLIBC_2.29 pwrite F
+GLIBC_2.29 pwrite64 F
+GLIBC_2.29 raise F
+GLIBC_2.29 read F
+GLIBC_2.29 recv F
+GLIBC_2.29 recvfrom F
+GLIBC_2.29 recvmsg F
+GLIBC_2.29 sem_close F
+GLIBC_2.29 sem_destroy F
+GLIBC_2.29 sem_getvalue F
+GLIBC_2.29 sem_init F
+GLIBC_2.29 sem_open F
+GLIBC_2.29 sem_post F
+GLIBC_2.29 sem_timedwait F
+GLIBC_2.29 sem_trywait F
+GLIBC_2.29 sem_unlink F
+GLIBC_2.29 sem_wait F
+GLIBC_2.29 send F
+GLIBC_2.29 sendmsg F
+GLIBC_2.29 sendto F
+GLIBC_2.29 sigaction F
+GLIBC_2.29 sigwait F
+GLIBC_2.29 tcdrain F
+GLIBC_2.29 thrd_create F
+GLIBC_2.29 thrd_detach F
+GLIBC_2.29 thrd_exit F
+GLIBC_2.29 thrd_join F
+GLIBC_2.29 tss_create F
+GLIBC_2.29 tss_delete F
+GLIBC_2.29 tss_get F
+GLIBC_2.29 tss_set F
+GLIBC_2.29 wait F
+GLIBC_2.29 waitpid F
+GLIBC_2.29 write F
+GLIBC_2.30 pthread_cond_clockwait F
+GLIBC_2.30 pthread_mutex_clocklock F
+GLIBC_2.30 pthread_rwlock_clockrdlock F
+GLIBC_2.30 pthread_rwlock_clockwrlock F
+GLIBC_2.30 sem_clockwait F
+GLIBC_2.31 pthread_clockjoin_np F
diff --git a/sysdeps/unix/sysv/linux/csky/libresolv.abilist b/sysdeps/unix/sysv/linux/csky/libresolv.abilist
new file mode 100644
index 0000000000..2830a7efd1
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/csky/libresolv.abilist
@@ -0,0 +1,79 @@
+GLIBC_2.29 __b64_ntop F
+GLIBC_2.29 __b64_pton F
+GLIBC_2.29 __dn_comp F
+GLIBC_2.29 __dn_count_labels F
+GLIBC_2.29 __dn_expand F
+GLIBC_2.29 __dn_skipname F
+GLIBC_2.29 __fp_nquery F
+GLIBC_2.29 __fp_query F
+GLIBC_2.29 __fp_resstat F
+GLIBC_2.29 __hostalias F
+GLIBC_2.29 __loc_aton F
+GLIBC_2.29 __loc_ntoa F
+GLIBC_2.29 __p_cdname F
+GLIBC_2.29 __p_cdnname F
+GLIBC_2.29 __p_class F
+GLIBC_2.29 __p_class_syms D 0x54
+GLIBC_2.29 __p_fqname F
+GLIBC_2.29 __p_fqnname F
+GLIBC_2.29 __p_option F
+GLIBC_2.29 __p_query F
+GLIBC_2.29 __p_rcode F
+GLIBC_2.29 __p_time F
+GLIBC_2.29 __p_type F
+GLIBC_2.29 __p_type_syms D 0x228
+GLIBC_2.29 __putlong F
+GLIBC_2.29 __putshort F
+GLIBC_2.29 __res_close F
+GLIBC_2.29 __res_dnok F
+GLIBC_2.29 __res_hnok F
+GLIBC_2.29 __res_hostalias F
+GLIBC_2.29 __res_isourserver F
+GLIBC_2.29 __res_mailok F
+GLIBC_2.29 __res_mkquery F
+GLIBC_2.29 __res_nameinquery F
+GLIBC_2.29 __res_nmkquery F
+GLIBC_2.29 __res_nquery F
+GLIBC_2.29 __res_nquerydomain F
+GLIBC_2.29 __res_nsearch F
+GLIBC_2.29 __res_nsend F
+GLIBC_2.29 __res_ownok F
+GLIBC_2.29 __res_queriesmatch F
+GLIBC_2.29 __res_query F
+GLIBC_2.29 __res_querydomain F
+GLIBC_2.29 __res_search F
+GLIBC_2.29 __res_send F
+GLIBC_2.29 __sym_ntop F
+GLIBC_2.29 __sym_ntos F
+GLIBC_2.29 __sym_ston F
+GLIBC_2.29 _getlong F
+GLIBC_2.29 _getshort F
+GLIBC_2.29 inet_net_ntop F
+GLIBC_2.29 inet_net_pton F
+GLIBC_2.29 inet_neta F
+GLIBC_2.29 ns_datetosecs F
+GLIBC_2.29 ns_format_ttl F
+GLIBC_2.29 ns_get16 F
+GLIBC_2.29 ns_get32 F
+GLIBC_2.29 ns_initparse F
+GLIBC_2.29 ns_makecanon F
+GLIBC_2.29 ns_msg_getflag F
+GLIBC_2.29 ns_name_compress F
+GLIBC_2.29 ns_name_ntol F
+GLIBC_2.29 ns_name_ntop F
+GLIBC_2.29 ns_name_pack F
+GLIBC_2.29 ns_name_pton F
+GLIBC_2.29 ns_name_rollback F
+GLIBC_2.29 ns_name_skip F
+GLIBC_2.29 ns_name_uncompress F
+GLIBC_2.29 ns_name_unpack F
+GLIBC_2.29 ns_parse_ttl F
+GLIBC_2.29 ns_parserr F
+GLIBC_2.29 ns_put16 F
+GLIBC_2.29 ns_put32 F
+GLIBC_2.29 ns_samedomain F
+GLIBC_2.29 ns_samename F
+GLIBC_2.29 ns_skiprr F
+GLIBC_2.29 ns_sprintrr F
+GLIBC_2.29 ns_sprintrrf F
+GLIBC_2.29 ns_subdomain F
diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist
new file mode 100644
index 0000000000..c6690ef7c1
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/csky/librt.abilist
@@ -0,0 +1,35 @@
+GLIBC_2.29 __mq_open_2 F
+GLIBC_2.29 aio_cancel F
+GLIBC_2.29 aio_cancel64 F
+GLIBC_2.29 aio_error F
+GLIBC_2.29 aio_error64 F
+GLIBC_2.29 aio_fsync F
+GLIBC_2.29 aio_fsync64 F
+GLIBC_2.29 aio_init F
+GLIBC_2.29 aio_read F
+GLIBC_2.29 aio_read64 F
+GLIBC_2.29 aio_return F
+GLIBC_2.29 aio_return64 F
+GLIBC_2.29 aio_suspend F
+GLIBC_2.29 aio_suspend64 F
+GLIBC_2.29 aio_write F
+GLIBC_2.29 aio_write64 F
+GLIBC_2.29 lio_listio F
+GLIBC_2.29 lio_listio64 F
+GLIBC_2.29 mq_close F
+GLIBC_2.29 mq_getattr F
+GLIBC_2.29 mq_notify F
+GLIBC_2.29 mq_open F
+GLIBC_2.29 mq_receive F
+GLIBC_2.29 mq_send F
+GLIBC_2.29 mq_setattr F
+GLIBC_2.29 mq_timedreceive F
+GLIBC_2.29 mq_timedsend F
+GLIBC_2.29 mq_unlink F
+GLIBC_2.29 shm_open F
+GLIBC_2.29 shm_unlink F
+GLIBC_2.29 timer_create F
+GLIBC_2.29 timer_delete F
+GLIBC_2.29 timer_getoverrun F
+GLIBC_2.29 timer_gettime F
+GLIBC_2.29 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/csky/libthread_db.abilist b/sysdeps/unix/sysv/linux/csky/libthread_db.abilist
new file mode 100644
index 0000000000..37e9bace55
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/csky/libthread_db.abilist
@@ -0,0 +1,40 @@
+GLIBC_2.29 td_init F
+GLIBC_2.29 td_log F
+GLIBC_2.29 td_symbol_list F
+GLIBC_2.29 td_ta_clear_event F
+GLIBC_2.29 td_ta_delete F
+GLIBC_2.29 td_ta_enable_stats F
+GLIBC_2.29 td_ta_event_addr F
+GLIBC_2.29 td_ta_event_getmsg F
+GLIBC_2.29 td_ta_get_nthreads F
+GLIBC_2.29 td_ta_get_ph F
+GLIBC_2.29 td_ta_get_stats F
+GLIBC_2.29 td_ta_map_id2thr F
+GLIBC_2.29 td_ta_map_lwp2thr F
+GLIBC_2.29 td_ta_new F
+GLIBC_2.29 td_ta_reset_stats F
+GLIBC_2.29 td_ta_set_event F
+GLIBC_2.29 td_ta_setconcurrency F
+GLIBC_2.29 td_ta_thr_iter F
+GLIBC_2.29 td_ta_tsd_iter F
+GLIBC_2.29 td_thr_clear_event F
+GLIBC_2.29 td_thr_dbresume F
+GLIBC_2.29 td_thr_dbsuspend F
+GLIBC_2.29 td_thr_event_enable F
+GLIBC_2.29 td_thr_event_getmsg F
+GLIBC_2.29 td_thr_get_info F
+GLIBC_2.29 td_thr_getfpregs F
+GLIBC_2.29 td_thr_getgregs F
+GLIBC_2.29 td_thr_getxregs F
+GLIBC_2.29 td_thr_getxregsize F
+GLIBC_2.29 td_thr_set_event F
+GLIBC_2.29 td_thr_setfpregs F
+GLIBC_2.29 td_thr_setgregs F
+GLIBC_2.29 td_thr_setprio F
+GLIBC_2.29 td_thr_setsigpending F
+GLIBC_2.29 td_thr_setxregs F
+GLIBC_2.29 td_thr_sigsetmask F
+GLIBC_2.29 td_thr_tls_get_addr F
+GLIBC_2.29 td_thr_tlsbase F
+GLIBC_2.29 td_thr_tsd F
+GLIBC_2.29 td_thr_validate F
diff --git a/sysdeps/unix/sysv/linux/csky/libutil.abilist b/sysdeps/unix/sysv/linux/csky/libutil.abilist
new file mode 100644
index 0000000000..cbd11999a4
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/csky/libutil.abilist
@@ -0,0 +1,6 @@
+GLIBC_2.29 forkpty F
+GLIBC_2.29 login F
+GLIBC_2.29 login_tty F
+GLIBC_2.29 logout F
+GLIBC_2.29 logwtmp F
+GLIBC_2.29 openpty F
diff --git a/sysdeps/unix/sysv/linux/csky/localplt.data b/sysdeps/unix/sysv/linux/csky/localplt.data
new file mode 100644
index 0000000000..14c02cb2d6
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/csky/localplt.data
@@ -0,0 +1,19 @@
+# See scripts/check-localplt.awk for how this file is processed.
+# PLT use is required for the malloc family and for matherr because
+# users can define their own functions and have library internals call them.
+libc.so: calloc
+libc.so: free
+libc.so: malloc
+libc.so: memalign
+libc.so: realloc
+# The main malloc is interposed into the dynamic linker, for
+# allocations after the initial link (when dlopen is used).
+ld.so: malloc
+ld.so: calloc
+ld.so: realloc
+ld.so: free
+# The TLS-enabled version of these functions is interposed from libc.so.
+ld.so: _dl_signal_error
+ld.so: _dl_catch_error
+ld.so: _dl_signal_exception
+ld.so: _dl_catch_exception
diff --git a/sysdeps/unix/sysv/linux/csky/makecontext.c b/sysdeps/unix/sysv/linux/csky/makecontext.c
new file mode 100644
index 0000000000..a497b8ba65
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/csky/makecontext.c
@@ -0,0 +1,74 @@
+/* Create new context. C-SKY version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdarg.h>
+#include <ucontext.h>
+
+/* Number of arguments that go in registers. */
+#define NREG_ARGS 4
+
+/* Take a context previously prepared via getcontext() and set to
+ call func() with the given int only args. */
+void
+__makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...)
+{
+ extern void __startcontext (void);
+ unsigned long *funcstack;
+ va_list vl;
+ unsigned long *regptr;
+ unsigned int reg;
+ int misaligned;
+
+ /* Start at the top of stack. */
+ funcstack = (unsigned long *) (ucp->uc_stack.ss_sp + ucp->uc_stack.ss_size);
+
+ /* Ensure the stack stays eight byte aligned. */
+ misaligned = ((unsigned long) funcstack & 4) != 0;
+
+ if ((argc > NREG_ARGS) && (argc & 1) != 0)
+ misaligned = !misaligned;
+
+ if (misaligned)
+ funcstack -= 1;
+
+ va_start (vl, argc);
+
+ /* Reserve space for the on-stack arguments. */
+ if (argc > NREG_ARGS)
+ funcstack -= (argc - NREG_ARGS);
+
+ ucp->uc_mcontext.__gregs.__usp = (unsigned long) funcstack;
+ ucp->uc_mcontext.__gregs.__pc = (unsigned long) func;
+
+ /* Exit to startcontext() with the next context in R9. */
+ ucp->uc_mcontext.__gregs.__regs[5] = (unsigned long) ucp->uc_link;
+ ucp->uc_mcontext.__gregs.__lr = (unsigned long) __startcontext;
+
+ /* The first four arguments go into registers. */
+ regptr = &(ucp->uc_mcontext.__gregs.__a0);
+
+ for (reg = 0; (reg < argc) && (reg < NREG_ARGS); reg++)
+ *regptr++ = va_arg (vl, unsigned long);
+
+ /* And the remainder on the stack. */
+ for (; reg < argc; reg++)
+ *funcstack++ = va_arg (vl, unsigned long);
+
+ va_end (vl);
+}
+weak_alias (__makecontext, makecontext)
diff --git a/sysdeps/unix/sysv/linux/csky/register-dump.h b/sysdeps/unix/sysv/linux/csky/register-dump.h
new file mode 100644
index 0000000000..a3f0537c1c
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/csky/register-dump.h
@@ -0,0 +1,190 @@
+/* Dump registers.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <sys/uio.h>
+#include <_itoa.h>
+#include <bits/sigcontext.h>
+#include <sys/ucontext.h>
+
+/* abiv1 register dump in this format:
+
+ PSR: XXXXXXXX PC: XXXXXXXX SP: XXXXXXXX LR: XXXXXXXX
+ MASK: XXXXXXXX
+
+ A0: XXXXXXXX A1: XXXXXXXX A2: XXXXXXXX A3: XXXXXXXX
+ R6: XXXXXXXX R7: XXXXXXXX R8: XXXXXXXX R9: XXXXXXXX
+ R10: XXXXXXXX R11: XXXXXXXX R12: XXXXXXXX R13: XXXXXXXX
+ R14: XXXXXXXX R1: XXXXXXXX
+
+ abiv2 register dump in this format:
+
+ PSR: XXXXXXXX PC: XXXXXXXX SP: XXXXXXXX LR: XXXXXXXX
+ MASK: XXXXXXXX
+
+ A0: XXXXXXXX A1: XXXXXXXX A2: XXXXXXXX A3: XXXXXXXX
+ R4: XXXXXXXX R5: XXXXXXXX R6: XXXXXXXX R7: XXXXXXXX
+ R8: XXXXXXXX R9: XXXXXXXX R10: XXXXXXXX R11: XXXXXXXX
+ R12: XXXXXXXX R13: XXXXXXXX R14: XXXXXXXX R15: XXXXXXXX
+ R16: XXXXXXXX R17: XXXXXXXX R18: XXXXXXXX R19: XXXXXXXX
+ R20: XXXXXXXX R21: XXXXXXXX R22: XXXXXXXX R23: XXXXXXXX
+ R24: XXXXXXXX R25: XXXXXXXX R26: XXXXXXXX R27: XXXXXXXX
+ R28: XXXXXXXX R29: XXXXXXXX R30: XXXXXXXX R31: XXXXXXXX
+
+ */
+
+static void
+hexvalue (unsigned long int value, char *buf, size_t len)
+{
+ char *cp = _itoa_word (value, buf + len, 16, 0);
+ while (cp > buf)
+ *--cp = '0';
+}
+
+static void
+register_dump (int fd, const struct ucontext_t *ctx)
+{
+ char regs[35][8];
+ struct iovec iov[97];
+ size_t nr = 0;
+
+#define ADD_STRING(str) \
+ iov[nr].iov_base = (char *) str; \
+ iov[nr].iov_len = strlen (str); \
+ ++nr
+#define ADD_MEM(str, len) \
+ iov[nr].iov_base = str; \
+ iov[nr].iov_len = len; \
+ ++nr
+
+ /* Generate strings of register contents. */
+ hexvalue (ctx->uc_mcontext.__gregs.__sr, regs[0], 8);
+ hexvalue (ctx->uc_mcontext.__gregs.__pc, regs[1], 8);
+ hexvalue (ctx->uc_mcontext.__gregs.__usp, regs[2], 8);
+ hexvalue (ctx->uc_mcontext.__gregs.__lr, regs[3], 8);
+ hexvalue (ctx->uc_mcontext.__gregs.__a0, regs[4], 8);
+ hexvalue (ctx->uc_mcontext.__gregs.__a1, regs[5], 8);
+ hexvalue (ctx->uc_mcontext.__gregs.__a2, regs[6], 8);
+ hexvalue (ctx->uc_mcontext.__gregs.__a3, regs[7], 8);
+ hexvalue (ctx->uc_mcontext.__gregs.__regs[0], regs[8], 8);
+ hexvalue (ctx->uc_mcontext.__gregs.__regs[1], regs[9], 8);
+ hexvalue (ctx->uc_mcontext.__gregs.__regs[2], regs[10], 8);
+ hexvalue (ctx->uc_mcontext.__gregs.__regs[3], regs[11], 8);
+ hexvalue (ctx->uc_mcontext.__gregs.__regs[4], regs[12], 8);
+ hexvalue (ctx->uc_mcontext.__gregs.__regs[5], regs[13], 8);
+ hexvalue (ctx->uc_mcontext.__gregs.__regs[6], regs[14], 8);
+ hexvalue (ctx->uc_mcontext.__gregs.__regs[7], regs[15], 8);
+ hexvalue (ctx->uc_mcontext.__gregs.__regs[8], regs[16], 8);
+ hexvalue (ctx->uc_mcontext.__gregs.__regs[9], regs[17], 8);
+ hexvalue (ctx->uc_mcontext.__gregs.__exregs[0], regs[18], 8);
+ hexvalue (ctx->uc_mcontext.__gregs.__exregs[1], regs[19], 8);
+ hexvalue (ctx->uc_mcontext.__gregs.__exregs[2], regs[20], 8);
+ hexvalue (ctx->uc_mcontext.__gregs.__exregs[3], regs[21], 8);
+ hexvalue (ctx->uc_mcontext.__gregs.__exregs[4], regs[22], 8);
+ hexvalue (ctx->uc_mcontext.__gregs.__exregs[5], regs[23], 8);
+ hexvalue (ctx->uc_mcontext.__gregs.__exregs[6], regs[24], 8);
+ hexvalue (ctx->uc_mcontext.__gregs.__exregs[7], regs[25], 8);
+ hexvalue (ctx->uc_mcontext.__gregs.__exregs[8], regs[26], 8);
+ hexvalue (ctx->uc_mcontext.__gregs.__exregs[9], regs[27], 8);
+ hexvalue (ctx->uc_mcontext.__gregs.__exregs[10], regs[28], 8);
+ hexvalue (ctx->uc_mcontext.__gregs.__exregs[11], regs[29], 8);
+ hexvalue (ctx->uc_mcontext.__gregs.__exregs[12], regs[30], 8);
+ hexvalue (ctx->uc_mcontext.__gregs.__exregs[13], regs[31], 8);
+ hexvalue (ctx->uc_mcontext.__gregs.__exregs[14], regs[32], 8);
+ hexvalue (ctx->uc_mcontext.__gregs.__tls, regs[33], 8);
+
+ /* Generate the output. */
+ ADD_STRING ("Register dump:\n\n PSR: ");
+ ADD_MEM (regs[0], 8);
+ ADD_STRING (" PC: ");
+ ADD_MEM (regs[1], 8);
+ ADD_STRING (" SP: ");
+ ADD_MEM (regs[2], 8);
+ ADD_STRING (" LR: ");
+ ADD_MEM (regs[3], 8);
+ ADD_STRING ("\n\n A0: ");
+ ADD_MEM (regs[4], 8);
+ ADD_STRING (" A1: ");
+ ADD_MEM (regs[5], 8);
+ ADD_STRING (" A2: ");
+ ADD_MEM (regs[6], 8);
+ ADD_STRING (" A3: ");
+ ADD_MEM (regs[7], 8);
+ ADD_STRING ("\n R4: ");
+ ADD_MEM (regs[8], 8);
+ ADD_STRING (" R5: ");
+ ADD_MEM (regs[9], 8);
+ ADD_STRING (" R6: ");
+ ADD_MEM (regs[10], 8);
+ ADD_STRING (" R7: ");
+ ADD_MEM (regs[11], 8);
+ ADD_STRING ("\n R8: ");
+ ADD_MEM (regs[12], 8);
+ ADD_STRING (" R9: ");
+ ADD_MEM (regs[13], 8);
+ ADD_STRING (" R10: ");
+ ADD_MEM (regs[14], 8);
+ ADD_STRING (" R11: ");
+ ADD_MEM (regs[15], 8);
+ ADD_STRING ("\n R12: ");
+ ADD_MEM (regs[16], 8);
+ ADD_STRING (" R13: ");
+ ADD_MEM (regs[17], 8);
+ ADD_STRING (" R14: ");
+ ADD_MEM (regs[2], 8);
+ ADD_STRING (" R15: ");
+ ADD_MEM (regs[3], 8);
+ ADD_STRING ("\n R16: ");
+ ADD_MEM (regs[18], 8);
+ ADD_STRING (" R17: ");
+ ADD_MEM (regs[19], 8);
+ ADD_STRING (" R18: ");
+ ADD_MEM (regs[20], 8);
+ ADD_STRING (" R19: ");
+ ADD_MEM (regs[21], 8);
+ ADD_STRING ("\n R20: ");
+ ADD_MEM (regs[22], 8);
+ ADD_STRING (" R21: ");
+ ADD_MEM (regs[23], 8);
+ ADD_STRING (" R22: ");
+ ADD_MEM (regs[24], 8);
+ ADD_STRING (" R23: ");
+ ADD_MEM (regs[25], 8);
+ ADD_STRING ("\n R24: ");
+ ADD_MEM (regs[26], 8);
+ ADD_STRING (" R25: ");
+ ADD_MEM (regs[27], 8);
+ ADD_STRING (" R26: ");
+ ADD_MEM (regs[28], 8);
+ ADD_STRING (" R27: ");
+ ADD_MEM (regs[29], 8);
+ ADD_STRING ("\n R28: ");
+ ADD_MEM (regs[30], 8);
+ ADD_STRING (" R29: ");
+ ADD_MEM (regs[31], 8);
+ ADD_STRING (" R30: ");
+ ADD_MEM (regs[32], 8);
+ ADD_STRING (" R31: ");
+ ADD_MEM (regs[33], 8);
+
+ ADD_STRING ("\n");
+
+ /* Write the stuff out. */
+ writev (fd, iov, nr);
+}
+
+#define REGISTER_DUMP register_dump (fd, ctx)
diff --git a/sysdeps/unix/sysv/linux/csky/shlib-versions b/sysdeps/unix/sysv/linux/csky/shlib-versions
new file mode 100644
index 0000000000..8c026356ef
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/csky/shlib-versions
@@ -0,0 +1,9 @@
+DEFAULT GLIBC_2.29
+
+%if CSKYABI == 2 && CSKY_HARD_FLOAT == 1
+ld=ld-linux-cskyv2-hf.so.1
+%elif CSKYABI == 2 && CSKY_HARD_FLOAT == 0
+ld=ld-linux-cskyv2.so.1
+%else
+%error cannot determine ABI
+%endif
diff --git a/sysdeps/unix/sysv/linux/csky/sigcontextinfo.h b/sysdeps/unix/sysv/linux/csky/sigcontextinfo.h
new file mode 100644
index 0000000000..691b3928b7
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/csky/sigcontextinfo.h
@@ -0,0 +1,28 @@
+/* C-SKY definitions for signal handling calling conventions.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SIGCONTEXTINFO_H
+#define _SIGCONTEXTINFO_H
+
+static inline uintptr_t
+sigcontext_get_pc (const ucontext_t *ctx)
+{
+ return ctx->uc_mcontext.__gregs.__pc;
+}
+
+#endif
diff --git a/sysdeps/unix/sysv/linux/csky/sys/cachectl.h b/sysdeps/unix/sysv/linux/csky/sys/cachectl.h
new file mode 100644
index 0000000000..3367173ad5
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/csky/sys/cachectl.h
@@ -0,0 +1,36 @@
+/* C-SKY cache flushing interface.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_CACHECTL_H
+#define _SYS_CACHECTL_H 1
+
+#include <features.h>
+
+/* Get the kernel definition for the op bits. */
+#include <asm/cachectl.h>
+
+__BEGIN_DECLS
+
+#ifdef __USE_MISC
+extern int cacheflush (void *__addr, const int __nbytes,
+ const int __op) __THROW;
+#endif
+
+__END_DECLS
+
+#endif /* sys/cachectl.h */
diff --git a/sysdeps/unix/sysv/linux/csky/sys/ucontext.h b/sysdeps/unix/sysv/linux/csky/sys/ucontext.h
new file mode 100644
index 0000000000..24067d3463
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/csky/sys/ucontext.h
@@ -0,0 +1,89 @@
+/* struct ucontext definition, C-SKY version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_UCONTEXT_H
+#define _SYS_UCONTEXT_H 1
+
+#include <features.h>
+
+#include <bits/types/sigset_t.h>
+#include <bits/types/stack_t.h>
+
+typedef struct
+ {
+ unsigned long __tls;
+ unsigned long __lr;
+ unsigned long __pc;
+ unsigned long __sr;
+ unsigned long __usp;
+
+ /*
+ * a0, a1, a2, a3:
+ * abiv1: r2, r3, r4, r5
+ * abiv2: r0, r1, r2, r3
+ */
+
+ unsigned long __orig_a0;
+ unsigned long __a0;
+ unsigned long __a1;
+ unsigned long __a2;
+ unsigned long __a3;
+
+ /*
+ * ABIV2: r4 ~ r13
+ */
+ unsigned long __regs[10];
+
+ /* r16 ~ r30 */
+ unsigned long __exregs[15];
+
+ unsigned long __rhi;
+ unsigned long __rlo;
+ unsigned long __glibc_reserved;
+ } gregset_t;
+
+typedef struct
+ {
+ unsigned long __vr[64];
+ unsigned long __fcr;
+ unsigned long __fesr;
+ unsigned long __fid;
+ unsigned long __glibc_reserved;
+ } fpregset_t;
+
+/* Context to describe whole processor state. */
+typedef struct
+ {
+ gregset_t __gregs;
+ fpregset_t __fpregs;
+ } mcontext_t;
+
+/* Userlevel context. */
+typedef struct ucontext_t
+ {
+ unsigned long int __uc_flags;
+ struct ucontext_t *uc_link;
+ stack_t uc_stack;
+ mcontext_t uc_mcontext;
+ sigset_t uc_sigmask;
+ } ucontext_t;
+
+#undef __ctx
+
+
+#endif /* sys/ucontext.h */
diff --git a/sysdeps/unix/sysv/linux/csky/sys/user.h b/sysdeps/unix/sysv/linux/csky/sys/user.h
new file mode 100644
index 0000000000..31a9e47203
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/csky/sys/user.h
@@ -0,0 +1,23 @@
+/* This file is not used by C-SKY GDB. ptrace can use pt_regs definition
+ from linux kernel directly.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_USER_H
+#define _SYS_USER_H 1
+
+#endif /* _SYS_USER_H */
diff --git a/sysdeps/unix/sysv/linux/csky/syscalls.list b/sysdeps/unix/sysv/linux/csky/syscalls.list
new file mode 100644
index 0000000000..2a8feb129b
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/csky/syscalls.list
@@ -0,0 +1,2 @@
+# File name Caller Syscall name Args Strong name Weak names
+cacheflush - cacheflush i:pii _flush_cache cacheflush
diff --git a/sysdeps/unix/sysv/linux/csky/sysdep.h b/sysdeps/unix/sysv/linux/csky/sysdep.h
new file mode 100644
index 0000000000..d2c6aac03c
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/csky/sysdep.h
@@ -0,0 +1,534 @@
+/* Assembly macros for C-SKY.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _LINUX_CSKY_SYSDEP_H
+#define _LINUX_CSKY_SYSDEP_H 1
+
+/* There is some commonality. */
+#include <sysdeps/unix/sysv/linux/generic/sysdep.h>
+#include <sysdeps/unix/sysv/linux/sysdep.h>
+#include <sysdeps/csky/sysdep.h>
+
+/* Defines RTLD_PRIVATE_ERRNO and USE_DL_SYSINFO. */
+#include <dl-sysdep.h>
+
+#include <tls.h>
+
+/* In order to get __set_errno() definition in INLINE_SYSCALL. */
+#ifndef __ASSEMBLER__
+# include <errno.h>
+#endif
+
+#undef SYS_ify
+#define SYS_ify(syscall_name) (__NR_##syscall_name)
+
+#ifdef __ASSEMBLER__
+/* Linux uses a negative return value to indicate syscall errors,
+ unlike most Unices, which use the condition codes' carry flag.
+
+ Since version 2.1 the return value of a system call might be
+ negative even if the call succeeded. E.g., the `lseek' system call
+ might return a large offset. Therefore we must not anymore test
+ for < 0, but test for a real error by making sure the value in R0
+ is a real error number. Linus said he will make sure the no syscall
+ returns a value in -1 .. -4095 as a valid result so we can safely
+ test with -4095. */
+
+# undef PSEUDO
+# define PSEUDO(name, syscall_name, args) \
+ .text; \
+ ENTRY (name); \
+ DO_CALL (syscall_name, args);
+
+# define GETGB \
+ grs t0, .Lgetpc; \
+.Lgetpc: \
+ lrw gb, .Lgetpc@GOTPC; \
+ addu gb, t0;
+
+# if IS_IN (libc)
+# ifdef __PIC__
+# define PSEUDO_RET \
+ btsti a0, 31; \
+ bf 1f; \
+ subi sp, 8; \
+ st.w lr, (sp); \
+ st.w gb, (sp, 4); \
+ GETGB; \
+ lrw a2, SYSCALL_ERROR@PLT; \
+ add a2, gb; \
+ ld.w a2, (a2); \
+ jsr a2; \
+ ld.w lr, (sp); \
+ ld.w gb, (sp, 4); \
+ addi sp, 8; \
+1: \
+ rts
+# else
+# define PSEUDO_RET \
+ btsti a0, 31; \
+ bf 1f; \
+ jmpi SYSCALL_ERROR; \
+1: \
+ rts
+# endif
+# else
+# ifdef __PIC__
+# define PSEUDO_RET \
+ btsti a0, 31; \
+ bf 1f; \
+ subi sp, 8; \
+ st.w lr, (sp); \
+ st.w gb, (sp, 4); \
+ GETGB; \
+ bsr SYSCALL_ERROR; \
+ ld.w lr, (sp); \
+ ld.w gb, (sp, 4); \
+ addi sp, 8; \
+1: \
+ rts
+# else
+# define PSEUDO_RET \
+ btsti a0, 31; \
+ bt SYSCALL_ERROR; \
+ rts
+# endif
+# endif
+
+# undef ret
+# define ret PSEUDO_RET
+
+# undef PSEUDO_END
+# define PSEUDO_END(name) \
+ .align 4; \
+ SYSCALL_ERROR_HANDLER; \
+ END (name)
+
+# undef PSEUDO_NOERRNO
+# define PSEUDO_NOERRNO(name, syscall_name, args) \
+ .text; \
+ ENTRY (name); \
+ DO_CALL (syscall_name, args)
+
+# define PSEUDO_RET_NOERRNO rts
+
+# undef ret_NOERRNO
+# define ret_NOERRNO PSEUDO_RET_NOERRNO
+
+# undef PSEUDO_END_NOERRNO
+# define PSEUDO_END_NOERRNO(name) END (name)
+
+/* The function has to return the error code. */
+# undef PSEUDO_ERRVAL
+# define PSEUDO_ERRVAL(name, syscall_name, args) \
+ .text; \
+ ENTRY (name) \
+ DO_CALL (syscall_name, args); \
+ not a0; \
+ addi a0, 1
+
+# undef PSEUDO_END_ERRVAL
+# define PSEUDO_END_ERRVAL(name) END (name)
+
+# define ret_ERRVAL rts
+
+# if !IS_IN (libc)
+# define SYSCALL_ERROR __local_syscall_error
+# if RTLD_PRIVATE_ERRNO
+# ifdef __PIC__
+# define SYSCALL_ERROR_HANDLER \
+__local_syscall_error: \
+ lrw a1, rtld_errno@PLT; \
+ addu a1, gb; \
+ ldw a1, (a1); \
+ rsubi a0, 0; \
+ stw a0, (a1); \
+ bmaski a0, 0; \
+ rts
+# else /* __PIC__ */
+# define SYSCALL_ERROR_HANDLER \
+__local_syscall_error: \
+ lrw a1, rtld_errno; \
+ rsubi a0, 0; \
+ stw a0, (a1); \
+ bmaski a0, 0; \
+ rts
+# endif /* __PIC__ */
+# else /* !RTLD_PRIVATE_ERRNO */
+# ifdef __PIC__
+# define SYSCALL_ERROR_HANDLER \
+__local_syscall_error: \
+ subi sp, 8; \
+ stw a0, (sp, 0); \
+ stw r15, (sp, 4); \
+ lrw a1, __errno_location@PLT; \
+ add a1, gb; \
+ ldw a1, (a1); \
+ jsr a1; \
+ ldw a1, (sp, 0); /* load errno*/ \
+ ldw r15, (sp, 4); \
+ addi sp, 8; \
+ movi a2, 0; \
+ rsub a1, a1, a2; \
+ stw a1, (a0); \
+ bmaski a0, 0; \
+ rts
+# else
+# define SYSCALL_ERROR_HANDLER \
+__local_syscall_error: \
+ subi sp, 8; \
+ stw a0, (sp, 0); \
+ stw r15, (sp, 4); \
+ lrw a1, __errno_location; \
+ jsr a1; \
+ ldw a1, (sp, 0); /* load errno */ \
+ ldw r15, (sp, 4); \
+ addi sp, 8; \
+ movi a2, 0; \
+ rsub a1, a1, a2; \
+ stw a1, (a0); \
+ bmaski a0, 0; \
+ rts
+# endif /* __PIC__ */
+# endif/* RTLD_PRIVATE_ERROR */
+# else
+# define SYSCALL_ERROR_HANDLER /* Nothing here; code in sysdep.S is used. */
+# define SYSCALL_ERROR __syscall_error
+# endif/* IS_IN (libc) */
+
+/* define DO_CALL */
+# undef DO_CALL
+# define DO_CALL(syscall_name, args) \
+ DOARGS_##args; \
+ lrw r7, SYS_ify(syscall_name); \
+ trap 0; \
+ UNDOARGS_##args
+
+# undef DOARGS_0
+# define DOARGS_0 \
+ subi sp, 8; \
+ cfi_adjust_cfa_offset (8); \
+ stw r7, (sp, 0); \
+ cfi_rel_offset (r7, 0);
+
+# undef DOARGS_1
+# define DOARGS_1 DOARGS_0
+# undef DOARGS_2
+# define DOARGS_2 DOARGS_0
+# undef DOARGS_3
+# define DOARGS_3 DOARGS_0
+# undef DOARGS_4
+# define DOARGS_4 DOARGS_0
+# undef DOARGS_5
+# define DOARGS_5 \
+ subi sp, 8; \
+ cfi_adjust_cfa_offset (8); \
+ stw r7, (sp, 0); \
+ cfi_rel_offset (7, 0); \
+ stw r4, (sp, 4); \
+ cfi_rel_offset (4, 4); \
+ ldw r4, (sp, 8)
+# undef DOARGS_6
+# define DOARGS_6 \
+ subi sp, 16; \
+ cfi_adjust_cfa_offset (16); \
+ stw r7, (sp, 0); \
+ cfi_rel_offset (7, 0); \
+ stw r4, (sp, 4); \
+ cfi_rel_offset (4, 4); \
+ stw r5, (sp, 8); \
+ cfi_rel_offset (5, 8); \
+ ldw r4, (sp, 16); \
+ ldw r5, (sp, 20)
+
+# undef UNDOARGS_0
+# define UNDOARGS_0 \
+ ldw r7, (sp, 0); \
+ cfi_restore (r7); \
+ addi sp, 8; \
+ cfi_adjust_cfa_offset (-8);
+
+# undef UNDOARGS_1
+# define UNDOARGS_1 UNDOARGS_0
+# undef UNDOARGS_2
+# define UNDOARGS_2 UNDOARGS_0
+# undef UNDOARGS_3
+# define UNDOARGS_3 UNDOARGS_0
+# undef UNDOARGS_4
+# define UNDOARGS_4 UNDOARGS_0
+# undef UNDOARGS_5
+# define UNDOARGS_5 \
+ ldw r7, (sp, 0); \
+ cfi_restore (r4); \
+ ldw r4, (sp, 4); \
+ cfi_restore (r4); \
+ addi sp, 8; \
+ cfi_adjust_cfa_offset (-8);
+
+# undef UNDOARGS_6
+# define UNDOARGS_6 \
+ ldw r7, (sp, 0); \
+ cfi_restore (r7); \
+ ldw r4, (sp, 4); \
+ cfi_restore (r4); \
+ ldw r5, (sp, 8); \
+ cfi_restore (r5); \
+ addi sp, 16; \
+ cfi_adjust_cfa_offset (-16);
+
+#else /* not __ASSEMBLER__ */
+
+/* Define a macro which expands into the inline wrapper code for a system
+ call. */
+# undef INLINE_SYSCALL
+# define INLINE_SYSCALL(name, nr, args...) \
+ ({ unsigned int _sys_result = INTERNAL_SYSCALL (name, , nr, args); \
+ if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (_sys_result,), 0)) \
+ { \
+ __set_errno (INTERNAL_SYSCALL_ERRNO (_sys_result, )); \
+ _sys_result = (unsigned int) -1; \
+ } \
+ (int) _sys_result; })
+
+# undef INTERNAL_SYSCALL_DECL
+# define INTERNAL_SYSCALL_DECL(err) do { } while (0)
+
+# undef INTERNAL_SYSCALL_ERROR_P
+# define INTERNAL_SYSCALL_ERROR_P(val, err) \
+ ((unsigned int) (val) >= 0xffffff01u)
+
+# undef INTERNAL_SYSCALL_ERRNO
+# define INTERNAL_SYSCALL_ERRNO(val, err) (-(val))
+
+# undef INTERNAL_SYSCALL_RAW
+# define INTERNAL_SYSCALL_RAW0(name, err, dummy...) \
+ ({unsigned int __sys_result; \
+ { \
+ register int _a1 __asm__ ("a0"), _nr __asm__ ("r7"); \
+ _nr = name; \
+ __asm__ __volatile__ ("trap 0 \n\t" \
+ : "=r" (_a1) \
+ : "r" (_nr) \
+ : "memory"); \
+ __sys_result = _a1; \
+ } \
+ (int) __sys_result; })
+
+# define INTERNAL_SYSCALL_RAW1(name, err, arg1) \
+ ({unsigned int __sys_result; \
+ register int _tmp_arg1 = (int)(arg1); \
+ { \
+ register int _a1 __asm__ ("a0"), _nr __asm__ ("r7"); \
+ _a1 = _tmp_arg1; \
+ _nr = name; \
+ __asm__ __volatile__ ("trap 0 \n\t" \
+ : "=r" (_a1) \
+ : "r" (_nr), "r" (_a1) \
+ : "memory"); \
+ __sys_result = _a1; \
+ } \
+ (int) __sys_result; })
+
+# define INTERNAL_SYSCALL_RAW2(name, err, arg1, arg2) \
+ ({unsigned int __sys_result; \
+ register int _tmp_arg1 = (int)(arg1), _tmp_arg2 = (int)(arg2); \
+ { \
+ register int _nr __asm__ ("r7"); \
+ register int _a1 __asm__ ("a0"), _a2 __asm__ ("a1"); \
+ _a1 = _tmp_arg1, _a2 = _tmp_arg2; \
+ _nr = name; \
+ __asm__ __volatile__ ("trap 0 \n\t" \
+ : "=r" (_a1) \
+ : "r" (_nr), "r" (_a1), "r" (_a2) \
+ : "memory"); \
+ __sys_result = _a1; \
+ } \
+ (int) __sys_result; })
+
+# define INTERNAL_SYSCALL_RAW3(name, err, arg1, arg2, arg3) \
+ ({unsigned int __sys_result; \
+ register int _tmp_arg1 = (int)(arg1), _tmp_arg2 = (int)(arg2); \
+ register int _tmp_arg3 = (int)(arg3); \
+ { \
+ register int _nr __asm__ ("r7"); \
+ register int _a1 __asm__ ("a0"), _a2 __asm__ ("a1"); \
+ register int _a3 __asm__ ("a2"); \
+ _a1 = _tmp_arg1; \
+ _a2 = _tmp_arg2; \
+ _a3 = _tmp_arg3; \
+ _nr = name; \
+ __asm__ __volatile__ ("trap 0 \n\t" \
+ : "=r" (_a1) \
+ : "r" (_nr), "r" (_a1), "r" (_a2), \
+ "r" (_a3) \
+ : "memory"); \
+ __sys_result = _a1; \
+ } \
+ (int) __sys_result; })
+
+# define INTERNAL_SYSCALL_RAW4(name, err, arg1, arg2, arg3, arg4) \
+ ({unsigned int __sys_result; \
+ register int _tmp_arg1 = (int)(arg1), _tmp_arg2 = (int)(arg2); \
+ register int _tmp_arg3 = (int)(arg3), _tmp_arg4 = (int)(arg4); \
+ { \
+ register int _nr __asm__ ("r7"); \
+ register int _a1 __asm__ ("a0"), _a2 __asm__ ("a1"); \
+ register int _a3 __asm__ ("a2"), _a4 __asm__ ("a3"); \
+ _a1 = _tmp_arg1, _a2 = _tmp_arg2, _a3 = _tmp_arg3; \
+ _a4 = _tmp_arg4; \
+ _nr = name; \
+ __asm__ __volatile__ ("trap 0 \n\t" \
+ : "=r" (_a1) \
+ : "r" (_nr), "r" (_a1), "r" (_a2), \
+ "r" (_a3), "r" (_a4) \
+ : "memory"); \
+ __sys_result = _a1; \
+ } \
+ (int) __sys_result; })
+
+# define INTERNAL_SYSCALL_RAW5(name, err, arg1, arg2, arg3, arg4, \
+ arg5) \
+ ({unsigned int __sys_result; \
+ register int _tmp_arg1 = (int)(arg1), _tmp_arg2 = (int)(arg2); \
+ register int _tmp_arg3 = (int)(arg3), _tmp_arg4 = (int)(arg4); \
+ register int _tmp_arg5 = (int)(arg5); \
+ { \
+ register int _nr __asm__ ("r7"); \
+ register int _a1 __asm__ ("a0"), _a2 __asm__ ("a1"); \
+ register int _a3 __asm__ ("a2"), _a4 __asm__ ("a3"); \
+ register int _a5 __asm__ ("r4"); \
+ _a1 = _tmp_arg1, _a2 = _tmp_arg2, _a3 = _tmp_arg3; \
+ _a4 = _tmp_arg4, _a5 = _tmp_arg5; \
+ _nr = name; \
+ __asm__ __volatile__ ("trap 0 \n\t" \
+ : "=r" (_a1) \
+ : "r" (_nr), "r" (_a1), "r" (_a2), \
+ "r" (_a3), "r" (_a4), "r" (_a5) \
+ : "memory"); \
+ __sys_result = _a1; \
+ } \
+ (int) __sys_result; })
+
+# define INTERNAL_SYSCALL_RAW6(name, err, arg1, arg2, arg3, arg4, \
+ arg5, arg6) \
+ ({unsigned int __sys_result; \
+ register int _tmp_arg1 = (int)(arg1), _tmp_arg2 = (int)(arg2); \
+ register int _tmp_arg3 = (int)(arg3), _tmp_arg4 = (int)(arg4); \
+ register int _tmp_arg5 = (int)(arg5), _tmp_arg6 = (int)(arg6); \
+ { \
+ register int _nr __asm__ ("r7"); \
+ register int _a1 __asm__ ("a0"), _a2 __asm__ ("a1"); \
+ register int _a3 __asm__ ("a2"), _a4 __asm__ ("a3"); \
+ register int _a5 __asm__ ("r4"), _a6 __asm__ ("r5"); \
+ _a1 = _tmp_arg1, _a2 = _tmp_arg2, _a3 = _tmp_arg3; \
+ _a4 = _tmp_arg4, _a5 = _tmp_arg5, _a6 = _tmp_arg6; \
+ _nr = name; \
+ __asm__ __volatile__ ("trap 0 \n\t" \
+ : "=r" (_a1) \
+ : "r" (_nr), "r" (_a1), "r" (_a2), \
+ "r" (_a3), "r" (_a4), "r" (_a5), \
+ "r" (_a6) \
+ : "memory"); \
+ __sys_result = _a1; \
+ } \
+ (int) __sys_result; })
+
+# define INTERNAL_SYSCALL_RAW7(name, err, arg1, arg2, arg3, arg4, \
+ arg5, arg6, arg7) \
+ ({unsigned int __sys_result; \
+ register int _tmp_arg1 = (int)(arg1), _tmp_arg2 = (int)(arg2); \
+ register int _tmp_arg3 = (int)(arg3), _tmp_arg4 = (int)(arg4); \
+ register int _tmp_arg5 = (int)(arg5), _tmp_arg6 = (int)(arg6); \
+ register int _tmp_arg7 = (int)(arg7); \
+ { \
+ register int _nr __asm__ ("r7"); \
+ register int _a1 __asm__ ("a0"), _a2 __asm__ ("a1"); \
+ register int _a3 __asm__ ("a2"), _a4 __asm__ ("a3"); \
+ register int _a5 __asm__ ("r4"), _a6 __asm__ ("r5"); \
+ register int _a7 __asm__ ("r6"); \
+ _a1 = _tmp_arg1, _a2 = _tmp_arg2, _a3 = _tmp_arg3; \
+ _a4 = _tmp_arg4, _a5 = _tmp_arg5, _a6 = _tmp_arg6; \
+ _a7 = _tmp_arg7; \
+ _nr = name; \
+ __asm__ __volatile__ ("trap 0 \n\t" \
+ : "=r" (_a1) \
+ : "r" (_nr), "r" (_a1), "r" (_a2), \
+ "r" (_a3), "r" (_a4), "r" (_a5), \
+ "r" (_a6), "r" (_a7) \
+ : "memory"); \
+ __sys_result = _a1; \
+ } \
+ (int) __sys_result; })
+
+# undef INTERNAL_SYSCALL
+# define INTERNAL_SYSCALL(name, err, nr, args...) \
+ INTERNAL_SYSCALL_RAW##nr(SYS_ify(name), err, args)
+
+# undef INTERNAL_SYSCALL_NCS
+# define INTERNAL_SYSCALL_NCS(number, err, nr, args...) \
+ INTERNAL_SYSCALL_RAW##nr (number, err, args)
+
+#endif /* __ASSEMBLER__ */
+
+/* Pointer mangling support. */
+#if (IS_IN (rtld) \
+ || (!defined SHARED && (IS_IN (libc) || IS_IN (libpthread))))
+# ifdef __ASSEMBLER__
+# define PTR_MANGLE(dst, src, guard) \
+ grs t0, 1f; \
+1: \
+ lrw guard, 1b@GOTPC; \
+ addu t0, guard; \
+ lrw guard, __pointer_chk_guard_local@GOT; \
+ ldr.w guard, (t0, guard << 0); \
+ ldw guard, (guard, 0); \
+ xor dst, src, guard;
+# define PTR_DEMANGLE(dst, src, guard) PTR_MANGLE (dst, src, guard)
+# define PTR_MANGLE2(dst, src, guard) \
+ xor dst, src, guard
+# define PTR_DEMANGLE2(dst, src, guard) PTR_MANGLE2 (dst, src, guard)
+# else
+extern uintptr_t __pointer_chk_guard_local;
+# define PTR_MANGLE(var) \
+ (var) = (__typeof (var)) ((uintptr_t) (var) ^ __pointer_chk_guard_local)
+# define PTR_DEMANGLE(var) PTR_MANGLE (var)
+# endif
+#else
+# ifdef __ASSEMBLER__
+# define PTR_MANGLE(dst, src, guard) \
+ grs t0, 1f; \
+1: \
+ lrw guard, 1b@GOTPC; \
+ addu t0, guard; \
+ lrw guard, __pointer_chk_guard@GOT; \
+ ldr.w guard, (t0, guard << 0); \
+ ldw guard, (guard, 0); \
+ xor dst, src, guard;
+# define PTR_DEMANGLE(dst, src, guard) PTR_MANGLE (dst, src, guard)
+# define PTR_MANGLE2(dst, src, guard) \
+ xor dst, src, guard
+# define PTR_DEMANGLE2(dst, src, guard) PTR_MANGLE2 (dst, src, guard)
+# else
+extern uintptr_t __pointer_chk_guard;
+# define PTR_MANGLE(var) \
+ (var) = (__typeof (var)) ((uintptr_t) (var) ^ __pointer_chk_guard)
+# define PTR_DEMANGLE(var) PTR_MANGLE (var)
+# endif
+#endif
+
+#endif /* linux/csky/sysdep.h */
diff --git a/sysdeps/unix/sysv/linux/default-sched.h b/sysdeps/unix/sysv/linux/default-sched.h
index 456352a845..0e9d24cd33 100644
--- a/sysdeps/unix/sysv/linux/default-sched.h
+++ b/sysdeps/unix/sysv/linux/default-sched.h
@@ -1,5 +1,5 @@
/* Determine calling thread's scheduling parameters. Linux version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
- not, see <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/device-nrs.h b/sysdeps/unix/sysv/linux/device-nrs.h
index 6fd7ad0150..72a957cd18 100644
--- a/sysdeps/unix/sysv/linux/device-nrs.h
+++ b/sysdeps/unix/sysv/linux/device-nrs.h
@@ -1,5 +1,5 @@
/* Device numbers of devices used in the implementation. Linux version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DEVICE_NRS_H
#define _DEVICE_NRS_H 1
diff --git a/sysdeps/unix/sysv/linux/dl-execstack.c b/sysdeps/unix/sysv/linux/dl-execstack.c
index 8ea69bdde3..ef05b8b326 100644
--- a/sysdeps/unix/sysv/linux/dl-execstack.c
+++ b/sysdeps/unix/sysv/linux/dl-execstack.c
@@ -1,5 +1,5 @@
/* Stack executability handling for GNU dynamic linker. Linux version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ldsodefs.h>
#include <sys/mman.h>
diff --git a/sysdeps/unix/sysv/linux/dl-librecon.h b/sysdeps/unix/sysv/linux/dl-librecon.h
index dd01db4b77..a7cbeab391 100644
--- a/sysdeps/unix/sysv/linux/dl-librecon.h
+++ b/sysdeps/unix/sysv/linux/dl-librecon.h
@@ -1,5 +1,5 @@
/* Optional code to distinguish library flavours.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DL_LIBRECON_H
#define _DL_LIBRECON_H 1
diff --git a/sysdeps/unix/sysv/linux/dl-openat64.c b/sysdeps/unix/sysv/linux/dl-openat64.c
index 6094c11be0..6c5087853a 100644
--- a/sysdeps/unix/sysv/linux/dl-openat64.c
+++ b/sysdeps/unix/sysv/linux/dl-openat64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmain.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
diff --git a/sysdeps/unix/sysv/linux/dl-origin.c b/sysdeps/unix/sysv/linux/dl-origin.c
index a87ee83b15..afa5fbd049 100644
--- a/sysdeps/unix/sysv/linux/dl-origin.c
+++ b/sysdeps/unix/sysv/linux/dl-origin.c
@@ -1,5 +1,5 @@
/* Find path of executable.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <stdlib.h>
diff --git a/sysdeps/unix/sysv/linux/dl-osinfo.h b/sysdeps/unix/sysv/linux/dl-osinfo.h
index 416ef93c47..aeb1235c2a 100644
--- a/sysdeps/unix/sysv/linux/dl-osinfo.h
+++ b/sysdeps/unix/sysv/linux/dl-osinfo.h
@@ -1,5 +1,5 @@
/* Operating system specific code for generic dynamic loader functions. Linux.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dl-sysdep.h>
#include <endian.h>
diff --git a/sysdeps/unix/sysv/linux/dl-sysdep.c b/sysdeps/unix/sysv/linux/dl-sysdep.c
index 0477e0e5fa..bbde3a077e 100644
--- a/sysdeps/unix/sysv/linux/dl-sysdep.c
+++ b/sysdeps/unix/sysv/linux/dl-sysdep.c
@@ -1,5 +1,5 @@
/* Dynamic linker system dependencies for Linux.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Linux needs some special initialization, but otherwise uses
the generic dynamic linker system interface code. */
diff --git a/sysdeps/unix/sysv/linux/dl-sysdep.h b/sysdeps/unix/sysv/linux/dl-sysdep.h
index 9750145404..b9e2ab79ae 100644
--- a/sysdeps/unix/sysv/linux/dl-sysdep.h
+++ b/sysdeps/unix/sysv/linux/dl-sysdep.h
@@ -1,5 +1,5 @@
/* System-specific settings for dynamic linker code. Linux version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include_next <dl-sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/dl-vdso.c b/sysdeps/unix/sysv/linux/dl-vdso.c
index ee48efebe0..5577f2103c 100644
--- a/sysdeps/unix/sysv/linux/dl-vdso.c
+++ b/sysdeps/unix/sysv/linux/dl-vdso.c
@@ -1,5 +1,5 @@
/* ELF symbol resolve functions for VDSO objects.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "config.h"
#include <ldsodefs.h>
diff --git a/sysdeps/unix/sysv/linux/dl-vdso.h b/sysdeps/unix/sysv/linux/dl-vdso.h
index 7b668d0862..19ffd30c7e 100644
--- a/sysdeps/unix/sysv/linux/dl-vdso.h
+++ b/sysdeps/unix/sysv/linux/dl-vdso.h
@@ -1,5 +1,5 @@
/* ELF symbol resolve functions for VDSO objects.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,42 +14,43 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DL_VDSO_H
#define _DL_VDSO_H 1
-#include <assert.h>
#include <ldsodefs.h>
#include <dl-hash.h>
-/* Create version number record for lookup. */
-#define PREPARE_VERSION(var, vname, vhash) \
- struct r_found_version var; \
- var.name = vname; \
- var.hidden = 1; \
- var.hash = vhash; \
- assert (var.hash == _dl_elf_hash (var.name)); \
- /* We don't have a specific file where the symbol can be found. */ \
- var.filename = NULL
-
-/* Use this for the known version sets defined below, where we
- record their precomputed hash values only once, in this file. */
-#define PREPARE_VERSION_KNOWN(var, vname) \
- PREPARE_VERSION (var, VDSO_NAME_##vname, VDSO_HASH_##vname)
-
-#define VDSO_NAME_LINUX_2_6 "LINUX_2.6"
-#define VDSO_HASH_LINUX_2_6 61765110
-#define VDSO_NAME_LINUX_2_6_15 "LINUX_2.6.15"
-#define VDSO_HASH_LINUX_2_6_15 123718565
-#define VDSO_NAME_LINUX_2_6_29 "LINUX_2.6.29"
-#define VDSO_HASH_LINUX_2_6_29 123718585
-#define VDSO_NAME_LINUX_4_15 "LINUX_4.15"
-#define VDSO_HASH_LINUX_4_15 182943605
-
/* Functions for resolving symbols in the VDSO link map. */
extern void *_dl_vdso_vsym (const char *name,
const struct r_found_version *version)
attribute_hidden;
+/* If the architecture support vDSO it should define which is the expected
+ kernel version and hash value through both VDSO_NAME and VDSO_HASH
+ (usually defined at architecture sysdep.h). */
+
+#ifndef VDSO_NAME
+# define VDSO_NAME "LINUX_0.0"
+#endif
+#ifndef VDSO_HASH
+# define VDSO_HASH 0
+#endif
+
+static inline void *
+get_vdso_symbol (const char *symbol)
+{
+ struct r_found_version rfv = { VDSO_NAME, VDSO_HASH, 1, NULL };
+ return _dl_vdso_vsym (symbol, &rfv);
+}
+
+static inline void *
+get_vdso_mangle_symbol (const char *symbol)
+{
+ void *vdsop = get_vdso_symbol (symbol);
+ PTR_MANGLE (vdsop);
+ return vdsop;
+}
+
#endif /* dl-vdso.h */
diff --git a/sysdeps/unix/sysv/linux/dl-writev.h b/sysdeps/unix/sysv/linux/dl-writev.h
index 772ac9fa5d..b084e942b8 100644
--- a/sysdeps/unix/sysv/linux/dl-writev.h
+++ b/sysdeps/unix/sysv/linux/dl-writev.h
@@ -1,5 +1,5 @@
/* Message-writing for the dynamic linker. Linux version.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/uio.h>
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/epoll_pwait.c b/sysdeps/unix/sysv/linux/epoll_pwait.c
index f90df70af7..74d845f436 100644
--- a/sysdeps/unix/sysv/linux/epoll_pwait.c
+++ b/sysdeps/unix/sysv/linux/epoll_pwait.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/sysdeps/unix/sysv/linux/epoll_wait.c b/sysdeps/unix/sysv/linux/epoll_wait.c
index c2aa83ca22..32406d4c3d 100644
--- a/sysdeps/unix/sysv/linux/epoll_wait.c
+++ b/sysdeps/unix/sysv/linux/epoll_wait.c
@@ -1,5 +1,5 @@
/* Linux epoll_wait syscall implementation.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <unistd.h>
diff --git a/sysdeps/unix/sysv/linux/errqueue.h b/sysdeps/unix/sysv/linux/errqueue.h
index 176b14d51c..0f8c47632b 100644
--- a/sysdeps/unix/sysv/linux/errqueue.h
+++ b/sysdeps/unix/sysv/linux/errqueue.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Linux version. */
diff --git a/sysdeps/unix/sysv/linux/eventfd_read.c b/sysdeps/unix/sysv/linux/eventfd_read.c
index ba5c8929ce..c23d9d3092 100644
--- a/sysdeps/unix/sysv/linux/eventfd_read.c
+++ b/sysdeps/unix/sysv/linux/eventfd_read.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/unix/sysv/linux/eventfd_write.c b/sysdeps/unix/sysv/linux/eventfd_write.c
index ed568591f7..aa9a1eed19 100644
--- a/sysdeps/unix/sysv/linux/eventfd_write.c
+++ b/sysdeps/unix/sysv/linux/eventfd_write.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/unix/sysv/linux/exit-thread.h b/sysdeps/unix/sysv/linux/exit-thread.h
index d3933923c3..fe9da0e087 100644
--- a/sysdeps/unix/sysv/linux/exit-thread.h
+++ b/sysdeps/unix/sysv/linux/exit-thread.h
@@ -1,5 +1,5 @@
/* Call to terminate the current thread. Linux version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/faccessat.c b/sysdeps/unix/sysv/linux/faccessat.c
index ea42b2303f..2953023b30 100644
--- a/sysdeps/unix/sysv/linux/faccessat.c
+++ b/sysdeps/unix/sysv/linux/faccessat.c
@@ -1,5 +1,5 @@
/* Test for access to file, relative to open directory. Linux version.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/sysdeps/unix/sysv/linux/fallocate.c b/sysdeps/unix/sysv/linux/fallocate.c
index bc27ea7ab9..bf1eefbd53 100644
--- a/sysdeps/unix/sysv/linux/fallocate.c
+++ b/sysdeps/unix/sysv/linux/fallocate.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/sysdeps/unix/sysv/linux/fallocate64.c b/sysdeps/unix/sysv/linux/fallocate64.c
index c6d4f11d24..3ffc4bcdda 100644
--- a/sysdeps/unix/sysv/linux/fallocate64.c
+++ b/sysdeps/unix/sysv/linux/fallocate64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/sysdeps/unix/sysv/linux/fatal-prepare.h b/sysdeps/unix/sysv/linux/fatal-prepare.h
index e24781692d..dc9f862d38 100644
--- a/sysdeps/unix/sysv/linux/fatal-prepare.h
+++ b/sysdeps/unix/sysv/linux/fatal-prepare.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
diff --git a/sysdeps/unix/sysv/linux/fchmodat.c b/sysdeps/unix/sysv/linux/fchmodat.c
index 3e2c58a00f..d0f1d715ba 100644
--- a/sysdeps/unix/sysv/linux/fchmodat.c
+++ b/sysdeps/unix/sysv/linux/fchmodat.c
@@ -1,5 +1,5 @@
/* Change the protections of file relative to open directory. Linux version.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/sysdeps/unix/sysv/linux/fcntl.c b/sysdeps/unix/sysv/linux/fcntl.c
index cbab7b401a..48bda0db4e 100644
--- a/sysdeps/unix/sysv/linux/fcntl.c
+++ b/sysdeps/unix/sysv/linux/fcntl.c
@@ -1,5 +1,5 @@
/* Linux fcntl syscall implementation.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fcntl.h>
#include <stdarg.h>
diff --git a/sysdeps/unix/sysv/linux/fcntl64.c b/sysdeps/unix/sysv/linux/fcntl64.c
index f21667ae43..c66f1c4ca1 100644
--- a/sysdeps/unix/sysv/linux/fcntl64.c
+++ b/sysdeps/unix/sysv/linux/fcntl64.c
@@ -1,5 +1,5 @@
/* Manipulate file descriptor. Linux LFS version.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define fcntl __no_decl_fcntl
#define __fcntl __no_decl___fcntl
diff --git a/sysdeps/unix/sysv/linux/fcntl_nocancel.c b/sysdeps/unix/sysv/linux/fcntl_nocancel.c
index dd336b5679..d2f5c4fe93 100644
--- a/sysdeps/unix/sysv/linux/fcntl_nocancel.c
+++ b/sysdeps/unix/sysv/linux/fcntl_nocancel.c
@@ -1,5 +1,5 @@
/* Linux fcntl syscall implementation -- non-cancellable.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fcntl.h>
#include <stdarg.h>
diff --git a/sysdeps/unix/sysv/linux/fd_to_filename.h b/sysdeps/unix/sysv/linux/fd_to_filename.h
index 297716b0ae..ce64d29e0c 100644
--- a/sysdeps/unix/sysv/linux/fd_to_filename.h
+++ b/sysdeps/unix/sysv/linux/fd_to_filename.h
@@ -1,5 +1,5 @@
/* Query filename corresponding to an open FD. Linux version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,32 +14,24 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#include <stdlib.h>
-#include <string.h>
#include <sys/stat.h>
+#include <string.h>
#include <_itoa.h>
+#define FD_TO_FILENAME_SIZE ((sizeof ("/proc/self/fd/") - 1) \
+ + (sizeof ("4294967295") - 1) + 1)
+
static inline const char *
-fd_to_filename (int fd)
+fd_to_filename (unsigned int fd, char *buf)
{
- char *ret = malloc (30);
-
- if (ret != NULL)
- {
- struct stat64 st;
-
- *_fitoa_word (fd, __stpcpy (ret, "/proc/self/fd/"), 10, 0) = '\0';
-
- /* We must make sure the file exists. */
- if (__lxstat64 (_STAT_VER, ret, &st) < 0)
- {
- /* /proc is not mounted or something else happened. Don't
- return the file name. */
- free (ret);
- ret = NULL;
- }
- }
- return ret;
+ *_fitoa_word (fd, __stpcpy (buf, "/proc/self/fd/"), 10, 0) = '\0';
+
+ /* We must make sure the file exists. */
+ struct stat64 st;
+ if (__lxstat64 (_STAT_VER, buf, &st) < 0)
+ /* /proc is not mounted or something else happened. */
+ return NULL;
+ return buf;
}
diff --git a/sysdeps/unix/sysv/linux/fdatasync.c b/sysdeps/unix/sysv/linux/fdatasync.c
index c3b5b4262d..c6a02f24e9 100644
--- a/sysdeps/unix/sysv/linux/fdatasync.c
+++ b/sysdeps/unix/sysv/linux/fdatasync.c
@@ -1,6 +1,6 @@
/* Synchronize a file's in-core state with storage device Linux
implementation.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <sysdep-cancel.h>
diff --git a/sysdeps/unix/sysv/linux/fexecve.c b/sysdeps/unix/sysv/linux/fexecve.c
index 3560b711ca..16961b5a9d 100644
--- a/sysdeps/unix/sysv/linux/fexecve.c
+++ b/sysdeps/unix/sysv/linux/fexecve.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/sysdeps/unix/sysv/linux/filter-nr-syscalls.awk b/sysdeps/unix/sysv/linux/filter-nr-syscalls.awk
index 270693d8ab..cb7f13d23f 100644
--- a/sysdeps/unix/sysv/linux/filter-nr-syscalls.awk
+++ b/sysdeps/unix/sysv/linux/filter-nr-syscalls.awk
@@ -1,5 +1,5 @@
# Filter preprocessor __NR_* macros and extract system call names.
-# Copyright (C) 2017-2018 Free Software Foundation, Inc.
+# Copyright (C) 2017-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
@@ -14,7 +14,7 @@
#
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
# Skip reserved system calls.
/^#define __NR_(unused|reserved)[0-9]+ / {
diff --git a/sysdeps/unix/sysv/linux/fips-private.h b/sysdeps/unix/sysv/linux/fips-private.h
index 8dc5772f71..0e28180646 100644
--- a/sysdeps/unix/sysv/linux/fips-private.h
+++ b/sysdeps/unix/sysv/linux/fips-private.h
@@ -1,5 +1,5 @@
/* FIPS compliance status test for GNU/Linux systems.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FIPS_PRIVATE_H
#define _FIPS_PRIVATE_H
diff --git a/sysdeps/unix/sysv/linux/fpathconf.c b/sysdeps/unix/sysv/linux/fpathconf.c
index ce439c8fbe..f91f830ba8 100644
--- a/sysdeps/unix/sysv/linux/fpathconf.c
+++ b/sysdeps/unix/sysv/linux/fpathconf.c
@@ -1,5 +1,5 @@
/* Get file-specific information about descriptor FD. Linux version.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fcntl.h>
#include "pathconf.h"
diff --git a/sysdeps/unix/sysv/linux/fstatfs64.c b/sysdeps/unix/sysv/linux/fstatfs64.c
index 78c9a83bae..3aacc90f78 100644
--- a/sysdeps/unix/sysv/linux/fstatfs64.c
+++ b/sysdeps/unix/sysv/linux/fstatfs64.c
@@ -1,5 +1,5 @@
/* Return information about the filesystem on which FD resides.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <string.h>
diff --git a/sysdeps/unix/sysv/linux/fstatvfs.c b/sysdeps/unix/sysv/linux/fstatvfs.c
index 07c61c9fbd..2977429483 100644
--- a/sysdeps/unix/sysv/linux/fstatvfs.c
+++ b/sysdeps/unix/sysv/linux/fstatvfs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <sys/stat.h>
diff --git a/sysdeps/unix/sysv/linux/fstatvfs64.c b/sysdeps/unix/sysv/linux/fstatvfs64.c
index bf59eff1b9..eeadb25962 100644
--- a/sysdeps/unix/sysv/linux/fstatvfs64.c
+++ b/sysdeps/unix/sysv/linux/fstatvfs64.c
@@ -1,5 +1,5 @@
/* Return information about the filesystem on which FD resides.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <string.h>
diff --git a/sysdeps/unix/sysv/linux/fsync.c b/sysdeps/unix/sysv/linux/fsync.c
index db101a219d..e4b6ee72ee 100644
--- a/sysdeps/unix/sysv/linux/fsync.c
+++ b/sysdeps/unix/sysv/linux/fsync.c
@@ -1,6 +1,6 @@
/* Synchronize a file's in-core state with storage device Linux
implementation.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <sysdep-cancel.h>
diff --git a/sysdeps/unix/sysv/linux/ftime.c b/sysdeps/unix/sysv/linux/ftime.c
deleted file mode 100644
index 5a5949f608..0000000000
--- a/sysdeps/unix/sysv/linux/ftime.c
+++ /dev/null
@@ -1,3 +0,0 @@
-/* Linux defines the ftime system call but doesn't actually implement
- it. Use the BSD implementation. */
-#include <sysdeps/unix/bsd/ftime.c>
diff --git a/sysdeps/unix/sysv/linux/ftruncate.c b/sysdeps/unix/sysv/linux/ftruncate.c
index 539fad9369..d7100d2fe5 100644
--- a/sysdeps/unix/sysv/linux/ftruncate.c
+++ b/sysdeps/unix/sysv/linux/ftruncate.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2016-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2016-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/ftruncate64.c b/sysdeps/unix/sysv/linux/ftruncate64.c
index eadc7d3438..4feab52e73 100644
--- a/sysdeps/unix/sysv/linux/ftruncate64.c
+++ b/sysdeps/unix/sysv/linux/ftruncate64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/futex-internal.h b/sysdeps/unix/sysv/linux/futex-internal.h
deleted file mode 100644
index 96a07b05b9..0000000000
--- a/sysdeps/unix/sysv/linux/futex-internal.h
+++ /dev/null
@@ -1,251 +0,0 @@
-/* futex operations for glibc-internal use. Linux version.
- Copyright (C) 2014-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef FUTEX_INTERNAL_H
-#define FUTEX_INTERNAL_H
-
-#include <sysdeps/nptl/futex-internal.h>
-#include <errno.h>
-#include <lowlevellock-futex.h>
-#include <nptl/pthreadP.h>
-
-/* See sysdeps/nptl/futex-internal.h for documentation; this file only
- contains Linux-specific comments.
-
- The Linux kernel treats provides absolute timeouts based on the
- CLOCK_REALTIME clock and relative timeouts measured against the
- CLOCK_MONOTONIC clock.
-
- We expect a Linux kernel version of 2.6.22 or more recent (since this
- version, EINTR is not returned on spurious wake-ups anymore). */
-
-/* FUTEX_SHARED is always supported by the Linux kernel. */
-static __always_inline int
-futex_supports_pshared (int pshared)
-{
- if (__glibc_likely (pshared == PTHREAD_PROCESS_PRIVATE))
- return 0;
- else if (pshared == PTHREAD_PROCESS_SHARED)
- return 0;
- else
- return EINVAL;
-}
-
-/* The Linux kernel supports relative timeouts measured against the
- CLOCK_MONOTONIC clock. */
-static __always_inline bool
-futex_supports_exact_relative_timeouts (void)
-{
- return true;
-}
-
-/* See sysdeps/nptl/futex-internal.h for details. */
-static __always_inline int
-futex_wait (unsigned int *futex_word, unsigned int expected, int private)
-{
- int err = lll_futex_timed_wait (futex_word, expected, NULL, private);
- switch (err)
- {
- case 0:
- case -EAGAIN:
- case -EINTR:
- return -err;
-
- case -ETIMEDOUT: /* Cannot have happened as we provided no timeout. */
- case -EFAULT: /* Must have been caused by a glibc or application bug. */
- case -EINVAL: /* Either due to wrong alignment or due to the timeout not
- being normalized. Must have been caused by a glibc or
- application bug. */
- case -ENOSYS: /* Must have been caused by a glibc bug. */
- /* No other errors are documented at this time. */
- default:
- futex_fatal_error ();
- }
-}
-
-/* See sysdeps/nptl/futex-internal.h for details. */
-static __always_inline int
-futex_wait_cancelable (unsigned int *futex_word, unsigned int expected,
- int private)
-{
- int oldtype;
- oldtype = __pthread_enable_asynccancel ();
- int err = lll_futex_timed_wait (futex_word, expected, NULL, private);
- __pthread_disable_asynccancel (oldtype);
- switch (err)
- {
- case 0:
- case -EAGAIN:
- case -EINTR:
- return -err;
-
- case -ETIMEDOUT: /* Cannot have happened as we provided no timeout. */
- case -EFAULT: /* Must have been caused by a glibc or application bug. */
- case -EINVAL: /* Either due to wrong alignment or due to the timeout not
- being normalized. Must have been caused by a glibc or
- application bug. */
- case -ENOSYS: /* Must have been caused by a glibc bug. */
- /* No other errors are documented at this time. */
- default:
- futex_fatal_error ();
- }
-}
-
-/* See sysdeps/nptl/futex-internal.h for details. */
-static __always_inline int
-futex_reltimed_wait (unsigned int *futex_word, unsigned int expected,
- const struct timespec *reltime, int private)
-{
- int err = lll_futex_timed_wait (futex_word, expected, reltime, private);
- switch (err)
- {
- case 0:
- case -EAGAIN:
- case -EINTR:
- case -ETIMEDOUT:
- return -err;
-
- case -EFAULT: /* Must have been caused by a glibc or application bug. */
- case -EINVAL: /* Either due to wrong alignment or due to the timeout not
- being normalized. Must have been caused by a glibc or
- application bug. */
- case -ENOSYS: /* Must have been caused by a glibc bug. */
- /* No other errors are documented at this time. */
- default:
- futex_fatal_error ();
- }
-}
-
-/* See sysdeps/nptl/futex-internal.h for details. */
-static __always_inline int
-futex_reltimed_wait_cancelable (unsigned int *futex_word,
- unsigned int expected,
- const struct timespec *reltime, int private)
-{
- int oldtype;
- oldtype = __pthread_enable_asynccancel ();
- int err = lll_futex_timed_wait (futex_word, expected, reltime, private);
- __pthread_disable_asynccancel (oldtype);
- switch (err)
- {
- case 0:
- case -EAGAIN:
- case -EINTR:
- case -ETIMEDOUT:
- return -err;
-
- case -EFAULT: /* Must have been caused by a glibc or application bug. */
- case -EINVAL: /* Either due to wrong alignment or due to the timeout not
- being normalized. Must have been caused by a glibc or
- application bug. */
- case -ENOSYS: /* Must have been caused by a glibc bug. */
- /* No other errors are documented at this time. */
- default:
- futex_fatal_error ();
- }
-}
-
-/* See sysdeps/nptl/futex-internal.h for details. */
-static __always_inline int
-futex_abstimed_wait (unsigned int *futex_word, unsigned int expected,
- const struct timespec *abstime, int private)
-{
- /* Work around the fact that the kernel rejects negative timeout values
- despite them being valid. */
- if (__glibc_unlikely ((abstime != NULL) && (abstime->tv_sec < 0)))
- return ETIMEDOUT;
- int err = lll_futex_timed_wait_bitset (futex_word, expected, abstime,
- FUTEX_CLOCK_REALTIME, private);
- switch (err)
- {
- case 0:
- case -EAGAIN:
- case -EINTR:
- case -ETIMEDOUT:
- return -err;
-
- case -EFAULT: /* Must have been caused by a glibc or application bug. */
- case -EINVAL: /* Either due to wrong alignment or due to the timeout not
- being normalized. Must have been caused by a glibc or
- application bug. */
- case -ENOSYS: /* Must have been caused by a glibc bug. */
- /* No other errors are documented at this time. */
- default:
- futex_fatal_error ();
- }
-}
-
-/* See sysdeps/nptl/futex-internal.h for details. */
-static __always_inline int
-futex_abstimed_wait_cancelable (unsigned int *futex_word,
- unsigned int expected,
- const struct timespec *abstime, int private)
-{
- /* Work around the fact that the kernel rejects negative timeout values
- despite them being valid. */
- if (__glibc_unlikely ((abstime != NULL) && (abstime->tv_sec < 0)))
- return ETIMEDOUT;
- int oldtype;
- oldtype = __pthread_enable_asynccancel ();
- int err = lll_futex_timed_wait_bitset (futex_word, expected, abstime,
- FUTEX_CLOCK_REALTIME, private);
- __pthread_disable_asynccancel (oldtype);
- switch (err)
- {
- case 0:
- case -EAGAIN:
- case -EINTR:
- case -ETIMEDOUT:
- return -err;
-
- case -EFAULT: /* Must have been caused by a glibc or application bug. */
- case -EINVAL: /* Either due to wrong alignment or due to the timeout not
- being normalized. Must have been caused by a glibc or
- application bug. */
- case -ENOSYS: /* Must have been caused by a glibc bug. */
- /* No other errors are documented at this time. */
- default:
- futex_fatal_error ();
- }
-}
-
-/* See sysdeps/nptl/futex-internal.h for details. */
-static __always_inline void
-futex_wake (unsigned int *futex_word, int processes_to_wake, int private)
-{
- int res = lll_futex_wake (futex_word, processes_to_wake, private);
- /* No error. Ignore the number of woken processes. */
- if (res >= 0)
- return;
- switch (res)
- {
- case -EFAULT: /* Could have happened due to memory reuse. */
- case -EINVAL: /* Could be either due to incorrect alignment (a bug in
- glibc or in the application) or due to memory being
- reused for a PI futex. We cannot distinguish between the
- two causes, and one of them is correct use, so we do not
- act in this case. */
- return;
- case -ENOSYS: /* Must have been caused by a glibc bug. */
- /* No other errors are documented at this time. */
- default:
- futex_fatal_error ();
- }
-}
-
-#endif /* futex-internal.h */
diff --git a/sysdeps/unix/sysv/linux/futimens.c b/sysdeps/unix/sysv/linux/futimens.c
index bc7fe54331..15fc43b69c 100644
--- a/sysdeps/unix/sysv/linux/futimens.c
+++ b/sysdeps/unix/sysv/linux/futimens.c
@@ -1,5 +1,5 @@
/* Change access and modification times of open file. Linux version.
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
@@ -29,10 +29,26 @@
Starting with 2.6.22 the Linux kernel has the utimensat syscall which
can be used to implement futimens. */
int
-futimens (int fd, const struct timespec tsp[2])
+__futimens64 (int fd, const struct __timespec64 tsp64[2])
{
if (fd < 0)
return INLINE_SYSCALL_ERROR_RETURN_VALUE (EBADF);
- /* Avoid implicit array coercion in syscall macros. */
- return INLINE_SYSCALL (utimensat, 4, fd, NULL, &tsp[0], 0);
+
+ return __utimensat64_helper (fd, NULL, &tsp64[0], 0);
+}
+
+#if __TIMESIZE != 64
+int
+__futimens (int fd, const struct timespec tsp[2])
+{
+ struct __timespec64 tsp64[2];
+ if (tsp)
+ {
+ tsp64[0] = valid_timespec_to_timespec64 (tsp[0]);
+ tsp64[1] = valid_timespec_to_timespec64 (tsp[1]);
+ }
+
+ return __futimens64 (fd, tsp ? &tsp64[0] : NULL);
}
+#endif
+weak_alias (__futimens, futimens)
diff --git a/sysdeps/unix/sysv/linux/futimes.c b/sysdeps/unix/sysv/linux/futimes.c
index 9e6267cda7..3576a9430e 100644
--- a/sysdeps/unix/sysv/linux/futimes.c
+++ b/sysdeps/unix/sysv/linux/futimes.c
@@ -1,5 +1,5 @@
/* futimes -- change access and modification times of open file. Linux version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/futimesat.c b/sysdeps/unix/sysv/linux/futimesat.c
index 186db6da48..1249829e10 100644
--- a/sysdeps/unix/sysv/linux/futimesat.c
+++ b/sysdeps/unix/sysv/linux/futimesat.c
@@ -1,5 +1,5 @@
/* futimesat -- Change access and modification times of file. Linux version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/sysdeps/unix/sysv/linux/fxstat.c b/sysdeps/unix/sysv/linux/fxstat.c
index f763e03b27..cb4c71fad7 100644
--- a/sysdeps/unix/sysv/linux/fxstat.c
+++ b/sysdeps/unix/sysv/linux/fxstat.c
@@ -1,5 +1,5 @@
/* fxstat using old-style Unix fstat system call.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Ho hum, if xstat == xstat64 we must get rid of the prototype or gcc
will complain since they don't strictly match. */
diff --git a/sysdeps/unix/sysv/linux/fxstat64.c b/sysdeps/unix/sysv/linux/fxstat64.c
index 0d053897a0..109197b123 100644
--- a/sysdeps/unix/sysv/linux/fxstat64.c
+++ b/sysdeps/unix/sysv/linux/fxstat64.c
@@ -1,5 +1,5 @@
-/* fxstat64 using Linux fstat64 system call.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* fxstat64 using Linux fstat64/statx system call.
+ Copyright (C) 1997-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
@@ -14,17 +14,18 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
+#include <fcntl.h>
#include <sys/stat.h>
#include <kernel_stat.h>
#include <sysdep.h>
#include <sys/syscall.h>
-#include <kernel-features.h>
+#include <statx_cp.h>
/* Get information about the file FD in BUF. */
@@ -32,10 +33,14 @@ int
___fxstat64 (int vers, int fd, struct stat64 *buf)
{
int result;
+#ifdef __NR_fstat64
result = INLINE_SYSCALL (fstat64, 2, fd, buf);
-#if defined _HAVE_STAT64___ST_INO && !__ASSUME_ST_INO_64_BIT
- if (__builtin_expect (!result, 1) && buf->__st_ino != (__ino_t) buf->st_ino)
- buf->st_ino = buf->__st_ino;
+#else
+ struct statx tmp;
+ result = INLINE_SYSCALL (statx, 5, fd, "", AT_EMPTY_PATH, STATX_BASIC_STATS,
+ &tmp);
+ if (result == 0)
+ __cp_stat64_statx (buf, &tmp);
#endif
return result;
}
diff --git a/sysdeps/unix/sysv/linux/fxstatat.c b/sysdeps/unix/sysv/linux/fxstatat.c
index d41a3f3193..314813656f 100644
--- a/sysdeps/unix/sysv/linux/fxstatat.c
+++ b/sysdeps/unix/sysv/linux/fxstatat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Ho hum, if fxstatat == fxstatat64 we must get rid of the prototype or gcc
will complain since they don't strictly match. */
diff --git a/sysdeps/unix/sysv/linux/fxstatat64.c b/sysdeps/unix/sysv/linux/fxstatat64.c
index baa9a60a66..d25d9aa878 100644
--- a/sysdeps/unix/sysv/linux/fxstatat64.c
+++ b/sysdeps/unix/sysv/linux/fxstatat64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
@@ -26,6 +26,8 @@
#include <sysdep.h>
#include <sys/syscall.h>
+#include <statx_cp.h>
+
/* Get information about the file NAME in BUF. */
int
@@ -37,7 +39,16 @@ __fxstatat64 (int vers, int fd, const char *file, struct stat64 *st, int flag)
int result;
INTERNAL_SYSCALL_DECL (err);
+#ifdef __NR_fstatat64
result = INTERNAL_SYSCALL (fstatat64, err, 4, fd, file, st, flag);
+#else
+ struct statx tmp;
+
+ result = INTERNAL_SYSCALL (statx, err, 5, fd, file, AT_NO_AUTOMOUNT | flag,
+ STATX_BASIC_STATS, &tmp);
+ if (result == 0)
+ __cp_stat64_statx (st, &tmp);
+#endif
if (!__builtin_expect (INTERNAL_SYSCALL_ERROR_P (result, err), 1))
return 0;
else
diff --git a/sysdeps/unix/sysv/linux/gai_sigqueue.c b/sysdeps/unix/sysv/linux/gai_sigqueue.c
index 8213332be9..0611fdff47 100644
--- a/sysdeps/unix/sysv/linux/gai_sigqueue.c
+++ b/sysdeps/unix/sysv/linux/gai_sigqueue.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <netdb.h>
diff --git a/sysdeps/unix/sysv/linux/gen-syscall-h.awk b/sysdeps/unix/sysv/linux/gen-syscall-h.awk
index 4a264a29a7..4486ea04a8 100644
--- a/sysdeps/unix/sysv/linux/gen-syscall-h.awk
+++ b/sysdeps/unix/sysv/linux/gen-syscall-h.awk
@@ -1,5 +1,5 @@
# Generate SYS_* macros from a list in a text file.
-# Copyright (C) 2017-2018 Free Software Foundation, Inc.
+# Copyright (C) 2017-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
@@ -14,7 +14,7 @@
#
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
# Emit a conditional definition for SYS_NAME.
function emit(name) {
diff --git a/sysdeps/unix/sysv/linux/generic/Makefile b/sysdeps/unix/sysv/linux/generic/Makefile
index 7e27e79772..124f83a0ab 100644
--- a/sysdeps/unix/sysv/linux/generic/Makefile
+++ b/sysdeps/unix/sysv/linux/generic/Makefile
@@ -1,3 +1,3 @@
ifeq ($(subdir),misc)
-sysdep_routines += epoll_create inotify_init
+sysdep_routines += epoll_create inotify_init stat-check
endif
diff --git a/sysdeps/unix/sysv/linux/generic/____longjmp_chk.c b/sysdeps/unix/sysv/linux/generic/____longjmp_chk.c
index f8251b811a..a27acd8f00 100644
--- a/sysdeps/unix/sysv/linux/generic/____longjmp_chk.c
+++ b/sysdeps/unix/sysv/linux/generic/____longjmp_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Chris Metcalf <cmetcalf@tilera.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <jmpbuf-offsets.h>
#include <sysdep.h>
@@ -49,8 +49,8 @@ void ____longjmp_chk (__jmp_buf env, int val)
/* If we we are executing on the alternate stack and within the
bounds, do the longjmp. */
- if (ss.ss_flags == SS_ONSTACK &&
- (this_frame >= ss.ss_sp && this_frame < (ss.ss_sp + ss.ss_size)))
+ if (ss.ss_flags == SS_ONSTACK
+ && (this_frame >= ss.ss_sp && this_frame < (ss.ss_sp + ss.ss_size)))
__longjmp (env, val);
__fortify_fail ("longjmp causes uninitialized stack frame");
diff --git a/sysdeps/unix/sysv/linux/generic/bits/fcntl.h b/sysdeps/unix/sysv/linux/generic/bits/fcntl.h
index cdc1f32fa2..e93178fcce 100644
--- a/sysdeps/unix/sysv/linux/generic/bits/fcntl.h
+++ b/sysdeps/unix/sysv/linux/generic/bits/fcntl.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for the generic Linux ABI.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Chris Metcalf <cmetcalf@tilera.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FCNTL_H
# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
diff --git a/sysdeps/unix/sysv/linux/generic/bits/msq.h b/sysdeps/unix/sysv/linux/generic/bits/msq.h
deleted file mode 100644
index fe2bff6b12..0000000000
--- a/sysdeps/unix/sysv/linux/generic/bits/msq.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_MSG_H
-# error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
-#endif
-
-#include <bits/types.h>
-#include <bits/wordsize.h>
-
-/* Define options for message queue functions. */
-#define MSG_NOERROR 010000 /* no error if message is too big */
-#ifdef __USE_GNU
-# define MSG_EXCEPT 020000 /* recv any msg except of specified type */
-# define MSG_COPY 040000 /* copy (not remove) all queue messages */
-#endif
-
-/* Types used in the structure definition. */
-typedef unsigned long int msgqnum_t;
-typedef unsigned long int msglen_t;
-
-/* Structure of record for one message inside the kernel.
- The type `struct msg' is opaque. */
-struct msqid_ds
-{
- struct ipc_perm msg_perm; /* structure describing operation permission */
- __time_t msg_stime; /* time of last msgsnd command */
-#if __WORDSIZE == 32
- unsigned long int __glibc_reserved1;
-#endif
- __time_t msg_rtime; /* time of last msgrcv command */
-#if __WORDSIZE == 32
- unsigned long int __glibc_reserved2;
-#endif
- __time_t msg_ctime; /* time of last change */
-#if __WORDSIZE == 32
- unsigned long int __glibc_reserved3;
-#endif
- unsigned long int __msg_cbytes; /* current number of bytes on queue */
- msgqnum_t msg_qnum; /* number of messages currently on queue */
- msglen_t msg_qbytes; /* max number of bytes allowed on queue */
- __pid_t msg_lspid; /* pid of last msgsnd() */
- __pid_t msg_lrpid; /* pid of last msgrcv() */
- unsigned long int __glibc_reserved4;
- unsigned long int __glibc_reserved5;
-};
-
-#ifdef __USE_MISC
-
-# define msg_cbytes __msg_cbytes
-
-/* ipcs ctl commands */
-# define MSG_STAT 11
-# define MSG_INFO 12
-# define MSG_STAT_ANY 13
-
-/* buffer for msgctl calls IPC_INFO, MSG_INFO */
-struct msginfo
- {
- int msgpool;
- int msgmap;
- int msgmax;
- int msgmnb;
- int msgmni;
- int msgssz;
- int msgtql;
- unsigned short int msgseg;
- };
-
-#endif /* __USE_MISC */
diff --git a/sysdeps/unix/sysv/linux/generic/bits/sem.h b/sysdeps/unix/sysv/linux/generic/bits/sem.h
deleted file mode 100644
index 9c8b318efb..0000000000
--- a/sysdeps/unix/sysv/linux/generic/bits/sem.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_SEM_H
-# error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
-#endif
-
-#include <sys/types.h>
-#include <bits/wordsize.h>
-
-/* Flags for `semop'. */
-#define SEM_UNDO 0x1000 /* undo the operation on exit */
-
-/* Commands for `semctl'. */
-#define GETPID 11 /* get sempid */
-#define GETVAL 12 /* get semval */
-#define GETALL 13 /* get all semval's */
-#define GETNCNT 14 /* get semncnt */
-#define GETZCNT 15 /* get semzcnt */
-#define SETVAL 16 /* set semval */
-#define SETALL 17 /* set all semval's */
-
-
-/* Data structure describing a set of semaphores. */
-struct semid_ds
-{
- struct ipc_perm sem_perm; /* operation permission struct */
- __time_t sem_otime; /* last semop() time */
-#if __WORDSIZE == 32
- unsigned long int __glibc_reserved1;
-#endif
- __time_t sem_ctime; /* last time changed by semctl() */
-#if __WORDSIZE == 32
- unsigned long int __glibc_reserved2;
-#endif
- unsigned long int sem_nsems; /* number of semaphores in set */
- unsigned long int __glibc_reserved3;
- unsigned long int __glibc_reserved4;
-};
-
-/* The user should define a union like the following to use it for arguments
- for `semctl'.
-
- union semun
- {
- int val; <= value for SETVAL
- struct semid_ds *buf; <= buffer for IPC_STAT & IPC_SET
- unsigned short int *array; <= array for GETALL & SETALL
- struct seminfo *__buf; <= buffer for IPC_INFO
- };
-
- Previous versions of this file used to define this union but this is
- incorrect. One can test the macro _SEM_SEMUN_UNDEFINED to see whether
- one must define the union or not. */
-#define _SEM_SEMUN_UNDEFINED 1
-
-#ifdef __USE_MISC
-
-/* ipcs ctl cmds */
-# define SEM_STAT 18
-# define SEM_INFO 19
-# define SEM_STAT_ANY 20
-
-struct seminfo
-{
- int semmap;
- int semmni;
- int semmns;
- int semmnu;
- int semmsl;
- int semopm;
- int semume;
- int semusz;
- int semvmx;
- int semaem;
-};
-
-#endif /* __USE_MISC */
diff --git a/sysdeps/unix/sysv/linux/generic/bits/shm.h b/sysdeps/unix/sysv/linux/generic/bits/shm.h
deleted file mode 100644
index 30d0097b02..0000000000
--- a/sysdeps/unix/sysv/linux/generic/bits/shm.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_SHM_H
-# error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
-#endif
-
-#include <bits/types.h>
-#include <bits/wordsize.h>
-
-/* Permission flag for shmget. */
-#define SHM_R 0400 /* or S_IRUGO from <linux/stat.h> */
-#define SHM_W 0200 /* or S_IWUGO from <linux/stat.h> */
-
-/* Flags for `shmat'. */
-#define SHM_RDONLY 010000 /* attach read-only else read-write */
-#define SHM_RND 020000 /* round attach address to SHMLBA */
-#define SHM_REMAP 040000 /* take-over region on attach */
-#define SHM_EXEC 0100000 /* execution access */
-
-/* Commands for `shmctl'. */
-#define SHM_LOCK 11 /* lock segment (root only) */
-#define SHM_UNLOCK 12 /* unlock segment (root only) */
-
-__BEGIN_DECLS
-
-/* Segment low boundary address multiple. */
-#define SHMLBA (__getpagesize ())
-extern int __getpagesize (void) __THROW __attribute__ ((__const__));
-
-
-/* Type to count number of attaches. */
-typedef unsigned long int shmatt_t;
-
-/* Data structure describing a shared memory segment. */
-struct shmid_ds
- {
- struct ipc_perm shm_perm; /* operation permission struct */
- size_t shm_segsz; /* size of segment in bytes */
- __time_t shm_atime; /* time of last shmat() */
-#if __WORDSIZE == 32
- unsigned long int __glibc_reserved1;
-#endif
- __time_t shm_dtime; /* time of last shmdt() */
-#if __WORDSIZE == 32
- unsigned long int __glibc_reserved2;
-#endif
- __time_t shm_ctime; /* time of last change by shmctl() */
-#if __WORDSIZE == 32
- unsigned long int __glibc_reserved3;
-#endif
- __pid_t shm_cpid; /* pid of creator */
- __pid_t shm_lpid; /* pid of last shmop */
- shmatt_t shm_nattch; /* number of current attaches */
- unsigned long int __glibc_reserved4;
- unsigned long int __glibc_reserved5;
- };
-
-#ifdef __USE_MISC
-
-/* ipcs ctl commands */
-# define SHM_STAT 13
-# define SHM_INFO 14
-# define SHM_STAT_ANY 15
-
-/* shm_mode upper byte flags */
-# define SHM_DEST 01000 /* segment will be destroyed on last detach */
-# define SHM_LOCKED 02000 /* segment will not be swapped */
-# define SHM_HUGETLB 04000 /* segment is mapped via hugetlb */
-# define SHM_NORESERVE 010000 /* don't check for reservations */
-
-struct shminfo
- {
- unsigned long int shmmax;
- unsigned long int shmmin;
- unsigned long int shmmni;
- unsigned long int shmseg;
- unsigned long int shmall;
- unsigned long int __glibc_reserved1;
- unsigned long int __glibc_reserved2;
- unsigned long int __glibc_reserved3;
- unsigned long int __glibc_reserved4;
- };
-
-struct shm_info
- {
- int used_ids;
- unsigned long int shm_tot; /* total allocated shm */
- unsigned long int shm_rss; /* total resident shm */
- unsigned long int shm_swp; /* total swapped shm */
- unsigned long int swap_attempts;
- unsigned long int swap_successes;
- };
-
-#endif /* __USE_MISC */
-
-__END_DECLS
diff --git a/sysdeps/unix/sysv/linux/generic/bits/stat.h b/sysdeps/unix/sysv/linux/generic/bits/stat.h
index 08e86ef086..34c455ed78 100644
--- a/sysdeps/unix/sysv/linux/generic/bits/stat.h
+++ b/sysdeps/unix/sysv/linux/generic/bits/stat.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Chris Metcalf <cmetcalf@tilera.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if !defined _SYS_STAT_H && !defined _FCNTL_H
# error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
@@ -23,7 +23,7 @@
#ifndef _BITS_STAT_H
#define _BITS_STAT_H 1
-#include <endian.h>
+#include <bits/endian.h>
#include <bits/wordsize.h>
/* 64-bit libc uses the kernel's 'struct stat', accessed via the
@@ -42,7 +42,10 @@
#if defined __USE_FILE_OFFSET64
# define __field64(type, type64, name) type64 name
-#elif __WORDSIZE == 64
+#elif __WORDSIZE == 64 || defined __INO_T_MATCHES_INO64_T
+# if defined __INO_T_MATCHES_INO64_T && !defined __OFF_T_MATCHES_OFF64_T
+# error "ino_t and off_t must both be the same type"
+# endif
# define __field64(type, type64, name) type name
#elif __BYTE_ORDER == __LITTLE_ENDIAN
# define __field64(type, type64, name) \
diff --git a/sysdeps/unix/sysv/linux/generic/bits/statfs.h b/sysdeps/unix/sysv/linux/generic/bits/statfs.h
index 846dd5f618..e622daf224 100644
--- a/sysdeps/unix/sysv/linux/generic/bits/statfs.h
+++ b/sysdeps/unix/sysv/linux/generic/bits/statfs.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
@@ -14,13 +14,13 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_STATFS_H
# error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead."
#endif
-#include <endian.h>
+#include <bits/endian.h>
#include <bits/types.h>
#include <bits/wordsize.h>
@@ -34,7 +34,7 @@
#if defined __USE_FILE_OFFSET64
# define __field64(type, type64, name) type64 name
-#elif __WORDSIZE == 64
+#elif __WORDSIZE == 64 || __STATFS_MATCHES_STATFS64
# define __field64(type, type64, name) type name
#elif __BYTE_ORDER == __LITTLE_ENDIAN
# define __field64(type, type64, name) \
diff --git a/sysdeps/unix/sysv/linux/generic/bits/typesizes.h b/sysdeps/unix/sysv/linux/generic/bits/typesizes.h
index a2cb3433bf..0c8c2e0c12 100644
--- a/sysdeps/unix/sysv/linux/generic/bits/typesizes.h
+++ b/sysdeps/unix/sysv/linux/generic/bits/typesizes.h
@@ -1,5 +1,5 @@
/* bits/typesizes.h -- underlying types for *_t. For the generic Linux ABI.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Chris Metcalf <cmetcalf@tilera.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_TYPES_H
# error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead."
@@ -73,10 +73,14 @@
/* 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
-#endif
+# define __STATFS_MATCHES_STATFS64 0
+#endif
/* Number of descriptors that can fit in an `fd_set'. */
#define __FD_SETSIZE 1024
diff --git a/sysdeps/unix/sysv/linux/generic/brk.c b/sysdeps/unix/sysv/linux/generic/brk.c
index ed47915cba..b8f93647a8 100644
--- a/sysdeps/unix/sysv/linux/generic/brk.c
+++ b/sysdeps/unix/sysv/linux/generic/brk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Chris Metcalf <cmetcalf@tilera.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/unix/sysv/linux/generic/chmod.c b/sysdeps/unix/sysv/linux/generic/chmod.c
index d598c8ae85..02e236b076 100644
--- a/sysdeps/unix/sysv/linux/generic/chmod.c
+++ b/sysdeps/unix/sysv/linux/generic/chmod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Chris Metcalf <cmetcalf@tilera.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/sysdeps/unix/sysv/linux/generic/chown.c b/sysdeps/unix/sysv/linux/generic/chown.c
index 5d2ddb192f..d6e53d5aac 100644
--- a/sysdeps/unix/sysv/linux/generic/chown.c
+++ b/sysdeps/unix/sysv/linux/generic/chown.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Chris Metcalf <cmetcalf@tilera.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/sysdeps/unix/sysv/linux/generic/dl-origin.c b/sysdeps/unix/sysv/linux/generic/dl-origin.c
index d07c863c2c..75b9e4be8b 100644
--- a/sysdeps/unix/sysv/linux/generic/dl-origin.c
+++ b/sysdeps/unix/sysv/linux/generic/dl-origin.c
@@ -1,5 +1,5 @@
/* Find path of executable.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <stdlib.h>
diff --git a/sysdeps/unix/sysv/linux/generic/dup2.c b/sysdeps/unix/sysv/linux/generic/dup2.c
index 294908ef2c..2abb0f84da 100644
--- a/sysdeps/unix/sysv/linux/generic/dup2.c
+++ b/sysdeps/unix/sysv/linux/generic/dup2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Chris Metcalf <cmetcalf@tilera.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/sysdeps/unix/sysv/linux/generic/epoll_create.c b/sysdeps/unix/sysv/linux/generic/epoll_create.c
index bb5f77d1bf..27d00139bb 100644
--- a/sysdeps/unix/sysv/linux/generic/epoll_create.c
+++ b/sysdeps/unix/sysv/linux/generic/epoll_create.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Chris Metcalf <cmetcalf@tilera.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <errno.h>
diff --git a/sysdeps/unix/sysv/linux/generic/futimesat.c b/sysdeps/unix/sysv/linux/generic/futimesat.c
index 64058edd18..f6a932db63 100644
--- a/sysdeps/unix/sysv/linux/generic/futimesat.c
+++ b/sysdeps/unix/sysv/linux/generic/futimesat.c
@@ -1,5 +1,5 @@
/* futimesat -- Change access and modification times of file. Linux version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Chris Metcalf <cmetcalf@tilera.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
@@ -37,8 +37,8 @@ futimesat (int fd, const char *file, const struct timeval tvp[2])
if (tvp)
{
- if (tvp[0].tv_usec >= 1000000 || tvp[0].tv_usec < 0 ||
- tvp[1].tv_usec >= 1000000 || tvp[1].tv_usec < 0)
+ if (tvp[0].tv_usec >= 1000000 || tvp[0].tv_usec < 0
+ || tvp[1].tv_usec >= 1000000 || tvp[1].tv_usec < 0)
{
__set_errno (EINVAL);
return -1;
diff --git a/sysdeps/unix/sysv/linux/generic/inotify_init.c b/sysdeps/unix/sysv/linux/generic/inotify_init.c
index ab49fb835c..f257b12c72 100644
--- a/sysdeps/unix/sysv/linux/generic/inotify_init.c
+++ b/sysdeps/unix/sysv/linux/generic/inotify_init.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Chris Metcalf <cmetcalf@tilera.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <errno.h>
diff --git a/sysdeps/unix/sysv/linux/generic/kernel_stat.h b/sysdeps/unix/sysv/linux/generic/kernel_stat.h
index 2f36a51576..2d0cf38254 100644
--- a/sysdeps/unix/sysv/linux/generic/kernel_stat.h
+++ b/sysdeps/unix/sysv/linux/generic/kernel_stat.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Chris Metcalf <cmetcalf@tilera.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <bits/wordsize.h>
diff --git a/sysdeps/unix/sysv/linux/generic/lchown.c b/sysdeps/unix/sysv/linux/generic/lchown.c
index 8e503f54b2..b0580a434a 100644
--- a/sysdeps/unix/sysv/linux/generic/lchown.c
+++ b/sysdeps/unix/sysv/linux/generic/lchown.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Chris Metcalf <cmetcalf@tilera.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/sysdeps/unix/sysv/linux/generic/link.c b/sysdeps/unix/sysv/linux/generic/link.c
index 6f0ec63108..ad0dedc5fd 100644
--- a/sysdeps/unix/sysv/linux/generic/link.c
+++ b/sysdeps/unix/sysv/linux/generic/link.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Chris Metcalf <cmetcalf@tilera.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/sysdeps/unix/sysv/linux/generic/lxstat.c b/sysdeps/unix/sysv/linux/generic/lxstat.c
index b175c85bea..3f59e0c62b 100644
--- a/sysdeps/unix/sysv/linux/generic/lxstat.c
+++ b/sysdeps/unix/sysv/linux/generic/lxstat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Chris Metcalf <cmetcalf@tilera.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Ignore prototype to avoid error if we alias __lxstat and __lxstat64. */
#define __lxstat64 __lxstat64_disable
diff --git a/sysdeps/unix/sysv/linux/generic/mkdir.c b/sysdeps/unix/sysv/linux/generic/mkdir.c
index a597622d7d..4ad031948f 100644
--- a/sysdeps/unix/sysv/linux/generic/mkdir.c
+++ b/sysdeps/unix/sysv/linux/generic/mkdir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Chris Metcalf <cmetcalf@tilera.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/sysdeps/unix/sysv/linux/generic/pipe.c b/sysdeps/unix/sysv/linux/generic/pipe.c
index d33052cad0..93d3c092ea 100644
--- a/sysdeps/unix/sysv/linux/generic/pipe.c
+++ b/sysdeps/unix/sysv/linux/generic/pipe.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Chris Metcalf <cmetcalf@tilera.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/unix/sysv/linux/generic/readlink.c b/sysdeps/unix/sysv/linux/generic/readlink.c
index 6c7b62af3f..b579e065b2 100644
--- a/sysdeps/unix/sysv/linux/generic/readlink.c
+++ b/sysdeps/unix/sysv/linux/generic/readlink.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Chris Metcalf <cmetcalf@tilera.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/unix/sysv/linux/generic/readlink_chk.c b/sysdeps/unix/sysv/linux/generic/readlink_chk.c
deleted file mode 100644
index 9240408a6b..0000000000
--- a/sysdeps/unix/sysv/linux/generic/readlink_chk.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <unistd.h>
-#include <fcntl.h>
-#include <sys/param.h>
-#ifdef HAVE_INLINED_SYSCALLS
-# include <errno.h>
-# include <sysdep.h>
-#endif
-
-
-ssize_t
-__readlink_chk (const char *path, void *buf, size_t len, size_t buflen)
-{
- if (len > buflen)
- __chk_fail ();
-
-#ifdef HAVE_INLINED_SYSCALLS
- return INLINE_SYSCALL (readlinkat, 4, AT_FDCWD, path, buf, len);
-#else
- return __readlink (path, buf, len);
-#endif
-}
diff --git a/sysdeps/unix/sysv/linux/generic/rmdir.c b/sysdeps/unix/sysv/linux/generic/rmdir.c
index 8c6ffa0c5d..2873d3ccaf 100644
--- a/sysdeps/unix/sysv/linux/generic/rmdir.c
+++ b/sysdeps/unix/sysv/linux/generic/rmdir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Chris Metcalf <cmetcalf@tilera.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/sysdeps/unix/sysv/linux/generic/stat-check.c b/sysdeps/unix/sysv/linux/generic/stat-check.c
new file mode 100644
index 0000000000..c3204ca7f9
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/generic/stat-check.c
@@ -0,0 +1,29 @@
+/* Static assert for __blkcnt64_t when __INO_T_MATCHES_INO64_T is defined.
+ 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. If not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <sys/stat.h>
+#include <bits/typesizes.h>
+
+/* This is due to the layout code in bits/stat.h and the overflow handling in
+ wordsize-32/overflow.h, requiring either all or none of the three types
+ concerned to have padding. */
+
+#if defined __INO_T_MATCHES_INO64_T
+_Static_assert (sizeof (__blkcnt_t) == sizeof (__blkcnt64_t),
+ "__blkcnt_t and __blkcnt64_t must match");
+#endif
diff --git a/sysdeps/unix/sysv/linux/generic/symlink.c b/sysdeps/unix/sysv/linux/generic/symlink.c
index db991c81d8..2e7487c9f5 100644
--- a/sysdeps/unix/sysv/linux/generic/symlink.c
+++ b/sysdeps/unix/sysv/linux/generic/symlink.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Chris Metcalf <cmetcalf@tilera.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/sysdeps/unix/sysv/linux/generic/sysctl.c b/sysdeps/unix/sysv/linux/generic/sysctl.c
index 61e7fa8149..64b66d7420 100644
--- a/sysdeps/unix/sysv/linux/generic/sysctl.c
+++ b/sysdeps/unix/sysv/linux/generic/sysctl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Chris Metcalf <cmetcalf@tilera.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
diff --git a/sysdeps/unix/sysv/linux/generic/sysdep.h b/sysdeps/unix/sysv/linux/generic/sysdep.h
index 81a1011f46..0d200fbceb 100644
--- a/sysdeps/unix/sysv/linux/generic/sysdep.h
+++ b/sysdeps/unix/sysv/linux/generic/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Chris Metcalf <cmetcalf@tilera.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <bits/wordsize.h>
#include <kernel-features.h>
diff --git a/sysdeps/unix/sysv/linux/generic/unlink.c b/sysdeps/unix/sysv/linux/generic/unlink.c
index f07712f8a8..b240d3df68 100644
--- a/sysdeps/unix/sysv/linux/generic/unlink.c
+++ b/sysdeps/unix/sysv/linux/generic/unlink.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Chris Metcalf <cmetcalf@tilera.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/sysdeps/unix/sysv/linux/generic/utimes.c b/sysdeps/unix/sysv/linux/generic/utimes.c
index b8227fc4ef..aafa498491 100644
--- a/sysdeps/unix/sysv/linux/generic/utimes.c
+++ b/sysdeps/unix/sysv/linux/generic/utimes.c
@@ -1,5 +1,5 @@
/* utimes -- Change access and modification times of file. Linux version.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Chris Metcalf <cmetcalf@tilera.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/sysdeps/unix/sysv/linux/generic/wordsize-32/fstatfs.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/fstatfs.c
index 5aebf2334c..164b400338 100644
--- a/sysdeps/unix/sysv/linux/generic/wordsize-32/fstatfs.c
+++ b/sysdeps/unix/sysv/linux/generic/wordsize-32/fstatfs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Chris Metcalf <cmetcalf@tilera.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/statfs.h>
diff --git a/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstat.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstat.c
index b5c766ddf3..94ce477051 100644
--- a/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstat.c
+++ b/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
@@ -14,10 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
+#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <kernel_stat.h>
@@ -27,6 +28,7 @@
#if !XSTAT_IS_XSTAT64
#include "overflow.h"
+#include <statx_cp.h>
/* Get information about the file FD in BUF. */
int
@@ -34,7 +36,15 @@ __fxstat (int vers, int fd, struct stat *buf)
{
if (vers == _STAT_VER_KERNEL)
{
+# ifdef __NR_fstat64
int rc = INLINE_SYSCALL (fstat64, 2, fd, buf);
+# else
+ struct statx tmp;
+ int rc = INLINE_SYSCALL (statx, 5, fd, "", AT_EMPTY_PATH,
+ STATX_BASIC_STATS, &tmp);
+ if (rc == 0)
+ __cp_stat64_statx ((struct stat64 *)buf, &tmp);
+# endif
return rc ?: stat_overflow (buf);
}
diff --git a/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstat64.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstat64.c
index c558388b8c..b007da17de 100644
--- a/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstat64.c
+++ b/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstat64.c
@@ -1,5 +1,5 @@
/* __fxstat64 () implementation.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Chris Metcalf <cmetcalf@tilera.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Hide the prototypes for __fxstat and _fxstat so that GCC will not
complain about the different function signatures if they are aliased
diff --git a/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstatat.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstatat.c
index 0bda8f7ac4..a544f7b348 100644
--- a/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstatat.c
+++ b/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstatat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Chris Metcalf <cmetcalf@tilera.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
@@ -28,6 +28,7 @@
#if !XSTAT_IS_XSTAT64
#include "overflow.h"
+#include <statx_cp.h>
/* Get information about the file NAME in BUF. */
int
@@ -35,7 +36,16 @@ __fxstatat (int vers, int fd, const char *file, struct stat *buf, int flag)
{
if (vers == _STAT_VER_KERNEL)
{
+# ifdef __NR_fstatat64
int rc = INLINE_SYSCALL (fstatat64, 4, fd, file, buf, flag);
+# else
+ struct statx tmp;
+ int rc = INLINE_SYSCALL (statx, 5, fd, file,
+ AT_NO_AUTOMOUNT | flag,
+ STATX_BASIC_STATS, &tmp);
+ if (rc == 0)
+ __cp_stat64_statx ((struct stat64 *)buf, &tmp);
+# endif
return rc ?: stat_overflow (buf);
}
diff --git a/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstatat64.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstatat64.c
index 602bf4b28a..fc14494c2c 100644
--- a/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstatat64.c
+++ b/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstatat64.c
@@ -1,5 +1,5 @@
/* __fxstatat64 () implementation.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Chris Metcalf <cmetcalf@tilera.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Hide the prototype for __fxstatat so that GCC will not complain about
the different function signature if it is aliased to __fxstatat64.
diff --git a/sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat.c
index c278a4dbce..325592d04e 100644
--- a/sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat.c
+++ b/sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Chris Metcalf <cmetcalf@tilera.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
@@ -27,6 +27,7 @@
#if !XSTAT_IS_XSTAT64
#include "overflow.h"
+#include <statx_cp.h>
/* Get information about the file NAME in BUF. */
int
@@ -34,8 +35,17 @@ __lxstat (int vers, const char *name, struct stat *buf)
{
if (vers == _STAT_VER_KERNEL)
{
+#ifdef __NR_fstatat64
int rc = INLINE_SYSCALL (fstatat64, 4, AT_FDCWD, name, buf,
AT_SYMLINK_NOFOLLOW);
+#else
+ struct statx tmp;
+ int rc = INLINE_SYSCALL (statx, 5, AT_FDCWD, name,
+ AT_NO_AUTOMOUNT | AT_SYMLINK_NOFOLLOW,
+ STATX_BASIC_STATS, &tmp);
+ if (rc == 0)
+ __cp_stat64_statx ((struct stat64 *)buf, &tmp);
+#endif
return rc ?: stat_overflow (buf);
}
errno = EINVAL;
diff --git a/sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat64.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat64.c
index 761dd16233..2076ff22c4 100644
--- a/sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat64.c
+++ b/sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Chris Metcalf <cmetcalf@tilera.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Hide the prototype for __lxstat so that GCC will not complain about
the different function signature if it is aliased to __lxstat64.
@@ -32,13 +32,28 @@
#include <sysdep.h>
#include <sys/syscall.h>
+#include <statx_cp.h>
+
/* Get information about the file NAME in BUF. */
int
__lxstat64 (int vers, const char *name, struct stat64 *buf)
{
if (vers == _STAT_VER_KERNEL)
- return INLINE_SYSCALL (fstatat64, 4, AT_FDCWD, name, buf,
- AT_SYMLINK_NOFOLLOW);
+ {
+#ifdef __NR_fstatat64
+ return INLINE_SYSCALL (fstatat64, 4, AT_FDCWD, name, buf,
+ AT_SYMLINK_NOFOLLOW);
+#else
+ struct statx tmp;
+ int rc = INLINE_SYSCALL (statx, 5, AT_FDCWD, name,
+ AT_NO_AUTOMOUNT | AT_SYMLINK_NOFOLLOW,
+ STATX_BASIC_STATS, &tmp);
+ if (rc == 0)
+ __cp_stat64_statx (buf, &tmp);
+ return rc;
+#endif
+ }
+
errno = EINVAL;
return -1;
}
diff --git a/sysdeps/unix/sysv/linux/generic/wordsize-32/overflow.h b/sysdeps/unix/sysv/linux/generic/wordsize-32/overflow.h
index 9d70532150..f63dbfae89 100644
--- a/sysdeps/unix/sysv/linux/generic/wordsize-32/overflow.h
+++ b/sysdeps/unix/sysv/linux/generic/wordsize-32/overflow.h
@@ -1,5 +1,5 @@
/* Overflow tests for stat, statfs, and lseek functions.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Chris Metcalf <cmetcalf@tilera.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/stat.h>
#include <sys/statfs.h>
@@ -36,25 +36,33 @@ static inline off_t lseek_overflow (loff_t res)
static inline int stat_overflow (struct stat *buf)
{
- if (buf->__st_ino_pad == 0 && buf->__st_size_pad == 0 &&
- buf->__st_blocks_pad == 0)
+#if defined __INO_T_MATCHES_INO64_T
+ return 0;
+#else
+ if (buf->__st_ino_pad == 0 && buf->__st_size_pad == 0
+ && buf->__st_blocks_pad == 0)
return 0;
__set_errno (EOVERFLOW);
return -1;
+#endif
}
/* Note that f_files and f_ffree may validly be a sign-extended -1. */
static inline int statfs_overflow (struct statfs *buf)
{
- if (buf->__f_blocks_pad == 0 && buf->__f_bfree_pad == 0 &&
- buf->__f_bavail_pad == 0 &&
- (buf->__f_files_pad == 0 ||
- (buf->f_files == -1U && buf->__f_files_pad == -1)) &&
- (buf->__f_ffree_pad == 0 ||
- (buf->f_ffree == -1U && buf->__f_ffree_pad == -1)))
+#if __STATFS_MATCHES_STATFS64
+ return 0;
+#else
+ if (buf->__f_blocks_pad == 0 && buf->__f_bfree_pad == 0
+ && buf->__f_bavail_pad == 0
+ && (buf->__f_files_pad == 0
+ || (buf->f_files == -1U && buf->__f_files_pad == -1))
+ && (buf->__f_ffree_pad == 0
+ || (buf->f_ffree == -1U && buf->__f_ffree_pad == -1)))
return 0;
__set_errno (EOVERFLOW);
return -1;
+#endif
}
diff --git a/sysdeps/unix/sysv/linux/generic/wordsize-32/sendfile.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/sendfile.c
index 5860f28844..16d1309e7a 100644
--- a/sysdeps/unix/sysv/linux/generic/wordsize-32/sendfile.c
+++ b/sysdeps/unix/sysv/linux/generic/wordsize-32/sendfile.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Chris Metcalf <cmetcalf@tilera.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/sendfile.h>
#include <errno.h>
diff --git a/sysdeps/unix/sysv/linux/generic/wordsize-32/statfs.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/statfs.c
index 4e1ba15885..e71c91bbf2 100644
--- a/sysdeps/unix/sysv/linux/generic/wordsize-32/statfs.c
+++ b/sysdeps/unix/sysv/linux/generic/wordsize-32/statfs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Chris Metcalf <cmetcalf@tilera.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/statfs.h>
diff --git a/sysdeps/unix/sysv/linux/generic/wordsize-32/xstat.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/xstat.c
index 1fd57ff9ed..c43f226d02 100644
--- a/sysdeps/unix/sysv/linux/generic/wordsize-32/xstat.c
+++ b/sysdeps/unix/sysv/linux/generic/wordsize-32/xstat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Chris Metcalf <cmetcalf@tilera.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
@@ -27,6 +27,7 @@
#if !XSTAT_IS_XSTAT64
#include "overflow.h"
+#include <statx_cp.h>
/* Get information about the file NAME in BUF. */
int
@@ -34,7 +35,15 @@ __xstat (int vers, const char *name, struct stat *buf)
{
if (vers == _STAT_VER_KERNEL)
{
+# ifdef __NR_fstatat64
int rc = INLINE_SYSCALL (fstatat64, 4, AT_FDCWD, name, buf, 0);
+# else
+ struct statx tmp;
+ int rc = INLINE_SYSCALL (statx, 5, AT_FDCWD, name, AT_NO_AUTOMOUNT,
+ STATX_BASIC_STATS, &tmp);
+ if (rc == 0)
+ __cp_stat64_statx ((struct stat64 *)buf, &tmp);
+# endif
return rc ?: stat_overflow (buf);
}
diff --git a/sysdeps/unix/sysv/linux/generic/wordsize-32/xstat64.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/xstat64.c
index ae704958ba..c55b45ebe0 100644
--- a/sysdeps/unix/sysv/linux/generic/wordsize-32/xstat64.c
+++ b/sysdeps/unix/sysv/linux/generic/wordsize-32/xstat64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Chris Metcalf <cmetcalf@tilera.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Hide the prototype for __xstat so that GCC will not complain about
the different function signature if it is aliased to __xstat64.
@@ -32,13 +32,25 @@
#include <sysdep.h>
#include <sys/syscall.h>
+#include <statx_cp.h>
+
/* Get information about the file NAME in BUF. */
int
__xstat64 (int vers, const char *name, struct stat64 *buf)
{
if (vers == _STAT_VER_KERNEL)
- return INLINE_SYSCALL (fstatat64, 4, AT_FDCWD, name, buf, 0);
-
+ {
+#ifdef __NR_fstatat64
+ return INLINE_SYSCALL (fstatat64, 4, AT_FDCWD, name, buf, 0);
+#else
+ struct statx tmp;
+ int rc = INLINE_SYSCALL (statx, 5, AT_FDCWD, name, AT_NO_AUTOMOUNT,
+ STATX_BASIC_STATS, &tmp);
+ if (rc == 0)
+ __cp_stat64_statx (buf, &tmp);
+ return rc;
+#endif
+ }
errno = EINVAL;
return -1;
}
diff --git a/sysdeps/unix/sysv/linux/generic/xmknod.c b/sysdeps/unix/sysv/linux/generic/xmknod.c
index 9c9e634e41..74a1b60ca7 100644
--- a/sysdeps/unix/sysv/linux/generic/xmknod.c
+++ b/sysdeps/unix/sysv/linux/generic/xmknod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Chris Metcalf <cmetcalf@tilera.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/sysdeps/unix/sysv/linux/generic/xstat.c b/sysdeps/unix/sysv/linux/generic/xstat.c
index 39acac633e..75ceb9bc74 100644
--- a/sysdeps/unix/sysv/linux/generic/xstat.c
+++ b/sysdeps/unix/sysv/linux/generic/xstat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Chris Metcalf <cmetcalf@tilera.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Ignore prototype to avoid error if we alias __xstat and __xstat64. */
#define __xstat64 __xstat64_disable
diff --git a/sysdeps/unix/sysv/linux/gentempfd.c b/sysdeps/unix/sysv/linux/gentempfd.c
index ece6a7593c..4d62f839c1 100644
--- a/sysdeps/unix/sysv/linux/gentempfd.c
+++ b/sysdeps/unix/sysv/linux/gentempfd.c
@@ -1,5 +1,5 @@
/* Generate a temporary file descriptor. Linux version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <fcntl.h>
diff --git a/sysdeps/unix/sysv/linux/getclktck.c b/sysdeps/unix/sysv/linux/getclktck.c
index 7abd4147c6..feedde9b2f 100644
--- a/sysdeps/unix/sysv/linux/getclktck.c
+++ b/sysdeps/unix/sysv/linux/getclktck.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <time.h>
diff --git a/sysdeps/unix/sysv/linux/getcpu.c b/sysdeps/unix/sysv/linux/getcpu.c
new file mode 100644
index 0000000000..fdd27203af
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/getcpu.c
@@ -0,0 +1,38 @@
+/* Copyright (C) 2007-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <sched.h>
+#include <sysdep.h>
+
+#ifdef HAVE_GETCPU_VSYSCALL
+# define HAVE_VSYSCALL
+#endif
+#include <sysdep-vdso.h>
+
+int
+__getcpu (unsigned int *cpu, unsigned int *node)
+{
+#ifdef __NR_getcpu
+ return INLINE_VSYSCALL (getcpu, 3, cpu, node, NULL);
+#else
+ __set_errno (ENOSYS);
+ return -1;
+#endif
+}
+weak_alias (__getcpu, getcpu)
+libc_hidden_def (__getcpu)
diff --git a/sysdeps/unix/sysv/linux/getcwd.c b/sysdeps/unix/sysv/linux/getcwd.c
index 866b9d26d5..c031e1ff5a 100644
--- a/sysdeps/unix/sysv/linux/getcwd.c
+++ b/sysdeps/unix/sysv/linux/getcwd.c
@@ -1,5 +1,5 @@
/* Determine current working directory. Linux version.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
@@ -127,6 +127,7 @@ __getcwd (char *buf, size_t size)
return NULL;
}
+libc_hidden_def (__getcwd)
weak_alias (__getcwd, getcwd)
/* Get the code for the generic version. */
diff --git a/sysdeps/unix/sysv/linux/getdents.c b/sysdeps/unix/sysv/linux/getdents.c
index 6d09a5be70..e1e2a8b8a9 100644
--- a/sysdeps/unix/sysv/linux/getdents.c
+++ b/sysdeps/unix/sysv/linux/getdents.c
@@ -1,5 +1,5 @@
/* Get directory entries. Linux non-LFS version.
- Copyright (C) 1993-2018 Free Software Foundation, Inc.
+ Copyright (C) 1993-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dirent.h>
@@ -31,8 +31,10 @@
/* Pack the dirent64 struct down into 32-bit offset/inode fields, and
ensure that no overflow occurs. */
ssize_t
-__getdents (int fd, char *buf, size_t nbytes)
+__getdents (int fd, void *buf0, size_t nbytes)
{
+ char *buf = buf0;
+
union
{
/* For !_DIRENT_MATCHES_DIRENT64 kernel 'linux_dirent64' has the same
diff --git a/sysdeps/unix/sysv/linux/getdents64.c b/sysdeps/unix/sysv/linux/getdents64.c
index 3bde0cf4f0..ae1691a4f8 100644
--- a/sysdeps/unix/sysv/linux/getdents64.c
+++ b/sysdeps/unix/sysv/linux/getdents64.c
@@ -1,5 +1,5 @@
/* Get directory entries. Linux LFS version.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,18 +14,25 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <dirent.h>
#include <errno.h>
+#include <limits.h>
-/* The kernel struct linux_dirent64 matches the 'struct getdents64' type. */
+/* The kernel struct linux_dirent64 matches the 'struct dirent64' type. */
ssize_t
-__getdents64 (int fd, char *buf, size_t nbytes)
+__getdents64 (int fd, void *buf, size_t nbytes)
{
+ /* The system call takes an unsigned int argument, and some length
+ checks in the kernel use an int type. */
+ if (nbytes > INT_MAX)
+ nbytes = INT_MAX;
return INLINE_SYSCALL_CALL (getdents64, fd, buf, nbytes);
}
+libc_hidden_def (__getdents64)
+weak_alias (__getdents64, getdents64)
#if _DIRENT_MATCHES_DIRENT64
strong_alias (__getdents64, __getdents)
@@ -33,41 +40,90 @@ strong_alias (__getdents64, __getdents)
# include <shlib-compat.h>
# if SHLIB_COMPAT(libc, GLIBC_2_1, GLIBC_2_2)
-# include <olddirent.h>
+# include <olddirent.h>
+# include <unistd.h>
-/* kernel definition of as of 3.2. */
-struct compat_linux_dirent
+static ssize_t
+handle_overflow (int fd, __off64_t offset, ssize_t count)
{
- /* Both d_ino and d_off are compat_ulong_t which are defined in all
- architectures as 'u32'. */
- uint32_t d_ino;
- uint32_t d_off;
- unsigned short d_reclen;
- char d_name[1];
-};
+ /* If this is the first entry in the buffer, we can report the
+ error. */
+ if (offset == 0)
+ {
+ __set_errno (EOVERFLOW);
+ return -1;
+ }
+
+ /* Otherwise, seek to the overflowing entry, so that the next call
+ will report the error, and return the data read so far. */
+ if (__lseek64 (fd, offset, SEEK_SET) != 0)
+ return -1;
+ return count;
+}
ssize_t
__old_getdents64 (int fd, char *buf, size_t nbytes)
{
- ssize_t retval = INLINE_SYSCALL_CALL (getdents, fd, buf, nbytes);
+ /* We do not move the individual directory entries. This is only
+ possible if the target type (struct __old_dirent64) is smaller
+ than the source type. */
+ _Static_assert (offsetof (struct __old_dirent64, d_name)
+ <= offsetof (struct dirent64, d_name),
+ "__old_dirent64 is larger than dirent64");
+ _Static_assert (__alignof__ (struct __old_dirent64)
+ <= __alignof__ (struct dirent64),
+ "alignment of __old_dirent64 is larger than dirent64");
- /* The kernel added the d_type value after the name. Change this now. */
- if (retval != -1)
+ ssize_t retval = INLINE_SYSCALL_CALL (getdents64, fd, buf, nbytes);
+ if (retval > 0)
{
- union
- {
- struct compat_linux_dirent k;
- struct dirent u;
- } *kbuf = (void *) buf;
+ /* This is the marker for the first entry. Offset 0 is reserved
+ for the first entry (see rewinddir). Here, we use it as a
+ marker for the first entry in the buffer. We never actually
+ seek to offset 0 because handle_overflow reports the error
+ directly, so it does not matter that the offset is incorrect
+ if entries have been read from the descriptor before (so that
+ the descriptor is not actually at offset 0). */
+ __off64_t previous_offset = 0;
- while ((char *) kbuf < buf + retval)
+ char *p = buf;
+ char *end = buf + retval;
+ while (p < end)
{
- char d_type = *((char *) kbuf + kbuf->k.d_reclen - 1);
- memmove (kbuf->u.d_name, kbuf->k.d_name,
- strlen (kbuf->k.d_name) + 1);
- kbuf->u.d_type = d_type;
+ struct dirent64 *source = (struct dirent64 *) p;
+
+ /* Copy out the fixed-size data. */
+ __ino_t ino = source->d_ino;
+ __off64_t offset = source->d_off;
+ unsigned int reclen = source->d_reclen;
+ unsigned char type = source->d_type;
+
+ /* Check for ino_t overflow. */
+ if (__glibc_unlikely (ino != source->d_ino))
+ return handle_overflow (fd, previous_offset, p - buf);
+
+ /* Convert to the target layout. Use a separate struct and
+ memcpy to side-step aliasing issues. */
+ struct __old_dirent64 result;
+ result.d_ino = ino;
+ result.d_off = offset;
+ result.d_reclen = reclen;
+ result.d_type = type;
+
+ /* Write the fixed-sized part of the result to the
+ buffer. */
+ size_t result_name_offset = offsetof (struct __old_dirent64, d_name);
+ memcpy (p, &result, result_name_offset);
+
+ /* Adjust the position of the name if necessary. Copy
+ everything until the end of the record, including the
+ terminating NUL byte. */
+ if (result_name_offset != offsetof (struct dirent64, d_name))
+ memmove (p + result_name_offset, source->d_name,
+ reclen - offsetof (struct dirent64, d_name));
- kbuf = (void *) ((char *) kbuf + kbuf->k.d_reclen);
+ p += reclen;
+ previous_offset = offset;
}
}
return retval;
diff --git a/sysdeps/unix/sysv/linux/getdirentries.c b/sysdeps/unix/sysv/linux/getdirentries.c
index 23f626b474..654d1d10d6 100644
--- a/sysdeps/unix/sysv/linux/getdirentries.c
+++ b/sysdeps/unix/sysv/linux/getdirentries.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dirent.h>
diff --git a/sysdeps/unix/sysv/linux/getdirentries64.c b/sysdeps/unix/sysv/linux/getdirentries64.c
index 532f2fc177..2c6991e41b 100644
--- a/sysdeps/unix/sysv/linux/getdirentries64.c
+++ b/sysdeps/unix/sysv/linux/getdirentries64.c
@@ -1,5 +1,5 @@
/* Get directory entries in a filesystem-independent format. LFS version.
- Copyright (C) 1993-2018 Free Software Foundation, Inc.
+ Copyright (C) 1993-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define getdirentries __no_getdirentries_decl
#include <dirent.h>
diff --git a/sysdeps/unix/sysv/linux/getdtsz.c b/sysdeps/unix/sysv/linux/getdtsz.c
index 0f47c4026f..aeebfe4c93 100644
--- a/sysdeps/unix/sysv/linux/getdtsz.c
+++ b/sysdeps/unix/sysv/linux/getdtsz.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This comes from the Linux kernel header. */
#define OPEN_MAX 256
diff --git a/sysdeps/unix/sysv/linux/getentropy.c b/sysdeps/unix/sysv/linux/getentropy.c
index 561f8f4c7c..4d8178db2b 100644
--- a/sysdeps/unix/sysv/linux/getentropy.c
+++ b/sysdeps/unix/sysv/linux/getentropy.c
@@ -1,5 +1,5 @@
/* Implementation of getentropy based on the getrandom system call.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/random.h>
#include <assert.h>
diff --git a/sysdeps/unix/sysv/linux/gethostid.c b/sysdeps/unix/sysv/linux/gethostid.c
index 2e20f034dc..3a4e3b8d37 100644
--- a/sysdeps/unix/sysv/linux/gethostid.c
+++ b/sysdeps/unix/sysv/linux/gethostid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <alloca.h>
#include <errno.h>
@@ -102,12 +102,12 @@ gethostid (void)
{
int ret = __gethostbyname_r (hostname, &hostbuf,
tmpbuf.data, tmpbuf.length, &hp, &herr);
- if (ret == 0)
+ if (ret == 0 && hp != NULL)
break;
else
{
/* Enlarge the buffer on ERANGE. */
- if (herr == NETDB_INTERNAL && errno == ERANGE)
+ if (ret != 0 && herr == NETDB_INTERNAL && errno == ERANGE)
{
if (!scratch_buffer_grow (&tmpbuf))
return 0;
diff --git a/sysdeps/unix/sysv/linux/getipv4sourcefilter.c b/sysdeps/unix/sysv/linux/getipv4sourcefilter.c
index c0052c5c04..83f5c72c9b 100644
--- a/sysdeps/unix/sysv/linux/getipv4sourcefilter.c
+++ b/sysdeps/unix/sysv/linux/getipv4sourcefilter.c
@@ -1,5 +1,5 @@
/* Get IPv4 source filter. Linux version.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <alloca.h>
#include <errno.h>
diff --git a/sysdeps/unix/sysv/linux/getloadavg.c b/sysdeps/unix/sysv/linux/getloadavg.c
index fbe46e5c29..a388bb98a6 100644
--- a/sysdeps/unix/sysv/linux/getloadavg.c
+++ b/sysdeps/unix/sysv/linux/getloadavg.c
@@ -1,5 +1,5 @@
/* Get system load averages. Linux (/proc/loadavg) version.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/sysdeps/unix/sysv/linux/getlogin.c b/sysdeps/unix/sysv/linux/getlogin.c
index e5e67fd253..95dbca284f 100644
--- a/sysdeps/unix/sysv/linux/getlogin.c
+++ b/sysdeps/unix/sysv/linux/getlogin.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2010-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pwd.h>
#include <unistd.h>
diff --git a/sysdeps/unix/sysv/linux/getlogin_r.c b/sysdeps/unix/sysv/linux/getlogin_r.c
index 14587712a7..82d6f38451 100644
--- a/sysdeps/unix/sysv/linux/getlogin_r.c
+++ b/sysdeps/unix/sysv/linux/getlogin_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2010-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pwd.h>
#include <unistd.h>
diff --git a/sysdeps/unix/sysv/linux/getpagesize.c b/sysdeps/unix/sysv/linux/getpagesize.c
index 56f21601f6..c030f73286 100644
--- a/sysdeps/unix/sysv/linux/getpagesize.c
+++ b/sysdeps/unix/sysv/linux/getpagesize.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <unistd.h>
diff --git a/sysdeps/unix/sysv/linux/getpeername.c b/sysdeps/unix/sysv/linux/getpeername.c
index aee5054d74..687bad4f01 100644
--- a/sysdeps/unix/sysv/linux/getpeername.c
+++ b/sysdeps/unix/sysv/linux/getpeername.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2015-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/sysdeps/unix/sysv/linux/getpriority.c b/sysdeps/unix/sysv/linux/getpriority.c
index 10652d2ad0..b91d40c5cd 100644
--- a/sysdeps/unix/sysv/linux/getpriority.c
+++ b/sysdeps/unix/sysv/linux/getpriority.c
@@ -1,5 +1,5 @@
/* getpriority for Linux.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/resource.h>
diff --git a/sysdeps/unix/sysv/linux/getpt.c b/sysdeps/unix/sysv/linux/getpt.c
index 77aa468d83..cdde8377f5 100644
--- a/sysdeps/unix/sysv/linux/getpt.c
+++ b/sysdeps/unix/sysv/linux/getpt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Zack Weinberg <zack@rabi.phys.columbia.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/sysdeps/unix/sysv/linux/getrandom.c b/sysdeps/unix/sysv/linux/getrandom.c
index 435b037399..83388b5319 100644
--- a/sysdeps/unix/sysv/linux/getrandom.c
+++ b/sysdeps/unix/sysv/linux/getrandom.c
@@ -1,5 +1,5 @@
/* Implementation of the getrandom system call.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/random.h>
#include <errno.h>
@@ -25,7 +25,7 @@
/* Write up to LENGTH bytes of randomness starting at BUFFER.
Return the number of bytes written, or -1 on error. */
ssize_t
-getrandom (void *buffer, size_t length, unsigned int flags)
+__getrandom (void *buffer, size_t length, unsigned int flags)
{
return SYSCALL_CANCEL (getrandom, buffer, length, flags);
}
@@ -33,7 +33,7 @@ getrandom (void *buffer, size_t length, unsigned int flags)
/* Always provide a definition, even if the kernel headers lack the
system call number. */
ssize_t
-getrandom (void *buffer, size_t length, unsigned int flags)
+__getrandom (void *buffer, size_t length, unsigned int flags)
{
/* Ideally, we would add a cancellation point here, but we currently
cannot do so inside libc. */
@@ -41,3 +41,5 @@ getrandom (void *buffer, size_t length, unsigned int flags)
return -1;
}
#endif
+libc_hidden_def (__getrandom)
+weak_alias (__getrandom, getrandom)
diff --git a/sysdeps/unix/sysv/linux/getrlimit.c b/sysdeps/unix/sysv/linux/getrlimit.c
index c48790bf63..9f5f1abda3 100644
--- a/sysdeps/unix/sysv/linux/getrlimit.c
+++ b/sysdeps/unix/sysv/linux/getrlimit.c
@@ -1,5 +1,5 @@
/* Linux getrlimit implementation (32 bits rlim_t).
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/resource.h>
diff --git a/sysdeps/unix/sysv/linux/getrlimit64.c b/sysdeps/unix/sysv/linux/getrlimit64.c
index a14ca58096..e21423a0f6 100644
--- a/sysdeps/unix/sysv/linux/getrlimit64.c
+++ b/sysdeps/unix/sysv/linux/getrlimit64.c
@@ -1,5 +1,5 @@
/* Linux getrlimit64 implementation (64 bits rlim_t).
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/types.h>
diff --git a/sysdeps/unix/sysv/linux/getsockname.c b/sysdeps/unix/sysv/linux/getsockname.c
index 1874aebbb4..1aab3b5fb4 100644
--- a/sysdeps/unix/sysv/linux/getsockname.c
+++ b/sysdeps/unix/sysv/linux/getsockname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2015-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/sysdeps/unix/sysv/linux/getsockopt.c b/sysdeps/unix/sysv/linux/getsockopt.c
index 4422f88594..104fbbfc5b 100644
--- a/sysdeps/unix/sysv/linux/getsockopt.c
+++ b/sysdeps/unix/sysv/linux/getsockopt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2015-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/sysdeps/unix/sysv/linux/getsourcefilter.c b/sysdeps/unix/sysv/linux/getsourcefilter.c
index d983b1272a..416c163989 100644
--- a/sysdeps/unix/sysv/linux/getsourcefilter.c
+++ b/sysdeps/unix/sysv/linux/getsourcefilter.c
@@ -1,5 +1,5 @@
/* Get source filter. Linux version.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <alloca.h>
#include <assert.h>
diff --git a/sysdeps/unix/sysv/linux/getsourcefilter.h b/sysdeps/unix/sysv/linux/getsourcefilter.h
index 3a74343e4d..d33c7c863b 100644
--- a/sysdeps/unix/sysv/linux/getsourcefilter.h
+++ b/sysdeps/unix/sysv/linux/getsourcefilter.h
@@ -1,5 +1,5 @@
/* __get_sol function prototype.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Defined in getsourcefilter.c. */
extern int __get_sol (int af, socklen_t len) attribute_hidden;
diff --git a/sysdeps/unix/sysv/linux/getsysstats.c b/sysdeps/unix/sysv/linux/getsysstats.c
index 05533bcc3b..6457193227 100644
--- a/sysdeps/unix/sysv/linux/getsysstats.c
+++ b/sysdeps/unix/sysv/linux/getsysstats.c
@@ -1,5 +1,5 @@
/* Determine various system internal values, Linux version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <alloca.h>
#include <assert.h>
@@ -128,7 +128,7 @@ __get_nprocs (void)
static int cached_result = -1;
static time_t timestamp;
- time_t now = time (NULL);
+ time_t now = time_now ();
time_t prev = timestamp;
atomic_read_barrier ();
if (now == prev && cached_result > -1)
diff --git a/sysdeps/unix/sysv/linux/gettimeofday.c b/sysdeps/unix/sysv/linux/gettimeofday.c
deleted file mode 100644
index cd971ddfcf..0000000000
--- a/sysdeps/unix/sysv/linux/gettimeofday.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <sys/time.h>
-
-#undef __gettimeofday
-
-#ifdef HAVE_GETTIMEOFDAY_VSYSCALL
-# define HAVE_VSYSCALL
-#endif
-#include <sysdep-vdso.h>
-
-/* Get the current time of day and timezone information,
- putting it into *tv and *tz. If tz is null, *tz is not filled.
- Returns 0 on success, -1 on errors. */
-int
-__gettimeofday (struct timeval *tv, struct timezone *tz)
-{
- return INLINE_VSYSCALL (gettimeofday, 2, tv, tz);
-}
-libc_hidden_def (__gettimeofday)
-weak_alias (__gettimeofday, gettimeofday)
-libc_hidden_weak (gettimeofday)
diff --git a/sysdeps/unix/sysv/linux/glob-lstat-compat.c b/sysdeps/unix/sysv/linux/glob-lstat-compat.c
index 64dab9af52..6b5133aa28 100644
--- a/sysdeps/unix/sysv/linux/glob-lstat-compat.c
+++ b/sysdeps/unix/sysv/linux/glob-lstat-compat.c
@@ -1,6 +1,6 @@
/* Compat glob which does not use gl_lstat for GLOB_ALTDIRFUNC.
Linux version which handles LFS when required.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/stat.h>
#include <kernel_stat.h>
diff --git a/sysdeps/unix/sysv/linux/glob.c b/sysdeps/unix/sysv/linux/glob.c
index 2fccbe1b1d..a0933c680e 100644
--- a/sysdeps/unix/sysv/linux/glob.c
+++ b/sysdeps/unix/sysv/linux/glob.c
@@ -1,5 +1,5 @@
/* Find pathnames matching a pattern. Linux version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/stat.h>
#include <kernel_stat.h>
diff --git a/sysdeps/unix/sysv/linux/glob64-lstat-compat.c b/sysdeps/unix/sysv/linux/glob64-lstat-compat.c
index 4475e0091c..c2428acaa8 100644
--- a/sysdeps/unix/sysv/linux/glob64-lstat-compat.c
+++ b/sysdeps/unix/sysv/linux/glob64-lstat-compat.c
@@ -1,6 +1,6 @@
/* Compat glob which does not use gl_lstat for GLOB_ALTDIRFUNC.
Linux version which handles LFS when required.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/stat.h>
#include <kernel_stat.h>
diff --git a/sysdeps/unix/sysv/linux/glob64.c b/sysdeps/unix/sysv/linux/glob64.c
index 48a0e5a225..77a8901191 100644
--- a/sysdeps/unix/sysv/linux/glob64.c
+++ b/sysdeps/unix/sysv/linux/glob64.c
@@ -1,5 +1,5 @@
/* Find pathnames matching a pattern. Linux version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/stat.h>
#include <kernel_stat.h>
diff --git a/sysdeps/unix/sysv/linux/globfree.c b/sysdeps/unix/sysv/linux/globfree.c
index b7222c23bf..9f22dfa271 100644
--- a/sysdeps/unix/sysv/linux/globfree.c
+++ b/sysdeps/unix/sysv/linux/globfree.c
@@ -1,6 +1,6 @@
/* Frees the dynamically allocated storage from an earlier call to glob.
Linux version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/stat.h>
#include <kernel_stat.h>
diff --git a/sysdeps/unix/sysv/linux/globfree64.c b/sysdeps/unix/sysv/linux/globfree64.c
index 1d7d32c3a9..be17c695e2 100644
--- a/sysdeps/unix/sysv/linux/globfree64.c
+++ b/sysdeps/unix/sysv/linux/globfree64.c
@@ -1,6 +1,6 @@
/* Frees the dynamically allocated storage from an earlier call to glob.
Linux version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/stat.h>
#include <kernel_stat.h>
diff --git a/sysdeps/unix/sysv/linux/hppa/____longjmp_chk.c b/sysdeps/unix/sysv/linux/hppa/____longjmp_chk.c
index a91dd258a9..d34c416f3f 100644
--- a/sysdeps/unix/sysv/linux/hppa/____longjmp_chk.c
+++ b/sysdeps/unix/sysv/linux/hppa/____longjmp_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-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
diff --git a/sysdeps/unix/sysv/linux/hppa/atomic-machine.h b/sysdeps/unix/sysv/linux/hppa/atomic-machine.h
index 2302c1fe12..4e83f8f17b 100644
--- a/sysdeps/unix/sysv/linux/hppa/atomic-machine.h
+++ b/sysdeps/unix/sysv/linux/hppa/atomic-machine.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Carlos O'Donell <carlos@baldric.uwo.ca>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h> /* Required for type definitions e.g. uint8_t. */
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/epoll.h b/sysdeps/unix/sysv/linux/hppa/bits/epoll.h
index 16b85f4a4c..60c42ba85e 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/epoll.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/epoll.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_EPOLL_H
# error "Never use <bits/epoll.h> directly; include <sys/epoll.h> instead."
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/errno.h b/sysdeps/unix/sysv/linux/hppa/bits/errno.h
index f3188efb6d..1b9ec669a4 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/errno.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/errno.h
@@ -1,5 +1,5 @@
/* Error constants. Linux/HPPA specific version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_ERRNO_H
#define _BITS_ERRNO_H 1
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/eventfd.h b/sysdeps/unix/sysv/linux/hppa/bits/eventfd.h
index 3743b94351..9e22ddca20 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/eventfd.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/eventfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_EVENTFD_H
# error "Never use <bits/eventfd.h> directly; include <sys/eventfd.h> instead."
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/fcntl.h b/sysdeps/unix/sysv/linux/hppa/bits/fcntl.h
index 2071609085..cc741619eb 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/fcntl.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/fcntl.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for Linux.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FCNTL_H
# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/inotify.h b/sysdeps/unix/sysv/linux/hppa/bits/inotify.h
index 3923126dd9..20f47c00a9 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/inotify.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/inotify.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_INOTIFY_H
# error "Never use <bits/inotify.h> directly; include <sys/inotify.h> instead."
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/ioctls.h b/sysdeps/unix/sysv/linux/hppa/bits/ioctls.h
index 78b1e61826..22871c6c83 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/ioctls.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/ioctls.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_IOCTL_H
# error "Never use <bits/ioctls.h> directly; include <sys/ioctl.h> instead."
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/ipc-perm.h b/sysdeps/unix/sysv/linux/hppa/bits/ipc-perm.h
new file mode 100644
index 0000000000..f29fc1689c
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/hppa/bits/ipc-perm.h
@@ -0,0 +1,37 @@
+/* struct ipc_perm definition.
+ 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; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_IPC_H
+# error "Never use <bits/ipc-perm.h> directly; include <sys/ipc.h> instead."
+#endif
+
+/* Data structure used to pass permission information to IPC operations. */
+struct ipc_perm
+ {
+ __key_t __key; /* Key. */
+ __uid_t uid; /* Owner's user ID. */
+ __gid_t gid; /* Owner's group ID. */
+ __uid_t cuid; /* Creator's user ID. */
+ __gid_t cgid; /* Creator's group ID. */
+ __mode_t mode; /* Read/write permission. */
+ unsigned short int __pad2;
+ unsigned short int __seq; /* Sequence number. */
+ unsigned int __pad3;
+ __extension__ unsigned long long int __glibc_reserved1;
+ __extension__ unsigned long long int __glibc_reserved2;
+ };
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/ipc.h b/sysdeps/unix/sysv/linux/hppa/bits/ipc.h
deleted file mode 100644
index dd8324602b..0000000000
--- a/sysdeps/unix/sysv/linux/hppa/bits/ipc.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* Copyright (C) 1995-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_IPC_H
-# error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
-#endif
-
-#include <bits/types.h>
-#include <bits/wordsize.h>
-
-/* Mode bits for `msgget', `semget', and `shmget'. */
-#define IPC_CREAT 01000 /* Create key if key does not exist. */
-#define IPC_EXCL 02000 /* Fail if key exists. */
-#define IPC_NOWAIT 04000 /* Return error on wait. */
-
-/* Control commands for `msgctl', `semctl', and `shmctl'. */
-#define IPC_RMID 0 /* Remove identifier. */
-#define IPC_SET 1 /* Set `ipc_perm' options. */
-#define IPC_STAT 2 /* Get `ipc_perm' options. */
-#ifdef __USE_GNU
-# define IPC_INFO 3 /* See ipcs. */
-#endif
-
-/* Special key values. */
-#define IPC_PRIVATE ((__key_t) 0) /* Private key. */
-
-
-/* Data structure used to pass permission information to IPC operations. */
-struct ipc_perm
- {
- __key_t __key; /* Key. */
- __uid_t uid; /* Owner's user ID. */
- __gid_t gid; /* Owner's group ID. */
- __uid_t cuid; /* Creator's user ID. */
- __gid_t cgid; /* Creator's group ID. */
-#if __WORDSIZE == 32
- unsigned short int __pad1;
- unsigned short int mode; /* Read/write permission. */
- unsigned short int __pad2;
-#else
- __mode_t mode; /* Read/write permission. */
- unsigned short int __pad2;
-#endif
- unsigned short int __seq; /* Sequence number. */
- unsigned int __pad3;
- __extension__ unsigned long long int __glibc_reserved1;
- __extension__ unsigned long long int __glibc_reserved2;
- };
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/mman.h b/sysdeps/unix/sysv/linux/hppa/bits/mman.h
index 1c7d3708e6..bcebf46d87 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/mman.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/mman.h
@@ -1,5 +1,5 @@
/* Definitions for POSIX memory map interface. Linux/HPPA version.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_MMAN_H
# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
@@ -22,33 +22,10 @@
/* These are taken from the kernel definitions. */
-#define PROT_READ 0x1 /* Page can be read */
-#define PROT_WRITE 0x2 /* Page can be written */
-#define PROT_EXEC 0x4 /* Page can be executed */
-#define PROT_NONE 0x0 /* Page can not be accessed */
-#define PROT_GROWSDOWN 0x01000000 /* Extend change to start of
- growsdown vma (mprotect only). */
-#define PROT_GROWSUP 0x02000000 /* Extend change to start of
- growsup vma (mprotect only). */
-
-#define MAP_SHARED 0x01 /* Share changes */
-#define MAP_PRIVATE 0x02 /* Changes are private */
-#ifdef __USE_MISC
-# define MAP_SHARED_VALIDATE 0x03 /* Share changes and validate
- extension flags. */
-# define MAP_TYPE 0x2b /* Mask for type of mapping */
-#endif
-
/* Other flags. */
-#define MAP_FIXED 0x04 /* Interpret addr exactly */
+#define __MAP_ANONYMOUS 0x10 /* Don't use a file */
#ifdef __USE_MISC
-# define MAP_FILE 0x0
-# define MAP_ANONYMOUS 0x10 /* Don't use a file */
-# define MAP_ANON MAP_ANONYMOUS
# define MAP_VARIABLE 0
-/* When MAP_HUGETLB is set bits [26:31] encode the log2 of the huge page size. */
-# define MAP_HUGE_SHIFT 26
-# define MAP_HUGE_MASK 0x3f
#endif
/* These are Linux-specific. */
@@ -66,53 +43,46 @@
underlying mapping. */
#endif
+/* Advice to "madvise" */
+#ifdef __USE_MISC
+# define MADV_SOFT_OFFLINE 101 /* Soft offline page for testing. */
+#endif
+
+#include <bits/mman-linux.h>
+
+#ifdef __USE_MISC
+# undef MAP_TYPE
+# define MAP_TYPE 0x2b /* Mask for type of mapping */
+#endif
+
+#undef MAP_FIXED
+#define MAP_FIXED 0x04 /* Interpret addr exactly */
+
/* Flags to "msync" */
+#undef MS_SYNC
#define MS_SYNC 1 /* Synchronous memory sync */
+#undef MS_ASYNC
#define MS_ASYNC 2 /* Sync memory asynchronously */
+#undef MS_INVALIDATE
#define MS_INVALIDATE 4 /* Invalidate the caches */
-/* Flags to "mlockall" */
-#define MCL_CURRENT 1 /* Lock all current mappings */
-#define MCL_FUTURE 2 /* Lock all future mappings */
-#define MCL_ONFAULT 4 /* Lock all pages that are faulted in */
-
-/* Flags for `mremap'. */
-#ifdef __USE_GNU
-# define MREMAP_MAYMOVE 1
-# define MREMAP_FIXED 2
-#endif
-
/* Advice to "madvise" */
#ifdef __USE_MISC
-# define MADV_NORMAL 0 /* No further special treatment */
-# define MADV_RANDOM 1 /* Expect random page references */
-# define MADV_SEQUENTIAL 2 /* Expect sequential page references */
-# define MADV_WILLNEED 3 /* Will need these pages */
-# define MADV_DONTNEED 4 /* Dont need these pages */
-# define MADV_FREE 8 /* Free pages only if memory pressure. */
-# define MADV_REMOVE 9 /* Remove these pages and resources. */
-# define MADV_DONTFORK 10 /* Do not inherit across fork. */
-# define MADV_DOFORK 11 /* Do inherit across fork. */
+# undef MADV_MERGEABLE
# define MADV_MERGEABLE 65 /* KSM may merge identical pages */
+# undef MADV_UNMERGEABLE
# define MADV_UNMERGEABLE 66 /* KSM may not merge identical pages */
+# undef MADV_HUGEPAGE
# define MADV_HUGEPAGE 67 /* Worth backing with hugepages */
+# undef MADV_NOHUGEPAGE
# define MADV_NOHUGEPAGE 68 /* Not worth backing with hugepages */
+# undef MADV_DONTDUMP
# define MADV_DONTDUMP 69 /* Explicity exclude from the core dump,
overrides the coredump filter bits */
+# undef MADV_DODUMP
# define MADV_DODUMP 70 /* Clear the MADV_NODUMP flag */
+# undef MADV_WIPEONFORK
# define MADV_WIPEONFORK 71 /* Zero memory on fork, child only. */
+# undef MADV_KEEPONFORK
# define MADV_KEEPONFORK 72 /* Undo MADV_WIPEONFORK. */
-# define MADV_HWPOISON 100 /* Poison a page for testing. */
-# define MADV_SOFT_OFFLINE 101 /* Soft offline page for testing. */
#endif
-
-/* The POSIX people had to invent similar names for the same things. */
-#ifdef __USE_XOPEN2K
-# define POSIX_MADV_NORMAL 0 /* No further special treatment. */
-# define POSIX_MADV_RANDOM 1 /* Expect random page references. */
-# define POSIX_MADV_SEQUENTIAL 2 /* Expect sequential page references. */
-# define POSIX_MADV_WILLNEED 3 /* Will need these pages. */
-# define POSIX_MADV_DONTNEED 4 /* Don't need these pages. */
-#endif
-
-#include <bits/mman-shared.h>
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/msq-pad.h b/sysdeps/unix/sysv/linux/hppa/bits/msq-pad.h
new file mode 100644
index 0000000000..ff45db8409
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/hppa/bits/msq-pad.h
@@ -0,0 +1,26 @@
+/* Define where padding goes in struct msqid_ds. HPPA version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_MSG_H
+# error "Never use <bits/msq-pad.h> directly; include <sys/msg.h> instead."
+#endif
+
+#include <bits/timesize.h>
+
+#define __MSQ_PAD_AFTER_TIME 0
+#define __MSQ_PAD_BEFORE_TIME (__TIMESIZE == 32)
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/msq.h b/sysdeps/unix/sysv/linux/hppa/bits/msq.h
deleted file mode 100644
index b0cfb591e9..0000000000
--- a/sysdeps/unix/sysv/linux/hppa/bits/msq.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/* Copyright (C) 1995-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_MSG_H
-# error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
-#endif
-
-#include <bits/types.h>
-#include <bits/wordsize.h>
-
-/* Define options for message queue functions. */
-#define MSG_NOERROR 010000 /* no error if message is too big */
-#ifdef __USE_GNU
-# define MSG_EXCEPT 020000 /* recv any msg except of specified type */
-# define MSG_COPY 040000 /* copy (not remove) all queue messages */
-#endif
-
-/* Types used in the structure definition. */
-typedef unsigned long int msgqnum_t;
-typedef unsigned long int msglen_t;
-
-
-/* Structure of record for one message inside the kernel.
- The type `struct msg' is opaque. */
-struct msqid_ds
-{
- struct ipc_perm msg_perm; /* structure describing operation permission */
-#if __WORDSIZE == 32
- unsigned int __pad1;
-#endif
- __time_t msg_stime; /* time of last msgsnd command */
-#if __WORDSIZE == 32
- unsigned int __pad2;
-#endif
- __time_t msg_rtime; /* time of last msgrcv command */
-#if __WORDSIZE == 32
- unsigned int __pad3;
-#endif
- __time_t msg_ctime; /* time of last change */
- unsigned long int __msg_cbytes; /* current number of bytes on queue */
- msgqnum_t msg_qnum; /* number of messages currently on queue */
- msglen_t msg_qbytes; /* max number of bytes allowed on queue */
- __pid_t msg_lspid; /* pid of last msgsnd() */
- __pid_t msg_lrpid; /* pid of last msgrcv() */
- unsigned long int __glibc_reserved1;
- unsigned long int __glibc_reserved2;
-};
-
-#ifdef __USE_MISC
-
-# define msg_cbytes __msg_cbytes
-
-/* ipcs ctl commands */
-# define MSG_STAT 11
-# define MSG_INFO 12
-# define MSG_STAT_ANY 13
-
-/* buffer for msgctl calls IPC_INFO, MSG_INFO */
-struct msginfo
- {
- int msgpool;
- int msgmap;
- int msgmax;
- int msgmnb;
- int msgmni;
- int msgssz;
- int msgtql;
- unsigned short int msgseg;
- };
-
-#endif /* __USE_MISC */
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/procfs.h b/sysdeps/unix/sysv/linux/hppa/bits/procfs.h
new file mode 100644
index 0000000000..375a8af9df
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/hppa/bits/procfs.h
@@ -0,0 +1,30 @@
+/* Types for registers for sys/procfs.h. HPPA version.
+ Copyright (C) 1996-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PROCFS_H
+# error "Never include <bits/procfs.h> directly; use <sys/procfs.h> instead."
+#endif
+
+typedef unsigned long elf_greg_t;
+#define ELF_NGREG 80 /* We only need 64 at present, but leave space
+ for expansion. */
+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
+
+#define ELF_NFPREG 32
+typedef double elf_fpreg_t;
+typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/sem-pad.h b/sysdeps/unix/sysv/linux/hppa/bits/sem-pad.h
new file mode 100644
index 0000000000..ff5fc3836f
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/hppa/bits/sem-pad.h
@@ -0,0 +1,26 @@
+/* Define where padding goes in struct semid_ds. HPPA version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SEM_H
+# error "Never use <bits/sem-pad.h> directly; include <sys/sem.h> instead."
+#endif
+
+#include <bits/timesize.h>
+
+#define __SEM_PAD_AFTER_TIME 0
+#define __SEM_PAD_BEFORE_TIME (__TIMESIZE == 32)
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/sem.h b/sysdeps/unix/sysv/linux/hppa/bits/sem.h
deleted file mode 100644
index 12b849ae79..0000000000
--- a/sysdeps/unix/sysv/linux/hppa/bits/sem.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/* Copyright (C) 1995-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_SEM_H
-# error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
-#endif
-
-#include <sys/types.h>
-#include <bits/wordsize.h>
-
-/* Flags for `semop'. */
-#define SEM_UNDO 0x1000 /* undo the operation on exit */
-
-/* Commands for `semctl'. */
-#define GETPID 11 /* get sempid */
-#define GETVAL 12 /* get semval */
-#define GETALL 13 /* get all semval's */
-#define GETNCNT 14 /* get semncnt */
-#define GETZCNT 15 /* get semzcnt */
-#define SETVAL 16 /* set semval */
-#define SETALL 17 /* set all semval's */
-
-
-/* Data structure describing a set of semaphores. */
-struct semid_ds
-{
- struct ipc_perm sem_perm; /* operation permission struct */
-#if __WORDSIZE == 32
- unsigned int __pad1;
-#endif
- __time_t sem_otime; /* last semop() time */
-#if __WORDSIZE == 32
- unsigned int __pad2;
-#endif
- __time_t sem_ctime; /* last time changed by semctl() */
- unsigned long int sem_nsems; /* number of semaphores in set */
- unsigned long int __glibc_reserved1;
- unsigned long int __glibc_reserved2;
-};
-
-/* The user should define a union like the following to use it for arguments
- for `semctl'.
-
- union semun
- {
- int val; <= value for SETVAL
- struct semid_ds *buf; <= buffer for IPC_STAT & IPC_SET
- unsigned short int *array; <= array for GETALL & SETALL
- struct seminfo *__buf; <= buffer for IPC_INFO
- };
-
- Previous versions of this file used to define this union but this is
- incorrect. One can test the macro _SEM_SEMUN_UNDEFINED to see whether
- one must define the union or not. */
-#define _SEM_SEMUN_UNDEFINED 1
-
-#ifdef __USE_MISC
-
-/* ipcs ctl cmds */
-# define SEM_STAT 18
-# define SEM_INFO 19
-# define SEM_STAT_ANY 20
-
-struct seminfo
-{
- int semmap;
- int semmni;
- int semmns;
- int semmnu;
- int semmsl;
- int semopm;
- int semume;
- int semusz;
- int semvmx;
- int semaem;
-};
-
-#endif /* __USE_MISC */
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/shm-pad.h b/sysdeps/unix/sysv/linux/hppa/bits/shm-pad.h
new file mode 100644
index 0000000000..c39a020092
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/hppa/bits/shm-pad.h
@@ -0,0 +1,28 @@
+/* Define where padding goes in struct shmid_ds. HPPA version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SHM_H
+# error "Never use <bits/shm-pad.h> directly; include <sys/shm.h> instead."
+#endif
+
+#include <bits/timesize.h>
+
+#define __SHM_PAD_AFTER_TIME 0
+#define __SHM_PAD_BEFORE_TIME (__TIMESIZE == 32)
+#define __SHM_SEGSZ_AFTER_TIME 1
+#define __SHM_PAD_BETWEEN_TIME_AND_SEGSZ (__TIMESIZE == 32)
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/shm.h b/sysdeps/unix/sysv/linux/hppa/bits/shm.h
deleted file mode 100644
index 4967c94190..0000000000
--- a/sysdeps/unix/sysv/linux/hppa/bits/shm.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/* Copyright (C) 1995-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_SHM_H
-# error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
-#endif
-
-#include <bits/types.h>
-#include <bits/wordsize.h>
-
-/* Permission flag for shmget. */
-#define SHM_R 0400 /* or S_IRUGO from <linux/stat.h> */
-#define SHM_W 0200 /* or S_IWUGO from <linux/stat.h> */
-
-/* Flags for `shmat'. */
-#define SHM_RDONLY 010000 /* attach read-only else read-write */
-#define SHM_RND 020000 /* round attach address to SHMLBA */
-#define SHM_REMAP 040000 /* take-over region on attach */
-#define SHM_EXEC 0100000 /* execution access */
-
-/* Commands for `shmctl'. */
-#define SHM_LOCK 11 /* lock segment (root only) */
-#define SHM_UNLOCK 12 /* unlock segment (root only) */
-
-/* Segment low boundary address multiple. */
-#define SHMLBA 0x1000
-
-/* Type to count number of attaches. */
-typedef unsigned long int shmatt_t;
-
-/* Data structure describing a shared memory segment. */
-struct shmid_ds
- {
- struct ipc_perm shm_perm; /* operation permission struct */
-#if __WORDSIZE == 32
- unsigned int __pad1;
-#endif
- __time_t shm_atime; /* time of last shmat() */
-#if __WORDSIZE == 32
- unsigned int __pad2;
-#endif
- __time_t shm_dtime; /* time of last shmdt() */
-#if __WORDSIZE == 32
- unsigned int __pad3;
-#endif
- __time_t shm_ctime; /* time of last change by shmctl() */
-#if __WORDSIZE == 32
- unsigned int __pad4;
-#endif
- size_t shm_segsz; /* size of segment in bytes */
- __pid_t shm_cpid; /* pid of creator */
- __pid_t shm_lpid; /* pid of last shmop */
- shmatt_t shm_nattch; /* number of current attaches */
- unsigned long int __glibc_reserved1;
- unsigned long int __glibc_reserved2;
- };
-
-#ifdef __USE_MISC
-
-/* ipcs ctl commands */
-# define SHM_STAT 13
-# define SHM_INFO 14
-# define SHM_STAT_ANY 15
-
-/* shm_mode upper byte flags */
-# define SHM_DEST 01000 /* segment will be destroyed on last detach */
-# define SHM_LOCKED 02000 /* segment will not be swapped */
-# define SHM_HUGETLB 04000 /* segment is mapped via hugetlb */
-# define SHM_NORESERVE 010000 /* don't check for reservations */
-
-struct shminfo
- {
- unsigned long shmmax;
- unsigned long shmmin;
- unsigned long shmmni;
- unsigned long shmseg;
- unsigned long shmall;
- unsigned long __glibc_reserved1;
- unsigned long __glibc_reserved2;
- unsigned long __glibc_reserved3;
- unsigned long __glibc_reserved4;
- };
-
-struct shm_info
- {
- int used_ids;
- unsigned long int shm_tot; /* total allocated shm */
- unsigned long int shm_rss; /* total resident shm */
- unsigned long int shm_swp; /* total swapped shm */
- unsigned long int swap_attempts;
- unsigned long int swap_successes;
- };
-
-#endif /* __USE_MISC */
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/shmlba.h b/sysdeps/unix/sysv/linux/hppa/bits/shmlba.h
new file mode 100644
index 0000000000..30af8f379f
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/hppa/bits/shmlba.h
@@ -0,0 +1,24 @@
+/* Define SHMLBA. HPPA version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SHM_H
+# error "Never use <bits/shmlba.h> directly; include <sys/shm.h> instead."
+#endif
+
+/* Segment low boundary address multiple. */
+#define SHMLBA 0x1000
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/sigaction.h b/sysdeps/unix/sysv/linux/hppa/bits/sigaction.h
index 09b9e4e4e6..3f63739a92 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/sigaction.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/sigaction.h
@@ -1,5 +1,5 @@
/* Definitions for Linux/HPPA sigaction.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_SIGACTION_H
#define _BITS_SIGACTION_H 1
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/signalfd.h b/sysdeps/unix/sysv/linux/hppa/bits/signalfd.h
index ef997876e6..4a49febe71 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/signalfd.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/signalfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_SIGNALFD_H
# error "Never use <bits/signalfd.h> directly; include <sys/signalfd.h> instead."
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/signum.h b/sysdeps/unix/sysv/linux/hppa/bits/signum.h
index f1628fdaee..97c585df77 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/signum.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/signum.h
@@ -1,5 +1,5 @@
/* Signal number definitions. Linux/HPPA version.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_SIGNUM_H
#define _BITS_SIGNUM_H 1
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/socket-constants.h b/sysdeps/unix/sysv/linux/hppa/bits/socket-constants.h
new file mode 100644
index 0000000000..8b7b909f52
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/hppa/bits/socket-constants.h
@@ -0,0 +1,38 @@
+/* Socket constants which vary among Linux architectures. Version for hppa.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SOCKET_H
+# error "Never include <bits/socket-constants.h> directly; use <sys/socket.h> instead."
+#endif
+
+#define SOL_SOCKET 65535
+#define SO_ACCEPTCONN 16412
+#define SO_BROADCAST 32
+#define SO_DONTROUTE 16
+#define SO_ERROR 4103
+#define SO_KEEPALIVE 8
+#define SO_LINGER 128
+#define SO_OOBINLINE 256
+#define SO_RCVBUF 4098
+#define SO_RCVLOWAT 4100
+#define SO_RCVTIMEO 4102
+#define SO_REUSEADDR 4
+#define SO_SNDBUF 4097
+#define SO_SNDLOWAT 4099
+#define SO_SNDTIMEO 4101
+#define SO_TYPE 4104
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/socket_type.h b/sysdeps/unix/sysv/linux/hppa/bits/socket_type.h
index 7733e35424..8fc5f3a223 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/socket_type.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/socket_type.h
@@ -1,5 +1,5 @@
/* Define enum __socket_type for Linux/HP-PARISC.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_SOCKET_H
# error "Never include <bits/socket_type.h> directly; use <sys/socket.h> instead."
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/timerfd.h b/sysdeps/unix/sysv/linux/hppa/bits/timerfd.h
index f0c491289c..be3096aff1 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/timerfd.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/timerfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_TIMERFD_H
# error "Never use <bits/timerfd.h> directly; include <sys/timerfd.h> instead."
diff --git a/sysdeps/unix/sysv/linux/hppa/brk.c b/sysdeps/unix/sysv/linux/hppa/brk.c
index 58f928fb7f..cf3e40fe4c 100644
--- a/sysdeps/unix/sysv/linux/hppa/brk.c
+++ b/sysdeps/unix/sysv/linux/hppa/brk.c
@@ -1,5 +1,5 @@
/* brk system call for Linux/HPPA.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/unix/sysv/linux/hppa/clone.S b/sysdeps/unix/sysv/linux/hppa/clone.S
index 0c581ec53b..372d29a838 100644
--- a/sysdeps/unix/sysv/linux/hppa/clone.S
+++ b/sysdeps/unix/sysv/linux/hppa/clone.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Huggins-Daines <dhd@debian.org>, 2000.
Based on the Alpha version by Richard Henderson <rth@tamu.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* clone() is even more special than fork() as it mucks with stacks
and invokes a function in the right context after its all over. */
@@ -73,13 +73,18 @@ ENTRY(__clone)
#endif
/* Sanity check arguments. */
- comib,=,n 0, %arg0, .LerrorSanity /* no NULL function pointers */
- comib,=,n 0, %arg1, .LerrorSanity /* no NULL stack pointers */
+ comib,=,n 0,%arg0,.LerrorSanity /* no NULL function pointers */
+ comib,=,n 0,%arg1,.LerrorSanity /* no NULL stack pointers */
+
+ /* Ensure stack argument is 8-byte aligned. */
+ ldo 7(%r25),%r25
+ depi 0,31,3,%r25
/* Save the function pointer, arg, and flags on the new stack. */
stwm %r26, 64(%r25)
stw %r23, -60(%r25)
stw %r24, -56(%r25)
+
/* Clone arguments are (int flags, void * child_stack) */
copy %r24, %r26 /* flags are first */
/* User stack pointer is in the correct register already */
diff --git a/sysdeps/unix/sysv/linux/hppa/getcontext.S b/sysdeps/unix/sysv/linux/hppa/getcontext.S
index b8f978fde8..587c4fa625 100644
--- a/sysdeps/unix/sysv/linux/hppa/getcontext.S
+++ b/sysdeps/unix/sysv/linux/hppa/getcontext.S
@@ -1,5 +1,5 @@
/* Get current user context.
- Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ Copyright (C) 2008-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Helge Deller <deller@gmx.de>, 2008.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/hppa/ipc_priv.h b/sysdeps/unix/sysv/linux/hppa/ipc_priv.h
deleted file mode 100644
index 43fa53013a..0000000000
--- a/sysdeps/unix/sysv/linux/hppa/ipc_priv.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Old SysV permission definition for Linux. Hppa version.
- Copyright (C) 2017-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sys/ipc.h> /* For __key_t */
-
-#define __IPC_64 0x0
diff --git a/sysdeps/unix/sysv/linux/hppa/kernel-features.h b/sysdeps/unix/sysv/linux/hppa/kernel-features.h
index ef3c4ddfd7..d71571e4bb 100644
--- a/sysdeps/unix/sysv/linux/hppa/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/hppa/kernel-features.h
@@ -1,6 +1,6 @@
/* Set flags signalling availability of kernel features based on given
kernel version number.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Support for the utimes syscall was added in 3.14. */
diff --git a/sysdeps/unix/sysv/linux/hppa/kernel_sigaction.h b/sysdeps/unix/sysv/linux/hppa/kernel_sigaction.h
deleted file mode 100644
index af048cbe7d..0000000000
--- a/sysdeps/unix/sysv/linux/hppa/kernel_sigaction.h
+++ /dev/null
@@ -1,18 +0,0 @@
-/* We have a separate header file here because we do not support
- SA_RESTORER on hppa. */
-
-/* This is the sigaction struction from the Linux 2.1.20 kernel. */
-/* Blah. This is bogus. We don't ever use it. */
-struct old_kernel_sigaction {
- __sighandler_t k_sa_handler;
- unsigned long sa_mask;
- unsigned long sa_flags;
-};
-
-/* This is the sigaction structure from the Linux 2.1.68 kernel. */
-
-struct kernel_sigaction {
- __sighandler_t k_sa_handler;
- unsigned long sa_flags;
- sigset_t sa_mask;
-};
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 24b11b15c0..df6d96fbae 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -615,6 +615,11 @@ GLIBC_2.2 clntudp_bufcreate F
GLIBC_2.2 clntudp_create F
GLIBC_2.2 clntunix_create F
GLIBC_2.2 clock F
+GLIBC_2.2 clock_getcpuclockid F
+GLIBC_2.2 clock_getres F
+GLIBC_2.2 clock_gettime F
+GLIBC_2.2 clock_nanosleep F
+GLIBC_2.2 clock_settime F
GLIBC_2.2 clone F
GLIBC_2.2 close F
GLIBC_2.2 closedir F
@@ -1880,6 +1885,9 @@ GLIBC_2.28 thrd_current F
GLIBC_2.28 thrd_equal F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
+GLIBC_2.29 getcpu F
+GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
+GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
GLIBC_2.3 __ctype_b_loc F
GLIBC_2.3 __ctype_tolower_loc F
GLIBC_2.3 __ctype_toupper_loc F
@@ -2034,6 +2042,10 @@ GLIBC_2.3.4 setipv4sourcefilter F
GLIBC_2.3.4 setsourcefilter F
GLIBC_2.3.4 xdr_quad_t F
GLIBC_2.3.4 xdr_u_quad_t F
+GLIBC_2.30 getdents64 F
+GLIBC_2.30 gettid F
+GLIBC_2.30 tgkill F
+GLIBC_2.30 twalk_r F
GLIBC_2.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
GLIBC_2.4 __fgets_unlocked_chk F
diff --git a/sysdeps/unix/sysv/linux/hppa/libm.abilist b/sysdeps/unix/sysv/linux/hppa/libm.abilist
index 679bbfbd59..e7686d71cf 100644
--- a/sysdeps/unix/sysv/linux/hppa/libm.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libm.abilist
@@ -764,4 +764,21 @@ GLIBC_2.28 fmul F
GLIBC_2.28 fmull F
GLIBC_2.28 fsub F
GLIBC_2.28 fsubl F
+GLIBC_2.29 exp F
+GLIBC_2.29 exp2 F
+GLIBC_2.29 log F
+GLIBC_2.29 log2 F
+GLIBC_2.29 pow F
+GLIBC_2.31 totalorder F
+GLIBC_2.31 totalorderf F
+GLIBC_2.31 totalorderf32 F
+GLIBC_2.31 totalorderf32x F
+GLIBC_2.31 totalorderf64 F
+GLIBC_2.31 totalorderl F
+GLIBC_2.31 totalordermag F
+GLIBC_2.31 totalordermagf F
+GLIBC_2.31 totalordermagf32 F
+GLIBC_2.31 totalordermagf32x F
+GLIBC_2.31 totalordermagf64 F
+GLIBC_2.31 totalordermagl F
GLIBC_2.4 exp2l F
diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
index bcba07f575..15b72c4264 100644
--- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
@@ -46,7 +46,6 @@ GLIBC_2.2 __read F
GLIBC_2.2 __res_state F
GLIBC_2.2 __send F
GLIBC_2.2 __sigaction F
-GLIBC_2.2 __vfork F
GLIBC_2.2 __wait F
GLIBC_2.2 __write F
GLIBC_2.2 _pthread_cleanup_pop F
@@ -66,28 +65,19 @@ GLIBC_2.2 longjmp F
GLIBC_2.2 lseek F
GLIBC_2.2 lseek64 F
GLIBC_2.2 msync F
-GLIBC_2.2 nanosleep F
GLIBC_2.2 open F
GLIBC_2.2 open64 F
GLIBC_2.2 pause F
GLIBC_2.2 pread F
GLIBC_2.2 pread64 F
GLIBC_2.2 pthread_atfork F
-GLIBC_2.2 pthread_attr_destroy F
-GLIBC_2.2 pthread_attr_getdetachstate F
GLIBC_2.2 pthread_attr_getguardsize F
-GLIBC_2.2 pthread_attr_getinheritsched F
-GLIBC_2.2 pthread_attr_getschedparam F
GLIBC_2.2 pthread_attr_getschedpolicy F
GLIBC_2.2 pthread_attr_getscope F
GLIBC_2.2 pthread_attr_getstack F
GLIBC_2.2 pthread_attr_getstackaddr F
GLIBC_2.2 pthread_attr_getstacksize F
-GLIBC_2.2 pthread_attr_init F
-GLIBC_2.2 pthread_attr_setdetachstate F
GLIBC_2.2 pthread_attr_setguardsize F
-GLIBC_2.2 pthread_attr_setinheritsched F
-GLIBC_2.2 pthread_attr_setschedparam F
GLIBC_2.2 pthread_attr_setschedpolicy F
GLIBC_2.2 pthread_attr_setscope F
GLIBC_2.2 pthread_attr_setstack F
@@ -112,7 +102,6 @@ GLIBC_2.2 pthread_condattr_init F
GLIBC_2.2 pthread_condattr_setpshared F
GLIBC_2.2 pthread_create F
GLIBC_2.2 pthread_detach F
-GLIBC_2.2 pthread_equal F
GLIBC_2.2 pthread_exit F
GLIBC_2.2 pthread_getconcurrency F
GLIBC_2.2 pthread_getcpuclockid F
@@ -153,7 +142,6 @@ GLIBC_2.2 pthread_rwlockattr_getpshared F
GLIBC_2.2 pthread_rwlockattr_init F
GLIBC_2.2 pthread_rwlockattr_setkind_np F
GLIBC_2.2 pthread_rwlockattr_setpshared F
-GLIBC_2.2 pthread_self F
GLIBC_2.2 pthread_setcancelstate F
GLIBC_2.2 pthread_setcanceltype F
GLIBC_2.2 pthread_setconcurrency F
@@ -192,12 +180,11 @@ GLIBC_2.2 siglongjmp F
GLIBC_2.2 sigwait F
GLIBC_2.2 system F
GLIBC_2.2 tcdrain F
-GLIBC_2.2 vfork F
GLIBC_2.2 wait F
GLIBC_2.2 waitpid F
GLIBC_2.2 write F
GLIBC_2.2.3 pthread_getattr_np F
-GLIBC_2.2.6 __nanosleep F
+GLIBC_2.2.6 __libpthread_version_placeholder F
GLIBC_2.28 call_once F
GLIBC_2.28 cnd_broadcast F
GLIBC_2.28 cnd_destroy F
@@ -245,6 +232,12 @@ GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
GLIBC_2.3.4 pthread_setaffinity_np F
GLIBC_2.3.4 pthread_setschedprio F
+GLIBC_2.30 pthread_cond_clockwait F
+GLIBC_2.30 pthread_mutex_clocklock F
+GLIBC_2.30 pthread_rwlock_clockrdlock F
+GLIBC_2.30 pthread_rwlock_clockwrlock F
+GLIBC_2.30 sem_clockwait F
+GLIBC_2.31 pthread_clockjoin_np F
GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 pthread_mutex_getprioceiling F
GLIBC_2.4 pthread_mutex_setprioceiling F
diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist
index 595f1b712a..bb03781dcc 100644
--- a/sysdeps/unix/sysv/linux/hppa/librt.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist
@@ -15,11 +15,6 @@ GLIBC_2.1 aio_write F
GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
GLIBC_2.1 lio_listio64 F
-GLIBC_2.2 clock_getcpuclockid F
-GLIBC_2.2 clock_getres F
-GLIBC_2.2 clock_gettime F
-GLIBC_2.2 clock_nanosleep F
-GLIBC_2.2 clock_settime F
GLIBC_2.2 shm_open F
GLIBC_2.2 shm_unlink F
GLIBC_2.2 timer_create F
diff --git a/sysdeps/unix/sysv/linux/hppa/localplt.data b/sysdeps/unix/sysv/linux/hppa/localplt.data
index 5f3475de19..867413f0c5 100644
--- a/sysdeps/unix/sysv/linux/hppa/localplt.data
+++ b/sysdeps/unix/sysv/linux/hppa/localplt.data
@@ -10,7 +10,6 @@ libc.so: __sigsetjmp
libc.so: _IO_funlockfile
libc.so: __errno_location
libm.so: matherr
-libpthread.so: __errno_location
# The main malloc is interposed into the dynamic linker, for
# allocations after the initial link (when dlopen is used).
ld.so: malloc
diff --git a/sysdeps/unix/sysv/linux/hppa/makecontext.c b/sysdeps/unix/sysv/linux/hppa/makecontext.c
index f1d1263832..a2c5ea9ef6 100644
--- a/sysdeps/unix/sysv/linux/hppa/makecontext.c
+++ b/sysdeps/unix/sysv/linux/hppa/makecontext.c
@@ -1,5 +1,5 @@
/* Create new context.
- Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ Copyright (C) 2008-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Helge Deller <deller@gmx.de>, 2008.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libintl.h>
#include <stdarg.h>
@@ -31,9 +31,9 @@
/* Size of frame marker in unsigned long words. */
#define FRAME_SIZE_UL 8
/* Size of frame marker in bytes. */
-#define FRAME_SIZE_BYTES (8 * sizeof(unsigned long))
+#define FRAME_SIZE_BYTES (8 * sizeof (unsigned long))
/* Size of X arguments in bytes. */
-#define ARGS(x) (x * sizeof(unsigned long))
+#define ARGS(x) (x * sizeof (unsigned long))
void
__makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...)
@@ -61,14 +61,14 @@ __makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...)
if (ucp->uc_link)
{
/* Returning to the next context and next frame. */
- sp[-4/sizeof(unsigned long)] = ucp->uc_link->uc_mcontext.sc_gr[30];
- sp[-20/sizeof(unsigned long)] = ucp->uc_link->uc_mcontext.sc_gr[2];
+ sp[-4 / sizeof (unsigned long)] = ucp->uc_link->uc_mcontext.sc_gr[30];
+ sp[-20 / sizeof (unsigned long)] = ucp->uc_link->uc_mcontext.sc_gr[2];
}
else
{
/* This is the main context. No frame marker, and no return address. */
- sp[-4/sizeof(unsigned long)] = 0x0;
- sp[-20/sizeof(unsigned long)] = 0x0;
+ sp[-4 / sizeof (unsigned long)] = 0x0;
+ sp[-20 / sizeof (unsigned long)] = 0x0;
}
/* Store address to jump to. */
@@ -84,7 +84,7 @@ __makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...)
continue;
}
- if ((i < 8) && (sizeof(unsigned long) == 8))
+ if ((i < 8) && (sizeof (unsigned long) == 8))
{
/* 64bit: r19-r22 are arg7-arg4. */
ucp->uc_mcontext.sc_gr[22+4-i] = va_arg (ap, int);
diff --git a/sysdeps/unix/sysv/linux/hppa/profil-counter.h b/sysdeps/unix/sysv/linux/hppa/profil-counter.h
deleted file mode 100644
index 4e8bfb41ee..0000000000
--- a/sysdeps/unix/sysv/linux/hppa/profil-counter.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Machine-dependent SIGPROF signal handler. PA-RISC version
- Copyright (C) 1996-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-static void
-__profil_counter (int signr, siginfo_t *si, ucontext_t *uctx)
-{
- unsigned long ip = uctx->uc_mcontext.sc_iaoq[0] & ~0x3;
- profil_count ((void *) ip);
-}
diff --git a/sysdeps/unix/sysv/linux/hppa/pt-vfork.S b/sysdeps/unix/sysv/linux/hppa/pt-vfork.S
deleted file mode 100644
index 45f7620d90..0000000000
--- a/sysdeps/unix/sysv/linux/hppa/pt-vfork.S
+++ /dev/null
@@ -1,82 +0,0 @@
-/* Copyright (C) 2005-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#define _ERRNO_H 1
-#include <bits/errno.h>
-#include <tcb-offsets.h>
-
-/* Clone the calling process, but without copying the whole address space.
- The calling process is suspended until the new process exits or is
- replaced by a call to `execve'. Return -1 for errors, 0 to the new process,
- and the process ID of the new process to the old process. */
-
-.Lthread_start: ASM_LINE_SEP
-
- /* r26, r25, r24, r23 are free since vfork has no arguments */
-ENTRY(__vfork)
- /* We must not create a frame. When the child unwinds to call
- exec it will clobber the same frame that the parent
- needs to unwind. */
-
- /* Save the PIC register. */
-#ifdef PIC
- copy %r19, %r25 /* parent */
-#endif
-
- /* Syscall saves and restores all register states */
- ble 0x100(%sr2,%r0)
- ldi __NR_vfork,%r20
-
- /* Check for error */
- ldi -4096,%r1
- comclr,>>= %r1,%ret0,%r0 /* Note: unsigned compare. */
- b,n .Lerror
-
- /* Return, and DO NOT restore rp. The child may have called
- functions that updated the frame's rp. This works because
- the kernel ensures rp is preserved across the vfork
- syscall. */
- bv,n %r0(%rp)
-
-.Lerror:
- /* Now we need a stack to call a function. We are assured
- that there is no child now, so it's safe to create
- a frame. */
- stw %rp, -20(%sp)
- .cfi_offset 2, -20
- stwm %r3, 64(%sp)
- .cfi_def_cfa_offset -64
- .cfi_offset 3, 0
- stw %sp, -4(%sp)
-
- sub %r0,%ret0,%r3
- SYSCALL_ERROR_HANDLER
- /* Restore the PIC register (in delay slot) on error */
-#ifdef PIC
- copy %r25, %r19 /* parent */
-#else
- nop
-#endif
- /* Write syscall return into errno location */
- stw %r3, 0(%ret0)
- ldw -84(%sp), %rp
- bv %r0(%rp)
- ldwm -64(%sp), %r3
-PSEUDO_END (__vfork)
-libc_hidden_def (__vfork)
-weak_alias (__vfork, vfork)
diff --git a/sysdeps/unix/sysv/linux/hppa/pthread.h b/sysdeps/unix/sysv/linux/hppa/pthread.h
deleted file mode 100644
index 11a024db59..0000000000
--- a/sysdeps/unix/sysv/linux/hppa/pthread.h
+++ /dev/null
@@ -1,1138 +0,0 @@
-/* Copyright (C) 2002-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _PTHREAD_H
-#define _PTHREAD_H 1
-
-#include <features.h>
-#include <endian.h>
-#include <sched.h>
-#include <time.h>
-
-#include <bits/pthreadtypes.h>
-#include <bits/setjmp.h>
-#include <bits/wordsize.h>
-#include <bits/types/struct_timespec.h>
-
-
-/* Detach state. */
-enum
-{
- PTHREAD_CREATE_JOINABLE,
-#define PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_JOINABLE
- PTHREAD_CREATE_DETACHED
-#define PTHREAD_CREATE_DETACHED PTHREAD_CREATE_DETACHED
-};
-
-
-/* Mutex types. */
-enum
-{
- PTHREAD_MUTEX_TIMED_NP,
- PTHREAD_MUTEX_RECURSIVE_NP,
- PTHREAD_MUTEX_ERRORCHECK_NP,
- PTHREAD_MUTEX_ADAPTIVE_NP
-#if defined __USE_UNIX98 || defined __USE_XOPEN2K8
- ,
- PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP,
- PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP,
- PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP,
- PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL
-#endif
-#ifdef __USE_GNU
- /* For compatibility. */
- , PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_TIMED_NP
-#endif
-};
-
-
-#ifdef __USE_XOPEN2K
-/* Robust mutex or not flags. */
-enum
-{
- PTHREAD_MUTEX_STALLED,
- PTHREAD_MUTEX_STALLED_NP = PTHREAD_MUTEX_STALLED,
- PTHREAD_MUTEX_ROBUST,
- PTHREAD_MUTEX_ROBUST_NP = PTHREAD_MUTEX_ROBUST
-};
-#endif
-
-
-#if defined __USE_POSIX199506 || defined __USE_UNIX98
-/* Mutex protocols. */
-enum
-{
- PTHREAD_PRIO_NONE,
- PTHREAD_PRIO_INHERIT,
- PTHREAD_PRIO_PROTECT
-};
-#endif
-
-
-#define PTHREAD_MUTEX_INITIALIZER \
- { { 0, 0, 0, 0, { 0, 0, 0, 0 }, 0, { __PTHREAD_SPINS }, { 0, 0 } } }
-#ifdef __USE_GNU
-# define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP \
- { { 0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP, { 0, 0, 0, 0 }, 0, \
- { __PTHREAD_SPINS }, { 0, 0 } } }
-# define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP \
- { { 0, 0, 0, PTHREAD_MUTEX_ERRORCHECK_NP, { 0, 0, 0, 0 }, 0, \
- { __PTHREAD_SPINS }, { 0, 0 } } }
-# define PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP \
- { { 0, 0, 0, PTHREAD_MUTEX_ADAPTIVE_NP, { 0, 0, 0, 0 }, 0, \
- { __PTHREAD_SPINS }, { 0, 0 } } }
-#endif
-
-
-/* Read-write lock types. */
-#if defined __USE_UNIX98 || defined __USE_XOPEN2K
-enum
-{
- PTHREAD_RWLOCK_PREFER_READER_NP,
- PTHREAD_RWLOCK_PREFER_WRITER_NP,
- PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP,
- PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP
-};
-
-/* Define __PTHREAD_RWLOCK_INT_FLAGS_SHARED to 1 if pthread_rwlock_t
- has the shared field. All 64-bit architectures have the shared field
- in pthread_rwlock_t. */
-#ifndef __PTHREAD_RWLOCK_INT_FLAGS_SHARED
-# if __WORDSIZE == 64
-# define __PTHREAD_RWLOCK_INT_FLAGS_SHARED 1
-# endif
-#endif
-
-
-/* Read-write lock initializers. */
-# define PTHREAD_RWLOCK_INITIALIZER \
- { { { 0, 0, 0, 0 }, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
-# ifdef __USE_GNU
-# define PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP \
- { { { 0, 0, 0, 0 }, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP, 0, 0, 0 } }
-# endif
-#endif /* Unix98 or XOpen2K */
-
-
-/* Scheduler inheritance. */
-enum
-{
- PTHREAD_INHERIT_SCHED,
-#define PTHREAD_INHERIT_SCHED PTHREAD_INHERIT_SCHED
- PTHREAD_EXPLICIT_SCHED
-#define PTHREAD_EXPLICIT_SCHED PTHREAD_EXPLICIT_SCHED
-};
-
-
-/* Scope handling. */
-enum
-{
- PTHREAD_SCOPE_SYSTEM,
-#define PTHREAD_SCOPE_SYSTEM PTHREAD_SCOPE_SYSTEM
- PTHREAD_SCOPE_PROCESS
-#define PTHREAD_SCOPE_PROCESS PTHREAD_SCOPE_PROCESS
-};
-
-
-/* Process shared or private flag. */
-enum
-{
- PTHREAD_PROCESS_PRIVATE,
-#define PTHREAD_PROCESS_PRIVATE PTHREAD_PROCESS_PRIVATE
- PTHREAD_PROCESS_SHARED
-#define PTHREAD_PROCESS_SHARED PTHREAD_PROCESS_SHARED
-};
-
-
-/* Conditional variable handling. */
-#define PTHREAD_COND_INITIALIZER { { {0}, {0}, {0, 0}, {0, 0}, 0, 0, {0, 0} } }
-
-
-/* Cleanup buffers */
-struct _pthread_cleanup_buffer
-{
- void (*__routine) (void *); /* Function to call. */
- void *__arg; /* Its argument. */
- int __canceltype; /* Saved cancellation type. */
- struct _pthread_cleanup_buffer *__prev; /* Chaining of cleanup functions. */
-};
-
-/* Cancellation */
-enum
-{
- PTHREAD_CANCEL_ENABLE,
-#define PTHREAD_CANCEL_ENABLE PTHREAD_CANCEL_ENABLE
- PTHREAD_CANCEL_DISABLE
-#define PTHREAD_CANCEL_DISABLE PTHREAD_CANCEL_DISABLE
-};
-enum
-{
- PTHREAD_CANCEL_DEFERRED,
-#define PTHREAD_CANCEL_DEFERRED PTHREAD_CANCEL_DEFERRED
- PTHREAD_CANCEL_ASYNCHRONOUS
-#define PTHREAD_CANCEL_ASYNCHRONOUS PTHREAD_CANCEL_ASYNCHRONOUS
-};
-#define PTHREAD_CANCELED ((void *) -1)
-
-
-/* Single execution handling. */
-#define PTHREAD_ONCE_INIT 0
-
-
-#ifdef __USE_XOPEN2K
-/* Value returned by 'pthread_barrier_wait' for one of the threads after
- the required number of threads have called this function.
- -1 is distinct from 0 and all errno constants */
-# define PTHREAD_BARRIER_SERIAL_THREAD -1
-#endif
-
-
-__BEGIN_DECLS
-
-/* Create a new thread, starting with execution of START-ROUTINE
- getting passed ARG. Creation attributed come from ATTR. The new
- handle is stored in *NEWTHREAD. */
-extern int pthread_create (pthread_t *__restrict __newthread,
- const pthread_attr_t *__restrict __attr,
- void *(*__start_routine) (void *),
- void *__restrict __arg) __THROWNL __nonnull ((1, 3));
-
-/* Terminate calling thread.
-
- The registered cleanup handlers are called via exception handling
- so we cannot mark this function with __THROW.*/
-extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__));
-
-/* Make calling thread wait for termination of the thread TH. The
- exit status of the thread is stored in *THREAD_RETURN, if THREAD_RETURN
- is not NULL.
-
- This function is a cancellation point and therefore not marked with
- __THROW. */
-extern int pthread_join (pthread_t __th, void **__thread_return);
-
-#ifdef __USE_GNU
-/* Check whether thread TH has terminated. If yes return the status of
- the thread in *THREAD_RETURN, if THREAD_RETURN is not NULL. */
-extern int pthread_tryjoin_np (pthread_t __th, void **__thread_return) __THROW;
-
-/* Make calling thread wait for termination of the thread TH, but only
- until TIMEOUT. The exit status of the thread is stored in
- *THREAD_RETURN, if THREAD_RETURN is not NULL.
-
- This function is a cancellation point and therefore not marked with
- __THROW. */
-extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return,
- const struct timespec *__abstime);
-#endif
-
-/* Indicate that the thread TH is never to be joined with PTHREAD_JOIN.
- The resources of TH will therefore be freed immediately when it
- terminates, instead of waiting for another thread to perform PTHREAD_JOIN
- on it. */
-extern int pthread_detach (pthread_t __th) __THROW;
-
-
-/* Obtain the identifier of the current thread. */
-extern pthread_t pthread_self (void) __THROW __attribute__ ((__const__));
-
-/* Compare two thread identifiers. */
-extern int pthread_equal (pthread_t __thread1, pthread_t __thread2)
- __THROW __attribute__ ((__const__));
-
-
-/* Thread attribute handling. */
-
-/* Initialize thread attribute *ATTR with default attributes
- (detachstate is PTHREAD_JOINABLE, scheduling policy is SCHED_OTHER,
- no user-provided stack). */
-extern int pthread_attr_init (pthread_attr_t *__attr) __THROW __nonnull ((1));
-
-/* Destroy thread attribute *ATTR. */
-extern int pthread_attr_destroy (pthread_attr_t *__attr)
- __THROW __nonnull ((1));
-
-/* Get detach state attribute. */
-extern int pthread_attr_getdetachstate (const pthread_attr_t *__attr,
- int *__detachstate)
- __THROW __nonnull ((1, 2));
-
-/* Set detach state attribute. */
-extern int pthread_attr_setdetachstate (pthread_attr_t *__attr,
- int __detachstate)
- __THROW __nonnull ((1));
-
-
-/* Get the size of the guard area created for stack overflow protection. */
-extern int pthread_attr_getguardsize (const pthread_attr_t *__attr,
- size_t *__guardsize)
- __THROW __nonnull ((1, 2));
-
-/* Set the size of the guard area created for stack overflow protection. */
-extern int pthread_attr_setguardsize (pthread_attr_t *__attr,
- size_t __guardsize)
- __THROW __nonnull ((1));
-
-
-/* Return in *PARAM the scheduling parameters of *ATTR. */
-extern int pthread_attr_getschedparam (const pthread_attr_t *__restrict __attr,
- struct sched_param *__restrict __param)
- __THROW __nonnull ((1, 2));
-
-/* Set scheduling parameters (priority, etc) in *ATTR according to PARAM. */
-extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr,
- const struct sched_param *__restrict
- __param) __THROW __nonnull ((1, 2));
-
-/* Return in *POLICY the scheduling policy of *ATTR. */
-extern int pthread_attr_getschedpolicy (const pthread_attr_t *__restrict
- __attr, int *__restrict __policy)
- __THROW __nonnull ((1, 2));
-
-/* Set scheduling policy in *ATTR according to POLICY. */
-extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy)
- __THROW __nonnull ((1));
-
-/* Return in *INHERIT the scheduling inheritance mode of *ATTR. */
-extern int pthread_attr_getinheritsched (const pthread_attr_t *__restrict
- __attr, int *__restrict __inherit)
- __THROW __nonnull ((1, 2));
-
-/* Set scheduling inheritance mode in *ATTR according to INHERIT. */
-extern int pthread_attr_setinheritsched (pthread_attr_t *__attr,
- int __inherit)
- __THROW __nonnull ((1));
-
-
-/* Return in *SCOPE the scheduling contention scope of *ATTR. */
-extern int pthread_attr_getscope (const pthread_attr_t *__restrict __attr,
- int *__restrict __scope)
- __THROW __nonnull ((1, 2));
-
-/* Set scheduling contention scope in *ATTR according to SCOPE. */
-extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope)
- __THROW __nonnull ((1));
-
-/* Return the previously set address for the stack. */
-extern int pthread_attr_getstackaddr (const pthread_attr_t *__restrict
- __attr, void **__restrict __stackaddr)
- __THROW __nonnull ((1, 2)) __attribute_deprecated__;
-
-/* Set the starting address of the stack of the thread to be created.
- Depending on whether the stack grows up or down the value must either
- be higher or lower than all the address in the memory block. The
- minimal size of the block must be PTHREAD_STACK_MIN. */
-extern int pthread_attr_setstackaddr (pthread_attr_t *__attr,
- void *__stackaddr)
- __THROW __nonnull ((1)) __attribute_deprecated__;
-
-/* Return the currently used minimal stack size. */
-extern int pthread_attr_getstacksize (const pthread_attr_t *__restrict
- __attr, size_t *__restrict __stacksize)
- __THROW __nonnull ((1, 2));
-
-/* Add information about the minimum stack size needed for the thread
- to be started. This size must never be less than PTHREAD_STACK_MIN
- and must also not exceed the system limits. */
-extern int pthread_attr_setstacksize (pthread_attr_t *__attr,
- size_t __stacksize)
- __THROW __nonnull ((1));
-
-#ifdef __USE_XOPEN2K
-/* Return the previously set address for the stack. */
-extern int pthread_attr_getstack (const pthread_attr_t *__restrict __attr,
- void **__restrict __stackaddr,
- size_t *__restrict __stacksize)
- __THROW __nonnull ((1, 2, 3));
-
-/* The following two interfaces are intended to replace the last two. They
- require setting the address as well as the size since only setting the
- address will make the implementation on some architectures impossible. */
-extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr,
- size_t __stacksize) __THROW __nonnull ((1));
-#endif
-
-#ifdef __USE_GNU
-/* Thread created with attribute ATTR will be limited to run only on
- the processors represented in CPUSET. */
-extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr,
- size_t __cpusetsize,
- const cpu_set_t *__cpuset)
- __THROW __nonnull ((1, 3));
-
-/* Get bit set in CPUSET representing the processors threads created with
- ATTR can run on. */
-extern int pthread_attr_getaffinity_np (const pthread_attr_t *__attr,
- size_t __cpusetsize,
- cpu_set_t *__cpuset)
- __THROW __nonnull ((1, 3));
-
-/* Get the default attributes used by pthread_create in this process. */
-extern int pthread_getattr_default_np (pthread_attr_t *__attr)
- __THROW __nonnull ((1));
-
-/* Set the default attributes to be used by pthread_create in this
- process. */
-extern int pthread_setattr_default_np (const pthread_attr_t *__attr)
- __THROW __nonnull ((1));
-
-/* Initialize thread attribute *ATTR with attributes corresponding to the
- already running thread TH. It shall be called on uninitialized ATTR
- and destroyed with pthread_attr_destroy when no longer needed. */
-extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr)
- __THROW __nonnull ((2));
-#endif
-
-
-/* Functions for scheduling control. */
-
-/* Set the scheduling parameters for TARGET_THREAD according to POLICY
- and *PARAM. */
-extern int pthread_setschedparam (pthread_t __target_thread, int __policy,
- const struct sched_param *__param)
- __THROW __nonnull ((3));
-
-/* Return in *POLICY and *PARAM the scheduling parameters for TARGET_THREAD. */
-extern int pthread_getschedparam (pthread_t __target_thread,
- int *__restrict __policy,
- struct sched_param *__restrict __param)
- __THROW __nonnull ((2, 3));
-
-/* Set the scheduling priority for TARGET_THREAD. */
-extern int pthread_setschedprio (pthread_t __target_thread, int __prio)
- __THROW;
-
-
-#ifdef __USE_GNU
-/* Get thread name visible in the kernel and its interfaces. */
-extern int pthread_getname_np (pthread_t __target_thread, char *__buf,
- size_t __buflen)
- __THROW __nonnull ((2));
-
-/* Set thread name visible in the kernel and its interfaces. */
-extern int pthread_setname_np (pthread_t __target_thread, const char *__name)
- __THROW __nonnull ((2));
-#endif
-
-
-#ifdef __USE_UNIX98
-/* Determine level of concurrency. */
-extern int pthread_getconcurrency (void) __THROW;
-
-/* Set new concurrency level to LEVEL. */
-extern int pthread_setconcurrency (int __level) __THROW;
-#endif
-
-#ifdef __USE_GNU
-/* Yield the processor to another thread or process.
- This function is similar to the POSIX `sched_yield' function but
- might be differently implemented in the case of a m-on-n thread
- implementation. */
-extern int pthread_yield (void) __THROW;
-
-
-/* Limit specified thread TH to run only on the processors represented
- in CPUSET. */
-extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize,
- const cpu_set_t *__cpuset)
- __THROW __nonnull ((3));
-
-/* Get bit set in CPUSET representing the processors TH can run on. */
-extern int pthread_getaffinity_np (pthread_t __th, size_t __cpusetsize,
- cpu_set_t *__cpuset)
- __THROW __nonnull ((3));
-#endif
-
-
-/* Functions for handling initialization. */
-
-/* Guarantee that the initialization function INIT_ROUTINE will be called
- only once, even if pthread_once is executed several times with the
- same ONCE_CONTROL argument. ONCE_CONTROL must point to a static or
- extern variable initialized to PTHREAD_ONCE_INIT.
-
- The initialization functions might throw exception which is why
- this function is not marked with __THROW. */
-extern int pthread_once (pthread_once_t *__once_control,
- void (*__init_routine) (void)) __nonnull ((1, 2));
-
-
-/* Functions for handling cancellation.
-
- Note that these functions are explicitly not marked to not throw an
- exception in C++ code. If cancellation is implemented by unwinding
- this is necessary to have the compiler generate the unwind information. */
-
-/* Set cancelability state of current thread to STATE, returning old
- state in *OLDSTATE if OLDSTATE is not NULL. */
-extern int pthread_setcancelstate (int __state, int *__oldstate);
-
-/* Set cancellation state of current thread to TYPE, returning the old
- type in *OLDTYPE if OLDTYPE is not NULL. */
-extern int pthread_setcanceltype (int __type, int *__oldtype);
-
-/* Cancel THREAD immediately or at the next possibility. */
-extern int pthread_cancel (pthread_t __th);
-
-/* Test for pending cancellation for the current thread and terminate
- the thread as per pthread_exit(PTHREAD_CANCELED) if it has been
- cancelled. */
-extern void pthread_testcancel (void);
-
-
-/* Cancellation handling with integration into exception handling. */
-
-typedef struct
-{
- struct
- {
- __jmp_buf __cancel_jmp_buf;
- int __mask_was_saved;
- } __cancel_jmp_buf[1];
- void *__pad[4];
-} __pthread_unwind_buf_t __attribute__ ((__aligned__));
-
-/* No special attributes by default. */
-#ifndef __cleanup_fct_attribute
-# define __cleanup_fct_attribute
-#endif
-
-
-/* Structure to hold the cleanup handler information. */
-struct __pthread_cleanup_frame
-{
- void (*__cancel_routine) (void *);
- void *__cancel_arg;
- int __do_it;
- int __cancel_type;
-};
-
-#if defined __GNUC__ && defined __EXCEPTIONS
-# ifdef __cplusplus
-/* Class to handle cancellation handler invocation. */
-class __pthread_cleanup_class
-{
- void (*__cancel_routine) (void *);
- void *__cancel_arg;
- int __do_it;
- int __cancel_type;
-
- public:
- __pthread_cleanup_class (void (*__fct) (void *), void *__arg)
- : __cancel_routine (__fct), __cancel_arg (__arg), __do_it (1) { }
- ~__pthread_cleanup_class () { if (__do_it) __cancel_routine (__cancel_arg); }
- void __setdoit (int __newval) { __do_it = __newval; }
- void __defer () { pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED,
- &__cancel_type); }
- void __restore () const { pthread_setcanceltype (__cancel_type, 0); }
-};
-
-/* Install a cleanup handler: ROUTINE will be called with arguments ARG
- when the thread is canceled or calls pthread_exit. ROUTINE will also
- be called with arguments ARG when the matching pthread_cleanup_pop
- is executed with non-zero EXECUTE argument.
-
- pthread_cleanup_push and pthread_cleanup_pop are macros and must always
- be used in matching pairs at the same nesting level of braces. */
-# define pthread_cleanup_push(routine, arg) \
- do { \
- __pthread_cleanup_class __clframe (routine, arg)
-
-/* Remove a cleanup handler installed by the matching pthread_cleanup_push.
- If EXECUTE is non-zero, the handler function is called. */
-# define pthread_cleanup_pop(execute) \
- __clframe.__setdoit (execute); \
- } while (0)
-
-# ifdef __USE_GNU
-/* Install a cleanup handler as pthread_cleanup_push does, but also
- saves the current cancellation type and sets it to deferred
- cancellation. */
-# define pthread_cleanup_push_defer_np(routine, arg) \
- do { \
- __pthread_cleanup_class __clframe (routine, arg); \
- __clframe.__defer ()
-
-/* Remove a cleanup handler as pthread_cleanup_pop does, but also
- restores the cancellation type that was in effect when the matching
- pthread_cleanup_push_defer was called. */
-# define pthread_cleanup_pop_restore_np(execute) \
- __clframe.__restore (); \
- __clframe.__setdoit (execute); \
- } while (0)
-# endif
-# else
-/* Function called to call the cleanup handler. As an extern inline
- function the compiler is free to decide inlining the change when
- needed or fall back on the copy which must exist somewhere
- else. */
-__extern_inline void
-__pthread_cleanup_routine (struct __pthread_cleanup_frame *__frame)
-{
- if (__frame->__do_it)
- __frame->__cancel_routine (__frame->__cancel_arg);
-}
-
-/* Install a cleanup handler: ROUTINE will be called with arguments ARG
- when the thread is canceled or calls pthread_exit. ROUTINE will also
- be called with arguments ARG when the matching pthread_cleanup_pop
- is executed with non-zero EXECUTE argument.
-
- pthread_cleanup_push and pthread_cleanup_pop are macros and must always
- be used in matching pairs at the same nesting level of braces. */
-# define pthread_cleanup_push(routine, arg) \
- do { \
- struct __pthread_cleanup_frame __clframe \
- __attribute__ ((__cleanup__ (__pthread_cleanup_routine))) \
- = { .__cancel_routine = (routine), .__cancel_arg = (arg), \
- .__do_it = 1 };
-
-/* Remove a cleanup handler installed by the matching pthread_cleanup_push.
- If EXECUTE is non-zero, the handler function is called. */
-# define pthread_cleanup_pop(execute) \
- __clframe.__do_it = (execute); \
- } while (0)
-
-# ifdef __USE_GNU
-/* Install a cleanup handler as pthread_cleanup_push does, but also
- saves the current cancellation type and sets it to deferred
- cancellation. */
-# define pthread_cleanup_push_defer_np(routine, arg) \
- do { \
- struct __pthread_cleanup_frame __clframe \
- __attribute__ ((__cleanup__ (__pthread_cleanup_routine))) \
- = { .__cancel_routine = (routine), .__cancel_arg = (arg), \
- .__do_it = 1 }; \
- (void) pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, \
- &__clframe.__cancel_type)
-
-/* Remove a cleanup handler as pthread_cleanup_pop does, but also
- restores the cancellation type that was in effect when the matching
- pthread_cleanup_push_defer was called. */
-# define pthread_cleanup_pop_restore_np(execute) \
- (void) pthread_setcanceltype (__clframe.__cancel_type, NULL); \
- __clframe.__do_it = (execute); \
- } while (0)
-# endif
-# endif
-#else
-/* Install a cleanup handler: ROUTINE will be called with arguments ARG
- when the thread is canceled or calls pthread_exit. ROUTINE will also
- be called with arguments ARG when the matching pthread_cleanup_pop
- is executed with non-zero EXECUTE argument.
-
- pthread_cleanup_push and pthread_cleanup_pop are macros and must always
- be used in matching pairs at the same nesting level of braces. */
-# define pthread_cleanup_push(routine, arg) \
- do { \
- __pthread_unwind_buf_t __cancel_buf; \
- void (*__cancel_routine) (void *) = (routine); \
- void *__cancel_arg = (arg); \
- int __not_first_call = __sigsetjmp ((struct __jmp_buf_tag *) (void *) \
- __cancel_buf.__cancel_jmp_buf, 0); \
- if (__glibc_unlikely (__not_first_call)) \
- { \
- __cancel_routine (__cancel_arg); \
- __pthread_unwind_next (&__cancel_buf); \
- /* NOTREACHED */ \
- } \
- \
- __pthread_register_cancel (&__cancel_buf); \
- do {
-extern void __pthread_register_cancel (__pthread_unwind_buf_t *__buf)
- __cleanup_fct_attribute;
-
-/* Remove a cleanup handler installed by the matching pthread_cleanup_push.
- If EXECUTE is non-zero, the handler function is called. */
-# define pthread_cleanup_pop(execute) \
- do { } while (0);/* Empty to allow label before pthread_cleanup_pop. */\
- } while (0); \
- __pthread_unregister_cancel (&__cancel_buf); \
- if (execute) \
- __cancel_routine (__cancel_arg); \
- } while (0)
-extern void __pthread_unregister_cancel (__pthread_unwind_buf_t *__buf)
- __cleanup_fct_attribute;
-
-# ifdef __USE_GNU
-/* Install a cleanup handler as pthread_cleanup_push does, but also
- saves the current cancellation type and sets it to deferred
- cancellation. */
-# define pthread_cleanup_push_defer_np(routine, arg) \
- do { \
- __pthread_unwind_buf_t __cancel_buf; \
- void (*__cancel_routine) (void *) = (routine); \
- void *__cancel_arg = (arg); \
- int __not_first_call = __sigsetjmp ((struct __jmp_buf_tag *) (void *) \
- __cancel_buf.__cancel_jmp_buf, 0); \
- if (__glibc_unlikely (__not_first_call)) \
- { \
- __cancel_routine (__cancel_arg); \
- __pthread_unwind_next (&__cancel_buf); \
- /* NOTREACHED */ \
- } \
- \
- __pthread_register_cancel_defer (&__cancel_buf); \
- do {
-extern void __pthread_register_cancel_defer (__pthread_unwind_buf_t *__buf)
- __cleanup_fct_attribute;
-
-/* Remove a cleanup handler as pthread_cleanup_pop does, but also
- restores the cancellation type that was in effect when the matching
- pthread_cleanup_push_defer was called. */
-# define pthread_cleanup_pop_restore_np(execute) \
- do { } while (0);/* Empty to allow label before pthread_cleanup_pop. */\
- } while (0); \
- __pthread_unregister_cancel_restore (&__cancel_buf); \
- if (execute) \
- __cancel_routine (__cancel_arg); \
- } while (0)
-extern void __pthread_unregister_cancel_restore (__pthread_unwind_buf_t *__buf)
- __cleanup_fct_attribute;
-# endif
-
-/* Internal interface to initiate cleanup. */
-extern void __pthread_unwind_next (__pthread_unwind_buf_t *__buf)
- __cleanup_fct_attribute __attribute__ ((__noreturn__))
-# ifndef SHARED
- __attribute__ ((__weak__))
-# endif
- ;
-#endif
-
-/* Function used in the macros. */
-struct __jmp_buf_tag;
-extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask) __THROWNL;
-
-
-/* Mutex handling. */
-
-/* Initialize a mutex. */
-extern int pthread_mutex_init (pthread_mutex_t *__mutex,
- const pthread_mutexattr_t *__mutexattr)
- __THROW __nonnull ((1));
-
-/* Destroy a mutex. */
-extern int pthread_mutex_destroy (pthread_mutex_t *__mutex)
- __THROW __nonnull ((1));
-
-/* Try locking a mutex. */
-extern int pthread_mutex_trylock (pthread_mutex_t *__mutex)
- __THROWNL __nonnull ((1));
-
-/* Lock a mutex. */
-extern int pthread_mutex_lock (pthread_mutex_t *__mutex)
- __THROWNL __nonnull ((1));
-
-#ifdef __USE_XOPEN2K
-/* Wait until lock becomes available, or specified time passes. */
-extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex,
- const struct timespec *__restrict
- __abstime) __THROWNL __nonnull ((1, 2));
-#endif
-
-/* Unlock a mutex. */
-extern int pthread_mutex_unlock (pthread_mutex_t *__mutex)
- __THROWNL __nonnull ((1));
-
-
-/* Get the priority ceiling of MUTEX. */
-extern int pthread_mutex_getprioceiling (const pthread_mutex_t *
- __restrict __mutex,
- int *__restrict __prioceiling)
- __THROW __nonnull ((1, 2));
-
-/* Set the priority ceiling of MUTEX to PRIOCEILING, return old
- priority ceiling value in *OLD_CEILING. */
-extern int pthread_mutex_setprioceiling (pthread_mutex_t *__restrict __mutex,
- int __prioceiling,
- int *__restrict __old_ceiling)
- __THROW __nonnull ((1, 3));
-
-
-#ifdef __USE_XOPEN2K8
-/* Declare the state protected by MUTEX as consistent. */
-extern int pthread_mutex_consistent (pthread_mutex_t *__mutex)
- __THROW __nonnull ((1));
-# ifdef __USE_GNU
-extern int pthread_mutex_consistent_np (pthread_mutex_t *__mutex)
- __THROW __nonnull ((1));
-# endif
-#endif
-
-
-/* Functions for handling mutex attributes. */
-
-/* Initialize mutex attribute object ATTR with default attributes
- (kind is PTHREAD_MUTEX_TIMED_NP). */
-extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr)
- __THROW __nonnull ((1));
-
-/* Destroy mutex attribute object ATTR. */
-extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr)
- __THROW __nonnull ((1));
-
-/* Get the process-shared flag of the mutex attribute ATTR. */
-extern int pthread_mutexattr_getpshared (const pthread_mutexattr_t *
- __restrict __attr,
- int *__restrict __pshared)
- __THROW __nonnull ((1, 2));
-
-/* Set the process-shared flag of the mutex attribute ATTR. */
-extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr,
- int __pshared)
- __THROW __nonnull ((1));
-
-#if defined __USE_UNIX98 || defined __USE_XOPEN2K8
-/* Return in *KIND the mutex kind attribute in *ATTR. */
-extern int pthread_mutexattr_gettype (const pthread_mutexattr_t *__restrict
- __attr, int *__restrict __kind)
- __THROW __nonnull ((1, 2));
-
-/* Set the mutex kind attribute in *ATTR to KIND (either PTHREAD_MUTEX_NORMAL,
- PTHREAD_MUTEX_RECURSIVE, PTHREAD_MUTEX_ERRORCHECK, or
- PTHREAD_MUTEX_DEFAULT). */
-extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind)
- __THROW __nonnull ((1));
-#endif
-
-/* Return in *PROTOCOL the mutex protocol attribute in *ATTR. */
-extern int pthread_mutexattr_getprotocol (const pthread_mutexattr_t *
- __restrict __attr,
- int *__restrict __protocol)
- __THROW __nonnull ((1, 2));
-
-/* Set the mutex protocol attribute in *ATTR to PROTOCOL (either
- PTHREAD_PRIO_NONE, PTHREAD_PRIO_INHERIT, or PTHREAD_PRIO_PROTECT). */
-extern int pthread_mutexattr_setprotocol (pthread_mutexattr_t *__attr,
- int __protocol)
- __THROW __nonnull ((1));
-
-/* Return in *PRIOCEILING the mutex prioceiling attribute in *ATTR. */
-extern int pthread_mutexattr_getprioceiling (const pthread_mutexattr_t *
- __restrict __attr,
- int *__restrict __prioceiling)
- __THROW __nonnull ((1, 2));
-
-/* Set the mutex prioceiling attribute in *ATTR to PRIOCEILING. */
-extern int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr,
- int __prioceiling)
- __THROW __nonnull ((1));
-
-#ifdef __USE_XOPEN2K
-/* Get the robustness flag of the mutex attribute ATTR. */
-extern int pthread_mutexattr_getrobust (const pthread_mutexattr_t *__attr,
- int *__robustness)
- __THROW __nonnull ((1, 2));
-# ifdef __USE_GNU
-extern int pthread_mutexattr_getrobust_np (const pthread_mutexattr_t *__attr,
- int *__robustness)
- __THROW __nonnull ((1, 2));
-# endif
-
-/* Set the robustness flag of the mutex attribute ATTR. */
-extern int pthread_mutexattr_setrobust (pthread_mutexattr_t *__attr,
- int __robustness)
- __THROW __nonnull ((1));
-# ifdef __USE_GNU
-extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_t *__attr,
- int __robustness)
- __THROW __nonnull ((1));
-# endif
-#endif
-
-
-#if defined __USE_UNIX98 || defined __USE_XOPEN2K
-/* Functions for handling read-write locks. */
-
-/* Initialize read-write lock RWLOCK using attributes ATTR, or use
- the default values if later is NULL. */
-extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock,
- const pthread_rwlockattr_t *__restrict
- __attr) __THROW __nonnull ((1));
-
-/* Destroy read-write lock RWLOCK. */
-extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock)
- __THROW __nonnull ((1));
-
-/* Acquire read lock for RWLOCK. */
-extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock)
- __THROWNL __nonnull ((1));
-
-/* Try to acquire read lock for RWLOCK. */
-extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock)
- __THROWNL __nonnull ((1));
-
-# ifdef __USE_XOPEN2K
-/* Try to acquire read lock for RWLOCK or return after specfied time. */
-extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock,
- const struct timespec *__restrict
- __abstime) __THROWNL __nonnull ((1, 2));
-# endif
-
-/* Acquire write lock for RWLOCK. */
-extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock)
- __THROWNL __nonnull ((1));
-
-/* Try to acquire write lock for RWLOCK. */
-extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock)
- __THROWNL __nonnull ((1));
-
-# ifdef __USE_XOPEN2K
-/* Try to acquire write lock for RWLOCK or return after specfied time. */
-extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock,
- const struct timespec *__restrict
- __abstime) __THROWNL __nonnull ((1, 2));
-# endif
-
-/* Unlock RWLOCK. */
-extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock)
- __THROWNL __nonnull ((1));
-
-
-/* Functions for handling read-write lock attributes. */
-
-/* Initialize attribute object ATTR with default values. */
-extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr)
- __THROW __nonnull ((1));
-
-/* Destroy attribute object ATTR. */
-extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr)
- __THROW __nonnull ((1));
-
-/* Return current setting of process-shared attribute of ATTR in PSHARED. */
-extern int pthread_rwlockattr_getpshared (const pthread_rwlockattr_t *
- __restrict __attr,
- int *__restrict __pshared)
- __THROW __nonnull ((1, 2));
-
-/* Set process-shared attribute of ATTR to PSHARED. */
-extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr,
- int __pshared)
- __THROW __nonnull ((1));
-
-/* Return current setting of reader/writer preference. */
-extern int pthread_rwlockattr_getkind_np (const pthread_rwlockattr_t *
- __restrict __attr,
- int *__restrict __pref)
- __THROW __nonnull ((1, 2));
-
-/* Set reader/write preference. */
-extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr,
- int __pref) __THROW __nonnull ((1));
-#endif
-
-
-/* Functions for handling conditional variables. */
-
-/* Initialize condition variable COND using attributes ATTR, or use
- the default values if later is NULL. */
-extern int pthread_cond_init (pthread_cond_t *__restrict __cond,
- const pthread_condattr_t *__restrict __cond_attr)
- __THROW __nonnull ((1));
-
-/* Destroy condition variable COND. */
-extern int pthread_cond_destroy (pthread_cond_t *__cond)
- __THROW __nonnull ((1));
-
-/* Wake up one thread waiting for condition variable COND. */
-extern int pthread_cond_signal (pthread_cond_t *__cond)
- __THROWNL __nonnull ((1));
-
-/* Wake up all threads waiting for condition variables COND. */
-extern int pthread_cond_broadcast (pthread_cond_t *__cond)
- __THROWNL __nonnull ((1));
-
-/* Wait for condition variable COND to be signaled or broadcast.
- MUTEX is assumed to be locked before.
-
- This function is a cancellation point and therefore not marked with
- __THROW. */
-extern int pthread_cond_wait (pthread_cond_t *__restrict __cond,
- pthread_mutex_t *__restrict __mutex)
- __nonnull ((1, 2));
-
-/* Wait for condition variable COND to be signaled or broadcast until
- ABSTIME. MUTEX is assumed to be locked before. ABSTIME is an
- absolute time specification; zero is the beginning of the epoch
- (00:00:00 GMT, January 1, 1970).
-
- This function is a cancellation point and therefore not marked with
- __THROW. */
-extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond,
- pthread_mutex_t *__restrict __mutex,
- const struct timespec *__restrict __abstime)
- __nonnull ((1, 2, 3));
-
-/* Functions for handling condition variable attributes. */
-
-/* Initialize condition variable attribute ATTR. */
-extern int pthread_condattr_init (pthread_condattr_t *__attr)
- __THROW __nonnull ((1));
-
-/* Destroy condition variable attribute ATTR. */
-extern int pthread_condattr_destroy (pthread_condattr_t *__attr)
- __THROW __nonnull ((1));
-
-/* Get the process-shared flag of the condition variable attribute ATTR. */
-extern int pthread_condattr_getpshared (const pthread_condattr_t *
- __restrict __attr,
- int *__restrict __pshared)
- __THROW __nonnull ((1, 2));
-
-/* Set the process-shared flag of the condition variable attribute ATTR. */
-extern int pthread_condattr_setpshared (pthread_condattr_t *__attr,
- int __pshared) __THROW __nonnull ((1));
-
-#ifdef __USE_XOPEN2K
-/* Get the clock selected for the condition variable attribute ATTR. */
-extern int pthread_condattr_getclock (const pthread_condattr_t *
- __restrict __attr,
- __clockid_t *__restrict __clock_id)
- __THROW __nonnull ((1, 2));
-
-/* Set the clock selected for the condition variable attribute ATTR. */
-extern int pthread_condattr_setclock (pthread_condattr_t *__attr,
- __clockid_t __clock_id)
- __THROW __nonnull ((1));
-#endif
-
-
-#ifdef __USE_XOPEN2K
-/* Functions to handle spinlocks. */
-
-/* Initialize the spinlock LOCK. If PSHARED is nonzero the spinlock can
- be shared between different processes. */
-extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared)
- __THROW __nonnull ((1));
-
-/* Destroy the spinlock LOCK. */
-extern int pthread_spin_destroy (pthread_spinlock_t *__lock)
- __THROW __nonnull ((1));
-
-/* Wait until spinlock LOCK is retrieved. */
-extern int pthread_spin_lock (pthread_spinlock_t *__lock)
- __THROWNL __nonnull ((1));
-
-/* Try to lock spinlock LOCK. */
-extern int pthread_spin_trylock (pthread_spinlock_t *__lock)
- __THROWNL __nonnull ((1));
-
-/* Release spinlock LOCK. */
-extern int pthread_spin_unlock (pthread_spinlock_t *__lock)
- __THROWNL __nonnull ((1));
-
-
-/* Functions to handle barriers. */
-
-/* Initialize BARRIER with the attributes in ATTR. The barrier is
- opened when COUNT waiters arrived. */
-extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier,
- const pthread_barrierattr_t *__restrict
- __attr, unsigned int __count)
- __THROW __nonnull ((1));
-
-/* Destroy a previously dynamically initialized barrier BARRIER. */
-extern int pthread_barrier_destroy (pthread_barrier_t *__barrier)
- __THROW __nonnull ((1));
-
-/* Wait on barrier BARRIER. */
-extern int pthread_barrier_wait (pthread_barrier_t *__barrier)
- __THROWNL __nonnull ((1));
-
-
-/* Initialize barrier attribute ATTR. */
-extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr)
- __THROW __nonnull ((1));
-
-/* Destroy previously dynamically initialized barrier attribute ATTR. */
-extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr)
- __THROW __nonnull ((1));
-
-/* Get the process-shared flag of the barrier attribute ATTR. */
-extern int pthread_barrierattr_getpshared (const pthread_barrierattr_t *
- __restrict __attr,
- int *__restrict __pshared)
- __THROW __nonnull ((1, 2));
-
-/* Set the process-shared flag of the barrier attribute ATTR. */
-extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr,
- int __pshared)
- __THROW __nonnull ((1));
-#endif
-
-
-/* Functions for handling thread-specific data. */
-
-/* Create a key value identifying a location in the thread-specific
- data area. Each thread maintains a distinct thread-specific data
- area. DESTR_FUNCTION, if non-NULL, is called with the value
- associated to that key when the key is destroyed.
- DESTR_FUNCTION is not called if the value associated is NULL when
- the key is destroyed. */
-extern int pthread_key_create (pthread_key_t *__key,
- void (*__destr_function) (void *))
- __THROW __nonnull ((1));
-
-/* Destroy KEY. */
-extern int pthread_key_delete (pthread_key_t __key) __THROW;
-
-/* Return current value of the thread-specific data slot identified by KEY. */
-extern void *pthread_getspecific (pthread_key_t __key) __THROW;
-
-/* Store POINTER in the thread-specific data slot identified by KEY. */
-extern int pthread_setspecific (pthread_key_t __key,
- const void *__pointer) __THROW ;
-
-
-#ifdef __USE_XOPEN2K
-/* Get ID of CPU-time clock for thread THREAD_ID. */
-extern int pthread_getcpuclockid (pthread_t __thread_id,
- __clockid_t *__clock_id)
- __THROW __nonnull ((2));
-#endif
-
-
-/* Install handlers to be called when a new process is created with FORK.
- The PREPARE handler is called in the parent process just before performing
- FORK. The PARENT handler is called in the parent process just after FORK.
- The CHILD handler is called in the child process. Each of the three
- handlers can be NULL, meaning that no handler needs to be called at that
- point.
- PTHREAD_ATFORK can be called several times, in which case the PREPARE
- handlers are called in LIFO order (last added with PTHREAD_ATFORK,
- first called before FORK), and the PARENT and CHILD handlers are called
- in FIFO (first added, first called). */
-
-extern int pthread_atfork (void (*__prepare) (void),
- void (*__parent) (void),
- void (*__child) (void)) __THROW;
-
-
-#ifdef __USE_EXTERN_INLINES
-/* Optimizations. */
-__extern_inline int
-__NTH (pthread_equal (pthread_t __thread1, pthread_t __thread2))
-{
- return __thread1 == __thread2;
-}
-#endif
-
-__END_DECLS
-
-#endif /* pthread.h */
diff --git a/sysdeps/unix/sysv/linux/hppa/pthreadP.h b/sysdeps/unix/sysv/linux/hppa/pthreadP.h
deleted file mode 100644
index 744b5b090b..0000000000
--- a/sysdeps/unix/sysv/linux/hppa/pthreadP.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#include_next <pthreadP.h>
-#ifndef _PTHREADP_H_HPPA_
-#define _PTHREADP_H_HPPA_ 1
-
-/* Internal cond functions. */
-extern int __pthread_cond_broadcast_internal (pthread_cond_t *cond);
-extern int __pthread_cond_destroy_internal (pthread_cond_t *cond);
-extern int __pthread_cond_init_internal (pthread_cond_t *cond,
- const pthread_condattr_t *cond_attr);
-extern int __pthread_cond_signal_internal (pthread_cond_t *cond);
-extern int __pthread_cond_timedwait_internal (pthread_cond_t *cond,
- pthread_mutex_t *mutex,
- const struct timespec *abstime);
-extern int __pthread_cond_wait_internal (pthread_cond_t *cond,
- pthread_mutex_t *mutex);
-#endif
diff --git a/sysdeps/unix/sysv/linux/hppa/setcontext.S b/sysdeps/unix/sysv/linux/hppa/setcontext.S
index d5ebc7c4f6..a2e6d5d448 100644
--- a/sysdeps/unix/sysv/linux/hppa/setcontext.S
+++ b/sysdeps/unix/sysv/linux/hppa/setcontext.S
@@ -1,5 +1,5 @@
/* Install given context.
- Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ Copyright (C) 2008-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Helge Deller <deller@gmx.de>, 2008.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <libc-symbols.h>
diff --git a/sysdeps/unix/sysv/linux/hppa/sigcontextinfo.h b/sysdeps/unix/sysv/linux/hppa/sigcontextinfo.h
new file mode 100644
index 0000000000..68681f3a73
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/hppa/sigcontextinfo.h
@@ -0,0 +1,30 @@
+/* Machine-dependent SIGPROF signal handler. PA-RISC version
+ 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. If not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SIGCONTEXTINFO_H
+#define _SIGCONTEXTINFO_H
+
+#include <sys/ucontext.h>
+
+static inline uintptr_t
+sigcontext_get_pc (const ucontext_t *ctx)
+{
+ return ctx->uc_mcontext.sc_iaoq[0] & ~0x3;
+}
+
+#endif
diff --git a/sysdeps/unix/sysv/linux/hppa/swapcontext.c b/sysdeps/unix/sysv/linux/hppa/swapcontext.c
index a026f122c6..e6912907c8 100644
--- a/sysdeps/unix/sysv/linux/hppa/swapcontext.c
+++ b/sysdeps/unix/sysv/linux/hppa/swapcontext.c
@@ -1,5 +1,5 @@
/* Swap to new context.
- Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ Copyright (C) 2008-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Helge Deller <deller@gmx.de>, 2008.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ucontext.h>
diff --git a/sysdeps/unix/sysv/linux/hppa/sys/procfs.h b/sysdeps/unix/sysv/linux/hppa/sys/procfs.h
deleted file mode 100644
index b0a1de2778..0000000000
--- a/sysdeps/unix/sysv/linux/hppa/sys/procfs.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/* Copyright (C) 1996-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_PROCFS_H
-#define _SYS_PROCFS_H 1
-
-/* This is somewhat modelled after the file of the same name on SVR4
- systems. It provides a definition of the core file format for ELF
- used on Linux. It doesn't have anything to do with the /proc file
- system, even though Linux has one.
-
- Anyway, the whole purpose of this file is for GDB and GDB only.
- Don't read too much into it. Don't use it for anything other than
- GDB unless you know what you are doing. */
-
-#include <features.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#include <sys/user.h>
-
-__BEGIN_DECLS
-
-typedef unsigned long elf_greg_t;
-#define ELF_NGREG 80 /* We only need 64 at present, but leave space
- for expansion. */
-typedef elf_greg_t elf_gregset_t[ELF_NGREG];
-
-#define ELF_NFPREG 32
-typedef double elf_fpreg_t;
-typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
-
-struct elf_siginfo
- {
- int si_signo; /* Signal number. */
- int si_code; /* Extra code. */
- int si_errno; /* Errno. */
- };
-
-/* Definitions to generate Intel SVR4-like core files. These mostly
- have the same names as the SVR4 types with "elf_" tacked on the
- front to prevent clashes with Linux definitions, and the typedef
- forms have been avoided. This is mostly like the SVR4 structure,
- but more Linuxy, with things that Linux does not support and which
- GDB doesn't really use excluded. */
-
-struct elf_prstatus
- {
- struct elf_siginfo pr_info; /* Info associated with signal. */
- short int pr_cursig; /* Current signal. */
- unsigned long int pr_sigpend; /* Set of pending signals. */
- unsigned long int pr_sighold; /* Set of held signals. */
- __pid_t pr_pid;
- __pid_t pr_ppid;
- __pid_t pr_pgrp;
- __pid_t pr_sid;
- struct timeval pr_utime; /* User time. */
- struct timeval pr_stime; /* System time. */
- struct timeval pr_cutime; /* Cumulative user time. */
- struct timeval pr_cstime; /* Cumulative system time. */
- elf_gregset_t pr_reg; /* GP registers. */
- int pr_fpvalid; /* True if math copro being used. */
- };
-
-
-#define ELF_PRARGSZ (80) /* Number of chars for args. */
-
-struct elf_prpsinfo
- {
- char pr_state; /* Numeric process state. */
- char pr_sname; /* Char for pr_state. */
- char pr_zomb; /* Zombie. */
- char pr_nice; /* Nice val. */
- unsigned long int pr_flag; /* Flags. */
- unsigned int pr_uid;
- unsigned int pr_gid;
- int pr_pid, pr_ppid, pr_pgrp, pr_sid;
- /* Lots missing */
- char pr_fname[16]; /* Filename of executable. */
- char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
- };
-
-
-/* The rest of this file provides the types for emulation of the
- Solaris <proc_service.h> interfaces that should be implemented by
- users of libthread_db. */
-
-/* Addresses. */
-typedef void *psaddr_t;
-
-/* Register sets. Linux has different names. */
-typedef elf_gregset_t prgregset_t;
-typedef elf_fpregset_t prfpregset_t;
-
-/* We don't have any differences between processes and threads,
- therefore have only one PID type. */
-typedef __pid_t lwpid_t;
-
-/* Process status and info. In the end we do provide typedefs for them. */
-typedef struct elf_prstatus prstatus_t;
-typedef struct elf_prpsinfo prpsinfo_t;
-
-__END_DECLS
-
-#endif /* sys/procfs.h */
diff --git a/sysdeps/unix/sysv/linux/hppa/sys/ucontext.h b/sysdeps/unix/sysv/linux/hppa/sys/ucontext.h
index 6037227b2a..49b6fb8568 100644
--- a/sysdeps/unix/sysv/linux/hppa/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/hppa/sys/ucontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Don't rely on this, the interface is currently messed up and may need to
be broken to be fixed. */
diff --git a/sysdeps/unix/sysv/linux/hppa/syscall.c b/sysdeps/unix/sysv/linux/hppa/syscall.c
index 2dc78ea25d..7e54fc7d95 100644
--- a/sysdeps/unix/sysv/linux/hppa/syscall.c
+++ b/sysdeps/unix/sysv/linux/hppa/syscall.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdarg.h>
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/hppa/sysdep.c b/sysdeps/unix/sysv/linux/hppa/sysdep.c
index a7df70e034..f17a966f01 100644
--- a/sysdeps/unix/sysv/linux/hppa/sysdep.c
+++ b/sysdeps/unix/sysv/linux/hppa/sysdep.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdarg.h>
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/hppa/sysdep.h b/sysdeps/unix/sysv/linux/hppa/sysdep.h
index acff4fa626..2eb7377767 100644
--- a/sysdeps/unix/sysv/linux/hppa/sysdep.h
+++ b/sysdeps/unix/sysv/linux/hppa/sysdep.h
@@ -1,5 +1,5 @@
/* Assembler macros for PA-RISC.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper, <drepper@cygnus.com>, August 1999.
Linux/PA-RISC changes by Philipp Rumpf, <prumpf@tux.org>, March 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LINUX_HPPA_SYSDEP_H
#define _LINUX_HPPA_SYSDEP_H 1
diff --git a/sysdeps/unix/sysv/linux/hppa/utimes.c b/sysdeps/unix/sysv/linux/hppa/utimes.c
index 04ae0d19a2..71542a19a8 100644
--- a/sysdeps/unix/sysv/linux/hppa/utimes.c
+++ b/sysdeps/unix/sysv/linux/hppa/utimes.c
@@ -1,5 +1,5 @@
/* Implement utimes for hppa.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* hppa has the utimensat syscall in all supported kernel versions but
gained the utimes syscall later, so use the linux-generic
diff --git a/sysdeps/unix/sysv/linux/i386/____longjmp_chk.S b/sysdeps/unix/sysv/linux/i386/____longjmp_chk.S
index a7640d9892..865141a95b 100644
--- a/sysdeps/unix/sysv/linux/i386/____longjmp_chk.S
+++ b/sysdeps/unix/sysv/linux/i386/____longjmp_chk.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <jmpbuf-offsets.h>
diff --git a/sysdeps/unix/sysv/linux/i386/_exit.S b/sysdeps/unix/sysv/linux/i386/_exit.S
index a10eedecc4..d59c127501 100644
--- a/sysdeps/unix/sysv/linux/i386/_exit.S
+++ b/sysdeps/unix/sysv/linux/i386/_exit.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/i386/brk.c b/sysdeps/unix/sysv/linux/i386/brk.c
index 7b8a1a0f6d..885d01291e 100644
--- a/sysdeps/unix/sysv/linux/i386/brk.c
+++ b/sysdeps/unix/sysv/linux/i386/brk.c
@@ -1,5 +1,5 @@
/* brk system call for Linux/i386.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if BUILD_PIE_DEFAULT
/* Can't use "call *%gs:SYSINFO_OFFSET" during statup in static PIE. */
diff --git a/sysdeps/unix/sysv/linux/i386/clone.S b/sysdeps/unix/sysv/linux/i386/clone.S
index e3b0cf18f7..9d47a3c516 100644
--- a/sysdeps/unix/sysv/linux/i386/clone.S
+++ b/sysdeps/unix/sysv/linux/i386/clone.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@tamu.edu)
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* clone() is even more special than fork() as it mucks with stacks
and invokes a function in the right context after its all over. */
diff --git a/sysdeps/unix/sysv/linux/i386/dl-librecon.h b/sysdeps/unix/sysv/linux/i386/dl-librecon.h
index d320ea81fc..5bdc39d815 100644
--- a/sysdeps/unix/sysv/linux/i386/dl-librecon.h
+++ b/sysdeps/unix/sysv/linux/i386/dl-librecon.h
@@ -1,5 +1,5 @@
/* Optional code to distinguish library flavours.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DL_LIBRECON_H
diff --git a/sysdeps/unix/sysv/linux/i386/dl-procinfo.h b/sysdeps/unix/sysv/linux/i386/dl-procinfo.h
index b454367b72..d64354e2ba 100644
--- a/sysdeps/unix/sysv/linux/i386/dl-procinfo.h
+++ b/sysdeps/unix/sysv/linux/i386/dl-procinfo.h
@@ -1,5 +1,5 @@
/* Linux/i386 version of processor capability information handling macros.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DL_I386_PROCINFO_H
#define _DL_I386_PROCINFO_H 1
@@ -30,8 +30,8 @@ _dl_procinfo (unsigned int type, unsigned long int word)
in the kernel sources. */
int i;
- /* Fallback to unknown output mechanism. */
- if (type == AT_HWCAP2)
+ /* Fallback to generic output mechanism. */
+ if (type != AT_HWCAP)
return -1;
_dl_printf ("AT_HWCAP: ");
diff --git a/sysdeps/unix/sysv/linux/i386/dl-sysdep.h b/sysdeps/unix/sysv/linux/i386/dl-sysdep.h
index ade0279abc..70149a9d5d 100644
--- a/sysdeps/unix/sysv/linux/i386/dl-sysdep.h
+++ b/sysdeps/unix/sysv/linux/i386/dl-sysdep.h
@@ -1,5 +1,5 @@
/* System-specific settings for dynamic linker code. i386 version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LINUX_I386_DL_SYSDEP_H
diff --git a/sysdeps/unix/sysv/linux/i386/fxstat.c b/sysdeps/unix/sysv/linux/i386/fxstat.c
index 83917e8495..f177206609 100644
--- a/sysdeps/unix/sysv/linux/i386/fxstat.c
+++ b/sysdeps/unix/sysv/linux/i386/fxstat.c
@@ -1,5 +1,5 @@
/* fxstat using old-style Unix fstat system call.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Ho hum, if xstat == xstat64 we must get rid of the prototype or gcc
will complain since they don't strictly match. */
diff --git a/sysdeps/unix/sysv/linux/i386/fxstatat.c b/sysdeps/unix/sysv/linux/i386/fxstatat.c
index bcd07fc382..6cfeb0e53a 100644
--- a/sysdeps/unix/sysv/linux/i386/fxstatat.c
+++ b/sysdeps/unix/sysv/linux/i386/fxstatat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Ho hum, if fxstatat == fxstatat64 we must get rid of the prototype or gcc
will complain since they don't strictly match. */
diff --git a/sysdeps/unix/sysv/linux/i386/get_clockfreq.c b/sysdeps/unix/sysv/linux/i386/get_clockfreq.c
deleted file mode 100644
index 633f186be8..0000000000
--- a/sysdeps/unix/sysv/linux/i386/get_clockfreq.c
+++ /dev/null
@@ -1,88 +0,0 @@
-/* Get frequency of the system processor. i386/Linux version.
- Copyright (C) 2000-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <ctype.h>
-#include <fcntl.h>
-#include <string.h>
-#include <unistd.h>
-
-hp_timing_t
-__get_clockfreq (void)
-{
- /* We read the information from the /proc filesystem. It contains at
- least one line like
- cpu MHz : 497.840237
- or also
- cpu MHz : 497.841
- We search for this line and convert the number in an integer. */
- static hp_timing_t result;
- int fd;
-
- /* If this function was called before, we know the result. */
- if (result != 0)
- return result;
-
- fd = __open ("/proc/cpuinfo", O_RDONLY);
- if (__glibc_likely (fd != -1))
- {
- /* XXX AFAIK the /proc filesystem can generate "files" only up
- to a size of 4096 bytes. */
- char buf[4096];
- ssize_t n;
-
- n = __read (fd, buf, sizeof buf);
- if (__builtin_expect (n, 1) > 0)
- {
- char *mhz = memmem (buf, n, "cpu MHz", 7);
-
- if (__glibc_likely (mhz != NULL))
- {
- char *endp = buf + n;
- int seen_decpoint = 0;
- int ndigits = 0;
-
- /* Search for the beginning of the string. */
- while (mhz < endp && (*mhz < '0' || *mhz > '9') && *mhz != '\n')
- ++mhz;
-
- while (mhz < endp && *mhz != '\n')
- {
- if (*mhz >= '0' && *mhz <= '9')
- {
- result *= 10;
- result += *mhz - '0';
- if (seen_decpoint)
- ++ndigits;
- }
- else if (*mhz == '.')
- seen_decpoint = 1;
-
- ++mhz;
- }
-
- /* Compensate for missing digits at the end. */
- while (ndigits++ < 6)
- result *= 10;
- }
- }
-
- __close (fd);
- }
-
- return result;
-}
diff --git a/sysdeps/unix/sysv/linux/i386/getcontext.S b/sysdeps/unix/sysv/linux/i386/getcontext.S
index 26ca08a8c7..1568f9604a 100644
--- a/sysdeps/unix/sysv/linux/i386/getcontext.S
+++ b/sysdeps/unix/sysv/linux/i386/getcontext.S
@@ -1,5 +1,5 @@
/* Save current context.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/i386/getmsg.c b/sysdeps/unix/sysv/linux/i386/getmsg.c
deleted file mode 100644
index 0ae87f2a9e..0000000000
--- a/sysdeps/unix/sysv/linux/i386/getmsg.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (C) 1998-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <stddef.h>
-#include <stropts.h>
-
-#include <sysdep.h>
-#include <sys/syscall.h>
-
-#ifdef __NR_getpmsg
-int
-getmsg (int fildes, struct strbuf *ctlptr, struct strbuf *dataptr, int *flagsp)
-{
- return INLINE_SYSCALL (getpmsg, 5, fildes, ctlptr, dataptr, NULL, flagsp);
-}
-#else
-# include <streams/getmsg.c>
-#endif
diff --git a/sysdeps/unix/sysv/linux/i386/gettimeofday.c b/sysdeps/unix/sysv/linux/i386/gettimeofday.c
deleted file mode 100644
index 6f561ffe39..0000000000
--- a/sysdeps/unix/sysv/linux/i386/gettimeofday.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* gettimeofday - get the time. Linux/i386 version.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifdef SHARED
-# define __gettimeofday __redirect___gettimeofday
-#endif
-
-#include <sys/time.h>
-
-#ifdef SHARED
-# undef __gettimeofday
-# define __gettimeofday_type __redirect___gettimeofday
-
-# undef libc_hidden_def
-# define libc_hidden_def(name) \
- __hidden_ver1 (__gettimeofday_syscall, __GI___gettimeofday, \
- __gettimeofday_syscall);
-#endif
-
-#include <sysdeps/unix/sysv/linux/x86/gettimeofday.c>
diff --git a/sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h b/sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h
index 83de2f5040..c1666d93ed 100644
--- a/sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h
+++ b/sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h
@@ -1,5 +1,5 @@
/* System-specific settings for dynamic linker code. IA-32 version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LINUX_I686_DL_SYSDEP_H
#define _LINUX_I686_DL_SYSDEP_H 1
diff --git a/sysdeps/unix/sysv/linux/i386/init-first.c b/sysdeps/unix/sysv/linux/i386/init-first.c
deleted file mode 100644
index 82ac7f5cf2..0000000000
--- a/sysdeps/unix/sysv/linux/i386/init-first.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Initialization code run first thing by the ELF startup code. Linux/i386.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifdef SHARED
-# include <time.h>
-# include <sysdep.h>
-# include <dl-vdso.h>
-# include <sysdep-vdso.h>
-
-long int (*VDSO_SYMBOL (clock_gettime)) (clockid_t, struct timespec *)
- attribute_hidden;
-
-static long int
-clock_gettime_syscall (clockid_t id, struct timespec *tp)
-{
- INTERNAL_SYSCALL_DECL (err);
- return INTERNAL_SYSCALL (clock_gettime, err, 2, id, tp);
-}
-
-static inline void
-__vdso_platform_setup (void)
-{
- PREPARE_VERSION_KNOWN (linux26, LINUX_2_6);
-
- void *p = _dl_vdso_vsym ("__vdso_clock_gettime", &linux26);
- if (p == NULL)
- p = clock_gettime_syscall;
- PTR_MANGLE (p);
- VDSO_SYMBOL (clock_gettime) = p;
-}
-
-# define VDSO_SETUP __vdso_platform_setup
-#endif
-
-#include <csu/init-first.c>
diff --git a/sysdeps/unix/sysv/linux/i386/kernel-features.h b/sysdeps/unix/sysv/linux/i386/kernel-features.h
index f3cfd48c44..9db3b3a31c 100644
--- a/sysdeps/unix/sysv/linux/i386/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/i386/kernel-features.h
@@ -1,6 +1,6 @@
/* Set flags signalling availability of kernel features based on given
kernel version number. i386 version.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -15,10 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-/* i386 uses socketcall. */
-#define __ASSUME_SOCKETCALL 1
+ <https://www.gnu.org/licenses/>. */
/* Direct socketcalls available with kernel 4.3. */
#if __LINUX_KERNEL_VERSION >= 0x040300
@@ -46,8 +43,11 @@
# undef __ASSUME_SENDTO_SYSCALL
#endif
-/* i686 only supports ipc syscall. */
-#undef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
+/* i686 only supports ipc syscall before 5.1. */
+#if __LINUX_KERNEL_VERSION < 0x050100
+# undef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
+# undef __ASSUME_SYSVIPC_DEFAULT_IPC_64
+#endif
#undef __ASSUME_CLONE_DEFAULT
#define __ASSUME_CLONE_BACKWARDS 1
diff --git a/sysdeps/unix/sysv/linux/i386/ldconfig.h b/sysdeps/unix/sysv/linux/i386/ldconfig.h
index ad8f826509..79907bb4ac 100644
--- a/sysdeps/unix/sysv/linux/i386/ldconfig.h
+++ b/sysdeps/unix/sysv/linux/i386/ldconfig.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/generic/ldconfig.h>
diff --git a/sysdeps/unix/sysv/linux/i386/libc-do-syscall.S b/sysdeps/unix/sysv/linux/i386/libc-do-syscall.S
index 35aac82cc8..b3eacec4b7 100644
--- a/sysdeps/unix/sysv/linux/i386/libc-do-syscall.S
+++ b/sysdeps/unix/sysv/linux/i386/libc-do-syscall.S
@@ -1,5 +1,5 @@
/* Out-of-line syscall stub for six-argument syscalls from C.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/i386/libc-lowlevellock.S b/sysdeps/unix/sysv/linux/i386/libc-lowlevellock.S
deleted file mode 100644
index a1ddaaf77a..0000000000
--- a/sysdeps/unix/sysv/linux/i386/libc-lowlevellock.S
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include "lowlevellock.S"
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 9762c81365..fcb625b6bf 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -1869,6 +1869,11 @@ GLIBC_2.2 _flushlbf F
GLIBC_2.2 _res_hconf D 0x30
GLIBC_2.2 alphasort64 F
GLIBC_2.2 bind_textdomain_codeset F
+GLIBC_2.2 clock_getcpuclockid F
+GLIBC_2.2 clock_getres F
+GLIBC_2.2 clock_gettime F
+GLIBC_2.2 clock_nanosleep F
+GLIBC_2.2 clock_settime F
GLIBC_2.2 dcngettext F
GLIBC_2.2 dngettext F
GLIBC_2.2 fgetpos F
@@ -2045,6 +2050,9 @@ GLIBC_2.28 thrd_current F
GLIBC_2.28 thrd_equal F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
+GLIBC_2.29 getcpu F
+GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
+GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
GLIBC_2.3 __ctype_b_loc F
GLIBC_2.3 __ctype_tolower_loc F
GLIBC_2.3 __ctype_toupper_loc F
@@ -2200,6 +2208,10 @@ GLIBC_2.3.4 setsourcefilter F
GLIBC_2.3.4 vm86 F
GLIBC_2.3.4 xdr_quad_t F
GLIBC_2.3.4 xdr_u_quad_t F
+GLIBC_2.30 getdents64 F
+GLIBC_2.30 gettid F
+GLIBC_2.30 tgkill F
+GLIBC_2.30 twalk_r F
GLIBC_2.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
GLIBC_2.4 __fgets_unlocked_chk F
diff --git a/sysdeps/unix/sysv/linux/i386/libm.abilist b/sysdeps/unix/sysv/linux/i386/libm.abilist
index 3110c1f4fa..e67f9d7d27 100644
--- a/sysdeps/unix/sysv/linux/i386/libm.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libm.abilist
@@ -1075,3 +1075,24 @@ GLIBC_2.28 fmul F
GLIBC_2.28 fmull F
GLIBC_2.28 fsub F
GLIBC_2.28 fsubl F
+GLIBC_2.29 exp F
+GLIBC_2.29 exp2 F
+GLIBC_2.29 log F
+GLIBC_2.29 log2 F
+GLIBC_2.29 pow F
+GLIBC_2.31 totalorder F
+GLIBC_2.31 totalorderf F
+GLIBC_2.31 totalorderf128 F
+GLIBC_2.31 totalorderf32 F
+GLIBC_2.31 totalorderf32x F
+GLIBC_2.31 totalorderf64 F
+GLIBC_2.31 totalorderf64x F
+GLIBC_2.31 totalorderl F
+GLIBC_2.31 totalordermag F
+GLIBC_2.31 totalordermagf F
+GLIBC_2.31 totalordermagf128 F
+GLIBC_2.31 totalordermagf32 F
+GLIBC_2.31 totalordermagf32x F
+GLIBC_2.31 totalordermagf64 F
+GLIBC_2.31 totalordermagf64x F
+GLIBC_2.31 totalordermagl F
diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
index bece86d246..68fd15047c 100644
--- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
@@ -42,20 +42,11 @@ GLIBC_2.0 funlockfile F
GLIBC_2.0 longjmp F
GLIBC_2.0 lseek F
GLIBC_2.0 msync F
-GLIBC_2.0 nanosleep F
GLIBC_2.0 open F
GLIBC_2.0 pause F
GLIBC_2.0 pthread_atfork F
-GLIBC_2.0 pthread_attr_destroy F
-GLIBC_2.0 pthread_attr_getdetachstate F
-GLIBC_2.0 pthread_attr_getinheritsched F
-GLIBC_2.0 pthread_attr_getschedparam F
GLIBC_2.0 pthread_attr_getschedpolicy F
GLIBC_2.0 pthread_attr_getscope F
-GLIBC_2.0 pthread_attr_init F
-GLIBC_2.0 pthread_attr_setdetachstate F
-GLIBC_2.0 pthread_attr_setinheritsched F
-GLIBC_2.0 pthread_attr_setschedparam F
GLIBC_2.0 pthread_attr_setschedpolicy F
GLIBC_2.0 pthread_attr_setscope F
GLIBC_2.0 pthread_cancel F
@@ -69,7 +60,6 @@ GLIBC_2.0 pthread_condattr_destroy F
GLIBC_2.0 pthread_condattr_init F
GLIBC_2.0 pthread_create F
GLIBC_2.0 pthread_detach F
-GLIBC_2.0 pthread_equal F
GLIBC_2.0 pthread_exit F
GLIBC_2.0 pthread_getschedparam F
GLIBC_2.0 pthread_getspecific F
@@ -88,7 +78,6 @@ GLIBC_2.0 pthread_mutexattr_getkind_np F
GLIBC_2.0 pthread_mutexattr_init F
GLIBC_2.0 pthread_mutexattr_setkind_np F
GLIBC_2.0 pthread_once F
-GLIBC_2.0 pthread_self F
GLIBC_2.0 pthread_setcancelstate F
GLIBC_2.0 pthread_setcanceltype F
GLIBC_2.0 pthread_setschedparam F
@@ -114,7 +103,6 @@ GLIBC_2.0 siglongjmp F
GLIBC_2.0 sigwait F
GLIBC_2.0 system F
GLIBC_2.0 tcdrain F
-GLIBC_2.0 vfork F
GLIBC_2.0 wait F
GLIBC_2.0 waitpid F
GLIBC_2.0 write F
@@ -124,7 +112,6 @@ GLIBC_2.1 __libc_current_sigrtmin F
GLIBC_2.1 pthread_attr_getguardsize F
GLIBC_2.1 pthread_attr_getstackaddr F
GLIBC_2.1 pthread_attr_getstacksize F
-GLIBC_2.1 pthread_attr_init F
GLIBC_2.1 pthread_attr_setguardsize F
GLIBC_2.1 pthread_attr_setstackaddr F
GLIBC_2.1 pthread_attr_setstacksize F
@@ -155,7 +142,7 @@ GLIBC_2.1 sem_wait F
GLIBC_2.1.1 sem_close F
GLIBC_2.1.1 sem_open F
GLIBC_2.1.1 sem_unlink F
-GLIBC_2.1.2 __vfork F
+GLIBC_2.1.2 __libpthread_version_placeholder F
GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 pthread_getname_np F
GLIBC_2.12 pthread_mutex_consistent F
@@ -205,7 +192,7 @@ GLIBC_2.2 pwrite F
GLIBC_2.2 pwrite64 F
GLIBC_2.2 sem_timedwait F
GLIBC_2.2.3 pthread_getattr_np F
-GLIBC_2.2.6 __nanosleep F
+GLIBC_2.2.6 __libpthread_version_placeholder F
GLIBC_2.28 call_once F
GLIBC_2.28 cnd_broadcast F
GLIBC_2.28 cnd_destroy F
@@ -253,6 +240,12 @@ GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
GLIBC_2.3.4 pthread_setaffinity_np F
GLIBC_2.3.4 pthread_setschedprio F
+GLIBC_2.30 pthread_cond_clockwait F
+GLIBC_2.30 pthread_mutex_clocklock F
+GLIBC_2.30 pthread_rwlock_clockrdlock F
+GLIBC_2.30 pthread_rwlock_clockwrlock F
+GLIBC_2.30 sem_clockwait F
+GLIBC_2.31 pthread_clockjoin_np F
GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 pthread_mutex_getprioceiling F
GLIBC_2.4 pthread_mutex_setprioceiling F
diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist
index 595f1b712a..bb03781dcc 100644
--- a/sysdeps/unix/sysv/linux/i386/librt.abilist
+++ b/sysdeps/unix/sysv/linux/i386/librt.abilist
@@ -15,11 +15,6 @@ GLIBC_2.1 aio_write F
GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
GLIBC_2.1 lio_listio64 F
-GLIBC_2.2 clock_getcpuclockid F
-GLIBC_2.2 clock_getres F
-GLIBC_2.2 clock_gettime F
-GLIBC_2.2 clock_nanosleep F
-GLIBC_2.2 clock_settime F
GLIBC_2.2 shm_open F
GLIBC_2.2 shm_unlink F
GLIBC_2.2 timer_create F
diff --git a/sysdeps/unix/sysv/linux/i386/lll_timedlock_wait.c b/sysdeps/unix/sysv/linux/i386/lll_timedlock_wait.c
deleted file mode 100644
index f6875b8f89..0000000000
--- a/sysdeps/unix/sysv/linux/i386/lll_timedlock_wait.c
+++ /dev/null
@@ -1 +0,0 @@
-/* __lll_timedlock_wait is in lowlevellock.S. */
diff --git a/sysdeps/unix/sysv/linux/i386/lll_timedwait_tid.c b/sysdeps/unix/sysv/linux/i386/lll_timedwait_tid.c
deleted file mode 100644
index 43900c6294..0000000000
--- a/sysdeps/unix/sysv/linux/i386/lll_timedwait_tid.c
+++ /dev/null
@@ -1 +0,0 @@
-/* __lll_timedwait_tid is in lowlevellock.S. */
diff --git a/sysdeps/unix/sysv/linux/i386/lockf64.c b/sysdeps/unix/sysv/linux/i386/lockf64.c
deleted file mode 100644
index 8a17c13cbe..0000000000
--- a/sysdeps/unix/sysv/linux/i386/lockf64.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/* Copyright (C) 1994-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sys/types.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <errno.h>
-#include <string.h>
-#include <sysdep.h>
-
-/* lockf is a simplified interface to fcntl's locking facilities. */
-
-int
-lockf64 (int fd, int cmd, off64_t len64)
-{
- struct flock64 fl64;
- int cmd64;
- int result;
-
- memset ((char *) &fl64, '\0', sizeof (fl64));
- fl64.l_whence = SEEK_CUR;
- fl64.l_start = 0;
- fl64.l_len = len64;
-
- switch (cmd)
- {
- case F_TEST:
- /* Test the lock: return 0 if FD is unlocked or locked by this process;
- return -1, set errno to EACCES, if another process holds the lock. */
- fl64.l_type = F_RDLCK;
- INTERNAL_SYSCALL_DECL (err);
- result = INTERNAL_SYSCALL (fcntl64, err, 3, fd, F_GETLK64, &fl64);
- if (__glibc_unlikely (INTERNAL_SYSCALL_ERROR_P (result, err)))
- return INLINE_SYSCALL_ERROR_RETURN_VALUE (INTERNAL_SYSCALL_ERRNO (result,
- err));
- if (fl64.l_type == F_UNLCK || fl64.l_pid == __getpid ())
- return 0;
- return INLINE_SYSCALL_ERROR_RETURN_VALUE (EACCES);
- case F_ULOCK:
- fl64.l_type = F_UNLCK;
- cmd64 = F_SETLK64;
- break;
- case F_LOCK:
- fl64.l_type = F_WRLCK;
- cmd64 = F_SETLKW64;
- break;
- case F_TLOCK:
- fl64.l_type = F_WRLCK;
- cmd64 = F_SETLK64;
- break;
-
- default:
- return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
- }
- return INLINE_SYSCALL (fcntl64, 3, fd, cmd64, &fl64);
-}
diff --git a/sysdeps/unix/sysv/linux/i386/lowlevellock.S b/sysdeps/unix/sysv/linux/i386/lowlevellock.S
deleted file mode 100644
index feda390eeb..0000000000
--- a/sysdeps/unix/sysv/linux/i386/lowlevellock.S
+++ /dev/null
@@ -1,434 +0,0 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <pthread-errnos.h>
-#include <kernel-features.h>
-#include <lowlevellock.h>
-
-#include <stap-probe.h>
-
- .text
-
-#define LOAD_PRIVATE_FUTEX_WAIT(reg) \
- movl $(FUTEX_WAIT | FUTEX_PRIVATE_FLAG), reg
-#define LOAD_PRIVATE_FUTEX_WAKE(reg) \
- movl $(FUTEX_WAKE | FUTEX_PRIVATE_FLAG), reg
-#define LOAD_FUTEX_WAIT(reg) \
- xorl $(FUTEX_WAIT | FUTEX_PRIVATE_FLAG), reg
-#define LOAD_FUTEX_WAIT_ABS(reg) \
- xorl $(FUTEX_WAIT_BITSET | FUTEX_PRIVATE_FLAG | FUTEX_CLOCK_REALTIME), reg
-#define LOAD_FUTEX_WAKE(reg) \
- xorl $(FUTEX_WAKE | FUTEX_PRIVATE_FLAG), reg
-
- .globl __lll_lock_wait_private
- .type __lll_lock_wait_private,@function
- .hidden __lll_lock_wait_private
- .align 16
-__lll_lock_wait_private:
- cfi_startproc
- pushl %edx
- cfi_adjust_cfa_offset(4)
- pushl %ebx
- cfi_adjust_cfa_offset(4)
- pushl %esi
- cfi_adjust_cfa_offset(4)
- cfi_offset(%edx, -8)
- cfi_offset(%ebx, -12)
- cfi_offset(%esi, -16)
-
- movl $2, %edx
- movl %ecx, %ebx
- xorl %esi, %esi /* No timeout. */
- LOAD_PRIVATE_FUTEX_WAIT (%ecx)
-
- cmpl %edx, %eax /* NB: %edx == 2 */
- jne 2f
-
-1: LIBC_PROBE (lll_lock_wait_private, 1, %ebx)
- movl $SYS_futex, %eax
- ENTER_KERNEL
-
-2: movl %edx, %eax
- xchgl %eax, (%ebx) /* NB: lock is implied */
-
- testl %eax, %eax
- jnz 1b
-
- popl %esi
- cfi_adjust_cfa_offset(-4)
- cfi_restore(%esi)
- popl %ebx
- cfi_adjust_cfa_offset(-4)
- cfi_restore(%ebx)
- popl %edx
- cfi_adjust_cfa_offset(-4)
- cfi_restore(%edx)
- ret
- cfi_endproc
- .size __lll_lock_wait_private,.-__lll_lock_wait_private
-
-#if !IS_IN (libc)
- .globl __lll_lock_wait
- .type __lll_lock_wait,@function
- .hidden __lll_lock_wait
- .align 16
-__lll_lock_wait:
- cfi_startproc
- pushl %edx
- cfi_adjust_cfa_offset(4)
- pushl %ebx
- cfi_adjust_cfa_offset(4)
- pushl %esi
- cfi_adjust_cfa_offset(4)
- cfi_offset(%edx, -8)
- cfi_offset(%ebx, -12)
- cfi_offset(%esi, -16)
-
- movl %edx, %ebx
- movl $2, %edx
- xorl %esi, %esi /* No timeout. */
- LOAD_FUTEX_WAIT (%ecx)
-
- cmpl %edx, %eax /* NB: %edx == 2 */
- jne 2f
-
-1: movl $SYS_futex, %eax
- ENTER_KERNEL
-
-2: movl %edx, %eax
- xchgl %eax, (%ebx) /* NB: lock is implied */
-
- testl %eax, %eax
- jnz 1b
-
- popl %esi
- cfi_adjust_cfa_offset(-4)
- cfi_restore(%esi)
- popl %ebx
- cfi_adjust_cfa_offset(-4)
- cfi_restore(%ebx)
- popl %edx
- cfi_adjust_cfa_offset(-4)
- cfi_restore(%edx)
- ret
- cfi_endproc
- .size __lll_lock_wait,.-__lll_lock_wait
-
- /* %ecx: futex
- %esi: flags
- %edx: timeout
- %eax: futex value
- */
- .globl __lll_timedlock_wait
- .type __lll_timedlock_wait,@function
- .hidden __lll_timedlock_wait
- .align 16
-__lll_timedlock_wait:
- cfi_startproc
- pushl %ebp
- cfi_adjust_cfa_offset(4)
- cfi_rel_offset(%ebp, 0)
- pushl %ebx
- cfi_adjust_cfa_offset(4)
- cfi_rel_offset(%ebx, 0)
-
-# ifndef __ASSUME_FUTEX_CLOCK_REALTIME
-# ifdef PIC
- LOAD_PIC_REG (bx)
- cmpl $0, __have_futex_clock_realtime@GOTOFF(%ebx)
-# else
- cmpl $0, __have_futex_clock_realtime
-# endif
- je .Lreltmo
-# endif
-
- cmpl $0, (%edx)
- js 8f
-
- movl %ecx, %ebx
- movl %esi, %ecx
- movl %edx, %esi
- movl $0xffffffff, %ebp
- LOAD_FUTEX_WAIT_ABS (%ecx)
-
- movl $2, %edx
- cmpl %edx, %eax
- jne 2f
-
-1: movl $SYS_futex, %eax
- movl $2, %edx
- ENTER_KERNEL
-
-2: xchgl %edx, (%ebx) /* NB: lock is implied */
-
- testl %edx, %edx
- jz 3f
-
- cmpl $-ETIMEDOUT, %eax
- je 4f
- cmpl $-EINVAL, %eax
- jne 1b
-4: movl %eax, %edx
- negl %edx
-
-3: movl %edx, %eax
-7: popl %ebx
- cfi_adjust_cfa_offset(-4)
- cfi_restore(%ebx)
- popl %ebp
- cfi_adjust_cfa_offset(-4)
- cfi_restore(%ebp)
- ret
-
-8: movl $ETIMEDOUT, %eax
- jmp 7b
-
-# ifndef __ASSUME_FUTEX_CLOCK_REALTIME
-.Lreltmo:
- /* Check for a valid timeout value. */
- cmpl $1000000000, 4(%edx)
- jae 3f
-
- pushl %esi
- cfi_adjust_cfa_offset(4)
- cfi_rel_offset(%esi, 0)
- pushl %edi
- cfi_adjust_cfa_offset(4)
- cfi_rel_offset(%edi, 0)
-
- /* Stack frame for the timespec and timeval structs. */
- subl $8, %esp
- cfi_adjust_cfa_offset(8)
-
- movl %ecx, %ebp
- movl %edx, %edi
-
- movl $2, %edx
- xchgl %edx, (%ebp)
-
- test %edx, %edx
- je 6f
-
-1:
- /* Get current time. */
- movl %esp, %ebx
- xorl %ecx, %ecx
- movl $__NR_gettimeofday, %eax
- ENTER_KERNEL
-
- /* Compute relative timeout. */
- movl 4(%esp), %eax
- movl $1000, %edx
- mul %edx /* Milli seconds to nano seconds. */
- movl (%edi), %ecx
- movl 4(%edi), %edx
- subl (%esp), %ecx
- subl %eax, %edx
- jns 4f
- addl $1000000000, %edx
- subl $1, %ecx
-4: testl %ecx, %ecx
- js 2f /* Time is already up. */
-
- /* Store relative timeout. */
- movl %ecx, (%esp)
- movl %edx, 4(%esp)
-
- /* Futex call. */
- movl %ebp, %ebx
- movl $2, %edx
- movl %esp, %esi
- movl 16(%esp), %ecx
- LOAD_FUTEX_WAIT (%ecx)
- movl $SYS_futex, %eax
- ENTER_KERNEL
-
- /* NB: %edx == 2 */
- xchgl %edx, (%ebp)
-
- testl %edx, %edx
- je 6f
-
- cmpl $-ETIMEDOUT, %eax
- jne 1b
-2: movl $ETIMEDOUT, %edx
-
-6: addl $8, %esp
- cfi_adjust_cfa_offset(-8)
- popl %edi
- cfi_adjust_cfa_offset(-4)
- cfi_restore(%edi)
- popl %esi
- cfi_adjust_cfa_offset(-4)
- cfi_restore(%esi)
-7: popl %ebx
- cfi_adjust_cfa_offset(-4)
- cfi_restore(%ebx)
- popl %ebp
- cfi_adjust_cfa_offset(-4)
- cfi_restore(%ebp)
- movl %edx, %eax
- ret
-
-3: movl $EINVAL, %edx
- jmp 7b
-# endif
- cfi_endproc
- .size __lll_timedlock_wait,.-__lll_timedlock_wait
-#endif
-
- .globl __lll_unlock_wake_private
- .type __lll_unlock_wake_private,@function
- .hidden __lll_unlock_wake_private
- .align 16
-__lll_unlock_wake_private:
- cfi_startproc
- pushl %ebx
- cfi_adjust_cfa_offset(4)
- pushl %ecx
- cfi_adjust_cfa_offset(4)
- pushl %edx
- cfi_adjust_cfa_offset(4)
- cfi_offset(%ebx, -8)
- cfi_offset(%ecx, -12)
- cfi_offset(%edx, -16)
-
- movl %eax, %ebx
- movl $0, (%eax)
- LOAD_PRIVATE_FUTEX_WAKE (%ecx)
- movl $1, %edx /* Wake one thread. */
- movl $SYS_futex, %eax
- ENTER_KERNEL
-
- popl %edx
- cfi_adjust_cfa_offset(-4)
- cfi_restore(%edx)
- popl %ecx
- cfi_adjust_cfa_offset(-4)
- cfi_restore(%ecx)
- popl %ebx
- cfi_adjust_cfa_offset(-4)
- cfi_restore(%ebx)
- ret
- cfi_endproc
- .size __lll_unlock_wake_private,.-__lll_unlock_wake_private
-
-#if !IS_IN (libc)
- .globl __lll_unlock_wake
- .type __lll_unlock_wake,@function
- .hidden __lll_unlock_wake
- .align 16
-__lll_unlock_wake:
- cfi_startproc
- pushl %ebx
- cfi_adjust_cfa_offset(4)
- pushl %ecx
- cfi_adjust_cfa_offset(4)
- pushl %edx
- cfi_adjust_cfa_offset(4)
- cfi_offset(%ebx, -8)
- cfi_offset(%ecx, -12)
- cfi_offset(%edx, -16)
-
- movl %eax, %ebx
- movl $0, (%eax)
- LOAD_FUTEX_WAKE (%ecx)
- movl $1, %edx /* Wake one thread. */
- movl $SYS_futex, %eax
- ENTER_KERNEL
-
- popl %edx
- cfi_adjust_cfa_offset(-4)
- cfi_restore(%edx)
- popl %ecx
- cfi_adjust_cfa_offset(-4)
- cfi_restore(%ecx)
- popl %ebx
- cfi_adjust_cfa_offset(-4)
- cfi_restore(%ebx)
- ret
- cfi_endproc
- .size __lll_unlock_wake,.-__lll_unlock_wake
-
- .globl __lll_timedwait_tid
- .type __lll_timedwait_tid,@function
- .hidden __lll_timedwait_tid
- .align 16
-__lll_timedwait_tid:
- pushl %edi
- pushl %esi
- pushl %ebx
- pushl %ebp
-
- movl %eax, %ebp
- movl %edx, %edi
- subl $8, %esp
-
- /* Get current time. */
-2: movl %esp, %ebx
- xorl %ecx, %ecx
- movl $__NR_gettimeofday, %eax
- ENTER_KERNEL
-
- /* Compute relative timeout. */
- movl 4(%esp), %eax
- movl $1000, %edx
- mul %edx /* Milli seconds to nano seconds. */
- movl (%edi), %ecx
- movl 4(%edi), %edx
- subl (%esp), %ecx
- subl %eax, %edx
- jns 5f
- addl $1000000000, %edx
- subl $1, %ecx
-5: testl %ecx, %ecx
- js 6f /* Time is already up. */
-
- movl %ecx, (%esp) /* Store relative timeout. */
- movl %edx, 4(%esp)
-
- movl (%ebp), %edx
- testl %edx, %edx
- jz 4f
-
- movl %esp, %esi
- /* XXX The kernel so far uses global futex for the wakeup at
- all times. */
- xorl %ecx, %ecx /* movl $FUTEX_WAIT, %ecx */
- movl %ebp, %ebx
- movl $SYS_futex, %eax
- ENTER_KERNEL
-
- cmpl $0, (%ebx)
- jne 1f
-4: xorl %eax, %eax
-
-3: addl $8, %esp
- popl %ebp
- popl %ebx
- popl %esi
- popl %edi
- ret
-
-1: cmpl $-ETIMEDOUT, %eax
- jne 2b
-6: movl $ETIMEDOUT, %eax
- jmp 3b
- .size __lll_timedwait_tid,.-__lll_timedwait_tid
-#endif
diff --git a/sysdeps/unix/sysv/linux/i386/lowlevellock.h b/sysdeps/unix/sysv/linux/i386/lowlevellock.h
deleted file mode 100644
index 38fbc2556f..0000000000
--- a/sysdeps/unix/sysv/linux/i386/lowlevellock.h
+++ /dev/null
@@ -1,269 +0,0 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _LOWLEVELLOCK_H
-#define _LOWLEVELLOCK_H 1
-
-#include <stap-probe.h>
-
-#ifndef __ASSEMBLER__
-# include <time.h>
-# include <sys/param.h>
-# include <bits/pthreadtypes.h>
-# include <kernel-features.h>
-/* <tcb-offsets.h> is generated from tcb-offsets.sym to define offsets
- and sizes of types in <tls.h> as well as <pthread.h> which includes
- <lowlevellock.h> via nptl/descr.h. Don't include <tcb-offsets.h>
- when generating <tcb-offsets.h> to avoid circular dependency which
- may lead to build hang on a many-core machine. */
-# ifndef GEN_AS_CONST_HEADERS
-# include <tcb-offsets.h>
-# endif
-
-# ifndef LOCK_INSTR
-# ifdef UP
-# define LOCK_INSTR /* nothing */
-# else
-# define LOCK_INSTR "lock;"
-# endif
-# endif
-#else
-# ifndef LOCK
-# ifdef UP
-# define LOCK
-# else
-# define LOCK lock
-# endif
-# endif
-#endif
-
-#include <lowlevellock-futex.h>
-
-/* XXX Remove when no assembler code uses futexes anymore. */
-#define SYS_futex __NR_futex
-
-#ifndef __ASSEMBLER__
-
-/* Initializer for compatibility lock. */
-#define LLL_LOCK_INITIALIZER (0)
-#define LLL_LOCK_INITIALIZER_LOCKED (1)
-#define LLL_LOCK_INITIALIZER_WAITERS (2)
-
-
-/* NB: in the lll_trylock macro we simply return the value in %eax
- after the cmpxchg instruction. In case the operation succeded this
- value is zero. In case the operation failed, the cmpxchg instruction
- has loaded the current value of the memory work which is guaranteed
- to be nonzero. */
-#if !IS_IN (libc) || defined UP
-# define __lll_trylock_asm LOCK_INSTR "cmpxchgl %2, %1"
-#else
-# define __lll_trylock_asm "cmpl $0, %%gs:%P5\n\t" \
- "je 0f\n\t" \
- "lock\n" \
- "0:\tcmpxchgl %2, %1"
-#endif
-
-#define lll_trylock(futex) \
- ({ int ret; \
- __asm __volatile (__lll_trylock_asm \
- : "=a" (ret), "=m" (futex) \
- : "r" (LLL_LOCK_INITIALIZER_LOCKED), "m" (futex), \
- "0" (LLL_LOCK_INITIALIZER), \
- "i" (MULTIPLE_THREADS_OFFSET) \
- : "memory"); \
- ret; })
-
-
-#define lll_cond_trylock(futex) \
- ({ int ret; \
- __asm __volatile (LOCK_INSTR "cmpxchgl %2, %1" \
- : "=a" (ret), "=m" (futex) \
- : "r" (LLL_LOCK_INITIALIZER_WAITERS), \
- "m" (futex), "0" (LLL_LOCK_INITIALIZER) \
- : "memory"); \
- ret; })
-
-#if !IS_IN (libc) || defined UP
-# define __lll_lock_asm_start LOCK_INSTR "cmpxchgl %1, %2\n\t"
-#else
-# define __lll_lock_asm_start "cmpl $0, %%gs:%P6\n\t" \
- "je 0f\n\t" \
- "lock\n" \
- "0:\tcmpxchgl %1, %2\n\t"
-#endif
-
-#define lll_lock(futex, private) \
- (void) \
- ({ int ignore1, ignore2; \
- if (__builtin_constant_p (private) && (private) == LLL_PRIVATE) \
- __asm __volatile (__lll_lock_asm_start \
- "jz 18f\n\t" \
- "1:\tleal %2, %%ecx\n" \
- "2:\tcall __lll_lock_wait_private\n" \
- "18:" \
- : "=a" (ignore1), "=c" (ignore2), "=m" (futex) \
- : "0" (0), "1" (1), "m" (futex), \
- "i" (MULTIPLE_THREADS_OFFSET) \
- : "memory"); \
- else \
- { \
- int ignore3; \
- __asm __volatile (__lll_lock_asm_start \
- "jz 18f\n\t" \
- "1:\tleal %2, %%edx\n" \
- "0:\tmovl %8, %%ecx\n" \
- "2:\tcall __lll_lock_wait\n" \
- "18:" \
- : "=a" (ignore1), "=c" (ignore2), \
- "=m" (futex), "=&d" (ignore3) \
- : "1" (1), "m" (futex), \
- "i" (MULTIPLE_THREADS_OFFSET), "0" (0), \
- "g" ((int) (private)) \
- : "memory"); \
- } \
- })
-
-
-/* Special version of lll_lock which causes the unlock function to
- always wakeup waiters. */
-#define lll_cond_lock(futex, private) \
- (void) \
- ({ int ignore1, ignore2, ignore3; \
- __asm __volatile (LOCK_INSTR "cmpxchgl %1, %2\n\t" \
- "jz 18f\n\t" \
- "1:\tleal %2, %%edx\n" \
- "0:\tmovl %7, %%ecx\n" \
- "2:\tcall __lll_lock_wait\n" \
- "18:" \
- : "=a" (ignore1), "=c" (ignore2), "=m" (futex), \
- "=&d" (ignore3) \
- : "0" (0), "1" (2), "m" (futex), "g" ((int) (private))\
- : "memory"); \
- })
-
-
-#define lll_timedlock(futex, timeout, private) \
- ({ int result, ignore1, ignore2, ignore3; \
- __asm __volatile (LOCK_INSTR "cmpxchgl %1, %3\n\t" \
- "jz 18f\n\t" \
- "1:\tleal %3, %%ecx\n" \
- "0:\tmovl %8, %%edx\n" \
- "2:\tcall __lll_timedlock_wait\n" \
- "18:" \
- : "=a" (result), "=c" (ignore1), "=&d" (ignore2), \
- "=m" (futex), "=S" (ignore3) \
- : "0" (0), "1" (1), "m" (futex), "m" (timeout), \
- "4" ((int) (private)) \
- : "memory"); \
- result; })
-
-extern int __lll_timedlock_elision (int *futex, short *adapt_count,
- const struct timespec *timeout,
- int private) attribute_hidden;
-
-#define lll_timedlock_elision(futex, adapt_count, timeout, private) \
- __lll_timedlock_elision(&(futex), &(adapt_count), timeout, private)
-
-#if !IS_IN (libc) || defined UP
-# define __lll_unlock_asm LOCK_INSTR "subl $1, %0\n\t"
-#else
-# define __lll_unlock_asm "cmpl $0, %%gs:%P3\n\t" \
- "je 0f\n\t" \
- "lock\n" \
- "0:\tsubl $1,%0\n\t"
-#endif
-
-#define lll_unlock(futex, private) \
- (void) \
- ({ int ignore; \
- if (__builtin_constant_p (private) && (private) == LLL_PRIVATE) \
- __asm __volatile (__lll_unlock_asm \
- "je 18f\n\t" \
- "1:\tleal %0, %%eax\n" \
- "2:\tcall __lll_unlock_wake_private\n" \
- "18:" \
- : "=m" (futex), "=&a" (ignore) \
- : "m" (futex), "i" (MULTIPLE_THREADS_OFFSET) \
- : "memory"); \
- else \
- { \
- int ignore2; \
- __asm __volatile (__lll_unlock_asm \
- "je 18f\n\t" \
- "1:\tleal %0, %%eax\n" \
- "0:\tmovl %5, %%ecx\n" \
- "2:\tcall __lll_unlock_wake\n" \
- "18:" \
- : "=m" (futex), "=&a" (ignore), "=&c" (ignore2) \
- : "i" (MULTIPLE_THREADS_OFFSET), "m" (futex), \
- "g" ((int) (private)) \
- : "memory"); \
- } \
- })
-
-
-#define lll_islocked(futex) \
- (futex != LLL_LOCK_INITIALIZER)
-
-/* The kernel notifies a process which uses CLONE_CHILD_CLEARTID via futex
- wake-up when the clone terminates. The memory location contains the
- thread ID while the clone is running and is reset to zero by the kernel
- afterwards. The kernel up to version 3.16.3 does not use the private futex
- operations for futex wake-up when the clone terminates. */
-#define lll_wait_tid(tid) \
- do { \
- __typeof (tid) __tid; \
- while ((__tid = (tid)) != 0) \
- lll_futex_wait (&(tid), __tid, LLL_SHARED);\
- } while (0)
-
-extern int __lll_timedwait_tid (int *tid, const struct timespec *abstime)
- __attribute__ ((regparm (2))) attribute_hidden;
-
-/* As lll_wait_tid, but with a timeout. If the timeout occurs then return
- ETIMEDOUT. If ABSTIME is invalid, return EINVAL.
- XXX Note that this differs from the generic version in that we do the
- error checking here and not in __lll_timedwait_tid. */
-#define lll_timedwait_tid(tid, abstime) \
- ({ \
- int __result = 0; \
- if ((tid) != 0) \
- __result = __lll_timedwait_tid (&(tid), (abstime)); \
- __result; })
-
-
-extern int __lll_lock_elision (int *futex, short *adapt_count, int private)
- attribute_hidden;
-
-extern int __lll_unlock_elision(int *lock, int private)
- attribute_hidden;
-
-extern int __lll_trylock_elision(int *lock, short *adapt_count)
- attribute_hidden;
-
-#define lll_lock_elision(futex, adapt_count, private) \
- __lll_lock_elision (&(futex), &(adapt_count), private)
-#define lll_unlock_elision(futex, adapt_count, private) \
- __lll_unlock_elision (&(futex), private)
-#define lll_trylock_elision(futex, adapt_count) \
- __lll_trylock_elision(&(futex), &(adapt_count))
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* lowlevellock.h */
diff --git a/sysdeps/unix/sysv/linux/i386/lxstat.c b/sysdeps/unix/sysv/linux/i386/lxstat.c
index 0049fd1840..b7f6bfe83b 100644
--- a/sysdeps/unix/sysv/linux/i386/lxstat.c
+++ b/sysdeps/unix/sysv/linux/i386/lxstat.c
@@ -1,5 +1,5 @@
/* lxstat using old-style Unix lstat system call.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Ho hum, if xstat == xstat64 we must get rid of the prototype or gcc
will complain since they don't strictly match. */
diff --git a/sysdeps/unix/sysv/linux/i386/makecontext.S b/sysdeps/unix/sysv/linux/i386/makecontext.S
index e3ca3dc0d5..e2f8afc895 100644
--- a/sysdeps/unix/sysv/linux/i386/makecontext.S
+++ b/sysdeps/unix/sysv/linux/i386/makecontext.S
@@ -1,5 +1,5 @@
/* Create new context.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/i386/profil-counter.h b/sysdeps/unix/sysv/linux/i386/profil-counter.h
deleted file mode 100644
index 871709961c..0000000000
--- a/sysdeps/unix/sysv/linux/i386/profil-counter.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Low-level statistical profiling support function. Linux/i386 version.
- Copyright (C) 1996-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <signal.h>
-#include <sigcontextinfo.h>
-
-static void
-__profil_counter (int signo, const SIGCONTEXT scp)
-{
- profil_count ((void *) GET_PC (scp));
-
- /* This is a hack to prevent the compiler from implementing the
- above function call as a sibcall. The sibcall would overwrite
- the signal context. */
- asm volatile ("");
-}
diff --git a/sysdeps/unix/sysv/linux/i386/putmsg.c b/sysdeps/unix/sysv/linux/i386/putmsg.c
deleted file mode 100644
index e08dbd625a..0000000000
--- a/sysdeps/unix/sysv/linux/i386/putmsg.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright (C) 1998-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <stddef.h>
-#include <stropts.h>
-
-#include <sysdep.h>
-#include <sys/syscall.h>
-
-#ifdef __NR_putpmsg
-int
-putmsg (int fildes, const struct strbuf *ctlptr, const struct strbuf *dataptr,
- int flags)
-{
- return INLINE_SYSCALL (putpmsg, 5, fildes, ctlptr, dataptr, -1, flags);
-}
-#else
-# include <streams/putmsg.c>
-#endif
diff --git a/sysdeps/unix/sysv/linux/i386/readelflib.c b/sysdeps/unix/sysv/linux/i386/readelflib.c
index 3a84559592..8adfe634db 100644
--- a/sysdeps/unix/sysv/linux/i386/readelflib.c
+++ b/sysdeps/unix/sysv/linux/i386/readelflib.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 1999 and
Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
int process_elf32_file (const char *file_name, const char *lib, int *flag,
diff --git a/sysdeps/unix/sysv/linux/i386/register-dump.h b/sysdeps/unix/sysv/linux/i386/register-dump.h
index 1570a74533..abcd533544 100644
--- a/sysdeps/unix/sysv/linux/i386/register-dump.h
+++ b/sysdeps/unix/sysv/linux/i386/register-dump.h
@@ -1,5 +1,5 @@
/* Dump registers.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/uio.h>
#include <_itoa.h>
@@ -51,7 +51,7 @@ hexvalue (unsigned long int value, char *buf, size_t len)
}
static void
-register_dump (int fd, struct sigcontext *ctx)
+register_dump (int fd, struct ucontext_t *ctx)
{
char regs[21][8];
char fpregs[31][8];
@@ -68,27 +68,27 @@ register_dump (int fd, struct sigcontext *ctx)
++nr
/* Generate strings of register contents. */
- hexvalue (ctx->eax, regs[0], 8);
- hexvalue (ctx->ebx, regs[1], 8);
- hexvalue (ctx->ecx, regs[2], 8);
- hexvalue (ctx->edx, regs[3], 8);
- hexvalue (ctx->esi, regs[4], 8);
- hexvalue (ctx->edi, regs[5], 8);
- hexvalue (ctx->ebp, regs[6], 8);
- hexvalue (ctx->esp, regs[7], 8);
- hexvalue (ctx->eip, regs[8], 8);
- hexvalue (ctx->eflags, regs[9], 8);
- hexvalue (ctx->cs, regs[10], 4);
- hexvalue (ctx->ds, regs[11], 4);
- hexvalue (ctx->es, regs[12], 4);
- hexvalue (ctx->fs, regs[13], 4);
- hexvalue (ctx->gs, regs[14], 4);
- hexvalue (ctx->ss, regs[15], 4);
- hexvalue (ctx->trapno, regs[16], 8);
- hexvalue (ctx->err, regs[17], 8);
- hexvalue (ctx->oldmask, regs[18], 8);
- hexvalue (ctx->esp_at_signal, regs[19], 8);
- hexvalue (ctx->cr2, regs[20], 8);
+ hexvalue (ctx->uc_mcontext.gregs[REG_EAX], regs[0], 8);
+ hexvalue (ctx->uc_mcontext.gregs[REG_EBX], regs[1], 8);
+ hexvalue (ctx->uc_mcontext.gregs[REG_ECX], regs[2], 8);
+ hexvalue (ctx->uc_mcontext.gregs[REG_EDX], regs[3], 8);
+ hexvalue (ctx->uc_mcontext.gregs[REG_ESI], regs[4], 8);
+ hexvalue (ctx->uc_mcontext.gregs[REG_EDI], regs[5], 8);
+ hexvalue (ctx->uc_mcontext.gregs[REG_EBP], regs[6], 8);
+ hexvalue (ctx->uc_mcontext.gregs[REG_ESP], regs[7], 8);
+ hexvalue (ctx->uc_mcontext.gregs[REG_EIP], regs[8], 8);
+ hexvalue (ctx->uc_flags, regs[9], 8);
+ hexvalue (ctx->uc_mcontext.gregs[REG_CS], regs[10], 4);
+ hexvalue (ctx->uc_mcontext.gregs[REG_DS], regs[11], 4);
+ hexvalue (ctx->uc_mcontext.gregs[REG_ES], regs[12], 4);
+ hexvalue (ctx->uc_mcontext.gregs[REG_FS], regs[13], 4);
+ hexvalue (ctx->uc_mcontext.gregs[REG_GS], regs[14], 4);
+ hexvalue (ctx->uc_mcontext.gregs[REG_SS], regs[15], 4);
+ hexvalue (ctx->uc_mcontext.gregs[REG_TRAPNO], regs[16], 8);
+ hexvalue (ctx->uc_mcontext.gregs[REG_ERR], regs[17], 8);
+ hexvalue (ctx->uc_mcontext.oldmask, regs[18], 8);
+ hexvalue (ctx->uc_mcontext.gregs[REG_UESP], regs[19], 8);
+ hexvalue (ctx->uc_mcontext.cr2, regs[20], 8);
/* Generate the output. */
ADD_STRING ("Register dump:\n\n EAX: ");
@@ -134,116 +134,112 @@ register_dump (int fd, struct sigcontext *ctx)
ADD_STRING (" CR2: ");
ADD_MEM (regs[20], 8);
- if (ctx->fpstate != NULL)
- {
-
- /* Generate output for the FPU control/status registers. */
- hexvalue (ctx->fpstate->cw, fpregs[0], 8);
- hexvalue (ctx->fpstate->sw, fpregs[1], 8);
- hexvalue (ctx->fpstate->tag, fpregs[2], 8);
- hexvalue (ctx->fpstate->ipoff, fpregs[3], 8);
- hexvalue (ctx->fpstate->cssel, fpregs[4], 4);
- hexvalue (ctx->fpstate->dataoff, fpregs[5], 8);
- hexvalue (ctx->fpstate->datasel, fpregs[6], 4);
-
- ADD_STRING ("\n\n FPUCW: ");
- ADD_MEM (fpregs[0], 8);
- ADD_STRING (" FPUSW: ");
- ADD_MEM (fpregs[1], 8);
- ADD_STRING (" TAG: ");
- ADD_MEM (fpregs[2], 8);
- ADD_STRING ("\n IPOFF: ");
- ADD_MEM (fpregs[3], 8);
- ADD_STRING (" CSSEL: ");
- ADD_MEM (fpregs[4], 4);
- ADD_STRING (" DATAOFF: ");
- ADD_MEM (fpregs[5], 8);
- ADD_STRING (" DATASEL: ");
- ADD_MEM (fpregs[6], 4);
-
- /* Now the real FPU registers. */
- hexvalue (ctx->fpstate->_st[0].exponent, fpregs[7], 8);
- hexvalue (ctx->fpstate->_st[0].significand[3] << 16
- | ctx->fpstate->_st[0].significand[2], fpregs[8], 8);
- hexvalue (ctx->fpstate->_st[0].significand[1] << 16
- | ctx->fpstate->_st[0].significand[0], fpregs[9], 8);
- hexvalue (ctx->fpstate->_st[1].exponent, fpregs[10], 8);
- hexvalue (ctx->fpstate->_st[1].significand[3] << 16
- | ctx->fpstate->_st[1].significand[2], fpregs[11], 8);
- hexvalue (ctx->fpstate->_st[1].significand[1] << 16
- | ctx->fpstate->_st[1].significand[0], fpregs[12], 8);
- hexvalue (ctx->fpstate->_st[2].exponent, fpregs[13], 8);
- hexvalue (ctx->fpstate->_st[2].significand[3] << 16
- | ctx->fpstate->_st[2].significand[2], fpregs[14], 8);
- hexvalue (ctx->fpstate->_st[2].significand[1] << 16
- | ctx->fpstate->_st[2].significand[0], fpregs[15], 8);
- hexvalue (ctx->fpstate->_st[3].exponent, fpregs[16], 8);
- hexvalue (ctx->fpstate->_st[3].significand[3] << 16
- | ctx->fpstate->_st[3].significand[2], fpregs[17], 8);
- hexvalue (ctx->fpstate->_st[3].significand[1] << 16
- | ctx->fpstate->_st[3].significand[0], fpregs[18], 8);
- hexvalue (ctx->fpstate->_st[4].exponent, fpregs[19], 8);
- hexvalue (ctx->fpstate->_st[4].significand[3] << 16
- | ctx->fpstate->_st[4].significand[2], fpregs[20], 8);
- hexvalue (ctx->fpstate->_st[4].significand[1] << 16
- | ctx->fpstate->_st[4].significand[0], fpregs[21], 8);
- hexvalue (ctx->fpstate->_st[5].exponent, fpregs[22], 8);
- hexvalue (ctx->fpstate->_st[5].significand[3] << 16
- | ctx->fpstate->_st[5].significand[2], fpregs[23], 8);
- hexvalue (ctx->fpstate->_st[5].significand[1] << 16
- | ctx->fpstate->_st[5].significand[0], fpregs[24], 8);
- hexvalue (ctx->fpstate->_st[6].exponent, fpregs[25], 8);
- hexvalue (ctx->fpstate->_st[6].significand[3] << 16
- | ctx->fpstate->_st[6].significand[2], fpregs[26], 8);
- hexvalue (ctx->fpstate->_st[6].significand[1] << 16
- | ctx->fpstate->_st[6].significand[0], fpregs[27], 8);
- hexvalue (ctx->fpstate->_st[7].exponent, fpregs[28], 8);
- hexvalue (ctx->fpstate->_st[7].significand[3] << 16
- | ctx->fpstate->_st[7].significand[2], fpregs[29], 8);
- hexvalue (ctx->fpstate->_st[7].significand[1] << 16
- | ctx->fpstate->_st[7].significand[0], fpregs[30], 8);
-
- ADD_STRING ("\n\n ST(0) ");
- ADD_MEM (fpregs[7], 4);
- ADD_STRING (" ");
- ADD_MEM (fpregs[8], 8);
- ADD_MEM (fpregs[9], 8);
- ADD_STRING (" ST(1) ");
- ADD_MEM (fpregs[10], 4);
- ADD_STRING (" ");
- ADD_MEM (fpregs[11], 8);
- ADD_MEM (fpregs[12], 8);
- ADD_STRING ("\n ST(2) ");
- ADD_MEM (fpregs[13], 4);
- ADD_STRING (" ");
- ADD_MEM (fpregs[14], 8);
- ADD_MEM (fpregs[15], 8);
- ADD_STRING (" ST(3) ");
- ADD_MEM (fpregs[16], 4);
- ADD_STRING (" ");
- ADD_MEM (fpregs[17], 8);
- ADD_MEM (fpregs[18], 8);
- ADD_STRING ("\n ST(4) ");
- ADD_MEM (fpregs[19], 4);
- ADD_STRING (" ");
- ADD_MEM (fpregs[20], 8);
- ADD_MEM (fpregs[21], 8);
- ADD_STRING (" ST(5) ");
- ADD_MEM (fpregs[22], 4);
- ADD_STRING (" ");
- ADD_MEM (fpregs[23], 8);
- ADD_MEM (fpregs[24], 8);
- ADD_STRING ("\n ST(6) ");
- ADD_MEM (fpregs[25], 4);
- ADD_STRING (" ");
- ADD_MEM (fpregs[26], 8);
- ADD_MEM (fpregs[27], 8);
- ADD_STRING (" ST(7) ");
- ADD_MEM (fpregs[28], 4);
- ADD_STRING (" ");
- ADD_MEM (fpregs[29], 8);
- ADD_MEM (fpregs[30], 8);
- }
+ /* Generate output for the FPU control/status registers. */
+ hexvalue (ctx->__fpregs_mem.cw, fpregs[0], 8);
+ hexvalue (ctx->__fpregs_mem.sw, fpregs[1], 8);
+ hexvalue (ctx->__fpregs_mem.tag, fpregs[2], 8);
+ hexvalue (ctx->__fpregs_mem.ipoff, fpregs[3], 8);
+ hexvalue (ctx->__fpregs_mem.cssel, fpregs[4], 4);
+ hexvalue (ctx->__fpregs_mem.dataoff, fpregs[5], 8);
+ hexvalue (ctx->__fpregs_mem.datasel, fpregs[6], 4);
+
+ ADD_STRING ("\n\n FPUCW: ");
+ ADD_MEM (fpregs[0], 8);
+ ADD_STRING (" FPUSW: ");
+ ADD_MEM (fpregs[1], 8);
+ ADD_STRING (" TAG: ");
+ ADD_MEM (fpregs[2], 8);
+ ADD_STRING ("\n IPOFF: ");
+ ADD_MEM (fpregs[3], 8);
+ ADD_STRING (" CSSEL: ");
+ ADD_MEM (fpregs[4], 4);
+ ADD_STRING (" DATAOFF: ");
+ ADD_MEM (fpregs[5], 8);
+ ADD_STRING (" DATASEL: ");
+ ADD_MEM (fpregs[6], 4);
+
+ /* Now the real FPU registers. */
+ hexvalue (ctx->__fpregs_mem._st[0].exponent, fpregs[7], 8);
+ hexvalue (ctx->__fpregs_mem._st[0].significand[3] << 16
+ | ctx->__fpregs_mem._st[0].significand[2], fpregs[8], 8);
+ hexvalue (ctx->__fpregs_mem._st[0].significand[1] << 16
+ | ctx->__fpregs_mem._st[0].significand[0], fpregs[9], 8);
+ hexvalue (ctx->__fpregs_mem._st[1].exponent, fpregs[10], 8);
+ hexvalue (ctx->__fpregs_mem._st[1].significand[3] << 16
+ | ctx->__fpregs_mem._st[1].significand[2], fpregs[11], 8);
+ hexvalue (ctx->__fpregs_mem._st[1].significand[1] << 16
+ | ctx->__fpregs_mem._st[1].significand[0], fpregs[12], 8);
+ hexvalue (ctx->__fpregs_mem._st[2].exponent, fpregs[13], 8);
+ hexvalue (ctx->__fpregs_mem._st[2].significand[3] << 16
+ | ctx->__fpregs_mem._st[2].significand[2], fpregs[14], 8);
+ hexvalue (ctx->__fpregs_mem._st[2].significand[1] << 16
+ | ctx->__fpregs_mem._st[2].significand[0], fpregs[15], 8);
+ hexvalue (ctx->__fpregs_mem._st[3].exponent, fpregs[16], 8);
+ hexvalue (ctx->__fpregs_mem._st[3].significand[3] << 16
+ | ctx->__fpregs_mem._st[3].significand[2], fpregs[17], 8);
+ hexvalue (ctx->__fpregs_mem._st[3].significand[1] << 16
+ | ctx->__fpregs_mem._st[3].significand[0], fpregs[18], 8);
+ hexvalue (ctx->__fpregs_mem._st[4].exponent, fpregs[19], 8);
+ hexvalue (ctx->__fpregs_mem._st[4].significand[3] << 16
+ | ctx->__fpregs_mem._st[4].significand[2], fpregs[20], 8);
+ hexvalue (ctx->__fpregs_mem._st[4].significand[1] << 16
+ | ctx->__fpregs_mem._st[4].significand[0], fpregs[21], 8);
+ hexvalue (ctx->__fpregs_mem._st[5].exponent, fpregs[22], 8);
+ hexvalue (ctx->__fpregs_mem._st[5].significand[3] << 16
+ | ctx->__fpregs_mem._st[5].significand[2], fpregs[23], 8);
+ hexvalue (ctx->__fpregs_mem._st[5].significand[1] << 16
+ | ctx->__fpregs_mem._st[5].significand[0], fpregs[24], 8);
+ hexvalue (ctx->__fpregs_mem._st[6].exponent, fpregs[25], 8);
+ hexvalue (ctx->__fpregs_mem._st[6].significand[3] << 16
+ | ctx->__fpregs_mem._st[6].significand[2], fpregs[26], 8);
+ hexvalue (ctx->__fpregs_mem._st[6].significand[1] << 16
+ | ctx->__fpregs_mem._st[6].significand[0], fpregs[27], 8);
+ hexvalue (ctx->__fpregs_mem._st[7].exponent, fpregs[28], 8);
+ hexvalue (ctx->__fpregs_mem._st[7].significand[3] << 16
+ | ctx->__fpregs_mem._st[7].significand[2], fpregs[29], 8);
+ hexvalue (ctx->__fpregs_mem._st[7].significand[1] << 16
+ | ctx->__fpregs_mem._st[7].significand[0], fpregs[30], 8);
+
+ ADD_STRING ("\n\n ST(0) ");
+ ADD_MEM (fpregs[7], 4);
+ ADD_STRING (" ");
+ ADD_MEM (fpregs[8], 8);
+ ADD_MEM (fpregs[9], 8);
+ ADD_STRING (" ST(1) ");
+ ADD_MEM (fpregs[10], 4);
+ ADD_STRING (" ");
+ ADD_MEM (fpregs[11], 8);
+ ADD_MEM (fpregs[12], 8);
+ ADD_STRING ("\n ST(2) ");
+ ADD_MEM (fpregs[13], 4);
+ ADD_STRING (" ");
+ ADD_MEM (fpregs[14], 8);
+ ADD_MEM (fpregs[15], 8);
+ ADD_STRING (" ST(3) ");
+ ADD_MEM (fpregs[16], 4);
+ ADD_STRING (" ");
+ ADD_MEM (fpregs[17], 8);
+ ADD_MEM (fpregs[18], 8);
+ ADD_STRING ("\n ST(4) ");
+ ADD_MEM (fpregs[19], 4);
+ ADD_STRING (" ");
+ ADD_MEM (fpregs[20], 8);
+ ADD_MEM (fpregs[21], 8);
+ ADD_STRING (" ST(5) ");
+ ADD_MEM (fpregs[22], 4);
+ ADD_STRING (" ");
+ ADD_MEM (fpregs[23], 8);
+ ADD_MEM (fpregs[24], 8);
+ ADD_STRING ("\n ST(6) ");
+ ADD_MEM (fpregs[25], 4);
+ ADD_STRING (" ");
+ ADD_MEM (fpregs[26], 8);
+ ADD_MEM (fpregs[27], 8);
+ ADD_STRING (" ST(7) ");
+ ADD_MEM (fpregs[28], 4);
+ ADD_STRING (" ");
+ ADD_MEM (fpregs[29], 8);
+ ADD_MEM (fpregs[30], 8);
ADD_STRING ("\n");
@@ -252,4 +248,4 @@ register_dump (int fd, struct sigcontext *ctx)
}
-#define REGISTER_DUMP register_dump (fd, &ctx)
+#define REGISTER_DUMP register_dump (fd, ctx)
diff --git a/sysdeps/unix/sysv/linux/i386/setcontext.S b/sysdeps/unix/sysv/linux/i386/setcontext.S
index a604fca0ac..dffe1d18e7 100644
--- a/sysdeps/unix/sysv/linux/i386/setcontext.S
+++ b/sysdeps/unix/sysv/linux/i386/setcontext.S
@@ -1,5 +1,5 @@
/* Install given context.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/i386/sigaction.c b/sysdeps/unix/sysv/linux/i386/sigaction.c
index df9fa0ca5b..4409ff5a31 100644
--- a/sysdeps/unix/sysv/linux/i386/sigaction.c
+++ b/sysdeps/unix/sysv/linux/i386/sigaction.c
@@ -1,5 +1,5 @@
/* POSIX.1 `sigaction' call for Linux/i386.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <signal.h>
#include <ldsodefs.h>
diff --git a/sysdeps/unix/sysv/linux/i386/sigcontextinfo.h b/sysdeps/unix/sysv/linux/i386/sigcontextinfo.h
index 5dee976814..aabddf18d6 100644
--- a/sysdeps/unix/sysv/linux/i386/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/i386/sigcontextinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@@ -14,7 +14,15 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#define SIGCONTEXT struct sigcontext
-#define GET_PC(ctx) ((void *) ctx.eip)
+#ifndef _SIGCONTEXTINFO_H
+#define _SIGCONTEXTINFO_H
+
+static inline uintptr_t
+sigcontext_get_pc (const ucontext_t *ctx)
+{
+ return ctx->uc_mcontext.gregs[REG_EIP];
+}
+
+#endif
diff --git a/sysdeps/unix/sysv/linux/i386/smp.h b/sysdeps/unix/sysv/linux/i386/smp.h
index 5457bb27d3..618191f629 100644
--- a/sysdeps/unix/sysv/linux/i386/smp.h
+++ b/sysdeps/unix/sysv/linux/i386/smp.h
@@ -1,5 +1,5 @@
/* Determine whether the host has multiple processors. Linux version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
- not, see <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/sysdeps/unix/sysv/linux/i386/startup.h b/sysdeps/unix/sysv/linux/i386/startup.h
index ecc82aa090..de0662a2a9 100644
--- a/sysdeps/unix/sysv/linux/i386/startup.h
+++ b/sysdeps/unix/sysv/linux/i386/startup.h
@@ -1,5 +1,5 @@
/* Linux/i386 definitions of functions used by static libc main startup.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if BUILD_PIE_DEFAULT
# include <abort-instr.h>
diff --git a/sysdeps/unix/sysv/linux/i386/swapcontext.S b/sysdeps/unix/sysv/linux/i386/swapcontext.S
index 431f22c708..6fdc176535 100644
--- a/sysdeps/unix/sysv/linux/i386/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/i386/swapcontext.S
@@ -1,5 +1,5 @@
/* Save current context and install the given one.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/i386/syscall.S b/sysdeps/unix/sysv/linux/i386/syscall.S
index 03d4573507..b2e00395c8 100644
--- a/sysdeps/unix/sysv/linux/i386/syscall.S
+++ b/sysdeps/unix/sysv/linux/i386/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/i386/sysdep.c b/sysdeps/unix/sysv/linux/i386/sysdep.c
index b809628901..1927a98434 100644
--- a/sysdeps/unix/sysv/linux/i386/sysdep.c
+++ b/sysdeps/unix/sysv/linux/i386/sysdep.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2015-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/i386/sysdep.h b/sysdeps/unix/sysv/linux/i386/sysdep.h
index 3255cc78b8..7066ddc214 100644
--- a/sysdeps/unix/sysv/linux/i386/sysdep.h
+++ b/sysdeps/unix/sysv/linux/i386/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper, <drepper@gnu.org>, August 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LINUX_I386_SYSDEP_H
#define _LINUX_I386_SYSDEP_H 1
@@ -309,9 +309,12 @@ struct libc_do_syscall_args
#define INLINE_SYSCALL_ERROR_RETURN_VALUE(resultvar) \
__syscall_error (-(resultvar))
+# define VDSO_NAME "LINUX_2.6"
+# define VDSO_HASH 61765110
+
/* List of system calls which are supported as vsyscalls. */
-# define HAVE_CLOCK_GETTIME_VSYSCALL 1
-# define HAVE_GETTIMEOFDAY_VSYSCALL 1
+# define HAVE_CLOCK_GETTIME_VSYSCALL "__vdso_clock_gettime"
+# define HAVE_GETTIMEOFDAY_VSYSCALL "__vdso_gettimeofday"
/* Define a macro which expands inline into the wrapper code for a system
call. This use is for internal calls that do not need to handle errors
diff --git a/sysdeps/unix/sysv/linux/i386/time.c b/sysdeps/unix/sysv/linux/i386/time.c
deleted file mode 100644
index 5f6f8b7734..0000000000
--- a/sysdeps/unix/sysv/linux/i386/time.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* time -- Get number of seconds since Epoch. Linux/i386 version.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifdef SHARED
-# define time __redirect_time
-#endif
-
-#include <time.h>
-
-#ifdef SHARED
-# undef time
-# define time_type __redirect_time
-
-# undef libc_hidden_def
-# define libc_hidden_def(name) \
- __hidden_ver1 (__time_syscall, __GI_time, __time_syscall);
-#endif
-
-#include <sysdeps/unix/sysv/linux/x86/time.c>
diff --git a/sysdeps/unix/sysv/linux/i386/tst-bz21269.c b/sysdeps/unix/sysv/linux/i386/tst-bz21269.c
index 6ee3fc62be..8b82ccf43b 100644
--- a/sysdeps/unix/sysv/linux/i386/tst-bz21269.c
+++ b/sysdeps/unix/sysv/linux/i386/tst-bz21269.c
@@ -1,5 +1,5 @@
/* Test for i386 sigaction sa_restorer handling (BZ#21269)
- Copyright (C) 2017 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This is based on Linux test tools/testing/selftests/x86/ldt_gdt.c,
more specifically in do_multicpu_tests function. The main changes
diff --git a/sysdeps/unix/sysv/linux/i386/vfork.S b/sysdeps/unix/sysv/linux/i386/vfork.S
index ce6dbfac48..d1e5fce6ff 100644
--- a/sysdeps/unix/sysv/linux/i386/vfork.S
+++ b/sysdeps/unix/sysv/linux/i386/vfork.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@gnu.org>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#define _ERRNO_H 1
diff --git a/sysdeps/unix/sysv/linux/i386/xstat.c b/sysdeps/unix/sysv/linux/i386/xstat.c
index eea1bea046..5adda11c86 100644
--- a/sysdeps/unix/sysv/linux/i386/xstat.c
+++ b/sysdeps/unix/sysv/linux/i386/xstat.c
@@ -1,5 +1,5 @@
/* xstat using old-style Unix stat system call.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Ho hum, if xstat == xstat64 we must get rid of the prototype or gcc
will complain since they don't strictly match. */
diff --git a/sysdeps/unix/sysv/linux/ia64/____longjmp_chk.S b/sysdeps/unix/sysv/linux/ia64/____longjmp_chk.S
index 6fbf4a631d..2e9c25f73c 100644
--- a/sysdeps/unix/sysv/linux/ia64/____longjmp_chk.S
+++ b/sysdeps/unix/sysv/linux/ia64/____longjmp_chk.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sigaltstack-offsets.h>
diff --git a/sysdeps/unix/sysv/linux/ia64/__ia64_longjmp.S b/sysdeps/unix/sysv/linux/ia64/__ia64_longjmp.S
index 6b5d05b05f..7f46bd3f9f 100644
--- a/sysdeps/unix/sysv/linux/ia64/__ia64_longjmp.S
+++ b/sysdeps/unix/sysv/linux/ia64/__ia64_longjmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
Contributed by David Mosberger-Tang <davidm@hpl.hp.com>.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <features.h>
diff --git a/sysdeps/unix/sysv/linux/ia64/__longjmp.S b/sysdeps/unix/sysv/linux/ia64/__longjmp.S
index b66caeca2a..a2b659325e 100644
--- a/sysdeps/unix/sysv/linux/ia64/__longjmp.S
+++ b/sysdeps/unix/sysv/linux/ia64/__longjmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
Contributed by David Mosberger-Tang <davidm@hpl.hp.com>.
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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
Note that __sigsetjmp() did NOT flush the register stack. Instead,
we do it here since __longjmp() is usually much less frequently
diff --git a/sysdeps/unix/sysv/linux/ia64/__sigstack_longjmp.c b/sysdeps/unix/sysv/linux/ia64/__sigstack_longjmp.c
index efe43535c6..c0c623068b 100644
--- a/sysdeps/unix/sysv/linux/ia64/__sigstack_longjmp.c
+++ b/sysdeps/unix/sysv/linux/ia64/__sigstack_longjmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Mosberger-Tang <davidm@hpl.hp.com>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* The public __longjmp() implementation is limited to jumping within
the same stack. That is, in general it is not possible to use this
diff --git a/sysdeps/unix/sysv/linux/ia64/__start_context.S b/sysdeps/unix/sysv/linux/ia64/__start_context.S
index 0271b2ed46..2aace2628a 100644
--- a/sysdeps/unix/sysv/linux/ia64/__start_context.S
+++ b/sysdeps/unix/sysv/linux/ia64/__start_context.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Mosberger-Tang <davidm@hpl.hp.com>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <features.h>
diff --git a/sysdeps/unix/sysv/linux/ia64/bits/endian.h b/sysdeps/unix/sysv/linux/ia64/bits/endian.h
deleted file mode 100644
index 98a5e23991..0000000000
--- a/sysdeps/unix/sysv/linux/ia64/bits/endian.h
+++ /dev/null
@@ -1,7 +0,0 @@
-/* Linux/ia64 is little-endian. */
-
-#ifndef _ENDIAN_H
-# error "Never use <bits/endian.h> directly; include <endian.h> instead."
-#endif
-
-#define __BYTE_ORDER __LITTLE_ENDIAN
diff --git a/sysdeps/unix/sysv/linux/ia64/bits/fcntl.h b/sysdeps/unix/sysv/linux/ia64/bits/fcntl.h
index 7790c09693..5303b06116 100644
--- a/sysdeps/unix/sysv/linux/ia64/bits/fcntl.h
+++ b/sysdeps/unix/sysv/linux/ia64/bits/fcntl.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for Linux/IA64.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FCNTL_H
# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
diff --git a/sysdeps/unix/sysv/linux/ia64/bits/ipc.h b/sysdeps/unix/sysv/linux/ia64/bits/ipc.h
deleted file mode 100644
index 4f5bd2f09d..0000000000
--- a/sysdeps/unix/sysv/linux/ia64/bits/ipc.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_IPC_H
-# error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
-#endif
-
-#include <sys/types.h>
-
-/* Mode bits for `msgget', `semget', and `shmget'. */
-#define IPC_CREAT 01000 /* Create key if key does not exist. */
-#define IPC_EXCL 02000 /* Fail if key exists. */
-#define IPC_NOWAIT 04000 /* Return error on wait. */
-
-/* Control commands for `msgctl', `semctl', and `shmctl'. */
-#define IPC_RMID 0 /* Remove identifier. */
-#define IPC_SET 1 /* Set `ipc_perm' options. */
-#define IPC_STAT 2 /* Get `ipc_perm' options. */
-#define IPC_INFO 3 /* See ipcs. */
-
-/* Special key values. */
-#define IPC_PRIVATE ((__key_t) 0) /* Private key. */
-
-
-/* Data structure used to pass permission information to IPC operations. */
-struct ipc_perm
- {
- __key_t __key; /* Key. */
- __uid_t uid; /* Owner's user ID. */
- __gid_t gid; /* Owner's group ID. */
- __uid_t cuid; /* Creator's user ID. */
- __gid_t cgid; /* Creator's group ID. */
- __mode_t mode; /* Read/write permission. */
- unsigned short int __seq; /* Sequence number. */
- unsigned short int __pad1;
- unsigned long int __glibc_reserved1;
- unsigned long int __glibc_reserved2;
- };
diff --git a/sysdeps/unix/sysv/linux/ia64/bits/local_lim.h b/sysdeps/unix/sysv/linux/ia64/bits/local_lim.h
index 80c61ed4f0..5d6ed66393 100644
--- a/sysdeps/unix/sysv/linux/ia64/bits/local_lim.h
+++ b/sysdeps/unix/sysv/linux/ia64/bits/local_lim.h
@@ -1,5 +1,5 @@
/* Minimum guaranteed maximum values for system limits. Linux/IA-64 version.
- Copyright (C) 1993-2018 Free Software Foundation, Inc.
+ Copyright (C) 1993-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* The kernel header pollutes the namespace with the NR_OPEN symbol
and defines LINK_MAX although filesystems have different maxima. A
diff --git a/sysdeps/unix/sysv/linux/ia64/bits/mman.h b/sysdeps/unix/sysv/linux/ia64/bits/mman.h
index 51071fda56..f80095193c 100644
--- a/sysdeps/unix/sysv/linux/ia64/bits/mman.h
+++ b/sysdeps/unix/sysv/linux/ia64/bits/mman.h
@@ -1,5 +1,5 @@
/* Definitions for POSIX memory map interface. Linux/ia64 version.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_MMAN_H
# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
@@ -25,21 +25,10 @@
/* These are Linux-specific. */
#ifdef __USE_MISC
-# define MAP_GROWSDOWN 0x00100 /* Stack-like segment. */
# define MAP_GROWSUP 0x00200 /* Register stack-like segment */
-# define MAP_DENYWRITE 0x00800 /* ETXTBSY */
-# define MAP_EXECUTABLE 0x01000 /* Mark it as an executable. */
-# define MAP_LOCKED 0x02000 /* Lock the mapping. */
-# define MAP_NORESERVE 0x04000 /* Don't check for reservations. */
-# define MAP_POPULATE 0x08000 /* Populate (prefault) pagetables. */
-# define MAP_NONBLOCK 0x10000 /* Do not block on IO. */
-# define MAP_STACK 0x20000 /* Allocation is for a stack. */
-# define MAP_HUGETLB 0x40000 /* Create huge page mapping. */
-# define MAP_SYNC 0x80000 /* Perform synchronous page
- faults for the mapping. */
-# define MAP_FIXED_NOREPLACE 0x100000 /* MAP_FIXED but do not unmap
- underlying mapping. */
#endif
+#include <bits/mman-map-flags-generic.h>
+
/* Include generic Linux declarations. */
#include <bits/mman-linux.h>
diff --git a/sysdeps/unix/sysv/linux/ia64/bits/msq.h b/sysdeps/unix/sysv/linux/ia64/bits/msq.h
deleted file mode 100644
index acf64e8fd9..0000000000
--- a/sysdeps/unix/sysv/linux/ia64/bits/msq.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contribute by David Mosberger-Tang <davidm@hpl.hp.com>
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_MSG_H
-#error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
-#endif
-
-#include <bits/types.h>
-
-/* Define options for message queue functions. */
-#define MSG_NOERROR 010000 /* no error if message is too big */
-#ifdef __USE_GNU
-# define MSG_EXCEPT 020000 /* recv any msg except of specified type */
-# define MSG_COPY 040000 /* copy (not remove) all queue messages */
-#endif
-
-/* Types used in the structure definition. */
-typedef unsigned long int msgqnum_t;
-typedef unsigned long int msglen_t;
-
-
-/* Structure of record for one message inside the kernel.
- The type `struct msg' is opaque. */
-struct msqid_ds
-{
- struct ipc_perm msg_perm; /* structure describing operation permission */
- __time_t msg_stime; /* time of last msgsnd command */
- __time_t msg_rtime; /* time of last msgrcv command */
- __time_t msg_ctime; /* time of last change */
- unsigned long int __msg_cbytes; /* current number of bytes on queue */
- msgqnum_t msg_qnum; /* number of messages currently on queue */
- msglen_t msg_qbytes; /* max number of bytes allowed on queue */
- __pid_t msg_lspid; /* pid of last msgsnd() */
- __pid_t msg_lrpid; /* pid of last msgrcv() */
- unsigned long int __glibc_reserved1;
- unsigned long int __glibc_reserved2;
-};
-
-#ifdef __USE_MISC
-
-# define msg_cbytes __msg_cbytes
-
-/* ipcs ctl commands */
-# define MSG_STAT 11
-# define MSG_INFO 12
-# define MSG_STAT_ANY 13
-
-/* buffer for msgctl calls IPC_INFO, MSG_INFO */
-struct msginfo
- {
- int msgpool;
- int msgmap;
- int msgmax;
- int msgmnb;
- int msgmni;
- int msgssz;
- int msgtql;
- unsigned short int msgseg;
- };
-
-#endif /* __USE_MISC */
diff --git a/sysdeps/unix/sysv/linux/ia64/bits/procfs.h b/sysdeps/unix/sysv/linux/ia64/bits/procfs.h
new file mode 100644
index 0000000000..13cd1ce566
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/ia64/bits/procfs.h
@@ -0,0 +1,41 @@
+/* Types for registers for sys/procfs.h. IA64 version.
+ Copyright (C) 1999-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PROCFS_H
+# error "Never include <bits/procfs.h> directly; use <sys/procfs.h> instead."
+#endif
+
+#include <signal.h>
+#include <sys/ucontext.h>
+#include <bits/sigcontext.h>
+
+/* We really need just 72 but let's leave some headroom... */
+#define ELF_NGREG 128
+/* f0 and f1 could be omitted, but so what... */
+#define ELF_NFPREG 128
+
+typedef unsigned long elf_greg_t;
+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
+
+typedef struct __ia64_fpreg elf_fpreg_t;
+typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
+
+typedef elf_greg_t greg_t;
+typedef elf_gregset_t gregset_t;
+typedef elf_fpregset_t fpregset_t;
+#define NGREG ELF_NGREG
diff --git a/sysdeps/unix/sysv/linux/ia64/bits/sem.h b/sysdeps/unix/sysv/linux/ia64/bits/sem.h
deleted file mode 100644
index e2637076ae..0000000000
--- a/sysdeps/unix/sysv/linux/ia64/bits/sem.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_SEM_H
-# error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
-#endif
-
-#include <sys/types.h>
-
-/* Flags for `semop'. */
-#define SEM_UNDO 0x1000 /* undo the operation on exit */
-
-/* Commands for `semctl'. */
-#define GETPID 11 /* get sempid */
-#define GETVAL 12 /* get semval */
-#define GETALL 13 /* get all semval's */
-#define GETNCNT 14 /* get semncnt */
-#define GETZCNT 15 /* get semzcnt */
-#define SETVAL 16 /* set semval */
-#define SETALL 17 /* set all semval's */
-
-
-/* Data structure describing a set of semaphores. */
-struct semid_ds
-{
- struct ipc_perm sem_perm; /* operation permission struct */
- __time_t sem_otime; /* last semop() time */
- __time_t sem_ctime; /* last time changed by semctl() */
- unsigned long int sem_nsems; /* number of semaphores in set */
- unsigned long int __glibc_reserved1;
- unsigned long int __glibc_reserved2;
-};
-
-/* The user should define a union like the following to use it for arguments
- for `semctl'.
-
- union semun
- {
- int val; <= value for SETVAL
- struct semid_ds *buf; <= buffer for IPC_STAT & IPC_SET
- unsigned short int *array; <= array for GETALL & SETALL
- struct seminfo *__buf; <= buffer for IPC_INFO
- };
-
- Previous versions of this file used to define this union but this is
- incorrect. One can test the macro _SEM_SEMUN_UNDEFINED to see whether
- one must define the union or not. */
-#define _SEM_SEMUN_UNDEFINED 1
-
-#ifdef __USE_MISC
-
-/* ipcs ctl cmds */
-# define SEM_STAT 18
-# define SEM_INFO 19
-# define SEM_STAT_ANY 20
-
-struct seminfo
-{
- int semmap;
- int semmni;
- int semmns;
- int semmnu;
- int semmsl;
- int semopm;
- int semume;
- int semusz;
- int semvmx;
- int semaem;
-};
-
-#endif /* __USE_MISC */
diff --git a/sysdeps/unix/sysv/linux/ia64/bits/setjmp.h b/sysdeps/unix/sysv/linux/ia64/bits/setjmp.h
index f91a6aea37..ada9d6120e 100644
--- a/sysdeps/unix/sysv/linux/ia64/bits/setjmp.h
+++ b/sysdeps/unix/sysv/linux/ia64/bits/setjmp.h
@@ -1,5 +1,5 @@
/* Define the machine-dependent type `jmp_buf'. Linux/IA-64 version.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Mosberger-Tang <davidm@hpl.hp.com>.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_SETJMP_H
#define _BITS_SETJMP_H 1
diff --git a/sysdeps/unix/sysv/linux/ia64/bits/shm.h b/sysdeps/unix/sysv/linux/ia64/bits/shm.h
deleted file mode 100644
index 814f61bd7e..0000000000
--- a/sysdeps/unix/sysv/linux/ia64/bits/shm.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/* Copyright (C) 2000-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_SHM_H
-# error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
-#endif
-
-#include <sys/types.h>
-
-/* Permission flag for shmget. */
-#define SHM_R 0400 /* or S_IRUGO from <linux/stat.h> */
-#define SHM_W 0200 /* or S_IWUGO from <linux/stat.h> */
-
-/* Flags for `shmat'. */
-#define SHM_RDONLY 010000 /* attach read-only else read-write */
-#define SHM_RND 020000 /* round attach address to SHMLBA */
-#define SHM_REMAP 040000 /* take-over region on attach */
-#define SHM_EXEC 0100000 /* execution access */
-
-/* Commands for `shmctl'. */
-#define SHM_LOCK 11 /* lock segment (root only) */
-#define SHM_UNLOCK 12 /* unlock segment (root only) */
-
-/* Segment low boundary address multiple. */
-#define SHMLBA (1024 * 1024)
-
-/* Type to count number of attaches. */
-typedef unsigned long int shmatt_t;
-
-/* Data structure describing a shared memory segment. */
-struct shmid_ds
- {
- struct ipc_perm shm_perm; /* operation permission struct */
- size_t shm_segsz; /* size of segment in bytes */
- __time_t shm_atime; /* time of last shmat() */
- __time_t shm_dtime; /* time of last shmdt() */
- __time_t shm_ctime; /* time of last change by shmctl() */
- __pid_t shm_cpid; /* pid of creator */
- __pid_t shm_lpid; /* pid of last shmop */
- shmatt_t shm_nattch; /* number of current attaches */
- unsigned long int __glibc_reserved1;
- unsigned long int __glibc_reserved2;
- };
-
-#ifdef __USE_MISC
-
-/* ipcs ctl commands */
-# define SHM_STAT 13
-# define SHM_INFO 14
-# define SHM_STAT_ANY 15
-
-/* shm_mode upper byte flags */
-# define SHM_DEST 01000 /* segment will be destroyed on last detach */
-# define SHM_LOCKED 02000 /* segment will not be swapped */
-# define SHM_HUGETLB 04000 /* segment is mapped via hugetlb */
-# define SHM_NORESERVE 010000 /* don't check for reservations */
-
-struct shminfo
- {
- unsigned long int shmmax;
- unsigned long int shmmin;
- unsigned long int shmmni;
- unsigned long int shmseg;
- unsigned long int shmall;
- unsigned long int __glibc_reserved1;
- unsigned long int __glibc_reserved2;
- unsigned long int __glibc_reserved3;
- unsigned long int __glibc_reserved4;
- };
-
-struct shm_info
- {
- int used_ids;
- unsigned long int shm_tot; /* total allocated shm */
- unsigned long int shm_rss; /* total resident shm */
- unsigned long int shm_swp; /* total swapped shm */
- unsigned long int swap_attempts;
- unsigned long int swap_successes;
- };
-
-#endif /* __USE_MISC */
diff --git a/sysdeps/unix/sysv/linux/ia64/bits/shmlba.h b/sysdeps/unix/sysv/linux/ia64/bits/shmlba.h
new file mode 100644
index 0000000000..e824a27918
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/ia64/bits/shmlba.h
@@ -0,0 +1,24 @@
+/* Define SHMLBA. IA64 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SHM_H
+# error "Never use <bits/shmlba.h> directly; include <sys/shm.h> instead."
+#endif
+
+/* Segment low boundary address multiple. */
+#define SHMLBA (1024 * 1024)
diff --git a/sysdeps/unix/sysv/linux/ia64/bits/sigaction.h b/sysdeps/unix/sysv/linux/ia64/bits/sigaction.h
index 76edba2deb..19aec06a50 100644
--- a/sysdeps/unix/sysv/linux/ia64/bits/sigaction.h
+++ b/sysdeps/unix/sysv/linux/ia64/bits/sigaction.h
@@ -1,5 +1,5 @@
/* Definitions for Linux/ia64 sigaction.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_SIGACTION_H
#define _BITS_SIGACTION_H 1
diff --git a/sysdeps/unix/sysv/linux/ia64/bits/sigcontext.h b/sysdeps/unix/sysv/linux/ia64/bits/sigcontext.h
index 130a8fa63c..e7f03a4a29 100644
--- a/sysdeps/unix/sysv/linux/ia64/bits/sigcontext.h
+++ b/sysdeps/unix/sysv/linux/ia64/bits/sigcontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jes Sorensen <jes@linuxcare.com>, July 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_SIGCONTEXT_H
#define _BITS_SIGCONTEXT_H 1
diff --git a/sysdeps/unix/sysv/linux/ia64/bits/siginfo-consts-arch.h b/sysdeps/unix/sysv/linux/ia64/bits/siginfo-consts-arch.h
index 4c5c4da516..5ef8af4ac7 100644
--- a/sysdeps/unix/sysv/linux/ia64/bits/siginfo-consts-arch.h
+++ b/sysdeps/unix/sysv/linux/ia64/bits/siginfo-consts-arch.h
@@ -5,9 +5,7 @@
/* `si_code' values for SIGILL signal. */
enum
{
- ILL_BADIADDR = ILL_BADSTK + 1, /* Unimplemented instruction address. */
-#define ILL_BADIADDR ILL_BADIADDR
- ILL_BREAK
+ ILL_BREAK = ILL_BADIADDR + 1
#define ILL_BREAK ILL_BREAK
};
@@ -33,13 +31,4 @@ enum
#define SEGV_PSTKOVF SEGV_PSTKOVF
};
-/* `si_code' values for SIGTRAP signal. */
-enum
-{
- TRAP_BRANCH = TRAP_TRACE + 1,
-#define TRAP_BRANCH TRAP_BRANCH
- TRAP_HWBKPT
-#define TRAP_HWBKPT TRAP_HWBKPT
-};
-
#endif
diff --git a/sysdeps/unix/sysv/linux/ia64/bits/sigstack.h b/sysdeps/unix/sysv/linux/ia64/bits/sigstack.h
index 89d3917c0a..2fc30bf74c 100644
--- a/sysdeps/unix/sysv/linux/ia64/bits/sigstack.h
+++ b/sysdeps/unix/sysv/linux/ia64/bits/sigstack.h
@@ -1,5 +1,5 @@
/* sigstack, sigaltstack definitions.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_SIGSTACK_H
#define _BITS_SIGSTACK_H 1
diff --git a/sysdeps/unix/sysv/linux/ia64/bits/stat.h b/sysdeps/unix/sysv/linux/ia64/bits/stat.h
index 63d8b5c08e..b84191f698 100644
--- a/sysdeps/unix/sysv/linux/ia64/bits/stat.h
+++ b/sysdeps/unix/sysv/linux/ia64/bits/stat.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if !defined _SYS_STAT_H && !defined _FCNTL_H
# error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
diff --git a/sysdeps/unix/sysv/linux/ia64/brk.S b/sysdeps/unix/sysv/linux/ia64/brk.S
index a29a0169b4..884ca2b2ff 100644
--- a/sysdeps/unix/sysv/linux/ia64/brk.S
+++ b/sysdeps/unix/sysv/linux/ia64/brk.S
@@ -1,7 +1,7 @@
/* brk system call for Linux/ia64
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
- Written by Stephane Eranian <eranian@hpl.hp.com> and
+ Written by Stéphane Eranian <eranian@hpl.hp.com> and
Jes Sorensen, <Jes.Sorensen@cern.ch>, April 1999.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/ia64/clone2.S b/sysdeps/unix/sysv/linux/ia64/clone2.S
index b381817dfa..01e9eb931f 100644
--- a/sysdeps/unix/sysv/linux/ia64/clone2.S
+++ b/sysdeps/unix/sysv/linux/ia64/clone2.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/ia64/dl-cache.h b/sysdeps/unix/sysv/linux/ia64/dl-cache.h
index 3bea05fa9c..9d2aa57422 100644
--- a/sysdeps/unix/sysv/linux/ia64/dl-cache.h
+++ b/sysdeps/unix/sysv/linux/ia64/dl-cache.h
@@ -1,5 +1,5 @@
/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _DL_CACHE_DEFAULT_ID 0x203
diff --git a/sysdeps/unix/sysv/linux/ia64/dl-static.c b/sysdeps/unix/sysv/linux/ia64/dl-static.c
index 52c956ac65..aaf09adc0c 100644
--- a/sysdeps/unix/sysv/linux/ia64/dl-static.c
+++ b/sysdeps/unix/sysv/linux/ia64/dl-static.c
@@ -1,5 +1,5 @@
/* Variable initialization. IA-64 version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ldsodefs.h>
diff --git a/sysdeps/unix/sysv/linux/ia64/dl-sysdep.h b/sysdeps/unix/sysv/linux/ia64/dl-sysdep.h
index 977336b871..4447b0a42b 100644
--- a/sysdeps/unix/sysv/linux/ia64/dl-sysdep.h
+++ b/sysdeps/unix/sysv/linux/ia64/dl-sysdep.h
@@ -1,5 +1,5 @@
/* System-specific settings for dynamic linker code. IA-64 version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LINUX_IA64_DL_SYSDEP_H
#define _LINUX_IA64_DL_SYSDEP_H 1
diff --git a/sysdeps/unix/sysv/linux/ia64/get_clockfreq.c b/sysdeps/unix/sysv/linux/ia64/get_clockfreq.c
deleted file mode 100644
index f9d683a902..0000000000
--- a/sysdeps/unix/sysv/linux/ia64/get_clockfreq.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/* Get frequency of the system processor. IA-64/Linux version.
- Copyright (C) 2001-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <ctype.h>
-#include <fcntl.h>
-#include <string.h>
-#include <unistd.h>
-
-
-hp_timing_t
-__get_clockfreq (void)
-{
- /* We read the information from the /proc filesystem. It contains at
- least one line like
- itc MHz : 733.390988
- We search for this line and convert the number in an integer. */
- static hp_timing_t result;
- int fd;
-
- /* If this function was called before, we know the result. */
- if (result != 0)
- return result;
-
- fd = __open ("/proc/cpuinfo", O_RDONLY);
- if (__builtin_expect (fd != -1, 1))
- {
- /* XXX AFAIK the /proc filesystem can generate "files" only up
- to a size of 4096 bytes. */
- char buf[4096];
- ssize_t n;
-
- n = __read (fd, buf, sizeof buf);
- if (__builtin_expect (n, 1) > 0)
- {
- char *mhz = memmem (buf, n, "itc MHz", 7);
-
- if (__builtin_expect (mhz != NULL, 1))
- {
- char *endp = buf + n;
- int seen_decpoint = 0;
- int ndigits = 0;
-
- /* Search for the beginning of the string. */
- while (mhz < endp && (*mhz < '0' || *mhz > '9') && *mhz != '\n')
- ++mhz;
-
- while (mhz < endp && *mhz != '\n')
- {
- if (*mhz >= '0' && *mhz <= '9')
- {
- result *= 10;
- result += *mhz - '0';
- if (seen_decpoint)
- ++ndigits;
- }
- else if (*mhz == '.')
- seen_decpoint = 1;
-
- ++mhz;
- }
-
- /* Compensate for missing digits at the end. */
- while (ndigits++ < 6)
- result *= 10;
- }
- }
-
- __close (fd);
- }
-
- return result;
-}
diff --git a/sysdeps/unix/sysv/linux/ia64/getcontext.S b/sysdeps/unix/sysv/linux/ia64/getcontext.S
index cf1dfe74f1..2f457577f6 100644
--- a/sysdeps/unix/sysv/linux/ia64/getcontext.S
+++ b/sysdeps/unix/sysv/linux/ia64/getcontext.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Mosberger-Tang <davidm@hpl.hp.com>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <features.h>
diff --git a/sysdeps/unix/sysv/linux/ia64/has_cpuclock.c b/sysdeps/unix/sysv/linux/ia64/has_cpuclock.c
deleted file mode 100644
index 75f3ef9f4d..0000000000
--- a/sysdeps/unix/sysv/linux/ia64/has_cpuclock.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Copyright (C) 2000-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <not-cancel.h>
-
-static int itc_usable;
-
-static int
-has_cpuclock (void)
-{
- if (__builtin_expect (itc_usable == 0, 0))
- {
- int newval = 1;
- int fd = __open_nocancel ("/proc/sal/itc_drift", O_RDONLY);
- if (__builtin_expect (fd != -1, 1))
- {
- char buf[16];
- /* We expect the file to contain a single digit followed by
- a newline. If the format changes we better not rely on
- the file content. */
- if (__read_nocancel (fd, buf, sizeof buf) != 2
- || buf[0] != '0' || buf[1] != '\n')
- newval = -1;
-
- __close_nocancel_nostatus (fd);
- }
-
- itc_usable = newval;
- }
-
- return itc_usable;
-}
diff --git a/sysdeps/unix/sysv/linux/ia64/ioperm.c b/sysdeps/unix/sysv/linux/ia64/ioperm.c
index af02a995c1..681fc36767 100644
--- a/sysdeps/unix/sysv/linux/ia64/ioperm.c
+++ b/sysdeps/unix/sysv/linux/ia64/ioperm.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Mosberger-Tang <davidm@hpl.hp.com>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* I/O access is restricted to ISA port space (ports 0..65535).
Modern devices hopefully are sane enough not to put any performance
diff --git a/sysdeps/unix/sysv/linux/ia64/ipc_priv.h b/sysdeps/unix/sysv/linux/ia64/ipc_priv.h
deleted file mode 100644
index 1d877ffdb0..0000000000
--- a/sysdeps/unix/sysv/linux/ia64/ipc_priv.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Old SysV permission definition for Linux. IA64 version.
- Copyright (C) 2017-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sys/ipc.h> /* For __key_t */
-
-#define __IPC_64 0x0
diff --git a/sysdeps/unix/sysv/linux/ia64/kernel-features.h b/sysdeps/unix/sysv/linux/ia64/kernel-features.h
index 4fde73fba1..48a678bc35 100644
--- a/sysdeps/unix/sysv/linux/ia64/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/ia64/kernel-features.h
@@ -1,6 +1,6 @@
/* Set flags signalling availability of kernel features based on given
kernel version number.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _KERNEL_FEATURES_H
#define _KERNEL_FEATURES_H 1
@@ -26,8 +26,10 @@
#define __ASSUME_SEND_SYSCALL 1
#define __ASSUME_ACCEPT4_SYSCALL 1
-/* No statx system call on ia64 yet. */
-#undef __ASSUME_STATX
+/* Support for statx was added in 5.1. */
+#if __LINUX_KERNEL_VERSION < 0x050100
+# undef __ASSUME_STATX
+#endif
#undef __ASSUME_CLONE_DEFAULT
#define __ASSUME_CLONE2
diff --git a/sysdeps/unix/sysv/linux/ia64/kernel_sigaction.h b/sysdeps/unix/sysv/linux/ia64/kernel_sigaction.h
deleted file mode 100644
index fc9f29603c..0000000000
--- a/sysdeps/unix/sysv/linux/ia64/kernel_sigaction.h
+++ /dev/null
@@ -1,7 +0,0 @@
-/* This is the sigaction structure from the Linux 3.2 kernel. */
-struct kernel_sigaction
-{
- __sighandler_t k_sa_handler;
- unsigned long sa_flags;
- sigset_t sa_mask; /* mask last for extensibility */
-};
diff --git a/sysdeps/unix/sysv/linux/ia64/kernel_stat.h b/sysdeps/unix/sysv/linux/ia64/kernel_stat.h
index 98adda41fc..898cfd12a3 100644
--- a/sysdeps/unix/sysv/linux/ia64/kernel_stat.h
+++ b/sysdeps/unix/sysv/linux/ia64/kernel_stat.h
@@ -1,5 +1,5 @@
/* Definition of `struct stat' used in the kernel.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define STAT_IS_KERNEL_STAT 1
#define XSTAT_IS_XSTAT64 1
diff --git a/sysdeps/unix/sysv/linux/ia64/ldconfig.h b/sysdeps/unix/sysv/linux/ia64/ldconfig.h
index d97ace388c..0e1d52a095 100644
--- a/sysdeps/unix/sysv/linux/ia64/ldconfig.h
+++ b/sysdeps/unix/sysv/linux/ia64/ldconfig.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/generic/ldconfig.h>
diff --git a/sysdeps/unix/sysv/linux/ia64/ldsodefs.h b/sysdeps/unix/sysv/linux/ia64/ldsodefs.h
index 3bdc347b6d..d8e87e63ca 100644
--- a/sysdeps/unix/sysv/linux/ia64/ldsodefs.h
+++ b/sysdeps/unix/sysv/linux/ia64/ldsodefs.h
@@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects. IA64.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LDSODEFS_H
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 50c94adff9..cb556c5998 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -627,6 +627,11 @@ GLIBC_2.2 clntudp_bufcreate F
GLIBC_2.2 clntudp_create F
GLIBC_2.2 clntunix_create F
GLIBC_2.2 clock F
+GLIBC_2.2 clock_getcpuclockid F
+GLIBC_2.2 clock_getres F
+GLIBC_2.2 clock_gettime F
+GLIBC_2.2 clock_nanosleep F
+GLIBC_2.2 clock_settime F
GLIBC_2.2 close F
GLIBC_2.2 closedir F
GLIBC_2.2 closelog F
@@ -1914,6 +1919,9 @@ GLIBC_2.28 thrd_current F
GLIBC_2.28 thrd_equal F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
+GLIBC_2.29 getcpu F
+GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
+GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
GLIBC_2.3 __ctype_b_loc F
GLIBC_2.3 __ctype_tolower_loc F
GLIBC_2.3 __ctype_toupper_loc F
@@ -2066,6 +2074,10 @@ GLIBC_2.3.4 setipv4sourcefilter F
GLIBC_2.3.4 setsourcefilter F
GLIBC_2.3.4 xdr_quad_t F
GLIBC_2.3.4 xdr_u_quad_t F
+GLIBC_2.30 getdents64 F
+GLIBC_2.30 gettid F
+GLIBC_2.30 tgkill F
+GLIBC_2.30 twalk_r F
GLIBC_2.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
GLIBC_2.4 __fgets_unlocked_chk F
diff --git a/sysdeps/unix/sysv/linux/ia64/libm.abilist b/sysdeps/unix/sysv/linux/ia64/libm.abilist
index 33a99ff678..0cf637f248 100644
--- a/sysdeps/unix/sysv/linux/ia64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libm.abilist
@@ -1005,3 +1005,24 @@ GLIBC_2.28 fmul F
GLIBC_2.28 fmull F
GLIBC_2.28 fsub F
GLIBC_2.28 fsubl F
+GLIBC_2.29 exp F
+GLIBC_2.29 exp2 F
+GLIBC_2.29 log F
+GLIBC_2.29 log2 F
+GLIBC_2.29 pow F
+GLIBC_2.31 totalorder F
+GLIBC_2.31 totalorderf F
+GLIBC_2.31 totalorderf128 F
+GLIBC_2.31 totalorderf32 F
+GLIBC_2.31 totalorderf32x F
+GLIBC_2.31 totalorderf64 F
+GLIBC_2.31 totalorderf64x F
+GLIBC_2.31 totalorderl F
+GLIBC_2.31 totalordermag F
+GLIBC_2.31 totalordermagf F
+GLIBC_2.31 totalordermagf128 F
+GLIBC_2.31 totalordermagf32 F
+GLIBC_2.31 totalordermagf32x F
+GLIBC_2.31 totalordermagf64 F
+GLIBC_2.31 totalordermagf64x F
+GLIBC_2.31 totalordermagl F
diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
index ccc9449826..4c844da957 100644
--- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
@@ -46,7 +46,6 @@ GLIBC_2.2 __read F
GLIBC_2.2 __res_state F
GLIBC_2.2 __send F
GLIBC_2.2 __sigaction F
-GLIBC_2.2 __vfork F
GLIBC_2.2 __wait F
GLIBC_2.2 __write F
GLIBC_2.2 _pthread_cleanup_pop F
@@ -66,28 +65,19 @@ GLIBC_2.2 longjmp F
GLIBC_2.2 lseek F
GLIBC_2.2 lseek64 F
GLIBC_2.2 msync F
-GLIBC_2.2 nanosleep F
GLIBC_2.2 open F
GLIBC_2.2 open64 F
GLIBC_2.2 pause F
GLIBC_2.2 pread F
GLIBC_2.2 pread64 F
GLIBC_2.2 pthread_atfork F
-GLIBC_2.2 pthread_attr_destroy F
-GLIBC_2.2 pthread_attr_getdetachstate F
GLIBC_2.2 pthread_attr_getguardsize F
-GLIBC_2.2 pthread_attr_getinheritsched F
-GLIBC_2.2 pthread_attr_getschedparam F
GLIBC_2.2 pthread_attr_getschedpolicy F
GLIBC_2.2 pthread_attr_getscope F
GLIBC_2.2 pthread_attr_getstack F
GLIBC_2.2 pthread_attr_getstackaddr F
GLIBC_2.2 pthread_attr_getstacksize F
-GLIBC_2.2 pthread_attr_init F
-GLIBC_2.2 pthread_attr_setdetachstate F
GLIBC_2.2 pthread_attr_setguardsize F
-GLIBC_2.2 pthread_attr_setinheritsched F
-GLIBC_2.2 pthread_attr_setschedparam F
GLIBC_2.2 pthread_attr_setschedpolicy F
GLIBC_2.2 pthread_attr_setscope F
GLIBC_2.2 pthread_attr_setstack F
@@ -112,7 +102,6 @@ GLIBC_2.2 pthread_condattr_init F
GLIBC_2.2 pthread_condattr_setpshared F
GLIBC_2.2 pthread_create F
GLIBC_2.2 pthread_detach F
-GLIBC_2.2 pthread_equal F
GLIBC_2.2 pthread_exit F
GLIBC_2.2 pthread_getconcurrency F
GLIBC_2.2 pthread_getcpuclockid F
@@ -153,7 +142,6 @@ GLIBC_2.2 pthread_rwlockattr_getpshared F
GLIBC_2.2 pthread_rwlockattr_init F
GLIBC_2.2 pthread_rwlockattr_setkind_np F
GLIBC_2.2 pthread_rwlockattr_setpshared F
-GLIBC_2.2 pthread_self F
GLIBC_2.2 pthread_setcancelstate F
GLIBC_2.2 pthread_setcanceltype F
GLIBC_2.2 pthread_setconcurrency F
@@ -192,12 +180,11 @@ GLIBC_2.2 siglongjmp F
GLIBC_2.2 sigwait F
GLIBC_2.2 system F
GLIBC_2.2 tcdrain F
-GLIBC_2.2 vfork F
GLIBC_2.2 wait F
GLIBC_2.2 waitpid F
GLIBC_2.2 write F
GLIBC_2.2.3 pthread_getattr_np F
-GLIBC_2.2.6 __nanosleep F
+GLIBC_2.2.6 __libpthread_version_placeholder F
GLIBC_2.28 call_once F
GLIBC_2.28 cnd_broadcast F
GLIBC_2.28 cnd_destroy F
@@ -247,6 +234,12 @@ GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
GLIBC_2.3.4 pthread_setaffinity_np F
GLIBC_2.3.4 pthread_setschedprio F
+GLIBC_2.30 pthread_cond_clockwait F
+GLIBC_2.30 pthread_mutex_clocklock F
+GLIBC_2.30 pthread_rwlock_clockrdlock F
+GLIBC_2.30 pthread_rwlock_clockwrlock F
+GLIBC_2.30 sem_clockwait F
+GLIBC_2.31 pthread_clockjoin_np F
GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 pthread_mutex_getprioceiling F
GLIBC_2.4 pthread_mutex_setprioceiling F
diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist
index 804622a14a..08384c9065 100644
--- a/sysdeps/unix/sysv/linux/ia64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/librt.abilist
@@ -15,11 +15,6 @@ GLIBC_2.1 aio_write F
GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
GLIBC_2.1 lio_listio64 F
-GLIBC_2.2 clock_getcpuclockid F
-GLIBC_2.2 clock_getres F
-GLIBC_2.2 clock_gettime F
-GLIBC_2.2 clock_nanosleep F
-GLIBC_2.2 clock_settime F
GLIBC_2.2 shm_open F
GLIBC_2.2 shm_unlink F
GLIBC_2.2 timer_create F
diff --git a/sysdeps/unix/sysv/linux/ia64/makecontext.c b/sysdeps/unix/sysv/linux/ia64/makecontext.c
index 0652a6768d..1ad3887377 100644
--- a/sysdeps/unix/sysv/linux/ia64/makecontext.c
+++ b/sysdeps/unix/sysv/linux/ia64/makecontext.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Mosberger-Tang <davidm@hpl.hp.com>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libintl.h>
#include <stdarg.h>
diff --git a/sysdeps/unix/sysv/linux/ia64/mmap_internal.h b/sysdeps/unix/sysv/linux/ia64/mmap_internal.h
index cc46836913..392cc8dd98 100644
--- a/sysdeps/unix/sysv/linux/ia64/mmap_internal.h
+++ b/sysdeps/unix/sysv/linux/ia64/mmap_internal.h
@@ -1,5 +1,5 @@
/* Common mmap definition for Linux implementation. Linux/ia64 version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef MMAP_IA64_INTERNAL_LINUX_H
#define MMAP_IA64_INTERNAL_LINUX_H
diff --git a/sysdeps/unix/sysv/linux/ia64/pipe.S b/sysdeps/unix/sysv/linux/ia64/pipe.S
index de23fb39a3..c5bbf6d5ad 100644
--- a/sysdeps/unix/sysv/linux/ia64/pipe.S
+++ b/sysdeps/unix/sysv/linux/ia64/pipe.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Mosberger <davidm@hpl.hp.com>
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* __pipe is a special syscall since it returns two values. */
diff --git a/sysdeps/unix/sysv/linux/ia64/profil-counter.h b/sysdeps/unix/sysv/linux/ia64/profil-counter.h
deleted file mode 100644
index c07c1e587c..0000000000
--- a/sysdeps/unix/sysv/linux/ia64/profil-counter.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Machine-dependent SIGPROF signal handler. IA-64 version.
- Copyright (C) 1996-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-/* In many Unix systems signal handlers are called like this
- and the interrupted PC is easily findable in the `struct sigcontext'. */
-
-static void
-__profil_counter (int signr, siginfo_t *si, struct sigcontext *scp)
-{
- unsigned long ip = scp->sc_ip & ~0X3ULL, slot = scp->sc_ip & 0x3ull;
-
- /* Note: Linux/ia64 encodes the slot number in bits 0 and 1. We
- want to multiply the slot number by four so we can use bins of
- width 4 to get accurate instruction-level profiling. */
- profil_count ((void *) (ip + 4*slot));
-}
diff --git a/sysdeps/unix/sysv/linux/ia64/pt-vfork.S b/sysdeps/unix/sysv/linux/ia64/pt-vfork.S
deleted file mode 100644
index 61f3e387b4..0000000000
--- a/sysdeps/unix/sysv/linux/ia64/pt-vfork.S
+++ /dev/null
@@ -1,48 +0,0 @@
-/* vfork ABI-compatibility entry points for libpthread. IA64 version.
- Copyright (C) 2014-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <shlib-compat.h>
-
-/* libpthread used to have its own vfork implementation that differed
- from libc's only in having a pointless micro-optimization. There
- is no longer any use to having a separate copy in libpthread, but
- the historical ABI requires it. For static linking, there is no
- need to provide anything here--the libc version will be linked in.
- For shared library ABI compatibility, there must be __vfork and
- vfork symbols in libpthread.so. */
-
-#if (SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_20) \
- || SHLIB_COMPAT (libpthread, GLIBC_2_1_2, GLIBC_2_20))
-
-LOCAL_LEAF (vfork_compat)
- br __libc_vfork
- ;;
-END (vfork_compat)
-
-#endif
-
-#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_20)
-weak_alias (vfork_compat, vfork)
-compat_symbol (libpthread, vfork_compat, vfork, GLIBC_2_0);
-#endif
-
-#if SHLIB_COMPAT (libpthread, GLIBC_2_1_2, GLIBC_2_20)
-strong_alias (vfork_compat, __vfork_compat)
-compat_symbol (libpthread, __vfork_compat, __vfork, GLIBC_2_1_2);
-#endif
diff --git a/sysdeps/unix/sysv/linux/ia64/readelflib.c b/sysdeps/unix/sysv/linux/ia64/readelflib.c
index 81401b00e0..5887bd2323 100644
--- a/sysdeps/unix/sysv/linux/ia64/readelflib.c
+++ b/sysdeps/unix/sysv/linux/ia64/readelflib.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
int process_elf32_file (const char *file_name, const char *lib, int *flag,
diff --git a/sysdeps/unix/sysv/linux/ia64/register-dump.h b/sysdeps/unix/sysv/linux/ia64/register-dump.h
index 952b4e9de0..663f763571 100644
--- a/sysdeps/unix/sysv/linux/ia64/register-dump.h
+++ b/sysdeps/unix/sysv/linux/ia64/register-dump.h
@@ -1,5 +1,5 @@
/* Dump registers.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <sys/uio.h>
diff --git a/sysdeps/unix/sysv/linux/ia64/setcontext.S b/sysdeps/unix/sysv/linux/ia64/setcontext.S
index 9fb8d1e325..17aa78b400 100644
--- a/sysdeps/unix/sysv/linux/ia64/setcontext.S
+++ b/sysdeps/unix/sysv/linux/ia64/setcontext.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Mosberger-Tang <davidm@hpl.hp.com>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <features.h>
diff --git a/sysdeps/unix/sysv/linux/ia64/setjmp.S b/sysdeps/unix/sysv/linux/ia64/setjmp.S
index fb0325bf9e..70502932aa 100644
--- a/sysdeps/unix/sysv/linux/ia64/setjmp.S
+++ b/sysdeps/unix/sysv/linux/ia64/setjmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
Contributed by David Mosberger-Tang <davidm@hpl.hp.com>.
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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
The layout of the jmp_buf is as follows. This is subject to change
and user-code should never depend on the particular layout of
diff --git a/sysdeps/unix/sysv/linux/ia64/sigcontextinfo.h b/sysdeps/unix/sysv/linux/ia64/sigcontextinfo.h
index 4163aa34a4..a2ba2ca244 100644
--- a/sysdeps/unix/sysv/linux/ia64/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/ia64/sigcontextinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-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
@@ -13,7 +13,17 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#define SIGCONTEXT siginfo_t *_si, struct sigcontext *
-#define GET_PC(ctx) ((ctx)->sc_ip)
+#ifndef _SIGCONTEXTINFO_H
+#define _SIGCONTEXTINFO_H
+
+/* Unlike other architectures, ia64 passes 'struct sigcontext' pointer as
+ the third argument to a sa_sigaction handler with SA_SIGINFO enabled. */
+static inline uintptr_t
+sigcontext_get_pc (const struct sigcontext *ctx)
+{
+ return ctx->sc_ip;
+}
+
+#endif
diff --git a/sysdeps/unix/sysv/linux/ia64/sigprocmask.c b/sysdeps/unix/sysv/linux/ia64/sigprocmask.c
index 6bc366131f..81c2d3cd8e 100644
--- a/sysdeps/unix/sysv/linux/ia64/sigprocmask.c
+++ b/sysdeps/unix/sysv/linux/ia64/sigprocmask.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Linux/IA64 specific sigprocmask
Written by Jes Sorensen, <Jes.Sorensen@cern.ch>, April 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Linux/ia64 only has rt signals, thus we do not even want to try falling
back to the old style signals as the default Linux handler does. */
diff --git a/sysdeps/unix/sysv/linux/ia64/swapcontext.c b/sysdeps/unix/sysv/linux/ia64/swapcontext.c
index b33c1c6771..cd1e69b1c5 100644
--- a/sysdeps/unix/sysv/linux/ia64/swapcontext.c
+++ b/sysdeps/unix/sysv/linux/ia64/swapcontext.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Mosberger-Tang <davidm@hpl.hp.com>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ucontext.h>
diff --git a/sysdeps/unix/sysv/linux/ia64/sys/io.h b/sysdeps/unix/sysv/linux/ia64/sys/io.h
index fb5376eebc..8c7bd33716 100644
--- a/sysdeps/unix/sysv/linux/ia64/sys/io.h
+++ b/sysdeps/unix/sysv/linux/ia64/sys/io.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_IO_H
#define _SYS_IO_H 1
diff --git a/sysdeps/unix/sysv/linux/ia64/sys/procfs.h b/sysdeps/unix/sysv/linux/ia64/sys/procfs.h
deleted file mode 100644
index c9c30b9270..0000000000
--- a/sysdeps/unix/sysv/linux/ia64/sys/procfs.h
+++ /dev/null
@@ -1,130 +0,0 @@
-/* Copyright (C) 1999-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_PROCFS_H
-#define _SYS_PROCFS_H 1
-
-/* This is somehow modelled after the file of the same name on SysVr4
- systems. It provides a definition of the core file format for ELF
- used on Linux. */
-
-#include <features.h>
-#include <signal.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#include <sys/ucontext.h>
-#include <bits/sigcontext.h>
-#include <sys/user.h>
-
-__BEGIN_DECLS
-
-struct elf_siginfo
- {
- int si_signo; /* Signal number. */
- int si_code; /* Extra code. */
- int si_errno; /* Errno. */
- };
-
-/* We really need just 72 but let's leave some headroom... */
-#define ELF_NGREG 128
-/* f0 and f1 could be omitted, but so what... */
-#define ELF_NFPREG 128
-
-typedef unsigned long elf_greg_t;
-typedef elf_greg_t elf_gregset_t[ELF_NGREG];
-
-typedef struct __ia64_fpreg elf_fpreg_t;
-typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
-
-typedef elf_greg_t greg_t;
-typedef elf_gregset_t gregset_t;
-typedef elf_fpregset_t fpregset_t;
-#define NGREG ELF_NGREG
-
-/* Definitions to generate Intel SVR4-like core files. These mostly
- have the same names as the SVR4 types with "elf_" tacked on the
- front to prevent clashes with linux definitions, and the typedef
- forms have been avoided. This is mostly like the SVR4 structure,
- but more Linuxy, with things that Linux does not support and which
- gdb doesn't really use excluded. Fields present but not used are
- marked with "XXX". */
-struct elf_prstatus
- {
-#if 0
- long int pr_flags; /* XXX Process flags. */
- short int pr_why; /* XXX Reason for process halt. */
- short int pr_what; /* XXX More detailed reason. */
-#endif
- struct elf_siginfo pr_info; /* Info associated with signal. */
- short int pr_cursig; /* Current signal. */
- unsigned long int pr_sigpend; /* Set of pending signals. */
- unsigned long int pr_sighold; /* Set of held signals. */
-#if 0
- stack_t pr_altstack; /* Alternate stack info. */
- struct sigaction pr_action; /* Signal action for current sig. */
-#endif
- __pid_t pr_pid;
- __pid_t pr_ppid;
- __pid_t pr_pgrp;
- __pid_t pr_sid;
- struct timeval pr_utime; /* User time. */
- struct timeval pr_stime; /* System time. */
- struct timeval pr_cutime; /* Cumulative user time. */
- struct timeval pr_cstime; /* Cumulative system time. */
-#if 0
- long int pr_instr; /* Current instruction. */
-#endif
- elf_gregset_t pr_reg; /* GP registers. */
- int pr_fpvalid; /* True if math copro being used. */
- };
-
-
-#define ELF_PRARGSZ (80) /* Number of chars for args */
-
-struct elf_prpsinfo
- {
- char pr_state; /* Numeric process state. */
- char pr_sname; /* Char for pr_state. */
- char pr_zomb; /* Zombie. */
- char pr_nice; /* Nice val. */
- unsigned long int pr_flag; /* Flags. */
- unsigned int pr_uid;
- unsigned int pr_gid;
- int pr_pid, pr_ppid, pr_pgrp, pr_sid;
- /* Lots missing */
- char pr_fname[16]; /* Filename of executable. */
- char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
- };
-
-/* Addresses. */
-typedef void *psaddr_t;
-
-/* Register sets. Linux has different names. */
-typedef gregset_t prgregset_t;
-typedef fpregset_t prfpregset_t;
-
-/* We don't have any differences between processes and threads,
- therefore habe only ine PID type. */
-typedef __pid_t lwpid_t;
-
-
-typedef struct elf_prstatus prstatus_t;
-typedef struct elf_prpsinfo prpsinfo_t;
-
-__END_DECLS
-
-#endif /* sys/procfs.h */
diff --git a/sysdeps/unix/sysv/linux/ia64/sys/ptrace.h b/sysdeps/unix/sysv/linux/ia64/sys/ptrace.h
index e00b1212fc..07da89d2c4 100644
--- a/sysdeps/unix/sysv/linux/ia64/sys/ptrace.h
+++ b/sysdeps/unix/sysv/linux/ia64/sys/ptrace.h
@@ -1,5 +1,5 @@
/* `ptrace' debugger support interface. Linux/ia64 version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_PTRACE_H
#define _SYS_PTRACE_H 1
@@ -149,8 +149,12 @@ enum __ptrace_request
#define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER
/* Get seccomp BPF filter metadata. */
- PTRACE_SECCOMP_GET_METADATA = 0x420d
+ PTRACE_SECCOMP_GET_METADATA = 0x420d,
#define PTRACE_SECCOMP_GET_METADATA PTRACE_SECCOMP_GET_METADATA
+
+ /* Get information about system call. */
+ PTRACE_GET_SYSCALL_INFO = 0x420e
+#define PTRACE_GET_SYSCALL_INFO PTRACE_GET_SYSCALL_INFO
};
diff --git a/sysdeps/unix/sysv/linux/ia64/sys/rse.h b/sysdeps/unix/sysv/linux/ia64/sys/rse.h
index 47af186d8e..8552be9aca 100644
--- a/sysdeps/unix/sysv/linux/ia64/sys/rse.h
+++ b/sysdeps/unix/sysv/linux/ia64/sys/rse.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Mosberger-Tang <davidm@hpl.hp.com>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _ia64_rse_h
#define _ia64_rse_h
diff --git a/sysdeps/unix/sysv/linux/ia64/sys/ucontext.h b/sysdeps/unix/sysv/linux/ia64/sys/ucontext.h
index e2a34afbdf..b83e4dfac2 100644
--- a/sysdeps/unix/sysv/linux/ia64/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/ia64/sys/ucontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_UCONTEXT_H
#define _SYS_UCONTEXT_H 1
diff --git a/sysdeps/unix/sysv/linux/ia64/sys/user.h b/sysdeps/unix/sysv/linux/ia64/sys/user.h
index 40583283a8..3ab4659a19 100644
--- a/sysdeps/unix/sysv/linux/ia64/sys/user.h
+++ b/sysdeps/unix/sysv/linux/ia64/sys/user.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_USER_H
#define _SYS_USER_H 1
diff --git a/sysdeps/unix/sysv/linux/ia64/syscall.S b/sysdeps/unix/sysv/linux/ia64/syscall.S
index 75c67da32e..b8209d2ed5 100644
--- a/sysdeps/unix/sysv/linux/ia64/syscall.S
+++ b/sysdeps/unix/sysv/linux/ia64/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jes Sorensen <Jes.Sorensen@cern.ch>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/ia64/sysconf.c b/sysdeps/unix/sysv/linux/ia64/sysconf.c
deleted file mode 100644
index 6c39db5a4a..0000000000
--- a/sysdeps/unix/sysv/linux/ia64/sysconf.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Get file-specific information about a file. Linux/ia64 version.
- Copyright (C) 2003-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <assert.h>
-#include <stdbool.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-#include "has_cpuclock.c"
-#define HAS_CPUCLOCK(name) (has_cpuclock () ? _POSIX_VERSION : -1)
-
-
-/* Now the generic Linux version. */
-#include <sysdeps/unix/sysv/linux/sysconf.c>
diff --git a/sysdeps/unix/sysv/linux/ia64/sysdep.S b/sysdeps/unix/sysv/linux/ia64/sysdep.S
index ee92a5597c..0371c417a9 100644
--- a/sysdeps/unix/sysv/linux/ia64/sysdep.S
+++ b/sysdeps/unix/sysv/linux/ia64/sysdep.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Mosberger-Tang <davidm@hpl.hp.com>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <features.h>
diff --git a/sysdeps/unix/sysv/linux/ia64/sysdep.h b/sysdeps/unix/sysv/linux/ia64/sysdep.h
index f8f8d900c6..4abe152ab7 100644
--- a/sysdeps/unix/sysv/linux/ia64/sysdep.h
+++ b/sysdeps/unix/sysv/linux/ia64/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Jes Sorensen, <Jes.Sorensen@cern.ch>, April 1999.
Based on code originally written by David Mosberger-Tang
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LINUX_IA64_SYSDEP_H
#define _LINUX_IA64_SYSDEP_H 1
@@ -346,7 +346,7 @@
#define ASM_CLOBBERS_5 ASM_CLOBBERS_6, "out5"
#define ASM_CLOBBERS_6_COMMON , "out6", "out7", \
/* Non-stacked integer registers, minus r8, r10, r15. */ \
- "r2", "r3", "r9", "r11", "r12", "r13", "r14", "r16", "r17", "r18", \
+ "r2", "r3", "r9", "r11", "r13", "r14", "r16", "r17", "r18", \
"r19", "r20", "r21", "r22", "r23", "r24", "r25", "r26", "r27", \
"r28", "r29", "r30", "r31", \
/* Predicate registers. */ \
diff --git a/sysdeps/unix/sysv/linux/ia64/system.c b/sysdeps/unix/sysv/linux/ia64/system.c
deleted file mode 100644
index d09fefefe6..0000000000
--- a/sysdeps/unix/sysv/linux/ia64/system.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright (C) 2002-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-/* We have to and actually can handle cancelable system(). The big
- problem: we have to kill the child process if necessary. To do
- this a cleanup handler has to be registered and is has to be able
- to find the PID of the child. The main problem is to reliable have
- the PID when needed. It is not necessary for the parent thread to
- return. It might still be in the kernel when the cancellation
- request comes. Therefore we have to use the clone() calls ability
- to have the kernel write the PID into the user-level variable. */
-#define FORK() \
- INLINE_SYSCALL (clone2, 6, CLONE_PARENT_SETTID | SIGCHLD, NULL, 0, \
- &pid, NULL, NULL)
-
-#include <sysdeps/unix/sysv/linux/system.c>
diff --git a/sysdeps/unix/sysv/linux/ia64/tst-setcontext2.c b/sysdeps/unix/sysv/linux/ia64/tst-setcontext2.c
index eecc29514d..f2db316941 100644
--- a/sysdeps/unix/sysv/linux/ia64/tst-setcontext2.c
+++ b/sysdeps/unix/sysv/linux/ia64/tst-setcontext2.c
@@ -1,5 +1,5 @@
/* Work around incorrect type of IA64 uc_sigmask.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <signal.h>
diff --git a/sysdeps/unix/sysv/linux/ia64/tst-setcontext4.c b/sysdeps/unix/sysv/linux/ia64/tst-setcontext4.c
index 17916d451f..3c3afa895f 100644
--- a/sysdeps/unix/sysv/linux/ia64/tst-setcontext4.c
+++ b/sysdeps/unix/sysv/linux/ia64/tst-setcontext4.c
@@ -1,7 +1,7 @@
/* The uc_sigmask on IA64 has the wrong type and this needs fixing,
but until that change is evaluated, we fix this here with a cast.
See https://sourceware.org/bugzilla/show_bug.cgi?id=21634
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <signal.h>
diff --git a/sysdeps/unix/sysv/linux/ia64/ucontext_i.h b/sysdeps/unix/sysv/linux/ia64/ucontext_i.h
index 3d1e3672f5..4f5c24b4a4 100644
--- a/sysdeps/unix/sysv/linux/ia64/ucontext_i.h
+++ b/sysdeps/unix/sysv/linux/ia64/ucontext_i.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Mosberger-Tang <davidm@hpl.hp.com>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Constants shared between setcontext() and getcontext(). Don't
install this header file. */
diff --git a/sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c b/sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c
index 85c1c9b373..de49784187 100644
--- a/sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c
+++ b/sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stdio.h>
diff --git a/sysdeps/unix/sysv/linux/ia64/unwind_longjmp.c b/sysdeps/unix/sysv/linux/ia64/unwind_longjmp.c
index 91600c83f3..143a077651 100644
--- a/sysdeps/unix/sysv/linux/ia64/unwind_longjmp.c
+++ b/sysdeps/unix/sysv/linux/ia64/unwind_longjmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <setjmp.h>
diff --git a/sysdeps/unix/sysv/linux/ia64/vfork.S b/sysdeps/unix/sysv/linux/ia64/vfork.S
index ff37bde754..480b8e9ed5 100644
--- a/sysdeps/unix/sysv/linux/ia64/vfork.S
+++ b/sysdeps/unix/sysv/linux/ia64/vfork.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/ia64/wordexp.c b/sysdeps/unix/sysv/linux/ia64/wordexp.c
index ba8d9fa14e..afdc59a27f 100644
--- a/sysdeps/unix/sysv/linux/ia64/wordexp.c
+++ b/sysdeps/unix/sysv/linux/ia64/wordexp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <shlib-compat.h>
diff --git a/sysdeps/unix/sysv/linux/if_index.c b/sysdeps/unix/sysv/linux/if_index.c
index e3d08982d9..361453fc0b 100644
--- a/sysdeps/unix/sysv/linux/if_index.c
+++ b/sysdeps/unix/sysv/linux/if_index.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <alloca.h>
#include <errno.h>
@@ -38,11 +38,6 @@ __if_nametoindex (const char *ifname)
return 0;
#else
struct ifreq ifr;
- int fd = __opensock ();
-
- if (fd < 0)
- return 0;
-
if (strlen (ifname) >= IFNAMSIZ)
{
__set_errno (ENODEV);
@@ -50,6 +45,12 @@ __if_nametoindex (const char *ifname)
}
strncpy (ifr.ifr_name, ifname, sizeof (ifr.ifr_name));
+
+ int fd = __opensock ();
+
+ if (fd < 0)
+ return 0;
+
if (__ioctl (fd, SIOCGIFINDEX, &ifr) < 0)
{
int saved_errno = errno;
diff --git a/sysdeps/unix/sysv/linux/ifaddrs.c b/sysdeps/unix/sysv/linux/ifaddrs.c
index ac0e1e5738..2b89c7a3af 100644
--- a/sysdeps/unix/sysv/linux/ifaddrs.c
+++ b/sysdeps/unix/sysv/linux/ifaddrs.c
@@ -1,5 +1,5 @@
/* getifaddrs -- get names and addresses of all network interfaces
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <alloca.h>
#include <assert.h>
@@ -102,7 +102,7 @@ __netlink_sendreq (struct netlink_handle *h, int type)
struct sockaddr_nl nladdr;
if (h->seq == 0)
- h->seq = time (NULL);
+ h->seq = time_now ();
req.nlh.nlmsg_len = sizeof (req);
req.nlh.nlmsg_type = type;
diff --git a/sysdeps/unix/sysv/linux/ifreq.c b/sysdeps/unix/sysv/linux/ifreq.c
index c1a94f9343..8d2d3d08f2 100644
--- a/sysdeps/unix/sysv/linux/ifreq.c
+++ b/sysdeps/unix/sysv/linux/ifreq.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "ifreq.h"
diff --git a/sysdeps/unix/sysv/linux/include/sys/sysinfo.h b/sysdeps/unix/sysv/linux/include/sys/sysinfo.h
index de61c87c02..9a2e277216 100644
--- a/sysdeps/unix/sysv/linux/include/sys/sysinfo.h
+++ b/sysdeps/unix/sysv/linux/include/sys/sysinfo.h
@@ -1,5 +1,5 @@
/* Internal declarations for sys/sysinfo.h.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _INCLUDE_SYS_SYSINFO_H
#define _INCLUDE_SYS_SYSINFO_H 1
diff --git a/sysdeps/unix/sysv/linux/include/sys/timex.h b/sysdeps/unix/sysv/linux/include/sys/timex.h
index 8bd0b11be7..4e41f0a8c7 100644
--- a/sysdeps/unix/sysv/linux/include/sys/timex.h
+++ b/sysdeps/unix/sysv/linux/include/sys/timex.h
@@ -1,5 +1,5 @@
/* Internal declarations for sys/timex.h.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _INCLUDE_SYS_TIMEX_H
#define _INCLUDE_SYS_TIMEX_H 1
diff --git a/sysdeps/unix/sysv/linux/init-first.c b/sysdeps/unix/sysv/linux/init-first.c
new file mode 100644
index 0000000000..d005d13322
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/init-first.c
@@ -0,0 +1,90 @@
+/* vDSO internal symbols. Linux generic version.
+ 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; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <dl-vdso.h>
+#include <libc-vdso.h>
+
+/* vDSO symbol used on clock_gettime implementation. */
+#ifdef HAVE_CLOCK_GETTIME_VSYSCALL
+int (*VDSO_SYMBOL(clock_gettime)) (clockid_t, struct timespec *)
+ attribute_hidden;
+#endif
+/* vDSO symbol used on clock_gettime64 implementation. */
+#ifdef HAVE_CLOCK_GETTIME64_VSYSCALL
+int (*VDSO_SYMBOL(clock_gettime64)) (clockid_t, struct __timespec64 *)
+ attribute_hidden;
+#endif
+/* vDSO symbol used on clock_getres implementation. */
+#ifdef HAVE_CLOCK_GETRES_VSYSCALL
+int (*VDSO_SYMBOL(clock_getres)) (clockid_t, struct timespec *)
+ attribute_hidden;
+#endif
+/* vDSO symbol used on gettimeofday implementation. */
+#ifdef HAVE_GETTIMEOFDAY_VSYSCALL
+int (*VDSO_SYMBOL (gettimeofday)) (struct timeval *, void *)
+ attribute_hidden;
+#endif
+/* vDSO symbol used on GNU extension getcpu implementation. */
+#ifdef HAVE_GETCPU_VSYSCALL
+long int (*VDSO_SYMBOL(getcpu)) (unsigned *, unsigned *, void *)
+ attribute_hidden;
+#endif
+/* vDSO symbol used on time implementation. */
+#ifdef HAVE_TIME_VSYSCALL
+time_t (*VDSO_SYMBOL(time)) (time_t *) attribute_hidden;
+#endif
+
+static inline void
+__libc_vdso_platform_setup (void)
+{
+#ifdef HAVE_CLOCK_GETTIME_VSYSCALL
+ VDSO_SYMBOL(clock_gettime)
+ = get_vdso_mangle_symbol (HAVE_CLOCK_GETTIME_VSYSCALL);
+#endif
+
+#ifdef HAVE_CLOCK_GETTIME64_VSYSCALL
+ VDSO_SYMBOL(clock_gettime64)
+ = get_vdso_mangle_symbol (HAVE_CLOCK_GETTIME64_VSYSCALL);
+#endif
+
+#ifdef HAVE_CLOCK_GETRES_VSYSCALL
+ VDSO_SYMBOL(clock_getres)
+ = get_vdso_mangle_symbol (HAVE_CLOCK_GETRES_VSYSCALL);
+#endif
+
+#ifdef HAVE_GETTIMEOFDAY_VSYSCALL
+ VDSO_SYMBOL(gettimeofday)
+ = get_vdso_mangle_symbol (HAVE_GETTIMEOFDAY_VSYSCALL);
+#endif
+
+#ifdef HAVE_GETCPU_VSYSCALL
+ VDSO_SYMBOL(getcpu) = get_vdso_mangle_symbol (HAVE_GETCPU_VSYSCALL);
+#endif
+
+#ifdef HAVE_TIME_VSYSCALL
+ VDSO_SYMBOL(time) = get_vdso_mangle_symbol (HAVE_TIME_VSYSCALL);
+#endif
+
+#ifdef VDSO_SETUP_ARCH
+ VDSO_SETUP_ARCH ();
+#endif
+}
+
+#define VDSO_SETUP __libc_vdso_platform_setup
+
+#include <csu/init-first.c>
diff --git a/sysdeps/unix/sysv/linux/internal-signals.h b/sysdeps/unix/sysv/linux/internal-signals.h
index 5ff4cf83d5..01d8bf0a4c 100644
--- a/sysdeps/unix/sysv/linux/internal-signals.h
+++ b/sysdeps/unix/sysv/linux/internal-signals.h
@@ -1,5 +1,5 @@
/* Special use of signals internally. Linux version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef __INTERNAL_SIGNALS_H
# define __INTERNAL_SIGNALS_H
diff --git a/sysdeps/unix/sysv/linux/internal_statvfs.c b/sysdeps/unix/sysv/linux/internal_statvfs.c
index bf2f9edba5..939ca2726c 100644
--- a/sysdeps/unix/sysv/linux/internal_statvfs.c
+++ b/sysdeps/unix/sysv/linux/internal_statvfs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
diff --git a/sysdeps/unix/sysv/linux/internal_statvfs.h b/sysdeps/unix/sysv/linux/internal_statvfs.h
index 58ffe686d9..733971fb8b 100644
--- a/sysdeps/unix/sysv/linux/internal_statvfs.h
+++ b/sysdeps/unix/sysv/linux/internal_statvfs.h
@@ -1,5 +1,5 @@
/* Internal statvfs/statvfs64 function prototypes.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/statvfs.h>
diff --git a/sysdeps/unix/sysv/linux/ipc_ops.h b/sysdeps/unix/sysv/linux/ipc_ops.h
index cd599ab72e..f264cf2375 100644
--- a/sysdeps/unix/sysv/linux/ipc_ops.h
+++ b/sysdeps/unix/sysv/linux/ipc_ops.h
@@ -1,5 +1,5 @@
/* The codes for the functions to use the ipc syscall multiplexer.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define IPCOP_semop 1
#define IPCOP_semget 2
diff --git a/sysdeps/unix/sysv/linux/ipc_priv.h b/sysdeps/unix/sysv/linux/ipc_priv.h
index 22565d43e2..aaeba83e85 100644
--- a/sysdeps/unix/sysv/linux/ipc_priv.h
+++ b/sysdeps/unix/sysv/linux/ipc_priv.h
@@ -1,5 +1,5 @@
/* Old SysV permission definition for Linux. Default version.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,20 +14,32 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/ipc.h> /* For __key_t */
+#include <kernel-features.h>
-#define __IPC_64 0x100
+#ifdef __ASSUME_SYSVIPC_DEFAULT_IPC_64
+# define __IPC_64 0x0
+#else
+# define __IPC_64 0x100
+#endif
+
+#ifndef __OLD_IPC_ID_TYPE
+# define __OLD_IPC_ID_TYPE unsigned short int
+#endif
+#ifndef __OLD_IPC_MODE_TYPE
+# define __OLD_IPC_MODE_TYPE unsigned short int
+#endif
struct __old_ipc_perm
{
__key_t __key; /* Key. */
- unsigned short int uid; /* Owner's user ID. */
- unsigned short int gid; /* Owner's group ID. */
- unsigned short int cuid; /* Creator's user ID. */
- unsigned short int cgid; /* Creator's group ID. */
- unsigned short int mode; /* Read/write permission. */
+ __OLD_IPC_ID_TYPE uid; /* Owner's user ID. */
+ __OLD_IPC_ID_TYPE gid; /* Owner's group ID. */
+ __OLD_IPC_ID_TYPE cuid; /* Creator's user ID. */
+ __OLD_IPC_ID_TYPE cgid; /* Creator's group ID. */
+ __OLD_IPC_MODE_TYPE mode; /* Read/write permission. */
unsigned short int __seq; /* Sequence number. */
};
@@ -36,4 +48,9 @@ struct __old_ipc_perm
#define MSGRCV_ARGS(__msgp, __msgtyp) \
((long int []){ (long int) __msgp, __msgtyp })
+/* This macro is required to handle the s390 variants, which passes the
+ arguments in a different order than default. */
+#define SEMTIMEDOP_IPC_ARGS(__nsops, __sops, __timeout) \
+ (__nsops), 0, (__sops), (__timeout)
+
#include <ipc_ops.h>
diff --git a/sysdeps/unix/sysv/linux/kernel-features.h b/sysdeps/unix/sysv/linux/kernel-features.h
index 5543d92d7e..e6be76ff46 100644
--- a/sysdeps/unix/sysv/linux/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/kernel-features.h
@@ -1,6 +1,6 @@
/* Set flags signalling availability of kernel features based on given
kernel version number.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -15,11 +15,16 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file must not contain any C code. At least it must be protected
to allow using the file also in assembler files. */
+#ifndef _LINUX_KERNEL_FEATURES_H
+#define _LINUX_KERNEL_FEATURES_H 1
+
+#include <bits/wordsize.h>
+
#ifndef __LINUX_KERNEL_VERSION
/* We assume the worst; all kernels should be supported. */
# define __LINUX_KERNEL_VERSION 0
@@ -37,14 +42,6 @@
introduced. If somebody cares these values can afterwards be
corrected. */
-/* Some architectures use the socketcall multiplexer for some or all
- socket-related operations instead of separate syscalls.
- __ASSUME_SOCKETCALL is defined for such architectures. */
-
-/* The changed st_ino field appeared in 2.4.0-test6. However, SH is lame,
- and still does not have a 64-bit inode field. */
-#define __ASSUME_ST_INO_64_BIT 1
-
/* The statfs64 syscalls are available in 2.5.74 (but not for alpha). */
#define __ASSUME_STATFS64 1
@@ -65,9 +62,6 @@
2.6.27. */
#define __ASSUME_IN_NONBLOCK 1
-/* Support for the FUTEX_CLOCK_REALTIME flag was added in 2.6.29. */
-#define __ASSUME_FUTEX_CLOCK_REALTIME 1
-
/* Support for preadv and pwritev was added in 2.6.30. */
#define __ASSUME_PREADV 1
#define __ASSUME_PWRITEV 1
@@ -91,6 +85,17 @@
/* Support for SysV IPC through wired syscalls. All supported architectures
either support ipc syscall and/or all the ipc correspondent syscalls. */
#define __ASSUME_DIRECT_SYSVIPC_SYSCALLS 1
+/* The generic default __IPC_64 value is 0x0, however some architectures
+ require a different value of 0x100. */
+#define __ASSUME_SYSVIPC_DEFAULT_IPC_64 1
+
+/* All supported architectures reserve a 32-bit for MODE field in sysvipc
+ ipc_perm. However, some kernel ABI interfaces still expect a 16-bit
+ field. This is only an issue if arch-defined IPC_PERM padding is on a
+ wrong position regarding endianness. In this case, the IPC control
+ routines (msgctl, semctl, and semtctl) requires to shift the value to
+ correct place.
+ The ABIs that requires it define __ASSUME_SYSVIPC_BROKEN_MODE_T. */
/* Support for p{read,write}v2 was added in 4.6. However Linux default
implementation does not assume the __ASSUME_* and instead use a fallback
@@ -111,10 +116,6 @@
# define __ASSUME_MLOCK2 1
#endif
-#if __LINUX_KERNEL_VERSION >= 0x040500
-# define __ASSUME_COPY_FILE_RANGE 1
-#endif
-
/* Support for statx was added in kernel 4.11. */
#if __LINUX_KERNEL_VERSION >= 0x040B00
# define __ASSUME_STATX 1
@@ -154,3 +155,57 @@
*/
#define __ASSUME_CLONE_DEFAULT 1
+
+/* Support for 64-bit time_t in the system call interface. When this
+ flag is set, the kernel provides a version of each of these system
+ calls that accepts 64-bit time_t:
+
+ clock_adjtime(64)
+ clock_gettime(64)
+ clock_settime(64)
+ clock_getres(_time64)
+ clock_nanosleep(_time64)
+ futex(_time64)
+ mq_timedreceive(_time64)
+ mq_timedsend(_time64)
+ ppoll(_time64)
+ pselect6(_time64)
+ rt_sigtimedwait(_time64)
+ sched_rr_get_interval(_time64)
+ timer_gettime(64)
+ timer_settime(64)
+ timerfd_gettime(64)
+ timerfd_settime(64)
+ utimensat(_time64)
+
+ On architectures where time_t has historically been 64 bits,
+ only the 64-bit version of each system call exists, and there
+ are no suffixes on the __NR_ constants.
+
+ On architectures where time_t has historically been 32 bits,
+ both 32-bit and 64-bit versions of each system call may exist,
+ depending on the kernel version. When the 64-bit version exists,
+ there is a '64' or '_time64' suffix on the name of its __NR_
+ constant, as shown above.
+
+ This flag is always set for Linux 5.1 and later. Prior to that
+ version, it is set only for some CPU architectures and ABIs:
+
+ - __WORDSIZE == 64 - all supported architectures where pointers
+ are 64 bits also have always had 64-bit time_t.
+
+ - __WORDSIZE == 32 && __SYSCALL_WORDSIZE == 64 - this describes
+ only one supported configuration, x86's 'x32' subarchitecture,
+ where pointers are 32 bits but time_t has always been 64 bits.
+
+ __ASSUME_TIME64_SYSCALLS being set does not mean __TIMESIZE is 64,
+ and __TIMESIZE equal to 64 does not mean __ASSUME_TIME64_SYSCALLS
+ is set. All four cases are possible. */
+
+#if __LINUX_KERNEL_VERSION >= 0x050100 \
+ || __WORDSIZE == 64 \
+ || (defined __SYSCALL_WORDSIZE && __SYSCALL_WORDSIZE == 64)
+# define __ASSUME_TIME64_SYSCALLS 1
+#endif
+
+#endif /* kernel-features.h */
diff --git a/sysdeps/unix/sysv/linux/kernel-posix-timers.h b/sysdeps/unix/sysv/linux/kernel-posix-timers.h
index 31f5199786..1ded4df51a 100644
--- a/sysdeps/unix/sysv/linux/kernel-posix-timers.h
+++ b/sysdeps/unix/sysv/linux/kernel-posix-timers.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <setjmp.h>
diff --git a/sysdeps/unix/sysv/linux/kernel_sigaction.h b/sysdeps/unix/sysv/linux/kernel_sigaction.h
index 2dbec08099..1c36146d46 100644
--- a/sysdeps/unix/sysv/linux/kernel_sigaction.h
+++ b/sysdeps/unix/sysv/linux/kernel_sigaction.h
@@ -1,19 +1,27 @@
#ifndef _KERNEL_SIGACTION_H
# define _KERNEL_SIGACTION_H
+#ifdef SA_RESTORER
+# define HAS_SA_RESTORER 1
+#endif
+
/* This is the sigaction structure from the Linux 3.2 kernel. */
struct kernel_sigaction
{
__sighandler_t k_sa_handler;
unsigned long sa_flags;
-#ifdef SA_RESTORER
+#ifdef HAS_SA_RESTORER
void (*sa_restorer) (void);
#endif
+ /* glibc sigset is larger than kernel expected one, however sigaction
+ passes the kernel expected size on rt_sigaction syscall. */
sigset_t sa_mask;
};
-#ifndef SA_RESTORER
+#ifndef SET_SA_RESTORER
# define SET_SA_RESTORER(kact, act)
+#endif
+#ifndef RESET_SA_RESTORER
# define RESET_SA_RESTORER(act, kact)
#endif
diff --git a/sysdeps/unix/sysv/linux/kernel_termios.h b/sysdeps/unix/sysv/linux/kernel_termios.h
index 6f505c7b61..60511487f5 100644
--- a/sysdeps/unix/sysv/linux/kernel_termios.h
+++ b/sysdeps/unix/sysv/linux/kernel_termios.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _KERNEL_TERMIOS_H
#define _KERNEL_TERMIOS_H 1
@@ -31,4 +31,7 @@ struct __kernel_termios
cc_t c_cc[__KERNEL_NCCS]; /* control characters */
};
+#define _HAVE_C_ISPEED 0
+#define _HAVE_C_OSPEED 0
+
#endif /* kernel_termios.h */
diff --git a/sysdeps/unix/sysv/linux/lddlibc4.c b/sysdeps/unix/sysv/linux/lddlibc4.c
index e4e4ebf14e..bbf13fad1f 100644
--- a/sysdeps/unix/sysv/linux/lddlibc4.c
+++ b/sysdeps/unix/sysv/linux/lddlibc4.c
@@ -1,5 +1,5 @@
/* Stub for ldd script to print Linux libc4 dependencies.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This code is based on the `ldd' program code from the Linux ld.so
package. */
@@ -69,7 +69,7 @@ main (int argc, char *argv[])
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\
-"), "2018");
+"), "2019");
return 0;
}
diff --git a/sysdeps/unix/sysv/linux/ldsodefs.h b/sysdeps/unix/sysv/linux/ldsodefs.h
index edd4fa1d9f..111e62628d 100644
--- a/sysdeps/unix/sysv/linux/ldsodefs.h
+++ b/sysdeps/unix/sysv/linux/ldsodefs.h
@@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LDSODEFS_H
diff --git a/sysdeps/unix/sysv/linux/libc-vdso.h b/sysdeps/unix/sysv/linux/libc-vdso.h
new file mode 100644
index 0000000000..c6d505bab3
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/libc-vdso.h
@@ -0,0 +1,55 @@
+/* Copyright (C) 2009-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _LIBC_VDSO_H
+#define _LIBC_VDSO_H
+
+#define VDSO_SYMBOL(__name) __vdso_##__name
+
+/* Adjust the return IFUNC value from a vDSO symbol accordingly required
+ by the ELFv1 ABI. It is used by the architecture to create an ODP
+ entry since the kernel vDSO does not provide it. */
+#ifndef VDSO_IFUNC_RET
+# define VDSO_IFUNC_RET(__value) (__value)
+#endif
+
+#ifdef HAVE_CLOCK_GETTIME_VSYSCALL
+extern int (*VDSO_SYMBOL(clock_gettime)) (clockid_t, struct timespec *)
+ attribute_hidden;
+#endif
+#ifdef HAVE_CLOCK_GETTIME64_VSYSCALL
+extern int (*VDSO_SYMBOL(clock_gettime64)) (clockid_t, struct __timespec64 *)
+ attribute_hidden;
+#endif
+#ifdef HAVE_CLOCK_GETRES_VSYSCALL
+extern int (*VDSO_SYMBOL(clock_getres)) (clockid_t, struct timespec *)
+ attribute_hidden;
+#endif
+#ifdef HAVE_GETTIMEOFDAY_VSYSCALL
+extern int (*VDSO_SYMBOL (gettimeofday)) (struct timeval *, void *)
+ attribute_hidden;
+#endif
+#ifdef HAVE_GETCPU_VSYSCALL
+extern long int (*VDSO_SYMBOL(getcpu)) (unsigned *, unsigned *, void *)
+ attribute_hidden;
+#endif
+#ifdef HAVE_TIME_VSYSCALL
+extern time_t (*VDSO_SYMBOL(time)) (time_t *) attribute_hidden;
+#endif
+
+#endif /* _LIBC_VDSO_H */
diff --git a/sysdeps/unix/sysv/linux/libc_fatal.c b/sysdeps/unix/sysv/linux/libc_fatal.c
index bd65403c61..9c9b91f7fe 100644
--- a/sysdeps/unix/sysv/linux/libc_fatal.c
+++ b/sysdeps/unix/sysv/linux/libc_fatal.c
@@ -1,5 +1,5 @@
/* Catastrophic failure reports. Linux version.
- Copyright (C) 1993-2018 Free Software Foundation, Inc.
+ Copyright (C) 1993-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
@@ -14,14 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
-#include <execinfo.h>
-#include <fcntl.h>
-#include <not-cancel.h>
-#include <string.h>
-#include <sys/mman.h>
#include <sys/uio.h>
static bool
@@ -37,32 +32,4 @@ writev_for_fatal (int fd, const struct iovec *iov, size_t niov, size_t total)
}
#define WRITEV_FOR_FATAL writev_for_fatal
-static void
-backtrace_and_maps (int do_abort, bool written, int fd)
-{
- if (do_abort > 1 && written)
- {
- void *addrs[64];
-#define naddrs (sizeof (addrs) / sizeof (addrs[0]))
- int n = __backtrace (addrs, naddrs);
- if (n > 2)
- {
-#define strnsize(str) str, strlen (str)
-#define writestr(str) __write_nocancel (fd, str)
- writestr (strnsize ("======= Backtrace: =========\n"));
- __backtrace_symbols_fd (addrs + 1, n - 1, fd);
-
- writestr (strnsize ("======= Memory map: ========\n"));
- int fd2 = __open_nocancel ("/proc/self/maps", O_RDONLY);
- char buf[1024];
- ssize_t n2;
- while ((n2 = __read_nocancel (fd2, buf, sizeof (buf))) > 0)
- if (__write_nocancel (fd, buf, n2) != n2)
- break;
- __close_nocancel_nostatus (fd2);
- }
- }
-}
-#define BEFORE_ABORT backtrace_and_maps
-
#include <sysdeps/posix/libc_fatal.c>
diff --git a/sysdeps/unix/sysv/linux/linux_fsinfo.h b/sysdeps/unix/sysv/linux/linux_fsinfo.h
index d01195ce88..37e72a7c47 100644
--- a/sysdeps/unix/sysv/linux/linux_fsinfo.h
+++ b/sysdeps/unix/sysv/linux/linux_fsinfo.h
@@ -1,5 +1,5 @@
/* Constants from kernel header for various FSes.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LINUX_FSINFO_H
#define _LINUX_FSINFO_H 1
diff --git a/sysdeps/unix/sysv/linux/listen.c b/sysdeps/unix/sysv/linux/listen.c
index 79d4a8ad28..89c6fa80e6 100644
--- a/sysdeps/unix/sysv/linux/listen.c
+++ b/sysdeps/unix/sysv/linux/listen.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2015-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/sysdeps/unix/sysv/linux/lowlevellock-futex.h b/sysdeps/unix/sysv/linux/lowlevellock-futex.h
deleted file mode 100644
index fc834ed16e..0000000000
--- a/sysdeps/unix/sysv/linux/lowlevellock-futex.h
+++ /dev/null
@@ -1,130 +0,0 @@
-/* Low-level locking access to futex facilities. Linux version.
- Copyright (C) 2005-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _LOWLEVELLOCK_FUTEX_H
-#define _LOWLEVELLOCK_FUTEX_H 1
-
-#ifndef __ASSEMBLER__
-#include <sysdep.h>
-#include <tls.h>
-#include <kernel-features.h>
-#endif
-
-#define FUTEX_WAIT 0
-#define FUTEX_WAKE 1
-#define FUTEX_REQUEUE 3
-#define FUTEX_CMP_REQUEUE 4
-#define FUTEX_WAKE_OP 5
-#define FUTEX_OP_CLEAR_WAKE_IF_GT_ONE ((4 << 24) | 1)
-#define FUTEX_LOCK_PI 6
-#define FUTEX_UNLOCK_PI 7
-#define FUTEX_TRYLOCK_PI 8
-#define FUTEX_WAIT_BITSET 9
-#define FUTEX_WAKE_BITSET 10
-#define FUTEX_WAIT_REQUEUE_PI 11
-#define FUTEX_CMP_REQUEUE_PI 12
-#define FUTEX_PRIVATE_FLAG 128
-#define FUTEX_CLOCK_REALTIME 256
-
-#define FUTEX_BITSET_MATCH_ANY 0xffffffff
-
-/* Values for 'private' parameter of locking macros. Yes, the
- definition seems to be backwards. But it is not. The bit will be
- reversed before passing to the system call. */
-#define LLL_PRIVATE 0
-#define LLL_SHARED FUTEX_PRIVATE_FLAG
-
-#ifndef __ASSEMBLER__
-
-#if IS_IN (libc) || IS_IN (rtld)
-/* In libc.so or ld.so all futexes are private. */
-# define __lll_private_flag(fl, private) \
- ({ \
- /* Prevent warnings in callers of this macro. */ \
- int __lll_private_flag_priv __attribute__ ((unused)); \
- __lll_private_flag_priv = (private); \
- ((fl) | FUTEX_PRIVATE_FLAG); \
- })
-#else
-# define __lll_private_flag(fl, private) \
- (((fl) | FUTEX_PRIVATE_FLAG) ^ (private))
-#endif
-
-#define lll_futex_syscall(nargs, futexp, op, ...) \
- ({ \
- INTERNAL_SYSCALL_DECL (__err); \
- long int __ret = INTERNAL_SYSCALL (futex, __err, nargs, futexp, op, \
- __VA_ARGS__); \
- (__glibc_unlikely (INTERNAL_SYSCALL_ERROR_P (__ret, __err)) \
- ? -INTERNAL_SYSCALL_ERRNO (__ret, __err) : 0); \
- })
-
-#define lll_futex_wait(futexp, val, private) \
- lll_futex_timed_wait (futexp, val, NULL, private)
-
-#define lll_futex_timed_wait(futexp, val, timeout, private) \
- lll_futex_syscall (4, futexp, \
- __lll_private_flag (FUTEX_WAIT, private), \
- val, timeout)
-
-#define lll_futex_timed_wait_bitset(futexp, val, timeout, clockbit, private) \
- lll_futex_syscall (6, futexp, \
- __lll_private_flag (FUTEX_WAIT_BITSET | (clockbit), \
- private), \
- val, timeout, NULL /* Unused. */, \
- FUTEX_BITSET_MATCH_ANY)
-
-#define lll_futex_wake(futexp, nr, private) \
- lll_futex_syscall (4, futexp, \
- __lll_private_flag (FUTEX_WAKE, private), nr, 0)
-
-/* Returns non-zero if error happened, zero if success. */
-#define lll_futex_requeue(futexp, nr_wake, nr_move, mutex, val, private) \
- lll_futex_syscall (6, futexp, \
- __lll_private_flag (FUTEX_CMP_REQUEUE, private), \
- nr_wake, nr_move, mutex, val)
-
-/* Returns non-zero if error happened, zero if success. */
-#define lll_futex_wake_unlock(futexp, nr_wake, nr_wake2, futexp2, private) \
- lll_futex_syscall (6, futexp, \
- __lll_private_flag (FUTEX_WAKE_OP, private), \
- nr_wake, nr_wake2, futexp2, \
- FUTEX_OP_CLEAR_WAKE_IF_GT_ONE)
-
-/* Priority Inheritance support. */
-#define lll_futex_wait_requeue_pi(futexp, val, mutex, private) \
- lll_futex_timed_wait_requeue_pi (futexp, val, NULL, 0, mutex, private)
-
-#define lll_futex_timed_wait_requeue_pi(futexp, val, timeout, clockbit, \
- mutex, private) \
- lll_futex_syscall (5, futexp, \
- __lll_private_flag (FUTEX_WAIT_REQUEUE_PI \
- | (clockbit), private), \
- val, timeout, mutex)
-
-
-#define lll_futex_cmp_requeue_pi(futexp, nr_wake, nr_move, mutex, \
- val, private) \
- lll_futex_syscall (6, futexp, \
- __lll_private_flag (FUTEX_CMP_REQUEUE_PI, \
- private), \
- nr_wake, nr_move, mutex, val)
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* lowlevellock-futex.h */
diff --git a/sysdeps/unix/sysv/linux/lseek.c b/sysdeps/unix/sysv/linux/lseek.c
index 49d11ab65a..c6b3baf426 100644
--- a/sysdeps/unix/sysv/linux/lseek.c
+++ b/sysdeps/unix/sysv/linux/lseek.c
@@ -1,5 +1,5 @@
/* Linux lseek implementation, 32 bits off_t.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <stdint.h>
diff --git a/sysdeps/unix/sysv/linux/lseek64.c b/sysdeps/unix/sysv/linux/lseek64.c
index 2ad6a610c8..5269708862 100644
--- a/sysdeps/unix/sysv/linux/lseek64.c
+++ b/sysdeps/unix/sysv/linux/lseek64.c
@@ -1,5 +1,5 @@
/* Linux lseek implementation, 64 bits off_t.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <stdint.h>
diff --git a/sysdeps/unix/sysv/linux/lutimes.c b/sysdeps/unix/sysv/linux/lutimes.c
index 4f2f9ec7d6..f0b059b9cd 100644
--- a/sysdeps/unix/sysv/linux/lutimes.c
+++ b/sysdeps/unix/sysv/linux/lutimes.c
@@ -1,6 +1,6 @@
/* Change access and/or modification date of file. Do not follow symbolic
links.
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/sysdeps/unix/sysv/linux/lxstat.c b/sysdeps/unix/sysv/linux/lxstat.c
index cc31b6dcb1..ac986f1f70 100644
--- a/sysdeps/unix/sysv/linux/lxstat.c
+++ b/sysdeps/unix/sysv/linux/lxstat.c
@@ -1,5 +1,5 @@
/* lxstat using old-style Unix lstat system call.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Ho hum, if xstat == xstat64 we must get rid of the prototype or gcc
will complain since they don't strictly match. */
diff --git a/sysdeps/unix/sysv/linux/lxstat64.c b/sysdeps/unix/sysv/linux/lxstat64.c
index d05fa14537..d3e8f315d0 100644
--- a/sysdeps/unix/sysv/linux/lxstat64.c
+++ b/sysdeps/unix/sysv/linux/lxstat64.c
@@ -1,5 +1,5 @@
/* lxstat64 using Linux lstat64 system call.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
@@ -24,18 +24,12 @@
#include <sysdep.h>
#include <sys/syscall.h>
-#include <kernel-features.h>
-
/* Get information about the file NAME in BUF. */
int
___lxstat64 (int vers, const char *name, struct stat64 *buf)
{
int result;
result = INLINE_SYSCALL (lstat64, 2, name, buf);
-#if defined _HAVE_STAT64___ST_INO && !__ASSUME_ST_INO_64_BIT
- if (__builtin_expect (!result, 1) && buf->__st_ino != (__ino_t) buf->st_ino)
- buf->st_ino = buf->__st_ino;
-#endif
return result;
}
diff --git a/sysdeps/unix/sysv/linux/m68k/Makefile b/sysdeps/unix/sysv/linux/m68k/Makefile
index ce1f696a6f..be40fae68a 100644
--- a/sysdeps/unix/sysv/linux/m68k/Makefile
+++ b/sysdeps/unix/sysv/linux/m68k/Makefile
@@ -18,8 +18,6 @@ endif
ifeq ($(subdir),elf)
sysdep-dl-routines += dl-static
-sysdep_routines += dl-vdso libc-m68k-vdso
-sysdep-rtld-routines += m68k-vdso
sysdep-others += lddlibc4
install-bin += lddlibc4
endif
diff --git a/sysdeps/unix/sysv/linux/m68k/Versions b/sysdeps/unix/sysv/linux/m68k/Versions
index 7ecc96ea97..4b18795513 100644
--- a/sysdeps/unix/sysv/linux/m68k/Versions
+++ b/sysdeps/unix/sysv/linux/m68k/Versions
@@ -37,18 +37,10 @@ libc {
GLIBC_2.11 {
fallocate64;
}
+ GLIBC_2.31 {
+ msgctl; semctl; shmctl;
+ }
GLIBC_2.12 {
__m68k_read_tp;
}
- GLIBC_PRIVATE {
- __vdso_atomic_cmpxchg_32; __vdso_atomic_barrier;
- }
-}
-
-ld {
- GLIBC_PRIVATE {
- __rtld___vdso_read_tp;
- __rtld___vdso_atomic_cmpxchg_32;
- __rtld___vdso_atomic_barrier;
- }
}
diff --git a/sysdeps/unix/sysv/linux/m68k/____longjmp_chk.c b/sysdeps/unix/sysv/linux/m68k/____longjmp_chk.c
index dfd3b13244..2ba825e021 100644
--- a/sysdeps/unix/sysv/linux/m68k/____longjmp_chk.c
+++ b/sysdeps/unix/sysv/linux/m68k/____longjmp_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <signal.h>
diff --git a/sysdeps/unix/sysv/linux/m68k/bits/fcntl.h b/sysdeps/unix/sysv/linux/m68k/bits/fcntl.h
index 0c6c7d9bb0..17ff930096 100644
--- a/sysdeps/unix/sysv/linux/m68k/bits/fcntl.h
+++ b/sysdeps/unix/sysv/linux/m68k/bits/fcntl.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for Linux.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FCNTL_H
# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
diff --git a/sysdeps/unix/sysv/linux/m68k/bits/mman.h b/sysdeps/unix/sysv/linux/m68k/bits/mman.h
deleted file mode 100644
index 8d355feda9..0000000000
--- a/sysdeps/unix/sysv/linux/m68k/bits/mman.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/* Definitions for POSIX memory map interface. Linux/m68k version.
- Copyright (C) 1997-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_MMAN_H
-# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
-#endif
-
-/* The following definitions basically come from the kernel headers.
- But the kernel header is not namespace clean. */
-
-/* These are Linux-specific. */
-#ifdef __USE_MISC
-# define MAP_GROWSDOWN 0x00100 /* Stack-like segment. */
-# define MAP_DENYWRITE 0x00800 /* ETXTBSY */
-# define MAP_EXECUTABLE 0x01000 /* Mark it as an executable. */
-# define MAP_LOCKED 0x02000 /* Lock the mapping. */
-# define MAP_NORESERVE 0x04000 /* Don't check for reservations. */
-# define MAP_POPULATE 0x08000 /* Populate (prefault) pagetables. */
-# define MAP_NONBLOCK 0x10000 /* Do not block on IO. */
-# define MAP_STACK 0x20000 /* Allocation is for a stack. */
-# define MAP_HUGETLB 0x40000 /* Create huge page mapping. */
-# define MAP_SYNC 0x80000 /* Perform synchronous page
- faults for the mapping. */
-# define MAP_FIXED_NOREPLACE 0x100000 /* MAP_FIXED but do not unmap
- underlying mapping. */
-#endif
-
-/* Include generic Linux declarations. */
-#include <bits/mman-linux.h>
diff --git a/sysdeps/unix/sysv/linux/m68k/bits/poll.h b/sysdeps/unix/sysv/linux/m68k/bits/poll.h
index 6652a21da7..e26d1583da 100644
--- a/sysdeps/unix/sysv/linux/m68k/bits/poll.h
+++ b/sysdeps/unix/sysv/linux/m68k/bits/poll.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_POLL_H
# error "Never use <bits/poll.h> directly; include <sys/poll.h> instead."
diff --git a/sysdeps/unix/sysv/linux/m68k/bits/procfs-id.h b/sysdeps/unix/sysv/linux/m68k/bits/procfs-id.h
new file mode 100644
index 0000000000..f39c3963c5
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/m68k/bits/procfs-id.h
@@ -0,0 +1,25 @@
+/* Types of pr_uid and pr_gid in struct elf_prpsinfo. M68K version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PROCFS_H
+# error "Never include <bits/procfs-id.h> directly; use <sys/procfs.h> instead."
+#endif
+
+typedef unsigned short int __pr_uid_t;
+typedef unsigned short int __pr_gid_t;
diff --git a/sysdeps/unix/sysv/linux/m68k/bits/procfs.h b/sysdeps/unix/sysv/linux/m68k/bits/procfs.h
new file mode 100644
index 0000000000..29ca7c3d80
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/m68k/bits/procfs.h
@@ -0,0 +1,34 @@
+/* Types for registers for sys/procfs.h. M68K version.
+ Copyright (C) 1996-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PROCFS_H
+# error "Never include <bits/procfs.h> directly; use <sys/procfs.h> instead."
+#endif
+
+/* Type for a general-purpose register. */
+typedef unsigned long elf_greg_t;
+
+/* And the whole bunch of them. We could have used `struct
+ user_regs_struct' directly in the typedef, but tradition says that
+ the register set is an array, which does have some peculiar
+ semantics, so leave it that way. */
+#define ELF_NGREG (sizeof (struct user_regs_struct) / sizeof (elf_greg_t))
+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
+
+/* Register set for the floating-point registers. */
+typedef struct user_m68kfp_struct elf_fpregset_t;
diff --git a/sysdeps/unix/sysv/linux/m68k/bits/sockaddr.h b/sysdeps/unix/sysv/linux/m68k/bits/sockaddr.h
index f5ac4987af..502917b791 100644
--- a/sysdeps/unix/sysv/linux/m68k/bits/sockaddr.h
+++ b/sysdeps/unix/sysv/linux/m68k/bits/sockaddr.h
@@ -1,5 +1,5 @@
/* Definition of struct sockaddr_* members and sizes, Linux/m68k version.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* Never include this file directly; use <sys/socket.h> instead.
diff --git a/sysdeps/unix/sysv/linux/m68k/bits/stat.h b/sysdeps/unix/sysv/linux/m68k/bits/stat.h
index 4296247248..557e318a0c 100644
--- a/sysdeps/unix/sysv/linux/m68k/bits/stat.h
+++ b/sysdeps/unix/sysv/linux/m68k/bits/stat.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if !defined _SYS_STAT_H && !defined _FCNTL_H
# error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
diff --git a/sysdeps/unix/sysv/linux/m68k/brk.c b/sysdeps/unix/sysv/linux/m68k/brk.c
index 9e8cac0873..749e549f72 100644
--- a/sysdeps/unix/sysv/linux/m68k/brk.c
+++ b/sysdeps/unix/sysv/linux/m68k/brk.c
@@ -1,5 +1,5 @@
/* brk system call for Linux/m68k.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/unix/sysv/linux/m68k/clone.S b/sysdeps/unix/sysv/linux/m68k/clone.S
index 0951c89023..d370b459fd 100644
--- a/sysdeps/unix/sysv/linux/m68k/clone.S
+++ b/sysdeps/unix/sysv/linux/m68k/clone.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab (schwab@issan.informatik.uni-dortmund.de)
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* clone() is even more special than fork() as it mucks with stacks
and invokes a function in the right context after its all over. */
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/atomic-machine.h b/sysdeps/unix/sysv/linux/m68k/coldfire/atomic-machine.h
index f402ac6139..1830d5ab7b 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/atomic-machine.h
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/atomic-machine.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Maxim Kuvyrkov <maxim@codesourcery.com>, 2010.
@@ -14,14 +14,13 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _ATOMIC_MACHINE_H
#define _ATOMIC_MACHINE_H 1
#include <stdint.h>
#include <sysdep.h>
-#include <m68k-vdso.h>
/* Coldfire has no atomic compare-and-exchange operation, but the
kernel provides userspace atomicity operations. Use them. */
@@ -43,33 +42,7 @@ typedef uintmax_t uatomic_max_t;
#define ATOMIC_EXCHANGE_USES_CAS 1
/* The only basic operation needed is compare and exchange. */
-/* For ColdFire we'll have to trap into the kernel mode anyway,
- so trap from the library rather then from the kernel wrapper. */
-#ifdef SHARED
-# define atomic_compare_and_exchange_val_acq(mem, newval, oldval) \
- ({ \
- /* Use temporary variables to workaround call-clobberness of \
- the registers. */ \
- __typeof (mem) _mem = mem; \
- __typeof (oldval) _oldval = oldval; \
- __typeof (newval) _newval = newval; \
- register uint32_t *_a0 asm ("a0") = (uint32_t *) _mem; \
- register uint32_t _d0 asm ("d0") = (uint32_t) _oldval; \
- register uint32_t _d1 asm ("d1") = (uint32_t) _newval; \
- void *tmp; \
- \
- asm ("movel #_GLOBAL_OFFSET_TABLE_@GOTPC, %2\n\t" \
- "lea (-6, %%pc, %2), %2\n\t" \
- "movel " STR_M68K_VDSO_SYMBOL (__vdso_atomic_cmpxchg_32) \
- "@GOT(%2), %2\n\t" \
- "movel (%2), %2\n\t" \
- "jsr (%2)\n\t" \
- : "+d" (_d0), "+m" (*_a0), "=&a" (tmp) \
- : "a" (_a0), "d" (_d1)); \
- (__typeof (oldval)) _d0; \
- })
-#else
-# define atomic_compare_and_exchange_val_acq(mem, newval, oldval) \
+#define atomic_compare_and_exchange_val_acq(mem, newval, oldval) \
({ \
/* Use temporary variables to workaround call-clobberness of \
the registers. */ \
@@ -86,24 +59,8 @@ typedef uintmax_t uatomic_max_t;
: "a" (_a0), "d" (_d2), "d" (_d1)); \
(__typeof (oldval)) _d0; \
})
-#endif
-#ifdef SHARED
-# define atomic_full_barrier() \
- ({ \
- void *tmp; \
- \
- asm ("movel #_GLOBAL_OFFSET_TABLE_@GOTPC, %0\n\t" \
- "lea (-6, %pc, %0), %0\n\t" \
- "movel " STR_M68K_VDSO_SYMBOL (__vdso_atomic_barrier) \
- "@GOT(%0), %0\n\t" \
- "movel (%0), %0\n\t" \
- "jsr (%0)\n\t" \
- : "=&a" (tmp)); \
- })
-#else
# define atomic_full_barrier() \
(INTERNAL_SYSCALL (atomic_barrier, , 0), (void) 0)
-#endif
#endif
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index f57be98e49..5e3cdea246 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -124,6 +124,16 @@ GLIBC_2.28 thrd_current F
GLIBC_2.28 thrd_equal F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
+GLIBC_2.29 getcpu F
+GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
+GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
+GLIBC_2.30 getdents64 F
+GLIBC_2.30 gettid F
+GLIBC_2.30 tgkill F
+GLIBC_2.30 twalk_r F
+GLIBC_2.31 msgctl F
+GLIBC_2.31 semctl F
+GLIBC_2.31 shmctl F
GLIBC_2.4 _Exit F
GLIBC_2.4 _IO_2_1_stderr_ D 0x98
GLIBC_2.4 _IO_2_1_stdin_ D 0x98
@@ -748,6 +758,11 @@ GLIBC_2.4 clntudp_bufcreate F
GLIBC_2.4 clntudp_create F
GLIBC_2.4 clntunix_create F
GLIBC_2.4 clock F
+GLIBC_2.4 clock_getcpuclockid F
+GLIBC_2.4 clock_getres F
+GLIBC_2.4 clock_gettime F
+GLIBC_2.4 clock_nanosleep F
+GLIBC_2.4 clock_settime F
GLIBC_2.4 clone F
GLIBC_2.4 close F
GLIBC_2.4 closedir F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
index e126eb07e3..dd5931f288 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
@@ -453,6 +453,23 @@ GLIBC_2.28 fmul F
GLIBC_2.28 fmull F
GLIBC_2.28 fsub F
GLIBC_2.28 fsubl F
+GLIBC_2.29 exp F
+GLIBC_2.29 exp2 F
+GLIBC_2.29 log F
+GLIBC_2.29 log2 F
+GLIBC_2.29 pow F
+GLIBC_2.31 totalorder F
+GLIBC_2.31 totalorderf F
+GLIBC_2.31 totalorderf32 F
+GLIBC_2.31 totalorderf32x F
+GLIBC_2.31 totalorderf64 F
+GLIBC_2.31 totalorderl F
+GLIBC_2.31 totalordermag F
+GLIBC_2.31 totalordermagf F
+GLIBC_2.31 totalordermagf32 F
+GLIBC_2.31 totalordermagf32x F
+GLIBC_2.31 totalordermagf64 F
+GLIBC_2.31 totalordermagl F
GLIBC_2.4 _LIB_VERSION D 0x4
GLIBC_2.4 __clog10 F
GLIBC_2.4 __clog10f F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
index af82a4c632..c5b7aeb7c4 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
@@ -27,6 +27,12 @@ GLIBC_2.28 tss_create F
GLIBC_2.28 tss_delete F
GLIBC_2.28 tss_get F
GLIBC_2.28 tss_set F
+GLIBC_2.30 pthread_cond_clockwait F
+GLIBC_2.30 pthread_mutex_clocklock F
+GLIBC_2.30 pthread_rwlock_clockrdlock F
+GLIBC_2.30 pthread_rwlock_clockwrlock F
+GLIBC_2.30 sem_clockwait F
+GLIBC_2.31 pthread_clockjoin_np F
GLIBC_2.4 _IO_flockfile F
GLIBC_2.4 _IO_ftrylockfile F
GLIBC_2.4 _IO_funlockfile F
@@ -40,7 +46,6 @@ GLIBC_2.4 __libc_allocate_rtsig F
GLIBC_2.4 __libc_current_sigrtmax F
GLIBC_2.4 __libc_current_sigrtmin F
GLIBC_2.4 __lseek F
-GLIBC_2.4 __nanosleep F
GLIBC_2.4 __open F
GLIBC_2.4 __open64 F
GLIBC_2.4 __pread64 F
@@ -74,7 +79,6 @@ GLIBC_2.4 __read F
GLIBC_2.4 __res_state F
GLIBC_2.4 __send F
GLIBC_2.4 __sigaction F
-GLIBC_2.4 __vfork F
GLIBC_2.4 __wait F
GLIBC_2.4 __write F
GLIBC_2.4 _pthread_cleanup_pop F
@@ -94,29 +98,20 @@ GLIBC_2.4 longjmp F
GLIBC_2.4 lseek F
GLIBC_2.4 lseek64 F
GLIBC_2.4 msync F
-GLIBC_2.4 nanosleep F
GLIBC_2.4 open F
GLIBC_2.4 open64 F
GLIBC_2.4 pause F
GLIBC_2.4 pread F
GLIBC_2.4 pread64 F
-GLIBC_2.4 pthread_attr_destroy F
GLIBC_2.4 pthread_attr_getaffinity_np F
-GLIBC_2.4 pthread_attr_getdetachstate F
GLIBC_2.4 pthread_attr_getguardsize F
-GLIBC_2.4 pthread_attr_getinheritsched F
-GLIBC_2.4 pthread_attr_getschedparam F
GLIBC_2.4 pthread_attr_getschedpolicy F
GLIBC_2.4 pthread_attr_getscope F
GLIBC_2.4 pthread_attr_getstack F
GLIBC_2.4 pthread_attr_getstackaddr F
GLIBC_2.4 pthread_attr_getstacksize F
-GLIBC_2.4 pthread_attr_init F
GLIBC_2.4 pthread_attr_setaffinity_np F
-GLIBC_2.4 pthread_attr_setdetachstate F
GLIBC_2.4 pthread_attr_setguardsize F
-GLIBC_2.4 pthread_attr_setinheritsched F
-GLIBC_2.4 pthread_attr_setschedparam F
GLIBC_2.4 pthread_attr_setschedpolicy F
GLIBC_2.4 pthread_attr_setscope F
GLIBC_2.4 pthread_attr_setstack F
@@ -144,7 +139,6 @@ GLIBC_2.4 pthread_condattr_setclock F
GLIBC_2.4 pthread_condattr_setpshared F
GLIBC_2.4 pthread_create F
GLIBC_2.4 pthread_detach F
-GLIBC_2.4 pthread_equal F
GLIBC_2.4 pthread_exit F
GLIBC_2.4 pthread_getaffinity_np F
GLIBC_2.4 pthread_getattr_np F
@@ -196,7 +190,6 @@ GLIBC_2.4 pthread_rwlockattr_getpshared F
GLIBC_2.4 pthread_rwlockattr_init F
GLIBC_2.4 pthread_rwlockattr_setkind_np F
GLIBC_2.4 pthread_rwlockattr_setpshared F
-GLIBC_2.4 pthread_self F
GLIBC_2.4 pthread_setaffinity_np F
GLIBC_2.4 pthread_setcancelstate F
GLIBC_2.4 pthread_setcanceltype F
@@ -239,7 +232,6 @@ GLIBC_2.4 siglongjmp F
GLIBC_2.4 sigwait F
GLIBC_2.4 system F
GLIBC_2.4 tcdrain F
-GLIBC_2.4 vfork F
GLIBC_2.4 wait F
GLIBC_2.4 waitpid F
GLIBC_2.4 write F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
index cfbbd27557..3c0647b251 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -13,11 +13,6 @@ GLIBC_2.4 aio_suspend F
GLIBC_2.4 aio_suspend64 F
GLIBC_2.4 aio_write F
GLIBC_2.4 aio_write64 F
-GLIBC_2.4 clock_getcpuclockid F
-GLIBC_2.4 clock_getres F
-GLIBC_2.4 clock_gettime F
-GLIBC_2.4 clock_nanosleep F
-GLIBC_2.4 clock_settime F
GLIBC_2.4 lio_listio F
GLIBC_2.4 lio_listio64 F
GLIBC_2.4 mq_close F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/sysdep.h b/sysdeps/unix/sysv/linux/m68k/coldfire/sysdep.h
index a8d6cbef99..ee0232f7ac 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/sysdep.h
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2010-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LINUX_M68K_COLDFIRE_SYSDEP_H
#define _LINUX_M68K_COLDFIRE_SYSDEP_H 1
diff --git a/sysdeps/unix/sysv/linux/m68k/dl-static.c b/sysdeps/unix/sysv/linux/m68k/dl-static.c
index 566e7649a9..7ad0f0790f 100644
--- a/sysdeps/unix/sysv/linux/m68k/dl-static.c
+++ b/sysdeps/unix/sysv/linux/m68k/dl-static.c
@@ -1,5 +1,5 @@
/* Variable initialization. M68K version.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ldsodefs.h>
diff --git a/sysdeps/unix/sysv/linux/m68k/getmsg.c b/sysdeps/unix/sysv/linux/m68k/getmsg.c
deleted file mode 100644
index 3a1fa08525..0000000000
--- a/sysdeps/unix/sysv/linux/m68k/getmsg.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/getmsg.c>
diff --git a/sysdeps/unix/sysv/linux/m68k/getpagesize.c b/sysdeps/unix/sysv/linux/m68k/getpagesize.c
index 168da2f181..ac6016cfda 100644
--- a/sysdeps/unix/sysv/linux/m68k/getpagesize.c
+++ b/sysdeps/unix/sysv/linux/m68k/getpagesize.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@suse.de>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <sys/param.h>
diff --git a/sysdeps/unix/sysv/linux/m68k/getsysstats.c b/sysdeps/unix/sysv/linux/m68k/getsysstats.c
index f457ea5e6b..4183e31713 100644
--- a/sysdeps/unix/sysv/linux/m68k/getsysstats.c
+++ b/sysdeps/unix/sysv/linux/m68k/getsysstats.c
@@ -1,5 +1,5 @@
/* Determine various system internal values, Linux/m68k version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@suse.de>
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* We need to define a special parser for /proc/cpuinfo. */
diff --git a/sysdeps/unix/sysv/linux/m68k/init-first.c b/sysdeps/unix/sysv/linux/m68k/init-first.c
deleted file mode 100644
index 384a96c16d..0000000000
--- a/sysdeps/unix/sysv/linux/m68k/init-first.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/* Initialization code run first thing by the ELF startup code. Linux/m68k.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Maxim Kuvyrkov <maxim@codesourcery.com>, 2010.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-/* Note: linking in vDSO to a static binary requires changes to
- the main GLIBC proper. Not yet implemented. */
-#ifdef SHARED
-
-#include <dl-vdso.h>
-#include <m68k-vdso.h>
-
-static inline void
-_libc_vdso_platform_setup (void)
-{
- void *p;
-
- PREPARE_VERSION (linux26, "LINUX_2.6", 61765110);
-
- /* It may happen that rtld didn't initialize the vDSO, so fallback
- to the syscall implementations if _dl_vdso_vsym returns NULL.
- This may happen when a static executable dlopen's a dynamic library.
- This really is nothing more than a workaround for rtld/csu
- deficiency. Ideally, init code would setup the vDSO for static
- binaries too. */
-
- p = _dl_vdso_vsym ("__kernel_read_tp", &linux26);
- if (p != NULL)
- {
- __vdso_read_tp = p;
- __rtld___vdso_read_tp = p;
- }
- else
- assert (__vdso_read_tp == (void *) __vdso_read_tp_stub);
-
- p = _dl_vdso_vsym ("__kernel_atomic_cmpxchg_32", &linux26);
- if (p != NULL)
- {
- __vdso_atomic_cmpxchg_32 = p;
- __rtld___vdso_atomic_cmpxchg_32 = p;
- }
- else
- assert (__vdso_atomic_cmpxchg_32
- == (void *) __vdso_atomic_cmpxchg_32_stub);
-
- p = _dl_vdso_vsym ("__kernel_atomic_barrier", &linux26);
- if (p != NULL)
- {
- __vdso_atomic_barrier = p;
- __rtld___vdso_atomic_barrier = p;
- }
- else
- assert (__vdso_atomic_barrier == (void *) __vdso_atomic_barrier_stub);
-}
-
-#define VDSO_SETUP _libc_vdso_platform_setup
-
-#endif /* SHARED */
-
-#include <csu/init-first.c>
diff --git a/sysdeps/unix/sysv/linux/m68k/kernel-features.h b/sysdeps/unix/sysv/linux/m68k/kernel-features.h
index 6980f922e3..76f90ff8b4 100644
--- a/sysdeps/unix/sysv/linux/m68k/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/m68k/kernel-features.h
@@ -1,6 +1,6 @@
/* Set flags signalling availability of kernel features based on given
kernel version number.
- Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
@@ -15,10 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
-
-/* m68k uses socketcall. */
-#define __ASSUME_SOCKETCALL 1
+ <https://www.gnu.org/licenses/>. */
/* Direct socketcalls available with kernel 4.3. */
#if __LINUX_KERNEL_VERSION >= 0x040300
@@ -53,5 +50,9 @@
# undef __ASSUME_SET_ROBUST_LIST
#endif
-/* m68k only supports ipc syscall. */
-#undef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
+/* m68k only supports ipc syscall before 5.1. */
+#if __LINUX_KERNEL_VERSION < 0x050100
+# undef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
+# undef __ASSUME_SYSVIPC_DEFAULT_IPC_64
+#endif
+#define __ASSUME_SYSVIPC_BROKEN_MODE_T
diff --git a/sysdeps/unix/sysv/linux/m68k/kernel_sigaction.h b/sysdeps/unix/sysv/linux/m68k/kernel_sigaction.h
index 54972feb13..464b351d6d 100644
--- a/sysdeps/unix/sysv/linux/m68k/kernel_sigaction.h
+++ b/sysdeps/unix/sysv/linux/m68k/kernel_sigaction.h
@@ -1,22 +1,4 @@
-#ifndef _KERNEL_SIGACTION_H
-# define _KERNEL_SIGACTION_H
-
-#include <signal.h>
-
-#define SA_RESTORER 0x04000000
-
-/* This is the sigaction structure from the Linux 3.2 kernel. */
-struct kernel_sigaction
-{
- __sighandler_t k_sa_handler;
- sigset_t sa_mask;
- unsigned long sa_flags;
- void (*sa_restorer) (void);
-};
-
-#define SET_SA_RESTORER(kact, act) \
- (kact)->sa_restorer = (act)->sa_restorer
-#define RESET_SA_RESTORER(act, kact) \
- (act)->sa_restorer = (kact)->sa_restorer
-
-#endif
+/* m68k does not define SA_RESTORER, but does have sa_restorer member
+ on kernel sigaction struct. */
+#define HAS_SA_RESTORER 1
+#include <sysdeps/unix/sysv/linux/kernel_sigaction.h>
diff --git a/sysdeps/unix/sysv/linux/m68k/ldsodefs.h b/sysdeps/unix/sysv/linux/m68k/ldsodefs.h
index 5f1e91b9cc..bf0d53386e 100644
--- a/sysdeps/unix/sysv/linux/m68k/ldsodefs.h
+++ b/sysdeps/unix/sysv/linux/m68k/ldsodefs.h
@@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects. M68K.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LDSODEFS_H
diff --git a/sysdeps/unix/sysv/linux/m68k/libc-m68k-vdso.c b/sysdeps/unix/sysv/linux/m68k/libc-m68k-vdso.c
deleted file mode 100644
index 45982e99b9..0000000000
--- a/sysdeps/unix/sysv/linux/m68k/libc-m68k-vdso.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "m68k-vdso.c"
diff --git a/sysdeps/unix/sysv/linux/m68k/lockf64.c b/sysdeps/unix/sysv/linux/m68k/lockf64.c
deleted file mode 100644
index a88f5a784a..0000000000
--- a/sysdeps/unix/sysv/linux/m68k/lockf64.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/lockf64.c>
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/getcontext.S b/sysdeps/unix/sysv/linux/m68k/m680x0/getcontext.S
index 7fdf17ad11..746754ef54 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/getcontext.S
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/getcontext.S
@@ -1,5 +1,5 @@
/* Save current context.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index ddc7ebca67..ea5e7a41af 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -1825,6 +1825,11 @@ GLIBC_2.2 _flushlbf F
GLIBC_2.2 _res_hconf D 0x30
GLIBC_2.2 alphasort64 F
GLIBC_2.2 bind_textdomain_codeset F
+GLIBC_2.2 clock_getcpuclockid F
+GLIBC_2.2 clock_getres F
+GLIBC_2.2 clock_gettime F
+GLIBC_2.2 clock_nanosleep F
+GLIBC_2.2 clock_settime F
GLIBC_2.2 dcngettext F
GLIBC_2.2 dngettext F
GLIBC_2.2 fgetpos F
@@ -1989,6 +1994,9 @@ GLIBC_2.28 thrd_current F
GLIBC_2.28 thrd_equal F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
+GLIBC_2.29 getcpu F
+GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
+GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
GLIBC_2.3 __ctype_b_loc F
GLIBC_2.3 __ctype_tolower_loc F
GLIBC_2.3 __ctype_toupper_loc F
@@ -2143,6 +2151,13 @@ GLIBC_2.3.4 setipv4sourcefilter F
GLIBC_2.3.4 setsourcefilter F
GLIBC_2.3.4 xdr_quad_t F
GLIBC_2.3.4 xdr_u_quad_t F
+GLIBC_2.30 getdents64 F
+GLIBC_2.30 gettid F
+GLIBC_2.30 tgkill F
+GLIBC_2.30 twalk_r F
+GLIBC_2.31 msgctl F
+GLIBC_2.31 semctl F
+GLIBC_2.31 shmctl F
GLIBC_2.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
GLIBC_2.4 __fgets_unlocked_chk F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist
index 40ac529f7f..f0b17ae485 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist
@@ -804,3 +804,20 @@ GLIBC_2.28 fmul F
GLIBC_2.28 fmull F
GLIBC_2.28 fsub F
GLIBC_2.28 fsubl F
+GLIBC_2.29 exp F
+GLIBC_2.29 exp2 F
+GLIBC_2.29 log F
+GLIBC_2.29 log2 F
+GLIBC_2.29 pow F
+GLIBC_2.31 totalorder F
+GLIBC_2.31 totalorderf F
+GLIBC_2.31 totalorderf32 F
+GLIBC_2.31 totalorderf32x F
+GLIBC_2.31 totalorderf64 F
+GLIBC_2.31 totalorderl F
+GLIBC_2.31 totalordermag F
+GLIBC_2.31 totalordermagf F
+GLIBC_2.31 totalordermagf32 F
+GLIBC_2.31 totalordermagf32x F
+GLIBC_2.31 totalordermagf64 F
+GLIBC_2.31 totalordermagl F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
index bece86d246..68fd15047c 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
@@ -42,20 +42,11 @@ GLIBC_2.0 funlockfile F
GLIBC_2.0 longjmp F
GLIBC_2.0 lseek F
GLIBC_2.0 msync F
-GLIBC_2.0 nanosleep F
GLIBC_2.0 open F
GLIBC_2.0 pause F
GLIBC_2.0 pthread_atfork F
-GLIBC_2.0 pthread_attr_destroy F
-GLIBC_2.0 pthread_attr_getdetachstate F
-GLIBC_2.0 pthread_attr_getinheritsched F
-GLIBC_2.0 pthread_attr_getschedparam F
GLIBC_2.0 pthread_attr_getschedpolicy F
GLIBC_2.0 pthread_attr_getscope F
-GLIBC_2.0 pthread_attr_init F
-GLIBC_2.0 pthread_attr_setdetachstate F
-GLIBC_2.0 pthread_attr_setinheritsched F
-GLIBC_2.0 pthread_attr_setschedparam F
GLIBC_2.0 pthread_attr_setschedpolicy F
GLIBC_2.0 pthread_attr_setscope F
GLIBC_2.0 pthread_cancel F
@@ -69,7 +60,6 @@ GLIBC_2.0 pthread_condattr_destroy F
GLIBC_2.0 pthread_condattr_init F
GLIBC_2.0 pthread_create F
GLIBC_2.0 pthread_detach F
-GLIBC_2.0 pthread_equal F
GLIBC_2.0 pthread_exit F
GLIBC_2.0 pthread_getschedparam F
GLIBC_2.0 pthread_getspecific F
@@ -88,7 +78,6 @@ GLIBC_2.0 pthread_mutexattr_getkind_np F
GLIBC_2.0 pthread_mutexattr_init F
GLIBC_2.0 pthread_mutexattr_setkind_np F
GLIBC_2.0 pthread_once F
-GLIBC_2.0 pthread_self F
GLIBC_2.0 pthread_setcancelstate F
GLIBC_2.0 pthread_setcanceltype F
GLIBC_2.0 pthread_setschedparam F
@@ -114,7 +103,6 @@ GLIBC_2.0 siglongjmp F
GLIBC_2.0 sigwait F
GLIBC_2.0 system F
GLIBC_2.0 tcdrain F
-GLIBC_2.0 vfork F
GLIBC_2.0 wait F
GLIBC_2.0 waitpid F
GLIBC_2.0 write F
@@ -124,7 +112,6 @@ GLIBC_2.1 __libc_current_sigrtmin F
GLIBC_2.1 pthread_attr_getguardsize F
GLIBC_2.1 pthread_attr_getstackaddr F
GLIBC_2.1 pthread_attr_getstacksize F
-GLIBC_2.1 pthread_attr_init F
GLIBC_2.1 pthread_attr_setguardsize F
GLIBC_2.1 pthread_attr_setstackaddr F
GLIBC_2.1 pthread_attr_setstacksize F
@@ -155,7 +142,7 @@ GLIBC_2.1 sem_wait F
GLIBC_2.1.1 sem_close F
GLIBC_2.1.1 sem_open F
GLIBC_2.1.1 sem_unlink F
-GLIBC_2.1.2 __vfork F
+GLIBC_2.1.2 __libpthread_version_placeholder F
GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 pthread_getname_np F
GLIBC_2.12 pthread_mutex_consistent F
@@ -205,7 +192,7 @@ GLIBC_2.2 pwrite F
GLIBC_2.2 pwrite64 F
GLIBC_2.2 sem_timedwait F
GLIBC_2.2.3 pthread_getattr_np F
-GLIBC_2.2.6 __nanosleep F
+GLIBC_2.2.6 __libpthread_version_placeholder F
GLIBC_2.28 call_once F
GLIBC_2.28 cnd_broadcast F
GLIBC_2.28 cnd_destroy F
@@ -253,6 +240,12 @@ GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
GLIBC_2.3.4 pthread_setaffinity_np F
GLIBC_2.3.4 pthread_setschedprio F
+GLIBC_2.30 pthread_cond_clockwait F
+GLIBC_2.30 pthread_mutex_clocklock F
+GLIBC_2.30 pthread_rwlock_clockrdlock F
+GLIBC_2.30 pthread_rwlock_clockwrlock F
+GLIBC_2.30 sem_clockwait F
+GLIBC_2.31 pthread_clockjoin_np F
GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 pthread_mutex_getprioceiling F
GLIBC_2.4 pthread_mutex_setprioceiling F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
index 595f1b712a..bb03781dcc 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
@@ -15,11 +15,6 @@ GLIBC_2.1 aio_write F
GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
GLIBC_2.1 lio_listio64 F
-GLIBC_2.2 clock_getcpuclockid F
-GLIBC_2.2 clock_getres F
-GLIBC_2.2 clock_gettime F
-GLIBC_2.2 clock_nanosleep F
-GLIBC_2.2 clock_settime F
GLIBC_2.2 shm_open F
GLIBC_2.2 shm_unlink F
GLIBC_2.2 timer_create F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/makecontext.S b/sysdeps/unix/sysv/linux/m68k/m680x0/makecontext.S
index 841364936b..b2dc75ad62 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/makecontext.S
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/makecontext.S
@@ -1,5 +1,5 @@
/* Create new context.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/setcontext.S b/sysdeps/unix/sysv/linux/m68k/m680x0/setcontext.S
index 5dc7561ede..ddaffe0de5 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/setcontext.S
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/setcontext.S
@@ -1,5 +1,5 @@
/* Install given context.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/swapcontext.S b/sysdeps/unix/sysv/linux/m68k/m680x0/swapcontext.S
index 48e903f745..939fe87224 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/swapcontext.S
@@ -1,5 +1,5 @@
/* Save current context and install the given one.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/sysdep.h b/sysdeps/unix/sysv/linux/m68k/m680x0/sysdep.h
index a0bf2d0bd3..4e8d18ee2a 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/sysdep.h
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2010-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LINUX_M68K_M680X0_SYSDEP_H
#define _LINUX_M68K_M680X0_SYSDEP_H 1
diff --git a/sysdeps/unix/sysv/linux/m68k/m68k-helpers.S b/sysdeps/unix/sysv/linux/m68k/m68k-helpers.S
deleted file mode 100644
index 2921f6a12d..0000000000
--- a/sysdeps/unix/sysv/linux/m68k/m68k-helpers.S
+++ /dev/null
@@ -1,95 +0,0 @@
-/* Copyright (C) 2010-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Maxim Kuvyrkov <maxim@codesourcery.com>, 2010.
-
- 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.
-
- In addition to the permissions in the GNU Lesser General Public
- License, the Free Software Foundation gives you unlimited
- permission to link the compiled version of this file with other
- programs, and to distribute those programs without any restriction
- coming from the use of this file. (The GNU Lesser General Public
- License restrictions do apply in other respects; for example, they
- cover modification of the file, and distribution when not linked
- into another program.)
-
- Note that people who make modified versions of this file are not
- obligated to grant this special exception for their modified
- versions; it is their choice whether to do so. The GNU Lesser
- General Public License gives permission to release a modified
- version without this exception; this exception also makes it
- possible to release a modified version which carries forward this
- exception.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <m68k-vdso.h>
-
- .text
-
- .hidden __vdso_read_tp_stub
-ENTRY (__vdso_read_tp_stub)
- move.l #__NR_get_thread_area, %d0
- trap #0
- move.l %d0, %a0
- rts
-END (__vdso_read_tp_stub)
-
-# ifdef SHARED
-/* GCC will emit calls to this routine. Linux has an
- equivalent helper function (which clobbers fewer registers than
- a normal function call) in a vdso; tail call to the
- helper. */
-# if IS_IN (rtld)
-/* rtld gets a hidden copy of __m68k_read_tp. */
- .hidden __m68k_read_tp
-# endif
-ENTRY (__m68k_read_tp)
- LOAD_GOT (%a0)
- move.l M68K_VDSO_SYMBOL (__vdso_read_tp)@GOT(%a0), %a0
- move.l (%a0), %a0
- jmp (%a0)
-END (__m68k_read_tp)
-
-/* The following two stubs are for macros in atomic.h, they can't
- clobber anything. */
-
- .hidden __vdso_atomic_cmpxchg_32_stub
-ENTRY (__vdso_atomic_cmpxchg_32_stub)
- move.l %d2, -(%sp)
- cfi_adjust_cfa_offset (4)
- cfi_rel_offset (%d2, 0)
- move.l %d0, %d2
- move.l #SYS_ify (atomic_cmpxchg_32), %d0
- trap #0
- move.l (%sp)+, %d2
- cfi_adjust_cfa_offset (-4)
- cfi_restore (%d2)
- rts
-END (__vdso_atomic_cmpxchg_32_stub)
-
- .hidden __vdso_atomic_barrier_stub
-ENTRY (__vdso_atomic_barrier_stub)
- move.l %d0, -(%sp)
- cfi_adjust_cfa_offset (4)
- move.l #SYS_ify (atomic_barrier), %d0
- trap #0
- move.l (%sp)+, %d0
- cfi_adjust_cfa_offset (-4)
- rts
-END (__vdso_atomic_barrier_stub)
-# else /* !SHARED */
-/* If the vDSO is not available, use a syscall to get TP. */
- strong_alias (__vdso_read_tp_stub, __m68k_read_tp)
-# endif /* SHARED */
diff --git a/sysdeps/unix/sysv/linux/m68k/m68k-helpers.c b/sysdeps/unix/sysv/linux/m68k/m68k-helpers.c
new file mode 100644
index 0000000000..a182471c7f
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/m68k/m68k-helpers.c
@@ -0,0 +1,26 @@
+/* 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+void *
+__m68k_read_tp (void)
+{
+ INTERNAL_SYSCALL_DECL (err);
+ return (void*) INTERNAL_SYSCALL_CALL (get_thread_area, err);
+}
diff --git a/sysdeps/unix/sysv/linux/m68k/m68k-vdso.c b/sysdeps/unix/sysv/linux/m68k/m68k-vdso.c
deleted file mode 100644
index 3b7700e6a6..0000000000
--- a/sysdeps/unix/sysv/linux/m68k/m68k-vdso.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright (C) 2010-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Maxim Kuvyrkov <maxim@codesourcery.com>, 2010.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#ifdef SHARED
-
-#include <m68k-vdso.h>
-
-/* Because these pointers are used from other libraries than libc,
- they are exported at GLIBC_PRIVATE version.
- We initialize them to syscall implementation so that they will be ready
- to use from the very beginning. */
-void * M68K_VDSO_SYMBOL (__vdso_read_tp)
-= (void *) __vdso_read_tp_stub;
-void * M68K_VDSO_SYMBOL (__vdso_atomic_cmpxchg_32)
-= (void *) __vdso_atomic_cmpxchg_32_stub;
-void * M68K_VDSO_SYMBOL (__vdso_atomic_barrier)
-= (void *) __vdso_atomic_barrier_stub;
-
-#endif /* SHARED */
diff --git a/sysdeps/unix/sysv/linux/m68k/m68k-vdso.h b/sysdeps/unix/sysv/linux/m68k/m68k-vdso.h
deleted file mode 100644
index 6caf15c356..0000000000
--- a/sysdeps/unix/sysv/linux/m68k/m68k-vdso.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Resolve function pointers to VDSO functions.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Maxim Kuvyrkov <maxim@codesourcery.com>, 2010.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-
-#ifndef _M68K_VDSO_H
-#define _M68K_VDSO_H
-
-#ifdef SHARED
-
-# if IS_IN (rtld)
-# define M68K_VDSO_SYMBOL(name) __rtld_##name
-# define STR_M68K_VDSO_SYMBOL(name) "__rtld_" #name
-# else
-# define M68K_VDSO_SYMBOL(name) name
-# define STR_M68K_VDSO_SYMBOL(name) #name
-# endif
-
-# ifndef __ASSEMBLER__
-
-/* We define __rtld_* copies for rtld.
- We need them visible in libc to initialize. */
-# if IS_IN (rtld) || IS_IN (libc)
-extern void *__rtld___vdso_read_tp;
-extern void *__rtld___vdso_atomic_cmpxchg_32;
-extern void *__rtld___vdso_atomic_barrier;
-
-/* These stubs are meant to be invoked only from the assembly. */
-extern void __vdso_read_tp_stub (void);
-extern void __vdso_atomic_cmpxchg_32_stub (void);
-extern void __vdso_atomic_barrier_stub (void);
-# endif /* IS_IN (rtld) || IS_IN (libc) */
-
-/* RTLD should only use its own copies. */
-# if !IS_IN (rtld)
-extern void *__vdso_read_tp;
-extern void *__vdso_atomic_cmpxchg_32;
-extern void *__vdso_atomic_barrier;
-# endif /* !IS_IN (rtld) */
-
-# endif /* !__ASSEMBLER__ */
-
-#endif /* SHARED */
-
-#endif /* _M68K_VDSO_H */
diff --git a/sysdeps/unix/sysv/linux/m68k/mmap_internal.h b/sysdeps/unix/sysv/linux/m68k/mmap_internal.h
index cf6d3ee886..e702d61508 100644
--- a/sysdeps/unix/sysv/linux/m68k/mmap_internal.h
+++ b/sysdeps/unix/sysv/linux/m68k/mmap_internal.h
@@ -1,5 +1,5 @@
/* Common mmap definition for Linux implementation. Linux/m68k version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef MMAP_M68K_INTERNAL_LINUX_H
#define MMAP_M68K_INTERNAL_LINUX_H
diff --git a/sysdeps/unix/sysv/linux/m68k/mremap.S b/sysdeps/unix/sysv/linux/m68k/mremap.S
index d077c74614..8eee4a681a 100644
--- a/sysdeps/unix/sysv/linux/m68k/mremap.S
+++ b/sysdeps/unix/sysv/linux/m68k/mremap.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/m68k/pt-vfork.c b/sysdeps/unix/sysv/linux/m68k/pt-vfork.c
deleted file mode 100644
index 5fbc6526aa..0000000000
--- a/sysdeps/unix/sysv/linux/m68k/pt-vfork.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/aarch64/pt-vfork.c>
diff --git a/sysdeps/unix/sysv/linux/m68k/putmsg.c b/sysdeps/unix/sysv/linux/m68k/putmsg.c
deleted file mode 100644
index ebc1680ca7..0000000000
--- a/sysdeps/unix/sysv/linux/m68k/putmsg.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/putmsg.c>
diff --git a/sysdeps/unix/sysv/linux/m68k/register-dump.h b/sysdeps/unix/sysv/linux/m68k/register-dump.h
index c0cc7f6156..696dd13703 100644
--- a/sysdeps/unix/sysv/linux/m68k/register-dump.h
+++ b/sysdeps/unix/sysv/linux/m68k/register-dump.h
@@ -1,5 +1,5 @@
/* Dump registers.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@gnu.org>.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <sys/uio.h>
@@ -39,35 +39,9 @@
*/
-/* Linux saves only the call-clobbered registers in the sigcontext. We
- need to use a trampoline that saves the rest so that the C code can
- access them. We use the sc_fpstate field, since the handler is not
- supposed to return anyway, thus it doesn't matter that it's clobbered. */
-
-/* static */ void catch_segfault (int, int, struct sigcontext *);
-
-/* Dummy function so that we can use asm with arguments. */
-static void __attribute_used__
-__dummy__ (void)
-{
- asm ("\n\
-catch_segfault:\n\
- move.l 12(%%sp),%%a0\n\
- lea %c0(%%a0),%%a0\n\
- /* Clear the first 4 bytes to make it a null fp state, just\n\
- in case the handler does return. */\n\
- clr.l (%%a0)+\n\
- movem.l %%d2-%%d7/%%a2-%%a6,(%%a0)\n"
-#ifndef __mcoldfire__
- "fmovem.x %%fp2-%%fp7,11*4(%%a0)\n"
-#elif defined __mcffpu__
- "fmovem.d %%fp2-%%fp7,11*4(%%a0)\n"
-#endif
- "jra real_catch_segfault"
- : : "n" (offsetof (struct sigcontext, sc_fpstate)));
-}
-#define catch_segfault(a,b) \
- __attribute_used__ real_catch_segfault(a,b)
+#define FPCONTEXT_SIZE 216
+#define uc_formatvec __glibc_reserved1[FPCONTEXT_SIZE/4]
+#define uc_oldmask uc_sigmask.__val[0]
static void
hexvalue (unsigned long int value, char *buf, size_t len)
@@ -78,13 +52,11 @@ hexvalue (unsigned long int value, char *buf, size_t len)
}
static void
-register_dump (int fd, struct sigcontext *ctx)
+register_dump (int fd, struct ucontext_t *ctx)
{
char regs[20][8];
char fpregs[11][24];
struct iovec iov[63], *next_iov = iov;
- unsigned long *p = (unsigned long *) ctx->sc_fpstate + 1;
- unsigned long *pfp = (unsigned long *) ctx->sc_fpregs;
int i, j, fpreg_size;
#define ADD_STRING(str) \
@@ -103,35 +75,33 @@ register_dump (int fd, struct sigcontext *ctx)
#endif
/* Generate strings of register contents. */
- hexvalue (ctx->sc_d0, regs[0], 8);
- hexvalue (ctx->sc_d1, regs[1], 8);
- hexvalue (*p++, regs[2], 8);
- hexvalue (*p++, regs[3], 8);
- hexvalue (*p++, regs[4], 8);
- hexvalue (*p++, regs[5], 8);
- hexvalue (*p++, regs[6], 8);
- hexvalue (*p++, regs[7], 8);
- hexvalue (ctx->sc_a0, regs[8], 8);
- hexvalue (ctx->sc_a1, regs[9], 8);
- hexvalue (*p++, regs[10], 8);
- hexvalue (*p++, regs[11], 8);
- hexvalue (*p++, regs[12], 8);
- hexvalue (*p++, regs[13], 8);
- hexvalue (*p++, regs[14], 8);
- hexvalue (ctx->sc_usp, regs[15], 8);
- hexvalue (ctx->sc_pc, regs[16], 8);
- hexvalue (ctx->sc_sr, regs[17], 4);
- hexvalue (ctx->sc_mask, regs[18], 8);
- hexvalue (ctx->sc_formatvec & 0xfff, regs[19], 4);
- for (i = 0; i < 2; i++)
- for (j = 0; j < fpreg_size; j += 8)
- hexvalue (*pfp++, fpregs[i] + j, 8);
- for (i = 2; i < 8; i++)
+ hexvalue (ctx->uc_mcontext.gregs[R_D0], regs[0], 8);
+ hexvalue (ctx->uc_mcontext.gregs[R_D1], regs[1], 8);
+ hexvalue (ctx->uc_mcontext.gregs[R_D2], regs[2], 8);
+ hexvalue (ctx->uc_mcontext.gregs[R_D3], regs[3], 8);
+ hexvalue (ctx->uc_mcontext.gregs[R_D4], regs[4], 8);
+ hexvalue (ctx->uc_mcontext.gregs[R_D5], regs[5], 8);
+ hexvalue (ctx->uc_mcontext.gregs[R_D6], regs[6], 8);
+ hexvalue (ctx->uc_mcontext.gregs[R_D7], regs[7], 8);
+ hexvalue (ctx->uc_mcontext.gregs[R_A0], regs[8], 8);
+ hexvalue (ctx->uc_mcontext.gregs[R_A1], regs[9], 8);
+ hexvalue (ctx->uc_mcontext.gregs[R_A2], regs[10], 8);
+ hexvalue (ctx->uc_mcontext.gregs[R_A3], regs[11], 8);
+ hexvalue (ctx->uc_mcontext.gregs[R_A4], regs[12], 8);
+ hexvalue (ctx->uc_mcontext.gregs[R_A5], regs[13], 8);
+ hexvalue (ctx->uc_mcontext.gregs[R_A6], regs[14], 8);
+ hexvalue (ctx->uc_mcontext.gregs[R_SP], regs[15], 8);
+ hexvalue (ctx->uc_mcontext.gregs[R_PC], regs[16], 8);
+ hexvalue (ctx->uc_mcontext.gregs[R_PS], regs[17], 4);
+ hexvalue (ctx->uc_oldmask, regs[18], 8);
+ hexvalue (ctx->uc_formatvec & 0xfff, regs[19], 4);
+
+ for (i = 0; i < 8; i++)
for (j = 0; j < fpreg_size; j += 8)
- hexvalue (*p++, fpregs[i] + j, 8);
- hexvalue (ctx->sc_fpcntl[0], fpregs[8], 8);
- hexvalue (ctx->sc_fpcntl[1], fpregs[9], 8);
- hexvalue (ctx->sc_fpcntl[2], fpregs[10], 8);
+ hexvalue (ctx->uc_mcontext.fpregs.f_fpregs[i][j/8], fpregs[i] + j, 8);
+ hexvalue (ctx->uc_mcontext.fpregs.f_pcr, fpregs[8], 8);
+ hexvalue (ctx->uc_mcontext.fpregs.f_psr, fpregs[9], 8);
+ hexvalue (ctx->uc_mcontext.fpregs.f_fpiaddr, fpregs[10], 8);
/* Generate the output. */
ADD_STRING ("Register dump:\n\n D0: ");
diff --git a/sysdeps/unix/sysv/linux/m68k/sigcontextinfo.h b/sysdeps/unix/sysv/linux/m68k/sigcontextinfo.h
index 98e28beb8a..d9d1aebf47 100644
--- a/sysdeps/unix/sysv/linux/m68k/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/m68k/sigcontextinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>, 1998.
@@ -14,7 +14,15 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#define SIGCONTEXT int _code, struct sigcontext *
-#define GET_PC(ctx) ((void *) (ctx)->sc_pc)
+#ifndef _SIGCONTEXTINFO_H
+#define _SIGCONTEXTINFO_H
+
+static inline uintptr_t
+sigcontext_get_pc (const ucontext_t *ctx)
+{
+ return ctx->uc_mcontext.gregs[R_PC];
+}
+
+#endif
diff --git a/sysdeps/unix/sysv/linux/m68k/sys/procfs.h b/sysdeps/unix/sysv/linux/m68k/sys/procfs.h
deleted file mode 100644
index fda6d980b9..0000000000
--- a/sysdeps/unix/sysv/linux/m68k/sys/procfs.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/* Copyright (C) 1996-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_PROCFS_H
-#define _SYS_PROCFS_H 1
-
-/* This is somewhat modelled after the file of the same name on SVR4
- systems. It provides a definition of the core file format for ELF
- used on Linux. It doesn't have anything to do with the /proc file
- system, even though Linux has one.
-
- Anyway, the whole purpose of this file is for GDB and GDB only.
- Don't read too much into it. Don't use it for anything other than
- GDB unless you know what you are doing. */
-
-#include <features.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#include <sys/user.h>
-
-__BEGIN_DECLS
-
-/* Type for a general-purpose register. */
-typedef unsigned long elf_greg_t;
-
-/* And the whole bunch of them. We could have used `struct
- user_regs_struct' directly in the typedef, but tradition says that
- the register set is an array, which does have some peculiar
- semantics, so leave it that way. */
-#define ELF_NGREG (sizeof (struct user_regs_struct) / sizeof(elf_greg_t))
-typedef elf_greg_t elf_gregset_t[ELF_NGREG];
-
-/* Register set for the floating-point registers. */
-typedef struct user_m68kfp_struct elf_fpregset_t;
-
-
-/* Signal info. */
-struct elf_siginfo
- {
- int si_signo; /* Signal number. */
- int si_code; /* Extra code. */
- int si_errno; /* Errno. */
- };
-
-
-/* Definitions to generate Intel SVR4-like core files. These mostly
- have the same names as the SVR4 types with "elf_" tacked on the
- front to prevent clashes with Linux definitions, and the typedef
- forms have been avoided. This is mostly like the SVR4 structure,
- but more Linuxy, with things that Linux does not support and which
- GDB doesn't really use excluded. */
-
-struct elf_prstatus
- {
- struct elf_siginfo pr_info; /* Info associated with signal. */
- short int pr_cursig; /* Current signal. */
- unsigned long int pr_sigpend; /* Set of pending signals. */
- unsigned long int pr_sighold; /* Set of held signals. */
- __pid_t pr_pid;
- __pid_t pr_ppid;
- __pid_t pr_pgrp;
- __pid_t pr_sid;
- struct timeval pr_utime; /* User time. */
- struct timeval pr_stime; /* System time. */
- struct timeval pr_cutime; /* Cumulative user time. */
- struct timeval pr_cstime; /* Cumulative system time. */
- elf_gregset_t pr_reg; /* GP registers. */
- int pr_fpvalid; /* True if math copro being used. */
- };
-
-
-#define ELF_PRARGSZ (80) /* Number of chars for args. */
-
-struct elf_prpsinfo
- {
- char pr_state; /* Numeric process state. */
- char pr_sname; /* Char for pr_state. */
- char pr_zomb; /* Zombie. */
- char pr_nice; /* Nice val. */
- unsigned long int pr_flag; /* Flags. */
- unsigned short int pr_uid;
- unsigned short int pr_gid;
- int pr_pid, pr_ppid, pr_pgrp, pr_sid;
- /* Lots missing */
- char pr_fname[16]; /* Filename of executable. */
- char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
- };
-
-
-/* The rest of this file provides the types for emulation of the
- Solaris <proc_service.h> interfaces that should be implemented by
- users of libthread_db. */
-
-/* Addresses. */
-typedef void *psaddr_t;
-
-/* Register sets. Linux has different names. */
-typedef elf_gregset_t prgregset_t;
-typedef elf_fpregset_t prfpregset_t;
-
-/* We don't have any differences between processes and threads,
- therefore have only one PID type. */
-typedef __pid_t lwpid_t;
-
-/* Process status and info. In the end we do provide typedefs for them. */
-typedef struct elf_prstatus prstatus_t;
-typedef struct elf_prpsinfo prpsinfo_t;
-
-__END_DECLS
-
-#endif /* sys/procfs.h */
diff --git a/sysdeps/unix/sysv/linux/m68k/sys/reg.h b/sysdeps/unix/sysv/linux/m68k/sys/reg.h
index fe257276b9..13041d3be8 100644
--- a/sysdeps/unix/sysv/linux/m68k/sys/reg.h
+++ b/sysdeps/unix/sysv/linux/m68k/sys/reg.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_REG_H
#define _SYS_REG_H 1
diff --git a/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h b/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h
index 48b8a09629..d7a9c94e48 100644
--- a/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* System V/m68k ABI compliant context switching support. */
diff --git a/sysdeps/unix/sysv/linux/m68k/sys/user.h b/sysdeps/unix/sysv/linux/m68k/sys/user.h
index e1c3a85358..490d970bdc 100644
--- a/sysdeps/unix/sysv/linux/m68k/sys/user.h
+++ b/sysdeps/unix/sysv/linux/m68k/sys/user.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_USER_H
#define _SYS_USER_H 1
diff --git a/sysdeps/unix/sysv/linux/m68k/syscall.S b/sysdeps/unix/sysv/linux/m68k/syscall.S
index 67f1c22609..cbdc0fc9ac 100644
--- a/sysdeps/unix/sysv/linux/m68k/syscall.S
+++ b/sysdeps/unix/sysv/linux/m68k/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/m68k/sysdep.S b/sysdeps/unix/sysv/linux/m68k/sysdep.S
index 18c0d9cf8b..5216224520 100644
--- a/sysdeps/unix/sysv/linux/m68k/sysdep.S
+++ b/sysdeps/unix/sysv/linux/m68k/sysdep.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/m68k/sysdep.h b/sysdeps/unix/sysv/linux/m68k/sysdep.h
index a8da24ebf4..2f10f25764 100644
--- a/sysdeps/unix/sysv/linux/m68k/sysdep.h
+++ b/sysdeps/unix/sysv/linux/m68k/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Andreas Schwab, <schwab@issan.informatik.uni-dortmund.de>,
December 1995.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/unix/sysv/linux/sysdep.h>
#include <tls.h>
diff --git a/sysdeps/unix/sysv/linux/m68k/vfork.S b/sysdeps/unix/sysv/linux/m68k/vfork.S
index 014e91159a..143d1ff018 100644
--- a/sysdeps/unix/sysv/linux/m68k/vfork.S
+++ b/sysdeps/unix/sysv/linux/m68k/vfork.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@gnu.org>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#define _ERRNO_H 1
diff --git a/sysdeps/unix/sysv/linux/malloc-sysdep.h b/sysdeps/unix/sysv/linux/malloc-sysdep.h
index 364a78ee86..b37eb17b0a 100644
--- a/sysdeps/unix/sysv/linux/malloc-sysdep.h
+++ b/sysdeps/unix/sysv/linux/malloc-sysdep.h
@@ -1,5 +1,5 @@
/* System-specific malloc support functions. Linux version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fcntl.h>
#include <not-cancel.h>
diff --git a/sysdeps/unix/sysv/linux/microblaze/____longjmp_chk.S b/sysdeps/unix/sysv/linux/microblaze/____longjmp_chk.S
index 8eb4d5ec51..b791b0d977 100644
--- a/sysdeps/unix/sysv/linux/microblaze/____longjmp_chk.S
+++ b/sysdeps/unix/sysv/linux/microblaze/____longjmp_chk.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/Implies b/sysdeps/unix/sysv/linux/microblaze/be/Implies
new file mode 100644
index 0000000000..41b4c22a0c
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/microblaze/be/Implies
@@ -0,0 +1 @@
+unix/sysv/linux/microblaze
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/Versions b/sysdeps/unix/sysv/linux/microblaze/be/Versions
new file mode 100644
index 0000000000..a50cd57630
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/microblaze/be/Versions
@@ -0,0 +1,5 @@
+libc {
+ GLIBC_2.31 {
+ msgctl; semctl; shmctl;
+ }
+}
diff --git a/sysdeps/unix/sysv/linux/microblaze/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libBrokenLocale.abilist
index bc5edf6352..bc5edf6352 100644
--- a/sysdeps/unix/sysv/linux/microblaze/libBrokenLocale.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libBrokenLocale.abilist
diff --git a/sysdeps/unix/sysv/linux/microblaze/libanl.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libanl.abilist
index 67c7554803..67c7554803 100644
--- a/sysdeps/unix/sysv/linux/microblaze/libanl.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libanl.abilist
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
new file mode 100644
index 0000000000..ac55b0acd7
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -0,0 +1,2142 @@
+GLIBC_2.18 _Exit F
+GLIBC_2.18 _IO_2_1_stderr_ D 0x98
+GLIBC_2.18 _IO_2_1_stdin_ D 0x98
+GLIBC_2.18 _IO_2_1_stdout_ D 0x98
+GLIBC_2.18 _IO_adjust_column F
+GLIBC_2.18 _IO_adjust_wcolumn F
+GLIBC_2.18 _IO_default_doallocate F
+GLIBC_2.18 _IO_default_finish F
+GLIBC_2.18 _IO_default_pbackfail F
+GLIBC_2.18 _IO_default_uflow F
+GLIBC_2.18 _IO_default_xsgetn F
+GLIBC_2.18 _IO_default_xsputn F
+GLIBC_2.18 _IO_do_write F
+GLIBC_2.18 _IO_doallocbuf F
+GLIBC_2.18 _IO_fclose F
+GLIBC_2.18 _IO_fdopen F
+GLIBC_2.18 _IO_feof F
+GLIBC_2.18 _IO_ferror F
+GLIBC_2.18 _IO_fflush F
+GLIBC_2.18 _IO_fgetpos F
+GLIBC_2.18 _IO_fgetpos64 F
+GLIBC_2.18 _IO_fgets F
+GLIBC_2.18 _IO_file_attach F
+GLIBC_2.18 _IO_file_close F
+GLIBC_2.18 _IO_file_close_it F
+GLIBC_2.18 _IO_file_doallocate F
+GLIBC_2.18 _IO_file_finish F
+GLIBC_2.18 _IO_file_fopen F
+GLIBC_2.18 _IO_file_init F
+GLIBC_2.18 _IO_file_jumps D 0x54
+GLIBC_2.18 _IO_file_open F
+GLIBC_2.18 _IO_file_overflow F
+GLIBC_2.18 _IO_file_read F
+GLIBC_2.18 _IO_file_seek F
+GLIBC_2.18 _IO_file_seekoff F
+GLIBC_2.18 _IO_file_setbuf F
+GLIBC_2.18 _IO_file_stat F
+GLIBC_2.18 _IO_file_sync F
+GLIBC_2.18 _IO_file_underflow F
+GLIBC_2.18 _IO_file_write F
+GLIBC_2.18 _IO_file_xsputn F
+GLIBC_2.18 _IO_flockfile F
+GLIBC_2.18 _IO_flush_all F
+GLIBC_2.18 _IO_flush_all_linebuffered F
+GLIBC_2.18 _IO_fopen F
+GLIBC_2.18 _IO_fprintf F
+GLIBC_2.18 _IO_fputs F
+GLIBC_2.18 _IO_fread F
+GLIBC_2.18 _IO_free_backup_area F
+GLIBC_2.18 _IO_free_wbackup_area F
+GLIBC_2.18 _IO_fsetpos F
+GLIBC_2.18 _IO_fsetpos64 F
+GLIBC_2.18 _IO_ftell F
+GLIBC_2.18 _IO_ftrylockfile F
+GLIBC_2.18 _IO_funlockfile F
+GLIBC_2.18 _IO_fwrite F
+GLIBC_2.18 _IO_getc F
+GLIBC_2.18 _IO_getline F
+GLIBC_2.18 _IO_getline_info F
+GLIBC_2.18 _IO_gets F
+GLIBC_2.18 _IO_init F
+GLIBC_2.18 _IO_init_marker F
+GLIBC_2.18 _IO_init_wmarker F
+GLIBC_2.18 _IO_iter_begin F
+GLIBC_2.18 _IO_iter_end F
+GLIBC_2.18 _IO_iter_file F
+GLIBC_2.18 _IO_iter_next F
+GLIBC_2.18 _IO_least_wmarker F
+GLIBC_2.18 _IO_link_in F
+GLIBC_2.18 _IO_list_all D 0x4
+GLIBC_2.18 _IO_list_lock F
+GLIBC_2.18 _IO_list_resetlock F
+GLIBC_2.18 _IO_list_unlock F
+GLIBC_2.18 _IO_marker_delta F
+GLIBC_2.18 _IO_marker_difference F
+GLIBC_2.18 _IO_padn F
+GLIBC_2.18 _IO_peekc_locked F
+GLIBC_2.18 _IO_popen F
+GLIBC_2.18 _IO_printf F
+GLIBC_2.18 _IO_proc_close F
+GLIBC_2.18 _IO_proc_open F
+GLIBC_2.18 _IO_putc F
+GLIBC_2.18 _IO_puts F
+GLIBC_2.18 _IO_remove_marker F
+GLIBC_2.18 _IO_seekmark F
+GLIBC_2.18 _IO_seekoff F
+GLIBC_2.18 _IO_seekpos F
+GLIBC_2.18 _IO_seekwmark F
+GLIBC_2.18 _IO_setb F
+GLIBC_2.18 _IO_setbuffer F
+GLIBC_2.18 _IO_setvbuf F
+GLIBC_2.18 _IO_sgetn F
+GLIBC_2.18 _IO_sprintf F
+GLIBC_2.18 _IO_sputbackc F
+GLIBC_2.18 _IO_sputbackwc F
+GLIBC_2.18 _IO_sscanf F
+GLIBC_2.18 _IO_str_init_readonly F
+GLIBC_2.18 _IO_str_init_static F
+GLIBC_2.18 _IO_str_overflow F
+GLIBC_2.18 _IO_str_pbackfail F
+GLIBC_2.18 _IO_str_seekoff F
+GLIBC_2.18 _IO_str_underflow F
+GLIBC_2.18 _IO_sungetc F
+GLIBC_2.18 _IO_sungetwc F
+GLIBC_2.18 _IO_switch_to_get_mode F
+GLIBC_2.18 _IO_switch_to_main_wget_area F
+GLIBC_2.18 _IO_switch_to_wbackup_area F
+GLIBC_2.18 _IO_switch_to_wget_mode F
+GLIBC_2.18 _IO_un_link F
+GLIBC_2.18 _IO_ungetc F
+GLIBC_2.18 _IO_unsave_markers F
+GLIBC_2.18 _IO_unsave_wmarkers F
+GLIBC_2.18 _IO_vfprintf F
+GLIBC_2.18 _IO_vfscanf F
+GLIBC_2.18 _IO_vsprintf F
+GLIBC_2.18 _IO_wdefault_doallocate F
+GLIBC_2.18 _IO_wdefault_finish F
+GLIBC_2.18 _IO_wdefault_pbackfail F
+GLIBC_2.18 _IO_wdefault_uflow F
+GLIBC_2.18 _IO_wdefault_xsgetn F
+GLIBC_2.18 _IO_wdefault_xsputn F
+GLIBC_2.18 _IO_wdo_write F
+GLIBC_2.18 _IO_wdoallocbuf F
+GLIBC_2.18 _IO_wfile_jumps D 0x54
+GLIBC_2.18 _IO_wfile_overflow F
+GLIBC_2.18 _IO_wfile_seekoff F
+GLIBC_2.18 _IO_wfile_sync F
+GLIBC_2.18 _IO_wfile_underflow F
+GLIBC_2.18 _IO_wfile_xsputn F
+GLIBC_2.18 _IO_wmarker_delta F
+GLIBC_2.18 _IO_wsetb F
+GLIBC_2.18 ___brk_addr D 0x4
+GLIBC_2.18 __adjtimex F
+GLIBC_2.18 __after_morecore_hook D 0x4
+GLIBC_2.18 __argz_count F
+GLIBC_2.18 __argz_next F
+GLIBC_2.18 __argz_stringify F
+GLIBC_2.18 __asprintf F
+GLIBC_2.18 __asprintf_chk F
+GLIBC_2.18 __assert F
+GLIBC_2.18 __assert_fail F
+GLIBC_2.18 __assert_perror_fail F
+GLIBC_2.18 __backtrace F
+GLIBC_2.18 __backtrace_symbols F
+GLIBC_2.18 __backtrace_symbols_fd F
+GLIBC_2.18 __bsd_getpgrp F
+GLIBC_2.18 __bzero F
+GLIBC_2.18 __check_rhosts_file D 0x4
+GLIBC_2.18 __chk_fail F
+GLIBC_2.18 __clone F
+GLIBC_2.18 __close F
+GLIBC_2.18 __cmsg_nxthdr F
+GLIBC_2.18 __confstr_chk F
+GLIBC_2.18 __connect F
+GLIBC_2.18 __ctype_b_loc F
+GLIBC_2.18 __ctype_get_mb_cur_max F
+GLIBC_2.18 __ctype_tolower_loc F
+GLIBC_2.18 __ctype_toupper_loc F
+GLIBC_2.18 __curbrk D 0x4
+GLIBC_2.18 __cxa_at_quick_exit F
+GLIBC_2.18 __cxa_atexit F
+GLIBC_2.18 __cxa_finalize F
+GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 __cyg_profile_func_enter F
+GLIBC_2.18 __cyg_profile_func_exit F
+GLIBC_2.18 __daylight D 0x4
+GLIBC_2.18 __dcgettext F
+GLIBC_2.18 __default_morecore F
+GLIBC_2.18 __dgettext F
+GLIBC_2.18 __dprintf_chk F
+GLIBC_2.18 __dup2 F
+GLIBC_2.18 __duplocale F
+GLIBC_2.18 __endmntent F
+GLIBC_2.18 __environ D 0x4
+GLIBC_2.18 __errno_location F
+GLIBC_2.18 __fbufsize F
+GLIBC_2.18 __fcntl F
+GLIBC_2.18 __fdelt_chk F
+GLIBC_2.18 __fdelt_warn F
+GLIBC_2.18 __ffs F
+GLIBC_2.18 __fgets_chk F
+GLIBC_2.18 __fgets_unlocked_chk F
+GLIBC_2.18 __fgetws_chk F
+GLIBC_2.18 __fgetws_unlocked_chk F
+GLIBC_2.18 __finite F
+GLIBC_2.18 __finitef F
+GLIBC_2.18 __finitel F
+GLIBC_2.18 __flbf F
+GLIBC_2.18 __fork F
+GLIBC_2.18 __fpending F
+GLIBC_2.18 __fprintf_chk F
+GLIBC_2.18 __fpu_control D 0x4
+GLIBC_2.18 __fpurge F
+GLIBC_2.18 __fread_chk F
+GLIBC_2.18 __fread_unlocked_chk F
+GLIBC_2.18 __freadable F
+GLIBC_2.18 __freading F
+GLIBC_2.18 __free_hook D 0x4
+GLIBC_2.18 __freelocale F
+GLIBC_2.18 __fsetlocking F
+GLIBC_2.18 __fwprintf_chk F
+GLIBC_2.18 __fwritable F
+GLIBC_2.18 __fwriting F
+GLIBC_2.18 __fxstat F
+GLIBC_2.18 __fxstat64 F
+GLIBC_2.18 __fxstatat F
+GLIBC_2.18 __fxstatat64 F
+GLIBC_2.18 __getauxval F
+GLIBC_2.18 __getcwd_chk F
+GLIBC_2.18 __getdelim F
+GLIBC_2.18 __getdomainname_chk F
+GLIBC_2.18 __getgroups_chk F
+GLIBC_2.18 __gethostname_chk F
+GLIBC_2.18 __getlogin_r_chk F
+GLIBC_2.18 __getmntent_r F
+GLIBC_2.18 __getpagesize F
+GLIBC_2.18 __getpgid F
+GLIBC_2.18 __getpid F
+GLIBC_2.18 __gets_chk F
+GLIBC_2.18 __gettimeofday F
+GLIBC_2.18 __getwd_chk F
+GLIBC_2.18 __gmtime_r F
+GLIBC_2.18 __h_errno_location F
+GLIBC_2.18 __isalnum_l F
+GLIBC_2.18 __isalpha_l F
+GLIBC_2.18 __isascii_l F
+GLIBC_2.18 __isblank_l F
+GLIBC_2.18 __iscntrl_l F
+GLIBC_2.18 __isctype F
+GLIBC_2.18 __isdigit_l F
+GLIBC_2.18 __isgraph_l F
+GLIBC_2.18 __isinf F
+GLIBC_2.18 __isinff F
+GLIBC_2.18 __isinfl F
+GLIBC_2.18 __islower_l F
+GLIBC_2.18 __isnan F
+GLIBC_2.18 __isnanf F
+GLIBC_2.18 __isnanl F
+GLIBC_2.18 __isoc99_fscanf F
+GLIBC_2.18 __isoc99_fwscanf F
+GLIBC_2.18 __isoc99_scanf F
+GLIBC_2.18 __isoc99_sscanf F
+GLIBC_2.18 __isoc99_swscanf F
+GLIBC_2.18 __isoc99_vfscanf F
+GLIBC_2.18 __isoc99_vfwscanf F
+GLIBC_2.18 __isoc99_vscanf F
+GLIBC_2.18 __isoc99_vsscanf F
+GLIBC_2.18 __isoc99_vswscanf F
+GLIBC_2.18 __isoc99_vwscanf F
+GLIBC_2.18 __isoc99_wscanf F
+GLIBC_2.18 __isprint_l F
+GLIBC_2.18 __ispunct_l F
+GLIBC_2.18 __isspace_l F
+GLIBC_2.18 __isupper_l F
+GLIBC_2.18 __iswalnum_l F
+GLIBC_2.18 __iswalpha_l F
+GLIBC_2.18 __iswblank_l F
+GLIBC_2.18 __iswcntrl_l F
+GLIBC_2.18 __iswctype F
+GLIBC_2.18 __iswctype_l F
+GLIBC_2.18 __iswdigit_l F
+GLIBC_2.18 __iswgraph_l F
+GLIBC_2.18 __iswlower_l F
+GLIBC_2.18 __iswprint_l F
+GLIBC_2.18 __iswpunct_l F
+GLIBC_2.18 __iswspace_l F
+GLIBC_2.18 __iswupper_l F
+GLIBC_2.18 __iswxdigit_l F
+GLIBC_2.18 __isxdigit_l F
+GLIBC_2.18 __ivaliduser F
+GLIBC_2.18 __key_decryptsession_pk_LOCAL D 0x4
+GLIBC_2.18 __key_encryptsession_pk_LOCAL D 0x4
+GLIBC_2.18 __key_gendes_LOCAL D 0x4
+GLIBC_2.18 __libc_allocate_rtsig F
+GLIBC_2.18 __libc_calloc F
+GLIBC_2.18 __libc_current_sigrtmax F
+GLIBC_2.18 __libc_current_sigrtmin F
+GLIBC_2.18 __libc_free F
+GLIBC_2.18 __libc_freeres F
+GLIBC_2.18 __libc_init_first F
+GLIBC_2.18 __libc_mallinfo F
+GLIBC_2.18 __libc_malloc F
+GLIBC_2.18 __libc_mallopt F
+GLIBC_2.18 __libc_memalign F
+GLIBC_2.18 __libc_pvalloc F
+GLIBC_2.18 __libc_realloc F
+GLIBC_2.18 __libc_sa_len F
+GLIBC_2.18 __libc_start_main F
+GLIBC_2.18 __libc_valloc F
+GLIBC_2.18 __longjmp_chk F
+GLIBC_2.18 __lseek F
+GLIBC_2.18 __lxstat F
+GLIBC_2.18 __lxstat64 F
+GLIBC_2.18 __malloc_hook D 0x4
+GLIBC_2.18 __malloc_initialize_hook D 0x4
+GLIBC_2.18 __mbrlen F
+GLIBC_2.18 __mbrtowc F
+GLIBC_2.18 __mbsnrtowcs_chk F
+GLIBC_2.18 __mbsrtowcs_chk F
+GLIBC_2.18 __mbstowcs_chk F
+GLIBC_2.18 __memalign_hook D 0x4
+GLIBC_2.18 __memcpy_chk F
+GLIBC_2.18 __memmove_chk F
+GLIBC_2.18 __mempcpy F
+GLIBC_2.18 __mempcpy_chk F
+GLIBC_2.18 __mempcpy_small F
+GLIBC_2.18 __memset_chk F
+GLIBC_2.18 __monstartup F
+GLIBC_2.18 __morecore D 0x4
+GLIBC_2.18 __nanosleep F
+GLIBC_2.18 __newlocale F
+GLIBC_2.18 __nl_langinfo_l F
+GLIBC_2.18 __nss_configure_lookup F
+GLIBC_2.18 __nss_database_lookup F
+GLIBC_2.18 __nss_group_lookup F
+GLIBC_2.18 __nss_hostname_digits_dots F
+GLIBC_2.18 __nss_hosts_lookup F
+GLIBC_2.18 __nss_next F
+GLIBC_2.18 __nss_passwd_lookup F
+GLIBC_2.18 __obstack_printf_chk F
+GLIBC_2.18 __obstack_vprintf_chk F
+GLIBC_2.18 __open F
+GLIBC_2.18 __open64 F
+GLIBC_2.18 __open64_2 F
+GLIBC_2.18 __open_2 F
+GLIBC_2.18 __openat64_2 F
+GLIBC_2.18 __openat_2 F
+GLIBC_2.18 __overflow F
+GLIBC_2.18 __pipe F
+GLIBC_2.18 __poll F
+GLIBC_2.18 __poll_chk F
+GLIBC_2.18 __posix_getopt F
+GLIBC_2.18 __ppoll_chk F
+GLIBC_2.18 __pread64 F
+GLIBC_2.18 __pread64_chk F
+GLIBC_2.18 __pread_chk F
+GLIBC_2.18 __printf_chk F
+GLIBC_2.18 __printf_fp F
+GLIBC_2.18 __profile_frequency F
+GLIBC_2.18 __progname D 0x4
+GLIBC_2.18 __progname_full D 0x4
+GLIBC_2.18 __ptsname_r_chk F
+GLIBC_2.18 __pwrite64 F
+GLIBC_2.18 __rawmemchr F
+GLIBC_2.18 __rcmd_errstr D 0x4
+GLIBC_2.18 __read F
+GLIBC_2.18 __read_chk F
+GLIBC_2.18 __readlink_chk F
+GLIBC_2.18 __readlinkat_chk F
+GLIBC_2.18 __realloc_hook D 0x4
+GLIBC_2.18 __realpath_chk F
+GLIBC_2.18 __recv_chk F
+GLIBC_2.18 __recvfrom_chk F
+GLIBC_2.18 __register_atfork F
+GLIBC_2.18 __res_init F
+GLIBC_2.18 __res_nclose F
+GLIBC_2.18 __res_ninit F
+GLIBC_2.18 __res_randomid F
+GLIBC_2.18 __res_state F
+GLIBC_2.18 __rpc_thread_createerr F
+GLIBC_2.18 __rpc_thread_svc_fdset F
+GLIBC_2.18 __rpc_thread_svc_max_pollfd F
+GLIBC_2.18 __rpc_thread_svc_pollfd F
+GLIBC_2.18 __sbrk F
+GLIBC_2.18 __sched_cpualloc F
+GLIBC_2.18 __sched_cpucount F
+GLIBC_2.18 __sched_cpufree F
+GLIBC_2.18 __sched_get_priority_max F
+GLIBC_2.18 __sched_get_priority_min F
+GLIBC_2.18 __sched_getparam F
+GLIBC_2.18 __sched_getscheduler F
+GLIBC_2.18 __sched_setscheduler F
+GLIBC_2.18 __sched_yield F
+GLIBC_2.18 __select F
+GLIBC_2.18 __send F
+GLIBC_2.18 __setmntent F
+GLIBC_2.18 __setpgid F
+GLIBC_2.18 __sigaction F
+GLIBC_2.18 __sigaddset F
+GLIBC_2.18 __sigdelset F
+GLIBC_2.18 __sigismember F
+GLIBC_2.18 __signbit F
+GLIBC_2.18 __signbitf F
+GLIBC_2.18 __sigpause F
+GLIBC_2.18 __sigsetjmp F
+GLIBC_2.18 __sigsuspend F
+GLIBC_2.18 __snprintf_chk F
+GLIBC_2.18 __sprintf_chk F
+GLIBC_2.18 __stack_chk_fail F
+GLIBC_2.18 __statfs F
+GLIBC_2.18 __stpcpy F
+GLIBC_2.18 __stpcpy_chk F
+GLIBC_2.18 __stpcpy_small F
+GLIBC_2.18 __stpncpy F
+GLIBC_2.18 __stpncpy_chk F
+GLIBC_2.18 __strcasecmp F
+GLIBC_2.18 __strcasecmp_l F
+GLIBC_2.18 __strcasestr F
+GLIBC_2.18 __strcat_chk F
+GLIBC_2.18 __strcoll_l F
+GLIBC_2.18 __strcpy_chk F
+GLIBC_2.18 __strcpy_small F
+GLIBC_2.18 __strcspn_c1 F
+GLIBC_2.18 __strcspn_c2 F
+GLIBC_2.18 __strcspn_c3 F
+GLIBC_2.18 __strdup F
+GLIBC_2.18 __strerror_r F
+GLIBC_2.18 __strfmon_l F
+GLIBC_2.18 __strftime_l F
+GLIBC_2.18 __strncasecmp_l F
+GLIBC_2.18 __strncat_chk F
+GLIBC_2.18 __strncpy_chk F
+GLIBC_2.18 __strndup F
+GLIBC_2.18 __strpbrk_c2 F
+GLIBC_2.18 __strpbrk_c3 F
+GLIBC_2.18 __strsep_1c F
+GLIBC_2.18 __strsep_2c F
+GLIBC_2.18 __strsep_3c F
+GLIBC_2.18 __strsep_g F
+GLIBC_2.18 __strspn_c1 F
+GLIBC_2.18 __strspn_c2 F
+GLIBC_2.18 __strspn_c3 F
+GLIBC_2.18 __strtod_internal F
+GLIBC_2.18 __strtod_l F
+GLIBC_2.18 __strtof_internal F
+GLIBC_2.18 __strtof_l F
+GLIBC_2.18 __strtok_r F
+GLIBC_2.18 __strtok_r_1c F
+GLIBC_2.18 __strtol_internal F
+GLIBC_2.18 __strtol_l F
+GLIBC_2.18 __strtold_internal F
+GLIBC_2.18 __strtold_l F
+GLIBC_2.18 __strtoll_internal F
+GLIBC_2.18 __strtoll_l F
+GLIBC_2.18 __strtoul_internal F
+GLIBC_2.18 __strtoul_l F
+GLIBC_2.18 __strtoull_internal F
+GLIBC_2.18 __strtoull_l F
+GLIBC_2.18 __strverscmp F
+GLIBC_2.18 __strxfrm_l F
+GLIBC_2.18 __swprintf_chk F
+GLIBC_2.18 __sysconf F
+GLIBC_2.18 __sysctl F
+GLIBC_2.18 __syslog_chk F
+GLIBC_2.18 __sysv_signal F
+GLIBC_2.18 __timezone D 0x4
+GLIBC_2.18 __toascii_l F
+GLIBC_2.18 __tolower_l F
+GLIBC_2.18 __toupper_l F
+GLIBC_2.18 __towctrans F
+GLIBC_2.18 __towctrans_l F
+GLIBC_2.18 __towlower_l F
+GLIBC_2.18 __towupper_l F
+GLIBC_2.18 __ttyname_r_chk F
+GLIBC_2.18 __tzname D 0x8
+GLIBC_2.18 __uflow F
+GLIBC_2.18 __underflow F
+GLIBC_2.18 __uselocale F
+GLIBC_2.18 __vasprintf_chk F
+GLIBC_2.18 __vdprintf_chk F
+GLIBC_2.18 __vfork F
+GLIBC_2.18 __vfprintf_chk F
+GLIBC_2.18 __vfscanf F
+GLIBC_2.18 __vfwprintf_chk F
+GLIBC_2.18 __vprintf_chk F
+GLIBC_2.18 __vsnprintf F
+GLIBC_2.18 __vsnprintf_chk F
+GLIBC_2.18 __vsprintf_chk F
+GLIBC_2.18 __vsscanf F
+GLIBC_2.18 __vswprintf_chk F
+GLIBC_2.18 __vsyslog_chk F
+GLIBC_2.18 __vwprintf_chk F
+GLIBC_2.18 __wait F
+GLIBC_2.18 __waitpid F
+GLIBC_2.18 __wcpcpy_chk F
+GLIBC_2.18 __wcpncpy_chk F
+GLIBC_2.18 __wcrtomb_chk F
+GLIBC_2.18 __wcscasecmp_l F
+GLIBC_2.18 __wcscat_chk F
+GLIBC_2.18 __wcscoll_l F
+GLIBC_2.18 __wcscpy_chk F
+GLIBC_2.18 __wcsftime_l F
+GLIBC_2.18 __wcsncasecmp_l F
+GLIBC_2.18 __wcsncat_chk F
+GLIBC_2.18 __wcsncpy_chk F
+GLIBC_2.18 __wcsnrtombs_chk F
+GLIBC_2.18 __wcsrtombs_chk F
+GLIBC_2.18 __wcstod_internal F
+GLIBC_2.18 __wcstod_l F
+GLIBC_2.18 __wcstof_internal F
+GLIBC_2.18 __wcstof_l F
+GLIBC_2.18 __wcstol_internal F
+GLIBC_2.18 __wcstol_l F
+GLIBC_2.18 __wcstold_internal F
+GLIBC_2.18 __wcstold_l F
+GLIBC_2.18 __wcstoll_internal F
+GLIBC_2.18 __wcstoll_l F
+GLIBC_2.18 __wcstombs_chk F
+GLIBC_2.18 __wcstoul_internal F
+GLIBC_2.18 __wcstoul_l F
+GLIBC_2.18 __wcstoull_internal F
+GLIBC_2.18 __wcstoull_l F
+GLIBC_2.18 __wcsxfrm_l F
+GLIBC_2.18 __wctomb_chk F
+GLIBC_2.18 __wctrans_l F
+GLIBC_2.18 __wctype_l F
+GLIBC_2.18 __wmemcpy_chk F
+GLIBC_2.18 __wmemmove_chk F
+GLIBC_2.18 __wmempcpy_chk F
+GLIBC_2.18 __wmemset_chk F
+GLIBC_2.18 __woverflow F
+GLIBC_2.18 __wprintf_chk F
+GLIBC_2.18 __write F
+GLIBC_2.18 __wuflow F
+GLIBC_2.18 __wunderflow F
+GLIBC_2.18 __xmknod F
+GLIBC_2.18 __xmknodat F
+GLIBC_2.18 __xpg_basename F
+GLIBC_2.18 __xpg_sigpause F
+GLIBC_2.18 __xpg_strerror_r F
+GLIBC_2.18 __xstat F
+GLIBC_2.18 __xstat64 F
+GLIBC_2.18 _authenticate F
+GLIBC_2.18 _dl_mcount_wrapper F
+GLIBC_2.18 _dl_mcount_wrapper_check F
+GLIBC_2.18 _environ D 0x4
+GLIBC_2.18 _exit F
+GLIBC_2.18 _flushlbf F
+GLIBC_2.18 _libc_intl_domainname D 0x5
+GLIBC_2.18 _longjmp F
+GLIBC_2.18 _mcleanup F
+GLIBC_2.18 _mcount F
+GLIBC_2.18 _nl_default_dirname D 0x12
+GLIBC_2.18 _nl_domain_bindings D 0x4
+GLIBC_2.18 _nl_msg_cat_cntr D 0x4
+GLIBC_2.18 _null_auth D 0xc
+GLIBC_2.18 _obstack_allocated_p F
+GLIBC_2.18 _obstack_begin F
+GLIBC_2.18 _obstack_begin_1 F
+GLIBC_2.18 _obstack_free F
+GLIBC_2.18 _obstack_memory_used F
+GLIBC_2.18 _obstack_newchunk F
+GLIBC_2.18 _res D 0x200
+GLIBC_2.18 _res_hconf D 0x30
+GLIBC_2.18 _rpc_dtablesize F
+GLIBC_2.18 _seterr_reply F
+GLIBC_2.18 _setjmp F
+GLIBC_2.18 _sys_errlist D 0x21c
+GLIBC_2.18 _sys_nerr D 0x4
+GLIBC_2.18 _sys_siglist D 0x104
+GLIBC_2.18 _tolower F
+GLIBC_2.18 _toupper F
+GLIBC_2.18 a64l F
+GLIBC_2.18 abort F
+GLIBC_2.18 abs F
+GLIBC_2.18 accept F
+GLIBC_2.18 accept4 F
+GLIBC_2.18 access F
+GLIBC_2.18 acct F
+GLIBC_2.18 addmntent F
+GLIBC_2.18 addseverity F
+GLIBC_2.18 adjtime F
+GLIBC_2.18 adjtimex F
+GLIBC_2.18 advance F
+GLIBC_2.18 alarm F
+GLIBC_2.18 aligned_alloc F
+GLIBC_2.18 alphasort F
+GLIBC_2.18 alphasort64 F
+GLIBC_2.18 argp_err_exit_status D 0x4
+GLIBC_2.18 argp_error F
+GLIBC_2.18 argp_failure F
+GLIBC_2.18 argp_help F
+GLIBC_2.18 argp_parse F
+GLIBC_2.18 argp_program_bug_address D 0x4
+GLIBC_2.18 argp_program_version D 0x4
+GLIBC_2.18 argp_program_version_hook D 0x4
+GLIBC_2.18 argp_state_help F
+GLIBC_2.18 argp_usage F
+GLIBC_2.18 argz_add F
+GLIBC_2.18 argz_add_sep F
+GLIBC_2.18 argz_append F
+GLIBC_2.18 argz_count F
+GLIBC_2.18 argz_create F
+GLIBC_2.18 argz_create_sep F
+GLIBC_2.18 argz_delete F
+GLIBC_2.18 argz_extract F
+GLIBC_2.18 argz_insert F
+GLIBC_2.18 argz_next F
+GLIBC_2.18 argz_replace F
+GLIBC_2.18 argz_stringify F
+GLIBC_2.18 asctime F
+GLIBC_2.18 asctime_r F
+GLIBC_2.18 asprintf F
+GLIBC_2.18 atof F
+GLIBC_2.18 atoi F
+GLIBC_2.18 atol F
+GLIBC_2.18 atoll F
+GLIBC_2.18 authdes_create F
+GLIBC_2.18 authdes_getucred F
+GLIBC_2.18 authdes_pk_create F
+GLIBC_2.18 authnone_create F
+GLIBC_2.18 authunix_create F
+GLIBC_2.18 authunix_create_default F
+GLIBC_2.18 backtrace F
+GLIBC_2.18 backtrace_symbols F
+GLIBC_2.18 backtrace_symbols_fd F
+GLIBC_2.18 basename F
+GLIBC_2.18 bcmp F
+GLIBC_2.18 bcopy F
+GLIBC_2.18 bdflush F
+GLIBC_2.18 bind F
+GLIBC_2.18 bind_textdomain_codeset F
+GLIBC_2.18 bindresvport F
+GLIBC_2.18 bindtextdomain F
+GLIBC_2.18 brk F
+GLIBC_2.18 bsd_signal F
+GLIBC_2.18 bsearch F
+GLIBC_2.18 btowc F
+GLIBC_2.18 bzero F
+GLIBC_2.18 c16rtomb F
+GLIBC_2.18 c32rtomb F
+GLIBC_2.18 calloc F
+GLIBC_2.18 callrpc F
+GLIBC_2.18 canonicalize_file_name F
+GLIBC_2.18 capget F
+GLIBC_2.18 capset F
+GLIBC_2.18 catclose F
+GLIBC_2.18 catgets F
+GLIBC_2.18 catopen F
+GLIBC_2.18 cbc_crypt F
+GLIBC_2.18 cfgetispeed F
+GLIBC_2.18 cfgetospeed F
+GLIBC_2.18 cfmakeraw F
+GLIBC_2.18 cfree F
+GLIBC_2.18 cfsetispeed F
+GLIBC_2.18 cfsetospeed F
+GLIBC_2.18 cfsetspeed F
+GLIBC_2.18 chdir F
+GLIBC_2.18 chflags F
+GLIBC_2.18 chmod F
+GLIBC_2.18 chown F
+GLIBC_2.18 chroot F
+GLIBC_2.18 clearenv F
+GLIBC_2.18 clearerr F
+GLIBC_2.18 clearerr_unlocked F
+GLIBC_2.18 clnt_broadcast F
+GLIBC_2.18 clnt_create F
+GLIBC_2.18 clnt_pcreateerror F
+GLIBC_2.18 clnt_perrno F
+GLIBC_2.18 clnt_perror F
+GLIBC_2.18 clnt_spcreateerror F
+GLIBC_2.18 clnt_sperrno F
+GLIBC_2.18 clnt_sperror F
+GLIBC_2.18 clntraw_create F
+GLIBC_2.18 clnttcp_create F
+GLIBC_2.18 clntudp_bufcreate F
+GLIBC_2.18 clntudp_create F
+GLIBC_2.18 clntunix_create F
+GLIBC_2.18 clock F
+GLIBC_2.18 clock_adjtime F
+GLIBC_2.18 clock_getcpuclockid F
+GLIBC_2.18 clock_getres F
+GLIBC_2.18 clock_gettime F
+GLIBC_2.18 clock_nanosleep F
+GLIBC_2.18 clock_settime F
+GLIBC_2.18 clone F
+GLIBC_2.18 close F
+GLIBC_2.18 closedir F
+GLIBC_2.18 closelog F
+GLIBC_2.18 confstr F
+GLIBC_2.18 connect F
+GLIBC_2.18 copysign F
+GLIBC_2.18 copysignf F
+GLIBC_2.18 copysignl F
+GLIBC_2.18 creat F
+GLIBC_2.18 creat64 F
+GLIBC_2.18 create_module F
+GLIBC_2.18 ctermid F
+GLIBC_2.18 ctime F
+GLIBC_2.18 ctime_r F
+GLIBC_2.18 cuserid F
+GLIBC_2.18 daemon F
+GLIBC_2.18 daylight D 0x4
+GLIBC_2.18 dcgettext F
+GLIBC_2.18 dcngettext F
+GLIBC_2.18 delete_module F
+GLIBC_2.18 des_setparity F
+GLIBC_2.18 dgettext F
+GLIBC_2.18 difftime F
+GLIBC_2.18 dirfd F
+GLIBC_2.18 dirname F
+GLIBC_2.18 div F
+GLIBC_2.18 dl_iterate_phdr F
+GLIBC_2.18 dngettext F
+GLIBC_2.18 dprintf F
+GLIBC_2.18 drand48 F
+GLIBC_2.18 drand48_r F
+GLIBC_2.18 dup F
+GLIBC_2.18 dup2 F
+GLIBC_2.18 dup3 F
+GLIBC_2.18 duplocale F
+GLIBC_2.18 dysize F
+GLIBC_2.18 eaccess F
+GLIBC_2.18 ecb_crypt F
+GLIBC_2.18 ecvt F
+GLIBC_2.18 ecvt_r F
+GLIBC_2.18 endaliasent F
+GLIBC_2.18 endfsent F
+GLIBC_2.18 endgrent F
+GLIBC_2.18 endhostent F
+GLIBC_2.18 endmntent F
+GLIBC_2.18 endnetent F
+GLIBC_2.18 endnetgrent F
+GLIBC_2.18 endprotoent F
+GLIBC_2.18 endpwent F
+GLIBC_2.18 endrpcent F
+GLIBC_2.18 endservent F
+GLIBC_2.18 endsgent F
+GLIBC_2.18 endspent F
+GLIBC_2.18 endttyent F
+GLIBC_2.18 endusershell F
+GLIBC_2.18 endutent F
+GLIBC_2.18 endutxent F
+GLIBC_2.18 environ D 0x4
+GLIBC_2.18 envz_add F
+GLIBC_2.18 envz_entry F
+GLIBC_2.18 envz_get F
+GLIBC_2.18 envz_merge F
+GLIBC_2.18 envz_remove F
+GLIBC_2.18 envz_strip F
+GLIBC_2.18 epoll_create F
+GLIBC_2.18 epoll_create1 F
+GLIBC_2.18 epoll_ctl F
+GLIBC_2.18 epoll_pwait F
+GLIBC_2.18 epoll_wait F
+GLIBC_2.18 erand48 F
+GLIBC_2.18 erand48_r F
+GLIBC_2.18 err F
+GLIBC_2.18 error F
+GLIBC_2.18 error_at_line F
+GLIBC_2.18 error_message_count D 0x4
+GLIBC_2.18 error_one_per_line D 0x4
+GLIBC_2.18 error_print_progname D 0x4
+GLIBC_2.18 errx F
+GLIBC_2.18 ether_aton F
+GLIBC_2.18 ether_aton_r F
+GLIBC_2.18 ether_hostton F
+GLIBC_2.18 ether_line F
+GLIBC_2.18 ether_ntoa F
+GLIBC_2.18 ether_ntoa_r F
+GLIBC_2.18 ether_ntohost F
+GLIBC_2.18 euidaccess F
+GLIBC_2.18 eventfd F
+GLIBC_2.18 eventfd_read F
+GLIBC_2.18 eventfd_write F
+GLIBC_2.18 execl F
+GLIBC_2.18 execle F
+GLIBC_2.18 execlp F
+GLIBC_2.18 execv F
+GLIBC_2.18 execve F
+GLIBC_2.18 execvp F
+GLIBC_2.18 execvpe F
+GLIBC_2.18 exit F
+GLIBC_2.18 faccessat F
+GLIBC_2.18 fallocate F
+GLIBC_2.18 fallocate64 F
+GLIBC_2.18 fanotify_init F
+GLIBC_2.18 fanotify_mark F
+GLIBC_2.18 fattach F
+GLIBC_2.18 fchdir F
+GLIBC_2.18 fchflags F
+GLIBC_2.18 fchmod F
+GLIBC_2.18 fchmodat F
+GLIBC_2.18 fchown F
+GLIBC_2.18 fchownat F
+GLIBC_2.18 fclose F
+GLIBC_2.18 fcloseall F
+GLIBC_2.18 fcntl F
+GLIBC_2.18 fcvt F
+GLIBC_2.18 fcvt_r F
+GLIBC_2.18 fdatasync F
+GLIBC_2.18 fdetach F
+GLIBC_2.18 fdopen F
+GLIBC_2.18 fdopendir F
+GLIBC_2.18 feof F
+GLIBC_2.18 feof_unlocked F
+GLIBC_2.18 ferror F
+GLIBC_2.18 ferror_unlocked F
+GLIBC_2.18 fexecve F
+GLIBC_2.18 fflush F
+GLIBC_2.18 fflush_unlocked F
+GLIBC_2.18 ffs F
+GLIBC_2.18 ffsl F
+GLIBC_2.18 ffsll F
+GLIBC_2.18 fgetc F
+GLIBC_2.18 fgetc_unlocked F
+GLIBC_2.18 fgetgrent F
+GLIBC_2.18 fgetgrent_r F
+GLIBC_2.18 fgetpos F
+GLIBC_2.18 fgetpos64 F
+GLIBC_2.18 fgetpwent F
+GLIBC_2.18 fgetpwent_r F
+GLIBC_2.18 fgets F
+GLIBC_2.18 fgets_unlocked F
+GLIBC_2.18 fgetsgent F
+GLIBC_2.18 fgetsgent_r F
+GLIBC_2.18 fgetspent F
+GLIBC_2.18 fgetspent_r F
+GLIBC_2.18 fgetwc F
+GLIBC_2.18 fgetwc_unlocked F
+GLIBC_2.18 fgetws F
+GLIBC_2.18 fgetws_unlocked F
+GLIBC_2.18 fgetxattr F
+GLIBC_2.18 fileno F
+GLIBC_2.18 fileno_unlocked F
+GLIBC_2.18 finite F
+GLIBC_2.18 finitef F
+GLIBC_2.18 finitel F
+GLIBC_2.18 flistxattr F
+GLIBC_2.18 flock F
+GLIBC_2.18 flockfile F
+GLIBC_2.18 fmemopen F
+GLIBC_2.18 fmtmsg F
+GLIBC_2.18 fnmatch F
+GLIBC_2.18 fopen F
+GLIBC_2.18 fopen64 F
+GLIBC_2.18 fopencookie F
+GLIBC_2.18 fork F
+GLIBC_2.18 fpathconf F
+GLIBC_2.18 fprintf F
+GLIBC_2.18 fputc F
+GLIBC_2.18 fputc_unlocked F
+GLIBC_2.18 fputs F
+GLIBC_2.18 fputs_unlocked F
+GLIBC_2.18 fputwc F
+GLIBC_2.18 fputwc_unlocked F
+GLIBC_2.18 fputws F
+GLIBC_2.18 fputws_unlocked F
+GLIBC_2.18 fread F
+GLIBC_2.18 fread_unlocked F
+GLIBC_2.18 free F
+GLIBC_2.18 freeaddrinfo F
+GLIBC_2.18 freeifaddrs F
+GLIBC_2.18 freelocale F
+GLIBC_2.18 fremovexattr F
+GLIBC_2.18 freopen F
+GLIBC_2.18 freopen64 F
+GLIBC_2.18 frexp F
+GLIBC_2.18 frexpf F
+GLIBC_2.18 frexpl F
+GLIBC_2.18 fscanf F
+GLIBC_2.18 fseek F
+GLIBC_2.18 fseeko F
+GLIBC_2.18 fseeko64 F
+GLIBC_2.18 fsetpos F
+GLIBC_2.18 fsetpos64 F
+GLIBC_2.18 fsetxattr F
+GLIBC_2.18 fstatfs F
+GLIBC_2.18 fstatfs64 F
+GLIBC_2.18 fstatvfs F
+GLIBC_2.18 fstatvfs64 F
+GLIBC_2.18 fsync F
+GLIBC_2.18 ftell F
+GLIBC_2.18 ftello F
+GLIBC_2.18 ftello64 F
+GLIBC_2.18 ftime F
+GLIBC_2.18 ftok F
+GLIBC_2.18 ftruncate F
+GLIBC_2.18 ftruncate64 F
+GLIBC_2.18 ftrylockfile F
+GLIBC_2.18 fts_children F
+GLIBC_2.18 fts_close F
+GLIBC_2.18 fts_open F
+GLIBC_2.18 fts_read F
+GLIBC_2.18 fts_set F
+GLIBC_2.18 ftw F
+GLIBC_2.18 ftw64 F
+GLIBC_2.18 funlockfile F
+GLIBC_2.18 futimens F
+GLIBC_2.18 futimes F
+GLIBC_2.18 futimesat F
+GLIBC_2.18 fwide F
+GLIBC_2.18 fwprintf F
+GLIBC_2.18 fwrite F
+GLIBC_2.18 fwrite_unlocked F
+GLIBC_2.18 fwscanf F
+GLIBC_2.18 gai_strerror F
+GLIBC_2.18 gcvt F
+GLIBC_2.18 get_avphys_pages F
+GLIBC_2.18 get_current_dir_name F
+GLIBC_2.18 get_kernel_syms F
+GLIBC_2.18 get_myaddress F
+GLIBC_2.18 get_nprocs F
+GLIBC_2.18 get_nprocs_conf F
+GLIBC_2.18 get_phys_pages F
+GLIBC_2.18 getaddrinfo F
+GLIBC_2.18 getaliasbyname F
+GLIBC_2.18 getaliasbyname_r F
+GLIBC_2.18 getaliasent F
+GLIBC_2.18 getaliasent_r F
+GLIBC_2.18 getauxval F
+GLIBC_2.18 getc F
+GLIBC_2.18 getc_unlocked F
+GLIBC_2.18 getchar F
+GLIBC_2.18 getchar_unlocked F
+GLIBC_2.18 getcontext F
+GLIBC_2.18 getcwd F
+GLIBC_2.18 getdate F
+GLIBC_2.18 getdate_err D 0x4
+GLIBC_2.18 getdate_r F
+GLIBC_2.18 getdelim F
+GLIBC_2.18 getdirentries F
+GLIBC_2.18 getdirentries64 F
+GLIBC_2.18 getdomainname F
+GLIBC_2.18 getdtablesize F
+GLIBC_2.18 getegid F
+GLIBC_2.18 getenv F
+GLIBC_2.18 geteuid F
+GLIBC_2.18 getfsent F
+GLIBC_2.18 getfsfile F
+GLIBC_2.18 getfsspec F
+GLIBC_2.18 getgid F
+GLIBC_2.18 getgrent F
+GLIBC_2.18 getgrent_r F
+GLIBC_2.18 getgrgid F
+GLIBC_2.18 getgrgid_r F
+GLIBC_2.18 getgrnam F
+GLIBC_2.18 getgrnam_r F
+GLIBC_2.18 getgrouplist F
+GLIBC_2.18 getgroups F
+GLIBC_2.18 gethostbyaddr F
+GLIBC_2.18 gethostbyaddr_r F
+GLIBC_2.18 gethostbyname F
+GLIBC_2.18 gethostbyname2 F
+GLIBC_2.18 gethostbyname2_r F
+GLIBC_2.18 gethostbyname_r F
+GLIBC_2.18 gethostent F
+GLIBC_2.18 gethostent_r F
+GLIBC_2.18 gethostid F
+GLIBC_2.18 gethostname F
+GLIBC_2.18 getifaddrs F
+GLIBC_2.18 getipv4sourcefilter F
+GLIBC_2.18 getitimer F
+GLIBC_2.18 getline F
+GLIBC_2.18 getloadavg F
+GLIBC_2.18 getlogin F
+GLIBC_2.18 getlogin_r F
+GLIBC_2.18 getmntent F
+GLIBC_2.18 getmntent_r F
+GLIBC_2.18 getmsg F
+GLIBC_2.18 getnameinfo F
+GLIBC_2.18 getnetbyaddr F
+GLIBC_2.18 getnetbyaddr_r F
+GLIBC_2.18 getnetbyname F
+GLIBC_2.18 getnetbyname_r F
+GLIBC_2.18 getnetent F
+GLIBC_2.18 getnetent_r F
+GLIBC_2.18 getnetgrent F
+GLIBC_2.18 getnetgrent_r F
+GLIBC_2.18 getnetname F
+GLIBC_2.18 getopt F
+GLIBC_2.18 getopt_long F
+GLIBC_2.18 getopt_long_only F
+GLIBC_2.18 getpagesize F
+GLIBC_2.18 getpass F
+GLIBC_2.18 getpeername F
+GLIBC_2.18 getpgid F
+GLIBC_2.18 getpgrp F
+GLIBC_2.18 getpid F
+GLIBC_2.18 getpmsg F
+GLIBC_2.18 getppid F
+GLIBC_2.18 getpriority F
+GLIBC_2.18 getprotobyname F
+GLIBC_2.18 getprotobyname_r F
+GLIBC_2.18 getprotobynumber F
+GLIBC_2.18 getprotobynumber_r F
+GLIBC_2.18 getprotoent F
+GLIBC_2.18 getprotoent_r F
+GLIBC_2.18 getpt F
+GLIBC_2.18 getpublickey F
+GLIBC_2.18 getpw F
+GLIBC_2.18 getpwent F
+GLIBC_2.18 getpwent_r F
+GLIBC_2.18 getpwnam F
+GLIBC_2.18 getpwnam_r F
+GLIBC_2.18 getpwuid F
+GLIBC_2.18 getpwuid_r F
+GLIBC_2.18 getresgid F
+GLIBC_2.18 getresuid F
+GLIBC_2.18 getrlimit F
+GLIBC_2.18 getrlimit64 F
+GLIBC_2.18 getrpcbyname F
+GLIBC_2.18 getrpcbyname_r F
+GLIBC_2.18 getrpcbynumber F
+GLIBC_2.18 getrpcbynumber_r F
+GLIBC_2.18 getrpcent F
+GLIBC_2.18 getrpcent_r F
+GLIBC_2.18 getrpcport F
+GLIBC_2.18 getrusage F
+GLIBC_2.18 gets F
+GLIBC_2.18 getsecretkey F
+GLIBC_2.18 getservbyname F
+GLIBC_2.18 getservbyname_r F
+GLIBC_2.18 getservbyport F
+GLIBC_2.18 getservbyport_r F
+GLIBC_2.18 getservent F
+GLIBC_2.18 getservent_r F
+GLIBC_2.18 getsgent F
+GLIBC_2.18 getsgent_r F
+GLIBC_2.18 getsgnam F
+GLIBC_2.18 getsgnam_r F
+GLIBC_2.18 getsid F
+GLIBC_2.18 getsockname F
+GLIBC_2.18 getsockopt F
+GLIBC_2.18 getsourcefilter F
+GLIBC_2.18 getspent F
+GLIBC_2.18 getspent_r F
+GLIBC_2.18 getspnam F
+GLIBC_2.18 getspnam_r F
+GLIBC_2.18 getsubopt F
+GLIBC_2.18 gettext F
+GLIBC_2.18 gettimeofday F
+GLIBC_2.18 getttyent F
+GLIBC_2.18 getttynam F
+GLIBC_2.18 getuid F
+GLIBC_2.18 getusershell F
+GLIBC_2.18 getutent F
+GLIBC_2.18 getutent_r F
+GLIBC_2.18 getutid F
+GLIBC_2.18 getutid_r F
+GLIBC_2.18 getutline F
+GLIBC_2.18 getutline_r F
+GLIBC_2.18 getutmp F
+GLIBC_2.18 getutmpx F
+GLIBC_2.18 getutxent F
+GLIBC_2.18 getutxid F
+GLIBC_2.18 getutxline F
+GLIBC_2.18 getw F
+GLIBC_2.18 getwc F
+GLIBC_2.18 getwc_unlocked F
+GLIBC_2.18 getwchar F
+GLIBC_2.18 getwchar_unlocked F
+GLIBC_2.18 getwd F
+GLIBC_2.18 getxattr F
+GLIBC_2.18 glob F
+GLIBC_2.18 glob64 F
+GLIBC_2.18 glob_pattern_p F
+GLIBC_2.18 globfree F
+GLIBC_2.18 globfree64 F
+GLIBC_2.18 gmtime F
+GLIBC_2.18 gmtime_r F
+GLIBC_2.18 gnu_dev_major F
+GLIBC_2.18 gnu_dev_makedev F
+GLIBC_2.18 gnu_dev_minor F
+GLIBC_2.18 gnu_get_libc_release F
+GLIBC_2.18 gnu_get_libc_version F
+GLIBC_2.18 grantpt F
+GLIBC_2.18 group_member F
+GLIBC_2.18 gsignal F
+GLIBC_2.18 gtty F
+GLIBC_2.18 h_errlist D 0x14
+GLIBC_2.18 h_nerr D 0x4
+GLIBC_2.18 hasmntopt F
+GLIBC_2.18 hcreate F
+GLIBC_2.18 hcreate_r F
+GLIBC_2.18 hdestroy F
+GLIBC_2.18 hdestroy_r F
+GLIBC_2.18 herror F
+GLIBC_2.18 host2netname F
+GLIBC_2.18 hsearch F
+GLIBC_2.18 hsearch_r F
+GLIBC_2.18 hstrerror F
+GLIBC_2.18 htonl F
+GLIBC_2.18 htons F
+GLIBC_2.18 iconv F
+GLIBC_2.18 iconv_close F
+GLIBC_2.18 iconv_open F
+GLIBC_2.18 if_freenameindex F
+GLIBC_2.18 if_indextoname F
+GLIBC_2.18 if_nameindex F
+GLIBC_2.18 if_nametoindex F
+GLIBC_2.18 imaxabs F
+GLIBC_2.18 imaxdiv F
+GLIBC_2.18 in6addr_any D 0x10
+GLIBC_2.18 in6addr_loopback D 0x10
+GLIBC_2.18 index F
+GLIBC_2.18 inet6_opt_append F
+GLIBC_2.18 inet6_opt_find F
+GLIBC_2.18 inet6_opt_finish F
+GLIBC_2.18 inet6_opt_get_val F
+GLIBC_2.18 inet6_opt_init F
+GLIBC_2.18 inet6_opt_next F
+GLIBC_2.18 inet6_opt_set_val F
+GLIBC_2.18 inet6_option_alloc F
+GLIBC_2.18 inet6_option_append F
+GLIBC_2.18 inet6_option_find F
+GLIBC_2.18 inet6_option_init F
+GLIBC_2.18 inet6_option_next F
+GLIBC_2.18 inet6_option_space F
+GLIBC_2.18 inet6_rth_add F
+GLIBC_2.18 inet6_rth_getaddr F
+GLIBC_2.18 inet6_rth_init F
+GLIBC_2.18 inet6_rth_reverse F
+GLIBC_2.18 inet6_rth_segments F
+GLIBC_2.18 inet6_rth_space F
+GLIBC_2.18 inet_addr F
+GLIBC_2.18 inet_aton F
+GLIBC_2.18 inet_lnaof F
+GLIBC_2.18 inet_makeaddr F
+GLIBC_2.18 inet_netof F
+GLIBC_2.18 inet_network F
+GLIBC_2.18 inet_nsap_addr F
+GLIBC_2.18 inet_nsap_ntoa F
+GLIBC_2.18 inet_ntoa F
+GLIBC_2.18 inet_ntop F
+GLIBC_2.18 inet_pton F
+GLIBC_2.18 init_module F
+GLIBC_2.18 initgroups F
+GLIBC_2.18 initstate F
+GLIBC_2.18 initstate_r F
+GLIBC_2.18 innetgr F
+GLIBC_2.18 inotify_add_watch F
+GLIBC_2.18 inotify_init F
+GLIBC_2.18 inotify_init1 F
+GLIBC_2.18 inotify_rm_watch F
+GLIBC_2.18 insque F
+GLIBC_2.18 ioctl F
+GLIBC_2.18 iruserok F
+GLIBC_2.18 iruserok_af F
+GLIBC_2.18 isalnum F
+GLIBC_2.18 isalnum_l F
+GLIBC_2.18 isalpha F
+GLIBC_2.18 isalpha_l F
+GLIBC_2.18 isascii F
+GLIBC_2.18 isastream F
+GLIBC_2.18 isatty F
+GLIBC_2.18 isblank F
+GLIBC_2.18 isblank_l F
+GLIBC_2.18 iscntrl F
+GLIBC_2.18 iscntrl_l F
+GLIBC_2.18 isctype F
+GLIBC_2.18 isdigit F
+GLIBC_2.18 isdigit_l F
+GLIBC_2.18 isfdtype F
+GLIBC_2.18 isgraph F
+GLIBC_2.18 isgraph_l F
+GLIBC_2.18 isinf F
+GLIBC_2.18 isinff F
+GLIBC_2.18 isinfl F
+GLIBC_2.18 islower F
+GLIBC_2.18 islower_l F
+GLIBC_2.18 isnan F
+GLIBC_2.18 isnanf F
+GLIBC_2.18 isnanl F
+GLIBC_2.18 isprint F
+GLIBC_2.18 isprint_l F
+GLIBC_2.18 ispunct F
+GLIBC_2.18 ispunct_l F
+GLIBC_2.18 isspace F
+GLIBC_2.18 isspace_l F
+GLIBC_2.18 isupper F
+GLIBC_2.18 isupper_l F
+GLIBC_2.18 iswalnum F
+GLIBC_2.18 iswalnum_l F
+GLIBC_2.18 iswalpha F
+GLIBC_2.18 iswalpha_l F
+GLIBC_2.18 iswblank F
+GLIBC_2.18 iswblank_l F
+GLIBC_2.18 iswcntrl F
+GLIBC_2.18 iswcntrl_l F
+GLIBC_2.18 iswctype F
+GLIBC_2.18 iswctype_l F
+GLIBC_2.18 iswdigit F
+GLIBC_2.18 iswdigit_l F
+GLIBC_2.18 iswgraph F
+GLIBC_2.18 iswgraph_l F
+GLIBC_2.18 iswlower F
+GLIBC_2.18 iswlower_l F
+GLIBC_2.18 iswprint F
+GLIBC_2.18 iswprint_l F
+GLIBC_2.18 iswpunct F
+GLIBC_2.18 iswpunct_l F
+GLIBC_2.18 iswspace F
+GLIBC_2.18 iswspace_l F
+GLIBC_2.18 iswupper F
+GLIBC_2.18 iswupper_l F
+GLIBC_2.18 iswxdigit F
+GLIBC_2.18 iswxdigit_l F
+GLIBC_2.18 isxdigit F
+GLIBC_2.18 isxdigit_l F
+GLIBC_2.18 jrand48 F
+GLIBC_2.18 jrand48_r F
+GLIBC_2.18 key_decryptsession F
+GLIBC_2.18 key_decryptsession_pk F
+GLIBC_2.18 key_encryptsession F
+GLIBC_2.18 key_encryptsession_pk F
+GLIBC_2.18 key_gendes F
+GLIBC_2.18 key_get_conv F
+GLIBC_2.18 key_secretkey_is_set F
+GLIBC_2.18 key_setnet F
+GLIBC_2.18 key_setsecret F
+GLIBC_2.18 kill F
+GLIBC_2.18 killpg F
+GLIBC_2.18 klogctl F
+GLIBC_2.18 l64a F
+GLIBC_2.18 labs F
+GLIBC_2.18 lchmod F
+GLIBC_2.18 lchown F
+GLIBC_2.18 lckpwdf F
+GLIBC_2.18 lcong48 F
+GLIBC_2.18 lcong48_r F
+GLIBC_2.18 ldexp F
+GLIBC_2.18 ldexpf F
+GLIBC_2.18 ldexpl F
+GLIBC_2.18 ldiv F
+GLIBC_2.18 lfind F
+GLIBC_2.18 lgetxattr F
+GLIBC_2.18 link F
+GLIBC_2.18 linkat F
+GLIBC_2.18 listen F
+GLIBC_2.18 listxattr F
+GLIBC_2.18 llabs F
+GLIBC_2.18 lldiv F
+GLIBC_2.18 llistxattr F
+GLIBC_2.18 llseek F
+GLIBC_2.18 loc1 D 0x4
+GLIBC_2.18 loc2 D 0x4
+GLIBC_2.18 localeconv F
+GLIBC_2.18 localtime F
+GLIBC_2.18 localtime_r F
+GLIBC_2.18 lockf F
+GLIBC_2.18 lockf64 F
+GLIBC_2.18 locs D 0x4
+GLIBC_2.18 longjmp F
+GLIBC_2.18 lrand48 F
+GLIBC_2.18 lrand48_r F
+GLIBC_2.18 lremovexattr F
+GLIBC_2.18 lsearch F
+GLIBC_2.18 lseek F
+GLIBC_2.18 lseek64 F
+GLIBC_2.18 lsetxattr F
+GLIBC_2.18 lutimes F
+GLIBC_2.18 madvise F
+GLIBC_2.18 makecontext F
+GLIBC_2.18 mallinfo F
+GLIBC_2.18 malloc F
+GLIBC_2.18 malloc_get_state F
+GLIBC_2.18 malloc_info F
+GLIBC_2.18 malloc_set_state F
+GLIBC_2.18 malloc_stats F
+GLIBC_2.18 malloc_trim F
+GLIBC_2.18 malloc_usable_size F
+GLIBC_2.18 mallopt F
+GLIBC_2.18 mallwatch D 0x4
+GLIBC_2.18 mblen F
+GLIBC_2.18 mbrlen F
+GLIBC_2.18 mbrtoc16 F
+GLIBC_2.18 mbrtoc32 F
+GLIBC_2.18 mbrtowc F
+GLIBC_2.18 mbsinit F
+GLIBC_2.18 mbsnrtowcs F
+GLIBC_2.18 mbsrtowcs F
+GLIBC_2.18 mbstowcs F
+GLIBC_2.18 mbtowc F
+GLIBC_2.18 mcheck F
+GLIBC_2.18 mcheck_check_all F
+GLIBC_2.18 mcheck_pedantic F
+GLIBC_2.18 memalign F
+GLIBC_2.18 memccpy F
+GLIBC_2.18 memchr F
+GLIBC_2.18 memcmp F
+GLIBC_2.18 memcpy F
+GLIBC_2.18 memfrob F
+GLIBC_2.18 memmem F
+GLIBC_2.18 memmove F
+GLIBC_2.18 mempcpy F
+GLIBC_2.18 memrchr F
+GLIBC_2.18 memset F
+GLIBC_2.18 mincore F
+GLIBC_2.18 mkdir F
+GLIBC_2.18 mkdirat F
+GLIBC_2.18 mkdtemp F
+GLIBC_2.18 mkfifo F
+GLIBC_2.18 mkfifoat F
+GLIBC_2.18 mkostemp F
+GLIBC_2.18 mkostemp64 F
+GLIBC_2.18 mkostemps F
+GLIBC_2.18 mkostemps64 F
+GLIBC_2.18 mkstemp F
+GLIBC_2.18 mkstemp64 F
+GLIBC_2.18 mkstemps F
+GLIBC_2.18 mkstemps64 F
+GLIBC_2.18 mktemp F
+GLIBC_2.18 mktime F
+GLIBC_2.18 mlock F
+GLIBC_2.18 mlockall F
+GLIBC_2.18 mmap F
+GLIBC_2.18 mmap64 F
+GLIBC_2.18 modf F
+GLIBC_2.18 modff F
+GLIBC_2.18 modfl F
+GLIBC_2.18 moncontrol F
+GLIBC_2.18 monstartup F
+GLIBC_2.18 mount F
+GLIBC_2.18 mprobe F
+GLIBC_2.18 mprotect F
+GLIBC_2.18 mrand48 F
+GLIBC_2.18 mrand48_r F
+GLIBC_2.18 mremap F
+GLIBC_2.18 msgctl F
+GLIBC_2.18 msgget F
+GLIBC_2.18 msgrcv F
+GLIBC_2.18 msgsnd F
+GLIBC_2.18 msync F
+GLIBC_2.18 mtrace F
+GLIBC_2.18 munlock F
+GLIBC_2.18 munlockall F
+GLIBC_2.18 munmap F
+GLIBC_2.18 muntrace F
+GLIBC_2.18 name_to_handle_at F
+GLIBC_2.18 nanosleep F
+GLIBC_2.18 netname2host F
+GLIBC_2.18 netname2user F
+GLIBC_2.18 newlocale F
+GLIBC_2.18 nfsservctl F
+GLIBC_2.18 nftw F
+GLIBC_2.18 nftw64 F
+GLIBC_2.18 ngettext F
+GLIBC_2.18 nice F
+GLIBC_2.18 nl_langinfo F
+GLIBC_2.18 nl_langinfo_l F
+GLIBC_2.18 nrand48 F
+GLIBC_2.18 nrand48_r F
+GLIBC_2.18 ntohl F
+GLIBC_2.18 ntohs F
+GLIBC_2.18 ntp_adjtime F
+GLIBC_2.18 ntp_gettime F
+GLIBC_2.18 ntp_gettimex F
+GLIBC_2.18 obstack_alloc_failed_handler D 0x4
+GLIBC_2.18 obstack_exit_failure D 0x4
+GLIBC_2.18 obstack_free F
+GLIBC_2.18 obstack_printf F
+GLIBC_2.18 obstack_vprintf F
+GLIBC_2.18 on_exit F
+GLIBC_2.18 open F
+GLIBC_2.18 open64 F
+GLIBC_2.18 open_by_handle_at F
+GLIBC_2.18 open_memstream F
+GLIBC_2.18 open_wmemstream F
+GLIBC_2.18 openat F
+GLIBC_2.18 openat64 F
+GLIBC_2.18 opendir F
+GLIBC_2.18 openlog F
+GLIBC_2.18 optarg D 0x4
+GLIBC_2.18 opterr D 0x4
+GLIBC_2.18 optind D 0x4
+GLIBC_2.18 optopt D 0x4
+GLIBC_2.18 parse_printf_format F
+GLIBC_2.18 passwd2des F
+GLIBC_2.18 pathconf F
+GLIBC_2.18 pause F
+GLIBC_2.18 pclose F
+GLIBC_2.18 perror F
+GLIBC_2.18 personality F
+GLIBC_2.18 pipe F
+GLIBC_2.18 pipe2 F
+GLIBC_2.18 pivot_root F
+GLIBC_2.18 pmap_getmaps F
+GLIBC_2.18 pmap_getport F
+GLIBC_2.18 pmap_rmtcall F
+GLIBC_2.18 pmap_set F
+GLIBC_2.18 pmap_unset F
+GLIBC_2.18 poll F
+GLIBC_2.18 popen F
+GLIBC_2.18 posix_fadvise F
+GLIBC_2.18 posix_fadvise64 F
+GLIBC_2.18 posix_fallocate F
+GLIBC_2.18 posix_fallocate64 F
+GLIBC_2.18 posix_madvise F
+GLIBC_2.18 posix_memalign F
+GLIBC_2.18 posix_openpt F
+GLIBC_2.18 posix_spawn F
+GLIBC_2.18 posix_spawn_file_actions_addclose F
+GLIBC_2.18 posix_spawn_file_actions_adddup2 F
+GLIBC_2.18 posix_spawn_file_actions_addopen F
+GLIBC_2.18 posix_spawn_file_actions_destroy F
+GLIBC_2.18 posix_spawn_file_actions_init F
+GLIBC_2.18 posix_spawnattr_destroy F
+GLIBC_2.18 posix_spawnattr_getflags F
+GLIBC_2.18 posix_spawnattr_getpgroup F
+GLIBC_2.18 posix_spawnattr_getschedparam F
+GLIBC_2.18 posix_spawnattr_getschedpolicy F
+GLIBC_2.18 posix_spawnattr_getsigdefault F
+GLIBC_2.18 posix_spawnattr_getsigmask F
+GLIBC_2.18 posix_spawnattr_init F
+GLIBC_2.18 posix_spawnattr_setflags F
+GLIBC_2.18 posix_spawnattr_setpgroup F
+GLIBC_2.18 posix_spawnattr_setschedparam F
+GLIBC_2.18 posix_spawnattr_setschedpolicy F
+GLIBC_2.18 posix_spawnattr_setsigdefault F
+GLIBC_2.18 posix_spawnattr_setsigmask F
+GLIBC_2.18 posix_spawnp F
+GLIBC_2.18 ppoll F
+GLIBC_2.18 prctl F
+GLIBC_2.18 pread F
+GLIBC_2.18 pread64 F
+GLIBC_2.18 preadv F
+GLIBC_2.18 preadv64 F
+GLIBC_2.18 printf F
+GLIBC_2.18 printf_size F
+GLIBC_2.18 printf_size_info F
+GLIBC_2.18 prlimit F
+GLIBC_2.18 prlimit64 F
+GLIBC_2.18 process_vm_readv F
+GLIBC_2.18 process_vm_writev F
+GLIBC_2.18 profil F
+GLIBC_2.18 program_invocation_name D 0x4
+GLIBC_2.18 program_invocation_short_name D 0x4
+GLIBC_2.18 pselect F
+GLIBC_2.18 psiginfo F
+GLIBC_2.18 psignal F
+GLIBC_2.18 pthread_attr_destroy F
+GLIBC_2.18 pthread_attr_getdetachstate F
+GLIBC_2.18 pthread_attr_getinheritsched F
+GLIBC_2.18 pthread_attr_getschedparam F
+GLIBC_2.18 pthread_attr_getschedpolicy F
+GLIBC_2.18 pthread_attr_getscope F
+GLIBC_2.18 pthread_attr_init F
+GLIBC_2.18 pthread_attr_setdetachstate F
+GLIBC_2.18 pthread_attr_setinheritsched F
+GLIBC_2.18 pthread_attr_setschedparam F
+GLIBC_2.18 pthread_attr_setschedpolicy F
+GLIBC_2.18 pthread_attr_setscope F
+GLIBC_2.18 pthread_cond_broadcast F
+GLIBC_2.18 pthread_cond_destroy F
+GLIBC_2.18 pthread_cond_init F
+GLIBC_2.18 pthread_cond_signal F
+GLIBC_2.18 pthread_cond_timedwait F
+GLIBC_2.18 pthread_cond_wait F
+GLIBC_2.18 pthread_condattr_destroy F
+GLIBC_2.18 pthread_condattr_init F
+GLIBC_2.18 pthread_equal F
+GLIBC_2.18 pthread_exit F
+GLIBC_2.18 pthread_getschedparam F
+GLIBC_2.18 pthread_mutex_destroy F
+GLIBC_2.18 pthread_mutex_init F
+GLIBC_2.18 pthread_mutex_lock F
+GLIBC_2.18 pthread_mutex_unlock F
+GLIBC_2.18 pthread_self F
+GLIBC_2.18 pthread_setcancelstate F
+GLIBC_2.18 pthread_setcanceltype F
+GLIBC_2.18 pthread_setschedparam F
+GLIBC_2.18 ptrace F
+GLIBC_2.18 ptsname F
+GLIBC_2.18 ptsname_r F
+GLIBC_2.18 putc F
+GLIBC_2.18 putc_unlocked F
+GLIBC_2.18 putchar F
+GLIBC_2.18 putchar_unlocked F
+GLIBC_2.18 putenv F
+GLIBC_2.18 putgrent F
+GLIBC_2.18 putmsg F
+GLIBC_2.18 putpmsg F
+GLIBC_2.18 putpwent F
+GLIBC_2.18 puts F
+GLIBC_2.18 putsgent F
+GLIBC_2.18 putspent F
+GLIBC_2.18 pututline F
+GLIBC_2.18 pututxline F
+GLIBC_2.18 putw F
+GLIBC_2.18 putwc F
+GLIBC_2.18 putwc_unlocked F
+GLIBC_2.18 putwchar F
+GLIBC_2.18 putwchar_unlocked F
+GLIBC_2.18 pvalloc F
+GLIBC_2.18 pwrite F
+GLIBC_2.18 pwrite64 F
+GLIBC_2.18 pwritev F
+GLIBC_2.18 pwritev64 F
+GLIBC_2.18 qecvt F
+GLIBC_2.18 qecvt_r F
+GLIBC_2.18 qfcvt F
+GLIBC_2.18 qfcvt_r F
+GLIBC_2.18 qgcvt F
+GLIBC_2.18 qsort F
+GLIBC_2.18 qsort_r F
+GLIBC_2.18 query_module F
+GLIBC_2.18 quick_exit F
+GLIBC_2.18 quotactl F
+GLIBC_2.18 raise F
+GLIBC_2.18 rand F
+GLIBC_2.18 rand_r F
+GLIBC_2.18 random F
+GLIBC_2.18 random_r F
+GLIBC_2.18 rawmemchr F
+GLIBC_2.18 rcmd F
+GLIBC_2.18 rcmd_af F
+GLIBC_2.18 re_comp F
+GLIBC_2.18 re_compile_fastmap F
+GLIBC_2.18 re_compile_pattern F
+GLIBC_2.18 re_exec F
+GLIBC_2.18 re_match F
+GLIBC_2.18 re_match_2 F
+GLIBC_2.18 re_search F
+GLIBC_2.18 re_search_2 F
+GLIBC_2.18 re_set_registers F
+GLIBC_2.18 re_set_syntax F
+GLIBC_2.18 re_syntax_options D 0x4
+GLIBC_2.18 read F
+GLIBC_2.18 readahead F
+GLIBC_2.18 readdir F
+GLIBC_2.18 readdir64 F
+GLIBC_2.18 readdir64_r F
+GLIBC_2.18 readdir_r F
+GLIBC_2.18 readlink F
+GLIBC_2.18 readlinkat F
+GLIBC_2.18 readv F
+GLIBC_2.18 realloc F
+GLIBC_2.18 realpath F
+GLIBC_2.18 reboot F
+GLIBC_2.18 recv F
+GLIBC_2.18 recvfrom F
+GLIBC_2.18 recvmmsg F
+GLIBC_2.18 recvmsg F
+GLIBC_2.18 regcomp F
+GLIBC_2.18 regerror F
+GLIBC_2.18 regexec F
+GLIBC_2.18 regfree F
+GLIBC_2.18 register_printf_function F
+GLIBC_2.18 register_printf_modifier F
+GLIBC_2.18 register_printf_specifier F
+GLIBC_2.18 register_printf_type F
+GLIBC_2.18 registerrpc F
+GLIBC_2.18 remap_file_pages F
+GLIBC_2.18 remove F
+GLIBC_2.18 removexattr F
+GLIBC_2.18 remque F
+GLIBC_2.18 rename F
+GLIBC_2.18 renameat F
+GLIBC_2.18 revoke F
+GLIBC_2.18 rewind F
+GLIBC_2.18 rewinddir F
+GLIBC_2.18 rexec F
+GLIBC_2.18 rexec_af F
+GLIBC_2.18 rexecoptions D 0x4
+GLIBC_2.18 rindex F
+GLIBC_2.18 rmdir F
+GLIBC_2.18 rpc_createerr D 0x10
+GLIBC_2.18 rpmatch F
+GLIBC_2.18 rresvport F
+GLIBC_2.18 rresvport_af F
+GLIBC_2.18 rtime F
+GLIBC_2.18 ruserok F
+GLIBC_2.18 ruserok_af F
+GLIBC_2.18 ruserpass F
+GLIBC_2.18 sbrk F
+GLIBC_2.18 scalbn F
+GLIBC_2.18 scalbnf F
+GLIBC_2.18 scalbnl F
+GLIBC_2.18 scandir F
+GLIBC_2.18 scandir64 F
+GLIBC_2.18 scandirat F
+GLIBC_2.18 scandirat64 F
+GLIBC_2.18 scanf F
+GLIBC_2.18 sched_get_priority_max F
+GLIBC_2.18 sched_get_priority_min F
+GLIBC_2.18 sched_getaffinity F
+GLIBC_2.18 sched_getcpu F
+GLIBC_2.18 sched_getparam F
+GLIBC_2.18 sched_getscheduler F
+GLIBC_2.18 sched_rr_get_interval F
+GLIBC_2.18 sched_setaffinity F
+GLIBC_2.18 sched_setparam F
+GLIBC_2.18 sched_setscheduler F
+GLIBC_2.18 sched_yield F
+GLIBC_2.18 secure_getenv F
+GLIBC_2.18 seed48 F
+GLIBC_2.18 seed48_r F
+GLIBC_2.18 seekdir F
+GLIBC_2.18 select F
+GLIBC_2.18 semctl F
+GLIBC_2.18 semget F
+GLIBC_2.18 semop F
+GLIBC_2.18 semtimedop F
+GLIBC_2.18 send F
+GLIBC_2.18 sendfile F
+GLIBC_2.18 sendfile64 F
+GLIBC_2.18 sendmmsg F
+GLIBC_2.18 sendmsg F
+GLIBC_2.18 sendto F
+GLIBC_2.18 setaliasent F
+GLIBC_2.18 setbuf F
+GLIBC_2.18 setbuffer F
+GLIBC_2.18 setcontext F
+GLIBC_2.18 setdomainname F
+GLIBC_2.18 setegid F
+GLIBC_2.18 setenv F
+GLIBC_2.18 seteuid F
+GLIBC_2.18 setfsent F
+GLIBC_2.18 setfsgid F
+GLIBC_2.18 setfsuid F
+GLIBC_2.18 setgid F
+GLIBC_2.18 setgrent F
+GLIBC_2.18 setgroups F
+GLIBC_2.18 sethostent F
+GLIBC_2.18 sethostid F
+GLIBC_2.18 sethostname F
+GLIBC_2.18 setipv4sourcefilter F
+GLIBC_2.18 setitimer F
+GLIBC_2.18 setjmp F
+GLIBC_2.18 setlinebuf F
+GLIBC_2.18 setlocale F
+GLIBC_2.18 setlogin F
+GLIBC_2.18 setlogmask F
+GLIBC_2.18 setmntent F
+GLIBC_2.18 setnetent F
+GLIBC_2.18 setnetgrent F
+GLIBC_2.18 setns F
+GLIBC_2.18 setpgid F
+GLIBC_2.18 setpgrp F
+GLIBC_2.18 setpriority F
+GLIBC_2.18 setprotoent F
+GLIBC_2.18 setpwent F
+GLIBC_2.18 setregid F
+GLIBC_2.18 setresgid F
+GLIBC_2.18 setresuid F
+GLIBC_2.18 setreuid F
+GLIBC_2.18 setrlimit F
+GLIBC_2.18 setrlimit64 F
+GLIBC_2.18 setrpcent F
+GLIBC_2.18 setservent F
+GLIBC_2.18 setsgent F
+GLIBC_2.18 setsid F
+GLIBC_2.18 setsockopt F
+GLIBC_2.18 setsourcefilter F
+GLIBC_2.18 setspent F
+GLIBC_2.18 setstate F
+GLIBC_2.18 setstate_r F
+GLIBC_2.18 settimeofday F
+GLIBC_2.18 setttyent F
+GLIBC_2.18 setuid F
+GLIBC_2.18 setusershell F
+GLIBC_2.18 setutent F
+GLIBC_2.18 setutxent F
+GLIBC_2.18 setvbuf F
+GLIBC_2.18 setxattr F
+GLIBC_2.18 sgetsgent F
+GLIBC_2.18 sgetsgent_r F
+GLIBC_2.18 sgetspent F
+GLIBC_2.18 sgetspent_r F
+GLIBC_2.18 shmat F
+GLIBC_2.18 shmctl F
+GLIBC_2.18 shmdt F
+GLIBC_2.18 shmget F
+GLIBC_2.18 shutdown F
+GLIBC_2.18 sigaction F
+GLIBC_2.18 sigaddset F
+GLIBC_2.18 sigaltstack F
+GLIBC_2.18 sigandset F
+GLIBC_2.18 sigblock F
+GLIBC_2.18 sigdelset F
+GLIBC_2.18 sigemptyset F
+GLIBC_2.18 sigfillset F
+GLIBC_2.18 siggetmask F
+GLIBC_2.18 sighold F
+GLIBC_2.18 sigignore F
+GLIBC_2.18 siginterrupt F
+GLIBC_2.18 sigisemptyset F
+GLIBC_2.18 sigismember F
+GLIBC_2.18 siglongjmp F
+GLIBC_2.18 signal F
+GLIBC_2.18 signalfd F
+GLIBC_2.18 sigorset F
+GLIBC_2.18 sigpause F
+GLIBC_2.18 sigpending F
+GLIBC_2.18 sigprocmask F
+GLIBC_2.18 sigqueue F
+GLIBC_2.18 sigrelse F
+GLIBC_2.18 sigreturn F
+GLIBC_2.18 sigset F
+GLIBC_2.18 sigsetmask F
+GLIBC_2.18 sigstack F
+GLIBC_2.18 sigsuspend F
+GLIBC_2.18 sigtimedwait F
+GLIBC_2.18 sigvec F
+GLIBC_2.18 sigwait F
+GLIBC_2.18 sigwaitinfo F
+GLIBC_2.18 sleep F
+GLIBC_2.18 snprintf F
+GLIBC_2.18 sockatmark F
+GLIBC_2.18 socket F
+GLIBC_2.18 socketpair F
+GLIBC_2.18 splice F
+GLIBC_2.18 sprintf F
+GLIBC_2.18 sprofil F
+GLIBC_2.18 srand F
+GLIBC_2.18 srand48 F
+GLIBC_2.18 srand48_r F
+GLIBC_2.18 srandom F
+GLIBC_2.18 srandom_r F
+GLIBC_2.18 sscanf F
+GLIBC_2.18 ssignal F
+GLIBC_2.18 sstk F
+GLIBC_2.18 statfs F
+GLIBC_2.18 statfs64 F
+GLIBC_2.18 statvfs F
+GLIBC_2.18 statvfs64 F
+GLIBC_2.18 stderr D 0x4
+GLIBC_2.18 stdin D 0x4
+GLIBC_2.18 stdout D 0x4
+GLIBC_2.18 step F
+GLIBC_2.18 stime F
+GLIBC_2.18 stpcpy F
+GLIBC_2.18 stpncpy F
+GLIBC_2.18 strcasecmp F
+GLIBC_2.18 strcasecmp_l F
+GLIBC_2.18 strcasestr F
+GLIBC_2.18 strcat F
+GLIBC_2.18 strchr F
+GLIBC_2.18 strchrnul F
+GLIBC_2.18 strcmp F
+GLIBC_2.18 strcoll F
+GLIBC_2.18 strcoll_l F
+GLIBC_2.18 strcpy F
+GLIBC_2.18 strcspn F
+GLIBC_2.18 strdup F
+GLIBC_2.18 strerror F
+GLIBC_2.18 strerror_l F
+GLIBC_2.18 strerror_r F
+GLIBC_2.18 strfmon F
+GLIBC_2.18 strfmon_l F
+GLIBC_2.18 strfry F
+GLIBC_2.18 strftime F
+GLIBC_2.18 strftime_l F
+GLIBC_2.18 strlen F
+GLIBC_2.18 strncasecmp F
+GLIBC_2.18 strncasecmp_l F
+GLIBC_2.18 strncat F
+GLIBC_2.18 strncmp F
+GLIBC_2.18 strncpy F
+GLIBC_2.18 strndup F
+GLIBC_2.18 strnlen F
+GLIBC_2.18 strpbrk F
+GLIBC_2.18 strptime F
+GLIBC_2.18 strptime_l F
+GLIBC_2.18 strrchr F
+GLIBC_2.18 strsep F
+GLIBC_2.18 strsignal F
+GLIBC_2.18 strspn F
+GLIBC_2.18 strstr F
+GLIBC_2.18 strtod F
+GLIBC_2.18 strtod_l F
+GLIBC_2.18 strtof F
+GLIBC_2.18 strtof_l F
+GLIBC_2.18 strtoimax F
+GLIBC_2.18 strtok F
+GLIBC_2.18 strtok_r F
+GLIBC_2.18 strtol F
+GLIBC_2.18 strtol_l F
+GLIBC_2.18 strtold F
+GLIBC_2.18 strtold_l F
+GLIBC_2.18 strtoll F
+GLIBC_2.18 strtoll_l F
+GLIBC_2.18 strtoq F
+GLIBC_2.18 strtoul F
+GLIBC_2.18 strtoul_l F
+GLIBC_2.18 strtoull F
+GLIBC_2.18 strtoull_l F
+GLIBC_2.18 strtoumax F
+GLIBC_2.18 strtouq F
+GLIBC_2.18 strverscmp F
+GLIBC_2.18 strxfrm F
+GLIBC_2.18 strxfrm_l F
+GLIBC_2.18 stty F
+GLIBC_2.18 svc_exit F
+GLIBC_2.18 svc_fdset D 0x80
+GLIBC_2.18 svc_getreq F
+GLIBC_2.18 svc_getreq_common F
+GLIBC_2.18 svc_getreq_poll F
+GLIBC_2.18 svc_getreqset F
+GLIBC_2.18 svc_max_pollfd D 0x4
+GLIBC_2.18 svc_pollfd D 0x4
+GLIBC_2.18 svc_register F
+GLIBC_2.18 svc_run F
+GLIBC_2.18 svc_sendreply F
+GLIBC_2.18 svc_unregister F
+GLIBC_2.18 svcauthdes_stats D 0xc
+GLIBC_2.18 svcerr_auth F
+GLIBC_2.18 svcerr_decode F
+GLIBC_2.18 svcerr_noproc F
+GLIBC_2.18 svcerr_noprog F
+GLIBC_2.18 svcerr_progvers F
+GLIBC_2.18 svcerr_systemerr F
+GLIBC_2.18 svcerr_weakauth F
+GLIBC_2.18 svcfd_create F
+GLIBC_2.18 svcraw_create F
+GLIBC_2.18 svctcp_create F
+GLIBC_2.18 svcudp_bufcreate F
+GLIBC_2.18 svcudp_create F
+GLIBC_2.18 svcudp_enablecache F
+GLIBC_2.18 svcunix_create F
+GLIBC_2.18 svcunixfd_create F
+GLIBC_2.18 swab F
+GLIBC_2.18 swapcontext F
+GLIBC_2.18 swapoff F
+GLIBC_2.18 swapon F
+GLIBC_2.18 swprintf F
+GLIBC_2.18 swscanf F
+GLIBC_2.18 symlink F
+GLIBC_2.18 symlinkat F
+GLIBC_2.18 sync F
+GLIBC_2.18 sync_file_range F
+GLIBC_2.18 syncfs F
+GLIBC_2.18 sys_errlist D 0x21c
+GLIBC_2.18 sys_nerr D 0x4
+GLIBC_2.18 sys_sigabbrev D 0x104
+GLIBC_2.18 sys_siglist D 0x104
+GLIBC_2.18 syscall F
+GLIBC_2.18 sysconf F
+GLIBC_2.18 sysctl F
+GLIBC_2.18 sysinfo F
+GLIBC_2.18 syslog F
+GLIBC_2.18 system F
+GLIBC_2.18 sysv_signal F
+GLIBC_2.18 tcdrain F
+GLIBC_2.18 tcflow F
+GLIBC_2.18 tcflush F
+GLIBC_2.18 tcgetattr F
+GLIBC_2.18 tcgetpgrp F
+GLIBC_2.18 tcgetsid F
+GLIBC_2.18 tcsendbreak F
+GLIBC_2.18 tcsetattr F
+GLIBC_2.18 tcsetpgrp F
+GLIBC_2.18 tdelete F
+GLIBC_2.18 tdestroy F
+GLIBC_2.18 tee F
+GLIBC_2.18 telldir F
+GLIBC_2.18 tempnam F
+GLIBC_2.18 textdomain F
+GLIBC_2.18 tfind F
+GLIBC_2.18 time F
+GLIBC_2.18 timegm F
+GLIBC_2.18 timelocal F
+GLIBC_2.18 timerfd_create F
+GLIBC_2.18 timerfd_gettime F
+GLIBC_2.18 timerfd_settime F
+GLIBC_2.18 times F
+GLIBC_2.18 timespec_get F
+GLIBC_2.18 timezone D 0x4
+GLIBC_2.18 tmpfile F
+GLIBC_2.18 tmpfile64 F
+GLIBC_2.18 tmpnam F
+GLIBC_2.18 tmpnam_r F
+GLIBC_2.18 toascii F
+GLIBC_2.18 tolower F
+GLIBC_2.18 tolower_l F
+GLIBC_2.18 toupper F
+GLIBC_2.18 toupper_l F
+GLIBC_2.18 towctrans F
+GLIBC_2.18 towctrans_l F
+GLIBC_2.18 towlower F
+GLIBC_2.18 towlower_l F
+GLIBC_2.18 towupper F
+GLIBC_2.18 towupper_l F
+GLIBC_2.18 tr_break F
+GLIBC_2.18 truncate F
+GLIBC_2.18 truncate64 F
+GLIBC_2.18 tsearch F
+GLIBC_2.18 ttyname F
+GLIBC_2.18 ttyname_r F
+GLIBC_2.18 ttyslot F
+GLIBC_2.18 twalk F
+GLIBC_2.18 tzname D 0x8
+GLIBC_2.18 tzset F
+GLIBC_2.18 ualarm F
+GLIBC_2.18 ulckpwdf F
+GLIBC_2.18 ulimit F
+GLIBC_2.18 umask F
+GLIBC_2.18 umount F
+GLIBC_2.18 umount2 F
+GLIBC_2.18 uname F
+GLIBC_2.18 ungetc F
+GLIBC_2.18 ungetwc F
+GLIBC_2.18 unlink F
+GLIBC_2.18 unlinkat F
+GLIBC_2.18 unlockpt F
+GLIBC_2.18 unsetenv F
+GLIBC_2.18 unshare F
+GLIBC_2.18 updwtmp F
+GLIBC_2.18 updwtmpx F
+GLIBC_2.18 uselib F
+GLIBC_2.18 uselocale F
+GLIBC_2.18 user2netname F
+GLIBC_2.18 usleep F
+GLIBC_2.18 ustat F
+GLIBC_2.18 utime F
+GLIBC_2.18 utimensat F
+GLIBC_2.18 utimes F
+GLIBC_2.18 utmpname F
+GLIBC_2.18 utmpxname F
+GLIBC_2.18 valloc F
+GLIBC_2.18 vasprintf F
+GLIBC_2.18 vdprintf F
+GLIBC_2.18 verr F
+GLIBC_2.18 verrx F
+GLIBC_2.18 versionsort F
+GLIBC_2.18 versionsort64 F
+GLIBC_2.18 vfork F
+GLIBC_2.18 vfprintf F
+GLIBC_2.18 vfscanf F
+GLIBC_2.18 vfwprintf F
+GLIBC_2.18 vfwscanf F
+GLIBC_2.18 vhangup F
+GLIBC_2.18 vlimit F
+GLIBC_2.18 vmsplice F
+GLIBC_2.18 vprintf F
+GLIBC_2.18 vscanf F
+GLIBC_2.18 vsnprintf F
+GLIBC_2.18 vsprintf F
+GLIBC_2.18 vsscanf F
+GLIBC_2.18 vswprintf F
+GLIBC_2.18 vswscanf F
+GLIBC_2.18 vsyslog F
+GLIBC_2.18 vtimes F
+GLIBC_2.18 vwarn F
+GLIBC_2.18 vwarnx F
+GLIBC_2.18 vwprintf F
+GLIBC_2.18 vwscanf F
+GLIBC_2.18 wait F
+GLIBC_2.18 wait3 F
+GLIBC_2.18 wait4 F
+GLIBC_2.18 waitid F
+GLIBC_2.18 waitpid F
+GLIBC_2.18 warn F
+GLIBC_2.18 warnx F
+GLIBC_2.18 wcpcpy F
+GLIBC_2.18 wcpncpy F
+GLIBC_2.18 wcrtomb F
+GLIBC_2.18 wcscasecmp F
+GLIBC_2.18 wcscasecmp_l F
+GLIBC_2.18 wcscat F
+GLIBC_2.18 wcschr F
+GLIBC_2.18 wcschrnul F
+GLIBC_2.18 wcscmp F
+GLIBC_2.18 wcscoll F
+GLIBC_2.18 wcscoll_l F
+GLIBC_2.18 wcscpy F
+GLIBC_2.18 wcscspn F
+GLIBC_2.18 wcsdup F
+GLIBC_2.18 wcsftime F
+GLIBC_2.18 wcsftime_l F
+GLIBC_2.18 wcslen F
+GLIBC_2.18 wcsncasecmp F
+GLIBC_2.18 wcsncasecmp_l F
+GLIBC_2.18 wcsncat F
+GLIBC_2.18 wcsncmp F
+GLIBC_2.18 wcsncpy F
+GLIBC_2.18 wcsnlen F
+GLIBC_2.18 wcsnrtombs F
+GLIBC_2.18 wcspbrk F
+GLIBC_2.18 wcsrchr F
+GLIBC_2.18 wcsrtombs F
+GLIBC_2.18 wcsspn F
+GLIBC_2.18 wcsstr F
+GLIBC_2.18 wcstod F
+GLIBC_2.18 wcstod_l F
+GLIBC_2.18 wcstof F
+GLIBC_2.18 wcstof_l F
+GLIBC_2.18 wcstoimax F
+GLIBC_2.18 wcstok F
+GLIBC_2.18 wcstol F
+GLIBC_2.18 wcstol_l F
+GLIBC_2.18 wcstold F
+GLIBC_2.18 wcstold_l F
+GLIBC_2.18 wcstoll F
+GLIBC_2.18 wcstoll_l F
+GLIBC_2.18 wcstombs F
+GLIBC_2.18 wcstoq F
+GLIBC_2.18 wcstoul F
+GLIBC_2.18 wcstoul_l F
+GLIBC_2.18 wcstoull F
+GLIBC_2.18 wcstoull_l F
+GLIBC_2.18 wcstoumax F
+GLIBC_2.18 wcstouq F
+GLIBC_2.18 wcswcs F
+GLIBC_2.18 wcswidth F
+GLIBC_2.18 wcsxfrm F
+GLIBC_2.18 wcsxfrm_l F
+GLIBC_2.18 wctob F
+GLIBC_2.18 wctomb F
+GLIBC_2.18 wctrans F
+GLIBC_2.18 wctrans_l F
+GLIBC_2.18 wctype F
+GLIBC_2.18 wctype_l F
+GLIBC_2.18 wcwidth F
+GLIBC_2.18 wmemchr F
+GLIBC_2.18 wmemcmp F
+GLIBC_2.18 wmemcpy F
+GLIBC_2.18 wmemmove F
+GLIBC_2.18 wmempcpy F
+GLIBC_2.18 wmemset F
+GLIBC_2.18 wordexp F
+GLIBC_2.18 wordfree F
+GLIBC_2.18 wprintf F
+GLIBC_2.18 write F
+GLIBC_2.18 writev F
+GLIBC_2.18 wscanf F
+GLIBC_2.18 xdecrypt F
+GLIBC_2.18 xdr_accepted_reply F
+GLIBC_2.18 xdr_array F
+GLIBC_2.18 xdr_authdes_cred F
+GLIBC_2.18 xdr_authdes_verf F
+GLIBC_2.18 xdr_authunix_parms F
+GLIBC_2.18 xdr_bool F
+GLIBC_2.18 xdr_bytes F
+GLIBC_2.18 xdr_callhdr F
+GLIBC_2.18 xdr_callmsg F
+GLIBC_2.18 xdr_char F
+GLIBC_2.18 xdr_cryptkeyarg F
+GLIBC_2.18 xdr_cryptkeyarg2 F
+GLIBC_2.18 xdr_cryptkeyres F
+GLIBC_2.18 xdr_des_block F
+GLIBC_2.18 xdr_double F
+GLIBC_2.18 xdr_enum F
+GLIBC_2.18 xdr_float F
+GLIBC_2.18 xdr_free F
+GLIBC_2.18 xdr_getcredres F
+GLIBC_2.18 xdr_hyper F
+GLIBC_2.18 xdr_int F
+GLIBC_2.18 xdr_int16_t F
+GLIBC_2.18 xdr_int32_t F
+GLIBC_2.18 xdr_int64_t F
+GLIBC_2.18 xdr_int8_t F
+GLIBC_2.18 xdr_key_netstarg F
+GLIBC_2.18 xdr_key_netstres F
+GLIBC_2.18 xdr_keybuf F
+GLIBC_2.18 xdr_keystatus F
+GLIBC_2.18 xdr_long F
+GLIBC_2.18 xdr_longlong_t F
+GLIBC_2.18 xdr_netnamestr F
+GLIBC_2.18 xdr_netobj F
+GLIBC_2.18 xdr_opaque F
+GLIBC_2.18 xdr_opaque_auth F
+GLIBC_2.18 xdr_pmap F
+GLIBC_2.18 xdr_pmaplist F
+GLIBC_2.18 xdr_pointer F
+GLIBC_2.18 xdr_quad_t F
+GLIBC_2.18 xdr_reference F
+GLIBC_2.18 xdr_rejected_reply F
+GLIBC_2.18 xdr_replymsg F
+GLIBC_2.18 xdr_rmtcall_args F
+GLIBC_2.18 xdr_rmtcallres F
+GLIBC_2.18 xdr_short F
+GLIBC_2.18 xdr_sizeof F
+GLIBC_2.18 xdr_string F
+GLIBC_2.18 xdr_u_char F
+GLIBC_2.18 xdr_u_hyper F
+GLIBC_2.18 xdr_u_int F
+GLIBC_2.18 xdr_u_long F
+GLIBC_2.18 xdr_u_longlong_t F
+GLIBC_2.18 xdr_u_quad_t F
+GLIBC_2.18 xdr_u_short F
+GLIBC_2.18 xdr_uint16_t F
+GLIBC_2.18 xdr_uint32_t F
+GLIBC_2.18 xdr_uint64_t F
+GLIBC_2.18 xdr_uint8_t F
+GLIBC_2.18 xdr_union F
+GLIBC_2.18 xdr_unixcred F
+GLIBC_2.18 xdr_vector F
+GLIBC_2.18 xdr_void F
+GLIBC_2.18 xdr_wrapstring F
+GLIBC_2.18 xdrmem_create F
+GLIBC_2.18 xdrrec_create F
+GLIBC_2.18 xdrrec_endofrecord F
+GLIBC_2.18 xdrrec_eof F
+GLIBC_2.18 xdrrec_skiprecord F
+GLIBC_2.18 xdrstdio_create F
+GLIBC_2.18 xencrypt F
+GLIBC_2.18 xprt_register F
+GLIBC_2.18 xprt_unregister F
+GLIBC_2.22 fmemopen F
+GLIBC_2.23 fts64_children F
+GLIBC_2.23 fts64_close F
+GLIBC_2.23 fts64_open F
+GLIBC_2.23 fts64_read F
+GLIBC_2.23 fts64_set F
+GLIBC_2.24 quick_exit F
+GLIBC_2.25 __explicit_bzero_chk F
+GLIBC_2.25 explicit_bzero F
+GLIBC_2.25 getentropy F
+GLIBC_2.25 getrandom F
+GLIBC_2.25 strfromd F
+GLIBC_2.25 strfromf F
+GLIBC_2.25 strfroml F
+GLIBC_2.26 preadv2 F
+GLIBC_2.26 preadv64v2 F
+GLIBC_2.26 pwritev2 F
+GLIBC_2.26 pwritev64v2 F
+GLIBC_2.26 reallocarray F
+GLIBC_2.27 copy_file_range F
+GLIBC_2.27 glob F
+GLIBC_2.27 glob64 F
+GLIBC_2.27 memfd_create F
+GLIBC_2.27 mlock2 F
+GLIBC_2.27 pkey_alloc F
+GLIBC_2.27 pkey_free F
+GLIBC_2.27 pkey_get F
+GLIBC_2.27 pkey_mprotect F
+GLIBC_2.27 pkey_set F
+GLIBC_2.27 strfromf32 F
+GLIBC_2.27 strfromf32x F
+GLIBC_2.27 strfromf64 F
+GLIBC_2.27 strtof32 F
+GLIBC_2.27 strtof32_l F
+GLIBC_2.27 strtof32x F
+GLIBC_2.27 strtof32x_l F
+GLIBC_2.27 strtof64 F
+GLIBC_2.27 strtof64_l F
+GLIBC_2.27 wcstof32 F
+GLIBC_2.27 wcstof32_l F
+GLIBC_2.27 wcstof32x F
+GLIBC_2.27 wcstof32x_l F
+GLIBC_2.27 wcstof64 F
+GLIBC_2.27 wcstof64_l F
+GLIBC_2.28 fcntl F
+GLIBC_2.28 fcntl64 F
+GLIBC_2.28 renameat2 F
+GLIBC_2.28 statx F
+GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_equal F
+GLIBC_2.28 thrd_sleep F
+GLIBC_2.28 thrd_yield F
+GLIBC_2.29 getcpu F
+GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
+GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
+GLIBC_2.30 getdents64 F
+GLIBC_2.30 gettid F
+GLIBC_2.30 tgkill F
+GLIBC_2.30 twalk_r F
+GLIBC_2.31 msgctl F
+GLIBC_2.31 semctl F
+GLIBC_2.31 shmctl F
diff --git a/sysdeps/unix/sysv/linux/microblaze/libcrypt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libcrypt.abilist
index 4b37b33ee5..4b37b33ee5 100644
--- a/sysdeps/unix/sysv/linux/microblaze/libcrypt.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libcrypt.abilist
diff --git a/sysdeps/unix/sysv/linux/microblaze/libdl.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist
index 46b5716dbe..46b5716dbe 100644
--- a/sysdeps/unix/sysv/linux/microblaze/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libdl.abilist
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
new file mode 100644
index 0000000000..8dedc9a8a6
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
@@ -0,0 +1,784 @@
+GLIBC_2.18 _LIB_VERSION D 0x4
+GLIBC_2.18 __acos_finite F
+GLIBC_2.18 __acosf_finite F
+GLIBC_2.18 __acosh_finite F
+GLIBC_2.18 __acoshf_finite F
+GLIBC_2.18 __asin_finite F
+GLIBC_2.18 __asinf_finite F
+GLIBC_2.18 __atan2_finite F
+GLIBC_2.18 __atan2f_finite F
+GLIBC_2.18 __atanh_finite F
+GLIBC_2.18 __atanhf_finite F
+GLIBC_2.18 __clog10 F
+GLIBC_2.18 __clog10f F
+GLIBC_2.18 __clog10l F
+GLIBC_2.18 __cosh_finite F
+GLIBC_2.18 __coshf_finite F
+GLIBC_2.18 __exp10_finite F
+GLIBC_2.18 __exp10f_finite F
+GLIBC_2.18 __exp2_finite F
+GLIBC_2.18 __exp2f_finite F
+GLIBC_2.18 __exp_finite F
+GLIBC_2.18 __expf_finite F
+GLIBC_2.18 __finite F
+GLIBC_2.18 __finitef F
+GLIBC_2.18 __finitel F
+GLIBC_2.18 __fmod_finite F
+GLIBC_2.18 __fmodf_finite F
+GLIBC_2.18 __fpclassify F
+GLIBC_2.18 __fpclassifyf F
+GLIBC_2.18 __gamma_r_finite F
+GLIBC_2.18 __gammaf_r_finite F
+GLIBC_2.18 __hypot_finite F
+GLIBC_2.18 __hypotf_finite F
+GLIBC_2.18 __issignaling F
+GLIBC_2.18 __issignalingf F
+GLIBC_2.18 __j0_finite F
+GLIBC_2.18 __j0f_finite F
+GLIBC_2.18 __j1_finite F
+GLIBC_2.18 __j1f_finite F
+GLIBC_2.18 __jn_finite F
+GLIBC_2.18 __jnf_finite F
+GLIBC_2.18 __lgamma_r_finite F
+GLIBC_2.18 __lgammaf_r_finite F
+GLIBC_2.18 __log10_finite F
+GLIBC_2.18 __log10f_finite F
+GLIBC_2.18 __log2_finite F
+GLIBC_2.18 __log2f_finite F
+GLIBC_2.18 __log_finite F
+GLIBC_2.18 __logf_finite F
+GLIBC_2.18 __pow_finite F
+GLIBC_2.18 __powf_finite F
+GLIBC_2.18 __remainder_finite F
+GLIBC_2.18 __remainderf_finite F
+GLIBC_2.18 __scalb_finite F
+GLIBC_2.18 __scalbf_finite F
+GLIBC_2.18 __signbit F
+GLIBC_2.18 __signbitf F
+GLIBC_2.18 __sinh_finite F
+GLIBC_2.18 __sinhf_finite F
+GLIBC_2.18 __sqrt_finite F
+GLIBC_2.18 __sqrtf_finite F
+GLIBC_2.18 __y0_finite F
+GLIBC_2.18 __y0f_finite F
+GLIBC_2.18 __y1_finite F
+GLIBC_2.18 __y1f_finite F
+GLIBC_2.18 __yn_finite F
+GLIBC_2.18 __ynf_finite F
+GLIBC_2.18 acos F
+GLIBC_2.18 acosf F
+GLIBC_2.18 acosh F
+GLIBC_2.18 acoshf F
+GLIBC_2.18 acoshl F
+GLIBC_2.18 acosl F
+GLIBC_2.18 asin F
+GLIBC_2.18 asinf F
+GLIBC_2.18 asinh F
+GLIBC_2.18 asinhf F
+GLIBC_2.18 asinhl F
+GLIBC_2.18 asinl F
+GLIBC_2.18 atan F
+GLIBC_2.18 atan2 F
+GLIBC_2.18 atan2f F
+GLIBC_2.18 atan2l F
+GLIBC_2.18 atanf F
+GLIBC_2.18 atanh F
+GLIBC_2.18 atanhf F
+GLIBC_2.18 atanhl F
+GLIBC_2.18 atanl F
+GLIBC_2.18 cabs F
+GLIBC_2.18 cabsf F
+GLIBC_2.18 cabsl F
+GLIBC_2.18 cacos F
+GLIBC_2.18 cacosf F
+GLIBC_2.18 cacosh F
+GLIBC_2.18 cacoshf F
+GLIBC_2.18 cacoshl F
+GLIBC_2.18 cacosl F
+GLIBC_2.18 carg F
+GLIBC_2.18 cargf F
+GLIBC_2.18 cargl F
+GLIBC_2.18 casin F
+GLIBC_2.18 casinf F
+GLIBC_2.18 casinh F
+GLIBC_2.18 casinhf F
+GLIBC_2.18 casinhl F
+GLIBC_2.18 casinl F
+GLIBC_2.18 catan F
+GLIBC_2.18 catanf F
+GLIBC_2.18 catanh F
+GLIBC_2.18 catanhf F
+GLIBC_2.18 catanhl F
+GLIBC_2.18 catanl F
+GLIBC_2.18 cbrt F
+GLIBC_2.18 cbrtf F
+GLIBC_2.18 cbrtl F
+GLIBC_2.18 ccos F
+GLIBC_2.18 ccosf F
+GLIBC_2.18 ccosh F
+GLIBC_2.18 ccoshf F
+GLIBC_2.18 ccoshl F
+GLIBC_2.18 ccosl F
+GLIBC_2.18 ceil F
+GLIBC_2.18 ceilf F
+GLIBC_2.18 ceill F
+GLIBC_2.18 cexp F
+GLIBC_2.18 cexpf F
+GLIBC_2.18 cexpl F
+GLIBC_2.18 cimag F
+GLIBC_2.18 cimagf F
+GLIBC_2.18 cimagl F
+GLIBC_2.18 clog F
+GLIBC_2.18 clog10 F
+GLIBC_2.18 clog10f F
+GLIBC_2.18 clog10l F
+GLIBC_2.18 clogf F
+GLIBC_2.18 clogl F
+GLIBC_2.18 conj F
+GLIBC_2.18 conjf F
+GLIBC_2.18 conjl F
+GLIBC_2.18 copysign F
+GLIBC_2.18 copysignf F
+GLIBC_2.18 copysignl F
+GLIBC_2.18 cos F
+GLIBC_2.18 cosf F
+GLIBC_2.18 cosh F
+GLIBC_2.18 coshf F
+GLIBC_2.18 coshl F
+GLIBC_2.18 cosl F
+GLIBC_2.18 cpow F
+GLIBC_2.18 cpowf F
+GLIBC_2.18 cpowl F
+GLIBC_2.18 cproj F
+GLIBC_2.18 cprojf F
+GLIBC_2.18 cprojl F
+GLIBC_2.18 creal F
+GLIBC_2.18 crealf F
+GLIBC_2.18 creall F
+GLIBC_2.18 csin F
+GLIBC_2.18 csinf F
+GLIBC_2.18 csinh F
+GLIBC_2.18 csinhf F
+GLIBC_2.18 csinhl F
+GLIBC_2.18 csinl F
+GLIBC_2.18 csqrt F
+GLIBC_2.18 csqrtf F
+GLIBC_2.18 csqrtl F
+GLIBC_2.18 ctan F
+GLIBC_2.18 ctanf F
+GLIBC_2.18 ctanh F
+GLIBC_2.18 ctanhf F
+GLIBC_2.18 ctanhl F
+GLIBC_2.18 ctanl F
+GLIBC_2.18 drem F
+GLIBC_2.18 dremf F
+GLIBC_2.18 dreml F
+GLIBC_2.18 erf F
+GLIBC_2.18 erfc F
+GLIBC_2.18 erfcf F
+GLIBC_2.18 erfcl F
+GLIBC_2.18 erff F
+GLIBC_2.18 erfl F
+GLIBC_2.18 exp F
+GLIBC_2.18 exp10 F
+GLIBC_2.18 exp10f F
+GLIBC_2.18 exp10l F
+GLIBC_2.18 exp2 F
+GLIBC_2.18 exp2f F
+GLIBC_2.18 exp2l F
+GLIBC_2.18 expf F
+GLIBC_2.18 expl F
+GLIBC_2.18 expm1 F
+GLIBC_2.18 expm1f F
+GLIBC_2.18 expm1l F
+GLIBC_2.18 fabs F
+GLIBC_2.18 fabsf F
+GLIBC_2.18 fabsl F
+GLIBC_2.18 fdim F
+GLIBC_2.18 fdimf F
+GLIBC_2.18 fdiml F
+GLIBC_2.18 feclearexcept F
+GLIBC_2.18 fedisableexcept F
+GLIBC_2.18 feenableexcept F
+GLIBC_2.18 fegetenv F
+GLIBC_2.18 fegetexcept F
+GLIBC_2.18 fegetexceptflag F
+GLIBC_2.18 fegetround F
+GLIBC_2.18 feholdexcept F
+GLIBC_2.18 feraiseexcept F
+GLIBC_2.18 fesetenv F
+GLIBC_2.18 fesetexceptflag F
+GLIBC_2.18 fesetround F
+GLIBC_2.18 fetestexcept F
+GLIBC_2.18 feupdateenv F
+GLIBC_2.18 finite F
+GLIBC_2.18 finitef F
+GLIBC_2.18 finitel F
+GLIBC_2.18 floor F
+GLIBC_2.18 floorf F
+GLIBC_2.18 floorl F
+GLIBC_2.18 fma F
+GLIBC_2.18 fmaf F
+GLIBC_2.18 fmal F
+GLIBC_2.18 fmax F
+GLIBC_2.18 fmaxf F
+GLIBC_2.18 fmaxl F
+GLIBC_2.18 fmin F
+GLIBC_2.18 fminf F
+GLIBC_2.18 fminl F
+GLIBC_2.18 fmod F
+GLIBC_2.18 fmodf F
+GLIBC_2.18 fmodl F
+GLIBC_2.18 frexp F
+GLIBC_2.18 frexpf F
+GLIBC_2.18 frexpl F
+GLIBC_2.18 gamma F
+GLIBC_2.18 gammaf F
+GLIBC_2.18 gammal F
+GLIBC_2.18 hypot F
+GLIBC_2.18 hypotf F
+GLIBC_2.18 hypotl F
+GLIBC_2.18 ilogb F
+GLIBC_2.18 ilogbf F
+GLIBC_2.18 ilogbl F
+GLIBC_2.18 j0 F
+GLIBC_2.18 j0f F
+GLIBC_2.18 j0l F
+GLIBC_2.18 j1 F
+GLIBC_2.18 j1f F
+GLIBC_2.18 j1l F
+GLIBC_2.18 jn F
+GLIBC_2.18 jnf F
+GLIBC_2.18 jnl F
+GLIBC_2.18 ldexp F
+GLIBC_2.18 ldexpf F
+GLIBC_2.18 ldexpl F
+GLIBC_2.18 lgamma F
+GLIBC_2.18 lgamma_r F
+GLIBC_2.18 lgammaf F
+GLIBC_2.18 lgammaf_r F
+GLIBC_2.18 lgammal F
+GLIBC_2.18 lgammal_r F
+GLIBC_2.18 llrint F
+GLIBC_2.18 llrintf F
+GLIBC_2.18 llrintl F
+GLIBC_2.18 llround F
+GLIBC_2.18 llroundf F
+GLIBC_2.18 llroundl F
+GLIBC_2.18 log F
+GLIBC_2.18 log10 F
+GLIBC_2.18 log10f F
+GLIBC_2.18 log10l F
+GLIBC_2.18 log1p F
+GLIBC_2.18 log1pf F
+GLIBC_2.18 log1pl F
+GLIBC_2.18 log2 F
+GLIBC_2.18 log2f F
+GLIBC_2.18 log2l F
+GLIBC_2.18 logb F
+GLIBC_2.18 logbf F
+GLIBC_2.18 logbl F
+GLIBC_2.18 logf F
+GLIBC_2.18 logl F
+GLIBC_2.18 lrint F
+GLIBC_2.18 lrintf F
+GLIBC_2.18 lrintl F
+GLIBC_2.18 lround F
+GLIBC_2.18 lroundf F
+GLIBC_2.18 lroundl F
+GLIBC_2.18 matherr F
+GLIBC_2.18 modf F
+GLIBC_2.18 modff F
+GLIBC_2.18 modfl F
+GLIBC_2.18 nan F
+GLIBC_2.18 nanf F
+GLIBC_2.18 nanl F
+GLIBC_2.18 nearbyint F
+GLIBC_2.18 nearbyintf F
+GLIBC_2.18 nearbyintl F
+GLIBC_2.18 nextafter F
+GLIBC_2.18 nextafterf F
+GLIBC_2.18 nextafterl F
+GLIBC_2.18 nexttoward F
+GLIBC_2.18 nexttowardf F
+GLIBC_2.18 nexttowardl F
+GLIBC_2.18 pow F
+GLIBC_2.18 pow10 F
+GLIBC_2.18 pow10f F
+GLIBC_2.18 pow10l F
+GLIBC_2.18 powf F
+GLIBC_2.18 powl F
+GLIBC_2.18 remainder F
+GLIBC_2.18 remainderf F
+GLIBC_2.18 remainderl F
+GLIBC_2.18 remquo F
+GLIBC_2.18 remquof F
+GLIBC_2.18 remquol F
+GLIBC_2.18 rint F
+GLIBC_2.18 rintf F
+GLIBC_2.18 rintl F
+GLIBC_2.18 round F
+GLIBC_2.18 roundf F
+GLIBC_2.18 roundl F
+GLIBC_2.18 scalb F
+GLIBC_2.18 scalbf F
+GLIBC_2.18 scalbl F
+GLIBC_2.18 scalbln F
+GLIBC_2.18 scalblnf F
+GLIBC_2.18 scalblnl F
+GLIBC_2.18 scalbn F
+GLIBC_2.18 scalbnf F
+GLIBC_2.18 scalbnl F
+GLIBC_2.18 signgam D 0x4
+GLIBC_2.18 significand F
+GLIBC_2.18 significandf F
+GLIBC_2.18 significandl F
+GLIBC_2.18 sin F
+GLIBC_2.18 sincos F
+GLIBC_2.18 sincosf F
+GLIBC_2.18 sincosl F
+GLIBC_2.18 sinf F
+GLIBC_2.18 sinh F
+GLIBC_2.18 sinhf F
+GLIBC_2.18 sinhl F
+GLIBC_2.18 sinl F
+GLIBC_2.18 sqrt F
+GLIBC_2.18 sqrtf F
+GLIBC_2.18 sqrtl F
+GLIBC_2.18 tan F
+GLIBC_2.18 tanf F
+GLIBC_2.18 tanh F
+GLIBC_2.18 tanhf F
+GLIBC_2.18 tanhl F
+GLIBC_2.18 tanl F
+GLIBC_2.18 tgamma F
+GLIBC_2.18 tgammaf F
+GLIBC_2.18 tgammal F
+GLIBC_2.18 trunc F
+GLIBC_2.18 truncf F
+GLIBC_2.18 truncl F
+GLIBC_2.18 y0 F
+GLIBC_2.18 y0f F
+GLIBC_2.18 y0l F
+GLIBC_2.18 y1 F
+GLIBC_2.18 y1f F
+GLIBC_2.18 y1l F
+GLIBC_2.18 yn F
+GLIBC_2.18 ynf F
+GLIBC_2.18 ynl F
+GLIBC_2.23 __signgam D 0x4
+GLIBC_2.23 lgamma F
+GLIBC_2.23 lgammaf F
+GLIBC_2.23 lgammal F
+GLIBC_2.24 nextdown F
+GLIBC_2.24 nextdownf F
+GLIBC_2.24 nextdownl F
+GLIBC_2.24 nextup F
+GLIBC_2.24 nextupf F
+GLIBC_2.24 nextupl F
+GLIBC_2.25 __iseqsig F
+GLIBC_2.25 __iseqsigf F
+GLIBC_2.25 canonicalize F
+GLIBC_2.25 canonicalizef F
+GLIBC_2.25 canonicalizel F
+GLIBC_2.25 fegetmode F
+GLIBC_2.25 fesetexcept F
+GLIBC_2.25 fesetmode F
+GLIBC_2.25 fetestexceptflag F
+GLIBC_2.25 fmaxmag F
+GLIBC_2.25 fmaxmagf F
+GLIBC_2.25 fmaxmagl F
+GLIBC_2.25 fminmag F
+GLIBC_2.25 fminmagf F
+GLIBC_2.25 fminmagl F
+GLIBC_2.25 fromfp F
+GLIBC_2.25 fromfpf F
+GLIBC_2.25 fromfpl F
+GLIBC_2.25 fromfpx F
+GLIBC_2.25 fromfpxf F
+GLIBC_2.25 fromfpxl F
+GLIBC_2.25 getpayload F
+GLIBC_2.25 getpayloadf F
+GLIBC_2.25 getpayloadl F
+GLIBC_2.25 llogb F
+GLIBC_2.25 llogbf F
+GLIBC_2.25 llogbl F
+GLIBC_2.25 roundeven F
+GLIBC_2.25 roundevenf F
+GLIBC_2.25 roundevenl F
+GLIBC_2.25 setpayload F
+GLIBC_2.25 setpayloadf F
+GLIBC_2.25 setpayloadl F
+GLIBC_2.25 setpayloadsig F
+GLIBC_2.25 setpayloadsigf F
+GLIBC_2.25 setpayloadsigl F
+GLIBC_2.25 totalorder F
+GLIBC_2.25 totalorderf F
+GLIBC_2.25 totalorderl F
+GLIBC_2.25 totalordermag F
+GLIBC_2.25 totalordermagf F
+GLIBC_2.25 totalordermagl F
+GLIBC_2.25 ufromfp F
+GLIBC_2.25 ufromfpf F
+GLIBC_2.25 ufromfpl F
+GLIBC_2.25 ufromfpx F
+GLIBC_2.25 ufromfpxf F
+GLIBC_2.25 ufromfpxl F
+GLIBC_2.27 acosf32 F
+GLIBC_2.27 acosf32x F
+GLIBC_2.27 acosf64 F
+GLIBC_2.27 acoshf32 F
+GLIBC_2.27 acoshf32x F
+GLIBC_2.27 acoshf64 F
+GLIBC_2.27 asinf32 F
+GLIBC_2.27 asinf32x F
+GLIBC_2.27 asinf64 F
+GLIBC_2.27 asinhf32 F
+GLIBC_2.27 asinhf32x F
+GLIBC_2.27 asinhf64 F
+GLIBC_2.27 atan2f32 F
+GLIBC_2.27 atan2f32x F
+GLIBC_2.27 atan2f64 F
+GLIBC_2.27 atanf32 F
+GLIBC_2.27 atanf32x F
+GLIBC_2.27 atanf64 F
+GLIBC_2.27 atanhf32 F
+GLIBC_2.27 atanhf32x F
+GLIBC_2.27 atanhf64 F
+GLIBC_2.27 cabsf32 F
+GLIBC_2.27 cabsf32x F
+GLIBC_2.27 cabsf64 F
+GLIBC_2.27 cacosf32 F
+GLIBC_2.27 cacosf32x F
+GLIBC_2.27 cacosf64 F
+GLIBC_2.27 cacoshf32 F
+GLIBC_2.27 cacoshf32x F
+GLIBC_2.27 cacoshf64 F
+GLIBC_2.27 canonicalizef32 F
+GLIBC_2.27 canonicalizef32x F
+GLIBC_2.27 canonicalizef64 F
+GLIBC_2.27 cargf32 F
+GLIBC_2.27 cargf32x F
+GLIBC_2.27 cargf64 F
+GLIBC_2.27 casinf32 F
+GLIBC_2.27 casinf32x F
+GLIBC_2.27 casinf64 F
+GLIBC_2.27 casinhf32 F
+GLIBC_2.27 casinhf32x F
+GLIBC_2.27 casinhf64 F
+GLIBC_2.27 catanf32 F
+GLIBC_2.27 catanf32x F
+GLIBC_2.27 catanf64 F
+GLIBC_2.27 catanhf32 F
+GLIBC_2.27 catanhf32x F
+GLIBC_2.27 catanhf64 F
+GLIBC_2.27 cbrtf32 F
+GLIBC_2.27 cbrtf32x F
+GLIBC_2.27 cbrtf64 F
+GLIBC_2.27 ccosf32 F
+GLIBC_2.27 ccosf32x F
+GLIBC_2.27 ccosf64 F
+GLIBC_2.27 ccoshf32 F
+GLIBC_2.27 ccoshf32x F
+GLIBC_2.27 ccoshf64 F
+GLIBC_2.27 ceilf32 F
+GLIBC_2.27 ceilf32x F
+GLIBC_2.27 ceilf64 F
+GLIBC_2.27 cexpf32 F
+GLIBC_2.27 cexpf32x F
+GLIBC_2.27 cexpf64 F
+GLIBC_2.27 cimagf32 F
+GLIBC_2.27 cimagf32x F
+GLIBC_2.27 cimagf64 F
+GLIBC_2.27 clog10f32 F
+GLIBC_2.27 clog10f32x F
+GLIBC_2.27 clog10f64 F
+GLIBC_2.27 clogf32 F
+GLIBC_2.27 clogf32x F
+GLIBC_2.27 clogf64 F
+GLIBC_2.27 conjf32 F
+GLIBC_2.27 conjf32x F
+GLIBC_2.27 conjf64 F
+GLIBC_2.27 copysignf32 F
+GLIBC_2.27 copysignf32x F
+GLIBC_2.27 copysignf64 F
+GLIBC_2.27 cosf32 F
+GLIBC_2.27 cosf32x F
+GLIBC_2.27 cosf64 F
+GLIBC_2.27 coshf32 F
+GLIBC_2.27 coshf32x F
+GLIBC_2.27 coshf64 F
+GLIBC_2.27 cpowf32 F
+GLIBC_2.27 cpowf32x F
+GLIBC_2.27 cpowf64 F
+GLIBC_2.27 cprojf32 F
+GLIBC_2.27 cprojf32x F
+GLIBC_2.27 cprojf64 F
+GLIBC_2.27 crealf32 F
+GLIBC_2.27 crealf32x F
+GLIBC_2.27 crealf64 F
+GLIBC_2.27 csinf32 F
+GLIBC_2.27 csinf32x F
+GLIBC_2.27 csinf64 F
+GLIBC_2.27 csinhf32 F
+GLIBC_2.27 csinhf32x F
+GLIBC_2.27 csinhf64 F
+GLIBC_2.27 csqrtf32 F
+GLIBC_2.27 csqrtf32x F
+GLIBC_2.27 csqrtf64 F
+GLIBC_2.27 ctanf32 F
+GLIBC_2.27 ctanf32x F
+GLIBC_2.27 ctanf64 F
+GLIBC_2.27 ctanhf32 F
+GLIBC_2.27 ctanhf32x F
+GLIBC_2.27 ctanhf64 F
+GLIBC_2.27 erfcf32 F
+GLIBC_2.27 erfcf32x F
+GLIBC_2.27 erfcf64 F
+GLIBC_2.27 erff32 F
+GLIBC_2.27 erff32x F
+GLIBC_2.27 erff64 F
+GLIBC_2.27 exp10f32 F
+GLIBC_2.27 exp10f32x F
+GLIBC_2.27 exp10f64 F
+GLIBC_2.27 exp2f F
+GLIBC_2.27 exp2f32 F
+GLIBC_2.27 exp2f32x F
+GLIBC_2.27 exp2f64 F
+GLIBC_2.27 expf F
+GLIBC_2.27 expf32 F
+GLIBC_2.27 expf32x F
+GLIBC_2.27 expf64 F
+GLIBC_2.27 expm1f32 F
+GLIBC_2.27 expm1f32x F
+GLIBC_2.27 expm1f64 F
+GLIBC_2.27 fabsf32 F
+GLIBC_2.27 fabsf32x F
+GLIBC_2.27 fabsf64 F
+GLIBC_2.27 fdimf32 F
+GLIBC_2.27 fdimf32x F
+GLIBC_2.27 fdimf64 F
+GLIBC_2.27 floorf32 F
+GLIBC_2.27 floorf32x F
+GLIBC_2.27 floorf64 F
+GLIBC_2.27 fmaf32 F
+GLIBC_2.27 fmaf32x F
+GLIBC_2.27 fmaf64 F
+GLIBC_2.27 fmaxf32 F
+GLIBC_2.27 fmaxf32x F
+GLIBC_2.27 fmaxf64 F
+GLIBC_2.27 fmaxmagf32 F
+GLIBC_2.27 fmaxmagf32x F
+GLIBC_2.27 fmaxmagf64 F
+GLIBC_2.27 fminf32 F
+GLIBC_2.27 fminf32x F
+GLIBC_2.27 fminf64 F
+GLIBC_2.27 fminmagf32 F
+GLIBC_2.27 fminmagf32x F
+GLIBC_2.27 fminmagf64 F
+GLIBC_2.27 fmodf32 F
+GLIBC_2.27 fmodf32x F
+GLIBC_2.27 fmodf64 F
+GLIBC_2.27 frexpf32 F
+GLIBC_2.27 frexpf32x F
+GLIBC_2.27 frexpf64 F
+GLIBC_2.27 fromfpf32 F
+GLIBC_2.27 fromfpf32x F
+GLIBC_2.27 fromfpf64 F
+GLIBC_2.27 fromfpxf32 F
+GLIBC_2.27 fromfpxf32x F
+GLIBC_2.27 fromfpxf64 F
+GLIBC_2.27 getpayloadf32 F
+GLIBC_2.27 getpayloadf32x F
+GLIBC_2.27 getpayloadf64 F
+GLIBC_2.27 hypotf32 F
+GLIBC_2.27 hypotf32x F
+GLIBC_2.27 hypotf64 F
+GLIBC_2.27 ilogbf32 F
+GLIBC_2.27 ilogbf32x F
+GLIBC_2.27 ilogbf64 F
+GLIBC_2.27 j0f32 F
+GLIBC_2.27 j0f32x F
+GLIBC_2.27 j0f64 F
+GLIBC_2.27 j1f32 F
+GLIBC_2.27 j1f32x F
+GLIBC_2.27 j1f64 F
+GLIBC_2.27 jnf32 F
+GLIBC_2.27 jnf32x F
+GLIBC_2.27 jnf64 F
+GLIBC_2.27 ldexpf32 F
+GLIBC_2.27 ldexpf32x F
+GLIBC_2.27 ldexpf64 F
+GLIBC_2.27 lgammaf32 F
+GLIBC_2.27 lgammaf32_r F
+GLIBC_2.27 lgammaf32x F
+GLIBC_2.27 lgammaf32x_r F
+GLIBC_2.27 lgammaf64 F
+GLIBC_2.27 lgammaf64_r F
+GLIBC_2.27 llogbf32 F
+GLIBC_2.27 llogbf32x F
+GLIBC_2.27 llogbf64 F
+GLIBC_2.27 llrintf32 F
+GLIBC_2.27 llrintf32x F
+GLIBC_2.27 llrintf64 F
+GLIBC_2.27 llroundf32 F
+GLIBC_2.27 llroundf32x F
+GLIBC_2.27 llroundf64 F
+GLIBC_2.27 log10f32 F
+GLIBC_2.27 log10f32x F
+GLIBC_2.27 log10f64 F
+GLIBC_2.27 log1pf32 F
+GLIBC_2.27 log1pf32x F
+GLIBC_2.27 log1pf64 F
+GLIBC_2.27 log2f F
+GLIBC_2.27 log2f32 F
+GLIBC_2.27 log2f32x F
+GLIBC_2.27 log2f64 F
+GLIBC_2.27 logbf32 F
+GLIBC_2.27 logbf32x F
+GLIBC_2.27 logbf64 F
+GLIBC_2.27 logf F
+GLIBC_2.27 logf32 F
+GLIBC_2.27 logf32x F
+GLIBC_2.27 logf64 F
+GLIBC_2.27 lrintf32 F
+GLIBC_2.27 lrintf32x F
+GLIBC_2.27 lrintf64 F
+GLIBC_2.27 lroundf32 F
+GLIBC_2.27 lroundf32x F
+GLIBC_2.27 lroundf64 F
+GLIBC_2.27 modff32 F
+GLIBC_2.27 modff32x F
+GLIBC_2.27 modff64 F
+GLIBC_2.27 nanf32 F
+GLIBC_2.27 nanf32x F
+GLIBC_2.27 nanf64 F
+GLIBC_2.27 nearbyintf32 F
+GLIBC_2.27 nearbyintf32x F
+GLIBC_2.27 nearbyintf64 F
+GLIBC_2.27 nextafterf32 F
+GLIBC_2.27 nextafterf32x F
+GLIBC_2.27 nextafterf64 F
+GLIBC_2.27 nextdownf32 F
+GLIBC_2.27 nextdownf32x F
+GLIBC_2.27 nextdownf64 F
+GLIBC_2.27 nextupf32 F
+GLIBC_2.27 nextupf32x F
+GLIBC_2.27 nextupf64 F
+GLIBC_2.27 powf F
+GLIBC_2.27 powf32 F
+GLIBC_2.27 powf32x F
+GLIBC_2.27 powf64 F
+GLIBC_2.27 remainderf32 F
+GLIBC_2.27 remainderf32x F
+GLIBC_2.27 remainderf64 F
+GLIBC_2.27 remquof32 F
+GLIBC_2.27 remquof32x F
+GLIBC_2.27 remquof64 F
+GLIBC_2.27 rintf32 F
+GLIBC_2.27 rintf32x F
+GLIBC_2.27 rintf64 F
+GLIBC_2.27 roundevenf32 F
+GLIBC_2.27 roundevenf32x F
+GLIBC_2.27 roundevenf64 F
+GLIBC_2.27 roundf32 F
+GLIBC_2.27 roundf32x F
+GLIBC_2.27 roundf64 F
+GLIBC_2.27 scalblnf32 F
+GLIBC_2.27 scalblnf32x F
+GLIBC_2.27 scalblnf64 F
+GLIBC_2.27 scalbnf32 F
+GLIBC_2.27 scalbnf32x F
+GLIBC_2.27 scalbnf64 F
+GLIBC_2.27 setpayloadf32 F
+GLIBC_2.27 setpayloadf32x F
+GLIBC_2.27 setpayloadf64 F
+GLIBC_2.27 setpayloadsigf32 F
+GLIBC_2.27 setpayloadsigf32x F
+GLIBC_2.27 setpayloadsigf64 F
+GLIBC_2.27 sincosf32 F
+GLIBC_2.27 sincosf32x F
+GLIBC_2.27 sincosf64 F
+GLIBC_2.27 sinf32 F
+GLIBC_2.27 sinf32x F
+GLIBC_2.27 sinf64 F
+GLIBC_2.27 sinhf32 F
+GLIBC_2.27 sinhf32x F
+GLIBC_2.27 sinhf64 F
+GLIBC_2.27 sqrtf32 F
+GLIBC_2.27 sqrtf32x F
+GLIBC_2.27 sqrtf64 F
+GLIBC_2.27 tanf32 F
+GLIBC_2.27 tanf32x F
+GLIBC_2.27 tanf64 F
+GLIBC_2.27 tanhf32 F
+GLIBC_2.27 tanhf32x F
+GLIBC_2.27 tanhf64 F
+GLIBC_2.27 tgammaf32 F
+GLIBC_2.27 tgammaf32x F
+GLIBC_2.27 tgammaf64 F
+GLIBC_2.27 totalorderf32 F
+GLIBC_2.27 totalorderf32x F
+GLIBC_2.27 totalorderf64 F
+GLIBC_2.27 totalordermagf32 F
+GLIBC_2.27 totalordermagf32x F
+GLIBC_2.27 totalordermagf64 F
+GLIBC_2.27 truncf32 F
+GLIBC_2.27 truncf32x F
+GLIBC_2.27 truncf64 F
+GLIBC_2.27 ufromfpf32 F
+GLIBC_2.27 ufromfpf32x F
+GLIBC_2.27 ufromfpf64 F
+GLIBC_2.27 ufromfpxf32 F
+GLIBC_2.27 ufromfpxf32x F
+GLIBC_2.27 ufromfpxf64 F
+GLIBC_2.27 y0f32 F
+GLIBC_2.27 y0f32x F
+GLIBC_2.27 y0f64 F
+GLIBC_2.27 y1f32 F
+GLIBC_2.27 y1f32x F
+GLIBC_2.27 y1f64 F
+GLIBC_2.27 ynf32 F
+GLIBC_2.27 ynf32x F
+GLIBC_2.27 ynf64 F
+GLIBC_2.28 daddl F
+GLIBC_2.28 ddivl F
+GLIBC_2.28 dmull F
+GLIBC_2.28 dsubl F
+GLIBC_2.28 f32addf32x F
+GLIBC_2.28 f32addf64 F
+GLIBC_2.28 f32divf32x F
+GLIBC_2.28 f32divf64 F
+GLIBC_2.28 f32mulf32x F
+GLIBC_2.28 f32mulf64 F
+GLIBC_2.28 f32subf32x F
+GLIBC_2.28 f32subf64 F
+GLIBC_2.28 f32xaddf64 F
+GLIBC_2.28 f32xdivf64 F
+GLIBC_2.28 f32xmulf64 F
+GLIBC_2.28 f32xsubf64 F
+GLIBC_2.28 fadd F
+GLIBC_2.28 faddl F
+GLIBC_2.28 fdiv F
+GLIBC_2.28 fdivl F
+GLIBC_2.28 fmul F
+GLIBC_2.28 fmull F
+GLIBC_2.28 fsub F
+GLIBC_2.28 fsubl F
+GLIBC_2.29 exp F
+GLIBC_2.29 exp2 F
+GLIBC_2.29 log F
+GLIBC_2.29 log2 F
+GLIBC_2.29 pow F
+GLIBC_2.31 totalorder F
+GLIBC_2.31 totalorderf F
+GLIBC_2.31 totalorderf32 F
+GLIBC_2.31 totalorderf32x F
+GLIBC_2.31 totalorderf64 F
+GLIBC_2.31 totalorderl F
+GLIBC_2.31 totalordermag F
+GLIBC_2.31 totalordermagf F
+GLIBC_2.31 totalordermagf32 F
+GLIBC_2.31 totalordermagf32x F
+GLIBC_2.31 totalordermagf64 F
+GLIBC_2.31 totalordermagl F
diff --git a/sysdeps/unix/sysv/linux/microblaze/libnsl.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libnsl.abilist
index 48a9e04eb8..48a9e04eb8 100644
--- a/sysdeps/unix/sysv/linux/microblaze/libnsl.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libnsl.abilist
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
new file mode 100644
index 0000000000..bf777df285
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
@@ -0,0 +1,237 @@
+GLIBC_2.18 _IO_flockfile F
+GLIBC_2.18 _IO_ftrylockfile F
+GLIBC_2.18 _IO_funlockfile F
+GLIBC_2.18 __close F
+GLIBC_2.18 __connect F
+GLIBC_2.18 __errno_location F
+GLIBC_2.18 __fcntl F
+GLIBC_2.18 __fork F
+GLIBC_2.18 __h_errno_location F
+GLIBC_2.18 __libc_allocate_rtsig F
+GLIBC_2.18 __libc_current_sigrtmax F
+GLIBC_2.18 __libc_current_sigrtmin F
+GLIBC_2.18 __lseek F
+GLIBC_2.18 __open F
+GLIBC_2.18 __open64 F
+GLIBC_2.18 __pread64 F
+GLIBC_2.18 __pthread_cleanup_routine F
+GLIBC_2.18 __pthread_getspecific F
+GLIBC_2.18 __pthread_key_create F
+GLIBC_2.18 __pthread_mutex_destroy F
+GLIBC_2.18 __pthread_mutex_init F
+GLIBC_2.18 __pthread_mutex_lock F
+GLIBC_2.18 __pthread_mutex_trylock F
+GLIBC_2.18 __pthread_mutex_unlock F
+GLIBC_2.18 __pthread_mutexattr_destroy F
+GLIBC_2.18 __pthread_mutexattr_init F
+GLIBC_2.18 __pthread_mutexattr_settype F
+GLIBC_2.18 __pthread_once F
+GLIBC_2.18 __pthread_register_cancel F
+GLIBC_2.18 __pthread_register_cancel_defer F
+GLIBC_2.18 __pthread_rwlock_destroy F
+GLIBC_2.18 __pthread_rwlock_init F
+GLIBC_2.18 __pthread_rwlock_rdlock F
+GLIBC_2.18 __pthread_rwlock_tryrdlock F
+GLIBC_2.18 __pthread_rwlock_trywrlock F
+GLIBC_2.18 __pthread_rwlock_unlock F
+GLIBC_2.18 __pthread_rwlock_wrlock F
+GLIBC_2.18 __pthread_setspecific F
+GLIBC_2.18 __pthread_unregister_cancel F
+GLIBC_2.18 __pthread_unregister_cancel_restore F
+GLIBC_2.18 __pthread_unwind_next F
+GLIBC_2.18 __pwrite64 F
+GLIBC_2.18 __read F
+GLIBC_2.18 __res_state F
+GLIBC_2.18 __send F
+GLIBC_2.18 __sigaction F
+GLIBC_2.18 __wait F
+GLIBC_2.18 __write F
+GLIBC_2.18 _pthread_cleanup_pop F
+GLIBC_2.18 _pthread_cleanup_pop_restore F
+GLIBC_2.18 _pthread_cleanup_push F
+GLIBC_2.18 _pthread_cleanup_push_defer F
+GLIBC_2.18 accept F
+GLIBC_2.18 close F
+GLIBC_2.18 connect F
+GLIBC_2.18 fcntl F
+GLIBC_2.18 flockfile F
+GLIBC_2.18 fork F
+GLIBC_2.18 fsync F
+GLIBC_2.18 ftrylockfile F
+GLIBC_2.18 funlockfile F
+GLIBC_2.18 longjmp F
+GLIBC_2.18 lseek F
+GLIBC_2.18 lseek64 F
+GLIBC_2.18 msync F
+GLIBC_2.18 open F
+GLIBC_2.18 open64 F
+GLIBC_2.18 pause F
+GLIBC_2.18 pread F
+GLIBC_2.18 pread64 F
+GLIBC_2.18 pthread_attr_getaffinity_np F
+GLIBC_2.18 pthread_attr_getguardsize F
+GLIBC_2.18 pthread_attr_getschedpolicy F
+GLIBC_2.18 pthread_attr_getscope F
+GLIBC_2.18 pthread_attr_getstack F
+GLIBC_2.18 pthread_attr_getstackaddr F
+GLIBC_2.18 pthread_attr_getstacksize F
+GLIBC_2.18 pthread_attr_setaffinity_np F
+GLIBC_2.18 pthread_attr_setguardsize F
+GLIBC_2.18 pthread_attr_setschedpolicy F
+GLIBC_2.18 pthread_attr_setscope F
+GLIBC_2.18 pthread_attr_setstack F
+GLIBC_2.18 pthread_attr_setstackaddr F
+GLIBC_2.18 pthread_attr_setstacksize F
+GLIBC_2.18 pthread_barrier_destroy F
+GLIBC_2.18 pthread_barrier_init F
+GLIBC_2.18 pthread_barrier_wait F
+GLIBC_2.18 pthread_barrierattr_destroy F
+GLIBC_2.18 pthread_barrierattr_getpshared F
+GLIBC_2.18 pthread_barrierattr_init F
+GLIBC_2.18 pthread_barrierattr_setpshared F
+GLIBC_2.18 pthread_cancel F
+GLIBC_2.18 pthread_cond_broadcast F
+GLIBC_2.18 pthread_cond_destroy F
+GLIBC_2.18 pthread_cond_init F
+GLIBC_2.18 pthread_cond_signal F
+GLIBC_2.18 pthread_cond_timedwait F
+GLIBC_2.18 pthread_cond_wait F
+GLIBC_2.18 pthread_condattr_destroy F
+GLIBC_2.18 pthread_condattr_getclock F
+GLIBC_2.18 pthread_condattr_getpshared F
+GLIBC_2.18 pthread_condattr_init F
+GLIBC_2.18 pthread_condattr_setclock F
+GLIBC_2.18 pthread_condattr_setpshared F
+GLIBC_2.18 pthread_create F
+GLIBC_2.18 pthread_detach F
+GLIBC_2.18 pthread_exit F
+GLIBC_2.18 pthread_getaffinity_np F
+GLIBC_2.18 pthread_getattr_default_np F
+GLIBC_2.18 pthread_getattr_np F
+GLIBC_2.18 pthread_getconcurrency F
+GLIBC_2.18 pthread_getcpuclockid F
+GLIBC_2.18 pthread_getname_np F
+GLIBC_2.18 pthread_getschedparam F
+GLIBC_2.18 pthread_getspecific F
+GLIBC_2.18 pthread_join F
+GLIBC_2.18 pthread_key_create F
+GLIBC_2.18 pthread_key_delete F
+GLIBC_2.18 pthread_kill F
+GLIBC_2.18 pthread_kill_other_threads_np F
+GLIBC_2.18 pthread_mutex_consistent F
+GLIBC_2.18 pthread_mutex_consistent_np F
+GLIBC_2.18 pthread_mutex_destroy F
+GLIBC_2.18 pthread_mutex_getprioceiling F
+GLIBC_2.18 pthread_mutex_init F
+GLIBC_2.18 pthread_mutex_lock F
+GLIBC_2.18 pthread_mutex_setprioceiling F
+GLIBC_2.18 pthread_mutex_timedlock F
+GLIBC_2.18 pthread_mutex_trylock F
+GLIBC_2.18 pthread_mutex_unlock F
+GLIBC_2.18 pthread_mutexattr_destroy F
+GLIBC_2.18 pthread_mutexattr_getkind_np F
+GLIBC_2.18 pthread_mutexattr_getprioceiling F
+GLIBC_2.18 pthread_mutexattr_getprotocol F
+GLIBC_2.18 pthread_mutexattr_getpshared F
+GLIBC_2.18 pthread_mutexattr_getrobust F
+GLIBC_2.18 pthread_mutexattr_getrobust_np F
+GLIBC_2.18 pthread_mutexattr_gettype F
+GLIBC_2.18 pthread_mutexattr_init F
+GLIBC_2.18 pthread_mutexattr_setkind_np F
+GLIBC_2.18 pthread_mutexattr_setprioceiling F
+GLIBC_2.18 pthread_mutexattr_setprotocol F
+GLIBC_2.18 pthread_mutexattr_setpshared F
+GLIBC_2.18 pthread_mutexattr_setrobust F
+GLIBC_2.18 pthread_mutexattr_setrobust_np F
+GLIBC_2.18 pthread_mutexattr_settype F
+GLIBC_2.18 pthread_once F
+GLIBC_2.18 pthread_rwlock_destroy F
+GLIBC_2.18 pthread_rwlock_init F
+GLIBC_2.18 pthread_rwlock_rdlock F
+GLIBC_2.18 pthread_rwlock_timedrdlock F
+GLIBC_2.18 pthread_rwlock_timedwrlock F
+GLIBC_2.18 pthread_rwlock_tryrdlock F
+GLIBC_2.18 pthread_rwlock_trywrlock F
+GLIBC_2.18 pthread_rwlock_unlock F
+GLIBC_2.18 pthread_rwlock_wrlock F
+GLIBC_2.18 pthread_rwlockattr_destroy F
+GLIBC_2.18 pthread_rwlockattr_getkind_np F
+GLIBC_2.18 pthread_rwlockattr_getpshared F
+GLIBC_2.18 pthread_rwlockattr_init F
+GLIBC_2.18 pthread_rwlockattr_setkind_np F
+GLIBC_2.18 pthread_rwlockattr_setpshared F
+GLIBC_2.18 pthread_setaffinity_np F
+GLIBC_2.18 pthread_setattr_default_np F
+GLIBC_2.18 pthread_setcancelstate F
+GLIBC_2.18 pthread_setcanceltype F
+GLIBC_2.18 pthread_setconcurrency F
+GLIBC_2.18 pthread_setname_np F
+GLIBC_2.18 pthread_setschedparam F
+GLIBC_2.18 pthread_setschedprio F
+GLIBC_2.18 pthread_setspecific F
+GLIBC_2.18 pthread_sigmask F
+GLIBC_2.18 pthread_sigqueue F
+GLIBC_2.18 pthread_spin_destroy F
+GLIBC_2.18 pthread_spin_init F
+GLIBC_2.18 pthread_spin_lock F
+GLIBC_2.18 pthread_spin_trylock F
+GLIBC_2.18 pthread_spin_unlock F
+GLIBC_2.18 pthread_testcancel F
+GLIBC_2.18 pthread_timedjoin_np F
+GLIBC_2.18 pthread_tryjoin_np F
+GLIBC_2.18 pthread_yield F
+GLIBC_2.18 pwrite F
+GLIBC_2.18 pwrite64 F
+GLIBC_2.18 raise F
+GLIBC_2.18 read F
+GLIBC_2.18 recv F
+GLIBC_2.18 recvfrom F
+GLIBC_2.18 recvmsg F
+GLIBC_2.18 sem_close F
+GLIBC_2.18 sem_destroy F
+GLIBC_2.18 sem_getvalue F
+GLIBC_2.18 sem_init F
+GLIBC_2.18 sem_open F
+GLIBC_2.18 sem_post F
+GLIBC_2.18 sem_timedwait F
+GLIBC_2.18 sem_trywait F
+GLIBC_2.18 sem_unlink F
+GLIBC_2.18 sem_wait F
+GLIBC_2.18 send F
+GLIBC_2.18 sendmsg F
+GLIBC_2.18 sendto F
+GLIBC_2.18 sigaction F
+GLIBC_2.18 siglongjmp F
+GLIBC_2.18 sigwait F
+GLIBC_2.18 system F
+GLIBC_2.18 tcdrain F
+GLIBC_2.18 wait F
+GLIBC_2.18 waitpid F
+GLIBC_2.18 write F
+GLIBC_2.28 call_once F
+GLIBC_2.28 cnd_broadcast F
+GLIBC_2.28 cnd_destroy F
+GLIBC_2.28 cnd_init F
+GLIBC_2.28 cnd_signal F
+GLIBC_2.28 cnd_timedwait F
+GLIBC_2.28 cnd_wait F
+GLIBC_2.28 mtx_destroy F
+GLIBC_2.28 mtx_init F
+GLIBC_2.28 mtx_lock F
+GLIBC_2.28 mtx_timedlock F
+GLIBC_2.28 mtx_trylock F
+GLIBC_2.28 mtx_unlock F
+GLIBC_2.28 thrd_create F
+GLIBC_2.28 thrd_detach F
+GLIBC_2.28 thrd_exit F
+GLIBC_2.28 thrd_join F
+GLIBC_2.28 tss_create F
+GLIBC_2.28 tss_delete F
+GLIBC_2.28 tss_get F
+GLIBC_2.28 tss_set F
+GLIBC_2.30 pthread_cond_clockwait F
+GLIBC_2.30 pthread_mutex_clocklock F
+GLIBC_2.30 pthread_rwlock_clockrdlock F
+GLIBC_2.30 pthread_rwlock_clockwrlock F
+GLIBC_2.30 sem_clockwait F
+GLIBC_2.31 pthread_clockjoin_np F
diff --git a/sysdeps/unix/sysv/linux/microblaze/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
index b04f0397c8..b04f0397c8 100644
--- a/sysdeps/unix/sysv/linux/microblaze/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libresolv.abilist
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
new file mode 100644
index 0000000000..889dfbc0ee
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
@@ -0,0 +1,35 @@
+GLIBC_2.18 __mq_open_2 F
+GLIBC_2.18 aio_cancel F
+GLIBC_2.18 aio_cancel64 F
+GLIBC_2.18 aio_error F
+GLIBC_2.18 aio_error64 F
+GLIBC_2.18 aio_fsync F
+GLIBC_2.18 aio_fsync64 F
+GLIBC_2.18 aio_init F
+GLIBC_2.18 aio_read F
+GLIBC_2.18 aio_read64 F
+GLIBC_2.18 aio_return F
+GLIBC_2.18 aio_return64 F
+GLIBC_2.18 aio_suspend F
+GLIBC_2.18 aio_suspend64 F
+GLIBC_2.18 aio_write F
+GLIBC_2.18 aio_write64 F
+GLIBC_2.18 lio_listio F
+GLIBC_2.18 lio_listio64 F
+GLIBC_2.18 mq_close F
+GLIBC_2.18 mq_getattr F
+GLIBC_2.18 mq_notify F
+GLIBC_2.18 mq_open F
+GLIBC_2.18 mq_receive F
+GLIBC_2.18 mq_send F
+GLIBC_2.18 mq_setattr F
+GLIBC_2.18 mq_timedreceive F
+GLIBC_2.18 mq_timedsend F
+GLIBC_2.18 mq_unlink F
+GLIBC_2.18 shm_open F
+GLIBC_2.18 shm_unlink F
+GLIBC_2.18 timer_create F
+GLIBC_2.18 timer_delete F
+GLIBC_2.18 timer_getoverrun F
+GLIBC_2.18 timer_gettime F
+GLIBC_2.18 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/microblaze/libthread_db.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libthread_db.abilist
index 511767701c..511767701c 100644
--- a/sysdeps/unix/sysv/linux/microblaze/libthread_db.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libthread_db.abilist
diff --git a/sysdeps/unix/sysv/linux/microblaze/libutil.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libutil.abilist
index 0da0a40c22..0da0a40c22 100644
--- a/sysdeps/unix/sysv/linux/microblaze/libutil.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libutil.abilist
diff --git a/sysdeps/unix/sysv/linux/microblaze/bits/fcntl.h b/sysdeps/unix/sysv/linux/microblaze/bits/fcntl.h
index 04bec4d550..da5ffc53e0 100644
--- a/sysdeps/unix/sysv/linux/microblaze/bits/fcntl.h
+++ b/sysdeps/unix/sysv/linux/microblaze/bits/fcntl.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for Linux.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FCNTL_H
# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
diff --git a/sysdeps/unix/sysv/linux/microblaze/bits/mman.h b/sysdeps/unix/sysv/linux/microblaze/bits/mman.h
deleted file mode 100644
index fe1b376720..0000000000
--- a/sysdeps/unix/sysv/linux/microblaze/bits/mman.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/* Definitions for POSIX memory map interface. Linux/MicroBlaze version.
-
- Copyright (C) 1997-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_MMAN_H
-# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
-#endif
-
-/* The following definitions basically come from the kernel headers.
- But the kernel header is not namespace clean. */
-
-#ifdef __USE_MISC
-/* These are Linux-specific. */
-# define MAP_GROWSDOWN 0x00100 /* Stack-like segment. */
-# define MAP_DENYWRITE 0x00800 /* ETXTBSY. */
-# define MAP_EXECUTABLE 0x01000 /* Mark it as an executable. */
-# define MAP_LOCKED 0x02000 /* Lock the mapping. */
-# define MAP_NORESERVE 0x04000 /* Don't check for reservations. */
-# define MAP_POPULATE 0x08000 /* Populate (prefault) pagetables. */
-# define MAP_NONBLOCK 0x10000 /* Do not block on IO. */
-# define MAP_STACK 0x20000 /* Allocation is for a stack. */
-# define MAP_HUGETLB 0x40000 /* Create huge page mapping. */
-# define MAP_SYNC 0x80000 /* Perform synchronous page
- faults for the mapping. */
-# define MAP_FIXED_NOREPLACE 0x100000 /* MAP_FIXED but do not unmap
- underlying mapping. */
-#endif
-
-/* Include generic Linux declarations. */
-#include <bits/mman-linux.h>
diff --git a/sysdeps/unix/sysv/linux/microblaze/bits/procfs.h b/sysdeps/unix/sysv/linux/microblaze/bits/procfs.h
new file mode 100644
index 0000000000..34f5c61574
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/microblaze/bits/procfs.h
@@ -0,0 +1,35 @@
+/* Types for registers for sys/procfs.h. MicroBlaze version.
+ Copyright (C) 1996-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PROCFS_H
+# error "Never include <bits/procfs.h> directly; use <sys/procfs.h> instead."
+#endif
+
+/* Type for a general-purpose register. */
+typedef unsigned long elf_greg_t;
+
+/* And the whole bunch of them. We could have used `struct
+ user_regs_struct' directly in the typedef, but tradition says that
+ the register set is an array, which does have some peculiar
+ semantics, so leave it that way. */
+#define ELF_NGREG (sizeof (struct user_regs_struct) / sizeof (elf_greg_t))
+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
+
+/* Register set for the floating-point registers. */
+typedef struct user_fpregs_struct elf_fpregset_t;
diff --git a/sysdeps/unix/sysv/linux/microblaze/bits/stat.h b/sysdeps/unix/sysv/linux/microblaze/bits/stat.h
index b69e054967..cf8ea789e5 100644
--- a/sysdeps/unix/sysv/linux/microblaze/bits/stat.h
+++ b/sysdeps/unix/sysv/linux/microblaze/bits/stat.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if !defined _SYS_STAT_H && !defined _FCNTL_H
# error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
diff --git a/sysdeps/unix/sysv/linux/microblaze/brk.c b/sysdeps/unix/sysv/linux/microblaze/brk.c
index 25d7defe79..b9ea95e0f5 100644
--- a/sysdeps/unix/sysv/linux/microblaze/brk.c
+++ b/sysdeps/unix/sysv/linux/microblaze/brk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* 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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/unix/sysv/linux/microblaze/clock-compat.c b/sysdeps/unix/sysv/linux/microblaze/clock-compat.c
index 6d7ca6ab6f..0188d235ef 100644
--- a/sysdeps/unix/sysv/linux/microblaze/clock-compat.c
+++ b/sysdeps/unix/sysv/linux/microblaze/clock-compat.c
@@ -1,6 +1,6 @@
/* ABI compatibility redirects for clock_* symbols in librt.
MicroBlaze version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <shlib-compat.h>
diff --git a/sysdeps/unix/sysv/linux/microblaze/clone.S b/sysdeps/unix/sysv/linux/microblaze/clone.S
index ffc97ab7b3..691af830ed 100644
--- a/sysdeps/unix/sysv/linux/microblaze/clone.S
+++ b/sysdeps/unix/sysv/linux/microblaze/clone.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* clone() is even more special than fork() as it mucks with stacks
and invokes a function in the right context after its all over. */
diff --git a/sysdeps/unix/sysv/linux/microblaze/getsysstats.c b/sysdeps/unix/sysv/linux/microblaze/getsysstats.c
index 82c0353761..c6ab411512 100644
--- a/sysdeps/unix/sysv/linux/microblaze/getsysstats.c
+++ b/sysdeps/unix/sysv/linux/microblaze/getsysstats.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* We need to define a special parser for /proc/cpuinfo. */
#define GET_NPROCS_PARSER(FD, BUFFER, CP, RE, BUFFER_END, RESULT) \
diff --git a/sysdeps/unix/sysv/linux/microblaze/kernel-features.h b/sysdeps/unix/sysv/linux/microblaze/kernel-features.h
index e8e2ac6a87..2dd9810f93 100644
--- a/sysdeps/unix/sysv/linux/microblaze/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/microblaze/kernel-features.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* 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
@@ -13,11 +13,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-
-/* MicroBlaze uses socketcall. */
-#define __ASSUME_SOCKETCALL 1
+#include <endian.h>
/* All supported kernel versions for MicroBlaze have these syscalls. */
#define __ASSUME_SOCKET_SYSCALL 1
@@ -58,9 +56,9 @@
# undef __ASSUME_EXECVEAT
#endif
-/* Support for the copy_file_range syscall was added in 4.10. */
-#if __LINUX_KERNEL_VERSION < 0x040A00
-# undef __ASSUME_COPY_FILE_RANGE
+/* Support for the mlock2 syscall was added in 4.7. */
+#if __LINUX_KERNEL_VERSION < 0x040700
+# undef __ASSUME_MLOCK2
#endif
/* Support for statx was added in kernel 4.12. */
@@ -70,3 +68,8 @@
#undef __ASSUME_CLONE_DEFAULT
#define __ASSUME_CLONE_BACKWARDS3
+
+#if __BYTE_ORDER == __BIG_ENDIAN
+# define __ASSUME_SYSVIPC_BROKEN_MODE_T
+#endif
+#undef __ASSUME_SYSVIPC_DEFAULT_IPC_64
diff --git a/sysdeps/unix/sysv/linux/microblaze/kernel_stat.h b/sysdeps/unix/sysv/linux/microblaze/kernel_stat.h
index 93355ad8a3..9732396ca3 100644
--- a/sysdeps/unix/sysv/linux/microblaze/kernel_stat.h
+++ b/sysdeps/unix/sysv/linux/microblaze/kernel_stat.h
@@ -1,5 +1,5 @@
/* Definition of `struct stat' used in the kernel
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
struct kernel_stat
{
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/Implies b/sysdeps/unix/sysv/linux/microblaze/le/Implies
new file mode 100644
index 0000000000..41b4c22a0c
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/microblaze/le/Implies
@@ -0,0 +1 @@
+unix/sysv/linux/microblaze
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libBrokenLocale.abilist
new file mode 100644
index 0000000000..bc5edf6352
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libBrokenLocale.abilist
@@ -0,0 +1 @@
+GLIBC_2.18 __ctype_get_mb_cur_max F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libanl.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libanl.abilist
new file mode 100644
index 0000000000..67c7554803
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libanl.abilist
@@ -0,0 +1,4 @@
+GLIBC_2.18 gai_cancel F
+GLIBC_2.18 gai_error F
+GLIBC_2.18 gai_suspend F
+GLIBC_2.18 getaddrinfo_a F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
new file mode 100644
index 0000000000..f7ced487f7
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -0,0 +1,2139 @@
+GLIBC_2.18 _Exit F
+GLIBC_2.18 _IO_2_1_stderr_ D 0x98
+GLIBC_2.18 _IO_2_1_stdin_ D 0x98
+GLIBC_2.18 _IO_2_1_stdout_ D 0x98
+GLIBC_2.18 _IO_adjust_column F
+GLIBC_2.18 _IO_adjust_wcolumn F
+GLIBC_2.18 _IO_default_doallocate F
+GLIBC_2.18 _IO_default_finish F
+GLIBC_2.18 _IO_default_pbackfail F
+GLIBC_2.18 _IO_default_uflow F
+GLIBC_2.18 _IO_default_xsgetn F
+GLIBC_2.18 _IO_default_xsputn F
+GLIBC_2.18 _IO_do_write F
+GLIBC_2.18 _IO_doallocbuf F
+GLIBC_2.18 _IO_fclose F
+GLIBC_2.18 _IO_fdopen F
+GLIBC_2.18 _IO_feof F
+GLIBC_2.18 _IO_ferror F
+GLIBC_2.18 _IO_fflush F
+GLIBC_2.18 _IO_fgetpos F
+GLIBC_2.18 _IO_fgetpos64 F
+GLIBC_2.18 _IO_fgets F
+GLIBC_2.18 _IO_file_attach F
+GLIBC_2.18 _IO_file_close F
+GLIBC_2.18 _IO_file_close_it F
+GLIBC_2.18 _IO_file_doallocate F
+GLIBC_2.18 _IO_file_finish F
+GLIBC_2.18 _IO_file_fopen F
+GLIBC_2.18 _IO_file_init F
+GLIBC_2.18 _IO_file_jumps D 0x54
+GLIBC_2.18 _IO_file_open F
+GLIBC_2.18 _IO_file_overflow F
+GLIBC_2.18 _IO_file_read F
+GLIBC_2.18 _IO_file_seek F
+GLIBC_2.18 _IO_file_seekoff F
+GLIBC_2.18 _IO_file_setbuf F
+GLIBC_2.18 _IO_file_stat F
+GLIBC_2.18 _IO_file_sync F
+GLIBC_2.18 _IO_file_underflow F
+GLIBC_2.18 _IO_file_write F
+GLIBC_2.18 _IO_file_xsputn F
+GLIBC_2.18 _IO_flockfile F
+GLIBC_2.18 _IO_flush_all F
+GLIBC_2.18 _IO_flush_all_linebuffered F
+GLIBC_2.18 _IO_fopen F
+GLIBC_2.18 _IO_fprintf F
+GLIBC_2.18 _IO_fputs F
+GLIBC_2.18 _IO_fread F
+GLIBC_2.18 _IO_free_backup_area F
+GLIBC_2.18 _IO_free_wbackup_area F
+GLIBC_2.18 _IO_fsetpos F
+GLIBC_2.18 _IO_fsetpos64 F
+GLIBC_2.18 _IO_ftell F
+GLIBC_2.18 _IO_ftrylockfile F
+GLIBC_2.18 _IO_funlockfile F
+GLIBC_2.18 _IO_fwrite F
+GLIBC_2.18 _IO_getc F
+GLIBC_2.18 _IO_getline F
+GLIBC_2.18 _IO_getline_info F
+GLIBC_2.18 _IO_gets F
+GLIBC_2.18 _IO_init F
+GLIBC_2.18 _IO_init_marker F
+GLIBC_2.18 _IO_init_wmarker F
+GLIBC_2.18 _IO_iter_begin F
+GLIBC_2.18 _IO_iter_end F
+GLIBC_2.18 _IO_iter_file F
+GLIBC_2.18 _IO_iter_next F
+GLIBC_2.18 _IO_least_wmarker F
+GLIBC_2.18 _IO_link_in F
+GLIBC_2.18 _IO_list_all D 0x4
+GLIBC_2.18 _IO_list_lock F
+GLIBC_2.18 _IO_list_resetlock F
+GLIBC_2.18 _IO_list_unlock F
+GLIBC_2.18 _IO_marker_delta F
+GLIBC_2.18 _IO_marker_difference F
+GLIBC_2.18 _IO_padn F
+GLIBC_2.18 _IO_peekc_locked F
+GLIBC_2.18 _IO_popen F
+GLIBC_2.18 _IO_printf F
+GLIBC_2.18 _IO_proc_close F
+GLIBC_2.18 _IO_proc_open F
+GLIBC_2.18 _IO_putc F
+GLIBC_2.18 _IO_puts F
+GLIBC_2.18 _IO_remove_marker F
+GLIBC_2.18 _IO_seekmark F
+GLIBC_2.18 _IO_seekoff F
+GLIBC_2.18 _IO_seekpos F
+GLIBC_2.18 _IO_seekwmark F
+GLIBC_2.18 _IO_setb F
+GLIBC_2.18 _IO_setbuffer F
+GLIBC_2.18 _IO_setvbuf F
+GLIBC_2.18 _IO_sgetn F
+GLIBC_2.18 _IO_sprintf F
+GLIBC_2.18 _IO_sputbackc F
+GLIBC_2.18 _IO_sputbackwc F
+GLIBC_2.18 _IO_sscanf F
+GLIBC_2.18 _IO_str_init_readonly F
+GLIBC_2.18 _IO_str_init_static F
+GLIBC_2.18 _IO_str_overflow F
+GLIBC_2.18 _IO_str_pbackfail F
+GLIBC_2.18 _IO_str_seekoff F
+GLIBC_2.18 _IO_str_underflow F
+GLIBC_2.18 _IO_sungetc F
+GLIBC_2.18 _IO_sungetwc F
+GLIBC_2.18 _IO_switch_to_get_mode F
+GLIBC_2.18 _IO_switch_to_main_wget_area F
+GLIBC_2.18 _IO_switch_to_wbackup_area F
+GLIBC_2.18 _IO_switch_to_wget_mode F
+GLIBC_2.18 _IO_un_link F
+GLIBC_2.18 _IO_ungetc F
+GLIBC_2.18 _IO_unsave_markers F
+GLIBC_2.18 _IO_unsave_wmarkers F
+GLIBC_2.18 _IO_vfprintf F
+GLIBC_2.18 _IO_vfscanf F
+GLIBC_2.18 _IO_vsprintf F
+GLIBC_2.18 _IO_wdefault_doallocate F
+GLIBC_2.18 _IO_wdefault_finish F
+GLIBC_2.18 _IO_wdefault_pbackfail F
+GLIBC_2.18 _IO_wdefault_uflow F
+GLIBC_2.18 _IO_wdefault_xsgetn F
+GLIBC_2.18 _IO_wdefault_xsputn F
+GLIBC_2.18 _IO_wdo_write F
+GLIBC_2.18 _IO_wdoallocbuf F
+GLIBC_2.18 _IO_wfile_jumps D 0x54
+GLIBC_2.18 _IO_wfile_overflow F
+GLIBC_2.18 _IO_wfile_seekoff F
+GLIBC_2.18 _IO_wfile_sync F
+GLIBC_2.18 _IO_wfile_underflow F
+GLIBC_2.18 _IO_wfile_xsputn F
+GLIBC_2.18 _IO_wmarker_delta F
+GLIBC_2.18 _IO_wsetb F
+GLIBC_2.18 ___brk_addr D 0x4
+GLIBC_2.18 __adjtimex F
+GLIBC_2.18 __after_morecore_hook D 0x4
+GLIBC_2.18 __argz_count F
+GLIBC_2.18 __argz_next F
+GLIBC_2.18 __argz_stringify F
+GLIBC_2.18 __asprintf F
+GLIBC_2.18 __asprintf_chk F
+GLIBC_2.18 __assert F
+GLIBC_2.18 __assert_fail F
+GLIBC_2.18 __assert_perror_fail F
+GLIBC_2.18 __backtrace F
+GLIBC_2.18 __backtrace_symbols F
+GLIBC_2.18 __backtrace_symbols_fd F
+GLIBC_2.18 __bsd_getpgrp F
+GLIBC_2.18 __bzero F
+GLIBC_2.18 __check_rhosts_file D 0x4
+GLIBC_2.18 __chk_fail F
+GLIBC_2.18 __clone F
+GLIBC_2.18 __close F
+GLIBC_2.18 __cmsg_nxthdr F
+GLIBC_2.18 __confstr_chk F
+GLIBC_2.18 __connect F
+GLIBC_2.18 __ctype_b_loc F
+GLIBC_2.18 __ctype_get_mb_cur_max F
+GLIBC_2.18 __ctype_tolower_loc F
+GLIBC_2.18 __ctype_toupper_loc F
+GLIBC_2.18 __curbrk D 0x4
+GLIBC_2.18 __cxa_at_quick_exit F
+GLIBC_2.18 __cxa_atexit F
+GLIBC_2.18 __cxa_finalize F
+GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 __cyg_profile_func_enter F
+GLIBC_2.18 __cyg_profile_func_exit F
+GLIBC_2.18 __daylight D 0x4
+GLIBC_2.18 __dcgettext F
+GLIBC_2.18 __default_morecore F
+GLIBC_2.18 __dgettext F
+GLIBC_2.18 __dprintf_chk F
+GLIBC_2.18 __dup2 F
+GLIBC_2.18 __duplocale F
+GLIBC_2.18 __endmntent F
+GLIBC_2.18 __environ D 0x4
+GLIBC_2.18 __errno_location F
+GLIBC_2.18 __fbufsize F
+GLIBC_2.18 __fcntl F
+GLIBC_2.18 __fdelt_chk F
+GLIBC_2.18 __fdelt_warn F
+GLIBC_2.18 __ffs F
+GLIBC_2.18 __fgets_chk F
+GLIBC_2.18 __fgets_unlocked_chk F
+GLIBC_2.18 __fgetws_chk F
+GLIBC_2.18 __fgetws_unlocked_chk F
+GLIBC_2.18 __finite F
+GLIBC_2.18 __finitef F
+GLIBC_2.18 __finitel F
+GLIBC_2.18 __flbf F
+GLIBC_2.18 __fork F
+GLIBC_2.18 __fpending F
+GLIBC_2.18 __fprintf_chk F
+GLIBC_2.18 __fpu_control D 0x4
+GLIBC_2.18 __fpurge F
+GLIBC_2.18 __fread_chk F
+GLIBC_2.18 __fread_unlocked_chk F
+GLIBC_2.18 __freadable F
+GLIBC_2.18 __freading F
+GLIBC_2.18 __free_hook D 0x4
+GLIBC_2.18 __freelocale F
+GLIBC_2.18 __fsetlocking F
+GLIBC_2.18 __fwprintf_chk F
+GLIBC_2.18 __fwritable F
+GLIBC_2.18 __fwriting F
+GLIBC_2.18 __fxstat F
+GLIBC_2.18 __fxstat64 F
+GLIBC_2.18 __fxstatat F
+GLIBC_2.18 __fxstatat64 F
+GLIBC_2.18 __getauxval F
+GLIBC_2.18 __getcwd_chk F
+GLIBC_2.18 __getdelim F
+GLIBC_2.18 __getdomainname_chk F
+GLIBC_2.18 __getgroups_chk F
+GLIBC_2.18 __gethostname_chk F
+GLIBC_2.18 __getlogin_r_chk F
+GLIBC_2.18 __getmntent_r F
+GLIBC_2.18 __getpagesize F
+GLIBC_2.18 __getpgid F
+GLIBC_2.18 __getpid F
+GLIBC_2.18 __gets_chk F
+GLIBC_2.18 __gettimeofday F
+GLIBC_2.18 __getwd_chk F
+GLIBC_2.18 __gmtime_r F
+GLIBC_2.18 __h_errno_location F
+GLIBC_2.18 __isalnum_l F
+GLIBC_2.18 __isalpha_l F
+GLIBC_2.18 __isascii_l F
+GLIBC_2.18 __isblank_l F
+GLIBC_2.18 __iscntrl_l F
+GLIBC_2.18 __isctype F
+GLIBC_2.18 __isdigit_l F
+GLIBC_2.18 __isgraph_l F
+GLIBC_2.18 __isinf F
+GLIBC_2.18 __isinff F
+GLIBC_2.18 __isinfl F
+GLIBC_2.18 __islower_l F
+GLIBC_2.18 __isnan F
+GLIBC_2.18 __isnanf F
+GLIBC_2.18 __isnanl F
+GLIBC_2.18 __isoc99_fscanf F
+GLIBC_2.18 __isoc99_fwscanf F
+GLIBC_2.18 __isoc99_scanf F
+GLIBC_2.18 __isoc99_sscanf F
+GLIBC_2.18 __isoc99_swscanf F
+GLIBC_2.18 __isoc99_vfscanf F
+GLIBC_2.18 __isoc99_vfwscanf F
+GLIBC_2.18 __isoc99_vscanf F
+GLIBC_2.18 __isoc99_vsscanf F
+GLIBC_2.18 __isoc99_vswscanf F
+GLIBC_2.18 __isoc99_vwscanf F
+GLIBC_2.18 __isoc99_wscanf F
+GLIBC_2.18 __isprint_l F
+GLIBC_2.18 __ispunct_l F
+GLIBC_2.18 __isspace_l F
+GLIBC_2.18 __isupper_l F
+GLIBC_2.18 __iswalnum_l F
+GLIBC_2.18 __iswalpha_l F
+GLIBC_2.18 __iswblank_l F
+GLIBC_2.18 __iswcntrl_l F
+GLIBC_2.18 __iswctype F
+GLIBC_2.18 __iswctype_l F
+GLIBC_2.18 __iswdigit_l F
+GLIBC_2.18 __iswgraph_l F
+GLIBC_2.18 __iswlower_l F
+GLIBC_2.18 __iswprint_l F
+GLIBC_2.18 __iswpunct_l F
+GLIBC_2.18 __iswspace_l F
+GLIBC_2.18 __iswupper_l F
+GLIBC_2.18 __iswxdigit_l F
+GLIBC_2.18 __isxdigit_l F
+GLIBC_2.18 __ivaliduser F
+GLIBC_2.18 __key_decryptsession_pk_LOCAL D 0x4
+GLIBC_2.18 __key_encryptsession_pk_LOCAL D 0x4
+GLIBC_2.18 __key_gendes_LOCAL D 0x4
+GLIBC_2.18 __libc_allocate_rtsig F
+GLIBC_2.18 __libc_calloc F
+GLIBC_2.18 __libc_current_sigrtmax F
+GLIBC_2.18 __libc_current_sigrtmin F
+GLIBC_2.18 __libc_free F
+GLIBC_2.18 __libc_freeres F
+GLIBC_2.18 __libc_init_first F
+GLIBC_2.18 __libc_mallinfo F
+GLIBC_2.18 __libc_malloc F
+GLIBC_2.18 __libc_mallopt F
+GLIBC_2.18 __libc_memalign F
+GLIBC_2.18 __libc_pvalloc F
+GLIBC_2.18 __libc_realloc F
+GLIBC_2.18 __libc_sa_len F
+GLIBC_2.18 __libc_start_main F
+GLIBC_2.18 __libc_valloc F
+GLIBC_2.18 __longjmp_chk F
+GLIBC_2.18 __lseek F
+GLIBC_2.18 __lxstat F
+GLIBC_2.18 __lxstat64 F
+GLIBC_2.18 __malloc_hook D 0x4
+GLIBC_2.18 __malloc_initialize_hook D 0x4
+GLIBC_2.18 __mbrlen F
+GLIBC_2.18 __mbrtowc F
+GLIBC_2.18 __mbsnrtowcs_chk F
+GLIBC_2.18 __mbsrtowcs_chk F
+GLIBC_2.18 __mbstowcs_chk F
+GLIBC_2.18 __memalign_hook D 0x4
+GLIBC_2.18 __memcpy_chk F
+GLIBC_2.18 __memmove_chk F
+GLIBC_2.18 __mempcpy F
+GLIBC_2.18 __mempcpy_chk F
+GLIBC_2.18 __mempcpy_small F
+GLIBC_2.18 __memset_chk F
+GLIBC_2.18 __monstartup F
+GLIBC_2.18 __morecore D 0x4
+GLIBC_2.18 __nanosleep F
+GLIBC_2.18 __newlocale F
+GLIBC_2.18 __nl_langinfo_l F
+GLIBC_2.18 __nss_configure_lookup F
+GLIBC_2.18 __nss_database_lookup F
+GLIBC_2.18 __nss_group_lookup F
+GLIBC_2.18 __nss_hostname_digits_dots F
+GLIBC_2.18 __nss_hosts_lookup F
+GLIBC_2.18 __nss_next F
+GLIBC_2.18 __nss_passwd_lookup F
+GLIBC_2.18 __obstack_printf_chk F
+GLIBC_2.18 __obstack_vprintf_chk F
+GLIBC_2.18 __open F
+GLIBC_2.18 __open64 F
+GLIBC_2.18 __open64_2 F
+GLIBC_2.18 __open_2 F
+GLIBC_2.18 __openat64_2 F
+GLIBC_2.18 __openat_2 F
+GLIBC_2.18 __overflow F
+GLIBC_2.18 __pipe F
+GLIBC_2.18 __poll F
+GLIBC_2.18 __poll_chk F
+GLIBC_2.18 __posix_getopt F
+GLIBC_2.18 __ppoll_chk F
+GLIBC_2.18 __pread64 F
+GLIBC_2.18 __pread64_chk F
+GLIBC_2.18 __pread_chk F
+GLIBC_2.18 __printf_chk F
+GLIBC_2.18 __printf_fp F
+GLIBC_2.18 __profile_frequency F
+GLIBC_2.18 __progname D 0x4
+GLIBC_2.18 __progname_full D 0x4
+GLIBC_2.18 __ptsname_r_chk F
+GLIBC_2.18 __pwrite64 F
+GLIBC_2.18 __rawmemchr F
+GLIBC_2.18 __rcmd_errstr D 0x4
+GLIBC_2.18 __read F
+GLIBC_2.18 __read_chk F
+GLIBC_2.18 __readlink_chk F
+GLIBC_2.18 __readlinkat_chk F
+GLIBC_2.18 __realloc_hook D 0x4
+GLIBC_2.18 __realpath_chk F
+GLIBC_2.18 __recv_chk F
+GLIBC_2.18 __recvfrom_chk F
+GLIBC_2.18 __register_atfork F
+GLIBC_2.18 __res_init F
+GLIBC_2.18 __res_nclose F
+GLIBC_2.18 __res_ninit F
+GLIBC_2.18 __res_randomid F
+GLIBC_2.18 __res_state F
+GLIBC_2.18 __rpc_thread_createerr F
+GLIBC_2.18 __rpc_thread_svc_fdset F
+GLIBC_2.18 __rpc_thread_svc_max_pollfd F
+GLIBC_2.18 __rpc_thread_svc_pollfd F
+GLIBC_2.18 __sbrk F
+GLIBC_2.18 __sched_cpualloc F
+GLIBC_2.18 __sched_cpucount F
+GLIBC_2.18 __sched_cpufree F
+GLIBC_2.18 __sched_get_priority_max F
+GLIBC_2.18 __sched_get_priority_min F
+GLIBC_2.18 __sched_getparam F
+GLIBC_2.18 __sched_getscheduler F
+GLIBC_2.18 __sched_setscheduler F
+GLIBC_2.18 __sched_yield F
+GLIBC_2.18 __select F
+GLIBC_2.18 __send F
+GLIBC_2.18 __setmntent F
+GLIBC_2.18 __setpgid F
+GLIBC_2.18 __sigaction F
+GLIBC_2.18 __sigaddset F
+GLIBC_2.18 __sigdelset F
+GLIBC_2.18 __sigismember F
+GLIBC_2.18 __signbit F
+GLIBC_2.18 __signbitf F
+GLIBC_2.18 __sigpause F
+GLIBC_2.18 __sigsetjmp F
+GLIBC_2.18 __sigsuspend F
+GLIBC_2.18 __snprintf_chk F
+GLIBC_2.18 __sprintf_chk F
+GLIBC_2.18 __stack_chk_fail F
+GLIBC_2.18 __statfs F
+GLIBC_2.18 __stpcpy F
+GLIBC_2.18 __stpcpy_chk F
+GLIBC_2.18 __stpcpy_small F
+GLIBC_2.18 __stpncpy F
+GLIBC_2.18 __stpncpy_chk F
+GLIBC_2.18 __strcasecmp F
+GLIBC_2.18 __strcasecmp_l F
+GLIBC_2.18 __strcasestr F
+GLIBC_2.18 __strcat_chk F
+GLIBC_2.18 __strcoll_l F
+GLIBC_2.18 __strcpy_chk F
+GLIBC_2.18 __strcpy_small F
+GLIBC_2.18 __strcspn_c1 F
+GLIBC_2.18 __strcspn_c2 F
+GLIBC_2.18 __strcspn_c3 F
+GLIBC_2.18 __strdup F
+GLIBC_2.18 __strerror_r F
+GLIBC_2.18 __strfmon_l F
+GLIBC_2.18 __strftime_l F
+GLIBC_2.18 __strncasecmp_l F
+GLIBC_2.18 __strncat_chk F
+GLIBC_2.18 __strncpy_chk F
+GLIBC_2.18 __strndup F
+GLIBC_2.18 __strpbrk_c2 F
+GLIBC_2.18 __strpbrk_c3 F
+GLIBC_2.18 __strsep_1c F
+GLIBC_2.18 __strsep_2c F
+GLIBC_2.18 __strsep_3c F
+GLIBC_2.18 __strsep_g F
+GLIBC_2.18 __strspn_c1 F
+GLIBC_2.18 __strspn_c2 F
+GLIBC_2.18 __strspn_c3 F
+GLIBC_2.18 __strtod_internal F
+GLIBC_2.18 __strtod_l F
+GLIBC_2.18 __strtof_internal F
+GLIBC_2.18 __strtof_l F
+GLIBC_2.18 __strtok_r F
+GLIBC_2.18 __strtok_r_1c F
+GLIBC_2.18 __strtol_internal F
+GLIBC_2.18 __strtol_l F
+GLIBC_2.18 __strtold_internal F
+GLIBC_2.18 __strtold_l F
+GLIBC_2.18 __strtoll_internal F
+GLIBC_2.18 __strtoll_l F
+GLIBC_2.18 __strtoul_internal F
+GLIBC_2.18 __strtoul_l F
+GLIBC_2.18 __strtoull_internal F
+GLIBC_2.18 __strtoull_l F
+GLIBC_2.18 __strverscmp F
+GLIBC_2.18 __strxfrm_l F
+GLIBC_2.18 __swprintf_chk F
+GLIBC_2.18 __sysconf F
+GLIBC_2.18 __sysctl F
+GLIBC_2.18 __syslog_chk F
+GLIBC_2.18 __sysv_signal F
+GLIBC_2.18 __timezone D 0x4
+GLIBC_2.18 __toascii_l F
+GLIBC_2.18 __tolower_l F
+GLIBC_2.18 __toupper_l F
+GLIBC_2.18 __towctrans F
+GLIBC_2.18 __towctrans_l F
+GLIBC_2.18 __towlower_l F
+GLIBC_2.18 __towupper_l F
+GLIBC_2.18 __ttyname_r_chk F
+GLIBC_2.18 __tzname D 0x8
+GLIBC_2.18 __uflow F
+GLIBC_2.18 __underflow F
+GLIBC_2.18 __uselocale F
+GLIBC_2.18 __vasprintf_chk F
+GLIBC_2.18 __vdprintf_chk F
+GLIBC_2.18 __vfork F
+GLIBC_2.18 __vfprintf_chk F
+GLIBC_2.18 __vfscanf F
+GLIBC_2.18 __vfwprintf_chk F
+GLIBC_2.18 __vprintf_chk F
+GLIBC_2.18 __vsnprintf F
+GLIBC_2.18 __vsnprintf_chk F
+GLIBC_2.18 __vsprintf_chk F
+GLIBC_2.18 __vsscanf F
+GLIBC_2.18 __vswprintf_chk F
+GLIBC_2.18 __vsyslog_chk F
+GLIBC_2.18 __vwprintf_chk F
+GLIBC_2.18 __wait F
+GLIBC_2.18 __waitpid F
+GLIBC_2.18 __wcpcpy_chk F
+GLIBC_2.18 __wcpncpy_chk F
+GLIBC_2.18 __wcrtomb_chk F
+GLIBC_2.18 __wcscasecmp_l F
+GLIBC_2.18 __wcscat_chk F
+GLIBC_2.18 __wcscoll_l F
+GLIBC_2.18 __wcscpy_chk F
+GLIBC_2.18 __wcsftime_l F
+GLIBC_2.18 __wcsncasecmp_l F
+GLIBC_2.18 __wcsncat_chk F
+GLIBC_2.18 __wcsncpy_chk F
+GLIBC_2.18 __wcsnrtombs_chk F
+GLIBC_2.18 __wcsrtombs_chk F
+GLIBC_2.18 __wcstod_internal F
+GLIBC_2.18 __wcstod_l F
+GLIBC_2.18 __wcstof_internal F
+GLIBC_2.18 __wcstof_l F
+GLIBC_2.18 __wcstol_internal F
+GLIBC_2.18 __wcstol_l F
+GLIBC_2.18 __wcstold_internal F
+GLIBC_2.18 __wcstold_l F
+GLIBC_2.18 __wcstoll_internal F
+GLIBC_2.18 __wcstoll_l F
+GLIBC_2.18 __wcstombs_chk F
+GLIBC_2.18 __wcstoul_internal F
+GLIBC_2.18 __wcstoul_l F
+GLIBC_2.18 __wcstoull_internal F
+GLIBC_2.18 __wcstoull_l F
+GLIBC_2.18 __wcsxfrm_l F
+GLIBC_2.18 __wctomb_chk F
+GLIBC_2.18 __wctrans_l F
+GLIBC_2.18 __wctype_l F
+GLIBC_2.18 __wmemcpy_chk F
+GLIBC_2.18 __wmemmove_chk F
+GLIBC_2.18 __wmempcpy_chk F
+GLIBC_2.18 __wmemset_chk F
+GLIBC_2.18 __woverflow F
+GLIBC_2.18 __wprintf_chk F
+GLIBC_2.18 __write F
+GLIBC_2.18 __wuflow F
+GLIBC_2.18 __wunderflow F
+GLIBC_2.18 __xmknod F
+GLIBC_2.18 __xmknodat F
+GLIBC_2.18 __xpg_basename F
+GLIBC_2.18 __xpg_sigpause F
+GLIBC_2.18 __xpg_strerror_r F
+GLIBC_2.18 __xstat F
+GLIBC_2.18 __xstat64 F
+GLIBC_2.18 _authenticate F
+GLIBC_2.18 _dl_mcount_wrapper F
+GLIBC_2.18 _dl_mcount_wrapper_check F
+GLIBC_2.18 _environ D 0x4
+GLIBC_2.18 _exit F
+GLIBC_2.18 _flushlbf F
+GLIBC_2.18 _libc_intl_domainname D 0x5
+GLIBC_2.18 _longjmp F
+GLIBC_2.18 _mcleanup F
+GLIBC_2.18 _mcount F
+GLIBC_2.18 _nl_default_dirname D 0x12
+GLIBC_2.18 _nl_domain_bindings D 0x4
+GLIBC_2.18 _nl_msg_cat_cntr D 0x4
+GLIBC_2.18 _null_auth D 0xc
+GLIBC_2.18 _obstack_allocated_p F
+GLIBC_2.18 _obstack_begin F
+GLIBC_2.18 _obstack_begin_1 F
+GLIBC_2.18 _obstack_free F
+GLIBC_2.18 _obstack_memory_used F
+GLIBC_2.18 _obstack_newchunk F
+GLIBC_2.18 _res D 0x200
+GLIBC_2.18 _res_hconf D 0x30
+GLIBC_2.18 _rpc_dtablesize F
+GLIBC_2.18 _seterr_reply F
+GLIBC_2.18 _setjmp F
+GLIBC_2.18 _sys_errlist D 0x21c
+GLIBC_2.18 _sys_nerr D 0x4
+GLIBC_2.18 _sys_siglist D 0x104
+GLIBC_2.18 _tolower F
+GLIBC_2.18 _toupper F
+GLIBC_2.18 a64l F
+GLIBC_2.18 abort F
+GLIBC_2.18 abs F
+GLIBC_2.18 accept F
+GLIBC_2.18 accept4 F
+GLIBC_2.18 access F
+GLIBC_2.18 acct F
+GLIBC_2.18 addmntent F
+GLIBC_2.18 addseverity F
+GLIBC_2.18 adjtime F
+GLIBC_2.18 adjtimex F
+GLIBC_2.18 advance F
+GLIBC_2.18 alarm F
+GLIBC_2.18 aligned_alloc F
+GLIBC_2.18 alphasort F
+GLIBC_2.18 alphasort64 F
+GLIBC_2.18 argp_err_exit_status D 0x4
+GLIBC_2.18 argp_error F
+GLIBC_2.18 argp_failure F
+GLIBC_2.18 argp_help F
+GLIBC_2.18 argp_parse F
+GLIBC_2.18 argp_program_bug_address D 0x4
+GLIBC_2.18 argp_program_version D 0x4
+GLIBC_2.18 argp_program_version_hook D 0x4
+GLIBC_2.18 argp_state_help F
+GLIBC_2.18 argp_usage F
+GLIBC_2.18 argz_add F
+GLIBC_2.18 argz_add_sep F
+GLIBC_2.18 argz_append F
+GLIBC_2.18 argz_count F
+GLIBC_2.18 argz_create F
+GLIBC_2.18 argz_create_sep F
+GLIBC_2.18 argz_delete F
+GLIBC_2.18 argz_extract F
+GLIBC_2.18 argz_insert F
+GLIBC_2.18 argz_next F
+GLIBC_2.18 argz_replace F
+GLIBC_2.18 argz_stringify F
+GLIBC_2.18 asctime F
+GLIBC_2.18 asctime_r F
+GLIBC_2.18 asprintf F
+GLIBC_2.18 atof F
+GLIBC_2.18 atoi F
+GLIBC_2.18 atol F
+GLIBC_2.18 atoll F
+GLIBC_2.18 authdes_create F
+GLIBC_2.18 authdes_getucred F
+GLIBC_2.18 authdes_pk_create F
+GLIBC_2.18 authnone_create F
+GLIBC_2.18 authunix_create F
+GLIBC_2.18 authunix_create_default F
+GLIBC_2.18 backtrace F
+GLIBC_2.18 backtrace_symbols F
+GLIBC_2.18 backtrace_symbols_fd F
+GLIBC_2.18 basename F
+GLIBC_2.18 bcmp F
+GLIBC_2.18 bcopy F
+GLIBC_2.18 bdflush F
+GLIBC_2.18 bind F
+GLIBC_2.18 bind_textdomain_codeset F
+GLIBC_2.18 bindresvport F
+GLIBC_2.18 bindtextdomain F
+GLIBC_2.18 brk F
+GLIBC_2.18 bsd_signal F
+GLIBC_2.18 bsearch F
+GLIBC_2.18 btowc F
+GLIBC_2.18 bzero F
+GLIBC_2.18 c16rtomb F
+GLIBC_2.18 c32rtomb F
+GLIBC_2.18 calloc F
+GLIBC_2.18 callrpc F
+GLIBC_2.18 canonicalize_file_name F
+GLIBC_2.18 capget F
+GLIBC_2.18 capset F
+GLIBC_2.18 catclose F
+GLIBC_2.18 catgets F
+GLIBC_2.18 catopen F
+GLIBC_2.18 cbc_crypt F
+GLIBC_2.18 cfgetispeed F
+GLIBC_2.18 cfgetospeed F
+GLIBC_2.18 cfmakeraw F
+GLIBC_2.18 cfree F
+GLIBC_2.18 cfsetispeed F
+GLIBC_2.18 cfsetospeed F
+GLIBC_2.18 cfsetspeed F
+GLIBC_2.18 chdir F
+GLIBC_2.18 chflags F
+GLIBC_2.18 chmod F
+GLIBC_2.18 chown F
+GLIBC_2.18 chroot F
+GLIBC_2.18 clearenv F
+GLIBC_2.18 clearerr F
+GLIBC_2.18 clearerr_unlocked F
+GLIBC_2.18 clnt_broadcast F
+GLIBC_2.18 clnt_create F
+GLIBC_2.18 clnt_pcreateerror F
+GLIBC_2.18 clnt_perrno F
+GLIBC_2.18 clnt_perror F
+GLIBC_2.18 clnt_spcreateerror F
+GLIBC_2.18 clnt_sperrno F
+GLIBC_2.18 clnt_sperror F
+GLIBC_2.18 clntraw_create F
+GLIBC_2.18 clnttcp_create F
+GLIBC_2.18 clntudp_bufcreate F
+GLIBC_2.18 clntudp_create F
+GLIBC_2.18 clntunix_create F
+GLIBC_2.18 clock F
+GLIBC_2.18 clock_adjtime F
+GLIBC_2.18 clock_getcpuclockid F
+GLIBC_2.18 clock_getres F
+GLIBC_2.18 clock_gettime F
+GLIBC_2.18 clock_nanosleep F
+GLIBC_2.18 clock_settime F
+GLIBC_2.18 clone F
+GLIBC_2.18 close F
+GLIBC_2.18 closedir F
+GLIBC_2.18 closelog F
+GLIBC_2.18 confstr F
+GLIBC_2.18 connect F
+GLIBC_2.18 copysign F
+GLIBC_2.18 copysignf F
+GLIBC_2.18 copysignl F
+GLIBC_2.18 creat F
+GLIBC_2.18 creat64 F
+GLIBC_2.18 create_module F
+GLIBC_2.18 ctermid F
+GLIBC_2.18 ctime F
+GLIBC_2.18 ctime_r F
+GLIBC_2.18 cuserid F
+GLIBC_2.18 daemon F
+GLIBC_2.18 daylight D 0x4
+GLIBC_2.18 dcgettext F
+GLIBC_2.18 dcngettext F
+GLIBC_2.18 delete_module F
+GLIBC_2.18 des_setparity F
+GLIBC_2.18 dgettext F
+GLIBC_2.18 difftime F
+GLIBC_2.18 dirfd F
+GLIBC_2.18 dirname F
+GLIBC_2.18 div F
+GLIBC_2.18 dl_iterate_phdr F
+GLIBC_2.18 dngettext F
+GLIBC_2.18 dprintf F
+GLIBC_2.18 drand48 F
+GLIBC_2.18 drand48_r F
+GLIBC_2.18 dup F
+GLIBC_2.18 dup2 F
+GLIBC_2.18 dup3 F
+GLIBC_2.18 duplocale F
+GLIBC_2.18 dysize F
+GLIBC_2.18 eaccess F
+GLIBC_2.18 ecb_crypt F
+GLIBC_2.18 ecvt F
+GLIBC_2.18 ecvt_r F
+GLIBC_2.18 endaliasent F
+GLIBC_2.18 endfsent F
+GLIBC_2.18 endgrent F
+GLIBC_2.18 endhostent F
+GLIBC_2.18 endmntent F
+GLIBC_2.18 endnetent F
+GLIBC_2.18 endnetgrent F
+GLIBC_2.18 endprotoent F
+GLIBC_2.18 endpwent F
+GLIBC_2.18 endrpcent F
+GLIBC_2.18 endservent F
+GLIBC_2.18 endsgent F
+GLIBC_2.18 endspent F
+GLIBC_2.18 endttyent F
+GLIBC_2.18 endusershell F
+GLIBC_2.18 endutent F
+GLIBC_2.18 endutxent F
+GLIBC_2.18 environ D 0x4
+GLIBC_2.18 envz_add F
+GLIBC_2.18 envz_entry F
+GLIBC_2.18 envz_get F
+GLIBC_2.18 envz_merge F
+GLIBC_2.18 envz_remove F
+GLIBC_2.18 envz_strip F
+GLIBC_2.18 epoll_create F
+GLIBC_2.18 epoll_create1 F
+GLIBC_2.18 epoll_ctl F
+GLIBC_2.18 epoll_pwait F
+GLIBC_2.18 epoll_wait F
+GLIBC_2.18 erand48 F
+GLIBC_2.18 erand48_r F
+GLIBC_2.18 err F
+GLIBC_2.18 error F
+GLIBC_2.18 error_at_line F
+GLIBC_2.18 error_message_count D 0x4
+GLIBC_2.18 error_one_per_line D 0x4
+GLIBC_2.18 error_print_progname D 0x4
+GLIBC_2.18 errx F
+GLIBC_2.18 ether_aton F
+GLIBC_2.18 ether_aton_r F
+GLIBC_2.18 ether_hostton F
+GLIBC_2.18 ether_line F
+GLIBC_2.18 ether_ntoa F
+GLIBC_2.18 ether_ntoa_r F
+GLIBC_2.18 ether_ntohost F
+GLIBC_2.18 euidaccess F
+GLIBC_2.18 eventfd F
+GLIBC_2.18 eventfd_read F
+GLIBC_2.18 eventfd_write F
+GLIBC_2.18 execl F
+GLIBC_2.18 execle F
+GLIBC_2.18 execlp F
+GLIBC_2.18 execv F
+GLIBC_2.18 execve F
+GLIBC_2.18 execvp F
+GLIBC_2.18 execvpe F
+GLIBC_2.18 exit F
+GLIBC_2.18 faccessat F
+GLIBC_2.18 fallocate F
+GLIBC_2.18 fallocate64 F
+GLIBC_2.18 fanotify_init F
+GLIBC_2.18 fanotify_mark F
+GLIBC_2.18 fattach F
+GLIBC_2.18 fchdir F
+GLIBC_2.18 fchflags F
+GLIBC_2.18 fchmod F
+GLIBC_2.18 fchmodat F
+GLIBC_2.18 fchown F
+GLIBC_2.18 fchownat F
+GLIBC_2.18 fclose F
+GLIBC_2.18 fcloseall F
+GLIBC_2.18 fcntl F
+GLIBC_2.18 fcvt F
+GLIBC_2.18 fcvt_r F
+GLIBC_2.18 fdatasync F
+GLIBC_2.18 fdetach F
+GLIBC_2.18 fdopen F
+GLIBC_2.18 fdopendir F
+GLIBC_2.18 feof F
+GLIBC_2.18 feof_unlocked F
+GLIBC_2.18 ferror F
+GLIBC_2.18 ferror_unlocked F
+GLIBC_2.18 fexecve F
+GLIBC_2.18 fflush F
+GLIBC_2.18 fflush_unlocked F
+GLIBC_2.18 ffs F
+GLIBC_2.18 ffsl F
+GLIBC_2.18 ffsll F
+GLIBC_2.18 fgetc F
+GLIBC_2.18 fgetc_unlocked F
+GLIBC_2.18 fgetgrent F
+GLIBC_2.18 fgetgrent_r F
+GLIBC_2.18 fgetpos F
+GLIBC_2.18 fgetpos64 F
+GLIBC_2.18 fgetpwent F
+GLIBC_2.18 fgetpwent_r F
+GLIBC_2.18 fgets F
+GLIBC_2.18 fgets_unlocked F
+GLIBC_2.18 fgetsgent F
+GLIBC_2.18 fgetsgent_r F
+GLIBC_2.18 fgetspent F
+GLIBC_2.18 fgetspent_r F
+GLIBC_2.18 fgetwc F
+GLIBC_2.18 fgetwc_unlocked F
+GLIBC_2.18 fgetws F
+GLIBC_2.18 fgetws_unlocked F
+GLIBC_2.18 fgetxattr F
+GLIBC_2.18 fileno F
+GLIBC_2.18 fileno_unlocked F
+GLIBC_2.18 finite F
+GLIBC_2.18 finitef F
+GLIBC_2.18 finitel F
+GLIBC_2.18 flistxattr F
+GLIBC_2.18 flock F
+GLIBC_2.18 flockfile F
+GLIBC_2.18 fmemopen F
+GLIBC_2.18 fmtmsg F
+GLIBC_2.18 fnmatch F
+GLIBC_2.18 fopen F
+GLIBC_2.18 fopen64 F
+GLIBC_2.18 fopencookie F
+GLIBC_2.18 fork F
+GLIBC_2.18 fpathconf F
+GLIBC_2.18 fprintf F
+GLIBC_2.18 fputc F
+GLIBC_2.18 fputc_unlocked F
+GLIBC_2.18 fputs F
+GLIBC_2.18 fputs_unlocked F
+GLIBC_2.18 fputwc F
+GLIBC_2.18 fputwc_unlocked F
+GLIBC_2.18 fputws F
+GLIBC_2.18 fputws_unlocked F
+GLIBC_2.18 fread F
+GLIBC_2.18 fread_unlocked F
+GLIBC_2.18 free F
+GLIBC_2.18 freeaddrinfo F
+GLIBC_2.18 freeifaddrs F
+GLIBC_2.18 freelocale F
+GLIBC_2.18 fremovexattr F
+GLIBC_2.18 freopen F
+GLIBC_2.18 freopen64 F
+GLIBC_2.18 frexp F
+GLIBC_2.18 frexpf F
+GLIBC_2.18 frexpl F
+GLIBC_2.18 fscanf F
+GLIBC_2.18 fseek F
+GLIBC_2.18 fseeko F
+GLIBC_2.18 fseeko64 F
+GLIBC_2.18 fsetpos F
+GLIBC_2.18 fsetpos64 F
+GLIBC_2.18 fsetxattr F
+GLIBC_2.18 fstatfs F
+GLIBC_2.18 fstatfs64 F
+GLIBC_2.18 fstatvfs F
+GLIBC_2.18 fstatvfs64 F
+GLIBC_2.18 fsync F
+GLIBC_2.18 ftell F
+GLIBC_2.18 ftello F
+GLIBC_2.18 ftello64 F
+GLIBC_2.18 ftime F
+GLIBC_2.18 ftok F
+GLIBC_2.18 ftruncate F
+GLIBC_2.18 ftruncate64 F
+GLIBC_2.18 ftrylockfile F
+GLIBC_2.18 fts_children F
+GLIBC_2.18 fts_close F
+GLIBC_2.18 fts_open F
+GLIBC_2.18 fts_read F
+GLIBC_2.18 fts_set F
+GLIBC_2.18 ftw F
+GLIBC_2.18 ftw64 F
+GLIBC_2.18 funlockfile F
+GLIBC_2.18 futimens F
+GLIBC_2.18 futimes F
+GLIBC_2.18 futimesat F
+GLIBC_2.18 fwide F
+GLIBC_2.18 fwprintf F
+GLIBC_2.18 fwrite F
+GLIBC_2.18 fwrite_unlocked F
+GLIBC_2.18 fwscanf F
+GLIBC_2.18 gai_strerror F
+GLIBC_2.18 gcvt F
+GLIBC_2.18 get_avphys_pages F
+GLIBC_2.18 get_current_dir_name F
+GLIBC_2.18 get_kernel_syms F
+GLIBC_2.18 get_myaddress F
+GLIBC_2.18 get_nprocs F
+GLIBC_2.18 get_nprocs_conf F
+GLIBC_2.18 get_phys_pages F
+GLIBC_2.18 getaddrinfo F
+GLIBC_2.18 getaliasbyname F
+GLIBC_2.18 getaliasbyname_r F
+GLIBC_2.18 getaliasent F
+GLIBC_2.18 getaliasent_r F
+GLIBC_2.18 getauxval F
+GLIBC_2.18 getc F
+GLIBC_2.18 getc_unlocked F
+GLIBC_2.18 getchar F
+GLIBC_2.18 getchar_unlocked F
+GLIBC_2.18 getcontext F
+GLIBC_2.18 getcwd F
+GLIBC_2.18 getdate F
+GLIBC_2.18 getdate_err D 0x4
+GLIBC_2.18 getdate_r F
+GLIBC_2.18 getdelim F
+GLIBC_2.18 getdirentries F
+GLIBC_2.18 getdirentries64 F
+GLIBC_2.18 getdomainname F
+GLIBC_2.18 getdtablesize F
+GLIBC_2.18 getegid F
+GLIBC_2.18 getenv F
+GLIBC_2.18 geteuid F
+GLIBC_2.18 getfsent F
+GLIBC_2.18 getfsfile F
+GLIBC_2.18 getfsspec F
+GLIBC_2.18 getgid F
+GLIBC_2.18 getgrent F
+GLIBC_2.18 getgrent_r F
+GLIBC_2.18 getgrgid F
+GLIBC_2.18 getgrgid_r F
+GLIBC_2.18 getgrnam F
+GLIBC_2.18 getgrnam_r F
+GLIBC_2.18 getgrouplist F
+GLIBC_2.18 getgroups F
+GLIBC_2.18 gethostbyaddr F
+GLIBC_2.18 gethostbyaddr_r F
+GLIBC_2.18 gethostbyname F
+GLIBC_2.18 gethostbyname2 F
+GLIBC_2.18 gethostbyname2_r F
+GLIBC_2.18 gethostbyname_r F
+GLIBC_2.18 gethostent F
+GLIBC_2.18 gethostent_r F
+GLIBC_2.18 gethostid F
+GLIBC_2.18 gethostname F
+GLIBC_2.18 getifaddrs F
+GLIBC_2.18 getipv4sourcefilter F
+GLIBC_2.18 getitimer F
+GLIBC_2.18 getline F
+GLIBC_2.18 getloadavg F
+GLIBC_2.18 getlogin F
+GLIBC_2.18 getlogin_r F
+GLIBC_2.18 getmntent F
+GLIBC_2.18 getmntent_r F
+GLIBC_2.18 getmsg F
+GLIBC_2.18 getnameinfo F
+GLIBC_2.18 getnetbyaddr F
+GLIBC_2.18 getnetbyaddr_r F
+GLIBC_2.18 getnetbyname F
+GLIBC_2.18 getnetbyname_r F
+GLIBC_2.18 getnetent F
+GLIBC_2.18 getnetent_r F
+GLIBC_2.18 getnetgrent F
+GLIBC_2.18 getnetgrent_r F
+GLIBC_2.18 getnetname F
+GLIBC_2.18 getopt F
+GLIBC_2.18 getopt_long F
+GLIBC_2.18 getopt_long_only F
+GLIBC_2.18 getpagesize F
+GLIBC_2.18 getpass F
+GLIBC_2.18 getpeername F
+GLIBC_2.18 getpgid F
+GLIBC_2.18 getpgrp F
+GLIBC_2.18 getpid F
+GLIBC_2.18 getpmsg F
+GLIBC_2.18 getppid F
+GLIBC_2.18 getpriority F
+GLIBC_2.18 getprotobyname F
+GLIBC_2.18 getprotobyname_r F
+GLIBC_2.18 getprotobynumber F
+GLIBC_2.18 getprotobynumber_r F
+GLIBC_2.18 getprotoent F
+GLIBC_2.18 getprotoent_r F
+GLIBC_2.18 getpt F
+GLIBC_2.18 getpublickey F
+GLIBC_2.18 getpw F
+GLIBC_2.18 getpwent F
+GLIBC_2.18 getpwent_r F
+GLIBC_2.18 getpwnam F
+GLIBC_2.18 getpwnam_r F
+GLIBC_2.18 getpwuid F
+GLIBC_2.18 getpwuid_r F
+GLIBC_2.18 getresgid F
+GLIBC_2.18 getresuid F
+GLIBC_2.18 getrlimit F
+GLIBC_2.18 getrlimit64 F
+GLIBC_2.18 getrpcbyname F
+GLIBC_2.18 getrpcbyname_r F
+GLIBC_2.18 getrpcbynumber F
+GLIBC_2.18 getrpcbynumber_r F
+GLIBC_2.18 getrpcent F
+GLIBC_2.18 getrpcent_r F
+GLIBC_2.18 getrpcport F
+GLIBC_2.18 getrusage F
+GLIBC_2.18 gets F
+GLIBC_2.18 getsecretkey F
+GLIBC_2.18 getservbyname F
+GLIBC_2.18 getservbyname_r F
+GLIBC_2.18 getservbyport F
+GLIBC_2.18 getservbyport_r F
+GLIBC_2.18 getservent F
+GLIBC_2.18 getservent_r F
+GLIBC_2.18 getsgent F
+GLIBC_2.18 getsgent_r F
+GLIBC_2.18 getsgnam F
+GLIBC_2.18 getsgnam_r F
+GLIBC_2.18 getsid F
+GLIBC_2.18 getsockname F
+GLIBC_2.18 getsockopt F
+GLIBC_2.18 getsourcefilter F
+GLIBC_2.18 getspent F
+GLIBC_2.18 getspent_r F
+GLIBC_2.18 getspnam F
+GLIBC_2.18 getspnam_r F
+GLIBC_2.18 getsubopt F
+GLIBC_2.18 gettext F
+GLIBC_2.18 gettimeofday F
+GLIBC_2.18 getttyent F
+GLIBC_2.18 getttynam F
+GLIBC_2.18 getuid F
+GLIBC_2.18 getusershell F
+GLIBC_2.18 getutent F
+GLIBC_2.18 getutent_r F
+GLIBC_2.18 getutid F
+GLIBC_2.18 getutid_r F
+GLIBC_2.18 getutline F
+GLIBC_2.18 getutline_r F
+GLIBC_2.18 getutmp F
+GLIBC_2.18 getutmpx F
+GLIBC_2.18 getutxent F
+GLIBC_2.18 getutxid F
+GLIBC_2.18 getutxline F
+GLIBC_2.18 getw F
+GLIBC_2.18 getwc F
+GLIBC_2.18 getwc_unlocked F
+GLIBC_2.18 getwchar F
+GLIBC_2.18 getwchar_unlocked F
+GLIBC_2.18 getwd F
+GLIBC_2.18 getxattr F
+GLIBC_2.18 glob F
+GLIBC_2.18 glob64 F
+GLIBC_2.18 glob_pattern_p F
+GLIBC_2.18 globfree F
+GLIBC_2.18 globfree64 F
+GLIBC_2.18 gmtime F
+GLIBC_2.18 gmtime_r F
+GLIBC_2.18 gnu_dev_major F
+GLIBC_2.18 gnu_dev_makedev F
+GLIBC_2.18 gnu_dev_minor F
+GLIBC_2.18 gnu_get_libc_release F
+GLIBC_2.18 gnu_get_libc_version F
+GLIBC_2.18 grantpt F
+GLIBC_2.18 group_member F
+GLIBC_2.18 gsignal F
+GLIBC_2.18 gtty F
+GLIBC_2.18 h_errlist D 0x14
+GLIBC_2.18 h_nerr D 0x4
+GLIBC_2.18 hasmntopt F
+GLIBC_2.18 hcreate F
+GLIBC_2.18 hcreate_r F
+GLIBC_2.18 hdestroy F
+GLIBC_2.18 hdestroy_r F
+GLIBC_2.18 herror F
+GLIBC_2.18 host2netname F
+GLIBC_2.18 hsearch F
+GLIBC_2.18 hsearch_r F
+GLIBC_2.18 hstrerror F
+GLIBC_2.18 htonl F
+GLIBC_2.18 htons F
+GLIBC_2.18 iconv F
+GLIBC_2.18 iconv_close F
+GLIBC_2.18 iconv_open F
+GLIBC_2.18 if_freenameindex F
+GLIBC_2.18 if_indextoname F
+GLIBC_2.18 if_nameindex F
+GLIBC_2.18 if_nametoindex F
+GLIBC_2.18 imaxabs F
+GLIBC_2.18 imaxdiv F
+GLIBC_2.18 in6addr_any D 0x10
+GLIBC_2.18 in6addr_loopback D 0x10
+GLIBC_2.18 index F
+GLIBC_2.18 inet6_opt_append F
+GLIBC_2.18 inet6_opt_find F
+GLIBC_2.18 inet6_opt_finish F
+GLIBC_2.18 inet6_opt_get_val F
+GLIBC_2.18 inet6_opt_init F
+GLIBC_2.18 inet6_opt_next F
+GLIBC_2.18 inet6_opt_set_val F
+GLIBC_2.18 inet6_option_alloc F
+GLIBC_2.18 inet6_option_append F
+GLIBC_2.18 inet6_option_find F
+GLIBC_2.18 inet6_option_init F
+GLIBC_2.18 inet6_option_next F
+GLIBC_2.18 inet6_option_space F
+GLIBC_2.18 inet6_rth_add F
+GLIBC_2.18 inet6_rth_getaddr F
+GLIBC_2.18 inet6_rth_init F
+GLIBC_2.18 inet6_rth_reverse F
+GLIBC_2.18 inet6_rth_segments F
+GLIBC_2.18 inet6_rth_space F
+GLIBC_2.18 inet_addr F
+GLIBC_2.18 inet_aton F
+GLIBC_2.18 inet_lnaof F
+GLIBC_2.18 inet_makeaddr F
+GLIBC_2.18 inet_netof F
+GLIBC_2.18 inet_network F
+GLIBC_2.18 inet_nsap_addr F
+GLIBC_2.18 inet_nsap_ntoa F
+GLIBC_2.18 inet_ntoa F
+GLIBC_2.18 inet_ntop F
+GLIBC_2.18 inet_pton F
+GLIBC_2.18 init_module F
+GLIBC_2.18 initgroups F
+GLIBC_2.18 initstate F
+GLIBC_2.18 initstate_r F
+GLIBC_2.18 innetgr F
+GLIBC_2.18 inotify_add_watch F
+GLIBC_2.18 inotify_init F
+GLIBC_2.18 inotify_init1 F
+GLIBC_2.18 inotify_rm_watch F
+GLIBC_2.18 insque F
+GLIBC_2.18 ioctl F
+GLIBC_2.18 iruserok F
+GLIBC_2.18 iruserok_af F
+GLIBC_2.18 isalnum F
+GLIBC_2.18 isalnum_l F
+GLIBC_2.18 isalpha F
+GLIBC_2.18 isalpha_l F
+GLIBC_2.18 isascii F
+GLIBC_2.18 isastream F
+GLIBC_2.18 isatty F
+GLIBC_2.18 isblank F
+GLIBC_2.18 isblank_l F
+GLIBC_2.18 iscntrl F
+GLIBC_2.18 iscntrl_l F
+GLIBC_2.18 isctype F
+GLIBC_2.18 isdigit F
+GLIBC_2.18 isdigit_l F
+GLIBC_2.18 isfdtype F
+GLIBC_2.18 isgraph F
+GLIBC_2.18 isgraph_l F
+GLIBC_2.18 isinf F
+GLIBC_2.18 isinff F
+GLIBC_2.18 isinfl F
+GLIBC_2.18 islower F
+GLIBC_2.18 islower_l F
+GLIBC_2.18 isnan F
+GLIBC_2.18 isnanf F
+GLIBC_2.18 isnanl F
+GLIBC_2.18 isprint F
+GLIBC_2.18 isprint_l F
+GLIBC_2.18 ispunct F
+GLIBC_2.18 ispunct_l F
+GLIBC_2.18 isspace F
+GLIBC_2.18 isspace_l F
+GLIBC_2.18 isupper F
+GLIBC_2.18 isupper_l F
+GLIBC_2.18 iswalnum F
+GLIBC_2.18 iswalnum_l F
+GLIBC_2.18 iswalpha F
+GLIBC_2.18 iswalpha_l F
+GLIBC_2.18 iswblank F
+GLIBC_2.18 iswblank_l F
+GLIBC_2.18 iswcntrl F
+GLIBC_2.18 iswcntrl_l F
+GLIBC_2.18 iswctype F
+GLIBC_2.18 iswctype_l F
+GLIBC_2.18 iswdigit F
+GLIBC_2.18 iswdigit_l F
+GLIBC_2.18 iswgraph F
+GLIBC_2.18 iswgraph_l F
+GLIBC_2.18 iswlower F
+GLIBC_2.18 iswlower_l F
+GLIBC_2.18 iswprint F
+GLIBC_2.18 iswprint_l F
+GLIBC_2.18 iswpunct F
+GLIBC_2.18 iswpunct_l F
+GLIBC_2.18 iswspace F
+GLIBC_2.18 iswspace_l F
+GLIBC_2.18 iswupper F
+GLIBC_2.18 iswupper_l F
+GLIBC_2.18 iswxdigit F
+GLIBC_2.18 iswxdigit_l F
+GLIBC_2.18 isxdigit F
+GLIBC_2.18 isxdigit_l F
+GLIBC_2.18 jrand48 F
+GLIBC_2.18 jrand48_r F
+GLIBC_2.18 key_decryptsession F
+GLIBC_2.18 key_decryptsession_pk F
+GLIBC_2.18 key_encryptsession F
+GLIBC_2.18 key_encryptsession_pk F
+GLIBC_2.18 key_gendes F
+GLIBC_2.18 key_get_conv F
+GLIBC_2.18 key_secretkey_is_set F
+GLIBC_2.18 key_setnet F
+GLIBC_2.18 key_setsecret F
+GLIBC_2.18 kill F
+GLIBC_2.18 killpg F
+GLIBC_2.18 klogctl F
+GLIBC_2.18 l64a F
+GLIBC_2.18 labs F
+GLIBC_2.18 lchmod F
+GLIBC_2.18 lchown F
+GLIBC_2.18 lckpwdf F
+GLIBC_2.18 lcong48 F
+GLIBC_2.18 lcong48_r F
+GLIBC_2.18 ldexp F
+GLIBC_2.18 ldexpf F
+GLIBC_2.18 ldexpl F
+GLIBC_2.18 ldiv F
+GLIBC_2.18 lfind F
+GLIBC_2.18 lgetxattr F
+GLIBC_2.18 link F
+GLIBC_2.18 linkat F
+GLIBC_2.18 listen F
+GLIBC_2.18 listxattr F
+GLIBC_2.18 llabs F
+GLIBC_2.18 lldiv F
+GLIBC_2.18 llistxattr F
+GLIBC_2.18 llseek F
+GLIBC_2.18 loc1 D 0x4
+GLIBC_2.18 loc2 D 0x4
+GLIBC_2.18 localeconv F
+GLIBC_2.18 localtime F
+GLIBC_2.18 localtime_r F
+GLIBC_2.18 lockf F
+GLIBC_2.18 lockf64 F
+GLIBC_2.18 locs D 0x4
+GLIBC_2.18 longjmp F
+GLIBC_2.18 lrand48 F
+GLIBC_2.18 lrand48_r F
+GLIBC_2.18 lremovexattr F
+GLIBC_2.18 lsearch F
+GLIBC_2.18 lseek F
+GLIBC_2.18 lseek64 F
+GLIBC_2.18 lsetxattr F
+GLIBC_2.18 lutimes F
+GLIBC_2.18 madvise F
+GLIBC_2.18 makecontext F
+GLIBC_2.18 mallinfo F
+GLIBC_2.18 malloc F
+GLIBC_2.18 malloc_get_state F
+GLIBC_2.18 malloc_info F
+GLIBC_2.18 malloc_set_state F
+GLIBC_2.18 malloc_stats F
+GLIBC_2.18 malloc_trim F
+GLIBC_2.18 malloc_usable_size F
+GLIBC_2.18 mallopt F
+GLIBC_2.18 mallwatch D 0x4
+GLIBC_2.18 mblen F
+GLIBC_2.18 mbrlen F
+GLIBC_2.18 mbrtoc16 F
+GLIBC_2.18 mbrtoc32 F
+GLIBC_2.18 mbrtowc F
+GLIBC_2.18 mbsinit F
+GLIBC_2.18 mbsnrtowcs F
+GLIBC_2.18 mbsrtowcs F
+GLIBC_2.18 mbstowcs F
+GLIBC_2.18 mbtowc F
+GLIBC_2.18 mcheck F
+GLIBC_2.18 mcheck_check_all F
+GLIBC_2.18 mcheck_pedantic F
+GLIBC_2.18 memalign F
+GLIBC_2.18 memccpy F
+GLIBC_2.18 memchr F
+GLIBC_2.18 memcmp F
+GLIBC_2.18 memcpy F
+GLIBC_2.18 memfrob F
+GLIBC_2.18 memmem F
+GLIBC_2.18 memmove F
+GLIBC_2.18 mempcpy F
+GLIBC_2.18 memrchr F
+GLIBC_2.18 memset F
+GLIBC_2.18 mincore F
+GLIBC_2.18 mkdir F
+GLIBC_2.18 mkdirat F
+GLIBC_2.18 mkdtemp F
+GLIBC_2.18 mkfifo F
+GLIBC_2.18 mkfifoat F
+GLIBC_2.18 mkostemp F
+GLIBC_2.18 mkostemp64 F
+GLIBC_2.18 mkostemps F
+GLIBC_2.18 mkostemps64 F
+GLIBC_2.18 mkstemp F
+GLIBC_2.18 mkstemp64 F
+GLIBC_2.18 mkstemps F
+GLIBC_2.18 mkstemps64 F
+GLIBC_2.18 mktemp F
+GLIBC_2.18 mktime F
+GLIBC_2.18 mlock F
+GLIBC_2.18 mlockall F
+GLIBC_2.18 mmap F
+GLIBC_2.18 mmap64 F
+GLIBC_2.18 modf F
+GLIBC_2.18 modff F
+GLIBC_2.18 modfl F
+GLIBC_2.18 moncontrol F
+GLIBC_2.18 monstartup F
+GLIBC_2.18 mount F
+GLIBC_2.18 mprobe F
+GLIBC_2.18 mprotect F
+GLIBC_2.18 mrand48 F
+GLIBC_2.18 mrand48_r F
+GLIBC_2.18 mremap F
+GLIBC_2.18 msgctl F
+GLIBC_2.18 msgget F
+GLIBC_2.18 msgrcv F
+GLIBC_2.18 msgsnd F
+GLIBC_2.18 msync F
+GLIBC_2.18 mtrace F
+GLIBC_2.18 munlock F
+GLIBC_2.18 munlockall F
+GLIBC_2.18 munmap F
+GLIBC_2.18 muntrace F
+GLIBC_2.18 name_to_handle_at F
+GLIBC_2.18 nanosleep F
+GLIBC_2.18 netname2host F
+GLIBC_2.18 netname2user F
+GLIBC_2.18 newlocale F
+GLIBC_2.18 nfsservctl F
+GLIBC_2.18 nftw F
+GLIBC_2.18 nftw64 F
+GLIBC_2.18 ngettext F
+GLIBC_2.18 nice F
+GLIBC_2.18 nl_langinfo F
+GLIBC_2.18 nl_langinfo_l F
+GLIBC_2.18 nrand48 F
+GLIBC_2.18 nrand48_r F
+GLIBC_2.18 ntohl F
+GLIBC_2.18 ntohs F
+GLIBC_2.18 ntp_adjtime F
+GLIBC_2.18 ntp_gettime F
+GLIBC_2.18 ntp_gettimex F
+GLIBC_2.18 obstack_alloc_failed_handler D 0x4
+GLIBC_2.18 obstack_exit_failure D 0x4
+GLIBC_2.18 obstack_free F
+GLIBC_2.18 obstack_printf F
+GLIBC_2.18 obstack_vprintf F
+GLIBC_2.18 on_exit F
+GLIBC_2.18 open F
+GLIBC_2.18 open64 F
+GLIBC_2.18 open_by_handle_at F
+GLIBC_2.18 open_memstream F
+GLIBC_2.18 open_wmemstream F
+GLIBC_2.18 openat F
+GLIBC_2.18 openat64 F
+GLIBC_2.18 opendir F
+GLIBC_2.18 openlog F
+GLIBC_2.18 optarg D 0x4
+GLIBC_2.18 opterr D 0x4
+GLIBC_2.18 optind D 0x4
+GLIBC_2.18 optopt D 0x4
+GLIBC_2.18 parse_printf_format F
+GLIBC_2.18 passwd2des F
+GLIBC_2.18 pathconf F
+GLIBC_2.18 pause F
+GLIBC_2.18 pclose F
+GLIBC_2.18 perror F
+GLIBC_2.18 personality F
+GLIBC_2.18 pipe F
+GLIBC_2.18 pipe2 F
+GLIBC_2.18 pivot_root F
+GLIBC_2.18 pmap_getmaps F
+GLIBC_2.18 pmap_getport F
+GLIBC_2.18 pmap_rmtcall F
+GLIBC_2.18 pmap_set F
+GLIBC_2.18 pmap_unset F
+GLIBC_2.18 poll F
+GLIBC_2.18 popen F
+GLIBC_2.18 posix_fadvise F
+GLIBC_2.18 posix_fadvise64 F
+GLIBC_2.18 posix_fallocate F
+GLIBC_2.18 posix_fallocate64 F
+GLIBC_2.18 posix_madvise F
+GLIBC_2.18 posix_memalign F
+GLIBC_2.18 posix_openpt F
+GLIBC_2.18 posix_spawn F
+GLIBC_2.18 posix_spawn_file_actions_addclose F
+GLIBC_2.18 posix_spawn_file_actions_adddup2 F
+GLIBC_2.18 posix_spawn_file_actions_addopen F
+GLIBC_2.18 posix_spawn_file_actions_destroy F
+GLIBC_2.18 posix_spawn_file_actions_init F
+GLIBC_2.18 posix_spawnattr_destroy F
+GLIBC_2.18 posix_spawnattr_getflags F
+GLIBC_2.18 posix_spawnattr_getpgroup F
+GLIBC_2.18 posix_spawnattr_getschedparam F
+GLIBC_2.18 posix_spawnattr_getschedpolicy F
+GLIBC_2.18 posix_spawnattr_getsigdefault F
+GLIBC_2.18 posix_spawnattr_getsigmask F
+GLIBC_2.18 posix_spawnattr_init F
+GLIBC_2.18 posix_spawnattr_setflags F
+GLIBC_2.18 posix_spawnattr_setpgroup F
+GLIBC_2.18 posix_spawnattr_setschedparam F
+GLIBC_2.18 posix_spawnattr_setschedpolicy F
+GLIBC_2.18 posix_spawnattr_setsigdefault F
+GLIBC_2.18 posix_spawnattr_setsigmask F
+GLIBC_2.18 posix_spawnp F
+GLIBC_2.18 ppoll F
+GLIBC_2.18 prctl F
+GLIBC_2.18 pread F
+GLIBC_2.18 pread64 F
+GLIBC_2.18 preadv F
+GLIBC_2.18 preadv64 F
+GLIBC_2.18 printf F
+GLIBC_2.18 printf_size F
+GLIBC_2.18 printf_size_info F
+GLIBC_2.18 prlimit F
+GLIBC_2.18 prlimit64 F
+GLIBC_2.18 process_vm_readv F
+GLIBC_2.18 process_vm_writev F
+GLIBC_2.18 profil F
+GLIBC_2.18 program_invocation_name D 0x4
+GLIBC_2.18 program_invocation_short_name D 0x4
+GLIBC_2.18 pselect F
+GLIBC_2.18 psiginfo F
+GLIBC_2.18 psignal F
+GLIBC_2.18 pthread_attr_destroy F
+GLIBC_2.18 pthread_attr_getdetachstate F
+GLIBC_2.18 pthread_attr_getinheritsched F
+GLIBC_2.18 pthread_attr_getschedparam F
+GLIBC_2.18 pthread_attr_getschedpolicy F
+GLIBC_2.18 pthread_attr_getscope F
+GLIBC_2.18 pthread_attr_init F
+GLIBC_2.18 pthread_attr_setdetachstate F
+GLIBC_2.18 pthread_attr_setinheritsched F
+GLIBC_2.18 pthread_attr_setschedparam F
+GLIBC_2.18 pthread_attr_setschedpolicy F
+GLIBC_2.18 pthread_attr_setscope F
+GLIBC_2.18 pthread_cond_broadcast F
+GLIBC_2.18 pthread_cond_destroy F
+GLIBC_2.18 pthread_cond_init F
+GLIBC_2.18 pthread_cond_signal F
+GLIBC_2.18 pthread_cond_timedwait F
+GLIBC_2.18 pthread_cond_wait F
+GLIBC_2.18 pthread_condattr_destroy F
+GLIBC_2.18 pthread_condattr_init F
+GLIBC_2.18 pthread_equal F
+GLIBC_2.18 pthread_exit F
+GLIBC_2.18 pthread_getschedparam F
+GLIBC_2.18 pthread_mutex_destroy F
+GLIBC_2.18 pthread_mutex_init F
+GLIBC_2.18 pthread_mutex_lock F
+GLIBC_2.18 pthread_mutex_unlock F
+GLIBC_2.18 pthread_self F
+GLIBC_2.18 pthread_setcancelstate F
+GLIBC_2.18 pthread_setcanceltype F
+GLIBC_2.18 pthread_setschedparam F
+GLIBC_2.18 ptrace F
+GLIBC_2.18 ptsname F
+GLIBC_2.18 ptsname_r F
+GLIBC_2.18 putc F
+GLIBC_2.18 putc_unlocked F
+GLIBC_2.18 putchar F
+GLIBC_2.18 putchar_unlocked F
+GLIBC_2.18 putenv F
+GLIBC_2.18 putgrent F
+GLIBC_2.18 putmsg F
+GLIBC_2.18 putpmsg F
+GLIBC_2.18 putpwent F
+GLIBC_2.18 puts F
+GLIBC_2.18 putsgent F
+GLIBC_2.18 putspent F
+GLIBC_2.18 pututline F
+GLIBC_2.18 pututxline F
+GLIBC_2.18 putw F
+GLIBC_2.18 putwc F
+GLIBC_2.18 putwc_unlocked F
+GLIBC_2.18 putwchar F
+GLIBC_2.18 putwchar_unlocked F
+GLIBC_2.18 pvalloc F
+GLIBC_2.18 pwrite F
+GLIBC_2.18 pwrite64 F
+GLIBC_2.18 pwritev F
+GLIBC_2.18 pwritev64 F
+GLIBC_2.18 qecvt F
+GLIBC_2.18 qecvt_r F
+GLIBC_2.18 qfcvt F
+GLIBC_2.18 qfcvt_r F
+GLIBC_2.18 qgcvt F
+GLIBC_2.18 qsort F
+GLIBC_2.18 qsort_r F
+GLIBC_2.18 query_module F
+GLIBC_2.18 quick_exit F
+GLIBC_2.18 quotactl F
+GLIBC_2.18 raise F
+GLIBC_2.18 rand F
+GLIBC_2.18 rand_r F
+GLIBC_2.18 random F
+GLIBC_2.18 random_r F
+GLIBC_2.18 rawmemchr F
+GLIBC_2.18 rcmd F
+GLIBC_2.18 rcmd_af F
+GLIBC_2.18 re_comp F
+GLIBC_2.18 re_compile_fastmap F
+GLIBC_2.18 re_compile_pattern F
+GLIBC_2.18 re_exec F
+GLIBC_2.18 re_match F
+GLIBC_2.18 re_match_2 F
+GLIBC_2.18 re_search F
+GLIBC_2.18 re_search_2 F
+GLIBC_2.18 re_set_registers F
+GLIBC_2.18 re_set_syntax F
+GLIBC_2.18 re_syntax_options D 0x4
+GLIBC_2.18 read F
+GLIBC_2.18 readahead F
+GLIBC_2.18 readdir F
+GLIBC_2.18 readdir64 F
+GLIBC_2.18 readdir64_r F
+GLIBC_2.18 readdir_r F
+GLIBC_2.18 readlink F
+GLIBC_2.18 readlinkat F
+GLIBC_2.18 readv F
+GLIBC_2.18 realloc F
+GLIBC_2.18 realpath F
+GLIBC_2.18 reboot F
+GLIBC_2.18 recv F
+GLIBC_2.18 recvfrom F
+GLIBC_2.18 recvmmsg F
+GLIBC_2.18 recvmsg F
+GLIBC_2.18 regcomp F
+GLIBC_2.18 regerror F
+GLIBC_2.18 regexec F
+GLIBC_2.18 regfree F
+GLIBC_2.18 register_printf_function F
+GLIBC_2.18 register_printf_modifier F
+GLIBC_2.18 register_printf_specifier F
+GLIBC_2.18 register_printf_type F
+GLIBC_2.18 registerrpc F
+GLIBC_2.18 remap_file_pages F
+GLIBC_2.18 remove F
+GLIBC_2.18 removexattr F
+GLIBC_2.18 remque F
+GLIBC_2.18 rename F
+GLIBC_2.18 renameat F
+GLIBC_2.18 revoke F
+GLIBC_2.18 rewind F
+GLIBC_2.18 rewinddir F
+GLIBC_2.18 rexec F
+GLIBC_2.18 rexec_af F
+GLIBC_2.18 rexecoptions D 0x4
+GLIBC_2.18 rindex F
+GLIBC_2.18 rmdir F
+GLIBC_2.18 rpc_createerr D 0x10
+GLIBC_2.18 rpmatch F
+GLIBC_2.18 rresvport F
+GLIBC_2.18 rresvport_af F
+GLIBC_2.18 rtime F
+GLIBC_2.18 ruserok F
+GLIBC_2.18 ruserok_af F
+GLIBC_2.18 ruserpass F
+GLIBC_2.18 sbrk F
+GLIBC_2.18 scalbn F
+GLIBC_2.18 scalbnf F
+GLIBC_2.18 scalbnl F
+GLIBC_2.18 scandir F
+GLIBC_2.18 scandir64 F
+GLIBC_2.18 scandirat F
+GLIBC_2.18 scandirat64 F
+GLIBC_2.18 scanf F
+GLIBC_2.18 sched_get_priority_max F
+GLIBC_2.18 sched_get_priority_min F
+GLIBC_2.18 sched_getaffinity F
+GLIBC_2.18 sched_getcpu F
+GLIBC_2.18 sched_getparam F
+GLIBC_2.18 sched_getscheduler F
+GLIBC_2.18 sched_rr_get_interval F
+GLIBC_2.18 sched_setaffinity F
+GLIBC_2.18 sched_setparam F
+GLIBC_2.18 sched_setscheduler F
+GLIBC_2.18 sched_yield F
+GLIBC_2.18 secure_getenv F
+GLIBC_2.18 seed48 F
+GLIBC_2.18 seed48_r F
+GLIBC_2.18 seekdir F
+GLIBC_2.18 select F
+GLIBC_2.18 semctl F
+GLIBC_2.18 semget F
+GLIBC_2.18 semop F
+GLIBC_2.18 semtimedop F
+GLIBC_2.18 send F
+GLIBC_2.18 sendfile F
+GLIBC_2.18 sendfile64 F
+GLIBC_2.18 sendmmsg F
+GLIBC_2.18 sendmsg F
+GLIBC_2.18 sendto F
+GLIBC_2.18 setaliasent F
+GLIBC_2.18 setbuf F
+GLIBC_2.18 setbuffer F
+GLIBC_2.18 setcontext F
+GLIBC_2.18 setdomainname F
+GLIBC_2.18 setegid F
+GLIBC_2.18 setenv F
+GLIBC_2.18 seteuid F
+GLIBC_2.18 setfsent F
+GLIBC_2.18 setfsgid F
+GLIBC_2.18 setfsuid F
+GLIBC_2.18 setgid F
+GLIBC_2.18 setgrent F
+GLIBC_2.18 setgroups F
+GLIBC_2.18 sethostent F
+GLIBC_2.18 sethostid F
+GLIBC_2.18 sethostname F
+GLIBC_2.18 setipv4sourcefilter F
+GLIBC_2.18 setitimer F
+GLIBC_2.18 setjmp F
+GLIBC_2.18 setlinebuf F
+GLIBC_2.18 setlocale F
+GLIBC_2.18 setlogin F
+GLIBC_2.18 setlogmask F
+GLIBC_2.18 setmntent F
+GLIBC_2.18 setnetent F
+GLIBC_2.18 setnetgrent F
+GLIBC_2.18 setns F
+GLIBC_2.18 setpgid F
+GLIBC_2.18 setpgrp F
+GLIBC_2.18 setpriority F
+GLIBC_2.18 setprotoent F
+GLIBC_2.18 setpwent F
+GLIBC_2.18 setregid F
+GLIBC_2.18 setresgid F
+GLIBC_2.18 setresuid F
+GLIBC_2.18 setreuid F
+GLIBC_2.18 setrlimit F
+GLIBC_2.18 setrlimit64 F
+GLIBC_2.18 setrpcent F
+GLIBC_2.18 setservent F
+GLIBC_2.18 setsgent F
+GLIBC_2.18 setsid F
+GLIBC_2.18 setsockopt F
+GLIBC_2.18 setsourcefilter F
+GLIBC_2.18 setspent F
+GLIBC_2.18 setstate F
+GLIBC_2.18 setstate_r F
+GLIBC_2.18 settimeofday F
+GLIBC_2.18 setttyent F
+GLIBC_2.18 setuid F
+GLIBC_2.18 setusershell F
+GLIBC_2.18 setutent F
+GLIBC_2.18 setutxent F
+GLIBC_2.18 setvbuf F
+GLIBC_2.18 setxattr F
+GLIBC_2.18 sgetsgent F
+GLIBC_2.18 sgetsgent_r F
+GLIBC_2.18 sgetspent F
+GLIBC_2.18 sgetspent_r F
+GLIBC_2.18 shmat F
+GLIBC_2.18 shmctl F
+GLIBC_2.18 shmdt F
+GLIBC_2.18 shmget F
+GLIBC_2.18 shutdown F
+GLIBC_2.18 sigaction F
+GLIBC_2.18 sigaddset F
+GLIBC_2.18 sigaltstack F
+GLIBC_2.18 sigandset F
+GLIBC_2.18 sigblock F
+GLIBC_2.18 sigdelset F
+GLIBC_2.18 sigemptyset F
+GLIBC_2.18 sigfillset F
+GLIBC_2.18 siggetmask F
+GLIBC_2.18 sighold F
+GLIBC_2.18 sigignore F
+GLIBC_2.18 siginterrupt F
+GLIBC_2.18 sigisemptyset F
+GLIBC_2.18 sigismember F
+GLIBC_2.18 siglongjmp F
+GLIBC_2.18 signal F
+GLIBC_2.18 signalfd F
+GLIBC_2.18 sigorset F
+GLIBC_2.18 sigpause F
+GLIBC_2.18 sigpending F
+GLIBC_2.18 sigprocmask F
+GLIBC_2.18 sigqueue F
+GLIBC_2.18 sigrelse F
+GLIBC_2.18 sigreturn F
+GLIBC_2.18 sigset F
+GLIBC_2.18 sigsetmask F
+GLIBC_2.18 sigstack F
+GLIBC_2.18 sigsuspend F
+GLIBC_2.18 sigtimedwait F
+GLIBC_2.18 sigvec F
+GLIBC_2.18 sigwait F
+GLIBC_2.18 sigwaitinfo F
+GLIBC_2.18 sleep F
+GLIBC_2.18 snprintf F
+GLIBC_2.18 sockatmark F
+GLIBC_2.18 socket F
+GLIBC_2.18 socketpair F
+GLIBC_2.18 splice F
+GLIBC_2.18 sprintf F
+GLIBC_2.18 sprofil F
+GLIBC_2.18 srand F
+GLIBC_2.18 srand48 F
+GLIBC_2.18 srand48_r F
+GLIBC_2.18 srandom F
+GLIBC_2.18 srandom_r F
+GLIBC_2.18 sscanf F
+GLIBC_2.18 ssignal F
+GLIBC_2.18 sstk F
+GLIBC_2.18 statfs F
+GLIBC_2.18 statfs64 F
+GLIBC_2.18 statvfs F
+GLIBC_2.18 statvfs64 F
+GLIBC_2.18 stderr D 0x4
+GLIBC_2.18 stdin D 0x4
+GLIBC_2.18 stdout D 0x4
+GLIBC_2.18 step F
+GLIBC_2.18 stime F
+GLIBC_2.18 stpcpy F
+GLIBC_2.18 stpncpy F
+GLIBC_2.18 strcasecmp F
+GLIBC_2.18 strcasecmp_l F
+GLIBC_2.18 strcasestr F
+GLIBC_2.18 strcat F
+GLIBC_2.18 strchr F
+GLIBC_2.18 strchrnul F
+GLIBC_2.18 strcmp F
+GLIBC_2.18 strcoll F
+GLIBC_2.18 strcoll_l F
+GLIBC_2.18 strcpy F
+GLIBC_2.18 strcspn F
+GLIBC_2.18 strdup F
+GLIBC_2.18 strerror F
+GLIBC_2.18 strerror_l F
+GLIBC_2.18 strerror_r F
+GLIBC_2.18 strfmon F
+GLIBC_2.18 strfmon_l F
+GLIBC_2.18 strfry F
+GLIBC_2.18 strftime F
+GLIBC_2.18 strftime_l F
+GLIBC_2.18 strlen F
+GLIBC_2.18 strncasecmp F
+GLIBC_2.18 strncasecmp_l F
+GLIBC_2.18 strncat F
+GLIBC_2.18 strncmp F
+GLIBC_2.18 strncpy F
+GLIBC_2.18 strndup F
+GLIBC_2.18 strnlen F
+GLIBC_2.18 strpbrk F
+GLIBC_2.18 strptime F
+GLIBC_2.18 strptime_l F
+GLIBC_2.18 strrchr F
+GLIBC_2.18 strsep F
+GLIBC_2.18 strsignal F
+GLIBC_2.18 strspn F
+GLIBC_2.18 strstr F
+GLIBC_2.18 strtod F
+GLIBC_2.18 strtod_l F
+GLIBC_2.18 strtof F
+GLIBC_2.18 strtof_l F
+GLIBC_2.18 strtoimax F
+GLIBC_2.18 strtok F
+GLIBC_2.18 strtok_r F
+GLIBC_2.18 strtol F
+GLIBC_2.18 strtol_l F
+GLIBC_2.18 strtold F
+GLIBC_2.18 strtold_l F
+GLIBC_2.18 strtoll F
+GLIBC_2.18 strtoll_l F
+GLIBC_2.18 strtoq F
+GLIBC_2.18 strtoul F
+GLIBC_2.18 strtoul_l F
+GLIBC_2.18 strtoull F
+GLIBC_2.18 strtoull_l F
+GLIBC_2.18 strtoumax F
+GLIBC_2.18 strtouq F
+GLIBC_2.18 strverscmp F
+GLIBC_2.18 strxfrm F
+GLIBC_2.18 strxfrm_l F
+GLIBC_2.18 stty F
+GLIBC_2.18 svc_exit F
+GLIBC_2.18 svc_fdset D 0x80
+GLIBC_2.18 svc_getreq F
+GLIBC_2.18 svc_getreq_common F
+GLIBC_2.18 svc_getreq_poll F
+GLIBC_2.18 svc_getreqset F
+GLIBC_2.18 svc_max_pollfd D 0x4
+GLIBC_2.18 svc_pollfd D 0x4
+GLIBC_2.18 svc_register F
+GLIBC_2.18 svc_run F
+GLIBC_2.18 svc_sendreply F
+GLIBC_2.18 svc_unregister F
+GLIBC_2.18 svcauthdes_stats D 0xc
+GLIBC_2.18 svcerr_auth F
+GLIBC_2.18 svcerr_decode F
+GLIBC_2.18 svcerr_noproc F
+GLIBC_2.18 svcerr_noprog F
+GLIBC_2.18 svcerr_progvers F
+GLIBC_2.18 svcerr_systemerr F
+GLIBC_2.18 svcerr_weakauth F
+GLIBC_2.18 svcfd_create F
+GLIBC_2.18 svcraw_create F
+GLIBC_2.18 svctcp_create F
+GLIBC_2.18 svcudp_bufcreate F
+GLIBC_2.18 svcudp_create F
+GLIBC_2.18 svcudp_enablecache F
+GLIBC_2.18 svcunix_create F
+GLIBC_2.18 svcunixfd_create F
+GLIBC_2.18 swab F
+GLIBC_2.18 swapcontext F
+GLIBC_2.18 swapoff F
+GLIBC_2.18 swapon F
+GLIBC_2.18 swprintf F
+GLIBC_2.18 swscanf F
+GLIBC_2.18 symlink F
+GLIBC_2.18 symlinkat F
+GLIBC_2.18 sync F
+GLIBC_2.18 sync_file_range F
+GLIBC_2.18 syncfs F
+GLIBC_2.18 sys_errlist D 0x21c
+GLIBC_2.18 sys_nerr D 0x4
+GLIBC_2.18 sys_sigabbrev D 0x104
+GLIBC_2.18 sys_siglist D 0x104
+GLIBC_2.18 syscall F
+GLIBC_2.18 sysconf F
+GLIBC_2.18 sysctl F
+GLIBC_2.18 sysinfo F
+GLIBC_2.18 syslog F
+GLIBC_2.18 system F
+GLIBC_2.18 sysv_signal F
+GLIBC_2.18 tcdrain F
+GLIBC_2.18 tcflow F
+GLIBC_2.18 tcflush F
+GLIBC_2.18 tcgetattr F
+GLIBC_2.18 tcgetpgrp F
+GLIBC_2.18 tcgetsid F
+GLIBC_2.18 tcsendbreak F
+GLIBC_2.18 tcsetattr F
+GLIBC_2.18 tcsetpgrp F
+GLIBC_2.18 tdelete F
+GLIBC_2.18 tdestroy F
+GLIBC_2.18 tee F
+GLIBC_2.18 telldir F
+GLIBC_2.18 tempnam F
+GLIBC_2.18 textdomain F
+GLIBC_2.18 tfind F
+GLIBC_2.18 time F
+GLIBC_2.18 timegm F
+GLIBC_2.18 timelocal F
+GLIBC_2.18 timerfd_create F
+GLIBC_2.18 timerfd_gettime F
+GLIBC_2.18 timerfd_settime F
+GLIBC_2.18 times F
+GLIBC_2.18 timespec_get F
+GLIBC_2.18 timezone D 0x4
+GLIBC_2.18 tmpfile F
+GLIBC_2.18 tmpfile64 F
+GLIBC_2.18 tmpnam F
+GLIBC_2.18 tmpnam_r F
+GLIBC_2.18 toascii F
+GLIBC_2.18 tolower F
+GLIBC_2.18 tolower_l F
+GLIBC_2.18 toupper F
+GLIBC_2.18 toupper_l F
+GLIBC_2.18 towctrans F
+GLIBC_2.18 towctrans_l F
+GLIBC_2.18 towlower F
+GLIBC_2.18 towlower_l F
+GLIBC_2.18 towupper F
+GLIBC_2.18 towupper_l F
+GLIBC_2.18 tr_break F
+GLIBC_2.18 truncate F
+GLIBC_2.18 truncate64 F
+GLIBC_2.18 tsearch F
+GLIBC_2.18 ttyname F
+GLIBC_2.18 ttyname_r F
+GLIBC_2.18 ttyslot F
+GLIBC_2.18 twalk F
+GLIBC_2.18 tzname D 0x8
+GLIBC_2.18 tzset F
+GLIBC_2.18 ualarm F
+GLIBC_2.18 ulckpwdf F
+GLIBC_2.18 ulimit F
+GLIBC_2.18 umask F
+GLIBC_2.18 umount F
+GLIBC_2.18 umount2 F
+GLIBC_2.18 uname F
+GLIBC_2.18 ungetc F
+GLIBC_2.18 ungetwc F
+GLIBC_2.18 unlink F
+GLIBC_2.18 unlinkat F
+GLIBC_2.18 unlockpt F
+GLIBC_2.18 unsetenv F
+GLIBC_2.18 unshare F
+GLIBC_2.18 updwtmp F
+GLIBC_2.18 updwtmpx F
+GLIBC_2.18 uselib F
+GLIBC_2.18 uselocale F
+GLIBC_2.18 user2netname F
+GLIBC_2.18 usleep F
+GLIBC_2.18 ustat F
+GLIBC_2.18 utime F
+GLIBC_2.18 utimensat F
+GLIBC_2.18 utimes F
+GLIBC_2.18 utmpname F
+GLIBC_2.18 utmpxname F
+GLIBC_2.18 valloc F
+GLIBC_2.18 vasprintf F
+GLIBC_2.18 vdprintf F
+GLIBC_2.18 verr F
+GLIBC_2.18 verrx F
+GLIBC_2.18 versionsort F
+GLIBC_2.18 versionsort64 F
+GLIBC_2.18 vfork F
+GLIBC_2.18 vfprintf F
+GLIBC_2.18 vfscanf F
+GLIBC_2.18 vfwprintf F
+GLIBC_2.18 vfwscanf F
+GLIBC_2.18 vhangup F
+GLIBC_2.18 vlimit F
+GLIBC_2.18 vmsplice F
+GLIBC_2.18 vprintf F
+GLIBC_2.18 vscanf F
+GLIBC_2.18 vsnprintf F
+GLIBC_2.18 vsprintf F
+GLIBC_2.18 vsscanf F
+GLIBC_2.18 vswprintf F
+GLIBC_2.18 vswscanf F
+GLIBC_2.18 vsyslog F
+GLIBC_2.18 vtimes F
+GLIBC_2.18 vwarn F
+GLIBC_2.18 vwarnx F
+GLIBC_2.18 vwprintf F
+GLIBC_2.18 vwscanf F
+GLIBC_2.18 wait F
+GLIBC_2.18 wait3 F
+GLIBC_2.18 wait4 F
+GLIBC_2.18 waitid F
+GLIBC_2.18 waitpid F
+GLIBC_2.18 warn F
+GLIBC_2.18 warnx F
+GLIBC_2.18 wcpcpy F
+GLIBC_2.18 wcpncpy F
+GLIBC_2.18 wcrtomb F
+GLIBC_2.18 wcscasecmp F
+GLIBC_2.18 wcscasecmp_l F
+GLIBC_2.18 wcscat F
+GLIBC_2.18 wcschr F
+GLIBC_2.18 wcschrnul F
+GLIBC_2.18 wcscmp F
+GLIBC_2.18 wcscoll F
+GLIBC_2.18 wcscoll_l F
+GLIBC_2.18 wcscpy F
+GLIBC_2.18 wcscspn F
+GLIBC_2.18 wcsdup F
+GLIBC_2.18 wcsftime F
+GLIBC_2.18 wcsftime_l F
+GLIBC_2.18 wcslen F
+GLIBC_2.18 wcsncasecmp F
+GLIBC_2.18 wcsncasecmp_l F
+GLIBC_2.18 wcsncat F
+GLIBC_2.18 wcsncmp F
+GLIBC_2.18 wcsncpy F
+GLIBC_2.18 wcsnlen F
+GLIBC_2.18 wcsnrtombs F
+GLIBC_2.18 wcspbrk F
+GLIBC_2.18 wcsrchr F
+GLIBC_2.18 wcsrtombs F
+GLIBC_2.18 wcsspn F
+GLIBC_2.18 wcsstr F
+GLIBC_2.18 wcstod F
+GLIBC_2.18 wcstod_l F
+GLIBC_2.18 wcstof F
+GLIBC_2.18 wcstof_l F
+GLIBC_2.18 wcstoimax F
+GLIBC_2.18 wcstok F
+GLIBC_2.18 wcstol F
+GLIBC_2.18 wcstol_l F
+GLIBC_2.18 wcstold F
+GLIBC_2.18 wcstold_l F
+GLIBC_2.18 wcstoll F
+GLIBC_2.18 wcstoll_l F
+GLIBC_2.18 wcstombs F
+GLIBC_2.18 wcstoq F
+GLIBC_2.18 wcstoul F
+GLIBC_2.18 wcstoul_l F
+GLIBC_2.18 wcstoull F
+GLIBC_2.18 wcstoull_l F
+GLIBC_2.18 wcstoumax F
+GLIBC_2.18 wcstouq F
+GLIBC_2.18 wcswcs F
+GLIBC_2.18 wcswidth F
+GLIBC_2.18 wcsxfrm F
+GLIBC_2.18 wcsxfrm_l F
+GLIBC_2.18 wctob F
+GLIBC_2.18 wctomb F
+GLIBC_2.18 wctrans F
+GLIBC_2.18 wctrans_l F
+GLIBC_2.18 wctype F
+GLIBC_2.18 wctype_l F
+GLIBC_2.18 wcwidth F
+GLIBC_2.18 wmemchr F
+GLIBC_2.18 wmemcmp F
+GLIBC_2.18 wmemcpy F
+GLIBC_2.18 wmemmove F
+GLIBC_2.18 wmempcpy F
+GLIBC_2.18 wmemset F
+GLIBC_2.18 wordexp F
+GLIBC_2.18 wordfree F
+GLIBC_2.18 wprintf F
+GLIBC_2.18 write F
+GLIBC_2.18 writev F
+GLIBC_2.18 wscanf F
+GLIBC_2.18 xdecrypt F
+GLIBC_2.18 xdr_accepted_reply F
+GLIBC_2.18 xdr_array F
+GLIBC_2.18 xdr_authdes_cred F
+GLIBC_2.18 xdr_authdes_verf F
+GLIBC_2.18 xdr_authunix_parms F
+GLIBC_2.18 xdr_bool F
+GLIBC_2.18 xdr_bytes F
+GLIBC_2.18 xdr_callhdr F
+GLIBC_2.18 xdr_callmsg F
+GLIBC_2.18 xdr_char F
+GLIBC_2.18 xdr_cryptkeyarg F
+GLIBC_2.18 xdr_cryptkeyarg2 F
+GLIBC_2.18 xdr_cryptkeyres F
+GLIBC_2.18 xdr_des_block F
+GLIBC_2.18 xdr_double F
+GLIBC_2.18 xdr_enum F
+GLIBC_2.18 xdr_float F
+GLIBC_2.18 xdr_free F
+GLIBC_2.18 xdr_getcredres F
+GLIBC_2.18 xdr_hyper F
+GLIBC_2.18 xdr_int F
+GLIBC_2.18 xdr_int16_t F
+GLIBC_2.18 xdr_int32_t F
+GLIBC_2.18 xdr_int64_t F
+GLIBC_2.18 xdr_int8_t F
+GLIBC_2.18 xdr_key_netstarg F
+GLIBC_2.18 xdr_key_netstres F
+GLIBC_2.18 xdr_keybuf F
+GLIBC_2.18 xdr_keystatus F
+GLIBC_2.18 xdr_long F
+GLIBC_2.18 xdr_longlong_t F
+GLIBC_2.18 xdr_netnamestr F
+GLIBC_2.18 xdr_netobj F
+GLIBC_2.18 xdr_opaque F
+GLIBC_2.18 xdr_opaque_auth F
+GLIBC_2.18 xdr_pmap F
+GLIBC_2.18 xdr_pmaplist F
+GLIBC_2.18 xdr_pointer F
+GLIBC_2.18 xdr_quad_t F
+GLIBC_2.18 xdr_reference F
+GLIBC_2.18 xdr_rejected_reply F
+GLIBC_2.18 xdr_replymsg F
+GLIBC_2.18 xdr_rmtcall_args F
+GLIBC_2.18 xdr_rmtcallres F
+GLIBC_2.18 xdr_short F
+GLIBC_2.18 xdr_sizeof F
+GLIBC_2.18 xdr_string F
+GLIBC_2.18 xdr_u_char F
+GLIBC_2.18 xdr_u_hyper F
+GLIBC_2.18 xdr_u_int F
+GLIBC_2.18 xdr_u_long F
+GLIBC_2.18 xdr_u_longlong_t F
+GLIBC_2.18 xdr_u_quad_t F
+GLIBC_2.18 xdr_u_short F
+GLIBC_2.18 xdr_uint16_t F
+GLIBC_2.18 xdr_uint32_t F
+GLIBC_2.18 xdr_uint64_t F
+GLIBC_2.18 xdr_uint8_t F
+GLIBC_2.18 xdr_union F
+GLIBC_2.18 xdr_unixcred F
+GLIBC_2.18 xdr_vector F
+GLIBC_2.18 xdr_void F
+GLIBC_2.18 xdr_wrapstring F
+GLIBC_2.18 xdrmem_create F
+GLIBC_2.18 xdrrec_create F
+GLIBC_2.18 xdrrec_endofrecord F
+GLIBC_2.18 xdrrec_eof F
+GLIBC_2.18 xdrrec_skiprecord F
+GLIBC_2.18 xdrstdio_create F
+GLIBC_2.18 xencrypt F
+GLIBC_2.18 xprt_register F
+GLIBC_2.18 xprt_unregister F
+GLIBC_2.22 fmemopen F
+GLIBC_2.23 fts64_children F
+GLIBC_2.23 fts64_close F
+GLIBC_2.23 fts64_open F
+GLIBC_2.23 fts64_read F
+GLIBC_2.23 fts64_set F
+GLIBC_2.24 quick_exit F
+GLIBC_2.25 __explicit_bzero_chk F
+GLIBC_2.25 explicit_bzero F
+GLIBC_2.25 getentropy F
+GLIBC_2.25 getrandom F
+GLIBC_2.25 strfromd F
+GLIBC_2.25 strfromf F
+GLIBC_2.25 strfroml F
+GLIBC_2.26 preadv2 F
+GLIBC_2.26 preadv64v2 F
+GLIBC_2.26 pwritev2 F
+GLIBC_2.26 pwritev64v2 F
+GLIBC_2.26 reallocarray F
+GLIBC_2.27 copy_file_range F
+GLIBC_2.27 glob F
+GLIBC_2.27 glob64 F
+GLIBC_2.27 memfd_create F
+GLIBC_2.27 mlock2 F
+GLIBC_2.27 pkey_alloc F
+GLIBC_2.27 pkey_free F
+GLIBC_2.27 pkey_get F
+GLIBC_2.27 pkey_mprotect F
+GLIBC_2.27 pkey_set F
+GLIBC_2.27 strfromf32 F
+GLIBC_2.27 strfromf32x F
+GLIBC_2.27 strfromf64 F
+GLIBC_2.27 strtof32 F
+GLIBC_2.27 strtof32_l F
+GLIBC_2.27 strtof32x F
+GLIBC_2.27 strtof32x_l F
+GLIBC_2.27 strtof64 F
+GLIBC_2.27 strtof64_l F
+GLIBC_2.27 wcstof32 F
+GLIBC_2.27 wcstof32_l F
+GLIBC_2.27 wcstof32x F
+GLIBC_2.27 wcstof32x_l F
+GLIBC_2.27 wcstof64 F
+GLIBC_2.27 wcstof64_l F
+GLIBC_2.28 fcntl F
+GLIBC_2.28 fcntl64 F
+GLIBC_2.28 renameat2 F
+GLIBC_2.28 statx F
+GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_equal F
+GLIBC_2.28 thrd_sleep F
+GLIBC_2.28 thrd_yield F
+GLIBC_2.29 getcpu F
+GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
+GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
+GLIBC_2.30 getdents64 F
+GLIBC_2.30 gettid F
+GLIBC_2.30 tgkill F
+GLIBC_2.30 twalk_r F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libcrypt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libcrypt.abilist
new file mode 100644
index 0000000000..4b37b33ee5
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libcrypt.abilist
@@ -0,0 +1,7 @@
+GLIBC_2.18 crypt F
+GLIBC_2.18 crypt_r F
+GLIBC_2.18 encrypt F
+GLIBC_2.18 encrypt_r F
+GLIBC_2.18 fcrypt F
+GLIBC_2.18 setkey F
+GLIBC_2.18 setkey_r F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist
new file mode 100644
index 0000000000..46b5716dbe
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libdl.abilist
@@ -0,0 +1,9 @@
+GLIBC_2.18 dladdr F
+GLIBC_2.18 dladdr1 F
+GLIBC_2.18 dlclose F
+GLIBC_2.18 dlerror F
+GLIBC_2.18 dlinfo F
+GLIBC_2.18 dlmopen F
+GLIBC_2.18 dlopen F
+GLIBC_2.18 dlsym F
+GLIBC_2.18 dlvsym F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
new file mode 100644
index 0000000000..8dedc9a8a6
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
@@ -0,0 +1,784 @@
+GLIBC_2.18 _LIB_VERSION D 0x4
+GLIBC_2.18 __acos_finite F
+GLIBC_2.18 __acosf_finite F
+GLIBC_2.18 __acosh_finite F
+GLIBC_2.18 __acoshf_finite F
+GLIBC_2.18 __asin_finite F
+GLIBC_2.18 __asinf_finite F
+GLIBC_2.18 __atan2_finite F
+GLIBC_2.18 __atan2f_finite F
+GLIBC_2.18 __atanh_finite F
+GLIBC_2.18 __atanhf_finite F
+GLIBC_2.18 __clog10 F
+GLIBC_2.18 __clog10f F
+GLIBC_2.18 __clog10l F
+GLIBC_2.18 __cosh_finite F
+GLIBC_2.18 __coshf_finite F
+GLIBC_2.18 __exp10_finite F
+GLIBC_2.18 __exp10f_finite F
+GLIBC_2.18 __exp2_finite F
+GLIBC_2.18 __exp2f_finite F
+GLIBC_2.18 __exp_finite F
+GLIBC_2.18 __expf_finite F
+GLIBC_2.18 __finite F
+GLIBC_2.18 __finitef F
+GLIBC_2.18 __finitel F
+GLIBC_2.18 __fmod_finite F
+GLIBC_2.18 __fmodf_finite F
+GLIBC_2.18 __fpclassify F
+GLIBC_2.18 __fpclassifyf F
+GLIBC_2.18 __gamma_r_finite F
+GLIBC_2.18 __gammaf_r_finite F
+GLIBC_2.18 __hypot_finite F
+GLIBC_2.18 __hypotf_finite F
+GLIBC_2.18 __issignaling F
+GLIBC_2.18 __issignalingf F
+GLIBC_2.18 __j0_finite F
+GLIBC_2.18 __j0f_finite F
+GLIBC_2.18 __j1_finite F
+GLIBC_2.18 __j1f_finite F
+GLIBC_2.18 __jn_finite F
+GLIBC_2.18 __jnf_finite F
+GLIBC_2.18 __lgamma_r_finite F
+GLIBC_2.18 __lgammaf_r_finite F
+GLIBC_2.18 __log10_finite F
+GLIBC_2.18 __log10f_finite F
+GLIBC_2.18 __log2_finite F
+GLIBC_2.18 __log2f_finite F
+GLIBC_2.18 __log_finite F
+GLIBC_2.18 __logf_finite F
+GLIBC_2.18 __pow_finite F
+GLIBC_2.18 __powf_finite F
+GLIBC_2.18 __remainder_finite F
+GLIBC_2.18 __remainderf_finite F
+GLIBC_2.18 __scalb_finite F
+GLIBC_2.18 __scalbf_finite F
+GLIBC_2.18 __signbit F
+GLIBC_2.18 __signbitf F
+GLIBC_2.18 __sinh_finite F
+GLIBC_2.18 __sinhf_finite F
+GLIBC_2.18 __sqrt_finite F
+GLIBC_2.18 __sqrtf_finite F
+GLIBC_2.18 __y0_finite F
+GLIBC_2.18 __y0f_finite F
+GLIBC_2.18 __y1_finite F
+GLIBC_2.18 __y1f_finite F
+GLIBC_2.18 __yn_finite F
+GLIBC_2.18 __ynf_finite F
+GLIBC_2.18 acos F
+GLIBC_2.18 acosf F
+GLIBC_2.18 acosh F
+GLIBC_2.18 acoshf F
+GLIBC_2.18 acoshl F
+GLIBC_2.18 acosl F
+GLIBC_2.18 asin F
+GLIBC_2.18 asinf F
+GLIBC_2.18 asinh F
+GLIBC_2.18 asinhf F
+GLIBC_2.18 asinhl F
+GLIBC_2.18 asinl F
+GLIBC_2.18 atan F
+GLIBC_2.18 atan2 F
+GLIBC_2.18 atan2f F
+GLIBC_2.18 atan2l F
+GLIBC_2.18 atanf F
+GLIBC_2.18 atanh F
+GLIBC_2.18 atanhf F
+GLIBC_2.18 atanhl F
+GLIBC_2.18 atanl F
+GLIBC_2.18 cabs F
+GLIBC_2.18 cabsf F
+GLIBC_2.18 cabsl F
+GLIBC_2.18 cacos F
+GLIBC_2.18 cacosf F
+GLIBC_2.18 cacosh F
+GLIBC_2.18 cacoshf F
+GLIBC_2.18 cacoshl F
+GLIBC_2.18 cacosl F
+GLIBC_2.18 carg F
+GLIBC_2.18 cargf F
+GLIBC_2.18 cargl F
+GLIBC_2.18 casin F
+GLIBC_2.18 casinf F
+GLIBC_2.18 casinh F
+GLIBC_2.18 casinhf F
+GLIBC_2.18 casinhl F
+GLIBC_2.18 casinl F
+GLIBC_2.18 catan F
+GLIBC_2.18 catanf F
+GLIBC_2.18 catanh F
+GLIBC_2.18 catanhf F
+GLIBC_2.18 catanhl F
+GLIBC_2.18 catanl F
+GLIBC_2.18 cbrt F
+GLIBC_2.18 cbrtf F
+GLIBC_2.18 cbrtl F
+GLIBC_2.18 ccos F
+GLIBC_2.18 ccosf F
+GLIBC_2.18 ccosh F
+GLIBC_2.18 ccoshf F
+GLIBC_2.18 ccoshl F
+GLIBC_2.18 ccosl F
+GLIBC_2.18 ceil F
+GLIBC_2.18 ceilf F
+GLIBC_2.18 ceill F
+GLIBC_2.18 cexp F
+GLIBC_2.18 cexpf F
+GLIBC_2.18 cexpl F
+GLIBC_2.18 cimag F
+GLIBC_2.18 cimagf F
+GLIBC_2.18 cimagl F
+GLIBC_2.18 clog F
+GLIBC_2.18 clog10 F
+GLIBC_2.18 clog10f F
+GLIBC_2.18 clog10l F
+GLIBC_2.18 clogf F
+GLIBC_2.18 clogl F
+GLIBC_2.18 conj F
+GLIBC_2.18 conjf F
+GLIBC_2.18 conjl F
+GLIBC_2.18 copysign F
+GLIBC_2.18 copysignf F
+GLIBC_2.18 copysignl F
+GLIBC_2.18 cos F
+GLIBC_2.18 cosf F
+GLIBC_2.18 cosh F
+GLIBC_2.18 coshf F
+GLIBC_2.18 coshl F
+GLIBC_2.18 cosl F
+GLIBC_2.18 cpow F
+GLIBC_2.18 cpowf F
+GLIBC_2.18 cpowl F
+GLIBC_2.18 cproj F
+GLIBC_2.18 cprojf F
+GLIBC_2.18 cprojl F
+GLIBC_2.18 creal F
+GLIBC_2.18 crealf F
+GLIBC_2.18 creall F
+GLIBC_2.18 csin F
+GLIBC_2.18 csinf F
+GLIBC_2.18 csinh F
+GLIBC_2.18 csinhf F
+GLIBC_2.18 csinhl F
+GLIBC_2.18 csinl F
+GLIBC_2.18 csqrt F
+GLIBC_2.18 csqrtf F
+GLIBC_2.18 csqrtl F
+GLIBC_2.18 ctan F
+GLIBC_2.18 ctanf F
+GLIBC_2.18 ctanh F
+GLIBC_2.18 ctanhf F
+GLIBC_2.18 ctanhl F
+GLIBC_2.18 ctanl F
+GLIBC_2.18 drem F
+GLIBC_2.18 dremf F
+GLIBC_2.18 dreml F
+GLIBC_2.18 erf F
+GLIBC_2.18 erfc F
+GLIBC_2.18 erfcf F
+GLIBC_2.18 erfcl F
+GLIBC_2.18 erff F
+GLIBC_2.18 erfl F
+GLIBC_2.18 exp F
+GLIBC_2.18 exp10 F
+GLIBC_2.18 exp10f F
+GLIBC_2.18 exp10l F
+GLIBC_2.18 exp2 F
+GLIBC_2.18 exp2f F
+GLIBC_2.18 exp2l F
+GLIBC_2.18 expf F
+GLIBC_2.18 expl F
+GLIBC_2.18 expm1 F
+GLIBC_2.18 expm1f F
+GLIBC_2.18 expm1l F
+GLIBC_2.18 fabs F
+GLIBC_2.18 fabsf F
+GLIBC_2.18 fabsl F
+GLIBC_2.18 fdim F
+GLIBC_2.18 fdimf F
+GLIBC_2.18 fdiml F
+GLIBC_2.18 feclearexcept F
+GLIBC_2.18 fedisableexcept F
+GLIBC_2.18 feenableexcept F
+GLIBC_2.18 fegetenv F
+GLIBC_2.18 fegetexcept F
+GLIBC_2.18 fegetexceptflag F
+GLIBC_2.18 fegetround F
+GLIBC_2.18 feholdexcept F
+GLIBC_2.18 feraiseexcept F
+GLIBC_2.18 fesetenv F
+GLIBC_2.18 fesetexceptflag F
+GLIBC_2.18 fesetround F
+GLIBC_2.18 fetestexcept F
+GLIBC_2.18 feupdateenv F
+GLIBC_2.18 finite F
+GLIBC_2.18 finitef F
+GLIBC_2.18 finitel F
+GLIBC_2.18 floor F
+GLIBC_2.18 floorf F
+GLIBC_2.18 floorl F
+GLIBC_2.18 fma F
+GLIBC_2.18 fmaf F
+GLIBC_2.18 fmal F
+GLIBC_2.18 fmax F
+GLIBC_2.18 fmaxf F
+GLIBC_2.18 fmaxl F
+GLIBC_2.18 fmin F
+GLIBC_2.18 fminf F
+GLIBC_2.18 fminl F
+GLIBC_2.18 fmod F
+GLIBC_2.18 fmodf F
+GLIBC_2.18 fmodl F
+GLIBC_2.18 frexp F
+GLIBC_2.18 frexpf F
+GLIBC_2.18 frexpl F
+GLIBC_2.18 gamma F
+GLIBC_2.18 gammaf F
+GLIBC_2.18 gammal F
+GLIBC_2.18 hypot F
+GLIBC_2.18 hypotf F
+GLIBC_2.18 hypotl F
+GLIBC_2.18 ilogb F
+GLIBC_2.18 ilogbf F
+GLIBC_2.18 ilogbl F
+GLIBC_2.18 j0 F
+GLIBC_2.18 j0f F
+GLIBC_2.18 j0l F
+GLIBC_2.18 j1 F
+GLIBC_2.18 j1f F
+GLIBC_2.18 j1l F
+GLIBC_2.18 jn F
+GLIBC_2.18 jnf F
+GLIBC_2.18 jnl F
+GLIBC_2.18 ldexp F
+GLIBC_2.18 ldexpf F
+GLIBC_2.18 ldexpl F
+GLIBC_2.18 lgamma F
+GLIBC_2.18 lgamma_r F
+GLIBC_2.18 lgammaf F
+GLIBC_2.18 lgammaf_r F
+GLIBC_2.18 lgammal F
+GLIBC_2.18 lgammal_r F
+GLIBC_2.18 llrint F
+GLIBC_2.18 llrintf F
+GLIBC_2.18 llrintl F
+GLIBC_2.18 llround F
+GLIBC_2.18 llroundf F
+GLIBC_2.18 llroundl F
+GLIBC_2.18 log F
+GLIBC_2.18 log10 F
+GLIBC_2.18 log10f F
+GLIBC_2.18 log10l F
+GLIBC_2.18 log1p F
+GLIBC_2.18 log1pf F
+GLIBC_2.18 log1pl F
+GLIBC_2.18 log2 F
+GLIBC_2.18 log2f F
+GLIBC_2.18 log2l F
+GLIBC_2.18 logb F
+GLIBC_2.18 logbf F
+GLIBC_2.18 logbl F
+GLIBC_2.18 logf F
+GLIBC_2.18 logl F
+GLIBC_2.18 lrint F
+GLIBC_2.18 lrintf F
+GLIBC_2.18 lrintl F
+GLIBC_2.18 lround F
+GLIBC_2.18 lroundf F
+GLIBC_2.18 lroundl F
+GLIBC_2.18 matherr F
+GLIBC_2.18 modf F
+GLIBC_2.18 modff F
+GLIBC_2.18 modfl F
+GLIBC_2.18 nan F
+GLIBC_2.18 nanf F
+GLIBC_2.18 nanl F
+GLIBC_2.18 nearbyint F
+GLIBC_2.18 nearbyintf F
+GLIBC_2.18 nearbyintl F
+GLIBC_2.18 nextafter F
+GLIBC_2.18 nextafterf F
+GLIBC_2.18 nextafterl F
+GLIBC_2.18 nexttoward F
+GLIBC_2.18 nexttowardf F
+GLIBC_2.18 nexttowardl F
+GLIBC_2.18 pow F
+GLIBC_2.18 pow10 F
+GLIBC_2.18 pow10f F
+GLIBC_2.18 pow10l F
+GLIBC_2.18 powf F
+GLIBC_2.18 powl F
+GLIBC_2.18 remainder F
+GLIBC_2.18 remainderf F
+GLIBC_2.18 remainderl F
+GLIBC_2.18 remquo F
+GLIBC_2.18 remquof F
+GLIBC_2.18 remquol F
+GLIBC_2.18 rint F
+GLIBC_2.18 rintf F
+GLIBC_2.18 rintl F
+GLIBC_2.18 round F
+GLIBC_2.18 roundf F
+GLIBC_2.18 roundl F
+GLIBC_2.18 scalb F
+GLIBC_2.18 scalbf F
+GLIBC_2.18 scalbl F
+GLIBC_2.18 scalbln F
+GLIBC_2.18 scalblnf F
+GLIBC_2.18 scalblnl F
+GLIBC_2.18 scalbn F
+GLIBC_2.18 scalbnf F
+GLIBC_2.18 scalbnl F
+GLIBC_2.18 signgam D 0x4
+GLIBC_2.18 significand F
+GLIBC_2.18 significandf F
+GLIBC_2.18 significandl F
+GLIBC_2.18 sin F
+GLIBC_2.18 sincos F
+GLIBC_2.18 sincosf F
+GLIBC_2.18 sincosl F
+GLIBC_2.18 sinf F
+GLIBC_2.18 sinh F
+GLIBC_2.18 sinhf F
+GLIBC_2.18 sinhl F
+GLIBC_2.18 sinl F
+GLIBC_2.18 sqrt F
+GLIBC_2.18 sqrtf F
+GLIBC_2.18 sqrtl F
+GLIBC_2.18 tan F
+GLIBC_2.18 tanf F
+GLIBC_2.18 tanh F
+GLIBC_2.18 tanhf F
+GLIBC_2.18 tanhl F
+GLIBC_2.18 tanl F
+GLIBC_2.18 tgamma F
+GLIBC_2.18 tgammaf F
+GLIBC_2.18 tgammal F
+GLIBC_2.18 trunc F
+GLIBC_2.18 truncf F
+GLIBC_2.18 truncl F
+GLIBC_2.18 y0 F
+GLIBC_2.18 y0f F
+GLIBC_2.18 y0l F
+GLIBC_2.18 y1 F
+GLIBC_2.18 y1f F
+GLIBC_2.18 y1l F
+GLIBC_2.18 yn F
+GLIBC_2.18 ynf F
+GLIBC_2.18 ynl F
+GLIBC_2.23 __signgam D 0x4
+GLIBC_2.23 lgamma F
+GLIBC_2.23 lgammaf F
+GLIBC_2.23 lgammal F
+GLIBC_2.24 nextdown F
+GLIBC_2.24 nextdownf F
+GLIBC_2.24 nextdownl F
+GLIBC_2.24 nextup F
+GLIBC_2.24 nextupf F
+GLIBC_2.24 nextupl F
+GLIBC_2.25 __iseqsig F
+GLIBC_2.25 __iseqsigf F
+GLIBC_2.25 canonicalize F
+GLIBC_2.25 canonicalizef F
+GLIBC_2.25 canonicalizel F
+GLIBC_2.25 fegetmode F
+GLIBC_2.25 fesetexcept F
+GLIBC_2.25 fesetmode F
+GLIBC_2.25 fetestexceptflag F
+GLIBC_2.25 fmaxmag F
+GLIBC_2.25 fmaxmagf F
+GLIBC_2.25 fmaxmagl F
+GLIBC_2.25 fminmag F
+GLIBC_2.25 fminmagf F
+GLIBC_2.25 fminmagl F
+GLIBC_2.25 fromfp F
+GLIBC_2.25 fromfpf F
+GLIBC_2.25 fromfpl F
+GLIBC_2.25 fromfpx F
+GLIBC_2.25 fromfpxf F
+GLIBC_2.25 fromfpxl F
+GLIBC_2.25 getpayload F
+GLIBC_2.25 getpayloadf F
+GLIBC_2.25 getpayloadl F
+GLIBC_2.25 llogb F
+GLIBC_2.25 llogbf F
+GLIBC_2.25 llogbl F
+GLIBC_2.25 roundeven F
+GLIBC_2.25 roundevenf F
+GLIBC_2.25 roundevenl F
+GLIBC_2.25 setpayload F
+GLIBC_2.25 setpayloadf F
+GLIBC_2.25 setpayloadl F
+GLIBC_2.25 setpayloadsig F
+GLIBC_2.25 setpayloadsigf F
+GLIBC_2.25 setpayloadsigl F
+GLIBC_2.25 totalorder F
+GLIBC_2.25 totalorderf F
+GLIBC_2.25 totalorderl F
+GLIBC_2.25 totalordermag F
+GLIBC_2.25 totalordermagf F
+GLIBC_2.25 totalordermagl F
+GLIBC_2.25 ufromfp F
+GLIBC_2.25 ufromfpf F
+GLIBC_2.25 ufromfpl F
+GLIBC_2.25 ufromfpx F
+GLIBC_2.25 ufromfpxf F
+GLIBC_2.25 ufromfpxl F
+GLIBC_2.27 acosf32 F
+GLIBC_2.27 acosf32x F
+GLIBC_2.27 acosf64 F
+GLIBC_2.27 acoshf32 F
+GLIBC_2.27 acoshf32x F
+GLIBC_2.27 acoshf64 F
+GLIBC_2.27 asinf32 F
+GLIBC_2.27 asinf32x F
+GLIBC_2.27 asinf64 F
+GLIBC_2.27 asinhf32 F
+GLIBC_2.27 asinhf32x F
+GLIBC_2.27 asinhf64 F
+GLIBC_2.27 atan2f32 F
+GLIBC_2.27 atan2f32x F
+GLIBC_2.27 atan2f64 F
+GLIBC_2.27 atanf32 F
+GLIBC_2.27 atanf32x F
+GLIBC_2.27 atanf64 F
+GLIBC_2.27 atanhf32 F
+GLIBC_2.27 atanhf32x F
+GLIBC_2.27 atanhf64 F
+GLIBC_2.27 cabsf32 F
+GLIBC_2.27 cabsf32x F
+GLIBC_2.27 cabsf64 F
+GLIBC_2.27 cacosf32 F
+GLIBC_2.27 cacosf32x F
+GLIBC_2.27 cacosf64 F
+GLIBC_2.27 cacoshf32 F
+GLIBC_2.27 cacoshf32x F
+GLIBC_2.27 cacoshf64 F
+GLIBC_2.27 canonicalizef32 F
+GLIBC_2.27 canonicalizef32x F
+GLIBC_2.27 canonicalizef64 F
+GLIBC_2.27 cargf32 F
+GLIBC_2.27 cargf32x F
+GLIBC_2.27 cargf64 F
+GLIBC_2.27 casinf32 F
+GLIBC_2.27 casinf32x F
+GLIBC_2.27 casinf64 F
+GLIBC_2.27 casinhf32 F
+GLIBC_2.27 casinhf32x F
+GLIBC_2.27 casinhf64 F
+GLIBC_2.27 catanf32 F
+GLIBC_2.27 catanf32x F
+GLIBC_2.27 catanf64 F
+GLIBC_2.27 catanhf32 F
+GLIBC_2.27 catanhf32x F
+GLIBC_2.27 catanhf64 F
+GLIBC_2.27 cbrtf32 F
+GLIBC_2.27 cbrtf32x F
+GLIBC_2.27 cbrtf64 F
+GLIBC_2.27 ccosf32 F
+GLIBC_2.27 ccosf32x F
+GLIBC_2.27 ccosf64 F
+GLIBC_2.27 ccoshf32 F
+GLIBC_2.27 ccoshf32x F
+GLIBC_2.27 ccoshf64 F
+GLIBC_2.27 ceilf32 F
+GLIBC_2.27 ceilf32x F
+GLIBC_2.27 ceilf64 F
+GLIBC_2.27 cexpf32 F
+GLIBC_2.27 cexpf32x F
+GLIBC_2.27 cexpf64 F
+GLIBC_2.27 cimagf32 F
+GLIBC_2.27 cimagf32x F
+GLIBC_2.27 cimagf64 F
+GLIBC_2.27 clog10f32 F
+GLIBC_2.27 clog10f32x F
+GLIBC_2.27 clog10f64 F
+GLIBC_2.27 clogf32 F
+GLIBC_2.27 clogf32x F
+GLIBC_2.27 clogf64 F
+GLIBC_2.27 conjf32 F
+GLIBC_2.27 conjf32x F
+GLIBC_2.27 conjf64 F
+GLIBC_2.27 copysignf32 F
+GLIBC_2.27 copysignf32x F
+GLIBC_2.27 copysignf64 F
+GLIBC_2.27 cosf32 F
+GLIBC_2.27 cosf32x F
+GLIBC_2.27 cosf64 F
+GLIBC_2.27 coshf32 F
+GLIBC_2.27 coshf32x F
+GLIBC_2.27 coshf64 F
+GLIBC_2.27 cpowf32 F
+GLIBC_2.27 cpowf32x F
+GLIBC_2.27 cpowf64 F
+GLIBC_2.27 cprojf32 F
+GLIBC_2.27 cprojf32x F
+GLIBC_2.27 cprojf64 F
+GLIBC_2.27 crealf32 F
+GLIBC_2.27 crealf32x F
+GLIBC_2.27 crealf64 F
+GLIBC_2.27 csinf32 F
+GLIBC_2.27 csinf32x F
+GLIBC_2.27 csinf64 F
+GLIBC_2.27 csinhf32 F
+GLIBC_2.27 csinhf32x F
+GLIBC_2.27 csinhf64 F
+GLIBC_2.27 csqrtf32 F
+GLIBC_2.27 csqrtf32x F
+GLIBC_2.27 csqrtf64 F
+GLIBC_2.27 ctanf32 F
+GLIBC_2.27 ctanf32x F
+GLIBC_2.27 ctanf64 F
+GLIBC_2.27 ctanhf32 F
+GLIBC_2.27 ctanhf32x F
+GLIBC_2.27 ctanhf64 F
+GLIBC_2.27 erfcf32 F
+GLIBC_2.27 erfcf32x F
+GLIBC_2.27 erfcf64 F
+GLIBC_2.27 erff32 F
+GLIBC_2.27 erff32x F
+GLIBC_2.27 erff64 F
+GLIBC_2.27 exp10f32 F
+GLIBC_2.27 exp10f32x F
+GLIBC_2.27 exp10f64 F
+GLIBC_2.27 exp2f F
+GLIBC_2.27 exp2f32 F
+GLIBC_2.27 exp2f32x F
+GLIBC_2.27 exp2f64 F
+GLIBC_2.27 expf F
+GLIBC_2.27 expf32 F
+GLIBC_2.27 expf32x F
+GLIBC_2.27 expf64 F
+GLIBC_2.27 expm1f32 F
+GLIBC_2.27 expm1f32x F
+GLIBC_2.27 expm1f64 F
+GLIBC_2.27 fabsf32 F
+GLIBC_2.27 fabsf32x F
+GLIBC_2.27 fabsf64 F
+GLIBC_2.27 fdimf32 F
+GLIBC_2.27 fdimf32x F
+GLIBC_2.27 fdimf64 F
+GLIBC_2.27 floorf32 F
+GLIBC_2.27 floorf32x F
+GLIBC_2.27 floorf64 F
+GLIBC_2.27 fmaf32 F
+GLIBC_2.27 fmaf32x F
+GLIBC_2.27 fmaf64 F
+GLIBC_2.27 fmaxf32 F
+GLIBC_2.27 fmaxf32x F
+GLIBC_2.27 fmaxf64 F
+GLIBC_2.27 fmaxmagf32 F
+GLIBC_2.27 fmaxmagf32x F
+GLIBC_2.27 fmaxmagf64 F
+GLIBC_2.27 fminf32 F
+GLIBC_2.27 fminf32x F
+GLIBC_2.27 fminf64 F
+GLIBC_2.27 fminmagf32 F
+GLIBC_2.27 fminmagf32x F
+GLIBC_2.27 fminmagf64 F
+GLIBC_2.27 fmodf32 F
+GLIBC_2.27 fmodf32x F
+GLIBC_2.27 fmodf64 F
+GLIBC_2.27 frexpf32 F
+GLIBC_2.27 frexpf32x F
+GLIBC_2.27 frexpf64 F
+GLIBC_2.27 fromfpf32 F
+GLIBC_2.27 fromfpf32x F
+GLIBC_2.27 fromfpf64 F
+GLIBC_2.27 fromfpxf32 F
+GLIBC_2.27 fromfpxf32x F
+GLIBC_2.27 fromfpxf64 F
+GLIBC_2.27 getpayloadf32 F
+GLIBC_2.27 getpayloadf32x F
+GLIBC_2.27 getpayloadf64 F
+GLIBC_2.27 hypotf32 F
+GLIBC_2.27 hypotf32x F
+GLIBC_2.27 hypotf64 F
+GLIBC_2.27 ilogbf32 F
+GLIBC_2.27 ilogbf32x F
+GLIBC_2.27 ilogbf64 F
+GLIBC_2.27 j0f32 F
+GLIBC_2.27 j0f32x F
+GLIBC_2.27 j0f64 F
+GLIBC_2.27 j1f32 F
+GLIBC_2.27 j1f32x F
+GLIBC_2.27 j1f64 F
+GLIBC_2.27 jnf32 F
+GLIBC_2.27 jnf32x F
+GLIBC_2.27 jnf64 F
+GLIBC_2.27 ldexpf32 F
+GLIBC_2.27 ldexpf32x F
+GLIBC_2.27 ldexpf64 F
+GLIBC_2.27 lgammaf32 F
+GLIBC_2.27 lgammaf32_r F
+GLIBC_2.27 lgammaf32x F
+GLIBC_2.27 lgammaf32x_r F
+GLIBC_2.27 lgammaf64 F
+GLIBC_2.27 lgammaf64_r F
+GLIBC_2.27 llogbf32 F
+GLIBC_2.27 llogbf32x F
+GLIBC_2.27 llogbf64 F
+GLIBC_2.27 llrintf32 F
+GLIBC_2.27 llrintf32x F
+GLIBC_2.27 llrintf64 F
+GLIBC_2.27 llroundf32 F
+GLIBC_2.27 llroundf32x F
+GLIBC_2.27 llroundf64 F
+GLIBC_2.27 log10f32 F
+GLIBC_2.27 log10f32x F
+GLIBC_2.27 log10f64 F
+GLIBC_2.27 log1pf32 F
+GLIBC_2.27 log1pf32x F
+GLIBC_2.27 log1pf64 F
+GLIBC_2.27 log2f F
+GLIBC_2.27 log2f32 F
+GLIBC_2.27 log2f32x F
+GLIBC_2.27 log2f64 F
+GLIBC_2.27 logbf32 F
+GLIBC_2.27 logbf32x F
+GLIBC_2.27 logbf64 F
+GLIBC_2.27 logf F
+GLIBC_2.27 logf32 F
+GLIBC_2.27 logf32x F
+GLIBC_2.27 logf64 F
+GLIBC_2.27 lrintf32 F
+GLIBC_2.27 lrintf32x F
+GLIBC_2.27 lrintf64 F
+GLIBC_2.27 lroundf32 F
+GLIBC_2.27 lroundf32x F
+GLIBC_2.27 lroundf64 F
+GLIBC_2.27 modff32 F
+GLIBC_2.27 modff32x F
+GLIBC_2.27 modff64 F
+GLIBC_2.27 nanf32 F
+GLIBC_2.27 nanf32x F
+GLIBC_2.27 nanf64 F
+GLIBC_2.27 nearbyintf32 F
+GLIBC_2.27 nearbyintf32x F
+GLIBC_2.27 nearbyintf64 F
+GLIBC_2.27 nextafterf32 F
+GLIBC_2.27 nextafterf32x F
+GLIBC_2.27 nextafterf64 F
+GLIBC_2.27 nextdownf32 F
+GLIBC_2.27 nextdownf32x F
+GLIBC_2.27 nextdownf64 F
+GLIBC_2.27 nextupf32 F
+GLIBC_2.27 nextupf32x F
+GLIBC_2.27 nextupf64 F
+GLIBC_2.27 powf F
+GLIBC_2.27 powf32 F
+GLIBC_2.27 powf32x F
+GLIBC_2.27 powf64 F
+GLIBC_2.27 remainderf32 F
+GLIBC_2.27 remainderf32x F
+GLIBC_2.27 remainderf64 F
+GLIBC_2.27 remquof32 F
+GLIBC_2.27 remquof32x F
+GLIBC_2.27 remquof64 F
+GLIBC_2.27 rintf32 F
+GLIBC_2.27 rintf32x F
+GLIBC_2.27 rintf64 F
+GLIBC_2.27 roundevenf32 F
+GLIBC_2.27 roundevenf32x F
+GLIBC_2.27 roundevenf64 F
+GLIBC_2.27 roundf32 F
+GLIBC_2.27 roundf32x F
+GLIBC_2.27 roundf64 F
+GLIBC_2.27 scalblnf32 F
+GLIBC_2.27 scalblnf32x F
+GLIBC_2.27 scalblnf64 F
+GLIBC_2.27 scalbnf32 F
+GLIBC_2.27 scalbnf32x F
+GLIBC_2.27 scalbnf64 F
+GLIBC_2.27 setpayloadf32 F
+GLIBC_2.27 setpayloadf32x F
+GLIBC_2.27 setpayloadf64 F
+GLIBC_2.27 setpayloadsigf32 F
+GLIBC_2.27 setpayloadsigf32x F
+GLIBC_2.27 setpayloadsigf64 F
+GLIBC_2.27 sincosf32 F
+GLIBC_2.27 sincosf32x F
+GLIBC_2.27 sincosf64 F
+GLIBC_2.27 sinf32 F
+GLIBC_2.27 sinf32x F
+GLIBC_2.27 sinf64 F
+GLIBC_2.27 sinhf32 F
+GLIBC_2.27 sinhf32x F
+GLIBC_2.27 sinhf64 F
+GLIBC_2.27 sqrtf32 F
+GLIBC_2.27 sqrtf32x F
+GLIBC_2.27 sqrtf64 F
+GLIBC_2.27 tanf32 F
+GLIBC_2.27 tanf32x F
+GLIBC_2.27 tanf64 F
+GLIBC_2.27 tanhf32 F
+GLIBC_2.27 tanhf32x F
+GLIBC_2.27 tanhf64 F
+GLIBC_2.27 tgammaf32 F
+GLIBC_2.27 tgammaf32x F
+GLIBC_2.27 tgammaf64 F
+GLIBC_2.27 totalorderf32 F
+GLIBC_2.27 totalorderf32x F
+GLIBC_2.27 totalorderf64 F
+GLIBC_2.27 totalordermagf32 F
+GLIBC_2.27 totalordermagf32x F
+GLIBC_2.27 totalordermagf64 F
+GLIBC_2.27 truncf32 F
+GLIBC_2.27 truncf32x F
+GLIBC_2.27 truncf64 F
+GLIBC_2.27 ufromfpf32 F
+GLIBC_2.27 ufromfpf32x F
+GLIBC_2.27 ufromfpf64 F
+GLIBC_2.27 ufromfpxf32 F
+GLIBC_2.27 ufromfpxf32x F
+GLIBC_2.27 ufromfpxf64 F
+GLIBC_2.27 y0f32 F
+GLIBC_2.27 y0f32x F
+GLIBC_2.27 y0f64 F
+GLIBC_2.27 y1f32 F
+GLIBC_2.27 y1f32x F
+GLIBC_2.27 y1f64 F
+GLIBC_2.27 ynf32 F
+GLIBC_2.27 ynf32x F
+GLIBC_2.27 ynf64 F
+GLIBC_2.28 daddl F
+GLIBC_2.28 ddivl F
+GLIBC_2.28 dmull F
+GLIBC_2.28 dsubl F
+GLIBC_2.28 f32addf32x F
+GLIBC_2.28 f32addf64 F
+GLIBC_2.28 f32divf32x F
+GLIBC_2.28 f32divf64 F
+GLIBC_2.28 f32mulf32x F
+GLIBC_2.28 f32mulf64 F
+GLIBC_2.28 f32subf32x F
+GLIBC_2.28 f32subf64 F
+GLIBC_2.28 f32xaddf64 F
+GLIBC_2.28 f32xdivf64 F
+GLIBC_2.28 f32xmulf64 F
+GLIBC_2.28 f32xsubf64 F
+GLIBC_2.28 fadd F
+GLIBC_2.28 faddl F
+GLIBC_2.28 fdiv F
+GLIBC_2.28 fdivl F
+GLIBC_2.28 fmul F
+GLIBC_2.28 fmull F
+GLIBC_2.28 fsub F
+GLIBC_2.28 fsubl F
+GLIBC_2.29 exp F
+GLIBC_2.29 exp2 F
+GLIBC_2.29 log F
+GLIBC_2.29 log2 F
+GLIBC_2.29 pow F
+GLIBC_2.31 totalorder F
+GLIBC_2.31 totalorderf F
+GLIBC_2.31 totalorderf32 F
+GLIBC_2.31 totalorderf32x F
+GLIBC_2.31 totalorderf64 F
+GLIBC_2.31 totalorderl F
+GLIBC_2.31 totalordermag F
+GLIBC_2.31 totalordermagf F
+GLIBC_2.31 totalordermagf32 F
+GLIBC_2.31 totalordermagf32x F
+GLIBC_2.31 totalordermagf64 F
+GLIBC_2.31 totalordermagl F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libnsl.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libnsl.abilist
new file mode 100644
index 0000000000..48a9e04eb8
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libnsl.abilist
@@ -0,0 +1,121 @@
+GLIBC_2.18 __free_fdresult F
+GLIBC_2.18 __nis_default_access F
+GLIBC_2.18 __nis_default_group F
+GLIBC_2.18 __nis_default_owner F
+GLIBC_2.18 __nis_default_ttl F
+GLIBC_2.18 __nis_finddirectory F
+GLIBC_2.18 __nis_hash F
+GLIBC_2.18 __nisbind_connect F
+GLIBC_2.18 __nisbind_create F
+GLIBC_2.18 __nisbind_destroy F
+GLIBC_2.18 __nisbind_next F
+GLIBC_2.18 __yp_check F
+GLIBC_2.18 nis_add F
+GLIBC_2.18 nis_add_entry F
+GLIBC_2.18 nis_addmember F
+GLIBC_2.18 nis_checkpoint F
+GLIBC_2.18 nis_clone_directory F
+GLIBC_2.18 nis_clone_object F
+GLIBC_2.18 nis_clone_result F
+GLIBC_2.18 nis_creategroup F
+GLIBC_2.18 nis_destroy_object F
+GLIBC_2.18 nis_destroygroup F
+GLIBC_2.18 nis_dir_cmp F
+GLIBC_2.18 nis_domain_of F
+GLIBC_2.18 nis_domain_of_r F
+GLIBC_2.18 nis_first_entry F
+GLIBC_2.18 nis_free_directory F
+GLIBC_2.18 nis_free_object F
+GLIBC_2.18 nis_free_request F
+GLIBC_2.18 nis_freenames F
+GLIBC_2.18 nis_freeresult F
+GLIBC_2.18 nis_freeservlist F
+GLIBC_2.18 nis_freetags F
+GLIBC_2.18 nis_getnames F
+GLIBC_2.18 nis_getservlist F
+GLIBC_2.18 nis_ismember F
+GLIBC_2.18 nis_leaf_of F
+GLIBC_2.18 nis_leaf_of_r F
+GLIBC_2.18 nis_lerror F
+GLIBC_2.18 nis_list F
+GLIBC_2.18 nis_local_directory F
+GLIBC_2.18 nis_local_group F
+GLIBC_2.18 nis_local_host F
+GLIBC_2.18 nis_local_principal F
+GLIBC_2.18 nis_lookup F
+GLIBC_2.18 nis_mkdir F
+GLIBC_2.18 nis_modify F
+GLIBC_2.18 nis_modify_entry F
+GLIBC_2.18 nis_name_of F
+GLIBC_2.18 nis_name_of_r F
+GLIBC_2.18 nis_next_entry F
+GLIBC_2.18 nis_perror F
+GLIBC_2.18 nis_ping F
+GLIBC_2.18 nis_print_directory F
+GLIBC_2.18 nis_print_entry F
+GLIBC_2.18 nis_print_group F
+GLIBC_2.18 nis_print_group_entry F
+GLIBC_2.18 nis_print_link F
+GLIBC_2.18 nis_print_object F
+GLIBC_2.18 nis_print_result F
+GLIBC_2.18 nis_print_rights F
+GLIBC_2.18 nis_print_table F
+GLIBC_2.18 nis_read_obj F
+GLIBC_2.18 nis_remove F
+GLIBC_2.18 nis_remove_entry F
+GLIBC_2.18 nis_removemember F
+GLIBC_2.18 nis_rmdir F
+GLIBC_2.18 nis_servstate F
+GLIBC_2.18 nis_sperrno F
+GLIBC_2.18 nis_sperror F
+GLIBC_2.18 nis_sperror_r F
+GLIBC_2.18 nis_stats F
+GLIBC_2.18 nis_verifygroup F
+GLIBC_2.18 nis_write_obj F
+GLIBC_2.18 readColdStartFile F
+GLIBC_2.18 writeColdStartFile F
+GLIBC_2.18 xdr_cback_data F
+GLIBC_2.18 xdr_domainname F
+GLIBC_2.18 xdr_keydat F
+GLIBC_2.18 xdr_mapname F
+GLIBC_2.18 xdr_obj_p F
+GLIBC_2.18 xdr_peername F
+GLIBC_2.18 xdr_valdat F
+GLIBC_2.18 xdr_yp_buf F
+GLIBC_2.18 xdr_ypall F
+GLIBC_2.18 xdr_ypbind_binding F
+GLIBC_2.18 xdr_ypbind_resp F
+GLIBC_2.18 xdr_ypbind_resptype F
+GLIBC_2.18 xdr_ypbind_setdom F
+GLIBC_2.18 xdr_ypdelete_args F
+GLIBC_2.18 xdr_ypmap_parms F
+GLIBC_2.18 xdr_ypmaplist F
+GLIBC_2.18 xdr_yppush_status F
+GLIBC_2.18 xdr_yppushresp_xfr F
+GLIBC_2.18 xdr_ypreq_key F
+GLIBC_2.18 xdr_ypreq_nokey F
+GLIBC_2.18 xdr_ypreq_xfr F
+GLIBC_2.18 xdr_ypresp_all F
+GLIBC_2.18 xdr_ypresp_key_val F
+GLIBC_2.18 xdr_ypresp_maplist F
+GLIBC_2.18 xdr_ypresp_master F
+GLIBC_2.18 xdr_ypresp_order F
+GLIBC_2.18 xdr_ypresp_val F
+GLIBC_2.18 xdr_ypresp_xfr F
+GLIBC_2.18 xdr_ypstat F
+GLIBC_2.18 xdr_ypupdate_args F
+GLIBC_2.18 xdr_ypxfrstat F
+GLIBC_2.18 yp_all F
+GLIBC_2.18 yp_bind F
+GLIBC_2.18 yp_first F
+GLIBC_2.18 yp_get_default_domain F
+GLIBC_2.18 yp_maplist F
+GLIBC_2.18 yp_master F
+GLIBC_2.18 yp_match F
+GLIBC_2.18 yp_next F
+GLIBC_2.18 yp_order F
+GLIBC_2.18 yp_unbind F
+GLIBC_2.18 yp_update F
+GLIBC_2.18 ypbinderr_string F
+GLIBC_2.18 yperr_string F
+GLIBC_2.18 ypprot_err F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
new file mode 100644
index 0000000000..bf777df285
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
@@ -0,0 +1,237 @@
+GLIBC_2.18 _IO_flockfile F
+GLIBC_2.18 _IO_ftrylockfile F
+GLIBC_2.18 _IO_funlockfile F
+GLIBC_2.18 __close F
+GLIBC_2.18 __connect F
+GLIBC_2.18 __errno_location F
+GLIBC_2.18 __fcntl F
+GLIBC_2.18 __fork F
+GLIBC_2.18 __h_errno_location F
+GLIBC_2.18 __libc_allocate_rtsig F
+GLIBC_2.18 __libc_current_sigrtmax F
+GLIBC_2.18 __libc_current_sigrtmin F
+GLIBC_2.18 __lseek F
+GLIBC_2.18 __open F
+GLIBC_2.18 __open64 F
+GLIBC_2.18 __pread64 F
+GLIBC_2.18 __pthread_cleanup_routine F
+GLIBC_2.18 __pthread_getspecific F
+GLIBC_2.18 __pthread_key_create F
+GLIBC_2.18 __pthread_mutex_destroy F
+GLIBC_2.18 __pthread_mutex_init F
+GLIBC_2.18 __pthread_mutex_lock F
+GLIBC_2.18 __pthread_mutex_trylock F
+GLIBC_2.18 __pthread_mutex_unlock F
+GLIBC_2.18 __pthread_mutexattr_destroy F
+GLIBC_2.18 __pthread_mutexattr_init F
+GLIBC_2.18 __pthread_mutexattr_settype F
+GLIBC_2.18 __pthread_once F
+GLIBC_2.18 __pthread_register_cancel F
+GLIBC_2.18 __pthread_register_cancel_defer F
+GLIBC_2.18 __pthread_rwlock_destroy F
+GLIBC_2.18 __pthread_rwlock_init F
+GLIBC_2.18 __pthread_rwlock_rdlock F
+GLIBC_2.18 __pthread_rwlock_tryrdlock F
+GLIBC_2.18 __pthread_rwlock_trywrlock F
+GLIBC_2.18 __pthread_rwlock_unlock F
+GLIBC_2.18 __pthread_rwlock_wrlock F
+GLIBC_2.18 __pthread_setspecific F
+GLIBC_2.18 __pthread_unregister_cancel F
+GLIBC_2.18 __pthread_unregister_cancel_restore F
+GLIBC_2.18 __pthread_unwind_next F
+GLIBC_2.18 __pwrite64 F
+GLIBC_2.18 __read F
+GLIBC_2.18 __res_state F
+GLIBC_2.18 __send F
+GLIBC_2.18 __sigaction F
+GLIBC_2.18 __wait F
+GLIBC_2.18 __write F
+GLIBC_2.18 _pthread_cleanup_pop F
+GLIBC_2.18 _pthread_cleanup_pop_restore F
+GLIBC_2.18 _pthread_cleanup_push F
+GLIBC_2.18 _pthread_cleanup_push_defer F
+GLIBC_2.18 accept F
+GLIBC_2.18 close F
+GLIBC_2.18 connect F
+GLIBC_2.18 fcntl F
+GLIBC_2.18 flockfile F
+GLIBC_2.18 fork F
+GLIBC_2.18 fsync F
+GLIBC_2.18 ftrylockfile F
+GLIBC_2.18 funlockfile F
+GLIBC_2.18 longjmp F
+GLIBC_2.18 lseek F
+GLIBC_2.18 lseek64 F
+GLIBC_2.18 msync F
+GLIBC_2.18 open F
+GLIBC_2.18 open64 F
+GLIBC_2.18 pause F
+GLIBC_2.18 pread F
+GLIBC_2.18 pread64 F
+GLIBC_2.18 pthread_attr_getaffinity_np F
+GLIBC_2.18 pthread_attr_getguardsize F
+GLIBC_2.18 pthread_attr_getschedpolicy F
+GLIBC_2.18 pthread_attr_getscope F
+GLIBC_2.18 pthread_attr_getstack F
+GLIBC_2.18 pthread_attr_getstackaddr F
+GLIBC_2.18 pthread_attr_getstacksize F
+GLIBC_2.18 pthread_attr_setaffinity_np F
+GLIBC_2.18 pthread_attr_setguardsize F
+GLIBC_2.18 pthread_attr_setschedpolicy F
+GLIBC_2.18 pthread_attr_setscope F
+GLIBC_2.18 pthread_attr_setstack F
+GLIBC_2.18 pthread_attr_setstackaddr F
+GLIBC_2.18 pthread_attr_setstacksize F
+GLIBC_2.18 pthread_barrier_destroy F
+GLIBC_2.18 pthread_barrier_init F
+GLIBC_2.18 pthread_barrier_wait F
+GLIBC_2.18 pthread_barrierattr_destroy F
+GLIBC_2.18 pthread_barrierattr_getpshared F
+GLIBC_2.18 pthread_barrierattr_init F
+GLIBC_2.18 pthread_barrierattr_setpshared F
+GLIBC_2.18 pthread_cancel F
+GLIBC_2.18 pthread_cond_broadcast F
+GLIBC_2.18 pthread_cond_destroy F
+GLIBC_2.18 pthread_cond_init F
+GLIBC_2.18 pthread_cond_signal F
+GLIBC_2.18 pthread_cond_timedwait F
+GLIBC_2.18 pthread_cond_wait F
+GLIBC_2.18 pthread_condattr_destroy F
+GLIBC_2.18 pthread_condattr_getclock F
+GLIBC_2.18 pthread_condattr_getpshared F
+GLIBC_2.18 pthread_condattr_init F
+GLIBC_2.18 pthread_condattr_setclock F
+GLIBC_2.18 pthread_condattr_setpshared F
+GLIBC_2.18 pthread_create F
+GLIBC_2.18 pthread_detach F
+GLIBC_2.18 pthread_exit F
+GLIBC_2.18 pthread_getaffinity_np F
+GLIBC_2.18 pthread_getattr_default_np F
+GLIBC_2.18 pthread_getattr_np F
+GLIBC_2.18 pthread_getconcurrency F
+GLIBC_2.18 pthread_getcpuclockid F
+GLIBC_2.18 pthread_getname_np F
+GLIBC_2.18 pthread_getschedparam F
+GLIBC_2.18 pthread_getspecific F
+GLIBC_2.18 pthread_join F
+GLIBC_2.18 pthread_key_create F
+GLIBC_2.18 pthread_key_delete F
+GLIBC_2.18 pthread_kill F
+GLIBC_2.18 pthread_kill_other_threads_np F
+GLIBC_2.18 pthread_mutex_consistent F
+GLIBC_2.18 pthread_mutex_consistent_np F
+GLIBC_2.18 pthread_mutex_destroy F
+GLIBC_2.18 pthread_mutex_getprioceiling F
+GLIBC_2.18 pthread_mutex_init F
+GLIBC_2.18 pthread_mutex_lock F
+GLIBC_2.18 pthread_mutex_setprioceiling F
+GLIBC_2.18 pthread_mutex_timedlock F
+GLIBC_2.18 pthread_mutex_trylock F
+GLIBC_2.18 pthread_mutex_unlock F
+GLIBC_2.18 pthread_mutexattr_destroy F
+GLIBC_2.18 pthread_mutexattr_getkind_np F
+GLIBC_2.18 pthread_mutexattr_getprioceiling F
+GLIBC_2.18 pthread_mutexattr_getprotocol F
+GLIBC_2.18 pthread_mutexattr_getpshared F
+GLIBC_2.18 pthread_mutexattr_getrobust F
+GLIBC_2.18 pthread_mutexattr_getrobust_np F
+GLIBC_2.18 pthread_mutexattr_gettype F
+GLIBC_2.18 pthread_mutexattr_init F
+GLIBC_2.18 pthread_mutexattr_setkind_np F
+GLIBC_2.18 pthread_mutexattr_setprioceiling F
+GLIBC_2.18 pthread_mutexattr_setprotocol F
+GLIBC_2.18 pthread_mutexattr_setpshared F
+GLIBC_2.18 pthread_mutexattr_setrobust F
+GLIBC_2.18 pthread_mutexattr_setrobust_np F
+GLIBC_2.18 pthread_mutexattr_settype F
+GLIBC_2.18 pthread_once F
+GLIBC_2.18 pthread_rwlock_destroy F
+GLIBC_2.18 pthread_rwlock_init F
+GLIBC_2.18 pthread_rwlock_rdlock F
+GLIBC_2.18 pthread_rwlock_timedrdlock F
+GLIBC_2.18 pthread_rwlock_timedwrlock F
+GLIBC_2.18 pthread_rwlock_tryrdlock F
+GLIBC_2.18 pthread_rwlock_trywrlock F
+GLIBC_2.18 pthread_rwlock_unlock F
+GLIBC_2.18 pthread_rwlock_wrlock F
+GLIBC_2.18 pthread_rwlockattr_destroy F
+GLIBC_2.18 pthread_rwlockattr_getkind_np F
+GLIBC_2.18 pthread_rwlockattr_getpshared F
+GLIBC_2.18 pthread_rwlockattr_init F
+GLIBC_2.18 pthread_rwlockattr_setkind_np F
+GLIBC_2.18 pthread_rwlockattr_setpshared F
+GLIBC_2.18 pthread_setaffinity_np F
+GLIBC_2.18 pthread_setattr_default_np F
+GLIBC_2.18 pthread_setcancelstate F
+GLIBC_2.18 pthread_setcanceltype F
+GLIBC_2.18 pthread_setconcurrency F
+GLIBC_2.18 pthread_setname_np F
+GLIBC_2.18 pthread_setschedparam F
+GLIBC_2.18 pthread_setschedprio F
+GLIBC_2.18 pthread_setspecific F
+GLIBC_2.18 pthread_sigmask F
+GLIBC_2.18 pthread_sigqueue F
+GLIBC_2.18 pthread_spin_destroy F
+GLIBC_2.18 pthread_spin_init F
+GLIBC_2.18 pthread_spin_lock F
+GLIBC_2.18 pthread_spin_trylock F
+GLIBC_2.18 pthread_spin_unlock F
+GLIBC_2.18 pthread_testcancel F
+GLIBC_2.18 pthread_timedjoin_np F
+GLIBC_2.18 pthread_tryjoin_np F
+GLIBC_2.18 pthread_yield F
+GLIBC_2.18 pwrite F
+GLIBC_2.18 pwrite64 F
+GLIBC_2.18 raise F
+GLIBC_2.18 read F
+GLIBC_2.18 recv F
+GLIBC_2.18 recvfrom F
+GLIBC_2.18 recvmsg F
+GLIBC_2.18 sem_close F
+GLIBC_2.18 sem_destroy F
+GLIBC_2.18 sem_getvalue F
+GLIBC_2.18 sem_init F
+GLIBC_2.18 sem_open F
+GLIBC_2.18 sem_post F
+GLIBC_2.18 sem_timedwait F
+GLIBC_2.18 sem_trywait F
+GLIBC_2.18 sem_unlink F
+GLIBC_2.18 sem_wait F
+GLIBC_2.18 send F
+GLIBC_2.18 sendmsg F
+GLIBC_2.18 sendto F
+GLIBC_2.18 sigaction F
+GLIBC_2.18 siglongjmp F
+GLIBC_2.18 sigwait F
+GLIBC_2.18 system F
+GLIBC_2.18 tcdrain F
+GLIBC_2.18 wait F
+GLIBC_2.18 waitpid F
+GLIBC_2.18 write F
+GLIBC_2.28 call_once F
+GLIBC_2.28 cnd_broadcast F
+GLIBC_2.28 cnd_destroy F
+GLIBC_2.28 cnd_init F
+GLIBC_2.28 cnd_signal F
+GLIBC_2.28 cnd_timedwait F
+GLIBC_2.28 cnd_wait F
+GLIBC_2.28 mtx_destroy F
+GLIBC_2.28 mtx_init F
+GLIBC_2.28 mtx_lock F
+GLIBC_2.28 mtx_timedlock F
+GLIBC_2.28 mtx_trylock F
+GLIBC_2.28 mtx_unlock F
+GLIBC_2.28 thrd_create F
+GLIBC_2.28 thrd_detach F
+GLIBC_2.28 thrd_exit F
+GLIBC_2.28 thrd_join F
+GLIBC_2.28 tss_create F
+GLIBC_2.28 tss_delete F
+GLIBC_2.28 tss_get F
+GLIBC_2.28 tss_set F
+GLIBC_2.30 pthread_cond_clockwait F
+GLIBC_2.30 pthread_mutex_clocklock F
+GLIBC_2.30 pthread_rwlock_clockrdlock F
+GLIBC_2.30 pthread_rwlock_clockwrlock F
+GLIBC_2.30 sem_clockwait F
+GLIBC_2.31 pthread_clockjoin_np F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
new file mode 100644
index 0000000000..b04f0397c8
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libresolv.abilist
@@ -0,0 +1,91 @@
+GLIBC_2.18 __b64_ntop F
+GLIBC_2.18 __b64_pton F
+GLIBC_2.18 __dn_comp F
+GLIBC_2.18 __dn_count_labels F
+GLIBC_2.18 __dn_expand F
+GLIBC_2.18 __dn_skipname F
+GLIBC_2.18 __fp_nquery F
+GLIBC_2.18 __fp_query F
+GLIBC_2.18 __fp_resstat F
+GLIBC_2.18 __hostalias F
+GLIBC_2.18 __loc_aton F
+GLIBC_2.18 __loc_ntoa F
+GLIBC_2.18 __p_cdname F
+GLIBC_2.18 __p_cdnname F
+GLIBC_2.18 __p_class F
+GLIBC_2.18 __p_class_syms D 0x54
+GLIBC_2.18 __p_fqname F
+GLIBC_2.18 __p_fqnname F
+GLIBC_2.18 __p_option F
+GLIBC_2.18 __p_query F
+GLIBC_2.18 __p_rcode F
+GLIBC_2.18 __p_secstodate F
+GLIBC_2.18 __p_time F
+GLIBC_2.18 __p_type F
+GLIBC_2.18 __p_type_syms D 0x228
+GLIBC_2.18 __putlong F
+GLIBC_2.18 __putshort F
+GLIBC_2.18 __res_close F
+GLIBC_2.18 __res_dnok F
+GLIBC_2.18 __res_hnok F
+GLIBC_2.18 __res_hostalias F
+GLIBC_2.18 __res_isourserver F
+GLIBC_2.18 __res_mailok F
+GLIBC_2.18 __res_mkquery F
+GLIBC_2.18 __res_nameinquery F
+GLIBC_2.18 __res_nmkquery F
+GLIBC_2.18 __res_nquery F
+GLIBC_2.18 __res_nquerydomain F
+GLIBC_2.18 __res_nsearch F
+GLIBC_2.18 __res_nsend F
+GLIBC_2.18 __res_ownok F
+GLIBC_2.18 __res_queriesmatch F
+GLIBC_2.18 __res_query F
+GLIBC_2.18 __res_querydomain F
+GLIBC_2.18 __res_search F
+GLIBC_2.18 __res_send F
+GLIBC_2.18 __sym_ntop F
+GLIBC_2.18 __sym_ntos F
+GLIBC_2.18 __sym_ston F
+GLIBC_2.18 _gethtbyaddr F
+GLIBC_2.18 _gethtbyname F
+GLIBC_2.18 _gethtbyname2 F
+GLIBC_2.18 _gethtent F
+GLIBC_2.18 _getlong F
+GLIBC_2.18 _getshort F
+GLIBC_2.18 _res_opcodes D 0x40
+GLIBC_2.18 _sethtent F
+GLIBC_2.18 inet_net_ntop F
+GLIBC_2.18 inet_net_pton F
+GLIBC_2.18 inet_neta F
+GLIBC_2.18 ns_datetosecs F
+GLIBC_2.18 ns_format_ttl F
+GLIBC_2.18 ns_get16 F
+GLIBC_2.18 ns_get32 F
+GLIBC_2.18 ns_initparse F
+GLIBC_2.18 ns_makecanon F
+GLIBC_2.18 ns_msg_getflag F
+GLIBC_2.18 ns_name_compress F
+GLIBC_2.18 ns_name_ntol F
+GLIBC_2.18 ns_name_ntop F
+GLIBC_2.18 ns_name_pack F
+GLIBC_2.18 ns_name_pton F
+GLIBC_2.18 ns_name_rollback F
+GLIBC_2.18 ns_name_skip F
+GLIBC_2.18 ns_name_uncompress F
+GLIBC_2.18 ns_name_unpack F
+GLIBC_2.18 ns_parse_ttl F
+GLIBC_2.18 ns_parserr F
+GLIBC_2.18 ns_put16 F
+GLIBC_2.18 ns_put32 F
+GLIBC_2.18 ns_samedomain F
+GLIBC_2.18 ns_samename F
+GLIBC_2.18 ns_skiprr F
+GLIBC_2.18 ns_sprintrr F
+GLIBC_2.18 ns_sprintrrf F
+GLIBC_2.18 ns_subdomain F
+GLIBC_2.18 res_gethostbyaddr F
+GLIBC_2.18 res_gethostbyname F
+GLIBC_2.18 res_gethostbyname2 F
+GLIBC_2.18 res_send_setqhook F
+GLIBC_2.18 res_send_setrhook F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
new file mode 100644
index 0000000000..889dfbc0ee
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
@@ -0,0 +1,35 @@
+GLIBC_2.18 __mq_open_2 F
+GLIBC_2.18 aio_cancel F
+GLIBC_2.18 aio_cancel64 F
+GLIBC_2.18 aio_error F
+GLIBC_2.18 aio_error64 F
+GLIBC_2.18 aio_fsync F
+GLIBC_2.18 aio_fsync64 F
+GLIBC_2.18 aio_init F
+GLIBC_2.18 aio_read F
+GLIBC_2.18 aio_read64 F
+GLIBC_2.18 aio_return F
+GLIBC_2.18 aio_return64 F
+GLIBC_2.18 aio_suspend F
+GLIBC_2.18 aio_suspend64 F
+GLIBC_2.18 aio_write F
+GLIBC_2.18 aio_write64 F
+GLIBC_2.18 lio_listio F
+GLIBC_2.18 lio_listio64 F
+GLIBC_2.18 mq_close F
+GLIBC_2.18 mq_getattr F
+GLIBC_2.18 mq_notify F
+GLIBC_2.18 mq_open F
+GLIBC_2.18 mq_receive F
+GLIBC_2.18 mq_send F
+GLIBC_2.18 mq_setattr F
+GLIBC_2.18 mq_timedreceive F
+GLIBC_2.18 mq_timedsend F
+GLIBC_2.18 mq_unlink F
+GLIBC_2.18 shm_open F
+GLIBC_2.18 shm_unlink F
+GLIBC_2.18 timer_create F
+GLIBC_2.18 timer_delete F
+GLIBC_2.18 timer_getoverrun F
+GLIBC_2.18 timer_gettime F
+GLIBC_2.18 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libthread_db.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libthread_db.abilist
new file mode 100644
index 0000000000..511767701c
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libthread_db.abilist
@@ -0,0 +1,40 @@
+GLIBC_2.18 td_init F
+GLIBC_2.18 td_log F
+GLIBC_2.18 td_symbol_list F
+GLIBC_2.18 td_ta_clear_event F
+GLIBC_2.18 td_ta_delete F
+GLIBC_2.18 td_ta_enable_stats F
+GLIBC_2.18 td_ta_event_addr F
+GLIBC_2.18 td_ta_event_getmsg F
+GLIBC_2.18 td_ta_get_nthreads F
+GLIBC_2.18 td_ta_get_ph F
+GLIBC_2.18 td_ta_get_stats F
+GLIBC_2.18 td_ta_map_id2thr F
+GLIBC_2.18 td_ta_map_lwp2thr F
+GLIBC_2.18 td_ta_new F
+GLIBC_2.18 td_ta_reset_stats F
+GLIBC_2.18 td_ta_set_event F
+GLIBC_2.18 td_ta_setconcurrency F
+GLIBC_2.18 td_ta_thr_iter F
+GLIBC_2.18 td_ta_tsd_iter F
+GLIBC_2.18 td_thr_clear_event F
+GLIBC_2.18 td_thr_dbresume F
+GLIBC_2.18 td_thr_dbsuspend F
+GLIBC_2.18 td_thr_event_enable F
+GLIBC_2.18 td_thr_event_getmsg F
+GLIBC_2.18 td_thr_get_info F
+GLIBC_2.18 td_thr_getfpregs F
+GLIBC_2.18 td_thr_getgregs F
+GLIBC_2.18 td_thr_getxregs F
+GLIBC_2.18 td_thr_getxregsize F
+GLIBC_2.18 td_thr_set_event F
+GLIBC_2.18 td_thr_setfpregs F
+GLIBC_2.18 td_thr_setgregs F
+GLIBC_2.18 td_thr_setprio F
+GLIBC_2.18 td_thr_setsigpending F
+GLIBC_2.18 td_thr_setxregs F
+GLIBC_2.18 td_thr_sigsetmask F
+GLIBC_2.18 td_thr_tls_get_addr F
+GLIBC_2.18 td_thr_tlsbase F
+GLIBC_2.18 td_thr_tsd F
+GLIBC_2.18 td_thr_validate F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libutil.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libutil.abilist
new file mode 100644
index 0000000000..0da0a40c22
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libutil.abilist
@@ -0,0 +1,6 @@
+GLIBC_2.18 forkpty F
+GLIBC_2.18 login F
+GLIBC_2.18 login_tty F
+GLIBC_2.18 logout F
+GLIBC_2.18 logwtmp F
+GLIBC_2.18 openpty F
diff --git a/sysdeps/unix/sysv/linux/microblaze/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/libc.abilist
deleted file mode 100644
index daed511f00..0000000000
--- a/sysdeps/unix/sysv/linux/microblaze/libc.abilist
+++ /dev/null
@@ -1,2132 +0,0 @@
-GLIBC_2.18 _Exit F
-GLIBC_2.18 _IO_2_1_stderr_ D 0x98
-GLIBC_2.18 _IO_2_1_stdin_ D 0x98
-GLIBC_2.18 _IO_2_1_stdout_ D 0x98
-GLIBC_2.18 _IO_adjust_column F
-GLIBC_2.18 _IO_adjust_wcolumn F
-GLIBC_2.18 _IO_default_doallocate F
-GLIBC_2.18 _IO_default_finish F
-GLIBC_2.18 _IO_default_pbackfail F
-GLIBC_2.18 _IO_default_uflow F
-GLIBC_2.18 _IO_default_xsgetn F
-GLIBC_2.18 _IO_default_xsputn F
-GLIBC_2.18 _IO_do_write F
-GLIBC_2.18 _IO_doallocbuf F
-GLIBC_2.18 _IO_fclose F
-GLIBC_2.18 _IO_fdopen F
-GLIBC_2.18 _IO_feof F
-GLIBC_2.18 _IO_ferror F
-GLIBC_2.18 _IO_fflush F
-GLIBC_2.18 _IO_fgetpos F
-GLIBC_2.18 _IO_fgetpos64 F
-GLIBC_2.18 _IO_fgets F
-GLIBC_2.18 _IO_file_attach F
-GLIBC_2.18 _IO_file_close F
-GLIBC_2.18 _IO_file_close_it F
-GLIBC_2.18 _IO_file_doallocate F
-GLIBC_2.18 _IO_file_finish F
-GLIBC_2.18 _IO_file_fopen F
-GLIBC_2.18 _IO_file_init F
-GLIBC_2.18 _IO_file_jumps D 0x54
-GLIBC_2.18 _IO_file_open F
-GLIBC_2.18 _IO_file_overflow F
-GLIBC_2.18 _IO_file_read F
-GLIBC_2.18 _IO_file_seek F
-GLIBC_2.18 _IO_file_seekoff F
-GLIBC_2.18 _IO_file_setbuf F
-GLIBC_2.18 _IO_file_stat F
-GLIBC_2.18 _IO_file_sync F
-GLIBC_2.18 _IO_file_underflow F
-GLIBC_2.18 _IO_file_write F
-GLIBC_2.18 _IO_file_xsputn F
-GLIBC_2.18 _IO_flockfile F
-GLIBC_2.18 _IO_flush_all F
-GLIBC_2.18 _IO_flush_all_linebuffered F
-GLIBC_2.18 _IO_fopen F
-GLIBC_2.18 _IO_fprintf F
-GLIBC_2.18 _IO_fputs F
-GLIBC_2.18 _IO_fread F
-GLIBC_2.18 _IO_free_backup_area F
-GLIBC_2.18 _IO_free_wbackup_area F
-GLIBC_2.18 _IO_fsetpos F
-GLIBC_2.18 _IO_fsetpos64 F
-GLIBC_2.18 _IO_ftell F
-GLIBC_2.18 _IO_ftrylockfile F
-GLIBC_2.18 _IO_funlockfile F
-GLIBC_2.18 _IO_fwrite F
-GLIBC_2.18 _IO_getc F
-GLIBC_2.18 _IO_getline F
-GLIBC_2.18 _IO_getline_info F
-GLIBC_2.18 _IO_gets F
-GLIBC_2.18 _IO_init F
-GLIBC_2.18 _IO_init_marker F
-GLIBC_2.18 _IO_init_wmarker F
-GLIBC_2.18 _IO_iter_begin F
-GLIBC_2.18 _IO_iter_end F
-GLIBC_2.18 _IO_iter_file F
-GLIBC_2.18 _IO_iter_next F
-GLIBC_2.18 _IO_least_wmarker F
-GLIBC_2.18 _IO_link_in F
-GLIBC_2.18 _IO_list_all D 0x4
-GLIBC_2.18 _IO_list_lock F
-GLIBC_2.18 _IO_list_resetlock F
-GLIBC_2.18 _IO_list_unlock F
-GLIBC_2.18 _IO_marker_delta F
-GLIBC_2.18 _IO_marker_difference F
-GLIBC_2.18 _IO_padn F
-GLIBC_2.18 _IO_peekc_locked F
-GLIBC_2.18 _IO_popen F
-GLIBC_2.18 _IO_printf F
-GLIBC_2.18 _IO_proc_close F
-GLIBC_2.18 _IO_proc_open F
-GLIBC_2.18 _IO_putc F
-GLIBC_2.18 _IO_puts F
-GLIBC_2.18 _IO_remove_marker F
-GLIBC_2.18 _IO_seekmark F
-GLIBC_2.18 _IO_seekoff F
-GLIBC_2.18 _IO_seekpos F
-GLIBC_2.18 _IO_seekwmark F
-GLIBC_2.18 _IO_setb F
-GLIBC_2.18 _IO_setbuffer F
-GLIBC_2.18 _IO_setvbuf F
-GLIBC_2.18 _IO_sgetn F
-GLIBC_2.18 _IO_sprintf F
-GLIBC_2.18 _IO_sputbackc F
-GLIBC_2.18 _IO_sputbackwc F
-GLIBC_2.18 _IO_sscanf F
-GLIBC_2.18 _IO_str_init_readonly F
-GLIBC_2.18 _IO_str_init_static F
-GLIBC_2.18 _IO_str_overflow F
-GLIBC_2.18 _IO_str_pbackfail F
-GLIBC_2.18 _IO_str_seekoff F
-GLIBC_2.18 _IO_str_underflow F
-GLIBC_2.18 _IO_sungetc F
-GLIBC_2.18 _IO_sungetwc F
-GLIBC_2.18 _IO_switch_to_get_mode F
-GLIBC_2.18 _IO_switch_to_main_wget_area F
-GLIBC_2.18 _IO_switch_to_wbackup_area F
-GLIBC_2.18 _IO_switch_to_wget_mode F
-GLIBC_2.18 _IO_un_link F
-GLIBC_2.18 _IO_ungetc F
-GLIBC_2.18 _IO_unsave_markers F
-GLIBC_2.18 _IO_unsave_wmarkers F
-GLIBC_2.18 _IO_vfprintf F
-GLIBC_2.18 _IO_vfscanf F
-GLIBC_2.18 _IO_vsprintf F
-GLIBC_2.18 _IO_wdefault_doallocate F
-GLIBC_2.18 _IO_wdefault_finish F
-GLIBC_2.18 _IO_wdefault_pbackfail F
-GLIBC_2.18 _IO_wdefault_uflow F
-GLIBC_2.18 _IO_wdefault_xsgetn F
-GLIBC_2.18 _IO_wdefault_xsputn F
-GLIBC_2.18 _IO_wdo_write F
-GLIBC_2.18 _IO_wdoallocbuf F
-GLIBC_2.18 _IO_wfile_jumps D 0x54
-GLIBC_2.18 _IO_wfile_overflow F
-GLIBC_2.18 _IO_wfile_seekoff F
-GLIBC_2.18 _IO_wfile_sync F
-GLIBC_2.18 _IO_wfile_underflow F
-GLIBC_2.18 _IO_wfile_xsputn F
-GLIBC_2.18 _IO_wmarker_delta F
-GLIBC_2.18 _IO_wsetb F
-GLIBC_2.18 ___brk_addr D 0x4
-GLIBC_2.18 __adjtimex F
-GLIBC_2.18 __after_morecore_hook D 0x4
-GLIBC_2.18 __argz_count F
-GLIBC_2.18 __argz_next F
-GLIBC_2.18 __argz_stringify F
-GLIBC_2.18 __asprintf F
-GLIBC_2.18 __asprintf_chk F
-GLIBC_2.18 __assert F
-GLIBC_2.18 __assert_fail F
-GLIBC_2.18 __assert_perror_fail F
-GLIBC_2.18 __backtrace F
-GLIBC_2.18 __backtrace_symbols F
-GLIBC_2.18 __backtrace_symbols_fd F
-GLIBC_2.18 __bsd_getpgrp F
-GLIBC_2.18 __bzero F
-GLIBC_2.18 __check_rhosts_file D 0x4
-GLIBC_2.18 __chk_fail F
-GLIBC_2.18 __clone F
-GLIBC_2.18 __close F
-GLIBC_2.18 __cmsg_nxthdr F
-GLIBC_2.18 __confstr_chk F
-GLIBC_2.18 __connect F
-GLIBC_2.18 __ctype_b_loc F
-GLIBC_2.18 __ctype_get_mb_cur_max F
-GLIBC_2.18 __ctype_tolower_loc F
-GLIBC_2.18 __ctype_toupper_loc F
-GLIBC_2.18 __curbrk D 0x4
-GLIBC_2.18 __cxa_at_quick_exit F
-GLIBC_2.18 __cxa_atexit F
-GLIBC_2.18 __cxa_finalize F
-GLIBC_2.18 __cxa_thread_atexit_impl F
-GLIBC_2.18 __cyg_profile_func_enter F
-GLIBC_2.18 __cyg_profile_func_exit F
-GLIBC_2.18 __daylight D 0x4
-GLIBC_2.18 __dcgettext F
-GLIBC_2.18 __default_morecore F
-GLIBC_2.18 __dgettext F
-GLIBC_2.18 __dprintf_chk F
-GLIBC_2.18 __dup2 F
-GLIBC_2.18 __duplocale F
-GLIBC_2.18 __endmntent F
-GLIBC_2.18 __environ D 0x4
-GLIBC_2.18 __errno_location F
-GLIBC_2.18 __fbufsize F
-GLIBC_2.18 __fcntl F
-GLIBC_2.18 __fdelt_chk F
-GLIBC_2.18 __fdelt_warn F
-GLIBC_2.18 __ffs F
-GLIBC_2.18 __fgets_chk F
-GLIBC_2.18 __fgets_unlocked_chk F
-GLIBC_2.18 __fgetws_chk F
-GLIBC_2.18 __fgetws_unlocked_chk F
-GLIBC_2.18 __finite F
-GLIBC_2.18 __finitef F
-GLIBC_2.18 __finitel F
-GLIBC_2.18 __flbf F
-GLIBC_2.18 __fork F
-GLIBC_2.18 __fpending F
-GLIBC_2.18 __fprintf_chk F
-GLIBC_2.18 __fpu_control D 0x4
-GLIBC_2.18 __fpurge F
-GLIBC_2.18 __fread_chk F
-GLIBC_2.18 __fread_unlocked_chk F
-GLIBC_2.18 __freadable F
-GLIBC_2.18 __freading F
-GLIBC_2.18 __free_hook D 0x4
-GLIBC_2.18 __freelocale F
-GLIBC_2.18 __fsetlocking F
-GLIBC_2.18 __fwprintf_chk F
-GLIBC_2.18 __fwritable F
-GLIBC_2.18 __fwriting F
-GLIBC_2.18 __fxstat F
-GLIBC_2.18 __fxstat64 F
-GLIBC_2.18 __fxstatat F
-GLIBC_2.18 __fxstatat64 F
-GLIBC_2.18 __getauxval F
-GLIBC_2.18 __getcwd_chk F
-GLIBC_2.18 __getdelim F
-GLIBC_2.18 __getdomainname_chk F
-GLIBC_2.18 __getgroups_chk F
-GLIBC_2.18 __gethostname_chk F
-GLIBC_2.18 __getlogin_r_chk F
-GLIBC_2.18 __getmntent_r F
-GLIBC_2.18 __getpagesize F
-GLIBC_2.18 __getpgid F
-GLIBC_2.18 __getpid F
-GLIBC_2.18 __gets_chk F
-GLIBC_2.18 __gettimeofday F
-GLIBC_2.18 __getwd_chk F
-GLIBC_2.18 __gmtime_r F
-GLIBC_2.18 __h_errno_location F
-GLIBC_2.18 __isalnum_l F
-GLIBC_2.18 __isalpha_l F
-GLIBC_2.18 __isascii_l F
-GLIBC_2.18 __isblank_l F
-GLIBC_2.18 __iscntrl_l F
-GLIBC_2.18 __isctype F
-GLIBC_2.18 __isdigit_l F
-GLIBC_2.18 __isgraph_l F
-GLIBC_2.18 __isinf F
-GLIBC_2.18 __isinff F
-GLIBC_2.18 __isinfl F
-GLIBC_2.18 __islower_l F
-GLIBC_2.18 __isnan F
-GLIBC_2.18 __isnanf F
-GLIBC_2.18 __isnanl F
-GLIBC_2.18 __isoc99_fscanf F
-GLIBC_2.18 __isoc99_fwscanf F
-GLIBC_2.18 __isoc99_scanf F
-GLIBC_2.18 __isoc99_sscanf F
-GLIBC_2.18 __isoc99_swscanf F
-GLIBC_2.18 __isoc99_vfscanf F
-GLIBC_2.18 __isoc99_vfwscanf F
-GLIBC_2.18 __isoc99_vscanf F
-GLIBC_2.18 __isoc99_vsscanf F
-GLIBC_2.18 __isoc99_vswscanf F
-GLIBC_2.18 __isoc99_vwscanf F
-GLIBC_2.18 __isoc99_wscanf F
-GLIBC_2.18 __isprint_l F
-GLIBC_2.18 __ispunct_l F
-GLIBC_2.18 __isspace_l F
-GLIBC_2.18 __isupper_l F
-GLIBC_2.18 __iswalnum_l F
-GLIBC_2.18 __iswalpha_l F
-GLIBC_2.18 __iswblank_l F
-GLIBC_2.18 __iswcntrl_l F
-GLIBC_2.18 __iswctype F
-GLIBC_2.18 __iswctype_l F
-GLIBC_2.18 __iswdigit_l F
-GLIBC_2.18 __iswgraph_l F
-GLIBC_2.18 __iswlower_l F
-GLIBC_2.18 __iswprint_l F
-GLIBC_2.18 __iswpunct_l F
-GLIBC_2.18 __iswspace_l F
-GLIBC_2.18 __iswupper_l F
-GLIBC_2.18 __iswxdigit_l F
-GLIBC_2.18 __isxdigit_l F
-GLIBC_2.18 __ivaliduser F
-GLIBC_2.18 __key_decryptsession_pk_LOCAL D 0x4
-GLIBC_2.18 __key_encryptsession_pk_LOCAL D 0x4
-GLIBC_2.18 __key_gendes_LOCAL D 0x4
-GLIBC_2.18 __libc_allocate_rtsig F
-GLIBC_2.18 __libc_calloc F
-GLIBC_2.18 __libc_current_sigrtmax F
-GLIBC_2.18 __libc_current_sigrtmin F
-GLIBC_2.18 __libc_free F
-GLIBC_2.18 __libc_freeres F
-GLIBC_2.18 __libc_init_first F
-GLIBC_2.18 __libc_mallinfo F
-GLIBC_2.18 __libc_malloc F
-GLIBC_2.18 __libc_mallopt F
-GLIBC_2.18 __libc_memalign F
-GLIBC_2.18 __libc_pvalloc F
-GLIBC_2.18 __libc_realloc F
-GLIBC_2.18 __libc_sa_len F
-GLIBC_2.18 __libc_start_main F
-GLIBC_2.18 __libc_valloc F
-GLIBC_2.18 __longjmp_chk F
-GLIBC_2.18 __lseek F
-GLIBC_2.18 __lxstat F
-GLIBC_2.18 __lxstat64 F
-GLIBC_2.18 __malloc_hook D 0x4
-GLIBC_2.18 __malloc_initialize_hook D 0x4
-GLIBC_2.18 __mbrlen F
-GLIBC_2.18 __mbrtowc F
-GLIBC_2.18 __mbsnrtowcs_chk F
-GLIBC_2.18 __mbsrtowcs_chk F
-GLIBC_2.18 __mbstowcs_chk F
-GLIBC_2.18 __memalign_hook D 0x4
-GLIBC_2.18 __memcpy_chk F
-GLIBC_2.18 __memmove_chk F
-GLIBC_2.18 __mempcpy F
-GLIBC_2.18 __mempcpy_chk F
-GLIBC_2.18 __mempcpy_small F
-GLIBC_2.18 __memset_chk F
-GLIBC_2.18 __monstartup F
-GLIBC_2.18 __morecore D 0x4
-GLIBC_2.18 __nanosleep F
-GLIBC_2.18 __newlocale F
-GLIBC_2.18 __nl_langinfo_l F
-GLIBC_2.18 __nss_configure_lookup F
-GLIBC_2.18 __nss_database_lookup F
-GLIBC_2.18 __nss_group_lookup F
-GLIBC_2.18 __nss_hostname_digits_dots F
-GLIBC_2.18 __nss_hosts_lookup F
-GLIBC_2.18 __nss_next F
-GLIBC_2.18 __nss_passwd_lookup F
-GLIBC_2.18 __obstack_printf_chk F
-GLIBC_2.18 __obstack_vprintf_chk F
-GLIBC_2.18 __open F
-GLIBC_2.18 __open64 F
-GLIBC_2.18 __open64_2 F
-GLIBC_2.18 __open_2 F
-GLIBC_2.18 __openat64_2 F
-GLIBC_2.18 __openat_2 F
-GLIBC_2.18 __overflow F
-GLIBC_2.18 __pipe F
-GLIBC_2.18 __poll F
-GLIBC_2.18 __poll_chk F
-GLIBC_2.18 __posix_getopt F
-GLIBC_2.18 __ppoll_chk F
-GLIBC_2.18 __pread64 F
-GLIBC_2.18 __pread64_chk F
-GLIBC_2.18 __pread_chk F
-GLIBC_2.18 __printf_chk F
-GLIBC_2.18 __printf_fp F
-GLIBC_2.18 __profile_frequency F
-GLIBC_2.18 __progname D 0x4
-GLIBC_2.18 __progname_full D 0x4
-GLIBC_2.18 __ptsname_r_chk F
-GLIBC_2.18 __pwrite64 F
-GLIBC_2.18 __rawmemchr F
-GLIBC_2.18 __rcmd_errstr D 0x4
-GLIBC_2.18 __read F
-GLIBC_2.18 __read_chk F
-GLIBC_2.18 __readlink_chk F
-GLIBC_2.18 __readlinkat_chk F
-GLIBC_2.18 __realloc_hook D 0x4
-GLIBC_2.18 __realpath_chk F
-GLIBC_2.18 __recv_chk F
-GLIBC_2.18 __recvfrom_chk F
-GLIBC_2.18 __register_atfork F
-GLIBC_2.18 __res_init F
-GLIBC_2.18 __res_nclose F
-GLIBC_2.18 __res_ninit F
-GLIBC_2.18 __res_randomid F
-GLIBC_2.18 __res_state F
-GLIBC_2.18 __rpc_thread_createerr F
-GLIBC_2.18 __rpc_thread_svc_fdset F
-GLIBC_2.18 __rpc_thread_svc_max_pollfd F
-GLIBC_2.18 __rpc_thread_svc_pollfd F
-GLIBC_2.18 __sbrk F
-GLIBC_2.18 __sched_cpualloc F
-GLIBC_2.18 __sched_cpucount F
-GLIBC_2.18 __sched_cpufree F
-GLIBC_2.18 __sched_get_priority_max F
-GLIBC_2.18 __sched_get_priority_min F
-GLIBC_2.18 __sched_getparam F
-GLIBC_2.18 __sched_getscheduler F
-GLIBC_2.18 __sched_setscheduler F
-GLIBC_2.18 __sched_yield F
-GLIBC_2.18 __select F
-GLIBC_2.18 __send F
-GLIBC_2.18 __setmntent F
-GLIBC_2.18 __setpgid F
-GLIBC_2.18 __sigaction F
-GLIBC_2.18 __sigaddset F
-GLIBC_2.18 __sigdelset F
-GLIBC_2.18 __sigismember F
-GLIBC_2.18 __signbit F
-GLIBC_2.18 __signbitf F
-GLIBC_2.18 __sigpause F
-GLIBC_2.18 __sigsetjmp F
-GLIBC_2.18 __sigsuspend F
-GLIBC_2.18 __snprintf_chk F
-GLIBC_2.18 __sprintf_chk F
-GLIBC_2.18 __stack_chk_fail F
-GLIBC_2.18 __statfs F
-GLIBC_2.18 __stpcpy F
-GLIBC_2.18 __stpcpy_chk F
-GLIBC_2.18 __stpcpy_small F
-GLIBC_2.18 __stpncpy F
-GLIBC_2.18 __stpncpy_chk F
-GLIBC_2.18 __strcasecmp F
-GLIBC_2.18 __strcasecmp_l F
-GLIBC_2.18 __strcasestr F
-GLIBC_2.18 __strcat_chk F
-GLIBC_2.18 __strcoll_l F
-GLIBC_2.18 __strcpy_chk F
-GLIBC_2.18 __strcpy_small F
-GLIBC_2.18 __strcspn_c1 F
-GLIBC_2.18 __strcspn_c2 F
-GLIBC_2.18 __strcspn_c3 F
-GLIBC_2.18 __strdup F
-GLIBC_2.18 __strerror_r F
-GLIBC_2.18 __strfmon_l F
-GLIBC_2.18 __strftime_l F
-GLIBC_2.18 __strncasecmp_l F
-GLIBC_2.18 __strncat_chk F
-GLIBC_2.18 __strncpy_chk F
-GLIBC_2.18 __strndup F
-GLIBC_2.18 __strpbrk_c2 F
-GLIBC_2.18 __strpbrk_c3 F
-GLIBC_2.18 __strsep_1c F
-GLIBC_2.18 __strsep_2c F
-GLIBC_2.18 __strsep_3c F
-GLIBC_2.18 __strsep_g F
-GLIBC_2.18 __strspn_c1 F
-GLIBC_2.18 __strspn_c2 F
-GLIBC_2.18 __strspn_c3 F
-GLIBC_2.18 __strtod_internal F
-GLIBC_2.18 __strtod_l F
-GLIBC_2.18 __strtof_internal F
-GLIBC_2.18 __strtof_l F
-GLIBC_2.18 __strtok_r F
-GLIBC_2.18 __strtok_r_1c F
-GLIBC_2.18 __strtol_internal F
-GLIBC_2.18 __strtol_l F
-GLIBC_2.18 __strtold_internal F
-GLIBC_2.18 __strtold_l F
-GLIBC_2.18 __strtoll_internal F
-GLIBC_2.18 __strtoll_l F
-GLIBC_2.18 __strtoul_internal F
-GLIBC_2.18 __strtoul_l F
-GLIBC_2.18 __strtoull_internal F
-GLIBC_2.18 __strtoull_l F
-GLIBC_2.18 __strverscmp F
-GLIBC_2.18 __strxfrm_l F
-GLIBC_2.18 __swprintf_chk F
-GLIBC_2.18 __sysconf F
-GLIBC_2.18 __sysctl F
-GLIBC_2.18 __syslog_chk F
-GLIBC_2.18 __sysv_signal F
-GLIBC_2.18 __timezone D 0x4
-GLIBC_2.18 __toascii_l F
-GLIBC_2.18 __tolower_l F
-GLIBC_2.18 __toupper_l F
-GLIBC_2.18 __towctrans F
-GLIBC_2.18 __towctrans_l F
-GLIBC_2.18 __towlower_l F
-GLIBC_2.18 __towupper_l F
-GLIBC_2.18 __ttyname_r_chk F
-GLIBC_2.18 __tzname D 0x8
-GLIBC_2.18 __uflow F
-GLIBC_2.18 __underflow F
-GLIBC_2.18 __uselocale F
-GLIBC_2.18 __vasprintf_chk F
-GLIBC_2.18 __vdprintf_chk F
-GLIBC_2.18 __vfork F
-GLIBC_2.18 __vfprintf_chk F
-GLIBC_2.18 __vfscanf F
-GLIBC_2.18 __vfwprintf_chk F
-GLIBC_2.18 __vprintf_chk F
-GLIBC_2.18 __vsnprintf F
-GLIBC_2.18 __vsnprintf_chk F
-GLIBC_2.18 __vsprintf_chk F
-GLIBC_2.18 __vsscanf F
-GLIBC_2.18 __vswprintf_chk F
-GLIBC_2.18 __vsyslog_chk F
-GLIBC_2.18 __vwprintf_chk F
-GLIBC_2.18 __wait F
-GLIBC_2.18 __waitpid F
-GLIBC_2.18 __wcpcpy_chk F
-GLIBC_2.18 __wcpncpy_chk F
-GLIBC_2.18 __wcrtomb_chk F
-GLIBC_2.18 __wcscasecmp_l F
-GLIBC_2.18 __wcscat_chk F
-GLIBC_2.18 __wcscoll_l F
-GLIBC_2.18 __wcscpy_chk F
-GLIBC_2.18 __wcsftime_l F
-GLIBC_2.18 __wcsncasecmp_l F
-GLIBC_2.18 __wcsncat_chk F
-GLIBC_2.18 __wcsncpy_chk F
-GLIBC_2.18 __wcsnrtombs_chk F
-GLIBC_2.18 __wcsrtombs_chk F
-GLIBC_2.18 __wcstod_internal F
-GLIBC_2.18 __wcstod_l F
-GLIBC_2.18 __wcstof_internal F
-GLIBC_2.18 __wcstof_l F
-GLIBC_2.18 __wcstol_internal F
-GLIBC_2.18 __wcstol_l F
-GLIBC_2.18 __wcstold_internal F
-GLIBC_2.18 __wcstold_l F
-GLIBC_2.18 __wcstoll_internal F
-GLIBC_2.18 __wcstoll_l F
-GLIBC_2.18 __wcstombs_chk F
-GLIBC_2.18 __wcstoul_internal F
-GLIBC_2.18 __wcstoul_l F
-GLIBC_2.18 __wcstoull_internal F
-GLIBC_2.18 __wcstoull_l F
-GLIBC_2.18 __wcsxfrm_l F
-GLIBC_2.18 __wctomb_chk F
-GLIBC_2.18 __wctrans_l F
-GLIBC_2.18 __wctype_l F
-GLIBC_2.18 __wmemcpy_chk F
-GLIBC_2.18 __wmemmove_chk F
-GLIBC_2.18 __wmempcpy_chk F
-GLIBC_2.18 __wmemset_chk F
-GLIBC_2.18 __woverflow F
-GLIBC_2.18 __wprintf_chk F
-GLIBC_2.18 __write F
-GLIBC_2.18 __wuflow F
-GLIBC_2.18 __wunderflow F
-GLIBC_2.18 __xmknod F
-GLIBC_2.18 __xmknodat F
-GLIBC_2.18 __xpg_basename F
-GLIBC_2.18 __xpg_sigpause F
-GLIBC_2.18 __xpg_strerror_r F
-GLIBC_2.18 __xstat F
-GLIBC_2.18 __xstat64 F
-GLIBC_2.18 _authenticate F
-GLIBC_2.18 _dl_mcount_wrapper F
-GLIBC_2.18 _dl_mcount_wrapper_check F
-GLIBC_2.18 _environ D 0x4
-GLIBC_2.18 _exit F
-GLIBC_2.18 _flushlbf F
-GLIBC_2.18 _libc_intl_domainname D 0x5
-GLIBC_2.18 _longjmp F
-GLIBC_2.18 _mcleanup F
-GLIBC_2.18 _mcount F
-GLIBC_2.18 _nl_default_dirname D 0x12
-GLIBC_2.18 _nl_domain_bindings D 0x4
-GLIBC_2.18 _nl_msg_cat_cntr D 0x4
-GLIBC_2.18 _null_auth D 0xc
-GLIBC_2.18 _obstack_allocated_p F
-GLIBC_2.18 _obstack_begin F
-GLIBC_2.18 _obstack_begin_1 F
-GLIBC_2.18 _obstack_free F
-GLIBC_2.18 _obstack_memory_used F
-GLIBC_2.18 _obstack_newchunk F
-GLIBC_2.18 _res D 0x200
-GLIBC_2.18 _res_hconf D 0x30
-GLIBC_2.18 _rpc_dtablesize F
-GLIBC_2.18 _seterr_reply F
-GLIBC_2.18 _setjmp F
-GLIBC_2.18 _sys_errlist D 0x21c
-GLIBC_2.18 _sys_nerr D 0x4
-GLIBC_2.18 _sys_siglist D 0x104
-GLIBC_2.18 _tolower F
-GLIBC_2.18 _toupper F
-GLIBC_2.18 a64l F
-GLIBC_2.18 abort F
-GLIBC_2.18 abs F
-GLIBC_2.18 accept F
-GLIBC_2.18 accept4 F
-GLIBC_2.18 access F
-GLIBC_2.18 acct F
-GLIBC_2.18 addmntent F
-GLIBC_2.18 addseverity F
-GLIBC_2.18 adjtime F
-GLIBC_2.18 adjtimex F
-GLIBC_2.18 advance F
-GLIBC_2.18 alarm F
-GLIBC_2.18 aligned_alloc F
-GLIBC_2.18 alphasort F
-GLIBC_2.18 alphasort64 F
-GLIBC_2.18 argp_err_exit_status D 0x4
-GLIBC_2.18 argp_error F
-GLIBC_2.18 argp_failure F
-GLIBC_2.18 argp_help F
-GLIBC_2.18 argp_parse F
-GLIBC_2.18 argp_program_bug_address D 0x4
-GLIBC_2.18 argp_program_version D 0x4
-GLIBC_2.18 argp_program_version_hook D 0x4
-GLIBC_2.18 argp_state_help F
-GLIBC_2.18 argp_usage F
-GLIBC_2.18 argz_add F
-GLIBC_2.18 argz_add_sep F
-GLIBC_2.18 argz_append F
-GLIBC_2.18 argz_count F
-GLIBC_2.18 argz_create F
-GLIBC_2.18 argz_create_sep F
-GLIBC_2.18 argz_delete F
-GLIBC_2.18 argz_extract F
-GLIBC_2.18 argz_insert F
-GLIBC_2.18 argz_next F
-GLIBC_2.18 argz_replace F
-GLIBC_2.18 argz_stringify F
-GLIBC_2.18 asctime F
-GLIBC_2.18 asctime_r F
-GLIBC_2.18 asprintf F
-GLIBC_2.18 atof F
-GLIBC_2.18 atoi F
-GLIBC_2.18 atol F
-GLIBC_2.18 atoll F
-GLIBC_2.18 authdes_create F
-GLIBC_2.18 authdes_getucred F
-GLIBC_2.18 authdes_pk_create F
-GLIBC_2.18 authnone_create F
-GLIBC_2.18 authunix_create F
-GLIBC_2.18 authunix_create_default F
-GLIBC_2.18 backtrace F
-GLIBC_2.18 backtrace_symbols F
-GLIBC_2.18 backtrace_symbols_fd F
-GLIBC_2.18 basename F
-GLIBC_2.18 bcmp F
-GLIBC_2.18 bcopy F
-GLIBC_2.18 bdflush F
-GLIBC_2.18 bind F
-GLIBC_2.18 bind_textdomain_codeset F
-GLIBC_2.18 bindresvport F
-GLIBC_2.18 bindtextdomain F
-GLIBC_2.18 brk F
-GLIBC_2.18 bsd_signal F
-GLIBC_2.18 bsearch F
-GLIBC_2.18 btowc F
-GLIBC_2.18 bzero F
-GLIBC_2.18 c16rtomb F
-GLIBC_2.18 c32rtomb F
-GLIBC_2.18 calloc F
-GLIBC_2.18 callrpc F
-GLIBC_2.18 canonicalize_file_name F
-GLIBC_2.18 capget F
-GLIBC_2.18 capset F
-GLIBC_2.18 catclose F
-GLIBC_2.18 catgets F
-GLIBC_2.18 catopen F
-GLIBC_2.18 cbc_crypt F
-GLIBC_2.18 cfgetispeed F
-GLIBC_2.18 cfgetospeed F
-GLIBC_2.18 cfmakeraw F
-GLIBC_2.18 cfree F
-GLIBC_2.18 cfsetispeed F
-GLIBC_2.18 cfsetospeed F
-GLIBC_2.18 cfsetspeed F
-GLIBC_2.18 chdir F
-GLIBC_2.18 chflags F
-GLIBC_2.18 chmod F
-GLIBC_2.18 chown F
-GLIBC_2.18 chroot F
-GLIBC_2.18 clearenv F
-GLIBC_2.18 clearerr F
-GLIBC_2.18 clearerr_unlocked F
-GLIBC_2.18 clnt_broadcast F
-GLIBC_2.18 clnt_create F
-GLIBC_2.18 clnt_pcreateerror F
-GLIBC_2.18 clnt_perrno F
-GLIBC_2.18 clnt_perror F
-GLIBC_2.18 clnt_spcreateerror F
-GLIBC_2.18 clnt_sperrno F
-GLIBC_2.18 clnt_sperror F
-GLIBC_2.18 clntraw_create F
-GLIBC_2.18 clnttcp_create F
-GLIBC_2.18 clntudp_bufcreate F
-GLIBC_2.18 clntudp_create F
-GLIBC_2.18 clntunix_create F
-GLIBC_2.18 clock F
-GLIBC_2.18 clock_adjtime F
-GLIBC_2.18 clock_getcpuclockid F
-GLIBC_2.18 clock_getres F
-GLIBC_2.18 clock_gettime F
-GLIBC_2.18 clock_nanosleep F
-GLIBC_2.18 clock_settime F
-GLIBC_2.18 clone F
-GLIBC_2.18 close F
-GLIBC_2.18 closedir F
-GLIBC_2.18 closelog F
-GLIBC_2.18 confstr F
-GLIBC_2.18 connect F
-GLIBC_2.18 copysign F
-GLIBC_2.18 copysignf F
-GLIBC_2.18 copysignl F
-GLIBC_2.18 creat F
-GLIBC_2.18 creat64 F
-GLIBC_2.18 create_module F
-GLIBC_2.18 ctermid F
-GLIBC_2.18 ctime F
-GLIBC_2.18 ctime_r F
-GLIBC_2.18 cuserid F
-GLIBC_2.18 daemon F
-GLIBC_2.18 daylight D 0x4
-GLIBC_2.18 dcgettext F
-GLIBC_2.18 dcngettext F
-GLIBC_2.18 delete_module F
-GLIBC_2.18 des_setparity F
-GLIBC_2.18 dgettext F
-GLIBC_2.18 difftime F
-GLIBC_2.18 dirfd F
-GLIBC_2.18 dirname F
-GLIBC_2.18 div F
-GLIBC_2.18 dl_iterate_phdr F
-GLIBC_2.18 dngettext F
-GLIBC_2.18 dprintf F
-GLIBC_2.18 drand48 F
-GLIBC_2.18 drand48_r F
-GLIBC_2.18 dup F
-GLIBC_2.18 dup2 F
-GLIBC_2.18 dup3 F
-GLIBC_2.18 duplocale F
-GLIBC_2.18 dysize F
-GLIBC_2.18 eaccess F
-GLIBC_2.18 ecb_crypt F
-GLIBC_2.18 ecvt F
-GLIBC_2.18 ecvt_r F
-GLIBC_2.18 endaliasent F
-GLIBC_2.18 endfsent F
-GLIBC_2.18 endgrent F
-GLIBC_2.18 endhostent F
-GLIBC_2.18 endmntent F
-GLIBC_2.18 endnetent F
-GLIBC_2.18 endnetgrent F
-GLIBC_2.18 endprotoent F
-GLIBC_2.18 endpwent F
-GLIBC_2.18 endrpcent F
-GLIBC_2.18 endservent F
-GLIBC_2.18 endsgent F
-GLIBC_2.18 endspent F
-GLIBC_2.18 endttyent F
-GLIBC_2.18 endusershell F
-GLIBC_2.18 endutent F
-GLIBC_2.18 endutxent F
-GLIBC_2.18 environ D 0x4
-GLIBC_2.18 envz_add F
-GLIBC_2.18 envz_entry F
-GLIBC_2.18 envz_get F
-GLIBC_2.18 envz_merge F
-GLIBC_2.18 envz_remove F
-GLIBC_2.18 envz_strip F
-GLIBC_2.18 epoll_create F
-GLIBC_2.18 epoll_create1 F
-GLIBC_2.18 epoll_ctl F
-GLIBC_2.18 epoll_pwait F
-GLIBC_2.18 epoll_wait F
-GLIBC_2.18 erand48 F
-GLIBC_2.18 erand48_r F
-GLIBC_2.18 err F
-GLIBC_2.18 error F
-GLIBC_2.18 error_at_line F
-GLIBC_2.18 error_message_count D 0x4
-GLIBC_2.18 error_one_per_line D 0x4
-GLIBC_2.18 error_print_progname D 0x4
-GLIBC_2.18 errx F
-GLIBC_2.18 ether_aton F
-GLIBC_2.18 ether_aton_r F
-GLIBC_2.18 ether_hostton F
-GLIBC_2.18 ether_line F
-GLIBC_2.18 ether_ntoa F
-GLIBC_2.18 ether_ntoa_r F
-GLIBC_2.18 ether_ntohost F
-GLIBC_2.18 euidaccess F
-GLIBC_2.18 eventfd F
-GLIBC_2.18 eventfd_read F
-GLIBC_2.18 eventfd_write F
-GLIBC_2.18 execl F
-GLIBC_2.18 execle F
-GLIBC_2.18 execlp F
-GLIBC_2.18 execv F
-GLIBC_2.18 execve F
-GLIBC_2.18 execvp F
-GLIBC_2.18 execvpe F
-GLIBC_2.18 exit F
-GLIBC_2.18 faccessat F
-GLIBC_2.18 fallocate F
-GLIBC_2.18 fallocate64 F
-GLIBC_2.18 fanotify_init F
-GLIBC_2.18 fanotify_mark F
-GLIBC_2.18 fattach F
-GLIBC_2.18 fchdir F
-GLIBC_2.18 fchflags F
-GLIBC_2.18 fchmod F
-GLIBC_2.18 fchmodat F
-GLIBC_2.18 fchown F
-GLIBC_2.18 fchownat F
-GLIBC_2.18 fclose F
-GLIBC_2.18 fcloseall F
-GLIBC_2.18 fcntl F
-GLIBC_2.18 fcvt F
-GLIBC_2.18 fcvt_r F
-GLIBC_2.18 fdatasync F
-GLIBC_2.18 fdetach F
-GLIBC_2.18 fdopen F
-GLIBC_2.18 fdopendir F
-GLIBC_2.18 feof F
-GLIBC_2.18 feof_unlocked F
-GLIBC_2.18 ferror F
-GLIBC_2.18 ferror_unlocked F
-GLIBC_2.18 fexecve F
-GLIBC_2.18 fflush F
-GLIBC_2.18 fflush_unlocked F
-GLIBC_2.18 ffs F
-GLIBC_2.18 ffsl F
-GLIBC_2.18 ffsll F
-GLIBC_2.18 fgetc F
-GLIBC_2.18 fgetc_unlocked F
-GLIBC_2.18 fgetgrent F
-GLIBC_2.18 fgetgrent_r F
-GLIBC_2.18 fgetpos F
-GLIBC_2.18 fgetpos64 F
-GLIBC_2.18 fgetpwent F
-GLIBC_2.18 fgetpwent_r F
-GLIBC_2.18 fgets F
-GLIBC_2.18 fgets_unlocked F
-GLIBC_2.18 fgetsgent F
-GLIBC_2.18 fgetsgent_r F
-GLIBC_2.18 fgetspent F
-GLIBC_2.18 fgetspent_r F
-GLIBC_2.18 fgetwc F
-GLIBC_2.18 fgetwc_unlocked F
-GLIBC_2.18 fgetws F
-GLIBC_2.18 fgetws_unlocked F
-GLIBC_2.18 fgetxattr F
-GLIBC_2.18 fileno F
-GLIBC_2.18 fileno_unlocked F
-GLIBC_2.18 finite F
-GLIBC_2.18 finitef F
-GLIBC_2.18 finitel F
-GLIBC_2.18 flistxattr F
-GLIBC_2.18 flock F
-GLIBC_2.18 flockfile F
-GLIBC_2.18 fmemopen F
-GLIBC_2.18 fmtmsg F
-GLIBC_2.18 fnmatch F
-GLIBC_2.18 fopen F
-GLIBC_2.18 fopen64 F
-GLIBC_2.18 fopencookie F
-GLIBC_2.18 fork F
-GLIBC_2.18 fpathconf F
-GLIBC_2.18 fprintf F
-GLIBC_2.18 fputc F
-GLIBC_2.18 fputc_unlocked F
-GLIBC_2.18 fputs F
-GLIBC_2.18 fputs_unlocked F
-GLIBC_2.18 fputwc F
-GLIBC_2.18 fputwc_unlocked F
-GLIBC_2.18 fputws F
-GLIBC_2.18 fputws_unlocked F
-GLIBC_2.18 fread F
-GLIBC_2.18 fread_unlocked F
-GLIBC_2.18 free F
-GLIBC_2.18 freeaddrinfo F
-GLIBC_2.18 freeifaddrs F
-GLIBC_2.18 freelocale F
-GLIBC_2.18 fremovexattr F
-GLIBC_2.18 freopen F
-GLIBC_2.18 freopen64 F
-GLIBC_2.18 frexp F
-GLIBC_2.18 frexpf F
-GLIBC_2.18 frexpl F
-GLIBC_2.18 fscanf F
-GLIBC_2.18 fseek F
-GLIBC_2.18 fseeko F
-GLIBC_2.18 fseeko64 F
-GLIBC_2.18 fsetpos F
-GLIBC_2.18 fsetpos64 F
-GLIBC_2.18 fsetxattr F
-GLIBC_2.18 fstatfs F
-GLIBC_2.18 fstatfs64 F
-GLIBC_2.18 fstatvfs F
-GLIBC_2.18 fstatvfs64 F
-GLIBC_2.18 fsync F
-GLIBC_2.18 ftell F
-GLIBC_2.18 ftello F
-GLIBC_2.18 ftello64 F
-GLIBC_2.18 ftime F
-GLIBC_2.18 ftok F
-GLIBC_2.18 ftruncate F
-GLIBC_2.18 ftruncate64 F
-GLIBC_2.18 ftrylockfile F
-GLIBC_2.18 fts_children F
-GLIBC_2.18 fts_close F
-GLIBC_2.18 fts_open F
-GLIBC_2.18 fts_read F
-GLIBC_2.18 fts_set F
-GLIBC_2.18 ftw F
-GLIBC_2.18 ftw64 F
-GLIBC_2.18 funlockfile F
-GLIBC_2.18 futimens F
-GLIBC_2.18 futimes F
-GLIBC_2.18 futimesat F
-GLIBC_2.18 fwide F
-GLIBC_2.18 fwprintf F
-GLIBC_2.18 fwrite F
-GLIBC_2.18 fwrite_unlocked F
-GLIBC_2.18 fwscanf F
-GLIBC_2.18 gai_strerror F
-GLIBC_2.18 gcvt F
-GLIBC_2.18 get_avphys_pages F
-GLIBC_2.18 get_current_dir_name F
-GLIBC_2.18 get_kernel_syms F
-GLIBC_2.18 get_myaddress F
-GLIBC_2.18 get_nprocs F
-GLIBC_2.18 get_nprocs_conf F
-GLIBC_2.18 get_phys_pages F
-GLIBC_2.18 getaddrinfo F
-GLIBC_2.18 getaliasbyname F
-GLIBC_2.18 getaliasbyname_r F
-GLIBC_2.18 getaliasent F
-GLIBC_2.18 getaliasent_r F
-GLIBC_2.18 getauxval F
-GLIBC_2.18 getc F
-GLIBC_2.18 getc_unlocked F
-GLIBC_2.18 getchar F
-GLIBC_2.18 getchar_unlocked F
-GLIBC_2.18 getcontext F
-GLIBC_2.18 getcwd F
-GLIBC_2.18 getdate F
-GLIBC_2.18 getdate_err D 0x4
-GLIBC_2.18 getdate_r F
-GLIBC_2.18 getdelim F
-GLIBC_2.18 getdirentries F
-GLIBC_2.18 getdirentries64 F
-GLIBC_2.18 getdomainname F
-GLIBC_2.18 getdtablesize F
-GLIBC_2.18 getegid F
-GLIBC_2.18 getenv F
-GLIBC_2.18 geteuid F
-GLIBC_2.18 getfsent F
-GLIBC_2.18 getfsfile F
-GLIBC_2.18 getfsspec F
-GLIBC_2.18 getgid F
-GLIBC_2.18 getgrent F
-GLIBC_2.18 getgrent_r F
-GLIBC_2.18 getgrgid F
-GLIBC_2.18 getgrgid_r F
-GLIBC_2.18 getgrnam F
-GLIBC_2.18 getgrnam_r F
-GLIBC_2.18 getgrouplist F
-GLIBC_2.18 getgroups F
-GLIBC_2.18 gethostbyaddr F
-GLIBC_2.18 gethostbyaddr_r F
-GLIBC_2.18 gethostbyname F
-GLIBC_2.18 gethostbyname2 F
-GLIBC_2.18 gethostbyname2_r F
-GLIBC_2.18 gethostbyname_r F
-GLIBC_2.18 gethostent F
-GLIBC_2.18 gethostent_r F
-GLIBC_2.18 gethostid F
-GLIBC_2.18 gethostname F
-GLIBC_2.18 getifaddrs F
-GLIBC_2.18 getipv4sourcefilter F
-GLIBC_2.18 getitimer F
-GLIBC_2.18 getline F
-GLIBC_2.18 getloadavg F
-GLIBC_2.18 getlogin F
-GLIBC_2.18 getlogin_r F
-GLIBC_2.18 getmntent F
-GLIBC_2.18 getmntent_r F
-GLIBC_2.18 getmsg F
-GLIBC_2.18 getnameinfo F
-GLIBC_2.18 getnetbyaddr F
-GLIBC_2.18 getnetbyaddr_r F
-GLIBC_2.18 getnetbyname F
-GLIBC_2.18 getnetbyname_r F
-GLIBC_2.18 getnetent F
-GLIBC_2.18 getnetent_r F
-GLIBC_2.18 getnetgrent F
-GLIBC_2.18 getnetgrent_r F
-GLIBC_2.18 getnetname F
-GLIBC_2.18 getopt F
-GLIBC_2.18 getopt_long F
-GLIBC_2.18 getopt_long_only F
-GLIBC_2.18 getpagesize F
-GLIBC_2.18 getpass F
-GLIBC_2.18 getpeername F
-GLIBC_2.18 getpgid F
-GLIBC_2.18 getpgrp F
-GLIBC_2.18 getpid F
-GLIBC_2.18 getpmsg F
-GLIBC_2.18 getppid F
-GLIBC_2.18 getpriority F
-GLIBC_2.18 getprotobyname F
-GLIBC_2.18 getprotobyname_r F
-GLIBC_2.18 getprotobynumber F
-GLIBC_2.18 getprotobynumber_r F
-GLIBC_2.18 getprotoent F
-GLIBC_2.18 getprotoent_r F
-GLIBC_2.18 getpt F
-GLIBC_2.18 getpublickey F
-GLIBC_2.18 getpw F
-GLIBC_2.18 getpwent F
-GLIBC_2.18 getpwent_r F
-GLIBC_2.18 getpwnam F
-GLIBC_2.18 getpwnam_r F
-GLIBC_2.18 getpwuid F
-GLIBC_2.18 getpwuid_r F
-GLIBC_2.18 getresgid F
-GLIBC_2.18 getresuid F
-GLIBC_2.18 getrlimit F
-GLIBC_2.18 getrlimit64 F
-GLIBC_2.18 getrpcbyname F
-GLIBC_2.18 getrpcbyname_r F
-GLIBC_2.18 getrpcbynumber F
-GLIBC_2.18 getrpcbynumber_r F
-GLIBC_2.18 getrpcent F
-GLIBC_2.18 getrpcent_r F
-GLIBC_2.18 getrpcport F
-GLIBC_2.18 getrusage F
-GLIBC_2.18 gets F
-GLIBC_2.18 getsecretkey F
-GLIBC_2.18 getservbyname F
-GLIBC_2.18 getservbyname_r F
-GLIBC_2.18 getservbyport F
-GLIBC_2.18 getservbyport_r F
-GLIBC_2.18 getservent F
-GLIBC_2.18 getservent_r F
-GLIBC_2.18 getsgent F
-GLIBC_2.18 getsgent_r F
-GLIBC_2.18 getsgnam F
-GLIBC_2.18 getsgnam_r F
-GLIBC_2.18 getsid F
-GLIBC_2.18 getsockname F
-GLIBC_2.18 getsockopt F
-GLIBC_2.18 getsourcefilter F
-GLIBC_2.18 getspent F
-GLIBC_2.18 getspent_r F
-GLIBC_2.18 getspnam F
-GLIBC_2.18 getspnam_r F
-GLIBC_2.18 getsubopt F
-GLIBC_2.18 gettext F
-GLIBC_2.18 gettimeofday F
-GLIBC_2.18 getttyent F
-GLIBC_2.18 getttynam F
-GLIBC_2.18 getuid F
-GLIBC_2.18 getusershell F
-GLIBC_2.18 getutent F
-GLIBC_2.18 getutent_r F
-GLIBC_2.18 getutid F
-GLIBC_2.18 getutid_r F
-GLIBC_2.18 getutline F
-GLIBC_2.18 getutline_r F
-GLIBC_2.18 getutmp F
-GLIBC_2.18 getutmpx F
-GLIBC_2.18 getutxent F
-GLIBC_2.18 getutxid F
-GLIBC_2.18 getutxline F
-GLIBC_2.18 getw F
-GLIBC_2.18 getwc F
-GLIBC_2.18 getwc_unlocked F
-GLIBC_2.18 getwchar F
-GLIBC_2.18 getwchar_unlocked F
-GLIBC_2.18 getwd F
-GLIBC_2.18 getxattr F
-GLIBC_2.18 glob F
-GLIBC_2.18 glob64 F
-GLIBC_2.18 glob_pattern_p F
-GLIBC_2.18 globfree F
-GLIBC_2.18 globfree64 F
-GLIBC_2.18 gmtime F
-GLIBC_2.18 gmtime_r F
-GLIBC_2.18 gnu_dev_major F
-GLIBC_2.18 gnu_dev_makedev F
-GLIBC_2.18 gnu_dev_minor F
-GLIBC_2.18 gnu_get_libc_release F
-GLIBC_2.18 gnu_get_libc_version F
-GLIBC_2.18 grantpt F
-GLIBC_2.18 group_member F
-GLIBC_2.18 gsignal F
-GLIBC_2.18 gtty F
-GLIBC_2.18 h_errlist D 0x14
-GLIBC_2.18 h_nerr D 0x4
-GLIBC_2.18 hasmntopt F
-GLIBC_2.18 hcreate F
-GLIBC_2.18 hcreate_r F
-GLIBC_2.18 hdestroy F
-GLIBC_2.18 hdestroy_r F
-GLIBC_2.18 herror F
-GLIBC_2.18 host2netname F
-GLIBC_2.18 hsearch F
-GLIBC_2.18 hsearch_r F
-GLIBC_2.18 hstrerror F
-GLIBC_2.18 htonl F
-GLIBC_2.18 htons F
-GLIBC_2.18 iconv F
-GLIBC_2.18 iconv_close F
-GLIBC_2.18 iconv_open F
-GLIBC_2.18 if_freenameindex F
-GLIBC_2.18 if_indextoname F
-GLIBC_2.18 if_nameindex F
-GLIBC_2.18 if_nametoindex F
-GLIBC_2.18 imaxabs F
-GLIBC_2.18 imaxdiv F
-GLIBC_2.18 in6addr_any D 0x10
-GLIBC_2.18 in6addr_loopback D 0x10
-GLIBC_2.18 index F
-GLIBC_2.18 inet6_opt_append F
-GLIBC_2.18 inet6_opt_find F
-GLIBC_2.18 inet6_opt_finish F
-GLIBC_2.18 inet6_opt_get_val F
-GLIBC_2.18 inet6_opt_init F
-GLIBC_2.18 inet6_opt_next F
-GLIBC_2.18 inet6_opt_set_val F
-GLIBC_2.18 inet6_option_alloc F
-GLIBC_2.18 inet6_option_append F
-GLIBC_2.18 inet6_option_find F
-GLIBC_2.18 inet6_option_init F
-GLIBC_2.18 inet6_option_next F
-GLIBC_2.18 inet6_option_space F
-GLIBC_2.18 inet6_rth_add F
-GLIBC_2.18 inet6_rth_getaddr F
-GLIBC_2.18 inet6_rth_init F
-GLIBC_2.18 inet6_rth_reverse F
-GLIBC_2.18 inet6_rth_segments F
-GLIBC_2.18 inet6_rth_space F
-GLIBC_2.18 inet_addr F
-GLIBC_2.18 inet_aton F
-GLIBC_2.18 inet_lnaof F
-GLIBC_2.18 inet_makeaddr F
-GLIBC_2.18 inet_netof F
-GLIBC_2.18 inet_network F
-GLIBC_2.18 inet_nsap_addr F
-GLIBC_2.18 inet_nsap_ntoa F
-GLIBC_2.18 inet_ntoa F
-GLIBC_2.18 inet_ntop F
-GLIBC_2.18 inet_pton F
-GLIBC_2.18 init_module F
-GLIBC_2.18 initgroups F
-GLIBC_2.18 initstate F
-GLIBC_2.18 initstate_r F
-GLIBC_2.18 innetgr F
-GLIBC_2.18 inotify_add_watch F
-GLIBC_2.18 inotify_init F
-GLIBC_2.18 inotify_init1 F
-GLIBC_2.18 inotify_rm_watch F
-GLIBC_2.18 insque F
-GLIBC_2.18 ioctl F
-GLIBC_2.18 iruserok F
-GLIBC_2.18 iruserok_af F
-GLIBC_2.18 isalnum F
-GLIBC_2.18 isalnum_l F
-GLIBC_2.18 isalpha F
-GLIBC_2.18 isalpha_l F
-GLIBC_2.18 isascii F
-GLIBC_2.18 isastream F
-GLIBC_2.18 isatty F
-GLIBC_2.18 isblank F
-GLIBC_2.18 isblank_l F
-GLIBC_2.18 iscntrl F
-GLIBC_2.18 iscntrl_l F
-GLIBC_2.18 isctype F
-GLIBC_2.18 isdigit F
-GLIBC_2.18 isdigit_l F
-GLIBC_2.18 isfdtype F
-GLIBC_2.18 isgraph F
-GLIBC_2.18 isgraph_l F
-GLIBC_2.18 isinf F
-GLIBC_2.18 isinff F
-GLIBC_2.18 isinfl F
-GLIBC_2.18 islower F
-GLIBC_2.18 islower_l F
-GLIBC_2.18 isnan F
-GLIBC_2.18 isnanf F
-GLIBC_2.18 isnanl F
-GLIBC_2.18 isprint F
-GLIBC_2.18 isprint_l F
-GLIBC_2.18 ispunct F
-GLIBC_2.18 ispunct_l F
-GLIBC_2.18 isspace F
-GLIBC_2.18 isspace_l F
-GLIBC_2.18 isupper F
-GLIBC_2.18 isupper_l F
-GLIBC_2.18 iswalnum F
-GLIBC_2.18 iswalnum_l F
-GLIBC_2.18 iswalpha F
-GLIBC_2.18 iswalpha_l F
-GLIBC_2.18 iswblank F
-GLIBC_2.18 iswblank_l F
-GLIBC_2.18 iswcntrl F
-GLIBC_2.18 iswcntrl_l F
-GLIBC_2.18 iswctype F
-GLIBC_2.18 iswctype_l F
-GLIBC_2.18 iswdigit F
-GLIBC_2.18 iswdigit_l F
-GLIBC_2.18 iswgraph F
-GLIBC_2.18 iswgraph_l F
-GLIBC_2.18 iswlower F
-GLIBC_2.18 iswlower_l F
-GLIBC_2.18 iswprint F
-GLIBC_2.18 iswprint_l F
-GLIBC_2.18 iswpunct F
-GLIBC_2.18 iswpunct_l F
-GLIBC_2.18 iswspace F
-GLIBC_2.18 iswspace_l F
-GLIBC_2.18 iswupper F
-GLIBC_2.18 iswupper_l F
-GLIBC_2.18 iswxdigit F
-GLIBC_2.18 iswxdigit_l F
-GLIBC_2.18 isxdigit F
-GLIBC_2.18 isxdigit_l F
-GLIBC_2.18 jrand48 F
-GLIBC_2.18 jrand48_r F
-GLIBC_2.18 key_decryptsession F
-GLIBC_2.18 key_decryptsession_pk F
-GLIBC_2.18 key_encryptsession F
-GLIBC_2.18 key_encryptsession_pk F
-GLIBC_2.18 key_gendes F
-GLIBC_2.18 key_get_conv F
-GLIBC_2.18 key_secretkey_is_set F
-GLIBC_2.18 key_setnet F
-GLIBC_2.18 key_setsecret F
-GLIBC_2.18 kill F
-GLIBC_2.18 killpg F
-GLIBC_2.18 klogctl F
-GLIBC_2.18 l64a F
-GLIBC_2.18 labs F
-GLIBC_2.18 lchmod F
-GLIBC_2.18 lchown F
-GLIBC_2.18 lckpwdf F
-GLIBC_2.18 lcong48 F
-GLIBC_2.18 lcong48_r F
-GLIBC_2.18 ldexp F
-GLIBC_2.18 ldexpf F
-GLIBC_2.18 ldexpl F
-GLIBC_2.18 ldiv F
-GLIBC_2.18 lfind F
-GLIBC_2.18 lgetxattr F
-GLIBC_2.18 link F
-GLIBC_2.18 linkat F
-GLIBC_2.18 listen F
-GLIBC_2.18 listxattr F
-GLIBC_2.18 llabs F
-GLIBC_2.18 lldiv F
-GLIBC_2.18 llistxattr F
-GLIBC_2.18 llseek F
-GLIBC_2.18 loc1 D 0x4
-GLIBC_2.18 loc2 D 0x4
-GLIBC_2.18 localeconv F
-GLIBC_2.18 localtime F
-GLIBC_2.18 localtime_r F
-GLIBC_2.18 lockf F
-GLIBC_2.18 lockf64 F
-GLIBC_2.18 locs D 0x4
-GLIBC_2.18 longjmp F
-GLIBC_2.18 lrand48 F
-GLIBC_2.18 lrand48_r F
-GLIBC_2.18 lremovexattr F
-GLIBC_2.18 lsearch F
-GLIBC_2.18 lseek F
-GLIBC_2.18 lseek64 F
-GLIBC_2.18 lsetxattr F
-GLIBC_2.18 lutimes F
-GLIBC_2.18 madvise F
-GLIBC_2.18 makecontext F
-GLIBC_2.18 mallinfo F
-GLIBC_2.18 malloc F
-GLIBC_2.18 malloc_get_state F
-GLIBC_2.18 malloc_info F
-GLIBC_2.18 malloc_set_state F
-GLIBC_2.18 malloc_stats F
-GLIBC_2.18 malloc_trim F
-GLIBC_2.18 malloc_usable_size F
-GLIBC_2.18 mallopt F
-GLIBC_2.18 mallwatch D 0x4
-GLIBC_2.18 mblen F
-GLIBC_2.18 mbrlen F
-GLIBC_2.18 mbrtoc16 F
-GLIBC_2.18 mbrtoc32 F
-GLIBC_2.18 mbrtowc F
-GLIBC_2.18 mbsinit F
-GLIBC_2.18 mbsnrtowcs F
-GLIBC_2.18 mbsrtowcs F
-GLIBC_2.18 mbstowcs F
-GLIBC_2.18 mbtowc F
-GLIBC_2.18 mcheck F
-GLIBC_2.18 mcheck_check_all F
-GLIBC_2.18 mcheck_pedantic F
-GLIBC_2.18 memalign F
-GLIBC_2.18 memccpy F
-GLIBC_2.18 memchr F
-GLIBC_2.18 memcmp F
-GLIBC_2.18 memcpy F
-GLIBC_2.18 memfrob F
-GLIBC_2.18 memmem F
-GLIBC_2.18 memmove F
-GLIBC_2.18 mempcpy F
-GLIBC_2.18 memrchr F
-GLIBC_2.18 memset F
-GLIBC_2.18 mincore F
-GLIBC_2.18 mkdir F
-GLIBC_2.18 mkdirat F
-GLIBC_2.18 mkdtemp F
-GLIBC_2.18 mkfifo F
-GLIBC_2.18 mkfifoat F
-GLIBC_2.18 mkostemp F
-GLIBC_2.18 mkostemp64 F
-GLIBC_2.18 mkostemps F
-GLIBC_2.18 mkostemps64 F
-GLIBC_2.18 mkstemp F
-GLIBC_2.18 mkstemp64 F
-GLIBC_2.18 mkstemps F
-GLIBC_2.18 mkstemps64 F
-GLIBC_2.18 mktemp F
-GLIBC_2.18 mktime F
-GLIBC_2.18 mlock F
-GLIBC_2.18 mlockall F
-GLIBC_2.18 mmap F
-GLIBC_2.18 mmap64 F
-GLIBC_2.18 modf F
-GLIBC_2.18 modff F
-GLIBC_2.18 modfl F
-GLIBC_2.18 moncontrol F
-GLIBC_2.18 monstartup F
-GLIBC_2.18 mount F
-GLIBC_2.18 mprobe F
-GLIBC_2.18 mprotect F
-GLIBC_2.18 mrand48 F
-GLIBC_2.18 mrand48_r F
-GLIBC_2.18 mremap F
-GLIBC_2.18 msgctl F
-GLIBC_2.18 msgget F
-GLIBC_2.18 msgrcv F
-GLIBC_2.18 msgsnd F
-GLIBC_2.18 msync F
-GLIBC_2.18 mtrace F
-GLIBC_2.18 munlock F
-GLIBC_2.18 munlockall F
-GLIBC_2.18 munmap F
-GLIBC_2.18 muntrace F
-GLIBC_2.18 name_to_handle_at F
-GLIBC_2.18 nanosleep F
-GLIBC_2.18 netname2host F
-GLIBC_2.18 netname2user F
-GLIBC_2.18 newlocale F
-GLIBC_2.18 nfsservctl F
-GLIBC_2.18 nftw F
-GLIBC_2.18 nftw64 F
-GLIBC_2.18 ngettext F
-GLIBC_2.18 nice F
-GLIBC_2.18 nl_langinfo F
-GLIBC_2.18 nl_langinfo_l F
-GLIBC_2.18 nrand48 F
-GLIBC_2.18 nrand48_r F
-GLIBC_2.18 ntohl F
-GLIBC_2.18 ntohs F
-GLIBC_2.18 ntp_adjtime F
-GLIBC_2.18 ntp_gettime F
-GLIBC_2.18 ntp_gettimex F
-GLIBC_2.18 obstack_alloc_failed_handler D 0x4
-GLIBC_2.18 obstack_exit_failure D 0x4
-GLIBC_2.18 obstack_free F
-GLIBC_2.18 obstack_printf F
-GLIBC_2.18 obstack_vprintf F
-GLIBC_2.18 on_exit F
-GLIBC_2.18 open F
-GLIBC_2.18 open64 F
-GLIBC_2.18 open_by_handle_at F
-GLIBC_2.18 open_memstream F
-GLIBC_2.18 open_wmemstream F
-GLIBC_2.18 openat F
-GLIBC_2.18 openat64 F
-GLIBC_2.18 opendir F
-GLIBC_2.18 openlog F
-GLIBC_2.18 optarg D 0x4
-GLIBC_2.18 opterr D 0x4
-GLIBC_2.18 optind D 0x4
-GLIBC_2.18 optopt D 0x4
-GLIBC_2.18 parse_printf_format F
-GLIBC_2.18 passwd2des F
-GLIBC_2.18 pathconf F
-GLIBC_2.18 pause F
-GLIBC_2.18 pclose F
-GLIBC_2.18 perror F
-GLIBC_2.18 personality F
-GLIBC_2.18 pipe F
-GLIBC_2.18 pipe2 F
-GLIBC_2.18 pivot_root F
-GLIBC_2.18 pmap_getmaps F
-GLIBC_2.18 pmap_getport F
-GLIBC_2.18 pmap_rmtcall F
-GLIBC_2.18 pmap_set F
-GLIBC_2.18 pmap_unset F
-GLIBC_2.18 poll F
-GLIBC_2.18 popen F
-GLIBC_2.18 posix_fadvise F
-GLIBC_2.18 posix_fadvise64 F
-GLIBC_2.18 posix_fallocate F
-GLIBC_2.18 posix_fallocate64 F
-GLIBC_2.18 posix_madvise F
-GLIBC_2.18 posix_memalign F
-GLIBC_2.18 posix_openpt F
-GLIBC_2.18 posix_spawn F
-GLIBC_2.18 posix_spawn_file_actions_addclose F
-GLIBC_2.18 posix_spawn_file_actions_adddup2 F
-GLIBC_2.18 posix_spawn_file_actions_addopen F
-GLIBC_2.18 posix_spawn_file_actions_destroy F
-GLIBC_2.18 posix_spawn_file_actions_init F
-GLIBC_2.18 posix_spawnattr_destroy F
-GLIBC_2.18 posix_spawnattr_getflags F
-GLIBC_2.18 posix_spawnattr_getpgroup F
-GLIBC_2.18 posix_spawnattr_getschedparam F
-GLIBC_2.18 posix_spawnattr_getschedpolicy F
-GLIBC_2.18 posix_spawnattr_getsigdefault F
-GLIBC_2.18 posix_spawnattr_getsigmask F
-GLIBC_2.18 posix_spawnattr_init F
-GLIBC_2.18 posix_spawnattr_setflags F
-GLIBC_2.18 posix_spawnattr_setpgroup F
-GLIBC_2.18 posix_spawnattr_setschedparam F
-GLIBC_2.18 posix_spawnattr_setschedpolicy F
-GLIBC_2.18 posix_spawnattr_setsigdefault F
-GLIBC_2.18 posix_spawnattr_setsigmask F
-GLIBC_2.18 posix_spawnp F
-GLIBC_2.18 ppoll F
-GLIBC_2.18 prctl F
-GLIBC_2.18 pread F
-GLIBC_2.18 pread64 F
-GLIBC_2.18 preadv F
-GLIBC_2.18 preadv64 F
-GLIBC_2.18 printf F
-GLIBC_2.18 printf_size F
-GLIBC_2.18 printf_size_info F
-GLIBC_2.18 prlimit F
-GLIBC_2.18 prlimit64 F
-GLIBC_2.18 process_vm_readv F
-GLIBC_2.18 process_vm_writev F
-GLIBC_2.18 profil F
-GLIBC_2.18 program_invocation_name D 0x4
-GLIBC_2.18 program_invocation_short_name D 0x4
-GLIBC_2.18 pselect F
-GLIBC_2.18 psiginfo F
-GLIBC_2.18 psignal F
-GLIBC_2.18 pthread_attr_destroy F
-GLIBC_2.18 pthread_attr_getdetachstate F
-GLIBC_2.18 pthread_attr_getinheritsched F
-GLIBC_2.18 pthread_attr_getschedparam F
-GLIBC_2.18 pthread_attr_getschedpolicy F
-GLIBC_2.18 pthread_attr_getscope F
-GLIBC_2.18 pthread_attr_init F
-GLIBC_2.18 pthread_attr_setdetachstate F
-GLIBC_2.18 pthread_attr_setinheritsched F
-GLIBC_2.18 pthread_attr_setschedparam F
-GLIBC_2.18 pthread_attr_setschedpolicy F
-GLIBC_2.18 pthread_attr_setscope F
-GLIBC_2.18 pthread_cond_broadcast F
-GLIBC_2.18 pthread_cond_destroy F
-GLIBC_2.18 pthread_cond_init F
-GLIBC_2.18 pthread_cond_signal F
-GLIBC_2.18 pthread_cond_timedwait F
-GLIBC_2.18 pthread_cond_wait F
-GLIBC_2.18 pthread_condattr_destroy F
-GLIBC_2.18 pthread_condattr_init F
-GLIBC_2.18 pthread_equal F
-GLIBC_2.18 pthread_exit F
-GLIBC_2.18 pthread_getschedparam F
-GLIBC_2.18 pthread_mutex_destroy F
-GLIBC_2.18 pthread_mutex_init F
-GLIBC_2.18 pthread_mutex_lock F
-GLIBC_2.18 pthread_mutex_unlock F
-GLIBC_2.18 pthread_self F
-GLIBC_2.18 pthread_setcancelstate F
-GLIBC_2.18 pthread_setcanceltype F
-GLIBC_2.18 pthread_setschedparam F
-GLIBC_2.18 ptrace F
-GLIBC_2.18 ptsname F
-GLIBC_2.18 ptsname_r F
-GLIBC_2.18 putc F
-GLIBC_2.18 putc_unlocked F
-GLIBC_2.18 putchar F
-GLIBC_2.18 putchar_unlocked F
-GLIBC_2.18 putenv F
-GLIBC_2.18 putgrent F
-GLIBC_2.18 putmsg F
-GLIBC_2.18 putpmsg F
-GLIBC_2.18 putpwent F
-GLIBC_2.18 puts F
-GLIBC_2.18 putsgent F
-GLIBC_2.18 putspent F
-GLIBC_2.18 pututline F
-GLIBC_2.18 pututxline F
-GLIBC_2.18 putw F
-GLIBC_2.18 putwc F
-GLIBC_2.18 putwc_unlocked F
-GLIBC_2.18 putwchar F
-GLIBC_2.18 putwchar_unlocked F
-GLIBC_2.18 pvalloc F
-GLIBC_2.18 pwrite F
-GLIBC_2.18 pwrite64 F
-GLIBC_2.18 pwritev F
-GLIBC_2.18 pwritev64 F
-GLIBC_2.18 qecvt F
-GLIBC_2.18 qecvt_r F
-GLIBC_2.18 qfcvt F
-GLIBC_2.18 qfcvt_r F
-GLIBC_2.18 qgcvt F
-GLIBC_2.18 qsort F
-GLIBC_2.18 qsort_r F
-GLIBC_2.18 query_module F
-GLIBC_2.18 quick_exit F
-GLIBC_2.18 quotactl F
-GLIBC_2.18 raise F
-GLIBC_2.18 rand F
-GLIBC_2.18 rand_r F
-GLIBC_2.18 random F
-GLIBC_2.18 random_r F
-GLIBC_2.18 rawmemchr F
-GLIBC_2.18 rcmd F
-GLIBC_2.18 rcmd_af F
-GLIBC_2.18 re_comp F
-GLIBC_2.18 re_compile_fastmap F
-GLIBC_2.18 re_compile_pattern F
-GLIBC_2.18 re_exec F
-GLIBC_2.18 re_match F
-GLIBC_2.18 re_match_2 F
-GLIBC_2.18 re_search F
-GLIBC_2.18 re_search_2 F
-GLIBC_2.18 re_set_registers F
-GLIBC_2.18 re_set_syntax F
-GLIBC_2.18 re_syntax_options D 0x4
-GLIBC_2.18 read F
-GLIBC_2.18 readahead F
-GLIBC_2.18 readdir F
-GLIBC_2.18 readdir64 F
-GLIBC_2.18 readdir64_r F
-GLIBC_2.18 readdir_r F
-GLIBC_2.18 readlink F
-GLIBC_2.18 readlinkat F
-GLIBC_2.18 readv F
-GLIBC_2.18 realloc F
-GLIBC_2.18 realpath F
-GLIBC_2.18 reboot F
-GLIBC_2.18 recv F
-GLIBC_2.18 recvfrom F
-GLIBC_2.18 recvmmsg F
-GLIBC_2.18 recvmsg F
-GLIBC_2.18 regcomp F
-GLIBC_2.18 regerror F
-GLIBC_2.18 regexec F
-GLIBC_2.18 regfree F
-GLIBC_2.18 register_printf_function F
-GLIBC_2.18 register_printf_modifier F
-GLIBC_2.18 register_printf_specifier F
-GLIBC_2.18 register_printf_type F
-GLIBC_2.18 registerrpc F
-GLIBC_2.18 remap_file_pages F
-GLIBC_2.18 remove F
-GLIBC_2.18 removexattr F
-GLIBC_2.18 remque F
-GLIBC_2.18 rename F
-GLIBC_2.18 renameat F
-GLIBC_2.18 revoke F
-GLIBC_2.18 rewind F
-GLIBC_2.18 rewinddir F
-GLIBC_2.18 rexec F
-GLIBC_2.18 rexec_af F
-GLIBC_2.18 rexecoptions D 0x4
-GLIBC_2.18 rindex F
-GLIBC_2.18 rmdir F
-GLIBC_2.18 rpc_createerr D 0x10
-GLIBC_2.18 rpmatch F
-GLIBC_2.18 rresvport F
-GLIBC_2.18 rresvport_af F
-GLIBC_2.18 rtime F
-GLIBC_2.18 ruserok F
-GLIBC_2.18 ruserok_af F
-GLIBC_2.18 ruserpass F
-GLIBC_2.18 sbrk F
-GLIBC_2.18 scalbn F
-GLIBC_2.18 scalbnf F
-GLIBC_2.18 scalbnl F
-GLIBC_2.18 scandir F
-GLIBC_2.18 scandir64 F
-GLIBC_2.18 scandirat F
-GLIBC_2.18 scandirat64 F
-GLIBC_2.18 scanf F
-GLIBC_2.18 sched_get_priority_max F
-GLIBC_2.18 sched_get_priority_min F
-GLIBC_2.18 sched_getaffinity F
-GLIBC_2.18 sched_getcpu F
-GLIBC_2.18 sched_getparam F
-GLIBC_2.18 sched_getscheduler F
-GLIBC_2.18 sched_rr_get_interval F
-GLIBC_2.18 sched_setaffinity F
-GLIBC_2.18 sched_setparam F
-GLIBC_2.18 sched_setscheduler F
-GLIBC_2.18 sched_yield F
-GLIBC_2.18 secure_getenv F
-GLIBC_2.18 seed48 F
-GLIBC_2.18 seed48_r F
-GLIBC_2.18 seekdir F
-GLIBC_2.18 select F
-GLIBC_2.18 semctl F
-GLIBC_2.18 semget F
-GLIBC_2.18 semop F
-GLIBC_2.18 semtimedop F
-GLIBC_2.18 send F
-GLIBC_2.18 sendfile F
-GLIBC_2.18 sendfile64 F
-GLIBC_2.18 sendmmsg F
-GLIBC_2.18 sendmsg F
-GLIBC_2.18 sendto F
-GLIBC_2.18 setaliasent F
-GLIBC_2.18 setbuf F
-GLIBC_2.18 setbuffer F
-GLIBC_2.18 setcontext F
-GLIBC_2.18 setdomainname F
-GLIBC_2.18 setegid F
-GLIBC_2.18 setenv F
-GLIBC_2.18 seteuid F
-GLIBC_2.18 setfsent F
-GLIBC_2.18 setfsgid F
-GLIBC_2.18 setfsuid F
-GLIBC_2.18 setgid F
-GLIBC_2.18 setgrent F
-GLIBC_2.18 setgroups F
-GLIBC_2.18 sethostent F
-GLIBC_2.18 sethostid F
-GLIBC_2.18 sethostname F
-GLIBC_2.18 setipv4sourcefilter F
-GLIBC_2.18 setitimer F
-GLIBC_2.18 setjmp F
-GLIBC_2.18 setlinebuf F
-GLIBC_2.18 setlocale F
-GLIBC_2.18 setlogin F
-GLIBC_2.18 setlogmask F
-GLIBC_2.18 setmntent F
-GLIBC_2.18 setnetent F
-GLIBC_2.18 setnetgrent F
-GLIBC_2.18 setns F
-GLIBC_2.18 setpgid F
-GLIBC_2.18 setpgrp F
-GLIBC_2.18 setpriority F
-GLIBC_2.18 setprotoent F
-GLIBC_2.18 setpwent F
-GLIBC_2.18 setregid F
-GLIBC_2.18 setresgid F
-GLIBC_2.18 setresuid F
-GLIBC_2.18 setreuid F
-GLIBC_2.18 setrlimit F
-GLIBC_2.18 setrlimit64 F
-GLIBC_2.18 setrpcent F
-GLIBC_2.18 setservent F
-GLIBC_2.18 setsgent F
-GLIBC_2.18 setsid F
-GLIBC_2.18 setsockopt F
-GLIBC_2.18 setsourcefilter F
-GLIBC_2.18 setspent F
-GLIBC_2.18 setstate F
-GLIBC_2.18 setstate_r F
-GLIBC_2.18 settimeofday F
-GLIBC_2.18 setttyent F
-GLIBC_2.18 setuid F
-GLIBC_2.18 setusershell F
-GLIBC_2.18 setutent F
-GLIBC_2.18 setutxent F
-GLIBC_2.18 setvbuf F
-GLIBC_2.18 setxattr F
-GLIBC_2.18 sgetsgent F
-GLIBC_2.18 sgetsgent_r F
-GLIBC_2.18 sgetspent F
-GLIBC_2.18 sgetspent_r F
-GLIBC_2.18 shmat F
-GLIBC_2.18 shmctl F
-GLIBC_2.18 shmdt F
-GLIBC_2.18 shmget F
-GLIBC_2.18 shutdown F
-GLIBC_2.18 sigaction F
-GLIBC_2.18 sigaddset F
-GLIBC_2.18 sigaltstack F
-GLIBC_2.18 sigandset F
-GLIBC_2.18 sigblock F
-GLIBC_2.18 sigdelset F
-GLIBC_2.18 sigemptyset F
-GLIBC_2.18 sigfillset F
-GLIBC_2.18 siggetmask F
-GLIBC_2.18 sighold F
-GLIBC_2.18 sigignore F
-GLIBC_2.18 siginterrupt F
-GLIBC_2.18 sigisemptyset F
-GLIBC_2.18 sigismember F
-GLIBC_2.18 siglongjmp F
-GLIBC_2.18 signal F
-GLIBC_2.18 signalfd F
-GLIBC_2.18 sigorset F
-GLIBC_2.18 sigpause F
-GLIBC_2.18 sigpending F
-GLIBC_2.18 sigprocmask F
-GLIBC_2.18 sigqueue F
-GLIBC_2.18 sigrelse F
-GLIBC_2.18 sigreturn F
-GLIBC_2.18 sigset F
-GLIBC_2.18 sigsetmask F
-GLIBC_2.18 sigstack F
-GLIBC_2.18 sigsuspend F
-GLIBC_2.18 sigtimedwait F
-GLIBC_2.18 sigvec F
-GLIBC_2.18 sigwait F
-GLIBC_2.18 sigwaitinfo F
-GLIBC_2.18 sleep F
-GLIBC_2.18 snprintf F
-GLIBC_2.18 sockatmark F
-GLIBC_2.18 socket F
-GLIBC_2.18 socketpair F
-GLIBC_2.18 splice F
-GLIBC_2.18 sprintf F
-GLIBC_2.18 sprofil F
-GLIBC_2.18 srand F
-GLIBC_2.18 srand48 F
-GLIBC_2.18 srand48_r F
-GLIBC_2.18 srandom F
-GLIBC_2.18 srandom_r F
-GLIBC_2.18 sscanf F
-GLIBC_2.18 ssignal F
-GLIBC_2.18 sstk F
-GLIBC_2.18 statfs F
-GLIBC_2.18 statfs64 F
-GLIBC_2.18 statvfs F
-GLIBC_2.18 statvfs64 F
-GLIBC_2.18 stderr D 0x4
-GLIBC_2.18 stdin D 0x4
-GLIBC_2.18 stdout D 0x4
-GLIBC_2.18 step F
-GLIBC_2.18 stime F
-GLIBC_2.18 stpcpy F
-GLIBC_2.18 stpncpy F
-GLIBC_2.18 strcasecmp F
-GLIBC_2.18 strcasecmp_l F
-GLIBC_2.18 strcasestr F
-GLIBC_2.18 strcat F
-GLIBC_2.18 strchr F
-GLIBC_2.18 strchrnul F
-GLIBC_2.18 strcmp F
-GLIBC_2.18 strcoll F
-GLIBC_2.18 strcoll_l F
-GLIBC_2.18 strcpy F
-GLIBC_2.18 strcspn F
-GLIBC_2.18 strdup F
-GLIBC_2.18 strerror F
-GLIBC_2.18 strerror_l F
-GLIBC_2.18 strerror_r F
-GLIBC_2.18 strfmon F
-GLIBC_2.18 strfmon_l F
-GLIBC_2.18 strfry F
-GLIBC_2.18 strftime F
-GLIBC_2.18 strftime_l F
-GLIBC_2.18 strlen F
-GLIBC_2.18 strncasecmp F
-GLIBC_2.18 strncasecmp_l F
-GLIBC_2.18 strncat F
-GLIBC_2.18 strncmp F
-GLIBC_2.18 strncpy F
-GLIBC_2.18 strndup F
-GLIBC_2.18 strnlen F
-GLIBC_2.18 strpbrk F
-GLIBC_2.18 strptime F
-GLIBC_2.18 strptime_l F
-GLIBC_2.18 strrchr F
-GLIBC_2.18 strsep F
-GLIBC_2.18 strsignal F
-GLIBC_2.18 strspn F
-GLIBC_2.18 strstr F
-GLIBC_2.18 strtod F
-GLIBC_2.18 strtod_l F
-GLIBC_2.18 strtof F
-GLIBC_2.18 strtof_l F
-GLIBC_2.18 strtoimax F
-GLIBC_2.18 strtok F
-GLIBC_2.18 strtok_r F
-GLIBC_2.18 strtol F
-GLIBC_2.18 strtol_l F
-GLIBC_2.18 strtold F
-GLIBC_2.18 strtold_l F
-GLIBC_2.18 strtoll F
-GLIBC_2.18 strtoll_l F
-GLIBC_2.18 strtoq F
-GLIBC_2.18 strtoul F
-GLIBC_2.18 strtoul_l F
-GLIBC_2.18 strtoull F
-GLIBC_2.18 strtoull_l F
-GLIBC_2.18 strtoumax F
-GLIBC_2.18 strtouq F
-GLIBC_2.18 strverscmp F
-GLIBC_2.18 strxfrm F
-GLIBC_2.18 strxfrm_l F
-GLIBC_2.18 stty F
-GLIBC_2.18 svc_exit F
-GLIBC_2.18 svc_fdset D 0x80
-GLIBC_2.18 svc_getreq F
-GLIBC_2.18 svc_getreq_common F
-GLIBC_2.18 svc_getreq_poll F
-GLIBC_2.18 svc_getreqset F
-GLIBC_2.18 svc_max_pollfd D 0x4
-GLIBC_2.18 svc_pollfd D 0x4
-GLIBC_2.18 svc_register F
-GLIBC_2.18 svc_run F
-GLIBC_2.18 svc_sendreply F
-GLIBC_2.18 svc_unregister F
-GLIBC_2.18 svcauthdes_stats D 0xc
-GLIBC_2.18 svcerr_auth F
-GLIBC_2.18 svcerr_decode F
-GLIBC_2.18 svcerr_noproc F
-GLIBC_2.18 svcerr_noprog F
-GLIBC_2.18 svcerr_progvers F
-GLIBC_2.18 svcerr_systemerr F
-GLIBC_2.18 svcerr_weakauth F
-GLIBC_2.18 svcfd_create F
-GLIBC_2.18 svcraw_create F
-GLIBC_2.18 svctcp_create F
-GLIBC_2.18 svcudp_bufcreate F
-GLIBC_2.18 svcudp_create F
-GLIBC_2.18 svcudp_enablecache F
-GLIBC_2.18 svcunix_create F
-GLIBC_2.18 svcunixfd_create F
-GLIBC_2.18 swab F
-GLIBC_2.18 swapcontext F
-GLIBC_2.18 swapoff F
-GLIBC_2.18 swapon F
-GLIBC_2.18 swprintf F
-GLIBC_2.18 swscanf F
-GLIBC_2.18 symlink F
-GLIBC_2.18 symlinkat F
-GLIBC_2.18 sync F
-GLIBC_2.18 sync_file_range F
-GLIBC_2.18 syncfs F
-GLIBC_2.18 sys_errlist D 0x21c
-GLIBC_2.18 sys_nerr D 0x4
-GLIBC_2.18 sys_sigabbrev D 0x104
-GLIBC_2.18 sys_siglist D 0x104
-GLIBC_2.18 syscall F
-GLIBC_2.18 sysconf F
-GLIBC_2.18 sysctl F
-GLIBC_2.18 sysinfo F
-GLIBC_2.18 syslog F
-GLIBC_2.18 system F
-GLIBC_2.18 sysv_signal F
-GLIBC_2.18 tcdrain F
-GLIBC_2.18 tcflow F
-GLIBC_2.18 tcflush F
-GLIBC_2.18 tcgetattr F
-GLIBC_2.18 tcgetpgrp F
-GLIBC_2.18 tcgetsid F
-GLIBC_2.18 tcsendbreak F
-GLIBC_2.18 tcsetattr F
-GLIBC_2.18 tcsetpgrp F
-GLIBC_2.18 tdelete F
-GLIBC_2.18 tdestroy F
-GLIBC_2.18 tee F
-GLIBC_2.18 telldir F
-GLIBC_2.18 tempnam F
-GLIBC_2.18 textdomain F
-GLIBC_2.18 tfind F
-GLIBC_2.18 time F
-GLIBC_2.18 timegm F
-GLIBC_2.18 timelocal F
-GLIBC_2.18 timerfd_create F
-GLIBC_2.18 timerfd_gettime F
-GLIBC_2.18 timerfd_settime F
-GLIBC_2.18 times F
-GLIBC_2.18 timespec_get F
-GLIBC_2.18 timezone D 0x4
-GLIBC_2.18 tmpfile F
-GLIBC_2.18 tmpfile64 F
-GLIBC_2.18 tmpnam F
-GLIBC_2.18 tmpnam_r F
-GLIBC_2.18 toascii F
-GLIBC_2.18 tolower F
-GLIBC_2.18 tolower_l F
-GLIBC_2.18 toupper F
-GLIBC_2.18 toupper_l F
-GLIBC_2.18 towctrans F
-GLIBC_2.18 towctrans_l F
-GLIBC_2.18 towlower F
-GLIBC_2.18 towlower_l F
-GLIBC_2.18 towupper F
-GLIBC_2.18 towupper_l F
-GLIBC_2.18 tr_break F
-GLIBC_2.18 truncate F
-GLIBC_2.18 truncate64 F
-GLIBC_2.18 tsearch F
-GLIBC_2.18 ttyname F
-GLIBC_2.18 ttyname_r F
-GLIBC_2.18 ttyslot F
-GLIBC_2.18 twalk F
-GLIBC_2.18 tzname D 0x8
-GLIBC_2.18 tzset F
-GLIBC_2.18 ualarm F
-GLIBC_2.18 ulckpwdf F
-GLIBC_2.18 ulimit F
-GLIBC_2.18 umask F
-GLIBC_2.18 umount F
-GLIBC_2.18 umount2 F
-GLIBC_2.18 uname F
-GLIBC_2.18 ungetc F
-GLIBC_2.18 ungetwc F
-GLIBC_2.18 unlink F
-GLIBC_2.18 unlinkat F
-GLIBC_2.18 unlockpt F
-GLIBC_2.18 unsetenv F
-GLIBC_2.18 unshare F
-GLIBC_2.18 updwtmp F
-GLIBC_2.18 updwtmpx F
-GLIBC_2.18 uselib F
-GLIBC_2.18 uselocale F
-GLIBC_2.18 user2netname F
-GLIBC_2.18 usleep F
-GLIBC_2.18 ustat F
-GLIBC_2.18 utime F
-GLIBC_2.18 utimensat F
-GLIBC_2.18 utimes F
-GLIBC_2.18 utmpname F
-GLIBC_2.18 utmpxname F
-GLIBC_2.18 valloc F
-GLIBC_2.18 vasprintf F
-GLIBC_2.18 vdprintf F
-GLIBC_2.18 verr F
-GLIBC_2.18 verrx F
-GLIBC_2.18 versionsort F
-GLIBC_2.18 versionsort64 F
-GLIBC_2.18 vfork F
-GLIBC_2.18 vfprintf F
-GLIBC_2.18 vfscanf F
-GLIBC_2.18 vfwprintf F
-GLIBC_2.18 vfwscanf F
-GLIBC_2.18 vhangup F
-GLIBC_2.18 vlimit F
-GLIBC_2.18 vmsplice F
-GLIBC_2.18 vprintf F
-GLIBC_2.18 vscanf F
-GLIBC_2.18 vsnprintf F
-GLIBC_2.18 vsprintf F
-GLIBC_2.18 vsscanf F
-GLIBC_2.18 vswprintf F
-GLIBC_2.18 vswscanf F
-GLIBC_2.18 vsyslog F
-GLIBC_2.18 vtimes F
-GLIBC_2.18 vwarn F
-GLIBC_2.18 vwarnx F
-GLIBC_2.18 vwprintf F
-GLIBC_2.18 vwscanf F
-GLIBC_2.18 wait F
-GLIBC_2.18 wait3 F
-GLIBC_2.18 wait4 F
-GLIBC_2.18 waitid F
-GLIBC_2.18 waitpid F
-GLIBC_2.18 warn F
-GLIBC_2.18 warnx F
-GLIBC_2.18 wcpcpy F
-GLIBC_2.18 wcpncpy F
-GLIBC_2.18 wcrtomb F
-GLIBC_2.18 wcscasecmp F
-GLIBC_2.18 wcscasecmp_l F
-GLIBC_2.18 wcscat F
-GLIBC_2.18 wcschr F
-GLIBC_2.18 wcschrnul F
-GLIBC_2.18 wcscmp F
-GLIBC_2.18 wcscoll F
-GLIBC_2.18 wcscoll_l F
-GLIBC_2.18 wcscpy F
-GLIBC_2.18 wcscspn F
-GLIBC_2.18 wcsdup F
-GLIBC_2.18 wcsftime F
-GLIBC_2.18 wcsftime_l F
-GLIBC_2.18 wcslen F
-GLIBC_2.18 wcsncasecmp F
-GLIBC_2.18 wcsncasecmp_l F
-GLIBC_2.18 wcsncat F
-GLIBC_2.18 wcsncmp F
-GLIBC_2.18 wcsncpy F
-GLIBC_2.18 wcsnlen F
-GLIBC_2.18 wcsnrtombs F
-GLIBC_2.18 wcspbrk F
-GLIBC_2.18 wcsrchr F
-GLIBC_2.18 wcsrtombs F
-GLIBC_2.18 wcsspn F
-GLIBC_2.18 wcsstr F
-GLIBC_2.18 wcstod F
-GLIBC_2.18 wcstod_l F
-GLIBC_2.18 wcstof F
-GLIBC_2.18 wcstof_l F
-GLIBC_2.18 wcstoimax F
-GLIBC_2.18 wcstok F
-GLIBC_2.18 wcstol F
-GLIBC_2.18 wcstol_l F
-GLIBC_2.18 wcstold F
-GLIBC_2.18 wcstold_l F
-GLIBC_2.18 wcstoll F
-GLIBC_2.18 wcstoll_l F
-GLIBC_2.18 wcstombs F
-GLIBC_2.18 wcstoq F
-GLIBC_2.18 wcstoul F
-GLIBC_2.18 wcstoul_l F
-GLIBC_2.18 wcstoull F
-GLIBC_2.18 wcstoull_l F
-GLIBC_2.18 wcstoumax F
-GLIBC_2.18 wcstouq F
-GLIBC_2.18 wcswcs F
-GLIBC_2.18 wcswidth F
-GLIBC_2.18 wcsxfrm F
-GLIBC_2.18 wcsxfrm_l F
-GLIBC_2.18 wctob F
-GLIBC_2.18 wctomb F
-GLIBC_2.18 wctrans F
-GLIBC_2.18 wctrans_l F
-GLIBC_2.18 wctype F
-GLIBC_2.18 wctype_l F
-GLIBC_2.18 wcwidth F
-GLIBC_2.18 wmemchr F
-GLIBC_2.18 wmemcmp F
-GLIBC_2.18 wmemcpy F
-GLIBC_2.18 wmemmove F
-GLIBC_2.18 wmempcpy F
-GLIBC_2.18 wmemset F
-GLIBC_2.18 wordexp F
-GLIBC_2.18 wordfree F
-GLIBC_2.18 wprintf F
-GLIBC_2.18 write F
-GLIBC_2.18 writev F
-GLIBC_2.18 wscanf F
-GLIBC_2.18 xdecrypt F
-GLIBC_2.18 xdr_accepted_reply F
-GLIBC_2.18 xdr_array F
-GLIBC_2.18 xdr_authdes_cred F
-GLIBC_2.18 xdr_authdes_verf F
-GLIBC_2.18 xdr_authunix_parms F
-GLIBC_2.18 xdr_bool F
-GLIBC_2.18 xdr_bytes F
-GLIBC_2.18 xdr_callhdr F
-GLIBC_2.18 xdr_callmsg F
-GLIBC_2.18 xdr_char F
-GLIBC_2.18 xdr_cryptkeyarg F
-GLIBC_2.18 xdr_cryptkeyarg2 F
-GLIBC_2.18 xdr_cryptkeyres F
-GLIBC_2.18 xdr_des_block F
-GLIBC_2.18 xdr_double F
-GLIBC_2.18 xdr_enum F
-GLIBC_2.18 xdr_float F
-GLIBC_2.18 xdr_free F
-GLIBC_2.18 xdr_getcredres F
-GLIBC_2.18 xdr_hyper F
-GLIBC_2.18 xdr_int F
-GLIBC_2.18 xdr_int16_t F
-GLIBC_2.18 xdr_int32_t F
-GLIBC_2.18 xdr_int64_t F
-GLIBC_2.18 xdr_int8_t F
-GLIBC_2.18 xdr_key_netstarg F
-GLIBC_2.18 xdr_key_netstres F
-GLIBC_2.18 xdr_keybuf F
-GLIBC_2.18 xdr_keystatus F
-GLIBC_2.18 xdr_long F
-GLIBC_2.18 xdr_longlong_t F
-GLIBC_2.18 xdr_netnamestr F
-GLIBC_2.18 xdr_netobj F
-GLIBC_2.18 xdr_opaque F
-GLIBC_2.18 xdr_opaque_auth F
-GLIBC_2.18 xdr_pmap F
-GLIBC_2.18 xdr_pmaplist F
-GLIBC_2.18 xdr_pointer F
-GLIBC_2.18 xdr_quad_t F
-GLIBC_2.18 xdr_reference F
-GLIBC_2.18 xdr_rejected_reply F
-GLIBC_2.18 xdr_replymsg F
-GLIBC_2.18 xdr_rmtcall_args F
-GLIBC_2.18 xdr_rmtcallres F
-GLIBC_2.18 xdr_short F
-GLIBC_2.18 xdr_sizeof F
-GLIBC_2.18 xdr_string F
-GLIBC_2.18 xdr_u_char F
-GLIBC_2.18 xdr_u_hyper F
-GLIBC_2.18 xdr_u_int F
-GLIBC_2.18 xdr_u_long F
-GLIBC_2.18 xdr_u_longlong_t F
-GLIBC_2.18 xdr_u_quad_t F
-GLIBC_2.18 xdr_u_short F
-GLIBC_2.18 xdr_uint16_t F
-GLIBC_2.18 xdr_uint32_t F
-GLIBC_2.18 xdr_uint64_t F
-GLIBC_2.18 xdr_uint8_t F
-GLIBC_2.18 xdr_union F
-GLIBC_2.18 xdr_unixcred F
-GLIBC_2.18 xdr_vector F
-GLIBC_2.18 xdr_void F
-GLIBC_2.18 xdr_wrapstring F
-GLIBC_2.18 xdrmem_create F
-GLIBC_2.18 xdrrec_create F
-GLIBC_2.18 xdrrec_endofrecord F
-GLIBC_2.18 xdrrec_eof F
-GLIBC_2.18 xdrrec_skiprecord F
-GLIBC_2.18 xdrstdio_create F
-GLIBC_2.18 xencrypt F
-GLIBC_2.18 xprt_register F
-GLIBC_2.18 xprt_unregister F
-GLIBC_2.22 fmemopen F
-GLIBC_2.23 fts64_children F
-GLIBC_2.23 fts64_close F
-GLIBC_2.23 fts64_open F
-GLIBC_2.23 fts64_read F
-GLIBC_2.23 fts64_set F
-GLIBC_2.24 quick_exit F
-GLIBC_2.25 __explicit_bzero_chk F
-GLIBC_2.25 explicit_bzero F
-GLIBC_2.25 getentropy F
-GLIBC_2.25 getrandom F
-GLIBC_2.25 strfromd F
-GLIBC_2.25 strfromf F
-GLIBC_2.25 strfroml F
-GLIBC_2.26 preadv2 F
-GLIBC_2.26 preadv64v2 F
-GLIBC_2.26 pwritev2 F
-GLIBC_2.26 pwritev64v2 F
-GLIBC_2.26 reallocarray F
-GLIBC_2.27 copy_file_range F
-GLIBC_2.27 glob F
-GLIBC_2.27 glob64 F
-GLIBC_2.27 memfd_create F
-GLIBC_2.27 mlock2 F
-GLIBC_2.27 pkey_alloc F
-GLIBC_2.27 pkey_free F
-GLIBC_2.27 pkey_get F
-GLIBC_2.27 pkey_mprotect F
-GLIBC_2.27 pkey_set F
-GLIBC_2.27 strfromf32 F
-GLIBC_2.27 strfromf32x F
-GLIBC_2.27 strfromf64 F
-GLIBC_2.27 strtof32 F
-GLIBC_2.27 strtof32_l F
-GLIBC_2.27 strtof32x F
-GLIBC_2.27 strtof32x_l F
-GLIBC_2.27 strtof64 F
-GLIBC_2.27 strtof64_l F
-GLIBC_2.27 wcstof32 F
-GLIBC_2.27 wcstof32_l F
-GLIBC_2.27 wcstof32x F
-GLIBC_2.27 wcstof32x_l F
-GLIBC_2.27 wcstof64 F
-GLIBC_2.27 wcstof64_l F
-GLIBC_2.28 fcntl F
-GLIBC_2.28 fcntl64 F
-GLIBC_2.28 renameat2 F
-GLIBC_2.28 statx F
-GLIBC_2.28 thrd_current F
-GLIBC_2.28 thrd_equal F
-GLIBC_2.28 thrd_sleep F
-GLIBC_2.28 thrd_yield F
diff --git a/sysdeps/unix/sysv/linux/microblaze/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/libm.abilist
deleted file mode 100644
index 4a2c2e669e..0000000000
--- a/sysdeps/unix/sysv/linux/microblaze/libm.abilist
+++ /dev/null
@@ -1,767 +0,0 @@
-GLIBC_2.18 _LIB_VERSION D 0x4
-GLIBC_2.18 __acos_finite F
-GLIBC_2.18 __acosf_finite F
-GLIBC_2.18 __acosh_finite F
-GLIBC_2.18 __acoshf_finite F
-GLIBC_2.18 __asin_finite F
-GLIBC_2.18 __asinf_finite F
-GLIBC_2.18 __atan2_finite F
-GLIBC_2.18 __atan2f_finite F
-GLIBC_2.18 __atanh_finite F
-GLIBC_2.18 __atanhf_finite F
-GLIBC_2.18 __clog10 F
-GLIBC_2.18 __clog10f F
-GLIBC_2.18 __clog10l F
-GLIBC_2.18 __cosh_finite F
-GLIBC_2.18 __coshf_finite F
-GLIBC_2.18 __exp10_finite F
-GLIBC_2.18 __exp10f_finite F
-GLIBC_2.18 __exp2_finite F
-GLIBC_2.18 __exp2f_finite F
-GLIBC_2.18 __exp_finite F
-GLIBC_2.18 __expf_finite F
-GLIBC_2.18 __finite F
-GLIBC_2.18 __finitef F
-GLIBC_2.18 __finitel F
-GLIBC_2.18 __fmod_finite F
-GLIBC_2.18 __fmodf_finite F
-GLIBC_2.18 __fpclassify F
-GLIBC_2.18 __fpclassifyf F
-GLIBC_2.18 __gamma_r_finite F
-GLIBC_2.18 __gammaf_r_finite F
-GLIBC_2.18 __hypot_finite F
-GLIBC_2.18 __hypotf_finite F
-GLIBC_2.18 __issignaling F
-GLIBC_2.18 __issignalingf F
-GLIBC_2.18 __j0_finite F
-GLIBC_2.18 __j0f_finite F
-GLIBC_2.18 __j1_finite F
-GLIBC_2.18 __j1f_finite F
-GLIBC_2.18 __jn_finite F
-GLIBC_2.18 __jnf_finite F
-GLIBC_2.18 __lgamma_r_finite F
-GLIBC_2.18 __lgammaf_r_finite F
-GLIBC_2.18 __log10_finite F
-GLIBC_2.18 __log10f_finite F
-GLIBC_2.18 __log2_finite F
-GLIBC_2.18 __log2f_finite F
-GLIBC_2.18 __log_finite F
-GLIBC_2.18 __logf_finite F
-GLIBC_2.18 __pow_finite F
-GLIBC_2.18 __powf_finite F
-GLIBC_2.18 __remainder_finite F
-GLIBC_2.18 __remainderf_finite F
-GLIBC_2.18 __scalb_finite F
-GLIBC_2.18 __scalbf_finite F
-GLIBC_2.18 __signbit F
-GLIBC_2.18 __signbitf F
-GLIBC_2.18 __sinh_finite F
-GLIBC_2.18 __sinhf_finite F
-GLIBC_2.18 __sqrt_finite F
-GLIBC_2.18 __sqrtf_finite F
-GLIBC_2.18 __y0_finite F
-GLIBC_2.18 __y0f_finite F
-GLIBC_2.18 __y1_finite F
-GLIBC_2.18 __y1f_finite F
-GLIBC_2.18 __yn_finite F
-GLIBC_2.18 __ynf_finite F
-GLIBC_2.18 acos F
-GLIBC_2.18 acosf F
-GLIBC_2.18 acosh F
-GLIBC_2.18 acoshf F
-GLIBC_2.18 acoshl F
-GLIBC_2.18 acosl F
-GLIBC_2.18 asin F
-GLIBC_2.18 asinf F
-GLIBC_2.18 asinh F
-GLIBC_2.18 asinhf F
-GLIBC_2.18 asinhl F
-GLIBC_2.18 asinl F
-GLIBC_2.18 atan F
-GLIBC_2.18 atan2 F
-GLIBC_2.18 atan2f F
-GLIBC_2.18 atan2l F
-GLIBC_2.18 atanf F
-GLIBC_2.18 atanh F
-GLIBC_2.18 atanhf F
-GLIBC_2.18 atanhl F
-GLIBC_2.18 atanl F
-GLIBC_2.18 cabs F
-GLIBC_2.18 cabsf F
-GLIBC_2.18 cabsl F
-GLIBC_2.18 cacos F
-GLIBC_2.18 cacosf F
-GLIBC_2.18 cacosh F
-GLIBC_2.18 cacoshf F
-GLIBC_2.18 cacoshl F
-GLIBC_2.18 cacosl F
-GLIBC_2.18 carg F
-GLIBC_2.18 cargf F
-GLIBC_2.18 cargl F
-GLIBC_2.18 casin F
-GLIBC_2.18 casinf F
-GLIBC_2.18 casinh F
-GLIBC_2.18 casinhf F
-GLIBC_2.18 casinhl F
-GLIBC_2.18 casinl F
-GLIBC_2.18 catan F
-GLIBC_2.18 catanf F
-GLIBC_2.18 catanh F
-GLIBC_2.18 catanhf F
-GLIBC_2.18 catanhl F
-GLIBC_2.18 catanl F
-GLIBC_2.18 cbrt F
-GLIBC_2.18 cbrtf F
-GLIBC_2.18 cbrtl F
-GLIBC_2.18 ccos F
-GLIBC_2.18 ccosf F
-GLIBC_2.18 ccosh F
-GLIBC_2.18 ccoshf F
-GLIBC_2.18 ccoshl F
-GLIBC_2.18 ccosl F
-GLIBC_2.18 ceil F
-GLIBC_2.18 ceilf F
-GLIBC_2.18 ceill F
-GLIBC_2.18 cexp F
-GLIBC_2.18 cexpf F
-GLIBC_2.18 cexpl F
-GLIBC_2.18 cimag F
-GLIBC_2.18 cimagf F
-GLIBC_2.18 cimagl F
-GLIBC_2.18 clog F
-GLIBC_2.18 clog10 F
-GLIBC_2.18 clog10f F
-GLIBC_2.18 clog10l F
-GLIBC_2.18 clogf F
-GLIBC_2.18 clogl F
-GLIBC_2.18 conj F
-GLIBC_2.18 conjf F
-GLIBC_2.18 conjl F
-GLIBC_2.18 copysign F
-GLIBC_2.18 copysignf F
-GLIBC_2.18 copysignl F
-GLIBC_2.18 cos F
-GLIBC_2.18 cosf F
-GLIBC_2.18 cosh F
-GLIBC_2.18 coshf F
-GLIBC_2.18 coshl F
-GLIBC_2.18 cosl F
-GLIBC_2.18 cpow F
-GLIBC_2.18 cpowf F
-GLIBC_2.18 cpowl F
-GLIBC_2.18 cproj F
-GLIBC_2.18 cprojf F
-GLIBC_2.18 cprojl F
-GLIBC_2.18 creal F
-GLIBC_2.18 crealf F
-GLIBC_2.18 creall F
-GLIBC_2.18 csin F
-GLIBC_2.18 csinf F
-GLIBC_2.18 csinh F
-GLIBC_2.18 csinhf F
-GLIBC_2.18 csinhl F
-GLIBC_2.18 csinl F
-GLIBC_2.18 csqrt F
-GLIBC_2.18 csqrtf F
-GLIBC_2.18 csqrtl F
-GLIBC_2.18 ctan F
-GLIBC_2.18 ctanf F
-GLIBC_2.18 ctanh F
-GLIBC_2.18 ctanhf F
-GLIBC_2.18 ctanhl F
-GLIBC_2.18 ctanl F
-GLIBC_2.18 drem F
-GLIBC_2.18 dremf F
-GLIBC_2.18 dreml F
-GLIBC_2.18 erf F
-GLIBC_2.18 erfc F
-GLIBC_2.18 erfcf F
-GLIBC_2.18 erfcl F
-GLIBC_2.18 erff F
-GLIBC_2.18 erfl F
-GLIBC_2.18 exp F
-GLIBC_2.18 exp10 F
-GLIBC_2.18 exp10f F
-GLIBC_2.18 exp10l F
-GLIBC_2.18 exp2 F
-GLIBC_2.18 exp2f F
-GLIBC_2.18 exp2l F
-GLIBC_2.18 expf F
-GLIBC_2.18 expl F
-GLIBC_2.18 expm1 F
-GLIBC_2.18 expm1f F
-GLIBC_2.18 expm1l F
-GLIBC_2.18 fabs F
-GLIBC_2.18 fabsf F
-GLIBC_2.18 fabsl F
-GLIBC_2.18 fdim F
-GLIBC_2.18 fdimf F
-GLIBC_2.18 fdiml F
-GLIBC_2.18 feclearexcept F
-GLIBC_2.18 fedisableexcept F
-GLIBC_2.18 feenableexcept F
-GLIBC_2.18 fegetenv F
-GLIBC_2.18 fegetexcept F
-GLIBC_2.18 fegetexceptflag F
-GLIBC_2.18 fegetround F
-GLIBC_2.18 feholdexcept F
-GLIBC_2.18 feraiseexcept F
-GLIBC_2.18 fesetenv F
-GLIBC_2.18 fesetexceptflag F
-GLIBC_2.18 fesetround F
-GLIBC_2.18 fetestexcept F
-GLIBC_2.18 feupdateenv F
-GLIBC_2.18 finite F
-GLIBC_2.18 finitef F
-GLIBC_2.18 finitel F
-GLIBC_2.18 floor F
-GLIBC_2.18 floorf F
-GLIBC_2.18 floorl F
-GLIBC_2.18 fma F
-GLIBC_2.18 fmaf F
-GLIBC_2.18 fmal F
-GLIBC_2.18 fmax F
-GLIBC_2.18 fmaxf F
-GLIBC_2.18 fmaxl F
-GLIBC_2.18 fmin F
-GLIBC_2.18 fminf F
-GLIBC_2.18 fminl F
-GLIBC_2.18 fmod F
-GLIBC_2.18 fmodf F
-GLIBC_2.18 fmodl F
-GLIBC_2.18 frexp F
-GLIBC_2.18 frexpf F
-GLIBC_2.18 frexpl F
-GLIBC_2.18 gamma F
-GLIBC_2.18 gammaf F
-GLIBC_2.18 gammal F
-GLIBC_2.18 hypot F
-GLIBC_2.18 hypotf F
-GLIBC_2.18 hypotl F
-GLIBC_2.18 ilogb F
-GLIBC_2.18 ilogbf F
-GLIBC_2.18 ilogbl F
-GLIBC_2.18 j0 F
-GLIBC_2.18 j0f F
-GLIBC_2.18 j0l F
-GLIBC_2.18 j1 F
-GLIBC_2.18 j1f F
-GLIBC_2.18 j1l F
-GLIBC_2.18 jn F
-GLIBC_2.18 jnf F
-GLIBC_2.18 jnl F
-GLIBC_2.18 ldexp F
-GLIBC_2.18 ldexpf F
-GLIBC_2.18 ldexpl F
-GLIBC_2.18 lgamma F
-GLIBC_2.18 lgamma_r F
-GLIBC_2.18 lgammaf F
-GLIBC_2.18 lgammaf_r F
-GLIBC_2.18 lgammal F
-GLIBC_2.18 lgammal_r F
-GLIBC_2.18 llrint F
-GLIBC_2.18 llrintf F
-GLIBC_2.18 llrintl F
-GLIBC_2.18 llround F
-GLIBC_2.18 llroundf F
-GLIBC_2.18 llroundl F
-GLIBC_2.18 log F
-GLIBC_2.18 log10 F
-GLIBC_2.18 log10f F
-GLIBC_2.18 log10l F
-GLIBC_2.18 log1p F
-GLIBC_2.18 log1pf F
-GLIBC_2.18 log1pl F
-GLIBC_2.18 log2 F
-GLIBC_2.18 log2f F
-GLIBC_2.18 log2l F
-GLIBC_2.18 logb F
-GLIBC_2.18 logbf F
-GLIBC_2.18 logbl F
-GLIBC_2.18 logf F
-GLIBC_2.18 logl F
-GLIBC_2.18 lrint F
-GLIBC_2.18 lrintf F
-GLIBC_2.18 lrintl F
-GLIBC_2.18 lround F
-GLIBC_2.18 lroundf F
-GLIBC_2.18 lroundl F
-GLIBC_2.18 matherr F
-GLIBC_2.18 modf F
-GLIBC_2.18 modff F
-GLIBC_2.18 modfl F
-GLIBC_2.18 nan F
-GLIBC_2.18 nanf F
-GLIBC_2.18 nanl F
-GLIBC_2.18 nearbyint F
-GLIBC_2.18 nearbyintf F
-GLIBC_2.18 nearbyintl F
-GLIBC_2.18 nextafter F
-GLIBC_2.18 nextafterf F
-GLIBC_2.18 nextafterl F
-GLIBC_2.18 nexttoward F
-GLIBC_2.18 nexttowardf F
-GLIBC_2.18 nexttowardl F
-GLIBC_2.18 pow F
-GLIBC_2.18 pow10 F
-GLIBC_2.18 pow10f F
-GLIBC_2.18 pow10l F
-GLIBC_2.18 powf F
-GLIBC_2.18 powl F
-GLIBC_2.18 remainder F
-GLIBC_2.18 remainderf F
-GLIBC_2.18 remainderl F
-GLIBC_2.18 remquo F
-GLIBC_2.18 remquof F
-GLIBC_2.18 remquol F
-GLIBC_2.18 rint F
-GLIBC_2.18 rintf F
-GLIBC_2.18 rintl F
-GLIBC_2.18 round F
-GLIBC_2.18 roundf F
-GLIBC_2.18 roundl F
-GLIBC_2.18 scalb F
-GLIBC_2.18 scalbf F
-GLIBC_2.18 scalbl F
-GLIBC_2.18 scalbln F
-GLIBC_2.18 scalblnf F
-GLIBC_2.18 scalblnl F
-GLIBC_2.18 scalbn F
-GLIBC_2.18 scalbnf F
-GLIBC_2.18 scalbnl F
-GLIBC_2.18 signgam D 0x4
-GLIBC_2.18 significand F
-GLIBC_2.18 significandf F
-GLIBC_2.18 significandl F
-GLIBC_2.18 sin F
-GLIBC_2.18 sincos F
-GLIBC_2.18 sincosf F
-GLIBC_2.18 sincosl F
-GLIBC_2.18 sinf F
-GLIBC_2.18 sinh F
-GLIBC_2.18 sinhf F
-GLIBC_2.18 sinhl F
-GLIBC_2.18 sinl F
-GLIBC_2.18 sqrt F
-GLIBC_2.18 sqrtf F
-GLIBC_2.18 sqrtl F
-GLIBC_2.18 tan F
-GLIBC_2.18 tanf F
-GLIBC_2.18 tanh F
-GLIBC_2.18 tanhf F
-GLIBC_2.18 tanhl F
-GLIBC_2.18 tanl F
-GLIBC_2.18 tgamma F
-GLIBC_2.18 tgammaf F
-GLIBC_2.18 tgammal F
-GLIBC_2.18 trunc F
-GLIBC_2.18 truncf F
-GLIBC_2.18 truncl F
-GLIBC_2.18 y0 F
-GLIBC_2.18 y0f F
-GLIBC_2.18 y0l F
-GLIBC_2.18 y1 F
-GLIBC_2.18 y1f F
-GLIBC_2.18 y1l F
-GLIBC_2.18 yn F
-GLIBC_2.18 ynf F
-GLIBC_2.18 ynl F
-GLIBC_2.23 __signgam D 0x4
-GLIBC_2.23 lgamma F
-GLIBC_2.23 lgammaf F
-GLIBC_2.23 lgammal F
-GLIBC_2.24 nextdown F
-GLIBC_2.24 nextdownf F
-GLIBC_2.24 nextdownl F
-GLIBC_2.24 nextup F
-GLIBC_2.24 nextupf F
-GLIBC_2.24 nextupl F
-GLIBC_2.25 __iseqsig F
-GLIBC_2.25 __iseqsigf F
-GLIBC_2.25 canonicalize F
-GLIBC_2.25 canonicalizef F
-GLIBC_2.25 canonicalizel F
-GLIBC_2.25 fegetmode F
-GLIBC_2.25 fesetexcept F
-GLIBC_2.25 fesetmode F
-GLIBC_2.25 fetestexceptflag F
-GLIBC_2.25 fmaxmag F
-GLIBC_2.25 fmaxmagf F
-GLIBC_2.25 fmaxmagl F
-GLIBC_2.25 fminmag F
-GLIBC_2.25 fminmagf F
-GLIBC_2.25 fminmagl F
-GLIBC_2.25 fromfp F
-GLIBC_2.25 fromfpf F
-GLIBC_2.25 fromfpl F
-GLIBC_2.25 fromfpx F
-GLIBC_2.25 fromfpxf F
-GLIBC_2.25 fromfpxl F
-GLIBC_2.25 getpayload F
-GLIBC_2.25 getpayloadf F
-GLIBC_2.25 getpayloadl F
-GLIBC_2.25 llogb F
-GLIBC_2.25 llogbf F
-GLIBC_2.25 llogbl F
-GLIBC_2.25 roundeven F
-GLIBC_2.25 roundevenf F
-GLIBC_2.25 roundevenl F
-GLIBC_2.25 setpayload F
-GLIBC_2.25 setpayloadf F
-GLIBC_2.25 setpayloadl F
-GLIBC_2.25 setpayloadsig F
-GLIBC_2.25 setpayloadsigf F
-GLIBC_2.25 setpayloadsigl F
-GLIBC_2.25 totalorder F
-GLIBC_2.25 totalorderf F
-GLIBC_2.25 totalorderl F
-GLIBC_2.25 totalordermag F
-GLIBC_2.25 totalordermagf F
-GLIBC_2.25 totalordermagl F
-GLIBC_2.25 ufromfp F
-GLIBC_2.25 ufromfpf F
-GLIBC_2.25 ufromfpl F
-GLIBC_2.25 ufromfpx F
-GLIBC_2.25 ufromfpxf F
-GLIBC_2.25 ufromfpxl F
-GLIBC_2.27 acosf32 F
-GLIBC_2.27 acosf32x F
-GLIBC_2.27 acosf64 F
-GLIBC_2.27 acoshf32 F
-GLIBC_2.27 acoshf32x F
-GLIBC_2.27 acoshf64 F
-GLIBC_2.27 asinf32 F
-GLIBC_2.27 asinf32x F
-GLIBC_2.27 asinf64 F
-GLIBC_2.27 asinhf32 F
-GLIBC_2.27 asinhf32x F
-GLIBC_2.27 asinhf64 F
-GLIBC_2.27 atan2f32 F
-GLIBC_2.27 atan2f32x F
-GLIBC_2.27 atan2f64 F
-GLIBC_2.27 atanf32 F
-GLIBC_2.27 atanf32x F
-GLIBC_2.27 atanf64 F
-GLIBC_2.27 atanhf32 F
-GLIBC_2.27 atanhf32x F
-GLIBC_2.27 atanhf64 F
-GLIBC_2.27 cabsf32 F
-GLIBC_2.27 cabsf32x F
-GLIBC_2.27 cabsf64 F
-GLIBC_2.27 cacosf32 F
-GLIBC_2.27 cacosf32x F
-GLIBC_2.27 cacosf64 F
-GLIBC_2.27 cacoshf32 F
-GLIBC_2.27 cacoshf32x F
-GLIBC_2.27 cacoshf64 F
-GLIBC_2.27 canonicalizef32 F
-GLIBC_2.27 canonicalizef32x F
-GLIBC_2.27 canonicalizef64 F
-GLIBC_2.27 cargf32 F
-GLIBC_2.27 cargf32x F
-GLIBC_2.27 cargf64 F
-GLIBC_2.27 casinf32 F
-GLIBC_2.27 casinf32x F
-GLIBC_2.27 casinf64 F
-GLIBC_2.27 casinhf32 F
-GLIBC_2.27 casinhf32x F
-GLIBC_2.27 casinhf64 F
-GLIBC_2.27 catanf32 F
-GLIBC_2.27 catanf32x F
-GLIBC_2.27 catanf64 F
-GLIBC_2.27 catanhf32 F
-GLIBC_2.27 catanhf32x F
-GLIBC_2.27 catanhf64 F
-GLIBC_2.27 cbrtf32 F
-GLIBC_2.27 cbrtf32x F
-GLIBC_2.27 cbrtf64 F
-GLIBC_2.27 ccosf32 F
-GLIBC_2.27 ccosf32x F
-GLIBC_2.27 ccosf64 F
-GLIBC_2.27 ccoshf32 F
-GLIBC_2.27 ccoshf32x F
-GLIBC_2.27 ccoshf64 F
-GLIBC_2.27 ceilf32 F
-GLIBC_2.27 ceilf32x F
-GLIBC_2.27 ceilf64 F
-GLIBC_2.27 cexpf32 F
-GLIBC_2.27 cexpf32x F
-GLIBC_2.27 cexpf64 F
-GLIBC_2.27 cimagf32 F
-GLIBC_2.27 cimagf32x F
-GLIBC_2.27 cimagf64 F
-GLIBC_2.27 clog10f32 F
-GLIBC_2.27 clog10f32x F
-GLIBC_2.27 clog10f64 F
-GLIBC_2.27 clogf32 F
-GLIBC_2.27 clogf32x F
-GLIBC_2.27 clogf64 F
-GLIBC_2.27 conjf32 F
-GLIBC_2.27 conjf32x F
-GLIBC_2.27 conjf64 F
-GLIBC_2.27 copysignf32 F
-GLIBC_2.27 copysignf32x F
-GLIBC_2.27 copysignf64 F
-GLIBC_2.27 cosf32 F
-GLIBC_2.27 cosf32x F
-GLIBC_2.27 cosf64 F
-GLIBC_2.27 coshf32 F
-GLIBC_2.27 coshf32x F
-GLIBC_2.27 coshf64 F
-GLIBC_2.27 cpowf32 F
-GLIBC_2.27 cpowf32x F
-GLIBC_2.27 cpowf64 F
-GLIBC_2.27 cprojf32 F
-GLIBC_2.27 cprojf32x F
-GLIBC_2.27 cprojf64 F
-GLIBC_2.27 crealf32 F
-GLIBC_2.27 crealf32x F
-GLIBC_2.27 crealf64 F
-GLIBC_2.27 csinf32 F
-GLIBC_2.27 csinf32x F
-GLIBC_2.27 csinf64 F
-GLIBC_2.27 csinhf32 F
-GLIBC_2.27 csinhf32x F
-GLIBC_2.27 csinhf64 F
-GLIBC_2.27 csqrtf32 F
-GLIBC_2.27 csqrtf32x F
-GLIBC_2.27 csqrtf64 F
-GLIBC_2.27 ctanf32 F
-GLIBC_2.27 ctanf32x F
-GLIBC_2.27 ctanf64 F
-GLIBC_2.27 ctanhf32 F
-GLIBC_2.27 ctanhf32x F
-GLIBC_2.27 ctanhf64 F
-GLIBC_2.27 erfcf32 F
-GLIBC_2.27 erfcf32x F
-GLIBC_2.27 erfcf64 F
-GLIBC_2.27 erff32 F
-GLIBC_2.27 erff32x F
-GLIBC_2.27 erff64 F
-GLIBC_2.27 exp10f32 F
-GLIBC_2.27 exp10f32x F
-GLIBC_2.27 exp10f64 F
-GLIBC_2.27 exp2f F
-GLIBC_2.27 exp2f32 F
-GLIBC_2.27 exp2f32x F
-GLIBC_2.27 exp2f64 F
-GLIBC_2.27 expf F
-GLIBC_2.27 expf32 F
-GLIBC_2.27 expf32x F
-GLIBC_2.27 expf64 F
-GLIBC_2.27 expm1f32 F
-GLIBC_2.27 expm1f32x F
-GLIBC_2.27 expm1f64 F
-GLIBC_2.27 fabsf32 F
-GLIBC_2.27 fabsf32x F
-GLIBC_2.27 fabsf64 F
-GLIBC_2.27 fdimf32 F
-GLIBC_2.27 fdimf32x F
-GLIBC_2.27 fdimf64 F
-GLIBC_2.27 floorf32 F
-GLIBC_2.27 floorf32x F
-GLIBC_2.27 floorf64 F
-GLIBC_2.27 fmaf32 F
-GLIBC_2.27 fmaf32x F
-GLIBC_2.27 fmaf64 F
-GLIBC_2.27 fmaxf32 F
-GLIBC_2.27 fmaxf32x F
-GLIBC_2.27 fmaxf64 F
-GLIBC_2.27 fmaxmagf32 F
-GLIBC_2.27 fmaxmagf32x F
-GLIBC_2.27 fmaxmagf64 F
-GLIBC_2.27 fminf32 F
-GLIBC_2.27 fminf32x F
-GLIBC_2.27 fminf64 F
-GLIBC_2.27 fminmagf32 F
-GLIBC_2.27 fminmagf32x F
-GLIBC_2.27 fminmagf64 F
-GLIBC_2.27 fmodf32 F
-GLIBC_2.27 fmodf32x F
-GLIBC_2.27 fmodf64 F
-GLIBC_2.27 frexpf32 F
-GLIBC_2.27 frexpf32x F
-GLIBC_2.27 frexpf64 F
-GLIBC_2.27 fromfpf32 F
-GLIBC_2.27 fromfpf32x F
-GLIBC_2.27 fromfpf64 F
-GLIBC_2.27 fromfpxf32 F
-GLIBC_2.27 fromfpxf32x F
-GLIBC_2.27 fromfpxf64 F
-GLIBC_2.27 getpayloadf32 F
-GLIBC_2.27 getpayloadf32x F
-GLIBC_2.27 getpayloadf64 F
-GLIBC_2.27 hypotf32 F
-GLIBC_2.27 hypotf32x F
-GLIBC_2.27 hypotf64 F
-GLIBC_2.27 ilogbf32 F
-GLIBC_2.27 ilogbf32x F
-GLIBC_2.27 ilogbf64 F
-GLIBC_2.27 j0f32 F
-GLIBC_2.27 j0f32x F
-GLIBC_2.27 j0f64 F
-GLIBC_2.27 j1f32 F
-GLIBC_2.27 j1f32x F
-GLIBC_2.27 j1f64 F
-GLIBC_2.27 jnf32 F
-GLIBC_2.27 jnf32x F
-GLIBC_2.27 jnf64 F
-GLIBC_2.27 ldexpf32 F
-GLIBC_2.27 ldexpf32x F
-GLIBC_2.27 ldexpf64 F
-GLIBC_2.27 lgammaf32 F
-GLIBC_2.27 lgammaf32_r F
-GLIBC_2.27 lgammaf32x F
-GLIBC_2.27 lgammaf32x_r F
-GLIBC_2.27 lgammaf64 F
-GLIBC_2.27 lgammaf64_r F
-GLIBC_2.27 llogbf32 F
-GLIBC_2.27 llogbf32x F
-GLIBC_2.27 llogbf64 F
-GLIBC_2.27 llrintf32 F
-GLIBC_2.27 llrintf32x F
-GLIBC_2.27 llrintf64 F
-GLIBC_2.27 llroundf32 F
-GLIBC_2.27 llroundf32x F
-GLIBC_2.27 llroundf64 F
-GLIBC_2.27 log10f32 F
-GLIBC_2.27 log10f32x F
-GLIBC_2.27 log10f64 F
-GLIBC_2.27 log1pf32 F
-GLIBC_2.27 log1pf32x F
-GLIBC_2.27 log1pf64 F
-GLIBC_2.27 log2f F
-GLIBC_2.27 log2f32 F
-GLIBC_2.27 log2f32x F
-GLIBC_2.27 log2f64 F
-GLIBC_2.27 logbf32 F
-GLIBC_2.27 logbf32x F
-GLIBC_2.27 logbf64 F
-GLIBC_2.27 logf F
-GLIBC_2.27 logf32 F
-GLIBC_2.27 logf32x F
-GLIBC_2.27 logf64 F
-GLIBC_2.27 lrintf32 F
-GLIBC_2.27 lrintf32x F
-GLIBC_2.27 lrintf64 F
-GLIBC_2.27 lroundf32 F
-GLIBC_2.27 lroundf32x F
-GLIBC_2.27 lroundf64 F
-GLIBC_2.27 modff32 F
-GLIBC_2.27 modff32x F
-GLIBC_2.27 modff64 F
-GLIBC_2.27 nanf32 F
-GLIBC_2.27 nanf32x F
-GLIBC_2.27 nanf64 F
-GLIBC_2.27 nearbyintf32 F
-GLIBC_2.27 nearbyintf32x F
-GLIBC_2.27 nearbyintf64 F
-GLIBC_2.27 nextafterf32 F
-GLIBC_2.27 nextafterf32x F
-GLIBC_2.27 nextafterf64 F
-GLIBC_2.27 nextdownf32 F
-GLIBC_2.27 nextdownf32x F
-GLIBC_2.27 nextdownf64 F
-GLIBC_2.27 nextupf32 F
-GLIBC_2.27 nextupf32x F
-GLIBC_2.27 nextupf64 F
-GLIBC_2.27 powf F
-GLIBC_2.27 powf32 F
-GLIBC_2.27 powf32x F
-GLIBC_2.27 powf64 F
-GLIBC_2.27 remainderf32 F
-GLIBC_2.27 remainderf32x F
-GLIBC_2.27 remainderf64 F
-GLIBC_2.27 remquof32 F
-GLIBC_2.27 remquof32x F
-GLIBC_2.27 remquof64 F
-GLIBC_2.27 rintf32 F
-GLIBC_2.27 rintf32x F
-GLIBC_2.27 rintf64 F
-GLIBC_2.27 roundevenf32 F
-GLIBC_2.27 roundevenf32x F
-GLIBC_2.27 roundevenf64 F
-GLIBC_2.27 roundf32 F
-GLIBC_2.27 roundf32x F
-GLIBC_2.27 roundf64 F
-GLIBC_2.27 scalblnf32 F
-GLIBC_2.27 scalblnf32x F
-GLIBC_2.27 scalblnf64 F
-GLIBC_2.27 scalbnf32 F
-GLIBC_2.27 scalbnf32x F
-GLIBC_2.27 scalbnf64 F
-GLIBC_2.27 setpayloadf32 F
-GLIBC_2.27 setpayloadf32x F
-GLIBC_2.27 setpayloadf64 F
-GLIBC_2.27 setpayloadsigf32 F
-GLIBC_2.27 setpayloadsigf32x F
-GLIBC_2.27 setpayloadsigf64 F
-GLIBC_2.27 sincosf32 F
-GLIBC_2.27 sincosf32x F
-GLIBC_2.27 sincosf64 F
-GLIBC_2.27 sinf32 F
-GLIBC_2.27 sinf32x F
-GLIBC_2.27 sinf64 F
-GLIBC_2.27 sinhf32 F
-GLIBC_2.27 sinhf32x F
-GLIBC_2.27 sinhf64 F
-GLIBC_2.27 sqrtf32 F
-GLIBC_2.27 sqrtf32x F
-GLIBC_2.27 sqrtf64 F
-GLIBC_2.27 tanf32 F
-GLIBC_2.27 tanf32x F
-GLIBC_2.27 tanf64 F
-GLIBC_2.27 tanhf32 F
-GLIBC_2.27 tanhf32x F
-GLIBC_2.27 tanhf64 F
-GLIBC_2.27 tgammaf32 F
-GLIBC_2.27 tgammaf32x F
-GLIBC_2.27 tgammaf64 F
-GLIBC_2.27 totalorderf32 F
-GLIBC_2.27 totalorderf32x F
-GLIBC_2.27 totalorderf64 F
-GLIBC_2.27 totalordermagf32 F
-GLIBC_2.27 totalordermagf32x F
-GLIBC_2.27 totalordermagf64 F
-GLIBC_2.27 truncf32 F
-GLIBC_2.27 truncf32x F
-GLIBC_2.27 truncf64 F
-GLIBC_2.27 ufromfpf32 F
-GLIBC_2.27 ufromfpf32x F
-GLIBC_2.27 ufromfpf64 F
-GLIBC_2.27 ufromfpxf32 F
-GLIBC_2.27 ufromfpxf32x F
-GLIBC_2.27 ufromfpxf64 F
-GLIBC_2.27 y0f32 F
-GLIBC_2.27 y0f32x F
-GLIBC_2.27 y0f64 F
-GLIBC_2.27 y1f32 F
-GLIBC_2.27 y1f32x F
-GLIBC_2.27 y1f64 F
-GLIBC_2.27 ynf32 F
-GLIBC_2.27 ynf32x F
-GLIBC_2.27 ynf64 F
-GLIBC_2.28 daddl F
-GLIBC_2.28 ddivl F
-GLIBC_2.28 dmull F
-GLIBC_2.28 dsubl F
-GLIBC_2.28 f32addf32x F
-GLIBC_2.28 f32addf64 F
-GLIBC_2.28 f32divf32x F
-GLIBC_2.28 f32divf64 F
-GLIBC_2.28 f32mulf32x F
-GLIBC_2.28 f32mulf64 F
-GLIBC_2.28 f32subf32x F
-GLIBC_2.28 f32subf64 F
-GLIBC_2.28 f32xaddf64 F
-GLIBC_2.28 f32xdivf64 F
-GLIBC_2.28 f32xmulf64 F
-GLIBC_2.28 f32xsubf64 F
-GLIBC_2.28 fadd F
-GLIBC_2.28 faddl F
-GLIBC_2.28 fdiv F
-GLIBC_2.28 fdivl F
-GLIBC_2.28 fmul F
-GLIBC_2.28 fmull F
-GLIBC_2.28 fsub F
-GLIBC_2.28 fsubl F
diff --git a/sysdeps/unix/sysv/linux/microblaze/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/libpthread.abilist
deleted file mode 100644
index 5067375d23..0000000000
--- a/sysdeps/unix/sysv/linux/microblaze/libpthread.abilist
+++ /dev/null
@@ -1,245 +0,0 @@
-GLIBC_2.18 _IO_flockfile F
-GLIBC_2.18 _IO_ftrylockfile F
-GLIBC_2.18 _IO_funlockfile F
-GLIBC_2.18 __close F
-GLIBC_2.18 __connect F
-GLIBC_2.18 __errno_location F
-GLIBC_2.18 __fcntl F
-GLIBC_2.18 __fork F
-GLIBC_2.18 __h_errno_location F
-GLIBC_2.18 __libc_allocate_rtsig F
-GLIBC_2.18 __libc_current_sigrtmax F
-GLIBC_2.18 __libc_current_sigrtmin F
-GLIBC_2.18 __lseek F
-GLIBC_2.18 __nanosleep F
-GLIBC_2.18 __open F
-GLIBC_2.18 __open64 F
-GLIBC_2.18 __pread64 F
-GLIBC_2.18 __pthread_cleanup_routine F
-GLIBC_2.18 __pthread_getspecific F
-GLIBC_2.18 __pthread_key_create F
-GLIBC_2.18 __pthread_mutex_destroy F
-GLIBC_2.18 __pthread_mutex_init F
-GLIBC_2.18 __pthread_mutex_lock F
-GLIBC_2.18 __pthread_mutex_trylock F
-GLIBC_2.18 __pthread_mutex_unlock F
-GLIBC_2.18 __pthread_mutexattr_destroy F
-GLIBC_2.18 __pthread_mutexattr_init F
-GLIBC_2.18 __pthread_mutexattr_settype F
-GLIBC_2.18 __pthread_once F
-GLIBC_2.18 __pthread_register_cancel F
-GLIBC_2.18 __pthread_register_cancel_defer F
-GLIBC_2.18 __pthread_rwlock_destroy F
-GLIBC_2.18 __pthread_rwlock_init F
-GLIBC_2.18 __pthread_rwlock_rdlock F
-GLIBC_2.18 __pthread_rwlock_tryrdlock F
-GLIBC_2.18 __pthread_rwlock_trywrlock F
-GLIBC_2.18 __pthread_rwlock_unlock F
-GLIBC_2.18 __pthread_rwlock_wrlock F
-GLIBC_2.18 __pthread_setspecific F
-GLIBC_2.18 __pthread_unregister_cancel F
-GLIBC_2.18 __pthread_unregister_cancel_restore F
-GLIBC_2.18 __pthread_unwind_next F
-GLIBC_2.18 __pwrite64 F
-GLIBC_2.18 __read F
-GLIBC_2.18 __res_state F
-GLIBC_2.18 __send F
-GLIBC_2.18 __sigaction F
-GLIBC_2.18 __vfork F
-GLIBC_2.18 __wait F
-GLIBC_2.18 __write F
-GLIBC_2.18 _pthread_cleanup_pop F
-GLIBC_2.18 _pthread_cleanup_pop_restore F
-GLIBC_2.18 _pthread_cleanup_push F
-GLIBC_2.18 _pthread_cleanup_push_defer F
-GLIBC_2.18 accept F
-GLIBC_2.18 close F
-GLIBC_2.18 connect F
-GLIBC_2.18 fcntl F
-GLIBC_2.18 flockfile F
-GLIBC_2.18 fork F
-GLIBC_2.18 fsync F
-GLIBC_2.18 ftrylockfile F
-GLIBC_2.18 funlockfile F
-GLIBC_2.18 longjmp F
-GLIBC_2.18 lseek F
-GLIBC_2.18 lseek64 F
-GLIBC_2.18 msync F
-GLIBC_2.18 nanosleep F
-GLIBC_2.18 open F
-GLIBC_2.18 open64 F
-GLIBC_2.18 pause F
-GLIBC_2.18 pread F
-GLIBC_2.18 pread64 F
-GLIBC_2.18 pthread_attr_destroy F
-GLIBC_2.18 pthread_attr_getaffinity_np F
-GLIBC_2.18 pthread_attr_getdetachstate F
-GLIBC_2.18 pthread_attr_getguardsize F
-GLIBC_2.18 pthread_attr_getinheritsched F
-GLIBC_2.18 pthread_attr_getschedparam F
-GLIBC_2.18 pthread_attr_getschedpolicy F
-GLIBC_2.18 pthread_attr_getscope F
-GLIBC_2.18 pthread_attr_getstack F
-GLIBC_2.18 pthread_attr_getstackaddr F
-GLIBC_2.18 pthread_attr_getstacksize F
-GLIBC_2.18 pthread_attr_init F
-GLIBC_2.18 pthread_attr_setaffinity_np F
-GLIBC_2.18 pthread_attr_setdetachstate F
-GLIBC_2.18 pthread_attr_setguardsize F
-GLIBC_2.18 pthread_attr_setinheritsched F
-GLIBC_2.18 pthread_attr_setschedparam F
-GLIBC_2.18 pthread_attr_setschedpolicy F
-GLIBC_2.18 pthread_attr_setscope F
-GLIBC_2.18 pthread_attr_setstack F
-GLIBC_2.18 pthread_attr_setstackaddr F
-GLIBC_2.18 pthread_attr_setstacksize F
-GLIBC_2.18 pthread_barrier_destroy F
-GLIBC_2.18 pthread_barrier_init F
-GLIBC_2.18 pthread_barrier_wait F
-GLIBC_2.18 pthread_barrierattr_destroy F
-GLIBC_2.18 pthread_barrierattr_getpshared F
-GLIBC_2.18 pthread_barrierattr_init F
-GLIBC_2.18 pthread_barrierattr_setpshared F
-GLIBC_2.18 pthread_cancel F
-GLIBC_2.18 pthread_cond_broadcast F
-GLIBC_2.18 pthread_cond_destroy F
-GLIBC_2.18 pthread_cond_init F
-GLIBC_2.18 pthread_cond_signal F
-GLIBC_2.18 pthread_cond_timedwait F
-GLIBC_2.18 pthread_cond_wait F
-GLIBC_2.18 pthread_condattr_destroy F
-GLIBC_2.18 pthread_condattr_getclock F
-GLIBC_2.18 pthread_condattr_getpshared F
-GLIBC_2.18 pthread_condattr_init F
-GLIBC_2.18 pthread_condattr_setclock F
-GLIBC_2.18 pthread_condattr_setpshared F
-GLIBC_2.18 pthread_create F
-GLIBC_2.18 pthread_detach F
-GLIBC_2.18 pthread_equal F
-GLIBC_2.18 pthread_exit F
-GLIBC_2.18 pthread_getaffinity_np F
-GLIBC_2.18 pthread_getattr_default_np F
-GLIBC_2.18 pthread_getattr_np F
-GLIBC_2.18 pthread_getconcurrency F
-GLIBC_2.18 pthread_getcpuclockid F
-GLIBC_2.18 pthread_getname_np F
-GLIBC_2.18 pthread_getschedparam F
-GLIBC_2.18 pthread_getspecific F
-GLIBC_2.18 pthread_join F
-GLIBC_2.18 pthread_key_create F
-GLIBC_2.18 pthread_key_delete F
-GLIBC_2.18 pthread_kill F
-GLIBC_2.18 pthread_kill_other_threads_np F
-GLIBC_2.18 pthread_mutex_consistent F
-GLIBC_2.18 pthread_mutex_consistent_np F
-GLIBC_2.18 pthread_mutex_destroy F
-GLIBC_2.18 pthread_mutex_getprioceiling F
-GLIBC_2.18 pthread_mutex_init F
-GLIBC_2.18 pthread_mutex_lock F
-GLIBC_2.18 pthread_mutex_setprioceiling F
-GLIBC_2.18 pthread_mutex_timedlock F
-GLIBC_2.18 pthread_mutex_trylock F
-GLIBC_2.18 pthread_mutex_unlock F
-GLIBC_2.18 pthread_mutexattr_destroy F
-GLIBC_2.18 pthread_mutexattr_getkind_np F
-GLIBC_2.18 pthread_mutexattr_getprioceiling F
-GLIBC_2.18 pthread_mutexattr_getprotocol F
-GLIBC_2.18 pthread_mutexattr_getpshared F
-GLIBC_2.18 pthread_mutexattr_getrobust F
-GLIBC_2.18 pthread_mutexattr_getrobust_np F
-GLIBC_2.18 pthread_mutexattr_gettype F
-GLIBC_2.18 pthread_mutexattr_init F
-GLIBC_2.18 pthread_mutexattr_setkind_np F
-GLIBC_2.18 pthread_mutexattr_setprioceiling F
-GLIBC_2.18 pthread_mutexattr_setprotocol F
-GLIBC_2.18 pthread_mutexattr_setpshared F
-GLIBC_2.18 pthread_mutexattr_setrobust F
-GLIBC_2.18 pthread_mutexattr_setrobust_np F
-GLIBC_2.18 pthread_mutexattr_settype F
-GLIBC_2.18 pthread_once F
-GLIBC_2.18 pthread_rwlock_destroy F
-GLIBC_2.18 pthread_rwlock_init F
-GLIBC_2.18 pthread_rwlock_rdlock F
-GLIBC_2.18 pthread_rwlock_timedrdlock F
-GLIBC_2.18 pthread_rwlock_timedwrlock F
-GLIBC_2.18 pthread_rwlock_tryrdlock F
-GLIBC_2.18 pthread_rwlock_trywrlock F
-GLIBC_2.18 pthread_rwlock_unlock F
-GLIBC_2.18 pthread_rwlock_wrlock F
-GLIBC_2.18 pthread_rwlockattr_destroy F
-GLIBC_2.18 pthread_rwlockattr_getkind_np F
-GLIBC_2.18 pthread_rwlockattr_getpshared F
-GLIBC_2.18 pthread_rwlockattr_init F
-GLIBC_2.18 pthread_rwlockattr_setkind_np F
-GLIBC_2.18 pthread_rwlockattr_setpshared F
-GLIBC_2.18 pthread_self F
-GLIBC_2.18 pthread_setaffinity_np F
-GLIBC_2.18 pthread_setattr_default_np F
-GLIBC_2.18 pthread_setcancelstate F
-GLIBC_2.18 pthread_setcanceltype F
-GLIBC_2.18 pthread_setconcurrency F
-GLIBC_2.18 pthread_setname_np F
-GLIBC_2.18 pthread_setschedparam F
-GLIBC_2.18 pthread_setschedprio F
-GLIBC_2.18 pthread_setspecific F
-GLIBC_2.18 pthread_sigmask F
-GLIBC_2.18 pthread_sigqueue F
-GLIBC_2.18 pthread_spin_destroy F
-GLIBC_2.18 pthread_spin_init F
-GLIBC_2.18 pthread_spin_lock F
-GLIBC_2.18 pthread_spin_trylock F
-GLIBC_2.18 pthread_spin_unlock F
-GLIBC_2.18 pthread_testcancel F
-GLIBC_2.18 pthread_timedjoin_np F
-GLIBC_2.18 pthread_tryjoin_np F
-GLIBC_2.18 pthread_yield F
-GLIBC_2.18 pwrite F
-GLIBC_2.18 pwrite64 F
-GLIBC_2.18 raise F
-GLIBC_2.18 read F
-GLIBC_2.18 recv F
-GLIBC_2.18 recvfrom F
-GLIBC_2.18 recvmsg F
-GLIBC_2.18 sem_close F
-GLIBC_2.18 sem_destroy F
-GLIBC_2.18 sem_getvalue F
-GLIBC_2.18 sem_init F
-GLIBC_2.18 sem_open F
-GLIBC_2.18 sem_post F
-GLIBC_2.18 sem_timedwait F
-GLIBC_2.18 sem_trywait F
-GLIBC_2.18 sem_unlink F
-GLIBC_2.18 sem_wait F
-GLIBC_2.18 send F
-GLIBC_2.18 sendmsg F
-GLIBC_2.18 sendto F
-GLIBC_2.18 sigaction F
-GLIBC_2.18 siglongjmp F
-GLIBC_2.18 sigwait F
-GLIBC_2.18 system F
-GLIBC_2.18 tcdrain F
-GLIBC_2.18 vfork F
-GLIBC_2.18 wait F
-GLIBC_2.18 waitpid F
-GLIBC_2.18 write F
-GLIBC_2.28 call_once F
-GLIBC_2.28 cnd_broadcast F
-GLIBC_2.28 cnd_destroy F
-GLIBC_2.28 cnd_init F
-GLIBC_2.28 cnd_signal F
-GLIBC_2.28 cnd_timedwait F
-GLIBC_2.28 cnd_wait F
-GLIBC_2.28 mtx_destroy F
-GLIBC_2.28 mtx_init F
-GLIBC_2.28 mtx_lock F
-GLIBC_2.28 mtx_timedlock F
-GLIBC_2.28 mtx_trylock F
-GLIBC_2.28 mtx_unlock F
-GLIBC_2.28 thrd_create F
-GLIBC_2.28 thrd_detach F
-GLIBC_2.28 thrd_exit F
-GLIBC_2.28 thrd_join F
-GLIBC_2.28 tss_create F
-GLIBC_2.28 tss_delete F
-GLIBC_2.28 tss_get F
-GLIBC_2.28 tss_set F
diff --git a/sysdeps/unix/sysv/linux/microblaze/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/librt.abilist
deleted file mode 100644
index fb85d8729e..0000000000
--- a/sysdeps/unix/sysv/linux/microblaze/librt.abilist
+++ /dev/null
@@ -1,40 +0,0 @@
-GLIBC_2.18 __mq_open_2 F
-GLIBC_2.18 aio_cancel F
-GLIBC_2.18 aio_cancel64 F
-GLIBC_2.18 aio_error F
-GLIBC_2.18 aio_error64 F
-GLIBC_2.18 aio_fsync F
-GLIBC_2.18 aio_fsync64 F
-GLIBC_2.18 aio_init F
-GLIBC_2.18 aio_read F
-GLIBC_2.18 aio_read64 F
-GLIBC_2.18 aio_return F
-GLIBC_2.18 aio_return64 F
-GLIBC_2.18 aio_suspend F
-GLIBC_2.18 aio_suspend64 F
-GLIBC_2.18 aio_write F
-GLIBC_2.18 aio_write64 F
-GLIBC_2.18 clock_getcpuclockid F
-GLIBC_2.18 clock_getres F
-GLIBC_2.18 clock_gettime F
-GLIBC_2.18 clock_nanosleep F
-GLIBC_2.18 clock_settime F
-GLIBC_2.18 lio_listio F
-GLIBC_2.18 lio_listio64 F
-GLIBC_2.18 mq_close F
-GLIBC_2.18 mq_getattr F
-GLIBC_2.18 mq_notify F
-GLIBC_2.18 mq_open F
-GLIBC_2.18 mq_receive F
-GLIBC_2.18 mq_send F
-GLIBC_2.18 mq_setattr F
-GLIBC_2.18 mq_timedreceive F
-GLIBC_2.18 mq_timedsend F
-GLIBC_2.18 mq_unlink F
-GLIBC_2.18 shm_open F
-GLIBC_2.18 shm_unlink F
-GLIBC_2.18 timer_create F
-GLIBC_2.18 timer_delete F
-GLIBC_2.18 timer_getoverrun F
-GLIBC_2.18 timer_gettime F
-GLIBC_2.18 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/microblaze/profil-counter.h b/sysdeps/unix/sysv/linux/microblaze/profil-counter.h
deleted file mode 100644
index 8a6a0bcf3d..0000000000
--- a/sysdeps/unix/sysv/linux/microblaze/profil-counter.h
+++ /dev/null
@@ -1,2 +0,0 @@
-/* We can use the ix86 version. */
-#include <sysdeps/unix/sysv/linux/i386/profil-counter.h>
diff --git a/sysdeps/unix/sysv/linux/microblaze/pselect.c b/sysdeps/unix/sysv/linux/microblaze/pselect.c
new file mode 100644
index 0000000000..19efce86d8
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/microblaze/pselect.c
@@ -0,0 +1,73 @@
+/* Synchronous I/O multiplexing. Linux/microblaze version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <signal.h>
+#include <time.h>
+#include <sys/poll.h>
+#include <sysdep-cancel.h>
+
+#ifndef __ASSUME_PSELECT
+# define __pselect __pselect_syscall
+#endif
+
+/* If pselect is supported, just use the Linux generic implementation. */
+#include <sysdeps/unix/sysv/linux/pselect.c>
+
+#ifndef __ASSUME_PSELECT
+# undef __pselect
+int
+__pselect (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
+ const struct timespec *timeout, const sigset_t *sigmask)
+{
+ int ret = __pselect_syscall (nfds, readfds, writefds, exceptfds, timeout,
+ sigmask);
+ if (ret >= 0 || errno != ENOSYS)
+ return ret;
+
+ /* The fallback uses 'select' which shows the race condition regarding
+ signal mask set/restore, requires two additional syscalls, and has
+ a worse timeout precision (microseconds instead of nanoseconds). */
+
+ struct timeval tval, *ptval = NULL;
+ if (timeout != NULL)
+ {
+ if (! valid_nanoseconds (timeout->tv_nsec))
+ {
+ __set_errno (EINVAL);
+ return -1;
+ }
+
+ TIMESPEC_TO_TIMEVAL (&tval, timeout);
+ ptval = &tval;
+ }
+
+ sigset_t savemask;
+ if (sigmask != NULL)
+ __sigprocmask (SIG_SETMASK, sigmask, &savemask);
+
+ /* select itself is a cancellation entrypoint. */
+ ret = __select (nfds, readfds, writefds, exceptfds, ptval);
+
+ if (sigmask != NULL)
+ __sigprocmask (SIG_SETMASK, &savemask, NULL);
+
+ return ret;
+}
+weak_alias (__pselect, pselect)
+#endif
diff --git a/sysdeps/unix/sysv/linux/microblaze/pt-vfork.S b/sysdeps/unix/sysv/linux/microblaze/pt-vfork.S
deleted file mode 100644
index 74bc1cdf74..0000000000
--- a/sysdeps/unix/sysv/linux/microblaze/pt-vfork.S
+++ /dev/null
@@ -1,49 +0,0 @@
-/* vfork ABI-compatibility entry points for libpthread.
- Copyright (C) 2014-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <shlib-compat.h>
-
-/* libpthread used to have its own vfork implementation that differed
- from libc's only in having a pointless micro-optimization. There
- is no longer any use to having a separate copy in libpthread, but
- the historical ABI requires it. For static linking, there is no
- need to provide anything here--the libc version will be linked in.
- For shared library ABI compatibility, there must be __vfork and
- vfork symbols in libpthread.so.
-
- As of GCC 7, microblaze can *not* rely on the compiler to generate
- a tail call from this vfork to __libc_vfork. */
-
-#if (SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_20) \
- || SHLIB_COMPAT (libpthread, GLIBC_2_1_2, GLIBC_2_20))
-
-ENTRY (vfork_compat)
- bri __libc_vfork@PLT
-END (vfork_compat)
-
-#endif
-
-#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_20)
-compat_symbol (libpthread, vfork_compat, vfork, GLIBC_2_0)
-#endif
-
-#if SHLIB_COMPAT (libpthread, GLIBC_2_1_2, GLIBC_2_20)
-strong_alias (vfork_compat, vfork_compat2)
-compat_symbol (libpthread, vfork_compat2, __vfork, GLIBC_2_1_2)
-#endif
diff --git a/sysdeps/unix/sysv/linux/microblaze/sigcontextinfo.h b/sysdeps/unix/sysv/linux/microblaze/sigcontextinfo.h
index c99d0d7300..2793233d01 100644
--- a/sysdeps/unix/sysv/linux/microblaze/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/microblaze/sigcontextinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -14,7 +14,15 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#define SIGCONTEXT int _code, ucontext_t *
-#define GET_PC(ctx) ((void *) (ctx)->uc_mcontext.regs.pc)
+#ifndef _SIGCONTEXTINFO_H
+#define _SIGCONTEXTINFO_H
+
+static inline uintptr_t
+sigcontext_get_pc (const ucontext_t *ctx)
+{
+ return ctx->uc_mcontext.regs.pc;
+}
+
+#endif
diff --git a/sysdeps/unix/sysv/linux/microblaze/sys/procfs.h b/sysdeps/unix/sysv/linux/microblaze/sys/procfs.h
deleted file mode 100644
index 17c52519e7..0000000000
--- a/sysdeps/unix/sysv/linux/microblaze/sys/procfs.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/* Copyright (C) 1996-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_PROCFS_H
-#define _SYS_PROCFS_H 1
-
-/* This is somewhat modelled after the file of the same name on SVR4
- systems. It provides a definition of the core file format for ELF
- used on Linux. It doesn't have anything to do with the /proc file
- system, even though Linux has one.
-
- Anyway, the whole purpose of this file is for GDB and GDB only.
- Don't read too much into it. Don't use it for anything other than
- GDB unless you know what you are doing. */
-
-#include <sys/time.h>
-#include <sys/types.h>
-#include <sys/user.h>
-
-__BEGIN_DECLS
-
-/* Type for a general-purpose register. */
-typedef unsigned long elf_greg_t;
-
-/* And the whole bunch of them. We could have used `struct
- user_regs_struct' directly in the typedef, but tradition says that
- the register set is an array, which does have some peculiar
- semantics, so leave it that way. */
-#define ELF_NGREG (sizeof (struct user_regs_struct) / sizeof (elf_greg_t))
-typedef elf_greg_t elf_gregset_t[ELF_NGREG];
-
-/* Register set for the floating-point registers. */
-typedef struct user_fpregs_struct elf_fpregset_t;
-
-
-/* Signal info. */
-struct elf_siginfo
- {
- int si_signo; /* Signal number. */
- int si_code; /* Extra code. */
- int si_errno; /* Errno. */
- };
-
-/* Definitions to generate Intel SVR4-like core files. These mostly
- have the same names as the SVR4 types with "elf_" tacked on the
- front to prevent clashes with Linux definitions, and the typedef
- forms have been avoided. This is mostly like the SVR4 structure,
- but more Linuxy, with things that Linux does not support and which
- GDB doesn't really use excluded. */
-
-struct elf_prstatus
- {
- struct elf_siginfo pr_info; /* Info associated with signal. */
- short int pr_cursig; /* Current signal. */
- unsigned long int pr_sigpend; /* Set of pending signals. */
- unsigned long int pr_sighold; /* Set of held signals. */
- __pid_t pr_pid;
- __pid_t pr_ppid;
- __pid_t pr_pgrp;
- __pid_t pr_sid;
- struct timeval pr_utime; /* User time. */
- struct timeval pr_stime; /* System time. */
- struct timeval pr_cutime; /* Cumulative user time. */
- struct timeval pr_cstime; /* Cumulative system time. */
- elf_gregset_t pr_reg; /* GP registers. */
- int pr_fpvalid; /* True if math copro being used. */
- };
-
-
-#define ELF_PRARGSZ (80) /* Number of chars for args. */
-
-struct elf_prpsinfo
- {
- char pr_state; /* Numeric process state. */
- char pr_sname; /* Char for pr_state. */
- char pr_zomb; /* Zombie. */
- char pr_nice; /* Nice val. */
- unsigned long int pr_flag; /* Flags. */
- unsigned short int pr_uid;
- unsigned short int pr_gid;
- int pr_pid, pr_ppid, pr_pgrp, pr_sid;
- /* Lots missing. */
- char pr_fname[16]; /* Filename of executable. */
- char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
- };
-
-/* The rest of this file provides the types for emulation of the
- Solaris <proc_service.h> interfaces that should be implemented by
- users of libthread_db. */
-
-/* Addresses. */
-typedef void *psaddr_t;
-
-/* Register sets. Linux has different names. */
-typedef elf_gregset_t prgregset_t;
-typedef elf_fpregset_t prfpregset_t;
-
-/* We don't have any differences between processes and threads,
- therefore have only one PID type. */
-typedef __pid_t lwpid_t;
-
-/* Process status and info. In the end we do provide typedefs for them. */
-typedef struct elf_prstatus prstatus_t;
-typedef struct elf_prpsinfo prpsinfo_t;
-
-__END_DECLS
-
-#endif /* sys/procfs.h. */
diff --git a/sysdeps/unix/sysv/linux/microblaze/sys/ucontext.h b/sysdeps/unix/sysv/linux/microblaze/sys/ucontext.h
index 1f6312c81d..aea29e9f1b 100644
--- a/sysdeps/unix/sysv/linux/microblaze/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/microblaze/sys/ucontext.h
@@ -1,5 +1,5 @@
/* Data structures for user-level context switching. MicroBlaze version.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_UCONTEXT_H
#define _SYS_UCONTEXT_H 1
diff --git a/sysdeps/unix/sysv/linux/microblaze/sys/user.h b/sysdeps/unix/sysv/linux/microblaze/sys/user.h
index fa09c5dbf2..363c837d96 100644
--- a/sysdeps/unix/sysv/linux/microblaze/sys/user.h
+++ b/sysdeps/unix/sysv/linux/microblaze/sys/user.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_USER_H
# define _SYS_USER_H 1
diff --git a/sysdeps/unix/sysv/linux/microblaze/syscall.S b/sysdeps/unix/sysv/linux/microblaze/syscall.S
index ece52e766c..092d9b85f8 100644
--- a/sysdeps/unix/sysv/linux/microblaze/syscall.S
+++ b/sysdeps/unix/sysv/linux/microblaze/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/microblaze/sysdep.S b/sysdeps/unix/sysv/linux/microblaze/sysdep.S
index 3f8591c0e4..85e02f019c 100644
--- a/sysdeps/unix/sysv/linux/microblaze/sysdep.S
+++ b/sysdeps/unix/sysv/linux/microblaze/sysdep.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/microblaze/sysdep.h b/sysdeps/unix/sysv/linux/microblaze/sysdep.h
index 7b05047ad4..980b4e0c8f 100644
--- a/sysdeps/unix/sysv/linux/microblaze/sysdep.h
+++ b/sysdeps/unix/sysv/linux/microblaze/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LINUX_MICROBLAZE_SYSDEP_H
#define _LINUX_MICROBLAZE_SYSDEP_H 1
diff --git a/sysdeps/unix/sysv/linux/microblaze/vfork.S b/sysdeps/unix/sysv/linux/microblaze/vfork.S
index 01b0037b23..564ab3aa34 100644
--- a/sysdeps/unix/sysv/linux/microblaze/vfork.S
+++ b/sysdeps/unix/sysv/linux/microblaze/vfork.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#define _ERRNO_H 1
diff --git a/sysdeps/unix/sysv/linux/mips/Makefile b/sysdeps/unix/sysv/linux/mips/Makefile
index 8217f42e75..03044e7365 100644
--- a/sysdeps/unix/sysv/linux/mips/Makefile
+++ b/sysdeps/unix/sysv/linux/mips/Makefile
@@ -63,14 +63,25 @@ sysdep-dl-routines += dl-static
sysdep_routines += dl-vdso
endif
-
-# Supporting non-executable stacks on MIPS requires changes to both
-# the Linux kernel and glibc. See
-# <https://sourceware.org/ml/libc-alpha/2016-01/msg00567.html> and
-# <https://sourceware.org/ml/libc-alpha/2016-01/msg00719.html>.
+# If the compiler doesn't use GNU.stack note,
+# this test is expected to fail.
+ifneq ($(mips-has-gnustack),yes)
test-xfail-check-execstack = yes
endif
+endif
ifeq ($(subdir),stdlib)
gen-as-const-headers += ucontext_i.sym
endif
+
+ifeq ($(mips-force-execstack),yes)
+CFLAGS-.o += -Wa,-execstack
+CFLAGS-.os += -Wa,-execstack
+CFLAGS-.op += -Wa,-execstack
+CFLAGS-.oS += -Wa,-execstack
+
+ASFLAGS-.o += -Wa,-execstack
+ASFLAGS-.os += -Wa,-execstack
+ASFLAGS-.op += -Wa,-execstack
+ASFLAGS-.oS += -Wa,-execstack
+endif
diff --git a/sysdeps/unix/sysv/linux/mips/____longjmp_chk.c b/sysdeps/unix/sysv/linux/mips/____longjmp_chk.c
index 50e2a1e616..d7449ff853 100644
--- a/sysdeps/unix/sysv/linux/mips/____longjmp_chk.c
+++ b/sysdeps/unix/sysv/linux/mips/____longjmp_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <signal.h>
#include <stdio.h>
diff --git a/sysdeps/unix/sysv/linux/mips/_test_and_set.c b/sysdeps/unix/sysv/linux/mips/_test_and_set.c
index 8aefc27dbf..cb8c6aa992 100644
--- a/sysdeps/unix/sysv/linux/mips/_test_and_set.c
+++ b/sysdeps/unix/sysv/linux/mips/_test_and_set.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Maciej W. Rozycki <macro@ds2.pg.gda.pl>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define the real-function versions of all inline functions
defined in sys/tas.h */
diff --git a/sysdeps/unix/sysv/linux/mips/bits/epoll.h b/sysdeps/unix/sysv/linux/mips/bits/epoll.h
index d4aea329ac..8377319856 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/epoll.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/epoll.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_EPOLL_H
# error "Never use <bits/epoll.h> directly; include <sys/epoll.h> instead."
diff --git a/sysdeps/unix/sysv/linux/mips/bits/errno.h b/sysdeps/unix/sysv/linux/mips/bits/errno.h
index 85aca35dbe..45f73a829a 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/errno.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/errno.h
@@ -1,5 +1,5 @@
/* Error constants. MIPS/Linux specific version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_ERRNO_H
diff --git a/sysdeps/unix/sysv/linux/mips/bits/eventfd.h b/sysdeps/unix/sysv/linux/mips/bits/eventfd.h
index bb896b1330..13dda1bf10 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/eventfd.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/eventfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_EVENTFD_H
# error "Never use <bits/eventfd.h> directly; include <sys/eventfd.h> instead."
diff --git a/sysdeps/unix/sysv/linux/mips/bits/fcntl.h b/sysdeps/unix/sysv/linux/mips/bits/fcntl.h
index 4e37b398bd..674d1017db 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/fcntl.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/fcntl.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for Linux.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FCNTL_H
# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
diff --git a/sysdeps/unix/sysv/linux/mips/bits/inotify.h b/sysdeps/unix/sysv/linux/mips/bits/inotify.h
index 0ba5a2a321..499e02897c 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/inotify.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/inotify.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_INOTIFY_H
# error "Never use <bits/inotify.h> directly; include <sys/inotify.h> instead."
diff --git a/sysdeps/unix/sysv/linux/mips/bits/ioctl-types.h b/sysdeps/unix/sysv/linux/mips/bits/ioctl-types.h
index 9d73b1a1fe..4ae2d9b778 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/ioctl-types.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/ioctl-types.h
@@ -1,5 +1,5 @@
/* Structure types for pre-termios terminal ioctls. Linux/MIPS version.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_IOCTL_H
# error "Never use <bits/ioctl-types.h> directly; include <sys/ioctl.h> instead."
diff --git a/sysdeps/unix/sysv/linux/mips/bits/ipc.h b/sysdeps/unix/sysv/linux/mips/bits/ipc.h
deleted file mode 100644
index d5e968711c..0000000000
--- a/sysdeps/unix/sysv/linux/mips/bits/ipc.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Copyright (C) 1995-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_IPC_H
-# error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
-#endif
-
-#include <bits/types.h>
-
-/* Mode bits for `msgget', `semget', and `shmget'. */
-#define IPC_CREAT 01000 /* Create key if key does not exist. */
-#define IPC_EXCL 02000 /* Fail if key exists. */
-#define IPC_NOWAIT 04000 /* Return error on wait. */
-
-/* Control commands for `msgctl', `semctl', and `shmctl'. */
-#define IPC_RMID 0 /* Remove identifier. */
-#define IPC_SET 1 /* Set `ipc_perm' options. */
-#define IPC_STAT 2 /* Get `ipc_perm' options. */
-#ifdef __USE_GNU
-# define IPC_INFO 3 /* See ipcs. */
-#endif
-
-/* Special key values. */
-#define IPC_PRIVATE ((__key_t) 0) /* Private key. */
-
-
-/* Data structure used to pass permission information to IPC operations. */
-struct ipc_perm
- {
- __key_t __key; /* Key. */
- unsigned int uid; /* Owner's user ID. */
- unsigned int gid; /* Owner's group ID. */
- unsigned int cuid; /* Creator's user ID. */
- unsigned int cgid; /* Creator's group ID. */
- unsigned int mode; /* Read/write permission. */
- unsigned short int __seq; /* Sequence number. */
- unsigned short int __pad1;
- unsigned long int __glibc_reserved1;
- unsigned long int __glibc_reserved2;
-};
diff --git a/sysdeps/unix/sysv/linux/mips/bits/local_lim.h b/sysdeps/unix/sysv/linux/mips/bits/local_lim.h
index e32ad5ad70..846d17b554 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/local_lim.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/local_lim.h
@@ -1,5 +1,5 @@
/* Minimum guaranteed maximum values for system limits. MIPS Linux version.
- Copyright (C) 1993-2018 Free Software Foundation, Inc.
+ Copyright (C) 1993-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* The kernel header pollutes the namespace with the NR_OPEN symbol
and defines LINK_MAX although filesystems have different maxima. A
diff --git a/sysdeps/unix/sysv/linux/mips/bits/mman.h b/sysdeps/unix/sysv/linux/mips/bits/mman.h
index 102bc6dd03..a91d844ba2 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/mman.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/mman.h
@@ -1,5 +1,5 @@
/* Definitions for POSIX memory map interface. Linux/MIPS version.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_MMAN_H
# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
diff --git a/sysdeps/unix/sysv/linux/mips/bits/msq-pad.h b/sysdeps/unix/sysv/linux/mips/bits/msq-pad.h
new file mode 100644
index 0000000000..223c062e3f
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/bits/msq-pad.h
@@ -0,0 +1,31 @@
+/* Define where padding goes in struct msqid_ds. MIPS version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_MSG_H
+# error "Never use <bits/msq-pad.h> directly; include <sys/msg.h> instead."
+#endif
+
+#include <bits/timesize.h>
+
+#ifdef __MIPSEL__
+# define __MSQ_PAD_AFTER_TIME (__TIMESIZE == 32)
+# define __MSQ_PAD_BEFORE_TIME 0
+#else
+# define __MSQ_PAD_AFTER_TIME 0
+# define __MSQ_PAD_BEFORE_TIME (__TIMESIZE == 32)
+#endif
diff --git a/sysdeps/unix/sysv/linux/mips/bits/msq.h b/sysdeps/unix/sysv/linux/mips/bits/msq.h
deleted file mode 100644
index 9999aa99db..0000000000
--- a/sysdeps/unix/sysv/linux/mips/bits/msq.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/* Copyright (C) 2002-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_MSG_H
-# error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
-#endif
-
-#include <bits/types.h>
-
-/* Define options for message queue functions. */
-#define MSG_NOERROR 010000 /* no error if message is too big */
-#ifdef __USE_GNU
-# define MSG_EXCEPT 020000 /* recv any msg except of specified type */
-# define MSG_COPY 040000 /* copy (not remove) all queue messages */
-#endif
-
-/* Types used in the structure definition. */
-typedef unsigned long int msgqnum_t;
-typedef unsigned long int msglen_t;
-
-
-/* Structure of record for one message inside the kernel.
- The type `struct msg' is opaque. */
-struct msqid_ds
-{
- struct ipc_perm msg_perm; /* structure describing operation permission */
-#if __WORDSIZE == 32 && defined (__MIPSEB__)
- unsigned long int __glibc_reserved1;
-#endif
- __time_t msg_stime; /* time of last msgsnd command */
-#if __WORDSIZE == 32 && defined (__MIPSEL__)
- unsigned long int __glibc_reserved1;
-#endif
-#if __WORDSIZE == 32 && defined (__MIPSEB__)
- unsigned long int __glibc_reserved2;
-#endif
- __time_t msg_rtime; /* time of last msgrcv command */
-#if __WORDSIZE == 32 && defined (__MIPSEL__)
- unsigned long int __glibc_reserved2;
-#endif
-#if __WORDSIZE == 32 && defined (__MIPSEB__)
- unsigned long int __glibc_reserved3;
-#endif
- __time_t msg_ctime; /* time of last change */
-#if __WORDSIZE == 32 && defined (__MIPSEL__)
- unsigned long int __glibc_reserved3;
-#endif
- unsigned long int __msg_cbytes; /* current number of bytes on queue */
- msgqnum_t msg_qnum; /* number of messages currently on queue */
- msglen_t msg_qbytes; /* max number of bytes allowed on queue */
- __pid_t msg_lspid; /* pid of last msgsnd() */
- __pid_t msg_lrpid; /* pid of last msgrcv() */
- unsigned long int __glibc_reserved4;
- unsigned long int __glibc_reserved5;
-};
-
-#ifdef __USE_MISC
-
-# define msg_cbytes __msg_cbytes
-
-/* ipcs ctl commands */
-# define MSG_STAT 11
-# define MSG_INFO 12
-# define MSG_STAT_ANY 13
-
-/* buffer for msgctl calls IPC_INFO, MSG_INFO */
-struct msginfo
- {
- int msgpool;
- int msgmap;
- int msgmax;
- int msgmnb;
- int msgmni;
- int msgssz;
- int msgtql;
- unsigned short int msgseg;
- };
-
-#endif /* __USE_MISC */
diff --git a/sysdeps/unix/sysv/linux/mips/bits/poll.h b/sysdeps/unix/sysv/linux/mips/bits/poll.h
index 6652a21da7..e26d1583da 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/poll.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/poll.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_POLL_H
# error "Never use <bits/poll.h> directly; include <sys/poll.h> instead."
diff --git a/sysdeps/unix/sysv/linux/mips/bits/procfs.h b/sysdeps/unix/sysv/linux/mips/bits/procfs.h
new file mode 100644
index 0000000000..67464da21f
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/bits/procfs.h
@@ -0,0 +1,37 @@
+/* Types for registers for sys/procfs.h. MIPS version.
+ Copyright (C) 1996-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PROCFS_H
+# error "Never include <bits/procfs.h> directly; use <sys/procfs.h> instead."
+#endif
+
+#include <sgidefs.h>
+
+/* ELF register definitions */
+#define ELF_NGREG 45
+#define ELF_NFPREG 33
+
+#if _MIPS_SIM == _ABIN32
+__extension__ typedef unsigned long long elf_greg_t;
+#else
+typedef unsigned long elf_greg_t;
+#endif
+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
+
+typedef double elf_fpreg_t;
+typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
diff --git a/sysdeps/unix/sysv/linux/mips/bits/resource.h b/sysdeps/unix/sysv/linux/mips/bits/resource.h
index 89d878820b..36e304e9cf 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/resource.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/resource.h
@@ -1,5 +1,5 @@
/* Bit values & structures for resource limits. Linux/MIPS version.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_RESOURCE_H
# error "Never use <bits/resource.h> directly; include <sys/resource.h> instead."
diff --git a/sysdeps/unix/sysv/linux/mips/bits/sem-pad.h b/sysdeps/unix/sysv/linux/mips/bits/sem-pad.h
new file mode 100644
index 0000000000..34aa0e34f5
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/bits/sem-pad.h
@@ -0,0 +1,24 @@
+/* Define where padding goes in struct semid_ds. MIPS version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SEM_H
+# error "Never use <bits/sem-pad.h> directly; include <sys/sem.h> instead."
+#endif
+
+#define __SEM_PAD_AFTER_TIME 0
+#define __SEM_PAD_BEFORE_TIME 0
diff --git a/sysdeps/unix/sysv/linux/mips/bits/sem.h b/sysdeps/unix/sysv/linux/mips/bits/sem.h
deleted file mode 100644
index d218cf4f92..0000000000
--- a/sysdeps/unix/sysv/linux/mips/bits/sem.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/* Copyright (C) 1995-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_SEM_H
-# error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
-#endif
-
-#include <sys/types.h>
-
-/* Flags for `semop'. */
-#define SEM_UNDO 0x1000 /* undo the operation on exit */
-
-/* Commands for `semctl'. */
-#define GETPID 11 /* get sempid */
-#define GETVAL 12 /* get semval */
-#define GETALL 13 /* get all semval's */
-#define GETNCNT 14 /* get semncnt */
-#define GETZCNT 15 /* get semzcnt */
-#define SETVAL 16 /* set semval */
-#define SETALL 17 /* set all semval's */
-
-
-/* Data structure describing a set of semaphores. */
-struct semid_ds
-{
- struct ipc_perm sem_perm; /* operation permission struct */
- __time_t sem_otime; /* last semop() time */
- __time_t sem_ctime; /* last time changed by semctl() */
- unsigned long int sem_nsems; /* number of semaphores in set */
- unsigned long int __glibc_reserved1;
- unsigned long int __glibc_reserved2;
-};
-
-/* The user should define a union like the following to use it for arguments
- for `semctl'.
-
- union semun
- {
- int val; <= value for SETVAL
- struct semid_ds *buf; <= buffer for IPC_STAT & IPC_SET
- unsigned short int *array; <= array for GETALL & SETALL
- struct seminfo *__buf; <= buffer for IPC_INFO
- };
-
- Previous versions of this file used to define this union but this is
- incorrect. One can test the macro _SEM_SEMUN_UNDEFINED to see whether
- one must define the union or not. */
-#define _SEM_SEMUN_UNDEFINED 1
-
-#ifdef __USE_MISC
-
-/* ipcs ctl cmds */
-# define SEM_STAT 18
-# define SEM_INFO 19
-# define SEM_STAT_ANY 20
-
-struct seminfo
-{
- int semmap;
- int semmni;
- int semmns;
- int semmnu;
- int semmsl;
- int semopm;
- int semume;
- int semusz;
- int semvmx;
- int semaem;
-};
-
-#endif /* __USE_MISC */
diff --git a/sysdeps/unix/sysv/linux/mips/bits/shm-pad.h b/sysdeps/unix/sysv/linux/mips/bits/shm-pad.h
new file mode 100644
index 0000000000..2bf8fe457a
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/bits/shm-pad.h
@@ -0,0 +1,26 @@
+/* Define where padding goes in struct shmid_ds. MIPS version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SHM_H
+# error "Never use <bits/shm-pad.h> directly; include <sys/shm.h> instead."
+#endif
+
+#define __SHM_PAD_AFTER_TIME 0
+#define __SHM_PAD_BEFORE_TIME 0
+#define __SHM_SEGSZ_AFTER_TIME 0
+#define __SHM_PAD_BETWEEN_TIME_AND_SEGSZ 0
diff --git a/sysdeps/unix/sysv/linux/mips/bits/shm.h b/sysdeps/unix/sysv/linux/mips/bits/shm.h
deleted file mode 100644
index 22068d7729..0000000000
--- a/sysdeps/unix/sysv/linux/mips/bits/shm.h
+++ /dev/null
@@ -1,96 +0,0 @@
-/* Copyright (C) 1995-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_SHM_H
-# error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
-#endif
-
-#include <bits/types.h>
-
-/* Permission flag for shmget. */
-#define SHM_R 0400 /* or S_IRUGO from <linux/stat.h> */
-#define SHM_W 0200 /* or S_IWUGO from <linux/stat.h> */
-
-/* Flags for `shmat'. */
-#define SHM_RDONLY 010000 /* attach read-only else read-write */
-#define SHM_RND 020000 /* round attach address to SHMLBA */
-#define SHM_REMAP 040000 /* take-over region on attach */
-#define SHM_EXEC 0100000 /* execution access */
-
-/* Commands for `shmctl'. */
-#define SHM_LOCK 11 /* lock segment (root only) */
-#define SHM_UNLOCK 12 /* unlock segment (root only) */
-
-/* Segment low boundary address multiple. */
-#define SHMLBA 0x40000
-
-
-/* Type to count number of attaches. */
-typedef unsigned long int shmatt_t;
-
-/* Data structure describing a shared memory segment. */
-struct shmid_ds
- {
- struct ipc_perm shm_perm; /* operation permission struct */
- size_t shm_segsz; /* size of segment in bytes */
- __time_t shm_atime; /* time of last shmat() */
- __time_t shm_dtime; /* time of last shmdt() */
- __time_t shm_ctime; /* time of last change by shmctl() */
- __pid_t shm_cpid; /* pid of creator */
- __pid_t shm_lpid; /* pid of last shmop */
- shmatt_t shm_nattch; /* number of current attaches */
- unsigned long int __glibc_reserved1;
- unsigned long int __glibc_reserved2;
- };
-
-#ifdef __USE_MISC
-
-/* ipcs ctl commands */
-# define SHM_STAT 13
-# define SHM_INFO 14
-# define SHM_STAT_ANY 15
-
-/* shm_mode upper byte flags */
-# define SHM_DEST 01000 /* segment will be destroyed on last detach */
-# define SHM_LOCKED 02000 /* segment will not be swapped */
-# define SHM_HUGETLB 04000 /* segment is mapped via hugetlb */
-# define SHM_NORESERVE 010000 /* don't check for reservations */
-
-struct shminfo
- {
- unsigned long int shmmax;
- unsigned long int shmmin;
- unsigned long int shmmni;
- unsigned long int shmseg;
- unsigned long int shmall;
- unsigned long int __glibc_reserved1;
- unsigned long int __glibc_reserved2;
- unsigned long int __glibc_reserved3;
- unsigned long int __glibc_reserved4;
- };
-
-struct shm_info
- {
- int used_ids;
- unsigned long int shm_tot; /* total allocated shm */
- unsigned long int shm_rss; /* total resident shm */
- unsigned long int shm_swp; /* total swapped shm */
- unsigned long int swap_attempts;
- unsigned long int swap_successes;
- };
-
-#endif /* __USE_MISC */
diff --git a/sysdeps/unix/sysv/linux/mips/bits/shmlba.h b/sysdeps/unix/sysv/linux/mips/bits/shmlba.h
new file mode 100644
index 0000000000..884f4ecf30
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/bits/shmlba.h
@@ -0,0 +1,24 @@
+/* Define SHMLBA. MIPS version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SHM_H
+# error "Never use <bits/shmlba.h> directly; include <sys/shm.h> instead."
+#endif
+
+/* Segment low boundary address multiple. */
+#define SHMLBA 0x40000
diff --git a/sysdeps/unix/sysv/linux/mips/bits/sigaction.h b/sysdeps/unix/sysv/linux/mips/bits/sigaction.h
index 4fb0626483..c27b038647 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/sigaction.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/sigaction.h
@@ -1,5 +1,5 @@
/* The proper definitions for Linux/MIPS's sigaction.
- Copyright (C) 1993-2018 Free Software Foundation, Inc.
+ Copyright (C) 1993-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_SIGACTION_H
#define _BITS_SIGACTION_H 1
diff --git a/sysdeps/unix/sysv/linux/mips/bits/sigcontext.h b/sysdeps/unix/sysv/linux/mips/bits/sigcontext.h
index 84fccb44e9..d6b017dc70 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/sigcontext.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/sigcontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc. This file is part of the GNU C Library.
+/* Copyright (C) 1996-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
@@ -12,7 +12,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_SIGCONTEXT_H
#define _BITS_SIGCONTEXT_H 1
diff --git a/sysdeps/unix/sysv/linux/mips/bits/signalfd.h b/sysdeps/unix/sysv/linux/mips/bits/signalfd.h
index 17382a84ed..2ea7e5ee08 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/signalfd.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/signalfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_SIGNALFD_H
# error "Never use <bits/signalfd.h> directly; include <sys/signalfd.h> instead."
diff --git a/sysdeps/unix/sysv/linux/mips/bits/signum.h b/sysdeps/unix/sysv/linux/mips/bits/signum.h
index 979300c88d..676bd75751 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/signum.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/signum.h
@@ -1,5 +1,5 @@
/* Signal number definitions. Linux/MIPS version.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_SIGNUM_H
#define _BITS_SIGNUM_H 1
diff --git a/sysdeps/unix/sysv/linux/mips/bits/socket-constants.h b/sysdeps/unix/sysv/linux/mips/bits/socket-constants.h
new file mode 100644
index 0000000000..90e3e8f7fb
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/bits/socket-constants.h
@@ -0,0 +1,38 @@
+/* Socket constants which vary among Linux architectures. Version for MIPS.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SOCKET_H
+# error "Never include <bits/socket-constants.h> directly; use <sys/socket.h> instead."
+#endif
+
+#define SOL_SOCKET 65535
+#define SO_ACCEPTCONN 4105
+#define SO_BROADCAST 32
+#define SO_DONTROUTE 16
+#define SO_ERROR 4103
+#define SO_KEEPALIVE 8
+#define SO_LINGER 128
+#define SO_OOBINLINE 256
+#define SO_RCVBUF 4098
+#define SO_RCVLOWAT 4100
+#define SO_RCVTIMEO 4102
+#define SO_REUSEADDR 4
+#define SO_SNDBUF 4097
+#define SO_SNDLOWAT 4099
+#define SO_SNDTIMEO 4101
+#define SO_TYPE 4104
diff --git a/sysdeps/unix/sysv/linux/mips/bits/socket_type.h b/sysdeps/unix/sysv/linux/mips/bits/socket_type.h
index ba1513ac81..9298fd4a63 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/socket_type.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/socket_type.h
@@ -1,5 +1,5 @@
/* Define enum __socket_type for Linux/MIPS.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_SOCKET_H
# error "Never include <bits/socket_type.h> directly; use <sys/socket.h> instead."
diff --git a/sysdeps/unix/sysv/linux/mips/bits/stat.h b/sysdeps/unix/sysv/linux/mips/bits/stat.h
index 02fc6363f8..a5bb9e6c23 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/stat.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/stat.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if !defined _SYS_STAT_H && !defined _FCNTL_H
# error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
diff --git a/sysdeps/unix/sysv/linux/mips/bits/statfs.h b/sysdeps/unix/sysv/linux/mips/bits/statfs.h
index ddd39aaab1..d23cdc3f2f 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/statfs.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/statfs.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_STATFS_H
# error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead."
diff --git a/sysdeps/unix/sysv/linux/mips/bits/termios-c_cc.h b/sysdeps/unix/sysv/linux/mips/bits/termios-c_cc.h
new file mode 100644
index 0000000000..ef70063249
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/bits/termios-c_cc.h
@@ -0,0 +1,43 @@
+/* termios c_cc symbolic constant definitions. Linux/mips version.
+ 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. If not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _TERMIOS_H
+# error "Never include <bits/termios-c_cc.h> directly; use <termios.h> instead."
+#endif
+
+/* c_cc characters */
+#define VINTR 0 /* Interrupt character [ISIG]. */
+#define VQUIT 1 /* Quit character [ISIG]. */
+#define VERASE 2 /* Erase character [ICANON]. */
+#define VKILL 3 /* Kill-line character [ICANON]. */
+#define VMIN 4 /* Minimum number of bytes read at once [!ICANON]. */
+#define VTIME 5 /* Time-out value (tenths of a second) [!ICANON]. */
+#define VEOL2 6 /* Second EOL character [ICANON]. */
+#define VSWTC 7
+#define VSWTCH VSWTC
+#define VSTART 8 /* Start (X-ON) character [IXON, IXOFF]. */
+#define VSTOP 9 /* Stop (X-OFF) character [IXON, IXOFF]. */
+#define VSUSP 10 /* Suspend character [ISIG]. */
+ /* VDSUSP is not supported on Linux. */
+/* #define VDSUSP 11 / * Delayed suspend character [ISIG]. */
+#define VREPRINT 12 /* Reprint-line character [ICANON]. */
+#define VDISCARD 13 /* Discard character [IEXTEN]. */
+#define VWERASE 14 /* Word-erase character [ICANON]. */
+#define VLNEXT 15 /* Literal-next character [IEXTEN]. */
+#define VEOF 16 /* End-of-file character [ICANON]. */
+#define VEOL 17 /* End-of-line character [ICANON]. */
diff --git a/sysdeps/unix/sysv/linux/mips/bits/termios-c_lflag.h b/sysdeps/unix/sysv/linux/mips/bits/termios-c_lflag.h
new file mode 100644
index 0000000000..b4138e2fb8
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/bits/termios-c_lflag.h
@@ -0,0 +1,46 @@
+/* termios local mode definitions. Linux/mips version.
+ 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. If not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _TERMIOS_H
+# error "Never include <bits/termios-c_lflag.h> directly; use <termios.h> instead."
+#endif
+
+/* c_lflag bits */
+#define ISIG 0000001 /* Enable signals. */
+#define ICANON 0000002 /* Do erase and kill processing. */
+#if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K)
+# define XCASE 0000004
+#endif
+#define ECHO 0000010 /* Enable echo. */
+#define ECHOE 0000020 /* Visual erase for ERASE. */
+#define ECHOK 0000040 /* Echo NL after KILL. */
+#define ECHONL 0000100 /* Echo NL even if ECHO is off. */
+#define NOFLSH 0000200 /* Disable flush after interrupt. */
+#define IEXTEN 0000400 /* Enable DISCARD and LNEXT. */
+#ifdef __USE_MISC
+# define ECHOCTL 0001000 /* Echo control characters as ^X. */
+# define ECHOPRT 0002000 /* Hardcopy visual erase. */
+# define ECHOKE 0004000 /* Visual erase for KILL. */
+# define FLUSHO 0020000
+# define PENDIN 0040000 /* Retype pending input (state). */
+#endif
+#define TOSTOP 0100000 /* Send SIGTTOU for background output. */
+#define ITOSTOP TOSTOP
+#ifdef __USE_MISC
+# define EXTPROC 0200000
+#endif
diff --git a/sysdeps/unix/sysv/linux/mips/bits/termios-struct.h b/sysdeps/unix/sysv/linux/mips/bits/termios-struct.h
new file mode 100644
index 0000000000..372f87826a
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/bits/termios-struct.h
@@ -0,0 +1,34 @@
+/* struct termios definition. Linux/mips version.
+ 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. If not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _TERMIOS_H
+# error "Never include <bits/termios-struct.h> directly; use <termios.h> instead."
+#endif
+
+#define NCCS 32
+struct termios
+ {
+ tcflag_t c_iflag; /* input mode flags */
+ tcflag_t c_oflag; /* output mode flags */
+ tcflag_t c_cflag; /* control mode flags */
+ tcflag_t c_lflag; /* local mode flags */
+ cc_t c_line; /* line discipline */
+ cc_t c_cc[NCCS]; /* control characters */
+#define _HAVE_STRUCT_TERMIOS_C_ISPEED 0
+#define _HAVE_STRUCT_TERMIOS_C_OSPEED 0
+ };
diff --git a/sysdeps/unix/sysv/linux/mips/bits/termios-tcflow.h b/sysdeps/unix/sysv/linux/mips/bits/termios-tcflow.h
new file mode 100644
index 0000000000..9fd14fb3f6
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/bits/termios-tcflow.h
@@ -0,0 +1,26 @@
+/* termios local mode definitions. Linux/mips version.
+ 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. If not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _TERMIOS_H
+# error "Never include <bits/termios-tcflow.h> directly; use <termios.h> instead."
+#endif
+
+/* tcsetattr uses these */
+#define TCSANOW 0x540e /* Same as TCSETS; change immediately. */
+#define TCSADRAIN 0x540f /* Same as TCSETSW; change when pending output is written. */
+#define TCSAFLUSH 0x5410 /* Same as TCSETSF; flush pending input before changing. */
diff --git a/sysdeps/unix/sysv/linux/mips/bits/termios.h b/sysdeps/unix/sysv/linux/mips/bits/termios.h
deleted file mode 100644
index 7969144633..0000000000
--- a/sysdeps/unix/sysv/linux/mips/bits/termios.h
+++ /dev/null
@@ -1,222 +0,0 @@
-/* termios type and macro definitions. Linux/MIPS version.
- Copyright (C) 1993-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _TERMIOS_H
-# error "Never include <bits/termios.h> directly; use <termios.h> instead."
-#endif
-
-typedef unsigned char cc_t;
-typedef unsigned int speed_t;
-typedef unsigned int tcflag_t;
-
-#define NCCS 32
-struct termios
- {
- tcflag_t c_iflag; /* input mode flags */
- tcflag_t c_oflag; /* output mode flags */
- tcflag_t c_cflag; /* control mode flags */
- tcflag_t c_lflag; /* local mode flags */
- cc_t c_line; /* line discipline */
- cc_t c_cc[NCCS]; /* control characters */
- };
-
-/* c_cc characters */
-#define VINTR 0 /* Interrupt character [ISIG]. */
-#define VQUIT 1 /* Quit character [ISIG]. */
-#define VERASE 2 /* Erase character [ICANON]. */
-#define VKILL 3 /* Kill-line character [ICANON]. */
-#define VMIN 4 /* Minimum number of bytes read at once [!ICANON]. */
-#define VTIME 5 /* Time-out value (tenths of a second) [!ICANON]. */
-#define VEOL2 6 /* Second EOL character [ICANON]. */
-#define VSWTC 7
-#define VSWTCH VSWTC
-#define VSTART 8 /* Start (X-ON) character [IXON, IXOFF]. */
-#define VSTOP 9 /* Stop (X-OFF) character [IXON, IXOFF]. */
-#define VSUSP 10 /* Suspend character [ISIG]. */
- /* VDSUSP is not supported on Linux. */
-/* #define VDSUSP 11 / * Delayed suspend character [ISIG]. */
-#define VREPRINT 12 /* Reprint-line character [ICANON]. */
-#define VDISCARD 13 /* Discard character [IEXTEN]. */
-#define VWERASE 14 /* Word-erase character [ICANON]. */
-#define VLNEXT 15 /* Literal-next character [IEXTEN]. */
-#define VEOF 16 /* End-of-file character [ICANON]. */
-#define VEOL 17 /* End-of-line character [ICANON]. */
-
-/* c_iflag bits */
-#define IGNBRK 0000001 /* Ignore break condition. */
-#define BRKINT 0000002 /* Signal interrupt on break. */
-#define IGNPAR 0000004 /* Ignore characters with parity errors. */
-#define PARMRK 0000010 /* Mark parity and framing errors. */
-#define INPCK 0000020 /* Enable input parity check. */
-#define ISTRIP 0000040 /* Strip 8th bit off characters. */
-#define INLCR 0000100 /* Map NL to CR on input. */
-#define IGNCR 0000200 /* Ignore CR. */
-#define ICRNL 0000400 /* Map CR to NL on input. */
-#define IUCLC 0001000 /* Map upper case to lower case on input. */
-#define IXON 0002000 /* Enable start/stop output control. */
-#define IXANY 0004000 /* Any character will restart after stop. */
-#define IXOFF 0010000 /* Enable start/stop input control. */
-#define IMAXBEL 0020000 /* Ring bell when input queue is full. */
-#define IUTF8 0040000 /* Input is UTF8. */
-
-/* c_oflag bits */
-#define OPOST 0000001 /* Perform output processing. */
-#define OLCUC 0000002 /* Map lower case to upper case on output. */
-#define ONLCR 0000004 /* Map NL to CR-NL on output. */
-#define OCRNL 0000010
-#define ONOCR 0000020
-#define ONLRET 0000040
-#define OFILL 0000100
-#define OFDEL 0000200
-#if defined __USE_MISC || defined __USE_XOPEN
-# define NLDLY 0000400
-# define NL0 0000000
-# define NL1 0000400
-# define CRDLY 0003000
-# define CR0 0000000
-# define CR1 0001000
-# define CR2 0002000
-# define CR3 0003000
-# define TABDLY 0014000
-# define TAB0 0000000
-# define TAB1 0004000
-# define TAB2 0010000
-# define TAB3 0014000
-# define BSDLY 0020000
-# define BS0 0000000
-# define BS1 0020000
-# define FFDLY 0100000
-# define FF0 0000000
-# define FF1 0100000
-#endif
-
-#define VTDLY 0040000
-#define VT0 0000000
-#define VT1 0040000
-
-#ifdef __USE_MISC
-# define XTABS 0014000
-#endif
-
-/* c_cflag bit meaning */
-#ifdef __USE_MISC
-# define CBAUD 0010017
-#endif
-#define B0 0000000 /* hang up */
-#define B50 0000001
-#define B75 0000002
-#define B110 0000003
-#define B134 0000004
-#define B150 0000005
-#define B200 0000006
-#define B300 0000007
-#define B600 0000010
-#define B1200 0000011
-#define B1800 0000012
-#define B2400 0000013
-#define B4800 0000014
-#define B9600 0000015
-#define B19200 0000016
-#define B38400 0000017
-#ifdef __USE_MISC
-# define EXTA B19200
-# define EXTB B38400
-#endif
-#define CSIZE 0000060 /* Number of bits per byte (mask). */
-#define CS5 0000000 /* 5 bits per byte. */
-#define CS6 0000020 /* 6 bits per byte. */
-#define CS7 0000040 /* 7 bits per byte. */
-#define CS8 0000060 /* 8 bits per byte. */
-#define CSTOPB 0000100 /* Two stop bits instead of one. */
-#define CREAD 0000200 /* Enable receiver. */
-#define PARENB 0000400 /* Parity enable. */
-#define PARODD 0001000 /* Odd parity instead of even. */
-#define HUPCL 0002000 /* Hang up on last close. */
-#define CLOCAL 0004000 /* Ignore modem status lines. */
-#ifdef __USE_MISC
-# define CBAUDEX 0010000
-#endif
-#define B57600 0010001
-#define B115200 0010002
-#define B230400 0010003
-#define B460800 0010004
-#define B500000 0010005
-#define B576000 0010006
-#define B921600 0010007
-#define B1000000 0010010
-#define B1152000 0010011
-#define B1500000 0010012
-#define B2000000 0010013
-#define B2500000 0010014
-#define B3000000 0010015
-#define B3500000 0010016
-#define B4000000 0010017
-#define __MAX_BAUD B4000000
-#ifdef __USE_MISC
-# define CIBAUD 002003600000 /* input baud rate (not used) */
-# define CRTSCTS 020000000000 /* flow control */
-#endif
-
-/* c_lflag bits */
-#define ISIG 0000001 /* Enable signals. */
-#define ICANON 0000002 /* Do erase and kill processing. */
-#if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K)
-# define XCASE 0000004
-#endif
-#define ECHO 0000010 /* Enable echo. */
-#define ECHOE 0000020 /* Visual erase for ERASE. */
-#define ECHOK 0000040 /* Echo NL after KILL. */
-#define ECHONL 0000100 /* Echo NL even if ECHO is off. */
-#define NOFLSH 0000200 /* Disable flush after interrupt. */
-#define IEXTEN 0000400 /* Enable DISCARD and LNEXT. */
-#ifdef __USE_MISC
-# define ECHOCTL 0001000 /* Echo control characters as ^X. */
-# define ECHOPRT 0002000 /* Hardcopy visual erase. */
-# define ECHOKE 0004000 /* Visual erase for KILL. */
-# define FLUSHO 0020000
-# define PENDIN 0040000 /* Retype pending input (state). */
-#endif
-#define TOSTOP 0100000 /* Send SIGTTOU for background output. */
-#define ITOSTOP TOSTOP
-#ifdef __USE_MISC
-# define EXTPROC 0200000
-#endif
-
-#ifdef __USE_MISC
-/* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
-# define TIOCSER_TEMT 0x01 /* Transmitter physically empty */
-#endif
-
-/* tcflow() and TCXONC use these */
-#define TCOOFF 0 /* Suspend output. */
-#define TCOON 1 /* Restart suspended output. */
-#define TCIOFF 2 /* Send a STOP character. */
-#define TCION 3 /* Send a START character. */
-
-/* tcflush() and TCFLSH use these */
-#define TCIFLUSH 0 /* Discard data received but not yet read. */
-#define TCOFLUSH 1 /* Discard data written but not yet sent. */
-#define TCIOFLUSH 2 /* Discard all pending data. */
-
-/* tcsetattr uses these */
-#define TCSANOW 0x540e /* Same as TCSETS; change immediately. */
-#define TCSADRAIN 0x540f /* Same as TCSETSW; change when pending output is written. */
-#define TCSAFLUSH 0x5410 /* Same as TCSETSF; flush pending input before changing. */
-
-#define _IOT_termios /* Hurd ioctl type field. */ \
- _IOT (_IOTS (cflag_t), 4, _IOTS (cc_t), NCCS, _IOTS (speed_t), 2)
diff --git a/sysdeps/unix/sysv/linux/mips/bits/timerfd.h b/sysdeps/unix/sysv/linux/mips/bits/timerfd.h
index e66b2244b3..b88740400f 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/timerfd.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/timerfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_TIMERFD_H
# error "Never use <bits/timerfd.h> directly; include <sys/timerfd.h> instead."
diff --git a/sysdeps/unix/sysv/linux/mips/bits/types/stack_t.h b/sysdeps/unix/sysv/linux/mips/bits/types/stack_t.h
index c188f191be..e9b177335e 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/types/stack_t.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/types/stack_t.h
@@ -1,5 +1,5 @@
/* Define stack_t. MIPS Linux version.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef __stack_t_defined
#define __stack_t_defined 1
diff --git a/sysdeps/unix/sysv/linux/mips/brk.c b/sysdeps/unix/sysv/linux/mips/brk.c
index 396d5c76ea..91da577b1e 100644
--- a/sysdeps/unix/sysv/linux/mips/brk.c
+++ b/sysdeps/unix/sysv/linux/mips/brk.c
@@ -1,5 +1,5 @@
/* brk system call for Linux/MIPS.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/unix/sysv/linux/mips/clone.S b/sysdeps/unix/sysv/linux/mips/clone.S
index 24cd50e4f8..55c09bf297 100644
--- a/sysdeps/unix/sysv/linux/mips/clone.S
+++ b/sysdeps/unix/sysv/linux/mips/clone.S
@@ -1,6 +1,6 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
- Contributed by Ralf Baechle <ralf@linux-mips.org>, 1996.
+ Contributed by Ralf Bächle <ralf@linux-mips.org>, 1996.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* clone() is even more special than fork() as it mucks with stacks
and invokes a function in the right context after its all over. */
diff --git a/sysdeps/unix/sysv/linux/mips/configure b/sysdeps/unix/sysv/linux/mips/configure
index 1ee7f41a36..25f98e0c7b 100644
--- a/sysdeps/unix/sysv/linux/mips/configure
+++ b/sysdeps/unix/sysv/linux/mips/configure
@@ -475,3 +475,44 @@ if test -z "$arch_minimum_kernel"; then
arch_minimum_kernel=4.5.0
fi
fi
+
+# Check if we are supposed to run on kernels older than 4.8.0. If so,
+# force executable stack to avoid potential runtime problems with fpu
+# emulation.
+# NOTE: The check below assumes that in absence of user-provided minumum_kernel
+# we will default to arch_minimum_kernel which is currently less than 4.8.0 for
+# all known configurations. If this changes, the check must be updated.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler must use executable stack" >&5
+$as_echo_n "checking whether the compiler must use executable stack... " >&6; }
+if ${libc_cv_mips_force_execstack+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ libc_cv_mips_force_execstack=no
+ if test $libc_mips_float = hard; then
+ if test -n "$minimum_kernel"; then
+
+ min_version=$((`echo "$minimum_kernel.0.0.0" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1 \* 65536 + \2 \* 256 + \3/'`))
+
+ if test $min_version -lt 264192; then
+ libc_cv_mips_force_execstack=yes
+ fi
+ else
+ libc_cv_mips_force_execstack=yes
+ fi
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_mips_force_execstack" >&5
+$as_echo "$libc_cv_mips_force_execstack" >&6; }
+
+libc_mips_has_gnustack=$libc_cv_as_noexecstack
+
+if test $libc_cv_mips_force_execstack = yes; then
+ libc_mips_has_gnustack=no
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: forcing executable stack for pre-4.8.0 Linux kernels" >&5
+$as_echo "$as_me: WARNING: forcing executable stack for pre-4.8.0 Linux kernels" >&2;}
+fi
+
+config_vars="$config_vars
+mips-force-execstack = ${libc_cv_mips_force_execstack}"
+config_vars="$config_vars
+mips-has-gnustack = ${libc_mips_has_gnustack}"
diff --git a/sysdeps/unix/sysv/linux/mips/configure.ac b/sysdeps/unix/sysv/linux/mips/configure.ac
index 9147aa4582..3db1b32b08 100644
--- a/sysdeps/unix/sysv/linux/mips/configure.ac
+++ b/sysdeps/unix/sysv/linux/mips/configure.ac
@@ -134,3 +134,35 @@ if test -z "$arch_minimum_kernel"; then
arch_minimum_kernel=4.5.0
fi
fi
+
+# Check if we are supposed to run on kernels older than 4.8.0. If so,
+# force executable stack to avoid potential runtime problems with fpu
+# emulation.
+# NOTE: The check below assumes that in absence of user-provided minumum_kernel
+# we will default to arch_minimum_kernel which is currently less than 4.8.0 for
+# all known configurations. If this changes, the check must be updated.
+AC_CACHE_CHECK([whether the compiler must use executable stack],
+ libc_cv_mips_force_execstack, [dnl
+libc_cv_mips_force_execstack=no
+ if test $libc_mips_float = hard; then
+ if test -n "$minimum_kernel"; then
+ changequote(,)
+ min_version=$((`echo "$minimum_kernel.0.0.0" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1 \* 65536 + \2 \* 256 + \3/'`))
+ changequote([,])
+ if test $min_version -lt 264192; then
+ libc_cv_mips_force_execstack=yes
+ fi
+ else
+ libc_cv_mips_force_execstack=yes
+ fi
+ fi])
+
+libc_mips_has_gnustack=$libc_cv_as_noexecstack
+
+if test $libc_cv_mips_force_execstack = yes; then
+ libc_mips_has_gnustack=no
+ AC_MSG_WARN([forcing executable stack for pre-4.8.0 Linux kernels])
+fi
+
+LIBC_CONFIG_VAR([mips-force-execstack],[${libc_cv_mips_force_execstack}])
+LIBC_CONFIG_VAR([mips-has-gnustack],[${libc_mips_has_gnustack}])
diff --git a/sysdeps/unix/sysv/linux/mips/dl-cache.h b/sysdeps/unix/sysv/linux/mips/dl-cache.h
index b0d2a87fe5..0e6b4e7c14 100644
--- a/sysdeps/unix/sysv/linux/mips/dl-cache.h
+++ b/sysdeps/unix/sysv/linux/mips/dl-cache.h
@@ -1,5 +1,5 @@
/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ldconfig.h>
diff --git a/sysdeps/unix/sysv/linux/mips/dl-static.c b/sysdeps/unix/sysv/linux/mips/dl-static.c
index b6a225adef..c71c18de71 100644
--- a/sysdeps/unix/sysv/linux/mips/dl-static.c
+++ b/sysdeps/unix/sysv/linux/mips/dl-static.c
@@ -1,5 +1,5 @@
/* Variable initialization. MIPS version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ldsodefs.h>
diff --git a/sysdeps/unix/sysv/linux/mips/getcontext.S b/sysdeps/unix/sysv/linux/mips/getcontext.S
index 7d01fac4ab..365ffa8e9e 100644
--- a/sysdeps/unix/sysv/linux/mips/getcontext.S
+++ b/sysdeps/unix/sysv/linux/mips/getcontext.S
@@ -1,5 +1,5 @@
/* Save current context.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Maciej W. Rozycki <macro@codesourcery.com>.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <sys/asm.h>
@@ -78,11 +78,6 @@ NESTED (__getcontext, FRAMESZ, ra)
.set at
#endif
- /* Store a magic flag. */
- li v1, 1
- /* zero */
- REG_S v1, (MCONTEXT_GREGOFF + 0 * MCONTEXT_GREGSZ + MCONTEXT_GREGS)(a0)
-
REG_S s0, (MCONTEXT_GREGOFF + 16 * MCONTEXT_GREGSZ + MCONTEXT_GREGS)(a0)
REG_S s1, (MCONTEXT_GREGOFF + 17 * MCONTEXT_GREGSZ + MCONTEXT_GREGS)(a0)
REG_S s2, (MCONTEXT_GREGOFF + 18 * MCONTEXT_GREGSZ + MCONTEXT_GREGS)(a0)
diff --git a/sysdeps/unix/sysv/linux/mips/getmsg.c b/sysdeps/unix/sysv/linux/mips/getmsg.c
deleted file mode 100644
index 3a1fa08525..0000000000
--- a/sysdeps/unix/sysv/linux/mips/getmsg.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/getmsg.c>
diff --git a/sysdeps/unix/sysv/linux/mips/getrlimit64.c b/sysdeps/unix/sysv/linux/mips/getrlimit64.c
index 5a5e24f114..c0f51d89ff 100644
--- a/sysdeps/unix/sysv/linux/mips/getrlimit64.c
+++ b/sysdeps/unix/sysv/linux/mips/getrlimit64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2013-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sgidefs.h>
diff --git a/sysdeps/unix/sysv/linux/mips/getsysstats.c b/sysdeps/unix/sysv/linux/mips/getsysstats.c
index a9b95f43f2..966e5eef83 100644
--- a/sysdeps/unix/sysv/linux/mips/getsysstats.c
+++ b/sysdeps/unix/sysv/linux/mips/getsysstats.c
@@ -1,5 +1,5 @@
/* Determine various system internal values, Linux/MIPS version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* We need to define a special parser for /proc/cpuinfo. */
diff --git a/sysdeps/unix/sysv/linux/mips/init-first.c b/sysdeps/unix/sysv/linux/mips/init-first.c
deleted file mode 100644
index 0cf8279c73..0000000000
--- a/sysdeps/unix/sysv/linux/mips/init-first.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/* Initialization code run first thing by the ELF startup code.
- Copyright (C) 2016-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifdef SHARED
-# include <dl-vdso.h>
-# include <libc-vdso.h>
-
-int (*VDSO_SYMBOL(gettimeofday)) (struct timeval *, void *) attribute_hidden;
-int (*VDSO_SYMBOL(clock_gettime)) (clockid_t, struct timespec *);
-
-static inline void
-_libc_vdso_platform_setup (void)
-{
- PREPARE_VERSION_KNOWN (linux26, LINUX_2_6);
-
- void *p = _dl_vdso_vsym ("__vdso_gettimeofday", &linux26);
- PTR_MANGLE (p);
- VDSO_SYMBOL (gettimeofday) = p;
-
- p = _dl_vdso_vsym ("__vdso_clock_gettime", &linux26);
- PTR_MANGLE (p);
- VDSO_SYMBOL (clock_gettime) = p;
-}
-
-# define VDSO_SETUP _libc_vdso_platform_setup
-#endif
-
-#include <csu/init-first.c>
diff --git a/sysdeps/unix/sysv/linux/mips/kernel-features.h b/sysdeps/unix/sysv/linux/mips/kernel-features.h
index ce798ccffe..ad5b1ace82 100644
--- a/sysdeps/unix/sysv/linux/mips/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/mips/kernel-features.h
@@ -1,6 +1,6 @@
/* Set flags signalling availability of kernel features based on given
kernel version number.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sgidefs.h>
@@ -31,8 +31,12 @@
pairs to start with an even-number register. */
#if _MIPS_SIM == _ABIO32
# define __ASSUME_ALIGNED_REGISTER_PAIRS 1
-/* mips32 only supports ipc syscall. */
-# undef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
+/* mips32 only supports ipc syscall before 5.1. */
+# if __LINUX_KERNEL_VERSION < 0x050100
+# undef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
+# undef __ASSUME_SYSVIPC_DEFAULT_IPC_64
+# else
+# endif
/* The o32 MIPS fadvise64 syscall behaves as fadvise64_64. */
# define __ASSUME_FADVISE64_AS_64_64 1
@@ -40,6 +44,8 @@
/* mips32 support wire-up network syscalls. */
# define __ASSUME_RECV_SYSCALL 1
# define __ASSUME_SEND_SYSCALL 1
+#else
+# undef __ASSUME_SYSVIPC_DEFAULT_IPC_64
#endif
/* Define that mips64-n32 is a ILP32 ABI to set the correct interface to
diff --git a/sysdeps/unix/sysv/linux/mips/kernel_termios.h b/sysdeps/unix/sysv/linux/mips/kernel_termios.h
index 1c54b19428..2a7465003d 100644
--- a/sysdeps/unix/sysv/linux/mips/kernel_termios.h
+++ b/sysdeps/unix/sysv/linux/mips/kernel_termios.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _KERNEL_TERMIOS_H
#define _KERNEL_TERMIOS_H 1
@@ -31,4 +31,7 @@ struct __kernel_termios
cc_t c_cc[__KERNEL_NCCS]; /* control characters */
};
+#define _HAVE_C_ISPEED 0
+#define _HAVE_C_OSPEED 0
+
#endif /* kernel_termios.h */
diff --git a/sysdeps/unix/sysv/linux/mips/ldsodefs.h b/sysdeps/unix/sysv/linux/mips/ldsodefs.h
index 68a0a99bb1..2d560d17cb 100644
--- a/sysdeps/unix/sysv/linux/mips/ldsodefs.h
+++ b/sysdeps/unix/sysv/linux/mips/ldsodefs.h
@@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects. MIPS.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LDSODEFS_H
@@ -34,7 +34,7 @@ extern void _dl_static_init (struct link_map *map);
#undef VALID_ELF_ABIVERSION
#define VALID_ELF_ABIVERSION(osabi,ver) \
(ver == 0 \
- || (osabi == ELFOSABI_SYSV && ver < 4) \
+ || (osabi == ELFOSABI_SYSV && ver < 6) \
|| (osabi == ELFOSABI_GNU && ver < LIBC_ABI_MAX))
#endif /* ldsodefs.h */
diff --git a/sysdeps/unix/sysv/linux/mips/libc-abis b/sysdeps/unix/sysv/linux/mips/libc-abis
index eaea558720..c0b67dae3e 100644
--- a/sysdeps/unix/sysv/linux/mips/libc-abis
+++ b/sysdeps/unix/sysv/linux/mips/libc-abis
@@ -16,3 +16,5 @@ UNIQUE
MIPS_O32_FP64 mips*-*-linux*
# Absolute (SHN_ABS) symbols working correctly.
ABSOLUTE
+# GNU-style hash table with translation table.
+MIPS_XHASH
diff --git a/sysdeps/unix/sysv/linux/mips/libc-vdso.h b/sysdeps/unix/sysv/linux/mips/libc-vdso.h
deleted file mode 100644
index c36e22dc40..0000000000
--- a/sysdeps/unix/sysv/linux/mips/libc-vdso.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* VDSO function pointer declarations.
- Copyright (C) 2016-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _LIBC_VDSO_H
-#define _LIBC_VDSO_H
-
-#ifdef SHARED
-
-# include <sysdep-vdso.h>
-
-extern int (*VDSO_SYMBOL(gettimeofday)) (struct timeval *, void *)
- attribute_hidden;
-extern int (*VDSO_SYMBOL(clock_gettime)) (clockid_t, struct timespec *);
-
-#endif
-
-#endif /* _LIBC_VDSO_H */
diff --git a/sysdeps/unix/sysv/linux/mips/makecontext.S b/sysdeps/unix/sysv/linux/mips/makecontext.S
index 09102b708e..6bb4c9a8b3 100644
--- a/sysdeps/unix/sysv/linux/mips/makecontext.S
+++ b/sysdeps/unix/sysv/linux/mips/makecontext.S
@@ -1,5 +1,5 @@
/* Modify saved context.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Maciej W. Rozycki <macro@codesourcery.com>.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <sys/asm.h>
@@ -93,11 +93,6 @@ NESTED (__makecontext, FRAMESZ, ra)
REG_S a7, A7OFF(sp)
#endif
- /* Store a magic flag. */
- li v1, 1
- /* zero */
- REG_S v1, (MCONTEXT_GREGOFF + 0 * MCONTEXT_GREGSZ + MCONTEXT_GREGS)(a0)
-
/* Set up the stack. */
PTR_L t0, STACK_SP(a0)
PTR_L t2, STACK_SIZE(a0)
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/bug-getcontext-mips-gp.c b/sysdeps/unix/sysv/linux/mips/mips32/bug-getcontext-mips-gp.c
index d181715bd4..45e6d1676d 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/bug-getcontext-mips-gp.c
+++ b/sysdeps/unix/sysv/linux/mips/mips32/bug-getcontext-mips-gp.c
@@ -1,5 +1,5 @@
/* Tests register values retreived by getcontext() for mips o32.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdio.h>
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index dda9797e0e..06c2e64edd 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -1612,6 +1612,11 @@ GLIBC_2.2 capget F
GLIBC_2.2 capset F
GLIBC_2.2 cbc_crypt F
GLIBC_2.2 clntunix_create F
+GLIBC_2.2 clock_getcpuclockid F
+GLIBC_2.2 clock_getres F
+GLIBC_2.2 clock_gettime F
+GLIBC_2.2 clock_nanosleep F
+GLIBC_2.2 clock_settime F
GLIBC_2.2 creat64 F
GLIBC_2.2 dcngettext F
GLIBC_2.2 des_setparity F
@@ -1967,6 +1972,9 @@ GLIBC_2.28 thrd_current F
GLIBC_2.28 thrd_equal F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
+GLIBC_2.29 getcpu F
+GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
+GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
GLIBC_2.3 __ctype_b_loc F
GLIBC_2.3 __ctype_tolower_loc F
GLIBC_2.3 __ctype_toupper_loc F
@@ -2117,6 +2125,10 @@ GLIBC_2.3.4 setipv4sourcefilter F
GLIBC_2.3.4 setsourcefilter F
GLIBC_2.3.4 xdr_quad_t F
GLIBC_2.3.4 xdr_u_quad_t F
+GLIBC_2.30 getdents64 F
+GLIBC_2.30 gettid F
+GLIBC_2.30 tgkill F
+GLIBC_2.30 twalk_r F
GLIBC_2.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
GLIBC_2.4 __fgets_unlocked_chk F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
index ff011f86f2..a221d7be09 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
@@ -764,4 +764,21 @@ GLIBC_2.28 fmul F
GLIBC_2.28 fmull F
GLIBC_2.28 fsub F
GLIBC_2.28 fsubl F
+GLIBC_2.29 exp F
+GLIBC_2.29 exp2 F
+GLIBC_2.29 log F
+GLIBC_2.29 log2 F
+GLIBC_2.29 pow F
+GLIBC_2.31 totalorder F
+GLIBC_2.31 totalorderf F
+GLIBC_2.31 totalorderf32 F
+GLIBC_2.31 totalorderf32x F
+GLIBC_2.31 totalorderf64 F
+GLIBC_2.31 totalorderl F
+GLIBC_2.31 totalordermag F
+GLIBC_2.31 totalordermagf F
+GLIBC_2.31 totalordermagf32 F
+GLIBC_2.31 totalordermagf32x F
+GLIBC_2.31 totalordermagf64 F
+GLIBC_2.31 totalordermagl F
GLIBC_2.4 exp2l F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
index 02144967c6..aefbfa44ae 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
@@ -42,20 +42,11 @@ GLIBC_2.0 funlockfile F
GLIBC_2.0 longjmp F
GLIBC_2.0 lseek F
GLIBC_2.0 msync F
-GLIBC_2.0 nanosleep F
GLIBC_2.0 open F
GLIBC_2.0 pause F
GLIBC_2.0 pthread_atfork F
-GLIBC_2.0 pthread_attr_destroy F
-GLIBC_2.0 pthread_attr_getdetachstate F
-GLIBC_2.0 pthread_attr_getinheritsched F
-GLIBC_2.0 pthread_attr_getschedparam F
GLIBC_2.0 pthread_attr_getschedpolicy F
GLIBC_2.0 pthread_attr_getscope F
-GLIBC_2.0 pthread_attr_init F
-GLIBC_2.0 pthread_attr_setdetachstate F
-GLIBC_2.0 pthread_attr_setinheritsched F
-GLIBC_2.0 pthread_attr_setschedparam F
GLIBC_2.0 pthread_attr_setschedpolicy F
GLIBC_2.0 pthread_attr_setscope F
GLIBC_2.0 pthread_cancel F
@@ -69,7 +60,6 @@ GLIBC_2.0 pthread_condattr_destroy F
GLIBC_2.0 pthread_condattr_init F
GLIBC_2.0 pthread_create F
GLIBC_2.0 pthread_detach F
-GLIBC_2.0 pthread_equal F
GLIBC_2.0 pthread_exit F
GLIBC_2.0 pthread_getschedparam F
GLIBC_2.0 pthread_getspecific F
@@ -88,7 +78,6 @@ GLIBC_2.0 pthread_mutexattr_getkind_np F
GLIBC_2.0 pthread_mutexattr_init F
GLIBC_2.0 pthread_mutexattr_setkind_np F
GLIBC_2.0 pthread_once F
-GLIBC_2.0 pthread_self F
GLIBC_2.0 pthread_setcancelstate F
GLIBC_2.0 pthread_setcanceltype F
GLIBC_2.0 pthread_setschedparam F
@@ -114,7 +103,6 @@ GLIBC_2.0 siglongjmp F
GLIBC_2.0 sigwait F
GLIBC_2.0 system F
GLIBC_2.0 tcdrain F
-GLIBC_2.0 vfork F
GLIBC_2.0 wait F
GLIBC_2.0 waitpid F
GLIBC_2.0 write F
@@ -140,7 +128,6 @@ GLIBC_2.2 __pthread_rwlock_unlock F
GLIBC_2.2 __pthread_rwlock_wrlock F
GLIBC_2.2 __pwrite64 F
GLIBC_2.2 __res_state F
-GLIBC_2.2 __vfork F
GLIBC_2.2 lseek64 F
GLIBC_2.2 open64 F
GLIBC_2.2 pread F
@@ -149,7 +136,6 @@ GLIBC_2.2 pthread_attr_getguardsize F
GLIBC_2.2 pthread_attr_getstack F
GLIBC_2.2 pthread_attr_getstackaddr F
GLIBC_2.2 pthread_attr_getstacksize F
-GLIBC_2.2 pthread_attr_init F
GLIBC_2.2 pthread_attr_setguardsize F
GLIBC_2.2 pthread_attr_setstack F
GLIBC_2.2 pthread_attr_setstackaddr F
@@ -205,7 +191,7 @@ GLIBC_2.2 sem_trywait F
GLIBC_2.2 sem_unlink F
GLIBC_2.2 sem_wait F
GLIBC_2.2.3 pthread_getattr_np F
-GLIBC_2.2.6 __nanosleep F
+GLIBC_2.2.6 __libpthread_version_placeholder F
GLIBC_2.28 call_once F
GLIBC_2.28 cnd_broadcast F
GLIBC_2.28 cnd_destroy F
@@ -255,6 +241,12 @@ GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
GLIBC_2.3.4 pthread_setaffinity_np F
GLIBC_2.3.4 pthread_setschedprio F
+GLIBC_2.30 pthread_cond_clockwait F
+GLIBC_2.30 pthread_mutex_clocklock F
+GLIBC_2.30 pthread_rwlock_clockrdlock F
+GLIBC_2.30 pthread_rwlock_clockwrlock F
+GLIBC_2.30 sem_clockwait F
+GLIBC_2.31 pthread_clockjoin_np F
GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 pthread_mutex_getprioceiling F
GLIBC_2.4 pthread_mutex_setprioceiling F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
index 84837c8a2e..1539c1cef9 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
@@ -13,11 +13,6 @@ GLIBC_2.2 aio_suspend F
GLIBC_2.2 aio_suspend64 F
GLIBC_2.2 aio_write F
GLIBC_2.2 aio_write64 F
-GLIBC_2.2 clock_getcpuclockid F
-GLIBC_2.2 clock_getres F
-GLIBC_2.2 clock_gettime F
-GLIBC_2.2 clock_nanosleep F
-GLIBC_2.2 clock_settime F
GLIBC_2.2 lio_listio F
GLIBC_2.2 lio_listio64 F
GLIBC_2.2 shm_open F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/lockf64.c b/sysdeps/unix/sysv/linux/mips/mips32/lockf64.c
deleted file mode 100644
index a88f5a784a..0000000000
--- a/sysdeps/unix/sysv/linux/mips/mips32/lockf64.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/lockf64.c>
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/mips-syscall5.S b/sysdeps/unix/sysv/linux/mips/mips32/mips-syscall5.S
index 02031b19e7..abc755bc14 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/mips-syscall5.S
+++ b/sysdeps/unix/sysv/linux/mips/mips32/mips-syscall5.S
@@ -1,5 +1,5 @@
/* MIPS syscall wrappers.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <sys/asm.h>
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/mips-syscall6.S b/sysdeps/unix/sysv/linux/mips/mips32/mips-syscall6.S
index 7c2a77d2d6..17a1d0465c 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/mips-syscall6.S
+++ b/sysdeps/unix/sysv/linux/mips/mips32/mips-syscall6.S
@@ -1,5 +1,5 @@
/* MIPS syscall wrappers.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <sys/asm.h>
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/mips-syscall7.S b/sysdeps/unix/sysv/linux/mips/mips32/mips-syscall7.S
index 6fc4d060e9..632c549015 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/mips-syscall7.S
+++ b/sysdeps/unix/sysv/linux/mips/mips32/mips-syscall7.S
@@ -1,5 +1,5 @@
/* MIPS syscall wrappers.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <sys/asm.h>
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall.h b/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall.h
index 23695ddaea..655a663207 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall.h
+++ b/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall.h
@@ -1,5 +1,5 @@
/* MIPS16 syscall wrappers.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef MIPS16_SYSCALL_H
#define MIPS16_SYSCALL_H 1
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall0.c b/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall0.c
index 57ac2a5109..0d614e3b61 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall0.c
+++ b/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall0.c
@@ -1,5 +1,5 @@
/* MIPS16 syscall wrappers.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall1.c b/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall1.c
index 1ba5c8b79f..40f683845d 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall1.c
+++ b/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall1.c
@@ -1,5 +1,5 @@
/* MIPS16 syscall wrappers.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall2.c b/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall2.c
index 400cb5e08b..77184bf650 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall2.c
+++ b/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall2.c
@@ -1,5 +1,5 @@
/* MIPS16 syscall wrappers.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall3.c b/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall3.c
index 5b87b1bddc..1b5168b15b 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall3.c
+++ b/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall3.c
@@ -1,5 +1,5 @@
/* MIPS16 syscall wrappers.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall4.c b/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall4.c
index 2dbc5b7e8e..c8e2de9cde 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall4.c
+++ b/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall4.c
@@ -1,5 +1,5 @@
/* MIPS16 syscall wrappers.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 42e930d565..bdfd073b86 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -1610,6 +1610,11 @@ GLIBC_2.2 capget F
GLIBC_2.2 capset F
GLIBC_2.2 cbc_crypt F
GLIBC_2.2 clntunix_create F
+GLIBC_2.2 clock_getcpuclockid F
+GLIBC_2.2 clock_getres F
+GLIBC_2.2 clock_gettime F
+GLIBC_2.2 clock_nanosleep F
+GLIBC_2.2 clock_settime F
GLIBC_2.2 creat64 F
GLIBC_2.2 dcngettext F
GLIBC_2.2 des_setparity F
@@ -1965,6 +1970,9 @@ GLIBC_2.28 thrd_current F
GLIBC_2.28 thrd_equal F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
+GLIBC_2.29 getcpu F
+GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
+GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
GLIBC_2.3 __ctype_b_loc F
GLIBC_2.3 __ctype_tolower_loc F
GLIBC_2.3 __ctype_toupper_loc F
@@ -2115,6 +2123,10 @@ GLIBC_2.3.4 setipv4sourcefilter F
GLIBC_2.3.4 setsourcefilter F
GLIBC_2.3.4 xdr_quad_t F
GLIBC_2.3.4 xdr_u_quad_t F
+GLIBC_2.30 getdents64 F
+GLIBC_2.30 gettid F
+GLIBC_2.30 tgkill F
+GLIBC_2.30 twalk_r F
GLIBC_2.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
GLIBC_2.4 __fgets_unlocked_chk F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h b/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h
index cbe9cd2bda..cbc2a4b927 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h
+++ b/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -13,12 +13,13 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LINUX_MIPS_MIPS32_SYSDEP_H
#define _LINUX_MIPS_MIPS32_SYSDEP_H 1
/* There is some commonality. */
+#include <sysdeps/unix/sysv/linux/mips/sysdep.h>
#include <sysdeps/unix/sysv/linux/sysdep.h>
#include <sysdeps/unix/mips/mips32/sysdep.h>
@@ -345,24 +346,13 @@ libc_hidden_proto (__mips_syscall7, nomips16)
_sc_ret.reg.v0; \
})
-#define __SYSCALL_CLOBBERS "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", \
- "$14", "$15", "$24", "$25", "hi", "lo", "memory"
-
-/* Standard MIPS syscalls have an error flag, and return a positive errno
- when the error flag is set. Emulate this behaviour for vsyscalls so that
- the INTERNAL_SYSCALL_{ERROR_P,ERRNO} macros work correctly. */
-#define INTERNAL_VSYSCALL_CALL(funcptr, err, nr, args...) \
- ({ \
- long _ret = funcptr (args); \
- err = ((unsigned long) (_ret) >= (unsigned long) -4095L); \
- if (err) \
- _ret = -_ret; \
- _ret; \
- })
-
-/* List of system calls which are supported as vsyscalls. */
-#define HAVE_CLOCK_GETTIME_VSYSCALL 1
-#define HAVE_GETTIMEOFDAY_VSYSCALL 1
+#if __mips_isa_rev >= 6
+# define __SYSCALL_CLOBBERS "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", \
+ "$14", "$15", "$24", "$25", "memory"
+#else
+# define __SYSCALL_CLOBBERS "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", \
+ "$14", "$15", "$24", "$25", "hi", "lo", "memory"
+#endif
#endif /* __ASSEMBLER__ */
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/fxstat64.c b/sysdeps/unix/sysv/linux/mips/mips64/fxstat64.c
index 071957c85b..37e83e3897 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/fxstat64.c
+++ b/sysdeps/unix/sysv/linux/mips/mips64/fxstat64.c
@@ -1,5 +1,5 @@
/* fxstat64 using 64-bit MIPS fstat system call.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c b/sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c
index 17327e4452..f46fddad02 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c
+++ b/sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/getdents64.c b/sysdeps/unix/sysv/linux/mips/mips64/getdents64.c
index 136baad6dc..50f5d69576 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/getdents64.c
+++ b/sysdeps/unix/sysv/linux/mips/mips64/getdents64.c
@@ -1,5 +1,5 @@
/* Get directory entries. Linux/MIPSn64 LFS version.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <dirent.h>
@@ -22,91 +22,124 @@
#include <assert.h>
#include <sys/param.h>
#include <unistd.h>
-#include <scratch_buffer.h>
+#include <limits.h>
+
+#include <include/libc-pointer-arith.h>
ssize_t
-__getdents64 (int fd, char *buf, size_t nbytes)
+__getdents64 (int fd, void *buf, size_t nbytes)
{
+ /* The system call takes an unsigned int argument, and some length
+ checks in the kernel use an int type. */
+ if (nbytes > INT_MAX)
+ nbytes = INT_MAX;
+
#ifdef __NR_getdents64
- ssize_t ret = INLINE_SYSCALL_CALL (getdents64, fd, buf, nbytes);
- if (ret != -1)
- return ret;
+ static int getdents64_supported = true;
+ if (atomic_load_relaxed (&getdents64_supported))
+ {
+ ssize_t ret = INLINE_SYSCALL_CALL (getdents64, fd, buf, nbytes);
+ if (ret >= 0 || errno != ENOSYS)
+ return ret;
+
+ atomic_store_relaxed (&getdents64_supported, false);
+ }
#endif
/* Unfortunately getdents64 was only wire-up for MIPS n64 on Linux 3.10.
- If syscall is not available it need to fallback to non-LFS one. */
+ If the syscall is not available it need to fallback to the non-LFS one.
+ Also to avoid an unbounded allocation through VLA/alloca or malloc (which
+ would make the syscall non async-signal-safe) it uses a limited buffer.
+ This is sub-optimal for large NBYTES, however this is a fallback
+ mechanism to emulate a syscall that kernel should provide. */
struct kernel_dirent
- {
- unsigned long d_ino;
- unsigned long d_off;
- unsigned short int d_reclen;
- char d_name[256];
- };
+ {
+#if _MIPS_SIM == _ABI64
+ uint64_t d_ino;
+ uint64_t d_off;
+#else
+ uint32_t d_ino;
+ uint32_t d_off;
+#endif
+ unsigned short int d_reclen;
+ char d_name[1];
+ };
+
+ /* The largest possible practical length of the d_name member are 255
+ Unicode characters in UTF-8 encoding, so d_name is 766 bytes long, plus
+ 18 (mips64) / 10 (mips64n32) bytes from header, for total of 784 (mips64)
+ / 776 (mips64n32) bytes total. Ensure that the minimum size holds at
+ least one entry. */
+ enum { KBUF_SIZE = 1024 };
+ char kbuf[KBUF_SIZE];
+ size_t kbuf_size = nbytes < KBUF_SIZE ? nbytes : KBUF_SIZE;
const size_t size_diff = (offsetof (struct dirent64, d_name)
- offsetof (struct kernel_dirent, d_name));
- size_t red_nbytes = MIN (nbytes
- - ((nbytes / (offsetof (struct dirent64, d_name)
- + 14)) * size_diff),
- nbytes - size_diff);
+ struct dirent64 *dp = (struct dirent64 *) buf;
- struct scratch_buffer tmpbuf;
- scratch_buffer_init (&tmpbuf);
- if (!scratch_buffer_set_array_size (&tmpbuf, red_nbytes, sizeof (uint8_t)))
- INLINE_SYSCALL_ERROR_RETURN_VALUE (ENOMEM);
+ size_t nb = 0;
+ off64_t last_offset = -1;
- struct kernel_dirent *skdp, *kdp;
- skdp = kdp = tmpbuf.data;
+ ssize_t r = INLINE_SYSCALL_CALL (getdents, fd, kbuf, kbuf_size);
+ if (r <= 0)
+ return r;
- ssize_t retval = INLINE_SYSCALL_CALL (getdents, fd, kdp, red_nbytes);
- if (retval == -1)
- {
- scratch_buffer_free (&tmpbuf);
- return -1;
- }
+ struct kernel_dirent *skdp, *kdp;
+ skdp = kdp = (struct kernel_dirent *) kbuf;
- off64_t last_offset = -1;
- struct dirent64 *dp = (struct dirent64 *) buf;
- while ((char *) kdp < (char *) skdp + retval)
+ while ((char *) kdp < (char *) skdp + r)
{
- const size_t alignment = _Alignof (struct dirent64);
- /* Since kdp->d_reclen is already aligned for the kernel structure
- this may compute a value that is bigger than necessary. */
- size_t new_reclen = ((kdp->d_reclen + size_diff + alignment - 1)
- & ~(alignment - 1));
- if ((char *) dp + new_reclen > buf + nbytes)
- {
- /* Our heuristic failed. We read too many entries. Reset
- the stream. */
- assert (last_offset != -1);
- __lseek64 (fd, last_offset, SEEK_SET);
-
- if ((char *) dp == buf)
+ /* This macro is used to avoid aliasing violation. */
+#define KDP_MEMBER(src, member) \
+ (__typeof__((struct kernel_dirent){0}.member) *) \
+ memcpy (&((__typeof__((struct kernel_dirent){0}.member)){0}), \
+ ((char *)(src) + offsetof (struct kernel_dirent, member)),\
+ sizeof ((struct kernel_dirent){0}.member))
+
+ /* This is a conservative approximation, since some of size_diff might
+ fit into the existing padding for alignment. */
+ unsigned short int k_reclen = *KDP_MEMBER (kdp, d_reclen);
+ unsigned short int new_reclen = ALIGN_UP (k_reclen + size_diff,
+ _Alignof (struct dirent64));
+ if (nb + new_reclen > nbytes)
+ {
+ /* Entry is too large for the fixed-size buffer. */
+ if (last_offset == -1)
{
- scratch_buffer_free (&tmpbuf);
- return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
+ __set_errno (EINVAL);
+ return -1;
}
- break;
+ /* The new entry will overflow the input buffer, rewind to last
+ obtained entry and return. */
+ __lseek64 (fd, last_offset, SEEK_SET);
+ return (char *) dp - (char *) buf;
}
-
- last_offset = kdp->d_off;
- dp->d_ino = kdp->d_ino;
- dp->d_off = kdp->d_off;
- dp->d_reclen = new_reclen;
- dp->d_type = *((char *) kdp + kdp->d_reclen - 1);
+ nb += new_reclen;
+
+ memcpy (((char *) dp + offsetof (struct dirent64, d_ino)),
+ KDP_MEMBER (kdp, d_ino), sizeof ((struct dirent64){0}.d_ino));
+ memcpy (((char *) dp + offsetof (struct dirent64, d_off)),
+ KDP_MEMBER (kdp, d_off), sizeof ((struct dirent64){0}.d_off));
+ last_offset = *KDP_MEMBER (kdp, d_off);
+ memcpy (((char *) dp + offsetof (struct dirent64, d_reclen)),
+ &new_reclen, sizeof (new_reclen));
+ dp->d_type = *((char *) kdp + k_reclen - 1);
memcpy (dp->d_name, kdp->d_name,
- kdp->d_reclen - offsetof (struct kernel_dirent, d_name));
+ k_reclen - offsetof (struct kernel_dirent, d_name));
dp = (struct dirent64 *) ((char *) dp + new_reclen);
- kdp = (struct kernel_dirent *) (((char *) kdp) + kdp->d_reclen);
+ kdp = (struct kernel_dirent *) (((char *) kdp) + k_reclen);
}
- scratch_buffer_free (&tmpbuf);
- return (char *) dp - buf;
+ return (char *) dp - (char *) buf;
}
+libc_hidden_def (__getdents64)
+weak_alias (__getdents64, getdents64)
+
#if _DIRENT_MATCHES_DIRENT64
strong_alias (__getdents64, __getdents)
#endif
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/ipc_priv.h b/sysdeps/unix/sysv/linux/mips/mips64/ipc_priv.h
index 269ce9ea60..3185d3940c 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/ipc_priv.h
+++ b/sysdeps/unix/sysv/linux/mips/mips64/ipc_priv.h
@@ -1,5 +1,5 @@
/* Old SysV permission definition for Linux. MIPS64 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,19 +14,8 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#include <sys/ipc.h>
-
-#define __IPC_64 0x100
-
-struct __old_ipc_perm
-{
- __key_t __key; /* Key. */
- int uid; /* Owner's user ID. */
- int gid; /* Owner's group ID. */
- int cuid; /* Creator's user ID. */
- int cgid; /* Creator's group ID. */
- int mode; /* Read/write permission. */
- unsigned short int __seq; /* Sequence number. */
-};
+#define __OLD_IPC_ID_TYPE int
+#define __OLD_IPC_MODE_TYPE int
+#include <sysdeps/unix/sysv/linux/ipc_priv.h>
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/ldconfig.h b/sysdeps/unix/sysv/linux/mips/mips64/ldconfig.h
index ac9b092b2a..e834127ddc 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/ldconfig.h
+++ b/sysdeps/unix/sysv/linux/mips/mips64/ldconfig.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/generic/ldconfig.h>
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
index c19ee985a6..823f87277e 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
@@ -1032,3 +1032,24 @@ GLIBC_2.28 fmul F
GLIBC_2.28 fmull F
GLIBC_2.28 fsub F
GLIBC_2.28 fsubl F
+GLIBC_2.29 exp F
+GLIBC_2.29 exp2 F
+GLIBC_2.29 log F
+GLIBC_2.29 log2 F
+GLIBC_2.29 pow F
+GLIBC_2.31 totalorder F
+GLIBC_2.31 totalorderf F
+GLIBC_2.31 totalorderf128 F
+GLIBC_2.31 totalorderf32 F
+GLIBC_2.31 totalorderf32x F
+GLIBC_2.31 totalorderf64 F
+GLIBC_2.31 totalorderf64x F
+GLIBC_2.31 totalorderl F
+GLIBC_2.31 totalordermag F
+GLIBC_2.31 totalordermagf F
+GLIBC_2.31 totalordermagf128 F
+GLIBC_2.31 totalordermagf32 F
+GLIBC_2.31 totalordermagf32x F
+GLIBC_2.31 totalordermagf64 F
+GLIBC_2.31 totalordermagf64x F
+GLIBC_2.31 totalordermagl F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
index 02144967c6..aefbfa44ae 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
@@ -42,20 +42,11 @@ GLIBC_2.0 funlockfile F
GLIBC_2.0 longjmp F
GLIBC_2.0 lseek F
GLIBC_2.0 msync F
-GLIBC_2.0 nanosleep F
GLIBC_2.0 open F
GLIBC_2.0 pause F
GLIBC_2.0 pthread_atfork F
-GLIBC_2.0 pthread_attr_destroy F
-GLIBC_2.0 pthread_attr_getdetachstate F
-GLIBC_2.0 pthread_attr_getinheritsched F
-GLIBC_2.0 pthread_attr_getschedparam F
GLIBC_2.0 pthread_attr_getschedpolicy F
GLIBC_2.0 pthread_attr_getscope F
-GLIBC_2.0 pthread_attr_init F
-GLIBC_2.0 pthread_attr_setdetachstate F
-GLIBC_2.0 pthread_attr_setinheritsched F
-GLIBC_2.0 pthread_attr_setschedparam F
GLIBC_2.0 pthread_attr_setschedpolicy F
GLIBC_2.0 pthread_attr_setscope F
GLIBC_2.0 pthread_cancel F
@@ -69,7 +60,6 @@ GLIBC_2.0 pthread_condattr_destroy F
GLIBC_2.0 pthread_condattr_init F
GLIBC_2.0 pthread_create F
GLIBC_2.0 pthread_detach F
-GLIBC_2.0 pthread_equal F
GLIBC_2.0 pthread_exit F
GLIBC_2.0 pthread_getschedparam F
GLIBC_2.0 pthread_getspecific F
@@ -88,7 +78,6 @@ GLIBC_2.0 pthread_mutexattr_getkind_np F
GLIBC_2.0 pthread_mutexattr_init F
GLIBC_2.0 pthread_mutexattr_setkind_np F
GLIBC_2.0 pthread_once F
-GLIBC_2.0 pthread_self F
GLIBC_2.0 pthread_setcancelstate F
GLIBC_2.0 pthread_setcanceltype F
GLIBC_2.0 pthread_setschedparam F
@@ -114,7 +103,6 @@ GLIBC_2.0 siglongjmp F
GLIBC_2.0 sigwait F
GLIBC_2.0 system F
GLIBC_2.0 tcdrain F
-GLIBC_2.0 vfork F
GLIBC_2.0 wait F
GLIBC_2.0 waitpid F
GLIBC_2.0 write F
@@ -140,7 +128,6 @@ GLIBC_2.2 __pthread_rwlock_unlock F
GLIBC_2.2 __pthread_rwlock_wrlock F
GLIBC_2.2 __pwrite64 F
GLIBC_2.2 __res_state F
-GLIBC_2.2 __vfork F
GLIBC_2.2 lseek64 F
GLIBC_2.2 open64 F
GLIBC_2.2 pread F
@@ -149,7 +136,6 @@ GLIBC_2.2 pthread_attr_getguardsize F
GLIBC_2.2 pthread_attr_getstack F
GLIBC_2.2 pthread_attr_getstackaddr F
GLIBC_2.2 pthread_attr_getstacksize F
-GLIBC_2.2 pthread_attr_init F
GLIBC_2.2 pthread_attr_setguardsize F
GLIBC_2.2 pthread_attr_setstack F
GLIBC_2.2 pthread_attr_setstackaddr F
@@ -205,7 +191,7 @@ GLIBC_2.2 sem_trywait F
GLIBC_2.2 sem_unlink F
GLIBC_2.2 sem_wait F
GLIBC_2.2.3 pthread_getattr_np F
-GLIBC_2.2.6 __nanosleep F
+GLIBC_2.2.6 __libpthread_version_placeholder F
GLIBC_2.28 call_once F
GLIBC_2.28 cnd_broadcast F
GLIBC_2.28 cnd_destroy F
@@ -255,6 +241,12 @@ GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
GLIBC_2.3.4 pthread_setaffinity_np F
GLIBC_2.3.4 pthread_setschedprio F
+GLIBC_2.30 pthread_cond_clockwait F
+GLIBC_2.30 pthread_mutex_clocklock F
+GLIBC_2.30 pthread_rwlock_clockrdlock F
+GLIBC_2.30 pthread_rwlock_clockwrlock F
+GLIBC_2.30 sem_clockwait F
+GLIBC_2.31 pthread_clockjoin_np F
GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 pthread_mutex_getprioceiling F
GLIBC_2.4 pthread_mutex_setprioceiling F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
index 84837c8a2e..1539c1cef9 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
@@ -13,11 +13,6 @@ GLIBC_2.2 aio_suspend F
GLIBC_2.2 aio_suspend64 F
GLIBC_2.2 aio_write F
GLIBC_2.2 aio_write64 F
-GLIBC_2.2 clock_getcpuclockid F
-GLIBC_2.2 clock_getres F
-GLIBC_2.2 clock_gettime F
-GLIBC_2.2 clock_nanosleep F
-GLIBC_2.2 clock_settime F
GLIBC_2.2 lio_listio F
GLIBC_2.2 lio_listio64 F
GLIBC_2.2 shm_open F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c b/sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c
index 64d3664f98..3fc13a9a51 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c
+++ b/sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c
@@ -1,5 +1,5 @@
/* lxstat64 using 64-bit MIPS lstat system call.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/msgctl.c b/sysdeps/unix/sysv/linux/mips/mips64/msgctl.c
index 5c0245f17f..1943028692 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/msgctl.c
+++ b/sysdeps/unix/sysv/linux/mips/mips64/msgctl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <shlib-compat.h>
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index f89b44f3a1..3d61d4974a 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -1611,6 +1611,11 @@ GLIBC_2.2 capget F
GLIBC_2.2 capset F
GLIBC_2.2 cbc_crypt F
GLIBC_2.2 clntunix_create F
+GLIBC_2.2 clock_getcpuclockid F
+GLIBC_2.2 clock_getres F
+GLIBC_2.2 clock_gettime F
+GLIBC_2.2 clock_nanosleep F
+GLIBC_2.2 clock_settime F
GLIBC_2.2 creat64 F
GLIBC_2.2 dcngettext F
GLIBC_2.2 des_setparity F
@@ -1973,6 +1978,9 @@ GLIBC_2.28 thrd_current F
GLIBC_2.28 thrd_equal F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
+GLIBC_2.29 getcpu F
+GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
+GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
GLIBC_2.3 __ctype_b_loc F
GLIBC_2.3 __ctype_tolower_loc F
GLIBC_2.3 __ctype_toupper_loc F
@@ -2123,6 +2131,10 @@ GLIBC_2.3.4 setipv4sourcefilter F
GLIBC_2.3.4 setsourcefilter F
GLIBC_2.3.4 xdr_quad_t F
GLIBC_2.3.4 xdr_u_quad_t F
+GLIBC_2.30 getdents64 F
+GLIBC_2.30 gettid F
+GLIBC_2.30 tgkill F
+GLIBC_2.30 twalk_r F
GLIBC_2.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
GLIBC_2.4 __fgets_unlocked_chk F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/lockf64.c b/sysdeps/unix/sysv/linux/mips/mips64/n32/lockf64.c
deleted file mode 100644
index a88f5a784a..0000000000
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/lockf64.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/lockf64.c>
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/lseek.c b/sysdeps/unix/sysv/linux/mips/mips64/n32/lseek.c
index 2180b52abc..9e23a7a748 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/lseek.c
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/lseek.c
@@ -1,5 +1,5 @@
/* MIPS n32 lseek implementation.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <sys/types.h>
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/mmap_internal.h b/sysdeps/unix/sysv/linux/mips/mips64/n32/mmap_internal.h
index b40505acbb..37ae3d8366 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/mmap_internal.h
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/mmap_internal.h
@@ -1,5 +1,5 @@
/* Common mmap definition for Linux implementation. MIPS n32 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef MMAP_MIPS_N32_INTERNAL_H
#define MMAP_MIPS_N32_INTERNAL_H
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h b/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h
index 8e3117d7a7..fd16508215 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -13,12 +13,13 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LINUX_MIPS_SYSDEP_H
#define _LINUX_MIPS_SYSDEP_H 1
/* There is some commonality. */
+#include <sysdeps/unix/sysv/linux/mips/sysdep.h>
#include <sysdeps/unix/sysv/linux/sysdep.h>
#include <sysdeps/unix/mips/mips64/n32/sysdep.h>
@@ -293,24 +294,13 @@
_sys_result; \
})
-#define __SYSCALL_CLOBBERS "$1", "$3", "$10", "$11", "$12", "$13", \
- "$14", "$15", "$24", "$25", "hi", "lo", "memory"
-
-/* Standard MIPS syscalls have an error flag, and return a positive errno
- when the error flag is set. Emulate this behaviour for vsyscalls so that
- the INTERNAL_SYSCALL_{ERROR_P,ERRNO} macros work correctly. */
-#define INTERNAL_VSYSCALL_CALL(funcptr, err, nr, args...) \
- ({ \
- long _ret = funcptr (args); \
- err = ((unsigned long) (_ret) >= (unsigned long) -4095L); \
- if (err) \
- _ret = -_ret; \
- _ret; \
- })
-
-/* List of system calls which are supported as vsyscalls. */
-#define HAVE_CLOCK_GETTIME_VSYSCALL 1
-#define HAVE_GETTIMEOFDAY_VSYSCALL 1
+#if __mips_isa_rev >= 6
+# define __SYSCALL_CLOBBERS "$1", "$3", "$10", "$11", "$12", "$13", \
+ "$14", "$15", "$24", "$25", "memory"
+#else
+# define __SYSCALL_CLOBBERS "$1", "$3", "$10", "$11", "$12", "$13", \
+ "$14", "$15", "$24", "$25", "hi", "lo", "memory"
+#endif
#endif /* __ASSEMBLER__ */
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/ioctl.S b/sysdeps/unix/sysv/linux/mips/mips64/n64/ioctl.S
index 67c5905673..319b589b92 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/ioctl.S
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/ioctl.S
@@ -1,4 +1,4 @@
-/* Copyright 2003-2018 Free Software Foundation, Inc.
+/* Copyright 2003-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 1486af11d7..675acca5db 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -1607,6 +1607,11 @@ GLIBC_2.2 capget F
GLIBC_2.2 capset F
GLIBC_2.2 cbc_crypt F
GLIBC_2.2 clntunix_create F
+GLIBC_2.2 clock_getcpuclockid F
+GLIBC_2.2 clock_getres F
+GLIBC_2.2 clock_gettime F
+GLIBC_2.2 clock_nanosleep F
+GLIBC_2.2 clock_settime F
GLIBC_2.2 creat64 F
GLIBC_2.2 dcngettext F
GLIBC_2.2 des_setparity F
@@ -1968,6 +1973,9 @@ GLIBC_2.28 thrd_current F
GLIBC_2.28 thrd_equal F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
+GLIBC_2.29 getcpu F
+GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
+GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
GLIBC_2.3 __ctype_b_loc F
GLIBC_2.3 __ctype_tolower_loc F
GLIBC_2.3 __ctype_toupper_loc F
@@ -2117,6 +2125,10 @@ GLIBC_2.3.4 setipv4sourcefilter F
GLIBC_2.3.4 setsourcefilter F
GLIBC_2.3.4 xdr_quad_t F
GLIBC_2.3.4 xdr_u_quad_t F
+GLIBC_2.30 getdents64 F
+GLIBC_2.30 gettid F
+GLIBC_2.30 tgkill F
+GLIBC_2.30 twalk_r F
GLIBC_2.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
GLIBC_2.4 __fgets_unlocked_chk F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/posix_fadvise64.c b/sysdeps/unix/sysv/linux/mips/mips64/n64/posix_fadvise64.c
index 28624b6311..ea31133765 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/posix_fadvise64.c
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/posix_fadvise64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#undef weak_alias
#define weak_alias(a, b)
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h b/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h
index c9046a06b8..8df4d9b961 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -13,12 +13,13 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LINUX_MIPS_SYSDEP_H
#define _LINUX_MIPS_SYSDEP_H 1
/* There is some commonality. */
+#include <sysdeps/unix/sysv/linux/mips/sysdep.h>
#include <sysdeps/unix/sysv/linux/sysdep.h>
#include <sysdeps/unix/mips/mips64/n64/sysdep.h>
@@ -289,24 +290,13 @@
_sys_result; \
})
-#define __SYSCALL_CLOBBERS "$1", "$3", "$10", "$11", "$12", "$13", \
- "$14", "$15", "$24", "$25", "hi", "lo", "memory"
-
-/* Standard MIPS syscalls have an error flag, and return a positive errno
- when the error flag is set. Emulate this behaviour for vsyscalls so that
- the INTERNAL_SYSCALL_{ERROR_P,ERRNO} macros work correctly. */
-#define INTERNAL_VSYSCALL_CALL(funcptr, err, nr, args...) \
- ({ \
- long _ret = funcptr (args); \
- err = ((unsigned long) (_ret) >= (unsigned long) -4095L); \
- if (err) \
- _ret = -_ret; \
- _ret; \
- })
-
-/* List of system calls which are supported as vsyscalls. */
-#define HAVE_CLOCK_GETTIME_VSYSCALL 1
-#define HAVE_GETTIMEOFDAY_VSYSCALL 1
+#if __mips_isa_rev >= 6
+# define __SYSCALL_CLOBBERS "$1", "$3", "$10", "$11", "$12", "$13", \
+ "$14", "$15", "$24", "$25", "memory"
+#else
+# define __SYSCALL_CLOBBERS "$1", "$3", "$10", "$11", "$12", "$13", \
+ "$14", "$15", "$24", "$25", "hi", "lo", "memory"
+#endif
#endif /* __ASSEMBLER__ */
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/semctl.c b/sysdeps/unix/sysv/linux/mips/mips64/semctl.c
index 4987ed63e0..6218f81f69 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/semctl.c
+++ b/sysdeps/unix/sysv/linux/mips/mips64/semctl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <shlib-compat.h>
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/shmctl.c b/sysdeps/unix/sysv/linux/mips/mips64/shmctl.c
index 6a5c4fbd20..db41b6a684 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/shmctl.c
+++ b/sysdeps/unix/sysv/linux/mips/mips64/shmctl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <shlib-compat.h>
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/statx_cp.c b/sysdeps/unix/sysv/linux/mips/mips64/statx_cp.c
new file mode 100644
index 0000000000..260cda987e
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/mips64/statx_cp.c
@@ -0,0 +1,3 @@
+/* Override the generic statx_cp.c which is only needed for new 32-bit arch
+ without stat64 family support.
+ */
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/syscall.S b/sysdeps/unix/sysv/linux/mips/mips64/syscall.S
index 1968b19a0a..944cb09bb2 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/syscall.S
+++ b/sysdeps/unix/sysv/linux/mips/mips64/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/xstat64.c b/sysdeps/unix/sysv/linux/mips/mips64/xstat64.c
index 29821aca00..9c28bdceb2 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/xstat64.c
+++ b/sysdeps/unix/sysv/linux/mips/mips64/xstat64.c
@@ -1,5 +1,5 @@
/* xstat64 using 64-bit MIPS stat system call.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/sysdeps/unix/sysv/linux/mips/mmap_info.h b/sysdeps/unix/sysv/linux/mips/mmap_info.h
new file mode 100644
index 0000000000..07c9e3a044
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/mmap_info.h
@@ -0,0 +1,13 @@
+/* mips64n32 uses __NR_mmap for mmap64 while still having sizeof (off_t)
+ smaller than sizeof (off64_t). So it allows mapping large offsets
+ using mmap64 than 32-bit archs which uses __NR_mmap2. */
+
+static inline uint64_t
+mmap64_maximum_offset (long int page_shift)
+{
+#if _MIPS_SIM == _ABIN32 || _MIPS_SIM == _ABI64
+ return UINT64_MAX;
+#else
+ return (UINT64_C(1) << (page_shift + (8 * sizeof (off_t)))) - 1;
+#endif
+}
diff --git a/sysdeps/unix/sysv/linux/mips/profil-counter.h b/sysdeps/unix/sysv/linux/mips/profil-counter.h
deleted file mode 100644
index 8a6a0bcf3d..0000000000
--- a/sysdeps/unix/sysv/linux/mips/profil-counter.h
+++ /dev/null
@@ -1,2 +0,0 @@
-/* We can use the ix86 version. */
-#include <sysdeps/unix/sysv/linux/i386/profil-counter.h>
diff --git a/sysdeps/unix/sysv/linux/mips/pt-vfork.S b/sysdeps/unix/sysv/linux/mips/pt-vfork.S
deleted file mode 100644
index 65cc3823ac..0000000000
--- a/sysdeps/unix/sysv/linux/mips/pt-vfork.S
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/alpha/pt-vfork.S>
diff --git a/sysdeps/unix/sysv/linux/mips/putmsg.c b/sysdeps/unix/sysv/linux/mips/putmsg.c
deleted file mode 100644
index ebc1680ca7..0000000000
--- a/sysdeps/unix/sysv/linux/mips/putmsg.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/putmsg.c>
diff --git a/sysdeps/unix/sysv/linux/mips/readelflib.c b/sysdeps/unix/sysv/linux/mips/readelflib.c
index 2c4c26db42..150d44317c 100644
--- a/sysdeps/unix/sysv/linux/mips/readelflib.c
+++ b/sysdeps/unix/sysv/linux/mips/readelflib.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Alexandre Oliva <aoliva@redhat.com>
Based on work ../x86_64/readelflib.c,
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
int process_elf32_file (const char *file_name, const char *lib, int *flag,
diff --git a/sysdeps/unix/sysv/linux/mips/register-dump.h b/sysdeps/unix/sysv/linux/mips/register-dump.h
index f1cb544044..8d137202c8 100644
--- a/sysdeps/unix/sysv/linux/mips/register-dump.h
+++ b/sysdeps/unix/sysv/linux/mips/register-dump.h
@@ -1,5 +1,5 @@
/* Dump registers.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sgidefs.h>
#include <sys/uio.h>
diff --git a/sysdeps/unix/sysv/linux/mips/setcontext.S b/sysdeps/unix/sysv/linux/mips/setcontext.S
index d71b16ceb1..472e9d8a27 100644
--- a/sysdeps/unix/sysv/linux/mips/setcontext.S
+++ b/sysdeps/unix/sysv/linux/mips/setcontext.S
@@ -1,5 +1,5 @@
/* Set current context.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Maciej W. Rozycki <macro@codesourcery.com>.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <sys/asm.h>
@@ -77,12 +77,6 @@ NESTED (__setcontext, FRAMESZ, ra)
.set at
#endif
- /* Check for the magic flag. */
- li v0, 1
- /* zero */
- REG_L v1, (MCONTEXT_GREGOFF + 0 * MCONTEXT_GREGSZ + MCONTEXT_GREGS)(a0)
- bne v0, v1, 98f
-
REG_S a0, A0OFF(sp)
/* rt_sigprocmask (SIG_SETMASK, &ucp->uc_sigmask, NULL, _NSIG8) */
@@ -154,38 +148,6 @@ NESTED (__setcontext, FRAMESZ, ra)
move v0, zero
jr t9
-98:
- /* This is a context obtained from a signal handler.
- Perform a full restore by pushing the context
- passed onto a simulated signal frame on the stack
- and call the signal return syscall as if a signal
- handler exited normally. */
- PTR_ADDIU sp, -((RT_SIGFRAME_SIZE + ALSZ) & ALMASK)
- cfi_adjust_cfa_offset ((RT_SIGFRAME_SIZE + ALSZ) & ALMASK)
-
- /* Only ucontext is referred to from rt_sigreturn,
- copy it. */
- PTR_ADDIU t1, sp, RT_SIGFRAME_UCONTEXT
- li t3, ((UCONTEXT_SIZE + SZREG - 1) / SZREG) - 1
-0:
- REG_L t2, (a0)
- PTR_ADDIU a0, SZREG
- REG_S t2, (t1)
- PTR_ADDIU t1, SZREG
- .set noreorder
- bgtz t3, 0b
- addiu t3, -1
- .set reorder
-
-/* rt_sigreturn () -- no arguments, sp points to struct rt_sigframe. */
- li v0, SYS_ify (rt_sigreturn)
- syscall
-
- /* Restore the stack and fall through to the error
- path. Successful rt_sigreturn never returns to
- its calling place. */
- PTR_ADDIU sp, ((RT_SIGFRAME_SIZE + ALSZ) & ALMASK)
- cfi_adjust_cfa_offset (-((RT_SIGFRAME_SIZE + ALSZ) & ALMASK))
99:
#ifdef __PIC__
PTR_LA t9, JUMPTARGET (__syscall_error)
diff --git a/sysdeps/unix/sysv/linux/mips/setrlimit64.c b/sysdeps/unix/sysv/linux/mips/setrlimit64.c
index d806a7e08b..2d1d47709c 100644
--- a/sysdeps/unix/sysv/linux/mips/setrlimit64.c
+++ b/sysdeps/unix/sysv/linux/mips/setrlimit64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2013-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sgidefs.h>
diff --git a/sysdeps/unix/sysv/linux/mips/sigcontextinfo.h b/sysdeps/unix/sysv/linux/mips/sigcontextinfo.h
index fb6e71b662..8962578000 100644
--- a/sysdeps/unix/sysv/linux/mips/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/mips/sigcontextinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 2000.
@@ -14,19 +14,15 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#ifndef _SIGCONTEXTINFO_H
+#define _SIGCONTEXTINFO_H
-#include <sgidefs.h>
-
-#if _MIPS_SIM == _ABIO32
-
-#define SIGCONTEXT unsigned long _code, struct sigcontext *
-#define GET_PC(ctx) ((void *) (unsigned long) ctx->sc_pc)
-
-#else
-
-#define SIGCONTEXT unsigned long _code, ucontext_t *
-#define GET_PC(ctx) ((void *) (unsigned long) ctx->uc_mcontext.pc)
+static inline uintptr_t
+sigcontext_get_pc (const ucontext_t *ctx)
+{
+ return ctx->uc_mcontext.pc;
+}
#endif
diff --git a/sysdeps/unix/sysv/linux/mips/swapcontext.S b/sysdeps/unix/sysv/linux/mips/swapcontext.S
index 2051ed3e76..c1c20c4460 100644
--- a/sysdeps/unix/sysv/linux/mips/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/mips/swapcontext.S
@@ -1,5 +1,5 @@
/* Save and set current context.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Maciej W. Rozycki <macro@codesourcery.com>.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <sys/asm.h>
@@ -87,11 +87,6 @@ NESTED (__swapcontext, FRAMESZ, ra)
.set at
#endif
- /* Store a magic flag. */
- li v1, 1
- /* zero */
- REG_S v1, (MCONTEXT_GREGOFF + 0 * MCONTEXT_GREGSZ + MCONTEXT_GREGS)(a0)
-
REG_S s0, (MCONTEXT_GREGOFF + 16 * MCONTEXT_GREGSZ + MCONTEXT_GREGS)(a0)
REG_S s1, (MCONTEXT_GREGOFF + 17 * MCONTEXT_GREGSZ + MCONTEXT_GREGS)(a0)
REG_S s2, (MCONTEXT_GREGOFF + 18 * MCONTEXT_GREGSZ + MCONTEXT_GREGS)(a0)
diff --git a/sysdeps/unix/sysv/linux/mips/sys/cachectl.h b/sysdeps/unix/sysv/linux/mips/sys/cachectl.h
index 51d9fcd28f..850e8ae3bc 100644
--- a/sysdeps/unix/sysv/linux/mips/sys/cachectl.h
+++ b/sysdeps/unix/sysv/linux/mips/sys/cachectl.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_CACHECTL_H
#define _SYS_CACHECTL_H 1
diff --git a/sysdeps/unix/sysv/linux/mips/sys/procfs.h b/sysdeps/unix/sysv/linux/mips/sys/procfs.h
deleted file mode 100644
index 2be0c7e818..0000000000
--- a/sysdeps/unix/sysv/linux/mips/sys/procfs.h
+++ /dev/null
@@ -1,126 +0,0 @@
-/* Copyright (C) 1996-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_PROCFS_H
-#define _SYS_PROCFS_H 1
-
-/* This is somehow modelled after the file of the same name on SysVr4
- systems. It provides a definition of the core file format for ELF
- used on Linux. */
-
-#include <features.h>
-#include <sgidefs.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#include <sys/user.h>
-#include <sgidefs.h>
-
-/* ELF register definitions */
-#define ELF_NGREG 45
-#define ELF_NFPREG 33
-
-#if _MIPS_SIM == _ABIN32
-__extension__ typedef unsigned long long elf_greg_t;
-#else
-typedef unsigned long elf_greg_t;
-#endif
-typedef elf_greg_t elf_gregset_t[ELF_NGREG];
-
-typedef double elf_fpreg_t;
-typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
-
-__BEGIN_DECLS
-
-struct elf_siginfo
- {
- int si_signo; /* Signal number. */
- int si_code; /* Extra code. */
- int si_errno; /* Errno. */
- };
-
-
-/* Definitions to generate Intel SVR4-like core files. These mostly
- have the same names as the SVR4 types with "elf_" tacked on the
- front to prevent clashes with linux definitions, and the typedef
- forms have been avoided. This is mostly like the SVR4 structure,
- but more Linuxy, with things that Linux does not support and which
- gdb doesn't really use excluded. Fields present but not used are
- marked with "XXX". */
-struct elf_prstatus
- {
- struct elf_siginfo pr_info; /* Info associated with signal. */
- short int pr_cursig; /* Current signal. */
-#if _MIPS_SIM == _ABIN32
- __extension__ unsigned long long int pr_sigpend;
- __extension__ unsigned long long int pr_sighold;
-#else
- unsigned long int pr_sigpend; /* Set of pending signals. */
- unsigned long int pr_sighold; /* Set of held signals. */
-#endif
- __pid_t pr_pid;
- __pid_t pr_ppid;
- __pid_t pr_pgrp;
- __pid_t pr_sid;
- struct timeval pr_utime; /* User time. */
- struct timeval pr_stime; /* System time. */
- struct timeval pr_cutime; /* Cumulative user time. */
- struct timeval pr_cstime; /* Cumulative system time. */
- elf_gregset_t pr_reg; /* GP registers. */
- int pr_fpvalid; /* True if math copro being used. */
- };
-
-
-#define ELF_PRARGSZ (80) /* Number of chars for args */
-
-struct elf_prpsinfo
- {
- char pr_state; /* Numeric process state. */
- char pr_sname; /* Char for pr_state. */
- char pr_zomb; /* Zombie. */
- char pr_nice; /* Nice val. */
-#if _MIPS_SIM == _ABIN32
- __extension__ unsigned long long int pr_flag;
-#else
- unsigned long int pr_flag; /* Flags. */
-#endif
- long pr_uid;
- long pr_gid;
- int pr_pid, pr_ppid, pr_pgrp, pr_sid;
- /* Lots missing */
- char pr_fname[16]; /* Filename of executable. */
- char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
- };
-
-
-/* Addresses. */
-typedef void *psaddr_t;
-
-/* Register sets. Linux has different names. */
-typedef elf_gregset_t prgregset_t;
-typedef elf_fpregset_t prfpregset_t;
-
-/* We don't have any differences between processes and threads,
- therefore habe only ine PID type. */
-typedef __pid_t lwpid_t;
-
-
-typedef struct elf_prstatus prstatus_t;
-typedef struct elf_prpsinfo prpsinfo_t;
-
-__END_DECLS
-
-#endif /* sys/procfs.h */
diff --git a/sysdeps/unix/sysv/linux/mips/sys/sysmips.h b/sysdeps/unix/sysv/linux/mips/sys/sysmips.h
index 2e488fa69e..d278c12dc4 100644
--- a/sysdeps/unix/sysv/linux/mips/sys/sysmips.h
+++ b/sysdeps/unix/sysv/linux/mips/sys/sysmips.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_SYSMIPS_H
#define _SYS_SYSMIPS_H 1
diff --git a/sysdeps/unix/sysv/linux/mips/sys/ucontext.h b/sysdeps/unix/sysv/linux/mips/sys/ucontext.h
index ac2f3866f7..bdf4c4deb4 100644
--- a/sysdeps/unix/sysv/linux/mips/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/mips/sys/ucontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc. This file is part of the GNU C Library.
+/* Copyright (C) 1997-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
@@ -12,7 +12,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Don't rely on this, the interface is currently messed up and may need to
be broken to be fixed. */
diff --git a/sysdeps/unix/sysv/linux/mips/sys/user.h b/sysdeps/unix/sysv/linux/mips/sys/user.h
index 506c742c04..31cc36d7c9 100644
--- a/sysdeps/unix/sysv/linux/mips/sys/user.h
+++ b/sysdeps/unix/sysv/linux/mips/sys/user.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_USER_H
#define _SYS_USER_H 1
diff --git a/sysdeps/unix/sysv/linux/mips/sysdep.h b/sysdeps/unix/sysv/linux/mips/sysdep.h
new file mode 100644
index 0000000000..82a3cf9f3d
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/sysdep.h
@@ -0,0 +1,40 @@
+/* Syscall definitions, Linux MIPS generic version.
+ 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. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#define VDSO_NAME "LINUX_2.6"
+#define VDSO_HASH 61765110
+
+/* List of system calls which are supported as vsyscalls. */
+#define HAVE_CLOCK_GETTIME_VSYSCALL "__vdso_clock_gettime"
+#define HAVE_GETTIMEOFDAY_VSYSCALL "__vdso_gettimeofday"
+
+#ifndef __ASSEMBLER__
+
+/* Standard MIPS syscalls have an error flag, and return a positive errno
+ when the error flag is set. Emulate this behaviour for vsyscalls so that
+ the INTERNAL_SYSCALL_{ERROR_P,ERRNO} macros work correctly. */
+#define INTERNAL_VSYSCALL_CALL(funcptr, err, nr, args...) \
+ ({ \
+ long _ret = funcptr (args); \
+ err = ((unsigned long) (_ret) >= (unsigned long) -4095L); \
+ if (err) \
+ _ret = -_ret; \
+ _ret; \
+ })
+
+#endif /* __ASSEMBLER__ */
diff --git a/sysdeps/unix/sysv/linux/mips/ustat.c b/sysdeps/unix/sysv/linux/mips/ustat.c
index 786a5ef330..a74eb048c9 100644
--- a/sysdeps/unix/sysv/linux/mips/ustat.c
+++ b/sysdeps/unix/sysv/linux/mips/ustat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/sysmacros.h>
diff --git a/sysdeps/unix/sysv/linux/mips/vfork.S b/sysdeps/unix/sysv/linux/mips/vfork.S
index 8c993fd0a0..ec0f6bd376 100644
--- a/sysdeps/unix/sysv/linux/mips/vfork.S
+++ b/sysdeps/unix/sysv/linux/mips/vfork.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* vfork() is just a special case of clone(). */
diff --git a/sysdeps/unix/sysv/linux/mips/xstatconv.c b/sysdeps/unix/sysv/linux/mips/xstatconv.c
index d3c5cf7e43..2c0b45b9ba 100644
--- a/sysdeps/unix/sysv/linux/mips/xstatconv.c
+++ b/sysdeps/unix/sysv/linux/mips/xstatconv.c
@@ -1,5 +1,5 @@
/* Convert between the kernel's `struct stat' format, and libc's.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/stat.h>
diff --git a/sysdeps/unix/sysv/linux/mlock2.c b/sysdeps/unix/sysv/linux/mlock2.c
index 435e26d0db..e54e5802e5 100644
--- a/sysdeps/unix/sysv/linux/mlock2.c
+++ b/sysdeps/unix/sysv/linux/mlock2.c
@@ -1,5 +1,5 @@
/* Wrapper for the mlock2 system call with fallback to mlock.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/mman.h>
#include <errno.h>
diff --git a/sysdeps/unix/sysv/linux/mmap.c b/sysdeps/unix/sysv/linux/mmap.c
index da6ab2ef42..e048331537 100644
--- a/sysdeps/unix/sysv/linux/mmap.c
+++ b/sysdeps/unix/sysv/linux/mmap.c
@@ -1,5 +1,5 @@
/* mmap - map files or devices into memory. Linux version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/unix/sysv/linux/mmap64.c b/sysdeps/unix/sysv/linux/mmap64.c
index 118624185e..104ef0eb2c 100644
--- a/sysdeps/unix/sysv/linux/mmap64.c
+++ b/sysdeps/unix/sysv/linux/mmap64.c
@@ -1,5 +1,5 @@
/* mmap - map files or devices into memory. Linux version.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
@@ -23,11 +23,18 @@
#include <sysdep.h>
#include <mmap_internal.h>
+#ifdef __NR_mmap2
/* To avoid silent truncation of offset when using mmap2, do not accept
offset larger than 1 << (page_shift + off_t bits). For archictures with
32 bits off_t and page size of 4096 it would be 1^44. */
-#define MMAP_OFF_HIGH_MASK \
+# define MMAP_OFF_HIGH_MASK \
((-(MMAP2_PAGE_UNIT << 1) << (8 * sizeof (off_t) - 1)))
+#else
+/* Some ABIs might use __NR_mmap while having sizeof (off_t) smaller than
+ sizeof (off64_t) (currently only MIPS64n32). For this case just set
+ zero the higher bits so mmap with large offset does not fail. */
+# define MMAP_OFF_HIGH_MASK 0x0
+#endif
#define MMAP_OFF_MASK (MMAP_OFF_HIGH_MASK | MMAP_OFF_LOW_MASK)
diff --git a/sysdeps/unix/sysv/linux/mmap_internal.h b/sysdeps/unix/sysv/linux/mmap_internal.h
index b0c683ae98..148c8fccb9 100644
--- a/sysdeps/unix/sysv/linux/mmap_internal.h
+++ b/sysdeps/unix/sysv/linux/mmap_internal.h
@@ -1,5 +1,5 @@
/* Common mmap definition for Linux implementation.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef MMAP_INTERNAL_LINUX_H
#define MMAP_INTERNAL_LINUX_H 1
diff --git a/sysdeps/unix/sysv/linux/mq_close.c b/sysdeps/unix/sysv/linux/mq_close.c
index c3b1f7c02e..7eacd0bb91 100644
--- a/sysdeps/unix/sysv/linux/mq_close.c
+++ b/sysdeps/unix/sysv/linux/mq_close.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <mqueue.h>
diff --git a/sysdeps/unix/sysv/linux/mq_getattr.c b/sysdeps/unix/sysv/linux/mq_getattr.c
index ee90b4cd4a..3f9976392e 100644
--- a/sysdeps/unix/sysv/linux/mq_getattr.c
+++ b/sysdeps/unix/sysv/linux/mq_getattr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <mqueue.h>
diff --git a/sysdeps/unix/sysv/linux/mq_notify.c b/sysdeps/unix/sysv/linux/mq_notify.c
index 3563e82cd4..43bc56bdb9 100644
--- a/sysdeps/unix/sysv/linux/mq_notify.c
+++ b/sysdeps/unix/sysv/linux/mq_notify.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contribute by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
diff --git a/sysdeps/unix/sysv/linux/mq_open.c b/sysdeps/unix/sysv/linux/mq_open.c
index 7d31a0349e..30409a36e7 100644
--- a/sysdeps/unix/sysv/linux/mq_open.c
+++ b/sysdeps/unix/sysv/linux/mq_open.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <mqueue.h>
diff --git a/sysdeps/unix/sysv/linux/mq_receive.c b/sysdeps/unix/sysv/linux/mq_receive.c
index 76e4002f76..aea4d37cff 100644
--- a/sysdeps/unix/sysv/linux/mq_receive.c
+++ b/sysdeps/unix/sysv/linux/mq_receive.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <mqueue.h>
diff --git a/sysdeps/unix/sysv/linux/mq_send.c b/sysdeps/unix/sysv/linux/mq_send.c
index 737c73e3e4..9281d5b0bc 100644
--- a/sysdeps/unix/sysv/linux/mq_send.c
+++ b/sysdeps/unix/sysv/linux/mq_send.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <mqueue.h>
diff --git a/sysdeps/unix/sysv/linux/mq_timedreceive.c b/sysdeps/unix/sysv/linux/mq_timedreceive.c
index 5da7eba949..9957de44f7 100644
--- a/sysdeps/unix/sysv/linux/mq_timedreceive.c
+++ b/sysdeps/unix/sysv/linux/mq_timedreceive.c
@@ -1,5 +1,5 @@
/* Receive a message from a message queue with a timeout. Linux version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <mqueue.h>
#include <sysdep-cancel.h>
diff --git a/sysdeps/unix/sysv/linux/mq_timedsend.c b/sysdeps/unix/sysv/linux/mq_timedsend.c
index bd6f628d2b..cd8f77d03f 100644
--- a/sysdeps/unix/sysv/linux/mq_timedsend.c
+++ b/sysdeps/unix/sysv/linux/mq_timedsend.c
@@ -1,5 +1,5 @@
/* Send a message to a message queue with a timeout. Linux version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <mqueue.h>
#include <sysdep-cancel.h>
diff --git a/sysdeps/unix/sysv/linux/mq_unlink.c b/sysdeps/unix/sysv/linux/mq_unlink.c
index 769b58905a..22dadd41d3 100644
--- a/sysdeps/unix/sysv/linux/mq_unlink.c
+++ b/sysdeps/unix/sysv/linux/mq_unlink.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <mqueue.h>
diff --git a/sysdeps/unix/sysv/linux/msgctl.c b/sysdeps/unix/sysv/linux/msgctl.c
index 7280cba31a..44ff0e5ac3 100644
--- a/sysdeps/unix/sysv/linux/msgctl.c
+++ b/sysdeps/unix/sysv/linux/msgctl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/msg.h>
#include <ipc_priv.h>
@@ -23,11 +23,15 @@
#include <errno.h>
#ifndef DEFAULT_VERSION
-# define DEFAULT_VERSION GLIBC_2_2
+# ifndef __ASSUME_SYSVIPC_BROKEN_MODE_T
+# define DEFAULT_VERSION GLIBC_2_2
+# else
+# define DEFAULT_VERSION GLIBC_2_31
+# endif
#endif
-int
-__new_msgctl (int msqid, int cmd, struct msqid_ds *buf)
+static int
+msgctl_syscall (int msqid, int cmd, struct msqid_ds *buf)
{
#ifdef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
return INLINE_SYSCALL_CALL (msgctl, msqid, cmd | __IPC_64, buf);
@@ -36,8 +40,54 @@ __new_msgctl (int msqid, int cmd, struct msqid_ds *buf)
buf);
#endif
}
+
+int
+__new_msgctl (int msqid, int cmd, struct msqid_ds *buf)
+{
+ /* POSIX states ipc_perm mode should have type of mode_t. */
+ _Static_assert (sizeof ((struct msqid_ds){0}.msg_perm.mode)
+ == sizeof (mode_t),
+ "sizeof (msqid_ds.msg_perm.mode) != sizeof (mode_t)");
+
+#ifdef __ASSUME_SYSVIPC_BROKEN_MODE_T
+ struct msqid_ds tmpds;
+ if (cmd == IPC_SET)
+ {
+ tmpds = *buf;
+ tmpds.msg_perm.mode *= 0x10000U;
+ buf = &tmpds;
+ }
+#endif
+
+ int ret = msgctl_syscall (msqid, cmd, buf);
+
+#ifdef __ASSUME_SYSVIPC_BROKEN_MODE_T
+ if (ret >= 0)
+ {
+ switch (cmd)
+ {
+ case IPC_STAT:
+ case MSG_STAT:
+ case MSG_STAT_ANY:
+ buf->msg_perm.mode >>= 16;
+ }
+ }
+#endif
+
+ return ret;
+}
versioned_symbol (libc, __new_msgctl, msgctl, DEFAULT_VERSION);
+#if defined __ASSUME_SYSVIPC_BROKEN_MODE_T \
+ && SHLIB_COMPAT (libc, GLIBC_2_2, GLIBC_2_31)
+int
+attribute_compat_text_section
+__msgctl_mode16 (int msqid, int cmd, struct msqid_ds *buf)
+{
+ return msgctl_syscall (msqid, cmd, buf);
+}
+compat_symbol (libc, __msgctl_mode16, msgctl, GLIBC_2_2);
+#endif
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)
struct __old_msqid_ds
@@ -61,8 +111,12 @@ int
attribute_compat_text_section
__old_msgctl (int msqid, int cmd, struct __old_msqid_ds *buf)
{
-#ifdef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
- return INLINE_SYSCALL_CALL (msgctl, msqid, cmd | __IPC_64, buf);
+#if defined __ASSUME_DIRECT_SYSVIPC_SYSCALLS \
+ && !defined __ASSUME_SYSVIPC_DEFAULT_IPC_64
+ /* For architecture that have wire-up msgctl but also have __IPC_64 to a
+ value different than default (0x0) it means the compat symbol used the
+ __NR_ipc syscall. */
+ return INLINE_SYSCALL_CALL (msgctl, msqid, cmd, buf);
#else
return INLINE_SYSCALL_CALL (ipc, IPCOP_msgctl, msqid, cmd, 0, buf);
#endif
diff --git a/sysdeps/unix/sysv/linux/msgget.c b/sysdeps/unix/sysv/linux/msgget.c
index 21cbb05d95..526211a691 100644
--- a/sysdeps/unix/sysv/linux/msgget.c
+++ b/sysdeps/unix/sysv/linux/msgget.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/msg.h>
#include <ipc_priv.h>
diff --git a/sysdeps/unix/sysv/linux/msgrcv.c b/sysdeps/unix/sysv/linux/msgrcv.c
index 6883a4cf23..1b06bd6d60 100644
--- a/sysdeps/unix/sysv/linux/msgrcv.c
+++ b/sysdeps/unix/sysv/linux/msgrcv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/msg.h>
#include <ipc_priv.h>
diff --git a/sysdeps/unix/sysv/linux/msgsnd.c b/sysdeps/unix/sysv/linux/msgsnd.c
index 897a9187d4..28d46bda25 100644
--- a/sysdeps/unix/sysv/linux/msgsnd.c
+++ b/sysdeps/unix/sysv/linux/msgsnd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, August 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/msg.h>
#include <ipc_priv.h>
diff --git a/sysdeps/unix/sysv/linux/msync.c b/sysdeps/unix/sysv/linux/msync.c
index fa443e73de..7a597b1fd9 100644
--- a/sysdeps/unix/sysv/linux/msync.c
+++ b/sysdeps/unix/sysv/linux/msync.c
@@ -1,5 +1,5 @@
/* Linux synchronize a file with a memory map implementation.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/mman.h>
#include <sysdep-cancel.h>
diff --git a/sysdeps/unix/sysv/linux/nanosleep.c b/sysdeps/unix/sysv/linux/nanosleep.c
deleted file mode 100644
index 56296046ca..0000000000
--- a/sysdeps/unix/sysv/linux/nanosleep.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Linux nanosleep syscall implementation.
- Copyright (C) 2017-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <time.h>
-#include <sysdep-cancel.h>
-#include <not-cancel.h>
-
-/* Pause execution for a number of nanoseconds. */
-int
-__nanosleep (const struct timespec *requested_time,
- struct timespec *remaining)
-{
- return SYSCALL_CANCEL (nanosleep, requested_time, remaining);
-}
-hidden_def (__nanosleep)
-weak_alias (__nanosleep, nanosleep)
diff --git a/sysdeps/unix/sysv/linux/nanosleep_nocancel.c b/sysdeps/unix/sysv/linux/nanosleep_nocancel.c
deleted file mode 100644
index 66f3efd09e..0000000000
--- a/sysdeps/unix/sysv/linux/nanosleep_nocancel.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Linux nanosleep syscall implementation -- non-cancellable.
- Copyright (C) 2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <time.h>
-#include <sysdep-cancel.h>
-#include <not-cancel.h>
-
-int
-__nanosleep_nocancel (const struct timespec *requested_time,
- struct timespec *remaining)
-{
- return INLINE_SYSCALL_CALL (nanosleep, requested_time, remaining);
-}
-hidden_def (__nanosleep_nocancel)
diff --git a/sysdeps/unix/sysv/linux/net/ethernet.h b/sysdeps/unix/sysv/linux/net/ethernet.h
index 167d6f5841..230a67ae7b 100644
--- a/sysdeps/unix/sysv/linux/net/ethernet.h
+++ b/sysdeps/unix/sysv/linux/net/ethernet.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Based on the FreeBSD version of this file. Curiously, that file
lacks a copyright in the header. */
diff --git a/sysdeps/unix/sysv/linux/net/if_arp.h b/sysdeps/unix/sysv/linux/net/if_arp.h
index ef4de77ab9..631e6081d7 100644
--- a/sysdeps/unix/sysv/linux/net/if_arp.h
+++ b/sysdeps/unix/sysv/linux/net/if_arp.h
@@ -1,5 +1,5 @@
/* Definitions for Address Resolution Protocol.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Based on the 4.4BSD and Linux version of this file. */
diff --git a/sysdeps/unix/sysv/linux/net/if_packet.h b/sysdeps/unix/sysv/linux/net/if_packet.h
index eb8599a0ca..94ac35ada6 100644
--- a/sysdeps/unix/sysv/linux/net/if_packet.h
+++ b/sysdeps/unix/sysv/linux/net/if_packet.h
@@ -1,5 +1,5 @@
/* Definitions for use with Linux SOCK_PACKET sockets.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef __IF_PACKET_H
#define __IF_PACKET_H
diff --git a/sysdeps/unix/sysv/linux/net/if_shaper.h b/sysdeps/unix/sysv/linux/net/if_shaper.h
index 97b160877a..cf30e3b123 100644
--- a/sysdeps/unix/sysv/linux/net/if_shaper.h
+++ b/sysdeps/unix/sysv/linux/net/if_shaper.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _NET_IF_SHAPER_H
#define _NET_IF_SHAPER_H 1
diff --git a/sysdeps/unix/sysv/linux/net/if_slip.h b/sysdeps/unix/sysv/linux/net/if_slip.h
index 50050c6ae2..992f86d3d0 100644
--- a/sysdeps/unix/sysv/linux/net/if_slip.h
+++ b/sysdeps/unix/sysv/linux/net/if_slip.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _NET_IF_SLIP_H
#define _NET_IF_SLIP_H 1
diff --git a/sysdeps/unix/sysv/linux/net/route.h b/sysdeps/unix/sysv/linux/net/route.h
index 3d68e577cd..57c06406df 100644
--- a/sysdeps/unix/sysv/linux/net/route.h
+++ b/sysdeps/unix/sysv/linux/net/route.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Based on the 4.4BSD and Linux version of this file. */
diff --git a/sysdeps/unix/sysv/linux/netash/ash.h b/sysdeps/unix/sysv/linux/netash/ash.h
index 2c1437a078..9cb71ca1f9 100644
--- a/sysdeps/unix/sysv/linux/netash/ash.h
+++ b/sysdeps/unix/sysv/linux/netash/ash.h
@@ -1,5 +1,5 @@
/* Definitions for use with Linux AF_ASH sockets.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _NETASH_ASH_H
#define _NETASH_ASH_H 1
diff --git a/sysdeps/unix/sysv/linux/netatalk/at.h b/sysdeps/unix/sysv/linux/netatalk/at.h
index 9dc7f31cc0..37806e988f 100644
--- a/sysdeps/unix/sysv/linux/netatalk/at.h
+++ b/sysdeps/unix/sysv/linux/netatalk/at.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _NETATALK_AT_H
#define _NETATALK_AT_H 1
diff --git a/sysdeps/unix/sysv/linux/netax25/ax25.h b/sysdeps/unix/sysv/linux/netax25/ax25.h
index 297cbd56a9..13110e1f87 100644
--- a/sysdeps/unix/sysv/linux/netax25/ax25.h
+++ b/sysdeps/unix/sysv/linux/netax25/ax25.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _NETAX25_AX25_H
#define _NETAX25_AX25_H 1
diff --git a/sysdeps/unix/sysv/linux/neteconet/ec.h b/sysdeps/unix/sysv/linux/neteconet/ec.h
index 3c7d7f351c..f1285e5301 100644
--- a/sysdeps/unix/sysv/linux/neteconet/ec.h
+++ b/sysdeps/unix/sysv/linux/neteconet/ec.h
@@ -1,5 +1,5 @@
/* Definitions for use with Linux AF_ECONET sockets.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _NETECONET_EC_H
#define _NETECONET_EC_H 1
diff --git a/sysdeps/unix/sysv/linux/netinet/if_ether.h b/sysdeps/unix/sysv/linux/netinet/if_ether.h
index d5bbf60e91..30af155443 100644
--- a/sysdeps/unix/sysv/linux/netinet/if_ether.h
+++ b/sysdeps/unix/sysv/linux/netinet/if_ether.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef __NETINET_IF_ETHER_H
diff --git a/sysdeps/unix/sysv/linux/netinet/if_fddi.h b/sysdeps/unix/sysv/linux/netinet/if_fddi.h
index 55b33663d5..55fc959dc2 100644
--- a/sysdeps/unix/sysv/linux/netinet/if_fddi.h
+++ b/sysdeps/unix/sysv/linux/netinet/if_fddi.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _NETINET_IF_FDDI_H
#define _NETINET_IF_FDDI_H 1
diff --git a/sysdeps/unix/sysv/linux/netinet/if_tr.h b/sysdeps/unix/sysv/linux/netinet/if_tr.h
index 350c40ffc3..fa01a6b39a 100644
--- a/sysdeps/unix/sysv/linux/netinet/if_tr.h
+++ b/sysdeps/unix/sysv/linux/netinet/if_tr.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _NETINET_IF_TR_H
#define _NETINET_IF_TR_H 1
diff --git a/sysdeps/unix/sysv/linux/netipx/ipx.h b/sysdeps/unix/sysv/linux/netipx/ipx.h
index bacea41718..54a1b569f4 100644
--- a/sysdeps/unix/sysv/linux/netipx/ipx.h
+++ b/sysdeps/unix/sysv/linux/netipx/ipx.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef __NETIPX_IPX_H
#define __NETIPX_IPX_H 1
diff --git a/sysdeps/unix/sysv/linux/netiucv/iucv.h b/sysdeps/unix/sysv/linux/netiucv/iucv.h
index 378039d551..2df6d9d833 100644
--- a/sysdeps/unix/sysv/linux/netiucv/iucv.h
+++ b/sysdeps/unix/sysv/linux/netiucv/iucv.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef __NETIUCV_IUCV_H
#define __NETIUCV_IUCV_H 1
diff --git a/sysdeps/unix/sysv/linux/netlink_assert_response.c b/sysdeps/unix/sysv/linux/netlink_assert_response.c
index f31ccb52ff..b1c7130763 100644
--- a/sysdeps/unix/sysv/linux/netlink_assert_response.c
+++ b/sysdeps/unix/sysv/linux/netlink_assert_response.c
@@ -1,5 +1,5 @@
/* Check recvmsg results for netlink sockets.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
@@ -72,12 +72,12 @@ __netlink_assert_response (int fd, ssize_t result)
char message[200];
if (family < 0)
__snprintf (message, sizeof (message),
- "Unexpected error %d on netlink descriptor %d",
+ "Unexpected error %d on netlink descriptor %d.\n",
error_code, fd);
else
__snprintf (message, sizeof (message),
"Unexpected error %d on netlink descriptor %d"
- " (address family %d)",
+ " (address family %d).\n",
error_code, fd, family);
__libc_fatal (message);
}
@@ -92,12 +92,12 @@ __netlink_assert_response (int fd, ssize_t result)
if (family < 0)
__snprintf (message, sizeof (message),
"Unexpected netlink response of size %zd"
- " on descriptor %d",
+ " on descriptor %d\n",
result, fd);
else
__snprintf (message, sizeof (message),
"Unexpected netlink response of size %zd"
- " on descriptor %d (address family %d)",
+ " on descriptor %d (address family %d)\n",
result, fd, family);
__libc_fatal (message);
}
diff --git a/sysdeps/unix/sysv/linux/netlinkaccess.h b/sysdeps/unix/sysv/linux/netlinkaccess.h
index dfb074f4f2..799d8c4795 100644
--- a/sysdeps/unix/sysv/linux/netlinkaccess.h
+++ b/sysdeps/unix/sysv/linux/netlinkaccess.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _NETLINKACCESS_H
#define _NETLINKACCESS_H 1
diff --git a/sysdeps/unix/sysv/linux/netpacket/packet.h b/sysdeps/unix/sysv/linux/netpacket/packet.h
index 8deb50b799..d78f798cd9 100644
--- a/sysdeps/unix/sysv/linux/netpacket/packet.h
+++ b/sysdeps/unix/sysv/linux/netpacket/packet.h
@@ -1,5 +1,5 @@
/* Definitions for use with Linux AF_PACKET sockets.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef __NETPACKET_PACKET_H
#define __NETPACKET_PACKET_H 1
@@ -63,6 +63,7 @@ struct sockaddr_ll
#define PACKET_QDISC_BYPASS 20
#define PACKET_ROLLOVER_STATS 21
#define PACKET_FANOUT_DATA 22
+#define PACKET_IGNORE_OUTGOING 23
struct packet_mreq
{
diff --git a/sysdeps/unix/sysv/linux/netrom/netrom.h b/sysdeps/unix/sysv/linux/netrom/netrom.h
index 50df246a5c..a895295fbc 100644
--- a/sysdeps/unix/sysv/linux/netrom/netrom.h
+++ b/sysdeps/unix/sysv/linux/netrom/netrom.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _NETROM_NETROM_H
#define _NETROM_NETROM_H 1
diff --git a/sysdeps/unix/sysv/linux/netrose/rose.h b/sysdeps/unix/sysv/linux/netrose/rose.h
index 3bfd661a39..810db577f6 100644
--- a/sysdeps/unix/sysv/linux/netrose/rose.h
+++ b/sysdeps/unix/sysv/linux/netrose/rose.h
@@ -1,5 +1,5 @@
/* Definitions for Rose packet radio address family.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* What follows is copied from the 2.1.93 <linux/rose.h>. */
diff --git a/sysdeps/unix/sysv/linux/nios2/Makefile b/sysdeps/unix/sysv/linux/nios2/Makefile
index 5688a16c38..9342e4521a 100644
--- a/sysdeps/unix/sysv/linux/nios2/Makefile
+++ b/sysdeps/unix/sysv/linux/nios2/Makefile
@@ -7,3 +7,12 @@ ifeq ($(subdir),misc)
sysdep_headers += sys/cachectl.h
sysdep_routines += cacheflush
endif
+
+ifeq ($(subdir),csu)
+# Work around an incorrect assumption that an object of variably
+# modified type, with a small fixed size but a large variable-sized
+# part (the static_slotinfo variable in libc-tls.c) is allocated in
+# the small data section, not the data section where it belongs based
+# on its size. See GCC PR 92499.
+CFLAGS-libc-tls.c += -mgpopt=none
+endif
diff --git a/sysdeps/unix/sysv/linux/nios2/atomic-machine.h b/sysdeps/unix/sysv/linux/nios2/atomic-machine.h
index 32e17fb970..845bc9b929 100644
--- a/sysdeps/unix/sysv/linux/nios2/atomic-machine.h
+++ b/sysdeps/unix/sysv/linux/nios2/atomic-machine.h
@@ -1,5 +1,5 @@
/* Low-level functions for atomic operations. Nios II version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _NIOS2_ATOMIC_MACHINE_H
#define _NIOS2_ATOMIC_MACHINE_H 1
diff --git a/sysdeps/unix/sysv/linux/nios2/bits/mman.h b/sysdeps/unix/sysv/linux/nios2/bits/mman.h
deleted file mode 100644
index 50f92b4a86..0000000000
--- a/sysdeps/unix/sysv/linux/nios2/bits/mman.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/* Definitions for POSIX memory map interface. Linux/Nios II version.
-
- Copyright (C) 1997-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_MMAN_H
-# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
-#endif
-
-/* The following definitions basically come from the kernel headers.
- But the kernel header is not namespace clean. */
-
-/* These are Linux-specific. */
-#ifdef __USE_MISC
-# define MAP_GROWSDOWN 0x00100 /* Stack-like segment. */
-# define MAP_DENYWRITE 0x00800 /* ETXTBSY */
-# define MAP_EXECUTABLE 0x01000 /* Mark it as an executable. */
-# define MAP_LOCKED 0x02000 /* Lock the mapping. */
-# define MAP_NORESERVE 0x04000 /* Don't check for reservations. */
-# define MAP_POPULATE 0x08000 /* Populate (prefault) pagetables. */
-# define MAP_NONBLOCK 0x10000 /* Do not block on IO. */
-# define MAP_STACK 0x20000 /* Allocation is for a stack. */
-# define MAP_HUGETLB 0x40000 /* Create huge page mapping. */
-# define MAP_SYNC 0x80000 /* Perform synchronous page
- faults for the mapping. */
-# define MAP_FIXED_NOREPLACE 0x100000 /* MAP_FIXED but do not unmap
- underlying mapping. */
-#endif
-
-/* Include generic Linux declarations. */
-#include <bits/mman-linux.h>
diff --git a/sysdeps/unix/sysv/linux/nios2/bits/procfs.h b/sysdeps/unix/sysv/linux/nios2/bits/procfs.h
new file mode 100644
index 0000000000..9f785f1070
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/nios2/bits/procfs.h
@@ -0,0 +1,34 @@
+/* Types for registers for sys/procfs.h. Nios II version.
+ Copyright (C) 1996-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PROCFS_H
+# error "Never include <bits/procfs.h> directly; use <sys/procfs.h> instead."
+#endif
+
+/* Type for a general-purpose register. */
+typedef unsigned long elf_greg_t;
+
+/* And the whole bunch of them. We could have used `struct
+ user_regs' directly in the typedef, but tradition says that
+ the register set is an array, which does have some peculiar
+ semantics, so leave it that way. */
+#define ELF_NGREG (sizeof (struct user_regs) / sizeof (elf_greg_t))
+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
+
+/* Register set for the floating-point registers. */
+typedef struct user_fpregs elf_fpregset_t;
diff --git a/sysdeps/unix/sysv/linux/nios2/cacheflush.c b/sysdeps/unix/sysv/linux/nios2/cacheflush.c
index 31a0bcc7e5..9779fd012a 100644
--- a/sysdeps/unix/sysv/linux/nios2/cacheflush.c
+++ b/sysdeps/unix/sysv/linux/nios2/cacheflush.c
@@ -1,5 +1,5 @@
/* cacheflush system call for Nios II Linux.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <stddef.h>
diff --git a/sysdeps/unix/sysv/linux/nios2/clone.S b/sysdeps/unix/sysv/linux/nios2/clone.S
index fd3be46645..2193a5c387 100644
--- a/sysdeps/unix/sysv/linux/nios2/clone.S
+++ b/sysdeps/unix/sysv/linux/nios2/clone.S
@@ -1,5 +1,5 @@
/* clone() implementation for Nios II.
- Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ Copyright (C) 2008-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andrew Jenner <andrew@codesourcery.com>, 2008.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* clone() is even more special than fork() as it mucks with stacks
and invokes a function in the right context after its all over. */
diff --git a/sysdeps/unix/sysv/linux/nios2/getcontext.S b/sysdeps/unix/sysv/linux/nios2/getcontext.S
index 8b5490cf60..58ca2938ac 100644
--- a/sysdeps/unix/sysv/linux/nios2/getcontext.S
+++ b/sysdeps/unix/sysv/linux/nios2/getcontext.S
@@ -1,5 +1,5 @@
/* Save current context.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "ucontext_i.h"
diff --git a/sysdeps/unix/sysv/linux/nios2/ipc_priv.h b/sysdeps/unix/sysv/linux/nios2/ipc_priv.h
deleted file mode 100644
index 37c081c1b1..0000000000
--- a/sysdeps/unix/sysv/linux/nios2/ipc_priv.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Old SysV permission definition for Linux. Nios II version.
- Copyright (C) 2017-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sys/ipc.h> /* For __key_t */
-
-#define __IPC_64 0x0
diff --git a/sysdeps/unix/sysv/linux/nios2/kernel-features.h b/sysdeps/unix/sysv/linux/nios2/kernel-features.h
new file mode 100644
index 0000000000..c95e7051d9
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/nios2/kernel-features.h
@@ -0,0 +1,22 @@
+/* Set flags signalling availability of kernel features based on given
+ kernel version number. NIOS2 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include_next <kernel-features.h>
+
+#undef __ASSUME_SYSVIPC_DEFAULT_IPC_64
diff --git a/sysdeps/unix/sysv/linux/nios2/kernel_rt_sigframe.h b/sysdeps/unix/sysv/linux/nios2/kernel_rt_sigframe.h
index 917088c52f..b8653e1884 100644
--- a/sysdeps/unix/sysv/linux/nios2/kernel_rt_sigframe.h
+++ b/sysdeps/unix/sysv/linux/nios2/kernel_rt_sigframe.h
@@ -1,5 +1,5 @@
/* Linux kernel struct rt_sigframe declaration for Nios II.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This structure must have the same shape as the Linux kernel
equivalent. */
diff --git a/sysdeps/unix/sysv/linux/nios2/kernel_sigaction.h b/sysdeps/unix/sysv/linux/nios2/kernel_sigaction.h
index 4ada322104..89f9bcedfd 100644
--- a/sysdeps/unix/sysv/linux/nios2/kernel_sigaction.h
+++ b/sysdeps/unix/sysv/linux/nios2/kernel_sigaction.h
@@ -1,8 +1,9 @@
/* NIOS2 uses the generic Linux UAPI but defines SA_RESTORER. */
#define SA_RESTORER 0x04000000
-#include <sysdeps/unix/sysv/linux/kernel_sigaction.h>
#define SET_SA_RESTORER(kact, act) \
(kact)->sa_restorer = (act)->sa_restorer
#define RESET_SA_RESTORER(act, kact) \
(act)->sa_restorer = (kact)->sa_restorer
+
+#include <sysdeps/unix/sysv/linux/kernel_sigaction.h>
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index aab1c44e46..7fec0c9670 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -2171,3 +2171,10 @@ GLIBC_2.28 thrd_current F
GLIBC_2.28 thrd_equal F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
+GLIBC_2.29 getcpu F
+GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
+GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
+GLIBC_2.30 getdents64 F
+GLIBC_2.30 gettid F
+GLIBC_2.30 tgkill F
+GLIBC_2.30 twalk_r F
diff --git a/sysdeps/unix/sysv/linux/nios2/libm.abilist b/sysdeps/unix/sysv/linux/nios2/libm.abilist
index 2ed649a655..64ac932c6a 100644
--- a/sysdeps/unix/sysv/linux/nios2/libm.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libm.abilist
@@ -765,3 +765,20 @@ GLIBC_2.28 fmul F
GLIBC_2.28 fmull F
GLIBC_2.28 fsub F
GLIBC_2.28 fsubl F
+GLIBC_2.29 exp F
+GLIBC_2.29 exp2 F
+GLIBC_2.29 log F
+GLIBC_2.29 log2 F
+GLIBC_2.29 pow F
+GLIBC_2.31 totalorder F
+GLIBC_2.31 totalorderf F
+GLIBC_2.31 totalorderf32 F
+GLIBC_2.31 totalorderf32x F
+GLIBC_2.31 totalorderf64 F
+GLIBC_2.31 totalorderl F
+GLIBC_2.31 totalordermag F
+GLIBC_2.31 totalordermagf F
+GLIBC_2.31 totalordermagf32 F
+GLIBC_2.31 totalordermagf32x F
+GLIBC_2.31 totalordermagf64 F
+GLIBC_2.31 totalordermagl F
diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
index 78cac2ae27..03a462ef91 100644
--- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
@@ -11,7 +11,6 @@ GLIBC_2.21 __libc_allocate_rtsig F
GLIBC_2.21 __libc_current_sigrtmax F
GLIBC_2.21 __libc_current_sigrtmin F
GLIBC_2.21 __lseek F
-GLIBC_2.21 __nanosleep F
GLIBC_2.21 __open F
GLIBC_2.21 __open64 F
GLIBC_2.21 __pread64 F
@@ -64,29 +63,20 @@ GLIBC_2.21 longjmp F
GLIBC_2.21 lseek F
GLIBC_2.21 lseek64 F
GLIBC_2.21 msync F
-GLIBC_2.21 nanosleep F
GLIBC_2.21 open F
GLIBC_2.21 open64 F
GLIBC_2.21 pause F
GLIBC_2.21 pread F
GLIBC_2.21 pread64 F
-GLIBC_2.21 pthread_attr_destroy F
GLIBC_2.21 pthread_attr_getaffinity_np F
-GLIBC_2.21 pthread_attr_getdetachstate F
GLIBC_2.21 pthread_attr_getguardsize F
-GLIBC_2.21 pthread_attr_getinheritsched F
-GLIBC_2.21 pthread_attr_getschedparam F
GLIBC_2.21 pthread_attr_getschedpolicy F
GLIBC_2.21 pthread_attr_getscope F
GLIBC_2.21 pthread_attr_getstack F
GLIBC_2.21 pthread_attr_getstackaddr F
GLIBC_2.21 pthread_attr_getstacksize F
-GLIBC_2.21 pthread_attr_init F
GLIBC_2.21 pthread_attr_setaffinity_np F
-GLIBC_2.21 pthread_attr_setdetachstate F
GLIBC_2.21 pthread_attr_setguardsize F
-GLIBC_2.21 pthread_attr_setinheritsched F
-GLIBC_2.21 pthread_attr_setschedparam F
GLIBC_2.21 pthread_attr_setschedpolicy F
GLIBC_2.21 pthread_attr_setscope F
GLIBC_2.21 pthread_attr_setstack F
@@ -114,7 +104,6 @@ GLIBC_2.21 pthread_condattr_setclock F
GLIBC_2.21 pthread_condattr_setpshared F
GLIBC_2.21 pthread_create F
GLIBC_2.21 pthread_detach F
-GLIBC_2.21 pthread_equal F
GLIBC_2.21 pthread_exit F
GLIBC_2.21 pthread_getaffinity_np F
GLIBC_2.21 pthread_getattr_default_np F
@@ -171,7 +160,6 @@ GLIBC_2.21 pthread_rwlockattr_getpshared F
GLIBC_2.21 pthread_rwlockattr_init F
GLIBC_2.21 pthread_rwlockattr_setkind_np F
GLIBC_2.21 pthread_rwlockattr_setpshared F
-GLIBC_2.21 pthread_self F
GLIBC_2.21 pthread_setaffinity_np F
GLIBC_2.21 pthread_setattr_default_np F
GLIBC_2.21 pthread_setcancelstate F
@@ -241,3 +229,9 @@ GLIBC_2.28 tss_create F
GLIBC_2.28 tss_delete F
GLIBC_2.28 tss_get F
GLIBC_2.28 tss_set F
+GLIBC_2.30 pthread_cond_clockwait F
+GLIBC_2.30 pthread_mutex_clocklock F
+GLIBC_2.30 pthread_rwlock_clockrdlock F
+GLIBC_2.30 pthread_rwlock_clockwrlock F
+GLIBC_2.30 sem_clockwait F
+GLIBC_2.31 pthread_clockjoin_np F
diff --git a/sysdeps/unix/sysv/linux/nios2/localplt.data b/sysdeps/unix/sysv/linux/nios2/localplt.data
index 4430a5891e..3805ed56b9 100644
--- a/sysdeps/unix/sysv/linux/nios2/localplt.data
+++ b/sysdeps/unix/sysv/linux/nios2/localplt.data
@@ -26,6 +26,7 @@ libc.so: __divsf3
libc.so: __nedf2
libc.so: __eqdf2
libc.so: __extendsfdf2
+libc.so: __floatundidf ?
libm.so: matherr
# The main malloc is interposed into the dynamic linker, for
# allocations after the initial link (when dlopen is used).
diff --git a/sysdeps/unix/sysv/linux/nios2/makecontext.c b/sysdeps/unix/sysv/linux/nios2/makecontext.c
index e59fbafc97..3a6604946f 100644
--- a/sysdeps/unix/sysv/linux/nios2/makecontext.c
+++ b/sysdeps/unix/sysv/linux/nios2/makecontext.c
@@ -1,5 +1,5 @@
/* Create new context.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <stdarg.h>
diff --git a/sysdeps/unix/sysv/linux/nios2/profil-counter.h b/sysdeps/unix/sysv/linux/nios2/profil-counter.h
deleted file mode 100644
index 8a6a0bcf3d..0000000000
--- a/sysdeps/unix/sysv/linux/nios2/profil-counter.h
+++ /dev/null
@@ -1,2 +0,0 @@
-/* We can use the ix86 version. */
-#include <sysdeps/unix/sysv/linux/i386/profil-counter.h>
diff --git a/sysdeps/unix/sysv/linux/nios2/pt-vfork.S b/sysdeps/unix/sysv/linux/nios2/pt-vfork.S
deleted file mode 100644
index 147427a42d..0000000000
--- a/sysdeps/unix/sysv/linux/nios2/pt-vfork.S
+++ /dev/null
@@ -1 +0,0 @@
-# Nios2 does not require a stub for vfork in libpthread.
diff --git a/sysdeps/unix/sysv/linux/nios2/setcontext.S b/sysdeps/unix/sysv/linux/nios2/setcontext.S
index 5e82bc99bb..f2dd3e0211 100644
--- a/sysdeps/unix/sysv/linux/nios2/setcontext.S
+++ b/sysdeps/unix/sysv/linux/nios2/setcontext.S
@@ -1,5 +1,5 @@
/* Set current context.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "ucontext_i.h"
diff --git a/sysdeps/unix/sysv/linux/nios2/sigcontextinfo.h b/sysdeps/unix/sysv/linux/nios2/sigcontextinfo.h
index 57b9b50e96..7f8bd6ecc4 100644
--- a/sysdeps/unix/sysv/linux/nios2/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/nios2/sigcontextinfo.h
@@ -1,5 +1,5 @@
/* Nios II definitions for signal handling calling conventions.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,22 +14,15 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#include <sys/ucontext.h>
-#include "kernel-features.h"
+#ifndef _SIGCONTEXTINFO_H
+#define _SIGCONTEXTINFO_H
-#define SIGCONTEXT siginfo_t *_si, ucontext_t *
-#define GET_PC(ctx) ((void *) (ctx)->uc_mcontext.regs[27])
+static inline uintptr_t
+sigcontext_get_pc (const ucontext_t *ctx)
+{
+ return ctx->uc_mcontext.regs[27];
+}
-/* There is no reliable way to get the sigcontext unless we use a
- three-argument signal handler. */
-#define __sigaction(sig, act, oact) ({ \
- (act)->sa_flags |= SA_SIGINFO; \
- (__sigaction) (sig, act, oact); \
-})
-
-#define sigaction(sig, act, oact) ({ \
- (act)->sa_flags |= SA_SIGINFO; \
- (sigaction) (sig, act, oact); \
-})
+#endif
diff --git a/sysdeps/unix/sysv/linux/nios2/swapcontext.S b/sysdeps/unix/sysv/linux/nios2/swapcontext.S
index 1cd6576de1..118764219c 100644
--- a/sysdeps/unix/sysv/linux/nios2/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/nios2/swapcontext.S
@@ -1,5 +1,5 @@
/* Modify saved context.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "ucontext_i.h"
diff --git a/sysdeps/unix/sysv/linux/nios2/sys/cachectl.h b/sysdeps/unix/sysv/linux/nios2/sys/cachectl.h
index 1bc9eeffba..80dead771f 100644
--- a/sysdeps/unix/sysv/linux/nios2/sys/cachectl.h
+++ b/sysdeps/unix/sysv/linux/nios2/sys/cachectl.h
@@ -1,5 +1,5 @@
/* cacheflush - flush contents of instruction and/or data cache.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_CACHECTL_H
#define _SYS_CACHECTL_H 1
diff --git a/sysdeps/unix/sysv/linux/nios2/sys/procfs.h b/sysdeps/unix/sysv/linux/nios2/sys/procfs.h
deleted file mode 100644
index a61fe96c6b..0000000000
--- a/sysdeps/unix/sysv/linux/nios2/sys/procfs.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/* Core image file related definitions, Nios II version.
- Copyright (C) 1996-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_PROCFS_H
-#define _SYS_PROCFS_H 1
-
-/* This is somewhat modelled after the file of the same name on SVR4
- systems. It provides a definition of the core file format for ELF
- used on Linux. It doesn't have anything to do with the /proc file
- system, even though Linux has one.
-
- Anyway, the whole purpose of this file is for GDB and GDB only.
- Don't read too much into it. Don't use it for anything other than
- GDB unless you know what you are doing. */
-
-#include <features.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#include <sys/user.h>
-
-__BEGIN_DECLS
-
-/* Type for a general-purpose register. */
-typedef unsigned long elf_greg_t;
-
-/* And the whole bunch of them. We could have used `struct
- user_regs' directly in the typedef, but tradition says that
- the register set is an array, which does have some peculiar
- semantics, so leave it that way. */
-#define ELF_NGREG (sizeof (struct user_regs) / sizeof(elf_greg_t))
-typedef elf_greg_t elf_gregset_t[ELF_NGREG];
-
-/* Register set for the floating-point registers. */
-typedef struct user_fpregs elf_fpregset_t;
-
-/* Signal info. */
-struct elf_siginfo
- {
- int si_signo; /* Signal number. */
- int si_code; /* Extra code. */
- int si_errno; /* Errno. */
- };
-
-/* Definitions to generate Intel SVR4-like core files. These mostly
- have the same names as the SVR4 types with "elf_" tacked on the
- front to prevent clashes with Linux definitions, and the typedef
- forms have been avoided. This is mostly like the SVR4 structure,
- but more Linuxy, with things that Linux does not support and which
- GDB doesn't really use excluded. */
-
-struct elf_prstatus
- {
- struct elf_siginfo pr_info; /* Info associated with signal. */
- short int pr_cursig; /* Current signal. */
- unsigned long int pr_sigpend; /* Set of pending signals. */
- unsigned long int pr_sighold; /* Set of held signals. */
- __pid_t pr_pid;
- __pid_t pr_ppid;
- __pid_t pr_pgrp;
- __pid_t pr_sid;
- struct timeval pr_utime; /* User time. */
- struct timeval pr_stime; /* System time. */
- struct timeval pr_cutime; /* Cumulative user time. */
- struct timeval pr_cstime; /* Cumulative system time. */
- elf_gregset_t pr_reg; /* GP registers. */
- int pr_fpvalid; /* True if math copro being used. */
- };
-
-
-#define ELF_PRARGSZ (80) /* Number of chars for args. */
-
-struct elf_prpsinfo
- {
- char pr_state; /* Numeric process state. */
- char pr_sname; /* Char for pr_state. */
- char pr_zomb; /* Zombie. */
- char pr_nice; /* Nice val. */
- unsigned long int pr_flag; /* Flags. */
- unsigned short int pr_uid;
- unsigned short int pr_gid;
- int pr_pid, pr_ppid, pr_pgrp, pr_sid;
- /* Lots missing */
- char pr_fname[16]; /* Filename of executable. */
- char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
- };
-
-/* The rest of this file provides the types for emulation of the
- Solaris <proc_service.h> interfaces that should be implemented by
- users of libthread_db. */
-
-/* Addresses. */
-typedef void *psaddr_t;
-
-/* Register sets. Linux has different names. */
-typedef elf_gregset_t prgregset_t;
-typedef elf_fpregset_t prfpregset_t;
-
-/* We don't have any differences between processes and threads,
- therefore have only one PID type. */
-typedef __pid_t lwpid_t;
-
-/* Process status and info. In the end we do provide typedefs for them. */
-typedef struct elf_prstatus prstatus_t;
-typedef struct elf_prpsinfo prpsinfo_t;
-
-__END_DECLS
-
-#endif /* sys/procfs.h */
diff --git a/sysdeps/unix/sysv/linux/nios2/sys/ucontext.h b/sysdeps/unix/sysv/linux/nios2/sys/ucontext.h
index 188a004ac2..c46395c0d5 100644
--- a/sysdeps/unix/sysv/linux/nios2/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/nios2/sys/ucontext.h
@@ -1,5 +1,5 @@
/* ucontext_t definition, Nios II version.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* System V/Nios II ABI compliant context switching support. */
diff --git a/sysdeps/unix/sysv/linux/nios2/sys/user.h b/sysdeps/unix/sysv/linux/nios2/sys/user.h
index cddb960919..1677f57b5c 100644
--- a/sysdeps/unix/sysv/linux/nios2/sys/user.h
+++ b/sysdeps/unix/sysv/linux/nios2/sys/user.h
@@ -1,5 +1,5 @@
/* ptrace register data format definitions.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_USER_H
#define _SYS_USER_H 1
diff --git a/sysdeps/unix/sysv/linux/nios2/syscall.S b/sysdeps/unix/sysv/linux/nios2/syscall.S
index a0298fc47d..0a89e326c2 100644
--- a/sysdeps/unix/sysv/linux/nios2/syscall.S
+++ b/sysdeps/unix/sysv/linux/nios2/syscall.S
@@ -1,5 +1,5 @@
/* syscall - indirect system call.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/nios2/sysdep.S b/sysdeps/unix/sysv/linux/nios2/sysdep.S
index a481810192..74c0e40d59 100644
--- a/sysdeps/unix/sysv/linux/nios2/sysdep.S
+++ b/sysdeps/unix/sysv/linux/nios2/sysdep.S
@@ -1,5 +1,5 @@
/* Static library error handling code fragment for Nios II.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/nios2/sysdep.h b/sysdeps/unix/sysv/linux/nios2/sysdep.h
index 2e18809603..58c119dd06 100644
--- a/sysdeps/unix/sysv/linux/nios2/sysdep.h
+++ b/sysdeps/unix/sysv/linux/nios2/sysdep.h
@@ -1,5 +1,5 @@
/* Assembler macros for Nios II.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LINUX_NIOS2_SYSDEP_H
#define _LINUX_NIOS2_SYSDEP_H 1
diff --git a/sysdeps/unix/sysv/linux/nios2/vfork.S b/sysdeps/unix/sysv/linux/nios2/vfork.S
index 8aa99e6e26..2a1622d182 100644
--- a/sysdeps/unix/sysv/linux/nios2/vfork.S
+++ b/sysdeps/unix/sysv/linux/nios2/vfork.S
@@ -1,5 +1,5 @@
/* vfork for Nios II Linux.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <tcb-offsets.h>
diff --git a/sysdeps/unix/sysv/linux/not-cancel.h b/sysdeps/unix/sysv/linux/not-cancel.h
index 09de92dee9..192a0a5195 100644
--- a/sysdeps/unix/sysv/linux/not-cancel.h
+++ b/sysdeps/unix/sysv/linux/not-cancel.h
@@ -1,5 +1,5 @@
/* Uncancelable versions of cancelable interfaces. Linux/NPTL version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef NOT_CANCEL_H
# define NOT_CANCEL_H
@@ -43,6 +43,9 @@ __typeof (openat64) __openat64_nocancel;
/* Non cancellable read syscall. */
__typeof (__read) __read_nocancel;
+/* Non cancellable pread syscall (LFS version). */
+__typeof (__pread64) __pread64_nocancel;
+
/* Uncancelable write. */
__typeof (__write) __write_nocancel;
@@ -69,12 +72,6 @@ __writev_nocancel_nostatus (int fd, const struct iovec *iov, int iovcnt)
/* Uncancelable waitpid. */
__typeof (waitpid) __waitpid_nocancel;
-/* Uncancelable pause. */
-__typeof (pause) __pause_nocancel;
-
-/* Uncancelable nanosleep. */
-__typeof (__nanosleep) __nanosleep_nocancel;
-
/* Uncancelable fcntl. */
__typeof (__fcntl) __fcntl64_nocancel;
@@ -84,11 +81,10 @@ hidden_proto (__open64_nocancel)
hidden_proto (__openat_nocancel)
hidden_proto (__openat64_nocancel)
hidden_proto (__read_nocancel)
+hidden_proto (__pread64_nocancel)
hidden_proto (__write_nocancel)
hidden_proto (__close_nocancel)
hidden_proto (__waitpid_nocancel)
-hidden_proto (__pause_nocancel)
-hidden_proto (__nanosleep_nocancel)
hidden_proto (__fcntl64_nocancel)
#endif
diff --git a/sysdeps/unix/sysv/linux/not-errno.h b/sysdeps/unix/sysv/linux/not-errno.h
index 106ba5c72e..f477766fc7 100644
--- a/sysdeps/unix/sysv/linux/not-errno.h
+++ b/sysdeps/unix/sysv/linux/not-errno.h
@@ -1,5 +1,5 @@
/* Syscall wrapper that do not set errno. Linux version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <fcntl.h>
/* This function is used on maybe_enable_malloc_check (elf/dl-tunables.c)
and to avoid having to build/use multiple versions if stack protection
@@ -33,3 +36,14 @@ __access_noerrno (const char *pathname, int mode)
return INTERNAL_SYSCALL_ERRNO (res, err);
return 0;
}
+
+static inline int
+__kill_noerrno (pid_t pid, int sig)
+{
+ int res;
+ INTERNAL_SYSCALL_DECL (err);
+ res = INTERNAL_SYSCALL_CALL (kill, err, pid, sig);
+ if (INTERNAL_SYSCALL_ERROR_P (res, err))
+ return INTERNAL_SYSCALL_ERRNO (res, err);
+ return 0;
+}
diff --git a/sysdeps/unix/sysv/linux/nscd_setup_thread.c b/sysdeps/unix/sysv/linux/nscd_setup_thread.c
index 645850604c..2c5d7bfd71 100644
--- a/sysdeps/unix/sysv/linux/nscd_setup_thread.c
+++ b/sysdeps/unix/sysv/linux/nscd_setup_thread.c
@@ -1,5 +1,5 @@
/* Setup of nscd worker threads. Linux verison.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2004.
@@ -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 <http://www.gnu.org/licenses/>. */
+ along with this program; if not, see <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <unistd.h>
diff --git a/sysdeps/unix/sysv/linux/ntp_gettime.c b/sysdeps/unix/sysv/linux/ntp_gettime.c
index 18650da94c..346f251ada 100644
--- a/sysdeps/unix/sysv/linux/ntp_gettime.c
+++ b/sysdeps/unix/sysv/linux/ntp_gettime.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define ntp_gettime ntp_gettime_redirect
diff --git a/sysdeps/unix/sysv/linux/ntp_gettimex.c b/sysdeps/unix/sysv/linux/ntp_gettimex.c
index e491549765..d11f1a8017 100644
--- a/sysdeps/unix/sysv/linux/ntp_gettimex.c
+++ b/sysdeps/unix/sysv/linux/ntp_gettimex.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/timex.h>
diff --git a/sysdeps/unix/sysv/linux/olddirent.h b/sysdeps/unix/sysv/linux/olddirent.h
index 1ed59c18ed..08d29f824d 100644
--- a/sysdeps/unix/sysv/linux/olddirent.h
+++ b/sysdeps/unix/sysv/linux/olddirent.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef __OLD_DIRENT_H
#define __OLD_DIRENT_H 1
diff --git a/sysdeps/unix/sysv/linux/open.c b/sysdeps/unix/sysv/linux/open.c
index 7f12292b87..a65aec457d 100644
--- a/sysdeps/unix/sysv/linux/open.c
+++ b/sysdeps/unix/sysv/linux/open.c
@@ -1,5 +1,5 @@
/* Linux open syscall implementation, non-LFS.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Chris Metcalf <cmetcalf@tilera.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <sys/stat.h>
diff --git a/sysdeps/unix/sysv/linux/open64.c b/sysdeps/unix/sysv/linux/open64.c
index 55ef658800..d6cefb09d1 100644
--- a/sysdeps/unix/sysv/linux/open64.c
+++ b/sysdeps/unix/sysv/linux/open64.c
@@ -1,5 +1,5 @@
/* Linux open syscall implementation, LFS.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <sys/stat.h>
diff --git a/sysdeps/unix/sysv/linux/open64_nocancel.c b/sysdeps/unix/sysv/linux/open64_nocancel.c
index 5d039eada6..2163ecfc09 100644
--- a/sysdeps/unix/sysv/linux/open64_nocancel.c
+++ b/sysdeps/unix/sysv/linux/open64_nocancel.c
@@ -1,5 +1,5 @@
/* Linux open syscall implementation, LFS, non-cancellable.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <sys/stat.h>
diff --git a/sysdeps/unix/sysv/linux/open_by_handle_at.c b/sysdeps/unix/sysv/linux/open_by_handle_at.c
index 906d60e770..0888157a33 100644
--- a/sysdeps/unix/sysv/linux/open_by_handle_at.c
+++ b/sysdeps/unix/sysv/linux/open_by_handle_at.c
@@ -1,5 +1,5 @@
/* Obtain handle for an open file via a handle. Linux implementation.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fcntl.h>
#include <sys/types.h>
diff --git a/sysdeps/unix/sysv/linux/open_nocancel.c b/sysdeps/unix/sysv/linux/open_nocancel.c
index 2ee3e527cb..9926218cca 100644
--- a/sysdeps/unix/sysv/linux/open_nocancel.c
+++ b/sysdeps/unix/sysv/linux/open_nocancel.c
@@ -1,5 +1,5 @@
/* Linux open syscall implementation, non-LFS, non-cancellable.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <sys/stat.h>
diff --git a/sysdeps/unix/sysv/linux/openat.c b/sysdeps/unix/sysv/linux/openat.c
index d0ad242271..a4450445da 100644
--- a/sysdeps/unix/sysv/linux/openat.c
+++ b/sysdeps/unix/sysv/linux/openat.c
@@ -1,5 +1,5 @@
/* Linux openat syscall implementation, non-LFS.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fcntl.h>
#include <stdarg.h>
diff --git a/sysdeps/unix/sysv/linux/openat64.c b/sysdeps/unix/sysv/linux/openat64.c
index 536f4f5aff..dbd893ea9d 100644
--- a/sysdeps/unix/sysv/linux/openat64.c
+++ b/sysdeps/unix/sysv/linux/openat64.c
@@ -1,5 +1,5 @@
/* Linux openat syscall implementation, LFS.
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fcntl.h>
#include <stdarg.h>
diff --git a/sysdeps/unix/sysv/linux/openat64_nocancel.c b/sysdeps/unix/sysv/linux/openat64_nocancel.c
index f3facc3b72..cd077f28cd 100644
--- a/sysdeps/unix/sysv/linux/openat64_nocancel.c
+++ b/sysdeps/unix/sysv/linux/openat64_nocancel.c
@@ -1,5 +1,5 @@
/* Linux openat syscall implementation, LFS, non-cancellable.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fcntl.h>
#include <stdarg.h>
diff --git a/sysdeps/unix/sysv/linux/openat_nocancel.c b/sysdeps/unix/sysv/linux/openat_nocancel.c
index ac98238cda..25db90ce8e 100644
--- a/sysdeps/unix/sysv/linux/openat_nocancel.c
+++ b/sysdeps/unix/sysv/linux/openat_nocancel.c
@@ -1,5 +1,5 @@
/* Linux openat syscall implementation, non-LFS, non-cancellable.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fcntl.h>
#include <stdarg.h>
diff --git a/sysdeps/unix/sysv/linux/opensock.c b/sysdeps/unix/sysv/linux/opensock.c
index fd9445bc3b..f84c39eccd 100644
--- a/sysdeps/unix/sysv/linux/opensock.c
+++ b/sysdeps/unix/sysv/linux/opensock.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
diff --git a/sysdeps/unix/sysv/linux/pathconf.c b/sysdeps/unix/sysv/linux/pathconf.c
index 59a50cea43..5bb5a06caa 100644
--- a/sysdeps/unix/sysv/linux/pathconf.c
+++ b/sysdeps/unix/sysv/linux/pathconf.c
@@ -1,5 +1,5 @@
/* Get file-specific information about a file. Linux version.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <mntent.h>
diff --git a/sysdeps/unix/sysv/linux/pathconf.h b/sysdeps/unix/sysv/linux/pathconf.h
index 4c589a79df..46ada53808 100644
--- a/sysdeps/unix/sysv/linux/pathconf.h
+++ b/sysdeps/unix/sysv/linux/pathconf.h
@@ -1,5 +1,5 @@
/* Common parts of Linux implementation of pathconf and fpathconf.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/unix/sysv/linux/pause.c b/sysdeps/unix/sysv/linux/pause.c
index 7b90365b98..c2b9f4fb66 100644
--- a/sysdeps/unix/sysv/linux/pause.c
+++ b/sysdeps/unix/sysv/linux/pause.c
@@ -1,5 +1,5 @@
/* Linux pause syscall implementation.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <signal.h>
#include <unistd.h>
diff --git a/sysdeps/unix/sysv/linux/pause_nocancel.c b/sysdeps/unix/sysv/linux/pause_nocancel.c
deleted file mode 100644
index 322908c8ea..0000000000
--- a/sysdeps/unix/sysv/linux/pause_nocancel.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Linux pause syscall implementation -- non-cancellable.
- Copyright (C) 2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <signal.h>
-#include <unistd.h>
-#include <sysdep-cancel.h>
-#include <not-cancel.h>
-
-int
-__pause_nocancel (void)
-{
-#ifdef __NR_pause
- return INLINE_SYSCALL_CALL (pause);
-#else
- return INLINE_SYSCALL_CALL (ppoll, NULL, 0, NULL, NULL);
-#endif
-}
-hidden_def (__pause_nocancel)
diff --git a/sysdeps/unix/sysv/linux/personality.c b/sysdeps/unix/sysv/linux/personality.c
index 492f17c025..148453023f 100644
--- a/sysdeps/unix/sysv/linux/personality.c
+++ b/sysdeps/unix/sysv/linux/personality.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2015-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/personality.h>
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/pkey_get.c b/sysdeps/unix/sysv/linux/pkey_get.c
index a38fae400f..c115c7bbab 100644
--- a/sysdeps/unix/sysv/linux/pkey_get.c
+++ b/sysdeps/unix/sysv/linux/pkey_get.c
@@ -1,5 +1,5 @@
/* Obtaining the thread memory protection key, generic stub.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
diff --git a/sysdeps/unix/sysv/linux/pkey_mprotect.c b/sysdeps/unix/sysv/linux/pkey_mprotect.c
index a947903538..fa7d207ed0 100644
--- a/sysdeps/unix/sysv/linux/pkey_mprotect.c
+++ b/sysdeps/unix/sysv/linux/pkey_mprotect.c
@@ -1,5 +1,5 @@
/* mprotect with a memory protection key.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/mman.h>
diff --git a/sysdeps/unix/sysv/linux/pkey_set.c b/sysdeps/unix/sysv/linux/pkey_set.c
index f6472b1526..d1bed49164 100644
--- a/sysdeps/unix/sysv/linux/pkey_set.c
+++ b/sysdeps/unix/sysv/linux/pkey_set.c
@@ -1,5 +1,5 @@
/* Changing the thread memory protection key, generic stub.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
diff --git a/sysdeps/unix/sysv/linux/poll.c b/sysdeps/unix/sysv/linux/poll.c
index d60d3e36d7..8ea00563a4 100644
--- a/sysdeps/unix/sysv/linux/poll.c
+++ b/sysdeps/unix/sysv/linux/poll.c
@@ -1,5 +1,5 @@
/* Linux poll implementation.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/poll.h>
diff --git a/sysdeps/unix/sysv/linux/posix_fadvise.c b/sysdeps/unix/sysv/linux/posix_fadvise.c
index d676a68140..7ba4321829 100644
--- a/sysdeps/unix/sysv/linux/posix_fadvise.c
+++ b/sysdeps/unix/sysv/linux/posix_fadvise.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/sysdeps/unix/sysv/linux/posix_fadvise64.c b/sysdeps/unix/sysv/linux/posix_fadvise64.c
index 61dfe894ee..889bb9c8be 100644
--- a/sysdeps/unix/sysv/linux/posix_fadvise64.c
+++ b/sysdeps/unix/sysv/linux/posix_fadvise64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/sysdeps/unix/sysv/linux/posix_fallocate.c b/sysdeps/unix/sysv/linux/posix_fallocate.c
index 766a48cb65..b0d15ecfb4 100644
--- a/sysdeps/unix/sysv/linux/posix_fallocate.c
+++ b/sysdeps/unix/sysv/linux/posix_fallocate.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fcntl.h>
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/posix_fallocate64.c b/sysdeps/unix/sysv/linux/posix_fallocate64.c
index e576f6f7c6..7fd6cf1052 100644
--- a/sysdeps/unix/sysv/linux/posix_fallocate64.c
+++ b/sysdeps/unix/sysv/linux/posix_fallocate64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fcntl.h>
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/posix_madvise.c b/sysdeps/unix/sysv/linux/posix_madvise.c
index b1e167211f..e660d3d37b 100644
--- a/sysdeps/unix/sysv/linux/posix_madvise.c
+++ b/sysdeps/unix/sysv/linux/posix_madvise.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <sys/mman.h>
diff --git a/sysdeps/unix/sysv/linux/powerpc/Makefile b/sysdeps/unix/sysv/linux/powerpc/Makefile
index 19ac59d862..1596238afa 100644
--- a/sysdeps/unix/sysv/linux/powerpc/Makefile
+++ b/sysdeps/unix/sysv/linux/powerpc/Makefile
@@ -25,6 +25,8 @@ endif
ifeq ($(subdir),misc)
sysdep_headers += bits/ppc.h
sysdep_routines += get_timebase_freq
+tests-static += test-gettimebasefreq-static
+tests += $(tests-static)
tests += test-gettimebasefreq
tests += test-powerpc-linux-sysconf
endif
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/environments.h b/sysdeps/unix/sysv/linux/powerpc/bits/environments.h
index 10542c95e1..eaf458e26e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/environments.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/environments.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _UNISTD_H
# error "Never include this file directly. Use <unistd.h> instead"
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h b/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h
index cd9ba6ed63..6ae35f3184 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for Linux/PowerPC.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FCNTL_H
# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/ioctl-types.h b/sysdeps/unix/sysv/linux/powerpc/bits/ioctl-types.h
index 1c75b2982c..ce39c5412d 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/ioctl-types.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/ioctl-types.h
@@ -1,5 +1,5 @@
/* Structure types for pre-termios terminal ioctls. Linux/powerpc version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_IOCTL_H
# error "Never use <bits/ioctl-types.h> directly; include <sys/ioctl.h> instead."
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/ipc-perm.h b/sysdeps/unix/sysv/linux/powerpc/bits/ipc-perm.h
new file mode 100644
index 0000000000..959ea32993
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/ipc-perm.h
@@ -0,0 +1,36 @@
+/* struct ipc_perm definition. Linux/powerpc version.
+ Copyright (C) 1995-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_IPC_H
+# error "Never use <bits/ipc-perm.h> directly; include <sys/ipc.h> instead."
+#endif
+
+/* Data structure used to pass permission information to IPC operations. */
+struct ipc_perm
+ {
+ __key_t __key; /* Key. */
+ __uid_t uid; /* Owner's user ID. */
+ __gid_t gid; /* Owner's group ID. */
+ __uid_t cuid; /* Creator's user ID. */
+ __gid_t cgid; /* Creator's group ID. */
+ __mode_t mode; /* Read/write permission. */
+ __uint32_t __seq; /* Sequence number. */
+ __uint32_t __pad1;
+ __uint64_t __glibc_reserved1;
+ __uint64_t __glibc_reserved2;
+ };
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/ipc.h b/sysdeps/unix/sysv/linux/powerpc/bits/ipc.h
deleted file mode 100644
index 50f2b6a7c9..0000000000
--- a/sysdeps/unix/sysv/linux/powerpc/bits/ipc.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Copyright (C) 1995-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_IPC_H
-# error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
-#endif
-
-#include <bits/types.h>
-
-/* Mode bits for `msgget', `semget', and `shmget'. */
-#define IPC_CREAT 01000 /* Create key if key does not exist. */
-#define IPC_EXCL 02000 /* Fail if key exists. */
-#define IPC_NOWAIT 04000 /* Return error on wait. */
-
-/* Control commands for `msgctl', `semctl', and `shmctl'. */
-#define IPC_RMID 0 /* Remove identifier. */
-#define IPC_SET 1 /* Set `ipc_perm' options. */
-#define IPC_STAT 2 /* Get `ipc_perm' options. */
-#ifdef __USE_GNU
-# define IPC_INFO 3 /* See ipcs. */
-#endif
-
-/* Special key values. */
-#define IPC_PRIVATE ((__key_t) 0) /* Private key. */
-
-
-/* Data structure used to pass permission information to IPC operations. */
-struct ipc_perm
- {
- __key_t __key; /* Key. */
- __uid_t uid; /* Owner's user ID. */
- __gid_t gid; /* Owner's group ID. */
- __uid_t cuid; /* Creator's user ID. */
- __gid_t cgid; /* Creator's group ID. */
- __mode_t mode; /* Read/write permission. */
- __uint32_t __seq; /* Sequence number. */
- __uint32_t __pad1;
- __uint64_t __glibc_reserved1;
- __uint64_t __glibc_reserved2;
- };
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/local_lim.h b/sysdeps/unix/sysv/linux/powerpc/bits/local_lim.h
index 049094e467..f672dd197b 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/local_lim.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/local_lim.h
@@ -1,5 +1,5 @@
/* Minimum guaranteed maximum values for system limits. Linux/PPC version.
- Copyright (C) 1993-2018 Free Software Foundation, Inc.
+ Copyright (C) 1993-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
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
/* The kernel header pollutes the namespace with the NR_OPEN symbol
and defines LINK_MAX although filesystems have different maxima. A
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/mman.h b/sysdeps/unix/sysv/linux/powerpc/bits/mman.h
index e652467c8c..db850f1ea4 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/mman.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/mman.h
@@ -1,5 +1,5 @@
/* Definitions for POSIX memory map interface. Linux/PowerPC version.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_MMAN_H
# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
@@ -36,6 +36,8 @@
# define MAP_NONBLOCK 0x10000 /* Do not block on IO. */
# define MAP_STACK 0x20000 /* Allocation is for a stack. */
# define MAP_HUGETLB 0x40000 /* Create huge page mapping. */
+# define MAP_SYNC 0x80000 /* Perform synchronous page
+ faults for the mapping. */
# define MAP_FIXED_NOREPLACE 0x100000 /* MAP_FIXED but do not unmap
underlying mapping. */
#endif
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/msq-pad.h b/sysdeps/unix/sysv/linux/powerpc/bits/msq-pad.h
new file mode 100644
index 0000000000..8460fdfea6
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/msq-pad.h
@@ -0,0 +1,26 @@
+/* Define where padding goes in struct msqid_ds. PowerPC version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_MSG_H
+# error "Never use <bits/msq-pad.h> directly; include <sys/msg.h> instead."
+#endif
+
+#include <bits/timesize.h>
+
+#define __MSQ_PAD_AFTER_TIME 0
+#define __MSQ_PAD_BEFORE_TIME (__TIMESIZE == 32)
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/msq.h b/sysdeps/unix/sysv/linux/powerpc/bits/msq.h
deleted file mode 100644
index b98d293d54..0000000000
--- a/sysdeps/unix/sysv/linux/powerpc/bits/msq.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/* Copyright (C) 1995-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_MSG_H
-# error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
-#endif
-
-#include <bits/types.h>
-
-/* Define options for message queue functions. */
-#define MSG_NOERROR 010000 /* no error if message is too big */
-#ifdef __USE_GNU
-# define MSG_EXCEPT 020000 /* recv any msg except of specified type */
-# define MSG_COPY 040000 /* copy (not remove) all queue messages */
-#endif
-
-/* Types used in the structure definition. */
-typedef unsigned long int msgqnum_t;
-typedef unsigned long int msglen_t;
-
-
-/* Structure of record for one message inside the kernel.
- The type `struct msg' is opaque. */
-struct msqid_ds
-{
- struct ipc_perm msg_perm; /* structure describing operation permission */
-#if __WORDSIZE == 32
- unsigned int __glibc_reserved1;
-#endif
- __time_t msg_stime; /* time of last msgsnd command */
-#if __WORDSIZE == 32
- unsigned int __glibc_reserved2;
-#endif
- __time_t msg_rtime; /* time of last msgrcv command */
-#if __WORDSIZE == 32
- unsigned int __glibc_reserved3;
-#endif
- __time_t msg_ctime; /* time of last change */
- unsigned long __msg_cbytes; /* current number of bytes on queue */
- msgqnum_t msg_qnum; /* number of messages currently on queue */
- msglen_t msg_qbytes; /* max number of bytes allowed on queue */
- __pid_t msg_lspid; /* pid of last msgsnd() */
- __pid_t msg_lrpid; /* pid of last msgrcv() */
- unsigned long __glibc_reserved4;
- unsigned long __glibc_reserved5;
-};
-
-#ifdef __USE_MISC
-
-# define msg_cbytes __msg_cbytes
-
-/* ipcs ctl commands */
-# define MSG_STAT 11
-# define MSG_INFO 12
-# define MSG_STAT_ANY 13
-
-/* buffer for msgctl calls IPC_INFO, MSG_INFO */
-struct msginfo
- {
- int msgpool;
- int msgmap;
- int msgmax;
- int msgmnb;
- int msgmni;
- int msgssz;
- int msgtql;
- unsigned short int msgseg;
- };
-
-#endif /* __USE_MISC */
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/ppc.h b/sysdeps/unix/sysv/linux/powerpc/bits/ppc.h
index df7f7a69b6..e764841da7 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/ppc.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/ppc.h
@@ -1,5 +1,5 @@
/* Facilities specific to the PowerPC architecture on Linux
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_PPC_H
#define _BITS_PPC_H
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/procfs.h b/sysdeps/unix/sysv/linux/powerpc/bits/procfs.h
new file mode 100644
index 0000000000..b9e49611df
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/procfs.h
@@ -0,0 +1,49 @@
+/* Types for registers for sys/procfs.h. PowerPC version.
+ Copyright (C) 1996-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PROCFS_H
+# error "Never include <bits/procfs.h> directly; use <sys/procfs.h> instead."
+#endif
+
+#include <signal.h>
+#include <sys/ucontext.h>
+
+/* These definitions are normally provided by ucontext.h via
+ asm/sigcontext.h, asm/ptrace.h, and asm/elf.h. Otherwise we define
+ them here. */
+#if !defined __PPC64_ELF_H && !defined _ASM_POWERPC_ELF_H
+#define ELF_NGREG 48 /* includes nip, msr, lr, etc. */
+#define ELF_NFPREG 33 /* includes fpscr */
+#if __WORDSIZE == 32
+# define ELF_NVRREG 33 /* includes vscr */
+#else
+# define ELF_NVRREG 34 /* includes vscr */
+#endif
+
+typedef unsigned long elf_greg_t;
+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
+
+typedef double elf_fpreg_t;
+typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
+
+/* Altivec registers */
+typedef struct {
+ unsigned int u[4];
+} __attribute__ ((__aligned__ (16))) elf_vrreg_t;
+typedef elf_vrreg_t elf_vrregset_t[ELF_NVRREG];
+#endif
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/sem-pad.h b/sysdeps/unix/sysv/linux/powerpc/bits/sem-pad.h
new file mode 100644
index 0000000000..353bc0f27f
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/sem-pad.h
@@ -0,0 +1,26 @@
+/* Define where padding goes in struct semid_ds. PowerPC version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SEM_H
+# error "Never use <bits/sem-pad.h> directly; include <sys/sem.h> instead."
+#endif
+
+#include <bits/timesize.h>
+
+#define __SEM_PAD_AFTER_TIME 0
+#define __SEM_PAD_BEFORE_TIME (__TIMESIZE == 32)
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/sem.h b/sysdeps/unix/sysv/linux/powerpc/bits/sem.h
deleted file mode 100644
index 27b026cf61..0000000000
--- a/sysdeps/unix/sysv/linux/powerpc/bits/sem.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/* Copyright (C) 1995-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_SEM_H
-# error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
-#endif
-
-#include <sys/types.h>
-
-/* Flags for `semop'. */
-#define SEM_UNDO 0x1000 /* undo the operation on exit */
-
-/* Commands for `semctl'. */
-#define GETPID 11 /* get sempid */
-#define GETVAL 12 /* get semval */
-#define GETALL 13 /* get all semval's */
-#define GETNCNT 14 /* get semncnt */
-#define GETZCNT 15 /* get semzcnt */
-#define SETVAL 16 /* set semval */
-#define SETALL 17 /* set all semval's */
-
-
-/* Data structure describing a set of semaphores. */
-struct semid_ds
-{
- struct ipc_perm sem_perm; /* operation permission struct */
-#if __WORDSIZE == 32
- unsigned int __glibc_reserved1;
-#endif
- __time_t sem_otime; /* last semop() time */
-#if __WORDSIZE == 32
- unsigned int __glibc_reserved2;
-#endif
- __time_t sem_ctime; /* last time changed by semctl() */
- unsigned long int sem_nsems; /* number of semaphores in set */
- unsigned long __glibc_reserved3;
- unsigned long __glibc_reserved4;
-};
-
-/* The user should define a union like the following to use it for arguments
- for `semctl'.
-
- union semun
- {
- int val; <= value for SETVAL
- struct semid_ds *buf; <= buffer for IPC_STAT & IPC_SET
- unsigned short int *array; <= array for GETALL & SETALL
- struct seminfo *__buf; <= buffer for IPC_INFO
- };
-
- Previous versions of this file used to define this union but this is
- incorrect. One can test the macro _SEM_SEMUN_UNDEFINED to see whether
- one must define the union or not. */
-#define _SEM_SEMUN_UNDEFINED 1
-
-#ifdef __USE_MISC
-
-/* ipcs ctl cmds */
-# define SEM_STAT 18
-# define SEM_INFO 19
-# define SEM_STAT_ANY 20
-
-struct seminfo
-{
- int semmap;
- int semmni;
- int semmns;
- int semmnu;
- int semmsl;
- int semopm;
- int semume;
- int semusz;
- int semvmx;
- int semaem;
-};
-
-#endif /* __USE_MISC */
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h b/sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h
index 8d6040adaa..1dd895589c 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h
@@ -1,5 +1,5 @@
/* Machine-specific POSIX semaphore type layouts. PowerPC version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Paul Mackerras <paulus@au.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SEMAPHORE_H
# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/shm-pad.h b/sysdeps/unix/sysv/linux/powerpc/bits/shm-pad.h
new file mode 100644
index 0000000000..8b8d53647e
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/shm-pad.h
@@ -0,0 +1,28 @@
+/* Define where padding goes in struct shmid_ds. PowerPC version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SHM_H
+# error "Never use <bits/shm-pad.h> directly; include <sys/shm.h> instead."
+#endif
+
+#include <bits/timesize.h>
+
+#define __SHM_PAD_AFTER_TIME 0
+#define __SHM_PAD_BEFORE_TIME (__TIMESIZE == 32)
+#define __SHM_SEGSZ_AFTER_TIME 1
+#define __SHM_PAD_BETWEEN_TIME_AND_SEGSZ (__TIMESIZE == 32)
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/shm.h b/sysdeps/unix/sysv/linux/powerpc/bits/shm.h
deleted file mode 100644
index 879023fb9a..0000000000
--- a/sysdeps/unix/sysv/linux/powerpc/bits/shm.h
+++ /dev/null
@@ -1,113 +0,0 @@
-/* Copyright (C) 1995-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_SHM_H
-# error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
-#endif
-
-#include <bits/types.h>
-
-/* Permission flag for shmget. */
-#define SHM_R 0400 /* or S_IRUGO from <linux/stat.h> */
-#define SHM_W 0200 /* or S_IWUGO from <linux/stat.h> */
-
-/* Flags for `shmat'. */
-#define SHM_RDONLY 010000 /* attach read-only else read-write */
-#define SHM_RND 020000 /* round attach address to SHMLBA */
-#define SHM_REMAP 040000 /* take-over region on attach */
-#define SHM_EXEC 0100000 /* execution access */
-
-/* Commands for `shmctl'. */
-#define SHM_LOCK 11 /* lock segment (root only) */
-#define SHM_UNLOCK 12 /* unlock segment (root only) */
-
-__BEGIN_DECLS
-
-/* Segment low boundary address multiple. */
-#define SHMLBA (__getpagesize ())
-extern int __getpagesize (void) __THROW __attribute__ ((__const__));
-
-
-/* Type to count number of attaches. */
-typedef unsigned long int shmatt_t;
-
-/* Data structure describing a shared memory segment. */
-struct shmid_ds
- {
- struct ipc_perm shm_perm; /* operation permission struct */
-#if __WORDSIZE == 32
- unsigned int __glibc_reserved1;
-#endif
- __time_t shm_atime; /* time of last shmat() */
-#if __WORDSIZE == 32
- unsigned int __glibc_reserved2;
-#endif
- __time_t shm_dtime; /* time of last shmdt() */
-#if __WORDSIZE == 32
- unsigned int __glibc_reserved3;
-#endif
- __time_t shm_ctime; /* time of last change by shmctl() */
-#if __WORDSIZE == 32
- unsigned int __glibc_reserved4;
-#endif
- size_t shm_segsz; /* size of segment in bytes */
- __pid_t shm_cpid; /* pid of creator */
- __pid_t shm_lpid; /* pid of last shmop */
- shmatt_t shm_nattch; /* number of current attaches */
- unsigned long __glibc_reserved5;
- unsigned long __glibc_reserved6;
- };
-
-#ifdef __USE_MISC
-
-/* ipcs ctl commands */
-# define SHM_STAT 13
-# define SHM_INFO 14
-# define SHM_STAT_ANY 15
-
-/* shm_mode upper byte flags */
-# define SHM_DEST 01000 /* segment will be destroyed on last detach */
-# define SHM_LOCKED 02000 /* segment will not be swapped */
-# define SHM_HUGETLB 04000 /* segment is mapped via hugetlb */
-# define SHM_NORESERVE 010000 /* don't check for reservations */
-
-struct shminfo
- {
- unsigned long int shmmax;
- unsigned long int shmmin;
- unsigned long int shmmni;
- unsigned long int shmseg;
- unsigned long int shmall;
- unsigned long int __glibc_reserved1;
- unsigned long int __glibc_reserved2;
- unsigned long int __glibc_reserved3;
- unsigned long int __glibc_reserved4;
- };
-
-struct shm_info
- {
- int used_ids;
- unsigned long int shm_tot; /* total allocated shm */
- unsigned long int shm_rss; /* total resident shm */
- unsigned long int shm_swp; /* total swapped shm */
- unsigned long int swap_attempts;
- unsigned long int swap_successes;
- };
-
-#endif /* __USE_MISC */
-
-__END_DECLS
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/sigstack.h b/sysdeps/unix/sysv/linux/powerpc/bits/sigstack.h
index cb01b0938d..d6d79f5694 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/sigstack.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/sigstack.h
@@ -1,5 +1,5 @@
/* sigstack, sigaltstack definitions.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_SIGSTACK_H
#define _BITS_SIGSTACK_H 1
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/socket-constants.h b/sysdeps/unix/sysv/linux/powerpc/bits/socket-constants.h
new file mode 100644
index 0000000000..60a2a8d96d
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/socket-constants.h
@@ -0,0 +1,38 @@
+/* Socket constants which vary among Linux architectures. Version for POWER.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SOCKET_H
+# error "Never include <bits/socket-constants.h> directly; use <sys/socket.h> instead."
+#endif
+
+#define SOL_SOCKET 1
+#define SO_ACCEPTCONN 30
+#define SO_BROADCAST 6
+#define SO_DONTROUTE 5
+#define SO_ERROR 4
+#define SO_KEEPALIVE 9
+#define SO_LINGER 13
+#define SO_OOBINLINE 10
+#define SO_RCVBUF 8
+#define SO_RCVLOWAT 16
+#define SO_RCVTIMEO 18
+#define SO_REUSEADDR 2
+#define SO_SNDBUF 7
+#define SO_SNDLOWAT 17
+#define SO_SNDTIMEO 19
+#define SO_TYPE 3
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/stat.h b/sysdeps/unix/sysv/linux/powerpc/bits/stat.h
index 17654b5075..7f0e5b66e8 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/stat.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/stat.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if !defined _SYS_STAT_H && !defined _FCNTL_H
# error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/termios-baud.h b/sysdeps/unix/sysv/linux/powerpc/bits/termios-baud.h
new file mode 100644
index 0000000000..777d6754b2
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/termios-baud.h
@@ -0,0 +1,45 @@
+/* termios baud rate selection definitions. Linux/powerpc version.
+ 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. If not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _TERMIOS_H
+# error "Never include <bits/termios-baud.h> directly; use <termios.h> instead."
+#endif
+
+#ifdef __USE_MISC
+# define CBAUD 0000377
+# define CBAUDEX 0000020
+# define CMSPAR 010000000000 /* mark or space (stick) parity */
+# define CRTSCTS 020000000000 /* flow control */
+#endif
+
+#define B57600 00020
+#define B115200 00021
+#define B230400 00022
+#define B460800 00023
+#define B500000 00024
+#define B576000 00025
+#define B921600 00026
+#define B1000000 00027
+#define B1152000 00030
+#define B1500000 00031
+#define B2000000 00032
+#define B2500000 00033
+#define B3000000 00034
+#define B3500000 00035
+#define B4000000 00036
+#define __MAX_BAUD B4000000
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_cc.h b/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_cc.h
new file mode 100644
index 0000000000..c55f404c9f
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_cc.h
@@ -0,0 +1,41 @@
+/* termios c_cc symbolic constant definitions. Linux/powerpc version.
+ 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. If not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _TERMIOS_H
+# error "Never include <bits/termios-c_cc.h> directly; use <termios.h> instead."
+#endif
+
+/* c_cc characters */
+#define VINTR 0
+#define VQUIT 1
+#define VERASE 2
+#define VKILL 3
+#define VEOF 4
+#define VMIN 5
+#define VEOL 6
+#define VTIME 7
+#define VEOL2 8
+#define VSWTC 9
+
+#define VWERASE 10
+#define VREPRINT 11
+#define VSUSP 12
+#define VSTART 13
+#define VSTOP 14
+#define VLNEXT 15
+#define VDISCARD 16
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_cflag.h b/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_cflag.h
new file mode 100644
index 0000000000..0ac538e7d2
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_cflag.h
@@ -0,0 +1,35 @@
+/* termios control mode definitions. Linux/powerpc version.
+ 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. If not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _TERMIOS_H
+# error "Never include <bits/termios-c_cflag.h> directly; use <termios.h> instead."
+#endif
+
+#define CSIZE 00001400
+#define CS5 00000000
+#define CS6 00000400
+#define CS7 00001000
+#define CS8 00001400
+
+#define CSTOPB 00002000
+#define CREAD 00004000
+#define PARENB 00010000
+#define PARODD 00020000
+#define HUPCL 00040000
+
+#define CLOCAL 00100000
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_iflag.h b/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_iflag.h
new file mode 100644
index 0000000000..a433143089
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_iflag.h
@@ -0,0 +1,38 @@
+/* termios input mode definitions. Linux/powerpc version.
+ 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. If not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _TERMIOS_H
+# error "Never include <bits/termios-c_iflags.h> directly; use <termios.h> instead."
+#endif
+
+/* c_iflag bits */
+#define IGNBRK 0000001
+#define BRKINT 0000002
+#define IGNPAR 0000004
+#define PARMRK 0000010
+#define INPCK 0000020
+#define ISTRIP 0000040
+#define INLCR 0000100
+#define IGNCR 0000200
+#define ICRNL 0000400
+#define IXON 0001000
+#define IXOFF 0002000
+#define IXANY 0004000
+#define IUCLC 0010000
+#define IMAXBEL 0020000
+#define IUTF8 0040000
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_lflag.h b/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_lflag.h
new file mode 100644
index 0000000000..4334130b21
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_lflag.h
@@ -0,0 +1,45 @@
+/* termios local mode definitions. Linux/powerpc version.
+ Copyright (C) 2019i Free Software 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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _TERMIOS_H
+# error "Never include <bits/termios-c_lflag.h> directly; use <termios.h> instead."
+#endif
+
+/* c_lflag bits */
+#define ISIG 0x00000080
+#define ICANON 0x00000100
+#if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K)
+# define XCASE 0x00004000
+#endif
+#define ECHO 0x00000008
+#define ECHOE 0x00000002
+#define ECHOK 0x00000004
+#define ECHONL 0x00000010
+#define NOFLSH 0x80000000
+#define TOSTOP 0x00400000
+#ifdef __USE_MISC
+# define ECHOCTL 0x00000040
+# define ECHOPRT 0x00000020
+# define ECHOKE 0x00000001
+# define FLUSHO 0x00800000
+# define PENDIN 0x20000000
+#endif
+#define IEXTEN 0x00000400
+#ifdef __USE_MISC
+# define EXTPROC 0x10000000
+#endif
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_oflag.h b/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_oflag.h
new file mode 100644
index 0000000000..8cfdab9c62
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_oflag.h
@@ -0,0 +1,65 @@
+/* termios output mode definitions. Linux/powerpc version.
+ 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. If not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _TERMIOS_H
+# error "Never include <bits/termios-c_oflag.h> directly; use <termios.h> instead."
+#endif
+
+/* c_oflag bits */
+#define OPOST 0000001
+#define ONLCR 0000002
+#define OLCUC 0000004
+
+#define OCRNL 0000010
+#define ONOCR 0000020
+#define ONLRET 0000040
+
+#define OFILL 00000100
+#define OFDEL 00000200
+#if defined __USE_MISC || defined __USE_XOPEN
+# define NLDLY 00001400
+# define NL0 00000000
+# define NL1 00000400
+# if defined __USE_MISC
+# define NL2 00001000
+# define NL3 00001400
+# endif
+# define TABDLY 00006000
+# define TAB0 00000000
+# define TAB1 00002000
+# define TAB2 00004000
+# define TAB3 00006000
+# define CRDLY 00030000
+# define CR0 00000000
+# define CR1 00010000
+# define CR2 00020000
+# define CR3 00030000
+# define FFDLY 00040000
+# define FF0 00000000
+# define FF1 00040000
+# define BSDLY 00100000
+# define BS0 00000000
+# define BS1 00100000
+#endif
+#define VTDLY 00200000
+#define VT0 00000000
+#define VT1 00200000
+
+#ifdef __USE_MISC
+# define XTABS 00006000
+#endif
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/termios-misc.h b/sysdeps/unix/sysv/linux/powerpc/bits/termios-misc.h
new file mode 100644
index 0000000000..62a5e2709b
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/termios-misc.h
@@ -0,0 +1,72 @@
+/* termios baud platform specific definitions. Linux/powerpc version.
+ 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. If not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _TERMIOS_H
+# error "Never include <bits/termios-misc.h> directly; use <termios.h> instead."
+#endif
+
+#ifdef __USE_MISC
+
+struct sgttyb {
+ char sg_ispeed;
+ char sg_ospeed;
+ char sg_erase;
+ char sg_kill;
+ short sg_flags;
+};
+
+struct tchars {
+ char t_intrc;
+ char t_quitc;
+ char t_startc;
+ char t_stopc;
+ char t_eofc;
+ char t_brkc;
+};
+
+struct ltchars {
+ char t_suspc;
+ char t_dsuspc;
+ char t_rprntc;
+ char t_flushc;
+ char t_werasc;
+ char t_lnextc;
+};
+
+/* Used for packet mode */
+#define TIOCPKT_DATA 0
+#define TIOCPKT_FLUSHREAD 1
+#define TIOCPKT_FLUSHWRITE 2
+#define TIOCPKT_STOP 4
+#define TIOCPKT_START 8
+#define TIOCPKT_NOSTOP 16
+#define TIOCPKT_DOSTOP 32
+
+/* c_cc characters */
+#define _VINTR 0
+#define _VQUIT 1
+#define _VERASE 2
+#define _VKILL 3
+#define _VEOF 4
+#define _VMIN 5
+#define _VEOL 6
+#define _VTIME 7
+#define _VEOL2 8
+#define _VSWTC 9
+
+#endif /* __USE_MISC */
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/termios.h b/sysdeps/unix/sysv/linux/powerpc/bits/termios.h
deleted file mode 100644
index 1362cce551..0000000000
--- a/sysdeps/unix/sysv/linux/powerpc/bits/termios.h
+++ /dev/null
@@ -1,279 +0,0 @@
-/* Copyright (C) 1997-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _TERMIOS_H
-# error "Never include <bits/termios.h> directly; use <termios.h> instead."
-#endif
-
-typedef unsigned char cc_t;
-typedef unsigned int speed_t;
-typedef unsigned int tcflag_t;
-
-/*
- * termios type and macro definitions. Be careful about adding stuff
- * to this file since it's used in GNU libc and there are strict rules
- * concerning namespace pollution.
- */
-
-#define NCCS 32
-struct termios {
- tcflag_t c_iflag; /* input mode flags */
- tcflag_t c_oflag; /* output mode flags */
- tcflag_t c_cflag; /* control mode flags */
- tcflag_t c_lflag; /* local mode flags */
- cc_t c_line; /* line discipline (== c_cc[19]) */
- cc_t c_cc[NCCS]; /* control characters */
- speed_t c_ispeed; /* input speed */
- speed_t c_ospeed; /* output speed */
-#define _HAVE_STRUCT_TERMIOS_C_ISPEED 1
-#define _HAVE_STRUCT_TERMIOS_C_OSPEED 1
-};
-
-/* c_cc characters */
-#define VINTR 0
-#define VQUIT 1
-#define VERASE 2
-#define VKILL 3
-#define VEOF 4
-#define VMIN 5
-#define VEOL 6
-#define VTIME 7
-#define VEOL2 8
-#define VSWTC 9
-
-#define VWERASE 10
-#define VREPRINT 11
-#define VSUSP 12
-#define VSTART 13
-#define VSTOP 14
-#define VLNEXT 15
-#define VDISCARD 16
-
-/* c_iflag bits */
-#define IGNBRK 0000001
-#define BRKINT 0000002
-#define IGNPAR 0000004
-#define PARMRK 0000010
-#define INPCK 0000020
-#define ISTRIP 0000040
-#define INLCR 0000100
-#define IGNCR 0000200
-#define ICRNL 0000400
-#define IXON 0001000
-#define IXOFF 0002000
-#define IXANY 0004000
-#define IUCLC 0010000
-#define IMAXBEL 0020000
-#define IUTF8 0040000
-
-/* c_oflag bits */
-#define OPOST 0000001
-#define ONLCR 0000002
-#define OLCUC 0000004
-
-#define OCRNL 0000010
-#define ONOCR 0000020
-#define ONLRET 0000040
-
-#define OFILL 00000100
-#define OFDEL 00000200
-#if defined __USE_MISC || defined __USE_XOPEN
-# define NLDLY 00001400
-# define NL0 00000000
-# define NL1 00000400
-# if defined __USE_MISC
-# define NL2 00001000
-# define NL3 00001400
-# endif
-# define TABDLY 00006000
-# define TAB0 00000000
-# define TAB1 00002000
-# define TAB2 00004000
-# define TAB3 00006000
-# define CRDLY 00030000
-# define CR0 00000000
-# define CR1 00010000
-# define CR2 00020000
-# define CR3 00030000
-# define FFDLY 00040000
-# define FF0 00000000
-# define FF1 00040000
-# define BSDLY 00100000
-# define BS0 00000000
-# define BS1 00100000
-#endif
-#define VTDLY 00200000
-#define VT0 00000000
-#define VT1 00200000
-
-#ifdef __USE_MISC
-# define XTABS 00006000
-#endif
-
-/* c_cflag bit meaning */
-#ifdef __USE_MISC
-# define CBAUD 0000377
-#endif
-#define B0 0000000 /* hang up */
-#define B50 0000001
-#define B75 0000002
-#define B110 0000003
-#define B134 0000004
-#define B150 0000005
-#define B200 0000006
-#define B300 0000007
-#define B600 0000010
-#define B1200 0000011
-#define B1800 0000012
-#define B2400 0000013
-#define B4800 0000014
-#define B9600 0000015
-#define B19200 0000016
-#define B38400 0000017
-#ifdef __USE_MISC
-# define EXTA B19200
-# define EXTB B38400
-# define CBAUDEX 0000020
-#endif
-#define B57600 00020
-#define B115200 00021
-#define B230400 00022
-#define B460800 00023
-#define B500000 00024
-#define B576000 00025
-#define B921600 00026
-#define B1000000 00027
-#define B1152000 00030
-#define B1500000 00031
-#define B2000000 00032
-#define B2500000 00033
-#define B3000000 00034
-#define B3500000 00035
-#define B4000000 00036
-#define __MAX_BAUD B4000000
-
-#define CSIZE 00001400
-#define CS5 00000000
-#define CS6 00000400
-#define CS7 00001000
-#define CS8 00001400
-
-#define CSTOPB 00002000
-#define CREAD 00004000
-#define PARENB 00010000
-#define PARODD 00020000
-#define HUPCL 00040000
-
-#define CLOCAL 00100000
-#ifdef __USE_MISC
-# define CMSPAR 010000000000 /* mark or space (stick) parity */
-# define CRTSCTS 020000000000 /* flow control */
-#endif
-
-/* c_lflag bits */
-#define ISIG 0x00000080
-#define ICANON 0x00000100
-#if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K)
-# define XCASE 0x00004000
-#endif
-#define ECHO 0x00000008
-#define ECHOE 0x00000002
-#define ECHOK 0x00000004
-#define ECHONL 0x00000010
-#define NOFLSH 0x80000000
-#define TOSTOP 0x00400000
-#ifdef __USE_MISC
-# define ECHOCTL 0x00000040
-# define ECHOPRT 0x00000020
-# define ECHOKE 0x00000001
-# define FLUSHO 0x00800000
-# define PENDIN 0x20000000
-#endif
-#define IEXTEN 0x00000400
-#ifdef __USE_MISC
-# define EXTPROC 0x10000000
-#endif
-
-/* Values for the ACTION argument to `tcflow'. */
-#define TCOOFF 0
-#define TCOON 1
-#define TCIOFF 2
-#define TCION 3
-
-/* Values for the QUEUE_SELECTOR argument to `tcflush'. */
-#define TCIFLUSH 0
-#define TCOFLUSH 1
-#define TCIOFLUSH 2
-
-/* Values for the OPTIONAL_ACTIONS argument to `tcsetattr'. */
-#define TCSANOW 0
-#define TCSADRAIN 1
-#define TCSAFLUSH 2
-
-#ifdef __USE_MISC
-
-struct sgttyb {
- char sg_ispeed;
- char sg_ospeed;
- char sg_erase;
- char sg_kill;
- short sg_flags;
-};
-
-struct tchars {
- char t_intrc;
- char t_quitc;
- char t_startc;
- char t_stopc;
- char t_eofc;
- char t_brkc;
-};
-
-struct ltchars {
- char t_suspc;
- char t_dsuspc;
- char t_rprntc;
- char t_flushc;
- char t_werasc;
- char t_lnextc;
-};
-
-/* Used for packet mode */
-#define TIOCPKT_DATA 0
-#define TIOCPKT_FLUSHREAD 1
-#define TIOCPKT_FLUSHWRITE 2
-#define TIOCPKT_STOP 4
-#define TIOCPKT_START 8
-#define TIOCPKT_NOSTOP 16
-#define TIOCPKT_DOSTOP 32
-
-/* c_cc characters */
-#define _VINTR 0
-#define _VQUIT 1
-#define _VERASE 2
-#define _VKILL 3
-#define _VEOF 4
-#define _VMIN 5
-#define _VEOL 6
-#define _VTIME 7
-#define _VEOL2 8
-#define _VSWTC 9
-
-/* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
-#define TIOCSER_TEMT 0x01 /* Transmitter physically empty */
-
-#endif /* __USE_MISC */
diff --git a/sysdeps/unix/sysv/linux/powerpc/dl-static.c b/sysdeps/unix/sysv/linux/powerpc/dl-static.c
index d3722e1ad4..d176f96495 100644
--- a/sysdeps/unix/sysv/linux/powerpc/dl-static.c
+++ b/sysdeps/unix/sysv/linux/powerpc/dl-static.c
@@ -1,5 +1,5 @@
/* Variable initialization. PowerPC version.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ldsodefs.h>
diff --git a/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c b/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c
index 78051bc7bc..fa19cc66c0 100644
--- a/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c
+++ b/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c
@@ -1,5 +1,5 @@
/* Operating system support for run-time dynamic linker. Linux/PPC version.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <config.h>
#include <ldsodefs.h>
diff --git a/sysdeps/unix/sysv/linux/powerpc/elision-conf.c b/sysdeps/unix/sysv/linux/powerpc/elision-conf.c
index 906882a65e..4d40be7c97 100644
--- a/sysdeps/unix/sysv/linux/powerpc/elision-conf.c
+++ b/sysdeps/unix/sysv/linux/powerpc/elision-conf.c
@@ -1,5 +1,5 @@
/* elision-conf.c: Lock elision tunable parameters.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "config.h"
#include <pthreadP.h>
@@ -127,6 +127,26 @@ elision_init (int argc __attribute__ ((unused)),
TUNABLE_CALLBACK (set_elision_skip_trylock_internal_abort));
#endif
+ /* Linux from 3.9 through 4.2 do not abort HTM transaction on syscalls,
+ instead it suspends the transaction and resumes it when returning to
+ usercode. The side-effects of the syscall will always remain visible,
+ even if the transaction is aborted. This is an issue when a transaction
+ is used along with futex syscall, on pthread_cond_wait for instance,
+ where futex might succeed but the transaction is rolled back leading
+ the condition variable object in an inconsistent state.
+
+ Glibc used to prevent it by always aborting a transaction before issuing
+ a syscall. Linux 4.2 also decided to abort active transaction in
+ syscalls which makes the glibc workaround superflours. Worse, glibc
+ transaction abortions leads to a performance issues on recent kernels.
+
+ So Lock Elision is just enabled when it has been explict set (either
+ by tunables of by a configure switch) and if kernel aborts HTM
+ transactions on syscalls (PPC_FEATURE2_HTM_NOSC) */
+
+ __pthread_force_elision = (__pthread_force_elision
+ && GLRO (dl_hwcap2) & PPC_FEATURE2_HTM_NOSC);
+
if (!__pthread_force_elision)
__elision_aconf.try_tbegin = 0; /* Disable elision on rwlocks. */
}
diff --git a/sysdeps/unix/sysv/linux/powerpc/elision-conf.h b/sysdeps/unix/sysv/linux/powerpc/elision-conf.h
index 85de593127..79097c866c 100644
--- a/sysdeps/unix/sysv/linux/powerpc/elision-conf.h
+++ b/sysdeps/unix/sysv/linux/powerpc/elision-conf.h
@@ -1,5 +1,5 @@
/* elision-conf.h: Lock elision tunable parameters.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _ELISION_CONF_H
#define _ELISION_CONF_H 1
diff --git a/sysdeps/unix/sysv/linux/powerpc/elision-lock.c b/sysdeps/unix/sysv/linux/powerpc/elision-lock.c
index 98a23f0dd2..3da632ae96 100644
--- a/sysdeps/unix/sysv/linux/powerpc/elision-lock.c
+++ b/sysdeps/unix/sysv/linux/powerpc/elision-lock.c
@@ -1,5 +1,5 @@
/* elision-lock.c: Elided pthread mutex lock.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <pthread.h>
@@ -45,7 +45,6 @@
int
__lll_lock_elision (int *lock, short *adapt_count, EXTRAARG int pshared)
{
-#ifndef __SPE__
/* adapt_count is accessed concurrently but is just a hint. Thus,
use atomic accesses but relaxed MO is sufficient. */
if (atomic_load_relaxed (adapt_count) > 0)
@@ -83,6 +82,5 @@ __lll_lock_elision (int *lock, short *adapt_count, EXTRAARG int pshared)
aconf.skip_lock_out_of_tbegin_retries);
use_lock:
-#endif
return LLL_LOCK ((*lock), pshared);
}
diff --git a/sysdeps/unix/sysv/linux/powerpc/elision-timed.c b/sysdeps/unix/sysv/linux/powerpc/elision-timed.c
index 1082f566e4..1f000900b4 100644
--- a/sysdeps/unix/sysv/linux/powerpc/elision-timed.c
+++ b/sysdeps/unix/sysv/linux/powerpc/elision-timed.c
@@ -1,5 +1,5 @@
/* elision-timed.c: Lock elision timed lock.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,15 +14,15 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <time.h>
#include <elision-conf.h>
#include "lowlevellock.h"
-#define __lll_lock_elision __lll_timedlock_elision
-#define EXTRAARG const struct timespec *t,
+#define __lll_lock_elision __lll_clocklock_elision
+#define EXTRAARG clockid_t clockid, const struct timespec *t,
#undef LLL_LOCK
-#define LLL_LOCK(a, b) lll_timedlock(a, t, b)
+#define LLL_LOCK(a, b) lll_clocklock(a, clockid, t, b)
#include "elision-lock.c"
diff --git a/sysdeps/unix/sysv/linux/powerpc/elision-trylock.c b/sysdeps/unix/sysv/linux/powerpc/elision-trylock.c
index fabb03b2c4..80e468bcaf 100644
--- a/sysdeps/unix/sysv/linux/powerpc/elision-trylock.c
+++ b/sysdeps/unix/sysv/linux/powerpc/elision-trylock.c
@@ -1,5 +1,5 @@
/* elision-trylock.c: Lock eliding trylock for pthreads.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pthreadP.h>
@@ -30,7 +30,6 @@
int
__lll_trylock_elision (int *futex, short *adapt_count)
{
-#ifndef __SPE__
/* Implement POSIX semantics by forbiding nesting elided trylocks. */
__libc_tabort (_ABORT_NESTED_TRYLOCK);
@@ -66,6 +65,5 @@ __lll_trylock_elision (int *futex, short *adapt_count)
}
use_lock:
-#endif
return lll_trylock (*futex);
}
diff --git a/sysdeps/unix/sysv/linux/powerpc/elision-unlock.c b/sysdeps/unix/sysv/linux/powerpc/elision-unlock.c
index 14e0680ee9..4a8fbe5fd3 100644
--- a/sysdeps/unix/sysv/linux/powerpc/elision-unlock.c
+++ b/sysdeps/unix/sysv/linux/powerpc/elision-unlock.c
@@ -1,5 +1,5 @@
/* elision-unlock.c: Commit an elided pthread lock.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "pthreadP.h"
#include "lowlevellock.h"
@@ -23,7 +23,6 @@
int
__lll_unlock_elision (int *lock, short *adapt_count, int pshared)
{
-#ifndef __SPE__
/* When the lock was free we're in a transaction. */
if (*lock == 0)
__libc_tend (0);
@@ -40,8 +39,5 @@ __lll_unlock_elision (int *lock, short *adapt_count, int pshared)
lll_unlock ((*lock), pshared);
}
-#else
- lll_unlock ((*lock), pshared);
-#endif
return 0;
}
diff --git a/sysdeps/unix/sysv/linux/powerpc/force-elision.h b/sysdeps/unix/sysv/linux/powerpc/force-elision.h
index fe5d6ceade..6f439f97d8 100644
--- a/sysdeps/unix/sysv/linux/powerpc/force-elision.h
+++ b/sysdeps/unix/sysv/linux/powerpc/force-elision.h
@@ -1,5 +1,5 @@
/* force-elision.h: Automatic enabling of elision for mutexes
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,13 +14,49 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Automatically enable elision for existing user lock kinds. */
#define FORCE_ELISION(m, s) \
- if (__pthread_force_elision \
- && (m->__data.__kind & PTHREAD_MUTEX_ELISION_FLAGS_NP) == 0) \
+ if (__pthread_force_elision) \
{ \
- mutex->__data.__kind |= PTHREAD_MUTEX_ELISION_NP; \
- s; \
+ /* See concurrency notes regarding __kind in \
+ struct __pthread_mutex_s in \
+ sysdeps/nptl/bits/thread-shared-types.h. \
+ \
+ There are the following cases for the kind of a mutex \
+ (The mask PTHREAD_MUTEX_ELISION_FLAGS_NP covers the flags \
+ PTHREAD_MUTEX_ELISION_NP and PTHREAD_MUTEX_NO_ELISION_NP where \
+ only one of both flags can be set): \
+ - both flags are not set: \
+ This is the first lock operation for this mutex. Enable \
+ elision as it is not enabled so far. \
+ Note: It can happen that multiple threads are calling e.g. \
+ pthread_mutex_lock at the same time as the first lock \
+ operation for this mutex. Then elision is enabled for this \
+ mutex by multiple threads. Storing with relaxed MO is enough \
+ as all threads will store the same new value for the kind of \
+ the mutex. But we have to ensure that we always use the \
+ elision path regardless if this thread has enabled elision or \
+ another one. \
+ \
+ - PTHREAD_MUTEX_ELISION_NP flag is set: \
+ Elision was already enabled for this mutex by a previous lock \
+ operation. See case above. Just use the elision path. \
+ \
+ - PTHREAD_MUTEX_NO_ELISION_NP flag is set: \
+ Elision was explicitly disabled by pthread_mutexattr_settype. \
+ Do not use the elision path. \
+ Note: The flag PTHREAD_MUTEX_NO_ELISION_NP will never be \
+ changed after mutex initialization. */ \
+ int mutex_kind = atomic_load_relaxed (&((m)->__data.__kind)); \
+ if ((mutex_kind & PTHREAD_MUTEX_ELISION_FLAGS_NP) == 0) \
+ { \
+ mutex_kind |= PTHREAD_MUTEX_ELISION_NP; \
+ atomic_store_relaxed (&((m)->__data.__kind), mutex_kind); \
+ } \
+ if ((mutex_kind & PTHREAD_MUTEX_ELISION_NP) != 0) \
+ { \
+ s; \
+ } \
}
diff --git a/sysdeps/unix/sysv/linux/powerpc/get_clockfreq.c b/sysdeps/unix/sysv/linux/powerpc/get_clockfreq.c
deleted file mode 100644
index 3a2216021b..0000000000
--- a/sysdeps/unix/sysv/linux/powerpc/get_clockfreq.c
+++ /dev/null
@@ -1,107 +0,0 @@
-/* Get frequency of the system processor. powerpc/Linux version.
- Copyright (C) 2000-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <ctype.h>
-#include <fcntl.h>
-#include <stdint.h>
-#include <string.h>
-#include <unistd.h>
-#include <sysdep.h>
-#include <libc-vdso.h>
-#include <not-cancel.h>
-
-hp_timing_t
-__get_clockfreq (void)
-{
- hp_timing_t result = 0L;
-
-#ifdef SHARED
- /* The vDSO does not return an error (it clear cr0.so on returning). */
- INTERNAL_SYSCALL_DECL (err);
- result =
- INTERNAL_VSYSCALL_NO_SYSCALL_FALLBACK (get_tbfreq, err, uint64_t, 0);
-#else
- /* We read the information from the /proc filesystem. /proc/cpuinfo
- contains at least one line like:
- timebase : 33333333
- We search for this line and convert the number into an integer. */
- int fd = __open_nocancel ("/proc/cpuinfo", O_RDONLY);
- if (__glibc_likely (fd != -1))
- return result;
-
- /* The timebase will be in the 1st 1024 bytes for systems with up
- to 8 processors. If the first read returns less then 1024
- bytes read, we have the whole cpuinfo and can start the scan.
- Otherwise we will have to read more to insure we have the
- timebase value in the scan. */
- char buf[1024];
- ssize_t n;
-
- n = __read_nocancel (fd, buf, sizeof (buf));
- if (n == sizeof (buf))
- {
- /* We are here because the 1st read returned exactly sizeof
- (buf) bytes. This implies that we are not at EOF and may
- not have read the timebase value yet. So we need to read
- more bytes until we know we have EOF. We copy the lower
- half of buf to the upper half and read sizeof (buf)/2
- bytes into the lower half of buf and repeat until we
- reach EOF. We can assume that the timebase will be in
- the last 512 bytes of cpuinfo, so two 512 byte half_bufs
- will be sufficient to contain the timebase and will
- handle the case where the timebase spans the half_buf
- boundry. */
- const ssize_t half_buf = sizeof (buf) / 2;
- while (n >= half_buf)
- {
- memcpy (buf, buf + half_buf, half_buf);
- n = __read_nocancel (fd, buf + half_buf, half_buf);
- }
- if (n >= 0)
- n += half_buf;
- }
- __close_nocancel (fd);
-
- if (__glibc_likely (n > 0))
- {
- char *mhz = memmem (buf, n, "timebase", 7);
-
- if (__glibc_likely (mhz != NULL))
- {
- char *endp = buf + n;
-
- /* Search for the beginning of the string. */
- while (mhz < endp && (*mhz < '0' || *mhz > '9') && *mhz != '\n')
- ++mhz;
-
- while (mhz < endp && *mhz != '\n')
- {
- if (*mhz >= '0' && *mhz <= '9')
- {
- result *= 10;
- result += *mhz - '0';
- }
-
- ++mhz;
- }
- }
- }
-#endif
-
- return result;
-}
diff --git a/sysdeps/unix/sysv/linux/powerpc/get_timebase_freq.c b/sysdeps/unix/sysv/linux/powerpc/get_timebase_freq.c
index 6435e1f315..29b6624b9a 100644
--- a/sysdeps/unix/sysv/linux/powerpc/get_timebase_freq.c
+++ b/sysdeps/unix/sysv/linux/powerpc/get_timebase_freq.c
@@ -1,5 +1,5 @@
/* Get the frequency of the time base.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,14 +14,99 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
+#include <string.h>
+
#include <libc-internal.h>
+#include <not-cancel.h>
+#include <libc-vdso.h>
+
+static uint64_t
+get_timebase_freq_fallback (void)
+{
+ hp_timing_t result = 0L;
+
+ /* We read the information from the /proc filesystem. /proc/cpuinfo
+ contains at least one line like:
+ timebase : 33333333
+ We search for this line and convert the number into an integer. */
+ int fd = __open_nocancel ("/proc/cpuinfo", O_RDONLY);
+ if (__glibc_unlikely (fd == -1))
+ return result;
+
+ /* The timebase will be in the 1st 1024 bytes for systems with up
+ to 8 processors. If the first read returns less then 1024
+ bytes read, we have the whole cpuinfo and can start the scan.
+ Otherwise we will have to read more to insure we have the
+ timebase value in the scan. */
+ char buf[1024];
+ ssize_t n;
+
+ n = __read_nocancel (fd, buf, sizeof (buf));
+ if (n == sizeof (buf))
+ {
+ /* We are here because the 1st read returned exactly sizeof
+ (buf) bytes. This implies that we are not at EOF and may
+ not have read the timebase value yet. So we need to read
+ more bytes until we know we have EOF. We copy the lower
+ half of buf to the upper half and read sizeof (buf)/2
+ bytes into the lower half of buf and repeat until we
+ reach EOF. We can assume that the timebase will be in
+ the last 512 bytes of cpuinfo, so two 512 byte half_bufs
+ will be sufficient to contain the timebase and will
+ handle the case where the timebase spans the half_buf
+ boundry. */
+ const ssize_t half_buf = sizeof (buf) / 2;
+ while (n >= half_buf)
+ {
+ memcpy (buf, buf + half_buf, half_buf);
+ n = __read_nocancel (fd, buf + half_buf, half_buf);
+ }
+ if (n >= 0)
+ n += half_buf;
+ }
+ __close_nocancel (fd);
+
+ if (__glibc_likely (n > 0))
+ {
+ char *mhz = memmem (buf, n, "timebase", 7);
+
+ if (__glibc_likely (mhz != NULL))
+ {
+ char *endp = buf + n;
+
+ /* Search for the beginning of the string. */
+ while (mhz < endp && (*mhz < '0' || *mhz > '9') && *mhz != '\n')
+ ++mhz;
+
+ while (mhz < endp && *mhz != '\n')
+ {
+ if (*mhz >= '0' && *mhz <= '9')
+ {
+ result *= 10;
+ result += *mhz - '0';
+ }
+
+ ++mhz;
+ }
+ }
+ }
+
+ return result;
+}
uint64_t
__get_timebase_freq (void)
{
- return (uint64_t) __get_clockfreq ();
+ /* The vDSO does not have a fallback mechanism (such calling a syscall). */
+ __typeof (VDSO_SYMBOL (get_tbfreq)) vdsop = VDSO_SYMBOL (get_tbfreq);
+ PTR_DEMANGLE (vdsop);
+ if (vdsop == NULL)
+ return get_timebase_freq_fallback ();
+
+ INTERNAL_SYSCALL_DECL (err);
+ return INTERNAL_VSYSCALL_CALL_TYPE (vdsop, err, uint64_t, 0);
}
weak_alias (__get_timebase_freq, __ppc_get_timebase_freq)
diff --git a/sysdeps/unix/sysv/linux/powerpc/getmsg.c b/sysdeps/unix/sysv/linux/powerpc/getmsg.c
deleted file mode 100644
index 3a1fa08525..0000000000
--- a/sysdeps/unix/sysv/linux/powerpc/getmsg.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/getmsg.c>
diff --git a/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c b/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c
index 994a926a87..18d8f7cb7a 100644
--- a/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c
+++ b/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -13,73 +13,42 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#if defined SHARED && !defined __powerpc64__
-# define __gettimeofday __redirect___gettimeofday
-#else
-# define __redirect___gettimeofday __gettimeofday
-#endif
-
-#include <sys/time.h>
-
-#ifdef SHARED
-
-# include <dl-vdso.h>
-# include <libc-vdso.h>
-# include <dl-machine.h>
+#include <time.h>
+#include <sysdep.h>
-# ifndef __powerpc64__
-# undef __gettimeofday
+#ifdef HAVE_GETTIMEOFDAY_VSYSCALL
+# define HAVE_VSYSCALL
+#endif
+#include <sysdep-vdso.h>
-int
-__gettimeofday_vsyscall (struct timeval *tv, struct timezone *tz)
+static int
+__gettimeofday_syscall (struct timeval *restrict tv, void *restrict tz)
{
+ if (__glibc_unlikely (tz != 0))
+ memset (tz, 0, sizeof *tz);
+
return INLINE_VSYSCALL (gettimeofday, 2, tv, tz);
}
-/* __GI___gettimeofday is defined as hidden and for ppc32 it enables the
- compiler make a local call (symbol@local) for internal GLIBC usage. It
- means the PLT won't be used and the ifunc resolver will be called directly.
- For ppc64 a call to a function in another translation unit might use a
- different toc pointer thus disallowing direct branchess and making internal
- ifuncs calls safe. */
-# undef libc_hidden_def
-# define libc_hidden_def(name) \
- __hidden_ver1 (__gettimeofday_vsyscall, __GI___gettimeofday, \
- __gettimeofday_vsyscall);
-
-# endif /* !__powerpc64__ */
-
-static int
-__gettimeofday_syscall (struct timeval *tv, struct timezone *tz)
-{
- return INLINE_SYSCALL (gettimeofday, 2, tv, tz);
-}
+#ifdef SHARED
+# include <dl-vdso.h>
+# include <libc-vdso.h>
-# define INIT_ARCH() \
- PREPARE_VERSION (linux2615, "LINUX_2.6.15", 123718565); \
- void *vdso_gettimeofday = _dl_vdso_vsym ("__kernel_gettimeofday", &linux2615);
+# define INIT_ARCH() \
+ void *vdso_gettimeofday = get_vdso_symbol (HAVE_GETTIMEOFDAY_VSYSCALL)
/* If the vDSO is not available we fall back syscall. */
-libc_ifunc_hidden (__redirect___gettimeofday, __gettimeofday,
- vdso_gettimeofday
- ? VDSO_IFUNC_RET (vdso_gettimeofday)
- : (void *) __gettimeofday_syscall);
-libc_hidden_def (__gettimeofday)
-
+libc_ifunc (__gettimeofday,
+ vdso_gettimeofday
+ ? VDSO_IFUNC_RET (vdso_gettimeofday)
+ : (void *) __gettimeofday_syscall);
#else
-
-# include <sysdep.h>
-# include <errno.h>
-
int
-__gettimeofday (struct timeval *tv, struct timezone *tz)
+__gettimeofday (struct timeval *restrict tv, void *restrict tz)
{
- return INLINE_SYSCALL (gettimeofday, 2, tv, tz);
+ return __gettimeofday_syscall (tv, tz);
}
-libc_hidden_def (__gettimeofday)
-
#endif
weak_alias (__gettimeofday, gettimeofday)
-libc_hidden_weak (gettimeofday)
diff --git a/sysdeps/unix/sysv/linux/powerpc/htm.h b/sysdeps/unix/sysv/linux/powerpc/htm.h
index 6fbb1187c1..f17d751013 100644
--- a/sysdeps/unix/sysv/linux/powerpc/htm.h
+++ b/sysdeps/unix/sysv/linux/powerpc/htm.h
@@ -2,7 +2,7 @@
compilers and assemblers that do not support the intrinsics and instructions
yet.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _HTM_H
#define _HTM_H 1
@@ -50,7 +50,7 @@
#else
-#include <endian.h>
+#include <bits/endian.h>
/* Official HTM intrinsics interface matching GCC, but works
on older GCC compatible compilers and binutils.
diff --git a/sysdeps/unix/sysv/linux/powerpc/init-first.c b/sysdeps/unix/sysv/linux/powerpc/init-first.c
index 0a4becbed6..92a4af83af 100644
--- a/sysdeps/unix/sysv/linux/powerpc/init-first.c
+++ b/sysdeps/unix/sysv/linux/powerpc/init-first.c
@@ -1,5 +1,5 @@
/* Initialization code run first thing by the ELF startup code. Linux/PowerPC.
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -14,55 +14,23 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#ifdef SHARED
-# include <dl-vdso.h>
-# include <libc-vdso.h>
-
-int (*VDSO_SYMBOL(gettimeofday)) (struct timeval *, void *)
- attribute_hidden;
-int (*VDSO_SYMBOL(clock_gettime)) (clockid_t, struct timespec *);
-int (*VDSO_SYMBOL(clock_getres)) (clockid_t, struct timespec *);
-unsigned long long (*VDSO_SYMBOL(get_tbfreq)) (void);
-int (*VDSO_SYMBOL(getcpu)) (unsigned *, unsigned *);
-time_t (*VDSO_SYMBOL(time)) (time_t *);
+#include <dl-vdso.h>
+#include <libc-vdso.h>
+unsigned long long (*VDSO_SYMBOL(get_tbfreq)) (void) attribute_hidden;
#if defined(__PPC64__) || defined(__powerpc64__)
-void *VDSO_SYMBOL(sigtramp_rt64);
+void *VDSO_SYMBOL(sigtramp_rt64) attribute_hidden;
#else
-void *VDSO_SYMBOL(sigtramp32);
-void *VDSO_SYMBOL(sigtramp_rt32);
+void *VDSO_SYMBOL(sigtramp32) attribute_hidden;
+void *VDSO_SYMBOL(sigtramp_rt32) attribute_hidden;
#endif
static inline void
-_libc_vdso_platform_setup (void)
+__libc_vdso_platform_setup_arch (void)
{
- PREPARE_VERSION (linux2615, "LINUX_2.6.15", 123718565);
-
- void *p = _dl_vdso_vsym ("__kernel_gettimeofday", &linux2615);
- PTR_MANGLE (p);
- VDSO_SYMBOL (gettimeofday) = p;
-
- p = _dl_vdso_vsym ("__kernel_clock_gettime", &linux2615);
- PTR_MANGLE (p);
- VDSO_SYMBOL (clock_gettime) = p;
-
- p = _dl_vdso_vsym ("__kernel_clock_getres", &linux2615);
- PTR_MANGLE (p);
- VDSO_SYMBOL (clock_getres) = p;
-
- p = _dl_vdso_vsym ("__kernel_get_tbfreq", &linux2615);
- PTR_MANGLE (p);
- VDSO_SYMBOL (get_tbfreq) = p;
-
- p = _dl_vdso_vsym ("__kernel_getcpu", &linux2615);
- PTR_MANGLE (p);
- VDSO_SYMBOL (getcpu) = p;
-
- p = _dl_vdso_vsym ("__kernel_time", &linux2615);
- PTR_MANGLE (p);
- VDSO_SYMBOL (time) = p;
+ VDSO_SYMBOL (get_tbfreq) = get_vdso_mangle_symbol (HAVE_GET_TBFREQ);
/* PPC64 uses only one signal trampoline symbol, while PPC32 will use
two depending if SA_SIGINFO is used (__kernel_sigtramp_rt32) or not
@@ -70,16 +38,13 @@ _libc_vdso_platform_setup (void)
There is no need to pointer mangle these symbol because they will
used only for pointer comparison. */
#if defined(__PPC64__) || defined(__powerpc64__)
- VDSO_SYMBOL(sigtramp_rt64) = _dl_vdso_vsym ("__kernel_sigtramp_rt64",
- &linux2615);
+ VDSO_SYMBOL(sigtramp_rt64) = get_vdso_symbol (HAVE_SIGTRAMP_RT64);
#else
- VDSO_SYMBOL(sigtramp32) = _dl_vdso_vsym ("__kernel_sigtramp32", &linux2615);
- VDSO_SYMBOL(sigtramp_rt32) = _dl_vdso_vsym ("__kernel_sigtramp_rt32",
- &linux2615);
+ VDSO_SYMBOL(sigtramp32) = get_vdso_symbol (HAVE_SIGTRAMP_32);
+ VDSO_SYMBOL(sigtramp_rt32) = get_vdso_symbol (HAVE_SIGTRAMP_RT32);
#endif
}
-# define VDSO_SETUP _libc_vdso_platform_setup
-#endif
+#define VDSO_SETUP_ARCH __libc_vdso_platform_setup_arch
-#include <csu/init-first.c>
+#include <sysdeps/unix/sysv/linux/init-first.c>
diff --git a/sysdeps/unix/sysv/linux/powerpc/ioctl.c b/sysdeps/unix/sysv/linux/powerpc/ioctl.c
index 60cba4666e..a97acb63f6 100644
--- a/sysdeps/unix/sysv/linux/powerpc/ioctl.c
+++ b/sysdeps/unix/sysv/linux/powerpc/ioctl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdarg.h>
#include <termios.h>
diff --git a/sysdeps/unix/sysv/linux/powerpc/ipc_priv.h b/sysdeps/unix/sysv/linux/powerpc/ipc_priv.h
index 6231e46721..3d59257771 100644
--- a/sysdeps/unix/sysv/linux/powerpc/ipc_priv.h
+++ b/sysdeps/unix/sysv/linux/powerpc/ipc_priv.h
@@ -1,5 +1,5 @@
/* Old SysV permission definition for Linux. PowerPC version.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,26 +14,8 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#include <sys/ipc.h> /* For __key_t */
-
-#define __IPC_64 0x100
-
-struct __old_ipc_perm
-{
- __key_t __key; /* Key. */
- unsigned int uid; /* Owner's user ID. */
- unsigned int gid; /* Owner's group ID. */
- unsigned int cuid; /* Creator's user ID. */
- unsigned int cgid; /* Creator's group ID. */
- unsigned int mode; /* Read/write permission. */
- unsigned short int __seq; /* Sequence number. */
-};
-
-#define SEMCTL_ARG_ADDRESS(__arg) &__arg.array
-
-#define MSGRCV_ARGS(__msgp, __msgtyp) \
- ((long int []){ (long int) __msgp, __msgtyp })
-
-#include <ipc_ops.h>
+#define __OLD_IPC_ID_TYPE unsigned int
+#define __OLD_IPC_MODE_TYPE unsigned int
+#include <sysdeps/unix/sysv/linux/ipc_priv.h>
diff --git a/sysdeps/unix/sysv/linux/powerpc/kernel-features.h b/sysdeps/unix/sysv/linux/powerpc/kernel-features.h
index 503f562d76..96a2c4b2aa 100644
--- a/sysdeps/unix/sysv/linux/powerpc/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/powerpc/kernel-features.h
@@ -1,6 +1,6 @@
/* Set flags signalling availability of kernel features based on given
kernel version number. PowerPC version.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -15,10 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-/* PowerPC uses socketcall. */
-#define __ASSUME_SOCKETCALL 1
+ <https://www.gnu.org/licenses/>. */
/* New syscalls added for PowerPC in 2.6.37. */
#define __ASSUME_SOCKET_SYSCALL 1
@@ -47,8 +44,11 @@
#include_next <kernel-features.h>
-/* powerpc only supports ipc syscall. */
-#undef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
+/* powerpc only supports ipc syscall before 5.1. */
+#if __LINUX_KERNEL_VERSION < 0x050100
+# undef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
+# undef __ASSUME_SYSVIPC_DEFAULT_IPC_64
+#endif
#undef __ASSUME_CLONE_DEFAULT
#define __ASSUME_CLONE_BACKWARDS 1
diff --git a/sysdeps/unix/sysv/linux/powerpc/kernel_sigaction.h b/sysdeps/unix/sysv/linux/powerpc/kernel_sigaction.h
index aef3d5a3b3..bac03ee45d 100644
--- a/sysdeps/unix/sysv/linux/powerpc/kernel_sigaction.h
+++ b/sysdeps/unix/sysv/linux/powerpc/kernel_sigaction.h
@@ -1,9 +1,10 @@
/* powerpc kernel sigaction is similar to generic Linux UAPI one,
but the architecture also defines SA_RESTORER. */
#define SA_RESTORER 0x04000000
-#include <sysdeps/unix/sysv/linux/kernel_sigaction.h>
#define SET_SA_RESTORER(kact, act) \
(kact)->sa_restorer = (act)->sa_restorer
#define RESET_SA_RESTORER(act, kact) \
(act)->sa_restorer = (kact)->sa_restorer
+
+#include <sysdeps/unix/sysv/linux/kernel_sigaction.h>
diff --git a/sysdeps/unix/sysv/linux/powerpc/kernel_termios.h b/sysdeps/unix/sysv/linux/powerpc/kernel_termios.h
index 8d76e0ae80..4a18a4f1b4 100644
--- a/sysdeps/unix/sysv/linux/powerpc/kernel_termios.h
+++ b/sysdeps/unix/sysv/linux/powerpc/kernel_termios.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _KERNEL_TERMIOS_H
#define _KERNEL_TERMIOS_H 1
diff --git a/sysdeps/unix/sysv/linux/powerpc/ldconfig.h b/sysdeps/unix/sysv/linux/powerpc/ldconfig.h
index beca87e9f2..0cb531f94e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/ldconfig.h
+++ b/sysdeps/unix/sysv/linux/powerpc/ldconfig.h
@@ -1,5 +1,5 @@
/* ldconfig default paths and libraries. Linux/PowerPC version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/generic/ldconfig.h>
diff --git a/sysdeps/unix/sysv/linux/powerpc/ldsodefs.h b/sysdeps/unix/sysv/linux/powerpc/ldsodefs.h
index 118398bc10..c9783fdf8b 100644
--- a/sysdeps/unix/sysv/linux/powerpc/ldsodefs.h
+++ b/sysdeps/unix/sysv/linux/powerpc/ldsodefs.h
@@ -1,6 +1,6 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
PowerPC version.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LDSODEFS_H
diff --git a/sysdeps/unix/sysv/linux/powerpc/libc-start.c b/sysdeps/unix/sysv/linux/powerpc/libc-start.c
index f2ad0c355d..a659a9144f 100644
--- a/sysdeps/unix/sysv/linux/powerpc/libc-start.c
+++ b/sysdeps/unix/sysv/linux/powerpc/libc-start.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include <unistd.h>
diff --git a/sysdeps/unix/sysv/linux/powerpc/libc-start.h b/sysdeps/unix/sysv/linux/powerpc/libc-start.h
index 689abb01a1..f925ffce12 100644
--- a/sysdeps/unix/sysv/linux/powerpc/libc-start.h
+++ b/sysdeps/unix/sysv/linux/powerpc/libc-start.h
@@ -1,5 +1,5 @@
/* PowerPC definitions for libc main startup.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LIBC_START_H
#define _LIBC_START_H
diff --git a/sysdeps/unix/sysv/linux/powerpc/libc-vdso.h b/sysdeps/unix/sysv/linux/powerpc/libc-vdso.h
index 5fe817d6cb..cb7da3b289 100644
--- a/sysdeps/unix/sysv/linux/powerpc/libc-vdso.h
+++ b/sysdeps/unix/sysv/linux/powerpc/libc-vdso.h
@@ -1,5 +1,5 @@
/* Resolve function pointers to VDSO functions.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,32 +14,17 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#ifndef _LIBC_VDSO_H
-#define _LIBC_VDSO_H
-
-#ifdef SHARED
+#ifndef _LIBC_POWERPC_VDSO_H
+#define _LIBC_POWERPC_VDSO_H
+#include <sysdep.h>
#include <sysdep-vdso.h>
-extern int (*VDSO_SYMBOL(gettimeofday)) (struct timeval *, void *)
- attribute_hidden;
-extern int (*VDSO_SYMBOL(clock_gettime)) (clockid_t, struct timespec *);
-extern int (*VDSO_SYMBOL(clock_getres)) (clockid_t, struct timespec *);
-extern unsigned long long (*VDSO_SYMBOL(get_tbfreq)) (void);
-extern int (*VDSO_SYMBOL(getcpu)) (unsigned *, unsigned *);
-extern time_t (*VDSO_SYMBOL(time)) (time_t *);
-
-#if defined(__PPC64__) || defined(__powerpc64__)
-extern void *VDSO_SYMBOL(sigtramp_rt64);
-#else
-extern void *VDSO_SYMBOL(sigtramp32);
-extern void *VDSO_SYMBOL(sigtramp_rt32);
-#endif
-
#if (defined(__PPC64__) || defined(__powerpc64__)) && _CALL_ELF != 2
+# include <dl-machine.h>
/* The correct solution is for _dl_vdso_vsym to return the address of the OPD
for the kernel VDSO function. That address would then be stored in the
__vdso_* variables and returned as the result of the IFUNC resolver function.
@@ -58,7 +43,7 @@ extern void *VDSO_SYMBOL(sigtramp_rt32);
are processed immediately at startup the resolver functions and this code need
not be thread-safe, but if the caller writes to a PLT slot it must do so in a
thread-safe manner with all the required barriers. */
-#define VDSO_IFUNC_RET(value) \
+# define VDSO_IFUNC_RET(value) \
({ \
static Elf64_FuncDesc vdso_opd = { .fd_toc = ~0x0 }; \
vdso_opd.fd_func = (Elf64_Addr)value; \
@@ -66,9 +51,17 @@ extern void *VDSO_SYMBOL(sigtramp_rt32);
})
#else
-#define VDSO_IFUNC_RET(value) ((void *) (value))
+# define VDSO_IFUNC_RET(value) ((void *) (value))
#endif
+#include_next <libc-vdso.h>
+
+extern unsigned long long (*VDSO_SYMBOL(get_tbfreq)) (void);
+#if defined(__PPC64__) || defined(__powerpc64__)
+extern void *VDSO_SYMBOL(sigtramp_rt64);
+#else
+extern void *VDSO_SYMBOL(sigtramp32);
+extern void *VDSO_SYMBOL(sigtramp_rt32);
#endif
#endif /* _LIBC_VDSO_H */
diff --git a/sysdeps/unix/sysv/linux/powerpc/lowlevellock.h b/sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
index 8dea247cf9..5940a774d9 100644
--- a/sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
+++ b/sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
@@ -1,5 +1,5 @@
/* PowerPC specific lock definitions.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _POWERPC_LOWLEVELLOCK_H
#define _POWERPC_LOWLEVELLOCK_H 1
@@ -22,12 +22,13 @@
#include <sysdeps/nptl/lowlevellock.h>
/* Transactional lock elision definitions. */
-extern int __lll_timedlock_elision
- (int *futex, short *adapt_count, const struct timespec *timeout, int private)
+extern int __lll_clocklock_elision
+ (int *futex, short *adapt_count,
+ clockid_t clockid, const struct timespec *timeout, int private)
attribute_hidden;
-#define lll_timedlock_elision(futex, adapt_count, timeout, private) \
- __lll_timedlock_elision(&(futex), &(adapt_count), timeout, private)
+#define lll_clocklock_elision(futex, adapt_count, clockid, timeout, private) \
+ __lll_clocklock_elision (&(futex), &(adapt_count), clockid, timeout, private)
extern int __lll_lock_elision (int *futex, short *adapt_count, int private)
attribute_hidden;
diff --git a/sysdeps/unix/sysv/linux/powerpc/not-errno.h b/sysdeps/unix/sysv/linux/powerpc/not-errno.h
deleted file mode 100644
index 27da21bdf1..0000000000
--- a/sysdeps/unix/sysv/linux/powerpc/not-errno.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Syscall wrapper that do not set errno. Linux powerpc version.
- Copyright (C) 2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-/* __access_noerrno is used during process initialization in elf/dl-tunables.c
- before the TCB is initialized, prohibiting the usage of
- ABORT_TRANSACTION. */
-#undef ABORT_TRANSACTION
-#define ABORT_TRANSACTION
-
-#include "sysdeps/unix/sysv/linux/not-errno.h"
-
-/* Recover ABORT_TRANSACTION's previous value, in order to not affect
- other syscalls. */
-#undef ABORT_TRANSACTION
-#define ABORT_TRANSACTION ABORT_TRANSACTION_IMPL
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/____longjmp_chk.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/____longjmp_chk.S
index 011bf0f1a7..ba391a5170 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/____longjmp_chk.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/____longjmp_chk.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <rtld-global-offsets.h>
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/brk.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/brk.S
index 2dc11845cb..2c99fb91bf 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/brk.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/brk.S
@@ -1,5 +1,5 @@
/* brk system call for Linux/ppc.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#define _ERRNO_H 1
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S
index 7a05c280f2..58e2da1e61 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S
@@ -1,5 +1,5 @@
/* Wrapper around clone system call.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#define _ERRNO_H 1
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nofpu/Implies b/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nofpu/Implies
deleted file mode 100644
index aab22f212c..0000000000
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nofpu/Implies
+++ /dev/null
@@ -1,2 +0,0 @@
-powerpc/powerpc32/e500/nofpu
-powerpc/nofpu
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_mask.c b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_mask.c
index bc1180b8cc..49c64d1afc 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_mask.c
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_mask.c
@@ -1,5 +1,5 @@
/* Procedure definition for FE_MASK_ENV for Linux/ppc.
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <errno.h>
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c
index 010b87236b..b37d9ad5f1 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c
@@ -1,5 +1,5 @@
/* Procedure definition for FE_NOMASK_ENV for Linux/ppc.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv_libc.h>
#include <errno.h>
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 45839ed25b..1e8ff6f83e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -1830,6 +1830,11 @@ GLIBC_2.2 __xstat64 F
GLIBC_2.2 _flushlbf F
GLIBC_2.2 _res_hconf D 0x30
GLIBC_2.2 bind_textdomain_codeset F
+GLIBC_2.2 clock_getcpuclockid F
+GLIBC_2.2 clock_getres F
+GLIBC_2.2 clock_gettime F
+GLIBC_2.2 clock_nanosleep F
+GLIBC_2.2 clock_settime F
GLIBC_2.2 dcngettext F
GLIBC_2.2 dngettext F
GLIBC_2.2 fgetpos F
@@ -1993,6 +1998,9 @@ GLIBC_2.28 thrd_current F
GLIBC_2.28 thrd_equal F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
+GLIBC_2.29 getcpu F
+GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
+GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
GLIBC_2.3 __ctype_b_loc F
GLIBC_2.3 __ctype_tolower_loc F
GLIBC_2.3 __ctype_toupper_loc F
@@ -2161,6 +2169,22 @@ GLIBC_2.3.4 siglongjmp F
GLIBC_2.3.4 swapcontext F
GLIBC_2.3.4 xdr_quad_t F
GLIBC_2.3.4 xdr_u_quad_t F
+GLIBC_2.30 __nldbl_argp_error F
+GLIBC_2.30 __nldbl_argp_failure F
+GLIBC_2.30 __nldbl_err F
+GLIBC_2.30 __nldbl_error F
+GLIBC_2.30 __nldbl_error_at_line F
+GLIBC_2.30 __nldbl_errx F
+GLIBC_2.30 __nldbl_verr F
+GLIBC_2.30 __nldbl_verrx F
+GLIBC_2.30 __nldbl_vwarn F
+GLIBC_2.30 __nldbl_vwarnx F
+GLIBC_2.30 __nldbl_warn F
+GLIBC_2.30 __nldbl_warnx F
+GLIBC_2.30 getdents64 F
+GLIBC_2.30 gettid F
+GLIBC_2.30 tgkill F
+GLIBC_2.30 twalk_r F
GLIBC_2.4 _IO_fprintf F
GLIBC_2.4 _IO_printf F
GLIBC_2.4 _IO_sprintf F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
index 511b24b764..3fab31ff9c 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
@@ -810,6 +810,23 @@ GLIBC_2.28 fmul F
GLIBC_2.28 fmull F
GLIBC_2.28 fsub F
GLIBC_2.28 fsubl F
+GLIBC_2.29 exp F
+GLIBC_2.29 exp2 F
+GLIBC_2.29 log F
+GLIBC_2.29 log2 F
+GLIBC_2.29 pow F
+GLIBC_2.31 totalorder F
+GLIBC_2.31 totalorderf F
+GLIBC_2.31 totalorderf32 F
+GLIBC_2.31 totalorderf32x F
+GLIBC_2.31 totalorderf64 F
+GLIBC_2.31 totalorderl F
+GLIBC_2.31 totalordermag F
+GLIBC_2.31 totalordermagf F
+GLIBC_2.31 totalordermagf32 F
+GLIBC_2.31 totalordermagf32x F
+GLIBC_2.31 totalordermagf64 F
+GLIBC_2.31 totalordermagl F
GLIBC_2.4 __clog10l F
GLIBC_2.4 __finitel F
GLIBC_2.4 __fpclassifyl F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext-common.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext-common.S
index 207dc90db0..1ed811955c 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext-common.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext-common.S
@@ -1,5 +1,5 @@
/* Save current context, powerpc32 common.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This is the common implementation of getcontext for powerpc32.
It not complete in itself should be included in to a framework that
@@ -262,10 +262,6 @@ ENTRY(__CONTEXT_FUNC_NAME)
# endif
#endif
-#ifdef __CONTEXT_ENABLE_E500
- getcontext_e500
-#endif
-
/* We need to set up parms and call sigprocmask which will clobber
volatile registers. So before the call we need to retrieve the
original ucontext ptr (parm1) from stack and store the UC_REGS_PTR
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S
index adb3ec464e..ac13980c79 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S
@@ -1,5 +1,5 @@
/* Save current context.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <rtld-global-offsets.h>
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/kernel_stat.h b/sysdeps/unix/sysv/linux/powerpc/powerpc32/kernel_stat.h
index 5829f9a610..571ff4b4a2 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/kernel_stat.h
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/kernel_stat.h
@@ -1,5 +1,5 @@
/* Definition of `struct stat' used in the kernel.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
struct kernel_stat
{
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
index 09e8447b06..88d6d732a7 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
@@ -42,20 +42,11 @@ GLIBC_2.0 funlockfile F
GLIBC_2.0 longjmp F
GLIBC_2.0 lseek F
GLIBC_2.0 msync F
-GLIBC_2.0 nanosleep F
GLIBC_2.0 open F
GLIBC_2.0 pause F
GLIBC_2.0 pthread_atfork F
-GLIBC_2.0 pthread_attr_destroy F
-GLIBC_2.0 pthread_attr_getdetachstate F
-GLIBC_2.0 pthread_attr_getinheritsched F
-GLIBC_2.0 pthread_attr_getschedparam F
GLIBC_2.0 pthread_attr_getschedpolicy F
GLIBC_2.0 pthread_attr_getscope F
-GLIBC_2.0 pthread_attr_init F
-GLIBC_2.0 pthread_attr_setdetachstate F
-GLIBC_2.0 pthread_attr_setinheritsched F
-GLIBC_2.0 pthread_attr_setschedparam F
GLIBC_2.0 pthread_attr_setschedpolicy F
GLIBC_2.0 pthread_attr_setscope F
GLIBC_2.0 pthread_cancel F
@@ -69,7 +60,6 @@ GLIBC_2.0 pthread_condattr_destroy F
GLIBC_2.0 pthread_condattr_init F
GLIBC_2.0 pthread_create F
GLIBC_2.0 pthread_detach F
-GLIBC_2.0 pthread_equal F
GLIBC_2.0 pthread_exit F
GLIBC_2.0 pthread_getschedparam F
GLIBC_2.0 pthread_getspecific F
@@ -88,7 +78,6 @@ GLIBC_2.0 pthread_mutexattr_getkind_np F
GLIBC_2.0 pthread_mutexattr_init F
GLIBC_2.0 pthread_mutexattr_setkind_np F
GLIBC_2.0 pthread_once F
-GLIBC_2.0 pthread_self F
GLIBC_2.0 pthread_setcancelstate F
GLIBC_2.0 pthread_setcanceltype F
GLIBC_2.0 pthread_setschedparam F
@@ -114,7 +103,6 @@ GLIBC_2.0 siglongjmp F
GLIBC_2.0 sigwait F
GLIBC_2.0 system F
GLIBC_2.0 tcdrain F
-GLIBC_2.0 vfork F
GLIBC_2.0 wait F
GLIBC_2.0 waitpid F
GLIBC_2.0 write F
@@ -124,7 +112,6 @@ GLIBC_2.1 __libc_current_sigrtmin F
GLIBC_2.1 pthread_attr_getguardsize F
GLIBC_2.1 pthread_attr_getstackaddr F
GLIBC_2.1 pthread_attr_getstacksize F
-GLIBC_2.1 pthread_attr_init F
GLIBC_2.1 pthread_attr_setguardsize F
GLIBC_2.1 pthread_attr_setstackaddr F
GLIBC_2.1 pthread_attr_setstacksize F
@@ -155,7 +142,7 @@ GLIBC_2.1 sem_wait F
GLIBC_2.1.1 sem_close F
GLIBC_2.1.1 sem_open F
GLIBC_2.1.1 sem_unlink F
-GLIBC_2.1.2 __vfork F
+GLIBC_2.1.2 __libpthread_version_placeholder F
GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 pthread_getname_np F
GLIBC_2.12 pthread_mutex_consistent F
@@ -205,7 +192,7 @@ GLIBC_2.2 pwrite F
GLIBC_2.2 pwrite64 F
GLIBC_2.2 sem_timedwait F
GLIBC_2.2.3 pthread_getattr_np F
-GLIBC_2.2.6 __nanosleep F
+GLIBC_2.2.6 __libpthread_version_placeholder F
GLIBC_2.28 call_once F
GLIBC_2.28 cnd_broadcast F
GLIBC_2.28 cnd_destroy F
@@ -255,6 +242,12 @@ GLIBC_2.3.4 pthread_getaffinity_np F
GLIBC_2.3.4 pthread_setaffinity_np F
GLIBC_2.3.4 pthread_setschedprio F
GLIBC_2.3.4 siglongjmp F
+GLIBC_2.30 pthread_cond_clockwait F
+GLIBC_2.30 pthread_mutex_clocklock F
+GLIBC_2.30 pthread_rwlock_clockrdlock F
+GLIBC_2.30 pthread_rwlock_clockwrlock F
+GLIBC_2.30 sem_clockwait F
+GLIBC_2.31 pthread_clockjoin_np F
GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 pthread_mutex_getprioceiling F
GLIBC_2.4 pthread_mutex_setprioceiling F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
index 595f1b712a..bb03781dcc 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
@@ -15,11 +15,6 @@ GLIBC_2.1 aio_write F
GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
GLIBC_2.1 lio_listio64 F
-GLIBC_2.2 clock_getcpuclockid F
-GLIBC_2.2 clock_getres F
-GLIBC_2.2 clock_gettime F
-GLIBC_2.2 clock_nanosleep F
-GLIBC_2.2 clock_settime F
GLIBC_2.2 shm_open F
GLIBC_2.2 shm_unlink F
GLIBC_2.2 timer_create F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/lockf64.c b/sysdeps/unix/sysv/linux/powerpc/powerpc32/lockf64.c
deleted file mode 100644
index a88f5a784a..0000000000
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/lockf64.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/lockf64.c>
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S
index f958616d73..6460dc43b2 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S
@@ -1,5 +1,5 @@
/* Set up a context to call a function.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <shlib-compat.h>
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/context-e500.h b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/context-e500.h
deleted file mode 100644
index f1357fa011..0000000000
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/context-e500.h
+++ /dev/null
@@ -1,144 +0,0 @@
-/* getcontext/setcontext/makecontext support for e500 high parts of registers.
- Copyright (C) 2006-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _CONTEXT_E500_H
-#define _CONTEXT_E500_H 1
-
-#if defined __SPE__ || (defined __NO_FPRS__ && !defined _SOFT_FLOAT)
-
-# define __CONTEXT_ENABLE_E500 1
-
-/* We follow the kernel's layout, which saves the high parts of the
- SPE registers in the vregs area, immediately followed by the ACC
- value (call-clobbered, not handled here) and the SPEFSCR value. */
-
-.macro getcontext_e500
- la r10,(_UC_VREGS)(r3)
- evstwwe r0,(0*4)(r10)
- evstwwe r1,(1*4)(r10)
- evstwwe r2,(2*4)(r10)
- evstwwe r3,(3*4)(r10)
- evstwwe r4,(4*4)(r10)
- evstwwe r5,(5*4)(r10)
- evstwwe r6,(6*4)(r10)
- evstwwe r7,(7*4)(r10)
- evstwwe r8,(8*4)(r10)
- evstwwe r9,(9*4)(r10)
- evstwwe r10,(10*4)(r10)
- evstwwe r11,(11*4)(r10)
- evstwwe r12,(12*4)(r10)
- evstwwe r13,(13*4)(r10)
- evstwwe r14,(14*4)(r10)
- evstwwe r15,(15*4)(r10)
- evstwwe r16,(16*4)(r10)
- evstwwe r17,(17*4)(r10)
- evstwwe r18,(18*4)(r10)
- evstwwe r19,(19*4)(r10)
- evstwwe r20,(20*4)(r10)
- evstwwe r21,(21*4)(r10)
- evstwwe r22,(22*4)(r10)
- evstwwe r23,(23*4)(r10)
- evstwwe r24,(24*4)(r10)
- evstwwe r25,(25*4)(r10)
- evstwwe r26,(26*4)(r10)
- evstwwe r27,(27*4)(r10)
- evstwwe r28,(28*4)(r10)
- evstwwe r29,(29*4)(r10)
- evstwwe r30,(30*4)(r10)
- evstwwe r31,(31*4)(r10)
- mfspefscr r9
- stw r9,(34*4)(r10)
-.endm
-
-.macro setcontext_e500
- lwz r3,_UC_VREGS+(0*4)(r31)
- evmergelo r0,r3,r0
- lwz r3,_UC_VREGS+(1*4)(r31)
- evmergelo r1,r3,r1
- lwz r3,_UC_VREGS+(2*4)(r31)
- evmergelo r2,r3,r2
- lwz r3,_UC_VREGS+(1*4)(r31)
- evmergelo r1,r3,r1
- lwz r3,_UC_VREGS+(2*4)(r31)
- evmergelo r2,r3,r2
- lwz r3,_UC_VREGS+(3*4)(r31)
- evmergelo r3,r3,r3
- lwz r3,_UC_VREGS+(4*4)(r31)
- evmergelo r4,r3,r4
- lwz r3,_UC_VREGS+(5*4)(r31)
- evmergelo r5,r3,r5
- lwz r3,_UC_VREGS+(6*4)(r31)
- evmergelo r6,r3,r6
- lwz r3,_UC_VREGS+(7*4)(r31)
- evmergelo r7,r3,r7
- lwz r3,_UC_VREGS+(8*4)(r31)
- evmergelo r8,r3,r8
- lwz r3,_UC_VREGS+(9*4)(r31)
- evmergelo r9,r3,r9
- lwz r3,_UC_VREGS+(10*4)(r31)
- evmergelo r10,r3,r10
- lwz r3,_UC_VREGS+(11*4)(r31)
- evmergelo r11,r3,r11
- lwz r3,_UC_VREGS+(12*4)(r31)
- evmergelo r12,r3,r12
- lwz r3,_UC_VREGS+(13*4)(r31)
- evmergelo r13,r3,r13
- lwz r3,_UC_VREGS+(14*4)(r31)
- evmergelo r14,r3,r14
- lwz r3,_UC_VREGS+(15*4)(r31)
- evmergelo r15,r3,r15
- lwz r3,_UC_VREGS+(16*4)(r31)
- evmergelo r16,r3,r16
- lwz r3,_UC_VREGS+(17*4)(r31)
- evmergelo r17,r3,r17
- lwz r3,_UC_VREGS+(18*4)(r31)
- evmergelo r18,r3,r18
- lwz r3,_UC_VREGS+(19*4)(r31)
- evmergelo r19,r3,r19
- lwz r3,_UC_VREGS+(20*4)(r31)
- evmergelo r20,r3,r20
- lwz r3,_UC_VREGS+(21*4)(r31)
- evmergelo r21,r3,r21
- lwz r3,_UC_VREGS+(22*4)(r31)
- evmergelo r22,r3,r22
- lwz r3,_UC_VREGS+(23*4)(r31)
- evmergelo r23,r3,r23
- lwz r3,_UC_VREGS+(24*4)(r31)
- evmergelo r24,r3,r24
- lwz r3,_UC_VREGS+(25*4)(r31)
- evmergelo r25,r3,r25
- lwz r3,_UC_VREGS+(26*4)(r31)
- evmergelo r26,r3,r26
- lwz r3,_UC_VREGS+(27*4)(r31)
- evmergelo r27,r3,r27
- lwz r3,_UC_VREGS+(28*4)(r31)
- evmergelo r28,r3,r28
- lwz r3,_UC_VREGS+(29*4)(r31)
- evmergelo r29,r3,r29
- lwz r3,_UC_VREGS+(30*4)(r31)
- evmergelo r30,r3,r30
- lwz r3,_UC_VREGS+(31*4)(r31)
- evmergelo r31,r3,r31
- lwz r3,_UC_VREGS+(34*4)(r31)
- mtspefscr r3
-.endm
-#else
-# undef __CONTEXT_ENABLE_E500
-#endif
-
-#endif /* context-e500.h */
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/getcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/getcontext.S
index ca90ae15e0..34eb2b8e60 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/getcontext.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/getcontext.S
@@ -1,5 +1,5 @@
/* Save current context.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <rtld-global-offsets.h>
@@ -24,8 +24,6 @@
#include <asm/ptrace.h>
#include "ucontext_i.h"
-#include <context-e500.h>
-
#define __CONTEXT_FUNC_NAME __getcontext
#undef __CONTEXT_ENABLE_FPRS
#undef __CONTEXT_ENABLE_VRS
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 344e5ae87c..b5a0751d90 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -1834,6 +1834,11 @@ GLIBC_2.2 __xstat64 F
GLIBC_2.2 _flushlbf F
GLIBC_2.2 _res_hconf D 0x30
GLIBC_2.2 bind_textdomain_codeset F
+GLIBC_2.2 clock_getcpuclockid F
+GLIBC_2.2 clock_getres F
+GLIBC_2.2 clock_gettime F
+GLIBC_2.2 clock_nanosleep F
+GLIBC_2.2 clock_settime F
GLIBC_2.2 dcngettext F
GLIBC_2.2 dngettext F
GLIBC_2.2 fgetpos F
@@ -1997,6 +2002,9 @@ GLIBC_2.28 thrd_current F
GLIBC_2.28 thrd_equal F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
+GLIBC_2.29 getcpu F
+GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
+GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
GLIBC_2.3 __ctype_b_loc F
GLIBC_2.3 __ctype_tolower_loc F
GLIBC_2.3 __ctype_toupper_loc F
@@ -2194,6 +2202,22 @@ GLIBC_2.3.4 siglongjmp F
GLIBC_2.3.4 swapcontext F
GLIBC_2.3.4 xdr_quad_t F
GLIBC_2.3.4 xdr_u_quad_t F
+GLIBC_2.30 __nldbl_argp_error F
+GLIBC_2.30 __nldbl_argp_failure F
+GLIBC_2.30 __nldbl_err F
+GLIBC_2.30 __nldbl_error F
+GLIBC_2.30 __nldbl_error_at_line F
+GLIBC_2.30 __nldbl_errx F
+GLIBC_2.30 __nldbl_verr F
+GLIBC_2.30 __nldbl_verrx F
+GLIBC_2.30 __nldbl_vwarn F
+GLIBC_2.30 __nldbl_vwarnx F
+GLIBC_2.30 __nldbl_warn F
+GLIBC_2.30 __nldbl_warnx F
+GLIBC_2.30 getdents64 F
+GLIBC_2.30 gettid F
+GLIBC_2.30 tgkill F
+GLIBC_2.30 twalk_r F
GLIBC_2.4 _IO_fprintf F
GLIBC_2.4 _IO_printf F
GLIBC_2.4 _IO_sprintf F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
index a6e4e4edaa..b90d28a8fe 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
@@ -809,6 +809,23 @@ GLIBC_2.28 fmul F
GLIBC_2.28 fmull F
GLIBC_2.28 fsub F
GLIBC_2.28 fsubl F
+GLIBC_2.29 exp F
+GLIBC_2.29 exp2 F
+GLIBC_2.29 log F
+GLIBC_2.29 log2 F
+GLIBC_2.29 pow F
+GLIBC_2.31 totalorder F
+GLIBC_2.31 totalorderf F
+GLIBC_2.31 totalorderf32 F
+GLIBC_2.31 totalorderf32x F
+GLIBC_2.31 totalorderf64 F
+GLIBC_2.31 totalorderl F
+GLIBC_2.31 totalordermag F
+GLIBC_2.31 totalordermagf F
+GLIBC_2.31 totalordermagf32 F
+GLIBC_2.31 totalordermagf32x F
+GLIBC_2.31 totalordermagf64 F
+GLIBC_2.31 totalordermagl F
GLIBC_2.4 __clog10l F
GLIBC_2.4 __finitel F
GLIBC_2.4 __fpclassifyl F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/localplt.data b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/localplt.data
index fead931d4e..647e735fdf 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/localplt.data
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/localplt.data
@@ -31,6 +31,7 @@ libc.so: calloc
libc.so: free
libc.so: malloc
libc.so: memalign
+libc.so: memset ?
libc.so: realloc
libm.so: copysignl ?
libm.so: fabsl
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/setcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/setcontext.S
index 0fbb7a814e..de0f823c92 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/setcontext.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/setcontext.S
@@ -1,5 +1,5 @@
/* Jump to a new context.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <rtld-global-offsets.h>
@@ -24,8 +24,6 @@
#include <asm/ptrace.h>
#include "ucontext_i.h"
-#include <context-e500.h>
-
#define __CONTEXT_FUNC_NAME __setcontext
#undef __CONTEXT_ENABLE_FPRS
#undef __CONTEXT_ENABLE_VRS
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/swapcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/swapcontext.S
index c2302c8f58..6fcd96d4aa 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/swapcontext.S
@@ -1,5 +1,5 @@
/* Save current context and jump to a new context.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <rtld-global-offsets.h>
@@ -24,8 +24,6 @@
#include <asm/ptrace.h>
#include "ucontext_i.h"
-#include <context-e500.h>
-
#define __CONTEXT_FUNC_NAME __swapcontext
#undef __CONTEXT_ENABLE_FPRS
#undef __CONTEXT_ENABLE_VRS
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S
index cc84e0bc45..04e9bb190c 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S
@@ -1,5 +1,5 @@
/* Jump to a new context powerpc32 common.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This is the common implementation of setcontext for powerpc32.
It not complete in itself should be included in to a framework that
@@ -47,21 +47,6 @@ ENTRY(__CONTEXT_FUNC_NAME)
cfi_offset(r31,-4)
lwz r31,_UC_REGS_PTR(r3)
- /*
- * If this ucontext refers to the point where we were interrupted
- * by a signal, we have to use the rt_sigreturn system call to
- * return to the context so we get both LR and CTR restored.
- *
- * Otherwise, the context we are restoring is either just after
- * a procedure call (getcontext/swapcontext) or at the beginning
- * of a procedure call (makecontext), so we don't need to restore
- * r0, xer, ctr. We don't restore r2 since it will be used as
- * the TLS pointer.
- */
- lwz r0,_UC_GREGS+(PT_MSR*4)(r31)
- cmpwi r0,0
- bne 4f /* L(do_sigret) */
-
/* Restore the signal mask */
li r5,0
addi r4,r3,_UC_SIGMASK
@@ -243,10 +228,6 @@ ENTRY(__CONTEXT_FUNC_NAME)
lfd fp31,_UC_FREGS+(31*8)(r31)
#endif /* __CONTEXT_ENABLE_FPRS */
-#ifdef __CONTEXT_ENABLE_E500
- setcontext_e500
-#endif
-
/* Restore LR and CCR, and set CTR to the NIP value */
lwz r3,_UC_GREGS+(PT_LNK*4)(r31)
lwz r4,_UC_GREGS+(PT_NIP*4)(r31)
@@ -296,11 +277,4 @@ ENTRY(__CONTEXT_FUNC_NAME)
mtlr r0
blr
-
-4: /* L(do_sigret): */
- addi r1,r3,-0xd0
- li r0,SYS_ify(rt_sigreturn)
- sc
- /* NOTREACHED */
-
END (__CONTEXT_FUNC_NAME)
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S
index 700289b273..82f90a5514 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S
@@ -1,5 +1,5 @@
/* Jump to a new context.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <rtld-global-offsets.h>
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S
index 7584acef08..9e2739fbb9 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S
@@ -1,5 +1,5 @@
/* Save current context and jump to a new context.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This is the common implementation of setcontext for powerpc32.
It not complete in itself should be included in to a framework that
@@ -265,10 +265,6 @@ ENTRY(__CONTEXT_FUNC_NAME)
# endif /* __CONTEXT_ENABLE_VRS */
#endif /* __CONTEXT_ENABLE_FPRS */
-#ifdef __CONTEXT_ENABLE_E500
- getcontext_e500
-#endif
-
/* Restore ucontext (parm1) from stack. */
lwz r12,_FRAME_PARM_SAVE1(r1)
lwz r4,_FRAME_PARM_SAVE2(r1)
@@ -280,22 +276,8 @@ ENTRY(__CONTEXT_FUNC_NAME)
cmpwi r3,0
bne 3f /* L(error_exit) */
- /*
- * If the new ucontext refers to the point where we were interrupted
- * by a signal, we have to use the rt_sigreturn system call to
- * return to the context so we get both LR and CTR restored.
- *
- * Otherwise, the context we are restoring is either just after
- * a procedure call (getcontext/swapcontext) or at the beginning
- * of a procedure call (makecontext), so we don't need to restore
- * r0, xer, ctr. We don't restore r2 since it will be used as
- * the TLS pointer.
- */
lwz r4,_FRAME_PARM_SAVE2(r1)
lwz r31,_UC_REGS_PTR(r4)
- lwz r0,_UC_GREGS+(PT_MSR*4)(r31)
- cmpwi r0,0
- bne 4f /* L(do_sigret) */
#ifdef __CONTEXT_ENABLE_FPRS
# ifdef __CONTEXT_ENABLE_VRS
@@ -468,10 +450,6 @@ ENTRY(__CONTEXT_FUNC_NAME)
lfd fp31,_UC_FREGS+(31*8)(r31)
#endif /* __CONTEXT_ENABLE_FPRS */
-#ifdef __CONTEXT_ENABLE_E500
- setcontext_e500
-#endif
-
/* Restore LR and CCR, and set CTR to the NIP value */
lwz r3,_UC_GREGS+(PT_LNK*4)(r31)
lwz r4,_UC_GREGS+(PT_NIP*4)(r31)
@@ -520,10 +498,4 @@ ENTRY(__CONTEXT_FUNC_NAME)
mtlr r0
blr
-4:/*L(do_sigret):*/
- addi r1,r4,-0xd0
- li r0,SYS_ify(rt_sigreturn)
- sc
- /* NOTREACHED */
-
END(__CONTEXT_FUNC_NAME)
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S
index ec089f4c03..513752861e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S
@@ -1,5 +1,5 @@
/* Save current context and jump to a new context.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <rtld-global-offsets.h>
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h b/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h
index f7277d59e1..a3bb552254 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -13,11 +13,12 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LINUX_POWERPC_SYSDEP_H
#define _LINUX_POWERPC_SYSDEP_H 1
+#include <sysdeps/unix/sysv/linux/powerpc/sysdep.h>
#include <sysdeps/unix/sysv/linux/sysdep.h>
#include <sysdeps/unix/powerpc/sysdep.h>
#include <tls.h>
@@ -40,7 +41,7 @@
function call, with the exception of LR (which is needed for the
"sc; bnslr+" sequence) and CR (where only CR0.SO is clobbered to signal
an error return status). */
-# define INTERNAL_VSYSCALL_CALL_TYPE(funcptr, err, nr, type, args...) \
+# define INTERNAL_VSYSCALL_CALL_TYPE(funcptr, err, type, nr, args...) \
({ \
register void *r0 __asm__ ("r0"); \
register long int r3 __asm__ ("r3"); \
@@ -68,7 +69,7 @@
})
#define INTERNAL_VSYSCALL_CALL(funcptr, err, nr, args...) \
- INTERNAL_VSYSCALL_CALL_TYPE(funcptr, err, nr, long int, args)
+ INTERNAL_VSYSCALL_CALL_TYPE(funcptr, err, long int, nr, args)
# undef INLINE_SYSCALL
# define INLINE_SYSCALL(name, nr, args...) \
@@ -109,7 +110,6 @@
register long int r11 __asm__ ("r11"); \
register long int r12 __asm__ ("r12"); \
LOADARGS_##nr(name, args); \
- ABORT_TRANSACTION; \
__asm__ __volatile__ \
("sc \n\t" \
"mfcr %0" \
@@ -131,26 +131,6 @@
# undef INTERNAL_SYSCALL_ERRNO
# define INTERNAL_SYSCALL_ERRNO(val, err) (val)
-# define INTERNAL_VSYSCALL_NO_SYSCALL_FALLBACK(name, err, type, nr, args...) \
- ({ \
- type sc_ret = ENOSYS; \
- \
- __typeof (__vdso_##name) vdsop = __vdso_##name; \
- PTR_DEMANGLE (vdsop); \
- if (vdsop != NULL) \
- sc_ret = \
- INTERNAL_VSYSCALL_CALL_TYPE (vdsop, err, nr, type, ##args); \
- else \
- err = 1 << 28; \
- sc_ret; \
- })
-
-/* List of system calls which are supported as vsyscalls. */
-# define HAVE_CLOCK_GETRES_VSYSCALL 1
-# define HAVE_CLOCK_GETTIME_VSYSCALL 1
-# define HAVE_GETCPU_VSYSCALL 1
-
-
# define LOADARGS_0(name, dummy) \
r0 = name
# define LOADARGS_1(name, __arg1) \
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S
index 2d096629bf..fdfb5c177a 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#define _ERRNO_H 1
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/____longjmp_chk.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/____longjmp_chk.S
index d4d7eb411c..f1fde224da 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/____longjmp_chk.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/____longjmp_chk.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <rtld-global-offsets.h>
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/ld.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/ld.abilist
index edfc9ca56f..edfc9ca56f 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/ld.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/ld.abilist
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libBrokenLocale.abilist
index fb7dfa4c1d..fb7dfa4c1d 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libBrokenLocale.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libBrokenLocale.abilist
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libanl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libanl.abilist
index 975593b41f..975593b41f 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libanl.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libanl.abilist
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
new file mode 100644
index 0000000000..0c86217fc6
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -0,0 +1,2359 @@
+GLIBC_2.10 __cxa_at_quick_exit F
+GLIBC_2.10 __posix_getopt F
+GLIBC_2.10 accept4 F
+GLIBC_2.10 endsgent F
+GLIBC_2.10 fallocate F
+GLIBC_2.10 fallocate64 F
+GLIBC_2.10 fgetsgent F
+GLIBC_2.10 fgetsgent_r F
+GLIBC_2.10 getsgent F
+GLIBC_2.10 getsgent_r F
+GLIBC_2.10 getsgnam F
+GLIBC_2.10 getsgnam_r F
+GLIBC_2.10 malloc_info F
+GLIBC_2.10 preadv F
+GLIBC_2.10 preadv64 F
+GLIBC_2.10 psiginfo F
+GLIBC_2.10 putsgent F
+GLIBC_2.10 pwritev F
+GLIBC_2.10 pwritev64 F
+GLIBC_2.10 quick_exit F
+GLIBC_2.10 register_printf_modifier F
+GLIBC_2.10 register_printf_specifier F
+GLIBC_2.10 register_printf_type F
+GLIBC_2.10 setsgent F
+GLIBC_2.10 sgetsgent F
+GLIBC_2.10 sgetsgent_r F
+GLIBC_2.11 __longjmp_chk F
+GLIBC_2.11 execvpe F
+GLIBC_2.11 mkostemps F
+GLIBC_2.11 mkostemps64 F
+GLIBC_2.11 mkstemps F
+GLIBC_2.11 mkstemps64 F
+GLIBC_2.12 _sys_errlist D 0x438
+GLIBC_2.12 _sys_nerr D 0x4
+GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 recvmmsg F
+GLIBC_2.12 sys_errlist D 0x438
+GLIBC_2.12 sys_nerr D 0x4
+GLIBC_2.13 fanotify_init F
+GLIBC_2.13 fanotify_mark F
+GLIBC_2.13 prlimit F
+GLIBC_2.13 prlimit64 F
+GLIBC_2.14 clock_adjtime F
+GLIBC_2.14 name_to_handle_at F
+GLIBC_2.14 open_by_handle_at F
+GLIBC_2.14 sendmmsg F
+GLIBC_2.14 setns F
+GLIBC_2.14 syncfs F
+GLIBC_2.15 __fdelt_chk F
+GLIBC_2.15 __fdelt_warn F
+GLIBC_2.15 posix_spawn F
+GLIBC_2.15 posix_spawnp F
+GLIBC_2.15 process_vm_readv F
+GLIBC_2.15 process_vm_writev F
+GLIBC_2.15 scandirat F
+GLIBC_2.15 scandirat64 F
+GLIBC_2.16 __getauxval F
+GLIBC_2.16 __poll_chk F
+GLIBC_2.16 __ppoll_chk F
+GLIBC_2.16 aligned_alloc F
+GLIBC_2.16 c16rtomb F
+GLIBC_2.16 c32rtomb F
+GLIBC_2.16 getauxval F
+GLIBC_2.16 mbrtoc16 F
+GLIBC_2.16 mbrtoc32 F
+GLIBC_2.16 timespec_get F
+GLIBC_2.17 __ppc_get_timebase_freq F
+GLIBC_2.17 clock_getcpuclockid F
+GLIBC_2.17 clock_getres F
+GLIBC_2.17 clock_gettime F
+GLIBC_2.17 clock_nanosleep F
+GLIBC_2.17 clock_settime F
+GLIBC_2.17 secure_getenv F
+GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.22 fmemopen F
+GLIBC_2.23 fts64_children F
+GLIBC_2.23 fts64_close F
+GLIBC_2.23 fts64_open F
+GLIBC_2.23 fts64_read F
+GLIBC_2.23 fts64_set F
+GLIBC_2.24 quick_exit F
+GLIBC_2.25 __explicit_bzero_chk F
+GLIBC_2.25 explicit_bzero F
+GLIBC_2.25 getentropy F
+GLIBC_2.25 getrandom F
+GLIBC_2.25 strfromd F
+GLIBC_2.25 strfromf F
+GLIBC_2.25 strfroml F
+GLIBC_2.26 preadv2 F
+GLIBC_2.26 preadv64v2 F
+GLIBC_2.26 pwritev2 F
+GLIBC_2.26 pwritev64v2 F
+GLIBC_2.26 reallocarray F
+GLIBC_2.27 copy_file_range F
+GLIBC_2.27 glob F
+GLIBC_2.27 glob64 F
+GLIBC_2.27 memfd_create F
+GLIBC_2.27 mlock2 F
+GLIBC_2.27 pkey_alloc F
+GLIBC_2.27 pkey_free F
+GLIBC_2.27 pkey_get F
+GLIBC_2.27 pkey_mprotect F
+GLIBC_2.27 pkey_set F
+GLIBC_2.27 strfromf32 F
+GLIBC_2.27 strfromf32x F
+GLIBC_2.27 strfromf64 F
+GLIBC_2.27 strtof32 F
+GLIBC_2.27 strtof32_l F
+GLIBC_2.27 strtof32x F
+GLIBC_2.27 strtof32x_l F
+GLIBC_2.27 strtof64 F
+GLIBC_2.27 strtof64_l F
+GLIBC_2.27 wcstof32 F
+GLIBC_2.27 wcstof32_l F
+GLIBC_2.27 wcstof32x F
+GLIBC_2.27 wcstof32x_l F
+GLIBC_2.27 wcstof64 F
+GLIBC_2.27 wcstof64_l F
+GLIBC_2.28 fcntl64 F
+GLIBC_2.28 renameat2 F
+GLIBC_2.28 statx F
+GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_equal F
+GLIBC_2.28 thrd_sleep F
+GLIBC_2.28 thrd_yield F
+GLIBC_2.29 getcpu F
+GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
+GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
+GLIBC_2.3 _Exit F
+GLIBC_2.3 _IO_2_1_stderr_ D 0xe0
+GLIBC_2.3 _IO_2_1_stdin_ D 0xe0
+GLIBC_2.3 _IO_2_1_stdout_ D 0xe0
+GLIBC_2.3 _IO_adjust_column F
+GLIBC_2.3 _IO_adjust_wcolumn F
+GLIBC_2.3 _IO_default_doallocate F
+GLIBC_2.3 _IO_default_finish F
+GLIBC_2.3 _IO_default_pbackfail F
+GLIBC_2.3 _IO_default_uflow F
+GLIBC_2.3 _IO_default_xsgetn F
+GLIBC_2.3 _IO_default_xsputn F
+GLIBC_2.3 _IO_do_write F
+GLIBC_2.3 _IO_doallocbuf F
+GLIBC_2.3 _IO_fclose F
+GLIBC_2.3 _IO_fdopen F
+GLIBC_2.3 _IO_feof F
+GLIBC_2.3 _IO_ferror F
+GLIBC_2.3 _IO_fflush F
+GLIBC_2.3 _IO_fgetpos F
+GLIBC_2.3 _IO_fgetpos64 F
+GLIBC_2.3 _IO_fgets F
+GLIBC_2.3 _IO_file_attach F
+GLIBC_2.3 _IO_file_close F
+GLIBC_2.3 _IO_file_close_it F
+GLIBC_2.3 _IO_file_doallocate F
+GLIBC_2.3 _IO_file_finish F
+GLIBC_2.3 _IO_file_fopen F
+GLIBC_2.3 _IO_file_init F
+GLIBC_2.3 _IO_file_jumps D 0xa8
+GLIBC_2.3 _IO_file_open F
+GLIBC_2.3 _IO_file_overflow F
+GLIBC_2.3 _IO_file_read F
+GLIBC_2.3 _IO_file_seek F
+GLIBC_2.3 _IO_file_seekoff F
+GLIBC_2.3 _IO_file_setbuf F
+GLIBC_2.3 _IO_file_stat F
+GLIBC_2.3 _IO_file_sync F
+GLIBC_2.3 _IO_file_underflow F
+GLIBC_2.3 _IO_file_write F
+GLIBC_2.3 _IO_file_xsputn F
+GLIBC_2.3 _IO_flockfile F
+GLIBC_2.3 _IO_flush_all F
+GLIBC_2.3 _IO_flush_all_linebuffered F
+GLIBC_2.3 _IO_fopen F
+GLIBC_2.3 _IO_fprintf F
+GLIBC_2.3 _IO_fputs F
+GLIBC_2.3 _IO_fread F
+GLIBC_2.3 _IO_free_backup_area F
+GLIBC_2.3 _IO_free_wbackup_area F
+GLIBC_2.3 _IO_fsetpos F
+GLIBC_2.3 _IO_fsetpos64 F
+GLIBC_2.3 _IO_ftell F
+GLIBC_2.3 _IO_ftrylockfile F
+GLIBC_2.3 _IO_funlockfile F
+GLIBC_2.3 _IO_fwrite F
+GLIBC_2.3 _IO_getc F
+GLIBC_2.3 _IO_getline F
+GLIBC_2.3 _IO_getline_info F
+GLIBC_2.3 _IO_gets F
+GLIBC_2.3 _IO_init F
+GLIBC_2.3 _IO_init_marker F
+GLIBC_2.3 _IO_init_wmarker F
+GLIBC_2.3 _IO_iter_begin F
+GLIBC_2.3 _IO_iter_end F
+GLIBC_2.3 _IO_iter_file F
+GLIBC_2.3 _IO_iter_next F
+GLIBC_2.3 _IO_least_wmarker F
+GLIBC_2.3 _IO_link_in F
+GLIBC_2.3 _IO_list_all D 0x8
+GLIBC_2.3 _IO_list_lock F
+GLIBC_2.3 _IO_list_resetlock F
+GLIBC_2.3 _IO_list_unlock F
+GLIBC_2.3 _IO_marker_delta F
+GLIBC_2.3 _IO_marker_difference F
+GLIBC_2.3 _IO_padn F
+GLIBC_2.3 _IO_peekc_locked F
+GLIBC_2.3 _IO_popen F
+GLIBC_2.3 _IO_printf F
+GLIBC_2.3 _IO_proc_close F
+GLIBC_2.3 _IO_proc_open F
+GLIBC_2.3 _IO_putc F
+GLIBC_2.3 _IO_puts F
+GLIBC_2.3 _IO_remove_marker F
+GLIBC_2.3 _IO_seekmark F
+GLIBC_2.3 _IO_seekoff F
+GLIBC_2.3 _IO_seekpos F
+GLIBC_2.3 _IO_seekwmark F
+GLIBC_2.3 _IO_setb F
+GLIBC_2.3 _IO_setbuffer F
+GLIBC_2.3 _IO_setvbuf F
+GLIBC_2.3 _IO_sgetn F
+GLIBC_2.3 _IO_sprintf F
+GLIBC_2.3 _IO_sputbackc F
+GLIBC_2.3 _IO_sputbackwc F
+GLIBC_2.3 _IO_sscanf F
+GLIBC_2.3 _IO_str_init_readonly F
+GLIBC_2.3 _IO_str_init_static F
+GLIBC_2.3 _IO_str_overflow F
+GLIBC_2.3 _IO_str_pbackfail F
+GLIBC_2.3 _IO_str_seekoff F
+GLIBC_2.3 _IO_str_underflow F
+GLIBC_2.3 _IO_sungetc F
+GLIBC_2.3 _IO_sungetwc F
+GLIBC_2.3 _IO_switch_to_get_mode F
+GLIBC_2.3 _IO_switch_to_main_wget_area F
+GLIBC_2.3 _IO_switch_to_wbackup_area F
+GLIBC_2.3 _IO_switch_to_wget_mode F
+GLIBC_2.3 _IO_un_link F
+GLIBC_2.3 _IO_ungetc F
+GLIBC_2.3 _IO_unsave_markers F
+GLIBC_2.3 _IO_unsave_wmarkers F
+GLIBC_2.3 _IO_vfprintf F
+GLIBC_2.3 _IO_vfscanf F
+GLIBC_2.3 _IO_vsprintf F
+GLIBC_2.3 _IO_wdefault_doallocate F
+GLIBC_2.3 _IO_wdefault_finish F
+GLIBC_2.3 _IO_wdefault_pbackfail F
+GLIBC_2.3 _IO_wdefault_uflow F
+GLIBC_2.3 _IO_wdefault_xsgetn F
+GLIBC_2.3 _IO_wdefault_xsputn F
+GLIBC_2.3 _IO_wdo_write F
+GLIBC_2.3 _IO_wdoallocbuf F
+GLIBC_2.3 _IO_wfile_jumps D 0xa8
+GLIBC_2.3 _IO_wfile_overflow F
+GLIBC_2.3 _IO_wfile_seekoff F
+GLIBC_2.3 _IO_wfile_sync F
+GLIBC_2.3 _IO_wfile_underflow F
+GLIBC_2.3 _IO_wfile_xsputn F
+GLIBC_2.3 _IO_wmarker_delta F
+GLIBC_2.3 _IO_wsetb F
+GLIBC_2.3 __adjtimex F
+GLIBC_2.3 __after_morecore_hook D 0x8
+GLIBC_2.3 __argz_count F
+GLIBC_2.3 __argz_next F
+GLIBC_2.3 __argz_stringify F
+GLIBC_2.3 __asprintf F
+GLIBC_2.3 __assert F
+GLIBC_2.3 __assert_fail F
+GLIBC_2.3 __assert_perror_fail F
+GLIBC_2.3 __backtrace F
+GLIBC_2.3 __backtrace_symbols F
+GLIBC_2.3 __backtrace_symbols_fd F
+GLIBC_2.3 __bsd_getpgrp F
+GLIBC_2.3 __bzero F
+GLIBC_2.3 __check_rhosts_file D 0x4
+GLIBC_2.3 __clone F
+GLIBC_2.3 __close F
+GLIBC_2.3 __cmsg_nxthdr F
+GLIBC_2.3 __connect F
+GLIBC_2.3 __ctype_b_loc F
+GLIBC_2.3 __ctype_get_mb_cur_max F
+GLIBC_2.3 __ctype_tolower_loc F
+GLIBC_2.3 __ctype_toupper_loc F
+GLIBC_2.3 __curbrk D 0x8
+GLIBC_2.3 __cxa_atexit F
+GLIBC_2.3 __cxa_finalize F
+GLIBC_2.3 __cyg_profile_func_enter F
+GLIBC_2.3 __cyg_profile_func_exit F
+GLIBC_2.3 __daylight D 0x4
+GLIBC_2.3 __dcgettext F
+GLIBC_2.3 __default_morecore F
+GLIBC_2.3 __dgettext F
+GLIBC_2.3 __dup2 F
+GLIBC_2.3 __duplocale F
+GLIBC_2.3 __endmntent F
+GLIBC_2.3 __environ D 0x8
+GLIBC_2.3 __errno_location F
+GLIBC_2.3 __fbufsize F
+GLIBC_2.3 __fcntl F
+GLIBC_2.3 __ffs F
+GLIBC_2.3 __finite F
+GLIBC_2.3 __finitef F
+GLIBC_2.3 __finitel F
+GLIBC_2.3 __flbf F
+GLIBC_2.3 __fork F
+GLIBC_2.3 __fpending F
+GLIBC_2.3 __fpu_control D 0x4
+GLIBC_2.3 __fpurge F
+GLIBC_2.3 __freadable F
+GLIBC_2.3 __freading F
+GLIBC_2.3 __free_hook D 0x8
+GLIBC_2.3 __freelocale F
+GLIBC_2.3 __fsetlocking F
+GLIBC_2.3 __fwritable F
+GLIBC_2.3 __fwriting F
+GLIBC_2.3 __fxstat F
+GLIBC_2.3 __fxstat64 F
+GLIBC_2.3 __getdelim F
+GLIBC_2.3 __getmntent_r F
+GLIBC_2.3 __getpagesize F
+GLIBC_2.3 __getpgid F
+GLIBC_2.3 __getpid F
+GLIBC_2.3 __gettimeofday F
+GLIBC_2.3 __gmtime_r F
+GLIBC_2.3 __h_errno_location F
+GLIBC_2.3 __isalnum_l F
+GLIBC_2.3 __isalpha_l F
+GLIBC_2.3 __isascii_l F
+GLIBC_2.3 __isblank_l F
+GLIBC_2.3 __iscntrl_l F
+GLIBC_2.3 __isctype F
+GLIBC_2.3 __isdigit_l F
+GLIBC_2.3 __isgraph_l F
+GLIBC_2.3 __isinf F
+GLIBC_2.3 __isinff F
+GLIBC_2.3 __isinfl F
+GLIBC_2.3 __islower_l F
+GLIBC_2.3 __isnan F
+GLIBC_2.3 __isnanf F
+GLIBC_2.3 __isnanl F
+GLIBC_2.3 __isprint_l F
+GLIBC_2.3 __ispunct_l F
+GLIBC_2.3 __isspace_l F
+GLIBC_2.3 __isupper_l F
+GLIBC_2.3 __iswalnum_l F
+GLIBC_2.3 __iswalpha_l F
+GLIBC_2.3 __iswblank_l F
+GLIBC_2.3 __iswcntrl_l F
+GLIBC_2.3 __iswctype F
+GLIBC_2.3 __iswctype_l F
+GLIBC_2.3 __iswdigit_l F
+GLIBC_2.3 __iswgraph_l F
+GLIBC_2.3 __iswlower_l F
+GLIBC_2.3 __iswprint_l F
+GLIBC_2.3 __iswpunct_l F
+GLIBC_2.3 __iswspace_l F
+GLIBC_2.3 __iswupper_l F
+GLIBC_2.3 __iswxdigit_l F
+GLIBC_2.3 __isxdigit_l F
+GLIBC_2.3 __ivaliduser F
+GLIBC_2.3 __key_decryptsession_pk_LOCAL D 0x8
+GLIBC_2.3 __key_encryptsession_pk_LOCAL D 0x8
+GLIBC_2.3 __key_gendes_LOCAL D 0x8
+GLIBC_2.3 __libc_allocate_rtsig F
+GLIBC_2.3 __libc_calloc F
+GLIBC_2.3 __libc_current_sigrtmax F
+GLIBC_2.3 __libc_current_sigrtmin F
+GLIBC_2.3 __libc_free F
+GLIBC_2.3 __libc_freeres F
+GLIBC_2.3 __libc_init_first F
+GLIBC_2.3 __libc_mallinfo F
+GLIBC_2.3 __libc_malloc F
+GLIBC_2.3 __libc_mallopt F
+GLIBC_2.3 __libc_memalign F
+GLIBC_2.3 __libc_pvalloc F
+GLIBC_2.3 __libc_realloc F
+GLIBC_2.3 __libc_sa_len F
+GLIBC_2.3 __libc_start_main F
+GLIBC_2.3 __libc_valloc F
+GLIBC_2.3 __lseek F
+GLIBC_2.3 __lxstat F
+GLIBC_2.3 __lxstat64 F
+GLIBC_2.3 __malloc_hook D 0x8
+GLIBC_2.3 __malloc_initialize_hook D 0x8
+GLIBC_2.3 __mbrlen F
+GLIBC_2.3 __mbrtowc F
+GLIBC_2.3 __memalign_hook D 0x8
+GLIBC_2.3 __mempcpy F
+GLIBC_2.3 __mempcpy_small F
+GLIBC_2.3 __monstartup F
+GLIBC_2.3 __morecore D 0x8
+GLIBC_2.3 __nanosleep F
+GLIBC_2.3 __newlocale F
+GLIBC_2.3 __nl_langinfo_l F
+GLIBC_2.3 __nss_configure_lookup F
+GLIBC_2.3 __nss_database_lookup F
+GLIBC_2.3 __nss_group_lookup F
+GLIBC_2.3 __nss_hostname_digits_dots F
+GLIBC_2.3 __nss_hosts_lookup F
+GLIBC_2.3 __nss_next F
+GLIBC_2.3 __nss_passwd_lookup F
+GLIBC_2.3 __open F
+GLIBC_2.3 __open64 F
+GLIBC_2.3 __overflow F
+GLIBC_2.3 __pipe F
+GLIBC_2.3 __poll F
+GLIBC_2.3 __pread64 F
+GLIBC_2.3 __printf_fp F
+GLIBC_2.3 __profile_frequency F
+GLIBC_2.3 __progname D 0x8
+GLIBC_2.3 __progname_full D 0x8
+GLIBC_2.3 __pwrite64 F
+GLIBC_2.3 __rawmemchr F
+GLIBC_2.3 __rcmd_errstr D 0x8
+GLIBC_2.3 __read F
+GLIBC_2.3 __realloc_hook D 0x8
+GLIBC_2.3 __res_init F
+GLIBC_2.3 __res_nclose F
+GLIBC_2.3 __res_ninit F
+GLIBC_2.3 __res_randomid F
+GLIBC_2.3 __res_state F
+GLIBC_2.3 __rpc_thread_createerr F
+GLIBC_2.3 __rpc_thread_svc_fdset F
+GLIBC_2.3 __rpc_thread_svc_max_pollfd F
+GLIBC_2.3 __rpc_thread_svc_pollfd F
+GLIBC_2.3 __sbrk F
+GLIBC_2.3 __sched_get_priority_max F
+GLIBC_2.3 __sched_get_priority_min F
+GLIBC_2.3 __sched_getparam F
+GLIBC_2.3 __sched_getscheduler F
+GLIBC_2.3 __sched_setscheduler F
+GLIBC_2.3 __sched_yield F
+GLIBC_2.3 __secure_getenv F
+GLIBC_2.3 __select F
+GLIBC_2.3 __send F
+GLIBC_2.3 __setmntent F
+GLIBC_2.3 __setpgid F
+GLIBC_2.3 __sigaction F
+GLIBC_2.3 __sigaddset F
+GLIBC_2.3 __sigdelset F
+GLIBC_2.3 __sigismember F
+GLIBC_2.3 __signbit F
+GLIBC_2.3 __signbitf F
+GLIBC_2.3 __sigpause F
+GLIBC_2.3 __sigsetjmp F
+GLIBC_2.3 __sigsuspend F
+GLIBC_2.3 __statfs F
+GLIBC_2.3 __stpcpy F
+GLIBC_2.3 __stpcpy_small F
+GLIBC_2.3 __stpncpy F
+GLIBC_2.3 __strcasecmp F
+GLIBC_2.3 __strcasecmp_l F
+GLIBC_2.3 __strcasestr F
+GLIBC_2.3 __strcoll_l F
+GLIBC_2.3 __strcpy_small F
+GLIBC_2.3 __strcspn_c1 F
+GLIBC_2.3 __strcspn_c2 F
+GLIBC_2.3 __strcspn_c3 F
+GLIBC_2.3 __strdup F
+GLIBC_2.3 __strerror_r F
+GLIBC_2.3 __strfmon_l F
+GLIBC_2.3 __strftime_l F
+GLIBC_2.3 __strncasecmp_l F
+GLIBC_2.3 __strndup F
+GLIBC_2.3 __strpbrk_c2 F
+GLIBC_2.3 __strpbrk_c3 F
+GLIBC_2.3 __strsep_1c F
+GLIBC_2.3 __strsep_2c F
+GLIBC_2.3 __strsep_3c F
+GLIBC_2.3 __strsep_g F
+GLIBC_2.3 __strspn_c1 F
+GLIBC_2.3 __strspn_c2 F
+GLIBC_2.3 __strspn_c3 F
+GLIBC_2.3 __strtod_internal F
+GLIBC_2.3 __strtod_l F
+GLIBC_2.3 __strtof_internal F
+GLIBC_2.3 __strtof_l F
+GLIBC_2.3 __strtok_r F
+GLIBC_2.3 __strtok_r_1c F
+GLIBC_2.3 __strtol_internal F
+GLIBC_2.3 __strtol_l F
+GLIBC_2.3 __strtold_internal F
+GLIBC_2.3 __strtold_l F
+GLIBC_2.3 __strtoll_internal F
+GLIBC_2.3 __strtoll_l F
+GLIBC_2.3 __strtoul_internal F
+GLIBC_2.3 __strtoul_l F
+GLIBC_2.3 __strtoull_internal F
+GLIBC_2.3 __strtoull_l F
+GLIBC_2.3 __strverscmp F
+GLIBC_2.3 __strxfrm_l F
+GLIBC_2.3 __sysconf F
+GLIBC_2.3 __sysctl F
+GLIBC_2.3 __sysv_signal F
+GLIBC_2.3 __timezone D 0x8
+GLIBC_2.3 __toascii_l F
+GLIBC_2.3 __tolower_l F
+GLIBC_2.3 __toupper_l F
+GLIBC_2.3 __towctrans F
+GLIBC_2.3 __towctrans_l F
+GLIBC_2.3 __towlower_l F
+GLIBC_2.3 __towupper_l F
+GLIBC_2.3 __tzname D 0x10
+GLIBC_2.3 __uflow F
+GLIBC_2.3 __underflow F
+GLIBC_2.3 __uselocale F
+GLIBC_2.3 __vfork F
+GLIBC_2.3 __vfscanf F
+GLIBC_2.3 __vsnprintf F
+GLIBC_2.3 __vsscanf F
+GLIBC_2.3 __wait F
+GLIBC_2.3 __waitpid F
+GLIBC_2.3 __wcscasecmp_l F
+GLIBC_2.3 __wcscoll_l F
+GLIBC_2.3 __wcsftime_l F
+GLIBC_2.3 __wcsncasecmp_l F
+GLIBC_2.3 __wcstod_internal F
+GLIBC_2.3 __wcstod_l F
+GLIBC_2.3 __wcstof_internal F
+GLIBC_2.3 __wcstof_l F
+GLIBC_2.3 __wcstol_internal F
+GLIBC_2.3 __wcstol_l F
+GLIBC_2.3 __wcstold_internal F
+GLIBC_2.3 __wcstold_l F
+GLIBC_2.3 __wcstoll_internal F
+GLIBC_2.3 __wcstoll_l F
+GLIBC_2.3 __wcstoul_internal F
+GLIBC_2.3 __wcstoul_l F
+GLIBC_2.3 __wcstoull_internal F
+GLIBC_2.3 __wcstoull_l F
+GLIBC_2.3 __wcsxfrm_l F
+GLIBC_2.3 __wctrans_l F
+GLIBC_2.3 __wctype_l F
+GLIBC_2.3 __woverflow F
+GLIBC_2.3 __write F
+GLIBC_2.3 __wuflow F
+GLIBC_2.3 __wunderflow F
+GLIBC_2.3 __xmknod F
+GLIBC_2.3 __xpg_basename F
+GLIBC_2.3 __xpg_sigpause F
+GLIBC_2.3 __xstat F
+GLIBC_2.3 __xstat64 F
+GLIBC_2.3 _authenticate F
+GLIBC_2.3 _dl_mcount_wrapper F
+GLIBC_2.3 _dl_mcount_wrapper_check F
+GLIBC_2.3 _environ D 0x8
+GLIBC_2.3 _exit F
+GLIBC_2.3 _flushlbf F
+GLIBC_2.3 _libc_intl_domainname D 0x5
+GLIBC_2.3 _longjmp F
+GLIBC_2.3 _mcleanup F
+GLIBC_2.3 _mcount F
+GLIBC_2.3 _nl_default_dirname D 0x12
+GLIBC_2.3 _nl_domain_bindings D 0x8
+GLIBC_2.3 _nl_msg_cat_cntr D 0x4
+GLIBC_2.3 _null_auth D 0x18
+GLIBC_2.3 _obstack D 0x8
+GLIBC_2.3 _obstack_allocated_p F
+GLIBC_2.3 _obstack_begin F
+GLIBC_2.3 _obstack_begin_1 F
+GLIBC_2.3 _obstack_free F
+GLIBC_2.3 _obstack_memory_used F
+GLIBC_2.3 _obstack_newchunk F
+GLIBC_2.3 _res D 0x238
+GLIBC_2.3 _res_hconf D 0x48
+GLIBC_2.3 _rpc_dtablesize F
+GLIBC_2.3 _seterr_reply F
+GLIBC_2.3 _setjmp F
+GLIBC_2.3 _sys_errlist D 0x3f0
+GLIBC_2.3 _sys_nerr D 0x4
+GLIBC_2.3 _sys_siglist D 0x200
+GLIBC_2.3 _tolower F
+GLIBC_2.3 _toupper F
+GLIBC_2.3 a64l F
+GLIBC_2.3 abort F
+GLIBC_2.3 abs F
+GLIBC_2.3 accept F
+GLIBC_2.3 access F
+GLIBC_2.3 acct F
+GLIBC_2.3 addmntent F
+GLIBC_2.3 addseverity F
+GLIBC_2.3 adjtime F
+GLIBC_2.3 adjtimex F
+GLIBC_2.3 advance F
+GLIBC_2.3 alarm F
+GLIBC_2.3 alphasort F
+GLIBC_2.3 alphasort64 F
+GLIBC_2.3 argp_err_exit_status D 0x4
+GLIBC_2.3 argp_error F
+GLIBC_2.3 argp_failure F
+GLIBC_2.3 argp_help F
+GLIBC_2.3 argp_parse F
+GLIBC_2.3 argp_program_bug_address D 0x8
+GLIBC_2.3 argp_program_version D 0x8
+GLIBC_2.3 argp_program_version_hook D 0x8
+GLIBC_2.3 argp_state_help F
+GLIBC_2.3 argp_usage F
+GLIBC_2.3 argz_add F
+GLIBC_2.3 argz_add_sep F
+GLIBC_2.3 argz_append F
+GLIBC_2.3 argz_count F
+GLIBC_2.3 argz_create F
+GLIBC_2.3 argz_create_sep F
+GLIBC_2.3 argz_delete F
+GLIBC_2.3 argz_extract F
+GLIBC_2.3 argz_insert F
+GLIBC_2.3 argz_next F
+GLIBC_2.3 argz_replace F
+GLIBC_2.3 argz_stringify F
+GLIBC_2.3 asctime F
+GLIBC_2.3 asctime_r F
+GLIBC_2.3 asprintf F
+GLIBC_2.3 atof F
+GLIBC_2.3 atoi F
+GLIBC_2.3 atol F
+GLIBC_2.3 atoll F
+GLIBC_2.3 authdes_create F
+GLIBC_2.3 authdes_getucred F
+GLIBC_2.3 authdes_pk_create F
+GLIBC_2.3 authnone_create F
+GLIBC_2.3 authunix_create F
+GLIBC_2.3 authunix_create_default F
+GLIBC_2.3 backtrace F
+GLIBC_2.3 backtrace_symbols F
+GLIBC_2.3 backtrace_symbols_fd F
+GLIBC_2.3 basename F
+GLIBC_2.3 bcmp F
+GLIBC_2.3 bcopy F
+GLIBC_2.3 bdflush F
+GLIBC_2.3 bind F
+GLIBC_2.3 bind_textdomain_codeset F
+GLIBC_2.3 bindresvport F
+GLIBC_2.3 bindtextdomain F
+GLIBC_2.3 brk F
+GLIBC_2.3 bsd_signal F
+GLIBC_2.3 bsearch F
+GLIBC_2.3 btowc F
+GLIBC_2.3 bzero F
+GLIBC_2.3 calloc F
+GLIBC_2.3 callrpc F
+GLIBC_2.3 canonicalize_file_name F
+GLIBC_2.3 capget F
+GLIBC_2.3 capset F
+GLIBC_2.3 catclose F
+GLIBC_2.3 catgets F
+GLIBC_2.3 catopen F
+GLIBC_2.3 cbc_crypt F
+GLIBC_2.3 cfgetispeed F
+GLIBC_2.3 cfgetospeed F
+GLIBC_2.3 cfmakeraw F
+GLIBC_2.3 cfree F
+GLIBC_2.3 cfsetispeed F
+GLIBC_2.3 cfsetospeed F
+GLIBC_2.3 cfsetspeed F
+GLIBC_2.3 chdir F
+GLIBC_2.3 chflags F
+GLIBC_2.3 chmod F
+GLIBC_2.3 chown F
+GLIBC_2.3 chroot F
+GLIBC_2.3 clearenv F
+GLIBC_2.3 clearerr F
+GLIBC_2.3 clearerr_unlocked F
+GLIBC_2.3 clnt_broadcast F
+GLIBC_2.3 clnt_create F
+GLIBC_2.3 clnt_pcreateerror F
+GLIBC_2.3 clnt_perrno F
+GLIBC_2.3 clnt_perror F
+GLIBC_2.3 clnt_spcreateerror F
+GLIBC_2.3 clnt_sperrno F
+GLIBC_2.3 clnt_sperror F
+GLIBC_2.3 clntraw_create F
+GLIBC_2.3 clnttcp_create F
+GLIBC_2.3 clntudp_bufcreate F
+GLIBC_2.3 clntudp_create F
+GLIBC_2.3 clntunix_create F
+GLIBC_2.3 clock F
+GLIBC_2.3 clock_getcpuclockid F
+GLIBC_2.3 clock_getres F
+GLIBC_2.3 clock_gettime F
+GLIBC_2.3 clock_nanosleep F
+GLIBC_2.3 clock_settime F
+GLIBC_2.3 clone F
+GLIBC_2.3 close F
+GLIBC_2.3 closedir F
+GLIBC_2.3 closelog F
+GLIBC_2.3 confstr F
+GLIBC_2.3 connect F
+GLIBC_2.3 copysign F
+GLIBC_2.3 copysignf F
+GLIBC_2.3 copysignl F
+GLIBC_2.3 creat F
+GLIBC_2.3 creat64 F
+GLIBC_2.3 create_module F
+GLIBC_2.3 ctermid F
+GLIBC_2.3 ctime F
+GLIBC_2.3 ctime_r F
+GLIBC_2.3 cuserid F
+GLIBC_2.3 daemon F
+GLIBC_2.3 daylight D 0x4
+GLIBC_2.3 dcgettext F
+GLIBC_2.3 dcngettext F
+GLIBC_2.3 delete_module F
+GLIBC_2.3 des_setparity F
+GLIBC_2.3 dgettext F
+GLIBC_2.3 difftime F
+GLIBC_2.3 dirfd F
+GLIBC_2.3 dirname F
+GLIBC_2.3 div F
+GLIBC_2.3 dl_iterate_phdr F
+GLIBC_2.3 dngettext F
+GLIBC_2.3 dprintf F
+GLIBC_2.3 drand48 F
+GLIBC_2.3 drand48_r F
+GLIBC_2.3 dup F
+GLIBC_2.3 dup2 F
+GLIBC_2.3 duplocale F
+GLIBC_2.3 dysize F
+GLIBC_2.3 ecb_crypt F
+GLIBC_2.3 ecvt F
+GLIBC_2.3 ecvt_r F
+GLIBC_2.3 endaliasent F
+GLIBC_2.3 endfsent F
+GLIBC_2.3 endgrent F
+GLIBC_2.3 endhostent F
+GLIBC_2.3 endmntent F
+GLIBC_2.3 endnetent F
+GLIBC_2.3 endnetgrent F
+GLIBC_2.3 endprotoent F
+GLIBC_2.3 endpwent F
+GLIBC_2.3 endrpcent F
+GLIBC_2.3 endservent F
+GLIBC_2.3 endspent F
+GLIBC_2.3 endttyent F
+GLIBC_2.3 endusershell F
+GLIBC_2.3 endutent F
+GLIBC_2.3 endutxent F
+GLIBC_2.3 environ D 0x8
+GLIBC_2.3 envz_add F
+GLIBC_2.3 envz_entry F
+GLIBC_2.3 envz_get F
+GLIBC_2.3 envz_merge F
+GLIBC_2.3 envz_remove F
+GLIBC_2.3 envz_strip F
+GLIBC_2.3 erand48 F
+GLIBC_2.3 erand48_r F
+GLIBC_2.3 err F
+GLIBC_2.3 error F
+GLIBC_2.3 error_at_line F
+GLIBC_2.3 error_message_count D 0x4
+GLIBC_2.3 error_one_per_line D 0x4
+GLIBC_2.3 error_print_progname D 0x8
+GLIBC_2.3 errx F
+GLIBC_2.3 ether_aton F
+GLIBC_2.3 ether_aton_r F
+GLIBC_2.3 ether_hostton F
+GLIBC_2.3 ether_line F
+GLIBC_2.3 ether_ntoa F
+GLIBC_2.3 ether_ntoa_r F
+GLIBC_2.3 ether_ntohost F
+GLIBC_2.3 euidaccess F
+GLIBC_2.3 execl F
+GLIBC_2.3 execle F
+GLIBC_2.3 execlp F
+GLIBC_2.3 execv F
+GLIBC_2.3 execve F
+GLIBC_2.3 execvp F
+GLIBC_2.3 exit F
+GLIBC_2.3 fattach F
+GLIBC_2.3 fchdir F
+GLIBC_2.3 fchflags F
+GLIBC_2.3 fchmod F
+GLIBC_2.3 fchown F
+GLIBC_2.3 fclose F
+GLIBC_2.3 fcloseall F
+GLIBC_2.3 fcntl F
+GLIBC_2.3 fcvt F
+GLIBC_2.3 fcvt_r F
+GLIBC_2.3 fdatasync F
+GLIBC_2.3 fdetach F
+GLIBC_2.3 fdopen F
+GLIBC_2.3 feof F
+GLIBC_2.3 feof_unlocked F
+GLIBC_2.3 ferror F
+GLIBC_2.3 ferror_unlocked F
+GLIBC_2.3 fexecve F
+GLIBC_2.3 fflush F
+GLIBC_2.3 fflush_unlocked F
+GLIBC_2.3 ffs F
+GLIBC_2.3 ffsl F
+GLIBC_2.3 ffsll F
+GLIBC_2.3 fgetc F
+GLIBC_2.3 fgetc_unlocked F
+GLIBC_2.3 fgetgrent F
+GLIBC_2.3 fgetgrent_r F
+GLIBC_2.3 fgetpos F
+GLIBC_2.3 fgetpos64 F
+GLIBC_2.3 fgetpwent F
+GLIBC_2.3 fgetpwent_r F
+GLIBC_2.3 fgets F
+GLIBC_2.3 fgets_unlocked F
+GLIBC_2.3 fgetspent F
+GLIBC_2.3 fgetspent_r F
+GLIBC_2.3 fgetwc F
+GLIBC_2.3 fgetwc_unlocked F
+GLIBC_2.3 fgetws F
+GLIBC_2.3 fgetws_unlocked F
+GLIBC_2.3 fgetxattr F
+GLIBC_2.3 fileno F
+GLIBC_2.3 fileno_unlocked F
+GLIBC_2.3 finite F
+GLIBC_2.3 finitef F
+GLIBC_2.3 finitel F
+GLIBC_2.3 flistxattr F
+GLIBC_2.3 flock F
+GLIBC_2.3 flockfile F
+GLIBC_2.3 fmemopen F
+GLIBC_2.3 fmtmsg F
+GLIBC_2.3 fnmatch F
+GLIBC_2.3 fopen F
+GLIBC_2.3 fopen64 F
+GLIBC_2.3 fopencookie F
+GLIBC_2.3 fork F
+GLIBC_2.3 fpathconf F
+GLIBC_2.3 fprintf F
+GLIBC_2.3 fputc F
+GLIBC_2.3 fputc_unlocked F
+GLIBC_2.3 fputs F
+GLIBC_2.3 fputs_unlocked F
+GLIBC_2.3 fputwc F
+GLIBC_2.3 fputwc_unlocked F
+GLIBC_2.3 fputws F
+GLIBC_2.3 fputws_unlocked F
+GLIBC_2.3 fread F
+GLIBC_2.3 fread_unlocked F
+GLIBC_2.3 free F
+GLIBC_2.3 freeaddrinfo F
+GLIBC_2.3 freeifaddrs F
+GLIBC_2.3 freelocale F
+GLIBC_2.3 fremovexattr F
+GLIBC_2.3 freopen F
+GLIBC_2.3 freopen64 F
+GLIBC_2.3 frexp F
+GLIBC_2.3 frexpf F
+GLIBC_2.3 frexpl F
+GLIBC_2.3 fscanf F
+GLIBC_2.3 fseek F
+GLIBC_2.3 fseeko F
+GLIBC_2.3 fseeko64 F
+GLIBC_2.3 fsetpos F
+GLIBC_2.3 fsetpos64 F
+GLIBC_2.3 fsetxattr F
+GLIBC_2.3 fstatfs F
+GLIBC_2.3 fstatfs64 F
+GLIBC_2.3 fstatvfs F
+GLIBC_2.3 fstatvfs64 F
+GLIBC_2.3 fsync F
+GLIBC_2.3 ftell F
+GLIBC_2.3 ftello F
+GLIBC_2.3 ftello64 F
+GLIBC_2.3 ftime F
+GLIBC_2.3 ftok F
+GLIBC_2.3 ftruncate F
+GLIBC_2.3 ftruncate64 F
+GLIBC_2.3 ftrylockfile F
+GLIBC_2.3 fts_children F
+GLIBC_2.3 fts_close F
+GLIBC_2.3 fts_open F
+GLIBC_2.3 fts_read F
+GLIBC_2.3 fts_set F
+GLIBC_2.3 ftw F
+GLIBC_2.3 ftw64 F
+GLIBC_2.3 funlockfile F
+GLIBC_2.3 futimes F
+GLIBC_2.3 fwide F
+GLIBC_2.3 fwprintf F
+GLIBC_2.3 fwrite F
+GLIBC_2.3 fwrite_unlocked F
+GLIBC_2.3 fwscanf F
+GLIBC_2.3 gai_strerror F
+GLIBC_2.3 gcvt F
+GLIBC_2.3 get_avphys_pages F
+GLIBC_2.3 get_current_dir_name F
+GLIBC_2.3 get_kernel_syms F
+GLIBC_2.3 get_myaddress F
+GLIBC_2.3 get_nprocs F
+GLIBC_2.3 get_nprocs_conf F
+GLIBC_2.3 get_phys_pages F
+GLIBC_2.3 getaddrinfo F
+GLIBC_2.3 getaliasbyname F
+GLIBC_2.3 getaliasbyname_r F
+GLIBC_2.3 getaliasent F
+GLIBC_2.3 getaliasent_r F
+GLIBC_2.3 getc F
+GLIBC_2.3 getc_unlocked F
+GLIBC_2.3 getchar F
+GLIBC_2.3 getchar_unlocked F
+GLIBC_2.3 getcontext F
+GLIBC_2.3 getcwd F
+GLIBC_2.3 getdate F
+GLIBC_2.3 getdate_err D 0x4
+GLIBC_2.3 getdate_r F
+GLIBC_2.3 getdelim F
+GLIBC_2.3 getdirentries F
+GLIBC_2.3 getdirentries64 F
+GLIBC_2.3 getdomainname F
+GLIBC_2.3 getdtablesize F
+GLIBC_2.3 getegid F
+GLIBC_2.3 getenv F
+GLIBC_2.3 geteuid F
+GLIBC_2.3 getfsent F
+GLIBC_2.3 getfsfile F
+GLIBC_2.3 getfsspec F
+GLIBC_2.3 getgid F
+GLIBC_2.3 getgrent F
+GLIBC_2.3 getgrent_r F
+GLIBC_2.3 getgrgid F
+GLIBC_2.3 getgrgid_r F
+GLIBC_2.3 getgrnam F
+GLIBC_2.3 getgrnam_r F
+GLIBC_2.3 getgrouplist F
+GLIBC_2.3 getgroups F
+GLIBC_2.3 gethostbyaddr F
+GLIBC_2.3 gethostbyaddr_r F
+GLIBC_2.3 gethostbyname F
+GLIBC_2.3 gethostbyname2 F
+GLIBC_2.3 gethostbyname2_r F
+GLIBC_2.3 gethostbyname_r F
+GLIBC_2.3 gethostent F
+GLIBC_2.3 gethostent_r F
+GLIBC_2.3 gethostid F
+GLIBC_2.3 gethostname F
+GLIBC_2.3 getifaddrs F
+GLIBC_2.3 getitimer F
+GLIBC_2.3 getline F
+GLIBC_2.3 getloadavg F
+GLIBC_2.3 getlogin F
+GLIBC_2.3 getlogin_r F
+GLIBC_2.3 getmntent F
+GLIBC_2.3 getmntent_r F
+GLIBC_2.3 getmsg F
+GLIBC_2.3 getnameinfo F
+GLIBC_2.3 getnetbyaddr F
+GLIBC_2.3 getnetbyaddr_r F
+GLIBC_2.3 getnetbyname F
+GLIBC_2.3 getnetbyname_r F
+GLIBC_2.3 getnetent F
+GLIBC_2.3 getnetent_r F
+GLIBC_2.3 getnetgrent F
+GLIBC_2.3 getnetgrent_r F
+GLIBC_2.3 getnetname F
+GLIBC_2.3 getopt F
+GLIBC_2.3 getopt_long F
+GLIBC_2.3 getopt_long_only F
+GLIBC_2.3 getpagesize F
+GLIBC_2.3 getpass F
+GLIBC_2.3 getpeername F
+GLIBC_2.3 getpgid F
+GLIBC_2.3 getpgrp F
+GLIBC_2.3 getpid F
+GLIBC_2.3 getpmsg F
+GLIBC_2.3 getppid F
+GLIBC_2.3 getpriority F
+GLIBC_2.3 getprotobyname F
+GLIBC_2.3 getprotobyname_r F
+GLIBC_2.3 getprotobynumber F
+GLIBC_2.3 getprotobynumber_r F
+GLIBC_2.3 getprotoent F
+GLIBC_2.3 getprotoent_r F
+GLIBC_2.3 getpt F
+GLIBC_2.3 getpublickey F
+GLIBC_2.3 getpw F
+GLIBC_2.3 getpwent F
+GLIBC_2.3 getpwent_r F
+GLIBC_2.3 getpwnam F
+GLIBC_2.3 getpwnam_r F
+GLIBC_2.3 getpwuid F
+GLIBC_2.3 getpwuid_r F
+GLIBC_2.3 getresgid F
+GLIBC_2.3 getresuid F
+GLIBC_2.3 getrlimit F
+GLIBC_2.3 getrlimit64 F
+GLIBC_2.3 getrpcbyname F
+GLIBC_2.3 getrpcbyname_r F
+GLIBC_2.3 getrpcbynumber F
+GLIBC_2.3 getrpcbynumber_r F
+GLIBC_2.3 getrpcent F
+GLIBC_2.3 getrpcent_r F
+GLIBC_2.3 getrpcport F
+GLIBC_2.3 getrusage F
+GLIBC_2.3 gets F
+GLIBC_2.3 getsecretkey F
+GLIBC_2.3 getservbyname F
+GLIBC_2.3 getservbyname_r F
+GLIBC_2.3 getservbyport F
+GLIBC_2.3 getservbyport_r F
+GLIBC_2.3 getservent F
+GLIBC_2.3 getservent_r F
+GLIBC_2.3 getsid F
+GLIBC_2.3 getsockname F
+GLIBC_2.3 getsockopt F
+GLIBC_2.3 getspent F
+GLIBC_2.3 getspent_r F
+GLIBC_2.3 getspnam F
+GLIBC_2.3 getspnam_r F
+GLIBC_2.3 getsubopt F
+GLIBC_2.3 gettext F
+GLIBC_2.3 gettimeofday F
+GLIBC_2.3 getttyent F
+GLIBC_2.3 getttynam F
+GLIBC_2.3 getuid F
+GLIBC_2.3 getusershell F
+GLIBC_2.3 getutent F
+GLIBC_2.3 getutent_r F
+GLIBC_2.3 getutid F
+GLIBC_2.3 getutid_r F
+GLIBC_2.3 getutline F
+GLIBC_2.3 getutline_r F
+GLIBC_2.3 getutmp F
+GLIBC_2.3 getutmpx F
+GLIBC_2.3 getutxent F
+GLIBC_2.3 getutxid F
+GLIBC_2.3 getutxline F
+GLIBC_2.3 getw F
+GLIBC_2.3 getwc F
+GLIBC_2.3 getwc_unlocked F
+GLIBC_2.3 getwchar F
+GLIBC_2.3 getwchar_unlocked F
+GLIBC_2.3 getwd F
+GLIBC_2.3 getxattr F
+GLIBC_2.3 glob F
+GLIBC_2.3 glob64 F
+GLIBC_2.3 glob_pattern_p F
+GLIBC_2.3 globfree F
+GLIBC_2.3 globfree64 F
+GLIBC_2.3 gmtime F
+GLIBC_2.3 gmtime_r F
+GLIBC_2.3 gnu_get_libc_release F
+GLIBC_2.3 gnu_get_libc_version F
+GLIBC_2.3 grantpt F
+GLIBC_2.3 group_member F
+GLIBC_2.3 gsignal F
+GLIBC_2.3 gtty F
+GLIBC_2.3 h_errlist D 0x28
+GLIBC_2.3 h_nerr D 0x4
+GLIBC_2.3 hasmntopt F
+GLIBC_2.3 hcreate F
+GLIBC_2.3 hcreate_r F
+GLIBC_2.3 hdestroy F
+GLIBC_2.3 hdestroy_r F
+GLIBC_2.3 herror F
+GLIBC_2.3 host2netname F
+GLIBC_2.3 hsearch F
+GLIBC_2.3 hsearch_r F
+GLIBC_2.3 hstrerror F
+GLIBC_2.3 htonl F
+GLIBC_2.3 htons F
+GLIBC_2.3 iconv F
+GLIBC_2.3 iconv_close F
+GLIBC_2.3 iconv_open F
+GLIBC_2.3 if_freenameindex F
+GLIBC_2.3 if_indextoname F
+GLIBC_2.3 if_nameindex F
+GLIBC_2.3 if_nametoindex F
+GLIBC_2.3 imaxabs F
+GLIBC_2.3 imaxdiv F
+GLIBC_2.3 in6addr_any D 0x10
+GLIBC_2.3 in6addr_loopback D 0x10
+GLIBC_2.3 index F
+GLIBC_2.3 inet_addr F
+GLIBC_2.3 inet_aton F
+GLIBC_2.3 inet_lnaof F
+GLIBC_2.3 inet_makeaddr F
+GLIBC_2.3 inet_netof F
+GLIBC_2.3 inet_network F
+GLIBC_2.3 inet_nsap_addr F
+GLIBC_2.3 inet_nsap_ntoa F
+GLIBC_2.3 inet_ntoa F
+GLIBC_2.3 inet_ntop F
+GLIBC_2.3 inet_pton F
+GLIBC_2.3 init_module F
+GLIBC_2.3 initgroups F
+GLIBC_2.3 initstate F
+GLIBC_2.3 initstate_r F
+GLIBC_2.3 innetgr F
+GLIBC_2.3 insque F
+GLIBC_2.3 ioctl F
+GLIBC_2.3 iruserok F
+GLIBC_2.3 iruserok_af F
+GLIBC_2.3 isalnum F
+GLIBC_2.3 isalnum_l F
+GLIBC_2.3 isalpha F
+GLIBC_2.3 isalpha_l F
+GLIBC_2.3 isascii F
+GLIBC_2.3 isastream F
+GLIBC_2.3 isatty F
+GLIBC_2.3 isblank F
+GLIBC_2.3 isblank_l F
+GLIBC_2.3 iscntrl F
+GLIBC_2.3 iscntrl_l F
+GLIBC_2.3 isctype F
+GLIBC_2.3 isdigit F
+GLIBC_2.3 isdigit_l F
+GLIBC_2.3 isfdtype F
+GLIBC_2.3 isgraph F
+GLIBC_2.3 isgraph_l F
+GLIBC_2.3 isinf F
+GLIBC_2.3 isinff F
+GLIBC_2.3 isinfl F
+GLIBC_2.3 islower F
+GLIBC_2.3 islower_l F
+GLIBC_2.3 isnan F
+GLIBC_2.3 isnanf F
+GLIBC_2.3 isnanl F
+GLIBC_2.3 isprint F
+GLIBC_2.3 isprint_l F
+GLIBC_2.3 ispunct F
+GLIBC_2.3 ispunct_l F
+GLIBC_2.3 isspace F
+GLIBC_2.3 isspace_l F
+GLIBC_2.3 isupper F
+GLIBC_2.3 isupper_l F
+GLIBC_2.3 iswalnum F
+GLIBC_2.3 iswalnum_l F
+GLIBC_2.3 iswalpha F
+GLIBC_2.3 iswalpha_l F
+GLIBC_2.3 iswblank F
+GLIBC_2.3 iswblank_l F
+GLIBC_2.3 iswcntrl F
+GLIBC_2.3 iswcntrl_l F
+GLIBC_2.3 iswctype F
+GLIBC_2.3 iswctype_l F
+GLIBC_2.3 iswdigit F
+GLIBC_2.3 iswdigit_l F
+GLIBC_2.3 iswgraph F
+GLIBC_2.3 iswgraph_l F
+GLIBC_2.3 iswlower F
+GLIBC_2.3 iswlower_l F
+GLIBC_2.3 iswprint F
+GLIBC_2.3 iswprint_l F
+GLIBC_2.3 iswpunct F
+GLIBC_2.3 iswpunct_l F
+GLIBC_2.3 iswspace F
+GLIBC_2.3 iswspace_l F
+GLIBC_2.3 iswupper F
+GLIBC_2.3 iswupper_l F
+GLIBC_2.3 iswxdigit F
+GLIBC_2.3 iswxdigit_l F
+GLIBC_2.3 isxdigit F
+GLIBC_2.3 isxdigit_l F
+GLIBC_2.3 jrand48 F
+GLIBC_2.3 jrand48_r F
+GLIBC_2.3 key_decryptsession F
+GLIBC_2.3 key_decryptsession_pk F
+GLIBC_2.3 key_encryptsession F
+GLIBC_2.3 key_encryptsession_pk F
+GLIBC_2.3 key_gendes F
+GLIBC_2.3 key_get_conv F
+GLIBC_2.3 key_secretkey_is_set F
+GLIBC_2.3 key_setnet F
+GLIBC_2.3 key_setsecret F
+GLIBC_2.3 kill F
+GLIBC_2.3 killpg F
+GLIBC_2.3 klogctl F
+GLIBC_2.3 l64a F
+GLIBC_2.3 labs F
+GLIBC_2.3 lchown F
+GLIBC_2.3 lckpwdf F
+GLIBC_2.3 lcong48 F
+GLIBC_2.3 lcong48_r F
+GLIBC_2.3 ldexp F
+GLIBC_2.3 ldexpf F
+GLIBC_2.3 ldexpl F
+GLIBC_2.3 ldiv F
+GLIBC_2.3 lfind F
+GLIBC_2.3 lgetxattr F
+GLIBC_2.3 link F
+GLIBC_2.3 listen F
+GLIBC_2.3 listxattr F
+GLIBC_2.3 llabs F
+GLIBC_2.3 lldiv F
+GLIBC_2.3 llistxattr F
+GLIBC_2.3 llseek F
+GLIBC_2.3 loc1 D 0x8
+GLIBC_2.3 loc2 D 0x8
+GLIBC_2.3 localeconv F
+GLIBC_2.3 localtime F
+GLIBC_2.3 localtime_r F
+GLIBC_2.3 lockf F
+GLIBC_2.3 lockf64 F
+GLIBC_2.3 locs D 0x8
+GLIBC_2.3 longjmp F
+GLIBC_2.3 lrand48 F
+GLIBC_2.3 lrand48_r F
+GLIBC_2.3 lremovexattr F
+GLIBC_2.3 lsearch F
+GLIBC_2.3 lseek F
+GLIBC_2.3 lseek64 F
+GLIBC_2.3 lsetxattr F
+GLIBC_2.3 lutimes F
+GLIBC_2.3 madvise F
+GLIBC_2.3 makecontext F
+GLIBC_2.3 mallinfo F
+GLIBC_2.3 malloc F
+GLIBC_2.3 malloc_get_state F
+GLIBC_2.3 malloc_set_state F
+GLIBC_2.3 malloc_stats F
+GLIBC_2.3 malloc_trim F
+GLIBC_2.3 malloc_usable_size F
+GLIBC_2.3 mallopt F
+GLIBC_2.3 mallwatch D 0x8
+GLIBC_2.3 mblen F
+GLIBC_2.3 mbrlen F
+GLIBC_2.3 mbrtowc F
+GLIBC_2.3 mbsinit F
+GLIBC_2.3 mbsnrtowcs F
+GLIBC_2.3 mbsrtowcs F
+GLIBC_2.3 mbstowcs F
+GLIBC_2.3 mbtowc F
+GLIBC_2.3 mcheck F
+GLIBC_2.3 mcheck_check_all F
+GLIBC_2.3 mcheck_pedantic F
+GLIBC_2.3 memalign F
+GLIBC_2.3 memccpy F
+GLIBC_2.3 memchr F
+GLIBC_2.3 memcmp F
+GLIBC_2.3 memcpy F
+GLIBC_2.3 memfrob F
+GLIBC_2.3 memmem F
+GLIBC_2.3 memmove F
+GLIBC_2.3 mempcpy F
+GLIBC_2.3 memrchr F
+GLIBC_2.3 memset F
+GLIBC_2.3 mincore F
+GLIBC_2.3 mkdir F
+GLIBC_2.3 mkdtemp F
+GLIBC_2.3 mkfifo F
+GLIBC_2.3 mkstemp F
+GLIBC_2.3 mkstemp64 F
+GLIBC_2.3 mktemp F
+GLIBC_2.3 mktime F
+GLIBC_2.3 mlock F
+GLIBC_2.3 mlockall F
+GLIBC_2.3 mmap F
+GLIBC_2.3 mmap64 F
+GLIBC_2.3 modf F
+GLIBC_2.3 modff F
+GLIBC_2.3 modfl F
+GLIBC_2.3 moncontrol F
+GLIBC_2.3 monstartup F
+GLIBC_2.3 mount F
+GLIBC_2.3 mprobe F
+GLIBC_2.3 mprotect F
+GLIBC_2.3 mrand48 F
+GLIBC_2.3 mrand48_r F
+GLIBC_2.3 mremap F
+GLIBC_2.3 msgctl F
+GLIBC_2.3 msgget F
+GLIBC_2.3 msgrcv F
+GLIBC_2.3 msgsnd F
+GLIBC_2.3 msync F
+GLIBC_2.3 mtrace F
+GLIBC_2.3 munlock F
+GLIBC_2.3 munlockall F
+GLIBC_2.3 munmap F
+GLIBC_2.3 muntrace F
+GLIBC_2.3 nanosleep F
+GLIBC_2.3 netname2host F
+GLIBC_2.3 netname2user F
+GLIBC_2.3 newlocale F
+GLIBC_2.3 nfsservctl F
+GLIBC_2.3 nftw F
+GLIBC_2.3 nftw64 F
+GLIBC_2.3 ngettext F
+GLIBC_2.3 nice F
+GLIBC_2.3 nl_langinfo F
+GLIBC_2.3 nl_langinfo_l F
+GLIBC_2.3 nrand48 F
+GLIBC_2.3 nrand48_r F
+GLIBC_2.3 ntohl F
+GLIBC_2.3 ntohs F
+GLIBC_2.3 ntp_adjtime F
+GLIBC_2.3 ntp_gettime F
+GLIBC_2.3 obstack_alloc_failed_handler D 0x8
+GLIBC_2.3 obstack_exit_failure D 0x4
+GLIBC_2.3 obstack_free F
+GLIBC_2.3 obstack_printf F
+GLIBC_2.3 obstack_vprintf F
+GLIBC_2.3 on_exit F
+GLIBC_2.3 open F
+GLIBC_2.3 open64 F
+GLIBC_2.3 open_memstream F
+GLIBC_2.3 opendir F
+GLIBC_2.3 openlog F
+GLIBC_2.3 optarg D 0x8
+GLIBC_2.3 opterr D 0x4
+GLIBC_2.3 optind D 0x4
+GLIBC_2.3 optopt D 0x4
+GLIBC_2.3 parse_printf_format F
+GLIBC_2.3 passwd2des F
+GLIBC_2.3 pathconf F
+GLIBC_2.3 pause F
+GLIBC_2.3 pclose F
+GLIBC_2.3 perror F
+GLIBC_2.3 personality F
+GLIBC_2.3 pipe F
+GLIBC_2.3 pivot_root F
+GLIBC_2.3 pmap_getmaps F
+GLIBC_2.3 pmap_getport F
+GLIBC_2.3 pmap_rmtcall F
+GLIBC_2.3 pmap_set F
+GLIBC_2.3 pmap_unset F
+GLIBC_2.3 poll F
+GLIBC_2.3 popen F
+GLIBC_2.3 posix_fadvise F
+GLIBC_2.3 posix_fadvise64 F
+GLIBC_2.3 posix_fallocate F
+GLIBC_2.3 posix_fallocate64 F
+GLIBC_2.3 posix_madvise F
+GLIBC_2.3 posix_memalign F
+GLIBC_2.3 posix_openpt F
+GLIBC_2.3 posix_spawn F
+GLIBC_2.3 posix_spawn_file_actions_addclose F
+GLIBC_2.3 posix_spawn_file_actions_adddup2 F
+GLIBC_2.3 posix_spawn_file_actions_addopen F
+GLIBC_2.3 posix_spawn_file_actions_destroy F
+GLIBC_2.3 posix_spawn_file_actions_init F
+GLIBC_2.3 posix_spawnattr_destroy F
+GLIBC_2.3 posix_spawnattr_getflags F
+GLIBC_2.3 posix_spawnattr_getpgroup F
+GLIBC_2.3 posix_spawnattr_getschedparam F
+GLIBC_2.3 posix_spawnattr_getschedpolicy F
+GLIBC_2.3 posix_spawnattr_getsigdefault F
+GLIBC_2.3 posix_spawnattr_getsigmask F
+GLIBC_2.3 posix_spawnattr_init F
+GLIBC_2.3 posix_spawnattr_setflags F
+GLIBC_2.3 posix_spawnattr_setpgroup F
+GLIBC_2.3 posix_spawnattr_setschedparam F
+GLIBC_2.3 posix_spawnattr_setschedpolicy F
+GLIBC_2.3 posix_spawnattr_setsigdefault F
+GLIBC_2.3 posix_spawnattr_setsigmask F
+GLIBC_2.3 posix_spawnp F
+GLIBC_2.3 prctl F
+GLIBC_2.3 pread F
+GLIBC_2.3 pread64 F
+GLIBC_2.3 printf F
+GLIBC_2.3 printf_size F
+GLIBC_2.3 printf_size_info F
+GLIBC_2.3 profil F
+GLIBC_2.3 program_invocation_name D 0x8
+GLIBC_2.3 program_invocation_short_name D 0x8
+GLIBC_2.3 pselect F
+GLIBC_2.3 psignal F
+GLIBC_2.3 pthread_attr_destroy F
+GLIBC_2.3 pthread_attr_getdetachstate F
+GLIBC_2.3 pthread_attr_getinheritsched F
+GLIBC_2.3 pthread_attr_getschedparam F
+GLIBC_2.3 pthread_attr_getschedpolicy F
+GLIBC_2.3 pthread_attr_getscope F
+GLIBC_2.3 pthread_attr_init F
+GLIBC_2.3 pthread_attr_setdetachstate F
+GLIBC_2.3 pthread_attr_setinheritsched F
+GLIBC_2.3 pthread_attr_setschedparam F
+GLIBC_2.3 pthread_attr_setschedpolicy F
+GLIBC_2.3 pthread_attr_setscope F
+GLIBC_2.3 pthread_cond_broadcast F
+GLIBC_2.3 pthread_cond_destroy F
+GLIBC_2.3 pthread_cond_init F
+GLIBC_2.3 pthread_cond_signal F
+GLIBC_2.3 pthread_cond_timedwait F
+GLIBC_2.3 pthread_cond_wait F
+GLIBC_2.3 pthread_condattr_destroy F
+GLIBC_2.3 pthread_condattr_init F
+GLIBC_2.3 pthread_equal F
+GLIBC_2.3 pthread_exit F
+GLIBC_2.3 pthread_getschedparam F
+GLIBC_2.3 pthread_mutex_destroy F
+GLIBC_2.3 pthread_mutex_init F
+GLIBC_2.3 pthread_mutex_lock F
+GLIBC_2.3 pthread_mutex_unlock F
+GLIBC_2.3 pthread_self F
+GLIBC_2.3 pthread_setcancelstate F
+GLIBC_2.3 pthread_setcanceltype F
+GLIBC_2.3 pthread_setschedparam F
+GLIBC_2.3 ptrace F
+GLIBC_2.3 ptsname F
+GLIBC_2.3 ptsname_r F
+GLIBC_2.3 putc F
+GLIBC_2.3 putc_unlocked F
+GLIBC_2.3 putchar F
+GLIBC_2.3 putchar_unlocked F
+GLIBC_2.3 putenv F
+GLIBC_2.3 putgrent F
+GLIBC_2.3 putmsg F
+GLIBC_2.3 putpmsg F
+GLIBC_2.3 putpwent F
+GLIBC_2.3 puts F
+GLIBC_2.3 putspent F
+GLIBC_2.3 pututline F
+GLIBC_2.3 pututxline F
+GLIBC_2.3 putw F
+GLIBC_2.3 putwc F
+GLIBC_2.3 putwc_unlocked F
+GLIBC_2.3 putwchar F
+GLIBC_2.3 putwchar_unlocked F
+GLIBC_2.3 pvalloc F
+GLIBC_2.3 pwrite F
+GLIBC_2.3 pwrite64 F
+GLIBC_2.3 qecvt F
+GLIBC_2.3 qecvt_r F
+GLIBC_2.3 qfcvt F
+GLIBC_2.3 qfcvt_r F
+GLIBC_2.3 qgcvt F
+GLIBC_2.3 qsort F
+GLIBC_2.3 query_module F
+GLIBC_2.3 quotactl F
+GLIBC_2.3 raise F
+GLIBC_2.3 rand F
+GLIBC_2.3 rand_r F
+GLIBC_2.3 random F
+GLIBC_2.3 random_r F
+GLIBC_2.3 rawmemchr F
+GLIBC_2.3 rcmd F
+GLIBC_2.3 rcmd_af F
+GLIBC_2.3 re_comp F
+GLIBC_2.3 re_compile_fastmap F
+GLIBC_2.3 re_compile_pattern F
+GLIBC_2.3 re_exec F
+GLIBC_2.3 re_match F
+GLIBC_2.3 re_match_2 F
+GLIBC_2.3 re_search F
+GLIBC_2.3 re_search_2 F
+GLIBC_2.3 re_set_registers F
+GLIBC_2.3 re_set_syntax F
+GLIBC_2.3 re_syntax_options D 0x8
+GLIBC_2.3 read F
+GLIBC_2.3 readahead F
+GLIBC_2.3 readdir F
+GLIBC_2.3 readdir64 F
+GLIBC_2.3 readdir64_r F
+GLIBC_2.3 readdir_r F
+GLIBC_2.3 readlink F
+GLIBC_2.3 readv F
+GLIBC_2.3 realloc F
+GLIBC_2.3 realpath F
+GLIBC_2.3 reboot F
+GLIBC_2.3 recv F
+GLIBC_2.3 recvfrom F
+GLIBC_2.3 recvmsg F
+GLIBC_2.3 regcomp F
+GLIBC_2.3 regerror F
+GLIBC_2.3 regexec F
+GLIBC_2.3 regfree F
+GLIBC_2.3 register_printf_function F
+GLIBC_2.3 registerrpc F
+GLIBC_2.3 remove F
+GLIBC_2.3 removexattr F
+GLIBC_2.3 remque F
+GLIBC_2.3 rename F
+GLIBC_2.3 revoke F
+GLIBC_2.3 rewind F
+GLIBC_2.3 rewinddir F
+GLIBC_2.3 rexec F
+GLIBC_2.3 rexec_af F
+GLIBC_2.3 rexecoptions D 0x4
+GLIBC_2.3 rindex F
+GLIBC_2.3 rmdir F
+GLIBC_2.3 rpc_createerr D 0x20
+GLIBC_2.3 rpmatch F
+GLIBC_2.3 rresvport F
+GLIBC_2.3 rresvport_af F
+GLIBC_2.3 rtime F
+GLIBC_2.3 ruserok F
+GLIBC_2.3 ruserok_af F
+GLIBC_2.3 ruserpass F
+GLIBC_2.3 sbrk F
+GLIBC_2.3 scalbn F
+GLIBC_2.3 scalbnf F
+GLIBC_2.3 scalbnl F
+GLIBC_2.3 scandir F
+GLIBC_2.3 scandir64 F
+GLIBC_2.3 scanf F
+GLIBC_2.3 sched_get_priority_max F
+GLIBC_2.3 sched_get_priority_min F
+GLIBC_2.3 sched_getparam F
+GLIBC_2.3 sched_getscheduler F
+GLIBC_2.3 sched_rr_get_interval F
+GLIBC_2.3 sched_setparam F
+GLIBC_2.3 sched_setscheduler F
+GLIBC_2.3 sched_yield F
+GLIBC_2.3 seed48 F
+GLIBC_2.3 seed48_r F
+GLIBC_2.3 seekdir F
+GLIBC_2.3 select F
+GLIBC_2.3 semctl F
+GLIBC_2.3 semget F
+GLIBC_2.3 semop F
+GLIBC_2.3 send F
+GLIBC_2.3 sendfile F
+GLIBC_2.3 sendfile64 F
+GLIBC_2.3 sendmsg F
+GLIBC_2.3 sendto F
+GLIBC_2.3 setaliasent F
+GLIBC_2.3 setbuf F
+GLIBC_2.3 setbuffer F
+GLIBC_2.3 setcontext F
+GLIBC_2.3 setdomainname F
+GLIBC_2.3 setegid F
+GLIBC_2.3 setenv F
+GLIBC_2.3 seteuid F
+GLIBC_2.3 setfsent F
+GLIBC_2.3 setfsgid F
+GLIBC_2.3 setfsuid F
+GLIBC_2.3 setgid F
+GLIBC_2.3 setgrent F
+GLIBC_2.3 setgroups F
+GLIBC_2.3 sethostent F
+GLIBC_2.3 sethostid F
+GLIBC_2.3 sethostname F
+GLIBC_2.3 setitimer F
+GLIBC_2.3 setjmp F
+GLIBC_2.3 setlinebuf F
+GLIBC_2.3 setlocale F
+GLIBC_2.3 setlogin F
+GLIBC_2.3 setlogmask F
+GLIBC_2.3 setmntent F
+GLIBC_2.3 setnetent F
+GLIBC_2.3 setnetgrent F
+GLIBC_2.3 setpgid F
+GLIBC_2.3 setpgrp F
+GLIBC_2.3 setpriority F
+GLIBC_2.3 setprotoent F
+GLIBC_2.3 setpwent F
+GLIBC_2.3 setregid F
+GLIBC_2.3 setresgid F
+GLIBC_2.3 setresuid F
+GLIBC_2.3 setreuid F
+GLIBC_2.3 setrlimit F
+GLIBC_2.3 setrlimit64 F
+GLIBC_2.3 setrpcent F
+GLIBC_2.3 setservent F
+GLIBC_2.3 setsid F
+GLIBC_2.3 setsockopt F
+GLIBC_2.3 setspent F
+GLIBC_2.3 setstate F
+GLIBC_2.3 setstate_r F
+GLIBC_2.3 settimeofday F
+GLIBC_2.3 setttyent F
+GLIBC_2.3 setuid F
+GLIBC_2.3 setusershell F
+GLIBC_2.3 setutent F
+GLIBC_2.3 setutxent F
+GLIBC_2.3 setvbuf F
+GLIBC_2.3 setxattr F
+GLIBC_2.3 sgetspent F
+GLIBC_2.3 sgetspent_r F
+GLIBC_2.3 shmat F
+GLIBC_2.3 shmctl F
+GLIBC_2.3 shmdt F
+GLIBC_2.3 shmget F
+GLIBC_2.3 shutdown F
+GLIBC_2.3 sigaction F
+GLIBC_2.3 sigaddset F
+GLIBC_2.3 sigaltstack F
+GLIBC_2.3 sigandset F
+GLIBC_2.3 sigblock F
+GLIBC_2.3 sigdelset F
+GLIBC_2.3 sigemptyset F
+GLIBC_2.3 sigfillset F
+GLIBC_2.3 siggetmask F
+GLIBC_2.3 sighold F
+GLIBC_2.3 sigignore F
+GLIBC_2.3 siginterrupt F
+GLIBC_2.3 sigisemptyset F
+GLIBC_2.3 sigismember F
+GLIBC_2.3 siglongjmp F
+GLIBC_2.3 signal F
+GLIBC_2.3 sigorset F
+GLIBC_2.3 sigpause F
+GLIBC_2.3 sigpending F
+GLIBC_2.3 sigprocmask F
+GLIBC_2.3 sigqueue F
+GLIBC_2.3 sigrelse F
+GLIBC_2.3 sigreturn F
+GLIBC_2.3 sigset F
+GLIBC_2.3 sigsetmask F
+GLIBC_2.3 sigstack F
+GLIBC_2.3 sigsuspend F
+GLIBC_2.3 sigtimedwait F
+GLIBC_2.3 sigvec F
+GLIBC_2.3 sigwait F
+GLIBC_2.3 sigwaitinfo F
+GLIBC_2.3 sleep F
+GLIBC_2.3 snprintf F
+GLIBC_2.3 sockatmark F
+GLIBC_2.3 socket F
+GLIBC_2.3 socketpair F
+GLIBC_2.3 sprintf F
+GLIBC_2.3 sprofil F
+GLIBC_2.3 srand F
+GLIBC_2.3 srand48 F
+GLIBC_2.3 srand48_r F
+GLIBC_2.3 srandom F
+GLIBC_2.3 srandom_r F
+GLIBC_2.3 sscanf F
+GLIBC_2.3 ssignal F
+GLIBC_2.3 sstk F
+GLIBC_2.3 statfs F
+GLIBC_2.3 statfs64 F
+GLIBC_2.3 statvfs F
+GLIBC_2.3 statvfs64 F
+GLIBC_2.3 stderr D 0x8
+GLIBC_2.3 stdin D 0x8
+GLIBC_2.3 stdout D 0x8
+GLIBC_2.3 step F
+GLIBC_2.3 stime F
+GLIBC_2.3 stpcpy F
+GLIBC_2.3 stpncpy F
+GLIBC_2.3 strcasecmp F
+GLIBC_2.3 strcasecmp_l F
+GLIBC_2.3 strcasestr F
+GLIBC_2.3 strcat F
+GLIBC_2.3 strchr F
+GLIBC_2.3 strchrnul F
+GLIBC_2.3 strcmp F
+GLIBC_2.3 strcoll F
+GLIBC_2.3 strcoll_l F
+GLIBC_2.3 strcpy F
+GLIBC_2.3 strcspn F
+GLIBC_2.3 strdup F
+GLIBC_2.3 strerror F
+GLIBC_2.3 strerror_r F
+GLIBC_2.3 strfmon F
+GLIBC_2.3 strfmon_l F
+GLIBC_2.3 strfry F
+GLIBC_2.3 strftime F
+GLIBC_2.3 strftime_l F
+GLIBC_2.3 strlen F
+GLIBC_2.3 strncasecmp F
+GLIBC_2.3 strncasecmp_l F
+GLIBC_2.3 strncat F
+GLIBC_2.3 strncmp F
+GLIBC_2.3 strncpy F
+GLIBC_2.3 strndup F
+GLIBC_2.3 strnlen F
+GLIBC_2.3 strpbrk F
+GLIBC_2.3 strptime F
+GLIBC_2.3 strrchr F
+GLIBC_2.3 strsep F
+GLIBC_2.3 strsignal F
+GLIBC_2.3 strspn F
+GLIBC_2.3 strstr F
+GLIBC_2.3 strtod F
+GLIBC_2.3 strtod_l F
+GLIBC_2.3 strtof F
+GLIBC_2.3 strtof_l F
+GLIBC_2.3 strtoimax F
+GLIBC_2.3 strtok F
+GLIBC_2.3 strtok_r F
+GLIBC_2.3 strtol F
+GLIBC_2.3 strtol_l F
+GLIBC_2.3 strtold F
+GLIBC_2.3 strtold_l F
+GLIBC_2.3 strtoll F
+GLIBC_2.3 strtoq F
+GLIBC_2.3 strtoul F
+GLIBC_2.3 strtoul_l F
+GLIBC_2.3 strtoull F
+GLIBC_2.3 strtoumax F
+GLIBC_2.3 strtouq F
+GLIBC_2.3 strverscmp F
+GLIBC_2.3 strxfrm F
+GLIBC_2.3 strxfrm_l F
+GLIBC_2.3 stty F
+GLIBC_2.3 svc_exit F
+GLIBC_2.3 svc_fdset D 0x80
+GLIBC_2.3 svc_getreq F
+GLIBC_2.3 svc_getreq_common F
+GLIBC_2.3 svc_getreq_poll F
+GLIBC_2.3 svc_getreqset F
+GLIBC_2.3 svc_max_pollfd D 0x4
+GLIBC_2.3 svc_pollfd D 0x8
+GLIBC_2.3 svc_register F
+GLIBC_2.3 svc_run F
+GLIBC_2.3 svc_sendreply F
+GLIBC_2.3 svc_unregister F
+GLIBC_2.3 svcauthdes_stats D 0x18
+GLIBC_2.3 svcerr_auth F
+GLIBC_2.3 svcerr_decode F
+GLIBC_2.3 svcerr_noproc F
+GLIBC_2.3 svcerr_noprog F
+GLIBC_2.3 svcerr_progvers F
+GLIBC_2.3 svcerr_systemerr F
+GLIBC_2.3 svcerr_weakauth F
+GLIBC_2.3 svcfd_create F
+GLIBC_2.3 svcraw_create F
+GLIBC_2.3 svctcp_create F
+GLIBC_2.3 svcudp_bufcreate F
+GLIBC_2.3 svcudp_create F
+GLIBC_2.3 svcudp_enablecache F
+GLIBC_2.3 svcunix_create F
+GLIBC_2.3 svcunixfd_create F
+GLIBC_2.3 swab F
+GLIBC_2.3 swapcontext F
+GLIBC_2.3 swapoff F
+GLIBC_2.3 swapon F
+GLIBC_2.3 swprintf F
+GLIBC_2.3 swscanf F
+GLIBC_2.3 symlink F
+GLIBC_2.3 sync F
+GLIBC_2.3 sys_errlist D 0x3f0
+GLIBC_2.3 sys_nerr D 0x4
+GLIBC_2.3 sys_sigabbrev D 0x200
+GLIBC_2.3 sys_siglist D 0x200
+GLIBC_2.3 syscall F
+GLIBC_2.3 sysconf F
+GLIBC_2.3 sysctl F
+GLIBC_2.3 sysinfo F
+GLIBC_2.3 syslog F
+GLIBC_2.3 system F
+GLIBC_2.3 sysv_signal F
+GLIBC_2.3 tcdrain F
+GLIBC_2.3 tcflow F
+GLIBC_2.3 tcflush F
+GLIBC_2.3 tcgetattr F
+GLIBC_2.3 tcgetpgrp F
+GLIBC_2.3 tcgetsid F
+GLIBC_2.3 tcsendbreak F
+GLIBC_2.3 tcsetattr F
+GLIBC_2.3 tcsetpgrp F
+GLIBC_2.3 tdelete F
+GLIBC_2.3 tdestroy F
+GLIBC_2.3 telldir F
+GLIBC_2.3 tempnam F
+GLIBC_2.3 textdomain F
+GLIBC_2.3 tfind F
+GLIBC_2.3 time F
+GLIBC_2.3 timegm F
+GLIBC_2.3 timelocal F
+GLIBC_2.3 times F
+GLIBC_2.3 timezone D 0x8
+GLIBC_2.3 tmpfile F
+GLIBC_2.3 tmpfile64 F
+GLIBC_2.3 tmpnam F
+GLIBC_2.3 tmpnam_r F
+GLIBC_2.3 toascii F
+GLIBC_2.3 tolower F
+GLIBC_2.3 tolower_l F
+GLIBC_2.3 toupper F
+GLIBC_2.3 toupper_l F
+GLIBC_2.3 towctrans F
+GLIBC_2.3 towctrans_l F
+GLIBC_2.3 towlower F
+GLIBC_2.3 towlower_l F
+GLIBC_2.3 towupper F
+GLIBC_2.3 towupper_l F
+GLIBC_2.3 tr_break F
+GLIBC_2.3 truncate F
+GLIBC_2.3 truncate64 F
+GLIBC_2.3 tsearch F
+GLIBC_2.3 ttyname F
+GLIBC_2.3 ttyname_r F
+GLIBC_2.3 ttyslot F
+GLIBC_2.3 twalk F
+GLIBC_2.3 tzname D 0x10
+GLIBC_2.3 tzset F
+GLIBC_2.3 ualarm F
+GLIBC_2.3 ulckpwdf F
+GLIBC_2.3 ulimit F
+GLIBC_2.3 umask F
+GLIBC_2.3 umount F
+GLIBC_2.3 umount2 F
+GLIBC_2.3 uname F
+GLIBC_2.3 ungetc F
+GLIBC_2.3 ungetwc F
+GLIBC_2.3 unlink F
+GLIBC_2.3 unlockpt F
+GLIBC_2.3 unsetenv F
+GLIBC_2.3 updwtmp F
+GLIBC_2.3 updwtmpx F
+GLIBC_2.3 uselib F
+GLIBC_2.3 uselocale F
+GLIBC_2.3 user2netname F
+GLIBC_2.3 usleep F
+GLIBC_2.3 ustat F
+GLIBC_2.3 utime F
+GLIBC_2.3 utimes F
+GLIBC_2.3 utmpname F
+GLIBC_2.3 utmpxname F
+GLIBC_2.3 valloc F
+GLIBC_2.3 vasprintf F
+GLIBC_2.3 vdprintf F
+GLIBC_2.3 verr F
+GLIBC_2.3 verrx F
+GLIBC_2.3 versionsort F
+GLIBC_2.3 versionsort64 F
+GLIBC_2.3 vfork F
+GLIBC_2.3 vfprintf F
+GLIBC_2.3 vfscanf F
+GLIBC_2.3 vfwprintf F
+GLIBC_2.3 vfwscanf F
+GLIBC_2.3 vhangup F
+GLIBC_2.3 vlimit F
+GLIBC_2.3 vprintf F
+GLIBC_2.3 vscanf F
+GLIBC_2.3 vsnprintf F
+GLIBC_2.3 vsprintf F
+GLIBC_2.3 vsscanf F
+GLIBC_2.3 vswprintf F
+GLIBC_2.3 vswscanf F
+GLIBC_2.3 vsyslog F
+GLIBC_2.3 vtimes F
+GLIBC_2.3 vwarn F
+GLIBC_2.3 vwarnx F
+GLIBC_2.3 vwprintf F
+GLIBC_2.3 vwscanf F
+GLIBC_2.3 wait F
+GLIBC_2.3 wait3 F
+GLIBC_2.3 wait4 F
+GLIBC_2.3 waitid F
+GLIBC_2.3 waitpid F
+GLIBC_2.3 warn F
+GLIBC_2.3 warnx F
+GLIBC_2.3 wcpcpy F
+GLIBC_2.3 wcpncpy F
+GLIBC_2.3 wcrtomb F
+GLIBC_2.3 wcscasecmp F
+GLIBC_2.3 wcscasecmp_l F
+GLIBC_2.3 wcscat F
+GLIBC_2.3 wcschr F
+GLIBC_2.3 wcschrnul F
+GLIBC_2.3 wcscmp F
+GLIBC_2.3 wcscoll F
+GLIBC_2.3 wcscoll_l F
+GLIBC_2.3 wcscpy F
+GLIBC_2.3 wcscspn F
+GLIBC_2.3 wcsdup F
+GLIBC_2.3 wcsftime F
+GLIBC_2.3 wcsftime_l F
+GLIBC_2.3 wcslen F
+GLIBC_2.3 wcsncasecmp F
+GLIBC_2.3 wcsncasecmp_l F
+GLIBC_2.3 wcsncat F
+GLIBC_2.3 wcsncmp F
+GLIBC_2.3 wcsncpy F
+GLIBC_2.3 wcsnlen F
+GLIBC_2.3 wcsnrtombs F
+GLIBC_2.3 wcspbrk F
+GLIBC_2.3 wcsrchr F
+GLIBC_2.3 wcsrtombs F
+GLIBC_2.3 wcsspn F
+GLIBC_2.3 wcsstr F
+GLIBC_2.3 wcstod F
+GLIBC_2.3 wcstod_l F
+GLIBC_2.3 wcstof F
+GLIBC_2.3 wcstof_l F
+GLIBC_2.3 wcstoimax F
+GLIBC_2.3 wcstok F
+GLIBC_2.3 wcstol F
+GLIBC_2.3 wcstol_l F
+GLIBC_2.3 wcstold F
+GLIBC_2.3 wcstold_l F
+GLIBC_2.3 wcstoll F
+GLIBC_2.3 wcstoll_l F
+GLIBC_2.3 wcstombs F
+GLIBC_2.3 wcstoq F
+GLIBC_2.3 wcstoul F
+GLIBC_2.3 wcstoul_l F
+GLIBC_2.3 wcstoull F
+GLIBC_2.3 wcstoull_l F
+GLIBC_2.3 wcstoumax F
+GLIBC_2.3 wcstouq F
+GLIBC_2.3 wcswcs F
+GLIBC_2.3 wcswidth F
+GLIBC_2.3 wcsxfrm F
+GLIBC_2.3 wcsxfrm_l F
+GLIBC_2.3 wctob F
+GLIBC_2.3 wctomb F
+GLIBC_2.3 wctrans F
+GLIBC_2.3 wctrans_l F
+GLIBC_2.3 wctype F
+GLIBC_2.3 wctype_l F
+GLIBC_2.3 wcwidth F
+GLIBC_2.3 wmemchr F
+GLIBC_2.3 wmemcmp F
+GLIBC_2.3 wmemcpy F
+GLIBC_2.3 wmemmove F
+GLIBC_2.3 wmempcpy F
+GLIBC_2.3 wmemset F
+GLIBC_2.3 wordexp F
+GLIBC_2.3 wordfree F
+GLIBC_2.3 wprintf F
+GLIBC_2.3 write F
+GLIBC_2.3 writev F
+GLIBC_2.3 wscanf F
+GLIBC_2.3 xdecrypt F
+GLIBC_2.3 xdr_accepted_reply F
+GLIBC_2.3 xdr_array F
+GLIBC_2.3 xdr_authdes_cred F
+GLIBC_2.3 xdr_authdes_verf F
+GLIBC_2.3 xdr_authunix_parms F
+GLIBC_2.3 xdr_bool F
+GLIBC_2.3 xdr_bytes F
+GLIBC_2.3 xdr_callhdr F
+GLIBC_2.3 xdr_callmsg F
+GLIBC_2.3 xdr_char F
+GLIBC_2.3 xdr_cryptkeyarg F
+GLIBC_2.3 xdr_cryptkeyarg2 F
+GLIBC_2.3 xdr_cryptkeyres F
+GLIBC_2.3 xdr_des_block F
+GLIBC_2.3 xdr_double F
+GLIBC_2.3 xdr_enum F
+GLIBC_2.3 xdr_float F
+GLIBC_2.3 xdr_free F
+GLIBC_2.3 xdr_getcredres F
+GLIBC_2.3 xdr_hyper F
+GLIBC_2.3 xdr_int F
+GLIBC_2.3 xdr_int16_t F
+GLIBC_2.3 xdr_int32_t F
+GLIBC_2.3 xdr_int64_t F
+GLIBC_2.3 xdr_int8_t F
+GLIBC_2.3 xdr_key_netstarg F
+GLIBC_2.3 xdr_key_netstres F
+GLIBC_2.3 xdr_keybuf F
+GLIBC_2.3 xdr_keystatus F
+GLIBC_2.3 xdr_long F
+GLIBC_2.3 xdr_longlong_t F
+GLIBC_2.3 xdr_netnamestr F
+GLIBC_2.3 xdr_netobj F
+GLIBC_2.3 xdr_opaque F
+GLIBC_2.3 xdr_opaque_auth F
+GLIBC_2.3 xdr_pmap F
+GLIBC_2.3 xdr_pmaplist F
+GLIBC_2.3 xdr_pointer F
+GLIBC_2.3 xdr_reference F
+GLIBC_2.3 xdr_rejected_reply F
+GLIBC_2.3 xdr_replymsg F
+GLIBC_2.3 xdr_rmtcall_args F
+GLIBC_2.3 xdr_rmtcallres F
+GLIBC_2.3 xdr_short F
+GLIBC_2.3 xdr_sizeof F
+GLIBC_2.3 xdr_string F
+GLIBC_2.3 xdr_u_char F
+GLIBC_2.3 xdr_u_hyper F
+GLIBC_2.3 xdr_u_int F
+GLIBC_2.3 xdr_u_long F
+GLIBC_2.3 xdr_u_longlong_t F
+GLIBC_2.3 xdr_u_short F
+GLIBC_2.3 xdr_uint16_t F
+GLIBC_2.3 xdr_uint32_t F
+GLIBC_2.3 xdr_uint64_t F
+GLIBC_2.3 xdr_uint8_t F
+GLIBC_2.3 xdr_union F
+GLIBC_2.3 xdr_unixcred F
+GLIBC_2.3 xdr_vector F
+GLIBC_2.3 xdr_void F
+GLIBC_2.3 xdr_wrapstring F
+GLIBC_2.3 xdrmem_create F
+GLIBC_2.3 xdrrec_create F
+GLIBC_2.3 xdrrec_endofrecord F
+GLIBC_2.3 xdrrec_eof F
+GLIBC_2.3 xdrrec_skiprecord F
+GLIBC_2.3 xdrstdio_create F
+GLIBC_2.3 xencrypt F
+GLIBC_2.3 xprt_register F
+GLIBC_2.3 xprt_unregister F
+GLIBC_2.3.2 __register_atfork F
+GLIBC_2.3.2 epoll_create F
+GLIBC_2.3.2 epoll_ctl F
+GLIBC_2.3.2 epoll_wait F
+GLIBC_2.3.2 lchmod F
+GLIBC_2.3.2 pthread_cond_broadcast F
+GLIBC_2.3.2 pthread_cond_destroy F
+GLIBC_2.3.2 pthread_cond_init F
+GLIBC_2.3.2 pthread_cond_signal F
+GLIBC_2.3.2 pthread_cond_timedwait F
+GLIBC_2.3.2 pthread_cond_wait F
+GLIBC_2.3.2 strptime_l F
+GLIBC_2.3.3 _sys_siglist D 0x208
+GLIBC_2.3.3 gnu_dev_major F
+GLIBC_2.3.3 gnu_dev_makedev F
+GLIBC_2.3.3 gnu_dev_minor F
+GLIBC_2.3.3 inet6_option_alloc F
+GLIBC_2.3.3 inet6_option_append F
+GLIBC_2.3.3 inet6_option_find F
+GLIBC_2.3.3 inet6_option_init F
+GLIBC_2.3.3 inet6_option_next F
+GLIBC_2.3.3 inet6_option_space F
+GLIBC_2.3.3 nftw F
+GLIBC_2.3.3 nftw64 F
+GLIBC_2.3.3 remap_file_pages F
+GLIBC_2.3.3 sched_getaffinity F
+GLIBC_2.3.3 sched_setaffinity F
+GLIBC_2.3.3 semtimedop F
+GLIBC_2.3.3 strtoll_l F
+GLIBC_2.3.3 strtoull_l F
+GLIBC_2.3.3 sys_sigabbrev D 0x208
+GLIBC_2.3.3 sys_siglist D 0x208
+GLIBC_2.3.4 __chk_fail F
+GLIBC_2.3.4 __fprintf_chk F
+GLIBC_2.3.4 __gets_chk F
+GLIBC_2.3.4 __memcpy_chk F
+GLIBC_2.3.4 __memmove_chk F
+GLIBC_2.3.4 __mempcpy_chk F
+GLIBC_2.3.4 __memset_chk F
+GLIBC_2.3.4 __printf_chk F
+GLIBC_2.3.4 __sigsetjmp F
+GLIBC_2.3.4 __snprintf_chk F
+GLIBC_2.3.4 __sprintf_chk F
+GLIBC_2.3.4 __stpcpy_chk F
+GLIBC_2.3.4 __strcat_chk F
+GLIBC_2.3.4 __strcpy_chk F
+GLIBC_2.3.4 __strncat_chk F
+GLIBC_2.3.4 __strncpy_chk F
+GLIBC_2.3.4 __vfprintf_chk F
+GLIBC_2.3.4 __vprintf_chk F
+GLIBC_2.3.4 __vsnprintf_chk F
+GLIBC_2.3.4 __vsprintf_chk F
+GLIBC_2.3.4 __xpg_strerror_r F
+GLIBC_2.3.4 _longjmp F
+GLIBC_2.3.4 _setjmp F
+GLIBC_2.3.4 getcontext F
+GLIBC_2.3.4 getipv4sourcefilter F
+GLIBC_2.3.4 getsourcefilter F
+GLIBC_2.3.4 longjmp F
+GLIBC_2.3.4 regexec F
+GLIBC_2.3.4 sched_getaffinity F
+GLIBC_2.3.4 sched_setaffinity F
+GLIBC_2.3.4 setcontext F
+GLIBC_2.3.4 setipv4sourcefilter F
+GLIBC_2.3.4 setjmp F
+GLIBC_2.3.4 setsourcefilter F
+GLIBC_2.3.4 siglongjmp F
+GLIBC_2.3.4 swapcontext F
+GLIBC_2.3.4 xdr_quad_t F
+GLIBC_2.3.4 xdr_u_quad_t F
+GLIBC_2.30 __nldbl_argp_error F
+GLIBC_2.30 __nldbl_argp_failure F
+GLIBC_2.30 __nldbl_err F
+GLIBC_2.30 __nldbl_error F
+GLIBC_2.30 __nldbl_error_at_line F
+GLIBC_2.30 __nldbl_errx F
+GLIBC_2.30 __nldbl_verr F
+GLIBC_2.30 __nldbl_verrx F
+GLIBC_2.30 __nldbl_vwarn F
+GLIBC_2.30 __nldbl_vwarnx F
+GLIBC_2.30 __nldbl_warn F
+GLIBC_2.30 __nldbl_warnx F
+GLIBC_2.30 getdents64 F
+GLIBC_2.30 gettid F
+GLIBC_2.30 tgkill F
+GLIBC_2.30 twalk_r F
+GLIBC_2.4 _IO_fprintf F
+GLIBC_2.4 _IO_printf F
+GLIBC_2.4 _IO_sprintf F
+GLIBC_2.4 _IO_sscanf F
+GLIBC_2.4 _IO_vfprintf F
+GLIBC_2.4 _IO_vfscanf F
+GLIBC_2.4 _IO_vsprintf F
+GLIBC_2.4 __asprintf F
+GLIBC_2.4 __confstr_chk F
+GLIBC_2.4 __fgets_chk F
+GLIBC_2.4 __fgets_unlocked_chk F
+GLIBC_2.4 __fgetws_chk F
+GLIBC_2.4 __fgetws_unlocked_chk F
+GLIBC_2.4 __finitel F
+GLIBC_2.4 __fprintf_chk F
+GLIBC_2.4 __fwprintf_chk F
+GLIBC_2.4 __fxstatat F
+GLIBC_2.4 __fxstatat64 F
+GLIBC_2.4 __getcwd_chk F
+GLIBC_2.4 __getdomainname_chk F
+GLIBC_2.4 __getgroups_chk F
+GLIBC_2.4 __gethostname_chk F
+GLIBC_2.4 __getlogin_r_chk F
+GLIBC_2.4 __getwd_chk F
+GLIBC_2.4 __isinfl F
+GLIBC_2.4 __isnanl F
+GLIBC_2.4 __mbsnrtowcs_chk F
+GLIBC_2.4 __mbsrtowcs_chk F
+GLIBC_2.4 __mbstowcs_chk F
+GLIBC_2.4 __nldbl__IO_fprintf F
+GLIBC_2.4 __nldbl__IO_printf F
+GLIBC_2.4 __nldbl__IO_sprintf F
+GLIBC_2.4 __nldbl__IO_sscanf F
+GLIBC_2.4 __nldbl__IO_vfprintf F
+GLIBC_2.4 __nldbl__IO_vfscanf F
+GLIBC_2.4 __nldbl__IO_vsprintf F
+GLIBC_2.4 __nldbl___asprintf F
+GLIBC_2.4 __nldbl___fprintf_chk F
+GLIBC_2.4 __nldbl___fwprintf_chk F
+GLIBC_2.4 __nldbl___printf_chk F
+GLIBC_2.4 __nldbl___printf_fp F
+GLIBC_2.4 __nldbl___snprintf_chk F
+GLIBC_2.4 __nldbl___sprintf_chk F
+GLIBC_2.4 __nldbl___strfmon_l F
+GLIBC_2.4 __nldbl___swprintf_chk F
+GLIBC_2.4 __nldbl___syslog_chk F
+GLIBC_2.4 __nldbl___vfprintf_chk F
+GLIBC_2.4 __nldbl___vfscanf F
+GLIBC_2.4 __nldbl___vfwprintf_chk F
+GLIBC_2.4 __nldbl___vprintf_chk F
+GLIBC_2.4 __nldbl___vsnprintf F
+GLIBC_2.4 __nldbl___vsnprintf_chk F
+GLIBC_2.4 __nldbl___vsprintf_chk F
+GLIBC_2.4 __nldbl___vsscanf F
+GLIBC_2.4 __nldbl___vstrfmon F
+GLIBC_2.4 __nldbl___vstrfmon_l F
+GLIBC_2.4 __nldbl___vswprintf_chk F
+GLIBC_2.4 __nldbl___vsyslog_chk F
+GLIBC_2.4 __nldbl___vwprintf_chk F
+GLIBC_2.4 __nldbl___wprintf_chk F
+GLIBC_2.4 __nldbl_asprintf F
+GLIBC_2.4 __nldbl_dprintf F
+GLIBC_2.4 __nldbl_fprintf F
+GLIBC_2.4 __nldbl_fscanf F
+GLIBC_2.4 __nldbl_fwprintf F
+GLIBC_2.4 __nldbl_fwscanf F
+GLIBC_2.4 __nldbl_obstack_printf F
+GLIBC_2.4 __nldbl_obstack_vprintf F
+GLIBC_2.4 __nldbl_printf F
+GLIBC_2.4 __nldbl_printf_size F
+GLIBC_2.4 __nldbl_scanf F
+GLIBC_2.4 __nldbl_snprintf F
+GLIBC_2.4 __nldbl_sprintf F
+GLIBC_2.4 __nldbl_sscanf F
+GLIBC_2.4 __nldbl_strfmon F
+GLIBC_2.4 __nldbl_strfmon_l F
+GLIBC_2.4 __nldbl_swprintf F
+GLIBC_2.4 __nldbl_swscanf F
+GLIBC_2.4 __nldbl_syslog F
+GLIBC_2.4 __nldbl_vasprintf F
+GLIBC_2.4 __nldbl_vdprintf F
+GLIBC_2.4 __nldbl_vfprintf F
+GLIBC_2.4 __nldbl_vfscanf F
+GLIBC_2.4 __nldbl_vfwprintf F
+GLIBC_2.4 __nldbl_vfwscanf F
+GLIBC_2.4 __nldbl_vprintf F
+GLIBC_2.4 __nldbl_vscanf F
+GLIBC_2.4 __nldbl_vsnprintf F
+GLIBC_2.4 __nldbl_vsprintf F
+GLIBC_2.4 __nldbl_vsscanf F
+GLIBC_2.4 __nldbl_vswprintf F
+GLIBC_2.4 __nldbl_vswscanf F
+GLIBC_2.4 __nldbl_vsyslog F
+GLIBC_2.4 __nldbl_vwprintf F
+GLIBC_2.4 __nldbl_vwscanf F
+GLIBC_2.4 __nldbl_wprintf F
+GLIBC_2.4 __nldbl_wscanf F
+GLIBC_2.4 __pread64_chk F
+GLIBC_2.4 __pread_chk F
+GLIBC_2.4 __printf_chk F
+GLIBC_2.4 __printf_fp F
+GLIBC_2.4 __ptsname_r_chk F
+GLIBC_2.4 __read_chk F
+GLIBC_2.4 __readlink_chk F
+GLIBC_2.4 __realpath_chk F
+GLIBC_2.4 __recv_chk F
+GLIBC_2.4 __recvfrom_chk F
+GLIBC_2.4 __signbitl F
+GLIBC_2.4 __snprintf_chk F
+GLIBC_2.4 __sprintf_chk F
+GLIBC_2.4 __stack_chk_fail F
+GLIBC_2.4 __stpncpy_chk F
+GLIBC_2.4 __strfmon_l F
+GLIBC_2.4 __strtold_internal F
+GLIBC_2.4 __strtold_l F
+GLIBC_2.4 __swprintf_chk F
+GLIBC_2.4 __syslog_chk F
+GLIBC_2.4 __ttyname_r_chk F
+GLIBC_2.4 __vfprintf_chk F
+GLIBC_2.4 __vfscanf F
+GLIBC_2.4 __vfwprintf_chk F
+GLIBC_2.4 __vprintf_chk F
+GLIBC_2.4 __vsnprintf F
+GLIBC_2.4 __vsnprintf_chk F
+GLIBC_2.4 __vsprintf_chk F
+GLIBC_2.4 __vsscanf F
+GLIBC_2.4 __vswprintf_chk F
+GLIBC_2.4 __vsyslog_chk F
+GLIBC_2.4 __vwprintf_chk F
+GLIBC_2.4 __wcpcpy_chk F
+GLIBC_2.4 __wcpncpy_chk F
+GLIBC_2.4 __wcrtomb_chk F
+GLIBC_2.4 __wcscat_chk F
+GLIBC_2.4 __wcscpy_chk F
+GLIBC_2.4 __wcsncat_chk F
+GLIBC_2.4 __wcsncpy_chk F
+GLIBC_2.4 __wcsnrtombs_chk F
+GLIBC_2.4 __wcsrtombs_chk F
+GLIBC_2.4 __wcstold_internal F
+GLIBC_2.4 __wcstold_l F
+GLIBC_2.4 __wcstombs_chk F
+GLIBC_2.4 __wctomb_chk F
+GLIBC_2.4 __wmemcpy_chk F
+GLIBC_2.4 __wmemmove_chk F
+GLIBC_2.4 __wmempcpy_chk F
+GLIBC_2.4 __wmemset_chk F
+GLIBC_2.4 __wprintf_chk F
+GLIBC_2.4 __xmknodat F
+GLIBC_2.4 _sys_errlist D 0x420
+GLIBC_2.4 _sys_nerr D 0x4
+GLIBC_2.4 asprintf F
+GLIBC_2.4 copysignl F
+GLIBC_2.4 dprintf F
+GLIBC_2.4 eaccess F
+GLIBC_2.4 faccessat F
+GLIBC_2.4 fchmodat F
+GLIBC_2.4 fchownat F
+GLIBC_2.4 fdopendir F
+GLIBC_2.4 finitel F
+GLIBC_2.4 fprintf F
+GLIBC_2.4 frexpl F
+GLIBC_2.4 fscanf F
+GLIBC_2.4 futimesat F
+GLIBC_2.4 fwprintf F
+GLIBC_2.4 fwscanf F
+GLIBC_2.4 inotify_add_watch F
+GLIBC_2.4 inotify_init F
+GLIBC_2.4 inotify_rm_watch F
+GLIBC_2.4 isinfl F
+GLIBC_2.4 isnanl F
+GLIBC_2.4 ldexpl F
+GLIBC_2.4 linkat F
+GLIBC_2.4 mkdirat F
+GLIBC_2.4 mkfifoat F
+GLIBC_2.4 modfl F
+GLIBC_2.4 obstack_printf F
+GLIBC_2.4 obstack_vprintf F
+GLIBC_2.4 open_wmemstream F
+GLIBC_2.4 openat F
+GLIBC_2.4 openat64 F
+GLIBC_2.4 ppoll F
+GLIBC_2.4 printf F
+GLIBC_2.4 printf_size F
+GLIBC_2.4 qecvt F
+GLIBC_2.4 qecvt_r F
+GLIBC_2.4 qfcvt F
+GLIBC_2.4 qfcvt_r F
+GLIBC_2.4 qgcvt F
+GLIBC_2.4 readlinkat F
+GLIBC_2.4 renameat F
+GLIBC_2.4 scalbnl F
+GLIBC_2.4 scanf F
+GLIBC_2.4 snprintf F
+GLIBC_2.4 sprintf F
+GLIBC_2.4 sscanf F
+GLIBC_2.4 strfmon F
+GLIBC_2.4 strfmon_l F
+GLIBC_2.4 strtold F
+GLIBC_2.4 strtold_l F
+GLIBC_2.4 swprintf F
+GLIBC_2.4 swscanf F
+GLIBC_2.4 symlinkat F
+GLIBC_2.4 sys_errlist D 0x420
+GLIBC_2.4 sys_nerr D 0x4
+GLIBC_2.4 syslog F
+GLIBC_2.4 unlinkat F
+GLIBC_2.4 unshare F
+GLIBC_2.4 vasprintf F
+GLIBC_2.4 vdprintf F
+GLIBC_2.4 vfprintf F
+GLIBC_2.4 vfscanf F
+GLIBC_2.4 vfwprintf F
+GLIBC_2.4 vfwscanf F
+GLIBC_2.4 vprintf F
+GLIBC_2.4 vscanf F
+GLIBC_2.4 vsnprintf F
+GLIBC_2.4 vsprintf F
+GLIBC_2.4 vsscanf F
+GLIBC_2.4 vswprintf F
+GLIBC_2.4 vswscanf F
+GLIBC_2.4 vsyslog F
+GLIBC_2.4 vwprintf F
+GLIBC_2.4 vwscanf F
+GLIBC_2.4 wcstold F
+GLIBC_2.4 wcstold_l F
+GLIBC_2.4 wprintf F
+GLIBC_2.4 wscanf F
+GLIBC_2.5 __readlinkat_chk F
+GLIBC_2.5 inet6_opt_append F
+GLIBC_2.5 inet6_opt_find F
+GLIBC_2.5 inet6_opt_finish F
+GLIBC_2.5 inet6_opt_get_val F
+GLIBC_2.5 inet6_opt_init F
+GLIBC_2.5 inet6_opt_next F
+GLIBC_2.5 inet6_opt_set_val F
+GLIBC_2.5 inet6_rth_add F
+GLIBC_2.5 inet6_rth_getaddr F
+GLIBC_2.5 inet6_rth_init F
+GLIBC_2.5 inet6_rth_reverse F
+GLIBC_2.5 inet6_rth_segments F
+GLIBC_2.5 inet6_rth_space F
+GLIBC_2.5 splice F
+GLIBC_2.5 tee F
+GLIBC_2.5 vmsplice F
+GLIBC_2.6 __sched_cpucount F
+GLIBC_2.6 epoll_pwait F
+GLIBC_2.6 futimens F
+GLIBC_2.6 sched_getcpu F
+GLIBC_2.6 strerror_l F
+GLIBC_2.6 sync_file_range F
+GLIBC_2.6 utimensat F
+GLIBC_2.7 __fread_chk F
+GLIBC_2.7 __fread_unlocked_chk F
+GLIBC_2.7 __isoc99_fscanf F
+GLIBC_2.7 __isoc99_fwscanf F
+GLIBC_2.7 __isoc99_scanf F
+GLIBC_2.7 __isoc99_sscanf F
+GLIBC_2.7 __isoc99_swscanf F
+GLIBC_2.7 __isoc99_vfscanf F
+GLIBC_2.7 __isoc99_vfwscanf F
+GLIBC_2.7 __isoc99_vscanf F
+GLIBC_2.7 __isoc99_vsscanf F
+GLIBC_2.7 __isoc99_vswscanf F
+GLIBC_2.7 __isoc99_vwscanf F
+GLIBC_2.7 __isoc99_wscanf F
+GLIBC_2.7 __nldbl___isoc99_fscanf F
+GLIBC_2.7 __nldbl___isoc99_fwscanf F
+GLIBC_2.7 __nldbl___isoc99_scanf F
+GLIBC_2.7 __nldbl___isoc99_sscanf F
+GLIBC_2.7 __nldbl___isoc99_swscanf F
+GLIBC_2.7 __nldbl___isoc99_vfscanf F
+GLIBC_2.7 __nldbl___isoc99_vfwscanf F
+GLIBC_2.7 __nldbl___isoc99_vscanf F
+GLIBC_2.7 __nldbl___isoc99_vsscanf F
+GLIBC_2.7 __nldbl___isoc99_vswscanf F
+GLIBC_2.7 __nldbl___isoc99_vwscanf F
+GLIBC_2.7 __nldbl___isoc99_wscanf F
+GLIBC_2.7 __open64_2 F
+GLIBC_2.7 __open_2 F
+GLIBC_2.7 __openat64_2 F
+GLIBC_2.7 __openat_2 F
+GLIBC_2.7 __sched_cpualloc F
+GLIBC_2.7 __sched_cpufree F
+GLIBC_2.7 eventfd F
+GLIBC_2.7 eventfd_read F
+GLIBC_2.7 eventfd_write F
+GLIBC_2.7 mkostemp F
+GLIBC_2.7 mkostemp64 F
+GLIBC_2.7 signalfd F
+GLIBC_2.8 __asprintf_chk F
+GLIBC_2.8 __dprintf_chk F
+GLIBC_2.8 __nldbl___asprintf_chk F
+GLIBC_2.8 __nldbl___dprintf_chk F
+GLIBC_2.8 __nldbl___obstack_printf_chk F
+GLIBC_2.8 __nldbl___obstack_vprintf_chk F
+GLIBC_2.8 __nldbl___vasprintf_chk F
+GLIBC_2.8 __nldbl___vdprintf_chk F
+GLIBC_2.8 __obstack_printf_chk F
+GLIBC_2.8 __obstack_vprintf_chk F
+GLIBC_2.8 __vasprintf_chk F
+GLIBC_2.8 __vdprintf_chk F
+GLIBC_2.8 qsort_r F
+GLIBC_2.8 timerfd_create F
+GLIBC_2.8 timerfd_gettime F
+GLIBC_2.8 timerfd_settime F
+GLIBC_2.9 dup3 F
+GLIBC_2.9 epoll_create1 F
+GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libcrypt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libcrypt.abilist
index 069212877a..069212877a 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libcrypt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libcrypt.abilist
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libdl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist
index 5b472f45aa..5b472f45aa 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libdl.abilist
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
new file mode 100644
index 0000000000..1369ab510c
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
@@ -0,0 +1,924 @@
+GLIBC_2.15 __acos_finite F
+GLIBC_2.15 __acosf_finite F
+GLIBC_2.15 __acosh_finite F
+GLIBC_2.15 __acoshf_finite F
+GLIBC_2.15 __acoshl_finite F
+GLIBC_2.15 __acosl_finite F
+GLIBC_2.15 __asin_finite F
+GLIBC_2.15 __asinf_finite F
+GLIBC_2.15 __asinl_finite F
+GLIBC_2.15 __atan2_finite F
+GLIBC_2.15 __atan2f_finite F
+GLIBC_2.15 __atan2l_finite F
+GLIBC_2.15 __atanh_finite F
+GLIBC_2.15 __atanhf_finite F
+GLIBC_2.15 __atanhl_finite F
+GLIBC_2.15 __cosh_finite F
+GLIBC_2.15 __coshf_finite F
+GLIBC_2.15 __coshl_finite F
+GLIBC_2.15 __exp10_finite F
+GLIBC_2.15 __exp10f_finite F
+GLIBC_2.15 __exp10l_finite F
+GLIBC_2.15 __exp2_finite F
+GLIBC_2.15 __exp2f_finite F
+GLIBC_2.15 __exp2l_finite F
+GLIBC_2.15 __exp_finite F
+GLIBC_2.15 __expf_finite F
+GLIBC_2.15 __expl_finite F
+GLIBC_2.15 __fmod_finite F
+GLIBC_2.15 __fmodf_finite F
+GLIBC_2.15 __fmodl_finite F
+GLIBC_2.15 __gamma_r_finite F
+GLIBC_2.15 __gammaf_r_finite F
+GLIBC_2.15 __gammal_r_finite F
+GLIBC_2.15 __hypot_finite F
+GLIBC_2.15 __hypotf_finite F
+GLIBC_2.15 __hypotl_finite F
+GLIBC_2.15 __j0_finite F
+GLIBC_2.15 __j0f_finite F
+GLIBC_2.15 __j0l_finite F
+GLIBC_2.15 __j1_finite F
+GLIBC_2.15 __j1f_finite F
+GLIBC_2.15 __j1l_finite F
+GLIBC_2.15 __jn_finite F
+GLIBC_2.15 __jnf_finite F
+GLIBC_2.15 __jnl_finite F
+GLIBC_2.15 __lgamma_r_finite F
+GLIBC_2.15 __lgammaf_r_finite F
+GLIBC_2.15 __lgammal_r_finite F
+GLIBC_2.15 __log10_finite F
+GLIBC_2.15 __log10f_finite F
+GLIBC_2.15 __log10l_finite F
+GLIBC_2.15 __log2_finite F
+GLIBC_2.15 __log2f_finite F
+GLIBC_2.15 __log2l_finite F
+GLIBC_2.15 __log_finite F
+GLIBC_2.15 __logf_finite F
+GLIBC_2.15 __logl_finite F
+GLIBC_2.15 __pow_finite F
+GLIBC_2.15 __powf_finite F
+GLIBC_2.15 __powl_finite F
+GLIBC_2.15 __remainder_finite F
+GLIBC_2.15 __remainderf_finite F
+GLIBC_2.15 __remainderl_finite F
+GLIBC_2.15 __scalb_finite F
+GLIBC_2.15 __scalbf_finite F
+GLIBC_2.15 __scalbl_finite F
+GLIBC_2.15 __sinh_finite F
+GLIBC_2.15 __sinhf_finite F
+GLIBC_2.15 __sinhl_finite F
+GLIBC_2.15 __sqrt_finite F
+GLIBC_2.15 __sqrtf_finite F
+GLIBC_2.15 __sqrtl_finite F
+GLIBC_2.15 __y0_finite F
+GLIBC_2.15 __y0f_finite F
+GLIBC_2.15 __y0l_finite F
+GLIBC_2.15 __y1_finite F
+GLIBC_2.15 __y1f_finite F
+GLIBC_2.15 __y1l_finite F
+GLIBC_2.15 __yn_finite F
+GLIBC_2.15 __ynf_finite F
+GLIBC_2.15 __ynl_finite F
+GLIBC_2.18 __issignaling F
+GLIBC_2.18 __issignalingf F
+GLIBC_2.18 __issignalingl F
+GLIBC_2.23 __signgam D 0x4
+GLIBC_2.23 lgamma F
+GLIBC_2.23 lgammaf F
+GLIBC_2.23 lgammal F
+GLIBC_2.24 nextdown F
+GLIBC_2.24 nextdownf F
+GLIBC_2.24 nextdownl F
+GLIBC_2.24 nextup F
+GLIBC_2.24 nextupf F
+GLIBC_2.24 nextupl F
+GLIBC_2.25 __fe_dfl_mode D 0x8
+GLIBC_2.25 __iscanonicall F
+GLIBC_2.25 __iseqsig F
+GLIBC_2.25 __iseqsigf F
+GLIBC_2.25 __iseqsigl F
+GLIBC_2.25 canonicalize F
+GLIBC_2.25 canonicalizef F
+GLIBC_2.25 canonicalizel F
+GLIBC_2.25 fegetmode F
+GLIBC_2.25 fesetexcept F
+GLIBC_2.25 fesetmode F
+GLIBC_2.25 fetestexceptflag F
+GLIBC_2.25 fmaxmag F
+GLIBC_2.25 fmaxmagf F
+GLIBC_2.25 fmaxmagl F
+GLIBC_2.25 fminmag F
+GLIBC_2.25 fminmagf F
+GLIBC_2.25 fminmagl F
+GLIBC_2.25 fromfp F
+GLIBC_2.25 fromfpf F
+GLIBC_2.25 fromfpl F
+GLIBC_2.25 fromfpx F
+GLIBC_2.25 fromfpxf F
+GLIBC_2.25 fromfpxl F
+GLIBC_2.25 getpayload F
+GLIBC_2.25 getpayloadf F
+GLIBC_2.25 getpayloadl F
+GLIBC_2.25 llogb F
+GLIBC_2.25 llogbf F
+GLIBC_2.25 llogbl F
+GLIBC_2.25 roundeven F
+GLIBC_2.25 roundevenf F
+GLIBC_2.25 roundevenl F
+GLIBC_2.25 setpayload F
+GLIBC_2.25 setpayloadf F
+GLIBC_2.25 setpayloadl F
+GLIBC_2.25 setpayloadsig F
+GLIBC_2.25 setpayloadsigf F
+GLIBC_2.25 setpayloadsigl F
+GLIBC_2.25 totalorder F
+GLIBC_2.25 totalorderf F
+GLIBC_2.25 totalorderl F
+GLIBC_2.25 totalordermag F
+GLIBC_2.25 totalordermagf F
+GLIBC_2.25 totalordermagl F
+GLIBC_2.25 ufromfp F
+GLIBC_2.25 ufromfpf F
+GLIBC_2.25 ufromfpl F
+GLIBC_2.25 ufromfpx F
+GLIBC_2.25 ufromfpxf F
+GLIBC_2.25 ufromfpxl F
+GLIBC_2.27 acosf32 F
+GLIBC_2.27 acosf32x F
+GLIBC_2.27 acosf64 F
+GLIBC_2.27 acoshf32 F
+GLIBC_2.27 acoshf32x F
+GLIBC_2.27 acoshf64 F
+GLIBC_2.27 asinf32 F
+GLIBC_2.27 asinf32x F
+GLIBC_2.27 asinf64 F
+GLIBC_2.27 asinhf32 F
+GLIBC_2.27 asinhf32x F
+GLIBC_2.27 asinhf64 F
+GLIBC_2.27 atan2f32 F
+GLIBC_2.27 atan2f32x F
+GLIBC_2.27 atan2f64 F
+GLIBC_2.27 atanf32 F
+GLIBC_2.27 atanf32x F
+GLIBC_2.27 atanf64 F
+GLIBC_2.27 atanhf32 F
+GLIBC_2.27 atanhf32x F
+GLIBC_2.27 atanhf64 F
+GLIBC_2.27 cabsf32 F
+GLIBC_2.27 cabsf32x F
+GLIBC_2.27 cabsf64 F
+GLIBC_2.27 cacosf32 F
+GLIBC_2.27 cacosf32x F
+GLIBC_2.27 cacosf64 F
+GLIBC_2.27 cacoshf32 F
+GLIBC_2.27 cacoshf32x F
+GLIBC_2.27 cacoshf64 F
+GLIBC_2.27 canonicalizef32 F
+GLIBC_2.27 canonicalizef32x F
+GLIBC_2.27 canonicalizef64 F
+GLIBC_2.27 cargf32 F
+GLIBC_2.27 cargf32x F
+GLIBC_2.27 cargf64 F
+GLIBC_2.27 casinf32 F
+GLIBC_2.27 casinf32x F
+GLIBC_2.27 casinf64 F
+GLIBC_2.27 casinhf32 F
+GLIBC_2.27 casinhf32x F
+GLIBC_2.27 casinhf64 F
+GLIBC_2.27 catanf32 F
+GLIBC_2.27 catanf32x F
+GLIBC_2.27 catanf64 F
+GLIBC_2.27 catanhf32 F
+GLIBC_2.27 catanhf32x F
+GLIBC_2.27 catanhf64 F
+GLIBC_2.27 cbrtf32 F
+GLIBC_2.27 cbrtf32x F
+GLIBC_2.27 cbrtf64 F
+GLIBC_2.27 ccosf32 F
+GLIBC_2.27 ccosf32x F
+GLIBC_2.27 ccosf64 F
+GLIBC_2.27 ccoshf32 F
+GLIBC_2.27 ccoshf32x F
+GLIBC_2.27 ccoshf64 F
+GLIBC_2.27 ceilf32 F
+GLIBC_2.27 ceilf32x F
+GLIBC_2.27 ceilf64 F
+GLIBC_2.27 cexpf32 F
+GLIBC_2.27 cexpf32x F
+GLIBC_2.27 cexpf64 F
+GLIBC_2.27 cimagf32 F
+GLIBC_2.27 cimagf32x F
+GLIBC_2.27 cimagf64 F
+GLIBC_2.27 clog10f32 F
+GLIBC_2.27 clog10f32x F
+GLIBC_2.27 clog10f64 F
+GLIBC_2.27 clogf32 F
+GLIBC_2.27 clogf32x F
+GLIBC_2.27 clogf64 F
+GLIBC_2.27 conjf32 F
+GLIBC_2.27 conjf32x F
+GLIBC_2.27 conjf64 F
+GLIBC_2.27 copysignf32 F
+GLIBC_2.27 copysignf32x F
+GLIBC_2.27 copysignf64 F
+GLIBC_2.27 cosf32 F
+GLIBC_2.27 cosf32x F
+GLIBC_2.27 cosf64 F
+GLIBC_2.27 coshf32 F
+GLIBC_2.27 coshf32x F
+GLIBC_2.27 coshf64 F
+GLIBC_2.27 cpowf32 F
+GLIBC_2.27 cpowf32x F
+GLIBC_2.27 cpowf64 F
+GLIBC_2.27 cprojf32 F
+GLIBC_2.27 cprojf32x F
+GLIBC_2.27 cprojf64 F
+GLIBC_2.27 crealf32 F
+GLIBC_2.27 crealf32x F
+GLIBC_2.27 crealf64 F
+GLIBC_2.27 csinf32 F
+GLIBC_2.27 csinf32x F
+GLIBC_2.27 csinf64 F
+GLIBC_2.27 csinhf32 F
+GLIBC_2.27 csinhf32x F
+GLIBC_2.27 csinhf64 F
+GLIBC_2.27 csqrtf32 F
+GLIBC_2.27 csqrtf32x F
+GLIBC_2.27 csqrtf64 F
+GLIBC_2.27 ctanf32 F
+GLIBC_2.27 ctanf32x F
+GLIBC_2.27 ctanf64 F
+GLIBC_2.27 ctanhf32 F
+GLIBC_2.27 ctanhf32x F
+GLIBC_2.27 ctanhf64 F
+GLIBC_2.27 erfcf32 F
+GLIBC_2.27 erfcf32x F
+GLIBC_2.27 erfcf64 F
+GLIBC_2.27 erff32 F
+GLIBC_2.27 erff32x F
+GLIBC_2.27 erff64 F
+GLIBC_2.27 exp10f32 F
+GLIBC_2.27 exp10f32x F
+GLIBC_2.27 exp10f64 F
+GLIBC_2.27 exp2f F
+GLIBC_2.27 exp2f32 F
+GLIBC_2.27 exp2f32x F
+GLIBC_2.27 exp2f64 F
+GLIBC_2.27 expf F
+GLIBC_2.27 expf32 F
+GLIBC_2.27 expf32x F
+GLIBC_2.27 expf64 F
+GLIBC_2.27 expm1f32 F
+GLIBC_2.27 expm1f32x F
+GLIBC_2.27 expm1f64 F
+GLIBC_2.27 fabsf32 F
+GLIBC_2.27 fabsf32x F
+GLIBC_2.27 fabsf64 F
+GLIBC_2.27 fdimf32 F
+GLIBC_2.27 fdimf32x F
+GLIBC_2.27 fdimf64 F
+GLIBC_2.27 floorf32 F
+GLIBC_2.27 floorf32x F
+GLIBC_2.27 floorf64 F
+GLIBC_2.27 fmaf32 F
+GLIBC_2.27 fmaf32x F
+GLIBC_2.27 fmaf64 F
+GLIBC_2.27 fmaxf32 F
+GLIBC_2.27 fmaxf32x F
+GLIBC_2.27 fmaxf64 F
+GLIBC_2.27 fmaxmagf32 F
+GLIBC_2.27 fmaxmagf32x F
+GLIBC_2.27 fmaxmagf64 F
+GLIBC_2.27 fminf32 F
+GLIBC_2.27 fminf32x F
+GLIBC_2.27 fminf64 F
+GLIBC_2.27 fminmagf32 F
+GLIBC_2.27 fminmagf32x F
+GLIBC_2.27 fminmagf64 F
+GLIBC_2.27 fmodf32 F
+GLIBC_2.27 fmodf32x F
+GLIBC_2.27 fmodf64 F
+GLIBC_2.27 frexpf32 F
+GLIBC_2.27 frexpf32x F
+GLIBC_2.27 frexpf64 F
+GLIBC_2.27 fromfpf32 F
+GLIBC_2.27 fromfpf32x F
+GLIBC_2.27 fromfpf64 F
+GLIBC_2.27 fromfpxf32 F
+GLIBC_2.27 fromfpxf32x F
+GLIBC_2.27 fromfpxf64 F
+GLIBC_2.27 getpayloadf32 F
+GLIBC_2.27 getpayloadf32x F
+GLIBC_2.27 getpayloadf64 F
+GLIBC_2.27 hypotf32 F
+GLIBC_2.27 hypotf32x F
+GLIBC_2.27 hypotf64 F
+GLIBC_2.27 ilogbf32 F
+GLIBC_2.27 ilogbf32x F
+GLIBC_2.27 ilogbf64 F
+GLIBC_2.27 j0f32 F
+GLIBC_2.27 j0f32x F
+GLIBC_2.27 j0f64 F
+GLIBC_2.27 j1f32 F
+GLIBC_2.27 j1f32x F
+GLIBC_2.27 j1f64 F
+GLIBC_2.27 jnf32 F
+GLIBC_2.27 jnf32x F
+GLIBC_2.27 jnf64 F
+GLIBC_2.27 ldexpf32 F
+GLIBC_2.27 ldexpf32x F
+GLIBC_2.27 ldexpf64 F
+GLIBC_2.27 lgammaf32 F
+GLIBC_2.27 lgammaf32_r F
+GLIBC_2.27 lgammaf32x F
+GLIBC_2.27 lgammaf32x_r F
+GLIBC_2.27 lgammaf64 F
+GLIBC_2.27 lgammaf64_r F
+GLIBC_2.27 llogbf32 F
+GLIBC_2.27 llogbf32x F
+GLIBC_2.27 llogbf64 F
+GLIBC_2.27 llrintf32 F
+GLIBC_2.27 llrintf32x F
+GLIBC_2.27 llrintf64 F
+GLIBC_2.27 llroundf32 F
+GLIBC_2.27 llroundf32x F
+GLIBC_2.27 llroundf64 F
+GLIBC_2.27 log10f32 F
+GLIBC_2.27 log10f32x F
+GLIBC_2.27 log10f64 F
+GLIBC_2.27 log1pf32 F
+GLIBC_2.27 log1pf32x F
+GLIBC_2.27 log1pf64 F
+GLIBC_2.27 log2f F
+GLIBC_2.27 log2f32 F
+GLIBC_2.27 log2f32x F
+GLIBC_2.27 log2f64 F
+GLIBC_2.27 logbf32 F
+GLIBC_2.27 logbf32x F
+GLIBC_2.27 logbf64 F
+GLIBC_2.27 logf F
+GLIBC_2.27 logf32 F
+GLIBC_2.27 logf32x F
+GLIBC_2.27 logf64 F
+GLIBC_2.27 lrintf32 F
+GLIBC_2.27 lrintf32x F
+GLIBC_2.27 lrintf64 F
+GLIBC_2.27 lroundf32 F
+GLIBC_2.27 lroundf32x F
+GLIBC_2.27 lroundf64 F
+GLIBC_2.27 modff32 F
+GLIBC_2.27 modff32x F
+GLIBC_2.27 modff64 F
+GLIBC_2.27 nanf32 F
+GLIBC_2.27 nanf32x F
+GLIBC_2.27 nanf64 F
+GLIBC_2.27 nearbyintf32 F
+GLIBC_2.27 nearbyintf32x F
+GLIBC_2.27 nearbyintf64 F
+GLIBC_2.27 nextafterf32 F
+GLIBC_2.27 nextafterf32x F
+GLIBC_2.27 nextafterf64 F
+GLIBC_2.27 nextdownf32 F
+GLIBC_2.27 nextdownf32x F
+GLIBC_2.27 nextdownf64 F
+GLIBC_2.27 nextupf32 F
+GLIBC_2.27 nextupf32x F
+GLIBC_2.27 nextupf64 F
+GLIBC_2.27 powf F
+GLIBC_2.27 powf32 F
+GLIBC_2.27 powf32x F
+GLIBC_2.27 powf64 F
+GLIBC_2.27 remainderf32 F
+GLIBC_2.27 remainderf32x F
+GLIBC_2.27 remainderf64 F
+GLIBC_2.27 remquof32 F
+GLIBC_2.27 remquof32x F
+GLIBC_2.27 remquof64 F
+GLIBC_2.27 rintf32 F
+GLIBC_2.27 rintf32x F
+GLIBC_2.27 rintf64 F
+GLIBC_2.27 roundevenf32 F
+GLIBC_2.27 roundevenf32x F
+GLIBC_2.27 roundevenf64 F
+GLIBC_2.27 roundf32 F
+GLIBC_2.27 roundf32x F
+GLIBC_2.27 roundf64 F
+GLIBC_2.27 scalblnf32 F
+GLIBC_2.27 scalblnf32x F
+GLIBC_2.27 scalblnf64 F
+GLIBC_2.27 scalbnf32 F
+GLIBC_2.27 scalbnf32x F
+GLIBC_2.27 scalbnf64 F
+GLIBC_2.27 setpayloadf32 F
+GLIBC_2.27 setpayloadf32x F
+GLIBC_2.27 setpayloadf64 F
+GLIBC_2.27 setpayloadsigf32 F
+GLIBC_2.27 setpayloadsigf32x F
+GLIBC_2.27 setpayloadsigf64 F
+GLIBC_2.27 sincosf32 F
+GLIBC_2.27 sincosf32x F
+GLIBC_2.27 sincosf64 F
+GLIBC_2.27 sinf32 F
+GLIBC_2.27 sinf32x F
+GLIBC_2.27 sinf64 F
+GLIBC_2.27 sinhf32 F
+GLIBC_2.27 sinhf32x F
+GLIBC_2.27 sinhf64 F
+GLIBC_2.27 sqrtf32 F
+GLIBC_2.27 sqrtf32x F
+GLIBC_2.27 sqrtf64 F
+GLIBC_2.27 tanf32 F
+GLIBC_2.27 tanf32x F
+GLIBC_2.27 tanf64 F
+GLIBC_2.27 tanhf32 F
+GLIBC_2.27 tanhf32x F
+GLIBC_2.27 tanhf64 F
+GLIBC_2.27 tgammaf32 F
+GLIBC_2.27 tgammaf32x F
+GLIBC_2.27 tgammaf64 F
+GLIBC_2.27 totalorderf32 F
+GLIBC_2.27 totalorderf32x F
+GLIBC_2.27 totalorderf64 F
+GLIBC_2.27 totalordermagf32 F
+GLIBC_2.27 totalordermagf32x F
+GLIBC_2.27 totalordermagf64 F
+GLIBC_2.27 truncf32 F
+GLIBC_2.27 truncf32x F
+GLIBC_2.27 truncf64 F
+GLIBC_2.27 ufromfpf32 F
+GLIBC_2.27 ufromfpf32x F
+GLIBC_2.27 ufromfpf64 F
+GLIBC_2.27 ufromfpxf32 F
+GLIBC_2.27 ufromfpxf32x F
+GLIBC_2.27 ufromfpxf64 F
+GLIBC_2.27 y0f32 F
+GLIBC_2.27 y0f32x F
+GLIBC_2.27 y0f64 F
+GLIBC_2.27 y1f32 F
+GLIBC_2.27 y1f32x F
+GLIBC_2.27 y1f64 F
+GLIBC_2.27 ynf32 F
+GLIBC_2.27 ynf32x F
+GLIBC_2.27 ynf64 F
+GLIBC_2.28 __nldbl_daddl F
+GLIBC_2.28 __nldbl_ddivl F
+GLIBC_2.28 __nldbl_dmull F
+GLIBC_2.28 __nldbl_dsubl F
+GLIBC_2.28 daddl F
+GLIBC_2.28 ddivl F
+GLIBC_2.28 dmull F
+GLIBC_2.28 dsubl F
+GLIBC_2.28 f32addf32x F
+GLIBC_2.28 f32addf64 F
+GLIBC_2.28 f32divf32x F
+GLIBC_2.28 f32divf64 F
+GLIBC_2.28 f32mulf32x F
+GLIBC_2.28 f32mulf64 F
+GLIBC_2.28 f32subf32x F
+GLIBC_2.28 f32subf64 F
+GLIBC_2.28 f32xaddf64 F
+GLIBC_2.28 f32xdivf64 F
+GLIBC_2.28 f32xmulf64 F
+GLIBC_2.28 f32xsubf64 F
+GLIBC_2.28 fadd F
+GLIBC_2.28 faddl F
+GLIBC_2.28 fdiv F
+GLIBC_2.28 fdivl F
+GLIBC_2.28 fmul F
+GLIBC_2.28 fmull F
+GLIBC_2.28 fsub F
+GLIBC_2.28 fsubl F
+GLIBC_2.29 exp F
+GLIBC_2.29 exp2 F
+GLIBC_2.29 log F
+GLIBC_2.29 log2 F
+GLIBC_2.29 pow F
+GLIBC_2.3 _LIB_VERSION D 0x4
+GLIBC_2.3 __clog10 F
+GLIBC_2.3 __clog10f F
+GLIBC_2.3 __clog10l F
+GLIBC_2.3 __fe_dfl_env D 0x8
+GLIBC_2.3 __fe_enabled_env D 0x8
+GLIBC_2.3 __fe_nomask_env F
+GLIBC_2.3 __fe_nonieee_env D 0x8
+GLIBC_2.3 __finite F
+GLIBC_2.3 __finitef F
+GLIBC_2.3 __finitel F
+GLIBC_2.3 __fpclassify F
+GLIBC_2.3 __fpclassifyf F
+GLIBC_2.3 __signbit F
+GLIBC_2.3 __signbitf F
+GLIBC_2.3 acos F
+GLIBC_2.3 acosf F
+GLIBC_2.3 acosh F
+GLIBC_2.3 acoshf F
+GLIBC_2.3 acoshl F
+GLIBC_2.3 acosl F
+GLIBC_2.3 asin F
+GLIBC_2.3 asinf F
+GLIBC_2.3 asinh F
+GLIBC_2.3 asinhf F
+GLIBC_2.3 asinhl F
+GLIBC_2.3 asinl F
+GLIBC_2.3 atan F
+GLIBC_2.3 atan2 F
+GLIBC_2.3 atan2f F
+GLIBC_2.3 atan2l F
+GLIBC_2.3 atanf F
+GLIBC_2.3 atanh F
+GLIBC_2.3 atanhf F
+GLIBC_2.3 atanhl F
+GLIBC_2.3 atanl F
+GLIBC_2.3 cabs F
+GLIBC_2.3 cabsf F
+GLIBC_2.3 cabsl F
+GLIBC_2.3 cacos F
+GLIBC_2.3 cacosf F
+GLIBC_2.3 cacosh F
+GLIBC_2.3 cacoshf F
+GLIBC_2.3 cacoshl F
+GLIBC_2.3 cacosl F
+GLIBC_2.3 carg F
+GLIBC_2.3 cargf F
+GLIBC_2.3 cargl F
+GLIBC_2.3 casin F
+GLIBC_2.3 casinf F
+GLIBC_2.3 casinh F
+GLIBC_2.3 casinhf F
+GLIBC_2.3 casinhl F
+GLIBC_2.3 casinl F
+GLIBC_2.3 catan F
+GLIBC_2.3 catanf F
+GLIBC_2.3 catanh F
+GLIBC_2.3 catanhf F
+GLIBC_2.3 catanhl F
+GLIBC_2.3 catanl F
+GLIBC_2.3 cbrt F
+GLIBC_2.3 cbrtf F
+GLIBC_2.3 cbrtl F
+GLIBC_2.3 ccos F
+GLIBC_2.3 ccosf F
+GLIBC_2.3 ccosh F
+GLIBC_2.3 ccoshf F
+GLIBC_2.3 ccoshl F
+GLIBC_2.3 ccosl F
+GLIBC_2.3 ceil F
+GLIBC_2.3 ceilf F
+GLIBC_2.3 ceill F
+GLIBC_2.3 cexp F
+GLIBC_2.3 cexpf F
+GLIBC_2.3 cexpl F
+GLIBC_2.3 cimag F
+GLIBC_2.3 cimagf F
+GLIBC_2.3 cimagl F
+GLIBC_2.3 clog F
+GLIBC_2.3 clog10 F
+GLIBC_2.3 clog10f F
+GLIBC_2.3 clog10l F
+GLIBC_2.3 clogf F
+GLIBC_2.3 clogl F
+GLIBC_2.3 conj F
+GLIBC_2.3 conjf F
+GLIBC_2.3 conjl F
+GLIBC_2.3 copysign F
+GLIBC_2.3 copysignf F
+GLIBC_2.3 copysignl F
+GLIBC_2.3 cos F
+GLIBC_2.3 cosf F
+GLIBC_2.3 cosh F
+GLIBC_2.3 coshf F
+GLIBC_2.3 coshl F
+GLIBC_2.3 cosl F
+GLIBC_2.3 cpow F
+GLIBC_2.3 cpowf F
+GLIBC_2.3 cpowl F
+GLIBC_2.3 cproj F
+GLIBC_2.3 cprojf F
+GLIBC_2.3 cprojl F
+GLIBC_2.3 creal F
+GLIBC_2.3 crealf F
+GLIBC_2.3 creall F
+GLIBC_2.3 csin F
+GLIBC_2.3 csinf F
+GLIBC_2.3 csinh F
+GLIBC_2.3 csinhf F
+GLIBC_2.3 csinhl F
+GLIBC_2.3 csinl F
+GLIBC_2.3 csqrt F
+GLIBC_2.3 csqrtf F
+GLIBC_2.3 csqrtl F
+GLIBC_2.3 ctan F
+GLIBC_2.3 ctanf F
+GLIBC_2.3 ctanh F
+GLIBC_2.3 ctanhf F
+GLIBC_2.3 ctanhl F
+GLIBC_2.3 ctanl F
+GLIBC_2.3 drem F
+GLIBC_2.3 dremf F
+GLIBC_2.3 dreml F
+GLIBC_2.3 erf F
+GLIBC_2.3 erfc F
+GLIBC_2.3 erfcf F
+GLIBC_2.3 erfcl F
+GLIBC_2.3 erff F
+GLIBC_2.3 erfl F
+GLIBC_2.3 exp F
+GLIBC_2.3 exp10 F
+GLIBC_2.3 exp10f F
+GLIBC_2.3 exp10l F
+GLIBC_2.3 exp2 F
+GLIBC_2.3 exp2f F
+GLIBC_2.3 expf F
+GLIBC_2.3 expl F
+GLIBC_2.3 expm1 F
+GLIBC_2.3 expm1f F
+GLIBC_2.3 expm1l F
+GLIBC_2.3 fabs F
+GLIBC_2.3 fabsf F
+GLIBC_2.3 fabsl F
+GLIBC_2.3 fdim F
+GLIBC_2.3 fdimf F
+GLIBC_2.3 fdiml F
+GLIBC_2.3 feclearexcept F
+GLIBC_2.3 fedisableexcept F
+GLIBC_2.3 feenableexcept F
+GLIBC_2.3 fegetenv F
+GLIBC_2.3 fegetexcept F
+GLIBC_2.3 fegetexceptflag F
+GLIBC_2.3 fegetround F
+GLIBC_2.3 feholdexcept F
+GLIBC_2.3 feraiseexcept F
+GLIBC_2.3 fesetenv F
+GLIBC_2.3 fesetexceptflag F
+GLIBC_2.3 fesetround F
+GLIBC_2.3 fetestexcept F
+GLIBC_2.3 feupdateenv F
+GLIBC_2.3 finite F
+GLIBC_2.3 finitef F
+GLIBC_2.3 finitel F
+GLIBC_2.3 floor F
+GLIBC_2.3 floorf F
+GLIBC_2.3 floorl F
+GLIBC_2.3 fma F
+GLIBC_2.3 fmaf F
+GLIBC_2.3 fmal F
+GLIBC_2.3 fmax F
+GLIBC_2.3 fmaxf F
+GLIBC_2.3 fmaxl F
+GLIBC_2.3 fmin F
+GLIBC_2.3 fminf F
+GLIBC_2.3 fminl F
+GLIBC_2.3 fmod F
+GLIBC_2.3 fmodf F
+GLIBC_2.3 fmodl F
+GLIBC_2.3 frexp F
+GLIBC_2.3 frexpf F
+GLIBC_2.3 frexpl F
+GLIBC_2.3 gamma F
+GLIBC_2.3 gammaf F
+GLIBC_2.3 gammal F
+GLIBC_2.3 hypot F
+GLIBC_2.3 hypotf F
+GLIBC_2.3 hypotl F
+GLIBC_2.3 ilogb F
+GLIBC_2.3 ilogbf F
+GLIBC_2.3 ilogbl F
+GLIBC_2.3 j0 F
+GLIBC_2.3 j0f F
+GLIBC_2.3 j0l F
+GLIBC_2.3 j1 F
+GLIBC_2.3 j1f F
+GLIBC_2.3 j1l F
+GLIBC_2.3 jn F
+GLIBC_2.3 jnf F
+GLIBC_2.3 jnl F
+GLIBC_2.3 ldexp F
+GLIBC_2.3 ldexpf F
+GLIBC_2.3 ldexpl F
+GLIBC_2.3 lgamma F
+GLIBC_2.3 lgamma_r F
+GLIBC_2.3 lgammaf F
+GLIBC_2.3 lgammaf_r F
+GLIBC_2.3 lgammal F
+GLIBC_2.3 lgammal_r F
+GLIBC_2.3 llrint F
+GLIBC_2.3 llrintf F
+GLIBC_2.3 llrintl F
+GLIBC_2.3 llround F
+GLIBC_2.3 llroundf F
+GLIBC_2.3 llroundl F
+GLIBC_2.3 log F
+GLIBC_2.3 log10 F
+GLIBC_2.3 log10f F
+GLIBC_2.3 log10l F
+GLIBC_2.3 log1p F
+GLIBC_2.3 log1pf F
+GLIBC_2.3 log1pl F
+GLIBC_2.3 log2 F
+GLIBC_2.3 log2f F
+GLIBC_2.3 log2l F
+GLIBC_2.3 logb F
+GLIBC_2.3 logbf F
+GLIBC_2.3 logbl F
+GLIBC_2.3 logf F
+GLIBC_2.3 logl F
+GLIBC_2.3 lrint F
+GLIBC_2.3 lrintf F
+GLIBC_2.3 lrintl F
+GLIBC_2.3 lround F
+GLIBC_2.3 lroundf F
+GLIBC_2.3 lroundl F
+GLIBC_2.3 matherr F
+GLIBC_2.3 modf F
+GLIBC_2.3 modff F
+GLIBC_2.3 modfl F
+GLIBC_2.3 nan F
+GLIBC_2.3 nanf F
+GLIBC_2.3 nanl F
+GLIBC_2.3 nearbyint F
+GLIBC_2.3 nearbyintf F
+GLIBC_2.3 nearbyintl F
+GLIBC_2.3 nextafter F
+GLIBC_2.3 nextafterf F
+GLIBC_2.3 nextafterl F
+GLIBC_2.3 nexttoward F
+GLIBC_2.3 nexttowardf F
+GLIBC_2.3 nexttowardl F
+GLIBC_2.3 pow F
+GLIBC_2.3 pow10 F
+GLIBC_2.3 pow10f F
+GLIBC_2.3 pow10l F
+GLIBC_2.3 powf F
+GLIBC_2.3 powl F
+GLIBC_2.3 remainder F
+GLIBC_2.3 remainderf F
+GLIBC_2.3 remainderl F
+GLIBC_2.3 remquo F
+GLIBC_2.3 remquof F
+GLIBC_2.3 remquol F
+GLIBC_2.3 rint F
+GLIBC_2.3 rintf F
+GLIBC_2.3 rintl F
+GLIBC_2.3 round F
+GLIBC_2.3 roundf F
+GLIBC_2.3 roundl F
+GLIBC_2.3 scalb F
+GLIBC_2.3 scalbf F
+GLIBC_2.3 scalbl F
+GLIBC_2.3 scalbln F
+GLIBC_2.3 scalblnf F
+GLIBC_2.3 scalblnl F
+GLIBC_2.3 scalbn F
+GLIBC_2.3 scalbnf F
+GLIBC_2.3 scalbnl F
+GLIBC_2.3 signgam D 0x4
+GLIBC_2.3 significand F
+GLIBC_2.3 significandf F
+GLIBC_2.3 significandl F
+GLIBC_2.3 sin F
+GLIBC_2.3 sincos F
+GLIBC_2.3 sincosf F
+GLIBC_2.3 sincosl F
+GLIBC_2.3 sinf F
+GLIBC_2.3 sinh F
+GLIBC_2.3 sinhf F
+GLIBC_2.3 sinhl F
+GLIBC_2.3 sinl F
+GLIBC_2.3 sqrt F
+GLIBC_2.3 sqrtf F
+GLIBC_2.3 sqrtl F
+GLIBC_2.3 tan F
+GLIBC_2.3 tanf F
+GLIBC_2.3 tanh F
+GLIBC_2.3 tanhf F
+GLIBC_2.3 tanhl F
+GLIBC_2.3 tanl F
+GLIBC_2.3 tgamma F
+GLIBC_2.3 tgammaf F
+GLIBC_2.3 tgammal F
+GLIBC_2.3 trunc F
+GLIBC_2.3 truncf F
+GLIBC_2.3 truncl F
+GLIBC_2.3 y0 F
+GLIBC_2.3 y0f F
+GLIBC_2.3 y0l F
+GLIBC_2.3 y1 F
+GLIBC_2.3 y1f F
+GLIBC_2.3 y1l F
+GLIBC_2.3 yn F
+GLIBC_2.3 ynf F
+GLIBC_2.3 ynl F
+GLIBC_2.31 totalorder F
+GLIBC_2.31 totalorderf F
+GLIBC_2.31 totalorderf32 F
+GLIBC_2.31 totalorderf32x F
+GLIBC_2.31 totalorderf64 F
+GLIBC_2.31 totalorderl F
+GLIBC_2.31 totalordermag F
+GLIBC_2.31 totalordermagf F
+GLIBC_2.31 totalordermagf32 F
+GLIBC_2.31 totalordermagf32x F
+GLIBC_2.31 totalordermagf64 F
+GLIBC_2.31 totalordermagl F
+GLIBC_2.4 __clog10l F
+GLIBC_2.4 __finitel F
+GLIBC_2.4 __fpclassifyl F
+GLIBC_2.4 __nldbl_nexttowardf F
+GLIBC_2.4 __signbitl F
+GLIBC_2.4 acoshl F
+GLIBC_2.4 acosl F
+GLIBC_2.4 asinhl F
+GLIBC_2.4 asinl F
+GLIBC_2.4 atan2l F
+GLIBC_2.4 atanhl F
+GLIBC_2.4 atanl F
+GLIBC_2.4 cabsl F
+GLIBC_2.4 cacoshl F
+GLIBC_2.4 cacosl F
+GLIBC_2.4 cargl F
+GLIBC_2.4 casinhl F
+GLIBC_2.4 casinl F
+GLIBC_2.4 catanhl F
+GLIBC_2.4 catanl F
+GLIBC_2.4 cbrtl F
+GLIBC_2.4 ccoshl F
+GLIBC_2.4 ccosl F
+GLIBC_2.4 ceill F
+GLIBC_2.4 cexpl F
+GLIBC_2.4 cimagl F
+GLIBC_2.4 clog10l F
+GLIBC_2.4 clogl F
+GLIBC_2.4 conjl F
+GLIBC_2.4 copysignl F
+GLIBC_2.4 coshl F
+GLIBC_2.4 cosl F
+GLIBC_2.4 cpowl F
+GLIBC_2.4 cprojl F
+GLIBC_2.4 creall F
+GLIBC_2.4 csinhl F
+GLIBC_2.4 csinl F
+GLIBC_2.4 csqrtl F
+GLIBC_2.4 ctanhl F
+GLIBC_2.4 ctanl F
+GLIBC_2.4 dreml F
+GLIBC_2.4 erfcl F
+GLIBC_2.4 erfl F
+GLIBC_2.4 exp10l F
+GLIBC_2.4 exp2l F
+GLIBC_2.4 expl F
+GLIBC_2.4 expm1l F
+GLIBC_2.4 fabsl F
+GLIBC_2.4 fdiml F
+GLIBC_2.4 finitel F
+GLIBC_2.4 floorl F
+GLIBC_2.4 fmal F
+GLIBC_2.4 fmaxl F
+GLIBC_2.4 fminl F
+GLIBC_2.4 fmodl F
+GLIBC_2.4 frexpl F
+GLIBC_2.4 gammal F
+GLIBC_2.4 hypotl F
+GLIBC_2.4 ilogbl F
+GLIBC_2.4 j0l F
+GLIBC_2.4 j1l F
+GLIBC_2.4 jnl F
+GLIBC_2.4 ldexpl F
+GLIBC_2.4 lgammal F
+GLIBC_2.4 lgammal_r F
+GLIBC_2.4 llrintl F
+GLIBC_2.4 llroundl F
+GLIBC_2.4 log10l F
+GLIBC_2.4 log1pl F
+GLIBC_2.4 log2l F
+GLIBC_2.4 logbl F
+GLIBC_2.4 logl F
+GLIBC_2.4 lrintl F
+GLIBC_2.4 lroundl F
+GLIBC_2.4 modfl F
+GLIBC_2.4 nanl F
+GLIBC_2.4 nearbyintl F
+GLIBC_2.4 nextafterl F
+GLIBC_2.4 nexttoward F
+GLIBC_2.4 nexttowardf F
+GLIBC_2.4 nexttowardl F
+GLIBC_2.4 pow10l F
+GLIBC_2.4 powl F
+GLIBC_2.4 remainderl F
+GLIBC_2.4 remquol F
+GLIBC_2.4 rintl F
+GLIBC_2.4 roundl F
+GLIBC_2.4 scalbl F
+GLIBC_2.4 scalblnl F
+GLIBC_2.4 scalbnl F
+GLIBC_2.4 significandl F
+GLIBC_2.4 sincosl F
+GLIBC_2.4 sinhl F
+GLIBC_2.4 sinl F
+GLIBC_2.4 sqrtl F
+GLIBC_2.4 tanhl F
+GLIBC_2.4 tanl F
+GLIBC_2.4 tgammal F
+GLIBC_2.4 truncl F
+GLIBC_2.4 y0l F
+GLIBC_2.4 y1l F
+GLIBC_2.4 ynl F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libnsl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libnsl.abilist
index 4318dc30ce..4318dc30ce 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libnsl.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libnsl.abilist
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
new file mode 100644
index 0000000000..618004a931
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
@@ -0,0 +1,251 @@
+GLIBC_2.11 pthread_sigqueue F
+GLIBC_2.12 pthread_getname_np F
+GLIBC_2.12 pthread_mutex_consistent F
+GLIBC_2.12 pthread_mutexattr_getrobust F
+GLIBC_2.12 pthread_mutexattr_setrobust F
+GLIBC_2.12 pthread_setname_np F
+GLIBC_2.18 pthread_getattr_default_np F
+GLIBC_2.18 pthread_setattr_default_np F
+GLIBC_2.28 call_once F
+GLIBC_2.28 cnd_broadcast F
+GLIBC_2.28 cnd_destroy F
+GLIBC_2.28 cnd_init F
+GLIBC_2.28 cnd_signal F
+GLIBC_2.28 cnd_timedwait F
+GLIBC_2.28 cnd_wait F
+GLIBC_2.28 mtx_destroy F
+GLIBC_2.28 mtx_init F
+GLIBC_2.28 mtx_lock F
+GLIBC_2.28 mtx_timedlock F
+GLIBC_2.28 mtx_trylock F
+GLIBC_2.28 mtx_unlock F
+GLIBC_2.28 thrd_create F
+GLIBC_2.28 thrd_detach F
+GLIBC_2.28 thrd_exit F
+GLIBC_2.28 thrd_join F
+GLIBC_2.28 tss_create F
+GLIBC_2.28 tss_delete F
+GLIBC_2.28 tss_get F
+GLIBC_2.28 tss_set F
+GLIBC_2.3 _IO_flockfile F
+GLIBC_2.3 _IO_ftrylockfile F
+GLIBC_2.3 _IO_funlockfile F
+GLIBC_2.3 __close F
+GLIBC_2.3 __connect F
+GLIBC_2.3 __errno_location F
+GLIBC_2.3 __fcntl F
+GLIBC_2.3 __fork F
+GLIBC_2.3 __h_errno_location F
+GLIBC_2.3 __libc_allocate_rtsig F
+GLIBC_2.3 __libc_current_sigrtmax F
+GLIBC_2.3 __libc_current_sigrtmin F
+GLIBC_2.3 __lseek F
+GLIBC_2.3 __open F
+GLIBC_2.3 __open64 F
+GLIBC_2.3 __pread64 F
+GLIBC_2.3 __pthread_getspecific F
+GLIBC_2.3 __pthread_key_create F
+GLIBC_2.3 __pthread_mutex_destroy F
+GLIBC_2.3 __pthread_mutex_init F
+GLIBC_2.3 __pthread_mutex_lock F
+GLIBC_2.3 __pthread_mutex_trylock F
+GLIBC_2.3 __pthread_mutex_unlock F
+GLIBC_2.3 __pthread_mutexattr_destroy F
+GLIBC_2.3 __pthread_mutexattr_init F
+GLIBC_2.3 __pthread_mutexattr_settype F
+GLIBC_2.3 __pthread_once F
+GLIBC_2.3 __pthread_rwlock_destroy F
+GLIBC_2.3 __pthread_rwlock_init F
+GLIBC_2.3 __pthread_rwlock_rdlock F
+GLIBC_2.3 __pthread_rwlock_tryrdlock F
+GLIBC_2.3 __pthread_rwlock_trywrlock F
+GLIBC_2.3 __pthread_rwlock_unlock F
+GLIBC_2.3 __pthread_rwlock_wrlock F
+GLIBC_2.3 __pthread_setspecific F
+GLIBC_2.3 __pwrite64 F
+GLIBC_2.3 __read F
+GLIBC_2.3 __res_state F
+GLIBC_2.3 __send F
+GLIBC_2.3 __sigaction F
+GLIBC_2.3 __wait F
+GLIBC_2.3 __write F
+GLIBC_2.3 _pthread_cleanup_pop F
+GLIBC_2.3 _pthread_cleanup_pop_restore F
+GLIBC_2.3 _pthread_cleanup_push F
+GLIBC_2.3 _pthread_cleanup_push_defer F
+GLIBC_2.3 accept F
+GLIBC_2.3 close F
+GLIBC_2.3 connect F
+GLIBC_2.3 fcntl F
+GLIBC_2.3 flockfile F
+GLIBC_2.3 fork F
+GLIBC_2.3 fsync F
+GLIBC_2.3 ftrylockfile F
+GLIBC_2.3 funlockfile F
+GLIBC_2.3 longjmp F
+GLIBC_2.3 lseek F
+GLIBC_2.3 lseek64 F
+GLIBC_2.3 msync F
+GLIBC_2.3 open F
+GLIBC_2.3 open64 F
+GLIBC_2.3 pause F
+GLIBC_2.3 pread F
+GLIBC_2.3 pread64 F
+GLIBC_2.3 pthread_attr_getguardsize F
+GLIBC_2.3 pthread_attr_getschedpolicy F
+GLIBC_2.3 pthread_attr_getscope F
+GLIBC_2.3 pthread_attr_getstack F
+GLIBC_2.3 pthread_attr_getstackaddr F
+GLIBC_2.3 pthread_attr_getstacksize F
+GLIBC_2.3 pthread_attr_setguardsize F
+GLIBC_2.3 pthread_attr_setschedpolicy F
+GLIBC_2.3 pthread_attr_setscope F
+GLIBC_2.3 pthread_attr_setstack F
+GLIBC_2.3 pthread_attr_setstackaddr F
+GLIBC_2.3 pthread_attr_setstacksize F
+GLIBC_2.3 pthread_barrier_destroy F
+GLIBC_2.3 pthread_barrier_init F
+GLIBC_2.3 pthread_barrier_wait F
+GLIBC_2.3 pthread_barrierattr_destroy F
+GLIBC_2.3 pthread_barrierattr_init F
+GLIBC_2.3 pthread_barrierattr_setpshared F
+GLIBC_2.3 pthread_cancel F
+GLIBC_2.3 pthread_cond_broadcast F
+GLIBC_2.3 pthread_cond_destroy F
+GLIBC_2.3 pthread_cond_init F
+GLIBC_2.3 pthread_cond_signal F
+GLIBC_2.3 pthread_cond_timedwait F
+GLIBC_2.3 pthread_cond_wait F
+GLIBC_2.3 pthread_condattr_destroy F
+GLIBC_2.3 pthread_condattr_getpshared F
+GLIBC_2.3 pthread_condattr_init F
+GLIBC_2.3 pthread_condattr_setpshared F
+GLIBC_2.3 pthread_create F
+GLIBC_2.3 pthread_detach F
+GLIBC_2.3 pthread_exit F
+GLIBC_2.3 pthread_getattr_np F
+GLIBC_2.3 pthread_getconcurrency F
+GLIBC_2.3 pthread_getcpuclockid F
+GLIBC_2.3 pthread_getschedparam F
+GLIBC_2.3 pthread_getspecific F
+GLIBC_2.3 pthread_join F
+GLIBC_2.3 pthread_key_create F
+GLIBC_2.3 pthread_key_delete F
+GLIBC_2.3 pthread_kill F
+GLIBC_2.3 pthread_kill_other_threads_np F
+GLIBC_2.3 pthread_mutex_destroy F
+GLIBC_2.3 pthread_mutex_init F
+GLIBC_2.3 pthread_mutex_lock F
+GLIBC_2.3 pthread_mutex_timedlock F
+GLIBC_2.3 pthread_mutex_trylock F
+GLIBC_2.3 pthread_mutex_unlock F
+GLIBC_2.3 pthread_mutexattr_destroy F
+GLIBC_2.3 pthread_mutexattr_getkind_np F
+GLIBC_2.3 pthread_mutexattr_getpshared F
+GLIBC_2.3 pthread_mutexattr_gettype F
+GLIBC_2.3 pthread_mutexattr_init F
+GLIBC_2.3 pthread_mutexattr_setkind_np F
+GLIBC_2.3 pthread_mutexattr_setpshared F
+GLIBC_2.3 pthread_mutexattr_settype F
+GLIBC_2.3 pthread_once F
+GLIBC_2.3 pthread_rwlock_destroy F
+GLIBC_2.3 pthread_rwlock_init F
+GLIBC_2.3 pthread_rwlock_rdlock F
+GLIBC_2.3 pthread_rwlock_timedrdlock F
+GLIBC_2.3 pthread_rwlock_timedwrlock F
+GLIBC_2.3 pthread_rwlock_tryrdlock F
+GLIBC_2.3 pthread_rwlock_trywrlock F
+GLIBC_2.3 pthread_rwlock_unlock F
+GLIBC_2.3 pthread_rwlock_wrlock F
+GLIBC_2.3 pthread_rwlockattr_destroy F
+GLIBC_2.3 pthread_rwlockattr_getkind_np F
+GLIBC_2.3 pthread_rwlockattr_getpshared F
+GLIBC_2.3 pthread_rwlockattr_init F
+GLIBC_2.3 pthread_rwlockattr_setkind_np F
+GLIBC_2.3 pthread_rwlockattr_setpshared F
+GLIBC_2.3 pthread_setcancelstate F
+GLIBC_2.3 pthread_setcanceltype F
+GLIBC_2.3 pthread_setconcurrency F
+GLIBC_2.3 pthread_setschedparam F
+GLIBC_2.3 pthread_setspecific F
+GLIBC_2.3 pthread_sigmask F
+GLIBC_2.3 pthread_spin_destroy F
+GLIBC_2.3 pthread_spin_init F
+GLIBC_2.3 pthread_spin_lock F
+GLIBC_2.3 pthread_spin_trylock F
+GLIBC_2.3 pthread_spin_unlock F
+GLIBC_2.3 pthread_testcancel F
+GLIBC_2.3 pthread_yield F
+GLIBC_2.3 pwrite F
+GLIBC_2.3 pwrite64 F
+GLIBC_2.3 raise F
+GLIBC_2.3 read F
+GLIBC_2.3 recv F
+GLIBC_2.3 recvfrom F
+GLIBC_2.3 recvmsg F
+GLIBC_2.3 sem_close F
+GLIBC_2.3 sem_destroy F
+GLIBC_2.3 sem_getvalue F
+GLIBC_2.3 sem_init F
+GLIBC_2.3 sem_open F
+GLIBC_2.3 sem_post F
+GLIBC_2.3 sem_timedwait F
+GLIBC_2.3 sem_trywait F
+GLIBC_2.3 sem_unlink F
+GLIBC_2.3 sem_wait F
+GLIBC_2.3 send F
+GLIBC_2.3 sendmsg F
+GLIBC_2.3 sendto F
+GLIBC_2.3 sigaction F
+GLIBC_2.3 siglongjmp F
+GLIBC_2.3 sigwait F
+GLIBC_2.3 system F
+GLIBC_2.3 tcdrain F
+GLIBC_2.3 wait F
+GLIBC_2.3 waitpid F
+GLIBC_2.3 write F
+GLIBC_2.3.2 pthread_cond_broadcast F
+GLIBC_2.3.2 pthread_cond_destroy F
+GLIBC_2.3.2 pthread_cond_init F
+GLIBC_2.3.2 pthread_cond_signal F
+GLIBC_2.3.2 pthread_cond_timedwait F
+GLIBC_2.3.2 pthread_cond_wait F
+GLIBC_2.3.3 __pthread_cleanup_routine F
+GLIBC_2.3.3 __pthread_register_cancel F
+GLIBC_2.3.3 __pthread_register_cancel_defer F
+GLIBC_2.3.3 __pthread_unregister_cancel F
+GLIBC_2.3.3 __pthread_unregister_cancel_restore F
+GLIBC_2.3.3 __pthread_unwind_next F
+GLIBC_2.3.3 pthread_attr_getaffinity_np F
+GLIBC_2.3.3 pthread_attr_setaffinity_np F
+GLIBC_2.3.3 pthread_barrierattr_getpshared F
+GLIBC_2.3.3 pthread_condattr_getclock F
+GLIBC_2.3.3 pthread_condattr_setclock F
+GLIBC_2.3.3 pthread_getaffinity_np F
+GLIBC_2.3.3 pthread_setaffinity_np F
+GLIBC_2.3.3 pthread_timedjoin_np F
+GLIBC_2.3.3 pthread_tryjoin_np F
+GLIBC_2.3.4 longjmp F
+GLIBC_2.3.4 pthread_attr_getaffinity_np F
+GLIBC_2.3.4 pthread_attr_setaffinity_np F
+GLIBC_2.3.4 pthread_getaffinity_np F
+GLIBC_2.3.4 pthread_setaffinity_np F
+GLIBC_2.3.4 pthread_setschedprio F
+GLIBC_2.3.4 siglongjmp F
+GLIBC_2.30 pthread_cond_clockwait F
+GLIBC_2.30 pthread_mutex_clocklock F
+GLIBC_2.30 pthread_rwlock_clockrdlock F
+GLIBC_2.30 pthread_rwlock_clockwrlock F
+GLIBC_2.30 sem_clockwait F
+GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.4 pthread_mutex_consistent_np F
+GLIBC_2.4 pthread_mutex_getprioceiling F
+GLIBC_2.4 pthread_mutex_setprioceiling F
+GLIBC_2.4 pthread_mutexattr_getprioceiling F
+GLIBC_2.4 pthread_mutexattr_getprotocol F
+GLIBC_2.4 pthread_mutexattr_getrobust_np F
+GLIBC_2.4 pthread_mutexattr_setprioceiling F
+GLIBC_2.4 pthread_mutexattr_setprotocol F
+GLIBC_2.4 pthread_mutexattr_setrobust_np F
+GLIBC_2.6 pthread_attr_setstack F
+GLIBC_2.6 pthread_attr_setstacksize F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
index 15f30deb34..15f30deb34 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libresolv.abilist
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
new file mode 100644
index 0000000000..6a5bd96963
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
@@ -0,0 +1,42 @@
+GLIBC_2.3 aio_cancel F
+GLIBC_2.3 aio_cancel64 F
+GLIBC_2.3 aio_error F
+GLIBC_2.3 aio_error64 F
+GLIBC_2.3 aio_fsync F
+GLIBC_2.3 aio_fsync64 F
+GLIBC_2.3 aio_init F
+GLIBC_2.3 aio_read F
+GLIBC_2.3 aio_read64 F
+GLIBC_2.3 aio_return F
+GLIBC_2.3 aio_return64 F
+GLIBC_2.3 aio_suspend F
+GLIBC_2.3 aio_suspend64 F
+GLIBC_2.3 aio_write F
+GLIBC_2.3 aio_write64 F
+GLIBC_2.3 lio_listio F
+GLIBC_2.3 lio_listio64 F
+GLIBC_2.3 shm_open F
+GLIBC_2.3 shm_unlink F
+GLIBC_2.3 timer_create F
+GLIBC_2.3 timer_delete F
+GLIBC_2.3 timer_getoverrun F
+GLIBC_2.3 timer_gettime F
+GLIBC_2.3 timer_settime F
+GLIBC_2.3.3 timer_create F
+GLIBC_2.3.3 timer_delete F
+GLIBC_2.3.3 timer_getoverrun F
+GLIBC_2.3.3 timer_gettime F
+GLIBC_2.3.3 timer_settime F
+GLIBC_2.3.4 mq_close F
+GLIBC_2.3.4 mq_getattr F
+GLIBC_2.3.4 mq_notify F
+GLIBC_2.3.4 mq_open F
+GLIBC_2.3.4 mq_receive F
+GLIBC_2.3.4 mq_send F
+GLIBC_2.3.4 mq_setattr F
+GLIBC_2.3.4 mq_timedreceive F
+GLIBC_2.3.4 mq_timedsend F
+GLIBC_2.3.4 mq_unlink F
+GLIBC_2.4 lio_listio F
+GLIBC_2.4 lio_listio64 F
+GLIBC_2.7 __mq_open_2 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libthread_db.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libthread_db.abilist
index cffc70d2fa..cffc70d2fa 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libthread_db.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libthread_db.abilist
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libutil.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libutil.abilist
index 9cf1da7aa4..9cf1da7aa4 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libutil.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libutil.abilist
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/brk.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/brk.S
index c8cb7edf77..c8a7cd312a 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/brk.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/brk.S
@@ -1,5 +1,5 @@
/* brk system call for Linux. PowerPC64 version.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#define _ERRNO_H 1
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S
index a4c8bbeac0..3dea55d3e8 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S
@@ -1,5 +1,5 @@
/* Wrapper around clone system call. PowerPC64 version.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#define _ERRNO_H 1
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/dl-cache.h b/sysdeps/unix/sysv/linux/powerpc/powerpc64/dl-cache.h
index 78dac07783..052bd6b7fe 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/dl-cache.h
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/dl-cache.h
@@ -1,5 +1,5 @@
/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _DL_CACHE_DEFAULT_ID 0x503
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_mask.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_mask.c
index 31564bee6c..8b16d698a3 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_mask.c
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_mask.c
@@ -1,5 +1,5 @@
/* Procedure definition for FE_MASK_ENV for Linux/ppc64.
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <errno.h>
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c
index 486ef84386..0b51f1cdba 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c
@@ -1,5 +1,5 @@
/* Procedure definition for FE_NOMASK_ENV for Linux/ppc64.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv_libc.h>
#include <errno.h>
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S
index 3378e629be..5bec438a54 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S
@@ -1,5 +1,5 @@
/* Save current context.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <rtld-global-offsets.h>
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/kernel_stat.h b/sysdeps/unix/sysv/linux/powerpc/powerpc64/kernel_stat.h
index 2f7f7e8a8a..7160104788 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/kernel_stat.h
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/kernel_stat.h
@@ -1,5 +1,5 @@
/* Definition of `struct stat' used in the kernel.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define STAT_IS_KERNEL_STAT 1
#define XSTAT_IS_XSTAT64 1
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/ldsodefs.h b/sysdeps/unix/sysv/linux/powerpc/powerpc64/ldsodefs.h
index 65c594cc29..3b14481da7 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/ldsodefs.h
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/ldsodefs.h
@@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LDSODEFS_H
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/ld-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/ld.abilist
index 37c8f6684b..37c8f6684b 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/ld-le.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/ld.abilist
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libBrokenLocale-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libBrokenLocale.abilist
index 0829ddef6d..0829ddef6d 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libBrokenLocale-le.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libBrokenLocale.abilist
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libanl-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libanl.abilist
index 9492cd5290..9492cd5290 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libanl-le.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libanl.abilist
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
new file mode 100644
index 0000000000..2229a1dcc0
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -0,0 +1,2249 @@
+GLIBC_2.17 _Exit F
+GLIBC_2.17 _IO_2_1_stderr_ D 0xe0
+GLIBC_2.17 _IO_2_1_stdin_ D 0xe0
+GLIBC_2.17 _IO_2_1_stdout_ D 0xe0
+GLIBC_2.17 _IO_adjust_column F
+GLIBC_2.17 _IO_adjust_wcolumn F
+GLIBC_2.17 _IO_default_doallocate F
+GLIBC_2.17 _IO_default_finish F
+GLIBC_2.17 _IO_default_pbackfail F
+GLIBC_2.17 _IO_default_uflow F
+GLIBC_2.17 _IO_default_xsgetn F
+GLIBC_2.17 _IO_default_xsputn F
+GLIBC_2.17 _IO_do_write F
+GLIBC_2.17 _IO_doallocbuf F
+GLIBC_2.17 _IO_fclose F
+GLIBC_2.17 _IO_fdopen F
+GLIBC_2.17 _IO_feof F
+GLIBC_2.17 _IO_ferror F
+GLIBC_2.17 _IO_fflush F
+GLIBC_2.17 _IO_fgetpos F
+GLIBC_2.17 _IO_fgetpos64 F
+GLIBC_2.17 _IO_fgets F
+GLIBC_2.17 _IO_file_attach F
+GLIBC_2.17 _IO_file_close F
+GLIBC_2.17 _IO_file_close_it F
+GLIBC_2.17 _IO_file_doallocate F
+GLIBC_2.17 _IO_file_finish F
+GLIBC_2.17 _IO_file_fopen F
+GLIBC_2.17 _IO_file_init F
+GLIBC_2.17 _IO_file_jumps D 0xa8
+GLIBC_2.17 _IO_file_open F
+GLIBC_2.17 _IO_file_overflow F
+GLIBC_2.17 _IO_file_read F
+GLIBC_2.17 _IO_file_seek F
+GLIBC_2.17 _IO_file_seekoff F
+GLIBC_2.17 _IO_file_setbuf F
+GLIBC_2.17 _IO_file_stat F
+GLIBC_2.17 _IO_file_sync F
+GLIBC_2.17 _IO_file_underflow F
+GLIBC_2.17 _IO_file_write F
+GLIBC_2.17 _IO_file_xsputn F
+GLIBC_2.17 _IO_flockfile F
+GLIBC_2.17 _IO_flush_all F
+GLIBC_2.17 _IO_flush_all_linebuffered F
+GLIBC_2.17 _IO_fopen F
+GLIBC_2.17 _IO_fprintf F
+GLIBC_2.17 _IO_fputs F
+GLIBC_2.17 _IO_fread F
+GLIBC_2.17 _IO_free_backup_area F
+GLIBC_2.17 _IO_free_wbackup_area F
+GLIBC_2.17 _IO_fsetpos F
+GLIBC_2.17 _IO_fsetpos64 F
+GLIBC_2.17 _IO_ftell F
+GLIBC_2.17 _IO_ftrylockfile F
+GLIBC_2.17 _IO_funlockfile F
+GLIBC_2.17 _IO_fwrite F
+GLIBC_2.17 _IO_getc F
+GLIBC_2.17 _IO_getline F
+GLIBC_2.17 _IO_getline_info F
+GLIBC_2.17 _IO_gets F
+GLIBC_2.17 _IO_init F
+GLIBC_2.17 _IO_init_marker F
+GLIBC_2.17 _IO_init_wmarker F
+GLIBC_2.17 _IO_iter_begin F
+GLIBC_2.17 _IO_iter_end F
+GLIBC_2.17 _IO_iter_file F
+GLIBC_2.17 _IO_iter_next F
+GLIBC_2.17 _IO_least_wmarker F
+GLIBC_2.17 _IO_link_in F
+GLIBC_2.17 _IO_list_all D 0x8
+GLIBC_2.17 _IO_list_lock F
+GLIBC_2.17 _IO_list_resetlock F
+GLIBC_2.17 _IO_list_unlock F
+GLIBC_2.17 _IO_marker_delta F
+GLIBC_2.17 _IO_marker_difference F
+GLIBC_2.17 _IO_padn F
+GLIBC_2.17 _IO_peekc_locked F
+GLIBC_2.17 _IO_popen F
+GLIBC_2.17 _IO_printf F
+GLIBC_2.17 _IO_proc_close F
+GLIBC_2.17 _IO_proc_open F
+GLIBC_2.17 _IO_putc F
+GLIBC_2.17 _IO_puts F
+GLIBC_2.17 _IO_remove_marker F
+GLIBC_2.17 _IO_seekmark F
+GLIBC_2.17 _IO_seekoff F
+GLIBC_2.17 _IO_seekpos F
+GLIBC_2.17 _IO_seekwmark F
+GLIBC_2.17 _IO_setb F
+GLIBC_2.17 _IO_setbuffer F
+GLIBC_2.17 _IO_setvbuf F
+GLIBC_2.17 _IO_sgetn F
+GLIBC_2.17 _IO_sprintf F
+GLIBC_2.17 _IO_sputbackc F
+GLIBC_2.17 _IO_sputbackwc F
+GLIBC_2.17 _IO_sscanf F
+GLIBC_2.17 _IO_str_init_readonly F
+GLIBC_2.17 _IO_str_init_static F
+GLIBC_2.17 _IO_str_overflow F
+GLIBC_2.17 _IO_str_pbackfail F
+GLIBC_2.17 _IO_str_seekoff F
+GLIBC_2.17 _IO_str_underflow F
+GLIBC_2.17 _IO_sungetc F
+GLIBC_2.17 _IO_sungetwc F
+GLIBC_2.17 _IO_switch_to_get_mode F
+GLIBC_2.17 _IO_switch_to_main_wget_area F
+GLIBC_2.17 _IO_switch_to_wbackup_area F
+GLIBC_2.17 _IO_switch_to_wget_mode F
+GLIBC_2.17 _IO_un_link F
+GLIBC_2.17 _IO_ungetc F
+GLIBC_2.17 _IO_unsave_markers F
+GLIBC_2.17 _IO_unsave_wmarkers F
+GLIBC_2.17 _IO_vfprintf F
+GLIBC_2.17 _IO_vfscanf F
+GLIBC_2.17 _IO_vsprintf F
+GLIBC_2.17 _IO_wdefault_doallocate F
+GLIBC_2.17 _IO_wdefault_finish F
+GLIBC_2.17 _IO_wdefault_pbackfail F
+GLIBC_2.17 _IO_wdefault_uflow F
+GLIBC_2.17 _IO_wdefault_xsgetn F
+GLIBC_2.17 _IO_wdefault_xsputn F
+GLIBC_2.17 _IO_wdo_write F
+GLIBC_2.17 _IO_wdoallocbuf F
+GLIBC_2.17 _IO_wfile_jumps D 0xa8
+GLIBC_2.17 _IO_wfile_overflow F
+GLIBC_2.17 _IO_wfile_seekoff F
+GLIBC_2.17 _IO_wfile_sync F
+GLIBC_2.17 _IO_wfile_underflow F
+GLIBC_2.17 _IO_wfile_xsputn F
+GLIBC_2.17 _IO_wmarker_delta F
+GLIBC_2.17 _IO_wsetb F
+GLIBC_2.17 __adjtimex F
+GLIBC_2.17 __after_morecore_hook D 0x8
+GLIBC_2.17 __argz_count F
+GLIBC_2.17 __argz_next F
+GLIBC_2.17 __argz_stringify F
+GLIBC_2.17 __asprintf F
+GLIBC_2.17 __asprintf_chk F
+GLIBC_2.17 __assert F
+GLIBC_2.17 __assert_fail F
+GLIBC_2.17 __assert_perror_fail F
+GLIBC_2.17 __backtrace F
+GLIBC_2.17 __backtrace_symbols F
+GLIBC_2.17 __backtrace_symbols_fd F
+GLIBC_2.17 __bsd_getpgrp F
+GLIBC_2.17 __bzero F
+GLIBC_2.17 __check_rhosts_file D 0x4
+GLIBC_2.17 __chk_fail F
+GLIBC_2.17 __clone F
+GLIBC_2.17 __close F
+GLIBC_2.17 __cmsg_nxthdr F
+GLIBC_2.17 __confstr_chk F
+GLIBC_2.17 __connect F
+GLIBC_2.17 __ctype_b_loc F
+GLIBC_2.17 __ctype_get_mb_cur_max F
+GLIBC_2.17 __ctype_tolower_loc F
+GLIBC_2.17 __ctype_toupper_loc F
+GLIBC_2.17 __curbrk D 0x8
+GLIBC_2.17 __cxa_at_quick_exit F
+GLIBC_2.17 __cxa_atexit F
+GLIBC_2.17 __cxa_finalize F
+GLIBC_2.17 __cyg_profile_func_enter F
+GLIBC_2.17 __cyg_profile_func_exit F
+GLIBC_2.17 __daylight D 0x4
+GLIBC_2.17 __dcgettext F
+GLIBC_2.17 __default_morecore F
+GLIBC_2.17 __dgettext F
+GLIBC_2.17 __dprintf_chk F
+GLIBC_2.17 __dup2 F
+GLIBC_2.17 __duplocale F
+GLIBC_2.17 __endmntent F
+GLIBC_2.17 __environ D 0x8
+GLIBC_2.17 __errno_location F
+GLIBC_2.17 __fbufsize F
+GLIBC_2.17 __fcntl F
+GLIBC_2.17 __fdelt_chk F
+GLIBC_2.17 __fdelt_warn F
+GLIBC_2.17 __ffs F
+GLIBC_2.17 __fgets_chk F
+GLIBC_2.17 __fgets_unlocked_chk F
+GLIBC_2.17 __fgetws_chk F
+GLIBC_2.17 __fgetws_unlocked_chk F
+GLIBC_2.17 __finite F
+GLIBC_2.17 __finitef F
+GLIBC_2.17 __finitel F
+GLIBC_2.17 __flbf F
+GLIBC_2.17 __fork F
+GLIBC_2.17 __fpending F
+GLIBC_2.17 __fprintf_chk F
+GLIBC_2.17 __fpu_control D 0x4
+GLIBC_2.17 __fpurge F
+GLIBC_2.17 __fread_chk F
+GLIBC_2.17 __fread_unlocked_chk F
+GLIBC_2.17 __freadable F
+GLIBC_2.17 __freading F
+GLIBC_2.17 __free_hook D 0x8
+GLIBC_2.17 __freelocale F
+GLIBC_2.17 __fsetlocking F
+GLIBC_2.17 __fwprintf_chk F
+GLIBC_2.17 __fwritable F
+GLIBC_2.17 __fwriting F
+GLIBC_2.17 __fxstat F
+GLIBC_2.17 __fxstat64 F
+GLIBC_2.17 __fxstatat F
+GLIBC_2.17 __fxstatat64 F
+GLIBC_2.17 __getauxval F
+GLIBC_2.17 __getcwd_chk F
+GLIBC_2.17 __getdelim F
+GLIBC_2.17 __getdomainname_chk F
+GLIBC_2.17 __getgroups_chk F
+GLIBC_2.17 __gethostname_chk F
+GLIBC_2.17 __getlogin_r_chk F
+GLIBC_2.17 __getmntent_r F
+GLIBC_2.17 __getpagesize F
+GLIBC_2.17 __getpgid F
+GLIBC_2.17 __getpid F
+GLIBC_2.17 __gets_chk F
+GLIBC_2.17 __gettimeofday F
+GLIBC_2.17 __getwd_chk F
+GLIBC_2.17 __gmtime_r F
+GLIBC_2.17 __h_errno_location F
+GLIBC_2.17 __isalnum_l F
+GLIBC_2.17 __isalpha_l F
+GLIBC_2.17 __isascii_l F
+GLIBC_2.17 __isblank_l F
+GLIBC_2.17 __iscntrl_l F
+GLIBC_2.17 __isctype F
+GLIBC_2.17 __isdigit_l F
+GLIBC_2.17 __isgraph_l F
+GLIBC_2.17 __isinf F
+GLIBC_2.17 __isinff F
+GLIBC_2.17 __isinfl F
+GLIBC_2.17 __islower_l F
+GLIBC_2.17 __isnan F
+GLIBC_2.17 __isnanf F
+GLIBC_2.17 __isnanl F
+GLIBC_2.17 __isoc99_fscanf F
+GLIBC_2.17 __isoc99_fwscanf F
+GLIBC_2.17 __isoc99_scanf F
+GLIBC_2.17 __isoc99_sscanf F
+GLIBC_2.17 __isoc99_swscanf F
+GLIBC_2.17 __isoc99_vfscanf F
+GLIBC_2.17 __isoc99_vfwscanf F
+GLIBC_2.17 __isoc99_vscanf F
+GLIBC_2.17 __isoc99_vsscanf F
+GLIBC_2.17 __isoc99_vswscanf F
+GLIBC_2.17 __isoc99_vwscanf F
+GLIBC_2.17 __isoc99_wscanf F
+GLIBC_2.17 __isprint_l F
+GLIBC_2.17 __ispunct_l F
+GLIBC_2.17 __isspace_l F
+GLIBC_2.17 __isupper_l F
+GLIBC_2.17 __iswalnum_l F
+GLIBC_2.17 __iswalpha_l F
+GLIBC_2.17 __iswblank_l F
+GLIBC_2.17 __iswcntrl_l F
+GLIBC_2.17 __iswctype F
+GLIBC_2.17 __iswctype_l F
+GLIBC_2.17 __iswdigit_l F
+GLIBC_2.17 __iswgraph_l F
+GLIBC_2.17 __iswlower_l F
+GLIBC_2.17 __iswprint_l F
+GLIBC_2.17 __iswpunct_l F
+GLIBC_2.17 __iswspace_l F
+GLIBC_2.17 __iswupper_l F
+GLIBC_2.17 __iswxdigit_l F
+GLIBC_2.17 __isxdigit_l F
+GLIBC_2.17 __ivaliduser F
+GLIBC_2.17 __key_decryptsession_pk_LOCAL D 0x8
+GLIBC_2.17 __key_encryptsession_pk_LOCAL D 0x8
+GLIBC_2.17 __key_gendes_LOCAL D 0x8
+GLIBC_2.17 __libc_allocate_rtsig F
+GLIBC_2.17 __libc_calloc F
+GLIBC_2.17 __libc_current_sigrtmax F
+GLIBC_2.17 __libc_current_sigrtmin F
+GLIBC_2.17 __libc_free F
+GLIBC_2.17 __libc_freeres F
+GLIBC_2.17 __libc_init_first F
+GLIBC_2.17 __libc_mallinfo F
+GLIBC_2.17 __libc_malloc F
+GLIBC_2.17 __libc_mallopt F
+GLIBC_2.17 __libc_memalign F
+GLIBC_2.17 __libc_pvalloc F
+GLIBC_2.17 __libc_realloc F
+GLIBC_2.17 __libc_sa_len F
+GLIBC_2.17 __libc_start_main F
+GLIBC_2.17 __libc_valloc F
+GLIBC_2.17 __longjmp_chk F
+GLIBC_2.17 __lseek F
+GLIBC_2.17 __lxstat F
+GLIBC_2.17 __lxstat64 F
+GLIBC_2.17 __malloc_hook D 0x8
+GLIBC_2.17 __malloc_initialize_hook D 0x8
+GLIBC_2.17 __mbrlen F
+GLIBC_2.17 __mbrtowc F
+GLIBC_2.17 __mbsnrtowcs_chk F
+GLIBC_2.17 __mbsrtowcs_chk F
+GLIBC_2.17 __mbstowcs_chk F
+GLIBC_2.17 __memalign_hook D 0x8
+GLIBC_2.17 __memcpy_chk F
+GLIBC_2.17 __memmove_chk F
+GLIBC_2.17 __mempcpy F
+GLIBC_2.17 __mempcpy_chk F
+GLIBC_2.17 __mempcpy_small F
+GLIBC_2.17 __memset_chk F
+GLIBC_2.17 __monstartup F
+GLIBC_2.17 __morecore D 0x8
+GLIBC_2.17 __nanosleep F
+GLIBC_2.17 __newlocale F
+GLIBC_2.17 __nl_langinfo_l F
+GLIBC_2.17 __nldbl__IO_fprintf F
+GLIBC_2.17 __nldbl__IO_printf F
+GLIBC_2.17 __nldbl__IO_sprintf F
+GLIBC_2.17 __nldbl__IO_sscanf F
+GLIBC_2.17 __nldbl__IO_vfprintf F
+GLIBC_2.17 __nldbl__IO_vfscanf F
+GLIBC_2.17 __nldbl__IO_vsprintf F
+GLIBC_2.17 __nldbl___asprintf F
+GLIBC_2.17 __nldbl___asprintf_chk F
+GLIBC_2.17 __nldbl___dprintf_chk F
+GLIBC_2.17 __nldbl___fprintf_chk F
+GLIBC_2.17 __nldbl___fwprintf_chk F
+GLIBC_2.17 __nldbl___isoc99_fscanf F
+GLIBC_2.17 __nldbl___isoc99_fwscanf F
+GLIBC_2.17 __nldbl___isoc99_scanf F
+GLIBC_2.17 __nldbl___isoc99_sscanf F
+GLIBC_2.17 __nldbl___isoc99_swscanf F
+GLIBC_2.17 __nldbl___isoc99_vfscanf F
+GLIBC_2.17 __nldbl___isoc99_vfwscanf F
+GLIBC_2.17 __nldbl___isoc99_vscanf F
+GLIBC_2.17 __nldbl___isoc99_vsscanf F
+GLIBC_2.17 __nldbl___isoc99_vswscanf F
+GLIBC_2.17 __nldbl___isoc99_vwscanf F
+GLIBC_2.17 __nldbl___isoc99_wscanf F
+GLIBC_2.17 __nldbl___obstack_printf_chk F
+GLIBC_2.17 __nldbl___obstack_vprintf_chk F
+GLIBC_2.17 __nldbl___printf_chk F
+GLIBC_2.17 __nldbl___printf_fp F
+GLIBC_2.17 __nldbl___snprintf_chk F
+GLIBC_2.17 __nldbl___sprintf_chk F
+GLIBC_2.17 __nldbl___strfmon_l F
+GLIBC_2.17 __nldbl___swprintf_chk F
+GLIBC_2.17 __nldbl___syslog_chk F
+GLIBC_2.17 __nldbl___vasprintf_chk F
+GLIBC_2.17 __nldbl___vdprintf_chk F
+GLIBC_2.17 __nldbl___vfprintf_chk F
+GLIBC_2.17 __nldbl___vfscanf F
+GLIBC_2.17 __nldbl___vfwprintf_chk F
+GLIBC_2.17 __nldbl___vprintf_chk F
+GLIBC_2.17 __nldbl___vsnprintf F
+GLIBC_2.17 __nldbl___vsnprintf_chk F
+GLIBC_2.17 __nldbl___vsprintf_chk F
+GLIBC_2.17 __nldbl___vsscanf F
+GLIBC_2.17 __nldbl___vstrfmon F
+GLIBC_2.17 __nldbl___vstrfmon_l F
+GLIBC_2.17 __nldbl___vswprintf_chk F
+GLIBC_2.17 __nldbl___vsyslog_chk F
+GLIBC_2.17 __nldbl___vwprintf_chk F
+GLIBC_2.17 __nldbl___wprintf_chk F
+GLIBC_2.17 __nldbl_asprintf F
+GLIBC_2.17 __nldbl_dprintf F
+GLIBC_2.17 __nldbl_fprintf F
+GLIBC_2.17 __nldbl_fscanf F
+GLIBC_2.17 __nldbl_fwprintf F
+GLIBC_2.17 __nldbl_fwscanf F
+GLIBC_2.17 __nldbl_obstack_printf F
+GLIBC_2.17 __nldbl_obstack_vprintf F
+GLIBC_2.17 __nldbl_printf F
+GLIBC_2.17 __nldbl_printf_size F
+GLIBC_2.17 __nldbl_scanf F
+GLIBC_2.17 __nldbl_snprintf F
+GLIBC_2.17 __nldbl_sprintf F
+GLIBC_2.17 __nldbl_sscanf F
+GLIBC_2.17 __nldbl_strfmon F
+GLIBC_2.17 __nldbl_strfmon_l F
+GLIBC_2.17 __nldbl_swprintf F
+GLIBC_2.17 __nldbl_swscanf F
+GLIBC_2.17 __nldbl_syslog F
+GLIBC_2.17 __nldbl_vasprintf F
+GLIBC_2.17 __nldbl_vdprintf F
+GLIBC_2.17 __nldbl_vfprintf F
+GLIBC_2.17 __nldbl_vfscanf F
+GLIBC_2.17 __nldbl_vfwprintf F
+GLIBC_2.17 __nldbl_vfwscanf F
+GLIBC_2.17 __nldbl_vprintf F
+GLIBC_2.17 __nldbl_vscanf F
+GLIBC_2.17 __nldbl_vsnprintf F
+GLIBC_2.17 __nldbl_vsprintf F
+GLIBC_2.17 __nldbl_vsscanf F
+GLIBC_2.17 __nldbl_vswprintf F
+GLIBC_2.17 __nldbl_vswscanf F
+GLIBC_2.17 __nldbl_vsyslog F
+GLIBC_2.17 __nldbl_vwprintf F
+GLIBC_2.17 __nldbl_vwscanf F
+GLIBC_2.17 __nldbl_wprintf F
+GLIBC_2.17 __nldbl_wscanf F
+GLIBC_2.17 __nss_configure_lookup F
+GLIBC_2.17 __nss_database_lookup F
+GLIBC_2.17 __nss_group_lookup F
+GLIBC_2.17 __nss_hostname_digits_dots F
+GLIBC_2.17 __nss_hosts_lookup F
+GLIBC_2.17 __nss_next F
+GLIBC_2.17 __nss_passwd_lookup F
+GLIBC_2.17 __obstack_printf_chk F
+GLIBC_2.17 __obstack_vprintf_chk F
+GLIBC_2.17 __open F
+GLIBC_2.17 __open64 F
+GLIBC_2.17 __open64_2 F
+GLIBC_2.17 __open_2 F
+GLIBC_2.17 __openat64_2 F
+GLIBC_2.17 __openat_2 F
+GLIBC_2.17 __overflow F
+GLIBC_2.17 __pipe F
+GLIBC_2.17 __poll F
+GLIBC_2.17 __poll_chk F
+GLIBC_2.17 __posix_getopt F
+GLIBC_2.17 __ppc_get_timebase_freq F
+GLIBC_2.17 __ppoll_chk F
+GLIBC_2.17 __pread64 F
+GLIBC_2.17 __pread64_chk F
+GLIBC_2.17 __pread_chk F
+GLIBC_2.17 __printf_chk F
+GLIBC_2.17 __printf_fp F
+GLIBC_2.17 __profile_frequency F
+GLIBC_2.17 __progname D 0x8
+GLIBC_2.17 __progname_full D 0x8
+GLIBC_2.17 __ptsname_r_chk F
+GLIBC_2.17 __pwrite64 F
+GLIBC_2.17 __rawmemchr F
+GLIBC_2.17 __rcmd_errstr D 0x8
+GLIBC_2.17 __read F
+GLIBC_2.17 __read_chk F
+GLIBC_2.17 __readlink_chk F
+GLIBC_2.17 __readlinkat_chk F
+GLIBC_2.17 __realloc_hook D 0x8
+GLIBC_2.17 __realpath_chk F
+GLIBC_2.17 __recv_chk F
+GLIBC_2.17 __recvfrom_chk F
+GLIBC_2.17 __register_atfork F
+GLIBC_2.17 __res_init F
+GLIBC_2.17 __res_nclose F
+GLIBC_2.17 __res_ninit F
+GLIBC_2.17 __res_randomid F
+GLIBC_2.17 __res_state F
+GLIBC_2.17 __rpc_thread_createerr F
+GLIBC_2.17 __rpc_thread_svc_fdset F
+GLIBC_2.17 __rpc_thread_svc_max_pollfd F
+GLIBC_2.17 __rpc_thread_svc_pollfd F
+GLIBC_2.17 __sbrk F
+GLIBC_2.17 __sched_cpualloc F
+GLIBC_2.17 __sched_cpucount F
+GLIBC_2.17 __sched_cpufree F
+GLIBC_2.17 __sched_get_priority_max F
+GLIBC_2.17 __sched_get_priority_min F
+GLIBC_2.17 __sched_getparam F
+GLIBC_2.17 __sched_getscheduler F
+GLIBC_2.17 __sched_setscheduler F
+GLIBC_2.17 __sched_yield F
+GLIBC_2.17 __select F
+GLIBC_2.17 __send F
+GLIBC_2.17 __setmntent F
+GLIBC_2.17 __setpgid F
+GLIBC_2.17 __sigaction F
+GLIBC_2.17 __sigaddset F
+GLIBC_2.17 __sigdelset F
+GLIBC_2.17 __sigismember F
+GLIBC_2.17 __signbit F
+GLIBC_2.17 __signbitf F
+GLIBC_2.17 __signbitl F
+GLIBC_2.17 __sigpause F
+GLIBC_2.17 __sigsetjmp F
+GLIBC_2.17 __sigsuspend F
+GLIBC_2.17 __snprintf_chk F
+GLIBC_2.17 __sprintf_chk F
+GLIBC_2.17 __stack_chk_fail F
+GLIBC_2.17 __statfs F
+GLIBC_2.17 __stpcpy F
+GLIBC_2.17 __stpcpy_chk F
+GLIBC_2.17 __stpcpy_small F
+GLIBC_2.17 __stpncpy F
+GLIBC_2.17 __stpncpy_chk F
+GLIBC_2.17 __strcasecmp F
+GLIBC_2.17 __strcasecmp_l F
+GLIBC_2.17 __strcasestr F
+GLIBC_2.17 __strcat_chk F
+GLIBC_2.17 __strcoll_l F
+GLIBC_2.17 __strcpy_chk F
+GLIBC_2.17 __strcpy_small F
+GLIBC_2.17 __strcspn_c1 F
+GLIBC_2.17 __strcspn_c2 F
+GLIBC_2.17 __strcspn_c3 F
+GLIBC_2.17 __strdup F
+GLIBC_2.17 __strerror_r F
+GLIBC_2.17 __strfmon_l F
+GLIBC_2.17 __strftime_l F
+GLIBC_2.17 __strncasecmp_l F
+GLIBC_2.17 __strncat_chk F
+GLIBC_2.17 __strncpy_chk F
+GLIBC_2.17 __strndup F
+GLIBC_2.17 __strpbrk_c2 F
+GLIBC_2.17 __strpbrk_c3 F
+GLIBC_2.17 __strsep_1c F
+GLIBC_2.17 __strsep_2c F
+GLIBC_2.17 __strsep_3c F
+GLIBC_2.17 __strsep_g F
+GLIBC_2.17 __strspn_c1 F
+GLIBC_2.17 __strspn_c2 F
+GLIBC_2.17 __strspn_c3 F
+GLIBC_2.17 __strtod_internal F
+GLIBC_2.17 __strtod_l F
+GLIBC_2.17 __strtof_internal F
+GLIBC_2.17 __strtof_l F
+GLIBC_2.17 __strtok_r F
+GLIBC_2.17 __strtok_r_1c F
+GLIBC_2.17 __strtol_internal F
+GLIBC_2.17 __strtol_l F
+GLIBC_2.17 __strtold_internal F
+GLIBC_2.17 __strtold_l F
+GLIBC_2.17 __strtoll_internal F
+GLIBC_2.17 __strtoll_l F
+GLIBC_2.17 __strtoul_internal F
+GLIBC_2.17 __strtoul_l F
+GLIBC_2.17 __strtoull_internal F
+GLIBC_2.17 __strtoull_l F
+GLIBC_2.17 __strverscmp F
+GLIBC_2.17 __strxfrm_l F
+GLIBC_2.17 __swprintf_chk F
+GLIBC_2.17 __sysconf F
+GLIBC_2.17 __sysctl F
+GLIBC_2.17 __syslog_chk F
+GLIBC_2.17 __sysv_signal F
+GLIBC_2.17 __timezone D 0x8
+GLIBC_2.17 __toascii_l F
+GLIBC_2.17 __tolower_l F
+GLIBC_2.17 __toupper_l F
+GLIBC_2.17 __towctrans F
+GLIBC_2.17 __towctrans_l F
+GLIBC_2.17 __towlower_l F
+GLIBC_2.17 __towupper_l F
+GLIBC_2.17 __ttyname_r_chk F
+GLIBC_2.17 __tzname D 0x10
+GLIBC_2.17 __uflow F
+GLIBC_2.17 __underflow F
+GLIBC_2.17 __uselocale F
+GLIBC_2.17 __vasprintf_chk F
+GLIBC_2.17 __vdprintf_chk F
+GLIBC_2.17 __vfork F
+GLIBC_2.17 __vfprintf_chk F
+GLIBC_2.17 __vfscanf F
+GLIBC_2.17 __vfwprintf_chk F
+GLIBC_2.17 __vprintf_chk F
+GLIBC_2.17 __vsnprintf F
+GLIBC_2.17 __vsnprintf_chk F
+GLIBC_2.17 __vsprintf_chk F
+GLIBC_2.17 __vsscanf F
+GLIBC_2.17 __vswprintf_chk F
+GLIBC_2.17 __vsyslog_chk F
+GLIBC_2.17 __vwprintf_chk F
+GLIBC_2.17 __wait F
+GLIBC_2.17 __waitpid F
+GLIBC_2.17 __wcpcpy_chk F
+GLIBC_2.17 __wcpncpy_chk F
+GLIBC_2.17 __wcrtomb_chk F
+GLIBC_2.17 __wcscasecmp_l F
+GLIBC_2.17 __wcscat_chk F
+GLIBC_2.17 __wcscoll_l F
+GLIBC_2.17 __wcscpy_chk F
+GLIBC_2.17 __wcsftime_l F
+GLIBC_2.17 __wcsncasecmp_l F
+GLIBC_2.17 __wcsncat_chk F
+GLIBC_2.17 __wcsncpy_chk F
+GLIBC_2.17 __wcsnrtombs_chk F
+GLIBC_2.17 __wcsrtombs_chk F
+GLIBC_2.17 __wcstod_internal F
+GLIBC_2.17 __wcstod_l F
+GLIBC_2.17 __wcstof_internal F
+GLIBC_2.17 __wcstof_l F
+GLIBC_2.17 __wcstol_internal F
+GLIBC_2.17 __wcstol_l F
+GLIBC_2.17 __wcstold_internal F
+GLIBC_2.17 __wcstold_l F
+GLIBC_2.17 __wcstoll_internal F
+GLIBC_2.17 __wcstoll_l F
+GLIBC_2.17 __wcstombs_chk F
+GLIBC_2.17 __wcstoul_internal F
+GLIBC_2.17 __wcstoul_l F
+GLIBC_2.17 __wcstoull_internal F
+GLIBC_2.17 __wcstoull_l F
+GLIBC_2.17 __wcsxfrm_l F
+GLIBC_2.17 __wctomb_chk F
+GLIBC_2.17 __wctrans_l F
+GLIBC_2.17 __wctype_l F
+GLIBC_2.17 __wmemcpy_chk F
+GLIBC_2.17 __wmemmove_chk F
+GLIBC_2.17 __wmempcpy_chk F
+GLIBC_2.17 __wmemset_chk F
+GLIBC_2.17 __woverflow F
+GLIBC_2.17 __wprintf_chk F
+GLIBC_2.17 __write F
+GLIBC_2.17 __wuflow F
+GLIBC_2.17 __wunderflow F
+GLIBC_2.17 __xmknod F
+GLIBC_2.17 __xmknodat F
+GLIBC_2.17 __xpg_basename F
+GLIBC_2.17 __xpg_sigpause F
+GLIBC_2.17 __xpg_strerror_r F
+GLIBC_2.17 __xstat F
+GLIBC_2.17 __xstat64 F
+GLIBC_2.17 _authenticate F
+GLIBC_2.17 _dl_mcount_wrapper F
+GLIBC_2.17 _dl_mcount_wrapper_check F
+GLIBC_2.17 _environ D 0x8
+GLIBC_2.17 _exit F
+GLIBC_2.17 _flushlbf F
+GLIBC_2.17 _libc_intl_domainname D 0x5
+GLIBC_2.17 _longjmp F
+GLIBC_2.17 _mcleanup F
+GLIBC_2.17 _mcount F
+GLIBC_2.17 _nl_default_dirname D 0x12
+GLIBC_2.17 _nl_domain_bindings D 0x8
+GLIBC_2.17 _nl_msg_cat_cntr D 0x4
+GLIBC_2.17 _null_auth D 0x18
+GLIBC_2.17 _obstack_allocated_p F
+GLIBC_2.17 _obstack_begin F
+GLIBC_2.17 _obstack_begin_1 F
+GLIBC_2.17 _obstack_free F
+GLIBC_2.17 _obstack_memory_used F
+GLIBC_2.17 _obstack_newchunk F
+GLIBC_2.17 _res D 0x238
+GLIBC_2.17 _res_hconf D 0x48
+GLIBC_2.17 _rpc_dtablesize F
+GLIBC_2.17 _seterr_reply F
+GLIBC_2.17 _setjmp F
+GLIBC_2.17 _sys_errlist D 0x438
+GLIBC_2.17 _sys_nerr D 0x4
+GLIBC_2.17 _sys_siglist D 0x208
+GLIBC_2.17 _tolower F
+GLIBC_2.17 _toupper F
+GLIBC_2.17 a64l F
+GLIBC_2.17 abort F
+GLIBC_2.17 abs F
+GLIBC_2.17 accept F
+GLIBC_2.17 accept4 F
+GLIBC_2.17 access F
+GLIBC_2.17 acct F
+GLIBC_2.17 addmntent F
+GLIBC_2.17 addseverity F
+GLIBC_2.17 adjtime F
+GLIBC_2.17 adjtimex F
+GLIBC_2.17 advance F
+GLIBC_2.17 alarm F
+GLIBC_2.17 aligned_alloc F
+GLIBC_2.17 alphasort F
+GLIBC_2.17 alphasort64 F
+GLIBC_2.17 argp_err_exit_status D 0x4
+GLIBC_2.17 argp_error F
+GLIBC_2.17 argp_failure F
+GLIBC_2.17 argp_help F
+GLIBC_2.17 argp_parse F
+GLIBC_2.17 argp_program_bug_address D 0x8
+GLIBC_2.17 argp_program_version D 0x8
+GLIBC_2.17 argp_program_version_hook D 0x8
+GLIBC_2.17 argp_state_help F
+GLIBC_2.17 argp_usage F
+GLIBC_2.17 argz_add F
+GLIBC_2.17 argz_add_sep F
+GLIBC_2.17 argz_append F
+GLIBC_2.17 argz_count F
+GLIBC_2.17 argz_create F
+GLIBC_2.17 argz_create_sep F
+GLIBC_2.17 argz_delete F
+GLIBC_2.17 argz_extract F
+GLIBC_2.17 argz_insert F
+GLIBC_2.17 argz_next F
+GLIBC_2.17 argz_replace F
+GLIBC_2.17 argz_stringify F
+GLIBC_2.17 asctime F
+GLIBC_2.17 asctime_r F
+GLIBC_2.17 asprintf F
+GLIBC_2.17 atof F
+GLIBC_2.17 atoi F
+GLIBC_2.17 atol F
+GLIBC_2.17 atoll F
+GLIBC_2.17 authdes_create F
+GLIBC_2.17 authdes_getucred F
+GLIBC_2.17 authdes_pk_create F
+GLIBC_2.17 authnone_create F
+GLIBC_2.17 authunix_create F
+GLIBC_2.17 authunix_create_default F
+GLIBC_2.17 backtrace F
+GLIBC_2.17 backtrace_symbols F
+GLIBC_2.17 backtrace_symbols_fd F
+GLIBC_2.17 basename F
+GLIBC_2.17 bcmp F
+GLIBC_2.17 bcopy F
+GLIBC_2.17 bdflush F
+GLIBC_2.17 bind F
+GLIBC_2.17 bind_textdomain_codeset F
+GLIBC_2.17 bindresvport F
+GLIBC_2.17 bindtextdomain F
+GLIBC_2.17 brk F
+GLIBC_2.17 bsd_signal F
+GLIBC_2.17 bsearch F
+GLIBC_2.17 btowc F
+GLIBC_2.17 bzero F
+GLIBC_2.17 c16rtomb F
+GLIBC_2.17 c32rtomb F
+GLIBC_2.17 calloc F
+GLIBC_2.17 callrpc F
+GLIBC_2.17 canonicalize_file_name F
+GLIBC_2.17 capget F
+GLIBC_2.17 capset F
+GLIBC_2.17 catclose F
+GLIBC_2.17 catgets F
+GLIBC_2.17 catopen F
+GLIBC_2.17 cbc_crypt F
+GLIBC_2.17 cfgetispeed F
+GLIBC_2.17 cfgetospeed F
+GLIBC_2.17 cfmakeraw F
+GLIBC_2.17 cfree F
+GLIBC_2.17 cfsetispeed F
+GLIBC_2.17 cfsetospeed F
+GLIBC_2.17 cfsetspeed F
+GLIBC_2.17 chdir F
+GLIBC_2.17 chflags F
+GLIBC_2.17 chmod F
+GLIBC_2.17 chown F
+GLIBC_2.17 chroot F
+GLIBC_2.17 clearenv F
+GLIBC_2.17 clearerr F
+GLIBC_2.17 clearerr_unlocked F
+GLIBC_2.17 clnt_broadcast F
+GLIBC_2.17 clnt_create F
+GLIBC_2.17 clnt_pcreateerror F
+GLIBC_2.17 clnt_perrno F
+GLIBC_2.17 clnt_perror F
+GLIBC_2.17 clnt_spcreateerror F
+GLIBC_2.17 clnt_sperrno F
+GLIBC_2.17 clnt_sperror F
+GLIBC_2.17 clntraw_create F
+GLIBC_2.17 clnttcp_create F
+GLIBC_2.17 clntudp_bufcreate F
+GLIBC_2.17 clntudp_create F
+GLIBC_2.17 clntunix_create F
+GLIBC_2.17 clock F
+GLIBC_2.17 clock_adjtime F
+GLIBC_2.17 clock_getcpuclockid F
+GLIBC_2.17 clock_getres F
+GLIBC_2.17 clock_gettime F
+GLIBC_2.17 clock_nanosleep F
+GLIBC_2.17 clock_settime F
+GLIBC_2.17 clone F
+GLIBC_2.17 close F
+GLIBC_2.17 closedir F
+GLIBC_2.17 closelog F
+GLIBC_2.17 confstr F
+GLIBC_2.17 connect F
+GLIBC_2.17 copysign F
+GLIBC_2.17 copysignf F
+GLIBC_2.17 copysignl F
+GLIBC_2.17 creat F
+GLIBC_2.17 creat64 F
+GLIBC_2.17 create_module F
+GLIBC_2.17 ctermid F
+GLIBC_2.17 ctime F
+GLIBC_2.17 ctime_r F
+GLIBC_2.17 cuserid F
+GLIBC_2.17 daemon F
+GLIBC_2.17 daylight D 0x4
+GLIBC_2.17 dcgettext F
+GLIBC_2.17 dcngettext F
+GLIBC_2.17 delete_module F
+GLIBC_2.17 des_setparity F
+GLIBC_2.17 dgettext F
+GLIBC_2.17 difftime F
+GLIBC_2.17 dirfd F
+GLIBC_2.17 dirname F
+GLIBC_2.17 div F
+GLIBC_2.17 dl_iterate_phdr F
+GLIBC_2.17 dngettext F
+GLIBC_2.17 dprintf F
+GLIBC_2.17 drand48 F
+GLIBC_2.17 drand48_r F
+GLIBC_2.17 dup F
+GLIBC_2.17 dup2 F
+GLIBC_2.17 dup3 F
+GLIBC_2.17 duplocale F
+GLIBC_2.17 dysize F
+GLIBC_2.17 eaccess F
+GLIBC_2.17 ecb_crypt F
+GLIBC_2.17 ecvt F
+GLIBC_2.17 ecvt_r F
+GLIBC_2.17 endaliasent F
+GLIBC_2.17 endfsent F
+GLIBC_2.17 endgrent F
+GLIBC_2.17 endhostent F
+GLIBC_2.17 endmntent F
+GLIBC_2.17 endnetent F
+GLIBC_2.17 endnetgrent F
+GLIBC_2.17 endprotoent F
+GLIBC_2.17 endpwent F
+GLIBC_2.17 endrpcent F
+GLIBC_2.17 endservent F
+GLIBC_2.17 endsgent F
+GLIBC_2.17 endspent F
+GLIBC_2.17 endttyent F
+GLIBC_2.17 endusershell F
+GLIBC_2.17 endutent F
+GLIBC_2.17 endutxent F
+GLIBC_2.17 environ D 0x8
+GLIBC_2.17 envz_add F
+GLIBC_2.17 envz_entry F
+GLIBC_2.17 envz_get F
+GLIBC_2.17 envz_merge F
+GLIBC_2.17 envz_remove F
+GLIBC_2.17 envz_strip F
+GLIBC_2.17 epoll_create F
+GLIBC_2.17 epoll_create1 F
+GLIBC_2.17 epoll_ctl F
+GLIBC_2.17 epoll_pwait F
+GLIBC_2.17 epoll_wait F
+GLIBC_2.17 erand48 F
+GLIBC_2.17 erand48_r F
+GLIBC_2.17 err F
+GLIBC_2.17 error F
+GLIBC_2.17 error_at_line F
+GLIBC_2.17 error_message_count D 0x4
+GLIBC_2.17 error_one_per_line D 0x4
+GLIBC_2.17 error_print_progname D 0x8
+GLIBC_2.17 errx F
+GLIBC_2.17 ether_aton F
+GLIBC_2.17 ether_aton_r F
+GLIBC_2.17 ether_hostton F
+GLIBC_2.17 ether_line F
+GLIBC_2.17 ether_ntoa F
+GLIBC_2.17 ether_ntoa_r F
+GLIBC_2.17 ether_ntohost F
+GLIBC_2.17 euidaccess F
+GLIBC_2.17 eventfd F
+GLIBC_2.17 eventfd_read F
+GLIBC_2.17 eventfd_write F
+GLIBC_2.17 execl F
+GLIBC_2.17 execle F
+GLIBC_2.17 execlp F
+GLIBC_2.17 execv F
+GLIBC_2.17 execve F
+GLIBC_2.17 execvp F
+GLIBC_2.17 execvpe F
+GLIBC_2.17 exit F
+GLIBC_2.17 faccessat F
+GLIBC_2.17 fallocate F
+GLIBC_2.17 fallocate64 F
+GLIBC_2.17 fanotify_init F
+GLIBC_2.17 fanotify_mark F
+GLIBC_2.17 fattach F
+GLIBC_2.17 fchdir F
+GLIBC_2.17 fchflags F
+GLIBC_2.17 fchmod F
+GLIBC_2.17 fchmodat F
+GLIBC_2.17 fchown F
+GLIBC_2.17 fchownat F
+GLIBC_2.17 fclose F
+GLIBC_2.17 fcloseall F
+GLIBC_2.17 fcntl F
+GLIBC_2.17 fcvt F
+GLIBC_2.17 fcvt_r F
+GLIBC_2.17 fdatasync F
+GLIBC_2.17 fdetach F
+GLIBC_2.17 fdopen F
+GLIBC_2.17 fdopendir F
+GLIBC_2.17 feof F
+GLIBC_2.17 feof_unlocked F
+GLIBC_2.17 ferror F
+GLIBC_2.17 ferror_unlocked F
+GLIBC_2.17 fexecve F
+GLIBC_2.17 fflush F
+GLIBC_2.17 fflush_unlocked F
+GLIBC_2.17 ffs F
+GLIBC_2.17 ffsl F
+GLIBC_2.17 ffsll F
+GLIBC_2.17 fgetc F
+GLIBC_2.17 fgetc_unlocked F
+GLIBC_2.17 fgetgrent F
+GLIBC_2.17 fgetgrent_r F
+GLIBC_2.17 fgetpos F
+GLIBC_2.17 fgetpos64 F
+GLIBC_2.17 fgetpwent F
+GLIBC_2.17 fgetpwent_r F
+GLIBC_2.17 fgets F
+GLIBC_2.17 fgets_unlocked F
+GLIBC_2.17 fgetsgent F
+GLIBC_2.17 fgetsgent_r F
+GLIBC_2.17 fgetspent F
+GLIBC_2.17 fgetspent_r F
+GLIBC_2.17 fgetwc F
+GLIBC_2.17 fgetwc_unlocked F
+GLIBC_2.17 fgetws F
+GLIBC_2.17 fgetws_unlocked F
+GLIBC_2.17 fgetxattr F
+GLIBC_2.17 fileno F
+GLIBC_2.17 fileno_unlocked F
+GLIBC_2.17 finite F
+GLIBC_2.17 finitef F
+GLIBC_2.17 finitel F
+GLIBC_2.17 flistxattr F
+GLIBC_2.17 flock F
+GLIBC_2.17 flockfile F
+GLIBC_2.17 fmemopen F
+GLIBC_2.17 fmtmsg F
+GLIBC_2.17 fnmatch F
+GLIBC_2.17 fopen F
+GLIBC_2.17 fopen64 F
+GLIBC_2.17 fopencookie F
+GLIBC_2.17 fork F
+GLIBC_2.17 fpathconf F
+GLIBC_2.17 fprintf F
+GLIBC_2.17 fputc F
+GLIBC_2.17 fputc_unlocked F
+GLIBC_2.17 fputs F
+GLIBC_2.17 fputs_unlocked F
+GLIBC_2.17 fputwc F
+GLIBC_2.17 fputwc_unlocked F
+GLIBC_2.17 fputws F
+GLIBC_2.17 fputws_unlocked F
+GLIBC_2.17 fread F
+GLIBC_2.17 fread_unlocked F
+GLIBC_2.17 free F
+GLIBC_2.17 freeaddrinfo F
+GLIBC_2.17 freeifaddrs F
+GLIBC_2.17 freelocale F
+GLIBC_2.17 fremovexattr F
+GLIBC_2.17 freopen F
+GLIBC_2.17 freopen64 F
+GLIBC_2.17 frexp F
+GLIBC_2.17 frexpf F
+GLIBC_2.17 frexpl F
+GLIBC_2.17 fscanf F
+GLIBC_2.17 fseek F
+GLIBC_2.17 fseeko F
+GLIBC_2.17 fseeko64 F
+GLIBC_2.17 fsetpos F
+GLIBC_2.17 fsetpos64 F
+GLIBC_2.17 fsetxattr F
+GLIBC_2.17 fstatfs F
+GLIBC_2.17 fstatfs64 F
+GLIBC_2.17 fstatvfs F
+GLIBC_2.17 fstatvfs64 F
+GLIBC_2.17 fsync F
+GLIBC_2.17 ftell F
+GLIBC_2.17 ftello F
+GLIBC_2.17 ftello64 F
+GLIBC_2.17 ftime F
+GLIBC_2.17 ftok F
+GLIBC_2.17 ftruncate F
+GLIBC_2.17 ftruncate64 F
+GLIBC_2.17 ftrylockfile F
+GLIBC_2.17 fts_children F
+GLIBC_2.17 fts_close F
+GLIBC_2.17 fts_open F
+GLIBC_2.17 fts_read F
+GLIBC_2.17 fts_set F
+GLIBC_2.17 ftw F
+GLIBC_2.17 ftw64 F
+GLIBC_2.17 funlockfile F
+GLIBC_2.17 futimens F
+GLIBC_2.17 futimes F
+GLIBC_2.17 futimesat F
+GLIBC_2.17 fwide F
+GLIBC_2.17 fwprintf F
+GLIBC_2.17 fwrite F
+GLIBC_2.17 fwrite_unlocked F
+GLIBC_2.17 fwscanf F
+GLIBC_2.17 gai_strerror F
+GLIBC_2.17 gcvt F
+GLIBC_2.17 get_avphys_pages F
+GLIBC_2.17 get_current_dir_name F
+GLIBC_2.17 get_kernel_syms F
+GLIBC_2.17 get_myaddress F
+GLIBC_2.17 get_nprocs F
+GLIBC_2.17 get_nprocs_conf F
+GLIBC_2.17 get_phys_pages F
+GLIBC_2.17 getaddrinfo F
+GLIBC_2.17 getaliasbyname F
+GLIBC_2.17 getaliasbyname_r F
+GLIBC_2.17 getaliasent F
+GLIBC_2.17 getaliasent_r F
+GLIBC_2.17 getauxval F
+GLIBC_2.17 getc F
+GLIBC_2.17 getc_unlocked F
+GLIBC_2.17 getchar F
+GLIBC_2.17 getchar_unlocked F
+GLIBC_2.17 getcontext F
+GLIBC_2.17 getcwd F
+GLIBC_2.17 getdate F
+GLIBC_2.17 getdate_err D 0x4
+GLIBC_2.17 getdate_r F
+GLIBC_2.17 getdelim F
+GLIBC_2.17 getdirentries F
+GLIBC_2.17 getdirentries64 F
+GLIBC_2.17 getdomainname F
+GLIBC_2.17 getdtablesize F
+GLIBC_2.17 getegid F
+GLIBC_2.17 getenv F
+GLIBC_2.17 geteuid F
+GLIBC_2.17 getfsent F
+GLIBC_2.17 getfsfile F
+GLIBC_2.17 getfsspec F
+GLIBC_2.17 getgid F
+GLIBC_2.17 getgrent F
+GLIBC_2.17 getgrent_r F
+GLIBC_2.17 getgrgid F
+GLIBC_2.17 getgrgid_r F
+GLIBC_2.17 getgrnam F
+GLIBC_2.17 getgrnam_r F
+GLIBC_2.17 getgrouplist F
+GLIBC_2.17 getgroups F
+GLIBC_2.17 gethostbyaddr F
+GLIBC_2.17 gethostbyaddr_r F
+GLIBC_2.17 gethostbyname F
+GLIBC_2.17 gethostbyname2 F
+GLIBC_2.17 gethostbyname2_r F
+GLIBC_2.17 gethostbyname_r F
+GLIBC_2.17 gethostent F
+GLIBC_2.17 gethostent_r F
+GLIBC_2.17 gethostid F
+GLIBC_2.17 gethostname F
+GLIBC_2.17 getifaddrs F
+GLIBC_2.17 getipv4sourcefilter F
+GLIBC_2.17 getitimer F
+GLIBC_2.17 getline F
+GLIBC_2.17 getloadavg F
+GLIBC_2.17 getlogin F
+GLIBC_2.17 getlogin_r F
+GLIBC_2.17 getmntent F
+GLIBC_2.17 getmntent_r F
+GLIBC_2.17 getmsg F
+GLIBC_2.17 getnameinfo F
+GLIBC_2.17 getnetbyaddr F
+GLIBC_2.17 getnetbyaddr_r F
+GLIBC_2.17 getnetbyname F
+GLIBC_2.17 getnetbyname_r F
+GLIBC_2.17 getnetent F
+GLIBC_2.17 getnetent_r F
+GLIBC_2.17 getnetgrent F
+GLIBC_2.17 getnetgrent_r F
+GLIBC_2.17 getnetname F
+GLIBC_2.17 getopt F
+GLIBC_2.17 getopt_long F
+GLIBC_2.17 getopt_long_only F
+GLIBC_2.17 getpagesize F
+GLIBC_2.17 getpass F
+GLIBC_2.17 getpeername F
+GLIBC_2.17 getpgid F
+GLIBC_2.17 getpgrp F
+GLIBC_2.17 getpid F
+GLIBC_2.17 getpmsg F
+GLIBC_2.17 getppid F
+GLIBC_2.17 getpriority F
+GLIBC_2.17 getprotobyname F
+GLIBC_2.17 getprotobyname_r F
+GLIBC_2.17 getprotobynumber F
+GLIBC_2.17 getprotobynumber_r F
+GLIBC_2.17 getprotoent F
+GLIBC_2.17 getprotoent_r F
+GLIBC_2.17 getpt F
+GLIBC_2.17 getpublickey F
+GLIBC_2.17 getpw F
+GLIBC_2.17 getpwent F
+GLIBC_2.17 getpwent_r F
+GLIBC_2.17 getpwnam F
+GLIBC_2.17 getpwnam_r F
+GLIBC_2.17 getpwuid F
+GLIBC_2.17 getpwuid_r F
+GLIBC_2.17 getresgid F
+GLIBC_2.17 getresuid F
+GLIBC_2.17 getrlimit F
+GLIBC_2.17 getrlimit64 F
+GLIBC_2.17 getrpcbyname F
+GLIBC_2.17 getrpcbyname_r F
+GLIBC_2.17 getrpcbynumber F
+GLIBC_2.17 getrpcbynumber_r F
+GLIBC_2.17 getrpcent F
+GLIBC_2.17 getrpcent_r F
+GLIBC_2.17 getrpcport F
+GLIBC_2.17 getrusage F
+GLIBC_2.17 gets F
+GLIBC_2.17 getsecretkey F
+GLIBC_2.17 getservbyname F
+GLIBC_2.17 getservbyname_r F
+GLIBC_2.17 getservbyport F
+GLIBC_2.17 getservbyport_r F
+GLIBC_2.17 getservent F
+GLIBC_2.17 getservent_r F
+GLIBC_2.17 getsgent F
+GLIBC_2.17 getsgent_r F
+GLIBC_2.17 getsgnam F
+GLIBC_2.17 getsgnam_r F
+GLIBC_2.17 getsid F
+GLIBC_2.17 getsockname F
+GLIBC_2.17 getsockopt F
+GLIBC_2.17 getsourcefilter F
+GLIBC_2.17 getspent F
+GLIBC_2.17 getspent_r F
+GLIBC_2.17 getspnam F
+GLIBC_2.17 getspnam_r F
+GLIBC_2.17 getsubopt F
+GLIBC_2.17 gettext F
+GLIBC_2.17 gettimeofday F
+GLIBC_2.17 getttyent F
+GLIBC_2.17 getttynam F
+GLIBC_2.17 getuid F
+GLIBC_2.17 getusershell F
+GLIBC_2.17 getutent F
+GLIBC_2.17 getutent_r F
+GLIBC_2.17 getutid F
+GLIBC_2.17 getutid_r F
+GLIBC_2.17 getutline F
+GLIBC_2.17 getutline_r F
+GLIBC_2.17 getutmp F
+GLIBC_2.17 getutmpx F
+GLIBC_2.17 getutxent F
+GLIBC_2.17 getutxid F
+GLIBC_2.17 getutxline F
+GLIBC_2.17 getw F
+GLIBC_2.17 getwc F
+GLIBC_2.17 getwc_unlocked F
+GLIBC_2.17 getwchar F
+GLIBC_2.17 getwchar_unlocked F
+GLIBC_2.17 getwd F
+GLIBC_2.17 getxattr F
+GLIBC_2.17 glob F
+GLIBC_2.17 glob64 F
+GLIBC_2.17 glob_pattern_p F
+GLIBC_2.17 globfree F
+GLIBC_2.17 globfree64 F
+GLIBC_2.17 gmtime F
+GLIBC_2.17 gmtime_r F
+GLIBC_2.17 gnu_dev_major F
+GLIBC_2.17 gnu_dev_makedev F
+GLIBC_2.17 gnu_dev_minor F
+GLIBC_2.17 gnu_get_libc_release F
+GLIBC_2.17 gnu_get_libc_version F
+GLIBC_2.17 grantpt F
+GLIBC_2.17 group_member F
+GLIBC_2.17 gsignal F
+GLIBC_2.17 gtty F
+GLIBC_2.17 h_errlist D 0x28
+GLIBC_2.17 h_nerr D 0x4
+GLIBC_2.17 hasmntopt F
+GLIBC_2.17 hcreate F
+GLIBC_2.17 hcreate_r F
+GLIBC_2.17 hdestroy F
+GLIBC_2.17 hdestroy_r F
+GLIBC_2.17 herror F
+GLIBC_2.17 host2netname F
+GLIBC_2.17 hsearch F
+GLIBC_2.17 hsearch_r F
+GLIBC_2.17 hstrerror F
+GLIBC_2.17 htonl F
+GLIBC_2.17 htons F
+GLIBC_2.17 iconv F
+GLIBC_2.17 iconv_close F
+GLIBC_2.17 iconv_open F
+GLIBC_2.17 if_freenameindex F
+GLIBC_2.17 if_indextoname F
+GLIBC_2.17 if_nameindex F
+GLIBC_2.17 if_nametoindex F
+GLIBC_2.17 imaxabs F
+GLIBC_2.17 imaxdiv F
+GLIBC_2.17 in6addr_any D 0x10
+GLIBC_2.17 in6addr_loopback D 0x10
+GLIBC_2.17 index F
+GLIBC_2.17 inet6_opt_append F
+GLIBC_2.17 inet6_opt_find F
+GLIBC_2.17 inet6_opt_finish F
+GLIBC_2.17 inet6_opt_get_val F
+GLIBC_2.17 inet6_opt_init F
+GLIBC_2.17 inet6_opt_next F
+GLIBC_2.17 inet6_opt_set_val F
+GLIBC_2.17 inet6_option_alloc F
+GLIBC_2.17 inet6_option_append F
+GLIBC_2.17 inet6_option_find F
+GLIBC_2.17 inet6_option_init F
+GLIBC_2.17 inet6_option_next F
+GLIBC_2.17 inet6_option_space F
+GLIBC_2.17 inet6_rth_add F
+GLIBC_2.17 inet6_rth_getaddr F
+GLIBC_2.17 inet6_rth_init F
+GLIBC_2.17 inet6_rth_reverse F
+GLIBC_2.17 inet6_rth_segments F
+GLIBC_2.17 inet6_rth_space F
+GLIBC_2.17 inet_addr F
+GLIBC_2.17 inet_aton F
+GLIBC_2.17 inet_lnaof F
+GLIBC_2.17 inet_makeaddr F
+GLIBC_2.17 inet_netof F
+GLIBC_2.17 inet_network F
+GLIBC_2.17 inet_nsap_addr F
+GLIBC_2.17 inet_nsap_ntoa F
+GLIBC_2.17 inet_ntoa F
+GLIBC_2.17 inet_ntop F
+GLIBC_2.17 inet_pton F
+GLIBC_2.17 init_module F
+GLIBC_2.17 initgroups F
+GLIBC_2.17 initstate F
+GLIBC_2.17 initstate_r F
+GLIBC_2.17 innetgr F
+GLIBC_2.17 inotify_add_watch F
+GLIBC_2.17 inotify_init F
+GLIBC_2.17 inotify_init1 F
+GLIBC_2.17 inotify_rm_watch F
+GLIBC_2.17 insque F
+GLIBC_2.17 ioctl F
+GLIBC_2.17 iruserok F
+GLIBC_2.17 iruserok_af F
+GLIBC_2.17 isalnum F
+GLIBC_2.17 isalnum_l F
+GLIBC_2.17 isalpha F
+GLIBC_2.17 isalpha_l F
+GLIBC_2.17 isascii F
+GLIBC_2.17 isastream F
+GLIBC_2.17 isatty F
+GLIBC_2.17 isblank F
+GLIBC_2.17 isblank_l F
+GLIBC_2.17 iscntrl F
+GLIBC_2.17 iscntrl_l F
+GLIBC_2.17 isctype F
+GLIBC_2.17 isdigit F
+GLIBC_2.17 isdigit_l F
+GLIBC_2.17 isfdtype F
+GLIBC_2.17 isgraph F
+GLIBC_2.17 isgraph_l F
+GLIBC_2.17 isinf F
+GLIBC_2.17 isinff F
+GLIBC_2.17 isinfl F
+GLIBC_2.17 islower F
+GLIBC_2.17 islower_l F
+GLIBC_2.17 isnan F
+GLIBC_2.17 isnanf F
+GLIBC_2.17 isnanl F
+GLIBC_2.17 isprint F
+GLIBC_2.17 isprint_l F
+GLIBC_2.17 ispunct F
+GLIBC_2.17 ispunct_l F
+GLIBC_2.17 isspace F
+GLIBC_2.17 isspace_l F
+GLIBC_2.17 isupper F
+GLIBC_2.17 isupper_l F
+GLIBC_2.17 iswalnum F
+GLIBC_2.17 iswalnum_l F
+GLIBC_2.17 iswalpha F
+GLIBC_2.17 iswalpha_l F
+GLIBC_2.17 iswblank F
+GLIBC_2.17 iswblank_l F
+GLIBC_2.17 iswcntrl F
+GLIBC_2.17 iswcntrl_l F
+GLIBC_2.17 iswctype F
+GLIBC_2.17 iswctype_l F
+GLIBC_2.17 iswdigit F
+GLIBC_2.17 iswdigit_l F
+GLIBC_2.17 iswgraph F
+GLIBC_2.17 iswgraph_l F
+GLIBC_2.17 iswlower F
+GLIBC_2.17 iswlower_l F
+GLIBC_2.17 iswprint F
+GLIBC_2.17 iswprint_l F
+GLIBC_2.17 iswpunct F
+GLIBC_2.17 iswpunct_l F
+GLIBC_2.17 iswspace F
+GLIBC_2.17 iswspace_l F
+GLIBC_2.17 iswupper F
+GLIBC_2.17 iswupper_l F
+GLIBC_2.17 iswxdigit F
+GLIBC_2.17 iswxdigit_l F
+GLIBC_2.17 isxdigit F
+GLIBC_2.17 isxdigit_l F
+GLIBC_2.17 jrand48 F
+GLIBC_2.17 jrand48_r F
+GLIBC_2.17 key_decryptsession F
+GLIBC_2.17 key_decryptsession_pk F
+GLIBC_2.17 key_encryptsession F
+GLIBC_2.17 key_encryptsession_pk F
+GLIBC_2.17 key_gendes F
+GLIBC_2.17 key_get_conv F
+GLIBC_2.17 key_secretkey_is_set F
+GLIBC_2.17 key_setnet F
+GLIBC_2.17 key_setsecret F
+GLIBC_2.17 kill F
+GLIBC_2.17 killpg F
+GLIBC_2.17 klogctl F
+GLIBC_2.17 l64a F
+GLIBC_2.17 labs F
+GLIBC_2.17 lchmod F
+GLIBC_2.17 lchown F
+GLIBC_2.17 lckpwdf F
+GLIBC_2.17 lcong48 F
+GLIBC_2.17 lcong48_r F
+GLIBC_2.17 ldexp F
+GLIBC_2.17 ldexpf F
+GLIBC_2.17 ldexpl F
+GLIBC_2.17 ldiv F
+GLIBC_2.17 lfind F
+GLIBC_2.17 lgetxattr F
+GLIBC_2.17 link F
+GLIBC_2.17 linkat F
+GLIBC_2.17 listen F
+GLIBC_2.17 listxattr F
+GLIBC_2.17 llabs F
+GLIBC_2.17 lldiv F
+GLIBC_2.17 llistxattr F
+GLIBC_2.17 llseek F
+GLIBC_2.17 loc1 D 0x8
+GLIBC_2.17 loc2 D 0x8
+GLIBC_2.17 localeconv F
+GLIBC_2.17 localtime F
+GLIBC_2.17 localtime_r F
+GLIBC_2.17 lockf F
+GLIBC_2.17 lockf64 F
+GLIBC_2.17 locs D 0x8
+GLIBC_2.17 longjmp F
+GLIBC_2.17 lrand48 F
+GLIBC_2.17 lrand48_r F
+GLIBC_2.17 lremovexattr F
+GLIBC_2.17 lsearch F
+GLIBC_2.17 lseek F
+GLIBC_2.17 lseek64 F
+GLIBC_2.17 lsetxattr F
+GLIBC_2.17 lutimes F
+GLIBC_2.17 madvise F
+GLIBC_2.17 makecontext F
+GLIBC_2.17 mallinfo F
+GLIBC_2.17 malloc F
+GLIBC_2.17 malloc_get_state F
+GLIBC_2.17 malloc_info F
+GLIBC_2.17 malloc_set_state F
+GLIBC_2.17 malloc_stats F
+GLIBC_2.17 malloc_trim F
+GLIBC_2.17 malloc_usable_size F
+GLIBC_2.17 mallopt F
+GLIBC_2.17 mallwatch D 0x8
+GLIBC_2.17 mblen F
+GLIBC_2.17 mbrlen F
+GLIBC_2.17 mbrtoc16 F
+GLIBC_2.17 mbrtoc32 F
+GLIBC_2.17 mbrtowc F
+GLIBC_2.17 mbsinit F
+GLIBC_2.17 mbsnrtowcs F
+GLIBC_2.17 mbsrtowcs F
+GLIBC_2.17 mbstowcs F
+GLIBC_2.17 mbtowc F
+GLIBC_2.17 mcheck F
+GLIBC_2.17 mcheck_check_all F
+GLIBC_2.17 mcheck_pedantic F
+GLIBC_2.17 memalign F
+GLIBC_2.17 memccpy F
+GLIBC_2.17 memchr F
+GLIBC_2.17 memcmp F
+GLIBC_2.17 memcpy F
+GLIBC_2.17 memfrob F
+GLIBC_2.17 memmem F
+GLIBC_2.17 memmove F
+GLIBC_2.17 mempcpy F
+GLIBC_2.17 memrchr F
+GLIBC_2.17 memset F
+GLIBC_2.17 mincore F
+GLIBC_2.17 mkdir F
+GLIBC_2.17 mkdirat F
+GLIBC_2.17 mkdtemp F
+GLIBC_2.17 mkfifo F
+GLIBC_2.17 mkfifoat F
+GLIBC_2.17 mkostemp F
+GLIBC_2.17 mkostemp64 F
+GLIBC_2.17 mkostemps F
+GLIBC_2.17 mkostemps64 F
+GLIBC_2.17 mkstemp F
+GLIBC_2.17 mkstemp64 F
+GLIBC_2.17 mkstemps F
+GLIBC_2.17 mkstemps64 F
+GLIBC_2.17 mktemp F
+GLIBC_2.17 mktime F
+GLIBC_2.17 mlock F
+GLIBC_2.17 mlockall F
+GLIBC_2.17 mmap F
+GLIBC_2.17 mmap64 F
+GLIBC_2.17 modf F
+GLIBC_2.17 modff F
+GLIBC_2.17 modfl F
+GLIBC_2.17 moncontrol F
+GLIBC_2.17 monstartup F
+GLIBC_2.17 mount F
+GLIBC_2.17 mprobe F
+GLIBC_2.17 mprotect F
+GLIBC_2.17 mrand48 F
+GLIBC_2.17 mrand48_r F
+GLIBC_2.17 mremap F
+GLIBC_2.17 msgctl F
+GLIBC_2.17 msgget F
+GLIBC_2.17 msgrcv F
+GLIBC_2.17 msgsnd F
+GLIBC_2.17 msync F
+GLIBC_2.17 mtrace F
+GLIBC_2.17 munlock F
+GLIBC_2.17 munlockall F
+GLIBC_2.17 munmap F
+GLIBC_2.17 muntrace F
+GLIBC_2.17 name_to_handle_at F
+GLIBC_2.17 nanosleep F
+GLIBC_2.17 netname2host F
+GLIBC_2.17 netname2user F
+GLIBC_2.17 newlocale F
+GLIBC_2.17 nfsservctl F
+GLIBC_2.17 nftw F
+GLIBC_2.17 nftw64 F
+GLIBC_2.17 ngettext F
+GLIBC_2.17 nice F
+GLIBC_2.17 nl_langinfo F
+GLIBC_2.17 nl_langinfo_l F
+GLIBC_2.17 nrand48 F
+GLIBC_2.17 nrand48_r F
+GLIBC_2.17 ntohl F
+GLIBC_2.17 ntohs F
+GLIBC_2.17 ntp_adjtime F
+GLIBC_2.17 ntp_gettime F
+GLIBC_2.17 ntp_gettimex F
+GLIBC_2.17 obstack_alloc_failed_handler D 0x8
+GLIBC_2.17 obstack_exit_failure D 0x4
+GLIBC_2.17 obstack_free F
+GLIBC_2.17 obstack_printf F
+GLIBC_2.17 obstack_vprintf F
+GLIBC_2.17 on_exit F
+GLIBC_2.17 open F
+GLIBC_2.17 open64 F
+GLIBC_2.17 open_by_handle_at F
+GLIBC_2.17 open_memstream F
+GLIBC_2.17 open_wmemstream F
+GLIBC_2.17 openat F
+GLIBC_2.17 openat64 F
+GLIBC_2.17 opendir F
+GLIBC_2.17 openlog F
+GLIBC_2.17 optarg D 0x8
+GLIBC_2.17 opterr D 0x4
+GLIBC_2.17 optind D 0x4
+GLIBC_2.17 optopt D 0x4
+GLIBC_2.17 parse_printf_format F
+GLIBC_2.17 passwd2des F
+GLIBC_2.17 pathconf F
+GLIBC_2.17 pause F
+GLIBC_2.17 pclose F
+GLIBC_2.17 perror F
+GLIBC_2.17 personality F
+GLIBC_2.17 pipe F
+GLIBC_2.17 pipe2 F
+GLIBC_2.17 pivot_root F
+GLIBC_2.17 pmap_getmaps F
+GLIBC_2.17 pmap_getport F
+GLIBC_2.17 pmap_rmtcall F
+GLIBC_2.17 pmap_set F
+GLIBC_2.17 pmap_unset F
+GLIBC_2.17 poll F
+GLIBC_2.17 popen F
+GLIBC_2.17 posix_fadvise F
+GLIBC_2.17 posix_fadvise64 F
+GLIBC_2.17 posix_fallocate F
+GLIBC_2.17 posix_fallocate64 F
+GLIBC_2.17 posix_madvise F
+GLIBC_2.17 posix_memalign F
+GLIBC_2.17 posix_openpt F
+GLIBC_2.17 posix_spawn F
+GLIBC_2.17 posix_spawn_file_actions_addclose F
+GLIBC_2.17 posix_spawn_file_actions_adddup2 F
+GLIBC_2.17 posix_spawn_file_actions_addopen F
+GLIBC_2.17 posix_spawn_file_actions_destroy F
+GLIBC_2.17 posix_spawn_file_actions_init F
+GLIBC_2.17 posix_spawnattr_destroy F
+GLIBC_2.17 posix_spawnattr_getflags F
+GLIBC_2.17 posix_spawnattr_getpgroup F
+GLIBC_2.17 posix_spawnattr_getschedparam F
+GLIBC_2.17 posix_spawnattr_getschedpolicy F
+GLIBC_2.17 posix_spawnattr_getsigdefault F
+GLIBC_2.17 posix_spawnattr_getsigmask F
+GLIBC_2.17 posix_spawnattr_init F
+GLIBC_2.17 posix_spawnattr_setflags F
+GLIBC_2.17 posix_spawnattr_setpgroup F
+GLIBC_2.17 posix_spawnattr_setschedparam F
+GLIBC_2.17 posix_spawnattr_setschedpolicy F
+GLIBC_2.17 posix_spawnattr_setsigdefault F
+GLIBC_2.17 posix_spawnattr_setsigmask F
+GLIBC_2.17 posix_spawnp F
+GLIBC_2.17 ppoll F
+GLIBC_2.17 prctl F
+GLIBC_2.17 pread F
+GLIBC_2.17 pread64 F
+GLIBC_2.17 preadv F
+GLIBC_2.17 preadv64 F
+GLIBC_2.17 printf F
+GLIBC_2.17 printf_size F
+GLIBC_2.17 printf_size_info F
+GLIBC_2.17 prlimit F
+GLIBC_2.17 prlimit64 F
+GLIBC_2.17 process_vm_readv F
+GLIBC_2.17 process_vm_writev F
+GLIBC_2.17 profil F
+GLIBC_2.17 program_invocation_name D 0x8
+GLIBC_2.17 program_invocation_short_name D 0x8
+GLIBC_2.17 pselect F
+GLIBC_2.17 psiginfo F
+GLIBC_2.17 psignal F
+GLIBC_2.17 pthread_attr_destroy F
+GLIBC_2.17 pthread_attr_getdetachstate F
+GLIBC_2.17 pthread_attr_getinheritsched F
+GLIBC_2.17 pthread_attr_getschedparam F
+GLIBC_2.17 pthread_attr_getschedpolicy F
+GLIBC_2.17 pthread_attr_getscope F
+GLIBC_2.17 pthread_attr_init F
+GLIBC_2.17 pthread_attr_setdetachstate F
+GLIBC_2.17 pthread_attr_setinheritsched F
+GLIBC_2.17 pthread_attr_setschedparam F
+GLIBC_2.17 pthread_attr_setschedpolicy F
+GLIBC_2.17 pthread_attr_setscope F
+GLIBC_2.17 pthread_cond_broadcast F
+GLIBC_2.17 pthread_cond_destroy F
+GLIBC_2.17 pthread_cond_init F
+GLIBC_2.17 pthread_cond_signal F
+GLIBC_2.17 pthread_cond_timedwait F
+GLIBC_2.17 pthread_cond_wait F
+GLIBC_2.17 pthread_condattr_destroy F
+GLIBC_2.17 pthread_condattr_init F
+GLIBC_2.17 pthread_equal F
+GLIBC_2.17 pthread_exit F
+GLIBC_2.17 pthread_getschedparam F
+GLIBC_2.17 pthread_mutex_destroy F
+GLIBC_2.17 pthread_mutex_init F
+GLIBC_2.17 pthread_mutex_lock F
+GLIBC_2.17 pthread_mutex_unlock F
+GLIBC_2.17 pthread_self F
+GLIBC_2.17 pthread_setcancelstate F
+GLIBC_2.17 pthread_setcanceltype F
+GLIBC_2.17 pthread_setschedparam F
+GLIBC_2.17 ptrace F
+GLIBC_2.17 ptsname F
+GLIBC_2.17 ptsname_r F
+GLIBC_2.17 putc F
+GLIBC_2.17 putc_unlocked F
+GLIBC_2.17 putchar F
+GLIBC_2.17 putchar_unlocked F
+GLIBC_2.17 putenv F
+GLIBC_2.17 putgrent F
+GLIBC_2.17 putmsg F
+GLIBC_2.17 putpmsg F
+GLIBC_2.17 putpwent F
+GLIBC_2.17 puts F
+GLIBC_2.17 putsgent F
+GLIBC_2.17 putspent F
+GLIBC_2.17 pututline F
+GLIBC_2.17 pututxline F
+GLIBC_2.17 putw F
+GLIBC_2.17 putwc F
+GLIBC_2.17 putwc_unlocked F
+GLIBC_2.17 putwchar F
+GLIBC_2.17 putwchar_unlocked F
+GLIBC_2.17 pvalloc F
+GLIBC_2.17 pwrite F
+GLIBC_2.17 pwrite64 F
+GLIBC_2.17 pwritev F
+GLIBC_2.17 pwritev64 F
+GLIBC_2.17 qecvt F
+GLIBC_2.17 qecvt_r F
+GLIBC_2.17 qfcvt F
+GLIBC_2.17 qfcvt_r F
+GLIBC_2.17 qgcvt F
+GLIBC_2.17 qsort F
+GLIBC_2.17 qsort_r F
+GLIBC_2.17 query_module F
+GLIBC_2.17 quick_exit F
+GLIBC_2.17 quotactl F
+GLIBC_2.17 raise F
+GLIBC_2.17 rand F
+GLIBC_2.17 rand_r F
+GLIBC_2.17 random F
+GLIBC_2.17 random_r F
+GLIBC_2.17 rawmemchr F
+GLIBC_2.17 rcmd F
+GLIBC_2.17 rcmd_af F
+GLIBC_2.17 re_comp F
+GLIBC_2.17 re_compile_fastmap F
+GLIBC_2.17 re_compile_pattern F
+GLIBC_2.17 re_exec F
+GLIBC_2.17 re_match F
+GLIBC_2.17 re_match_2 F
+GLIBC_2.17 re_search F
+GLIBC_2.17 re_search_2 F
+GLIBC_2.17 re_set_registers F
+GLIBC_2.17 re_set_syntax F
+GLIBC_2.17 re_syntax_options D 0x8
+GLIBC_2.17 read F
+GLIBC_2.17 readahead F
+GLIBC_2.17 readdir F
+GLIBC_2.17 readdir64 F
+GLIBC_2.17 readdir64_r F
+GLIBC_2.17 readdir_r F
+GLIBC_2.17 readlink F
+GLIBC_2.17 readlinkat F
+GLIBC_2.17 readv F
+GLIBC_2.17 realloc F
+GLIBC_2.17 realpath F
+GLIBC_2.17 reboot F
+GLIBC_2.17 recv F
+GLIBC_2.17 recvfrom F
+GLIBC_2.17 recvmmsg F
+GLIBC_2.17 recvmsg F
+GLIBC_2.17 regcomp F
+GLIBC_2.17 regerror F
+GLIBC_2.17 regexec F
+GLIBC_2.17 regfree F
+GLIBC_2.17 register_printf_function F
+GLIBC_2.17 register_printf_modifier F
+GLIBC_2.17 register_printf_specifier F
+GLIBC_2.17 register_printf_type F
+GLIBC_2.17 registerrpc F
+GLIBC_2.17 remap_file_pages F
+GLIBC_2.17 remove F
+GLIBC_2.17 removexattr F
+GLIBC_2.17 remque F
+GLIBC_2.17 rename F
+GLIBC_2.17 renameat F
+GLIBC_2.17 revoke F
+GLIBC_2.17 rewind F
+GLIBC_2.17 rewinddir F
+GLIBC_2.17 rexec F
+GLIBC_2.17 rexec_af F
+GLIBC_2.17 rexecoptions D 0x4
+GLIBC_2.17 rindex F
+GLIBC_2.17 rmdir F
+GLIBC_2.17 rpc_createerr D 0x20
+GLIBC_2.17 rpmatch F
+GLIBC_2.17 rresvport F
+GLIBC_2.17 rresvport_af F
+GLIBC_2.17 rtime F
+GLIBC_2.17 ruserok F
+GLIBC_2.17 ruserok_af F
+GLIBC_2.17 ruserpass F
+GLIBC_2.17 sbrk F
+GLIBC_2.17 scalbn F
+GLIBC_2.17 scalbnf F
+GLIBC_2.17 scalbnl F
+GLIBC_2.17 scandir F
+GLIBC_2.17 scandir64 F
+GLIBC_2.17 scandirat F
+GLIBC_2.17 scandirat64 F
+GLIBC_2.17 scanf F
+GLIBC_2.17 sched_get_priority_max F
+GLIBC_2.17 sched_get_priority_min F
+GLIBC_2.17 sched_getaffinity F
+GLIBC_2.17 sched_getcpu F
+GLIBC_2.17 sched_getparam F
+GLIBC_2.17 sched_getscheduler F
+GLIBC_2.17 sched_rr_get_interval F
+GLIBC_2.17 sched_setaffinity F
+GLIBC_2.17 sched_setparam F
+GLIBC_2.17 sched_setscheduler F
+GLIBC_2.17 sched_yield F
+GLIBC_2.17 secure_getenv F
+GLIBC_2.17 seed48 F
+GLIBC_2.17 seed48_r F
+GLIBC_2.17 seekdir F
+GLIBC_2.17 select F
+GLIBC_2.17 semctl F
+GLIBC_2.17 semget F
+GLIBC_2.17 semop F
+GLIBC_2.17 semtimedop F
+GLIBC_2.17 send F
+GLIBC_2.17 sendfile F
+GLIBC_2.17 sendfile64 F
+GLIBC_2.17 sendmmsg F
+GLIBC_2.17 sendmsg F
+GLIBC_2.17 sendto F
+GLIBC_2.17 setaliasent F
+GLIBC_2.17 setbuf F
+GLIBC_2.17 setbuffer F
+GLIBC_2.17 setcontext F
+GLIBC_2.17 setdomainname F
+GLIBC_2.17 setegid F
+GLIBC_2.17 setenv F
+GLIBC_2.17 seteuid F
+GLIBC_2.17 setfsent F
+GLIBC_2.17 setfsgid F
+GLIBC_2.17 setfsuid F
+GLIBC_2.17 setgid F
+GLIBC_2.17 setgrent F
+GLIBC_2.17 setgroups F
+GLIBC_2.17 sethostent F
+GLIBC_2.17 sethostid F
+GLIBC_2.17 sethostname F
+GLIBC_2.17 setipv4sourcefilter F
+GLIBC_2.17 setitimer F
+GLIBC_2.17 setjmp F
+GLIBC_2.17 setlinebuf F
+GLIBC_2.17 setlocale F
+GLIBC_2.17 setlogin F
+GLIBC_2.17 setlogmask F
+GLIBC_2.17 setmntent F
+GLIBC_2.17 setnetent F
+GLIBC_2.17 setnetgrent F
+GLIBC_2.17 setns F
+GLIBC_2.17 setpgid F
+GLIBC_2.17 setpgrp F
+GLIBC_2.17 setpriority F
+GLIBC_2.17 setprotoent F
+GLIBC_2.17 setpwent F
+GLIBC_2.17 setregid F
+GLIBC_2.17 setresgid F
+GLIBC_2.17 setresuid F
+GLIBC_2.17 setreuid F
+GLIBC_2.17 setrlimit F
+GLIBC_2.17 setrlimit64 F
+GLIBC_2.17 setrpcent F
+GLIBC_2.17 setservent F
+GLIBC_2.17 setsgent F
+GLIBC_2.17 setsid F
+GLIBC_2.17 setsockopt F
+GLIBC_2.17 setsourcefilter F
+GLIBC_2.17 setspent F
+GLIBC_2.17 setstate F
+GLIBC_2.17 setstate_r F
+GLIBC_2.17 settimeofday F
+GLIBC_2.17 setttyent F
+GLIBC_2.17 setuid F
+GLIBC_2.17 setusershell F
+GLIBC_2.17 setutent F
+GLIBC_2.17 setutxent F
+GLIBC_2.17 setvbuf F
+GLIBC_2.17 setxattr F
+GLIBC_2.17 sgetsgent F
+GLIBC_2.17 sgetsgent_r F
+GLIBC_2.17 sgetspent F
+GLIBC_2.17 sgetspent_r F
+GLIBC_2.17 shmat F
+GLIBC_2.17 shmctl F
+GLIBC_2.17 shmdt F
+GLIBC_2.17 shmget F
+GLIBC_2.17 shutdown F
+GLIBC_2.17 sigaction F
+GLIBC_2.17 sigaddset F
+GLIBC_2.17 sigaltstack F
+GLIBC_2.17 sigandset F
+GLIBC_2.17 sigblock F
+GLIBC_2.17 sigdelset F
+GLIBC_2.17 sigemptyset F
+GLIBC_2.17 sigfillset F
+GLIBC_2.17 siggetmask F
+GLIBC_2.17 sighold F
+GLIBC_2.17 sigignore F
+GLIBC_2.17 siginterrupt F
+GLIBC_2.17 sigisemptyset F
+GLIBC_2.17 sigismember F
+GLIBC_2.17 siglongjmp F
+GLIBC_2.17 signal F
+GLIBC_2.17 signalfd F
+GLIBC_2.17 sigorset F
+GLIBC_2.17 sigpause F
+GLIBC_2.17 sigpending F
+GLIBC_2.17 sigprocmask F
+GLIBC_2.17 sigqueue F
+GLIBC_2.17 sigrelse F
+GLIBC_2.17 sigreturn F
+GLIBC_2.17 sigset F
+GLIBC_2.17 sigsetmask F
+GLIBC_2.17 sigstack F
+GLIBC_2.17 sigsuspend F
+GLIBC_2.17 sigtimedwait F
+GLIBC_2.17 sigvec F
+GLIBC_2.17 sigwait F
+GLIBC_2.17 sigwaitinfo F
+GLIBC_2.17 sleep F
+GLIBC_2.17 snprintf F
+GLIBC_2.17 sockatmark F
+GLIBC_2.17 socket F
+GLIBC_2.17 socketpair F
+GLIBC_2.17 splice F
+GLIBC_2.17 sprintf F
+GLIBC_2.17 sprofil F
+GLIBC_2.17 srand F
+GLIBC_2.17 srand48 F
+GLIBC_2.17 srand48_r F
+GLIBC_2.17 srandom F
+GLIBC_2.17 srandom_r F
+GLIBC_2.17 sscanf F
+GLIBC_2.17 ssignal F
+GLIBC_2.17 sstk F
+GLIBC_2.17 statfs F
+GLIBC_2.17 statfs64 F
+GLIBC_2.17 statvfs F
+GLIBC_2.17 statvfs64 F
+GLIBC_2.17 stderr D 0x8
+GLIBC_2.17 stdin D 0x8
+GLIBC_2.17 stdout D 0x8
+GLIBC_2.17 step F
+GLIBC_2.17 stime F
+GLIBC_2.17 stpcpy F
+GLIBC_2.17 stpncpy F
+GLIBC_2.17 strcasecmp F
+GLIBC_2.17 strcasecmp_l F
+GLIBC_2.17 strcasestr F
+GLIBC_2.17 strcat F
+GLIBC_2.17 strchr F
+GLIBC_2.17 strchrnul F
+GLIBC_2.17 strcmp F
+GLIBC_2.17 strcoll F
+GLIBC_2.17 strcoll_l F
+GLIBC_2.17 strcpy F
+GLIBC_2.17 strcspn F
+GLIBC_2.17 strdup F
+GLIBC_2.17 strerror F
+GLIBC_2.17 strerror_l F
+GLIBC_2.17 strerror_r F
+GLIBC_2.17 strfmon F
+GLIBC_2.17 strfmon_l F
+GLIBC_2.17 strfry F
+GLIBC_2.17 strftime F
+GLIBC_2.17 strftime_l F
+GLIBC_2.17 strlen F
+GLIBC_2.17 strncasecmp F
+GLIBC_2.17 strncasecmp_l F
+GLIBC_2.17 strncat F
+GLIBC_2.17 strncmp F
+GLIBC_2.17 strncpy F
+GLIBC_2.17 strndup F
+GLIBC_2.17 strnlen F
+GLIBC_2.17 strpbrk F
+GLIBC_2.17 strptime F
+GLIBC_2.17 strptime_l F
+GLIBC_2.17 strrchr F
+GLIBC_2.17 strsep F
+GLIBC_2.17 strsignal F
+GLIBC_2.17 strspn F
+GLIBC_2.17 strstr F
+GLIBC_2.17 strtod F
+GLIBC_2.17 strtod_l F
+GLIBC_2.17 strtof F
+GLIBC_2.17 strtof_l F
+GLIBC_2.17 strtoimax F
+GLIBC_2.17 strtok F
+GLIBC_2.17 strtok_r F
+GLIBC_2.17 strtol F
+GLIBC_2.17 strtol_l F
+GLIBC_2.17 strtold F
+GLIBC_2.17 strtold_l F
+GLIBC_2.17 strtoll F
+GLIBC_2.17 strtoll_l F
+GLIBC_2.17 strtoq F
+GLIBC_2.17 strtoul F
+GLIBC_2.17 strtoul_l F
+GLIBC_2.17 strtoull F
+GLIBC_2.17 strtoull_l F
+GLIBC_2.17 strtoumax F
+GLIBC_2.17 strtouq F
+GLIBC_2.17 strverscmp F
+GLIBC_2.17 strxfrm F
+GLIBC_2.17 strxfrm_l F
+GLIBC_2.17 stty F
+GLIBC_2.17 svc_exit F
+GLIBC_2.17 svc_fdset D 0x80
+GLIBC_2.17 svc_getreq F
+GLIBC_2.17 svc_getreq_common F
+GLIBC_2.17 svc_getreq_poll F
+GLIBC_2.17 svc_getreqset F
+GLIBC_2.17 svc_max_pollfd D 0x4
+GLIBC_2.17 svc_pollfd D 0x8
+GLIBC_2.17 svc_register F
+GLIBC_2.17 svc_run F
+GLIBC_2.17 svc_sendreply F
+GLIBC_2.17 svc_unregister F
+GLIBC_2.17 svcauthdes_stats D 0x18
+GLIBC_2.17 svcerr_auth F
+GLIBC_2.17 svcerr_decode F
+GLIBC_2.17 svcerr_noproc F
+GLIBC_2.17 svcerr_noprog F
+GLIBC_2.17 svcerr_progvers F
+GLIBC_2.17 svcerr_systemerr F
+GLIBC_2.17 svcerr_weakauth F
+GLIBC_2.17 svcfd_create F
+GLIBC_2.17 svcraw_create F
+GLIBC_2.17 svctcp_create F
+GLIBC_2.17 svcudp_bufcreate F
+GLIBC_2.17 svcudp_create F
+GLIBC_2.17 svcudp_enablecache F
+GLIBC_2.17 svcunix_create F
+GLIBC_2.17 svcunixfd_create F
+GLIBC_2.17 swab F
+GLIBC_2.17 swapcontext F
+GLIBC_2.17 swapoff F
+GLIBC_2.17 swapon F
+GLIBC_2.17 swprintf F
+GLIBC_2.17 swscanf F
+GLIBC_2.17 symlink F
+GLIBC_2.17 symlinkat F
+GLIBC_2.17 sync F
+GLIBC_2.17 sync_file_range F
+GLIBC_2.17 syncfs F
+GLIBC_2.17 sys_errlist D 0x438
+GLIBC_2.17 sys_nerr D 0x4
+GLIBC_2.17 sys_sigabbrev D 0x208
+GLIBC_2.17 sys_siglist D 0x208
+GLIBC_2.17 syscall F
+GLIBC_2.17 sysconf F
+GLIBC_2.17 sysctl F
+GLIBC_2.17 sysinfo F
+GLIBC_2.17 syslog F
+GLIBC_2.17 system F
+GLIBC_2.17 sysv_signal F
+GLIBC_2.17 tcdrain F
+GLIBC_2.17 tcflow F
+GLIBC_2.17 tcflush F
+GLIBC_2.17 tcgetattr F
+GLIBC_2.17 tcgetpgrp F
+GLIBC_2.17 tcgetsid F
+GLIBC_2.17 tcsendbreak F
+GLIBC_2.17 tcsetattr F
+GLIBC_2.17 tcsetpgrp F
+GLIBC_2.17 tdelete F
+GLIBC_2.17 tdestroy F
+GLIBC_2.17 tee F
+GLIBC_2.17 telldir F
+GLIBC_2.17 tempnam F
+GLIBC_2.17 textdomain F
+GLIBC_2.17 tfind F
+GLIBC_2.17 time F
+GLIBC_2.17 timegm F
+GLIBC_2.17 timelocal F
+GLIBC_2.17 timerfd_create F
+GLIBC_2.17 timerfd_gettime F
+GLIBC_2.17 timerfd_settime F
+GLIBC_2.17 times F
+GLIBC_2.17 timespec_get F
+GLIBC_2.17 timezone D 0x8
+GLIBC_2.17 tmpfile F
+GLIBC_2.17 tmpfile64 F
+GLIBC_2.17 tmpnam F
+GLIBC_2.17 tmpnam_r F
+GLIBC_2.17 toascii F
+GLIBC_2.17 tolower F
+GLIBC_2.17 tolower_l F
+GLIBC_2.17 toupper F
+GLIBC_2.17 toupper_l F
+GLIBC_2.17 towctrans F
+GLIBC_2.17 towctrans_l F
+GLIBC_2.17 towlower F
+GLIBC_2.17 towlower_l F
+GLIBC_2.17 towupper F
+GLIBC_2.17 towupper_l F
+GLIBC_2.17 tr_break F
+GLIBC_2.17 truncate F
+GLIBC_2.17 truncate64 F
+GLIBC_2.17 tsearch F
+GLIBC_2.17 ttyname F
+GLIBC_2.17 ttyname_r F
+GLIBC_2.17 ttyslot F
+GLIBC_2.17 twalk F
+GLIBC_2.17 tzname D 0x10
+GLIBC_2.17 tzset F
+GLIBC_2.17 ualarm F
+GLIBC_2.17 ulckpwdf F
+GLIBC_2.17 ulimit F
+GLIBC_2.17 umask F
+GLIBC_2.17 umount F
+GLIBC_2.17 umount2 F
+GLIBC_2.17 uname F
+GLIBC_2.17 ungetc F
+GLIBC_2.17 ungetwc F
+GLIBC_2.17 unlink F
+GLIBC_2.17 unlinkat F
+GLIBC_2.17 unlockpt F
+GLIBC_2.17 unsetenv F
+GLIBC_2.17 unshare F
+GLIBC_2.17 updwtmp F
+GLIBC_2.17 updwtmpx F
+GLIBC_2.17 uselib F
+GLIBC_2.17 uselocale F
+GLIBC_2.17 user2netname F
+GLIBC_2.17 usleep F
+GLIBC_2.17 ustat F
+GLIBC_2.17 utime F
+GLIBC_2.17 utimensat F
+GLIBC_2.17 utimes F
+GLIBC_2.17 utmpname F
+GLIBC_2.17 utmpxname F
+GLIBC_2.17 valloc F
+GLIBC_2.17 vasprintf F
+GLIBC_2.17 vdprintf F
+GLIBC_2.17 verr F
+GLIBC_2.17 verrx F
+GLIBC_2.17 versionsort F
+GLIBC_2.17 versionsort64 F
+GLIBC_2.17 vfork F
+GLIBC_2.17 vfprintf F
+GLIBC_2.17 vfscanf F
+GLIBC_2.17 vfwprintf F
+GLIBC_2.17 vfwscanf F
+GLIBC_2.17 vhangup F
+GLIBC_2.17 vlimit F
+GLIBC_2.17 vmsplice F
+GLIBC_2.17 vprintf F
+GLIBC_2.17 vscanf F
+GLIBC_2.17 vsnprintf F
+GLIBC_2.17 vsprintf F
+GLIBC_2.17 vsscanf F
+GLIBC_2.17 vswprintf F
+GLIBC_2.17 vswscanf F
+GLIBC_2.17 vsyslog F
+GLIBC_2.17 vtimes F
+GLIBC_2.17 vwarn F
+GLIBC_2.17 vwarnx F
+GLIBC_2.17 vwprintf F
+GLIBC_2.17 vwscanf F
+GLIBC_2.17 wait F
+GLIBC_2.17 wait3 F
+GLIBC_2.17 wait4 F
+GLIBC_2.17 waitid F
+GLIBC_2.17 waitpid F
+GLIBC_2.17 warn F
+GLIBC_2.17 warnx F
+GLIBC_2.17 wcpcpy F
+GLIBC_2.17 wcpncpy F
+GLIBC_2.17 wcrtomb F
+GLIBC_2.17 wcscasecmp F
+GLIBC_2.17 wcscasecmp_l F
+GLIBC_2.17 wcscat F
+GLIBC_2.17 wcschr F
+GLIBC_2.17 wcschrnul F
+GLIBC_2.17 wcscmp F
+GLIBC_2.17 wcscoll F
+GLIBC_2.17 wcscoll_l F
+GLIBC_2.17 wcscpy F
+GLIBC_2.17 wcscspn F
+GLIBC_2.17 wcsdup F
+GLIBC_2.17 wcsftime F
+GLIBC_2.17 wcsftime_l F
+GLIBC_2.17 wcslen F
+GLIBC_2.17 wcsncasecmp F
+GLIBC_2.17 wcsncasecmp_l F
+GLIBC_2.17 wcsncat F
+GLIBC_2.17 wcsncmp F
+GLIBC_2.17 wcsncpy F
+GLIBC_2.17 wcsnlen F
+GLIBC_2.17 wcsnrtombs F
+GLIBC_2.17 wcspbrk F
+GLIBC_2.17 wcsrchr F
+GLIBC_2.17 wcsrtombs F
+GLIBC_2.17 wcsspn F
+GLIBC_2.17 wcsstr F
+GLIBC_2.17 wcstod F
+GLIBC_2.17 wcstod_l F
+GLIBC_2.17 wcstof F
+GLIBC_2.17 wcstof_l F
+GLIBC_2.17 wcstoimax F
+GLIBC_2.17 wcstok F
+GLIBC_2.17 wcstol F
+GLIBC_2.17 wcstol_l F
+GLIBC_2.17 wcstold F
+GLIBC_2.17 wcstold_l F
+GLIBC_2.17 wcstoll F
+GLIBC_2.17 wcstoll_l F
+GLIBC_2.17 wcstombs F
+GLIBC_2.17 wcstoq F
+GLIBC_2.17 wcstoul F
+GLIBC_2.17 wcstoul_l F
+GLIBC_2.17 wcstoull F
+GLIBC_2.17 wcstoull_l F
+GLIBC_2.17 wcstoumax F
+GLIBC_2.17 wcstouq F
+GLIBC_2.17 wcswcs F
+GLIBC_2.17 wcswidth F
+GLIBC_2.17 wcsxfrm F
+GLIBC_2.17 wcsxfrm_l F
+GLIBC_2.17 wctob F
+GLIBC_2.17 wctomb F
+GLIBC_2.17 wctrans F
+GLIBC_2.17 wctrans_l F
+GLIBC_2.17 wctype F
+GLIBC_2.17 wctype_l F
+GLIBC_2.17 wcwidth F
+GLIBC_2.17 wmemchr F
+GLIBC_2.17 wmemcmp F
+GLIBC_2.17 wmemcpy F
+GLIBC_2.17 wmemmove F
+GLIBC_2.17 wmempcpy F
+GLIBC_2.17 wmemset F
+GLIBC_2.17 wordexp F
+GLIBC_2.17 wordfree F
+GLIBC_2.17 wprintf F
+GLIBC_2.17 write F
+GLIBC_2.17 writev F
+GLIBC_2.17 wscanf F
+GLIBC_2.17 xdecrypt F
+GLIBC_2.17 xdr_accepted_reply F
+GLIBC_2.17 xdr_array F
+GLIBC_2.17 xdr_authdes_cred F
+GLIBC_2.17 xdr_authdes_verf F
+GLIBC_2.17 xdr_authunix_parms F
+GLIBC_2.17 xdr_bool F
+GLIBC_2.17 xdr_bytes F
+GLIBC_2.17 xdr_callhdr F
+GLIBC_2.17 xdr_callmsg F
+GLIBC_2.17 xdr_char F
+GLIBC_2.17 xdr_cryptkeyarg F
+GLIBC_2.17 xdr_cryptkeyarg2 F
+GLIBC_2.17 xdr_cryptkeyres F
+GLIBC_2.17 xdr_des_block F
+GLIBC_2.17 xdr_double F
+GLIBC_2.17 xdr_enum F
+GLIBC_2.17 xdr_float F
+GLIBC_2.17 xdr_free F
+GLIBC_2.17 xdr_getcredres F
+GLIBC_2.17 xdr_hyper F
+GLIBC_2.17 xdr_int F
+GLIBC_2.17 xdr_int16_t F
+GLIBC_2.17 xdr_int32_t F
+GLIBC_2.17 xdr_int64_t F
+GLIBC_2.17 xdr_int8_t F
+GLIBC_2.17 xdr_key_netstarg F
+GLIBC_2.17 xdr_key_netstres F
+GLIBC_2.17 xdr_keybuf F
+GLIBC_2.17 xdr_keystatus F
+GLIBC_2.17 xdr_long F
+GLIBC_2.17 xdr_longlong_t F
+GLIBC_2.17 xdr_netnamestr F
+GLIBC_2.17 xdr_netobj F
+GLIBC_2.17 xdr_opaque F
+GLIBC_2.17 xdr_opaque_auth F
+GLIBC_2.17 xdr_pmap F
+GLIBC_2.17 xdr_pmaplist F
+GLIBC_2.17 xdr_pointer F
+GLIBC_2.17 xdr_quad_t F
+GLIBC_2.17 xdr_reference F
+GLIBC_2.17 xdr_rejected_reply F
+GLIBC_2.17 xdr_replymsg F
+GLIBC_2.17 xdr_rmtcall_args F
+GLIBC_2.17 xdr_rmtcallres F
+GLIBC_2.17 xdr_short F
+GLIBC_2.17 xdr_sizeof F
+GLIBC_2.17 xdr_string F
+GLIBC_2.17 xdr_u_char F
+GLIBC_2.17 xdr_u_hyper F
+GLIBC_2.17 xdr_u_int F
+GLIBC_2.17 xdr_u_long F
+GLIBC_2.17 xdr_u_longlong_t F
+GLIBC_2.17 xdr_u_quad_t F
+GLIBC_2.17 xdr_u_short F
+GLIBC_2.17 xdr_uint16_t F
+GLIBC_2.17 xdr_uint32_t F
+GLIBC_2.17 xdr_uint64_t F
+GLIBC_2.17 xdr_uint8_t F
+GLIBC_2.17 xdr_union F
+GLIBC_2.17 xdr_unixcred F
+GLIBC_2.17 xdr_vector F
+GLIBC_2.17 xdr_void F
+GLIBC_2.17 xdr_wrapstring F
+GLIBC_2.17 xdrmem_create F
+GLIBC_2.17 xdrrec_create F
+GLIBC_2.17 xdrrec_endofrecord F
+GLIBC_2.17 xdrrec_eof F
+GLIBC_2.17 xdrrec_skiprecord F
+GLIBC_2.17 xdrstdio_create F
+GLIBC_2.17 xencrypt F
+GLIBC_2.17 xprt_register F
+GLIBC_2.17 xprt_unregister F
+GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.22 fmemopen F
+GLIBC_2.23 fts64_children F
+GLIBC_2.23 fts64_close F
+GLIBC_2.23 fts64_open F
+GLIBC_2.23 fts64_read F
+GLIBC_2.23 fts64_set F
+GLIBC_2.24 quick_exit F
+GLIBC_2.25 __explicit_bzero_chk F
+GLIBC_2.25 explicit_bzero F
+GLIBC_2.25 getentropy F
+GLIBC_2.25 getrandom F
+GLIBC_2.25 strfromd F
+GLIBC_2.25 strfromf F
+GLIBC_2.25 strfroml F
+GLIBC_2.26 __strtof128_internal F
+GLIBC_2.26 __wcstof128_internal F
+GLIBC_2.26 preadv2 F
+GLIBC_2.26 preadv64v2 F
+GLIBC_2.26 pwritev2 F
+GLIBC_2.26 pwritev64v2 F
+GLIBC_2.26 reallocarray F
+GLIBC_2.26 strfromf128 F
+GLIBC_2.26 strtof128 F
+GLIBC_2.26 strtof128_l F
+GLIBC_2.26 wcstof128 F
+GLIBC_2.26 wcstof128_l F
+GLIBC_2.27 copy_file_range F
+GLIBC_2.27 glob F
+GLIBC_2.27 glob64 F
+GLIBC_2.27 memfd_create F
+GLIBC_2.27 mlock2 F
+GLIBC_2.27 pkey_alloc F
+GLIBC_2.27 pkey_free F
+GLIBC_2.27 pkey_get F
+GLIBC_2.27 pkey_mprotect F
+GLIBC_2.27 pkey_set F
+GLIBC_2.27 strfromf32 F
+GLIBC_2.27 strfromf32x F
+GLIBC_2.27 strfromf64 F
+GLIBC_2.27 strfromf64x F
+GLIBC_2.27 strtof32 F
+GLIBC_2.27 strtof32_l F
+GLIBC_2.27 strtof32x F
+GLIBC_2.27 strtof32x_l F
+GLIBC_2.27 strtof64 F
+GLIBC_2.27 strtof64_l F
+GLIBC_2.27 strtof64x F
+GLIBC_2.27 strtof64x_l F
+GLIBC_2.27 wcstof32 F
+GLIBC_2.27 wcstof32_l F
+GLIBC_2.27 wcstof32x F
+GLIBC_2.27 wcstof32x_l F
+GLIBC_2.27 wcstof64 F
+GLIBC_2.27 wcstof64_l F
+GLIBC_2.27 wcstof64x F
+GLIBC_2.27 wcstof64x_l F
+GLIBC_2.28 fcntl64 F
+GLIBC_2.28 renameat2 F
+GLIBC_2.28 statx F
+GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_equal F
+GLIBC_2.28 thrd_sleep F
+GLIBC_2.28 thrd_yield F
+GLIBC_2.29 getcpu F
+GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
+GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
+GLIBC_2.30 __nldbl_argp_error F
+GLIBC_2.30 __nldbl_argp_failure F
+GLIBC_2.30 __nldbl_err F
+GLIBC_2.30 __nldbl_error F
+GLIBC_2.30 __nldbl_error_at_line F
+GLIBC_2.30 __nldbl_errx F
+GLIBC_2.30 __nldbl_verr F
+GLIBC_2.30 __nldbl_verrx F
+GLIBC_2.30 __nldbl_vwarn F
+GLIBC_2.30 __nldbl_vwarnx F
+GLIBC_2.30 __nldbl_warn F
+GLIBC_2.30 __nldbl_warnx F
+GLIBC_2.30 getdents64 F
+GLIBC_2.30 gettid F
+GLIBC_2.30 tgkill F
+GLIBC_2.30 twalk_r F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libcrypt-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libcrypt.abilist
index 4082747aa3..4082747aa3 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libcrypt-le.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libcrypt.abilist
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libdl-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist
index 36340d5dd8..36340d5dd8 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libdl-le.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libdl.abilist
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
new file mode 100644
index 0000000000..d479a64fca
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
@@ -0,0 +1,1099 @@
+GLIBC_2.17 _LIB_VERSION D 0x4
+GLIBC_2.17 __acos_finite F
+GLIBC_2.17 __acosf_finite F
+GLIBC_2.17 __acosh_finite F
+GLIBC_2.17 __acoshf_finite F
+GLIBC_2.17 __acoshl_finite F
+GLIBC_2.17 __acosl_finite F
+GLIBC_2.17 __asin_finite F
+GLIBC_2.17 __asinf_finite F
+GLIBC_2.17 __asinl_finite F
+GLIBC_2.17 __atan2_finite F
+GLIBC_2.17 __atan2f_finite F
+GLIBC_2.17 __atan2l_finite F
+GLIBC_2.17 __atanh_finite F
+GLIBC_2.17 __atanhf_finite F
+GLIBC_2.17 __atanhl_finite F
+GLIBC_2.17 __clog10 F
+GLIBC_2.17 __clog10f F
+GLIBC_2.17 __clog10l F
+GLIBC_2.17 __cosh_finite F
+GLIBC_2.17 __coshf_finite F
+GLIBC_2.17 __coshl_finite F
+GLIBC_2.17 __exp10_finite F
+GLIBC_2.17 __exp10f_finite F
+GLIBC_2.17 __exp10l_finite F
+GLIBC_2.17 __exp2_finite F
+GLIBC_2.17 __exp2f_finite F
+GLIBC_2.17 __exp2l_finite F
+GLIBC_2.17 __exp_finite F
+GLIBC_2.17 __expf_finite F
+GLIBC_2.17 __expl_finite F
+GLIBC_2.17 __fe_dfl_env D 0x8
+GLIBC_2.17 __fe_enabled_env D 0x8
+GLIBC_2.17 __fe_nomask_env F
+GLIBC_2.17 __fe_nonieee_env D 0x8
+GLIBC_2.17 __finite F
+GLIBC_2.17 __finitef F
+GLIBC_2.17 __finitel F
+GLIBC_2.17 __fmod_finite F
+GLIBC_2.17 __fmodf_finite F
+GLIBC_2.17 __fmodl_finite F
+GLIBC_2.17 __fpclassify F
+GLIBC_2.17 __fpclassifyf F
+GLIBC_2.17 __fpclassifyl F
+GLIBC_2.17 __gamma_r_finite F
+GLIBC_2.17 __gammaf_r_finite F
+GLIBC_2.17 __gammal_r_finite F
+GLIBC_2.17 __hypot_finite F
+GLIBC_2.17 __hypotf_finite F
+GLIBC_2.17 __hypotl_finite F
+GLIBC_2.17 __j0_finite F
+GLIBC_2.17 __j0f_finite F
+GLIBC_2.17 __j0l_finite F
+GLIBC_2.17 __j1_finite F
+GLIBC_2.17 __j1f_finite F
+GLIBC_2.17 __j1l_finite F
+GLIBC_2.17 __jn_finite F
+GLIBC_2.17 __jnf_finite F
+GLIBC_2.17 __jnl_finite F
+GLIBC_2.17 __lgamma_r_finite F
+GLIBC_2.17 __lgammaf_r_finite F
+GLIBC_2.17 __lgammal_r_finite F
+GLIBC_2.17 __log10_finite F
+GLIBC_2.17 __log10f_finite F
+GLIBC_2.17 __log10l_finite F
+GLIBC_2.17 __log2_finite F
+GLIBC_2.17 __log2f_finite F
+GLIBC_2.17 __log2l_finite F
+GLIBC_2.17 __log_finite F
+GLIBC_2.17 __logf_finite F
+GLIBC_2.17 __logl_finite F
+GLIBC_2.17 __nldbl_nexttowardf F
+GLIBC_2.17 __pow_finite F
+GLIBC_2.17 __powf_finite F
+GLIBC_2.17 __powl_finite F
+GLIBC_2.17 __remainder_finite F
+GLIBC_2.17 __remainderf_finite F
+GLIBC_2.17 __remainderl_finite F
+GLIBC_2.17 __scalb_finite F
+GLIBC_2.17 __scalbf_finite F
+GLIBC_2.17 __scalbl_finite F
+GLIBC_2.17 __signbit F
+GLIBC_2.17 __signbitf F
+GLIBC_2.17 __signbitl F
+GLIBC_2.17 __sinh_finite F
+GLIBC_2.17 __sinhf_finite F
+GLIBC_2.17 __sinhl_finite F
+GLIBC_2.17 __sqrt_finite F
+GLIBC_2.17 __sqrtf_finite F
+GLIBC_2.17 __sqrtl_finite F
+GLIBC_2.17 __y0_finite F
+GLIBC_2.17 __y0f_finite F
+GLIBC_2.17 __y0l_finite F
+GLIBC_2.17 __y1_finite F
+GLIBC_2.17 __y1f_finite F
+GLIBC_2.17 __y1l_finite F
+GLIBC_2.17 __yn_finite F
+GLIBC_2.17 __ynf_finite F
+GLIBC_2.17 __ynl_finite F
+GLIBC_2.17 acos F
+GLIBC_2.17 acosf F
+GLIBC_2.17 acosh F
+GLIBC_2.17 acoshf F
+GLIBC_2.17 acoshl F
+GLIBC_2.17 acosl F
+GLIBC_2.17 asin F
+GLIBC_2.17 asinf F
+GLIBC_2.17 asinh F
+GLIBC_2.17 asinhf F
+GLIBC_2.17 asinhl F
+GLIBC_2.17 asinl F
+GLIBC_2.17 atan F
+GLIBC_2.17 atan2 F
+GLIBC_2.17 atan2f F
+GLIBC_2.17 atan2l F
+GLIBC_2.17 atanf F
+GLIBC_2.17 atanh F
+GLIBC_2.17 atanhf F
+GLIBC_2.17 atanhl F
+GLIBC_2.17 atanl F
+GLIBC_2.17 cabs F
+GLIBC_2.17 cabsf F
+GLIBC_2.17 cabsl F
+GLIBC_2.17 cacos F
+GLIBC_2.17 cacosf F
+GLIBC_2.17 cacosh F
+GLIBC_2.17 cacoshf F
+GLIBC_2.17 cacoshl F
+GLIBC_2.17 cacosl F
+GLIBC_2.17 carg F
+GLIBC_2.17 cargf F
+GLIBC_2.17 cargl F
+GLIBC_2.17 casin F
+GLIBC_2.17 casinf F
+GLIBC_2.17 casinh F
+GLIBC_2.17 casinhf F
+GLIBC_2.17 casinhl F
+GLIBC_2.17 casinl F
+GLIBC_2.17 catan F
+GLIBC_2.17 catanf F
+GLIBC_2.17 catanh F
+GLIBC_2.17 catanhf F
+GLIBC_2.17 catanhl F
+GLIBC_2.17 catanl F
+GLIBC_2.17 cbrt F
+GLIBC_2.17 cbrtf F
+GLIBC_2.17 cbrtl F
+GLIBC_2.17 ccos F
+GLIBC_2.17 ccosf F
+GLIBC_2.17 ccosh F
+GLIBC_2.17 ccoshf F
+GLIBC_2.17 ccoshl F
+GLIBC_2.17 ccosl F
+GLIBC_2.17 ceil F
+GLIBC_2.17 ceilf F
+GLIBC_2.17 ceill F
+GLIBC_2.17 cexp F
+GLIBC_2.17 cexpf F
+GLIBC_2.17 cexpl F
+GLIBC_2.17 cimag F
+GLIBC_2.17 cimagf F
+GLIBC_2.17 cimagl F
+GLIBC_2.17 clog F
+GLIBC_2.17 clog10 F
+GLIBC_2.17 clog10f F
+GLIBC_2.17 clog10l F
+GLIBC_2.17 clogf F
+GLIBC_2.17 clogl F
+GLIBC_2.17 conj F
+GLIBC_2.17 conjf F
+GLIBC_2.17 conjl F
+GLIBC_2.17 copysign F
+GLIBC_2.17 copysignf F
+GLIBC_2.17 copysignl F
+GLIBC_2.17 cos F
+GLIBC_2.17 cosf F
+GLIBC_2.17 cosh F
+GLIBC_2.17 coshf F
+GLIBC_2.17 coshl F
+GLIBC_2.17 cosl F
+GLIBC_2.17 cpow F
+GLIBC_2.17 cpowf F
+GLIBC_2.17 cpowl F
+GLIBC_2.17 cproj F
+GLIBC_2.17 cprojf F
+GLIBC_2.17 cprojl F
+GLIBC_2.17 creal F
+GLIBC_2.17 crealf F
+GLIBC_2.17 creall F
+GLIBC_2.17 csin F
+GLIBC_2.17 csinf F
+GLIBC_2.17 csinh F
+GLIBC_2.17 csinhf F
+GLIBC_2.17 csinhl F
+GLIBC_2.17 csinl F
+GLIBC_2.17 csqrt F
+GLIBC_2.17 csqrtf F
+GLIBC_2.17 csqrtl F
+GLIBC_2.17 ctan F
+GLIBC_2.17 ctanf F
+GLIBC_2.17 ctanh F
+GLIBC_2.17 ctanhf F
+GLIBC_2.17 ctanhl F
+GLIBC_2.17 ctanl F
+GLIBC_2.17 drem F
+GLIBC_2.17 dremf F
+GLIBC_2.17 dreml F
+GLIBC_2.17 erf F
+GLIBC_2.17 erfc F
+GLIBC_2.17 erfcf F
+GLIBC_2.17 erfcl F
+GLIBC_2.17 erff F
+GLIBC_2.17 erfl F
+GLIBC_2.17 exp F
+GLIBC_2.17 exp10 F
+GLIBC_2.17 exp10f F
+GLIBC_2.17 exp10l F
+GLIBC_2.17 exp2 F
+GLIBC_2.17 exp2f F
+GLIBC_2.17 exp2l F
+GLIBC_2.17 expf F
+GLIBC_2.17 expl F
+GLIBC_2.17 expm1 F
+GLIBC_2.17 expm1f F
+GLIBC_2.17 expm1l F
+GLIBC_2.17 fabs F
+GLIBC_2.17 fabsf F
+GLIBC_2.17 fabsl F
+GLIBC_2.17 fdim F
+GLIBC_2.17 fdimf F
+GLIBC_2.17 fdiml F
+GLIBC_2.17 feclearexcept F
+GLIBC_2.17 fedisableexcept F
+GLIBC_2.17 feenableexcept F
+GLIBC_2.17 fegetenv F
+GLIBC_2.17 fegetexcept F
+GLIBC_2.17 fegetexceptflag F
+GLIBC_2.17 fegetround F
+GLIBC_2.17 feholdexcept F
+GLIBC_2.17 feraiseexcept F
+GLIBC_2.17 fesetenv F
+GLIBC_2.17 fesetexceptflag F
+GLIBC_2.17 fesetround F
+GLIBC_2.17 fetestexcept F
+GLIBC_2.17 feupdateenv F
+GLIBC_2.17 finite F
+GLIBC_2.17 finitef F
+GLIBC_2.17 finitel F
+GLIBC_2.17 floor F
+GLIBC_2.17 floorf F
+GLIBC_2.17 floorl F
+GLIBC_2.17 fma F
+GLIBC_2.17 fmaf F
+GLIBC_2.17 fmal F
+GLIBC_2.17 fmax F
+GLIBC_2.17 fmaxf F
+GLIBC_2.17 fmaxl F
+GLIBC_2.17 fmin F
+GLIBC_2.17 fminf F
+GLIBC_2.17 fminl F
+GLIBC_2.17 fmod F
+GLIBC_2.17 fmodf F
+GLIBC_2.17 fmodl F
+GLIBC_2.17 frexp F
+GLIBC_2.17 frexpf F
+GLIBC_2.17 frexpl F
+GLIBC_2.17 gamma F
+GLIBC_2.17 gammaf F
+GLIBC_2.17 gammal F
+GLIBC_2.17 hypot F
+GLIBC_2.17 hypotf F
+GLIBC_2.17 hypotl F
+GLIBC_2.17 ilogb F
+GLIBC_2.17 ilogbf F
+GLIBC_2.17 ilogbl F
+GLIBC_2.17 j0 F
+GLIBC_2.17 j0f F
+GLIBC_2.17 j0l F
+GLIBC_2.17 j1 F
+GLIBC_2.17 j1f F
+GLIBC_2.17 j1l F
+GLIBC_2.17 jn F
+GLIBC_2.17 jnf F
+GLIBC_2.17 jnl F
+GLIBC_2.17 ldexp F
+GLIBC_2.17 ldexpf F
+GLIBC_2.17 ldexpl F
+GLIBC_2.17 lgamma F
+GLIBC_2.17 lgamma_r F
+GLIBC_2.17 lgammaf F
+GLIBC_2.17 lgammaf_r F
+GLIBC_2.17 lgammal F
+GLIBC_2.17 lgammal_r F
+GLIBC_2.17 llrint F
+GLIBC_2.17 llrintf F
+GLIBC_2.17 llrintl F
+GLIBC_2.17 llround F
+GLIBC_2.17 llroundf F
+GLIBC_2.17 llroundl F
+GLIBC_2.17 log F
+GLIBC_2.17 log10 F
+GLIBC_2.17 log10f F
+GLIBC_2.17 log10l F
+GLIBC_2.17 log1p F
+GLIBC_2.17 log1pf F
+GLIBC_2.17 log1pl F
+GLIBC_2.17 log2 F
+GLIBC_2.17 log2f F
+GLIBC_2.17 log2l F
+GLIBC_2.17 logb F
+GLIBC_2.17 logbf F
+GLIBC_2.17 logbl F
+GLIBC_2.17 logf F
+GLIBC_2.17 logl F
+GLIBC_2.17 lrint F
+GLIBC_2.17 lrintf F
+GLIBC_2.17 lrintl F
+GLIBC_2.17 lround F
+GLIBC_2.17 lroundf F
+GLIBC_2.17 lroundl F
+GLIBC_2.17 matherr F
+GLIBC_2.17 modf F
+GLIBC_2.17 modff F
+GLIBC_2.17 modfl F
+GLIBC_2.17 nan F
+GLIBC_2.17 nanf F
+GLIBC_2.17 nanl F
+GLIBC_2.17 nearbyint F
+GLIBC_2.17 nearbyintf F
+GLIBC_2.17 nearbyintl F
+GLIBC_2.17 nextafter F
+GLIBC_2.17 nextafterf F
+GLIBC_2.17 nextafterl F
+GLIBC_2.17 nexttoward F
+GLIBC_2.17 nexttowardf F
+GLIBC_2.17 nexttowardl F
+GLIBC_2.17 pow F
+GLIBC_2.17 pow10 F
+GLIBC_2.17 pow10f F
+GLIBC_2.17 pow10l F
+GLIBC_2.17 powf F
+GLIBC_2.17 powl F
+GLIBC_2.17 remainder F
+GLIBC_2.17 remainderf F
+GLIBC_2.17 remainderl F
+GLIBC_2.17 remquo F
+GLIBC_2.17 remquof F
+GLIBC_2.17 remquol F
+GLIBC_2.17 rint F
+GLIBC_2.17 rintf F
+GLIBC_2.17 rintl F
+GLIBC_2.17 round F
+GLIBC_2.17 roundf F
+GLIBC_2.17 roundl F
+GLIBC_2.17 scalb F
+GLIBC_2.17 scalbf F
+GLIBC_2.17 scalbl F
+GLIBC_2.17 scalbln F
+GLIBC_2.17 scalblnf F
+GLIBC_2.17 scalblnl F
+GLIBC_2.17 scalbn F
+GLIBC_2.17 scalbnf F
+GLIBC_2.17 scalbnl F
+GLIBC_2.17 signgam D 0x4
+GLIBC_2.17 significand F
+GLIBC_2.17 significandf F
+GLIBC_2.17 significandl F
+GLIBC_2.17 sin F
+GLIBC_2.17 sincos F
+GLIBC_2.17 sincosf F
+GLIBC_2.17 sincosl F
+GLIBC_2.17 sinf F
+GLIBC_2.17 sinh F
+GLIBC_2.17 sinhf F
+GLIBC_2.17 sinhl F
+GLIBC_2.17 sinl F
+GLIBC_2.17 sqrt F
+GLIBC_2.17 sqrtf F
+GLIBC_2.17 sqrtl F
+GLIBC_2.17 tan F
+GLIBC_2.17 tanf F
+GLIBC_2.17 tanh F
+GLIBC_2.17 tanhf F
+GLIBC_2.17 tanhl F
+GLIBC_2.17 tanl F
+GLIBC_2.17 tgamma F
+GLIBC_2.17 tgammaf F
+GLIBC_2.17 tgammal F
+GLIBC_2.17 trunc F
+GLIBC_2.17 truncf F
+GLIBC_2.17 truncl F
+GLIBC_2.17 y0 F
+GLIBC_2.17 y0f F
+GLIBC_2.17 y0l F
+GLIBC_2.17 y1 F
+GLIBC_2.17 y1f F
+GLIBC_2.17 y1l F
+GLIBC_2.17 yn F
+GLIBC_2.17 ynf F
+GLIBC_2.17 ynl F
+GLIBC_2.18 __issignaling F
+GLIBC_2.18 __issignalingf F
+GLIBC_2.18 __issignalingl F
+GLIBC_2.23 __signgam D 0x4
+GLIBC_2.23 lgamma F
+GLIBC_2.23 lgammaf F
+GLIBC_2.23 lgammal F
+GLIBC_2.24 nextdown F
+GLIBC_2.24 nextdownf F
+GLIBC_2.24 nextdownl F
+GLIBC_2.24 nextup F
+GLIBC_2.24 nextupf F
+GLIBC_2.24 nextupl F
+GLIBC_2.25 __fe_dfl_mode D 0x8
+GLIBC_2.25 __iscanonicall F
+GLIBC_2.25 __iseqsig F
+GLIBC_2.25 __iseqsigf F
+GLIBC_2.25 __iseqsigl F
+GLIBC_2.25 canonicalize F
+GLIBC_2.25 canonicalizef F
+GLIBC_2.25 canonicalizel F
+GLIBC_2.25 fegetmode F
+GLIBC_2.25 fesetexcept F
+GLIBC_2.25 fesetmode F
+GLIBC_2.25 fetestexceptflag F
+GLIBC_2.25 fmaxmag F
+GLIBC_2.25 fmaxmagf F
+GLIBC_2.25 fmaxmagl F
+GLIBC_2.25 fminmag F
+GLIBC_2.25 fminmagf F
+GLIBC_2.25 fminmagl F
+GLIBC_2.25 fromfp F
+GLIBC_2.25 fromfpf F
+GLIBC_2.25 fromfpl F
+GLIBC_2.25 fromfpx F
+GLIBC_2.25 fromfpxf F
+GLIBC_2.25 fromfpxl F
+GLIBC_2.25 getpayload F
+GLIBC_2.25 getpayloadf F
+GLIBC_2.25 getpayloadl F
+GLIBC_2.25 llogb F
+GLIBC_2.25 llogbf F
+GLIBC_2.25 llogbl F
+GLIBC_2.25 roundeven F
+GLIBC_2.25 roundevenf F
+GLIBC_2.25 roundevenl F
+GLIBC_2.25 setpayload F
+GLIBC_2.25 setpayloadf F
+GLIBC_2.25 setpayloadl F
+GLIBC_2.25 setpayloadsig F
+GLIBC_2.25 setpayloadsigf F
+GLIBC_2.25 setpayloadsigl F
+GLIBC_2.25 totalorder F
+GLIBC_2.25 totalorderf F
+GLIBC_2.25 totalorderl F
+GLIBC_2.25 totalordermag F
+GLIBC_2.25 totalordermagf F
+GLIBC_2.25 totalordermagl F
+GLIBC_2.25 ufromfp F
+GLIBC_2.25 ufromfpf F
+GLIBC_2.25 ufromfpl F
+GLIBC_2.25 ufromfpx F
+GLIBC_2.25 ufromfpxf F
+GLIBC_2.25 ufromfpxl F
+GLIBC_2.26 __acosf128_finite F
+GLIBC_2.26 __acoshf128_finite F
+GLIBC_2.26 __asinf128_finite F
+GLIBC_2.26 __atan2f128_finite F
+GLIBC_2.26 __atanhf128_finite F
+GLIBC_2.26 __coshf128_finite F
+GLIBC_2.26 __exp10f128_finite F
+GLIBC_2.26 __exp2f128_finite F
+GLIBC_2.26 __expf128_finite F
+GLIBC_2.26 __finitef128 F
+GLIBC_2.26 __fmodf128_finite F
+GLIBC_2.26 __fpclassifyf128 F
+GLIBC_2.26 __gammaf128_r_finite F
+GLIBC_2.26 __hypotf128_finite F
+GLIBC_2.26 __iseqsigf128 F
+GLIBC_2.26 __isinff128 F
+GLIBC_2.26 __isnanf128 F
+GLIBC_2.26 __issignalingf128 F
+GLIBC_2.26 __j0f128_finite F
+GLIBC_2.26 __j1f128_finite F
+GLIBC_2.26 __jnf128_finite F
+GLIBC_2.26 __lgammaf128_r_finite F
+GLIBC_2.26 __log10f128_finite F
+GLIBC_2.26 __log2f128_finite F
+GLIBC_2.26 __logf128_finite F
+GLIBC_2.26 __powf128_finite F
+GLIBC_2.26 __remainderf128_finite F
+GLIBC_2.26 __signbitf128 F
+GLIBC_2.26 __sinhf128_finite F
+GLIBC_2.26 __sqrtf128_finite F
+GLIBC_2.26 __y0f128_finite F
+GLIBC_2.26 __y1f128_finite F
+GLIBC_2.26 __ynf128_finite F
+GLIBC_2.26 acosf128 F
+GLIBC_2.26 acoshf128 F
+GLIBC_2.26 asinf128 F
+GLIBC_2.26 asinhf128 F
+GLIBC_2.26 atan2f128 F
+GLIBC_2.26 atanf128 F
+GLIBC_2.26 atanhf128 F
+GLIBC_2.26 cabsf128 F
+GLIBC_2.26 cacosf128 F
+GLIBC_2.26 cacoshf128 F
+GLIBC_2.26 canonicalizef128 F
+GLIBC_2.26 cargf128 F
+GLIBC_2.26 casinf128 F
+GLIBC_2.26 casinhf128 F
+GLIBC_2.26 catanf128 F
+GLIBC_2.26 catanhf128 F
+GLIBC_2.26 cbrtf128 F
+GLIBC_2.26 ccosf128 F
+GLIBC_2.26 ccoshf128 F
+GLIBC_2.26 ceilf128 F
+GLIBC_2.26 cexpf128 F
+GLIBC_2.26 cimagf128 F
+GLIBC_2.26 clog10f128 F
+GLIBC_2.26 clogf128 F
+GLIBC_2.26 conjf128 F
+GLIBC_2.26 copysignf128 F
+GLIBC_2.26 cosf128 F
+GLIBC_2.26 coshf128 F
+GLIBC_2.26 cpowf128 F
+GLIBC_2.26 cprojf128 F
+GLIBC_2.26 crealf128 F
+GLIBC_2.26 csinf128 F
+GLIBC_2.26 csinhf128 F
+GLIBC_2.26 csqrtf128 F
+GLIBC_2.26 ctanf128 F
+GLIBC_2.26 ctanhf128 F
+GLIBC_2.26 erfcf128 F
+GLIBC_2.26 erff128 F
+GLIBC_2.26 exp10f128 F
+GLIBC_2.26 exp2f128 F
+GLIBC_2.26 expf128 F
+GLIBC_2.26 expm1f128 F
+GLIBC_2.26 fabsf128 F
+GLIBC_2.26 fdimf128 F
+GLIBC_2.26 floorf128 F
+GLIBC_2.26 fmaf128 F
+GLIBC_2.26 fmaxf128 F
+GLIBC_2.26 fmaxmagf128 F
+GLIBC_2.26 fminf128 F
+GLIBC_2.26 fminmagf128 F
+GLIBC_2.26 fmodf128 F
+GLIBC_2.26 frexpf128 F
+GLIBC_2.26 fromfpf128 F
+GLIBC_2.26 fromfpxf128 F
+GLIBC_2.26 getpayloadf128 F
+GLIBC_2.26 hypotf128 F
+GLIBC_2.26 ilogbf128 F
+GLIBC_2.26 j0f128 F
+GLIBC_2.26 j1f128 F
+GLIBC_2.26 jnf128 F
+GLIBC_2.26 ldexpf128 F
+GLIBC_2.26 lgammaf128 F
+GLIBC_2.26 lgammaf128_r F
+GLIBC_2.26 llogbf128 F
+GLIBC_2.26 llrintf128 F
+GLIBC_2.26 llroundf128 F
+GLIBC_2.26 log10f128 F
+GLIBC_2.26 log1pf128 F
+GLIBC_2.26 log2f128 F
+GLIBC_2.26 logbf128 F
+GLIBC_2.26 logf128 F
+GLIBC_2.26 lrintf128 F
+GLIBC_2.26 lroundf128 F
+GLIBC_2.26 modff128 F
+GLIBC_2.26 nanf128 F
+GLIBC_2.26 nearbyintf128 F
+GLIBC_2.26 nextafterf128 F
+GLIBC_2.26 nextdownf128 F
+GLIBC_2.26 nextupf128 F
+GLIBC_2.26 powf128 F
+GLIBC_2.26 remainderf128 F
+GLIBC_2.26 remquof128 F
+GLIBC_2.26 rintf128 F
+GLIBC_2.26 roundevenf128 F
+GLIBC_2.26 roundf128 F
+GLIBC_2.26 scalblnf128 F
+GLIBC_2.26 scalbnf128 F
+GLIBC_2.26 setpayloadf128 F
+GLIBC_2.26 setpayloadsigf128 F
+GLIBC_2.26 sincosf128 F
+GLIBC_2.26 sinf128 F
+GLIBC_2.26 sinhf128 F
+GLIBC_2.26 sqrtf128 F
+GLIBC_2.26 tanf128 F
+GLIBC_2.26 tanhf128 F
+GLIBC_2.26 tgammaf128 F
+GLIBC_2.26 totalorderf128 F
+GLIBC_2.26 totalordermagf128 F
+GLIBC_2.26 truncf128 F
+GLIBC_2.26 ufromfpf128 F
+GLIBC_2.26 ufromfpxf128 F
+GLIBC_2.26 y0f128 F
+GLIBC_2.26 y1f128 F
+GLIBC_2.26 ynf128 F
+GLIBC_2.27 acosf32 F
+GLIBC_2.27 acosf32x F
+GLIBC_2.27 acosf64 F
+GLIBC_2.27 acosf64x F
+GLIBC_2.27 acoshf32 F
+GLIBC_2.27 acoshf32x F
+GLIBC_2.27 acoshf64 F
+GLIBC_2.27 acoshf64x F
+GLIBC_2.27 asinf32 F
+GLIBC_2.27 asinf32x F
+GLIBC_2.27 asinf64 F
+GLIBC_2.27 asinf64x F
+GLIBC_2.27 asinhf32 F
+GLIBC_2.27 asinhf32x F
+GLIBC_2.27 asinhf64 F
+GLIBC_2.27 asinhf64x F
+GLIBC_2.27 atan2f32 F
+GLIBC_2.27 atan2f32x F
+GLIBC_2.27 atan2f64 F
+GLIBC_2.27 atan2f64x F
+GLIBC_2.27 atanf32 F
+GLIBC_2.27 atanf32x F
+GLIBC_2.27 atanf64 F
+GLIBC_2.27 atanf64x F
+GLIBC_2.27 atanhf32 F
+GLIBC_2.27 atanhf32x F
+GLIBC_2.27 atanhf64 F
+GLIBC_2.27 atanhf64x F
+GLIBC_2.27 cabsf32 F
+GLIBC_2.27 cabsf32x F
+GLIBC_2.27 cabsf64 F
+GLIBC_2.27 cabsf64x F
+GLIBC_2.27 cacosf32 F
+GLIBC_2.27 cacosf32x F
+GLIBC_2.27 cacosf64 F
+GLIBC_2.27 cacosf64x F
+GLIBC_2.27 cacoshf32 F
+GLIBC_2.27 cacoshf32x F
+GLIBC_2.27 cacoshf64 F
+GLIBC_2.27 cacoshf64x F
+GLIBC_2.27 canonicalizef32 F
+GLIBC_2.27 canonicalizef32x F
+GLIBC_2.27 canonicalizef64 F
+GLIBC_2.27 canonicalizef64x F
+GLIBC_2.27 cargf32 F
+GLIBC_2.27 cargf32x F
+GLIBC_2.27 cargf64 F
+GLIBC_2.27 cargf64x F
+GLIBC_2.27 casinf32 F
+GLIBC_2.27 casinf32x F
+GLIBC_2.27 casinf64 F
+GLIBC_2.27 casinf64x F
+GLIBC_2.27 casinhf32 F
+GLIBC_2.27 casinhf32x F
+GLIBC_2.27 casinhf64 F
+GLIBC_2.27 casinhf64x F
+GLIBC_2.27 catanf32 F
+GLIBC_2.27 catanf32x F
+GLIBC_2.27 catanf64 F
+GLIBC_2.27 catanf64x F
+GLIBC_2.27 catanhf32 F
+GLIBC_2.27 catanhf32x F
+GLIBC_2.27 catanhf64 F
+GLIBC_2.27 catanhf64x F
+GLIBC_2.27 cbrtf32 F
+GLIBC_2.27 cbrtf32x F
+GLIBC_2.27 cbrtf64 F
+GLIBC_2.27 cbrtf64x F
+GLIBC_2.27 ccosf32 F
+GLIBC_2.27 ccosf32x F
+GLIBC_2.27 ccosf64 F
+GLIBC_2.27 ccosf64x F
+GLIBC_2.27 ccoshf32 F
+GLIBC_2.27 ccoshf32x F
+GLIBC_2.27 ccoshf64 F
+GLIBC_2.27 ccoshf64x F
+GLIBC_2.27 ceilf32 F
+GLIBC_2.27 ceilf32x F
+GLIBC_2.27 ceilf64 F
+GLIBC_2.27 ceilf64x F
+GLIBC_2.27 cexpf32 F
+GLIBC_2.27 cexpf32x F
+GLIBC_2.27 cexpf64 F
+GLIBC_2.27 cexpf64x F
+GLIBC_2.27 cimagf32 F
+GLIBC_2.27 cimagf32x F
+GLIBC_2.27 cimagf64 F
+GLIBC_2.27 cimagf64x F
+GLIBC_2.27 clog10f32 F
+GLIBC_2.27 clog10f32x F
+GLIBC_2.27 clog10f64 F
+GLIBC_2.27 clog10f64x F
+GLIBC_2.27 clogf32 F
+GLIBC_2.27 clogf32x F
+GLIBC_2.27 clogf64 F
+GLIBC_2.27 clogf64x F
+GLIBC_2.27 conjf32 F
+GLIBC_2.27 conjf32x F
+GLIBC_2.27 conjf64 F
+GLIBC_2.27 conjf64x F
+GLIBC_2.27 copysignf32 F
+GLIBC_2.27 copysignf32x F
+GLIBC_2.27 copysignf64 F
+GLIBC_2.27 copysignf64x F
+GLIBC_2.27 cosf32 F
+GLIBC_2.27 cosf32x F
+GLIBC_2.27 cosf64 F
+GLIBC_2.27 cosf64x F
+GLIBC_2.27 coshf32 F
+GLIBC_2.27 coshf32x F
+GLIBC_2.27 coshf64 F
+GLIBC_2.27 coshf64x F
+GLIBC_2.27 cpowf32 F
+GLIBC_2.27 cpowf32x F
+GLIBC_2.27 cpowf64 F
+GLIBC_2.27 cpowf64x F
+GLIBC_2.27 cprojf32 F
+GLIBC_2.27 cprojf32x F
+GLIBC_2.27 cprojf64 F
+GLIBC_2.27 cprojf64x F
+GLIBC_2.27 crealf32 F
+GLIBC_2.27 crealf32x F
+GLIBC_2.27 crealf64 F
+GLIBC_2.27 crealf64x F
+GLIBC_2.27 csinf32 F
+GLIBC_2.27 csinf32x F
+GLIBC_2.27 csinf64 F
+GLIBC_2.27 csinf64x F
+GLIBC_2.27 csinhf32 F
+GLIBC_2.27 csinhf32x F
+GLIBC_2.27 csinhf64 F
+GLIBC_2.27 csinhf64x F
+GLIBC_2.27 csqrtf32 F
+GLIBC_2.27 csqrtf32x F
+GLIBC_2.27 csqrtf64 F
+GLIBC_2.27 csqrtf64x F
+GLIBC_2.27 ctanf32 F
+GLIBC_2.27 ctanf32x F
+GLIBC_2.27 ctanf64 F
+GLIBC_2.27 ctanf64x F
+GLIBC_2.27 ctanhf32 F
+GLIBC_2.27 ctanhf32x F
+GLIBC_2.27 ctanhf64 F
+GLIBC_2.27 ctanhf64x F
+GLIBC_2.27 erfcf32 F
+GLIBC_2.27 erfcf32x F
+GLIBC_2.27 erfcf64 F
+GLIBC_2.27 erfcf64x F
+GLIBC_2.27 erff32 F
+GLIBC_2.27 erff32x F
+GLIBC_2.27 erff64 F
+GLIBC_2.27 erff64x F
+GLIBC_2.27 exp10f32 F
+GLIBC_2.27 exp10f32x F
+GLIBC_2.27 exp10f64 F
+GLIBC_2.27 exp10f64x F
+GLIBC_2.27 exp2f F
+GLIBC_2.27 exp2f32 F
+GLIBC_2.27 exp2f32x F
+GLIBC_2.27 exp2f64 F
+GLIBC_2.27 exp2f64x F
+GLIBC_2.27 expf F
+GLIBC_2.27 expf32 F
+GLIBC_2.27 expf32x F
+GLIBC_2.27 expf64 F
+GLIBC_2.27 expf64x F
+GLIBC_2.27 expm1f32 F
+GLIBC_2.27 expm1f32x F
+GLIBC_2.27 expm1f64 F
+GLIBC_2.27 expm1f64x F
+GLIBC_2.27 fabsf32 F
+GLIBC_2.27 fabsf32x F
+GLIBC_2.27 fabsf64 F
+GLIBC_2.27 fabsf64x F
+GLIBC_2.27 fdimf32 F
+GLIBC_2.27 fdimf32x F
+GLIBC_2.27 fdimf64 F
+GLIBC_2.27 fdimf64x F
+GLIBC_2.27 floorf32 F
+GLIBC_2.27 floorf32x F
+GLIBC_2.27 floorf64 F
+GLIBC_2.27 floorf64x F
+GLIBC_2.27 fmaf32 F
+GLIBC_2.27 fmaf32x F
+GLIBC_2.27 fmaf64 F
+GLIBC_2.27 fmaf64x F
+GLIBC_2.27 fmaxf32 F
+GLIBC_2.27 fmaxf32x F
+GLIBC_2.27 fmaxf64 F
+GLIBC_2.27 fmaxf64x F
+GLIBC_2.27 fmaxmagf32 F
+GLIBC_2.27 fmaxmagf32x F
+GLIBC_2.27 fmaxmagf64 F
+GLIBC_2.27 fmaxmagf64x F
+GLIBC_2.27 fminf32 F
+GLIBC_2.27 fminf32x F
+GLIBC_2.27 fminf64 F
+GLIBC_2.27 fminf64x F
+GLIBC_2.27 fminmagf32 F
+GLIBC_2.27 fminmagf32x F
+GLIBC_2.27 fminmagf64 F
+GLIBC_2.27 fminmagf64x F
+GLIBC_2.27 fmodf32 F
+GLIBC_2.27 fmodf32x F
+GLIBC_2.27 fmodf64 F
+GLIBC_2.27 fmodf64x F
+GLIBC_2.27 frexpf32 F
+GLIBC_2.27 frexpf32x F
+GLIBC_2.27 frexpf64 F
+GLIBC_2.27 frexpf64x F
+GLIBC_2.27 fromfpf32 F
+GLIBC_2.27 fromfpf32x F
+GLIBC_2.27 fromfpf64 F
+GLIBC_2.27 fromfpf64x F
+GLIBC_2.27 fromfpxf32 F
+GLIBC_2.27 fromfpxf32x F
+GLIBC_2.27 fromfpxf64 F
+GLIBC_2.27 fromfpxf64x F
+GLIBC_2.27 getpayloadf32 F
+GLIBC_2.27 getpayloadf32x F
+GLIBC_2.27 getpayloadf64 F
+GLIBC_2.27 getpayloadf64x F
+GLIBC_2.27 hypotf32 F
+GLIBC_2.27 hypotf32x F
+GLIBC_2.27 hypotf64 F
+GLIBC_2.27 hypotf64x F
+GLIBC_2.27 ilogbf32 F
+GLIBC_2.27 ilogbf32x F
+GLIBC_2.27 ilogbf64 F
+GLIBC_2.27 ilogbf64x F
+GLIBC_2.27 j0f32 F
+GLIBC_2.27 j0f32x F
+GLIBC_2.27 j0f64 F
+GLIBC_2.27 j0f64x F
+GLIBC_2.27 j1f32 F
+GLIBC_2.27 j1f32x F
+GLIBC_2.27 j1f64 F
+GLIBC_2.27 j1f64x F
+GLIBC_2.27 jnf32 F
+GLIBC_2.27 jnf32x F
+GLIBC_2.27 jnf64 F
+GLIBC_2.27 jnf64x F
+GLIBC_2.27 ldexpf32 F
+GLIBC_2.27 ldexpf32x F
+GLIBC_2.27 ldexpf64 F
+GLIBC_2.27 ldexpf64x F
+GLIBC_2.27 lgammaf32 F
+GLIBC_2.27 lgammaf32_r F
+GLIBC_2.27 lgammaf32x F
+GLIBC_2.27 lgammaf32x_r F
+GLIBC_2.27 lgammaf64 F
+GLIBC_2.27 lgammaf64_r F
+GLIBC_2.27 lgammaf64x F
+GLIBC_2.27 lgammaf64x_r F
+GLIBC_2.27 llogbf32 F
+GLIBC_2.27 llogbf32x F
+GLIBC_2.27 llogbf64 F
+GLIBC_2.27 llogbf64x F
+GLIBC_2.27 llrintf32 F
+GLIBC_2.27 llrintf32x F
+GLIBC_2.27 llrintf64 F
+GLIBC_2.27 llrintf64x F
+GLIBC_2.27 llroundf32 F
+GLIBC_2.27 llroundf32x F
+GLIBC_2.27 llroundf64 F
+GLIBC_2.27 llroundf64x F
+GLIBC_2.27 log10f32 F
+GLIBC_2.27 log10f32x F
+GLIBC_2.27 log10f64 F
+GLIBC_2.27 log10f64x F
+GLIBC_2.27 log1pf32 F
+GLIBC_2.27 log1pf32x F
+GLIBC_2.27 log1pf64 F
+GLIBC_2.27 log1pf64x F
+GLIBC_2.27 log2f F
+GLIBC_2.27 log2f32 F
+GLIBC_2.27 log2f32x F
+GLIBC_2.27 log2f64 F
+GLIBC_2.27 log2f64x F
+GLIBC_2.27 logbf32 F
+GLIBC_2.27 logbf32x F
+GLIBC_2.27 logbf64 F
+GLIBC_2.27 logbf64x F
+GLIBC_2.27 logf F
+GLIBC_2.27 logf32 F
+GLIBC_2.27 logf32x F
+GLIBC_2.27 logf64 F
+GLIBC_2.27 logf64x F
+GLIBC_2.27 lrintf32 F
+GLIBC_2.27 lrintf32x F
+GLIBC_2.27 lrintf64 F
+GLIBC_2.27 lrintf64x F
+GLIBC_2.27 lroundf32 F
+GLIBC_2.27 lroundf32x F
+GLIBC_2.27 lroundf64 F
+GLIBC_2.27 lroundf64x F
+GLIBC_2.27 modff32 F
+GLIBC_2.27 modff32x F
+GLIBC_2.27 modff64 F
+GLIBC_2.27 modff64x F
+GLIBC_2.27 nanf32 F
+GLIBC_2.27 nanf32x F
+GLIBC_2.27 nanf64 F
+GLIBC_2.27 nanf64x F
+GLIBC_2.27 nearbyintf32 F
+GLIBC_2.27 nearbyintf32x F
+GLIBC_2.27 nearbyintf64 F
+GLIBC_2.27 nearbyintf64x F
+GLIBC_2.27 nextafterf32 F
+GLIBC_2.27 nextafterf32x F
+GLIBC_2.27 nextafterf64 F
+GLIBC_2.27 nextafterf64x F
+GLIBC_2.27 nextdownf32 F
+GLIBC_2.27 nextdownf32x F
+GLIBC_2.27 nextdownf64 F
+GLIBC_2.27 nextdownf64x F
+GLIBC_2.27 nextupf32 F
+GLIBC_2.27 nextupf32x F
+GLIBC_2.27 nextupf64 F
+GLIBC_2.27 nextupf64x F
+GLIBC_2.27 powf F
+GLIBC_2.27 powf32 F
+GLIBC_2.27 powf32x F
+GLIBC_2.27 powf64 F
+GLIBC_2.27 powf64x F
+GLIBC_2.27 remainderf32 F
+GLIBC_2.27 remainderf32x F
+GLIBC_2.27 remainderf64 F
+GLIBC_2.27 remainderf64x F
+GLIBC_2.27 remquof32 F
+GLIBC_2.27 remquof32x F
+GLIBC_2.27 remquof64 F
+GLIBC_2.27 remquof64x F
+GLIBC_2.27 rintf32 F
+GLIBC_2.27 rintf32x F
+GLIBC_2.27 rintf64 F
+GLIBC_2.27 rintf64x F
+GLIBC_2.27 roundevenf32 F
+GLIBC_2.27 roundevenf32x F
+GLIBC_2.27 roundevenf64 F
+GLIBC_2.27 roundevenf64x F
+GLIBC_2.27 roundf32 F
+GLIBC_2.27 roundf32x F
+GLIBC_2.27 roundf64 F
+GLIBC_2.27 roundf64x F
+GLIBC_2.27 scalblnf32 F
+GLIBC_2.27 scalblnf32x F
+GLIBC_2.27 scalblnf64 F
+GLIBC_2.27 scalblnf64x F
+GLIBC_2.27 scalbnf32 F
+GLIBC_2.27 scalbnf32x F
+GLIBC_2.27 scalbnf64 F
+GLIBC_2.27 scalbnf64x F
+GLIBC_2.27 setpayloadf32 F
+GLIBC_2.27 setpayloadf32x F
+GLIBC_2.27 setpayloadf64 F
+GLIBC_2.27 setpayloadf64x F
+GLIBC_2.27 setpayloadsigf32 F
+GLIBC_2.27 setpayloadsigf32x F
+GLIBC_2.27 setpayloadsigf64 F
+GLIBC_2.27 setpayloadsigf64x F
+GLIBC_2.27 sincosf32 F
+GLIBC_2.27 sincosf32x F
+GLIBC_2.27 sincosf64 F
+GLIBC_2.27 sincosf64x F
+GLIBC_2.27 sinf32 F
+GLIBC_2.27 sinf32x F
+GLIBC_2.27 sinf64 F
+GLIBC_2.27 sinf64x F
+GLIBC_2.27 sinhf32 F
+GLIBC_2.27 sinhf32x F
+GLIBC_2.27 sinhf64 F
+GLIBC_2.27 sinhf64x F
+GLIBC_2.27 sqrtf32 F
+GLIBC_2.27 sqrtf32x F
+GLIBC_2.27 sqrtf64 F
+GLIBC_2.27 sqrtf64x F
+GLIBC_2.27 tanf32 F
+GLIBC_2.27 tanf32x F
+GLIBC_2.27 tanf64 F
+GLIBC_2.27 tanf64x F
+GLIBC_2.27 tanhf32 F
+GLIBC_2.27 tanhf32x F
+GLIBC_2.27 tanhf64 F
+GLIBC_2.27 tanhf64x F
+GLIBC_2.27 tgammaf32 F
+GLIBC_2.27 tgammaf32x F
+GLIBC_2.27 tgammaf64 F
+GLIBC_2.27 tgammaf64x F
+GLIBC_2.27 totalorderf32 F
+GLIBC_2.27 totalorderf32x F
+GLIBC_2.27 totalorderf64 F
+GLIBC_2.27 totalorderf64x F
+GLIBC_2.27 totalordermagf32 F
+GLIBC_2.27 totalordermagf32x F
+GLIBC_2.27 totalordermagf64 F
+GLIBC_2.27 totalordermagf64x F
+GLIBC_2.27 truncf32 F
+GLIBC_2.27 truncf32x F
+GLIBC_2.27 truncf64 F
+GLIBC_2.27 truncf64x F
+GLIBC_2.27 ufromfpf32 F
+GLIBC_2.27 ufromfpf32x F
+GLIBC_2.27 ufromfpf64 F
+GLIBC_2.27 ufromfpf64x F
+GLIBC_2.27 ufromfpxf32 F
+GLIBC_2.27 ufromfpxf32x F
+GLIBC_2.27 ufromfpxf64 F
+GLIBC_2.27 ufromfpxf64x F
+GLIBC_2.27 y0f32 F
+GLIBC_2.27 y0f32x F
+GLIBC_2.27 y0f64 F
+GLIBC_2.27 y0f64x F
+GLIBC_2.27 y1f32 F
+GLIBC_2.27 y1f32x F
+GLIBC_2.27 y1f64 F
+GLIBC_2.27 y1f64x F
+GLIBC_2.27 ynf32 F
+GLIBC_2.27 ynf32x F
+GLIBC_2.27 ynf64 F
+GLIBC_2.27 ynf64x F
+GLIBC_2.28 __nldbl_daddl F
+GLIBC_2.28 __nldbl_ddivl F
+GLIBC_2.28 __nldbl_dmull F
+GLIBC_2.28 __nldbl_dsubl F
+GLIBC_2.28 daddl F
+GLIBC_2.28 ddivl F
+GLIBC_2.28 dmull F
+GLIBC_2.28 dsubl F
+GLIBC_2.28 f32addf128 F
+GLIBC_2.28 f32addf32x F
+GLIBC_2.28 f32addf64 F
+GLIBC_2.28 f32addf64x F
+GLIBC_2.28 f32divf128 F
+GLIBC_2.28 f32divf32x F
+GLIBC_2.28 f32divf64 F
+GLIBC_2.28 f32divf64x F
+GLIBC_2.28 f32mulf128 F
+GLIBC_2.28 f32mulf32x F
+GLIBC_2.28 f32mulf64 F
+GLIBC_2.28 f32mulf64x F
+GLIBC_2.28 f32subf128 F
+GLIBC_2.28 f32subf32x F
+GLIBC_2.28 f32subf64 F
+GLIBC_2.28 f32subf64x F
+GLIBC_2.28 f32xaddf128 F
+GLIBC_2.28 f32xaddf64 F
+GLIBC_2.28 f32xaddf64x F
+GLIBC_2.28 f32xdivf128 F
+GLIBC_2.28 f32xdivf64 F
+GLIBC_2.28 f32xdivf64x F
+GLIBC_2.28 f32xmulf128 F
+GLIBC_2.28 f32xmulf64 F
+GLIBC_2.28 f32xmulf64x F
+GLIBC_2.28 f32xsubf128 F
+GLIBC_2.28 f32xsubf64 F
+GLIBC_2.28 f32xsubf64x F
+GLIBC_2.28 f64addf128 F
+GLIBC_2.28 f64addf64x F
+GLIBC_2.28 f64divf128 F
+GLIBC_2.28 f64divf64x F
+GLIBC_2.28 f64mulf128 F
+GLIBC_2.28 f64mulf64x F
+GLIBC_2.28 f64subf128 F
+GLIBC_2.28 f64subf64x F
+GLIBC_2.28 f64xaddf128 F
+GLIBC_2.28 f64xdivf128 F
+GLIBC_2.28 f64xmulf128 F
+GLIBC_2.28 f64xsubf128 F
+GLIBC_2.28 fadd F
+GLIBC_2.28 faddl F
+GLIBC_2.28 fdiv F
+GLIBC_2.28 fdivl F
+GLIBC_2.28 fmul F
+GLIBC_2.28 fmull F
+GLIBC_2.28 fsub F
+GLIBC_2.28 fsubl F
+GLIBC_2.29 exp F
+GLIBC_2.29 exp2 F
+GLIBC_2.29 log F
+GLIBC_2.29 log2 F
+GLIBC_2.29 pow F
+GLIBC_2.31 totalorder F
+GLIBC_2.31 totalorderf F
+GLIBC_2.31 totalorderf128 F
+GLIBC_2.31 totalorderf32 F
+GLIBC_2.31 totalorderf32x F
+GLIBC_2.31 totalorderf64 F
+GLIBC_2.31 totalorderf64x F
+GLIBC_2.31 totalorderl F
+GLIBC_2.31 totalordermag F
+GLIBC_2.31 totalordermagf F
+GLIBC_2.31 totalordermagf128 F
+GLIBC_2.31 totalordermagf32 F
+GLIBC_2.31 totalordermagf32x F
+GLIBC_2.31 totalordermagf64 F
+GLIBC_2.31 totalordermagf64x F
+GLIBC_2.31 totalordermagl F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libnsl-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libnsl.abilist
index eae8dbe341..eae8dbe341 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libnsl-le.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libnsl.abilist
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
new file mode 100644
index 0000000000..98a8473fcd
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
@@ -0,0 +1,237 @@
+GLIBC_2.17 _IO_flockfile F
+GLIBC_2.17 _IO_ftrylockfile F
+GLIBC_2.17 _IO_funlockfile F
+GLIBC_2.17 __close F
+GLIBC_2.17 __connect F
+GLIBC_2.17 __errno_location F
+GLIBC_2.17 __fcntl F
+GLIBC_2.17 __fork F
+GLIBC_2.17 __h_errno_location F
+GLIBC_2.17 __libc_allocate_rtsig F
+GLIBC_2.17 __libc_current_sigrtmax F
+GLIBC_2.17 __libc_current_sigrtmin F
+GLIBC_2.17 __lseek F
+GLIBC_2.17 __open F
+GLIBC_2.17 __open64 F
+GLIBC_2.17 __pread64 F
+GLIBC_2.17 __pthread_cleanup_routine F
+GLIBC_2.17 __pthread_getspecific F
+GLIBC_2.17 __pthread_key_create F
+GLIBC_2.17 __pthread_mutex_destroy F
+GLIBC_2.17 __pthread_mutex_init F
+GLIBC_2.17 __pthread_mutex_lock F
+GLIBC_2.17 __pthread_mutex_trylock F
+GLIBC_2.17 __pthread_mutex_unlock F
+GLIBC_2.17 __pthread_mutexattr_destroy F
+GLIBC_2.17 __pthread_mutexattr_init F
+GLIBC_2.17 __pthread_mutexattr_settype F
+GLIBC_2.17 __pthread_once F
+GLIBC_2.17 __pthread_register_cancel F
+GLIBC_2.17 __pthread_register_cancel_defer F
+GLIBC_2.17 __pthread_rwlock_destroy F
+GLIBC_2.17 __pthread_rwlock_init F
+GLIBC_2.17 __pthread_rwlock_rdlock F
+GLIBC_2.17 __pthread_rwlock_tryrdlock F
+GLIBC_2.17 __pthread_rwlock_trywrlock F
+GLIBC_2.17 __pthread_rwlock_unlock F
+GLIBC_2.17 __pthread_rwlock_wrlock F
+GLIBC_2.17 __pthread_setspecific F
+GLIBC_2.17 __pthread_unregister_cancel F
+GLIBC_2.17 __pthread_unregister_cancel_restore F
+GLIBC_2.17 __pthread_unwind_next F
+GLIBC_2.17 __pwrite64 F
+GLIBC_2.17 __read F
+GLIBC_2.17 __res_state F
+GLIBC_2.17 __send F
+GLIBC_2.17 __sigaction F
+GLIBC_2.17 __wait F
+GLIBC_2.17 __write F
+GLIBC_2.17 _pthread_cleanup_pop F
+GLIBC_2.17 _pthread_cleanup_pop_restore F
+GLIBC_2.17 _pthread_cleanup_push F
+GLIBC_2.17 _pthread_cleanup_push_defer F
+GLIBC_2.17 accept F
+GLIBC_2.17 close F
+GLIBC_2.17 connect F
+GLIBC_2.17 fcntl F
+GLIBC_2.17 flockfile F
+GLIBC_2.17 fork F
+GLIBC_2.17 fsync F
+GLIBC_2.17 ftrylockfile F
+GLIBC_2.17 funlockfile F
+GLIBC_2.17 longjmp F
+GLIBC_2.17 lseek F
+GLIBC_2.17 lseek64 F
+GLIBC_2.17 msync F
+GLIBC_2.17 open F
+GLIBC_2.17 open64 F
+GLIBC_2.17 pause F
+GLIBC_2.17 pread F
+GLIBC_2.17 pread64 F
+GLIBC_2.17 pthread_attr_getaffinity_np F
+GLIBC_2.17 pthread_attr_getguardsize F
+GLIBC_2.17 pthread_attr_getschedpolicy F
+GLIBC_2.17 pthread_attr_getscope F
+GLIBC_2.17 pthread_attr_getstack F
+GLIBC_2.17 pthread_attr_getstackaddr F
+GLIBC_2.17 pthread_attr_getstacksize F
+GLIBC_2.17 pthread_attr_setaffinity_np F
+GLIBC_2.17 pthread_attr_setguardsize F
+GLIBC_2.17 pthread_attr_setschedpolicy F
+GLIBC_2.17 pthread_attr_setscope F
+GLIBC_2.17 pthread_attr_setstack F
+GLIBC_2.17 pthread_attr_setstackaddr F
+GLIBC_2.17 pthread_attr_setstacksize F
+GLIBC_2.17 pthread_barrier_destroy F
+GLIBC_2.17 pthread_barrier_init F
+GLIBC_2.17 pthread_barrier_wait F
+GLIBC_2.17 pthread_barrierattr_destroy F
+GLIBC_2.17 pthread_barrierattr_getpshared F
+GLIBC_2.17 pthread_barrierattr_init F
+GLIBC_2.17 pthread_barrierattr_setpshared F
+GLIBC_2.17 pthread_cancel F
+GLIBC_2.17 pthread_cond_broadcast F
+GLIBC_2.17 pthread_cond_destroy F
+GLIBC_2.17 pthread_cond_init F
+GLIBC_2.17 pthread_cond_signal F
+GLIBC_2.17 pthread_cond_timedwait F
+GLIBC_2.17 pthread_cond_wait F
+GLIBC_2.17 pthread_condattr_destroy F
+GLIBC_2.17 pthread_condattr_getclock F
+GLIBC_2.17 pthread_condattr_getpshared F
+GLIBC_2.17 pthread_condattr_init F
+GLIBC_2.17 pthread_condattr_setclock F
+GLIBC_2.17 pthread_condattr_setpshared F
+GLIBC_2.17 pthread_create F
+GLIBC_2.17 pthread_detach F
+GLIBC_2.17 pthread_exit F
+GLIBC_2.17 pthread_getaffinity_np F
+GLIBC_2.17 pthread_getattr_np F
+GLIBC_2.17 pthread_getconcurrency F
+GLIBC_2.17 pthread_getcpuclockid F
+GLIBC_2.17 pthread_getname_np F
+GLIBC_2.17 pthread_getschedparam F
+GLIBC_2.17 pthread_getspecific F
+GLIBC_2.17 pthread_join F
+GLIBC_2.17 pthread_key_create F
+GLIBC_2.17 pthread_key_delete F
+GLIBC_2.17 pthread_kill F
+GLIBC_2.17 pthread_kill_other_threads_np F
+GLIBC_2.17 pthread_mutex_consistent F
+GLIBC_2.17 pthread_mutex_consistent_np F
+GLIBC_2.17 pthread_mutex_destroy F
+GLIBC_2.17 pthread_mutex_getprioceiling F
+GLIBC_2.17 pthread_mutex_init F
+GLIBC_2.17 pthread_mutex_lock F
+GLIBC_2.17 pthread_mutex_setprioceiling F
+GLIBC_2.17 pthread_mutex_timedlock F
+GLIBC_2.17 pthread_mutex_trylock F
+GLIBC_2.17 pthread_mutex_unlock F
+GLIBC_2.17 pthread_mutexattr_destroy F
+GLIBC_2.17 pthread_mutexattr_getkind_np F
+GLIBC_2.17 pthread_mutexattr_getprioceiling F
+GLIBC_2.17 pthread_mutexattr_getprotocol F
+GLIBC_2.17 pthread_mutexattr_getpshared F
+GLIBC_2.17 pthread_mutexattr_getrobust F
+GLIBC_2.17 pthread_mutexattr_getrobust_np F
+GLIBC_2.17 pthread_mutexattr_gettype F
+GLIBC_2.17 pthread_mutexattr_init F
+GLIBC_2.17 pthread_mutexattr_setkind_np F
+GLIBC_2.17 pthread_mutexattr_setprioceiling F
+GLIBC_2.17 pthread_mutexattr_setprotocol F
+GLIBC_2.17 pthread_mutexattr_setpshared F
+GLIBC_2.17 pthread_mutexattr_setrobust F
+GLIBC_2.17 pthread_mutexattr_setrobust_np F
+GLIBC_2.17 pthread_mutexattr_settype F
+GLIBC_2.17 pthread_once F
+GLIBC_2.17 pthread_rwlock_destroy F
+GLIBC_2.17 pthread_rwlock_init F
+GLIBC_2.17 pthread_rwlock_rdlock F
+GLIBC_2.17 pthread_rwlock_timedrdlock F
+GLIBC_2.17 pthread_rwlock_timedwrlock F
+GLIBC_2.17 pthread_rwlock_tryrdlock F
+GLIBC_2.17 pthread_rwlock_trywrlock F
+GLIBC_2.17 pthread_rwlock_unlock F
+GLIBC_2.17 pthread_rwlock_wrlock F
+GLIBC_2.17 pthread_rwlockattr_destroy F
+GLIBC_2.17 pthread_rwlockattr_getkind_np F
+GLIBC_2.17 pthread_rwlockattr_getpshared F
+GLIBC_2.17 pthread_rwlockattr_init F
+GLIBC_2.17 pthread_rwlockattr_setkind_np F
+GLIBC_2.17 pthread_rwlockattr_setpshared F
+GLIBC_2.17 pthread_setaffinity_np F
+GLIBC_2.17 pthread_setcancelstate F
+GLIBC_2.17 pthread_setcanceltype F
+GLIBC_2.17 pthread_setconcurrency F
+GLIBC_2.17 pthread_setname_np F
+GLIBC_2.17 pthread_setschedparam F
+GLIBC_2.17 pthread_setschedprio F
+GLIBC_2.17 pthread_setspecific F
+GLIBC_2.17 pthread_sigmask F
+GLIBC_2.17 pthread_sigqueue F
+GLIBC_2.17 pthread_spin_destroy F
+GLIBC_2.17 pthread_spin_init F
+GLIBC_2.17 pthread_spin_lock F
+GLIBC_2.17 pthread_spin_trylock F
+GLIBC_2.17 pthread_spin_unlock F
+GLIBC_2.17 pthread_testcancel F
+GLIBC_2.17 pthread_timedjoin_np F
+GLIBC_2.17 pthread_tryjoin_np F
+GLIBC_2.17 pthread_yield F
+GLIBC_2.17 pwrite F
+GLIBC_2.17 pwrite64 F
+GLIBC_2.17 raise F
+GLIBC_2.17 read F
+GLIBC_2.17 recv F
+GLIBC_2.17 recvfrom F
+GLIBC_2.17 recvmsg F
+GLIBC_2.17 sem_close F
+GLIBC_2.17 sem_destroy F
+GLIBC_2.17 sem_getvalue F
+GLIBC_2.17 sem_init F
+GLIBC_2.17 sem_open F
+GLIBC_2.17 sem_post F
+GLIBC_2.17 sem_timedwait F
+GLIBC_2.17 sem_trywait F
+GLIBC_2.17 sem_unlink F
+GLIBC_2.17 sem_wait F
+GLIBC_2.17 send F
+GLIBC_2.17 sendmsg F
+GLIBC_2.17 sendto F
+GLIBC_2.17 sigaction F
+GLIBC_2.17 siglongjmp F
+GLIBC_2.17 sigwait F
+GLIBC_2.17 system F
+GLIBC_2.17 tcdrain F
+GLIBC_2.17 wait F
+GLIBC_2.17 waitpid F
+GLIBC_2.17 write F
+GLIBC_2.18 pthread_getattr_default_np F
+GLIBC_2.18 pthread_setattr_default_np F
+GLIBC_2.28 call_once F
+GLIBC_2.28 cnd_broadcast F
+GLIBC_2.28 cnd_destroy F
+GLIBC_2.28 cnd_init F
+GLIBC_2.28 cnd_signal F
+GLIBC_2.28 cnd_timedwait F
+GLIBC_2.28 cnd_wait F
+GLIBC_2.28 mtx_destroy F
+GLIBC_2.28 mtx_init F
+GLIBC_2.28 mtx_lock F
+GLIBC_2.28 mtx_timedlock F
+GLIBC_2.28 mtx_trylock F
+GLIBC_2.28 mtx_unlock F
+GLIBC_2.28 thrd_create F
+GLIBC_2.28 thrd_detach F
+GLIBC_2.28 thrd_exit F
+GLIBC_2.28 thrd_join F
+GLIBC_2.28 tss_create F
+GLIBC_2.28 tss_delete F
+GLIBC_2.28 tss_get F
+GLIBC_2.28 tss_set F
+GLIBC_2.30 pthread_cond_clockwait F
+GLIBC_2.30 pthread_mutex_clocklock F
+GLIBC_2.30 pthread_rwlock_clockrdlock F
+GLIBC_2.30 pthread_rwlock_clockwrlock F
+GLIBC_2.30 sem_clockwait F
+GLIBC_2.31 pthread_clockjoin_np F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libresolv-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
index f7fdd26bd1..f7fdd26bd1 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libresolv-le.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libresolv.abilist
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/librt-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
index 5e81c82a25..5e81c82a25 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/librt-le.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libthread_db-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libthread_db.abilist
index 3b84229ebc..3b84229ebc 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libthread_db-le.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libthread_db.abilist
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libutil-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libutil.abilist
index 99889de22e..99889de22e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libutil-le.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libutil.abilist
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist
deleted file mode 100644
index e26930e728..0000000000
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist
+++ /dev/null
@@ -1,2230 +0,0 @@
-GLIBC_2.17 _Exit F
-GLIBC_2.17 _IO_2_1_stderr_ D 0xe0
-GLIBC_2.17 _IO_2_1_stdin_ D 0xe0
-GLIBC_2.17 _IO_2_1_stdout_ D 0xe0
-GLIBC_2.17 _IO_adjust_column F
-GLIBC_2.17 _IO_adjust_wcolumn F
-GLIBC_2.17 _IO_default_doallocate F
-GLIBC_2.17 _IO_default_finish F
-GLIBC_2.17 _IO_default_pbackfail F
-GLIBC_2.17 _IO_default_uflow F
-GLIBC_2.17 _IO_default_xsgetn F
-GLIBC_2.17 _IO_default_xsputn F
-GLIBC_2.17 _IO_do_write F
-GLIBC_2.17 _IO_doallocbuf F
-GLIBC_2.17 _IO_fclose F
-GLIBC_2.17 _IO_fdopen F
-GLIBC_2.17 _IO_feof F
-GLIBC_2.17 _IO_ferror F
-GLIBC_2.17 _IO_fflush F
-GLIBC_2.17 _IO_fgetpos F
-GLIBC_2.17 _IO_fgetpos64 F
-GLIBC_2.17 _IO_fgets F
-GLIBC_2.17 _IO_file_attach F
-GLIBC_2.17 _IO_file_close F
-GLIBC_2.17 _IO_file_close_it F
-GLIBC_2.17 _IO_file_doallocate F
-GLIBC_2.17 _IO_file_finish F
-GLIBC_2.17 _IO_file_fopen F
-GLIBC_2.17 _IO_file_init F
-GLIBC_2.17 _IO_file_jumps D 0xa8
-GLIBC_2.17 _IO_file_open F
-GLIBC_2.17 _IO_file_overflow F
-GLIBC_2.17 _IO_file_read F
-GLIBC_2.17 _IO_file_seek F
-GLIBC_2.17 _IO_file_seekoff F
-GLIBC_2.17 _IO_file_setbuf F
-GLIBC_2.17 _IO_file_stat F
-GLIBC_2.17 _IO_file_sync F
-GLIBC_2.17 _IO_file_underflow F
-GLIBC_2.17 _IO_file_write F
-GLIBC_2.17 _IO_file_xsputn F
-GLIBC_2.17 _IO_flockfile F
-GLIBC_2.17 _IO_flush_all F
-GLIBC_2.17 _IO_flush_all_linebuffered F
-GLIBC_2.17 _IO_fopen F
-GLIBC_2.17 _IO_fprintf F
-GLIBC_2.17 _IO_fputs F
-GLIBC_2.17 _IO_fread F
-GLIBC_2.17 _IO_free_backup_area F
-GLIBC_2.17 _IO_free_wbackup_area F
-GLIBC_2.17 _IO_fsetpos F
-GLIBC_2.17 _IO_fsetpos64 F
-GLIBC_2.17 _IO_ftell F
-GLIBC_2.17 _IO_ftrylockfile F
-GLIBC_2.17 _IO_funlockfile F
-GLIBC_2.17 _IO_fwrite F
-GLIBC_2.17 _IO_getc F
-GLIBC_2.17 _IO_getline F
-GLIBC_2.17 _IO_getline_info F
-GLIBC_2.17 _IO_gets F
-GLIBC_2.17 _IO_init F
-GLIBC_2.17 _IO_init_marker F
-GLIBC_2.17 _IO_init_wmarker F
-GLIBC_2.17 _IO_iter_begin F
-GLIBC_2.17 _IO_iter_end F
-GLIBC_2.17 _IO_iter_file F
-GLIBC_2.17 _IO_iter_next F
-GLIBC_2.17 _IO_least_wmarker F
-GLIBC_2.17 _IO_link_in F
-GLIBC_2.17 _IO_list_all D 0x8
-GLIBC_2.17 _IO_list_lock F
-GLIBC_2.17 _IO_list_resetlock F
-GLIBC_2.17 _IO_list_unlock F
-GLIBC_2.17 _IO_marker_delta F
-GLIBC_2.17 _IO_marker_difference F
-GLIBC_2.17 _IO_padn F
-GLIBC_2.17 _IO_peekc_locked F
-GLIBC_2.17 _IO_popen F
-GLIBC_2.17 _IO_printf F
-GLIBC_2.17 _IO_proc_close F
-GLIBC_2.17 _IO_proc_open F
-GLIBC_2.17 _IO_putc F
-GLIBC_2.17 _IO_puts F
-GLIBC_2.17 _IO_remove_marker F
-GLIBC_2.17 _IO_seekmark F
-GLIBC_2.17 _IO_seekoff F
-GLIBC_2.17 _IO_seekpos F
-GLIBC_2.17 _IO_seekwmark F
-GLIBC_2.17 _IO_setb F
-GLIBC_2.17 _IO_setbuffer F
-GLIBC_2.17 _IO_setvbuf F
-GLIBC_2.17 _IO_sgetn F
-GLIBC_2.17 _IO_sprintf F
-GLIBC_2.17 _IO_sputbackc F
-GLIBC_2.17 _IO_sputbackwc F
-GLIBC_2.17 _IO_sscanf F
-GLIBC_2.17 _IO_str_init_readonly F
-GLIBC_2.17 _IO_str_init_static F
-GLIBC_2.17 _IO_str_overflow F
-GLIBC_2.17 _IO_str_pbackfail F
-GLIBC_2.17 _IO_str_seekoff F
-GLIBC_2.17 _IO_str_underflow F
-GLIBC_2.17 _IO_sungetc F
-GLIBC_2.17 _IO_sungetwc F
-GLIBC_2.17 _IO_switch_to_get_mode F
-GLIBC_2.17 _IO_switch_to_main_wget_area F
-GLIBC_2.17 _IO_switch_to_wbackup_area F
-GLIBC_2.17 _IO_switch_to_wget_mode F
-GLIBC_2.17 _IO_un_link F
-GLIBC_2.17 _IO_ungetc F
-GLIBC_2.17 _IO_unsave_markers F
-GLIBC_2.17 _IO_unsave_wmarkers F
-GLIBC_2.17 _IO_vfprintf F
-GLIBC_2.17 _IO_vfscanf F
-GLIBC_2.17 _IO_vsprintf F
-GLIBC_2.17 _IO_wdefault_doallocate F
-GLIBC_2.17 _IO_wdefault_finish F
-GLIBC_2.17 _IO_wdefault_pbackfail F
-GLIBC_2.17 _IO_wdefault_uflow F
-GLIBC_2.17 _IO_wdefault_xsgetn F
-GLIBC_2.17 _IO_wdefault_xsputn F
-GLIBC_2.17 _IO_wdo_write F
-GLIBC_2.17 _IO_wdoallocbuf F
-GLIBC_2.17 _IO_wfile_jumps D 0xa8
-GLIBC_2.17 _IO_wfile_overflow F
-GLIBC_2.17 _IO_wfile_seekoff F
-GLIBC_2.17 _IO_wfile_sync F
-GLIBC_2.17 _IO_wfile_underflow F
-GLIBC_2.17 _IO_wfile_xsputn F
-GLIBC_2.17 _IO_wmarker_delta F
-GLIBC_2.17 _IO_wsetb F
-GLIBC_2.17 __adjtimex F
-GLIBC_2.17 __after_morecore_hook D 0x8
-GLIBC_2.17 __argz_count F
-GLIBC_2.17 __argz_next F
-GLIBC_2.17 __argz_stringify F
-GLIBC_2.17 __asprintf F
-GLIBC_2.17 __asprintf_chk F
-GLIBC_2.17 __assert F
-GLIBC_2.17 __assert_fail F
-GLIBC_2.17 __assert_perror_fail F
-GLIBC_2.17 __backtrace F
-GLIBC_2.17 __backtrace_symbols F
-GLIBC_2.17 __backtrace_symbols_fd F
-GLIBC_2.17 __bsd_getpgrp F
-GLIBC_2.17 __bzero F
-GLIBC_2.17 __check_rhosts_file D 0x4
-GLIBC_2.17 __chk_fail F
-GLIBC_2.17 __clone F
-GLIBC_2.17 __close F
-GLIBC_2.17 __cmsg_nxthdr F
-GLIBC_2.17 __confstr_chk F
-GLIBC_2.17 __connect F
-GLIBC_2.17 __ctype_b_loc F
-GLIBC_2.17 __ctype_get_mb_cur_max F
-GLIBC_2.17 __ctype_tolower_loc F
-GLIBC_2.17 __ctype_toupper_loc F
-GLIBC_2.17 __curbrk D 0x8
-GLIBC_2.17 __cxa_at_quick_exit F
-GLIBC_2.17 __cxa_atexit F
-GLIBC_2.17 __cxa_finalize F
-GLIBC_2.17 __cyg_profile_func_enter F
-GLIBC_2.17 __cyg_profile_func_exit F
-GLIBC_2.17 __daylight D 0x4
-GLIBC_2.17 __dcgettext F
-GLIBC_2.17 __default_morecore F
-GLIBC_2.17 __dgettext F
-GLIBC_2.17 __dprintf_chk F
-GLIBC_2.17 __dup2 F
-GLIBC_2.17 __duplocale F
-GLIBC_2.17 __endmntent F
-GLIBC_2.17 __environ D 0x8
-GLIBC_2.17 __errno_location F
-GLIBC_2.17 __fbufsize F
-GLIBC_2.17 __fcntl F
-GLIBC_2.17 __fdelt_chk F
-GLIBC_2.17 __fdelt_warn F
-GLIBC_2.17 __ffs F
-GLIBC_2.17 __fgets_chk F
-GLIBC_2.17 __fgets_unlocked_chk F
-GLIBC_2.17 __fgetws_chk F
-GLIBC_2.17 __fgetws_unlocked_chk F
-GLIBC_2.17 __finite F
-GLIBC_2.17 __finitef F
-GLIBC_2.17 __finitel F
-GLIBC_2.17 __flbf F
-GLIBC_2.17 __fork F
-GLIBC_2.17 __fpending F
-GLIBC_2.17 __fprintf_chk F
-GLIBC_2.17 __fpu_control D 0x4
-GLIBC_2.17 __fpurge F
-GLIBC_2.17 __fread_chk F
-GLIBC_2.17 __fread_unlocked_chk F
-GLIBC_2.17 __freadable F
-GLIBC_2.17 __freading F
-GLIBC_2.17 __free_hook D 0x8
-GLIBC_2.17 __freelocale F
-GLIBC_2.17 __fsetlocking F
-GLIBC_2.17 __fwprintf_chk F
-GLIBC_2.17 __fwritable F
-GLIBC_2.17 __fwriting F
-GLIBC_2.17 __fxstat F
-GLIBC_2.17 __fxstat64 F
-GLIBC_2.17 __fxstatat F
-GLIBC_2.17 __fxstatat64 F
-GLIBC_2.17 __getauxval F
-GLIBC_2.17 __getcwd_chk F
-GLIBC_2.17 __getdelim F
-GLIBC_2.17 __getdomainname_chk F
-GLIBC_2.17 __getgroups_chk F
-GLIBC_2.17 __gethostname_chk F
-GLIBC_2.17 __getlogin_r_chk F
-GLIBC_2.17 __getmntent_r F
-GLIBC_2.17 __getpagesize F
-GLIBC_2.17 __getpgid F
-GLIBC_2.17 __getpid F
-GLIBC_2.17 __gets_chk F
-GLIBC_2.17 __gettimeofday F
-GLIBC_2.17 __getwd_chk F
-GLIBC_2.17 __gmtime_r F
-GLIBC_2.17 __h_errno_location F
-GLIBC_2.17 __isalnum_l F
-GLIBC_2.17 __isalpha_l F
-GLIBC_2.17 __isascii_l F
-GLIBC_2.17 __isblank_l F
-GLIBC_2.17 __iscntrl_l F
-GLIBC_2.17 __isctype F
-GLIBC_2.17 __isdigit_l F
-GLIBC_2.17 __isgraph_l F
-GLIBC_2.17 __isinf F
-GLIBC_2.17 __isinff F
-GLIBC_2.17 __isinfl F
-GLIBC_2.17 __islower_l F
-GLIBC_2.17 __isnan F
-GLIBC_2.17 __isnanf F
-GLIBC_2.17 __isnanl F
-GLIBC_2.17 __isoc99_fscanf F
-GLIBC_2.17 __isoc99_fwscanf F
-GLIBC_2.17 __isoc99_scanf F
-GLIBC_2.17 __isoc99_sscanf F
-GLIBC_2.17 __isoc99_swscanf F
-GLIBC_2.17 __isoc99_vfscanf F
-GLIBC_2.17 __isoc99_vfwscanf F
-GLIBC_2.17 __isoc99_vscanf F
-GLIBC_2.17 __isoc99_vsscanf F
-GLIBC_2.17 __isoc99_vswscanf F
-GLIBC_2.17 __isoc99_vwscanf F
-GLIBC_2.17 __isoc99_wscanf F
-GLIBC_2.17 __isprint_l F
-GLIBC_2.17 __ispunct_l F
-GLIBC_2.17 __isspace_l F
-GLIBC_2.17 __isupper_l F
-GLIBC_2.17 __iswalnum_l F
-GLIBC_2.17 __iswalpha_l F
-GLIBC_2.17 __iswblank_l F
-GLIBC_2.17 __iswcntrl_l F
-GLIBC_2.17 __iswctype F
-GLIBC_2.17 __iswctype_l F
-GLIBC_2.17 __iswdigit_l F
-GLIBC_2.17 __iswgraph_l F
-GLIBC_2.17 __iswlower_l F
-GLIBC_2.17 __iswprint_l F
-GLIBC_2.17 __iswpunct_l F
-GLIBC_2.17 __iswspace_l F
-GLIBC_2.17 __iswupper_l F
-GLIBC_2.17 __iswxdigit_l F
-GLIBC_2.17 __isxdigit_l F
-GLIBC_2.17 __ivaliduser F
-GLIBC_2.17 __key_decryptsession_pk_LOCAL D 0x8
-GLIBC_2.17 __key_encryptsession_pk_LOCAL D 0x8
-GLIBC_2.17 __key_gendes_LOCAL D 0x8
-GLIBC_2.17 __libc_allocate_rtsig F
-GLIBC_2.17 __libc_calloc F
-GLIBC_2.17 __libc_current_sigrtmax F
-GLIBC_2.17 __libc_current_sigrtmin F
-GLIBC_2.17 __libc_free F
-GLIBC_2.17 __libc_freeres F
-GLIBC_2.17 __libc_init_first F
-GLIBC_2.17 __libc_mallinfo F
-GLIBC_2.17 __libc_malloc F
-GLIBC_2.17 __libc_mallopt F
-GLIBC_2.17 __libc_memalign F
-GLIBC_2.17 __libc_pvalloc F
-GLIBC_2.17 __libc_realloc F
-GLIBC_2.17 __libc_sa_len F
-GLIBC_2.17 __libc_start_main F
-GLIBC_2.17 __libc_valloc F
-GLIBC_2.17 __longjmp_chk F
-GLIBC_2.17 __lseek F
-GLIBC_2.17 __lxstat F
-GLIBC_2.17 __lxstat64 F
-GLIBC_2.17 __malloc_hook D 0x8
-GLIBC_2.17 __malloc_initialize_hook D 0x8
-GLIBC_2.17 __mbrlen F
-GLIBC_2.17 __mbrtowc F
-GLIBC_2.17 __mbsnrtowcs_chk F
-GLIBC_2.17 __mbsrtowcs_chk F
-GLIBC_2.17 __mbstowcs_chk F
-GLIBC_2.17 __memalign_hook D 0x8
-GLIBC_2.17 __memcpy_chk F
-GLIBC_2.17 __memmove_chk F
-GLIBC_2.17 __mempcpy F
-GLIBC_2.17 __mempcpy_chk F
-GLIBC_2.17 __mempcpy_small F
-GLIBC_2.17 __memset_chk F
-GLIBC_2.17 __monstartup F
-GLIBC_2.17 __morecore D 0x8
-GLIBC_2.17 __nanosleep F
-GLIBC_2.17 __newlocale F
-GLIBC_2.17 __nl_langinfo_l F
-GLIBC_2.17 __nldbl__IO_fprintf F
-GLIBC_2.17 __nldbl__IO_printf F
-GLIBC_2.17 __nldbl__IO_sprintf F
-GLIBC_2.17 __nldbl__IO_sscanf F
-GLIBC_2.17 __nldbl__IO_vfprintf F
-GLIBC_2.17 __nldbl__IO_vfscanf F
-GLIBC_2.17 __nldbl__IO_vsprintf F
-GLIBC_2.17 __nldbl___asprintf F
-GLIBC_2.17 __nldbl___asprintf_chk F
-GLIBC_2.17 __nldbl___dprintf_chk F
-GLIBC_2.17 __nldbl___fprintf_chk F
-GLIBC_2.17 __nldbl___fwprintf_chk F
-GLIBC_2.17 __nldbl___isoc99_fscanf F
-GLIBC_2.17 __nldbl___isoc99_fwscanf F
-GLIBC_2.17 __nldbl___isoc99_scanf F
-GLIBC_2.17 __nldbl___isoc99_sscanf F
-GLIBC_2.17 __nldbl___isoc99_swscanf F
-GLIBC_2.17 __nldbl___isoc99_vfscanf F
-GLIBC_2.17 __nldbl___isoc99_vfwscanf F
-GLIBC_2.17 __nldbl___isoc99_vscanf F
-GLIBC_2.17 __nldbl___isoc99_vsscanf F
-GLIBC_2.17 __nldbl___isoc99_vswscanf F
-GLIBC_2.17 __nldbl___isoc99_vwscanf F
-GLIBC_2.17 __nldbl___isoc99_wscanf F
-GLIBC_2.17 __nldbl___obstack_printf_chk F
-GLIBC_2.17 __nldbl___obstack_vprintf_chk F
-GLIBC_2.17 __nldbl___printf_chk F
-GLIBC_2.17 __nldbl___printf_fp F
-GLIBC_2.17 __nldbl___snprintf_chk F
-GLIBC_2.17 __nldbl___sprintf_chk F
-GLIBC_2.17 __nldbl___strfmon_l F
-GLIBC_2.17 __nldbl___swprintf_chk F
-GLIBC_2.17 __nldbl___syslog_chk F
-GLIBC_2.17 __nldbl___vasprintf_chk F
-GLIBC_2.17 __nldbl___vdprintf_chk F
-GLIBC_2.17 __nldbl___vfprintf_chk F
-GLIBC_2.17 __nldbl___vfscanf F
-GLIBC_2.17 __nldbl___vfwprintf_chk F
-GLIBC_2.17 __nldbl___vprintf_chk F
-GLIBC_2.17 __nldbl___vsnprintf F
-GLIBC_2.17 __nldbl___vsnprintf_chk F
-GLIBC_2.17 __nldbl___vsprintf_chk F
-GLIBC_2.17 __nldbl___vsscanf F
-GLIBC_2.17 __nldbl___vstrfmon F
-GLIBC_2.17 __nldbl___vstrfmon_l F
-GLIBC_2.17 __nldbl___vswprintf_chk F
-GLIBC_2.17 __nldbl___vsyslog_chk F
-GLIBC_2.17 __nldbl___vwprintf_chk F
-GLIBC_2.17 __nldbl___wprintf_chk F
-GLIBC_2.17 __nldbl_asprintf F
-GLIBC_2.17 __nldbl_dprintf F
-GLIBC_2.17 __nldbl_fprintf F
-GLIBC_2.17 __nldbl_fscanf F
-GLIBC_2.17 __nldbl_fwprintf F
-GLIBC_2.17 __nldbl_fwscanf F
-GLIBC_2.17 __nldbl_obstack_printf F
-GLIBC_2.17 __nldbl_obstack_vprintf F
-GLIBC_2.17 __nldbl_printf F
-GLIBC_2.17 __nldbl_printf_size F
-GLIBC_2.17 __nldbl_scanf F
-GLIBC_2.17 __nldbl_snprintf F
-GLIBC_2.17 __nldbl_sprintf F
-GLIBC_2.17 __nldbl_sscanf F
-GLIBC_2.17 __nldbl_strfmon F
-GLIBC_2.17 __nldbl_strfmon_l F
-GLIBC_2.17 __nldbl_swprintf F
-GLIBC_2.17 __nldbl_swscanf F
-GLIBC_2.17 __nldbl_syslog F
-GLIBC_2.17 __nldbl_vasprintf F
-GLIBC_2.17 __nldbl_vdprintf F
-GLIBC_2.17 __nldbl_vfprintf F
-GLIBC_2.17 __nldbl_vfscanf F
-GLIBC_2.17 __nldbl_vfwprintf F
-GLIBC_2.17 __nldbl_vfwscanf F
-GLIBC_2.17 __nldbl_vprintf F
-GLIBC_2.17 __nldbl_vscanf F
-GLIBC_2.17 __nldbl_vsnprintf F
-GLIBC_2.17 __nldbl_vsprintf F
-GLIBC_2.17 __nldbl_vsscanf F
-GLIBC_2.17 __nldbl_vswprintf F
-GLIBC_2.17 __nldbl_vswscanf F
-GLIBC_2.17 __nldbl_vsyslog F
-GLIBC_2.17 __nldbl_vwprintf F
-GLIBC_2.17 __nldbl_vwscanf F
-GLIBC_2.17 __nldbl_wprintf F
-GLIBC_2.17 __nldbl_wscanf F
-GLIBC_2.17 __nss_configure_lookup F
-GLIBC_2.17 __nss_database_lookup F
-GLIBC_2.17 __nss_group_lookup F
-GLIBC_2.17 __nss_hostname_digits_dots F
-GLIBC_2.17 __nss_hosts_lookup F
-GLIBC_2.17 __nss_next F
-GLIBC_2.17 __nss_passwd_lookup F
-GLIBC_2.17 __obstack_printf_chk F
-GLIBC_2.17 __obstack_vprintf_chk F
-GLIBC_2.17 __open F
-GLIBC_2.17 __open64 F
-GLIBC_2.17 __open64_2 F
-GLIBC_2.17 __open_2 F
-GLIBC_2.17 __openat64_2 F
-GLIBC_2.17 __openat_2 F
-GLIBC_2.17 __overflow F
-GLIBC_2.17 __pipe F
-GLIBC_2.17 __poll F
-GLIBC_2.17 __poll_chk F
-GLIBC_2.17 __posix_getopt F
-GLIBC_2.17 __ppc_get_timebase_freq F
-GLIBC_2.17 __ppoll_chk F
-GLIBC_2.17 __pread64 F
-GLIBC_2.17 __pread64_chk F
-GLIBC_2.17 __pread_chk F
-GLIBC_2.17 __printf_chk F
-GLIBC_2.17 __printf_fp F
-GLIBC_2.17 __profile_frequency F
-GLIBC_2.17 __progname D 0x8
-GLIBC_2.17 __progname_full D 0x8
-GLIBC_2.17 __ptsname_r_chk F
-GLIBC_2.17 __pwrite64 F
-GLIBC_2.17 __rawmemchr F
-GLIBC_2.17 __rcmd_errstr D 0x8
-GLIBC_2.17 __read F
-GLIBC_2.17 __read_chk F
-GLIBC_2.17 __readlink_chk F
-GLIBC_2.17 __readlinkat_chk F
-GLIBC_2.17 __realloc_hook D 0x8
-GLIBC_2.17 __realpath_chk F
-GLIBC_2.17 __recv_chk F
-GLIBC_2.17 __recvfrom_chk F
-GLIBC_2.17 __register_atfork F
-GLIBC_2.17 __res_init F
-GLIBC_2.17 __res_nclose F
-GLIBC_2.17 __res_ninit F
-GLIBC_2.17 __res_randomid F
-GLIBC_2.17 __res_state F
-GLIBC_2.17 __rpc_thread_createerr F
-GLIBC_2.17 __rpc_thread_svc_fdset F
-GLIBC_2.17 __rpc_thread_svc_max_pollfd F
-GLIBC_2.17 __rpc_thread_svc_pollfd F
-GLIBC_2.17 __sbrk F
-GLIBC_2.17 __sched_cpualloc F
-GLIBC_2.17 __sched_cpucount F
-GLIBC_2.17 __sched_cpufree F
-GLIBC_2.17 __sched_get_priority_max F
-GLIBC_2.17 __sched_get_priority_min F
-GLIBC_2.17 __sched_getparam F
-GLIBC_2.17 __sched_getscheduler F
-GLIBC_2.17 __sched_setscheduler F
-GLIBC_2.17 __sched_yield F
-GLIBC_2.17 __select F
-GLIBC_2.17 __send F
-GLIBC_2.17 __setmntent F
-GLIBC_2.17 __setpgid F
-GLIBC_2.17 __sigaction F
-GLIBC_2.17 __sigaddset F
-GLIBC_2.17 __sigdelset F
-GLIBC_2.17 __sigismember F
-GLIBC_2.17 __signbit F
-GLIBC_2.17 __signbitf F
-GLIBC_2.17 __signbitl F
-GLIBC_2.17 __sigpause F
-GLIBC_2.17 __sigsetjmp F
-GLIBC_2.17 __sigsuspend F
-GLIBC_2.17 __snprintf_chk F
-GLIBC_2.17 __sprintf_chk F
-GLIBC_2.17 __stack_chk_fail F
-GLIBC_2.17 __statfs F
-GLIBC_2.17 __stpcpy F
-GLIBC_2.17 __stpcpy_chk F
-GLIBC_2.17 __stpcpy_small F
-GLIBC_2.17 __stpncpy F
-GLIBC_2.17 __stpncpy_chk F
-GLIBC_2.17 __strcasecmp F
-GLIBC_2.17 __strcasecmp_l F
-GLIBC_2.17 __strcasestr F
-GLIBC_2.17 __strcat_chk F
-GLIBC_2.17 __strcoll_l F
-GLIBC_2.17 __strcpy_chk F
-GLIBC_2.17 __strcpy_small F
-GLIBC_2.17 __strcspn_c1 F
-GLIBC_2.17 __strcspn_c2 F
-GLIBC_2.17 __strcspn_c3 F
-GLIBC_2.17 __strdup F
-GLIBC_2.17 __strerror_r F
-GLIBC_2.17 __strfmon_l F
-GLIBC_2.17 __strftime_l F
-GLIBC_2.17 __strncasecmp_l F
-GLIBC_2.17 __strncat_chk F
-GLIBC_2.17 __strncpy_chk F
-GLIBC_2.17 __strndup F
-GLIBC_2.17 __strpbrk_c2 F
-GLIBC_2.17 __strpbrk_c3 F
-GLIBC_2.17 __strsep_1c F
-GLIBC_2.17 __strsep_2c F
-GLIBC_2.17 __strsep_3c F
-GLIBC_2.17 __strsep_g F
-GLIBC_2.17 __strspn_c1 F
-GLIBC_2.17 __strspn_c2 F
-GLIBC_2.17 __strspn_c3 F
-GLIBC_2.17 __strtod_internal F
-GLIBC_2.17 __strtod_l F
-GLIBC_2.17 __strtof_internal F
-GLIBC_2.17 __strtof_l F
-GLIBC_2.17 __strtok_r F
-GLIBC_2.17 __strtok_r_1c F
-GLIBC_2.17 __strtol_internal F
-GLIBC_2.17 __strtol_l F
-GLIBC_2.17 __strtold_internal F
-GLIBC_2.17 __strtold_l F
-GLIBC_2.17 __strtoll_internal F
-GLIBC_2.17 __strtoll_l F
-GLIBC_2.17 __strtoul_internal F
-GLIBC_2.17 __strtoul_l F
-GLIBC_2.17 __strtoull_internal F
-GLIBC_2.17 __strtoull_l F
-GLIBC_2.17 __strverscmp F
-GLIBC_2.17 __strxfrm_l F
-GLIBC_2.17 __swprintf_chk F
-GLIBC_2.17 __sysconf F
-GLIBC_2.17 __sysctl F
-GLIBC_2.17 __syslog_chk F
-GLIBC_2.17 __sysv_signal F
-GLIBC_2.17 __timezone D 0x8
-GLIBC_2.17 __toascii_l F
-GLIBC_2.17 __tolower_l F
-GLIBC_2.17 __toupper_l F
-GLIBC_2.17 __towctrans F
-GLIBC_2.17 __towctrans_l F
-GLIBC_2.17 __towlower_l F
-GLIBC_2.17 __towupper_l F
-GLIBC_2.17 __ttyname_r_chk F
-GLIBC_2.17 __tzname D 0x10
-GLIBC_2.17 __uflow F
-GLIBC_2.17 __underflow F
-GLIBC_2.17 __uselocale F
-GLIBC_2.17 __vasprintf_chk F
-GLIBC_2.17 __vdprintf_chk F
-GLIBC_2.17 __vfork F
-GLIBC_2.17 __vfprintf_chk F
-GLIBC_2.17 __vfscanf F
-GLIBC_2.17 __vfwprintf_chk F
-GLIBC_2.17 __vprintf_chk F
-GLIBC_2.17 __vsnprintf F
-GLIBC_2.17 __vsnprintf_chk F
-GLIBC_2.17 __vsprintf_chk F
-GLIBC_2.17 __vsscanf F
-GLIBC_2.17 __vswprintf_chk F
-GLIBC_2.17 __vsyslog_chk F
-GLIBC_2.17 __vwprintf_chk F
-GLIBC_2.17 __wait F
-GLIBC_2.17 __waitpid F
-GLIBC_2.17 __wcpcpy_chk F
-GLIBC_2.17 __wcpncpy_chk F
-GLIBC_2.17 __wcrtomb_chk F
-GLIBC_2.17 __wcscasecmp_l F
-GLIBC_2.17 __wcscat_chk F
-GLIBC_2.17 __wcscoll_l F
-GLIBC_2.17 __wcscpy_chk F
-GLIBC_2.17 __wcsftime_l F
-GLIBC_2.17 __wcsncasecmp_l F
-GLIBC_2.17 __wcsncat_chk F
-GLIBC_2.17 __wcsncpy_chk F
-GLIBC_2.17 __wcsnrtombs_chk F
-GLIBC_2.17 __wcsrtombs_chk F
-GLIBC_2.17 __wcstod_internal F
-GLIBC_2.17 __wcstod_l F
-GLIBC_2.17 __wcstof_internal F
-GLIBC_2.17 __wcstof_l F
-GLIBC_2.17 __wcstol_internal F
-GLIBC_2.17 __wcstol_l F
-GLIBC_2.17 __wcstold_internal F
-GLIBC_2.17 __wcstold_l F
-GLIBC_2.17 __wcstoll_internal F
-GLIBC_2.17 __wcstoll_l F
-GLIBC_2.17 __wcstombs_chk F
-GLIBC_2.17 __wcstoul_internal F
-GLIBC_2.17 __wcstoul_l F
-GLIBC_2.17 __wcstoull_internal F
-GLIBC_2.17 __wcstoull_l F
-GLIBC_2.17 __wcsxfrm_l F
-GLIBC_2.17 __wctomb_chk F
-GLIBC_2.17 __wctrans_l F
-GLIBC_2.17 __wctype_l F
-GLIBC_2.17 __wmemcpy_chk F
-GLIBC_2.17 __wmemmove_chk F
-GLIBC_2.17 __wmempcpy_chk F
-GLIBC_2.17 __wmemset_chk F
-GLIBC_2.17 __woverflow F
-GLIBC_2.17 __wprintf_chk F
-GLIBC_2.17 __write F
-GLIBC_2.17 __wuflow F
-GLIBC_2.17 __wunderflow F
-GLIBC_2.17 __xmknod F
-GLIBC_2.17 __xmknodat F
-GLIBC_2.17 __xpg_basename F
-GLIBC_2.17 __xpg_sigpause F
-GLIBC_2.17 __xpg_strerror_r F
-GLIBC_2.17 __xstat F
-GLIBC_2.17 __xstat64 F
-GLIBC_2.17 _authenticate F
-GLIBC_2.17 _dl_mcount_wrapper F
-GLIBC_2.17 _dl_mcount_wrapper_check F
-GLIBC_2.17 _environ D 0x8
-GLIBC_2.17 _exit F
-GLIBC_2.17 _flushlbf F
-GLIBC_2.17 _libc_intl_domainname D 0x5
-GLIBC_2.17 _longjmp F
-GLIBC_2.17 _mcleanup F
-GLIBC_2.17 _mcount F
-GLIBC_2.17 _nl_default_dirname D 0x12
-GLIBC_2.17 _nl_domain_bindings D 0x8
-GLIBC_2.17 _nl_msg_cat_cntr D 0x4
-GLIBC_2.17 _null_auth D 0x18
-GLIBC_2.17 _obstack_allocated_p F
-GLIBC_2.17 _obstack_begin F
-GLIBC_2.17 _obstack_begin_1 F
-GLIBC_2.17 _obstack_free F
-GLIBC_2.17 _obstack_memory_used F
-GLIBC_2.17 _obstack_newchunk F
-GLIBC_2.17 _res D 0x238
-GLIBC_2.17 _res_hconf D 0x48
-GLIBC_2.17 _rpc_dtablesize F
-GLIBC_2.17 _seterr_reply F
-GLIBC_2.17 _setjmp F
-GLIBC_2.17 _sys_errlist D 0x438
-GLIBC_2.17 _sys_nerr D 0x4
-GLIBC_2.17 _sys_siglist D 0x208
-GLIBC_2.17 _tolower F
-GLIBC_2.17 _toupper F
-GLIBC_2.17 a64l F
-GLIBC_2.17 abort F
-GLIBC_2.17 abs F
-GLIBC_2.17 accept F
-GLIBC_2.17 accept4 F
-GLIBC_2.17 access F
-GLIBC_2.17 acct F
-GLIBC_2.17 addmntent F
-GLIBC_2.17 addseverity F
-GLIBC_2.17 adjtime F
-GLIBC_2.17 adjtimex F
-GLIBC_2.17 advance F
-GLIBC_2.17 alarm F
-GLIBC_2.17 aligned_alloc F
-GLIBC_2.17 alphasort F
-GLIBC_2.17 alphasort64 F
-GLIBC_2.17 argp_err_exit_status D 0x4
-GLIBC_2.17 argp_error F
-GLIBC_2.17 argp_failure F
-GLIBC_2.17 argp_help F
-GLIBC_2.17 argp_parse F
-GLIBC_2.17 argp_program_bug_address D 0x8
-GLIBC_2.17 argp_program_version D 0x8
-GLIBC_2.17 argp_program_version_hook D 0x8
-GLIBC_2.17 argp_state_help F
-GLIBC_2.17 argp_usage F
-GLIBC_2.17 argz_add F
-GLIBC_2.17 argz_add_sep F
-GLIBC_2.17 argz_append F
-GLIBC_2.17 argz_count F
-GLIBC_2.17 argz_create F
-GLIBC_2.17 argz_create_sep F
-GLIBC_2.17 argz_delete F
-GLIBC_2.17 argz_extract F
-GLIBC_2.17 argz_insert F
-GLIBC_2.17 argz_next F
-GLIBC_2.17 argz_replace F
-GLIBC_2.17 argz_stringify F
-GLIBC_2.17 asctime F
-GLIBC_2.17 asctime_r F
-GLIBC_2.17 asprintf F
-GLIBC_2.17 atof F
-GLIBC_2.17 atoi F
-GLIBC_2.17 atol F
-GLIBC_2.17 atoll F
-GLIBC_2.17 authdes_create F
-GLIBC_2.17 authdes_getucred F
-GLIBC_2.17 authdes_pk_create F
-GLIBC_2.17 authnone_create F
-GLIBC_2.17 authunix_create F
-GLIBC_2.17 authunix_create_default F
-GLIBC_2.17 backtrace F
-GLIBC_2.17 backtrace_symbols F
-GLIBC_2.17 backtrace_symbols_fd F
-GLIBC_2.17 basename F
-GLIBC_2.17 bcmp F
-GLIBC_2.17 bcopy F
-GLIBC_2.17 bdflush F
-GLIBC_2.17 bind F
-GLIBC_2.17 bind_textdomain_codeset F
-GLIBC_2.17 bindresvport F
-GLIBC_2.17 bindtextdomain F
-GLIBC_2.17 brk F
-GLIBC_2.17 bsd_signal F
-GLIBC_2.17 bsearch F
-GLIBC_2.17 btowc F
-GLIBC_2.17 bzero F
-GLIBC_2.17 c16rtomb F
-GLIBC_2.17 c32rtomb F
-GLIBC_2.17 calloc F
-GLIBC_2.17 callrpc F
-GLIBC_2.17 canonicalize_file_name F
-GLIBC_2.17 capget F
-GLIBC_2.17 capset F
-GLIBC_2.17 catclose F
-GLIBC_2.17 catgets F
-GLIBC_2.17 catopen F
-GLIBC_2.17 cbc_crypt F
-GLIBC_2.17 cfgetispeed F
-GLIBC_2.17 cfgetospeed F
-GLIBC_2.17 cfmakeraw F
-GLIBC_2.17 cfree F
-GLIBC_2.17 cfsetispeed F
-GLIBC_2.17 cfsetospeed F
-GLIBC_2.17 cfsetspeed F
-GLIBC_2.17 chdir F
-GLIBC_2.17 chflags F
-GLIBC_2.17 chmod F
-GLIBC_2.17 chown F
-GLIBC_2.17 chroot F
-GLIBC_2.17 clearenv F
-GLIBC_2.17 clearerr F
-GLIBC_2.17 clearerr_unlocked F
-GLIBC_2.17 clnt_broadcast F
-GLIBC_2.17 clnt_create F
-GLIBC_2.17 clnt_pcreateerror F
-GLIBC_2.17 clnt_perrno F
-GLIBC_2.17 clnt_perror F
-GLIBC_2.17 clnt_spcreateerror F
-GLIBC_2.17 clnt_sperrno F
-GLIBC_2.17 clnt_sperror F
-GLIBC_2.17 clntraw_create F
-GLIBC_2.17 clnttcp_create F
-GLIBC_2.17 clntudp_bufcreate F
-GLIBC_2.17 clntudp_create F
-GLIBC_2.17 clntunix_create F
-GLIBC_2.17 clock F
-GLIBC_2.17 clock_adjtime F
-GLIBC_2.17 clock_getcpuclockid F
-GLIBC_2.17 clock_getres F
-GLIBC_2.17 clock_gettime F
-GLIBC_2.17 clock_nanosleep F
-GLIBC_2.17 clock_settime F
-GLIBC_2.17 clone F
-GLIBC_2.17 close F
-GLIBC_2.17 closedir F
-GLIBC_2.17 closelog F
-GLIBC_2.17 confstr F
-GLIBC_2.17 connect F
-GLIBC_2.17 copysign F
-GLIBC_2.17 copysignf F
-GLIBC_2.17 copysignl F
-GLIBC_2.17 creat F
-GLIBC_2.17 creat64 F
-GLIBC_2.17 create_module F
-GLIBC_2.17 ctermid F
-GLIBC_2.17 ctime F
-GLIBC_2.17 ctime_r F
-GLIBC_2.17 cuserid F
-GLIBC_2.17 daemon F
-GLIBC_2.17 daylight D 0x4
-GLIBC_2.17 dcgettext F
-GLIBC_2.17 dcngettext F
-GLIBC_2.17 delete_module F
-GLIBC_2.17 des_setparity F
-GLIBC_2.17 dgettext F
-GLIBC_2.17 difftime F
-GLIBC_2.17 dirfd F
-GLIBC_2.17 dirname F
-GLIBC_2.17 div F
-GLIBC_2.17 dl_iterate_phdr F
-GLIBC_2.17 dngettext F
-GLIBC_2.17 dprintf F
-GLIBC_2.17 drand48 F
-GLIBC_2.17 drand48_r F
-GLIBC_2.17 dup F
-GLIBC_2.17 dup2 F
-GLIBC_2.17 dup3 F
-GLIBC_2.17 duplocale F
-GLIBC_2.17 dysize F
-GLIBC_2.17 eaccess F
-GLIBC_2.17 ecb_crypt F
-GLIBC_2.17 ecvt F
-GLIBC_2.17 ecvt_r F
-GLIBC_2.17 endaliasent F
-GLIBC_2.17 endfsent F
-GLIBC_2.17 endgrent F
-GLIBC_2.17 endhostent F
-GLIBC_2.17 endmntent F
-GLIBC_2.17 endnetent F
-GLIBC_2.17 endnetgrent F
-GLIBC_2.17 endprotoent F
-GLIBC_2.17 endpwent F
-GLIBC_2.17 endrpcent F
-GLIBC_2.17 endservent F
-GLIBC_2.17 endsgent F
-GLIBC_2.17 endspent F
-GLIBC_2.17 endttyent F
-GLIBC_2.17 endusershell F
-GLIBC_2.17 endutent F
-GLIBC_2.17 endutxent F
-GLIBC_2.17 environ D 0x8
-GLIBC_2.17 envz_add F
-GLIBC_2.17 envz_entry F
-GLIBC_2.17 envz_get F
-GLIBC_2.17 envz_merge F
-GLIBC_2.17 envz_remove F
-GLIBC_2.17 envz_strip F
-GLIBC_2.17 epoll_create F
-GLIBC_2.17 epoll_create1 F
-GLIBC_2.17 epoll_ctl F
-GLIBC_2.17 epoll_pwait F
-GLIBC_2.17 epoll_wait F
-GLIBC_2.17 erand48 F
-GLIBC_2.17 erand48_r F
-GLIBC_2.17 err F
-GLIBC_2.17 error F
-GLIBC_2.17 error_at_line F
-GLIBC_2.17 error_message_count D 0x4
-GLIBC_2.17 error_one_per_line D 0x4
-GLIBC_2.17 error_print_progname D 0x8
-GLIBC_2.17 errx F
-GLIBC_2.17 ether_aton F
-GLIBC_2.17 ether_aton_r F
-GLIBC_2.17 ether_hostton F
-GLIBC_2.17 ether_line F
-GLIBC_2.17 ether_ntoa F
-GLIBC_2.17 ether_ntoa_r F
-GLIBC_2.17 ether_ntohost F
-GLIBC_2.17 euidaccess F
-GLIBC_2.17 eventfd F
-GLIBC_2.17 eventfd_read F
-GLIBC_2.17 eventfd_write F
-GLIBC_2.17 execl F
-GLIBC_2.17 execle F
-GLIBC_2.17 execlp F
-GLIBC_2.17 execv F
-GLIBC_2.17 execve F
-GLIBC_2.17 execvp F
-GLIBC_2.17 execvpe F
-GLIBC_2.17 exit F
-GLIBC_2.17 faccessat F
-GLIBC_2.17 fallocate F
-GLIBC_2.17 fallocate64 F
-GLIBC_2.17 fanotify_init F
-GLIBC_2.17 fanotify_mark F
-GLIBC_2.17 fattach F
-GLIBC_2.17 fchdir F
-GLIBC_2.17 fchflags F
-GLIBC_2.17 fchmod F
-GLIBC_2.17 fchmodat F
-GLIBC_2.17 fchown F
-GLIBC_2.17 fchownat F
-GLIBC_2.17 fclose F
-GLIBC_2.17 fcloseall F
-GLIBC_2.17 fcntl F
-GLIBC_2.17 fcvt F
-GLIBC_2.17 fcvt_r F
-GLIBC_2.17 fdatasync F
-GLIBC_2.17 fdetach F
-GLIBC_2.17 fdopen F
-GLIBC_2.17 fdopendir F
-GLIBC_2.17 feof F
-GLIBC_2.17 feof_unlocked F
-GLIBC_2.17 ferror F
-GLIBC_2.17 ferror_unlocked F
-GLIBC_2.17 fexecve F
-GLIBC_2.17 fflush F
-GLIBC_2.17 fflush_unlocked F
-GLIBC_2.17 ffs F
-GLIBC_2.17 ffsl F
-GLIBC_2.17 ffsll F
-GLIBC_2.17 fgetc F
-GLIBC_2.17 fgetc_unlocked F
-GLIBC_2.17 fgetgrent F
-GLIBC_2.17 fgetgrent_r F
-GLIBC_2.17 fgetpos F
-GLIBC_2.17 fgetpos64 F
-GLIBC_2.17 fgetpwent F
-GLIBC_2.17 fgetpwent_r F
-GLIBC_2.17 fgets F
-GLIBC_2.17 fgets_unlocked F
-GLIBC_2.17 fgetsgent F
-GLIBC_2.17 fgetsgent_r F
-GLIBC_2.17 fgetspent F
-GLIBC_2.17 fgetspent_r F
-GLIBC_2.17 fgetwc F
-GLIBC_2.17 fgetwc_unlocked F
-GLIBC_2.17 fgetws F
-GLIBC_2.17 fgetws_unlocked F
-GLIBC_2.17 fgetxattr F
-GLIBC_2.17 fileno F
-GLIBC_2.17 fileno_unlocked F
-GLIBC_2.17 finite F
-GLIBC_2.17 finitef F
-GLIBC_2.17 finitel F
-GLIBC_2.17 flistxattr F
-GLIBC_2.17 flock F
-GLIBC_2.17 flockfile F
-GLIBC_2.17 fmemopen F
-GLIBC_2.17 fmtmsg F
-GLIBC_2.17 fnmatch F
-GLIBC_2.17 fopen F
-GLIBC_2.17 fopen64 F
-GLIBC_2.17 fopencookie F
-GLIBC_2.17 fork F
-GLIBC_2.17 fpathconf F
-GLIBC_2.17 fprintf F
-GLIBC_2.17 fputc F
-GLIBC_2.17 fputc_unlocked F
-GLIBC_2.17 fputs F
-GLIBC_2.17 fputs_unlocked F
-GLIBC_2.17 fputwc F
-GLIBC_2.17 fputwc_unlocked F
-GLIBC_2.17 fputws F
-GLIBC_2.17 fputws_unlocked F
-GLIBC_2.17 fread F
-GLIBC_2.17 fread_unlocked F
-GLIBC_2.17 free F
-GLIBC_2.17 freeaddrinfo F
-GLIBC_2.17 freeifaddrs F
-GLIBC_2.17 freelocale F
-GLIBC_2.17 fremovexattr F
-GLIBC_2.17 freopen F
-GLIBC_2.17 freopen64 F
-GLIBC_2.17 frexp F
-GLIBC_2.17 frexpf F
-GLIBC_2.17 frexpl F
-GLIBC_2.17 fscanf F
-GLIBC_2.17 fseek F
-GLIBC_2.17 fseeko F
-GLIBC_2.17 fseeko64 F
-GLIBC_2.17 fsetpos F
-GLIBC_2.17 fsetpos64 F
-GLIBC_2.17 fsetxattr F
-GLIBC_2.17 fstatfs F
-GLIBC_2.17 fstatfs64 F
-GLIBC_2.17 fstatvfs F
-GLIBC_2.17 fstatvfs64 F
-GLIBC_2.17 fsync F
-GLIBC_2.17 ftell F
-GLIBC_2.17 ftello F
-GLIBC_2.17 ftello64 F
-GLIBC_2.17 ftime F
-GLIBC_2.17 ftok F
-GLIBC_2.17 ftruncate F
-GLIBC_2.17 ftruncate64 F
-GLIBC_2.17 ftrylockfile F
-GLIBC_2.17 fts_children F
-GLIBC_2.17 fts_close F
-GLIBC_2.17 fts_open F
-GLIBC_2.17 fts_read F
-GLIBC_2.17 fts_set F
-GLIBC_2.17 ftw F
-GLIBC_2.17 ftw64 F
-GLIBC_2.17 funlockfile F
-GLIBC_2.17 futimens F
-GLIBC_2.17 futimes F
-GLIBC_2.17 futimesat F
-GLIBC_2.17 fwide F
-GLIBC_2.17 fwprintf F
-GLIBC_2.17 fwrite F
-GLIBC_2.17 fwrite_unlocked F
-GLIBC_2.17 fwscanf F
-GLIBC_2.17 gai_strerror F
-GLIBC_2.17 gcvt F
-GLIBC_2.17 get_avphys_pages F
-GLIBC_2.17 get_current_dir_name F
-GLIBC_2.17 get_kernel_syms F
-GLIBC_2.17 get_myaddress F
-GLIBC_2.17 get_nprocs F
-GLIBC_2.17 get_nprocs_conf F
-GLIBC_2.17 get_phys_pages F
-GLIBC_2.17 getaddrinfo F
-GLIBC_2.17 getaliasbyname F
-GLIBC_2.17 getaliasbyname_r F
-GLIBC_2.17 getaliasent F
-GLIBC_2.17 getaliasent_r F
-GLIBC_2.17 getauxval F
-GLIBC_2.17 getc F
-GLIBC_2.17 getc_unlocked F
-GLIBC_2.17 getchar F
-GLIBC_2.17 getchar_unlocked F
-GLIBC_2.17 getcontext F
-GLIBC_2.17 getcwd F
-GLIBC_2.17 getdate F
-GLIBC_2.17 getdate_err D 0x4
-GLIBC_2.17 getdate_r F
-GLIBC_2.17 getdelim F
-GLIBC_2.17 getdirentries F
-GLIBC_2.17 getdirentries64 F
-GLIBC_2.17 getdomainname F
-GLIBC_2.17 getdtablesize F
-GLIBC_2.17 getegid F
-GLIBC_2.17 getenv F
-GLIBC_2.17 geteuid F
-GLIBC_2.17 getfsent F
-GLIBC_2.17 getfsfile F
-GLIBC_2.17 getfsspec F
-GLIBC_2.17 getgid F
-GLIBC_2.17 getgrent F
-GLIBC_2.17 getgrent_r F
-GLIBC_2.17 getgrgid F
-GLIBC_2.17 getgrgid_r F
-GLIBC_2.17 getgrnam F
-GLIBC_2.17 getgrnam_r F
-GLIBC_2.17 getgrouplist F
-GLIBC_2.17 getgroups F
-GLIBC_2.17 gethostbyaddr F
-GLIBC_2.17 gethostbyaddr_r F
-GLIBC_2.17 gethostbyname F
-GLIBC_2.17 gethostbyname2 F
-GLIBC_2.17 gethostbyname2_r F
-GLIBC_2.17 gethostbyname_r F
-GLIBC_2.17 gethostent F
-GLIBC_2.17 gethostent_r F
-GLIBC_2.17 gethostid F
-GLIBC_2.17 gethostname F
-GLIBC_2.17 getifaddrs F
-GLIBC_2.17 getipv4sourcefilter F
-GLIBC_2.17 getitimer F
-GLIBC_2.17 getline F
-GLIBC_2.17 getloadavg F
-GLIBC_2.17 getlogin F
-GLIBC_2.17 getlogin_r F
-GLIBC_2.17 getmntent F
-GLIBC_2.17 getmntent_r F
-GLIBC_2.17 getmsg F
-GLIBC_2.17 getnameinfo F
-GLIBC_2.17 getnetbyaddr F
-GLIBC_2.17 getnetbyaddr_r F
-GLIBC_2.17 getnetbyname F
-GLIBC_2.17 getnetbyname_r F
-GLIBC_2.17 getnetent F
-GLIBC_2.17 getnetent_r F
-GLIBC_2.17 getnetgrent F
-GLIBC_2.17 getnetgrent_r F
-GLIBC_2.17 getnetname F
-GLIBC_2.17 getopt F
-GLIBC_2.17 getopt_long F
-GLIBC_2.17 getopt_long_only F
-GLIBC_2.17 getpagesize F
-GLIBC_2.17 getpass F
-GLIBC_2.17 getpeername F
-GLIBC_2.17 getpgid F
-GLIBC_2.17 getpgrp F
-GLIBC_2.17 getpid F
-GLIBC_2.17 getpmsg F
-GLIBC_2.17 getppid F
-GLIBC_2.17 getpriority F
-GLIBC_2.17 getprotobyname F
-GLIBC_2.17 getprotobyname_r F
-GLIBC_2.17 getprotobynumber F
-GLIBC_2.17 getprotobynumber_r F
-GLIBC_2.17 getprotoent F
-GLIBC_2.17 getprotoent_r F
-GLIBC_2.17 getpt F
-GLIBC_2.17 getpublickey F
-GLIBC_2.17 getpw F
-GLIBC_2.17 getpwent F
-GLIBC_2.17 getpwent_r F
-GLIBC_2.17 getpwnam F
-GLIBC_2.17 getpwnam_r F
-GLIBC_2.17 getpwuid F
-GLIBC_2.17 getpwuid_r F
-GLIBC_2.17 getresgid F
-GLIBC_2.17 getresuid F
-GLIBC_2.17 getrlimit F
-GLIBC_2.17 getrlimit64 F
-GLIBC_2.17 getrpcbyname F
-GLIBC_2.17 getrpcbyname_r F
-GLIBC_2.17 getrpcbynumber F
-GLIBC_2.17 getrpcbynumber_r F
-GLIBC_2.17 getrpcent F
-GLIBC_2.17 getrpcent_r F
-GLIBC_2.17 getrpcport F
-GLIBC_2.17 getrusage F
-GLIBC_2.17 gets F
-GLIBC_2.17 getsecretkey F
-GLIBC_2.17 getservbyname F
-GLIBC_2.17 getservbyname_r F
-GLIBC_2.17 getservbyport F
-GLIBC_2.17 getservbyport_r F
-GLIBC_2.17 getservent F
-GLIBC_2.17 getservent_r F
-GLIBC_2.17 getsgent F
-GLIBC_2.17 getsgent_r F
-GLIBC_2.17 getsgnam F
-GLIBC_2.17 getsgnam_r F
-GLIBC_2.17 getsid F
-GLIBC_2.17 getsockname F
-GLIBC_2.17 getsockopt F
-GLIBC_2.17 getsourcefilter F
-GLIBC_2.17 getspent F
-GLIBC_2.17 getspent_r F
-GLIBC_2.17 getspnam F
-GLIBC_2.17 getspnam_r F
-GLIBC_2.17 getsubopt F
-GLIBC_2.17 gettext F
-GLIBC_2.17 gettimeofday F
-GLIBC_2.17 getttyent F
-GLIBC_2.17 getttynam F
-GLIBC_2.17 getuid F
-GLIBC_2.17 getusershell F
-GLIBC_2.17 getutent F
-GLIBC_2.17 getutent_r F
-GLIBC_2.17 getutid F
-GLIBC_2.17 getutid_r F
-GLIBC_2.17 getutline F
-GLIBC_2.17 getutline_r F
-GLIBC_2.17 getutmp F
-GLIBC_2.17 getutmpx F
-GLIBC_2.17 getutxent F
-GLIBC_2.17 getutxid F
-GLIBC_2.17 getutxline F
-GLIBC_2.17 getw F
-GLIBC_2.17 getwc F
-GLIBC_2.17 getwc_unlocked F
-GLIBC_2.17 getwchar F
-GLIBC_2.17 getwchar_unlocked F
-GLIBC_2.17 getwd F
-GLIBC_2.17 getxattr F
-GLIBC_2.17 glob F
-GLIBC_2.17 glob64 F
-GLIBC_2.17 glob_pattern_p F
-GLIBC_2.17 globfree F
-GLIBC_2.17 globfree64 F
-GLIBC_2.17 gmtime F
-GLIBC_2.17 gmtime_r F
-GLIBC_2.17 gnu_dev_major F
-GLIBC_2.17 gnu_dev_makedev F
-GLIBC_2.17 gnu_dev_minor F
-GLIBC_2.17 gnu_get_libc_release F
-GLIBC_2.17 gnu_get_libc_version F
-GLIBC_2.17 grantpt F
-GLIBC_2.17 group_member F
-GLIBC_2.17 gsignal F
-GLIBC_2.17 gtty F
-GLIBC_2.17 h_errlist D 0x28
-GLIBC_2.17 h_nerr D 0x4
-GLIBC_2.17 hasmntopt F
-GLIBC_2.17 hcreate F
-GLIBC_2.17 hcreate_r F
-GLIBC_2.17 hdestroy F
-GLIBC_2.17 hdestroy_r F
-GLIBC_2.17 herror F
-GLIBC_2.17 host2netname F
-GLIBC_2.17 hsearch F
-GLIBC_2.17 hsearch_r F
-GLIBC_2.17 hstrerror F
-GLIBC_2.17 htonl F
-GLIBC_2.17 htons F
-GLIBC_2.17 iconv F
-GLIBC_2.17 iconv_close F
-GLIBC_2.17 iconv_open F
-GLIBC_2.17 if_freenameindex F
-GLIBC_2.17 if_indextoname F
-GLIBC_2.17 if_nameindex F
-GLIBC_2.17 if_nametoindex F
-GLIBC_2.17 imaxabs F
-GLIBC_2.17 imaxdiv F
-GLIBC_2.17 in6addr_any D 0x10
-GLIBC_2.17 in6addr_loopback D 0x10
-GLIBC_2.17 index F
-GLIBC_2.17 inet6_opt_append F
-GLIBC_2.17 inet6_opt_find F
-GLIBC_2.17 inet6_opt_finish F
-GLIBC_2.17 inet6_opt_get_val F
-GLIBC_2.17 inet6_opt_init F
-GLIBC_2.17 inet6_opt_next F
-GLIBC_2.17 inet6_opt_set_val F
-GLIBC_2.17 inet6_option_alloc F
-GLIBC_2.17 inet6_option_append F
-GLIBC_2.17 inet6_option_find F
-GLIBC_2.17 inet6_option_init F
-GLIBC_2.17 inet6_option_next F
-GLIBC_2.17 inet6_option_space F
-GLIBC_2.17 inet6_rth_add F
-GLIBC_2.17 inet6_rth_getaddr F
-GLIBC_2.17 inet6_rth_init F
-GLIBC_2.17 inet6_rth_reverse F
-GLIBC_2.17 inet6_rth_segments F
-GLIBC_2.17 inet6_rth_space F
-GLIBC_2.17 inet_addr F
-GLIBC_2.17 inet_aton F
-GLIBC_2.17 inet_lnaof F
-GLIBC_2.17 inet_makeaddr F
-GLIBC_2.17 inet_netof F
-GLIBC_2.17 inet_network F
-GLIBC_2.17 inet_nsap_addr F
-GLIBC_2.17 inet_nsap_ntoa F
-GLIBC_2.17 inet_ntoa F
-GLIBC_2.17 inet_ntop F
-GLIBC_2.17 inet_pton F
-GLIBC_2.17 init_module F
-GLIBC_2.17 initgroups F
-GLIBC_2.17 initstate F
-GLIBC_2.17 initstate_r F
-GLIBC_2.17 innetgr F
-GLIBC_2.17 inotify_add_watch F
-GLIBC_2.17 inotify_init F
-GLIBC_2.17 inotify_init1 F
-GLIBC_2.17 inotify_rm_watch F
-GLIBC_2.17 insque F
-GLIBC_2.17 ioctl F
-GLIBC_2.17 iruserok F
-GLIBC_2.17 iruserok_af F
-GLIBC_2.17 isalnum F
-GLIBC_2.17 isalnum_l F
-GLIBC_2.17 isalpha F
-GLIBC_2.17 isalpha_l F
-GLIBC_2.17 isascii F
-GLIBC_2.17 isastream F
-GLIBC_2.17 isatty F
-GLIBC_2.17 isblank F
-GLIBC_2.17 isblank_l F
-GLIBC_2.17 iscntrl F
-GLIBC_2.17 iscntrl_l F
-GLIBC_2.17 isctype F
-GLIBC_2.17 isdigit F
-GLIBC_2.17 isdigit_l F
-GLIBC_2.17 isfdtype F
-GLIBC_2.17 isgraph F
-GLIBC_2.17 isgraph_l F
-GLIBC_2.17 isinf F
-GLIBC_2.17 isinff F
-GLIBC_2.17 isinfl F
-GLIBC_2.17 islower F
-GLIBC_2.17 islower_l F
-GLIBC_2.17 isnan F
-GLIBC_2.17 isnanf F
-GLIBC_2.17 isnanl F
-GLIBC_2.17 isprint F
-GLIBC_2.17 isprint_l F
-GLIBC_2.17 ispunct F
-GLIBC_2.17 ispunct_l F
-GLIBC_2.17 isspace F
-GLIBC_2.17 isspace_l F
-GLIBC_2.17 isupper F
-GLIBC_2.17 isupper_l F
-GLIBC_2.17 iswalnum F
-GLIBC_2.17 iswalnum_l F
-GLIBC_2.17 iswalpha F
-GLIBC_2.17 iswalpha_l F
-GLIBC_2.17 iswblank F
-GLIBC_2.17 iswblank_l F
-GLIBC_2.17 iswcntrl F
-GLIBC_2.17 iswcntrl_l F
-GLIBC_2.17 iswctype F
-GLIBC_2.17 iswctype_l F
-GLIBC_2.17 iswdigit F
-GLIBC_2.17 iswdigit_l F
-GLIBC_2.17 iswgraph F
-GLIBC_2.17 iswgraph_l F
-GLIBC_2.17 iswlower F
-GLIBC_2.17 iswlower_l F
-GLIBC_2.17 iswprint F
-GLIBC_2.17 iswprint_l F
-GLIBC_2.17 iswpunct F
-GLIBC_2.17 iswpunct_l F
-GLIBC_2.17 iswspace F
-GLIBC_2.17 iswspace_l F
-GLIBC_2.17 iswupper F
-GLIBC_2.17 iswupper_l F
-GLIBC_2.17 iswxdigit F
-GLIBC_2.17 iswxdigit_l F
-GLIBC_2.17 isxdigit F
-GLIBC_2.17 isxdigit_l F
-GLIBC_2.17 jrand48 F
-GLIBC_2.17 jrand48_r F
-GLIBC_2.17 key_decryptsession F
-GLIBC_2.17 key_decryptsession_pk F
-GLIBC_2.17 key_encryptsession F
-GLIBC_2.17 key_encryptsession_pk F
-GLIBC_2.17 key_gendes F
-GLIBC_2.17 key_get_conv F
-GLIBC_2.17 key_secretkey_is_set F
-GLIBC_2.17 key_setnet F
-GLIBC_2.17 key_setsecret F
-GLIBC_2.17 kill F
-GLIBC_2.17 killpg F
-GLIBC_2.17 klogctl F
-GLIBC_2.17 l64a F
-GLIBC_2.17 labs F
-GLIBC_2.17 lchmod F
-GLIBC_2.17 lchown F
-GLIBC_2.17 lckpwdf F
-GLIBC_2.17 lcong48 F
-GLIBC_2.17 lcong48_r F
-GLIBC_2.17 ldexp F
-GLIBC_2.17 ldexpf F
-GLIBC_2.17 ldexpl F
-GLIBC_2.17 ldiv F
-GLIBC_2.17 lfind F
-GLIBC_2.17 lgetxattr F
-GLIBC_2.17 link F
-GLIBC_2.17 linkat F
-GLIBC_2.17 listen F
-GLIBC_2.17 listxattr F
-GLIBC_2.17 llabs F
-GLIBC_2.17 lldiv F
-GLIBC_2.17 llistxattr F
-GLIBC_2.17 llseek F
-GLIBC_2.17 loc1 D 0x8
-GLIBC_2.17 loc2 D 0x8
-GLIBC_2.17 localeconv F
-GLIBC_2.17 localtime F
-GLIBC_2.17 localtime_r F
-GLIBC_2.17 lockf F
-GLIBC_2.17 lockf64 F
-GLIBC_2.17 locs D 0x8
-GLIBC_2.17 longjmp F
-GLIBC_2.17 lrand48 F
-GLIBC_2.17 lrand48_r F
-GLIBC_2.17 lremovexattr F
-GLIBC_2.17 lsearch F
-GLIBC_2.17 lseek F
-GLIBC_2.17 lseek64 F
-GLIBC_2.17 lsetxattr F
-GLIBC_2.17 lutimes F
-GLIBC_2.17 madvise F
-GLIBC_2.17 makecontext F
-GLIBC_2.17 mallinfo F
-GLIBC_2.17 malloc F
-GLIBC_2.17 malloc_get_state F
-GLIBC_2.17 malloc_info F
-GLIBC_2.17 malloc_set_state F
-GLIBC_2.17 malloc_stats F
-GLIBC_2.17 malloc_trim F
-GLIBC_2.17 malloc_usable_size F
-GLIBC_2.17 mallopt F
-GLIBC_2.17 mallwatch D 0x8
-GLIBC_2.17 mblen F
-GLIBC_2.17 mbrlen F
-GLIBC_2.17 mbrtoc16 F
-GLIBC_2.17 mbrtoc32 F
-GLIBC_2.17 mbrtowc F
-GLIBC_2.17 mbsinit F
-GLIBC_2.17 mbsnrtowcs F
-GLIBC_2.17 mbsrtowcs F
-GLIBC_2.17 mbstowcs F
-GLIBC_2.17 mbtowc F
-GLIBC_2.17 mcheck F
-GLIBC_2.17 mcheck_check_all F
-GLIBC_2.17 mcheck_pedantic F
-GLIBC_2.17 memalign F
-GLIBC_2.17 memccpy F
-GLIBC_2.17 memchr F
-GLIBC_2.17 memcmp F
-GLIBC_2.17 memcpy F
-GLIBC_2.17 memfrob F
-GLIBC_2.17 memmem F
-GLIBC_2.17 memmove F
-GLIBC_2.17 mempcpy F
-GLIBC_2.17 memrchr F
-GLIBC_2.17 memset F
-GLIBC_2.17 mincore F
-GLIBC_2.17 mkdir F
-GLIBC_2.17 mkdirat F
-GLIBC_2.17 mkdtemp F
-GLIBC_2.17 mkfifo F
-GLIBC_2.17 mkfifoat F
-GLIBC_2.17 mkostemp F
-GLIBC_2.17 mkostemp64 F
-GLIBC_2.17 mkostemps F
-GLIBC_2.17 mkostemps64 F
-GLIBC_2.17 mkstemp F
-GLIBC_2.17 mkstemp64 F
-GLIBC_2.17 mkstemps F
-GLIBC_2.17 mkstemps64 F
-GLIBC_2.17 mktemp F
-GLIBC_2.17 mktime F
-GLIBC_2.17 mlock F
-GLIBC_2.17 mlockall F
-GLIBC_2.17 mmap F
-GLIBC_2.17 mmap64 F
-GLIBC_2.17 modf F
-GLIBC_2.17 modff F
-GLIBC_2.17 modfl F
-GLIBC_2.17 moncontrol F
-GLIBC_2.17 monstartup F
-GLIBC_2.17 mount F
-GLIBC_2.17 mprobe F
-GLIBC_2.17 mprotect F
-GLIBC_2.17 mrand48 F
-GLIBC_2.17 mrand48_r F
-GLIBC_2.17 mremap F
-GLIBC_2.17 msgctl F
-GLIBC_2.17 msgget F
-GLIBC_2.17 msgrcv F
-GLIBC_2.17 msgsnd F
-GLIBC_2.17 msync F
-GLIBC_2.17 mtrace F
-GLIBC_2.17 munlock F
-GLIBC_2.17 munlockall F
-GLIBC_2.17 munmap F
-GLIBC_2.17 muntrace F
-GLIBC_2.17 name_to_handle_at F
-GLIBC_2.17 nanosleep F
-GLIBC_2.17 netname2host F
-GLIBC_2.17 netname2user F
-GLIBC_2.17 newlocale F
-GLIBC_2.17 nfsservctl F
-GLIBC_2.17 nftw F
-GLIBC_2.17 nftw64 F
-GLIBC_2.17 ngettext F
-GLIBC_2.17 nice F
-GLIBC_2.17 nl_langinfo F
-GLIBC_2.17 nl_langinfo_l F
-GLIBC_2.17 nrand48 F
-GLIBC_2.17 nrand48_r F
-GLIBC_2.17 ntohl F
-GLIBC_2.17 ntohs F
-GLIBC_2.17 ntp_adjtime F
-GLIBC_2.17 ntp_gettime F
-GLIBC_2.17 ntp_gettimex F
-GLIBC_2.17 obstack_alloc_failed_handler D 0x8
-GLIBC_2.17 obstack_exit_failure D 0x4
-GLIBC_2.17 obstack_free F
-GLIBC_2.17 obstack_printf F
-GLIBC_2.17 obstack_vprintf F
-GLIBC_2.17 on_exit F
-GLIBC_2.17 open F
-GLIBC_2.17 open64 F
-GLIBC_2.17 open_by_handle_at F
-GLIBC_2.17 open_memstream F
-GLIBC_2.17 open_wmemstream F
-GLIBC_2.17 openat F
-GLIBC_2.17 openat64 F
-GLIBC_2.17 opendir F
-GLIBC_2.17 openlog F
-GLIBC_2.17 optarg D 0x8
-GLIBC_2.17 opterr D 0x4
-GLIBC_2.17 optind D 0x4
-GLIBC_2.17 optopt D 0x4
-GLIBC_2.17 parse_printf_format F
-GLIBC_2.17 passwd2des F
-GLIBC_2.17 pathconf F
-GLIBC_2.17 pause F
-GLIBC_2.17 pclose F
-GLIBC_2.17 perror F
-GLIBC_2.17 personality F
-GLIBC_2.17 pipe F
-GLIBC_2.17 pipe2 F
-GLIBC_2.17 pivot_root F
-GLIBC_2.17 pmap_getmaps F
-GLIBC_2.17 pmap_getport F
-GLIBC_2.17 pmap_rmtcall F
-GLIBC_2.17 pmap_set F
-GLIBC_2.17 pmap_unset F
-GLIBC_2.17 poll F
-GLIBC_2.17 popen F
-GLIBC_2.17 posix_fadvise F
-GLIBC_2.17 posix_fadvise64 F
-GLIBC_2.17 posix_fallocate F
-GLIBC_2.17 posix_fallocate64 F
-GLIBC_2.17 posix_madvise F
-GLIBC_2.17 posix_memalign F
-GLIBC_2.17 posix_openpt F
-GLIBC_2.17 posix_spawn F
-GLIBC_2.17 posix_spawn_file_actions_addclose F
-GLIBC_2.17 posix_spawn_file_actions_adddup2 F
-GLIBC_2.17 posix_spawn_file_actions_addopen F
-GLIBC_2.17 posix_spawn_file_actions_destroy F
-GLIBC_2.17 posix_spawn_file_actions_init F
-GLIBC_2.17 posix_spawnattr_destroy F
-GLIBC_2.17 posix_spawnattr_getflags F
-GLIBC_2.17 posix_spawnattr_getpgroup F
-GLIBC_2.17 posix_spawnattr_getschedparam F
-GLIBC_2.17 posix_spawnattr_getschedpolicy F
-GLIBC_2.17 posix_spawnattr_getsigdefault F
-GLIBC_2.17 posix_spawnattr_getsigmask F
-GLIBC_2.17 posix_spawnattr_init F
-GLIBC_2.17 posix_spawnattr_setflags F
-GLIBC_2.17 posix_spawnattr_setpgroup F
-GLIBC_2.17 posix_spawnattr_setschedparam F
-GLIBC_2.17 posix_spawnattr_setschedpolicy F
-GLIBC_2.17 posix_spawnattr_setsigdefault F
-GLIBC_2.17 posix_spawnattr_setsigmask F
-GLIBC_2.17 posix_spawnp F
-GLIBC_2.17 ppoll F
-GLIBC_2.17 prctl F
-GLIBC_2.17 pread F
-GLIBC_2.17 pread64 F
-GLIBC_2.17 preadv F
-GLIBC_2.17 preadv64 F
-GLIBC_2.17 printf F
-GLIBC_2.17 printf_size F
-GLIBC_2.17 printf_size_info F
-GLIBC_2.17 prlimit F
-GLIBC_2.17 prlimit64 F
-GLIBC_2.17 process_vm_readv F
-GLIBC_2.17 process_vm_writev F
-GLIBC_2.17 profil F
-GLIBC_2.17 program_invocation_name D 0x8
-GLIBC_2.17 program_invocation_short_name D 0x8
-GLIBC_2.17 pselect F
-GLIBC_2.17 psiginfo F
-GLIBC_2.17 psignal F
-GLIBC_2.17 pthread_attr_destroy F
-GLIBC_2.17 pthread_attr_getdetachstate F
-GLIBC_2.17 pthread_attr_getinheritsched F
-GLIBC_2.17 pthread_attr_getschedparam F
-GLIBC_2.17 pthread_attr_getschedpolicy F
-GLIBC_2.17 pthread_attr_getscope F
-GLIBC_2.17 pthread_attr_init F
-GLIBC_2.17 pthread_attr_setdetachstate F
-GLIBC_2.17 pthread_attr_setinheritsched F
-GLIBC_2.17 pthread_attr_setschedparam F
-GLIBC_2.17 pthread_attr_setschedpolicy F
-GLIBC_2.17 pthread_attr_setscope F
-GLIBC_2.17 pthread_cond_broadcast F
-GLIBC_2.17 pthread_cond_destroy F
-GLIBC_2.17 pthread_cond_init F
-GLIBC_2.17 pthread_cond_signal F
-GLIBC_2.17 pthread_cond_timedwait F
-GLIBC_2.17 pthread_cond_wait F
-GLIBC_2.17 pthread_condattr_destroy F
-GLIBC_2.17 pthread_condattr_init F
-GLIBC_2.17 pthread_equal F
-GLIBC_2.17 pthread_exit F
-GLIBC_2.17 pthread_getschedparam F
-GLIBC_2.17 pthread_mutex_destroy F
-GLIBC_2.17 pthread_mutex_init F
-GLIBC_2.17 pthread_mutex_lock F
-GLIBC_2.17 pthread_mutex_unlock F
-GLIBC_2.17 pthread_self F
-GLIBC_2.17 pthread_setcancelstate F
-GLIBC_2.17 pthread_setcanceltype F
-GLIBC_2.17 pthread_setschedparam F
-GLIBC_2.17 ptrace F
-GLIBC_2.17 ptsname F
-GLIBC_2.17 ptsname_r F
-GLIBC_2.17 putc F
-GLIBC_2.17 putc_unlocked F
-GLIBC_2.17 putchar F
-GLIBC_2.17 putchar_unlocked F
-GLIBC_2.17 putenv F
-GLIBC_2.17 putgrent F
-GLIBC_2.17 putmsg F
-GLIBC_2.17 putpmsg F
-GLIBC_2.17 putpwent F
-GLIBC_2.17 puts F
-GLIBC_2.17 putsgent F
-GLIBC_2.17 putspent F
-GLIBC_2.17 pututline F
-GLIBC_2.17 pututxline F
-GLIBC_2.17 putw F
-GLIBC_2.17 putwc F
-GLIBC_2.17 putwc_unlocked F
-GLIBC_2.17 putwchar F
-GLIBC_2.17 putwchar_unlocked F
-GLIBC_2.17 pvalloc F
-GLIBC_2.17 pwrite F
-GLIBC_2.17 pwrite64 F
-GLIBC_2.17 pwritev F
-GLIBC_2.17 pwritev64 F
-GLIBC_2.17 qecvt F
-GLIBC_2.17 qecvt_r F
-GLIBC_2.17 qfcvt F
-GLIBC_2.17 qfcvt_r F
-GLIBC_2.17 qgcvt F
-GLIBC_2.17 qsort F
-GLIBC_2.17 qsort_r F
-GLIBC_2.17 query_module F
-GLIBC_2.17 quick_exit F
-GLIBC_2.17 quotactl F
-GLIBC_2.17 raise F
-GLIBC_2.17 rand F
-GLIBC_2.17 rand_r F
-GLIBC_2.17 random F
-GLIBC_2.17 random_r F
-GLIBC_2.17 rawmemchr F
-GLIBC_2.17 rcmd F
-GLIBC_2.17 rcmd_af F
-GLIBC_2.17 re_comp F
-GLIBC_2.17 re_compile_fastmap F
-GLIBC_2.17 re_compile_pattern F
-GLIBC_2.17 re_exec F
-GLIBC_2.17 re_match F
-GLIBC_2.17 re_match_2 F
-GLIBC_2.17 re_search F
-GLIBC_2.17 re_search_2 F
-GLIBC_2.17 re_set_registers F
-GLIBC_2.17 re_set_syntax F
-GLIBC_2.17 re_syntax_options D 0x8
-GLIBC_2.17 read F
-GLIBC_2.17 readahead F
-GLIBC_2.17 readdir F
-GLIBC_2.17 readdir64 F
-GLIBC_2.17 readdir64_r F
-GLIBC_2.17 readdir_r F
-GLIBC_2.17 readlink F
-GLIBC_2.17 readlinkat F
-GLIBC_2.17 readv F
-GLIBC_2.17 realloc F
-GLIBC_2.17 realpath F
-GLIBC_2.17 reboot F
-GLIBC_2.17 recv F
-GLIBC_2.17 recvfrom F
-GLIBC_2.17 recvmmsg F
-GLIBC_2.17 recvmsg F
-GLIBC_2.17 regcomp F
-GLIBC_2.17 regerror F
-GLIBC_2.17 regexec F
-GLIBC_2.17 regfree F
-GLIBC_2.17 register_printf_function F
-GLIBC_2.17 register_printf_modifier F
-GLIBC_2.17 register_printf_specifier F
-GLIBC_2.17 register_printf_type F
-GLIBC_2.17 registerrpc F
-GLIBC_2.17 remap_file_pages F
-GLIBC_2.17 remove F
-GLIBC_2.17 removexattr F
-GLIBC_2.17 remque F
-GLIBC_2.17 rename F
-GLIBC_2.17 renameat F
-GLIBC_2.17 revoke F
-GLIBC_2.17 rewind F
-GLIBC_2.17 rewinddir F
-GLIBC_2.17 rexec F
-GLIBC_2.17 rexec_af F
-GLIBC_2.17 rexecoptions D 0x4
-GLIBC_2.17 rindex F
-GLIBC_2.17 rmdir F
-GLIBC_2.17 rpc_createerr D 0x20
-GLIBC_2.17 rpmatch F
-GLIBC_2.17 rresvport F
-GLIBC_2.17 rresvport_af F
-GLIBC_2.17 rtime F
-GLIBC_2.17 ruserok F
-GLIBC_2.17 ruserok_af F
-GLIBC_2.17 ruserpass F
-GLIBC_2.17 sbrk F
-GLIBC_2.17 scalbn F
-GLIBC_2.17 scalbnf F
-GLIBC_2.17 scalbnl F
-GLIBC_2.17 scandir F
-GLIBC_2.17 scandir64 F
-GLIBC_2.17 scandirat F
-GLIBC_2.17 scandirat64 F
-GLIBC_2.17 scanf F
-GLIBC_2.17 sched_get_priority_max F
-GLIBC_2.17 sched_get_priority_min F
-GLIBC_2.17 sched_getaffinity F
-GLIBC_2.17 sched_getcpu F
-GLIBC_2.17 sched_getparam F
-GLIBC_2.17 sched_getscheduler F
-GLIBC_2.17 sched_rr_get_interval F
-GLIBC_2.17 sched_setaffinity F
-GLIBC_2.17 sched_setparam F
-GLIBC_2.17 sched_setscheduler F
-GLIBC_2.17 sched_yield F
-GLIBC_2.17 secure_getenv F
-GLIBC_2.17 seed48 F
-GLIBC_2.17 seed48_r F
-GLIBC_2.17 seekdir F
-GLIBC_2.17 select F
-GLIBC_2.17 semctl F
-GLIBC_2.17 semget F
-GLIBC_2.17 semop F
-GLIBC_2.17 semtimedop F
-GLIBC_2.17 send F
-GLIBC_2.17 sendfile F
-GLIBC_2.17 sendfile64 F
-GLIBC_2.17 sendmmsg F
-GLIBC_2.17 sendmsg F
-GLIBC_2.17 sendto F
-GLIBC_2.17 setaliasent F
-GLIBC_2.17 setbuf F
-GLIBC_2.17 setbuffer F
-GLIBC_2.17 setcontext F
-GLIBC_2.17 setdomainname F
-GLIBC_2.17 setegid F
-GLIBC_2.17 setenv F
-GLIBC_2.17 seteuid F
-GLIBC_2.17 setfsent F
-GLIBC_2.17 setfsgid F
-GLIBC_2.17 setfsuid F
-GLIBC_2.17 setgid F
-GLIBC_2.17 setgrent F
-GLIBC_2.17 setgroups F
-GLIBC_2.17 sethostent F
-GLIBC_2.17 sethostid F
-GLIBC_2.17 sethostname F
-GLIBC_2.17 setipv4sourcefilter F
-GLIBC_2.17 setitimer F
-GLIBC_2.17 setjmp F
-GLIBC_2.17 setlinebuf F
-GLIBC_2.17 setlocale F
-GLIBC_2.17 setlogin F
-GLIBC_2.17 setlogmask F
-GLIBC_2.17 setmntent F
-GLIBC_2.17 setnetent F
-GLIBC_2.17 setnetgrent F
-GLIBC_2.17 setns F
-GLIBC_2.17 setpgid F
-GLIBC_2.17 setpgrp F
-GLIBC_2.17 setpriority F
-GLIBC_2.17 setprotoent F
-GLIBC_2.17 setpwent F
-GLIBC_2.17 setregid F
-GLIBC_2.17 setresgid F
-GLIBC_2.17 setresuid F
-GLIBC_2.17 setreuid F
-GLIBC_2.17 setrlimit F
-GLIBC_2.17 setrlimit64 F
-GLIBC_2.17 setrpcent F
-GLIBC_2.17 setservent F
-GLIBC_2.17 setsgent F
-GLIBC_2.17 setsid F
-GLIBC_2.17 setsockopt F
-GLIBC_2.17 setsourcefilter F
-GLIBC_2.17 setspent F
-GLIBC_2.17 setstate F
-GLIBC_2.17 setstate_r F
-GLIBC_2.17 settimeofday F
-GLIBC_2.17 setttyent F
-GLIBC_2.17 setuid F
-GLIBC_2.17 setusershell F
-GLIBC_2.17 setutent F
-GLIBC_2.17 setutxent F
-GLIBC_2.17 setvbuf F
-GLIBC_2.17 setxattr F
-GLIBC_2.17 sgetsgent F
-GLIBC_2.17 sgetsgent_r F
-GLIBC_2.17 sgetspent F
-GLIBC_2.17 sgetspent_r F
-GLIBC_2.17 shmat F
-GLIBC_2.17 shmctl F
-GLIBC_2.17 shmdt F
-GLIBC_2.17 shmget F
-GLIBC_2.17 shutdown F
-GLIBC_2.17 sigaction F
-GLIBC_2.17 sigaddset F
-GLIBC_2.17 sigaltstack F
-GLIBC_2.17 sigandset F
-GLIBC_2.17 sigblock F
-GLIBC_2.17 sigdelset F
-GLIBC_2.17 sigemptyset F
-GLIBC_2.17 sigfillset F
-GLIBC_2.17 siggetmask F
-GLIBC_2.17 sighold F
-GLIBC_2.17 sigignore F
-GLIBC_2.17 siginterrupt F
-GLIBC_2.17 sigisemptyset F
-GLIBC_2.17 sigismember F
-GLIBC_2.17 siglongjmp F
-GLIBC_2.17 signal F
-GLIBC_2.17 signalfd F
-GLIBC_2.17 sigorset F
-GLIBC_2.17 sigpause F
-GLIBC_2.17 sigpending F
-GLIBC_2.17 sigprocmask F
-GLIBC_2.17 sigqueue F
-GLIBC_2.17 sigrelse F
-GLIBC_2.17 sigreturn F
-GLIBC_2.17 sigset F
-GLIBC_2.17 sigsetmask F
-GLIBC_2.17 sigstack F
-GLIBC_2.17 sigsuspend F
-GLIBC_2.17 sigtimedwait F
-GLIBC_2.17 sigvec F
-GLIBC_2.17 sigwait F
-GLIBC_2.17 sigwaitinfo F
-GLIBC_2.17 sleep F
-GLIBC_2.17 snprintf F
-GLIBC_2.17 sockatmark F
-GLIBC_2.17 socket F
-GLIBC_2.17 socketpair F
-GLIBC_2.17 splice F
-GLIBC_2.17 sprintf F
-GLIBC_2.17 sprofil F
-GLIBC_2.17 srand F
-GLIBC_2.17 srand48 F
-GLIBC_2.17 srand48_r F
-GLIBC_2.17 srandom F
-GLIBC_2.17 srandom_r F
-GLIBC_2.17 sscanf F
-GLIBC_2.17 ssignal F
-GLIBC_2.17 sstk F
-GLIBC_2.17 statfs F
-GLIBC_2.17 statfs64 F
-GLIBC_2.17 statvfs F
-GLIBC_2.17 statvfs64 F
-GLIBC_2.17 stderr D 0x8
-GLIBC_2.17 stdin D 0x8
-GLIBC_2.17 stdout D 0x8
-GLIBC_2.17 step F
-GLIBC_2.17 stime F
-GLIBC_2.17 stpcpy F
-GLIBC_2.17 stpncpy F
-GLIBC_2.17 strcasecmp F
-GLIBC_2.17 strcasecmp_l F
-GLIBC_2.17 strcasestr F
-GLIBC_2.17 strcat F
-GLIBC_2.17 strchr F
-GLIBC_2.17 strchrnul F
-GLIBC_2.17 strcmp F
-GLIBC_2.17 strcoll F
-GLIBC_2.17 strcoll_l F
-GLIBC_2.17 strcpy F
-GLIBC_2.17 strcspn F
-GLIBC_2.17 strdup F
-GLIBC_2.17 strerror F
-GLIBC_2.17 strerror_l F
-GLIBC_2.17 strerror_r F
-GLIBC_2.17 strfmon F
-GLIBC_2.17 strfmon_l F
-GLIBC_2.17 strfry F
-GLIBC_2.17 strftime F
-GLIBC_2.17 strftime_l F
-GLIBC_2.17 strlen F
-GLIBC_2.17 strncasecmp F
-GLIBC_2.17 strncasecmp_l F
-GLIBC_2.17 strncat F
-GLIBC_2.17 strncmp F
-GLIBC_2.17 strncpy F
-GLIBC_2.17 strndup F
-GLIBC_2.17 strnlen F
-GLIBC_2.17 strpbrk F
-GLIBC_2.17 strptime F
-GLIBC_2.17 strptime_l F
-GLIBC_2.17 strrchr F
-GLIBC_2.17 strsep F
-GLIBC_2.17 strsignal F
-GLIBC_2.17 strspn F
-GLIBC_2.17 strstr F
-GLIBC_2.17 strtod F
-GLIBC_2.17 strtod_l F
-GLIBC_2.17 strtof F
-GLIBC_2.17 strtof_l F
-GLIBC_2.17 strtoimax F
-GLIBC_2.17 strtok F
-GLIBC_2.17 strtok_r F
-GLIBC_2.17 strtol F
-GLIBC_2.17 strtol_l F
-GLIBC_2.17 strtold F
-GLIBC_2.17 strtold_l F
-GLIBC_2.17 strtoll F
-GLIBC_2.17 strtoll_l F
-GLIBC_2.17 strtoq F
-GLIBC_2.17 strtoul F
-GLIBC_2.17 strtoul_l F
-GLIBC_2.17 strtoull F
-GLIBC_2.17 strtoull_l F
-GLIBC_2.17 strtoumax F
-GLIBC_2.17 strtouq F
-GLIBC_2.17 strverscmp F
-GLIBC_2.17 strxfrm F
-GLIBC_2.17 strxfrm_l F
-GLIBC_2.17 stty F
-GLIBC_2.17 svc_exit F
-GLIBC_2.17 svc_fdset D 0x80
-GLIBC_2.17 svc_getreq F
-GLIBC_2.17 svc_getreq_common F
-GLIBC_2.17 svc_getreq_poll F
-GLIBC_2.17 svc_getreqset F
-GLIBC_2.17 svc_max_pollfd D 0x4
-GLIBC_2.17 svc_pollfd D 0x8
-GLIBC_2.17 svc_register F
-GLIBC_2.17 svc_run F
-GLIBC_2.17 svc_sendreply F
-GLIBC_2.17 svc_unregister F
-GLIBC_2.17 svcauthdes_stats D 0x18
-GLIBC_2.17 svcerr_auth F
-GLIBC_2.17 svcerr_decode F
-GLIBC_2.17 svcerr_noproc F
-GLIBC_2.17 svcerr_noprog F
-GLIBC_2.17 svcerr_progvers F
-GLIBC_2.17 svcerr_systemerr F
-GLIBC_2.17 svcerr_weakauth F
-GLIBC_2.17 svcfd_create F
-GLIBC_2.17 svcraw_create F
-GLIBC_2.17 svctcp_create F
-GLIBC_2.17 svcudp_bufcreate F
-GLIBC_2.17 svcudp_create F
-GLIBC_2.17 svcudp_enablecache F
-GLIBC_2.17 svcunix_create F
-GLIBC_2.17 svcunixfd_create F
-GLIBC_2.17 swab F
-GLIBC_2.17 swapcontext F
-GLIBC_2.17 swapoff F
-GLIBC_2.17 swapon F
-GLIBC_2.17 swprintf F
-GLIBC_2.17 swscanf F
-GLIBC_2.17 symlink F
-GLIBC_2.17 symlinkat F
-GLIBC_2.17 sync F
-GLIBC_2.17 sync_file_range F
-GLIBC_2.17 syncfs F
-GLIBC_2.17 sys_errlist D 0x438
-GLIBC_2.17 sys_nerr D 0x4
-GLIBC_2.17 sys_sigabbrev D 0x208
-GLIBC_2.17 sys_siglist D 0x208
-GLIBC_2.17 syscall F
-GLIBC_2.17 sysconf F
-GLIBC_2.17 sysctl F
-GLIBC_2.17 sysinfo F
-GLIBC_2.17 syslog F
-GLIBC_2.17 system F
-GLIBC_2.17 sysv_signal F
-GLIBC_2.17 tcdrain F
-GLIBC_2.17 tcflow F
-GLIBC_2.17 tcflush F
-GLIBC_2.17 tcgetattr F
-GLIBC_2.17 tcgetpgrp F
-GLIBC_2.17 tcgetsid F
-GLIBC_2.17 tcsendbreak F
-GLIBC_2.17 tcsetattr F
-GLIBC_2.17 tcsetpgrp F
-GLIBC_2.17 tdelete F
-GLIBC_2.17 tdestroy F
-GLIBC_2.17 tee F
-GLIBC_2.17 telldir F
-GLIBC_2.17 tempnam F
-GLIBC_2.17 textdomain F
-GLIBC_2.17 tfind F
-GLIBC_2.17 time F
-GLIBC_2.17 timegm F
-GLIBC_2.17 timelocal F
-GLIBC_2.17 timerfd_create F
-GLIBC_2.17 timerfd_gettime F
-GLIBC_2.17 timerfd_settime F
-GLIBC_2.17 times F
-GLIBC_2.17 timespec_get F
-GLIBC_2.17 timezone D 0x8
-GLIBC_2.17 tmpfile F
-GLIBC_2.17 tmpfile64 F
-GLIBC_2.17 tmpnam F
-GLIBC_2.17 tmpnam_r F
-GLIBC_2.17 toascii F
-GLIBC_2.17 tolower F
-GLIBC_2.17 tolower_l F
-GLIBC_2.17 toupper F
-GLIBC_2.17 toupper_l F
-GLIBC_2.17 towctrans F
-GLIBC_2.17 towctrans_l F
-GLIBC_2.17 towlower F
-GLIBC_2.17 towlower_l F
-GLIBC_2.17 towupper F
-GLIBC_2.17 towupper_l F
-GLIBC_2.17 tr_break F
-GLIBC_2.17 truncate F
-GLIBC_2.17 truncate64 F
-GLIBC_2.17 tsearch F
-GLIBC_2.17 ttyname F
-GLIBC_2.17 ttyname_r F
-GLIBC_2.17 ttyslot F
-GLIBC_2.17 twalk F
-GLIBC_2.17 tzname D 0x10
-GLIBC_2.17 tzset F
-GLIBC_2.17 ualarm F
-GLIBC_2.17 ulckpwdf F
-GLIBC_2.17 ulimit F
-GLIBC_2.17 umask F
-GLIBC_2.17 umount F
-GLIBC_2.17 umount2 F
-GLIBC_2.17 uname F
-GLIBC_2.17 ungetc F
-GLIBC_2.17 ungetwc F
-GLIBC_2.17 unlink F
-GLIBC_2.17 unlinkat F
-GLIBC_2.17 unlockpt F
-GLIBC_2.17 unsetenv F
-GLIBC_2.17 unshare F
-GLIBC_2.17 updwtmp F
-GLIBC_2.17 updwtmpx F
-GLIBC_2.17 uselib F
-GLIBC_2.17 uselocale F
-GLIBC_2.17 user2netname F
-GLIBC_2.17 usleep F
-GLIBC_2.17 ustat F
-GLIBC_2.17 utime F
-GLIBC_2.17 utimensat F
-GLIBC_2.17 utimes F
-GLIBC_2.17 utmpname F
-GLIBC_2.17 utmpxname F
-GLIBC_2.17 valloc F
-GLIBC_2.17 vasprintf F
-GLIBC_2.17 vdprintf F
-GLIBC_2.17 verr F
-GLIBC_2.17 verrx F
-GLIBC_2.17 versionsort F
-GLIBC_2.17 versionsort64 F
-GLIBC_2.17 vfork F
-GLIBC_2.17 vfprintf F
-GLIBC_2.17 vfscanf F
-GLIBC_2.17 vfwprintf F
-GLIBC_2.17 vfwscanf F
-GLIBC_2.17 vhangup F
-GLIBC_2.17 vlimit F
-GLIBC_2.17 vmsplice F
-GLIBC_2.17 vprintf F
-GLIBC_2.17 vscanf F
-GLIBC_2.17 vsnprintf F
-GLIBC_2.17 vsprintf F
-GLIBC_2.17 vsscanf F
-GLIBC_2.17 vswprintf F
-GLIBC_2.17 vswscanf F
-GLIBC_2.17 vsyslog F
-GLIBC_2.17 vtimes F
-GLIBC_2.17 vwarn F
-GLIBC_2.17 vwarnx F
-GLIBC_2.17 vwprintf F
-GLIBC_2.17 vwscanf F
-GLIBC_2.17 wait F
-GLIBC_2.17 wait3 F
-GLIBC_2.17 wait4 F
-GLIBC_2.17 waitid F
-GLIBC_2.17 waitpid F
-GLIBC_2.17 warn F
-GLIBC_2.17 warnx F
-GLIBC_2.17 wcpcpy F
-GLIBC_2.17 wcpncpy F
-GLIBC_2.17 wcrtomb F
-GLIBC_2.17 wcscasecmp F
-GLIBC_2.17 wcscasecmp_l F
-GLIBC_2.17 wcscat F
-GLIBC_2.17 wcschr F
-GLIBC_2.17 wcschrnul F
-GLIBC_2.17 wcscmp F
-GLIBC_2.17 wcscoll F
-GLIBC_2.17 wcscoll_l F
-GLIBC_2.17 wcscpy F
-GLIBC_2.17 wcscspn F
-GLIBC_2.17 wcsdup F
-GLIBC_2.17 wcsftime F
-GLIBC_2.17 wcsftime_l F
-GLIBC_2.17 wcslen F
-GLIBC_2.17 wcsncasecmp F
-GLIBC_2.17 wcsncasecmp_l F
-GLIBC_2.17 wcsncat F
-GLIBC_2.17 wcsncmp F
-GLIBC_2.17 wcsncpy F
-GLIBC_2.17 wcsnlen F
-GLIBC_2.17 wcsnrtombs F
-GLIBC_2.17 wcspbrk F
-GLIBC_2.17 wcsrchr F
-GLIBC_2.17 wcsrtombs F
-GLIBC_2.17 wcsspn F
-GLIBC_2.17 wcsstr F
-GLIBC_2.17 wcstod F
-GLIBC_2.17 wcstod_l F
-GLIBC_2.17 wcstof F
-GLIBC_2.17 wcstof_l F
-GLIBC_2.17 wcstoimax F
-GLIBC_2.17 wcstok F
-GLIBC_2.17 wcstol F
-GLIBC_2.17 wcstol_l F
-GLIBC_2.17 wcstold F
-GLIBC_2.17 wcstold_l F
-GLIBC_2.17 wcstoll F
-GLIBC_2.17 wcstoll_l F
-GLIBC_2.17 wcstombs F
-GLIBC_2.17 wcstoq F
-GLIBC_2.17 wcstoul F
-GLIBC_2.17 wcstoul_l F
-GLIBC_2.17 wcstoull F
-GLIBC_2.17 wcstoull_l F
-GLIBC_2.17 wcstoumax F
-GLIBC_2.17 wcstouq F
-GLIBC_2.17 wcswcs F
-GLIBC_2.17 wcswidth F
-GLIBC_2.17 wcsxfrm F
-GLIBC_2.17 wcsxfrm_l F
-GLIBC_2.17 wctob F
-GLIBC_2.17 wctomb F
-GLIBC_2.17 wctrans F
-GLIBC_2.17 wctrans_l F
-GLIBC_2.17 wctype F
-GLIBC_2.17 wctype_l F
-GLIBC_2.17 wcwidth F
-GLIBC_2.17 wmemchr F
-GLIBC_2.17 wmemcmp F
-GLIBC_2.17 wmemcpy F
-GLIBC_2.17 wmemmove F
-GLIBC_2.17 wmempcpy F
-GLIBC_2.17 wmemset F
-GLIBC_2.17 wordexp F
-GLIBC_2.17 wordfree F
-GLIBC_2.17 wprintf F
-GLIBC_2.17 write F
-GLIBC_2.17 writev F
-GLIBC_2.17 wscanf F
-GLIBC_2.17 xdecrypt F
-GLIBC_2.17 xdr_accepted_reply F
-GLIBC_2.17 xdr_array F
-GLIBC_2.17 xdr_authdes_cred F
-GLIBC_2.17 xdr_authdes_verf F
-GLIBC_2.17 xdr_authunix_parms F
-GLIBC_2.17 xdr_bool F
-GLIBC_2.17 xdr_bytes F
-GLIBC_2.17 xdr_callhdr F
-GLIBC_2.17 xdr_callmsg F
-GLIBC_2.17 xdr_char F
-GLIBC_2.17 xdr_cryptkeyarg F
-GLIBC_2.17 xdr_cryptkeyarg2 F
-GLIBC_2.17 xdr_cryptkeyres F
-GLIBC_2.17 xdr_des_block F
-GLIBC_2.17 xdr_double F
-GLIBC_2.17 xdr_enum F
-GLIBC_2.17 xdr_float F
-GLIBC_2.17 xdr_free F
-GLIBC_2.17 xdr_getcredres F
-GLIBC_2.17 xdr_hyper F
-GLIBC_2.17 xdr_int F
-GLIBC_2.17 xdr_int16_t F
-GLIBC_2.17 xdr_int32_t F
-GLIBC_2.17 xdr_int64_t F
-GLIBC_2.17 xdr_int8_t F
-GLIBC_2.17 xdr_key_netstarg F
-GLIBC_2.17 xdr_key_netstres F
-GLIBC_2.17 xdr_keybuf F
-GLIBC_2.17 xdr_keystatus F
-GLIBC_2.17 xdr_long F
-GLIBC_2.17 xdr_longlong_t F
-GLIBC_2.17 xdr_netnamestr F
-GLIBC_2.17 xdr_netobj F
-GLIBC_2.17 xdr_opaque F
-GLIBC_2.17 xdr_opaque_auth F
-GLIBC_2.17 xdr_pmap F
-GLIBC_2.17 xdr_pmaplist F
-GLIBC_2.17 xdr_pointer F
-GLIBC_2.17 xdr_quad_t F
-GLIBC_2.17 xdr_reference F
-GLIBC_2.17 xdr_rejected_reply F
-GLIBC_2.17 xdr_replymsg F
-GLIBC_2.17 xdr_rmtcall_args F
-GLIBC_2.17 xdr_rmtcallres F
-GLIBC_2.17 xdr_short F
-GLIBC_2.17 xdr_sizeof F
-GLIBC_2.17 xdr_string F
-GLIBC_2.17 xdr_u_char F
-GLIBC_2.17 xdr_u_hyper F
-GLIBC_2.17 xdr_u_int F
-GLIBC_2.17 xdr_u_long F
-GLIBC_2.17 xdr_u_longlong_t F
-GLIBC_2.17 xdr_u_quad_t F
-GLIBC_2.17 xdr_u_short F
-GLIBC_2.17 xdr_uint16_t F
-GLIBC_2.17 xdr_uint32_t F
-GLIBC_2.17 xdr_uint64_t F
-GLIBC_2.17 xdr_uint8_t F
-GLIBC_2.17 xdr_union F
-GLIBC_2.17 xdr_unixcred F
-GLIBC_2.17 xdr_vector F
-GLIBC_2.17 xdr_void F
-GLIBC_2.17 xdr_wrapstring F
-GLIBC_2.17 xdrmem_create F
-GLIBC_2.17 xdrrec_create F
-GLIBC_2.17 xdrrec_endofrecord F
-GLIBC_2.17 xdrrec_eof F
-GLIBC_2.17 xdrrec_skiprecord F
-GLIBC_2.17 xdrstdio_create F
-GLIBC_2.17 xencrypt F
-GLIBC_2.17 xprt_register F
-GLIBC_2.17 xprt_unregister F
-GLIBC_2.18 __cxa_thread_atexit_impl F
-GLIBC_2.22 fmemopen F
-GLIBC_2.23 fts64_children F
-GLIBC_2.23 fts64_close F
-GLIBC_2.23 fts64_open F
-GLIBC_2.23 fts64_read F
-GLIBC_2.23 fts64_set F
-GLIBC_2.24 quick_exit F
-GLIBC_2.25 __explicit_bzero_chk F
-GLIBC_2.25 explicit_bzero F
-GLIBC_2.25 getentropy F
-GLIBC_2.25 getrandom F
-GLIBC_2.25 strfromd F
-GLIBC_2.25 strfromf F
-GLIBC_2.25 strfroml F
-GLIBC_2.26 __strtof128_internal F
-GLIBC_2.26 __wcstof128_internal F
-GLIBC_2.26 preadv2 F
-GLIBC_2.26 preadv64v2 F
-GLIBC_2.26 pwritev2 F
-GLIBC_2.26 pwritev64v2 F
-GLIBC_2.26 reallocarray F
-GLIBC_2.26 strfromf128 F
-GLIBC_2.26 strtof128 F
-GLIBC_2.26 strtof128_l F
-GLIBC_2.26 wcstof128 F
-GLIBC_2.26 wcstof128_l F
-GLIBC_2.27 copy_file_range F
-GLIBC_2.27 glob F
-GLIBC_2.27 glob64 F
-GLIBC_2.27 memfd_create F
-GLIBC_2.27 mlock2 F
-GLIBC_2.27 pkey_alloc F
-GLIBC_2.27 pkey_free F
-GLIBC_2.27 pkey_get F
-GLIBC_2.27 pkey_mprotect F
-GLIBC_2.27 pkey_set F
-GLIBC_2.27 strfromf32 F
-GLIBC_2.27 strfromf32x F
-GLIBC_2.27 strfromf64 F
-GLIBC_2.27 strfromf64x F
-GLIBC_2.27 strtof32 F
-GLIBC_2.27 strtof32_l F
-GLIBC_2.27 strtof32x F
-GLIBC_2.27 strtof32x_l F
-GLIBC_2.27 strtof64 F
-GLIBC_2.27 strtof64_l F
-GLIBC_2.27 strtof64x F
-GLIBC_2.27 strtof64x_l F
-GLIBC_2.27 wcstof32 F
-GLIBC_2.27 wcstof32_l F
-GLIBC_2.27 wcstof32x F
-GLIBC_2.27 wcstof32x_l F
-GLIBC_2.27 wcstof64 F
-GLIBC_2.27 wcstof64_l F
-GLIBC_2.27 wcstof64x F
-GLIBC_2.27 wcstof64x_l F
-GLIBC_2.28 fcntl64 F
-GLIBC_2.28 renameat2 F
-GLIBC_2.28 statx F
-GLIBC_2.28 thrd_current F
-GLIBC_2.28 thrd_equal F
-GLIBC_2.28 thrd_sleep F
-GLIBC_2.28 thrd_yield F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist
deleted file mode 100644
index 8c1781adf4..0000000000
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist
+++ /dev/null
@@ -1,2335 +0,0 @@
-GLIBC_2.10 __cxa_at_quick_exit F
-GLIBC_2.10 __posix_getopt F
-GLIBC_2.10 accept4 F
-GLIBC_2.10 endsgent F
-GLIBC_2.10 fallocate F
-GLIBC_2.10 fallocate64 F
-GLIBC_2.10 fgetsgent F
-GLIBC_2.10 fgetsgent_r F
-GLIBC_2.10 getsgent F
-GLIBC_2.10 getsgent_r F
-GLIBC_2.10 getsgnam F
-GLIBC_2.10 getsgnam_r F
-GLIBC_2.10 malloc_info F
-GLIBC_2.10 preadv F
-GLIBC_2.10 preadv64 F
-GLIBC_2.10 psiginfo F
-GLIBC_2.10 putsgent F
-GLIBC_2.10 pwritev F
-GLIBC_2.10 pwritev64 F
-GLIBC_2.10 quick_exit F
-GLIBC_2.10 register_printf_modifier F
-GLIBC_2.10 register_printf_specifier F
-GLIBC_2.10 register_printf_type F
-GLIBC_2.10 setsgent F
-GLIBC_2.10 sgetsgent F
-GLIBC_2.10 sgetsgent_r F
-GLIBC_2.11 __longjmp_chk F
-GLIBC_2.11 execvpe F
-GLIBC_2.11 mkostemps F
-GLIBC_2.11 mkostemps64 F
-GLIBC_2.11 mkstemps F
-GLIBC_2.11 mkstemps64 F
-GLIBC_2.12 _sys_errlist D 0x438
-GLIBC_2.12 _sys_nerr D 0x4
-GLIBC_2.12 ntp_gettimex F
-GLIBC_2.12 recvmmsg F
-GLIBC_2.12 sys_errlist D 0x438
-GLIBC_2.12 sys_nerr D 0x4
-GLIBC_2.13 fanotify_init F
-GLIBC_2.13 fanotify_mark F
-GLIBC_2.13 prlimit F
-GLIBC_2.13 prlimit64 F
-GLIBC_2.14 clock_adjtime F
-GLIBC_2.14 name_to_handle_at F
-GLIBC_2.14 open_by_handle_at F
-GLIBC_2.14 sendmmsg F
-GLIBC_2.14 setns F
-GLIBC_2.14 syncfs F
-GLIBC_2.15 __fdelt_chk F
-GLIBC_2.15 __fdelt_warn F
-GLIBC_2.15 posix_spawn F
-GLIBC_2.15 posix_spawnp F
-GLIBC_2.15 process_vm_readv F
-GLIBC_2.15 process_vm_writev F
-GLIBC_2.15 scandirat F
-GLIBC_2.15 scandirat64 F
-GLIBC_2.16 __getauxval F
-GLIBC_2.16 __poll_chk F
-GLIBC_2.16 __ppoll_chk F
-GLIBC_2.16 aligned_alloc F
-GLIBC_2.16 c16rtomb F
-GLIBC_2.16 c32rtomb F
-GLIBC_2.16 getauxval F
-GLIBC_2.16 mbrtoc16 F
-GLIBC_2.16 mbrtoc32 F
-GLIBC_2.16 timespec_get F
-GLIBC_2.17 __ppc_get_timebase_freq F
-GLIBC_2.17 clock_getcpuclockid F
-GLIBC_2.17 clock_getres F
-GLIBC_2.17 clock_gettime F
-GLIBC_2.17 clock_nanosleep F
-GLIBC_2.17 clock_settime F
-GLIBC_2.17 secure_getenv F
-GLIBC_2.18 __cxa_thread_atexit_impl F
-GLIBC_2.22 fmemopen F
-GLIBC_2.23 fts64_children F
-GLIBC_2.23 fts64_close F
-GLIBC_2.23 fts64_open F
-GLIBC_2.23 fts64_read F
-GLIBC_2.23 fts64_set F
-GLIBC_2.24 quick_exit F
-GLIBC_2.25 __explicit_bzero_chk F
-GLIBC_2.25 explicit_bzero F
-GLIBC_2.25 getentropy F
-GLIBC_2.25 getrandom F
-GLIBC_2.25 strfromd F
-GLIBC_2.25 strfromf F
-GLIBC_2.25 strfroml F
-GLIBC_2.26 preadv2 F
-GLIBC_2.26 preadv64v2 F
-GLIBC_2.26 pwritev2 F
-GLIBC_2.26 pwritev64v2 F
-GLIBC_2.26 reallocarray F
-GLIBC_2.27 copy_file_range F
-GLIBC_2.27 glob F
-GLIBC_2.27 glob64 F
-GLIBC_2.27 memfd_create F
-GLIBC_2.27 mlock2 F
-GLIBC_2.27 pkey_alloc F
-GLIBC_2.27 pkey_free F
-GLIBC_2.27 pkey_get F
-GLIBC_2.27 pkey_mprotect F
-GLIBC_2.27 pkey_set F
-GLIBC_2.27 strfromf32 F
-GLIBC_2.27 strfromf32x F
-GLIBC_2.27 strfromf64 F
-GLIBC_2.27 strtof32 F
-GLIBC_2.27 strtof32_l F
-GLIBC_2.27 strtof32x F
-GLIBC_2.27 strtof32x_l F
-GLIBC_2.27 strtof64 F
-GLIBC_2.27 strtof64_l F
-GLIBC_2.27 wcstof32 F
-GLIBC_2.27 wcstof32_l F
-GLIBC_2.27 wcstof32x F
-GLIBC_2.27 wcstof32x_l F
-GLIBC_2.27 wcstof64 F
-GLIBC_2.27 wcstof64_l F
-GLIBC_2.28 fcntl64 F
-GLIBC_2.28 renameat2 F
-GLIBC_2.28 statx F
-GLIBC_2.28 thrd_current F
-GLIBC_2.28 thrd_equal F
-GLIBC_2.28 thrd_sleep F
-GLIBC_2.28 thrd_yield F
-GLIBC_2.3 _Exit F
-GLIBC_2.3 _IO_2_1_stderr_ D 0xe0
-GLIBC_2.3 _IO_2_1_stdin_ D 0xe0
-GLIBC_2.3 _IO_2_1_stdout_ D 0xe0
-GLIBC_2.3 _IO_adjust_column F
-GLIBC_2.3 _IO_adjust_wcolumn F
-GLIBC_2.3 _IO_default_doallocate F
-GLIBC_2.3 _IO_default_finish F
-GLIBC_2.3 _IO_default_pbackfail F
-GLIBC_2.3 _IO_default_uflow F
-GLIBC_2.3 _IO_default_xsgetn F
-GLIBC_2.3 _IO_default_xsputn F
-GLIBC_2.3 _IO_do_write F
-GLIBC_2.3 _IO_doallocbuf F
-GLIBC_2.3 _IO_fclose F
-GLIBC_2.3 _IO_fdopen F
-GLIBC_2.3 _IO_feof F
-GLIBC_2.3 _IO_ferror F
-GLIBC_2.3 _IO_fflush F
-GLIBC_2.3 _IO_fgetpos F
-GLIBC_2.3 _IO_fgetpos64 F
-GLIBC_2.3 _IO_fgets F
-GLIBC_2.3 _IO_file_attach F
-GLIBC_2.3 _IO_file_close F
-GLIBC_2.3 _IO_file_close_it F
-GLIBC_2.3 _IO_file_doallocate F
-GLIBC_2.3 _IO_file_finish F
-GLIBC_2.3 _IO_file_fopen F
-GLIBC_2.3 _IO_file_init F
-GLIBC_2.3 _IO_file_jumps D 0xa8
-GLIBC_2.3 _IO_file_open F
-GLIBC_2.3 _IO_file_overflow F
-GLIBC_2.3 _IO_file_read F
-GLIBC_2.3 _IO_file_seek F
-GLIBC_2.3 _IO_file_seekoff F
-GLIBC_2.3 _IO_file_setbuf F
-GLIBC_2.3 _IO_file_stat F
-GLIBC_2.3 _IO_file_sync F
-GLIBC_2.3 _IO_file_underflow F
-GLIBC_2.3 _IO_file_write F
-GLIBC_2.3 _IO_file_xsputn F
-GLIBC_2.3 _IO_flockfile F
-GLIBC_2.3 _IO_flush_all F
-GLIBC_2.3 _IO_flush_all_linebuffered F
-GLIBC_2.3 _IO_fopen F
-GLIBC_2.3 _IO_fprintf F
-GLIBC_2.3 _IO_fputs F
-GLIBC_2.3 _IO_fread F
-GLIBC_2.3 _IO_free_backup_area F
-GLIBC_2.3 _IO_free_wbackup_area F
-GLIBC_2.3 _IO_fsetpos F
-GLIBC_2.3 _IO_fsetpos64 F
-GLIBC_2.3 _IO_ftell F
-GLIBC_2.3 _IO_ftrylockfile F
-GLIBC_2.3 _IO_funlockfile F
-GLIBC_2.3 _IO_fwrite F
-GLIBC_2.3 _IO_getc F
-GLIBC_2.3 _IO_getline F
-GLIBC_2.3 _IO_getline_info F
-GLIBC_2.3 _IO_gets F
-GLIBC_2.3 _IO_init F
-GLIBC_2.3 _IO_init_marker F
-GLIBC_2.3 _IO_init_wmarker F
-GLIBC_2.3 _IO_iter_begin F
-GLIBC_2.3 _IO_iter_end F
-GLIBC_2.3 _IO_iter_file F
-GLIBC_2.3 _IO_iter_next F
-GLIBC_2.3 _IO_least_wmarker F
-GLIBC_2.3 _IO_link_in F
-GLIBC_2.3 _IO_list_all D 0x8
-GLIBC_2.3 _IO_list_lock F
-GLIBC_2.3 _IO_list_resetlock F
-GLIBC_2.3 _IO_list_unlock F
-GLIBC_2.3 _IO_marker_delta F
-GLIBC_2.3 _IO_marker_difference F
-GLIBC_2.3 _IO_padn F
-GLIBC_2.3 _IO_peekc_locked F
-GLIBC_2.3 _IO_popen F
-GLIBC_2.3 _IO_printf F
-GLIBC_2.3 _IO_proc_close F
-GLIBC_2.3 _IO_proc_open F
-GLIBC_2.3 _IO_putc F
-GLIBC_2.3 _IO_puts F
-GLIBC_2.3 _IO_remove_marker F
-GLIBC_2.3 _IO_seekmark F
-GLIBC_2.3 _IO_seekoff F
-GLIBC_2.3 _IO_seekpos F
-GLIBC_2.3 _IO_seekwmark F
-GLIBC_2.3 _IO_setb F
-GLIBC_2.3 _IO_setbuffer F
-GLIBC_2.3 _IO_setvbuf F
-GLIBC_2.3 _IO_sgetn F
-GLIBC_2.3 _IO_sprintf F
-GLIBC_2.3 _IO_sputbackc F
-GLIBC_2.3 _IO_sputbackwc F
-GLIBC_2.3 _IO_sscanf F
-GLIBC_2.3 _IO_str_init_readonly F
-GLIBC_2.3 _IO_str_init_static F
-GLIBC_2.3 _IO_str_overflow F
-GLIBC_2.3 _IO_str_pbackfail F
-GLIBC_2.3 _IO_str_seekoff F
-GLIBC_2.3 _IO_str_underflow F
-GLIBC_2.3 _IO_sungetc F
-GLIBC_2.3 _IO_sungetwc F
-GLIBC_2.3 _IO_switch_to_get_mode F
-GLIBC_2.3 _IO_switch_to_main_wget_area F
-GLIBC_2.3 _IO_switch_to_wbackup_area F
-GLIBC_2.3 _IO_switch_to_wget_mode F
-GLIBC_2.3 _IO_un_link F
-GLIBC_2.3 _IO_ungetc F
-GLIBC_2.3 _IO_unsave_markers F
-GLIBC_2.3 _IO_unsave_wmarkers F
-GLIBC_2.3 _IO_vfprintf F
-GLIBC_2.3 _IO_vfscanf F
-GLIBC_2.3 _IO_vsprintf F
-GLIBC_2.3 _IO_wdefault_doallocate F
-GLIBC_2.3 _IO_wdefault_finish F
-GLIBC_2.3 _IO_wdefault_pbackfail F
-GLIBC_2.3 _IO_wdefault_uflow F
-GLIBC_2.3 _IO_wdefault_xsgetn F
-GLIBC_2.3 _IO_wdefault_xsputn F
-GLIBC_2.3 _IO_wdo_write F
-GLIBC_2.3 _IO_wdoallocbuf F
-GLIBC_2.3 _IO_wfile_jumps D 0xa8
-GLIBC_2.3 _IO_wfile_overflow F
-GLIBC_2.3 _IO_wfile_seekoff F
-GLIBC_2.3 _IO_wfile_sync F
-GLIBC_2.3 _IO_wfile_underflow F
-GLIBC_2.3 _IO_wfile_xsputn F
-GLIBC_2.3 _IO_wmarker_delta F
-GLIBC_2.3 _IO_wsetb F
-GLIBC_2.3 __adjtimex F
-GLIBC_2.3 __after_morecore_hook D 0x8
-GLIBC_2.3 __argz_count F
-GLIBC_2.3 __argz_next F
-GLIBC_2.3 __argz_stringify F
-GLIBC_2.3 __asprintf F
-GLIBC_2.3 __assert F
-GLIBC_2.3 __assert_fail F
-GLIBC_2.3 __assert_perror_fail F
-GLIBC_2.3 __backtrace F
-GLIBC_2.3 __backtrace_symbols F
-GLIBC_2.3 __backtrace_symbols_fd F
-GLIBC_2.3 __bsd_getpgrp F
-GLIBC_2.3 __bzero F
-GLIBC_2.3 __check_rhosts_file D 0x4
-GLIBC_2.3 __clone F
-GLIBC_2.3 __close F
-GLIBC_2.3 __cmsg_nxthdr F
-GLIBC_2.3 __connect F
-GLIBC_2.3 __ctype_b_loc F
-GLIBC_2.3 __ctype_get_mb_cur_max F
-GLIBC_2.3 __ctype_tolower_loc F
-GLIBC_2.3 __ctype_toupper_loc F
-GLIBC_2.3 __curbrk D 0x8
-GLIBC_2.3 __cxa_atexit F
-GLIBC_2.3 __cxa_finalize F
-GLIBC_2.3 __cyg_profile_func_enter F
-GLIBC_2.3 __cyg_profile_func_exit F
-GLIBC_2.3 __daylight D 0x4
-GLIBC_2.3 __dcgettext F
-GLIBC_2.3 __default_morecore F
-GLIBC_2.3 __dgettext F
-GLIBC_2.3 __dup2 F
-GLIBC_2.3 __duplocale F
-GLIBC_2.3 __endmntent F
-GLIBC_2.3 __environ D 0x8
-GLIBC_2.3 __errno_location F
-GLIBC_2.3 __fbufsize F
-GLIBC_2.3 __fcntl F
-GLIBC_2.3 __ffs F
-GLIBC_2.3 __finite F
-GLIBC_2.3 __finitef F
-GLIBC_2.3 __finitel F
-GLIBC_2.3 __flbf F
-GLIBC_2.3 __fork F
-GLIBC_2.3 __fpending F
-GLIBC_2.3 __fpu_control D 0x4
-GLIBC_2.3 __fpurge F
-GLIBC_2.3 __freadable F
-GLIBC_2.3 __freading F
-GLIBC_2.3 __free_hook D 0x8
-GLIBC_2.3 __freelocale F
-GLIBC_2.3 __fsetlocking F
-GLIBC_2.3 __fwritable F
-GLIBC_2.3 __fwriting F
-GLIBC_2.3 __fxstat F
-GLIBC_2.3 __fxstat64 F
-GLIBC_2.3 __getdelim F
-GLIBC_2.3 __getmntent_r F
-GLIBC_2.3 __getpagesize F
-GLIBC_2.3 __getpgid F
-GLIBC_2.3 __getpid F
-GLIBC_2.3 __gettimeofday F
-GLIBC_2.3 __gmtime_r F
-GLIBC_2.3 __h_errno_location F
-GLIBC_2.3 __isalnum_l F
-GLIBC_2.3 __isalpha_l F
-GLIBC_2.3 __isascii_l F
-GLIBC_2.3 __isblank_l F
-GLIBC_2.3 __iscntrl_l F
-GLIBC_2.3 __isctype F
-GLIBC_2.3 __isdigit_l F
-GLIBC_2.3 __isgraph_l F
-GLIBC_2.3 __isinf F
-GLIBC_2.3 __isinff F
-GLIBC_2.3 __isinfl F
-GLIBC_2.3 __islower_l F
-GLIBC_2.3 __isnan F
-GLIBC_2.3 __isnanf F
-GLIBC_2.3 __isnanl F
-GLIBC_2.3 __isprint_l F
-GLIBC_2.3 __ispunct_l F
-GLIBC_2.3 __isspace_l F
-GLIBC_2.3 __isupper_l F
-GLIBC_2.3 __iswalnum_l F
-GLIBC_2.3 __iswalpha_l F
-GLIBC_2.3 __iswblank_l F
-GLIBC_2.3 __iswcntrl_l F
-GLIBC_2.3 __iswctype F
-GLIBC_2.3 __iswctype_l F
-GLIBC_2.3 __iswdigit_l F
-GLIBC_2.3 __iswgraph_l F
-GLIBC_2.3 __iswlower_l F
-GLIBC_2.3 __iswprint_l F
-GLIBC_2.3 __iswpunct_l F
-GLIBC_2.3 __iswspace_l F
-GLIBC_2.3 __iswupper_l F
-GLIBC_2.3 __iswxdigit_l F
-GLIBC_2.3 __isxdigit_l F
-GLIBC_2.3 __ivaliduser F
-GLIBC_2.3 __key_decryptsession_pk_LOCAL D 0x8
-GLIBC_2.3 __key_encryptsession_pk_LOCAL D 0x8
-GLIBC_2.3 __key_gendes_LOCAL D 0x8
-GLIBC_2.3 __libc_allocate_rtsig F
-GLIBC_2.3 __libc_calloc F
-GLIBC_2.3 __libc_current_sigrtmax F
-GLIBC_2.3 __libc_current_sigrtmin F
-GLIBC_2.3 __libc_free F
-GLIBC_2.3 __libc_freeres F
-GLIBC_2.3 __libc_init_first F
-GLIBC_2.3 __libc_mallinfo F
-GLIBC_2.3 __libc_malloc F
-GLIBC_2.3 __libc_mallopt F
-GLIBC_2.3 __libc_memalign F
-GLIBC_2.3 __libc_pvalloc F
-GLIBC_2.3 __libc_realloc F
-GLIBC_2.3 __libc_sa_len F
-GLIBC_2.3 __libc_start_main F
-GLIBC_2.3 __libc_valloc F
-GLIBC_2.3 __lseek F
-GLIBC_2.3 __lxstat F
-GLIBC_2.3 __lxstat64 F
-GLIBC_2.3 __malloc_hook D 0x8
-GLIBC_2.3 __malloc_initialize_hook D 0x8
-GLIBC_2.3 __mbrlen F
-GLIBC_2.3 __mbrtowc F
-GLIBC_2.3 __memalign_hook D 0x8
-GLIBC_2.3 __mempcpy F
-GLIBC_2.3 __mempcpy_small F
-GLIBC_2.3 __monstartup F
-GLIBC_2.3 __morecore D 0x8
-GLIBC_2.3 __nanosleep F
-GLIBC_2.3 __newlocale F
-GLIBC_2.3 __nl_langinfo_l F
-GLIBC_2.3 __nss_configure_lookup F
-GLIBC_2.3 __nss_database_lookup F
-GLIBC_2.3 __nss_group_lookup F
-GLIBC_2.3 __nss_hostname_digits_dots F
-GLIBC_2.3 __nss_hosts_lookup F
-GLIBC_2.3 __nss_next F
-GLIBC_2.3 __nss_passwd_lookup F
-GLIBC_2.3 __open F
-GLIBC_2.3 __open64 F
-GLIBC_2.3 __overflow F
-GLIBC_2.3 __pipe F
-GLIBC_2.3 __poll F
-GLIBC_2.3 __pread64 F
-GLIBC_2.3 __printf_fp F
-GLIBC_2.3 __profile_frequency F
-GLIBC_2.3 __progname D 0x8
-GLIBC_2.3 __progname_full D 0x8
-GLIBC_2.3 __pwrite64 F
-GLIBC_2.3 __rawmemchr F
-GLIBC_2.3 __rcmd_errstr D 0x8
-GLIBC_2.3 __read F
-GLIBC_2.3 __realloc_hook D 0x8
-GLIBC_2.3 __res_init F
-GLIBC_2.3 __res_nclose F
-GLIBC_2.3 __res_ninit F
-GLIBC_2.3 __res_randomid F
-GLIBC_2.3 __res_state F
-GLIBC_2.3 __rpc_thread_createerr F
-GLIBC_2.3 __rpc_thread_svc_fdset F
-GLIBC_2.3 __rpc_thread_svc_max_pollfd F
-GLIBC_2.3 __rpc_thread_svc_pollfd F
-GLIBC_2.3 __sbrk F
-GLIBC_2.3 __sched_get_priority_max F
-GLIBC_2.3 __sched_get_priority_min F
-GLIBC_2.3 __sched_getparam F
-GLIBC_2.3 __sched_getscheduler F
-GLIBC_2.3 __sched_setscheduler F
-GLIBC_2.3 __sched_yield F
-GLIBC_2.3 __secure_getenv F
-GLIBC_2.3 __select F
-GLIBC_2.3 __send F
-GLIBC_2.3 __setmntent F
-GLIBC_2.3 __setpgid F
-GLIBC_2.3 __sigaction F
-GLIBC_2.3 __sigaddset F
-GLIBC_2.3 __sigdelset F
-GLIBC_2.3 __sigismember F
-GLIBC_2.3 __signbit F
-GLIBC_2.3 __signbitf F
-GLIBC_2.3 __sigpause F
-GLIBC_2.3 __sigsetjmp F
-GLIBC_2.3 __sigsuspend F
-GLIBC_2.3 __statfs F
-GLIBC_2.3 __stpcpy F
-GLIBC_2.3 __stpcpy_small F
-GLIBC_2.3 __stpncpy F
-GLIBC_2.3 __strcasecmp F
-GLIBC_2.3 __strcasecmp_l F
-GLIBC_2.3 __strcasestr F
-GLIBC_2.3 __strcoll_l F
-GLIBC_2.3 __strcpy_small F
-GLIBC_2.3 __strcspn_c1 F
-GLIBC_2.3 __strcspn_c2 F
-GLIBC_2.3 __strcspn_c3 F
-GLIBC_2.3 __strdup F
-GLIBC_2.3 __strerror_r F
-GLIBC_2.3 __strfmon_l F
-GLIBC_2.3 __strftime_l F
-GLIBC_2.3 __strncasecmp_l F
-GLIBC_2.3 __strndup F
-GLIBC_2.3 __strpbrk_c2 F
-GLIBC_2.3 __strpbrk_c3 F
-GLIBC_2.3 __strsep_1c F
-GLIBC_2.3 __strsep_2c F
-GLIBC_2.3 __strsep_3c F
-GLIBC_2.3 __strsep_g F
-GLIBC_2.3 __strspn_c1 F
-GLIBC_2.3 __strspn_c2 F
-GLIBC_2.3 __strspn_c3 F
-GLIBC_2.3 __strtod_internal F
-GLIBC_2.3 __strtod_l F
-GLIBC_2.3 __strtof_internal F
-GLIBC_2.3 __strtof_l F
-GLIBC_2.3 __strtok_r F
-GLIBC_2.3 __strtok_r_1c F
-GLIBC_2.3 __strtol_internal F
-GLIBC_2.3 __strtol_l F
-GLIBC_2.3 __strtold_internal F
-GLIBC_2.3 __strtold_l F
-GLIBC_2.3 __strtoll_internal F
-GLIBC_2.3 __strtoll_l F
-GLIBC_2.3 __strtoul_internal F
-GLIBC_2.3 __strtoul_l F
-GLIBC_2.3 __strtoull_internal F
-GLIBC_2.3 __strtoull_l F
-GLIBC_2.3 __strverscmp F
-GLIBC_2.3 __strxfrm_l F
-GLIBC_2.3 __sysconf F
-GLIBC_2.3 __sysctl F
-GLIBC_2.3 __sysv_signal F
-GLIBC_2.3 __timezone D 0x8
-GLIBC_2.3 __toascii_l F
-GLIBC_2.3 __tolower_l F
-GLIBC_2.3 __toupper_l F
-GLIBC_2.3 __towctrans F
-GLIBC_2.3 __towctrans_l F
-GLIBC_2.3 __towlower_l F
-GLIBC_2.3 __towupper_l F
-GLIBC_2.3 __tzname D 0x10
-GLIBC_2.3 __uflow F
-GLIBC_2.3 __underflow F
-GLIBC_2.3 __uselocale F
-GLIBC_2.3 __vfork F
-GLIBC_2.3 __vfscanf F
-GLIBC_2.3 __vsnprintf F
-GLIBC_2.3 __vsscanf F
-GLIBC_2.3 __wait F
-GLIBC_2.3 __waitpid F
-GLIBC_2.3 __wcscasecmp_l F
-GLIBC_2.3 __wcscoll_l F
-GLIBC_2.3 __wcsftime_l F
-GLIBC_2.3 __wcsncasecmp_l F
-GLIBC_2.3 __wcstod_internal F
-GLIBC_2.3 __wcstod_l F
-GLIBC_2.3 __wcstof_internal F
-GLIBC_2.3 __wcstof_l F
-GLIBC_2.3 __wcstol_internal F
-GLIBC_2.3 __wcstol_l F
-GLIBC_2.3 __wcstold_internal F
-GLIBC_2.3 __wcstold_l F
-GLIBC_2.3 __wcstoll_internal F
-GLIBC_2.3 __wcstoll_l F
-GLIBC_2.3 __wcstoul_internal F
-GLIBC_2.3 __wcstoul_l F
-GLIBC_2.3 __wcstoull_internal F
-GLIBC_2.3 __wcstoull_l F
-GLIBC_2.3 __wcsxfrm_l F
-GLIBC_2.3 __wctrans_l F
-GLIBC_2.3 __wctype_l F
-GLIBC_2.3 __woverflow F
-GLIBC_2.3 __write F
-GLIBC_2.3 __wuflow F
-GLIBC_2.3 __wunderflow F
-GLIBC_2.3 __xmknod F
-GLIBC_2.3 __xpg_basename F
-GLIBC_2.3 __xpg_sigpause F
-GLIBC_2.3 __xstat F
-GLIBC_2.3 __xstat64 F
-GLIBC_2.3 _authenticate F
-GLIBC_2.3 _dl_mcount_wrapper F
-GLIBC_2.3 _dl_mcount_wrapper_check F
-GLIBC_2.3 _environ D 0x8
-GLIBC_2.3 _exit F
-GLIBC_2.3 _flushlbf F
-GLIBC_2.3 _libc_intl_domainname D 0x5
-GLIBC_2.3 _longjmp F
-GLIBC_2.3 _mcleanup F
-GLIBC_2.3 _mcount F
-GLIBC_2.3 _nl_default_dirname D 0x12
-GLIBC_2.3 _nl_domain_bindings D 0x8
-GLIBC_2.3 _nl_msg_cat_cntr D 0x4
-GLIBC_2.3 _null_auth D 0x18
-GLIBC_2.3 _obstack D 0x8
-GLIBC_2.3 _obstack_allocated_p F
-GLIBC_2.3 _obstack_begin F
-GLIBC_2.3 _obstack_begin_1 F
-GLIBC_2.3 _obstack_free F
-GLIBC_2.3 _obstack_memory_used F
-GLIBC_2.3 _obstack_newchunk F
-GLIBC_2.3 _res D 0x238
-GLIBC_2.3 _res_hconf D 0x48
-GLIBC_2.3 _rpc_dtablesize F
-GLIBC_2.3 _seterr_reply F
-GLIBC_2.3 _setjmp F
-GLIBC_2.3 _sys_errlist D 0x3f0
-GLIBC_2.3 _sys_nerr D 0x4
-GLIBC_2.3 _sys_siglist D 0x200
-GLIBC_2.3 _tolower F
-GLIBC_2.3 _toupper F
-GLIBC_2.3 a64l F
-GLIBC_2.3 abort F
-GLIBC_2.3 abs F
-GLIBC_2.3 accept F
-GLIBC_2.3 access F
-GLIBC_2.3 acct F
-GLIBC_2.3 addmntent F
-GLIBC_2.3 addseverity F
-GLIBC_2.3 adjtime F
-GLIBC_2.3 adjtimex F
-GLIBC_2.3 advance F
-GLIBC_2.3 alarm F
-GLIBC_2.3 alphasort F
-GLIBC_2.3 alphasort64 F
-GLIBC_2.3 argp_err_exit_status D 0x4
-GLIBC_2.3 argp_error F
-GLIBC_2.3 argp_failure F
-GLIBC_2.3 argp_help F
-GLIBC_2.3 argp_parse F
-GLIBC_2.3 argp_program_bug_address D 0x8
-GLIBC_2.3 argp_program_version D 0x8
-GLIBC_2.3 argp_program_version_hook D 0x8
-GLIBC_2.3 argp_state_help F
-GLIBC_2.3 argp_usage F
-GLIBC_2.3 argz_add F
-GLIBC_2.3 argz_add_sep F
-GLIBC_2.3 argz_append F
-GLIBC_2.3 argz_count F
-GLIBC_2.3 argz_create F
-GLIBC_2.3 argz_create_sep F
-GLIBC_2.3 argz_delete F
-GLIBC_2.3 argz_extract F
-GLIBC_2.3 argz_insert F
-GLIBC_2.3 argz_next F
-GLIBC_2.3 argz_replace F
-GLIBC_2.3 argz_stringify F
-GLIBC_2.3 asctime F
-GLIBC_2.3 asctime_r F
-GLIBC_2.3 asprintf F
-GLIBC_2.3 atof F
-GLIBC_2.3 atoi F
-GLIBC_2.3 atol F
-GLIBC_2.3 atoll F
-GLIBC_2.3 authdes_create F
-GLIBC_2.3 authdes_getucred F
-GLIBC_2.3 authdes_pk_create F
-GLIBC_2.3 authnone_create F
-GLIBC_2.3 authunix_create F
-GLIBC_2.3 authunix_create_default F
-GLIBC_2.3 backtrace F
-GLIBC_2.3 backtrace_symbols F
-GLIBC_2.3 backtrace_symbols_fd F
-GLIBC_2.3 basename F
-GLIBC_2.3 bcmp F
-GLIBC_2.3 bcopy F
-GLIBC_2.3 bdflush F
-GLIBC_2.3 bind F
-GLIBC_2.3 bind_textdomain_codeset F
-GLIBC_2.3 bindresvport F
-GLIBC_2.3 bindtextdomain F
-GLIBC_2.3 brk F
-GLIBC_2.3 bsd_signal F
-GLIBC_2.3 bsearch F
-GLIBC_2.3 btowc F
-GLIBC_2.3 bzero F
-GLIBC_2.3 calloc F
-GLIBC_2.3 callrpc F
-GLIBC_2.3 canonicalize_file_name F
-GLIBC_2.3 capget F
-GLIBC_2.3 capset F
-GLIBC_2.3 catclose F
-GLIBC_2.3 catgets F
-GLIBC_2.3 catopen F
-GLIBC_2.3 cbc_crypt F
-GLIBC_2.3 cfgetispeed F
-GLIBC_2.3 cfgetospeed F
-GLIBC_2.3 cfmakeraw F
-GLIBC_2.3 cfree F
-GLIBC_2.3 cfsetispeed F
-GLIBC_2.3 cfsetospeed F
-GLIBC_2.3 cfsetspeed F
-GLIBC_2.3 chdir F
-GLIBC_2.3 chflags F
-GLIBC_2.3 chmod F
-GLIBC_2.3 chown F
-GLIBC_2.3 chroot F
-GLIBC_2.3 clearenv F
-GLIBC_2.3 clearerr F
-GLIBC_2.3 clearerr_unlocked F
-GLIBC_2.3 clnt_broadcast F
-GLIBC_2.3 clnt_create F
-GLIBC_2.3 clnt_pcreateerror F
-GLIBC_2.3 clnt_perrno F
-GLIBC_2.3 clnt_perror F
-GLIBC_2.3 clnt_spcreateerror F
-GLIBC_2.3 clnt_sperrno F
-GLIBC_2.3 clnt_sperror F
-GLIBC_2.3 clntraw_create F
-GLIBC_2.3 clnttcp_create F
-GLIBC_2.3 clntudp_bufcreate F
-GLIBC_2.3 clntudp_create F
-GLIBC_2.3 clntunix_create F
-GLIBC_2.3 clock F
-GLIBC_2.3 clone F
-GLIBC_2.3 close F
-GLIBC_2.3 closedir F
-GLIBC_2.3 closelog F
-GLIBC_2.3 confstr F
-GLIBC_2.3 connect F
-GLIBC_2.3 copysign F
-GLIBC_2.3 copysignf F
-GLIBC_2.3 copysignl F
-GLIBC_2.3 creat F
-GLIBC_2.3 creat64 F
-GLIBC_2.3 create_module F
-GLIBC_2.3 ctermid F
-GLIBC_2.3 ctime F
-GLIBC_2.3 ctime_r F
-GLIBC_2.3 cuserid F
-GLIBC_2.3 daemon F
-GLIBC_2.3 daylight D 0x4
-GLIBC_2.3 dcgettext F
-GLIBC_2.3 dcngettext F
-GLIBC_2.3 delete_module F
-GLIBC_2.3 des_setparity F
-GLIBC_2.3 dgettext F
-GLIBC_2.3 difftime F
-GLIBC_2.3 dirfd F
-GLIBC_2.3 dirname F
-GLIBC_2.3 div F
-GLIBC_2.3 dl_iterate_phdr F
-GLIBC_2.3 dngettext F
-GLIBC_2.3 dprintf F
-GLIBC_2.3 drand48 F
-GLIBC_2.3 drand48_r F
-GLIBC_2.3 dup F
-GLIBC_2.3 dup2 F
-GLIBC_2.3 duplocale F
-GLIBC_2.3 dysize F
-GLIBC_2.3 ecb_crypt F
-GLIBC_2.3 ecvt F
-GLIBC_2.3 ecvt_r F
-GLIBC_2.3 endaliasent F
-GLIBC_2.3 endfsent F
-GLIBC_2.3 endgrent F
-GLIBC_2.3 endhostent F
-GLIBC_2.3 endmntent F
-GLIBC_2.3 endnetent F
-GLIBC_2.3 endnetgrent F
-GLIBC_2.3 endprotoent F
-GLIBC_2.3 endpwent F
-GLIBC_2.3 endrpcent F
-GLIBC_2.3 endservent F
-GLIBC_2.3 endspent F
-GLIBC_2.3 endttyent F
-GLIBC_2.3 endusershell F
-GLIBC_2.3 endutent F
-GLIBC_2.3 endutxent F
-GLIBC_2.3 environ D 0x8
-GLIBC_2.3 envz_add F
-GLIBC_2.3 envz_entry F
-GLIBC_2.3 envz_get F
-GLIBC_2.3 envz_merge F
-GLIBC_2.3 envz_remove F
-GLIBC_2.3 envz_strip F
-GLIBC_2.3 erand48 F
-GLIBC_2.3 erand48_r F
-GLIBC_2.3 err F
-GLIBC_2.3 error F
-GLIBC_2.3 error_at_line F
-GLIBC_2.3 error_message_count D 0x4
-GLIBC_2.3 error_one_per_line D 0x4
-GLIBC_2.3 error_print_progname D 0x8
-GLIBC_2.3 errx F
-GLIBC_2.3 ether_aton F
-GLIBC_2.3 ether_aton_r F
-GLIBC_2.3 ether_hostton F
-GLIBC_2.3 ether_line F
-GLIBC_2.3 ether_ntoa F
-GLIBC_2.3 ether_ntoa_r F
-GLIBC_2.3 ether_ntohost F
-GLIBC_2.3 euidaccess F
-GLIBC_2.3 execl F
-GLIBC_2.3 execle F
-GLIBC_2.3 execlp F
-GLIBC_2.3 execv F
-GLIBC_2.3 execve F
-GLIBC_2.3 execvp F
-GLIBC_2.3 exit F
-GLIBC_2.3 fattach F
-GLIBC_2.3 fchdir F
-GLIBC_2.3 fchflags F
-GLIBC_2.3 fchmod F
-GLIBC_2.3 fchown F
-GLIBC_2.3 fclose F
-GLIBC_2.3 fcloseall F
-GLIBC_2.3 fcntl F
-GLIBC_2.3 fcvt F
-GLIBC_2.3 fcvt_r F
-GLIBC_2.3 fdatasync F
-GLIBC_2.3 fdetach F
-GLIBC_2.3 fdopen F
-GLIBC_2.3 feof F
-GLIBC_2.3 feof_unlocked F
-GLIBC_2.3 ferror F
-GLIBC_2.3 ferror_unlocked F
-GLIBC_2.3 fexecve F
-GLIBC_2.3 fflush F
-GLIBC_2.3 fflush_unlocked F
-GLIBC_2.3 ffs F
-GLIBC_2.3 ffsl F
-GLIBC_2.3 ffsll F
-GLIBC_2.3 fgetc F
-GLIBC_2.3 fgetc_unlocked F
-GLIBC_2.3 fgetgrent F
-GLIBC_2.3 fgetgrent_r F
-GLIBC_2.3 fgetpos F
-GLIBC_2.3 fgetpos64 F
-GLIBC_2.3 fgetpwent F
-GLIBC_2.3 fgetpwent_r F
-GLIBC_2.3 fgets F
-GLIBC_2.3 fgets_unlocked F
-GLIBC_2.3 fgetspent F
-GLIBC_2.3 fgetspent_r F
-GLIBC_2.3 fgetwc F
-GLIBC_2.3 fgetwc_unlocked F
-GLIBC_2.3 fgetws F
-GLIBC_2.3 fgetws_unlocked F
-GLIBC_2.3 fgetxattr F
-GLIBC_2.3 fileno F
-GLIBC_2.3 fileno_unlocked F
-GLIBC_2.3 finite F
-GLIBC_2.3 finitef F
-GLIBC_2.3 finitel F
-GLIBC_2.3 flistxattr F
-GLIBC_2.3 flock F
-GLIBC_2.3 flockfile F
-GLIBC_2.3 fmemopen F
-GLIBC_2.3 fmtmsg F
-GLIBC_2.3 fnmatch F
-GLIBC_2.3 fopen F
-GLIBC_2.3 fopen64 F
-GLIBC_2.3 fopencookie F
-GLIBC_2.3 fork F
-GLIBC_2.3 fpathconf F
-GLIBC_2.3 fprintf F
-GLIBC_2.3 fputc F
-GLIBC_2.3 fputc_unlocked F
-GLIBC_2.3 fputs F
-GLIBC_2.3 fputs_unlocked F
-GLIBC_2.3 fputwc F
-GLIBC_2.3 fputwc_unlocked F
-GLIBC_2.3 fputws F
-GLIBC_2.3 fputws_unlocked F
-GLIBC_2.3 fread F
-GLIBC_2.3 fread_unlocked F
-GLIBC_2.3 free F
-GLIBC_2.3 freeaddrinfo F
-GLIBC_2.3 freeifaddrs F
-GLIBC_2.3 freelocale F
-GLIBC_2.3 fremovexattr F
-GLIBC_2.3 freopen F
-GLIBC_2.3 freopen64 F
-GLIBC_2.3 frexp F
-GLIBC_2.3 frexpf F
-GLIBC_2.3 frexpl F
-GLIBC_2.3 fscanf F
-GLIBC_2.3 fseek F
-GLIBC_2.3 fseeko F
-GLIBC_2.3 fseeko64 F
-GLIBC_2.3 fsetpos F
-GLIBC_2.3 fsetpos64 F
-GLIBC_2.3 fsetxattr F
-GLIBC_2.3 fstatfs F
-GLIBC_2.3 fstatfs64 F
-GLIBC_2.3 fstatvfs F
-GLIBC_2.3 fstatvfs64 F
-GLIBC_2.3 fsync F
-GLIBC_2.3 ftell F
-GLIBC_2.3 ftello F
-GLIBC_2.3 ftello64 F
-GLIBC_2.3 ftime F
-GLIBC_2.3 ftok F
-GLIBC_2.3 ftruncate F
-GLIBC_2.3 ftruncate64 F
-GLIBC_2.3 ftrylockfile F
-GLIBC_2.3 fts_children F
-GLIBC_2.3 fts_close F
-GLIBC_2.3 fts_open F
-GLIBC_2.3 fts_read F
-GLIBC_2.3 fts_set F
-GLIBC_2.3 ftw F
-GLIBC_2.3 ftw64 F
-GLIBC_2.3 funlockfile F
-GLIBC_2.3 futimes F
-GLIBC_2.3 fwide F
-GLIBC_2.3 fwprintf F
-GLIBC_2.3 fwrite F
-GLIBC_2.3 fwrite_unlocked F
-GLIBC_2.3 fwscanf F
-GLIBC_2.3 gai_strerror F
-GLIBC_2.3 gcvt F
-GLIBC_2.3 get_avphys_pages F
-GLIBC_2.3 get_current_dir_name F
-GLIBC_2.3 get_kernel_syms F
-GLIBC_2.3 get_myaddress F
-GLIBC_2.3 get_nprocs F
-GLIBC_2.3 get_nprocs_conf F
-GLIBC_2.3 get_phys_pages F
-GLIBC_2.3 getaddrinfo F
-GLIBC_2.3 getaliasbyname F
-GLIBC_2.3 getaliasbyname_r F
-GLIBC_2.3 getaliasent F
-GLIBC_2.3 getaliasent_r F
-GLIBC_2.3 getc F
-GLIBC_2.3 getc_unlocked F
-GLIBC_2.3 getchar F
-GLIBC_2.3 getchar_unlocked F
-GLIBC_2.3 getcontext F
-GLIBC_2.3 getcwd F
-GLIBC_2.3 getdate F
-GLIBC_2.3 getdate_err D 0x4
-GLIBC_2.3 getdate_r F
-GLIBC_2.3 getdelim F
-GLIBC_2.3 getdirentries F
-GLIBC_2.3 getdirentries64 F
-GLIBC_2.3 getdomainname F
-GLIBC_2.3 getdtablesize F
-GLIBC_2.3 getegid F
-GLIBC_2.3 getenv F
-GLIBC_2.3 geteuid F
-GLIBC_2.3 getfsent F
-GLIBC_2.3 getfsfile F
-GLIBC_2.3 getfsspec F
-GLIBC_2.3 getgid F
-GLIBC_2.3 getgrent F
-GLIBC_2.3 getgrent_r F
-GLIBC_2.3 getgrgid F
-GLIBC_2.3 getgrgid_r F
-GLIBC_2.3 getgrnam F
-GLIBC_2.3 getgrnam_r F
-GLIBC_2.3 getgrouplist F
-GLIBC_2.3 getgroups F
-GLIBC_2.3 gethostbyaddr F
-GLIBC_2.3 gethostbyaddr_r F
-GLIBC_2.3 gethostbyname F
-GLIBC_2.3 gethostbyname2 F
-GLIBC_2.3 gethostbyname2_r F
-GLIBC_2.3 gethostbyname_r F
-GLIBC_2.3 gethostent F
-GLIBC_2.3 gethostent_r F
-GLIBC_2.3 gethostid F
-GLIBC_2.3 gethostname F
-GLIBC_2.3 getifaddrs F
-GLIBC_2.3 getitimer F
-GLIBC_2.3 getline F
-GLIBC_2.3 getloadavg F
-GLIBC_2.3 getlogin F
-GLIBC_2.3 getlogin_r F
-GLIBC_2.3 getmntent F
-GLIBC_2.3 getmntent_r F
-GLIBC_2.3 getmsg F
-GLIBC_2.3 getnameinfo F
-GLIBC_2.3 getnetbyaddr F
-GLIBC_2.3 getnetbyaddr_r F
-GLIBC_2.3 getnetbyname F
-GLIBC_2.3 getnetbyname_r F
-GLIBC_2.3 getnetent F
-GLIBC_2.3 getnetent_r F
-GLIBC_2.3 getnetgrent F
-GLIBC_2.3 getnetgrent_r F
-GLIBC_2.3 getnetname F
-GLIBC_2.3 getopt F
-GLIBC_2.3 getopt_long F
-GLIBC_2.3 getopt_long_only F
-GLIBC_2.3 getpagesize F
-GLIBC_2.3 getpass F
-GLIBC_2.3 getpeername F
-GLIBC_2.3 getpgid F
-GLIBC_2.3 getpgrp F
-GLIBC_2.3 getpid F
-GLIBC_2.3 getpmsg F
-GLIBC_2.3 getppid F
-GLIBC_2.3 getpriority F
-GLIBC_2.3 getprotobyname F
-GLIBC_2.3 getprotobyname_r F
-GLIBC_2.3 getprotobynumber F
-GLIBC_2.3 getprotobynumber_r F
-GLIBC_2.3 getprotoent F
-GLIBC_2.3 getprotoent_r F
-GLIBC_2.3 getpt F
-GLIBC_2.3 getpublickey F
-GLIBC_2.3 getpw F
-GLIBC_2.3 getpwent F
-GLIBC_2.3 getpwent_r F
-GLIBC_2.3 getpwnam F
-GLIBC_2.3 getpwnam_r F
-GLIBC_2.3 getpwuid F
-GLIBC_2.3 getpwuid_r F
-GLIBC_2.3 getresgid F
-GLIBC_2.3 getresuid F
-GLIBC_2.3 getrlimit F
-GLIBC_2.3 getrlimit64 F
-GLIBC_2.3 getrpcbyname F
-GLIBC_2.3 getrpcbyname_r F
-GLIBC_2.3 getrpcbynumber F
-GLIBC_2.3 getrpcbynumber_r F
-GLIBC_2.3 getrpcent F
-GLIBC_2.3 getrpcent_r F
-GLIBC_2.3 getrpcport F
-GLIBC_2.3 getrusage F
-GLIBC_2.3 gets F
-GLIBC_2.3 getsecretkey F
-GLIBC_2.3 getservbyname F
-GLIBC_2.3 getservbyname_r F
-GLIBC_2.3 getservbyport F
-GLIBC_2.3 getservbyport_r F
-GLIBC_2.3 getservent F
-GLIBC_2.3 getservent_r F
-GLIBC_2.3 getsid F
-GLIBC_2.3 getsockname F
-GLIBC_2.3 getsockopt F
-GLIBC_2.3 getspent F
-GLIBC_2.3 getspent_r F
-GLIBC_2.3 getspnam F
-GLIBC_2.3 getspnam_r F
-GLIBC_2.3 getsubopt F
-GLIBC_2.3 gettext F
-GLIBC_2.3 gettimeofday F
-GLIBC_2.3 getttyent F
-GLIBC_2.3 getttynam F
-GLIBC_2.3 getuid F
-GLIBC_2.3 getusershell F
-GLIBC_2.3 getutent F
-GLIBC_2.3 getutent_r F
-GLIBC_2.3 getutid F
-GLIBC_2.3 getutid_r F
-GLIBC_2.3 getutline F
-GLIBC_2.3 getutline_r F
-GLIBC_2.3 getutmp F
-GLIBC_2.3 getutmpx F
-GLIBC_2.3 getutxent F
-GLIBC_2.3 getutxid F
-GLIBC_2.3 getutxline F
-GLIBC_2.3 getw F
-GLIBC_2.3 getwc F
-GLIBC_2.3 getwc_unlocked F
-GLIBC_2.3 getwchar F
-GLIBC_2.3 getwchar_unlocked F
-GLIBC_2.3 getwd F
-GLIBC_2.3 getxattr F
-GLIBC_2.3 glob F
-GLIBC_2.3 glob64 F
-GLIBC_2.3 glob_pattern_p F
-GLIBC_2.3 globfree F
-GLIBC_2.3 globfree64 F
-GLIBC_2.3 gmtime F
-GLIBC_2.3 gmtime_r F
-GLIBC_2.3 gnu_get_libc_release F
-GLIBC_2.3 gnu_get_libc_version F
-GLIBC_2.3 grantpt F
-GLIBC_2.3 group_member F
-GLIBC_2.3 gsignal F
-GLIBC_2.3 gtty F
-GLIBC_2.3 h_errlist D 0x28
-GLIBC_2.3 h_nerr D 0x4
-GLIBC_2.3 hasmntopt F
-GLIBC_2.3 hcreate F
-GLIBC_2.3 hcreate_r F
-GLIBC_2.3 hdestroy F
-GLIBC_2.3 hdestroy_r F
-GLIBC_2.3 herror F
-GLIBC_2.3 host2netname F
-GLIBC_2.3 hsearch F
-GLIBC_2.3 hsearch_r F
-GLIBC_2.3 hstrerror F
-GLIBC_2.3 htonl F
-GLIBC_2.3 htons F
-GLIBC_2.3 iconv F
-GLIBC_2.3 iconv_close F
-GLIBC_2.3 iconv_open F
-GLIBC_2.3 if_freenameindex F
-GLIBC_2.3 if_indextoname F
-GLIBC_2.3 if_nameindex F
-GLIBC_2.3 if_nametoindex F
-GLIBC_2.3 imaxabs F
-GLIBC_2.3 imaxdiv F
-GLIBC_2.3 in6addr_any D 0x10
-GLIBC_2.3 in6addr_loopback D 0x10
-GLIBC_2.3 index F
-GLIBC_2.3 inet_addr F
-GLIBC_2.3 inet_aton F
-GLIBC_2.3 inet_lnaof F
-GLIBC_2.3 inet_makeaddr F
-GLIBC_2.3 inet_netof F
-GLIBC_2.3 inet_network F
-GLIBC_2.3 inet_nsap_addr F
-GLIBC_2.3 inet_nsap_ntoa F
-GLIBC_2.3 inet_ntoa F
-GLIBC_2.3 inet_ntop F
-GLIBC_2.3 inet_pton F
-GLIBC_2.3 init_module F
-GLIBC_2.3 initgroups F
-GLIBC_2.3 initstate F
-GLIBC_2.3 initstate_r F
-GLIBC_2.3 innetgr F
-GLIBC_2.3 insque F
-GLIBC_2.3 ioctl F
-GLIBC_2.3 iruserok F
-GLIBC_2.3 iruserok_af F
-GLIBC_2.3 isalnum F
-GLIBC_2.3 isalnum_l F
-GLIBC_2.3 isalpha F
-GLIBC_2.3 isalpha_l F
-GLIBC_2.3 isascii F
-GLIBC_2.3 isastream F
-GLIBC_2.3 isatty F
-GLIBC_2.3 isblank F
-GLIBC_2.3 isblank_l F
-GLIBC_2.3 iscntrl F
-GLIBC_2.3 iscntrl_l F
-GLIBC_2.3 isctype F
-GLIBC_2.3 isdigit F
-GLIBC_2.3 isdigit_l F
-GLIBC_2.3 isfdtype F
-GLIBC_2.3 isgraph F
-GLIBC_2.3 isgraph_l F
-GLIBC_2.3 isinf F
-GLIBC_2.3 isinff F
-GLIBC_2.3 isinfl F
-GLIBC_2.3 islower F
-GLIBC_2.3 islower_l F
-GLIBC_2.3 isnan F
-GLIBC_2.3 isnanf F
-GLIBC_2.3 isnanl F
-GLIBC_2.3 isprint F
-GLIBC_2.3 isprint_l F
-GLIBC_2.3 ispunct F
-GLIBC_2.3 ispunct_l F
-GLIBC_2.3 isspace F
-GLIBC_2.3 isspace_l F
-GLIBC_2.3 isupper F
-GLIBC_2.3 isupper_l F
-GLIBC_2.3 iswalnum F
-GLIBC_2.3 iswalnum_l F
-GLIBC_2.3 iswalpha F
-GLIBC_2.3 iswalpha_l F
-GLIBC_2.3 iswblank F
-GLIBC_2.3 iswblank_l F
-GLIBC_2.3 iswcntrl F
-GLIBC_2.3 iswcntrl_l F
-GLIBC_2.3 iswctype F
-GLIBC_2.3 iswctype_l F
-GLIBC_2.3 iswdigit F
-GLIBC_2.3 iswdigit_l F
-GLIBC_2.3 iswgraph F
-GLIBC_2.3 iswgraph_l F
-GLIBC_2.3 iswlower F
-GLIBC_2.3 iswlower_l F
-GLIBC_2.3 iswprint F
-GLIBC_2.3 iswprint_l F
-GLIBC_2.3 iswpunct F
-GLIBC_2.3 iswpunct_l F
-GLIBC_2.3 iswspace F
-GLIBC_2.3 iswspace_l F
-GLIBC_2.3 iswupper F
-GLIBC_2.3 iswupper_l F
-GLIBC_2.3 iswxdigit F
-GLIBC_2.3 iswxdigit_l F
-GLIBC_2.3 isxdigit F
-GLIBC_2.3 isxdigit_l F
-GLIBC_2.3 jrand48 F
-GLIBC_2.3 jrand48_r F
-GLIBC_2.3 key_decryptsession F
-GLIBC_2.3 key_decryptsession_pk F
-GLIBC_2.3 key_encryptsession F
-GLIBC_2.3 key_encryptsession_pk F
-GLIBC_2.3 key_gendes F
-GLIBC_2.3 key_get_conv F
-GLIBC_2.3 key_secretkey_is_set F
-GLIBC_2.3 key_setnet F
-GLIBC_2.3 key_setsecret F
-GLIBC_2.3 kill F
-GLIBC_2.3 killpg F
-GLIBC_2.3 klogctl F
-GLIBC_2.3 l64a F
-GLIBC_2.3 labs F
-GLIBC_2.3 lchown F
-GLIBC_2.3 lckpwdf F
-GLIBC_2.3 lcong48 F
-GLIBC_2.3 lcong48_r F
-GLIBC_2.3 ldexp F
-GLIBC_2.3 ldexpf F
-GLIBC_2.3 ldexpl F
-GLIBC_2.3 ldiv F
-GLIBC_2.3 lfind F
-GLIBC_2.3 lgetxattr F
-GLIBC_2.3 link F
-GLIBC_2.3 listen F
-GLIBC_2.3 listxattr F
-GLIBC_2.3 llabs F
-GLIBC_2.3 lldiv F
-GLIBC_2.3 llistxattr F
-GLIBC_2.3 llseek F
-GLIBC_2.3 loc1 D 0x8
-GLIBC_2.3 loc2 D 0x8
-GLIBC_2.3 localeconv F
-GLIBC_2.3 localtime F
-GLIBC_2.3 localtime_r F
-GLIBC_2.3 lockf F
-GLIBC_2.3 lockf64 F
-GLIBC_2.3 locs D 0x8
-GLIBC_2.3 longjmp F
-GLIBC_2.3 lrand48 F
-GLIBC_2.3 lrand48_r F
-GLIBC_2.3 lremovexattr F
-GLIBC_2.3 lsearch F
-GLIBC_2.3 lseek F
-GLIBC_2.3 lseek64 F
-GLIBC_2.3 lsetxattr F
-GLIBC_2.3 lutimes F
-GLIBC_2.3 madvise F
-GLIBC_2.3 makecontext F
-GLIBC_2.3 mallinfo F
-GLIBC_2.3 malloc F
-GLIBC_2.3 malloc_get_state F
-GLIBC_2.3 malloc_set_state F
-GLIBC_2.3 malloc_stats F
-GLIBC_2.3 malloc_trim F
-GLIBC_2.3 malloc_usable_size F
-GLIBC_2.3 mallopt F
-GLIBC_2.3 mallwatch D 0x8
-GLIBC_2.3 mblen F
-GLIBC_2.3 mbrlen F
-GLIBC_2.3 mbrtowc F
-GLIBC_2.3 mbsinit F
-GLIBC_2.3 mbsnrtowcs F
-GLIBC_2.3 mbsrtowcs F
-GLIBC_2.3 mbstowcs F
-GLIBC_2.3 mbtowc F
-GLIBC_2.3 mcheck F
-GLIBC_2.3 mcheck_check_all F
-GLIBC_2.3 mcheck_pedantic F
-GLIBC_2.3 memalign F
-GLIBC_2.3 memccpy F
-GLIBC_2.3 memchr F
-GLIBC_2.3 memcmp F
-GLIBC_2.3 memcpy F
-GLIBC_2.3 memfrob F
-GLIBC_2.3 memmem F
-GLIBC_2.3 memmove F
-GLIBC_2.3 mempcpy F
-GLIBC_2.3 memrchr F
-GLIBC_2.3 memset F
-GLIBC_2.3 mincore F
-GLIBC_2.3 mkdir F
-GLIBC_2.3 mkdtemp F
-GLIBC_2.3 mkfifo F
-GLIBC_2.3 mkstemp F
-GLIBC_2.3 mkstemp64 F
-GLIBC_2.3 mktemp F
-GLIBC_2.3 mktime F
-GLIBC_2.3 mlock F
-GLIBC_2.3 mlockall F
-GLIBC_2.3 mmap F
-GLIBC_2.3 mmap64 F
-GLIBC_2.3 modf F
-GLIBC_2.3 modff F
-GLIBC_2.3 modfl F
-GLIBC_2.3 moncontrol F
-GLIBC_2.3 monstartup F
-GLIBC_2.3 mount F
-GLIBC_2.3 mprobe F
-GLIBC_2.3 mprotect F
-GLIBC_2.3 mrand48 F
-GLIBC_2.3 mrand48_r F
-GLIBC_2.3 mremap F
-GLIBC_2.3 msgctl F
-GLIBC_2.3 msgget F
-GLIBC_2.3 msgrcv F
-GLIBC_2.3 msgsnd F
-GLIBC_2.3 msync F
-GLIBC_2.3 mtrace F
-GLIBC_2.3 munlock F
-GLIBC_2.3 munlockall F
-GLIBC_2.3 munmap F
-GLIBC_2.3 muntrace F
-GLIBC_2.3 nanosleep F
-GLIBC_2.3 netname2host F
-GLIBC_2.3 netname2user F
-GLIBC_2.3 newlocale F
-GLIBC_2.3 nfsservctl F
-GLIBC_2.3 nftw F
-GLIBC_2.3 nftw64 F
-GLIBC_2.3 ngettext F
-GLIBC_2.3 nice F
-GLIBC_2.3 nl_langinfo F
-GLIBC_2.3 nl_langinfo_l F
-GLIBC_2.3 nrand48 F
-GLIBC_2.3 nrand48_r F
-GLIBC_2.3 ntohl F
-GLIBC_2.3 ntohs F
-GLIBC_2.3 ntp_adjtime F
-GLIBC_2.3 ntp_gettime F
-GLIBC_2.3 obstack_alloc_failed_handler D 0x8
-GLIBC_2.3 obstack_exit_failure D 0x4
-GLIBC_2.3 obstack_free F
-GLIBC_2.3 obstack_printf F
-GLIBC_2.3 obstack_vprintf F
-GLIBC_2.3 on_exit F
-GLIBC_2.3 open F
-GLIBC_2.3 open64 F
-GLIBC_2.3 open_memstream F
-GLIBC_2.3 opendir F
-GLIBC_2.3 openlog F
-GLIBC_2.3 optarg D 0x8
-GLIBC_2.3 opterr D 0x4
-GLIBC_2.3 optind D 0x4
-GLIBC_2.3 optopt D 0x4
-GLIBC_2.3 parse_printf_format F
-GLIBC_2.3 passwd2des F
-GLIBC_2.3 pathconf F
-GLIBC_2.3 pause F
-GLIBC_2.3 pclose F
-GLIBC_2.3 perror F
-GLIBC_2.3 personality F
-GLIBC_2.3 pipe F
-GLIBC_2.3 pivot_root F
-GLIBC_2.3 pmap_getmaps F
-GLIBC_2.3 pmap_getport F
-GLIBC_2.3 pmap_rmtcall F
-GLIBC_2.3 pmap_set F
-GLIBC_2.3 pmap_unset F
-GLIBC_2.3 poll F
-GLIBC_2.3 popen F
-GLIBC_2.3 posix_fadvise F
-GLIBC_2.3 posix_fadvise64 F
-GLIBC_2.3 posix_fallocate F
-GLIBC_2.3 posix_fallocate64 F
-GLIBC_2.3 posix_madvise F
-GLIBC_2.3 posix_memalign F
-GLIBC_2.3 posix_openpt F
-GLIBC_2.3 posix_spawn F
-GLIBC_2.3 posix_spawn_file_actions_addclose F
-GLIBC_2.3 posix_spawn_file_actions_adddup2 F
-GLIBC_2.3 posix_spawn_file_actions_addopen F
-GLIBC_2.3 posix_spawn_file_actions_destroy F
-GLIBC_2.3 posix_spawn_file_actions_init F
-GLIBC_2.3 posix_spawnattr_destroy F
-GLIBC_2.3 posix_spawnattr_getflags F
-GLIBC_2.3 posix_spawnattr_getpgroup F
-GLIBC_2.3 posix_spawnattr_getschedparam F
-GLIBC_2.3 posix_spawnattr_getschedpolicy F
-GLIBC_2.3 posix_spawnattr_getsigdefault F
-GLIBC_2.3 posix_spawnattr_getsigmask F
-GLIBC_2.3 posix_spawnattr_init F
-GLIBC_2.3 posix_spawnattr_setflags F
-GLIBC_2.3 posix_spawnattr_setpgroup F
-GLIBC_2.3 posix_spawnattr_setschedparam F
-GLIBC_2.3 posix_spawnattr_setschedpolicy F
-GLIBC_2.3 posix_spawnattr_setsigdefault F
-GLIBC_2.3 posix_spawnattr_setsigmask F
-GLIBC_2.3 posix_spawnp F
-GLIBC_2.3 prctl F
-GLIBC_2.3 pread F
-GLIBC_2.3 pread64 F
-GLIBC_2.3 printf F
-GLIBC_2.3 printf_size F
-GLIBC_2.3 printf_size_info F
-GLIBC_2.3 profil F
-GLIBC_2.3 program_invocation_name D 0x8
-GLIBC_2.3 program_invocation_short_name D 0x8
-GLIBC_2.3 pselect F
-GLIBC_2.3 psignal F
-GLIBC_2.3 pthread_attr_destroy F
-GLIBC_2.3 pthread_attr_getdetachstate F
-GLIBC_2.3 pthread_attr_getinheritsched F
-GLIBC_2.3 pthread_attr_getschedparam F
-GLIBC_2.3 pthread_attr_getschedpolicy F
-GLIBC_2.3 pthread_attr_getscope F
-GLIBC_2.3 pthread_attr_init F
-GLIBC_2.3 pthread_attr_setdetachstate F
-GLIBC_2.3 pthread_attr_setinheritsched F
-GLIBC_2.3 pthread_attr_setschedparam F
-GLIBC_2.3 pthread_attr_setschedpolicy F
-GLIBC_2.3 pthread_attr_setscope F
-GLIBC_2.3 pthread_cond_broadcast F
-GLIBC_2.3 pthread_cond_destroy F
-GLIBC_2.3 pthread_cond_init F
-GLIBC_2.3 pthread_cond_signal F
-GLIBC_2.3 pthread_cond_timedwait F
-GLIBC_2.3 pthread_cond_wait F
-GLIBC_2.3 pthread_condattr_destroy F
-GLIBC_2.3 pthread_condattr_init F
-GLIBC_2.3 pthread_equal F
-GLIBC_2.3 pthread_exit F
-GLIBC_2.3 pthread_getschedparam F
-GLIBC_2.3 pthread_mutex_destroy F
-GLIBC_2.3 pthread_mutex_init F
-GLIBC_2.3 pthread_mutex_lock F
-GLIBC_2.3 pthread_mutex_unlock F
-GLIBC_2.3 pthread_self F
-GLIBC_2.3 pthread_setcancelstate F
-GLIBC_2.3 pthread_setcanceltype F
-GLIBC_2.3 pthread_setschedparam F
-GLIBC_2.3 ptrace F
-GLIBC_2.3 ptsname F
-GLIBC_2.3 ptsname_r F
-GLIBC_2.3 putc F
-GLIBC_2.3 putc_unlocked F
-GLIBC_2.3 putchar F
-GLIBC_2.3 putchar_unlocked F
-GLIBC_2.3 putenv F
-GLIBC_2.3 putgrent F
-GLIBC_2.3 putmsg F
-GLIBC_2.3 putpmsg F
-GLIBC_2.3 putpwent F
-GLIBC_2.3 puts F
-GLIBC_2.3 putspent F
-GLIBC_2.3 pututline F
-GLIBC_2.3 pututxline F
-GLIBC_2.3 putw F
-GLIBC_2.3 putwc F
-GLIBC_2.3 putwc_unlocked F
-GLIBC_2.3 putwchar F
-GLIBC_2.3 putwchar_unlocked F
-GLIBC_2.3 pvalloc F
-GLIBC_2.3 pwrite F
-GLIBC_2.3 pwrite64 F
-GLIBC_2.3 qecvt F
-GLIBC_2.3 qecvt_r F
-GLIBC_2.3 qfcvt F
-GLIBC_2.3 qfcvt_r F
-GLIBC_2.3 qgcvt F
-GLIBC_2.3 qsort F
-GLIBC_2.3 query_module F
-GLIBC_2.3 quotactl F
-GLIBC_2.3 raise F
-GLIBC_2.3 rand F
-GLIBC_2.3 rand_r F
-GLIBC_2.3 random F
-GLIBC_2.3 random_r F
-GLIBC_2.3 rawmemchr F
-GLIBC_2.3 rcmd F
-GLIBC_2.3 rcmd_af F
-GLIBC_2.3 re_comp F
-GLIBC_2.3 re_compile_fastmap F
-GLIBC_2.3 re_compile_pattern F
-GLIBC_2.3 re_exec F
-GLIBC_2.3 re_match F
-GLIBC_2.3 re_match_2 F
-GLIBC_2.3 re_search F
-GLIBC_2.3 re_search_2 F
-GLIBC_2.3 re_set_registers F
-GLIBC_2.3 re_set_syntax F
-GLIBC_2.3 re_syntax_options D 0x8
-GLIBC_2.3 read F
-GLIBC_2.3 readahead F
-GLIBC_2.3 readdir F
-GLIBC_2.3 readdir64 F
-GLIBC_2.3 readdir64_r F
-GLIBC_2.3 readdir_r F
-GLIBC_2.3 readlink F
-GLIBC_2.3 readv F
-GLIBC_2.3 realloc F
-GLIBC_2.3 realpath F
-GLIBC_2.3 reboot F
-GLIBC_2.3 recv F
-GLIBC_2.3 recvfrom F
-GLIBC_2.3 recvmsg F
-GLIBC_2.3 regcomp F
-GLIBC_2.3 regerror F
-GLIBC_2.3 regexec F
-GLIBC_2.3 regfree F
-GLIBC_2.3 register_printf_function F
-GLIBC_2.3 registerrpc F
-GLIBC_2.3 remove F
-GLIBC_2.3 removexattr F
-GLIBC_2.3 remque F
-GLIBC_2.3 rename F
-GLIBC_2.3 revoke F
-GLIBC_2.3 rewind F
-GLIBC_2.3 rewinddir F
-GLIBC_2.3 rexec F
-GLIBC_2.3 rexec_af F
-GLIBC_2.3 rexecoptions D 0x4
-GLIBC_2.3 rindex F
-GLIBC_2.3 rmdir F
-GLIBC_2.3 rpc_createerr D 0x20
-GLIBC_2.3 rpmatch F
-GLIBC_2.3 rresvport F
-GLIBC_2.3 rresvport_af F
-GLIBC_2.3 rtime F
-GLIBC_2.3 ruserok F
-GLIBC_2.3 ruserok_af F
-GLIBC_2.3 ruserpass F
-GLIBC_2.3 sbrk F
-GLIBC_2.3 scalbn F
-GLIBC_2.3 scalbnf F
-GLIBC_2.3 scalbnl F
-GLIBC_2.3 scandir F
-GLIBC_2.3 scandir64 F
-GLIBC_2.3 scanf F
-GLIBC_2.3 sched_get_priority_max F
-GLIBC_2.3 sched_get_priority_min F
-GLIBC_2.3 sched_getparam F
-GLIBC_2.3 sched_getscheduler F
-GLIBC_2.3 sched_rr_get_interval F
-GLIBC_2.3 sched_setparam F
-GLIBC_2.3 sched_setscheduler F
-GLIBC_2.3 sched_yield F
-GLIBC_2.3 seed48 F
-GLIBC_2.3 seed48_r F
-GLIBC_2.3 seekdir F
-GLIBC_2.3 select F
-GLIBC_2.3 semctl F
-GLIBC_2.3 semget F
-GLIBC_2.3 semop F
-GLIBC_2.3 send F
-GLIBC_2.3 sendfile F
-GLIBC_2.3 sendfile64 F
-GLIBC_2.3 sendmsg F
-GLIBC_2.3 sendto F
-GLIBC_2.3 setaliasent F
-GLIBC_2.3 setbuf F
-GLIBC_2.3 setbuffer F
-GLIBC_2.3 setcontext F
-GLIBC_2.3 setdomainname F
-GLIBC_2.3 setegid F
-GLIBC_2.3 setenv F
-GLIBC_2.3 seteuid F
-GLIBC_2.3 setfsent F
-GLIBC_2.3 setfsgid F
-GLIBC_2.3 setfsuid F
-GLIBC_2.3 setgid F
-GLIBC_2.3 setgrent F
-GLIBC_2.3 setgroups F
-GLIBC_2.3 sethostent F
-GLIBC_2.3 sethostid F
-GLIBC_2.3 sethostname F
-GLIBC_2.3 setitimer F
-GLIBC_2.3 setjmp F
-GLIBC_2.3 setlinebuf F
-GLIBC_2.3 setlocale F
-GLIBC_2.3 setlogin F
-GLIBC_2.3 setlogmask F
-GLIBC_2.3 setmntent F
-GLIBC_2.3 setnetent F
-GLIBC_2.3 setnetgrent F
-GLIBC_2.3 setpgid F
-GLIBC_2.3 setpgrp F
-GLIBC_2.3 setpriority F
-GLIBC_2.3 setprotoent F
-GLIBC_2.3 setpwent F
-GLIBC_2.3 setregid F
-GLIBC_2.3 setresgid F
-GLIBC_2.3 setresuid F
-GLIBC_2.3 setreuid F
-GLIBC_2.3 setrlimit F
-GLIBC_2.3 setrlimit64 F
-GLIBC_2.3 setrpcent F
-GLIBC_2.3 setservent F
-GLIBC_2.3 setsid F
-GLIBC_2.3 setsockopt F
-GLIBC_2.3 setspent F
-GLIBC_2.3 setstate F
-GLIBC_2.3 setstate_r F
-GLIBC_2.3 settimeofday F
-GLIBC_2.3 setttyent F
-GLIBC_2.3 setuid F
-GLIBC_2.3 setusershell F
-GLIBC_2.3 setutent F
-GLIBC_2.3 setutxent F
-GLIBC_2.3 setvbuf F
-GLIBC_2.3 setxattr F
-GLIBC_2.3 sgetspent F
-GLIBC_2.3 sgetspent_r F
-GLIBC_2.3 shmat F
-GLIBC_2.3 shmctl F
-GLIBC_2.3 shmdt F
-GLIBC_2.3 shmget F
-GLIBC_2.3 shutdown F
-GLIBC_2.3 sigaction F
-GLIBC_2.3 sigaddset F
-GLIBC_2.3 sigaltstack F
-GLIBC_2.3 sigandset F
-GLIBC_2.3 sigblock F
-GLIBC_2.3 sigdelset F
-GLIBC_2.3 sigemptyset F
-GLIBC_2.3 sigfillset F
-GLIBC_2.3 siggetmask F
-GLIBC_2.3 sighold F
-GLIBC_2.3 sigignore F
-GLIBC_2.3 siginterrupt F
-GLIBC_2.3 sigisemptyset F
-GLIBC_2.3 sigismember F
-GLIBC_2.3 siglongjmp F
-GLIBC_2.3 signal F
-GLIBC_2.3 sigorset F
-GLIBC_2.3 sigpause F
-GLIBC_2.3 sigpending F
-GLIBC_2.3 sigprocmask F
-GLIBC_2.3 sigqueue F
-GLIBC_2.3 sigrelse F
-GLIBC_2.3 sigreturn F
-GLIBC_2.3 sigset F
-GLIBC_2.3 sigsetmask F
-GLIBC_2.3 sigstack F
-GLIBC_2.3 sigsuspend F
-GLIBC_2.3 sigtimedwait F
-GLIBC_2.3 sigvec F
-GLIBC_2.3 sigwait F
-GLIBC_2.3 sigwaitinfo F
-GLIBC_2.3 sleep F
-GLIBC_2.3 snprintf F
-GLIBC_2.3 sockatmark F
-GLIBC_2.3 socket F
-GLIBC_2.3 socketpair F
-GLIBC_2.3 sprintf F
-GLIBC_2.3 sprofil F
-GLIBC_2.3 srand F
-GLIBC_2.3 srand48 F
-GLIBC_2.3 srand48_r F
-GLIBC_2.3 srandom F
-GLIBC_2.3 srandom_r F
-GLIBC_2.3 sscanf F
-GLIBC_2.3 ssignal F
-GLIBC_2.3 sstk F
-GLIBC_2.3 statfs F
-GLIBC_2.3 statfs64 F
-GLIBC_2.3 statvfs F
-GLIBC_2.3 statvfs64 F
-GLIBC_2.3 stderr D 0x8
-GLIBC_2.3 stdin D 0x8
-GLIBC_2.3 stdout D 0x8
-GLIBC_2.3 step F
-GLIBC_2.3 stime F
-GLIBC_2.3 stpcpy F
-GLIBC_2.3 stpncpy F
-GLIBC_2.3 strcasecmp F
-GLIBC_2.3 strcasecmp_l F
-GLIBC_2.3 strcasestr F
-GLIBC_2.3 strcat F
-GLIBC_2.3 strchr F
-GLIBC_2.3 strchrnul F
-GLIBC_2.3 strcmp F
-GLIBC_2.3 strcoll F
-GLIBC_2.3 strcoll_l F
-GLIBC_2.3 strcpy F
-GLIBC_2.3 strcspn F
-GLIBC_2.3 strdup F
-GLIBC_2.3 strerror F
-GLIBC_2.3 strerror_r F
-GLIBC_2.3 strfmon F
-GLIBC_2.3 strfmon_l F
-GLIBC_2.3 strfry F
-GLIBC_2.3 strftime F
-GLIBC_2.3 strftime_l F
-GLIBC_2.3 strlen F
-GLIBC_2.3 strncasecmp F
-GLIBC_2.3 strncasecmp_l F
-GLIBC_2.3 strncat F
-GLIBC_2.3 strncmp F
-GLIBC_2.3 strncpy F
-GLIBC_2.3 strndup F
-GLIBC_2.3 strnlen F
-GLIBC_2.3 strpbrk F
-GLIBC_2.3 strptime F
-GLIBC_2.3 strrchr F
-GLIBC_2.3 strsep F
-GLIBC_2.3 strsignal F
-GLIBC_2.3 strspn F
-GLIBC_2.3 strstr F
-GLIBC_2.3 strtod F
-GLIBC_2.3 strtod_l F
-GLIBC_2.3 strtof F
-GLIBC_2.3 strtof_l F
-GLIBC_2.3 strtoimax F
-GLIBC_2.3 strtok F
-GLIBC_2.3 strtok_r F
-GLIBC_2.3 strtol F
-GLIBC_2.3 strtol_l F
-GLIBC_2.3 strtold F
-GLIBC_2.3 strtold_l F
-GLIBC_2.3 strtoll F
-GLIBC_2.3 strtoq F
-GLIBC_2.3 strtoul F
-GLIBC_2.3 strtoul_l F
-GLIBC_2.3 strtoull F
-GLIBC_2.3 strtoumax F
-GLIBC_2.3 strtouq F
-GLIBC_2.3 strverscmp F
-GLIBC_2.3 strxfrm F
-GLIBC_2.3 strxfrm_l F
-GLIBC_2.3 stty F
-GLIBC_2.3 svc_exit F
-GLIBC_2.3 svc_fdset D 0x80
-GLIBC_2.3 svc_getreq F
-GLIBC_2.3 svc_getreq_common F
-GLIBC_2.3 svc_getreq_poll F
-GLIBC_2.3 svc_getreqset F
-GLIBC_2.3 svc_max_pollfd D 0x4
-GLIBC_2.3 svc_pollfd D 0x8
-GLIBC_2.3 svc_register F
-GLIBC_2.3 svc_run F
-GLIBC_2.3 svc_sendreply F
-GLIBC_2.3 svc_unregister F
-GLIBC_2.3 svcauthdes_stats D 0x18
-GLIBC_2.3 svcerr_auth F
-GLIBC_2.3 svcerr_decode F
-GLIBC_2.3 svcerr_noproc F
-GLIBC_2.3 svcerr_noprog F
-GLIBC_2.3 svcerr_progvers F
-GLIBC_2.3 svcerr_systemerr F
-GLIBC_2.3 svcerr_weakauth F
-GLIBC_2.3 svcfd_create F
-GLIBC_2.3 svcraw_create F
-GLIBC_2.3 svctcp_create F
-GLIBC_2.3 svcudp_bufcreate F
-GLIBC_2.3 svcudp_create F
-GLIBC_2.3 svcudp_enablecache F
-GLIBC_2.3 svcunix_create F
-GLIBC_2.3 svcunixfd_create F
-GLIBC_2.3 swab F
-GLIBC_2.3 swapcontext F
-GLIBC_2.3 swapoff F
-GLIBC_2.3 swapon F
-GLIBC_2.3 swprintf F
-GLIBC_2.3 swscanf F
-GLIBC_2.3 symlink F
-GLIBC_2.3 sync F
-GLIBC_2.3 sys_errlist D 0x3f0
-GLIBC_2.3 sys_nerr D 0x4
-GLIBC_2.3 sys_sigabbrev D 0x200
-GLIBC_2.3 sys_siglist D 0x200
-GLIBC_2.3 syscall F
-GLIBC_2.3 sysconf F
-GLIBC_2.3 sysctl F
-GLIBC_2.3 sysinfo F
-GLIBC_2.3 syslog F
-GLIBC_2.3 system F
-GLIBC_2.3 sysv_signal F
-GLIBC_2.3 tcdrain F
-GLIBC_2.3 tcflow F
-GLIBC_2.3 tcflush F
-GLIBC_2.3 tcgetattr F
-GLIBC_2.3 tcgetpgrp F
-GLIBC_2.3 tcgetsid F
-GLIBC_2.3 tcsendbreak F
-GLIBC_2.3 tcsetattr F
-GLIBC_2.3 tcsetpgrp F
-GLIBC_2.3 tdelete F
-GLIBC_2.3 tdestroy F
-GLIBC_2.3 telldir F
-GLIBC_2.3 tempnam F
-GLIBC_2.3 textdomain F
-GLIBC_2.3 tfind F
-GLIBC_2.3 time F
-GLIBC_2.3 timegm F
-GLIBC_2.3 timelocal F
-GLIBC_2.3 times F
-GLIBC_2.3 timezone D 0x8
-GLIBC_2.3 tmpfile F
-GLIBC_2.3 tmpfile64 F
-GLIBC_2.3 tmpnam F
-GLIBC_2.3 tmpnam_r F
-GLIBC_2.3 toascii F
-GLIBC_2.3 tolower F
-GLIBC_2.3 tolower_l F
-GLIBC_2.3 toupper F
-GLIBC_2.3 toupper_l F
-GLIBC_2.3 towctrans F
-GLIBC_2.3 towctrans_l F
-GLIBC_2.3 towlower F
-GLIBC_2.3 towlower_l F
-GLIBC_2.3 towupper F
-GLIBC_2.3 towupper_l F
-GLIBC_2.3 tr_break F
-GLIBC_2.3 truncate F
-GLIBC_2.3 truncate64 F
-GLIBC_2.3 tsearch F
-GLIBC_2.3 ttyname F
-GLIBC_2.3 ttyname_r F
-GLIBC_2.3 ttyslot F
-GLIBC_2.3 twalk F
-GLIBC_2.3 tzname D 0x10
-GLIBC_2.3 tzset F
-GLIBC_2.3 ualarm F
-GLIBC_2.3 ulckpwdf F
-GLIBC_2.3 ulimit F
-GLIBC_2.3 umask F
-GLIBC_2.3 umount F
-GLIBC_2.3 umount2 F
-GLIBC_2.3 uname F
-GLIBC_2.3 ungetc F
-GLIBC_2.3 ungetwc F
-GLIBC_2.3 unlink F
-GLIBC_2.3 unlockpt F
-GLIBC_2.3 unsetenv F
-GLIBC_2.3 updwtmp F
-GLIBC_2.3 updwtmpx F
-GLIBC_2.3 uselib F
-GLIBC_2.3 uselocale F
-GLIBC_2.3 user2netname F
-GLIBC_2.3 usleep F
-GLIBC_2.3 ustat F
-GLIBC_2.3 utime F
-GLIBC_2.3 utimes F
-GLIBC_2.3 utmpname F
-GLIBC_2.3 utmpxname F
-GLIBC_2.3 valloc F
-GLIBC_2.3 vasprintf F
-GLIBC_2.3 vdprintf F
-GLIBC_2.3 verr F
-GLIBC_2.3 verrx F
-GLIBC_2.3 versionsort F
-GLIBC_2.3 versionsort64 F
-GLIBC_2.3 vfork F
-GLIBC_2.3 vfprintf F
-GLIBC_2.3 vfscanf F
-GLIBC_2.3 vfwprintf F
-GLIBC_2.3 vfwscanf F
-GLIBC_2.3 vhangup F
-GLIBC_2.3 vlimit F
-GLIBC_2.3 vprintf F
-GLIBC_2.3 vscanf F
-GLIBC_2.3 vsnprintf F
-GLIBC_2.3 vsprintf F
-GLIBC_2.3 vsscanf F
-GLIBC_2.3 vswprintf F
-GLIBC_2.3 vswscanf F
-GLIBC_2.3 vsyslog F
-GLIBC_2.3 vtimes F
-GLIBC_2.3 vwarn F
-GLIBC_2.3 vwarnx F
-GLIBC_2.3 vwprintf F
-GLIBC_2.3 vwscanf F
-GLIBC_2.3 wait F
-GLIBC_2.3 wait3 F
-GLIBC_2.3 wait4 F
-GLIBC_2.3 waitid F
-GLIBC_2.3 waitpid F
-GLIBC_2.3 warn F
-GLIBC_2.3 warnx F
-GLIBC_2.3 wcpcpy F
-GLIBC_2.3 wcpncpy F
-GLIBC_2.3 wcrtomb F
-GLIBC_2.3 wcscasecmp F
-GLIBC_2.3 wcscasecmp_l F
-GLIBC_2.3 wcscat F
-GLIBC_2.3 wcschr F
-GLIBC_2.3 wcschrnul F
-GLIBC_2.3 wcscmp F
-GLIBC_2.3 wcscoll F
-GLIBC_2.3 wcscoll_l F
-GLIBC_2.3 wcscpy F
-GLIBC_2.3 wcscspn F
-GLIBC_2.3 wcsdup F
-GLIBC_2.3 wcsftime F
-GLIBC_2.3 wcsftime_l F
-GLIBC_2.3 wcslen F
-GLIBC_2.3 wcsncasecmp F
-GLIBC_2.3 wcsncasecmp_l F
-GLIBC_2.3 wcsncat F
-GLIBC_2.3 wcsncmp F
-GLIBC_2.3 wcsncpy F
-GLIBC_2.3 wcsnlen F
-GLIBC_2.3 wcsnrtombs F
-GLIBC_2.3 wcspbrk F
-GLIBC_2.3 wcsrchr F
-GLIBC_2.3 wcsrtombs F
-GLIBC_2.3 wcsspn F
-GLIBC_2.3 wcsstr F
-GLIBC_2.3 wcstod F
-GLIBC_2.3 wcstod_l F
-GLIBC_2.3 wcstof F
-GLIBC_2.3 wcstof_l F
-GLIBC_2.3 wcstoimax F
-GLIBC_2.3 wcstok F
-GLIBC_2.3 wcstol F
-GLIBC_2.3 wcstol_l F
-GLIBC_2.3 wcstold F
-GLIBC_2.3 wcstold_l F
-GLIBC_2.3 wcstoll F
-GLIBC_2.3 wcstoll_l F
-GLIBC_2.3 wcstombs F
-GLIBC_2.3 wcstoq F
-GLIBC_2.3 wcstoul F
-GLIBC_2.3 wcstoul_l F
-GLIBC_2.3 wcstoull F
-GLIBC_2.3 wcstoull_l F
-GLIBC_2.3 wcstoumax F
-GLIBC_2.3 wcstouq F
-GLIBC_2.3 wcswcs F
-GLIBC_2.3 wcswidth F
-GLIBC_2.3 wcsxfrm F
-GLIBC_2.3 wcsxfrm_l F
-GLIBC_2.3 wctob F
-GLIBC_2.3 wctomb F
-GLIBC_2.3 wctrans F
-GLIBC_2.3 wctrans_l F
-GLIBC_2.3 wctype F
-GLIBC_2.3 wctype_l F
-GLIBC_2.3 wcwidth F
-GLIBC_2.3 wmemchr F
-GLIBC_2.3 wmemcmp F
-GLIBC_2.3 wmemcpy F
-GLIBC_2.3 wmemmove F
-GLIBC_2.3 wmempcpy F
-GLIBC_2.3 wmemset F
-GLIBC_2.3 wordexp F
-GLIBC_2.3 wordfree F
-GLIBC_2.3 wprintf F
-GLIBC_2.3 write F
-GLIBC_2.3 writev F
-GLIBC_2.3 wscanf F
-GLIBC_2.3 xdecrypt F
-GLIBC_2.3 xdr_accepted_reply F
-GLIBC_2.3 xdr_array F
-GLIBC_2.3 xdr_authdes_cred F
-GLIBC_2.3 xdr_authdes_verf F
-GLIBC_2.3 xdr_authunix_parms F
-GLIBC_2.3 xdr_bool F
-GLIBC_2.3 xdr_bytes F
-GLIBC_2.3 xdr_callhdr F
-GLIBC_2.3 xdr_callmsg F
-GLIBC_2.3 xdr_char F
-GLIBC_2.3 xdr_cryptkeyarg F
-GLIBC_2.3 xdr_cryptkeyarg2 F
-GLIBC_2.3 xdr_cryptkeyres F
-GLIBC_2.3 xdr_des_block F
-GLIBC_2.3 xdr_double F
-GLIBC_2.3 xdr_enum F
-GLIBC_2.3 xdr_float F
-GLIBC_2.3 xdr_free F
-GLIBC_2.3 xdr_getcredres F
-GLIBC_2.3 xdr_hyper F
-GLIBC_2.3 xdr_int F
-GLIBC_2.3 xdr_int16_t F
-GLIBC_2.3 xdr_int32_t F
-GLIBC_2.3 xdr_int64_t F
-GLIBC_2.3 xdr_int8_t F
-GLIBC_2.3 xdr_key_netstarg F
-GLIBC_2.3 xdr_key_netstres F
-GLIBC_2.3 xdr_keybuf F
-GLIBC_2.3 xdr_keystatus F
-GLIBC_2.3 xdr_long F
-GLIBC_2.3 xdr_longlong_t F
-GLIBC_2.3 xdr_netnamestr F
-GLIBC_2.3 xdr_netobj F
-GLIBC_2.3 xdr_opaque F
-GLIBC_2.3 xdr_opaque_auth F
-GLIBC_2.3 xdr_pmap F
-GLIBC_2.3 xdr_pmaplist F
-GLIBC_2.3 xdr_pointer F
-GLIBC_2.3 xdr_reference F
-GLIBC_2.3 xdr_rejected_reply F
-GLIBC_2.3 xdr_replymsg F
-GLIBC_2.3 xdr_rmtcall_args F
-GLIBC_2.3 xdr_rmtcallres F
-GLIBC_2.3 xdr_short F
-GLIBC_2.3 xdr_sizeof F
-GLIBC_2.3 xdr_string F
-GLIBC_2.3 xdr_u_char F
-GLIBC_2.3 xdr_u_hyper F
-GLIBC_2.3 xdr_u_int F
-GLIBC_2.3 xdr_u_long F
-GLIBC_2.3 xdr_u_longlong_t F
-GLIBC_2.3 xdr_u_short F
-GLIBC_2.3 xdr_uint16_t F
-GLIBC_2.3 xdr_uint32_t F
-GLIBC_2.3 xdr_uint64_t F
-GLIBC_2.3 xdr_uint8_t F
-GLIBC_2.3 xdr_union F
-GLIBC_2.3 xdr_unixcred F
-GLIBC_2.3 xdr_vector F
-GLIBC_2.3 xdr_void F
-GLIBC_2.3 xdr_wrapstring F
-GLIBC_2.3 xdrmem_create F
-GLIBC_2.3 xdrrec_create F
-GLIBC_2.3 xdrrec_endofrecord F
-GLIBC_2.3 xdrrec_eof F
-GLIBC_2.3 xdrrec_skiprecord F
-GLIBC_2.3 xdrstdio_create F
-GLIBC_2.3 xencrypt F
-GLIBC_2.3 xprt_register F
-GLIBC_2.3 xprt_unregister F
-GLIBC_2.3.2 __register_atfork F
-GLIBC_2.3.2 epoll_create F
-GLIBC_2.3.2 epoll_ctl F
-GLIBC_2.3.2 epoll_wait F
-GLIBC_2.3.2 lchmod F
-GLIBC_2.3.2 pthread_cond_broadcast F
-GLIBC_2.3.2 pthread_cond_destroy F
-GLIBC_2.3.2 pthread_cond_init F
-GLIBC_2.3.2 pthread_cond_signal F
-GLIBC_2.3.2 pthread_cond_timedwait F
-GLIBC_2.3.2 pthread_cond_wait F
-GLIBC_2.3.2 strptime_l F
-GLIBC_2.3.3 _sys_siglist D 0x208
-GLIBC_2.3.3 gnu_dev_major F
-GLIBC_2.3.3 gnu_dev_makedev F
-GLIBC_2.3.3 gnu_dev_minor F
-GLIBC_2.3.3 inet6_option_alloc F
-GLIBC_2.3.3 inet6_option_append F
-GLIBC_2.3.3 inet6_option_find F
-GLIBC_2.3.3 inet6_option_init F
-GLIBC_2.3.3 inet6_option_next F
-GLIBC_2.3.3 inet6_option_space F
-GLIBC_2.3.3 nftw F
-GLIBC_2.3.3 nftw64 F
-GLIBC_2.3.3 remap_file_pages F
-GLIBC_2.3.3 sched_getaffinity F
-GLIBC_2.3.3 sched_setaffinity F
-GLIBC_2.3.3 semtimedop F
-GLIBC_2.3.3 strtoll_l F
-GLIBC_2.3.3 strtoull_l F
-GLIBC_2.3.3 sys_sigabbrev D 0x208
-GLIBC_2.3.3 sys_siglist D 0x208
-GLIBC_2.3.4 __chk_fail F
-GLIBC_2.3.4 __fprintf_chk F
-GLIBC_2.3.4 __gets_chk F
-GLIBC_2.3.4 __memcpy_chk F
-GLIBC_2.3.4 __memmove_chk F
-GLIBC_2.3.4 __mempcpy_chk F
-GLIBC_2.3.4 __memset_chk F
-GLIBC_2.3.4 __printf_chk F
-GLIBC_2.3.4 __sigsetjmp F
-GLIBC_2.3.4 __snprintf_chk F
-GLIBC_2.3.4 __sprintf_chk F
-GLIBC_2.3.4 __stpcpy_chk F
-GLIBC_2.3.4 __strcat_chk F
-GLIBC_2.3.4 __strcpy_chk F
-GLIBC_2.3.4 __strncat_chk F
-GLIBC_2.3.4 __strncpy_chk F
-GLIBC_2.3.4 __vfprintf_chk F
-GLIBC_2.3.4 __vprintf_chk F
-GLIBC_2.3.4 __vsnprintf_chk F
-GLIBC_2.3.4 __vsprintf_chk F
-GLIBC_2.3.4 __xpg_strerror_r F
-GLIBC_2.3.4 _longjmp F
-GLIBC_2.3.4 _setjmp F
-GLIBC_2.3.4 getcontext F
-GLIBC_2.3.4 getipv4sourcefilter F
-GLIBC_2.3.4 getsourcefilter F
-GLIBC_2.3.4 longjmp F
-GLIBC_2.3.4 regexec F
-GLIBC_2.3.4 sched_getaffinity F
-GLIBC_2.3.4 sched_setaffinity F
-GLIBC_2.3.4 setcontext F
-GLIBC_2.3.4 setipv4sourcefilter F
-GLIBC_2.3.4 setjmp F
-GLIBC_2.3.4 setsourcefilter F
-GLIBC_2.3.4 siglongjmp F
-GLIBC_2.3.4 swapcontext F
-GLIBC_2.3.4 xdr_quad_t F
-GLIBC_2.3.4 xdr_u_quad_t F
-GLIBC_2.4 _IO_fprintf F
-GLIBC_2.4 _IO_printf F
-GLIBC_2.4 _IO_sprintf F
-GLIBC_2.4 _IO_sscanf F
-GLIBC_2.4 _IO_vfprintf F
-GLIBC_2.4 _IO_vfscanf F
-GLIBC_2.4 _IO_vsprintf F
-GLIBC_2.4 __asprintf F
-GLIBC_2.4 __confstr_chk F
-GLIBC_2.4 __fgets_chk F
-GLIBC_2.4 __fgets_unlocked_chk F
-GLIBC_2.4 __fgetws_chk F
-GLIBC_2.4 __fgetws_unlocked_chk F
-GLIBC_2.4 __finitel F
-GLIBC_2.4 __fprintf_chk F
-GLIBC_2.4 __fwprintf_chk F
-GLIBC_2.4 __fxstatat F
-GLIBC_2.4 __fxstatat64 F
-GLIBC_2.4 __getcwd_chk F
-GLIBC_2.4 __getdomainname_chk F
-GLIBC_2.4 __getgroups_chk F
-GLIBC_2.4 __gethostname_chk F
-GLIBC_2.4 __getlogin_r_chk F
-GLIBC_2.4 __getwd_chk F
-GLIBC_2.4 __isinfl F
-GLIBC_2.4 __isnanl F
-GLIBC_2.4 __mbsnrtowcs_chk F
-GLIBC_2.4 __mbsrtowcs_chk F
-GLIBC_2.4 __mbstowcs_chk F
-GLIBC_2.4 __nldbl__IO_fprintf F
-GLIBC_2.4 __nldbl__IO_printf F
-GLIBC_2.4 __nldbl__IO_sprintf F
-GLIBC_2.4 __nldbl__IO_sscanf F
-GLIBC_2.4 __nldbl__IO_vfprintf F
-GLIBC_2.4 __nldbl__IO_vfscanf F
-GLIBC_2.4 __nldbl__IO_vsprintf F
-GLIBC_2.4 __nldbl___asprintf F
-GLIBC_2.4 __nldbl___fprintf_chk F
-GLIBC_2.4 __nldbl___fwprintf_chk F
-GLIBC_2.4 __nldbl___printf_chk F
-GLIBC_2.4 __nldbl___printf_fp F
-GLIBC_2.4 __nldbl___snprintf_chk F
-GLIBC_2.4 __nldbl___sprintf_chk F
-GLIBC_2.4 __nldbl___strfmon_l F
-GLIBC_2.4 __nldbl___swprintf_chk F
-GLIBC_2.4 __nldbl___syslog_chk F
-GLIBC_2.4 __nldbl___vfprintf_chk F
-GLIBC_2.4 __nldbl___vfscanf F
-GLIBC_2.4 __nldbl___vfwprintf_chk F
-GLIBC_2.4 __nldbl___vprintf_chk F
-GLIBC_2.4 __nldbl___vsnprintf F
-GLIBC_2.4 __nldbl___vsnprintf_chk F
-GLIBC_2.4 __nldbl___vsprintf_chk F
-GLIBC_2.4 __nldbl___vsscanf F
-GLIBC_2.4 __nldbl___vstrfmon F
-GLIBC_2.4 __nldbl___vstrfmon_l F
-GLIBC_2.4 __nldbl___vswprintf_chk F
-GLIBC_2.4 __nldbl___vsyslog_chk F
-GLIBC_2.4 __nldbl___vwprintf_chk F
-GLIBC_2.4 __nldbl___wprintf_chk F
-GLIBC_2.4 __nldbl_asprintf F
-GLIBC_2.4 __nldbl_dprintf F
-GLIBC_2.4 __nldbl_fprintf F
-GLIBC_2.4 __nldbl_fscanf F
-GLIBC_2.4 __nldbl_fwprintf F
-GLIBC_2.4 __nldbl_fwscanf F
-GLIBC_2.4 __nldbl_obstack_printf F
-GLIBC_2.4 __nldbl_obstack_vprintf F
-GLIBC_2.4 __nldbl_printf F
-GLIBC_2.4 __nldbl_printf_size F
-GLIBC_2.4 __nldbl_scanf F
-GLIBC_2.4 __nldbl_snprintf F
-GLIBC_2.4 __nldbl_sprintf F
-GLIBC_2.4 __nldbl_sscanf F
-GLIBC_2.4 __nldbl_strfmon F
-GLIBC_2.4 __nldbl_strfmon_l F
-GLIBC_2.4 __nldbl_swprintf F
-GLIBC_2.4 __nldbl_swscanf F
-GLIBC_2.4 __nldbl_syslog F
-GLIBC_2.4 __nldbl_vasprintf F
-GLIBC_2.4 __nldbl_vdprintf F
-GLIBC_2.4 __nldbl_vfprintf F
-GLIBC_2.4 __nldbl_vfscanf F
-GLIBC_2.4 __nldbl_vfwprintf F
-GLIBC_2.4 __nldbl_vfwscanf F
-GLIBC_2.4 __nldbl_vprintf F
-GLIBC_2.4 __nldbl_vscanf F
-GLIBC_2.4 __nldbl_vsnprintf F
-GLIBC_2.4 __nldbl_vsprintf F
-GLIBC_2.4 __nldbl_vsscanf F
-GLIBC_2.4 __nldbl_vswprintf F
-GLIBC_2.4 __nldbl_vswscanf F
-GLIBC_2.4 __nldbl_vsyslog F
-GLIBC_2.4 __nldbl_vwprintf F
-GLIBC_2.4 __nldbl_vwscanf F
-GLIBC_2.4 __nldbl_wprintf F
-GLIBC_2.4 __nldbl_wscanf F
-GLIBC_2.4 __pread64_chk F
-GLIBC_2.4 __pread_chk F
-GLIBC_2.4 __printf_chk F
-GLIBC_2.4 __printf_fp F
-GLIBC_2.4 __ptsname_r_chk F
-GLIBC_2.4 __read_chk F
-GLIBC_2.4 __readlink_chk F
-GLIBC_2.4 __realpath_chk F
-GLIBC_2.4 __recv_chk F
-GLIBC_2.4 __recvfrom_chk F
-GLIBC_2.4 __signbitl F
-GLIBC_2.4 __snprintf_chk F
-GLIBC_2.4 __sprintf_chk F
-GLIBC_2.4 __stack_chk_fail F
-GLIBC_2.4 __stpncpy_chk F
-GLIBC_2.4 __strfmon_l F
-GLIBC_2.4 __strtold_internal F
-GLIBC_2.4 __strtold_l F
-GLIBC_2.4 __swprintf_chk F
-GLIBC_2.4 __syslog_chk F
-GLIBC_2.4 __ttyname_r_chk F
-GLIBC_2.4 __vfprintf_chk F
-GLIBC_2.4 __vfscanf F
-GLIBC_2.4 __vfwprintf_chk F
-GLIBC_2.4 __vprintf_chk F
-GLIBC_2.4 __vsnprintf F
-GLIBC_2.4 __vsnprintf_chk F
-GLIBC_2.4 __vsprintf_chk F
-GLIBC_2.4 __vsscanf F
-GLIBC_2.4 __vswprintf_chk F
-GLIBC_2.4 __vsyslog_chk F
-GLIBC_2.4 __vwprintf_chk F
-GLIBC_2.4 __wcpcpy_chk F
-GLIBC_2.4 __wcpncpy_chk F
-GLIBC_2.4 __wcrtomb_chk F
-GLIBC_2.4 __wcscat_chk F
-GLIBC_2.4 __wcscpy_chk F
-GLIBC_2.4 __wcsncat_chk F
-GLIBC_2.4 __wcsncpy_chk F
-GLIBC_2.4 __wcsnrtombs_chk F
-GLIBC_2.4 __wcsrtombs_chk F
-GLIBC_2.4 __wcstold_internal F
-GLIBC_2.4 __wcstold_l F
-GLIBC_2.4 __wcstombs_chk F
-GLIBC_2.4 __wctomb_chk F
-GLIBC_2.4 __wmemcpy_chk F
-GLIBC_2.4 __wmemmove_chk F
-GLIBC_2.4 __wmempcpy_chk F
-GLIBC_2.4 __wmemset_chk F
-GLIBC_2.4 __wprintf_chk F
-GLIBC_2.4 __xmknodat F
-GLIBC_2.4 _sys_errlist D 0x420
-GLIBC_2.4 _sys_nerr D 0x4
-GLIBC_2.4 asprintf F
-GLIBC_2.4 copysignl F
-GLIBC_2.4 dprintf F
-GLIBC_2.4 eaccess F
-GLIBC_2.4 faccessat F
-GLIBC_2.4 fchmodat F
-GLIBC_2.4 fchownat F
-GLIBC_2.4 fdopendir F
-GLIBC_2.4 finitel F
-GLIBC_2.4 fprintf F
-GLIBC_2.4 frexpl F
-GLIBC_2.4 fscanf F
-GLIBC_2.4 futimesat F
-GLIBC_2.4 fwprintf F
-GLIBC_2.4 fwscanf F
-GLIBC_2.4 inotify_add_watch F
-GLIBC_2.4 inotify_init F
-GLIBC_2.4 inotify_rm_watch F
-GLIBC_2.4 isinfl F
-GLIBC_2.4 isnanl F
-GLIBC_2.4 ldexpl F
-GLIBC_2.4 linkat F
-GLIBC_2.4 mkdirat F
-GLIBC_2.4 mkfifoat F
-GLIBC_2.4 modfl F
-GLIBC_2.4 obstack_printf F
-GLIBC_2.4 obstack_vprintf F
-GLIBC_2.4 open_wmemstream F
-GLIBC_2.4 openat F
-GLIBC_2.4 openat64 F
-GLIBC_2.4 ppoll F
-GLIBC_2.4 printf F
-GLIBC_2.4 printf_size F
-GLIBC_2.4 qecvt F
-GLIBC_2.4 qecvt_r F
-GLIBC_2.4 qfcvt F
-GLIBC_2.4 qfcvt_r F
-GLIBC_2.4 qgcvt F
-GLIBC_2.4 readlinkat F
-GLIBC_2.4 renameat F
-GLIBC_2.4 scalbnl F
-GLIBC_2.4 scanf F
-GLIBC_2.4 snprintf F
-GLIBC_2.4 sprintf F
-GLIBC_2.4 sscanf F
-GLIBC_2.4 strfmon F
-GLIBC_2.4 strfmon_l F
-GLIBC_2.4 strtold F
-GLIBC_2.4 strtold_l F
-GLIBC_2.4 swprintf F
-GLIBC_2.4 swscanf F
-GLIBC_2.4 symlinkat F
-GLIBC_2.4 sys_errlist D 0x420
-GLIBC_2.4 sys_nerr D 0x4
-GLIBC_2.4 syslog F
-GLIBC_2.4 unlinkat F
-GLIBC_2.4 unshare F
-GLIBC_2.4 vasprintf F
-GLIBC_2.4 vdprintf F
-GLIBC_2.4 vfprintf F
-GLIBC_2.4 vfscanf F
-GLIBC_2.4 vfwprintf F
-GLIBC_2.4 vfwscanf F
-GLIBC_2.4 vprintf F
-GLIBC_2.4 vscanf F
-GLIBC_2.4 vsnprintf F
-GLIBC_2.4 vsprintf F
-GLIBC_2.4 vsscanf F
-GLIBC_2.4 vswprintf F
-GLIBC_2.4 vswscanf F
-GLIBC_2.4 vsyslog F
-GLIBC_2.4 vwprintf F
-GLIBC_2.4 vwscanf F
-GLIBC_2.4 wcstold F
-GLIBC_2.4 wcstold_l F
-GLIBC_2.4 wprintf F
-GLIBC_2.4 wscanf F
-GLIBC_2.5 __readlinkat_chk F
-GLIBC_2.5 inet6_opt_append F
-GLIBC_2.5 inet6_opt_find F
-GLIBC_2.5 inet6_opt_finish F
-GLIBC_2.5 inet6_opt_get_val F
-GLIBC_2.5 inet6_opt_init F
-GLIBC_2.5 inet6_opt_next F
-GLIBC_2.5 inet6_opt_set_val F
-GLIBC_2.5 inet6_rth_add F
-GLIBC_2.5 inet6_rth_getaddr F
-GLIBC_2.5 inet6_rth_init F
-GLIBC_2.5 inet6_rth_reverse F
-GLIBC_2.5 inet6_rth_segments F
-GLIBC_2.5 inet6_rth_space F
-GLIBC_2.5 splice F
-GLIBC_2.5 tee F
-GLIBC_2.5 vmsplice F
-GLIBC_2.6 __sched_cpucount F
-GLIBC_2.6 epoll_pwait F
-GLIBC_2.6 futimens F
-GLIBC_2.6 sched_getcpu F
-GLIBC_2.6 strerror_l F
-GLIBC_2.6 sync_file_range F
-GLIBC_2.6 utimensat F
-GLIBC_2.7 __fread_chk F
-GLIBC_2.7 __fread_unlocked_chk F
-GLIBC_2.7 __isoc99_fscanf F
-GLIBC_2.7 __isoc99_fwscanf F
-GLIBC_2.7 __isoc99_scanf F
-GLIBC_2.7 __isoc99_sscanf F
-GLIBC_2.7 __isoc99_swscanf F
-GLIBC_2.7 __isoc99_vfscanf F
-GLIBC_2.7 __isoc99_vfwscanf F
-GLIBC_2.7 __isoc99_vscanf F
-GLIBC_2.7 __isoc99_vsscanf F
-GLIBC_2.7 __isoc99_vswscanf F
-GLIBC_2.7 __isoc99_vwscanf F
-GLIBC_2.7 __isoc99_wscanf F
-GLIBC_2.7 __nldbl___isoc99_fscanf F
-GLIBC_2.7 __nldbl___isoc99_fwscanf F
-GLIBC_2.7 __nldbl___isoc99_scanf F
-GLIBC_2.7 __nldbl___isoc99_sscanf F
-GLIBC_2.7 __nldbl___isoc99_swscanf F
-GLIBC_2.7 __nldbl___isoc99_vfscanf F
-GLIBC_2.7 __nldbl___isoc99_vfwscanf F
-GLIBC_2.7 __nldbl___isoc99_vscanf F
-GLIBC_2.7 __nldbl___isoc99_vsscanf F
-GLIBC_2.7 __nldbl___isoc99_vswscanf F
-GLIBC_2.7 __nldbl___isoc99_vwscanf F
-GLIBC_2.7 __nldbl___isoc99_wscanf F
-GLIBC_2.7 __open64_2 F
-GLIBC_2.7 __open_2 F
-GLIBC_2.7 __openat64_2 F
-GLIBC_2.7 __openat_2 F
-GLIBC_2.7 __sched_cpualloc F
-GLIBC_2.7 __sched_cpufree F
-GLIBC_2.7 eventfd F
-GLIBC_2.7 eventfd_read F
-GLIBC_2.7 eventfd_write F
-GLIBC_2.7 mkostemp F
-GLIBC_2.7 mkostemp64 F
-GLIBC_2.7 signalfd F
-GLIBC_2.8 __asprintf_chk F
-GLIBC_2.8 __dprintf_chk F
-GLIBC_2.8 __nldbl___asprintf_chk F
-GLIBC_2.8 __nldbl___dprintf_chk F
-GLIBC_2.8 __nldbl___obstack_printf_chk F
-GLIBC_2.8 __nldbl___obstack_vprintf_chk F
-GLIBC_2.8 __nldbl___vasprintf_chk F
-GLIBC_2.8 __nldbl___vdprintf_chk F
-GLIBC_2.8 __obstack_printf_chk F
-GLIBC_2.8 __obstack_vprintf_chk F
-GLIBC_2.8 __vasprintf_chk F
-GLIBC_2.8 __vdprintf_chk F
-GLIBC_2.8 qsort_r F
-GLIBC_2.8 timerfd_create F
-GLIBC_2.8 timerfd_gettime F
-GLIBC_2.8 timerfd_settime F
-GLIBC_2.9 dup3 F
-GLIBC_2.9 epoll_create1 F
-GLIBC_2.9 inotify_init1 F
-GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist
deleted file mode 100644
index 1e1f2b8d6e..0000000000
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist
+++ /dev/null
@@ -1,1078 +0,0 @@
-GLIBC_2.17 _LIB_VERSION D 0x4
-GLIBC_2.17 __acos_finite F
-GLIBC_2.17 __acosf_finite F
-GLIBC_2.17 __acosh_finite F
-GLIBC_2.17 __acoshf_finite F
-GLIBC_2.17 __acoshl_finite F
-GLIBC_2.17 __acosl_finite F
-GLIBC_2.17 __asin_finite F
-GLIBC_2.17 __asinf_finite F
-GLIBC_2.17 __asinl_finite F
-GLIBC_2.17 __atan2_finite F
-GLIBC_2.17 __atan2f_finite F
-GLIBC_2.17 __atan2l_finite F
-GLIBC_2.17 __atanh_finite F
-GLIBC_2.17 __atanhf_finite F
-GLIBC_2.17 __atanhl_finite F
-GLIBC_2.17 __clog10 F
-GLIBC_2.17 __clog10f F
-GLIBC_2.17 __clog10l F
-GLIBC_2.17 __cosh_finite F
-GLIBC_2.17 __coshf_finite F
-GLIBC_2.17 __coshl_finite F
-GLIBC_2.17 __exp10_finite F
-GLIBC_2.17 __exp10f_finite F
-GLIBC_2.17 __exp10l_finite F
-GLIBC_2.17 __exp2_finite F
-GLIBC_2.17 __exp2f_finite F
-GLIBC_2.17 __exp2l_finite F
-GLIBC_2.17 __exp_finite F
-GLIBC_2.17 __expf_finite F
-GLIBC_2.17 __expl_finite F
-GLIBC_2.17 __fe_dfl_env D 0x8
-GLIBC_2.17 __fe_enabled_env D 0x8
-GLIBC_2.17 __fe_nomask_env F
-GLIBC_2.17 __fe_nonieee_env D 0x8
-GLIBC_2.17 __finite F
-GLIBC_2.17 __finitef F
-GLIBC_2.17 __finitel F
-GLIBC_2.17 __fmod_finite F
-GLIBC_2.17 __fmodf_finite F
-GLIBC_2.17 __fmodl_finite F
-GLIBC_2.17 __fpclassify F
-GLIBC_2.17 __fpclassifyf F
-GLIBC_2.17 __fpclassifyl F
-GLIBC_2.17 __gamma_r_finite F
-GLIBC_2.17 __gammaf_r_finite F
-GLIBC_2.17 __gammal_r_finite F
-GLIBC_2.17 __hypot_finite F
-GLIBC_2.17 __hypotf_finite F
-GLIBC_2.17 __hypotl_finite F
-GLIBC_2.17 __j0_finite F
-GLIBC_2.17 __j0f_finite F
-GLIBC_2.17 __j0l_finite F
-GLIBC_2.17 __j1_finite F
-GLIBC_2.17 __j1f_finite F
-GLIBC_2.17 __j1l_finite F
-GLIBC_2.17 __jn_finite F
-GLIBC_2.17 __jnf_finite F
-GLIBC_2.17 __jnl_finite F
-GLIBC_2.17 __lgamma_r_finite F
-GLIBC_2.17 __lgammaf_r_finite F
-GLIBC_2.17 __lgammal_r_finite F
-GLIBC_2.17 __log10_finite F
-GLIBC_2.17 __log10f_finite F
-GLIBC_2.17 __log10l_finite F
-GLIBC_2.17 __log2_finite F
-GLIBC_2.17 __log2f_finite F
-GLIBC_2.17 __log2l_finite F
-GLIBC_2.17 __log_finite F
-GLIBC_2.17 __logf_finite F
-GLIBC_2.17 __logl_finite F
-GLIBC_2.17 __nldbl_nexttowardf F
-GLIBC_2.17 __pow_finite F
-GLIBC_2.17 __powf_finite F
-GLIBC_2.17 __powl_finite F
-GLIBC_2.17 __remainder_finite F
-GLIBC_2.17 __remainderf_finite F
-GLIBC_2.17 __remainderl_finite F
-GLIBC_2.17 __scalb_finite F
-GLIBC_2.17 __scalbf_finite F
-GLIBC_2.17 __scalbl_finite F
-GLIBC_2.17 __signbit F
-GLIBC_2.17 __signbitf F
-GLIBC_2.17 __signbitl F
-GLIBC_2.17 __sinh_finite F
-GLIBC_2.17 __sinhf_finite F
-GLIBC_2.17 __sinhl_finite F
-GLIBC_2.17 __sqrt_finite F
-GLIBC_2.17 __sqrtf_finite F
-GLIBC_2.17 __sqrtl_finite F
-GLIBC_2.17 __y0_finite F
-GLIBC_2.17 __y0f_finite F
-GLIBC_2.17 __y0l_finite F
-GLIBC_2.17 __y1_finite F
-GLIBC_2.17 __y1f_finite F
-GLIBC_2.17 __y1l_finite F
-GLIBC_2.17 __yn_finite F
-GLIBC_2.17 __ynf_finite F
-GLIBC_2.17 __ynl_finite F
-GLIBC_2.17 acos F
-GLIBC_2.17 acosf F
-GLIBC_2.17 acosh F
-GLIBC_2.17 acoshf F
-GLIBC_2.17 acoshl F
-GLIBC_2.17 acosl F
-GLIBC_2.17 asin F
-GLIBC_2.17 asinf F
-GLIBC_2.17 asinh F
-GLIBC_2.17 asinhf F
-GLIBC_2.17 asinhl F
-GLIBC_2.17 asinl F
-GLIBC_2.17 atan F
-GLIBC_2.17 atan2 F
-GLIBC_2.17 atan2f F
-GLIBC_2.17 atan2l F
-GLIBC_2.17 atanf F
-GLIBC_2.17 atanh F
-GLIBC_2.17 atanhf F
-GLIBC_2.17 atanhl F
-GLIBC_2.17 atanl F
-GLIBC_2.17 cabs F
-GLIBC_2.17 cabsf F
-GLIBC_2.17 cabsl F
-GLIBC_2.17 cacos F
-GLIBC_2.17 cacosf F
-GLIBC_2.17 cacosh F
-GLIBC_2.17 cacoshf F
-GLIBC_2.17 cacoshl F
-GLIBC_2.17 cacosl F
-GLIBC_2.17 carg F
-GLIBC_2.17 cargf F
-GLIBC_2.17 cargl F
-GLIBC_2.17 casin F
-GLIBC_2.17 casinf F
-GLIBC_2.17 casinh F
-GLIBC_2.17 casinhf F
-GLIBC_2.17 casinhl F
-GLIBC_2.17 casinl F
-GLIBC_2.17 catan F
-GLIBC_2.17 catanf F
-GLIBC_2.17 catanh F
-GLIBC_2.17 catanhf F
-GLIBC_2.17 catanhl F
-GLIBC_2.17 catanl F
-GLIBC_2.17 cbrt F
-GLIBC_2.17 cbrtf F
-GLIBC_2.17 cbrtl F
-GLIBC_2.17 ccos F
-GLIBC_2.17 ccosf F
-GLIBC_2.17 ccosh F
-GLIBC_2.17 ccoshf F
-GLIBC_2.17 ccoshl F
-GLIBC_2.17 ccosl F
-GLIBC_2.17 ceil F
-GLIBC_2.17 ceilf F
-GLIBC_2.17 ceill F
-GLIBC_2.17 cexp F
-GLIBC_2.17 cexpf F
-GLIBC_2.17 cexpl F
-GLIBC_2.17 cimag F
-GLIBC_2.17 cimagf F
-GLIBC_2.17 cimagl F
-GLIBC_2.17 clog F
-GLIBC_2.17 clog10 F
-GLIBC_2.17 clog10f F
-GLIBC_2.17 clog10l F
-GLIBC_2.17 clogf F
-GLIBC_2.17 clogl F
-GLIBC_2.17 conj F
-GLIBC_2.17 conjf F
-GLIBC_2.17 conjl F
-GLIBC_2.17 copysign F
-GLIBC_2.17 copysignf F
-GLIBC_2.17 copysignl F
-GLIBC_2.17 cos F
-GLIBC_2.17 cosf F
-GLIBC_2.17 cosh F
-GLIBC_2.17 coshf F
-GLIBC_2.17 coshl F
-GLIBC_2.17 cosl F
-GLIBC_2.17 cpow F
-GLIBC_2.17 cpowf F
-GLIBC_2.17 cpowl F
-GLIBC_2.17 cproj F
-GLIBC_2.17 cprojf F
-GLIBC_2.17 cprojl F
-GLIBC_2.17 creal F
-GLIBC_2.17 crealf F
-GLIBC_2.17 creall F
-GLIBC_2.17 csin F
-GLIBC_2.17 csinf F
-GLIBC_2.17 csinh F
-GLIBC_2.17 csinhf F
-GLIBC_2.17 csinhl F
-GLIBC_2.17 csinl F
-GLIBC_2.17 csqrt F
-GLIBC_2.17 csqrtf F
-GLIBC_2.17 csqrtl F
-GLIBC_2.17 ctan F
-GLIBC_2.17 ctanf F
-GLIBC_2.17 ctanh F
-GLIBC_2.17 ctanhf F
-GLIBC_2.17 ctanhl F
-GLIBC_2.17 ctanl F
-GLIBC_2.17 drem F
-GLIBC_2.17 dremf F
-GLIBC_2.17 dreml F
-GLIBC_2.17 erf F
-GLIBC_2.17 erfc F
-GLIBC_2.17 erfcf F
-GLIBC_2.17 erfcl F
-GLIBC_2.17 erff F
-GLIBC_2.17 erfl F
-GLIBC_2.17 exp F
-GLIBC_2.17 exp10 F
-GLIBC_2.17 exp10f F
-GLIBC_2.17 exp10l F
-GLIBC_2.17 exp2 F
-GLIBC_2.17 exp2f F
-GLIBC_2.17 exp2l F
-GLIBC_2.17 expf F
-GLIBC_2.17 expl F
-GLIBC_2.17 expm1 F
-GLIBC_2.17 expm1f F
-GLIBC_2.17 expm1l F
-GLIBC_2.17 fabs F
-GLIBC_2.17 fabsf F
-GLIBC_2.17 fabsl F
-GLIBC_2.17 fdim F
-GLIBC_2.17 fdimf F
-GLIBC_2.17 fdiml F
-GLIBC_2.17 feclearexcept F
-GLIBC_2.17 fedisableexcept F
-GLIBC_2.17 feenableexcept F
-GLIBC_2.17 fegetenv F
-GLIBC_2.17 fegetexcept F
-GLIBC_2.17 fegetexceptflag F
-GLIBC_2.17 fegetround F
-GLIBC_2.17 feholdexcept F
-GLIBC_2.17 feraiseexcept F
-GLIBC_2.17 fesetenv F
-GLIBC_2.17 fesetexceptflag F
-GLIBC_2.17 fesetround F
-GLIBC_2.17 fetestexcept F
-GLIBC_2.17 feupdateenv F
-GLIBC_2.17 finite F
-GLIBC_2.17 finitef F
-GLIBC_2.17 finitel F
-GLIBC_2.17 floor F
-GLIBC_2.17 floorf F
-GLIBC_2.17 floorl F
-GLIBC_2.17 fma F
-GLIBC_2.17 fmaf F
-GLIBC_2.17 fmal F
-GLIBC_2.17 fmax F
-GLIBC_2.17 fmaxf F
-GLIBC_2.17 fmaxl F
-GLIBC_2.17 fmin F
-GLIBC_2.17 fminf F
-GLIBC_2.17 fminl F
-GLIBC_2.17 fmod F
-GLIBC_2.17 fmodf F
-GLIBC_2.17 fmodl F
-GLIBC_2.17 frexp F
-GLIBC_2.17 frexpf F
-GLIBC_2.17 frexpl F
-GLIBC_2.17 gamma F
-GLIBC_2.17 gammaf F
-GLIBC_2.17 gammal F
-GLIBC_2.17 hypot F
-GLIBC_2.17 hypotf F
-GLIBC_2.17 hypotl F
-GLIBC_2.17 ilogb F
-GLIBC_2.17 ilogbf F
-GLIBC_2.17 ilogbl F
-GLIBC_2.17 j0 F
-GLIBC_2.17 j0f F
-GLIBC_2.17 j0l F
-GLIBC_2.17 j1 F
-GLIBC_2.17 j1f F
-GLIBC_2.17 j1l F
-GLIBC_2.17 jn F
-GLIBC_2.17 jnf F
-GLIBC_2.17 jnl F
-GLIBC_2.17 ldexp F
-GLIBC_2.17 ldexpf F
-GLIBC_2.17 ldexpl F
-GLIBC_2.17 lgamma F
-GLIBC_2.17 lgamma_r F
-GLIBC_2.17 lgammaf F
-GLIBC_2.17 lgammaf_r F
-GLIBC_2.17 lgammal F
-GLIBC_2.17 lgammal_r F
-GLIBC_2.17 llrint F
-GLIBC_2.17 llrintf F
-GLIBC_2.17 llrintl F
-GLIBC_2.17 llround F
-GLIBC_2.17 llroundf F
-GLIBC_2.17 llroundl F
-GLIBC_2.17 log F
-GLIBC_2.17 log10 F
-GLIBC_2.17 log10f F
-GLIBC_2.17 log10l F
-GLIBC_2.17 log1p F
-GLIBC_2.17 log1pf F
-GLIBC_2.17 log1pl F
-GLIBC_2.17 log2 F
-GLIBC_2.17 log2f F
-GLIBC_2.17 log2l F
-GLIBC_2.17 logb F
-GLIBC_2.17 logbf F
-GLIBC_2.17 logbl F
-GLIBC_2.17 logf F
-GLIBC_2.17 logl F
-GLIBC_2.17 lrint F
-GLIBC_2.17 lrintf F
-GLIBC_2.17 lrintl F
-GLIBC_2.17 lround F
-GLIBC_2.17 lroundf F
-GLIBC_2.17 lroundl F
-GLIBC_2.17 matherr F
-GLIBC_2.17 modf F
-GLIBC_2.17 modff F
-GLIBC_2.17 modfl F
-GLIBC_2.17 nan F
-GLIBC_2.17 nanf F
-GLIBC_2.17 nanl F
-GLIBC_2.17 nearbyint F
-GLIBC_2.17 nearbyintf F
-GLIBC_2.17 nearbyintl F
-GLIBC_2.17 nextafter F
-GLIBC_2.17 nextafterf F
-GLIBC_2.17 nextafterl F
-GLIBC_2.17 nexttoward F
-GLIBC_2.17 nexttowardf F
-GLIBC_2.17 nexttowardl F
-GLIBC_2.17 pow F
-GLIBC_2.17 pow10 F
-GLIBC_2.17 pow10f F
-GLIBC_2.17 pow10l F
-GLIBC_2.17 powf F
-GLIBC_2.17 powl F
-GLIBC_2.17 remainder F
-GLIBC_2.17 remainderf F
-GLIBC_2.17 remainderl F
-GLIBC_2.17 remquo F
-GLIBC_2.17 remquof F
-GLIBC_2.17 remquol F
-GLIBC_2.17 rint F
-GLIBC_2.17 rintf F
-GLIBC_2.17 rintl F
-GLIBC_2.17 round F
-GLIBC_2.17 roundf F
-GLIBC_2.17 roundl F
-GLIBC_2.17 scalb F
-GLIBC_2.17 scalbf F
-GLIBC_2.17 scalbl F
-GLIBC_2.17 scalbln F
-GLIBC_2.17 scalblnf F
-GLIBC_2.17 scalblnl F
-GLIBC_2.17 scalbn F
-GLIBC_2.17 scalbnf F
-GLIBC_2.17 scalbnl F
-GLIBC_2.17 signgam D 0x4
-GLIBC_2.17 significand F
-GLIBC_2.17 significandf F
-GLIBC_2.17 significandl F
-GLIBC_2.17 sin F
-GLIBC_2.17 sincos F
-GLIBC_2.17 sincosf F
-GLIBC_2.17 sincosl F
-GLIBC_2.17 sinf F
-GLIBC_2.17 sinh F
-GLIBC_2.17 sinhf F
-GLIBC_2.17 sinhl F
-GLIBC_2.17 sinl F
-GLIBC_2.17 sqrt F
-GLIBC_2.17 sqrtf F
-GLIBC_2.17 sqrtl F
-GLIBC_2.17 tan F
-GLIBC_2.17 tanf F
-GLIBC_2.17 tanh F
-GLIBC_2.17 tanhf F
-GLIBC_2.17 tanhl F
-GLIBC_2.17 tanl F
-GLIBC_2.17 tgamma F
-GLIBC_2.17 tgammaf F
-GLIBC_2.17 tgammal F
-GLIBC_2.17 trunc F
-GLIBC_2.17 truncf F
-GLIBC_2.17 truncl F
-GLIBC_2.17 y0 F
-GLIBC_2.17 y0f F
-GLIBC_2.17 y0l F
-GLIBC_2.17 y1 F
-GLIBC_2.17 y1f F
-GLIBC_2.17 y1l F
-GLIBC_2.17 yn F
-GLIBC_2.17 ynf F
-GLIBC_2.17 ynl F
-GLIBC_2.18 __issignaling F
-GLIBC_2.18 __issignalingf F
-GLIBC_2.18 __issignalingl F
-GLIBC_2.23 __signgam D 0x4
-GLIBC_2.23 lgamma F
-GLIBC_2.23 lgammaf F
-GLIBC_2.23 lgammal F
-GLIBC_2.24 nextdown F
-GLIBC_2.24 nextdownf F
-GLIBC_2.24 nextdownl F
-GLIBC_2.24 nextup F
-GLIBC_2.24 nextupf F
-GLIBC_2.24 nextupl F
-GLIBC_2.25 __fe_dfl_mode D 0x8
-GLIBC_2.25 __iscanonicall F
-GLIBC_2.25 __iseqsig F
-GLIBC_2.25 __iseqsigf F
-GLIBC_2.25 __iseqsigl F
-GLIBC_2.25 canonicalize F
-GLIBC_2.25 canonicalizef F
-GLIBC_2.25 canonicalizel F
-GLIBC_2.25 fegetmode F
-GLIBC_2.25 fesetexcept F
-GLIBC_2.25 fesetmode F
-GLIBC_2.25 fetestexceptflag F
-GLIBC_2.25 fmaxmag F
-GLIBC_2.25 fmaxmagf F
-GLIBC_2.25 fmaxmagl F
-GLIBC_2.25 fminmag F
-GLIBC_2.25 fminmagf F
-GLIBC_2.25 fminmagl F
-GLIBC_2.25 fromfp F
-GLIBC_2.25 fromfpf F
-GLIBC_2.25 fromfpl F
-GLIBC_2.25 fromfpx F
-GLIBC_2.25 fromfpxf F
-GLIBC_2.25 fromfpxl F
-GLIBC_2.25 getpayload F
-GLIBC_2.25 getpayloadf F
-GLIBC_2.25 getpayloadl F
-GLIBC_2.25 llogb F
-GLIBC_2.25 llogbf F
-GLIBC_2.25 llogbl F
-GLIBC_2.25 roundeven F
-GLIBC_2.25 roundevenf F
-GLIBC_2.25 roundevenl F
-GLIBC_2.25 setpayload F
-GLIBC_2.25 setpayloadf F
-GLIBC_2.25 setpayloadl F
-GLIBC_2.25 setpayloadsig F
-GLIBC_2.25 setpayloadsigf F
-GLIBC_2.25 setpayloadsigl F
-GLIBC_2.25 totalorder F
-GLIBC_2.25 totalorderf F
-GLIBC_2.25 totalorderl F
-GLIBC_2.25 totalordermag F
-GLIBC_2.25 totalordermagf F
-GLIBC_2.25 totalordermagl F
-GLIBC_2.25 ufromfp F
-GLIBC_2.25 ufromfpf F
-GLIBC_2.25 ufromfpl F
-GLIBC_2.25 ufromfpx F
-GLIBC_2.25 ufromfpxf F
-GLIBC_2.25 ufromfpxl F
-GLIBC_2.26 __acosf128_finite F
-GLIBC_2.26 __acoshf128_finite F
-GLIBC_2.26 __asinf128_finite F
-GLIBC_2.26 __atan2f128_finite F
-GLIBC_2.26 __atanhf128_finite F
-GLIBC_2.26 __coshf128_finite F
-GLIBC_2.26 __exp10f128_finite F
-GLIBC_2.26 __exp2f128_finite F
-GLIBC_2.26 __expf128_finite F
-GLIBC_2.26 __finitef128 F
-GLIBC_2.26 __fmodf128_finite F
-GLIBC_2.26 __fpclassifyf128 F
-GLIBC_2.26 __gammaf128_r_finite F
-GLIBC_2.26 __hypotf128_finite F
-GLIBC_2.26 __iseqsigf128 F
-GLIBC_2.26 __isinff128 F
-GLIBC_2.26 __isnanf128 F
-GLIBC_2.26 __issignalingf128 F
-GLIBC_2.26 __j0f128_finite F
-GLIBC_2.26 __j1f128_finite F
-GLIBC_2.26 __jnf128_finite F
-GLIBC_2.26 __lgammaf128_r_finite F
-GLIBC_2.26 __log10f128_finite F
-GLIBC_2.26 __log2f128_finite F
-GLIBC_2.26 __logf128_finite F
-GLIBC_2.26 __powf128_finite F
-GLIBC_2.26 __remainderf128_finite F
-GLIBC_2.26 __signbitf128 F
-GLIBC_2.26 __sinhf128_finite F
-GLIBC_2.26 __sqrtf128_finite F
-GLIBC_2.26 __y0f128_finite F
-GLIBC_2.26 __y1f128_finite F
-GLIBC_2.26 __ynf128_finite F
-GLIBC_2.26 acosf128 F
-GLIBC_2.26 acoshf128 F
-GLIBC_2.26 asinf128 F
-GLIBC_2.26 asinhf128 F
-GLIBC_2.26 atan2f128 F
-GLIBC_2.26 atanf128 F
-GLIBC_2.26 atanhf128 F
-GLIBC_2.26 cabsf128 F
-GLIBC_2.26 cacosf128 F
-GLIBC_2.26 cacoshf128 F
-GLIBC_2.26 canonicalizef128 F
-GLIBC_2.26 cargf128 F
-GLIBC_2.26 casinf128 F
-GLIBC_2.26 casinhf128 F
-GLIBC_2.26 catanf128 F
-GLIBC_2.26 catanhf128 F
-GLIBC_2.26 cbrtf128 F
-GLIBC_2.26 ccosf128 F
-GLIBC_2.26 ccoshf128 F
-GLIBC_2.26 ceilf128 F
-GLIBC_2.26 cexpf128 F
-GLIBC_2.26 cimagf128 F
-GLIBC_2.26 clog10f128 F
-GLIBC_2.26 clogf128 F
-GLIBC_2.26 conjf128 F
-GLIBC_2.26 copysignf128 F
-GLIBC_2.26 cosf128 F
-GLIBC_2.26 coshf128 F
-GLIBC_2.26 cpowf128 F
-GLIBC_2.26 cprojf128 F
-GLIBC_2.26 crealf128 F
-GLIBC_2.26 csinf128 F
-GLIBC_2.26 csinhf128 F
-GLIBC_2.26 csqrtf128 F
-GLIBC_2.26 ctanf128 F
-GLIBC_2.26 ctanhf128 F
-GLIBC_2.26 erfcf128 F
-GLIBC_2.26 erff128 F
-GLIBC_2.26 exp10f128 F
-GLIBC_2.26 exp2f128 F
-GLIBC_2.26 expf128 F
-GLIBC_2.26 expm1f128 F
-GLIBC_2.26 fabsf128 F
-GLIBC_2.26 fdimf128 F
-GLIBC_2.26 floorf128 F
-GLIBC_2.26 fmaf128 F
-GLIBC_2.26 fmaxf128 F
-GLIBC_2.26 fmaxmagf128 F
-GLIBC_2.26 fminf128 F
-GLIBC_2.26 fminmagf128 F
-GLIBC_2.26 fmodf128 F
-GLIBC_2.26 frexpf128 F
-GLIBC_2.26 fromfpf128 F
-GLIBC_2.26 fromfpxf128 F
-GLIBC_2.26 getpayloadf128 F
-GLIBC_2.26 hypotf128 F
-GLIBC_2.26 ilogbf128 F
-GLIBC_2.26 j0f128 F
-GLIBC_2.26 j1f128 F
-GLIBC_2.26 jnf128 F
-GLIBC_2.26 ldexpf128 F
-GLIBC_2.26 lgammaf128 F
-GLIBC_2.26 lgammaf128_r F
-GLIBC_2.26 llogbf128 F
-GLIBC_2.26 llrintf128 F
-GLIBC_2.26 llroundf128 F
-GLIBC_2.26 log10f128 F
-GLIBC_2.26 log1pf128 F
-GLIBC_2.26 log2f128 F
-GLIBC_2.26 logbf128 F
-GLIBC_2.26 logf128 F
-GLIBC_2.26 lrintf128 F
-GLIBC_2.26 lroundf128 F
-GLIBC_2.26 modff128 F
-GLIBC_2.26 nanf128 F
-GLIBC_2.26 nearbyintf128 F
-GLIBC_2.26 nextafterf128 F
-GLIBC_2.26 nextdownf128 F
-GLIBC_2.26 nextupf128 F
-GLIBC_2.26 powf128 F
-GLIBC_2.26 remainderf128 F
-GLIBC_2.26 remquof128 F
-GLIBC_2.26 rintf128 F
-GLIBC_2.26 roundevenf128 F
-GLIBC_2.26 roundf128 F
-GLIBC_2.26 scalblnf128 F
-GLIBC_2.26 scalbnf128 F
-GLIBC_2.26 setpayloadf128 F
-GLIBC_2.26 setpayloadsigf128 F
-GLIBC_2.26 sincosf128 F
-GLIBC_2.26 sinf128 F
-GLIBC_2.26 sinhf128 F
-GLIBC_2.26 sqrtf128 F
-GLIBC_2.26 tanf128 F
-GLIBC_2.26 tanhf128 F
-GLIBC_2.26 tgammaf128 F
-GLIBC_2.26 totalorderf128 F
-GLIBC_2.26 totalordermagf128 F
-GLIBC_2.26 truncf128 F
-GLIBC_2.26 ufromfpf128 F
-GLIBC_2.26 ufromfpxf128 F
-GLIBC_2.26 y0f128 F
-GLIBC_2.26 y1f128 F
-GLIBC_2.26 ynf128 F
-GLIBC_2.27 acosf32 F
-GLIBC_2.27 acosf32x F
-GLIBC_2.27 acosf64 F
-GLIBC_2.27 acosf64x F
-GLIBC_2.27 acoshf32 F
-GLIBC_2.27 acoshf32x F
-GLIBC_2.27 acoshf64 F
-GLIBC_2.27 acoshf64x F
-GLIBC_2.27 asinf32 F
-GLIBC_2.27 asinf32x F
-GLIBC_2.27 asinf64 F
-GLIBC_2.27 asinf64x F
-GLIBC_2.27 asinhf32 F
-GLIBC_2.27 asinhf32x F
-GLIBC_2.27 asinhf64 F
-GLIBC_2.27 asinhf64x F
-GLIBC_2.27 atan2f32 F
-GLIBC_2.27 atan2f32x F
-GLIBC_2.27 atan2f64 F
-GLIBC_2.27 atan2f64x F
-GLIBC_2.27 atanf32 F
-GLIBC_2.27 atanf32x F
-GLIBC_2.27 atanf64 F
-GLIBC_2.27 atanf64x F
-GLIBC_2.27 atanhf32 F
-GLIBC_2.27 atanhf32x F
-GLIBC_2.27 atanhf64 F
-GLIBC_2.27 atanhf64x F
-GLIBC_2.27 cabsf32 F
-GLIBC_2.27 cabsf32x F
-GLIBC_2.27 cabsf64 F
-GLIBC_2.27 cabsf64x F
-GLIBC_2.27 cacosf32 F
-GLIBC_2.27 cacosf32x F
-GLIBC_2.27 cacosf64 F
-GLIBC_2.27 cacosf64x F
-GLIBC_2.27 cacoshf32 F
-GLIBC_2.27 cacoshf32x F
-GLIBC_2.27 cacoshf64 F
-GLIBC_2.27 cacoshf64x F
-GLIBC_2.27 canonicalizef32 F
-GLIBC_2.27 canonicalizef32x F
-GLIBC_2.27 canonicalizef64 F
-GLIBC_2.27 canonicalizef64x F
-GLIBC_2.27 cargf32 F
-GLIBC_2.27 cargf32x F
-GLIBC_2.27 cargf64 F
-GLIBC_2.27 cargf64x F
-GLIBC_2.27 casinf32 F
-GLIBC_2.27 casinf32x F
-GLIBC_2.27 casinf64 F
-GLIBC_2.27 casinf64x F
-GLIBC_2.27 casinhf32 F
-GLIBC_2.27 casinhf32x F
-GLIBC_2.27 casinhf64 F
-GLIBC_2.27 casinhf64x F
-GLIBC_2.27 catanf32 F
-GLIBC_2.27 catanf32x F
-GLIBC_2.27 catanf64 F
-GLIBC_2.27 catanf64x F
-GLIBC_2.27 catanhf32 F
-GLIBC_2.27 catanhf32x F
-GLIBC_2.27 catanhf64 F
-GLIBC_2.27 catanhf64x F
-GLIBC_2.27 cbrtf32 F
-GLIBC_2.27 cbrtf32x F
-GLIBC_2.27 cbrtf64 F
-GLIBC_2.27 cbrtf64x F
-GLIBC_2.27 ccosf32 F
-GLIBC_2.27 ccosf32x F
-GLIBC_2.27 ccosf64 F
-GLIBC_2.27 ccosf64x F
-GLIBC_2.27 ccoshf32 F
-GLIBC_2.27 ccoshf32x F
-GLIBC_2.27 ccoshf64 F
-GLIBC_2.27 ccoshf64x F
-GLIBC_2.27 ceilf32 F
-GLIBC_2.27 ceilf32x F
-GLIBC_2.27 ceilf64 F
-GLIBC_2.27 ceilf64x F
-GLIBC_2.27 cexpf32 F
-GLIBC_2.27 cexpf32x F
-GLIBC_2.27 cexpf64 F
-GLIBC_2.27 cexpf64x F
-GLIBC_2.27 cimagf32 F
-GLIBC_2.27 cimagf32x F
-GLIBC_2.27 cimagf64 F
-GLIBC_2.27 cimagf64x F
-GLIBC_2.27 clog10f32 F
-GLIBC_2.27 clog10f32x F
-GLIBC_2.27 clog10f64 F
-GLIBC_2.27 clog10f64x F
-GLIBC_2.27 clogf32 F
-GLIBC_2.27 clogf32x F
-GLIBC_2.27 clogf64 F
-GLIBC_2.27 clogf64x F
-GLIBC_2.27 conjf32 F
-GLIBC_2.27 conjf32x F
-GLIBC_2.27 conjf64 F
-GLIBC_2.27 conjf64x F
-GLIBC_2.27 copysignf32 F
-GLIBC_2.27 copysignf32x F
-GLIBC_2.27 copysignf64 F
-GLIBC_2.27 copysignf64x F
-GLIBC_2.27 cosf32 F
-GLIBC_2.27 cosf32x F
-GLIBC_2.27 cosf64 F
-GLIBC_2.27 cosf64x F
-GLIBC_2.27 coshf32 F
-GLIBC_2.27 coshf32x F
-GLIBC_2.27 coshf64 F
-GLIBC_2.27 coshf64x F
-GLIBC_2.27 cpowf32 F
-GLIBC_2.27 cpowf32x F
-GLIBC_2.27 cpowf64 F
-GLIBC_2.27 cpowf64x F
-GLIBC_2.27 cprojf32 F
-GLIBC_2.27 cprojf32x F
-GLIBC_2.27 cprojf64 F
-GLIBC_2.27 cprojf64x F
-GLIBC_2.27 crealf32 F
-GLIBC_2.27 crealf32x F
-GLIBC_2.27 crealf64 F
-GLIBC_2.27 crealf64x F
-GLIBC_2.27 csinf32 F
-GLIBC_2.27 csinf32x F
-GLIBC_2.27 csinf64 F
-GLIBC_2.27 csinf64x F
-GLIBC_2.27 csinhf32 F
-GLIBC_2.27 csinhf32x F
-GLIBC_2.27 csinhf64 F
-GLIBC_2.27 csinhf64x F
-GLIBC_2.27 csqrtf32 F
-GLIBC_2.27 csqrtf32x F
-GLIBC_2.27 csqrtf64 F
-GLIBC_2.27 csqrtf64x F
-GLIBC_2.27 ctanf32 F
-GLIBC_2.27 ctanf32x F
-GLIBC_2.27 ctanf64 F
-GLIBC_2.27 ctanf64x F
-GLIBC_2.27 ctanhf32 F
-GLIBC_2.27 ctanhf32x F
-GLIBC_2.27 ctanhf64 F
-GLIBC_2.27 ctanhf64x F
-GLIBC_2.27 erfcf32 F
-GLIBC_2.27 erfcf32x F
-GLIBC_2.27 erfcf64 F
-GLIBC_2.27 erfcf64x F
-GLIBC_2.27 erff32 F
-GLIBC_2.27 erff32x F
-GLIBC_2.27 erff64 F
-GLIBC_2.27 erff64x F
-GLIBC_2.27 exp10f32 F
-GLIBC_2.27 exp10f32x F
-GLIBC_2.27 exp10f64 F
-GLIBC_2.27 exp10f64x F
-GLIBC_2.27 exp2f F
-GLIBC_2.27 exp2f32 F
-GLIBC_2.27 exp2f32x F
-GLIBC_2.27 exp2f64 F
-GLIBC_2.27 exp2f64x F
-GLIBC_2.27 expf F
-GLIBC_2.27 expf32 F
-GLIBC_2.27 expf32x F
-GLIBC_2.27 expf64 F
-GLIBC_2.27 expf64x F
-GLIBC_2.27 expm1f32 F
-GLIBC_2.27 expm1f32x F
-GLIBC_2.27 expm1f64 F
-GLIBC_2.27 expm1f64x F
-GLIBC_2.27 fabsf32 F
-GLIBC_2.27 fabsf32x F
-GLIBC_2.27 fabsf64 F
-GLIBC_2.27 fabsf64x F
-GLIBC_2.27 fdimf32 F
-GLIBC_2.27 fdimf32x F
-GLIBC_2.27 fdimf64 F
-GLIBC_2.27 fdimf64x F
-GLIBC_2.27 floorf32 F
-GLIBC_2.27 floorf32x F
-GLIBC_2.27 floorf64 F
-GLIBC_2.27 floorf64x F
-GLIBC_2.27 fmaf32 F
-GLIBC_2.27 fmaf32x F
-GLIBC_2.27 fmaf64 F
-GLIBC_2.27 fmaf64x F
-GLIBC_2.27 fmaxf32 F
-GLIBC_2.27 fmaxf32x F
-GLIBC_2.27 fmaxf64 F
-GLIBC_2.27 fmaxf64x F
-GLIBC_2.27 fmaxmagf32 F
-GLIBC_2.27 fmaxmagf32x F
-GLIBC_2.27 fmaxmagf64 F
-GLIBC_2.27 fmaxmagf64x F
-GLIBC_2.27 fminf32 F
-GLIBC_2.27 fminf32x F
-GLIBC_2.27 fminf64 F
-GLIBC_2.27 fminf64x F
-GLIBC_2.27 fminmagf32 F
-GLIBC_2.27 fminmagf32x F
-GLIBC_2.27 fminmagf64 F
-GLIBC_2.27 fminmagf64x F
-GLIBC_2.27 fmodf32 F
-GLIBC_2.27 fmodf32x F
-GLIBC_2.27 fmodf64 F
-GLIBC_2.27 fmodf64x F
-GLIBC_2.27 frexpf32 F
-GLIBC_2.27 frexpf32x F
-GLIBC_2.27 frexpf64 F
-GLIBC_2.27 frexpf64x F
-GLIBC_2.27 fromfpf32 F
-GLIBC_2.27 fromfpf32x F
-GLIBC_2.27 fromfpf64 F
-GLIBC_2.27 fromfpf64x F
-GLIBC_2.27 fromfpxf32 F
-GLIBC_2.27 fromfpxf32x F
-GLIBC_2.27 fromfpxf64 F
-GLIBC_2.27 fromfpxf64x F
-GLIBC_2.27 getpayloadf32 F
-GLIBC_2.27 getpayloadf32x F
-GLIBC_2.27 getpayloadf64 F
-GLIBC_2.27 getpayloadf64x F
-GLIBC_2.27 hypotf32 F
-GLIBC_2.27 hypotf32x F
-GLIBC_2.27 hypotf64 F
-GLIBC_2.27 hypotf64x F
-GLIBC_2.27 ilogbf32 F
-GLIBC_2.27 ilogbf32x F
-GLIBC_2.27 ilogbf64 F
-GLIBC_2.27 ilogbf64x F
-GLIBC_2.27 j0f32 F
-GLIBC_2.27 j0f32x F
-GLIBC_2.27 j0f64 F
-GLIBC_2.27 j0f64x F
-GLIBC_2.27 j1f32 F
-GLIBC_2.27 j1f32x F
-GLIBC_2.27 j1f64 F
-GLIBC_2.27 j1f64x F
-GLIBC_2.27 jnf32 F
-GLIBC_2.27 jnf32x F
-GLIBC_2.27 jnf64 F
-GLIBC_2.27 jnf64x F
-GLIBC_2.27 ldexpf32 F
-GLIBC_2.27 ldexpf32x F
-GLIBC_2.27 ldexpf64 F
-GLIBC_2.27 ldexpf64x F
-GLIBC_2.27 lgammaf32 F
-GLIBC_2.27 lgammaf32_r F
-GLIBC_2.27 lgammaf32x F
-GLIBC_2.27 lgammaf32x_r F
-GLIBC_2.27 lgammaf64 F
-GLIBC_2.27 lgammaf64_r F
-GLIBC_2.27 lgammaf64x F
-GLIBC_2.27 lgammaf64x_r F
-GLIBC_2.27 llogbf32 F
-GLIBC_2.27 llogbf32x F
-GLIBC_2.27 llogbf64 F
-GLIBC_2.27 llogbf64x F
-GLIBC_2.27 llrintf32 F
-GLIBC_2.27 llrintf32x F
-GLIBC_2.27 llrintf64 F
-GLIBC_2.27 llrintf64x F
-GLIBC_2.27 llroundf32 F
-GLIBC_2.27 llroundf32x F
-GLIBC_2.27 llroundf64 F
-GLIBC_2.27 llroundf64x F
-GLIBC_2.27 log10f32 F
-GLIBC_2.27 log10f32x F
-GLIBC_2.27 log10f64 F
-GLIBC_2.27 log10f64x F
-GLIBC_2.27 log1pf32 F
-GLIBC_2.27 log1pf32x F
-GLIBC_2.27 log1pf64 F
-GLIBC_2.27 log1pf64x F
-GLIBC_2.27 log2f F
-GLIBC_2.27 log2f32 F
-GLIBC_2.27 log2f32x F
-GLIBC_2.27 log2f64 F
-GLIBC_2.27 log2f64x F
-GLIBC_2.27 logbf32 F
-GLIBC_2.27 logbf32x F
-GLIBC_2.27 logbf64 F
-GLIBC_2.27 logbf64x F
-GLIBC_2.27 logf F
-GLIBC_2.27 logf32 F
-GLIBC_2.27 logf32x F
-GLIBC_2.27 logf64 F
-GLIBC_2.27 logf64x F
-GLIBC_2.27 lrintf32 F
-GLIBC_2.27 lrintf32x F
-GLIBC_2.27 lrintf64 F
-GLIBC_2.27 lrintf64x F
-GLIBC_2.27 lroundf32 F
-GLIBC_2.27 lroundf32x F
-GLIBC_2.27 lroundf64 F
-GLIBC_2.27 lroundf64x F
-GLIBC_2.27 modff32 F
-GLIBC_2.27 modff32x F
-GLIBC_2.27 modff64 F
-GLIBC_2.27 modff64x F
-GLIBC_2.27 nanf32 F
-GLIBC_2.27 nanf32x F
-GLIBC_2.27 nanf64 F
-GLIBC_2.27 nanf64x F
-GLIBC_2.27 nearbyintf32 F
-GLIBC_2.27 nearbyintf32x F
-GLIBC_2.27 nearbyintf64 F
-GLIBC_2.27 nearbyintf64x F
-GLIBC_2.27 nextafterf32 F
-GLIBC_2.27 nextafterf32x F
-GLIBC_2.27 nextafterf64 F
-GLIBC_2.27 nextafterf64x F
-GLIBC_2.27 nextdownf32 F
-GLIBC_2.27 nextdownf32x F
-GLIBC_2.27 nextdownf64 F
-GLIBC_2.27 nextdownf64x F
-GLIBC_2.27 nextupf32 F
-GLIBC_2.27 nextupf32x F
-GLIBC_2.27 nextupf64 F
-GLIBC_2.27 nextupf64x F
-GLIBC_2.27 powf F
-GLIBC_2.27 powf32 F
-GLIBC_2.27 powf32x F
-GLIBC_2.27 powf64 F
-GLIBC_2.27 powf64x F
-GLIBC_2.27 remainderf32 F
-GLIBC_2.27 remainderf32x F
-GLIBC_2.27 remainderf64 F
-GLIBC_2.27 remainderf64x F
-GLIBC_2.27 remquof32 F
-GLIBC_2.27 remquof32x F
-GLIBC_2.27 remquof64 F
-GLIBC_2.27 remquof64x F
-GLIBC_2.27 rintf32 F
-GLIBC_2.27 rintf32x F
-GLIBC_2.27 rintf64 F
-GLIBC_2.27 rintf64x F
-GLIBC_2.27 roundevenf32 F
-GLIBC_2.27 roundevenf32x F
-GLIBC_2.27 roundevenf64 F
-GLIBC_2.27 roundevenf64x F
-GLIBC_2.27 roundf32 F
-GLIBC_2.27 roundf32x F
-GLIBC_2.27 roundf64 F
-GLIBC_2.27 roundf64x F
-GLIBC_2.27 scalblnf32 F
-GLIBC_2.27 scalblnf32x F
-GLIBC_2.27 scalblnf64 F
-GLIBC_2.27 scalblnf64x F
-GLIBC_2.27 scalbnf32 F
-GLIBC_2.27 scalbnf32x F
-GLIBC_2.27 scalbnf64 F
-GLIBC_2.27 scalbnf64x F
-GLIBC_2.27 setpayloadf32 F
-GLIBC_2.27 setpayloadf32x F
-GLIBC_2.27 setpayloadf64 F
-GLIBC_2.27 setpayloadf64x F
-GLIBC_2.27 setpayloadsigf32 F
-GLIBC_2.27 setpayloadsigf32x F
-GLIBC_2.27 setpayloadsigf64 F
-GLIBC_2.27 setpayloadsigf64x F
-GLIBC_2.27 sincosf32 F
-GLIBC_2.27 sincosf32x F
-GLIBC_2.27 sincosf64 F
-GLIBC_2.27 sincosf64x F
-GLIBC_2.27 sinf32 F
-GLIBC_2.27 sinf32x F
-GLIBC_2.27 sinf64 F
-GLIBC_2.27 sinf64x F
-GLIBC_2.27 sinhf32 F
-GLIBC_2.27 sinhf32x F
-GLIBC_2.27 sinhf64 F
-GLIBC_2.27 sinhf64x F
-GLIBC_2.27 sqrtf32 F
-GLIBC_2.27 sqrtf32x F
-GLIBC_2.27 sqrtf64 F
-GLIBC_2.27 sqrtf64x F
-GLIBC_2.27 tanf32 F
-GLIBC_2.27 tanf32x F
-GLIBC_2.27 tanf64 F
-GLIBC_2.27 tanf64x F
-GLIBC_2.27 tanhf32 F
-GLIBC_2.27 tanhf32x F
-GLIBC_2.27 tanhf64 F
-GLIBC_2.27 tanhf64x F
-GLIBC_2.27 tgammaf32 F
-GLIBC_2.27 tgammaf32x F
-GLIBC_2.27 tgammaf64 F
-GLIBC_2.27 tgammaf64x F
-GLIBC_2.27 totalorderf32 F
-GLIBC_2.27 totalorderf32x F
-GLIBC_2.27 totalorderf64 F
-GLIBC_2.27 totalorderf64x F
-GLIBC_2.27 totalordermagf32 F
-GLIBC_2.27 totalordermagf32x F
-GLIBC_2.27 totalordermagf64 F
-GLIBC_2.27 totalordermagf64x F
-GLIBC_2.27 truncf32 F
-GLIBC_2.27 truncf32x F
-GLIBC_2.27 truncf64 F
-GLIBC_2.27 truncf64x F
-GLIBC_2.27 ufromfpf32 F
-GLIBC_2.27 ufromfpf32x F
-GLIBC_2.27 ufromfpf64 F
-GLIBC_2.27 ufromfpf64x F
-GLIBC_2.27 ufromfpxf32 F
-GLIBC_2.27 ufromfpxf32x F
-GLIBC_2.27 ufromfpxf64 F
-GLIBC_2.27 ufromfpxf64x F
-GLIBC_2.27 y0f32 F
-GLIBC_2.27 y0f32x F
-GLIBC_2.27 y0f64 F
-GLIBC_2.27 y0f64x F
-GLIBC_2.27 y1f32 F
-GLIBC_2.27 y1f32x F
-GLIBC_2.27 y1f64 F
-GLIBC_2.27 y1f64x F
-GLIBC_2.27 ynf32 F
-GLIBC_2.27 ynf32x F
-GLIBC_2.27 ynf64 F
-GLIBC_2.27 ynf64x F
-GLIBC_2.28 __nldbl_daddl F
-GLIBC_2.28 __nldbl_ddivl F
-GLIBC_2.28 __nldbl_dmull F
-GLIBC_2.28 __nldbl_dsubl F
-GLIBC_2.28 daddl F
-GLIBC_2.28 ddivl F
-GLIBC_2.28 dmull F
-GLIBC_2.28 dsubl F
-GLIBC_2.28 f32addf128 F
-GLIBC_2.28 f32addf32x F
-GLIBC_2.28 f32addf64 F
-GLIBC_2.28 f32addf64x F
-GLIBC_2.28 f32divf128 F
-GLIBC_2.28 f32divf32x F
-GLIBC_2.28 f32divf64 F
-GLIBC_2.28 f32divf64x F
-GLIBC_2.28 f32mulf128 F
-GLIBC_2.28 f32mulf32x F
-GLIBC_2.28 f32mulf64 F
-GLIBC_2.28 f32mulf64x F
-GLIBC_2.28 f32subf128 F
-GLIBC_2.28 f32subf32x F
-GLIBC_2.28 f32subf64 F
-GLIBC_2.28 f32subf64x F
-GLIBC_2.28 f32xaddf128 F
-GLIBC_2.28 f32xaddf64 F
-GLIBC_2.28 f32xaddf64x F
-GLIBC_2.28 f32xdivf128 F
-GLIBC_2.28 f32xdivf64 F
-GLIBC_2.28 f32xdivf64x F
-GLIBC_2.28 f32xmulf128 F
-GLIBC_2.28 f32xmulf64 F
-GLIBC_2.28 f32xmulf64x F
-GLIBC_2.28 f32xsubf128 F
-GLIBC_2.28 f32xsubf64 F
-GLIBC_2.28 f32xsubf64x F
-GLIBC_2.28 f64addf128 F
-GLIBC_2.28 f64addf64x F
-GLIBC_2.28 f64divf128 F
-GLIBC_2.28 f64divf64x F
-GLIBC_2.28 f64mulf128 F
-GLIBC_2.28 f64mulf64x F
-GLIBC_2.28 f64subf128 F
-GLIBC_2.28 f64subf64x F
-GLIBC_2.28 f64xaddf128 F
-GLIBC_2.28 f64xdivf128 F
-GLIBC_2.28 f64xmulf128 F
-GLIBC_2.28 f64xsubf128 F
-GLIBC_2.28 fadd F
-GLIBC_2.28 faddl F
-GLIBC_2.28 fdiv F
-GLIBC_2.28 fdivl F
-GLIBC_2.28 fmul F
-GLIBC_2.28 fmull F
-GLIBC_2.28 fsub F
-GLIBC_2.28 fsubl F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist
deleted file mode 100644
index 331449dfcb..0000000000
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist
+++ /dev/null
@@ -1,907 +0,0 @@
-GLIBC_2.15 __acos_finite F
-GLIBC_2.15 __acosf_finite F
-GLIBC_2.15 __acosh_finite F
-GLIBC_2.15 __acoshf_finite F
-GLIBC_2.15 __acoshl_finite F
-GLIBC_2.15 __acosl_finite F
-GLIBC_2.15 __asin_finite F
-GLIBC_2.15 __asinf_finite F
-GLIBC_2.15 __asinl_finite F
-GLIBC_2.15 __atan2_finite F
-GLIBC_2.15 __atan2f_finite F
-GLIBC_2.15 __atan2l_finite F
-GLIBC_2.15 __atanh_finite F
-GLIBC_2.15 __atanhf_finite F
-GLIBC_2.15 __atanhl_finite F
-GLIBC_2.15 __cosh_finite F
-GLIBC_2.15 __coshf_finite F
-GLIBC_2.15 __coshl_finite F
-GLIBC_2.15 __exp10_finite F
-GLIBC_2.15 __exp10f_finite F
-GLIBC_2.15 __exp10l_finite F
-GLIBC_2.15 __exp2_finite F
-GLIBC_2.15 __exp2f_finite F
-GLIBC_2.15 __exp2l_finite F
-GLIBC_2.15 __exp_finite F
-GLIBC_2.15 __expf_finite F
-GLIBC_2.15 __expl_finite F
-GLIBC_2.15 __fmod_finite F
-GLIBC_2.15 __fmodf_finite F
-GLIBC_2.15 __fmodl_finite F
-GLIBC_2.15 __gamma_r_finite F
-GLIBC_2.15 __gammaf_r_finite F
-GLIBC_2.15 __gammal_r_finite F
-GLIBC_2.15 __hypot_finite F
-GLIBC_2.15 __hypotf_finite F
-GLIBC_2.15 __hypotl_finite F
-GLIBC_2.15 __j0_finite F
-GLIBC_2.15 __j0f_finite F
-GLIBC_2.15 __j0l_finite F
-GLIBC_2.15 __j1_finite F
-GLIBC_2.15 __j1f_finite F
-GLIBC_2.15 __j1l_finite F
-GLIBC_2.15 __jn_finite F
-GLIBC_2.15 __jnf_finite F
-GLIBC_2.15 __jnl_finite F
-GLIBC_2.15 __lgamma_r_finite F
-GLIBC_2.15 __lgammaf_r_finite F
-GLIBC_2.15 __lgammal_r_finite F
-GLIBC_2.15 __log10_finite F
-GLIBC_2.15 __log10f_finite F
-GLIBC_2.15 __log10l_finite F
-GLIBC_2.15 __log2_finite F
-GLIBC_2.15 __log2f_finite F
-GLIBC_2.15 __log2l_finite F
-GLIBC_2.15 __log_finite F
-GLIBC_2.15 __logf_finite F
-GLIBC_2.15 __logl_finite F
-GLIBC_2.15 __pow_finite F
-GLIBC_2.15 __powf_finite F
-GLIBC_2.15 __powl_finite F
-GLIBC_2.15 __remainder_finite F
-GLIBC_2.15 __remainderf_finite F
-GLIBC_2.15 __remainderl_finite F
-GLIBC_2.15 __scalb_finite F
-GLIBC_2.15 __scalbf_finite F
-GLIBC_2.15 __scalbl_finite F
-GLIBC_2.15 __sinh_finite F
-GLIBC_2.15 __sinhf_finite F
-GLIBC_2.15 __sinhl_finite F
-GLIBC_2.15 __sqrt_finite F
-GLIBC_2.15 __sqrtf_finite F
-GLIBC_2.15 __sqrtl_finite F
-GLIBC_2.15 __y0_finite F
-GLIBC_2.15 __y0f_finite F
-GLIBC_2.15 __y0l_finite F
-GLIBC_2.15 __y1_finite F
-GLIBC_2.15 __y1f_finite F
-GLIBC_2.15 __y1l_finite F
-GLIBC_2.15 __yn_finite F
-GLIBC_2.15 __ynf_finite F
-GLIBC_2.15 __ynl_finite F
-GLIBC_2.18 __issignaling F
-GLIBC_2.18 __issignalingf F
-GLIBC_2.18 __issignalingl F
-GLIBC_2.23 __signgam D 0x4
-GLIBC_2.23 lgamma F
-GLIBC_2.23 lgammaf F
-GLIBC_2.23 lgammal F
-GLIBC_2.24 nextdown F
-GLIBC_2.24 nextdownf F
-GLIBC_2.24 nextdownl F
-GLIBC_2.24 nextup F
-GLIBC_2.24 nextupf F
-GLIBC_2.24 nextupl F
-GLIBC_2.25 __fe_dfl_mode D 0x8
-GLIBC_2.25 __iscanonicall F
-GLIBC_2.25 __iseqsig F
-GLIBC_2.25 __iseqsigf F
-GLIBC_2.25 __iseqsigl F
-GLIBC_2.25 canonicalize F
-GLIBC_2.25 canonicalizef F
-GLIBC_2.25 canonicalizel F
-GLIBC_2.25 fegetmode F
-GLIBC_2.25 fesetexcept F
-GLIBC_2.25 fesetmode F
-GLIBC_2.25 fetestexceptflag F
-GLIBC_2.25 fmaxmag F
-GLIBC_2.25 fmaxmagf F
-GLIBC_2.25 fmaxmagl F
-GLIBC_2.25 fminmag F
-GLIBC_2.25 fminmagf F
-GLIBC_2.25 fminmagl F
-GLIBC_2.25 fromfp F
-GLIBC_2.25 fromfpf F
-GLIBC_2.25 fromfpl F
-GLIBC_2.25 fromfpx F
-GLIBC_2.25 fromfpxf F
-GLIBC_2.25 fromfpxl F
-GLIBC_2.25 getpayload F
-GLIBC_2.25 getpayloadf F
-GLIBC_2.25 getpayloadl F
-GLIBC_2.25 llogb F
-GLIBC_2.25 llogbf F
-GLIBC_2.25 llogbl F
-GLIBC_2.25 roundeven F
-GLIBC_2.25 roundevenf F
-GLIBC_2.25 roundevenl F
-GLIBC_2.25 setpayload F
-GLIBC_2.25 setpayloadf F
-GLIBC_2.25 setpayloadl F
-GLIBC_2.25 setpayloadsig F
-GLIBC_2.25 setpayloadsigf F
-GLIBC_2.25 setpayloadsigl F
-GLIBC_2.25 totalorder F
-GLIBC_2.25 totalorderf F
-GLIBC_2.25 totalorderl F
-GLIBC_2.25 totalordermag F
-GLIBC_2.25 totalordermagf F
-GLIBC_2.25 totalordermagl F
-GLIBC_2.25 ufromfp F
-GLIBC_2.25 ufromfpf F
-GLIBC_2.25 ufromfpl F
-GLIBC_2.25 ufromfpx F
-GLIBC_2.25 ufromfpxf F
-GLIBC_2.25 ufromfpxl F
-GLIBC_2.27 acosf32 F
-GLIBC_2.27 acosf32x F
-GLIBC_2.27 acosf64 F
-GLIBC_2.27 acoshf32 F
-GLIBC_2.27 acoshf32x F
-GLIBC_2.27 acoshf64 F
-GLIBC_2.27 asinf32 F
-GLIBC_2.27 asinf32x F
-GLIBC_2.27 asinf64 F
-GLIBC_2.27 asinhf32 F
-GLIBC_2.27 asinhf32x F
-GLIBC_2.27 asinhf64 F
-GLIBC_2.27 atan2f32 F
-GLIBC_2.27 atan2f32x F
-GLIBC_2.27 atan2f64 F
-GLIBC_2.27 atanf32 F
-GLIBC_2.27 atanf32x F
-GLIBC_2.27 atanf64 F
-GLIBC_2.27 atanhf32 F
-GLIBC_2.27 atanhf32x F
-GLIBC_2.27 atanhf64 F
-GLIBC_2.27 cabsf32 F
-GLIBC_2.27 cabsf32x F
-GLIBC_2.27 cabsf64 F
-GLIBC_2.27 cacosf32 F
-GLIBC_2.27 cacosf32x F
-GLIBC_2.27 cacosf64 F
-GLIBC_2.27 cacoshf32 F
-GLIBC_2.27 cacoshf32x F
-GLIBC_2.27 cacoshf64 F
-GLIBC_2.27 canonicalizef32 F
-GLIBC_2.27 canonicalizef32x F
-GLIBC_2.27 canonicalizef64 F
-GLIBC_2.27 cargf32 F
-GLIBC_2.27 cargf32x F
-GLIBC_2.27 cargf64 F
-GLIBC_2.27 casinf32 F
-GLIBC_2.27 casinf32x F
-GLIBC_2.27 casinf64 F
-GLIBC_2.27 casinhf32 F
-GLIBC_2.27 casinhf32x F
-GLIBC_2.27 casinhf64 F
-GLIBC_2.27 catanf32 F
-GLIBC_2.27 catanf32x F
-GLIBC_2.27 catanf64 F
-GLIBC_2.27 catanhf32 F
-GLIBC_2.27 catanhf32x F
-GLIBC_2.27 catanhf64 F
-GLIBC_2.27 cbrtf32 F
-GLIBC_2.27 cbrtf32x F
-GLIBC_2.27 cbrtf64 F
-GLIBC_2.27 ccosf32 F
-GLIBC_2.27 ccosf32x F
-GLIBC_2.27 ccosf64 F
-GLIBC_2.27 ccoshf32 F
-GLIBC_2.27 ccoshf32x F
-GLIBC_2.27 ccoshf64 F
-GLIBC_2.27 ceilf32 F
-GLIBC_2.27 ceilf32x F
-GLIBC_2.27 ceilf64 F
-GLIBC_2.27 cexpf32 F
-GLIBC_2.27 cexpf32x F
-GLIBC_2.27 cexpf64 F
-GLIBC_2.27 cimagf32 F
-GLIBC_2.27 cimagf32x F
-GLIBC_2.27 cimagf64 F
-GLIBC_2.27 clog10f32 F
-GLIBC_2.27 clog10f32x F
-GLIBC_2.27 clog10f64 F
-GLIBC_2.27 clogf32 F
-GLIBC_2.27 clogf32x F
-GLIBC_2.27 clogf64 F
-GLIBC_2.27 conjf32 F
-GLIBC_2.27 conjf32x F
-GLIBC_2.27 conjf64 F
-GLIBC_2.27 copysignf32 F
-GLIBC_2.27 copysignf32x F
-GLIBC_2.27 copysignf64 F
-GLIBC_2.27 cosf32 F
-GLIBC_2.27 cosf32x F
-GLIBC_2.27 cosf64 F
-GLIBC_2.27 coshf32 F
-GLIBC_2.27 coshf32x F
-GLIBC_2.27 coshf64 F
-GLIBC_2.27 cpowf32 F
-GLIBC_2.27 cpowf32x F
-GLIBC_2.27 cpowf64 F
-GLIBC_2.27 cprojf32 F
-GLIBC_2.27 cprojf32x F
-GLIBC_2.27 cprojf64 F
-GLIBC_2.27 crealf32 F
-GLIBC_2.27 crealf32x F
-GLIBC_2.27 crealf64 F
-GLIBC_2.27 csinf32 F
-GLIBC_2.27 csinf32x F
-GLIBC_2.27 csinf64 F
-GLIBC_2.27 csinhf32 F
-GLIBC_2.27 csinhf32x F
-GLIBC_2.27 csinhf64 F
-GLIBC_2.27 csqrtf32 F
-GLIBC_2.27 csqrtf32x F
-GLIBC_2.27 csqrtf64 F
-GLIBC_2.27 ctanf32 F
-GLIBC_2.27 ctanf32x F
-GLIBC_2.27 ctanf64 F
-GLIBC_2.27 ctanhf32 F
-GLIBC_2.27 ctanhf32x F
-GLIBC_2.27 ctanhf64 F
-GLIBC_2.27 erfcf32 F
-GLIBC_2.27 erfcf32x F
-GLIBC_2.27 erfcf64 F
-GLIBC_2.27 erff32 F
-GLIBC_2.27 erff32x F
-GLIBC_2.27 erff64 F
-GLIBC_2.27 exp10f32 F
-GLIBC_2.27 exp10f32x F
-GLIBC_2.27 exp10f64 F
-GLIBC_2.27 exp2f F
-GLIBC_2.27 exp2f32 F
-GLIBC_2.27 exp2f32x F
-GLIBC_2.27 exp2f64 F
-GLIBC_2.27 expf F
-GLIBC_2.27 expf32 F
-GLIBC_2.27 expf32x F
-GLIBC_2.27 expf64 F
-GLIBC_2.27 expm1f32 F
-GLIBC_2.27 expm1f32x F
-GLIBC_2.27 expm1f64 F
-GLIBC_2.27 fabsf32 F
-GLIBC_2.27 fabsf32x F
-GLIBC_2.27 fabsf64 F
-GLIBC_2.27 fdimf32 F
-GLIBC_2.27 fdimf32x F
-GLIBC_2.27 fdimf64 F
-GLIBC_2.27 floorf32 F
-GLIBC_2.27 floorf32x F
-GLIBC_2.27 floorf64 F
-GLIBC_2.27 fmaf32 F
-GLIBC_2.27 fmaf32x F
-GLIBC_2.27 fmaf64 F
-GLIBC_2.27 fmaxf32 F
-GLIBC_2.27 fmaxf32x F
-GLIBC_2.27 fmaxf64 F
-GLIBC_2.27 fmaxmagf32 F
-GLIBC_2.27 fmaxmagf32x F
-GLIBC_2.27 fmaxmagf64 F
-GLIBC_2.27 fminf32 F
-GLIBC_2.27 fminf32x F
-GLIBC_2.27 fminf64 F
-GLIBC_2.27 fminmagf32 F
-GLIBC_2.27 fminmagf32x F
-GLIBC_2.27 fminmagf64 F
-GLIBC_2.27 fmodf32 F
-GLIBC_2.27 fmodf32x F
-GLIBC_2.27 fmodf64 F
-GLIBC_2.27 frexpf32 F
-GLIBC_2.27 frexpf32x F
-GLIBC_2.27 frexpf64 F
-GLIBC_2.27 fromfpf32 F
-GLIBC_2.27 fromfpf32x F
-GLIBC_2.27 fromfpf64 F
-GLIBC_2.27 fromfpxf32 F
-GLIBC_2.27 fromfpxf32x F
-GLIBC_2.27 fromfpxf64 F
-GLIBC_2.27 getpayloadf32 F
-GLIBC_2.27 getpayloadf32x F
-GLIBC_2.27 getpayloadf64 F
-GLIBC_2.27 hypotf32 F
-GLIBC_2.27 hypotf32x F
-GLIBC_2.27 hypotf64 F
-GLIBC_2.27 ilogbf32 F
-GLIBC_2.27 ilogbf32x F
-GLIBC_2.27 ilogbf64 F
-GLIBC_2.27 j0f32 F
-GLIBC_2.27 j0f32x F
-GLIBC_2.27 j0f64 F
-GLIBC_2.27 j1f32 F
-GLIBC_2.27 j1f32x F
-GLIBC_2.27 j1f64 F
-GLIBC_2.27 jnf32 F
-GLIBC_2.27 jnf32x F
-GLIBC_2.27 jnf64 F
-GLIBC_2.27 ldexpf32 F
-GLIBC_2.27 ldexpf32x F
-GLIBC_2.27 ldexpf64 F
-GLIBC_2.27 lgammaf32 F
-GLIBC_2.27 lgammaf32_r F
-GLIBC_2.27 lgammaf32x F
-GLIBC_2.27 lgammaf32x_r F
-GLIBC_2.27 lgammaf64 F
-GLIBC_2.27 lgammaf64_r F
-GLIBC_2.27 llogbf32 F
-GLIBC_2.27 llogbf32x F
-GLIBC_2.27 llogbf64 F
-GLIBC_2.27 llrintf32 F
-GLIBC_2.27 llrintf32x F
-GLIBC_2.27 llrintf64 F
-GLIBC_2.27 llroundf32 F
-GLIBC_2.27 llroundf32x F
-GLIBC_2.27 llroundf64 F
-GLIBC_2.27 log10f32 F
-GLIBC_2.27 log10f32x F
-GLIBC_2.27 log10f64 F
-GLIBC_2.27 log1pf32 F
-GLIBC_2.27 log1pf32x F
-GLIBC_2.27 log1pf64 F
-GLIBC_2.27 log2f F
-GLIBC_2.27 log2f32 F
-GLIBC_2.27 log2f32x F
-GLIBC_2.27 log2f64 F
-GLIBC_2.27 logbf32 F
-GLIBC_2.27 logbf32x F
-GLIBC_2.27 logbf64 F
-GLIBC_2.27 logf F
-GLIBC_2.27 logf32 F
-GLIBC_2.27 logf32x F
-GLIBC_2.27 logf64 F
-GLIBC_2.27 lrintf32 F
-GLIBC_2.27 lrintf32x F
-GLIBC_2.27 lrintf64 F
-GLIBC_2.27 lroundf32 F
-GLIBC_2.27 lroundf32x F
-GLIBC_2.27 lroundf64 F
-GLIBC_2.27 modff32 F
-GLIBC_2.27 modff32x F
-GLIBC_2.27 modff64 F
-GLIBC_2.27 nanf32 F
-GLIBC_2.27 nanf32x F
-GLIBC_2.27 nanf64 F
-GLIBC_2.27 nearbyintf32 F
-GLIBC_2.27 nearbyintf32x F
-GLIBC_2.27 nearbyintf64 F
-GLIBC_2.27 nextafterf32 F
-GLIBC_2.27 nextafterf32x F
-GLIBC_2.27 nextafterf64 F
-GLIBC_2.27 nextdownf32 F
-GLIBC_2.27 nextdownf32x F
-GLIBC_2.27 nextdownf64 F
-GLIBC_2.27 nextupf32 F
-GLIBC_2.27 nextupf32x F
-GLIBC_2.27 nextupf64 F
-GLIBC_2.27 powf F
-GLIBC_2.27 powf32 F
-GLIBC_2.27 powf32x F
-GLIBC_2.27 powf64 F
-GLIBC_2.27 remainderf32 F
-GLIBC_2.27 remainderf32x F
-GLIBC_2.27 remainderf64 F
-GLIBC_2.27 remquof32 F
-GLIBC_2.27 remquof32x F
-GLIBC_2.27 remquof64 F
-GLIBC_2.27 rintf32 F
-GLIBC_2.27 rintf32x F
-GLIBC_2.27 rintf64 F
-GLIBC_2.27 roundevenf32 F
-GLIBC_2.27 roundevenf32x F
-GLIBC_2.27 roundevenf64 F
-GLIBC_2.27 roundf32 F
-GLIBC_2.27 roundf32x F
-GLIBC_2.27 roundf64 F
-GLIBC_2.27 scalblnf32 F
-GLIBC_2.27 scalblnf32x F
-GLIBC_2.27 scalblnf64 F
-GLIBC_2.27 scalbnf32 F
-GLIBC_2.27 scalbnf32x F
-GLIBC_2.27 scalbnf64 F
-GLIBC_2.27 setpayloadf32 F
-GLIBC_2.27 setpayloadf32x F
-GLIBC_2.27 setpayloadf64 F
-GLIBC_2.27 setpayloadsigf32 F
-GLIBC_2.27 setpayloadsigf32x F
-GLIBC_2.27 setpayloadsigf64 F
-GLIBC_2.27 sincosf32 F
-GLIBC_2.27 sincosf32x F
-GLIBC_2.27 sincosf64 F
-GLIBC_2.27 sinf32 F
-GLIBC_2.27 sinf32x F
-GLIBC_2.27 sinf64 F
-GLIBC_2.27 sinhf32 F
-GLIBC_2.27 sinhf32x F
-GLIBC_2.27 sinhf64 F
-GLIBC_2.27 sqrtf32 F
-GLIBC_2.27 sqrtf32x F
-GLIBC_2.27 sqrtf64 F
-GLIBC_2.27 tanf32 F
-GLIBC_2.27 tanf32x F
-GLIBC_2.27 tanf64 F
-GLIBC_2.27 tanhf32 F
-GLIBC_2.27 tanhf32x F
-GLIBC_2.27 tanhf64 F
-GLIBC_2.27 tgammaf32 F
-GLIBC_2.27 tgammaf32x F
-GLIBC_2.27 tgammaf64 F
-GLIBC_2.27 totalorderf32 F
-GLIBC_2.27 totalorderf32x F
-GLIBC_2.27 totalorderf64 F
-GLIBC_2.27 totalordermagf32 F
-GLIBC_2.27 totalordermagf32x F
-GLIBC_2.27 totalordermagf64 F
-GLIBC_2.27 truncf32 F
-GLIBC_2.27 truncf32x F
-GLIBC_2.27 truncf64 F
-GLIBC_2.27 ufromfpf32 F
-GLIBC_2.27 ufromfpf32x F
-GLIBC_2.27 ufromfpf64 F
-GLIBC_2.27 ufromfpxf32 F
-GLIBC_2.27 ufromfpxf32x F
-GLIBC_2.27 ufromfpxf64 F
-GLIBC_2.27 y0f32 F
-GLIBC_2.27 y0f32x F
-GLIBC_2.27 y0f64 F
-GLIBC_2.27 y1f32 F
-GLIBC_2.27 y1f32x F
-GLIBC_2.27 y1f64 F
-GLIBC_2.27 ynf32 F
-GLIBC_2.27 ynf32x F
-GLIBC_2.27 ynf64 F
-GLIBC_2.28 __nldbl_daddl F
-GLIBC_2.28 __nldbl_ddivl F
-GLIBC_2.28 __nldbl_dmull F
-GLIBC_2.28 __nldbl_dsubl F
-GLIBC_2.28 daddl F
-GLIBC_2.28 ddivl F
-GLIBC_2.28 dmull F
-GLIBC_2.28 dsubl F
-GLIBC_2.28 f32addf32x F
-GLIBC_2.28 f32addf64 F
-GLIBC_2.28 f32divf32x F
-GLIBC_2.28 f32divf64 F
-GLIBC_2.28 f32mulf32x F
-GLIBC_2.28 f32mulf64 F
-GLIBC_2.28 f32subf32x F
-GLIBC_2.28 f32subf64 F
-GLIBC_2.28 f32xaddf64 F
-GLIBC_2.28 f32xdivf64 F
-GLIBC_2.28 f32xmulf64 F
-GLIBC_2.28 f32xsubf64 F
-GLIBC_2.28 fadd F
-GLIBC_2.28 faddl F
-GLIBC_2.28 fdiv F
-GLIBC_2.28 fdivl F
-GLIBC_2.28 fmul F
-GLIBC_2.28 fmull F
-GLIBC_2.28 fsub F
-GLIBC_2.28 fsubl F
-GLIBC_2.3 _LIB_VERSION D 0x4
-GLIBC_2.3 __clog10 F
-GLIBC_2.3 __clog10f F
-GLIBC_2.3 __clog10l F
-GLIBC_2.3 __fe_dfl_env D 0x8
-GLIBC_2.3 __fe_enabled_env D 0x8
-GLIBC_2.3 __fe_nomask_env F
-GLIBC_2.3 __fe_nonieee_env D 0x8
-GLIBC_2.3 __finite F
-GLIBC_2.3 __finitef F
-GLIBC_2.3 __finitel F
-GLIBC_2.3 __fpclassify F
-GLIBC_2.3 __fpclassifyf F
-GLIBC_2.3 __signbit F
-GLIBC_2.3 __signbitf F
-GLIBC_2.3 acos F
-GLIBC_2.3 acosf F
-GLIBC_2.3 acosh F
-GLIBC_2.3 acoshf F
-GLIBC_2.3 acoshl F
-GLIBC_2.3 acosl F
-GLIBC_2.3 asin F
-GLIBC_2.3 asinf F
-GLIBC_2.3 asinh F
-GLIBC_2.3 asinhf F
-GLIBC_2.3 asinhl F
-GLIBC_2.3 asinl F
-GLIBC_2.3 atan F
-GLIBC_2.3 atan2 F
-GLIBC_2.3 atan2f F
-GLIBC_2.3 atan2l F
-GLIBC_2.3 atanf F
-GLIBC_2.3 atanh F
-GLIBC_2.3 atanhf F
-GLIBC_2.3 atanhl F
-GLIBC_2.3 atanl F
-GLIBC_2.3 cabs F
-GLIBC_2.3 cabsf F
-GLIBC_2.3 cabsl F
-GLIBC_2.3 cacos F
-GLIBC_2.3 cacosf F
-GLIBC_2.3 cacosh F
-GLIBC_2.3 cacoshf F
-GLIBC_2.3 cacoshl F
-GLIBC_2.3 cacosl F
-GLIBC_2.3 carg F
-GLIBC_2.3 cargf F
-GLIBC_2.3 cargl F
-GLIBC_2.3 casin F
-GLIBC_2.3 casinf F
-GLIBC_2.3 casinh F
-GLIBC_2.3 casinhf F
-GLIBC_2.3 casinhl F
-GLIBC_2.3 casinl F
-GLIBC_2.3 catan F
-GLIBC_2.3 catanf F
-GLIBC_2.3 catanh F
-GLIBC_2.3 catanhf F
-GLIBC_2.3 catanhl F
-GLIBC_2.3 catanl F
-GLIBC_2.3 cbrt F
-GLIBC_2.3 cbrtf F
-GLIBC_2.3 cbrtl F
-GLIBC_2.3 ccos F
-GLIBC_2.3 ccosf F
-GLIBC_2.3 ccosh F
-GLIBC_2.3 ccoshf F
-GLIBC_2.3 ccoshl F
-GLIBC_2.3 ccosl F
-GLIBC_2.3 ceil F
-GLIBC_2.3 ceilf F
-GLIBC_2.3 ceill F
-GLIBC_2.3 cexp F
-GLIBC_2.3 cexpf F
-GLIBC_2.3 cexpl F
-GLIBC_2.3 cimag F
-GLIBC_2.3 cimagf F
-GLIBC_2.3 cimagl F
-GLIBC_2.3 clog F
-GLIBC_2.3 clog10 F
-GLIBC_2.3 clog10f F
-GLIBC_2.3 clog10l F
-GLIBC_2.3 clogf F
-GLIBC_2.3 clogl F
-GLIBC_2.3 conj F
-GLIBC_2.3 conjf F
-GLIBC_2.3 conjl F
-GLIBC_2.3 copysign F
-GLIBC_2.3 copysignf F
-GLIBC_2.3 copysignl F
-GLIBC_2.3 cos F
-GLIBC_2.3 cosf F
-GLIBC_2.3 cosh F
-GLIBC_2.3 coshf F
-GLIBC_2.3 coshl F
-GLIBC_2.3 cosl F
-GLIBC_2.3 cpow F
-GLIBC_2.3 cpowf F
-GLIBC_2.3 cpowl F
-GLIBC_2.3 cproj F
-GLIBC_2.3 cprojf F
-GLIBC_2.3 cprojl F
-GLIBC_2.3 creal F
-GLIBC_2.3 crealf F
-GLIBC_2.3 creall F
-GLIBC_2.3 csin F
-GLIBC_2.3 csinf F
-GLIBC_2.3 csinh F
-GLIBC_2.3 csinhf F
-GLIBC_2.3 csinhl F
-GLIBC_2.3 csinl F
-GLIBC_2.3 csqrt F
-GLIBC_2.3 csqrtf F
-GLIBC_2.3 csqrtl F
-GLIBC_2.3 ctan F
-GLIBC_2.3 ctanf F
-GLIBC_2.3 ctanh F
-GLIBC_2.3 ctanhf F
-GLIBC_2.3 ctanhl F
-GLIBC_2.3 ctanl F
-GLIBC_2.3 drem F
-GLIBC_2.3 dremf F
-GLIBC_2.3 dreml F
-GLIBC_2.3 erf F
-GLIBC_2.3 erfc F
-GLIBC_2.3 erfcf F
-GLIBC_2.3 erfcl F
-GLIBC_2.3 erff F
-GLIBC_2.3 erfl F
-GLIBC_2.3 exp F
-GLIBC_2.3 exp10 F
-GLIBC_2.3 exp10f F
-GLIBC_2.3 exp10l F
-GLIBC_2.3 exp2 F
-GLIBC_2.3 exp2f F
-GLIBC_2.3 expf F
-GLIBC_2.3 expl F
-GLIBC_2.3 expm1 F
-GLIBC_2.3 expm1f F
-GLIBC_2.3 expm1l F
-GLIBC_2.3 fabs F
-GLIBC_2.3 fabsf F
-GLIBC_2.3 fabsl F
-GLIBC_2.3 fdim F
-GLIBC_2.3 fdimf F
-GLIBC_2.3 fdiml F
-GLIBC_2.3 feclearexcept F
-GLIBC_2.3 fedisableexcept F
-GLIBC_2.3 feenableexcept F
-GLIBC_2.3 fegetenv F
-GLIBC_2.3 fegetexcept F
-GLIBC_2.3 fegetexceptflag F
-GLIBC_2.3 fegetround F
-GLIBC_2.3 feholdexcept F
-GLIBC_2.3 feraiseexcept F
-GLIBC_2.3 fesetenv F
-GLIBC_2.3 fesetexceptflag F
-GLIBC_2.3 fesetround F
-GLIBC_2.3 fetestexcept F
-GLIBC_2.3 feupdateenv F
-GLIBC_2.3 finite F
-GLIBC_2.3 finitef F
-GLIBC_2.3 finitel F
-GLIBC_2.3 floor F
-GLIBC_2.3 floorf F
-GLIBC_2.3 floorl F
-GLIBC_2.3 fma F
-GLIBC_2.3 fmaf F
-GLIBC_2.3 fmal F
-GLIBC_2.3 fmax F
-GLIBC_2.3 fmaxf F
-GLIBC_2.3 fmaxl F
-GLIBC_2.3 fmin F
-GLIBC_2.3 fminf F
-GLIBC_2.3 fminl F
-GLIBC_2.3 fmod F
-GLIBC_2.3 fmodf F
-GLIBC_2.3 fmodl F
-GLIBC_2.3 frexp F
-GLIBC_2.3 frexpf F
-GLIBC_2.3 frexpl F
-GLIBC_2.3 gamma F
-GLIBC_2.3 gammaf F
-GLIBC_2.3 gammal F
-GLIBC_2.3 hypot F
-GLIBC_2.3 hypotf F
-GLIBC_2.3 hypotl F
-GLIBC_2.3 ilogb F
-GLIBC_2.3 ilogbf F
-GLIBC_2.3 ilogbl F
-GLIBC_2.3 j0 F
-GLIBC_2.3 j0f F
-GLIBC_2.3 j0l F
-GLIBC_2.3 j1 F
-GLIBC_2.3 j1f F
-GLIBC_2.3 j1l F
-GLIBC_2.3 jn F
-GLIBC_2.3 jnf F
-GLIBC_2.3 jnl F
-GLIBC_2.3 ldexp F
-GLIBC_2.3 ldexpf F
-GLIBC_2.3 ldexpl F
-GLIBC_2.3 lgamma F
-GLIBC_2.3 lgamma_r F
-GLIBC_2.3 lgammaf F
-GLIBC_2.3 lgammaf_r F
-GLIBC_2.3 lgammal F
-GLIBC_2.3 lgammal_r F
-GLIBC_2.3 llrint F
-GLIBC_2.3 llrintf F
-GLIBC_2.3 llrintl F
-GLIBC_2.3 llround F
-GLIBC_2.3 llroundf F
-GLIBC_2.3 llroundl F
-GLIBC_2.3 log F
-GLIBC_2.3 log10 F
-GLIBC_2.3 log10f F
-GLIBC_2.3 log10l F
-GLIBC_2.3 log1p F
-GLIBC_2.3 log1pf F
-GLIBC_2.3 log1pl F
-GLIBC_2.3 log2 F
-GLIBC_2.3 log2f F
-GLIBC_2.3 log2l F
-GLIBC_2.3 logb F
-GLIBC_2.3 logbf F
-GLIBC_2.3 logbl F
-GLIBC_2.3 logf F
-GLIBC_2.3 logl F
-GLIBC_2.3 lrint F
-GLIBC_2.3 lrintf F
-GLIBC_2.3 lrintl F
-GLIBC_2.3 lround F
-GLIBC_2.3 lroundf F
-GLIBC_2.3 lroundl F
-GLIBC_2.3 matherr F
-GLIBC_2.3 modf F
-GLIBC_2.3 modff F
-GLIBC_2.3 modfl F
-GLIBC_2.3 nan F
-GLIBC_2.3 nanf F
-GLIBC_2.3 nanl F
-GLIBC_2.3 nearbyint F
-GLIBC_2.3 nearbyintf F
-GLIBC_2.3 nearbyintl F
-GLIBC_2.3 nextafter F
-GLIBC_2.3 nextafterf F
-GLIBC_2.3 nextafterl F
-GLIBC_2.3 nexttoward F
-GLIBC_2.3 nexttowardf F
-GLIBC_2.3 nexttowardl F
-GLIBC_2.3 pow F
-GLIBC_2.3 pow10 F
-GLIBC_2.3 pow10f F
-GLIBC_2.3 pow10l F
-GLIBC_2.3 powf F
-GLIBC_2.3 powl F
-GLIBC_2.3 remainder F
-GLIBC_2.3 remainderf F
-GLIBC_2.3 remainderl F
-GLIBC_2.3 remquo F
-GLIBC_2.3 remquof F
-GLIBC_2.3 remquol F
-GLIBC_2.3 rint F
-GLIBC_2.3 rintf F
-GLIBC_2.3 rintl F
-GLIBC_2.3 round F
-GLIBC_2.3 roundf F
-GLIBC_2.3 roundl F
-GLIBC_2.3 scalb F
-GLIBC_2.3 scalbf F
-GLIBC_2.3 scalbl F
-GLIBC_2.3 scalbln F
-GLIBC_2.3 scalblnf F
-GLIBC_2.3 scalblnl F
-GLIBC_2.3 scalbn F
-GLIBC_2.3 scalbnf F
-GLIBC_2.3 scalbnl F
-GLIBC_2.3 signgam D 0x4
-GLIBC_2.3 significand F
-GLIBC_2.3 significandf F
-GLIBC_2.3 significandl F
-GLIBC_2.3 sin F
-GLIBC_2.3 sincos F
-GLIBC_2.3 sincosf F
-GLIBC_2.3 sincosl F
-GLIBC_2.3 sinf F
-GLIBC_2.3 sinh F
-GLIBC_2.3 sinhf F
-GLIBC_2.3 sinhl F
-GLIBC_2.3 sinl F
-GLIBC_2.3 sqrt F
-GLIBC_2.3 sqrtf F
-GLIBC_2.3 sqrtl F
-GLIBC_2.3 tan F
-GLIBC_2.3 tanf F
-GLIBC_2.3 tanh F
-GLIBC_2.3 tanhf F
-GLIBC_2.3 tanhl F
-GLIBC_2.3 tanl F
-GLIBC_2.3 tgamma F
-GLIBC_2.3 tgammaf F
-GLIBC_2.3 tgammal F
-GLIBC_2.3 trunc F
-GLIBC_2.3 truncf F
-GLIBC_2.3 truncl F
-GLIBC_2.3 y0 F
-GLIBC_2.3 y0f F
-GLIBC_2.3 y0l F
-GLIBC_2.3 y1 F
-GLIBC_2.3 y1f F
-GLIBC_2.3 y1l F
-GLIBC_2.3 yn F
-GLIBC_2.3 ynf F
-GLIBC_2.3 ynl F
-GLIBC_2.4 __clog10l F
-GLIBC_2.4 __finitel F
-GLIBC_2.4 __fpclassifyl F
-GLIBC_2.4 __nldbl_nexttowardf F
-GLIBC_2.4 __signbitl F
-GLIBC_2.4 acoshl F
-GLIBC_2.4 acosl F
-GLIBC_2.4 asinhl F
-GLIBC_2.4 asinl F
-GLIBC_2.4 atan2l F
-GLIBC_2.4 atanhl F
-GLIBC_2.4 atanl F
-GLIBC_2.4 cabsl F
-GLIBC_2.4 cacoshl F
-GLIBC_2.4 cacosl F
-GLIBC_2.4 cargl F
-GLIBC_2.4 casinhl F
-GLIBC_2.4 casinl F
-GLIBC_2.4 catanhl F
-GLIBC_2.4 catanl F
-GLIBC_2.4 cbrtl F
-GLIBC_2.4 ccoshl F
-GLIBC_2.4 ccosl F
-GLIBC_2.4 ceill F
-GLIBC_2.4 cexpl F
-GLIBC_2.4 cimagl F
-GLIBC_2.4 clog10l F
-GLIBC_2.4 clogl F
-GLIBC_2.4 conjl F
-GLIBC_2.4 copysignl F
-GLIBC_2.4 coshl F
-GLIBC_2.4 cosl F
-GLIBC_2.4 cpowl F
-GLIBC_2.4 cprojl F
-GLIBC_2.4 creall F
-GLIBC_2.4 csinhl F
-GLIBC_2.4 csinl F
-GLIBC_2.4 csqrtl F
-GLIBC_2.4 ctanhl F
-GLIBC_2.4 ctanl F
-GLIBC_2.4 dreml F
-GLIBC_2.4 erfcl F
-GLIBC_2.4 erfl F
-GLIBC_2.4 exp10l F
-GLIBC_2.4 exp2l F
-GLIBC_2.4 expl F
-GLIBC_2.4 expm1l F
-GLIBC_2.4 fabsl F
-GLIBC_2.4 fdiml F
-GLIBC_2.4 finitel F
-GLIBC_2.4 floorl F
-GLIBC_2.4 fmal F
-GLIBC_2.4 fmaxl F
-GLIBC_2.4 fminl F
-GLIBC_2.4 fmodl F
-GLIBC_2.4 frexpl F
-GLIBC_2.4 gammal F
-GLIBC_2.4 hypotl F
-GLIBC_2.4 ilogbl F
-GLIBC_2.4 j0l F
-GLIBC_2.4 j1l F
-GLIBC_2.4 jnl F
-GLIBC_2.4 ldexpl F
-GLIBC_2.4 lgammal F
-GLIBC_2.4 lgammal_r F
-GLIBC_2.4 llrintl F
-GLIBC_2.4 llroundl F
-GLIBC_2.4 log10l F
-GLIBC_2.4 log1pl F
-GLIBC_2.4 log2l F
-GLIBC_2.4 logbl F
-GLIBC_2.4 logl F
-GLIBC_2.4 lrintl F
-GLIBC_2.4 lroundl F
-GLIBC_2.4 modfl F
-GLIBC_2.4 nanl F
-GLIBC_2.4 nearbyintl F
-GLIBC_2.4 nextafterl F
-GLIBC_2.4 nexttoward F
-GLIBC_2.4 nexttowardf F
-GLIBC_2.4 nexttowardl F
-GLIBC_2.4 pow10l F
-GLIBC_2.4 powl F
-GLIBC_2.4 remainderl F
-GLIBC_2.4 remquol F
-GLIBC_2.4 rintl F
-GLIBC_2.4 roundl F
-GLIBC_2.4 scalbl F
-GLIBC_2.4 scalblnl F
-GLIBC_2.4 scalbnl F
-GLIBC_2.4 significandl F
-GLIBC_2.4 sincosl F
-GLIBC_2.4 sinhl F
-GLIBC_2.4 sinl F
-GLIBC_2.4 sqrtl F
-GLIBC_2.4 tanhl F
-GLIBC_2.4 tanl F
-GLIBC_2.4 tgammal F
-GLIBC_2.4 truncl F
-GLIBC_2.4 y0l F
-GLIBC_2.4 y1l F
-GLIBC_2.4 ynl F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread-le.abilist
deleted file mode 100644
index 9a9e4cee85..0000000000
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread-le.abilist
+++ /dev/null
@@ -1,245 +0,0 @@
-GLIBC_2.17 _IO_flockfile F
-GLIBC_2.17 _IO_ftrylockfile F
-GLIBC_2.17 _IO_funlockfile F
-GLIBC_2.17 __close F
-GLIBC_2.17 __connect F
-GLIBC_2.17 __errno_location F
-GLIBC_2.17 __fcntl F
-GLIBC_2.17 __fork F
-GLIBC_2.17 __h_errno_location F
-GLIBC_2.17 __libc_allocate_rtsig F
-GLIBC_2.17 __libc_current_sigrtmax F
-GLIBC_2.17 __libc_current_sigrtmin F
-GLIBC_2.17 __lseek F
-GLIBC_2.17 __nanosleep F
-GLIBC_2.17 __open F
-GLIBC_2.17 __open64 F
-GLIBC_2.17 __pread64 F
-GLIBC_2.17 __pthread_cleanup_routine F
-GLIBC_2.17 __pthread_getspecific F
-GLIBC_2.17 __pthread_key_create F
-GLIBC_2.17 __pthread_mutex_destroy F
-GLIBC_2.17 __pthread_mutex_init F
-GLIBC_2.17 __pthread_mutex_lock F
-GLIBC_2.17 __pthread_mutex_trylock F
-GLIBC_2.17 __pthread_mutex_unlock F
-GLIBC_2.17 __pthread_mutexattr_destroy F
-GLIBC_2.17 __pthread_mutexattr_init F
-GLIBC_2.17 __pthread_mutexattr_settype F
-GLIBC_2.17 __pthread_once F
-GLIBC_2.17 __pthread_register_cancel F
-GLIBC_2.17 __pthread_register_cancel_defer F
-GLIBC_2.17 __pthread_rwlock_destroy F
-GLIBC_2.17 __pthread_rwlock_init F
-GLIBC_2.17 __pthread_rwlock_rdlock F
-GLIBC_2.17 __pthread_rwlock_tryrdlock F
-GLIBC_2.17 __pthread_rwlock_trywrlock F
-GLIBC_2.17 __pthread_rwlock_unlock F
-GLIBC_2.17 __pthread_rwlock_wrlock F
-GLIBC_2.17 __pthread_setspecific F
-GLIBC_2.17 __pthread_unregister_cancel F
-GLIBC_2.17 __pthread_unregister_cancel_restore F
-GLIBC_2.17 __pthread_unwind_next F
-GLIBC_2.17 __pwrite64 F
-GLIBC_2.17 __read F
-GLIBC_2.17 __res_state F
-GLIBC_2.17 __send F
-GLIBC_2.17 __sigaction F
-GLIBC_2.17 __vfork F
-GLIBC_2.17 __wait F
-GLIBC_2.17 __write F
-GLIBC_2.17 _pthread_cleanup_pop F
-GLIBC_2.17 _pthread_cleanup_pop_restore F
-GLIBC_2.17 _pthread_cleanup_push F
-GLIBC_2.17 _pthread_cleanup_push_defer F
-GLIBC_2.17 accept F
-GLIBC_2.17 close F
-GLIBC_2.17 connect F
-GLIBC_2.17 fcntl F
-GLIBC_2.17 flockfile F
-GLIBC_2.17 fork F
-GLIBC_2.17 fsync F
-GLIBC_2.17 ftrylockfile F
-GLIBC_2.17 funlockfile F
-GLIBC_2.17 longjmp F
-GLIBC_2.17 lseek F
-GLIBC_2.17 lseek64 F
-GLIBC_2.17 msync F
-GLIBC_2.17 nanosleep F
-GLIBC_2.17 open F
-GLIBC_2.17 open64 F
-GLIBC_2.17 pause F
-GLIBC_2.17 pread F
-GLIBC_2.17 pread64 F
-GLIBC_2.17 pthread_attr_destroy F
-GLIBC_2.17 pthread_attr_getaffinity_np F
-GLIBC_2.17 pthread_attr_getdetachstate F
-GLIBC_2.17 pthread_attr_getguardsize F
-GLIBC_2.17 pthread_attr_getinheritsched F
-GLIBC_2.17 pthread_attr_getschedparam F
-GLIBC_2.17 pthread_attr_getschedpolicy F
-GLIBC_2.17 pthread_attr_getscope F
-GLIBC_2.17 pthread_attr_getstack F
-GLIBC_2.17 pthread_attr_getstackaddr F
-GLIBC_2.17 pthread_attr_getstacksize F
-GLIBC_2.17 pthread_attr_init F
-GLIBC_2.17 pthread_attr_setaffinity_np F
-GLIBC_2.17 pthread_attr_setdetachstate F
-GLIBC_2.17 pthread_attr_setguardsize F
-GLIBC_2.17 pthread_attr_setinheritsched F
-GLIBC_2.17 pthread_attr_setschedparam F
-GLIBC_2.17 pthread_attr_setschedpolicy F
-GLIBC_2.17 pthread_attr_setscope F
-GLIBC_2.17 pthread_attr_setstack F
-GLIBC_2.17 pthread_attr_setstackaddr F
-GLIBC_2.17 pthread_attr_setstacksize F
-GLIBC_2.17 pthread_barrier_destroy F
-GLIBC_2.17 pthread_barrier_init F
-GLIBC_2.17 pthread_barrier_wait F
-GLIBC_2.17 pthread_barrierattr_destroy F
-GLIBC_2.17 pthread_barrierattr_getpshared F
-GLIBC_2.17 pthread_barrierattr_init F
-GLIBC_2.17 pthread_barrierattr_setpshared F
-GLIBC_2.17 pthread_cancel F
-GLIBC_2.17 pthread_cond_broadcast F
-GLIBC_2.17 pthread_cond_destroy F
-GLIBC_2.17 pthread_cond_init F
-GLIBC_2.17 pthread_cond_signal F
-GLIBC_2.17 pthread_cond_timedwait F
-GLIBC_2.17 pthread_cond_wait F
-GLIBC_2.17 pthread_condattr_destroy F
-GLIBC_2.17 pthread_condattr_getclock F
-GLIBC_2.17 pthread_condattr_getpshared F
-GLIBC_2.17 pthread_condattr_init F
-GLIBC_2.17 pthread_condattr_setclock F
-GLIBC_2.17 pthread_condattr_setpshared F
-GLIBC_2.17 pthread_create F
-GLIBC_2.17 pthread_detach F
-GLIBC_2.17 pthread_equal F
-GLIBC_2.17 pthread_exit F
-GLIBC_2.17 pthread_getaffinity_np F
-GLIBC_2.17 pthread_getattr_np F
-GLIBC_2.17 pthread_getconcurrency F
-GLIBC_2.17 pthread_getcpuclockid F
-GLIBC_2.17 pthread_getname_np F
-GLIBC_2.17 pthread_getschedparam F
-GLIBC_2.17 pthread_getspecific F
-GLIBC_2.17 pthread_join F
-GLIBC_2.17 pthread_key_create F
-GLIBC_2.17 pthread_key_delete F
-GLIBC_2.17 pthread_kill F
-GLIBC_2.17 pthread_kill_other_threads_np F
-GLIBC_2.17 pthread_mutex_consistent F
-GLIBC_2.17 pthread_mutex_consistent_np F
-GLIBC_2.17 pthread_mutex_destroy F
-GLIBC_2.17 pthread_mutex_getprioceiling F
-GLIBC_2.17 pthread_mutex_init F
-GLIBC_2.17 pthread_mutex_lock F
-GLIBC_2.17 pthread_mutex_setprioceiling F
-GLIBC_2.17 pthread_mutex_timedlock F
-GLIBC_2.17 pthread_mutex_trylock F
-GLIBC_2.17 pthread_mutex_unlock F
-GLIBC_2.17 pthread_mutexattr_destroy F
-GLIBC_2.17 pthread_mutexattr_getkind_np F
-GLIBC_2.17 pthread_mutexattr_getprioceiling F
-GLIBC_2.17 pthread_mutexattr_getprotocol F
-GLIBC_2.17 pthread_mutexattr_getpshared F
-GLIBC_2.17 pthread_mutexattr_getrobust F
-GLIBC_2.17 pthread_mutexattr_getrobust_np F
-GLIBC_2.17 pthread_mutexattr_gettype F
-GLIBC_2.17 pthread_mutexattr_init F
-GLIBC_2.17 pthread_mutexattr_setkind_np F
-GLIBC_2.17 pthread_mutexattr_setprioceiling F
-GLIBC_2.17 pthread_mutexattr_setprotocol F
-GLIBC_2.17 pthread_mutexattr_setpshared F
-GLIBC_2.17 pthread_mutexattr_setrobust F
-GLIBC_2.17 pthread_mutexattr_setrobust_np F
-GLIBC_2.17 pthread_mutexattr_settype F
-GLIBC_2.17 pthread_once F
-GLIBC_2.17 pthread_rwlock_destroy F
-GLIBC_2.17 pthread_rwlock_init F
-GLIBC_2.17 pthread_rwlock_rdlock F
-GLIBC_2.17 pthread_rwlock_timedrdlock F
-GLIBC_2.17 pthread_rwlock_timedwrlock F
-GLIBC_2.17 pthread_rwlock_tryrdlock F
-GLIBC_2.17 pthread_rwlock_trywrlock F
-GLIBC_2.17 pthread_rwlock_unlock F
-GLIBC_2.17 pthread_rwlock_wrlock F
-GLIBC_2.17 pthread_rwlockattr_destroy F
-GLIBC_2.17 pthread_rwlockattr_getkind_np F
-GLIBC_2.17 pthread_rwlockattr_getpshared F
-GLIBC_2.17 pthread_rwlockattr_init F
-GLIBC_2.17 pthread_rwlockattr_setkind_np F
-GLIBC_2.17 pthread_rwlockattr_setpshared F
-GLIBC_2.17 pthread_self F
-GLIBC_2.17 pthread_setaffinity_np F
-GLIBC_2.17 pthread_setcancelstate F
-GLIBC_2.17 pthread_setcanceltype F
-GLIBC_2.17 pthread_setconcurrency F
-GLIBC_2.17 pthread_setname_np F
-GLIBC_2.17 pthread_setschedparam F
-GLIBC_2.17 pthread_setschedprio F
-GLIBC_2.17 pthread_setspecific F
-GLIBC_2.17 pthread_sigmask F
-GLIBC_2.17 pthread_sigqueue F
-GLIBC_2.17 pthread_spin_destroy F
-GLIBC_2.17 pthread_spin_init F
-GLIBC_2.17 pthread_spin_lock F
-GLIBC_2.17 pthread_spin_trylock F
-GLIBC_2.17 pthread_spin_unlock F
-GLIBC_2.17 pthread_testcancel F
-GLIBC_2.17 pthread_timedjoin_np F
-GLIBC_2.17 pthread_tryjoin_np F
-GLIBC_2.17 pthread_yield F
-GLIBC_2.17 pwrite F
-GLIBC_2.17 pwrite64 F
-GLIBC_2.17 raise F
-GLIBC_2.17 read F
-GLIBC_2.17 recv F
-GLIBC_2.17 recvfrom F
-GLIBC_2.17 recvmsg F
-GLIBC_2.17 sem_close F
-GLIBC_2.17 sem_destroy F
-GLIBC_2.17 sem_getvalue F
-GLIBC_2.17 sem_init F
-GLIBC_2.17 sem_open F
-GLIBC_2.17 sem_post F
-GLIBC_2.17 sem_timedwait F
-GLIBC_2.17 sem_trywait F
-GLIBC_2.17 sem_unlink F
-GLIBC_2.17 sem_wait F
-GLIBC_2.17 send F
-GLIBC_2.17 sendmsg F
-GLIBC_2.17 sendto F
-GLIBC_2.17 sigaction F
-GLIBC_2.17 siglongjmp F
-GLIBC_2.17 sigwait F
-GLIBC_2.17 system F
-GLIBC_2.17 tcdrain F
-GLIBC_2.17 vfork F
-GLIBC_2.17 wait F
-GLIBC_2.17 waitpid F
-GLIBC_2.17 write F
-GLIBC_2.18 pthread_getattr_default_np F
-GLIBC_2.18 pthread_setattr_default_np F
-GLIBC_2.28 call_once F
-GLIBC_2.28 cnd_broadcast F
-GLIBC_2.28 cnd_destroy F
-GLIBC_2.28 cnd_init F
-GLIBC_2.28 cnd_signal F
-GLIBC_2.28 cnd_timedwait F
-GLIBC_2.28 cnd_wait F
-GLIBC_2.28 mtx_destroy F
-GLIBC_2.28 mtx_init F
-GLIBC_2.28 mtx_lock F
-GLIBC_2.28 mtx_timedlock F
-GLIBC_2.28 mtx_trylock F
-GLIBC_2.28 mtx_unlock F
-GLIBC_2.28 thrd_create F
-GLIBC_2.28 thrd_detach F
-GLIBC_2.28 thrd_exit F
-GLIBC_2.28 thrd_join F
-GLIBC_2.28 tss_create F
-GLIBC_2.28 tss_delete F
-GLIBC_2.28 tss_get F
-GLIBC_2.28 tss_set F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread.abilist
deleted file mode 100644
index 8300958d47..0000000000
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread.abilist
+++ /dev/null
@@ -1,259 +0,0 @@
-GLIBC_2.11 pthread_sigqueue F
-GLIBC_2.12 pthread_getname_np F
-GLIBC_2.12 pthread_mutex_consistent F
-GLIBC_2.12 pthread_mutexattr_getrobust F
-GLIBC_2.12 pthread_mutexattr_setrobust F
-GLIBC_2.12 pthread_setname_np F
-GLIBC_2.18 pthread_getattr_default_np F
-GLIBC_2.18 pthread_setattr_default_np F
-GLIBC_2.28 call_once F
-GLIBC_2.28 cnd_broadcast F
-GLIBC_2.28 cnd_destroy F
-GLIBC_2.28 cnd_init F
-GLIBC_2.28 cnd_signal F
-GLIBC_2.28 cnd_timedwait F
-GLIBC_2.28 cnd_wait F
-GLIBC_2.28 mtx_destroy F
-GLIBC_2.28 mtx_init F
-GLIBC_2.28 mtx_lock F
-GLIBC_2.28 mtx_timedlock F
-GLIBC_2.28 mtx_trylock F
-GLIBC_2.28 mtx_unlock F
-GLIBC_2.28 thrd_create F
-GLIBC_2.28 thrd_detach F
-GLIBC_2.28 thrd_exit F
-GLIBC_2.28 thrd_join F
-GLIBC_2.28 tss_create F
-GLIBC_2.28 tss_delete F
-GLIBC_2.28 tss_get F
-GLIBC_2.28 tss_set F
-GLIBC_2.3 _IO_flockfile F
-GLIBC_2.3 _IO_ftrylockfile F
-GLIBC_2.3 _IO_funlockfile F
-GLIBC_2.3 __close F
-GLIBC_2.3 __connect F
-GLIBC_2.3 __errno_location F
-GLIBC_2.3 __fcntl F
-GLIBC_2.3 __fork F
-GLIBC_2.3 __h_errno_location F
-GLIBC_2.3 __libc_allocate_rtsig F
-GLIBC_2.3 __libc_current_sigrtmax F
-GLIBC_2.3 __libc_current_sigrtmin F
-GLIBC_2.3 __lseek F
-GLIBC_2.3 __nanosleep F
-GLIBC_2.3 __open F
-GLIBC_2.3 __open64 F
-GLIBC_2.3 __pread64 F
-GLIBC_2.3 __pthread_getspecific F
-GLIBC_2.3 __pthread_key_create F
-GLIBC_2.3 __pthread_mutex_destroy F
-GLIBC_2.3 __pthread_mutex_init F
-GLIBC_2.3 __pthread_mutex_lock F
-GLIBC_2.3 __pthread_mutex_trylock F
-GLIBC_2.3 __pthread_mutex_unlock F
-GLIBC_2.3 __pthread_mutexattr_destroy F
-GLIBC_2.3 __pthread_mutexattr_init F
-GLIBC_2.3 __pthread_mutexattr_settype F
-GLIBC_2.3 __pthread_once F
-GLIBC_2.3 __pthread_rwlock_destroy F
-GLIBC_2.3 __pthread_rwlock_init F
-GLIBC_2.3 __pthread_rwlock_rdlock F
-GLIBC_2.3 __pthread_rwlock_tryrdlock F
-GLIBC_2.3 __pthread_rwlock_trywrlock F
-GLIBC_2.3 __pthread_rwlock_unlock F
-GLIBC_2.3 __pthread_rwlock_wrlock F
-GLIBC_2.3 __pthread_setspecific F
-GLIBC_2.3 __pwrite64 F
-GLIBC_2.3 __read F
-GLIBC_2.3 __res_state F
-GLIBC_2.3 __send F
-GLIBC_2.3 __sigaction F
-GLIBC_2.3 __vfork F
-GLIBC_2.3 __wait F
-GLIBC_2.3 __write F
-GLIBC_2.3 _pthread_cleanup_pop F
-GLIBC_2.3 _pthread_cleanup_pop_restore F
-GLIBC_2.3 _pthread_cleanup_push F
-GLIBC_2.3 _pthread_cleanup_push_defer F
-GLIBC_2.3 accept F
-GLIBC_2.3 close F
-GLIBC_2.3 connect F
-GLIBC_2.3 fcntl F
-GLIBC_2.3 flockfile F
-GLIBC_2.3 fork F
-GLIBC_2.3 fsync F
-GLIBC_2.3 ftrylockfile F
-GLIBC_2.3 funlockfile F
-GLIBC_2.3 longjmp F
-GLIBC_2.3 lseek F
-GLIBC_2.3 lseek64 F
-GLIBC_2.3 msync F
-GLIBC_2.3 nanosleep F
-GLIBC_2.3 open F
-GLIBC_2.3 open64 F
-GLIBC_2.3 pause F
-GLIBC_2.3 pread F
-GLIBC_2.3 pread64 F
-GLIBC_2.3 pthread_attr_destroy F
-GLIBC_2.3 pthread_attr_getdetachstate F
-GLIBC_2.3 pthread_attr_getguardsize F
-GLIBC_2.3 pthread_attr_getinheritsched F
-GLIBC_2.3 pthread_attr_getschedparam F
-GLIBC_2.3 pthread_attr_getschedpolicy F
-GLIBC_2.3 pthread_attr_getscope F
-GLIBC_2.3 pthread_attr_getstack F
-GLIBC_2.3 pthread_attr_getstackaddr F
-GLIBC_2.3 pthread_attr_getstacksize F
-GLIBC_2.3 pthread_attr_init F
-GLIBC_2.3 pthread_attr_setdetachstate F
-GLIBC_2.3 pthread_attr_setguardsize F
-GLIBC_2.3 pthread_attr_setinheritsched F
-GLIBC_2.3 pthread_attr_setschedparam F
-GLIBC_2.3 pthread_attr_setschedpolicy F
-GLIBC_2.3 pthread_attr_setscope F
-GLIBC_2.3 pthread_attr_setstack F
-GLIBC_2.3 pthread_attr_setstackaddr F
-GLIBC_2.3 pthread_attr_setstacksize F
-GLIBC_2.3 pthread_barrier_destroy F
-GLIBC_2.3 pthread_barrier_init F
-GLIBC_2.3 pthread_barrier_wait F
-GLIBC_2.3 pthread_barrierattr_destroy F
-GLIBC_2.3 pthread_barrierattr_init F
-GLIBC_2.3 pthread_barrierattr_setpshared F
-GLIBC_2.3 pthread_cancel F
-GLIBC_2.3 pthread_cond_broadcast F
-GLIBC_2.3 pthread_cond_destroy F
-GLIBC_2.3 pthread_cond_init F
-GLIBC_2.3 pthread_cond_signal F
-GLIBC_2.3 pthread_cond_timedwait F
-GLIBC_2.3 pthread_cond_wait F
-GLIBC_2.3 pthread_condattr_destroy F
-GLIBC_2.3 pthread_condattr_getpshared F
-GLIBC_2.3 pthread_condattr_init F
-GLIBC_2.3 pthread_condattr_setpshared F
-GLIBC_2.3 pthread_create F
-GLIBC_2.3 pthread_detach F
-GLIBC_2.3 pthread_equal F
-GLIBC_2.3 pthread_exit F
-GLIBC_2.3 pthread_getattr_np F
-GLIBC_2.3 pthread_getconcurrency F
-GLIBC_2.3 pthread_getcpuclockid F
-GLIBC_2.3 pthread_getschedparam F
-GLIBC_2.3 pthread_getspecific F
-GLIBC_2.3 pthread_join F
-GLIBC_2.3 pthread_key_create F
-GLIBC_2.3 pthread_key_delete F
-GLIBC_2.3 pthread_kill F
-GLIBC_2.3 pthread_kill_other_threads_np F
-GLIBC_2.3 pthread_mutex_destroy F
-GLIBC_2.3 pthread_mutex_init F
-GLIBC_2.3 pthread_mutex_lock F
-GLIBC_2.3 pthread_mutex_timedlock F
-GLIBC_2.3 pthread_mutex_trylock F
-GLIBC_2.3 pthread_mutex_unlock F
-GLIBC_2.3 pthread_mutexattr_destroy F
-GLIBC_2.3 pthread_mutexattr_getkind_np F
-GLIBC_2.3 pthread_mutexattr_getpshared F
-GLIBC_2.3 pthread_mutexattr_gettype F
-GLIBC_2.3 pthread_mutexattr_init F
-GLIBC_2.3 pthread_mutexattr_setkind_np F
-GLIBC_2.3 pthread_mutexattr_setpshared F
-GLIBC_2.3 pthread_mutexattr_settype F
-GLIBC_2.3 pthread_once F
-GLIBC_2.3 pthread_rwlock_destroy F
-GLIBC_2.3 pthread_rwlock_init F
-GLIBC_2.3 pthread_rwlock_rdlock F
-GLIBC_2.3 pthread_rwlock_timedrdlock F
-GLIBC_2.3 pthread_rwlock_timedwrlock F
-GLIBC_2.3 pthread_rwlock_tryrdlock F
-GLIBC_2.3 pthread_rwlock_trywrlock F
-GLIBC_2.3 pthread_rwlock_unlock F
-GLIBC_2.3 pthread_rwlock_wrlock F
-GLIBC_2.3 pthread_rwlockattr_destroy F
-GLIBC_2.3 pthread_rwlockattr_getkind_np F
-GLIBC_2.3 pthread_rwlockattr_getpshared F
-GLIBC_2.3 pthread_rwlockattr_init F
-GLIBC_2.3 pthread_rwlockattr_setkind_np F
-GLIBC_2.3 pthread_rwlockattr_setpshared F
-GLIBC_2.3 pthread_self F
-GLIBC_2.3 pthread_setcancelstate F
-GLIBC_2.3 pthread_setcanceltype F
-GLIBC_2.3 pthread_setconcurrency F
-GLIBC_2.3 pthread_setschedparam F
-GLIBC_2.3 pthread_setspecific F
-GLIBC_2.3 pthread_sigmask F
-GLIBC_2.3 pthread_spin_destroy F
-GLIBC_2.3 pthread_spin_init F
-GLIBC_2.3 pthread_spin_lock F
-GLIBC_2.3 pthread_spin_trylock F
-GLIBC_2.3 pthread_spin_unlock F
-GLIBC_2.3 pthread_testcancel F
-GLIBC_2.3 pthread_yield F
-GLIBC_2.3 pwrite F
-GLIBC_2.3 pwrite64 F
-GLIBC_2.3 raise F
-GLIBC_2.3 read F
-GLIBC_2.3 recv F
-GLIBC_2.3 recvfrom F
-GLIBC_2.3 recvmsg F
-GLIBC_2.3 sem_close F
-GLIBC_2.3 sem_destroy F
-GLIBC_2.3 sem_getvalue F
-GLIBC_2.3 sem_init F
-GLIBC_2.3 sem_open F
-GLIBC_2.3 sem_post F
-GLIBC_2.3 sem_timedwait F
-GLIBC_2.3 sem_trywait F
-GLIBC_2.3 sem_unlink F
-GLIBC_2.3 sem_wait F
-GLIBC_2.3 send F
-GLIBC_2.3 sendmsg F
-GLIBC_2.3 sendto F
-GLIBC_2.3 sigaction F
-GLIBC_2.3 siglongjmp F
-GLIBC_2.3 sigwait F
-GLIBC_2.3 system F
-GLIBC_2.3 tcdrain F
-GLIBC_2.3 vfork F
-GLIBC_2.3 wait F
-GLIBC_2.3 waitpid F
-GLIBC_2.3 write F
-GLIBC_2.3.2 pthread_cond_broadcast F
-GLIBC_2.3.2 pthread_cond_destroy F
-GLIBC_2.3.2 pthread_cond_init F
-GLIBC_2.3.2 pthread_cond_signal F
-GLIBC_2.3.2 pthread_cond_timedwait F
-GLIBC_2.3.2 pthread_cond_wait F
-GLIBC_2.3.3 __pthread_cleanup_routine F
-GLIBC_2.3.3 __pthread_register_cancel F
-GLIBC_2.3.3 __pthread_register_cancel_defer F
-GLIBC_2.3.3 __pthread_unregister_cancel F
-GLIBC_2.3.3 __pthread_unregister_cancel_restore F
-GLIBC_2.3.3 __pthread_unwind_next F
-GLIBC_2.3.3 pthread_attr_getaffinity_np F
-GLIBC_2.3.3 pthread_attr_setaffinity_np F
-GLIBC_2.3.3 pthread_barrierattr_getpshared F
-GLIBC_2.3.3 pthread_condattr_getclock F
-GLIBC_2.3.3 pthread_condattr_setclock F
-GLIBC_2.3.3 pthread_getaffinity_np F
-GLIBC_2.3.3 pthread_setaffinity_np F
-GLIBC_2.3.3 pthread_timedjoin_np F
-GLIBC_2.3.3 pthread_tryjoin_np F
-GLIBC_2.3.4 longjmp F
-GLIBC_2.3.4 pthread_attr_getaffinity_np F
-GLIBC_2.3.4 pthread_attr_setaffinity_np F
-GLIBC_2.3.4 pthread_getaffinity_np F
-GLIBC_2.3.4 pthread_setaffinity_np F
-GLIBC_2.3.4 pthread_setschedprio F
-GLIBC_2.3.4 siglongjmp F
-GLIBC_2.4 pthread_mutex_consistent_np F
-GLIBC_2.4 pthread_mutex_getprioceiling F
-GLIBC_2.4 pthread_mutex_setprioceiling F
-GLIBC_2.4 pthread_mutexattr_getprioceiling F
-GLIBC_2.4 pthread_mutexattr_getprotocol F
-GLIBC_2.4 pthread_mutexattr_getrobust_np F
-GLIBC_2.4 pthread_mutexattr_setprioceiling F
-GLIBC_2.4 pthread_mutexattr_setprotocol F
-GLIBC_2.4 pthread_mutexattr_setrobust_np F
-GLIBC_2.6 pthread_attr_setstack F
-GLIBC_2.6 pthread_attr_setstacksize F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/librt.abilist
deleted file mode 100644
index e76b7eb495..0000000000
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/librt.abilist
+++ /dev/null
@@ -1,47 +0,0 @@
-GLIBC_2.3 aio_cancel F
-GLIBC_2.3 aio_cancel64 F
-GLIBC_2.3 aio_error F
-GLIBC_2.3 aio_error64 F
-GLIBC_2.3 aio_fsync F
-GLIBC_2.3 aio_fsync64 F
-GLIBC_2.3 aio_init F
-GLIBC_2.3 aio_read F
-GLIBC_2.3 aio_read64 F
-GLIBC_2.3 aio_return F
-GLIBC_2.3 aio_return64 F
-GLIBC_2.3 aio_suspend F
-GLIBC_2.3 aio_suspend64 F
-GLIBC_2.3 aio_write F
-GLIBC_2.3 aio_write64 F
-GLIBC_2.3 clock_getcpuclockid F
-GLIBC_2.3 clock_getres F
-GLIBC_2.3 clock_gettime F
-GLIBC_2.3 clock_nanosleep F
-GLIBC_2.3 clock_settime F
-GLIBC_2.3 lio_listio F
-GLIBC_2.3 lio_listio64 F
-GLIBC_2.3 shm_open F
-GLIBC_2.3 shm_unlink F
-GLIBC_2.3 timer_create F
-GLIBC_2.3 timer_delete F
-GLIBC_2.3 timer_getoverrun F
-GLIBC_2.3 timer_gettime F
-GLIBC_2.3 timer_settime F
-GLIBC_2.3.3 timer_create F
-GLIBC_2.3.3 timer_delete F
-GLIBC_2.3.3 timer_getoverrun F
-GLIBC_2.3.3 timer_gettime F
-GLIBC_2.3.3 timer_settime F
-GLIBC_2.3.4 mq_close F
-GLIBC_2.3.4 mq_getattr F
-GLIBC_2.3.4 mq_notify F
-GLIBC_2.3.4 mq_open F
-GLIBC_2.3.4 mq_receive F
-GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_setattr F
-GLIBC_2.3.4 mq_timedreceive F
-GLIBC_2.3.4 mq_timedsend F
-GLIBC_2.3.4 mq_unlink F
-GLIBC_2.4 lio_listio F
-GLIBC_2.4 lio_listio64 F
-GLIBC_2.7 __mq_open_2 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/makecontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/makecontext.S
index 4febd49646..8729778570 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/makecontext.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/makecontext.S
@@ -1,5 +1,5 @@
/* Create new context.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S
index c95e3a14db..a8dc3c6868 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S
@@ -1,5 +1,5 @@
/* Switch to context.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <rtld-global-offsets.h>
@@ -46,20 +46,6 @@ ENTRY(__novec_setcontext)
cfi_adjust_cfa_offset (128)
mr r31,r3
-/*
- * If this ucontext refers to the point where we were interrupted
- * by a signal, we have to use the rt_sigreturn system call to
- * return to the context so we get both LR and CTR restored.
- *
- * Otherwise, the context we are restoring is either just after
- * a procedure call (getcontext/swapcontext) or at the beginning
- * of a procedure call (makecontext), so we don't need to restore
- * msr and ctr. We don't restore r13 since it will be used as
- * the TLS pointer. */
- ld r0,(SIGCONTEXT_GP_REGS+(PT_MSR*8))(r31)
- cmpdi r0,0
- bne L(nv_do_sigret)
-
li r5,0
addi r4,r3,UCONTEXT_SIGMASK
li r3,SIG_SETMASK
@@ -200,22 +186,6 @@ L(nv_error_exit):
mtlr r0
ld r31,-8(r1)
blr
-
- /* At this point we assume that the ucontext was created by a
- rt_signal and we should use rt_sigreturn to restore the original
- state. As of the 2.4.21 kernel the ucontext is the first thing
- (offset 0) in the rt_signal frame and rt_sigreturn expects the
- ucontext address in R1. Normally the rt-signal trampoline handles
- this by popping dummy frame before the rt_signal syscall. In our
- case the stack may not be in its original (signal handler return with
- R1 pointing at the dummy frame) state. We do have the ucontext
- address in R3, so simply copy R3 to R1 before the syscall. */
-L(nv_do_sigret):
- mr r1,r3,
- li r0,SYS_ify(rt_sigreturn)
- sc
- /* No return. */
-
PSEUDO_END(__novec_setcontext)
compat_symbol (libc, __novec_setcontext, setcontext, GLIBC_2_3)
@@ -235,20 +205,6 @@ ENTRY(__setcontext)
cfi_adjust_cfa_offset (128)
mr r31,r3
-/*
- * If this ucontext refers to the point where we were interrupted
- * by a signal, we have to use the rt_sigreturn system call to
- * return to the context so we get both LR and CTR restored.
- *
- * Otherwise, the context we are restoring is either just after
- * a procedure call (getcontext/swapcontext) or at the beginning
- * of a procedure call (makecontext), so we don't need to restore
- * msr and ctr. We don't restore r13 since it will be used as
- * the TLS pointer. */
- ld r0,(SIGCONTEXT_GP_REGS+(PT_MSR*8))(r31)
- cmpdi r0,0
- bne L(do_sigret)
-
li r5,0
addi r4,r3,UCONTEXT_SIGMASK
li r3,SIG_SETMASK
@@ -493,21 +449,6 @@ L(error_exit):
ld r31,-8(r1)
blr
- /* At this point we assume that the ucontext was created by a
- rt_signal and we should use rt_sigreturn to restore the original
- state. As of the 2.4.21 kernel the ucontext is the first thing
- (offset 0) in the rt_signal frame and rt_sigreturn expects the
- ucontext address in R1. Normally the rt-signal trampoline handles
- this by popping dummy frame before the rt_signal syscall. In our
- case the stack may not be in its original (signal handler return with
- R1 pointing at the dummy frame) state. We do have the ucontext
- address in R3, so simply copy R3 to R1 before the syscall. */
-L(do_sigret):
- mr r1,r3,
- li r0,SYS_ify(rt_sigreturn)
- sc
- /* No return. */
-
PSEUDO_END(__setcontext)
versioned_symbol (libc, __setcontext, setcontext, GLIBC_2_3_4)
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S
index 50f7233080..fa6ffe9711 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S
@@ -1,5 +1,5 @@
/* Save current context and install the given one.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <rtld-global-offsets.h>
@@ -149,20 +149,6 @@ ENTRY(__novec_swapcontext)
cmpdi r3,0
bne L(nv_error_exit)
-/*
- * If this new ucontext refers to the point where we were interrupted
- * by a signal, we have to use the rt_sigreturn system call to
- * return to the context so we get both LR and CTR restored.
- *
- * Otherwise, the context we are restoring is either just after
- * a procedure call (getcontext/swapcontext) or at the beginning
- * of a procedure call (makecontext), so we don't need to restore
- * msr and ctr. We don't restore r13 since it will be used as
- * the TLS pointer. */
- ld r0,(SIGCONTEXT_GP_REGS+(PT_MSR*8))(r31)
- cmpdi r0,0
- bne L(nv_do_sigret)
-
ld r8,.LC__dl_hwcap@toc(r2)
# ifdef SHARED
/* Load _rtld-global._dl_hwcap. */
@@ -288,21 +274,6 @@ L(nv_error_exit):
ld r31,-8(r1)
blr
- /* At this point we assume that the ucontext was created by a
- rt_signal and we should use rt_sigreturn to restore the original
- state. As of the 2.4.21 kernel the ucontext is the first thing
- (offset 0) in the rt_signal frame and rt_sigreturn expects the
- ucontext address in R1. Normally the rt-signal trampoline handles
- this by popping dummy frame before the rt_signal syscall. In our
- case the stack may not be in its original (signal handler return with
- R1 pointing at the dummy frame) state. We do have the ucontext
- address in R3, so simply copy R3 to R1 before the syscall. */
-L(nv_do_sigret):
- mr r1,r3,
- li r0,SYS_ify(rt_sigreturn)
- sc
- /* No return. */
-
PSEUDO_END(__novec_swapcontext)
compat_symbol (libc, __novec_swapcontext, swapcontext, GLIBC_2_3)
@@ -535,20 +506,6 @@ L(has_no_vec):
cmpdi r3,0
bne L(error_exit)
-/*
- * If this new ucontext refers to the point where we were interrupted
- * by a signal, we have to use the rt_sigreturn system call to
- * return to the context so we get both LR and CTR restored.
- *
- * Otherwise, the context we are restoring is either just after
- * a procedure call (getcontext/swapcontext) or at the beginning
- * of a procedure call (makecontext), so we don't need to restore
- * msr and ctr. We don't restore r13 since it will be used as
- * the TLS pointer. */
- ld r0,(SIGCONTEXT_GP_REGS+(PT_MSR*8))(r31)
- cmpdi r0,0
- bne L(do_sigret)
-
ld r8,.LC__dl_hwcap@toc(r2)
ld r10,(SIGCONTEXT_V_REGS_PTR)(r31)
# ifdef SHARED
@@ -777,21 +734,6 @@ L(error_exit):
ld r31,-8(r1)
blr
- /* At this point we assume that the ucontext was created by a
- rt_signal and we should use rt_sigreturn to restore the original
- state. As of the 2.4.21 kernel the ucontext is the first thing
- (offset 0) in the rt_signal frame and rt_sigreturn expects the
- ucontext address in R1. Normally the rt-signal trampoline handles
- this by popping dummy frame before the rt_signal syscall. In our
- case the stack may not be in its original (signal handler return with
- R1 pointing at the dummy frame) state. We do have the ucontext
- address in R3, so simply copy R3 to R1 before the syscall. */
-L(do_sigret):
- mr r1,r3,
- li r0,SYS_ify(rt_sigreturn)
- sc
- /* No return. */
-
PSEUDO_END(__swapcontext)
versioned_symbol (libc, __swapcontext, swapcontext, GLIBC_2_3_4)
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h b/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h
index 0956cf04a7..207d9d5709 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -13,13 +13,14 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Alan Modra <amodra@bigpond.net.au> rewrote the INLINE_SYSCALL macro */
#ifndef _LINUX_POWERPC_SYSDEP_H
#define _LINUX_POWERPC_SYSDEP_H 1
+#include <sysdeps/unix/sysv/linux/powerpc/sysdep.h>
#include <sysdeps/unix/sysv/linux/sysdep.h>
#include <sysdeps/unix/powerpc/sysdep.h>
#include <tls.h>
@@ -44,27 +45,6 @@
#endif /* __ASSEMBLER__ */
-/* This version is for internal uses when there is no desire
- to set errno */
-#define INTERNAL_VSYSCALL_NO_SYSCALL_FALLBACK(name, err, type, nr, args...) \
- ({ \
- type sc_ret = ENOSYS; \
- \
- __typeof (__vdso_##name) vdsop = __vdso_##name; \
- PTR_DEMANGLE (vdsop); \
- if (vdsop != NULL) \
- sc_ret = \
- INTERNAL_VSYSCALL_CALL_TYPE (vdsop, err, type, nr, ##args); \
- else \
- err = 1 << 28; \
- sc_ret; \
- })
-
-/* List of system calls which are supported as vsyscalls. */
-#define HAVE_CLOCK_GETRES_VSYSCALL 1
-#define HAVE_CLOCK_GETTIME_VSYSCALL 1
-#define HAVE_GETCPU_VSYSCALL 1
-
/* Define a macro which expands inline into the wrapper code for a system
call. This use is for internal calls that do not need to handle errors
normally. It will never touch errno. This returns just what the kernel
@@ -98,10 +78,9 @@
#define INTERNAL_VSYSCALL_CALL(funcptr, err, nr, args...) \
INTERNAL_VSYSCALL_CALL_TYPE(funcptr, err, long int, nr, args)
-#undef INLINE_SYSCALL
-
/* This version is for kernels that implement system calls that
behave like function calls as far as register saving. */
+#undef INLINE_SYSCALL
#define INLINE_SYSCALL(name, nr, args...) \
({ \
INTERNAL_SYSCALL_DECL (sc_err); \
@@ -131,7 +110,6 @@
register long int r7 __asm__ ("r7"); \
register long int r8 __asm__ ("r8"); \
LOADARGS_##nr (name, ##args); \
- ABORT_TRANSACTION; \
__asm__ __volatile__ \
("sc\n\t" \
"mfcr %0\n\t" \
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S
index 5b8ace464e..df46c053bd 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#define _ERRNO_H 1
diff --git a/sysdeps/unix/sysv/linux/powerpc/profil-counter.h b/sysdeps/unix/sysv/linux/powerpc/profil-counter.h
deleted file mode 100644
index 8a6a0bcf3d..0000000000
--- a/sysdeps/unix/sysv/linux/powerpc/profil-counter.h
+++ /dev/null
@@ -1,2 +0,0 @@
-/* We can use the ix86 version. */
-#include <sysdeps/unix/sysv/linux/i386/profil-counter.h>
diff --git a/sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c b/sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c
index 5b3546143b..e636f7260d 100644
--- a/sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c
+++ b/sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <setjmp.h>
#include <stdlib.h>
diff --git a/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_cond_lock.c b/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_cond_lock.c
index fef27a0a07..379d862467 100644
--- a/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_cond_lock.c
+++ b/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_cond_lock.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2015-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* The cond lock is not actually elided yet, but we still need to handle
already elided locks. */
diff --git a/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_lock.c b/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_lock.c
index d2a6c58d47..b66f8153cd 100644
--- a/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_lock.c
+++ b/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_lock.c
@@ -1,5 +1,5 @@
/* Elided version of pthread_mutex_lock.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <elision-conf.h>
#include <force-elision.h>
diff --git a/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_timedlock.c b/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_timedlock.c
index 8cca3a27fa..1ef4478be6 100644
--- a/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_timedlock.c
+++ b/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_timedlock.c
@@ -1,5 +1,5 @@
/* Elided version of pthread_mutex_timedlock.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <elision-conf.h>
#include <force-elision.h>
diff --git a/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_trylock.c b/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_trylock.c
index 14520927a6..67a735c0f8 100644
--- a/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_trylock.c
+++ b/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_trylock.c
@@ -1,5 +1,5 @@
/* Elided version of pthread_mutex_trylock.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <elision-conf.h>
#include <force-elision.h>
diff --git a/sysdeps/unix/sysv/linux/powerpc/putmsg.c b/sysdeps/unix/sysv/linux/powerpc/putmsg.c
deleted file mode 100644
index ebc1680ca7..0000000000
--- a/sysdeps/unix/sysv/linux/powerpc/putmsg.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/putmsg.c>
diff --git a/sysdeps/unix/sysv/linux/powerpc/readelflib.c b/sysdeps/unix/sysv/linux/powerpc/readelflib.c
index 1463bfc81b..522d0aeebf 100644
--- a/sysdeps/unix/sysv/linux/powerpc/readelflib.c
+++ b/sysdeps/unix/sysv/linux/powerpc/readelflib.c
@@ -1,5 +1,5 @@
/* Special checks on libraries for ldconfig. Linux/PowerPC version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
int process_elf32_file (const char *file_name, const char *lib, int *flag,
diff --git a/sysdeps/unix/sysv/linux/powerpc/sigcontextinfo.h b/sysdeps/unix/sysv/linux/powerpc/sigcontextinfo.h
index 0b682c75ef..97a84726a1 100644
--- a/sysdeps/unix/sysv/linux/powerpc/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/powerpc/sigcontextinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -13,9 +13,21 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SIGCONTEXTINFO_H
+#define _SIGCONTEXTINFO_H
#include <signal.h>
-#define SIGCONTEXT struct sigcontext *
-#define GET_PC(ctx) ((void *)((ctx)->regs->nip))
+static inline uintptr_t
+sigcontext_get_pc (const ucontext_t *ctx)
+{
+#ifdef __powerpc64__
+ return ctx->uc_mcontext.gp_regs[PT_NIP];
+#else
+ return ctx->uc_mcontext.uc_regs->gregs[PT_NIP];
+#endif
+}
+
+#endif
diff --git a/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h b/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h
deleted file mode 100644
index d268c66ba3..0000000000
--- a/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h
+++ /dev/null
@@ -1,139 +0,0 @@
-/* Copyright (C) 1996-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_PROCFS_H
-#define _SYS_PROCFS_H 1
-
-/* This is somehow modelled after the file of the same name on SysVr4
- systems. It provides a definition of the core file format for ELF
- used on Linux. */
-
-#include <features.h>
-#include <signal.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#include <sys/ucontext.h>
-#include <sys/user.h>
-
-__BEGIN_DECLS
-
-/* These definitions are normally provided by ucontext.h via
- asm/sigcontext.h, asm/ptrace.h, and asm/elf.h. Otherwise we define
- them here. */
-#if !defined __PPC64_ELF_H && !defined _ASM_POWERPC_ELF_H
-#define ELF_NGREG 48 /* includes nip, msr, lr, etc. */
-#define ELF_NFPREG 33 /* includes fpscr */
-#if __WORDSIZE == 32
-# define ELF_NVRREG 33 /* includes vscr */
-#else
-# define ELF_NVRREG 34 /* includes vscr */
-#endif
-
-typedef unsigned long elf_greg_t;
-typedef elf_greg_t elf_gregset_t[ELF_NGREG];
-
-typedef double elf_fpreg_t;
-typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
-
-/* Altivec registers */
-typedef struct {
- unsigned int u[4];
-} __attribute__ ((__aligned__ (16))) elf_vrreg_t;
-typedef elf_vrreg_t elf_vrregset_t[ELF_NVRREG];
-#endif
-
-struct elf_siginfo
- {
- int si_signo; /* Signal number. */
- int si_code; /* Extra code. */
- int si_errno; /* Errno. */
- };
-
-
-/* Definitions to generate Intel SVR4-like core files. These mostly
- have the same names as the SVR4 types with "elf_" tacked on the
- front to prevent clashes with linux definitions, and the typedef
- forms have been avoided. This is mostly like the SVR4 structure,
- but more Linuxy, with things that Linux does not support and which
- gdb doesn't really use excluded. Fields present but not used are
- marked with "XXX". */
-struct elf_prstatus
- {
-#if 0
- long int pr_flags; /* XXX Process flags. */
- short int pr_why; /* XXX Reason for process halt. */
- short int pr_what; /* XXX More detailed reason. */
-#endif
- struct elf_siginfo pr_info; /* Info associated with signal. */
- short int pr_cursig; /* Current signal. */
- unsigned long int pr_sigpend; /* Set of pending signals. */
- unsigned long int pr_sighold; /* Set of held signals. */
-#if 0
- stack_t pr_altstack; /* Alternate stack info. */
- struct sigaction pr_action; /* Signal action for current sig. */
-#endif
- __pid_t pr_pid;
- __pid_t pr_ppid;
- __pid_t pr_pgrp;
- __pid_t pr_sid;
- struct timeval pr_utime; /* User time. */
- struct timeval pr_stime; /* System time. */
- struct timeval pr_cutime; /* Cumulative user time. */
- struct timeval pr_cstime; /* Cumulative system time. */
-#if 0
- long int pr_instr; /* Current instruction. */
-#endif
- elf_gregset_t pr_reg; /* GP registers. */
- int pr_fpvalid; /* True if math copro being used. */
- };
-
-
-#define ELF_PRARGSZ (80) /* Number of chars for args */
-
-struct elf_prpsinfo
- {
- char pr_state; /* Numeric process state. */
- char pr_sname; /* Char for pr_state. */
- char pr_zomb; /* Zombie. */
- char pr_nice; /* Nice val. */
- unsigned long int pr_flag; /* Flags. */
- __uid_t pr_uid;
- __gid_t pr_gid;
- __pid_t pr_pid, pr_ppid, pr_pgrp, pr_sid;
- /* Lots missing */
- char pr_fname[16]; /* Filename of executable. */
- char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
- };
-
-/* Addresses. */
-typedef void *psaddr_t;
-
-/* Register sets. Linux has different names. */
-typedef elf_gregset_t prgregset_t;
-typedef elf_fpregset_t prfpregset_t;
-
-/* We don't have any differences between processes and threads,
- therefore habe only ine PID type. */
-typedef __pid_t lwpid_t;
-
-
-typedef struct elf_prstatus prstatus_t;
-typedef struct elf_prpsinfo prpsinfo_t;
-
-__END_DECLS
-
-#endif /* sys/procfs.h */
diff --git a/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h b/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h
index 9fde99c748..d993f833d7 100644
--- a/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h
+++ b/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h
@@ -1,5 +1,5 @@
/* `ptrace' debugger support interface. Linux/PowerPC version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_PTRACE_H
#define _SYS_PTRACE_H 1
@@ -38,6 +38,7 @@ __BEGIN_DECLS
# undef PTRACE_GETREGSET
# undef PTRACE_GETSIGINFO
# undef PTRACE_GETSIGMASK
+# undef PTRACE_GET_SYSCALL_INFO
# undef PTRACE_GETVRREGS
# undef PTRACE_GETVSRREGS
# undef PTRACE_INTERRUPT
@@ -65,6 +66,10 @@ __BEGIN_DECLS
# undef PTRACE_SINGLEBLOCK
# undef PTRACE_SINGLESTEP
# undef PTRACE_SYSCALL
+# undef PTRACE_SYSCALL_INFO_NONE
+# undef PTRACE_SYSCALL_INFO_ENTRY
+# undef PTRACE_SYSCALL_INFO_EXIT
+# undef PTRACE_SYSCALL_INFO_SECCOMP
# undef PTRACE_TRACEME
#endif
@@ -241,8 +246,12 @@ enum __ptrace_request
#define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER
/* Get seccomp BPF filter metadata. */
- PTRACE_SECCOMP_GET_METADATA = 0x420d
+ PTRACE_SECCOMP_GET_METADATA = 0x420d,
#define PTRACE_SECCOMP_GET_METADATA PTRACE_SECCOMP_GET_METADATA
+
+ /* Get information about system call. */
+ PTRACE_GET_SYSCALL_INFO = 0x420e
+#define PTRACE_GET_SYSCALL_INFO PTRACE_GET_SYSCALL_INFO
};
diff --git a/sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h b/sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h
index 1bb6e4c8a6..1f04bd1c3e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_UCONTEXT_H
#define _SYS_UCONTEXT_H 1
@@ -75,12 +75,12 @@ typedef struct
* a sigcontext. For older kernel (without Altivec) the sigcontext matches
* the mcontext upto but not including the v_regs field. For kernels that
* don't set AT_HWCAP or return AT_HWCAP without PPC_FEATURE_HAS_ALTIVEC the
- * v_regs field may not exist and should not be referenced. The v_regd field
- * can be refernced safely only after verifying that PPC_FEATURE_HAS_ALTIVEC
+ * v_regs field may not exist and should not be referenced. The v_regs field
+ * can be referenced safely only after verifying that PPC_FEATURE_HAS_ALTIVEC
* is set in AT_HWCAP. */
/* Number of general registers. */
-# define __NGREG 48 /* includes r0-r31, nip, msr, lr, etc. */
+# define __NGREG 48 /* includes r0-r31, nip, msr, lr, etc. */
# define __NFPREG 33 /* includes fp0-fp31 &fpscr. */
# define __NVRREG 34 /* includes v0-v31, vscr, & vrsave in
split vectors */
@@ -98,8 +98,13 @@ typedef double fpregset_t[__NFPREG];
a whole quadword speedup save/restore. */
typedef struct _libc_vscr
{
+#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
unsigned int __pad[3];
unsigned int __ctx(vscr_word);
+#else
+ unsigned int __ctx(vscr_word);
+ unsigned int __pad[3];
+#endif
} vscr_t;
/* Container for Altivec/VMX registers and status.
@@ -131,7 +136,7 @@ typedef struct {
* either NULL (if this processor does not support the VMX feature) or the
* address of the first quadword within the allocated (vmx_reserve) area.
*
- * The pointer (v_regs) of vector type (elf_vrreg_t) is essentually
+ * The pointer (v_regs) of vector type (elf_vrreg_t) is essentially
* an array of 34 quadword entries. The entries with
* indexes 0-31 contain the corresponding vector registers. The entry with
* index 32 contains the vscr as the last word (offset 12) within the
@@ -183,7 +188,7 @@ typedef struct ucontext_t
} uc_mcontext;
sigset_t uc_sigmask;
/* last for extensibility */
- char __ctx(uc_reg_space)[sizeof(mcontext_t) + 12];
+ char __ctx(uc_reg_space)[sizeof (mcontext_t) + 12];
#else /* 64-bit */
sigset_t uc_sigmask;
mcontext_t uc_mcontext; /* last for extensibility */
diff --git a/sysdeps/unix/sysv/linux/powerpc/sys/user.h b/sysdeps/unix/sysv/linux/powerpc/sys/user.h
index a7bb39b9e5..321782c599 100644
--- a/sysdeps/unix/sysv/linux/powerpc/sys/user.h
+++ b/sysdeps/unix/sysv/linux/powerpc/sys/user.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_USER_H
diff --git a/sysdeps/unix/sysv/linux/powerpc/syscall.S b/sysdeps/unix/sysv/linux/powerpc/syscall.S
index 2da91721be..f3871669d8 100644
--- a/sysdeps/unix/sysv/linux/powerpc/syscall.S
+++ b/sysdeps/unix/sysv/linux/powerpc/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -13,12 +13,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
ENTRY (syscall)
- ABORT_TRANSACTION
mr r0,r3
mr r3,r4
mr r4,r5
diff --git a/sysdeps/unix/sysv/linux/powerpc/sysconf.c b/sysdeps/unix/sysv/linux/powerpc/sysconf.c
index 43f308be0e..f0df8bbb67 100644
--- a/sysdeps/unix/sysv/linux/powerpc/sysconf.c
+++ b/sysdeps/unix/sysv/linux/powerpc/sysconf.c
@@ -1,5 +1,5 @@
/* Get system-specific information at run-time. Linux/powerpc version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/unix/sysv/linux/powerpc/sysdep.c b/sysdeps/unix/sysv/linux/powerpc/sysdep.c
index 1eacc13185..c685e46a94 100644
--- a/sysdeps/unix/sysv/linux/powerpc/sysdep.c
+++ b/sysdeps/unix/sysv/linux/powerpc/sysdep.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <errno.h>
diff --git a/sysdeps/unix/sysv/linux/powerpc/sysdep.h b/sysdeps/unix/sysv/linux/powerpc/sysdep.h
new file mode 100644
index 0000000000..a29f286ad7
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/powerpc/sysdep.h
@@ -0,0 +1,35 @@
+/* Syscall definitions, Linux PowerPC generic version.
+ 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; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#define VDSO_NAME "LINUX_2.6.15"
+#define VDSO_HASH 123718565
+
+/* List of system calls which are supported as vsyscalls. */
+#define HAVE_CLOCK_GETRES_VSYSCALL "__kernel_clock_getres"
+#define HAVE_CLOCK_GETTIME_VSYSCALL "__kernel_clock_gettime"
+#define HAVE_GETCPU_VSYSCALL "__kernel_getcpu"
+#define HAVE_TIME_VSYSCALL "__kernel_time"
+#define HAVE_GETTIMEOFDAY_VSYSCALL "__kernel_gettimeofday"
+#define HAVE_GET_TBFREQ "__kernel_get_tbfreq"
+
+#if defined(__PPC64__) || defined(__powerpc64__)
+# define HAVE_SIGTRAMP_RT64 "__kernel_sigtramp_rt64"
+#else
+# define HAVE_SIGTRAMP_32 "__kernel_sigtramp32"
+# define HAVE_SIGTRAMP_RT32 "__kernel_sigtramp_rt32"
+#endif
diff --git a/sysdeps/unix/sysv/linux/powerpc/test-gettimebasefreq-static.c b/sysdeps/unix/sysv/linux/powerpc/test-gettimebasefreq-static.c
new file mode 100644
index 0000000000..6b937f5919
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/powerpc/test-gettimebasefreq-static.c
@@ -0,0 +1,19 @@
+/* Check __ppc_get_timebase_freq() for architecture changes
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include "test-gettimebasefreq.c"
diff --git a/sysdeps/unix/sysv/linux/powerpc/test-gettimebasefreq.c b/sysdeps/unix/sysv/linux/powerpc/test-gettimebasefreq.c
index b17b4c00e5..bd2314613f 100644
--- a/sysdeps/unix/sysv/linux/powerpc/test-gettimebasefreq.c
+++ b/sysdeps/unix/sysv/linux/powerpc/test-gettimebasefreq.c
@@ -1,5 +1,5 @@
/* Check __ppc_get_timebase_freq() for architecture changes
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Test if __ppc_get_timebase_freq() works and is different from zero. A read
failure might indicate a Linux Kernel change.
diff --git a/sysdeps/unix/sysv/linux/powerpc/test-powerpc-linux-sysconf.c b/sysdeps/unix/sysv/linux/powerpc/test-powerpc-linux-sysconf.c
index 6fa77037d2..8d8d039b93 100644
--- a/sysdeps/unix/sysv/linux/powerpc/test-powerpc-linux-sysconf.c
+++ b/sysdeps/unix/sysv/linux/powerpc/test-powerpc-linux-sysconf.c
@@ -1,5 +1,5 @@
/* Check use of sysconf() for cache geometries.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Test use of sysconf() to get cache sizes, cache set associativity
and cache line sizes. */
diff --git a/sysdeps/unix/sysv/linux/powerpc/time.c b/sysdeps/unix/sysv/linux/powerpc/time.c
index 8814bcc14f..80a4c73416 100644
--- a/sysdeps/unix/sysv/linux/powerpc/time.c
+++ b/sysdeps/unix/sysv/linux/powerpc/time.c
@@ -1,5 +1,5 @@
/* time system call for Linux/PowerPC.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,71 +14,39 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#ifdef SHARED
-# ifndef __powerpc64__
-# define time __redirect_time
-# else
-# define __redirect_time time
-# endif
-
-# include <time.h>
-# include <sysdep.h>
-# include <dl-vdso.h>
-# include <libc-vdso.h>
-# include <dl-machine.h>
+#include <time.h>
+#include <sysdep.h>
-# ifndef __powerpc64__
-# undef time
+#ifdef HAVE_TIME_VSYSCALL
+# define HAVE_VSYSCALL
+#endif
+#include <sysdep-vdso.h>
-time_t
-__time_vsyscall (time_t *t)
+static time_t
+time_vsyscall (time_t *t)
{
return INLINE_VSYSCALL (time, 1, t);
}
-/* __GI_time is defined as hidden and for ppc32 it enables the
- compiler make a local call (symbol@local) for internal GLIBC usage. It
- means the PLT won't be used and the ifunc resolver will be called directly.
- For ppc64 a call to a function in another translation unit might use a
- different toc pointer thus disallowing direct branchess and making internal
- ifuncs calls safe. */
-# undef libc_hidden_def
-# define libc_hidden_def(name) \
- __hidden_ver1 (__time_vsyscall, __GI_time, __time_vsyscall);
-
-# endif /* !__powerpc64__ */
-
-static time_t
-time_syscall (time_t *t)
-{
- struct timeval tv;
- time_t result;
-
- if (INLINE_VSYSCALL (gettimeofday, 2, &tv, NULL) < 0)
- result = (time_t) -1;
- else
- result = (time_t) tv.tv_sec;
-
- if (t != NULL)
- *t = result;
- return result;
-}
+#ifdef SHARED
+# include <dl-vdso.h>
+# include <libc-vdso.h>
-# define INIT_ARCH() \
- PREPARE_VERSION (linux2615, "LINUX_2.6.15", 123718565); \
- void *vdso_time = _dl_vdso_vsym ("__kernel_time", &linux2615);
+# define INIT_ARCH() \
+ void *vdso_time = get_vdso_symbol (HAVE_TIME_VSYSCALL);
/* If the vDSO is not available we fall back to the syscall. */
-libc_ifunc_hidden (__redirect_time, time,
- vdso_time
- ? VDSO_IFUNC_RET (vdso_time)
- : (void *) time_syscall);
-libc_hidden_def (time)
+libc_ifunc (time,
+ vdso_time
+ ? VDSO_IFUNC_RET (vdso_time)
+ : (void *) time_vsyscall);
#else
-
-#include <sysdeps/posix/time.c>
-
+time_t
+time (time_t *t)
+{
+ return time_vsyscall (t);
+}
#endif /* !SHARED */
diff --git a/sysdeps/unix/sysv/linux/ppoll.c b/sysdeps/unix/sysv/linux/ppoll.c
index de7d3d6ac9..beafeb3809 100644
--- a/sysdeps/unix/sysv/linux/ppoll.c
+++ b/sysdeps/unix/sysv/linux/ppoll.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2006.
@@ -14,28 +14,69 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
#include <time.h>
#include <sys/poll.h>
#include <sysdep-cancel.h>
+#include <kernel-features.h>
int
-ppoll (struct pollfd *fds, nfds_t nfds, const struct timespec *timeout,
- const sigset_t *sigmask)
+__ppoll64 (struct pollfd *fds, nfds_t nfds, const struct __timespec64 *timeout,
+ const sigset_t *sigmask)
{
/* The Linux kernel can in some situations update the timeout value.
We do not want that so use a local variable. */
- struct timespec tval;
+ struct __timespec64 tval;
if (timeout != NULL)
{
tval = *timeout;
timeout = &tval;
}
- return SYSCALL_CANCEL (ppoll, fds, nfds, timeout, sigmask, _NSIG / 8);
+#ifdef __ASSUME_TIME64_SYSCALLS
+# ifndef __NR_ppoll_time64
+# define __NR_ppoll_time64 __NR_ppoll
+# endif
+ return SYSCALL_CANCEL (ppoll_time64, fds, nfds, timeout, sigmask, _NSIG / 8);
+#else
+# ifdef __NR_ppoll_time64
+ int ret = SYSCALL_CANCEL (ppoll_time64, fds, nfds, timeout, sigmask,
+ _NSIG / 8);
+ if (ret >= 0 || errno != ENOSYS)
+ return ret;
+# endif
+ struct timespec ts32;
+ if (timeout)
+ {
+ if (! in_time_t_range (timeout->tv_sec))
+ {
+ __set_errno (EOVERFLOW);
+ return -1;
+ }
+
+ ts32 = valid_timespec64_to_timespec (*timeout);
+ }
+
+ return SYSCALL_CANCEL (ppoll, fds, nfds, timeout ? &ts32 : NULL, sigmask,
+ _NSIG / 8);
+#endif
+}
+
+#if __TIMESIZE != 64
+int
+__ppoll (struct pollfd *fds, nfds_t nfds, const struct timespec *timeout,
+ const sigset_t *sigmask)
+{
+ struct __timespec64 ts64;
+ if (timeout)
+ ts64 = valid_timespec_to_timespec64 (*timeout);
+
+ return __ppoll64 (fds, nfds, timeout ? &ts64 : NULL, sigmask);
}
+#endif
+strong_alias (__ppoll, ppoll)
libc_hidden_def (ppoll)
diff --git a/sysdeps/unix/sysv/linux/pread.c b/sysdeps/unix/sysv/linux/pread.c
index 5dc31097ca..d9faf3cee2 100644
--- a/sysdeps/unix/sysv/linux/pread.c
+++ b/sysdeps/unix/sysv/linux/pread.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <sysdep-cancel.h>
diff --git a/sysdeps/unix/sysv/linux/pread64.c b/sysdeps/unix/sysv/linux/pread64.c
index 6b52cff375..36410292ee 100644
--- a/sysdeps/unix/sysv/linux/pread64.c
+++ b/sysdeps/unix/sysv/linux/pread64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <sysdep-cancel.h>
diff --git a/sysdeps/unix/sysv/linux/pread64_nocancel.c b/sysdeps/unix/sysv/linux/pread64_nocancel.c
new file mode 100644
index 0000000000..dab61260e5
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/pread64_nocancel.c
@@ -0,0 +1,32 @@
+/* Linux pread64() syscall implementation -- non-cancellable.
+ 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; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <unistd.h>
+#include <sysdep-cancel.h>
+#include <not-cancel.h>
+
+#ifndef __NR_pread64
+# define __NR_pread64 __NR_pread
+#endif
+
+ssize_t
+__pread64_nocancel (int fd, void *buf, size_t count, off64_t offset)
+{
+ return INLINE_SYSCALL_CALL (pread64, fd, buf, count, SYSCALL_LL64_PRW (offset));
+}
+hidden_def (__pread64_nocancel)
diff --git a/sysdeps/unix/sysv/linux/preadv.c b/sysdeps/unix/sysv/linux/preadv.c
index ea5758429c..61007df357 100644
--- a/sysdeps/unix/sysv/linux/preadv.c
+++ b/sysdeps/unix/sysv/linux/preadv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/uio.h>
#include <sysdep-cancel.h>
diff --git a/sysdeps/unix/sysv/linux/preadv2.c b/sysdeps/unix/sysv/linux/preadv2.c
index c8bf0764ef..9e3205b8ef 100644
--- a/sysdeps/unix/sysv/linux/preadv2.c
+++ b/sysdeps/unix/sysv/linux/preadv2.c
@@ -1,5 +1,5 @@
/* Linux implementation of preadv2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/uio.h>
#include <sysdep-cancel.h>
@@ -32,7 +32,7 @@ preadv2 (int fd, const struct iovec *vector, int count, off_t offset,
# ifdef __NR_preadv2
ssize_t result = SYSCALL_CANCEL (preadv2, fd, vector, count,
LO_HI_LONG (offset), flags);
- if (result >= 0)
+ if (result >= 0 || errno != ENOSYS)
return result;
# endif
/* Trying to emulate the preadv2 syscall flags is troublesome:
diff --git a/sysdeps/unix/sysv/linux/preadv64.c b/sysdeps/unix/sysv/linux/preadv64.c
index 5f4fba55e7..4b0a66f583 100644
--- a/sysdeps/unix/sysv/linux/preadv64.c
+++ b/sysdeps/unix/sysv/linux/preadv64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2016-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2016-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/uio.h>
#include <sysdep-cancel.h>
diff --git a/sysdeps/unix/sysv/linux/preadv64v2.c b/sysdeps/unix/sysv/linux/preadv64v2.c
index d7400a0252..724f03d0ef 100644
--- a/sysdeps/unix/sysv/linux/preadv64v2.c
+++ b/sysdeps/unix/sysv/linux/preadv64v2.c
@@ -1,5 +1,5 @@
/* Linux implementation of preadv2 (LFS version).
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/uio.h>
#include <sysdep-cancel.h>
@@ -30,7 +30,7 @@ preadv64v2 (int fd, const struct iovec *vector, int count, off64_t offset,
#ifdef __NR_preadv64v2
ssize_t result = SYSCALL_CANCEL (preadv64v2, fd, vector, count,
LO_HI_LONG (offset), flags);
- if (result >= 0)
+ if (result >= 0 || errno != ENOSYS)
return result;
#endif
/* Trying to emulate the preadv2 syscall flags is troublesome:
diff --git a/sysdeps/unix/sysv/linux/prlimit.c b/sysdeps/unix/sysv/linux/prlimit.c
index 2fa0642c76..aa824a1d22 100644
--- a/sysdeps/unix/sysv/linux/prlimit.c
+++ b/sysdeps/unix/sysv/linux/prlimit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2010-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/resource.h>
diff --git a/sysdeps/unix/sysv/linux/prof-freq.c b/sysdeps/unix/sysv/linux/prof-freq.c
index 6e30d95b32..11c028186d 100644
--- a/sysdeps/unix/sysv/linux/prof-freq.c
+++ b/sysdeps/unix/sysv/linux/prof-freq.c
@@ -1,5 +1,5 @@
/* Determine realtime clock frequency.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/time.h>
#include <libc-internal.h>
diff --git a/sysdeps/unix/sysv/linux/profil-counter.h b/sysdeps/unix/sysv/linux/profil-counter.h
new file mode 100644
index 0000000000..c30643ef9d
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/profil-counter.h
@@ -0,0 +1,32 @@
+/* Low-level statistical profiling support function. Linux version.
+ Copyright (C) 2001-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <signal.h>
+#include <sigcontextinfo.h>
+
+/* sa_sigaction signature to use along SA_SIGINFO. */
+static void
+__profil_counter (int signo, siginfo_t *info, void *ctx)
+{
+ profil_count (sigcontext_get_pc (ctx));
+
+ /* This is a hack to prevent the compiler from implementing the
+ above function call as a sibcall. The sibcall would overwrite
+ the signal context. */
+ asm volatile ("");
+}
diff --git a/sysdeps/unix/sysv/linux/pselect.c b/sysdeps/unix/sysv/linux/pselect.c
index 2b052e7b00..7a3dc8c4ed 100644
--- a/sysdeps/unix/sysv/linux/pselect.c
+++ b/sysdeps/unix/sysv/linux/pselect.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2006.
@@ -14,25 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#include <errno.h>
-#include <signal.h>
-#include <time.h>
-#include <sys/poll.h>
-#include <kernel-features.h>
+#include <sys/select.h>
#include <sysdep-cancel.h>
-
-#ifdef __NR_pselect6
-# ifndef __ASSUME_PSELECT
-static int __generic_pselect (int nfds, fd_set *readfds, fd_set *writefds,
- fd_set *exceptfds,
- const struct timespec *timeout,
- const sigset_t *sigmask);
-# endif
-
-
int
__pselect (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
const struct timespec *timeout, const sigset_t *sigmask)
@@ -59,31 +45,9 @@ __pselect (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
data.ss = (__syscall_ulong_t) (uintptr_t) sigmask;
data.ss_len = _NSIG / 8;
- int result;
-
-#ifndef CALL_PSELECT6
-# define CALL_PSELECT6(nfds, readfds, writefds, exceptfds, timeout, data) \
- SYSCALL_CANCEL (pselect6, nfds, readfds, writefds, exceptfds, timeout, data)
-#endif
-
- result = CALL_PSELECT6 (nfds, readfds, writefds, exceptfds, timeout,
- &data);
-
-# ifndef __ASSUME_PSELECT
- if (result == -1 && errno == ENOSYS)
- result = __generic_pselect (nfds, readfds, writefds, exceptfds, timeout,
- sigmask);
-# endif
-
- return result;
+ return SYSCALL_CANCEL (pselect6, nfds, readfds, writefds, exceptfds,
+ timeout, &data);
}
+#ifndef __pselect
weak_alias (__pselect, pselect)
-
-# ifndef __ASSUME_PSELECT
-# define __pselect static __generic_pselect
-# endif
-#endif
-
-#ifndef __ASSUME_PSELECT
-# include <misc/pselect.c>
#endif
diff --git a/sysdeps/unix/sysv/linux/pt-raise.c b/sysdeps/unix/sysv/linux/pt-raise.c
index b5513d4537..4ee80e9a6e 100644
--- a/sysdeps/unix/sysv/linux/pt-raise.c
+++ b/sysdeps/unix/sysv/linux/pt-raise.c
@@ -1,5 +1,5 @@
/* ISO C raise function for libpthread.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
@@ -15,6 +15,6 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/unix/sysv/linux/raise.c>
diff --git a/sysdeps/unix/sysv/linux/pthread-pids.h b/sysdeps/unix/sysv/linux/pthread-pids.h
index dcdac6e27b..6f71e676ba 100644
--- a/sysdeps/unix/sysv/linux/pthread-pids.h
+++ b/sysdeps/unix/sysv/linux/pthread-pids.h
@@ -1,5 +1,5 @@
/* Initialize pid and tid fields of struct pthread. Linux version.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthreadP.h>
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/pthread_getaffinity.c b/sysdeps/unix/sysv/linux/pthread_getaffinity.c
index ab89b98790..6eb4264feb 100644
--- a/sysdeps/unix/sysv/linux/pthread_getaffinity.c
+++ b/sysdeps/unix/sysv/linux/pthread_getaffinity.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <limits.h>
diff --git a/sysdeps/unix/sysv/linux/pthread_getcpuclockid.c b/sysdeps/unix/sysv/linux/pthread_getcpuclockid.c
index f56a7c5c29..a7d7d37e76 100644
--- a/sysdeps/unix/sysv/linux/pthread_getcpuclockid.c
+++ b/sysdeps/unix/sysv/linux/pthread_getcpuclockid.c
@@ -1,5 +1,5 @@
/* pthread_getcpuclockid -- Get POSIX clockid_t for a pthread_t. Linux version
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthreadP.h>
diff --git a/sysdeps/unix/sysv/linux/pthread_getname.c b/sysdeps/unix/sysv/linux/pthread_getname.c
index 726218b4df..a38d601203 100644
--- a/sysdeps/unix/sysv/linux/pthread_getname.c
+++ b/sysdeps/unix/sysv/linux/pthread_getname.c
@@ -1,5 +1,5 @@
/* pthread_getname_np -- Get thread name. Linux version
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-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
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/sysdeps/unix/sysv/linux/pthread_kill.c b/sysdeps/unix/sysv/linux/pthread_kill.c
index 3a6171b815..71305b90c6 100644
--- a/sysdeps/unix/sysv/linux/pthread_kill.c
+++ b/sysdeps/unix/sysv/linux/pthread_kill.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/sysdeps/unix/sysv/linux/pthread_setaffinity.c b/sysdeps/unix/sysv/linux/pthread_setaffinity.c
index faaa67d65e..5ed52b560b 100644
--- a/sysdeps/unix/sysv/linux/pthread_setaffinity.c
+++ b/sysdeps/unix/sysv/linux/pthread_setaffinity.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthreadP.h>
diff --git a/sysdeps/unix/sysv/linux/pthread_setname.c b/sysdeps/unix/sysv/linux/pthread_setname.c
index 91b5273480..bc7c9185ae 100644
--- a/sysdeps/unix/sysv/linux/pthread_setname.c
+++ b/sysdeps/unix/sysv/linux/pthread_setname.c
@@ -1,5 +1,5 @@
/* pthread_setname_np -- Set thread name. Linux version
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-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
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/sysdeps/unix/sysv/linux/pthread_sigmask.c b/sysdeps/unix/sysv/linux/pthread_sigmask.c
deleted file mode 100644
index 2eaf751def..0000000000
--- a/sysdeps/unix/sysv/linux/pthread_sigmask.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <signal.h>
-#include <pthreadP.h>
-#include <sysdep.h>
-
-
-int
-pthread_sigmask (int how, const sigset_t *newmask, sigset_t *oldmask)
-{
- sigset_t local_newmask;
-
- /* The only thing we have to make sure here is that SIGCANCEL and
- SIGSETXID is not blocked. */
- if (newmask != NULL
- && (__builtin_expect (__sigismember (newmask, SIGCANCEL), 0)
- || __builtin_expect (__sigismember (newmask, SIGSETXID), 0)))
- {
- local_newmask = *newmask;
- __sigdelset (&local_newmask, SIGCANCEL);
- __sigdelset (&local_newmask, SIGSETXID);
- newmask = &local_newmask;
- }
-
-#ifdef INTERNAL_SYSCALL
- /* We know that realtime signals are available if NPTL is used. */
- INTERNAL_SYSCALL_DECL (err);
- int result = INTERNAL_SYSCALL (rt_sigprocmask, err, 4, how, newmask,
- oldmask, _NSIG / 8);
-
- return (INTERNAL_SYSCALL_ERROR_P (result, err)
- ? INTERNAL_SYSCALL_ERRNO (result, err)
- : 0);
-#else
- return sigprocmask (how, newmask, oldmask) == -1 ? errno : 0;
-#endif
-}
diff --git a/sysdeps/unix/sysv/linux/pthread_sigqueue.c b/sysdeps/unix/sysv/linux/pthread_sigqueue.c
index d8061efdba..62a7a24531 100644
--- a/sysdeps/unix/sysv/linux/pthread_sigqueue.c
+++ b/sysdeps/unix/sysv/linux/pthread_sigqueue.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/sysdeps/unix/sysv/linux/ptrace.c b/sysdeps/unix/sysv/linux/ptrace.c
index e1f210be4c..2bf0f63738 100644
--- a/sysdeps/unix/sysv/linux/ptrace.c
+++ b/sysdeps/unix/sysv/linux/ptrace.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/types.h>
diff --git a/sysdeps/unix/sysv/linux/ptsname.c b/sysdeps/unix/sysv/linux/ptsname.c
index a4c233680f..d973dc3250 100644
--- a/sysdeps/unix/sysv/linux/ptsname.c
+++ b/sysdeps/unix/sysv/linux/ptsname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Zack Weinberg <zack@rabi.phys.columbia.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <paths.h>
diff --git a/sysdeps/unix/sysv/linux/pwrite.c b/sysdeps/unix/sysv/linux/pwrite.c
index ba7af38cd8..ddfbdef9c1 100644
--- a/sysdeps/unix/sysv/linux/pwrite.c
+++ b/sysdeps/unix/sysv/linux/pwrite.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <sysdep-cancel.h>
diff --git a/sysdeps/unix/sysv/linux/pwrite64.c b/sysdeps/unix/sysv/linux/pwrite64.c
index d038647b83..db8661c054 100644
--- a/sysdeps/unix/sysv/linux/pwrite64.c
+++ b/sysdeps/unix/sysv/linux/pwrite64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <sysdep-cancel.h>
diff --git a/sysdeps/unix/sysv/linux/pwritev.c b/sysdeps/unix/sysv/linux/pwritev.c
index 034c3d71c1..ed25289984 100644
--- a/sysdeps/unix/sysv/linux/pwritev.c
+++ b/sysdeps/unix/sysv/linux/pwritev.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/uio.h>
#include <sysdep-cancel.h>
diff --git a/sysdeps/unix/sysv/linux/pwritev2.c b/sysdeps/unix/sysv/linux/pwritev2.c
index 29c2264c8f..a415b2fa89 100644
--- a/sysdeps/unix/sysv/linux/pwritev2.c
+++ b/sysdeps/unix/sysv/linux/pwritev2.c
@@ -1,5 +1,5 @@
/* Linux implementation of pwritev2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/uio.h>
#include <sysdep-cancel.h>
@@ -28,7 +28,7 @@ pwritev2 (int fd, const struct iovec *vector, int count, off_t offset,
# ifdef __NR_pwritev2
ssize_t result = SYSCALL_CANCEL (pwritev2, fd, vector, count,
LO_HI_LONG (offset), flags);
- if (result >= 0)
+ if (result >= 0 || errno != ENOSYS)
return result;
# endif
/* Trying to emulate the pwritev2 syscall flags is troublesome:
diff --git a/sysdeps/unix/sysv/linux/pwritev64.c b/sysdeps/unix/sysv/linux/pwritev64.c
index 2152ec163b..ec9987fefc 100644
--- a/sysdeps/unix/sysv/linux/pwritev64.c
+++ b/sysdeps/unix/sysv/linux/pwritev64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2016-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2016-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/uio.h>
#include <sysdep-cancel.h>
diff --git a/sysdeps/unix/sysv/linux/pwritev64v2.c b/sysdeps/unix/sysv/linux/pwritev64v2.c
index 42da321149..5683220466 100644
--- a/sysdeps/unix/sysv/linux/pwritev64v2.c
+++ b/sysdeps/unix/sysv/linux/pwritev64v2.c
@@ -1,5 +1,5 @@
/* Linux implementation of pwritev2 (LFS version).
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/uio.h>
#include <sysdep-cancel.h>
@@ -30,7 +30,7 @@ pwritev64v2 (int fd, const struct iovec *vector, int count, off64_t offset,
#ifdef __NR_pwritev64v2
ssize_t result = SYSCALL_CANCEL (pwritev64v2, fd, vector, count,
LO_HI_LONG (offset), flags);
- if (result >= 0)
+ if (result >= 0 || errno != ENOSYS)
return result;
#endif
/* Trying to emulate the pwritev2 syscall flags is troublesome:
diff --git a/sysdeps/unix/sysv/linux/raise.c b/sysdeps/unix/sysv/linux/raise.c
index b05eae202f..fa1374cbd3 100644
--- a/sysdeps/unix/sysv/linux/raise.c
+++ b/sysdeps/unix/sysv/linux/raise.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <signal.h>
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/read.c b/sysdeps/unix/sysv/linux/read.c
index 26d0bed404..147d45f242 100644
--- a/sysdeps/unix/sysv/linux/read.c
+++ b/sysdeps/unix/sysv/linux/read.c
@@ -1,5 +1,5 @@
/* Linux read syscall implementation.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <sysdep-cancel.h>
diff --git a/sysdeps/unix/sysv/linux/read_nocancel.c b/sysdeps/unix/sysv/linux/read_nocancel.c
index 24699e3e21..9d2a5eedb6 100644
--- a/sysdeps/unix/sysv/linux/read_nocancel.c
+++ b/sysdeps/unix/sysv/linux/read_nocancel.c
@@ -1,5 +1,5 @@
/* Linux read syscall implementation -- non-cancellable.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <sysdep-cancel.h>
diff --git a/sysdeps/unix/sysv/linux/readahead.c b/sysdeps/unix/sysv/linux/readahead.c
index f84d210f34..87dba60970 100644
--- a/sysdeps/unix/sysv/linux/readahead.c
+++ b/sysdeps/unix/sysv/linux/readahead.c
@@ -1,5 +1,5 @@
/* Provide kernel hint to read ahead.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fcntl.h>
#include <errno.h>
diff --git a/sysdeps/unix/sysv/linux/readdir.c b/sysdeps/unix/sysv/linux/readdir.c
index b99bc96aad..5f8f2e662b 100644
--- a/sysdeps/unix/sysv/linux/readdir.c
+++ b/sysdeps/unix/sysv/linux/readdir.c
@@ -1,5 +1,5 @@
/* Read a directory. Linux no-LFS version.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dirent.h>
diff --git a/sysdeps/unix/sysv/linux/readdir64.c b/sysdeps/unix/sysv/linux/readdir64.c
index 8f9308b651..937046751b 100644
--- a/sysdeps/unix/sysv/linux/readdir64.c
+++ b/sysdeps/unix/sysv/linux/readdir64.c
@@ -1,5 +1,5 @@
/* Read a directory. Linux LFS version.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* When _DIRENT_MATCHES_DIRENT64 is defined we can alias 'readdir64' to
'readdir'. However the function signatures are not equal due
diff --git a/sysdeps/unix/sysv/linux/readdir64_r.c b/sysdeps/unix/sysv/linux/readdir64_r.c
index ae3033ca06..19818ff4bf 100644
--- a/sysdeps/unix/sysv/linux/readdir64_r.c
+++ b/sysdeps/unix/sysv/linux/readdir64_r.c
@@ -1,5 +1,5 @@
/* Read a directory in reentrant mode. Linux LFS version.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* When _DIRENT_MATCHES_DIRENT64 is defined we can alias 'readdir64' to
'readdir'. However the function signatures are not equal due
diff --git a/sysdeps/unix/sysv/linux/readdir_r.c b/sysdeps/unix/sysv/linux/readdir_r.c
index 7ca9e8e290..c7b4cccb90 100644
--- a/sysdeps/unix/sysv/linux/readdir_r.c
+++ b/sysdeps/unix/sysv/linux/readdir_r.c
@@ -1,5 +1,5 @@
/* Read a directory in reentrant mode. Linux no-LFS version.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dirent.h>
diff --git a/sysdeps/unix/sysv/linux/readonly-area.c b/sysdeps/unix/sysv/linux/readonly-area.c
index 5546bf7e82..45a7fd7d1a 100644
--- a/sysdeps/unix/sysv/linux/readonly-area.c
+++ b/sysdeps/unix/sysv/linux/readonly-area.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdint.h>
diff --git a/sysdeps/unix/sysv/linux/readv.c b/sysdeps/unix/sysv/linux/readv.c
index d27f258e9d..c0bd1ed6d8 100644
--- a/sysdeps/unix/sysv/linux/readv.c
+++ b/sysdeps/unix/sysv/linux/readv.c
@@ -1,5 +1,5 @@
/* Linux implementation for readv syscall.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <sys/uio.h>
diff --git a/sysdeps/unix/sysv/linux/reboot.c b/sysdeps/unix/sysv/linux/reboot.c
index 050334ab52..bbcd7e4b83 100644
--- a/sysdeps/unix/sysv/linux/reboot.c
+++ b/sysdeps/unix/sysv/linux/reboot.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/reboot.h>
diff --git a/sysdeps/unix/sysv/linux/recv.c b/sysdeps/unix/sysv/linux/recv.c
index 42158060aa..5b28449299 100644
--- a/sysdeps/unix/sysv/linux/recv.c
+++ b/sysdeps/unix/sysv/linux/recv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2015-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/socket.h>
#include <sysdep-cancel.h>
diff --git a/sysdeps/unix/sysv/linux/recvfrom.c b/sysdeps/unix/sysv/linux/recvfrom.c
index dcc170ace3..59115ecea7 100644
--- a/sysdeps/unix/sysv/linux/recvfrom.c
+++ b/sysdeps/unix/sysv/linux/recvfrom.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2015-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/socket.h>
#include <sysdep-cancel.h>
diff --git a/sysdeps/unix/sysv/linux/recvmmsg.c b/sysdeps/unix/sysv/linux/recvmmsg.c
index 76d2c69fec..bcb5a97f06 100644
--- a/sysdeps/unix/sysv/linux/recvmmsg.c
+++ b/sysdeps/unix/sysv/linux/recvmmsg.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@redhat.com>, 2010.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/socket.h>
diff --git a/sysdeps/unix/sysv/linux/recvmsg.c b/sysdeps/unix/sysv/linux/recvmsg.c
index 7806127daf..f7ae2b9599 100644
--- a/sysdeps/unix/sysv/linux/recvmsg.c
+++ b/sysdeps/unix/sysv/linux/recvmsg.c
@@ -1,5 +1,5 @@
/* Linux recvmsg syscall wrapper.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/socket.h>
#include <sysdep-cancel.h>
diff --git a/sysdeps/unix/sysv/linux/rename.c b/sysdeps/unix/sysv/linux/rename.c
index 962c9f079a..4ecb656fd9 100644
--- a/sysdeps/unix/sysv/linux/rename.c
+++ b/sysdeps/unix/sysv/linux/rename.c
@@ -1,5 +1,5 @@
/* Linux implementation for rename function.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <fcntl.h>
diff --git a/sysdeps/unix/sysv/linux/renameat.c b/sysdeps/unix/sysv/linux/renameat.c
index f85c5ae0ec..ce46f045ac 100644
--- a/sysdeps/unix/sysv/linux/renameat.c
+++ b/sysdeps/unix/sysv/linux/renameat.c
@@ -1,5 +1,5 @@
/* Linux implementation for renameat function.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <fcntl.h>
diff --git a/sysdeps/unix/sysv/linux/renameat2.c b/sysdeps/unix/sysv/linux/renameat2.c
index 919bb2a0d4..5984ca520b 100644
--- a/sysdeps/unix/sysv/linux/renameat2.c
+++ b/sysdeps/unix/sysv/linux/renameat2.c
@@ -1,5 +1,5 @@
/* Linux implementation for renameat2 function.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,14 +14,14 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdio.h>
#include <sysdep.h>
int
-renameat2 (int oldfd, const char *old, int newfd, const char *new,
+__renameat2 (int oldfd, const char *old, int newfd, const char *new,
unsigned int flags)
{
#if !defined (__NR_renameat) || defined (__ASSUME_RENAMEAT2)
@@ -42,3 +42,5 @@ renameat2 (int oldfd, const char *old, int newfd, const char *new,
return -1;
#endif
}
+libc_hidden_def (__renameat2)
+weak_alias (__renameat2, renameat2)
diff --git a/sysdeps/unix/sysv/linux/riscv/Makefile b/sysdeps/unix/sysv/linux/riscv/Makefile
index b47858769f..b7ad31885c 100644
--- a/sysdeps/unix/sysv/linux/riscv/Makefile
+++ b/sysdeps/unix/sysv/linux/riscv/Makefile
@@ -1,9 +1,5 @@
ifeq ($(subdir),elf)
sysdep_routines += dl-vdso
-ifeq ($(build-shared),yes)
-# This is needed for DSO loading from static binaries.
-sysdep-dl-routines += dl-static
-endif
endif
ifeq ($(subdir),misc)
diff --git a/sysdeps/unix/sysv/linux/riscv/atomic-machine.h b/sysdeps/unix/sysv/linux/riscv/atomic-machine.h
index 3d967d3b08..65dca59e38 100644
--- a/sysdeps/unix/sysv/linux/riscv/atomic-machine.h
+++ b/sysdeps/unix/sysv/linux/riscv/atomic-machine.h
@@ -1,5 +1,5 @@
/* Low-level functions for atomic operations. RISC-V version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LINUX_RISCV_BITS_ATOMIC_H
#define _LINUX_RISCV_BITS_ATOMIC_H 1
diff --git a/sysdeps/unix/sysv/linux/riscv/bits/fcntl.h b/sysdeps/unix/sysv/linux/riscv/bits/fcntl.h
index 6bea085c70..0034d0eeff 100644
--- a/sysdeps/unix/sysv/linux/riscv/bits/fcntl.h
+++ b/sysdeps/unix/sysv/linux/riscv/bits/fcntl.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for Linux / RISC-V.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FCNTL_H
# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
diff --git a/sysdeps/unix/sysv/linux/riscv/bits/mman.h b/sysdeps/unix/sysv/linux/riscv/bits/mman.h
deleted file mode 100644
index c01fb00728..0000000000
--- a/sysdeps/unix/sysv/linux/riscv/bits/mman.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Definitions for POSIX memory map interface. Linux/RISC-V version.
- Copyright (C) 1997-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_MMAN_H
-# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
-#endif
-
-#ifdef __USE_MISC
-# define MAP_GROWSDOWN 0x00100 /* Stack-like segment. */
-# define MAP_DENYWRITE 0x00800 /* ETXTBSY. */
-# define MAP_EXECUTABLE 0x01000 /* Mark it as an executable. */
-# define MAP_LOCKED 0x02000 /* Lock the mapping. */
-# define MAP_NORESERVE 0x04000 /* Don't check for reservations. */
-# define MAP_POPULATE 0x08000 /* Populate (prefault) pagetables. */
-# define MAP_NONBLOCK 0x10000 /* Do not block on IO. */
-# define MAP_STACK 0x20000 /* Allocation is for a stack. */
-# define MAP_HUGETLB 0x40000 /* Create huge page mapping. */
-# define MAP_SYNC 0x80000 /* Perform synchronous page
- faults for the mapping. */
-# define MAP_FIXED_NOREPLACE 0x100000 /* MAP_FIXED but do not unmap
- underlying mapping. */
-#endif
-
-/* Include generic Linux declarations. */
-#include <bits/mman-linux.h>
diff --git a/sysdeps/unix/sysv/linux/riscv/bits/procfs.h b/sysdeps/unix/sysv/linux/riscv/bits/procfs.h
new file mode 100644
index 0000000000..271d90dd7f
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/riscv/bits/procfs.h
@@ -0,0 +1,31 @@
+/* Types for registers for sys/procfs.h. RISC-V version.
+ Copyright (C) 1996-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PROCFS_H
+# error "Never include <bits/procfs.h> directly; use <sys/procfs.h> instead."
+#endif
+
+#include <sys/ucontext.h>
+
+/* ELF register definitions */
+#define ELF_NGREG NGREG
+#define ELF_NFPREG NFPREG
+
+typedef unsigned long int elf_greg_t;
+typedef unsigned long int elf_gregset_t[32];
+typedef union __riscv_mc_fp_state elf_fpregset_t;
diff --git a/sysdeps/unix/sysv/linux/riscv/bits/sigcontext.h b/sysdeps/unix/sysv/linux/riscv/bits/sigcontext.h
index 9b896a6262..06928d9cb8 100644
--- a/sysdeps/unix/sysv/linux/riscv/bits/sigcontext.h
+++ b/sysdeps/unix/sysv/linux/riscv/bits/sigcontext.h
@@ -1,6 +1,5 @@
/* Machine-dependent signal context structure for Linux. RISC-V version.
- Copyright (C) 1996-2018 Free Software
- Foundation, Inc. This file is part of the GNU C Library.
+ Copyright (C) 1996-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
@@ -14,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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_SIGCONTEXT_H
#define _BITS_SIGCONTEXT_H 1
diff --git a/sysdeps/unix/sysv/linux/riscv/clone.S b/sysdeps/unix/sysv/linux/riscv/clone.S
index 392af72b55..4e17534db8 100644
--- a/sysdeps/unix/sysv/linux/riscv/clone.S
+++ b/sysdeps/unix/sysv/linux/riscv/clone.S
@@ -1,5 +1,5 @@
/* Wrapper around clone system call. RISC-V version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* clone() is even more special than fork() as it mucks with stacks
and invokes a function in the right context after its all over. */
@@ -69,6 +69,11 @@ L (error):
ENTRY (__thread_start)
L (thread_start):
+ /* Terminate call stack by noting ra is undefined. Use a dummy
+ .cfi_label to force starting the FDE. */
+ .cfi_label .Ldummy
+ cfi_undefined (ra)
+
/* Restore the arg for user's function. */
REG_L a1,0(sp) /* Function pointer. */
REG_L a0,SZREG(sp) /* Argument pointer. */
diff --git a/sysdeps/unix/sysv/linux/riscv/configure b/sysdeps/unix/sysv/linux/riscv/configure
index 816e9145eb..3018ca8f1b 100755
--- a/sysdeps/unix/sysv/linux/riscv/configure
+++ b/sysdeps/unix/sysv/linux/riscv/configure
@@ -178,7 +178,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
fi
rm -f conftest*
-if test $libc_cv_riscv_float_abi = no; then
+if test "$libc_cv_riscv_float_abi" = no; then
as_fn_error $? "Unable to determine floating-point ABI" "$LINENO" 5
fi
diff --git a/sysdeps/unix/sysv/linux/riscv/configure.ac b/sysdeps/unix/sysv/linux/riscv/configure.ac
index 4fae013ec9..d4819931ca 100644
--- a/sysdeps/unix/sysv/linux/riscv/configure.ac
+++ b/sysdeps/unix/sysv/linux/riscv/configure.ac
@@ -20,7 +20,7 @@ AC_EGREP_CPP(yes, [#ifdef __riscv_float_abi_soft
yes
#endif
],libc_cv_riscv_float_abi=)
-if test $libc_cv_riscv_float_abi = no; then
+if test "$libc_cv_riscv_float_abi" = no; then
AC_MSG_ERROR([Unable to determine floating-point ABI])
fi
diff --git a/sysdeps/unix/sysv/linux/riscv/dl-cache.h b/sysdeps/unix/sysv/linux/riscv/dl-cache.h
index cbd6ef5e09..210ede7e2a 100644
--- a/sysdeps/unix/sysv/linux/riscv/dl-cache.h
+++ b/sysdeps/unix/sysv/linux/riscv/dl-cache.h
@@ -1,5 +1,5 @@
/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ldconfig.h>
diff --git a/sysdeps/unix/sysv/linux/riscv/dl-static.c b/sysdeps/unix/sysv/linux/riscv/dl-static.c
deleted file mode 100644
index b2fbb171a7..0000000000
--- a/sysdeps/unix/sysv/linux/riscv/dl-static.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/* Variable initialization. RISC-V version
- Copyright (C) 2001-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <ldsodefs.h>
-
-#ifdef SHARED
-
-void
-_dl_var_init (void *array[])
-{
- /* It has to match "variables" below. */
- enum
- {
- DL_PAGESIZE = 0
- };
-
- GLRO(dl_pagesize) = *((size_t *) array[DL_PAGESIZE]);
-}
-
-#else
-
-static void *variables[] =
-{
- &GLRO(dl_pagesize)
-};
-
-static void
-_dl_unprotect_relro (struct link_map *l)
-{
- ElfW(Addr) start = ((l->l_addr + l->l_relro_addr)
- & ~(GLRO(dl_pagesize) - 1));
- ElfW(Addr) end = ((l->l_addr + l->l_relro_addr + l->l_relro_size)
- & ~(GLRO(dl_pagesize) - 1));
-
- if (start != end)
- __mprotect ((void *) start, end - start, PROT_READ | PROT_WRITE);
-}
-
-void
-_dl_static_init (struct link_map *l)
-{
- struct link_map *rtld_map = l;
- struct r_scope_elem **scope;
- const ElfW(Sym) *ref = NULL;
- lookup_t loadbase;
- void (*f) (void *[]);
- size_t i;
-
- loadbase = _dl_lookup_symbol_x ("_dl_var_init", l, &ref, l->l_local_scope,
- NULL, 0, 1, NULL);
-
- for (scope = l->l_local_scope; *scope != NULL; scope++)
- for (i = 0; i < (*scope)->r_nlist; i++)
- if ((*scope)->r_list[i] == loadbase)
- {
- rtld_map = (*scope)->r_list[i];
- break;
- }
-
- if (ref != NULL)
- {
- f = (void (*) (void *[])) DL_SYMBOL_ADDRESS (loadbase, ref);
- _dl_unprotect_relro (rtld_map);
- f (variables);
- _dl_protect_relro (rtld_map);
- }
-}
-
-#endif
diff --git a/sysdeps/unix/sysv/linux/riscv/flush-icache.c b/sysdeps/unix/sysv/linux/riscv/flush-icache.c
index d612ef4c6c..c5bd60d9c2 100644
--- a/sysdeps/unix/sysv/linux/riscv/flush-icache.c
+++ b/sysdeps/unix/sysv/linux/riscv/flush-icache.c
@@ -1,5 +1,5 @@
/* RISC-V instruction cache flushing VDSO calls
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -15,13 +15,17 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dl-vdso.h>
#include <stdlib.h>
#include <atomic.h>
#include <sys/cachectl.h>
-#include <asm/syscalls.h>
+#if __has_include (<asm/syscalls.h>)
+# include <asm/syscalls.h>
+#else
+# include <asm/unistd.h>
+#endif
typedef int (*func_type) (void *, void *, unsigned long int);
@@ -34,9 +38,7 @@ __riscv_flush_icache_syscall (void *start, void *end, unsigned long int flags)
static func_type
__lookup_riscv_flush_icache (void)
{
- PREPARE_VERSION_KNOWN (linux_version, LINUX_4_15);
-
- func_type func = _dl_vdso_vsym ("__vdso_flush_icache", &linux_version);
+ func_type func = get_vdso_symbol ("__vdso_flush_icache");
/* If there is no vDSO entry then call the system call directly. All Linux
versions provide the vDSO entry, but QEMU's user-mode emulation doesn't
diff --git a/sysdeps/unix/sysv/linux/riscv/getcontext.S b/sysdeps/unix/sysv/linux/riscv/getcontext.S
index bde350f721..8e526740d1 100644
--- a/sysdeps/unix/sysv/linux/riscv/getcontext.S
+++ b/sysdeps/unix/sysv/linux/riscv/getcontext.S
@@ -1,5 +1,5 @@
/* Save current context.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "ucontext-macros.h"
diff --git a/sysdeps/unix/sysv/linux/riscv/init-first.c b/sysdeps/unix/sysv/linux/riscv/init-first.c
deleted file mode 100644
index 56abe51d96..0000000000
--- a/sysdeps/unix/sysv/linux/riscv/init-first.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/* RISC-V VDSO initialization
- Copyright (C) 2017-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifdef SHARED
-# include <dl-vdso.h>
-# include <libc-vdso.h>
-
-long int (*VDSO_SYMBOL (getcpu)) (unsigned int *, unsigned int *, void *)
- attribute_hidden;
-long int (*VDSO_SYMBOL (gettimeofday)) (struct timeval *, void *)
- attribute_hidden;
-long int (*VDSO_SYMBOL (clock_gettime)) (clockid_t, struct timespec *)
- attribute_hidden;
-long int (*VDSO_SYMBOL (clock_getres)) (clockid_t, struct timespec *)
- attribute_hidden;
-
-static inline void
-_libc_vdso_platform_setup (void)
-{
- PREPARE_VERSION_KNOWN (linux_version, LINUX_4_15);
-
- void *p = _dl_vdso_vsym ("__vdso_getcpu", &linux_version);
- PTR_MANGLE (p);
- VDSO_SYMBOL (getcpu) = p;
-
- p = _dl_vdso_vsym ("__vdso_gettimeofday", &linux_version);
- PTR_MANGLE (p);
- VDSO_SYMBOL (gettimeofday) = p;
-
- p = _dl_vdso_vsym ("__vdso_clock_gettime", &linux_version);
- PTR_MANGLE (p);
- VDSO_SYMBOL (clock_gettime) = p;
-
- p = _dl_vdso_vsym ("__vdso_clock_getres", &linux_version);
- PTR_MANGLE (p);
- VDSO_SYMBOL (clock_getres) = p;
-}
-
-# define VDSO_SETUP _libc_vdso_platform_setup
-#endif
-
-#include <csu/init-first.c>
diff --git a/sysdeps/unix/sysv/linux/riscv/ipc_priv.h b/sysdeps/unix/sysv/linux/riscv/ipc_priv.h
deleted file mode 100644
index 937f06adfb..0000000000
--- a/sysdeps/unix/sysv/linux/riscv/ipc_priv.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Old SysV permission definition for Linux. RISC-V version.
- Copyright (C) 2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sys/ipc.h> /* For __key_t */
-
-#define __IPC_64 0x0
diff --git a/sysdeps/unix/sysv/linux/riscv/kernel-features.h b/sysdeps/unix/sysv/linux/riscv/kernel-features.h
index 37f4d99a92..3e57ffbf44 100644
--- a/sysdeps/unix/sysv/linux/riscv/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/riscv/kernel-features.h
@@ -1,6 +1,6 @@
/* Set flags signalling availability of kernel features based on given
kernel version number. RISC-V version.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -15,9 +15,14 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include_next <kernel-features.h>
#undef __ASSUME_CLONE_DEFAULT
#define __ASSUME_CLONE_BACKWARDS 1
+
+/* No support for PI mutexes or robust futexes before 4.20. */
+#if __LINUX_KERNEL_VERSION < 0x041400
+# undef __ASSUME_SET_ROBUST_LIST
+#endif
diff --git a/sysdeps/unix/sysv/linux/riscv/ldconfig.h b/sysdeps/unix/sysv/linux/riscv/ldconfig.h
index 0ca798a870..8f5ef60e93 100644
--- a/sysdeps/unix/sysv/linux/riscv/ldconfig.h
+++ b/sysdeps/unix/sysv/linux/riscv/ldconfig.h
@@ -1,5 +1,5 @@
/* ldconfig default paths and libraries. Linux/RISC-V version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/generic/ldconfig.h>
diff --git a/sysdeps/unix/sysv/linux/riscv/ldsodefs.h b/sysdeps/unix/sysv/linux/riscv/ldsodefs.h
deleted file mode 100644
index b9421ffdfa..0000000000
--- a/sysdeps/unix/sysv/linux/riscv/ldsodefs.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/* RISC-V dynamic linker data structures for loaded ELF shared objects.
- Copyright (C) 2001-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _LDSODEFS_H
-
-/* Get the real definitions. */
-#include_next <ldsodefs.h>
-
-/* Now define our stuff. */
-
-/* We need special support to initialize DSO loaded for statically linked
- binaries. */
-extern void _dl_static_init (struct link_map *map);
-#undef DL_STATIC_INIT
-#define DL_STATIC_INIT(map) _dl_static_init (map)
-
-#endif /* ldsodefs.h */
diff --git a/sysdeps/unix/sysv/linux/riscv/libc-vdso.h b/sysdeps/unix/sysv/linux/riscv/libc-vdso.h
deleted file mode 100644
index 1d44b34e02..0000000000
--- a/sysdeps/unix/sysv/linux/riscv/libc-vdso.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* RISC-V VDSO function declarations
- Copyright (C) 2017-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _LIBC_VDSO_H
-#define _LIBC_VDSO_H
-
-#ifdef SHARED
-
-# include <sysdep-vdso.h>
-
-extern long int (*VDSO_SYMBOL (getcpu)) (unsigned int *, unsigned int *, void *)
- attribute_hidden;
-extern long int (*VDSO_SYMBOL (gettimeofday)) (struct timeval *, void *)
- attribute_hidden;
-extern long int (*VDSO_SYMBOL (clock_gettime)) (clockid_t, struct timespec *)
- attribute_hidden;
-extern long int (*VDSO_SYMBOL (clock_getres)) (clockid_t, struct timespec *)
- attribute_hidden;
-
-#endif
-
-#endif /* _LIBC_VDSO_H */
diff --git a/sysdeps/unix/sysv/linux/riscv/makecontext.c b/sysdeps/unix/sysv/linux/riscv/makecontext.c
index b8054a29b0..d912757c6e 100644
--- a/sysdeps/unix/sysv/linux/riscv/makecontext.c
+++ b/sysdeps/unix/sysv/linux/riscv/makecontext.c
@@ -1,5 +1,5 @@
/* Create new context. RISC-V version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <sys/asm.h>
diff --git a/sysdeps/unix/sysv/linux/riscv/profil-counter.h b/sysdeps/unix/sysv/linux/riscv/profil-counter.h
deleted file mode 100644
index 748019ee1b..0000000000
--- a/sysdeps/unix/sysv/linux/riscv/profil-counter.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Low-level statistical profiling support function. Linux/RISC-V version.
- Copyright (C) 1996-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <signal.h>
-#include <sigcontextinfo.h>
-
-static void
-__profil_counter (int signo, const SIGCONTEXT scp)
-{
- profil_count ((void *) GET_PC (scp));
-
- /* This is a hack to prevent the compiler from implementing the
- above function call as a sibcall. The sibcall would overwrite
- the signal context. */
- asm volatile ("");
-}
diff --git a/sysdeps/unix/sysv/linux/riscv/readelflib.c b/sysdeps/unix/sysv/linux/riscv/readelflib.c
index 7e27e0c1d6..6b4f22a986 100644
--- a/sysdeps/unix/sysv/linux/riscv/readelflib.c
+++ b/sysdeps/unix/sysv/linux/riscv/readelflib.c
@@ -1,5 +1,5 @@
/* Support for reading ELF files.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
int process_elf32_file (const char *file_name, const char *lib, int *flag,
diff --git a/sysdeps/unix/sysv/linux/riscv/register-dump.h b/sysdeps/unix/sysv/linux/riscv/register-dump.h
index 234ce630f9..74bb709e80 100644
--- a/sysdeps/unix/sysv/linux/riscv/register-dump.h
+++ b/sysdeps/unix/sysv/linux/riscv/register-dump.h
@@ -1,5 +1,5 @@
/* Dump registers.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <string.h>
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/jmp_buf-macros.h b/sysdeps/unix/sysv/linux/riscv/rv64/jmp_buf-macros.h
index 34434a8d93..1fbe883d1d 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/jmp_buf-macros.h
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/jmp_buf-macros.h
@@ -1,5 +1,5 @@
/* jump buffer constants for RISC-V
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Produced by this program:
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index daacceebd6..31010e6cf7 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -2100,3 +2100,10 @@ GLIBC_2.28 thrd_current F
GLIBC_2.28 thrd_equal F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
+GLIBC_2.29 getcpu F
+GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
+GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
+GLIBC_2.30 getdents64 F
+GLIBC_2.30 gettid F
+GLIBC_2.30 tgkill F
+GLIBC_2.30 twalk_r F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist
index 361fce20bb..90d9073188 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist
@@ -1019,3 +1019,19 @@ GLIBC_2.28 fmul F
GLIBC_2.28 fmull F
GLIBC_2.28 fsub F
GLIBC_2.28 fsubl F
+GLIBC_2.31 totalorder F
+GLIBC_2.31 totalorderf F
+GLIBC_2.31 totalorderf128 F
+GLIBC_2.31 totalorderf32 F
+GLIBC_2.31 totalorderf32x F
+GLIBC_2.31 totalorderf64 F
+GLIBC_2.31 totalorderf64x F
+GLIBC_2.31 totalorderl F
+GLIBC_2.31 totalordermag F
+GLIBC_2.31 totalordermagf F
+GLIBC_2.31 totalordermagf128 F
+GLIBC_2.31 totalordermagf32 F
+GLIBC_2.31 totalordermagf32x F
+GLIBC_2.31 totalordermagf64 F
+GLIBC_2.31 totalordermagf64x F
+GLIBC_2.31 totalordermagl F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
index c370fda73d..d44217ac85 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
@@ -10,7 +10,6 @@ GLIBC_2.27 __libc_allocate_rtsig F
GLIBC_2.27 __libc_current_sigrtmax F
GLIBC_2.27 __libc_current_sigrtmin F
GLIBC_2.27 __lseek F
-GLIBC_2.27 __nanosleep F
GLIBC_2.27 __open F
GLIBC_2.27 __open64 F
GLIBC_2.27 __pread64 F
@@ -61,29 +60,20 @@ GLIBC_2.27 funlockfile F
GLIBC_2.27 lseek F
GLIBC_2.27 lseek64 F
GLIBC_2.27 msync F
-GLIBC_2.27 nanosleep F
GLIBC_2.27 open F
GLIBC_2.27 open64 F
GLIBC_2.27 pause F
GLIBC_2.27 pread F
GLIBC_2.27 pread64 F
-GLIBC_2.27 pthread_attr_destroy F
GLIBC_2.27 pthread_attr_getaffinity_np F
-GLIBC_2.27 pthread_attr_getdetachstate F
GLIBC_2.27 pthread_attr_getguardsize F
-GLIBC_2.27 pthread_attr_getinheritsched F
-GLIBC_2.27 pthread_attr_getschedparam F
GLIBC_2.27 pthread_attr_getschedpolicy F
GLIBC_2.27 pthread_attr_getscope F
GLIBC_2.27 pthread_attr_getstack F
GLIBC_2.27 pthread_attr_getstackaddr F
GLIBC_2.27 pthread_attr_getstacksize F
-GLIBC_2.27 pthread_attr_init F
GLIBC_2.27 pthread_attr_setaffinity_np F
-GLIBC_2.27 pthread_attr_setdetachstate F
GLIBC_2.27 pthread_attr_setguardsize F
-GLIBC_2.27 pthread_attr_setinheritsched F
-GLIBC_2.27 pthread_attr_setschedparam F
GLIBC_2.27 pthread_attr_setschedpolicy F
GLIBC_2.27 pthread_attr_setscope F
GLIBC_2.27 pthread_attr_setstack F
@@ -111,7 +101,6 @@ GLIBC_2.27 pthread_condattr_setclock F
GLIBC_2.27 pthread_condattr_setpshared F
GLIBC_2.27 pthread_create F
GLIBC_2.27 pthread_detach F
-GLIBC_2.27 pthread_equal F
GLIBC_2.27 pthread_exit F
GLIBC_2.27 pthread_getaffinity_np F
GLIBC_2.27 pthread_getattr_default_np F
@@ -235,3 +224,9 @@ GLIBC_2.28 tss_create F
GLIBC_2.28 tss_delete F
GLIBC_2.28 tss_get F
GLIBC_2.28 tss_set F
+GLIBC_2.30 pthread_cond_clockwait F
+GLIBC_2.30 pthread_mutex_clocklock F
+GLIBC_2.30 pthread_rwlock_clockrdlock F
+GLIBC_2.30 pthread_rwlock_clockwrlock F
+GLIBC_2.30 sem_clockwait F
+GLIBC_2.31 pthread_clockjoin_np F
diff --git a/sysdeps/unix/sysv/linux/riscv/setcontext.S b/sysdeps/unix/sysv/linux/riscv/setcontext.S
index 9f1c7b41fd..b14636b14f 100644
--- a/sysdeps/unix/sysv/linux/riscv/setcontext.S
+++ b/sysdeps/unix/sysv/linux/riscv/setcontext.S
@@ -1,5 +1,5 @@
/* Set current context.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "ucontext-macros.h"
@@ -94,7 +94,7 @@ LEAF (__setcontext)
99: j __syscall_error
-PSEUDO_END (__setcontext)
+END (__setcontext)
weak_alias (__setcontext, setcontext)
LEAF (__start_context)
@@ -111,4 +111,4 @@ LEAF (__start_context)
jal __setcontext
1: j exit
-PSEUDO_END (__start_context)
+END (__start_context)
diff --git a/sysdeps/unix/sysv/linux/riscv/sigcontextinfo.h b/sysdeps/unix/sysv/linux/riscv/sigcontextinfo.h
index 147695398d..a733a762da 100644
--- a/sysdeps/unix/sysv/linux/riscv/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/riscv/sigcontextinfo.h
@@ -1,5 +1,5 @@
/* RISC-V definitions for signal handling calling conventions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,9 +14,17 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SIGCONTEXTINFO_H
+#define _SIGCONTEXTINFO_H
#include <sys/ucontext.h>
-#define SIGCONTEXT siginfo_t *_si, ucontext_t *
-#define GET_PC(ctx) ((void *) ctx->uc_mcontext.__gregs[REG_PC])
+static inline uintptr_t
+sigcontext_get_pc (const ucontext_t *ctx)
+{
+ return ctx->uc_mcontext.__gregs[REG_PC];
+}
+
+#endif
diff --git a/sysdeps/unix/sysv/linux/riscv/swapcontext.S b/sysdeps/unix/sysv/linux/riscv/swapcontext.S
index 75b58dc668..e16e5b9be5 100644
--- a/sysdeps/unix/sysv/linux/riscv/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/riscv/swapcontext.S
@@ -1,5 +1,5 @@
/* Save and set current context.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "ucontext-macros.h"
diff --git a/sysdeps/unix/sysv/linux/riscv/sys/cachectl.h b/sysdeps/unix/sysv/linux/riscv/sys/cachectl.h
index 46a2cb6082..11b0fc0843 100644
--- a/sysdeps/unix/sysv/linux/riscv/sys/cachectl.h
+++ b/sysdeps/unix/sysv/linux/riscv/sys/cachectl.h
@@ -1,5 +1,5 @@
/* RISC-V instruction cache flushing interface
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_CACHECTL_H
#define _SYS_CACHECTL_H 1
diff --git a/sysdeps/unix/sysv/linux/riscv/sys/procfs.h b/sysdeps/unix/sysv/linux/riscv/sys/procfs.h
deleted file mode 100644
index 518de56741..0000000000
--- a/sysdeps/unix/sysv/linux/riscv/sys/procfs.h
+++ /dev/null
@@ -1,114 +0,0 @@
-/* Core image file related definitions, RISC-V version.
- Copyright (C) 1996-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_PROCFS_H
-#define _SYS_PROCFS_H 1
-
-/* This is somehow modelled after the file of the same name on SysVr4
- systems. It provides a definition of the core file format for ELF
- used on Linux. */
-
-#include <features.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#include <sys/user.h>
-#include <sys/ucontext.h>
-
-/* ELF register definitions */
-#define ELF_NGREG NGREG
-#define ELF_NFPREG NFPREG
-
-typedef unsigned long int elf_greg_t;
-typedef unsigned long int elf_gregset_t[32];
-typedef union __riscv_mc_fp_state elf_fpregset_t;
-
-__BEGIN_DECLS
-
-struct elf_siginfo
- {
- int si_signo; /* Signal number. */
- int si_code; /* Extra code. */
- int si_errno; /* Errno. */
- };
-
-
-/* Definitions to generate Intel SVR4-like core files. These mostly
- have the same names as the SVR4 types with "elf_" tacked on the
- front to prevent clashes with linux definitions, and the typedef
- forms have been avoided. This is mostly like the SVR4 structure,
- but more Linuxy, with things that Linux does not support and which
- gdb doesn't really use excluded. Fields present but not used are
- marked with "XXX". */
-struct elf_prstatus
- {
- struct elf_siginfo pr_info; /* Info associated with signal. */
- short int pr_cursig; /* Current signal. */
- unsigned long int pr_sigpend; /* Set of pending signals. */
- unsigned long int pr_sighold; /* Set of held signals. */
- __pid_t pr_pid;
- __pid_t pr_ppid;
- __pid_t pr_pgrp;
- __pid_t pr_sid;
- struct timeval pr_utime; /* User time. */
- struct timeval pr_stime; /* System time. */
- struct timeval pr_cutime; /* Cumulative user time. */
- struct timeval pr_cstime; /* Cumulative system time. */
- elf_gregset_t pr_reg; /* GP registers. */
- int pr_fpvalid; /* True if math copro being used. */
- };
-
-
-#define ELF_PRARGSZ (80) /* Number of chars for args */
-
-struct elf_prpsinfo
- {
- char pr_state; /* Numeric process state. */
- char pr_sname; /* Char for pr_state. */
- char pr_zomb; /* Zombie. */
- char pr_nice; /* Nice val. */
- unsigned long int pr_flag; /* Flags. */
- long int pr_uid;
- long int pr_gid;
- int pr_pid, pr_ppid, pr_pgrp, pr_sid;
- /* Lots missing */
- char pr_fname[16]; /* Filename of executable. */
- char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
- };
-
-/* The rest of this file provides the types for emulation of the
- Solaris <proc_service.h> interfaces that should be implemented by
- users of libthread_db. */
-
-/* Addresses. */
-typedef void *psaddr_t;
-
-/* Register sets. Linux has different names. */
-typedef elf_gregset_t prgregset_t;
-typedef elf_fpregset_t prfpregset_t;
-
-/* We don't have any differences between processes and threads,
- therefore habe only ine PID type. */
-typedef __pid_t lwpid_t;
-
-/* Process status and info. In the end we do provide typedefs for them. */
-typedef struct elf_prstatus prstatus_t;
-typedef struct elf_prpsinfo prpsinfo_t;
-
-__END_DECLS
-
-#endif /* sys/procfs.h */
diff --git a/sysdeps/unix/sysv/linux/riscv/sys/ucontext.h b/sysdeps/unix/sysv/linux/riscv/sys/ucontext.h
index 7df430b504..09602e1060 100644
--- a/sysdeps/unix/sysv/linux/riscv/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/riscv/sys/ucontext.h
@@ -1,5 +1,5 @@
/* struct ucontext definition, RISC-V version.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Don't rely on this, the interface is currently messed up and may need to
be broken to be fixed. */
diff --git a/sysdeps/unix/sysv/linux/riscv/sys/user.h b/sysdeps/unix/sysv/linux/riscv/sys/user.h
index 7e648f2d5c..c34054c613 100644
--- a/sysdeps/unix/sysv/linux/riscv/sys/user.h
+++ b/sysdeps/unix/sysv/linux/riscv/sys/user.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_USER_H
#define _SYS_USER_H 1
diff --git a/sysdeps/unix/sysv/linux/riscv/syscall.c b/sysdeps/unix/sysv/linux/riscv/syscall.c
index 6589dde385..3d878d04e3 100644
--- a/sysdeps/unix/sysv/linux/riscv/syscall.c
+++ b/sysdeps/unix/sysv/linux/riscv/syscall.c
@@ -1,5 +1,5 @@
/* system call interface. Linux/RISC-V version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/riscv/sysdep.S b/sysdeps/unix/sysv/linux/riscv/sysdep.S
index 0d9c0b5bd9..8710a91c40 100644
--- a/sysdeps/unix/sysv/linux/riscv/sysdep.S
+++ b/sysdeps/unix/sysv/linux/riscv/sysdep.S
@@ -1,5 +1,5 @@
/* syscall error handlers
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ 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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/riscv/sysdep.h b/sysdeps/unix/sysv/linux/riscv/sysdep.h
index 5470ea3d2a..bfbcf60feb 100644
--- a/sysdeps/unix/sysv/linux/riscv/sysdep.h
+++ b/sysdeps/unix/sysv/linux/riscv/sysdep.h
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LINUX_RISCV_SYSDEP_H
#define _LINUX_RISCV_SYSDEP_H 1
@@ -121,11 +121,14 @@
#ifndef __ASSEMBLER__
+# define VDSO_NAME "LINUX_4.15"
+# define VDSO_HASH 182943605
+
/* List of system calls which are supported as vsyscalls. */
-# define HAVE_CLOCK_GETRES_VSYSCALL 1
-# define HAVE_CLOCK_GETTIME_VSYSCALL 1
-# define HAVE_GETTIMEOFDAY_VSYSCALL 1
-# define HAVE_GETCPU_VSYSCALL 1
+# define HAVE_CLOCK_GETRES_VSYSCALL "__vdso_clock_getres"
+# define HAVE_CLOCK_GETTIME_VSYSCALL "__vdso_clock_gettime"
+# define HAVE_GETTIMEOFDAY_VSYSCALL "__vdso_gettimeofday"
+# define HAVE_GETCPU_VSYSCALL "__vdso_getcpu"
/* Define a macro which expands into the inline wrapper code for a system
call. */
diff --git a/sysdeps/unix/sysv/linux/riscv/ucontext-macros.h b/sysdeps/unix/sysv/linux/riscv/ucontext-macros.h
index a73c3a9b04..661715bdc2 100644
--- a/sysdeps/unix/sysv/linux/riscv/ucontext-macros.h
+++ b/sysdeps/unix/sysv/linux/riscv/ucontext-macros.h
@@ -1,5 +1,5 @@
/* Macros for ucontext routines.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LINUX_RISCV_UCONTEXT_MACROS_H
#define _LINUX_RISCV_UCONTEXT_MACROS_H
diff --git a/sysdeps/unix/sysv/linux/riscv/vfork.S b/sysdeps/unix/sysv/linux/riscv/vfork.S
index 6c53e93a92..062a562e72 100644
--- a/sysdeps/unix/sysv/linux/riscv/vfork.S
+++ b/sysdeps/unix/sysv/linux/riscv/vfork.S
@@ -1,5 +1,5 @@
/* vfork for Linux, RISC-V version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,16 +14,19 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* vfork() is just a special case of clone(). */
#include <sys/asm.h>
#include <sysdep.h>
#define __ASSEMBLY__
-#include <linux/sched.h>
#include <asm/signal.h>
+#define CLONE_VM 0x00000100 /* Set if VM shared between processes. */
+#define CLONE_VFORK 0x00004000 /* Set if the parent wants the child to
+ wake it up on mm_release. */
+
.text
LEAF (__libc_vfork)
diff --git a/sysdeps/unix/sysv/linux/s390/bits/elfclass.h b/sysdeps/unix/sysv/linux/s390/bits/elfclass.h
index 3b0e123af4..9590f5e3c2 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/elfclass.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/elfclass.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file specifies the native word size of the machine, which indicates
the ELF file class used for executables and shared objects on this
diff --git a/sysdeps/unix/sysv/linux/s390/bits/environments.h b/sysdeps/unix/sysv/linux/s390/bits/environments.h
index ca0f57525a..57c0353463 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/environments.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/environments.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _UNISTD_H
# error "Never include this file directly. Use <unistd.h> instead"
diff --git a/sysdeps/unix/sysv/linux/s390/bits/fcntl.h b/sysdeps/unix/sysv/linux/s390/bits/fcntl.h
index ac36abbac5..996a6661a9 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/fcntl.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/fcntl.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for Linux.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FCNTL_H
# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
diff --git a/sysdeps/unix/sysv/linux/s390/bits/hwcap.h b/sysdeps/unix/sysv/linux/s390/bits/hwcap.h
index 2564712399..abe9b4861d 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/hwcap.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/hwcap.h
@@ -1,5 +1,5 @@
/* Defines for bits in AT_HWCAP.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_AUXV_H
# error "Never include <bits/hwcap.h> directly; use <sys/auxv.h> instead."
@@ -39,3 +39,7 @@
#define HWCAP_S390_VXD 4096
#define HWCAP_S390_VXE 8192
#define HWCAP_S390_GS 16384
+#define HWCAP_S390_VXRS_EXT2 32768
+#define HWCAP_S390_VXRS_PDE 65536
+#define HWCAP_S390_SORT 131072
+#define HWCAP_S390_DFLT 262144
diff --git a/sysdeps/unix/sysv/linux/s390/bits/ipc.h b/sysdeps/unix/sysv/linux/s390/bits/ipc.h
deleted file mode 100644
index faacf1da67..0000000000
--- a/sysdeps/unix/sysv/linux/s390/bits/ipc.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Copyright (C) 2001-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_IPC_H
-# error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
-#endif
-
-#include <bits/types.h>
-#include <bits/wordsize.h>
-
-/* Mode bits for `msgget', `semget', and `shmget'. */
-#define IPC_CREAT 01000 /* Create key if key does not exist. */
-#define IPC_EXCL 02000 /* Fail if key exists. */
-#define IPC_NOWAIT 04000 /* Return error on wait. */
-
-/* Control commands for `msgctl', `semctl', and `shmctl'. */
-#define IPC_RMID 0 /* Remove identifier. */
-#define IPC_SET 1 /* Set `ipc_perm' options. */
-#define IPC_STAT 2 /* Get `ipc_perm' options. */
-#ifdef __USE_GNU
-#define IPC_INFO 3 /* See ipcs. */
-#endif
-
-/* Special key values. */
-#define IPC_PRIVATE ((__key_t) 0) /* Private key. */
-
-
-/* Data structure used to pass permission information to IPC operations. */
-struct ipc_perm
- {
- __key_t __key; /* Key. */
- __uid_t uid; /* Owner's user ID. */
- __gid_t gid; /* Owner's group ID. */
- __uid_t cuid; /* Creator's user ID. */
- __gid_t cgid; /* Creator's group ID. */
-#if __WORDSIZE == 64
- __mode_t mode; /* Read/write permission. */
-#else
- unsigned short int mode; /* Read/write permission. */
- unsigned short int __pad1;
-#endif
- unsigned short int __seq; /* Sequence number. */
- unsigned short int __pad2;
- unsigned long int __glibc_reserved1;
- unsigned long int __glibc_reserved2;
- };
diff --git a/sysdeps/unix/sysv/linux/s390/bits/mman.h b/sysdeps/unix/sysv/linux/s390/bits/mman.h
deleted file mode 100644
index f103c1a65b..0000000000
--- a/sysdeps/unix/sysv/linux/s390/bits/mman.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Definitions for POSIX memory map interface. Linux/s390 version.
- Copyright (C) 2000-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_MMAN_H
-# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
-#endif
-
-/* The following definitions basically come from the kernel headers.
- But the kernel header is not namespace clean. */
-
-
-/* These are Linux-specific. */
-#ifdef __USE_MISC
-# define MAP_GROWSDOWN 0x00100 /* Stack-like segment. */
-# define MAP_DENYWRITE 0x00800 /* ETXTBSY */
-# define MAP_EXECUTABLE 0x01000 /* Mark it as an executable. */
-# define MAP_LOCKED 0x02000 /* Lock the mapping. */
-# define MAP_NORESERVE 0x04000 /* Don't check for reservations. */
-# define MAP_POPULATE 0x08000 /* Populate (prefault) pagetables. */
-# define MAP_NONBLOCK 0x10000 /* Do not block on IO. */
-# define MAP_STACK 0x20000 /* Allocation is for a stack. */
-# define MAP_HUGETLB 0x40000 /* Create huge page mapping. */
-# define MAP_SYNC 0x80000 /* Perform synchronous page
- faults for the mapping. */
-# define MAP_FIXED_NOREPLACE 0x100000 /* MAP_FIXED but do not unmap
- underlying mapping. */
-#endif
-
-/* Include generic Linux declarations. */
-#include <bits/mman-linux.h>
diff --git a/sysdeps/unix/sysv/linux/s390/bits/msq.h b/sysdeps/unix/sysv/linux/s390/bits/msq.h
deleted file mode 100644
index b5dee36af6..0000000000
--- a/sysdeps/unix/sysv/linux/s390/bits/msq.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/* Copyright (C) 2001-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_MSG_H
-# error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
-#endif
-
-#include <bits/types.h>
-#include <bits/wordsize.h>
-
-/* Define options for message queue functions. */
-#define MSG_NOERROR 010000 /* no error if message is too big */
-#ifdef __USE_GNU
-# define MSG_EXCEPT 020000 /* recv any msg except of specified type */
-# define MSG_COPY 040000 /* copy (not remove) all queue messages */
-#endif
-
-/* Types used in the structure definition. */
-typedef unsigned long int msgqnum_t;
-typedef unsigned long int msglen_t;
-
-
-/* Structure of record for one message inside the kernel.
- The type `struct msg' is opaque. */
-struct msqid_ds
-{
- struct ipc_perm msg_perm; /* structure describing operation permission */
- __time_t msg_stime; /* time of last msgsnd command */
-#if __WORDSIZE != 64
- unsigned long int __glibc_reserved1;
-#endif
- __time_t msg_rtime; /* time of last msgrcv command */
-#if __WORDSIZE != 64
- unsigned long int __glibc_reserved2;
-#endif
- __time_t msg_ctime; /* time of last change */
-#if __WORDSIZE != 64
- unsigned long int __glibc_reserved3;
-#endif
- unsigned long int __msg_cbytes; /* current number of bytes on queue */
- msgqnum_t msg_qnum; /* number of messages currently on queue */
- msglen_t msg_qbytes; /* max number of bytes allowed on queue */
- __pid_t msg_lspid; /* pid of last msgsnd() */
- __pid_t msg_lrpid; /* pid of last msgrcv() */
- unsigned long int __glibc_reserved4;
- unsigned long int __glibc_reserved5;
-};
-
-#ifdef __USE_MISC
-
-# define msg_cbytes __msg_cbytes
-
-/* ipcs ctl commands */
-# define MSG_STAT 11
-# define MSG_INFO 12
-# define MSG_STAT_ANY 13
-
-/* buffer for msgctl calls IPC_INFO, MSG_INFO */
-struct msginfo
- {
- int msgpool;
- int msgmap;
- int msgmax;
- int msgmnb;
- int msgmni;
- int msgssz;
- int msgtql;
- unsigned short int msgseg;
- };
-
-#endif /* __USE_MISC */
diff --git a/sysdeps/unix/sysv/linux/s390/bits/procfs-extra.h b/sysdeps/unix/sysv/linux/s390/bits/procfs-extra.h
new file mode 100644
index 0000000000..19856e90ab
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/s390/bits/procfs-extra.h
@@ -0,0 +1,75 @@
+/* Extra sys/procfs.h definitions. S/390 version.
+ Copyright (C) 2000-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PROCFS_H
+# error "Never include <bits/procfs-extra.h> directly; use <sys/procfs.h> instead."
+#endif
+
+#if __WORDSIZE == 64
+
+/* Provide 32-bit variants so that BFD can read 32-bit
+ core files. */
+#define ELF_NGREG32 36
+typedef unsigned int elf_greg_t32;
+typedef elf_greg_t32
+ elf_gregset_t32[ELF_NGREG32] __attribute__ ((__aligned__ (8)));
+typedef elf_fpregset_t elf_fpregset_t32;
+
+struct elf_prstatus32
+ {
+ struct elf_siginfo pr_info; /* Info associated with signal. */
+ short int pr_cursig; /* Current signal. */
+ unsigned int pr_sigpend; /* Set of pending signals. */
+ unsigned int pr_sighold; /* Set of held signals. */
+ __pid_t pr_pid;
+ __pid_t pr_ppid;
+ __pid_t pr_pgrp;
+ __pid_t pr_sid;
+ struct
+ {
+ int tv_sec, tv_usec;
+ } pr_utime, /* User time. */
+ pr_stime, /* System time. */
+ pr_cutime, /* Cumulative user time. */
+ pr_cstime; /* Cumulative system time. */
+ elf_gregset_t32 pr_reg; /* GP registers. */
+ int pr_fpvalid; /* True if math copro being used. */
+ };
+
+struct elf_prpsinfo32
+ {
+ char pr_state; /* Numeric process state. */
+ char pr_sname; /* Char for pr_state. */
+ char pr_zomb; /* Zombie. */
+ char pr_nice; /* Nice val. */
+ unsigned int pr_flag; /* Flags. */
+ unsigned short int pr_uid;
+ unsigned short int pr_gid;
+ int pr_pid, pr_ppid, pr_pgrp, pr_sid;
+ /* Lots missing */
+ char pr_fname[16]; /* Filename of executable. */
+ char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
+ };
+
+typedef elf_gregset_t32 prgregset32_t;
+typedef elf_fpregset_t32 prfpregset32_t;
+
+typedef struct elf_prstatus32 prstatus32_t;
+typedef struct elf_prpsinfo32 prpsinfo32_t;
+
+#endif
diff --git a/sysdeps/unix/sysv/linux/s390/bits/procfs-id.h b/sysdeps/unix/sysv/linux/s390/bits/procfs-id.h
new file mode 100644
index 0000000000..b15d6d6265
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/s390/bits/procfs-id.h
@@ -0,0 +1,30 @@
+/* Types of pr_uid and pr_gid in struct elf_prpsinfo. S/390 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PROCFS_H
+# error "Never include <bits/procfs-id.h> directly; use <sys/procfs.h> instead."
+#endif
+
+#if __WORDSIZE == 64
+typedef unsigned int __pr_uid_t;
+typedef unsigned int __pr_gid_t;
+#else
+typedef unsigned short int __pr_uid_t;
+typedef unsigned short int __pr_gid_t;
+#endif
diff --git a/sysdeps/unix/sysv/linux/s390/bits/procfs.h b/sysdeps/unix/sysv/linux/s390/bits/procfs.h
new file mode 100644
index 0000000000..1634132e89
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/s390/bits/procfs.h
@@ -0,0 +1,29 @@
+/* Types for registers for sys/procfs.h. S/390 version.
+ Copyright (C) 2000-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PROCFS_H
+# error "Never include <bits/procfs.h> directly; use <sys/procfs.h> instead."
+#endif
+
+#include <sys/ucontext.h>
+
+typedef greg_t elf_greg_t;
+#define ELF_NGREG NGREG
+typedef gregset_t elf_gregset_t;
+typedef fpreg_t elf_fpreg_t;
+typedef fpregset_t elf_fpregset_t;
diff --git a/sysdeps/unix/sysv/linux/s390/bits/sem.h b/sysdeps/unix/sysv/linux/s390/bits/sem.h
deleted file mode 100644
index 1d0bd5cd9a..0000000000
--- a/sysdeps/unix/sysv/linux/s390/bits/sem.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/* Copyright (C) 2001-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_SEM_H
-# error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
-#endif
-
-#include <sys/types.h>
-
-/* Flags for `semop'. */
-#define SEM_UNDO 0x1000 /* undo the operation on exit */
-
-/* Commands for `semctl'. */
-#define GETPID 11 /* get sempid */
-#define GETVAL 12 /* get semval */
-#define GETALL 13 /* get all semval's */
-#define GETNCNT 14 /* get semncnt */
-#define GETZCNT 15 /* get semzcnt */
-#define SETVAL 16 /* set semval */
-#define SETALL 17 /* set all semval's */
-
-
-/* Data structure describing a set of semaphores. */
-struct semid_ds
-{
- struct ipc_perm sem_perm; /* operation permission struct */
- __time_t sem_otime; /* last semop() time */
-#if __WORDSIZE != 64
- unsigned long int __glibc_reserved1;
-#endif
- __time_t sem_ctime; /* last time changed by semctl() */
-#if __WORDSIZE != 64
- unsigned long int __glibc_reserved2;
-#endif
- unsigned long int sem_nsems; /* number of semaphores in set */
- unsigned long int __glibc_reserved3;
- unsigned long int __glibc_reserved4;
-};
-
-/* The user should define a union like the following to use it for arguments
- for `semctl'.
-
- union semun
- {
- int val; <= value for SETVAL
- struct semid_ds *buf; <= buffer for IPC_STAT & IPC_SET
- unsigned short int *array; <= array for GETALL & SETALL
- struct seminfo *__buf; <= buffer for IPC_INFO
- };
-
- Previous versions of this file used to define this union but this is
- incorrect. One can test the macro _SEM_SEMUN_UNDEFINED to see whether
- one must define the union or not. */
-#define _SEM_SEMUN_UNDEFINED 1
-
-#ifdef __USE_MISC
-
-/* ipcs ctl cmds */
-# define SEM_STAT 18
-# define SEM_INFO 19
-# define SEM_STAT_ANY 20
-
-struct seminfo
-{
- int semmap;
- int semmni;
- int semmns;
- int semmnu;
- int semmsl;
- int semopm;
- int semume;
- int semusz;
- int semvmx;
- int semaem;
-};
-
-#endif /* __USE_MISC */
diff --git a/sysdeps/unix/sysv/linux/s390/bits/shm.h b/sysdeps/unix/sysv/linux/s390/bits/shm.h
deleted file mode 100644
index 65235ab85e..0000000000
--- a/sysdeps/unix/sysv/linux/s390/bits/shm.h
+++ /dev/null
@@ -1,111 +0,0 @@
-/* Copyright (C) 2001-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_SHM_H
-# error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
-#endif
-
-#include <bits/types.h>
-#include <bits/wordsize.h>
-
-/* Permission flag for shmget. */
-#define SHM_R 0400 /* or S_IRUGO from <linux/stat.h> */
-#define SHM_W 0200 /* or S_IWUGO from <linux/stat.h> */
-
-/* Flags for `shmat'. */
-#define SHM_RDONLY 010000 /* attach read-only else read-write */
-#define SHM_RND 020000 /* round attach address to SHMLBA */
-#define SHM_REMAP 040000 /* take-over region on attach */
-#define SHM_EXEC 0100000 /* execution access */
-
-/* Commands for `shmctl'. */
-#define SHM_LOCK 11 /* lock segment (root only) */
-#define SHM_UNLOCK 12 /* unlock segment (root only) */
-
-__BEGIN_DECLS
-
-/* Segment low boundary address multiple. */
-#define SHMLBA (__getpagesize ())
-extern int __getpagesize (void) __THROW __attribute__ ((__const__));
-
-
-/* Type to count number of attaches. */
-typedef unsigned long int shmatt_t;
-
-/* Data structure describing a shared memory segment. */
-struct shmid_ds
- {
- struct ipc_perm shm_perm; /* operation permission struct */
- size_t shm_segsz; /* size of segment in bytes */
- __time_t shm_atime; /* time of last shmat() */
-#if __WORDSIZE != 64
- unsigned long int __glibc_reserved1;
-#endif
- __time_t shm_dtime; /* time of last shmdt() */
-#if __WORDSIZE != 64
- unsigned long int __glibc_reserved2;
-#endif
- __time_t shm_ctime; /* time of last change by shmctl() */
-#if __WORDSIZE != 64
- unsigned long int __glibc_reserved3;
-#endif
- __pid_t shm_cpid; /* pid of creator */
- __pid_t shm_lpid; /* pid of last shmop */
- shmatt_t shm_nattch; /* number of current attaches */
- unsigned long int __glibc_reserved4;
- unsigned long int __glibc_reserved5;
- };
-
-#ifdef __USE_MISC
-
-/* ipcs ctl commands */
-# define SHM_STAT 13
-# define SHM_INFO 14
-# define SHM_STAT_ANY 15
-
-/* shm_mode upper byte flags */
-# define SHM_DEST 01000 /* segment will be destroyed on last detach */
-# define SHM_LOCKED 02000 /* segment will not be swapped */
-# define SHM_HUGETLB 04000 /* segment is mapped via hugetlb */
-# define SHM_NORESERVE 010000 /* don't check for reservations */
-
-struct shminfo
- {
- unsigned long int shmmax;
- unsigned long int shmmin;
- unsigned long int shmmni;
- unsigned long int shmseg;
- unsigned long int shmall;
- unsigned long int __glibc_reserved1;
- unsigned long int __glibc_reserved2;
- unsigned long int __glibc_reserved3;
- unsigned long int __glibc_reserved4;
- };
-
-struct shm_info
- {
- int used_ids;
- unsigned long int shm_tot; /* total allocated shm */
- unsigned long int shm_rss; /* total resident shm */
- unsigned long int shm_swp; /* total swapped shm */
- unsigned long int swap_attempts;
- unsigned long int swap_successes;
- };
-
-#endif /* __USE_MISC */
-
-__END_DECLS
diff --git a/sysdeps/unix/sysv/linux/s390/bits/sigaction.h b/sysdeps/unix/sysv/linux/s390/bits/sigaction.h
index 50c86cc527..c63188100a 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/sigaction.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/sigaction.h
@@ -1,5 +1,5 @@
/* Definitions for 31 & 64 bit S/390 sigaction.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_SIGACTION_H
#define _BITS_SIGACTION_H 1
diff --git a/sysdeps/unix/sysv/linux/s390/bits/stat.h b/sysdeps/unix/sysv/linux/s390/bits/stat.h
index 0b2be1362c..d0a45e8353 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/stat.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/stat.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if !defined _SYS_STAT_H && !defined _FCNTL_H
# error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
diff --git a/sysdeps/unix/sysv/linux/s390/bits/statfs.h b/sysdeps/unix/sysv/linux/s390/bits/statfs.h
index 559a1ae6c7..6c82111c15 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/statfs.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/statfs.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_STATFS_H
# error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead."
diff --git a/sysdeps/unix/sysv/linux/s390/bits/typesizes.h b/sysdeps/unix/sysv/linux/s390/bits/typesizes.h
index fdaa421958..38034e3ad4 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/typesizes.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/typesizes.h
@@ -1,5 +1,5 @@
/* bits/typesizes.h -- underlying types for *_t. Linux/s390 version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_TYPES_H
# error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead."
@@ -78,8 +78,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/sysdeps/unix/sysv/linux/s390/bits/utmp.h b/sysdeps/unix/sysv/linux/s390/bits/utmp.h
index b3fa362f47..9794bfc950 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/utmp.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/utmp.h
@@ -1,5 +1,5 @@
/* The `struct utmp' type, describing entries in the utmp file. GNU version.
- Copyright (C) 1993-2018 Free Software Foundation, Inc.
+ Copyright (C) 1993-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _UTMP_H
# error "Never include <bits/utmp.h> directly; use <utmp.h> instead."
@@ -61,7 +61,8 @@ struct utmp
pid_t ut_pid; /* Process ID of login process. */
char ut_line[UT_LINESIZE]
__attribute_nonstring__; /* Devicename. */
- char ut_id[4]; /* Inittab ID. */
+ char ut_id[4]
+ __attribute_nonstring__; /* Inittab ID. */
char ut_user[UT_NAMESIZE]
__attribute_nonstring__; /* Username. */
char ut_host[UT_HOSTSIZE]
diff --git a/sysdeps/unix/sysv/linux/s390/bits/utmpx.h b/sysdeps/unix/sysv/linux/s390/bits/utmpx.h
index 3d3036c3b9..f0a610ee8a 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/utmpx.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/utmpx.h
@@ -1,5 +1,5 @@
/* Structures and definitions for the user accounting database. GNU version.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _UTMPX_H
# error "Never include <bits/utmpx.h> directly; use <utmpx.h> instead."
@@ -56,10 +56,14 @@ struct utmpx
{
short int ut_type; /* Type of login. */
__pid_t ut_pid; /* Process ID of login process. */
- char ut_line[__UT_LINESIZE]; /* Devicename. */
- char ut_id[4]; /* Inittab ID. */
- char ut_user[__UT_NAMESIZE]; /* Username. */
- char ut_host[__UT_HOSTSIZE]; /* Hostname for remote login. */
+ 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. */
diff --git a/sysdeps/unix/sysv/linux/s390/brk.c b/sysdeps/unix/sysv/linux/s390/brk.c
index 249f4936a9..0ab417efdc 100644
--- a/sysdeps/unix/sysv/linux/s390/brk.c
+++ b/sysdeps/unix/sysv/linux/s390/brk.c
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/unix/sysv/linux/s390/dl-procinfo.h b/sysdeps/unix/sysv/linux/s390/dl-procinfo.h
index d1516a05e3..79ae8454a7 100644
--- a/sysdeps/unix/sysv/linux/s390/dl-procinfo.h
+++ b/sysdeps/unix/sysv/linux/s390/dl-procinfo.h
@@ -1,5 +1,5 @@
/* Linux/s390 version of processor capability information handling macros.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Martin Schwidefsky <schwidefsky@de.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DL_S390_PROCINFO_H
#define _DL_S390_PROCINFO_H 1
@@ -32,8 +32,8 @@ _dl_procinfo (unsigned int type, unsigned long int word)
in the kernel sources. */
int i;
- /* Fallback to unknown output mechanism. */
- if (type == AT_HWCAP2)
+ /* Fallback to generic output mechanism. */
+ if (type != AT_HWCAP)
return -1;
_dl_printf ("AT_HWCAP: ");
diff --git a/sysdeps/unix/sysv/linux/s390/elision-conf.c b/sysdeps/unix/sysv/linux/s390/elision-conf.c
index 9fa9747f6f..d4d77a0a4c 100644
--- a/sysdeps/unix/sysv/linux/s390/elision-conf.c
+++ b/sysdeps/unix/sysv/linux/s390/elision-conf.c
@@ -1,5 +1,5 @@
/* Lock elision tunable parameters.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <config.h>
#include <pthreadP.h>
diff --git a/sysdeps/unix/sysv/linux/s390/elision-conf.h b/sysdeps/unix/sysv/linux/s390/elision-conf.h
index f869e1d67b..cf5a64cef1 100644
--- a/sysdeps/unix/sysv/linux/s390/elision-conf.h
+++ b/sysdeps/unix/sysv/linux/s390/elision-conf.h
@@ -1,5 +1,5 @@
/* Lock elision tunable parameters.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _ELISION_CONF_H
#define _ELISION_CONF_H 1
diff --git a/sysdeps/unix/sysv/linux/s390/elision-lock.c b/sysdeps/unix/sysv/linux/s390/elision-lock.c
index e165d9d924..f3536c0cbc 100644
--- a/sysdeps/unix/sysv/linux/s390/elision-lock.c
+++ b/sysdeps/unix/sysv/linux/s390/elision-lock.c
@@ -1,5 +1,5 @@
/* Elided pthread mutex lock.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pthreadP.h>
diff --git a/sysdeps/unix/sysv/linux/s390/elision-timed.c b/sysdeps/unix/sysv/linux/s390/elision-timed.c
index 592d6db64b..e1f0394079 100644
--- a/sysdeps/unix/sysv/linux/s390/elision-timed.c
+++ b/sysdeps/unix/sysv/linux/s390/elision-timed.c
@@ -1,5 +1,5 @@
/* Lock elision timed lock.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,13 +14,13 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <time.h>
#include <elision-conf.h>
#include <lowlevellock.h>
-#define __lll_lock_elision __lll_timedlock_elision
-#define EXTRAARG const struct timespec *t,
+#define __lll_lock_elision __lll_clocklock_elision
+#define EXTRAARG clockid_t clockid, const struct timespec *t,
#undef LLL_LOCK
-#define LLL_LOCK(a, b) lll_timedlock(a, t, b)
+#define LLL_LOCK(a, b) lll_clocklock(a, clockid, t, b)
#include "elision-lock.c"
diff --git a/sysdeps/unix/sysv/linux/s390/elision-trylock.c b/sysdeps/unix/sysv/linux/s390/elision-trylock.c
index 2eb9b36772..46e246ef53 100644
--- a/sysdeps/unix/sysv/linux/s390/elision-trylock.c
+++ b/sysdeps/unix/sysv/linux/s390/elision-trylock.c
@@ -1,5 +1,5 @@
/* Elided pthread mutex trylock.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pthreadP.h>
diff --git a/sysdeps/unix/sysv/linux/s390/elision-unlock.c b/sysdeps/unix/sysv/linux/s390/elision-unlock.c
index ef14f9a744..53aea4b25d 100644
--- a/sysdeps/unix/sysv/linux/s390/elision-unlock.c
+++ b/sysdeps/unix/sysv/linux/s390/elision-unlock.c
@@ -1,5 +1,5 @@
/* Commit an elided pthread lock.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthreadP.h>
#include <lowlevellock.h>
diff --git a/sysdeps/unix/sysv/linux/s390/force-elision.h b/sysdeps/unix/sysv/linux/s390/force-elision.h
index d8a1b9972f..64cbda7e44 100644
--- a/sysdeps/unix/sysv/linux/s390/force-elision.h
+++ b/sysdeps/unix/sysv/linux/s390/force-elision.h
@@ -1,5 +1,5 @@
/* Automatic enabling of elision for mutexes
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,13 +14,49 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Automatically enable elision for existing user lock kinds. */
#define FORCE_ELISION(m, s) \
- if (__pthread_force_elision \
- && (m->__data.__kind & PTHREAD_MUTEX_ELISION_FLAGS_NP) == 0) \
+ if (__pthread_force_elision) \
{ \
- mutex->__data.__kind |= PTHREAD_MUTEX_ELISION_NP; \
- s; \
+ /* See concurrency notes regarding __kind in \
+ struct __pthread_mutex_s in \
+ sysdeps/nptl/bits/thread-shared-types.h. \
+ \
+ There are the following cases for the kind of a mutex \
+ (The mask PTHREAD_MUTEX_ELISION_FLAGS_NP covers the flags \
+ PTHREAD_MUTEX_ELISION_NP and PTHREAD_MUTEX_NO_ELISION_NP where \
+ only one of both flags can be set): \
+ - both flags are not set: \
+ This is the first lock operation for this mutex. Enable \
+ elision as it is not enabled so far. \
+ Note: It can happen that multiple threads are calling e.g. \
+ pthread_mutex_lock at the same time as the first lock \
+ operation for this mutex. Then elision is enabled for this \
+ mutex by multiple threads. Storing with relaxed MO is enough \
+ as all threads will store the same new value for the kind of \
+ the mutex. But we have to ensure that we always use the \
+ elision path regardless if this thread has enabled elision or \
+ another one. \
+ \
+ - PTHREAD_MUTEX_ELISION_NP flag is set: \
+ Elision was already enabled for this mutex by a previous lock \
+ operation. See case above. Just use the elision path. \
+ \
+ - PTHREAD_MUTEX_NO_ELISION_NP flag is set: \
+ Elision was explicitly disabled by pthread_mutexattr_settype. \
+ Do not use the elision path. \
+ Note: The flag PTHREAD_MUTEX_NO_ELISION_NP will never be \
+ changed after mutex initialization. */ \
+ int mutex_kind = atomic_load_relaxed (&((m)->__data.__kind)); \
+ if ((mutex_kind & PTHREAD_MUTEX_ELISION_FLAGS_NP) == 0) \
+ { \
+ mutex_kind |= PTHREAD_MUTEX_ELISION_NP; \
+ atomic_store_relaxed (&((m)->__data.__kind), mutex_kind); \
+ } \
+ if ((mutex_kind & PTHREAD_MUTEX_ELISION_NP) != 0) \
+ { \
+ s; \
+ } \
}
diff --git a/sysdeps/unix/sysv/linux/s390/htm.h b/sysdeps/unix/sysv/linux/s390/htm.h
index b97f15f0c5..b1e63960b1 100644
--- a/sysdeps/unix/sysv/linux/s390/htm.h
+++ b/sysdeps/unix/sysv/linux/s390/htm.h
@@ -1,7 +1,7 @@
/* Shared HTM header. Work around false transactional execution facility
intrinsics.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _HTM_H
#define _HTM_H 1
diff --git a/sysdeps/unix/sysv/linux/s390/init-first.c b/sysdeps/unix/sysv/linux/s390/init-first.c
deleted file mode 100644
index 3a862309bf..0000000000
--- a/sysdeps/unix/sysv/linux/s390/init-first.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Initialization code run first thing by the ELF startup code. Linux/s390.
- Copyright (C) 2008-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifdef SHARED
-# include <dl-vdso.h>
-# include <libc-vdso.h>
-
-long int (*VDSO_SYMBOL(gettimeofday)) (struct timeval *, void *)
- attribute_hidden;
-
-long int (*VDSO_SYMBOL(clock_gettime)) (clockid_t, struct timespec *)
- __attribute__ ((nocommon));
-
-long int (*VDSO_SYMBOL(clock_getres)) (clockid_t, struct timespec *)
- __attribute__ ((nocommon));
-
-long int (*VDSO_SYMBOL(getcpu)) (unsigned *, unsigned *, void *)
- attribute_hidden;
-
-static inline void
-_libc_vdso_platform_setup (void)
-{
- PREPARE_VERSION (linux2629, "LINUX_2.6.29", 123718585);
-
- void *p = _dl_vdso_vsym ("__kernel_gettimeofday", &linux2629);
- PTR_MANGLE (p);
- VDSO_SYMBOL (gettimeofday) = p;
-
- p = _dl_vdso_vsym ("__kernel_clock_gettime", &linux2629);
- PTR_MANGLE (p);
- VDSO_SYMBOL (clock_gettime) = p;
-
- p = _dl_vdso_vsym ("__kernel_clock_getres", &linux2629);
- PTR_MANGLE (p);
- VDSO_SYMBOL (clock_getres) = p;
-
- p = _dl_vdso_vsym ("__kernel_getcpu", &linux2629);
- PTR_MANGLE (p);
- VDSO_SYMBOL (getcpu) = p;
-}
-
-# define VDSO_SETUP _libc_vdso_platform_setup
-#endif
-
-#include <csu/init-first.c>
diff --git a/sysdeps/unix/sysv/linux/s390/ipc_priv.h b/sysdeps/unix/sysv/linux/s390/ipc_priv.h
new file mode 100644
index 0000000000..0a2ae75516
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/s390/ipc_priv.h
@@ -0,0 +1,29 @@
+/* Arch-specific SysV IPC definitions for Linux. s390 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <sysdeps/unix/sysv/linux/ipc_priv.h>
+
+/* The s390 sys_ipc variant has only five parameters instead of six
+ (as for default variant). The difference is the handling of
+ SEMTIMEDOP where on s390 the third parameter is used as a pointer
+ to a struct timespec where the generic variant uses fifth parameter. */
+#undef SEMTIMEDOP_IPC_ARGS
+#define SEMTIMEDOP_IPC_ARGS(__nsops, __sops, __timeout) \
+ (__nsops), (__timeout), (__sops)
+
+#include <ipc_ops.h>
diff --git a/sysdeps/unix/sysv/linux/s390/jmp-unwind.c b/sysdeps/unix/sysv/linux/s390/jmp-unwind.c
index d653938777..bb06e5ab77 100644
--- a/sysdeps/unix/sysv/linux/s390/jmp-unwind.c
+++ b/sysdeps/unix/sysv/linux/s390/jmp-unwind.c
@@ -1,5 +1,5 @@
/* Clean up stack frames unwound by longjmp. Linux/s390 version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <setjmp.h>
#include <stddef.h>
diff --git a/sysdeps/unix/sysv/linux/s390/kernel-features.h b/sysdeps/unix/sysv/linux/s390/kernel-features.h
index f718264926..0fbd16ab85 100644
--- a/sysdeps/unix/sysv/linux/s390/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/s390/kernel-features.h
@@ -1,6 +1,6 @@
/* Set flags signalling availability of kernel features based on given
kernel version number. S/390 version.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -15,10 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-/* S/390 uses socketcall. */
-#define __ASSUME_SOCKETCALL 1
+ <https://www.gnu.org/licenses/>. */
/* Direct socketcalls available with kernel 4.3. */
#if __LINUX_KERNEL_VERSION >= 0x040300
@@ -48,8 +45,14 @@
# undef __ASSUME_SENDTO_SYSCALL
#endif
-/* s390 only supports ipc syscall. */
-#undef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
+/* s390 only supports ipc syscall before 5.1. */
+#if __LINUX_KERNEL_VERSION < 0x050100
+# undef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
+# undef __ASSUME_SYSVIPC_DEFAULT_IPC_64
+#endif
+#ifndef __s390x__
+# define __ASSUME_SYSVIPC_BROKEN_MODE_T
+#endif
#undef __ASSUME_CLONE_DEFAULT
#define __ASSUME_CLONE_BACKWARDS2
diff --git a/sysdeps/unix/sysv/linux/s390/kernel_sigaction.h b/sysdeps/unix/sysv/linux/s390/kernel_sigaction.h
index 7a6a2c4f29..041b763251 100644
--- a/sysdeps/unix/sysv/linux/s390/kernel_sigaction.h
+++ b/sysdeps/unix/sysv/linux/s390/kernel_sigaction.h
@@ -1,32 +1,9 @@
-#include <bits/types/siginfo_t.h>
-
+/* S390 uses the generic Linux UAPI but defines SA_RESTORER. */
#define SA_RESTORER 0x04000000
-/* This is the sigaction structure from the Linux 3.2 kernel. */
-struct kernel_sigaction
-{
- union
- {
- __sighandler_t _sa_handler;
- void (*_sa_sigaction)(int, siginfo_t *, void *);
- } _u;
-#define k_sa_handler _u._sa_handler
- /* The 'struct sigaction' definition in s390 kernel header
- arch/s390/include/uapi/asm/signal.h is used for __NR_rt_sigaction
- on 64 bits and for __NR_sigaction for 31 bits.
-
- The expected layout for __NR_rt_sigaction for 31 bits is either
- 'struct sigaction' from include/linux/signal_types.h or
- 'struct compat_sigaction' from include/linux/compat.h.
-
- So for __NR_rt_sigaction we can use the same layout for both s390x
- and s390. */
- unsigned long sa_flags;
- void (*sa_restorer)(void);
- sigset_t sa_mask;
-};
-
#define SET_SA_RESTORER(kact, act) \
(kact)->sa_restorer = (act)->sa_restorer
#define RESET_SA_RESTORER(act, kact) \
(act)->sa_restorer = (kact)->sa_restorer
+
+#include <sysdeps/unix/sysv/linux/kernel_sigaction.h>
diff --git a/sysdeps/unix/sysv/linux/s390/ldconfig.h b/sysdeps/unix/sysv/linux/s390/ldconfig.h
index 59080e9095..c81f124323 100644
--- a/sysdeps/unix/sysv/linux/s390/ldconfig.h
+++ b/sysdeps/unix/sysv/linux/s390/ldconfig.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/generic/ldconfig.h>
diff --git a/sysdeps/unix/sysv/linux/s390/libc-vdso.h b/sysdeps/unix/sysv/linux/s390/libc-vdso.h
deleted file mode 100644
index 664bd15f3d..0000000000
--- a/sysdeps/unix/sysv/linux/s390/libc-vdso.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Resolve function pointers to VDSO functions.
- Copyright (C) 2008-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-
-#ifndef _LIBC_VDSO_H
-#define _LIBC_VDSO_H
-
-#ifdef SHARED
-
-#include <sysdep-vdso.h>
-
-extern long int (*VDSO_SYMBOL(gettimeofday)) (struct timeval *, void *)
- attribute_hidden;
-
-extern long int (*VDSO_SYMBOL(clock_gettime)) (clockid_t, struct timespec *);
-
-extern long int (*VDSO_SYMBOL(clock_getres)) (clockid_t, struct timespec *);
-
-extern long int (*VDSO_SYMBOL(getcpu)) (unsigned *, unsigned *, void *)
- attribute_hidden;
-#endif
-
-#endif /* _LIBC_VDSO_H */
diff --git a/sysdeps/unix/sysv/linux/s390/longjmp_chk.c b/sysdeps/unix/sysv/linux/s390/longjmp_chk.c
index 5c4b59284b..49cc6dea17 100644
--- a/sysdeps/unix/sysv/linux/s390/longjmp_chk.c
+++ b/sysdeps/unix/sysv/linux/s390/longjmp_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2014-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
Versioned copy of debug/longjmp_chk.c modified for versioning
the reverted jmpbuf extension. */
diff --git a/sysdeps/unix/sysv/linux/s390/lowlevellock.h b/sysdeps/unix/sysv/linux/s390/lowlevellock.h
index bd4b312d25..d6a832bca0 100644
--- a/sysdeps/unix/sysv/linux/s390/lowlevellock.h
+++ b/sysdeps/unix/sysv/linux/s390/lowlevellock.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Martin Schwidefsky <schwidefsky@de.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _S390_LOWLEVELLOCK_H
#define _S390_LOWLEVELLOCK_H 1
@@ -22,12 +22,13 @@
#include <sysdeps/nptl/lowlevellock.h>
/* Transactional lock elision definitions. */
-extern int __lll_timedlock_elision
- (int *futex, short *adapt_count, const struct timespec *timeout, int private)
+extern int __lll_clocklock_elision
+ (int *futex, short *adapt_count,
+ clockid_t clockid, const struct timespec *timeout, int private)
attribute_hidden;
-# define lll_timedlock_elision(futex, adapt_count, timeout, private) \
- __lll_timedlock_elision(&(futex), &(adapt_count), timeout, private)
+# define lll_clocklock_elision(futex, adapt_count, clockid, timeout, private) \
+ __lll_clocklock_elision (&(futex), &(adapt_count), clockid, timeout, private)
extern int __lll_lock_elision (int *futex, short *adapt_count, int private)
attribute_hidden;
diff --git a/sysdeps/unix/sysv/linux/s390/mmap_internal.h b/sysdeps/unix/sysv/linux/s390/mmap_internal.h
index a0777c2682..8119826158 100644
--- a/sysdeps/unix/sysv/linux/s390/mmap_internal.h
+++ b/sysdeps/unix/sysv/linux/s390/mmap_internal.h
@@ -1,5 +1,5 @@
/* mmap - map files or devices into memory. Linux/s390 version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef MMAP_S390_INTERNAL_H
# define MMAP_S390_INTERNAL_H
diff --git a/sysdeps/unix/sysv/linux/s390/pt-longjmp.c b/sysdeps/unix/sysv/linux/s390/pt-longjmp.c
index bd41a84a18..5312d2ea89 100644
--- a/sysdeps/unix/sysv/linux/s390/pt-longjmp.c
+++ b/sysdeps/unix/sysv/linux/s390/pt-longjmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2014-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
Versioned copy of nptl/pt-longjmp.c modified for versioning
the reverted jmpbuf extension. */
diff --git a/sysdeps/unix/sysv/linux/s390/pt-vfork.S b/sysdeps/unix/sysv/linux/s390/pt-vfork.S
deleted file mode 100644
index 65cc3823ac..0000000000
--- a/sysdeps/unix/sysv/linux/s390/pt-vfork.S
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/alpha/pt-vfork.S>
diff --git a/sysdeps/unix/sysv/linux/s390/pthread_mutex_cond_lock.c b/sysdeps/unix/sysv/linux/s390/pthread_mutex_cond_lock.c
index f93d3e4000..ade5c76eac 100644
--- a/sysdeps/unix/sysv/linux/s390/pthread_mutex_cond_lock.c
+++ b/sysdeps/unix/sysv/linux/s390/pthread_mutex_cond_lock.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2014-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* The cond lock is not actually elided yet, but we still need to handle
already elided locks. */
diff --git a/sysdeps/unix/sysv/linux/s390/pthread_mutex_lock.c b/sysdeps/unix/sysv/linux/s390/pthread_mutex_lock.c
index ca4665441e..4ee7ed0d82 100644
--- a/sysdeps/unix/sysv/linux/s390/pthread_mutex_lock.c
+++ b/sysdeps/unix/sysv/linux/s390/pthread_mutex_lock.c
@@ -1,5 +1,5 @@
/* Elided version of pthread_mutex_lock.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <elision-conf.h>
#include <force-elision.h>
diff --git a/sysdeps/unix/sysv/linux/s390/pthread_mutex_timedlock.c b/sysdeps/unix/sysv/linux/s390/pthread_mutex_timedlock.c
index b4a9837244..1f5ba84c84 100644
--- a/sysdeps/unix/sysv/linux/s390/pthread_mutex_timedlock.c
+++ b/sysdeps/unix/sysv/linux/s390/pthread_mutex_timedlock.c
@@ -1,5 +1,5 @@
/* Elided version of pthread_mutex_timedlock.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <elision-conf.h>
#include <force-elision.h>
diff --git a/sysdeps/unix/sysv/linux/s390/pthread_mutex_trylock.c b/sysdeps/unix/sysv/linux/s390/pthread_mutex_trylock.c
index 60e66bef5f..60afb20521 100644
--- a/sysdeps/unix/sysv/linux/s390/pthread_mutex_trylock.c
+++ b/sysdeps/unix/sysv/linux/s390/pthread_mutex_trylock.c
@@ -1,5 +1,5 @@
/* Elided version of pthread_mutex_trylock.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <elision-conf.h>
#include <force-elision.h>
diff --git a/sysdeps/unix/sysv/linux/s390/readelflib.c b/sysdeps/unix/sysv/linux/s390/readelflib.c
index e937b75fbb..8fb6116742 100644
--- a/sysdeps/unix/sysv/linux/s390/readelflib.c
+++ b/sysdeps/unix/sysv/linux/s390/readelflib.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
int process_elf32_file (const char *file_name, const char *lib, int *flag,
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/Versions b/sysdeps/unix/sysv/linux/s390/s390-32/Versions
index 1c120e8cbe..99193982a7 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/Versions
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/Versions
@@ -49,6 +49,9 @@ libc {
GLIBC_2.11 {
fallocate64;
}
+ GLIBC_2.31 {
+ msgctl; semctl; shmctl;
+ }
}
libutil {
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c b/sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c
index eb3a7b4776..933db89c79 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/__makecontext_ret.S b/sysdeps/unix/sysv/linux/s390/s390-32/__makecontext_ret.S
index 52c08a0ada..4553aa3e29 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/__makecontext_ret.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/__makecontext_ret.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/clone.S b/sysdeps/unix/sysv/linux/s390/s390-32/clone.S
index 73ccc288a0..d77be6a696 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/clone.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/clone.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* clone is even more special than fork as it mucks with stacks
and invokes a function in the right context after its all over. */
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getcontext.S b/sysdeps/unix/sysv/linux/s390/s390-32/getcontext.S
index b95ea371fd..6b2a9130b1 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/getcontext.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/getcontext.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <features.h>
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutent.c b/sysdeps/unix/sysv/linux/s390/s390-32/getutent.c
index c424774910..c0d8ef31c6 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/getutent.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/getutent.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include <utmp.h>
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutent_r.c b/sysdeps/unix/sysv/linux/s390/s390-32/getutent_r.c
index 2928d63bf9..fca1e1c69c 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/getutent_r.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/getutent_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libc-lock.h>
#include <stdlib.h>
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutid.c b/sysdeps/unix/sysv/linux/s390/s390-32/getutid.c
index 6e36509a0a..0865b8a133 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/getutid.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/getutid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include <utmp.h>
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutid_r.c b/sysdeps/unix/sysv/linux/s390/s390-32/getutid_r.c
index 79f8096688..00db077f34 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/getutid_r.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/getutid_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libc-lock.h>
#include <errno.h>
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutline.c b/sysdeps/unix/sysv/linux/s390/s390-32/getutline.c
index dd1d98726e..a007775eeb 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/getutline.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/getutline.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include <utmp.h>
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutline_r.c b/sysdeps/unix/sysv/linux/s390/s390-32/getutline_r.c
index c216947613..b8347837bd 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/getutline_r.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/getutline_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <libc-lock.h>
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutmp.c b/sysdeps/unix/sysv/linux/s390/s390-32/getutmp.c
index 4d28c4a700..5c9e5f6735 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/getutmp.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/getutmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <utmp.h>
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutxent.c b/sysdeps/unix/sysv/linux/s390/s390-32/getutxent.c
index f60c831fa3..2bc08180d7 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/getutxent.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/getutxent.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <utmp.h>
#include <utmpx.h>
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutxid.c b/sysdeps/unix/sysv/linux/s390/s390-32/getutxid.c
index c03f34b150..8de68910de 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/getutxid.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/getutxid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <utmp.h>
#include <utmpx.h>
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutxline.c b/sysdeps/unix/sysv/linux/s390/s390-32/getutxline.c
index 9786e8bf0e..6fd537ec1f 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/getutxline.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/getutxline.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <utmp.h>
#include <utmpx.h>
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 3a5ec2a1e4..4feca641b0 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -1829,6 +1829,11 @@ GLIBC_2.2 _flushlbf F
GLIBC_2.2 _res_hconf D 0x30
GLIBC_2.2 alphasort64 F
GLIBC_2.2 bind_textdomain_codeset F
+GLIBC_2.2 clock_getcpuclockid F
+GLIBC_2.2 clock_getres F
+GLIBC_2.2 clock_gettime F
+GLIBC_2.2 clock_nanosleep F
+GLIBC_2.2 clock_settime F
GLIBC_2.2 dcngettext F
GLIBC_2.2 dngettext F
GLIBC_2.2 fgetpos F
@@ -2002,6 +2007,9 @@ GLIBC_2.28 thrd_current F
GLIBC_2.28 thrd_equal F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
+GLIBC_2.29 getcpu F
+GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
+GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
GLIBC_2.3 __ctype_b_loc F
GLIBC_2.3 __ctype_tolower_loc F
GLIBC_2.3 __ctype_toupper_loc F
@@ -2156,6 +2164,25 @@ GLIBC_2.3.4 setipv4sourcefilter F
GLIBC_2.3.4 setsourcefilter F
GLIBC_2.3.4 xdr_quad_t F
GLIBC_2.3.4 xdr_u_quad_t F
+GLIBC_2.30 __nldbl_argp_error F
+GLIBC_2.30 __nldbl_argp_failure F
+GLIBC_2.30 __nldbl_err F
+GLIBC_2.30 __nldbl_error F
+GLIBC_2.30 __nldbl_error_at_line F
+GLIBC_2.30 __nldbl_errx F
+GLIBC_2.30 __nldbl_verr F
+GLIBC_2.30 __nldbl_verrx F
+GLIBC_2.30 __nldbl_vwarn F
+GLIBC_2.30 __nldbl_vwarnx F
+GLIBC_2.30 __nldbl_warn F
+GLIBC_2.30 __nldbl_warnx F
+GLIBC_2.30 getdents64 F
+GLIBC_2.30 gettid F
+GLIBC_2.30 tgkill F
+GLIBC_2.30 twalk_r F
+GLIBC_2.31 msgctl F
+GLIBC_2.31 semctl F
+GLIBC_2.31 shmctl F
GLIBC_2.4 _IO_fprintf F
GLIBC_2.4 _IO_printf F
GLIBC_2.4 _IO_sprintf F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
index 643aa55498..cd6be8e584 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
@@ -1033,6 +1033,27 @@ GLIBC_2.28 fmul F
GLIBC_2.28 fmull F
GLIBC_2.28 fsub F
GLIBC_2.28 fsubl F
+GLIBC_2.29 exp F
+GLIBC_2.29 exp2 F
+GLIBC_2.29 log F
+GLIBC_2.29 log2 F
+GLIBC_2.29 pow F
+GLIBC_2.31 totalorder F
+GLIBC_2.31 totalorderf F
+GLIBC_2.31 totalorderf128 F
+GLIBC_2.31 totalorderf32 F
+GLIBC_2.31 totalorderf32x F
+GLIBC_2.31 totalorderf64 F
+GLIBC_2.31 totalorderf64x F
+GLIBC_2.31 totalorderl F
+GLIBC_2.31 totalordermag F
+GLIBC_2.31 totalordermagf F
+GLIBC_2.31 totalordermagf128 F
+GLIBC_2.31 totalordermagf32 F
+GLIBC_2.31 totalordermagf32x F
+GLIBC_2.31 totalordermagf64 F
+GLIBC_2.31 totalordermagf64x F
+GLIBC_2.31 totalordermagl F
GLIBC_2.4 __clog10l F
GLIBC_2.4 __finitel F
GLIBC_2.4 __fpclassifyl F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
index d05468f3b2..bfa1d5e879 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
@@ -42,20 +42,11 @@ GLIBC_2.0 funlockfile F
GLIBC_2.0 longjmp F
GLIBC_2.0 lseek F
GLIBC_2.0 msync F
-GLIBC_2.0 nanosleep F
GLIBC_2.0 open F
GLIBC_2.0 pause F
GLIBC_2.0 pthread_atfork F
-GLIBC_2.0 pthread_attr_destroy F
-GLIBC_2.0 pthread_attr_getdetachstate F
-GLIBC_2.0 pthread_attr_getinheritsched F
-GLIBC_2.0 pthread_attr_getschedparam F
GLIBC_2.0 pthread_attr_getschedpolicy F
GLIBC_2.0 pthread_attr_getscope F
-GLIBC_2.0 pthread_attr_init F
-GLIBC_2.0 pthread_attr_setdetachstate F
-GLIBC_2.0 pthread_attr_setinheritsched F
-GLIBC_2.0 pthread_attr_setschedparam F
GLIBC_2.0 pthread_attr_setschedpolicy F
GLIBC_2.0 pthread_attr_setscope F
GLIBC_2.0 pthread_cancel F
@@ -69,7 +60,6 @@ GLIBC_2.0 pthread_condattr_destroy F
GLIBC_2.0 pthread_condattr_init F
GLIBC_2.0 pthread_create F
GLIBC_2.0 pthread_detach F
-GLIBC_2.0 pthread_equal F
GLIBC_2.0 pthread_exit F
GLIBC_2.0 pthread_getschedparam F
GLIBC_2.0 pthread_getspecific F
@@ -88,7 +78,6 @@ GLIBC_2.0 pthread_mutexattr_getkind_np F
GLIBC_2.0 pthread_mutexattr_init F
GLIBC_2.0 pthread_mutexattr_setkind_np F
GLIBC_2.0 pthread_once F
-GLIBC_2.0 pthread_self F
GLIBC_2.0 pthread_setcancelstate F
GLIBC_2.0 pthread_setcanceltype F
GLIBC_2.0 pthread_setschedparam F
@@ -114,7 +103,6 @@ GLIBC_2.0 siglongjmp F
GLIBC_2.0 sigwait F
GLIBC_2.0 system F
GLIBC_2.0 tcdrain F
-GLIBC_2.0 vfork F
GLIBC_2.0 wait F
GLIBC_2.0 waitpid F
GLIBC_2.0 write F
@@ -124,7 +112,6 @@ GLIBC_2.1 __libc_current_sigrtmin F
GLIBC_2.1 pthread_attr_getguardsize F
GLIBC_2.1 pthread_attr_getstackaddr F
GLIBC_2.1 pthread_attr_getstacksize F
-GLIBC_2.1 pthread_attr_init F
GLIBC_2.1 pthread_attr_setguardsize F
GLIBC_2.1 pthread_attr_setstackaddr F
GLIBC_2.1 pthread_attr_setstacksize F
@@ -155,7 +142,7 @@ GLIBC_2.1 sem_wait F
GLIBC_2.1.1 sem_close F
GLIBC_2.1.1 sem_open F
GLIBC_2.1.1 sem_unlink F
-GLIBC_2.1.2 __vfork F
+GLIBC_2.1.2 __libpthread_version_placeholder F
GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 pthread_getname_np F
GLIBC_2.12 pthread_mutex_consistent F
@@ -207,7 +194,7 @@ GLIBC_2.2 pwrite F
GLIBC_2.2 pwrite64 F
GLIBC_2.2 sem_timedwait F
GLIBC_2.2.3 pthread_getattr_np F
-GLIBC_2.2.6 __nanosleep F
+GLIBC_2.2.6 __libpthread_version_placeholder F
GLIBC_2.28 call_once F
GLIBC_2.28 cnd_broadcast F
GLIBC_2.28 cnd_destroy F
@@ -255,6 +242,12 @@ GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
GLIBC_2.3.4 pthread_setaffinity_np F
GLIBC_2.3.4 pthread_setschedprio F
+GLIBC_2.30 pthread_cond_clockwait F
+GLIBC_2.30 pthread_mutex_clocklock F
+GLIBC_2.30 pthread_rwlock_clockrdlock F
+GLIBC_2.30 pthread_rwlock_clockwrlock F
+GLIBC_2.30 sem_clockwait F
+GLIBC_2.31 pthread_clockjoin_np F
GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 pthread_mutex_getprioceiling F
GLIBC_2.4 pthread_mutex_setprioceiling F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
index 595f1b712a..bb03781dcc 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
@@ -15,11 +15,6 @@ GLIBC_2.1 aio_write F
GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
GLIBC_2.1 lio_listio64 F
-GLIBC_2.2 clock_getcpuclockid F
-GLIBC_2.2 clock_getres F
-GLIBC_2.2 clock_gettime F
-GLIBC_2.2 clock_nanosleep F
-GLIBC_2.2 clock_settime F
GLIBC_2.2 shm_open F
GLIBC_2.2 shm_unlink F
GLIBC_2.2 timer_create F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/lockf64.c b/sysdeps/unix/sysv/linux/s390/s390-32/lockf64.c
deleted file mode 100644
index a88f5a784a..0000000000
--- a/sysdeps/unix/sysv/linux/s390/s390-32/lockf64.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/lockf64.c>
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/login.c b/sysdeps/unix/sysv/linux/s390/s390-32/login.c
index 8d5a8ba8aa..8ecfef0580 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/login.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/login.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/login32.c b/sysdeps/unix/sysv/linux/s390/s390-32/login32.c
index 256d107a23..2dc64f200f 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/login32.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/login32.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <utmp.h>
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/makecontext.c b/sysdeps/unix/sysv/linux/s390/s390-32/makecontext.c
index d9b71cae33..fd94295ecf 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/makecontext.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/makecontext.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libintl.h>
#include <stdarg.h>
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/posix_fadvise64.c b/sysdeps/unix/sysv/linux/s390/s390-32/posix_fadvise64.c
index 9f9326338f..2a371e7d68 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/posix_fadvise64.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/posix_fadvise64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/profil-counter.h b/sysdeps/unix/sysv/linux/s390/s390-32/profil-counter.h
deleted file mode 100644
index a14b89cf08..0000000000
--- a/sysdeps/unix/sysv/linux/s390/s390-32/profil-counter.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Low-level statistical profiling support function. Linux/s390 version.
- Copyright (C) 2000-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <signal.h>
-#include <sigcontextinfo.h>
-
-static void
-__profil_counter (int signo, SIGCONTEXT scp)
-{
- profil_count((void *) ((unsigned long) GET_PC (scp) & 0x7fffffffUL));
-}
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/pututxline.c b/sysdeps/unix/sysv/linux/s390/s390-32/pututxline.c
index 705bf9c236..2732c4bd4e 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/pututxline.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/pututxline.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <utmp.h>
#include <utmpx.h>
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/register-dump.h b/sysdeps/unix/sysv/linux/s390/s390-32/register-dump.h
index e230ac34dd..845cb18a05 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/register-dump.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/register-dump.h
@@ -1,5 +1,5 @@
/* Dump registers.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/uio.h>
#include <_itoa.h>
@@ -45,7 +45,7 @@ hexvalue (unsigned long int value, char *buf, size_t len)
}
static void
-register_dump (int fd, struct sigcontext *ctx)
+register_dump (int fd, struct ucontext_t *ctx)
{
char regs[19][8];
struct iovec iov[40];
@@ -61,24 +61,24 @@ register_dump (int fd, struct sigcontext *ctx)
++nr
/* Generate strings of register contents. */
- hexvalue (ctx->sregs->regs.gprs[0], regs[0], 8);
- hexvalue (ctx->sregs->regs.gprs[1], regs[1], 8);
- hexvalue (ctx->sregs->regs.gprs[2], regs[2], 8);
- hexvalue (ctx->sregs->regs.gprs[3], regs[3], 8);
- hexvalue (ctx->sregs->regs.gprs[4], regs[4], 8);
- hexvalue (ctx->sregs->regs.gprs[5], regs[5], 8);
- hexvalue (ctx->sregs->regs.gprs[6], regs[6], 8);
- hexvalue (ctx->sregs->regs.gprs[7], regs[7], 8);
- hexvalue (ctx->sregs->regs.gprs[8], regs[8], 8);
- hexvalue (ctx->sregs->regs.gprs[9], regs[9], 8);
- hexvalue (ctx->sregs->regs.gprs[10], regs[10], 8);
- hexvalue (ctx->sregs->regs.gprs[11], regs[11], 8);
- hexvalue (ctx->sregs->regs.gprs[12], regs[12], 8);
- hexvalue (ctx->sregs->regs.gprs[13], regs[13], 8);
- hexvalue (ctx->sregs->regs.gprs[14], regs[14], 8);
- hexvalue (ctx->sregs->regs.gprs[15], regs[15], 8);
- hexvalue (ctx->sregs->regs.psw.mask, regs[16], 8);
- hexvalue (ctx->sregs->regs.psw.addr, regs[17], 8);
+ hexvalue (ctx->uc_mcontext.gregs[0], regs[0], 8);
+ hexvalue (ctx->uc_mcontext.gregs[1], regs[1], 8);
+ hexvalue (ctx->uc_mcontext.gregs[2], regs[2], 8);
+ hexvalue (ctx->uc_mcontext.gregs[3], regs[3], 8);
+ hexvalue (ctx->uc_mcontext.gregs[4], regs[4], 8);
+ hexvalue (ctx->uc_mcontext.gregs[5], regs[5], 8);
+ hexvalue (ctx->uc_mcontext.gregs[6], regs[6], 8);
+ hexvalue (ctx->uc_mcontext.gregs[7], regs[7], 8);
+ hexvalue (ctx->uc_mcontext.gregs[8], regs[8], 8);
+ hexvalue (ctx->uc_mcontext.gregs[9], regs[9], 8);
+ hexvalue (ctx->uc_mcontext.gregs[10], regs[10], 8);
+ hexvalue (ctx->uc_mcontext.gregs[11], regs[11], 8);
+ hexvalue (ctx->uc_mcontext.gregs[12], regs[12], 8);
+ hexvalue (ctx->uc_mcontext.gregs[13], regs[13], 8);
+ hexvalue (ctx->uc_mcontext.gregs[14], regs[14], 8);
+ hexvalue (ctx->uc_mcontext.gregs[15], regs[15], 8);
+ hexvalue (ctx->uc_mcontext.psw.mask, regs[16], 8);
+ hexvalue (ctx->uc_mcontext.psw.addr, regs[17], 8);
/* Generate the output. */
ADD_STRING ("Register dump:\n\n GPR0: ");
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/setcontext.S b/sysdeps/unix/sysv/linux/s390/s390-32/setcontext.S
index 2dc42ab243..77c9c26d20 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/setcontext.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/setcontext.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <features.h>
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S b/sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S
index 52e69b2ece..8a50e1cc36 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <features.h>
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/syscall.S b/sysdeps/unix/sysv/linux/s390/s390-32/syscall.S
index a78188be4f..06280992ab 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/syscall.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
@@ -22,37 +22,19 @@
more information about the value -4095 used below.*/
ENTRY (syscall)
- /* Save registers and setup stack. */
- stm %r6,%r15,24(%r15) /* save registers */
- cfi_offset (%r15, -36)
- cfi_offset (%r14, -40)
- cfi_offset (%r13, -44)
- cfi_offset (%r12, -48)
- cfi_offset (%r11, -52)
- cfi_offset (%r10, -56)
- cfi_offset (%r9, -60)
- cfi_offset (%r8, -64)
+ stm %r6,%r7,24(%r15) /* save registers */
cfi_offset (%r7, -68)
cfi_offset (%r6, -72)
- lr %r1,%r15
- l %r0,4(0,%r15) /* load eos */
- ahi %r15,-96 /* buy stack space */
- cfi_adjust_cfa_offset (96)
- st %r1,0(0,%r15) /* store back chain */
- st %r0,4(0,%r15) /* store eos */
lr %r1,%r2 /* move syscall number */
lr %r2,%r3 /* first parameter */
lr %r3,%r4 /* second parameter */
lr %r4,%r5 /* third parameter */
lr %r5,%r6 /* fourth parameter */
- l %r6,192(%r15) /* fifth parameter */
- l %r7,196(%r15) /* sixth parameter */
-
+ lm %r6,%r7,96(%r15) /* fifth / sixth parameter */
svc 0
- l %r15,0(%r15) /* load back chain. */
- cfi_adjust_cfa_offset (-96)
- lm %r6,%r15,24(%r15) /* load registers. */
+
+ lm %r6,%r7,24(%r15) /* load registers. */
lhi %r0,-4095
clr %r2,%r0 /* check R2 for error */
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S b/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S
index afc0f66a5f..8d814c02c9 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <tls.h>
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h b/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h
index 0d683a5bcb..bdede296a5 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
This file is part of the GNU C Library.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LINUX_S390_SYSDEP_H
#define _LINUX_S390_SYSDEP_H
#include <sysdeps/s390/s390-32/sysdep.h>
#include <sysdeps/unix/sysdep.h>
+#include <sysdeps/unix/sysv/linux/s390/sysdep.h>
#include <sysdeps/unix/sysv/linux/sysdep.h>
#include <dl-sysdep.h> /* For RTLD_PRIVATE_ERRNO. */
#include <tls.h>
@@ -233,9 +234,9 @@
#undef INTERNAL_SYSCALL
#define INTERNAL_SYSCALL(name, err, nr, args...) \
- (((__NR_##name) < 256) ? \
- INTERNAL_SYSCALL_DIRECT(name, err, nr, args) : \
- INTERNAL_SYSCALL_SVC0(name, err,nr, args))
+ (((__NR_##name) < 256) \
+ ? INTERNAL_SYSCALL_DIRECT(name, err, nr, args) \
+ : INTERNAL_SYSCALL_SVC0(name, err,nr, args))
#undef INTERNAL_SYSCALL_ERROR_P
#define INTERNAL_SYSCALL_ERROR_P(val, err) \
@@ -271,12 +272,6 @@
#define ASMFMT_5 , "0" (gpr2), "d" (gpr3), "d" (gpr4), "d" (gpr5), "d" (gpr6)
#define ASMFMT_6 , "0" (gpr2), "d" (gpr3), "d" (gpr4), "d" (gpr5), "d" (gpr6), "d" (gpr7)
-/* List of system calls which are supported as vsyscalls. */
-#define HAVE_CLOCK_GETRES_VSYSCALL 1
-#define HAVE_CLOCK_GETTIME_VSYSCALL 1
-#define HAVE_GETTIMEOFDAY_VSYSCALL 1
-#define HAVE_GETCPU_VSYSCALL 1
-
/* Pointer mangling support. */
#if IS_IN (rtld)
/* We cannot use the thread descriptor because in ld.so we use setjmp
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/updwtmp.c b/sysdeps/unix/sysv/linux/s390/s390-32/updwtmp.c
index b27ae89cc4..9c862b8a78 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/updwtmp.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/updwtmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <utmp.h>
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/updwtmpx.c b/sysdeps/unix/sysv/linux/s390/s390-32/updwtmpx.c
index 2f4c82d408..04f611ac3d 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/updwtmpx.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/updwtmpx.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <utmp.h>
#include <utmpx.h>
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/utmp-compat.h b/sysdeps/unix/sysv/linux/s390/s390-32/utmp-compat.h
index e942645ad8..9544478783 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/utmp-compat.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/utmp-compat.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This macro defines the glibc version tag at which the 64 bit struct
utmp functions have been added to the 32 bit glibc. */
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/utmp-convert.h b/sysdeps/unix/sysv/linux/s390/s390-32/utmp-convert.h
index 877cbc4517..7100252a90 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/utmp-convert.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/utmp-convert.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file provides functions converting between the 32 and 64 bit
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c b/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c
index 8a72ea61b7..9e1d7ffca1 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <utmp.h>
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.h b/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.h
index 05c5dc3b8b..87037f6ab6 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.h
@@ -1,5 +1,5 @@
/* The `struct utmp' type, describing entries in the utmp file. GNU version.
- Copyright (C) 1993-2018 Free Software Foundation, Inc.
+ Copyright (C) 1993-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _UTMP32_H
#define _UTMP32_H 1
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/utmpx-convert.h b/sysdeps/unix/sysv/linux/s390/s390-32/utmpx-convert.h
index 74397aabf6..a1738b739d 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/utmpx-convert.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/utmpx-convert.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file provides functions converting between the 32 and 64 bit
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.c b/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.c
index 0b1978991f..c5160b8417 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/types.h>
#include <utmp.h>
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.h b/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.h
index 37767d1e42..70040d0cd3 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.h
@@ -1,5 +1,5 @@
/* The `struct utmp' type, describing entries in the utmp file. GNU version.
- Copyright (C) 1993-2018 Free Software Foundation, Inc.
+ Copyright (C) 1993-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _UTMPX32_H
#define _UTMPX32_H 1
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S b/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S
index 58b7416073..eb3fa4d62e 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#define _ERRNO_H 1
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c b/sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c
index 7caab15e15..aaa8eb5728 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/__makecontext_ret.S b/sysdeps/unix/sysv/linux/s390/s390-64/__makecontext_ret.S
index d50115d7ad..718b953cb4 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/__makecontext_ret.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/__makecontext_ret.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/clone.S b/sysdeps/unix/sysv/linux/s390/s390-64/clone.S
index 18e2d943d6..9a8b791432 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/clone.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/clone.S
@@ -1,5 +1,5 @@
/* Wrapper around clone system call. 64 bit S/390 version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* clone is even more special than fork as it mucks with stacks
and invokes a function in the right context after its all over. */
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/dl-cache.h b/sysdeps/unix/sysv/linux/s390/s390-64/dl-cache.h
index b6d77a3a4c..5a4df8237b 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/dl-cache.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/dl-cache.h
@@ -1,5 +1,5 @@
/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _DL_CACHE_DEFAULT_ID 0x403
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/getcontext.S b/sysdeps/unix/sysv/linux/s390/s390-64/getcontext.S
index e8b15b899a..4bd62a30e2 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/getcontext.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/getcontext.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <features.h>
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/kernel_stat.h b/sysdeps/unix/sysv/linux/s390/s390-64/kernel_stat.h
index 98adda41fc..898cfd12a3 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/kernel_stat.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/kernel_stat.h
@@ -1,5 +1,5 @@
/* Definition of `struct stat' used in the kernel.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define STAT_IS_KERNEL_STAT 1
#define XSTAT_IS_XSTAT64 1
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 3b5465558b..efe588a072 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -632,6 +632,11 @@ GLIBC_2.2 clntudp_bufcreate F
GLIBC_2.2 clntudp_create F
GLIBC_2.2 clntunix_create F
GLIBC_2.2 clock F
+GLIBC_2.2 clock_getcpuclockid F
+GLIBC_2.2 clock_getres F
+GLIBC_2.2 clock_gettime F
+GLIBC_2.2 clock_nanosleep F
+GLIBC_2.2 clock_settime F
GLIBC_2.2 clone F
GLIBC_2.2 close F
GLIBC_2.2 closedir F
@@ -1907,6 +1912,10 @@ GLIBC_2.28 thrd_current F
GLIBC_2.28 thrd_equal F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
+GLIBC_2.29 __fentry__ F
+GLIBC_2.29 getcpu F
+GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
+GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
GLIBC_2.3 __ctype_b_loc F
GLIBC_2.3 __ctype_tolower_loc F
GLIBC_2.3 __ctype_toupper_loc F
@@ -2059,6 +2068,22 @@ GLIBC_2.3.4 setipv4sourcefilter F
GLIBC_2.3.4 setsourcefilter F
GLIBC_2.3.4 xdr_quad_t F
GLIBC_2.3.4 xdr_u_quad_t F
+GLIBC_2.30 __nldbl_argp_error F
+GLIBC_2.30 __nldbl_argp_failure F
+GLIBC_2.30 __nldbl_err F
+GLIBC_2.30 __nldbl_error F
+GLIBC_2.30 __nldbl_error_at_line F
+GLIBC_2.30 __nldbl_errx F
+GLIBC_2.30 __nldbl_verr F
+GLIBC_2.30 __nldbl_verrx F
+GLIBC_2.30 __nldbl_vwarn F
+GLIBC_2.30 __nldbl_vwarnx F
+GLIBC_2.30 __nldbl_warn F
+GLIBC_2.30 __nldbl_warnx F
+GLIBC_2.30 getdents64 F
+GLIBC_2.30 gettid F
+GLIBC_2.30 tgkill F
+GLIBC_2.30 twalk_r F
GLIBC_2.4 _IO_fprintf F
GLIBC_2.4 _IO_printf F
GLIBC_2.4 _IO_sprintf F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
index 8cc5fdfc0b..5291424feb 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
@@ -1033,6 +1033,27 @@ GLIBC_2.28 fmul F
GLIBC_2.28 fmull F
GLIBC_2.28 fsub F
GLIBC_2.28 fsubl F
+GLIBC_2.29 exp F
+GLIBC_2.29 exp2 F
+GLIBC_2.29 log F
+GLIBC_2.29 log2 F
+GLIBC_2.29 pow F
+GLIBC_2.31 totalorder F
+GLIBC_2.31 totalorderf F
+GLIBC_2.31 totalorderf128 F
+GLIBC_2.31 totalorderf32 F
+GLIBC_2.31 totalorderf32x F
+GLIBC_2.31 totalorderf64 F
+GLIBC_2.31 totalorderf64x F
+GLIBC_2.31 totalorderl F
+GLIBC_2.31 totalordermag F
+GLIBC_2.31 totalordermagf F
+GLIBC_2.31 totalordermagf128 F
+GLIBC_2.31 totalordermagf32 F
+GLIBC_2.31 totalordermagf32x F
+GLIBC_2.31 totalordermagf64 F
+GLIBC_2.31 totalordermagf64x F
+GLIBC_2.31 totalordermagl F
GLIBC_2.4 __clog10l F
GLIBC_2.4 __finitel F
GLIBC_2.4 __fpclassifyl F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
index e8161aa747..8cf9afe511 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
@@ -48,7 +48,6 @@ GLIBC_2.2 __read F
GLIBC_2.2 __res_state F
GLIBC_2.2 __send F
GLIBC_2.2 __sigaction F
-GLIBC_2.2 __vfork F
GLIBC_2.2 __wait F
GLIBC_2.2 __write F
GLIBC_2.2 _pthread_cleanup_pop F
@@ -68,28 +67,19 @@ GLIBC_2.2 longjmp F
GLIBC_2.2 lseek F
GLIBC_2.2 lseek64 F
GLIBC_2.2 msync F
-GLIBC_2.2 nanosleep F
GLIBC_2.2 open F
GLIBC_2.2 open64 F
GLIBC_2.2 pause F
GLIBC_2.2 pread F
GLIBC_2.2 pread64 F
GLIBC_2.2 pthread_atfork F
-GLIBC_2.2 pthread_attr_destroy F
-GLIBC_2.2 pthread_attr_getdetachstate F
GLIBC_2.2 pthread_attr_getguardsize F
-GLIBC_2.2 pthread_attr_getinheritsched F
-GLIBC_2.2 pthread_attr_getschedparam F
GLIBC_2.2 pthread_attr_getschedpolicy F
GLIBC_2.2 pthread_attr_getscope F
GLIBC_2.2 pthread_attr_getstack F
GLIBC_2.2 pthread_attr_getstackaddr F
GLIBC_2.2 pthread_attr_getstacksize F
-GLIBC_2.2 pthread_attr_init F
-GLIBC_2.2 pthread_attr_setdetachstate F
GLIBC_2.2 pthread_attr_setguardsize F
-GLIBC_2.2 pthread_attr_setinheritsched F
-GLIBC_2.2 pthread_attr_setschedparam F
GLIBC_2.2 pthread_attr_setschedpolicy F
GLIBC_2.2 pthread_attr_setscope F
GLIBC_2.2 pthread_attr_setstack F
@@ -114,7 +104,6 @@ GLIBC_2.2 pthread_condattr_init F
GLIBC_2.2 pthread_condattr_setpshared F
GLIBC_2.2 pthread_create F
GLIBC_2.2 pthread_detach F
-GLIBC_2.2 pthread_equal F
GLIBC_2.2 pthread_exit F
GLIBC_2.2 pthread_getconcurrency F
GLIBC_2.2 pthread_getcpuclockid F
@@ -155,7 +144,6 @@ GLIBC_2.2 pthread_rwlockattr_getpshared F
GLIBC_2.2 pthread_rwlockattr_init F
GLIBC_2.2 pthread_rwlockattr_setkind_np F
GLIBC_2.2 pthread_rwlockattr_setpshared F
-GLIBC_2.2 pthread_self F
GLIBC_2.2 pthread_setcancelstate F
GLIBC_2.2 pthread_setcanceltype F
GLIBC_2.2 pthread_setconcurrency F
@@ -194,12 +182,11 @@ GLIBC_2.2 siglongjmp F
GLIBC_2.2 sigwait F
GLIBC_2.2 system F
GLIBC_2.2 tcdrain F
-GLIBC_2.2 vfork F
GLIBC_2.2 wait F
GLIBC_2.2 waitpid F
GLIBC_2.2 write F
GLIBC_2.2.3 pthread_getattr_np F
-GLIBC_2.2.6 __nanosleep F
+GLIBC_2.2.6 __libpthread_version_placeholder F
GLIBC_2.28 call_once F
GLIBC_2.28 cnd_broadcast F
GLIBC_2.28 cnd_destroy F
@@ -247,6 +234,12 @@ GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
GLIBC_2.3.4 pthread_setaffinity_np F
GLIBC_2.3.4 pthread_setschedprio F
+GLIBC_2.30 pthread_cond_clockwait F
+GLIBC_2.30 pthread_mutex_clocklock F
+GLIBC_2.30 pthread_rwlock_clockrdlock F
+GLIBC_2.30 pthread_rwlock_clockwrlock F
+GLIBC_2.30 sem_clockwait F
+GLIBC_2.31 pthread_clockjoin_np F
GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 pthread_mutex_getprioceiling F
GLIBC_2.4 pthread_mutex_setprioceiling F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
index 41be3bb84b..5905498a48 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
@@ -13,11 +13,6 @@ GLIBC_2.2 aio_suspend F
GLIBC_2.2 aio_suspend64 F
GLIBC_2.2 aio_write F
GLIBC_2.2 aio_write64 F
-GLIBC_2.2 clock_getcpuclockid F
-GLIBC_2.2 clock_getres F
-GLIBC_2.2 clock_gettime F
-GLIBC_2.2 clock_nanosleep F
-GLIBC_2.2 clock_settime F
GLIBC_2.2 lio_listio F
GLIBC_2.2 lio_listio64 F
GLIBC_2.2 shm_open F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/makecontext.c b/sysdeps/unix/sysv/linux/s390/s390-64/makecontext.c
index f3dae0ad70..d30a80f61b 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/makecontext.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/makecontext.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libintl.h>
#include <stdarg.h>
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/profil-counter.h b/sysdeps/unix/sysv/linux/s390/s390-64/profil-counter.h
deleted file mode 100644
index 34496152c7..0000000000
--- a/sysdeps/unix/sysv/linux/s390/s390-64/profil-counter.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Low-level statistical profiling support function. Linux/s390 version.
- Copyright (C) 2000-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <signal.h>
-#include <sigcontextinfo.h>
-
-static void
-__profil_counter (int signo, SIGCONTEXT scp)
-{
- profil_count ((void *) GET_PC (scp));
-}
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/register-dump.h b/sysdeps/unix/sysv/linux/s390/s390-64/register-dump.h
index fc0af284de..93c20c1bef 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/register-dump.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/register-dump.h
@@ -1,5 +1,5 @@
/* Dump registers. 64 bit S/390 version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/uio.h>
#include <_itoa.h>
@@ -48,7 +48,7 @@ hexvalue (unsigned long int value, char *buf, size_t len)
}
static void
-register_dump (int fd, struct sigcontext *ctx)
+register_dump (int fd, struct ucontext_t *ctx)
{
char regs[19][16];
struct iovec iov[40];
@@ -64,24 +64,24 @@ register_dump (int fd, struct sigcontext *ctx)
++nr
/* Generate strings of register contents. */
- hexvalue (ctx->sregs->regs.gprs[0], regs[0], 16);
- hexvalue (ctx->sregs->regs.gprs[1], regs[1], 16);
- hexvalue (ctx->sregs->regs.gprs[2], regs[2], 16);
- hexvalue (ctx->sregs->regs.gprs[3], regs[3], 16);
- hexvalue (ctx->sregs->regs.gprs[4], regs[4], 16);
- hexvalue (ctx->sregs->regs.gprs[5], regs[5], 16);
- hexvalue (ctx->sregs->regs.gprs[6], regs[6], 16);
- hexvalue (ctx->sregs->regs.gprs[7], regs[7], 16);
- hexvalue (ctx->sregs->regs.gprs[8], regs[8], 16);
- hexvalue (ctx->sregs->regs.gprs[9], regs[9], 16);
- hexvalue (ctx->sregs->regs.gprs[10], regs[10], 16);
- hexvalue (ctx->sregs->regs.gprs[11], regs[11], 16);
- hexvalue (ctx->sregs->regs.gprs[12], regs[12], 16);
- hexvalue (ctx->sregs->regs.gprs[13], regs[13], 16);
- hexvalue (ctx->sregs->regs.gprs[14], regs[14], 16);
- hexvalue (ctx->sregs->regs.gprs[15], regs[15], 16);
- hexvalue (ctx->sregs->regs.psw.mask, regs[16], 16);
- hexvalue (ctx->sregs->regs.psw.addr, regs[17], 16);
+ hexvalue (ctx->uc_mcontext.gregs[0], regs[0], 16);
+ hexvalue (ctx->uc_mcontext.gregs[1], regs[1], 16);
+ hexvalue (ctx->uc_mcontext.gregs[2], regs[2], 16);
+ hexvalue (ctx->uc_mcontext.gregs[3], regs[3], 16);
+ hexvalue (ctx->uc_mcontext.gregs[4], regs[4], 16);
+ hexvalue (ctx->uc_mcontext.gregs[5], regs[5], 16);
+ hexvalue (ctx->uc_mcontext.gregs[6], regs[6], 16);
+ hexvalue (ctx->uc_mcontext.gregs[7], regs[7], 16);
+ hexvalue (ctx->uc_mcontext.gregs[8], regs[8], 16);
+ hexvalue (ctx->uc_mcontext.gregs[9], regs[9], 16);
+ hexvalue (ctx->uc_mcontext.gregs[10], regs[10], 16);
+ hexvalue (ctx->uc_mcontext.gregs[11], regs[11], 16);
+ hexvalue (ctx->uc_mcontext.gregs[12], regs[12], 16);
+ hexvalue (ctx->uc_mcontext.gregs[13], regs[13], 16);
+ hexvalue (ctx->uc_mcontext.gregs[14], regs[14], 16);
+ hexvalue (ctx->uc_mcontext.gregs[15], regs[15], 16);
+ hexvalue (ctx->uc_mcontext.psw.mask, regs[16], 16);
+ hexvalue (ctx->uc_mcontext.psw.addr, regs[17], 16);
/* Generate the output. */
ADD_STRING ("Register dump:\n\n GPR0: ");
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/setcontext.S b/sysdeps/unix/sysv/linux/s390/s390-64/setcontext.S
index 180055dec4..10e506fe00 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/setcontext.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/setcontext.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <features.h>
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/sigprocmask.c b/sysdeps/unix/sysv/linux/s390/s390-64/sigprocmask.c
index 81352fe96a..f0eb099748 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/sigprocmask.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/sigprocmask.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* 64 bit Linux for S/390 only has rt signals, thus we do not even want to try
falling back to the old style signals as the default Linux handler does. */
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/swapcontext.S b/sysdeps/unix/sysv/linux/s390/s390-64/swapcontext.S
index 499f6e97a5..9dd618d41a 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/swapcontext.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <features.h>
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/syscall.S b/sysdeps/unix/sysv/linux/s390/s390-64/syscall.S
index c8b2650115..bcffab6f4e 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/syscall.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
@@ -22,41 +22,22 @@
more information about the value -4095 used below.*/
ENTRY (syscall)
- /* Save registers and setup stack. */
- stmg %r6,%r15,48(%r15) /* Save registers. */
- cfi_offset (%r15,-40)
- cfi_offset (%r14,-48)
- cfi_offset (%r13,-56)
- cfi_offset (%r12,-64)
- cfi_offset (%r11,-72)
- cfi_offset (%r10,-80)
- cfi_offset (%r9,-88)
- cfi_offset (%r8,-96)
+ stmg %r6,%r7,48(%r15) /* Save registers. */
cfi_offset (%r7,-104)
cfi_offset (%r6,-112)
- lgr %r1,%r15
- lg %r0,8(%r15) /* Load eos. */
- aghi %r15,-160 /* Buy stack space. */
- cfi_adjust_cfa_offset (160)
- stg %r1,0(%r15) /* Store back chain. */
- stg %r0,8(%r15) /* Store eos. */
lgr %r1,%r2 /* Move syscall number. */
lgr %r2,%r3 /* First parameter. */
lgr %r3,%r4 /* Second parameter. */
lgr %r4,%r5 /* Third parameter. */
lgr %r5,%r6 /* Fourth parameter. */
- lg %r6,320(%r15) /* Fifth parameter. */
- lg %r7,328(%r15) /* Sixth parameter. */
-
+ lmg %r6,%r7,160(%r15) /* Fifth / Sixth parameter. */
svc 0
- lg %r15,0(%r15) /* Load back chain. */
- cfi_adjust_cfa_offset (-160)
- lmg %r6,%r15,48(%r15) /* Load registers. */
+
+ lmg %r6,%r7,48(%r15) /* Load registers. */
lghi %r0,-4095
clgr %r2,%r0 /* Check R2 for error. */
jgnl SYSCALL_ERROR_LABEL
br %r14 /* Return to caller. */
PSEUDO_END (syscall)
-
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S b/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S
index 151686302a..b17a221cd2 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <tls.h>
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h b/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h
index 0414fc5f2c..5c6b818517 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h
@@ -1,5 +1,5 @@
/* Assembler macros for 64 bit S/390.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
This file is part of the GNU C Library.
@@ -15,13 +15,14 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LINUX_S390_SYSDEP_H
#define _LINUX_S390_SYSDEP_H
#include <sysdeps/s390/s390-64/sysdep.h>
#include <sysdeps/unix/sysdep.h>
+#include <sysdeps/unix/sysv/linux/s390/sysdep.h>
#include <sysdeps/unix/sysv/linux/sysdep.h>
#include <dl-sysdep.h> /* For RTLD_PRIVATE_ERRNO. */
#include <tls.h>
@@ -239,9 +240,9 @@
#undef INTERNAL_SYSCALL
#define INTERNAL_SYSCALL(name, err, nr, args...) \
- (((__NR_##name) < 256) ? \
- INTERNAL_SYSCALL_DIRECT(name, err, nr, args) : \
- INTERNAL_SYSCALL_SVC0(name, err,nr, args))
+ (((__NR_##name) < 256) \
+ ? INTERNAL_SYSCALL_DIRECT(name, err, nr, args) \
+ : INTERNAL_SYSCALL_SVC0(name, err,nr, args))
#undef INTERNAL_SYSCALL_ERROR_P
#define INTERNAL_SYSCALL_ERROR_P(val, err) \
@@ -277,12 +278,6 @@
#define ASMFMT_5 , "0" (gpr2), "d" (gpr3), "d" (gpr4), "d" (gpr5), "d" (gpr6)
#define ASMFMT_6 , "0" (gpr2), "d" (gpr3), "d" (gpr4), "d" (gpr5), "d" (gpr6), "d" (gpr7)
-/* List of system calls which are supported as vsyscalls. */
-#define HAVE_CLOCK_GETRES_VSYSCALL 1
-#define HAVE_CLOCK_GETTIME_VSYSCALL 1
-#define HAVE_GETTIMEOFDAY_VSYSCALL 1
-#define HAVE_GETCPU_VSYSCALL 1
-
#define SINGLE_THREAD_BY_GLOBAL 1
/* Pointer mangling support. */
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S b/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S
index 60030bad95..f46c049848 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#define _ERRNO_H 1
diff --git a/sysdeps/unix/sysv/linux/s390/semtimedop.c b/sysdeps/unix/sysv/linux/s390/semtimedop.c
deleted file mode 100644
index b405e4e73e..0000000000
--- a/sysdeps/unix/sysv/linux/s390/semtimedop.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Martin Schwidefsky <schwidefsky@de.ibm.com>, 2003.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sys/sem.h>
-#include <ipc_priv.h>
-#include <sysdep.h>
-#include <errno.h>
-
-/* Perform user-defined atomical operation of array of semaphores. */
-
-int
-semtimedop (int semid, struct sembuf *sops, size_t nsops,
- const struct timespec *timeout)
-{
- /* The s390 sys_ipc variant has only five parameters instead of six
- (as for default variant) and the only difference is the handling of
- SEMTIMEDOP where on s390 the third parameter is used as a pointer
- to a struct timespec where the generic variant uses fifth parameter. */
- return INLINE_SYSCALL_CALL (ipc, IPCOP_semtimedop, semid, nsops, timeout,
- sops);
-}
diff --git a/sysdeps/unix/sysv/linux/s390/sigcontextinfo.h b/sysdeps/unix/sysv/linux/s390/sigcontextinfo.h
index 0826e58e2a..84a7a50b43 100644
--- a/sysdeps/unix/sysv/linux/s390/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/s390/sigcontextinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
This file is part of the GNU C Library.
@@ -14,9 +14,21 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SIGCONTEXTINFO_H
+#define _SIGCONTEXTINFO_H
#include <signal.h>
-#define SIGCONTEXT struct sigcontext *
-#define GET_PC(ctx) ((void *)((ctx)->sregs->regs.psw.addr))
+static inline uintptr_t
+sigcontext_get_pc (const ucontext_t *ctx)
+{
+#ifdef __s390x__
+ return ctx->uc_mcontext.psw.addr;
+#else
+ return ctx->uc_mcontext.psw.addr & 0x7FFFFFFF;
+#endif
+}
+
+#endif
diff --git a/sysdeps/unix/sysv/linux/s390/sys/elf.h b/sysdeps/unix/sysv/linux/s390/sys/elf.h
index c464a0cf3e..468e1d461a 100644
--- a/sysdeps/unix/sysv/linux/s390/sys/elf.h
+++ b/sysdeps/unix/sysv/linux/s390/sys/elf.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_ELF_H
#define _SYS_ELF_H 1
diff --git a/sysdeps/unix/sysv/linux/s390/sys/procfs.h b/sysdeps/unix/sysv/linux/s390/sys/procfs.h
deleted file mode 100644
index d6b10a9b4f..0000000000
--- a/sysdeps/unix/sysv/linux/s390/sys/procfs.h
+++ /dev/null
@@ -1,176 +0,0 @@
-/* Copyright (C) 2000-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_PROCFS_H
-#define _SYS_PROCFS_H 1
-
-/* This is somewhat modelled after the file of the same name on SVR4
- systems. It provides a definition of the core file format for ELF
- used on Linux. It doesn't have anything to do with the /proc file
- system, even though Linux has one.
-
- Anyway, the whole purpose of this file is for GDB and GDB only.
- Don't read too much into it. Don't use it for anything other than
- GDB unless you know what you are doing. */
-
-#include <features.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#include <sys/user.h>
-#include <sys/ucontext.h>
-
-__BEGIN_DECLS
-
-typedef greg_t elf_greg_t;
-#define ELF_NGREG NGREG
-typedef gregset_t elf_gregset_t;
-typedef fpreg_t elf_fpreg_t;
-typedef fpregset_t elf_fpregset_t;
-
-/* Signal info. */
-struct elf_siginfo
- {
- int si_signo; /* Signal number. */
- int si_code; /* Extra code. */
- int si_errno; /* Errno. */
- };
-
-
-/* Definitions to generate Intel SVR4-like core files. These mostly
- have the same names as the SVR4 types with "elf_" tacked on the
- front to prevent clashes with Linux definitions, and the typedef
- forms have been avoided. This is mostly like the SVR4 structure,
- but more Linuxy, with things that Linux does not support and which
- GDB doesn't really use excluded. */
-
-struct elf_prstatus
- {
- struct elf_siginfo pr_info; /* Info associated with signal. */
- short int pr_cursig; /* Current signal. */
- unsigned long int pr_sigpend; /* Set of pending signals. */
- unsigned long int pr_sighold; /* Set of held signals. */
- __pid_t pr_pid;
- __pid_t pr_ppid;
- __pid_t pr_pgrp;
- __pid_t pr_sid;
- struct timeval pr_utime; /* User time. */
- struct timeval pr_stime; /* System time. */
- struct timeval pr_cutime; /* Cumulative user time. */
- struct timeval pr_cstime; /* Cumulative system time. */
- elf_gregset_t pr_reg; /* GP registers. */
- int pr_fpvalid; /* True if math copro being used. */
- };
-
-
-#define ELF_PRARGSZ (80) /* Number of chars for args. */
-
-struct elf_prpsinfo
- {
- char pr_state; /* Numeric process state. */
- char pr_sname; /* Char for pr_state. */
- char pr_zomb; /* Zombie. */
- char pr_nice; /* Nice val. */
- unsigned long int pr_flag; /* Flags. */
-#if __WORDSIZE == 64
- unsigned int pr_uid;
- unsigned int pr_gid;
-#else
- unsigned short int pr_uid;
- unsigned short int pr_gid;
-#endif
- int pr_pid, pr_ppid, pr_pgrp, pr_sid;
- /* Lots missing */
- char pr_fname[16]; /* Filename of executable. */
- char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
- };
-
-/* The rest of this file provides the types for emulation of the
- Solaris <proc_service.h> interfaces that should be implemented by
- users of libthread_db. */
-
-/* Addresses. */
-typedef void *psaddr_t;
-
-/* Register sets. Linux has different names. */
-typedef elf_gregset_t prgregset_t;
-typedef elf_fpregset_t prfpregset_t;
-
-/* We don't have any differences between processes and threads,
- therefore have only one PID type. */
-typedef __pid_t lwpid_t;
-
-/* Process status and info. In the end we do provide typedefs for them. */
-typedef struct elf_prstatus prstatus_t;
-typedef struct elf_prpsinfo prpsinfo_t;
-
-#if __WORDSIZE == 64
-
-/* Provide 32-bit variants so that BFD can read 32-bit
- core files. */
-#define ELF_NGREG32 36
-typedef unsigned int elf_greg_t32;
-typedef elf_greg_t32
- elf_gregset_t32[ELF_NGREG32] __attribute__ ((__aligned__ (8)));
-typedef elf_fpregset_t elf_fpregset_t32;
-
-struct elf_prstatus32
- {
- struct elf_siginfo pr_info; /* Info associated with signal. */
- short int pr_cursig; /* Current signal. */
- unsigned int pr_sigpend; /* Set of pending signals. */
- unsigned int pr_sighold; /* Set of held signals. */
- __pid_t pr_pid;
- __pid_t pr_ppid;
- __pid_t pr_pgrp;
- __pid_t pr_sid;
- struct
- {
- int tv_sec, tv_usec;
- } pr_utime, /* User time. */
- pr_stime, /* System time. */
- pr_cutime, /* Cumulative user time. */
- pr_cstime; /* Cumulative system time. */
- elf_gregset_t32 pr_reg; /* GP registers. */
- int pr_fpvalid; /* True if math copro being used. */
- };
-
-struct elf_prpsinfo32
- {
- char pr_state; /* Numeric process state. */
- char pr_sname; /* Char for pr_state. */
- char pr_zomb; /* Zombie. */
- char pr_nice; /* Nice val. */
- unsigned int pr_flag; /* Flags. */
- unsigned short int pr_uid;
- unsigned short int pr_gid;
- int pr_pid, pr_ppid, pr_pgrp, pr_sid;
- /* Lots missing */
- char pr_fname[16]; /* Filename of executable. */
- char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
- };
-
-typedef elf_gregset_t32 prgregset32_t;
-typedef elf_fpregset_t32 prfpregset32_t;
-
-typedef struct elf_prstatus32 prstatus32_t;
-typedef struct elf_prpsinfo32 prpsinfo32_t;
-
-#endif
-
-__END_DECLS
-
-#endif /* sys/procfs.h */
diff --git a/sysdeps/unix/sysv/linux/s390/sys/ptrace.h b/sysdeps/unix/sysv/linux/s390/sys/ptrace.h
index d60a034b11..5b4314d0d8 100644
--- a/sysdeps/unix/sysv/linux/s390/sys/ptrace.h
+++ b/sysdeps/unix/sysv/linux/s390/sys/ptrace.h
@@ -1,5 +1,5 @@
/* `ptrace' debugger support interface. Linux/S390 version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Denis Joseph Barrow (djbarrow@de.ibm.com).
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_PTRACE_H
#define _SYS_PTRACE_H 1
@@ -79,6 +79,11 @@ __BEGIN_DECLS
# undef PTRACE_EVENT_SECCOMP
# undef PTRACE_EVENT_STOP
# undef PTRACE_PEEKSIGINFO_SHARED
+# undef PTRACE_GET_SYSCALL_INFO
+# undef PTRACE_SYSCALL_INFO_NONE
+# undef PTRACE_SYSCALL_INFO_ENTRY
+# undef PTRACE_SYSCALL_INFO_EXIT
+# undef PTRACE_SYSCALL_INFO_SECCOMP
#endif
/* Type of the REQUEST argument to `ptrace.' */
enum __ptrace_request
@@ -198,6 +203,10 @@ enum __ptrace_request
PTRACE_SECCOMP_GET_METADATA = 0x420d,
#define PTRACE_SECCOMP_GET_METADATA PTRACE_SECCOMP_GET_METADATA
+ /* Get information about system call. */
+ PTRACE_GET_SYSCALL_INFO = 0x420e,
+#define PTRACE_GET_SYSCALL_INFO PTRACE_GET_SYSCALL_INFO
+
PTRACE_PEEKUSR_AREA = 0x5000,
#define PTRACE_PEEKUSR_AREA PTRACE_PEEKUSR_AREA
diff --git a/sysdeps/unix/sysv/linux/s390/sys/ucontext.h b/sysdeps/unix/sysv/linux/s390/sys/ucontext.h
index 5efdcfb76c..618910467f 100644
--- a/sysdeps/unix/sysv/linux/s390/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/s390/sys/ucontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Denis Joseph Barrow (djbarrow@de.ibm.com).
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_UCONTEXT_H
#define _SYS_UCONTEXT_H 1
diff --git a/sysdeps/unix/sysv/linux/s390/sys/user.h b/sysdeps/unix/sysv/linux/s390/sys/user.h
index 05ecb3c083..b40293bfb9 100644
--- a/sysdeps/unix/sysv/linux/s390/sys/user.h
+++ b/sysdeps/unix/sysv/linux/s390/sys/user.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_USER_H
#define _SYS_USER_H 1
diff --git a/sysdeps/unix/sysv/linux/s390/sysconf.c b/sysdeps/unix/sysv/linux/s390/sysconf.c
index 433b6ef890..c502a35690 100644
--- a/sysdeps/unix/sysv/linux/s390/sysconf.c
+++ b/sysdeps/unix/sysv/linux/s390/sysconf.c
@@ -1,5 +1,5 @@
/* Get system parameters, e.g. cache information. S390/S390x version.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <dl-procinfo.h>
diff --git a/sysdeps/unix/sysv/linux/s390/sysdep.h b/sysdeps/unix/sysv/linux/s390/sysdep.h
new file mode 100644
index 0000000000..97d78e246c
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/s390/sysdep.h
@@ -0,0 +1,26 @@
+/* Syscall definitions, Linux s390 version.
+ 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; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#define VDSO_NAME "LINUX_2.6.29"
+#define VDSO_HASH 123718585
+
+/* List of system calls which are supported as vsyscalls. */
+#define HAVE_CLOCK_GETRES_VSYSCALL "__kernel_clock_getres"
+#define HAVE_CLOCK_GETTIME_VSYSCALL "__kernel_clock_gettime"
+#define HAVE_GETTIMEOFDAY_VSYSCALL "__kernel_gettimeofday"
+#define HAVE_GETCPU_VSYSCALL "__kernel_getcpu"
diff --git a/sysdeps/unix/sysv/linux/s390/system.c b/sysdeps/unix/sysv/linux/s390/system.c
deleted file mode 100644
index d8ef461334..0000000000
--- a/sysdeps/unix/sysv/linux/s390/system.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright (C) 2003-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-/* We have to and actually can handle cancelable system(). The big
- problem: we have to kill the child process if necessary. To do
- this a cleanup handler has to be registered and is has to be able
- to find the PID of the child. The main problem is to reliable have
- the PID when needed. It is not necessary for the parent thread to
- return. It might still be in the kernel when the cancellation
- request comes. Therefore we have to use the clone() calls ability
- to have the kernel write the PID into the user-level variable. */
-#define FORK() \
- INLINE_SYSCALL (clone, 3, 0, CLONE_PARENT_SETTID | SIGCHLD, &pid)
-
-#include "../system.c"
diff --git a/sysdeps/unix/sysv/linux/s390/tst-ptrace-singleblock.c b/sysdeps/unix/sysv/linux/s390/tst-ptrace-singleblock.c
index c4419516f9..5f9329205d 100644
--- a/sysdeps/unix/sysv/linux/s390/tst-ptrace-singleblock.c
+++ b/sysdeps/unix/sysv/linux/s390/tst-ptrace-singleblock.c
@@ -1,5 +1,5 @@
/* Testing s390x PTRACE_SINGLEBLOCK ptrace request.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
diff --git a/sysdeps/unix/sysv/linux/safe-fatal.h b/sysdeps/unix/sysv/linux/safe-fatal.h
index cdcdf52f10..568890f285 100644
--- a/sysdeps/unix/sysv/linux/safe-fatal.h
+++ b/sysdeps/unix/sysv/linux/safe-fatal.h
@@ -1,5 +1,5 @@
/* Crash the process immediately, without possibility of deadlock. Linux.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SAFE_FATAL_H
#define _SAFE_FATAL_H 1
diff --git a/sysdeps/unix/sysv/linux/scandir64.c b/sysdeps/unix/sysv/linux/scandir64.c
index efb502f6e4..9a0d89e721 100644
--- a/sysdeps/unix/sysv/linux/scandir64.c
+++ b/sysdeps/unix/sysv/linux/scandir64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define scandir __no_scandir_decl
#include <dirent.h>
diff --git a/sysdeps/unix/sysv/linux/sched_getaffinity.c b/sysdeps/unix/sysv/linux/sched_getaffinity.c
index a046b3d33b..56af56e9fc 100644
--- a/sysdeps/unix/sysv/linux/sched_getaffinity.c
+++ b/sysdeps/unix/sysv/linux/sched_getaffinity.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sched.h>
diff --git a/sysdeps/unix/sysv/linux/sched_getcpu.c b/sysdeps/unix/sysv/linux/sched_getcpu.c
index b69eeda15c..65dd9fdda7 100644
--- a/sysdeps/unix/sysv/linux/sched_getcpu.c
+++ b/sysdeps/unix/sysv/linux/sched_getcpu.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sched.h>
diff --git a/sysdeps/unix/sysv/linux/sched_setaffinity.c b/sysdeps/unix/sysv/linux/sched_setaffinity.c
index 89cfaa5542..5f2e856a11 100644
--- a/sysdeps/unix/sysv/linux/sched_setaffinity.c
+++ b/sysdeps/unix/sysv/linux/sched_setaffinity.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sched.h>
diff --git a/sysdeps/unix/sysv/linux/scsi/scsi.h b/sysdeps/unix/sysv/linux/scsi/scsi.h
index 38d362e31e..30986a2b90 100644
--- a/sysdeps/unix/sysv/linux/scsi/scsi.h
+++ b/sysdeps/unix/sysv/linux/scsi/scsi.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* This header file contains public constants and structures used by
diff --git a/sysdeps/unix/sysv/linux/scsi/scsi_ioctl.h b/sysdeps/unix/sysv/linux/scsi/scsi_ioctl.h
index e3f9e34fcd..df8e747ad1 100644
--- a/sysdeps/unix/sysv/linux/scsi/scsi_ioctl.h
+++ b/sysdeps/unix/sysv/linux/scsi/scsi_ioctl.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SCSI_IOCTL_H
#define _SCSI_IOCTL_H
diff --git a/sysdeps/unix/sysv/linux/scsi/sg.h b/sysdeps/unix/sysv/linux/scsi/sg.h
index e5d979a9e9..73d7775dec 100644
--- a/sysdeps/unix/sysv/linux/scsi/sg.h
+++ b/sysdeps/unix/sysv/linux/scsi/sg.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
History:
diff --git a/sysdeps/unix/sysv/linux/select.c b/sysdeps/unix/sysv/linux/select.c
index e4124a104e..0498970c47 100644
--- a/sysdeps/unix/sysv/linux/select.c
+++ b/sysdeps/unix/sysv/linux/select.c
@@ -1,5 +1,5 @@
/* Linux select implementation.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/time.h>
#include <sys/types.h>
diff --git a/sysdeps/unix/sysv/linux/semctl.c b/sysdeps/unix/sysv/linux/semctl.c
index e2925447eb..b1733e405f 100644
--- a/sysdeps/unix/sysv/linux/semctl.c
+++ b/sysdeps/unix/sysv/linux/semctl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/sem.h>
#include <stdarg.h>
@@ -33,12 +33,33 @@ union semun
};
#ifndef DEFAULT_VERSION
-# define DEFAULT_VERSION GLIBC_2_2
+# ifndef __ASSUME_SYSVIPC_BROKEN_MODE_T
+# define DEFAULT_VERSION GLIBC_2_2
+# else
+# define DEFAULT_VERSION GLIBC_2_31
+# endif
#endif
+static int
+semctl_syscall (int semid, int semnum, int cmd, union semun arg)
+{
+#ifdef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
+ return INLINE_SYSCALL_CALL (semctl, semid, semnum, cmd | __IPC_64,
+ arg.array);
+#else
+ return INLINE_SYSCALL_CALL (ipc, IPCOP_semctl, semid, semnum, cmd | __IPC_64,
+ SEMCTL_ARG_ADDRESS (arg));
+#endif
+}
+
int
__new_semctl (int semid, int semnum, int cmd, ...)
{
+ /* POSIX states ipc_perm mode should have type of mode_t. */
+ _Static_assert (sizeof ((struct semid_ds){0}.sem_perm.mode)
+ == sizeof (mode_t),
+ "sizeof (msqid_ds.msg_perm.mode) != sizeof (mode_t)");
+
union semun arg = { 0 };
va_list ap;
@@ -59,16 +80,65 @@ __new_semctl (int semid, int semnum, int cmd, ...)
break;
}
-#ifdef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
- return INLINE_SYSCALL_CALL (semctl, semid, semnum, cmd | __IPC_64,
- arg.array);
-#else
- return INLINE_SYSCALL_CALL (ipc, IPCOP_semctl, semid, semnum, cmd | __IPC_64,
- SEMCTL_ARG_ADDRESS (arg));
+#ifdef __ASSUME_SYSVIPC_BROKEN_MODE_T
+ struct semid_ds tmpds;
+ if (cmd == IPC_SET)
+ {
+ tmpds = *arg.buf;
+ tmpds.sem_perm.mode *= 0x10000U;
+ arg.buf = &tmpds;
+ }
+#endif
+
+ int ret = semctl_syscall (semid, semnum, cmd, arg);
+
+#ifdef __ASSUME_SYSVIPC_BROKEN_MODE_T
+ if (ret >= 0)
+ {
+ switch (cmd)
+ {
+ case IPC_STAT:
+ case SEM_STAT:
+ case SEM_STAT_ANY:
+ arg.buf->sem_perm.mode >>= 16;
+ }
+ }
#endif
+
+ return ret;
}
versioned_symbol (libc, __new_semctl, semctl, DEFAULT_VERSION);
+#if defined __ASSUME_SYSVIPC_BROKEN_MODE_T \
+ && SHLIB_COMPAT (libc, GLIBC_2_2, GLIBC_2_31)
+int
+attribute_compat_text_section
+__semctl_mode16 (int semid, int semnum, int cmd, ...)
+{
+ union semun arg = { 0 };
+ va_list ap;
+
+ /* Get the argument only if required. */
+ switch (cmd)
+ {
+ case SETVAL: /* arg.val */
+ case GETALL: /* arg.array */
+ case SETALL:
+ case IPC_STAT: /* arg.buf */
+ case IPC_SET:
+ case SEM_STAT:
+ case IPC_INFO: /* arg.__buf */
+ case SEM_INFO:
+ va_start (ap, cmd);
+ arg = va_arg (ap, union semun);
+ va_end (ap);
+ break;
+ }
+
+ return semctl_syscall (semid, semnum, cmd, arg);
+}
+compat_symbol (libc, __semctl_mode16, semctl, GLIBC_2_2);
+#endif
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)
/* Since semctl use a variadic argument for semid_ds there is not need to
@@ -98,7 +168,11 @@ __old_semctl (int semid, int semnum, int cmd, ...)
break;
}
-# ifdef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
+#if defined __ASSUME_DIRECT_SYSVIPC_SYSCALLS \
+ && !defined __ASSUME_SYSVIPC_DEFAULT_IPC_64
+ /* For architectures that have wire-up semctl but also have __IPC_64 to a
+ value different than default (0x0) it means the compat symbol used the
+ __NR_ipc syscall. */
return INLINE_SYSCALL_CALL (semctl, semid, semnum, cmd, arg.array);
# else
return INLINE_SYSCALL_CALL (ipc, IPCOP_semctl, semid, semnum, cmd,
diff --git a/sysdeps/unix/sysv/linux/semget.c b/sysdeps/unix/sysv/linux/semget.c
index e220b3a031..8251ad54ec 100644
--- a/sysdeps/unix/sysv/linux/semget.c
+++ b/sysdeps/unix/sysv/linux/semget.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/sem.h>
#include <ipc_priv.h>
diff --git a/sysdeps/unix/sysv/linux/semop.c b/sysdeps/unix/sysv/linux/semop.c
index b5a08dfdaf..e111b9aa3d 100644
--- a/sysdeps/unix/sysv/linux/semop.c
+++ b/sysdeps/unix/sysv/linux/semop.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, August 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/sem.h>
#include <ipc_priv.h>
@@ -26,9 +26,5 @@
int
semop (int semid, struct sembuf *sops, size_t nsops)
{
-#ifdef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
- return INLINE_SYSCALL_CALL (semop, semid, sops, nsops);
-#else
- return INLINE_SYSCALL_CALL (ipc, IPCOP_semop, semid, nsops, 0, sops);
-#endif
+ return __semtimedop (semid, sops, nsops, NULL);
}
diff --git a/sysdeps/unix/sysv/linux/semtimedop.c b/sysdeps/unix/sysv/linux/semtimedop.c
index f7357d813a..3723e6ccf0 100644
--- a/sysdeps/unix/sysv/linux/semtimedop.c
+++ b/sysdeps/unix/sysv/linux/semtimedop.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, August 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/sem.h>
#include <ipc_priv.h>
@@ -24,13 +24,16 @@
/* Perform user-defined atomical operation of array of semaphores. */
int
-semtimedop (int semid, struct sembuf *sops, size_t nsops,
- const struct timespec *timeout)
+__semtimedop (int semid, struct sembuf *sops, size_t nsops,
+ const struct timespec *timeout)
{
-#ifdef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
+ /* semtimedop wire-up syscall is not exported for 32-bit ABIs (they have
+ semtimedop_time64 instead with uses a 64-bit time_t). */
+#if defined __ASSUME_DIRECT_SYSVIPC_SYSCALLS && defined __NR_semtimedop
return INLINE_SYSCALL_CALL (semtimedop, semid, sops, nsops, timeout);
#else
- return INLINE_SYSCALL_CALL (ipc, IPCOP_semtimedop, semid, nsops, 0, sops,
- timeout);
+ return INLINE_SYSCALL_CALL (ipc, IPCOP_semtimedop, semid,
+ SEMTIMEDOP_IPC_ARGS (nsops, sops, timeout));
#endif
}
+weak_alias (__semtimedop, semtimedop)
diff --git a/sysdeps/unix/sysv/linux/send.c b/sysdeps/unix/sysv/linux/send.c
index 14ebd91fdf..0eaca763c3 100644
--- a/sysdeps/unix/sysv/linux/send.c
+++ b/sysdeps/unix/sysv/linux/send.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2015-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/socket.h>
#include <sysdep-cancel.h>
diff --git a/sysdeps/unix/sysv/linux/sendmmsg.c b/sysdeps/unix/sysv/linux/sendmmsg.c
index 5b9fac4d2f..c53c1b280f 100644
--- a/sysdeps/unix/sysv/linux/sendmmsg.c
+++ b/sysdeps/unix/sysv/linux/sendmmsg.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/socket.h>
diff --git a/sysdeps/unix/sysv/linux/sendmsg.c b/sysdeps/unix/sysv/linux/sendmsg.c
index f8f1c5c2d8..42c4250749 100644
--- a/sysdeps/unix/sysv/linux/sendmsg.c
+++ b/sysdeps/unix/sysv/linux/sendmsg.c
@@ -1,5 +1,5 @@
/* Compatibility implementation of sendmsg.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/socket.h>
#include <sysdep-cancel.h>
diff --git a/sysdeps/unix/sysv/linux/sendto.c b/sysdeps/unix/sysv/linux/sendto.c
index 7dbf214a26..78e3b6b2a6 100644
--- a/sysdeps/unix/sysv/linux/sendto.c
+++ b/sysdeps/unix/sysv/linux/sendto.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2015-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/socket.h>
#include <sysdep-cancel.h>
diff --git a/sysdeps/unix/sysv/linux/setegid.c b/sysdeps/unix/sysv/linux/setegid.c
index 6ebd6bb7e8..43b903d5f9 100644
--- a/sysdeps/unix/sysv/linux/setegid.c
+++ b/sysdeps/unix/sysv/linux/setegid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/unix/sysv/linux/seteuid.c b/sysdeps/unix/sysv/linux/seteuid.c
index a20bb795e4..428be3392a 100644
--- a/sysdeps/unix/sysv/linux/seteuid.c
+++ b/sysdeps/unix/sysv/linux/seteuid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/unix/sysv/linux/setgid.c b/sysdeps/unix/sysv/linux/setgid.c
index ea12c95330..b5bbf4de33 100644
--- a/sysdeps/unix/sysv/linux/setgid.c
+++ b/sysdeps/unix/sysv/linux/setgid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/unix/sysv/linux/setgroups.c b/sysdeps/unix/sysv/linux/setgroups.c
index b46564a0db..c89c759124 100644
--- a/sysdeps/unix/sysv/linux/setgroups.c
+++ b/sysdeps/unix/sysv/linux/setgroups.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <grp.h>
diff --git a/sysdeps/unix/sysv/linux/setipv4sourcefilter.c b/sysdeps/unix/sysv/linux/setipv4sourcefilter.c
index bf2c60ee97..0f69a1fccd 100644
--- a/sysdeps/unix/sysv/linux/setipv4sourcefilter.c
+++ b/sysdeps/unix/sysv/linux/setipv4sourcefilter.c
@@ -1,5 +1,5 @@
/* Set IPv4 source filter. Linux version.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <alloca.h>
#include <errno.h>
diff --git a/sysdeps/unix/sysv/linux/setregid.c b/sysdeps/unix/sysv/linux/setregid.c
index 6e63a01d56..d34a5332f5 100644
--- a/sysdeps/unix/sysv/linux/setregid.c
+++ b/sysdeps/unix/sysv/linux/setregid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/unix/sysv/linux/setresgid.c b/sysdeps/unix/sysv/linux/setresgid.c
index 8b0e0e1541..af5e4b4d2e 100644
--- a/sysdeps/unix/sysv/linux/setresgid.c
+++ b/sysdeps/unix/sysv/linux/setresgid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/unix/sysv/linux/setresuid.c b/sysdeps/unix/sysv/linux/setresuid.c
index 98675ddd84..918861eeb0 100644
--- a/sysdeps/unix/sysv/linux/setresuid.c
+++ b/sysdeps/unix/sysv/linux/setresuid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/unix/sysv/linux/setreuid.c b/sysdeps/unix/sysv/linux/setreuid.c
index 2305c33639..01a27a508b 100644
--- a/sysdeps/unix/sysv/linux/setreuid.c
+++ b/sysdeps/unix/sysv/linux/setreuid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/unix/sysv/linux/setrlimit.c b/sysdeps/unix/sysv/linux/setrlimit.c
index 4ac38fdfe2..8b7b33ec4a 100644
--- a/sysdeps/unix/sysv/linux/setrlimit.c
+++ b/sysdeps/unix/sysv/linux/setrlimit.c
@@ -1,5 +1,5 @@
/* Linux setrlimit implementation (32 bits off_t).
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/resource.h>
diff --git a/sysdeps/unix/sysv/linux/setrlimit64.c b/sysdeps/unix/sysv/linux/setrlimit64.c
index 860fccb548..c4f3ee0776 100644
--- a/sysdeps/unix/sysv/linux/setrlimit64.c
+++ b/sysdeps/unix/sysv/linux/setrlimit64.c
@@ -1,5 +1,5 @@
/* Linux setrlimit64 implementation (64 bits off_t).
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/types.h>
diff --git a/sysdeps/unix/sysv/linux/setsockopt.c b/sysdeps/unix/sysv/linux/setsockopt.c
index 851fb5175c..ce667e5049 100644
--- a/sysdeps/unix/sysv/linux/setsockopt.c
+++ b/sysdeps/unix/sysv/linux/setsockopt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2015-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/sysdeps/unix/sysv/linux/setsourcefilter.c b/sysdeps/unix/sysv/linux/setsourcefilter.c
index 3abd666af0..2c609a13d7 100644
--- a/sysdeps/unix/sysv/linux/setsourcefilter.c
+++ b/sysdeps/unix/sysv/linux/setsourcefilter.c
@@ -1,5 +1,5 @@
/* Set source filter. Linux version.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <alloca.h>
#include <errno.h>
diff --git a/sysdeps/unix/sysv/linux/settimezone.c b/sysdeps/unix/sysv/linux/settimezone.c
new file mode 100644
index 0000000000..4aa86b3289
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/settimezone.c
@@ -0,0 +1,36 @@
+/* Obsolete set system time. Linux version.
+ 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; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <sys/time.h>
+#include <sysdep.h>
+
+/* Set the system-wide timezone.
+ This call is restricted to the super-user.
+ This operation is considered obsolete, kernel support may not be
+ available on all architectures. */
+int
+__settimezone (const struct timezone *tz)
+{
+#ifdef __NR_settimeofday
+ return INLINE_SYSCALL_CALL (settimeofday, NULL, tz);
+#else
+ __set_errno (ENOSYS);
+ return -1;
+#endif
+}
diff --git a/sysdeps/unix/sysv/linux/setuid.c b/sysdeps/unix/sysv/linux/setuid.c
index bf3a79211a..9dde4f87a2 100644
--- a/sysdeps/unix/sysv/linux/setuid.c
+++ b/sysdeps/unix/sysv/linux/setuid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/unix/sysv/linux/sh/____longjmp_chk.S b/sysdeps/unix/sysv/linux/sh/____longjmp_chk.S
index 402c912078..35213464e0 100644
--- a/sysdeps/unix/sysv/linux/sh/____longjmp_chk.S
+++ b/sysdeps/unix/sysv/linux/sh/____longjmp_chk.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/sh/atomic-machine.h b/sysdeps/unix/sysv/linux/sh/atomic-machine.h
index 798735527b..5065be6cd1 100644
--- a/sysdeps/unix/sysv/linux/sh/atomic-machine.h
+++ b/sysdeps/unix/sysv/linux/sh/atomic-machine.h
@@ -1,5 +1,5 @@
/* Atomic operations used inside libc. Linux/SH version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/sysdeps/unix/sysv/linux/sh/be/Versions b/sysdeps/unix/sysv/linux/sh/be/Versions
new file mode 100644
index 0000000000..a50cd57630
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sh/be/Versions
@@ -0,0 +1,5 @@
+libc {
+ GLIBC_2.31 {
+ msgctl; semctl; shmctl;
+ }
+}
diff --git a/sysdeps/unix/sysv/linux/sh/ld.abilist b/sysdeps/unix/sysv/linux/sh/be/ld.abilist
index 0387614d8f..0387614d8f 100644
--- a/sysdeps/unix/sysv/linux/sh/ld.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/ld.abilist
diff --git a/sysdeps/unix/sysv/linux/sh/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/sh/be/libBrokenLocale.abilist
index 0e4d814909..0e4d814909 100644
--- a/sysdeps/unix/sysv/linux/sh/libBrokenLocale.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libBrokenLocale.abilist
diff --git a/sysdeps/unix/sysv/linux/sh/libanl.abilist b/sysdeps/unix/sysv/linux/sh/be/libanl.abilist
index d9a5ed015d..d9a5ed015d 100644
--- a/sysdeps/unix/sysv/linux/sh/libanl.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libanl.abilist
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
new file mode 100644
index 0000000000..6bfc2b7439
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -0,0 +1,2195 @@
+GCC_3.0 _Unwind_Find_FDE F
+GCC_3.0 __deregister_frame_info_bases F
+GCC_3.0 __register_frame_info_bases F
+GCC_3.0 __register_frame_info_table_bases F
+GLIBC_2.10 __cxa_at_quick_exit F
+GLIBC_2.10 __posix_getopt F
+GLIBC_2.10 accept4 F
+GLIBC_2.10 endsgent F
+GLIBC_2.10 fallocate F
+GLIBC_2.10 fgetsgent F
+GLIBC_2.10 fgetsgent_r F
+GLIBC_2.10 getsgent F
+GLIBC_2.10 getsgent_r F
+GLIBC_2.10 getsgnam F
+GLIBC_2.10 getsgnam_r F
+GLIBC_2.10 malloc_info F
+GLIBC_2.10 preadv F
+GLIBC_2.10 preadv64 F
+GLIBC_2.10 psiginfo F
+GLIBC_2.10 putsgent F
+GLIBC_2.10 pwritev F
+GLIBC_2.10 pwritev64 F
+GLIBC_2.10 quick_exit F
+GLIBC_2.10 register_printf_modifier F
+GLIBC_2.10 register_printf_specifier F
+GLIBC_2.10 register_printf_type F
+GLIBC_2.10 setsgent F
+GLIBC_2.10 sgetsgent F
+GLIBC_2.10 sgetsgent_r F
+GLIBC_2.11 __longjmp_chk F
+GLIBC_2.11 execvpe F
+GLIBC_2.11 fallocate64 F
+GLIBC_2.11 mkostemps F
+GLIBC_2.11 mkostemps64 F
+GLIBC_2.11 mkstemps F
+GLIBC_2.11 mkstemps64 F
+GLIBC_2.12 _sys_errlist D 0x21c
+GLIBC_2.12 _sys_nerr D 0x4
+GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 recvmmsg F
+GLIBC_2.12 sys_errlist D 0x21c
+GLIBC_2.12 sys_nerr D 0x4
+GLIBC_2.13 fanotify_init F
+GLIBC_2.13 prlimit F
+GLIBC_2.13 prlimit64 F
+GLIBC_2.14 clock_adjtime F
+GLIBC_2.14 name_to_handle_at F
+GLIBC_2.14 open_by_handle_at F
+GLIBC_2.14 sendmmsg F
+GLIBC_2.14 setns F
+GLIBC_2.14 syncfs F
+GLIBC_2.15 __fdelt_chk F
+GLIBC_2.15 __fdelt_warn F
+GLIBC_2.15 posix_spawn F
+GLIBC_2.15 posix_spawnp F
+GLIBC_2.15 process_vm_readv F
+GLIBC_2.15 process_vm_writev F
+GLIBC_2.15 scandirat F
+GLIBC_2.15 scandirat64 F
+GLIBC_2.16 __getauxval F
+GLIBC_2.16 __poll_chk F
+GLIBC_2.16 __ppoll_chk F
+GLIBC_2.16 aligned_alloc F
+GLIBC_2.16 c16rtomb F
+GLIBC_2.16 c32rtomb F
+GLIBC_2.16 fanotify_mark F
+GLIBC_2.16 getauxval F
+GLIBC_2.16 mbrtoc16 F
+GLIBC_2.16 mbrtoc32 F
+GLIBC_2.16 timespec_get F
+GLIBC_2.17 clock_getcpuclockid F
+GLIBC_2.17 clock_getres F
+GLIBC_2.17 clock_gettime F
+GLIBC_2.17 clock_nanosleep F
+GLIBC_2.17 clock_settime F
+GLIBC_2.17 secure_getenv F
+GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.2 _Exit F
+GLIBC_2.2 _IO_2_1_stderr_ D 0x98
+GLIBC_2.2 _IO_2_1_stdin_ D 0x98
+GLIBC_2.2 _IO_2_1_stdout_ D 0x98
+GLIBC_2.2 _IO_adjust_column F
+GLIBC_2.2 _IO_adjust_wcolumn F
+GLIBC_2.2 _IO_default_doallocate F
+GLIBC_2.2 _IO_default_finish F
+GLIBC_2.2 _IO_default_pbackfail F
+GLIBC_2.2 _IO_default_uflow F
+GLIBC_2.2 _IO_default_xsgetn F
+GLIBC_2.2 _IO_default_xsputn F
+GLIBC_2.2 _IO_do_write F
+GLIBC_2.2 _IO_doallocbuf F
+GLIBC_2.2 _IO_fclose F
+GLIBC_2.2 _IO_fdopen F
+GLIBC_2.2 _IO_feof F
+GLIBC_2.2 _IO_ferror F
+GLIBC_2.2 _IO_fflush F
+GLIBC_2.2 _IO_fgetpos F
+GLIBC_2.2 _IO_fgetpos64 F
+GLIBC_2.2 _IO_fgets F
+GLIBC_2.2 _IO_file_attach F
+GLIBC_2.2 _IO_file_close F
+GLIBC_2.2 _IO_file_close_it F
+GLIBC_2.2 _IO_file_doallocate F
+GLIBC_2.2 _IO_file_finish F
+GLIBC_2.2 _IO_file_fopen F
+GLIBC_2.2 _IO_file_init F
+GLIBC_2.2 _IO_file_jumps D 0x54
+GLIBC_2.2 _IO_file_open F
+GLIBC_2.2 _IO_file_overflow F
+GLIBC_2.2 _IO_file_read F
+GLIBC_2.2 _IO_file_seek F
+GLIBC_2.2 _IO_file_seekoff F
+GLIBC_2.2 _IO_file_setbuf F
+GLIBC_2.2 _IO_file_stat F
+GLIBC_2.2 _IO_file_sync F
+GLIBC_2.2 _IO_file_underflow F
+GLIBC_2.2 _IO_file_write F
+GLIBC_2.2 _IO_file_xsputn F
+GLIBC_2.2 _IO_flockfile F
+GLIBC_2.2 _IO_flush_all F
+GLIBC_2.2 _IO_flush_all_linebuffered F
+GLIBC_2.2 _IO_fopen F
+GLIBC_2.2 _IO_fprintf F
+GLIBC_2.2 _IO_fputs F
+GLIBC_2.2 _IO_fread F
+GLIBC_2.2 _IO_free_backup_area F
+GLIBC_2.2 _IO_free_wbackup_area F
+GLIBC_2.2 _IO_fsetpos F
+GLIBC_2.2 _IO_fsetpos64 F
+GLIBC_2.2 _IO_ftell F
+GLIBC_2.2 _IO_ftrylockfile F
+GLIBC_2.2 _IO_funlockfile F
+GLIBC_2.2 _IO_fwrite F
+GLIBC_2.2 _IO_getc F
+GLIBC_2.2 _IO_getline F
+GLIBC_2.2 _IO_getline_info F
+GLIBC_2.2 _IO_gets F
+GLIBC_2.2 _IO_init F
+GLIBC_2.2 _IO_init_marker F
+GLIBC_2.2 _IO_init_wmarker F
+GLIBC_2.2 _IO_iter_begin F
+GLIBC_2.2 _IO_iter_end F
+GLIBC_2.2 _IO_iter_file F
+GLIBC_2.2 _IO_iter_next F
+GLIBC_2.2 _IO_least_wmarker F
+GLIBC_2.2 _IO_link_in F
+GLIBC_2.2 _IO_list_all D 0x4
+GLIBC_2.2 _IO_list_lock F
+GLIBC_2.2 _IO_list_resetlock F
+GLIBC_2.2 _IO_list_unlock F
+GLIBC_2.2 _IO_marker_delta F
+GLIBC_2.2 _IO_marker_difference F
+GLIBC_2.2 _IO_padn F
+GLIBC_2.2 _IO_peekc_locked F
+GLIBC_2.2 _IO_popen F
+GLIBC_2.2 _IO_printf F
+GLIBC_2.2 _IO_proc_close F
+GLIBC_2.2 _IO_proc_open F
+GLIBC_2.2 _IO_putc F
+GLIBC_2.2 _IO_puts F
+GLIBC_2.2 _IO_remove_marker F
+GLIBC_2.2 _IO_seekmark F
+GLIBC_2.2 _IO_seekoff F
+GLIBC_2.2 _IO_seekpos F
+GLIBC_2.2 _IO_seekwmark F
+GLIBC_2.2 _IO_setb F
+GLIBC_2.2 _IO_setbuffer F
+GLIBC_2.2 _IO_setvbuf F
+GLIBC_2.2 _IO_sgetn F
+GLIBC_2.2 _IO_sprintf F
+GLIBC_2.2 _IO_sputbackc F
+GLIBC_2.2 _IO_sputbackwc F
+GLIBC_2.2 _IO_sscanf F
+GLIBC_2.2 _IO_str_init_readonly F
+GLIBC_2.2 _IO_str_init_static F
+GLIBC_2.2 _IO_str_overflow F
+GLIBC_2.2 _IO_str_pbackfail F
+GLIBC_2.2 _IO_str_seekoff F
+GLIBC_2.2 _IO_str_underflow F
+GLIBC_2.2 _IO_sungetc F
+GLIBC_2.2 _IO_sungetwc F
+GLIBC_2.2 _IO_switch_to_get_mode F
+GLIBC_2.2 _IO_switch_to_main_wget_area F
+GLIBC_2.2 _IO_switch_to_wbackup_area F
+GLIBC_2.2 _IO_switch_to_wget_mode F
+GLIBC_2.2 _IO_un_link F
+GLIBC_2.2 _IO_ungetc F
+GLIBC_2.2 _IO_unsave_markers F
+GLIBC_2.2 _IO_unsave_wmarkers F
+GLIBC_2.2 _IO_vfprintf F
+GLIBC_2.2 _IO_vfscanf F
+GLIBC_2.2 _IO_vsprintf F
+GLIBC_2.2 _IO_wdefault_doallocate F
+GLIBC_2.2 _IO_wdefault_finish F
+GLIBC_2.2 _IO_wdefault_pbackfail F
+GLIBC_2.2 _IO_wdefault_uflow F
+GLIBC_2.2 _IO_wdefault_xsgetn F
+GLIBC_2.2 _IO_wdefault_xsputn F
+GLIBC_2.2 _IO_wdo_write F
+GLIBC_2.2 _IO_wdoallocbuf F
+GLIBC_2.2 _IO_wfile_jumps D 0x54
+GLIBC_2.2 _IO_wfile_overflow F
+GLIBC_2.2 _IO_wfile_seekoff F
+GLIBC_2.2 _IO_wfile_sync F
+GLIBC_2.2 _IO_wfile_underflow F
+GLIBC_2.2 _IO_wfile_xsputn F
+GLIBC_2.2 _IO_wmarker_delta F
+GLIBC_2.2 _IO_wsetb F
+GLIBC_2.2 __adjtimex F
+GLIBC_2.2 __after_morecore_hook D 0x4
+GLIBC_2.2 __argz_count F
+GLIBC_2.2 __argz_next F
+GLIBC_2.2 __argz_stringify F
+GLIBC_2.2 __asprintf F
+GLIBC_2.2 __assert F
+GLIBC_2.2 __assert_fail F
+GLIBC_2.2 __assert_perror_fail F
+GLIBC_2.2 __backtrace F
+GLIBC_2.2 __backtrace_symbols F
+GLIBC_2.2 __backtrace_symbols_fd F
+GLIBC_2.2 __bsd_getpgrp F
+GLIBC_2.2 __bzero F
+GLIBC_2.2 __check_rhosts_file D 0x4
+GLIBC_2.2 __clone F
+GLIBC_2.2 __close F
+GLIBC_2.2 __cmsg_nxthdr F
+GLIBC_2.2 __connect F
+GLIBC_2.2 __ctype32_b D 0x4
+GLIBC_2.2 __ctype32_tolower D 0x4
+GLIBC_2.2 __ctype32_toupper D 0x4
+GLIBC_2.2 __ctype_b D 0x4
+GLIBC_2.2 __ctype_get_mb_cur_max F
+GLIBC_2.2 __ctype_tolower D 0x4
+GLIBC_2.2 __ctype_toupper D 0x4
+GLIBC_2.2 __curbrk D 0x4
+GLIBC_2.2 __cxa_atexit F
+GLIBC_2.2 __cxa_finalize F
+GLIBC_2.2 __cyg_profile_func_enter F
+GLIBC_2.2 __cyg_profile_func_exit F
+GLIBC_2.2 __daylight D 0x4
+GLIBC_2.2 __dcgettext F
+GLIBC_2.2 __default_morecore F
+GLIBC_2.2 __deregister_frame_info F
+GLIBC_2.2 __dgettext F
+GLIBC_2.2 __dup2 F
+GLIBC_2.2 __duplocale F
+GLIBC_2.2 __endmntent F
+GLIBC_2.2 __environ D 0x4
+GLIBC_2.2 __errno_location F
+GLIBC_2.2 __fbufsize F
+GLIBC_2.2 __fcntl F
+GLIBC_2.2 __ffs F
+GLIBC_2.2 __finite F
+GLIBC_2.2 __finitef F
+GLIBC_2.2 __finitel F
+GLIBC_2.2 __flbf F
+GLIBC_2.2 __fork F
+GLIBC_2.2 __fpending F
+GLIBC_2.2 __fpu_control D 0x4
+GLIBC_2.2 __fpurge F
+GLIBC_2.2 __freadable F
+GLIBC_2.2 __freading F
+GLIBC_2.2 __free_hook D 0x4
+GLIBC_2.2 __freelocale F
+GLIBC_2.2 __fsetlocking F
+GLIBC_2.2 __fwritable F
+GLIBC_2.2 __fwriting F
+GLIBC_2.2 __fxstat F
+GLIBC_2.2 __fxstat64 F
+GLIBC_2.2 __getdelim F
+GLIBC_2.2 __getmntent_r F
+GLIBC_2.2 __getpagesize F
+GLIBC_2.2 __getpgid F
+GLIBC_2.2 __getpid F
+GLIBC_2.2 __gettimeofday F
+GLIBC_2.2 __gmtime_r F
+GLIBC_2.2 __h_errno_location F
+GLIBC_2.2 __isalnum_l F
+GLIBC_2.2 __isalpha_l F
+GLIBC_2.2 __isascii_l F
+GLIBC_2.2 __isblank_l F
+GLIBC_2.2 __iscntrl_l F
+GLIBC_2.2 __isdigit_l F
+GLIBC_2.2 __isgraph_l F
+GLIBC_2.2 __isinf F
+GLIBC_2.2 __isinff F
+GLIBC_2.2 __isinfl F
+GLIBC_2.2 __islower_l F
+GLIBC_2.2 __isnan F
+GLIBC_2.2 __isnanf F
+GLIBC_2.2 __isnanl F
+GLIBC_2.2 __isprint_l F
+GLIBC_2.2 __ispunct_l F
+GLIBC_2.2 __isspace_l F
+GLIBC_2.2 __isupper_l F
+GLIBC_2.2 __iswalnum_l F
+GLIBC_2.2 __iswalpha_l F
+GLIBC_2.2 __iswblank_l F
+GLIBC_2.2 __iswcntrl_l F
+GLIBC_2.2 __iswctype F
+GLIBC_2.2 __iswctype_l F
+GLIBC_2.2 __iswdigit_l F
+GLIBC_2.2 __iswgraph_l F
+GLIBC_2.2 __iswlower_l F
+GLIBC_2.2 __iswprint_l F
+GLIBC_2.2 __iswpunct_l F
+GLIBC_2.2 __iswspace_l F
+GLIBC_2.2 __iswupper_l F
+GLIBC_2.2 __iswxdigit_l F
+GLIBC_2.2 __isxdigit_l F
+GLIBC_2.2 __ivaliduser F
+GLIBC_2.2 __key_decryptsession_pk_LOCAL D 0x4
+GLIBC_2.2 __key_encryptsession_pk_LOCAL D 0x4
+GLIBC_2.2 __key_gendes_LOCAL D 0x4
+GLIBC_2.2 __libc_allocate_rtsig F
+GLIBC_2.2 __libc_calloc F
+GLIBC_2.2 __libc_current_sigrtmax F
+GLIBC_2.2 __libc_current_sigrtmin F
+GLIBC_2.2 __libc_free F
+GLIBC_2.2 __libc_freeres F
+GLIBC_2.2 __libc_init_first F
+GLIBC_2.2 __libc_mallinfo F
+GLIBC_2.2 __libc_malloc F
+GLIBC_2.2 __libc_mallopt F
+GLIBC_2.2 __libc_memalign F
+GLIBC_2.2 __libc_pvalloc F
+GLIBC_2.2 __libc_realloc F
+GLIBC_2.2 __libc_sa_len F
+GLIBC_2.2 __libc_start_main F
+GLIBC_2.2 __libc_valloc F
+GLIBC_2.2 __lseek F
+GLIBC_2.2 __lxstat F
+GLIBC_2.2 __lxstat64 F
+GLIBC_2.2 __malloc_hook D 0x4
+GLIBC_2.2 __malloc_initialize_hook D 0x4
+GLIBC_2.2 __mbrlen F
+GLIBC_2.2 __mbrtowc F
+GLIBC_2.2 __memalign_hook D 0x4
+GLIBC_2.2 __mempcpy F
+GLIBC_2.2 __mempcpy_small F
+GLIBC_2.2 __monstartup F
+GLIBC_2.2 __morecore D 0x4
+GLIBC_2.2 __newlocale F
+GLIBC_2.2 __nl_langinfo_l F
+GLIBC_2.2 __nss_configure_lookup F
+GLIBC_2.2 __nss_database_lookup F
+GLIBC_2.2 __nss_group_lookup F
+GLIBC_2.2 __nss_hosts_lookup F
+GLIBC_2.2 __nss_next F
+GLIBC_2.2 __nss_passwd_lookup F
+GLIBC_2.2 __open F
+GLIBC_2.2 __open64 F
+GLIBC_2.2 __overflow F
+GLIBC_2.2 __pipe F
+GLIBC_2.2 __poll F
+GLIBC_2.2 __pread64 F
+GLIBC_2.2 __printf_fp F
+GLIBC_2.2 __profile_frequency F
+GLIBC_2.2 __progname D 0x4
+GLIBC_2.2 __progname_full D 0x4
+GLIBC_2.2 __pwrite64 F
+GLIBC_2.2 __rawmemchr F
+GLIBC_2.2 __rcmd_errstr D 0x4
+GLIBC_2.2 __read F
+GLIBC_2.2 __realloc_hook D 0x4
+GLIBC_2.2 __register_frame_info F
+GLIBC_2.2 __res_init F
+GLIBC_2.2 __res_nclose F
+GLIBC_2.2 __res_ninit F
+GLIBC_2.2 __res_randomid F
+GLIBC_2.2 __res_state F
+GLIBC_2.2 __sbrk F
+GLIBC_2.2 __sched_get_priority_max F
+GLIBC_2.2 __sched_get_priority_min F
+GLIBC_2.2 __sched_getparam F
+GLIBC_2.2 __sched_getscheduler F
+GLIBC_2.2 __sched_setscheduler F
+GLIBC_2.2 __sched_yield F
+GLIBC_2.2 __secure_getenv F
+GLIBC_2.2 __select F
+GLIBC_2.2 __send F
+GLIBC_2.2 __setmntent F
+GLIBC_2.2 __setpgid F
+GLIBC_2.2 __sigaction F
+GLIBC_2.2 __sigaddset F
+GLIBC_2.2 __sigdelset F
+GLIBC_2.2 __sigismember F
+GLIBC_2.2 __signbit F
+GLIBC_2.2 __signbitf F
+GLIBC_2.2 __sigpause F
+GLIBC_2.2 __sigsetjmp F
+GLIBC_2.2 __sigsuspend F
+GLIBC_2.2 __statfs F
+GLIBC_2.2 __stpcpy F
+GLIBC_2.2 __stpcpy_small F
+GLIBC_2.2 __stpncpy F
+GLIBC_2.2 __strcasecmp F
+GLIBC_2.2 __strcasecmp_l F
+GLIBC_2.2 __strcasestr F
+GLIBC_2.2 __strcoll_l F
+GLIBC_2.2 __strcpy_small F
+GLIBC_2.2 __strcspn_c1 F
+GLIBC_2.2 __strcspn_c2 F
+GLIBC_2.2 __strcspn_c3 F
+GLIBC_2.2 __strdup F
+GLIBC_2.2 __strerror_r F
+GLIBC_2.2 __strfmon_l F
+GLIBC_2.2 __strncasecmp_l F
+GLIBC_2.2 __strndup F
+GLIBC_2.2 __strpbrk_c2 F
+GLIBC_2.2 __strpbrk_c3 F
+GLIBC_2.2 __strsep_1c F
+GLIBC_2.2 __strsep_2c F
+GLIBC_2.2 __strsep_3c F
+GLIBC_2.2 __strsep_g F
+GLIBC_2.2 __strspn_c1 F
+GLIBC_2.2 __strspn_c2 F
+GLIBC_2.2 __strspn_c3 F
+GLIBC_2.2 __strtod_internal F
+GLIBC_2.2 __strtod_l F
+GLIBC_2.2 __strtof_internal F
+GLIBC_2.2 __strtof_l F
+GLIBC_2.2 __strtok_r F
+GLIBC_2.2 __strtok_r_1c F
+GLIBC_2.2 __strtol_internal F
+GLIBC_2.2 __strtol_l F
+GLIBC_2.2 __strtold_internal F
+GLIBC_2.2 __strtold_l F
+GLIBC_2.2 __strtoll_internal F
+GLIBC_2.2 __strtoll_l F
+GLIBC_2.2 __strtoul_internal F
+GLIBC_2.2 __strtoul_l F
+GLIBC_2.2 __strtoull_internal F
+GLIBC_2.2 __strtoull_l F
+GLIBC_2.2 __strverscmp F
+GLIBC_2.2 __strxfrm_l F
+GLIBC_2.2 __sysconf F
+GLIBC_2.2 __sysctl F
+GLIBC_2.2 __sysv_signal F
+GLIBC_2.2 __timezone D 0x4
+GLIBC_2.2 __toascii_l F
+GLIBC_2.2 __tolower_l F
+GLIBC_2.2 __toupper_l F
+GLIBC_2.2 __towctrans F
+GLIBC_2.2 __towctrans_l F
+GLIBC_2.2 __towlower_l F
+GLIBC_2.2 __towupper_l F
+GLIBC_2.2 __tzname D 0x8
+GLIBC_2.2 __uflow F
+GLIBC_2.2 __underflow F
+GLIBC_2.2 __vfork F
+GLIBC_2.2 __vfscanf F
+GLIBC_2.2 __vsnprintf F
+GLIBC_2.2 __vsscanf F
+GLIBC_2.2 __wait F
+GLIBC_2.2 __waitpid F
+GLIBC_2.2 __wcscasecmp_l F
+GLIBC_2.2 __wcscoll_l F
+GLIBC_2.2 __wcsncasecmp_l F
+GLIBC_2.2 __wcstod_internal F
+GLIBC_2.2 __wcstod_l F
+GLIBC_2.2 __wcstof_internal F
+GLIBC_2.2 __wcstof_l F
+GLIBC_2.2 __wcstol_internal F
+GLIBC_2.2 __wcstol_l F
+GLIBC_2.2 __wcstold_internal F
+GLIBC_2.2 __wcstold_l F
+GLIBC_2.2 __wcstoll_internal F
+GLIBC_2.2 __wcstoll_l F
+GLIBC_2.2 __wcstoul_internal F
+GLIBC_2.2 __wcstoul_l F
+GLIBC_2.2 __wcstoull_internal F
+GLIBC_2.2 __wcstoull_l F
+GLIBC_2.2 __wcsxfrm_l F
+GLIBC_2.2 __wctrans_l F
+GLIBC_2.2 __wctype_l F
+GLIBC_2.2 __woverflow F
+GLIBC_2.2 __write F
+GLIBC_2.2 __wuflow F
+GLIBC_2.2 __wunderflow F
+GLIBC_2.2 __xmknod F
+GLIBC_2.2 __xpg_basename F
+GLIBC_2.2 __xpg_sigpause F
+GLIBC_2.2 __xstat F
+GLIBC_2.2 __xstat64 F
+GLIBC_2.2 _authenticate F
+GLIBC_2.2 _dl_mcount_wrapper F
+GLIBC_2.2 _dl_mcount_wrapper_check F
+GLIBC_2.2 _environ D 0x4
+GLIBC_2.2 _exit F
+GLIBC_2.2 _flushlbf F
+GLIBC_2.2 _libc_intl_domainname D 0x5
+GLIBC_2.2 _longjmp F
+GLIBC_2.2 _mcleanup F
+GLIBC_2.2 _mcount F
+GLIBC_2.2 _nl_default_dirname D 0x12
+GLIBC_2.2 _nl_domain_bindings D 0x4
+GLIBC_2.2 _nl_msg_cat_cntr D 0x4
+GLIBC_2.2 _null_auth D 0xc
+GLIBC_2.2 _obstack D 0x4
+GLIBC_2.2 _obstack_allocated_p F
+GLIBC_2.2 _obstack_begin F
+GLIBC_2.2 _obstack_begin_1 F
+GLIBC_2.2 _obstack_free F
+GLIBC_2.2 _obstack_memory_used F
+GLIBC_2.2 _obstack_newchunk F
+GLIBC_2.2 _res D 0x200
+GLIBC_2.2 _res_hconf D 0x30
+GLIBC_2.2 _rpc_dtablesize F
+GLIBC_2.2 _seterr_reply F
+GLIBC_2.2 _setjmp F
+GLIBC_2.2 _sys_errlist D 0x1f4
+GLIBC_2.2 _sys_nerr D 0x4
+GLIBC_2.2 _sys_siglist D 0x100
+GLIBC_2.2 _tolower F
+GLIBC_2.2 _toupper F
+GLIBC_2.2 a64l F
+GLIBC_2.2 abort F
+GLIBC_2.2 abs F
+GLIBC_2.2 accept F
+GLIBC_2.2 access F
+GLIBC_2.2 acct F
+GLIBC_2.2 addmntent F
+GLIBC_2.2 addseverity F
+GLIBC_2.2 adjtime F
+GLIBC_2.2 adjtimex F
+GLIBC_2.2 advance F
+GLIBC_2.2 alarm F
+GLIBC_2.2 alphasort F
+GLIBC_2.2 alphasort64 F
+GLIBC_2.2 argp_err_exit_status D 0x4
+GLIBC_2.2 argp_error F
+GLIBC_2.2 argp_failure F
+GLIBC_2.2 argp_help F
+GLIBC_2.2 argp_parse F
+GLIBC_2.2 argp_program_bug_address D 0x4
+GLIBC_2.2 argp_program_version D 0x4
+GLIBC_2.2 argp_program_version_hook D 0x4
+GLIBC_2.2 argp_state_help F
+GLIBC_2.2 argp_usage F
+GLIBC_2.2 argz_add F
+GLIBC_2.2 argz_add_sep F
+GLIBC_2.2 argz_append F
+GLIBC_2.2 argz_count F
+GLIBC_2.2 argz_create F
+GLIBC_2.2 argz_create_sep F
+GLIBC_2.2 argz_delete F
+GLIBC_2.2 argz_extract F
+GLIBC_2.2 argz_insert F
+GLIBC_2.2 argz_next F
+GLIBC_2.2 argz_replace F
+GLIBC_2.2 argz_stringify F
+GLIBC_2.2 asctime F
+GLIBC_2.2 asctime_r F
+GLIBC_2.2 asprintf F
+GLIBC_2.2 atexit F
+GLIBC_2.2 atof F
+GLIBC_2.2 atoi F
+GLIBC_2.2 atol F
+GLIBC_2.2 atoll F
+GLIBC_2.2 authdes_create F
+GLIBC_2.2 authdes_getucred F
+GLIBC_2.2 authdes_pk_create F
+GLIBC_2.2 authnone_create F
+GLIBC_2.2 authunix_create F
+GLIBC_2.2 authunix_create_default F
+GLIBC_2.2 backtrace F
+GLIBC_2.2 backtrace_symbols F
+GLIBC_2.2 backtrace_symbols_fd F
+GLIBC_2.2 basename F
+GLIBC_2.2 bcmp F
+GLIBC_2.2 bcopy F
+GLIBC_2.2 bdflush F
+GLIBC_2.2 bind F
+GLIBC_2.2 bind_textdomain_codeset F
+GLIBC_2.2 bindresvport F
+GLIBC_2.2 bindtextdomain F
+GLIBC_2.2 brk F
+GLIBC_2.2 bsd_signal F
+GLIBC_2.2 bsearch F
+GLIBC_2.2 btowc F
+GLIBC_2.2 bzero F
+GLIBC_2.2 calloc F
+GLIBC_2.2 callrpc F
+GLIBC_2.2 canonicalize_file_name F
+GLIBC_2.2 capget F
+GLIBC_2.2 capset F
+GLIBC_2.2 catclose F
+GLIBC_2.2 catgets F
+GLIBC_2.2 catopen F
+GLIBC_2.2 cbc_crypt F
+GLIBC_2.2 cfgetispeed F
+GLIBC_2.2 cfgetospeed F
+GLIBC_2.2 cfmakeraw F
+GLIBC_2.2 cfree F
+GLIBC_2.2 cfsetispeed F
+GLIBC_2.2 cfsetospeed F
+GLIBC_2.2 cfsetspeed F
+GLIBC_2.2 chdir F
+GLIBC_2.2 chflags F
+GLIBC_2.2 chmod F
+GLIBC_2.2 chown F
+GLIBC_2.2 chroot F
+GLIBC_2.2 clearenv F
+GLIBC_2.2 clearerr F
+GLIBC_2.2 clearerr_unlocked F
+GLIBC_2.2 clnt_broadcast F
+GLIBC_2.2 clnt_create F
+GLIBC_2.2 clnt_pcreateerror F
+GLIBC_2.2 clnt_perrno F
+GLIBC_2.2 clnt_perror F
+GLIBC_2.2 clnt_spcreateerror F
+GLIBC_2.2 clnt_sperrno F
+GLIBC_2.2 clnt_sperror F
+GLIBC_2.2 clntraw_create F
+GLIBC_2.2 clnttcp_create F
+GLIBC_2.2 clntudp_bufcreate F
+GLIBC_2.2 clntudp_create F
+GLIBC_2.2 clntunix_create F
+GLIBC_2.2 clock F
+GLIBC_2.2 clock_getcpuclockid F
+GLIBC_2.2 clock_getres F
+GLIBC_2.2 clock_gettime F
+GLIBC_2.2 clock_nanosleep F
+GLIBC_2.2 clock_settime F
+GLIBC_2.2 clone F
+GLIBC_2.2 close F
+GLIBC_2.2 closedir F
+GLIBC_2.2 closelog F
+GLIBC_2.2 confstr F
+GLIBC_2.2 connect F
+GLIBC_2.2 copysign F
+GLIBC_2.2 copysignf F
+GLIBC_2.2 copysignl F
+GLIBC_2.2 creat F
+GLIBC_2.2 creat64 F
+GLIBC_2.2 create_module F
+GLIBC_2.2 ctermid F
+GLIBC_2.2 ctime F
+GLIBC_2.2 ctime_r F
+GLIBC_2.2 cuserid F
+GLIBC_2.2 daemon F
+GLIBC_2.2 daylight D 0x4
+GLIBC_2.2 dcgettext F
+GLIBC_2.2 dcngettext F
+GLIBC_2.2 delete_module F
+GLIBC_2.2 des_setparity F
+GLIBC_2.2 dgettext F
+GLIBC_2.2 difftime F
+GLIBC_2.2 dirfd F
+GLIBC_2.2 dirname F
+GLIBC_2.2 div F
+GLIBC_2.2 dngettext F
+GLIBC_2.2 dprintf F
+GLIBC_2.2 drand48 F
+GLIBC_2.2 drand48_r F
+GLIBC_2.2 dup F
+GLIBC_2.2 dup2 F
+GLIBC_2.2 dysize F
+GLIBC_2.2 ecb_crypt F
+GLIBC_2.2 ecvt F
+GLIBC_2.2 ecvt_r F
+GLIBC_2.2 endaliasent F
+GLIBC_2.2 endfsent F
+GLIBC_2.2 endgrent F
+GLIBC_2.2 endhostent F
+GLIBC_2.2 endmntent F
+GLIBC_2.2 endnetent F
+GLIBC_2.2 endnetgrent F
+GLIBC_2.2 endprotoent F
+GLIBC_2.2 endpwent F
+GLIBC_2.2 endrpcent F
+GLIBC_2.2 endservent F
+GLIBC_2.2 endspent F
+GLIBC_2.2 endttyent F
+GLIBC_2.2 endusershell F
+GLIBC_2.2 endutent F
+GLIBC_2.2 endutxent F
+GLIBC_2.2 environ D 0x4
+GLIBC_2.2 envz_add F
+GLIBC_2.2 envz_entry F
+GLIBC_2.2 envz_get F
+GLIBC_2.2 envz_merge F
+GLIBC_2.2 envz_remove F
+GLIBC_2.2 envz_strip F
+GLIBC_2.2 erand48 F
+GLIBC_2.2 erand48_r F
+GLIBC_2.2 err F
+GLIBC_2.2 error F
+GLIBC_2.2 error_at_line F
+GLIBC_2.2 error_message_count D 0x4
+GLIBC_2.2 error_one_per_line D 0x4
+GLIBC_2.2 error_print_progname D 0x4
+GLIBC_2.2 errx F
+GLIBC_2.2 ether_aton F
+GLIBC_2.2 ether_aton_r F
+GLIBC_2.2 ether_hostton F
+GLIBC_2.2 ether_line F
+GLIBC_2.2 ether_ntoa F
+GLIBC_2.2 ether_ntoa_r F
+GLIBC_2.2 ether_ntohost F
+GLIBC_2.2 euidaccess F
+GLIBC_2.2 execl F
+GLIBC_2.2 execle F
+GLIBC_2.2 execlp F
+GLIBC_2.2 execv F
+GLIBC_2.2 execve F
+GLIBC_2.2 execvp F
+GLIBC_2.2 exit F
+GLIBC_2.2 fattach F
+GLIBC_2.2 fchdir F
+GLIBC_2.2 fchflags F
+GLIBC_2.2 fchmod F
+GLIBC_2.2 fchown F
+GLIBC_2.2 fclose F
+GLIBC_2.2 fcloseall F
+GLIBC_2.2 fcntl F
+GLIBC_2.2 fcvt F
+GLIBC_2.2 fcvt_r F
+GLIBC_2.2 fdatasync F
+GLIBC_2.2 fdetach F
+GLIBC_2.2 fdopen F
+GLIBC_2.2 feof F
+GLIBC_2.2 feof_unlocked F
+GLIBC_2.2 ferror F
+GLIBC_2.2 ferror_unlocked F
+GLIBC_2.2 fexecve F
+GLIBC_2.2 fflush F
+GLIBC_2.2 fflush_unlocked F
+GLIBC_2.2 ffs F
+GLIBC_2.2 ffsl F
+GLIBC_2.2 ffsll F
+GLIBC_2.2 fgetc F
+GLIBC_2.2 fgetc_unlocked F
+GLIBC_2.2 fgetgrent F
+GLIBC_2.2 fgetgrent_r F
+GLIBC_2.2 fgetpos F
+GLIBC_2.2 fgetpos64 F
+GLIBC_2.2 fgetpwent F
+GLIBC_2.2 fgetpwent_r F
+GLIBC_2.2 fgets F
+GLIBC_2.2 fgets_unlocked F
+GLIBC_2.2 fgetspent F
+GLIBC_2.2 fgetspent_r F
+GLIBC_2.2 fgetwc F
+GLIBC_2.2 fgetwc_unlocked F
+GLIBC_2.2 fgetws F
+GLIBC_2.2 fgetws_unlocked F
+GLIBC_2.2 fileno F
+GLIBC_2.2 fileno_unlocked F
+GLIBC_2.2 finite F
+GLIBC_2.2 finitef F
+GLIBC_2.2 finitel F
+GLIBC_2.2 flock F
+GLIBC_2.2 flockfile F
+GLIBC_2.2 fmemopen F
+GLIBC_2.2 fmtmsg F
+GLIBC_2.2 fnmatch F
+GLIBC_2.2 fopen F
+GLIBC_2.2 fopen64 F
+GLIBC_2.2 fopencookie F
+GLIBC_2.2 fork F
+GLIBC_2.2 fpathconf F
+GLIBC_2.2 fprintf F
+GLIBC_2.2 fputc F
+GLIBC_2.2 fputc_unlocked F
+GLIBC_2.2 fputs F
+GLIBC_2.2 fputs_unlocked F
+GLIBC_2.2 fputwc F
+GLIBC_2.2 fputwc_unlocked F
+GLIBC_2.2 fputws F
+GLIBC_2.2 fputws_unlocked F
+GLIBC_2.2 fread F
+GLIBC_2.2 fread_unlocked F
+GLIBC_2.2 free F
+GLIBC_2.2 freeaddrinfo F
+GLIBC_2.2 freopen F
+GLIBC_2.2 freopen64 F
+GLIBC_2.2 frexp F
+GLIBC_2.2 frexpf F
+GLIBC_2.2 frexpl F
+GLIBC_2.2 fscanf F
+GLIBC_2.2 fseek F
+GLIBC_2.2 fseeko F
+GLIBC_2.2 fseeko64 F
+GLIBC_2.2 fsetpos F
+GLIBC_2.2 fsetpos64 F
+GLIBC_2.2 fstatfs F
+GLIBC_2.2 fstatfs64 F
+GLIBC_2.2 fstatvfs F
+GLIBC_2.2 fstatvfs64 F
+GLIBC_2.2 fsync F
+GLIBC_2.2 ftell F
+GLIBC_2.2 ftello F
+GLIBC_2.2 ftello64 F
+GLIBC_2.2 ftime F
+GLIBC_2.2 ftok F
+GLIBC_2.2 ftruncate F
+GLIBC_2.2 ftruncate64 F
+GLIBC_2.2 ftrylockfile F
+GLIBC_2.2 fts_children F
+GLIBC_2.2 fts_close F
+GLIBC_2.2 fts_open F
+GLIBC_2.2 fts_read F
+GLIBC_2.2 fts_set F
+GLIBC_2.2 ftw F
+GLIBC_2.2 ftw64 F
+GLIBC_2.2 funlockfile F
+GLIBC_2.2 fwide F
+GLIBC_2.2 fwprintf F
+GLIBC_2.2 fwrite F
+GLIBC_2.2 fwrite_unlocked F
+GLIBC_2.2 fwscanf F
+GLIBC_2.2 gai_strerror F
+GLIBC_2.2 gcvt F
+GLIBC_2.2 get_avphys_pages F
+GLIBC_2.2 get_current_dir_name F
+GLIBC_2.2 get_kernel_syms F
+GLIBC_2.2 get_myaddress F
+GLIBC_2.2 get_nprocs F
+GLIBC_2.2 get_nprocs_conf F
+GLIBC_2.2 get_phys_pages F
+GLIBC_2.2 getaddrinfo F
+GLIBC_2.2 getaliasbyname F
+GLIBC_2.2 getaliasbyname_r F
+GLIBC_2.2 getaliasent F
+GLIBC_2.2 getaliasent_r F
+GLIBC_2.2 getc F
+GLIBC_2.2 getc_unlocked F
+GLIBC_2.2 getchar F
+GLIBC_2.2 getchar_unlocked F
+GLIBC_2.2 getcontext F
+GLIBC_2.2 getcwd F
+GLIBC_2.2 getdate F
+GLIBC_2.2 getdate_err D 0x4
+GLIBC_2.2 getdate_r F
+GLIBC_2.2 getdelim F
+GLIBC_2.2 getdirentries F
+GLIBC_2.2 getdirentries64 F
+GLIBC_2.2 getdomainname F
+GLIBC_2.2 getdtablesize F
+GLIBC_2.2 getegid F
+GLIBC_2.2 getenv F
+GLIBC_2.2 geteuid F
+GLIBC_2.2 getfsent F
+GLIBC_2.2 getfsfile F
+GLIBC_2.2 getfsspec F
+GLIBC_2.2 getgid F
+GLIBC_2.2 getgrent F
+GLIBC_2.2 getgrent_r F
+GLIBC_2.2 getgrgid F
+GLIBC_2.2 getgrgid_r F
+GLIBC_2.2 getgrnam F
+GLIBC_2.2 getgrnam_r F
+GLIBC_2.2 getgroups F
+GLIBC_2.2 gethostbyaddr F
+GLIBC_2.2 gethostbyaddr_r F
+GLIBC_2.2 gethostbyname F
+GLIBC_2.2 gethostbyname2 F
+GLIBC_2.2 gethostbyname2_r F
+GLIBC_2.2 gethostbyname_r F
+GLIBC_2.2 gethostent F
+GLIBC_2.2 gethostent_r F
+GLIBC_2.2 gethostid F
+GLIBC_2.2 gethostname F
+GLIBC_2.2 getitimer F
+GLIBC_2.2 getline F
+GLIBC_2.2 getloadavg F
+GLIBC_2.2 getlogin F
+GLIBC_2.2 getlogin_r F
+GLIBC_2.2 getmntent F
+GLIBC_2.2 getmntent_r F
+GLIBC_2.2 getmsg F
+GLIBC_2.2 getnameinfo F
+GLIBC_2.2 getnetbyaddr F
+GLIBC_2.2 getnetbyaddr_r F
+GLIBC_2.2 getnetbyname F
+GLIBC_2.2 getnetbyname_r F
+GLIBC_2.2 getnetent F
+GLIBC_2.2 getnetent_r F
+GLIBC_2.2 getnetgrent F
+GLIBC_2.2 getnetgrent_r F
+GLIBC_2.2 getnetname F
+GLIBC_2.2 getopt F
+GLIBC_2.2 getopt_long F
+GLIBC_2.2 getopt_long_only F
+GLIBC_2.2 getpagesize F
+GLIBC_2.2 getpass F
+GLIBC_2.2 getpeername F
+GLIBC_2.2 getpgid F
+GLIBC_2.2 getpgrp F
+GLIBC_2.2 getpid F
+GLIBC_2.2 getpmsg F
+GLIBC_2.2 getppid F
+GLIBC_2.2 getpriority F
+GLIBC_2.2 getprotobyname F
+GLIBC_2.2 getprotobyname_r F
+GLIBC_2.2 getprotobynumber F
+GLIBC_2.2 getprotobynumber_r F
+GLIBC_2.2 getprotoent F
+GLIBC_2.2 getprotoent_r F
+GLIBC_2.2 getpt F
+GLIBC_2.2 getpublickey F
+GLIBC_2.2 getpw F
+GLIBC_2.2 getpwent F
+GLIBC_2.2 getpwent_r F
+GLIBC_2.2 getpwnam F
+GLIBC_2.2 getpwnam_r F
+GLIBC_2.2 getpwuid F
+GLIBC_2.2 getpwuid_r F
+GLIBC_2.2 getresgid F
+GLIBC_2.2 getresuid F
+GLIBC_2.2 getrlimit F
+GLIBC_2.2 getrlimit64 F
+GLIBC_2.2 getrpcbyname F
+GLIBC_2.2 getrpcbyname_r F
+GLIBC_2.2 getrpcbynumber F
+GLIBC_2.2 getrpcbynumber_r F
+GLIBC_2.2 getrpcent F
+GLIBC_2.2 getrpcent_r F
+GLIBC_2.2 getrpcport F
+GLIBC_2.2 getrusage F
+GLIBC_2.2 gets F
+GLIBC_2.2 getsecretkey F
+GLIBC_2.2 getservbyname F
+GLIBC_2.2 getservbyname_r F
+GLIBC_2.2 getservbyport F
+GLIBC_2.2 getservbyport_r F
+GLIBC_2.2 getservent F
+GLIBC_2.2 getservent_r F
+GLIBC_2.2 getsid F
+GLIBC_2.2 getsockname F
+GLIBC_2.2 getsockopt F
+GLIBC_2.2 getspent F
+GLIBC_2.2 getspent_r F
+GLIBC_2.2 getspnam F
+GLIBC_2.2 getspnam_r F
+GLIBC_2.2 getsubopt F
+GLIBC_2.2 gettext F
+GLIBC_2.2 gettimeofday F
+GLIBC_2.2 getttyent F
+GLIBC_2.2 getttynam F
+GLIBC_2.2 getuid F
+GLIBC_2.2 getusershell F
+GLIBC_2.2 getutent F
+GLIBC_2.2 getutent_r F
+GLIBC_2.2 getutid F
+GLIBC_2.2 getutid_r F
+GLIBC_2.2 getutline F
+GLIBC_2.2 getutline_r F
+GLIBC_2.2 getutmp F
+GLIBC_2.2 getutmpx F
+GLIBC_2.2 getutxent F
+GLIBC_2.2 getutxid F
+GLIBC_2.2 getutxline F
+GLIBC_2.2 getw F
+GLIBC_2.2 getwc F
+GLIBC_2.2 getwc_unlocked F
+GLIBC_2.2 getwchar F
+GLIBC_2.2 getwchar_unlocked F
+GLIBC_2.2 getwd F
+GLIBC_2.2 glob F
+GLIBC_2.2 glob64 F
+GLIBC_2.2 glob_pattern_p F
+GLIBC_2.2 globfree F
+GLIBC_2.2 globfree64 F
+GLIBC_2.2 gmtime F
+GLIBC_2.2 gmtime_r F
+GLIBC_2.2 gnu_get_libc_release F
+GLIBC_2.2 gnu_get_libc_version F
+GLIBC_2.2 grantpt F
+GLIBC_2.2 group_member F
+GLIBC_2.2 gsignal F
+GLIBC_2.2 gtty F
+GLIBC_2.2 h_errlist D 0x14
+GLIBC_2.2 h_nerr D 0x4
+GLIBC_2.2 hasmntopt F
+GLIBC_2.2 hcreate F
+GLIBC_2.2 hcreate_r F
+GLIBC_2.2 hdestroy F
+GLIBC_2.2 hdestroy_r F
+GLIBC_2.2 herror F
+GLIBC_2.2 host2netname F
+GLIBC_2.2 hsearch F
+GLIBC_2.2 hsearch_r F
+GLIBC_2.2 hstrerror F
+GLIBC_2.2 htonl F
+GLIBC_2.2 htons F
+GLIBC_2.2 iconv F
+GLIBC_2.2 iconv_close F
+GLIBC_2.2 iconv_open F
+GLIBC_2.2 if_freenameindex F
+GLIBC_2.2 if_indextoname F
+GLIBC_2.2 if_nameindex F
+GLIBC_2.2 if_nametoindex F
+GLIBC_2.2 imaxabs F
+GLIBC_2.2 imaxdiv F
+GLIBC_2.2 in6addr_any D 0x10
+GLIBC_2.2 in6addr_loopback D 0x10
+GLIBC_2.2 index F
+GLIBC_2.2 inet_addr F
+GLIBC_2.2 inet_aton F
+GLIBC_2.2 inet_lnaof F
+GLIBC_2.2 inet_makeaddr F
+GLIBC_2.2 inet_netof F
+GLIBC_2.2 inet_network F
+GLIBC_2.2 inet_nsap_addr F
+GLIBC_2.2 inet_nsap_ntoa F
+GLIBC_2.2 inet_ntoa F
+GLIBC_2.2 inet_ntop F
+GLIBC_2.2 inet_pton F
+GLIBC_2.2 init_module F
+GLIBC_2.2 initgroups F
+GLIBC_2.2 initstate F
+GLIBC_2.2 initstate_r F
+GLIBC_2.2 innetgr F
+GLIBC_2.2 insque F
+GLIBC_2.2 ioctl F
+GLIBC_2.2 iruserok F
+GLIBC_2.2 iruserok_af F
+GLIBC_2.2 isalnum F
+GLIBC_2.2 isalpha F
+GLIBC_2.2 isascii F
+GLIBC_2.2 isastream F
+GLIBC_2.2 isatty F
+GLIBC_2.2 isblank F
+GLIBC_2.2 iscntrl F
+GLIBC_2.2 isdigit F
+GLIBC_2.2 isfdtype F
+GLIBC_2.2 isgraph F
+GLIBC_2.2 isinf F
+GLIBC_2.2 isinff F
+GLIBC_2.2 isinfl F
+GLIBC_2.2 islower F
+GLIBC_2.2 isnan F
+GLIBC_2.2 isnanf F
+GLIBC_2.2 isnanl F
+GLIBC_2.2 isprint F
+GLIBC_2.2 ispunct F
+GLIBC_2.2 isspace F
+GLIBC_2.2 isupper F
+GLIBC_2.2 iswalnum F
+GLIBC_2.2 iswalpha F
+GLIBC_2.2 iswblank F
+GLIBC_2.2 iswcntrl F
+GLIBC_2.2 iswctype F
+GLIBC_2.2 iswdigit F
+GLIBC_2.2 iswgraph F
+GLIBC_2.2 iswlower F
+GLIBC_2.2 iswprint F
+GLIBC_2.2 iswpunct F
+GLIBC_2.2 iswspace F
+GLIBC_2.2 iswupper F
+GLIBC_2.2 iswxdigit F
+GLIBC_2.2 isxdigit F
+GLIBC_2.2 jrand48 F
+GLIBC_2.2 jrand48_r F
+GLIBC_2.2 key_decryptsession F
+GLIBC_2.2 key_decryptsession_pk F
+GLIBC_2.2 key_encryptsession F
+GLIBC_2.2 key_encryptsession_pk F
+GLIBC_2.2 key_gendes F
+GLIBC_2.2 key_get_conv F
+GLIBC_2.2 key_secretkey_is_set F
+GLIBC_2.2 key_setnet F
+GLIBC_2.2 key_setsecret F
+GLIBC_2.2 kill F
+GLIBC_2.2 killpg F
+GLIBC_2.2 klogctl F
+GLIBC_2.2 l64a F
+GLIBC_2.2 labs F
+GLIBC_2.2 lchown F
+GLIBC_2.2 lckpwdf F
+GLIBC_2.2 lcong48 F
+GLIBC_2.2 lcong48_r F
+GLIBC_2.2 ldexp F
+GLIBC_2.2 ldexpf F
+GLIBC_2.2 ldexpl F
+GLIBC_2.2 ldiv F
+GLIBC_2.2 lfind F
+GLIBC_2.2 link F
+GLIBC_2.2 listen F
+GLIBC_2.2 llabs F
+GLIBC_2.2 lldiv F
+GLIBC_2.2 llseek F
+GLIBC_2.2 loc1 D 0x4
+GLIBC_2.2 loc2 D 0x4
+GLIBC_2.2 localeconv F
+GLIBC_2.2 localtime F
+GLIBC_2.2 localtime_r F
+GLIBC_2.2 lockf F
+GLIBC_2.2 lockf64 F
+GLIBC_2.2 locs D 0x4
+GLIBC_2.2 longjmp F
+GLIBC_2.2 lrand48 F
+GLIBC_2.2 lrand48_r F
+GLIBC_2.2 lsearch F
+GLIBC_2.2 lseek F
+GLIBC_2.2 lseek64 F
+GLIBC_2.2 madvise F
+GLIBC_2.2 makecontext F
+GLIBC_2.2 mallinfo F
+GLIBC_2.2 malloc F
+GLIBC_2.2 malloc_get_state F
+GLIBC_2.2 malloc_set_state F
+GLIBC_2.2 malloc_stats F
+GLIBC_2.2 malloc_trim F
+GLIBC_2.2 malloc_usable_size F
+GLIBC_2.2 mallopt F
+GLIBC_2.2 mallwatch D 0x4
+GLIBC_2.2 mblen F
+GLIBC_2.2 mbrlen F
+GLIBC_2.2 mbrtowc F
+GLIBC_2.2 mbsinit F
+GLIBC_2.2 mbsnrtowcs F
+GLIBC_2.2 mbsrtowcs F
+GLIBC_2.2 mbstowcs F
+GLIBC_2.2 mbtowc F
+GLIBC_2.2 mcheck F
+GLIBC_2.2 mcheck_check_all F
+GLIBC_2.2 mcheck_pedantic F
+GLIBC_2.2 mcount F
+GLIBC_2.2 memalign F
+GLIBC_2.2 memccpy F
+GLIBC_2.2 memchr F
+GLIBC_2.2 memcmp F
+GLIBC_2.2 memcpy F
+GLIBC_2.2 memfrob F
+GLIBC_2.2 memmem F
+GLIBC_2.2 memmove F
+GLIBC_2.2 mempcpy F
+GLIBC_2.2 memrchr F
+GLIBC_2.2 memset F
+GLIBC_2.2 mincore F
+GLIBC_2.2 mkdir F
+GLIBC_2.2 mkdtemp F
+GLIBC_2.2 mkfifo F
+GLIBC_2.2 mkstemp F
+GLIBC_2.2 mkstemp64 F
+GLIBC_2.2 mktemp F
+GLIBC_2.2 mktime F
+GLIBC_2.2 mlock F
+GLIBC_2.2 mlockall F
+GLIBC_2.2 mmap F
+GLIBC_2.2 mmap64 F
+GLIBC_2.2 modf F
+GLIBC_2.2 modff F
+GLIBC_2.2 modfl F
+GLIBC_2.2 moncontrol F
+GLIBC_2.2 monstartup F
+GLIBC_2.2 mount F
+GLIBC_2.2 mprobe F
+GLIBC_2.2 mprotect F
+GLIBC_2.2 mrand48 F
+GLIBC_2.2 mrand48_r F
+GLIBC_2.2 mremap F
+GLIBC_2.2 msgctl F
+GLIBC_2.2 msgget F
+GLIBC_2.2 msgrcv F
+GLIBC_2.2 msgsnd F
+GLIBC_2.2 msync F
+GLIBC_2.2 mtrace F
+GLIBC_2.2 munlock F
+GLIBC_2.2 munlockall F
+GLIBC_2.2 munmap F
+GLIBC_2.2 muntrace F
+GLIBC_2.2 nanosleep F
+GLIBC_2.2 netname2host F
+GLIBC_2.2 netname2user F
+GLIBC_2.2 nfsservctl F
+GLIBC_2.2 nftw F
+GLIBC_2.2 nftw64 F
+GLIBC_2.2 ngettext F
+GLIBC_2.2 nice F
+GLIBC_2.2 nl_langinfo F
+GLIBC_2.2 nrand48 F
+GLIBC_2.2 nrand48_r F
+GLIBC_2.2 ntohl F
+GLIBC_2.2 ntohs F
+GLIBC_2.2 ntp_adjtime F
+GLIBC_2.2 ntp_gettime F
+GLIBC_2.2 obstack_alloc_failed_handler D 0x4
+GLIBC_2.2 obstack_exit_failure D 0x4
+GLIBC_2.2 obstack_free F
+GLIBC_2.2 obstack_printf F
+GLIBC_2.2 obstack_vprintf F
+GLIBC_2.2 on_exit F
+GLIBC_2.2 open F
+GLIBC_2.2 open64 F
+GLIBC_2.2 open_memstream F
+GLIBC_2.2 opendir F
+GLIBC_2.2 openlog F
+GLIBC_2.2 optarg D 0x4
+GLIBC_2.2 opterr D 0x4
+GLIBC_2.2 optind D 0x4
+GLIBC_2.2 optopt D 0x4
+GLIBC_2.2 parse_printf_format F
+GLIBC_2.2 passwd2des F
+GLIBC_2.2 pathconf F
+GLIBC_2.2 pause F
+GLIBC_2.2 pclose F
+GLIBC_2.2 perror F
+GLIBC_2.2 personality F
+GLIBC_2.2 pipe F
+GLIBC_2.2 pmap_getmaps F
+GLIBC_2.2 pmap_getport F
+GLIBC_2.2 pmap_rmtcall F
+GLIBC_2.2 pmap_set F
+GLIBC_2.2 pmap_unset F
+GLIBC_2.2 poll F
+GLIBC_2.2 popen F
+GLIBC_2.2 posix_fadvise F
+GLIBC_2.2 posix_fadvise64 F
+GLIBC_2.2 posix_fallocate F
+GLIBC_2.2 posix_fallocate64 F
+GLIBC_2.2 posix_madvise F
+GLIBC_2.2 posix_memalign F
+GLIBC_2.2 posix_spawn F
+GLIBC_2.2 posix_spawn_file_actions_addclose F
+GLIBC_2.2 posix_spawn_file_actions_adddup2 F
+GLIBC_2.2 posix_spawn_file_actions_addopen F
+GLIBC_2.2 posix_spawn_file_actions_destroy F
+GLIBC_2.2 posix_spawn_file_actions_init F
+GLIBC_2.2 posix_spawnattr_destroy F
+GLIBC_2.2 posix_spawnattr_getflags F
+GLIBC_2.2 posix_spawnattr_getpgroup F
+GLIBC_2.2 posix_spawnattr_getschedparam F
+GLIBC_2.2 posix_spawnattr_getschedpolicy F
+GLIBC_2.2 posix_spawnattr_getsigdefault F
+GLIBC_2.2 posix_spawnattr_getsigmask F
+GLIBC_2.2 posix_spawnattr_init F
+GLIBC_2.2 posix_spawnattr_setflags F
+GLIBC_2.2 posix_spawnattr_setpgroup F
+GLIBC_2.2 posix_spawnattr_setschedparam F
+GLIBC_2.2 posix_spawnattr_setschedpolicy F
+GLIBC_2.2 posix_spawnattr_setsigdefault F
+GLIBC_2.2 posix_spawnattr_setsigmask F
+GLIBC_2.2 posix_spawnp F
+GLIBC_2.2 prctl F
+GLIBC_2.2 pread F
+GLIBC_2.2 pread64 F
+GLIBC_2.2 printf F
+GLIBC_2.2 printf_size F
+GLIBC_2.2 printf_size_info F
+GLIBC_2.2 profil F
+GLIBC_2.2 program_invocation_name D 0x4
+GLIBC_2.2 program_invocation_short_name D 0x4
+GLIBC_2.2 pselect F
+GLIBC_2.2 psignal F
+GLIBC_2.2 pthread_attr_destroy F
+GLIBC_2.2 pthread_attr_getdetachstate F
+GLIBC_2.2 pthread_attr_getinheritsched F
+GLIBC_2.2 pthread_attr_getschedparam F
+GLIBC_2.2 pthread_attr_getschedpolicy F
+GLIBC_2.2 pthread_attr_getscope F
+GLIBC_2.2 pthread_attr_init F
+GLIBC_2.2 pthread_attr_setdetachstate F
+GLIBC_2.2 pthread_attr_setinheritsched F
+GLIBC_2.2 pthread_attr_setschedparam F
+GLIBC_2.2 pthread_attr_setschedpolicy F
+GLIBC_2.2 pthread_attr_setscope F
+GLIBC_2.2 pthread_cond_broadcast F
+GLIBC_2.2 pthread_cond_destroy F
+GLIBC_2.2 pthread_cond_init F
+GLIBC_2.2 pthread_cond_signal F
+GLIBC_2.2 pthread_cond_timedwait F
+GLIBC_2.2 pthread_cond_wait F
+GLIBC_2.2 pthread_condattr_destroy F
+GLIBC_2.2 pthread_condattr_init F
+GLIBC_2.2 pthread_equal F
+GLIBC_2.2 pthread_exit F
+GLIBC_2.2 pthread_getschedparam F
+GLIBC_2.2 pthread_mutex_destroy F
+GLIBC_2.2 pthread_mutex_init F
+GLIBC_2.2 pthread_mutex_lock F
+GLIBC_2.2 pthread_mutex_unlock F
+GLIBC_2.2 pthread_self F
+GLIBC_2.2 pthread_setcancelstate F
+GLIBC_2.2 pthread_setcanceltype F
+GLIBC_2.2 pthread_setschedparam F
+GLIBC_2.2 ptrace F
+GLIBC_2.2 ptsname F
+GLIBC_2.2 ptsname_r F
+GLIBC_2.2 putc F
+GLIBC_2.2 putc_unlocked F
+GLIBC_2.2 putchar F
+GLIBC_2.2 putchar_unlocked F
+GLIBC_2.2 putenv F
+GLIBC_2.2 putgrent F
+GLIBC_2.2 putmsg F
+GLIBC_2.2 putpmsg F
+GLIBC_2.2 putpwent F
+GLIBC_2.2 puts F
+GLIBC_2.2 putspent F
+GLIBC_2.2 pututline F
+GLIBC_2.2 pututxline F
+GLIBC_2.2 putw F
+GLIBC_2.2 putwc F
+GLIBC_2.2 putwc_unlocked F
+GLIBC_2.2 putwchar F
+GLIBC_2.2 putwchar_unlocked F
+GLIBC_2.2 pvalloc F
+GLIBC_2.2 pwrite F
+GLIBC_2.2 pwrite64 F
+GLIBC_2.2 qecvt F
+GLIBC_2.2 qecvt_r F
+GLIBC_2.2 qfcvt F
+GLIBC_2.2 qfcvt_r F
+GLIBC_2.2 qgcvt F
+GLIBC_2.2 qsort F
+GLIBC_2.2 query_module F
+GLIBC_2.2 quotactl F
+GLIBC_2.2 raise F
+GLIBC_2.2 rand F
+GLIBC_2.2 rand_r F
+GLIBC_2.2 random F
+GLIBC_2.2 random_r F
+GLIBC_2.2 rawmemchr F
+GLIBC_2.2 rcmd F
+GLIBC_2.2 rcmd_af F
+GLIBC_2.2 re_comp F
+GLIBC_2.2 re_compile_fastmap F
+GLIBC_2.2 re_compile_pattern F
+GLIBC_2.2 re_exec F
+GLIBC_2.2 re_match F
+GLIBC_2.2 re_match_2 F
+GLIBC_2.2 re_max_failures D 0x4
+GLIBC_2.2 re_search F
+GLIBC_2.2 re_search_2 F
+GLIBC_2.2 re_set_registers F
+GLIBC_2.2 re_set_syntax F
+GLIBC_2.2 re_syntax_options D 0x4
+GLIBC_2.2 read F
+GLIBC_2.2 readdir F
+GLIBC_2.2 readdir64 F
+GLIBC_2.2 readdir64_r F
+GLIBC_2.2 readdir_r F
+GLIBC_2.2 readlink F
+GLIBC_2.2 readv F
+GLIBC_2.2 realloc F
+GLIBC_2.2 realpath F
+GLIBC_2.2 reboot F
+GLIBC_2.2 recv F
+GLIBC_2.2 recvfrom F
+GLIBC_2.2 recvmsg F
+GLIBC_2.2 regcomp F
+GLIBC_2.2 regerror F
+GLIBC_2.2 regexec F
+GLIBC_2.2 regfree F
+GLIBC_2.2 register_printf_function F
+GLIBC_2.2 registerrpc F
+GLIBC_2.2 remove F
+GLIBC_2.2 remque F
+GLIBC_2.2 rename F
+GLIBC_2.2 revoke F
+GLIBC_2.2 rewind F
+GLIBC_2.2 rewinddir F
+GLIBC_2.2 rexec F
+GLIBC_2.2 rexec_af F
+GLIBC_2.2 rexecoptions D 0x4
+GLIBC_2.2 rindex F
+GLIBC_2.2 rmdir F
+GLIBC_2.2 rpc_createerr D 0x10
+GLIBC_2.2 rpmatch F
+GLIBC_2.2 rresvport F
+GLIBC_2.2 rresvport_af F
+GLIBC_2.2 rtime F
+GLIBC_2.2 ruserok F
+GLIBC_2.2 ruserok_af F
+GLIBC_2.2 ruserpass F
+GLIBC_2.2 sbrk F
+GLIBC_2.2 scalbn F
+GLIBC_2.2 scalbnf F
+GLIBC_2.2 scalbnl F
+GLIBC_2.2 scandir F
+GLIBC_2.2 scandir64 F
+GLIBC_2.2 scanf F
+GLIBC_2.2 sched_get_priority_max F
+GLIBC_2.2 sched_get_priority_min F
+GLIBC_2.2 sched_getparam F
+GLIBC_2.2 sched_getscheduler F
+GLIBC_2.2 sched_rr_get_interval F
+GLIBC_2.2 sched_setparam F
+GLIBC_2.2 sched_setscheduler F
+GLIBC_2.2 sched_yield F
+GLIBC_2.2 seed48 F
+GLIBC_2.2 seed48_r F
+GLIBC_2.2 seekdir F
+GLIBC_2.2 select F
+GLIBC_2.2 semctl F
+GLIBC_2.2 semget F
+GLIBC_2.2 semop F
+GLIBC_2.2 send F
+GLIBC_2.2 sendfile F
+GLIBC_2.2 sendmsg F
+GLIBC_2.2 sendto F
+GLIBC_2.2 setaliasent F
+GLIBC_2.2 setbuf F
+GLIBC_2.2 setbuffer F
+GLIBC_2.2 setcontext F
+GLIBC_2.2 setdomainname F
+GLIBC_2.2 setegid F
+GLIBC_2.2 setenv F
+GLIBC_2.2 seteuid F
+GLIBC_2.2 setfsent F
+GLIBC_2.2 setfsgid F
+GLIBC_2.2 setfsuid F
+GLIBC_2.2 setgid F
+GLIBC_2.2 setgrent F
+GLIBC_2.2 setgroups F
+GLIBC_2.2 sethostent F
+GLIBC_2.2 sethostid F
+GLIBC_2.2 sethostname F
+GLIBC_2.2 setitimer F
+GLIBC_2.2 setjmp F
+GLIBC_2.2 setlinebuf F
+GLIBC_2.2 setlocale F
+GLIBC_2.2 setlogin F
+GLIBC_2.2 setlogmask F
+GLIBC_2.2 setmntent F
+GLIBC_2.2 setnetent F
+GLIBC_2.2 setnetgrent F
+GLIBC_2.2 setpgid F
+GLIBC_2.2 setpgrp F
+GLIBC_2.2 setpriority F
+GLIBC_2.2 setprotoent F
+GLIBC_2.2 setpwent F
+GLIBC_2.2 setregid F
+GLIBC_2.2 setresgid F
+GLIBC_2.2 setresuid F
+GLIBC_2.2 setreuid F
+GLIBC_2.2 setrlimit F
+GLIBC_2.2 setrlimit64 F
+GLIBC_2.2 setrpcent F
+GLIBC_2.2 setservent F
+GLIBC_2.2 setsid F
+GLIBC_2.2 setsockopt F
+GLIBC_2.2 setspent F
+GLIBC_2.2 setstate F
+GLIBC_2.2 setstate_r F
+GLIBC_2.2 settimeofday F
+GLIBC_2.2 setttyent F
+GLIBC_2.2 setuid F
+GLIBC_2.2 setusershell F
+GLIBC_2.2 setutent F
+GLIBC_2.2 setutxent F
+GLIBC_2.2 setvbuf F
+GLIBC_2.2 sgetspent F
+GLIBC_2.2 sgetspent_r F
+GLIBC_2.2 shmat F
+GLIBC_2.2 shmctl F
+GLIBC_2.2 shmdt F
+GLIBC_2.2 shmget F
+GLIBC_2.2 shutdown F
+GLIBC_2.2 sigaction F
+GLIBC_2.2 sigaddset F
+GLIBC_2.2 sigaltstack F
+GLIBC_2.2 sigandset F
+GLIBC_2.2 sigblock F
+GLIBC_2.2 sigdelset F
+GLIBC_2.2 sigemptyset F
+GLIBC_2.2 sigfillset F
+GLIBC_2.2 siggetmask F
+GLIBC_2.2 sighold F
+GLIBC_2.2 sigignore F
+GLIBC_2.2 siginterrupt F
+GLIBC_2.2 sigisemptyset F
+GLIBC_2.2 sigismember F
+GLIBC_2.2 siglongjmp F
+GLIBC_2.2 signal F
+GLIBC_2.2 sigorset F
+GLIBC_2.2 sigpause F
+GLIBC_2.2 sigpending F
+GLIBC_2.2 sigprocmask F
+GLIBC_2.2 sigqueue F
+GLIBC_2.2 sigrelse F
+GLIBC_2.2 sigreturn F
+GLIBC_2.2 sigset F
+GLIBC_2.2 sigsetmask F
+GLIBC_2.2 sigstack F
+GLIBC_2.2 sigsuspend F
+GLIBC_2.2 sigtimedwait F
+GLIBC_2.2 sigvec F
+GLIBC_2.2 sigwait F
+GLIBC_2.2 sigwaitinfo F
+GLIBC_2.2 sleep F
+GLIBC_2.2 snprintf F
+GLIBC_2.2 socket F
+GLIBC_2.2 socketpair F
+GLIBC_2.2 sprintf F
+GLIBC_2.2 srand F
+GLIBC_2.2 srand48 F
+GLIBC_2.2 srand48_r F
+GLIBC_2.2 srandom F
+GLIBC_2.2 srandom_r F
+GLIBC_2.2 sscanf F
+GLIBC_2.2 ssignal F
+GLIBC_2.2 sstk F
+GLIBC_2.2 statfs F
+GLIBC_2.2 statfs64 F
+GLIBC_2.2 statvfs F
+GLIBC_2.2 statvfs64 F
+GLIBC_2.2 stderr D 0x4
+GLIBC_2.2 stdin D 0x4
+GLIBC_2.2 stdout D 0x4
+GLIBC_2.2 step F
+GLIBC_2.2 stime F
+GLIBC_2.2 stpcpy F
+GLIBC_2.2 stpncpy F
+GLIBC_2.2 strcasecmp F
+GLIBC_2.2 strcasestr F
+GLIBC_2.2 strcat F
+GLIBC_2.2 strchr F
+GLIBC_2.2 strchrnul F
+GLIBC_2.2 strcmp F
+GLIBC_2.2 strcoll F
+GLIBC_2.2 strcpy F
+GLIBC_2.2 strcspn F
+GLIBC_2.2 strdup F
+GLIBC_2.2 strerror F
+GLIBC_2.2 strerror_r F
+GLIBC_2.2 strfmon F
+GLIBC_2.2 strfry F
+GLIBC_2.2 strftime F
+GLIBC_2.2 strlen F
+GLIBC_2.2 strncasecmp F
+GLIBC_2.2 strncat F
+GLIBC_2.2 strncmp F
+GLIBC_2.2 strncpy F
+GLIBC_2.2 strndup F
+GLIBC_2.2 strnlen F
+GLIBC_2.2 strpbrk F
+GLIBC_2.2 strptime F
+GLIBC_2.2 strrchr F
+GLIBC_2.2 strsep F
+GLIBC_2.2 strsignal F
+GLIBC_2.2 strspn F
+GLIBC_2.2 strstr F
+GLIBC_2.2 strtod F
+GLIBC_2.2 strtof F
+GLIBC_2.2 strtoimax F
+GLIBC_2.2 strtok F
+GLIBC_2.2 strtok_r F
+GLIBC_2.2 strtol F
+GLIBC_2.2 strtold F
+GLIBC_2.2 strtoll F
+GLIBC_2.2 strtoq F
+GLIBC_2.2 strtoul F
+GLIBC_2.2 strtoull F
+GLIBC_2.2 strtoumax F
+GLIBC_2.2 strtouq F
+GLIBC_2.2 strverscmp F
+GLIBC_2.2 strxfrm F
+GLIBC_2.2 stty F
+GLIBC_2.2 svc_exit F
+GLIBC_2.2 svc_fdset D 0x80
+GLIBC_2.2 svc_getreq F
+GLIBC_2.2 svc_getreq_common F
+GLIBC_2.2 svc_getreq_poll F
+GLIBC_2.2 svc_getreqset F
+GLIBC_2.2 svc_max_pollfd D 0x4
+GLIBC_2.2 svc_pollfd D 0x4
+GLIBC_2.2 svc_register F
+GLIBC_2.2 svc_run F
+GLIBC_2.2 svc_sendreply F
+GLIBC_2.2 svc_unregister F
+GLIBC_2.2 svcauthdes_stats D 0xc
+GLIBC_2.2 svcerr_auth F
+GLIBC_2.2 svcerr_decode F
+GLIBC_2.2 svcerr_noproc F
+GLIBC_2.2 svcerr_noprog F
+GLIBC_2.2 svcerr_progvers F
+GLIBC_2.2 svcerr_systemerr F
+GLIBC_2.2 svcerr_weakauth F
+GLIBC_2.2 svcfd_create F
+GLIBC_2.2 svcraw_create F
+GLIBC_2.2 svctcp_create F
+GLIBC_2.2 svcudp_bufcreate F
+GLIBC_2.2 svcudp_create F
+GLIBC_2.2 svcudp_enablecache F
+GLIBC_2.2 svcunix_create F
+GLIBC_2.2 svcunixfd_create F
+GLIBC_2.2 swab F
+GLIBC_2.2 swapcontext F
+GLIBC_2.2 swapoff F
+GLIBC_2.2 swapon F
+GLIBC_2.2 swprintf F
+GLIBC_2.2 swscanf F
+GLIBC_2.2 symlink F
+GLIBC_2.2 sync F
+GLIBC_2.2 sys_errlist D 0x1f4
+GLIBC_2.2 sys_nerr D 0x4
+GLIBC_2.2 sys_sigabbrev D 0x100
+GLIBC_2.2 sys_siglist D 0x100
+GLIBC_2.2 syscall F
+GLIBC_2.2 sysconf F
+GLIBC_2.2 sysctl F
+GLIBC_2.2 sysinfo F
+GLIBC_2.2 syslog F
+GLIBC_2.2 system F
+GLIBC_2.2 sysv_signal F
+GLIBC_2.2 tcdrain F
+GLIBC_2.2 tcflow F
+GLIBC_2.2 tcflush F
+GLIBC_2.2 tcgetattr F
+GLIBC_2.2 tcgetpgrp F
+GLIBC_2.2 tcgetsid F
+GLIBC_2.2 tcsendbreak F
+GLIBC_2.2 tcsetattr F
+GLIBC_2.2 tcsetpgrp F
+GLIBC_2.2 tdelete F
+GLIBC_2.2 tdestroy F
+GLIBC_2.2 telldir F
+GLIBC_2.2 tempnam F
+GLIBC_2.2 textdomain F
+GLIBC_2.2 tfind F
+GLIBC_2.2 time F
+GLIBC_2.2 timegm F
+GLIBC_2.2 timelocal F
+GLIBC_2.2 times F
+GLIBC_2.2 timezone D 0x4
+GLIBC_2.2 tmpfile F
+GLIBC_2.2 tmpfile64 F
+GLIBC_2.2 tmpnam F
+GLIBC_2.2 tmpnam_r F
+GLIBC_2.2 toascii F
+GLIBC_2.2 tolower F
+GLIBC_2.2 toupper F
+GLIBC_2.2 towctrans F
+GLIBC_2.2 towlower F
+GLIBC_2.2 towupper F
+GLIBC_2.2 tr_break F
+GLIBC_2.2 truncate F
+GLIBC_2.2 truncate64 F
+GLIBC_2.2 tsearch F
+GLIBC_2.2 ttyname F
+GLIBC_2.2 ttyname_r F
+GLIBC_2.2 ttyslot F
+GLIBC_2.2 twalk F
+GLIBC_2.2 tzname D 0x8
+GLIBC_2.2 tzset F
+GLIBC_2.2 ualarm F
+GLIBC_2.2 ulckpwdf F
+GLIBC_2.2 ulimit F
+GLIBC_2.2 umask F
+GLIBC_2.2 umount F
+GLIBC_2.2 umount2 F
+GLIBC_2.2 uname F
+GLIBC_2.2 ungetc F
+GLIBC_2.2 ungetwc F
+GLIBC_2.2 unlink F
+GLIBC_2.2 unlockpt F
+GLIBC_2.2 unsetenv F
+GLIBC_2.2 updwtmp F
+GLIBC_2.2 updwtmpx F
+GLIBC_2.2 uselib F
+GLIBC_2.2 user2netname F
+GLIBC_2.2 usleep F
+GLIBC_2.2 ustat F
+GLIBC_2.2 utime F
+GLIBC_2.2 utimes F
+GLIBC_2.2 utmpname F
+GLIBC_2.2 utmpxname F
+GLIBC_2.2 valloc F
+GLIBC_2.2 vasprintf F
+GLIBC_2.2 vdprintf F
+GLIBC_2.2 verr F
+GLIBC_2.2 verrx F
+GLIBC_2.2 versionsort F
+GLIBC_2.2 versionsort64 F
+GLIBC_2.2 vfork F
+GLIBC_2.2 vfprintf F
+GLIBC_2.2 vfscanf F
+GLIBC_2.2 vfwprintf F
+GLIBC_2.2 vfwscanf F
+GLIBC_2.2 vhangup F
+GLIBC_2.2 vlimit F
+GLIBC_2.2 vprintf F
+GLIBC_2.2 vscanf F
+GLIBC_2.2 vsnprintf F
+GLIBC_2.2 vsprintf F
+GLIBC_2.2 vsscanf F
+GLIBC_2.2 vswprintf F
+GLIBC_2.2 vswscanf F
+GLIBC_2.2 vsyslog F
+GLIBC_2.2 vtimes F
+GLIBC_2.2 vwarn F
+GLIBC_2.2 vwarnx F
+GLIBC_2.2 vwprintf F
+GLIBC_2.2 vwscanf F
+GLIBC_2.2 wait F
+GLIBC_2.2 wait3 F
+GLIBC_2.2 wait4 F
+GLIBC_2.2 waitid F
+GLIBC_2.2 waitpid F
+GLIBC_2.2 warn F
+GLIBC_2.2 warnx F
+GLIBC_2.2 wcpcpy F
+GLIBC_2.2 wcpncpy F
+GLIBC_2.2 wcrtomb F
+GLIBC_2.2 wcscasecmp F
+GLIBC_2.2 wcscat F
+GLIBC_2.2 wcschr F
+GLIBC_2.2 wcschrnul F
+GLIBC_2.2 wcscmp F
+GLIBC_2.2 wcscoll F
+GLIBC_2.2 wcscpy F
+GLIBC_2.2 wcscspn F
+GLIBC_2.2 wcsdup F
+GLIBC_2.2 wcsftime F
+GLIBC_2.2 wcslen F
+GLIBC_2.2 wcsncasecmp F
+GLIBC_2.2 wcsncat F
+GLIBC_2.2 wcsncmp F
+GLIBC_2.2 wcsncpy F
+GLIBC_2.2 wcsnlen F
+GLIBC_2.2 wcsnrtombs F
+GLIBC_2.2 wcspbrk F
+GLIBC_2.2 wcsrchr F
+GLIBC_2.2 wcsrtombs F
+GLIBC_2.2 wcsspn F
+GLIBC_2.2 wcsstr F
+GLIBC_2.2 wcstod F
+GLIBC_2.2 wcstof F
+GLIBC_2.2 wcstoimax F
+GLIBC_2.2 wcstok F
+GLIBC_2.2 wcstol F
+GLIBC_2.2 wcstold F
+GLIBC_2.2 wcstoll F
+GLIBC_2.2 wcstombs F
+GLIBC_2.2 wcstoq F
+GLIBC_2.2 wcstoul F
+GLIBC_2.2 wcstoull F
+GLIBC_2.2 wcstoumax F
+GLIBC_2.2 wcstouq F
+GLIBC_2.2 wcswcs F
+GLIBC_2.2 wcswidth F
+GLIBC_2.2 wcsxfrm F
+GLIBC_2.2 wctob F
+GLIBC_2.2 wctomb F
+GLIBC_2.2 wctrans F
+GLIBC_2.2 wctype F
+GLIBC_2.2 wcwidth F
+GLIBC_2.2 wmemchr F
+GLIBC_2.2 wmemcmp F
+GLIBC_2.2 wmemcpy F
+GLIBC_2.2 wmemmove F
+GLIBC_2.2 wmempcpy F
+GLIBC_2.2 wmemset F
+GLIBC_2.2 wordexp F
+GLIBC_2.2 wordfree F
+GLIBC_2.2 wprintf F
+GLIBC_2.2 write F
+GLIBC_2.2 writev F
+GLIBC_2.2 wscanf F
+GLIBC_2.2 xdecrypt F
+GLIBC_2.2 xdr_accepted_reply F
+GLIBC_2.2 xdr_array F
+GLIBC_2.2 xdr_authdes_cred F
+GLIBC_2.2 xdr_authdes_verf F
+GLIBC_2.2 xdr_authunix_parms F
+GLIBC_2.2 xdr_bool F
+GLIBC_2.2 xdr_bytes F
+GLIBC_2.2 xdr_callhdr F
+GLIBC_2.2 xdr_callmsg F
+GLIBC_2.2 xdr_char F
+GLIBC_2.2 xdr_cryptkeyarg F
+GLIBC_2.2 xdr_cryptkeyarg2 F
+GLIBC_2.2 xdr_cryptkeyres F
+GLIBC_2.2 xdr_des_block F
+GLIBC_2.2 xdr_double F
+GLIBC_2.2 xdr_enum F
+GLIBC_2.2 xdr_float F
+GLIBC_2.2 xdr_free F
+GLIBC_2.2 xdr_getcredres F
+GLIBC_2.2 xdr_hyper F
+GLIBC_2.2 xdr_int F
+GLIBC_2.2 xdr_int16_t F
+GLIBC_2.2 xdr_int32_t F
+GLIBC_2.2 xdr_int64_t F
+GLIBC_2.2 xdr_int8_t F
+GLIBC_2.2 xdr_key_netstarg F
+GLIBC_2.2 xdr_key_netstres F
+GLIBC_2.2 xdr_keybuf F
+GLIBC_2.2 xdr_keystatus F
+GLIBC_2.2 xdr_long F
+GLIBC_2.2 xdr_longlong_t F
+GLIBC_2.2 xdr_netnamestr F
+GLIBC_2.2 xdr_netobj F
+GLIBC_2.2 xdr_opaque F
+GLIBC_2.2 xdr_opaque_auth F
+GLIBC_2.2 xdr_pmap F
+GLIBC_2.2 xdr_pmaplist F
+GLIBC_2.2 xdr_pointer F
+GLIBC_2.2 xdr_reference F
+GLIBC_2.2 xdr_rejected_reply F
+GLIBC_2.2 xdr_replymsg F
+GLIBC_2.2 xdr_rmtcall_args F
+GLIBC_2.2 xdr_rmtcallres F
+GLIBC_2.2 xdr_short F
+GLIBC_2.2 xdr_sizeof F
+GLIBC_2.2 xdr_string F
+GLIBC_2.2 xdr_u_char F
+GLIBC_2.2 xdr_u_hyper F
+GLIBC_2.2 xdr_u_int F
+GLIBC_2.2 xdr_u_long F
+GLIBC_2.2 xdr_u_longlong_t F
+GLIBC_2.2 xdr_u_short F
+GLIBC_2.2 xdr_uint16_t F
+GLIBC_2.2 xdr_uint32_t F
+GLIBC_2.2 xdr_uint64_t F
+GLIBC_2.2 xdr_uint8_t F
+GLIBC_2.2 xdr_union F
+GLIBC_2.2 xdr_unixcred F
+GLIBC_2.2 xdr_vector F
+GLIBC_2.2 xdr_void F
+GLIBC_2.2 xdr_wrapstring F
+GLIBC_2.2 xdrmem_create F
+GLIBC_2.2 xdrrec_create F
+GLIBC_2.2 xdrrec_endofrecord F
+GLIBC_2.2 xdrrec_eof F
+GLIBC_2.2 xdrrec_skiprecord F
+GLIBC_2.2 xdrstdio_create F
+GLIBC_2.2 xencrypt F
+GLIBC_2.2 xprt_register F
+GLIBC_2.2 xprt_unregister F
+GLIBC_2.2.1 pivot_root F
+GLIBC_2.2.1 posix_openpt F
+GLIBC_2.2.2 __nss_hostname_digits_dots F
+GLIBC_2.2.3 __rpc_thread_createerr F
+GLIBC_2.2.3 __rpc_thread_svc_fdset F
+GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F
+GLIBC_2.2.3 __rpc_thread_svc_pollfd F
+GLIBC_2.2.3 fnmatch F
+GLIBC_2.2.3 sprofil F
+GLIBC_2.2.4 dl_iterate_phdr F
+GLIBC_2.2.4 getgrouplist F
+GLIBC_2.2.4 sockatmark F
+GLIBC_2.2.6 __nanosleep F
+GLIBC_2.22 fmemopen F
+GLIBC_2.23 fts64_children F
+GLIBC_2.23 fts64_close F
+GLIBC_2.23 fts64_open F
+GLIBC_2.23 fts64_read F
+GLIBC_2.23 fts64_set F
+GLIBC_2.24 quick_exit F
+GLIBC_2.25 __explicit_bzero_chk F
+GLIBC_2.25 explicit_bzero F
+GLIBC_2.25 getentropy F
+GLIBC_2.25 getrandom F
+GLIBC_2.25 strfromd F
+GLIBC_2.25 strfromf F
+GLIBC_2.25 strfroml F
+GLIBC_2.26 preadv2 F
+GLIBC_2.26 preadv64v2 F
+GLIBC_2.26 pwritev2 F
+GLIBC_2.26 pwritev64v2 F
+GLIBC_2.26 reallocarray F
+GLIBC_2.27 copy_file_range F
+GLIBC_2.27 glob F
+GLIBC_2.27 glob64 F
+GLIBC_2.27 memfd_create F
+GLIBC_2.27 mlock2 F
+GLIBC_2.27 pkey_alloc F
+GLIBC_2.27 pkey_free F
+GLIBC_2.27 pkey_get F
+GLIBC_2.27 pkey_mprotect F
+GLIBC_2.27 pkey_set F
+GLIBC_2.27 strfromf32 F
+GLIBC_2.27 strfromf32x F
+GLIBC_2.27 strfromf64 F
+GLIBC_2.27 strtof32 F
+GLIBC_2.27 strtof32_l F
+GLIBC_2.27 strtof32x F
+GLIBC_2.27 strtof32x_l F
+GLIBC_2.27 strtof64 F
+GLIBC_2.27 strtof64_l F
+GLIBC_2.27 wcstof32 F
+GLIBC_2.27 wcstof32_l F
+GLIBC_2.27 wcstof32x F
+GLIBC_2.27 wcstof32x_l F
+GLIBC_2.27 wcstof64 F
+GLIBC_2.27 wcstof64_l F
+GLIBC_2.28 fcntl F
+GLIBC_2.28 fcntl64 F
+GLIBC_2.28 renameat2 F
+GLIBC_2.28 statx F
+GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_equal F
+GLIBC_2.28 thrd_sleep F
+GLIBC_2.28 thrd_yield F
+GLIBC_2.29 getcpu F
+GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
+GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
+GLIBC_2.3 __ctype_b_loc F
+GLIBC_2.3 __ctype_tolower_loc F
+GLIBC_2.3 __ctype_toupper_loc F
+GLIBC_2.3 __isctype F
+GLIBC_2.3 __strftime_l F
+GLIBC_2.3 __uselocale F
+GLIBC_2.3 __wcsftime_l F
+GLIBC_2.3 _sys_errlist D 0x1f8
+GLIBC_2.3 _sys_nerr D 0x4
+GLIBC_2.3 duplocale F
+GLIBC_2.3 fgetxattr F
+GLIBC_2.3 flistxattr F
+GLIBC_2.3 freeifaddrs F
+GLIBC_2.3 freelocale F
+GLIBC_2.3 fremovexattr F
+GLIBC_2.3 fsetxattr F
+GLIBC_2.3 futimes F
+GLIBC_2.3 getifaddrs F
+GLIBC_2.3 getxattr F
+GLIBC_2.3 isalnum_l F
+GLIBC_2.3 isalpha_l F
+GLIBC_2.3 isblank_l F
+GLIBC_2.3 iscntrl_l F
+GLIBC_2.3 isctype F
+GLIBC_2.3 isdigit_l F
+GLIBC_2.3 isgraph_l F
+GLIBC_2.3 islower_l F
+GLIBC_2.3 isprint_l F
+GLIBC_2.3 ispunct_l F
+GLIBC_2.3 isspace_l F
+GLIBC_2.3 isupper_l F
+GLIBC_2.3 iswalnum_l F
+GLIBC_2.3 iswalpha_l F
+GLIBC_2.3 iswblank_l F
+GLIBC_2.3 iswcntrl_l F
+GLIBC_2.3 iswctype_l F
+GLIBC_2.3 iswdigit_l F
+GLIBC_2.3 iswgraph_l F
+GLIBC_2.3 iswlower_l F
+GLIBC_2.3 iswprint_l F
+GLIBC_2.3 iswpunct_l F
+GLIBC_2.3 iswspace_l F
+GLIBC_2.3 iswupper_l F
+GLIBC_2.3 iswxdigit_l F
+GLIBC_2.3 isxdigit_l F
+GLIBC_2.3 lgetxattr F
+GLIBC_2.3 listxattr F
+GLIBC_2.3 llistxattr F
+GLIBC_2.3 lremovexattr F
+GLIBC_2.3 lsetxattr F
+GLIBC_2.3 lutimes F
+GLIBC_2.3 newlocale F
+GLIBC_2.3 nl_langinfo_l F
+GLIBC_2.3 readahead F
+GLIBC_2.3 realpath F
+GLIBC_2.3 removexattr F
+GLIBC_2.3 sendfile64 F
+GLIBC_2.3 setxattr F
+GLIBC_2.3 strcasecmp_l F
+GLIBC_2.3 strcoll_l F
+GLIBC_2.3 strfmon_l F
+GLIBC_2.3 strftime_l F
+GLIBC_2.3 strncasecmp_l F
+GLIBC_2.3 strtod_l F
+GLIBC_2.3 strtof_l F
+GLIBC_2.3 strtol_l F
+GLIBC_2.3 strtold_l F
+GLIBC_2.3 strtoll_l F
+GLIBC_2.3 strtoul_l F
+GLIBC_2.3 strtoull_l F
+GLIBC_2.3 strxfrm_l F
+GLIBC_2.3 sys_errlist D 0x1f8
+GLIBC_2.3 sys_nerr D 0x4
+GLIBC_2.3 tolower_l F
+GLIBC_2.3 toupper_l F
+GLIBC_2.3 towctrans_l F
+GLIBC_2.3 towlower_l F
+GLIBC_2.3 towupper_l F
+GLIBC_2.3 uselocale F
+GLIBC_2.3 wcscasecmp_l F
+GLIBC_2.3 wcscoll_l F
+GLIBC_2.3 wcsftime_l F
+GLIBC_2.3 wcsncasecmp_l F
+GLIBC_2.3 wcstod_l F
+GLIBC_2.3 wcstof_l F
+GLIBC_2.3 wcstol_l F
+GLIBC_2.3 wcstold_l F
+GLIBC_2.3 wcstoll_l F
+GLIBC_2.3 wcstoul_l F
+GLIBC_2.3 wcstoull_l F
+GLIBC_2.3 wcsxfrm_l F
+GLIBC_2.3 wctrans_l F
+GLIBC_2.3 wctype_l F
+GLIBC_2.3.2 __register_atfork F
+GLIBC_2.3.2 epoll_create F
+GLIBC_2.3.2 epoll_ctl F
+GLIBC_2.3.2 epoll_wait F
+GLIBC_2.3.2 lchmod F
+GLIBC_2.3.2 pthread_cond_broadcast F
+GLIBC_2.3.2 pthread_cond_destroy F
+GLIBC_2.3.2 pthread_cond_init F
+GLIBC_2.3.2 pthread_cond_signal F
+GLIBC_2.3.2 pthread_cond_timedwait F
+GLIBC_2.3.2 pthread_cond_wait F
+GLIBC_2.3.2 strptime_l F
+GLIBC_2.3.3 _sys_siglist D 0x104
+GLIBC_2.3.3 gnu_dev_major F
+GLIBC_2.3.3 gnu_dev_makedev F
+GLIBC_2.3.3 gnu_dev_minor F
+GLIBC_2.3.3 inet6_option_alloc F
+GLIBC_2.3.3 inet6_option_append F
+GLIBC_2.3.3 inet6_option_find F
+GLIBC_2.3.3 inet6_option_init F
+GLIBC_2.3.3 inet6_option_next F
+GLIBC_2.3.3 inet6_option_space F
+GLIBC_2.3.3 nftw F
+GLIBC_2.3.3 nftw64 F
+GLIBC_2.3.3 posix_fadvise64 F
+GLIBC_2.3.3 posix_fallocate64 F
+GLIBC_2.3.3 remap_file_pages F
+GLIBC_2.3.3 sched_getaffinity F
+GLIBC_2.3.3 sched_setaffinity F
+GLIBC_2.3.3 semtimedop F
+GLIBC_2.3.3 sys_sigabbrev D 0x104
+GLIBC_2.3.3 sys_siglist D 0x104
+GLIBC_2.3.4 __chk_fail F
+GLIBC_2.3.4 __fprintf_chk F
+GLIBC_2.3.4 __gets_chk F
+GLIBC_2.3.4 __memcpy_chk F
+GLIBC_2.3.4 __memmove_chk F
+GLIBC_2.3.4 __mempcpy_chk F
+GLIBC_2.3.4 __memset_chk F
+GLIBC_2.3.4 __printf_chk F
+GLIBC_2.3.4 __snprintf_chk F
+GLIBC_2.3.4 __sprintf_chk F
+GLIBC_2.3.4 __stpcpy_chk F
+GLIBC_2.3.4 __strcat_chk F
+GLIBC_2.3.4 __strcpy_chk F
+GLIBC_2.3.4 __strncat_chk F
+GLIBC_2.3.4 __strncpy_chk F
+GLIBC_2.3.4 __vfprintf_chk F
+GLIBC_2.3.4 __vprintf_chk F
+GLIBC_2.3.4 __vsnprintf_chk F
+GLIBC_2.3.4 __vsprintf_chk F
+GLIBC_2.3.4 __xpg_strerror_r F
+GLIBC_2.3.4 getipv4sourcefilter F
+GLIBC_2.3.4 getsourcefilter F
+GLIBC_2.3.4 regexec F
+GLIBC_2.3.4 sched_getaffinity F
+GLIBC_2.3.4 sched_setaffinity F
+GLIBC_2.3.4 setipv4sourcefilter F
+GLIBC_2.3.4 setsourcefilter F
+GLIBC_2.3.4 xdr_quad_t F
+GLIBC_2.3.4 xdr_u_quad_t F
+GLIBC_2.30 getdents64 F
+GLIBC_2.30 gettid F
+GLIBC_2.30 tgkill F
+GLIBC_2.30 twalk_r F
+GLIBC_2.31 msgctl F
+GLIBC_2.31 semctl F
+GLIBC_2.31 shmctl F
+GLIBC_2.4 __confstr_chk F
+GLIBC_2.4 __fgets_chk F
+GLIBC_2.4 __fgets_unlocked_chk F
+GLIBC_2.4 __fgetws_chk F
+GLIBC_2.4 __fgetws_unlocked_chk F
+GLIBC_2.4 __fwprintf_chk F
+GLIBC_2.4 __fxstatat F
+GLIBC_2.4 __fxstatat64 F
+GLIBC_2.4 __getcwd_chk F
+GLIBC_2.4 __getdomainname_chk F
+GLIBC_2.4 __getgroups_chk F
+GLIBC_2.4 __gethostname_chk F
+GLIBC_2.4 __getlogin_r_chk F
+GLIBC_2.4 __getwd_chk F
+GLIBC_2.4 __mbsnrtowcs_chk F
+GLIBC_2.4 __mbsrtowcs_chk F
+GLIBC_2.4 __mbstowcs_chk F
+GLIBC_2.4 __pread64_chk F
+GLIBC_2.4 __pread_chk F
+GLIBC_2.4 __ptsname_r_chk F
+GLIBC_2.4 __read_chk F
+GLIBC_2.4 __readlink_chk F
+GLIBC_2.4 __realpath_chk F
+GLIBC_2.4 __recv_chk F
+GLIBC_2.4 __recvfrom_chk F
+GLIBC_2.4 __stack_chk_fail F
+GLIBC_2.4 __stpncpy_chk F
+GLIBC_2.4 __swprintf_chk F
+GLIBC_2.4 __syslog_chk F
+GLIBC_2.4 __ttyname_r_chk F
+GLIBC_2.4 __vfwprintf_chk F
+GLIBC_2.4 __vswprintf_chk F
+GLIBC_2.4 __vsyslog_chk F
+GLIBC_2.4 __vwprintf_chk F
+GLIBC_2.4 __wcpcpy_chk F
+GLIBC_2.4 __wcpncpy_chk F
+GLIBC_2.4 __wcrtomb_chk F
+GLIBC_2.4 __wcscat_chk F
+GLIBC_2.4 __wcscpy_chk F
+GLIBC_2.4 __wcsncat_chk F
+GLIBC_2.4 __wcsncpy_chk F
+GLIBC_2.4 __wcsnrtombs_chk F
+GLIBC_2.4 __wcsrtombs_chk F
+GLIBC_2.4 __wcstombs_chk F
+GLIBC_2.4 __wctomb_chk F
+GLIBC_2.4 __wmemcpy_chk F
+GLIBC_2.4 __wmemmove_chk F
+GLIBC_2.4 __wmempcpy_chk F
+GLIBC_2.4 __wmemset_chk F
+GLIBC_2.4 __wprintf_chk F
+GLIBC_2.4 __xmknodat F
+GLIBC_2.4 _sys_errlist D 0x210
+GLIBC_2.4 _sys_nerr D 0x4
+GLIBC_2.4 eaccess F
+GLIBC_2.4 faccessat F
+GLIBC_2.4 fchmodat F
+GLIBC_2.4 fchownat F
+GLIBC_2.4 fdopendir F
+GLIBC_2.4 futimesat F
+GLIBC_2.4 inotify_add_watch F
+GLIBC_2.4 inotify_init F
+GLIBC_2.4 inotify_rm_watch F
+GLIBC_2.4 linkat F
+GLIBC_2.4 mkdirat F
+GLIBC_2.4 mkfifoat F
+GLIBC_2.4 open_wmemstream F
+GLIBC_2.4 openat F
+GLIBC_2.4 openat64 F
+GLIBC_2.4 ppoll F
+GLIBC_2.4 readlinkat F
+GLIBC_2.4 renameat F
+GLIBC_2.4 symlinkat F
+GLIBC_2.4 sys_errlist D 0x210
+GLIBC_2.4 sys_nerr D 0x4
+GLIBC_2.4 unlinkat F
+GLIBC_2.4 unshare F
+GLIBC_2.5 __readlinkat_chk F
+GLIBC_2.5 inet6_opt_append F
+GLIBC_2.5 inet6_opt_find F
+GLIBC_2.5 inet6_opt_finish F
+GLIBC_2.5 inet6_opt_get_val F
+GLIBC_2.5 inet6_opt_init F
+GLIBC_2.5 inet6_opt_next F
+GLIBC_2.5 inet6_opt_set_val F
+GLIBC_2.5 inet6_rth_add F
+GLIBC_2.5 inet6_rth_getaddr F
+GLIBC_2.5 inet6_rth_init F
+GLIBC_2.5 inet6_rth_reverse F
+GLIBC_2.5 inet6_rth_segments F
+GLIBC_2.5 inet6_rth_space F
+GLIBC_2.5 splice F
+GLIBC_2.5 tee F
+GLIBC_2.5 vmsplice F
+GLIBC_2.6 __sched_cpucount F
+GLIBC_2.6 epoll_pwait F
+GLIBC_2.6 futimens F
+GLIBC_2.6 sched_getcpu F
+GLIBC_2.6 strerror_l F
+GLIBC_2.6 sync_file_range F
+GLIBC_2.6 utimensat F
+GLIBC_2.7 __fread_chk F
+GLIBC_2.7 __fread_unlocked_chk F
+GLIBC_2.7 __isoc99_fscanf F
+GLIBC_2.7 __isoc99_fwscanf F
+GLIBC_2.7 __isoc99_scanf F
+GLIBC_2.7 __isoc99_sscanf F
+GLIBC_2.7 __isoc99_swscanf F
+GLIBC_2.7 __isoc99_vfscanf F
+GLIBC_2.7 __isoc99_vfwscanf F
+GLIBC_2.7 __isoc99_vscanf F
+GLIBC_2.7 __isoc99_vsscanf F
+GLIBC_2.7 __isoc99_vswscanf F
+GLIBC_2.7 __isoc99_vwscanf F
+GLIBC_2.7 __isoc99_wscanf F
+GLIBC_2.7 __open64_2 F
+GLIBC_2.7 __open_2 F
+GLIBC_2.7 __openat64_2 F
+GLIBC_2.7 __openat_2 F
+GLIBC_2.7 __sched_cpualloc F
+GLIBC_2.7 __sched_cpufree F
+GLIBC_2.7 eventfd F
+GLIBC_2.7 eventfd_read F
+GLIBC_2.7 eventfd_write F
+GLIBC_2.7 mkostemp F
+GLIBC_2.7 mkostemp64 F
+GLIBC_2.7 signalfd F
+GLIBC_2.8 __asprintf_chk F
+GLIBC_2.8 __dprintf_chk F
+GLIBC_2.8 __obstack_printf_chk F
+GLIBC_2.8 __obstack_vprintf_chk F
+GLIBC_2.8 __vasprintf_chk F
+GLIBC_2.8 __vdprintf_chk F
+GLIBC_2.8 qsort_r F
+GLIBC_2.8 timerfd_create F
+GLIBC_2.8 timerfd_gettime F
+GLIBC_2.8 timerfd_settime F
+GLIBC_2.9 dup3 F
+GLIBC_2.9 epoll_create1 F
+GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/sh/libcrypt.abilist b/sysdeps/unix/sysv/linux/sh/be/libcrypt.abilist
index cd6ba95280..cd6ba95280 100644
--- a/sysdeps/unix/sysv/linux/sh/libcrypt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libcrypt.abilist
diff --git a/sysdeps/unix/sysv/linux/sh/libdl.abilist b/sysdeps/unix/sysv/linux/sh/be/libdl.abilist
index 7826fde951..7826fde951 100644
--- a/sysdeps/unix/sysv/linux/sh/libdl.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libdl.abilist
diff --git a/sysdeps/unix/sysv/linux/sh/be/libm.abilist b/sysdeps/unix/sysv/linux/sh/be/libm.abilist
new file mode 100644
index 0000000000..de0f1c57c3
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sh/be/libm.abilist
@@ -0,0 +1,784 @@
+GLIBC_2.15 __acos_finite F
+GLIBC_2.15 __acosf_finite F
+GLIBC_2.15 __acosh_finite F
+GLIBC_2.15 __acoshf_finite F
+GLIBC_2.15 __asin_finite F
+GLIBC_2.15 __asinf_finite F
+GLIBC_2.15 __atan2_finite F
+GLIBC_2.15 __atan2f_finite F
+GLIBC_2.15 __atanh_finite F
+GLIBC_2.15 __atanhf_finite F
+GLIBC_2.15 __cosh_finite F
+GLIBC_2.15 __coshf_finite F
+GLIBC_2.15 __exp10_finite F
+GLIBC_2.15 __exp10f_finite F
+GLIBC_2.15 __exp2_finite F
+GLIBC_2.15 __exp2f_finite F
+GLIBC_2.15 __exp_finite F
+GLIBC_2.15 __expf_finite F
+GLIBC_2.15 __fmod_finite F
+GLIBC_2.15 __fmodf_finite F
+GLIBC_2.15 __gamma_r_finite F
+GLIBC_2.15 __gammaf_r_finite F
+GLIBC_2.15 __hypot_finite F
+GLIBC_2.15 __hypotf_finite F
+GLIBC_2.15 __j0_finite F
+GLIBC_2.15 __j0f_finite F
+GLIBC_2.15 __j1_finite F
+GLIBC_2.15 __j1f_finite F
+GLIBC_2.15 __jn_finite F
+GLIBC_2.15 __jnf_finite F
+GLIBC_2.15 __lgamma_r_finite F
+GLIBC_2.15 __lgammaf_r_finite F
+GLIBC_2.15 __log10_finite F
+GLIBC_2.15 __log10f_finite F
+GLIBC_2.15 __log2_finite F
+GLIBC_2.15 __log2f_finite F
+GLIBC_2.15 __log_finite F
+GLIBC_2.15 __logf_finite F
+GLIBC_2.15 __pow_finite F
+GLIBC_2.15 __powf_finite F
+GLIBC_2.15 __remainder_finite F
+GLIBC_2.15 __remainderf_finite F
+GLIBC_2.15 __scalb_finite F
+GLIBC_2.15 __scalbf_finite F
+GLIBC_2.15 __sinh_finite F
+GLIBC_2.15 __sinhf_finite F
+GLIBC_2.15 __sqrt_finite F
+GLIBC_2.15 __sqrtf_finite F
+GLIBC_2.15 __y0_finite F
+GLIBC_2.15 __y0f_finite F
+GLIBC_2.15 __y1_finite F
+GLIBC_2.15 __y1f_finite F
+GLIBC_2.15 __yn_finite F
+GLIBC_2.15 __ynf_finite F
+GLIBC_2.18 __issignaling F
+GLIBC_2.18 __issignalingf F
+GLIBC_2.2 _LIB_VERSION D 0x4
+GLIBC_2.2 __clog10 F
+GLIBC_2.2 __clog10f F
+GLIBC_2.2 __clog10l F
+GLIBC_2.2 __finite F
+GLIBC_2.2 __finitef F
+GLIBC_2.2 __finitel F
+GLIBC_2.2 __fpclassify F
+GLIBC_2.2 __fpclassifyf F
+GLIBC_2.2 __signbit F
+GLIBC_2.2 __signbitf F
+GLIBC_2.2 acos F
+GLIBC_2.2 acosf F
+GLIBC_2.2 acosh F
+GLIBC_2.2 acoshf F
+GLIBC_2.2 acoshl F
+GLIBC_2.2 acosl F
+GLIBC_2.2 asin F
+GLIBC_2.2 asinf F
+GLIBC_2.2 asinh F
+GLIBC_2.2 asinhf F
+GLIBC_2.2 asinhl F
+GLIBC_2.2 asinl F
+GLIBC_2.2 atan F
+GLIBC_2.2 atan2 F
+GLIBC_2.2 atan2f F
+GLIBC_2.2 atan2l F
+GLIBC_2.2 atanf F
+GLIBC_2.2 atanh F
+GLIBC_2.2 atanhf F
+GLIBC_2.2 atanhl F
+GLIBC_2.2 atanl F
+GLIBC_2.2 cabs F
+GLIBC_2.2 cabsf F
+GLIBC_2.2 cabsl F
+GLIBC_2.2 cacos F
+GLIBC_2.2 cacosf F
+GLIBC_2.2 cacosh F
+GLIBC_2.2 cacoshf F
+GLIBC_2.2 cacoshl F
+GLIBC_2.2 cacosl F
+GLIBC_2.2 carg F
+GLIBC_2.2 cargf F
+GLIBC_2.2 cargl F
+GLIBC_2.2 casin F
+GLIBC_2.2 casinf F
+GLIBC_2.2 casinh F
+GLIBC_2.2 casinhf F
+GLIBC_2.2 casinhl F
+GLIBC_2.2 casinl F
+GLIBC_2.2 catan F
+GLIBC_2.2 catanf F
+GLIBC_2.2 catanh F
+GLIBC_2.2 catanhf F
+GLIBC_2.2 catanhl F
+GLIBC_2.2 catanl F
+GLIBC_2.2 cbrt F
+GLIBC_2.2 cbrtf F
+GLIBC_2.2 cbrtl F
+GLIBC_2.2 ccos F
+GLIBC_2.2 ccosf F
+GLIBC_2.2 ccosh F
+GLIBC_2.2 ccoshf F
+GLIBC_2.2 ccoshl F
+GLIBC_2.2 ccosl F
+GLIBC_2.2 ceil F
+GLIBC_2.2 ceilf F
+GLIBC_2.2 ceill F
+GLIBC_2.2 cexp F
+GLIBC_2.2 cexpf F
+GLIBC_2.2 cexpl F
+GLIBC_2.2 cimag F
+GLIBC_2.2 cimagf F
+GLIBC_2.2 cimagl F
+GLIBC_2.2 clog F
+GLIBC_2.2 clog10 F
+GLIBC_2.2 clog10f F
+GLIBC_2.2 clog10l F
+GLIBC_2.2 clogf F
+GLIBC_2.2 clogl F
+GLIBC_2.2 conj F
+GLIBC_2.2 conjf F
+GLIBC_2.2 conjl F
+GLIBC_2.2 copysign F
+GLIBC_2.2 copysignf F
+GLIBC_2.2 copysignl F
+GLIBC_2.2 cos F
+GLIBC_2.2 cosf F
+GLIBC_2.2 cosh F
+GLIBC_2.2 coshf F
+GLIBC_2.2 coshl F
+GLIBC_2.2 cosl F
+GLIBC_2.2 cpow F
+GLIBC_2.2 cpowf F
+GLIBC_2.2 cpowl F
+GLIBC_2.2 cproj F
+GLIBC_2.2 cprojf F
+GLIBC_2.2 cprojl F
+GLIBC_2.2 creal F
+GLIBC_2.2 crealf F
+GLIBC_2.2 creall F
+GLIBC_2.2 csin F
+GLIBC_2.2 csinf F
+GLIBC_2.2 csinh F
+GLIBC_2.2 csinhf F
+GLIBC_2.2 csinhl F
+GLIBC_2.2 csinl F
+GLIBC_2.2 csqrt F
+GLIBC_2.2 csqrtf F
+GLIBC_2.2 csqrtl F
+GLIBC_2.2 ctan F
+GLIBC_2.2 ctanf F
+GLIBC_2.2 ctanh F
+GLIBC_2.2 ctanhf F
+GLIBC_2.2 ctanhl F
+GLIBC_2.2 ctanl F
+GLIBC_2.2 drem F
+GLIBC_2.2 dremf F
+GLIBC_2.2 dreml F
+GLIBC_2.2 erf F
+GLIBC_2.2 erfc F
+GLIBC_2.2 erfcf F
+GLIBC_2.2 erfcl F
+GLIBC_2.2 erff F
+GLIBC_2.2 erfl F
+GLIBC_2.2 exp F
+GLIBC_2.2 exp10 F
+GLIBC_2.2 exp10f F
+GLIBC_2.2 exp10l F
+GLIBC_2.2 exp2 F
+GLIBC_2.2 exp2f F
+GLIBC_2.2 expf F
+GLIBC_2.2 expl F
+GLIBC_2.2 expm1 F
+GLIBC_2.2 expm1f F
+GLIBC_2.2 expm1l F
+GLIBC_2.2 fabs F
+GLIBC_2.2 fabsf F
+GLIBC_2.2 fabsl F
+GLIBC_2.2 fdim F
+GLIBC_2.2 fdimf F
+GLIBC_2.2 fdiml F
+GLIBC_2.2 feclearexcept F
+GLIBC_2.2 fedisableexcept F
+GLIBC_2.2 feenableexcept F
+GLIBC_2.2 fegetenv F
+GLIBC_2.2 fegetexcept F
+GLIBC_2.2 fegetexceptflag F
+GLIBC_2.2 fegetround F
+GLIBC_2.2 feholdexcept F
+GLIBC_2.2 feraiseexcept F
+GLIBC_2.2 fesetenv F
+GLIBC_2.2 fesetexceptflag F
+GLIBC_2.2 fesetround F
+GLIBC_2.2 fetestexcept F
+GLIBC_2.2 feupdateenv F
+GLIBC_2.2 finite F
+GLIBC_2.2 finitef F
+GLIBC_2.2 finitel F
+GLIBC_2.2 floor F
+GLIBC_2.2 floorf F
+GLIBC_2.2 floorl F
+GLIBC_2.2 fma F
+GLIBC_2.2 fmaf F
+GLIBC_2.2 fmal F
+GLIBC_2.2 fmax F
+GLIBC_2.2 fmaxf F
+GLIBC_2.2 fmaxl F
+GLIBC_2.2 fmin F
+GLIBC_2.2 fminf F
+GLIBC_2.2 fminl F
+GLIBC_2.2 fmod F
+GLIBC_2.2 fmodf F
+GLIBC_2.2 fmodl F
+GLIBC_2.2 frexp F
+GLIBC_2.2 frexpf F
+GLIBC_2.2 frexpl F
+GLIBC_2.2 gamma F
+GLIBC_2.2 gammaf F
+GLIBC_2.2 gammal F
+GLIBC_2.2 hypot F
+GLIBC_2.2 hypotf F
+GLIBC_2.2 hypotl F
+GLIBC_2.2 ilogb F
+GLIBC_2.2 ilogbf F
+GLIBC_2.2 ilogbl F
+GLIBC_2.2 j0 F
+GLIBC_2.2 j0f F
+GLIBC_2.2 j0l F
+GLIBC_2.2 j1 F
+GLIBC_2.2 j1f F
+GLIBC_2.2 j1l F
+GLIBC_2.2 jn F
+GLIBC_2.2 jnf F
+GLIBC_2.2 jnl F
+GLIBC_2.2 ldexp F
+GLIBC_2.2 ldexpf F
+GLIBC_2.2 ldexpl F
+GLIBC_2.2 lgamma F
+GLIBC_2.2 lgamma_r F
+GLIBC_2.2 lgammaf F
+GLIBC_2.2 lgammaf_r F
+GLIBC_2.2 lgammal F
+GLIBC_2.2 lgammal_r F
+GLIBC_2.2 llrint F
+GLIBC_2.2 llrintf F
+GLIBC_2.2 llrintl F
+GLIBC_2.2 llround F
+GLIBC_2.2 llroundf F
+GLIBC_2.2 llroundl F
+GLIBC_2.2 log F
+GLIBC_2.2 log10 F
+GLIBC_2.2 log10f F
+GLIBC_2.2 log10l F
+GLIBC_2.2 log1p F
+GLIBC_2.2 log1pf F
+GLIBC_2.2 log1pl F
+GLIBC_2.2 log2 F
+GLIBC_2.2 log2f F
+GLIBC_2.2 log2l F
+GLIBC_2.2 logb F
+GLIBC_2.2 logbf F
+GLIBC_2.2 logbl F
+GLIBC_2.2 logf F
+GLIBC_2.2 logl F
+GLIBC_2.2 lrint F
+GLIBC_2.2 lrintf F
+GLIBC_2.2 lrintl F
+GLIBC_2.2 lround F
+GLIBC_2.2 lroundf F
+GLIBC_2.2 lroundl F
+GLIBC_2.2 matherr F
+GLIBC_2.2 modf F
+GLIBC_2.2 modff F
+GLIBC_2.2 modfl F
+GLIBC_2.2 nan F
+GLIBC_2.2 nanf F
+GLIBC_2.2 nanl F
+GLIBC_2.2 nearbyint F
+GLIBC_2.2 nearbyintf F
+GLIBC_2.2 nearbyintl F
+GLIBC_2.2 nextafter F
+GLIBC_2.2 nextafterf F
+GLIBC_2.2 nextafterl F
+GLIBC_2.2 nexttoward F
+GLIBC_2.2 nexttowardf F
+GLIBC_2.2 nexttowardl F
+GLIBC_2.2 pow F
+GLIBC_2.2 pow10 F
+GLIBC_2.2 pow10f F
+GLIBC_2.2 pow10l F
+GLIBC_2.2 powf F
+GLIBC_2.2 powl F
+GLIBC_2.2 remainder F
+GLIBC_2.2 remainderf F
+GLIBC_2.2 remainderl F
+GLIBC_2.2 remquo F
+GLIBC_2.2 remquof F
+GLIBC_2.2 remquol F
+GLIBC_2.2 rint F
+GLIBC_2.2 rintf F
+GLIBC_2.2 rintl F
+GLIBC_2.2 round F
+GLIBC_2.2 roundf F
+GLIBC_2.2 roundl F
+GLIBC_2.2 scalb F
+GLIBC_2.2 scalbf F
+GLIBC_2.2 scalbl F
+GLIBC_2.2 scalbln F
+GLIBC_2.2 scalblnf F
+GLIBC_2.2 scalblnl F
+GLIBC_2.2 scalbn F
+GLIBC_2.2 scalbnf F
+GLIBC_2.2 scalbnl F
+GLIBC_2.2 signgam D 0x4
+GLIBC_2.2 significand F
+GLIBC_2.2 significandf F
+GLIBC_2.2 significandl F
+GLIBC_2.2 sin F
+GLIBC_2.2 sincos F
+GLIBC_2.2 sincosf F
+GLIBC_2.2 sincosl F
+GLIBC_2.2 sinf F
+GLIBC_2.2 sinh F
+GLIBC_2.2 sinhf F
+GLIBC_2.2 sinhl F
+GLIBC_2.2 sinl F
+GLIBC_2.2 sqrt F
+GLIBC_2.2 sqrtf F
+GLIBC_2.2 sqrtl F
+GLIBC_2.2 tan F
+GLIBC_2.2 tanf F
+GLIBC_2.2 tanh F
+GLIBC_2.2 tanhf F
+GLIBC_2.2 tanhl F
+GLIBC_2.2 tanl F
+GLIBC_2.2 tgamma F
+GLIBC_2.2 tgammaf F
+GLIBC_2.2 tgammal F
+GLIBC_2.2 trunc F
+GLIBC_2.2 truncf F
+GLIBC_2.2 truncl F
+GLIBC_2.2 y0 F
+GLIBC_2.2 y0f F
+GLIBC_2.2 y0l F
+GLIBC_2.2 y1 F
+GLIBC_2.2 y1f F
+GLIBC_2.2 y1l F
+GLIBC_2.2 yn F
+GLIBC_2.2 ynf F
+GLIBC_2.2 ynl F
+GLIBC_2.23 __signgam D 0x4
+GLIBC_2.23 lgamma F
+GLIBC_2.23 lgammaf F
+GLIBC_2.23 lgammal F
+GLIBC_2.24 nextdown F
+GLIBC_2.24 nextdownf F
+GLIBC_2.24 nextdownl F
+GLIBC_2.24 nextup F
+GLIBC_2.24 nextupf F
+GLIBC_2.24 nextupl F
+GLIBC_2.25 __iseqsig F
+GLIBC_2.25 __iseqsigf F
+GLIBC_2.25 canonicalize F
+GLIBC_2.25 canonicalizef F
+GLIBC_2.25 canonicalizel F
+GLIBC_2.25 fegetmode F
+GLIBC_2.25 fesetexcept F
+GLIBC_2.25 fesetmode F
+GLIBC_2.25 fetestexceptflag F
+GLIBC_2.25 fmaxmag F
+GLIBC_2.25 fmaxmagf F
+GLIBC_2.25 fmaxmagl F
+GLIBC_2.25 fminmag F
+GLIBC_2.25 fminmagf F
+GLIBC_2.25 fminmagl F
+GLIBC_2.25 fromfp F
+GLIBC_2.25 fromfpf F
+GLIBC_2.25 fromfpl F
+GLIBC_2.25 fromfpx F
+GLIBC_2.25 fromfpxf F
+GLIBC_2.25 fromfpxl F
+GLIBC_2.25 getpayload F
+GLIBC_2.25 getpayloadf F
+GLIBC_2.25 getpayloadl F
+GLIBC_2.25 llogb F
+GLIBC_2.25 llogbf F
+GLIBC_2.25 llogbl F
+GLIBC_2.25 roundeven F
+GLIBC_2.25 roundevenf F
+GLIBC_2.25 roundevenl F
+GLIBC_2.25 setpayload F
+GLIBC_2.25 setpayloadf F
+GLIBC_2.25 setpayloadl F
+GLIBC_2.25 setpayloadsig F
+GLIBC_2.25 setpayloadsigf F
+GLIBC_2.25 setpayloadsigl F
+GLIBC_2.25 totalorder F
+GLIBC_2.25 totalorderf F
+GLIBC_2.25 totalorderl F
+GLIBC_2.25 totalordermag F
+GLIBC_2.25 totalordermagf F
+GLIBC_2.25 totalordermagl F
+GLIBC_2.25 ufromfp F
+GLIBC_2.25 ufromfpf F
+GLIBC_2.25 ufromfpl F
+GLIBC_2.25 ufromfpx F
+GLIBC_2.25 ufromfpxf F
+GLIBC_2.25 ufromfpxl F
+GLIBC_2.27 acosf32 F
+GLIBC_2.27 acosf32x F
+GLIBC_2.27 acosf64 F
+GLIBC_2.27 acoshf32 F
+GLIBC_2.27 acoshf32x F
+GLIBC_2.27 acoshf64 F
+GLIBC_2.27 asinf32 F
+GLIBC_2.27 asinf32x F
+GLIBC_2.27 asinf64 F
+GLIBC_2.27 asinhf32 F
+GLIBC_2.27 asinhf32x F
+GLIBC_2.27 asinhf64 F
+GLIBC_2.27 atan2f32 F
+GLIBC_2.27 atan2f32x F
+GLIBC_2.27 atan2f64 F
+GLIBC_2.27 atanf32 F
+GLIBC_2.27 atanf32x F
+GLIBC_2.27 atanf64 F
+GLIBC_2.27 atanhf32 F
+GLIBC_2.27 atanhf32x F
+GLIBC_2.27 atanhf64 F
+GLIBC_2.27 cabsf32 F
+GLIBC_2.27 cabsf32x F
+GLIBC_2.27 cabsf64 F
+GLIBC_2.27 cacosf32 F
+GLIBC_2.27 cacosf32x F
+GLIBC_2.27 cacosf64 F
+GLIBC_2.27 cacoshf32 F
+GLIBC_2.27 cacoshf32x F
+GLIBC_2.27 cacoshf64 F
+GLIBC_2.27 canonicalizef32 F
+GLIBC_2.27 canonicalizef32x F
+GLIBC_2.27 canonicalizef64 F
+GLIBC_2.27 cargf32 F
+GLIBC_2.27 cargf32x F
+GLIBC_2.27 cargf64 F
+GLIBC_2.27 casinf32 F
+GLIBC_2.27 casinf32x F
+GLIBC_2.27 casinf64 F
+GLIBC_2.27 casinhf32 F
+GLIBC_2.27 casinhf32x F
+GLIBC_2.27 casinhf64 F
+GLIBC_2.27 catanf32 F
+GLIBC_2.27 catanf32x F
+GLIBC_2.27 catanf64 F
+GLIBC_2.27 catanhf32 F
+GLIBC_2.27 catanhf32x F
+GLIBC_2.27 catanhf64 F
+GLIBC_2.27 cbrtf32 F
+GLIBC_2.27 cbrtf32x F
+GLIBC_2.27 cbrtf64 F
+GLIBC_2.27 ccosf32 F
+GLIBC_2.27 ccosf32x F
+GLIBC_2.27 ccosf64 F
+GLIBC_2.27 ccoshf32 F
+GLIBC_2.27 ccoshf32x F
+GLIBC_2.27 ccoshf64 F
+GLIBC_2.27 ceilf32 F
+GLIBC_2.27 ceilf32x F
+GLIBC_2.27 ceilf64 F
+GLIBC_2.27 cexpf32 F
+GLIBC_2.27 cexpf32x F
+GLIBC_2.27 cexpf64 F
+GLIBC_2.27 cimagf32 F
+GLIBC_2.27 cimagf32x F
+GLIBC_2.27 cimagf64 F
+GLIBC_2.27 clog10f32 F
+GLIBC_2.27 clog10f32x F
+GLIBC_2.27 clog10f64 F
+GLIBC_2.27 clogf32 F
+GLIBC_2.27 clogf32x F
+GLIBC_2.27 clogf64 F
+GLIBC_2.27 conjf32 F
+GLIBC_2.27 conjf32x F
+GLIBC_2.27 conjf64 F
+GLIBC_2.27 copysignf32 F
+GLIBC_2.27 copysignf32x F
+GLIBC_2.27 copysignf64 F
+GLIBC_2.27 cosf32 F
+GLIBC_2.27 cosf32x F
+GLIBC_2.27 cosf64 F
+GLIBC_2.27 coshf32 F
+GLIBC_2.27 coshf32x F
+GLIBC_2.27 coshf64 F
+GLIBC_2.27 cpowf32 F
+GLIBC_2.27 cpowf32x F
+GLIBC_2.27 cpowf64 F
+GLIBC_2.27 cprojf32 F
+GLIBC_2.27 cprojf32x F
+GLIBC_2.27 cprojf64 F
+GLIBC_2.27 crealf32 F
+GLIBC_2.27 crealf32x F
+GLIBC_2.27 crealf64 F
+GLIBC_2.27 csinf32 F
+GLIBC_2.27 csinf32x F
+GLIBC_2.27 csinf64 F
+GLIBC_2.27 csinhf32 F
+GLIBC_2.27 csinhf32x F
+GLIBC_2.27 csinhf64 F
+GLIBC_2.27 csqrtf32 F
+GLIBC_2.27 csqrtf32x F
+GLIBC_2.27 csqrtf64 F
+GLIBC_2.27 ctanf32 F
+GLIBC_2.27 ctanf32x F
+GLIBC_2.27 ctanf64 F
+GLIBC_2.27 ctanhf32 F
+GLIBC_2.27 ctanhf32x F
+GLIBC_2.27 ctanhf64 F
+GLIBC_2.27 erfcf32 F
+GLIBC_2.27 erfcf32x F
+GLIBC_2.27 erfcf64 F
+GLIBC_2.27 erff32 F
+GLIBC_2.27 erff32x F
+GLIBC_2.27 erff64 F
+GLIBC_2.27 exp10f32 F
+GLIBC_2.27 exp10f32x F
+GLIBC_2.27 exp10f64 F
+GLIBC_2.27 exp2f F
+GLIBC_2.27 exp2f32 F
+GLIBC_2.27 exp2f32x F
+GLIBC_2.27 exp2f64 F
+GLIBC_2.27 expf F
+GLIBC_2.27 expf32 F
+GLIBC_2.27 expf32x F
+GLIBC_2.27 expf64 F
+GLIBC_2.27 expm1f32 F
+GLIBC_2.27 expm1f32x F
+GLIBC_2.27 expm1f64 F
+GLIBC_2.27 fabsf32 F
+GLIBC_2.27 fabsf32x F
+GLIBC_2.27 fabsf64 F
+GLIBC_2.27 fdimf32 F
+GLIBC_2.27 fdimf32x F
+GLIBC_2.27 fdimf64 F
+GLIBC_2.27 floorf32 F
+GLIBC_2.27 floorf32x F
+GLIBC_2.27 floorf64 F
+GLIBC_2.27 fmaf32 F
+GLIBC_2.27 fmaf32x F
+GLIBC_2.27 fmaf64 F
+GLIBC_2.27 fmaxf32 F
+GLIBC_2.27 fmaxf32x F
+GLIBC_2.27 fmaxf64 F
+GLIBC_2.27 fmaxmagf32 F
+GLIBC_2.27 fmaxmagf32x F
+GLIBC_2.27 fmaxmagf64 F
+GLIBC_2.27 fminf32 F
+GLIBC_2.27 fminf32x F
+GLIBC_2.27 fminf64 F
+GLIBC_2.27 fminmagf32 F
+GLIBC_2.27 fminmagf32x F
+GLIBC_2.27 fminmagf64 F
+GLIBC_2.27 fmodf32 F
+GLIBC_2.27 fmodf32x F
+GLIBC_2.27 fmodf64 F
+GLIBC_2.27 frexpf32 F
+GLIBC_2.27 frexpf32x F
+GLIBC_2.27 frexpf64 F
+GLIBC_2.27 fromfpf32 F
+GLIBC_2.27 fromfpf32x F
+GLIBC_2.27 fromfpf64 F
+GLIBC_2.27 fromfpxf32 F
+GLIBC_2.27 fromfpxf32x F
+GLIBC_2.27 fromfpxf64 F
+GLIBC_2.27 getpayloadf32 F
+GLIBC_2.27 getpayloadf32x F
+GLIBC_2.27 getpayloadf64 F
+GLIBC_2.27 hypotf32 F
+GLIBC_2.27 hypotf32x F
+GLIBC_2.27 hypotf64 F
+GLIBC_2.27 ilogbf32 F
+GLIBC_2.27 ilogbf32x F
+GLIBC_2.27 ilogbf64 F
+GLIBC_2.27 j0f32 F
+GLIBC_2.27 j0f32x F
+GLIBC_2.27 j0f64 F
+GLIBC_2.27 j1f32 F
+GLIBC_2.27 j1f32x F
+GLIBC_2.27 j1f64 F
+GLIBC_2.27 jnf32 F
+GLIBC_2.27 jnf32x F
+GLIBC_2.27 jnf64 F
+GLIBC_2.27 ldexpf32 F
+GLIBC_2.27 ldexpf32x F
+GLIBC_2.27 ldexpf64 F
+GLIBC_2.27 lgammaf32 F
+GLIBC_2.27 lgammaf32_r F
+GLIBC_2.27 lgammaf32x F
+GLIBC_2.27 lgammaf32x_r F
+GLIBC_2.27 lgammaf64 F
+GLIBC_2.27 lgammaf64_r F
+GLIBC_2.27 llogbf32 F
+GLIBC_2.27 llogbf32x F
+GLIBC_2.27 llogbf64 F
+GLIBC_2.27 llrintf32 F
+GLIBC_2.27 llrintf32x F
+GLIBC_2.27 llrintf64 F
+GLIBC_2.27 llroundf32 F
+GLIBC_2.27 llroundf32x F
+GLIBC_2.27 llroundf64 F
+GLIBC_2.27 log10f32 F
+GLIBC_2.27 log10f32x F
+GLIBC_2.27 log10f64 F
+GLIBC_2.27 log1pf32 F
+GLIBC_2.27 log1pf32x F
+GLIBC_2.27 log1pf64 F
+GLIBC_2.27 log2f F
+GLIBC_2.27 log2f32 F
+GLIBC_2.27 log2f32x F
+GLIBC_2.27 log2f64 F
+GLIBC_2.27 logbf32 F
+GLIBC_2.27 logbf32x F
+GLIBC_2.27 logbf64 F
+GLIBC_2.27 logf F
+GLIBC_2.27 logf32 F
+GLIBC_2.27 logf32x F
+GLIBC_2.27 logf64 F
+GLIBC_2.27 lrintf32 F
+GLIBC_2.27 lrintf32x F
+GLIBC_2.27 lrintf64 F
+GLIBC_2.27 lroundf32 F
+GLIBC_2.27 lroundf32x F
+GLIBC_2.27 lroundf64 F
+GLIBC_2.27 modff32 F
+GLIBC_2.27 modff32x F
+GLIBC_2.27 modff64 F
+GLIBC_2.27 nanf32 F
+GLIBC_2.27 nanf32x F
+GLIBC_2.27 nanf64 F
+GLIBC_2.27 nearbyintf32 F
+GLIBC_2.27 nearbyintf32x F
+GLIBC_2.27 nearbyintf64 F
+GLIBC_2.27 nextafterf32 F
+GLIBC_2.27 nextafterf32x F
+GLIBC_2.27 nextafterf64 F
+GLIBC_2.27 nextdownf32 F
+GLIBC_2.27 nextdownf32x F
+GLIBC_2.27 nextdownf64 F
+GLIBC_2.27 nextupf32 F
+GLIBC_2.27 nextupf32x F
+GLIBC_2.27 nextupf64 F
+GLIBC_2.27 powf F
+GLIBC_2.27 powf32 F
+GLIBC_2.27 powf32x F
+GLIBC_2.27 powf64 F
+GLIBC_2.27 remainderf32 F
+GLIBC_2.27 remainderf32x F
+GLIBC_2.27 remainderf64 F
+GLIBC_2.27 remquof32 F
+GLIBC_2.27 remquof32x F
+GLIBC_2.27 remquof64 F
+GLIBC_2.27 rintf32 F
+GLIBC_2.27 rintf32x F
+GLIBC_2.27 rintf64 F
+GLIBC_2.27 roundevenf32 F
+GLIBC_2.27 roundevenf32x F
+GLIBC_2.27 roundevenf64 F
+GLIBC_2.27 roundf32 F
+GLIBC_2.27 roundf32x F
+GLIBC_2.27 roundf64 F
+GLIBC_2.27 scalblnf32 F
+GLIBC_2.27 scalblnf32x F
+GLIBC_2.27 scalblnf64 F
+GLIBC_2.27 scalbnf32 F
+GLIBC_2.27 scalbnf32x F
+GLIBC_2.27 scalbnf64 F
+GLIBC_2.27 setpayloadf32 F
+GLIBC_2.27 setpayloadf32x F
+GLIBC_2.27 setpayloadf64 F
+GLIBC_2.27 setpayloadsigf32 F
+GLIBC_2.27 setpayloadsigf32x F
+GLIBC_2.27 setpayloadsigf64 F
+GLIBC_2.27 sincosf32 F
+GLIBC_2.27 sincosf32x F
+GLIBC_2.27 sincosf64 F
+GLIBC_2.27 sinf32 F
+GLIBC_2.27 sinf32x F
+GLIBC_2.27 sinf64 F
+GLIBC_2.27 sinhf32 F
+GLIBC_2.27 sinhf32x F
+GLIBC_2.27 sinhf64 F
+GLIBC_2.27 sqrtf32 F
+GLIBC_2.27 sqrtf32x F
+GLIBC_2.27 sqrtf64 F
+GLIBC_2.27 tanf32 F
+GLIBC_2.27 tanf32x F
+GLIBC_2.27 tanf64 F
+GLIBC_2.27 tanhf32 F
+GLIBC_2.27 tanhf32x F
+GLIBC_2.27 tanhf64 F
+GLIBC_2.27 tgammaf32 F
+GLIBC_2.27 tgammaf32x F
+GLIBC_2.27 tgammaf64 F
+GLIBC_2.27 totalorderf32 F
+GLIBC_2.27 totalorderf32x F
+GLIBC_2.27 totalorderf64 F
+GLIBC_2.27 totalordermagf32 F
+GLIBC_2.27 totalordermagf32x F
+GLIBC_2.27 totalordermagf64 F
+GLIBC_2.27 truncf32 F
+GLIBC_2.27 truncf32x F
+GLIBC_2.27 truncf64 F
+GLIBC_2.27 ufromfpf32 F
+GLIBC_2.27 ufromfpf32x F
+GLIBC_2.27 ufromfpf64 F
+GLIBC_2.27 ufromfpxf32 F
+GLIBC_2.27 ufromfpxf32x F
+GLIBC_2.27 ufromfpxf64 F
+GLIBC_2.27 y0f32 F
+GLIBC_2.27 y0f32x F
+GLIBC_2.27 y0f64 F
+GLIBC_2.27 y1f32 F
+GLIBC_2.27 y1f32x F
+GLIBC_2.27 y1f64 F
+GLIBC_2.27 ynf32 F
+GLIBC_2.27 ynf32x F
+GLIBC_2.27 ynf64 F
+GLIBC_2.28 daddl F
+GLIBC_2.28 ddivl F
+GLIBC_2.28 dmull F
+GLIBC_2.28 dsubl F
+GLIBC_2.28 f32addf32x F
+GLIBC_2.28 f32addf64 F
+GLIBC_2.28 f32divf32x F
+GLIBC_2.28 f32divf64 F
+GLIBC_2.28 f32mulf32x F
+GLIBC_2.28 f32mulf64 F
+GLIBC_2.28 f32subf32x F
+GLIBC_2.28 f32subf64 F
+GLIBC_2.28 f32xaddf64 F
+GLIBC_2.28 f32xdivf64 F
+GLIBC_2.28 f32xmulf64 F
+GLIBC_2.28 f32xsubf64 F
+GLIBC_2.28 fadd F
+GLIBC_2.28 faddl F
+GLIBC_2.28 fdiv F
+GLIBC_2.28 fdivl F
+GLIBC_2.28 fmul F
+GLIBC_2.28 fmull F
+GLIBC_2.28 fsub F
+GLIBC_2.28 fsubl F
+GLIBC_2.29 exp F
+GLIBC_2.29 exp2 F
+GLIBC_2.29 log F
+GLIBC_2.29 log2 F
+GLIBC_2.29 pow F
+GLIBC_2.31 totalorder F
+GLIBC_2.31 totalorderf F
+GLIBC_2.31 totalorderf32 F
+GLIBC_2.31 totalorderf32x F
+GLIBC_2.31 totalorderf64 F
+GLIBC_2.31 totalorderl F
+GLIBC_2.31 totalordermag F
+GLIBC_2.31 totalordermagf F
+GLIBC_2.31 totalordermagf32 F
+GLIBC_2.31 totalordermagf32x F
+GLIBC_2.31 totalordermagf64 F
+GLIBC_2.31 totalordermagl F
+GLIBC_2.4 exp2l F
diff --git a/sysdeps/unix/sysv/linux/sh/libnsl.abilist b/sysdeps/unix/sysv/linux/sh/be/libnsl.abilist
index add3d66a7a..add3d66a7a 100644
--- a/sysdeps/unix/sysv/linux/sh/libnsl.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libnsl.abilist
diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
new file mode 100644
index 0000000000..15b72c4264
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
@@ -0,0 +1,249 @@
+GLIBC_2.11 pthread_sigqueue F
+GLIBC_2.12 pthread_getname_np F
+GLIBC_2.12 pthread_mutex_consistent F
+GLIBC_2.12 pthread_mutexattr_getrobust F
+GLIBC_2.12 pthread_mutexattr_setrobust F
+GLIBC_2.12 pthread_setname_np F
+GLIBC_2.18 pthread_getattr_default_np F
+GLIBC_2.18 pthread_setattr_default_np F
+GLIBC_2.2 _IO_flockfile F
+GLIBC_2.2 _IO_ftrylockfile F
+GLIBC_2.2 _IO_funlockfile F
+GLIBC_2.2 __close F
+GLIBC_2.2 __connect F
+GLIBC_2.2 __errno_location F
+GLIBC_2.2 __fcntl F
+GLIBC_2.2 __fork F
+GLIBC_2.2 __h_errno_location F
+GLIBC_2.2 __libc_allocate_rtsig F
+GLIBC_2.2 __libc_current_sigrtmax F
+GLIBC_2.2 __libc_current_sigrtmin F
+GLIBC_2.2 __lseek F
+GLIBC_2.2 __open F
+GLIBC_2.2 __open64 F
+GLIBC_2.2 __pread64 F
+GLIBC_2.2 __pthread_getspecific F
+GLIBC_2.2 __pthread_key_create F
+GLIBC_2.2 __pthread_mutex_destroy F
+GLIBC_2.2 __pthread_mutex_init F
+GLIBC_2.2 __pthread_mutex_lock F
+GLIBC_2.2 __pthread_mutex_trylock F
+GLIBC_2.2 __pthread_mutex_unlock F
+GLIBC_2.2 __pthread_mutexattr_destroy F
+GLIBC_2.2 __pthread_mutexattr_init F
+GLIBC_2.2 __pthread_mutexattr_settype F
+GLIBC_2.2 __pthread_once F
+GLIBC_2.2 __pthread_rwlock_destroy F
+GLIBC_2.2 __pthread_rwlock_init F
+GLIBC_2.2 __pthread_rwlock_rdlock F
+GLIBC_2.2 __pthread_rwlock_tryrdlock F
+GLIBC_2.2 __pthread_rwlock_trywrlock F
+GLIBC_2.2 __pthread_rwlock_unlock F
+GLIBC_2.2 __pthread_rwlock_wrlock F
+GLIBC_2.2 __pthread_setspecific F
+GLIBC_2.2 __pwrite64 F
+GLIBC_2.2 __read F
+GLIBC_2.2 __res_state F
+GLIBC_2.2 __send F
+GLIBC_2.2 __sigaction F
+GLIBC_2.2 __wait F
+GLIBC_2.2 __write F
+GLIBC_2.2 _pthread_cleanup_pop F
+GLIBC_2.2 _pthread_cleanup_pop_restore F
+GLIBC_2.2 _pthread_cleanup_push F
+GLIBC_2.2 _pthread_cleanup_push_defer F
+GLIBC_2.2 accept F
+GLIBC_2.2 close F
+GLIBC_2.2 connect F
+GLIBC_2.2 fcntl F
+GLIBC_2.2 flockfile F
+GLIBC_2.2 fork F
+GLIBC_2.2 fsync F
+GLIBC_2.2 ftrylockfile F
+GLIBC_2.2 funlockfile F
+GLIBC_2.2 longjmp F
+GLIBC_2.2 lseek F
+GLIBC_2.2 lseek64 F
+GLIBC_2.2 msync F
+GLIBC_2.2 open F
+GLIBC_2.2 open64 F
+GLIBC_2.2 pause F
+GLIBC_2.2 pread F
+GLIBC_2.2 pread64 F
+GLIBC_2.2 pthread_atfork F
+GLIBC_2.2 pthread_attr_getguardsize F
+GLIBC_2.2 pthread_attr_getschedpolicy F
+GLIBC_2.2 pthread_attr_getscope F
+GLIBC_2.2 pthread_attr_getstack F
+GLIBC_2.2 pthread_attr_getstackaddr F
+GLIBC_2.2 pthread_attr_getstacksize F
+GLIBC_2.2 pthread_attr_setguardsize F
+GLIBC_2.2 pthread_attr_setschedpolicy F
+GLIBC_2.2 pthread_attr_setscope F
+GLIBC_2.2 pthread_attr_setstack F
+GLIBC_2.2 pthread_attr_setstackaddr F
+GLIBC_2.2 pthread_attr_setstacksize F
+GLIBC_2.2 pthread_barrier_destroy F
+GLIBC_2.2 pthread_barrier_init F
+GLIBC_2.2 pthread_barrier_wait F
+GLIBC_2.2 pthread_barrierattr_destroy F
+GLIBC_2.2 pthread_barrierattr_init F
+GLIBC_2.2 pthread_barrierattr_setpshared F
+GLIBC_2.2 pthread_cancel F
+GLIBC_2.2 pthread_cond_broadcast F
+GLIBC_2.2 pthread_cond_destroy F
+GLIBC_2.2 pthread_cond_init F
+GLIBC_2.2 pthread_cond_signal F
+GLIBC_2.2 pthread_cond_timedwait F
+GLIBC_2.2 pthread_cond_wait F
+GLIBC_2.2 pthread_condattr_destroy F
+GLIBC_2.2 pthread_condattr_getpshared F
+GLIBC_2.2 pthread_condattr_init F
+GLIBC_2.2 pthread_condattr_setpshared F
+GLIBC_2.2 pthread_create F
+GLIBC_2.2 pthread_detach F
+GLIBC_2.2 pthread_exit F
+GLIBC_2.2 pthread_getconcurrency F
+GLIBC_2.2 pthread_getcpuclockid F
+GLIBC_2.2 pthread_getschedparam F
+GLIBC_2.2 pthread_getspecific F
+GLIBC_2.2 pthread_join F
+GLIBC_2.2 pthread_key_create F
+GLIBC_2.2 pthread_key_delete F
+GLIBC_2.2 pthread_kill F
+GLIBC_2.2 pthread_kill_other_threads_np F
+GLIBC_2.2 pthread_mutex_destroy F
+GLIBC_2.2 pthread_mutex_init F
+GLIBC_2.2 pthread_mutex_lock F
+GLIBC_2.2 pthread_mutex_timedlock F
+GLIBC_2.2 pthread_mutex_trylock F
+GLIBC_2.2 pthread_mutex_unlock F
+GLIBC_2.2 pthread_mutexattr_destroy F
+GLIBC_2.2 pthread_mutexattr_getkind_np F
+GLIBC_2.2 pthread_mutexattr_getpshared F
+GLIBC_2.2 pthread_mutexattr_gettype F
+GLIBC_2.2 pthread_mutexattr_init F
+GLIBC_2.2 pthread_mutexattr_setkind_np F
+GLIBC_2.2 pthread_mutexattr_setpshared F
+GLIBC_2.2 pthread_mutexattr_settype F
+GLIBC_2.2 pthread_once F
+GLIBC_2.2 pthread_rwlock_destroy F
+GLIBC_2.2 pthread_rwlock_init F
+GLIBC_2.2 pthread_rwlock_rdlock F
+GLIBC_2.2 pthread_rwlock_timedrdlock F
+GLIBC_2.2 pthread_rwlock_timedwrlock F
+GLIBC_2.2 pthread_rwlock_tryrdlock F
+GLIBC_2.2 pthread_rwlock_trywrlock F
+GLIBC_2.2 pthread_rwlock_unlock F
+GLIBC_2.2 pthread_rwlock_wrlock F
+GLIBC_2.2 pthread_rwlockattr_destroy F
+GLIBC_2.2 pthread_rwlockattr_getkind_np F
+GLIBC_2.2 pthread_rwlockattr_getpshared F
+GLIBC_2.2 pthread_rwlockattr_init F
+GLIBC_2.2 pthread_rwlockattr_setkind_np F
+GLIBC_2.2 pthread_rwlockattr_setpshared F
+GLIBC_2.2 pthread_setcancelstate F
+GLIBC_2.2 pthread_setcanceltype F
+GLIBC_2.2 pthread_setconcurrency F
+GLIBC_2.2 pthread_setschedparam F
+GLIBC_2.2 pthread_setspecific F
+GLIBC_2.2 pthread_sigmask F
+GLIBC_2.2 pthread_spin_destroy F
+GLIBC_2.2 pthread_spin_init F
+GLIBC_2.2 pthread_spin_lock F
+GLIBC_2.2 pthread_spin_trylock F
+GLIBC_2.2 pthread_spin_unlock F
+GLIBC_2.2 pthread_testcancel F
+GLIBC_2.2 pthread_yield F
+GLIBC_2.2 pwrite F
+GLIBC_2.2 pwrite64 F
+GLIBC_2.2 raise F
+GLIBC_2.2 read F
+GLIBC_2.2 recv F
+GLIBC_2.2 recvfrom F
+GLIBC_2.2 recvmsg F
+GLIBC_2.2 sem_close F
+GLIBC_2.2 sem_destroy F
+GLIBC_2.2 sem_getvalue F
+GLIBC_2.2 sem_init F
+GLIBC_2.2 sem_open F
+GLIBC_2.2 sem_post F
+GLIBC_2.2 sem_timedwait F
+GLIBC_2.2 sem_trywait F
+GLIBC_2.2 sem_unlink F
+GLIBC_2.2 sem_wait F
+GLIBC_2.2 send F
+GLIBC_2.2 sendmsg F
+GLIBC_2.2 sendto F
+GLIBC_2.2 sigaction F
+GLIBC_2.2 siglongjmp F
+GLIBC_2.2 sigwait F
+GLIBC_2.2 system F
+GLIBC_2.2 tcdrain F
+GLIBC_2.2 wait F
+GLIBC_2.2 waitpid F
+GLIBC_2.2 write F
+GLIBC_2.2.3 pthread_getattr_np F
+GLIBC_2.2.6 __libpthread_version_placeholder F
+GLIBC_2.28 call_once F
+GLIBC_2.28 cnd_broadcast F
+GLIBC_2.28 cnd_destroy F
+GLIBC_2.28 cnd_init F
+GLIBC_2.28 cnd_signal F
+GLIBC_2.28 cnd_timedwait F
+GLIBC_2.28 cnd_wait F
+GLIBC_2.28 mtx_destroy F
+GLIBC_2.28 mtx_init F
+GLIBC_2.28 mtx_lock F
+GLIBC_2.28 mtx_timedlock F
+GLIBC_2.28 mtx_trylock F
+GLIBC_2.28 mtx_unlock F
+GLIBC_2.28 thrd_create F
+GLIBC_2.28 thrd_detach F
+GLIBC_2.28 thrd_exit F
+GLIBC_2.28 thrd_join F
+GLIBC_2.28 tss_create F
+GLIBC_2.28 tss_delete F
+GLIBC_2.28 tss_get F
+GLIBC_2.28 tss_set F
+GLIBC_2.3.2 pthread_cond_broadcast F
+GLIBC_2.3.2 pthread_cond_destroy F
+GLIBC_2.3.2 pthread_cond_init F
+GLIBC_2.3.2 pthread_cond_signal F
+GLIBC_2.3.2 pthread_cond_timedwait F
+GLIBC_2.3.2 pthread_cond_wait F
+GLIBC_2.3.3 __pthread_cleanup_routine F
+GLIBC_2.3.3 __pthread_register_cancel F
+GLIBC_2.3.3 __pthread_register_cancel_defer F
+GLIBC_2.3.3 __pthread_unregister_cancel F
+GLIBC_2.3.3 __pthread_unregister_cancel_restore F
+GLIBC_2.3.3 __pthread_unwind_next F
+GLIBC_2.3.3 pthread_attr_getaffinity_np F
+GLIBC_2.3.3 pthread_attr_setaffinity_np F
+GLIBC_2.3.3 pthread_barrierattr_getpshared F
+GLIBC_2.3.3 pthread_condattr_getclock F
+GLIBC_2.3.3 pthread_condattr_setclock F
+GLIBC_2.3.3 pthread_getaffinity_np F
+GLIBC_2.3.3 pthread_setaffinity_np F
+GLIBC_2.3.3 pthread_timedjoin_np F
+GLIBC_2.3.3 pthread_tryjoin_np F
+GLIBC_2.3.4 pthread_attr_getaffinity_np F
+GLIBC_2.3.4 pthread_attr_setaffinity_np F
+GLIBC_2.3.4 pthread_getaffinity_np F
+GLIBC_2.3.4 pthread_setaffinity_np F
+GLIBC_2.3.4 pthread_setschedprio F
+GLIBC_2.30 pthread_cond_clockwait F
+GLIBC_2.30 pthread_mutex_clocklock F
+GLIBC_2.30 pthread_rwlock_clockrdlock F
+GLIBC_2.30 pthread_rwlock_clockwrlock F
+GLIBC_2.30 sem_clockwait F
+GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.4 pthread_mutex_consistent_np F
+GLIBC_2.4 pthread_mutex_getprioceiling F
+GLIBC_2.4 pthread_mutex_setprioceiling F
+GLIBC_2.4 pthread_mutexattr_getprioceiling F
+GLIBC_2.4 pthread_mutexattr_getprotocol F
+GLIBC_2.4 pthread_mutexattr_getrobust_np F
+GLIBC_2.4 pthread_mutexattr_setprioceiling F
+GLIBC_2.4 pthread_mutexattr_setprotocol F
+GLIBC_2.4 pthread_mutexattr_setrobust_np F
diff --git a/sysdeps/unix/sysv/linux/sh/libresolv.abilist b/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
index 157a33ce35..157a33ce35 100644
--- a/sysdeps/unix/sysv/linux/sh/libresolv.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libresolv.abilist
diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
new file mode 100644
index 0000000000..bb03781dcc
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
@@ -0,0 +1,37 @@
+GLIBC_2.1 aio_cancel F
+GLIBC_2.1 aio_cancel64 F
+GLIBC_2.1 aio_error F
+GLIBC_2.1 aio_error64 F
+GLIBC_2.1 aio_fsync F
+GLIBC_2.1 aio_fsync64 F
+GLIBC_2.1 aio_init F
+GLIBC_2.1 aio_read F
+GLIBC_2.1 aio_read64 F
+GLIBC_2.1 aio_return F
+GLIBC_2.1 aio_return64 F
+GLIBC_2.1 aio_suspend F
+GLIBC_2.1 aio_suspend64 F
+GLIBC_2.1 aio_write F
+GLIBC_2.1 aio_write64 F
+GLIBC_2.1 lio_listio F
+GLIBC_2.1 lio_listio64 F
+GLIBC_2.2 shm_open F
+GLIBC_2.2 shm_unlink F
+GLIBC_2.2 timer_create F
+GLIBC_2.2 timer_delete F
+GLIBC_2.2 timer_getoverrun F
+GLIBC_2.2 timer_gettime F
+GLIBC_2.2 timer_settime F
+GLIBC_2.3.4 mq_close F
+GLIBC_2.3.4 mq_getattr F
+GLIBC_2.3.4 mq_notify F
+GLIBC_2.3.4 mq_open F
+GLIBC_2.3.4 mq_receive F
+GLIBC_2.3.4 mq_send F
+GLIBC_2.3.4 mq_setattr F
+GLIBC_2.3.4 mq_timedreceive F
+GLIBC_2.3.4 mq_timedsend F
+GLIBC_2.3.4 mq_unlink F
+GLIBC_2.4 lio_listio F
+GLIBC_2.4 lio_listio64 F
+GLIBC_2.7 __mq_open_2 F
diff --git a/sysdeps/unix/sysv/linux/sh/libthread_db.abilist b/sysdeps/unix/sysv/linux/sh/be/libthread_db.abilist
index 2db0992737..2db0992737 100644
--- a/sysdeps/unix/sysv/linux/sh/libthread_db.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libthread_db.abilist
diff --git a/sysdeps/unix/sysv/linux/sh/libutil.abilist b/sysdeps/unix/sysv/linux/sh/be/libutil.abilist
index aa2d35b323..aa2d35b323 100644
--- a/sysdeps/unix/sysv/linux/sh/libutil.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libutil.abilist
diff --git a/sysdeps/unix/sysv/linux/sh/be/sh3/Implies b/sysdeps/unix/sysv/linux/sh/be/sh3/Implies
new file mode 100644
index 0000000000..4fd2759545
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sh/be/sh3/Implies
@@ -0,0 +1 @@
+unix/sysv/linux/sh/sh3
diff --git a/sysdeps/unix/sysv/linux/sh/be/sh4/Implies b/sysdeps/unix/sysv/linux/sh/be/sh4/Implies
new file mode 100644
index 0000000000..6b55dc4084
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sh/be/sh4/Implies
@@ -0,0 +1 @@
+unix/sysv/linux/sh/sh4
diff --git a/sysdeps/unix/sysv/linux/sh/bits/fcntl.h b/sysdeps/unix/sysv/linux/sh/bits/fcntl.h
index 60478a94d2..310d5314bf 100644
--- a/sysdeps/unix/sysv/linux/sh/bits/fcntl.h
+++ b/sysdeps/unix/sysv/linux/sh/bits/fcntl.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for Linux/SH.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FCNTL_H
# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
diff --git a/sysdeps/unix/sysv/linux/sh/bits/mman.h b/sysdeps/unix/sysv/linux/sh/bits/mman.h
deleted file mode 100644
index 9015957e65..0000000000
--- a/sysdeps/unix/sysv/linux/sh/bits/mman.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/* Definitions for POSIX memory map interface. Linux/SH version.
- Copyright (C) 1997-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_MMAN_H
-# error "Never include this file directly. Use <sys/mman.h> instead"
-#endif
-
-/* The following definitions basically come from the kernel headers.
- But the kernel header is not namespace clean. */
-
-/* These are Linux-specific. */
-#ifdef __USE_MISC
-# define MAP_GROWSDOWN 0x0100 /* Stack-like segment. */
-# define MAP_DENYWRITE 0x0800 /* ETXTBSY */
-# define MAP_EXECUTABLE 0x1000 /* Mark it as an executable. */
-# define MAP_LOCKED 0x2000 /* Lock the mapping. */
-# define MAP_NORESERVE 0x4000 /* Don't check for reservations. */
-# define MAP_POPULATE 0x8000 /* Populate (prefault) pagetables. */
-# define MAP_NONBLOCK 0x10000 /* Do not block on IO. */
-# define MAP_STACK 0x20000 /* Allocation is for a stack. */
-# define MAP_HUGETLB 0x40000 /* Create huge page mapping. */
-# define MAP_SYNC 0x80000 /* Perform synchronous page
- faults for the mapping. */
-# define MAP_FIXED_NOREPLACE 0x100000 /* MAP_FIXED but do not unmap
- underlying mapping. */
-#endif
-
-/* Include generic Linux declarations. */
-#include <bits/mman-linux.h>
diff --git a/sysdeps/unix/sysv/linux/sh/bits/procfs-id.h b/sysdeps/unix/sysv/linux/sh/bits/procfs-id.h
new file mode 100644
index 0000000000..087564f40b
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sh/bits/procfs-id.h
@@ -0,0 +1,25 @@
+/* Types of pr_uid and pr_gid in struct elf_prpsinfo. SH version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PROCFS_H
+# error "Never include <bits/procfs-id.h> directly; use <sys/procfs.h> instead."
+#endif
+
+typedef unsigned short int __pr_uid_t;
+typedef unsigned short int __pr_gid_t;
diff --git a/sysdeps/unix/sysv/linux/sh/bits/procfs.h b/sysdeps/unix/sysv/linux/sh/bits/procfs.h
new file mode 100644
index 0000000000..b8f5834651
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sh/bits/procfs.h
@@ -0,0 +1,24 @@
+/* Types for registers for sys/procfs.h. SH version.
+ Copyright (C) 1996-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PROCFS_H
+# error "Never include <bits/procfs.h> directly; use <sys/procfs.h> instead."
+#endif
+
+/* elf_gregset_t and elf_fpregset_t are defined by sys/user.h for
+ SH. */
diff --git a/sysdeps/unix/sysv/linux/sh/bits/shm.h b/sysdeps/unix/sysv/linux/sh/bits/shm.h
deleted file mode 100644
index 25ca3a2abb..0000000000
--- a/sysdeps/unix/sysv/linux/sh/bits/shm.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/* Copyright (C) 1995-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_SHM_H
-# error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
-#endif
-
-#include <bits/types.h>
-
-/* Permission flag for shmget. */
-#define SHM_R 0400 /* or S_IRUGO from <linux/stat.h> */
-#define SHM_W 0200 /* or S_IWUGO from <linux/stat.h> */
-
-/* Flags for `shmat'. */
-#define SHM_RDONLY 010000 /* attach read-only else read-write */
-#define SHM_RND 020000 /* round attach address to SHMLBA */
-#define SHM_REMAP 040000 /* take-over region on attach */
-#define SHM_EXEC 0100000 /* execution access */
-
-/* Commands for `shmctl'. */
-#define SHM_LOCK 11 /* lock segment (root only) */
-#define SHM_UNLOCK 12 /* unlock segment (root only) */
-
-__BEGIN_DECLS
-
-/* Segment low boundary address multiple. */
-#define SHMLBA 0x4000
-
-/* Type to count number of attaches. */
-typedef unsigned long int shmatt_t;
-
-/* Data structure describing a shared memory segment. */
-struct shmid_ds
- {
- struct ipc_perm shm_perm; /* operation permission struct */
- size_t shm_segsz; /* size of segment in bytes */
- __time_t shm_atime; /* time of last shmat() */
- unsigned long int __glibc_reserved1;
- __time_t shm_dtime; /* time of last shmdt() */
- unsigned long int __glibc_reserved2;
- __time_t shm_ctime; /* time of last change by shmctl() */
- unsigned long int __glibc_reserved3;
- __pid_t shm_cpid; /* pid of creator */
- __pid_t shm_lpid; /* pid of last shmop */
- shmatt_t shm_nattch; /* number of current attaches */
- unsigned long int __glibc_reserved4;
- unsigned long int __glibc_reserved5;
- };
-
-#ifdef __USE_MISC
-
-/* ipcs ctl commands */
-# define SHM_STAT 13
-# define SHM_INFO 14
-# define SHM_STAT_ANY 15
-
-/* shm_mode upper byte flags */
-# define SHM_DEST 01000 /* segment will be destroyed on last detach */
-# define SHM_LOCKED 02000 /* segment will not be swapped */
-# define SHM_HUGETLB 04000 /* segment is mapped via hugetlb */
-# define SHM_NORESERVE 010000 /* don't check for reservations */
-
-struct shminfo
- {
- unsigned long int shmmax;
- unsigned long int shmmin;
- unsigned long int shmmni;
- unsigned long int shmseg;
- unsigned long int shmall;
- unsigned long int __glibc_reserved1;
- unsigned long int __glibc_reserved2;
- unsigned long int __glibc_reserved3;
- unsigned long int __glibc_reserved4;
- };
-
-struct shm_info
- {
- int used_ids;
- unsigned long int shm_tot; /* total allocated shm */
- unsigned long int shm_rss; /* total resident shm */
- unsigned long int shm_swp; /* total swapped shm */
- unsigned long int swap_attempts;
- unsigned long int swap_successes;
- };
-
-#endif /* __USE_MISC */
-
-__END_DECLS
diff --git a/sysdeps/unix/sysv/linux/sh/bits/shmlba.h b/sysdeps/unix/sysv/linux/sh/bits/shmlba.h
new file mode 100644
index 0000000000..0a18c3e723
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sh/bits/shmlba.h
@@ -0,0 +1,24 @@
+/* Define SHMLBA. SH version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SHM_H
+# error "Never use <bits/shmlba.h> directly; include <sys/shm.h> instead."
+#endif
+
+/* Segment low boundary address multiple. */
+#define SHMLBA 0x4000
diff --git a/sysdeps/unix/sysv/linux/sh/brk.c b/sysdeps/unix/sysv/linux/sh/brk.c
index f29199c6e8..e8298dd01f 100644
--- a/sysdeps/unix/sysv/linux/sh/brk.c
+++ b/sysdeps/unix/sysv/linux/sh/brk.c
@@ -1,5 +1,5 @@
/* brk system call for Linux/SH.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/unix/sysv/linux/sh/clone.S b/sysdeps/unix/sysv/linux/sh/clone.S
index 4c39c99940..4312a9b434 100644
--- a/sysdeps/unix/sysv/linux/sh/clone.S
+++ b/sysdeps/unix/sysv/linux/sh/clone.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* clone() is even more special than fork() as it mucks with stacks
and invokes a function in the right context after its all over. */
diff --git a/sysdeps/unix/sysv/linux/sh/kernel-features.h b/sysdeps/unix/sysv/linux/sh/kernel-features.h
index b8ccb01518..e9048a6474 100644
--- a/sysdeps/unix/sysv/linux/sh/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/sh/kernel-features.h
@@ -1,6 +1,6 @@
/* Set flags signalling availability of kernel features based on given
kernel version number. SH version.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -15,13 +15,12 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef __KERNEL_FEATURES_SH__
# define __KERNEL_FEATURES_SH__
-/* SH uses socketcall. */
-#define __ASSUME_SOCKETCALL 1
+#include <endian.h>
/* These syscalls were added for SH in 2.6.37. */
#define __ASSUME_SOCKET_SYSCALL 1
@@ -39,24 +38,30 @@
#include_next <kernel-features.h>
-/* SH does not have a 64-bit inode field. */
-#undef __ASSUME_ST_INO_64_BIT
-#define __ASSUME_ST_INO_64_BIT 0
-
/* SH4 ABI does not really require argument alignment for 64-bits, but
the kernel interface for p{read,write}64 adds a dummy long argument
before the offset. */
#define __ASSUME_PRW_DUMMY_ARG 1
-/* sh only supports ipc syscall. */
-#undef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
+/* sh only supports ipc syscall before 5.1. */
+#if __LINUX_KERNEL_VERSION < 0x050100
+# undef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
+# undef __ASSUME_SYSVIPC_DEFAULT_IPC_64
+#endif
+#if __BYTE_ORDER == __BIG_ENDIAN
+# define __ASSUME_SYSVIPC_BROKEN_MODE_T
+#endif
-/* Support for the renameat2 syscall was added in 4.8. */
+/* Support for several syscalls was added in 4.8. */
#if __LINUX_KERNEL_VERSION < 0x040800
# undef __ASSUME_RENAMEAT2
+# undef __ASSUME_EXECVEAT
+# undef __ASSUME_MLOCK2
#endif
-/* sh does not support the statx system call. */
-#undef __ASSUME_STATX
+/* sh does not support the statx system call before 5.1. */
+#if __LINUX_KERNEL_VERSION < 0x050100
+# undef __ASSUME_STATX
+#endif
#endif
diff --git a/sysdeps/unix/sysv/linux/sh/kernel_sigaction.h b/sysdeps/unix/sysv/linux/sh/kernel_sigaction.h
index 7ebcd08d62..c8dc77a02b 100644
--- a/sysdeps/unix/sysv/linux/sh/kernel_sigaction.h
+++ b/sysdeps/unix/sysv/linux/sh/kernel_sigaction.h
@@ -1,8 +1,9 @@
/* SH uses the generic Linux UAPI but defines SA_RESTORER. */
#define SA_RESTORER 0x04000000
-#include <sysdeps/unix/sysv/linux/kernel_sigaction.h>
#define SET_SA_RESTORER(kact, act) \
(kact)->sa_restorer = (act)->sa_restorer
#define RESET_SA_RESTORER(act, kact) \
(act)->sa_restorer = (kact)->sa_restorer
+
+#include <sysdeps/unix/sysv/linux/kernel_sigaction.h>
diff --git a/sysdeps/unix/sysv/linux/sh/le/ld.abilist b/sysdeps/unix/sysv/linux/sh/le/ld.abilist
new file mode 100644
index 0000000000..0387614d8f
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sh/le/ld.abilist
@@ -0,0 +1,9 @@
+GLIBC_2.2 __libc_stack_end D 0x4
+GLIBC_2.2 _dl_mcount F
+GLIBC_2.2 _r_debug D 0x14
+GLIBC_2.2 calloc F
+GLIBC_2.2 free F
+GLIBC_2.2 malloc F
+GLIBC_2.2 realloc F
+GLIBC_2.3 __tls_get_addr F
+GLIBC_2.4 __stack_chk_guard D 0x4
diff --git a/sysdeps/unix/sysv/linux/sh/le/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/sh/le/libBrokenLocale.abilist
new file mode 100644
index 0000000000..0e4d814909
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sh/le/libBrokenLocale.abilist
@@ -0,0 +1 @@
+GLIBC_2.2 __ctype_get_mb_cur_max F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libanl.abilist b/sysdeps/unix/sysv/linux/sh/le/libanl.abilist
new file mode 100644
index 0000000000..d9a5ed015d
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sh/le/libanl.abilist
@@ -0,0 +1,4 @@
+GLIBC_2.2.3 gai_cancel F
+GLIBC_2.2.3 gai_error F
+GLIBC_2.2.3 gai_suspend F
+GLIBC_2.2.3 getaddrinfo_a F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
new file mode 100644
index 0000000000..4b057bf4a2
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -0,0 +1,2192 @@
+GCC_3.0 _Unwind_Find_FDE F
+GCC_3.0 __deregister_frame_info_bases F
+GCC_3.0 __register_frame_info_bases F
+GCC_3.0 __register_frame_info_table_bases F
+GLIBC_2.10 __cxa_at_quick_exit F
+GLIBC_2.10 __posix_getopt F
+GLIBC_2.10 accept4 F
+GLIBC_2.10 endsgent F
+GLIBC_2.10 fallocate F
+GLIBC_2.10 fgetsgent F
+GLIBC_2.10 fgetsgent_r F
+GLIBC_2.10 getsgent F
+GLIBC_2.10 getsgent_r F
+GLIBC_2.10 getsgnam F
+GLIBC_2.10 getsgnam_r F
+GLIBC_2.10 malloc_info F
+GLIBC_2.10 preadv F
+GLIBC_2.10 preadv64 F
+GLIBC_2.10 psiginfo F
+GLIBC_2.10 putsgent F
+GLIBC_2.10 pwritev F
+GLIBC_2.10 pwritev64 F
+GLIBC_2.10 quick_exit F
+GLIBC_2.10 register_printf_modifier F
+GLIBC_2.10 register_printf_specifier F
+GLIBC_2.10 register_printf_type F
+GLIBC_2.10 setsgent F
+GLIBC_2.10 sgetsgent F
+GLIBC_2.10 sgetsgent_r F
+GLIBC_2.11 __longjmp_chk F
+GLIBC_2.11 execvpe F
+GLIBC_2.11 fallocate64 F
+GLIBC_2.11 mkostemps F
+GLIBC_2.11 mkostemps64 F
+GLIBC_2.11 mkstemps F
+GLIBC_2.11 mkstemps64 F
+GLIBC_2.12 _sys_errlist D 0x21c
+GLIBC_2.12 _sys_nerr D 0x4
+GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 recvmmsg F
+GLIBC_2.12 sys_errlist D 0x21c
+GLIBC_2.12 sys_nerr D 0x4
+GLIBC_2.13 fanotify_init F
+GLIBC_2.13 prlimit F
+GLIBC_2.13 prlimit64 F
+GLIBC_2.14 clock_adjtime F
+GLIBC_2.14 name_to_handle_at F
+GLIBC_2.14 open_by_handle_at F
+GLIBC_2.14 sendmmsg F
+GLIBC_2.14 setns F
+GLIBC_2.14 syncfs F
+GLIBC_2.15 __fdelt_chk F
+GLIBC_2.15 __fdelt_warn F
+GLIBC_2.15 posix_spawn F
+GLIBC_2.15 posix_spawnp F
+GLIBC_2.15 process_vm_readv F
+GLIBC_2.15 process_vm_writev F
+GLIBC_2.15 scandirat F
+GLIBC_2.15 scandirat64 F
+GLIBC_2.16 __getauxval F
+GLIBC_2.16 __poll_chk F
+GLIBC_2.16 __ppoll_chk F
+GLIBC_2.16 aligned_alloc F
+GLIBC_2.16 c16rtomb F
+GLIBC_2.16 c32rtomb F
+GLIBC_2.16 fanotify_mark F
+GLIBC_2.16 getauxval F
+GLIBC_2.16 mbrtoc16 F
+GLIBC_2.16 mbrtoc32 F
+GLIBC_2.16 timespec_get F
+GLIBC_2.17 clock_getcpuclockid F
+GLIBC_2.17 clock_getres F
+GLIBC_2.17 clock_gettime F
+GLIBC_2.17 clock_nanosleep F
+GLIBC_2.17 clock_settime F
+GLIBC_2.17 secure_getenv F
+GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.2 _Exit F
+GLIBC_2.2 _IO_2_1_stderr_ D 0x98
+GLIBC_2.2 _IO_2_1_stdin_ D 0x98
+GLIBC_2.2 _IO_2_1_stdout_ D 0x98
+GLIBC_2.2 _IO_adjust_column F
+GLIBC_2.2 _IO_adjust_wcolumn F
+GLIBC_2.2 _IO_default_doallocate F
+GLIBC_2.2 _IO_default_finish F
+GLIBC_2.2 _IO_default_pbackfail F
+GLIBC_2.2 _IO_default_uflow F
+GLIBC_2.2 _IO_default_xsgetn F
+GLIBC_2.2 _IO_default_xsputn F
+GLIBC_2.2 _IO_do_write F
+GLIBC_2.2 _IO_doallocbuf F
+GLIBC_2.2 _IO_fclose F
+GLIBC_2.2 _IO_fdopen F
+GLIBC_2.2 _IO_feof F
+GLIBC_2.2 _IO_ferror F
+GLIBC_2.2 _IO_fflush F
+GLIBC_2.2 _IO_fgetpos F
+GLIBC_2.2 _IO_fgetpos64 F
+GLIBC_2.2 _IO_fgets F
+GLIBC_2.2 _IO_file_attach F
+GLIBC_2.2 _IO_file_close F
+GLIBC_2.2 _IO_file_close_it F
+GLIBC_2.2 _IO_file_doallocate F
+GLIBC_2.2 _IO_file_finish F
+GLIBC_2.2 _IO_file_fopen F
+GLIBC_2.2 _IO_file_init F
+GLIBC_2.2 _IO_file_jumps D 0x54
+GLIBC_2.2 _IO_file_open F
+GLIBC_2.2 _IO_file_overflow F
+GLIBC_2.2 _IO_file_read F
+GLIBC_2.2 _IO_file_seek F
+GLIBC_2.2 _IO_file_seekoff F
+GLIBC_2.2 _IO_file_setbuf F
+GLIBC_2.2 _IO_file_stat F
+GLIBC_2.2 _IO_file_sync F
+GLIBC_2.2 _IO_file_underflow F
+GLIBC_2.2 _IO_file_write F
+GLIBC_2.2 _IO_file_xsputn F
+GLIBC_2.2 _IO_flockfile F
+GLIBC_2.2 _IO_flush_all F
+GLIBC_2.2 _IO_flush_all_linebuffered F
+GLIBC_2.2 _IO_fopen F
+GLIBC_2.2 _IO_fprintf F
+GLIBC_2.2 _IO_fputs F
+GLIBC_2.2 _IO_fread F
+GLIBC_2.2 _IO_free_backup_area F
+GLIBC_2.2 _IO_free_wbackup_area F
+GLIBC_2.2 _IO_fsetpos F
+GLIBC_2.2 _IO_fsetpos64 F
+GLIBC_2.2 _IO_ftell F
+GLIBC_2.2 _IO_ftrylockfile F
+GLIBC_2.2 _IO_funlockfile F
+GLIBC_2.2 _IO_fwrite F
+GLIBC_2.2 _IO_getc F
+GLIBC_2.2 _IO_getline F
+GLIBC_2.2 _IO_getline_info F
+GLIBC_2.2 _IO_gets F
+GLIBC_2.2 _IO_init F
+GLIBC_2.2 _IO_init_marker F
+GLIBC_2.2 _IO_init_wmarker F
+GLIBC_2.2 _IO_iter_begin F
+GLIBC_2.2 _IO_iter_end F
+GLIBC_2.2 _IO_iter_file F
+GLIBC_2.2 _IO_iter_next F
+GLIBC_2.2 _IO_least_wmarker F
+GLIBC_2.2 _IO_link_in F
+GLIBC_2.2 _IO_list_all D 0x4
+GLIBC_2.2 _IO_list_lock F
+GLIBC_2.2 _IO_list_resetlock F
+GLIBC_2.2 _IO_list_unlock F
+GLIBC_2.2 _IO_marker_delta F
+GLIBC_2.2 _IO_marker_difference F
+GLIBC_2.2 _IO_padn F
+GLIBC_2.2 _IO_peekc_locked F
+GLIBC_2.2 _IO_popen F
+GLIBC_2.2 _IO_printf F
+GLIBC_2.2 _IO_proc_close F
+GLIBC_2.2 _IO_proc_open F
+GLIBC_2.2 _IO_putc F
+GLIBC_2.2 _IO_puts F
+GLIBC_2.2 _IO_remove_marker F
+GLIBC_2.2 _IO_seekmark F
+GLIBC_2.2 _IO_seekoff F
+GLIBC_2.2 _IO_seekpos F
+GLIBC_2.2 _IO_seekwmark F
+GLIBC_2.2 _IO_setb F
+GLIBC_2.2 _IO_setbuffer F
+GLIBC_2.2 _IO_setvbuf F
+GLIBC_2.2 _IO_sgetn F
+GLIBC_2.2 _IO_sprintf F
+GLIBC_2.2 _IO_sputbackc F
+GLIBC_2.2 _IO_sputbackwc F
+GLIBC_2.2 _IO_sscanf F
+GLIBC_2.2 _IO_str_init_readonly F
+GLIBC_2.2 _IO_str_init_static F
+GLIBC_2.2 _IO_str_overflow F
+GLIBC_2.2 _IO_str_pbackfail F
+GLIBC_2.2 _IO_str_seekoff F
+GLIBC_2.2 _IO_str_underflow F
+GLIBC_2.2 _IO_sungetc F
+GLIBC_2.2 _IO_sungetwc F
+GLIBC_2.2 _IO_switch_to_get_mode F
+GLIBC_2.2 _IO_switch_to_main_wget_area F
+GLIBC_2.2 _IO_switch_to_wbackup_area F
+GLIBC_2.2 _IO_switch_to_wget_mode F
+GLIBC_2.2 _IO_un_link F
+GLIBC_2.2 _IO_ungetc F
+GLIBC_2.2 _IO_unsave_markers F
+GLIBC_2.2 _IO_unsave_wmarkers F
+GLIBC_2.2 _IO_vfprintf F
+GLIBC_2.2 _IO_vfscanf F
+GLIBC_2.2 _IO_vsprintf F
+GLIBC_2.2 _IO_wdefault_doallocate F
+GLIBC_2.2 _IO_wdefault_finish F
+GLIBC_2.2 _IO_wdefault_pbackfail F
+GLIBC_2.2 _IO_wdefault_uflow F
+GLIBC_2.2 _IO_wdefault_xsgetn F
+GLIBC_2.2 _IO_wdefault_xsputn F
+GLIBC_2.2 _IO_wdo_write F
+GLIBC_2.2 _IO_wdoallocbuf F
+GLIBC_2.2 _IO_wfile_jumps D 0x54
+GLIBC_2.2 _IO_wfile_overflow F
+GLIBC_2.2 _IO_wfile_seekoff F
+GLIBC_2.2 _IO_wfile_sync F
+GLIBC_2.2 _IO_wfile_underflow F
+GLIBC_2.2 _IO_wfile_xsputn F
+GLIBC_2.2 _IO_wmarker_delta F
+GLIBC_2.2 _IO_wsetb F
+GLIBC_2.2 __adjtimex F
+GLIBC_2.2 __after_morecore_hook D 0x4
+GLIBC_2.2 __argz_count F
+GLIBC_2.2 __argz_next F
+GLIBC_2.2 __argz_stringify F
+GLIBC_2.2 __asprintf F
+GLIBC_2.2 __assert F
+GLIBC_2.2 __assert_fail F
+GLIBC_2.2 __assert_perror_fail F
+GLIBC_2.2 __backtrace F
+GLIBC_2.2 __backtrace_symbols F
+GLIBC_2.2 __backtrace_symbols_fd F
+GLIBC_2.2 __bsd_getpgrp F
+GLIBC_2.2 __bzero F
+GLIBC_2.2 __check_rhosts_file D 0x4
+GLIBC_2.2 __clone F
+GLIBC_2.2 __close F
+GLIBC_2.2 __cmsg_nxthdr F
+GLIBC_2.2 __connect F
+GLIBC_2.2 __ctype32_b D 0x4
+GLIBC_2.2 __ctype32_tolower D 0x4
+GLIBC_2.2 __ctype32_toupper D 0x4
+GLIBC_2.2 __ctype_b D 0x4
+GLIBC_2.2 __ctype_get_mb_cur_max F
+GLIBC_2.2 __ctype_tolower D 0x4
+GLIBC_2.2 __ctype_toupper D 0x4
+GLIBC_2.2 __curbrk D 0x4
+GLIBC_2.2 __cxa_atexit F
+GLIBC_2.2 __cxa_finalize F
+GLIBC_2.2 __cyg_profile_func_enter F
+GLIBC_2.2 __cyg_profile_func_exit F
+GLIBC_2.2 __daylight D 0x4
+GLIBC_2.2 __dcgettext F
+GLIBC_2.2 __default_morecore F
+GLIBC_2.2 __deregister_frame_info F
+GLIBC_2.2 __dgettext F
+GLIBC_2.2 __dup2 F
+GLIBC_2.2 __duplocale F
+GLIBC_2.2 __endmntent F
+GLIBC_2.2 __environ D 0x4
+GLIBC_2.2 __errno_location F
+GLIBC_2.2 __fbufsize F
+GLIBC_2.2 __fcntl F
+GLIBC_2.2 __ffs F
+GLIBC_2.2 __finite F
+GLIBC_2.2 __finitef F
+GLIBC_2.2 __finitel F
+GLIBC_2.2 __flbf F
+GLIBC_2.2 __fork F
+GLIBC_2.2 __fpending F
+GLIBC_2.2 __fpu_control D 0x4
+GLIBC_2.2 __fpurge F
+GLIBC_2.2 __freadable F
+GLIBC_2.2 __freading F
+GLIBC_2.2 __free_hook D 0x4
+GLIBC_2.2 __freelocale F
+GLIBC_2.2 __fsetlocking F
+GLIBC_2.2 __fwritable F
+GLIBC_2.2 __fwriting F
+GLIBC_2.2 __fxstat F
+GLIBC_2.2 __fxstat64 F
+GLIBC_2.2 __getdelim F
+GLIBC_2.2 __getmntent_r F
+GLIBC_2.2 __getpagesize F
+GLIBC_2.2 __getpgid F
+GLIBC_2.2 __getpid F
+GLIBC_2.2 __gettimeofday F
+GLIBC_2.2 __gmtime_r F
+GLIBC_2.2 __h_errno_location F
+GLIBC_2.2 __isalnum_l F
+GLIBC_2.2 __isalpha_l F
+GLIBC_2.2 __isascii_l F
+GLIBC_2.2 __isblank_l F
+GLIBC_2.2 __iscntrl_l F
+GLIBC_2.2 __isdigit_l F
+GLIBC_2.2 __isgraph_l F
+GLIBC_2.2 __isinf F
+GLIBC_2.2 __isinff F
+GLIBC_2.2 __isinfl F
+GLIBC_2.2 __islower_l F
+GLIBC_2.2 __isnan F
+GLIBC_2.2 __isnanf F
+GLIBC_2.2 __isnanl F
+GLIBC_2.2 __isprint_l F
+GLIBC_2.2 __ispunct_l F
+GLIBC_2.2 __isspace_l F
+GLIBC_2.2 __isupper_l F
+GLIBC_2.2 __iswalnum_l F
+GLIBC_2.2 __iswalpha_l F
+GLIBC_2.2 __iswblank_l F
+GLIBC_2.2 __iswcntrl_l F
+GLIBC_2.2 __iswctype F
+GLIBC_2.2 __iswctype_l F
+GLIBC_2.2 __iswdigit_l F
+GLIBC_2.2 __iswgraph_l F
+GLIBC_2.2 __iswlower_l F
+GLIBC_2.2 __iswprint_l F
+GLIBC_2.2 __iswpunct_l F
+GLIBC_2.2 __iswspace_l F
+GLIBC_2.2 __iswupper_l F
+GLIBC_2.2 __iswxdigit_l F
+GLIBC_2.2 __isxdigit_l F
+GLIBC_2.2 __ivaliduser F
+GLIBC_2.2 __key_decryptsession_pk_LOCAL D 0x4
+GLIBC_2.2 __key_encryptsession_pk_LOCAL D 0x4
+GLIBC_2.2 __key_gendes_LOCAL D 0x4
+GLIBC_2.2 __libc_allocate_rtsig F
+GLIBC_2.2 __libc_calloc F
+GLIBC_2.2 __libc_current_sigrtmax F
+GLIBC_2.2 __libc_current_sigrtmin F
+GLIBC_2.2 __libc_free F
+GLIBC_2.2 __libc_freeres F
+GLIBC_2.2 __libc_init_first F
+GLIBC_2.2 __libc_mallinfo F
+GLIBC_2.2 __libc_malloc F
+GLIBC_2.2 __libc_mallopt F
+GLIBC_2.2 __libc_memalign F
+GLIBC_2.2 __libc_pvalloc F
+GLIBC_2.2 __libc_realloc F
+GLIBC_2.2 __libc_sa_len F
+GLIBC_2.2 __libc_start_main F
+GLIBC_2.2 __libc_valloc F
+GLIBC_2.2 __lseek F
+GLIBC_2.2 __lxstat F
+GLIBC_2.2 __lxstat64 F
+GLIBC_2.2 __malloc_hook D 0x4
+GLIBC_2.2 __malloc_initialize_hook D 0x4
+GLIBC_2.2 __mbrlen F
+GLIBC_2.2 __mbrtowc F
+GLIBC_2.2 __memalign_hook D 0x4
+GLIBC_2.2 __mempcpy F
+GLIBC_2.2 __mempcpy_small F
+GLIBC_2.2 __monstartup F
+GLIBC_2.2 __morecore D 0x4
+GLIBC_2.2 __newlocale F
+GLIBC_2.2 __nl_langinfo_l F
+GLIBC_2.2 __nss_configure_lookup F
+GLIBC_2.2 __nss_database_lookup F
+GLIBC_2.2 __nss_group_lookup F
+GLIBC_2.2 __nss_hosts_lookup F
+GLIBC_2.2 __nss_next F
+GLIBC_2.2 __nss_passwd_lookup F
+GLIBC_2.2 __open F
+GLIBC_2.2 __open64 F
+GLIBC_2.2 __overflow F
+GLIBC_2.2 __pipe F
+GLIBC_2.2 __poll F
+GLIBC_2.2 __pread64 F
+GLIBC_2.2 __printf_fp F
+GLIBC_2.2 __profile_frequency F
+GLIBC_2.2 __progname D 0x4
+GLIBC_2.2 __progname_full D 0x4
+GLIBC_2.2 __pwrite64 F
+GLIBC_2.2 __rawmemchr F
+GLIBC_2.2 __rcmd_errstr D 0x4
+GLIBC_2.2 __read F
+GLIBC_2.2 __realloc_hook D 0x4
+GLIBC_2.2 __register_frame_info F
+GLIBC_2.2 __res_init F
+GLIBC_2.2 __res_nclose F
+GLIBC_2.2 __res_ninit F
+GLIBC_2.2 __res_randomid F
+GLIBC_2.2 __res_state F
+GLIBC_2.2 __sbrk F
+GLIBC_2.2 __sched_get_priority_max F
+GLIBC_2.2 __sched_get_priority_min F
+GLIBC_2.2 __sched_getparam F
+GLIBC_2.2 __sched_getscheduler F
+GLIBC_2.2 __sched_setscheduler F
+GLIBC_2.2 __sched_yield F
+GLIBC_2.2 __secure_getenv F
+GLIBC_2.2 __select F
+GLIBC_2.2 __send F
+GLIBC_2.2 __setmntent F
+GLIBC_2.2 __setpgid F
+GLIBC_2.2 __sigaction F
+GLIBC_2.2 __sigaddset F
+GLIBC_2.2 __sigdelset F
+GLIBC_2.2 __sigismember F
+GLIBC_2.2 __signbit F
+GLIBC_2.2 __signbitf F
+GLIBC_2.2 __sigpause F
+GLIBC_2.2 __sigsetjmp F
+GLIBC_2.2 __sigsuspend F
+GLIBC_2.2 __statfs F
+GLIBC_2.2 __stpcpy F
+GLIBC_2.2 __stpcpy_small F
+GLIBC_2.2 __stpncpy F
+GLIBC_2.2 __strcasecmp F
+GLIBC_2.2 __strcasecmp_l F
+GLIBC_2.2 __strcasestr F
+GLIBC_2.2 __strcoll_l F
+GLIBC_2.2 __strcpy_small F
+GLIBC_2.2 __strcspn_c1 F
+GLIBC_2.2 __strcspn_c2 F
+GLIBC_2.2 __strcspn_c3 F
+GLIBC_2.2 __strdup F
+GLIBC_2.2 __strerror_r F
+GLIBC_2.2 __strfmon_l F
+GLIBC_2.2 __strncasecmp_l F
+GLIBC_2.2 __strndup F
+GLIBC_2.2 __strpbrk_c2 F
+GLIBC_2.2 __strpbrk_c3 F
+GLIBC_2.2 __strsep_1c F
+GLIBC_2.2 __strsep_2c F
+GLIBC_2.2 __strsep_3c F
+GLIBC_2.2 __strsep_g F
+GLIBC_2.2 __strspn_c1 F
+GLIBC_2.2 __strspn_c2 F
+GLIBC_2.2 __strspn_c3 F
+GLIBC_2.2 __strtod_internal F
+GLIBC_2.2 __strtod_l F
+GLIBC_2.2 __strtof_internal F
+GLIBC_2.2 __strtof_l F
+GLIBC_2.2 __strtok_r F
+GLIBC_2.2 __strtok_r_1c F
+GLIBC_2.2 __strtol_internal F
+GLIBC_2.2 __strtol_l F
+GLIBC_2.2 __strtold_internal F
+GLIBC_2.2 __strtold_l F
+GLIBC_2.2 __strtoll_internal F
+GLIBC_2.2 __strtoll_l F
+GLIBC_2.2 __strtoul_internal F
+GLIBC_2.2 __strtoul_l F
+GLIBC_2.2 __strtoull_internal F
+GLIBC_2.2 __strtoull_l F
+GLIBC_2.2 __strverscmp F
+GLIBC_2.2 __strxfrm_l F
+GLIBC_2.2 __sysconf F
+GLIBC_2.2 __sysctl F
+GLIBC_2.2 __sysv_signal F
+GLIBC_2.2 __timezone D 0x4
+GLIBC_2.2 __toascii_l F
+GLIBC_2.2 __tolower_l F
+GLIBC_2.2 __toupper_l F
+GLIBC_2.2 __towctrans F
+GLIBC_2.2 __towctrans_l F
+GLIBC_2.2 __towlower_l F
+GLIBC_2.2 __towupper_l F
+GLIBC_2.2 __tzname D 0x8
+GLIBC_2.2 __uflow F
+GLIBC_2.2 __underflow F
+GLIBC_2.2 __vfork F
+GLIBC_2.2 __vfscanf F
+GLIBC_2.2 __vsnprintf F
+GLIBC_2.2 __vsscanf F
+GLIBC_2.2 __wait F
+GLIBC_2.2 __waitpid F
+GLIBC_2.2 __wcscasecmp_l F
+GLIBC_2.2 __wcscoll_l F
+GLIBC_2.2 __wcsncasecmp_l F
+GLIBC_2.2 __wcstod_internal F
+GLIBC_2.2 __wcstod_l F
+GLIBC_2.2 __wcstof_internal F
+GLIBC_2.2 __wcstof_l F
+GLIBC_2.2 __wcstol_internal F
+GLIBC_2.2 __wcstol_l F
+GLIBC_2.2 __wcstold_internal F
+GLIBC_2.2 __wcstold_l F
+GLIBC_2.2 __wcstoll_internal F
+GLIBC_2.2 __wcstoll_l F
+GLIBC_2.2 __wcstoul_internal F
+GLIBC_2.2 __wcstoul_l F
+GLIBC_2.2 __wcstoull_internal F
+GLIBC_2.2 __wcstoull_l F
+GLIBC_2.2 __wcsxfrm_l F
+GLIBC_2.2 __wctrans_l F
+GLIBC_2.2 __wctype_l F
+GLIBC_2.2 __woverflow F
+GLIBC_2.2 __write F
+GLIBC_2.2 __wuflow F
+GLIBC_2.2 __wunderflow F
+GLIBC_2.2 __xmknod F
+GLIBC_2.2 __xpg_basename F
+GLIBC_2.2 __xpg_sigpause F
+GLIBC_2.2 __xstat F
+GLIBC_2.2 __xstat64 F
+GLIBC_2.2 _authenticate F
+GLIBC_2.2 _dl_mcount_wrapper F
+GLIBC_2.2 _dl_mcount_wrapper_check F
+GLIBC_2.2 _environ D 0x4
+GLIBC_2.2 _exit F
+GLIBC_2.2 _flushlbf F
+GLIBC_2.2 _libc_intl_domainname D 0x5
+GLIBC_2.2 _longjmp F
+GLIBC_2.2 _mcleanup F
+GLIBC_2.2 _mcount F
+GLIBC_2.2 _nl_default_dirname D 0x12
+GLIBC_2.2 _nl_domain_bindings D 0x4
+GLIBC_2.2 _nl_msg_cat_cntr D 0x4
+GLIBC_2.2 _null_auth D 0xc
+GLIBC_2.2 _obstack D 0x4
+GLIBC_2.2 _obstack_allocated_p F
+GLIBC_2.2 _obstack_begin F
+GLIBC_2.2 _obstack_begin_1 F
+GLIBC_2.2 _obstack_free F
+GLIBC_2.2 _obstack_memory_used F
+GLIBC_2.2 _obstack_newchunk F
+GLIBC_2.2 _res D 0x200
+GLIBC_2.2 _res_hconf D 0x30
+GLIBC_2.2 _rpc_dtablesize F
+GLIBC_2.2 _seterr_reply F
+GLIBC_2.2 _setjmp F
+GLIBC_2.2 _sys_errlist D 0x1f4
+GLIBC_2.2 _sys_nerr D 0x4
+GLIBC_2.2 _sys_siglist D 0x100
+GLIBC_2.2 _tolower F
+GLIBC_2.2 _toupper F
+GLIBC_2.2 a64l F
+GLIBC_2.2 abort F
+GLIBC_2.2 abs F
+GLIBC_2.2 accept F
+GLIBC_2.2 access F
+GLIBC_2.2 acct F
+GLIBC_2.2 addmntent F
+GLIBC_2.2 addseverity F
+GLIBC_2.2 adjtime F
+GLIBC_2.2 adjtimex F
+GLIBC_2.2 advance F
+GLIBC_2.2 alarm F
+GLIBC_2.2 alphasort F
+GLIBC_2.2 alphasort64 F
+GLIBC_2.2 argp_err_exit_status D 0x4
+GLIBC_2.2 argp_error F
+GLIBC_2.2 argp_failure F
+GLIBC_2.2 argp_help F
+GLIBC_2.2 argp_parse F
+GLIBC_2.2 argp_program_bug_address D 0x4
+GLIBC_2.2 argp_program_version D 0x4
+GLIBC_2.2 argp_program_version_hook D 0x4
+GLIBC_2.2 argp_state_help F
+GLIBC_2.2 argp_usage F
+GLIBC_2.2 argz_add F
+GLIBC_2.2 argz_add_sep F
+GLIBC_2.2 argz_append F
+GLIBC_2.2 argz_count F
+GLIBC_2.2 argz_create F
+GLIBC_2.2 argz_create_sep F
+GLIBC_2.2 argz_delete F
+GLIBC_2.2 argz_extract F
+GLIBC_2.2 argz_insert F
+GLIBC_2.2 argz_next F
+GLIBC_2.2 argz_replace F
+GLIBC_2.2 argz_stringify F
+GLIBC_2.2 asctime F
+GLIBC_2.2 asctime_r F
+GLIBC_2.2 asprintf F
+GLIBC_2.2 atexit F
+GLIBC_2.2 atof F
+GLIBC_2.2 atoi F
+GLIBC_2.2 atol F
+GLIBC_2.2 atoll F
+GLIBC_2.2 authdes_create F
+GLIBC_2.2 authdes_getucred F
+GLIBC_2.2 authdes_pk_create F
+GLIBC_2.2 authnone_create F
+GLIBC_2.2 authunix_create F
+GLIBC_2.2 authunix_create_default F
+GLIBC_2.2 backtrace F
+GLIBC_2.2 backtrace_symbols F
+GLIBC_2.2 backtrace_symbols_fd F
+GLIBC_2.2 basename F
+GLIBC_2.2 bcmp F
+GLIBC_2.2 bcopy F
+GLIBC_2.2 bdflush F
+GLIBC_2.2 bind F
+GLIBC_2.2 bind_textdomain_codeset F
+GLIBC_2.2 bindresvport F
+GLIBC_2.2 bindtextdomain F
+GLIBC_2.2 brk F
+GLIBC_2.2 bsd_signal F
+GLIBC_2.2 bsearch F
+GLIBC_2.2 btowc F
+GLIBC_2.2 bzero F
+GLIBC_2.2 calloc F
+GLIBC_2.2 callrpc F
+GLIBC_2.2 canonicalize_file_name F
+GLIBC_2.2 capget F
+GLIBC_2.2 capset F
+GLIBC_2.2 catclose F
+GLIBC_2.2 catgets F
+GLIBC_2.2 catopen F
+GLIBC_2.2 cbc_crypt F
+GLIBC_2.2 cfgetispeed F
+GLIBC_2.2 cfgetospeed F
+GLIBC_2.2 cfmakeraw F
+GLIBC_2.2 cfree F
+GLIBC_2.2 cfsetispeed F
+GLIBC_2.2 cfsetospeed F
+GLIBC_2.2 cfsetspeed F
+GLIBC_2.2 chdir F
+GLIBC_2.2 chflags F
+GLIBC_2.2 chmod F
+GLIBC_2.2 chown F
+GLIBC_2.2 chroot F
+GLIBC_2.2 clearenv F
+GLIBC_2.2 clearerr F
+GLIBC_2.2 clearerr_unlocked F
+GLIBC_2.2 clnt_broadcast F
+GLIBC_2.2 clnt_create F
+GLIBC_2.2 clnt_pcreateerror F
+GLIBC_2.2 clnt_perrno F
+GLIBC_2.2 clnt_perror F
+GLIBC_2.2 clnt_spcreateerror F
+GLIBC_2.2 clnt_sperrno F
+GLIBC_2.2 clnt_sperror F
+GLIBC_2.2 clntraw_create F
+GLIBC_2.2 clnttcp_create F
+GLIBC_2.2 clntudp_bufcreate F
+GLIBC_2.2 clntudp_create F
+GLIBC_2.2 clntunix_create F
+GLIBC_2.2 clock F
+GLIBC_2.2 clock_getcpuclockid F
+GLIBC_2.2 clock_getres F
+GLIBC_2.2 clock_gettime F
+GLIBC_2.2 clock_nanosleep F
+GLIBC_2.2 clock_settime F
+GLIBC_2.2 clone F
+GLIBC_2.2 close F
+GLIBC_2.2 closedir F
+GLIBC_2.2 closelog F
+GLIBC_2.2 confstr F
+GLIBC_2.2 connect F
+GLIBC_2.2 copysign F
+GLIBC_2.2 copysignf F
+GLIBC_2.2 copysignl F
+GLIBC_2.2 creat F
+GLIBC_2.2 creat64 F
+GLIBC_2.2 create_module F
+GLIBC_2.2 ctermid F
+GLIBC_2.2 ctime F
+GLIBC_2.2 ctime_r F
+GLIBC_2.2 cuserid F
+GLIBC_2.2 daemon F
+GLIBC_2.2 daylight D 0x4
+GLIBC_2.2 dcgettext F
+GLIBC_2.2 dcngettext F
+GLIBC_2.2 delete_module F
+GLIBC_2.2 des_setparity F
+GLIBC_2.2 dgettext F
+GLIBC_2.2 difftime F
+GLIBC_2.2 dirfd F
+GLIBC_2.2 dirname F
+GLIBC_2.2 div F
+GLIBC_2.2 dngettext F
+GLIBC_2.2 dprintf F
+GLIBC_2.2 drand48 F
+GLIBC_2.2 drand48_r F
+GLIBC_2.2 dup F
+GLIBC_2.2 dup2 F
+GLIBC_2.2 dysize F
+GLIBC_2.2 ecb_crypt F
+GLIBC_2.2 ecvt F
+GLIBC_2.2 ecvt_r F
+GLIBC_2.2 endaliasent F
+GLIBC_2.2 endfsent F
+GLIBC_2.2 endgrent F
+GLIBC_2.2 endhostent F
+GLIBC_2.2 endmntent F
+GLIBC_2.2 endnetent F
+GLIBC_2.2 endnetgrent F
+GLIBC_2.2 endprotoent F
+GLIBC_2.2 endpwent F
+GLIBC_2.2 endrpcent F
+GLIBC_2.2 endservent F
+GLIBC_2.2 endspent F
+GLIBC_2.2 endttyent F
+GLIBC_2.2 endusershell F
+GLIBC_2.2 endutent F
+GLIBC_2.2 endutxent F
+GLIBC_2.2 environ D 0x4
+GLIBC_2.2 envz_add F
+GLIBC_2.2 envz_entry F
+GLIBC_2.2 envz_get F
+GLIBC_2.2 envz_merge F
+GLIBC_2.2 envz_remove F
+GLIBC_2.2 envz_strip F
+GLIBC_2.2 erand48 F
+GLIBC_2.2 erand48_r F
+GLIBC_2.2 err F
+GLIBC_2.2 error F
+GLIBC_2.2 error_at_line F
+GLIBC_2.2 error_message_count D 0x4
+GLIBC_2.2 error_one_per_line D 0x4
+GLIBC_2.2 error_print_progname D 0x4
+GLIBC_2.2 errx F
+GLIBC_2.2 ether_aton F
+GLIBC_2.2 ether_aton_r F
+GLIBC_2.2 ether_hostton F
+GLIBC_2.2 ether_line F
+GLIBC_2.2 ether_ntoa F
+GLIBC_2.2 ether_ntoa_r F
+GLIBC_2.2 ether_ntohost F
+GLIBC_2.2 euidaccess F
+GLIBC_2.2 execl F
+GLIBC_2.2 execle F
+GLIBC_2.2 execlp F
+GLIBC_2.2 execv F
+GLIBC_2.2 execve F
+GLIBC_2.2 execvp F
+GLIBC_2.2 exit F
+GLIBC_2.2 fattach F
+GLIBC_2.2 fchdir F
+GLIBC_2.2 fchflags F
+GLIBC_2.2 fchmod F
+GLIBC_2.2 fchown F
+GLIBC_2.2 fclose F
+GLIBC_2.2 fcloseall F
+GLIBC_2.2 fcntl F
+GLIBC_2.2 fcvt F
+GLIBC_2.2 fcvt_r F
+GLIBC_2.2 fdatasync F
+GLIBC_2.2 fdetach F
+GLIBC_2.2 fdopen F
+GLIBC_2.2 feof F
+GLIBC_2.2 feof_unlocked F
+GLIBC_2.2 ferror F
+GLIBC_2.2 ferror_unlocked F
+GLIBC_2.2 fexecve F
+GLIBC_2.2 fflush F
+GLIBC_2.2 fflush_unlocked F
+GLIBC_2.2 ffs F
+GLIBC_2.2 ffsl F
+GLIBC_2.2 ffsll F
+GLIBC_2.2 fgetc F
+GLIBC_2.2 fgetc_unlocked F
+GLIBC_2.2 fgetgrent F
+GLIBC_2.2 fgetgrent_r F
+GLIBC_2.2 fgetpos F
+GLIBC_2.2 fgetpos64 F
+GLIBC_2.2 fgetpwent F
+GLIBC_2.2 fgetpwent_r F
+GLIBC_2.2 fgets F
+GLIBC_2.2 fgets_unlocked F
+GLIBC_2.2 fgetspent F
+GLIBC_2.2 fgetspent_r F
+GLIBC_2.2 fgetwc F
+GLIBC_2.2 fgetwc_unlocked F
+GLIBC_2.2 fgetws F
+GLIBC_2.2 fgetws_unlocked F
+GLIBC_2.2 fileno F
+GLIBC_2.2 fileno_unlocked F
+GLIBC_2.2 finite F
+GLIBC_2.2 finitef F
+GLIBC_2.2 finitel F
+GLIBC_2.2 flock F
+GLIBC_2.2 flockfile F
+GLIBC_2.2 fmemopen F
+GLIBC_2.2 fmtmsg F
+GLIBC_2.2 fnmatch F
+GLIBC_2.2 fopen F
+GLIBC_2.2 fopen64 F
+GLIBC_2.2 fopencookie F
+GLIBC_2.2 fork F
+GLIBC_2.2 fpathconf F
+GLIBC_2.2 fprintf F
+GLIBC_2.2 fputc F
+GLIBC_2.2 fputc_unlocked F
+GLIBC_2.2 fputs F
+GLIBC_2.2 fputs_unlocked F
+GLIBC_2.2 fputwc F
+GLIBC_2.2 fputwc_unlocked F
+GLIBC_2.2 fputws F
+GLIBC_2.2 fputws_unlocked F
+GLIBC_2.2 fread F
+GLIBC_2.2 fread_unlocked F
+GLIBC_2.2 free F
+GLIBC_2.2 freeaddrinfo F
+GLIBC_2.2 freopen F
+GLIBC_2.2 freopen64 F
+GLIBC_2.2 frexp F
+GLIBC_2.2 frexpf F
+GLIBC_2.2 frexpl F
+GLIBC_2.2 fscanf F
+GLIBC_2.2 fseek F
+GLIBC_2.2 fseeko F
+GLIBC_2.2 fseeko64 F
+GLIBC_2.2 fsetpos F
+GLIBC_2.2 fsetpos64 F
+GLIBC_2.2 fstatfs F
+GLIBC_2.2 fstatfs64 F
+GLIBC_2.2 fstatvfs F
+GLIBC_2.2 fstatvfs64 F
+GLIBC_2.2 fsync F
+GLIBC_2.2 ftell F
+GLIBC_2.2 ftello F
+GLIBC_2.2 ftello64 F
+GLIBC_2.2 ftime F
+GLIBC_2.2 ftok F
+GLIBC_2.2 ftruncate F
+GLIBC_2.2 ftruncate64 F
+GLIBC_2.2 ftrylockfile F
+GLIBC_2.2 fts_children F
+GLIBC_2.2 fts_close F
+GLIBC_2.2 fts_open F
+GLIBC_2.2 fts_read F
+GLIBC_2.2 fts_set F
+GLIBC_2.2 ftw F
+GLIBC_2.2 ftw64 F
+GLIBC_2.2 funlockfile F
+GLIBC_2.2 fwide F
+GLIBC_2.2 fwprintf F
+GLIBC_2.2 fwrite F
+GLIBC_2.2 fwrite_unlocked F
+GLIBC_2.2 fwscanf F
+GLIBC_2.2 gai_strerror F
+GLIBC_2.2 gcvt F
+GLIBC_2.2 get_avphys_pages F
+GLIBC_2.2 get_current_dir_name F
+GLIBC_2.2 get_kernel_syms F
+GLIBC_2.2 get_myaddress F
+GLIBC_2.2 get_nprocs F
+GLIBC_2.2 get_nprocs_conf F
+GLIBC_2.2 get_phys_pages F
+GLIBC_2.2 getaddrinfo F
+GLIBC_2.2 getaliasbyname F
+GLIBC_2.2 getaliasbyname_r F
+GLIBC_2.2 getaliasent F
+GLIBC_2.2 getaliasent_r F
+GLIBC_2.2 getc F
+GLIBC_2.2 getc_unlocked F
+GLIBC_2.2 getchar F
+GLIBC_2.2 getchar_unlocked F
+GLIBC_2.2 getcontext F
+GLIBC_2.2 getcwd F
+GLIBC_2.2 getdate F
+GLIBC_2.2 getdate_err D 0x4
+GLIBC_2.2 getdate_r F
+GLIBC_2.2 getdelim F
+GLIBC_2.2 getdirentries F
+GLIBC_2.2 getdirentries64 F
+GLIBC_2.2 getdomainname F
+GLIBC_2.2 getdtablesize F
+GLIBC_2.2 getegid F
+GLIBC_2.2 getenv F
+GLIBC_2.2 geteuid F
+GLIBC_2.2 getfsent F
+GLIBC_2.2 getfsfile F
+GLIBC_2.2 getfsspec F
+GLIBC_2.2 getgid F
+GLIBC_2.2 getgrent F
+GLIBC_2.2 getgrent_r F
+GLIBC_2.2 getgrgid F
+GLIBC_2.2 getgrgid_r F
+GLIBC_2.2 getgrnam F
+GLIBC_2.2 getgrnam_r F
+GLIBC_2.2 getgroups F
+GLIBC_2.2 gethostbyaddr F
+GLIBC_2.2 gethostbyaddr_r F
+GLIBC_2.2 gethostbyname F
+GLIBC_2.2 gethostbyname2 F
+GLIBC_2.2 gethostbyname2_r F
+GLIBC_2.2 gethostbyname_r F
+GLIBC_2.2 gethostent F
+GLIBC_2.2 gethostent_r F
+GLIBC_2.2 gethostid F
+GLIBC_2.2 gethostname F
+GLIBC_2.2 getitimer F
+GLIBC_2.2 getline F
+GLIBC_2.2 getloadavg F
+GLIBC_2.2 getlogin F
+GLIBC_2.2 getlogin_r F
+GLIBC_2.2 getmntent F
+GLIBC_2.2 getmntent_r F
+GLIBC_2.2 getmsg F
+GLIBC_2.2 getnameinfo F
+GLIBC_2.2 getnetbyaddr F
+GLIBC_2.2 getnetbyaddr_r F
+GLIBC_2.2 getnetbyname F
+GLIBC_2.2 getnetbyname_r F
+GLIBC_2.2 getnetent F
+GLIBC_2.2 getnetent_r F
+GLIBC_2.2 getnetgrent F
+GLIBC_2.2 getnetgrent_r F
+GLIBC_2.2 getnetname F
+GLIBC_2.2 getopt F
+GLIBC_2.2 getopt_long F
+GLIBC_2.2 getopt_long_only F
+GLIBC_2.2 getpagesize F
+GLIBC_2.2 getpass F
+GLIBC_2.2 getpeername F
+GLIBC_2.2 getpgid F
+GLIBC_2.2 getpgrp F
+GLIBC_2.2 getpid F
+GLIBC_2.2 getpmsg F
+GLIBC_2.2 getppid F
+GLIBC_2.2 getpriority F
+GLIBC_2.2 getprotobyname F
+GLIBC_2.2 getprotobyname_r F
+GLIBC_2.2 getprotobynumber F
+GLIBC_2.2 getprotobynumber_r F
+GLIBC_2.2 getprotoent F
+GLIBC_2.2 getprotoent_r F
+GLIBC_2.2 getpt F
+GLIBC_2.2 getpublickey F
+GLIBC_2.2 getpw F
+GLIBC_2.2 getpwent F
+GLIBC_2.2 getpwent_r F
+GLIBC_2.2 getpwnam F
+GLIBC_2.2 getpwnam_r F
+GLIBC_2.2 getpwuid F
+GLIBC_2.2 getpwuid_r F
+GLIBC_2.2 getresgid F
+GLIBC_2.2 getresuid F
+GLIBC_2.2 getrlimit F
+GLIBC_2.2 getrlimit64 F
+GLIBC_2.2 getrpcbyname F
+GLIBC_2.2 getrpcbyname_r F
+GLIBC_2.2 getrpcbynumber F
+GLIBC_2.2 getrpcbynumber_r F
+GLIBC_2.2 getrpcent F
+GLIBC_2.2 getrpcent_r F
+GLIBC_2.2 getrpcport F
+GLIBC_2.2 getrusage F
+GLIBC_2.2 gets F
+GLIBC_2.2 getsecretkey F
+GLIBC_2.2 getservbyname F
+GLIBC_2.2 getservbyname_r F
+GLIBC_2.2 getservbyport F
+GLIBC_2.2 getservbyport_r F
+GLIBC_2.2 getservent F
+GLIBC_2.2 getservent_r F
+GLIBC_2.2 getsid F
+GLIBC_2.2 getsockname F
+GLIBC_2.2 getsockopt F
+GLIBC_2.2 getspent F
+GLIBC_2.2 getspent_r F
+GLIBC_2.2 getspnam F
+GLIBC_2.2 getspnam_r F
+GLIBC_2.2 getsubopt F
+GLIBC_2.2 gettext F
+GLIBC_2.2 gettimeofday F
+GLIBC_2.2 getttyent F
+GLIBC_2.2 getttynam F
+GLIBC_2.2 getuid F
+GLIBC_2.2 getusershell F
+GLIBC_2.2 getutent F
+GLIBC_2.2 getutent_r F
+GLIBC_2.2 getutid F
+GLIBC_2.2 getutid_r F
+GLIBC_2.2 getutline F
+GLIBC_2.2 getutline_r F
+GLIBC_2.2 getutmp F
+GLIBC_2.2 getutmpx F
+GLIBC_2.2 getutxent F
+GLIBC_2.2 getutxid F
+GLIBC_2.2 getutxline F
+GLIBC_2.2 getw F
+GLIBC_2.2 getwc F
+GLIBC_2.2 getwc_unlocked F
+GLIBC_2.2 getwchar F
+GLIBC_2.2 getwchar_unlocked F
+GLIBC_2.2 getwd F
+GLIBC_2.2 glob F
+GLIBC_2.2 glob64 F
+GLIBC_2.2 glob_pattern_p F
+GLIBC_2.2 globfree F
+GLIBC_2.2 globfree64 F
+GLIBC_2.2 gmtime F
+GLIBC_2.2 gmtime_r F
+GLIBC_2.2 gnu_get_libc_release F
+GLIBC_2.2 gnu_get_libc_version F
+GLIBC_2.2 grantpt F
+GLIBC_2.2 group_member F
+GLIBC_2.2 gsignal F
+GLIBC_2.2 gtty F
+GLIBC_2.2 h_errlist D 0x14
+GLIBC_2.2 h_nerr D 0x4
+GLIBC_2.2 hasmntopt F
+GLIBC_2.2 hcreate F
+GLIBC_2.2 hcreate_r F
+GLIBC_2.2 hdestroy F
+GLIBC_2.2 hdestroy_r F
+GLIBC_2.2 herror F
+GLIBC_2.2 host2netname F
+GLIBC_2.2 hsearch F
+GLIBC_2.2 hsearch_r F
+GLIBC_2.2 hstrerror F
+GLIBC_2.2 htonl F
+GLIBC_2.2 htons F
+GLIBC_2.2 iconv F
+GLIBC_2.2 iconv_close F
+GLIBC_2.2 iconv_open F
+GLIBC_2.2 if_freenameindex F
+GLIBC_2.2 if_indextoname F
+GLIBC_2.2 if_nameindex F
+GLIBC_2.2 if_nametoindex F
+GLIBC_2.2 imaxabs F
+GLIBC_2.2 imaxdiv F
+GLIBC_2.2 in6addr_any D 0x10
+GLIBC_2.2 in6addr_loopback D 0x10
+GLIBC_2.2 index F
+GLIBC_2.2 inet_addr F
+GLIBC_2.2 inet_aton F
+GLIBC_2.2 inet_lnaof F
+GLIBC_2.2 inet_makeaddr F
+GLIBC_2.2 inet_netof F
+GLIBC_2.2 inet_network F
+GLIBC_2.2 inet_nsap_addr F
+GLIBC_2.2 inet_nsap_ntoa F
+GLIBC_2.2 inet_ntoa F
+GLIBC_2.2 inet_ntop F
+GLIBC_2.2 inet_pton F
+GLIBC_2.2 init_module F
+GLIBC_2.2 initgroups F
+GLIBC_2.2 initstate F
+GLIBC_2.2 initstate_r F
+GLIBC_2.2 innetgr F
+GLIBC_2.2 insque F
+GLIBC_2.2 ioctl F
+GLIBC_2.2 iruserok F
+GLIBC_2.2 iruserok_af F
+GLIBC_2.2 isalnum F
+GLIBC_2.2 isalpha F
+GLIBC_2.2 isascii F
+GLIBC_2.2 isastream F
+GLIBC_2.2 isatty F
+GLIBC_2.2 isblank F
+GLIBC_2.2 iscntrl F
+GLIBC_2.2 isdigit F
+GLIBC_2.2 isfdtype F
+GLIBC_2.2 isgraph F
+GLIBC_2.2 isinf F
+GLIBC_2.2 isinff F
+GLIBC_2.2 isinfl F
+GLIBC_2.2 islower F
+GLIBC_2.2 isnan F
+GLIBC_2.2 isnanf F
+GLIBC_2.2 isnanl F
+GLIBC_2.2 isprint F
+GLIBC_2.2 ispunct F
+GLIBC_2.2 isspace F
+GLIBC_2.2 isupper F
+GLIBC_2.2 iswalnum F
+GLIBC_2.2 iswalpha F
+GLIBC_2.2 iswblank F
+GLIBC_2.2 iswcntrl F
+GLIBC_2.2 iswctype F
+GLIBC_2.2 iswdigit F
+GLIBC_2.2 iswgraph F
+GLIBC_2.2 iswlower F
+GLIBC_2.2 iswprint F
+GLIBC_2.2 iswpunct F
+GLIBC_2.2 iswspace F
+GLIBC_2.2 iswupper F
+GLIBC_2.2 iswxdigit F
+GLIBC_2.2 isxdigit F
+GLIBC_2.2 jrand48 F
+GLIBC_2.2 jrand48_r F
+GLIBC_2.2 key_decryptsession F
+GLIBC_2.2 key_decryptsession_pk F
+GLIBC_2.2 key_encryptsession F
+GLIBC_2.2 key_encryptsession_pk F
+GLIBC_2.2 key_gendes F
+GLIBC_2.2 key_get_conv F
+GLIBC_2.2 key_secretkey_is_set F
+GLIBC_2.2 key_setnet F
+GLIBC_2.2 key_setsecret F
+GLIBC_2.2 kill F
+GLIBC_2.2 killpg F
+GLIBC_2.2 klogctl F
+GLIBC_2.2 l64a F
+GLIBC_2.2 labs F
+GLIBC_2.2 lchown F
+GLIBC_2.2 lckpwdf F
+GLIBC_2.2 lcong48 F
+GLIBC_2.2 lcong48_r F
+GLIBC_2.2 ldexp F
+GLIBC_2.2 ldexpf F
+GLIBC_2.2 ldexpl F
+GLIBC_2.2 ldiv F
+GLIBC_2.2 lfind F
+GLIBC_2.2 link F
+GLIBC_2.2 listen F
+GLIBC_2.2 llabs F
+GLIBC_2.2 lldiv F
+GLIBC_2.2 llseek F
+GLIBC_2.2 loc1 D 0x4
+GLIBC_2.2 loc2 D 0x4
+GLIBC_2.2 localeconv F
+GLIBC_2.2 localtime F
+GLIBC_2.2 localtime_r F
+GLIBC_2.2 lockf F
+GLIBC_2.2 lockf64 F
+GLIBC_2.2 locs D 0x4
+GLIBC_2.2 longjmp F
+GLIBC_2.2 lrand48 F
+GLIBC_2.2 lrand48_r F
+GLIBC_2.2 lsearch F
+GLIBC_2.2 lseek F
+GLIBC_2.2 lseek64 F
+GLIBC_2.2 madvise F
+GLIBC_2.2 makecontext F
+GLIBC_2.2 mallinfo F
+GLIBC_2.2 malloc F
+GLIBC_2.2 malloc_get_state F
+GLIBC_2.2 malloc_set_state F
+GLIBC_2.2 malloc_stats F
+GLIBC_2.2 malloc_trim F
+GLIBC_2.2 malloc_usable_size F
+GLIBC_2.2 mallopt F
+GLIBC_2.2 mallwatch D 0x4
+GLIBC_2.2 mblen F
+GLIBC_2.2 mbrlen F
+GLIBC_2.2 mbrtowc F
+GLIBC_2.2 mbsinit F
+GLIBC_2.2 mbsnrtowcs F
+GLIBC_2.2 mbsrtowcs F
+GLIBC_2.2 mbstowcs F
+GLIBC_2.2 mbtowc F
+GLIBC_2.2 mcheck F
+GLIBC_2.2 mcheck_check_all F
+GLIBC_2.2 mcheck_pedantic F
+GLIBC_2.2 mcount F
+GLIBC_2.2 memalign F
+GLIBC_2.2 memccpy F
+GLIBC_2.2 memchr F
+GLIBC_2.2 memcmp F
+GLIBC_2.2 memcpy F
+GLIBC_2.2 memfrob F
+GLIBC_2.2 memmem F
+GLIBC_2.2 memmove F
+GLIBC_2.2 mempcpy F
+GLIBC_2.2 memrchr F
+GLIBC_2.2 memset F
+GLIBC_2.2 mincore F
+GLIBC_2.2 mkdir F
+GLIBC_2.2 mkdtemp F
+GLIBC_2.2 mkfifo F
+GLIBC_2.2 mkstemp F
+GLIBC_2.2 mkstemp64 F
+GLIBC_2.2 mktemp F
+GLIBC_2.2 mktime F
+GLIBC_2.2 mlock F
+GLIBC_2.2 mlockall F
+GLIBC_2.2 mmap F
+GLIBC_2.2 mmap64 F
+GLIBC_2.2 modf F
+GLIBC_2.2 modff F
+GLIBC_2.2 modfl F
+GLIBC_2.2 moncontrol F
+GLIBC_2.2 monstartup F
+GLIBC_2.2 mount F
+GLIBC_2.2 mprobe F
+GLIBC_2.2 mprotect F
+GLIBC_2.2 mrand48 F
+GLIBC_2.2 mrand48_r F
+GLIBC_2.2 mremap F
+GLIBC_2.2 msgctl F
+GLIBC_2.2 msgget F
+GLIBC_2.2 msgrcv F
+GLIBC_2.2 msgsnd F
+GLIBC_2.2 msync F
+GLIBC_2.2 mtrace F
+GLIBC_2.2 munlock F
+GLIBC_2.2 munlockall F
+GLIBC_2.2 munmap F
+GLIBC_2.2 muntrace F
+GLIBC_2.2 nanosleep F
+GLIBC_2.2 netname2host F
+GLIBC_2.2 netname2user F
+GLIBC_2.2 nfsservctl F
+GLIBC_2.2 nftw F
+GLIBC_2.2 nftw64 F
+GLIBC_2.2 ngettext F
+GLIBC_2.2 nice F
+GLIBC_2.2 nl_langinfo F
+GLIBC_2.2 nrand48 F
+GLIBC_2.2 nrand48_r F
+GLIBC_2.2 ntohl F
+GLIBC_2.2 ntohs F
+GLIBC_2.2 ntp_adjtime F
+GLIBC_2.2 ntp_gettime F
+GLIBC_2.2 obstack_alloc_failed_handler D 0x4
+GLIBC_2.2 obstack_exit_failure D 0x4
+GLIBC_2.2 obstack_free F
+GLIBC_2.2 obstack_printf F
+GLIBC_2.2 obstack_vprintf F
+GLIBC_2.2 on_exit F
+GLIBC_2.2 open F
+GLIBC_2.2 open64 F
+GLIBC_2.2 open_memstream F
+GLIBC_2.2 opendir F
+GLIBC_2.2 openlog F
+GLIBC_2.2 optarg D 0x4
+GLIBC_2.2 opterr D 0x4
+GLIBC_2.2 optind D 0x4
+GLIBC_2.2 optopt D 0x4
+GLIBC_2.2 parse_printf_format F
+GLIBC_2.2 passwd2des F
+GLIBC_2.2 pathconf F
+GLIBC_2.2 pause F
+GLIBC_2.2 pclose F
+GLIBC_2.2 perror F
+GLIBC_2.2 personality F
+GLIBC_2.2 pipe F
+GLIBC_2.2 pmap_getmaps F
+GLIBC_2.2 pmap_getport F
+GLIBC_2.2 pmap_rmtcall F
+GLIBC_2.2 pmap_set F
+GLIBC_2.2 pmap_unset F
+GLIBC_2.2 poll F
+GLIBC_2.2 popen F
+GLIBC_2.2 posix_fadvise F
+GLIBC_2.2 posix_fadvise64 F
+GLIBC_2.2 posix_fallocate F
+GLIBC_2.2 posix_fallocate64 F
+GLIBC_2.2 posix_madvise F
+GLIBC_2.2 posix_memalign F
+GLIBC_2.2 posix_spawn F
+GLIBC_2.2 posix_spawn_file_actions_addclose F
+GLIBC_2.2 posix_spawn_file_actions_adddup2 F
+GLIBC_2.2 posix_spawn_file_actions_addopen F
+GLIBC_2.2 posix_spawn_file_actions_destroy F
+GLIBC_2.2 posix_spawn_file_actions_init F
+GLIBC_2.2 posix_spawnattr_destroy F
+GLIBC_2.2 posix_spawnattr_getflags F
+GLIBC_2.2 posix_spawnattr_getpgroup F
+GLIBC_2.2 posix_spawnattr_getschedparam F
+GLIBC_2.2 posix_spawnattr_getschedpolicy F
+GLIBC_2.2 posix_spawnattr_getsigdefault F
+GLIBC_2.2 posix_spawnattr_getsigmask F
+GLIBC_2.2 posix_spawnattr_init F
+GLIBC_2.2 posix_spawnattr_setflags F
+GLIBC_2.2 posix_spawnattr_setpgroup F
+GLIBC_2.2 posix_spawnattr_setschedparam F
+GLIBC_2.2 posix_spawnattr_setschedpolicy F
+GLIBC_2.2 posix_spawnattr_setsigdefault F
+GLIBC_2.2 posix_spawnattr_setsigmask F
+GLIBC_2.2 posix_spawnp F
+GLIBC_2.2 prctl F
+GLIBC_2.2 pread F
+GLIBC_2.2 pread64 F
+GLIBC_2.2 printf F
+GLIBC_2.2 printf_size F
+GLIBC_2.2 printf_size_info F
+GLIBC_2.2 profil F
+GLIBC_2.2 program_invocation_name D 0x4
+GLIBC_2.2 program_invocation_short_name D 0x4
+GLIBC_2.2 pselect F
+GLIBC_2.2 psignal F
+GLIBC_2.2 pthread_attr_destroy F
+GLIBC_2.2 pthread_attr_getdetachstate F
+GLIBC_2.2 pthread_attr_getinheritsched F
+GLIBC_2.2 pthread_attr_getschedparam F
+GLIBC_2.2 pthread_attr_getschedpolicy F
+GLIBC_2.2 pthread_attr_getscope F
+GLIBC_2.2 pthread_attr_init F
+GLIBC_2.2 pthread_attr_setdetachstate F
+GLIBC_2.2 pthread_attr_setinheritsched F
+GLIBC_2.2 pthread_attr_setschedparam F
+GLIBC_2.2 pthread_attr_setschedpolicy F
+GLIBC_2.2 pthread_attr_setscope F
+GLIBC_2.2 pthread_cond_broadcast F
+GLIBC_2.2 pthread_cond_destroy F
+GLIBC_2.2 pthread_cond_init F
+GLIBC_2.2 pthread_cond_signal F
+GLIBC_2.2 pthread_cond_timedwait F
+GLIBC_2.2 pthread_cond_wait F
+GLIBC_2.2 pthread_condattr_destroy F
+GLIBC_2.2 pthread_condattr_init F
+GLIBC_2.2 pthread_equal F
+GLIBC_2.2 pthread_exit F
+GLIBC_2.2 pthread_getschedparam F
+GLIBC_2.2 pthread_mutex_destroy F
+GLIBC_2.2 pthread_mutex_init F
+GLIBC_2.2 pthread_mutex_lock F
+GLIBC_2.2 pthread_mutex_unlock F
+GLIBC_2.2 pthread_self F
+GLIBC_2.2 pthread_setcancelstate F
+GLIBC_2.2 pthread_setcanceltype F
+GLIBC_2.2 pthread_setschedparam F
+GLIBC_2.2 ptrace F
+GLIBC_2.2 ptsname F
+GLIBC_2.2 ptsname_r F
+GLIBC_2.2 putc F
+GLIBC_2.2 putc_unlocked F
+GLIBC_2.2 putchar F
+GLIBC_2.2 putchar_unlocked F
+GLIBC_2.2 putenv F
+GLIBC_2.2 putgrent F
+GLIBC_2.2 putmsg F
+GLIBC_2.2 putpmsg F
+GLIBC_2.2 putpwent F
+GLIBC_2.2 puts F
+GLIBC_2.2 putspent F
+GLIBC_2.2 pututline F
+GLIBC_2.2 pututxline F
+GLIBC_2.2 putw F
+GLIBC_2.2 putwc F
+GLIBC_2.2 putwc_unlocked F
+GLIBC_2.2 putwchar F
+GLIBC_2.2 putwchar_unlocked F
+GLIBC_2.2 pvalloc F
+GLIBC_2.2 pwrite F
+GLIBC_2.2 pwrite64 F
+GLIBC_2.2 qecvt F
+GLIBC_2.2 qecvt_r F
+GLIBC_2.2 qfcvt F
+GLIBC_2.2 qfcvt_r F
+GLIBC_2.2 qgcvt F
+GLIBC_2.2 qsort F
+GLIBC_2.2 query_module F
+GLIBC_2.2 quotactl F
+GLIBC_2.2 raise F
+GLIBC_2.2 rand F
+GLIBC_2.2 rand_r F
+GLIBC_2.2 random F
+GLIBC_2.2 random_r F
+GLIBC_2.2 rawmemchr F
+GLIBC_2.2 rcmd F
+GLIBC_2.2 rcmd_af F
+GLIBC_2.2 re_comp F
+GLIBC_2.2 re_compile_fastmap F
+GLIBC_2.2 re_compile_pattern F
+GLIBC_2.2 re_exec F
+GLIBC_2.2 re_match F
+GLIBC_2.2 re_match_2 F
+GLIBC_2.2 re_max_failures D 0x4
+GLIBC_2.2 re_search F
+GLIBC_2.2 re_search_2 F
+GLIBC_2.2 re_set_registers F
+GLIBC_2.2 re_set_syntax F
+GLIBC_2.2 re_syntax_options D 0x4
+GLIBC_2.2 read F
+GLIBC_2.2 readdir F
+GLIBC_2.2 readdir64 F
+GLIBC_2.2 readdir64_r F
+GLIBC_2.2 readdir_r F
+GLIBC_2.2 readlink F
+GLIBC_2.2 readv F
+GLIBC_2.2 realloc F
+GLIBC_2.2 realpath F
+GLIBC_2.2 reboot F
+GLIBC_2.2 recv F
+GLIBC_2.2 recvfrom F
+GLIBC_2.2 recvmsg F
+GLIBC_2.2 regcomp F
+GLIBC_2.2 regerror F
+GLIBC_2.2 regexec F
+GLIBC_2.2 regfree F
+GLIBC_2.2 register_printf_function F
+GLIBC_2.2 registerrpc F
+GLIBC_2.2 remove F
+GLIBC_2.2 remque F
+GLIBC_2.2 rename F
+GLIBC_2.2 revoke F
+GLIBC_2.2 rewind F
+GLIBC_2.2 rewinddir F
+GLIBC_2.2 rexec F
+GLIBC_2.2 rexec_af F
+GLIBC_2.2 rexecoptions D 0x4
+GLIBC_2.2 rindex F
+GLIBC_2.2 rmdir F
+GLIBC_2.2 rpc_createerr D 0x10
+GLIBC_2.2 rpmatch F
+GLIBC_2.2 rresvport F
+GLIBC_2.2 rresvport_af F
+GLIBC_2.2 rtime F
+GLIBC_2.2 ruserok F
+GLIBC_2.2 ruserok_af F
+GLIBC_2.2 ruserpass F
+GLIBC_2.2 sbrk F
+GLIBC_2.2 scalbn F
+GLIBC_2.2 scalbnf F
+GLIBC_2.2 scalbnl F
+GLIBC_2.2 scandir F
+GLIBC_2.2 scandir64 F
+GLIBC_2.2 scanf F
+GLIBC_2.2 sched_get_priority_max F
+GLIBC_2.2 sched_get_priority_min F
+GLIBC_2.2 sched_getparam F
+GLIBC_2.2 sched_getscheduler F
+GLIBC_2.2 sched_rr_get_interval F
+GLIBC_2.2 sched_setparam F
+GLIBC_2.2 sched_setscheduler F
+GLIBC_2.2 sched_yield F
+GLIBC_2.2 seed48 F
+GLIBC_2.2 seed48_r F
+GLIBC_2.2 seekdir F
+GLIBC_2.2 select F
+GLIBC_2.2 semctl F
+GLIBC_2.2 semget F
+GLIBC_2.2 semop F
+GLIBC_2.2 send F
+GLIBC_2.2 sendfile F
+GLIBC_2.2 sendmsg F
+GLIBC_2.2 sendto F
+GLIBC_2.2 setaliasent F
+GLIBC_2.2 setbuf F
+GLIBC_2.2 setbuffer F
+GLIBC_2.2 setcontext F
+GLIBC_2.2 setdomainname F
+GLIBC_2.2 setegid F
+GLIBC_2.2 setenv F
+GLIBC_2.2 seteuid F
+GLIBC_2.2 setfsent F
+GLIBC_2.2 setfsgid F
+GLIBC_2.2 setfsuid F
+GLIBC_2.2 setgid F
+GLIBC_2.2 setgrent F
+GLIBC_2.2 setgroups F
+GLIBC_2.2 sethostent F
+GLIBC_2.2 sethostid F
+GLIBC_2.2 sethostname F
+GLIBC_2.2 setitimer F
+GLIBC_2.2 setjmp F
+GLIBC_2.2 setlinebuf F
+GLIBC_2.2 setlocale F
+GLIBC_2.2 setlogin F
+GLIBC_2.2 setlogmask F
+GLIBC_2.2 setmntent F
+GLIBC_2.2 setnetent F
+GLIBC_2.2 setnetgrent F
+GLIBC_2.2 setpgid F
+GLIBC_2.2 setpgrp F
+GLIBC_2.2 setpriority F
+GLIBC_2.2 setprotoent F
+GLIBC_2.2 setpwent F
+GLIBC_2.2 setregid F
+GLIBC_2.2 setresgid F
+GLIBC_2.2 setresuid F
+GLIBC_2.2 setreuid F
+GLIBC_2.2 setrlimit F
+GLIBC_2.2 setrlimit64 F
+GLIBC_2.2 setrpcent F
+GLIBC_2.2 setservent F
+GLIBC_2.2 setsid F
+GLIBC_2.2 setsockopt F
+GLIBC_2.2 setspent F
+GLIBC_2.2 setstate F
+GLIBC_2.2 setstate_r F
+GLIBC_2.2 settimeofday F
+GLIBC_2.2 setttyent F
+GLIBC_2.2 setuid F
+GLIBC_2.2 setusershell F
+GLIBC_2.2 setutent F
+GLIBC_2.2 setutxent F
+GLIBC_2.2 setvbuf F
+GLIBC_2.2 sgetspent F
+GLIBC_2.2 sgetspent_r F
+GLIBC_2.2 shmat F
+GLIBC_2.2 shmctl F
+GLIBC_2.2 shmdt F
+GLIBC_2.2 shmget F
+GLIBC_2.2 shutdown F
+GLIBC_2.2 sigaction F
+GLIBC_2.2 sigaddset F
+GLIBC_2.2 sigaltstack F
+GLIBC_2.2 sigandset F
+GLIBC_2.2 sigblock F
+GLIBC_2.2 sigdelset F
+GLIBC_2.2 sigemptyset F
+GLIBC_2.2 sigfillset F
+GLIBC_2.2 siggetmask F
+GLIBC_2.2 sighold F
+GLIBC_2.2 sigignore F
+GLIBC_2.2 siginterrupt F
+GLIBC_2.2 sigisemptyset F
+GLIBC_2.2 sigismember F
+GLIBC_2.2 siglongjmp F
+GLIBC_2.2 signal F
+GLIBC_2.2 sigorset F
+GLIBC_2.2 sigpause F
+GLIBC_2.2 sigpending F
+GLIBC_2.2 sigprocmask F
+GLIBC_2.2 sigqueue F
+GLIBC_2.2 sigrelse F
+GLIBC_2.2 sigreturn F
+GLIBC_2.2 sigset F
+GLIBC_2.2 sigsetmask F
+GLIBC_2.2 sigstack F
+GLIBC_2.2 sigsuspend F
+GLIBC_2.2 sigtimedwait F
+GLIBC_2.2 sigvec F
+GLIBC_2.2 sigwait F
+GLIBC_2.2 sigwaitinfo F
+GLIBC_2.2 sleep F
+GLIBC_2.2 snprintf F
+GLIBC_2.2 socket F
+GLIBC_2.2 socketpair F
+GLIBC_2.2 sprintf F
+GLIBC_2.2 srand F
+GLIBC_2.2 srand48 F
+GLIBC_2.2 srand48_r F
+GLIBC_2.2 srandom F
+GLIBC_2.2 srandom_r F
+GLIBC_2.2 sscanf F
+GLIBC_2.2 ssignal F
+GLIBC_2.2 sstk F
+GLIBC_2.2 statfs F
+GLIBC_2.2 statfs64 F
+GLIBC_2.2 statvfs F
+GLIBC_2.2 statvfs64 F
+GLIBC_2.2 stderr D 0x4
+GLIBC_2.2 stdin D 0x4
+GLIBC_2.2 stdout D 0x4
+GLIBC_2.2 step F
+GLIBC_2.2 stime F
+GLIBC_2.2 stpcpy F
+GLIBC_2.2 stpncpy F
+GLIBC_2.2 strcasecmp F
+GLIBC_2.2 strcasestr F
+GLIBC_2.2 strcat F
+GLIBC_2.2 strchr F
+GLIBC_2.2 strchrnul F
+GLIBC_2.2 strcmp F
+GLIBC_2.2 strcoll F
+GLIBC_2.2 strcpy F
+GLIBC_2.2 strcspn F
+GLIBC_2.2 strdup F
+GLIBC_2.2 strerror F
+GLIBC_2.2 strerror_r F
+GLIBC_2.2 strfmon F
+GLIBC_2.2 strfry F
+GLIBC_2.2 strftime F
+GLIBC_2.2 strlen F
+GLIBC_2.2 strncasecmp F
+GLIBC_2.2 strncat F
+GLIBC_2.2 strncmp F
+GLIBC_2.2 strncpy F
+GLIBC_2.2 strndup F
+GLIBC_2.2 strnlen F
+GLIBC_2.2 strpbrk F
+GLIBC_2.2 strptime F
+GLIBC_2.2 strrchr F
+GLIBC_2.2 strsep F
+GLIBC_2.2 strsignal F
+GLIBC_2.2 strspn F
+GLIBC_2.2 strstr F
+GLIBC_2.2 strtod F
+GLIBC_2.2 strtof F
+GLIBC_2.2 strtoimax F
+GLIBC_2.2 strtok F
+GLIBC_2.2 strtok_r F
+GLIBC_2.2 strtol F
+GLIBC_2.2 strtold F
+GLIBC_2.2 strtoll F
+GLIBC_2.2 strtoq F
+GLIBC_2.2 strtoul F
+GLIBC_2.2 strtoull F
+GLIBC_2.2 strtoumax F
+GLIBC_2.2 strtouq F
+GLIBC_2.2 strverscmp F
+GLIBC_2.2 strxfrm F
+GLIBC_2.2 stty F
+GLIBC_2.2 svc_exit F
+GLIBC_2.2 svc_fdset D 0x80
+GLIBC_2.2 svc_getreq F
+GLIBC_2.2 svc_getreq_common F
+GLIBC_2.2 svc_getreq_poll F
+GLIBC_2.2 svc_getreqset F
+GLIBC_2.2 svc_max_pollfd D 0x4
+GLIBC_2.2 svc_pollfd D 0x4
+GLIBC_2.2 svc_register F
+GLIBC_2.2 svc_run F
+GLIBC_2.2 svc_sendreply F
+GLIBC_2.2 svc_unregister F
+GLIBC_2.2 svcauthdes_stats D 0xc
+GLIBC_2.2 svcerr_auth F
+GLIBC_2.2 svcerr_decode F
+GLIBC_2.2 svcerr_noproc F
+GLIBC_2.2 svcerr_noprog F
+GLIBC_2.2 svcerr_progvers F
+GLIBC_2.2 svcerr_systemerr F
+GLIBC_2.2 svcerr_weakauth F
+GLIBC_2.2 svcfd_create F
+GLIBC_2.2 svcraw_create F
+GLIBC_2.2 svctcp_create F
+GLIBC_2.2 svcudp_bufcreate F
+GLIBC_2.2 svcudp_create F
+GLIBC_2.2 svcudp_enablecache F
+GLIBC_2.2 svcunix_create F
+GLIBC_2.2 svcunixfd_create F
+GLIBC_2.2 swab F
+GLIBC_2.2 swapcontext F
+GLIBC_2.2 swapoff F
+GLIBC_2.2 swapon F
+GLIBC_2.2 swprintf F
+GLIBC_2.2 swscanf F
+GLIBC_2.2 symlink F
+GLIBC_2.2 sync F
+GLIBC_2.2 sys_errlist D 0x1f4
+GLIBC_2.2 sys_nerr D 0x4
+GLIBC_2.2 sys_sigabbrev D 0x100
+GLIBC_2.2 sys_siglist D 0x100
+GLIBC_2.2 syscall F
+GLIBC_2.2 sysconf F
+GLIBC_2.2 sysctl F
+GLIBC_2.2 sysinfo F
+GLIBC_2.2 syslog F
+GLIBC_2.2 system F
+GLIBC_2.2 sysv_signal F
+GLIBC_2.2 tcdrain F
+GLIBC_2.2 tcflow F
+GLIBC_2.2 tcflush F
+GLIBC_2.2 tcgetattr F
+GLIBC_2.2 tcgetpgrp F
+GLIBC_2.2 tcgetsid F
+GLIBC_2.2 tcsendbreak F
+GLIBC_2.2 tcsetattr F
+GLIBC_2.2 tcsetpgrp F
+GLIBC_2.2 tdelete F
+GLIBC_2.2 tdestroy F
+GLIBC_2.2 telldir F
+GLIBC_2.2 tempnam F
+GLIBC_2.2 textdomain F
+GLIBC_2.2 tfind F
+GLIBC_2.2 time F
+GLIBC_2.2 timegm F
+GLIBC_2.2 timelocal F
+GLIBC_2.2 times F
+GLIBC_2.2 timezone D 0x4
+GLIBC_2.2 tmpfile F
+GLIBC_2.2 tmpfile64 F
+GLIBC_2.2 tmpnam F
+GLIBC_2.2 tmpnam_r F
+GLIBC_2.2 toascii F
+GLIBC_2.2 tolower F
+GLIBC_2.2 toupper F
+GLIBC_2.2 towctrans F
+GLIBC_2.2 towlower F
+GLIBC_2.2 towupper F
+GLIBC_2.2 tr_break F
+GLIBC_2.2 truncate F
+GLIBC_2.2 truncate64 F
+GLIBC_2.2 tsearch F
+GLIBC_2.2 ttyname F
+GLIBC_2.2 ttyname_r F
+GLIBC_2.2 ttyslot F
+GLIBC_2.2 twalk F
+GLIBC_2.2 tzname D 0x8
+GLIBC_2.2 tzset F
+GLIBC_2.2 ualarm F
+GLIBC_2.2 ulckpwdf F
+GLIBC_2.2 ulimit F
+GLIBC_2.2 umask F
+GLIBC_2.2 umount F
+GLIBC_2.2 umount2 F
+GLIBC_2.2 uname F
+GLIBC_2.2 ungetc F
+GLIBC_2.2 ungetwc F
+GLIBC_2.2 unlink F
+GLIBC_2.2 unlockpt F
+GLIBC_2.2 unsetenv F
+GLIBC_2.2 updwtmp F
+GLIBC_2.2 updwtmpx F
+GLIBC_2.2 uselib F
+GLIBC_2.2 user2netname F
+GLIBC_2.2 usleep F
+GLIBC_2.2 ustat F
+GLIBC_2.2 utime F
+GLIBC_2.2 utimes F
+GLIBC_2.2 utmpname F
+GLIBC_2.2 utmpxname F
+GLIBC_2.2 valloc F
+GLIBC_2.2 vasprintf F
+GLIBC_2.2 vdprintf F
+GLIBC_2.2 verr F
+GLIBC_2.2 verrx F
+GLIBC_2.2 versionsort F
+GLIBC_2.2 versionsort64 F
+GLIBC_2.2 vfork F
+GLIBC_2.2 vfprintf F
+GLIBC_2.2 vfscanf F
+GLIBC_2.2 vfwprintf F
+GLIBC_2.2 vfwscanf F
+GLIBC_2.2 vhangup F
+GLIBC_2.2 vlimit F
+GLIBC_2.2 vprintf F
+GLIBC_2.2 vscanf F
+GLIBC_2.2 vsnprintf F
+GLIBC_2.2 vsprintf F
+GLIBC_2.2 vsscanf F
+GLIBC_2.2 vswprintf F
+GLIBC_2.2 vswscanf F
+GLIBC_2.2 vsyslog F
+GLIBC_2.2 vtimes F
+GLIBC_2.2 vwarn F
+GLIBC_2.2 vwarnx F
+GLIBC_2.2 vwprintf F
+GLIBC_2.2 vwscanf F
+GLIBC_2.2 wait F
+GLIBC_2.2 wait3 F
+GLIBC_2.2 wait4 F
+GLIBC_2.2 waitid F
+GLIBC_2.2 waitpid F
+GLIBC_2.2 warn F
+GLIBC_2.2 warnx F
+GLIBC_2.2 wcpcpy F
+GLIBC_2.2 wcpncpy F
+GLIBC_2.2 wcrtomb F
+GLIBC_2.2 wcscasecmp F
+GLIBC_2.2 wcscat F
+GLIBC_2.2 wcschr F
+GLIBC_2.2 wcschrnul F
+GLIBC_2.2 wcscmp F
+GLIBC_2.2 wcscoll F
+GLIBC_2.2 wcscpy F
+GLIBC_2.2 wcscspn F
+GLIBC_2.2 wcsdup F
+GLIBC_2.2 wcsftime F
+GLIBC_2.2 wcslen F
+GLIBC_2.2 wcsncasecmp F
+GLIBC_2.2 wcsncat F
+GLIBC_2.2 wcsncmp F
+GLIBC_2.2 wcsncpy F
+GLIBC_2.2 wcsnlen F
+GLIBC_2.2 wcsnrtombs F
+GLIBC_2.2 wcspbrk F
+GLIBC_2.2 wcsrchr F
+GLIBC_2.2 wcsrtombs F
+GLIBC_2.2 wcsspn F
+GLIBC_2.2 wcsstr F
+GLIBC_2.2 wcstod F
+GLIBC_2.2 wcstof F
+GLIBC_2.2 wcstoimax F
+GLIBC_2.2 wcstok F
+GLIBC_2.2 wcstol F
+GLIBC_2.2 wcstold F
+GLIBC_2.2 wcstoll F
+GLIBC_2.2 wcstombs F
+GLIBC_2.2 wcstoq F
+GLIBC_2.2 wcstoul F
+GLIBC_2.2 wcstoull F
+GLIBC_2.2 wcstoumax F
+GLIBC_2.2 wcstouq F
+GLIBC_2.2 wcswcs F
+GLIBC_2.2 wcswidth F
+GLIBC_2.2 wcsxfrm F
+GLIBC_2.2 wctob F
+GLIBC_2.2 wctomb F
+GLIBC_2.2 wctrans F
+GLIBC_2.2 wctype F
+GLIBC_2.2 wcwidth F
+GLIBC_2.2 wmemchr F
+GLIBC_2.2 wmemcmp F
+GLIBC_2.2 wmemcpy F
+GLIBC_2.2 wmemmove F
+GLIBC_2.2 wmempcpy F
+GLIBC_2.2 wmemset F
+GLIBC_2.2 wordexp F
+GLIBC_2.2 wordfree F
+GLIBC_2.2 wprintf F
+GLIBC_2.2 write F
+GLIBC_2.2 writev F
+GLIBC_2.2 wscanf F
+GLIBC_2.2 xdecrypt F
+GLIBC_2.2 xdr_accepted_reply F
+GLIBC_2.2 xdr_array F
+GLIBC_2.2 xdr_authdes_cred F
+GLIBC_2.2 xdr_authdes_verf F
+GLIBC_2.2 xdr_authunix_parms F
+GLIBC_2.2 xdr_bool F
+GLIBC_2.2 xdr_bytes F
+GLIBC_2.2 xdr_callhdr F
+GLIBC_2.2 xdr_callmsg F
+GLIBC_2.2 xdr_char F
+GLIBC_2.2 xdr_cryptkeyarg F
+GLIBC_2.2 xdr_cryptkeyarg2 F
+GLIBC_2.2 xdr_cryptkeyres F
+GLIBC_2.2 xdr_des_block F
+GLIBC_2.2 xdr_double F
+GLIBC_2.2 xdr_enum F
+GLIBC_2.2 xdr_float F
+GLIBC_2.2 xdr_free F
+GLIBC_2.2 xdr_getcredres F
+GLIBC_2.2 xdr_hyper F
+GLIBC_2.2 xdr_int F
+GLIBC_2.2 xdr_int16_t F
+GLIBC_2.2 xdr_int32_t F
+GLIBC_2.2 xdr_int64_t F
+GLIBC_2.2 xdr_int8_t F
+GLIBC_2.2 xdr_key_netstarg F
+GLIBC_2.2 xdr_key_netstres F
+GLIBC_2.2 xdr_keybuf F
+GLIBC_2.2 xdr_keystatus F
+GLIBC_2.2 xdr_long F
+GLIBC_2.2 xdr_longlong_t F
+GLIBC_2.2 xdr_netnamestr F
+GLIBC_2.2 xdr_netobj F
+GLIBC_2.2 xdr_opaque F
+GLIBC_2.2 xdr_opaque_auth F
+GLIBC_2.2 xdr_pmap F
+GLIBC_2.2 xdr_pmaplist F
+GLIBC_2.2 xdr_pointer F
+GLIBC_2.2 xdr_reference F
+GLIBC_2.2 xdr_rejected_reply F
+GLIBC_2.2 xdr_replymsg F
+GLIBC_2.2 xdr_rmtcall_args F
+GLIBC_2.2 xdr_rmtcallres F
+GLIBC_2.2 xdr_short F
+GLIBC_2.2 xdr_sizeof F
+GLIBC_2.2 xdr_string F
+GLIBC_2.2 xdr_u_char F
+GLIBC_2.2 xdr_u_hyper F
+GLIBC_2.2 xdr_u_int F
+GLIBC_2.2 xdr_u_long F
+GLIBC_2.2 xdr_u_longlong_t F
+GLIBC_2.2 xdr_u_short F
+GLIBC_2.2 xdr_uint16_t F
+GLIBC_2.2 xdr_uint32_t F
+GLIBC_2.2 xdr_uint64_t F
+GLIBC_2.2 xdr_uint8_t F
+GLIBC_2.2 xdr_union F
+GLIBC_2.2 xdr_unixcred F
+GLIBC_2.2 xdr_vector F
+GLIBC_2.2 xdr_void F
+GLIBC_2.2 xdr_wrapstring F
+GLIBC_2.2 xdrmem_create F
+GLIBC_2.2 xdrrec_create F
+GLIBC_2.2 xdrrec_endofrecord F
+GLIBC_2.2 xdrrec_eof F
+GLIBC_2.2 xdrrec_skiprecord F
+GLIBC_2.2 xdrstdio_create F
+GLIBC_2.2 xencrypt F
+GLIBC_2.2 xprt_register F
+GLIBC_2.2 xprt_unregister F
+GLIBC_2.2.1 pivot_root F
+GLIBC_2.2.1 posix_openpt F
+GLIBC_2.2.2 __nss_hostname_digits_dots F
+GLIBC_2.2.3 __rpc_thread_createerr F
+GLIBC_2.2.3 __rpc_thread_svc_fdset F
+GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F
+GLIBC_2.2.3 __rpc_thread_svc_pollfd F
+GLIBC_2.2.3 fnmatch F
+GLIBC_2.2.3 sprofil F
+GLIBC_2.2.4 dl_iterate_phdr F
+GLIBC_2.2.4 getgrouplist F
+GLIBC_2.2.4 sockatmark F
+GLIBC_2.2.6 __nanosleep F
+GLIBC_2.22 fmemopen F
+GLIBC_2.23 fts64_children F
+GLIBC_2.23 fts64_close F
+GLIBC_2.23 fts64_open F
+GLIBC_2.23 fts64_read F
+GLIBC_2.23 fts64_set F
+GLIBC_2.24 quick_exit F
+GLIBC_2.25 __explicit_bzero_chk F
+GLIBC_2.25 explicit_bzero F
+GLIBC_2.25 getentropy F
+GLIBC_2.25 getrandom F
+GLIBC_2.25 strfromd F
+GLIBC_2.25 strfromf F
+GLIBC_2.25 strfroml F
+GLIBC_2.26 preadv2 F
+GLIBC_2.26 preadv64v2 F
+GLIBC_2.26 pwritev2 F
+GLIBC_2.26 pwritev64v2 F
+GLIBC_2.26 reallocarray F
+GLIBC_2.27 copy_file_range F
+GLIBC_2.27 glob F
+GLIBC_2.27 glob64 F
+GLIBC_2.27 memfd_create F
+GLIBC_2.27 mlock2 F
+GLIBC_2.27 pkey_alloc F
+GLIBC_2.27 pkey_free F
+GLIBC_2.27 pkey_get F
+GLIBC_2.27 pkey_mprotect F
+GLIBC_2.27 pkey_set F
+GLIBC_2.27 strfromf32 F
+GLIBC_2.27 strfromf32x F
+GLIBC_2.27 strfromf64 F
+GLIBC_2.27 strtof32 F
+GLIBC_2.27 strtof32_l F
+GLIBC_2.27 strtof32x F
+GLIBC_2.27 strtof32x_l F
+GLIBC_2.27 strtof64 F
+GLIBC_2.27 strtof64_l F
+GLIBC_2.27 wcstof32 F
+GLIBC_2.27 wcstof32_l F
+GLIBC_2.27 wcstof32x F
+GLIBC_2.27 wcstof32x_l F
+GLIBC_2.27 wcstof64 F
+GLIBC_2.27 wcstof64_l F
+GLIBC_2.28 fcntl F
+GLIBC_2.28 fcntl64 F
+GLIBC_2.28 renameat2 F
+GLIBC_2.28 statx F
+GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_equal F
+GLIBC_2.28 thrd_sleep F
+GLIBC_2.28 thrd_yield F
+GLIBC_2.29 getcpu F
+GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
+GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
+GLIBC_2.3 __ctype_b_loc F
+GLIBC_2.3 __ctype_tolower_loc F
+GLIBC_2.3 __ctype_toupper_loc F
+GLIBC_2.3 __isctype F
+GLIBC_2.3 __strftime_l F
+GLIBC_2.3 __uselocale F
+GLIBC_2.3 __wcsftime_l F
+GLIBC_2.3 _sys_errlist D 0x1f8
+GLIBC_2.3 _sys_nerr D 0x4
+GLIBC_2.3 duplocale F
+GLIBC_2.3 fgetxattr F
+GLIBC_2.3 flistxattr F
+GLIBC_2.3 freeifaddrs F
+GLIBC_2.3 freelocale F
+GLIBC_2.3 fremovexattr F
+GLIBC_2.3 fsetxattr F
+GLIBC_2.3 futimes F
+GLIBC_2.3 getifaddrs F
+GLIBC_2.3 getxattr F
+GLIBC_2.3 isalnum_l F
+GLIBC_2.3 isalpha_l F
+GLIBC_2.3 isblank_l F
+GLIBC_2.3 iscntrl_l F
+GLIBC_2.3 isctype F
+GLIBC_2.3 isdigit_l F
+GLIBC_2.3 isgraph_l F
+GLIBC_2.3 islower_l F
+GLIBC_2.3 isprint_l F
+GLIBC_2.3 ispunct_l F
+GLIBC_2.3 isspace_l F
+GLIBC_2.3 isupper_l F
+GLIBC_2.3 iswalnum_l F
+GLIBC_2.3 iswalpha_l F
+GLIBC_2.3 iswblank_l F
+GLIBC_2.3 iswcntrl_l F
+GLIBC_2.3 iswctype_l F
+GLIBC_2.3 iswdigit_l F
+GLIBC_2.3 iswgraph_l F
+GLIBC_2.3 iswlower_l F
+GLIBC_2.3 iswprint_l F
+GLIBC_2.3 iswpunct_l F
+GLIBC_2.3 iswspace_l F
+GLIBC_2.3 iswupper_l F
+GLIBC_2.3 iswxdigit_l F
+GLIBC_2.3 isxdigit_l F
+GLIBC_2.3 lgetxattr F
+GLIBC_2.3 listxattr F
+GLIBC_2.3 llistxattr F
+GLIBC_2.3 lremovexattr F
+GLIBC_2.3 lsetxattr F
+GLIBC_2.3 lutimes F
+GLIBC_2.3 newlocale F
+GLIBC_2.3 nl_langinfo_l F
+GLIBC_2.3 readahead F
+GLIBC_2.3 realpath F
+GLIBC_2.3 removexattr F
+GLIBC_2.3 sendfile64 F
+GLIBC_2.3 setxattr F
+GLIBC_2.3 strcasecmp_l F
+GLIBC_2.3 strcoll_l F
+GLIBC_2.3 strfmon_l F
+GLIBC_2.3 strftime_l F
+GLIBC_2.3 strncasecmp_l F
+GLIBC_2.3 strtod_l F
+GLIBC_2.3 strtof_l F
+GLIBC_2.3 strtol_l F
+GLIBC_2.3 strtold_l F
+GLIBC_2.3 strtoll_l F
+GLIBC_2.3 strtoul_l F
+GLIBC_2.3 strtoull_l F
+GLIBC_2.3 strxfrm_l F
+GLIBC_2.3 sys_errlist D 0x1f8
+GLIBC_2.3 sys_nerr D 0x4
+GLIBC_2.3 tolower_l F
+GLIBC_2.3 toupper_l F
+GLIBC_2.3 towctrans_l F
+GLIBC_2.3 towlower_l F
+GLIBC_2.3 towupper_l F
+GLIBC_2.3 uselocale F
+GLIBC_2.3 wcscasecmp_l F
+GLIBC_2.3 wcscoll_l F
+GLIBC_2.3 wcsftime_l F
+GLIBC_2.3 wcsncasecmp_l F
+GLIBC_2.3 wcstod_l F
+GLIBC_2.3 wcstof_l F
+GLIBC_2.3 wcstol_l F
+GLIBC_2.3 wcstold_l F
+GLIBC_2.3 wcstoll_l F
+GLIBC_2.3 wcstoul_l F
+GLIBC_2.3 wcstoull_l F
+GLIBC_2.3 wcsxfrm_l F
+GLIBC_2.3 wctrans_l F
+GLIBC_2.3 wctype_l F
+GLIBC_2.3.2 __register_atfork F
+GLIBC_2.3.2 epoll_create F
+GLIBC_2.3.2 epoll_ctl F
+GLIBC_2.3.2 epoll_wait F
+GLIBC_2.3.2 lchmod F
+GLIBC_2.3.2 pthread_cond_broadcast F
+GLIBC_2.3.2 pthread_cond_destroy F
+GLIBC_2.3.2 pthread_cond_init F
+GLIBC_2.3.2 pthread_cond_signal F
+GLIBC_2.3.2 pthread_cond_timedwait F
+GLIBC_2.3.2 pthread_cond_wait F
+GLIBC_2.3.2 strptime_l F
+GLIBC_2.3.3 _sys_siglist D 0x104
+GLIBC_2.3.3 gnu_dev_major F
+GLIBC_2.3.3 gnu_dev_makedev F
+GLIBC_2.3.3 gnu_dev_minor F
+GLIBC_2.3.3 inet6_option_alloc F
+GLIBC_2.3.3 inet6_option_append F
+GLIBC_2.3.3 inet6_option_find F
+GLIBC_2.3.3 inet6_option_init F
+GLIBC_2.3.3 inet6_option_next F
+GLIBC_2.3.3 inet6_option_space F
+GLIBC_2.3.3 nftw F
+GLIBC_2.3.3 nftw64 F
+GLIBC_2.3.3 posix_fadvise64 F
+GLIBC_2.3.3 posix_fallocate64 F
+GLIBC_2.3.3 remap_file_pages F
+GLIBC_2.3.3 sched_getaffinity F
+GLIBC_2.3.3 sched_setaffinity F
+GLIBC_2.3.3 semtimedop F
+GLIBC_2.3.3 sys_sigabbrev D 0x104
+GLIBC_2.3.3 sys_siglist D 0x104
+GLIBC_2.3.4 __chk_fail F
+GLIBC_2.3.4 __fprintf_chk F
+GLIBC_2.3.4 __gets_chk F
+GLIBC_2.3.4 __memcpy_chk F
+GLIBC_2.3.4 __memmove_chk F
+GLIBC_2.3.4 __mempcpy_chk F
+GLIBC_2.3.4 __memset_chk F
+GLIBC_2.3.4 __printf_chk F
+GLIBC_2.3.4 __snprintf_chk F
+GLIBC_2.3.4 __sprintf_chk F
+GLIBC_2.3.4 __stpcpy_chk F
+GLIBC_2.3.4 __strcat_chk F
+GLIBC_2.3.4 __strcpy_chk F
+GLIBC_2.3.4 __strncat_chk F
+GLIBC_2.3.4 __strncpy_chk F
+GLIBC_2.3.4 __vfprintf_chk F
+GLIBC_2.3.4 __vprintf_chk F
+GLIBC_2.3.4 __vsnprintf_chk F
+GLIBC_2.3.4 __vsprintf_chk F
+GLIBC_2.3.4 __xpg_strerror_r F
+GLIBC_2.3.4 getipv4sourcefilter F
+GLIBC_2.3.4 getsourcefilter F
+GLIBC_2.3.4 regexec F
+GLIBC_2.3.4 sched_getaffinity F
+GLIBC_2.3.4 sched_setaffinity F
+GLIBC_2.3.4 setipv4sourcefilter F
+GLIBC_2.3.4 setsourcefilter F
+GLIBC_2.3.4 xdr_quad_t F
+GLIBC_2.3.4 xdr_u_quad_t F
+GLIBC_2.30 getdents64 F
+GLIBC_2.30 gettid F
+GLIBC_2.30 tgkill F
+GLIBC_2.30 twalk_r F
+GLIBC_2.4 __confstr_chk F
+GLIBC_2.4 __fgets_chk F
+GLIBC_2.4 __fgets_unlocked_chk F
+GLIBC_2.4 __fgetws_chk F
+GLIBC_2.4 __fgetws_unlocked_chk F
+GLIBC_2.4 __fwprintf_chk F
+GLIBC_2.4 __fxstatat F
+GLIBC_2.4 __fxstatat64 F
+GLIBC_2.4 __getcwd_chk F
+GLIBC_2.4 __getdomainname_chk F
+GLIBC_2.4 __getgroups_chk F
+GLIBC_2.4 __gethostname_chk F
+GLIBC_2.4 __getlogin_r_chk F
+GLIBC_2.4 __getwd_chk F
+GLIBC_2.4 __mbsnrtowcs_chk F
+GLIBC_2.4 __mbsrtowcs_chk F
+GLIBC_2.4 __mbstowcs_chk F
+GLIBC_2.4 __pread64_chk F
+GLIBC_2.4 __pread_chk F
+GLIBC_2.4 __ptsname_r_chk F
+GLIBC_2.4 __read_chk F
+GLIBC_2.4 __readlink_chk F
+GLIBC_2.4 __realpath_chk F
+GLIBC_2.4 __recv_chk F
+GLIBC_2.4 __recvfrom_chk F
+GLIBC_2.4 __stack_chk_fail F
+GLIBC_2.4 __stpncpy_chk F
+GLIBC_2.4 __swprintf_chk F
+GLIBC_2.4 __syslog_chk F
+GLIBC_2.4 __ttyname_r_chk F
+GLIBC_2.4 __vfwprintf_chk F
+GLIBC_2.4 __vswprintf_chk F
+GLIBC_2.4 __vsyslog_chk F
+GLIBC_2.4 __vwprintf_chk F
+GLIBC_2.4 __wcpcpy_chk F
+GLIBC_2.4 __wcpncpy_chk F
+GLIBC_2.4 __wcrtomb_chk F
+GLIBC_2.4 __wcscat_chk F
+GLIBC_2.4 __wcscpy_chk F
+GLIBC_2.4 __wcsncat_chk F
+GLIBC_2.4 __wcsncpy_chk F
+GLIBC_2.4 __wcsnrtombs_chk F
+GLIBC_2.4 __wcsrtombs_chk F
+GLIBC_2.4 __wcstombs_chk F
+GLIBC_2.4 __wctomb_chk F
+GLIBC_2.4 __wmemcpy_chk F
+GLIBC_2.4 __wmemmove_chk F
+GLIBC_2.4 __wmempcpy_chk F
+GLIBC_2.4 __wmemset_chk F
+GLIBC_2.4 __wprintf_chk F
+GLIBC_2.4 __xmknodat F
+GLIBC_2.4 _sys_errlist D 0x210
+GLIBC_2.4 _sys_nerr D 0x4
+GLIBC_2.4 eaccess F
+GLIBC_2.4 faccessat F
+GLIBC_2.4 fchmodat F
+GLIBC_2.4 fchownat F
+GLIBC_2.4 fdopendir F
+GLIBC_2.4 futimesat F
+GLIBC_2.4 inotify_add_watch F
+GLIBC_2.4 inotify_init F
+GLIBC_2.4 inotify_rm_watch F
+GLIBC_2.4 linkat F
+GLIBC_2.4 mkdirat F
+GLIBC_2.4 mkfifoat F
+GLIBC_2.4 open_wmemstream F
+GLIBC_2.4 openat F
+GLIBC_2.4 openat64 F
+GLIBC_2.4 ppoll F
+GLIBC_2.4 readlinkat F
+GLIBC_2.4 renameat F
+GLIBC_2.4 symlinkat F
+GLIBC_2.4 sys_errlist D 0x210
+GLIBC_2.4 sys_nerr D 0x4
+GLIBC_2.4 unlinkat F
+GLIBC_2.4 unshare F
+GLIBC_2.5 __readlinkat_chk F
+GLIBC_2.5 inet6_opt_append F
+GLIBC_2.5 inet6_opt_find F
+GLIBC_2.5 inet6_opt_finish F
+GLIBC_2.5 inet6_opt_get_val F
+GLIBC_2.5 inet6_opt_init F
+GLIBC_2.5 inet6_opt_next F
+GLIBC_2.5 inet6_opt_set_val F
+GLIBC_2.5 inet6_rth_add F
+GLIBC_2.5 inet6_rth_getaddr F
+GLIBC_2.5 inet6_rth_init F
+GLIBC_2.5 inet6_rth_reverse F
+GLIBC_2.5 inet6_rth_segments F
+GLIBC_2.5 inet6_rth_space F
+GLIBC_2.5 splice F
+GLIBC_2.5 tee F
+GLIBC_2.5 vmsplice F
+GLIBC_2.6 __sched_cpucount F
+GLIBC_2.6 epoll_pwait F
+GLIBC_2.6 futimens F
+GLIBC_2.6 sched_getcpu F
+GLIBC_2.6 strerror_l F
+GLIBC_2.6 sync_file_range F
+GLIBC_2.6 utimensat F
+GLIBC_2.7 __fread_chk F
+GLIBC_2.7 __fread_unlocked_chk F
+GLIBC_2.7 __isoc99_fscanf F
+GLIBC_2.7 __isoc99_fwscanf F
+GLIBC_2.7 __isoc99_scanf F
+GLIBC_2.7 __isoc99_sscanf F
+GLIBC_2.7 __isoc99_swscanf F
+GLIBC_2.7 __isoc99_vfscanf F
+GLIBC_2.7 __isoc99_vfwscanf F
+GLIBC_2.7 __isoc99_vscanf F
+GLIBC_2.7 __isoc99_vsscanf F
+GLIBC_2.7 __isoc99_vswscanf F
+GLIBC_2.7 __isoc99_vwscanf F
+GLIBC_2.7 __isoc99_wscanf F
+GLIBC_2.7 __open64_2 F
+GLIBC_2.7 __open_2 F
+GLIBC_2.7 __openat64_2 F
+GLIBC_2.7 __openat_2 F
+GLIBC_2.7 __sched_cpualloc F
+GLIBC_2.7 __sched_cpufree F
+GLIBC_2.7 eventfd F
+GLIBC_2.7 eventfd_read F
+GLIBC_2.7 eventfd_write F
+GLIBC_2.7 mkostemp F
+GLIBC_2.7 mkostemp64 F
+GLIBC_2.7 signalfd F
+GLIBC_2.8 __asprintf_chk F
+GLIBC_2.8 __dprintf_chk F
+GLIBC_2.8 __obstack_printf_chk F
+GLIBC_2.8 __obstack_vprintf_chk F
+GLIBC_2.8 __vasprintf_chk F
+GLIBC_2.8 __vdprintf_chk F
+GLIBC_2.8 qsort_r F
+GLIBC_2.8 timerfd_create F
+GLIBC_2.8 timerfd_gettime F
+GLIBC_2.8 timerfd_settime F
+GLIBC_2.9 dup3 F
+GLIBC_2.9 epoll_create1 F
+GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libcrypt.abilist b/sysdeps/unix/sysv/linux/sh/le/libcrypt.abilist
new file mode 100644
index 0000000000..cd6ba95280
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sh/le/libcrypt.abilist
@@ -0,0 +1,7 @@
+GLIBC_2.0 crypt F
+GLIBC_2.0 crypt_r F
+GLIBC_2.0 encrypt F
+GLIBC_2.0 encrypt_r F
+GLIBC_2.0 fcrypt F
+GLIBC_2.0 setkey F
+GLIBC_2.0 setkey_r F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libdl.abilist b/sysdeps/unix/sysv/linux/sh/le/libdl.abilist
new file mode 100644
index 0000000000..7826fde951
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sh/le/libdl.abilist
@@ -0,0 +1,10 @@
+GLIBC_2.0 dladdr F
+GLIBC_2.0 dlclose F
+GLIBC_2.0 dlerror F
+GLIBC_2.0 dlopen F
+GLIBC_2.0 dlsym F
+GLIBC_2.1 dlopen F
+GLIBC_2.1 dlvsym F
+GLIBC_2.3.3 dladdr1 F
+GLIBC_2.3.3 dlinfo F
+GLIBC_2.3.4 dlmopen F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libm.abilist b/sysdeps/unix/sysv/linux/sh/le/libm.abilist
new file mode 100644
index 0000000000..de0f1c57c3
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sh/le/libm.abilist
@@ -0,0 +1,784 @@
+GLIBC_2.15 __acos_finite F
+GLIBC_2.15 __acosf_finite F
+GLIBC_2.15 __acosh_finite F
+GLIBC_2.15 __acoshf_finite F
+GLIBC_2.15 __asin_finite F
+GLIBC_2.15 __asinf_finite F
+GLIBC_2.15 __atan2_finite F
+GLIBC_2.15 __atan2f_finite F
+GLIBC_2.15 __atanh_finite F
+GLIBC_2.15 __atanhf_finite F
+GLIBC_2.15 __cosh_finite F
+GLIBC_2.15 __coshf_finite F
+GLIBC_2.15 __exp10_finite F
+GLIBC_2.15 __exp10f_finite F
+GLIBC_2.15 __exp2_finite F
+GLIBC_2.15 __exp2f_finite F
+GLIBC_2.15 __exp_finite F
+GLIBC_2.15 __expf_finite F
+GLIBC_2.15 __fmod_finite F
+GLIBC_2.15 __fmodf_finite F
+GLIBC_2.15 __gamma_r_finite F
+GLIBC_2.15 __gammaf_r_finite F
+GLIBC_2.15 __hypot_finite F
+GLIBC_2.15 __hypotf_finite F
+GLIBC_2.15 __j0_finite F
+GLIBC_2.15 __j0f_finite F
+GLIBC_2.15 __j1_finite F
+GLIBC_2.15 __j1f_finite F
+GLIBC_2.15 __jn_finite F
+GLIBC_2.15 __jnf_finite F
+GLIBC_2.15 __lgamma_r_finite F
+GLIBC_2.15 __lgammaf_r_finite F
+GLIBC_2.15 __log10_finite F
+GLIBC_2.15 __log10f_finite F
+GLIBC_2.15 __log2_finite F
+GLIBC_2.15 __log2f_finite F
+GLIBC_2.15 __log_finite F
+GLIBC_2.15 __logf_finite F
+GLIBC_2.15 __pow_finite F
+GLIBC_2.15 __powf_finite F
+GLIBC_2.15 __remainder_finite F
+GLIBC_2.15 __remainderf_finite F
+GLIBC_2.15 __scalb_finite F
+GLIBC_2.15 __scalbf_finite F
+GLIBC_2.15 __sinh_finite F
+GLIBC_2.15 __sinhf_finite F
+GLIBC_2.15 __sqrt_finite F
+GLIBC_2.15 __sqrtf_finite F
+GLIBC_2.15 __y0_finite F
+GLIBC_2.15 __y0f_finite F
+GLIBC_2.15 __y1_finite F
+GLIBC_2.15 __y1f_finite F
+GLIBC_2.15 __yn_finite F
+GLIBC_2.15 __ynf_finite F
+GLIBC_2.18 __issignaling F
+GLIBC_2.18 __issignalingf F
+GLIBC_2.2 _LIB_VERSION D 0x4
+GLIBC_2.2 __clog10 F
+GLIBC_2.2 __clog10f F
+GLIBC_2.2 __clog10l F
+GLIBC_2.2 __finite F
+GLIBC_2.2 __finitef F
+GLIBC_2.2 __finitel F
+GLIBC_2.2 __fpclassify F
+GLIBC_2.2 __fpclassifyf F
+GLIBC_2.2 __signbit F
+GLIBC_2.2 __signbitf F
+GLIBC_2.2 acos F
+GLIBC_2.2 acosf F
+GLIBC_2.2 acosh F
+GLIBC_2.2 acoshf F
+GLIBC_2.2 acoshl F
+GLIBC_2.2 acosl F
+GLIBC_2.2 asin F
+GLIBC_2.2 asinf F
+GLIBC_2.2 asinh F
+GLIBC_2.2 asinhf F
+GLIBC_2.2 asinhl F
+GLIBC_2.2 asinl F
+GLIBC_2.2 atan F
+GLIBC_2.2 atan2 F
+GLIBC_2.2 atan2f F
+GLIBC_2.2 atan2l F
+GLIBC_2.2 atanf F
+GLIBC_2.2 atanh F
+GLIBC_2.2 atanhf F
+GLIBC_2.2 atanhl F
+GLIBC_2.2 atanl F
+GLIBC_2.2 cabs F
+GLIBC_2.2 cabsf F
+GLIBC_2.2 cabsl F
+GLIBC_2.2 cacos F
+GLIBC_2.2 cacosf F
+GLIBC_2.2 cacosh F
+GLIBC_2.2 cacoshf F
+GLIBC_2.2 cacoshl F
+GLIBC_2.2 cacosl F
+GLIBC_2.2 carg F
+GLIBC_2.2 cargf F
+GLIBC_2.2 cargl F
+GLIBC_2.2 casin F
+GLIBC_2.2 casinf F
+GLIBC_2.2 casinh F
+GLIBC_2.2 casinhf F
+GLIBC_2.2 casinhl F
+GLIBC_2.2 casinl F
+GLIBC_2.2 catan F
+GLIBC_2.2 catanf F
+GLIBC_2.2 catanh F
+GLIBC_2.2 catanhf F
+GLIBC_2.2 catanhl F
+GLIBC_2.2 catanl F
+GLIBC_2.2 cbrt F
+GLIBC_2.2 cbrtf F
+GLIBC_2.2 cbrtl F
+GLIBC_2.2 ccos F
+GLIBC_2.2 ccosf F
+GLIBC_2.2 ccosh F
+GLIBC_2.2 ccoshf F
+GLIBC_2.2 ccoshl F
+GLIBC_2.2 ccosl F
+GLIBC_2.2 ceil F
+GLIBC_2.2 ceilf F
+GLIBC_2.2 ceill F
+GLIBC_2.2 cexp F
+GLIBC_2.2 cexpf F
+GLIBC_2.2 cexpl F
+GLIBC_2.2 cimag F
+GLIBC_2.2 cimagf F
+GLIBC_2.2 cimagl F
+GLIBC_2.2 clog F
+GLIBC_2.2 clog10 F
+GLIBC_2.2 clog10f F
+GLIBC_2.2 clog10l F
+GLIBC_2.2 clogf F
+GLIBC_2.2 clogl F
+GLIBC_2.2 conj F
+GLIBC_2.2 conjf F
+GLIBC_2.2 conjl F
+GLIBC_2.2 copysign F
+GLIBC_2.2 copysignf F
+GLIBC_2.2 copysignl F
+GLIBC_2.2 cos F
+GLIBC_2.2 cosf F
+GLIBC_2.2 cosh F
+GLIBC_2.2 coshf F
+GLIBC_2.2 coshl F
+GLIBC_2.2 cosl F
+GLIBC_2.2 cpow F
+GLIBC_2.2 cpowf F
+GLIBC_2.2 cpowl F
+GLIBC_2.2 cproj F
+GLIBC_2.2 cprojf F
+GLIBC_2.2 cprojl F
+GLIBC_2.2 creal F
+GLIBC_2.2 crealf F
+GLIBC_2.2 creall F
+GLIBC_2.2 csin F
+GLIBC_2.2 csinf F
+GLIBC_2.2 csinh F
+GLIBC_2.2 csinhf F
+GLIBC_2.2 csinhl F
+GLIBC_2.2 csinl F
+GLIBC_2.2 csqrt F
+GLIBC_2.2 csqrtf F
+GLIBC_2.2 csqrtl F
+GLIBC_2.2 ctan F
+GLIBC_2.2 ctanf F
+GLIBC_2.2 ctanh F
+GLIBC_2.2 ctanhf F
+GLIBC_2.2 ctanhl F
+GLIBC_2.2 ctanl F
+GLIBC_2.2 drem F
+GLIBC_2.2 dremf F
+GLIBC_2.2 dreml F
+GLIBC_2.2 erf F
+GLIBC_2.2 erfc F
+GLIBC_2.2 erfcf F
+GLIBC_2.2 erfcl F
+GLIBC_2.2 erff F
+GLIBC_2.2 erfl F
+GLIBC_2.2 exp F
+GLIBC_2.2 exp10 F
+GLIBC_2.2 exp10f F
+GLIBC_2.2 exp10l F
+GLIBC_2.2 exp2 F
+GLIBC_2.2 exp2f F
+GLIBC_2.2 expf F
+GLIBC_2.2 expl F
+GLIBC_2.2 expm1 F
+GLIBC_2.2 expm1f F
+GLIBC_2.2 expm1l F
+GLIBC_2.2 fabs F
+GLIBC_2.2 fabsf F
+GLIBC_2.2 fabsl F
+GLIBC_2.2 fdim F
+GLIBC_2.2 fdimf F
+GLIBC_2.2 fdiml F
+GLIBC_2.2 feclearexcept F
+GLIBC_2.2 fedisableexcept F
+GLIBC_2.2 feenableexcept F
+GLIBC_2.2 fegetenv F
+GLIBC_2.2 fegetexcept F
+GLIBC_2.2 fegetexceptflag F
+GLIBC_2.2 fegetround F
+GLIBC_2.2 feholdexcept F
+GLIBC_2.2 feraiseexcept F
+GLIBC_2.2 fesetenv F
+GLIBC_2.2 fesetexceptflag F
+GLIBC_2.2 fesetround F
+GLIBC_2.2 fetestexcept F
+GLIBC_2.2 feupdateenv F
+GLIBC_2.2 finite F
+GLIBC_2.2 finitef F
+GLIBC_2.2 finitel F
+GLIBC_2.2 floor F
+GLIBC_2.2 floorf F
+GLIBC_2.2 floorl F
+GLIBC_2.2 fma F
+GLIBC_2.2 fmaf F
+GLIBC_2.2 fmal F
+GLIBC_2.2 fmax F
+GLIBC_2.2 fmaxf F
+GLIBC_2.2 fmaxl F
+GLIBC_2.2 fmin F
+GLIBC_2.2 fminf F
+GLIBC_2.2 fminl F
+GLIBC_2.2 fmod F
+GLIBC_2.2 fmodf F
+GLIBC_2.2 fmodl F
+GLIBC_2.2 frexp F
+GLIBC_2.2 frexpf F
+GLIBC_2.2 frexpl F
+GLIBC_2.2 gamma F
+GLIBC_2.2 gammaf F
+GLIBC_2.2 gammal F
+GLIBC_2.2 hypot F
+GLIBC_2.2 hypotf F
+GLIBC_2.2 hypotl F
+GLIBC_2.2 ilogb F
+GLIBC_2.2 ilogbf F
+GLIBC_2.2 ilogbl F
+GLIBC_2.2 j0 F
+GLIBC_2.2 j0f F
+GLIBC_2.2 j0l F
+GLIBC_2.2 j1 F
+GLIBC_2.2 j1f F
+GLIBC_2.2 j1l F
+GLIBC_2.2 jn F
+GLIBC_2.2 jnf F
+GLIBC_2.2 jnl F
+GLIBC_2.2 ldexp F
+GLIBC_2.2 ldexpf F
+GLIBC_2.2 ldexpl F
+GLIBC_2.2 lgamma F
+GLIBC_2.2 lgamma_r F
+GLIBC_2.2 lgammaf F
+GLIBC_2.2 lgammaf_r F
+GLIBC_2.2 lgammal F
+GLIBC_2.2 lgammal_r F
+GLIBC_2.2 llrint F
+GLIBC_2.2 llrintf F
+GLIBC_2.2 llrintl F
+GLIBC_2.2 llround F
+GLIBC_2.2 llroundf F
+GLIBC_2.2 llroundl F
+GLIBC_2.2 log F
+GLIBC_2.2 log10 F
+GLIBC_2.2 log10f F
+GLIBC_2.2 log10l F
+GLIBC_2.2 log1p F
+GLIBC_2.2 log1pf F
+GLIBC_2.2 log1pl F
+GLIBC_2.2 log2 F
+GLIBC_2.2 log2f F
+GLIBC_2.2 log2l F
+GLIBC_2.2 logb F
+GLIBC_2.2 logbf F
+GLIBC_2.2 logbl F
+GLIBC_2.2 logf F
+GLIBC_2.2 logl F
+GLIBC_2.2 lrint F
+GLIBC_2.2 lrintf F
+GLIBC_2.2 lrintl F
+GLIBC_2.2 lround F
+GLIBC_2.2 lroundf F
+GLIBC_2.2 lroundl F
+GLIBC_2.2 matherr F
+GLIBC_2.2 modf F
+GLIBC_2.2 modff F
+GLIBC_2.2 modfl F
+GLIBC_2.2 nan F
+GLIBC_2.2 nanf F
+GLIBC_2.2 nanl F
+GLIBC_2.2 nearbyint F
+GLIBC_2.2 nearbyintf F
+GLIBC_2.2 nearbyintl F
+GLIBC_2.2 nextafter F
+GLIBC_2.2 nextafterf F
+GLIBC_2.2 nextafterl F
+GLIBC_2.2 nexttoward F
+GLIBC_2.2 nexttowardf F
+GLIBC_2.2 nexttowardl F
+GLIBC_2.2 pow F
+GLIBC_2.2 pow10 F
+GLIBC_2.2 pow10f F
+GLIBC_2.2 pow10l F
+GLIBC_2.2 powf F
+GLIBC_2.2 powl F
+GLIBC_2.2 remainder F
+GLIBC_2.2 remainderf F
+GLIBC_2.2 remainderl F
+GLIBC_2.2 remquo F
+GLIBC_2.2 remquof F
+GLIBC_2.2 remquol F
+GLIBC_2.2 rint F
+GLIBC_2.2 rintf F
+GLIBC_2.2 rintl F
+GLIBC_2.2 round F
+GLIBC_2.2 roundf F
+GLIBC_2.2 roundl F
+GLIBC_2.2 scalb F
+GLIBC_2.2 scalbf F
+GLIBC_2.2 scalbl F
+GLIBC_2.2 scalbln F
+GLIBC_2.2 scalblnf F
+GLIBC_2.2 scalblnl F
+GLIBC_2.2 scalbn F
+GLIBC_2.2 scalbnf F
+GLIBC_2.2 scalbnl F
+GLIBC_2.2 signgam D 0x4
+GLIBC_2.2 significand F
+GLIBC_2.2 significandf F
+GLIBC_2.2 significandl F
+GLIBC_2.2 sin F
+GLIBC_2.2 sincos F
+GLIBC_2.2 sincosf F
+GLIBC_2.2 sincosl F
+GLIBC_2.2 sinf F
+GLIBC_2.2 sinh F
+GLIBC_2.2 sinhf F
+GLIBC_2.2 sinhl F
+GLIBC_2.2 sinl F
+GLIBC_2.2 sqrt F
+GLIBC_2.2 sqrtf F
+GLIBC_2.2 sqrtl F
+GLIBC_2.2 tan F
+GLIBC_2.2 tanf F
+GLIBC_2.2 tanh F
+GLIBC_2.2 tanhf F
+GLIBC_2.2 tanhl F
+GLIBC_2.2 tanl F
+GLIBC_2.2 tgamma F
+GLIBC_2.2 tgammaf F
+GLIBC_2.2 tgammal F
+GLIBC_2.2 trunc F
+GLIBC_2.2 truncf F
+GLIBC_2.2 truncl F
+GLIBC_2.2 y0 F
+GLIBC_2.2 y0f F
+GLIBC_2.2 y0l F
+GLIBC_2.2 y1 F
+GLIBC_2.2 y1f F
+GLIBC_2.2 y1l F
+GLIBC_2.2 yn F
+GLIBC_2.2 ynf F
+GLIBC_2.2 ynl F
+GLIBC_2.23 __signgam D 0x4
+GLIBC_2.23 lgamma F
+GLIBC_2.23 lgammaf F
+GLIBC_2.23 lgammal F
+GLIBC_2.24 nextdown F
+GLIBC_2.24 nextdownf F
+GLIBC_2.24 nextdownl F
+GLIBC_2.24 nextup F
+GLIBC_2.24 nextupf F
+GLIBC_2.24 nextupl F
+GLIBC_2.25 __iseqsig F
+GLIBC_2.25 __iseqsigf F
+GLIBC_2.25 canonicalize F
+GLIBC_2.25 canonicalizef F
+GLIBC_2.25 canonicalizel F
+GLIBC_2.25 fegetmode F
+GLIBC_2.25 fesetexcept F
+GLIBC_2.25 fesetmode F
+GLIBC_2.25 fetestexceptflag F
+GLIBC_2.25 fmaxmag F
+GLIBC_2.25 fmaxmagf F
+GLIBC_2.25 fmaxmagl F
+GLIBC_2.25 fminmag F
+GLIBC_2.25 fminmagf F
+GLIBC_2.25 fminmagl F
+GLIBC_2.25 fromfp F
+GLIBC_2.25 fromfpf F
+GLIBC_2.25 fromfpl F
+GLIBC_2.25 fromfpx F
+GLIBC_2.25 fromfpxf F
+GLIBC_2.25 fromfpxl F
+GLIBC_2.25 getpayload F
+GLIBC_2.25 getpayloadf F
+GLIBC_2.25 getpayloadl F
+GLIBC_2.25 llogb F
+GLIBC_2.25 llogbf F
+GLIBC_2.25 llogbl F
+GLIBC_2.25 roundeven F
+GLIBC_2.25 roundevenf F
+GLIBC_2.25 roundevenl F
+GLIBC_2.25 setpayload F
+GLIBC_2.25 setpayloadf F
+GLIBC_2.25 setpayloadl F
+GLIBC_2.25 setpayloadsig F
+GLIBC_2.25 setpayloadsigf F
+GLIBC_2.25 setpayloadsigl F
+GLIBC_2.25 totalorder F
+GLIBC_2.25 totalorderf F
+GLIBC_2.25 totalorderl F
+GLIBC_2.25 totalordermag F
+GLIBC_2.25 totalordermagf F
+GLIBC_2.25 totalordermagl F
+GLIBC_2.25 ufromfp F
+GLIBC_2.25 ufromfpf F
+GLIBC_2.25 ufromfpl F
+GLIBC_2.25 ufromfpx F
+GLIBC_2.25 ufromfpxf F
+GLIBC_2.25 ufromfpxl F
+GLIBC_2.27 acosf32 F
+GLIBC_2.27 acosf32x F
+GLIBC_2.27 acosf64 F
+GLIBC_2.27 acoshf32 F
+GLIBC_2.27 acoshf32x F
+GLIBC_2.27 acoshf64 F
+GLIBC_2.27 asinf32 F
+GLIBC_2.27 asinf32x F
+GLIBC_2.27 asinf64 F
+GLIBC_2.27 asinhf32 F
+GLIBC_2.27 asinhf32x F
+GLIBC_2.27 asinhf64 F
+GLIBC_2.27 atan2f32 F
+GLIBC_2.27 atan2f32x F
+GLIBC_2.27 atan2f64 F
+GLIBC_2.27 atanf32 F
+GLIBC_2.27 atanf32x F
+GLIBC_2.27 atanf64 F
+GLIBC_2.27 atanhf32 F
+GLIBC_2.27 atanhf32x F
+GLIBC_2.27 atanhf64 F
+GLIBC_2.27 cabsf32 F
+GLIBC_2.27 cabsf32x F
+GLIBC_2.27 cabsf64 F
+GLIBC_2.27 cacosf32 F
+GLIBC_2.27 cacosf32x F
+GLIBC_2.27 cacosf64 F
+GLIBC_2.27 cacoshf32 F
+GLIBC_2.27 cacoshf32x F
+GLIBC_2.27 cacoshf64 F
+GLIBC_2.27 canonicalizef32 F
+GLIBC_2.27 canonicalizef32x F
+GLIBC_2.27 canonicalizef64 F
+GLIBC_2.27 cargf32 F
+GLIBC_2.27 cargf32x F
+GLIBC_2.27 cargf64 F
+GLIBC_2.27 casinf32 F
+GLIBC_2.27 casinf32x F
+GLIBC_2.27 casinf64 F
+GLIBC_2.27 casinhf32 F
+GLIBC_2.27 casinhf32x F
+GLIBC_2.27 casinhf64 F
+GLIBC_2.27 catanf32 F
+GLIBC_2.27 catanf32x F
+GLIBC_2.27 catanf64 F
+GLIBC_2.27 catanhf32 F
+GLIBC_2.27 catanhf32x F
+GLIBC_2.27 catanhf64 F
+GLIBC_2.27 cbrtf32 F
+GLIBC_2.27 cbrtf32x F
+GLIBC_2.27 cbrtf64 F
+GLIBC_2.27 ccosf32 F
+GLIBC_2.27 ccosf32x F
+GLIBC_2.27 ccosf64 F
+GLIBC_2.27 ccoshf32 F
+GLIBC_2.27 ccoshf32x F
+GLIBC_2.27 ccoshf64 F
+GLIBC_2.27 ceilf32 F
+GLIBC_2.27 ceilf32x F
+GLIBC_2.27 ceilf64 F
+GLIBC_2.27 cexpf32 F
+GLIBC_2.27 cexpf32x F
+GLIBC_2.27 cexpf64 F
+GLIBC_2.27 cimagf32 F
+GLIBC_2.27 cimagf32x F
+GLIBC_2.27 cimagf64 F
+GLIBC_2.27 clog10f32 F
+GLIBC_2.27 clog10f32x F
+GLIBC_2.27 clog10f64 F
+GLIBC_2.27 clogf32 F
+GLIBC_2.27 clogf32x F
+GLIBC_2.27 clogf64 F
+GLIBC_2.27 conjf32 F
+GLIBC_2.27 conjf32x F
+GLIBC_2.27 conjf64 F
+GLIBC_2.27 copysignf32 F
+GLIBC_2.27 copysignf32x F
+GLIBC_2.27 copysignf64 F
+GLIBC_2.27 cosf32 F
+GLIBC_2.27 cosf32x F
+GLIBC_2.27 cosf64 F
+GLIBC_2.27 coshf32 F
+GLIBC_2.27 coshf32x F
+GLIBC_2.27 coshf64 F
+GLIBC_2.27 cpowf32 F
+GLIBC_2.27 cpowf32x F
+GLIBC_2.27 cpowf64 F
+GLIBC_2.27 cprojf32 F
+GLIBC_2.27 cprojf32x F
+GLIBC_2.27 cprojf64 F
+GLIBC_2.27 crealf32 F
+GLIBC_2.27 crealf32x F
+GLIBC_2.27 crealf64 F
+GLIBC_2.27 csinf32 F
+GLIBC_2.27 csinf32x F
+GLIBC_2.27 csinf64 F
+GLIBC_2.27 csinhf32 F
+GLIBC_2.27 csinhf32x F
+GLIBC_2.27 csinhf64 F
+GLIBC_2.27 csqrtf32 F
+GLIBC_2.27 csqrtf32x F
+GLIBC_2.27 csqrtf64 F
+GLIBC_2.27 ctanf32 F
+GLIBC_2.27 ctanf32x F
+GLIBC_2.27 ctanf64 F
+GLIBC_2.27 ctanhf32 F
+GLIBC_2.27 ctanhf32x F
+GLIBC_2.27 ctanhf64 F
+GLIBC_2.27 erfcf32 F
+GLIBC_2.27 erfcf32x F
+GLIBC_2.27 erfcf64 F
+GLIBC_2.27 erff32 F
+GLIBC_2.27 erff32x F
+GLIBC_2.27 erff64 F
+GLIBC_2.27 exp10f32 F
+GLIBC_2.27 exp10f32x F
+GLIBC_2.27 exp10f64 F
+GLIBC_2.27 exp2f F
+GLIBC_2.27 exp2f32 F
+GLIBC_2.27 exp2f32x F
+GLIBC_2.27 exp2f64 F
+GLIBC_2.27 expf F
+GLIBC_2.27 expf32 F
+GLIBC_2.27 expf32x F
+GLIBC_2.27 expf64 F
+GLIBC_2.27 expm1f32 F
+GLIBC_2.27 expm1f32x F
+GLIBC_2.27 expm1f64 F
+GLIBC_2.27 fabsf32 F
+GLIBC_2.27 fabsf32x F
+GLIBC_2.27 fabsf64 F
+GLIBC_2.27 fdimf32 F
+GLIBC_2.27 fdimf32x F
+GLIBC_2.27 fdimf64 F
+GLIBC_2.27 floorf32 F
+GLIBC_2.27 floorf32x F
+GLIBC_2.27 floorf64 F
+GLIBC_2.27 fmaf32 F
+GLIBC_2.27 fmaf32x F
+GLIBC_2.27 fmaf64 F
+GLIBC_2.27 fmaxf32 F
+GLIBC_2.27 fmaxf32x F
+GLIBC_2.27 fmaxf64 F
+GLIBC_2.27 fmaxmagf32 F
+GLIBC_2.27 fmaxmagf32x F
+GLIBC_2.27 fmaxmagf64 F
+GLIBC_2.27 fminf32 F
+GLIBC_2.27 fminf32x F
+GLIBC_2.27 fminf64 F
+GLIBC_2.27 fminmagf32 F
+GLIBC_2.27 fminmagf32x F
+GLIBC_2.27 fminmagf64 F
+GLIBC_2.27 fmodf32 F
+GLIBC_2.27 fmodf32x F
+GLIBC_2.27 fmodf64 F
+GLIBC_2.27 frexpf32 F
+GLIBC_2.27 frexpf32x F
+GLIBC_2.27 frexpf64 F
+GLIBC_2.27 fromfpf32 F
+GLIBC_2.27 fromfpf32x F
+GLIBC_2.27 fromfpf64 F
+GLIBC_2.27 fromfpxf32 F
+GLIBC_2.27 fromfpxf32x F
+GLIBC_2.27 fromfpxf64 F
+GLIBC_2.27 getpayloadf32 F
+GLIBC_2.27 getpayloadf32x F
+GLIBC_2.27 getpayloadf64 F
+GLIBC_2.27 hypotf32 F
+GLIBC_2.27 hypotf32x F
+GLIBC_2.27 hypotf64 F
+GLIBC_2.27 ilogbf32 F
+GLIBC_2.27 ilogbf32x F
+GLIBC_2.27 ilogbf64 F
+GLIBC_2.27 j0f32 F
+GLIBC_2.27 j0f32x F
+GLIBC_2.27 j0f64 F
+GLIBC_2.27 j1f32 F
+GLIBC_2.27 j1f32x F
+GLIBC_2.27 j1f64 F
+GLIBC_2.27 jnf32 F
+GLIBC_2.27 jnf32x F
+GLIBC_2.27 jnf64 F
+GLIBC_2.27 ldexpf32 F
+GLIBC_2.27 ldexpf32x F
+GLIBC_2.27 ldexpf64 F
+GLIBC_2.27 lgammaf32 F
+GLIBC_2.27 lgammaf32_r F
+GLIBC_2.27 lgammaf32x F
+GLIBC_2.27 lgammaf32x_r F
+GLIBC_2.27 lgammaf64 F
+GLIBC_2.27 lgammaf64_r F
+GLIBC_2.27 llogbf32 F
+GLIBC_2.27 llogbf32x F
+GLIBC_2.27 llogbf64 F
+GLIBC_2.27 llrintf32 F
+GLIBC_2.27 llrintf32x F
+GLIBC_2.27 llrintf64 F
+GLIBC_2.27 llroundf32 F
+GLIBC_2.27 llroundf32x F
+GLIBC_2.27 llroundf64 F
+GLIBC_2.27 log10f32 F
+GLIBC_2.27 log10f32x F
+GLIBC_2.27 log10f64 F
+GLIBC_2.27 log1pf32 F
+GLIBC_2.27 log1pf32x F
+GLIBC_2.27 log1pf64 F
+GLIBC_2.27 log2f F
+GLIBC_2.27 log2f32 F
+GLIBC_2.27 log2f32x F
+GLIBC_2.27 log2f64 F
+GLIBC_2.27 logbf32 F
+GLIBC_2.27 logbf32x F
+GLIBC_2.27 logbf64 F
+GLIBC_2.27 logf F
+GLIBC_2.27 logf32 F
+GLIBC_2.27 logf32x F
+GLIBC_2.27 logf64 F
+GLIBC_2.27 lrintf32 F
+GLIBC_2.27 lrintf32x F
+GLIBC_2.27 lrintf64 F
+GLIBC_2.27 lroundf32 F
+GLIBC_2.27 lroundf32x F
+GLIBC_2.27 lroundf64 F
+GLIBC_2.27 modff32 F
+GLIBC_2.27 modff32x F
+GLIBC_2.27 modff64 F
+GLIBC_2.27 nanf32 F
+GLIBC_2.27 nanf32x F
+GLIBC_2.27 nanf64 F
+GLIBC_2.27 nearbyintf32 F
+GLIBC_2.27 nearbyintf32x F
+GLIBC_2.27 nearbyintf64 F
+GLIBC_2.27 nextafterf32 F
+GLIBC_2.27 nextafterf32x F
+GLIBC_2.27 nextafterf64 F
+GLIBC_2.27 nextdownf32 F
+GLIBC_2.27 nextdownf32x F
+GLIBC_2.27 nextdownf64 F
+GLIBC_2.27 nextupf32 F
+GLIBC_2.27 nextupf32x F
+GLIBC_2.27 nextupf64 F
+GLIBC_2.27 powf F
+GLIBC_2.27 powf32 F
+GLIBC_2.27 powf32x F
+GLIBC_2.27 powf64 F
+GLIBC_2.27 remainderf32 F
+GLIBC_2.27 remainderf32x F
+GLIBC_2.27 remainderf64 F
+GLIBC_2.27 remquof32 F
+GLIBC_2.27 remquof32x F
+GLIBC_2.27 remquof64 F
+GLIBC_2.27 rintf32 F
+GLIBC_2.27 rintf32x F
+GLIBC_2.27 rintf64 F
+GLIBC_2.27 roundevenf32 F
+GLIBC_2.27 roundevenf32x F
+GLIBC_2.27 roundevenf64 F
+GLIBC_2.27 roundf32 F
+GLIBC_2.27 roundf32x F
+GLIBC_2.27 roundf64 F
+GLIBC_2.27 scalblnf32 F
+GLIBC_2.27 scalblnf32x F
+GLIBC_2.27 scalblnf64 F
+GLIBC_2.27 scalbnf32 F
+GLIBC_2.27 scalbnf32x F
+GLIBC_2.27 scalbnf64 F
+GLIBC_2.27 setpayloadf32 F
+GLIBC_2.27 setpayloadf32x F
+GLIBC_2.27 setpayloadf64 F
+GLIBC_2.27 setpayloadsigf32 F
+GLIBC_2.27 setpayloadsigf32x F
+GLIBC_2.27 setpayloadsigf64 F
+GLIBC_2.27 sincosf32 F
+GLIBC_2.27 sincosf32x F
+GLIBC_2.27 sincosf64 F
+GLIBC_2.27 sinf32 F
+GLIBC_2.27 sinf32x F
+GLIBC_2.27 sinf64 F
+GLIBC_2.27 sinhf32 F
+GLIBC_2.27 sinhf32x F
+GLIBC_2.27 sinhf64 F
+GLIBC_2.27 sqrtf32 F
+GLIBC_2.27 sqrtf32x F
+GLIBC_2.27 sqrtf64 F
+GLIBC_2.27 tanf32 F
+GLIBC_2.27 tanf32x F
+GLIBC_2.27 tanf64 F
+GLIBC_2.27 tanhf32 F
+GLIBC_2.27 tanhf32x F
+GLIBC_2.27 tanhf64 F
+GLIBC_2.27 tgammaf32 F
+GLIBC_2.27 tgammaf32x F
+GLIBC_2.27 tgammaf64 F
+GLIBC_2.27 totalorderf32 F
+GLIBC_2.27 totalorderf32x F
+GLIBC_2.27 totalorderf64 F
+GLIBC_2.27 totalordermagf32 F
+GLIBC_2.27 totalordermagf32x F
+GLIBC_2.27 totalordermagf64 F
+GLIBC_2.27 truncf32 F
+GLIBC_2.27 truncf32x F
+GLIBC_2.27 truncf64 F
+GLIBC_2.27 ufromfpf32 F
+GLIBC_2.27 ufromfpf32x F
+GLIBC_2.27 ufromfpf64 F
+GLIBC_2.27 ufromfpxf32 F
+GLIBC_2.27 ufromfpxf32x F
+GLIBC_2.27 ufromfpxf64 F
+GLIBC_2.27 y0f32 F
+GLIBC_2.27 y0f32x F
+GLIBC_2.27 y0f64 F
+GLIBC_2.27 y1f32 F
+GLIBC_2.27 y1f32x F
+GLIBC_2.27 y1f64 F
+GLIBC_2.27 ynf32 F
+GLIBC_2.27 ynf32x F
+GLIBC_2.27 ynf64 F
+GLIBC_2.28 daddl F
+GLIBC_2.28 ddivl F
+GLIBC_2.28 dmull F
+GLIBC_2.28 dsubl F
+GLIBC_2.28 f32addf32x F
+GLIBC_2.28 f32addf64 F
+GLIBC_2.28 f32divf32x F
+GLIBC_2.28 f32divf64 F
+GLIBC_2.28 f32mulf32x F
+GLIBC_2.28 f32mulf64 F
+GLIBC_2.28 f32subf32x F
+GLIBC_2.28 f32subf64 F
+GLIBC_2.28 f32xaddf64 F
+GLIBC_2.28 f32xdivf64 F
+GLIBC_2.28 f32xmulf64 F
+GLIBC_2.28 f32xsubf64 F
+GLIBC_2.28 fadd F
+GLIBC_2.28 faddl F
+GLIBC_2.28 fdiv F
+GLIBC_2.28 fdivl F
+GLIBC_2.28 fmul F
+GLIBC_2.28 fmull F
+GLIBC_2.28 fsub F
+GLIBC_2.28 fsubl F
+GLIBC_2.29 exp F
+GLIBC_2.29 exp2 F
+GLIBC_2.29 log F
+GLIBC_2.29 log2 F
+GLIBC_2.29 pow F
+GLIBC_2.31 totalorder F
+GLIBC_2.31 totalorderf F
+GLIBC_2.31 totalorderf32 F
+GLIBC_2.31 totalorderf32x F
+GLIBC_2.31 totalorderf64 F
+GLIBC_2.31 totalorderl F
+GLIBC_2.31 totalordermag F
+GLIBC_2.31 totalordermagf F
+GLIBC_2.31 totalordermagf32 F
+GLIBC_2.31 totalordermagf32x F
+GLIBC_2.31 totalordermagf64 F
+GLIBC_2.31 totalordermagl F
+GLIBC_2.4 exp2l F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libnsl.abilist b/sysdeps/unix/sysv/linux/sh/le/libnsl.abilist
new file mode 100644
index 0000000000..add3d66a7a
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sh/le/libnsl.abilist
@@ -0,0 +1,121 @@
+GLIBC_2.0 __yp_check F
+GLIBC_2.0 xdr_domainname F
+GLIBC_2.0 xdr_keydat F
+GLIBC_2.0 xdr_mapname F
+GLIBC_2.0 xdr_peername F
+GLIBC_2.0 xdr_valdat F
+GLIBC_2.0 xdr_yp_buf F
+GLIBC_2.0 xdr_ypbind_binding F
+GLIBC_2.0 xdr_ypbind_resp F
+GLIBC_2.0 xdr_ypbind_resptype F
+GLIBC_2.0 xdr_ypbind_setdom F
+GLIBC_2.0 xdr_ypdelete_args F
+GLIBC_2.0 xdr_ypmap_parms F
+GLIBC_2.0 xdr_ypmaplist F
+GLIBC_2.0 xdr_yppush_status F
+GLIBC_2.0 xdr_yppushresp_xfr F
+GLIBC_2.0 xdr_ypreq_key F
+GLIBC_2.0 xdr_ypreq_nokey F
+GLIBC_2.0 xdr_ypreq_xfr F
+GLIBC_2.0 xdr_ypresp_all F
+GLIBC_2.0 xdr_ypresp_key_val F
+GLIBC_2.0 xdr_ypresp_maplist F
+GLIBC_2.0 xdr_ypresp_master F
+GLIBC_2.0 xdr_ypresp_order F
+GLIBC_2.0 xdr_ypresp_val F
+GLIBC_2.0 xdr_ypresp_xfr F
+GLIBC_2.0 xdr_ypstat F
+GLIBC_2.0 xdr_ypupdate_args F
+GLIBC_2.0 xdr_ypxfrstat F
+GLIBC_2.0 yp_all F
+GLIBC_2.0 yp_bind F
+GLIBC_2.0 yp_first F
+GLIBC_2.0 yp_get_default_domain F
+GLIBC_2.0 yp_maplist F
+GLIBC_2.0 yp_master F
+GLIBC_2.0 yp_match F
+GLIBC_2.0 yp_next F
+GLIBC_2.0 yp_order F
+GLIBC_2.0 yp_unbind F
+GLIBC_2.0 yp_update F
+GLIBC_2.0 ypbinderr_string F
+GLIBC_2.0 yperr_string F
+GLIBC_2.0 ypprot_err F
+GLIBC_2.1 __free_fdresult F
+GLIBC_2.1 __nis_default_access F
+GLIBC_2.1 __nis_default_group F
+GLIBC_2.1 __nis_default_owner F
+GLIBC_2.1 __nis_default_ttl F
+GLIBC_2.1 __nis_finddirectory F
+GLIBC_2.1 __nis_hash F
+GLIBC_2.1 __nisbind_connect F
+GLIBC_2.1 __nisbind_create F
+GLIBC_2.1 __nisbind_destroy F
+GLIBC_2.1 __nisbind_next F
+GLIBC_2.1 nis_add F
+GLIBC_2.1 nis_add_entry F
+GLIBC_2.1 nis_addmember F
+GLIBC_2.1 nis_checkpoint F
+GLIBC_2.1 nis_clone_directory F
+GLIBC_2.1 nis_clone_object F
+GLIBC_2.1 nis_clone_result F
+GLIBC_2.1 nis_creategroup F
+GLIBC_2.1 nis_destroy_object F
+GLIBC_2.1 nis_destroygroup F
+GLIBC_2.1 nis_dir_cmp F
+GLIBC_2.1 nis_domain_of F
+GLIBC_2.1 nis_domain_of_r F
+GLIBC_2.1 nis_first_entry F
+GLIBC_2.1 nis_free_directory F
+GLIBC_2.1 nis_free_object F
+GLIBC_2.1 nis_free_request F
+GLIBC_2.1 nis_freenames F
+GLIBC_2.1 nis_freeresult F
+GLIBC_2.1 nis_freeservlist F
+GLIBC_2.1 nis_freetags F
+GLIBC_2.1 nis_getnames F
+GLIBC_2.1 nis_getservlist F
+GLIBC_2.1 nis_ismember F
+GLIBC_2.1 nis_leaf_of F
+GLIBC_2.1 nis_leaf_of_r F
+GLIBC_2.1 nis_lerror F
+GLIBC_2.1 nis_list F
+GLIBC_2.1 nis_local_directory F
+GLIBC_2.1 nis_local_group F
+GLIBC_2.1 nis_local_host F
+GLIBC_2.1 nis_local_principal F
+GLIBC_2.1 nis_lookup F
+GLIBC_2.1 nis_mkdir F
+GLIBC_2.1 nis_modify F
+GLIBC_2.1 nis_modify_entry F
+GLIBC_2.1 nis_name_of F
+GLIBC_2.1 nis_name_of_r F
+GLIBC_2.1 nis_next_entry F
+GLIBC_2.1 nis_perror F
+GLIBC_2.1 nis_ping F
+GLIBC_2.1 nis_print_directory F
+GLIBC_2.1 nis_print_entry F
+GLIBC_2.1 nis_print_group F
+GLIBC_2.1 nis_print_group_entry F
+GLIBC_2.1 nis_print_link F
+GLIBC_2.1 nis_print_object F
+GLIBC_2.1 nis_print_result F
+GLIBC_2.1 nis_print_rights F
+GLIBC_2.1 nis_print_table F
+GLIBC_2.1 nis_read_obj F
+GLIBC_2.1 nis_remove F
+GLIBC_2.1 nis_remove_entry F
+GLIBC_2.1 nis_removemember F
+GLIBC_2.1 nis_rmdir F
+GLIBC_2.1 nis_servstate F
+GLIBC_2.1 nis_sperrno F
+GLIBC_2.1 nis_sperror F
+GLIBC_2.1 nis_sperror_r F
+GLIBC_2.1 nis_stats F
+GLIBC_2.1 nis_verifygroup F
+GLIBC_2.1 nis_write_obj F
+GLIBC_2.1 readColdStartFile F
+GLIBC_2.1 writeColdStartFile F
+GLIBC_2.1 xdr_cback_data F
+GLIBC_2.1 xdr_obj_p F
+GLIBC_2.2 xdr_ypall F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
new file mode 100644
index 0000000000..15b72c4264
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
@@ -0,0 +1,249 @@
+GLIBC_2.11 pthread_sigqueue F
+GLIBC_2.12 pthread_getname_np F
+GLIBC_2.12 pthread_mutex_consistent F
+GLIBC_2.12 pthread_mutexattr_getrobust F
+GLIBC_2.12 pthread_mutexattr_setrobust F
+GLIBC_2.12 pthread_setname_np F
+GLIBC_2.18 pthread_getattr_default_np F
+GLIBC_2.18 pthread_setattr_default_np F
+GLIBC_2.2 _IO_flockfile F
+GLIBC_2.2 _IO_ftrylockfile F
+GLIBC_2.2 _IO_funlockfile F
+GLIBC_2.2 __close F
+GLIBC_2.2 __connect F
+GLIBC_2.2 __errno_location F
+GLIBC_2.2 __fcntl F
+GLIBC_2.2 __fork F
+GLIBC_2.2 __h_errno_location F
+GLIBC_2.2 __libc_allocate_rtsig F
+GLIBC_2.2 __libc_current_sigrtmax F
+GLIBC_2.2 __libc_current_sigrtmin F
+GLIBC_2.2 __lseek F
+GLIBC_2.2 __open F
+GLIBC_2.2 __open64 F
+GLIBC_2.2 __pread64 F
+GLIBC_2.2 __pthread_getspecific F
+GLIBC_2.2 __pthread_key_create F
+GLIBC_2.2 __pthread_mutex_destroy F
+GLIBC_2.2 __pthread_mutex_init F
+GLIBC_2.2 __pthread_mutex_lock F
+GLIBC_2.2 __pthread_mutex_trylock F
+GLIBC_2.2 __pthread_mutex_unlock F
+GLIBC_2.2 __pthread_mutexattr_destroy F
+GLIBC_2.2 __pthread_mutexattr_init F
+GLIBC_2.2 __pthread_mutexattr_settype F
+GLIBC_2.2 __pthread_once F
+GLIBC_2.2 __pthread_rwlock_destroy F
+GLIBC_2.2 __pthread_rwlock_init F
+GLIBC_2.2 __pthread_rwlock_rdlock F
+GLIBC_2.2 __pthread_rwlock_tryrdlock F
+GLIBC_2.2 __pthread_rwlock_trywrlock F
+GLIBC_2.2 __pthread_rwlock_unlock F
+GLIBC_2.2 __pthread_rwlock_wrlock F
+GLIBC_2.2 __pthread_setspecific F
+GLIBC_2.2 __pwrite64 F
+GLIBC_2.2 __read F
+GLIBC_2.2 __res_state F
+GLIBC_2.2 __send F
+GLIBC_2.2 __sigaction F
+GLIBC_2.2 __wait F
+GLIBC_2.2 __write F
+GLIBC_2.2 _pthread_cleanup_pop F
+GLIBC_2.2 _pthread_cleanup_pop_restore F
+GLIBC_2.2 _pthread_cleanup_push F
+GLIBC_2.2 _pthread_cleanup_push_defer F
+GLIBC_2.2 accept F
+GLIBC_2.2 close F
+GLIBC_2.2 connect F
+GLIBC_2.2 fcntl F
+GLIBC_2.2 flockfile F
+GLIBC_2.2 fork F
+GLIBC_2.2 fsync F
+GLIBC_2.2 ftrylockfile F
+GLIBC_2.2 funlockfile F
+GLIBC_2.2 longjmp F
+GLIBC_2.2 lseek F
+GLIBC_2.2 lseek64 F
+GLIBC_2.2 msync F
+GLIBC_2.2 open F
+GLIBC_2.2 open64 F
+GLIBC_2.2 pause F
+GLIBC_2.2 pread F
+GLIBC_2.2 pread64 F
+GLIBC_2.2 pthread_atfork F
+GLIBC_2.2 pthread_attr_getguardsize F
+GLIBC_2.2 pthread_attr_getschedpolicy F
+GLIBC_2.2 pthread_attr_getscope F
+GLIBC_2.2 pthread_attr_getstack F
+GLIBC_2.2 pthread_attr_getstackaddr F
+GLIBC_2.2 pthread_attr_getstacksize F
+GLIBC_2.2 pthread_attr_setguardsize F
+GLIBC_2.2 pthread_attr_setschedpolicy F
+GLIBC_2.2 pthread_attr_setscope F
+GLIBC_2.2 pthread_attr_setstack F
+GLIBC_2.2 pthread_attr_setstackaddr F
+GLIBC_2.2 pthread_attr_setstacksize F
+GLIBC_2.2 pthread_barrier_destroy F
+GLIBC_2.2 pthread_barrier_init F
+GLIBC_2.2 pthread_barrier_wait F
+GLIBC_2.2 pthread_barrierattr_destroy F
+GLIBC_2.2 pthread_barrierattr_init F
+GLIBC_2.2 pthread_barrierattr_setpshared F
+GLIBC_2.2 pthread_cancel F
+GLIBC_2.2 pthread_cond_broadcast F
+GLIBC_2.2 pthread_cond_destroy F
+GLIBC_2.2 pthread_cond_init F
+GLIBC_2.2 pthread_cond_signal F
+GLIBC_2.2 pthread_cond_timedwait F
+GLIBC_2.2 pthread_cond_wait F
+GLIBC_2.2 pthread_condattr_destroy F
+GLIBC_2.2 pthread_condattr_getpshared F
+GLIBC_2.2 pthread_condattr_init F
+GLIBC_2.2 pthread_condattr_setpshared F
+GLIBC_2.2 pthread_create F
+GLIBC_2.2 pthread_detach F
+GLIBC_2.2 pthread_exit F
+GLIBC_2.2 pthread_getconcurrency F
+GLIBC_2.2 pthread_getcpuclockid F
+GLIBC_2.2 pthread_getschedparam F
+GLIBC_2.2 pthread_getspecific F
+GLIBC_2.2 pthread_join F
+GLIBC_2.2 pthread_key_create F
+GLIBC_2.2 pthread_key_delete F
+GLIBC_2.2 pthread_kill F
+GLIBC_2.2 pthread_kill_other_threads_np F
+GLIBC_2.2 pthread_mutex_destroy F
+GLIBC_2.2 pthread_mutex_init F
+GLIBC_2.2 pthread_mutex_lock F
+GLIBC_2.2 pthread_mutex_timedlock F
+GLIBC_2.2 pthread_mutex_trylock F
+GLIBC_2.2 pthread_mutex_unlock F
+GLIBC_2.2 pthread_mutexattr_destroy F
+GLIBC_2.2 pthread_mutexattr_getkind_np F
+GLIBC_2.2 pthread_mutexattr_getpshared F
+GLIBC_2.2 pthread_mutexattr_gettype F
+GLIBC_2.2 pthread_mutexattr_init F
+GLIBC_2.2 pthread_mutexattr_setkind_np F
+GLIBC_2.2 pthread_mutexattr_setpshared F
+GLIBC_2.2 pthread_mutexattr_settype F
+GLIBC_2.2 pthread_once F
+GLIBC_2.2 pthread_rwlock_destroy F
+GLIBC_2.2 pthread_rwlock_init F
+GLIBC_2.2 pthread_rwlock_rdlock F
+GLIBC_2.2 pthread_rwlock_timedrdlock F
+GLIBC_2.2 pthread_rwlock_timedwrlock F
+GLIBC_2.2 pthread_rwlock_tryrdlock F
+GLIBC_2.2 pthread_rwlock_trywrlock F
+GLIBC_2.2 pthread_rwlock_unlock F
+GLIBC_2.2 pthread_rwlock_wrlock F
+GLIBC_2.2 pthread_rwlockattr_destroy F
+GLIBC_2.2 pthread_rwlockattr_getkind_np F
+GLIBC_2.2 pthread_rwlockattr_getpshared F
+GLIBC_2.2 pthread_rwlockattr_init F
+GLIBC_2.2 pthread_rwlockattr_setkind_np F
+GLIBC_2.2 pthread_rwlockattr_setpshared F
+GLIBC_2.2 pthread_setcancelstate F
+GLIBC_2.2 pthread_setcanceltype F
+GLIBC_2.2 pthread_setconcurrency F
+GLIBC_2.2 pthread_setschedparam F
+GLIBC_2.2 pthread_setspecific F
+GLIBC_2.2 pthread_sigmask F
+GLIBC_2.2 pthread_spin_destroy F
+GLIBC_2.2 pthread_spin_init F
+GLIBC_2.2 pthread_spin_lock F
+GLIBC_2.2 pthread_spin_trylock F
+GLIBC_2.2 pthread_spin_unlock F
+GLIBC_2.2 pthread_testcancel F
+GLIBC_2.2 pthread_yield F
+GLIBC_2.2 pwrite F
+GLIBC_2.2 pwrite64 F
+GLIBC_2.2 raise F
+GLIBC_2.2 read F
+GLIBC_2.2 recv F
+GLIBC_2.2 recvfrom F
+GLIBC_2.2 recvmsg F
+GLIBC_2.2 sem_close F
+GLIBC_2.2 sem_destroy F
+GLIBC_2.2 sem_getvalue F
+GLIBC_2.2 sem_init F
+GLIBC_2.2 sem_open F
+GLIBC_2.2 sem_post F
+GLIBC_2.2 sem_timedwait F
+GLIBC_2.2 sem_trywait F
+GLIBC_2.2 sem_unlink F
+GLIBC_2.2 sem_wait F
+GLIBC_2.2 send F
+GLIBC_2.2 sendmsg F
+GLIBC_2.2 sendto F
+GLIBC_2.2 sigaction F
+GLIBC_2.2 siglongjmp F
+GLIBC_2.2 sigwait F
+GLIBC_2.2 system F
+GLIBC_2.2 tcdrain F
+GLIBC_2.2 wait F
+GLIBC_2.2 waitpid F
+GLIBC_2.2 write F
+GLIBC_2.2.3 pthread_getattr_np F
+GLIBC_2.2.6 __libpthread_version_placeholder F
+GLIBC_2.28 call_once F
+GLIBC_2.28 cnd_broadcast F
+GLIBC_2.28 cnd_destroy F
+GLIBC_2.28 cnd_init F
+GLIBC_2.28 cnd_signal F
+GLIBC_2.28 cnd_timedwait F
+GLIBC_2.28 cnd_wait F
+GLIBC_2.28 mtx_destroy F
+GLIBC_2.28 mtx_init F
+GLIBC_2.28 mtx_lock F
+GLIBC_2.28 mtx_timedlock F
+GLIBC_2.28 mtx_trylock F
+GLIBC_2.28 mtx_unlock F
+GLIBC_2.28 thrd_create F
+GLIBC_2.28 thrd_detach F
+GLIBC_2.28 thrd_exit F
+GLIBC_2.28 thrd_join F
+GLIBC_2.28 tss_create F
+GLIBC_2.28 tss_delete F
+GLIBC_2.28 tss_get F
+GLIBC_2.28 tss_set F
+GLIBC_2.3.2 pthread_cond_broadcast F
+GLIBC_2.3.2 pthread_cond_destroy F
+GLIBC_2.3.2 pthread_cond_init F
+GLIBC_2.3.2 pthread_cond_signal F
+GLIBC_2.3.2 pthread_cond_timedwait F
+GLIBC_2.3.2 pthread_cond_wait F
+GLIBC_2.3.3 __pthread_cleanup_routine F
+GLIBC_2.3.3 __pthread_register_cancel F
+GLIBC_2.3.3 __pthread_register_cancel_defer F
+GLIBC_2.3.3 __pthread_unregister_cancel F
+GLIBC_2.3.3 __pthread_unregister_cancel_restore F
+GLIBC_2.3.3 __pthread_unwind_next F
+GLIBC_2.3.3 pthread_attr_getaffinity_np F
+GLIBC_2.3.3 pthread_attr_setaffinity_np F
+GLIBC_2.3.3 pthread_barrierattr_getpshared F
+GLIBC_2.3.3 pthread_condattr_getclock F
+GLIBC_2.3.3 pthread_condattr_setclock F
+GLIBC_2.3.3 pthread_getaffinity_np F
+GLIBC_2.3.3 pthread_setaffinity_np F
+GLIBC_2.3.3 pthread_timedjoin_np F
+GLIBC_2.3.3 pthread_tryjoin_np F
+GLIBC_2.3.4 pthread_attr_getaffinity_np F
+GLIBC_2.3.4 pthread_attr_setaffinity_np F
+GLIBC_2.3.4 pthread_getaffinity_np F
+GLIBC_2.3.4 pthread_setaffinity_np F
+GLIBC_2.3.4 pthread_setschedprio F
+GLIBC_2.30 pthread_cond_clockwait F
+GLIBC_2.30 pthread_mutex_clocklock F
+GLIBC_2.30 pthread_rwlock_clockrdlock F
+GLIBC_2.30 pthread_rwlock_clockwrlock F
+GLIBC_2.30 sem_clockwait F
+GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.4 pthread_mutex_consistent_np F
+GLIBC_2.4 pthread_mutex_getprioceiling F
+GLIBC_2.4 pthread_mutex_setprioceiling F
+GLIBC_2.4 pthread_mutexattr_getprioceiling F
+GLIBC_2.4 pthread_mutexattr_getprotocol F
+GLIBC_2.4 pthread_mutexattr_getrobust_np F
+GLIBC_2.4 pthread_mutexattr_setprioceiling F
+GLIBC_2.4 pthread_mutexattr_setprotocol F
+GLIBC_2.4 pthread_mutexattr_setrobust_np F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist b/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
new file mode 100644
index 0000000000..157a33ce35
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sh/le/libresolv.abilist
@@ -0,0 +1,96 @@
+GLIBC_2.0 __b64_ntop F
+GLIBC_2.0 __b64_pton F
+GLIBC_2.0 __dn_comp F
+GLIBC_2.0 __dn_count_labels F
+GLIBC_2.0 __dn_skipname F
+GLIBC_2.0 __fp_nquery F
+GLIBC_2.0 __fp_query F
+GLIBC_2.0 __fp_resstat F
+GLIBC_2.0 __hostalias F
+GLIBC_2.0 __loc_aton F
+GLIBC_2.0 __loc_ntoa F
+GLIBC_2.0 __p_cdname F
+GLIBC_2.0 __p_cdnname F
+GLIBC_2.0 __p_class F
+GLIBC_2.0 __p_class_syms D 0x54
+GLIBC_2.0 __p_fqname F
+GLIBC_2.0 __p_fqnname F
+GLIBC_2.0 __p_option F
+GLIBC_2.0 __p_query F
+GLIBC_2.0 __p_secstodate F
+GLIBC_2.0 __p_time F
+GLIBC_2.0 __p_type F
+GLIBC_2.0 __p_type_syms D 0x228
+GLIBC_2.0 __putlong F
+GLIBC_2.0 __putshort F
+GLIBC_2.0 __res_close F
+GLIBC_2.0 __res_dnok F
+GLIBC_2.0 __res_hnok F
+GLIBC_2.0 __res_isourserver F
+GLIBC_2.0 __res_mailok F
+GLIBC_2.0 __res_nameinquery F
+GLIBC_2.0 __res_ownok F
+GLIBC_2.0 __res_queriesmatch F
+GLIBC_2.0 __res_send F
+GLIBC_2.0 __sym_ntop F
+GLIBC_2.0 __sym_ntos F
+GLIBC_2.0 __sym_ston F
+GLIBC_2.0 _gethtbyaddr F
+GLIBC_2.0 _gethtbyname F
+GLIBC_2.0 _gethtbyname2 F
+GLIBC_2.0 _gethtent F
+GLIBC_2.0 _getlong F
+GLIBC_2.0 _getshort F
+GLIBC_2.0 _res_opcodes D 0x40
+GLIBC_2.0 _sethtent F
+GLIBC_2.0 dn_expand F
+GLIBC_2.0 inet_net_ntop F
+GLIBC_2.0 inet_net_pton F
+GLIBC_2.0 inet_neta F
+GLIBC_2.0 res_gethostbyaddr F
+GLIBC_2.0 res_gethostbyname F
+GLIBC_2.0 res_gethostbyname2 F
+GLIBC_2.0 res_mkquery F
+GLIBC_2.0 res_query F
+GLIBC_2.0 res_querydomain F
+GLIBC_2.0 res_search F
+GLIBC_2.0 res_send_setqhook F
+GLIBC_2.0 res_send_setrhook F
+GLIBC_2.2 __dn_expand F
+GLIBC_2.2 __res_hostalias F
+GLIBC_2.2 __res_mkquery F
+GLIBC_2.2 __res_nmkquery F
+GLIBC_2.2 __res_nquery F
+GLIBC_2.2 __res_nquerydomain F
+GLIBC_2.2 __res_nsearch F
+GLIBC_2.2 __res_nsend F
+GLIBC_2.2 __res_query F
+GLIBC_2.2 __res_querydomain F
+GLIBC_2.2 __res_search F
+GLIBC_2.3.2 __p_rcode F
+GLIBC_2.9 ns_datetosecs F
+GLIBC_2.9 ns_format_ttl F
+GLIBC_2.9 ns_get16 F
+GLIBC_2.9 ns_get32 F
+GLIBC_2.9 ns_initparse F
+GLIBC_2.9 ns_makecanon F
+GLIBC_2.9 ns_msg_getflag F
+GLIBC_2.9 ns_name_compress F
+GLIBC_2.9 ns_name_ntol F
+GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pack F
+GLIBC_2.9 ns_name_pton F
+GLIBC_2.9 ns_name_rollback F
+GLIBC_2.9 ns_name_skip F
+GLIBC_2.9 ns_name_uncompress F
+GLIBC_2.9 ns_name_unpack F
+GLIBC_2.9 ns_parse_ttl F
+GLIBC_2.9 ns_parserr F
+GLIBC_2.9 ns_put16 F
+GLIBC_2.9 ns_put32 F
+GLIBC_2.9 ns_samedomain F
+GLIBC_2.9 ns_samename F
+GLIBC_2.9 ns_skiprr F
+GLIBC_2.9 ns_sprintrr F
+GLIBC_2.9 ns_sprintrrf F
+GLIBC_2.9 ns_subdomain F
diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
new file mode 100644
index 0000000000..bb03781dcc
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
@@ -0,0 +1,37 @@
+GLIBC_2.1 aio_cancel F
+GLIBC_2.1 aio_cancel64 F
+GLIBC_2.1 aio_error F
+GLIBC_2.1 aio_error64 F
+GLIBC_2.1 aio_fsync F
+GLIBC_2.1 aio_fsync64 F
+GLIBC_2.1 aio_init F
+GLIBC_2.1 aio_read F
+GLIBC_2.1 aio_read64 F
+GLIBC_2.1 aio_return F
+GLIBC_2.1 aio_return64 F
+GLIBC_2.1 aio_suspend F
+GLIBC_2.1 aio_suspend64 F
+GLIBC_2.1 aio_write F
+GLIBC_2.1 aio_write64 F
+GLIBC_2.1 lio_listio F
+GLIBC_2.1 lio_listio64 F
+GLIBC_2.2 shm_open F
+GLIBC_2.2 shm_unlink F
+GLIBC_2.2 timer_create F
+GLIBC_2.2 timer_delete F
+GLIBC_2.2 timer_getoverrun F
+GLIBC_2.2 timer_gettime F
+GLIBC_2.2 timer_settime F
+GLIBC_2.3.4 mq_close F
+GLIBC_2.3.4 mq_getattr F
+GLIBC_2.3.4 mq_notify F
+GLIBC_2.3.4 mq_open F
+GLIBC_2.3.4 mq_receive F
+GLIBC_2.3.4 mq_send F
+GLIBC_2.3.4 mq_setattr F
+GLIBC_2.3.4 mq_timedreceive F
+GLIBC_2.3.4 mq_timedsend F
+GLIBC_2.3.4 mq_unlink F
+GLIBC_2.4 lio_listio F
+GLIBC_2.4 lio_listio64 F
+GLIBC_2.7 __mq_open_2 F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libthread_db.abilist b/sysdeps/unix/sysv/linux/sh/le/libthread_db.abilist
new file mode 100644
index 0000000000..2db0992737
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sh/le/libthread_db.abilist
@@ -0,0 +1,40 @@
+GLIBC_2.1.3 td_init F
+GLIBC_2.1.3 td_log F
+GLIBC_2.1.3 td_ta_clear_event F
+GLIBC_2.1.3 td_ta_delete F
+GLIBC_2.1.3 td_ta_enable_stats F
+GLIBC_2.1.3 td_ta_event_addr F
+GLIBC_2.1.3 td_ta_event_getmsg F
+GLIBC_2.1.3 td_ta_get_nthreads F
+GLIBC_2.1.3 td_ta_get_ph F
+GLIBC_2.1.3 td_ta_get_stats F
+GLIBC_2.1.3 td_ta_map_id2thr F
+GLIBC_2.1.3 td_ta_map_lwp2thr F
+GLIBC_2.1.3 td_ta_new F
+GLIBC_2.1.3 td_ta_reset_stats F
+GLIBC_2.1.3 td_ta_set_event F
+GLIBC_2.1.3 td_ta_setconcurrency F
+GLIBC_2.1.3 td_ta_thr_iter F
+GLIBC_2.1.3 td_ta_tsd_iter F
+GLIBC_2.1.3 td_thr_clear_event F
+GLIBC_2.1.3 td_thr_dbresume F
+GLIBC_2.1.3 td_thr_dbsuspend F
+GLIBC_2.1.3 td_thr_event_enable F
+GLIBC_2.1.3 td_thr_event_getmsg F
+GLIBC_2.1.3 td_thr_get_info F
+GLIBC_2.1.3 td_thr_getfpregs F
+GLIBC_2.1.3 td_thr_getgregs F
+GLIBC_2.1.3 td_thr_getxregs F
+GLIBC_2.1.3 td_thr_getxregsize F
+GLIBC_2.1.3 td_thr_set_event F
+GLIBC_2.1.3 td_thr_setfpregs F
+GLIBC_2.1.3 td_thr_setgregs F
+GLIBC_2.1.3 td_thr_setprio F
+GLIBC_2.1.3 td_thr_setsigpending F
+GLIBC_2.1.3 td_thr_setxregs F
+GLIBC_2.1.3 td_thr_sigsetmask F
+GLIBC_2.1.3 td_thr_tsd F
+GLIBC_2.1.3 td_thr_validate F
+GLIBC_2.2.3 td_symbol_list F
+GLIBC_2.3 td_thr_tls_get_addr F
+GLIBC_2.3.3 td_thr_tlsbase F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libutil.abilist b/sysdeps/unix/sysv/linux/sh/le/libutil.abilist
new file mode 100644
index 0000000000..aa2d35b323
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sh/le/libutil.abilist
@@ -0,0 +1,6 @@
+GLIBC_2.0 forkpty F
+GLIBC_2.0 login F
+GLIBC_2.0 login_tty F
+GLIBC_2.0 logout F
+GLIBC_2.0 logwtmp F
+GLIBC_2.0 openpty F
diff --git a/sysdeps/unix/sysv/linux/sh/le/sh3/Implies b/sysdeps/unix/sysv/linux/sh/le/sh3/Implies
new file mode 100644
index 0000000000..4fd2759545
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sh/le/sh3/Implies
@@ -0,0 +1 @@
+unix/sysv/linux/sh/sh3
diff --git a/sysdeps/unix/sysv/linux/sh/le/sh4/Implies b/sysdeps/unix/sysv/linux/sh/le/sh4/Implies
new file mode 100644
index 0000000000..6b55dc4084
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sh/le/sh4/Implies
@@ -0,0 +1 @@
+unix/sysv/linux/sh/sh4
diff --git a/sysdeps/unix/sysv/linux/sh/libc.abilist b/sysdeps/unix/sysv/linux/sh/libc.abilist
deleted file mode 100644
index 1f4e648baa..0000000000
--- a/sysdeps/unix/sysv/linux/sh/libc.abilist
+++ /dev/null
@@ -1,2180 +0,0 @@
-GCC_3.0 _Unwind_Find_FDE F
-GCC_3.0 __deregister_frame_info_bases F
-GCC_3.0 __register_frame_info_bases F
-GCC_3.0 __register_frame_info_table_bases F
-GLIBC_2.10 __cxa_at_quick_exit F
-GLIBC_2.10 __posix_getopt F
-GLIBC_2.10 accept4 F
-GLIBC_2.10 endsgent F
-GLIBC_2.10 fallocate F
-GLIBC_2.10 fgetsgent F
-GLIBC_2.10 fgetsgent_r F
-GLIBC_2.10 getsgent F
-GLIBC_2.10 getsgent_r F
-GLIBC_2.10 getsgnam F
-GLIBC_2.10 getsgnam_r F
-GLIBC_2.10 malloc_info F
-GLIBC_2.10 preadv F
-GLIBC_2.10 preadv64 F
-GLIBC_2.10 psiginfo F
-GLIBC_2.10 putsgent F
-GLIBC_2.10 pwritev F
-GLIBC_2.10 pwritev64 F
-GLIBC_2.10 quick_exit F
-GLIBC_2.10 register_printf_modifier F
-GLIBC_2.10 register_printf_specifier F
-GLIBC_2.10 register_printf_type F
-GLIBC_2.10 setsgent F
-GLIBC_2.10 sgetsgent F
-GLIBC_2.10 sgetsgent_r F
-GLIBC_2.11 __longjmp_chk F
-GLIBC_2.11 execvpe F
-GLIBC_2.11 fallocate64 F
-GLIBC_2.11 mkostemps F
-GLIBC_2.11 mkostemps64 F
-GLIBC_2.11 mkstemps F
-GLIBC_2.11 mkstemps64 F
-GLIBC_2.12 _sys_errlist D 0x21c
-GLIBC_2.12 _sys_nerr D 0x4
-GLIBC_2.12 ntp_gettimex F
-GLIBC_2.12 recvmmsg F
-GLIBC_2.12 sys_errlist D 0x21c
-GLIBC_2.12 sys_nerr D 0x4
-GLIBC_2.13 fanotify_init F
-GLIBC_2.13 prlimit F
-GLIBC_2.13 prlimit64 F
-GLIBC_2.14 clock_adjtime F
-GLIBC_2.14 name_to_handle_at F
-GLIBC_2.14 open_by_handle_at F
-GLIBC_2.14 sendmmsg F
-GLIBC_2.14 setns F
-GLIBC_2.14 syncfs F
-GLIBC_2.15 __fdelt_chk F
-GLIBC_2.15 __fdelt_warn F
-GLIBC_2.15 posix_spawn F
-GLIBC_2.15 posix_spawnp F
-GLIBC_2.15 process_vm_readv F
-GLIBC_2.15 process_vm_writev F
-GLIBC_2.15 scandirat F
-GLIBC_2.15 scandirat64 F
-GLIBC_2.16 __getauxval F
-GLIBC_2.16 __poll_chk F
-GLIBC_2.16 __ppoll_chk F
-GLIBC_2.16 aligned_alloc F
-GLIBC_2.16 c16rtomb F
-GLIBC_2.16 c32rtomb F
-GLIBC_2.16 fanotify_mark F
-GLIBC_2.16 getauxval F
-GLIBC_2.16 mbrtoc16 F
-GLIBC_2.16 mbrtoc32 F
-GLIBC_2.16 timespec_get F
-GLIBC_2.17 clock_getcpuclockid F
-GLIBC_2.17 clock_getres F
-GLIBC_2.17 clock_gettime F
-GLIBC_2.17 clock_nanosleep F
-GLIBC_2.17 clock_settime F
-GLIBC_2.17 secure_getenv F
-GLIBC_2.18 __cxa_thread_atexit_impl F
-GLIBC_2.2 _Exit F
-GLIBC_2.2 _IO_2_1_stderr_ D 0x98
-GLIBC_2.2 _IO_2_1_stdin_ D 0x98
-GLIBC_2.2 _IO_2_1_stdout_ D 0x98
-GLIBC_2.2 _IO_adjust_column F
-GLIBC_2.2 _IO_adjust_wcolumn F
-GLIBC_2.2 _IO_default_doallocate F
-GLIBC_2.2 _IO_default_finish F
-GLIBC_2.2 _IO_default_pbackfail F
-GLIBC_2.2 _IO_default_uflow F
-GLIBC_2.2 _IO_default_xsgetn F
-GLIBC_2.2 _IO_default_xsputn F
-GLIBC_2.2 _IO_do_write F
-GLIBC_2.2 _IO_doallocbuf F
-GLIBC_2.2 _IO_fclose F
-GLIBC_2.2 _IO_fdopen F
-GLIBC_2.2 _IO_feof F
-GLIBC_2.2 _IO_ferror F
-GLIBC_2.2 _IO_fflush F
-GLIBC_2.2 _IO_fgetpos F
-GLIBC_2.2 _IO_fgetpos64 F
-GLIBC_2.2 _IO_fgets F
-GLIBC_2.2 _IO_file_attach F
-GLIBC_2.2 _IO_file_close F
-GLIBC_2.2 _IO_file_close_it F
-GLIBC_2.2 _IO_file_doallocate F
-GLIBC_2.2 _IO_file_finish F
-GLIBC_2.2 _IO_file_fopen F
-GLIBC_2.2 _IO_file_init F
-GLIBC_2.2 _IO_file_jumps D 0x54
-GLIBC_2.2 _IO_file_open F
-GLIBC_2.2 _IO_file_overflow F
-GLIBC_2.2 _IO_file_read F
-GLIBC_2.2 _IO_file_seek F
-GLIBC_2.2 _IO_file_seekoff F
-GLIBC_2.2 _IO_file_setbuf F
-GLIBC_2.2 _IO_file_stat F
-GLIBC_2.2 _IO_file_sync F
-GLIBC_2.2 _IO_file_underflow F
-GLIBC_2.2 _IO_file_write F
-GLIBC_2.2 _IO_file_xsputn F
-GLIBC_2.2 _IO_flockfile F
-GLIBC_2.2 _IO_flush_all F
-GLIBC_2.2 _IO_flush_all_linebuffered F
-GLIBC_2.2 _IO_fopen F
-GLIBC_2.2 _IO_fprintf F
-GLIBC_2.2 _IO_fputs F
-GLIBC_2.2 _IO_fread F
-GLIBC_2.2 _IO_free_backup_area F
-GLIBC_2.2 _IO_free_wbackup_area F
-GLIBC_2.2 _IO_fsetpos F
-GLIBC_2.2 _IO_fsetpos64 F
-GLIBC_2.2 _IO_ftell F
-GLIBC_2.2 _IO_ftrylockfile F
-GLIBC_2.2 _IO_funlockfile F
-GLIBC_2.2 _IO_fwrite F
-GLIBC_2.2 _IO_getc F
-GLIBC_2.2 _IO_getline F
-GLIBC_2.2 _IO_getline_info F
-GLIBC_2.2 _IO_gets F
-GLIBC_2.2 _IO_init F
-GLIBC_2.2 _IO_init_marker F
-GLIBC_2.2 _IO_init_wmarker F
-GLIBC_2.2 _IO_iter_begin F
-GLIBC_2.2 _IO_iter_end F
-GLIBC_2.2 _IO_iter_file F
-GLIBC_2.2 _IO_iter_next F
-GLIBC_2.2 _IO_least_wmarker F
-GLIBC_2.2 _IO_link_in F
-GLIBC_2.2 _IO_list_all D 0x4
-GLIBC_2.2 _IO_list_lock F
-GLIBC_2.2 _IO_list_resetlock F
-GLIBC_2.2 _IO_list_unlock F
-GLIBC_2.2 _IO_marker_delta F
-GLIBC_2.2 _IO_marker_difference F
-GLIBC_2.2 _IO_padn F
-GLIBC_2.2 _IO_peekc_locked F
-GLIBC_2.2 _IO_popen F
-GLIBC_2.2 _IO_printf F
-GLIBC_2.2 _IO_proc_close F
-GLIBC_2.2 _IO_proc_open F
-GLIBC_2.2 _IO_putc F
-GLIBC_2.2 _IO_puts F
-GLIBC_2.2 _IO_remove_marker F
-GLIBC_2.2 _IO_seekmark F
-GLIBC_2.2 _IO_seekoff F
-GLIBC_2.2 _IO_seekpos F
-GLIBC_2.2 _IO_seekwmark F
-GLIBC_2.2 _IO_setb F
-GLIBC_2.2 _IO_setbuffer F
-GLIBC_2.2 _IO_setvbuf F
-GLIBC_2.2 _IO_sgetn F
-GLIBC_2.2 _IO_sprintf F
-GLIBC_2.2 _IO_sputbackc F
-GLIBC_2.2 _IO_sputbackwc F
-GLIBC_2.2 _IO_sscanf F
-GLIBC_2.2 _IO_str_init_readonly F
-GLIBC_2.2 _IO_str_init_static F
-GLIBC_2.2 _IO_str_overflow F
-GLIBC_2.2 _IO_str_pbackfail F
-GLIBC_2.2 _IO_str_seekoff F
-GLIBC_2.2 _IO_str_underflow F
-GLIBC_2.2 _IO_sungetc F
-GLIBC_2.2 _IO_sungetwc F
-GLIBC_2.2 _IO_switch_to_get_mode F
-GLIBC_2.2 _IO_switch_to_main_wget_area F
-GLIBC_2.2 _IO_switch_to_wbackup_area F
-GLIBC_2.2 _IO_switch_to_wget_mode F
-GLIBC_2.2 _IO_un_link F
-GLIBC_2.2 _IO_ungetc F
-GLIBC_2.2 _IO_unsave_markers F
-GLIBC_2.2 _IO_unsave_wmarkers F
-GLIBC_2.2 _IO_vfprintf F
-GLIBC_2.2 _IO_vfscanf F
-GLIBC_2.2 _IO_vsprintf F
-GLIBC_2.2 _IO_wdefault_doallocate F
-GLIBC_2.2 _IO_wdefault_finish F
-GLIBC_2.2 _IO_wdefault_pbackfail F
-GLIBC_2.2 _IO_wdefault_uflow F
-GLIBC_2.2 _IO_wdefault_xsgetn F
-GLIBC_2.2 _IO_wdefault_xsputn F
-GLIBC_2.2 _IO_wdo_write F
-GLIBC_2.2 _IO_wdoallocbuf F
-GLIBC_2.2 _IO_wfile_jumps D 0x54
-GLIBC_2.2 _IO_wfile_overflow F
-GLIBC_2.2 _IO_wfile_seekoff F
-GLIBC_2.2 _IO_wfile_sync F
-GLIBC_2.2 _IO_wfile_underflow F
-GLIBC_2.2 _IO_wfile_xsputn F
-GLIBC_2.2 _IO_wmarker_delta F
-GLIBC_2.2 _IO_wsetb F
-GLIBC_2.2 __adjtimex F
-GLIBC_2.2 __after_morecore_hook D 0x4
-GLIBC_2.2 __argz_count F
-GLIBC_2.2 __argz_next F
-GLIBC_2.2 __argz_stringify F
-GLIBC_2.2 __asprintf F
-GLIBC_2.2 __assert F
-GLIBC_2.2 __assert_fail F
-GLIBC_2.2 __assert_perror_fail F
-GLIBC_2.2 __backtrace F
-GLIBC_2.2 __backtrace_symbols F
-GLIBC_2.2 __backtrace_symbols_fd F
-GLIBC_2.2 __bsd_getpgrp F
-GLIBC_2.2 __bzero F
-GLIBC_2.2 __check_rhosts_file D 0x4
-GLIBC_2.2 __clone F
-GLIBC_2.2 __close F
-GLIBC_2.2 __cmsg_nxthdr F
-GLIBC_2.2 __connect F
-GLIBC_2.2 __ctype32_b D 0x4
-GLIBC_2.2 __ctype32_tolower D 0x4
-GLIBC_2.2 __ctype32_toupper D 0x4
-GLIBC_2.2 __ctype_b D 0x4
-GLIBC_2.2 __ctype_get_mb_cur_max F
-GLIBC_2.2 __ctype_tolower D 0x4
-GLIBC_2.2 __ctype_toupper D 0x4
-GLIBC_2.2 __curbrk D 0x4
-GLIBC_2.2 __cxa_atexit F
-GLIBC_2.2 __cxa_finalize F
-GLIBC_2.2 __cyg_profile_func_enter F
-GLIBC_2.2 __cyg_profile_func_exit F
-GLIBC_2.2 __daylight D 0x4
-GLIBC_2.2 __dcgettext F
-GLIBC_2.2 __default_morecore F
-GLIBC_2.2 __deregister_frame_info F
-GLIBC_2.2 __dgettext F
-GLIBC_2.2 __dup2 F
-GLIBC_2.2 __duplocale F
-GLIBC_2.2 __endmntent F
-GLIBC_2.2 __environ D 0x4
-GLIBC_2.2 __errno_location F
-GLIBC_2.2 __fbufsize F
-GLIBC_2.2 __fcntl F
-GLIBC_2.2 __ffs F
-GLIBC_2.2 __finite F
-GLIBC_2.2 __finitef F
-GLIBC_2.2 __finitel F
-GLIBC_2.2 __flbf F
-GLIBC_2.2 __fork F
-GLIBC_2.2 __fpending F
-GLIBC_2.2 __fpu_control D 0x4
-GLIBC_2.2 __fpurge F
-GLIBC_2.2 __freadable F
-GLIBC_2.2 __freading F
-GLIBC_2.2 __free_hook D 0x4
-GLIBC_2.2 __freelocale F
-GLIBC_2.2 __fsetlocking F
-GLIBC_2.2 __fwritable F
-GLIBC_2.2 __fwriting F
-GLIBC_2.2 __fxstat F
-GLIBC_2.2 __fxstat64 F
-GLIBC_2.2 __getdelim F
-GLIBC_2.2 __getmntent_r F
-GLIBC_2.2 __getpagesize F
-GLIBC_2.2 __getpgid F
-GLIBC_2.2 __getpid F
-GLIBC_2.2 __gettimeofday F
-GLIBC_2.2 __gmtime_r F
-GLIBC_2.2 __h_errno_location F
-GLIBC_2.2 __isalnum_l F
-GLIBC_2.2 __isalpha_l F
-GLIBC_2.2 __isascii_l F
-GLIBC_2.2 __isblank_l F
-GLIBC_2.2 __iscntrl_l F
-GLIBC_2.2 __isdigit_l F
-GLIBC_2.2 __isgraph_l F
-GLIBC_2.2 __isinf F
-GLIBC_2.2 __isinff F
-GLIBC_2.2 __isinfl F
-GLIBC_2.2 __islower_l F
-GLIBC_2.2 __isnan F
-GLIBC_2.2 __isnanf F
-GLIBC_2.2 __isnanl F
-GLIBC_2.2 __isprint_l F
-GLIBC_2.2 __ispunct_l F
-GLIBC_2.2 __isspace_l F
-GLIBC_2.2 __isupper_l F
-GLIBC_2.2 __iswalnum_l F
-GLIBC_2.2 __iswalpha_l F
-GLIBC_2.2 __iswblank_l F
-GLIBC_2.2 __iswcntrl_l F
-GLIBC_2.2 __iswctype F
-GLIBC_2.2 __iswctype_l F
-GLIBC_2.2 __iswdigit_l F
-GLIBC_2.2 __iswgraph_l F
-GLIBC_2.2 __iswlower_l F
-GLIBC_2.2 __iswprint_l F
-GLIBC_2.2 __iswpunct_l F
-GLIBC_2.2 __iswspace_l F
-GLIBC_2.2 __iswupper_l F
-GLIBC_2.2 __iswxdigit_l F
-GLIBC_2.2 __isxdigit_l F
-GLIBC_2.2 __ivaliduser F
-GLIBC_2.2 __key_decryptsession_pk_LOCAL D 0x4
-GLIBC_2.2 __key_encryptsession_pk_LOCAL D 0x4
-GLIBC_2.2 __key_gendes_LOCAL D 0x4
-GLIBC_2.2 __libc_allocate_rtsig F
-GLIBC_2.2 __libc_calloc F
-GLIBC_2.2 __libc_current_sigrtmax F
-GLIBC_2.2 __libc_current_sigrtmin F
-GLIBC_2.2 __libc_free F
-GLIBC_2.2 __libc_freeres F
-GLIBC_2.2 __libc_init_first F
-GLIBC_2.2 __libc_mallinfo F
-GLIBC_2.2 __libc_malloc F
-GLIBC_2.2 __libc_mallopt F
-GLIBC_2.2 __libc_memalign F
-GLIBC_2.2 __libc_pvalloc F
-GLIBC_2.2 __libc_realloc F
-GLIBC_2.2 __libc_sa_len F
-GLIBC_2.2 __libc_start_main F
-GLIBC_2.2 __libc_valloc F
-GLIBC_2.2 __lseek F
-GLIBC_2.2 __lxstat F
-GLIBC_2.2 __lxstat64 F
-GLIBC_2.2 __malloc_hook D 0x4
-GLIBC_2.2 __malloc_initialize_hook D 0x4
-GLIBC_2.2 __mbrlen F
-GLIBC_2.2 __mbrtowc F
-GLIBC_2.2 __memalign_hook D 0x4
-GLIBC_2.2 __mempcpy F
-GLIBC_2.2 __mempcpy_small F
-GLIBC_2.2 __monstartup F
-GLIBC_2.2 __morecore D 0x4
-GLIBC_2.2 __newlocale F
-GLIBC_2.2 __nl_langinfo_l F
-GLIBC_2.2 __nss_configure_lookup F
-GLIBC_2.2 __nss_database_lookup F
-GLIBC_2.2 __nss_group_lookup F
-GLIBC_2.2 __nss_hosts_lookup F
-GLIBC_2.2 __nss_next F
-GLIBC_2.2 __nss_passwd_lookup F
-GLIBC_2.2 __open F
-GLIBC_2.2 __open64 F
-GLIBC_2.2 __overflow F
-GLIBC_2.2 __pipe F
-GLIBC_2.2 __poll F
-GLIBC_2.2 __pread64 F
-GLIBC_2.2 __printf_fp F
-GLIBC_2.2 __profile_frequency F
-GLIBC_2.2 __progname D 0x4
-GLIBC_2.2 __progname_full D 0x4
-GLIBC_2.2 __pwrite64 F
-GLIBC_2.2 __rawmemchr F
-GLIBC_2.2 __rcmd_errstr D 0x4
-GLIBC_2.2 __read F
-GLIBC_2.2 __realloc_hook D 0x4
-GLIBC_2.2 __register_frame_info F
-GLIBC_2.2 __res_init F
-GLIBC_2.2 __res_nclose F
-GLIBC_2.2 __res_ninit F
-GLIBC_2.2 __res_randomid F
-GLIBC_2.2 __res_state F
-GLIBC_2.2 __sbrk F
-GLIBC_2.2 __sched_get_priority_max F
-GLIBC_2.2 __sched_get_priority_min F
-GLIBC_2.2 __sched_getparam F
-GLIBC_2.2 __sched_getscheduler F
-GLIBC_2.2 __sched_setscheduler F
-GLIBC_2.2 __sched_yield F
-GLIBC_2.2 __secure_getenv F
-GLIBC_2.2 __select F
-GLIBC_2.2 __send F
-GLIBC_2.2 __setmntent F
-GLIBC_2.2 __setpgid F
-GLIBC_2.2 __sigaction F
-GLIBC_2.2 __sigaddset F
-GLIBC_2.2 __sigdelset F
-GLIBC_2.2 __sigismember F
-GLIBC_2.2 __signbit F
-GLIBC_2.2 __signbitf F
-GLIBC_2.2 __sigpause F
-GLIBC_2.2 __sigsetjmp F
-GLIBC_2.2 __sigsuspend F
-GLIBC_2.2 __statfs F
-GLIBC_2.2 __stpcpy F
-GLIBC_2.2 __stpcpy_small F
-GLIBC_2.2 __stpncpy F
-GLIBC_2.2 __strcasecmp F
-GLIBC_2.2 __strcasecmp_l F
-GLIBC_2.2 __strcasestr F
-GLIBC_2.2 __strcoll_l F
-GLIBC_2.2 __strcpy_small F
-GLIBC_2.2 __strcspn_c1 F
-GLIBC_2.2 __strcspn_c2 F
-GLIBC_2.2 __strcspn_c3 F
-GLIBC_2.2 __strdup F
-GLIBC_2.2 __strerror_r F
-GLIBC_2.2 __strfmon_l F
-GLIBC_2.2 __strncasecmp_l F
-GLIBC_2.2 __strndup F
-GLIBC_2.2 __strpbrk_c2 F
-GLIBC_2.2 __strpbrk_c3 F
-GLIBC_2.2 __strsep_1c F
-GLIBC_2.2 __strsep_2c F
-GLIBC_2.2 __strsep_3c F
-GLIBC_2.2 __strsep_g F
-GLIBC_2.2 __strspn_c1 F
-GLIBC_2.2 __strspn_c2 F
-GLIBC_2.2 __strspn_c3 F
-GLIBC_2.2 __strtod_internal F
-GLIBC_2.2 __strtod_l F
-GLIBC_2.2 __strtof_internal F
-GLIBC_2.2 __strtof_l F
-GLIBC_2.2 __strtok_r F
-GLIBC_2.2 __strtok_r_1c F
-GLIBC_2.2 __strtol_internal F
-GLIBC_2.2 __strtol_l F
-GLIBC_2.2 __strtold_internal F
-GLIBC_2.2 __strtold_l F
-GLIBC_2.2 __strtoll_internal F
-GLIBC_2.2 __strtoll_l F
-GLIBC_2.2 __strtoul_internal F
-GLIBC_2.2 __strtoul_l F
-GLIBC_2.2 __strtoull_internal F
-GLIBC_2.2 __strtoull_l F
-GLIBC_2.2 __strverscmp F
-GLIBC_2.2 __strxfrm_l F
-GLIBC_2.2 __sysconf F
-GLIBC_2.2 __sysctl F
-GLIBC_2.2 __sysv_signal F
-GLIBC_2.2 __timezone D 0x4
-GLIBC_2.2 __toascii_l F
-GLIBC_2.2 __tolower_l F
-GLIBC_2.2 __toupper_l F
-GLIBC_2.2 __towctrans F
-GLIBC_2.2 __towctrans_l F
-GLIBC_2.2 __towlower_l F
-GLIBC_2.2 __towupper_l F
-GLIBC_2.2 __tzname D 0x8
-GLIBC_2.2 __uflow F
-GLIBC_2.2 __underflow F
-GLIBC_2.2 __vfork F
-GLIBC_2.2 __vfscanf F
-GLIBC_2.2 __vsnprintf F
-GLIBC_2.2 __vsscanf F
-GLIBC_2.2 __wait F
-GLIBC_2.2 __waitpid F
-GLIBC_2.2 __wcscasecmp_l F
-GLIBC_2.2 __wcscoll_l F
-GLIBC_2.2 __wcsncasecmp_l F
-GLIBC_2.2 __wcstod_internal F
-GLIBC_2.2 __wcstod_l F
-GLIBC_2.2 __wcstof_internal F
-GLIBC_2.2 __wcstof_l F
-GLIBC_2.2 __wcstol_internal F
-GLIBC_2.2 __wcstol_l F
-GLIBC_2.2 __wcstold_internal F
-GLIBC_2.2 __wcstold_l F
-GLIBC_2.2 __wcstoll_internal F
-GLIBC_2.2 __wcstoll_l F
-GLIBC_2.2 __wcstoul_internal F
-GLIBC_2.2 __wcstoul_l F
-GLIBC_2.2 __wcstoull_internal F
-GLIBC_2.2 __wcstoull_l F
-GLIBC_2.2 __wcsxfrm_l F
-GLIBC_2.2 __wctrans_l F
-GLIBC_2.2 __wctype_l F
-GLIBC_2.2 __woverflow F
-GLIBC_2.2 __write F
-GLIBC_2.2 __wuflow F
-GLIBC_2.2 __wunderflow F
-GLIBC_2.2 __xmknod F
-GLIBC_2.2 __xpg_basename F
-GLIBC_2.2 __xpg_sigpause F
-GLIBC_2.2 __xstat F
-GLIBC_2.2 __xstat64 F
-GLIBC_2.2 _authenticate F
-GLIBC_2.2 _dl_mcount_wrapper F
-GLIBC_2.2 _dl_mcount_wrapper_check F
-GLIBC_2.2 _environ D 0x4
-GLIBC_2.2 _exit F
-GLIBC_2.2 _flushlbf F
-GLIBC_2.2 _libc_intl_domainname D 0x5
-GLIBC_2.2 _longjmp F
-GLIBC_2.2 _mcleanup F
-GLIBC_2.2 _mcount F
-GLIBC_2.2 _nl_default_dirname D 0x12
-GLIBC_2.2 _nl_domain_bindings D 0x4
-GLIBC_2.2 _nl_msg_cat_cntr D 0x4
-GLIBC_2.2 _null_auth D 0xc
-GLIBC_2.2 _obstack D 0x4
-GLIBC_2.2 _obstack_allocated_p F
-GLIBC_2.2 _obstack_begin F
-GLIBC_2.2 _obstack_begin_1 F
-GLIBC_2.2 _obstack_free F
-GLIBC_2.2 _obstack_memory_used F
-GLIBC_2.2 _obstack_newchunk F
-GLIBC_2.2 _res D 0x200
-GLIBC_2.2 _res_hconf D 0x30
-GLIBC_2.2 _rpc_dtablesize F
-GLIBC_2.2 _seterr_reply F
-GLIBC_2.2 _setjmp F
-GLIBC_2.2 _sys_errlist D 0x1f4
-GLIBC_2.2 _sys_nerr D 0x4
-GLIBC_2.2 _sys_siglist D 0x100
-GLIBC_2.2 _tolower F
-GLIBC_2.2 _toupper F
-GLIBC_2.2 a64l F
-GLIBC_2.2 abort F
-GLIBC_2.2 abs F
-GLIBC_2.2 accept F
-GLIBC_2.2 access F
-GLIBC_2.2 acct F
-GLIBC_2.2 addmntent F
-GLIBC_2.2 addseverity F
-GLIBC_2.2 adjtime F
-GLIBC_2.2 adjtimex F
-GLIBC_2.2 advance F
-GLIBC_2.2 alarm F
-GLIBC_2.2 alphasort F
-GLIBC_2.2 alphasort64 F
-GLIBC_2.2 argp_err_exit_status D 0x4
-GLIBC_2.2 argp_error F
-GLIBC_2.2 argp_failure F
-GLIBC_2.2 argp_help F
-GLIBC_2.2 argp_parse F
-GLIBC_2.2 argp_program_bug_address D 0x4
-GLIBC_2.2 argp_program_version D 0x4
-GLIBC_2.2 argp_program_version_hook D 0x4
-GLIBC_2.2 argp_state_help F
-GLIBC_2.2 argp_usage F
-GLIBC_2.2 argz_add F
-GLIBC_2.2 argz_add_sep F
-GLIBC_2.2 argz_append F
-GLIBC_2.2 argz_count F
-GLIBC_2.2 argz_create F
-GLIBC_2.2 argz_create_sep F
-GLIBC_2.2 argz_delete F
-GLIBC_2.2 argz_extract F
-GLIBC_2.2 argz_insert F
-GLIBC_2.2 argz_next F
-GLIBC_2.2 argz_replace F
-GLIBC_2.2 argz_stringify F
-GLIBC_2.2 asctime F
-GLIBC_2.2 asctime_r F
-GLIBC_2.2 asprintf F
-GLIBC_2.2 atexit F
-GLIBC_2.2 atof F
-GLIBC_2.2 atoi F
-GLIBC_2.2 atol F
-GLIBC_2.2 atoll F
-GLIBC_2.2 authdes_create F
-GLIBC_2.2 authdes_getucred F
-GLIBC_2.2 authdes_pk_create F
-GLIBC_2.2 authnone_create F
-GLIBC_2.2 authunix_create F
-GLIBC_2.2 authunix_create_default F
-GLIBC_2.2 backtrace F
-GLIBC_2.2 backtrace_symbols F
-GLIBC_2.2 backtrace_symbols_fd F
-GLIBC_2.2 basename F
-GLIBC_2.2 bcmp F
-GLIBC_2.2 bcopy F
-GLIBC_2.2 bdflush F
-GLIBC_2.2 bind F
-GLIBC_2.2 bind_textdomain_codeset F
-GLIBC_2.2 bindresvport F
-GLIBC_2.2 bindtextdomain F
-GLIBC_2.2 brk F
-GLIBC_2.2 bsd_signal F
-GLIBC_2.2 bsearch F
-GLIBC_2.2 btowc F
-GLIBC_2.2 bzero F
-GLIBC_2.2 calloc F
-GLIBC_2.2 callrpc F
-GLIBC_2.2 canonicalize_file_name F
-GLIBC_2.2 capget F
-GLIBC_2.2 capset F
-GLIBC_2.2 catclose F
-GLIBC_2.2 catgets F
-GLIBC_2.2 catopen F
-GLIBC_2.2 cbc_crypt F
-GLIBC_2.2 cfgetispeed F
-GLIBC_2.2 cfgetospeed F
-GLIBC_2.2 cfmakeraw F
-GLIBC_2.2 cfree F
-GLIBC_2.2 cfsetispeed F
-GLIBC_2.2 cfsetospeed F
-GLIBC_2.2 cfsetspeed F
-GLIBC_2.2 chdir F
-GLIBC_2.2 chflags F
-GLIBC_2.2 chmod F
-GLIBC_2.2 chown F
-GLIBC_2.2 chroot F
-GLIBC_2.2 clearenv F
-GLIBC_2.2 clearerr F
-GLIBC_2.2 clearerr_unlocked F
-GLIBC_2.2 clnt_broadcast F
-GLIBC_2.2 clnt_create F
-GLIBC_2.2 clnt_pcreateerror F
-GLIBC_2.2 clnt_perrno F
-GLIBC_2.2 clnt_perror F
-GLIBC_2.2 clnt_spcreateerror F
-GLIBC_2.2 clnt_sperrno F
-GLIBC_2.2 clnt_sperror F
-GLIBC_2.2 clntraw_create F
-GLIBC_2.2 clnttcp_create F
-GLIBC_2.2 clntudp_bufcreate F
-GLIBC_2.2 clntudp_create F
-GLIBC_2.2 clntunix_create F
-GLIBC_2.2 clock F
-GLIBC_2.2 clone F
-GLIBC_2.2 close F
-GLIBC_2.2 closedir F
-GLIBC_2.2 closelog F
-GLIBC_2.2 confstr F
-GLIBC_2.2 connect F
-GLIBC_2.2 copysign F
-GLIBC_2.2 copysignf F
-GLIBC_2.2 copysignl F
-GLIBC_2.2 creat F
-GLIBC_2.2 creat64 F
-GLIBC_2.2 create_module F
-GLIBC_2.2 ctermid F
-GLIBC_2.2 ctime F
-GLIBC_2.2 ctime_r F
-GLIBC_2.2 cuserid F
-GLIBC_2.2 daemon F
-GLIBC_2.2 daylight D 0x4
-GLIBC_2.2 dcgettext F
-GLIBC_2.2 dcngettext F
-GLIBC_2.2 delete_module F
-GLIBC_2.2 des_setparity F
-GLIBC_2.2 dgettext F
-GLIBC_2.2 difftime F
-GLIBC_2.2 dirfd F
-GLIBC_2.2 dirname F
-GLIBC_2.2 div F
-GLIBC_2.2 dngettext F
-GLIBC_2.2 dprintf F
-GLIBC_2.2 drand48 F
-GLIBC_2.2 drand48_r F
-GLIBC_2.2 dup F
-GLIBC_2.2 dup2 F
-GLIBC_2.2 dysize F
-GLIBC_2.2 ecb_crypt F
-GLIBC_2.2 ecvt F
-GLIBC_2.2 ecvt_r F
-GLIBC_2.2 endaliasent F
-GLIBC_2.2 endfsent F
-GLIBC_2.2 endgrent F
-GLIBC_2.2 endhostent F
-GLIBC_2.2 endmntent F
-GLIBC_2.2 endnetent F
-GLIBC_2.2 endnetgrent F
-GLIBC_2.2 endprotoent F
-GLIBC_2.2 endpwent F
-GLIBC_2.2 endrpcent F
-GLIBC_2.2 endservent F
-GLIBC_2.2 endspent F
-GLIBC_2.2 endttyent F
-GLIBC_2.2 endusershell F
-GLIBC_2.2 endutent F
-GLIBC_2.2 endutxent F
-GLIBC_2.2 environ D 0x4
-GLIBC_2.2 envz_add F
-GLIBC_2.2 envz_entry F
-GLIBC_2.2 envz_get F
-GLIBC_2.2 envz_merge F
-GLIBC_2.2 envz_remove F
-GLIBC_2.2 envz_strip F
-GLIBC_2.2 erand48 F
-GLIBC_2.2 erand48_r F
-GLIBC_2.2 err F
-GLIBC_2.2 error F
-GLIBC_2.2 error_at_line F
-GLIBC_2.2 error_message_count D 0x4
-GLIBC_2.2 error_one_per_line D 0x4
-GLIBC_2.2 error_print_progname D 0x4
-GLIBC_2.2 errx F
-GLIBC_2.2 ether_aton F
-GLIBC_2.2 ether_aton_r F
-GLIBC_2.2 ether_hostton F
-GLIBC_2.2 ether_line F
-GLIBC_2.2 ether_ntoa F
-GLIBC_2.2 ether_ntoa_r F
-GLIBC_2.2 ether_ntohost F
-GLIBC_2.2 euidaccess F
-GLIBC_2.2 execl F
-GLIBC_2.2 execle F
-GLIBC_2.2 execlp F
-GLIBC_2.2 execv F
-GLIBC_2.2 execve F
-GLIBC_2.2 execvp F
-GLIBC_2.2 exit F
-GLIBC_2.2 fattach F
-GLIBC_2.2 fchdir F
-GLIBC_2.2 fchflags F
-GLIBC_2.2 fchmod F
-GLIBC_2.2 fchown F
-GLIBC_2.2 fclose F
-GLIBC_2.2 fcloseall F
-GLIBC_2.2 fcntl F
-GLIBC_2.2 fcvt F
-GLIBC_2.2 fcvt_r F
-GLIBC_2.2 fdatasync F
-GLIBC_2.2 fdetach F
-GLIBC_2.2 fdopen F
-GLIBC_2.2 feof F
-GLIBC_2.2 feof_unlocked F
-GLIBC_2.2 ferror F
-GLIBC_2.2 ferror_unlocked F
-GLIBC_2.2 fexecve F
-GLIBC_2.2 fflush F
-GLIBC_2.2 fflush_unlocked F
-GLIBC_2.2 ffs F
-GLIBC_2.2 ffsl F
-GLIBC_2.2 ffsll F
-GLIBC_2.2 fgetc F
-GLIBC_2.2 fgetc_unlocked F
-GLIBC_2.2 fgetgrent F
-GLIBC_2.2 fgetgrent_r F
-GLIBC_2.2 fgetpos F
-GLIBC_2.2 fgetpos64 F
-GLIBC_2.2 fgetpwent F
-GLIBC_2.2 fgetpwent_r F
-GLIBC_2.2 fgets F
-GLIBC_2.2 fgets_unlocked F
-GLIBC_2.2 fgetspent F
-GLIBC_2.2 fgetspent_r F
-GLIBC_2.2 fgetwc F
-GLIBC_2.2 fgetwc_unlocked F
-GLIBC_2.2 fgetws F
-GLIBC_2.2 fgetws_unlocked F
-GLIBC_2.2 fileno F
-GLIBC_2.2 fileno_unlocked F
-GLIBC_2.2 finite F
-GLIBC_2.2 finitef F
-GLIBC_2.2 finitel F
-GLIBC_2.2 flock F
-GLIBC_2.2 flockfile F
-GLIBC_2.2 fmemopen F
-GLIBC_2.2 fmtmsg F
-GLIBC_2.2 fnmatch F
-GLIBC_2.2 fopen F
-GLIBC_2.2 fopen64 F
-GLIBC_2.2 fopencookie F
-GLIBC_2.2 fork F
-GLIBC_2.2 fpathconf F
-GLIBC_2.2 fprintf F
-GLIBC_2.2 fputc F
-GLIBC_2.2 fputc_unlocked F
-GLIBC_2.2 fputs F
-GLIBC_2.2 fputs_unlocked F
-GLIBC_2.2 fputwc F
-GLIBC_2.2 fputwc_unlocked F
-GLIBC_2.2 fputws F
-GLIBC_2.2 fputws_unlocked F
-GLIBC_2.2 fread F
-GLIBC_2.2 fread_unlocked F
-GLIBC_2.2 free F
-GLIBC_2.2 freeaddrinfo F
-GLIBC_2.2 freopen F
-GLIBC_2.2 freopen64 F
-GLIBC_2.2 frexp F
-GLIBC_2.2 frexpf F
-GLIBC_2.2 frexpl F
-GLIBC_2.2 fscanf F
-GLIBC_2.2 fseek F
-GLIBC_2.2 fseeko F
-GLIBC_2.2 fseeko64 F
-GLIBC_2.2 fsetpos F
-GLIBC_2.2 fsetpos64 F
-GLIBC_2.2 fstatfs F
-GLIBC_2.2 fstatfs64 F
-GLIBC_2.2 fstatvfs F
-GLIBC_2.2 fstatvfs64 F
-GLIBC_2.2 fsync F
-GLIBC_2.2 ftell F
-GLIBC_2.2 ftello F
-GLIBC_2.2 ftello64 F
-GLIBC_2.2 ftime F
-GLIBC_2.2 ftok F
-GLIBC_2.2 ftruncate F
-GLIBC_2.2 ftruncate64 F
-GLIBC_2.2 ftrylockfile F
-GLIBC_2.2 fts_children F
-GLIBC_2.2 fts_close F
-GLIBC_2.2 fts_open F
-GLIBC_2.2 fts_read F
-GLIBC_2.2 fts_set F
-GLIBC_2.2 ftw F
-GLIBC_2.2 ftw64 F
-GLIBC_2.2 funlockfile F
-GLIBC_2.2 fwide F
-GLIBC_2.2 fwprintf F
-GLIBC_2.2 fwrite F
-GLIBC_2.2 fwrite_unlocked F
-GLIBC_2.2 fwscanf F
-GLIBC_2.2 gai_strerror F
-GLIBC_2.2 gcvt F
-GLIBC_2.2 get_avphys_pages F
-GLIBC_2.2 get_current_dir_name F
-GLIBC_2.2 get_kernel_syms F
-GLIBC_2.2 get_myaddress F
-GLIBC_2.2 get_nprocs F
-GLIBC_2.2 get_nprocs_conf F
-GLIBC_2.2 get_phys_pages F
-GLIBC_2.2 getaddrinfo F
-GLIBC_2.2 getaliasbyname F
-GLIBC_2.2 getaliasbyname_r F
-GLIBC_2.2 getaliasent F
-GLIBC_2.2 getaliasent_r F
-GLIBC_2.2 getc F
-GLIBC_2.2 getc_unlocked F
-GLIBC_2.2 getchar F
-GLIBC_2.2 getchar_unlocked F
-GLIBC_2.2 getcontext F
-GLIBC_2.2 getcwd F
-GLIBC_2.2 getdate F
-GLIBC_2.2 getdate_err D 0x4
-GLIBC_2.2 getdate_r F
-GLIBC_2.2 getdelim F
-GLIBC_2.2 getdirentries F
-GLIBC_2.2 getdirentries64 F
-GLIBC_2.2 getdomainname F
-GLIBC_2.2 getdtablesize F
-GLIBC_2.2 getegid F
-GLIBC_2.2 getenv F
-GLIBC_2.2 geteuid F
-GLIBC_2.2 getfsent F
-GLIBC_2.2 getfsfile F
-GLIBC_2.2 getfsspec F
-GLIBC_2.2 getgid F
-GLIBC_2.2 getgrent F
-GLIBC_2.2 getgrent_r F
-GLIBC_2.2 getgrgid F
-GLIBC_2.2 getgrgid_r F
-GLIBC_2.2 getgrnam F
-GLIBC_2.2 getgrnam_r F
-GLIBC_2.2 getgroups F
-GLIBC_2.2 gethostbyaddr F
-GLIBC_2.2 gethostbyaddr_r F
-GLIBC_2.2 gethostbyname F
-GLIBC_2.2 gethostbyname2 F
-GLIBC_2.2 gethostbyname2_r F
-GLIBC_2.2 gethostbyname_r F
-GLIBC_2.2 gethostent F
-GLIBC_2.2 gethostent_r F
-GLIBC_2.2 gethostid F
-GLIBC_2.2 gethostname F
-GLIBC_2.2 getitimer F
-GLIBC_2.2 getline F
-GLIBC_2.2 getloadavg F
-GLIBC_2.2 getlogin F
-GLIBC_2.2 getlogin_r F
-GLIBC_2.2 getmntent F
-GLIBC_2.2 getmntent_r F
-GLIBC_2.2 getmsg F
-GLIBC_2.2 getnameinfo F
-GLIBC_2.2 getnetbyaddr F
-GLIBC_2.2 getnetbyaddr_r F
-GLIBC_2.2 getnetbyname F
-GLIBC_2.2 getnetbyname_r F
-GLIBC_2.2 getnetent F
-GLIBC_2.2 getnetent_r F
-GLIBC_2.2 getnetgrent F
-GLIBC_2.2 getnetgrent_r F
-GLIBC_2.2 getnetname F
-GLIBC_2.2 getopt F
-GLIBC_2.2 getopt_long F
-GLIBC_2.2 getopt_long_only F
-GLIBC_2.2 getpagesize F
-GLIBC_2.2 getpass F
-GLIBC_2.2 getpeername F
-GLIBC_2.2 getpgid F
-GLIBC_2.2 getpgrp F
-GLIBC_2.2 getpid F
-GLIBC_2.2 getpmsg F
-GLIBC_2.2 getppid F
-GLIBC_2.2 getpriority F
-GLIBC_2.2 getprotobyname F
-GLIBC_2.2 getprotobyname_r F
-GLIBC_2.2 getprotobynumber F
-GLIBC_2.2 getprotobynumber_r F
-GLIBC_2.2 getprotoent F
-GLIBC_2.2 getprotoent_r F
-GLIBC_2.2 getpt F
-GLIBC_2.2 getpublickey F
-GLIBC_2.2 getpw F
-GLIBC_2.2 getpwent F
-GLIBC_2.2 getpwent_r F
-GLIBC_2.2 getpwnam F
-GLIBC_2.2 getpwnam_r F
-GLIBC_2.2 getpwuid F
-GLIBC_2.2 getpwuid_r F
-GLIBC_2.2 getresgid F
-GLIBC_2.2 getresuid F
-GLIBC_2.2 getrlimit F
-GLIBC_2.2 getrlimit64 F
-GLIBC_2.2 getrpcbyname F
-GLIBC_2.2 getrpcbyname_r F
-GLIBC_2.2 getrpcbynumber F
-GLIBC_2.2 getrpcbynumber_r F
-GLIBC_2.2 getrpcent F
-GLIBC_2.2 getrpcent_r F
-GLIBC_2.2 getrpcport F
-GLIBC_2.2 getrusage F
-GLIBC_2.2 gets F
-GLIBC_2.2 getsecretkey F
-GLIBC_2.2 getservbyname F
-GLIBC_2.2 getservbyname_r F
-GLIBC_2.2 getservbyport F
-GLIBC_2.2 getservbyport_r F
-GLIBC_2.2 getservent F
-GLIBC_2.2 getservent_r F
-GLIBC_2.2 getsid F
-GLIBC_2.2 getsockname F
-GLIBC_2.2 getsockopt F
-GLIBC_2.2 getspent F
-GLIBC_2.2 getspent_r F
-GLIBC_2.2 getspnam F
-GLIBC_2.2 getspnam_r F
-GLIBC_2.2 getsubopt F
-GLIBC_2.2 gettext F
-GLIBC_2.2 gettimeofday F
-GLIBC_2.2 getttyent F
-GLIBC_2.2 getttynam F
-GLIBC_2.2 getuid F
-GLIBC_2.2 getusershell F
-GLIBC_2.2 getutent F
-GLIBC_2.2 getutent_r F
-GLIBC_2.2 getutid F
-GLIBC_2.2 getutid_r F
-GLIBC_2.2 getutline F
-GLIBC_2.2 getutline_r F
-GLIBC_2.2 getutmp F
-GLIBC_2.2 getutmpx F
-GLIBC_2.2 getutxent F
-GLIBC_2.2 getutxid F
-GLIBC_2.2 getutxline F
-GLIBC_2.2 getw F
-GLIBC_2.2 getwc F
-GLIBC_2.2 getwc_unlocked F
-GLIBC_2.2 getwchar F
-GLIBC_2.2 getwchar_unlocked F
-GLIBC_2.2 getwd F
-GLIBC_2.2 glob F
-GLIBC_2.2 glob64 F
-GLIBC_2.2 glob_pattern_p F
-GLIBC_2.2 globfree F
-GLIBC_2.2 globfree64 F
-GLIBC_2.2 gmtime F
-GLIBC_2.2 gmtime_r F
-GLIBC_2.2 gnu_get_libc_release F
-GLIBC_2.2 gnu_get_libc_version F
-GLIBC_2.2 grantpt F
-GLIBC_2.2 group_member F
-GLIBC_2.2 gsignal F
-GLIBC_2.2 gtty F
-GLIBC_2.2 h_errlist D 0x14
-GLIBC_2.2 h_nerr D 0x4
-GLIBC_2.2 hasmntopt F
-GLIBC_2.2 hcreate F
-GLIBC_2.2 hcreate_r F
-GLIBC_2.2 hdestroy F
-GLIBC_2.2 hdestroy_r F
-GLIBC_2.2 herror F
-GLIBC_2.2 host2netname F
-GLIBC_2.2 hsearch F
-GLIBC_2.2 hsearch_r F
-GLIBC_2.2 hstrerror F
-GLIBC_2.2 htonl F
-GLIBC_2.2 htons F
-GLIBC_2.2 iconv F
-GLIBC_2.2 iconv_close F
-GLIBC_2.2 iconv_open F
-GLIBC_2.2 if_freenameindex F
-GLIBC_2.2 if_indextoname F
-GLIBC_2.2 if_nameindex F
-GLIBC_2.2 if_nametoindex F
-GLIBC_2.2 imaxabs F
-GLIBC_2.2 imaxdiv F
-GLIBC_2.2 in6addr_any D 0x10
-GLIBC_2.2 in6addr_loopback D 0x10
-GLIBC_2.2 index F
-GLIBC_2.2 inet_addr F
-GLIBC_2.2 inet_aton F
-GLIBC_2.2 inet_lnaof F
-GLIBC_2.2 inet_makeaddr F
-GLIBC_2.2 inet_netof F
-GLIBC_2.2 inet_network F
-GLIBC_2.2 inet_nsap_addr F
-GLIBC_2.2 inet_nsap_ntoa F
-GLIBC_2.2 inet_ntoa F
-GLIBC_2.2 inet_ntop F
-GLIBC_2.2 inet_pton F
-GLIBC_2.2 init_module F
-GLIBC_2.2 initgroups F
-GLIBC_2.2 initstate F
-GLIBC_2.2 initstate_r F
-GLIBC_2.2 innetgr F
-GLIBC_2.2 insque F
-GLIBC_2.2 ioctl F
-GLIBC_2.2 iruserok F
-GLIBC_2.2 iruserok_af F
-GLIBC_2.2 isalnum F
-GLIBC_2.2 isalpha F
-GLIBC_2.2 isascii F
-GLIBC_2.2 isastream F
-GLIBC_2.2 isatty F
-GLIBC_2.2 isblank F
-GLIBC_2.2 iscntrl F
-GLIBC_2.2 isdigit F
-GLIBC_2.2 isfdtype F
-GLIBC_2.2 isgraph F
-GLIBC_2.2 isinf F
-GLIBC_2.2 isinff F
-GLIBC_2.2 isinfl F
-GLIBC_2.2 islower F
-GLIBC_2.2 isnan F
-GLIBC_2.2 isnanf F
-GLIBC_2.2 isnanl F
-GLIBC_2.2 isprint F
-GLIBC_2.2 ispunct F
-GLIBC_2.2 isspace F
-GLIBC_2.2 isupper F
-GLIBC_2.2 iswalnum F
-GLIBC_2.2 iswalpha F
-GLIBC_2.2 iswblank F
-GLIBC_2.2 iswcntrl F
-GLIBC_2.2 iswctype F
-GLIBC_2.2 iswdigit F
-GLIBC_2.2 iswgraph F
-GLIBC_2.2 iswlower F
-GLIBC_2.2 iswprint F
-GLIBC_2.2 iswpunct F
-GLIBC_2.2 iswspace F
-GLIBC_2.2 iswupper F
-GLIBC_2.2 iswxdigit F
-GLIBC_2.2 isxdigit F
-GLIBC_2.2 jrand48 F
-GLIBC_2.2 jrand48_r F
-GLIBC_2.2 key_decryptsession F
-GLIBC_2.2 key_decryptsession_pk F
-GLIBC_2.2 key_encryptsession F
-GLIBC_2.2 key_encryptsession_pk F
-GLIBC_2.2 key_gendes F
-GLIBC_2.2 key_get_conv F
-GLIBC_2.2 key_secretkey_is_set F
-GLIBC_2.2 key_setnet F
-GLIBC_2.2 key_setsecret F
-GLIBC_2.2 kill F
-GLIBC_2.2 killpg F
-GLIBC_2.2 klogctl F
-GLIBC_2.2 l64a F
-GLIBC_2.2 labs F
-GLIBC_2.2 lchown F
-GLIBC_2.2 lckpwdf F
-GLIBC_2.2 lcong48 F
-GLIBC_2.2 lcong48_r F
-GLIBC_2.2 ldexp F
-GLIBC_2.2 ldexpf F
-GLIBC_2.2 ldexpl F
-GLIBC_2.2 ldiv F
-GLIBC_2.2 lfind F
-GLIBC_2.2 link F
-GLIBC_2.2 listen F
-GLIBC_2.2 llabs F
-GLIBC_2.2 lldiv F
-GLIBC_2.2 llseek F
-GLIBC_2.2 loc1 D 0x4
-GLIBC_2.2 loc2 D 0x4
-GLIBC_2.2 localeconv F
-GLIBC_2.2 localtime F
-GLIBC_2.2 localtime_r F
-GLIBC_2.2 lockf F
-GLIBC_2.2 lockf64 F
-GLIBC_2.2 locs D 0x4
-GLIBC_2.2 longjmp F
-GLIBC_2.2 lrand48 F
-GLIBC_2.2 lrand48_r F
-GLIBC_2.2 lsearch F
-GLIBC_2.2 lseek F
-GLIBC_2.2 lseek64 F
-GLIBC_2.2 madvise F
-GLIBC_2.2 makecontext F
-GLIBC_2.2 mallinfo F
-GLIBC_2.2 malloc F
-GLIBC_2.2 malloc_get_state F
-GLIBC_2.2 malloc_set_state F
-GLIBC_2.2 malloc_stats F
-GLIBC_2.2 malloc_trim F
-GLIBC_2.2 malloc_usable_size F
-GLIBC_2.2 mallopt F
-GLIBC_2.2 mallwatch D 0x4
-GLIBC_2.2 mblen F
-GLIBC_2.2 mbrlen F
-GLIBC_2.2 mbrtowc F
-GLIBC_2.2 mbsinit F
-GLIBC_2.2 mbsnrtowcs F
-GLIBC_2.2 mbsrtowcs F
-GLIBC_2.2 mbstowcs F
-GLIBC_2.2 mbtowc F
-GLIBC_2.2 mcheck F
-GLIBC_2.2 mcheck_check_all F
-GLIBC_2.2 mcheck_pedantic F
-GLIBC_2.2 mcount F
-GLIBC_2.2 memalign F
-GLIBC_2.2 memccpy F
-GLIBC_2.2 memchr F
-GLIBC_2.2 memcmp F
-GLIBC_2.2 memcpy F
-GLIBC_2.2 memfrob F
-GLIBC_2.2 memmem F
-GLIBC_2.2 memmove F
-GLIBC_2.2 mempcpy F
-GLIBC_2.2 memrchr F
-GLIBC_2.2 memset F
-GLIBC_2.2 mincore F
-GLIBC_2.2 mkdir F
-GLIBC_2.2 mkdtemp F
-GLIBC_2.2 mkfifo F
-GLIBC_2.2 mkstemp F
-GLIBC_2.2 mkstemp64 F
-GLIBC_2.2 mktemp F
-GLIBC_2.2 mktime F
-GLIBC_2.2 mlock F
-GLIBC_2.2 mlockall F
-GLIBC_2.2 mmap F
-GLIBC_2.2 mmap64 F
-GLIBC_2.2 modf F
-GLIBC_2.2 modff F
-GLIBC_2.2 modfl F
-GLIBC_2.2 moncontrol F
-GLIBC_2.2 monstartup F
-GLIBC_2.2 mount F
-GLIBC_2.2 mprobe F
-GLIBC_2.2 mprotect F
-GLIBC_2.2 mrand48 F
-GLIBC_2.2 mrand48_r F
-GLIBC_2.2 mremap F
-GLIBC_2.2 msgctl F
-GLIBC_2.2 msgget F
-GLIBC_2.2 msgrcv F
-GLIBC_2.2 msgsnd F
-GLIBC_2.2 msync F
-GLIBC_2.2 mtrace F
-GLIBC_2.2 munlock F
-GLIBC_2.2 munlockall F
-GLIBC_2.2 munmap F
-GLIBC_2.2 muntrace F
-GLIBC_2.2 nanosleep F
-GLIBC_2.2 netname2host F
-GLIBC_2.2 netname2user F
-GLIBC_2.2 nfsservctl F
-GLIBC_2.2 nftw F
-GLIBC_2.2 nftw64 F
-GLIBC_2.2 ngettext F
-GLIBC_2.2 nice F
-GLIBC_2.2 nl_langinfo F
-GLIBC_2.2 nrand48 F
-GLIBC_2.2 nrand48_r F
-GLIBC_2.2 ntohl F
-GLIBC_2.2 ntohs F
-GLIBC_2.2 ntp_adjtime F
-GLIBC_2.2 ntp_gettime F
-GLIBC_2.2 obstack_alloc_failed_handler D 0x4
-GLIBC_2.2 obstack_exit_failure D 0x4
-GLIBC_2.2 obstack_free F
-GLIBC_2.2 obstack_printf F
-GLIBC_2.2 obstack_vprintf F
-GLIBC_2.2 on_exit F
-GLIBC_2.2 open F
-GLIBC_2.2 open64 F
-GLIBC_2.2 open_memstream F
-GLIBC_2.2 opendir F
-GLIBC_2.2 openlog F
-GLIBC_2.2 optarg D 0x4
-GLIBC_2.2 opterr D 0x4
-GLIBC_2.2 optind D 0x4
-GLIBC_2.2 optopt D 0x4
-GLIBC_2.2 parse_printf_format F
-GLIBC_2.2 passwd2des F
-GLIBC_2.2 pathconf F
-GLIBC_2.2 pause F
-GLIBC_2.2 pclose F
-GLIBC_2.2 perror F
-GLIBC_2.2 personality F
-GLIBC_2.2 pipe F
-GLIBC_2.2 pmap_getmaps F
-GLIBC_2.2 pmap_getport F
-GLIBC_2.2 pmap_rmtcall F
-GLIBC_2.2 pmap_set F
-GLIBC_2.2 pmap_unset F
-GLIBC_2.2 poll F
-GLIBC_2.2 popen F
-GLIBC_2.2 posix_fadvise F
-GLIBC_2.2 posix_fadvise64 F
-GLIBC_2.2 posix_fallocate F
-GLIBC_2.2 posix_fallocate64 F
-GLIBC_2.2 posix_madvise F
-GLIBC_2.2 posix_memalign F
-GLIBC_2.2 posix_spawn F
-GLIBC_2.2 posix_spawn_file_actions_addclose F
-GLIBC_2.2 posix_spawn_file_actions_adddup2 F
-GLIBC_2.2 posix_spawn_file_actions_addopen F
-GLIBC_2.2 posix_spawn_file_actions_destroy F
-GLIBC_2.2 posix_spawn_file_actions_init F
-GLIBC_2.2 posix_spawnattr_destroy F
-GLIBC_2.2 posix_spawnattr_getflags F
-GLIBC_2.2 posix_spawnattr_getpgroup F
-GLIBC_2.2 posix_spawnattr_getschedparam F
-GLIBC_2.2 posix_spawnattr_getschedpolicy F
-GLIBC_2.2 posix_spawnattr_getsigdefault F
-GLIBC_2.2 posix_spawnattr_getsigmask F
-GLIBC_2.2 posix_spawnattr_init F
-GLIBC_2.2 posix_spawnattr_setflags F
-GLIBC_2.2 posix_spawnattr_setpgroup F
-GLIBC_2.2 posix_spawnattr_setschedparam F
-GLIBC_2.2 posix_spawnattr_setschedpolicy F
-GLIBC_2.2 posix_spawnattr_setsigdefault F
-GLIBC_2.2 posix_spawnattr_setsigmask F
-GLIBC_2.2 posix_spawnp F
-GLIBC_2.2 prctl F
-GLIBC_2.2 pread F
-GLIBC_2.2 pread64 F
-GLIBC_2.2 printf F
-GLIBC_2.2 printf_size F
-GLIBC_2.2 printf_size_info F
-GLIBC_2.2 profil F
-GLIBC_2.2 program_invocation_name D 0x4
-GLIBC_2.2 program_invocation_short_name D 0x4
-GLIBC_2.2 pselect F
-GLIBC_2.2 psignal F
-GLIBC_2.2 pthread_attr_destroy F
-GLIBC_2.2 pthread_attr_getdetachstate F
-GLIBC_2.2 pthread_attr_getinheritsched F
-GLIBC_2.2 pthread_attr_getschedparam F
-GLIBC_2.2 pthread_attr_getschedpolicy F
-GLIBC_2.2 pthread_attr_getscope F
-GLIBC_2.2 pthread_attr_init F
-GLIBC_2.2 pthread_attr_setdetachstate F
-GLIBC_2.2 pthread_attr_setinheritsched F
-GLIBC_2.2 pthread_attr_setschedparam F
-GLIBC_2.2 pthread_attr_setschedpolicy F
-GLIBC_2.2 pthread_attr_setscope F
-GLIBC_2.2 pthread_cond_broadcast F
-GLIBC_2.2 pthread_cond_destroy F
-GLIBC_2.2 pthread_cond_init F
-GLIBC_2.2 pthread_cond_signal F
-GLIBC_2.2 pthread_cond_timedwait F
-GLIBC_2.2 pthread_cond_wait F
-GLIBC_2.2 pthread_condattr_destroy F
-GLIBC_2.2 pthread_condattr_init F
-GLIBC_2.2 pthread_equal F
-GLIBC_2.2 pthread_exit F
-GLIBC_2.2 pthread_getschedparam F
-GLIBC_2.2 pthread_mutex_destroy F
-GLIBC_2.2 pthread_mutex_init F
-GLIBC_2.2 pthread_mutex_lock F
-GLIBC_2.2 pthread_mutex_unlock F
-GLIBC_2.2 pthread_self F
-GLIBC_2.2 pthread_setcancelstate F
-GLIBC_2.2 pthread_setcanceltype F
-GLIBC_2.2 pthread_setschedparam F
-GLIBC_2.2 ptrace F
-GLIBC_2.2 ptsname F
-GLIBC_2.2 ptsname_r F
-GLIBC_2.2 putc F
-GLIBC_2.2 putc_unlocked F
-GLIBC_2.2 putchar F
-GLIBC_2.2 putchar_unlocked F
-GLIBC_2.2 putenv F
-GLIBC_2.2 putgrent F
-GLIBC_2.2 putmsg F
-GLIBC_2.2 putpmsg F
-GLIBC_2.2 putpwent F
-GLIBC_2.2 puts F
-GLIBC_2.2 putspent F
-GLIBC_2.2 pututline F
-GLIBC_2.2 pututxline F
-GLIBC_2.2 putw F
-GLIBC_2.2 putwc F
-GLIBC_2.2 putwc_unlocked F
-GLIBC_2.2 putwchar F
-GLIBC_2.2 putwchar_unlocked F
-GLIBC_2.2 pvalloc F
-GLIBC_2.2 pwrite F
-GLIBC_2.2 pwrite64 F
-GLIBC_2.2 qecvt F
-GLIBC_2.2 qecvt_r F
-GLIBC_2.2 qfcvt F
-GLIBC_2.2 qfcvt_r F
-GLIBC_2.2 qgcvt F
-GLIBC_2.2 qsort F
-GLIBC_2.2 query_module F
-GLIBC_2.2 quotactl F
-GLIBC_2.2 raise F
-GLIBC_2.2 rand F
-GLIBC_2.2 rand_r F
-GLIBC_2.2 random F
-GLIBC_2.2 random_r F
-GLIBC_2.2 rawmemchr F
-GLIBC_2.2 rcmd F
-GLIBC_2.2 rcmd_af F
-GLIBC_2.2 re_comp F
-GLIBC_2.2 re_compile_fastmap F
-GLIBC_2.2 re_compile_pattern F
-GLIBC_2.2 re_exec F
-GLIBC_2.2 re_match F
-GLIBC_2.2 re_match_2 F
-GLIBC_2.2 re_max_failures D 0x4
-GLIBC_2.2 re_search F
-GLIBC_2.2 re_search_2 F
-GLIBC_2.2 re_set_registers F
-GLIBC_2.2 re_set_syntax F
-GLIBC_2.2 re_syntax_options D 0x4
-GLIBC_2.2 read F
-GLIBC_2.2 readdir F
-GLIBC_2.2 readdir64 F
-GLIBC_2.2 readdir64_r F
-GLIBC_2.2 readdir_r F
-GLIBC_2.2 readlink F
-GLIBC_2.2 readv F
-GLIBC_2.2 realloc F
-GLIBC_2.2 realpath F
-GLIBC_2.2 reboot F
-GLIBC_2.2 recv F
-GLIBC_2.2 recvfrom F
-GLIBC_2.2 recvmsg F
-GLIBC_2.2 regcomp F
-GLIBC_2.2 regerror F
-GLIBC_2.2 regexec F
-GLIBC_2.2 regfree F
-GLIBC_2.2 register_printf_function F
-GLIBC_2.2 registerrpc F
-GLIBC_2.2 remove F
-GLIBC_2.2 remque F
-GLIBC_2.2 rename F
-GLIBC_2.2 revoke F
-GLIBC_2.2 rewind F
-GLIBC_2.2 rewinddir F
-GLIBC_2.2 rexec F
-GLIBC_2.2 rexec_af F
-GLIBC_2.2 rexecoptions D 0x4
-GLIBC_2.2 rindex F
-GLIBC_2.2 rmdir F
-GLIBC_2.2 rpc_createerr D 0x10
-GLIBC_2.2 rpmatch F
-GLIBC_2.2 rresvport F
-GLIBC_2.2 rresvport_af F
-GLIBC_2.2 rtime F
-GLIBC_2.2 ruserok F
-GLIBC_2.2 ruserok_af F
-GLIBC_2.2 ruserpass F
-GLIBC_2.2 sbrk F
-GLIBC_2.2 scalbn F
-GLIBC_2.2 scalbnf F
-GLIBC_2.2 scalbnl F
-GLIBC_2.2 scandir F
-GLIBC_2.2 scandir64 F
-GLIBC_2.2 scanf F
-GLIBC_2.2 sched_get_priority_max F
-GLIBC_2.2 sched_get_priority_min F
-GLIBC_2.2 sched_getparam F
-GLIBC_2.2 sched_getscheduler F
-GLIBC_2.2 sched_rr_get_interval F
-GLIBC_2.2 sched_setparam F
-GLIBC_2.2 sched_setscheduler F
-GLIBC_2.2 sched_yield F
-GLIBC_2.2 seed48 F
-GLIBC_2.2 seed48_r F
-GLIBC_2.2 seekdir F
-GLIBC_2.2 select F
-GLIBC_2.2 semctl F
-GLIBC_2.2 semget F
-GLIBC_2.2 semop F
-GLIBC_2.2 send F
-GLIBC_2.2 sendfile F
-GLIBC_2.2 sendmsg F
-GLIBC_2.2 sendto F
-GLIBC_2.2 setaliasent F
-GLIBC_2.2 setbuf F
-GLIBC_2.2 setbuffer F
-GLIBC_2.2 setcontext F
-GLIBC_2.2 setdomainname F
-GLIBC_2.2 setegid F
-GLIBC_2.2 setenv F
-GLIBC_2.2 seteuid F
-GLIBC_2.2 setfsent F
-GLIBC_2.2 setfsgid F
-GLIBC_2.2 setfsuid F
-GLIBC_2.2 setgid F
-GLIBC_2.2 setgrent F
-GLIBC_2.2 setgroups F
-GLIBC_2.2 sethostent F
-GLIBC_2.2 sethostid F
-GLIBC_2.2 sethostname F
-GLIBC_2.2 setitimer F
-GLIBC_2.2 setjmp F
-GLIBC_2.2 setlinebuf F
-GLIBC_2.2 setlocale F
-GLIBC_2.2 setlogin F
-GLIBC_2.2 setlogmask F
-GLIBC_2.2 setmntent F
-GLIBC_2.2 setnetent F
-GLIBC_2.2 setnetgrent F
-GLIBC_2.2 setpgid F
-GLIBC_2.2 setpgrp F
-GLIBC_2.2 setpriority F
-GLIBC_2.2 setprotoent F
-GLIBC_2.2 setpwent F
-GLIBC_2.2 setregid F
-GLIBC_2.2 setresgid F
-GLIBC_2.2 setresuid F
-GLIBC_2.2 setreuid F
-GLIBC_2.2 setrlimit F
-GLIBC_2.2 setrlimit64 F
-GLIBC_2.2 setrpcent F
-GLIBC_2.2 setservent F
-GLIBC_2.2 setsid F
-GLIBC_2.2 setsockopt F
-GLIBC_2.2 setspent F
-GLIBC_2.2 setstate F
-GLIBC_2.2 setstate_r F
-GLIBC_2.2 settimeofday F
-GLIBC_2.2 setttyent F
-GLIBC_2.2 setuid F
-GLIBC_2.2 setusershell F
-GLIBC_2.2 setutent F
-GLIBC_2.2 setutxent F
-GLIBC_2.2 setvbuf F
-GLIBC_2.2 sgetspent F
-GLIBC_2.2 sgetspent_r F
-GLIBC_2.2 shmat F
-GLIBC_2.2 shmctl F
-GLIBC_2.2 shmdt F
-GLIBC_2.2 shmget F
-GLIBC_2.2 shutdown F
-GLIBC_2.2 sigaction F
-GLIBC_2.2 sigaddset F
-GLIBC_2.2 sigaltstack F
-GLIBC_2.2 sigandset F
-GLIBC_2.2 sigblock F
-GLIBC_2.2 sigdelset F
-GLIBC_2.2 sigemptyset F
-GLIBC_2.2 sigfillset F
-GLIBC_2.2 siggetmask F
-GLIBC_2.2 sighold F
-GLIBC_2.2 sigignore F
-GLIBC_2.2 siginterrupt F
-GLIBC_2.2 sigisemptyset F
-GLIBC_2.2 sigismember F
-GLIBC_2.2 siglongjmp F
-GLIBC_2.2 signal F
-GLIBC_2.2 sigorset F
-GLIBC_2.2 sigpause F
-GLIBC_2.2 sigpending F
-GLIBC_2.2 sigprocmask F
-GLIBC_2.2 sigqueue F
-GLIBC_2.2 sigrelse F
-GLIBC_2.2 sigreturn F
-GLIBC_2.2 sigset F
-GLIBC_2.2 sigsetmask F
-GLIBC_2.2 sigstack F
-GLIBC_2.2 sigsuspend F
-GLIBC_2.2 sigtimedwait F
-GLIBC_2.2 sigvec F
-GLIBC_2.2 sigwait F
-GLIBC_2.2 sigwaitinfo F
-GLIBC_2.2 sleep F
-GLIBC_2.2 snprintf F
-GLIBC_2.2 socket F
-GLIBC_2.2 socketpair F
-GLIBC_2.2 sprintf F
-GLIBC_2.2 srand F
-GLIBC_2.2 srand48 F
-GLIBC_2.2 srand48_r F
-GLIBC_2.2 srandom F
-GLIBC_2.2 srandom_r F
-GLIBC_2.2 sscanf F
-GLIBC_2.2 ssignal F
-GLIBC_2.2 sstk F
-GLIBC_2.2 statfs F
-GLIBC_2.2 statfs64 F
-GLIBC_2.2 statvfs F
-GLIBC_2.2 statvfs64 F
-GLIBC_2.2 stderr D 0x4
-GLIBC_2.2 stdin D 0x4
-GLIBC_2.2 stdout D 0x4
-GLIBC_2.2 step F
-GLIBC_2.2 stime F
-GLIBC_2.2 stpcpy F
-GLIBC_2.2 stpncpy F
-GLIBC_2.2 strcasecmp F
-GLIBC_2.2 strcasestr F
-GLIBC_2.2 strcat F
-GLIBC_2.2 strchr F
-GLIBC_2.2 strchrnul F
-GLIBC_2.2 strcmp F
-GLIBC_2.2 strcoll F
-GLIBC_2.2 strcpy F
-GLIBC_2.2 strcspn F
-GLIBC_2.2 strdup F
-GLIBC_2.2 strerror F
-GLIBC_2.2 strerror_r F
-GLIBC_2.2 strfmon F
-GLIBC_2.2 strfry F
-GLIBC_2.2 strftime F
-GLIBC_2.2 strlen F
-GLIBC_2.2 strncasecmp F
-GLIBC_2.2 strncat F
-GLIBC_2.2 strncmp F
-GLIBC_2.2 strncpy F
-GLIBC_2.2 strndup F
-GLIBC_2.2 strnlen F
-GLIBC_2.2 strpbrk F
-GLIBC_2.2 strptime F
-GLIBC_2.2 strrchr F
-GLIBC_2.2 strsep F
-GLIBC_2.2 strsignal F
-GLIBC_2.2 strspn F
-GLIBC_2.2 strstr F
-GLIBC_2.2 strtod F
-GLIBC_2.2 strtof F
-GLIBC_2.2 strtoimax F
-GLIBC_2.2 strtok F
-GLIBC_2.2 strtok_r F
-GLIBC_2.2 strtol F
-GLIBC_2.2 strtold F
-GLIBC_2.2 strtoll F
-GLIBC_2.2 strtoq F
-GLIBC_2.2 strtoul F
-GLIBC_2.2 strtoull F
-GLIBC_2.2 strtoumax F
-GLIBC_2.2 strtouq F
-GLIBC_2.2 strverscmp F
-GLIBC_2.2 strxfrm F
-GLIBC_2.2 stty F
-GLIBC_2.2 svc_exit F
-GLIBC_2.2 svc_fdset D 0x80
-GLIBC_2.2 svc_getreq F
-GLIBC_2.2 svc_getreq_common F
-GLIBC_2.2 svc_getreq_poll F
-GLIBC_2.2 svc_getreqset F
-GLIBC_2.2 svc_max_pollfd D 0x4
-GLIBC_2.2 svc_pollfd D 0x4
-GLIBC_2.2 svc_register F
-GLIBC_2.2 svc_run F
-GLIBC_2.2 svc_sendreply F
-GLIBC_2.2 svc_unregister F
-GLIBC_2.2 svcauthdes_stats D 0xc
-GLIBC_2.2 svcerr_auth F
-GLIBC_2.2 svcerr_decode F
-GLIBC_2.2 svcerr_noproc F
-GLIBC_2.2 svcerr_noprog F
-GLIBC_2.2 svcerr_progvers F
-GLIBC_2.2 svcerr_systemerr F
-GLIBC_2.2 svcerr_weakauth F
-GLIBC_2.2 svcfd_create F
-GLIBC_2.2 svcraw_create F
-GLIBC_2.2 svctcp_create F
-GLIBC_2.2 svcudp_bufcreate F
-GLIBC_2.2 svcudp_create F
-GLIBC_2.2 svcudp_enablecache F
-GLIBC_2.2 svcunix_create F
-GLIBC_2.2 svcunixfd_create F
-GLIBC_2.2 swab F
-GLIBC_2.2 swapcontext F
-GLIBC_2.2 swapoff F
-GLIBC_2.2 swapon F
-GLIBC_2.2 swprintf F
-GLIBC_2.2 swscanf F
-GLIBC_2.2 symlink F
-GLIBC_2.2 sync F
-GLIBC_2.2 sys_errlist D 0x1f4
-GLIBC_2.2 sys_nerr D 0x4
-GLIBC_2.2 sys_sigabbrev D 0x100
-GLIBC_2.2 sys_siglist D 0x100
-GLIBC_2.2 syscall F
-GLIBC_2.2 sysconf F
-GLIBC_2.2 sysctl F
-GLIBC_2.2 sysinfo F
-GLIBC_2.2 syslog F
-GLIBC_2.2 system F
-GLIBC_2.2 sysv_signal F
-GLIBC_2.2 tcdrain F
-GLIBC_2.2 tcflow F
-GLIBC_2.2 tcflush F
-GLIBC_2.2 tcgetattr F
-GLIBC_2.2 tcgetpgrp F
-GLIBC_2.2 tcgetsid F
-GLIBC_2.2 tcsendbreak F
-GLIBC_2.2 tcsetattr F
-GLIBC_2.2 tcsetpgrp F
-GLIBC_2.2 tdelete F
-GLIBC_2.2 tdestroy F
-GLIBC_2.2 telldir F
-GLIBC_2.2 tempnam F
-GLIBC_2.2 textdomain F
-GLIBC_2.2 tfind F
-GLIBC_2.2 time F
-GLIBC_2.2 timegm F
-GLIBC_2.2 timelocal F
-GLIBC_2.2 times F
-GLIBC_2.2 timezone D 0x4
-GLIBC_2.2 tmpfile F
-GLIBC_2.2 tmpfile64 F
-GLIBC_2.2 tmpnam F
-GLIBC_2.2 tmpnam_r F
-GLIBC_2.2 toascii F
-GLIBC_2.2 tolower F
-GLIBC_2.2 toupper F
-GLIBC_2.2 towctrans F
-GLIBC_2.2 towlower F
-GLIBC_2.2 towupper F
-GLIBC_2.2 tr_break F
-GLIBC_2.2 truncate F
-GLIBC_2.2 truncate64 F
-GLIBC_2.2 tsearch F
-GLIBC_2.2 ttyname F
-GLIBC_2.2 ttyname_r F
-GLIBC_2.2 ttyslot F
-GLIBC_2.2 twalk F
-GLIBC_2.2 tzname D 0x8
-GLIBC_2.2 tzset F
-GLIBC_2.2 ualarm F
-GLIBC_2.2 ulckpwdf F
-GLIBC_2.2 ulimit F
-GLIBC_2.2 umask F
-GLIBC_2.2 umount F
-GLIBC_2.2 umount2 F
-GLIBC_2.2 uname F
-GLIBC_2.2 ungetc F
-GLIBC_2.2 ungetwc F
-GLIBC_2.2 unlink F
-GLIBC_2.2 unlockpt F
-GLIBC_2.2 unsetenv F
-GLIBC_2.2 updwtmp F
-GLIBC_2.2 updwtmpx F
-GLIBC_2.2 uselib F
-GLIBC_2.2 user2netname F
-GLIBC_2.2 usleep F
-GLIBC_2.2 ustat F
-GLIBC_2.2 utime F
-GLIBC_2.2 utimes F
-GLIBC_2.2 utmpname F
-GLIBC_2.2 utmpxname F
-GLIBC_2.2 valloc F
-GLIBC_2.2 vasprintf F
-GLIBC_2.2 vdprintf F
-GLIBC_2.2 verr F
-GLIBC_2.2 verrx F
-GLIBC_2.2 versionsort F
-GLIBC_2.2 versionsort64 F
-GLIBC_2.2 vfork F
-GLIBC_2.2 vfprintf F
-GLIBC_2.2 vfscanf F
-GLIBC_2.2 vfwprintf F
-GLIBC_2.2 vfwscanf F
-GLIBC_2.2 vhangup F
-GLIBC_2.2 vlimit F
-GLIBC_2.2 vprintf F
-GLIBC_2.2 vscanf F
-GLIBC_2.2 vsnprintf F
-GLIBC_2.2 vsprintf F
-GLIBC_2.2 vsscanf F
-GLIBC_2.2 vswprintf F
-GLIBC_2.2 vswscanf F
-GLIBC_2.2 vsyslog F
-GLIBC_2.2 vtimes F
-GLIBC_2.2 vwarn F
-GLIBC_2.2 vwarnx F
-GLIBC_2.2 vwprintf F
-GLIBC_2.2 vwscanf F
-GLIBC_2.2 wait F
-GLIBC_2.2 wait3 F
-GLIBC_2.2 wait4 F
-GLIBC_2.2 waitid F
-GLIBC_2.2 waitpid F
-GLIBC_2.2 warn F
-GLIBC_2.2 warnx F
-GLIBC_2.2 wcpcpy F
-GLIBC_2.2 wcpncpy F
-GLIBC_2.2 wcrtomb F
-GLIBC_2.2 wcscasecmp F
-GLIBC_2.2 wcscat F
-GLIBC_2.2 wcschr F
-GLIBC_2.2 wcschrnul F
-GLIBC_2.2 wcscmp F
-GLIBC_2.2 wcscoll F
-GLIBC_2.2 wcscpy F
-GLIBC_2.2 wcscspn F
-GLIBC_2.2 wcsdup F
-GLIBC_2.2 wcsftime F
-GLIBC_2.2 wcslen F
-GLIBC_2.2 wcsncasecmp F
-GLIBC_2.2 wcsncat F
-GLIBC_2.2 wcsncmp F
-GLIBC_2.2 wcsncpy F
-GLIBC_2.2 wcsnlen F
-GLIBC_2.2 wcsnrtombs F
-GLIBC_2.2 wcspbrk F
-GLIBC_2.2 wcsrchr F
-GLIBC_2.2 wcsrtombs F
-GLIBC_2.2 wcsspn F
-GLIBC_2.2 wcsstr F
-GLIBC_2.2 wcstod F
-GLIBC_2.2 wcstof F
-GLIBC_2.2 wcstoimax F
-GLIBC_2.2 wcstok F
-GLIBC_2.2 wcstol F
-GLIBC_2.2 wcstold F
-GLIBC_2.2 wcstoll F
-GLIBC_2.2 wcstombs F
-GLIBC_2.2 wcstoq F
-GLIBC_2.2 wcstoul F
-GLIBC_2.2 wcstoull F
-GLIBC_2.2 wcstoumax F
-GLIBC_2.2 wcstouq F
-GLIBC_2.2 wcswcs F
-GLIBC_2.2 wcswidth F
-GLIBC_2.2 wcsxfrm F
-GLIBC_2.2 wctob F
-GLIBC_2.2 wctomb F
-GLIBC_2.2 wctrans F
-GLIBC_2.2 wctype F
-GLIBC_2.2 wcwidth F
-GLIBC_2.2 wmemchr F
-GLIBC_2.2 wmemcmp F
-GLIBC_2.2 wmemcpy F
-GLIBC_2.2 wmemmove F
-GLIBC_2.2 wmempcpy F
-GLIBC_2.2 wmemset F
-GLIBC_2.2 wordexp F
-GLIBC_2.2 wordfree F
-GLIBC_2.2 wprintf F
-GLIBC_2.2 write F
-GLIBC_2.2 writev F
-GLIBC_2.2 wscanf F
-GLIBC_2.2 xdecrypt F
-GLIBC_2.2 xdr_accepted_reply F
-GLIBC_2.2 xdr_array F
-GLIBC_2.2 xdr_authdes_cred F
-GLIBC_2.2 xdr_authdes_verf F
-GLIBC_2.2 xdr_authunix_parms F
-GLIBC_2.2 xdr_bool F
-GLIBC_2.2 xdr_bytes F
-GLIBC_2.2 xdr_callhdr F
-GLIBC_2.2 xdr_callmsg F
-GLIBC_2.2 xdr_char F
-GLIBC_2.2 xdr_cryptkeyarg F
-GLIBC_2.2 xdr_cryptkeyarg2 F
-GLIBC_2.2 xdr_cryptkeyres F
-GLIBC_2.2 xdr_des_block F
-GLIBC_2.2 xdr_double F
-GLIBC_2.2 xdr_enum F
-GLIBC_2.2 xdr_float F
-GLIBC_2.2 xdr_free F
-GLIBC_2.2 xdr_getcredres F
-GLIBC_2.2 xdr_hyper F
-GLIBC_2.2 xdr_int F
-GLIBC_2.2 xdr_int16_t F
-GLIBC_2.2 xdr_int32_t F
-GLIBC_2.2 xdr_int64_t F
-GLIBC_2.2 xdr_int8_t F
-GLIBC_2.2 xdr_key_netstarg F
-GLIBC_2.2 xdr_key_netstres F
-GLIBC_2.2 xdr_keybuf F
-GLIBC_2.2 xdr_keystatus F
-GLIBC_2.2 xdr_long F
-GLIBC_2.2 xdr_longlong_t F
-GLIBC_2.2 xdr_netnamestr F
-GLIBC_2.2 xdr_netobj F
-GLIBC_2.2 xdr_opaque F
-GLIBC_2.2 xdr_opaque_auth F
-GLIBC_2.2 xdr_pmap F
-GLIBC_2.2 xdr_pmaplist F
-GLIBC_2.2 xdr_pointer F
-GLIBC_2.2 xdr_reference F
-GLIBC_2.2 xdr_rejected_reply F
-GLIBC_2.2 xdr_replymsg F
-GLIBC_2.2 xdr_rmtcall_args F
-GLIBC_2.2 xdr_rmtcallres F
-GLIBC_2.2 xdr_short F
-GLIBC_2.2 xdr_sizeof F
-GLIBC_2.2 xdr_string F
-GLIBC_2.2 xdr_u_char F
-GLIBC_2.2 xdr_u_hyper F
-GLIBC_2.2 xdr_u_int F
-GLIBC_2.2 xdr_u_long F
-GLIBC_2.2 xdr_u_longlong_t F
-GLIBC_2.2 xdr_u_short F
-GLIBC_2.2 xdr_uint16_t F
-GLIBC_2.2 xdr_uint32_t F
-GLIBC_2.2 xdr_uint64_t F
-GLIBC_2.2 xdr_uint8_t F
-GLIBC_2.2 xdr_union F
-GLIBC_2.2 xdr_unixcred F
-GLIBC_2.2 xdr_vector F
-GLIBC_2.2 xdr_void F
-GLIBC_2.2 xdr_wrapstring F
-GLIBC_2.2 xdrmem_create F
-GLIBC_2.2 xdrrec_create F
-GLIBC_2.2 xdrrec_endofrecord F
-GLIBC_2.2 xdrrec_eof F
-GLIBC_2.2 xdrrec_skiprecord F
-GLIBC_2.2 xdrstdio_create F
-GLIBC_2.2 xencrypt F
-GLIBC_2.2 xprt_register F
-GLIBC_2.2 xprt_unregister F
-GLIBC_2.2.1 pivot_root F
-GLIBC_2.2.1 posix_openpt F
-GLIBC_2.2.2 __nss_hostname_digits_dots F
-GLIBC_2.2.3 __rpc_thread_createerr F
-GLIBC_2.2.3 __rpc_thread_svc_fdset F
-GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F
-GLIBC_2.2.3 __rpc_thread_svc_pollfd F
-GLIBC_2.2.3 fnmatch F
-GLIBC_2.2.3 sprofil F
-GLIBC_2.2.4 dl_iterate_phdr F
-GLIBC_2.2.4 getgrouplist F
-GLIBC_2.2.4 sockatmark F
-GLIBC_2.2.6 __nanosleep F
-GLIBC_2.22 fmemopen F
-GLIBC_2.23 fts64_children F
-GLIBC_2.23 fts64_close F
-GLIBC_2.23 fts64_open F
-GLIBC_2.23 fts64_read F
-GLIBC_2.23 fts64_set F
-GLIBC_2.24 quick_exit F
-GLIBC_2.25 __explicit_bzero_chk F
-GLIBC_2.25 explicit_bzero F
-GLIBC_2.25 getentropy F
-GLIBC_2.25 getrandom F
-GLIBC_2.25 strfromd F
-GLIBC_2.25 strfromf F
-GLIBC_2.25 strfroml F
-GLIBC_2.26 preadv2 F
-GLIBC_2.26 preadv64v2 F
-GLIBC_2.26 pwritev2 F
-GLIBC_2.26 pwritev64v2 F
-GLIBC_2.26 reallocarray F
-GLIBC_2.27 copy_file_range F
-GLIBC_2.27 glob F
-GLIBC_2.27 glob64 F
-GLIBC_2.27 memfd_create F
-GLIBC_2.27 mlock2 F
-GLIBC_2.27 pkey_alloc F
-GLIBC_2.27 pkey_free F
-GLIBC_2.27 pkey_get F
-GLIBC_2.27 pkey_mprotect F
-GLIBC_2.27 pkey_set F
-GLIBC_2.27 strfromf32 F
-GLIBC_2.27 strfromf32x F
-GLIBC_2.27 strfromf64 F
-GLIBC_2.27 strtof32 F
-GLIBC_2.27 strtof32_l F
-GLIBC_2.27 strtof32x F
-GLIBC_2.27 strtof32x_l F
-GLIBC_2.27 strtof64 F
-GLIBC_2.27 strtof64_l F
-GLIBC_2.27 wcstof32 F
-GLIBC_2.27 wcstof32_l F
-GLIBC_2.27 wcstof32x F
-GLIBC_2.27 wcstof32x_l F
-GLIBC_2.27 wcstof64 F
-GLIBC_2.27 wcstof64_l F
-GLIBC_2.28 fcntl F
-GLIBC_2.28 fcntl64 F
-GLIBC_2.28 renameat2 F
-GLIBC_2.28 statx F
-GLIBC_2.28 thrd_current F
-GLIBC_2.28 thrd_equal F
-GLIBC_2.28 thrd_sleep F
-GLIBC_2.28 thrd_yield F
-GLIBC_2.3 __ctype_b_loc F
-GLIBC_2.3 __ctype_tolower_loc F
-GLIBC_2.3 __ctype_toupper_loc F
-GLIBC_2.3 __isctype F
-GLIBC_2.3 __strftime_l F
-GLIBC_2.3 __uselocale F
-GLIBC_2.3 __wcsftime_l F
-GLIBC_2.3 _sys_errlist D 0x1f8
-GLIBC_2.3 _sys_nerr D 0x4
-GLIBC_2.3 duplocale F
-GLIBC_2.3 fgetxattr F
-GLIBC_2.3 flistxattr F
-GLIBC_2.3 freeifaddrs F
-GLIBC_2.3 freelocale F
-GLIBC_2.3 fremovexattr F
-GLIBC_2.3 fsetxattr F
-GLIBC_2.3 futimes F
-GLIBC_2.3 getifaddrs F
-GLIBC_2.3 getxattr F
-GLIBC_2.3 isalnum_l F
-GLIBC_2.3 isalpha_l F
-GLIBC_2.3 isblank_l F
-GLIBC_2.3 iscntrl_l F
-GLIBC_2.3 isctype F
-GLIBC_2.3 isdigit_l F
-GLIBC_2.3 isgraph_l F
-GLIBC_2.3 islower_l F
-GLIBC_2.3 isprint_l F
-GLIBC_2.3 ispunct_l F
-GLIBC_2.3 isspace_l F
-GLIBC_2.3 isupper_l F
-GLIBC_2.3 iswalnum_l F
-GLIBC_2.3 iswalpha_l F
-GLIBC_2.3 iswblank_l F
-GLIBC_2.3 iswcntrl_l F
-GLIBC_2.3 iswctype_l F
-GLIBC_2.3 iswdigit_l F
-GLIBC_2.3 iswgraph_l F
-GLIBC_2.3 iswlower_l F
-GLIBC_2.3 iswprint_l F
-GLIBC_2.3 iswpunct_l F
-GLIBC_2.3 iswspace_l F
-GLIBC_2.3 iswupper_l F
-GLIBC_2.3 iswxdigit_l F
-GLIBC_2.3 isxdigit_l F
-GLIBC_2.3 lgetxattr F
-GLIBC_2.3 listxattr F
-GLIBC_2.3 llistxattr F
-GLIBC_2.3 lremovexattr F
-GLIBC_2.3 lsetxattr F
-GLIBC_2.3 lutimes F
-GLIBC_2.3 newlocale F
-GLIBC_2.3 nl_langinfo_l F
-GLIBC_2.3 readahead F
-GLIBC_2.3 realpath F
-GLIBC_2.3 removexattr F
-GLIBC_2.3 sendfile64 F
-GLIBC_2.3 setxattr F
-GLIBC_2.3 strcasecmp_l F
-GLIBC_2.3 strcoll_l F
-GLIBC_2.3 strfmon_l F
-GLIBC_2.3 strftime_l F
-GLIBC_2.3 strncasecmp_l F
-GLIBC_2.3 strtod_l F
-GLIBC_2.3 strtof_l F
-GLIBC_2.3 strtol_l F
-GLIBC_2.3 strtold_l F
-GLIBC_2.3 strtoll_l F
-GLIBC_2.3 strtoul_l F
-GLIBC_2.3 strtoull_l F
-GLIBC_2.3 strxfrm_l F
-GLIBC_2.3 sys_errlist D 0x1f8
-GLIBC_2.3 sys_nerr D 0x4
-GLIBC_2.3 tolower_l F
-GLIBC_2.3 toupper_l F
-GLIBC_2.3 towctrans_l F
-GLIBC_2.3 towlower_l F
-GLIBC_2.3 towupper_l F
-GLIBC_2.3 uselocale F
-GLIBC_2.3 wcscasecmp_l F
-GLIBC_2.3 wcscoll_l F
-GLIBC_2.3 wcsftime_l F
-GLIBC_2.3 wcsncasecmp_l F
-GLIBC_2.3 wcstod_l F
-GLIBC_2.3 wcstof_l F
-GLIBC_2.3 wcstol_l F
-GLIBC_2.3 wcstold_l F
-GLIBC_2.3 wcstoll_l F
-GLIBC_2.3 wcstoul_l F
-GLIBC_2.3 wcstoull_l F
-GLIBC_2.3 wcsxfrm_l F
-GLIBC_2.3 wctrans_l F
-GLIBC_2.3 wctype_l F
-GLIBC_2.3.2 __register_atfork F
-GLIBC_2.3.2 epoll_create F
-GLIBC_2.3.2 epoll_ctl F
-GLIBC_2.3.2 epoll_wait F
-GLIBC_2.3.2 lchmod F
-GLIBC_2.3.2 pthread_cond_broadcast F
-GLIBC_2.3.2 pthread_cond_destroy F
-GLIBC_2.3.2 pthread_cond_init F
-GLIBC_2.3.2 pthread_cond_signal F
-GLIBC_2.3.2 pthread_cond_timedwait F
-GLIBC_2.3.2 pthread_cond_wait F
-GLIBC_2.3.2 strptime_l F
-GLIBC_2.3.3 _sys_siglist D 0x104
-GLIBC_2.3.3 gnu_dev_major F
-GLIBC_2.3.3 gnu_dev_makedev F
-GLIBC_2.3.3 gnu_dev_minor F
-GLIBC_2.3.3 inet6_option_alloc F
-GLIBC_2.3.3 inet6_option_append F
-GLIBC_2.3.3 inet6_option_find F
-GLIBC_2.3.3 inet6_option_init F
-GLIBC_2.3.3 inet6_option_next F
-GLIBC_2.3.3 inet6_option_space F
-GLIBC_2.3.3 nftw F
-GLIBC_2.3.3 nftw64 F
-GLIBC_2.3.3 posix_fadvise64 F
-GLIBC_2.3.3 posix_fallocate64 F
-GLIBC_2.3.3 remap_file_pages F
-GLIBC_2.3.3 sched_getaffinity F
-GLIBC_2.3.3 sched_setaffinity F
-GLIBC_2.3.3 semtimedop F
-GLIBC_2.3.3 sys_sigabbrev D 0x104
-GLIBC_2.3.3 sys_siglist D 0x104
-GLIBC_2.3.4 __chk_fail F
-GLIBC_2.3.4 __fprintf_chk F
-GLIBC_2.3.4 __gets_chk F
-GLIBC_2.3.4 __memcpy_chk F
-GLIBC_2.3.4 __memmove_chk F
-GLIBC_2.3.4 __mempcpy_chk F
-GLIBC_2.3.4 __memset_chk F
-GLIBC_2.3.4 __printf_chk F
-GLIBC_2.3.4 __snprintf_chk F
-GLIBC_2.3.4 __sprintf_chk F
-GLIBC_2.3.4 __stpcpy_chk F
-GLIBC_2.3.4 __strcat_chk F
-GLIBC_2.3.4 __strcpy_chk F
-GLIBC_2.3.4 __strncat_chk F
-GLIBC_2.3.4 __strncpy_chk F
-GLIBC_2.3.4 __vfprintf_chk F
-GLIBC_2.3.4 __vprintf_chk F
-GLIBC_2.3.4 __vsnprintf_chk F
-GLIBC_2.3.4 __vsprintf_chk F
-GLIBC_2.3.4 __xpg_strerror_r F
-GLIBC_2.3.4 getipv4sourcefilter F
-GLIBC_2.3.4 getsourcefilter F
-GLIBC_2.3.4 regexec F
-GLIBC_2.3.4 sched_getaffinity F
-GLIBC_2.3.4 sched_setaffinity F
-GLIBC_2.3.4 setipv4sourcefilter F
-GLIBC_2.3.4 setsourcefilter F
-GLIBC_2.3.4 xdr_quad_t F
-GLIBC_2.3.4 xdr_u_quad_t F
-GLIBC_2.4 __confstr_chk F
-GLIBC_2.4 __fgets_chk F
-GLIBC_2.4 __fgets_unlocked_chk F
-GLIBC_2.4 __fgetws_chk F
-GLIBC_2.4 __fgetws_unlocked_chk F
-GLIBC_2.4 __fwprintf_chk F
-GLIBC_2.4 __fxstatat F
-GLIBC_2.4 __fxstatat64 F
-GLIBC_2.4 __getcwd_chk F
-GLIBC_2.4 __getdomainname_chk F
-GLIBC_2.4 __getgroups_chk F
-GLIBC_2.4 __gethostname_chk F
-GLIBC_2.4 __getlogin_r_chk F
-GLIBC_2.4 __getwd_chk F
-GLIBC_2.4 __mbsnrtowcs_chk F
-GLIBC_2.4 __mbsrtowcs_chk F
-GLIBC_2.4 __mbstowcs_chk F
-GLIBC_2.4 __pread64_chk F
-GLIBC_2.4 __pread_chk F
-GLIBC_2.4 __ptsname_r_chk F
-GLIBC_2.4 __read_chk F
-GLIBC_2.4 __readlink_chk F
-GLIBC_2.4 __realpath_chk F
-GLIBC_2.4 __recv_chk F
-GLIBC_2.4 __recvfrom_chk F
-GLIBC_2.4 __stack_chk_fail F
-GLIBC_2.4 __stpncpy_chk F
-GLIBC_2.4 __swprintf_chk F
-GLIBC_2.4 __syslog_chk F
-GLIBC_2.4 __ttyname_r_chk F
-GLIBC_2.4 __vfwprintf_chk F
-GLIBC_2.4 __vswprintf_chk F
-GLIBC_2.4 __vsyslog_chk F
-GLIBC_2.4 __vwprintf_chk F
-GLIBC_2.4 __wcpcpy_chk F
-GLIBC_2.4 __wcpncpy_chk F
-GLIBC_2.4 __wcrtomb_chk F
-GLIBC_2.4 __wcscat_chk F
-GLIBC_2.4 __wcscpy_chk F
-GLIBC_2.4 __wcsncat_chk F
-GLIBC_2.4 __wcsncpy_chk F
-GLIBC_2.4 __wcsnrtombs_chk F
-GLIBC_2.4 __wcsrtombs_chk F
-GLIBC_2.4 __wcstombs_chk F
-GLIBC_2.4 __wctomb_chk F
-GLIBC_2.4 __wmemcpy_chk F
-GLIBC_2.4 __wmemmove_chk F
-GLIBC_2.4 __wmempcpy_chk F
-GLIBC_2.4 __wmemset_chk F
-GLIBC_2.4 __wprintf_chk F
-GLIBC_2.4 __xmknodat F
-GLIBC_2.4 _sys_errlist D 0x210
-GLIBC_2.4 _sys_nerr D 0x4
-GLIBC_2.4 eaccess F
-GLIBC_2.4 faccessat F
-GLIBC_2.4 fchmodat F
-GLIBC_2.4 fchownat F
-GLIBC_2.4 fdopendir F
-GLIBC_2.4 futimesat F
-GLIBC_2.4 inotify_add_watch F
-GLIBC_2.4 inotify_init F
-GLIBC_2.4 inotify_rm_watch F
-GLIBC_2.4 linkat F
-GLIBC_2.4 mkdirat F
-GLIBC_2.4 mkfifoat F
-GLIBC_2.4 open_wmemstream F
-GLIBC_2.4 openat F
-GLIBC_2.4 openat64 F
-GLIBC_2.4 ppoll F
-GLIBC_2.4 readlinkat F
-GLIBC_2.4 renameat F
-GLIBC_2.4 symlinkat F
-GLIBC_2.4 sys_errlist D 0x210
-GLIBC_2.4 sys_nerr D 0x4
-GLIBC_2.4 unlinkat F
-GLIBC_2.4 unshare F
-GLIBC_2.5 __readlinkat_chk F
-GLIBC_2.5 inet6_opt_append F
-GLIBC_2.5 inet6_opt_find F
-GLIBC_2.5 inet6_opt_finish F
-GLIBC_2.5 inet6_opt_get_val F
-GLIBC_2.5 inet6_opt_init F
-GLIBC_2.5 inet6_opt_next F
-GLIBC_2.5 inet6_opt_set_val F
-GLIBC_2.5 inet6_rth_add F
-GLIBC_2.5 inet6_rth_getaddr F
-GLIBC_2.5 inet6_rth_init F
-GLIBC_2.5 inet6_rth_reverse F
-GLIBC_2.5 inet6_rth_segments F
-GLIBC_2.5 inet6_rth_space F
-GLIBC_2.5 splice F
-GLIBC_2.5 tee F
-GLIBC_2.5 vmsplice F
-GLIBC_2.6 __sched_cpucount F
-GLIBC_2.6 epoll_pwait F
-GLIBC_2.6 futimens F
-GLIBC_2.6 sched_getcpu F
-GLIBC_2.6 strerror_l F
-GLIBC_2.6 sync_file_range F
-GLIBC_2.6 utimensat F
-GLIBC_2.7 __fread_chk F
-GLIBC_2.7 __fread_unlocked_chk F
-GLIBC_2.7 __isoc99_fscanf F
-GLIBC_2.7 __isoc99_fwscanf F
-GLIBC_2.7 __isoc99_scanf F
-GLIBC_2.7 __isoc99_sscanf F
-GLIBC_2.7 __isoc99_swscanf F
-GLIBC_2.7 __isoc99_vfscanf F
-GLIBC_2.7 __isoc99_vfwscanf F
-GLIBC_2.7 __isoc99_vscanf F
-GLIBC_2.7 __isoc99_vsscanf F
-GLIBC_2.7 __isoc99_vswscanf F
-GLIBC_2.7 __isoc99_vwscanf F
-GLIBC_2.7 __isoc99_wscanf F
-GLIBC_2.7 __open64_2 F
-GLIBC_2.7 __open_2 F
-GLIBC_2.7 __openat64_2 F
-GLIBC_2.7 __openat_2 F
-GLIBC_2.7 __sched_cpualloc F
-GLIBC_2.7 __sched_cpufree F
-GLIBC_2.7 eventfd F
-GLIBC_2.7 eventfd_read F
-GLIBC_2.7 eventfd_write F
-GLIBC_2.7 mkostemp F
-GLIBC_2.7 mkostemp64 F
-GLIBC_2.7 signalfd F
-GLIBC_2.8 __asprintf_chk F
-GLIBC_2.8 __dprintf_chk F
-GLIBC_2.8 __obstack_printf_chk F
-GLIBC_2.8 __obstack_vprintf_chk F
-GLIBC_2.8 __vasprintf_chk F
-GLIBC_2.8 __vdprintf_chk F
-GLIBC_2.8 qsort_r F
-GLIBC_2.8 timerfd_create F
-GLIBC_2.8 timerfd_gettime F
-GLIBC_2.8 timerfd_settime F
-GLIBC_2.9 dup3 F
-GLIBC_2.9 epoll_create1 F
-GLIBC_2.9 inotify_init1 F
-GLIBC_2.9 pipe2 F
diff --git a/sysdeps/unix/sysv/linux/sh/libm.abilist b/sysdeps/unix/sysv/linux/sh/libm.abilist
deleted file mode 100644
index 43525fccf6..0000000000
--- a/sysdeps/unix/sysv/linux/sh/libm.abilist
+++ /dev/null
@@ -1,767 +0,0 @@
-GLIBC_2.15 __acos_finite F
-GLIBC_2.15 __acosf_finite F
-GLIBC_2.15 __acosh_finite F
-GLIBC_2.15 __acoshf_finite F
-GLIBC_2.15 __asin_finite F
-GLIBC_2.15 __asinf_finite F
-GLIBC_2.15 __atan2_finite F
-GLIBC_2.15 __atan2f_finite F
-GLIBC_2.15 __atanh_finite F
-GLIBC_2.15 __atanhf_finite F
-GLIBC_2.15 __cosh_finite F
-GLIBC_2.15 __coshf_finite F
-GLIBC_2.15 __exp10_finite F
-GLIBC_2.15 __exp10f_finite F
-GLIBC_2.15 __exp2_finite F
-GLIBC_2.15 __exp2f_finite F
-GLIBC_2.15 __exp_finite F
-GLIBC_2.15 __expf_finite F
-GLIBC_2.15 __fmod_finite F
-GLIBC_2.15 __fmodf_finite F
-GLIBC_2.15 __gamma_r_finite F
-GLIBC_2.15 __gammaf_r_finite F
-GLIBC_2.15 __hypot_finite F
-GLIBC_2.15 __hypotf_finite F
-GLIBC_2.15 __j0_finite F
-GLIBC_2.15 __j0f_finite F
-GLIBC_2.15 __j1_finite F
-GLIBC_2.15 __j1f_finite F
-GLIBC_2.15 __jn_finite F
-GLIBC_2.15 __jnf_finite F
-GLIBC_2.15 __lgamma_r_finite F
-GLIBC_2.15 __lgammaf_r_finite F
-GLIBC_2.15 __log10_finite F
-GLIBC_2.15 __log10f_finite F
-GLIBC_2.15 __log2_finite F
-GLIBC_2.15 __log2f_finite F
-GLIBC_2.15 __log_finite F
-GLIBC_2.15 __logf_finite F
-GLIBC_2.15 __pow_finite F
-GLIBC_2.15 __powf_finite F
-GLIBC_2.15 __remainder_finite F
-GLIBC_2.15 __remainderf_finite F
-GLIBC_2.15 __scalb_finite F
-GLIBC_2.15 __scalbf_finite F
-GLIBC_2.15 __sinh_finite F
-GLIBC_2.15 __sinhf_finite F
-GLIBC_2.15 __sqrt_finite F
-GLIBC_2.15 __sqrtf_finite F
-GLIBC_2.15 __y0_finite F
-GLIBC_2.15 __y0f_finite F
-GLIBC_2.15 __y1_finite F
-GLIBC_2.15 __y1f_finite F
-GLIBC_2.15 __yn_finite F
-GLIBC_2.15 __ynf_finite F
-GLIBC_2.18 __issignaling F
-GLIBC_2.18 __issignalingf F
-GLIBC_2.2 _LIB_VERSION D 0x4
-GLIBC_2.2 __clog10 F
-GLIBC_2.2 __clog10f F
-GLIBC_2.2 __clog10l F
-GLIBC_2.2 __finite F
-GLIBC_2.2 __finitef F
-GLIBC_2.2 __finitel F
-GLIBC_2.2 __fpclassify F
-GLIBC_2.2 __fpclassifyf F
-GLIBC_2.2 __signbit F
-GLIBC_2.2 __signbitf F
-GLIBC_2.2 acos F
-GLIBC_2.2 acosf F
-GLIBC_2.2 acosh F
-GLIBC_2.2 acoshf F
-GLIBC_2.2 acoshl F
-GLIBC_2.2 acosl F
-GLIBC_2.2 asin F
-GLIBC_2.2 asinf F
-GLIBC_2.2 asinh F
-GLIBC_2.2 asinhf F
-GLIBC_2.2 asinhl F
-GLIBC_2.2 asinl F
-GLIBC_2.2 atan F
-GLIBC_2.2 atan2 F
-GLIBC_2.2 atan2f F
-GLIBC_2.2 atan2l F
-GLIBC_2.2 atanf F
-GLIBC_2.2 atanh F
-GLIBC_2.2 atanhf F
-GLIBC_2.2 atanhl F
-GLIBC_2.2 atanl F
-GLIBC_2.2 cabs F
-GLIBC_2.2 cabsf F
-GLIBC_2.2 cabsl F
-GLIBC_2.2 cacos F
-GLIBC_2.2 cacosf F
-GLIBC_2.2 cacosh F
-GLIBC_2.2 cacoshf F
-GLIBC_2.2 cacoshl F
-GLIBC_2.2 cacosl F
-GLIBC_2.2 carg F
-GLIBC_2.2 cargf F
-GLIBC_2.2 cargl F
-GLIBC_2.2 casin F
-GLIBC_2.2 casinf F
-GLIBC_2.2 casinh F
-GLIBC_2.2 casinhf F
-GLIBC_2.2 casinhl F
-GLIBC_2.2 casinl F
-GLIBC_2.2 catan F
-GLIBC_2.2 catanf F
-GLIBC_2.2 catanh F
-GLIBC_2.2 catanhf F
-GLIBC_2.2 catanhl F
-GLIBC_2.2 catanl F
-GLIBC_2.2 cbrt F
-GLIBC_2.2 cbrtf F
-GLIBC_2.2 cbrtl F
-GLIBC_2.2 ccos F
-GLIBC_2.2 ccosf F
-GLIBC_2.2 ccosh F
-GLIBC_2.2 ccoshf F
-GLIBC_2.2 ccoshl F
-GLIBC_2.2 ccosl F
-GLIBC_2.2 ceil F
-GLIBC_2.2 ceilf F
-GLIBC_2.2 ceill F
-GLIBC_2.2 cexp F
-GLIBC_2.2 cexpf F
-GLIBC_2.2 cexpl F
-GLIBC_2.2 cimag F
-GLIBC_2.2 cimagf F
-GLIBC_2.2 cimagl F
-GLIBC_2.2 clog F
-GLIBC_2.2 clog10 F
-GLIBC_2.2 clog10f F
-GLIBC_2.2 clog10l F
-GLIBC_2.2 clogf F
-GLIBC_2.2 clogl F
-GLIBC_2.2 conj F
-GLIBC_2.2 conjf F
-GLIBC_2.2 conjl F
-GLIBC_2.2 copysign F
-GLIBC_2.2 copysignf F
-GLIBC_2.2 copysignl F
-GLIBC_2.2 cos F
-GLIBC_2.2 cosf F
-GLIBC_2.2 cosh F
-GLIBC_2.2 coshf F
-GLIBC_2.2 coshl F
-GLIBC_2.2 cosl F
-GLIBC_2.2 cpow F
-GLIBC_2.2 cpowf F
-GLIBC_2.2 cpowl F
-GLIBC_2.2 cproj F
-GLIBC_2.2 cprojf F
-GLIBC_2.2 cprojl F
-GLIBC_2.2 creal F
-GLIBC_2.2 crealf F
-GLIBC_2.2 creall F
-GLIBC_2.2 csin F
-GLIBC_2.2 csinf F
-GLIBC_2.2 csinh F
-GLIBC_2.2 csinhf F
-GLIBC_2.2 csinhl F
-GLIBC_2.2 csinl F
-GLIBC_2.2 csqrt F
-GLIBC_2.2 csqrtf F
-GLIBC_2.2 csqrtl F
-GLIBC_2.2 ctan F
-GLIBC_2.2 ctanf F
-GLIBC_2.2 ctanh F
-GLIBC_2.2 ctanhf F
-GLIBC_2.2 ctanhl F
-GLIBC_2.2 ctanl F
-GLIBC_2.2 drem F
-GLIBC_2.2 dremf F
-GLIBC_2.2 dreml F
-GLIBC_2.2 erf F
-GLIBC_2.2 erfc F
-GLIBC_2.2 erfcf F
-GLIBC_2.2 erfcl F
-GLIBC_2.2 erff F
-GLIBC_2.2 erfl F
-GLIBC_2.2 exp F
-GLIBC_2.2 exp10 F
-GLIBC_2.2 exp10f F
-GLIBC_2.2 exp10l F
-GLIBC_2.2 exp2 F
-GLIBC_2.2 exp2f F
-GLIBC_2.2 expf F
-GLIBC_2.2 expl F
-GLIBC_2.2 expm1 F
-GLIBC_2.2 expm1f F
-GLIBC_2.2 expm1l F
-GLIBC_2.2 fabs F
-GLIBC_2.2 fabsf F
-GLIBC_2.2 fabsl F
-GLIBC_2.2 fdim F
-GLIBC_2.2 fdimf F
-GLIBC_2.2 fdiml F
-GLIBC_2.2 feclearexcept F
-GLIBC_2.2 fedisableexcept F
-GLIBC_2.2 feenableexcept F
-GLIBC_2.2 fegetenv F
-GLIBC_2.2 fegetexcept F
-GLIBC_2.2 fegetexceptflag F
-GLIBC_2.2 fegetround F
-GLIBC_2.2 feholdexcept F
-GLIBC_2.2 feraiseexcept F
-GLIBC_2.2 fesetenv F
-GLIBC_2.2 fesetexceptflag F
-GLIBC_2.2 fesetround F
-GLIBC_2.2 fetestexcept F
-GLIBC_2.2 feupdateenv F
-GLIBC_2.2 finite F
-GLIBC_2.2 finitef F
-GLIBC_2.2 finitel F
-GLIBC_2.2 floor F
-GLIBC_2.2 floorf F
-GLIBC_2.2 floorl F
-GLIBC_2.2 fma F
-GLIBC_2.2 fmaf F
-GLIBC_2.2 fmal F
-GLIBC_2.2 fmax F
-GLIBC_2.2 fmaxf F
-GLIBC_2.2 fmaxl F
-GLIBC_2.2 fmin F
-GLIBC_2.2 fminf F
-GLIBC_2.2 fminl F
-GLIBC_2.2 fmod F
-GLIBC_2.2 fmodf F
-GLIBC_2.2 fmodl F
-GLIBC_2.2 frexp F
-GLIBC_2.2 frexpf F
-GLIBC_2.2 frexpl F
-GLIBC_2.2 gamma F
-GLIBC_2.2 gammaf F
-GLIBC_2.2 gammal F
-GLIBC_2.2 hypot F
-GLIBC_2.2 hypotf F
-GLIBC_2.2 hypotl F
-GLIBC_2.2 ilogb F
-GLIBC_2.2 ilogbf F
-GLIBC_2.2 ilogbl F
-GLIBC_2.2 j0 F
-GLIBC_2.2 j0f F
-GLIBC_2.2 j0l F
-GLIBC_2.2 j1 F
-GLIBC_2.2 j1f F
-GLIBC_2.2 j1l F
-GLIBC_2.2 jn F
-GLIBC_2.2 jnf F
-GLIBC_2.2 jnl F
-GLIBC_2.2 ldexp F
-GLIBC_2.2 ldexpf F
-GLIBC_2.2 ldexpl F
-GLIBC_2.2 lgamma F
-GLIBC_2.2 lgamma_r F
-GLIBC_2.2 lgammaf F
-GLIBC_2.2 lgammaf_r F
-GLIBC_2.2 lgammal F
-GLIBC_2.2 lgammal_r F
-GLIBC_2.2 llrint F
-GLIBC_2.2 llrintf F
-GLIBC_2.2 llrintl F
-GLIBC_2.2 llround F
-GLIBC_2.2 llroundf F
-GLIBC_2.2 llroundl F
-GLIBC_2.2 log F
-GLIBC_2.2 log10 F
-GLIBC_2.2 log10f F
-GLIBC_2.2 log10l F
-GLIBC_2.2 log1p F
-GLIBC_2.2 log1pf F
-GLIBC_2.2 log1pl F
-GLIBC_2.2 log2 F
-GLIBC_2.2 log2f F
-GLIBC_2.2 log2l F
-GLIBC_2.2 logb F
-GLIBC_2.2 logbf F
-GLIBC_2.2 logbl F
-GLIBC_2.2 logf F
-GLIBC_2.2 logl F
-GLIBC_2.2 lrint F
-GLIBC_2.2 lrintf F
-GLIBC_2.2 lrintl F
-GLIBC_2.2 lround F
-GLIBC_2.2 lroundf F
-GLIBC_2.2 lroundl F
-GLIBC_2.2 matherr F
-GLIBC_2.2 modf F
-GLIBC_2.2 modff F
-GLIBC_2.2 modfl F
-GLIBC_2.2 nan F
-GLIBC_2.2 nanf F
-GLIBC_2.2 nanl F
-GLIBC_2.2 nearbyint F
-GLIBC_2.2 nearbyintf F
-GLIBC_2.2 nearbyintl F
-GLIBC_2.2 nextafter F
-GLIBC_2.2 nextafterf F
-GLIBC_2.2 nextafterl F
-GLIBC_2.2 nexttoward F
-GLIBC_2.2 nexttowardf F
-GLIBC_2.2 nexttowardl F
-GLIBC_2.2 pow F
-GLIBC_2.2 pow10 F
-GLIBC_2.2 pow10f F
-GLIBC_2.2 pow10l F
-GLIBC_2.2 powf F
-GLIBC_2.2 powl F
-GLIBC_2.2 remainder F
-GLIBC_2.2 remainderf F
-GLIBC_2.2 remainderl F
-GLIBC_2.2 remquo F
-GLIBC_2.2 remquof F
-GLIBC_2.2 remquol F
-GLIBC_2.2 rint F
-GLIBC_2.2 rintf F
-GLIBC_2.2 rintl F
-GLIBC_2.2 round F
-GLIBC_2.2 roundf F
-GLIBC_2.2 roundl F
-GLIBC_2.2 scalb F
-GLIBC_2.2 scalbf F
-GLIBC_2.2 scalbl F
-GLIBC_2.2 scalbln F
-GLIBC_2.2 scalblnf F
-GLIBC_2.2 scalblnl F
-GLIBC_2.2 scalbn F
-GLIBC_2.2 scalbnf F
-GLIBC_2.2 scalbnl F
-GLIBC_2.2 signgam D 0x4
-GLIBC_2.2 significand F
-GLIBC_2.2 significandf F
-GLIBC_2.2 significandl F
-GLIBC_2.2 sin F
-GLIBC_2.2 sincos F
-GLIBC_2.2 sincosf F
-GLIBC_2.2 sincosl F
-GLIBC_2.2 sinf F
-GLIBC_2.2 sinh F
-GLIBC_2.2 sinhf F
-GLIBC_2.2 sinhl F
-GLIBC_2.2 sinl F
-GLIBC_2.2 sqrt F
-GLIBC_2.2 sqrtf F
-GLIBC_2.2 sqrtl F
-GLIBC_2.2 tan F
-GLIBC_2.2 tanf F
-GLIBC_2.2 tanh F
-GLIBC_2.2 tanhf F
-GLIBC_2.2 tanhl F
-GLIBC_2.2 tanl F
-GLIBC_2.2 tgamma F
-GLIBC_2.2 tgammaf F
-GLIBC_2.2 tgammal F
-GLIBC_2.2 trunc F
-GLIBC_2.2 truncf F
-GLIBC_2.2 truncl F
-GLIBC_2.2 y0 F
-GLIBC_2.2 y0f F
-GLIBC_2.2 y0l F
-GLIBC_2.2 y1 F
-GLIBC_2.2 y1f F
-GLIBC_2.2 y1l F
-GLIBC_2.2 yn F
-GLIBC_2.2 ynf F
-GLIBC_2.2 ynl F
-GLIBC_2.23 __signgam D 0x4
-GLIBC_2.23 lgamma F
-GLIBC_2.23 lgammaf F
-GLIBC_2.23 lgammal F
-GLIBC_2.24 nextdown F
-GLIBC_2.24 nextdownf F
-GLIBC_2.24 nextdownl F
-GLIBC_2.24 nextup F
-GLIBC_2.24 nextupf F
-GLIBC_2.24 nextupl F
-GLIBC_2.25 __iseqsig F
-GLIBC_2.25 __iseqsigf F
-GLIBC_2.25 canonicalize F
-GLIBC_2.25 canonicalizef F
-GLIBC_2.25 canonicalizel F
-GLIBC_2.25 fegetmode F
-GLIBC_2.25 fesetexcept F
-GLIBC_2.25 fesetmode F
-GLIBC_2.25 fetestexceptflag F
-GLIBC_2.25 fmaxmag F
-GLIBC_2.25 fmaxmagf F
-GLIBC_2.25 fmaxmagl F
-GLIBC_2.25 fminmag F
-GLIBC_2.25 fminmagf F
-GLIBC_2.25 fminmagl F
-GLIBC_2.25 fromfp F
-GLIBC_2.25 fromfpf F
-GLIBC_2.25 fromfpl F
-GLIBC_2.25 fromfpx F
-GLIBC_2.25 fromfpxf F
-GLIBC_2.25 fromfpxl F
-GLIBC_2.25 getpayload F
-GLIBC_2.25 getpayloadf F
-GLIBC_2.25 getpayloadl F
-GLIBC_2.25 llogb F
-GLIBC_2.25 llogbf F
-GLIBC_2.25 llogbl F
-GLIBC_2.25 roundeven F
-GLIBC_2.25 roundevenf F
-GLIBC_2.25 roundevenl F
-GLIBC_2.25 setpayload F
-GLIBC_2.25 setpayloadf F
-GLIBC_2.25 setpayloadl F
-GLIBC_2.25 setpayloadsig F
-GLIBC_2.25 setpayloadsigf F
-GLIBC_2.25 setpayloadsigl F
-GLIBC_2.25 totalorder F
-GLIBC_2.25 totalorderf F
-GLIBC_2.25 totalorderl F
-GLIBC_2.25 totalordermag F
-GLIBC_2.25 totalordermagf F
-GLIBC_2.25 totalordermagl F
-GLIBC_2.25 ufromfp F
-GLIBC_2.25 ufromfpf F
-GLIBC_2.25 ufromfpl F
-GLIBC_2.25 ufromfpx F
-GLIBC_2.25 ufromfpxf F
-GLIBC_2.25 ufromfpxl F
-GLIBC_2.27 acosf32 F
-GLIBC_2.27 acosf32x F
-GLIBC_2.27 acosf64 F
-GLIBC_2.27 acoshf32 F
-GLIBC_2.27 acoshf32x F
-GLIBC_2.27 acoshf64 F
-GLIBC_2.27 asinf32 F
-GLIBC_2.27 asinf32x F
-GLIBC_2.27 asinf64 F
-GLIBC_2.27 asinhf32 F
-GLIBC_2.27 asinhf32x F
-GLIBC_2.27 asinhf64 F
-GLIBC_2.27 atan2f32 F
-GLIBC_2.27 atan2f32x F
-GLIBC_2.27 atan2f64 F
-GLIBC_2.27 atanf32 F
-GLIBC_2.27 atanf32x F
-GLIBC_2.27 atanf64 F
-GLIBC_2.27 atanhf32 F
-GLIBC_2.27 atanhf32x F
-GLIBC_2.27 atanhf64 F
-GLIBC_2.27 cabsf32 F
-GLIBC_2.27 cabsf32x F
-GLIBC_2.27 cabsf64 F
-GLIBC_2.27 cacosf32 F
-GLIBC_2.27 cacosf32x F
-GLIBC_2.27 cacosf64 F
-GLIBC_2.27 cacoshf32 F
-GLIBC_2.27 cacoshf32x F
-GLIBC_2.27 cacoshf64 F
-GLIBC_2.27 canonicalizef32 F
-GLIBC_2.27 canonicalizef32x F
-GLIBC_2.27 canonicalizef64 F
-GLIBC_2.27 cargf32 F
-GLIBC_2.27 cargf32x F
-GLIBC_2.27 cargf64 F
-GLIBC_2.27 casinf32 F
-GLIBC_2.27 casinf32x F
-GLIBC_2.27 casinf64 F
-GLIBC_2.27 casinhf32 F
-GLIBC_2.27 casinhf32x F
-GLIBC_2.27 casinhf64 F
-GLIBC_2.27 catanf32 F
-GLIBC_2.27 catanf32x F
-GLIBC_2.27 catanf64 F
-GLIBC_2.27 catanhf32 F
-GLIBC_2.27 catanhf32x F
-GLIBC_2.27 catanhf64 F
-GLIBC_2.27 cbrtf32 F
-GLIBC_2.27 cbrtf32x F
-GLIBC_2.27 cbrtf64 F
-GLIBC_2.27 ccosf32 F
-GLIBC_2.27 ccosf32x F
-GLIBC_2.27 ccosf64 F
-GLIBC_2.27 ccoshf32 F
-GLIBC_2.27 ccoshf32x F
-GLIBC_2.27 ccoshf64 F
-GLIBC_2.27 ceilf32 F
-GLIBC_2.27 ceilf32x F
-GLIBC_2.27 ceilf64 F
-GLIBC_2.27 cexpf32 F
-GLIBC_2.27 cexpf32x F
-GLIBC_2.27 cexpf64 F
-GLIBC_2.27 cimagf32 F
-GLIBC_2.27 cimagf32x F
-GLIBC_2.27 cimagf64 F
-GLIBC_2.27 clog10f32 F
-GLIBC_2.27 clog10f32x F
-GLIBC_2.27 clog10f64 F
-GLIBC_2.27 clogf32 F
-GLIBC_2.27 clogf32x F
-GLIBC_2.27 clogf64 F
-GLIBC_2.27 conjf32 F
-GLIBC_2.27 conjf32x F
-GLIBC_2.27 conjf64 F
-GLIBC_2.27 copysignf32 F
-GLIBC_2.27 copysignf32x F
-GLIBC_2.27 copysignf64 F
-GLIBC_2.27 cosf32 F
-GLIBC_2.27 cosf32x F
-GLIBC_2.27 cosf64 F
-GLIBC_2.27 coshf32 F
-GLIBC_2.27 coshf32x F
-GLIBC_2.27 coshf64 F
-GLIBC_2.27 cpowf32 F
-GLIBC_2.27 cpowf32x F
-GLIBC_2.27 cpowf64 F
-GLIBC_2.27 cprojf32 F
-GLIBC_2.27 cprojf32x F
-GLIBC_2.27 cprojf64 F
-GLIBC_2.27 crealf32 F
-GLIBC_2.27 crealf32x F
-GLIBC_2.27 crealf64 F
-GLIBC_2.27 csinf32 F
-GLIBC_2.27 csinf32x F
-GLIBC_2.27 csinf64 F
-GLIBC_2.27 csinhf32 F
-GLIBC_2.27 csinhf32x F
-GLIBC_2.27 csinhf64 F
-GLIBC_2.27 csqrtf32 F
-GLIBC_2.27 csqrtf32x F
-GLIBC_2.27 csqrtf64 F
-GLIBC_2.27 ctanf32 F
-GLIBC_2.27 ctanf32x F
-GLIBC_2.27 ctanf64 F
-GLIBC_2.27 ctanhf32 F
-GLIBC_2.27 ctanhf32x F
-GLIBC_2.27 ctanhf64 F
-GLIBC_2.27 erfcf32 F
-GLIBC_2.27 erfcf32x F
-GLIBC_2.27 erfcf64 F
-GLIBC_2.27 erff32 F
-GLIBC_2.27 erff32x F
-GLIBC_2.27 erff64 F
-GLIBC_2.27 exp10f32 F
-GLIBC_2.27 exp10f32x F
-GLIBC_2.27 exp10f64 F
-GLIBC_2.27 exp2f F
-GLIBC_2.27 exp2f32 F
-GLIBC_2.27 exp2f32x F
-GLIBC_2.27 exp2f64 F
-GLIBC_2.27 expf F
-GLIBC_2.27 expf32 F
-GLIBC_2.27 expf32x F
-GLIBC_2.27 expf64 F
-GLIBC_2.27 expm1f32 F
-GLIBC_2.27 expm1f32x F
-GLIBC_2.27 expm1f64 F
-GLIBC_2.27 fabsf32 F
-GLIBC_2.27 fabsf32x F
-GLIBC_2.27 fabsf64 F
-GLIBC_2.27 fdimf32 F
-GLIBC_2.27 fdimf32x F
-GLIBC_2.27 fdimf64 F
-GLIBC_2.27 floorf32 F
-GLIBC_2.27 floorf32x F
-GLIBC_2.27 floorf64 F
-GLIBC_2.27 fmaf32 F
-GLIBC_2.27 fmaf32x F
-GLIBC_2.27 fmaf64 F
-GLIBC_2.27 fmaxf32 F
-GLIBC_2.27 fmaxf32x F
-GLIBC_2.27 fmaxf64 F
-GLIBC_2.27 fmaxmagf32 F
-GLIBC_2.27 fmaxmagf32x F
-GLIBC_2.27 fmaxmagf64 F
-GLIBC_2.27 fminf32 F
-GLIBC_2.27 fminf32x F
-GLIBC_2.27 fminf64 F
-GLIBC_2.27 fminmagf32 F
-GLIBC_2.27 fminmagf32x F
-GLIBC_2.27 fminmagf64 F
-GLIBC_2.27 fmodf32 F
-GLIBC_2.27 fmodf32x F
-GLIBC_2.27 fmodf64 F
-GLIBC_2.27 frexpf32 F
-GLIBC_2.27 frexpf32x F
-GLIBC_2.27 frexpf64 F
-GLIBC_2.27 fromfpf32 F
-GLIBC_2.27 fromfpf32x F
-GLIBC_2.27 fromfpf64 F
-GLIBC_2.27 fromfpxf32 F
-GLIBC_2.27 fromfpxf32x F
-GLIBC_2.27 fromfpxf64 F
-GLIBC_2.27 getpayloadf32 F
-GLIBC_2.27 getpayloadf32x F
-GLIBC_2.27 getpayloadf64 F
-GLIBC_2.27 hypotf32 F
-GLIBC_2.27 hypotf32x F
-GLIBC_2.27 hypotf64 F
-GLIBC_2.27 ilogbf32 F
-GLIBC_2.27 ilogbf32x F
-GLIBC_2.27 ilogbf64 F
-GLIBC_2.27 j0f32 F
-GLIBC_2.27 j0f32x F
-GLIBC_2.27 j0f64 F
-GLIBC_2.27 j1f32 F
-GLIBC_2.27 j1f32x F
-GLIBC_2.27 j1f64 F
-GLIBC_2.27 jnf32 F
-GLIBC_2.27 jnf32x F
-GLIBC_2.27 jnf64 F
-GLIBC_2.27 ldexpf32 F
-GLIBC_2.27 ldexpf32x F
-GLIBC_2.27 ldexpf64 F
-GLIBC_2.27 lgammaf32 F
-GLIBC_2.27 lgammaf32_r F
-GLIBC_2.27 lgammaf32x F
-GLIBC_2.27 lgammaf32x_r F
-GLIBC_2.27 lgammaf64 F
-GLIBC_2.27 lgammaf64_r F
-GLIBC_2.27 llogbf32 F
-GLIBC_2.27 llogbf32x F
-GLIBC_2.27 llogbf64 F
-GLIBC_2.27 llrintf32 F
-GLIBC_2.27 llrintf32x F
-GLIBC_2.27 llrintf64 F
-GLIBC_2.27 llroundf32 F
-GLIBC_2.27 llroundf32x F
-GLIBC_2.27 llroundf64 F
-GLIBC_2.27 log10f32 F
-GLIBC_2.27 log10f32x F
-GLIBC_2.27 log10f64 F
-GLIBC_2.27 log1pf32 F
-GLIBC_2.27 log1pf32x F
-GLIBC_2.27 log1pf64 F
-GLIBC_2.27 log2f F
-GLIBC_2.27 log2f32 F
-GLIBC_2.27 log2f32x F
-GLIBC_2.27 log2f64 F
-GLIBC_2.27 logbf32 F
-GLIBC_2.27 logbf32x F
-GLIBC_2.27 logbf64 F
-GLIBC_2.27 logf F
-GLIBC_2.27 logf32 F
-GLIBC_2.27 logf32x F
-GLIBC_2.27 logf64 F
-GLIBC_2.27 lrintf32 F
-GLIBC_2.27 lrintf32x F
-GLIBC_2.27 lrintf64 F
-GLIBC_2.27 lroundf32 F
-GLIBC_2.27 lroundf32x F
-GLIBC_2.27 lroundf64 F
-GLIBC_2.27 modff32 F
-GLIBC_2.27 modff32x F
-GLIBC_2.27 modff64 F
-GLIBC_2.27 nanf32 F
-GLIBC_2.27 nanf32x F
-GLIBC_2.27 nanf64 F
-GLIBC_2.27 nearbyintf32 F
-GLIBC_2.27 nearbyintf32x F
-GLIBC_2.27 nearbyintf64 F
-GLIBC_2.27 nextafterf32 F
-GLIBC_2.27 nextafterf32x F
-GLIBC_2.27 nextafterf64 F
-GLIBC_2.27 nextdownf32 F
-GLIBC_2.27 nextdownf32x F
-GLIBC_2.27 nextdownf64 F
-GLIBC_2.27 nextupf32 F
-GLIBC_2.27 nextupf32x F
-GLIBC_2.27 nextupf64 F
-GLIBC_2.27 powf F
-GLIBC_2.27 powf32 F
-GLIBC_2.27 powf32x F
-GLIBC_2.27 powf64 F
-GLIBC_2.27 remainderf32 F
-GLIBC_2.27 remainderf32x F
-GLIBC_2.27 remainderf64 F
-GLIBC_2.27 remquof32 F
-GLIBC_2.27 remquof32x F
-GLIBC_2.27 remquof64 F
-GLIBC_2.27 rintf32 F
-GLIBC_2.27 rintf32x F
-GLIBC_2.27 rintf64 F
-GLIBC_2.27 roundevenf32 F
-GLIBC_2.27 roundevenf32x F
-GLIBC_2.27 roundevenf64 F
-GLIBC_2.27 roundf32 F
-GLIBC_2.27 roundf32x F
-GLIBC_2.27 roundf64 F
-GLIBC_2.27 scalblnf32 F
-GLIBC_2.27 scalblnf32x F
-GLIBC_2.27 scalblnf64 F
-GLIBC_2.27 scalbnf32 F
-GLIBC_2.27 scalbnf32x F
-GLIBC_2.27 scalbnf64 F
-GLIBC_2.27 setpayloadf32 F
-GLIBC_2.27 setpayloadf32x F
-GLIBC_2.27 setpayloadf64 F
-GLIBC_2.27 setpayloadsigf32 F
-GLIBC_2.27 setpayloadsigf32x F
-GLIBC_2.27 setpayloadsigf64 F
-GLIBC_2.27 sincosf32 F
-GLIBC_2.27 sincosf32x F
-GLIBC_2.27 sincosf64 F
-GLIBC_2.27 sinf32 F
-GLIBC_2.27 sinf32x F
-GLIBC_2.27 sinf64 F
-GLIBC_2.27 sinhf32 F
-GLIBC_2.27 sinhf32x F
-GLIBC_2.27 sinhf64 F
-GLIBC_2.27 sqrtf32 F
-GLIBC_2.27 sqrtf32x F
-GLIBC_2.27 sqrtf64 F
-GLIBC_2.27 tanf32 F
-GLIBC_2.27 tanf32x F
-GLIBC_2.27 tanf64 F
-GLIBC_2.27 tanhf32 F
-GLIBC_2.27 tanhf32x F
-GLIBC_2.27 tanhf64 F
-GLIBC_2.27 tgammaf32 F
-GLIBC_2.27 tgammaf32x F
-GLIBC_2.27 tgammaf64 F
-GLIBC_2.27 totalorderf32 F
-GLIBC_2.27 totalorderf32x F
-GLIBC_2.27 totalorderf64 F
-GLIBC_2.27 totalordermagf32 F
-GLIBC_2.27 totalordermagf32x F
-GLIBC_2.27 totalordermagf64 F
-GLIBC_2.27 truncf32 F
-GLIBC_2.27 truncf32x F
-GLIBC_2.27 truncf64 F
-GLIBC_2.27 ufromfpf32 F
-GLIBC_2.27 ufromfpf32x F
-GLIBC_2.27 ufromfpf64 F
-GLIBC_2.27 ufromfpxf32 F
-GLIBC_2.27 ufromfpxf32x F
-GLIBC_2.27 ufromfpxf64 F
-GLIBC_2.27 y0f32 F
-GLIBC_2.27 y0f32x F
-GLIBC_2.27 y0f64 F
-GLIBC_2.27 y1f32 F
-GLIBC_2.27 y1f32x F
-GLIBC_2.27 y1f64 F
-GLIBC_2.27 ynf32 F
-GLIBC_2.27 ynf32x F
-GLIBC_2.27 ynf64 F
-GLIBC_2.28 daddl F
-GLIBC_2.28 ddivl F
-GLIBC_2.28 dmull F
-GLIBC_2.28 dsubl F
-GLIBC_2.28 f32addf32x F
-GLIBC_2.28 f32addf64 F
-GLIBC_2.28 f32divf32x F
-GLIBC_2.28 f32divf64 F
-GLIBC_2.28 f32mulf32x F
-GLIBC_2.28 f32mulf64 F
-GLIBC_2.28 f32subf32x F
-GLIBC_2.28 f32subf64 F
-GLIBC_2.28 f32xaddf64 F
-GLIBC_2.28 f32xdivf64 F
-GLIBC_2.28 f32xmulf64 F
-GLIBC_2.28 f32xsubf64 F
-GLIBC_2.28 fadd F
-GLIBC_2.28 faddl F
-GLIBC_2.28 fdiv F
-GLIBC_2.28 fdivl F
-GLIBC_2.28 fmul F
-GLIBC_2.28 fmull F
-GLIBC_2.28 fsub F
-GLIBC_2.28 fsubl F
-GLIBC_2.4 exp2l F
diff --git a/sysdeps/unix/sysv/linux/sh/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/libpthread.abilist
deleted file mode 100644
index bcba07f575..0000000000
--- a/sysdeps/unix/sysv/linux/sh/libpthread.abilist
+++ /dev/null
@@ -1,256 +0,0 @@
-GLIBC_2.11 pthread_sigqueue F
-GLIBC_2.12 pthread_getname_np F
-GLIBC_2.12 pthread_mutex_consistent F
-GLIBC_2.12 pthread_mutexattr_getrobust F
-GLIBC_2.12 pthread_mutexattr_setrobust F
-GLIBC_2.12 pthread_setname_np F
-GLIBC_2.18 pthread_getattr_default_np F
-GLIBC_2.18 pthread_setattr_default_np F
-GLIBC_2.2 _IO_flockfile F
-GLIBC_2.2 _IO_ftrylockfile F
-GLIBC_2.2 _IO_funlockfile F
-GLIBC_2.2 __close F
-GLIBC_2.2 __connect F
-GLIBC_2.2 __errno_location F
-GLIBC_2.2 __fcntl F
-GLIBC_2.2 __fork F
-GLIBC_2.2 __h_errno_location F
-GLIBC_2.2 __libc_allocate_rtsig F
-GLIBC_2.2 __libc_current_sigrtmax F
-GLIBC_2.2 __libc_current_sigrtmin F
-GLIBC_2.2 __lseek F
-GLIBC_2.2 __open F
-GLIBC_2.2 __open64 F
-GLIBC_2.2 __pread64 F
-GLIBC_2.2 __pthread_getspecific F
-GLIBC_2.2 __pthread_key_create F
-GLIBC_2.2 __pthread_mutex_destroy F
-GLIBC_2.2 __pthread_mutex_init F
-GLIBC_2.2 __pthread_mutex_lock F
-GLIBC_2.2 __pthread_mutex_trylock F
-GLIBC_2.2 __pthread_mutex_unlock F
-GLIBC_2.2 __pthread_mutexattr_destroy F
-GLIBC_2.2 __pthread_mutexattr_init F
-GLIBC_2.2 __pthread_mutexattr_settype F
-GLIBC_2.2 __pthread_once F
-GLIBC_2.2 __pthread_rwlock_destroy F
-GLIBC_2.2 __pthread_rwlock_init F
-GLIBC_2.2 __pthread_rwlock_rdlock F
-GLIBC_2.2 __pthread_rwlock_tryrdlock F
-GLIBC_2.2 __pthread_rwlock_trywrlock F
-GLIBC_2.2 __pthread_rwlock_unlock F
-GLIBC_2.2 __pthread_rwlock_wrlock F
-GLIBC_2.2 __pthread_setspecific F
-GLIBC_2.2 __pwrite64 F
-GLIBC_2.2 __read F
-GLIBC_2.2 __res_state F
-GLIBC_2.2 __send F
-GLIBC_2.2 __sigaction F
-GLIBC_2.2 __vfork F
-GLIBC_2.2 __wait F
-GLIBC_2.2 __write F
-GLIBC_2.2 _pthread_cleanup_pop F
-GLIBC_2.2 _pthread_cleanup_pop_restore F
-GLIBC_2.2 _pthread_cleanup_push F
-GLIBC_2.2 _pthread_cleanup_push_defer F
-GLIBC_2.2 accept F
-GLIBC_2.2 close F
-GLIBC_2.2 connect F
-GLIBC_2.2 fcntl F
-GLIBC_2.2 flockfile F
-GLIBC_2.2 fork F
-GLIBC_2.2 fsync F
-GLIBC_2.2 ftrylockfile F
-GLIBC_2.2 funlockfile F
-GLIBC_2.2 longjmp F
-GLIBC_2.2 lseek F
-GLIBC_2.2 lseek64 F
-GLIBC_2.2 msync F
-GLIBC_2.2 nanosleep F
-GLIBC_2.2 open F
-GLIBC_2.2 open64 F
-GLIBC_2.2 pause F
-GLIBC_2.2 pread F
-GLIBC_2.2 pread64 F
-GLIBC_2.2 pthread_atfork F
-GLIBC_2.2 pthread_attr_destroy F
-GLIBC_2.2 pthread_attr_getdetachstate F
-GLIBC_2.2 pthread_attr_getguardsize F
-GLIBC_2.2 pthread_attr_getinheritsched F
-GLIBC_2.2 pthread_attr_getschedparam F
-GLIBC_2.2 pthread_attr_getschedpolicy F
-GLIBC_2.2 pthread_attr_getscope F
-GLIBC_2.2 pthread_attr_getstack F
-GLIBC_2.2 pthread_attr_getstackaddr F
-GLIBC_2.2 pthread_attr_getstacksize F
-GLIBC_2.2 pthread_attr_init F
-GLIBC_2.2 pthread_attr_setdetachstate F
-GLIBC_2.2 pthread_attr_setguardsize F
-GLIBC_2.2 pthread_attr_setinheritsched F
-GLIBC_2.2 pthread_attr_setschedparam F
-GLIBC_2.2 pthread_attr_setschedpolicy F
-GLIBC_2.2 pthread_attr_setscope F
-GLIBC_2.2 pthread_attr_setstack F
-GLIBC_2.2 pthread_attr_setstackaddr F
-GLIBC_2.2 pthread_attr_setstacksize F
-GLIBC_2.2 pthread_barrier_destroy F
-GLIBC_2.2 pthread_barrier_init F
-GLIBC_2.2 pthread_barrier_wait F
-GLIBC_2.2 pthread_barrierattr_destroy F
-GLIBC_2.2 pthread_barrierattr_init F
-GLIBC_2.2 pthread_barrierattr_setpshared F
-GLIBC_2.2 pthread_cancel F
-GLIBC_2.2 pthread_cond_broadcast F
-GLIBC_2.2 pthread_cond_destroy F
-GLIBC_2.2 pthread_cond_init F
-GLIBC_2.2 pthread_cond_signal F
-GLIBC_2.2 pthread_cond_timedwait F
-GLIBC_2.2 pthread_cond_wait F
-GLIBC_2.2 pthread_condattr_destroy F
-GLIBC_2.2 pthread_condattr_getpshared F
-GLIBC_2.2 pthread_condattr_init F
-GLIBC_2.2 pthread_condattr_setpshared F
-GLIBC_2.2 pthread_create F
-GLIBC_2.2 pthread_detach F
-GLIBC_2.2 pthread_equal F
-GLIBC_2.2 pthread_exit F
-GLIBC_2.2 pthread_getconcurrency F
-GLIBC_2.2 pthread_getcpuclockid F
-GLIBC_2.2 pthread_getschedparam F
-GLIBC_2.2 pthread_getspecific F
-GLIBC_2.2 pthread_join F
-GLIBC_2.2 pthread_key_create F
-GLIBC_2.2 pthread_key_delete F
-GLIBC_2.2 pthread_kill F
-GLIBC_2.2 pthread_kill_other_threads_np F
-GLIBC_2.2 pthread_mutex_destroy F
-GLIBC_2.2 pthread_mutex_init F
-GLIBC_2.2 pthread_mutex_lock F
-GLIBC_2.2 pthread_mutex_timedlock F
-GLIBC_2.2 pthread_mutex_trylock F
-GLIBC_2.2 pthread_mutex_unlock F
-GLIBC_2.2 pthread_mutexattr_destroy F
-GLIBC_2.2 pthread_mutexattr_getkind_np F
-GLIBC_2.2 pthread_mutexattr_getpshared F
-GLIBC_2.2 pthread_mutexattr_gettype F
-GLIBC_2.2 pthread_mutexattr_init F
-GLIBC_2.2 pthread_mutexattr_setkind_np F
-GLIBC_2.2 pthread_mutexattr_setpshared F
-GLIBC_2.2 pthread_mutexattr_settype F
-GLIBC_2.2 pthread_once F
-GLIBC_2.2 pthread_rwlock_destroy F
-GLIBC_2.2 pthread_rwlock_init F
-GLIBC_2.2 pthread_rwlock_rdlock F
-GLIBC_2.2 pthread_rwlock_timedrdlock F
-GLIBC_2.2 pthread_rwlock_timedwrlock F
-GLIBC_2.2 pthread_rwlock_tryrdlock F
-GLIBC_2.2 pthread_rwlock_trywrlock F
-GLIBC_2.2 pthread_rwlock_unlock F
-GLIBC_2.2 pthread_rwlock_wrlock F
-GLIBC_2.2 pthread_rwlockattr_destroy F
-GLIBC_2.2 pthread_rwlockattr_getkind_np F
-GLIBC_2.2 pthread_rwlockattr_getpshared F
-GLIBC_2.2 pthread_rwlockattr_init F
-GLIBC_2.2 pthread_rwlockattr_setkind_np F
-GLIBC_2.2 pthread_rwlockattr_setpshared F
-GLIBC_2.2 pthread_self F
-GLIBC_2.2 pthread_setcancelstate F
-GLIBC_2.2 pthread_setcanceltype F
-GLIBC_2.2 pthread_setconcurrency F
-GLIBC_2.2 pthread_setschedparam F
-GLIBC_2.2 pthread_setspecific F
-GLIBC_2.2 pthread_sigmask F
-GLIBC_2.2 pthread_spin_destroy F
-GLIBC_2.2 pthread_spin_init F
-GLIBC_2.2 pthread_spin_lock F
-GLIBC_2.2 pthread_spin_trylock F
-GLIBC_2.2 pthread_spin_unlock F
-GLIBC_2.2 pthread_testcancel F
-GLIBC_2.2 pthread_yield F
-GLIBC_2.2 pwrite F
-GLIBC_2.2 pwrite64 F
-GLIBC_2.2 raise F
-GLIBC_2.2 read F
-GLIBC_2.2 recv F
-GLIBC_2.2 recvfrom F
-GLIBC_2.2 recvmsg F
-GLIBC_2.2 sem_close F
-GLIBC_2.2 sem_destroy F
-GLIBC_2.2 sem_getvalue F
-GLIBC_2.2 sem_init F
-GLIBC_2.2 sem_open F
-GLIBC_2.2 sem_post F
-GLIBC_2.2 sem_timedwait F
-GLIBC_2.2 sem_trywait F
-GLIBC_2.2 sem_unlink F
-GLIBC_2.2 sem_wait F
-GLIBC_2.2 send F
-GLIBC_2.2 sendmsg F
-GLIBC_2.2 sendto F
-GLIBC_2.2 sigaction F
-GLIBC_2.2 siglongjmp F
-GLIBC_2.2 sigwait F
-GLIBC_2.2 system F
-GLIBC_2.2 tcdrain F
-GLIBC_2.2 vfork F
-GLIBC_2.2 wait F
-GLIBC_2.2 waitpid F
-GLIBC_2.2 write F
-GLIBC_2.2.3 pthread_getattr_np F
-GLIBC_2.2.6 __nanosleep F
-GLIBC_2.28 call_once F
-GLIBC_2.28 cnd_broadcast F
-GLIBC_2.28 cnd_destroy F
-GLIBC_2.28 cnd_init F
-GLIBC_2.28 cnd_signal F
-GLIBC_2.28 cnd_timedwait F
-GLIBC_2.28 cnd_wait F
-GLIBC_2.28 mtx_destroy F
-GLIBC_2.28 mtx_init F
-GLIBC_2.28 mtx_lock F
-GLIBC_2.28 mtx_timedlock F
-GLIBC_2.28 mtx_trylock F
-GLIBC_2.28 mtx_unlock F
-GLIBC_2.28 thrd_create F
-GLIBC_2.28 thrd_detach F
-GLIBC_2.28 thrd_exit F
-GLIBC_2.28 thrd_join F
-GLIBC_2.28 tss_create F
-GLIBC_2.28 tss_delete F
-GLIBC_2.28 tss_get F
-GLIBC_2.28 tss_set F
-GLIBC_2.3.2 pthread_cond_broadcast F
-GLIBC_2.3.2 pthread_cond_destroy F
-GLIBC_2.3.2 pthread_cond_init F
-GLIBC_2.3.2 pthread_cond_signal F
-GLIBC_2.3.2 pthread_cond_timedwait F
-GLIBC_2.3.2 pthread_cond_wait F
-GLIBC_2.3.3 __pthread_cleanup_routine F
-GLIBC_2.3.3 __pthread_register_cancel F
-GLIBC_2.3.3 __pthread_register_cancel_defer F
-GLIBC_2.3.3 __pthread_unregister_cancel F
-GLIBC_2.3.3 __pthread_unregister_cancel_restore F
-GLIBC_2.3.3 __pthread_unwind_next F
-GLIBC_2.3.3 pthread_attr_getaffinity_np F
-GLIBC_2.3.3 pthread_attr_setaffinity_np F
-GLIBC_2.3.3 pthread_barrierattr_getpshared F
-GLIBC_2.3.3 pthread_condattr_getclock F
-GLIBC_2.3.3 pthread_condattr_setclock F
-GLIBC_2.3.3 pthread_getaffinity_np F
-GLIBC_2.3.3 pthread_setaffinity_np F
-GLIBC_2.3.3 pthread_timedjoin_np F
-GLIBC_2.3.3 pthread_tryjoin_np F
-GLIBC_2.3.4 pthread_attr_getaffinity_np F
-GLIBC_2.3.4 pthread_attr_setaffinity_np F
-GLIBC_2.3.4 pthread_getaffinity_np F
-GLIBC_2.3.4 pthread_setaffinity_np F
-GLIBC_2.3.4 pthread_setschedprio F
-GLIBC_2.4 pthread_mutex_consistent_np F
-GLIBC_2.4 pthread_mutex_getprioceiling F
-GLIBC_2.4 pthread_mutex_setprioceiling F
-GLIBC_2.4 pthread_mutexattr_getprioceiling F
-GLIBC_2.4 pthread_mutexattr_getprotocol F
-GLIBC_2.4 pthread_mutexattr_getrobust_np F
-GLIBC_2.4 pthread_mutexattr_setprioceiling F
-GLIBC_2.4 pthread_mutexattr_setprotocol F
-GLIBC_2.4 pthread_mutexattr_setrobust_np F
diff --git a/sysdeps/unix/sysv/linux/sh/librt.abilist b/sysdeps/unix/sysv/linux/sh/librt.abilist
deleted file mode 100644
index 595f1b712a..0000000000
--- a/sysdeps/unix/sysv/linux/sh/librt.abilist
+++ /dev/null
@@ -1,42 +0,0 @@
-GLIBC_2.1 aio_cancel F
-GLIBC_2.1 aio_cancel64 F
-GLIBC_2.1 aio_error F
-GLIBC_2.1 aio_error64 F
-GLIBC_2.1 aio_fsync F
-GLIBC_2.1 aio_fsync64 F
-GLIBC_2.1 aio_init F
-GLIBC_2.1 aio_read F
-GLIBC_2.1 aio_read64 F
-GLIBC_2.1 aio_return F
-GLIBC_2.1 aio_return64 F
-GLIBC_2.1 aio_suspend F
-GLIBC_2.1 aio_suspend64 F
-GLIBC_2.1 aio_write F
-GLIBC_2.1 aio_write64 F
-GLIBC_2.1 lio_listio F
-GLIBC_2.1 lio_listio64 F
-GLIBC_2.2 clock_getcpuclockid F
-GLIBC_2.2 clock_getres F
-GLIBC_2.2 clock_gettime F
-GLIBC_2.2 clock_nanosleep F
-GLIBC_2.2 clock_settime F
-GLIBC_2.2 shm_open F
-GLIBC_2.2 shm_unlink F
-GLIBC_2.2 timer_create F
-GLIBC_2.2 timer_delete F
-GLIBC_2.2 timer_getoverrun F
-GLIBC_2.2 timer_gettime F
-GLIBC_2.2 timer_settime F
-GLIBC_2.3.4 mq_close F
-GLIBC_2.3.4 mq_getattr F
-GLIBC_2.3.4 mq_notify F
-GLIBC_2.3.4 mq_open F
-GLIBC_2.3.4 mq_receive F
-GLIBC_2.3.4 mq_send F
-GLIBC_2.3.4 mq_setattr F
-GLIBC_2.3.4 mq_timedreceive F
-GLIBC_2.3.4 mq_timedsend F
-GLIBC_2.3.4 mq_unlink F
-GLIBC_2.4 lio_listio F
-GLIBC_2.4 lio_listio64 F
-GLIBC_2.7 __mq_open_2 F
diff --git a/sysdeps/unix/sysv/linux/sh/lockf64.c b/sysdeps/unix/sysv/linux/sh/lockf64.c
deleted file mode 100644
index a88f5a784a..0000000000
--- a/sysdeps/unix/sysv/linux/sh/lockf64.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/lockf64.c>
diff --git a/sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h b/sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h
index d6fd1cbef9..bfc138482a 100644
--- a/sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h
+++ b/sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifdef __ASSEMBLER__
diff --git a/sysdeps/unix/sysv/linux/sh/makecontext.S b/sysdeps/unix/sysv/linux/sh/makecontext.S
index d55792a177..ede921486c 100644
--- a/sysdeps/unix/sysv/linux/sh/makecontext.S
+++ b/sysdeps/unix/sysv/linux/sh/makecontext.S
@@ -1,5 +1,5 @@
/* Create new context.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <abort-instr.h>
diff --git a/sysdeps/unix/sysv/linux/sh/pipe.S b/sysdeps/unix/sysv/linux/sh/pipe.S
index 0f6409a1ef..7e59620fc3 100644
--- a/sysdeps/unix/sysv/linux/sh/pipe.S
+++ b/sysdeps/unix/sysv/linux/sh/pipe.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/sh/profil-counter.h b/sysdeps/unix/sysv/linux/sh/profil-counter.h
deleted file mode 100644
index 8c7545bef5..0000000000
--- a/sysdeps/unix/sysv/linux/sh/profil-counter.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Low-level statistical profiling support function. Linux/SH version.
- Copyright (C) 1996-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <signal.h>
-
-static void
-__profil_counter (int signo, int _a2, int _a3, int _a4, struct sigcontext sc)
-{
- void *pc;
- pc = (void *) sc.sc_pc;
- profil_count (pc);
-
- /* This is a hack to prevent the compiler from implementing the
- above function call as a sibcall. The sibcall would overwrite
- the signal context. */
- asm volatile ("");
-}
diff --git a/sysdeps/unix/sysv/linux/sh/pt-vfork.S b/sysdeps/unix/sysv/linux/sh/pt-vfork.S
deleted file mode 100644
index 65cc3823ac..0000000000
--- a/sysdeps/unix/sysv/linux/sh/pt-vfork.S
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/alpha/pt-vfork.S>
diff --git a/sysdeps/unix/sysv/linux/sh/register-dump.h b/sysdeps/unix/sysv/linux/sh/register-dump.h
new file mode 100644
index 0000000000..9a64561ad9
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sh/register-dump.h
@@ -0,0 +1,263 @@
+/* Dump registers.
+ Copyright (C) 1999-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <sys/uio.h>
+#include <_itoa.h>
+
+/* We will print the register dump in this format:
+
+ R0: XXXXXXXX R1: XXXXXXXX R2: XXXXXXXX R3: XXXXXXXX
+ R4: XXXXXXXX R5: XXXXXXXX R6: XXXXXXXX R7: XXXXXXXX
+ R8: XXXXXXXX R9: XXXXXXXX R10: XXXXXXXX R11: XXXXXXXX
+ R12: XXXXXXXX R13: XXXXXXXX R14: XXXXXXXX R15: XXXXXXXX
+
+MACL: XXXXXXXX MACH: XXXXXXXX
+
+ PC: XXXXXXXX PR: XXXXXXXX GBR: XXXXXXXX SR: XXXXXXXX
+
+ FR0: XXXXXXXX FR1: XXXXXXXX FR2: XXXXXXXX FR3: XXXXXXXX
+ FR4: XXXXXXXX FR5: XXXXXXXX FR6: XXXXXXXX FR7: XXXXXXXX
+ FR8: XXXXXXXX FR9: XXXXXXXX FR10: XXXXXXXX FR11: XXXXXXXX
+FR12: XXXXXXXX FR13: XXXXXXXX FR14: XXXXXXXX FR15: XXXXXXXX
+
+ XR0: XXXXXXXX XR1: XXXXXXXX XR2: XXXXXXXX XR3: XXXXXXXX
+ XR4: XXXXXXXX XR5: XXXXXXXX XR6: XXXXXXXX XR7: XXXXXXXX
+ XR8: XXXXXXXX XR9: XXXXXXXX XR10: XXXXXXXX XR11: XXXXXXXX
+XR12: XXXXXXXX XR13: XXXXXXXX XR14: XXXXXXXX XR15: XXXXXXXX
+
+FPSCR: XXXXXXXX FPUL: XXXXXXXX
+
+ */
+
+static void
+hexvalue (unsigned long int value, char *buf, size_t len)
+{
+ char *cp = _itoa_word (value, buf + len, 16, 0);
+ while (cp > buf)
+ *--cp = '0';
+}
+
+static void
+register_dump (int fd, struct ucontext_t *ctx)
+{
+ char regs[22][8];
+ struct iovec iov[22 * 2 + 34 * 2 + 2];
+ size_t nr = 0;
+
+#define ADD_STRING(str) \
+ iov[nr].iov_base = (char *) str; \
+ iov[nr].iov_len = strlen (str); \
+ ++nr
+#define ADD_MEM(str, len) \
+ iov[nr].iov_base = str; \
+ iov[nr].iov_len = len; \
+ ++nr
+
+ /* Generate strings of register contents. */
+ hexvalue (ctx->uc_mcontext.gregs[REG_R0], regs[0], 8);
+ hexvalue (ctx->uc_mcontext.gregs[REG_R1], regs[1], 8);
+ hexvalue (ctx->uc_mcontext.gregs[REG_R2], regs[2], 8);
+ hexvalue (ctx->uc_mcontext.gregs[REG_R3], regs[3], 8);
+ hexvalue (ctx->uc_mcontext.gregs[REG_R4], regs[4], 8);
+ hexvalue (ctx->uc_mcontext.gregs[REG_R5], regs[5], 8);
+ hexvalue (ctx->uc_mcontext.gregs[REG_R6], regs[6], 8);
+ hexvalue (ctx->uc_mcontext.gregs[REG_R7], regs[7], 8);
+ hexvalue (ctx->uc_mcontext.gregs[REG_R8], regs[8], 8);
+ hexvalue (ctx->uc_mcontext.gregs[REG_R9], regs[9], 8);
+ hexvalue (ctx->uc_mcontext.gregs[REG_R10], regs[10], 8);
+ hexvalue (ctx->uc_mcontext.gregs[REG_R11], regs[11], 8);
+ hexvalue (ctx->uc_mcontext.gregs[REG_R12], regs[12], 8);
+ hexvalue (ctx->uc_mcontext.gregs[REG_R13], regs[13], 8);
+ hexvalue (ctx->uc_mcontext.gregs[REG_R14], regs[14], 8);
+ hexvalue (ctx->uc_mcontext.gregs[REG_R15], regs[15], 8);
+ hexvalue (ctx->uc_mcontext.macl, regs[16], 8);
+ hexvalue (ctx->uc_mcontext.mach, regs[17], 8);
+ hexvalue (ctx->uc_mcontext.pc, regs[18], 8);
+ hexvalue (ctx->uc_mcontext.pr, regs[19], 8);
+ hexvalue (ctx->uc_mcontext.gbr, regs[20], 8);
+ hexvalue (ctx->uc_mcontext.sr, regs[21], 8);
+
+ /* Generate the output. */
+ ADD_STRING ("Register dump:\n\n R0: ");
+ ADD_MEM (regs[0], 8);
+ ADD_STRING (" R1: ");
+ ADD_MEM (regs[1], 8);
+ ADD_STRING (" R2: ");
+ ADD_MEM (regs[2], 8);
+ ADD_STRING (" R3: ");
+ ADD_MEM (regs[3], 8);
+ ADD_STRING ("\n R4: ");
+ ADD_MEM (regs[4], 8);
+ ADD_STRING (" R5: ");
+ ADD_MEM (regs[5], 8);
+ ADD_STRING (" R6: ");
+ ADD_MEM (regs[6], 8);
+ ADD_STRING (" R7: ");
+ ADD_MEM (regs[7], 8);
+ ADD_STRING ("\n R8: ");
+ ADD_MEM (regs[8], 8);
+ ADD_STRING (" R9: ");
+ ADD_MEM (regs[9], 8);
+ ADD_STRING (" R10: ");
+ ADD_MEM (regs[10], 8);
+ ADD_STRING (" R11: ");
+ ADD_MEM (regs[11], 8);
+ ADD_STRING ("\n R12: ");
+ ADD_MEM (regs[12], 8);
+ ADD_STRING (" R13: ");
+ ADD_MEM (regs[13], 8);
+ ADD_STRING (" R14: ");
+ ADD_MEM (regs[14], 8);
+ ADD_STRING (" R15: ");
+ ADD_MEM (regs[15], 8);
+
+ ADD_STRING ("\n\nMACL: ");
+ ADD_MEM (regs[16], 8);
+ ADD_STRING (" MACH: ");
+ ADD_MEM (regs[17], 8);
+
+ ADD_STRING ("\n\n PC: ");
+ ADD_MEM (regs[18], 8);
+ ADD_STRING (" PR: ");
+ ADD_MEM (regs[19], 8);
+ ADD_STRING (" GBR: ");
+ ADD_MEM (regs[20], 8);
+ ADD_STRING (" SR: ");
+ ADD_MEM (regs[21], 8);
+
+ ADD_STRING ("\n");
+
+#ifdef __SH_FPU_ANY__
+ char fpregs[34][8];
+ if (ctx->uc_mcontext.ownedfp != 0)
+ {
+ hexvalue (ctx->uc_mcontext.fpregs[0], fpregs[0], 8);
+ hexvalue (ctx->uc_mcontext.fpregs[1], fpregs[1], 8);
+ hexvalue (ctx->uc_mcontext.fpregs[2], fpregs[2], 8);
+ hexvalue (ctx->uc_mcontext.fpregs[3], fpregs[3], 8);
+ hexvalue (ctx->uc_mcontext.fpregs[4], fpregs[4], 8);
+ hexvalue (ctx->uc_mcontext.fpregs[5], fpregs[5], 8);
+ hexvalue (ctx->uc_mcontext.fpregs[6], fpregs[6], 8);
+ hexvalue (ctx->uc_mcontext.fpregs[7], fpregs[7], 8);
+ hexvalue (ctx->uc_mcontext.fpregs[8], fpregs[8], 8);
+ hexvalue (ctx->uc_mcontext.fpregs[9], fpregs[9], 8);
+ hexvalue (ctx->uc_mcontext.fpregs[10], fpregs[10], 8);
+ hexvalue (ctx->uc_mcontext.fpregs[11], fpregs[11], 8);
+ hexvalue (ctx->uc_mcontext.fpregs[12], fpregs[12], 8);
+ hexvalue (ctx->uc_mcontext.fpregs[13], fpregs[13], 8);
+ hexvalue (ctx->uc_mcontext.fpregs[14], fpregs[14], 8);
+ hexvalue (ctx->uc_mcontext.fpregs[15], fpregs[15], 8);
+ hexvalue (ctx->uc_mcontext.xfpregs[0], fpregs[16], 8);
+ hexvalue (ctx->uc_mcontext.xfpregs[1], fpregs[17], 8);
+ hexvalue (ctx->uc_mcontext.xfpregs[2], fpregs[18], 8);
+ hexvalue (ctx->uc_mcontext.xfpregs[3], fpregs[19], 8);
+ hexvalue (ctx->uc_mcontext.xfpregs[4], fpregs[20], 8);
+ hexvalue (ctx->uc_mcontext.xfpregs[5], fpregs[21], 8);
+ hexvalue (ctx->uc_mcontext.xfpregs[6], fpregs[22], 8);
+ hexvalue (ctx->uc_mcontext.xfpregs[7], fpregs[23], 8);
+ hexvalue (ctx->uc_mcontext.xfpregs[8], fpregs[24], 8);
+ hexvalue (ctx->uc_mcontext.xfpregs[9], fpregs[25], 8);
+ hexvalue (ctx->uc_mcontext.xfpregs[10], fpregs[26], 8);
+ hexvalue (ctx->uc_mcontext.xfpregs[11], fpregs[27], 8);
+ hexvalue (ctx->uc_mcontext.xfpregs[12], fpregs[28], 8);
+ hexvalue (ctx->uc_mcontext.xfpregs[13], fpregs[29], 8);
+ hexvalue (ctx->uc_mcontext.xfpregs[14], fpregs[30], 8);
+ hexvalue (ctx->uc_mcontext.xfpregs[15], fpregs[31], 8);
+ hexvalue (ctx->uc_mcontext.fpscr, fpregs[32], 8);
+ hexvalue (ctx->uc_mcontext.fpul, fpregs[33], 8);
+
+ ADD_STRING ("\n\n FR0: ");
+ ADD_MEM (fpregs[0], 8);
+ ADD_STRING (" FR1: ");
+ ADD_MEM (fpregs[1], 8);
+ ADD_STRING (" FR2: ");
+ ADD_MEM (fpregs[2], 8);
+ ADD_STRING (" FR3: ");
+ ADD_MEM (fpregs[3], 8);
+ ADD_STRING ("\n FR4: ");
+ ADD_MEM (fpregs[4], 8);
+ ADD_STRING (" FR5: ");
+ ADD_MEM (fpregs[5], 8);
+ ADD_STRING (" FR6: ");
+ ADD_MEM (fpregs[6], 8);
+ ADD_STRING (" FR7: ");
+ ADD_MEM (fpregs[7], 8);
+ ADD_STRING ("\n FR8: ");
+ ADD_MEM (fpregs[8], 8);
+ ADD_STRING (" FR9: ");
+ ADD_MEM (fpregs[9], 8);
+ ADD_STRING (" FR10: ");
+ ADD_MEM (fpregs[10], 8);
+ ADD_STRING (" FR11: ");
+ ADD_MEM (fpregs[11], 8);
+ ADD_STRING ("\nFR12: ");
+ ADD_MEM (fpregs[12], 8);
+ ADD_STRING (" FR13: ");
+ ADD_MEM (fpregs[13], 8);
+ ADD_STRING (" FR14: ");
+ ADD_MEM (fpregs[14], 8);
+ ADD_STRING (" FR15: ");
+ ADD_MEM (fpregs[15], 8);
+ ADD_STRING ("\n\n XR0: ");
+ ADD_MEM (fpregs[16], 8);
+ ADD_STRING (" XR1: ");
+ ADD_MEM (fpregs[17], 8);
+ ADD_STRING (" XR2: ");
+ ADD_MEM (fpregs[18], 8);
+ ADD_STRING (" XR3: ");
+ ADD_MEM (fpregs[19], 8);
+ ADD_STRING ("\n XR4: ");
+ ADD_MEM (fpregs[20], 8);
+ ADD_STRING (" XR5: ");
+ ADD_MEM (fpregs[21], 8);
+ ADD_STRING (" XR6: ");
+ ADD_MEM (fpregs[22], 8);
+ ADD_STRING (" XR7: ");
+ ADD_MEM (fpregs[23], 8);
+ ADD_STRING ("\n XR8: ");
+ ADD_MEM (fpregs[24], 8);
+ ADD_STRING (" XR9: ");
+ ADD_MEM (fpregs[25], 8);
+ ADD_STRING (" XR10: ");
+ ADD_MEM (fpregs[26], 8);
+ ADD_STRING (" XR11: ");
+ ADD_MEM (fpregs[27], 8);
+ ADD_STRING ("\nXR12: ");
+ ADD_MEM (fpregs[28], 8);
+ ADD_STRING (" XR13: ");
+ ADD_MEM (fpregs[29], 8);
+ ADD_STRING (" XR14: ");
+ ADD_MEM (fpregs[30], 8);
+ ADD_STRING (" XR15: ");
+ ADD_MEM (fpregs[31], 8);
+
+ ADD_STRING ("\n\nFPSCR: ");
+ ADD_MEM (fpregs[32], 8);
+ ADD_STRING (" FPUL: ");
+ ADD_MEM (fpregs[33], 8);
+
+ ADD_STRING ("\n");
+ }
+#endif /* __SH_FPU_ANY__ */
+
+ /* Write the stuff out. */
+ writev (fd, iov, nr);
+}
+
+
+#define REGISTER_DUMP register_dump (fd, ctx)
diff --git a/sysdeps/unix/sysv/linux/sh/sh3/getcontext.S b/sysdeps/unix/sysv/linux/sh/sh3/getcontext.S
index acbd905ae8..4e9927f286 100644
--- a/sysdeps/unix/sysv/linux/sh/sh3/getcontext.S
+++ b/sysdeps/unix/sysv/linux/sh/sh3/getcontext.S
@@ -1,5 +1,5 @@
/* Save current context.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/sh/sh3/register-dump.h b/sysdeps/unix/sysv/linux/sh/sh3/register-dump.h
deleted file mode 100644
index e4296f749b..0000000000
--- a/sysdeps/unix/sysv/linux/sh/sh3/register-dump.h
+++ /dev/null
@@ -1,150 +0,0 @@
-/* Dump registers.
- Copyright (C) 1999-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sys/uio.h>
-#include <_itoa.h>
-
-/* We will print the register dump in this format:
-
- R0: XXXXXXXX R1: XXXXXXXX R2: XXXXXXXX R3: XXXXXXXX
- R4: XXXXXXXX R5: XXXXXXXX R6: XXXXXXXX R7: XXXXXXXX
- R8: XXXXXXXX R9: XXXXXXXX R10: XXXXXXXX R11: XXXXXXXX
- R12: XXXXXXXX R13: XXXXXXXX R14: XXXXXXXX R15: XXXXXXXX
-
-MACL: XXXXXXXX MACH: XXXXXXXX
-
- PC: XXXXXXXX PR: XXXXXXXX GBR: XXXXXXXX SR: XXXXXXXX
-
- FR0: XXXXXXXX FR1: XXXXXXXX FR2: XXXXXXXX FR3: XXXXXXXX
- FR4: XXXXXXXX FR5: XXXXXXXX FR6: XXXXXXXX FR7: XXXXXXXX
- FR8: XXXXXXXX FR9: XXXXXXXX FR10: XXXXXXXX FR11: XXXXXXXX
-FR12: XXXXXXXX FR13: XXXXXXXX FR14: XXXXXXXX FR15: XXXXXXXX
-
- XR0: XXXXXXXX XR1: XXXXXXXX XR2: XXXXXXXX XR3: XXXXXXXX
- XR4: XXXXXXXX XR5: XXXXXXXX XR6: XXXXXXXX XR7: XXXXXXXX
- XR8: XXXXXXXX XR9: XXXXXXXX XR10: XXXXXXXX XR11: XXXXXXXX
-XR12: XXXXXXXX XR13: XXXXXXXX XR14: XXXXXXXX XR15: XXXXXXXX
-
-FPSCR: XXXXXXXX FPUL: XXXXXXXX
-
- */
-
-static void
-hexvalue (unsigned long int value, char *buf, size_t len)
-{
- char *cp = _itoa_word (value, buf + len, 16, 0);
- while (cp > buf)
- *--cp = '0';
-}
-
-static void
-register_dump (int fd, struct sigcontext *ctx)
-{
- char regs[22][8];
- struct iovec iov[112];
- size_t nr = 0;
-
-#define ADD_STRING(str) \
- iov[nr].iov_base = (char *) str; \
- iov[nr].iov_len = strlen (str); \
- ++nr
-#define ADD_MEM(str, len) \
- iov[nr].iov_base = str; \
- iov[nr].iov_len = len; \
- ++nr
-
- /* Generate strings of register contents. */
- hexvalue (ctx->sc_regs[0], regs[0], 8);
- hexvalue (ctx->sc_regs[1], regs[1], 8);
- hexvalue (ctx->sc_regs[2], regs[2], 8);
- hexvalue (ctx->sc_regs[3], regs[3], 8);
- hexvalue (ctx->sc_regs[4], regs[4], 8);
- hexvalue (ctx->sc_regs[5], regs[5], 8);
- hexvalue (ctx->sc_regs[6], regs[6], 8);
- hexvalue (ctx->sc_regs[7], regs[7], 8);
- hexvalue (ctx->sc_regs[8], regs[8], 8);
- hexvalue (ctx->sc_regs[9], regs[9], 8);
- hexvalue (ctx->sc_regs[10], regs[10], 8);
- hexvalue (ctx->sc_regs[11], regs[11], 8);
- hexvalue (ctx->sc_regs[12], regs[12], 8);
- hexvalue (ctx->sc_regs[13], regs[13], 8);
- hexvalue (ctx->sc_regs[14], regs[14], 8);
- hexvalue (ctx->sc_regs[15], regs[15], 8);
- hexvalue (ctx->sc_macl, regs[16], 8);
- hexvalue (ctx->sc_mach, regs[17], 8);
- hexvalue (ctx->sc_pc, regs[18], 8);
- hexvalue (ctx->sc_pr, regs[19], 8);
- hexvalue (ctx->sc_gbr, regs[20], 8);
- hexvalue (ctx->sc_sr, regs[21], 8);
-
- /* Generate the output. */
- ADD_STRING ("Register dump:\n\n R0: ");
- ADD_MEM (regs[0], 8);
- ADD_STRING (" R1: ");
- ADD_MEM (regs[1], 8);
- ADD_STRING (" R2: ");
- ADD_MEM (regs[2], 8);
- ADD_STRING (" R3: ");
- ADD_MEM (regs[3], 8);
- ADD_STRING ("\n R4: ");
- ADD_MEM (regs[4], 8);
- ADD_STRING (" R5: ");
- ADD_MEM (regs[5], 8);
- ADD_STRING (" R6: ");
- ADD_MEM (regs[6], 8);
- ADD_STRING (" R7: ");
- ADD_MEM (regs[7], 8);
- ADD_STRING ("\n R8: ");
- ADD_MEM (regs[8], 8);
- ADD_STRING (" R9: ");
- ADD_MEM (regs[9], 8);
- ADD_STRING (" R10: ");
- ADD_MEM (regs[10], 8);
- ADD_STRING (" R11: ");
- ADD_MEM (regs[11], 8);
- ADD_STRING ("\n R12: ");
- ADD_MEM (regs[12], 8);
- ADD_STRING (" R13: ");
- ADD_MEM (regs[13], 8);
- ADD_STRING (" R14: ");
- ADD_MEM (regs[14], 8);
- ADD_STRING (" R15: ");
- ADD_MEM (regs[15], 8);
-
- ADD_STRING ("\n\nMACL: ");
- ADD_MEM (regs[16], 8);
- ADD_STRING (" MACH: ");
- ADD_MEM (regs[17], 8);
-
- ADD_STRING ("\n\n PC: ");
- ADD_MEM (regs[18], 8);
- ADD_STRING (" PR: ");
- ADD_MEM (regs[19], 8);
- ADD_STRING (" GBR: ");
- ADD_MEM (regs[20], 8);
- ADD_STRING (" SR: ");
- ADD_MEM (regs[21], 8);
-
- ADD_STRING ("\n");
-
- /* Write the stuff out. */
- writev (fd, iov, nr);
-}
-
-
-#define REGISTER_DUMP register_dump (fd, &ctx)
diff --git a/sysdeps/unix/sysv/linux/sh/sh3/setcontext.S b/sysdeps/unix/sysv/linux/sh/sh3/setcontext.S
index 634e4a4e6f..a073915eac 100644
--- a/sysdeps/unix/sysv/linux/sh/sh3/setcontext.S
+++ b/sysdeps/unix/sysv/linux/sh/sh3/setcontext.S
@@ -1,5 +1,5 @@
/* Install given context.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/sh/sh3/swapcontext.S b/sysdeps/unix/sysv/linux/sh/sh3/swapcontext.S
index 2eaa6fd328..28114f9fc9 100644
--- a/sysdeps/unix/sysv/linux/sh/sh3/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/sh/sh3/swapcontext.S
@@ -1,5 +1,5 @@
/* Save current context and install the given one.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/sh/sh4/getcontext.S b/sysdeps/unix/sysv/linux/sh/sh4/getcontext.S
index 972d0c92ed..7e5c8d251c 100644
--- a/sysdeps/unix/sysv/linux/sh/sh4/getcontext.S
+++ b/sysdeps/unix/sysv/linux/sh/sh4/getcontext.S
@@ -1,5 +1,5 @@
/* Save current context.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/sh/sh4/register-dump.h b/sysdeps/unix/sysv/linux/sh/sh4/register-dump.h
deleted file mode 100644
index 4a742ca9d0..0000000000
--- a/sysdeps/unix/sysv/linux/sh/sh4/register-dump.h
+++ /dev/null
@@ -1,263 +0,0 @@
-/* Dump registers.
- Copyright (C) 1999-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sys/uio.h>
-#include <_itoa.h>
-
-/* We will print the register dump in this format:
-
- R0: XXXXXXXX R1: XXXXXXXX R2: XXXXXXXX R3: XXXXXXXX
- R4: XXXXXXXX R5: XXXXXXXX R6: XXXXXXXX R7: XXXXXXXX
- R8: XXXXXXXX R9: XXXXXXXX R10: XXXXXXXX R11: XXXXXXXX
- R12: XXXXXXXX R13: XXXXXXXX R14: XXXXXXXX R15: XXXXXXXX
-
-MACL: XXXXXXXX MACH: XXXXXXXX
-
- PC: XXXXXXXX PR: XXXXXXXX GBR: XXXXXXXX SR: XXXXXXXX
-
- FR0: XXXXXXXX FR1: XXXXXXXX FR2: XXXXXXXX FR3: XXXXXXXX
- FR4: XXXXXXXX FR5: XXXXXXXX FR6: XXXXXXXX FR7: XXXXXXXX
- FR8: XXXXXXXX FR9: XXXXXXXX FR10: XXXXXXXX FR11: XXXXXXXX
-FR12: XXXXXXXX FR13: XXXXXXXX FR14: XXXXXXXX FR15: XXXXXXXX
-
- XR0: XXXXXXXX XR1: XXXXXXXX XR2: XXXXXXXX XR3: XXXXXXXX
- XR4: XXXXXXXX XR5: XXXXXXXX XR6: XXXXXXXX XR7: XXXXXXXX
- XR8: XXXXXXXX XR9: XXXXXXXX XR10: XXXXXXXX XR11: XXXXXXXX
-XR12: XXXXXXXX XR13: XXXXXXXX XR14: XXXXXXXX XR15: XXXXXXXX
-
-FPSCR: XXXXXXXX FPUL: XXXXXXXX
-
- */
-
-static void
-hexvalue (unsigned long int value, char *buf, size_t len)
-{
- char *cp = _itoa_word (value, buf + len, 16, 0);
- while (cp > buf)
- *--cp = '0';
-}
-
-static void
-register_dump (int fd, struct sigcontext *ctx)
-{
- char regs[22][8];
- struct iovec iov[22 * 2 + 34 * 2 + 2];
- size_t nr = 0;
-
-#define ADD_STRING(str) \
- iov[nr].iov_base = (char *) str; \
- iov[nr].iov_len = strlen (str); \
- ++nr
-#define ADD_MEM(str, len) \
- iov[nr].iov_base = str; \
- iov[nr].iov_len = len; \
- ++nr
-
- /* Generate strings of register contents. */
- hexvalue (ctx->sc_regs[0], regs[0], 8);
- hexvalue (ctx->sc_regs[1], regs[1], 8);
- hexvalue (ctx->sc_regs[2], regs[2], 8);
- hexvalue (ctx->sc_regs[3], regs[3], 8);
- hexvalue (ctx->sc_regs[4], regs[4], 8);
- hexvalue (ctx->sc_regs[5], regs[5], 8);
- hexvalue (ctx->sc_regs[6], regs[6], 8);
- hexvalue (ctx->sc_regs[7], regs[7], 8);
- hexvalue (ctx->sc_regs[8], regs[8], 8);
- hexvalue (ctx->sc_regs[9], regs[9], 8);
- hexvalue (ctx->sc_regs[10], regs[10], 8);
- hexvalue (ctx->sc_regs[11], regs[11], 8);
- hexvalue (ctx->sc_regs[12], regs[12], 8);
- hexvalue (ctx->sc_regs[13], regs[13], 8);
- hexvalue (ctx->sc_regs[14], regs[14], 8);
- hexvalue (ctx->sc_regs[15], regs[15], 8);
- hexvalue (ctx->sc_macl, regs[16], 8);
- hexvalue (ctx->sc_mach, regs[17], 8);
- hexvalue (ctx->sc_pc, regs[18], 8);
- hexvalue (ctx->sc_pr, regs[19], 8);
- hexvalue (ctx->sc_gbr, regs[20], 8);
- hexvalue (ctx->sc_sr, regs[21], 8);
-
- /* Generate the output. */
- ADD_STRING ("Register dump:\n\n R0: ");
- ADD_MEM (regs[0], 8);
- ADD_STRING (" R1: ");
- ADD_MEM (regs[1], 8);
- ADD_STRING (" R2: ");
- ADD_MEM (regs[2], 8);
- ADD_STRING (" R3: ");
- ADD_MEM (regs[3], 8);
- ADD_STRING ("\n R4: ");
- ADD_MEM (regs[4], 8);
- ADD_STRING (" R5: ");
- ADD_MEM (regs[5], 8);
- ADD_STRING (" R6: ");
- ADD_MEM (regs[6], 8);
- ADD_STRING (" R7: ");
- ADD_MEM (regs[7], 8);
- ADD_STRING ("\n R8: ");
- ADD_MEM (regs[8], 8);
- ADD_STRING (" R9: ");
- ADD_MEM (regs[9], 8);
- ADD_STRING (" R10: ");
- ADD_MEM (regs[10], 8);
- ADD_STRING (" R11: ");
- ADD_MEM (regs[11], 8);
- ADD_STRING ("\n R12: ");
- ADD_MEM (regs[12], 8);
- ADD_STRING (" R13: ");
- ADD_MEM (regs[13], 8);
- ADD_STRING (" R14: ");
- ADD_MEM (regs[14], 8);
- ADD_STRING (" R15: ");
- ADD_MEM (regs[15], 8);
-
- ADD_STRING ("\n\nMACL: ");
- ADD_MEM (regs[16], 8);
- ADD_STRING (" MACH: ");
- ADD_MEM (regs[17], 8);
-
- ADD_STRING ("\n\n PC: ");
- ADD_MEM (regs[18], 8);
- ADD_STRING (" PR: ");
- ADD_MEM (regs[19], 8);
- ADD_STRING (" GBR: ");
- ADD_MEM (regs[20], 8);
- ADD_STRING (" SR: ");
- ADD_MEM (regs[21], 8);
-
- ADD_STRING ("\n");
-
-#ifdef __SH_FPU_ANY__
- char fpregs[34][8];
- if (ctx->sc_ownedfp != 0)
- {
- hexvalue (ctx->sc_fpregs[0], fpregs[0], 8);
- hexvalue (ctx->sc_fpregs[1], fpregs[1], 8);
- hexvalue (ctx->sc_fpregs[2], fpregs[2], 8);
- hexvalue (ctx->sc_fpregs[3], fpregs[3], 8);
- hexvalue (ctx->sc_fpregs[4], fpregs[4], 8);
- hexvalue (ctx->sc_fpregs[5], fpregs[5], 8);
- hexvalue (ctx->sc_fpregs[6], fpregs[6], 8);
- hexvalue (ctx->sc_fpregs[7], fpregs[7], 8);
- hexvalue (ctx->sc_fpregs[8], fpregs[8], 8);
- hexvalue (ctx->sc_fpregs[9], fpregs[9], 8);
- hexvalue (ctx->sc_fpregs[10], fpregs[10], 8);
- hexvalue (ctx->sc_fpregs[11], fpregs[11], 8);
- hexvalue (ctx->sc_fpregs[12], fpregs[12], 8);
- hexvalue (ctx->sc_fpregs[13], fpregs[13], 8);
- hexvalue (ctx->sc_fpregs[14], fpregs[14], 8);
- hexvalue (ctx->sc_fpregs[15], fpregs[15], 8);
- hexvalue (ctx->sc_xfpregs[0], fpregs[16], 8);
- hexvalue (ctx->sc_xfpregs[1], fpregs[17], 8);
- hexvalue (ctx->sc_xfpregs[2], fpregs[18], 8);
- hexvalue (ctx->sc_xfpregs[3], fpregs[19], 8);
- hexvalue (ctx->sc_xfpregs[4], fpregs[20], 8);
- hexvalue (ctx->sc_xfpregs[5], fpregs[21], 8);
- hexvalue (ctx->sc_xfpregs[6], fpregs[22], 8);
- hexvalue (ctx->sc_xfpregs[7], fpregs[23], 8);
- hexvalue (ctx->sc_xfpregs[8], fpregs[24], 8);
- hexvalue (ctx->sc_xfpregs[9], fpregs[25], 8);
- hexvalue (ctx->sc_xfpregs[10], fpregs[26], 8);
- hexvalue (ctx->sc_xfpregs[11], fpregs[27], 8);
- hexvalue (ctx->sc_xfpregs[12], fpregs[28], 8);
- hexvalue (ctx->sc_xfpregs[13], fpregs[29], 8);
- hexvalue (ctx->sc_xfpregs[14], fpregs[30], 8);
- hexvalue (ctx->sc_xfpregs[15], fpregs[31], 8);
- hexvalue (ctx->sc_fpscr, fpregs[32], 8);
- hexvalue (ctx->sc_fpul, fpregs[33], 8);
-
- ADD_STRING ("\n\n FR0: ");
- ADD_MEM (fpregs[0], 8);
- ADD_STRING (" FR1: ");
- ADD_MEM (fpregs[1], 8);
- ADD_STRING (" FR2: ");
- ADD_MEM (fpregs[2], 8);
- ADD_STRING (" FR3: ");
- ADD_MEM (fpregs[3], 8);
- ADD_STRING ("\n FR4: ");
- ADD_MEM (fpregs[4], 8);
- ADD_STRING (" FR5: ");
- ADD_MEM (fpregs[5], 8);
- ADD_STRING (" FR6: ");
- ADD_MEM (fpregs[6], 8);
- ADD_STRING (" FR7: ");
- ADD_MEM (fpregs[7], 8);
- ADD_STRING ("\n FR8: ");
- ADD_MEM (fpregs[8], 8);
- ADD_STRING (" FR9: ");
- ADD_MEM (fpregs[9], 8);
- ADD_STRING (" FR10: ");
- ADD_MEM (fpregs[10], 8);
- ADD_STRING (" FR11: ");
- ADD_MEM (fpregs[11], 8);
- ADD_STRING ("\nFR12: ");
- ADD_MEM (fpregs[12], 8);
- ADD_STRING (" FR13: ");
- ADD_MEM (fpregs[13], 8);
- ADD_STRING (" FR14: ");
- ADD_MEM (fpregs[14], 8);
- ADD_STRING (" FR15: ");
- ADD_MEM (fpregs[15], 8);
- ADD_STRING ("\n\n XR0: ");
- ADD_MEM (fpregs[16], 8);
- ADD_STRING (" XR1: ");
- ADD_MEM (fpregs[17], 8);
- ADD_STRING (" XR2: ");
- ADD_MEM (fpregs[18], 8);
- ADD_STRING (" XR3: ");
- ADD_MEM (fpregs[19], 8);
- ADD_STRING ("\n XR4: ");
- ADD_MEM (fpregs[20], 8);
- ADD_STRING (" XR5: ");
- ADD_MEM (fpregs[21], 8);
- ADD_STRING (" XR6: ");
- ADD_MEM (fpregs[22], 8);
- ADD_STRING (" XR7: ");
- ADD_MEM (fpregs[23], 8);
- ADD_STRING ("\n XR8: ");
- ADD_MEM (fpregs[24], 8);
- ADD_STRING (" XR9: ");
- ADD_MEM (fpregs[25], 8);
- ADD_STRING (" XR10: ");
- ADD_MEM (fpregs[26], 8);
- ADD_STRING (" XR11: ");
- ADD_MEM (fpregs[27], 8);
- ADD_STRING ("\nXR12: ");
- ADD_MEM (fpregs[28], 8);
- ADD_STRING (" XR13: ");
- ADD_MEM (fpregs[29], 8);
- ADD_STRING (" XR14: ");
- ADD_MEM (fpregs[30], 8);
- ADD_STRING (" XR15: ");
- ADD_MEM (fpregs[31], 8);
-
- ADD_STRING ("\n\nFPSCR: ");
- ADD_MEM (fpregs[32], 8);
- ADD_STRING (" FPUL: ");
- ADD_MEM (fpregs[33], 8);
-
- ADD_STRING ("\n");
- }
-#endif /* __SH_FPU_ANY__ */
-
- /* Write the stuff out. */
- writev (fd, iov, nr);
-}
-
-
-#define REGISTER_DUMP register_dump (fd, &ctx)
diff --git a/sysdeps/unix/sysv/linux/sh/sh4/setcontext.S b/sysdeps/unix/sysv/linux/sh/sh4/setcontext.S
index 050e8ade16..90dc00f931 100644
--- a/sysdeps/unix/sysv/linux/sh/sh4/setcontext.S
+++ b/sysdeps/unix/sysv/linux/sh/sh4/setcontext.S
@@ -1,5 +1,5 @@
/* Install given context.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/sh/sh4/swapcontext.S b/sysdeps/unix/sysv/linux/sh/sh4/swapcontext.S
index 015e9b19d7..2b115cf14e 100644
--- a/sysdeps/unix/sysv/linux/sh/sh4/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/sh/sh4/swapcontext.S
@@ -1,5 +1,5 @@
/* Save current context and install the given one.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/sh/sigcontextinfo.h b/sysdeps/unix/sysv/linux/sh/sigcontextinfo.h
index 3f33b7f11c..7f8fe191e6 100644
--- a/sysdeps/unix/sysv/linux/sh/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/sh/sigcontextinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Philip Blundell <philb@gnu.org>, 1999.
@@ -14,8 +14,15 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#define SIGCONTEXT int _a2, int _a3, int _a4, struct sigcontext
+#ifndef _SIGCONTEXTINFO_H
+#define _SIGCONTEXTINFO_H
-#define GET_PC(ctx) ((void *) ctx.sc_pc)
+static inline uintptr_t
+sigcontext_get_pc (const ucontext_t *ctx)
+{
+ return ctx->uc_mcontext.pc;
+}
+
+#endif
diff --git a/sysdeps/unix/sysv/linux/sh/smp.h b/sysdeps/unix/sysv/linux/sh/smp.h
index 5db99ab8c1..7bc1e79b3b 100644
--- a/sysdeps/unix/sysv/linux/sh/smp.h
+++ b/sysdeps/unix/sysv/linux/sh/smp.h
@@ -1,5 +1,5 @@
/* Determine whether the host has multiple processors. SH version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
- not, see <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
static inline int
is_smp_system (void)
diff --git a/sysdeps/unix/sysv/linux/sh/sys/procfs.h b/sysdeps/unix/sysv/linux/sh/sys/procfs.h
deleted file mode 100644
index 43a42fa2bd..0000000000
--- a/sysdeps/unix/sysv/linux/sh/sys/procfs.h
+++ /dev/null
@@ -1,111 +0,0 @@
-/* Copyright (C) 1996-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_PROCFS_H
-#define _SYS_PROCFS_H 1
-
-/* This is somehow modelled after the file of the same name on SysVr4
- systems. It provides a definition of the core file format for ELF
- used on Linux. */
-
-#include <features.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#include <sys/user.h>
-
-__BEGIN_DECLS
-
-struct elf_siginfo
- {
- int si_signo; /* Signal number. */
- int si_code; /* Extra code. */
- int si_errno; /* Errno. */
- };
-
-/* Definitions to generate Intel SVR4-like core files. These mostly
- have the same names as the SVR4 types with "elf_" tacked on the
- front to prevent clashes with linux definitions, and the typedef
- forms have been avoided. This is mostly like the SVR4 structure,
- but more Linuxy, with things that Linux does not support and which
- gdb doesn't really use excluded. Fields present but not used are
- marked with "XXX". */
-struct elf_prstatus
- {
-#if 0
- long int pr_flags; /* XXX Process flags. */
- short int pr_why; /* XXX Reason for process halt. */
- short int pr_what; /* XXX More detailed reason. */
-#endif
- struct elf_siginfo pr_info; /* Info associated with signal. */
- short int pr_cursig; /* Current signal. */
- unsigned long int pr_sigpend; /* Set of pending signals. */
- unsigned long int pr_sighold; /* Set of held signals. */
-#if 0
- stack_t pr_altstack; /* Alternate stack info. */
- struct sigaction pr_action; /* Signal action for current sig. */
-#endif
- __pid_t pr_pid;
- __pid_t pr_ppid;
- __pid_t pr_pgrp;
- __pid_t pr_sid;
- struct timeval pr_utime; /* User time. */
- struct timeval pr_stime; /* System time. */
- struct timeval pr_cutime; /* Cumulative user time. */
- struct timeval pr_cstime; /* Cumulative system time. */
-#if 0
- long int pr_instr; /* Current instruction. */
-#endif
- elf_gregset_t pr_reg; /* GP registers. */
- int pr_fpvalid; /* True if math copro being used. */
- };
-
-
-#define ELF_PRARGSZ (80) /* Number of chars for args */
-
-struct elf_prpsinfo
- {
- char pr_state; /* Numeric process state. */
- char pr_sname; /* Char for pr_state. */
- char pr_zomb; /* Zombie. */
- char pr_nice; /* Nice val. */
- unsigned long int pr_flag; /* Flags. */
- unsigned short int pr_uid;
- unsigned short int pr_gid;
- int pr_pid, pr_ppid, pr_pgrp, pr_sid;
- /* Lots missing */
- char pr_fname[16]; /* Filename of executable. */
- char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
- };
-
-/* Addresses. */
-typedef void *psaddr_t;
-
-/* Register sets. Linux has different names. */
-typedef elf_gregset_t prgregset_t;
-typedef elf_fpregset_t prfpregset_t;
-
-/* We don't have any differences between processes and threads,
- therefore habe only ine PID type. */
-typedef __pid_t lwpid_t;
-
-
-typedef struct elf_prstatus prstatus_t;
-typedef struct elf_prpsinfo prpsinfo_t;
-
-__END_DECLS
-
-#endif /* sys/procfs.h */
diff --git a/sysdeps/unix/sysv/linux/sh/sys/ucontext.h b/sysdeps/unix/sysv/linux/sh/sys/ucontext.h
index 17c5d68086..f36e50f278 100644
--- a/sysdeps/unix/sysv/linux/sh/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/sh/sys/ucontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Where is System V/SH ABI? */
diff --git a/sysdeps/unix/sysv/linux/sh/sys/user.h b/sysdeps/unix/sysv/linux/sh/sys/user.h
index 6bfe49240c..e5a735b3f9 100644
--- a/sysdeps/unix/sysv/linux/sh/sys/user.h
+++ b/sysdeps/unix/sysv/linux/sh/sys/user.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_USER_H
#define _SYS_USER_H 1
diff --git a/sysdeps/unix/sysv/linux/sh/syscall.S b/sysdeps/unix/sysv/linux/sh/syscall.S
index 1990b203ee..4ec1634414 100644
--- a/sysdeps/unix/sysv/linux/sh/syscall.S
+++ b/sysdeps/unix/sysv/linux/sh/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/sh/sysdep.S b/sysdeps/unix/sysv/linux/sh/sysdep.S
index c4e28ffb98..7ee2b21c92 100644
--- a/sysdeps/unix/sysv/linux/sh/sysdep.S
+++ b/sysdeps/unix/sysv/linux/sh/sysdep.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/sh/sysdep.h b/sysdeps/unix/sysv/linux/sh/sysdep.h
index b521e788b6..52e77c9913 100644
--- a/sysdeps/unix/sysv/linux/sh/sysdep.h
+++ b/sysdeps/unix/sysv/linux/sh/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>, August 1995.
Changed by Kaz Kojima, <kkojima@rr.iij4u.or.jp>.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LINUX_SH_SYSDEP_H
#define _LINUX_SH_SYSDEP_H 1
diff --git a/sysdeps/unix/sysv/linux/sh/vfork.S b/sysdeps/unix/sysv/linux/sh/vfork.S
index 7b556cf68f..700c856a84 100644
--- a/sysdeps/unix/sysv/linux/sh/vfork.S
+++ b/sysdeps/unix/sysv/linux/sh/vfork.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#define _ERRNO_H 1
diff --git a/sysdeps/unix/sysv/linux/shm-directory.c b/sysdeps/unix/sysv/linux/shm-directory.c
index 6a7c7fd182..4199d57d74 100644
--- a/sysdeps/unix/sysv/linux/shm-directory.c
+++ b/sysdeps/unix/sysv/linux/shm-directory.c
@@ -1,5 +1,5 @@
/* Determine directory for shm/sem files. Linux version.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "shm-directory.h"
diff --git a/sysdeps/unix/sysv/linux/shmat.c b/sysdeps/unix/sysv/linux/shmat.c
index 25fc34e801..06bffee33c 100644
--- a/sysdeps/unix/sysv/linux/shmat.c
+++ b/sysdeps/unix/sysv/linux/shmat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/msg.h>
#include <ipc_priv.h>
diff --git a/sysdeps/unix/sysv/linux/shmctl.c b/sysdeps/unix/sysv/linux/shmctl.c
index 25c5152944..81dc99172b 100644
--- a/sysdeps/unix/sysv/linux/shmctl.c
+++ b/sysdeps/unix/sysv/linux/shmctl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/shm.h>
#include <stdarg.h>
@@ -23,15 +23,16 @@
#include <shlib-compat.h>
#include <errno.h>
-
#ifndef DEFAULT_VERSION
-# define DEFAULT_VERSION GLIBC_2_2
+# ifndef __ASSUME_SYSVIPC_BROKEN_MODE_T
+# define DEFAULT_VERSION GLIBC_2_2
+# else
+# define DEFAULT_VERSION GLIBC_2_31
+# endif
#endif
-
-/* Provide operations to control over shared memory segments. */
-int
-__new_shmctl (int shmid, int cmd, struct shmid_ds *buf)
+static int
+shmctl_syscall (int shmid, int cmd, struct shmid_ds *buf)
{
#ifdef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
return INLINE_SYSCALL_CALL (shmctl, shmid, cmd | __IPC_64, buf);
@@ -40,8 +41,55 @@ __new_shmctl (int shmid, int cmd, struct shmid_ds *buf)
buf);
#endif
}
+
+/* Provide operations to control over shared memory segments. */
+int
+__new_shmctl (int shmid, int cmd, struct shmid_ds *buf)
+{
+ /* POSIX states ipc_perm mode should have type of mode_t. */
+ _Static_assert (sizeof ((struct shmid_ds){0}.shm_perm.mode)
+ == sizeof (mode_t),
+ "sizeof (msqid_ds.msg_perm.mode) != sizeof (mode_t)");
+
+#ifdef __ASSUME_SYSVIPC_BROKEN_MODE_T
+ struct shmid_ds tmpds;
+ if (cmd == IPC_SET)
+ {
+ tmpds = *buf;
+ tmpds.shm_perm.mode *= 0x10000U;
+ buf = &tmpds;
+ }
+#endif
+
+ int ret = shmctl_syscall (shmid, cmd, buf);
+
+#ifdef __ASSUME_SYSVIPC_BROKEN_MODE_T
+ if (ret >= 0)
+ {
+ switch (cmd)
+ {
+ case IPC_STAT:
+ case SHM_STAT:
+ case SHM_STAT_ANY:
+ buf->shm_perm.mode >>= 16;
+ }
+ }
+#endif
+
+ return ret;
+}
versioned_symbol (libc, __new_shmctl, shmctl, DEFAULT_VERSION);
+#if defined __ASSUME_SYSVIPC_BROKEN_MODE_T \
+ && SHLIB_COMPAT (libc, GLIBC_2_2, GLIBC_2_31)
+int
+attribute_compat_text_section
+__shmctl_mode16 (int shmid, int cmd, struct shmid_ds *buf)
+{
+ return shmctl_syscall (shmid, cmd, buf);
+}
+compat_symbol (libc, __shmctl_mode16, shmctl, GLIBC_2_2);
+#endif
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)
struct __old_shmid_ds
@@ -63,7 +111,11 @@ int
attribute_compat_text_section
__old_shmctl (int shmid, int cmd, struct __old_shmid_ds *buf)
{
-#ifdef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
+#if defined __ASSUME_DIRECT_SYSVIPC_SYSCALLS \
+ && !defined __ASSUME_SYSVIPC_DEFAULT_IPC_64
+ /* For architecture that have wire-up shmctl but also have __IPC_64 to a
+ value different than default (0x0), it means the compat symbol used the
+ __NR_ipc syscall. */
return INLINE_SYSCALL_CALL (shmctl, shmid, cmd, buf);
#else
return INLINE_SYSCALL_CALL (ipc, IPCOP_shmctl, shmid, cmd, 0, buf);
diff --git a/sysdeps/unix/sysv/linux/shmdt.c b/sysdeps/unix/sysv/linux/shmdt.c
index 58b722aa5b..aced866f74 100644
--- a/sysdeps/unix/sysv/linux/shmdt.c
+++ b/sysdeps/unix/sysv/linux/shmdt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/msg.h>
#include <ipc_priv.h>
diff --git a/sysdeps/unix/sysv/linux/shmget.c b/sysdeps/unix/sysv/linux/shmget.c
index 52dd1f7b4c..04b46eefb1 100644
--- a/sysdeps/unix/sysv/linux/shmget.c
+++ b/sysdeps/unix/sysv/linux/shmget.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, August 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/msg.h>
#include <ipc_priv.h>
diff --git a/sysdeps/unix/sysv/linux/shutdown.c b/sysdeps/unix/sysv/linux/shutdown.c
index a1ec452642..2ddd3ad464 100644
--- a/sysdeps/unix/sysv/linux/shutdown.c
+++ b/sysdeps/unix/sysv/linux/shutdown.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2015-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/sysdeps/unix/sysv/linux/sigaction.c b/sysdeps/unix/sysv/linux/sigaction.c
index 0e6851a148..cb1a968e91 100644
--- a/sysdeps/unix/sysv/linux/sigaction.c
+++ b/sysdeps/unix/sysv/linux/sigaction.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
@@ -33,7 +33,7 @@
/* SPARC passes the restore function as an argument to rt_sigaction. */
#ifndef STUB
-# define STUB(act)
+# define STUB(act, sigsetsize) (sigsetsize)
#endif
/* If ACT is not NULL, change the action for SIG to *ACT.
@@ -57,7 +57,7 @@ __libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
real size of the user-level sigset_t. */
result = INLINE_SYSCALL_CALL (rt_sigaction, sig,
act ? &kact : NULL,
- oact ? &koact : NULL, STUB(act) _NSIG / 8);
+ oact ? &koact : NULL, STUB (act, _NSIG / 8));
if (oact && result >= 0)
{
diff --git a/sysdeps/unix/sysv/linux/siglist.h b/sysdeps/unix/sysv/linux/siglist.h
index 1debf789b4..49f1b0a1e7 100644
--- a/sysdeps/unix/sysv/linux/siglist.h
+++ b/sysdeps/unix/sysv/linux/siglist.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file is included multiple times. */
diff --git a/sysdeps/unix/sysv/linux/signalfd.c b/sysdeps/unix/sysv/linux/signalfd.c
index a0422bec1c..ea32ddb224 100644
--- a/sysdeps/unix/sysv/linux/signalfd.c
+++ b/sysdeps/unix/sysv/linux/signalfd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/sysdeps/unix/sysv/linux/sigpending.c b/sysdeps/unix/sysv/linux/sigpending.c
index 4fc0e1f2b0..d7426456fc 100644
--- a/sysdeps/unix/sysv/linux/sigpending.c
+++ b/sysdeps/unix/sysv/linux/sigpending.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/sysdeps/unix/sysv/linux/sigprocmask.c b/sysdeps/unix/sysv/linux/sigprocmask.c
index d13bfd8ff9..01521c8107 100644
--- a/sysdeps/unix/sysv/linux/sigprocmask.c
+++ b/sysdeps/unix/sysv/linux/sigprocmask.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/sysdeps/unix/sysv/linux/sigqueue.c b/sysdeps/unix/sysv/linux/sigqueue.c
index f3562b018b..97c423a4b8 100644
--- a/sysdeps/unix/sysv/linux/sigqueue.c
+++ b/sysdeps/unix/sysv/linux/sigqueue.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/sysdeps/unix/sysv/linux/sigset-cvt-mask.h b/sysdeps/unix/sysv/linux/sigset-cvt-mask.h
index 91c12a6ac5..c16f7b0ebc 100644
--- a/sysdeps/unix/sysv/linux/sigset-cvt-mask.h
+++ b/sysdeps/unix/sysv/linux/sigset-cvt-mask.h
@@ -1,6 +1,6 @@
/* Convert between lowlevel sigmask and libc representation of sigset_t.
Linux version.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Joe Keane <jgk@jgk.org>.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
static inline int __attribute__ ((unused))
sigset_set_old_mask (sigset_t *set, int mask)
diff --git a/sysdeps/unix/sysv/linux/sigsetops.h b/sysdeps/unix/sysv/linux/sigsetops.h
index 6fcfd4cf7e..e73b9665a6 100644
--- a/sysdeps/unix/sysv/linux/sigsetops.h
+++ b/sysdeps/unix/sysv/linux/sigsetops.h
@@ -1,5 +1,5 @@
/* __sigset_t manipulators. Linux version.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SIGSETOPS_H
#define _SIGSETOPS_H 1
diff --git a/sysdeps/unix/sysv/linux/sigstack.c b/sysdeps/unix/sysv/linux/sigstack.c
index 44916f7c42..8f05e2c0d6 100644
--- a/sysdeps/unix/sysv/linux/sigstack.c
+++ b/sysdeps/unix/sysv/linux/sigstack.c
@@ -1,5 +1,5 @@
/* Emulate sigstack function using sigaltstack.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <signal.h>
#include <stddef.h>
diff --git a/sysdeps/unix/sysv/linux/sigsuspend.c b/sysdeps/unix/sysv/linux/sigsuspend.c
index 744e75d9c9..40e1e25f75 100644
--- a/sysdeps/unix/sysv/linux/sigsuspend.c
+++ b/sysdeps/unix/sysv/linux/sigsuspend.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <signal.h>
#include <sysdep-cancel.h>
diff --git a/sysdeps/unix/sysv/linux/sigtimedwait.c b/sysdeps/unix/sysv/linux/sigtimedwait.c
index b4de8856dd..30fc82a249 100644
--- a/sysdeps/unix/sysv/linux/sigtimedwait.c
+++ b/sysdeps/unix/sysv/linux/sigtimedwait.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/sysdeps/unix/sysv/linux/sigwait.c b/sysdeps/unix/sysv/linux/sigwait.c
index 920c924c9c..360a4d0f5b 100644
--- a/sysdeps/unix/sysv/linux/sigwait.c
+++ b/sysdeps/unix/sysv/linux/sigwait.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <signal.h>
#include <sysdep-cancel.h>
@@ -37,6 +37,3 @@ __sigwait (const sigset_t *set, int *sig)
libc_hidden_def (__sigwait)
weak_alias (__sigwait, sigwait)
strong_alias (__sigwait, __libc_sigwait)
-
-/* __sigtimedwait handles cancellation. */
-LIBC_CANCEL_HANDLED ();
diff --git a/sysdeps/unix/sysv/linux/sigwaitinfo.c b/sysdeps/unix/sysv/linux/sigwaitinfo.c
index 55003fc516..64735e4a03 100644
--- a/sysdeps/unix/sysv/linux/sigwaitinfo.c
+++ b/sysdeps/unix/sysv/linux/sigwaitinfo.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <signal.h>
#include <sysdep-cancel.h>
@@ -28,6 +28,3 @@ __sigwaitinfo (const sigset_t *set, siginfo_t *info)
libc_hidden_def (__sigwaitinfo)
weak_alias (__sigwaitinfo, sigwaitinfo)
strong_alias (__sigwaitinfo, __libc_sigwaitinfo)
-
-/* __sigtimedwait handles cancellation. */
-LIBC_CANCEL_HANDLED ();
diff --git a/sysdeps/unix/sysv/linux/single-thread.h b/sysdeps/unix/sysv/linux/single-thread.h
new file mode 100644
index 0000000000..5f5f5f9515
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/single-thread.h
@@ -0,0 +1,62 @@
+/* Single thread optimization, Linux version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SINGLE_THREAD_H
+#define _SINGLE_THREAD_H
+
+/* The default way to check if the process is single thread is by using the
+ pthread_t 'multiple_threads' field. However, for some architectures it is
+ faster to either use an extra field on TCB or global variables (the TCB
+ field is also used on x86 for some single-thread atomic optimizations).
+
+ The ABI might define SINGLE_THREAD_BY_GLOBAL to enable the single thread
+ check to use global variables instead of the pthread_t field. */
+
+#ifdef SINGLE_THREAD_BY_GLOBAL
+# if IS_IN (libc)
+extern int __libc_multiple_threads;
+# define SINGLE_THREAD_P \
+ __glibc_likely (__libc_multiple_threads == 0)
+# elif IS_IN (libpthread)
+extern int __pthread_multiple_threads;
+# define SINGLE_THREAD_P \
+ __glibc_likely (__pthread_multiple_threads == 0)
+# elif IS_IN (librt)
+# define SINGLE_THREAD_P \
+ __glibc_likely (THREAD_GETMEM (THREAD_SELF, \
+ header.multiple_threads) == 0)
+# else
+/* For rtld, et cetera. */
+# define SINGLE_THREAD_P (1)
+# endif
+#else /* SINGLE_THREAD_BY_GLOBAL */
+# if IS_IN (libc) || IS_IN (libpthread) || IS_IN (librt)
+# define SINGLE_THREAD_P \
+ __glibc_likely (THREAD_GETMEM (THREAD_SELF, \
+ header.multiple_threads) == 0)
+# else
+/* For rtld, et cetera. */
+# define SINGLE_THREAD_P (1)
+# endif
+#endif /* SINGLE_THREAD_BY_GLOBAL */
+
+#define RTLD_SINGLE_THREAD_P \
+ __glibc_likely (THREAD_GETMEM (THREAD_SELF, \
+ header.multiple_threads) == 0)
+
+#endif /* _SINGLE_THREAD_H */
diff --git a/sysdeps/unix/sysv/linux/sizes.h b/sysdeps/unix/sysv/linux/sizes.h
index f7e9161d58..baa8e36e55 100644
--- a/sysdeps/unix/sysv/linux/sizes.h
+++ b/sysdeps/unix/sysv/linux/sizes.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SIZES_H
#define _SIZES_H 1
diff --git a/sysdeps/unix/sysv/linux/socket.c b/sysdeps/unix/sysv/linux/socket.c
index e4cf7d0ff6..6775e28683 100644
--- a/sysdeps/unix/sysv/linux/socket.c
+++ b/sysdeps/unix/sysv/linux/socket.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2015-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/sysdeps/unix/sysv/linux/socketcall.h b/sysdeps/unix/sysv/linux/socketcall.h
index bbae6f85e9..1e6387cdbf 100644
--- a/sysdeps/unix/sysv/linux/socketcall.h
+++ b/sysdeps/unix/sysv/linux/socketcall.h
@@ -1,5 +1,5 @@
/* ID for functions called via socketcall system call.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_SOCKETCALL_H
#define _SYS_SOCKETCALL_H 1
diff --git a/sysdeps/unix/sysv/linux/socketpair.c b/sysdeps/unix/sysv/linux/socketpair.c
index 6cf4ea247c..d2c07e1632 100644
--- a/sysdeps/unix/sysv/linux/socketpair.c
+++ b/sysdeps/unix/sysv/linux/socketpair.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2015-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/sysdeps/unix/sysv/linux/sparc/Makefile b/sysdeps/unix/sysv/linux/sparc/Makefile
index b0d182a439..fb3ee5b8a1 100644
--- a/sysdeps/unix/sysv/linux/sparc/Makefile
+++ b/sysdeps/unix/sysv/linux/sparc/Makefile
@@ -7,6 +7,10 @@ librt-routines += rt-sysdep
librt-shared-only-routines += rt-sysdep
endif
+ifeq ($(subdir),elf)
+sysdep_routines += dl-vdso
+endif
+
ifeq ($(subdir),sysvipc)
sysdep_routines += getshmlba
endif
diff --git a/sysdeps/unix/sysv/linux/sparc/Versions b/sysdeps/unix/sysv/linux/sparc/Versions
index 4dc1cd720b..f056addee6 100644
--- a/sysdeps/unix/sysv/linux/sparc/Versions
+++ b/sysdeps/unix/sysv/linux/sparc/Versions
@@ -29,6 +29,10 @@ libc {
__getshmlba;
}
+ GLIBC_PRIVATE {
+ # nptl/pthread_cond_timedwait.c uses INTERNAL_VSYSCALL(clock_gettime).
+ __vdso_clock_gettime;
+ }
}
libpthread {
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/environments.h b/sysdeps/unix/sysv/linux/sparc/bits/environments.h
index 10542c95e1..eaf458e26e 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/environments.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/environments.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _UNISTD_H
# error "Never include this file directly. Use <unistd.h> instead"
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/epoll.h b/sysdeps/unix/sysv/linux/sparc/bits/epoll.h
index 2dd8b0ea69..b776058a80 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/epoll.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/epoll.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_EPOLL_H
# error "Never use <bits/epoll.h> directly; include <sys/epoll.h> instead."
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/errno.h b/sysdeps/unix/sysv/linux/sparc/bits/errno.h
index 4fab9acc00..9a17e265b1 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/errno.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/errno.h
@@ -1,5 +1,5 @@
/* Error constants. Linux/Sparc specific version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_ERRNO_H
#define _BITS_ERRNO_H 1
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/eventfd.h b/sysdeps/unix/sysv/linux/sparc/bits/eventfd.h
index 575736bbcf..d6f168acfc 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/eventfd.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/eventfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_EVENTFD_H
# error "Never use <bits/eventfd.h> directly; include <sys/eventfd.h> instead."
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h b/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h
index cac4cdbaaa..48af874755 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for Linux/SPARC.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FCNTL_H
# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/inotify.h b/sysdeps/unix/sysv/linux/sparc/bits/inotify.h
index 540ea61638..cb3c144f12 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/inotify.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/inotify.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_INOTIFY_H
# error "Never use <bits/inotify.h> directly; include <sys/inotify.h> instead."
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/ioctls.h b/sysdeps/unix/sysv/linux/sparc/bits/ioctls.h
index 61c2f1f01f..69db756e64 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/ioctls.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/ioctls.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_IOCTL_H
# error "Never use <bits/ioctls.h> directly; include <sys/ioctl.h> instead."
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/ipc-perm.h b/sysdeps/unix/sysv/linux/sparc/bits/ipc-perm.h
new file mode 100644
index 0000000000..e57f50c330
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/bits/ipc-perm.h
@@ -0,0 +1,36 @@
+/* struct ipc_perm definition. Linux/sparc version.
+ Copyright (C) 1995-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_IPC_H
+# error "Never use <bits/ipc-perm.h> directly; include <sys/ipc.h> instead."
+#endif
+
+/* Data structure used to pass permission information to IPC operations. */
+struct ipc_perm
+ {
+ __key_t __key; /* Key. */
+ __uid_t uid; /* Owner's user ID. */
+ __gid_t gid; /* Owner's group ID. */
+ __uid_t cuid; /* Creator's user ID. */
+ __gid_t cgid; /* Creator's group ID. */
+ __mode_t mode; /* Read/write permission. */
+ unsigned short int __pad1;
+ unsigned short int __seq; /* Sequence number. */
+ __extension__ unsigned long long int __glibc_reserved1;
+ __extension__ unsigned long long int __glibc_reserved2;
+ };
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/ipc.h b/sysdeps/unix/sysv/linux/sparc/bits/ipc.h
deleted file mode 100644
index d455c57520..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/bits/ipc.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/* Copyright (C) 1995-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_IPC_H
-# error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
-#endif
-
-#include <bits/types.h>
-#include <bits/wordsize.h>
-
-/* Mode bits for `msgget', `semget', and `shmget'. */
-#define IPC_CREAT 01000 /* Create key if key does not exist. */
-#define IPC_EXCL 02000 /* Fail if key exists. */
-#define IPC_NOWAIT 04000 /* Return error on wait. */
-
-/* Control commands for `msgctl', `semctl', and `shmctl'. */
-#define IPC_RMID 0 /* Remove identifier. */
-#define IPC_SET 1 /* Set `ipc_perm' options. */
-#define IPC_STAT 2 /* Get `ipc_perm' options. */
-#ifdef __USE_GNU
-# define IPC_INFO 3 /* See ipcs. */
-#endif
-
-/* Special key values. */
-#define IPC_PRIVATE ((__key_t) 0) /* Private key. */
-
-
-/* Data structure used to pass permission information to IPC operations. */
-struct ipc_perm
- {
- __key_t __key; /* Key. */
- __uid_t uid; /* Owner's user ID. */
- __gid_t gid; /* Owner's group ID. */
- __uid_t cuid; /* Creator's user ID. */
- __gid_t cgid; /* Creator's group ID. */
-#if __WORDSIZE == 32
- unsigned short int __pad1;
- unsigned short int mode; /* Read/write permission. */
- unsigned short int __pad2;
-#else
- __mode_t mode; /* Read/write permission. */
- unsigned short int __pad1;
-#endif
- unsigned short int __seq; /* Sequence number. */
- __extension__ unsigned long long int __glibc_reserved1;
- __extension__ unsigned long long int __glibc_reserved2;
- };
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/local_lim.h b/sysdeps/unix/sysv/linux/sparc/bits/local_lim.h
index a7ec88e191..7eb9742e2f 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/local_lim.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/local_lim.h
@@ -1,5 +1,5 @@
/* Minimum guaranteed maximum values for system limits. Linux/SPARC version.
- Copyright (C) 1993-2018 Free Software Foundation, Inc.
+ Copyright (C) 1993-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
- not, see <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
/* The kernel header pollutes the namespace with the NR_OPEN symbol
and defines LINK_MAX although filesystems have different maxima. A
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/mman.h b/sysdeps/unix/sysv/linux/sparc/bits/mman.h
index 3a3ffb9946..9eb83dcf3f 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/mman.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/mman.h
@@ -1,5 +1,5 @@
/* Definitions for POSIX memory map interface. Linux/SPARC version.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_MMAN_H
# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
@@ -36,6 +36,8 @@
# define MAP_NONBLOCK 0x10000 /* Do not block on IO. */
# define MAP_STACK 0x20000 /* Allocation is for a stack. */
# define MAP_HUGETLB 0x40000 /* Create huge page mapping. */
+# define MAP_SYNC 0x80000 /* Perform synchronous page
+ faults for the mapping. */
# define MAP_FIXED_NOREPLACE 0x100000 /* MAP_FIXED but do not unmap
underlying mapping. */
#endif
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/msq-pad.h b/sysdeps/unix/sysv/linux/sparc/bits/msq-pad.h
new file mode 100644
index 0000000000..5c62e17082
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/bits/msq-pad.h
@@ -0,0 +1,26 @@
+/* Define where padding goes in struct msqid_ds. SPARC version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_MSG_H
+# error "Never use <bits/msq-pad.h> directly; include <sys/msg.h> instead."
+#endif
+
+#include <bits/timesize.h>
+
+#define __MSQ_PAD_AFTER_TIME 0
+#define __MSQ_PAD_BEFORE_TIME (__TIMESIZE == 32)
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/msq.h b/sysdeps/unix/sysv/linux/sparc/bits/msq.h
deleted file mode 100644
index 68a280c1ae..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/bits/msq.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/* Copyright (C) 1995-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_MSG_H
-# error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
-#endif
-
-#include <bits/types.h>
-#include <bits/wordsize.h>
-
-/* Define options for message queue functions. */
-#define MSG_NOERROR 010000 /* no error if message is too big */
-#ifdef __USE_GNU
-# define MSG_EXCEPT 020000 /* recv any msg except of specified type */
-# define MSG_COPY 040000 /* copy (not remove) all queue messages */
-#endif
-
-/* Types used in the structure definition. */
-typedef unsigned long int msgqnum_t;
-typedef unsigned long int msglen_t;
-
-
-/* Structure of record for one message inside the kernel.
- The type `struct msg' is opaque. */
-struct msqid_ds
-{
- struct ipc_perm msg_perm; /* structure describing operation permission */
-#if __WORDSIZE == 32
- unsigned int __pad1;
-#endif
- __time_t msg_stime; /* time of last msgsnd command */
-#if __WORDSIZE == 32
- unsigned int __pad2;
-#endif
- __time_t msg_rtime; /* time of last msgrcv command */
-#if __WORDSIZE == 32
- unsigned int __pad3;
-#endif
- __time_t msg_ctime; /* time of last change */
- unsigned long int __msg_cbytes; /* current number of bytes on queue */
- msgqnum_t msg_qnum; /* number of messages currently on queue */
- msglen_t msg_qbytes; /* max number of bytes allowed on queue */
- __pid_t msg_lspid; /* pid of last msgsnd() */
- __pid_t msg_lrpid; /* pid of last msgrcv() */
- unsigned long int __glibc_reserved1;
- unsigned long int __glibc_reserved2;
-};
-
-#ifdef __USE_MISC
-
-# define msg_cbytes __msg_cbytes
-
-/* ipcs ctl commands */
-# define MSG_STAT 11
-# define MSG_INFO 12
-# define MSG_STAT_ANY 13
-
-/* buffer for msgctl calls IPC_INFO, MSG_INFO */
-struct msginfo
- {
- int msgpool;
- int msgmap;
- int msgmax;
- int msgmnb;
- int msgmni;
- int msgssz;
- int msgtql;
- unsigned short int msgseg;
- };
-
-#endif /* __USE_MISC */
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/poll.h b/sysdeps/unix/sysv/linux/sparc/bits/poll.h
index 415b3a6d17..5b32884004 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/poll.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/poll.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_POLL_H
# error "Never use <bits/poll.h> directly; include <sys/poll.h> instead."
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/procfs-extra.h b/sysdeps/unix/sysv/linux/sparc/bits/procfs-extra.h
new file mode 100644
index 0000000000..e68784ed79
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/bits/procfs-extra.h
@@ -0,0 +1,88 @@
+/* Extra sys/procfs.h definitions. SPARC version.
+ Copyright (C) 1996-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PROCFS_H
+# error "Never include <bits/procfs-extra.h> directly; use <sys/procfs.h> instead."
+#endif
+
+#if __WORDSIZE == 64
+
+/* Provide 32-bit variants so that BFD can read 32-bit
+ core files. */
+#define ELF_NGREG32 38
+typedef struct
+ {
+ union
+ {
+ unsigned int pr_regs[32];
+ double pr_dregs[16];
+ } pr_fr;
+ unsigned int __glibc_reserved;
+ unsigned int pr_fsr;
+ unsigned char pr_qcnt;
+ unsigned char pr_q_entrysize;
+ unsigned char pr_en;
+ unsigned int pr_q[64];
+ } elf_fpregset_t32;
+
+typedef unsigned int elf_greg_t32;
+typedef elf_greg_t32 elf_gregset_t32[ELF_NGREG32];
+
+struct elf_prstatus32
+ {
+ struct elf_siginfo pr_info; /* Info associated with signal. */
+ short int pr_cursig; /* Current signal. */
+ unsigned int pr_sigpend; /* Set of pending signals. */
+ unsigned int pr_sighold; /* Set of held signals. */
+ __pid_t pr_pid;
+ __pid_t pr_ppid;
+ __pid_t pr_pgrp;
+ __pid_t pr_sid;
+ struct
+ {
+ int tv_sec, tv_usec;
+ } pr_utime, /* User time. */
+ pr_stime, /* System time. */
+ pr_cutime, /* Cumulative user time. */
+ pr_cstime; /* Cumulative system time. */
+ elf_gregset_t32 pr_reg; /* GP registers. */
+ int pr_fpvalid; /* True if math copro being used. */
+ };
+
+struct elf_prpsinfo32
+ {
+ char pr_state; /* Numeric process state. */
+ char pr_sname; /* Char for pr_state. */
+ char pr_zomb; /* Zombie. */
+ char pr_nice; /* Nice val. */
+ unsigned int pr_flag; /* Flags. */
+ unsigned short int pr_uid;
+ unsigned short int pr_gid;
+ int pr_pid, pr_ppid, pr_pgrp, pr_sid;
+ /* Lots missing */
+ char pr_fname[16]; /* Filename of executable. */
+ char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
+ };
+
+typedef elf_gregset_t32 prgregset32_t;
+typedef elf_fpregset_t32 prfpregset32_t;
+
+typedef struct elf_prstatus32 prstatus32_t;
+typedef struct elf_prpsinfo32 prpsinfo32_t;
+
+#endif /* sparc64 */
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/procfs-id.h b/sysdeps/unix/sysv/linux/sparc/bits/procfs-id.h
new file mode 100644
index 0000000000..20dacf86cf
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/bits/procfs-id.h
@@ -0,0 +1,30 @@
+/* Types of pr_uid and pr_gid in struct elf_prpsinfo. SPARC version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PROCFS_H
+# error "Never include <bits/procfs-id.h> directly; use <sys/procfs.h> instead."
+#endif
+
+#if __WORDSIZE == 64
+typedef unsigned int __pr_uid_t;
+typedef unsigned int __pr_gid_t;
+#else
+typedef unsigned short int __pr_uid_t;
+typedef unsigned short int __pr_gid_t;
+#endif
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/procfs.h b/sysdeps/unix/sysv/linux/sparc/bits/procfs.h
new file mode 100644
index 0000000000..d4b6131181
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/bits/procfs.h
@@ -0,0 +1,61 @@
+/* Types for registers for sys/procfs.h. SPARC version.
+ Copyright (C) 1996-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PROCFS_H
+# error "Never include <bits/procfs.h> directly; use <sys/procfs.h> instead."
+#endif
+
+#include <signal.h>
+#include <sys/ucontext.h>
+#include <bits/wordsize.h>
+
+#if __WORDSIZE == 64
+
+#define ELF_NGREG 36
+
+typedef struct
+ {
+ unsigned long pr_regs[32];
+ unsigned long pr_fsr;
+ unsigned long pr_gsr;
+ unsigned long pr_fprs;
+ } elf_fpregset_t;
+
+#else /* sparc32 */
+
+#define ELF_NGREG 38
+
+typedef struct
+ {
+ union
+ {
+ unsigned long pr_regs[32];
+ double pr_dregs[16];
+ } pr_fr;
+ unsigned long __glibc_reserved;
+ unsigned long pr_fsr;
+ unsigned char pr_qcnt;
+ unsigned char pr_q_entrysize;
+ unsigned char pr_en;
+ unsigned int pr_q[64];
+ } elf_fpregset_t;
+
+#endif /* sparc32 */
+
+typedef unsigned long elf_greg_t;
+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/resource.h b/sysdeps/unix/sysv/linux/sparc/bits/resource.h
index ee5c26e8c4..9cab7862b6 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/resource.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/resource.h
@@ -1,5 +1,5 @@
/* Bit values & structures for resource limits. Linux/SPARC version.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_RESOURCE_H
# error "Never use <bits/resource.h> directly; include <sys/resource.h> instead."
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/sem-pad.h b/sysdeps/unix/sysv/linux/sparc/bits/sem-pad.h
new file mode 100644
index 0000000000..1d3239783e
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/bits/sem-pad.h
@@ -0,0 +1,26 @@
+/* Define where padding goes in struct semid_ds. SPARC version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SEM_H
+# error "Never use <bits/sem-pad.h> directly; include <sys/sem.h> instead."
+#endif
+
+#include <bits/timesize.h>
+
+#define __SEM_PAD_AFTER_TIME 0
+#define __SEM_PAD_BEFORE_TIME (__TIMESIZE == 32)
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/sem.h b/sysdeps/unix/sysv/linux/sparc/bits/sem.h
deleted file mode 100644
index f5b2654eec..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/bits/sem.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/* Copyright (C) 1995-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_SEM_H
-# error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
-#endif
-
-#include <sys/types.h>
-#include <bits/wordsize.h>
-
-/* Flags for `semop'. */
-#define SEM_UNDO 0x1000 /* undo the operation on exit */
-
-/* Commands for `semctl'. */
-#define GETPID 11 /* get sempid */
-#define GETVAL 12 /* get semval */
-#define GETALL 13 /* get all semval's */
-#define GETNCNT 14 /* get semncnt */
-#define GETZCNT 15 /* get semzcnt */
-#define SETVAL 16 /* set semval */
-#define SETALL 17 /* set all semval's */
-
-
-/* Data structure describing a set of semaphores. */
-struct semid_ds
-{
- struct ipc_perm sem_perm; /* operation permission struct */
-#if __WORDSIZE == 32
- unsigned int __pad1;
-#endif
- __time_t sem_otime; /* last semop() time */
-#if __WORDSIZE == 32
- unsigned int __pad2;
-#endif
- __time_t sem_ctime; /* last time changed by semctl() */
- unsigned long int sem_nsems; /* number of semaphores in set */
- unsigned long int __glibc_reserved1;
- unsigned long int __glibc_reserved2;
-};
-
-/* The user should define a union like the following to use it for arguments
- for `semctl'.
-
- union semun
- {
- int val; <= value for SETVAL
- struct semid_ds *buf; <= buffer for IPC_STAT & IPC_SET
- unsigned short int *array; <= array for GETALL & SETALL
- struct seminfo *__buf; <= buffer for IPC_INFO
- };
-
- Previous versions of this file used to define this union but this is
- incorrect. One can test the macro _SEM_SEMUN_UNDEFINED to see whether
- one must define the union or not. */
-#define _SEM_SEMUN_UNDEFINED 1
-
-#ifdef __USE_MISC
-
-/* ipcs ctl cmds */
-# define SEM_STAT 18
-# define SEM_INFO 19
-# define SEM_STAT_ANY 20
-
-struct seminfo
-{
- int semmap;
- int semmni;
- int semmns;
- int semmnu;
- int semmsl;
- int semopm;
- int semume;
- int semusz;
- int semvmx;
- int semaem;
-};
-
-#endif /* __USE_MISC */
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/setjmp.h b/sysdeps/unix/sysv/linux/sparc/bits/setjmp.h
index 14089fca96..0c03e87053 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/setjmp.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/setjmp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_SETJMP_H
#define _BITS_SETJMP_H 1
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/shm-pad.h b/sysdeps/unix/sysv/linux/sparc/bits/shm-pad.h
new file mode 100644
index 0000000000..b755494057
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/bits/shm-pad.h
@@ -0,0 +1,28 @@
+/* Define where padding goes in struct shmid_ds. SPARC version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SHM_H
+# error "Never use <bits/shm-pad.h> directly; include <sys/shm.h> instead."
+#endif
+
+#include <bits/timesize.h>
+
+#define __SHM_PAD_AFTER_TIME 0
+#define __SHM_PAD_BEFORE_TIME (__TIMESIZE == 32)
+#define __SHM_SEGSZ_AFTER_TIME 1
+#define __SHM_PAD_BETWEEN_TIME_AND_SEGSZ 0
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/shm.h b/sysdeps/unix/sysv/linux/sparc/bits/shm.h
deleted file mode 100644
index d967f167d9..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/bits/shm.h
+++ /dev/null
@@ -1,111 +0,0 @@
-/* Copyright (C) 1995-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_SHM_H
-# error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
-#endif
-
-#include <bits/types.h>
-#include <bits/wordsize.h>
-
-/* Permission flag for shmget. */
-#define SHM_R 0400 /* or S_IRUGO from <linux/stat.h> */
-#define SHM_W 0200 /* or S_IWUGO from <linux/stat.h> */
-
-/* Flags for `shmat'. */
-#define SHM_RDONLY 010000 /* attach read-only else read-write */
-#define SHM_RND 020000 /* round attach address to SHMLBA */
-#define SHM_REMAP 040000 /* take-over region on attach */
-#define SHM_EXEC 0100000 /* execution access */
-
-/* Commands for `shmctl'. */
-#define SHM_LOCK 11 /* lock segment (root only) */
-#define SHM_UNLOCK 12 /* unlock segment (root only) */
-
-__BEGIN_DECLS
-
-/* Segment low boundary address multiple. */
-#define SHMLBA (__getshmlba ())
-extern int __getshmlba (void) __attribute__ ((__const__));
-
-
-/* Type to count number of attaches. */
-typedef unsigned long int shmatt_t;
-
-/* Data structure describing a shared memory segment. */
-struct shmid_ds
- {
- struct ipc_perm shm_perm; /* operation permission struct */
-#if __WORDSIZE == 32
- unsigned int __pad1;
-#endif
- __time_t shm_atime; /* time of last shmat() */
-#if __WORDSIZE == 32
- unsigned int __pad2;
-#endif
- __time_t shm_dtime; /* time of last shmdt() */
-#if __WORDSIZE == 32
- unsigned int __pad3;
-#endif
- __time_t shm_ctime; /* time of last change by shmctl() */
- size_t shm_segsz; /* size of segment in bytes */
- __pid_t shm_cpid; /* pid of creator */
- __pid_t shm_lpid; /* pid of last shmop */
- shmatt_t shm_nattch; /* number of current attaches */
- unsigned long int __glibc_reserved1;
- unsigned long int __glibc_reserved2;
- };
-
-#ifdef __USE_MISC
-
-/* ipcs ctl commands */
-# define SHM_STAT 13
-# define SHM_INFO 14
-# define SHM_STAT_ANY 15
-
-/* shm_mode upper byte flags */
-# define SHM_DEST 01000 /* segment will be destroyed on last detach */
-# define SHM_LOCKED 02000 /* segment will not be swapped */
-# define SHM_HUGETLB 04000 /* segment is mapped via hugetlb */
-# define SHM_NORESERVE 010000 /* don't check for reservations */
-
-struct shminfo
- {
- unsigned long shmmax;
- unsigned long shmmin;
- unsigned long shmmni;
- unsigned long shmseg;
- unsigned long shmall;
- unsigned long __glibc_reserved1;
- unsigned long __glibc_reserved2;
- unsigned long __glibc_reserved3;
- unsigned long __glibc_reserved4;
- };
-
-struct shm_info
- {
- int used_ids;
- unsigned long int shm_tot; /* total allocated shm */
- unsigned long int shm_rss; /* total resident shm */
- unsigned long int shm_swp; /* total swapped shm */
- unsigned long int swap_attempts;
- unsigned long int swap_successes;
- };
-
-#endif /* __USE_MISC */
-
-__END_DECLS
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/shmlba.h b/sysdeps/unix/sysv/linux/sparc/bits/shmlba.h
new file mode 100644
index 0000000000..5ca3784c92
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/bits/shmlba.h
@@ -0,0 +1,29 @@
+/* Define SHMLBA. SPARC version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SHM_H
+# error "Never use <bits/shmlba.h> directly; include <sys/shm.h> instead."
+#endif
+
+__BEGIN_DECLS
+
+/* Segment low boundary address multiple. */
+#define SHMLBA (__getshmlba ())
+extern int __getshmlba (void) __attribute__ ((__const__));
+
+__END_DECLS
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/sigaction.h b/sysdeps/unix/sysv/linux/sparc/bits/sigaction.h
index 8d4665a607..c4f83a966b 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/sigaction.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/sigaction.h
@@ -1,5 +1,5 @@
/* The proper definitions for Linux/SPARC sigaction.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_SIGACTION_H
#define _BITS_SIGACTION_H 1
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/sigcontext.h b/sysdeps/unix/sysv/linux/sparc/bits/sigcontext.h
index a9cfcf562b..25b697db5d 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/sigcontext.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/sigcontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_SIGCONTEXT_H
#define _BITS_SIGCONTEXT_H 1
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/siginfo-arch.h b/sysdeps/unix/sysv/linux/sparc/bits/siginfo-arch.h
index 9f79715ebe..4dd35237f6 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/siginfo-arch.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/siginfo-arch.h
@@ -2,7 +2,12 @@
#ifndef _BITS_SIGINFO_ARCH_H
#define _BITS_SIGINFO_ARCH_H 1
-#define __SI_BAND_TYPE int
+/* The kernel uses int instead of long int (as in POSIX). In 32-bit
+ mode, we can still use long int, but in 64-bit mode, we need to
+ deviate from POSIX. */
+#if __WORDSIZE == 64
+# define __SI_BAND_TYPE int
+#endif
#define __SI_SIGFAULT_ADDL \
int _si_trapno;
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/signalfd.h b/sysdeps/unix/sysv/linux/sparc/bits/signalfd.h
index 4eb20c808d..248e588029 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/signalfd.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/signalfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_SIGNALFD_H
# error "Never use <bits/signalfd.h> directly; include <sys/signalfd.h> instead."
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/signum.h b/sysdeps/unix/sysv/linux/sparc/bits/signum.h
index 32b87c323b..6d7d26b1a5 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/signum.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/signum.h
@@ -1,5 +1,5 @@
/* Signal number definitions. Linux/SPARC version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_SIGNUM_H
#define _BITS_SIGNUM_H 1
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/sigstack.h b/sysdeps/unix/sysv/linux/sparc/bits/sigstack.h
index cb01b0938d..d6d79f5694 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/sigstack.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/sigstack.h
@@ -1,5 +1,5 @@
/* sigstack, sigaltstack definitions.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_SIGSTACK_H
#define _BITS_SIGSTACK_H 1
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/socket-constants.h b/sysdeps/unix/sysv/linux/sparc/bits/socket-constants.h
new file mode 100644
index 0000000000..5ba36b7e5e
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/bits/socket-constants.h
@@ -0,0 +1,38 @@
+/* Socket constants which vary among Linux architectures. Version for SPARC.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SOCKET_H
+# error "Never include <bits/socket-constants.h> directly; use <sys/socket.h> instead."
+#endif
+
+#define SOL_SOCKET 65535
+#define SO_ACCEPTCONN 32768
+#define SO_BROADCAST 32
+#define SO_DONTROUTE 16
+#define SO_ERROR 4103
+#define SO_KEEPALIVE 8
+#define SO_LINGER 128
+#define SO_OOBINLINE 256
+#define SO_RCVBUF 4098
+#define SO_RCVLOWAT 2048
+#define SO_RCVTIMEO 8192
+#define SO_REUSEADDR 4
+#define SO_SNDBUF 4097
+#define SO_SNDLOWAT 4096
+#define SO_SNDTIMEO 16384
+#define SO_TYPE 4104
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/socket_type.h b/sysdeps/unix/sysv/linux/sparc/bits/socket_type.h
index 925caf83a1..e2bd12893b 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/socket_type.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/socket_type.h
@@ -1,5 +1,5 @@
/* Define enum __socket_type for Linux/SPARC.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_SOCKET_H
# error "Never include <bits/socket_type.h> directly; use <sys/socket.h> instead."
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/stat.h b/sysdeps/unix/sysv/linux/sparc/bits/stat.h
index 8c8f38c5c2..9afc191019 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/stat.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/stat.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if !defined _SYS_STAT_H && !defined _FCNTL_H
# error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/termios-baud.h b/sysdeps/unix/sysv/linux/sparc/bits/termios-baud.h
new file mode 100644
index 0000000000..4632486a58
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/bits/termios-baud.h
@@ -0,0 +1,46 @@
+/* termios baud rate selection definitions. Linux/sparc version.
+ 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. If not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _TERMIOS_H
+# error "Never include <bits/termios-baud.h> directly; use <termios.h> instead."
+#endif
+
+#ifdef __USE_MISC
+# define CBAUD 0x0000100f
+# define CBAUDEX 0x00001000
+# define CIBAUD 0x100f0000 /* input baud rate (not used) */
+# define CMSPAR 0x40000000 /* mark or space (stick) parity */
+# define CRTSCTS 0x80000000 /* flow control */
+#endif
+
+#define B57600 0x00001001
+#define B115200 0x00001002
+#define B230400 0x00001003
+#define B460800 0x00001004
+#define B76800 0x00001005
+#define B153600 0x00001006
+#define B307200 0x00001007
+#define B614400 0x00001008
+#define B921600 0x00001009
+#define B500000 0x0000100a
+#define B576000 0x0000100b
+#define B1000000 0x0000100c
+#define B1152000 0x0000100d
+#define B1500000 0x0000100e
+#define B2000000 0x0000100f
+#define __MAX_BAUD B2000000
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/termios-c_cc.h b/sysdeps/unix/sysv/linux/sparc/bits/termios-c_cc.h
new file mode 100644
index 0000000000..bfe91f652d
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/bits/termios-c_cc.h
@@ -0,0 +1,43 @@
+/* termios c_cc symbolic constant definitions. Linux/sparc version.
+ 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. If not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _TERMIOS_H
+# error "Never include <bits/termios-c_cc.h> directly; use <termios.h> instead."
+#endif
+
+/* c_cc characters */
+#define VINTR 0
+#define VQUIT 1
+#define VERASE 2
+#define VKILL 3
+#define VEOF 4
+#define VEOL 5
+#define VEOL2 6
+#define VSWTC 7
+#define VSTART 8
+#define VSTOP 9
+#define VSUSP 10
+#define VDSUSP 11 /* SunOS POSIX nicety I do believe... */
+#define VREPRINT 12
+#define VDISCARD 13
+#define VWERASE 14
+#define VLNEXT 15
+
+/* User apps assume vmin/vtime is shared with eof/eol */
+#define VMIN VEOF
+#define VTIME VEOL
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/termios-c_oflag.h b/sysdeps/unix/sysv/linux/sparc/bits/termios-c_oflag.h
new file mode 100644
index 0000000000..50a57a00e0
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/bits/termios-c_oflag.h
@@ -0,0 +1,64 @@
+/* termios output mode definitions. Linux/sparc version.
+ 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. If not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _TERMIOS_H
+# error "Never include <bits/termios-c_oflag.h> directly; use <termios.h> instead."
+#endif
+
+/* c_oflag bits */
+#define OPOST 0x00000001
+#define OLCUC 0x00000002
+#define ONLCR 0x00000004
+#define OCRNL 0x00000008
+#define ONOCR 0x00000010
+#define ONLRET 0x00000020
+#define OFILL 0x00000040
+#define OFDEL 0x00000080
+#if defined __USE_MISC || defined __USE_XOPEN
+# define NLDLY 0x00000100
+# define NL0 0x00000000
+# define NL1 0x00000100
+# define CRDLY 0x00000600
+# define CR0 0x00000000
+# define CR1 0x00000200
+# define CR2 0x00000400
+# define CR3 0x00000600
+# define TABDLY 0x00001800
+# define TAB0 0x00000000
+# define TAB1 0x00000800
+# define TAB2 0x00001000
+# define TAB3 0x00001800
+# define BSDLY 0x00002000
+# define BS0 0x00000000
+# define BS1 0x00002000
+#define FFDLY 0x00008000
+#define FF0 0x00000000
+#define FF1 0x00008000
+#endif
+#define VTDLY 0x00004000
+#define VT0 0x00000000
+#define VT1 0x00004000
+
+# if defined __USE_GNU
+#define PAGEOUT 0x00010000 /* SUNOS specific */
+#define WRAP 0x00020000 /* SUNOS specific */
+# endif
+
+#ifdef __USE_MISC
+# define XTABS 0x00001800
+#endif
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/termios-struct.h b/sysdeps/unix/sysv/linux/sparc/bits/termios-struct.h
new file mode 100644
index 0000000000..e654c44b45
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/bits/termios-struct.h
@@ -0,0 +1,34 @@
+/* struct termios definition. Linux/sparc version.
+ 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. If not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _TERMIOS_H
+# error "Never include <bits/termios-struct.h> directly; use <termios.h> instead."
+#endif
+
+#define NCCS 17
+struct termios
+ {
+ tcflag_t c_iflag; /* input mode flags */
+ tcflag_t c_oflag; /* output mode flags */
+ tcflag_t c_cflag; /* control mode flags */
+ tcflag_t c_lflag; /* local mode flags */
+ cc_t c_line; /* line discipline */
+ cc_t c_cc[NCCS]; /* control characters */
+#define _HAVE_STRUCT_TERMIOS_C_ISPEED 0
+#define _HAVE_STRUCT_TERMIOS_C_OSPEED 0
+ };
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/termios.h b/sysdeps/unix/sysv/linux/sparc/bits/termios.h
deleted file mode 100644
index 4489b6c2fd..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/bits/termios.h
+++ /dev/null
@@ -1,225 +0,0 @@
-/* termios type and macro definitions. Linux/SPARC version.
- Copyright (C) 1993-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _TERMIOS_H
-# error "Never include <bits/termios.h> directly; use <termios.h> instead."
-#endif
-
-typedef unsigned char cc_t;
-typedef unsigned int speed_t;
-typedef unsigned int tcflag_t;
-
-#define NCCS 17
-struct termios
- {
- tcflag_t c_iflag; /* input mode flags */
- tcflag_t c_oflag; /* output mode flags */
- tcflag_t c_cflag; /* control mode flags */
- tcflag_t c_lflag; /* local mode flags */
- cc_t c_line; /* line discipline */
- cc_t c_cc[NCCS]; /* control characters */
- };
-
-/* c_cc characters */
-#define VINTR 0
-#define VQUIT 1
-#define VERASE 2
-#define VKILL 3
-#define VEOF 4
-#define VEOL 5
-#define VEOL2 6
-#define VSWTC 7
-#define VSTART 8
-#define VSTOP 9
-#define VSUSP 10
-#define VDSUSP 11 /* SunOS POSIX nicety I do believe... */
-#define VREPRINT 12
-#define VDISCARD 13
-#define VWERASE 14
-#define VLNEXT 15
-
-/* User apps assume vmin/vtime is shared with eof/eol */
-#define VMIN VEOF
-#define VTIME VEOL
-
-/* c_iflag bits */
-#define IGNBRK 0x00000001
-#define BRKINT 0x00000002
-#define IGNPAR 0x00000004
-#define PARMRK 0x00000008
-#define INPCK 0x00000010
-#define ISTRIP 0x00000020
-#define INLCR 0x00000040
-#define IGNCR 0x00000080
-#define ICRNL 0x00000100
-#define IUCLC 0x00000200
-#define IXON 0x00000400
-#define IXANY 0x00000800
-#define IXOFF 0x00001000
-#define IMAXBEL 0x00002000
-#define IUTF8 0x00004000
-
-/* c_oflag bits */
-#define OPOST 0x00000001
-#define OLCUC 0x00000002
-#define ONLCR 0x00000004
-#define OCRNL 0x00000008
-#define ONOCR 0x00000010
-#define ONLRET 0x00000020
-#define OFILL 0x00000040
-#define OFDEL 0x00000080
-#if defined __USE_MISC || defined __USE_XOPEN
-# define NLDLY 0x00000100
-# define NL0 0x00000000
-# define NL1 0x00000100
-# define CRDLY 0x00000600
-# define CR0 0x00000000
-# define CR1 0x00000200
-# define CR2 0x00000400
-# define CR3 0x00000600
-# define TABDLY 0x00001800
-# define TAB0 0x00000000
-# define TAB1 0x00000800
-# define TAB2 0x00001000
-# define TAB3 0x00001800
-# define BSDLY 0x00002000
-# define BS0 0x00000000
-# define BS1 0x00002000
-#define FFDLY 0x00008000
-#define FF0 0x00000000
-#define FF1 0x00008000
-#endif
-#define VTDLY 0x00004000
-#define VT0 0x00000000
-#define VT1 0x00004000
-
-# if defined __USE_GNU
-#define PAGEOUT 0x00010000 /* SUNOS specific */
-#define WRAP 0x00020000 /* SUNOS specific */
-# endif
-
-#ifdef __USE_MISC
-# define XTABS 0x00001800
-#endif
-
-/* c_cflag bit meaning */
-#ifdef __USE_MISC
-# define CBAUD 0x0000100f
-#endif
-#define B0 0x00000000 /* hang up */
-#define B50 0x00000001
-#define B75 0x00000002
-#define B110 0x00000003
-#define B134 0x00000004
-#define B150 0x00000005
-#define B200 0x00000006
-#define B300 0x00000007
-#define B600 0x00000008
-#define B1200 0x00000009
-#define B1800 0x0000000a
-#define B2400 0x0000000b
-#define B4800 0x0000000c
-#define B9600 0x0000000d
-#define B19200 0x0000000e
-#define B38400 0x0000000f
-#ifdef __USE_MISC
-# define EXTA B19200
-# define EXTB B38400
-#endif
-#define CSIZE 0x00000030
-#define CS5 0x00000000
-#define CS6 0x00000010
-#define CS7 0x00000020
-#define CS8 0x00000030
-#define CSTOPB 0x00000040
-#define CREAD 0x00000080
-#define PARENB 0x00000100
-#define PARODD 0x00000200
-#define HUPCL 0x00000400
-#define CLOCAL 0x00000800
-#ifdef __USE_MISC
-# define CBAUDEX 0x00001000
-#endif
-#define B57600 0x00001001
-#define B115200 0x00001002
-#define B230400 0x00001003
-#define B460800 0x00001004
-#define B76800 0x00001005
-#define B153600 0x00001006
-#define B307200 0x00001007
-#define B614400 0x00001008
-#define B921600 0x00001009
-#define B500000 0x0000100a
-#define B576000 0x0000100b
-#define B1000000 0x0000100c
-#define B1152000 0x0000100d
-#define B1500000 0x0000100e
-#define B2000000 0x0000100f
-#define __MAX_BAUD B2000000
-
-#ifdef __USE_MISC
-# define CIBAUD 0x100f0000 /* input baud rate (not used) */
-# define CMSPAR 0x40000000 /* mark or space (stick) parity */
-# define CRTSCTS 0x80000000 /* flow control */
-#endif
-
-/* c_lflag bits */
-#define ISIG 0x00000001
-#define ICANON 0x00000002
-#if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K)
-# define XCASE 0x00000004
-#endif
-#define ECHO 0x00000008
-#define ECHOE 0x00000010
-#define ECHOK 0x00000020
-#define ECHONL 0x00000040
-#define NOFLSH 0x00000080
-#define TOSTOP 0x00000100
-#ifdef __USE_MISC
-# define ECHOCTL 0x00000200
-# define ECHOPRT 0x00000400
-# define ECHOKE 0x00000800
-# define DEFECHO 0x00001000 /* SUNOS thing, what is it? */
-# define FLUSHO 0x00002000
-# define PENDIN 0x00004000
-#endif
-#define IEXTEN 0x00008000
-#ifdef __USE_MISC
-# define EXTPROC 0x00010000
-#endif
-
-# if defined __USE_GNU
-/* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
-#define TIOCSER_TEMT 0x01 /* Transmitter physically empty */
-#endif
-
-/* tcflow() and TCXONC use these */
-#define TCOOFF 0
-#define TCOON 1
-#define TCIOFF 2
-#define TCION 3
-
-/* tcflush() and TCFLSH use these */
-#define TCIFLUSH 0
-#define TCOFLUSH 1
-#define TCIOFLUSH 2
-
-/* tcsetattr uses these */
-#define TCSANOW 0
-#define TCSADRAIN 1
-#define TCSAFLUSH 2
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/timerfd.h b/sysdeps/unix/sysv/linux/sparc/bits/timerfd.h
index 99274682f9..d192aebc98 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/timerfd.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/timerfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_TIMERFD_H
# error "Never use <bits/timerfd.h> directly; include <sys/timerfd.h> instead."
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h b/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h
index b59f2ced75..c93f428017 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h
@@ -1,5 +1,5 @@
/* bits/typesizes.h -- underlying types for *_t. Linux/SPARC version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_TYPES_H
# error "Never include <bits/typesizes.h> directly; use <sys/types.h> 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/sysdeps/unix/sysv/linux/sparc/dl-cache.h b/sysdeps/unix/sysv/linux/sparc/dl-cache.h
index 84ef02f42e..787f79daf8 100644
--- a/sysdeps/unix/sysv/linux/sparc/dl-cache.h
+++ b/sysdeps/unix/sysv/linux/sparc/dl-cache.h
@@ -1,5 +1,5 @@
/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define add_system_dir(dir) \
do \
diff --git a/sysdeps/unix/sysv/linux/sparc/getrlimit64.c b/sysdeps/unix/sysv/linux/sparc/getrlimit64.c
index b152b3b378..2369af5eb9 100644
--- a/sysdeps/unix/sysv/linux/sparc/getrlimit64.c
+++ b/sysdeps/unix/sysv/linux/sparc/getrlimit64.c
@@ -1,5 +1,5 @@
/* Linux getrlimit64 sparc32 implementation (64 bits rlim_t).
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <shlib-compat.h>
diff --git a/sysdeps/unix/sysv/linux/sparc/getshmlba.c b/sysdeps/unix/sysv/linux/sparc/getshmlba.c
index 7f34ed778e..44d0294b35 100644
--- a/sysdeps/unix/sysv/linux/sparc/getshmlba.c
+++ b/sysdeps/unix/sysv/linux/sparc/getshmlba.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <sys/shm.h>
diff --git a/sysdeps/unix/sysv/linux/sparc/getsysstats.c b/sysdeps/unix/sysv/linux/sparc/getsysstats.c
index a695e87a8c..194292b71c 100644
--- a/sysdeps/unix/sysv/linux/sparc/getsysstats.c
+++ b/sysdeps/unix/sysv/linux/sparc/getsysstats.c
@@ -1,5 +1,5 @@
/* Determine various system internal values, Linux/Sparc version.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@suse.de> and
Jakub Jelinek <jj@ultra.linux.cz>
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* We need to define a special parser for /proc/cpuinfo. */
diff --git a/sysdeps/unix/sysv/linux/sparc/kernel-features.h b/sysdeps/unix/sysv/linux/sparc/kernel-features.h
index 91990a716f..ea9a2a8212 100644
--- a/sysdeps/unix/sysv/linux/sparc/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/sparc/kernel-features.h
@@ -1,6 +1,6 @@
/* Set flags signalling availability of kernel features based on given
kernel version number. SPARC version.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -15,10 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-/* SPARC uses socketcall. */
-#define __ASSUME_SOCKETCALL 1
+ <https://www.gnu.org/licenses/>. */
#include_next <kernel-features.h>
@@ -28,18 +25,46 @@
# undef __ASSUME_SET_ROBUST_LIST
#endif
-#if !defined __arch64__
+/* These syscalls were added for 32-bit in 4.4 (but present for 64-bit
+ in all supported kernel versions); the architecture-independent
+ kernel-features.h assumes some of them to be present by default.
+ getpeername and getsockname syscalls were also added for 32-bit in
+ 4.4, but only for 32-bit kernels, not in the compat syscall table
+ for 64-bit kernels. */
+#if !defined __arch64__ && __LINUX_KERNEL_VERSION < 0x040400
+# undef __ASSUME_SENDMSG_SYSCALL
+# undef __ASSUME_RECVMSG_SYSCALL
# undef __ASSUME_ACCEPT_SYSCALL
# undef __ASSUME_CONNECT_SYSCALL
# undef __ASSUME_RECVFROM_SYSCALL
+# undef __ASSUME_SENDTO_SYSCALL
#else
+# define __ASSUME_SOCKET_SYSCALL 1
+# define __ASSUME_SOCKETPAIR_SYSCALL 1
+# define __ASSUME_GETSOCKOPT_SYSCALL 1
+# define __ASSUME_SHUTDOWN_SYSCALL 1
+#endif
+
+/* These syscalls were added for both 32-bit and 64-bit in 4.4. */
+#if __LINUX_KERNEL_VERSION >= 0x040400
+# define __ASSUME_BIND_SYSCALL 1
+# define __ASSUME_LISTEN_SYSCALL 1
+# define __ASSUME_SETSOCKOPT_SYSCALL 1
+#endif
+
+#ifdef __arch64__
/* sparc64 defines __NR_pause, however it is not supported (ENOSYS).
Undefine so pause.c can use a correct alternative. */
# undef __NR_pause
#endif
-/* sparc only supports ipc syscall. */
-#undef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
+/* sparc only supports ipc syscall before 5.1. */
+#if __LINUX_KERNEL_VERSION < 0x050100
+# undef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
+# if !defined __arch64__
+# undef __ASSUME_SYSVIPC_DEFAULT_IPC_64
+# endif
+#endif
/* Support for the renameat2 syscall was added in 3.16. */
#if __LINUX_KERNEL_VERSION < 0x031000
diff --git a/sysdeps/unix/sysv/linux/sparc/kernel_sigaction.h b/sysdeps/unix/sysv/linux/sparc/kernel_sigaction.h
index bee7e9cd03..eb4a522453 100644
--- a/sysdeps/unix/sysv/linux/sparc/kernel_sigaction.h
+++ b/sysdeps/unix/sysv/linux/sparc/kernel_sigaction.h
@@ -1,10 +1,5 @@
/* SPARC 'struct __new_sigaction' is similar to generic Linux UAPI with
a sa_restorer field, even though function is passed as an argument
to rt_sigaction syscall. */
-#define SA_RESTORER 0x04000000
+#define HAS_SA_RESTORER 1
#include <sysdeps/unix/sysv/linux/kernel_sigaction.h>
-
-#define SET_SA_RESTORER(kact, act) \
- (kact)->sa_restorer = NULL
-#define RESET_SA_RESTORER(act, kact) \
- (act)->sa_restorer = (kact)->sa_restorer
diff --git a/sysdeps/unix/sysv/linux/sparc/kernel_termios.h b/sysdeps/unix/sysv/linux/sparc/kernel_termios.h
index 31c717ea9d..5718199a56 100644
--- a/sysdeps/unix/sysv/linux/sparc/kernel_termios.h
+++ b/sysdeps/unix/sysv/linux/sparc/kernel_termios.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _KERNEL_TERMIOS_H
#define _KERNEL_TERMIOS_H 1
@@ -34,4 +34,7 @@ struct __kernel_termios
cc_t c_cc[__KERNEL_NCCS]; /* control characters */
};
+#define _HAVE_C_ISPEED 0
+#define _HAVE_C_OSPEED 0
+
#endif /* kernel_termios.h */
diff --git a/sysdeps/unix/sysv/linux/sparc/lowlevellock.h b/sysdeps/unix/sysv/linux/sparc/lowlevellock.h
deleted file mode 100644
index e2c0b2abaa..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/lowlevellock.h
+++ /dev/null
@@ -1,135 +0,0 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _LOWLEVELLOCK_H
-#define _LOWLEVELLOCK_H 1
-
-#include <time.h>
-#include <sys/param.h>
-#include <bits/pthreadtypes.h>
-#include <atomic.h>
-#include <kernel-features.h>
-
-#include <lowlevellock-futex.h>
-
-static inline int
-__attribute__ ((always_inline))
-__lll_trylock (int *futex)
-{
- return atomic_compare_and_exchange_val_24_acq (futex, 1, 0) != 0;
-}
-#define lll_trylock(futex) __lll_trylock (&(futex))
-
-static inline int
-__attribute__ ((always_inline))
-__lll_cond_trylock (int *futex)
-{
- return atomic_compare_and_exchange_val_24_acq (futex, 2, 0) != 0;
-}
-#define lll_cond_trylock(futex) __lll_cond_trylock (&(futex))
-
-
-extern void __lll_lock_wait_private (int *futex) attribute_hidden;
-extern void __lll_lock_wait (int *futex, int private) attribute_hidden;
-
-static inline void
-__attribute__ ((always_inline))
-__lll_lock (int *futex, int private)
-{
- int val = atomic_compare_and_exchange_val_24_acq (futex, 1, 0);
-
- if (__glibc_unlikely (val != 0))
- {
- if (__builtin_constant_p (private) && private == LLL_PRIVATE)
- __lll_lock_wait_private (futex);
- else
- __lll_lock_wait (futex, private);
- }
-}
-#define lll_lock(futex, private) __lll_lock (&(futex), private)
-
-static inline void
-__attribute__ ((always_inline))
-__lll_cond_lock (int *futex, int private)
-{
- int val = atomic_compare_and_exchange_val_24_acq (futex, 2, 0);
-
- if (__glibc_unlikely (val != 0))
- __lll_lock_wait (futex, private);
-}
-#define lll_cond_lock(futex, private) __lll_cond_lock (&(futex), private)
-
-
-extern int __lll_timedlock_wait (int *futex, const struct timespec *,
- int private) attribute_hidden;
-
-static inline int
-__attribute__ ((always_inline))
-__lll_timedlock (int *futex, const struct timespec *abstime, int private)
-{
- int val = atomic_compare_and_exchange_val_24_acq (futex, 1, 0);
- int result = 0;
-
- if (__glibc_unlikely (val != 0))
- result = __lll_timedlock_wait (futex, abstime, private);
- return result;
-}
-#define lll_timedlock(futex, abstime, private) \
- __lll_timedlock (&(futex), abstime, private)
-
-#define lll_unlock(lock, private) \
- ((void) ({ \
- int *__futex = &(lock); \
- int __private = (private); \
- int __val = atomic_exchange_24_rel (__futex, 0); \
- if (__glibc_unlikely (__val > 1)) \
- lll_futex_wake (__futex, 1, __private); \
- }))
-
-#define lll_islocked(futex) \
- (futex != 0)
-
-/* Initializers for lock. */
-#define LLL_LOCK_INITIALIZER (0)
-#define LLL_LOCK_INITIALIZER_LOCKED (1)
-
-/* The kernel notifies a process which uses CLONE_CHILD_CLEARTID via futex
- wakeup when the clone terminates. The memory location contains the
- thread ID while the clone is running and is reset to zero
- afterwards. */
-#define lll_wait_tid(tid) \
- do \
- { \
- __typeof (tid) __tid; \
- while ((__tid = (tid)) != 0) \
- lll_futex_wait (&(tid), __tid, LLL_SHARED); \
- } \
- while (0)
-
-extern int __lll_timedwait_tid (int *, const struct timespec *)
- attribute_hidden;
-
-#define lll_timedwait_tid(tid, abstime) \
- ({ \
- int __res = 0; \
- if ((tid) != 0) \
- __res = __lll_timedwait_tid (&(tid), (abstime)); \
- __res; \
- })
-
-#endif /* lowlevellock.h */
diff --git a/sysdeps/unix/sysv/linux/sparc/profil-counter.h b/sysdeps/unix/sysv/linux/sparc/profil-counter.h
new file mode 100644
index 0000000000..3bbb761ff3
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/profil-counter.h
@@ -0,0 +1,37 @@
+/* Low-level statistical profiling support function. Linux/Sparc64 version.
+ Copyright (C) 1997-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <signal.h>
+
+#include <sysdeps/unix/sysv/linux/profil-counter.h>
+
+#ifndef __profil_counter
+# include <shlib-compat.h>
+# if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_31)
+void
+__profil_counter_global (int signo, struct sigcontext *si)
+{
+#ifdef __arch64__
+ profil_count (si->sigc_regs.tpc);
+#else
+ profil_count (si->si_regs.pc);
+#endif
+}
+compat_symbol (libc, __profil_counter_global, profil_counter, GLIBC_2_0);
+# endif
+#endif
diff --git a/sysdeps/unix/sysv/linux/sparc/pt-vfork.S b/sysdeps/unix/sysv/linux/sparc/pt-vfork.S
deleted file mode 100644
index 65cc3823ac..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/pt-vfork.S
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/alpha/pt-vfork.S>
diff --git a/sysdeps/unix/sysv/linux/sparc/readelflib.c b/sysdeps/unix/sysv/linux/sparc/readelflib.c
index 2af8608341..31d234dfa4 100644
--- a/sysdeps/unix/sysv/linux/sparc/readelflib.c
+++ b/sysdeps/unix/sysv/linux/sparc/readelflib.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 1999 and
Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
int process_elf32_file (const char *file_name, const char *lib, int *flag,
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/____longjmp_chk.S b/sysdeps/unix/sysv/linux/sparc/sparc32/____longjmp_chk.S
index d4bfef855b..738566ccc4 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/____longjmp_chk.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/____longjmp_chk.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <jmpbuf-offsets.h>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/bits/long-double.h b/sysdeps/unix/sysv/linux/sparc/sparc32/bits/long-double.h
index 41595400f6..aec2a86c96 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/bits/long-double.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/bits/long-double.h
@@ -1,5 +1,5 @@
/* Properties of long double type. SPARC version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <bits/wordsize.h>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/brk.c b/sysdeps/unix/sysv/linux/sparc/sparc32/brk.c
index f75f4c9dd7..a3d719dc22 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/brk.c
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/brk.c
@@ -1,5 +1,5 @@
/* brk system call for Linux/SPARC.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Miguel de Icaza (miguel@nuclecu.unam.mx)
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S b/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S
index 49028d544a..6f6518e766 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@tamu.edu).
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* clone() is even more special than fork() as it mucks with stacks
and invokes a function in the right context after its all over. */
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/getcontext.S b/sysdeps/unix/sysv/linux/sparc/sparc32/getcontext.S
index 0276478cab..9a9e69ebb1 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/getcontext.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/getcontext.S
@@ -1,5 +1,5 @@
/* Save current context.
- Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ Copyright (C) 2008-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller <davem@davemloft.net>, 2008.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index d308ac8b05..49cd597fd6 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -1826,6 +1826,11 @@ GLIBC_2.2 __xstat64 F
GLIBC_2.2 _flushlbf F
GLIBC_2.2 _res_hconf D 0x30
GLIBC_2.2 bind_textdomain_codeset F
+GLIBC_2.2 clock_getcpuclockid F
+GLIBC_2.2 clock_getres F
+GLIBC_2.2 clock_gettime F
+GLIBC_2.2 clock_nanosleep F
+GLIBC_2.2 clock_settime F
GLIBC_2.2 dcngettext F
GLIBC_2.2 dngettext F
GLIBC_2.2 fgetpos F
@@ -1996,6 +2001,9 @@ GLIBC_2.28 thrd_current F
GLIBC_2.28 thrd_equal F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
+GLIBC_2.29 getcpu F
+GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
+GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
GLIBC_2.3 __ctype_b_loc F
GLIBC_2.3 __ctype_tolower_loc F
GLIBC_2.3 __ctype_toupper_loc F
@@ -2150,6 +2158,22 @@ GLIBC_2.3.4 setipv4sourcefilter F
GLIBC_2.3.4 setsourcefilter F
GLIBC_2.3.4 xdr_quad_t F
GLIBC_2.3.4 xdr_u_quad_t F
+GLIBC_2.30 __nldbl_argp_error F
+GLIBC_2.30 __nldbl_argp_failure F
+GLIBC_2.30 __nldbl_err F
+GLIBC_2.30 __nldbl_error F
+GLIBC_2.30 __nldbl_error_at_line F
+GLIBC_2.30 __nldbl_errx F
+GLIBC_2.30 __nldbl_verr F
+GLIBC_2.30 __nldbl_verrx F
+GLIBC_2.30 __nldbl_vwarn F
+GLIBC_2.30 __nldbl_vwarnx F
+GLIBC_2.30 __nldbl_warn F
+GLIBC_2.30 __nldbl_warnx F
+GLIBC_2.30 getdents64 F
+GLIBC_2.30 gettid F
+GLIBC_2.30 tgkill F
+GLIBC_2.30 twalk_r F
GLIBC_2.4 _IO_fprintf F
GLIBC_2.4 _IO_printf F
GLIBC_2.4 _IO_sprintf F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
index fd973676e2..fc52ebf64e 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
@@ -1040,6 +1040,27 @@ GLIBC_2.28 fmul F
GLIBC_2.28 fmull F
GLIBC_2.28 fsub F
GLIBC_2.28 fsubl F
+GLIBC_2.29 exp F
+GLIBC_2.29 exp2 F
+GLIBC_2.29 log F
+GLIBC_2.29 log2 F
+GLIBC_2.29 pow F
+GLIBC_2.31 totalorder F
+GLIBC_2.31 totalorderf F
+GLIBC_2.31 totalorderf128 F
+GLIBC_2.31 totalorderf32 F
+GLIBC_2.31 totalorderf32x F
+GLIBC_2.31 totalorderf64 F
+GLIBC_2.31 totalorderf64x F
+GLIBC_2.31 totalorderl F
+GLIBC_2.31 totalordermag F
+GLIBC_2.31 totalordermagf F
+GLIBC_2.31 totalordermagf128 F
+GLIBC_2.31 totalordermagf32 F
+GLIBC_2.31 totalordermagf32x F
+GLIBC_2.31 totalordermagf64 F
+GLIBC_2.31 totalordermagf64x F
+GLIBC_2.31 totalordermagl F
GLIBC_2.4 __clog10l F
GLIBC_2.4 __finitel F
GLIBC_2.4 __fpclassifyl F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
index b413007ccb..da5e9979a8 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
@@ -42,20 +42,11 @@ GLIBC_2.0 funlockfile F
GLIBC_2.0 longjmp F
GLIBC_2.0 lseek F
GLIBC_2.0 msync F
-GLIBC_2.0 nanosleep F
GLIBC_2.0 open F
GLIBC_2.0 pause F
GLIBC_2.0 pthread_atfork F
-GLIBC_2.0 pthread_attr_destroy F
-GLIBC_2.0 pthread_attr_getdetachstate F
-GLIBC_2.0 pthread_attr_getinheritsched F
-GLIBC_2.0 pthread_attr_getschedparam F
GLIBC_2.0 pthread_attr_getschedpolicy F
GLIBC_2.0 pthread_attr_getscope F
-GLIBC_2.0 pthread_attr_init F
-GLIBC_2.0 pthread_attr_setdetachstate F
-GLIBC_2.0 pthread_attr_setinheritsched F
-GLIBC_2.0 pthread_attr_setschedparam F
GLIBC_2.0 pthread_attr_setschedpolicy F
GLIBC_2.0 pthread_attr_setscope F
GLIBC_2.0 pthread_cancel F
@@ -69,7 +60,6 @@ GLIBC_2.0 pthread_condattr_destroy F
GLIBC_2.0 pthread_condattr_init F
GLIBC_2.0 pthread_create F
GLIBC_2.0 pthread_detach F
-GLIBC_2.0 pthread_equal F
GLIBC_2.0 pthread_exit F
GLIBC_2.0 pthread_getschedparam F
GLIBC_2.0 pthread_getspecific F
@@ -88,7 +78,6 @@ GLIBC_2.0 pthread_mutexattr_getkind_np F
GLIBC_2.0 pthread_mutexattr_init F
GLIBC_2.0 pthread_mutexattr_setkind_np F
GLIBC_2.0 pthread_once F
-GLIBC_2.0 pthread_self F
GLIBC_2.0 pthread_setcancelstate F
GLIBC_2.0 pthread_setcanceltype F
GLIBC_2.0 pthread_setschedparam F
@@ -114,7 +103,6 @@ GLIBC_2.0 siglongjmp F
GLIBC_2.0 sigwait F
GLIBC_2.0 system F
GLIBC_2.0 tcdrain F
-GLIBC_2.0 vfork F
GLIBC_2.0 wait F
GLIBC_2.0 waitpid F
GLIBC_2.0 write F
@@ -124,7 +112,6 @@ GLIBC_2.1 __libc_current_sigrtmin F
GLIBC_2.1 pthread_attr_getguardsize F
GLIBC_2.1 pthread_attr_getstackaddr F
GLIBC_2.1 pthread_attr_getstacksize F
-GLIBC_2.1 pthread_attr_init F
GLIBC_2.1 pthread_attr_setguardsize F
GLIBC_2.1 pthread_attr_setstackaddr F
GLIBC_2.1 pthread_attr_setstacksize F
@@ -155,7 +142,7 @@ GLIBC_2.1 sem_wait F
GLIBC_2.1.1 sem_close F
GLIBC_2.1.1 sem_open F
GLIBC_2.1.1 sem_unlink F
-GLIBC_2.1.2 __vfork F
+GLIBC_2.1.2 __libpthread_version_placeholder F
GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 pthread_getname_np F
GLIBC_2.12 pthread_mutex_consistent F
@@ -205,7 +192,7 @@ GLIBC_2.2 pwrite F
GLIBC_2.2 pwrite64 F
GLIBC_2.2 sem_timedwait F
GLIBC_2.2.3 pthread_getattr_np F
-GLIBC_2.2.6 __nanosleep F
+GLIBC_2.2.6 __libpthread_version_placeholder F
GLIBC_2.28 call_once F
GLIBC_2.28 cnd_broadcast F
GLIBC_2.28 cnd_destroy F
@@ -255,6 +242,12 @@ GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
GLIBC_2.3.4 pthread_setaffinity_np F
GLIBC_2.3.4 pthread_setschedprio F
+GLIBC_2.30 pthread_cond_clockwait F
+GLIBC_2.30 pthread_mutex_clocklock F
+GLIBC_2.30 pthread_rwlock_clockrdlock F
+GLIBC_2.30 pthread_rwlock_clockwrlock F
+GLIBC_2.30 sem_clockwait F
+GLIBC_2.31 pthread_clockjoin_np F
GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 pthread_mutex_getprioceiling F
GLIBC_2.4 pthread_mutex_setprioceiling F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
index cb874f4147..38f0aad791 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
@@ -15,11 +15,6 @@ GLIBC_2.1 aio_write F
GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
GLIBC_2.1 lio_listio64 F
-GLIBC_2.2 clock_getcpuclockid F
-GLIBC_2.2 clock_getres F
-GLIBC_2.2 clock_gettime F
-GLIBC_2.2 clock_nanosleep F
-GLIBC_2.2 clock_settime F
GLIBC_2.2 shm_open F
GLIBC_2.2 shm_unlink F
GLIBC_2.2 timer_create F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/localplt.data b/sysdeps/unix/sysv/linux/sparc/sparc32/localplt.data
index 1668f4017e..6bf10ff858 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/localplt.data
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/localplt.data
@@ -8,8 +8,10 @@ libc.so: _Q_fle ?
libc.so: _Q_flt ?
libc.so: _Q_fne ?
libc.so: _Q_itoq ?
+libc.so: _Q_lltoq ?
libc.so: _Q_mul ?
libc.so: _Q_sub ?
+libc.so: _Q_qtod ?
libc.so: _Unwind_Find_FDE
libc.so: calloc
libc.so: free
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/lockf64.c b/sysdeps/unix/sysv/linux/sparc/sparc32/lockf64.c
deleted file mode 100644
index a88f5a784a..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/lockf64.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/lockf64.c>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/makecontext.c b/sysdeps/unix/sysv/linux/sparc/sparc32/makecontext.c
index 4bec31489a..de8022907f 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/makecontext.c
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/makecontext.c
@@ -1,5 +1,5 @@
/* Create new context.
- Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ Copyright (C) 2008-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller <davem@davemloft.net>, 2008.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <stdarg.h>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/pipe.S b/sysdeps/unix/sysv/linux/sparc/sparc32/pipe.S
index 1b0a5362dd..8c2d9a0d0a 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/pipe.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/pipe.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Miguel de Icaza <miguel@gnu.ai.mit.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/profil-counter.h b/sysdeps/unix/sysv/linux/sparc/sparc32/profil-counter.h
deleted file mode 100644
index 1e38cf0f5e..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/profil-counter.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Low-level statistical profiling support function. Linux/SPARC version.
- Copyright (C) 1997-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <signal.h>
-
-void
-__profil_counter (int signo, struct sigcontext *si)
-{
- profil_count ((void *) si->si_regs.pc);
-}
-#ifndef __profil_counter
-weak_alias (__profil_counter, profil_counter)
-#endif
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/register-dump.h b/sysdeps/unix/sysv/linux/sparc/sparc32/register-dump.h
index f6d9bb373e..bc376dedfb 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/register-dump.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/register-dump.h
@@ -1,5 +1,5 @@
/* Dump registers.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/uio.h>
#include <_itoa.h>
@@ -84,16 +84,23 @@ struct __siginfo_sparc64_fpu
unsigned int si_fprs;
};
+/* Unlike other architectures, sparc32 passes pt_regs32 REGS pointer as
+ the third argument to a sa_sigaction handler with SA_SIGINFO enabled. */
static void
-register_dump (int fd, SIGCONTEXT ctx)
+register_dump (int fd, void *ctx)
{
char regs[36][8];
char fregs[68][8];
struct iovec iov[150];
size_t nr = 0;
int i;
- unsigned int *r = (unsigned int *)
- ctx->si_regs.u_regs[14];
+ struct pt_regs32 *ptregs = (struct pt_regs32 *) ctx;
+ struct compat_sigset_t
+ {
+ unsigned int sig[2];
+ };
+ struct compat_sigset_t *mask = (struct compat_sigset_t *)(ptregs + 1);
+ unsigned int *r = (unsigned int *) ptregs->u_regs[14];
#define ADD_STRING(str) \
iov[nr].iov_base = (char *) str; \
@@ -105,15 +112,16 @@ register_dump (int fd, SIGCONTEXT ctx)
++nr
/* Generate strings of register contents. */
- hexvalue (ctx->si_regs.psr, regs[0], 8);
- hexvalue (ctx->si_regs.pc, regs[1], 8);
- hexvalue (ctx->si_regs.npc, regs[2], 8);
- hexvalue (ctx->si_regs.y, regs[3], 8);
+ hexvalue (ptregs->psr, regs[0], 8);
+ hexvalue (ptregs->pc, regs[1], 8);
+ hexvalue (ptregs->npc, regs[2], 8);
+ hexvalue (ptregs->y, regs[3], 8);
for (i = 1; i <= 15; i++)
- hexvalue (ctx->si_regs.u_regs[i], regs[3+i], 8);
+ hexvalue (ptregs->u_regs[i], regs[3+i], 8);
for (i = 0; i <= 15; i++)
hexvalue (r[i], regs[19+i], 8);
- hexvalue (ctx->si_mask, regs[35], 8);
+
+ hexvalue (mask->sig[0], regs[35], 8);
/* Generate the output. */
ADD_STRING ("Register dump:\n\n PSR: ");
@@ -189,11 +197,11 @@ register_dump (int fd, SIGCONTEXT ctx)
ADD_STRING ("\n\n Old mask: ");
ADD_MEM (regs[35], 8);
- if ((ctx->si_regs.psr & 0xff000000) == 0xff000000)
+ if ((ptregs->psr & 0xff000000) == 0xff000000)
{
- struct __siginfo_sparc64_fpu *f;
+ struct __siginfo_sparc64_fpu *f = *(struct __siginfo_sparc64_fpu **)
+ (mask + 1);
- f = *(struct __siginfo_sparc64_fpu **) (ctx + 1);
if (f != NULL)
{
for (i = 0; i < 64; i++)
@@ -277,9 +285,9 @@ register_dump (int fd, SIGCONTEXT ctx)
}
else
{
- struct __siginfo_sparc32_fpu *f;
+ struct __siginfo_sparc32_fpu *f = *(struct __siginfo_sparc32_fpu **)
+ (mask + 1);
- f = *(struct __siginfo_sparc32_fpu **) (ctx + 1);
if (f != NULL)
{
for (i = 0; i < 32; i++)
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/setcontext.S b/sysdeps/unix/sysv/linux/sparc/sparc32/setcontext.S
index 283aef1b30..f9b1c7028c 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/setcontext.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/setcontext.S
@@ -1,5 +1,5 @@
/* Install given context.
- Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ Copyright (C) 2008-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller <davem@davemloft.net>, 2008.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <sys/trap.h>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c b/sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c
index 191f58729e..4fb72bec1d 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c
@@ -1,5 +1,5 @@
/* POSIX.1 sigaction call for Linux/SPARC.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Miguel de Icaza <miguel@nuclecu.unam.mx>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <syscall.h>
@@ -27,11 +27,12 @@
static void __rt_sigreturn_stub (void);
static void __sigreturn_stub (void);
-#define STUB(act) \
+#define STUB(act, sigsetsize) \
(act) ? ((unsigned long)((act->sa_flags & SA_SIGINFO) \
? &__rt_sigreturn_stub \
: &__sigreturn_stub) - 8) \
- : 0,
+ : 0, \
+ (sigsetsize)
#include <sysdeps/unix/sysv/linux/sigaction.c>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h b/sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h
index 1c32abfbc2..77fbe16c03 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 1999.
@@ -14,7 +14,43 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#define SIGCONTEXT struct sigcontext *
-#define GET_PC(__ctx) ((void *) ((__ctx)->si_regs.pc))
+#ifndef _SIGCONTEXTINFO_H
+#define _SIGCONTEXTINFO_H
+
+/* The sparc32 kernel signal frame for SA_SIGINFO is defined as:
+
+ struct rt_signal_frame32
+ {
+ struct sparc_stackf32 ss;
+ compat_siginfo_t info;
+ struct pt_regs32 regs; <- void *ctx
+ compat_sigset_t mask;
+ u32 fpu_save;
+ unsigned int insns[2];
+ compat_stack_t stack;
+ unsigned int extra_size;
+ siginfo_extra_v8plus_t v8plus;
+ u32 rwin_save;
+ } __attribute__((aligned(8)));
+
+ Unlike other architectures, sparc32 passes pt_regs32 REGS pointer as
+ the third argument to a sa_sigaction handler with SA_SIGINFO enabled. */
+
+struct pt_regs32
+{
+ unsigned int psr;
+ unsigned int pc;
+ unsigned int npc;
+ unsigned int y;
+ unsigned int u_regs[16];
+};
+
+static inline uintptr_t
+sigcontext_get_pc (const struct pt_regs32 *ctx)
+{
+ return ctx->pc;
+}
+
+#endif
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/get_clockfreq.c b/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/get_clockfreq.c
deleted file mode 100644
index 4191085d1f..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/get_clockfreq.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/swapcontext.S b/sysdeps/unix/sysv/linux/sparc/sparc32/swapcontext.S
index 2e2e448954..71fc977b1c 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/swapcontext.S
@@ -1,5 +1,5 @@
/* Save current context and install the given one.
- Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ Copyright (C) 2008-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David S. Miller <davem@davemloft.net>, 2008.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <sys/trap.h>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/syscall.S b/sysdeps/unix/sysv/linux/sparc/sparc32/syscall.S
index 9542282f7d..03450828a1 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/syscall.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h b/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h
index 09bfd805fc..dbf38b0347 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Miguel de Icaza <miguel@gnu.ai.mit.edu>, January 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LINUX_SPARC32_SYSDEP_H
#define _LINUX_SPARC32_SYSDEP_H 1
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S b/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S
index f34c95ad07..eadb3f2178 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <tcb-offsets.h>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile b/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile
index 715af3df7b..218c246f16 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile
@@ -7,3 +7,8 @@ LD += -melf64_sparc
ifeq ($(subdir),stdlib)
sysdep_routines += __start_context
endif
+
+ifeq ($(subdir),conform)
+# For bug 23821 (incorrect type of si_band).
+conformtest-xfail-conds += sparc64-linux
+endif
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S b/sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S
index 50b5d0543c..401ac058bb 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* longjmp is implemented in terms of the setcontext trap on Linux/Sparc64. */
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/__start_context.S b/sysdeps/unix/sysv/linux/sparc/sparc64/__start_context.S
index 3f1e3f64da..5571877b92 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/__start_context.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/__start_context.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/bits/long-double.h b/sysdeps/unix/sysv/linux/sparc/sparc64/bits/long-double.h
index 41595400f6..aec2a86c96 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/bits/long-double.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/bits/long-double.h
@@ -1,5 +1,5 @@
/* Properties of long double type. SPARC version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <bits/wordsize.h>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/brk.S b/sysdeps/unix/sysv/linux/sparc/sparc64/brk.S
index d8f8115758..59e86d0182 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/brk.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/brk.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson <richard@gnu.ai.mit.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* __brk is a special syscall under Linux since it never returns an
error. Instead, the error condition is indicated by returning the old
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S b/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S
index 81812c689f..f6122e5108 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@tamu.edu).
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* clone() is even more special than fork() as it mucks with stacks
and invokes a function in the right context after its all over. */
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/dl-cache.h b/sysdeps/unix/sysv/linux/sparc/sparc64/dl-cache.h
index ce605a50d1..3fdb610d99 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/dl-cache.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/dl-cache.h
@@ -1,5 +1,5 @@
/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _DL_CACHE_DEFAULT_ID 0x103
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c b/sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c
deleted file mode 100644
index 6838a77a76..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c
+++ /dev/null
@@ -1,250 +0,0 @@
-/* Get frequency of the system processor. sparc64 version.
- Copyright (C) 2001-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <ctype.h>
-#include <fcntl.h>
-#include <string.h>
-#include <unistd.h>
-#include <dirent.h>
-#include <stdlib.h>
-#include <inttypes.h>
-#include <sys/ioctl.h>
-#include <asm/openpromio.h>
-
-static hp_timing_t
-__get_clockfreq_via_cpuinfo (void)
-{
- hp_timing_t result;
- int fd;
-
- result = 0;
-
- fd = __open ("/proc/cpuinfo", O_RDONLY);
- if (fd != -1)
- {
- char buf[8192];
- ssize_t n;
-
- n = __read (fd, buf, sizeof buf);
- if (n > 0)
- {
- char *mhz = memmem (buf, n, "Cpu0ClkTck", 7);
-
- if (mhz != NULL)
- {
- char *endp = buf + n;
-
- /* Search for the beginning of the string. */
- while (mhz < endp
- && (*mhz < '0' || *mhz > '9')
- && (*mhz < 'a' || *mhz > 'f')
- && *mhz != '\n')
- ++mhz;
-
- while (mhz < endp && *mhz != '\n')
- {
- if ((*mhz >= '0' && *mhz <= '9') ||
- (*mhz >= 'a' && *mhz <= 'f'))
- {
- result <<= 4;
- if (*mhz >= '0' && *mhz <= '9')
- result += *mhz - '0';
- else
- result += (*mhz - 'a') + 10;
- }
- ++mhz;
- }
- }
- }
-
- __close (fd);
- }
-
- return result;
-}
-
-static hp_timing_t
-__get_clockfreq_via_proc_openprom (void)
-{
- hp_timing_t result;
- int obp_fd;
-
- result = 0;
-
- obp_fd = __open ("/proc/openprom", O_RDONLY);
- if (obp_fd != -1)
- {
- unsigned long int buf[4096 / sizeof (unsigned long int)];
- struct dirent64 *dirp = (struct dirent64 *) buf;
- ssize_t len;
-
- while ((len = __getdents64 (obp_fd, (char *) dirp, sizeof (buf))) > 0)
- {
- struct dirent64 *this_dirp = dirp;
-
- while (len > 0)
- {
- char node[strlen ("/proc/openprom/")
- + _D_ALLOC_NAMLEN (this_dirp)
- + strlen ("/clock-frequency")];
- char *prop;
- int fd;
-
- /* Note that
- strlen("/clock-frequency") > strlen("/device_type")
- */
- __stpcpy (prop = __stpcpy (__stpcpy (node, "/proc/openprom/"),
- this_dirp->d_name),
- "/device_type");
- fd = __open (node, O_RDONLY);
- if (fd != -1)
- {
- char type_string[128];
- int ret;
-
- ret = __read (fd, type_string, sizeof (type_string));
- if (ret > 0 && strncmp (type_string, "'cpu'", 5) == 0)
- {
- int clkfreq_fd;
-
- __stpcpy (prop, "/clock-frequency");
- clkfreq_fd = __open (node, O_RDONLY);
- if (clkfreq_fd != -1)
- {
- if (__read (clkfreq_fd, type_string,
- sizeof (type_string)) > 0)
- result = (hp_timing_t)
- strtoumax (type_string, NULL, 16);
- __close (clkfreq_fd);
- }
- }
- __close (fd);
- }
-
- if (result != 0)
- break;
-
- len -= this_dirp->d_reclen;
- this_dirp = (struct dirent64 *)
- ((char *) this_dirp + this_dirp->d_reclen);
- }
- if (result != 0)
- break;
- }
- __close (obp_fd);
- }
-
- return result;
-}
-
-static void set_obp_int (struct openpromio *op, int val)
-{
- char *cp = op->oprom_array;
- int *ip = (int *) cp;
-
- *ip = val;
-}
-
-static int get_obp_int (struct openpromio *op)
-{
- char *cp = op->oprom_array;
- int *ip = (int *) cp;
-
- return *ip;
-}
-
-static hp_timing_t
-__get_clockfreq_via_dev_openprom (void)
-{
- hp_timing_t result;
- int obp_dev_fd;
-
- result = 0;
-
- obp_dev_fd = __open ("/dev/openprom", O_RDONLY);
- if (obp_dev_fd != -1)
- {
- char obp_buf[8192];
- struct openpromio *obp_cmd = (struct openpromio *)obp_buf;
- int ret;
-
- obp_cmd->oprom_size =
- sizeof (obp_buf) - sizeof (unsigned int);
- set_obp_int (obp_cmd, 0);
- ret = __ioctl (obp_dev_fd, OPROMCHILD, (char *) obp_cmd);
- if (ret == 0)
- {
- int cur_node = get_obp_int (obp_cmd);
-
- while (cur_node != 0 && cur_node != -1)
- {
- obp_cmd->oprom_size = sizeof (obp_buf) - sizeof (unsigned int);
- strcpy (obp_cmd->oprom_array, "device_type");
- ret = __ioctl (obp_dev_fd, OPROMGETPROP, (char *) obp_cmd);
- if (ret == 0
- && strncmp (obp_cmd->oprom_array, "cpu", 3) == 0)
- {
- obp_cmd->oprom_size = (sizeof (obp_buf)
- - sizeof (unsigned int));
- strcpy (obp_cmd->oprom_array, "clock-frequency");
- ret = __ioctl (obp_dev_fd, OPROMGETPROP, (char *) obp_cmd);
- if (ret == 0)
- result = (hp_timing_t) get_obp_int (obp_cmd);
- }
- obp_cmd->oprom_size = sizeof (obp_buf) - sizeof (unsigned int);
- set_obp_int (obp_cmd, cur_node);
- ret = __ioctl (obp_dev_fd, OPROMNEXT, (char *) obp_cmd);
- if (ret < 0)
- break;
- cur_node = get_obp_int (obp_cmd);
- }
- }
- }
-
- return result;
-}
-
-hp_timing_t
-__get_clockfreq (void)
-{
- static hp_timing_t result;
-
- /* If this function was called before, we know the result. */
- if (result != 0)
- return result;
-
- /* We first read the information from the /proc/cpuinfo file.
- It contains at least one line like
- Cpu0ClkTick : 000000002cb41780
- We search for this line and convert the number in an integer. */
- result = __get_clockfreq_via_cpuinfo ();
- if (result != 0)
- return result;
-
- /* If that did not work, try to find an OpenPROM node
- with device_type equal to 'cpu' using /dev/openprom
- and fetch the clock-frequency property from there. */
- result = __get_clockfreq_via_dev_openprom ();
- if (result != 0)
- return result;
-
- /* Finally, try the same lookup as above but using /proc/openprom. */
- result = __get_clockfreq_via_proc_openprom ();
-
- return result;
-}
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/getcontext.S b/sysdeps/unix/sysv/linux/sparc/sparc64/getcontext.S
index e186fe350f..ec8401ca3c 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/getcontext.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/getcontext.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@tamu.edu).
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "ucontext_i.h"
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/ipc_priv.h b/sysdeps/unix/sysv/linux/sparc/sparc64/ipc_priv.h
index 9d7ad3e8a6..0443d6b672 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/ipc_priv.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/ipc_priv.h
@@ -1,5 +1,5 @@
/* Old SysV permission definition for Linux. x86_64 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,28 +14,22 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#include <sys/ipc.h> /* For __key_t */
-
-#define __IPC_64 0x0
-
-struct __old_ipc_perm
-{
- __key_t __key; /* Key. */
- unsigned int uid; /* Owner's user ID. */
- unsigned int gid; /* Owner's group ID. */
- unsigned int cuid; /* Creator's user ID. */
- unsigned int cgid; /* Creator's group ID. */
- unsigned int mode; /* Read/write permission. */
- unsigned short int __seq; /* Sequence number. */
-};
+#define __OLD_IPC_ID_TYPE unsigned int
+#define __OLD_IPC_MODE_TYPE unsigned int
+#include <sysdeps/unix/sysv/linux/ipc_priv.h>
/* SPARC semctl multiplex syscall expects the union pointed address, not
the union address itself. */
+#undef SEMCTL_ARG_ADDRESS
#define SEMCTL_ARG_ADDRESS(__arg) __arg.array
/* Also for msgrcv it does not use the kludge on final 2 arguments. */
+#undef MSGRCV_ARGS
#define MSGRCV_ARGS(__msgp, __msgtyp) __msgp, __msgtyp
+#define SEMTIMEDOP_IPC_ARGS(__nsops, __sops, __timeout) \
+ (__nsops), 0, (__sops), (__timeout)
+
#include <ipc_ops.h>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 6731ebfc28..95e68e0ba1 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -660,6 +660,11 @@ GLIBC_2.2 clntudp_bufcreate F
GLIBC_2.2 clntudp_create F
GLIBC_2.2 clntunix_create F
GLIBC_2.2 clock F
+GLIBC_2.2 clock_getcpuclockid F
+GLIBC_2.2 clock_getres F
+GLIBC_2.2 clock_gettime F
+GLIBC_2.2 clock_nanosleep F
+GLIBC_2.2 clock_settime F
GLIBC_2.2 clone F
GLIBC_2.2 close F
GLIBC_2.2 closedir F
@@ -1937,6 +1942,9 @@ GLIBC_2.28 thrd_current F
GLIBC_2.28 thrd_equal F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
+GLIBC_2.29 getcpu F
+GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
+GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
GLIBC_2.3 __ctype_b_loc F
GLIBC_2.3 __ctype_tolower_loc F
GLIBC_2.3 __ctype_toupper_loc F
@@ -2089,6 +2097,10 @@ GLIBC_2.3.4 setipv4sourcefilter F
GLIBC_2.3.4 setsourcefilter F
GLIBC_2.3.4 xdr_quad_t F
GLIBC_2.3.4 xdr_u_quad_t F
+GLIBC_2.30 getdents64 F
+GLIBC_2.30 gettid F
+GLIBC_2.30 tgkill F
+GLIBC_2.30 twalk_r F
GLIBC_2.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
GLIBC_2.4 __fgets_unlocked_chk F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
index 470e64f4ef..5288a28533 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
@@ -1032,3 +1032,24 @@ GLIBC_2.28 fmul F
GLIBC_2.28 fmull F
GLIBC_2.28 fsub F
GLIBC_2.28 fsubl F
+GLIBC_2.29 exp F
+GLIBC_2.29 exp2 F
+GLIBC_2.29 log F
+GLIBC_2.29 log2 F
+GLIBC_2.29 pow F
+GLIBC_2.31 totalorder F
+GLIBC_2.31 totalorderf F
+GLIBC_2.31 totalorderf128 F
+GLIBC_2.31 totalorderf32 F
+GLIBC_2.31 totalorderf32x F
+GLIBC_2.31 totalorderf64 F
+GLIBC_2.31 totalorderf64x F
+GLIBC_2.31 totalorderl F
+GLIBC_2.31 totalordermag F
+GLIBC_2.31 totalordermagf F
+GLIBC_2.31 totalordermagf128 F
+GLIBC_2.31 totalordermagf32 F
+GLIBC_2.31 totalordermagf32x F
+GLIBC_2.31 totalordermagf64 F
+GLIBC_2.31 totalordermagf64x F
+GLIBC_2.31 totalordermagl F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
index ccc9449826..4c844da957 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
@@ -46,7 +46,6 @@ GLIBC_2.2 __read F
GLIBC_2.2 __res_state F
GLIBC_2.2 __send F
GLIBC_2.2 __sigaction F
-GLIBC_2.2 __vfork F
GLIBC_2.2 __wait F
GLIBC_2.2 __write F
GLIBC_2.2 _pthread_cleanup_pop F
@@ -66,28 +65,19 @@ GLIBC_2.2 longjmp F
GLIBC_2.2 lseek F
GLIBC_2.2 lseek64 F
GLIBC_2.2 msync F
-GLIBC_2.2 nanosleep F
GLIBC_2.2 open F
GLIBC_2.2 open64 F
GLIBC_2.2 pause F
GLIBC_2.2 pread F
GLIBC_2.2 pread64 F
GLIBC_2.2 pthread_atfork F
-GLIBC_2.2 pthread_attr_destroy F
-GLIBC_2.2 pthread_attr_getdetachstate F
GLIBC_2.2 pthread_attr_getguardsize F
-GLIBC_2.2 pthread_attr_getinheritsched F
-GLIBC_2.2 pthread_attr_getschedparam F
GLIBC_2.2 pthread_attr_getschedpolicy F
GLIBC_2.2 pthread_attr_getscope F
GLIBC_2.2 pthread_attr_getstack F
GLIBC_2.2 pthread_attr_getstackaddr F
GLIBC_2.2 pthread_attr_getstacksize F
-GLIBC_2.2 pthread_attr_init F
-GLIBC_2.2 pthread_attr_setdetachstate F
GLIBC_2.2 pthread_attr_setguardsize F
-GLIBC_2.2 pthread_attr_setinheritsched F
-GLIBC_2.2 pthread_attr_setschedparam F
GLIBC_2.2 pthread_attr_setschedpolicy F
GLIBC_2.2 pthread_attr_setscope F
GLIBC_2.2 pthread_attr_setstack F
@@ -112,7 +102,6 @@ GLIBC_2.2 pthread_condattr_init F
GLIBC_2.2 pthread_condattr_setpshared F
GLIBC_2.2 pthread_create F
GLIBC_2.2 pthread_detach F
-GLIBC_2.2 pthread_equal F
GLIBC_2.2 pthread_exit F
GLIBC_2.2 pthread_getconcurrency F
GLIBC_2.2 pthread_getcpuclockid F
@@ -153,7 +142,6 @@ GLIBC_2.2 pthread_rwlockattr_getpshared F
GLIBC_2.2 pthread_rwlockattr_init F
GLIBC_2.2 pthread_rwlockattr_setkind_np F
GLIBC_2.2 pthread_rwlockattr_setpshared F
-GLIBC_2.2 pthread_self F
GLIBC_2.2 pthread_setcancelstate F
GLIBC_2.2 pthread_setcanceltype F
GLIBC_2.2 pthread_setconcurrency F
@@ -192,12 +180,11 @@ GLIBC_2.2 siglongjmp F
GLIBC_2.2 sigwait F
GLIBC_2.2 system F
GLIBC_2.2 tcdrain F
-GLIBC_2.2 vfork F
GLIBC_2.2 wait F
GLIBC_2.2 waitpid F
GLIBC_2.2 write F
GLIBC_2.2.3 pthread_getattr_np F
-GLIBC_2.2.6 __nanosleep F
+GLIBC_2.2.6 __libpthread_version_placeholder F
GLIBC_2.28 call_once F
GLIBC_2.28 cnd_broadcast F
GLIBC_2.28 cnd_destroy F
@@ -247,6 +234,12 @@ GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
GLIBC_2.3.4 pthread_setaffinity_np F
GLIBC_2.3.4 pthread_setschedprio F
+GLIBC_2.30 pthread_cond_clockwait F
+GLIBC_2.30 pthread_mutex_clocklock F
+GLIBC_2.30 pthread_rwlock_clockrdlock F
+GLIBC_2.30 pthread_rwlock_clockwrlock F
+GLIBC_2.30 sem_clockwait F
+GLIBC_2.31 pthread_clockjoin_np F
GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 pthread_mutex_getprioceiling F
GLIBC_2.4 pthread_mutex_setprioceiling F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
index d7a049cf60..71f86e03ce 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
@@ -15,11 +15,6 @@ GLIBC_2.1 aio_write F
GLIBC_2.1 aio_write64 F
GLIBC_2.1 lio_listio F
GLIBC_2.1 lio_listio64 F
-GLIBC_2.2 clock_getcpuclockid F
-GLIBC_2.2 clock_getres F
-GLIBC_2.2 clock_gettime F
-GLIBC_2.2 clock_nanosleep F
-GLIBC_2.2 clock_settime F
GLIBC_2.2 shm_open F
GLIBC_2.2 shm_unlink F
GLIBC_2.2 timer_create F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S b/sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S
index 5937396fc7..fe1079fff6 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@tamu.edu).
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* longjmp is implemented in terms of the setcontext trap on Linux/Sparc64. */
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/makecontext.c b/sysdeps/unix/sysv/linux/sparc/sparc64/makecontext.c
index 3f02c9361b..b41751678c 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/makecontext.c
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/makecontext.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdarg.h>
#include <stdio.h>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/pipe.S b/sysdeps/unix/sysv/linux/sparc/sparc64/pipe.S
index a6e530d4fc..1ff1d5e0a9 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/pipe.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/pipe.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Miguel de Icaza <miguel@gnu.ai.mit.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/profil-counter.h b/sysdeps/unix/sysv/linux/sparc/sparc64/profil-counter.h
deleted file mode 100644
index 6cf82147dc..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/profil-counter.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Low-level statistical profiling support function. Linux/Sparc64 version.
- Copyright (C) 1997-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <signal.h>
-
-void
-__profil_counter (int signo, struct sigcontext *si)
-{
- profil_count ((void *) si->sigc_regs.tpc);
-}
-#ifndef __profil_counter
-weak_alias (__profil_counter, profil_counter)
-#endif
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/register-dump.h b/sysdeps/unix/sysv/linux/sparc/sparc64/register-dump.h
index b05897751d..d104aa7c8a 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/register-dump.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/register-dump.h
@@ -1,5 +1,5 @@
/* Dump registers.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jj@ultra.linux.cz>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/uio.h>
#include <_itoa.h>
@@ -60,17 +60,36 @@ hexvalue (unsigned long int value, char *buf, size_t len)
*--cp = '0';
}
+/* The sparc64 kernel signal frame for SA_SIGINFO is defined as:
+
+ struct rt_signal_frame
+ {
+ struct sparc_stackf ss;
+ siginfo_t info;
+ struct pt_regs regs; <- void *ctx
+ __siginfo_fpu_t *fpu_save;
+ stack_t stack;
+ sigset_t mask;
+ __siginfo_rwin_t *rwin_save;
+ };
+
+ Unlike other architectures, sparc32 passes pt_regs32 REGS pointers as
+ the third argument to a sa_sigaction handler with SA_SIGINFO enabled. */
+
static void
-register_dump (int fd, SIGCONTEXT ctx)
+register_dump (int fd, void *ctx)
{
char regs[36][16];
char fregs[68][8];
struct iovec iov[150];
size_t nr = 0;
int i;
- unsigned long *r = (unsigned long *)
- (ctx->sigc_regs.u_regs[14] + STACK_BIAS);
- __siginfo_fpu_t *f;
+ struct pt_regs *ptregs = (struct pt_regs*) ((siginfo_t *)ctx + 1);
+ unsigned long *r = (unsigned long *) (ptregs->u_regs[14] + STACK_BIAS);
+ __siginfo_fpu_t *f = (__siginfo_fpu_t *)(ptregs + 1);
+ struct kernel_sigset_t {
+ unsigned long sig[1];
+ } *mask = (struct kernel_sigset_t *)((stack_t *)(f + 1) + 1);
#define ADD_STRING(str) \
iov[nr].iov_base = (char *) str; \
@@ -82,15 +101,15 @@ register_dump (int fd, SIGCONTEXT ctx)
++nr
/* Generate strings of register contents. */
- hexvalue (ctx->sigc_regs.tstate, regs[0], 16);
- hexvalue (ctx->sigc_regs.tpc, regs[1], 16);
- hexvalue (ctx->sigc_regs.tnpc, regs[2], 16);
- hexvalue (ctx->sigc_regs.y, regs[3], 8);
+ hexvalue (ptregs->tstate, regs[0], 16);
+ hexvalue (ptregs->tpc, regs[1], 16);
+ hexvalue (ptregs->tnpc, regs[2], 16);
+ hexvalue (ptregs->y, regs[3], 8);
for (i = 1; i <= 15; i++)
- hexvalue (ctx->sigc_regs.u_regs[i], regs[3+i], 16);
+ hexvalue (ptregs->u_regs[i], regs[3+i], 16);
for (i = 0; i <= 15; i++)
- hexvalue (r[i], regs[19+i], 16);
- hexvalue (ctx->sigc_mask, regs[35], 16);
+ hexvalue (r[i], regs[19+i], 16);
+ hexvalue (mask->sig[0], regs[35], 16);
/* Generate the output. */
ADD_STRING ("Register dump:\n\n TSTATE: ");
@@ -166,7 +185,6 @@ register_dump (int fd, SIGCONTEXT ctx)
ADD_STRING ("\n\n Mask: ");
ADD_MEM (regs[35], 16);
- f = ctx->sigc_fpu_save;
if (f != NULL)
{
for (i = 0; i < 64; i++)
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/setcontext.S b/sysdeps/unix/sysv/linux/sparc/sparc64/setcontext.S
index 02ed090b11..867f1976ef 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/setcontext.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/setcontext.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@tamu.edu).
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "ucontext_i.h"
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/setjmp.S b/sysdeps/unix/sysv/linux/sparc/sparc64/setjmp.S
index bd01ba379c..aa2d5a7416 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/setjmp.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/setjmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@tamu.edu).
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* __sigsetjmp is implemented in terms of the getcontext trap on
Linux/Sparc64. */
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c b/sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c
index cfbbc6e7b4..5c1cd2834e 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c
@@ -1,5 +1,5 @@
/* POSIX.1 sigaction call for Linux/SPARC64.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Miguel de Icaza <miguel@nuclecu.unam.mx> and
Jakub Jelinek <jj@ultra.linux.cz>.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <syscall.h>
@@ -24,8 +24,9 @@
static void __rt_sigreturn_stub (void);
-#define STUB(act) \
- (((unsigned long) &__rt_sigreturn_stub) - 8),
+#define STUB(act, sigsetsize) \
+ (((unsigned long) &__rt_sigreturn_stub) - 8), \
+ (sigsetsize)
#include <sysdeps/unix/sysv/linux/sigaction.c>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h b/sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h
index 32066eb3a3..1b72c96e5d 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jj@ultra.linux.cz>, 1999.
@@ -14,10 +14,48 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SIGCONTEXTINFO_H
+#define _SIGCONTEXTINFO_H
+
+#include <bits/types/siginfo_t.h>
+
+/* The sparc64 kernel signal frame for SA_SIGINFO is defined as:
+
+ struct rt_signal_frame
+ {
+ struct sparc_stackf ss;
+ siginfo_t info;
+ struct pt_regs regs;
+ __siginfo_fpu_t *fpu_save;
+ stack_t stack;
+ sigset_t mask;
+ __siginfo_rwin_t *rwin_save;
+ };
+
+ Unlike other architectures, sparc64 passe the siginfo_t INFO pointer
+ as the third argument to a sa_sigaction handler with SA_SIGINFO enabled. */
#ifndef STACK_BIAS
#define STACK_BIAS 2047
#endif
-#define SIGCONTEXT struct sigcontext *
-#define GET_PC(__ctx) ((void *) ((__ctx)->sigc_regs.tpc))
+
+struct pt_regs
+{
+ unsigned long int u_regs[16];
+ unsigned long int tstate;
+ unsigned long int tpc;
+ unsigned long int tnpc;
+ unsigned int y;
+ unsigned int magic;
+};
+
+static inline uintptr_t
+sigcontext_get_pc (const siginfo_t *ctx)
+{
+ struct pt_regs *regs = (struct pt_regs*) ((siginfo_t *)(ctx) + 1);
+ return regs->tpc;
+}
+
+#endif
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c b/sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c
index a31f831417..5823826ab2 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <signal.h>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/sizes.h b/sysdeps/unix/sysv/linux/sparc/sparc64/sizes.h
index 888859d86a..4d8cffa799 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/sizes.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sizes.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SIZES_H
#define _SIZES_H 1
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/swapcontext.c b/sysdeps/unix/sysv/linux/sparc/sparc64/swapcontext.c
index d2eaef4cf8..b2564251b7 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/swapcontext.c
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/swapcontext.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ucontext.h>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S b/sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S
index e358a8bff0..8a7a1553e5 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
.text
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list b/sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list
index 33082f31eb..d30d7f2b96 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list
@@ -1,10 +1,7 @@
# File name Caller Syscall name # args Strong name Weak names
-bind - bind 3 __bind bind
getpeername - getpeername 3 __getpeername getpeername
getsockname - getsockname 3 __getsockname getsockname
getsockopt - getsockopt 5 __getsockopt getsockopt
-listen - listen 2 __listen listen
-setsockopt - setsockopt 5 __setsockopt setsockopt
shutdown - shutdown 2 __shutdown shutdown
socketpair - socketpair 4 __socketpair socketpair
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h b/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h
index 0fb2e427f8..ebc68c63c3 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson <richard@gnu.ai.mit.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LINUX_SPARC64_SYSDEP_H
#define _LINUX_SPARC64_SYSDEP_H 1
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/time.c b/sysdeps/unix/sysv/linux/sparc/sparc64/time.c
deleted file mode 100644
index 509b580c55..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/time.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/posix/time.c>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/ucontext_i.h b/sysdeps/unix/sysv/linux/sparc/sparc64/ucontext_i.h
index 7d1276aa00..9fc55514e1 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/ucontext_i.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/ucontext_i.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Constants shared between setcontext() and getcontext(). Don't
install this header file. */
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S b/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S
index eb1db699fe..93f422ca86 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <tcb-offsets.h>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/wordexp.c b/sysdeps/unix/sysv/linux/sparc/sparc64/wordexp.c
index 142d30cd64..8cceee74dd 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/wordexp.c
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/wordexp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <shlib-compat.h>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/xstatconv.c b/sysdeps/unix/sysv/linux/sparc/sparc64/xstatconv.c
index 76b9296f05..811a76af9b 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/xstatconv.c
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/xstatconv.c
@@ -1,5 +1,5 @@
/* Convert between the kernel's `struct stat' format, and libc's.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <errno.h>
diff --git a/sysdeps/unix/sysv/linux/sparc/sys/procfs.h b/sysdeps/unix/sysv/linux/sparc/sys/procfs.h
deleted file mode 100644
index 38ce6792ff..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/sys/procfs.h
+++ /dev/null
@@ -1,210 +0,0 @@
-/* Copyright (C) 1996-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_PROCFS_H
-#define _SYS_PROCFS_H 1
-
-/* This is somehow modelled after the file of the same name on SysVr4
- systems. It provides a definition of the core file format for ELF
- used on Linux. */
-
-#include <features.h>
-#include <signal.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#include <sys/ucontext.h>
-#include <sys/user.h>
-#include <bits/wordsize.h>
-
-__BEGIN_DECLS
-
-#if __WORDSIZE == 64
-
-#define ELF_NGREG 36
-
-typedef struct
- {
- unsigned long pr_regs[32];
- unsigned long pr_fsr;
- unsigned long pr_gsr;
- unsigned long pr_fprs;
- } elf_fpregset_t;
-
-#else /* sparc32 */
-
-#define ELF_NGREG 38
-
-typedef struct
- {
- union
- {
- unsigned long pr_regs[32];
- double pr_dregs[16];
- } pr_fr;
- unsigned long __glibc_reserved;
- unsigned long pr_fsr;
- unsigned char pr_qcnt;
- unsigned char pr_q_entrysize;
- unsigned char pr_en;
- unsigned int pr_q[64];
- } elf_fpregset_t;
-
-#endif /* sparc32 */
-
-typedef unsigned long elf_greg_t;
-typedef elf_greg_t elf_gregset_t[ELF_NGREG];
-
-struct elf_siginfo
- {
- int si_signo; /* Signal number. */
- int si_code; /* Extra code. */
- int si_errno; /* Errno. */
- };
-
-/* Definitions to generate Intel SVR4-like core files. These mostly
- have the same names as the SVR4 types with "elf_" tacked on the
- front to prevent clashes with linux definitions, and the typedef
- forms have been avoided. This is mostly like the SVR4 structure,
- but more Linuxy, with things that Linux does not support and which
- gdb doesn't really use excluded. Fields present but not used are
- marked with "XXX". */
-struct elf_prstatus
- {
- struct elf_siginfo pr_info; /* Info associated with signal. */
- short int pr_cursig; /* Current signal. */
- unsigned long int pr_sigpend; /* Set of pending signals. */
- unsigned long int pr_sighold; /* Set of held signals. */
- __pid_t pr_pid;
- __pid_t pr_ppid;
- __pid_t pr_pgrp;
- __pid_t pr_sid;
- struct timeval pr_utime; /* User time. */
- struct timeval pr_stime; /* System time. */
- struct timeval pr_cutime; /* Cumulative user time. */
- struct timeval pr_cstime; /* Cumulative system time. */
- elf_gregset_t pr_reg; /* GP registers. */
- int pr_fpvalid; /* True if math copro being used. */
- };
-
-
-#define ELF_PRARGSZ (80) /* Number of chars for args */
-
-struct elf_prpsinfo
- {
- char pr_state; /* Numeric process state. */
- char pr_sname; /* Char for pr_state. */
- char pr_zomb; /* Zombie. */
- char pr_nice; /* Nice val. */
- unsigned long int pr_flag; /* Flags. */
-#if __WORDSIZE == 64
- unsigned int pr_uid;
- unsigned int pr_gid;
-#else
- unsigned short int pr_uid;
- unsigned short int pr_gid;
-#endif
- int pr_pid, pr_ppid, pr_pgrp, pr_sid;
- /* Lots missing */
- char pr_fname[16]; /* Filename of executable. */
- char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
- };
-
-/* Addresses. */
-typedef void *psaddr_t;
-
-/* Register sets. Linux has different names. */
-typedef elf_gregset_t prgregset_t;
-typedef elf_fpregset_t prfpregset_t;
-
-/* We don't have any differences between processes and threads,
- therefore have only one PID type. */
-typedef __pid_t lwpid_t;
-
-
-typedef struct elf_prstatus prstatus_t;
-typedef struct elf_prpsinfo prpsinfo_t;
-
-#if __WORDSIZE == 64
-
-/* Provide 32-bit variants so that BFD can read 32-bit
- core files. */
-#define ELF_NGREG32 38
-typedef struct
- {
- union
- {
- unsigned int pr_regs[32];
- double pr_dregs[16];
- } pr_fr;
- unsigned int __glibc_reserved;
- unsigned int pr_fsr;
- unsigned char pr_qcnt;
- unsigned char pr_q_entrysize;
- unsigned char pr_en;
- unsigned int pr_q[64];
- } elf_fpregset_t32;
-
-typedef unsigned int elf_greg_t32;
-typedef elf_greg_t32 elf_gregset_t32[ELF_NGREG32];
-
-struct elf_prstatus32
- {
- struct elf_siginfo pr_info; /* Info associated with signal. */
- short int pr_cursig; /* Current signal. */
- unsigned int pr_sigpend; /* Set of pending signals. */
- unsigned int pr_sighold; /* Set of held signals. */
- __pid_t pr_pid;
- __pid_t pr_ppid;
- __pid_t pr_pgrp;
- __pid_t pr_sid;
- struct
- {
- int tv_sec, tv_usec;
- } pr_utime, /* User time. */
- pr_stime, /* System time. */
- pr_cutime, /* Cumulative user time. */
- pr_cstime; /* Cumulative system time. */
- elf_gregset_t32 pr_reg; /* GP registers. */
- int pr_fpvalid; /* True if math copro being used. */
- };
-
-struct elf_prpsinfo32
- {
- char pr_state; /* Numeric process state. */
- char pr_sname; /* Char for pr_state. */
- char pr_zomb; /* Zombie. */
- char pr_nice; /* Nice val. */
- unsigned int pr_flag; /* Flags. */
- unsigned short int pr_uid;
- unsigned short int pr_gid;
- int pr_pid, pr_ppid, pr_pgrp, pr_sid;
- /* Lots missing */
- char pr_fname[16]; /* Filename of executable. */
- char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
- };
-
-typedef elf_gregset_t32 prgregset32_t;
-typedef elf_fpregset_t32 prfpregset32_t;
-
-typedef struct elf_prstatus32 prstatus32_t;
-typedef struct elf_prpsinfo32 prpsinfo32_t;
-
-#endif /* sparc64 */
-
-__END_DECLS
-
-#endif /* sys/procfs.h */
diff --git a/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h b/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h
index c037734666..73e54036a8 100644
--- a/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h
+++ b/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h
@@ -1,5 +1,5 @@
/* `ptrace' debugger support interface. Linux/SPARC version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_PTRACE_H
#define _SYS_PTRACE_H 1
@@ -217,8 +217,12 @@ enum __ptrace_request
#define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER
/* Get seccomp BPF filter metadata. */
- PTRACE_SECCOMP_GET_METADATA = 0x420d
+ PTRACE_SECCOMP_GET_METADATA = 0x420d,
#define PTRACE_SECCOMP_GET_METADATA PTRACE_SECCOMP_GET_METADATA
+
+ /* Get information about system call. */
+ PTRACE_GET_SYSCALL_INFO = 0x420e
+#define PTRACE_GET_SYSCALL_INFO PTRACE_GET_SYSCALL_INFO
};
diff --git a/sysdeps/unix/sysv/linux/sparc/sys/ucontext.h b/sysdeps/unix/sysv/linux/sparc/sys/ucontext.h
index adab2d9715..5358a34f68 100644
--- a/sysdeps/unix/sysv/linux/sparc/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/sparc/sys/ucontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_UCONTEXT_H
#define _SYS_UCONTEXT_H 1
diff --git a/sysdeps/unix/sysv/linux/sparc/sys/user.h b/sysdeps/unix/sysv/linux/sparc/sys/user.h
index 48278bf883..75b208ba79 100644
--- a/sysdeps/unix/sysv/linux/sparc/sys/user.h
+++ b/sysdeps/unix/sysv/linux/sparc/sys/user.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_USER_H
#define _SYS_USER_H 1
diff --git a/sysdeps/unix/sysv/linux/sparc/sysdep.h b/sysdeps/unix/sysv/linux/sparc/sysdep.h
index fd06a4349e..f38144c912 100644
--- a/sysdeps/unix/sysv/linux/sparc/sysdep.h
+++ b/sysdeps/unix/sysv/linux/sparc/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LINUX_SPARC_SYSDEP_H
#define _LINUX_SPARC_SYSDEP_H 1
@@ -34,6 +34,20 @@
#else /* __ASSEMBLER__ */
+#define INTERNAL_VSYSCALL_CALL(funcptr, err, nr, args...) \
+ ({ \
+ long _ret = funcptr (args); \
+ err = ((unsigned long) (_ret) >= (unsigned long) -4095L); \
+ _ret; \
+ })
+
+# define VDSO_NAME "LINUX_2.6"
+# define VDSO_HASH 61765110
+
+/* List of system calls which are supported as vsyscalls. */
+# define HAVE_CLOCK_GETTIME_VSYSCALL "__vdso_clock_gettime"
+# define HAVE_GETTIMEOFDAY_VSYSCALL "__vdso_gettimeofday"
+
#undef INLINE_SYSCALL
#define INLINE_SYSCALL(name, nr, args...) \
({ INTERNAL_SYSCALL_DECL(err); \
diff --git a/sysdeps/unix/sysv/linux/sparc/system.c b/sysdeps/unix/sysv/linux/sparc/system.c
deleted file mode 100644
index 1f65c83399..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/system.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright (C) 2003-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-/* We have to and actually can handle cancelable system(). The big
- problem: we have to kill the child process if necessary. To do
- this a cleanup handler has to be registered and is has to be able
- to find the PID of the child. The main problem is to reliable have
- the PID when needed. It is not necessary for the parent thread to
- return. It might still be in the kernel when the cancellation
- request comes. Therefore we have to use the clone() calls ability
- to have the kernel write the PID into the user-level variable. */
-#define FORK() \
- INLINE_CLONE_SYSCALL (CLONE_PARENT_SETTID | SIGCHLD, 0, &pid, NULL, NULL)
-
-#include "../system.c"
diff --git a/sysdeps/unix/sysv/linux/spawni.c b/sysdeps/unix/sysv/linux/spawni.c
index cf0213ece5..43b21a68fa 100644
--- a/sysdeps/unix/sysv/linux/spawni.c
+++ b/sysdeps/unix/sysv/linux/spawni.c
@@ -1,5 +1,5 @@
/* POSIX spawn interface. Linux version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <spawn.h>
#include <fcntl.h>
@@ -101,11 +101,11 @@ maybe_script_execute (struct posix_spawn_args *args)
ptrdiff_t argc = args->argc;
/* Construct an argument list for the shell. */
- char *new_argv[argc + 1];
+ char *new_argv[argc + 2];
new_argv[0] = (char *) _PATH_BSHELL;
new_argv[1] = (char *) args->file;
if (argc > 1)
- memcpy (new_argv + 2, argv + 1, argc * sizeof(char *));
+ memcpy (new_argv + 2, argv + 1, argc * sizeof (char *));
else
new_argv[2] = NULL;
@@ -138,11 +138,11 @@ __spawni_child (void *arguments)
for (int sig = 1; sig < _NSIG; ++sig)
{
if ((attr->__flags & POSIX_SPAWN_SETSIGDEF)
- && sigismember (&attr->__sd, sig))
+ && __sigismember (&attr->__sd, sig))
{
sa.sa_handler = SIG_DFL;
}
- else if (sigismember (&hset, sig))
+ else if (__sigismember (&hset, sig))
{
if (__is_internal_signal (sig))
sa.sa_handler = SIG_IGN;
@@ -253,9 +253,31 @@ __spawni_child (void *arguments)
break;
case spawn_do_dup2:
- if (__dup2 (action->action.dup2_action.fd,
- action->action.dup2_action.newfd)
- != action->action.dup2_action.newfd)
+ /* Austin Group issue #411 requires adddup2 action with source
+ and destination being equal to remove close-on-exec flag. */
+ if (action->action.dup2_action.fd
+ == action->action.dup2_action.newfd)
+ {
+ int fd = action->action.dup2_action.newfd;
+ int flags = __fcntl (fd, F_GETFD, 0);
+ if (flags == -1)
+ goto fail;
+ if (__fcntl (fd, F_SETFD, flags & ~FD_CLOEXEC) == -1)
+ goto fail;
+ }
+ else if (__dup2 (action->action.dup2_action.fd,
+ action->action.dup2_action.newfd)
+ != action->action.dup2_action.newfd)
+ goto fail;
+ break;
+
+ case spawn_do_chdir:
+ if (__chdir (action->action.chdir_action.path) != 0)
+ goto fail;
+ break;
+
+ case spawn_do_fchdir:
+ if (__fchdir (action->action.fchdir_action.fd) != 0)
goto fail;
break;
}
diff --git a/sysdeps/unix/sysv/linux/speed.c b/sysdeps/unix/sysv/linux/speed.c
index 7db9e998c3..30aa1d966e 100644
--- a/sysdeps/unix/sysv/linux/speed.c
+++ b/sysdeps/unix/sysv/linux/speed.c
@@ -1,5 +1,5 @@
/* `struct termios' speed frobnication functions. Linux version.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <errno.h>
@@ -58,7 +58,7 @@ cfsetospeed (struct termios *termios_p, speed_t speed)
&& (speed < B57600 || speed > __MAX_BAUD))
return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
-#ifdef _HAVE_STRUCT_TERMIOS_C_OSPEED
+#if _HAVE_STRUCT_TERMIOS_C_OSPEED
termios_p->c_ospeed = speed;
#endif
termios_p->c_cflag &= ~(CBAUD | CBAUDEX);
@@ -80,7 +80,7 @@ cfsetispeed (struct termios *termios_p, speed_t speed)
&& (speed < B57600 || speed > __MAX_BAUD))
return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
-#ifdef _HAVE_STRUCT_TERMIOS_C_ISPEED
+#if _HAVE_STRUCT_TERMIOS_C_ISPEED
termios_p->c_ispeed = speed;
#endif
if (speed == 0)
diff --git a/sysdeps/unix/sysv/linux/splice.c b/sysdeps/unix/sysv/linux/splice.c
index 11f724f69c..d9be756718 100644
--- a/sysdeps/unix/sysv/linux/splice.c
+++ b/sysdeps/unix/sysv/linux/splice.c
@@ -1,5 +1,5 @@
/* Splice data to/from a pipe Linux implementation.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fcntl.h>
#include <sysdep-cancel.h>
diff --git a/sysdeps/unix/sysv/linux/statfs64.c b/sysdeps/unix/sysv/linux/statfs64.c
index 01c1f08d88..ba1d280cfd 100644
--- a/sysdeps/unix/sysv/linux/statfs64.c
+++ b/sysdeps/unix/sysv/linux/statfs64.c
@@ -1,5 +1,5 @@
/* Return information about the filesystem on which FILE resides.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <string.h>
diff --git a/sysdeps/unix/sysv/linux/statvfs.c b/sysdeps/unix/sysv/linux/statvfs.c
index 67f9a67fd7..1f1544b09f 100644
--- a/sysdeps/unix/sysv/linux/statvfs.c
+++ b/sysdeps/unix/sysv/linux/statvfs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <sys/stat.h>
diff --git a/sysdeps/unix/sysv/linux/statvfs64.c b/sysdeps/unix/sysv/linux/statvfs64.c
index 44d6d4acf7..04fb1378ac 100644
--- a/sysdeps/unix/sysv/linux/statvfs64.c
+++ b/sysdeps/unix/sysv/linux/statvfs64.c
@@ -1,5 +1,5 @@
/* Return information about the filesystem on which FILE resides.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/sysdeps/unix/sysv/linux/statx.c b/sysdeps/unix/sysv/linux/statx.c
index 76761d6ef2..ffe679cab0 100644
--- a/sysdeps/unix/sysv/linux/statx.c
+++ b/sysdeps/unix/sysv/linux/statx.c
@@ -1,5 +1,5 @@
/* Linux statx implementation.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/stat.h>
diff --git a/sysdeps/unix/sysv/linux/statx_cp.c b/sysdeps/unix/sysv/linux/statx_cp.c
new file mode 100644
index 0000000000..9fcbad3fcd
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/statx_cp.c
@@ -0,0 +1,49 @@
+/* Struct statx to stat/stat64 conversion for Linux.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <stddef.h>
+#include <string.h>
+#include <sys/stat.h>
+
+#include <statx_cp.h>
+
+#if !defined(__NR_fstat64) || !defined(__NR_fstatat64)
+void
+__cp_stat64_statx (struct stat64 *to, struct statx *from)
+{
+ memset (to, 0, sizeof (struct stat64));
+ to->st_dev = ((from->stx_dev_minor & 0xff) | (from->stx_dev_major << 8)
+ | ((from->stx_dev_minor & ~0xff) << 12));
+ to->st_rdev = ((from->stx_rdev_minor & 0xff) | (from->stx_rdev_major << 8)
+ | ((from->stx_rdev_minor & ~0xff) << 12));
+ to->st_ino = from->stx_ino;
+ to->st_mode = from->stx_mode;
+ to->st_nlink = from->stx_nlink;
+ to->st_uid = from->stx_uid;
+ to->st_gid = from->stx_gid;
+ to->st_atime = from->stx_atime.tv_sec;
+ to->st_atim.tv_nsec = from->stx_atime.tv_nsec;
+ to->st_mtime = from->stx_mtime.tv_sec;
+ to->st_mtim.tv_nsec = from->stx_mtime.tv_nsec;
+ to->st_ctime = from->stx_ctime.tv_sec;
+ to->st_ctim.tv_nsec = from->stx_ctime.tv_nsec;
+ to->st_size = from->stx_size;
+ to->st_blocks = from->stx_blocks;
+ to->st_blksize = from->stx_blksize;
+}
+#endif
diff --git a/sysdeps/unix/sysv/linux/statx_cp.h b/sysdeps/unix/sysv/linux/statx_cp.h
new file mode 100644
index 0000000000..eadb4b7893
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/statx_cp.h
@@ -0,0 +1,20 @@
+/* Struct statx to stat/stat64 conversion for Linux.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+extern void __cp_stat64_statx (struct stat64 *to, struct statx *from)
+ attribute_hidden;
diff --git a/sysdeps/unix/sysv/linux/sync_file_range.c b/sysdeps/unix/sysv/linux/sync_file_range.c
index 2ed0d53068..48ef674746 100644
--- a/sysdeps/unix/sysv/linux/sync_file_range.c
+++ b/sysdeps/unix/sysv/linux/sync_file_range.c
@@ -1,5 +1,5 @@
/* Selective file content synch'ing.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fcntl.h>
#include <sysdep-cancel.h>
diff --git a/sysdeps/unix/sysv/linux/sys/acct.h b/sysdeps/unix/sysv/linux/sys/acct.h
index 3f93393558..1d2f22402a 100644
--- a/sysdeps/unix/sysv/linux/sys/acct.h
+++ b/sysdeps/unix/sysv/linux/sys/acct.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -13,14 +13,14 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_ACCT_H
#define _SYS_ACCT_H 1
#include <sys/types.h>
#include <stdint.h>
-#include <endian.h>
+#include <bits/endian.h>
#include <bits/types/time_t.h>
__BEGIN_DECLS
diff --git a/sysdeps/unix/sysv/linux/sys/epoll.h b/sysdeps/unix/sysv/linux/sys/epoll.h
index 2937774da5..b3253daba5 100644
--- a/sysdeps/unix/sysv/linux/sys/epoll.h
+++ b/sysdeps/unix/sysv/linux/sys/epoll.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_EPOLL_H
#define _SYS_EPOLL_H 1
diff --git a/sysdeps/unix/sysv/linux/sys/eventfd.h b/sysdeps/unix/sysv/linux/sys/eventfd.h
index 616a9d331b..618f35e2c9 100644
--- a/sysdeps/unix/sysv/linux/sys/eventfd.h
+++ b/sysdeps/unix/sysv/linux/sys/eventfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_EVENTFD_H
#define _SYS_EVENTFD_H 1
diff --git a/sysdeps/unix/sysv/linux/sys/fanotify.h b/sysdeps/unix/sysv/linux/sys/fanotify.h
index 84b9efede1..0f1442adc1 100644
--- a/sysdeps/unix/sysv/linux/sys/fanotify.h
+++ b/sysdeps/unix/sysv/linux/sys/fanotify.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2010-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_FANOTIFY_H
#define _SYS_FANOTIFY_H 1
diff --git a/sysdeps/unix/sysv/linux/sys/fsuid.h b/sysdeps/unix/sysv/linux/sys/fsuid.h
index 6b891e9c15..aa3479ae43 100644
--- a/sysdeps/unix/sysv/linux/sys/fsuid.h
+++ b/sysdeps/unix/sysv/linux/sys/fsuid.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_FSUID_H
#define _SYS_FSUID_H 1
diff --git a/sysdeps/unix/sysv/linux/sys/inotify.h b/sysdeps/unix/sysv/linux/sys/inotify.h
index 49cc374851..269e055e5d 100644
--- a/sysdeps/unix/sysv/linux/sys/inotify.h
+++ b/sysdeps/unix/sysv/linux/sys/inotify.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_INOTIFY_H
#define _SYS_INOTIFY_H 1
@@ -66,6 +66,7 @@ struct inotify_event
#define IN_DONT_FOLLOW 0x02000000 /* Do not follow a sym link. */
#define IN_EXCL_UNLINK 0x04000000 /* Exclude events on unlinked
objects. */
+#define IN_MASK_CREATE 0x10000000 /* Only create watches. */
#define IN_MASK_ADD 0x20000000 /* Add to the mask of an already
existing watch. */
#define IN_ISDIR 0x40000000 /* Event occurred against dir. */
diff --git a/sysdeps/unix/sysv/linux/sys/kd.h b/sysdeps/unix/sysv/linux/sys/kd.h
index 6c929c45b6..3e9fd0b125 100644
--- a/sysdeps/unix/sysv/linux/sys/kd.h
+++ b/sysdeps/unix/sysv/linux/sys/kd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_KD_H
#define _SYS_KD_H 1
diff --git a/sysdeps/unix/sysv/linux/sys/klog.h b/sysdeps/unix/sysv/linux/sys/klog.h
index 11dc07c028..dbae3c2899 100644
--- a/sysdeps/unix/sysv/linux/sys/klog.h
+++ b/sysdeps/unix/sysv/linux/sys/klog.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_KLOG_H
diff --git a/sysdeps/unix/sysv/linux/sys/mount.h b/sysdeps/unix/sysv/linux/sys/mount.h
index ce2838e3a7..490670dbf1 100644
--- a/sysdeps/unix/sysv/linux/sys/mount.h
+++ b/sysdeps/unix/sysv/linux/sys/mount.h
@@ -1,5 +1,5 @@
/* Header file for mounting/unmount Linux filesystems.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This is taken from /usr/include/linux/fs.h. */
diff --git a/sysdeps/unix/sysv/linux/sys/pci.h b/sysdeps/unix/sysv/linux/sys/pci.h
index e420933d78..b5773e2d77 100644
--- a/sysdeps/unix/sysv/linux/sys/pci.h
+++ b/sysdeps/unix/sysv/linux/sys/pci.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_PCI_H
#define _SYS_PCI_H 1
diff --git a/sysdeps/unix/sysv/linux/sys/personality.h b/sysdeps/unix/sysv/linux/sys/personality.h
index 956f318e0a..a114d1a27c 100644
--- a/sysdeps/unix/sysv/linux/sys/personality.h
+++ b/sysdeps/unix/sysv/linux/sys/personality.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Taken verbatim from Linux 2.6 (include/linux/personality.h). */
diff --git a/sysdeps/unix/sysv/linux/sys/prctl.h b/sysdeps/unix/sysv/linux/sys/prctl.h
index 683d16748f..80b665b389 100644
--- a/sysdeps/unix/sysv/linux/sys/prctl.h
+++ b/sysdeps/unix/sysv/linux/sys/prctl.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_PRCTL_H
#define _SYS_PRCTL_H 1
diff --git a/sysdeps/unix/sysv/linux/sys/procfs.h b/sysdeps/unix/sysv/linux/sys/procfs.h
index 3c417bab29..54dfd4beca 100644
--- a/sysdeps/unix/sysv/linux/sys/procfs.h
+++ b/sysdeps/unix/sysv/linux/sys/procfs.h
@@ -1,4 +1,6 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Definitions for core files and libthread_db. Generic Linux version.
+ Copyright (C) 1996-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
@@ -13,25 +15,37 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_PROCFS_H
#define _SYS_PROCFS_H 1
-/* This is somehow modelled after the file of the same name on SysVr4
+/* This is somewhat modelled after the file of the same name on SVR4
systems. It provides a definition of the core file format for ELF
- used on Linux. */
+ used on Linux. It doesn't have anything to do with the /proc file
+ system, even though Linux has one.
+
+ Anyway, the whole purpose of this file is for GDB and GDB only.
+ Don't read too much into it. Don't use it for anything other than
+ GDB unless you know what you are doing. */
#include <features.h>
-#include <signal.h>
#include <sys/time.h>
#include <sys/types.h>
-#include <sys/ucontext.h>
#include <sys/user.h>
-#include <asm/elf.h>
+
+/* bits/procfs.h, provided by each architecture, must define
+ elf_gregset_t, elf_fpregset_t and any other architecture-specific
+ types needed. */
+#include <bits/procfs.h>
+
+/* bits/procfs-id.h must define __pr_uid_t and __pr_gid_t, the types
+ of pr_uid and pr_gid. */
+#include <bits/procfs-id.h>
__BEGIN_DECLS
+/* Signal info. */
struct elf_siginfo
{
int si_signo; /* Signal number. */
@@ -41,26 +55,17 @@ struct elf_siginfo
/* Definitions to generate Intel SVR4-like core files. These mostly
have the same names as the SVR4 types with "elf_" tacked on the
- front to prevent clashes with linux definitions, and the typedef
+ front to prevent clashes with Linux definitions, and the typedef
forms have been avoided. This is mostly like the SVR4 structure,
but more Linuxy, with things that Linux does not support and which
- gdb doesn't really use excluded. Fields present but not used are
- marked with "XXX". */
+ GDB doesn't really use excluded. */
+
struct elf_prstatus
{
-#if 0
- long int pr_flags; /* XXX Process flags. */
- short int pr_why; /* XXX Reason for process halt. */
- short int pr_what; /* XXX More detailed reason. */
-#endif
struct elf_siginfo pr_info; /* Info associated with signal. */
short int pr_cursig; /* Current signal. */
unsigned long int pr_sigpend; /* Set of pending signals. */
unsigned long int pr_sighold; /* Set of held signals. */
-#if 0
- stack_t pr_altstack; /* Alternate stack info. */
- struct sigaction pr_action; /* Signal action for current sig. */
-#endif
__pid_t pr_pid;
__pid_t pr_ppid;
__pid_t pr_pgrp;
@@ -69,15 +74,12 @@ struct elf_prstatus
struct timeval pr_stime; /* System time. */
struct timeval pr_cutime; /* Cumulative user time. */
struct timeval pr_cstime; /* Cumulative system time. */
-#if 0
- long int pr_instr; /* Current instruction. */
-#endif
elf_gregset_t pr_reg; /* GP registers. */
int pr_fpvalid; /* True if math copro being used. */
};
-#define ELF_PRARGSZ (80) /* Number of chars for args */
+#define ELF_PRARGSZ (80) /* Number of chars for args. */
struct elf_prpsinfo
{
@@ -86,29 +88,39 @@ struct elf_prpsinfo
char pr_zomb; /* Zombie. */
char pr_nice; /* Nice val. */
unsigned long int pr_flag; /* Flags. */
- unsigned short int pr_uid;
- unsigned short int pr_gid;
+ __pr_uid_t pr_uid;
+ __pr_gid_t pr_gid;
int pr_pid, pr_ppid, pr_pgrp, pr_sid;
/* Lots missing */
char pr_fname[16]; /* Filename of executable. */
char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
};
+/* The rest of this file provides the types for emulation of the
+ Solaris <proc_service.h> interfaces that should be implemented by
+ users of libthread_db. */
+
/* Addresses. */
typedef void *psaddr_t;
+#include <bits/procfs-prregset.h>
+
/* Register sets. Linux has different names. */
-typedef gregset_t prgregset_t;
-typedef fpregset_t prfpregset_t;
+typedef __prgregset_t prgregset_t;
+typedef __prfpregset_t prfpregset_t;
/* We don't have any differences between processes and threads,
- therefore habe only ine PID type. */
+ therefore have only one PID type. */
typedef __pid_t lwpid_t;
-
+/* Process status and info. In the end we do provide typedefs for them. */
typedef struct elf_prstatus prstatus_t;
typedef struct elf_prpsinfo prpsinfo_t;
__END_DECLS
-#endif /* sys/procfs.h */
+/* On some architectures, provide other-ABI variants of the above
+ types. */
+#include <bits/procfs-extra.h>
+
+#endif /* sys/procfs.h. */
diff --git a/sysdeps/unix/sysv/linux/sys/ptrace.h b/sysdeps/unix/sysv/linux/sys/ptrace.h
index 3c71a0ebd6..61981e849c 100644
--- a/sysdeps/unix/sysv/linux/sys/ptrace.h
+++ b/sysdeps/unix/sysv/linux/sys/ptrace.h
@@ -1,5 +1,5 @@
/* `ptrace' debugger support interface. Linux version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_PTRACE_H
#define _SYS_PTRACE_H 1
@@ -166,8 +166,12 @@ enum __ptrace_request
#define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER
/* Get seccomp BPF filter metadata. */
- PTRACE_SECCOMP_GET_METADATA = 0x420d
+ PTRACE_SECCOMP_GET_METADATA = 0x420d,
#define PTRACE_SECCOMP_GET_METADATA PTRACE_SECCOMP_GET_METADATA
+
+ /* Get information about system call. */
+ PTRACE_GET_SYSCALL_INFO = 0x420e
+#define PTRACE_GET_SYSCALL_INFO PTRACE_GET_SYSCALL_INFO
};
diff --git a/sysdeps/unix/sysv/linux/sys/quota.h b/sysdeps/unix/sysv/linux/sys/quota.h
index 23f569ee9a..1c1bd7d3dd 100644
--- a/sysdeps/unix/sysv/linux/sys/quota.h
+++ b/sysdeps/unix/sysv/linux/sys/quota.h
@@ -1,5 +1,5 @@
/* This just represents the non-kernel parts of <linux/quota.h>.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* Copyright (c) 1982, 1986 Regents of the University of California.
diff --git a/sysdeps/unix/sysv/linux/sys/raw.h b/sysdeps/unix/sysv/linux/sys/raw.h
index 7069c7a426..86f44a6c0e 100644
--- a/sysdeps/unix/sysv/linux/sys/raw.h
+++ b/sysdeps/unix/sysv/linux/sys/raw.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_RAW_H
#define _SYS_RAW_H 1
diff --git a/sysdeps/unix/sysv/linux/sys/reboot.h b/sysdeps/unix/sysv/linux/sys/reboot.h
index 98249674f6..af5c94b812 100644
--- a/sysdeps/unix/sysv/linux/sys/reboot.h
+++ b/sysdeps/unix/sysv/linux/sys/reboot.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file should define RB_* macros to be used as flag
bits in the argument to the `reboot' system call. */
diff --git a/sysdeps/unix/sysv/linux/sys/signalfd.h b/sysdeps/unix/sysv/linux/sys/signalfd.h
index f39eed5f12..687cf811de 100644
--- a/sysdeps/unix/sysv/linux/sys/signalfd.h
+++ b/sysdeps/unix/sysv/linux/sys/signalfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_SIGNALFD_H
#define _SYS_SIGNALFD_H 1
@@ -42,7 +42,12 @@ struct signalfd_siginfo
uint64_t ssi_utime;
uint64_t ssi_stime;
uint64_t ssi_addr;
- uint8_t __pad[48];
+ uint16_t ssi_addr_lsb;
+ uint16_t __pad2;
+ int32_t ssi_syscall;
+ uint64_t ssi_call_addr;
+ uint32_t ssi_arch;
+ uint8_t __pad[28];
};
__BEGIN_DECLS
diff --git a/sysdeps/unix/sysv/linux/sys/swap.h b/sysdeps/unix/sysv/linux/sys/swap.h
index c79e9378cd..89daf6d44b 100644
--- a/sysdeps/unix/sysv/linux/sys/swap.h
+++ b/sysdeps/unix/sysv/linux/sys/swap.h
@@ -1,5 +1,5 @@
/* Calls to enable and disable swapping on specified locations. Linux version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_SWAP_H
diff --git a/sysdeps/unix/sysv/linux/sys/syscall.h b/sysdeps/unix/sysv/linux/sys/syscall.h
index 6434dde604..223fba5a21 100644
--- a/sysdeps/unix/sysv/linux/sys/syscall.h
+++ b/sysdeps/unix/sysv/linux/sys/syscall.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYSCALL_H
#define _SYSCALL_H 1
diff --git a/sysdeps/unix/sysv/linux/sys/sysctl.h b/sysdeps/unix/sysv/linux/sys/sysctl.h
index d125a83450..05e5f89b6f 100644
--- a/sysdeps/unix/sysv/linux/sys/sysctl.h
+++ b/sysdeps/unix/sysv/linux/sys/sysctl.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -13,11 +13,13 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_SYSCTL_H
#define _SYS_SYSCTL_H 1
+#warning "The <sys/sysctl.h> header is deprecated and will be removed."
+
#include <features.h>
#define __need_size_t
#include <stddef.h>
@@ -66,7 +68,8 @@ __BEGIN_DECLS
/* Read or write system parameters. */
extern int sysctl (int *__name, int __nlen, void *__oldval,
- size_t *__oldlenp, void *__newval, size_t __newlen) __THROW;
+ size_t *__oldlenp, void *__newval, size_t __newlen) __THROW
+ __attribute_deprecated__;
__END_DECLS
diff --git a/sysdeps/unix/sysv/linux/sys/sysinfo.h b/sysdeps/unix/sysv/linux/sys/sysinfo.h
index 80e2d096d8..85492ccc3d 100644
--- a/sysdeps/unix/sysv/linux/sys/sysinfo.h
+++ b/sysdeps/unix/sysv/linux/sys/sysinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_SYSINFO_H
#define _SYS_SYSINFO_H 1
diff --git a/sysdeps/unix/sysv/linux/sys/timerfd.h b/sysdeps/unix/sysv/linux/sys/timerfd.h
index 4d75e150a1..1ff5bf5fde 100644
--- a/sysdeps/unix/sysv/linux/sys/timerfd.h
+++ b/sysdeps/unix/sysv/linux/sys/timerfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_TIMERFD_H
#define _SYS_TIMERFD_H 1
diff --git a/sysdeps/unix/sysv/linux/sys/timex.h b/sysdeps/unix/sysv/linux/sys/timex.h
index 0d652c8aeb..24a17ce405 100644
--- a/sysdeps/unix/sysv/linux/sys/timex.h
+++ b/sysdeps/unix/sysv/linux/sys/timex.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_TIMEX_H
#define _SYS_TIMEX_H 1
diff --git a/sysdeps/unix/sysv/linux/syscall-names.list b/sysdeps/unix/sysv/linux/syscall-names.list
index 5306d538e6..d0cca839db 100644
--- a/sysdeps/unix/sysv/linux/syscall-names.list
+++ b/sysdeps/unix/sysv/linux/syscall-names.list
@@ -1,5 +1,5 @@
# List of all known Linux system calls.
-# Copyright (C) 2017-2018 Free Software Foundation, Inc.
+# Copyright (C) 2017-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
@@ -14,16 +14,15 @@
#
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
-# This file contains the list of system call names names. It has to
-# remain in alphabetica order. Lines which start with # are treated
-# as comments. This file can list all potential system calls. The
-# names are only used if the installed kernel headers also provide
-# them.
+# This file contains the list of system call names. It has to remain in
+# alphabetical order. Lines which start with # are treated as comments.
+# This file can list all potential system calls. The names are only
+# used if the installed kernel headers also provide them.
-# The list of system calls is current as of Linux 4.17.
-kernel 4.17
+# The list of system calls is current as of Linux 5.4.
+kernel 5.4
FAST_atomic_update
FAST_cmpxchg
@@ -52,6 +51,7 @@ bdflush
bind
bpf
break
+breakpoint
brk
cachectl
cacheflush
@@ -63,12 +63,18 @@ chown
chown32
chroot
clock_adjtime
+clock_adjtime64
clock_getres
+clock_getres_time64
clock_gettime
+clock_gettime64
clock_nanosleep
+clock_nanosleep_time64
clock_settime
+clock_settime64
clone
clone2
+clone3
close
cmpxchg_badaddr
connect
@@ -115,9 +121,14 @@ finit_module
flistxattr
flock
fork
+fp_udfiex_crtl
free_hugepages
fremovexattr
+fsconfig
fsetxattr
+fsmount
+fsopen
+fspick
fstat
fstat64
fstatat64
@@ -128,11 +139,13 @@ ftime
ftruncate
ftruncate64
futex
+futex_time64
futimesat
get_kernel_syms
get_mempolicy
get_robust_list
get_thread_area
+get_tls
getcpu
getcwd
getdents
@@ -186,8 +199,13 @@ inotify_rm_watch
io_cancel
io_destroy
io_getevents
+io_pgetevents
+io_pgetevents_time64
io_setup
io_submit
+io_uring_enter
+io_uring_register
+io_uring_setup
ioctl
ioperm
iopl
@@ -234,6 +252,7 @@ mmap
mmap2
modify_ldt
mount
+move_mount
move_pages
mprotect
mpx
@@ -241,7 +260,9 @@ mq_getsetattr
mq_notify
mq_open
mq_timedreceive
+mq_timedreceive_time64
mq_timedsend
+mq_timedsend_time64
mq_unlink
mremap
msgctl
@@ -260,6 +281,7 @@ nfsservctl
ni_syscall
nice
old_adjtimex
+old_getpagesize
oldfstat
oldlstat
oldolduname
@@ -268,6 +290,7 @@ oldumount
olduname
open
open_by_handle_at
+open_tree
openat
osf_adjtime
osf_afs_syscall
@@ -387,6 +410,8 @@ perf_event_open
perfctr
perfmonctl
personality
+pidfd_open
+pidfd_send_signal
pipe
pipe2
pivot_root
@@ -395,6 +420,7 @@ pkey_free
pkey_mprotect
poll
ppoll
+ppoll_time64
prctl
pread64
preadv
@@ -405,6 +431,7 @@ process_vm_writev
prof
profil
pselect6
+pselect6_time64
ptrace
putpmsg
pwrite64
@@ -422,6 +449,7 @@ reboot
recv
recvfrom
recvmmsg
+recvmmsg_time64
recvmsg
remap_file_pages
removexattr
@@ -430,7 +458,9 @@ renameat
renameat2
request_key
restart_syscall
+riscv_flush_icache
rmdir
+rseq
rt_sigaction
rt_sigpending
rt_sigprocmask
@@ -438,6 +468,7 @@ rt_sigqueueinfo
rt_sigreturn
rt_sigsuspend
rt_sigtimedwait
+rt_sigtimedwait_time64
rt_tgsigqueueinfo
rtas
s390_guarded_storage
@@ -453,6 +484,7 @@ sched_getattr
sched_getparam
sched_getscheduler
sched_rr_get_interval
+sched_rr_get_interval_time64
sched_set_affinity
sched_setaffinity
sched_setattr
@@ -466,6 +498,7 @@ semctl
semget
semop
semtimedop
+semtimedop_time64
send
sendfile
sendfile64
@@ -476,6 +509,7 @@ set_mempolicy
set_robust_list
set_thread_area
set_tid_address
+set_tls
setdomainname
setfsgid
setfsgid32
@@ -563,16 +597,21 @@ timer_create
timer_delete
timer_getoverrun
timer_gettime
+timer_gettime64
timer_settime
+timer_settime64
timerfd
timerfd_create
timerfd_gettime
+timerfd_gettime64
timerfd_settime
+timerfd_settime64
times
tkill
truncate
truncate64
tuxcall
+udftrap
ugetrlimit
ulimit
umask
@@ -584,9 +623,12 @@ unlinkat
unshare
uselib
userfaultfd
+usr26
+usr32
ustat
utime
utimensat
+utimensat_time64
utimes
utrap_install
vfork
diff --git a/sysdeps/unix/sysv/linux/syscalls.list b/sysdeps/unix/sysv/linux/syscalls.list
index e24ea29e35..603e517ca6 100644
--- a/sysdeps/unix/sysv/linux/syscalls.list
+++ b/sysdeps/unix/sysv/linux/syscalls.list
@@ -1,11 +1,10 @@
# File name Caller Syscall name Args Strong name Weak names
-adjtimex adjtime adjtimex i:p __adjtimex adjtimex ntp_adjtime
alarm - alarm i:i alarm
bdflush EXTRA bdflush i:ii __compat_bdflush bdflush@GLIBC_2.0:GLIBC_2.23
capget EXTRA capget i:pp capget
capset EXTRA capset i:pp capset
-clock_adjtime EXTRA clock_adjtime i:ip clock_adjtime
+clock_adjtime EXTRA clock_adjtime i:ip __clock_adjtime clock_adjtime
create_module EXTRA create_module 3 __compat_create_module create_module@GLIBC_2.0:GLIBC_2.23
delete_module EXTRA delete_module 3 delete_module
epoll_create EXTRA epoll_create i:i epoll_create
@@ -20,7 +19,6 @@ getegid - getegid Ei: __getegid getegid
geteuid - geteuid Ei: __geteuid geteuid
getpgid - getpgid i:i __getpgid getpgid
getpgrp - getpgrp Ei: getpgrp
-getpmsg - getpmsg i:ipppp getpmsg
getppid - getppid Ei: __getppid getppid
getresuid - getresuid i:ppp getresuid
getresgid - getresgid i:ppp getresgid
@@ -46,7 +44,6 @@ pipe - pipe i:f __pipe pipe
pipe2 - pipe2 i:fi __pipe2 pipe2
pivot_root EXTRA pivot_root i:ss pivot_root
prctl EXTRA prctl i:iiiii __prctl prctl
-putpmsg - putpmsg i:ippii putpmsg
query_module EXTRA query_module i:sipip __compat_query_module query_module@GLIBC_2.0:GLIBC_2.23
quotactl EXTRA quotactl i:isip quotactl
remap_file_pages - remap_file_pages i:piiii __remap_file_pages remap_file_pages
@@ -64,7 +61,6 @@ setfsgid EXTRA setfsgid i:i setfsgid
setfsuid EXTRA setfsuid i:i setfsuid
setpgid - setpgid i:ii __setpgid setpgid
sigaltstack - sigaltstack i:PP __sigaltstack sigaltstack
-stime - stime i:p stime
sysinfo EXTRA sysinfo i:p __sysinfo sysinfo
swapon - swapon i:si __swapon swapon
swapoff - swapoff i:s __swapoff swapoff
@@ -112,3 +108,5 @@ process_vm_writev EXTRA process_vm_writev i:ipipii process_vm_writev
memfd_create EXTRA memfd_create i:si memfd_create
pkey_alloc EXTRA pkey_alloc i:ii pkey_alloc
pkey_free EXTRA pkey_free i:i pkey_free
+gettid EXTRA gettid Ei: __gettid gettid
+tgkill EXTRA tgkill i:iii __tgkill tgkill
diff --git a/sysdeps/unix/sysv/linux/sysconf.c b/sysdeps/unix/sysv/linux/sysconf.c
index 4e49ebaa7a..ab72a71d93 100644
--- a/sysdeps/unix/sysv/linux/sysconf.c
+++ b/sysdeps/unix/sysv/linux/sysconf.c
@@ -1,5 +1,5 @@
/* Get file-specific information about a file. Linux version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
@@ -35,34 +35,6 @@
static long int posix_sysconf (int name);
-#ifndef HAS_CPUCLOCK
-static long int
-has_cpuclock (int name)
-{
-# if defined __NR_clock_getres || HP_TIMING_AVAIL
- /* If we have HP_TIMING, we will fall back on that if the system
- call does not work, so we support it either way. */
-# if !HP_TIMING_AVAIL
- /* Check using the clock_getres system call. */
- struct timespec ts;
- INTERNAL_SYSCALL_DECL (err);
- int r = INTERNAL_SYSCALL (clock_getres, err, 2,
- (name == _SC_CPUTIME
- ? CLOCK_PROCESS_CPUTIME_ID
- : CLOCK_THREAD_CPUTIME_ID),
- &ts);
- if (INTERNAL_SYSCALL_ERROR_P (r, err))
- return -1;
-# endif
- return _POSIX_VERSION;
-# else
- return -1;
-# endif
-}
-# define HAS_CPUCLOCK(name) has_cpuclock (name)
-#endif
-
-
/* Get the value of the system variable NAME. */
long int
__sysconf (int name)
@@ -71,29 +43,20 @@ __sysconf (int name)
switch (name)
{
- struct rlimit rlimit;
-#ifdef __NR_clock_getres
case _SC_MONOTONIC_CLOCK:
- /* Check using the clock_getres system call. */
- {
- struct timespec ts;
- INTERNAL_SYSCALL_DECL (err);
- int r;
- r = INTERNAL_SYSCALL (clock_getres, err, 2, CLOCK_MONOTONIC, &ts);
- return INTERNAL_SYSCALL_ERROR_P (r, err) ? -1 : _POSIX_VERSION;
- }
-#endif
-
case _SC_CPUTIME:
case _SC_THREAD_CPUTIME:
- return HAS_CPUCLOCK (name);
+ return _POSIX_VERSION;
case _SC_ARG_MAX:
- /* Use getrlimit to get the stack limit. */
- if (__getrlimit (RLIMIT_STACK, &rlimit) == 0)
- return MAX (legacy_ARG_MAX, rlimit.rlim_cur / 4);
+ {
+ struct rlimit rlimit;
+ /* Use getrlimit to get the stack limit. */
+ if (__getrlimit (RLIMIT_STACK, &rlimit) == 0)
+ return MAX (legacy_ARG_MAX, rlimit.rlim_cur / 4);
- return legacy_ARG_MAX;
+ return legacy_ARG_MAX;
+ }
case _SC_NGROUPS_MAX:
/* Try to read the information from the /proc/sys/kernel/ngroups_max
@@ -102,11 +65,14 @@ __sysconf (int name)
break;
case _SC_SIGQUEUE_MAX:
- if (__getrlimit (RLIMIT_SIGPENDING, &rlimit) == 0)
- return rlimit.rlim_cur;
+ {
+ struct rlimit rlimit;
+ if (__getrlimit (RLIMIT_SIGPENDING, &rlimit) == 0)
+ return rlimit.rlim_cur;
- /* The /proc/sys/kernel/rtsig-max file contains the answer. */
- procfname = "/proc/sys/kernel/rtsig-max";
+ /* The /proc/sys/kernel/rtsig-max file contains the answer. */
+ procfname = "/proc/sys/kernel/rtsig-max";
+ }
break;
default:
diff --git a/sysdeps/unix/sysv/linux/sysctl.c b/sysdeps/unix/sysv/linux/sysctl.c
index bb5e31a200..10e5a5882b 100644
--- a/sysdeps/unix/sysv/linux/sysctl.c
+++ b/sysdeps/unix/sysv/linux/sysctl.c
@@ -1,5 +1,5 @@
/* Read or write system information. Linux version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,11 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
-#include <string.h> /* For the real memset prototype. */
-#include <sys/sysctl.h>
+#include <linux/sysctl.h>
#include <sysdep.h>
#include <sys/syscall.h>
@@ -39,5 +38,4 @@ __sysctl (int *name, int nlen, void *oldval, size_t *oldlenp,
return INLINE_SYSCALL (_sysctl, 1, &args);
}
-libc_hidden_def (__sysctl)
weak_alias (__sysctl, sysctl)
diff --git a/sysdeps/unix/sysv/linux/sysdep-cancel.h b/sysdeps/unix/sysv/linux/sysdep-cancel.h
index e320d513a7..c861303d36 100644
--- a/sysdeps/unix/sysv/linux/sysdep-cancel.h
+++ b/sysdeps/unix/sysv/linux/sysdep-cancel.h
@@ -1,5 +1,5 @@
/* Single-thread optimization definitions. Linux version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -15,50 +15,53 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYSDEP_CANCEL_H
+#define _SYSDEP_CANCEL_H
#include <sysdep.h>
#include <tls.h>
-#include <nptl/pthreadP.h>
+#include <errno.h>
+
+/* The two functions are in libc.so and not exported. */
+extern int __libc_enable_asynccancel (void) attribute_hidden;
+extern void __libc_disable_asynccancel (int oldtype) attribute_hidden;
+
+/* The two functions are in librt.so and not exported. */
+extern int __librt_enable_asynccancel (void) attribute_hidden;
+extern void __librt_disable_asynccancel (int oldtype) attribute_hidden;
+
+/* The two functions are in libpthread.so and not exported. */
+extern int __pthread_enable_asynccancel (void) attribute_hidden;
+extern void __pthread_disable_asynccancel (int oldtype) attribute_hidden;
-/* The default way to check if the process is single thread is by using the
- pthread_t 'multiple_threads' field. However for some architectures it
- is faster to either use an extra field on TCB or global varibles
- (the TCB field is also used on x86 for some single-thread atomic
- optimizations).
+/* Set cancellation mode to asynchronous. */
+#define CANCEL_ASYNC() \
+ __pthread_enable_asynccancel ()
+/* Reset to previous cancellation mode. */
+#define CANCEL_RESET(oldtype) \
+ __pthread_disable_asynccancel (oldtype)
- The ABI might define SINGLE_THREAD_BY_GLOBAL to enable the single
- thread check to use global variables instead of the pthread_t
- field. */
+#if IS_IN (libc)
+/* Same as CANCEL_ASYNC, but for use in libc.so. */
+# define LIBC_CANCEL_ASYNC() \
+ __libc_enable_asynccancel ()
+/* Same as CANCEL_RESET, but for use in libc.so. */
+# define LIBC_CANCEL_RESET(oldtype) \
+ __libc_disable_asynccancel (oldtype)
+#elif IS_IN (libpthread)
+# define LIBC_CANCEL_ASYNC() CANCEL_ASYNC ()
+# define LIBC_CANCEL_RESET(val) CANCEL_RESET (val)
+#elif IS_IN (librt)
+# define LIBC_CANCEL_ASYNC() \
+ __librt_enable_asynccancel ()
+# define LIBC_CANCEL_RESET(val) \
+ __librt_disable_asynccancel (val)
+#else
+# define LIBC_CANCEL_ASYNC() 0 /* Just a dummy value. */
+# define LIBC_CANCEL_RESET(val) ((void)(val)) /* Nothing, but evaluate it. */
+#endif
-#ifdef SINGLE_THREAD_BY_GLOBAL
-# if IS_IN (libc)
-extern int __libc_multiple_threads;
-# define SINGLE_THREAD_P \
- __glibc_likely (__libc_multiple_threads == 0)
-# elif IS_IN (libpthread)
-extern int __pthread_multiple_threads;
-# define SINGLE_THREAD_P \
- __glibc_likely (__pthread_multiple_threads == 0)
-# elif IS_IN (librt)
-# define SINGLE_THREAD_P \
- __glibc_likely (THREAD_GETMEM (THREAD_SELF, \
- header.multiple_threads) == 0)
-# else
-/* For rtld, et cetera. */
-# define SINGLE_THREAD_P (1)
-# endif
-#else /* SINGLE_THREAD_BY_GLOBAL */
-# if IS_IN (libc) || IS_IN (libpthread) || IS_IN (librt)
-# define SINGLE_THREAD_P \
- __glibc_likely (THREAD_GETMEM (THREAD_SELF, \
- header.multiple_threads) == 0)
-# else
-/* For rtld, et cetera. */
-# define SINGLE_THREAD_P (1)
-# endif
-#endif /* SINGLE_THREAD_BY_GLOBAL */
-#define RTLD_SINGLE_THREAD_P \
- __glibc_likely (THREAD_GETMEM (THREAD_SELF, \
- header.multiple_threads) == 0)
+#endif
diff --git a/sysdeps/unix/sysv/linux/sysdep-vdso.h b/sysdeps/unix/sysv/linux/sysdep-vdso.h
index 1912c1c156..cf614fbf8b 100644
--- a/sysdeps/unix/sysv/linux/sysdep-vdso.h
+++ b/sysdeps/unix/sysv/linux/sysdep-vdso.h
@@ -1,5 +1,5 @@
/* vDSO common definition for Linux.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,25 +14,23 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef SYSDEP_VDSO_LINUX_H
# define SYSDEP_VDSO_LINUX_H
-#define VDSO_SYMBOL(__name) __vdso_##__name
+#include <dl-vdso.h>
#ifndef INTERNAL_VSYSCALL_CALL
# define INTERNAL_VSYSCALL_CALL(funcptr, err, nr, args...) \
funcptr (args)
#endif
-#ifdef SHARED
+#ifdef HAVE_VSYSCALL
-# ifdef HAVE_VSYSCALL
+# include <libc-vdso.h>
-# include <libc-vdso.h>
-
-# define INLINE_VSYSCALL(name, nr, args...) \
+# define INLINE_VSYSCALL(name, nr, args...) \
({ \
__label__ out; \
__label__ iserr; \
@@ -61,7 +59,7 @@
sc_ret; \
})
-# define INTERNAL_VSYSCALL(name, err, nr, args...) \
+# define INTERNAL_VSYSCALL(name, err, nr, args...) \
({ \
__label__ out; \
long v_ret; \
@@ -79,20 +77,13 @@
out: \
v_ret; \
})
-# else
-# define INLINE_VSYSCALL(name, nr, args...) \
- INLINE_SYSCALL (name, nr, ##args)
-# define INTERNAL_VSYSCALL(name, err, nr, args...) \
- INTERNAL_SYSCALL (name, err, nr, ##args)
-# endif /* HAVE_VSYSCALL */
-
-# else /* SHARED */
+#else
-# define INLINE_VSYSCALL(name, nr, args...) \
- INLINE_SYSCALL (name, nr, ##args)
-# define INTERNAL_VSYSCALL(name, err, nr, args...) \
- INTERNAL_SYSCALL (name, err, nr, ##args)
+# define INLINE_VSYSCALL(name, nr, args...) \
+ INLINE_SYSCALL (name, nr, ##args)
+# define INTERNAL_VSYSCALL(name, err, nr, args...) \
+ INTERNAL_SYSCALL (name, err, nr, ##args)
-#endif /* SHARED */
+#endif /* USE_VSYSCALL && defined HAVE_VSYSCALL */
#endif /* SYSDEP_VDSO_LINUX_H */
diff --git a/sysdeps/unix/sysv/linux/sysdep.h b/sysdeps/unix/sysv/linux/sysdep.h
index 4fd0a9bae3..fc9af51456 100644
--- a/sysdeps/unix/sysv/linux/sysdep.h
+++ b/sysdeps/unix/sysv/linux/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2015-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <bits/wordsize.h>
#include <kernel-features.h>
diff --git a/sysdeps/unix/sysv/linux/system.c b/sysdeps/unix/sysv/linux/system.c
deleted file mode 100644
index 7cc68a1528..0000000000
--- a/sysdeps/unix/sysv/linux/system.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/* Copyright (C) 2002-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sched.h>
-#include <signal.h>
-#include <string.h> /* For the real memset prototype. */
-#include <sysdep.h>
-#include <unistd.h>
-#include <sys/wait.h>
-#include <libc-lock.h>
-
-/* We have to and actually can handle cancelable system(). The big
- problem: we have to kill the child process if necessary. To do
- this a cleanup handler has to be registered and is has to be able
- to find the PID of the child. The main problem is to reliable have
- the PID when needed. It is not necessary for the parent thread to
- return. It might still be in the kernel when the cancellation
- request comes. Therefore we have to use the clone() calls ability
- to have the kernel write the PID into the user-level variable. */
-#ifndef FORK
-# define FORK() \
- INLINE_SYSCALL (clone, 3, CLONE_PARENT_SETTID | SIGCHLD, 0, &pid)
-#endif
-
-#ifdef _LIBC_REENTRANT
-static void cancel_handler (void *arg);
-
-# define CLEANUP_HANDLER \
- __libc_cleanup_region_start (1, cancel_handler, &pid)
-
-# define CLEANUP_RESET \
- __libc_cleanup_region_end (0)
-#endif
-
-
-/* Linux has waitpid(), so override the generic unix version. */
-#include <sysdeps/posix/system.c>
-
-
-#ifdef _LIBC_REENTRANT
-/* The cancellation handler. */
-static void
-cancel_handler (void *arg)
-{
- pid_t child = *(pid_t *) arg;
-
- INTERNAL_SYSCALL_DECL (err);
- INTERNAL_SYSCALL (kill, err, 2, child, SIGKILL);
-
- TEMP_FAILURE_RETRY (__waitpid (child, NULL, 0));
-
- DO_LOCK ();
-
- if (SUB_REF () == 0)
- {
- (void) __sigaction (SIGQUIT, &quit, (struct sigaction *) NULL);
- (void) __sigaction (SIGINT, &intr, (struct sigaction *) NULL);
- }
-
- DO_UNLOCK ();
-}
-#endif
diff --git a/sysdeps/unix/sysv/linux/tcdrain.c b/sysdeps/unix/sysv/linux/tcdrain.c
index b6c110b828..b3691d0b12 100644
--- a/sysdeps/unix/sysv/linux/tcdrain.c
+++ b/sysdeps/unix/sysv/linux/tcdrain.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <termios.h>
diff --git a/sysdeps/unix/sysv/linux/tcflow.c b/sysdeps/unix/sysv/linux/tcflow.c
index 218cc8594e..526ac401ed 100644
--- a/sysdeps/unix/sysv/linux/tcflow.c
+++ b/sysdeps/unix/sysv/linux/tcflow.c
@@ -1,5 +1,5 @@
/* tcflow -- Suspend or restart transmission on termios file descriptor.
- Copyright (C) 1993-2018 Free Software Foundation, Inc.
+ Copyright (C) 1993-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <termios.h>
diff --git a/sysdeps/unix/sysv/linux/tcflush.c b/sysdeps/unix/sysv/linux/tcflush.c
index b5a447d6e8..7e59328867 100644
--- a/sysdeps/unix/sysv/linux/tcflush.c
+++ b/sysdeps/unix/sysv/linux/tcflush.c
@@ -1,5 +1,5 @@
/* tcflush -- Flush pending data on termios file descriptor. Linux version.
- Copyright (C) 1993-2018 Free Software Foundation, Inc.
+ Copyright (C) 1993-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <termios.h>
diff --git a/sysdeps/unix/sysv/linux/tcgetattr.c b/sysdeps/unix/sysv/linux/tcgetattr.c
index 9748bc8cc4..9abca8a4a1 100644
--- a/sysdeps/unix/sysv/linux/tcgetattr.c
+++ b/sysdeps/unix/sysv/linux/tcgetattr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <string.h>
@@ -44,15 +44,15 @@ __tcgetattr (int fd, struct termios *termios_p)
termios_p->c_cflag = k_termios.c_cflag;
termios_p->c_lflag = k_termios.c_lflag;
termios_p->c_line = k_termios.c_line;
-#ifdef _HAVE_STRUCT_TERMIOS_C_ISPEED
-# ifdef _HAVE_C_ISPEED
+#if _HAVE_STRUCT_TERMIOS_C_ISPEED
+# if _HAVE_C_ISPEED
termios_p->c_ispeed = k_termios.c_ispeed;
# else
termios_p->c_ispeed = k_termios.c_cflag & (CBAUD | CBAUDEX);
# endif
#endif
-#ifdef _HAVE_STRUCT_TERMIOS_C_OSPEED
-# ifdef _HAVE_C_OSPEED
+#if _HAVE_STRUCT_TERMIOS_C_OSPEED
+# if _HAVE_C_OSPEED
termios_p->c_ospeed = k_termios.c_ospeed;
# else
termios_p->c_ospeed = k_termios.c_cflag & (CBAUD | CBAUDEX);
diff --git a/sysdeps/unix/sysv/linux/tcsendbrk.c b/sysdeps/unix/sysv/linux/tcsendbrk.c
index 36ff933ccf..023d3eacd9 100644
--- a/sysdeps/unix/sysv/linux/tcsendbrk.c
+++ b/sysdeps/unix/sysv/linux/tcsendbrk.c
@@ -1,5 +1,5 @@
/* Send break to terminal.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/sysdeps/unix/sysv/linux/tcsetattr.c b/sysdeps/unix/sysv/linux/tcsetattr.c
index a916e70253..e53f637556 100644
--- a/sysdeps/unix/sysv/linux/tcsetattr.c
+++ b/sysdeps/unix/sysv/linux/tcsetattr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <string.h>
@@ -66,10 +66,10 @@ __tcsetattr (int fd, int optional_actions, const struct termios *termios_p)
k_termios.c_cflag = termios_p->c_cflag;
k_termios.c_lflag = termios_p->c_lflag;
k_termios.c_line = termios_p->c_line;
-#if defined _HAVE_C_ISPEED && defined _HAVE_STRUCT_TERMIOS_C_ISPEED
+#if _HAVE_C_ISPEED && _HAVE_STRUCT_TERMIOS_C_ISPEED
k_termios.c_ispeed = termios_p->c_ispeed;
#endif
-#if defined _HAVE_C_OSPEED && defined _HAVE_STRUCT_TERMIOS_C_OSPEED
+#if _HAVE_C_OSPEED && _HAVE_STRUCT_TERMIOS_C_OSPEED
k_termios.c_ospeed = termios_p->c_ospeed;
#endif
memcpy (&k_termios.c_cc[0], &termios_p->c_cc[0],
diff --git a/sysdeps/unix/sysv/linux/tee.c b/sysdeps/unix/sysv/linux/tee.c
index 14294442c7..97228e344e 100644
--- a/sysdeps/unix/sysv/linux/tee.c
+++ b/sysdeps/unix/sysv/linux/tee.c
@@ -1,5 +1,5 @@
/* Linux duplicating pipe content implementation.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fcntl.h>
#include <sysdep-cancel.h>
diff --git a/sysdeps/unix/sysv/linux/test-errno-linux.c b/sysdeps/unix/sysv/linux/test-errno-linux.c
index be1135351d..83e58491ba 100644
--- a/sysdeps/unix/sysv/linux/test-errno-linux.c
+++ b/sysdeps/unix/sysv/linux/test-errno-linux.c
@@ -1,7 +1,7 @@
/* Test that failing system calls do set errno to the correct value.
Linux sycalls version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <array_length.h>
#include <errno.h>
@@ -160,8 +160,9 @@ do_test (void)
fails |= test_wrp (EINVAL, poll, &pollfd, -1, 0);
/* quotactl returns ENOSYS for kernels not configured with
CONFIG_QUOTA, and may return EPERM if called within certain types
- of containers. */
- fails |= test_wrp2 (LIST (ENODEV, ENOSYS, EPERM),
+ of containers. Linux 5.4 added additional argument validation
+ and can return EINVAL. */
+ fails |= test_wrp2 (LIST (ENODEV, ENOSYS, EPERM, EINVAL),
quotactl, Q_GETINFO, NULL, -1, (caddr_t) &dqblk);
fails |= test_wrp (EINVAL, sched_getparam, -1, &sch_param);
fails |= test_wrp (EINVAL, sched_getscheduler, -1);
diff --git a/sysdeps/unix/sysv/linux/time-clockid.h b/sysdeps/unix/sysv/linux/time-clockid.h
new file mode 100644
index 0000000000..1bdaa18094
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/time-clockid.h
@@ -0,0 +1,22 @@
+/* System specific time definitions. Generic Version.
+ Copyright 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
+ <https://www.gnu.org/licenses/>. */
+
+/* Timer used on clock_gettime for time implementation. For Linux
+ it uses the coarse version which returns the time at the last tick
+ and mimic what time as syscall should return. */
+#define TIME_CLOCK_GETTIME_CLOCKID CLOCK_REALTIME_COARSE
diff --git a/sysdeps/unix/sysv/linux/time.c b/sysdeps/unix/sysv/linux/time.c
deleted file mode 100644
index 69116af059..0000000000
--- a/sysdeps/unix/sysv/linux/time.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Copyright (C) 2005-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <stddef.h>
-#include <time.h>
-
-#include <sysdep.h>
-
-#ifdef __NR_time
-
-time_t
-time (time_t *t)
-{
- INTERNAL_SYSCALL_DECL (err);
- time_t res = INTERNAL_SYSCALL (time, err, 1, NULL);
- /* There cannot be any error. */
- if (t != NULL)
- *t = res;
- return res;
-}
-libc_hidden_def (time)
-
-#else
-
-# include <sysdeps/posix/time.c>
-
-#endif
diff --git a/sysdeps/unix/sysv/linux/timer_create.c b/sysdeps/unix/sysv/linux/timer_create.c
index a49a546e71..4e41ca011f 100644
--- a/sysdeps/unix/sysv/linux/timer_create.c
+++ b/sysdeps/unix/sysv/linux/timer_create.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/sysdeps/unix/sysv/linux/timer_delete.c b/sysdeps/unix/sysv/linux/timer_delete.c
index e1eb1db593..3aec393132 100644
--- a/sysdeps/unix/sysv/linux/timer_delete.c
+++ b/sysdeps/unix/sysv/linux/timer_delete.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdlib.h>
diff --git a/sysdeps/unix/sysv/linux/timer_getoverr.c b/sysdeps/unix/sysv/linux/timer_getoverr.c
index 26f23e1d8a..04122a9878 100644
--- a/sysdeps/unix/sysv/linux/timer_getoverr.c
+++ b/sysdeps/unix/sysv/linux/timer_getoverr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <time.h>
diff --git a/sysdeps/unix/sysv/linux/timer_gettime.c b/sysdeps/unix/sysv/linux/timer_gettime.c
index 10a19d9ee7..20d34dbfa9 100644
--- a/sysdeps/unix/sysv/linux/timer_gettime.c
+++ b/sysdeps/unix/sysv/linux/timer_gettime.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
@@ -14,28 +14,57 @@
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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdlib.h>
#include <time.h>
#include <sysdep.h>
+#include <kernel-features.h>
#include "kernel-posix-timers.h"
+int
+__timer_gettime64 (timer_t timerid, struct __itimerspec64 *value)
+{
+ struct timer *kt = (struct timer *) timerid;
-#ifdef timer_gettime_alias
-# define timer_gettime timer_gettime_alias
-#endif
+#ifdef __ASSUME_TIME64_SYSCALLS
+# ifndef __NR_timer_gettime64
+# define __NR_timer_gettime64 __NR_timer_gettime
+# endif
+ return INLINE_SYSCALL_CALL (timer_gettime64, kt->ktimerid, value);
+#else
+# ifdef __NR_timer_gettime64
+ int ret = INLINE_SYSCALL_CALL (timer_gettime64, kt->ktimerid, value);
+ if (ret == 0 || errno != ENOSYS)
+ return ret;
+# endif
+ struct itimerspec its32;
+ int retval = INLINE_SYSCALL_CALL (timer_gettime, kt->ktimerid, &its32);
+ if (retval == 0)
+ {
+ value->it_interval = valid_timespec_to_timespec64 (its32.it_interval);
+ value->it_value = valid_timespec_to_timespec64 (its32.it_value);
+ }
+ return retval;
+#endif
+}
+#if __TIMESIZE != 64
int
-timer_gettime (timer_t timerid, struct itimerspec *value)
+__timer_gettime (timer_t timerid, struct itimerspec *value)
{
-#undef timer_gettime
- struct timer *kt = (struct timer *) timerid;
+ struct __itimerspec64 its64;
+ int retval = __timer_gettime64 (timerid, &its64);
+ if (retval == 0)
+ {
+ value->it_interval = valid_timespec64_to_timespec (its64.it_interval);
+ value->it_value = valid_timespec64_to_timespec (its64.it_value);
+ }
- /* Delete the kernel timer object. */
- int res = INLINE_SYSCALL (timer_gettime, 2, kt->ktimerid, value);
-
- return res;
+ return retval;
}
+#endif
+weak_alias (__timer_gettime, timer_gettime)
+libc_hidden_def (timer_gettime)
diff --git a/sysdeps/unix/sysv/linux/timer_routines.c b/sysdeps/unix/sysv/linux/timer_routines.c
index 5fcc91572b..d96d963177 100644
--- a/sysdeps/unix/sysv/linux/timer_routines.c
+++ b/sysdeps/unix/sysv/linux/timer_routines.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <setjmp.h>
diff --git a/sysdeps/unix/sysv/linux/timer_settime.c b/sysdeps/unix/sysv/linux/timer_settime.c
index 7c938bd4a4..402b676f69 100644
--- a/sysdeps/unix/sysv/linux/timer_settime.c
+++ b/sysdeps/unix/sysv/linux/timer_settime.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
@@ -14,30 +14,79 @@
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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdlib.h>
#include <time.h>
#include <sysdep.h>
+#include <kernel-features.h>
#include "kernel-posix-timers.h"
+int
+__timer_settime64 (timer_t timerid, int flags,
+ const struct __itimerspec64 *value,
+ struct __itimerspec64 *ovalue)
+{
+ struct timer *kt = (struct timer *) timerid;
-#ifdef timer_settime_alias
-# define timer_settime timer_settime_alias
-#endif
+#ifdef __ASSUME_TIME64_SYSCALLS
+# ifndef __NR_timer_settime64
+# define __NR_timer_settime64 __NR_timer_settime
+# endif
+ return INLINE_SYSCALL_CALL (timer_settime64, kt->ktimerid, flags, value,
+ ovalue);
+#else
+# ifdef __NR_timer_settime64
+ int ret = INLINE_SYSCALL_CALL (timer_settime64, kt->ktimerid, flags, value,
+ ovalue);
+ if (ret == 0 || errno != ENOSYS)
+ return ret;
+# endif
+ struct itimerspec its32, oits32;
+
+ if (! in_time_t_range ((value->it_value).tv_sec)
+ || ! in_time_t_range ((value->it_interval).tv_sec))
+ {
+ __set_errno (EOVERFLOW);
+ return -1;
+ }
+
+ its32.it_interval = valid_timespec64_to_timespec (value->it_interval);
+ its32.it_value = valid_timespec64_to_timespec (value->it_value);
+ int retval = INLINE_SYSCALL_CALL (timer_settime, kt->ktimerid, flags,
+ &its32, ovalue ? &oits32 : NULL);
+ if (retval == 0 && ovalue)
+ {
+ ovalue->it_interval = valid_timespec_to_timespec64 (oits32.it_interval);
+ ovalue->it_value = valid_timespec_to_timespec64 (oits32.it_value);
+ }
+ return retval;
+#endif
+}
+
+#if __TIMESIZE != 64
int
-timer_settime (timer_t timerid, int flags, const struct itimerspec *value,
- struct itimerspec *ovalue)
+__timer_settime (timer_t timerid, int flags, const struct itimerspec *value,
+ struct itimerspec *ovalue)
{
-#undef timer_settime
- struct timer *kt = (struct timer *) timerid;
+ struct __itimerspec64 its64, oits64;
+ int retval;
+
+ its64.it_interval = valid_timespec_to_timespec64 (value->it_interval);
+ its64.it_value = valid_timespec_to_timespec64 (value->it_value);
- /* Delete the kernel timer object. */
- int res = INLINE_SYSCALL (timer_settime, 4, kt->ktimerid, flags,
- value, ovalue);
+ retval = __timer_settime64 (timerid, flags, &its64, ovalue ? &oits64 : NULL);
+ if (retval == 0 && ovalue)
+ {
+ ovalue->it_interval = valid_timespec64_to_timespec (oits64.it_interval);
+ ovalue->it_value = valid_timespec64_to_timespec (oits64.it_value);
+ }
- return res;
+ return retval;
}
+#endif
+weak_alias (__timer_settime, timer_settime)
+libc_hidden_def (timer_settime)
diff --git a/sysdeps/unix/sysv/linux/times.c b/sysdeps/unix/sysv/linux/times.c
index e9c93428c4..d732321112 100644
--- a/sysdeps/unix/sysv/linux/times.c
+++ b/sysdeps/unix/sysv/linux/times.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2008-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/times.h>
diff --git a/sysdeps/unix/sysv/linux/timespec_get.c b/sysdeps/unix/sysv/linux/timespec_get.c
deleted file mode 100644
index b14a302ee9..0000000000
--- a/sysdeps/unix/sysv/linux/timespec_get.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/* Copyright (C) 2011-2018 Free Software 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.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <time.h>
-#include <sysdep.h>
-#include <errno.h>
-
-#ifdef HAVE_CLOCK_GETTIME_VSYSCALL
-# define HAVE_VSYSCALL
-#endif
-#include <sysdep-vdso.h>
-
-/* Set TS to calendar time based in time base BASE. */
-int
-timespec_get (struct timespec *ts, int base)
-{
- switch (base)
- {
- int res;
- INTERNAL_SYSCALL_DECL (err);
- case TIME_UTC:
- res = INTERNAL_VSYSCALL (clock_gettime, err, 2, CLOCK_REALTIME, ts);
- if (INTERNAL_SYSCALL_ERROR_P (res, err))
- return 0;
- break;
-
- default:
- return 0;
- }
-
- return base;
-}
diff --git a/sysdeps/unix/sysv/linux/truncate.c b/sysdeps/unix/sysv/linux/truncate.c
index 9aab095a64..ec5585f089 100644
--- a/sysdeps/unix/sysv/linux/truncate.c
+++ b/sysdeps/unix/sysv/linux/truncate.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2016-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2016-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/truncate64.c b/sysdeps/unix/sysv/linux/truncate64.c
index fe0db280d7..cf65e635cf 100644
--- a/sysdeps/unix/sysv/linux/truncate64.c
+++ b/sysdeps/unix/sysv/linux/truncate64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/tst-affinity-pid.c b/sysdeps/unix/sysv/linux/tst-affinity-pid.c
index 2550c5998e..ba729eb26d 100644
--- a/sysdeps/unix/sysv/linux/tst-affinity-pid.c
+++ b/sysdeps/unix/sysv/linux/tst-affinity-pid.c
@@ -1,5 +1,5 @@
/* Test for sched_getaffinity and sched_setaffinity, PID version.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Function definitions for the benefit of tst-skeleton-affinity.c.
This variant forks a child process which then invokes
diff --git a/sysdeps/unix/sysv/linux/tst-affinity-static.c b/sysdeps/unix/sysv/linux/tst-affinity-static.c
new file mode 100644
index 0000000000..4022ea317a
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/tst-affinity-static.c
@@ -0,0 +1 @@
+#include "tst-affinity.c"
diff --git a/sysdeps/unix/sysv/linux/tst-affinity.c b/sysdeps/unix/sysv/linux/tst-affinity.c
index 5a71587978..5ed34597f3 100644
--- a/sysdeps/unix/sysv/linux/tst-affinity.c
+++ b/sysdeps/unix/sysv/linux/tst-affinity.c
@@ -1,5 +1,5 @@
/* Single-threaded test for sched_getaffinity and sched_setaffinity.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Function definitions for the benefit of
tst-skeleton-affinity.c. */
diff --git a/sysdeps/unix/sysv/linux/tst-align-clone.c b/sysdeps/unix/sysv/linux/tst-align-clone.c
index 0aaf1364e5..6261648e32 100644
--- a/sysdeps/unix/sysv/linux/tst-align-clone.c
+++ b/sysdeps/unix/sysv/linux/tst-align-clone.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sched.h>
#include <stdbool.h>
diff --git a/sysdeps/unix/sysv/linux/tst-clone.c b/sysdeps/unix/sysv/linux/tst-clone.c
index 6c24d517b0..8cbc158aed 100644
--- a/sysdeps/unix/sysv/linux/tst-clone.c
+++ b/sysdeps/unix/sysv/linux/tst-clone.c
@@ -1,5 +1,5 @@
/* Test for proper error/errno handling in clone.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* BZ #2386 */
#include <errno.h>
diff --git a/sysdeps/unix/sysv/linux/tst-clone2.c b/sysdeps/unix/sysv/linux/tst-clone2.c
index 1f525ac618..ce21063f80 100644
--- a/sysdeps/unix/sysv/linux/tst-clone2.c
+++ b/sysdeps/unix/sysv/linux/tst-clone2.c
@@ -1,5 +1,5 @@
/* Test if CLONE_VM does not change pthread pid/tid field (BZ #19957)
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sched.h>
#include <signal.h>
diff --git a/sysdeps/unix/sysv/linux/tst-clone3.c b/sysdeps/unix/sysv/linux/tst-clone3.c
index 784ce18f53..76f8b08a69 100644
--- a/sysdeps/unix/sysv/linux/tst-clone3.c
+++ b/sysdeps/unix/sysv/linux/tst-clone3.c
@@ -1,5 +1,5 @@
/* Check if clone (CLONE_THREAD) does not call exit_group (BZ #21512)
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <sched.h>
@@ -27,6 +27,7 @@
#include <stackinfo.h> /* For _STACK_GROWS_{UP,DOWN}. */
#include <support/check.h>
+#include <stdatomic.h>
/* Test if clone call with CLONE_THREAD does not call exit_group. The 'f'
function returns '1', which will be used by clone thread to call the
@@ -42,11 +43,14 @@ f (void *a)
/* Futex wait for TID argument, similar to pthread_join internal
implementation. */
-#define wait_tid(tid) \
- do { \
- __typeof (tid) __tid; \
- while ((__tid = (tid)) != 0) \
- futex_wait (&(tid), __tid); \
+#define wait_tid(ctid_ptr, ctid_val) \
+ do { \
+ __typeof (*(ctid_ptr)) __tid; \
+ /* We need acquire MO here so that we synchronize with the \
+ kernel's store to 0 when the clone terminates. */ \
+ while ((__tid = atomic_load_explicit (ctid_ptr, \
+ memory_order_acquire)) != 0) \
+ futex_wait (ctid_ptr, ctid_val); \
} while (0)
static inline int
@@ -64,7 +68,11 @@ do_test (void)
clone_flags |= CLONE_VM | CLONE_SIGHAND;
/* We will used ctid to call on futex to wait for thread exit. */
clone_flags |= CLONE_CHILD_CLEARTID;
- pid_t ctid, tid;
+ /* Initialize with a known value. ctid is set to zero by the kernel after the
+ cloned thread has exited. */
+#define CTID_INIT_VAL 1
+ pid_t ctid = CTID_INIT_VAL;
+ pid_t tid;
#ifdef __ia64__
extern int __clone2 (int (*__fn) (void *__arg), void *__child_stack_base,
@@ -86,8 +94,7 @@ do_test (void)
if (tid == -1)
FAIL_EXIT1 ("clone failed: %m");
- ctid = tid;
- wait_tid (ctid);
+ wait_tid (&ctid, CTID_INIT_VAL);
return 2;
}
diff --git a/sysdeps/unix/sysv/linux/tst-fallocate-common.c b/sysdeps/unix/sysv/linux/tst-fallocate-common.c
index a6ba403c62..2ed9b7a277 100644
--- a/sysdeps/unix/sysv/linux/tst-fallocate-common.c
+++ b/sysdeps/unix/sysv/linux/tst-fallocate-common.c
@@ -1,5 +1,5 @@
/* Basic fallocate test (no specific flags is checked).
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
@@ -41,6 +41,8 @@ do_prepare (int argc, char **argv)
temp_fd = create_temp_file ("tst-fallocate.", &temp_filename);
if (temp_fd == -1)
FAIL_EXIT1 ("cannot create temporary file: %m");
+ if (!support_descriptor_supports_holes (temp_fd))
+ FAIL_UNSUPPORTED ("File %s does not support holes", temp_filename);
}
#define PREPARE do_prepare
diff --git a/sysdeps/unix/sysv/linux/tst-fallocate.c b/sysdeps/unix/sysv/linux/tst-fallocate.c
index e25a97e712..a251a857ad 100644
--- a/sysdeps/unix/sysv/linux/tst-fallocate.c
+++ b/sysdeps/unix/sysv/linux/tst-fallocate.c
@@ -1,5 +1,5 @@
/* Basic fallocate test (no specific flags is checked).
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "tst-fallocate-common.c"
diff --git a/sysdeps/unix/sysv/linux/tst-fallocate64.c b/sysdeps/unix/sysv/linux/tst-fallocate64.c
index e51fa0152a..f56b67a9ac 100644
--- a/sysdeps/unix/sysv/linux/tst-fallocate64.c
+++ b/sysdeps/unix/sysv/linux/tst-fallocate64.c
@@ -1,5 +1,5 @@
/* Basic fallocate64 test (no specific flags is checked).
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _FILE_OFFSET_BITS 64
#include "tst-fallocate-common.c"
diff --git a/sysdeps/unix/sysv/linux/tst-fanotify.c b/sysdeps/unix/sysv/linux/tst-fanotify.c
index 33f70362ca..aa472eac73 100644
--- a/sysdeps/unix/sysv/linux/tst-fanotify.c
+++ b/sysdeps/unix/sysv/linux/tst-fanotify.c
@@ -1,5 +1,5 @@
/* Basic fanotify test.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <config.h>
#include <errno.h>
diff --git a/sysdeps/unix/sysv/linux/tst-getdents64.c b/sysdeps/unix/sysv/linux/tst-getdents64.c
new file mode 100644
index 0000000000..7e97191716
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/tst-getdents64.c
@@ -0,0 +1,163 @@
+/* Test for reading directories with getdents64.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <dirent.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <limits.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <support/check.h>
+#include <support/support.h>
+#include <support/xunistd.h>
+#include <sys/mman.h>
+#include <unistd.h>
+
+/* Called by large_buffer_checks below. */
+static void
+large_buffer_check (int fd, char *large_buffer, size_t large_buffer_size)
+{
+ xlseek (fd, 0, SEEK_SET);
+ ssize_t ret = getdents64 (fd, large_buffer, large_buffer_size);
+ if (ret < 0)
+ FAIL_EXIT1 ("getdents64 for buffer of %zu bytes failed: %m",
+ large_buffer_size);
+ if (ret < offsetof (struct dirent64, d_name))
+ FAIL_EXIT1 ("getdents64 for buffer of %zu returned small value %zd",
+ large_buffer_size, ret);
+}
+
+/* Bug 24740: Make sure that the system call argument is adjusted
+ properly for the int type. A large value should stay a large
+ value, and not wrap around to something small, causing the system
+ call to fail with EINVAL. */
+static void
+large_buffer_checks (int fd)
+{
+ size_t large_buffer_size;
+ if (!__builtin_add_overflow (UINT_MAX, 2, &large_buffer_size))
+ {
+ int flags = MAP_ANONYMOUS | MAP_PRIVATE;
+#ifdef MAP_NORESERVE
+ flags |= MAP_NORESERVE;
+#endif
+ void *large_buffer = mmap (NULL, large_buffer_size,
+ PROT_READ | PROT_WRITE, flags, -1, 0);
+ if (large_buffer == MAP_FAILED)
+ printf ("warning: could not allocate %zu bytes of memory,"
+ " subtests skipped\n", large_buffer_size);
+ else
+ {
+ large_buffer_check (fd, large_buffer, INT_MAX);
+ large_buffer_check (fd, large_buffer, (size_t) INT_MAX + 1);
+ large_buffer_check (fd, large_buffer, (size_t) INT_MAX + 2);
+ large_buffer_check (fd, large_buffer, UINT_MAX);
+ large_buffer_check (fd, large_buffer, (size_t) UINT_MAX + 1);
+ large_buffer_check (fd, large_buffer, (size_t) UINT_MAX + 2);
+ xmunmap (large_buffer, large_buffer_size);
+ }
+ }
+}
+
+static int
+do_test (void)
+{
+ /* The test compares the iteration order with readdir64. */
+ DIR *reference = opendir (".");
+ TEST_VERIFY_EXIT (reference != NULL);
+
+ int fd = xopen (".", O_RDONLY | O_DIRECTORY, 0);
+ TEST_VERIFY (fd >= 0);
+
+ /* Perform two passes, with a rewind operating between passes. */
+ for (int pass = 0; pass < 2; ++pass)
+ {
+ /* Check that we need to fill the buffer multiple times. */
+ int read_count = 0;
+
+ while (true)
+ {
+ /* Simple way to make sure that the memcpy below does not read
+ non-existing data. */
+ struct
+ {
+ char buffer[1024];
+ struct dirent64 pad;
+ } data;
+
+ ssize_t ret = getdents64 (fd, &data.buffer, sizeof (data.buffer));
+ if (ret < 0)
+ FAIL_EXIT1 ("getdents64: %m");
+ if (ret == 0)
+ break;
+ ++read_count;
+
+ char *current = data.buffer;
+ char *end = data.buffer + ret;
+ while (current != end)
+ {
+ struct dirent64 entry;
+ memcpy (&entry, current, sizeof (entry));
+ /* Truncate overlong strings. */
+ entry.d_name[sizeof (entry.d_name) - 1] = '\0';
+ TEST_VERIFY (strlen (entry.d_name) < sizeof (entry.d_name) - 1);
+
+ errno = 0;
+ struct dirent64 *refentry = readdir64 (reference);
+ if (refentry == NULL && errno == 0)
+ FAIL_EXIT1 ("readdir64 failed too early, at: %s",
+ entry.d_name);
+ else if (refentry == NULL)
+ FAIL_EXIT1 ("readdir64: %m");
+
+ TEST_COMPARE_STRING (entry.d_name, refentry->d_name);
+ TEST_COMPARE (entry.d_ino, refentry->d_ino);
+ TEST_COMPARE (entry.d_off, refentry->d_off);
+ TEST_COMPARE (entry.d_type, refentry->d_type);
+
+ /* Offset zero is reserved for the first entry. */
+ TEST_VERIFY (entry.d_off != 0);
+
+ TEST_VERIFY_EXIT (entry.d_reclen <= end - current);
+ current += entry.d_reclen;
+ }
+ }
+
+ /* We expect to have reached the end of the stream. */
+ errno = 0;
+ TEST_VERIFY (readdir64 (reference) == NULL);
+ TEST_COMPARE (errno, 0);
+
+ /* direntries_read has been called more than once. */
+ TEST_VERIFY (read_count > 0);
+
+ /* Rewind both directory streams. */
+ xlseek (fd, 0, SEEK_SET);
+ rewinddir (reference);
+ }
+
+ large_buffer_checks (fd);
+
+ xclose (fd);
+ closedir (reference);
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/unix/sysv/linux/tst-gettid-kill.c b/sysdeps/unix/sysv/linux/tst-gettid-kill.c
new file mode 100644
index 0000000000..117917bfb0
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/tst-gettid-kill.c
@@ -0,0 +1,129 @@
+/* Verify the interaction of kill and thread groups.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+/* This test demonstrates that a signal which is sent to a specified
+ thread ID using the kill function is delivered to the entire thread
+ group (as if it had been sent to the process group). */
+
+#include <errno.h>
+#include <signal.h>
+#include <support/check.h>
+#include <support/xsignal.h>
+#include <support/xthread.h>
+#include <support/xunistd.h>
+
+/* Signal set containing SIGUSR1. */
+static sigset_t sigusr1_set;
+
+/* Used to synchronize the threads. */
+static pthread_barrier_t barrier;
+
+/* TID of the thread to which the signal is sent. */
+static pid_t target_tid;
+
+/* Thread which is expected to receive the SIGUSR1 signal. */
+static pthread_t signal_thread;
+
+/* Pipe used to block and terminate the signal thread. */
+static int pipe_signal[2];
+
+static volatile sig_atomic_t handler_tid;
+
+static void
+sigusr1_handler (int signo)
+{
+ TEST_COMPARE (signo, SIGUSR1);
+ TEST_VERIFY (pthread_self () == signal_thread);
+ TEST_COMPARE (handler_tid, 0);
+ handler_tid = gettid ();
+ TEST_VERIFY (handler_tid > 0);
+ /* Ensure that the read system call in thread_read exits if the
+ signal is delivered before the system call is invoked. */
+ char ch = 'X';
+ xwrite (pipe_signal[1], &ch, 1);
+}
+
+/* Thread which calls pause without expecting it to return. The TID
+ of this thread is used as the target in the kill function call. */
+static void *
+thread_pause_noreturn (void *closure)
+{
+ target_tid = gettid ();
+ TEST_VERIFY (target_tid > 0);
+ xpthread_barrier_wait (&barrier);
+ pause ();
+ FAIL_EXIT1 ("The pause function returned");
+ return NULL;
+}
+
+/* Thread which is expected to receive the signal. */
+static void *
+thread_read_signal (void *closure)
+{
+ xpthread_sigmask (SIG_UNBLOCK, &sigusr1_set, NULL);
+ xpthread_barrier_wait (&barrier);
+ TEST_VERIFY (target_tid > 0);
+ TEST_VERIFY (gettid () != target_tid);
+ char ch;
+ ssize_t ret = read (pipe_signal[0], &ch, 1);
+ if (ret == 1)
+ /* The signal was delivered before we entered the read system
+ call. */
+ TEST_COMPARE (ch, 'X');
+ else
+ {
+ /* The signal was delivered while blocked in the read system
+ call. */
+ TEST_COMPARE (ret, -1);
+ TEST_COMPARE (errno, EINTR);
+ }
+ TEST_COMPARE (handler_tid, gettid ());
+ return NULL;
+}
+
+static int
+do_test (void)
+{
+ /* Block the SIGUSR1 signal in all threads. */
+ sigemptyset (&sigusr1_set);
+ sigaddset (&sigusr1_set, SIGUSR1);
+ xpthread_sigmask (SIG_BLOCK, &sigusr1_set, NULL);
+
+ xsignal (SIGUSR1, sigusr1_handler);
+ xpipe (pipe_signal);
+
+ xpthread_barrier_init (&barrier, NULL, 3);
+
+ pthread_t target_thread
+ = xpthread_create (NULL, thread_pause_noreturn, NULL);
+ signal_thread = xpthread_create (NULL, thread_read_signal, NULL);
+ xpthread_barrier_wait (&barrier);
+
+ /* Send the SIGUSR1 signal to the thread which has it blocked, and
+ expect it to be delivered to the other thread. */
+ TEST_COMPARE (kill (target_tid, SIGUSR1), 0);
+
+ xpthread_join (signal_thread);
+ xpthread_cancel (target_thread);
+ xpthread_join (target_thread);
+
+ xpthread_barrier_destroy (&barrier);
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/unix/sysv/linux/tst-gettid.c b/sysdeps/unix/sysv/linux/tst-gettid.c
new file mode 100644
index 0000000000..1f1c43a04a
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/tst-gettid.c
@@ -0,0 +1,79 @@
+/* Smoke test for the gettid system call.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <support/check.h>
+#include <support/namespace.h>
+#include <support/xthread.h>
+#include <support/xunistd.h>
+
+/* TID of the initial (main) thread. */
+static pid_t initial_tid;
+
+/* Check that PID and TID are the same in a subprocess. */
+static void
+subprocess (void *closure)
+{
+ TEST_COMPARE (getpid (), gettid ());
+ TEST_VERIFY (gettid () != initial_tid);
+}
+
+/* Check that the TID changes in a new thread. */
+static void *
+threadfunc (void *closure)
+{
+ TEST_VERIFY (getpid () != gettid ());
+ TEST_VERIFY (gettid () != initial_tid);
+ return NULL;
+}
+
+/* Check for interactions with vfork. */
+static void
+test_vfork (void)
+{
+ pid_t proc = vfork ();
+ if (proc == 0)
+ {
+ if (getpid () != gettid ())
+ _exit (1);
+ if (gettid () == initial_tid)
+ _exit (2);
+ _exit (0);
+ }
+ int status;
+ xwaitpid (proc, &status, 0);
+ TEST_COMPARE (status, 0);
+}
+
+static int
+do_test (void)
+{
+ initial_tid = gettid ();
+
+ /* The main thread has the same TID as the PID. */
+ TEST_COMPARE (getpid (), gettid ());
+
+ test_vfork ();
+
+ support_isolate_in_subprocess (subprocess, NULL);
+
+ xpthread_join (xpthread_create (NULL, threadfunc, NULL));
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/unix/sysv/linux/tst-memfd_create.c b/sysdeps/unix/sysv/linux/tst-memfd_create.c
index 62d3bad5ca..712591a0fb 100644
--- a/sysdeps/unix/sysv/linux/tst-memfd_create.c
+++ b/sysdeps/unix/sysv/linux/tst-memfd_create.c
@@ -1,5 +1,5 @@
/* Test for the memfd_create system call.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/sysdeps/unix/sysv/linux/tst-mlock2.c b/sysdeps/unix/sysv/linux/tst-mlock2.c
index 54da2b3f61..ffd59f6e29 100644
--- a/sysdeps/unix/sysv/linux/tst-mlock2.c
+++ b/sysdeps/unix/sysv/linux/tst-mlock2.c
@@ -1,5 +1,5 @@
/* Test the mlock2 function.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdio.h>
diff --git a/sysdeps/unix/sysv/linux/tst-mman-consts.py b/sysdeps/unix/sysv/linux/tst-mman-consts.py
new file mode 100644
index 0000000000..3aaf2218f5
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/tst-mman-consts.py
@@ -0,0 +1,65 @@
+#!/usr/bin/python3
+# Test that glibc's sys/mman.h constants match the kernel's.
+# Copyright (C) 2018-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
+# <https://www.gnu.org/licenses/>.
+
+import argparse
+import sys
+
+import glibcextract
+
+
+def linux_kernel_version(cc):
+ """Return the (major, minor) version of the Linux kernel headers."""
+ sym_data = ['#include <linux/version.h>', 'START',
+ ('LINUX_VERSION_CODE', 'LINUX_VERSION_CODE')]
+ val = glibcextract.compute_c_consts(sym_data, cc)['LINUX_VERSION_CODE']
+ val = int(val)
+ return ((val & 0xff0000) >> 16, (val & 0xff00) >> 8)
+
+
+def main():
+ """The main entry point."""
+ parser = argparse.ArgumentParser(
+ description="Test that glibc's sys/mman.h constants "
+ "match the kernel's.")
+ parser.add_argument('--cc', metavar='CC',
+ help='C compiler (including options) to use')
+ args = parser.parse_args()
+ linux_version_headers = linux_kernel_version(args.cc)
+ linux_version_glibc = (5, 4)
+ sys.exit(glibcextract.compare_macro_consts(
+ '#define _GNU_SOURCE 1\n'
+ '#include <sys/mman.h>\n',
+ '#define _GNU_SOURCE 1\n'
+ '#include <linux/mman.h>\n',
+ args.cc,
+ 'MAP_.*',
+ # A series of MAP_HUGE_<size> macros are defined by the kernel
+ # but not by glibc. MAP_UNINITIALIZED is kernel-only.
+ # MAP_FAILED is not a MAP_* flag and is glibc-only, as is the
+ # MAP_ANON alias for MAP_ANONYMOUS. MAP_RENAME, MAP_AUTOGROW,
+ # MAP_LOCAL and MAP_AUTORSRV are in the kernel header for
+ # MIPS, marked as "not used by linux"; SPARC has MAP_INHERIT
+ # in the kernel header, but does not use it.
+ 'MAP_HUGE_[0-9].*|MAP_UNINITIALIZED|MAP_FAILED|MAP_ANON'
+ '|MAP_RENAME|MAP_AUTOGROW|MAP_LOCAL|MAP_AUTORSRV|MAP_INHERIT',
+ linux_version_glibc > linux_version_headers,
+ linux_version_headers > linux_version_glibc))
+
+if __name__ == '__main__':
+ main()
diff --git a/sysdeps/unix/sysv/linux/tst-ofdlocks-compat.c b/sysdeps/unix/sysv/linux/tst-ofdlocks-compat.c
index aaf65af0db..582fab606b 100644
--- a/sysdeps/unix/sysv/linux/tst-ofdlocks-compat.c
+++ b/sysdeps/unix/sysv/linux/tst-ofdlocks-compat.c
@@ -1,6 +1,6 @@
/* Check non representable OFD locks regions in non-LFS mode for compat
mode (BZ #20251)
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-2019 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
@@ -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 <http://www.gnu.org/licenses/>.
+ along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
#include <unistd.h>
diff --git a/sysdeps/unix/sysv/linux/tst-ofdlocks.c b/sysdeps/unix/sysv/linux/tst-ofdlocks.c
index a660bab6dd..b8456d8789 100644
--- a/sysdeps/unix/sysv/linux/tst-ofdlocks.c
+++ b/sysdeps/unix/sysv/linux/tst-ofdlocks.c
@@ -1,5 +1,5 @@
/* Check non representable OFD locks regions in non-LFS mode (BZ #20251)
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-2019 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
@@ -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 <http://www.gnu.org/licenses/>.
+ along with this program; if not, see <https://www.gnu.org/licenses/>.
*/
#include <unistd.h>
diff --git a/sysdeps/unix/sysv/linux/tst-personality.c b/sysdeps/unix/sysv/linux/tst-personality.c
index c14df891de..858b33f9a4 100644
--- a/sysdeps/unix/sysv/linux/tst-personality.c
+++ b/sysdeps/unix/sysv/linux/tst-personality.c
@@ -1,6 +1,6 @@
/* BZ #19408 linux personality syscall wrapper test.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/personality.h>
@@ -30,11 +30,11 @@ do_test (void)
errno = 0xdefaced;
saved_persona = personality (0xffffffff);
- if (personality (test_persona) != saved_persona ||
- personality (0xffffffff) == -1 ||
- personality (PER_LINUX) == -1 ||
- personality (0xffffffff) != PER_LINUX ||
- 0xdefaced != errno)
+ if (personality (test_persona) != saved_persona
+ || personality (0xffffffff) == -1
+ || personality (PER_LINUX) == -1
+ || personality (0xffffffff) != PER_LINUX
+ || 0xdefaced != errno)
rc = 1;
(void) personality (saved_persona);
diff --git a/sysdeps/unix/sysv/linux/tst-pkey.c b/sysdeps/unix/sysv/linux/tst-pkey.c
index 5f721d4444..3c25d9b9d9 100644
--- a/sysdeps/unix/sysv/linux/tst-pkey.c
+++ b/sysdeps/unix/sysv/linux/tst-pkey.c
@@ -1,5 +1,5 @@
/* Tests for memory protection keys.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <inttypes.h>
diff --git a/sysdeps/unix/sysv/linux/tst-quota.c b/sysdeps/unix/sysv/linux/tst-quota.c
index 84fd208c56..081d41c1b5 100644
--- a/sysdeps/unix/sysv/linux/tst-quota.c
+++ b/sysdeps/unix/sysv/linux/tst-quota.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2016-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2016-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/quota.h>
diff --git a/sysdeps/unix/sysv/linux/tst-readdir64-compat.c b/sysdeps/unix/sysv/linux/tst-readdir64-compat.c
new file mode 100644
index 0000000000..678b11d4c8
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/tst-readdir64-compat.c
@@ -0,0 +1,115 @@
+/* Test readdir64 compatibility symbol.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <dirent.h>
+#include <dlfcn.h>
+#include <errno.h>
+#include <shlib-compat.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <string.h>
+#include <support/check.h>
+
+/* Copied from <olddirent.h>. */
+struct __old_dirent64
+ {
+ __ino_t d_ino;
+ __off64_t d_off;
+ unsigned short int d_reclen;
+ unsigned char d_type;
+ char d_name[256];
+ };
+
+typedef struct __old_dirent64 *(*compat_readdir64_type) (DIR *);
+
+#if TEST_COMPAT (libc, GLIBC_2_1, GLIBC_2_2)
+struct __old_dirent64 *compat_readdir64 (DIR *);
+compat_symbol_reference (libc, compat_readdir64, readdir64, GLIBC_2_1);
+#endif
+
+static int
+do_test (void)
+{
+#if TEST_COMPAT (libc, GLIBC_2_1, GLIBC_2_2)
+
+ /* Directory stream using the non-compat readdir64 symbol. The test
+ checks against this. */
+ DIR *dir_reference = opendir (".");
+ TEST_VERIFY_EXIT (dir_reference != NULL);
+ DIR *dir_test = opendir (".");
+ TEST_VERIFY_EXIT (dir_test != NULL);
+
+ /* This loop assumes that the enumeration order is consistent for
+ two different handles. Nothing should write to the current
+ directory (in the source tree) while this test runs, so there
+ should not be any difference due to races. */
+ size_t count = 0;
+ while (true)
+ {
+ errno = 0;
+ struct dirent64 *entry_reference = readdir64 (dir_reference);
+ if (entry_reference == NULL && errno != 0)
+ FAIL_EXIT1 ("readdir64 entry %zu: %m\n", count);
+ struct __old_dirent64 *entry_test = compat_readdir64 (dir_test);
+ if (entry_reference == NULL)
+ {
+ if (errno == EOVERFLOW)
+ {
+ TEST_VERIFY (entry_reference->d_ino
+ != (__ino_t) entry_reference->d_ino);
+ printf ("info: inode number overflow at entry %zu\n", count);
+ break;
+ }
+ if (errno != 0)
+ FAIL_EXIT1 ("compat readdir64 entry %zu: %m\n", count);
+ }
+
+ /* Check that both streams end at the same time. */
+ if (entry_reference == NULL)
+ {
+ TEST_VERIFY (entry_test == NULL);
+ break;
+ }
+ else
+ TEST_VERIFY_EXIT (entry_test != NULL);
+
+ /* d_off is never zero because it is the offset of the next
+ entry (not the current entry). */
+ TEST_VERIFY (entry_reference->d_off > 0);
+
+ /* Check that the entries are the same. */
+ TEST_COMPARE_BLOB (entry_reference->d_name,
+ strlen (entry_reference->d_name),
+ entry_test->d_name, strlen (entry_test->d_name));
+ TEST_COMPARE (entry_reference->d_ino, entry_test->d_ino);
+ TEST_COMPARE (entry_reference->d_off, entry_test->d_off);
+ TEST_COMPARE (entry_reference->d_type, entry_test->d_type);
+ TEST_COMPARE (entry_reference->d_reclen, entry_test->d_reclen);
+
+ ++count;
+ }
+ printf ("info: %zu directory entries found\n", count);
+ TEST_VERIFY (count >= 3); /* ".", "..", and some source files. */
+
+ TEST_COMPARE (closedir (dir_test), 0);
+ TEST_COMPARE (closedir (dir_reference), 0);
+#endif
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/unix/sysv/linux/tst-rlimit-infinity.c b/sysdeps/unix/sysv/linux/tst-rlimit-infinity.c
index 9460f6ca83..9e2d6433f2 100644
--- a/sysdeps/unix/sysv/linux/tst-rlimit-infinity.c
+++ b/sysdeps/unix/sysv/linux/tst-rlimit-infinity.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2018 Free Software Foundation, Inc.
+/* Copyright (C) 2018-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdio.h>
diff --git a/sysdeps/unix/sysv/linux/tst-setgetname.c b/sysdeps/unix/sysv/linux/tst-setgetname.c
index b80ff59074..7713c4f54f 100644
--- a/sysdeps/unix/sysv/linux/tst-setgetname.c
+++ b/sysdeps/unix/sysv/linux/tst-setgetname.c
@@ -1,5 +1,5 @@
/* Test pthread_setname_np and pthread_getname_np.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
@@ -43,12 +43,6 @@
terminator. */
#define TASK_COMM_LEN 16
-long
-gettid (void)
-{
- return syscall(__NR_gettid);
-}
-
/* On Linux we can read this task's name from /proc. */
int
get_self_comm (long tid, char *buf, size_t len)
diff --git a/sysdeps/unix/sysv/linux/tst-sigcontext-get_pc.c b/sysdeps/unix/sysv/linux/tst-sigcontext-get_pc.c
new file mode 100644
index 0000000000..1b8494ebb2
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/tst-sigcontext-get_pc.c
@@ -0,0 +1,78 @@
+/* Test that the GET_PC macro is consistent with the unwinder.
+ 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 <https://www.gnu.org/licenses/>. */
+
+/* This test searches for the value of the GET_PC macro in the
+ addresses obtained from the backtrace function. */
+
+#include <array_length.h>
+#include <execinfo.h>
+#include <inttypes.h>
+#include <signal.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <support/check.h>
+#include <support/xsignal.h>
+#include <sigcontextinfo.h>
+
+static bool handler_called;
+
+static void
+handler (int signal, siginfo_t *info, void *ctx)
+{
+ TEST_COMPARE (signal, SIGUSR1);
+
+ uintptr_t pc = sigcontext_get_pc (ctx);
+ printf ("info: address in signal handler: 0x%" PRIxPTR "\n", pc);
+
+ void *callstack[10];
+ int callstack_count = backtrace (callstack, array_length (callstack));
+ TEST_VERIFY_EXIT (callstack_count > 0);
+ TEST_VERIFY_EXIT (callstack_count <= array_length (callstack));
+ bool found = false;
+ for (int i = 0; i < callstack_count; ++i)
+ {
+ const char *marker;
+ if ((uintptr_t) callstack[i] == pc)
+ {
+ found = true;
+ marker = " *";
+ }
+ else
+ marker = "";
+ printf ("info: call stack entry %d: 0x%" PRIxPTR "%s\n",
+ i, (uintptr_t) callstack[i], marker);
+ }
+ TEST_VERIFY (found);
+ handler_called = true;
+}
+
+static int
+do_test (void)
+{
+ struct sigaction sa =
+ {
+ .sa_sigaction = &handler,
+ .sa_flags = SA_SIGINFO
+ };
+ xsigaction (SIGUSR1, &sa, NULL);
+ raise (SIGUSR1);
+ TEST_VERIFY (handler_called);
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/unix/sysv/linux/tst-signal-numbers.py b/sysdeps/unix/sysv/linux/tst-signal-numbers.py
new file mode 100644
index 0000000000..fef607db97
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/tst-signal-numbers.py
@@ -0,0 +1,48 @@
+#!/usr/bin/python3
+# Test that glibc's signal numbers match the kernel's.
+# Copyright (C) 2018-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
+# <https://www.gnu.org/licenses/>.
+
+import argparse
+import sys
+
+import glibcextract
+
+
+def main():
+ """The main entry point."""
+ parser = argparse.ArgumentParser(
+ description="Test that glibc's signal numbers match the kernel's.")
+ parser.add_argument('--cc', metavar='CC',
+ help='C compiler (including options) to use')
+ args = parser.parse_args()
+ sys.exit(glibcextract.compare_macro_consts(
+ '#define _GNU_SOURCE 1\n'
+ '#include <signal.h>\n',
+ '#define _GNU_SOURCE 1\n'
+ '#include <stddef.h>\n'
+ '#include <asm/signal.h>\n',
+ args.cc,
+ # Filter out constants that aren't signal numbers.
+ 'SIG[A-Z]+',
+ # Discard obsolete signal numbers and unrelated constants:
+ # SIGCLD, SIGIOT, SIGSWI, SIGUNUSED.
+ # SIGSTKSZ, SIGRTMIN, SIGRTMAX.
+ 'SIG(CLD|IOT|RT(MIN|MAX)|STKSZ|SWI|UNUSED)'))
+
+if __name__ == '__main__':
+ main()
diff --git a/sysdeps/unix/sysv/linux/tst-signal-numbers.sh b/sysdeps/unix/sysv/linux/tst-signal-numbers.sh
deleted file mode 100644
index e1f7be0337..0000000000
--- a/sysdeps/unix/sysv/linux/tst-signal-numbers.sh
+++ /dev/null
@@ -1,86 +0,0 @@
-#! /bin/sh
-# Test that glibc's signal numbers match the kernel's.
-# Copyright (C) 2017-2018 Free Software 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
-# <http://www.gnu.org/licenses/>.
-
-set -e
-if [ -n "$BASH_VERSION" ]; then set -o pipefail; fi
-LC_ALL=C; export LC_ALL
-
-# We cannot use Linux's asm/signal.h to define signal numbers, because
-# it isn't sufficiently namespace-clean. Instead, this test checks
-# that our signal numbers match the kernel's. This script expects
-# "$@" to be $(CC) $(CPPFLAGS) as set by glibc's Makefiles, and $AWK
-# to be set in the environment.
-
-# Before doing anything else, fail if the compiler doesn't work.
-"$@" -E -xc -dM - < /dev/null > /dev/null
-
-tmpG=`mktemp -t signums_glibc.XXXXXXXXX`
-tmpK=`mktemp -t signums_kernel.XXXXXXXXX`
-trap "rm -f '$tmpG' '$tmpK'" 0
-
-# Filter out constants that aren't signal numbers.
-# If SIGPOLL is defined as SIGIO, swap it around so SIGIO is defined as
-# SIGPOLL. Similarly for SIGABRT and SIGIOT.
-# Discard obsolete signal numbers and unrelated constants:
-# SIGCLD, SIGIOT, SIGSWI, SIGUNUSED.
-# SIGSTKSZ, SIGRTMIN, SIGRTMAX.
-# Then sort the list.
-filter_defines ()
-{
- $AWK '
-/^#define SIG[A-Z]+ ([0-9]+|SIG[A-Z0-9]+)$/ { signals[$2] = $3 }
-END {
- if ("SIGPOLL" in signals && "SIGIO" in signals &&
- signals["SIGPOLL"] == "SIGIO") {
- signals["SIGPOLL"] = signals["SIGIO"]
- signals["SIGIO"] = "SIGPOLL"
- }
- if ("SIGABRT" in signals && "SIGIOT" in signals &&
- signals["SIGABRT"] == "SIGIOT") {
- signals["SIGABRT"] = signals["SIGIOT"]
- signals["SIGIOT"] = "SIGABRT"
- }
- for (sig in signals) {
- if (sig !~ /^SIG(CLD|IOT|RT(MIN|MAX)|STKSZ|SWI|UNUSED)$/) {
- printf("#define %s %s\n", sig, signals[sig])
- }
- }
-}' | sort
-}
-
-# $CC may contain command-line switches, so it should be word-split.
-printf '%s' '#define _GNU_SOURCE 1
-#include <signal.h>
-' |
- "$@" -E -xc -dM - |
- filter_defines > "$tmpG"
-
-printf '%s' '#define _GNU_SOURCE 1
-#define __ASSEMBLER__ 1
-#include <asm/signal.h>
-' |
- "$@" -E -xc -dM - |
- filter_defines > "$tmpK"
-
-if cmp -s "$tmpG" "$tmpK"; then
- exit 0
-else
- diff -u "$tmpG" "$tmpK"
- exit 1
-fi
diff --git a/sysdeps/unix/sysv/linux/tst-skeleton-affinity.c b/sysdeps/unix/sysv/linux/tst-skeleton-affinity.c
index 695c1ccdbd..9d1f27fea9 100644
--- a/sysdeps/unix/sysv/linux/tst-skeleton-affinity.c
+++ b/sysdeps/unix/sysv/linux/tst-skeleton-affinity.c
@@ -1,5 +1,5 @@
/* Generic test case for CPU affinity functions.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file is included by the tst-affinity*.c files to test the two
variants of the functions, under different conditions. The
@@ -189,6 +189,18 @@ test_size (const struct conf *conf, size_t size)
printf ("error: Unexpected CPU %d, expected %d\n", active_cpu, cpu);
return false;
}
+ unsigned int numa_cpu, numa_node;
+ if (getcpu (&numa_cpu, &numa_node) != 0)
+ {
+ printf ("error: getcpu: %m\n");
+ return false;
+ }
+ if ((unsigned int) active_cpu != numa_cpu)
+ {
+ printf ("error: Unexpected CPU %d, expected %d\n",
+ active_cpu, numa_cpu);
+ return false;
+ }
if (getaffinity (kernel_size, set2) < 0)
{
printf ("error: size %zu: getaffinity (2): %m\n", size);
@@ -252,6 +264,11 @@ do_test (void)
struct conf conf;
setup_conf (&conf);
+ /* Note: The CPU set size in bits can be less than the CPU count
+ (and the maximum test CPU) because the userspace interface rounds
+ up the bit count, and the rounded-up buffer size is passed into
+ the kernel. The kernel does not know that some of the buffer are
+ actually padding, and writes data there. */
printf ("info: Detected CPU set size (in bits): %d\n", conf.set_size);
printf ("info: Maximum test CPU: %d\n", conf.last_cpu);
if (conf.set_size < 0 || conf.last_cpu < 0)
diff --git a/sysdeps/unix/sysv/linux/tst-skeleton-thread-affinity.c b/sysdeps/unix/sysv/linux/tst-skeleton-thread-affinity.c
index 8aea14ab15..2b4ca5e4a2 100644
--- a/sysdeps/unix/sysv/linux/tst-skeleton-thread-affinity.c
+++ b/sysdeps/unix/sysv/linux/tst-skeleton-thread-affinity.c
@@ -1,5 +1,5 @@
/* Generic test for CPU affinity functions, multi-threaded variant.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Before including this file, a test has to declare the helper
getaffinity and setaffinity functions described in
@@ -24,6 +24,7 @@
#include <pthread.h>
#include <stdbool.h>
#include <stdlib.h>
+#include <support/xthread.h>
#include <sys/time.h>
struct conf;
@@ -191,6 +192,7 @@ early_test (struct conf *conf)
printf ("error: pthread_attr_init failed: %s\n", strerror (ret));
return false;
}
+ support_set_small_thread_stack_size (&attr);
/* Spawn a thread pinned to each available CPU. */
for (int cpu = 0; cpu <= conf->last_cpu; ++cpu)
@@ -228,7 +230,8 @@ early_test (struct conf *conf)
{
if (!CPU_ISSET_S (cpu, CPU_ALLOC_SIZE (conf->set_size), initial_set))
continue;
- ret = pthread_create (&other_threads[cpu].self, NULL,
+ ret = pthread_create (&other_threads[cpu].self,
+ support_small_stack_thread_attribute (),
thread_burn_any_cpu, other_threads + cpu);
if (ret != 0)
{
diff --git a/sysdeps/unix/sysv/linux/tst-socket-consts.py b/sysdeps/unix/sysv/linux/tst-socket-consts.py
new file mode 100644
index 0000000000..f0171c96c8
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/tst-socket-consts.py
@@ -0,0 +1,65 @@
+#!/usr/bin/python3
+# Test that glibc's sys/socket.h SO_* constants match the kernel's.
+# Copyright (C) 2018-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
+# <https://www.gnu.org/licenses/>.
+
+import argparse
+import sys
+
+import glibcextract
+
+def main():
+ """The main entry point."""
+ parser = argparse.ArgumentParser(
+ description="Test that glibc's sys/socket.h constants "
+ "match the kernel's.")
+ parser.add_argument('--cc', metavar='CC',
+ help='C compiler (including options) to use')
+ args = parser.parse_args()
+
+ def check(define):
+ return glibcextract.compare_macro_consts(
+ source_1=define + '#include <sys/socket.h>\n',
+ # Some constants in <asm/socket.h> may depend on the size
+ # of pid_t or time_t.
+ source_2='#include <sys/types.h>\n'
+ '#include <asm/socket.h>\n',
+ cc=args.cc,
+ # We cannot compare all macros because some macros cannot
+ # be expanded as constants, and glibcextract currently is
+ # not able to isolate errors.
+ macro_re='SOL?_.*',
+ # <sys/socket.h> and <asm/socket.h> are not a good match.
+ # Most socket-related constants are not defined in any
+ # UAPI header. Check only the intersection of the macros
+ # in both headers. Regular tests ensure that expected
+ # macros for _GNU_SOURCE are present, and the conformance
+ # tests cover most of the other modes.
+ allow_extra_1=True,
+ allow_extra_2=True)
+ # _GNU_SOURCE is defined by include/libc-symbols.h, which is
+ # included by the --cc command. Defining _ISOMAC does not prevent
+ # that.
+ status = max(
+ check(''),
+ check('#undef _GNU_SOURCE\n'),
+ check('#undef _GNU_SOURCE\n'
+ '#define _POSIX_SOURCE 1\n'))
+ sys.exit(status)
+
+if __name__ == '__main__':
+ main()
diff --git a/sysdeps/unix/sysv/linux/tst-sync_file_range.c b/sysdeps/unix/sysv/linux/tst-sync_file_range.c
index 680ccde219..c83a65907c 100644
--- a/sysdeps/unix/sysv/linux/tst-sync_file_range.c
+++ b/sysdeps/unix/sysv/linux/tst-sync_file_range.c
@@ -1,5 +1,5 @@
/* Basic sync_file_range (not specific flag is checked).
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* sync_file_range is only define for LFS. */
#define _FILE_OFFSET_BITS 64
diff --git a/sysdeps/unix/sysv/linux/tst-syscall-list.sh b/sysdeps/unix/sysv/linux/tst-syscall-list.sh
index d97662e810..ed80db329f 100644
--- a/sysdeps/unix/sysv/linux/tst-syscall-list.sh
+++ b/sysdeps/unix/sysv/linux/tst-syscall-list.sh
@@ -1,6 +1,6 @@
#!/bin/bash
# Consistency checks for the system call list
-# Copyright (C) 2017-2018 Free Software Foundation, Inc.
+# Copyright (C) 2017-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
@@ -15,7 +15,7 @@
#
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
export LC_ALL=C
set -e
diff --git a/sysdeps/unix/sysv/linux/tst-sysconf-iov_max-uapi.c b/sysdeps/unix/sysv/linux/tst-sysconf-iov_max-uapi.c
index c5ced1d86b..c90865ebd3 100644
--- a/sysdeps/unix/sysv/linux/tst-sysconf-iov_max-uapi.c
+++ b/sysdeps/unix/sysv/linux/tst-sysconf-iov_max-uapi.c
@@ -1,5 +1,5 @@
/* Check IOV_MAX definition: Helper function to capture UAPI header value.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Use a separate function to avoid header compatibility issues. */
diff --git a/sysdeps/unix/sysv/linux/tst-sysconf-iov_max.c b/sysdeps/unix/sysv/linux/tst-sysconf-iov_max.c
index 315a1dcf43..790ea7c533 100644
--- a/sysdeps/unix/sysv/linux/tst-sysconf-iov_max.c
+++ b/sysdeps/unix/sysv/linux/tst-sysconf-iov_max.c
@@ -1,5 +1,5 @@
/* Check IOV_MAX definition for consistency (bug 22321).
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Defined in tst-sysconf-iov_max-uapi.c. */
long uio_maxiov_value (void);
diff --git a/sysdeps/unix/sysv/linux/tst-tgkill.c b/sysdeps/unix/sysv/linux/tst-tgkill.c
new file mode 100644
index 0000000000..2a9db7c7d1
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/tst-tgkill.c
@@ -0,0 +1,132 @@
+/* Smoke test for the tgkill system call.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <signal.h>
+#include <support/check.h>
+#include <support/namespace.h>
+#include <support/xthread.h>
+#include <unistd.h>
+
+/* Number of times sigusr1_handler has been invoked. */
+static volatile sig_atomic_t signals_delivered;
+
+/* Expected TID of the thread receiving the signal. */
+static pid_t expected_signal_tid;
+
+static void
+sigusr1_handler (int signo)
+{
+ TEST_COMPARE (expected_signal_tid, gettid ());
+ ++signals_delivered;
+}
+
+struct pid_and_tid
+{
+ pid_t pid;
+ pid_t tid;
+};
+
+/* Send signals from the subprocess which are not expected to be
+ delivered. There is no handler for SIGUSR2, so delivery will
+ result in a test failure. CLOSURE must point to a valid PID/TID
+ combination that is still running. */
+static void
+subprocess_no_tid_match (void *closure)
+{
+ struct pid_and_tid *ids = closure;
+ TEST_COMPARE (tgkill (ids->pid, gettid (), SIGUSR2), -1);
+ TEST_COMPARE (errno, ESRCH);
+
+ TEST_COMPARE (tgkill (getpid (), ids->tid, SIGUSR2), -1);
+ TEST_COMPARE (errno, ESRCH);
+
+ TEST_COMPARE (tgkill (getppid (), gettid (), SIGUSR2), -1);
+ TEST_COMPARE (errno, ESRCH);
+}
+
+/* Called from threadfunc below. */
+static void
+subprocess (void *closure)
+{
+ int original_tid = expected_signal_tid;
+
+ /* Do not expect that the folloing signals are delivered to the
+ subprocess. The parent process retains the original
+ expected_signal_tid value. */
+ expected_signal_tid = 0;
+ TEST_COMPARE (tgkill (getpid (), original_tid, SIGUSR1), -1);
+ TEST_COMPARE (errno, ESRCH);
+ TEST_COMPARE (tgkill (getppid (), gettid (), SIGUSR1), -1);
+ TEST_COMPARE (errno, ESRCH);
+ TEST_COMPARE (expected_signal_tid, 0);
+
+ /* This call has the correct PID/TID combination and is therefore
+ expected to suceed. */
+ TEST_COMPARE (tgkill (getppid (), original_tid, SIGUSR1), 0);
+}
+
+static void *
+threadfunc (void *closure)
+{
+ TEST_VERIFY (gettid () != getpid ());
+ expected_signal_tid = gettid ();
+ TEST_COMPARE (tgkill (getpid (), gettid (), SIGUSR1), 0);
+ TEST_COMPARE (signals_delivered, 1);
+ signals_delivered = 0;
+
+ support_isolate_in_subprocess (subprocess, NULL);
+
+ /* Check that exactly one signal arrived from the subprocess. */
+ TEST_COMPARE (signals_delivered, 1);
+
+ support_isolate_in_subprocess (subprocess_no_tid_match,
+ &(struct pid_and_tid)
+ {
+ .pid = getpid (),
+ .tid = gettid (),
+ });
+
+ support_isolate_in_subprocess (subprocess_no_tid_match,
+ &(struct pid_and_tid)
+ {
+ .pid = getpid (),
+ .tid = getpid (),
+ });
+
+ return NULL;
+}
+
+static int
+do_test (void)
+{
+ TEST_VERIFY_EXIT (signal (SIGUSR1, sigusr1_handler) != SIG_ERR);
+
+ expected_signal_tid = gettid ();
+ TEST_COMPARE (gettid (), getpid ());
+ TEST_COMPARE (tgkill (getpid (), gettid (), SIGUSR1), 0);
+ TEST_COMPARE (signals_delivered, 1);
+ signals_delivered = 0;
+
+ xpthread_join (xpthread_create (NULL, threadfunc, NULL));
+
+ TEST_VERIFY (signal (SIGUSR1, SIG_DFL) == sigusr1_handler);
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/unix/sysv/linux/tst-thread-affinity-pthread.c b/sysdeps/unix/sysv/linux/tst-thread-affinity-pthread.c
index f8f96befd6..d76287b2fc 100644
--- a/sysdeps/unix/sysv/linux/tst-thread-affinity-pthread.c
+++ b/sysdeps/unix/sysv/linux/tst-thread-affinity-pthread.c
@@ -1,5 +1,5 @@
/* Multi-threaded test for pthread_getaffinity_np, pthread_setaffinity_np.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/sysdeps/unix/sysv/linux/tst-thread-affinity-pthread2.c b/sysdeps/unix/sysv/linux/tst-thread-affinity-pthread2.c
index ebd573d399..858ce724d3 100644
--- a/sysdeps/unix/sysv/linux/tst-thread-affinity-pthread2.c
+++ b/sysdeps/unix/sysv/linux/tst-thread-affinity-pthread2.c
@@ -1,5 +1,5 @@
/* Separate thread test for pthread_getaffinity_np, pthread_setaffinity_np.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <pthread.h>
diff --git a/sysdeps/unix/sysv/linux/tst-thread-affinity-sched.c b/sysdeps/unix/sysv/linux/tst-thread-affinity-sched.c
index b8944a5ca5..33b5196d53 100644
--- a/sysdeps/unix/sysv/linux/tst-thread-affinity-sched.c
+++ b/sysdeps/unix/sysv/linux/tst-thread-affinity-sched.c
@@ -1,5 +1,5 @@
/* Multi-threaded test for sched_getaffinity_np, sched_setaffinity_np.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sched.h>
diff --git a/sysdeps/unix/sysv/linux/tst-ttyname.c b/sysdeps/unix/sysv/linux/tst-ttyname.c
index 35450e1c62..eb8bc9fb6b 100644
--- a/sysdeps/unix/sysv/linux/tst-ttyname.c
+++ b/sysdeps/unix/sysv/linux/tst-ttyname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2017-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
@@ -13,7 +13,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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <dirent.h>
#include <errno.h>
@@ -27,6 +27,7 @@
#include <sys/prctl.h>
#include <sys/stat.h>
#include <sys/wait.h>
+#include <sys/resource.h>
#include <unistd.h>
#include <support/check.h>
@@ -102,9 +103,9 @@ eq_ttyname (struct result actual, struct result expected)
{
char *actual_name, *expected_name;
- if ((actual.err == expected.err) &&
- (!actual.name == !expected.name) &&
- (actual.name ? strcmp (actual.name, expected.name) == 0 : true))
+ if ((actual.err == expected.err)
+ && (!actual.name == !expected.name)
+ && (actual.name ? strcmp (actual.name, expected.name) == 0 : true))
{
if (expected.name)
expected_name = xasprintf ("\"%s\"", expected.name);
@@ -168,10 +169,10 @@ eq_ttyname_r (struct result_r actual, struct result_r expected)
{
char *actual_name, *expected_name;
- if ((actual.err == expected.err) &&
- (actual.ret == expected.ret) &&
- (!actual.name == !expected.name) &&
- (actual.name ? strcmp (actual.name, expected.name) == 0 : true))
+ if ((actual.err == expected.err)
+ && (actual.ret == expected.ret)
+ && (!actual.name == !expected.name)
+ && (actual.name ? strcmp (actual.name, expected.name) == 0 : true))
{
if (expected.name)
expected_name = xasprintf ("\"%s\"", expected.name);
@@ -239,6 +240,32 @@ prepare (int argc, char **argv)
}
#define PREPARE prepare
+/* Adjust the file limit so that we have a chance to open PTY. */
+static void
+adjust_file_limit (const char *pty)
+{
+ int number = -1;
+ if (sscanf (pty, "/dev/pts/%d", &number) != 1 || number < 0)
+ FAIL_EXIT1 ("invalid PTY name: \"%s\"", pty);
+
+ /* Add a few additional descriptors to cover standard I/O streams
+ etc. */
+ rlim_t desired_limit = number + 10;
+
+ struct rlimit lim;
+ if (getrlimit (RLIMIT_NOFILE, &lim) != 0)
+ FAIL_EXIT1 ("getrlimit (RLIMIT_NOFILE): %m");
+ if (lim.rlim_cur < desired_limit)
+ {
+ printf ("info: adjusting RLIMIT_NOFILE from %llu to %llu\n",
+ (unsigned long long int) lim.rlim_cur,
+ (unsigned long long int) desired_limit);
+ lim.rlim_cur = desired_limit;
+ if (setrlimit (RLIMIT_NOFILE, &lim) != 0)
+ printf ("warning: setrlimit (RLIMIT_NOFILE) failed: %m\n");
+ }
+}
+
/* These chroot setup functions put the TTY at at "/console" (where it
won't be found by ttyname), and create "/dev/console" as an
ordinary file. This way, it's easier to write test-cases that
@@ -266,6 +293,7 @@ do_in_chroot_1 (int (*cb)(const char *, int))
if (strncmp (slavename, "/dev/pts/", 9) != 0)
FAIL_UNSUPPORTED ("slave pseudo-terminal is not under /dev/pts/: %s",
slavename);
+ adjust_file_limit (slavename);
int slave = xopen (slavename, O_RDWR, 0);
if (!doit (slave, "basic smoketest",
(struct result_r){.name=slavename, .ret=0, .err=0}))
@@ -332,6 +360,7 @@ do_in_chroot_2 (int (*cb)(const char *, int))
if (strncmp (slavename, "/dev/pts/", 9) != 0)
FAIL_UNSUPPORTED ("slave pseudo-terminal is not under /dev/pts/: %s",
slavename);
+ adjust_file_limit (slavename);
/* wait until in a new mount ns to open the slave */
/* enable `wait`ing on grandchildren */
@@ -445,10 +474,20 @@ run_chroot_tests (const char *slavename, int slave)
ok = false;
VERIFY (umount ("/dev/console") == 0);
- /* keep creating PTYs until we we get a name collision */
- while (stat (slavename, &st) < 0)
- posix_openpt (O_RDWR|O_NOCTTY|O_NONBLOCK);
- VERIFY (stat (slavename, &st) == 0);
+ /* Keep creating PTYs until we we get a name collision. */
+ while (true)
+ {
+ if (stat (slavename, &st) == 0)
+ break;
+ if (posix_openpt (O_RDWR|O_NOCTTY|O_NONBLOCK) < 0)
+ {
+ if (errno == ENOSPC || errno == EMFILE || errno == ENFILE)
+ FAIL_UNSUPPORTED ("cannot re-create PTY \"%s\" in chroot: %m"
+ " (consider increasing limits)", slavename);
+ else
+ FAIL_EXIT1 ("cannot re-create PTY \"%s\" chroot: %m", slavename);
+ }
+ }
if (!doit (slave, "conflict, no match",
(struct result_r){.name=NULL, .ret=ENODEV, .err=ENODEV}))
@@ -531,9 +570,9 @@ run_chroot_tests (const char *slavename, int slave)
struct dirent *d;
while ((d = readdir (dirstream)) != NULL && ci < 3)
{
- if (strcmp (d->d_name, "console1") &&
- strcmp (d->d_name, "console2") &&
- strcmp (d->d_name, "console3") )
+ if (strcmp (d->d_name, "console1")
+ && strcmp (d->d_name, "console2")
+ && strcmp (d->d_name, "console3") )
continue;
c[ci++] = xasprintf ("/dev/%s", d->d_name);
}
diff --git a/sysdeps/unix/sysv/linux/ttyname.c b/sysdeps/unix/sysv/linux/ttyname.c
index f18b4ba333..82f4a2a0f2 100644
--- a/sysdeps/unix/sysv/linux/ttyname.c
+++ b/sysdeps/unix/sysv/linux/ttyname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <limits.h>
diff --git a/sysdeps/unix/sysv/linux/ttyname.h b/sysdeps/unix/sysv/linux/ttyname.h
index 8ef0a16101..3905898e17 100644
--- a/sysdeps/unix/sysv/linux/ttyname.h
+++ b/sysdeps/unix/sysv/linux/ttyname.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2016-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2016-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
@@ -13,7 +13,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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <stdbool.h>
diff --git a/sysdeps/unix/sysv/linux/ttyname_r.c b/sysdeps/unix/sysv/linux/ttyname_r.c
index 66dcbde318..0354bc8d82 100644
--- a/sysdeps/unix/sysv/linux/ttyname_r.c
+++ b/sysdeps/unix/sysv/linux/ttyname_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <limits.h>
diff --git a/sysdeps/unix/sysv/linux/umount.c b/sysdeps/unix/sysv/linux/umount.c
index 1c8bea55e0..9964496092 100644
--- a/sysdeps/unix/sysv/linux/umount.c
+++ b/sysdeps/unix/sysv/linux/umount.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Chris Metcalf <cmetcalf@tilera.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Since the generic Linux syscall ABI doesn't have an oldumount system call,
do what the kernel does down here. */
diff --git a/sysdeps/unix/sysv/linux/unlockpt.c b/sysdeps/unix/sysv/linux/unlockpt.c
index 916fc41687..d418c355cb 100644
--- a/sysdeps/unix/sysv/linux/unlockpt.c
+++ b/sysdeps/unix/sysv/linux/unlockpt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Zack Weinberg <zack@rabi.phys.columbia.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdlib.h>
diff --git a/sysdeps/unix/sysv/linux/updwtmp.c b/sysdeps/unix/sysv/linux/updwtmp.c
index 3f97b037b2..2278e7eef0 100644
--- a/sysdeps/unix/sysv/linux/updwtmp.c
+++ b/sysdeps/unix/sysv/linux/updwtmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Mark Kettenis <kettenis@phys.uva.nl>, 1998.
@@ -14,20 +14,24 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <unistd.h>
-#define TRANSFORM_UTMP_FILE_NAME(file_name) \
- ((strcmp (file_name, _PATH_UTMP) == 0 \
- && __access (_PATH_UTMP "x", F_OK) == 0) ? (_PATH_UTMP "x") : \
- ((strcmp (file_name, _PATH_WTMP) == 0 \
- && __access ( _PATH_WTMP "x", F_OK) == 0) ? (_PATH_WTMP "x") : \
- ((strcmp (file_name, _PATH_UTMP "x") == 0 \
- && __access (_PATH_UTMP "x", F_OK) != 0) ? _PATH_UTMP : \
- ((strcmp (file_name, _PATH_WTMP "x") == 0 \
- && __access (_PATH_WTMP "x", F_OK) != 0) ? _PATH_WTMP : \
- file_name))))
+#define TRANSFORM_UTMP_FILE_NAME(file_name) \
+ ((strcmp (file_name, _PATH_UTMP) == 0 \
+ && __access (_PATH_UTMP "x", F_OK) == 0) \
+ ? (_PATH_UTMP "x") \
+ : ((strcmp (file_name, _PATH_WTMP) == 0 \
+ && __access ( _PATH_WTMP "x", F_OK) == 0) \
+ ? (_PATH_WTMP "x") \
+ : ((strcmp (file_name, _PATH_UTMP "x") == 0 \
+ && __access (_PATH_UTMP "x", F_OK) != 0) \
+ ? _PATH_UTMP \
+ : ((strcmp (file_name, _PATH_WTMP "x") == 0 \
+ && __access (_PATH_WTMP "x", F_OK) != 0) \
+ ? _PATH_WTMP \
+ : file_name))))
#include <login/updwtmp.c>
diff --git a/sysdeps/unix/sysv/linux/ustat.c b/sysdeps/unix/sysv/linux/ustat.c
index 50204e4953..37dbcead08 100644
--- a/sysdeps/unix/sysv/linux/ustat.c
+++ b/sysdeps/unix/sysv/linux/ustat.c
@@ -1,5 +1,5 @@
/* Get filesystem statistics (deprecated). Linux version.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <shlib-compat.h>
diff --git a/sysdeps/unix/sysv/linux/utimensat.c b/sysdeps/unix/sysv/linux/utimensat.c
index 108d3bc55b..1515749f05 100644
--- a/sysdeps/unix/sysv/linux/utimensat.c
+++ b/sysdeps/unix/sysv/linux/utimensat.c
@@ -1,5 +1,5 @@
/* Change access and modification times of open file. Linux version.
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -14,23 +14,80 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/stat.h>
#include <sysdep.h>
+#include <time.h>
+#include <kernel-features.h>
+/* Helper function defined for easy reusage of the code which calls utimensat
+ and utimensat_time64 syscall. */
+int
+__utimensat64_helper (int fd, const char *file,
+ const struct __timespec64 tsp64[2], int flags)
+{
+#ifdef __ASSUME_TIME64_SYSCALLS
+# ifndef __NR_utimensat_time64
+# define __NR_utimensat_time64 __NR_utimensat
+# endif
+ return INLINE_SYSCALL (utimensat_time64, 4, fd, file, &tsp64[0], flags);
+#else
+# ifdef __NR_utimensat_time64
+ int ret = INLINE_SYSCALL (utimensat_time64, 4, fd, file, &tsp64[0], flags);
+ if (ret == 0 || errno != ENOSYS)
+ return ret;
+# endif
+ if (tsp64
+ && (! in_time_t_range (tsp64[0].tv_sec)
+ || ! in_time_t_range (tsp64[1].tv_sec)))
+ {
+ __set_errno (EOVERFLOW);
+ return -1;
+ }
+
+ struct timespec tsp32[2];
+ if (tsp64)
+ {
+ tsp32[0] = valid_timespec64_to_timespec (tsp64[0]);
+ tsp32[1] = valid_timespec64_to_timespec (tsp64[1]);
+ }
+
+ return INLINE_SYSCALL (utimensat, 4, fd, file, tsp64 ? &tsp32[0] : NULL,
+ flags);
+#endif
+
+}
+libc_hidden_def (__utimensat64_helper)
/* Change the access time of FILE to TSP[0] and
the modification time of FILE to TSP[1].
Starting with 2.6.22 the Linux kernel has the utimensat syscall. */
int
-utimensat (int fd, const char *file, const struct timespec tsp[2],
- int flags)
+__utimensat64 (int fd, const char *file, const struct __timespec64 tsp64[2],
+ int flags)
{
if (file == NULL)
return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
- /* Avoid implicit array coercion in syscall macros. */
- return INLINE_SYSCALL (utimensat, 4, fd, file, &tsp[0], flags);
+
+ return __utimensat64_helper (fd, file, &tsp64[0], flags);
+}
+
+#if __TIMESIZE != 64
+int
+__utimensat (int fd, const char *file, const struct timespec tsp[2],
+ int flags)
+{
+ struct __timespec64 tsp64[2];
+ if (tsp)
+ {
+ tsp64[0] = valid_timespec_to_timespec64 (tsp[0]);
+ tsp64[1] = valid_timespec_to_timespec64 (tsp[1]);
+ }
+
+ return __utimensat64 (fd, file, tsp ? &tsp64[0] : NULL, flags);
}
+#endif
+weak_alias (__utimensat, utimensat)
diff --git a/sysdeps/unix/sysv/linux/utimes.c b/sysdeps/unix/sysv/linux/utimes.c
index e37c16729f..effb6a6875 100644
--- a/sysdeps/unix/sysv/linux/utimes.c
+++ b/sysdeps/unix/sysv/linux/utimes.c
@@ -1,5 +1,5 @@
/* utimes -- Change access and modification times of file. Linux version.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/sysdeps/unix/sysv/linux/utmp_file.c b/sysdeps/unix/sysv/linux/utmp_file.c
index dd1a92c265..b36150e5ff 100644
--- a/sysdeps/unix/sysv/linux/utmp_file.c
+++ b/sysdeps/unix/sysv/linux/utmp_file.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Mark Kettenis <kettenis@phys.uva.nl>, 1998.
@@ -14,20 +14,24 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <unistd.h>
-#define TRANSFORM_UTMP_FILE_NAME(file_name) \
- ((strcmp (file_name, _PATH_UTMP) == 0 \
- && __access (_PATH_UTMP "x", F_OK) == 0) ? (_PATH_UTMP "x") : \
- ((strcmp (file_name, _PATH_WTMP) == 0 \
- && __access ( _PATH_WTMP "x", F_OK) == 0) ? (_PATH_WTMP "x") : \
- ((strcmp (file_name, _PATH_UTMP "x") == 0 \
- && __access (_PATH_UTMP "x", F_OK) != 0) ? _PATH_UTMP : \
- ((strcmp (file_name, _PATH_WTMP "x") == 0 \
- && __access (_PATH_WTMP "x", F_OK) != 0) ? _PATH_WTMP : \
- file_name))))
+#define TRANSFORM_UTMP_FILE_NAME(file_name) \
+ ((strcmp (file_name, _PATH_UTMP) == 0 \
+ && __access (_PATH_UTMP "x", F_OK) == 0) \
+ ? (_PATH_UTMP "x") \
+ : ((strcmp (file_name, _PATH_WTMP) == 0 \
+ && __access ( _PATH_WTMP "x", F_OK) == 0) \
+ ? (_PATH_WTMP "x") \
+ : ((strcmp (file_name, _PATH_UTMP "x") == 0 \
+ && __access (_PATH_UTMP "x", F_OK) != 0) \
+ ? _PATH_UTMP \
+ : ((strcmp (file_name, _PATH_WTMP "x") == 0 \
+ && __access (_PATH_WTMP "x", F_OK) != 0) \
+ ? _PATH_WTMP \
+ : file_name))))
#include <login/utmp_file.c>
diff --git a/sysdeps/unix/sysv/linux/versionsort64.c b/sysdeps/unix/sysv/linux/versionsort64.c
index a3a3a6655a..7063aebf17 100644
--- a/sysdeps/unix/sysv/linux/versionsort64.c
+++ b/sysdeps/unix/sysv/linux/versionsort64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define versionsort __no_versionsort_decl
#include <dirent.h>
diff --git a/sysdeps/unix/sysv/linux/vmsplice.c b/sysdeps/unix/sysv/linux/vmsplice.c
index d305895ebc..706b933807 100644
--- a/sysdeps/unix/sysv/linux/vmsplice.c
+++ b/sysdeps/unix/sysv/linux/vmsplice.c
@@ -1,5 +1,5 @@
/* Splice user pages into a pipe Linux implementation.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fcntl.h>
#include <sys/uio.h>
diff --git a/sysdeps/unix/sysv/linux/wait.c b/sysdeps/unix/sysv/linux/wait.c
index 3c95e6e3af..c2385c752e 100644
--- a/sysdeps/unix/sysv/linux/wait.c
+++ b/sysdeps/unix/sysv/linux/wait.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/wait.h>
#include <errno.h>
diff --git a/sysdeps/unix/sysv/linux/waitid.c b/sysdeps/unix/sysv/linux/waitid.c
index 86728929f5..e563d3e264 100644
--- a/sysdeps/unix/sysv/linux/waitid.c
+++ b/sysdeps/unix/sysv/linux/waitid.c
@@ -1,5 +1,5 @@
/* Linux implementation of waitid.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <errno.h>
diff --git a/sysdeps/unix/sysv/linux/waitpid.c b/sysdeps/unix/sysv/linux/waitpid.c
index 8cf00e4efd..d35aac01bc 100644
--- a/sysdeps/unix/sysv/linux/waitpid.c
+++ b/sysdeps/unix/sysv/linux/waitpid.c
@@ -1,5 +1,5 @@
/* Linux waitpid syscall implementation.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sysdep-cancel.h>
diff --git a/sysdeps/unix/sysv/linux/waitpid_nocancel.c b/sysdeps/unix/sysv/linux/waitpid_nocancel.c
index ff1ef3d241..3697c6b938 100644
--- a/sysdeps/unix/sysv/linux/waitpid_nocancel.c
+++ b/sysdeps/unix/sysv/linux/waitpid_nocancel.c
@@ -1,5 +1,5 @@
/* Linux waitpid syscall implementation -- non-cancellable.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sysdep-cancel.h>
diff --git a/sysdeps/unix/sysv/linux/wordsize-64/fxstat.c b/sysdeps/unix/sysv/linux/wordsize-64/fxstat.c
index f5f1376fe2..037a49b54d 100644
--- a/sysdeps/unix/sysv/linux/wordsize-64/fxstat.c
+++ b/sysdeps/unix/sysv/linux/wordsize-64/fxstat.c
@@ -1,5 +1,5 @@
/* fxstat using old-style Unix fstat system call.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Ho hum, since xstat == xstat64 we must get rid of the prototype or gcc
will complain since they don't strictly match. */
diff --git a/sysdeps/unix/sysv/linux/wordsize-64/fxstatat.c b/sysdeps/unix/sysv/linux/wordsize-64/fxstatat.c
index 99050dce0a..8a145b951d 100644
--- a/sysdeps/unix/sysv/linux/wordsize-64/fxstatat.c
+++ b/sysdeps/unix/sysv/linux/wordsize-64/fxstatat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Ho hum, since fxstatat == fxstatat64 we must get rid of the
prototype or gcc will complain since they don't strictly match. */
diff --git a/sysdeps/unix/sysv/linux/wordsize-64/lxstat.c b/sysdeps/unix/sysv/linux/wordsize-64/lxstat.c
index 6cb4f92a5c..895c424792 100644
--- a/sysdeps/unix/sysv/linux/wordsize-64/lxstat.c
+++ b/sysdeps/unix/sysv/linux/wordsize-64/lxstat.c
@@ -1,5 +1,5 @@
/* lxstat using old-style Unix lstat system call.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Ho hum, since xstat == xstat64 we must get rid of the prototype or gcc
will complain since they don't strictly match. */
diff --git a/sysdeps/unix/sysv/linux/wordsize-64/statx_cp.c b/sysdeps/unix/sysv/linux/wordsize-64/statx_cp.c
new file mode 100644
index 0000000000..260cda987e
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/wordsize-64/statx_cp.c
@@ -0,0 +1,3 @@
+/* Override the generic statx_cp.c which is only needed for new 32-bit arch
+ without stat64 family support.
+ */
diff --git a/sysdeps/unix/sysv/linux/wordsize-64/xstat.c b/sysdeps/unix/sysv/linux/wordsize-64/xstat.c
index 6450902b5f..3a738ef893 100644
--- a/sysdeps/unix/sysv/linux/wordsize-64/xstat.c
+++ b/sysdeps/unix/sysv/linux/wordsize-64/xstat.c
@@ -1,5 +1,5 @@
/* xstat using old-style Unix stat system call.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Ho hum, since xstat == xstat64 we must get rid of the prototype or gcc
will complain since they don't strictly match. */
diff --git a/sysdeps/unix/sysv/linux/write.c b/sysdeps/unix/sysv/linux/write.c
index 558639d471..1dfb5de8ee 100644
--- a/sysdeps/unix/sysv/linux/write.c
+++ b/sysdeps/unix/sysv/linux/write.c
@@ -1,5 +1,5 @@
/* Linux write syscall implementation.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <sysdep-cancel.h>
diff --git a/sysdeps/unix/sysv/linux/write_nocancel.c b/sysdeps/unix/sysv/linux/write_nocancel.c
index 6fe1ea2aaa..f57b53e9c9 100644
--- a/sysdeps/unix/sysv/linux/write_nocancel.c
+++ b/sysdeps/unix/sysv/linux/write_nocancel.c
@@ -1,5 +1,5 @@
/* Linux write syscall implementation -- non-cancellable.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <sysdep-cancel.h>
diff --git a/sysdeps/unix/sysv/linux/writev.c b/sysdeps/unix/sysv/linux/writev.c
index c9ae502c3b..77fc9c92e9 100644
--- a/sysdeps/unix/sysv/linux/writev.c
+++ b/sysdeps/unix/sysv/linux/writev.c
@@ -1,5 +1,5 @@
/* Linux writev syscall implementation.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <sys/uio.h>
diff --git a/sysdeps/unix/sysv/linux/x86/Makefile b/sysdeps/unix/sysv/linux/x86/Makefile
index 7dc4e61756..02ca36c6d2 100644
--- a/sysdeps/unix/sysv/linux/x86/Makefile
+++ b/sysdeps/unix/sysv/linux/x86/Makefile
@@ -14,6 +14,10 @@ endif
ifeq ($(subdir),nptl)
libpthread-sysdep_routines += elision-lock elision-unlock elision-timed \
elision-trylock
+CFLAGS-elision-lock.c += -mrtm
+CFLAGS-elision-unlock.c += -mrtm
+CFLAGS-elision-timed.c += -mrtm
+CFLAGS-elision-trylock.c += -mrtm
endif
ifeq ($(subdir),elf)
diff --git a/sysdeps/unix/sysv/linux/x86/arch-pkey.h b/sysdeps/unix/sysv/linux/x86/arch-pkey.h
index b33956b6a2..e27a564ded 100644
--- a/sysdeps/unix/sysv/linux/x86/arch-pkey.h
+++ b/sysdeps/unix/sysv/linux/x86/arch-pkey.h
@@ -1,5 +1,5 @@
/* Helper functions for manipulating memory protection keys.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _ARCH_PKEY_H
#define _ARCH_PKEY_H
diff --git a/sysdeps/unix/sysv/linux/x86/bits/environments.h b/sysdeps/unix/sysv/linux/x86/bits/environments.h
index 478c1cb718..b56baff73c 100644
--- a/sysdeps/unix/sysv/linux/x86/bits/environments.h
+++ b/sysdeps/unix/sysv/linux/x86/bits/environments.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _UNISTD_H
# error "Never include this file directly. Use <unistd.h> instead"
diff --git a/sysdeps/unix/sysv/linux/x86/bits/epoll.h b/sysdeps/unix/sysv/linux/x86/bits/epoll.h
index 577899c3db..8bfe590622 100644
--- a/sysdeps/unix/sysv/linux/x86/bits/epoll.h
+++ b/sysdeps/unix/sysv/linux/x86/bits/epoll.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_EPOLL_H
# error "Never use <bits/epoll.h> directly; include <sys/epoll.h> instead."
diff --git a/sysdeps/unix/sysv/linux/x86/bits/fcntl.h b/sysdeps/unix/sysv/linux/x86/bits/fcntl.h
index f26077c9cb..f63c3b6963 100644
--- a/sysdeps/unix/sysv/linux/x86/bits/fcntl.h
+++ b/sysdeps/unix/sysv/linux/x86/bits/fcntl.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for Linux/x86.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FCNTL_H
# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
diff --git a/sysdeps/unix/sysv/linux/x86/bits/ipctypes.h b/sysdeps/unix/sysv/linux/x86/bits/ipctypes.h
index be0fc92cae..7f8d2c4df7 100644
--- a/sysdeps/unix/sysv/linux/x86/bits/ipctypes.h
+++ b/sysdeps/unix/sysv/linux/x86/bits/ipctypes.h
@@ -1,5 +1,5 @@
/* bits/ipctypes.h -- Define some types used by SysV IPC/MSG/SHM.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_IPC_H
# error "Never use <bits/ipctypes.h> directly; include <sys/ipc.h> instead."
diff --git a/sysdeps/unix/sysv/linux/x86/bits/mman.h b/sysdeps/unix/sysv/linux/x86/bits/mman.h
index d897b8a2b2..0ae47cae8d 100644
--- a/sysdeps/unix/sysv/linux/x86/bits/mman.h
+++ b/sysdeps/unix/sysv/linux/x86/bits/mman.h
@@ -1,5 +1,5 @@
/* Definitions for POSIX memory map interface. Linux/x86_64 version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_MMAN_H
# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
@@ -28,22 +28,7 @@
# define MAP_32BIT 0x40 /* Only give out 32-bit addresses. */
#endif
-/* These are Linux-specific. */
-#ifdef __USE_MISC
-# define MAP_GROWSDOWN 0x00100 /* Stack-like segment. */
-# define MAP_DENYWRITE 0x00800 /* ETXTBSY */
-# define MAP_EXECUTABLE 0x01000 /* Mark it as an executable. */
-# define MAP_LOCKED 0x02000 /* Lock the mapping. */
-# define MAP_NORESERVE 0x04000 /* Don't check for reservations. */
-# define MAP_POPULATE 0x08000 /* Populate (prefault) pagetables. */
-# define MAP_NONBLOCK 0x10000 /* Do not block on IO. */
-# define MAP_STACK 0x20000 /* Allocation is for a stack. */
-# define MAP_HUGETLB 0x40000 /* Create huge page mapping. */
-# define MAP_SYNC 0x80000 /* Perform synchronous page
- faults for the mapping. */
-# define MAP_FIXED_NOREPLACE 0x100000 /* MAP_FIXED but do not unmap
- underlying mapping. */
-#endif
+#include <bits/mman-map-flags-generic.h>
/* Include generic Linux declarations. */
#include <bits/mman-linux.h>
diff --git a/sysdeps/unix/sysv/linux/x86/bits/msq.h b/sysdeps/unix/sysv/linux/x86/bits/msq.h
deleted file mode 100644
index bc2e3bd13d..0000000000
--- a/sysdeps/unix/sysv/linux/x86/bits/msq.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/* Copyright (C) 1995-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_MSG_H
-# error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
-#endif
-
-#include <bits/types.h>
-
-/* Define options for message queue functions. */
-#define MSG_NOERROR 010000 /* no error if message is too big */
-#ifdef __USE_GNU
-# define MSG_EXCEPT 020000 /* recv any msg except of specified type */
-# define MSG_COPY 040000 /* copy (not remove) all queue messages */
-#endif
-
-/* Types used in the structure definition. */
-typedef __syscall_ulong_t msgqnum_t;
-typedef __syscall_ulong_t msglen_t;
-
-/* Structure of record for one message inside the kernel.
- The type `struct msg' is opaque. */
-struct msqid_ds
-{
- struct ipc_perm msg_perm; /* structure describing operation permission */
- __time_t msg_stime; /* time of last msgsnd command */
-#ifndef __x86_64__
- unsigned long int __glibc_reserved1;
-#endif
- __time_t msg_rtime; /* time of last msgrcv command */
-#ifndef __x86_64__
- unsigned long int __glibc_reserved2;
-#endif
- __time_t msg_ctime; /* time of last change */
-#ifndef __x86_64__
- unsigned long int __glibc_reserved3;
-#endif
- __syscall_ulong_t __msg_cbytes; /* current number of bytes on queue */
- msgqnum_t msg_qnum; /* number of messages currently on queue */
- msglen_t msg_qbytes; /* max number of bytes allowed on queue */
- __pid_t msg_lspid; /* pid of last msgsnd() */
- __pid_t msg_lrpid; /* pid of last msgrcv() */
- __syscall_ulong_t __glibc_reserved4;
- __syscall_ulong_t __glibc_reserved5;
-};
-
-#ifdef __USE_MISC
-
-# define msg_cbytes __msg_cbytes
-
-/* ipcs ctl commands */
-# define MSG_STAT 11
-# define MSG_INFO 12
-# define MSG_STAT_ANY 13
-
-/* buffer for msgctl calls IPC_INFO, MSG_INFO */
-struct msginfo
- {
- int msgpool;
- int msgmap;
- int msgmax;
- int msgmnb;
- int msgmni;
- int msgssz;
- int msgtql;
- unsigned short int msgseg;
- };
-
-#endif /* __USE_MISC */
diff --git a/sysdeps/unix/sysv/linux/x86/bits/procfs-id.h b/sysdeps/unix/sysv/linux/x86/bits/procfs-id.h
new file mode 100644
index 0000000000..3127e60190
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/x86/bits/procfs-id.h
@@ -0,0 +1,30 @@
+/* Types of pr_uid and pr_gid in struct elf_prpsinfo. x86 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PROCFS_H
+# error "Never include <bits/procfs-id.h> directly; use <sys/procfs.h> instead."
+#endif
+
+#if __WORDSIZE == 32
+typedef unsigned short int __pr_uid_t;
+typedef unsigned short int __pr_gid_t;
+#else
+typedef unsigned int __pr_uid_t;
+typedef unsigned int __pr_gid_t;
+#endif
diff --git a/sysdeps/unix/sysv/linux/x86/bits/procfs.h b/sysdeps/unix/sysv/linux/x86/bits/procfs.h
new file mode 100644
index 0000000000..c43ef9e137
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/x86/bits/procfs.h
@@ -0,0 +1,50 @@
+/* Types for registers for sys/procfs.h. x86 version.
+ Copyright (C) 2001-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PROCFS_H
+# error "Never include <bits/procfs.h> directly; use <sys/procfs.h> instead."
+#endif
+
+/* Type for a general-purpose register. */
+#ifdef __x86_64__
+__extension__ typedef unsigned long long elf_greg_t;
+#else
+typedef unsigned long elf_greg_t;
+#endif
+
+/* And the whole bunch of them. We could have used `struct
+ user_regs_struct' directly in the typedef, but tradition says that
+ the register set is an array, which does have some peculiar
+ semantics, so leave it that way. */
+#define ELF_NGREG (sizeof (struct user_regs_struct) / sizeof (elf_greg_t))
+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
+
+#ifndef __x86_64__
+/* Register set for the floating-point registers. */
+typedef struct user_fpregs_struct elf_fpregset_t;
+
+/* Register set for the extended floating-point registers. Includes
+ the Pentium III SSE registers in addition to the classic
+ floating-point stuff. */
+typedef struct user_fpxregs_struct elf_fpxregset_t;
+#else
+/* Register set for the extended floating-point registers. Includes
+ the Pentium III SSE registers in addition to the classic
+ floating-point stuff. */
+typedef struct user_fpregs_struct elf_fpregset_t;
+#endif
diff --git a/sysdeps/unix/sysv/linux/x86/bits/sem-pad.h b/sysdeps/unix/sysv/linux/x86/bits/sem-pad.h
new file mode 100644
index 0000000000..4b90c70b0d
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/x86/bits/sem-pad.h
@@ -0,0 +1,24 @@
+/* Define where padding goes in struct semid_ds. x86 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SEM_H
+# error "Never use <bits/sem-pad.h> directly; include <sys/sem.h> instead."
+#endif
+
+#define __SEM_PAD_AFTER_TIME 1
+#define __SEM_PAD_BEFORE_TIME 0
diff --git a/sysdeps/unix/sysv/linux/x86/bits/sem.h b/sysdeps/unix/sysv/linux/x86/bits/sem.h
deleted file mode 100644
index 6771966a06..0000000000
--- a/sysdeps/unix/sysv/linux/x86/bits/sem.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/* Copyright (C) 2002-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_SEM_H
-# error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
-#endif
-
-#include <sys/types.h>
-
-/* Flags for `semop'. */
-#define SEM_UNDO 0x1000 /* undo the operation on exit */
-
-/* Commands for `semctl'. */
-#define GETPID 11 /* get sempid */
-#define GETVAL 12 /* get semval */
-#define GETALL 13 /* get all semval's */
-#define GETNCNT 14 /* get semncnt */
-#define GETZCNT 15 /* get semzcnt */
-#define SETVAL 16 /* set semval */
-#define SETALL 17 /* set all semval's */
-
-
-/* Data structure describing a set of semaphores. */
-struct semid_ds
-{
- struct ipc_perm sem_perm; /* operation permission struct */
- __time_t sem_otime; /* last semop() time */
- __syscall_ulong_t __glibc_reserved1;
- __time_t sem_ctime; /* last time changed by semctl() */
- __syscall_ulong_t __glibc_reserved2;
- __syscall_ulong_t sem_nsems; /* number of semaphores in set */
- __syscall_ulong_t __glibc_reserved3;
- __syscall_ulong_t __glibc_reserved4;
-};
-
-/* The user should define a union like the following to use it for arguments
- for `semctl'.
-
- union semun
- {
- int val; <= value for SETVAL
- struct semid_ds *buf; <= buffer for IPC_STAT & IPC_SET
- unsigned short int *array; <= array for GETALL & SETALL
- struct seminfo *__buf; <= buffer for IPC_INFO
- };
-
- Previous versions of this file used to define this union but this is
- incorrect. One can test the macro _SEM_SEMUN_UNDEFINED to see whether
- one must define the union or not. */
-#define _SEM_SEMUN_UNDEFINED 1
-
-#ifdef __USE_MISC
-
-/* ipcs ctl cmds */
-# define SEM_STAT 18
-# define SEM_INFO 19
-# define SEM_STAT_ANY 20
-
-struct seminfo
-{
- int semmap;
- int semmni;
- int semmns;
- int semmnu;
- int semmsl;
- int semopm;
- int semume;
- int semusz;
- int semvmx;
- int semaem;
-};
-
-#endif /* __USE_MISC */
diff --git a/sysdeps/unix/sysv/linux/x86/bits/shm.h b/sysdeps/unix/sysv/linux/x86/bits/shm.h
deleted file mode 100644
index 767bb78573..0000000000
--- a/sysdeps/unix/sysv/linux/x86/bits/shm.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/* Copyright (C) 1995-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_SHM_H
-# error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
-#endif
-
-#include <bits/types.h>
-
-/* Permission flag for shmget. */
-#define SHM_R 0400 /* or S_IRUGO from <linux/stat.h> */
-#define SHM_W 0200 /* or S_IWUGO from <linux/stat.h> */
-
-/* Flags for `shmat'. */
-#define SHM_RDONLY 010000 /* attach read-only else read-write */
-#define SHM_RND 020000 /* round attach address to SHMLBA */
-#define SHM_REMAP 040000 /* take-over region on attach */
-#define SHM_EXEC 0100000 /* execution access */
-
-/* Commands for `shmctl'. */
-#define SHM_LOCK 11 /* lock segment (root only) */
-#define SHM_UNLOCK 12 /* unlock segment (root only) */
-
-__BEGIN_DECLS
-
-/* Segment low boundary address multiple. */
-#define SHMLBA (__getpagesize ())
-extern int __getpagesize (void) __THROW __attribute__ ((__const__));
-
-
-/* Type to count number of attaches. */
-typedef __syscall_ulong_t shmatt_t;
-
-/* Data structure describing a shared memory segment. */
-struct shmid_ds
- {
- struct ipc_perm shm_perm; /* operation permission struct */
- size_t shm_segsz; /* size of segment in bytes */
- __time_t shm_atime; /* time of last shmat() */
-#ifndef __x86_64__
- unsigned long int __glibc_reserved1;
-#endif
- __time_t shm_dtime; /* time of last shmdt() */
-#ifndef __x86_64__
- unsigned long int __glibc_reserved2;
-#endif
- __time_t shm_ctime; /* time of last change by shmctl() */
-#ifndef __x86_64__
- unsigned long int __glibc_reserved3;
-#endif
- __pid_t shm_cpid; /* pid of creator */
- __pid_t shm_lpid; /* pid of last shmop */
- shmatt_t shm_nattch; /* number of current attaches */
- __syscall_ulong_t __glibc_reserved4;
- __syscall_ulong_t __glibc_reserved5;
- };
-
-#ifdef __USE_MISC
-
-/* ipcs ctl commands */
-# define SHM_STAT 13
-# define SHM_INFO 14
-# define SHM_STAT_ANY 15
-
-/* shm_mode upper byte flags */
-# define SHM_DEST 01000 /* segment will be destroyed on last detach */
-# define SHM_LOCKED 02000 /* segment will not be swapped */
-# define SHM_HUGETLB 04000 /* segment is mapped via hugetlb */
-# define SHM_NORESERVE 010000 /* don't check for reservations */
-
-struct shminfo
- {
- __syscall_ulong_t shmmax;
- __syscall_ulong_t shmmin;
- __syscall_ulong_t shmmni;
- __syscall_ulong_t shmseg;
- __syscall_ulong_t shmall;
- __syscall_ulong_t __glibc_reserved1;
- __syscall_ulong_t __glibc_reserved2;
- __syscall_ulong_t __glibc_reserved3;
- __syscall_ulong_t __glibc_reserved4;
- };
-
-struct shm_info
- {
- int used_ids;
- __syscall_ulong_t shm_tot; /* total allocated shm */
- __syscall_ulong_t shm_rss; /* total resident shm */
- __syscall_ulong_t shm_swp; /* total swapped shm */
- __syscall_ulong_t swap_attempts;
- __syscall_ulong_t swap_successes;
- };
-
-#endif /* __USE_MISC */
-
-__END_DECLS
diff --git a/sysdeps/unix/sysv/linux/x86/bits/sigcontext.h b/sysdeps/unix/sysv/linux/x86/bits/sigcontext.h
index 5f19c48817..f2010d8c5d 100644
--- a/sysdeps/unix/sysv/linux/x86/bits/sigcontext.h
+++ b/sysdeps/unix/sysv/linux/x86/bits/sigcontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_SIGCONTEXT_H
#define _BITS_SIGCONTEXT_H 1
@@ -26,7 +26,7 @@
#define FP_XSTATE_MAGIC1 0x46505853U
#define FP_XSTATE_MAGIC2 0x46505845U
-#define FP_XSTATE_MAGIC2_SIZE sizeof(FP_XSTATE_MAGIC2)
+#define FP_XSTATE_MAGIC2_SIZE sizeof (FP_XSTATE_MAGIC2)
struct _fpx_sw_bytes
{
diff --git a/sysdeps/unix/sysv/linux/x86/bits/stat.h b/sysdeps/unix/sysv/linux/x86/bits/stat.h
index 2ae248691d..cb8722f1dc 100644
--- a/sysdeps/unix/sysv/linux/x86/bits/stat.h
+++ b/sysdeps/unix/sysv/linux/x86/bits/stat.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if !defined _SYS_STAT_H && !defined _FCNTL_H
# error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
diff --git a/sysdeps/unix/sysv/linux/x86/bits/sysctl.h b/sysdeps/unix/sysv/linux/x86/bits/sysctl.h
index 8d76ed89db..9559448177 100644
--- a/sysdeps/unix/sysv/linux/x86/bits/sysctl.h
+++ b/sysdeps/unix/sysv/linux/x86/bits/sysctl.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if defined __x86_64__ && defined __ILP32__
# error "sysctl system call is unsupported in x32 kernel"
diff --git a/sysdeps/unix/sysv/linux/x86/bits/timesize.h b/sysdeps/unix/sysv/linux/x86/bits/timesize.h
new file mode 100644
index 0000000000..88ea5ba9de
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/x86/bits/timesize.h
@@ -0,0 +1,25 @@
+/* Bit size of the time_t type at glibc build time, x86-64 and x32 case.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#if defined __x86_64__ && defined __ILP32__
+/* For x32, time is 64-bit even though word size is 32-bit. */
+# define __TIMESIZE 64
+#else
+/* For others, time size is word size. */
+# define __TIMESIZE __WORDSIZE
+#endif
diff --git a/sysdeps/unix/sysv/linux/x86/bits/typesizes.h b/sysdeps/unix/sysv/linux/x86/bits/typesizes.h
index e6f7481a19..168990f9dd 100644
--- a/sysdeps/unix/sysv/linux/x86/bits/typesizes.h
+++ b/sysdeps/unix/sysv/linux/x86/bits/typesizes.h
@@ -1,5 +1,5 @@
/* bits/typesizes.h -- underlying types for *_t. Linux/x86-64 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_TYPES_H
# error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead."
@@ -84,8 +84,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/sysdeps/unix/sysv/linux/x86/cpu-features.c b/sysdeps/unix/sysv/linux/x86/cpu-features.c
index 8566a265b8..2c950a94d8 100644
--- a/sysdeps/unix/sysv/linux/x86/cpu-features.c
+++ b/sysdeps/unix/sysv/linux/x86/cpu-features.c
@@ -1,6 +1,6 @@
/* Initialize CPU feature data for Linux/x86.
This file is part of the GNU C Library.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-2019 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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if CET_ENABLED
# include <sys/prctl.h>
diff --git a/sysdeps/unix/sysv/linux/x86/dl-cet.h b/sysdeps/unix/sysv/linux/x86/dl-cet.h
index 3fbcfebed5..1783c8a6dd 100644
--- a/sysdeps/unix/sysv/linux/x86/dl-cet.h
+++ b/sysdeps/unix/sysv/linux/x86/dl-cet.h
@@ -1,5 +1,5 @@
/* Linux/x86 CET initializers function.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/prctl.h>
#include <asm/prctl.h>
diff --git a/sysdeps/unix/sysv/linux/x86/dl-sysdep.c b/sysdeps/unix/sysv/linux/x86/dl-sysdep.c
index f4478b1389..6ff366864b 100644
--- a/sysdeps/unix/sysv/linux/x86/dl-sysdep.c
+++ b/sysdeps/unix/sysv/linux/x86/dl-sysdep.c
@@ -1,5 +1,5 @@
/* Operating system support for run-time dynamic linker. X86 version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <config.h>
#include <sysdeps/x86/cpu-tunables.c>
diff --git a/sysdeps/unix/sysv/linux/x86/elision-conf.c b/sysdeps/unix/sysv/linux/x86/elision-conf.c
index 22af294426..32dcb291a7 100644
--- a/sysdeps/unix/sysv/linux/x86/elision-conf.c
+++ b/sysdeps/unix/sysv/linux/x86/elision-conf.c
@@ -1,5 +1,5 @@
/* elision-conf.c: Lock elision tunable parameters.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "config.h"
#include <pthreadP.h>
@@ -56,8 +56,7 @@ struct elision_config __elision_aconf =
int __pthread_force_elision attribute_hidden = 0;
#if HAVE_TUNABLES
-static inline void
-__always_inline
+static __always_inline void
do_set_elision_enable (int32_t elision_enable)
{
/* Enable elision if it's avaliable in hardware. It's not necessary to check
@@ -79,8 +78,7 @@ TUNABLE_CALLBACK (set_elision_enable) (tunable_val_t *valp)
}
#define TUNABLE_CALLBACK_FNDECL(__name, __type) \
-static inline void \
-__always_inline \
+static __always_inline void \
do_set_elision_ ## __name (__type value) \
{ \
__elision_aconf.__name = value; \
diff --git a/sysdeps/unix/sysv/linux/x86/elision-conf.h b/sysdeps/unix/sysv/linux/x86/elision-conf.h
index 0979d95086..8134f8149b 100644
--- a/sysdeps/unix/sysv/linux/x86/elision-conf.h
+++ b/sysdeps/unix/sysv/linux/x86/elision-conf.h
@@ -1,5 +1,5 @@
/* elision-conf.h: Lock elision tunable parameters.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _ELISION_CONF_H
#define _ELISION_CONF_H 1
diff --git a/sysdeps/unix/sysv/linux/x86/elision-lock.c b/sysdeps/unix/sysv/linux/x86/elision-lock.c
index c534131ab4..2fa9f5a2b5 100644
--- a/sysdeps/unix/sysv/linux/x86/elision-lock.c
+++ b/sysdeps/unix/sysv/linux/x86/elision-lock.c
@@ -1,5 +1,5 @@
/* elision-lock.c: Elided pthread mutex lock.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ 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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include "pthreadP.h"
diff --git a/sysdeps/unix/sysv/linux/x86/elision-timed.c b/sysdeps/unix/sysv/linux/x86/elision-timed.c
index f0be3ea6a5..6be9f74a31 100644
--- a/sysdeps/unix/sysv/linux/x86/elision-timed.c
+++ b/sysdeps/unix/sysv/linux/x86/elision-timed.c
@@ -1,5 +1,5 @@
/* elision-timed.c: Lock elision timed lock.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,13 +14,13 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <time.h>
#include <elision-conf.h>
#include "lowlevellock.h"
-#define __lll_lock_elision __lll_timedlock_elision
-#define EXTRAARG const struct timespec *t,
+#define __lll_lock_elision __lll_clocklock_elision
+#define EXTRAARG clockid_t clockid, const struct timespec *t,
#undef LLL_LOCK
-#define LLL_LOCK(a, b) lll_timedlock(a, t, b)
+#define LLL_LOCK(a, b) lll_clocklock (a, clockid, t, b)
#include "elision-lock.c"
diff --git a/sysdeps/unix/sysv/linux/x86/elision-trylock.c b/sysdeps/unix/sysv/linux/x86/elision-trylock.c
index 7c55fb878e..0e11df55da 100644
--- a/sysdeps/unix/sysv/linux/x86/elision-trylock.c
+++ b/sysdeps/unix/sysv/linux/x86/elision-trylock.c
@@ -1,5 +1,5 @@
/* elision-trylock.c: Lock eliding trylock for pthreads.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread.h>
#include <pthreadP.h>
diff --git a/sysdeps/unix/sysv/linux/x86/elision-unlock.c b/sysdeps/unix/sysv/linux/x86/elision-unlock.c
index bdf6386bd6..1a5e1f8de8 100644
--- a/sysdeps/unix/sysv/linux/x86/elision-unlock.c
+++ b/sysdeps/unix/sysv/linux/x86/elision-unlock.c
@@ -1,5 +1,5 @@
/* elision-unlock.c: Commit an elided pthread lock.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "pthreadP.h"
#include "lowlevellock.h"
diff --git a/sysdeps/unix/sysv/linux/x86/force-elision.h b/sysdeps/unix/sysv/linux/x86/force-elision.h
index dd659c908f..0a459e2468 100644
--- a/sysdeps/unix/sysv/linux/x86/force-elision.h
+++ b/sysdeps/unix/sysv/linux/x86/force-elision.h
@@ -1,5 +1,5 @@
/* force-elision.h: Automatic enabling of elision for mutexes
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,13 +14,49 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Automatically enable elision for existing user lock kinds. */
#define FORCE_ELISION(m, s) \
- if (__pthread_force_elision \
- && (m->__data.__kind & PTHREAD_MUTEX_ELISION_FLAGS_NP) == 0) \
+ if (__pthread_force_elision) \
{ \
- mutex->__data.__kind |= PTHREAD_MUTEX_ELISION_NP; \
- s; \
+ /* See concurrency notes regarding __kind in \
+ struct __pthread_mutex_s in \
+ sysdeps/nptl/bits/thread-shared-types.h. \
+ \
+ There are the following cases for the kind of a mutex \
+ (The mask PTHREAD_MUTEX_ELISION_FLAGS_NP covers the flags \
+ PTHREAD_MUTEX_ELISION_NP and PTHREAD_MUTEX_NO_ELISION_NP where \
+ only one of both flags can be set): \
+ - both flags are not set: \
+ This is the first lock operation for this mutex. Enable \
+ elision as it is not enabled so far. \
+ Note: It can happen that multiple threads are calling e.g. \
+ pthread_mutex_lock at the same time as the first lock \
+ operation for this mutex. Then elision is enabled for this \
+ mutex by multiple threads. Storing with relaxed MO is enough \
+ as all threads will store the same new value for the kind of \
+ the mutex. But we have to ensure that we always use the \
+ elision path regardless if this thread has enabled elision or \
+ another one. \
+ \
+ - PTHREAD_MUTEX_ELISION_NP flag is set: \
+ Elision was already enabled for this mutex by a previous lock \
+ operation. See case above. Just use the elision path. \
+ \
+ - PTHREAD_MUTEX_NO_ELISION_NP flag is set: \
+ Elision was explicitly disabled by pthread_mutexattr_settype. \
+ Do not use the elision path. \
+ Note: The flag PTHREAD_MUTEX_NO_ELISION_NP will never be \
+ changed after mutex initialization. */ \
+ int mutex_kind = atomic_load_relaxed (&((m)->__data.__kind)); \
+ if ((mutex_kind & PTHREAD_MUTEX_ELISION_FLAGS_NP) == 0) \
+ { \
+ mutex_kind |= PTHREAD_MUTEX_ELISION_NP; \
+ atomic_store_relaxed (&((m)->__data.__kind), mutex_kind); \
+ } \
+ if ((mutex_kind & PTHREAD_MUTEX_ELISION_NP) != 0) \
+ { \
+ s; \
+ } \
}
diff --git a/sysdeps/unix/sysv/linux/x86/gettimeofday.c b/sysdeps/unix/sysv/linux/x86/gettimeofday.c
index e125859c1a..190127d31e 100644
--- a/sysdeps/unix/sysv/linux/x86/gettimeofday.c
+++ b/sysdeps/unix/sysv/linux/x86/gettimeofday.c
@@ -1,5 +1,5 @@
/* gettimeofday - get the time. Linux/x86 version.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,48 +14,40 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#include <sys/time.h>
+#include <time.h>
+#include <sysdep.h>
-#ifdef SHARED
-
-# include <dl-vdso.h>
-# include <errno.h>
+#ifdef HAVE_GETTIMEOFDAY_VSYSCALL
+# define HAVE_VSYSCALL
+#endif
+#include <sysdep-vdso.h>
static int
-__gettimeofday_syscall (struct timeval *tv, struct timezone *tz)
+__gettimeofday_syscall (struct timeval *restrict tv, void *restrict tz)
{
- return INLINE_SYSCALL (gettimeofday, 2, tv, tz);
+ if (__glibc_unlikely (tz != 0))
+ memset (tz, 0, sizeof *tz);
+
+ return INLINE_VSYSCALL (gettimeofday, 2, tv, tz);
}
-# ifndef __gettimeofday_type
-/* The i386 gettimeofday.c includes this file with a defined
- __gettimeofday_type macro. For x86_64 we have to define it to __gettimeofday
- as the internal symbol is the ifunc'ed one. */
-# define __gettimeofday_type __gettimeofday
-# endif
+#ifdef SHARED
+# include <dl-vdso.h>
+# include <libc-vdso.h>
-# undef INIT_ARCH
-# define INIT_ARCH() PREPARE_VERSION_KNOWN (linux26, LINUX_2_6)
+# define INIT_ARCH()
/* If the vDSO is not available we fall back to syscall. */
-libc_ifunc_hidden (__gettimeofday_type, __gettimeofday,
- (_dl_vdso_vsym ("__vdso_gettimeofday", &linux26)
- ?: &__gettimeofday_syscall))
-libc_hidden_def (__gettimeofday)
+libc_ifunc (__gettimeofday,
+ (get_vdso_symbol (HAVE_GETTIMEOFDAY_VSYSCALL)
+ ?: __gettimeofday_syscall));
#else
-
-# include <sysdep.h>
-# include <errno.h>
-
int
-__gettimeofday (struct timeval *tv, struct timezone *tz)
+__gettimeofday (struct timeval *restrict tv, void *restrict tz)
{
- return INLINE_SYSCALL (gettimeofday, 2, tv, tz);
+ return __gettimeofday_syscall (tv, tz);
}
-libc_hidden_def (__gettimeofday)
-
#endif
weak_alias (__gettimeofday, gettimeofday)
-libc_hidden_weak (gettimeofday)
diff --git a/sysdeps/unix/sysv/linux/x86/hle.h b/sysdeps/unix/sysv/linux/x86/hle.h
index 4a7b9e3bf7..0449026839 100644
--- a/sysdeps/unix/sysv/linux/x86/hle.h
+++ b/sysdeps/unix/sysv/linux/x86/hle.h
@@ -1,75 +1,11 @@
-/* Shared RTM header. Emulate TSX intrinsics for compilers and assemblers
- that do not support the intrinsics and instructions yet. */
+/* Shared RTM header. */
#ifndef _HLE_H
#define _HLE_H 1
-#ifdef __ASSEMBLER__
+#include <x86intrin.h>
-.macro XBEGIN target
- .byte 0xc7,0xf8
- .long \target-1f
-1:
-.endm
-
-.macro XEND
- .byte 0x0f,0x01,0xd5
-.endm
-
-.macro XABORT code
- .byte 0xc6,0xf8,\code
-.endm
-
-.macro XTEST
- .byte 0x0f,0x01,0xd6
-.endm
-
-#endif
-
-/* Official RTM intrinsics interface matching gcc/icc, but works
- on older gcc compatible compilers and binutils.
- We should somehow detect if the compiler supports it, because
- it may be able to generate slightly better code. */
-
-#define _XBEGIN_STARTED (~0u)
-#define _XABORT_EXPLICIT (1 << 0)
-#define _XABORT_RETRY (1 << 1)
-#define _XABORT_CONFLICT (1 << 2)
-#define _XABORT_CAPACITY (1 << 3)
-#define _XABORT_DEBUG (1 << 4)
-#define _XABORT_NESTED (1 << 5)
-#define _XABORT_CODE(x) (((x) >> 24) & 0xff)
-
-#define _ABORT_LOCK_BUSY 0xff
+#define _ABORT_LOCK_BUSY 0xff
#define _ABORT_LOCK_IS_LOCKED 0xfe
#define _ABORT_NESTED_TRYLOCK 0xfd
-#ifndef __ASSEMBLER__
-
-#define __force_inline __attribute__((__always_inline__)) inline
-
-static __force_inline int _xbegin(void)
-{
- int ret = _XBEGIN_STARTED;
- asm volatile (".byte 0xc7,0xf8 ; .long 0" : "+a" (ret) :: "memory");
- return ret;
-}
-
-static __force_inline void _xend(void)
-{
- asm volatile (".byte 0x0f,0x01,0xd5" ::: "memory");
-}
-
-static __force_inline void _xabort(const unsigned int status)
-{
- asm volatile (".byte 0xc6,0xf8,%P0" :: "i" (status) : "memory");
-}
-
-static __force_inline int _xtest(void)
-{
- unsigned char out;
- asm volatile (".byte 0x0f,0x01,0xd6 ; setnz %0" : "=r" (out) :: "memory");
- return out;
-}
-
-#endif
#endif
diff --git a/sysdeps/unix/sysv/linux/x86/libc-vdso.h b/sysdeps/unix/sysv/linux/x86/libc-vdso.h
deleted file mode 100644
index 6f86073dae..0000000000
--- a/sysdeps/unix/sysv/linux/x86/libc-vdso.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Resolve function pointers to VDSO functions.
- Copyright (C) 2005-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _LIBC_VDSO_H
-#define _LIBC_VDSO_H
-
-#include <time.h>
-#include <sys/time.h>
-
-#ifdef SHARED
-
-# include <sysdep-vdso.h>
-
-extern long int (*VDSO_SYMBOL(clock_gettime)) (clockid_t, struct timespec *)
- attribute_hidden;
-
-extern long int (*VDSO_SYMBOL(getcpu)) (unsigned *, unsigned *, void *)
- attribute_hidden;
-
-#endif
-
-#endif /* _LIBC_VDSO_H */
diff --git a/sysdeps/unix/sysv/linux/x86/lowlevellock.h b/sysdeps/unix/sysv/linux/x86/lowlevellock.h
new file mode 100644
index 0000000000..727f959948
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/x86/lowlevellock.h
@@ -0,0 +1,111 @@
+/* Low-level lock implementation, x86 version.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _X86_64_LOWLEVELLOCK_H
+#define _X86_64_LOWLEVELLOCK_H 1
+
+#ifndef __ASSEMBLER__
+#include <sysdeps/nptl/lowlevellock.h>
+#include <single-thread.h>
+
+/* The lll_trylock, lll_lock, and lll_unlock implements a single-thread
+ optimization using the cmpxchgl instruction. It checks if the process
+ is single thread and avoid a more expensive atomic instruction. */
+
+/* The single-thread optimization only works for libc itself, we need
+ atomicity for libpthread in case of shared futexes. */
+#if !IS_IN(libc)
+# define is_single_thread 0
+#else
+# define is_single_thread SINGLE_THREAD_P
+#endif
+
+/* In the __lllc_as we simply return the value in %eax after the cmpxchg
+ instruction. In case the operation succeeded this value is zero. In case
+ the operation failed, the cmpxchg instruction has loaded the current value
+ of the memory work which is guaranteed to be nonzero. */
+static inline int
+__attribute__ ((always_inline))
+__lll_cas_lock (int *futex)
+{
+ int ret;
+ asm volatile ("cmpxchgl %2, %1"
+ : "=a" (ret), "=m" (*futex)
+ : "r" (1), "m" (*futex), "0" (0)
+ : "memory");
+ return ret;
+}
+
+#undef lll_trylock
+#define lll_trylock(lock) \
+ ({ \
+ int __ret; \
+ if (is_single_thread) \
+ __ret = __lll_cas_lock (&(lock)); \
+ else \
+ __ret = __lll_trylock (&(lock)); \
+ __ret; \
+ })
+
+#undef lll_lock
+#define lll_lock(lock, private) \
+ ((void) \
+ ({ \
+ if (is_single_thread) \
+ __lll_cas_lock (&(lock)); \
+ else \
+ __lll_lock (&(lock), private); \
+ }))
+
+#undef lll_unlock
+#define lll_unlock(lock, private) \
+ ((void) \
+ ({ \
+ if (is_single_thread) \
+ (lock)--; \
+ else \
+ __lll_unlock (&(lock), private); \
+ }))
+
+extern int __lll_clocklock_elision (int *futex, short *adapt_count,
+ clockid_t clockid,
+ const struct timespec *timeout,
+ int private) attribute_hidden;
+
+#define lll_clocklock_elision(futex, adapt_count, clockid, timeout, private) \
+ __lll_clocklock_elision (&(futex), &(adapt_count), clockid, timeout, private)
+
+extern int __lll_lock_elision (int *futex, short *adapt_count, int private)
+ attribute_hidden;
+
+extern int __lll_unlock_elision (int *lock, int private)
+ attribute_hidden;
+
+extern int __lll_trylock_elision (int *lock, short *adapt_count)
+ attribute_hidden;
+
+#define lll_lock_elision(futex, adapt_count, private) \
+ __lll_lock_elision (&(futex), &(adapt_count), private)
+#define lll_unlock_elision(futex, adapt_count, private) \
+ __lll_unlock_elision (&(futex), private)
+#define lll_trylock_elision(futex, adapt_count) \
+ __lll_trylock_elision (&(futex), &(adapt_count))
+
+#endif /* !__ASSEMBLER__ */
+
+#endif /* lowlevellock.h */
diff --git a/sysdeps/unix/sysv/linux/x86/pkey_get.c b/sysdeps/unix/sysv/linux/x86/pkey_get.c
index da05ba7f84..ad94f41af8 100644
--- a/sysdeps/unix/sysv/linux/x86/pkey_get.c
+++ b/sysdeps/unix/sysv/linux/x86/pkey_get.c
@@ -1,5 +1,5 @@
/* Reading the per-thread memory protection key, x86_64 version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <arch-pkey.h>
#include <errno.h>
diff --git a/sysdeps/unix/sysv/linux/x86/pkey_set.c b/sysdeps/unix/sysv/linux/x86/pkey_set.c
index ea061d6dd7..9e96082722 100644
--- a/sysdeps/unix/sysv/linux/x86/pkey_set.c
+++ b/sysdeps/unix/sysv/linux/x86/pkey_set.c
@@ -1,5 +1,5 @@
/* Changing the per-thread memory protection key, x86_64 version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <arch-pkey.h>
#include <errno.h>
diff --git a/sysdeps/unix/sysv/linux/x86/pthread_mutex_cond_lock.c b/sysdeps/unix/sysv/linux/x86/pthread_mutex_cond_lock.c
index 967d00748d..016098dc8e 100644
--- a/sysdeps/unix/sysv/linux/x86/pthread_mutex_cond_lock.c
+++ b/sysdeps/unix/sysv/linux/x86/pthread_mutex_cond_lock.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2013-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* The cond lock is not actually elided yet, but we still need to handle
already elided locks. */
diff --git a/sysdeps/unix/sysv/linux/x86/pthread_mutex_lock.c b/sysdeps/unix/sysv/linux/x86/pthread_mutex_lock.c
index c23678f922..a16bd15c23 100644
--- a/sysdeps/unix/sysv/linux/x86/pthread_mutex_lock.c
+++ b/sysdeps/unix/sysv/linux/x86/pthread_mutex_lock.c
@@ -1,5 +1,5 @@
/* Elided version of pthread_mutex_lock.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ 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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <elision-conf.h>
#include "force-elision.h"
diff --git a/sysdeps/unix/sysv/linux/x86/pthread_mutex_timedlock.c b/sysdeps/unix/sysv/linux/x86/pthread_mutex_timedlock.c
index 7997580178..46202e8192 100644
--- a/sysdeps/unix/sysv/linux/x86/pthread_mutex_timedlock.c
+++ b/sysdeps/unix/sysv/linux/x86/pthread_mutex_timedlock.c
@@ -1,5 +1,5 @@
/* Elided version of pthread_mutex_timedlock.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ 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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <elision-conf.h>
#include "force-elision.h"
diff --git a/sysdeps/unix/sysv/linux/x86/pthread_mutex_trylock.c b/sysdeps/unix/sysv/linux/x86/pthread_mutex_trylock.c
index 03db974095..b67753681e 100644
--- a/sysdeps/unix/sysv/linux/x86/pthread_mutex_trylock.c
+++ b/sysdeps/unix/sysv/linux/x86/pthread_mutex_trylock.c
@@ -1,5 +1,5 @@
/* Elided version of pthread_mutex_trylock.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ 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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <elision-conf.h>
#include "force-elision.h"
diff --git a/sysdeps/unix/sysv/linux/x86/setjmpP.h b/sysdeps/unix/sysv/linux/x86/setjmpP.h
index 6b2608453d..3fe98f5186 100644
--- a/sysdeps/unix/sysv/linux/x86/setjmpP.h
+++ b/sysdeps/unix/sysv/linux/x86/setjmpP.h
@@ -1,5 +1,5 @@
/* Internal header file for <setjmp.h>. Linux/x86 version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SETJMPP_H
#define _SETJMPP_H 1
diff --git a/sysdeps/unix/sysv/linux/x86/sys/debugreg.h b/sysdeps/unix/sysv/linux/x86/sys/debugreg.h
index b8bbb31117..32bde37e85 100644
--- a/sysdeps/unix/sysv/linux/x86/sys/debugreg.h
+++ b/sysdeps/unix/sysv/linux/x86/sys/debugreg.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_DEBUGREG_H
#define _SYS_DEBUGREG_H 1
diff --git a/sysdeps/unix/sysv/linux/x86/sys/elf.h b/sysdeps/unix/sysv/linux/x86/sys/elf.h
index 2e5b2489f9..a2f6b5f005 100644
--- a/sysdeps/unix/sysv/linux/x86/sys/elf.h
+++ b/sysdeps/unix/sysv/linux/x86/sys/elf.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_ELF_H
#define _SYS_ELF_H 1
diff --git a/sysdeps/unix/sysv/linux/x86/sys/io.h b/sysdeps/unix/sysv/linux/x86/sys/io.h
index 34bfea53a1..f13bba615a 100644
--- a/sysdeps/unix/sysv/linux/x86/sys/io.h
+++ b/sysdeps/unix/sysv/linux/x86/sys/io.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_IO_H
#define _SYS_IO_H 1
diff --git a/sysdeps/unix/sysv/linux/x86/sys/perm.h b/sysdeps/unix/sysv/linux/x86/sys/perm.h
index d9a241775d..e7e3aba1d0 100644
--- a/sysdeps/unix/sysv/linux/x86/sys/perm.h
+++ b/sysdeps/unix/sysv/linux/x86/sys/perm.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_PERM_H
diff --git a/sysdeps/unix/sysv/linux/x86/sys/procfs.h b/sysdeps/unix/sysv/linux/x86/sys/procfs.h
deleted file mode 100644
index 9203963afe..0000000000
--- a/sysdeps/unix/sysv/linux/x86/sys/procfs.h
+++ /dev/null
@@ -1,145 +0,0 @@
-/* Copyright (C) 2001-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_PROCFS_H
-#define _SYS_PROCFS_H 1
-
-/* This is somewhat modelled after the file of the same name on SVR4
- systems. It provides a definition of the core file format for ELF
- used on Linux. It doesn't have anything to do with the /proc file
- system, even though Linux has one.
-
- Anyway, the whole purpose of this file is for GDB and GDB only.
- Don't read too much into it. Don't use it for anything other than
- GDB unless you know what you are doing. */
-
-#include <features.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#include <sys/user.h>
-
-__BEGIN_DECLS
-
-/* Type for a general-purpose register. */
-#ifdef __x86_64__
-__extension__ typedef unsigned long long elf_greg_t;
-#else
-typedef unsigned long elf_greg_t;
-#endif
-
-/* And the whole bunch of them. We could have used `struct
- user_regs_struct' directly in the typedef, but tradition says that
- the register set is an array, which does have some peculiar
- semantics, so leave it that way. */
-#define ELF_NGREG (sizeof (struct user_regs_struct) / sizeof(elf_greg_t))
-typedef elf_greg_t elf_gregset_t[ELF_NGREG];
-
-#ifndef __x86_64__
-/* Register set for the floating-point registers. */
-typedef struct user_fpregs_struct elf_fpregset_t;
-
-/* Register set for the extended floating-point registers. Includes
- the Pentium III SSE registers in addition to the classic
- floating-point stuff. */
-typedef struct user_fpxregs_struct elf_fpxregset_t;
-#else
-/* Register set for the extended floating-point registers. Includes
- the Pentium III SSE registers in addition to the classic
- floating-point stuff. */
-typedef struct user_fpregs_struct elf_fpregset_t;
-#endif
-
-/* Signal info. */
-struct elf_siginfo
- {
- int si_signo; /* Signal number. */
- int si_code; /* Extra code. */
- int si_errno; /* Errno. */
- };
-
-
-/* Definitions to generate Intel SVR4-like core files. These mostly
- have the same names as the SVR4 types with "elf_" tacked on the
- front to prevent clashes with Linux definitions, and the typedef
- forms have been avoided. This is mostly like the SVR4 structure,
- but more Linuxy, with things that Linux does not support and which
- GDB doesn't really use excluded. */
-
-struct elf_prstatus
- {
- struct elf_siginfo pr_info; /* Info associated with signal. */
- short int pr_cursig; /* Current signal. */
- unsigned long int pr_sigpend; /* Set of pending signals. */
- unsigned long int pr_sighold; /* Set of held signals. */
- __pid_t pr_pid;
- __pid_t pr_ppid;
- __pid_t pr_pgrp;
- __pid_t pr_sid;
- struct timeval pr_utime; /* User time. */
- struct timeval pr_stime; /* System time. */
- struct timeval pr_cutime; /* Cumulative user time. */
- struct timeval pr_cstime; /* Cumulative system time. */
- elf_gregset_t pr_reg; /* GP registers. */
- int pr_fpvalid; /* True if math copro being used. */
- };
-
-
-#define ELF_PRARGSZ (80) /* Number of chars for args. */
-
-struct elf_prpsinfo
- {
- char pr_state; /* Numeric process state. */
- char pr_sname; /* Char for pr_state. */
- char pr_zomb; /* Zombie. */
- char pr_nice; /* Nice val. */
- unsigned long int pr_flag; /* Flags. */
-#if __WORDSIZE == 32
- unsigned short int pr_uid;
- unsigned short int pr_gid;
-#else
- unsigned int pr_uid;
- unsigned int pr_gid;
-#endif
- int pr_pid, pr_ppid, pr_pgrp, pr_sid;
- /* Lots missing */
- char pr_fname[16]; /* Filename of executable. */
- char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
- };
-
-
-/* The rest of this file provides the types for emulation of the
- Solaris <proc_service.h> interfaces that should be implemented by
- users of libthread_db. */
-
-/* Addresses. */
-typedef void *psaddr_t;
-
-/* Register sets. Linux has different names. */
-typedef elf_gregset_t prgregset_t;
-typedef elf_fpregset_t prfpregset_t;
-
-/* We don't have any differences between processes and threads,
- therefore have only one PID type. */
-typedef __pid_t lwpid_t;
-
-/* Process status and info. In the end we do provide typedefs for them. */
-typedef struct elf_prstatus prstatus_t;
-typedef struct elf_prpsinfo prpsinfo_t;
-
-__END_DECLS
-
-#endif /* sys/procfs.h */
diff --git a/sysdeps/unix/sysv/linux/x86/sys/ptrace.h b/sysdeps/unix/sysv/linux/x86/sys/ptrace.h
index 6d4605b6ed..9f21385fa0 100644
--- a/sysdeps/unix/sysv/linux/x86/sys/ptrace.h
+++ b/sysdeps/unix/sysv/linux/x86/sys/ptrace.h
@@ -1,5 +1,5 @@
/* `ptrace' debugger support interface. Linux/x86 version.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_PTRACE_H
#define _SYS_PTRACE_H 1
@@ -186,8 +186,12 @@ enum __ptrace_request
#define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER
/* Get seccomp BPF filter metadata. */
- PTRACE_SECCOMP_GET_METADATA = 0x420d
+ PTRACE_SECCOMP_GET_METADATA = 0x420d,
#define PTRACE_SECCOMP_GET_METADATA PTRACE_SECCOMP_GET_METADATA
+
+ /* Get information about system call. */
+ PTRACE_GET_SYSCALL_INFO = 0x420e
+#define PTRACE_GET_SYSCALL_INFO PTRACE_GET_SYSCALL_INFO
};
diff --git a/sysdeps/unix/sysv/linux/x86/sys/reg.h b/sysdeps/unix/sysv/linux/x86/sys/reg.h
index 0a543b502e..dac034aa90 100644
--- a/sysdeps/unix/sysv/linux/x86/sys/reg.h
+++ b/sysdeps/unix/sysv/linux/x86/sys/reg.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_REG_H
#define _SYS_REG_H 1
diff --git a/sysdeps/unix/sysv/linux/x86/sys/ucontext.h b/sysdeps/unix/sysv/linux/x86/sys/ucontext.h
index 7367726a50..8cd1892fd2 100644
--- a/sysdeps/unix/sysv/linux/x86/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/x86/sys/ucontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_UCONTEXT_H
#define _SYS_UCONTEXT_H 1
diff --git a/sysdeps/unix/sysv/linux/x86/sys/user.h b/sysdeps/unix/sysv/linux/x86/sys/user.h
index 03c80fbb20..666be12a4d 100644
--- a/sysdeps/unix/sysv/linux/x86/sys/user.h
+++ b/sysdeps/unix/sysv/linux/x86/sys/user.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_USER_H
#define _SYS_USER_H 1
diff --git a/sysdeps/unix/sysv/linux/x86/sys/vm86.h b/sysdeps/unix/sysv/linux/x86/sys/vm86.h
index 3919812dfa..3426266e41 100644
--- a/sysdeps/unix/sysv/linux/x86/sys/vm86.h
+++ b/sysdeps/unix/sysv/linux/x86/sys/vm86.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_VM86_H
diff --git a/sysdeps/unix/sysv/linux/x86/sysconf.c b/sysdeps/unix/sysv/linux/x86/sysconf.c
index 199b3c4178..6841166366 100644
--- a/sysdeps/unix/sysv/linux/x86/sysconf.c
+++ b/sysdeps/unix/sysv/linux/x86/sysconf.c
@@ -1,5 +1,5 @@
/* Get file-specific information about a file. Linux version.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <stdbool.h>
diff --git a/sysdeps/unix/sysv/linux/x86/time.c b/sysdeps/unix/sysv/linux/x86/time.c
index d19cccd6f6..4a03c46d21 100644
--- a/sysdeps/unix/sysv/linux/x86/time.c
+++ b/sysdeps/unix/sysv/linux/x86/time.c
@@ -1,5 +1,5 @@
/* time -- Get number of seconds since Epoch. Linux/x86 version.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,46 +14,34 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <time.h>
+#include <sysdep.h>
-#ifdef SHARED
-
-#include <dl-vdso.h>
-#include <errno.h>
+#ifdef HAVE_TIME_VSYSCALL
+# define HAVE_VSYSCALL
+#endif
+#include <sysdep-vdso.h>
static time_t
-__time_syscall (time_t *t)
+time_vsyscall (time_t *t)
{
- INTERNAL_SYSCALL_DECL (err);
- return INTERNAL_SYSCALL (time, err, 1, t);
+ return INLINE_VSYSCALL (time, 1, t);
}
-# ifndef time_type
-/* The i386 time.c includes this file with a defined time_type macro.
- For x86_64 we have to define it to time as the internal symbol is the
- ifunc'ed one. */
-# define time_type time
-# endif
+#ifdef SHARED
+# include <dl-vdso.h>
+# include <libc-vdso.h>
#undef INIT_ARCH
-#define INIT_ARCH() PREPARE_VERSION_KNOWN (linux26, LINUX_2_6);
+#define INIT_ARCH()
/* If the vDSO is not available we fall back on the syscall. */
-libc_ifunc_hidden (time_type, time,
- (_dl_vdso_vsym ("__vdso_time", &linux26)
- ?: &__time_syscall))
-libc_hidden_def (time)
-
+libc_ifunc (time, (get_vdso_symbol ("__vdso_time") ?: time_vsyscall))
#else
-
-# include <sysdep.h>
-
time_t
time (time_t *t)
{
- INTERNAL_SYSCALL_DECL (err);
- return INTERNAL_SYSCALL (time, err, 1, t);
+ return time_vsyscall (t);
}
-
#endif
diff --git a/sysdeps/unix/sysv/linux/x86/tst-cet-property-1.c b/sysdeps/unix/sysv/linux/x86/tst-cet-property-1.c
index 21130faefc..03d0d69f75 100644
--- a/sysdeps/unix/sysv/linux/x86/tst-cet-property-1.c
+++ b/sysdeps/unix/sysv/linux/x86/tst-cet-property-1.c
@@ -1,5 +1,5 @@
/* Test CET property note parser.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <elf.h>
diff --git a/sysdeps/unix/sysv/linux/x86/tst-cet-property-2.c b/sysdeps/unix/sysv/linux/x86/tst-cet-property-2.c
index 0531074ceb..33e7a8f076 100644
--- a/sysdeps/unix/sysv/linux/x86/tst-cet-property-2.c
+++ b/sysdeps/unix/sysv/linux/x86/tst-cet-property-2.c
@@ -1,5 +1,5 @@
/* Test CET property note parser for [BZ #23467].
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include <stdio.h>
@@ -44,9 +44,9 @@ sig_handler (int signo)
static int
do_test (void)
{
- char buf[20];
+ char buf[4];
- if (scanf ("%20s", buf) != 1)
+ if (scanf ("%3s", buf) != 1)
FAIL_UNSUPPORTED ("IBT not supported");
if (strcmp (buf, "IBT") != 0)
diff --git a/sysdeps/unix/sysv/linux/x86/tst-cet-property-dep-2.S b/sysdeps/unix/sysv/linux/x86/tst-cet-property-dep-2.S
index 5f5cad34d9..6cab8f4f5e 100644
--- a/sysdeps/unix/sysv/linux/x86/tst-cet-property-dep-2.S
+++ b/sysdeps/unix/sysv/linux/x86/tst-cet-property-dep-2.S
@@ -1,5 +1,5 @@
/* Test CET property note parser.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <cet.h>
diff --git a/sysdeps/unix/sysv/linux/x86/tst-cet-setcontext-1.c b/sysdeps/unix/sysv/linux/x86/tst-cet-setcontext-1.c
index ecf86a9e16..130095c742 100644
--- a/sysdeps/unix/sysv/linux/x86/tst-cet-setcontext-1.c
+++ b/sysdeps/unix/sysv/linux/x86/tst-cet-setcontext-1.c
@@ -1,6 +1,6 @@
/* Check getcontext and setcontext on the context from makecontext
with shadow stack.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdint.h>
diff --git a/sysdeps/unix/sysv/linux/x86/tst-saved_mask-1.c b/sysdeps/unix/sysv/linux/x86/tst-saved_mask-1.c
index 56e680527c..66cbc911d5 100644
--- a/sysdeps/unix/sysv/linux/x86/tst-saved_mask-1.c
+++ b/sysdeps/unix/sysv/linux/x86/tst-saved_mask-1.c
@@ -1,5 +1,5 @@
/* Test that sigprocmask does not read from the unused part of jmpbuf.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include <signal.h>
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/dl-librecon.h b/sysdeps/unix/sysv/linux/x86_64/64/dl-librecon.h
index 194369174d..e3af239faa 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/dl-librecon.h
+++ b/sysdeps/unix/sysv/linux/x86_64/64/dl-librecon.h
@@ -1,5 +1,5 @@
/* Optional code to distinguish library flavours. x86-64 version.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DL_LIBRECON_H
@@ -31,7 +31,8 @@
environment variable, LD_PREFER_MAP_32BIT_EXEC. */
#define EXTRA_LD_ENVVARS \
case 21: \
- if (memcmp (envline, "PREFER_MAP_32BIT_EXEC", 21) == 0) \
+ if (!__libc_enable_secure \
+ && memcmp (envline, "PREFER_MAP_32BIT_EXEC", 21) == 0) \
GLRO(dl_x86_cpu_features).feature[index_arch_Prefer_MAP_32BIT_EXEC] \
|= bit_arch_Prefer_MAP_32BIT_EXEC; \
break;
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 816e4a7426..1f2dbd1451 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -621,6 +621,11 @@ GLIBC_2.2.5 clntudp_bufcreate F
GLIBC_2.2.5 clntudp_create F
GLIBC_2.2.5 clntunix_create F
GLIBC_2.2.5 clock F
+GLIBC_2.2.5 clock_getcpuclockid F
+GLIBC_2.2.5 clock_getres F
+GLIBC_2.2.5 clock_gettime F
+GLIBC_2.2.5 clock_nanosleep F
+GLIBC_2.2.5 clock_settime F
GLIBC_2.2.5 clone F
GLIBC_2.2.5 close F
GLIBC_2.2.5 closedir F
@@ -1895,6 +1900,9 @@ GLIBC_2.28 thrd_current F
GLIBC_2.28 thrd_equal F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
+GLIBC_2.29 getcpu F
+GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
+GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
GLIBC_2.3 __ctype_b_loc F
GLIBC_2.3 __ctype_tolower_loc F
GLIBC_2.3 __ctype_toupper_loc F
@@ -2047,6 +2055,10 @@ GLIBC_2.3.4 setipv4sourcefilter F
GLIBC_2.3.4 setsourcefilter F
GLIBC_2.3.4 xdr_quad_t F
GLIBC_2.3.4 xdr_u_quad_t F
+GLIBC_2.30 getdents64 F
+GLIBC_2.30 gettid F
+GLIBC_2.30 tgkill F
+GLIBC_2.30 twalk_r F
GLIBC_2.4 __confstr_chk F
GLIBC_2.4 __fgets_chk F
GLIBC_2.4 __fgets_unlocked_chk F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
index 4a442c3989..d620e465d2 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
@@ -1066,3 +1066,24 @@ GLIBC_2.28 fmul F
GLIBC_2.28 fmull F
GLIBC_2.28 fsub F
GLIBC_2.28 fsubl F
+GLIBC_2.29 exp F
+GLIBC_2.29 exp2 F
+GLIBC_2.29 log F
+GLIBC_2.29 log2 F
+GLIBC_2.29 pow F
+GLIBC_2.31 totalorder F
+GLIBC_2.31 totalorderf F
+GLIBC_2.31 totalorderf128 F
+GLIBC_2.31 totalorderf32 F
+GLIBC_2.31 totalorderf32x F
+GLIBC_2.31 totalorderf64 F
+GLIBC_2.31 totalorderf64x F
+GLIBC_2.31 totalorderl F
+GLIBC_2.31 totalordermag F
+GLIBC_2.31 totalordermagf F
+GLIBC_2.31 totalordermagf128 F
+GLIBC_2.31 totalordermagf32 F
+GLIBC_2.31 totalordermagf32x F
+GLIBC_2.31 totalordermagf64 F
+GLIBC_2.31 totalordermagf64x F
+GLIBC_2.31 totalordermagl F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
index 931c8277a8..a46fcc6f6e 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
@@ -46,7 +46,6 @@ GLIBC_2.2.5 __read F
GLIBC_2.2.5 __res_state F
GLIBC_2.2.5 __send F
GLIBC_2.2.5 __sigaction F
-GLIBC_2.2.5 __vfork F
GLIBC_2.2.5 __wait F
GLIBC_2.2.5 __write F
GLIBC_2.2.5 _pthread_cleanup_pop F
@@ -66,28 +65,19 @@ GLIBC_2.2.5 longjmp F
GLIBC_2.2.5 lseek F
GLIBC_2.2.5 lseek64 F
GLIBC_2.2.5 msync F
-GLIBC_2.2.5 nanosleep F
GLIBC_2.2.5 open F
GLIBC_2.2.5 open64 F
GLIBC_2.2.5 pause F
GLIBC_2.2.5 pread F
GLIBC_2.2.5 pread64 F
GLIBC_2.2.5 pthread_atfork F
-GLIBC_2.2.5 pthread_attr_destroy F
-GLIBC_2.2.5 pthread_attr_getdetachstate F
GLIBC_2.2.5 pthread_attr_getguardsize F
-GLIBC_2.2.5 pthread_attr_getinheritsched F
-GLIBC_2.2.5 pthread_attr_getschedparam F
GLIBC_2.2.5 pthread_attr_getschedpolicy F
GLIBC_2.2.5 pthread_attr_getscope F
GLIBC_2.2.5 pthread_attr_getstack F
GLIBC_2.2.5 pthread_attr_getstackaddr F
GLIBC_2.2.5 pthread_attr_getstacksize F
-GLIBC_2.2.5 pthread_attr_init F
-GLIBC_2.2.5 pthread_attr_setdetachstate F
GLIBC_2.2.5 pthread_attr_setguardsize F
-GLIBC_2.2.5 pthread_attr_setinheritsched F
-GLIBC_2.2.5 pthread_attr_setschedparam F
GLIBC_2.2.5 pthread_attr_setschedpolicy F
GLIBC_2.2.5 pthread_attr_setscope F
GLIBC_2.2.5 pthread_attr_setstack F
@@ -112,7 +102,6 @@ GLIBC_2.2.5 pthread_condattr_init F
GLIBC_2.2.5 pthread_condattr_setpshared F
GLIBC_2.2.5 pthread_create F
GLIBC_2.2.5 pthread_detach F
-GLIBC_2.2.5 pthread_equal F
GLIBC_2.2.5 pthread_exit F
GLIBC_2.2.5 pthread_getattr_np F
GLIBC_2.2.5 pthread_getconcurrency F
@@ -154,7 +143,6 @@ GLIBC_2.2.5 pthread_rwlockattr_getpshared F
GLIBC_2.2.5 pthread_rwlockattr_init F
GLIBC_2.2.5 pthread_rwlockattr_setkind_np F
GLIBC_2.2.5 pthread_rwlockattr_setpshared F
-GLIBC_2.2.5 pthread_self F
GLIBC_2.2.5 pthread_setcancelstate F
GLIBC_2.2.5 pthread_setcanceltype F
GLIBC_2.2.5 pthread_setconcurrency F
@@ -193,11 +181,10 @@ GLIBC_2.2.5 siglongjmp F
GLIBC_2.2.5 sigwait F
GLIBC_2.2.5 system F
GLIBC_2.2.5 tcdrain F
-GLIBC_2.2.5 vfork F
GLIBC_2.2.5 wait F
GLIBC_2.2.5 waitpid F
GLIBC_2.2.5 write F
-GLIBC_2.2.6 __nanosleep F
+GLIBC_2.2.6 __libpthread_version_placeholder F
GLIBC_2.28 call_once F
GLIBC_2.28 cnd_broadcast F
GLIBC_2.28 cnd_destroy F
@@ -245,6 +232,12 @@ GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
GLIBC_2.3.4 pthread_setaffinity_np F
GLIBC_2.3.4 pthread_setschedprio F
+GLIBC_2.30 pthread_cond_clockwait F
+GLIBC_2.30 pthread_mutex_clocklock F
+GLIBC_2.30 pthread_rwlock_clockrdlock F
+GLIBC_2.30 pthread_rwlock_clockwrlock F
+GLIBC_2.30 sem_clockwait F
+GLIBC_2.31 pthread_clockjoin_np F
GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 pthread_mutex_getprioceiling F
GLIBC_2.4 pthread_mutex_setprioceiling F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
index e2e8b60bf8..95e3f22daa 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
@@ -13,11 +13,6 @@ GLIBC_2.2.5 aio_suspend F
GLIBC_2.2.5 aio_suspend64 F
GLIBC_2.2.5 aio_write F
GLIBC_2.2.5 aio_write64 F
-GLIBC_2.2.5 clock_getcpuclockid F
-GLIBC_2.2.5 clock_getres F
-GLIBC_2.2.5 clock_gettime F
-GLIBC_2.2.5 clock_nanosleep F
-GLIBC_2.2.5 clock_settime F
GLIBC_2.2.5 lio_listio F
GLIBC_2.2.5 lio_listio64 F
GLIBC_2.2.5 shm_open F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/mmap_internal.h b/sysdeps/unix/sysv/linux/x86_64/64/mmap_internal.h
index cab9494559..cf9b353b68 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/mmap_internal.h
+++ b/sysdeps/unix/sysv/linux/x86_64/64/mmap_internal.h
@@ -1,5 +1,5 @@
/* Linux mmap system call. x86-64 version.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef MMAP_X86_64_INTERNAL_H
#define MMAP_X86_64_INTERNAL_H
diff --git a/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S b/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S
index 5d2d275721..7c4ce92252 100644
--- a/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S
+++ b/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <jmpbuf-offsets.h>
diff --git a/sysdeps/unix/sysv/linux/x86_64/__start_context.S b/sysdeps/unix/sysv/linux/x86_64/__start_context.S
index 87de0e5996..581dad82e9 100644
--- a/sysdeps/unix/sysv/linux/x86_64/__start_context.S
+++ b/sysdeps/unix/sysv/linux/x86_64/__start_context.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/x86_64/brk.c b/sysdeps/unix/sysv/linux/x86_64/brk.c
index aa1e151c5b..70f81036ac 100644
--- a/sysdeps/unix/sysv/linux/x86_64/brk.c
+++ b/sysdeps/unix/sysv/linux/x86_64/brk.c
@@ -1,5 +1,5 @@
/* brk system call for Linux/x86_64.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/sysdeps/unix/sysv/linux/x86_64/cancellation.S b/sysdeps/unix/sysv/linux/x86_64/cancellation.S
index 53dbabd6d2..f8a142da72 100644
--- a/sysdeps/unix/sysv/linux/x86_64/cancellation.S
+++ b/sysdeps/unix/sysv/linux/x86_64/cancellation.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2009.
@@ -14,12 +14,12 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <tcb-offsets.h>
#include <kernel-features.h>
-#include "lowlevellock.h"
+#include <lowlevellock-futex.h>
#define PTHREAD_UNWIND JUMPTARGET(__pthread_unwind)
#if IS_IN (libpthread)
diff --git a/sysdeps/unix/sysv/linux/x86_64/clone.S b/sysdeps/unix/sysv/linux/x86_64/clone.S
index 34bebe0c00..3661f43805 100644
--- a/sysdeps/unix/sysv/linux/x86_64/clone.S
+++ b/sysdeps/unix/sysv/linux/x86_64/clone.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* clone() is even more special than fork() as it mucks with stacks
and invokes a function in the right context after its all over. */
diff --git a/sysdeps/unix/sysv/linux/x86_64/compat-timer.h b/sysdeps/unix/sysv/linux/x86_64/compat-timer.h
index ba4f0b39da..e85623858b 100644
--- a/sysdeps/unix/sysv/linux/x86_64/compat-timer.h
+++ b/sysdeps/unix/sysv/linux/x86_64/compat-timer.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <signal.h>
#include <time.h>
diff --git a/sysdeps/unix/sysv/linux/x86_64/dl-cache.h b/sysdeps/unix/sysv/linux/x86_64/dl-cache.h
index c3c138b7c4..eee9a2e1dc 100644
--- a/sysdeps/unix/sysv/linux/x86_64/dl-cache.h
+++ b/sysdeps/unix/sysv/linux/x86_64/dl-cache.h
@@ -1,5 +1,5 @@
/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _DL_CACHE_DEFAULT_ID 0x303
diff --git a/sysdeps/unix/sysv/linux/x86_64/get_clockfreq.c b/sysdeps/unix/sysv/linux/x86_64/get_clockfreq.c
deleted file mode 100644
index a58d40a9c1..0000000000
--- a/sysdeps/unix/sysv/linux/x86_64/get_clockfreq.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "../i386/get_clockfreq.c"
diff --git a/sysdeps/unix/sysv/linux/x86_64/getcontext.S b/sysdeps/unix/sysv/linux/x86_64/getcontext.S
index 84b986ca98..2734b78788 100644
--- a/sysdeps/unix/sysv/linux/x86_64/getcontext.S
+++ b/sysdeps/unix/sysv/linux/x86_64/getcontext.S
@@ -1,5 +1,5 @@
/* Save current context.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <asm/prctl.h>
diff --git a/sysdeps/unix/sysv/linux/x86_64/init-first.c b/sysdeps/unix/sysv/linux/x86_64/init-first.c
deleted file mode 100644
index 2320505804..0000000000
--- a/sysdeps/unix/sysv/linux/x86_64/init-first.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/* Initialization code run first thing by the ELF startup code. Linux/x86-64.
- Copyright (C) 2007-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifdef SHARED
-# include <time.h>
-# include <sysdep.h>
-# include <dl-vdso.h>
-# include <libc-vdso.h>
-
-long int (*VDSO_SYMBOL(clock_gettime)) (clockid_t, struct timespec *)
- attribute_hidden;
-long int (*VDSO_SYMBOL(getcpu)) (unsigned *, unsigned *, void *)
- attribute_hidden;
-
-extern __typeof (clock_gettime) __syscall_clock_gettime attribute_hidden;
-
-
-static inline void
-__vdso_platform_setup (void)
-{
- PREPARE_VERSION (linux26, "LINUX_2.6", 61765110);
-
- void *p = _dl_vdso_vsym ("__vdso_clock_gettime", &linux26);
- if (p == NULL)
- p = __syscall_clock_gettime;
- PTR_MANGLE (p);
- VDSO_SYMBOL(clock_gettime) = p;
-
- p = _dl_vdso_vsym ("__vdso_getcpu", &linux26);
- PTR_MANGLE (p);
- VDSO_SYMBOL(getcpu) = p;
-}
-
-# define VDSO_SETUP __vdso_platform_setup
-#endif
-
-#include <csu/init-first.c>
diff --git a/sysdeps/unix/sysv/linux/x86_64/ipc_priv.h b/sysdeps/unix/sysv/linux/x86_64/ipc_priv.h
deleted file mode 100644
index 945028920c..0000000000
--- a/sysdeps/unix/sysv/linux/x86_64/ipc_priv.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Old SysV permission definition for Linux. x86_64 version.
- Copyright (C) 2016-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sys/ipc.h> /* For __key_t */
-
-#define __IPC_64 0x0
-
-struct __old_ipc_perm
-{
- __key_t __key; /* Key. */
- unsigned short uid; /* Owner's user ID. */
- unsigned short gid; /* Owner's group ID. */
- unsigned short cuid; /* Creator's user ID. */
- unsigned short cgid; /* Creator's group ID. */
- unsigned short mode; /* Read/write permission. */
- unsigned short int __seq; /* Sequence number. */
-};
diff --git a/sysdeps/unix/sysv/linux/x86_64/kernel-features.h b/sysdeps/unix/sysv/linux/x86_64/kernel-features.h
index a6a1202e69..bed2e4948c 100644
--- a/sysdeps/unix/sysv/linux/x86_64/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/x86_64/kernel-features.h
@@ -1,6 +1,6 @@
/* Set flags signalling availability of kernel features based on given
kernel version number. x86-64 version.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define that x32 is a ILP32 ABI to set the correct interface to pass
64-bits values through syscalls. */
diff --git a/sysdeps/unix/sysv/linux/x86_64/kernel_stat.h b/sysdeps/unix/sysv/linux/x86_64/kernel_stat.h
index 98adda41fc..898cfd12a3 100644
--- a/sysdeps/unix/sysv/linux/x86_64/kernel_stat.h
+++ b/sysdeps/unix/sysv/linux/x86_64/kernel_stat.h
@@ -1,5 +1,5 @@
/* Definition of `struct stat' used in the kernel.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define STAT_IS_KERNEL_STAT 1
#define XSTAT_IS_XSTAT64 1
diff --git a/sysdeps/unix/sysv/linux/x86_64/ldconfig.h b/sysdeps/unix/sysv/linux/x86_64/ldconfig.h
index c7e9ad674d..a916560a0c 100644
--- a/sysdeps/unix/sysv/linux/x86_64/ldconfig.h
+++ b/sysdeps/unix/sysv/linux/x86_64/ldconfig.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/generic/ldconfig.h>
diff --git a/sysdeps/unix/sysv/linux/x86_64/libc-cancellation.S b/sysdeps/unix/sysv/linux/x86_64/libc-cancellation.S
index ed7af0db3c..cf8da66eb7 100644
--- a/sysdeps/unix/sysv/linux/x86_64/libc-cancellation.S
+++ b/sysdeps/unix/sysv/linux/x86_64/libc-cancellation.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __pthread_enable_asynccancel __libc_enable_asynccancel
#define __pthread_disable_asynccancel __libc_disable_asynccancel
diff --git a/sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S b/sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S
deleted file mode 100644
index a1ddaaf77a..0000000000
--- a/sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include "lowlevellock.S"
diff --git a/sysdeps/unix/sysv/linux/x86_64/librt-cancellation.S b/sysdeps/unix/sysv/linux/x86_64/librt-cancellation.S
index d0f0ee441b..e7dcc61f6e 100644
--- a/sysdeps/unix/sysv/linux/x86_64/librt-cancellation.S
+++ b/sysdeps/unix/sysv/linux/x86_64/librt-cancellation.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __pthread_enable_asynccancel __librt_enable_asynccancel
#define __pthread_disable_asynccancel __librt_disable_asynccancel
diff --git a/sysdeps/unix/sysv/linux/x86_64/lll_timedlock_wait.c b/sysdeps/unix/sysv/linux/x86_64/lll_timedlock_wait.c
deleted file mode 100644
index f6875b8f89..0000000000
--- a/sysdeps/unix/sysv/linux/x86_64/lll_timedlock_wait.c
+++ /dev/null
@@ -1 +0,0 @@
-/* __lll_timedlock_wait is in lowlevellock.S. */
diff --git a/sysdeps/unix/sysv/linux/x86_64/lll_timedwait_tid.c b/sysdeps/unix/sysv/linux/x86_64/lll_timedwait_tid.c
deleted file mode 100644
index 43900c6294..0000000000
--- a/sysdeps/unix/sysv/linux/x86_64/lll_timedwait_tid.c
+++ /dev/null
@@ -1 +0,0 @@
-/* __lll_timedwait_tid is in lowlevellock.S. */
diff --git a/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S b/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
deleted file mode 100644
index 71dd740202..0000000000
--- a/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
+++ /dev/null
@@ -1,431 +0,0 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <pthread-errnos.h>
-#include <kernel-features.h>
-#include <lowlevellock.h>
-
-#include <stap-probe.h>
-
- .text
-
-#define LOAD_PRIVATE_FUTEX_WAIT(reg) \
- movl $(FUTEX_WAIT | FUTEX_PRIVATE_FLAG), reg
-#define LOAD_PRIVATE_FUTEX_WAKE(reg) \
- movl $(FUTEX_WAKE | FUTEX_PRIVATE_FLAG), reg
-#define LOAD_FUTEX_WAIT(reg) \
- xorl $(FUTEX_WAIT | FUTEX_PRIVATE_FLAG), reg
-#define LOAD_FUTEX_WAIT_ABS(reg) \
- xorl $(FUTEX_WAIT_BITSET | FUTEX_PRIVATE_FLAG | FUTEX_CLOCK_REALTIME), reg
-#define LOAD_FUTEX_WAKE(reg) \
- xorl $(FUTEX_WAKE | FUTEX_PRIVATE_FLAG), reg
-
-
- .globl __lll_lock_wait_private
- .type __lll_lock_wait_private,@function
- .hidden __lll_lock_wait_private
- .align 16
-__lll_lock_wait_private:
- cfi_startproc
- pushq %r10
- cfi_adjust_cfa_offset(8)
- pushq %rdx
- cfi_adjust_cfa_offset(8)
- cfi_offset(%r10, -16)
- cfi_offset(%rdx, -24)
- xorq %r10, %r10 /* No timeout. */
- movl $2, %edx
- LOAD_PRIVATE_FUTEX_WAIT (%esi)
-
- cmpl %edx, %eax /* NB: %edx == 2 */
- jne 2f
-
-1: LIBC_PROBE (lll_lock_wait_private, 1, %rdi)
- movl $SYS_futex, %eax
- syscall
-
-2: movl %edx, %eax
- xchgl %eax, (%rdi) /* NB: lock is implied */
-
- testl %eax, %eax
- jnz 1b
-
- popq %rdx
- cfi_adjust_cfa_offset(-8)
- cfi_restore(%rdx)
- popq %r10
- cfi_adjust_cfa_offset(-8)
- cfi_restore(%r10)
- retq
- cfi_endproc
- .size __lll_lock_wait_private,.-__lll_lock_wait_private
-
-#if !IS_IN (libc)
- .globl __lll_lock_wait
- .type __lll_lock_wait,@function
- .hidden __lll_lock_wait
- .align 16
-__lll_lock_wait:
- cfi_startproc
- pushq %r10
- cfi_adjust_cfa_offset(8)
- pushq %rdx
- cfi_adjust_cfa_offset(8)
- cfi_offset(%r10, -16)
- cfi_offset(%rdx, -24)
- xorq %r10, %r10 /* No timeout. */
- movl $2, %edx
- LOAD_FUTEX_WAIT (%esi)
-
- cmpl %edx, %eax /* NB: %edx == 2 */
- jne 2f
-
-1: LIBC_PROBE (lll_lock_wait, 2, %rdi, %rsi)
- movl $SYS_futex, %eax
- syscall
-
-2: movl %edx, %eax
- xchgl %eax, (%rdi) /* NB: lock is implied */
-
- testl %eax, %eax
- jnz 1b
-
- popq %rdx
- cfi_adjust_cfa_offset(-8)
- cfi_restore(%rdx)
- popq %r10
- cfi_adjust_cfa_offset(-8)
- cfi_restore(%r10)
- retq
- cfi_endproc
- .size __lll_lock_wait,.-__lll_lock_wait
-
- /* %rdi: futex
- %rsi: flags
- %rdx: timeout
- %eax: futex value
- */
- .globl __lll_timedlock_wait
- .type __lll_timedlock_wait,@function
- .hidden __lll_timedlock_wait
- .align 16
-__lll_timedlock_wait:
- cfi_startproc
-# ifndef __ASSUME_FUTEX_CLOCK_REALTIME
-# ifdef PIC
- cmpl $0, __have_futex_clock_realtime(%rip)
-# else
- cmpl $0, __have_futex_clock_realtime
-# endif
- je .Lreltmo
-# endif
-
- cmpq $0, (%rdx)
- js 5f
-
- pushq %r9
- cfi_adjust_cfa_offset(8)
- cfi_rel_offset(%r9, 0)
-
- movq %rdx, %r10
- movl $0xffffffff, %r9d
- LOAD_FUTEX_WAIT_ABS (%esi)
-
- movl $2, %edx
- cmpl %edx, %eax
- jne 2f
-
-1: movl $SYS_futex, %eax
- movl $2, %edx
- syscall
-
-2: xchgl %edx, (%rdi) /* NB: lock is implied */
-
- testl %edx, %edx
- jz 3f
-
- cmpl $-ETIMEDOUT, %eax
- je 4f
- cmpl $-EINVAL, %eax
- jne 1b
-4: movl %eax, %edx
- negl %edx
-
-3: movl %edx, %eax
- popq %r9
- cfi_adjust_cfa_offset(-8)
- cfi_restore(%r9)
- retq
-
-5: movl $ETIMEDOUT, %eax
- retq
-
-# ifndef __ASSUME_FUTEX_CLOCK_REALTIME
-.Lreltmo:
- /* Check for a valid timeout value. */
- cmpq $1000000000, 8(%rdx)
- jae 3f
-
- pushq %r8
- cfi_adjust_cfa_offset(8)
- pushq %r9
- cfi_adjust_cfa_offset(8)
- pushq %r12
- cfi_adjust_cfa_offset(8)
- pushq %r13
- cfi_adjust_cfa_offset(8)
- pushq %r14
- cfi_adjust_cfa_offset(8)
- cfi_offset(%r8, -16)
- cfi_offset(%r9, -24)
- cfi_offset(%r12, -32)
- cfi_offset(%r13, -40)
- cfi_offset(%r14, -48)
- pushq %rsi
- cfi_adjust_cfa_offset(8)
-
- /* Stack frame for the timespec and timeval structs. */
- subq $24, %rsp
- cfi_adjust_cfa_offset(24)
-
- movq %rdi, %r12
- movq %rdx, %r13
-
- movl $2, %edx
- xchgl %edx, (%r12)
-
- testl %edx, %edx
- je 6f
-
-1:
- /* Get current time. */
- movq %rsp, %rdi
- xorl %esi, %esi
- /* This call works because we directly jump to a system call entry
- which preserves all the registers. */
- call JUMPTARGET(__gettimeofday)
-
- /* Compute relative timeout. */
- movq 8(%rsp), %rax
- movl $1000, %edi
- mul %rdi /* Milli seconds to nano seconds. */
- movq (%r13), %rdi
- movq 8(%r13), %rsi
- subq (%rsp), %rdi
- subq %rax, %rsi
- jns 4f
- addq $1000000000, %rsi
- decq %rdi
-4: testq %rdi, %rdi
- js 2f /* Time is already up. */
-
- /* Store relative timeout. */
- movq %rdi, (%rsp)
- movq %rsi, 8(%rsp)
-
- /* Futex call. */
- movl $2, %edx
- movl $1, %eax
- movq %rsp, %r10
- movl 24(%rsp), %esi
- LOAD_FUTEX_WAIT (%esi)
- movq %r12, %rdi
- movl $SYS_futex, %eax
- syscall
-
- /* NB: %edx == 2 */
- xchgl %edx, (%r12)
-
- testl %edx, %edx
- je 6f
-
- cmpl $-ETIMEDOUT, %eax
- jne 1b
-2: movl $ETIMEDOUT, %edx
-
-6: addq $32, %rsp
- cfi_adjust_cfa_offset(-32)
- popq %r14
- cfi_adjust_cfa_offset(-8)
- cfi_restore(%r14)
- popq %r13
- cfi_adjust_cfa_offset(-8)
- cfi_restore(%r13)
- popq %r12
- cfi_adjust_cfa_offset(-8)
- cfi_restore(%r12)
- popq %r9
- cfi_adjust_cfa_offset(-8)
- cfi_restore(%r9)
- popq %r8
- cfi_adjust_cfa_offset(-8)
- cfi_restore(%r8)
- movl %edx, %eax
- retq
-
-3: movl $EINVAL, %eax
- retq
-# endif
- cfi_endproc
- .size __lll_timedlock_wait,.-__lll_timedlock_wait
-#endif
-
-
- .globl __lll_unlock_wake_private
- .type __lll_unlock_wake_private,@function
- .hidden __lll_unlock_wake_private
- .align 16
-__lll_unlock_wake_private:
- cfi_startproc
- pushq %rsi
- cfi_adjust_cfa_offset(8)
- pushq %rdx
- cfi_adjust_cfa_offset(8)
- cfi_offset(%rsi, -16)
- cfi_offset(%rdx, -24)
-
- movl $0, (%rdi)
- LOAD_PRIVATE_FUTEX_WAKE (%esi)
- movl $1, %edx /* Wake one thread. */
- movl $SYS_futex, %eax
- syscall
-
- popq %rdx
- cfi_adjust_cfa_offset(-8)
- cfi_restore(%rdx)
- popq %rsi
- cfi_adjust_cfa_offset(-8)
- cfi_restore(%rsi)
- retq
- cfi_endproc
- .size __lll_unlock_wake_private,.-__lll_unlock_wake_private
-
-#if !IS_IN (libc)
- .globl __lll_unlock_wake
- .type __lll_unlock_wake,@function
- .hidden __lll_unlock_wake
- .align 16
-__lll_unlock_wake:
- cfi_startproc
- pushq %rsi
- cfi_adjust_cfa_offset(8)
- pushq %rdx
- cfi_adjust_cfa_offset(8)
- cfi_offset(%rsi, -16)
- cfi_offset(%rdx, -24)
-
- movl $0, (%rdi)
- LOAD_FUTEX_WAKE (%esi)
- movl $1, %edx /* Wake one thread. */
- movl $SYS_futex, %eax
- syscall
-
- popq %rdx
- cfi_adjust_cfa_offset(-8)
- cfi_restore(%rdx)
- popq %rsi
- cfi_adjust_cfa_offset(-8)
- cfi_restore(%rsi)
- retq
- cfi_endproc
- .size __lll_unlock_wake,.-__lll_unlock_wake
-
- .globl __lll_timedwait_tid
- .type __lll_timedwait_tid,@function
- .hidden __lll_timedwait_tid
- .align 16
-__lll_timedwait_tid:
- cfi_startproc
- pushq %r12
- cfi_adjust_cfa_offset(8)
- pushq %r13
- cfi_adjust_cfa_offset(8)
- cfi_offset(%r12, -16)
- cfi_offset(%r13, -24)
-
- movq %rdi, %r12
- movq %rsi, %r13
-
- /* Align stack to 16 bytes when calling __gettimeofday. */
- subq $24, %rsp
- cfi_adjust_cfa_offset(24)
-
- /* Get current time. */
-2: movq %rsp, %rdi
- xorl %esi, %esi
- /* This call works because we directly jump to a system call entry
- which preserves all the registers. */
- call JUMPTARGET(__gettimeofday)
-
- /* Compute relative timeout. */
- movq 8(%rsp), %rax
- movl $1000, %edi
- mul %rdi /* Milli seconds to nano seconds. */
- movq (%r13), %rdi
- movq 8(%r13), %rsi
- subq (%rsp), %rdi
- subq %rax, %rsi
- jns 5f
- addq $1000000000, %rsi
- decq %rdi
-5: testq %rdi, %rdi
- js 6f /* Time is already up. */
-
- movq %rdi, (%rsp) /* Store relative timeout. */
- movq %rsi, 8(%rsp)
-
- movl (%r12), %edx
- testl %edx, %edx
- jz 4f
-
- movq %rsp, %r10
- /* XXX The kernel so far uses global futex for the wakeup at
- all times. */
-#if FUTEX_WAIT == 0
- xorl %esi, %esi
-#else
- movl $FUTEX_WAIT, %esi
-#endif
- movq %r12, %rdi
- movl $SYS_futex, %eax
- syscall
-
- cmpl $0, (%rdi)
- jne 1f
-4: xorl %eax, %eax
-
-8: addq $24, %rsp
- cfi_adjust_cfa_offset(-24)
- popq %r13
- cfi_adjust_cfa_offset(-8)
- cfi_restore(%r13)
- popq %r12
- cfi_adjust_cfa_offset(-8)
- cfi_restore(%r12)
- retq
-
- cfi_adjust_cfa_offset(32)
-1: cmpq $-ETIMEDOUT, %rax
- jne 2b
-
-6: movl $ETIMEDOUT, %eax
- jmp 8b
- cfi_endproc
- .size __lll_timedwait_tid,.-__lll_timedwait_tid
-#endif
diff --git a/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h b/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
deleted file mode 100644
index eedb6fc990..0000000000
--- a/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
+++ /dev/null
@@ -1,272 +0,0 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _LOWLEVELLOCK_H
-#define _LOWLEVELLOCK_H 1
-
-#include <stap-probe.h>
-
-#ifndef __ASSEMBLER__
-# include <time.h>
-# include <sys/param.h>
-# include <bits/pthreadtypes.h>
-# include <kernel-features.h>
-
-# ifndef LOCK_INSTR
-# ifdef UP
-# define LOCK_INSTR /* nothing */
-# else
-# define LOCK_INSTR "lock;"
-# endif
-# endif
-#else
-# ifndef LOCK
-# ifdef UP
-# define LOCK
-# else
-# define LOCK lock
-# endif
-# endif
-#endif
-
-#include <lowlevellock-futex.h>
-
-/* XXX Remove when no assembler code uses futexes anymore. */
-#define SYS_futex __NR_futex
-
-#ifndef __ASSEMBLER__
-
-/* Initializer for lock. */
-#define LLL_LOCK_INITIALIZER (0)
-#define LLL_LOCK_INITIALIZER_LOCKED (1)
-#define LLL_LOCK_INITIALIZER_WAITERS (2)
-
-
-/* NB: in the lll_trylock macro we simply return the value in %eax
- after the cmpxchg instruction. In case the operation succeded this
- value is zero. In case the operation failed, the cmpxchg instruction
- has loaded the current value of the memory work which is guaranteed
- to be nonzero. */
-#if !IS_IN (libc) || defined UP
-# define __lll_trylock_asm LOCK_INSTR "cmpxchgl %2, %1"
-#else
-# define __lll_trylock_asm "cmpl $0, __libc_multiple_threads(%%rip)\n\t" \
- "je 0f\n\t" \
- "lock; cmpxchgl %2, %1\n\t" \
- "jmp 1f\n\t" \
- "0:\tcmpxchgl %2, %1\n\t" \
- "1:"
-#endif
-
-#define lll_trylock(futex) \
- ({ int ret; \
- __asm __volatile (__lll_trylock_asm \
- : "=a" (ret), "=m" (futex) \
- : "r" (LLL_LOCK_INITIALIZER_LOCKED), "m" (futex), \
- "0" (LLL_LOCK_INITIALIZER) \
- : "memory"); \
- ret; })
-
-#define lll_cond_trylock(futex) \
- ({ int ret; \
- __asm __volatile (LOCK_INSTR "cmpxchgl %2, %1" \
- : "=a" (ret), "=m" (futex) \
- : "r" (LLL_LOCK_INITIALIZER_WAITERS), \
- "m" (futex), "0" (LLL_LOCK_INITIALIZER) \
- : "memory"); \
- ret; })
-
-#if !IS_IN (libc) || defined UP
-# define __lll_lock_asm_start LOCK_INSTR "cmpxchgl %4, %2\n\t" \
- "jz 24f\n\t"
-#else
-# define __lll_lock_asm_start "cmpl $0, __libc_multiple_threads(%%rip)\n\t" \
- "je 0f\n\t" \
- "lock; cmpxchgl %4, %2\n\t" \
- "jnz 1f\n\t" \
- "jmp 24f\n" \
- "0:\tcmpxchgl %4, %2\n\t" \
- "jz 24f\n\t"
-#endif
-
-#define lll_lock(futex, private) \
- (void) \
- ({ int ignore1, ignore2, ignore3; \
- if (__builtin_constant_p (private) && (private) == LLL_PRIVATE) \
- __asm __volatile (__lll_lock_asm_start \
- "1:\tlea %2, %%" RDI_LP "\n" \
- "2:\tsub $128, %%" RSP_LP "\n" \
- ".cfi_adjust_cfa_offset 128\n" \
- "3:\tcallq __lll_lock_wait_private\n" \
- "4:\tadd $128, %%" RSP_LP "\n" \
- ".cfi_adjust_cfa_offset -128\n" \
- "24:" \
- : "=S" (ignore1), "=&D" (ignore2), "=m" (futex), \
- "=a" (ignore3) \
- : "0" (1), "m" (futex), "3" (0) \
- : "cx", "r11", "cc", "memory"); \
- else \
- __asm __volatile (__lll_lock_asm_start \
- "1:\tlea %2, %%" RDI_LP "\n" \
- "2:\tsub $128, %%" RSP_LP "\n" \
- ".cfi_adjust_cfa_offset 128\n" \
- "3:\tcallq __lll_lock_wait\n" \
- "4:\tadd $128, %%" RSP_LP "\n" \
- ".cfi_adjust_cfa_offset -128\n" \
- "24:" \
- : "=S" (ignore1), "=D" (ignore2), "=m" (futex), \
- "=a" (ignore3) \
- : "1" (1), "m" (futex), "3" (0), "0" (private) \
- : "cx", "r11", "cc", "memory"); \
- }) \
-
-#define lll_cond_lock(futex, private) \
- (void) \
- ({ int ignore1, ignore2, ignore3; \
- __asm __volatile (LOCK_INSTR "cmpxchgl %4, %2\n\t" \
- "jz 24f\n" \
- "1:\tlea %2, %%" RDI_LP "\n" \
- "2:\tsub $128, %%" RSP_LP "\n" \
- ".cfi_adjust_cfa_offset 128\n" \
- "3:\tcallq __lll_lock_wait\n" \
- "4:\tadd $128, %%" RSP_LP "\n" \
- ".cfi_adjust_cfa_offset -128\n" \
- "24:" \
- : "=S" (ignore1), "=D" (ignore2), "=m" (futex), \
- "=a" (ignore3) \
- : "1" (2), "m" (futex), "3" (0), "0" (private) \
- : "cx", "r11", "cc", "memory"); \
- })
-
-#define lll_timedlock(futex, timeout, private) \
- ({ int result, ignore1, ignore2, ignore3; \
- __asm __volatile (LOCK_INSTR "cmpxchgl %1, %4\n\t" \
- "jz 24f\n" \
- "1:\tlea %4, %%" RDI_LP "\n" \
- "0:\tmov %8, %%" RDX_LP "\n" \
- "2:\tsub $128, %%" RSP_LP "\n" \
- ".cfi_adjust_cfa_offset 128\n" \
- "3:\tcallq __lll_timedlock_wait\n" \
- "4:\tadd $128, %%" RSP_LP "\n" \
- ".cfi_adjust_cfa_offset -128\n" \
- "24:" \
- : "=a" (result), "=D" (ignore1), "=S" (ignore2), \
- "=&d" (ignore3), "=m" (futex) \
- : "0" (0), "1" (1), "m" (futex), "m" (timeout), \
- "2" (private) \
- : "memory", "cx", "cc", "r10", "r11"); \
- result; })
-
-extern int __lll_timedlock_elision (int *futex, short *adapt_count,
- const struct timespec *timeout,
- int private) attribute_hidden;
-
-#define lll_timedlock_elision(futex, adapt_count, timeout, private) \
- __lll_timedlock_elision(&(futex), &(adapt_count), timeout, private)
-
-#if !IS_IN (libc) || defined UP
-# define __lll_unlock_asm_start LOCK_INSTR "decl %0\n\t" \
- "je 24f\n\t"
-#else
-# define __lll_unlock_asm_start "cmpl $0, __libc_multiple_threads(%%rip)\n\t" \
- "je 0f\n\t" \
- "lock; decl %0\n\t" \
- "jne 1f\n\t" \
- "jmp 24f\n\t" \
- "0:\tdecl %0\n\t" \
- "je 24f\n\t"
-#endif
-
-#define lll_unlock(futex, private) \
- (void) \
- ({ int ignore; \
- if (__builtin_constant_p (private) && (private) == LLL_PRIVATE) \
- __asm __volatile (__lll_unlock_asm_start \
- "1:\tlea %0, %%" RDI_LP "\n" \
- "2:\tsub $128, %%" RSP_LP "\n" \
- ".cfi_adjust_cfa_offset 128\n" \
- "3:\tcallq __lll_unlock_wake_private\n" \
- "4:\tadd $128, %%" RSP_LP "\n" \
- ".cfi_adjust_cfa_offset -128\n" \
- "24:" \
- : "=m" (futex), "=&D" (ignore) \
- : "m" (futex) \
- : "ax", "cx", "r11", "cc", "memory"); \
- else \
- __asm __volatile (__lll_unlock_asm_start \
- "1:\tlea %0, %%" RDI_LP "\n" \
- "2:\tsub $128, %%" RSP_LP "\n" \
- ".cfi_adjust_cfa_offset 128\n" \
- "3:\tcallq __lll_unlock_wake\n" \
- "4:\tadd $128, %%" RSP_LP "\n" \
- ".cfi_adjust_cfa_offset -128\n" \
- "24:" \
- : "=m" (futex), "=&D" (ignore) \
- : "m" (futex), "S" (private) \
- : "ax", "cx", "r11", "cc", "memory"); \
- })
-
-#define lll_islocked(futex) \
- (futex != LLL_LOCK_INITIALIZER)
-
-
-/* The kernel notifies a process which uses CLONE_CHILD_CLEARTID via futex
- wake-up when the clone terminates. The memory location contains the
- thread ID while the clone is running and is reset to zero by the kernel
- afterwards. The kernel up to version 3.16.3 does not use the private futex
- operations for futex wake-up when the clone terminates. */
-#define lll_wait_tid(tid) \
- do { \
- __typeof (tid) __tid; \
- while ((__tid = (tid)) != 0) \
- lll_futex_wait (&(tid), __tid, LLL_SHARED);\
- } while (0)
-
-extern int __lll_timedwait_tid (int *, const struct timespec *)
- attribute_hidden;
-
-/* As lll_wait_tid, but with a timeout. If the timeout occurs then return
- ETIMEDOUT. If ABSTIME is invalid, return EINVAL.
- XXX Note that this differs from the generic version in that we do the
- error checking here and not in __lll_timedwait_tid. */
-#define lll_timedwait_tid(tid, abstime) \
- ({ \
- int __result = 0; \
- if ((tid) != 0) \
- __result = __lll_timedwait_tid (&(tid), (abstime)); \
- __result; })
-
-extern int __lll_lock_elision (int *futex, short *adapt_count, int private)
- attribute_hidden;
-
-extern int __lll_unlock_elision (int *lock, int private)
- attribute_hidden;
-
-extern int __lll_trylock_elision (int *lock, short *adapt_count)
- attribute_hidden;
-
-#define lll_lock_elision(futex, adapt_count, private) \
- __lll_lock_elision (&(futex), &(adapt_count), private)
-#define lll_unlock_elision(futex, adapt_count, private) \
- __lll_unlock_elision (&(futex), private)
-#define lll_trylock_elision(futex, adapt_count) \
- __lll_trylock_elision (&(futex), &(adapt_count))
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* lowlevellock.h */
diff --git a/sysdeps/unix/sysv/linux/x86_64/makecontext.c b/sysdeps/unix/sysv/linux/x86_64/makecontext.c
index 3eb4c59a5d..2a5d629ec2 100644
--- a/sysdeps/unix/sysv/linux/x86_64/makecontext.c
+++ b/sysdeps/unix/sysv/linux/x86_64/makecontext.c
@@ -1,5 +1,5 @@
/* Create new context.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <stdarg.h>
diff --git a/sysdeps/unix/sysv/linux/x86_64/profil-counter.h b/sysdeps/unix/sysv/linux/x86_64/profil-counter.h
deleted file mode 100644
index 13b579ac2c..0000000000
--- a/sysdeps/unix/sysv/linux/x86_64/profil-counter.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Low-level statistical profiling support function. Linux/x86-64 version.
- Copyright (C) 2001-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <signal.h>
-#include <sigcontextinfo.h>
-
-static void
-__profil_counter (int signo, SIGCONTEXT scp)
-{
- profil_count ((void *) GET_PC (scp));
-
- /* This is a hack to prevent the compiler from implementing the
- above function call as a sibcall. The sibcall would overwrite
- the signal context. */
- asm volatile ("");
-}
diff --git a/sysdeps/unix/sysv/linux/x86_64/register-dump.h b/sysdeps/unix/sysv/linux/x86_64/register-dump.h
index 64d022a77c..7042fd2a7d 100644
--- a/sysdeps/unix/sysv/linux/x86_64/register-dump.h
+++ b/sysdeps/unix/sysv/linux/x86_64/register-dump.h
@@ -1,5 +1,5 @@
/* Dump registers.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/uio.h>
#include <_itoa.h>
diff --git a/sysdeps/unix/sysv/linux/x86_64/setcontext.S b/sysdeps/unix/sysv/linux/x86_64/setcontext.S
index 0afdf8ce0a..53f32ae75c 100644
--- a/sysdeps/unix/sysv/linux/x86_64/setcontext.S
+++ b/sysdeps/unix/sysv/linux/x86_64/setcontext.S
@@ -1,5 +1,5 @@
/* Install given context.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <asm/prctl.h>
diff --git a/sysdeps/unix/sysv/linux/x86_64/sigaction.c b/sysdeps/unix/sysv/linux/x86_64/sigaction.c
index 4e6d9cc32e..e853b59f75 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sigaction.c
+++ b/sysdeps/unix/sysv/linux/x86_64/sigaction.c
@@ -1,5 +1,5 @@
/* POSIX.1 `sigaction' call for Linux/x86-64.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,11 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <signal.h>
#define SA_RESTORER 0x04000000
-#include <kernel_sigaction.h>
extern void restore_rt (void) asm ("__restore_rt") attribute_hidden;
@@ -29,6 +28,8 @@ extern void restore_rt (void) asm ("__restore_rt") attribute_hidden;
#define RESET_SA_RESTORER(act, kact) \
(act)->sa_restorer = (kact)->sa_restorer
+#include <kernel_sigaction.h>
+
#include <sysdeps/unix/sysv/linux/sigaction.c>
/* NOTE: Please think twice before making any changes to the bits of
diff --git a/sysdeps/unix/sysv/linux/x86_64/sigcontextinfo.h b/sysdeps/unix/sysv/linux/x86_64/sigcontextinfo.h
index 165d6b0ead..657ef6065c 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/x86_64/sigcontextinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -13,10 +13,15 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#include <stdint.h>
+#ifndef _SIGCONTEXTINFO_H
+#define _SIGCONTEXTINFO_H
-#define SIGCONTEXT siginfo_t *_si, ucontext_t *
-#define GET_PC(ctx) \
- ((void *) (uintptr_t) (ctx)->uc_mcontext.gregs[REG_RIP])
+static inline uintptr_t
+sigcontext_get_pc (const ucontext_t *ctx)
+{
+ return ctx->uc_mcontext.gregs[REG_RIP];
+}
+
+#endif
diff --git a/sysdeps/unix/sysv/linux/x86_64/sigprocmask.c b/sysdeps/unix/sysv/linux/x86_64/sigprocmask.c
index dee282947f..c2e721d7b9 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sigprocmask.c
+++ b/sysdeps/unix/sysv/linux/x86_64/sigprocmask.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Jes Sorensen, <Jes.Sorensen@cern.ch>, April 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Linux/x86_64 only has rt signals, thus we do not even want to try falling
back to the old style signals as the default Linux handler does. */
diff --git a/sysdeps/unix/sysv/linux/x86_64/swapcontext.S b/sysdeps/unix/sysv/linux/x86_64/swapcontext.S
index 92d3371807..00dc9de852 100644
--- a/sysdeps/unix/sysv/linux/x86_64/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/x86_64/swapcontext.S
@@ -1,5 +1,5 @@
/* Save current context and install the given one.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <asm/prctl.h>
diff --git a/sysdeps/unix/sysv/linux/x86_64/syscall.S b/sysdeps/unix/sysv/linux/x86_64/syscall.S
index df63874e93..e22eb32371 100644
--- a/sysdeps/unix/sysv/linux/x86_64/syscall.S
+++ b/sysdeps/unix/sysv/linux/x86_64/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/x86_64/sysdep.S b/sysdeps/unix/sysv/linux/x86_64/sysdep.S
index 756376f853..cef2039d60 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sysdep.S
+++ b/sysdeps/unix/sysv/linux/x86_64/sysdep.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/x86_64/sysdep.h b/sysdeps/unix/sysv/linux/x86_64/sysdep.h
index f07eb04962..475b7d991a 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sysdep.h
+++ b/sysdeps/unix/sysv/linux/x86_64/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LINUX_X86_64_SYSDEP_H
#define _LINUX_X86_64_SYSDEP_H 1
@@ -370,10 +370,13 @@
# undef INTERNAL_SYSCALL_ERRNO
# define INTERNAL_SYSCALL_ERRNO(val, err) (-(val))
+# define VDSO_NAME "LINUX_2.6"
+# define VDSO_HASH 61765110
+
/* List of system calls which are supported as vsyscalls. */
-# define HAVE_CLOCK_GETTIME_VSYSCALL 1
-# define HAVE_GETTIMEOFDAY_VSYSCALL 1
-# define HAVE_GETCPU_VSYSCALL 1
+# define HAVE_CLOCK_GETTIME_VSYSCALL "__vdso_clock_gettime"
+# define HAVE_GETTIMEOFDAY_VSYSCALL "__vdso_gettimeofday"
+# define HAVE_GETCPU_VSYSCALL "__vdso_getcpu"
# define SINGLE_THREAD_BY_GLOBAL 1
diff --git a/sysdeps/unix/sysv/linux/x86_64/timer_create.c b/sysdeps/unix/sysv/linux/x86_64/timer_create.c
index b96b2b49d3..03fe285c9e 100644
--- a/sysdeps/unix/sysv/linux/x86_64/timer_create.c
+++ b/sysdeps/unix/sysv/linux/x86_64/timer_create.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <shlib-compat.h>
#include "compat-timer.h"
diff --git a/sysdeps/unix/sysv/linux/x86_64/timer_delete.c b/sysdeps/unix/sysv/linux/x86_64/timer_delete.c
index f0fc3a4a78..b4b4606631 100644
--- a/sysdeps/unix/sysv/linux/x86_64/timer_delete.c
+++ b/sysdeps/unix/sysv/linux/x86_64/timer_delete.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <shlib-compat.h>
#include "compat-timer.h"
diff --git a/sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c b/sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c
index b027f56df3..0a661630a7 100644
--- a/sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c
+++ b/sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
@@ -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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <shlib-compat.h>
#include "compat-timer.h"
diff --git a/sysdeps/unix/sysv/linux/x86_64/timer_gettime.c b/sysdeps/unix/sysv/linux/x86_64/timer_gettime.c
index 7730bc9447..0122deec14 100644
--- a/sysdeps/unix/sysv/linux/x86_64/timer_gettime.c
+++ b/sysdeps/unix/sysv/linux/x86_64/timer_gettime.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
@@ -14,16 +14,20 @@
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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <shlib-compat.h>
+#include <sysdep.h>
+#include "kernel-posix-timers.h"
#include "compat-timer.h"
+int
+__timer_gettime_new (timer_t timerid, struct itimerspec *value)
+{
+ struct timer *kt = (struct timer *) timerid;
-#define timer_gettime_alias __timer_gettime_new
-#include <sysdeps/unix/sysv/linux/timer_gettime.c>
-
-#undef timer_gettime
+ return INLINE_SYSCALL_CALL (timer_gettime, kt->ktimerid, value);
+}
versioned_symbol (librt, __timer_gettime_new, timer_gettime, GLIBC_2_3_3);
diff --git a/sysdeps/unix/sysv/linux/x86_64/timer_settime.c b/sysdeps/unix/sysv/linux/x86_64/timer_settime.c
index 26178a8020..4ed92e9644 100644
--- a/sysdeps/unix/sysv/linux/x86_64/timer_settime.c
+++ b/sysdeps/unix/sysv/linux/x86_64/timer_settime.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
@@ -14,16 +14,22 @@
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 <http://www.gnu.org/licenses/>. */
+ not, see <https://www.gnu.org/licenses/>. */
#include <shlib-compat.h>
+#include <sysdep.h>
+#include "kernel-posix-timers.h"
#include "compat-timer.h"
+int
+__timer_settime_new (timer_t timerid, int flags, const struct itimerspec *value,
+ struct itimerspec *ovalue)
+{
+ struct timer *kt = (struct timer *) timerid;
-#define timer_settime_alias __timer_settime_new
-#include <sysdeps/unix/sysv/linux/timer_settime.c>
-
-#undef timer_settime
+ return INLINE_SYSCALL_CALL (timer_settime, kt->ktimerid, flags, value,
+ ovalue);
+}
versioned_symbol (librt, __timer_settime_new, timer_settime, GLIBC_2_3_3);
diff --git a/sysdeps/unix/sysv/linux/x86_64/vfork.S b/sysdeps/unix/sysv/linux/x86_64/vfork.S
index 8f1ca9f836..caa275c242 100644
--- a/sysdeps/unix/sysv/linux/x86_64/vfork.S
+++ b/sysdeps/unix/sysv/linux/x86_64/vfork.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#define _ERRNO_H 1
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/arch_prctl.c b/sysdeps/unix/sysv/linux/x86_64/x32/arch_prctl.c
index 86328814c5..e1432578d5 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/arch_prctl.c
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/arch_prctl.c
@@ -1,5 +1,5 @@
/* arch_prctl call for Linux/x32.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/prctl.h>
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/dl-cache.h b/sysdeps/unix/sysv/linux/x86_64/x32/dl-cache.h
index 8f28509b2d..679dc0a9fd 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/dl-cache.h
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/dl-cache.h
@@ -1,5 +1,5 @@
/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/unix/sysv/linux/x86_64/dl-cache.h>
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/gettimeofday.c b/sysdeps/unix/sysv/linux/x86_64/x32/gettimeofday.c
new file mode 100644
index 0000000000..cd342f33ad
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/gettimeofday.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/x86/gettimeofday.c>
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 6fee16a850..59da85a5d8 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -660,6 +660,11 @@ GLIBC_2.16 clntudp_create F
GLIBC_2.16 clntunix_create F
GLIBC_2.16 clock F
GLIBC_2.16 clock_adjtime F
+GLIBC_2.16 clock_getcpuclockid F
+GLIBC_2.16 clock_getres F
+GLIBC_2.16 clock_gettime F
+GLIBC_2.16 clock_nanosleep F
+GLIBC_2.16 clock_settime F
GLIBC_2.16 clone F
GLIBC_2.16 close F
GLIBC_2.16 closedir F
@@ -2146,3 +2151,10 @@ GLIBC_2.28 thrd_current F
GLIBC_2.28 thrd_equal F
GLIBC_2.28 thrd_sleep F
GLIBC_2.28 thrd_yield F
+GLIBC_2.29 getcpu F
+GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
+GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
+GLIBC_2.30 getdents64 F
+GLIBC_2.30 gettid F
+GLIBC_2.30 tgkill F
+GLIBC_2.30 twalk_r F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
index f1fc0e9f4d..44b0eddc50 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
@@ -1066,3 +1066,24 @@ GLIBC_2.28 fmul F
GLIBC_2.28 fmull F
GLIBC_2.28 fsub F
GLIBC_2.28 fsubl F
+GLIBC_2.29 exp F
+GLIBC_2.29 exp2 F
+GLIBC_2.29 log F
+GLIBC_2.29 log2 F
+GLIBC_2.29 pow F
+GLIBC_2.31 totalorder F
+GLIBC_2.31 totalorderf F
+GLIBC_2.31 totalorderf128 F
+GLIBC_2.31 totalorderf32 F
+GLIBC_2.31 totalorderf32x F
+GLIBC_2.31 totalorderf64 F
+GLIBC_2.31 totalorderf64x F
+GLIBC_2.31 totalorderl F
+GLIBC_2.31 totalordermag F
+GLIBC_2.31 totalordermagf F
+GLIBC_2.31 totalordermagf128 F
+GLIBC_2.31 totalordermagf32 F
+GLIBC_2.31 totalordermagf32x F
+GLIBC_2.31 totalordermagf64 F
+GLIBC_2.31 totalordermagf64x F
+GLIBC_2.31 totalordermagl F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
index c09c9b015a..aadd9eb0fa 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
@@ -11,7 +11,6 @@ GLIBC_2.16 __libc_allocate_rtsig F
GLIBC_2.16 __libc_current_sigrtmax F
GLIBC_2.16 __libc_current_sigrtmin F
GLIBC_2.16 __lseek F
-GLIBC_2.16 __nanosleep F
GLIBC_2.16 __open F
GLIBC_2.16 __open64 F
GLIBC_2.16 __pread64 F
@@ -45,7 +44,6 @@ GLIBC_2.16 __read F
GLIBC_2.16 __res_state F
GLIBC_2.16 __send F
GLIBC_2.16 __sigaction F
-GLIBC_2.16 __vfork F
GLIBC_2.16 __wait F
GLIBC_2.16 __write F
GLIBC_2.16 _pthread_cleanup_pop F
@@ -65,29 +63,20 @@ GLIBC_2.16 longjmp F
GLIBC_2.16 lseek F
GLIBC_2.16 lseek64 F
GLIBC_2.16 msync F
-GLIBC_2.16 nanosleep F
GLIBC_2.16 open F
GLIBC_2.16 open64 F
GLIBC_2.16 pause F
GLIBC_2.16 pread F
GLIBC_2.16 pread64 F
-GLIBC_2.16 pthread_attr_destroy F
GLIBC_2.16 pthread_attr_getaffinity_np F
-GLIBC_2.16 pthread_attr_getdetachstate F
GLIBC_2.16 pthread_attr_getguardsize F
-GLIBC_2.16 pthread_attr_getinheritsched F
-GLIBC_2.16 pthread_attr_getschedparam F
GLIBC_2.16 pthread_attr_getschedpolicy F
GLIBC_2.16 pthread_attr_getscope F
GLIBC_2.16 pthread_attr_getstack F
GLIBC_2.16 pthread_attr_getstackaddr F
GLIBC_2.16 pthread_attr_getstacksize F
-GLIBC_2.16 pthread_attr_init F
GLIBC_2.16 pthread_attr_setaffinity_np F
-GLIBC_2.16 pthread_attr_setdetachstate F
GLIBC_2.16 pthread_attr_setguardsize F
-GLIBC_2.16 pthread_attr_setinheritsched F
-GLIBC_2.16 pthread_attr_setschedparam F
GLIBC_2.16 pthread_attr_setschedpolicy F
GLIBC_2.16 pthread_attr_setscope F
GLIBC_2.16 pthread_attr_setstack F
@@ -115,7 +104,6 @@ GLIBC_2.16 pthread_condattr_setclock F
GLIBC_2.16 pthread_condattr_setpshared F
GLIBC_2.16 pthread_create F
GLIBC_2.16 pthread_detach F
-GLIBC_2.16 pthread_equal F
GLIBC_2.16 pthread_exit F
GLIBC_2.16 pthread_getaffinity_np F
GLIBC_2.16 pthread_getattr_np F
@@ -171,7 +159,6 @@ GLIBC_2.16 pthread_rwlockattr_getpshared F
GLIBC_2.16 pthread_rwlockattr_init F
GLIBC_2.16 pthread_rwlockattr_setkind_np F
GLIBC_2.16 pthread_rwlockattr_setpshared F
-GLIBC_2.16 pthread_self F
GLIBC_2.16 pthread_setaffinity_np F
GLIBC_2.16 pthread_setcancelstate F
GLIBC_2.16 pthread_setcanceltype F
@@ -216,7 +203,6 @@ GLIBC_2.16 siglongjmp F
GLIBC_2.16 sigwait F
GLIBC_2.16 system F
GLIBC_2.16 tcdrain F
-GLIBC_2.16 vfork F
GLIBC_2.16 wait F
GLIBC_2.16 waitpid F
GLIBC_2.16 write F
@@ -243,3 +229,9 @@ GLIBC_2.28 tss_create F
GLIBC_2.28 tss_delete F
GLIBC_2.28 tss_get F
GLIBC_2.28 tss_set F
+GLIBC_2.30 pthread_cond_clockwait F
+GLIBC_2.30 pthread_mutex_clocklock F
+GLIBC_2.30 pthread_rwlock_clockrdlock F
+GLIBC_2.30 pthread_rwlock_clockwrlock F
+GLIBC_2.30 sem_clockwait F
+GLIBC_2.31 pthread_clockjoin_np F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
index 94e84e4dcf..66969fb9ab 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
@@ -14,11 +14,6 @@ GLIBC_2.16 aio_suspend F
GLIBC_2.16 aio_suspend64 F
GLIBC_2.16 aio_write F
GLIBC_2.16 aio_write64 F
-GLIBC_2.16 clock_getcpuclockid F
-GLIBC_2.16 clock_getres F
-GLIBC_2.16 clock_gettime F
-GLIBC_2.16 clock_nanosleep F
-GLIBC_2.16 clock_settime F
GLIBC_2.16 lio_listio F
GLIBC_2.16 lio_listio64 F
GLIBC_2.16 mq_close F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/lseek.S b/sysdeps/unix/sysv/linux/x86_64/x32/lseek.S
index 58afc5ed97..7be171d636 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/lseek.S
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/lseek.S
@@ -1,5 +1,5 @@
/* The lseek system call with 64-bit offset. Linux/x32 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/syscalls.list b/sysdeps/unix/sysv/linux/x86_64/x32/syscalls.list
index b44f6f99e9..786c884232 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/syscalls.list
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/syscalls.list
@@ -1,6 +1,5 @@
# File name Caller Syscall name # args Strong name Weak names
-gettimeofday - gettimeofday:__vdso_gettimeofday@LINUX_2.6 i:pP __gettimeofday gettimeofday
personality EXTRA personality Ei:i __personality personality
posix_fadvise64 - fadvise64 Vi:iiii posix_fadvise posix_fadvise64
time - time:__vdso_time@LINUX_2.6 Ei:P time
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/sysdep.h b/sysdeps/unix/sysv/linux/x86_64/x32/sysdep.h
index 7f978c77ac..60a144a474 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/sysdep.h
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LINUX_X32_SYSDEP_H
#define _LINUX_X32_SYSDEP_H 1
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/times.c b/sysdeps/unix/sysv/linux/x86_64/x32/times.c
index 4b469128b1..8ca14b36af 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/times.c
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/times.c
@@ -1,5 +1,5 @@
/* Linux times. X32 version.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/xmknod.c b/sysdeps/unix/sysv/linux/xmknod.c
index c7c4895a9e..bad23157c6 100644
--- a/sysdeps/unix/sysv/linux/xmknod.c
+++ b/sysdeps/unix/sysv/linux/xmknod.c
@@ -1,5 +1,5 @@
/* xmknod call using old-style Unix mknod system call.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/types.h>
diff --git a/sysdeps/unix/sysv/linux/xmknodat.c b/sysdeps/unix/sysv/linux/xmknodat.c
index a42267879a..1891f3fc48 100644
--- a/sysdeps/unix/sysv/linux/xmknodat.c
+++ b/sysdeps/unix/sysv/linux/xmknodat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2005-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <fcntl.h>
diff --git a/sysdeps/unix/sysv/linux/xstat.c b/sysdeps/unix/sysv/linux/xstat.c
index 52fb62d8b7..b8af605c1d 100644
--- a/sysdeps/unix/sysv/linux/xstat.c
+++ b/sysdeps/unix/sysv/linux/xstat.c
@@ -1,5 +1,5 @@
/* xstat using old-style Unix stat system call.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Ho hum, if xstat == xstat64 we must get rid of the prototype or gcc
will complain since they don't strictly match. */
diff --git a/sysdeps/unix/sysv/linux/xstat64.c b/sysdeps/unix/sysv/linux/xstat64.c
index afc9ba2cb7..397ee8305d 100644
--- a/sysdeps/unix/sysv/linux/xstat64.c
+++ b/sysdeps/unix/sysv/linux/xstat64.c
@@ -1,5 +1,5 @@
/* xstat64 using Linux stat64 system call.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
@@ -24,8 +24,6 @@
#include <sysdep.h>
#include <sys/syscall.h>
-#include <kernel-features.h>
-
/* Get information about the file NAME in BUF. */
int
@@ -33,10 +31,6 @@ ___xstat64 (int vers, const char *name, struct stat64 *buf)
{
int result;
result = INLINE_SYSCALL (stat64, 2, name, buf);
-#if defined _HAVE_STAT64___ST_INO && !__ASSUME_ST_INO_64_BIT
- if (__builtin_expect (!result, 1) && buf->__st_ino != (__ino_t) buf->st_ino)
- buf->st_ino = buf->__st_ino;
-#endif
return result;
}
diff --git a/sysdeps/unix/sysv/linux/xstatconv.c b/sysdeps/unix/sysv/linux/xstatconv.c
index 3c32da70b1..1b3e702354 100644
--- a/sysdeps/unix/sysv/linux/xstatconv.c
+++ b/sysdeps/unix/sysv/linux/xstatconv.c
@@ -1,5 +1,5 @@
/* Convert between the kernel's `struct stat' format, and libc's.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,12 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/stat.h>
#include <kernel_stat.h>
-#include <kernel-features.h>
#ifdef STAT_IS_KERNEL_STAT
@@ -189,24 +188,10 @@ __xstat32_conv (int vers, struct stat64 *kbuf, struct stat *buf)
#ifdef _HAVE_STAT___PAD1
buf->__pad1 = 0;
#endif
-#ifdef _HAVE_STAT64___ST_INO
-# if !__ASSUME_ST_INO_64_BIT
- if (kbuf->st_ino == 0)
- buf->st_ino = kbuf->__st_ino;
- else
-# endif
- {
- buf->st_ino = kbuf->st_ino;
- if (sizeof (buf->st_ino) != sizeof (kbuf->st_ino)
- && buf->st_ino != kbuf->st_ino)
- return INLINE_SYSCALL_ERROR_RETURN_VALUE (EOVERFLOW);
- }
-#else
buf->st_ino = kbuf->st_ino;
if (sizeof (buf->st_ino) != sizeof (kbuf->st_ino)
&& buf->st_ino != kbuf->st_ino)
return INLINE_SYSCALL_ERROR_RETURN_VALUE (EOVERFLOW);
-#endif
buf->st_mode = kbuf->st_mode;
buf->st_nlink = kbuf->st_nlink;
buf->st_uid = kbuf->st_uid;
diff --git a/sysdeps/unix/sysv/linux/xstatconv.h b/sysdeps/unix/sysv/linux/xstatconv.h
index d38dcad199..38f7937c03 100644
--- a/sysdeps/unix/sysv/linux/xstatconv.h
+++ b/sysdeps/unix/sysv/linux/xstatconv.h
@@ -1,5 +1,5 @@
/* Convert between the kernel's `struct stat' format, and libc's.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef STAT_IS_KERNEL_STAT
extern int __xstat_conv (int vers, struct kernel_stat *kbuf, void *ubuf)
diff --git a/sysdeps/unix/x86_64/sysdep.S b/sysdeps/unix/x86_64/sysdep.S
index dd953bdd3f..0b68c98d1b 100644
--- a/sysdeps/unix/x86_64/sysdep.S
+++ b/sysdeps/unix/x86_64/sysdep.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#define _ERRNO_H
diff --git a/sysdeps/unix/x86_64/sysdep.h b/sysdeps/unix/x86_64/sysdep.h
index 9f7938ea55..a4f0a40c55 100644
--- a/sysdeps/unix/x86_64/sysdep.h
+++ b/sysdeps/unix/x86_64/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/unix/sysdep.h>
#include <sysdeps/x86_64/sysdep.h>
diff --git a/sysdeps/wordsize-32/bits/wordsize.h b/sysdeps/wordsize-32/bits/wordsize.h
index 8ef7ddbd82..ed699e9790 100644
--- a/sysdeps/wordsize-32/bits/wordsize.h
+++ b/sysdeps/wordsize-32/bits/wordsize.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __WORDSIZE 32
#define __WORDSIZE_TIME64_COMPAT32 0
diff --git a/sysdeps/wordsize-32/divdi3-symbol-hacks.h b/sysdeps/wordsize-32/divdi3-symbol-hacks.h
index 8d49aacaeb..6f85f92f1c 100644
--- a/sysdeps/wordsize-32/divdi3-symbol-hacks.h
+++ b/sysdeps/wordsize-32/divdi3-symbol-hacks.h
@@ -1,5 +1,5 @@
/* Hacks needed for divdi3 symbol manipulation.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* A very dirty trick: gcc emits references to __divdi3, __udivdi3,
__moddi3, and __umoddi3. These functions are exported and
diff --git a/sysdeps/wordsize-32/divdi3.c b/sysdeps/wordsize-32/divdi3.c
index 257d93cc37..bbf6127d37 100644
--- a/sysdeps/wordsize-32/divdi3.c
+++ b/sysdeps/wordsize-32/divdi3.c
@@ -1,5 +1,5 @@
/* 64-bit multiplication and division
- Copyright (C) 1989, 1992-2018 Free Software Foundation, Inc.
+ Copyright (C) 1989, 1992-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <endian.h>
#include <stdlib.h>
diff --git a/sysdeps/wordsize-32/llabs.c b/sysdeps/wordsize-32/llabs.c
index f668f1f6b0..ce81a0d53e 100644
--- a/sysdeps/wordsize-32/llabs.c
+++ b/sysdeps/wordsize-32/llabs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <inttypes.h>
diff --git a/sysdeps/wordsize-32/lldiv.c b/sysdeps/wordsize-32/lldiv.c
index 74776d61b0..955e6532af 100644
--- a/sysdeps/wordsize-32/lldiv.c
+++ b/sysdeps/wordsize-32/lldiv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Ugly trick ahead to make the alias work. */
#define imaxdiv __libc_imaxdiv
diff --git a/sysdeps/wordsize-32/strtoimax.c b/sysdeps/wordsize-32/strtoimax.c
index 84fce82d90..68598408a9 100644
--- a/sysdeps/wordsize-32/strtoimax.c
+++ b/sysdeps/wordsize-32/strtoimax.c
@@ -1,5 +1,5 @@
/* Convert string to maximal integer.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <inttypes.h>
#include <stdlib.h>
diff --git a/sysdeps/wordsize-32/strtoumax.c b/sysdeps/wordsize-32/strtoumax.c
index cabd4d8c8d..ac8865e811 100644
--- a/sysdeps/wordsize-32/strtoumax.c
+++ b/sysdeps/wordsize-32/strtoumax.c
@@ -1,5 +1,5 @@
/* Convert string to maximal unsigned integer.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <inttypes.h>
#include <stdlib.h>
diff --git a/sysdeps/wordsize-32/wcstoimax.c b/sysdeps/wordsize-32/wcstoimax.c
index 48e433eb42..a3ae30ba4f 100644
--- a/sysdeps/wordsize-32/wcstoimax.c
+++ b/sysdeps/wordsize-32/wcstoimax.c
@@ -1,5 +1,5 @@
/* Convert wide-character string to maximal integer.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <inttypes.h>
#include <wchar.h>
diff --git a/sysdeps/wordsize-32/wcstoumax.c b/sysdeps/wordsize-32/wcstoumax.c
index 8c3a35983b..f9c8a07a66 100644
--- a/sysdeps/wordsize-32/wcstoumax.c
+++ b/sysdeps/wordsize-32/wcstoumax.c
@@ -1,5 +1,5 @@
/* Convert wide-character string to maximal unsigned integer.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <inttypes.h>
#include <wchar.h>
diff --git a/sysdeps/wordsize-64/bits/wordsize.h b/sysdeps/wordsize-64/bits/wordsize.h
index d0a97e7598..34771f2e86 100644
--- a/sysdeps/wordsize-64/bits/wordsize.h
+++ b/sysdeps/wordsize-64/bits/wordsize.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __WORDSIZE 64
#define __WORDSIZE_TIME64_COMPAT32 0
diff --git a/sysdeps/wordsize-64/labs.c b/sysdeps/wordsize-64/labs.c
index 80721c296c..0b4de5d903 100644
--- a/sysdeps/wordsize-64/labs.c
+++ b/sysdeps/wordsize-64/labs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <inttypes.h>
diff --git a/sysdeps/wordsize-64/ldiv.c b/sysdeps/wordsize-64/ldiv.c
index a32d288405..cd031efba2 100644
--- a/sysdeps/wordsize-64/ldiv.c
+++ b/sysdeps/wordsize-64/ldiv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Ugly trick ahead to make the alias work. */
#define imaxdiv __libc_imaxdiv
diff --git a/sysdeps/wordsize-64/strtoimax.c b/sysdeps/wordsize-64/strtoimax.c
index d22c4e8f7d..9379c09657 100644
--- a/sysdeps/wordsize-64/strtoimax.c
+++ b/sysdeps/wordsize-64/strtoimax.c
@@ -1,5 +1,5 @@
/* Convert string to maximal integer.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <inttypes.h>
#include <stdlib.h>
diff --git a/sysdeps/wordsize-64/strtoumax.c b/sysdeps/wordsize-64/strtoumax.c
index 04468458df..b31a2074c1 100644
--- a/sysdeps/wordsize-64/strtoumax.c
+++ b/sysdeps/wordsize-64/strtoumax.c
@@ -1,5 +1,5 @@
/* Convert string to maximal unsigned integer.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <inttypes.h>
#include <stdlib.h>
diff --git a/sysdeps/wordsize-64/tst-writev.c b/sysdeps/wordsize-64/tst-writev.c
index bc4b1f95b2..2ca32fefa3 100644
--- a/sysdeps/wordsize-64/tst-writev.c
+++ b/sysdeps/wordsize-64/tst-writev.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ryan S. Arnold <rsa@us.ibm.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fcntl.h>
#include <limits.h>
@@ -110,8 +110,5 @@ do_test (void)
return 0;
}
-/* Time enough for a large writev syscall to complete. */
-#define TIMEOUT 20
-
#define TEST_FUNCTION do_test ()
#include "../test-skeleton.c"
diff --git a/sysdeps/wordsize-64/wcstoimax.c b/sysdeps/wordsize-64/wcstoimax.c
index 888f8fe584..4726cdcaa1 100644
--- a/sysdeps/wordsize-64/wcstoimax.c
+++ b/sysdeps/wordsize-64/wcstoimax.c
@@ -1,5 +1,5 @@
/* Convert wide-character string to maximal integer.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <inttypes.h>
#include <wchar.h>
diff --git a/sysdeps/wordsize-64/wcstoumax.c b/sysdeps/wordsize-64/wcstoumax.c
index 197d342452..aed7e2b766 100644
--- a/sysdeps/wordsize-64/wcstoumax.c
+++ b/sysdeps/wordsize-64/wcstoumax.c
@@ -1,5 +1,5 @@
/* Convert wide-character string to maximal unsigned integer.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <inttypes.h>
#include <wchar.h>
diff --git a/sysdeps/x86/Makefile b/sysdeps/x86/Makefile
index 337b0b63dc..95182a508c 100644
--- a/sysdeps/x86/Makefile
+++ b/sysdeps/x86/Makefile
@@ -18,13 +18,19 @@ ifeq ($(enable-cet),yes)
ifeq ($(subdir),elf)
sysdep-dl-routines += dl-cet
-tests += tst-cet-legacy-1 tst-cet-legacy-2 tst-cet-legacy-2a \
- tst-cet-legacy-3 tst-cet-legacy-4
+tests += tst-cet-legacy-1 tst-cet-legacy-1a tst-cet-legacy-2 \
+ tst-cet-legacy-2a tst-cet-legacy-3 tst-cet-legacy-4 \
+ tst-cet-legacy-5a tst-cet-legacy-6a
+tst-cet-legacy-1a-ARGS = -- $(host-test-program-cmd)
ifneq (no,$(have-tunables))
-tests += tst-cet-legacy-4a tst-cet-legacy-4b tst-cet-legacy-4c
+tests += tst-cet-legacy-4a tst-cet-legacy-4b tst-cet-legacy-4c \
+ tst-cet-legacy-5b tst-cet-legacy-6b
endif
modules-names += tst-cet-legacy-mod-1 tst-cet-legacy-mod-2 \
- tst-cet-legacy-mod-4
+ tst-cet-legacy-mod-4 tst-cet-legacy-mod-5a \
+ tst-cet-legacy-mod-5b tst-cet-legacy-mod-5c \
+ tst-cet-legacy-mod-6a tst-cet-legacy-mod-6b \
+ tst-cet-legacy-mod-6c
CFLAGS-tst-cet-legacy-2.c += -fcf-protection=branch
CFLAGS-tst-cet-legacy-2a.c += -fcf-protection
@@ -35,25 +41,56 @@ CFLAGS-tst-cet-legacy-4.c += -fcf-protection=branch
CFLAGS-tst-cet-legacy-4a.c += -fcf-protection
CFLAGS-tst-cet-legacy-4b.c += -fcf-protection
CFLAGS-tst-cet-legacy-mod-4.c += -fcf-protection=none
+CFLAGS-tst-cet-legacy-5a.c += -fcf-protection
+CFLAGS-tst-cet-legacy-5b.c += -fcf-protection
+CFLAGS-tst-cet-legacy-mod-5a.c += -fcf-protection=none
+CFLAGS-tst-cet-legacy-mod-5b.c += -fcf-protection
+CFLAGS-tst-cet-legacy-mod-5c.c += -fcf-protection
+CFLAGS-tst-cet-legacy-6a.c += -fcf-protection
+CFLAGS-tst-cet-legacy-6b.c += -fcf-protection
+CFLAGS-tst-cet-legacy-mod-6a.c += -fcf-protection=none
+CFLAGS-tst-cet-legacy-mod-6b.c += -fcf-protection
+CFLAGS-tst-cet-legacy-mod-6c.c += -fcf-protection
$(objpfx)tst-cet-legacy-1: $(objpfx)tst-cet-legacy-mod-1.so \
$(objpfx)tst-cet-legacy-mod-2.so
+$(objpfx)tst-cet-legacy-1a: $(objpfx)tst-cet-legacy-mod-1.so \
+ $(objpfx)tst-cet-legacy-mod-2.so
$(objpfx)tst-cet-legacy-2: $(objpfx)tst-cet-legacy-mod-2.so $(libdl)
$(objpfx)tst-cet-legacy-2.out: $(objpfx)tst-cet-legacy-mod-1.so
$(objpfx)tst-cet-legacy-2a: $(objpfx)tst-cet-legacy-mod-2.so $(libdl)
$(objpfx)tst-cet-legacy-2a.out: $(objpfx)tst-cet-legacy-mod-1.so
$(objpfx)tst-cet-legacy-4: $(libdl)
$(objpfx)tst-cet-legacy-4.out: $(objpfx)tst-cet-legacy-mod-4.so
+$(objpfx)tst-cet-legacy-5a: $(libdl)
+$(objpfx)tst-cet-legacy-5a.out: $(objpfx)tst-cet-legacy-mod-5a.so \
+ $(objpfx)tst-cet-legacy-mod-5b.so
+$(objpfx)tst-cet-legacy-mod-5a.so: $(objpfx)tst-cet-legacy-mod-5c.so
+$(objpfx)tst-cet-legacy-mod-5b.so: $(objpfx)tst-cet-legacy-mod-5c.so
+$(objpfx)tst-cet-legacy-6a: $(libdl)
+$(objpfx)tst-cet-legacy-6a.out: $(objpfx)tst-cet-legacy-mod-6a.so \
+ $(objpfx)tst-cet-legacy-mod-6b.so
+$(objpfx)tst-cet-legacy-mod-6a.so: $(objpfx)tst-cet-legacy-mod-6c.so
+$(objpfx)tst-cet-legacy-mod-6b.so: $(objpfx)tst-cet-legacy-mod-6c.so
+LDFLAGS-tst-cet-legacy-mod-6c.so = -Wl,--enable-new-dtags,-z,nodelete
ifneq (no,$(have-tunables))
$(objpfx)tst-cet-legacy-4a: $(libdl)
$(objpfx)tst-cet-legacy-4a.out: $(objpfx)tst-cet-legacy-mod-4.so
-tst-cet-legacy-4a-ENV = GLIBC_TUNABLES=glibc.tune.x86_shstk=permissive
+tst-cet-legacy-4a-ENV = GLIBC_TUNABLES=glibc.cpu.x86_shstk=permissive
$(objpfx)tst-cet-legacy-4b: $(libdl)
$(objpfx)tst-cet-legacy-4b.out: $(objpfx)tst-cet-legacy-mod-4.so
-tst-cet-legacy-4b-ENV = GLIBC_TUNABLES=glibc.tune.x86_shstk=on
+tst-cet-legacy-4b-ENV = GLIBC_TUNABLES=glibc.cpu.x86_shstk=on
$(objpfx)tst-cet-legacy-4c: $(libdl)
$(objpfx)tst-cet-legacy-4c.out: $(objpfx)tst-cet-legacy-mod-4.so
-tst-cet-legacy-4c-ENV = GLIBC_TUNABLES=glibc.tune.x86_shstk=off
+tst-cet-legacy-4c-ENV = GLIBC_TUNABLES=glibc.cpu.x86_shstk=off
+$(objpfx)tst-cet-legacy-5b: $(libdl)
+$(objpfx)tst-cet-legacy-5b.out: $(objpfx)tst-cet-legacy-mod-5a.so \
+ $(objpfx)tst-cet-legacy-mod-5b.so
+tst-cet-legacy-5b-ENV = GLIBC_TUNABLES=glibc.cpu.hwcaps=-IBT,-SHSTK
+$(objpfx)tst-cet-legacy-6b: $(libdl)
+$(objpfx)tst-cet-legacy-6b.out: $(objpfx)tst-cet-legacy-mod-6a.so \
+ $(objpfx)tst-cet-legacy-mod-6b.so
+tst-cet-legacy-6b-ENV = GLIBC_TUNABLES=glibc.cpu.hwcaps=-IBT,-SHSTK
endif
endif
diff --git a/sysdeps/x86/__longjmp_cancel.S b/sysdeps/x86/__longjmp_cancel.S
index b57dbfa376..197b4baa70 100644
--- a/sysdeps/x86/__longjmp_cancel.S
+++ b/sysdeps/x86/__longjmp_cancel.S
@@ -1,5 +1,5 @@
/* __longjmp_cancel for x86.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __longjmp __longjmp_cancel
#include <__longjmp.S>
diff --git a/sysdeps/x86/atomic-machine.h b/sysdeps/x86/atomic-machine.h
new file mode 100644
index 0000000000..ea9a46a802
--- /dev/null
+++ b/sysdeps/x86/atomic-machine.h
@@ -0,0 +1,571 @@
+/* Atomic operations. X86 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _X86_ATOMIC_MACHINE_H
+#define _X86_ATOMIC_MACHINE_H 1
+
+#include <stdint.h>
+#include <tls.h> /* For tcbhead_t. */
+#include <libc-pointer-arith.h> /* For cast_to_integer. */
+
+typedef int8_t atomic8_t;
+typedef uint8_t uatomic8_t;
+typedef int_fast8_t atomic_fast8_t;
+typedef uint_fast8_t uatomic_fast8_t;
+
+typedef int16_t atomic16_t;
+typedef uint16_t uatomic16_t;
+typedef int_fast16_t atomic_fast16_t;
+typedef uint_fast16_t uatomic_fast16_t;
+
+typedef int32_t atomic32_t;
+typedef uint32_t uatomic32_t;
+typedef int_fast32_t atomic_fast32_t;
+typedef uint_fast32_t uatomic_fast32_t;
+
+typedef int64_t atomic64_t;
+typedef uint64_t uatomic64_t;
+typedef int_fast64_t atomic_fast64_t;
+typedef uint_fast64_t uatomic_fast64_t;
+
+typedef intptr_t atomicptr_t;
+typedef uintptr_t uatomicptr_t;
+typedef intmax_t atomic_max_t;
+typedef uintmax_t uatomic_max_t;
+
+
+#ifndef LOCK_PREFIX
+# ifdef UP
+# define LOCK_PREFIX /* nothing */
+# else
+# define LOCK_PREFIX "lock;"
+# endif
+#endif
+
+#define USE_ATOMIC_COMPILER_BUILTINS 1
+
+#ifdef __x86_64__
+# define __HAVE_64B_ATOMICS 1
+# define SP_REG "rsp"
+# define SEG_REG "fs"
+# define BR_CONSTRAINT "q"
+# define IBR_CONSTRAINT "iq"
+#else
+# define __HAVE_64B_ATOMICS 0
+# define SP_REG "esp"
+# define SEG_REG "gs"
+# define BR_CONSTRAINT "r"
+# define IBR_CONSTRAINT "ir"
+#endif
+#define ATOMIC_EXCHANGE_USES_CAS 0
+
+#define atomic_compare_and_exchange_val_acq(mem, newval, oldval) \
+ __sync_val_compare_and_swap (mem, oldval, newval)
+#define atomic_compare_and_exchange_bool_acq(mem, newval, oldval) \
+ (! __sync_bool_compare_and_swap (mem, oldval, newval))
+
+
+#define __arch_c_compare_and_exchange_val_8_acq(mem, newval, oldval) \
+ ({ __typeof (*mem) ret; \
+ __asm __volatile ("cmpl $0, %%" SEG_REG ":%P5\n\t" \
+ "je 0f\n\t" \
+ "lock\n" \
+ "0:\tcmpxchgb %b2, %1" \
+ : "=a" (ret), "=m" (*mem) \
+ : BR_CONSTRAINT (newval), "m" (*mem), "0" (oldval), \
+ "i" (offsetof (tcbhead_t, multiple_threads))); \
+ ret; })
+
+#define __arch_c_compare_and_exchange_val_16_acq(mem, newval, oldval) \
+ ({ __typeof (*mem) ret; \
+ __asm __volatile ("cmpl $0, %%" SEG_REG ":%P5\n\t" \
+ "je 0f\n\t" \
+ "lock\n" \
+ "0:\tcmpxchgw %w2, %1" \
+ : "=a" (ret), "=m" (*mem) \
+ : BR_CONSTRAINT (newval), "m" (*mem), "0" (oldval), \
+ "i" (offsetof (tcbhead_t, multiple_threads))); \
+ ret; })
+
+#define __arch_c_compare_and_exchange_val_32_acq(mem, newval, oldval) \
+ ({ __typeof (*mem) ret; \
+ __asm __volatile ("cmpl $0, %%" SEG_REG ":%P5\n\t" \
+ "je 0f\n\t" \
+ "lock\n" \
+ "0:\tcmpxchgl %2, %1" \
+ : "=a" (ret), "=m" (*mem) \
+ : BR_CONSTRAINT (newval), "m" (*mem), "0" (oldval), \
+ "i" (offsetof (tcbhead_t, multiple_threads))); \
+ ret; })
+
+#ifdef __x86_64__
+# define __arch_c_compare_and_exchange_val_64_acq(mem, newval, oldval) \
+ ({ __typeof (*mem) ret; \
+ __asm __volatile ("cmpl $0, %%fs:%P5\n\t" \
+ "je 0f\n\t" \
+ "lock\n" \
+ "0:\tcmpxchgq %q2, %1" \
+ : "=a" (ret), "=m" (*mem) \
+ : "q" ((atomic64_t) cast_to_integer (newval)), \
+ "m" (*mem), \
+ "0" ((atomic64_t) cast_to_integer (oldval)), \
+ "i" (offsetof (tcbhead_t, multiple_threads))); \
+ ret; })
+# define do_exchange_and_add_val_64_acq(pfx, mem, value) 0
+# define do_add_val_64_acq(pfx, mem, value) do { } while (0)
+#else
+/* XXX We do not really need 64-bit compare-and-exchange. At least
+ not in the moment. Using it would mean causing portability
+ problems since not many other 32-bit architectures have support for
+ such an operation. So don't define any code for now. If it is
+ really going to be used the code below can be used on Intel Pentium
+ and later, but NOT on i486. */
+# define __arch_c_compare_and_exchange_val_64_acq(mem, newval, oldval) \
+ ({ __typeof (*mem) ret = *(mem); \
+ __atomic_link_error (); \
+ ret = (newval); \
+ ret = (oldval); \
+ ret; })
+
+# define __arch_compare_and_exchange_val_64_acq(mem, newval, oldval) \
+ ({ __typeof (*mem) ret = *(mem); \
+ __atomic_link_error (); \
+ ret = (newval); \
+ ret = (oldval); \
+ ret; })
+
+# define do_exchange_and_add_val_64_acq(pfx, mem, value) \
+ ({ __typeof (value) __addval = (value); \
+ __typeof (*mem) __result; \
+ __typeof (mem) __memp = (mem); \
+ __typeof (*mem) __tmpval; \
+ __result = *__memp; \
+ do \
+ __tmpval = __result; \
+ while ((__result = pfx##_compare_and_exchange_val_64_acq \
+ (__memp, __result + __addval, __result)) == __tmpval); \
+ __result; })
+
+# define do_add_val_64_acq(pfx, mem, value) \
+ { \
+ __typeof (value) __addval = (value); \
+ __typeof (mem) __memp = (mem); \
+ __typeof (*mem) __oldval = *__memp; \
+ __typeof (*mem) __tmpval; \
+ do \
+ __tmpval = __oldval; \
+ while ((__oldval = pfx##_compare_and_exchange_val_64_acq \
+ (__memp, __oldval + __addval, __oldval)) == __tmpval); \
+ }
+#endif
+
+
+/* Note that we need no lock prefix. */
+#define atomic_exchange_acq(mem, newvalue) \
+ ({ __typeof (*mem) result; \
+ if (sizeof (*mem) == 1) \
+ __asm __volatile ("xchgb %b0, %1" \
+ : "=q" (result), "=m" (*mem) \
+ : "0" (newvalue), "m" (*mem)); \
+ else if (sizeof (*mem) == 2) \
+ __asm __volatile ("xchgw %w0, %1" \
+ : "=r" (result), "=m" (*mem) \
+ : "0" (newvalue), "m" (*mem)); \
+ else if (sizeof (*mem) == 4) \
+ __asm __volatile ("xchgl %0, %1" \
+ : "=r" (result), "=m" (*mem) \
+ : "0" (newvalue), "m" (*mem)); \
+ else if (__HAVE_64B_ATOMICS) \
+ __asm __volatile ("xchgq %q0, %1" \
+ : "=r" (result), "=m" (*mem) \
+ : "0" ((atomic64_t) cast_to_integer (newvalue)), \
+ "m" (*mem)); \
+ else \
+ { \
+ result = 0; \
+ __atomic_link_error (); \
+ } \
+ result; })
+
+
+#define __arch_exchange_and_add_body(lock, pfx, mem, value) \
+ ({ __typeof (*mem) __result; \
+ __typeof (value) __addval = (value); \
+ if (sizeof (*mem) == 1) \
+ __asm __volatile (lock "xaddb %b0, %1" \
+ : "=q" (__result), "=m" (*mem) \
+ : "0" (__addval), "m" (*mem), \
+ "i" (offsetof (tcbhead_t, multiple_threads))); \
+ else if (sizeof (*mem) == 2) \
+ __asm __volatile (lock "xaddw %w0, %1" \
+ : "=r" (__result), "=m" (*mem) \
+ : "0" (__addval), "m" (*mem), \
+ "i" (offsetof (tcbhead_t, multiple_threads))); \
+ else if (sizeof (*mem) == 4) \
+ __asm __volatile (lock "xaddl %0, %1" \
+ : "=r" (__result), "=m" (*mem) \
+ : "0" (__addval), "m" (*mem), \
+ "i" (offsetof (tcbhead_t, multiple_threads))); \
+ else if (__HAVE_64B_ATOMICS) \
+ __asm __volatile (lock "xaddq %q0, %1" \
+ : "=r" (__result), "=m" (*mem) \
+ : "0" ((atomic64_t) cast_to_integer (__addval)), \
+ "m" (*mem), \
+ "i" (offsetof (tcbhead_t, multiple_threads))); \
+ else \
+ __result = do_exchange_and_add_val_64_acq (pfx, (mem), __addval); \
+ __result; })
+
+#define atomic_exchange_and_add(mem, value) \
+ __sync_fetch_and_add (mem, value)
+
+#define __arch_exchange_and_add_cprefix \
+ "cmpl $0, %%" SEG_REG ":%P4\n\tje 0f\n\tlock\n0:\t"
+
+#define catomic_exchange_and_add(mem, value) \
+ __arch_exchange_and_add_body (__arch_exchange_and_add_cprefix, __arch_c, \
+ mem, value)
+
+
+#define __arch_add_body(lock, pfx, apfx, mem, value) \
+ do { \
+ if (__builtin_constant_p (value) && (value) == 1) \
+ pfx##_increment (mem); \
+ else if (__builtin_constant_p (value) && (value) == -1) \
+ pfx##_decrement (mem); \
+ else if (sizeof (*mem) == 1) \
+ __asm __volatile (lock "addb %b1, %0" \
+ : "=m" (*mem) \
+ : IBR_CONSTRAINT (value), "m" (*mem), \
+ "i" (offsetof (tcbhead_t, multiple_threads))); \
+ else if (sizeof (*mem) == 2) \
+ __asm __volatile (lock "addw %w1, %0" \
+ : "=m" (*mem) \
+ : "ir" (value), "m" (*mem), \
+ "i" (offsetof (tcbhead_t, multiple_threads))); \
+ else if (sizeof (*mem) == 4) \
+ __asm __volatile (lock "addl %1, %0" \
+ : "=m" (*mem) \
+ : "ir" (value), "m" (*mem), \
+ "i" (offsetof (tcbhead_t, multiple_threads))); \
+ else if (__HAVE_64B_ATOMICS) \
+ __asm __volatile (lock "addq %q1, %0" \
+ : "=m" (*mem) \
+ : "ir" ((atomic64_t) cast_to_integer (value)), \
+ "m" (*mem), \
+ "i" (offsetof (tcbhead_t, multiple_threads))); \
+ else \
+ do_add_val_64_acq (apfx, (mem), (value)); \
+ } while (0)
+
+# define atomic_add(mem, value) \
+ __arch_add_body (LOCK_PREFIX, atomic, __arch, mem, value)
+
+#define __arch_add_cprefix \
+ "cmpl $0, %%" SEG_REG ":%P3\n\tje 0f\n\tlock\n0:\t"
+
+#define catomic_add(mem, value) \
+ __arch_add_body (__arch_add_cprefix, atomic, __arch_c, mem, value)
+
+
+#define atomic_add_negative(mem, value) \
+ ({ unsigned char __result; \
+ if (sizeof (*mem) == 1) \
+ __asm __volatile (LOCK_PREFIX "addb %b2, %0; sets %1" \
+ : "=m" (*mem), "=qm" (__result) \
+ : IBR_CONSTRAINT (value), "m" (*mem)); \
+ else if (sizeof (*mem) == 2) \
+ __asm __volatile (LOCK_PREFIX "addw %w2, %0; sets %1" \
+ : "=m" (*mem), "=qm" (__result) \
+ : "ir" (value), "m" (*mem)); \
+ else if (sizeof (*mem) == 4) \
+ __asm __volatile (LOCK_PREFIX "addl %2, %0; sets %1" \
+ : "=m" (*mem), "=qm" (__result) \
+ : "ir" (value), "m" (*mem)); \
+ else if (__HAVE_64B_ATOMICS) \
+ __asm __volatile (LOCK_PREFIX "addq %q2, %0; sets %1" \
+ : "=m" (*mem), "=qm" (__result) \
+ : "ir" ((atomic64_t) cast_to_integer (value)), \
+ "m" (*mem)); \
+ else \
+ __atomic_link_error (); \
+ __result; })
+
+
+#define atomic_add_zero(mem, value) \
+ ({ unsigned char __result; \
+ if (sizeof (*mem) == 1) \
+ __asm __volatile (LOCK_PREFIX "addb %b2, %0; setz %1" \
+ : "=m" (*mem), "=qm" (__result) \
+ : IBR_CONSTRAINT (value), "m" (*mem)); \
+ else if (sizeof (*mem) == 2) \
+ __asm __volatile (LOCK_PREFIX "addw %w2, %0; setz %1" \
+ : "=m" (*mem), "=qm" (__result) \
+ : "ir" (value), "m" (*mem)); \
+ else if (sizeof (*mem) == 4) \
+ __asm __volatile (LOCK_PREFIX "addl %2, %0; setz %1" \
+ : "=m" (*mem), "=qm" (__result) \
+ : "ir" (value), "m" (*mem)); \
+ else if (__HAVE_64B_ATOMICS) \
+ __asm __volatile (LOCK_PREFIX "addq %q2, %0; setz %1" \
+ : "=m" (*mem), "=qm" (__result) \
+ : "ir" ((atomic64_t) cast_to_integer (value)), \
+ "m" (*mem)); \
+ else \
+ __atomic_link_error (); \
+ __result; })
+
+
+#define __arch_increment_body(lock, pfx, mem) \
+ do { \
+ if (sizeof (*mem) == 1) \
+ __asm __volatile (lock "incb %b0" \
+ : "=m" (*mem) \
+ : "m" (*mem), \
+ "i" (offsetof (tcbhead_t, multiple_threads))); \
+ else if (sizeof (*mem) == 2) \
+ __asm __volatile (lock "incw %w0" \
+ : "=m" (*mem) \
+ : "m" (*mem), \
+ "i" (offsetof (tcbhead_t, multiple_threads))); \
+ else if (sizeof (*mem) == 4) \
+ __asm __volatile (lock "incl %0" \
+ : "=m" (*mem) \
+ : "m" (*mem), \
+ "i" (offsetof (tcbhead_t, multiple_threads))); \
+ else if (__HAVE_64B_ATOMICS) \
+ __asm __volatile (lock "incq %q0" \
+ : "=m" (*mem) \
+ : "m" (*mem), \
+ "i" (offsetof (tcbhead_t, multiple_threads))); \
+ else \
+ do_add_val_64_acq (pfx, mem, 1); \
+ } while (0)
+
+#define atomic_increment(mem) __arch_increment_body (LOCK_PREFIX, __arch, mem)
+
+#define __arch_increment_cprefix \
+ "cmpl $0, %%" SEG_REG ":%P2\n\tje 0f\n\tlock\n0:\t"
+
+#define catomic_increment(mem) \
+ __arch_increment_body (__arch_increment_cprefix, __arch_c, mem)
+
+
+#define atomic_increment_and_test(mem) \
+ ({ unsigned char __result; \
+ if (sizeof (*mem) == 1) \
+ __asm __volatile (LOCK_PREFIX "incb %b0; sete %b1" \
+ : "=m" (*mem), "=qm" (__result) \
+ : "m" (*mem)); \
+ else if (sizeof (*mem) == 2) \
+ __asm __volatile (LOCK_PREFIX "incw %w0; sete %w1" \
+ : "=m" (*mem), "=qm" (__result) \
+ : "m" (*mem)); \
+ else if (sizeof (*mem) == 4) \
+ __asm __volatile (LOCK_PREFIX "incl %0; sete %1" \
+ : "=m" (*mem), "=qm" (__result) \
+ : "m" (*mem)); \
+ else if (__HAVE_64B_ATOMICS) \
+ __asm __volatile (LOCK_PREFIX "incq %q0; sete %1" \
+ : "=m" (*mem), "=qm" (__result) \
+ : "m" (*mem)); \
+ else \
+ __atomic_link_error (); \
+ __result; })
+
+
+#define __arch_decrement_body(lock, pfx, mem) \
+ do { \
+ if (sizeof (*mem) == 1) \
+ __asm __volatile (lock "decb %b0" \
+ : "=m" (*mem) \
+ : "m" (*mem), \
+ "i" (offsetof (tcbhead_t, multiple_threads))); \
+ else if (sizeof (*mem) == 2) \
+ __asm __volatile (lock "decw %w0" \
+ : "=m" (*mem) \
+ : "m" (*mem), \
+ "i" (offsetof (tcbhead_t, multiple_threads))); \
+ else if (sizeof (*mem) == 4) \
+ __asm __volatile (lock "decl %0" \
+ : "=m" (*mem) \
+ : "m" (*mem), \
+ "i" (offsetof (tcbhead_t, multiple_threads))); \
+ else if (__HAVE_64B_ATOMICS) \
+ __asm __volatile (lock "decq %q0" \
+ : "=m" (*mem) \
+ : "m" (*mem), \
+ "i" (offsetof (tcbhead_t, multiple_threads))); \
+ else \
+ do_add_val_64_acq (pfx, mem, -1); \
+ } while (0)
+
+#define atomic_decrement(mem) __arch_decrement_body (LOCK_PREFIX, __arch, mem)
+
+#define __arch_decrement_cprefix \
+ "cmpl $0, %%" SEG_REG ":%P2\n\tje 0f\n\tlock\n0:\t"
+
+#define catomic_decrement(mem) \
+ __arch_decrement_body (__arch_decrement_cprefix, __arch_c, mem)
+
+
+#define atomic_decrement_and_test(mem) \
+ ({ unsigned char __result; \
+ if (sizeof (*mem) == 1) \
+ __asm __volatile (LOCK_PREFIX "decb %b0; sete %1" \
+ : "=m" (*mem), "=qm" (__result) \
+ : "m" (*mem)); \
+ else if (sizeof (*mem) == 2) \
+ __asm __volatile (LOCK_PREFIX "decw %w0; sete %1" \
+ : "=m" (*mem), "=qm" (__result) \
+ : "m" (*mem)); \
+ else if (sizeof (*mem) == 4) \
+ __asm __volatile (LOCK_PREFIX "decl %0; sete %1" \
+ : "=m" (*mem), "=qm" (__result) \
+ : "m" (*mem)); \
+ else \
+ __asm __volatile (LOCK_PREFIX "decq %q0; sete %1" \
+ : "=m" (*mem), "=qm" (__result) \
+ : "m" (*mem)); \
+ __result; })
+
+
+#define atomic_bit_set(mem, bit) \
+ do { \
+ if (sizeof (*mem) == 1) \
+ __asm __volatile (LOCK_PREFIX "orb %b2, %0" \
+ : "=m" (*mem) \
+ : "m" (*mem), IBR_CONSTRAINT (1L << (bit))); \
+ else if (sizeof (*mem) == 2) \
+ __asm __volatile (LOCK_PREFIX "orw %w2, %0" \
+ : "=m" (*mem) \
+ : "m" (*mem), "ir" (1L << (bit))); \
+ else if (sizeof (*mem) == 4) \
+ __asm __volatile (LOCK_PREFIX "orl %2, %0" \
+ : "=m" (*mem) \
+ : "m" (*mem), "ir" (1L << (bit))); \
+ else if (__builtin_constant_p (bit) && (bit) < 32) \
+ __asm __volatile (LOCK_PREFIX "orq %2, %0" \
+ : "=m" (*mem) \
+ : "m" (*mem), "i" (1L << (bit))); \
+ else if (__HAVE_64B_ATOMICS) \
+ __asm __volatile (LOCK_PREFIX "orq %q2, %0" \
+ : "=m" (*mem) \
+ : "m" (*mem), "r" (1UL << (bit))); \
+ else \
+ __atomic_link_error (); \
+ } while (0)
+
+
+#define atomic_bit_test_set(mem, bit) \
+ ({ unsigned char __result; \
+ if (sizeof (*mem) == 1) \
+ __asm __volatile (LOCK_PREFIX "btsb %3, %1; setc %0" \
+ : "=q" (__result), "=m" (*mem) \
+ : "m" (*mem), IBR_CONSTRAINT (bit)); \
+ else if (sizeof (*mem) == 2) \
+ __asm __volatile (LOCK_PREFIX "btsw %3, %1; setc %0" \
+ : "=q" (__result), "=m" (*mem) \
+ : "m" (*mem), "ir" (bit)); \
+ else if (sizeof (*mem) == 4) \
+ __asm __volatile (LOCK_PREFIX "btsl %3, %1; setc %0" \
+ : "=q" (__result), "=m" (*mem) \
+ : "m" (*mem), "ir" (bit)); \
+ else if (__HAVE_64B_ATOMICS) \
+ __asm __volatile (LOCK_PREFIX "btsq %3, %1; setc %0" \
+ : "=q" (__result), "=m" (*mem) \
+ : "m" (*mem), "ir" (bit)); \
+ else \
+ __atomic_link_error (); \
+ __result; })
+
+
+#define __arch_and_body(lock, mem, mask) \
+ do { \
+ if (sizeof (*mem) == 1) \
+ __asm __volatile (lock "andb %b1, %0" \
+ : "=m" (*mem) \
+ : IBR_CONSTRAINT (mask), "m" (*mem), \
+ "i" (offsetof (tcbhead_t, multiple_threads))); \
+ else if (sizeof (*mem) == 2) \
+ __asm __volatile (lock "andw %w1, %0" \
+ : "=m" (*mem) \
+ : "ir" (mask), "m" (*mem), \
+ "i" (offsetof (tcbhead_t, multiple_threads))); \
+ else if (sizeof (*mem) == 4) \
+ __asm __volatile (lock "andl %1, %0" \
+ : "=m" (*mem) \
+ : "ir" (mask), "m" (*mem), \
+ "i" (offsetof (tcbhead_t, multiple_threads))); \
+ else if (__HAVE_64B_ATOMICS) \
+ __asm __volatile (lock "andq %q1, %0" \
+ : "=m" (*mem) \
+ : "ir" (mask), "m" (*mem), \
+ "i" (offsetof (tcbhead_t, multiple_threads))); \
+ else \
+ __atomic_link_error (); \
+ } while (0)
+
+#define __arch_cprefix \
+ "cmpl $0, %%" SEG_REG ":%P3\n\tje 0f\n\tlock\n0:\t"
+
+#define atomic_and(mem, mask) __arch_and_body (LOCK_PREFIX, mem, mask)
+
+#define catomic_and(mem, mask) __arch_and_body (__arch_cprefix, mem, mask)
+
+
+#define __arch_or_body(lock, mem, mask) \
+ do { \
+ if (sizeof (*mem) == 1) \
+ __asm __volatile (lock "orb %b1, %0" \
+ : "=m" (*mem) \
+ : IBR_CONSTRAINT (mask), "m" (*mem), \
+ "i" (offsetof (tcbhead_t, multiple_threads))); \
+ else if (sizeof (*mem) == 2) \
+ __asm __volatile (lock "orw %w1, %0" \
+ : "=m" (*mem) \
+ : "ir" (mask), "m" (*mem), \
+ "i" (offsetof (tcbhead_t, multiple_threads))); \
+ else if (sizeof (*mem) == 4) \
+ __asm __volatile (lock "orl %1, %0" \
+ : "=m" (*mem) \
+ : "ir" (mask), "m" (*mem), \
+ "i" (offsetof (tcbhead_t, multiple_threads))); \
+ else if (__HAVE_64B_ATOMICS) \
+ __asm __volatile (lock "orq %q1, %0" \
+ : "=m" (*mem) \
+ : "ir" (mask), "m" (*mem), \
+ "i" (offsetof (tcbhead_t, multiple_threads))); \
+ else \
+ __atomic_link_error (); \
+ } while (0)
+
+#define atomic_or(mem, mask) __arch_or_body (LOCK_PREFIX, mem, mask)
+
+#define catomic_or(mem, mask) __arch_or_body (__arch_cprefix, mem, mask)
+
+/* We don't use mfence because it is supposedly slower due to having to
+ provide stronger guarantees (e.g., regarding self-modifying code). */
+#define atomic_full_barrier() \
+ __asm __volatile (LOCK_PREFIX "orl $0, (%%" SP_REG ")" ::: "memory")
+#define atomic_read_barrier() __asm ("" ::: "memory")
+#define atomic_write_barrier() __asm ("" ::: "memory")
+
+#define atomic_spin_nop() __asm ("pause")
+
+#endif /* atomic-machine.h */
diff --git a/sysdeps/x86/bits/endian.h b/sysdeps/x86/bits/endian.h
deleted file mode 100644
index 5a56c726f7..0000000000
--- a/sysdeps/x86/bits/endian.h
+++ /dev/null
@@ -1,7 +0,0 @@
-/* i386/x86_64 are little-endian. */
-
-#ifndef _ENDIAN_H
-# error "Never use <bits/endian.h> directly; include <endian.h> instead."
-#endif
-
-#define __BYTE_ORDER __LITTLE_ENDIAN
diff --git a/sysdeps/x86/bits/endianness.h b/sysdeps/x86/bits/endianness.h
new file mode 100644
index 0000000000..962a9ae4d6
--- /dev/null
+++ b/sysdeps/x86/bits/endianness.h
@@ -0,0 +1,11 @@
+#ifndef _BITS_ENDIANNESS_H
+#define _BITS_ENDIANNESS_H 1
+
+#ifndef _BITS_ENDIAN_H
+# error "Never use <bits/endianness.h> directly; include <endian.h> instead."
+#endif
+
+/* i386/x86_64 are little-endian. */
+#define __BYTE_ORDER __LITTLE_ENDIAN
+
+#endif /* bits/endianness.h */
diff --git a/sysdeps/x86/bits/floatn.h b/sysdeps/x86/bits/floatn.h
index 49c75f26c5..66f2baf660 100644
--- a/sysdeps/x86/bits/floatn.h
+++ b/sysdeps/x86/bits/floatn.h
@@ -1,5 +1,5 @@
/* Macros to control TS 18661-3 glibc features on x86.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_FLOATN_H
#define _BITS_FLOATN_H
diff --git a/sysdeps/x86/bits/flt-eval-method.h b/sysdeps/x86/bits/flt-eval-method.h
index a6134a455f..3de048340c 100644
--- a/sysdeps/x86/bits/flt-eval-method.h
+++ b/sysdeps/x86/bits/flt-eval-method.h
@@ -1,5 +1,5 @@
/* Define __GLIBC_FLT_EVAL_METHOD. x86 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MATH_H
# error "Never use <bits/flt-eval-method.h> directly; include <math.h> instead."
diff --git a/sysdeps/x86/bits/fp-logb.h b/sysdeps/x86/bits/fp-logb.h
index 267c7ec1e1..295e7623f7 100644
--- a/sysdeps/x86/bits/fp-logb.h
+++ b/sysdeps/x86/bits/fp-logb.h
@@ -1,5 +1,5 @@
/* Define __FP_LOGB0_IS_MIN and __FP_LOGBNAN_IS_MIN. x86 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MATH_H
# error "Never use <bits/fp-logb.h> directly; include <math.h> instead."
diff --git a/sysdeps/x86/bits/indirect-return.h b/sysdeps/x86/bits/indirect-return.h
index d1acaca3b9..b8267233c5 100644
--- a/sysdeps/x86/bits/indirect-return.h
+++ b/sysdeps/x86/bits/indirect-return.h
@@ -1,5 +1,5 @@
/* Definition of __INDIRECT_RETURN. x86 version.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _UCONTEXT_H
# error "Never include <bits/indirect-return.h> directly; use <ucontext.h> instead."
diff --git a/sysdeps/x86/bits/link.h b/sysdeps/x86/bits/link.h
index a97c41162c..b29574595d 100644
--- a/sysdeps/x86/bits/link.h
+++ b/sysdeps/x86/bits/link.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2004-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _LINK_H
# error "Never include <bits/link.h> directly; use <link.h> instead."
diff --git a/sysdeps/x86/bits/select.h b/sysdeps/x86/bits/select.h
index 2c0a2b5eb3..076adc0992 100644
--- a/sysdeps/x86/bits/select.h
+++ b/sysdeps/x86/bits/select.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_SELECT_H
# error "Never use <bits/select.h> directly; include <sys/select.h> instead."
diff --git a/sysdeps/x86/bits/semaphore.h b/sysdeps/x86/bits/semaphore.h
index 1b8daf98be..c8c0e5c3fe 100644
--- a/sysdeps/x86/bits/semaphore.h
+++ b/sysdeps/x86/bits/semaphore.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SEMAPHORE_H
# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
diff --git a/sysdeps/x86/bits/setjmp.h b/sysdeps/x86/bits/setjmp.h
index e0c22ac78f..4b50b04d03 100644
--- a/sysdeps/x86/bits/setjmp.h
+++ b/sysdeps/x86/bits/setjmp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define the machine-dependent type `jmp_buf'. x86-64 version. */
#ifndef _BITS_SETJMP_H
diff --git a/sysdeps/x86/bits/xtitypes.h b/sysdeps/x86/bits/xtitypes.h
deleted file mode 100644
index 4fd0fe788b..0000000000
--- a/sysdeps/x86/bits/xtitypes.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* bits/xtitypes.h -- Define some types used by <bits/stropts.h>. x86-64.
- Copyright (C) 2002-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _STROPTS_H
-# error "Never include <bits/xtitypes.h> directly; use <stropts.h> instead."
-#endif
-
-#ifndef _BITS_XTITYPES_H
-#define _BITS_XTITYPES_H 1
-
-#include <bits/types.h>
-
-/* This type is used by some structs in <bits/stropts.h>. */
-typedef __SLONG32_TYPE __t_scalar_t;
-typedef __ULONG32_TYPE __t_uscalar_t;
-
-
-#endif /* bits/xtitypes.h */
diff --git a/sysdeps/x86/cacheinfo.c b/sysdeps/x86/cacheinfo.c
index b9444ddd52..6b17482518 100644
--- a/sysdeps/x86/cacheinfo.c
+++ b/sysdeps/x86/cacheinfo.c
@@ -1,5 +1,5 @@
/* x86_64 cache info.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
@@ -205,8 +205,8 @@ intel_check_word (int name, unsigned int value, bool *has_level_2,
/* Intel reused this value. For family 15, model 6 it
specifies the 3rd level cache. Otherwise the 2nd
level cache. */
- unsigned int family = cpu_features->family;
- unsigned int model = cpu_features->model;
+ unsigned int family = cpu_features->basic.family;
+ unsigned int model = cpu_features->basic.model;
if (family == 15 && model == 6)
{
@@ -258,7 +258,7 @@ intel_check_word (int name, unsigned int value, bool *has_level_2,
static long int __attribute__ ((noinline))
handle_intel (int name, const struct cpu_features *cpu_features)
{
- unsigned int maxidx = cpu_features->max_cpuid;
+ unsigned int maxidx = cpu_features->basic.max_cpuid;
/* Return -1 for older CPUs. */
if (maxidx < 2)
@@ -443,10 +443,10 @@ __cache_sysconf (int name)
{
const struct cpu_features *cpu_features = __get_cpu_features ();
- if (cpu_features->kind == arch_kind_intel)
+ if (cpu_features->basic.kind == arch_kind_intel)
return handle_intel (name, cpu_features);
- if (cpu_features->kind == arch_kind_amd)
+ if (cpu_features->basic.kind == arch_kind_amd)
return handle_amd (name);
// XXX Fill in more vendors.
@@ -497,9 +497,9 @@ init_cacheinfo (void)
unsigned int level;
unsigned int threads = 0;
const struct cpu_features *cpu_features = __get_cpu_features ();
- int max_cpuid = cpu_features->max_cpuid;
+ int max_cpuid = cpu_features->basic.max_cpuid;
- if (cpu_features->kind == arch_kind_intel)
+ if (cpu_features->basic.kind == arch_kind_intel)
{
data = handle_intel (_SC_LEVEL1_DCACHE_SIZE, cpu_features);
@@ -538,8 +538,8 @@ init_cacheinfo (void)
highest cache level. */
if (max_cpuid >= 4)
{
- unsigned int family = cpu_features->family;
- unsigned int model = cpu_features->model;
+ unsigned int family = cpu_features->basic.family;
+ unsigned int model = cpu_features->basic.model;
int i = 0;
@@ -700,7 +700,7 @@ intel_bug_no_cache_info:
shared += core;
}
}
- else if (cpu_features->kind == arch_kind_amd)
+ else if (cpu_features->basic.kind == arch_kind_amd)
{
data = handle_amd (_SC_LEVEL1_DCACHE_SIZE);
long int core = handle_amd (_SC_LEVEL2_CACHE_SIZE);
diff --git a/sysdeps/x86/cet-tunables.h b/sysdeps/x86/cet-tunables.h
index ca023053ee..5291fc81b3 100644
--- a/sysdeps/x86/cet-tunables.h
+++ b/sysdeps/x86/cet-tunables.h
@@ -1,6 +1,6 @@
/* x86 CET tuning.
This file is part of the GNU C Library.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-2019 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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Valid control values:
0: Enable CET features based on ELF property note.
diff --git a/sysdeps/x86/check-cet.awk b/sysdeps/x86/check-cet.awk
index 380d998caf..ae268fa995 100644
--- a/sysdeps/x86/check-cet.awk
+++ b/sysdeps/x86/check-cet.awk
@@ -1,5 +1,5 @@
# Verify that all shared objects contain the CET property.
-# Copyright (C) 2018 Free Software Foundation, Inc.
+# Copyright (C) 2018-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
@@ -14,7 +14,7 @@
#
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
# This awk script expects to get command-line files that are each
# the output of 'readelf -n' on a single shared object.
diff --git a/sysdeps/x86/cpu-features-offsets.sym b/sysdeps/x86/cpu-features-offsets.sym
index 33dd094e37..6d03cea8e8 100644
--- a/sysdeps/x86/cpu-features-offsets.sym
+++ b/sysdeps/x86/cpu-features-offsets.sym
@@ -2,23 +2,5 @@
#include <ldsodefs.h>
-#define rtld_global_ro_offsetof(mem) offsetof (struct rtld_global_ro, mem)
-
-RTLD_GLOBAL_RO_DL_X86_CPU_FEATURES_OFFSET rtld_global_ro_offsetof (_dl_x86_cpu_features)
-
-CPU_FEATURES_SIZE sizeof (struct cpu_features)
-CPUID_OFFSET offsetof (struct cpu_features, cpuid)
-CPUID_SIZE sizeof (struct cpuid_registers)
-CPUID_EAX_OFFSET offsetof (struct cpuid_registers, eax)
-CPUID_EBX_OFFSET offsetof (struct cpuid_registers, ebx)
-CPUID_ECX_OFFSET offsetof (struct cpuid_registers, ecx)
-CPUID_EDX_OFFSET offsetof (struct cpuid_registers, edx)
-FAMILY_OFFSET offsetof (struct cpu_features, family)
-MODEL_OFFSET offsetof (struct cpu_features, model)
+RTLD_GLOBAL_RO_DL_X86_CPU_FEATURES_OFFSET offsetof (struct rtld_global_ro, _dl_x86_cpu_features)
XSAVE_STATE_SIZE_OFFSET offsetof (struct cpu_features, xsave_state_size)
-FEATURE_OFFSET offsetof (struct cpu_features, feature)
-FEATURE_SIZE sizeof (unsigned int)
-
-COMMON_CPUID_INDEX_1
-COMMON_CPUID_INDEX_7
-FEATURE_INDEX_1
diff --git a/sysdeps/x86/cpu-features.c b/sysdeps/x86/cpu-features.c
index ea0b64fdb9..0650786f01 100644
--- a/sysdeps/x86/cpu-features.c
+++ b/sysdeps/x86/cpu-features.c
@@ -1,6 +1,6 @@
/* Initialize CPU feature data.
This file is part of the GNU C Library.
- Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ Copyright (C) 2008-2019 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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <cpuid.h>
#include <cpu-features.h>
@@ -22,7 +22,7 @@
#include <libc-pointer-arith.h>
#if HAVE_TUNABLES
-# define TUNABLE_NAMESPACE tune
+# define TUNABLE_NAMESPACE cpu
# include <unistd.h> /* Get STDOUT_FILENO for _dl_printf. */
# include <elf/dl-tunables.h>
@@ -53,11 +53,22 @@ get_extended_indices (struct cpu_features *cpu_features)
cpu_features->cpuid[COMMON_CPUID_INDEX_80000001].ebx,
cpu_features->cpuid[COMMON_CPUID_INDEX_80000001].ecx,
cpu_features->cpuid[COMMON_CPUID_INDEX_80000001].edx);
-
+ if (eax >= 0x80000007)
+ __cpuid (0x80000007,
+ cpu_features->cpuid[COMMON_CPUID_INDEX_80000007].eax,
+ cpu_features->cpuid[COMMON_CPUID_INDEX_80000007].ebx,
+ cpu_features->cpuid[COMMON_CPUID_INDEX_80000007].ecx,
+ cpu_features->cpuid[COMMON_CPUID_INDEX_80000007].edx);
+ if (eax >= 0x80000008)
+ __cpuid (0x80000008,
+ cpu_features->cpuid[COMMON_CPUID_INDEX_80000008].eax,
+ cpu_features->cpuid[COMMON_CPUID_INDEX_80000008].ebx,
+ cpu_features->cpuid[COMMON_CPUID_INDEX_80000008].ecx,
+ cpu_features->cpuid[COMMON_CPUID_INDEX_80000008].edx);
}
static void
-get_common_indeces (struct cpu_features *cpu_features,
+get_common_indices (struct cpu_features *cpu_features,
unsigned int *family, unsigned int *model,
unsigned int *extended_model, unsigned int *stepping)
{
@@ -79,13 +90,20 @@ get_common_indeces (struct cpu_features *cpu_features,
}
}
- if (cpu_features->max_cpuid >= 7)
+ if (cpu_features->basic.max_cpuid >= 7)
__cpuid_count (7, 0,
cpu_features->cpuid[COMMON_CPUID_INDEX_7].eax,
cpu_features->cpuid[COMMON_CPUID_INDEX_7].ebx,
cpu_features->cpuid[COMMON_CPUID_INDEX_7].ecx,
cpu_features->cpuid[COMMON_CPUID_INDEX_7].edx);
+ if (cpu_features->basic.max_cpuid >= 0xd)
+ __cpuid_count (0xd, 1,
+ cpu_features->cpuid[COMMON_CPUID_INDEX_D_ECX_1].eax,
+ cpu_features->cpuid[COMMON_CPUID_INDEX_D_ECX_1].ebx,
+ cpu_features->cpuid[COMMON_CPUID_INDEX_D_ECX_1].ecx,
+ cpu_features->cpuid[COMMON_CPUID_INDEX_D_ECX_1].edx);
+
/* Can we call xgetbv? */
if (CPU_FEATURES_CPU_P (cpu_features, OSXSAVE))
{
@@ -93,8 +111,8 @@ get_common_indeces (struct cpu_features *cpu_features,
unsigned int xcrhigh;
asm ("xgetbv" : "=a" (xcrlow), "=d" (xcrhigh) : "c" (0));
/* Is YMM and XMM state usable? */
- if ((xcrlow & (bit_YMM_state | bit_XMM_state)) ==
- (bit_YMM_state | bit_XMM_state))
+ if ((xcrlow & (bit_YMM_state | bit_XMM_state))
+ == (bit_YMM_state | bit_XMM_state))
{
/* Determine if AVX is usable. */
if (CPU_FEATURES_CPU_P (cpu_features, AVX))
@@ -117,30 +135,94 @@ get_common_indeces (struct cpu_features *cpu_features,
if (CPU_FEATURES_CPU_P (cpu_features, FMA))
cpu_features->feature[index_arch_FMA_Usable]
|= bit_arch_FMA_Usable;
+ /* Determine if VAES is usable. */
+ if (CPU_FEATURES_CPU_P (cpu_features, VAES))
+ cpu_features->feature[index_arch_VAES_Usable]
+ |= bit_arch_VAES_Usable;
+ /* Determine if VPCLMULQDQ is usable. */
+ if (CPU_FEATURES_CPU_P (cpu_features, VPCLMULQDQ))
+ cpu_features->feature[index_arch_VPCLMULQDQ_Usable]
+ |= bit_arch_VPCLMULQDQ_Usable;
+ /* Determine if XOP is usable. */
+ if (CPU_FEATURES_CPU_P (cpu_features, XOP))
+ cpu_features->feature[index_arch_XOP_Usable]
+ |= bit_arch_XOP_Usable;
}
/* Check if OPMASK state, upper 256-bit of ZMM0-ZMM15 and
ZMM16-ZMM31 state are enabled. */
if ((xcrlow & (bit_Opmask_state | bit_ZMM0_15_state
- | bit_ZMM16_31_state)) ==
- (bit_Opmask_state | bit_ZMM0_15_state | bit_ZMM16_31_state))
+ | bit_ZMM16_31_state))
+ == (bit_Opmask_state | bit_ZMM0_15_state | bit_ZMM16_31_state))
{
/* Determine if AVX512F is usable. */
if (CPU_FEATURES_CPU_P (cpu_features, AVX512F))
{
cpu_features->feature[index_arch_AVX512F_Usable]
|= bit_arch_AVX512F_Usable;
+ /* Determine if AVX512CD is usable. */
+ if (CPU_FEATURES_CPU_P (cpu_features, AVX512CD))
+ cpu_features->feature[index_arch_AVX512CD_Usable]
+ |= bit_arch_AVX512CD_Usable;
+ /* Determine if AVX512ER is usable. */
+ if (CPU_FEATURES_CPU_P (cpu_features, AVX512ER))
+ cpu_features->feature[index_arch_AVX512ER_Usable]
+ |= bit_arch_AVX512ER_Usable;
+ /* Determine if AVX512PF is usable. */
+ if (CPU_FEATURES_CPU_P (cpu_features, AVX512PF))
+ cpu_features->feature[index_arch_AVX512PF_Usable]
+ |= bit_arch_AVX512PF_Usable;
+ /* Determine if AVX512VL is usable. */
+ if (CPU_FEATURES_CPU_P (cpu_features, AVX512VL))
+ cpu_features->feature[index_arch_AVX512VL_Usable]
+ |= bit_arch_AVX512VL_Usable;
/* Determine if AVX512DQ is usable. */
if (CPU_FEATURES_CPU_P (cpu_features, AVX512DQ))
cpu_features->feature[index_arch_AVX512DQ_Usable]
|= bit_arch_AVX512DQ_Usable;
+ /* Determine if AVX512BW is usable. */
+ if (CPU_FEATURES_CPU_P (cpu_features, AVX512BW))
+ cpu_features->feature[index_arch_AVX512BW_Usable]
+ |= bit_arch_AVX512BW_Usable;
+ /* Determine if AVX512_4FMAPS is usable. */
+ if (CPU_FEATURES_CPU_P (cpu_features, AVX512_4FMAPS))
+ cpu_features->feature[index_arch_AVX512_4FMAPS_Usable]
+ |= bit_arch_AVX512_4FMAPS_Usable;
+ /* Determine if AVX512_4VNNIW is usable. */
+ if (CPU_FEATURES_CPU_P (cpu_features, AVX512_4VNNIW))
+ cpu_features->feature[index_arch_AVX512_4VNNIW_Usable]
+ |= bit_arch_AVX512_4VNNIW_Usable;
+ /* Determine if AVX512_BITALG is usable. */
+ if (CPU_FEATURES_CPU_P (cpu_features, AVX512_BITALG))
+ cpu_features->feature[index_arch_AVX512_BITALG_Usable]
+ |= bit_arch_AVX512_BITALG_Usable;
+ /* Determine if AVX512_IFMA is usable. */
+ if (CPU_FEATURES_CPU_P (cpu_features, AVX512_IFMA))
+ cpu_features->feature[index_arch_AVX512_IFMA_Usable]
+ |= bit_arch_AVX512_IFMA_Usable;
+ /* Determine if AVX512_VBMI is usable. */
+ if (CPU_FEATURES_CPU_P (cpu_features, AVX512_VBMI))
+ cpu_features->feature[index_arch_AVX512_VBMI_Usable]
+ |= bit_arch_AVX512_VBMI_Usable;
+ /* Determine if AVX512_VBMI2 is usable. */
+ if (CPU_FEATURES_CPU_P (cpu_features, AVX512_VBMI2))
+ cpu_features->feature[index_arch_AVX512_VBMI2_Usable]
+ |= bit_arch_AVX512_VBMI2_Usable;
+ /* Determine if is AVX512_VNNI usable. */
+ if (CPU_FEATURES_CPU_P (cpu_features, AVX512_VNNI))
+ cpu_features->feature[index_arch_AVX512_VNNI_Usable]
+ |= bit_arch_AVX512_VNNI_Usable;
+ /* Determine if AVX512_VPOPCNTDQ is usable. */
+ if (CPU_FEATURES_CPU_P (cpu_features, AVX512_VPOPCNTDQ))
+ cpu_features->feature[index_arch_AVX512_VPOPCNTDQ_Usable]
+ |= bit_arch_AVX512_VPOPCNTDQ_Usable;
}
}
}
/* For _dl_runtime_resolve, set xsave_state_size to xsave area
size + integer register save size and align it to 64 bytes. */
- if (cpu_features->max_cpuid >= 0xd)
+ if (cpu_features->basic.max_cpuid >= 0xd)
{
unsigned int eax, ebx, ecx, edx;
@@ -155,10 +237,8 @@ get_common_indeces (struct cpu_features *cpu_features,
cpu_features->xsave_state_full_size
= xsave_state_full_size;
- __cpuid_count (0xd, 1, eax, ebx, ecx, edx);
-
/* Check if XSAVEC is available. */
- if ((eax & (1 << 1)) != 0)
+ if (CPU_FEATURES_CPU_P (cpu_features, XSAVEC))
{
unsigned int xstate_comp_offsets[32];
unsigned int xstate_comp_sizes[32];
@@ -210,12 +290,25 @@ get_common_indeces (struct cpu_features *cpu_features,
}
}
+_Static_assert (((index_arch_Fast_Unaligned_Load
+ == index_arch_Fast_Unaligned_Copy)
+ && (index_arch_Fast_Unaligned_Load
+ == index_arch_Prefer_PMINUB_for_stringop)
+ && (index_arch_Fast_Unaligned_Load
+ == index_arch_Slow_SSE4_2)
+ && (index_arch_Fast_Unaligned_Load
+ == index_arch_Fast_Rep_String)
+ && (index_arch_Fast_Unaligned_Load
+ == index_arch_Fast_Copy_Backward)),
+ "Incorrect index_arch_Fast_Unaligned_Load");
+
static inline void
init_cpu_features (struct cpu_features *cpu_features)
{
unsigned int ebx, ecx, edx;
unsigned int family = 0;
unsigned int model = 0;
+ unsigned int stepping = 0;
enum cpu_features_kind kind;
#if !HAS_CPUID
@@ -226,16 +319,16 @@ init_cpu_features (struct cpu_features *cpu_features)
}
#endif
- __cpuid (0, cpu_features->max_cpuid, ebx, ecx, edx);
+ __cpuid (0, cpu_features->basic.max_cpuid, ebx, ecx, edx);
/* This spells out "GenuineIntel". */
if (ebx == 0x756e6547 && ecx == 0x6c65746e && edx == 0x49656e69)
{
- unsigned int extended_model, stepping;
+ unsigned int extended_model;
kind = arch_kind_intel;
- get_common_indeces (cpu_features, &family, &model, &extended_model,
+ get_common_indices (cpu_features, &family, &model, &extended_model,
&stepping);
get_extended_indices (cpu_features);
@@ -270,15 +363,6 @@ init_cpu_features (struct cpu_features *cpu_features)
case 0x5d:
/* Unaligned load versions are faster than SSSE3
on Silvermont. */
-#if index_arch_Fast_Unaligned_Load != index_arch_Prefer_PMINUB_for_stringop
-# error index_arch_Fast_Unaligned_Load != index_arch_Prefer_PMINUB_for_stringop
-#endif
-#if index_arch_Fast_Unaligned_Load != index_arch_Slow_SSE4_2
-# error index_arch_Fast_Unaligned_Load != index_arch_Slow_SSE4_2
-#endif
-#if index_arch_Fast_Unaligned_Load != index_arch_Fast_Unaligned_Copy
-# error index_arch_Fast_Unaligned_Load != index_arch_Fast_Unaligned_Copy
-#endif
cpu_features->feature[index_arch_Fast_Unaligned_Load]
|= (bit_arch_Fast_Unaligned_Load
| bit_arch_Fast_Unaligned_Copy
@@ -291,6 +375,7 @@ init_cpu_features (struct cpu_features *cpu_features)
of Core i3/i5/i7 processors if AVX is available. */
if (!CPU_FEATURES_CPU_P (cpu_features, AVX))
break;
+ /* Fall through. */
case 0x1a:
case 0x1e:
@@ -301,26 +386,24 @@ init_cpu_features (struct cpu_features *cpu_features)
case 0x2f:
/* Rep string instructions, unaligned load, unaligned copy,
and pminub are fast on Intel Core i3, i5 and i7. */
-#if index_arch_Fast_Rep_String != index_arch_Fast_Unaligned_Load
-# error index_arch_Fast_Rep_String != index_arch_Fast_Unaligned_Load
-#endif
-#if index_arch_Fast_Rep_String != index_arch_Prefer_PMINUB_for_stringop
-# error index_arch_Fast_Rep_String != index_arch_Prefer_PMINUB_for_stringop
-#endif
-#if index_arch_Fast_Rep_String != index_arch_Fast_Unaligned_Copy
-# error index_arch_Fast_Rep_String != index_arch_Fast_Unaligned_Copy
-#endif
cpu_features->feature[index_arch_Fast_Rep_String]
|= (bit_arch_Fast_Rep_String
| bit_arch_Fast_Unaligned_Load
| bit_arch_Fast_Unaligned_Copy
| bit_arch_Prefer_PMINUB_for_stringop);
break;
+ }
+ /* Disable TSX on some Haswell processors to avoid TSX on kernels that
+ weren't updated with the latest microcode package (which disables
+ broken feature by default). */
+ switch (model)
+ {
case 0x3f:
/* Xeon E7 v3 with stepping >= 4 has working TSX. */
if (stepping >= 4)
break;
+ /* Fall through. */
case 0x3c:
case 0x45:
case 0x46:
@@ -344,14 +427,15 @@ init_cpu_features (struct cpu_features *cpu_features)
cpu_features->feature[index_arch_Prefer_No_AVX512]
|= bit_arch_Prefer_No_AVX512;
}
- /* This spells out "AuthenticAMD". */
- else if (ebx == 0x68747541 && ecx == 0x444d4163 && edx == 0x69746e65)
+ /* This spells out "AuthenticAMD" or "HygonGenuine". */
+ else if ((ebx == 0x68747541 && ecx == 0x444d4163 && edx == 0x69746e65)
+ || (ebx == 0x6f677948 && ecx == 0x656e6975 && edx == 0x6e65476e))
{
- unsigned int extended_model, stepping;
+ unsigned int extended_model;
kind = arch_kind_amd;
- get_common_indeces (cpu_features, &family, &model, &extended_model,
+ get_common_indices (cpu_features, &family, &model, &extended_model,
&stepping);
get_extended_indices (cpu_features);
@@ -369,9 +453,6 @@ init_cpu_features (struct cpu_features *cpu_features)
if (family == 0x15)
{
-#if index_arch_Fast_Unaligned_Load != index_arch_Fast_Copy_Backward
-# error index_arch_Fast_Unaligned_Load != index_arch_Fast_Copy_Backward
-#endif
/* "Excavator" */
if (model >= 0x60 && model <= 0x7f)
{
@@ -388,7 +469,7 @@ init_cpu_features (struct cpu_features *cpu_features)
else
{
kind = arch_kind_other;
- get_common_indeces (cpu_features, NULL, NULL, NULL, NULL);
+ get_common_indices (cpu_features, NULL, NULL, NULL, NULL);
}
/* Support i586 if CX8 is available. */
@@ -403,9 +484,10 @@ init_cpu_features (struct cpu_features *cpu_features)
no_cpuid:
#endif
- cpu_features->family = family;
- cpu_features->model = model;
- cpu_features->kind = kind;
+ cpu_features->basic.kind = kind;
+ cpu_features->basic.family = family;
+ cpu_features->basic.model = model;
+ cpu_features->basic.stepping = stepping;
#if HAVE_TUNABLES
TUNABLE_GET (hwcaps, tunable_val_t *, TUNABLE_CALLBACK (set_hwcaps));
@@ -419,14 +501,14 @@ no_cpuid:
/* Reuse dl_platform, dl_hwcap and dl_hwcap_mask for x86. */
#if !HAVE_TUNABLES && defined SHARED
- /* The glibc.tune.hwcap_mask tunable is initialized already, so no need to do
+ /* The glibc.cpu.hwcap_mask tunable is initialized already, so no need to do
this. */
GLRO(dl_hwcap_mask) = HWCAP_IMPORTANT;
#endif
#ifdef __x86_64__
GLRO(dl_hwcap) = HWCAP_X86_64;
- if (cpu_features->kind == arch_kind_intel)
+ if (cpu_features->basic.kind == arch_kind_intel)
{
const char *platform = NULL;
@@ -494,7 +576,7 @@ no_cpuid:
/* Disable IBT and/or SHSTK if they are enabled by kernel, but
disabled by environment variable:
- GLIBC_TUNABLES=glibc.tune.hwcaps=-IBT,-SHSTK
+ GLIBC_TUNABLES=glibc.cpu.hwcaps=-IBT,-SHSTK
*/
unsigned int cet_feature = 0;
if (!HAS_CPU_FEATURE (IBT))
diff --git a/sysdeps/x86/cpu-features.h b/sysdeps/x86/cpu-features.h
index 347a4b118d..e6d196c609 100644
--- a/sysdeps/x86/cpu-features.h
+++ b/sysdeps/x86/cpu-features.h
@@ -1,5 +1,5 @@
/* This file is part of the GNU C Library.
- Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ Copyright (C) 2008-2019 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,125 +13,63 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef cpu_features_h
#define cpu_features_h
-#define bit_arch_Fast_Rep_String (1 << 0)
-#define bit_arch_Fast_Copy_Backward (1 << 1)
-#define bit_arch_Slow_BSF (1 << 2)
-#define bit_arch_Fast_Unaligned_Load (1 << 4)
-#define bit_arch_Prefer_PMINUB_for_stringop (1 << 5)
-#define bit_arch_AVX_Usable (1 << 6)
-#define bit_arch_FMA_Usable (1 << 7)
-#define bit_arch_FMA4_Usable (1 << 8)
-#define bit_arch_Slow_SSE4_2 (1 << 9)
-#define bit_arch_AVX2_Usable (1 << 10)
-#define bit_arch_AVX_Fast_Unaligned_Load (1 << 11)
-#define bit_arch_AVX512F_Usable (1 << 12)
-#define bit_arch_AVX512DQ_Usable (1 << 13)
-#define bit_arch_I586 (1 << 14)
-#define bit_arch_I686 (1 << 15)
-#define bit_arch_Prefer_MAP_32BIT_EXEC (1 << 16)
-#define bit_arch_Prefer_No_VZEROUPPER (1 << 17)
-#define bit_arch_Fast_Unaligned_Copy (1 << 18)
-#define bit_arch_Prefer_ERMS (1 << 19)
-#define bit_arch_Prefer_No_AVX512 (1 << 20)
-#define bit_arch_MathVec_Prefer_No_AVX512 (1 << 21)
-#define bit_arch_XSAVEC_Usable (1 << 22)
-#define bit_arch_Prefer_FSRM (1 << 23)
-
-/* CPUID Feature flags. */
+enum
+{
+ /* The integer bit array index for the first set of internal feature
+ bits. */
+ FEATURE_INDEX_1 = 0,
+ FEATURE_INDEX_2,
+ /* The current maximum size of the feature integer bit array. */
+ FEATURE_INDEX_MAX
+};
-/* COMMON_CPUID_INDEX_1. */
-#define bit_cpu_CX8 (1 << 8)
-#define bit_cpu_CMOV (1 << 15)
-#define bit_cpu_SSE (1 << 25)
-#define bit_cpu_SSE2 (1 << 26)
-#define bit_cpu_SSSE3 (1 << 9)
-#define bit_cpu_SSE4_1 (1 << 19)
-#define bit_cpu_SSE4_2 (1 << 20)
-#define bit_cpu_OSXSAVE (1 << 27)
-#define bit_cpu_AVX (1 << 28)
-#define bit_cpu_POPCOUNT (1 << 23)
-#define bit_cpu_FMA (1 << 12)
-#define bit_cpu_FMA4 (1 << 16)
-#define bit_cpu_HTT (1 << 28)
-#define bit_cpu_LZCNT (1 << 5)
-#define bit_cpu_MOVBE (1 << 22)
-#define bit_cpu_POPCNT (1 << 23)
+enum
+{
+ COMMON_CPUID_INDEX_1 = 0,
+ COMMON_CPUID_INDEX_7,
+ COMMON_CPUID_INDEX_80000001,
+ COMMON_CPUID_INDEX_D_ECX_1,
+ COMMON_CPUID_INDEX_80000007,
+ COMMON_CPUID_INDEX_80000008,
+ /* Keep the following line at the end. */
+ COMMON_CPUID_INDEX_MAX
+};
-/* COMMON_CPUID_INDEX_7. */
-#define bit_cpu_BMI1 (1 << 3)
-#define bit_cpu_BMI2 (1 << 8)
-#define bit_cpu_ERMS (1 << 9)
-#define bit_cpu_RTM (1 << 11)
-#define bit_cpu_AVX2 (1 << 5)
-#define bit_cpu_AVX512F (1 << 16)
-#define bit_cpu_AVX512DQ (1 << 17)
-#define bit_cpu_AVX512PF (1 << 26)
-#define bit_cpu_AVX512ER (1 << 27)
-#define bit_cpu_AVX512CD (1 << 28)
-#define bit_cpu_AVX512BW (1 << 30)
-#define bit_cpu_AVX512VL (1u << 31)
-#define bit_cpu_IBT (1u << 20)
-#define bit_cpu_SHSTK (1u << 7)
-#define bit_cpu_FSRM (1 << 4)
+struct cpuid_registers
+{
+ unsigned int eax;
+ unsigned int ebx;
+ unsigned int ecx;
+ unsigned int edx;
+};
-/* XCR0 Feature flags. */
-#define bit_XMM_state (1 << 1)
-#define bit_YMM_state (1 << 2)
-#define bit_Opmask_state (1 << 5)
-#define bit_ZMM0_15_state (1 << 6)
-#define bit_ZMM16_31_state (1 << 7)
-
-/* The integer bit array index for the first set of internal feature bits. */
-#define FEATURE_INDEX_1 0
-
-/* The current maximum size of the feature integer bit array. */
-#define FEATURE_INDEX_MAX 1
-
-/* Offset for fxsave/xsave area used by _dl_runtime_resolve. Also need
- space to preserve RCX, RDX, RSI, RDI, R8, R9 and RAX. It must be
- aligned to 16 bytes for fxsave and 64 bytes for xsave. */
-#define STATE_SAVE_OFFSET (8 * 7 + 8)
-
-/* Save SSE, AVX, AVX512, mask and bound registers. */
-#define STATE_SAVE_MASK \
- ((1 << 1) | (1 << 2) | (1 << 3) | (1 << 5) | (1 << 6) | (1 << 7))
-
-#ifdef __ASSEMBLER__
-# include <cpu-features-offsets.h>
-#else /* __ASSEMBLER__ */
-enum
- {
- COMMON_CPUID_INDEX_1 = 0,
- COMMON_CPUID_INDEX_7,
- COMMON_CPUID_INDEX_80000001,
- /* Keep the following line at the end. */
- COMMON_CPUID_INDEX_MAX
- };
+enum cpu_features_kind
+{
+ arch_kind_unknown = 0,
+ arch_kind_intel,
+ arch_kind_amd,
+ arch_kind_other
+};
-struct cpu_features
+struct cpu_features_basic
{
- enum cpu_features_kind
- {
- arch_kind_unknown = 0,
- arch_kind_intel,
- arch_kind_amd,
- arch_kind_other
- } kind;
+ enum cpu_features_kind kind;
int max_cpuid;
- struct cpuid_registers
- {
- unsigned int eax;
- unsigned int ebx;
- unsigned int ecx;
- unsigned int edx;
- } cpuid[COMMON_CPUID_INDEX_MAX];
unsigned int family;
unsigned int model;
+ unsigned int stepping;
+};
+
+struct cpu_features
+{
+ struct cpuid_registers cpuid[COMMON_CPUID_INDEX_MAX];
+ unsigned int feature[FEATURE_INDEX_MAX];
+ struct cpu_features_basic basic;
/* The state size for XSAVEC or XSAVE. The type must be unsigned long
int so that we use
@@ -141,10 +79,9 @@ struct cpu_features
unsigned long int xsave_state_size;
/* The full state size for XSAVE when XSAVEC is disabled by
- GLIBC_TUNABLES=glibc.tune.hwcaps=-XSAVEC_Usable
+ GLIBC_TUNABLES=glibc.cpu.hwcaps=-XSAVEC_Usable
*/
unsigned int xsave_state_full_size;
- unsigned int feature[FEATURE_INDEX_MAX];
/* Data cache size for use in memory and string routines, typically
L1 size. */
unsigned long int data_cache_size;
@@ -160,141 +97,854 @@ struct cpu_features
extern const struct cpu_features *__get_cpu_features (void)
__attribute__ ((const));
-# if defined (_LIBC) && !IS_IN (nonlib)
-/* Unused for x86. */
-# define INIT_ARCH()
-# define __get_cpu_features() (&GLRO(dl_x86_cpu_features))
-# endif
-
-
/* Only used directly in cpu-features.c. */
# define CPU_FEATURES_CPU_P(ptr, name) \
((ptr->cpuid[index_cpu_##name].reg_##name & (bit_cpu_##name)) != 0)
# define CPU_FEATURES_ARCH_P(ptr, name) \
((ptr->feature[index_arch_##name] & (bit_arch_##name)) != 0)
-/* HAS_* evaluates to true if we may use the feature at runtime. */
-# define HAS_CPU_FEATURE(name) \
- CPU_FEATURES_CPU_P (__get_cpu_features (), name)
+/* HAS_CPU_FEATURE evaluates to true if CPU supports the feature. */
+#define HAS_CPU_FEATURE(name) \
+ CPU_FEATURES_CPU_P (__get_cpu_features (), name)
+/* HAS_ARCH_FEATURE evaluates to true if we may use the feature at
+ runtime. */
# define HAS_ARCH_FEATURE(name) \
- CPU_FEATURES_ARCH_P (__get_cpu_features (), name)
-
-# define index_cpu_CX8 COMMON_CPUID_INDEX_1
-# define index_cpu_CMOV COMMON_CPUID_INDEX_1
-# define index_cpu_SSE COMMON_CPUID_INDEX_1
-# define index_cpu_SSE2 COMMON_CPUID_INDEX_1
-# define index_cpu_SSSE3 COMMON_CPUID_INDEX_1
-# define index_cpu_SSE4_1 COMMON_CPUID_INDEX_1
-# define index_cpu_SSE4_2 COMMON_CPUID_INDEX_1
-# define index_cpu_AVX COMMON_CPUID_INDEX_1
-# define index_cpu_AVX2 COMMON_CPUID_INDEX_7
-# define index_cpu_AVX512F COMMON_CPUID_INDEX_7
-# define index_cpu_AVX512DQ COMMON_CPUID_INDEX_7
-# define index_cpu_AVX512PF COMMON_CPUID_INDEX_7
-# define index_cpu_AVX512ER COMMON_CPUID_INDEX_7
-# define index_cpu_AVX512CD COMMON_CPUID_INDEX_7
-# define index_cpu_AVX512BW COMMON_CPUID_INDEX_7
-# define index_cpu_AVX512VL COMMON_CPUID_INDEX_7
-# define index_cpu_ERMS COMMON_CPUID_INDEX_7
-# define index_cpu_RTM COMMON_CPUID_INDEX_7
-# define index_cpu_FMA COMMON_CPUID_INDEX_1
-# define index_cpu_FMA4 COMMON_CPUID_INDEX_80000001
-# define index_cpu_POPCOUNT COMMON_CPUID_INDEX_1
-# define index_cpu_OSXSAVE COMMON_CPUID_INDEX_1
-# define index_cpu_HTT COMMON_CPUID_INDEX_1
-# define index_cpu_BMI1 COMMON_CPUID_INDEX_7
-# define index_cpu_BMI2 COMMON_CPUID_INDEX_7
-# define index_cpu_LZCNT COMMON_CPUID_INDEX_80000001
-# define index_cpu_MOVBE COMMON_CPUID_INDEX_1
-# define index_cpu_POPCNT COMMON_CPUID_INDEX_1
-# define index_cpu_IBT COMMON_CPUID_INDEX_7
-# define index_cpu_SHSTK COMMON_CPUID_INDEX_7
-# define index_cpu_FSRM COMMON_CPUID_INDEX_7
-
-# define reg_CX8 edx
-# define reg_CMOV edx
-# define reg_SSE edx
-# define reg_SSE2 edx
-# define reg_SSSE3 ecx
-# define reg_SSE4_1 ecx
-# define reg_SSE4_2 ecx
-# define reg_AVX ecx
-# define reg_AVX2 ebx
-# define reg_AVX512F ebx
-# define reg_AVX512DQ ebx
-# define reg_AVX512PF ebx
-# define reg_AVX512ER ebx
-# define reg_AVX512CD ebx
-# define reg_AVX512BW ebx
-# define reg_AVX512VL ebx
-# define reg_ERMS ebx
-# define reg_RTM ebx
-# define reg_FMA ecx
-# define reg_FMA4 ecx
-# define reg_POPCOUNT ecx
-# define reg_OSXSAVE ecx
-# define reg_HTT edx
-# define reg_BMI1 ebx
-# define reg_BMI2 ebx
-# define reg_LZCNT ecx
-# define reg_MOVBE ecx
-# define reg_POPCNT ecx
-# define reg_IBT edx
-# define reg_SHSTK ecx
-# define reg_FSRM edx
-
-# define index_arch_Fast_Rep_String FEATURE_INDEX_1
-# define index_arch_Fast_Copy_Backward FEATURE_INDEX_1
-# define index_arch_Slow_BSF FEATURE_INDEX_1
-# define index_arch_Fast_Unaligned_Load FEATURE_INDEX_1
-# define index_arch_Prefer_PMINUB_for_stringop FEATURE_INDEX_1
-# define index_arch_AVX_Usable FEATURE_INDEX_1
-# define index_arch_FMA_Usable FEATURE_INDEX_1
-# define index_arch_FMA4_Usable FEATURE_INDEX_1
-# define index_arch_Slow_SSE4_2 FEATURE_INDEX_1
-# define index_arch_AVX2_Usable FEATURE_INDEX_1
-# define index_arch_AVX_Fast_Unaligned_Load FEATURE_INDEX_1
-# define index_arch_AVX512F_Usable FEATURE_INDEX_1
-# define index_arch_AVX512DQ_Usable FEATURE_INDEX_1
-# define index_arch_I586 FEATURE_INDEX_1
-# define index_arch_I686 FEATURE_INDEX_1
-# define index_arch_Prefer_MAP_32BIT_EXEC FEATURE_INDEX_1
-# define index_arch_Prefer_No_VZEROUPPER FEATURE_INDEX_1
-# define index_arch_Fast_Unaligned_Copy FEATURE_INDEX_1
-# define index_arch_Prefer_ERMS FEATURE_INDEX_1
-# define index_arch_Prefer_No_AVX512 FEATURE_INDEX_1
-# define index_arch_MathVec_Prefer_No_AVX512 FEATURE_INDEX_1
-# define index_arch_XSAVEC_Usable FEATURE_INDEX_1
-# define index_arch_Prefer_FSRM FEATURE_INDEX_1
-
-#endif /* !__ASSEMBLER__ */
+ CPU_FEATURES_ARCH_P (__get_cpu_features (), name)
+/* CPU_FEATURE_USABLE evaluates to true if the feature is usable. */
+#define CPU_FEATURE_USABLE(name) \
+ ((need_arch_feature_##name && HAS_ARCH_FEATURE (name##_Usable)) \
+ || (!need_arch_feature_##name && HAS_CPU_FEATURE(name)))
+
+/* Architecture features. */
+
+/* FEATURE_INDEX_1. */
+#define bit_arch_AVX_Usable (1u << 0)
+#define bit_arch_AVX2_Usable (1u << 1)
+#define bit_arch_AVX512F_Usable (1u << 2)
+#define bit_arch_AVX512CD_Usable (1u << 3)
+#define bit_arch_AVX512ER_Usable (1u << 4)
+#define bit_arch_AVX512PF_Usable (1u << 5)
+#define bit_arch_AVX512VL_Usable (1u << 6)
+#define bit_arch_AVX512DQ_Usable (1u << 7)
+#define bit_arch_AVX512BW_Usable (1u << 8)
+#define bit_arch_AVX512_4FMAPS_Usable (1u << 9)
+#define bit_arch_AVX512_4VNNIW_Usable (1u << 10)
+#define bit_arch_AVX512_BITALG_Usable (1u << 11)
+#define bit_arch_AVX512_IFMA_Usable (1u << 12)
+#define bit_arch_AVX512_VBMI_Usable (1u << 13)
+#define bit_arch_AVX512_VBMI2_Usable (1u << 14)
+#define bit_arch_AVX512_VNNI_Usable (1u << 15)
+#define bit_arch_AVX512_VPOPCNTDQ_Usable (1u << 16)
+#define bit_arch_FMA_Usable (1u << 17)
+#define bit_arch_FMA4_Usable (1u << 18)
+#define bit_arch_VAES_Usable (1u << 19)
+#define bit_arch_VPCLMULQDQ_Usable (1u << 20)
+#define bit_arch_XOP_Usable (1u << 21)
+#define bit_arch_XSAVEC_Usable (1u << 22)
+
+#define index_arch_AVX_Usable FEATURE_INDEX_1
+#define index_arch_AVX2_Usable FEATURE_INDEX_1
+#define index_arch_AVX512F_Usable FEATURE_INDEX_1
+#define index_arch_AVX512CD_Usable FEATURE_INDEX_1
+#define index_arch_AVX512ER_Usable FEATURE_INDEX_1
+#define index_arch_AVX512PF_Usable FEATURE_INDEX_1
+#define index_arch_AVX512VL_Usable FEATURE_INDEX_1
+#define index_arch_AVX512BW_Usable FEATURE_INDEX_1
+#define index_arch_AVX512DQ_Usable FEATURE_INDEX_1
+#define index_arch_AVX512_4FMAPS_Usable FEATURE_INDEX_1
+#define index_arch_AVX512_4VNNIW_Usable FEATURE_INDEX_1
+#define index_arch_AVX512_BITALG_Usable FEATURE_INDEX_1
+#define index_arch_AVX512_IFMA_Usable FEATURE_INDEX_1
+#define index_arch_AVX512_VBMI_Usable FEATURE_INDEX_1
+#define index_arch_AVX512_VBMI2_Usable FEATURE_INDEX_1
+#define index_arch_AVX512_VNNI_Usable FEATURE_INDEX_1
+#define index_arch_AVX512_VPOPCNTDQ_Usable FEATURE_INDEX_1
+#define index_arch_FMA_Usable FEATURE_INDEX_1
+#define index_arch_FMA4_Usable FEATURE_INDEX_1
+#define index_arch_VAES_Usable FEATURE_INDEX_1
+#define index_arch_VPCLMULQDQ_Usable FEATURE_INDEX_1
+#define index_arch_XOP_Usable FEATURE_INDEX_1
+#define index_arch_XSAVEC_Usable FEATURE_INDEX_1
+
+/* Unused. Compiler will optimize them out. */
+#define bit_arch_SSE3_Usable (1u << 0)
+#define bit_arch_PCLMULQDQ_Usable (1u << 0)
+#define bit_arch_SSSE3_Usable (1u << 0)
+#define bit_arch_CMPXCHG16B_Usable (1u << 0)
+#define bit_arch_SSE4_1_Usable (1u << 0)
+#define bit_arch_SSE4_2_Usable (1u << 0)
+#define bit_arch_MOVBE_Usable (1u << 0)
+#define bit_arch_POPCNT_Usable (1u << 0)
+#define bit_arch_AES_Usable (1u << 0)
+#define bit_arch_XSAVE_Usable (1u << 0)
+#define bit_arch_OSXSAVE_Usable (1u << 0)
+#define bit_arch_F16C_Usable (1u << 0)
+#define bit_arch_RDRAND_Usable (1u << 0)
+#define bit_arch_FPU_Usable (1u << 0)
+#define bit_arch_TSC_Usable (1u << 0)
+#define bit_arch_MSR_Usable (1u << 0)
+#define bit_arch_CX8_Usable (1u << 0)
+#define bit_arch_SEP_Usable (1u << 0)
+#define bit_arch_CMOV_Usable (1u << 0)
+#define bit_arch_CLFSH_Usable (1u << 0)
+#define bit_arch_MMX_Usable (1u << 0)
+#define bit_arch_FXSR_Usable (1u << 0)
+#define bit_arch_SSE_Usable (1u << 0)
+#define bit_arch_SSE2_Usable (1u << 0)
+#define bit_arch_FSGSBASE_Usable (1u << 0)
+#define bit_arch_BMI1_Usable (1u << 0)
+#define bit_arch_HLE_Usable (1u << 0)
+#define bit_arch_BMI2_Usable (1u << 0)
+#define bit_arch_ERMS_Usable (1u << 0)
+#define bit_arch_RTM_Usable (1u << 0)
+#define bit_arch_RDSEED_Usable (1u << 0)
+#define bit_arch_ADX_Usable (1u << 0)
+#define bit_arch_CLFLUSHOPT_Usable (1u << 0)
+#define bit_arch_CLWB_Usable (1u << 0)
+#define bit_arch_SHA_Usable (1u << 0)
+#define bit_arch_PREFETCHWT1_Usable (1u << 0)
+#define bit_arch_GFNI_Usable (1u << 0)
+#define bit_arch_RDPID_Usable (1u << 0)
+#define bit_arch_CLDEMOTE_Usable (1u << 0)
+#define bit_arch_MOVDIRI_Usable (1u << 0)
+#define bit_arch_MOVDIR64B_Usable (1u << 0)
+#define bit_arch_FSRM_Usable (1u << 0)
+#define bit_arch_LAHF64_SAHF64_Usable (1u << 0)
+#define bit_arch_SVM_Usable (1u << 0)
+#define bit_arch_LZCNT_Usable (1u << 0)
+#define bit_arch_SSE4A_Usable (1u << 0)
+#define bit_arch_PREFETCHW_Usable (1u << 0)
+#define bit_arch_TBM_Usable (1u << 0)
+#define bit_arch_SYSCALL_SYSRET_Usable (1u << 0)
+#define bit_arch_RDTSCP_Usable (1u << 0)
+#define bit_arch_XSAVEOPT_Usable (1u << 0)
+#define bit_arch_XGETBV_ECX_1_Usable (1u << 0)
+#define bit_arch_XSAVES_Usable (1u << 0)
+#define bit_arch_INVARIANT_TSC_Usable (1u << 0)
+#define bit_arch_WBNOINVD_Usable (1u << 0)
+
+/* Unused. Compiler will optimize them out. */
+#define index_arch_SSE3_Usable FEATURE_INDEX_1
+#define index_arch_PCLMULQDQ_Usable FEATURE_INDEX_1
+#define index_arch_SSSE3_Usable FEATURE_INDEX_1
+#define index_arch_CMPXCHG16B_Usable FEATURE_INDEX_1
+#define index_arch_SSE4_1_Usable FEATURE_INDEX_1
+#define index_arch_SSE4_2_Usable FEATURE_INDEX_1
+#define index_arch_MOVBE_Usable FEATURE_INDEX_1
+#define index_arch_POPCNT_Usable FEATURE_INDEX_1
+#define index_arch_AES_Usable FEATURE_INDEX_1
+#define index_arch_XSAVE_Usable FEATURE_INDEX_1
+#define index_arch_OSXSAVE_Usable FEATURE_INDEX_1
+#define index_arch_F16C_Usable FEATURE_INDEX_1
+#define index_arch_RDRAND_Usable FEATURE_INDEX_1
+#define index_arch_FPU_Usable FEATURE_INDEX_1
+#define index_arch_TSC_Usable FEATURE_INDEX_1
+#define index_arch_MSR_Usable FEATURE_INDEX_1
+#define index_arch_CX8_Usable FEATURE_INDEX_1
+#define index_arch_SEP_Usable FEATURE_INDEX_1
+#define index_arch_CMOV_Usable FEATURE_INDEX_1
+#define index_arch_CLFSH_Usable FEATURE_INDEX_1
+#define index_arch_MMX_Usable FEATURE_INDEX_1
+#define index_arch_FXSR_Usable FEATURE_INDEX_1
+#define index_arch_SSE_Usable FEATURE_INDEX_1
+#define index_arch_SSE2_Usable FEATURE_INDEX_1
+#define index_arch_FSGSBASE_Usable FEATURE_INDEX_1
+#define index_arch_BMI1_Usable FEATURE_INDEX_1
+#define index_arch_HLE_Usable FEATURE_INDEX_1
+#define index_arch_BMI2_Usable FEATURE_INDEX_1
+#define index_arch_ERMS_Usable FEATURE_INDEX_1
+#define index_arch_RTM_Usable FEATURE_INDEX_1
+#define index_arch_RDSEED_Usable FEATURE_INDEX_1
+#define index_arch_ADX_Usable FEATURE_INDEX_1
+#define index_arch_CLFLUSHOPT_Usable FEATURE_INDEX_1
+#define index_arch_CLWB_Usable FEATURE_INDEX_1
+#define index_arch_SHA_Usable FEATURE_INDEX_1
+#define index_arch_PREFETCHWT1_Usable FEATURE_INDEX_1
+#define index_arch_GFNI_Usable FEATURE_INDEX_1
+#define index_arch_RDPID_Usable FEATURE_INDEX_1
+#define index_arch_CLDEMOTE_Usable FEATURE_INDEX_1
+#define index_arch_MOVDIRI_Usable FEATURE_INDEX_1
+#define index_arch_MOVDIR64B_Usable FEATURE_INDEX_1
+#define index_arch_FSRM_Usable FEATURE_INDEX_1
+#define index_arch_LAHF64_SAHF64_Usable FEATURE_INDEX_1
+#define index_arch_LZCNT_Usable FEATURE_INDEX_1
+#define index_arch_SSE4A_Usable FEATURE_INDEX_1
+#define index_arch_PREFETCHW_Usable FEATURE_INDEX_1
+#define index_arch_TBM_Usable FEATURE_INDEX_1
+#define index_arch_SYSCALL_SYSRET_Usable FEATURE_INDEX_1
+#define index_arch_RDTSCP_Usable FEATURE_INDEX_1
+#define index_arch_XSAVEOPT_Usable FEATURE_INDEX_1
+#define index_arch_XGETBV_ECX_1_Usable FEATURE_INDEX_1
+#define index_arch_XSAVES_Usable FEATURE_INDEX_1
+#define index_arch_INVARIANT_TSC_Usable FEATURE_INDEX_1
+#define index_arch_WBNOINVD_Usable FEATURE_INDEX_1
+
+/* COMMON_CPUID_INDEX_1. */
+
+/* ECX. */
+#define need_arch_feature_SSE3 0
+#define need_arch_feature_PCLMULQDQ 0
+#define need_arch_feature_SSSE3 0
+#define need_arch_feature_FMA 1
+#define need_arch_feature_CMPXCHG16B 0
+#define need_arch_feature_SSE4_1 0
+#define need_arch_feature_SSE4_2 0
+#define need_arch_feature_MOVBE 0
+#define need_arch_feature_POPCNT 0
+#define need_arch_feature_AES 0
+#define need_arch_feature_XSAVE 0
+#define need_arch_feature_OSXSAVE 0
+#define need_arch_feature_AVX 1
+#define need_arch_feature_F16C 0
+#define need_arch_feature_RDRAND 0
+
+/* EDX. */
+#define need_arch_feature_FPU 0
+#define need_arch_feature_TSC 0
+#define need_arch_feature_MSR 0
+#define need_arch_feature_CX8 0
+#define need_arch_feature_SEP 0
+#define need_arch_feature_CMOV 0
+#define need_arch_feature_CLFSH 0
+#define need_arch_feature_MMX 0
+#define need_arch_feature_FXSR 0
+#define need_arch_feature_SSE 0
+#define need_arch_feature_SSE2 0
+
+/* COMMON_CPUID_INDEX_7. */
+
+/* EBX. */
+#define need_arch_feature_FSGSBASE 0
+#define need_arch_feature_BMI1 0
+#define need_arch_feature_HLE 0
+#define need_arch_feature_AVX2 1
+#define need_arch_feature_BMI2 0
+#define need_arch_feature_ERMS 0
+#define need_arch_feature_RTM 0
+#define need_arch_feature_AVX512F 1
+#define need_arch_feature_AVX512DQ 1
+#define need_arch_feature_RDSEED 0
+#define need_arch_feature_ADX 0
+#define need_arch_feature_AVX512_IFMA 1
+#define need_arch_feature_CLFLUSHOPT 0
+#define need_arch_feature_CLWB 0
+#define need_arch_feature_AVX512PF 1
+#define need_arch_feature_AVX512ER 1
+#define need_arch_feature_AVX512CD 1
+#define need_arch_feature_SHA 0
+#define need_arch_feature_AVX512BW 1
+#define need_arch_feature_AVX512VL 1
+
+/* ECX. */
+#define need_arch_feature_PREFETCHWT1 0
+#define need_arch_feature_AVX512_VBMI 1
+#define need_arch_feature_AVX512_VBMI2 1
+#define need_arch_feature_GFNI 0
+#define need_arch_feature_VAES 1
+#define need_arch_feature_VPCLMULQDQ 1
+#define need_arch_feature_AVX512_VNNI 1
+#define need_arch_feature_AVX512_BITALG 1
+#define need_arch_feature_AVX512_VPOPCNTDQ 1
+#define need_arch_feature_RDPID 0
+#define need_arch_feature_CLDEMOTE 0
+#define need_arch_feature_MOVDIRI 0
+#define need_arch_feature_MOVDIR64B 0
+
+/* EDX. */
+#define need_arch_feature_AVX512_4VNNIW 1
+#define need_arch_feature_AVX512_4FMAPS 1
+#define need_arch_feature_FSRM 0
+
+/* COMMON_CPUID_INDEX_80000001. */
+
+/* ECX. */
+#define need_arch_feature_LAHF64_SAHF64 0
+#define need_arch_feature_LZCNT 0
+#define need_arch_feature_SSE4A 0
+#define need_arch_feature_PREFETCHW 0
+#define need_arch_feature_XOP 1
+#define need_arch_feature_FMA4 1
+#define need_arch_feature_TBM 0
+#define need_arch_feature_SYSCALL_SYSRET 0
+#define need_arch_feature_RDTSCP 0
+#define need_arch_feature_XSAVEOPT 0
+#define need_arch_feature_XSAVEC 1
+#define need_arch_feature_XGETBV_ECX_1 0
+#define need_arch_feature_XSAVES 0
+#define need_arch_feature_INVARIANT_TSC 0
+#define need_arch_feature_WBNOINVD 0
+
+/* CPU features. */
+
+/* COMMON_CPUID_INDEX_1. */
+
+/* ECX. */
+#define bit_cpu_SSE3 (1u << 0)
+#define bit_cpu_PCLMULQDQ (1u << 1)
+#define bit_cpu_DTES64 (1u << 2)
+#define bit_cpu_MONITOR (1u << 3)
+#define bit_cpu_DS_CPL (1u << 4)
+#define bit_cpu_VMX (1u << 5)
+#define bit_cpu_SMX (1u << 6)
+#define bit_cpu_EST (1u << 7)
+#define bit_cpu_TM2 (1u << 8)
+#define bit_cpu_SSSE3 (1u << 9)
+#define bit_cpu_CNXT_ID (1u << 10)
+#define bit_cpu_SDBG (1u << 11)
+#define bit_cpu_FMA (1u << 12)
+#define bit_cpu_CMPXCHG16B (1u << 13)
+#define bit_cpu_XTPRUPDCTRL (1u << 14)
+#define bit_cpu_PDCM (1u << 15)
+#define bit_cpu_PCID (1u << 17)
+#define bit_cpu_DCA (1u << 18)
+#define bit_cpu_SSE4_1 (1u << 19)
+#define bit_cpu_SSE4_2 (1u << 20)
+#define bit_cpu_X2APIC (1u << 21)
+#define bit_cpu_MOVBE (1u << 22)
+#define bit_cpu_POPCNT (1u << 23)
+#define bit_cpu_TSC_DEADLINE (1u << 24)
+#define bit_cpu_AES (1u << 25)
+#define bit_cpu_XSAVE (1u << 26)
+#define bit_cpu_OSXSAVE (1u << 27)
+#define bit_cpu_AVX (1u << 28)
+#define bit_cpu_F16C (1u << 29)
+#define bit_cpu_RDRAND (1u << 30)
+
+/* EDX. */
+#define bit_cpu_FPU (1u << 0)
+#define bit_cpu_VME (1u << 1)
+#define bit_cpu_DE (1u << 2)
+#define bit_cpu_PSE (1u << 3)
+#define bit_cpu_TSC (1u << 4)
+#define bit_cpu_MSR (1u << 5)
+#define bit_cpu_PAE (1u << 6)
+#define bit_cpu_MCE (1u << 7)
+#define bit_cpu_CX8 (1u << 8)
+#define bit_cpu_APIC (1u << 9)
+#define bit_cpu_SEP (1u << 11)
+#define bit_cpu_MTRR (1u << 12)
+#define bit_cpu_PGE (1u << 13)
+#define bit_cpu_MCA (1u << 14)
+#define bit_cpu_CMOV (1u << 15)
+#define bit_cpu_PAT (1u << 16)
+#define bit_cpu_PSE_36 (1u << 17)
+#define bit_cpu_PSN (1u << 18)
+#define bit_cpu_CLFSH (1u << 20)
+#define bit_cpu_DS (1u << 21)
+#define bit_cpu_ACPI (1u << 22)
+#define bit_cpu_MMX (1u << 23)
+#define bit_cpu_FXSR (1u << 24)
+#define bit_cpu_SSE (1u << 25)
+#define bit_cpu_SSE2 (1u << 26)
+#define bit_cpu_SS (1u << 27)
+#define bit_cpu_HTT (1u << 28)
+#define bit_cpu_TM (1u << 29)
+#define bit_cpu_PBE (1u << 31)
+
+/* COMMON_CPUID_INDEX_7. */
+
+/* EBX. */
+#define bit_cpu_FSGSBASE (1u << 0)
+#define bit_cpu_TSC_ADJUST (1u << 1)
+#define bit_cpu_SGX (1u << 2)
+#define bit_cpu_BMI1 (1u << 3)
+#define bit_cpu_HLE (1u << 4)
+#define bit_cpu_AVX2 (1u << 5)
+#define bit_cpu_SMEP (1u << 7)
+#define bit_cpu_BMI2 (1u << 8)
+#define bit_cpu_ERMS (1u << 9)
+#define bit_cpu_INVPCID (1u << 10)
+#define bit_cpu_RTM (1u << 11)
+#define bit_cpu_PQM (1u << 12)
+#define bit_cpu_MPX (1u << 14)
+#define bit_cpu_PQE (1u << 15)
+#define bit_cpu_AVX512F (1u << 16)
+#define bit_cpu_AVX512DQ (1u << 17)
+#define bit_cpu_RDSEED (1u << 18)
+#define bit_cpu_ADX (1u << 19)
+#define bit_cpu_SMAP (1u << 20)
+#define bit_cpu_AVX512_IFMA (1u << 21)
+#define bit_cpu_CLFLUSHOPT (1u << 22)
+#define bit_cpu_CLWB (1u << 24)
+#define bit_cpu_TRACE (1u << 25)
+#define bit_cpu_AVX512PF (1u << 26)
+#define bit_cpu_AVX512ER (1u << 27)
+#define bit_cpu_AVX512CD (1u << 28)
+#define bit_cpu_SHA (1u << 29)
+#define bit_cpu_AVX512BW (1u << 30)
+#define bit_cpu_AVX512VL (1u << 31)
+
+/* ECX. */
+#define bit_cpu_PREFETCHWT1 (1u << 0)
+#define bit_cpu_AVX512_VBMI (1u << 1)
+#define bit_cpu_UMIP (1u << 2)
+#define bit_cpu_PKU (1u << 3)
+#define bit_cpu_OSPKE (1u << 4)
+#define bit_cpu_WAITPKG (1u << 5)
+#define bit_cpu_AVX512_VBMI2 (1u << 6)
+#define bit_cpu_SHSTK (1u << 7)
+#define bit_cpu_GFNI (1u << 8)
+#define bit_cpu_VAES (1u << 9)
+#define bit_cpu_VPCLMULQDQ (1u << 10)
+#define bit_cpu_AVX512_VNNI (1u << 11)
+#define bit_cpu_AVX512_BITALG (1u << 12)
+#define bit_cpu_AVX512_VPOPCNTDQ (1u << 14)
+#define bit_cpu_RDPID (1u << 22)
+#define bit_cpu_CLDEMOTE (1u << 25)
+#define bit_cpu_MOVDIRI (1u << 27)
+#define bit_cpu_MOVDIR64B (1u << 28)
+#define bit_cpu_SGX_LC (1u << 30)
+
+/* EDX. */
+#define bit_cpu_AVX512_4VNNIW (1u << 2)
+#define bit_cpu_AVX512_4FMAPS (1u << 3)
+#define bit_cpu_FSRM (1u << 4)
+#define bit_cpu_PCONFIG (1u << 18)
+#define bit_cpu_IBT (1u << 20)
+#define bit_cpu_IBRS_IBPB (1u << 26)
+#define bit_cpu_STIBP (1u << 27)
+#define bit_cpu_CAPABILITIES (1u << 29)
+#define bit_cpu_SSBD (1u << 31)
+
+/* COMMON_CPUID_INDEX_80000001. */
+
+/* ECX. */
+#define bit_cpu_LAHF64_SAHF64 (1u << 0)
+#define bit_cpu_SVM (1u << 2)
+#define bit_cpu_LZCNT (1u << 5)
+#define bit_cpu_SSE4A (1u << 6)
+#define bit_cpu_PREFETCHW (1u << 8)
+#define bit_cpu_XOP (1u << 11)
+#define bit_cpu_LWP (1u << 15)
+#define bit_cpu_FMA4 (1u << 16)
+#define bit_cpu_TBM (1u << 21)
+
+/* EDX. */
+#define bit_cpu_SYSCALL_SYSRET (1u << 11)
+#define bit_cpu_NX (1u << 20)
+#define bit_cpu_PAGE1GB (1u << 26)
+#define bit_cpu_RDTSCP (1u << 27)
+#define bit_cpu_LM (1u << 29)
+
+/* COMMON_CPUID_INDEX_D_ECX_1. */
+
+/* EAX. */
+#define bit_cpu_XSAVEOPT (1u << 0)
+#define bit_cpu_XSAVEC (1u << 1)
+#define bit_cpu_XGETBV_ECX_1 (1u << 2)
+#define bit_cpu_XSAVES (1u << 3)
+
+/* COMMON_CPUID_INDEX_80000007. */
+
+/* EDX. */
+#define bit_cpu_INVARIANT_TSC (1u << 8)
+
+/* COMMON_CPUID_INDEX_80000008. */
+
+/* EBX. */
+#define bit_cpu_WBNOINVD (1u << 9)
+
+/* COMMON_CPUID_INDEX_1. */
+
+/* ECX. */
+#define index_cpu_SSE3 COMMON_CPUID_INDEX_1
+#define index_cpu_PCLMULQDQ COMMON_CPUID_INDEX_1
+#define index_cpu_DTES64 COMMON_CPUID_INDEX_1
+#define index_cpu_MONITOR COMMON_CPUID_INDEX_1
+#define index_cpu_DS_CPL COMMON_CPUID_INDEX_1
+#define index_cpu_VMX COMMON_CPUID_INDEX_1
+#define index_cpu_SMX COMMON_CPUID_INDEX_1
+#define index_cpu_EST COMMON_CPUID_INDEX_1
+#define index_cpu_TM2 COMMON_CPUID_INDEX_1
+#define index_cpu_SSSE3 COMMON_CPUID_INDEX_1
+#define index_cpu_CNXT_ID COMMON_CPUID_INDEX_1
+#define index_cpu_SDBG COMMON_CPUID_INDEX_1
+#define index_cpu_FMA COMMON_CPUID_INDEX_1
+#define index_cpu_CMPXCHG16B COMMON_CPUID_INDEX_1
+#define index_cpu_XTPRUPDCTRL COMMON_CPUID_INDEX_1
+#define index_cpu_PDCM COMMON_CPUID_INDEX_1
+#define index_cpu_PCID COMMON_CPUID_INDEX_1
+#define index_cpu_DCA COMMON_CPUID_INDEX_1
+#define index_cpu_SSE4_1 COMMON_CPUID_INDEX_1
+#define index_cpu_SSE4_2 COMMON_CPUID_INDEX_1
+#define index_cpu_X2APIC COMMON_CPUID_INDEX_1
+#define index_cpu_MOVBE COMMON_CPUID_INDEX_1
+#define index_cpu_POPCNT COMMON_CPUID_INDEX_1
+#define index_cpu_TSC_DEADLINE COMMON_CPUID_INDEX_1
+#define index_cpu_AES COMMON_CPUID_INDEX_1
+#define index_cpu_XSAVE COMMON_CPUID_INDEX_1
+#define index_cpu_OSXSAVE COMMON_CPUID_INDEX_1
+#define index_cpu_AVX COMMON_CPUID_INDEX_1
+#define index_cpu_F16C COMMON_CPUID_INDEX_1
+#define index_cpu_RDRAND COMMON_CPUID_INDEX_1
+
+/* ECX. */
+#define index_cpu_FPU COMMON_CPUID_INDEX_1
+#define index_cpu_VME COMMON_CPUID_INDEX_1
+#define index_cpu_DE COMMON_CPUID_INDEX_1
+#define index_cpu_PSE COMMON_CPUID_INDEX_1
+#define index_cpu_TSC COMMON_CPUID_INDEX_1
+#define index_cpu_MSR COMMON_CPUID_INDEX_1
+#define index_cpu_PAE COMMON_CPUID_INDEX_1
+#define index_cpu_MCE COMMON_CPUID_INDEX_1
+#define index_cpu_CX8 COMMON_CPUID_INDEX_1
+#define index_cpu_APIC COMMON_CPUID_INDEX_1
+#define index_cpu_SEP COMMON_CPUID_INDEX_1
+#define index_cpu_MTRR COMMON_CPUID_INDEX_1
+#define index_cpu_PGE COMMON_CPUID_INDEX_1
+#define index_cpu_MCA COMMON_CPUID_INDEX_1
+#define index_cpu_CMOV COMMON_CPUID_INDEX_1
+#define index_cpu_PAT COMMON_CPUID_INDEX_1
+#define index_cpu_PSE_36 COMMON_CPUID_INDEX_1
+#define index_cpu_PSN COMMON_CPUID_INDEX_1
+#define index_cpu_CLFSH COMMON_CPUID_INDEX_1
+#define index_cpu_DS COMMON_CPUID_INDEX_1
+#define index_cpu_ACPI COMMON_CPUID_INDEX_1
+#define index_cpu_MMX COMMON_CPUID_INDEX_1
+#define index_cpu_FXSR COMMON_CPUID_INDEX_1
+#define index_cpu_SSE COMMON_CPUID_INDEX_1
+#define index_cpu_SSE2 COMMON_CPUID_INDEX_1
+#define index_cpu_SS COMMON_CPUID_INDEX_1
+#define index_cpu_HTT COMMON_CPUID_INDEX_1
+#define index_cpu_TM COMMON_CPUID_INDEX_1
+#define index_cpu_PBE COMMON_CPUID_INDEX_1
+
+/* COMMON_CPUID_INDEX_7. */
+
+/* EBX. */
+#define index_cpu_FSGSBASE COMMON_CPUID_INDEX_7
+#define index_cpu_TSC_ADJUST COMMON_CPUID_INDEX_7
+#define index_cpu_SGX COMMON_CPUID_INDEX_7
+#define index_cpu_BMI1 COMMON_CPUID_INDEX_7
+#define index_cpu_HLE COMMON_CPUID_INDEX_7
+#define index_cpu_AVX2 COMMON_CPUID_INDEX_7
+#define index_cpu_SMEP COMMON_CPUID_INDEX_7
+#define index_cpu_BMI2 COMMON_CPUID_INDEX_7
+#define index_cpu_ERMS COMMON_CPUID_INDEX_7
+#define index_cpu_INVPCID COMMON_CPUID_INDEX_7
+#define index_cpu_RTM COMMON_CPUID_INDEX_7
+#define index_cpu_PQM COMMON_CPUID_INDEX_7
+#define index_cpu_MPX COMMON_CPUID_INDEX_7
+#define index_cpu_PQE COMMON_CPUID_INDEX_7
+#define index_cpu_AVX512F COMMON_CPUID_INDEX_7
+#define index_cpu_AVX512DQ COMMON_CPUID_INDEX_7
+#define index_cpu_RDSEED COMMON_CPUID_INDEX_7
+#define index_cpu_ADX COMMON_CPUID_INDEX_7
+#define index_cpu_SMAP COMMON_CPUID_INDEX_7
+#define index_cpu_AVX512_IFMA COMMON_CPUID_INDEX_7
+#define index_cpu_CLFLUSHOPT COMMON_CPUID_INDEX_7
+#define index_cpu_CLWB COMMON_CPUID_INDEX_7
+#define index_cpu_TRACE COMMON_CPUID_INDEX_7
+#define index_cpu_AVX512PF COMMON_CPUID_INDEX_7
+#define index_cpu_AVX512ER COMMON_CPUID_INDEX_7
+#define index_cpu_AVX512CD COMMON_CPUID_INDEX_7
+#define index_cpu_SHA COMMON_CPUID_INDEX_7
+#define index_cpu_AVX512BW COMMON_CPUID_INDEX_7
+#define index_cpu_AVX512VL COMMON_CPUID_INDEX_7
+
+/* ECX. */
+#define index_cpu_PREFETCHWT1 COMMON_CPUID_INDEX_7
+#define index_cpu_AVX512_VBMI COMMON_CPUID_INDEX_7
+#define index_cpu_UMIP COMMON_CPUID_INDEX_7
+#define index_cpu_PKU COMMON_CPUID_INDEX_7
+#define index_cpu_OSPKE COMMON_CPUID_INDEX_7
+#define index_cpu_WAITPKG COMMON_CPUID_INDEX_7
+#define index_cpu_AVX512_VBMI2 COMMON_CPUID_INDEX_7
+#define index_cpu_SHSTK COMMON_CPUID_INDEX_7
+#define index_cpu_GFNI COMMON_CPUID_INDEX_7
+#define index_cpu_VAES COMMON_CPUID_INDEX_7
+#define index_cpu_VPCLMULQDQ COMMON_CPUID_INDEX_7
+#define index_cpu_AVX512_VNNI COMMON_CPUID_INDEX_7
+#define index_cpu_AVX512_BITALG COMMON_CPUID_INDEX_7
+#define index_cpu_AVX512_VPOPCNTDQ COMMON_CPUID_INDEX_7
+#define index_cpu_RDPID COMMON_CPUID_INDEX_7
+#define index_cpu_CLDEMOTE COMMON_CPUID_INDEX_7
+#define index_cpu_MOVDIRI COMMON_CPUID_INDEX_7
+#define index_cpu_MOVDIR64B COMMON_CPUID_INDEX_7
+#define index_cpu_SGX_LC COMMON_CPUID_INDEX_7
+
+/* EDX. */
+#define index_cpu_AVX512_4VNNIW COMMON_CPUID_INDEX_7
+#define index_cpu_AVX512_4FMAPS COMMON_CPUID_INDEX_7
+#define index_cpu_FSRM COMMON_CPUID_INDEX_7
+#define index_cpu_PCONFIG COMMON_CPUID_INDEX_7
+#define index_cpu_IBT COMMON_CPUID_INDEX_7
+#define index_cpu_IBRS_IBPB COMMON_CPUID_INDEX_7
+#define index_cpu_STIBP COMMON_CPUID_INDEX_7
+#define index_cpu_CAPABILITIES COMMON_CPUID_INDEX_7
+#define index_cpu_SSBD COMMON_CPUID_INDEX_7
+
+/* COMMON_CPUID_INDEX_80000001. */
+
+/* ECX. */
+#define index_cpu_LAHF64_SAHF64 COMMON_CPUID_INDEX_80000001
+#define index_cpu_SVM COMMON_CPUID_INDEX_80000001
+#define index_cpu_LZCNT COMMON_CPUID_INDEX_80000001
+#define index_cpu_SSE4A COMMON_CPUID_INDEX_80000001
+#define index_cpu_PREFETCHW COMMON_CPUID_INDEX_80000001
+#define index_cpu_XOP COMMON_CPUID_INDEX_80000001
+#define index_cpu_LWP COMMON_CPUID_INDEX_80000001
+#define index_cpu_FMA4 COMMON_CPUID_INDEX_80000001
+#define index_cpu_TBM COMMON_CPUID_INDEX_80000001
+
+/* EDX. */
+#define index_cpu_SYSCALL_SYSRET COMMON_CPUID_INDEX_80000001
+#define index_cpu_NX COMMON_CPUID_INDEX_80000001
+#define index_cpu_PAGE1GB COMMON_CPUID_INDEX_80000001
+#define index_cpu_RDTSCP COMMON_CPUID_INDEX_80000001
+#define index_cpu_LM COMMON_CPUID_INDEX_80000001
+
+/* COMMON_CPUID_INDEX_D_ECX_1. */
+
+/* EAX. */
+#define index_cpu_XSAVEOPT COMMON_CPUID_INDEX_D_ECX_1
+#define index_cpu_XSAVEC COMMON_CPUID_INDEX_D_ECX_1
+#define index_cpu_XGETBV_ECX_1 COMMON_CPUID_INDEX_D_ECX_1
+#define index_cpu_XSAVES COMMON_CPUID_INDEX_D_ECX_1
+
+/* COMMON_CPUID_INDEX_80000007. */
+
+/* EDX. */
+#define index_cpu_INVARIANT_TSC COMMON_CPUID_INDEX_80000007
+
+/* COMMON_CPUID_INDEX_80000008. */
+
+/* EBX. */
+#define index_cpu_WBNOINVD COMMON_CPUID_INDEX_80000008
+
+/* COMMON_CPUID_INDEX_1. */
+
+/* ECX. */
+#define reg_SSE3 ecx
+#define reg_PCLMULQDQ ecx
+#define reg_DTES64 ecx
+#define reg_MONITOR ecx
+#define reg_DS_CPL ecx
+#define reg_VMX ecx
+#define reg_SMX ecx
+#define reg_EST ecx
+#define reg_TM2 ecx
+#define reg_SSSE3 ecx
+#define reg_CNXT_ID ecx
+#define reg_SDBG ecx
+#define reg_FMA ecx
+#define reg_CMPXCHG16B ecx
+#define reg_XTPRUPDCTRL ecx
+#define reg_PDCM ecx
+#define reg_PCID ecx
+#define reg_DCA ecx
+#define reg_SSE4_1 ecx
+#define reg_SSE4_2 ecx
+#define reg_X2APIC ecx
+#define reg_MOVBE ecx
+#define reg_POPCNT ecx
+#define reg_TSC_DEADLINE ecx
+#define reg_AES ecx
+#define reg_XSAVE ecx
+#define reg_OSXSAVE ecx
+#define reg_AVX ecx
+#define reg_F16C ecx
+#define reg_RDRAND ecx
+
+/* EDX. */
+#define reg_FPU edx
+#define reg_VME edx
+#define reg_DE edx
+#define reg_PSE edx
+#define reg_TSC edx
+#define reg_MSR edx
+#define reg_PAE edx
+#define reg_MCE edx
+#define reg_CX8 edx
+#define reg_APIC edx
+#define reg_SEP edx
+#define reg_MTRR edx
+#define reg_PGE edx
+#define reg_MCA edx
+#define reg_CMOV edx
+#define reg_PAT edx
+#define reg_PSE_36 edx
+#define reg_PSN edx
+#define reg_CLFSH edx
+#define reg_DS edx
+#define reg_ACPI edx
+#define reg_MMX edx
+#define reg_FXSR edx
+#define reg_SSE edx
+#define reg_SSE2 edx
+#define reg_SS edx
+#define reg_HTT edx
+#define reg_TM edx
+#define reg_PBE edx
+
+/* COMMON_CPUID_INDEX_7. */
+
+/* EBX. */
+#define reg_FSGSBASE ebx
+#define reg_TSC_ADJUST ebx
+#define reg_SGX ebx
+#define reg_BMI1 ebx
+#define reg_HLE ebx
+#define reg_BMI2 ebx
+#define reg_AVX2 ebx
+#define reg_SMEP ebx
+#define reg_ERMS ebx
+#define reg_INVPCID ebx
+#define reg_RTM ebx
+#define reg_PQM ebx
+#define reg_MPX ebx
+#define reg_PQE ebx
+#define reg_AVX512F ebx
+#define reg_AVX512DQ ebx
+#define reg_RDSEED ebx
+#define reg_ADX ebx
+#define reg_SMAP ebx
+#define reg_AVX512_IFMA ebx
+#define reg_CLFLUSHOPT ebx
+#define reg_CLWB ebx
+#define reg_TRACE ebx
+#define reg_AVX512PF ebx
+#define reg_AVX512ER ebx
+#define reg_AVX512CD ebx
+#define reg_SHA ebx
+#define reg_AVX512BW ebx
+#define reg_AVX512VL ebx
+
+/* ECX. */
+#define reg_PREFETCHWT1 ecx
+#define reg_AVX512_VBMI ecx
+#define reg_UMIP ecx
+#define reg_PKU ecx
+#define reg_OSPKE ecx
+#define reg_WAITPKG ecx
+#define reg_AVX512_VBMI2 ecx
+#define reg_SHSTK ecx
+#define reg_GFNI ecx
+#define reg_VAES ecx
+#define reg_VPCLMULQDQ ecx
+#define reg_AVX512_VNNI ecx
+#define reg_AVX512_BITALG ecx
+#define reg_AVX512_VPOPCNTDQ ecx
+#define reg_RDPID ecx
+#define reg_CLDEMOTE ecx
+#define reg_MOVDIRI ecx
+#define reg_MOVDIR64B ecx
+#define reg_SGX_LC ecx
+
+/* EDX. */
+#define reg_AVX512_4VNNIW edx
+#define reg_AVX512_4FMAPS edx
+#define reg_FSRM edx
+#define reg_PCONFIG edx
+#define reg_IBT edx
+#define reg_IBRS_IBPB edx
+#define reg_STIBP edx
+#define reg_CAPABILITIES edx
+#define reg_SSBD edx
+
+/* COMMON_CPUID_INDEX_80000001. */
+
+/* ECX. */
+#define reg_LAHF64_SAHF64 ecx
+#define reg_SVM ecx
+#define reg_LZCNT ecx
+#define reg_SSE4A ecx
+#define reg_PREFETCHW ecx
+#define reg_XOP ecx
+#define reg_LWP ecx
+#define reg_FMA4 ecx
+#define reg_TBM ecx
+
+/* EDX. */
+#define reg_SYSCALL_SYSRET edx
+#define reg_NX edx
+#define reg_PAGE1GB edx
+#define reg_RDTSCP edx
+#define reg_LM edx
+
+/* COMMON_CPUID_INDEX_D_ECX_1. */
+
+/* EAX. */
+#define reg_XSAVEOPT eax
+#define reg_XSAVEC eax
+#define reg_XGETBV_ECX_1 eax
+#define reg_XSAVES eax
+
+/* COMMON_CPUID_INDEX_80000007. */
+
+/* EDX. */
+#define reg_INVARIANT_TSC edx
+
+/* COMMON_CPUID_INDEX_80000008. */
+
+/* EBX. */
+#define reg_WBNOINVD ebx
+
+/* FEATURE_INDEX_2. */
+#define bit_arch_I586 (1u << 0)
+#define bit_arch_I686 (1u << 1)
+#define bit_arch_Fast_Rep_String (1u << 2)
+#define bit_arch_Fast_Copy_Backward (1u << 3)
+#define bit_arch_Fast_Unaligned_Load (1u << 4)
+#define bit_arch_Fast_Unaligned_Copy (1u << 5)
+#define bit_arch_Slow_BSF (1u << 6)
+#define bit_arch_Slow_SSE4_2 (1u << 7)
+#define bit_arch_AVX_Fast_Unaligned_Load (1u << 8)
+#define bit_arch_Prefer_MAP_32BIT_EXEC (1u << 9)
+#define bit_arch_Prefer_PMINUB_for_stringop (1u << 10)
+#define bit_arch_Prefer_No_VZEROUPPER (1u << 11)
+#define bit_arch_Prefer_ERMS (1u << 12)
+#define bit_arch_Prefer_FSRM (1u << 13)
+#define bit_arch_Prefer_No_AVX512 (1u << 14)
+#define bit_arch_MathVec_Prefer_No_AVX512 (1u << 15)
+
+#define index_arch_Fast_Rep_String FEATURE_INDEX_2
+#define index_arch_Fast_Copy_Backward FEATURE_INDEX_2
+#define index_arch_Slow_BSF FEATURE_INDEX_2
+#define index_arch_Fast_Unaligned_Load FEATURE_INDEX_2
+#define index_arch_Prefer_PMINUB_for_stringop FEATURE_INDEX_2
+#define index_arch_Fast_Unaligned_Copy FEATURE_INDEX_2
+#define index_arch_I586 FEATURE_INDEX_2
+#define index_arch_I686 FEATURE_INDEX_2
+#define index_arch_Slow_SSE4_2 FEATURE_INDEX_2
+#define index_arch_AVX_Fast_Unaligned_Load FEATURE_INDEX_2
+#define index_arch_Prefer_MAP_32BIT_EXEC FEATURE_INDEX_2
+#define index_arch_Prefer_No_VZEROUPPER FEATURE_INDEX_2
+#define index_arch_Prefer_ERMS FEATURE_INDEX_2
+#define index_arch_Prefer_No_AVX512 FEATURE_INDEX_2
+#define index_arch_MathVec_Prefer_No_AVX512 FEATURE_INDEX_2
+#define index_arch_Prefer_FSRM FEATURE_INDEX_2
+
+/* XCR0 Feature flags. */
+#define bit_XMM_state (1u << 1)
+#define bit_YMM_state (1u << 2)
+#define bit_Opmask_state (1u << 5)
+#define bit_ZMM0_15_state (1u << 6)
+#define bit_ZMM16_31_state (1u << 7)
+
+# if defined (_LIBC) && !IS_IN (nonlib)
+/* Unused for x86. */
+# define INIT_ARCH()
+# define __get_cpu_features() (&GLRO(dl_x86_cpu_features))
+# define x86_get_cpuid_registers(i) \
+ (&(GLRO(dl_x86_cpu_features).cpuid[i]))
+# endif
#ifdef __x86_64__
# define HAS_CPUID 1
-#elif defined __i586__ || defined __pentium__
+#elif (defined __i586__ || defined __pentium__ \
+ || defined __geode__ || defined __k6__)
# define HAS_CPUID 1
# define HAS_I586 1
# define HAS_I686 HAS_ARCH_FEATURE (I686)
-#elif (defined __i686__ || defined __pentiumpro__ \
- || defined __pentium4__ || defined __nocona__ \
- || defined __atom__ || defined __core2__ \
- || defined __corei7__ || defined __corei7_avx__ \
- || defined __core_avx2__ || defined __nehalem__ \
- || defined __sandybridge__ || defined __haswell__ \
- || defined __knl__ || defined __bonnell__ \
- || defined __silvermont__ \
- || defined __k6__ || defined __k8__ \
- || defined __athlon__ || defined __amdfam10__ \
- || defined __bdver1__ || defined __bdver2__ \
- || defined __bdver3__ || defined __bdver4__ \
- || defined __btver1__ || defined __btver2__)
-# define HAS_CPUID 1
-# define HAS_I586 1
-# define HAS_I686 1
-#else
+#elif defined __i486__
# define HAS_CPUID 0
# define HAS_I586 HAS_ARCH_FEATURE (I586)
# define HAS_I686 HAS_ARCH_FEATURE (I686)
+#else
+# define HAS_CPUID 1
+# define HAS_I586 1
+# define HAS_I686 1
#endif
#endif /* cpu_features_h */
diff --git a/sysdeps/x86/cpu-tunables.c b/sysdeps/x86/cpu-tunables.c
index 69155a8f44..7445ec6161 100644
--- a/sysdeps/x86/cpu-tunables.c
+++ b/sysdeps/x86/cpu-tunables.c
@@ -1,6 +1,6 @@
/* x86 CPU feature tuning.
This file is part of the GNU C Library.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-2019 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
@@ -14,10 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if HAVE_TUNABLES
-# define TUNABLE_NAMESPACE tune
+# define TUNABLE_NAMESPACE cpu
# include <stdbool.h>
# include <stdint.h>
# include <unistd.h> /* Get STDOUT_FILENO for _dl_printf. */
@@ -116,7 +116,7 @@ TUNABLE_CALLBACK (set_hwcaps) (tunable_val_t *valp)
the hardware which wasn't available when the selection was made.
The environment variable:
- GLIBC_TUNABLES=glibc.tune.hwcaps=-xxx,yyy,-zzz,....
+ GLIBC_TUNABLES=glibc.cpu.hwcaps=-xxx,yyy,-zzz,....
can be used to enable CPU/ARCH feature yyy, disable CPU/ARCH feature
yyy and zzz, where the feature name is case-sensitive and has to
diff --git a/sysdeps/x86/dl-cet.c b/sysdeps/x86/dl-cet.c
index b82ba14e75..fa9aa63982 100644
--- a/sysdeps/x86/dl-cet.c
+++ b/sysdeps/x86/dl-cet.c
@@ -1,5 +1,5 @@
/* x86 CET initializers function.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <errno.h>
@@ -128,7 +128,7 @@ dl_cet_check (struct link_map *m, const char *program)
/* Enable IBT and SHSTK only if they are enabled in executable.
NB: IBT and SHSTK may be disabled by environment variable:
- GLIBC_TUNABLES=glibc.tune.hwcaps=-IBT,-SHSTK
+ GLIBC_TUNABLES=glibc.cpu.hwcaps=-IBT,-SHSTK
*/
enable_ibt &= (HAS_CPU_FEATURE (IBT)
&& (enable_ibt_type == CET_ALWAYS_ON
diff --git a/sysdeps/x86/dl-get-cpu-features.c b/sysdeps/x86/dl-get-cpu-features.c
index 49593f19c6..559e97868b 100644
--- a/sysdeps/x86/dl-get-cpu-features.c
+++ b/sysdeps/x86/dl-get-cpu-features.c
@@ -1,5 +1,5 @@
/* This file is part of the GNU C Library.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ldsodefs.h>
diff --git a/sysdeps/x86/dl-hwcap.h b/sysdeps/x86/dl-hwcap.h
index f5e9d542ca..0a83d93fd0 100644
--- a/sysdeps/x86/dl-hwcap.h
+++ b/sysdeps/x86/dl-hwcap.h
@@ -1,5 +1,5 @@
/* x86 version of hardware capability information handling macros.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DL_HWCAP_H
#define _DL_HWCAP_H
diff --git a/sysdeps/x86/dl-lookupcfg.h b/sysdeps/x86/dl-lookupcfg.h
new file mode 100644
index 0000000000..682f0c547e
--- /dev/null
+++ b/sysdeps/x86/dl-lookupcfg.h
@@ -0,0 +1,31 @@
+/* Configuration of lookup functions.
+ Copyright (C) 2005-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
+ <https://www.gnu.org/licenses/>. */
+
+#define DL_UNMAP_IS_SPECIAL
+
+#include_next <dl-lookupcfg.h>
+
+/* Address of protected data defined in the shared library may be
+ external due to copy relocation. */
+#define DL_EXTERN_PROTECTED_DATA
+
+struct link_map;
+
+extern void _dl_unmap (struct link_map *map) attribute_hidden;
+
+#define DL_UNMAP(map) _dl_unmap (map)
diff --git a/sysdeps/x86/dl-procinfo.c b/sysdeps/x86/dl-procinfo.c
index 4b0538ede8..0d834821f4 100644
--- a/sysdeps/x86/dl-procinfo.c
+++ b/sysdeps/x86/dl-procinfo.c
@@ -1,5 +1,5 @@
/* Data for x86 version of processor capability information.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This information must be kept in sync with the _DL_HWCAP_COUNT,
HWCAP_PLATFORMS_START and HWCAP_PLATFORMS_COUNT definitions in
diff --git a/sysdeps/x86/dl-procinfo.h b/sysdeps/x86/dl-procinfo.h
index 55cafc26e2..5a39a9d0b0 100644
--- a/sysdeps/x86/dl-procinfo.h
+++ b/sysdeps/x86/dl-procinfo.h
@@ -1,5 +1,5 @@
/* x86 version of processor capability information handling macros.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DL_PROCINFO_H
#define _DL_PROCINFO_H 1
diff --git a/sysdeps/x86/dl-procruntime.c b/sysdeps/x86/dl-procruntime.c
index eddbde6a31..4787ffa62f 100644
--- a/sysdeps/x86/dl-procruntime.c
+++ b/sysdeps/x86/dl-procruntime.c
@@ -1,5 +1,5 @@
/* Data for processor runtime information. x86 version.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This information must be kept in sync with the _DL_HWCAP_COUNT,
HWCAP_PLATFORMS_START and HWCAP_PLATFORMS_COUNT definitions in
diff --git a/sysdeps/x86/dl-prop.h b/sysdeps/x86/dl-prop.h
index 26c3131ac5..fa5bd988ca 100644
--- a/sysdeps/x86/dl-prop.h
+++ b/sysdeps/x86/dl-prop.h
@@ -1,5 +1,5 @@
/* Support for GNU properties. x86 version.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DL_PROP_H
#define _DL_PROP_H
@@ -49,6 +49,10 @@ _dl_process_cet_property_note (struct link_map *l,
const ElfW(Addr) align)
{
#if CET_ENABLED
+ /* Skip if we have seen a NT_GNU_PROPERTY_TYPE_0 note before. */
+ if (l->l_cet != lc_unknown)
+ return;
+
/* The NT_GNU_PROPERTY_TYPE_0 note must be aliged to 4 bytes in
32-bit objects and to 8 bytes in 64-bit objects. Skip notes
with incorrect alignment. */
@@ -57,6 +61,9 @@ _dl_process_cet_property_note (struct link_map *l,
const ElfW(Addr) start = (ElfW(Addr)) note;
+ unsigned int feature_1 = 0;
+ unsigned int last_type = 0;
+
while ((ElfW(Addr)) (note + 1) - start < size)
{
/* Find the NT_GNU_PROPERTY_TYPE_0 note. */
@@ -64,10 +71,18 @@ _dl_process_cet_property_note (struct link_map *l,
&& note->n_type == NT_GNU_PROPERTY_TYPE_0
&& memcmp (note + 1, "GNU", 4) == 0)
{
+ /* Stop if we see more than one GNU property note which may
+ be generated by the older linker. */
+ if (l->l_cet != lc_unknown)
+ return;
+
+ /* Check CET status now. */
+ l->l_cet = lc_none;
+
/* Check for invalid property. */
if (note->n_descsz < 8
|| (note->n_descsz % sizeof (ElfW(Addr))) != 0)
- break;
+ return;
/* Start and end of property array. */
unsigned char *ptr = (unsigned char *) (note + 1) + 4;
@@ -78,9 +93,15 @@ _dl_process_cet_property_note (struct link_map *l,
unsigned int type = *(unsigned int *) ptr;
unsigned int datasz = *(unsigned int *) (ptr + 4);
+ /* Property type must be in ascending order. */
+ if (type < last_type)
+ return;
+
ptr += 8;
if ((ptr + datasz) > ptr_end)
- break;
+ return;
+
+ last_type = type;
if (type == GNU_PROPERTY_X86_FEATURE_1_AND)
{
@@ -89,14 +110,18 @@ _dl_process_cet_property_note (struct link_map *l,
we stop the search regardless if its size is correct
or not. There is no point to continue if this note
is ill-formed. */
- if (datasz == 4)
- {
- unsigned int feature_1 = *(unsigned int *) ptr;
- if ((feature_1 & GNU_PROPERTY_X86_FEATURE_1_IBT))
- l->l_cet |= lc_ibt;
- if ((feature_1 & GNU_PROPERTY_X86_FEATURE_1_SHSTK))
- l->l_cet |= lc_shstk;
- }
+ if (datasz != 4)
+ return;
+
+ feature_1 = *(unsigned int *) ptr;
+
+ /* Keep searching for the next GNU property note
+ generated by the older linker. */
+ break;
+ }
+ else if (type > GNU_PROPERTY_X86_FEATURE_1_AND)
+ {
+ /* Stop since property type is in ascending order. */
return;
}
@@ -112,6 +137,12 @@ _dl_process_cet_property_note (struct link_map *l,
+ ELF_NOTE_NEXT_OFFSET (note->n_namesz, note->n_descsz,
align));
}
+
+ /* We get here only if there is one or no GNU property note. */
+ if ((feature_1 & GNU_PROPERTY_X86_FEATURE_1_IBT))
+ l->l_cet |= lc_ibt;
+ if ((feature_1 & GNU_PROPERTY_X86_FEATURE_1_SHSTK))
+ l->l_cet |= lc_shstk;
#endif
}
@@ -136,8 +167,7 @@ _dl_process_pt_note (struct link_map *l, const ElfW(Phdr) *ph,
note_malloced = malloc (size);
note = note_malloced;
}
- __lseek (fd, ph->p_offset, SEEK_SET);
- if (__read_nocancel (fd, (void *) note, size) != size)
+ if (__pread64_nocancel (fd, (void *) note, size, ph->p_offset) != size)
{
if (note_malloced)
free (note_malloced);
diff --git a/sysdeps/x86/dl-tunables.list b/sysdeps/x86/dl-tunables.list
index 73886b1352..34b7bde8bb 100644
--- a/sysdeps/x86/dl-tunables.list
+++ b/sysdeps/x86/dl-tunables.list
@@ -1,5 +1,5 @@
# x86 specific tunables.
-# Copyright (C) 2017-2018 Free Software Foundation, Inc.
+# Copyright (C) 2017-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
@@ -14,10 +14,10 @@
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
glibc {
- tune {
+ cpu {
hwcaps {
type: STRING
}
diff --git a/sysdeps/x86/elide.h b/sysdeps/x86/elide.h
index 8d5589902f..5ad29fec9c 100644
--- a/sysdeps/x86/elide.h
+++ b/sysdeps/x86/elide.h
@@ -1,5 +1,5 @@
/* elide.h: Generic lock elision support.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef ELIDE_H
#define ELIDE_H 1
diff --git a/sysdeps/x86/fpu/bits/fenv.h b/sysdeps/x86/fpu/bits/fenv.h
index 4103982d8c..8953ea9937 100644
--- a/sysdeps/x86/fpu/bits/fenv.h
+++ b/sysdeps/x86/fpu/bits/fenv.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FENV_H
# error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
@@ -101,7 +101,7 @@ fenv_t;
# define FE_NOMASK_ENV ((const fenv_t *) -2)
#endif
-#if __GLIBC_USE (IEC_60559_BFP_EXT)
+#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)
/* Type representing floating-point control modes. */
typedef struct
{
diff --git a/sysdeps/x86/fpu/bits/math-vector.h b/sysdeps/x86/fpu/bits/math-vector.h
index 3d229d8705..90f00f396b 100644
--- a/sysdeps/x86/fpu/bits/math-vector.h
+++ b/sysdeps/x86/fpu/bits/math-vector.h
@@ -1,5 +1,5 @@
/* Platform-specific SIMD declarations of math functions.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MATH_H
# error "Never include <bits/math-vector.h> directly;\
diff --git a/sysdeps/x86/fpu/bits/mathinline.h b/sysdeps/x86/fpu/bits/mathinline.h
deleted file mode 100644
index 91ece8dfb8..0000000000
--- a/sysdeps/x86/fpu/bits/mathinline.h
+++ /dev/null
@@ -1,328 +0,0 @@
-/* Inline math functions for i387 and SSE.
- Copyright (C) 1995-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _MATH_H
-# error "Never use <bits/mathinline.h> directly; include <math.h> instead."
-#endif
-
-#ifndef __extern_always_inline
-# define __MATH_INLINE __inline
-#else
-# define __MATH_INLINE __extern_always_inline
-#endif
-
-/* Disable x87 inlines when -fpmath=sse is passed and also when we're building
- on x86_64. Older gcc (gcc-3.2 for example) does not define __SSE2_MATH__
- for x86_64. */
-#if !defined __SSE2_MATH__ && !defined __x86_64__
-# if ((!defined __NO_MATH_INLINES || defined __LIBC_INTERNAL_MATH_INLINES) \
- && defined __OPTIMIZE__)
-
-/* The inline functions do not set errno or raise necessarily the
- correct exceptions. */
-# undef math_errhandling
-
-/* A macro to define float, double, and long double versions of various
- math functions for the ix87 FPU. FUNC is the function name (which will
- be suffixed with f and l for the float and long double version,
- respectively). OP is the name of the FPU operation.
- We define two sets of macros. The set with the additional NP
- doesn't add a prototype declaration. */
-
-# ifdef __USE_ISOC99
-# define __inline_mathop(func, op) \
- __inline_mathop_ (double, func, op) \
- __inline_mathop_ (float, __CONCAT(func,f), op) \
- __inline_mathop_ (long double, __CONCAT(func,l), op)
-# define __inline_mathopNP(func, op) \
- __inline_mathopNP_ (double, func, op) \
- __inline_mathopNP_ (float, __CONCAT(func,f), op) \
- __inline_mathopNP_ (long double, __CONCAT(func,l), op)
-# else
-# define __inline_mathop(func, op) \
- __inline_mathop_ (double, func, op)
-# define __inline_mathopNP(func, op) \
- __inline_mathopNP_ (double, func, op)
-# endif
-
-# define __inline_mathop_(float_type, func, op) \
- __inline_mathop_decl_ (float_type, func, op, "0" (__x))
-# define __inline_mathopNP_(float_type, func, op) \
- __inline_mathop_declNP_ (float_type, func, op, "0" (__x))
-
-
-# ifdef __USE_ISOC99
-# define __inline_mathop_decl(func, op, params...) \
- __inline_mathop_decl_ (double, func, op, params) \
- __inline_mathop_decl_ (float, __CONCAT(func,f), op, params) \
- __inline_mathop_decl_ (long double, __CONCAT(func,l), op, params)
-# define __inline_mathop_declNP(func, op, params...) \
- __inline_mathop_declNP_ (double, func, op, params) \
- __inline_mathop_declNP_ (float, __CONCAT(func,f), op, params) \
- __inline_mathop_declNP_ (long double, __CONCAT(func,l), op, params)
-# else
-# define __inline_mathop_decl(func, op, params...) \
- __inline_mathop_decl_ (double, func, op, params)
-# define __inline_mathop_declNP(func, op, params...) \
- __inline_mathop_declNP_ (double, func, op, params)
-# endif
-
-# define __inline_mathop_decl_(float_type, func, op, params...) \
- __MATH_INLINE float_type func (float_type) __THROW; \
- __inline_mathop_declNP_ (float_type, func, op, params)
-
-# define __inline_mathop_declNP_(float_type, func, op, params...) \
- __MATH_INLINE float_type __NTH (func (float_type __x)) \
- { \
- register float_type __result; \
- __asm __volatile__ (op : "=t" (__result) : params); \
- return __result; \
- }
-
-
-# ifdef __USE_ISOC99
-# define __inline_mathcode(func, arg, code) \
- __inline_mathcode_ (double, func, arg, code) \
- __inline_mathcode_ (float, __CONCAT(func,f), arg, code) \
- __inline_mathcode_ (long double, __CONCAT(func,l), arg, code)
-# define __inline_mathcodeNP(func, arg, code) \
- __inline_mathcodeNP_ (double, func, arg, code) \
- __inline_mathcodeNP_ (float, __CONCAT(func,f), arg, code) \
- __inline_mathcodeNP_ (long double, __CONCAT(func,l), arg, code)
-# define __inline_mathcode2(func, arg1, arg2, code) \
- __inline_mathcode2_ (double, func, arg1, arg2, code) \
- __inline_mathcode2_ (float, __CONCAT(func,f), arg1, arg2, code) \
- __inline_mathcode2_ (long double, __CONCAT(func,l), arg1, arg2, code)
-# define __inline_mathcodeNP2(func, arg1, arg2, code) \
- __inline_mathcodeNP2_ (double, func, arg1, arg2, code) \
- __inline_mathcodeNP2_ (float, __CONCAT(func,f), arg1, arg2, code) \
- __inline_mathcodeNP2_ (long double, __CONCAT(func,l), arg1, arg2, code)
-# define __inline_mathcode3(func, arg1, arg2, arg3, code) \
- __inline_mathcode3_ (double, func, arg1, arg2, arg3, code) \
- __inline_mathcode3_ (float, __CONCAT(func,f), arg1, arg2, arg3, code) \
- __inline_mathcode3_ (long double, __CONCAT(func,l), arg1, arg2, arg3, code)
-# define __inline_mathcodeNP3(func, arg1, arg2, arg3, code) \
- __inline_mathcodeNP3_ (double, func, arg1, arg2, arg3, code) \
- __inline_mathcodeNP3_ (float, __CONCAT(func,f), arg1, arg2, arg3, code) \
- __inline_mathcodeNP3_ (long double, __CONCAT(func,l), arg1, arg2, arg3, code)
-# else
-# define __inline_mathcode(func, arg, code) \
- __inline_mathcode_ (double, func, (arg), code)
-# define __inline_mathcodeNP(func, arg, code) \
- __inline_mathcodeNP_ (double, func, (arg), code)
-# define __inline_mathcode2(func, arg1, arg2, code) \
- __inline_mathcode2_ (double, func, arg1, arg2, code)
-# define __inline_mathcodeNP2(func, arg1, arg2, code) \
- __inline_mathcodeNP2_ (double, func, arg1, arg2, code)
-# define __inline_mathcode3(func, arg1, arg2, arg3, code) \
- __inline_mathcode3_ (double, func, arg1, arg2, arg3, code)
-# define __inline_mathcodeNP3(func, arg1, arg2, arg3, code) \
- __inline_mathcodeNP3_ (double, func, arg1, arg2, arg3, code)
-# endif
-
-# define __inline_mathcode_(float_type, func, arg, code) \
- __MATH_INLINE float_type func (float_type) __THROW; \
- __inline_mathcodeNP_(float_type, func, arg, code)
-
-# define __inline_mathcodeNP_(float_type, func, arg, code) \
- __MATH_INLINE float_type __NTH (func (float_type arg)) \
- { \
- code; \
- }
-
-
-# define __inline_mathcode2_(float_type, func, arg1, arg2, code) \
- __MATH_INLINE float_type func (float_type, float_type) __THROW; \
- __inline_mathcodeNP2_ (float_type, func, arg1, arg2, code)
-
-# define __inline_mathcodeNP2_(float_type, func, arg1, arg2, code) \
- __MATH_INLINE float_type __NTH (func (float_type arg1, float_type arg2)) \
- { \
- code; \
- }
-
-# define __inline_mathcode3_(float_type, func, arg1, arg2, arg3, code) \
- __MATH_INLINE float_type func (float_type, float_type, float_type) __THROW; \
- __inline_mathcodeNP3_(float_type, func, arg1, arg2, arg3, code)
-
-# define __inline_mathcodeNP3_(float_type, func, arg1, arg2, arg3, code) \
- __MATH_INLINE float_type __NTH (func (float_type arg1, float_type arg2, \
- float_type arg3)) \
- { \
- code; \
- }
-# endif
-
-
-# if !defined __NO_MATH_INLINES && defined __OPTIMIZE__
-/* Miscellaneous functions */
-
-/* __FAST_MATH__ is defined by gcc -ffast-math. */
-# ifdef __FAST_MATH__
-/* Optimized inline implementation, sometimes with reduced precision
- and/or argument range. */
-
-# if __GNUC_PREREQ (3, 5)
-# define __expm1_code \
- register long double __temp; \
- __temp = __builtin_expm1l (__x); \
- return __temp ? __temp : __x
-# else
-# define __expm1_code \
- register long double __value; \
- register long double __exponent; \
- register long double __temp; \
- __asm __volatile__ \
- ("fldl2e # e^x - 1 = 2^(x * log2(e)) - 1\n\t" \
- "fmul %%st(1) # x * log2(e)\n\t" \
- "fst %%st(1)\n\t" \
- "frndint # int(x * log2(e))\n\t" \
- "fxch\n\t" \
- "fsub %%st(1) # fract(x * log2(e))\n\t" \
- "f2xm1 # 2^(fract(x * log2(e))) - 1\n\t" \
- "fscale # 2^(x * log2(e)) - 2^(int(x * log2(e)))\n\t" \
- : "=t" (__value), "=u" (__exponent) : "0" (__x)); \
- __asm __volatile__ \
- ("fscale # 2^int(x * log2(e))\n\t" \
- : "=t" (__temp) : "0" (1.0), "u" (__exponent)); \
- __temp -= 1.0; \
- __temp += __value; \
- return __temp ? __temp : __x
-# endif
-__inline_mathcodeNP_ (long double, __expm1l, __x, __expm1_code)
-
-# if __GNUC_PREREQ (3, 4)
-__inline_mathcodeNP_ (long double, __expl, __x, return __builtin_expl (__x))
-# else
-# define __exp_code \
- register long double __value; \
- register long double __exponent; \
- __asm __volatile__ \
- ("fldl2e # e^x = 2^(x * log2(e))\n\t" \
- "fmul %%st(1) # x * log2(e)\n\t" \
- "fst %%st(1)\n\t" \
- "frndint # int(x * log2(e))\n\t" \
- "fxch\n\t" \
- "fsub %%st(1) # fract(x * log2(e))\n\t" \
- "f2xm1 # 2^(fract(x * log2(e))) - 1\n\t" \
- : "=t" (__value), "=u" (__exponent) : "0" (__x)); \
- __value += 1.0; \
- __asm __volatile__ \
- ("fscale" \
- : "=t" (__value) : "0" (__value), "u" (__exponent)); \
- return __value
-__inline_mathcodeNP (exp, __x, __exp_code)
-__inline_mathcodeNP_ (long double, __expl, __x, __exp_code)
-# endif
-# endif /* __FAST_MATH__ */
-
-
-# ifdef __FAST_MATH__
-# if !__GNUC_PREREQ (3,3)
-__inline_mathopNP (sqrt, "fsqrt")
-__inline_mathopNP_ (long double, __sqrtl, "fsqrt")
-# define __libc_sqrtl(n) __sqrtl (n)
-# else
-# define __libc_sqrtl(n) __builtin_sqrtl (n)
-# endif
-# endif
-
-# if __GNUC_PREREQ (2, 8)
-__inline_mathcodeNP_ (double, fabs, __x, return __builtin_fabs (__x))
-# ifdef __USE_ISOC99
-__inline_mathcodeNP_ (float, fabsf, __x, return __builtin_fabsf (__x))
-__inline_mathcodeNP_ (long double, fabsl, __x, return __builtin_fabsl (__x))
-# endif
-__inline_mathcodeNP_ (long double, __fabsl, __x, return __builtin_fabsl (__x))
-# else
-__inline_mathop (fabs, "fabs")
-__inline_mathop_ (long double, __fabsl, "fabs")
-# endif
-
-__inline_mathcode_ (long double, __sgn1l, __x, \
- __extension__ union { long double __xld; unsigned int __xi[3]; } __n = \
- { __xld: __x }; \
- __n.__xi[2] = (__n.__xi[2] & 0x8000) | 0x3fff; \
- __n.__xi[1] = 0x80000000; \
- __n.__xi[0] = 0; \
- return __n.__xld)
-
-
-# ifdef __FAST_MATH__
-/* The argument range of the inline version of sinhl is slightly reduced. */
-__inline_mathcodeNP (sinh, __x, \
- register long double __exm1 = __expm1l (__fabsl (__x)); \
- return 0.5 * (__exm1 / (__exm1 + 1.0) + __exm1) * __sgn1l (__x))
-
-__inline_mathcodeNP (cosh, __x, \
- register long double __ex = __expl (__x); \
- return 0.5 * (__ex + 1.0 / __ex))
-
-__inline_mathcodeNP (tanh, __x, \
- register long double __exm1 = __expm1l (-__fabsl (__x + __x)); \
- return __exm1 / (__exm1 + 2.0) * __sgn1l (-__x))
-# endif
-
-
-/* Optimized versions for some non-standardized functions. */
-# ifdef __USE_ISOC99
-
-# ifdef __FAST_MATH__
-__inline_mathcodeNP (expm1, __x, __expm1_code)
-
-/* The argument range of the inline version of asinhl is slightly reduced. */
-__inline_mathcodeNP (asinh, __x, \
- register long double __y = __fabsl (__x); \
- return (log1pl (__y * __y / (__libc_sqrtl (__y * __y + 1.0) + 1.0) + __y) \
- * __sgn1l (__x)))
-
-__inline_mathcodeNP (acosh, __x, \
- return logl (__x + __libc_sqrtl (__x - 1.0) * __libc_sqrtl (__x + 1.0)))
-
-__inline_mathcodeNP (atanh, __x, \
- register long double __y = __fabsl (__x); \
- return -0.5 * log1pl (-(__y + __y) / (1.0 + __y)) * __sgn1l (__x))
-
-/* The argument range of the inline version of hypotl is slightly reduced. */
-__inline_mathcodeNP2 (hypot, __x, __y,
- return __libc_sqrtl (__x * __x + __y * __y))
-
-# endif
-# endif
-
-
-/* Undefine some of the large macros which are not used anymore. */
-# ifdef __FAST_MATH__
-# undef __expm1_code
-# undef __exp_code
-# endif /* __FAST_MATH__ */
-
-# endif /* __NO_MATH_INLINES */
-
-
-/* This code is used internally in the GNU libc. */
-# ifdef __LIBC_INTERNAL_MATH_INLINES
-__inline_mathcode2_ (long double, __ieee754_atan2l, __y, __x,
- register long double __value;
- __asm __volatile__ ("fpatan\n\t"
- : "=t" (__value)
- : "0" (__x), "u" (__y) : "st(1)");
- return __value;)
-# endif
-
-#endif /* !__SSE2_MATH__ && !__x86_64__ */
diff --git a/sysdeps/x86/fpu/e_sqrtf128.c b/sysdeps/x86/fpu/e_sqrtf128.c
index cac5f63527..5c641a069c 100644
--- a/sysdeps/x86/fpu/e_sqrtf128.c
+++ b/sysdeps/x86/fpu/e_sqrtf128.c
@@ -1,6 +1,6 @@
/* soft-fp sqrt for _Float128
Return sqrt(a)
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -24,7 +24,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <soft-fp.h>
#include <quad.h>
diff --git a/sysdeps/x86/fpu/fenv_private.h b/sysdeps/x86/fpu/fenv_private.h
new file mode 100644
index 0000000000..4b081e015b
--- /dev/null
+++ b/sysdeps/x86/fpu/fenv_private.h
@@ -0,0 +1,497 @@
+#ifndef X86_FENV_PRIVATE_H
+#define X86_FENV_PRIVATE_H 1
+
+#include <bits/floatn.h>
+#include <fenv.h>
+#include <fpu_control.h>
+
+/* This file is used by both the 32- and 64-bit ports. The 64-bit port
+ has a field in the fenv_t for the mxcsr; the 32-bit port does not.
+ Instead, we (ab)use the only 32-bit field extant in the struct. */
+#ifndef __x86_64__
+# define __mxcsr __eip
+#endif
+
+
+/* All of these functions are private to libm, and are all used in pairs
+ to save+change the fp state and restore the original state. Thus we
+ need not care for both the 387 and the sse unit, only the one we're
+ actually using. */
+
+#if defined __AVX__ || defined SSE2AVX
+# define STMXCSR "vstmxcsr"
+# define LDMXCSR "vldmxcsr"
+#else
+# define STMXCSR "stmxcsr"
+# define LDMXCSR "ldmxcsr"
+#endif
+
+static __always_inline void
+libc_feholdexcept_sse (fenv_t *e)
+{
+ unsigned int mxcsr;
+ asm (STMXCSR " %0" : "=m" (*&mxcsr));
+ e->__mxcsr = mxcsr;
+ mxcsr = (mxcsr | 0x1f80) & ~0x3f;
+ asm volatile (LDMXCSR " %0" : : "m" (*&mxcsr));
+}
+
+static __always_inline void
+libc_feholdexcept_387 (fenv_t *e)
+{
+ /* Recall that fnstenv has a side-effect of masking exceptions.
+ Clobber all of the fp registers so that the TOS field is 0. */
+ asm volatile ("fnstenv %0; fnclex"
+ : "=m"(*e)
+ : : "st", "st(1)", "st(2)", "st(3)",
+ "st(4)", "st(5)", "st(6)", "st(7)");
+}
+
+static __always_inline void
+libc_fesetround_sse (int r)
+{
+ unsigned int mxcsr;
+ asm (STMXCSR " %0" : "=m" (*&mxcsr));
+ mxcsr = (mxcsr & ~0x6000) | (r << 3);
+ asm volatile (LDMXCSR " %0" : : "m" (*&mxcsr));
+}
+
+static __always_inline void
+libc_fesetround_387 (int r)
+{
+ fpu_control_t cw;
+ _FPU_GETCW (cw);
+ cw = (cw & ~0xc00) | r;
+ _FPU_SETCW (cw);
+}
+
+static __always_inline void
+libc_feholdexcept_setround_sse (fenv_t *e, int r)
+{
+ unsigned int mxcsr;
+ asm (STMXCSR " %0" : "=m" (*&mxcsr));
+ e->__mxcsr = mxcsr;
+ mxcsr = ((mxcsr | 0x1f80) & ~0x603f) | (r << 3);
+ asm volatile (LDMXCSR " %0" : : "m" (*&mxcsr));
+}
+
+/* Set both rounding mode and precision. A convenience function for use
+ by libc_feholdexcept_setround and libc_feholdexcept_setround_53bit. */
+static __always_inline void
+libc_feholdexcept_setround_387_prec (fenv_t *e, int r)
+{
+ libc_feholdexcept_387 (e);
+
+ fpu_control_t cw = e->__control_word;
+ cw &= ~(_FPU_RC_ZERO | _FPU_EXTENDED);
+ cw |= r | 0x3f;
+ _FPU_SETCW (cw);
+}
+
+static __always_inline void
+libc_feholdexcept_setround_387 (fenv_t *e, int r)
+{
+ libc_feholdexcept_setround_387_prec (e, r | _FPU_EXTENDED);
+}
+
+static __always_inline void
+libc_feholdexcept_setround_387_53bit (fenv_t *e, int r)
+{
+ libc_feholdexcept_setround_387_prec (e, r | _FPU_DOUBLE);
+}
+
+static __always_inline int
+libc_fetestexcept_sse (int e)
+{
+ unsigned int mxcsr;
+ asm volatile (STMXCSR " %0" : "=m" (*&mxcsr));
+ return mxcsr & e & FE_ALL_EXCEPT;
+}
+
+static __always_inline int
+libc_fetestexcept_387 (int ex)
+{
+ fexcept_t temp;
+ asm volatile ("fnstsw %0" : "=a" (temp));
+ return temp & ex & FE_ALL_EXCEPT;
+}
+
+static __always_inline void
+libc_fesetenv_sse (fenv_t *e)
+{
+ asm volatile (LDMXCSR " %0" : : "m" (e->__mxcsr));
+}
+
+static __always_inline void
+libc_fesetenv_387 (fenv_t *e)
+{
+ /* Clobber all fp registers so that the TOS value we saved earlier is
+ compatible with the current state of the compiler. */
+ asm volatile ("fldenv %0"
+ : : "m" (*e)
+ : "st", "st(1)", "st(2)", "st(3)",
+ "st(4)", "st(5)", "st(6)", "st(7)");
+}
+
+static __always_inline int
+libc_feupdateenv_test_sse (fenv_t *e, int ex)
+{
+ unsigned int mxcsr, old_mxcsr, cur_ex;
+ asm volatile (STMXCSR " %0" : "=m" (*&mxcsr));
+ cur_ex = mxcsr & FE_ALL_EXCEPT;
+
+ /* Merge current exceptions with the old environment. */
+ old_mxcsr = e->__mxcsr;
+ mxcsr = old_mxcsr | cur_ex;
+ asm volatile (LDMXCSR " %0" : : "m" (*&mxcsr));
+
+ /* Raise SIGFPE for any new exceptions since the hold. Expect that
+ the normal environment has all exceptions masked. */
+ if (__glibc_unlikely (~(old_mxcsr >> 7) & cur_ex))
+ __feraiseexcept (cur_ex);
+
+ /* Test for exceptions raised since the hold. */
+ return cur_ex & ex;
+}
+
+static __always_inline int
+libc_feupdateenv_test_387 (fenv_t *e, int ex)
+{
+ fexcept_t cur_ex;
+
+ /* Save current exceptions. */
+ asm volatile ("fnstsw %0" : "=a" (cur_ex));
+ cur_ex &= FE_ALL_EXCEPT;
+
+ /* Reload original environment. */
+ libc_fesetenv_387 (e);
+
+ /* Merge current exceptions. */
+ __feraiseexcept (cur_ex);
+
+ /* Test for exceptions raised since the hold. */
+ return cur_ex & ex;
+}
+
+static __always_inline void
+libc_feupdateenv_sse (fenv_t *e)
+{
+ libc_feupdateenv_test_sse (e, 0);
+}
+
+static __always_inline void
+libc_feupdateenv_387 (fenv_t *e)
+{
+ libc_feupdateenv_test_387 (e, 0);
+}
+
+static __always_inline void
+libc_feholdsetround_sse (fenv_t *e, int r)
+{
+ unsigned int mxcsr;
+ asm (STMXCSR " %0" : "=m" (*&mxcsr));
+ e->__mxcsr = mxcsr;
+ mxcsr = (mxcsr & ~0x6000) | (r << 3);
+ asm volatile (LDMXCSR " %0" : : "m" (*&mxcsr));
+}
+
+static __always_inline void
+libc_feholdsetround_387_prec (fenv_t *e, int r)
+{
+ fpu_control_t cw;
+
+ _FPU_GETCW (cw);
+ e->__control_word = cw;
+ cw &= ~(_FPU_RC_ZERO | _FPU_EXTENDED);
+ cw |= r;
+ _FPU_SETCW (cw);
+}
+
+static __always_inline void
+libc_feholdsetround_387 (fenv_t *e, int r)
+{
+ libc_feholdsetround_387_prec (e, r | _FPU_EXTENDED);
+}
+
+static __always_inline void
+libc_feholdsetround_387_53bit (fenv_t *e, int r)
+{
+ libc_feholdsetround_387_prec (e, r | _FPU_DOUBLE);
+}
+
+static __always_inline void
+libc_feresetround_sse (fenv_t *e)
+{
+ unsigned int mxcsr;
+ asm (STMXCSR " %0" : "=m" (*&mxcsr));
+ mxcsr = (mxcsr & ~0x6000) | (e->__mxcsr & 0x6000);
+ asm volatile (LDMXCSR " %0" : : "m" (*&mxcsr));
+}
+
+static __always_inline void
+libc_feresetround_387 (fenv_t *e)
+{
+ _FPU_SETCW (e->__control_word);
+}
+
+#ifdef __SSE_MATH__
+# define libc_feholdexceptf libc_feholdexcept_sse
+# define libc_fesetroundf libc_fesetround_sse
+# define libc_feholdexcept_setroundf libc_feholdexcept_setround_sse
+# define libc_fetestexceptf libc_fetestexcept_sse
+# define libc_fesetenvf libc_fesetenv_sse
+# define libc_feupdateenv_testf libc_feupdateenv_test_sse
+# define libc_feupdateenvf libc_feupdateenv_sse
+# define libc_feholdsetroundf libc_feholdsetround_sse
+# define libc_feresetroundf libc_feresetround_sse
+#else
+# define libc_feholdexceptf libc_feholdexcept_387
+# define libc_fesetroundf libc_fesetround_387
+# define libc_feholdexcept_setroundf libc_feholdexcept_setround_387
+# define libc_fetestexceptf libc_fetestexcept_387
+# define libc_fesetenvf libc_fesetenv_387
+# define libc_feupdateenv_testf libc_feupdateenv_test_387
+# define libc_feupdateenvf libc_feupdateenv_387
+# define libc_feholdsetroundf libc_feholdsetround_387
+# define libc_feresetroundf libc_feresetround_387
+#endif /* __SSE_MATH__ */
+
+#ifdef __SSE2_MATH__
+# define libc_feholdexcept libc_feholdexcept_sse
+# define libc_fesetround libc_fesetround_sse
+# define libc_feholdexcept_setround libc_feholdexcept_setround_sse
+# define libc_fetestexcept libc_fetestexcept_sse
+# define libc_fesetenv libc_fesetenv_sse
+# define libc_feupdateenv_test libc_feupdateenv_test_sse
+# define libc_feupdateenv libc_feupdateenv_sse
+# define libc_feholdsetround libc_feholdsetround_sse
+# define libc_feresetround libc_feresetround_sse
+#else
+# define libc_feholdexcept libc_feholdexcept_387
+# define libc_fesetround libc_fesetround_387
+# define libc_feholdexcept_setround libc_feholdexcept_setround_387
+# define libc_fetestexcept libc_fetestexcept_387
+# define libc_fesetenv libc_fesetenv_387
+# define libc_feupdateenv_test libc_feupdateenv_test_387
+# define libc_feupdateenv libc_feupdateenv_387
+# define libc_feholdsetround libc_feholdsetround_387
+# define libc_feresetround libc_feresetround_387
+#endif /* __SSE2_MATH__ */
+
+#define libc_feholdexceptl libc_feholdexcept_387
+#define libc_fesetroundl libc_fesetround_387
+#define libc_feholdexcept_setroundl libc_feholdexcept_setround_387
+#define libc_fetestexceptl libc_fetestexcept_387
+#define libc_fesetenvl libc_fesetenv_387
+#define libc_feupdateenv_testl libc_feupdateenv_test_387
+#define libc_feupdateenvl libc_feupdateenv_387
+#define libc_feholdsetroundl libc_feholdsetround_387
+#define libc_feresetroundl libc_feresetround_387
+
+#ifndef __SSE2_MATH__
+# define libc_feholdexcept_setround_53bit libc_feholdexcept_setround_387_53bit
+# define libc_feholdsetround_53bit libc_feholdsetround_387_53bit
+#endif
+
+#ifdef __x86_64__
+/* The SSE rounding mode is used by soft-fp (libgcc and glibc) on
+ x86_64, so that must be set for float128 computations. */
+# define SET_RESTORE_ROUNDF128(RM) \
+ SET_RESTORE_ROUND_GENERIC (RM, libc_feholdsetround_sse, libc_feresetround_sse)
+# define libc_feholdexcept_setroundf128 libc_feholdexcept_setround_sse
+# define libc_feupdateenv_testf128 libc_feupdateenv_test_sse
+#else
+/* The 387 rounding mode is used by soft-fp for 32-bit, but whether
+ 387 or SSE exceptions are used depends on whether libgcc was built
+ for SSE math, which is not known when glibc is being built. */
+# define libc_feholdexcept_setroundf128 default_libc_feholdexcept_setround
+# define libc_feupdateenv_testf128 default_libc_feupdateenv_test
+#endif
+
+/* We have support for rounding mode context. */
+#define HAVE_RM_CTX 1
+
+static __always_inline void
+libc_feholdexcept_setround_sse_ctx (struct rm_ctx *ctx, int r)
+{
+ unsigned int mxcsr, new_mxcsr;
+ asm (STMXCSR " %0" : "=m" (*&mxcsr));
+ new_mxcsr = ((mxcsr | 0x1f80) & ~0x603f) | (r << 3);
+
+ ctx->env.__mxcsr = mxcsr;
+ if (__glibc_unlikely (mxcsr != new_mxcsr))
+ {
+ asm volatile (LDMXCSR " %0" : : "m" (*&new_mxcsr));
+ ctx->updated_status = true;
+ }
+ else
+ ctx->updated_status = false;
+}
+
+/* Unconditional since we want to overwrite any exceptions that occurred in the
+ context. This is also why all fehold* functions unconditionally write into
+ ctx->env. */
+static __always_inline void
+libc_fesetenv_sse_ctx (struct rm_ctx *ctx)
+{
+ libc_fesetenv_sse (&ctx->env);
+}
+
+static __always_inline void
+libc_feupdateenv_sse_ctx (struct rm_ctx *ctx)
+{
+ if (__glibc_unlikely (ctx->updated_status))
+ libc_feupdateenv_test_sse (&ctx->env, 0);
+}
+
+static __always_inline void
+libc_feholdexcept_setround_387_prec_ctx (struct rm_ctx *ctx, int r)
+{
+ libc_feholdexcept_387 (&ctx->env);
+
+ fpu_control_t cw = ctx->env.__control_word;
+ fpu_control_t old_cw = cw;
+ cw &= ~(_FPU_RC_ZERO | _FPU_EXTENDED);
+ cw |= r | 0x3f;
+
+ if (__glibc_unlikely (old_cw != cw))
+ {
+ _FPU_SETCW (cw);
+ ctx->updated_status = true;
+ }
+ else
+ ctx->updated_status = false;
+}
+
+static __always_inline void
+libc_feholdexcept_setround_387_ctx (struct rm_ctx *ctx, int r)
+{
+ libc_feholdexcept_setround_387_prec_ctx (ctx, r | _FPU_EXTENDED);
+}
+
+static __always_inline void
+libc_feholdexcept_setround_387_53bit_ctx (struct rm_ctx *ctx, int r)
+{
+ libc_feholdexcept_setround_387_prec_ctx (ctx, r | _FPU_DOUBLE);
+}
+
+static __always_inline void
+libc_feholdsetround_387_prec_ctx (struct rm_ctx *ctx, int r)
+{
+ fpu_control_t cw, new_cw;
+
+ _FPU_GETCW (cw);
+ new_cw = cw;
+ new_cw &= ~(_FPU_RC_ZERO | _FPU_EXTENDED);
+ new_cw |= r;
+
+ ctx->env.__control_word = cw;
+ if (__glibc_unlikely (new_cw != cw))
+ {
+ _FPU_SETCW (new_cw);
+ ctx->updated_status = true;
+ }
+ else
+ ctx->updated_status = false;
+}
+
+static __always_inline void
+libc_feholdsetround_387_ctx (struct rm_ctx *ctx, int r)
+{
+ libc_feholdsetround_387_prec_ctx (ctx, r | _FPU_EXTENDED);
+}
+
+static __always_inline void
+libc_feholdsetround_387_53bit_ctx (struct rm_ctx *ctx, int r)
+{
+ libc_feholdsetround_387_prec_ctx (ctx, r | _FPU_DOUBLE);
+}
+
+static __always_inline void
+libc_feholdsetround_sse_ctx (struct rm_ctx *ctx, int r)
+{
+ unsigned int mxcsr, new_mxcsr;
+
+ asm (STMXCSR " %0" : "=m" (*&mxcsr));
+ new_mxcsr = (mxcsr & ~0x6000) | (r << 3);
+
+ ctx->env.__mxcsr = mxcsr;
+ if (__glibc_unlikely (new_mxcsr != mxcsr))
+ {
+ asm volatile (LDMXCSR " %0" : : "m" (*&new_mxcsr));
+ ctx->updated_status = true;
+ }
+ else
+ ctx->updated_status = false;
+}
+
+static __always_inline void
+libc_feresetround_sse_ctx (struct rm_ctx *ctx)
+{
+ if (__glibc_unlikely (ctx->updated_status))
+ libc_feresetround_sse (&ctx->env);
+}
+
+static __always_inline void
+libc_feresetround_387_ctx (struct rm_ctx *ctx)
+{
+ if (__glibc_unlikely (ctx->updated_status))
+ _FPU_SETCW (ctx->env.__control_word);
+}
+
+static __always_inline void
+libc_feupdateenv_387_ctx (struct rm_ctx *ctx)
+{
+ if (__glibc_unlikely (ctx->updated_status))
+ libc_feupdateenv_test_387 (&ctx->env, 0);
+}
+
+#ifdef __SSE_MATH__
+# define libc_feholdexcept_setroundf_ctx libc_feholdexcept_setround_sse_ctx
+# define libc_fesetenvf_ctx libc_fesetenv_sse_ctx
+# define libc_feupdateenvf_ctx libc_feupdateenv_sse_ctx
+# define libc_feholdsetroundf_ctx libc_feholdsetround_sse_ctx
+# define libc_feresetroundf_ctx libc_feresetround_sse_ctx
+#else
+# define libc_feholdexcept_setroundf_ctx libc_feholdexcept_setround_387_ctx
+# define libc_feupdateenvf_ctx libc_feupdateenv_387_ctx
+# define libc_feholdsetroundf_ctx libc_feholdsetround_387_ctx
+# define libc_feresetroundf_ctx libc_feresetround_387_ctx
+#endif /* __SSE_MATH__ */
+
+#ifdef __SSE2_MATH__
+# if defined (__x86_64__) || !defined (MATH_SET_BOTH_ROUNDING_MODES)
+# define libc_feholdexcept_setround_ctx libc_feholdexcept_setround_sse_ctx
+# define libc_fesetenv_ctx libc_fesetenv_sse_ctx
+# define libc_feupdateenv_ctx libc_feupdateenv_sse_ctx
+# define libc_feholdsetround_ctx libc_feholdsetround_sse_ctx
+# define libc_feresetround_ctx libc_feresetround_sse_ctx
+# else
+# define libc_feholdexcept_setround_ctx default_libc_feholdexcept_setround_ctx
+# define libc_fesetenv_ctx default_libc_fesetenv_ctx
+# define libc_feupdateenv_ctx default_libc_feupdateenv_ctx
+# define libc_feholdsetround_ctx default_libc_feholdsetround_ctx
+# define libc_feresetround_ctx default_libc_feresetround_ctx
+# endif
+#else
+# define libc_feholdexcept_setround_ctx libc_feholdexcept_setround_387_ctx
+# define libc_feupdateenv_ctx libc_feupdateenv_387_ctx
+# define libc_feholdsetround_ctx libc_feholdsetround_387_ctx
+# define libc_feresetround_ctx libc_feresetround_387_ctx
+#endif /* __SSE2_MATH__ */
+
+#define libc_feholdexcept_setroundl_ctx libc_feholdexcept_setround_387_ctx
+#define libc_feupdateenvl_ctx libc_feupdateenv_387_ctx
+#define libc_feholdsetroundl_ctx libc_feholdsetround_387_ctx
+#define libc_feresetroundl_ctx libc_feresetround_387_ctx
+
+#ifndef __SSE2_MATH__
+# define libc_feholdsetround_53bit_ctx libc_feholdsetround_387_53bit_ctx
+# define libc_feresetround_53bit_ctx libc_feresetround_387_ctx
+#endif
+
+#undef __mxcsr
+
+#include_next <fenv_private.h>
+
+#endif /* X86_FENV_PRIVATE_H */
diff --git a/sysdeps/x86/fpu/finclude/math-vector-fortran.h b/sysdeps/x86/fpu/finclude/math-vector-fortran.h
new file mode 100644
index 0000000000..8fa868346e
--- /dev/null
+++ b/sysdeps/x86/fpu/finclude/math-vector-fortran.h
@@ -0,0 +1,43 @@
+! Platform-specific declarations of SIMD math functions for Fortran. -*- f90 -*-
+! 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; if not, see
+! <https://www.gnu.org/licenses/>.
+
+!GCC$ builtin (cos) attributes simd (notinbranch) if('x86_64')
+!GCC$ builtin (cosf) attributes simd (notinbranch) if('x86_64')
+!GCC$ builtin (sin) attributes simd (notinbranch) if('x86_64')
+!GCC$ builtin (sinf) attributes simd (notinbranch) if('x86_64')
+!GCC$ builtin (sincos) attributes simd (notinbranch) if('x86_64')
+!GCC$ builtin (sincosf) attributes simd (notinbranch) if('x86_64')
+!GCC$ builtin (log) attributes simd (notinbranch) if('x86_64')
+!GCC$ builtin (logf) attributes simd (notinbranch) if('x86_64')
+!GCC$ builtin (exp) attributes simd (notinbranch) if('x86_64')
+!GCC$ builtin (expf) attributes simd (notinbranch) if('x86_64')
+!GCC$ builtin (pow) attributes simd (notinbranch) if('x86_64')
+!GCC$ builtin (powf) attributes simd (notinbranch) if('x86_64')
+
+!GCC$ builtin (cos) attributes simd (notinbranch) if('x32')
+!GCC$ builtin (cosf) attributes simd (notinbranch) if('x32')
+!GCC$ builtin (sin) attributes simd (notinbranch) if('x32')
+!GCC$ builtin (sinf) attributes simd (notinbranch) if('x32')
+!GCC$ builtin (sincos) attributes simd (notinbranch) if('x32')
+!GCC$ builtin (sincosf) attributes simd (notinbranch) if('x32')
+!GCC$ builtin (log) attributes simd (notinbranch) if('x32')
+!GCC$ builtin (logf) attributes simd (notinbranch) if('x32')
+!GCC$ builtin (exp) attributes simd (notinbranch) if('x32')
+!GCC$ builtin (expf) attributes simd (notinbranch) if('x32')
+!GCC$ builtin (pow) attributes simd (notinbranch) if('x32')
+!GCC$ builtin (powf) attributes simd (notinbranch) if('x32')
diff --git a/sysdeps/x86/fpu/fix-fp-int-compare-invalid.h b/sysdeps/x86/fpu/fix-fp-int-compare-invalid.h
index 6bad27d0fa..2ab8cd3651 100644
--- a/sysdeps/x86/fpu/fix-fp-int-compare-invalid.h
+++ b/sysdeps/x86/fpu/fix-fp-int-compare-invalid.h
@@ -1,6 +1,6 @@
/* Fix for missing "invalid" exceptions from floating-point
comparisons. x86 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef FIX_FP_INT_COMPARE_INVALID_H
#define FIX_FP_INT_COMPARE_INVALID_H 1
diff --git a/sysdeps/x86/fpu/include/bits/fenv.h b/sysdeps/x86/fpu/include/bits/fenv.h
index 3d2483b0bf..2ee656a533 100644
--- a/sysdeps/x86/fpu/include/bits/fenv.h
+++ b/sysdeps/x86/fpu/include/bits/fenv.h
@@ -1,5 +1,5 @@
/* Wrapper for x86 bits/fenv.h for use when building glibc.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_FENV_H
diff --git a/sysdeps/x86/fpu/math-barriers.h b/sysdeps/x86/fpu/math-barriers.h
index 1e1fabdb92..2e45378bd3 100644
--- a/sysdeps/x86/fpu/math-barriers.h
+++ b/sysdeps/x86/fpu/math-barriers.h
@@ -1,5 +1,5 @@
/* Control when floating-point expressions are evaluated. x86 version.
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef X86_MATH_BARRIERS_H
#define X86_MATH_BARRIERS_H 1
diff --git a/sysdeps/x86/fpu/math_private.h b/sysdeps/x86/fpu/math_private.h
new file mode 100644
index 0000000000..3d9763ae6e
--- /dev/null
+++ b/sysdeps/x86/fpu/math_private.h
@@ -0,0 +1,32 @@
+/* Private inline math functions for x86.
+ Copyright (C) 1995-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef X86_MATH_PRIVATE_H
+#define X86_MATH_PRIVATE_H 1
+
+#include_next <math_private.h>
+
+__extern_always_inline long double
+__NTH (__ieee754_atan2l (long double y, long double x))
+{
+ long double ret;
+ __asm__ __volatile__ ("fpatan" : "=t" (ret) : "0" (x), "u" (y) : "st(1)");
+ return ret;
+}
+
+#endif
diff --git a/sysdeps/x86/fpu/powl_helper.c b/sysdeps/x86/fpu/powl_helper.c
index 651eedd792..07897bf523 100644
--- a/sysdeps/x86/fpu/powl_helper.c
+++ b/sysdeps/x86/fpu/powl_helper.c
@@ -1,5 +1,5 @@
/* Implement powl for x86 using extra-precision log.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <math_private.h>
@@ -216,7 +216,7 @@ __powl_helper (long double x, long double y)
/* Split the base-2 logarithm of the result into integer and
fractional parts. */
- long double log2_res_int = __roundl (log2_res_hi);
+ long double log2_res_int = roundl (log2_res_hi);
long double log2_res_frac = log2_res_hi - log2_res_int + log2_res_lo;
/* If the integer part is very large, the computed fractional part
may be outside the valid range for f2xm1. */
diff --git a/sysdeps/x86/fpu/s_sincosf_data.c b/sysdeps/x86/fpu/s_sincosf_data.c
new file mode 100644
index 0000000000..b3bdd1cb3b
--- /dev/null
+++ b/sysdeps/x86/fpu/s_sincosf_data.c
@@ -0,0 +1,68 @@
+/* Compute sine and cosine of argument.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdint.h>
+#include <math.h>
+#include <sysdeps/ieee754/flt-32/math_config.h>
+#include <s_sincosf.h>
+
+/* The constants and polynomials for sine and cosine. The 2nd entry
+ computes -cos (x) rather than cos (x) to get negation for free. */
+const sincos_t __sincosf_table[2] =
+{
+ {
+ { 1.0, -1.0, -1.0, 1.0 },
+#if TOINT_INTRINSICS
+ 0x1.45F306DC9C883p-1,
+#else
+ 0x1.45F306DC9C883p+23,
+#endif
+ 0x1.921FB54442D18p0,
+ 0x1p0,
+ -0x1.ffffffd0c621cp-2,
+ { -0x1.555545995a603p-3, 0x1.55553e1068f19p-5 },
+ { 0x1.1107605230bc4p-7, -0x1.6c087e89a359dp-10 },
+ { -0x1.994eb3774cf24p-13, 0x1.99343027bf8c3p-16 }
+ },
+ {
+ { 1.0, -1.0, -1.0, 1.0 },
+#if TOINT_INTRINSICS
+ 0x1.45F306DC9C883p-1,
+#else
+ 0x1.45F306DC9C883p+23,
+#endif
+ 0x1.921FB54442D18p0,
+ -0x1p0,
+ 0x1.ffffffd0c621cp-2,
+ { -0x1.555545995a603p-3, -0x1.55553e1068f19p-5 },
+ { 0x1.1107605230bc4p-7, 0x1.6c087e89a359dp-10 },
+ { -0x1.994eb3774cf24p-13, -0x1.99343027bf8c3p-16 }
+ }
+};
+
+/* Table with 4/PI to 192 bit precision. To avoid unaligned accesses
+ only 8 new bits are added per entry, making the table 4 times larger. */
+const uint32_t __inv_pio4[24] =
+{
+ 0xa2, 0xa2f9, 0xa2f983, 0xa2f9836e,
+ 0xf9836e4e, 0x836e4e44, 0x6e4e4415, 0x4e441529,
+ 0x441529fc, 0x1529fc27, 0x29fc2757, 0xfc2757d1,
+ 0x2757d1f5, 0x57d1f534, 0xd1f534dd, 0xf534ddc0,
+ 0x34ddc0db, 0xddc0db62, 0xc0db6295, 0xdb629599,
+ 0x6295993c, 0x95993c43, 0x993c4390, 0x3c439041
+};
diff --git a/sysdeps/x86/fpu/sfp-machine.h b/sysdeps/x86/fpu/sfp-machine.h
index df8906acb4..5892f4f5fe 100644
--- a/sysdeps/x86/fpu/sfp-machine.h
+++ b/sysdeps/x86/fpu/sfp-machine.h
@@ -15,7 +15,7 @@ typedef int __gcc_CMPtype __attribute__ ((mode (__libgcc_cmp_return__)));
typedef int TItype __attribute__ ((mode (TI)));
typedef unsigned int UTItype __attribute__ ((mode (TI)));
-# define TI_BITS (__CHAR_BIT__ * (int)sizeof(TItype))
+# define TI_BITS (__CHAR_BIT__ * (int) sizeof (TItype))
# define _FP_MUL_MEAT_Q(R,X,Y) \
_FP_MUL_MEAT_2_wide(_FP_WFRACBITS_Q,R,X,Y,umul_ppmm)
diff --git a/sysdeps/x86/fpu/sincosf_poly.h b/sysdeps/x86/fpu/sincosf_poly.h
new file mode 100644
index 0000000000..ba18d17526
--- /dev/null
+++ b/sysdeps/x86/fpu/sincosf_poly.h
@@ -0,0 +1,111 @@
+/* Used by sinf, cosf and sincosf functions. X86-64 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+typedef double v2df_t __attribute__ ((vector_size (2 * sizeof (double))));
+
+#ifdef __SSE2_MATH__
+typedef float v4sf_t __attribute__ ((vector_size (4 * sizeof (float))));
+
+static inline void
+v2df_to_sf (v2df_t v2df, float *f0p, float *f1p)
+{
+ v4sf_t v4sf = __builtin_ia32_cvtpd2ps (v2df);
+ *f0p = v4sf[0];
+ *f1p = v4sf[1];
+}
+#else
+static inline void
+v2df_to_sf (v2df_t v2df, float *f0p, float *f1p)
+{
+ *f0p = (float) v2df[0];
+ *f1p = (float) v2df[1];
+}
+#endif
+
+/* The constants and polynomials for sine and cosine. */
+typedef struct
+{
+ double sign[4]; /* Sign of sine in quadrants 0..3. */
+ double hpi_inv; /* 2 / PI ( * 2^24 if !TOINT_INTRINSICS). */
+ double hpi; /* PI / 2. */
+ /* Cosine polynomial: c0, c1, c2, c3, c4.
+ Sine polynomial: s1, s2, s3. */
+ double c0, c1;
+ v2df_t s1c2, s2c3, s3c4;
+} sincos_t;
+
+/* Compute the sine and cosine of inputs X and X2 (X squared), using the
+ polynomial P and store the results in SINP and COSP. N is the quadrant,
+ if odd the cosine and sine polynomials are swapped. */
+static inline void
+sincosf_poly (double x, double x2, const sincos_t *p, int n, float *sinp,
+ float *cosp)
+{
+ v2df_t vx2x2 = { x2, x2 };
+ v2df_t vxx2 = { x, x2 };
+ v2df_t vx3x4, vs1c2;
+
+ vx3x4 = vx2x2 * vxx2;
+ vs1c2 = p->s2c3 + vx2x2 * p->s3c4;
+
+ /* Swap sin/cos result based on quadrant. */
+ if (n & 1)
+ {
+ float *tmp = cosp;
+ cosp = sinp;
+ sinp = tmp;
+ }
+
+ double c1 = p->c0 + x2 * p->c1;
+ v2df_t vxc1 = { x, c1 };
+ v2df_t vx5x6 = vx3x4 * vx2x2;
+
+ v2df_t vsincos = vxc1 + vx3x4 * p->s1c2;
+ vsincos = vsincos + vx5x6 * vs1c2;
+ v2df_to_sf (vsincos, sinp, cosp);
+}
+
+/* Return the sine of inputs X and X2 (X squared) using the polynomial P.
+ N is the quadrant, and if odd the cosine polynomial is used. */
+static inline float
+sinf_poly (double x, double x2, const sincos_t *p, int n)
+{
+ double x3, x4, x6, x7, s, c, c1, c2, s1;
+
+ if ((n & 1) == 0)
+ {
+ x3 = x * x2;
+ s1 = p->s2c3[0] + x2 * p->s3c4[0];
+
+ x7 = x3 * x2;
+ s = x + x3 * p->s1c2[0];
+
+ return s + x7 * s1;
+ }
+ else
+ {
+ x4 = x2 * x2;
+ c2 = p->s2c3[1] + x2 * p->s3c4[1];
+ c1 = p->c0 + x2 * p->c1;
+
+ x6 = x4 * x2;
+ c = c1 + x4 * p->s1c2[1];
+
+ return c + x6 * c2;
+ }
+}
diff --git a/sysdeps/x86/fpu/test-fenv-clear-sse.c b/sysdeps/x86/fpu/test-fenv-clear-sse.c
index c67a3ba7c9..9d5b762e3a 100644
--- a/sysdeps/x86/fpu/test-fenv-clear-sse.c
+++ b/sysdeps/x86/fpu/test-fenv-clear-sse.c
@@ -1,6 +1,6 @@
/* Test fesetenv (FE_DFL_ENV) and fesetenv (FE_NOMASK_ENV) clear
exceptions (bug 19181). SSE version.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <cpuid.h>
#include <stdbool.h>
diff --git a/sysdeps/x86/fpu/test-fenv-sse-2.c b/sysdeps/x86/fpu/test-fenv-sse-2.c
index fcb1011555..56dfbc3c5e 100644
--- a/sysdeps/x86/fpu/test-fenv-sse-2.c
+++ b/sysdeps/x86/fpu/test-fenv-sse-2.c
@@ -1,5 +1,5 @@
/* Test x86-specific floating-point environment (bug 16068): SSE part.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <cpuid.h>
#include <fenv.h>
diff --git a/sysdeps/x86/fpu/test-fenv-sse.c b/sysdeps/x86/fpu/test-fenv-sse.c
index 5462315811..d6ee7dc9ee 100644
--- a/sysdeps/x86/fpu/test-fenv-sse.c
+++ b/sysdeps/x86/fpu/test-fenv-sse.c
@@ -1,5 +1,5 @@
/* Test floating-point environment includes SSE state (bug 16064).
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <cpuid.h>
#include <fenv.h>
diff --git a/sysdeps/x86/fpu/test-fenv-x87.c b/sysdeps/x86/fpu/test-fenv-x87.c
index c9cd84e9c7..bd8cc6fdd7 100644
--- a/sysdeps/x86/fpu/test-fenv-x87.c
+++ b/sysdeps/x86/fpu/test-fenv-x87.c
@@ -1,5 +1,5 @@
/* Test x86-specific floating-point environment (bug 16068): x87 part.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <float.h>
diff --git a/sysdeps/x86/fpu/test-math-vector-sincos.h b/sysdeps/x86/fpu/test-math-vector-sincos.h
index d422ffa4a7..c095133a9d 100644
--- a/sysdeps/x86/fpu/test-math-vector-sincos.h
+++ b/sysdeps/x86/fpu/test-math-vector-sincos.h
@@ -1,6 +1,6 @@
/* Wrappers definitions for tests of ABI of vector sincos/sincosf having
vector declaration "#pragma omp declare simd notinbranch".
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define INIT_VEC_PTRS_LOOP(vec, val, len) \
do \
diff --git a/sysdeps/x86/fpu_control.h b/sysdeps/x86/fpu_control.h
index 4cb98c5679..bb52bd5522 100644
--- a/sysdeps/x86/fpu_control.h
+++ b/sysdeps/x86/fpu_control.h
@@ -1,5 +1,5 @@
/* FPU control word bits. x86 version.
- Copyright (C) 1993-2018 Free Software Foundation, Inc.
+ Copyright (C) 1993-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Olaf Flebbe.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _FPU_CONTROL_H
#define _FPU_CONTROL_H 1
diff --git a/sysdeps/x86/hp-timing.h b/sysdeps/x86/hp-timing.h
new file mode 100644
index 0000000000..a230732baf
--- /dev/null
+++ b/sysdeps/x86/hp-timing.h
@@ -0,0 +1,61 @@
+/* High precision, low overhead timing functions. x86 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _HP_TIMING_H
+#define _HP_TIMING_H 1
+
+#include <isa.h>
+
+#if MINIMUM_ISA == 686 || MINIMUM_ISA == 8664
+/* We indeed have inlined functions. */
+# define HP_TIMING_INLINE (1)
+
+/* We use 64bit values for the times. */
+typedef unsigned long long int hp_timing_t;
+
+/* That's quite simple. Use the `rdtsc' instruction. Note that the value
+ might not be 100% accurate since there might be some more instructions
+ running in this moment. This could be changed by using a barrier like
+ 'cpuid' right before the `rdtsc' instruciton. But we are not interested
+ in accurate clock cycles here so we don't do this.
+
+ NB: Use __builtin_ia32_rdtsc directly since including <x86intrin.h>
+ makes building glibc very slow. */
+# ifdef USE_RDTSCP
+/* RDTSCP waits until all previous instructions have executed and all
+ previous loads are globally visible before reading the counter.
+ RDTSC doesn't wait until all previous instructions have been executed
+ before reading the counter. */
+# define HP_TIMING_NOW(Var) \
+ (__extension__ ({ \
+ unsigned int __aux; \
+ (Var) = __builtin_ia32_rdtscp (&__aux); \
+ }))
+# else
+# define HP_TIMING_NOW(Var) ((Var) = __builtin_ia32_rdtsc ())
+# endif
+
+# include <hp-timing-common.h>
+#else
+/* NB: Undefine _HP_TIMING_H so that <sysdeps/generic/hp-timing.h> will
+ be included. */
+# undef _HP_TIMING_H
+# include <sysdeps/generic/hp-timing.h>
+#endif
+
+#endif /* hp-timing.h */
diff --git a/sysdeps/x86/init-arch.h b/sysdeps/x86/init-arch.h
index a81ca8a4eb..a6c2fe28b7 100644
--- a/sysdeps/x86/init-arch.h
+++ b/sysdeps/x86/init-arch.h
@@ -1,5 +1,5 @@
/* This file is part of the GNU C Library.
- Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ Copyright (C) 2008-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifdef __ASSEMBLER__
# include <cpu-features.h>
@@ -21,6 +21,7 @@
# include <ldsodefs.h>
#endif
#include <ifunc-init.h>
+#include <isa.h>
#ifndef __x86_64__
/* Due to the reordering and the other nifty extensions in i686, it is
diff --git a/sysdeps/x86/ldsodefs.h b/sysdeps/x86/ldsodefs.h
index 0616215b7a..57877e8b08 100644
--- a/sysdeps/x86/ldsodefs.h
+++ b/sysdeps/x86/ldsodefs.h
@@ -1,6 +1,6 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
X86 version.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _X86_LDSODEFS_H
#define _X86_LDSODEFS_H 1
diff --git a/sysdeps/x86/libc-start.c b/sysdeps/x86/libc-start.c
index eb5335c154..9df877ea3b 100644
--- a/sysdeps/x86/libc-start.c
+++ b/sysdeps/x86/libc-start.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2015-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef SHARED
/* Define I386_USE_SYSENTER to support syscall during startup in static
diff --git a/sysdeps/x86/libc-start.h b/sysdeps/x86/libc-start.h
index 6f44262bf4..b3b0cb7ea5 100644
--- a/sysdeps/x86/libc-start.h
+++ b/sysdeps/x86/libc-start.h
@@ -1,5 +1,5 @@
/* X86 definitions for libc main startup.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef SHARED
# define ARCH_SETUP_IREL() apply_irel ()
diff --git a/sysdeps/x86/link_map.h b/sysdeps/x86/link_map.h
index ef1206a9d2..38dcc7fc26 100644
--- a/sysdeps/x86/link_map.h
+++ b/sysdeps/x86/link_map.h
@@ -1,5 +1,5 @@
/* Additional fields in struct link_map. Linux/x86 version.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* If this object is enabled with CET. */
enum
{
- lc_none = 0, /* Not enabled with CET. */
- lc_ibt = 1 << 0, /* Enabled with IBT. */
- lc_shstk = 1 << 1, /* Enabled with STSHK. */
+ lc_unknown = 0, /* Unknown CET status. */
+ lc_none = 1 << 0, /* Not enabled with CET. */
+ lc_ibt = 1 << 1, /* Enabled with IBT. */
+ lc_shstk = 1 << 2, /* Enabled with STSHK. */
lc_ibt_and_shstk = lc_ibt | lc_shstk /* Enabled with both. */
- } l_cet:2;
+ } l_cet:3;
diff --git a/sysdeps/x86/longjmp.c b/sysdeps/x86/longjmp.c
index a53f31e1dd..5cb6c9f7c4 100644
--- a/sysdeps/x86/longjmp.c
+++ b/sysdeps/x86/longjmp.c
@@ -1,5 +1,5 @@
/* __libc_siglongjmp for x86.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __libc_longjmp __redirect___libc_longjmp
#include <setjmp/longjmp.c>
diff --git a/sysdeps/x86/math-tests.h b/sysdeps/x86/math-tests.h
deleted file mode 100644
index 43c7ebe337..0000000000
--- a/sysdeps/x86/math-tests.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Configuration for math tests. x86 version.
- Copyright (C) 2017-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-/* Before GCC 7, there is no built-in function to provide a __float128
- sNaN, so most sNaN tests for this type cannot work. */
-#if !__GNUC_PREREQ (7, 0)
-# define SNAN_TESTS_float128 0
-#endif
-
-#include_next <math-tests.h>
diff --git a/sysdeps/x86/nptl/bits/pthreadtypes-arch.h b/sysdeps/x86/nptl/bits/pthreadtypes-arch.h
index 290f2f4640..426a20751d 100644
--- a/sysdeps/x86/nptl/bits/pthreadtypes-arch.h
+++ b/sysdeps/x86/nptl/bits/pthreadtypes-arch.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _BITS_PTHREADTYPES_ARCH_H
#define _BITS_PTHREADTYPES_ARCH_H 1
@@ -47,57 +47,9 @@
#define __SIZEOF_PTHREAD_RWLOCKATTR_T 8
#define __SIZEOF_PTHREAD_BARRIERATTR_T 4
-/* Definitions for internal mutex struct. */
-#define __PTHREAD_COMPAT_PADDING_MID
-#define __PTHREAD_COMPAT_PADDING_END
-#define __PTHREAD_MUTEX_LOCK_ELISION 1
-#ifdef __x86_64__
-# define __PTHREAD_MUTEX_NUSERS_AFTER_KIND 0
-# define __PTHREAD_MUTEX_USE_UNION 0
-#else
-# define __PTHREAD_MUTEX_NUSERS_AFTER_KIND 1
-# define __PTHREAD_MUTEX_USE_UNION 1
-#endif
-
#define __LOCK_ALIGNMENT
#define __ONCE_ALIGNMENT
-struct __pthread_rwlock_arch_t
-{
- unsigned int __readers;
- unsigned int __writers;
- unsigned int __wrphase_futex;
- unsigned int __writers_futex;
- unsigned int __pad3;
- unsigned int __pad4;
-#ifdef __x86_64__
- int __cur_writer;
- int __shared;
- signed char __rwelision;
-# ifdef __ILP32__
- unsigned char __pad1[3];
-# define __PTHREAD_RWLOCK_ELISION_EXTRA 0, { 0, 0, 0 }
-# else
- unsigned char __pad1[7];
-# define __PTHREAD_RWLOCK_ELISION_EXTRA 0, { 0, 0, 0, 0, 0, 0, 0 }
-# endif
- unsigned long int __pad2;
- /* FLAGS must stay at this position in the structure to maintain
- binary compatibility. */
- unsigned int __flags;
-# define __PTHREAD_RWLOCK_INT_FLAGS_SHARED 1
-#else
- /* FLAGS must stay at this position in the structure to maintain
- binary compatibility. */
- unsigned char __flags;
- unsigned char __shared;
- signed char __rwelision;
-# define __PTHREAD_RWLOCK_ELISION_EXTRA 0
- unsigned char __pad2;
- int __cur_writer;
-#endif
-};
-
#ifndef __x86_64__
/* Extra attributes for the cleanup functions. */
# define __cleanup_fct_attribute __attribute__ ((__regparm__ (1)))
diff --git a/sysdeps/x86/nptl/bits/struct_mutex.h b/sysdeps/x86/nptl/bits/struct_mutex.h
new file mode 100644
index 0000000000..09384487f9
--- /dev/null
+++ b/sysdeps/x86/nptl/bits/struct_mutex.h
@@ -0,0 +1,63 @@
+/* x86 internal mutex struct definitions.
+ 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; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _THREAD_MUTEX_INTERNAL_H
+#define _THREAD_MUTEX_INTERNAL_H 1
+
+struct __pthread_mutex_s
+{
+ int __lock;
+ unsigned int __count;
+ int __owner;
+#ifdef __x86_64__
+ unsigned int __nusers;
+#endif
+ /* KIND must stay at this position in the structure to maintain
+ binary compatibility with static initializers. */
+ int __kind;
+#ifdef __x86_64__
+ short __spins;
+ short __elision;
+ __pthread_list_t __list;
+# define __PTHREAD_MUTEX_HAVE_PREV 1
+#else
+ unsigned int __nusers;
+ __extension__ union
+ {
+ struct
+ {
+ short __espins;
+ short __eelision;
+# define __spins __elision_data.__espins
+# define __elision __elision_data.__eelision
+ } __elision_data;
+ __pthread_slist_t __list;
+ };
+# define __PTHREAD_MUTEX_HAVE_PREV 0
+#endif
+};
+
+#ifdef __x86_64__
+# define __PTHREAD_MUTEX_INITIALIZER(__kind) \
+ 0, 0, 0, 0, __kind, 0, 0, { 0, 0 }
+#else
+# define __PTHREAD_MUTEX_INITIALIZER(__kind) \
+ 0, 0, 0, __kind, 0, { { 0, 0 } }
+#endif
+
+#endif
diff --git a/sysdeps/x86/nptl/bits/struct_rwlock.h b/sysdeps/x86/nptl/bits/struct_rwlock.h
new file mode 100644
index 0000000000..7f4728ec84
--- /dev/null
+++ b/sysdeps/x86/nptl/bits/struct_rwlock.h
@@ -0,0 +1,65 @@
+/* x86 internal rwlock struct definitions.
+ 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; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _RWLOCK_INTERNAL_H
+#define _RWLOCK_INTERNAL_H
+
+struct __pthread_rwlock_arch_t
+{
+ unsigned int __readers;
+ unsigned int __writers;
+ unsigned int __wrphase_futex;
+ unsigned int __writers_futex;
+ unsigned int __pad3;
+ unsigned int __pad4;
+#ifdef __x86_64__
+ int __cur_writer;
+ int __shared;
+ signed char __rwelision;
+# ifdef __ILP32__
+ unsigned char __pad1[3];
+# define __PTHREAD_RWLOCK_ELISION_EXTRA 0, { 0, 0, 0 }
+# else
+ unsigned char __pad1[7];
+# define __PTHREAD_RWLOCK_ELISION_EXTRA 0, { 0, 0, 0, 0, 0, 0, 0 }
+# endif
+ unsigned long int __pad2;
+ /* FLAGS must stay at this position in the structure to maintain
+ binary compatibility. */
+ unsigned int __flags;
+#else /* __x86_64__ */
+ /* FLAGS must stay at this position in the structure to maintain
+ binary compatibility. */
+ unsigned char __flags;
+ unsigned char __shared;
+ signed char __rwelision;
+ unsigned char __pad2;
+ int __cur_writer;
+#endif
+};
+
+#ifdef __x86_64__
+# define __PTHREAD_RWLOCK_INITIALIZER(__flags) \
+ 0, 0, 0, 0, 0, 0, 0, 0, __PTHREAD_RWLOCK_ELISION_EXTRA, 0, __flags
+#else
+# define __PTHREAD_RWLOCK_INITIALIZER(__flags) \
+ 0, 0, 0, 0, 0, 0, __flags, 0, 0, 0, 0
+#endif
+
+#endif
diff --git a/sysdeps/x86/nptl/pt-longjmp.c b/sysdeps/x86/nptl/pt-longjmp.c
index 6165c7d4a7..2293571b6f 100644
--- a/sysdeps/x86/nptl/pt-longjmp.c
+++ b/sysdeps/x86/nptl/pt-longjmp.c
@@ -1,6 +1,6 @@
/* ABI compatibility for 'longjmp' and 'siglongjmp' symbols in libpthread ABI.
X86 version.
- Copyright (C) 18 Free Software Foundation, Inc.
+ Copyright (C) 1918-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthreadP.h>
#include <jmp_buf-ssp.h>
diff --git a/sysdeps/x86/nptl/tls-setup.h b/sysdeps/x86/nptl/tls-setup.h
index ef5a4df78c..c855a19ab6 100644
--- a/sysdeps/x86/nptl/tls-setup.h
+++ b/sysdeps/x86/nptl/tls-setup.h
@@ -1,5 +1,5 @@
/* Definitions to set up thread-local data. x86 version.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
static inline void __attribute__ ((always_inline))
tls_setup_tcbhead (struct pthread *pd)
diff --git a/sysdeps/x86/string_private.h b/sysdeps/x86/string_private.h
index 4bc45f63d8..f18553f1bb 100644
--- a/sysdeps/x86/string_private.h
+++ b/sysdeps/x86/string_private.h
@@ -1,5 +1,5 @@
/* Define _STRING_ARCH_unaligned. i486/x86-64 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* The ix86 processors can access unaligned multi-byte variables. */
#define _STRING_ARCH_unaligned 1
diff --git a/sysdeps/x86/sysdep.h b/sysdeps/x86/sysdep.h
index 8776ad8374..9140e667b0 100644
--- a/sysdeps/x86/sysdep.h
+++ b/sysdeps/x86/sysdep.h
@@ -1,5 +1,5 @@
/* Assembler macros for x86.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _X86_SYSDEP_H
#define _X86_SYSDEP_H 1
@@ -48,6 +48,15 @@ enum cf_protection_level
# define SHSTK_ENABLED 0
#endif
+/* Offset for fxsave/xsave area used by _dl_runtime_resolve. Also need
+ space to preserve RCX, RDX, RSI, RDI, R8, R9 and RAX. It must be
+ aligned to 16 bytes for fxsave and 64 bytes for xsave. */
+#define STATE_SAVE_OFFSET (8 * 7 + 8)
+
+/* Save SSE, AVX, AVX512, mask and bound registers. */
+#define STATE_SAVE_MASK \
+ ((1 << 1) | (1 << 2) | (1 << 3) | (1 << 5) | (1 << 6) | (1 << 7))
+
#ifdef __ASSEMBLER__
/* Syntactic details of assembler. */
diff --git a/sysdeps/x86/tst-cet-legacy-1.c b/sysdeps/x86/tst-cet-legacy-1.c
index 861c09a26e..0938306e42 100644
--- a/sysdeps/x86/tst-cet-legacy-1.c
+++ b/sysdeps/x86/tst-cet-legacy-1.c
@@ -1,6 +1,6 @@
/* Check compatibility of CET-enabled executable linked with legacy
shared object.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
diff --git a/sysdeps/x86/tst-cet-legacy-1a.c b/sysdeps/x86/tst-cet-legacy-1a.c
new file mode 100644
index 0000000000..8e77290e20
--- /dev/null
+++ b/sysdeps/x86/tst-cet-legacy-1a.c
@@ -0,0 +1,81 @@
+/* Test for re-exec with legacy bitmap.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <getopt.h>
+#include <support/check.h>
+
+/* Nonzero if the program gets called via `exec'. */
+static int restart;
+
+#define CMDLINE_OPTIONS \
+ { "restart", no_argument, &restart, 1 },
+
+extern int do_test (int argc, char *argv[]);
+
+extern int in_dso_1 (void);
+extern int in_dso_2 (void);
+
+static int
+check (void)
+{
+ if (in_dso_1 () != 0x1234678)
+ {
+ puts ("in_dso_1 () != 0x1234678");
+ exit (1);
+ }
+
+ if (in_dso_2 () != 0xbadbeef)
+ {
+ puts ("in_dso_2 () != 0xbadbeef");
+ exit (1);
+ }
+
+ return 0;
+}
+
+int
+do_test (int argc, char *argv[])
+{
+ /* We must have
+ - one or four parameters left if called initially
+ + path for ld.so optional
+ + "--library-path" optional
+ + the library path optional
+ + the application name
+ */
+
+ if (restart)
+ return check ();
+
+ if (argc != 2 && argc != 5)
+ FAIL_EXIT1 ("wrong number of arguments (%d)", argc);
+
+ if (argc == 5)
+ execl (argv[1], argv[1], argv[2], argv[3], argv[4], "--direct",
+ "--restart", NULL);
+ else
+ execl (argv[1], argv[1], "--direct", "--restart", NULL);
+
+ return -1;
+}
+
+#define TEST_FUNCTION_ARGV do_test
+#include <support/test-driver.c>
diff --git a/sysdeps/x86/tst-cet-legacy-2.c b/sysdeps/x86/tst-cet-legacy-2.c
index e039a16797..e70d289e4f 100644
--- a/sysdeps/x86/tst-cet-legacy-2.c
+++ b/sysdeps/x86/tst-cet-legacy-2.c
@@ -1,6 +1,6 @@
/* Check compatibility of CET-enabled executable with dlopened legacy
shared object.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stdio.h>
diff --git a/sysdeps/x86/tst-cet-legacy-3.c b/sysdeps/x86/tst-cet-legacy-3.c
index bab9faa8b0..1850220437 100644
--- a/sysdeps/x86/tst-cet-legacy-3.c
+++ b/sysdeps/x86/tst-cet-legacy-3.c
@@ -1,6 +1,6 @@
/* Check compatibility of CET-enabled executable with dlopened legacy
shared object.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
diff --git a/sysdeps/x86/tst-cet-legacy-4.c b/sysdeps/x86/tst-cet-legacy-4.c
index 3ead63dd24..6550ac863b 100644
--- a/sysdeps/x86/tst-cet-legacy-4.c
+++ b/sysdeps/x86/tst-cet-legacy-4.c
@@ -1,6 +1,6 @@
/* Check compatibility of CET-enabled executable with dlopened legacy
shared object.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <stdio.h>
diff --git a/sysdeps/x86/tst-cet-legacy-5.c b/sysdeps/x86/tst-cet-legacy-5.c
new file mode 100644
index 0000000000..47c327b7ab
--- /dev/null
+++ b/sysdeps/x86/tst-cet-legacy-5.c
@@ -0,0 +1,76 @@
+/* Check compatibility of CET-enabled executable with dlopened legacy
+ shared object.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <dlfcn.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdbool.h>
+#include <string.h>
+
+static void
+do_test_1 (const char *modname, bool fail)
+{
+ int (*fp) (void);
+ void *h;
+
+ h = dlopen (modname, RTLD_LAZY);
+ if (h == NULL)
+ {
+ if (fail)
+ {
+ const char *err = dlerror ();
+ if (strstr (err, "shadow stack isn't enabled") == NULL)
+ {
+ printf ("incorrect dlopen '%s' error: %s\n", modname,
+ dlerror ());
+ exit (1);
+ }
+
+ return;
+ }
+
+ printf ("cannot open '%s': %s\n", modname, dlerror ());
+ exit (1);
+ }
+
+ fp = dlsym (h, "test");
+ if (fp == NULL)
+ {
+ printf ("cannot get symbol 'test': %s\n", dlerror ());
+ exit (1);
+ }
+
+ if (fp () != 0)
+ {
+ puts ("test () != 0");
+ exit (1);
+ }
+
+ dlclose (h);
+}
+
+static int
+do_test (void)
+{
+ do_test_1 ("tst-cet-legacy-mod-5a.so", true);
+ do_test_1 ("tst-cet-legacy-mod-5b.so", false);
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/x86/tst-cet-legacy-5a.c b/sysdeps/x86/tst-cet-legacy-5a.c
new file mode 100644
index 0000000000..fc5a609dff
--- /dev/null
+++ b/sysdeps/x86/tst-cet-legacy-5a.c
@@ -0,0 +1 @@
+#include "tst-cet-legacy-5.c"
diff --git a/sysdeps/x86/tst-cet-legacy-5b.c b/sysdeps/x86/tst-cet-legacy-5b.c
new file mode 100644
index 0000000000..fc5a609dff
--- /dev/null
+++ b/sysdeps/x86/tst-cet-legacy-5b.c
@@ -0,0 +1 @@
+#include "tst-cet-legacy-5.c"
diff --git a/sysdeps/x86/tst-cet-legacy-6.c b/sysdeps/x86/tst-cet-legacy-6.c
new file mode 100644
index 0000000000..719e5d706b
--- /dev/null
+++ b/sysdeps/x86/tst-cet-legacy-6.c
@@ -0,0 +1,76 @@
+/* Check compatibility of CET-enabled executable with dlopened legacy
+ shared object.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <dlfcn.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdbool.h>
+#include <string.h>
+
+static void
+do_test_1 (const char *modname, bool fail)
+{
+ int (*fp) (void);
+ void *h;
+
+ h = dlopen (modname, RTLD_LAZY);
+ if (h == NULL)
+ {
+ if (fail)
+ {
+ const char *err = dlerror ();
+ if (strstr (err, "shadow stack isn't enabled") == NULL)
+ {
+ printf ("incorrect dlopen '%s' error: %s\n", modname,
+ dlerror ());
+ exit (1);
+ }
+
+ return;
+ }
+
+ printf ("cannot open '%s': %s\n", modname, dlerror ());
+ exit (1);
+ }
+
+ fp = dlsym (h, "test");
+ if (fp == NULL)
+ {
+ printf ("cannot get symbol 'test': %s\n", dlerror ());
+ exit (1);
+ }
+
+ if (fp () != 0)
+ {
+ puts ("test () != 0");
+ exit (1);
+ }
+
+ dlclose (h);
+}
+
+static int
+do_test (void)
+{
+ do_test_1 ("tst-cet-legacy-mod-6a.so", true);
+ do_test_1 ("tst-cet-legacy-mod-6b.so", false);
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/x86/tst-cet-legacy-6a.c b/sysdeps/x86/tst-cet-legacy-6a.c
new file mode 100644
index 0000000000..2d1546d36b
--- /dev/null
+++ b/sysdeps/x86/tst-cet-legacy-6a.c
@@ -0,0 +1 @@
+#include "tst-cet-legacy-6.c"
diff --git a/sysdeps/x86/tst-cet-legacy-6b.c b/sysdeps/x86/tst-cet-legacy-6b.c
new file mode 100644
index 0000000000..2d1546d36b
--- /dev/null
+++ b/sysdeps/x86/tst-cet-legacy-6b.c
@@ -0,0 +1 @@
+#include "tst-cet-legacy-6.c"
diff --git a/sysdeps/x86/tst-cet-legacy-mod-1.c b/sysdeps/x86/tst-cet-legacy-mod-1.c
index 09762bce13..cdc8767390 100644
--- a/sysdeps/x86/tst-cet-legacy-mod-1.c
+++ b/sysdeps/x86/tst-cet-legacy-mod-1.c
@@ -1,6 +1,6 @@
/* Check compatibility of CET-enabled executable with legacy shared
object.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
int
in_dso_1 (void)
diff --git a/sysdeps/x86/tst-cet-legacy-mod-2.c b/sysdeps/x86/tst-cet-legacy-mod-2.c
index 1c8de443f6..e7469bf391 100644
--- a/sysdeps/x86/tst-cet-legacy-mod-2.c
+++ b/sysdeps/x86/tst-cet-legacy-mod-2.c
@@ -1,6 +1,6 @@
/* Check compatibility of CET-enabled executable with legacy shared
object.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
int
in_dso_2 (void)
diff --git a/sysdeps/x86/tst-cet-legacy-mod-5.c b/sysdeps/x86/tst-cet-legacy-mod-5.c
new file mode 100644
index 0000000000..fb64b45d62
--- /dev/null
+++ b/sysdeps/x86/tst-cet-legacy-mod-5.c
@@ -0,0 +1,31 @@
+/* Check compatibility of CET-enabled executable with dlopened legacy
+ shared object.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <error.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+extern void foo (void);
+
+int
+test (void)
+{
+ foo ();
+ return 0;
+}
diff --git a/sysdeps/x86/tst-cet-legacy-mod-5a.c b/sysdeps/x86/tst-cet-legacy-mod-5a.c
new file mode 100644
index 0000000000..daa43e4e8d
--- /dev/null
+++ b/sysdeps/x86/tst-cet-legacy-mod-5a.c
@@ -0,0 +1 @@
+#include "tst-cet-legacy-mod-5.c"
diff --git a/sysdeps/x86/tst-cet-legacy-mod-5b.c b/sysdeps/x86/tst-cet-legacy-mod-5b.c
new file mode 100644
index 0000000000..daa43e4e8d
--- /dev/null
+++ b/sysdeps/x86/tst-cet-legacy-mod-5b.c
@@ -0,0 +1 @@
+#include "tst-cet-legacy-mod-5.c"
diff --git a/sysdeps/x86/tst-cet-legacy-mod-5c.c b/sysdeps/x86/tst-cet-legacy-mod-5c.c
new file mode 100644
index 0000000000..604717c85c
--- /dev/null
+++ b/sysdeps/x86/tst-cet-legacy-mod-5c.c
@@ -0,0 +1,36 @@
+/* Check compatibility of CET-enabled executable with dlopened legacy
+ shared object.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdlib.h>
+
+static int called = 0;
+
+static void
+__attribute__ ((constructor))
+init (void)
+{
+ called = 1;
+}
+
+void
+foo (void)
+{
+ if (!called)
+ abort ();
+}
diff --git a/sysdeps/x86/tst-cet-legacy-mod-6.c b/sysdeps/x86/tst-cet-legacy-mod-6.c
new file mode 100644
index 0000000000..fb64b45d62
--- /dev/null
+++ b/sysdeps/x86/tst-cet-legacy-mod-6.c
@@ -0,0 +1,31 @@
+/* Check compatibility of CET-enabled executable with dlopened legacy
+ shared object.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <error.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+extern void foo (void);
+
+int
+test (void)
+{
+ foo ();
+ return 0;
+}
diff --git a/sysdeps/x86/tst-cet-legacy-mod-6a.c b/sysdeps/x86/tst-cet-legacy-mod-6a.c
new file mode 100644
index 0000000000..c89b8fe8ff
--- /dev/null
+++ b/sysdeps/x86/tst-cet-legacy-mod-6a.c
@@ -0,0 +1 @@
+#include "tst-cet-legacy-mod-6.c"
diff --git a/sysdeps/x86/tst-cet-legacy-mod-6b.c b/sysdeps/x86/tst-cet-legacy-mod-6b.c
new file mode 100644
index 0000000000..c89b8fe8ff
--- /dev/null
+++ b/sysdeps/x86/tst-cet-legacy-mod-6b.c
@@ -0,0 +1 @@
+#include "tst-cet-legacy-mod-6.c"
diff --git a/sysdeps/x86/tst-cet-legacy-mod-6c.c b/sysdeps/x86/tst-cet-legacy-mod-6c.c
new file mode 100644
index 0000000000..604717c85c
--- /dev/null
+++ b/sysdeps/x86/tst-cet-legacy-mod-6c.c
@@ -0,0 +1,36 @@
+/* Check compatibility of CET-enabled executable with dlopened legacy
+ shared object.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdlib.h>
+
+static int called = 0;
+
+static void
+__attribute__ ((constructor))
+init (void)
+{
+ called = 1;
+}
+
+void
+foo (void)
+{
+ if (!called)
+ abort ();
+}
diff --git a/sysdeps/x86/tst-cet-legacy-mod-6d.c b/sysdeps/x86/tst-cet-legacy-mod-6d.c
new file mode 100644
index 0000000000..eb233a1d10
--- /dev/null
+++ b/sysdeps/x86/tst-cet-legacy-mod-6d.c
@@ -0,0 +1 @@
+#include "tst-cet-legacy-mod-6c.c"
diff --git a/sysdeps/x86/tst-get-cpu-features.c b/sysdeps/x86/tst-get-cpu-features.c
index b2fac197da..3b24e20d9c 100644
--- a/sysdeps/x86/tst-get-cpu-features.c
+++ b/sysdeps/x86/tst-get-cpu-features.c
@@ -1,5 +1,5 @@
/* Test case for x86 __get_cpu_features interface
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,18 +14,274 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
+#include <stdio.h>
#include <cpu-features.h>
+#include <support/check.h>
+
+#define CHECK_CPU_FEATURE(name) \
+ { \
+ if (HAS_CPU_FEATURE (name)) \
+ printf (" " #name "\n"); \
+ }
+
+#define CHECK_CPU_FEATURE_USABLE(name) \
+ { \
+ if (CPU_FEATURE_USABLE(name)) \
+ printf (" " #name "\n"); \
+ }
+
+static const char * const cpu_kinds[] =
+{
+ "Unknown",
+ "Intel",
+ "AMD",
+ "Other",
+};
static int
do_test (void)
{
- if (__get_cpu_features ()->kind == arch_kind_unknown)
- abort ();
+ const struct cpu_features *cpu_features = __get_cpu_features ();
+
+ switch (cpu_features->basic.kind)
+ {
+ case arch_kind_intel:
+ case arch_kind_amd:
+ case arch_kind_other:
+ printf ("Vendor: %s\n", cpu_kinds[cpu_features->basic.kind]);
+ printf ("Family: 0x%x\n", cpu_features->basic.family);
+ printf ("Model: 0x%x\n", cpu_features->basic.model);
+ printf ("Stepping: 0x%x\n", cpu_features->basic.stepping);
+ break;
+
+ default:
+ abort ();
+ }
+
+#ifdef __SSE2__
+ TEST_VERIFY_EXIT (HAS_CPU_FEATURE (SSE2));
+#endif
+
+ printf ("CPU features:\n");
+ CHECK_CPU_FEATURE (SSE3);
+ CHECK_CPU_FEATURE (PCLMULQDQ);
+ CHECK_CPU_FEATURE (DTES64);
+ CHECK_CPU_FEATURE (MONITOR);
+ CHECK_CPU_FEATURE (DS_CPL);
+ CHECK_CPU_FEATURE (VMX);
+ CHECK_CPU_FEATURE (SMX);
+ CHECK_CPU_FEATURE (EST);
+ CHECK_CPU_FEATURE (TM2);
+ CHECK_CPU_FEATURE (SSSE3);
+ CHECK_CPU_FEATURE (CNXT_ID);
+ CHECK_CPU_FEATURE (SDBG);
+ CHECK_CPU_FEATURE (FMA);
+ CHECK_CPU_FEATURE (CMPXCHG16B);
+ CHECK_CPU_FEATURE (XTPRUPDCTRL);
+ CHECK_CPU_FEATURE (PDCM);
+ CHECK_CPU_FEATURE (PCID);
+ CHECK_CPU_FEATURE (DCA);
+ CHECK_CPU_FEATURE (SSE4_1);
+ CHECK_CPU_FEATURE (SSE4_2);
+ CHECK_CPU_FEATURE (X2APIC);
+ CHECK_CPU_FEATURE (MOVBE);
+ CHECK_CPU_FEATURE (POPCNT);
+ CHECK_CPU_FEATURE (TSC_DEADLINE);
+ CHECK_CPU_FEATURE (AES);
+ CHECK_CPU_FEATURE (XSAVE);
+ CHECK_CPU_FEATURE (OSXSAVE);
+ CHECK_CPU_FEATURE (AVX);
+ CHECK_CPU_FEATURE (F16C);
+ CHECK_CPU_FEATURE (RDRAND);
+ CHECK_CPU_FEATURE (FPU);
+ CHECK_CPU_FEATURE (VME);
+ CHECK_CPU_FEATURE (DE);
+ CHECK_CPU_FEATURE (PSE);
+ CHECK_CPU_FEATURE (TSC);
+ CHECK_CPU_FEATURE (MSR);
+ CHECK_CPU_FEATURE (PAE);
+ CHECK_CPU_FEATURE (MCE);
+ CHECK_CPU_FEATURE (CX8);
+ CHECK_CPU_FEATURE (APIC);
+ CHECK_CPU_FEATURE (SEP);
+ CHECK_CPU_FEATURE (MTRR);
+ CHECK_CPU_FEATURE (PGE);
+ CHECK_CPU_FEATURE (MCA);
+ CHECK_CPU_FEATURE (CMOV);
+ CHECK_CPU_FEATURE (PAT);
+ CHECK_CPU_FEATURE (PSE_36);
+ CHECK_CPU_FEATURE (PSN);
+ CHECK_CPU_FEATURE (CLFSH);
+ CHECK_CPU_FEATURE (DS);
+ CHECK_CPU_FEATURE (ACPI);
+ CHECK_CPU_FEATURE (MMX);
+ CHECK_CPU_FEATURE (FXSR);
+ CHECK_CPU_FEATURE (SSE);
+ CHECK_CPU_FEATURE (SSE2);
+ CHECK_CPU_FEATURE (SS);
+ CHECK_CPU_FEATURE (HTT);
+ CHECK_CPU_FEATURE (TM);
+ CHECK_CPU_FEATURE (PBE);
+ CHECK_CPU_FEATURE (FSGSBASE);
+ CHECK_CPU_FEATURE (TSC_ADJUST);
+ CHECK_CPU_FEATURE (SGX);
+ CHECK_CPU_FEATURE (BMI1);
+ CHECK_CPU_FEATURE (HLE);
+ CHECK_CPU_FEATURE (AVX2);
+ CHECK_CPU_FEATURE (SMEP);
+ CHECK_CPU_FEATURE (BMI2);
+ CHECK_CPU_FEATURE (ERMS);
+ CHECK_CPU_FEATURE (INVPCID);
+ CHECK_CPU_FEATURE (RTM);
+ CHECK_CPU_FEATURE (PQM);
+ CHECK_CPU_FEATURE (MPX);
+ CHECK_CPU_FEATURE (PQE);
+ CHECK_CPU_FEATURE (AVX512F);
+ CHECK_CPU_FEATURE (AVX512DQ);
+ CHECK_CPU_FEATURE (RDSEED);
+ CHECK_CPU_FEATURE (ADX);
+ CHECK_CPU_FEATURE (SMAP);
+ CHECK_CPU_FEATURE (AVX512_IFMA);
+ CHECK_CPU_FEATURE (CLFLUSHOPT);
+ CHECK_CPU_FEATURE (CLWB);
+ CHECK_CPU_FEATURE (TRACE);
+ CHECK_CPU_FEATURE (AVX512PF);
+ CHECK_CPU_FEATURE (AVX512ER);
+ CHECK_CPU_FEATURE (AVX512CD);
+ CHECK_CPU_FEATURE (SHA);
+ CHECK_CPU_FEATURE (AVX512BW);
+ CHECK_CPU_FEATURE (AVX512VL);
+ CHECK_CPU_FEATURE (PREFETCHWT1);
+ CHECK_CPU_FEATURE (AVX512_VBMI);
+ CHECK_CPU_FEATURE (UMIP);
+ CHECK_CPU_FEATURE (PKU);
+ CHECK_CPU_FEATURE (OSPKE);
+ CHECK_CPU_FEATURE (WAITPKG);
+ CHECK_CPU_FEATURE (AVX512_VBMI2);
+ CHECK_CPU_FEATURE (SHSTK);
+ CHECK_CPU_FEATURE (GFNI);
+ CHECK_CPU_FEATURE (VAES);
+ CHECK_CPU_FEATURE (VPCLMULQDQ);
+ CHECK_CPU_FEATURE (AVX512_VNNI);
+ CHECK_CPU_FEATURE (AVX512_BITALG);
+ CHECK_CPU_FEATURE (AVX512_VPOPCNTDQ);
+ CHECK_CPU_FEATURE (RDPID);
+ CHECK_CPU_FEATURE (CLDEMOTE);
+ CHECK_CPU_FEATURE (MOVDIRI);
+ CHECK_CPU_FEATURE (MOVDIR64B);
+ CHECK_CPU_FEATURE (SGX_LC);
+ CHECK_CPU_FEATURE (AVX512_4VNNIW);
+ CHECK_CPU_FEATURE (AVX512_4FMAPS);
+ CHECK_CPU_FEATURE (FSRM);
+ CHECK_CPU_FEATURE (PCONFIG);
+ CHECK_CPU_FEATURE (IBT);
+ CHECK_CPU_FEATURE (IBRS_IBPB);
+ CHECK_CPU_FEATURE (STIBP);
+ CHECK_CPU_FEATURE (CAPABILITIES);
+ CHECK_CPU_FEATURE (SSBD);
+ CHECK_CPU_FEATURE (LAHF64_SAHF64);
+ CHECK_CPU_FEATURE (SVM);
+ CHECK_CPU_FEATURE (LZCNT);
+ CHECK_CPU_FEATURE (SSE4A);
+ CHECK_CPU_FEATURE (PREFETCHW);
+ CHECK_CPU_FEATURE (XOP);
+ CHECK_CPU_FEATURE (LWP);
+ CHECK_CPU_FEATURE (FMA4);
+ CHECK_CPU_FEATURE (TBM);
+ CHECK_CPU_FEATURE (SYSCALL_SYSRET);
+ CHECK_CPU_FEATURE (NX);
+ CHECK_CPU_FEATURE (PAGE1GB);
+ CHECK_CPU_FEATURE (RDTSCP);
+ CHECK_CPU_FEATURE (LM);
+ CHECK_CPU_FEATURE (XSAVEOPT);
+ CHECK_CPU_FEATURE (XSAVEC);
+ CHECK_CPU_FEATURE (XGETBV_ECX_1);
+ CHECK_CPU_FEATURE (XSAVES);
+ CHECK_CPU_FEATURE (INVARIANT_TSC);
+ CHECK_CPU_FEATURE (WBNOINVD);
+
+ printf ("Usable CPU features:\n");
+ CHECK_CPU_FEATURE_USABLE (SSE3);
+ CHECK_CPU_FEATURE_USABLE (PCLMULQDQ);
+ CHECK_CPU_FEATURE_USABLE (SSSE3);
+ CHECK_CPU_FEATURE_USABLE (FMA);
+ CHECK_CPU_FEATURE_USABLE (CMPXCHG16B);
+ CHECK_CPU_FEATURE_USABLE (SSE4_1);
+ CHECK_CPU_FEATURE_USABLE (SSE4_2);
+ CHECK_CPU_FEATURE_USABLE (MOVBE);
+ CHECK_CPU_FEATURE_USABLE (POPCNT);
+ CHECK_CPU_FEATURE_USABLE (AES);
+ CHECK_CPU_FEATURE_USABLE (XSAVE);
+ CHECK_CPU_FEATURE_USABLE (OSXSAVE);
+ CHECK_CPU_FEATURE_USABLE (AVX);
+ CHECK_CPU_FEATURE_USABLE (F16C);
+ CHECK_CPU_FEATURE_USABLE (RDRAND);
+ CHECK_CPU_FEATURE_USABLE (FPU);
+ CHECK_CPU_FEATURE_USABLE (TSC);
+ CHECK_CPU_FEATURE_USABLE (MSR);
+ CHECK_CPU_FEATURE_USABLE (CX8);
+ CHECK_CPU_FEATURE_USABLE (SEP);
+ CHECK_CPU_FEATURE_USABLE (CMOV);
+ CHECK_CPU_FEATURE_USABLE (CLFSH);
+ CHECK_CPU_FEATURE_USABLE (MMX);
+ CHECK_CPU_FEATURE_USABLE (FXSR);
+ CHECK_CPU_FEATURE_USABLE (SSE);
+ CHECK_CPU_FEATURE_USABLE (SSE2);
+ CHECK_CPU_FEATURE_USABLE (FSGSBASE);
+ CHECK_CPU_FEATURE_USABLE (BMI1);
+ CHECK_CPU_FEATURE_USABLE (HLE);
+ CHECK_CPU_FEATURE_USABLE (AVX2);
+ CHECK_CPU_FEATURE_USABLE (BMI2);
+ CHECK_CPU_FEATURE_USABLE (ERMS);
+ CHECK_CPU_FEATURE_USABLE (AVX512F);
+ CHECK_CPU_FEATURE_USABLE (AVX512DQ);
+ CHECK_CPU_FEATURE_USABLE (RDSEED);
+ CHECK_CPU_FEATURE_USABLE (ADX);
+ CHECK_CPU_FEATURE_USABLE (AVX512_IFMA);
+ CHECK_CPU_FEATURE_USABLE (CLFLUSHOPT);
+ CHECK_CPU_FEATURE_USABLE (CLWB);
+ CHECK_CPU_FEATURE_USABLE (AVX512PF);
+ CHECK_CPU_FEATURE_USABLE (AVX512ER);
+ CHECK_CPU_FEATURE_USABLE (AVX512CD);
+ CHECK_CPU_FEATURE_USABLE (SHA);
+ CHECK_CPU_FEATURE_USABLE (AVX512BW);
+ CHECK_CPU_FEATURE_USABLE (AVX512VL);
+ CHECK_CPU_FEATURE_USABLE (PREFETCHWT1);
+ CHECK_CPU_FEATURE_USABLE (AVX512_VBMI);
+ CHECK_CPU_FEATURE_USABLE (AVX512_VBMI2);
+ CHECK_CPU_FEATURE_USABLE (GFNI);
+ CHECK_CPU_FEATURE_USABLE (VAES);
+ CHECK_CPU_FEATURE_USABLE (VPCLMULQDQ);
+ CHECK_CPU_FEATURE_USABLE (AVX512_VNNI);
+ CHECK_CPU_FEATURE_USABLE (AVX512_BITALG);
+ CHECK_CPU_FEATURE_USABLE (AVX512_VPOPCNTDQ);
+ CHECK_CPU_FEATURE_USABLE (RDPID);
+ CHECK_CPU_FEATURE_USABLE (CLDEMOTE);
+ CHECK_CPU_FEATURE_USABLE (MOVDIRI);
+ CHECK_CPU_FEATURE_USABLE (MOVDIR64B);
+ CHECK_CPU_FEATURE_USABLE (AVX512_4VNNIW);
+ CHECK_CPU_FEATURE_USABLE (AVX512_4FMAPS);
+ CHECK_CPU_FEATURE_USABLE (FSRM);
+ CHECK_CPU_FEATURE_USABLE (LAHF64_SAHF64);
+ CHECK_CPU_FEATURE_USABLE (LZCNT);
+ CHECK_CPU_FEATURE_USABLE (SSE4A);
+ CHECK_CPU_FEATURE_USABLE (PREFETCHW);
+ CHECK_CPU_FEATURE_USABLE (XOP);
+ CHECK_CPU_FEATURE_USABLE (FMA4);
+ CHECK_CPU_FEATURE_USABLE (TBM);
+ CHECK_CPU_FEATURE_USABLE (SYSCALL_SYSRET);
+ CHECK_CPU_FEATURE_USABLE (RDTSCP);
+ CHECK_CPU_FEATURE_USABLE (XSAVEOPT);
+ CHECK_CPU_FEATURE_USABLE (XSAVEC);
+ CHECK_CPU_FEATURE_USABLE (XGETBV_ECX_1);
+ CHECK_CPU_FEATURE_USABLE (XSAVES);
+ CHECK_CPU_FEATURE_USABLE (INVARIANT_TSC);
+ CHECK_CPU_FEATURE_USABLE (WBNOINVD);
+
return 0;
}
-#define TEST_FUNCTION do_test ()
-#include "../../test-skeleton.c"
+#include <support/test-driver.c>
diff --git a/sysdeps/x86_64/Makefile b/sysdeps/x86_64/Makefile
index 9f1562f1b2..d51cf03ac9 100644
--- a/sysdeps/x86_64/Makefile
+++ b/sysdeps/x86_64/Makefile
@@ -57,7 +57,7 @@ modules-names += x86_64/tst-x86_64mod-1
LDFLAGS-tst-x86_64mod-1.so = -Wl,-soname,tst-x86_64mod-1.so
ifneq (no,$(have-tunables))
# Test the state size for XSAVE when XSAVEC is disabled.
-tst-x86_64-1-ENV = GLIBC_TUNABLES=glibc.tune.hwcaps=-XSAVEC_Usable
+tst-x86_64-1-ENV = GLIBC_TUNABLES=glibc.cpu.hwcaps=-XSAVEC_Usable
endif
$(objpfx)tst-x86_64-1: $(objpfx)x86_64/tst-x86_64mod-1.so
@@ -74,7 +74,7 @@ $(objpfx)tst-platform-1.out: $(objpfx)x86_64/tst-platformmod-2.so
# Turn off AVX512F_Usable and AVX2_Usable so that GLRO(dl_platform) is
# always set to x86_64.
tst-platform-1-ENV = LD_PRELOAD=$(objpfx)\$$PLATFORM/tst-platformmod-2.so \
- GLIBC_TUNABLES=glibc.tune.hwcaps=-AVX512F_Usable,-AVX2_Usable
+ GLIBC_TUNABLES=glibc.cpu.hwcaps=-AVX512F_Usable,-AVX2_Usable
endif
tests += tst-audit3 tst-audit4 tst-audit5 tst-audit6 tst-audit7 \
diff --git a/sysdeps/x86_64/Versions b/sysdeps/x86_64/Versions
index a437f85e6e..e94758b236 100644
--- a/sysdeps/x86_64/Versions
+++ b/sysdeps/x86_64/Versions
@@ -2,6 +2,9 @@ libc {
GLIBC_2.14 {
memcpy;
}
+ GLIBC_2.13 {
+ __fentry__;
+ }
}
libm {
GLIBC_2.1 {
diff --git a/sysdeps/x86_64/__longjmp.S b/sysdeps/x86_64/__longjmp.S
index d7d123e4bc..9e0cd15b59 100644
--- a/sysdeps/x86_64/__longjmp.S
+++ b/sysdeps/x86_64/__longjmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <jmpbuf-offsets.h>
diff --git a/sysdeps/x86_64/_mcount.S b/sysdeps/x86_64/_mcount.S
index a2f4068b61..d713e2f575 100644
--- a/sysdeps/x86_64/_mcount.S
+++ b/sysdeps/x86_64/_mcount.S
@@ -1,5 +1,5 @@
/* Machine-specific calling sequence for `mcount' profiling function. x86-64 version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
Contributed by Andreas Jaeger <aj@suse.de>.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Assembly stub to invoke _mcount(). Compiler generated code calls
this stub after executing a function's prologue and without saving any
diff --git a/sysdeps/x86_64/add_n.S b/sysdeps/x86_64/add_n.S
index ba9699a2f0..7f33b964f8 100644
--- a/sysdeps/x86_64/add_n.S
+++ b/sysdeps/x86_64/add_n.S
@@ -1,6 +1,6 @@
/* x86-64 __mpn_add_n -- Add two limb vectors of the same length > 0 and store
sum in a third limb vector.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
The GNU MP Library is free software; you can redistribute it and/or modify
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not,
- see <http://www.gnu.org/licenses/>. */
+ see <https://www.gnu.org/licenses/>. */
#include "sysdep.h"
#include "asm-syntax.h"
diff --git a/sysdeps/x86_64/addmul_1.S b/sysdeps/x86_64/addmul_1.S
index eefe8004b0..4fed481dbb 100644
--- a/sysdeps/x86_64/addmul_1.S
+++ b/sysdeps/x86_64/addmul_1.S
@@ -1,6 +1,6 @@
/* x86-64 __mpn_addmul_1 -- Multiply a limb vector with a limb and add
the result to a second limb vector.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
The GNU MP Library is free software; you can redistribute it and/or modify
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not,
- see <http://www.gnu.org/licenses/>. */
+ see <https://www.gnu.org/licenses/>. */
#include "sysdep.h"
#include "asm-syntax.h"
diff --git a/sysdeps/x86_64/atomic-machine.h b/sysdeps/x86_64/atomic-machine.h
deleted file mode 100644
index 9d31c64962..0000000000
--- a/sysdeps/x86_64/atomic-machine.h
+++ /dev/null
@@ -1,482 +0,0 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _X86_64_ATOMIC_MACHINE_H
-#define _X86_64_ATOMIC_MACHINE_H 1
-
-#include <stdint.h>
-#include <tls.h> /* For tcbhead_t. */
-#include <libc-pointer-arith.h> /* For cast_to_integer. */
-
-typedef int8_t atomic8_t;
-typedef uint8_t uatomic8_t;
-typedef int_fast8_t atomic_fast8_t;
-typedef uint_fast8_t uatomic_fast8_t;
-
-typedef int16_t atomic16_t;
-typedef uint16_t uatomic16_t;
-typedef int_fast16_t atomic_fast16_t;
-typedef uint_fast16_t uatomic_fast16_t;
-
-typedef int32_t atomic32_t;
-typedef uint32_t uatomic32_t;
-typedef int_fast32_t atomic_fast32_t;
-typedef uint_fast32_t uatomic_fast32_t;
-
-typedef int64_t atomic64_t;
-typedef uint64_t uatomic64_t;
-typedef int_fast64_t atomic_fast64_t;
-typedef uint_fast64_t uatomic_fast64_t;
-
-typedef intptr_t atomicptr_t;
-typedef uintptr_t uatomicptr_t;
-typedef intmax_t atomic_max_t;
-typedef uintmax_t uatomic_max_t;
-
-
-#ifndef LOCK_PREFIX
-# ifdef UP
-# define LOCK_PREFIX /* nothing */
-# else
-# define LOCK_PREFIX "lock;"
-# endif
-#endif
-
-#define __HAVE_64B_ATOMICS 1
-#define USE_ATOMIC_COMPILER_BUILTINS 1
-#define ATOMIC_EXCHANGE_USES_CAS 0
-
-#define atomic_compare_and_exchange_val_acq(mem, newval, oldval) \
- __sync_val_compare_and_swap (mem, oldval, newval)
-#define atomic_compare_and_exchange_bool_acq(mem, newval, oldval) \
- (! __sync_bool_compare_and_swap (mem, oldval, newval))
-
-
-#define __arch_c_compare_and_exchange_val_8_acq(mem, newval, oldval) \
- ({ __typeof (*mem) ret; \
- __asm __volatile ("cmpl $0, %%fs:%P5\n\t" \
- "je 0f\n\t" \
- "lock\n" \
- "0:\tcmpxchgb %b2, %1" \
- : "=a" (ret), "=m" (*mem) \
- : "q" (newval), "m" (*mem), "0" (oldval), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- ret; })
-
-#define __arch_c_compare_and_exchange_val_16_acq(mem, newval, oldval) \
- ({ __typeof (*mem) ret; \
- __asm __volatile ("cmpl $0, %%fs:%P5\n\t" \
- "je 0f\n\t" \
- "lock\n" \
- "0:\tcmpxchgw %w2, %1" \
- : "=a" (ret), "=m" (*mem) \
- : "q" (newval), "m" (*mem), "0" (oldval), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- ret; })
-
-#define __arch_c_compare_and_exchange_val_32_acq(mem, newval, oldval) \
- ({ __typeof (*mem) ret; \
- __asm __volatile ("cmpl $0, %%fs:%P5\n\t" \
- "je 0f\n\t" \
- "lock\n" \
- "0:\tcmpxchgl %2, %1" \
- : "=a" (ret), "=m" (*mem) \
- : "q" (newval), "m" (*mem), "0" (oldval), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- ret; })
-
-#define __arch_c_compare_and_exchange_val_64_acq(mem, newval, oldval) \
- ({ __typeof (*mem) ret; \
- __asm __volatile ("cmpl $0, %%fs:%P5\n\t" \
- "je 0f\n\t" \
- "lock\n" \
- "0:\tcmpxchgq %q2, %1" \
- : "=a" (ret), "=m" (*mem) \
- : "q" ((atomic64_t) cast_to_integer (newval)), \
- "m" (*mem), \
- "0" ((atomic64_t) cast_to_integer (oldval)), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- ret; })
-
-
-/* Note that we need no lock prefix. */
-#define atomic_exchange_acq(mem, newvalue) \
- ({ __typeof (*mem) result; \
- if (sizeof (*mem) == 1) \
- __asm __volatile ("xchgb %b0, %1" \
- : "=q" (result), "=m" (*mem) \
- : "0" (newvalue), "m" (*mem)); \
- else if (sizeof (*mem) == 2) \
- __asm __volatile ("xchgw %w0, %1" \
- : "=r" (result), "=m" (*mem) \
- : "0" (newvalue), "m" (*mem)); \
- else if (sizeof (*mem) == 4) \
- __asm __volatile ("xchgl %0, %1" \
- : "=r" (result), "=m" (*mem) \
- : "0" (newvalue), "m" (*mem)); \
- else \
- __asm __volatile ("xchgq %q0, %1" \
- : "=r" (result), "=m" (*mem) \
- : "0" ((atomic64_t) cast_to_integer (newvalue)), \
- "m" (*mem)); \
- result; })
-
-
-#define __arch_exchange_and_add_body(lock, mem, value) \
- ({ __typeof (*mem) result; \
- if (sizeof (*mem) == 1) \
- __asm __volatile (lock "xaddb %b0, %1" \
- : "=q" (result), "=m" (*mem) \
- : "0" (value), "m" (*mem), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- else if (sizeof (*mem) == 2) \
- __asm __volatile (lock "xaddw %w0, %1" \
- : "=r" (result), "=m" (*mem) \
- : "0" (value), "m" (*mem), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- else if (sizeof (*mem) == 4) \
- __asm __volatile (lock "xaddl %0, %1" \
- : "=r" (result), "=m" (*mem) \
- : "0" (value), "m" (*mem), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- else \
- __asm __volatile (lock "xaddq %q0, %1" \
- : "=r" (result), "=m" (*mem) \
- : "0" ((atomic64_t) cast_to_integer (value)), \
- "m" (*mem), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- result; })
-
-#define atomic_exchange_and_add(mem, value) \
- __sync_fetch_and_add (mem, value)
-
-#define __arch_exchange_and_add_cprefix \
- "cmpl $0, %%fs:%P4\n\tje 0f\n\tlock\n0:\t"
-
-#define catomic_exchange_and_add(mem, value) \
- __arch_exchange_and_add_body (__arch_exchange_and_add_cprefix, mem, value)
-
-
-#define __arch_add_body(lock, pfx, mem, value) \
- do { \
- if (__builtin_constant_p (value) && (value) == 1) \
- pfx##_increment (mem); \
- else if (__builtin_constant_p (value) && (value) == -1) \
- pfx##_decrement (mem); \
- else if (sizeof (*mem) == 1) \
- __asm __volatile (lock "addb %b1, %0" \
- : "=m" (*mem) \
- : "iq" (value), "m" (*mem), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- else if (sizeof (*mem) == 2) \
- __asm __volatile (lock "addw %w1, %0" \
- : "=m" (*mem) \
- : "ir" (value), "m" (*mem), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- else if (sizeof (*mem) == 4) \
- __asm __volatile (lock "addl %1, %0" \
- : "=m" (*mem) \
- : "ir" (value), "m" (*mem), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- else \
- __asm __volatile (lock "addq %q1, %0" \
- : "=m" (*mem) \
- : "ir" ((atomic64_t) cast_to_integer (value)), \
- "m" (*mem), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- } while (0)
-
-#define atomic_add(mem, value) \
- __arch_add_body (LOCK_PREFIX, atomic, mem, value)
-
-#define __arch_add_cprefix \
- "cmpl $0, %%fs:%P3\n\tje 0f\n\tlock\n0:\t"
-
-#define catomic_add(mem, value) \
- __arch_add_body (__arch_add_cprefix, catomic, mem, value)
-
-
-#define atomic_add_negative(mem, value) \
- ({ unsigned char __result; \
- if (sizeof (*mem) == 1) \
- __asm __volatile (LOCK_PREFIX "addb %b2, %0; sets %1" \
- : "=m" (*mem), "=qm" (__result) \
- : "iq" (value), "m" (*mem)); \
- else if (sizeof (*mem) == 2) \
- __asm __volatile (LOCK_PREFIX "addw %w2, %0; sets %1" \
- : "=m" (*mem), "=qm" (__result) \
- : "ir" (value), "m" (*mem)); \
- else if (sizeof (*mem) == 4) \
- __asm __volatile (LOCK_PREFIX "addl %2, %0; sets %1" \
- : "=m" (*mem), "=qm" (__result) \
- : "ir" (value), "m" (*mem)); \
- else \
- __asm __volatile (LOCK_PREFIX "addq %q2, %0; sets %1" \
- : "=m" (*mem), "=qm" (__result) \
- : "ir" ((atomic64_t) cast_to_integer (value)), \
- "m" (*mem)); \
- __result; })
-
-
-#define atomic_add_zero(mem, value) \
- ({ unsigned char __result; \
- if (sizeof (*mem) == 1) \
- __asm __volatile (LOCK_PREFIX "addb %b2, %0; setz %1" \
- : "=m" (*mem), "=qm" (__result) \
- : "iq" (value), "m" (*mem)); \
- else if (sizeof (*mem) == 2) \
- __asm __volatile (LOCK_PREFIX "addw %w2, %0; setz %1" \
- : "=m" (*mem), "=qm" (__result) \
- : "ir" (value), "m" (*mem)); \
- else if (sizeof (*mem) == 4) \
- __asm __volatile (LOCK_PREFIX "addl %2, %0; setz %1" \
- : "=m" (*mem), "=qm" (__result) \
- : "ir" (value), "m" (*mem)); \
- else \
- __asm __volatile (LOCK_PREFIX "addq %q2, %0; setz %1" \
- : "=m" (*mem), "=qm" (__result) \
- : "ir" ((atomic64_t) cast_to_integer (value)), \
- "m" (*mem)); \
- __result; })
-
-
-#define __arch_increment_body(lock, mem) \
- do { \
- if (sizeof (*mem) == 1) \
- __asm __volatile (lock "incb %b0" \
- : "=m" (*mem) \
- : "m" (*mem), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- else if (sizeof (*mem) == 2) \
- __asm __volatile (lock "incw %w0" \
- : "=m" (*mem) \
- : "m" (*mem), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- else if (sizeof (*mem) == 4) \
- __asm __volatile (lock "incl %0" \
- : "=m" (*mem) \
- : "m" (*mem), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- else \
- __asm __volatile (lock "incq %q0" \
- : "=m" (*mem) \
- : "m" (*mem), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- } while (0)
-
-#define atomic_increment(mem) __arch_increment_body (LOCK_PREFIX, mem)
-
-#define __arch_increment_cprefix \
- "cmpl $0, %%fs:%P2\n\tje 0f\n\tlock\n0:\t"
-
-#define catomic_increment(mem) \
- __arch_increment_body (__arch_increment_cprefix, mem)
-
-
-#define atomic_increment_and_test(mem) \
- ({ unsigned char __result; \
- if (sizeof (*mem) == 1) \
- __asm __volatile (LOCK_PREFIX "incb %b0; sete %1" \
- : "=m" (*mem), "=qm" (__result) \
- : "m" (*mem)); \
- else if (sizeof (*mem) == 2) \
- __asm __volatile (LOCK_PREFIX "incw %w0; sete %1" \
- : "=m" (*mem), "=qm" (__result) \
- : "m" (*mem)); \
- else if (sizeof (*mem) == 4) \
- __asm __volatile (LOCK_PREFIX "incl %0; sete %1" \
- : "=m" (*mem), "=qm" (__result) \
- : "m" (*mem)); \
- else \
- __asm __volatile (LOCK_PREFIX "incq %q0; sete %1" \
- : "=m" (*mem), "=qm" (__result) \
- : "m" (*mem)); \
- __result; })
-
-
-#define __arch_decrement_body(lock, mem) \
- do { \
- if (sizeof (*mem) == 1) \
- __asm __volatile (lock "decb %b0" \
- : "=m" (*mem) \
- : "m" (*mem), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- else if (sizeof (*mem) == 2) \
- __asm __volatile (lock "decw %w0" \
- : "=m" (*mem) \
- : "m" (*mem), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- else if (sizeof (*mem) == 4) \
- __asm __volatile (lock "decl %0" \
- : "=m" (*mem) \
- : "m" (*mem), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- else \
- __asm __volatile (lock "decq %q0" \
- : "=m" (*mem) \
- : "m" (*mem), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- } while (0)
-
-#define atomic_decrement(mem) __arch_decrement_body (LOCK_PREFIX, mem)
-
-#define __arch_decrement_cprefix \
- "cmpl $0, %%fs:%P2\n\tje 0f\n\tlock\n0:\t"
-
-#define catomic_decrement(mem) \
- __arch_decrement_body (__arch_decrement_cprefix, mem)
-
-
-#define atomic_decrement_and_test(mem) \
- ({ unsigned char __result; \
- if (sizeof (*mem) == 1) \
- __asm __volatile (LOCK_PREFIX "decb %b0; sete %1" \
- : "=m" (*mem), "=qm" (__result) \
- : "m" (*mem)); \
- else if (sizeof (*mem) == 2) \
- __asm __volatile (LOCK_PREFIX "decw %w0; sete %1" \
- : "=m" (*mem), "=qm" (__result) \
- : "m" (*mem)); \
- else if (sizeof (*mem) == 4) \
- __asm __volatile (LOCK_PREFIX "decl %0; sete %1" \
- : "=m" (*mem), "=qm" (__result) \
- : "m" (*mem)); \
- else \
- __asm __volatile (LOCK_PREFIX "decq %q0; sete %1" \
- : "=m" (*mem), "=qm" (__result) \
- : "m" (*mem)); \
- __result; })
-
-
-#define atomic_bit_set(mem, bit) \
- do { \
- if (sizeof (*mem) == 1) \
- __asm __volatile (LOCK_PREFIX "orb %b2, %0" \
- : "=m" (*mem) \
- : "m" (*mem), "iq" (1L << (bit))); \
- else if (sizeof (*mem) == 2) \
- __asm __volatile (LOCK_PREFIX "orw %w2, %0" \
- : "=m" (*mem) \
- : "m" (*mem), "ir" (1L << (bit))); \
- else if (sizeof (*mem) == 4) \
- __asm __volatile (LOCK_PREFIX "orl %2, %0" \
- : "=m" (*mem) \
- : "m" (*mem), "ir" (1L << (bit))); \
- else if (__builtin_constant_p (bit) && (bit) < 32) \
- __asm __volatile (LOCK_PREFIX "orq %2, %0" \
- : "=m" (*mem) \
- : "m" (*mem), "i" (1L << (bit))); \
- else \
- __asm __volatile (LOCK_PREFIX "orq %q2, %0" \
- : "=m" (*mem) \
- : "m" (*mem), "r" (1UL << (bit))); \
- } while (0)
-
-
-#define atomic_bit_test_set(mem, bit) \
- ({ unsigned char __result; \
- if (sizeof (*mem) == 1) \
- __asm __volatile (LOCK_PREFIX "btsb %3, %1; setc %0" \
- : "=q" (__result), "=m" (*mem) \
- : "m" (*mem), "iq" (bit)); \
- else if (sizeof (*mem) == 2) \
- __asm __volatile (LOCK_PREFIX "btsw %3, %1; setc %0" \
- : "=q" (__result), "=m" (*mem) \
- : "m" (*mem), "ir" (bit)); \
- else if (sizeof (*mem) == 4) \
- __asm __volatile (LOCK_PREFIX "btsl %3, %1; setc %0" \
- : "=q" (__result), "=m" (*mem) \
- : "m" (*mem), "ir" (bit)); \
- else \
- __asm __volatile (LOCK_PREFIX "btsq %3, %1; setc %0" \
- : "=q" (__result), "=m" (*mem) \
- : "m" (*mem), "ir" (bit)); \
- __result; })
-
-
-#define atomic_spin_nop() asm ("rep; nop")
-
-
-#define __arch_and_body(lock, mem, mask) \
- do { \
- if (sizeof (*mem) == 1) \
- __asm __volatile (lock "andb %b1, %0" \
- : "=m" (*mem) \
- : "iq" (mask), "m" (*mem), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- else if (sizeof (*mem) == 2) \
- __asm __volatile (lock "andw %w1, %0" \
- : "=m" (*mem) \
- : "ir" (mask), "m" (*mem), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- else if (sizeof (*mem) == 4) \
- __asm __volatile (lock "andl %1, %0" \
- : "=m" (*mem) \
- : "ir" (mask), "m" (*mem), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- else \
- __asm __volatile (lock "andq %q1, %0" \
- : "=m" (*mem) \
- : "ir" (mask), "m" (*mem), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- } while (0)
-
-#define __arch_cprefix \
- "cmpl $0, %%fs:%P3\n\tje 0f\n\tlock\n0:\t"
-
-#define atomic_and(mem, mask) __arch_and_body (LOCK_PREFIX, mem, mask)
-
-#define catomic_and(mem, mask) __arch_and_body (__arch_cprefix, mem, mask)
-
-
-#define __arch_or_body(lock, mem, mask) \
- do { \
- if (sizeof (*mem) == 1) \
- __asm __volatile (lock "orb %b1, %0" \
- : "=m" (*mem) \
- : "iq" (mask), "m" (*mem), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- else if (sizeof (*mem) == 2) \
- __asm __volatile (lock "orw %w1, %0" \
- : "=m" (*mem) \
- : "ir" (mask), "m" (*mem), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- else if (sizeof (*mem) == 4) \
- __asm __volatile (lock "orl %1, %0" \
- : "=m" (*mem) \
- : "ir" (mask), "m" (*mem), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- else \
- __asm __volatile (lock "orq %q1, %0" \
- : "=m" (*mem) \
- : "ir" (mask), "m" (*mem), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
- } while (0)
-
-#define atomic_or(mem, mask) __arch_or_body (LOCK_PREFIX, mem, mask)
-
-#define catomic_or(mem, mask) __arch_or_body (__arch_cprefix, mem, mask)
-
-/* We don't use mfence because it is supposedly slower due to having to
- provide stronger guarantees (e.g., regarding self-modifying code). */
-#define atomic_full_barrier() \
- __asm __volatile (LOCK_PREFIX "orl $0, (%%rsp)" ::: "memory")
-#define atomic_read_barrier() __asm ("" ::: "memory")
-#define atomic_write_barrier() __asm ("" ::: "memory")
-
-#endif /* atomic-machine.h */
diff --git a/sysdeps/x86_64/bsd-_setjmp.S b/sysdeps/x86_64/bsd-_setjmp.S
index 58c997de59..c0d2ec0d65 100644
--- a/sysdeps/x86_64/bsd-_setjmp.S
+++ b/sysdeps/x86_64/bsd-_setjmp.S
@@ -1,5 +1,5 @@
/* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'. x86-64 version.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This just does a tail-call to `__sigsetjmp (ARG, 0)'.
We cannot do it in C because it must be a tail-call, so frame-unwinding
diff --git a/sysdeps/x86_64/bsd-setjmp.S b/sysdeps/x86_64/bsd-setjmp.S
index 8e3c430dac..0f001f3ebd 100644
--- a/sysdeps/x86_64/bsd-setjmp.S
+++ b/sysdeps/x86_64/bsd-setjmp.S
@@ -1,5 +1,5 @@
/* BSD `setjmp' entry point to `sigsetjmp (..., 1)'. x86-64 version.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This just does a tail-call to `__sigsetjmp (ARG, 1)'.
We cannot do it in C because it must be a tail-call, so frame-unwinding
diff --git a/sysdeps/x86_64/configure b/sysdeps/x86_64/configure
index 8674d14569..84f82c2406 100644
--- a/sysdeps/x86_64/configure
+++ b/sysdeps/x86_64/configure
@@ -54,6 +54,28 @@ fi
config_vars="$config_vars
config-cflags-avx512 = $libc_cv_cc_avx512"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking -mprefer-vector-width=128" >&5
+$as_echo_n "checking -mprefer-vector-width=128... " >&6; }
+if ${libc_cv_cc_mprefer_vector_width+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if { ac_try='${CC-cc} -mprefer-vector-width=128 -xc /dev/null -S -o /dev/null'
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then :
+ libc_cv_cc_mprefer_vector_width=yes
+else
+ libc_cv_cc_mprefer_vector_width=no
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cc_mprefer_vector_width" >&5
+$as_echo "$libc_cv_cc_mprefer_vector_width" >&6; }
+config_vars="$config_vars
+config-cflags-mprefer-vector-width = $libc_cv_cc_mprefer_vector_width"
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Intel MPX support" >&5
$as_echo_n "checking for Intel MPX support... " >&6; }
if ${libc_cv_asm_mpx+:} false; then :
diff --git a/sysdeps/x86_64/configure.ac b/sysdeps/x86_64/configure.ac
index b7d2c0124f..cdaba0c075 100644
--- a/sysdeps/x86_64/configure.ac
+++ b/sysdeps/x86_64/configure.ac
@@ -25,6 +25,15 @@ if test $libc_cv_cc_avx512 = yes; then
fi
LIBC_CONFIG_VAR([config-cflags-avx512], [$libc_cv_cc_avx512])
+dnl Check if -mprefer-vector-width=128 works.
+AC_CACHE_CHECK(-mprefer-vector-width=128, libc_cv_cc_mprefer_vector_width, [dnl
+LIBC_TRY_CC_OPTION([-mprefer-vector-width=128],
+ [libc_cv_cc_mprefer_vector_width=yes],
+ [libc_cv_cc_mprefer_vector_width=no])
+])
+LIBC_CONFIG_VAR([config-cflags-mprefer-vector-width],
+ [$libc_cv_cc_mprefer_vector_width])
+
dnl Check whether asm supports Intel MPX
AC_CACHE_CHECK(for Intel MPX support, libc_cv_asm_mpx, [dnl
cat > conftest.s <<\EOF
diff --git a/sysdeps/x86_64/crti.S b/sysdeps/x86_64/crti.S
index 067ac14884..3116707a65 100644
--- a/sysdeps/x86_64/crti.S
+++ b/sysdeps/x86_64/crti.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for x86-64.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* crti.S puts a function prologue at the beginning of the .init and
.fini sections and defines global symbols for those addresses, so
diff --git a/sysdeps/x86_64/crtn.S b/sysdeps/x86_64/crtn.S
index 2463d742fd..00dfca0548 100644
--- a/sysdeps/x86_64/crtn.S
+++ b/sysdeps/x86_64/crtn.S
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for x86-64.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* crtn.S puts function epilogues in the .init and .fini sections
corresponding to the prologues in crti.S. */
diff --git a/sysdeps/x86_64/dl-irel.h b/sysdeps/x86_64/dl-irel.h
index 6ecc50fb42..55a6adbddd 100644
--- a/sysdeps/x86_64/dl-irel.h
+++ b/sysdeps/x86_64/dl-irel.h
@@ -1,6 +1,6 @@
/* Machine-dependent ELF indirect relocation inline functions.
x86-64 version.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _DL_IREL_H
#define _DL_IREL_H
@@ -45,7 +45,7 @@ elf_irela (const ElfW(Rela) *reloc)
*reloc_addr = value;
}
else
- __libc_fatal ("unexpected reloc type in static binary");
+ __libc_fatal ("Unexpected reloc type in static binary.\n");
}
#endif /* dl-irel.h */
diff --git a/sysdeps/x86_64/dl-lookupcfg.h b/sysdeps/x86_64/dl-lookupcfg.h
deleted file mode 100644
index 5399cf25ab..0000000000
--- a/sysdeps/x86_64/dl-lookupcfg.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Configuration of lookup functions.
- Copyright (C) 2005-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#define DL_UNMAP_IS_SPECIAL
-
-#include_next <dl-lookupcfg.h>
-
-/* Address of protected data defined in the shared library may be
- external due to copy relocation. */
-#define DL_EXTERN_PROTECTED_DATA
-
-struct link_map;
-
-extern void _dl_unmap (struct link_map *map) attribute_hidden;
-
-#define DL_UNMAP(map) _dl_unmap (map)
diff --git a/sysdeps/x86_64/dl-machine.h b/sysdeps/x86_64/dl-machine.h
index 1942ed5061..58260c7876 100644
--- a/sysdeps/x86_64/dl-machine.h
+++ b/sysdeps/x86_64/dl-machine.h
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation inline functions. x86-64 version.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef dl_machine_h
#define dl_machine_h
@@ -347,6 +347,7 @@ elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc,
/* Set to symbol size plus addend. */
value = sym->st_size;
# endif
+ /* Fall through. */
case R_X86_64_GLOB_DAT:
case R_X86_64_JUMP_SLOT:
*reloc_addr = value + reloc->r_addend;
@@ -460,6 +461,7 @@ elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc,
/* Set to symbol size plus addend. */
value = sym->st_size;
# endif
+ /* Fall through. */
case R_X86_64_32:
value += reloc->r_addend;
*(unsigned int *) reloc_addr = value;
@@ -510,7 +512,8 @@ elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc,
# endif
case R_X86_64_IRELATIVE:
value = map->l_addr + reloc->r_addend;
- value = ((ElfW(Addr) (*) (void)) value) ();
+ if (__glibc_likely (!skip_ifunc))
+ value = ((ElfW(Addr) (*) (void)) value) ();
*reloc_addr = value;
break;
default:
diff --git a/sysdeps/x86_64/dl-procinfo.c b/sysdeps/x86_64/dl-procinfo.c
index 269ce7e87d..5e26838ec2 100644
--- a/sysdeps/x86_64/dl-procinfo.c
+++ b/sysdeps/x86_64/dl-procinfo.c
@@ -1,5 +1,5 @@
/* Data for x86-64 version of processor capability information.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* If anything should be added here check whether the size of each string
is still ok with the given array size.
diff --git a/sysdeps/x86_64/dl-tls.c b/sysdeps/x86_64/dl-tls.c
index 533ee2b3a6..60bafda310 100644
--- a/sysdeps/x86_64/dl-tls.c
+++ b/sysdeps/x86_64/dl-tls.c
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. x86-64 version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifdef SHARED
/* Work around GCC PR58066, due to which __tls_get_addr may be called
diff --git a/sysdeps/x86_64/dl-tls.h b/sysdeps/x86_64/dl-tls.h
index bc18e70b23..6c7db88d38 100644
--- a/sysdeps/x86_64/dl-tls.h
+++ b/sysdeps/x86_64/dl-tls.h
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. x86-64 version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _X86_64_DL_TLS_H
#define _X86_64_DL_TLS_H
diff --git a/sysdeps/x86_64/dl-tlsdesc.S b/sysdeps/x86_64/dl-tlsdesc.S
index 80d771cd88..3c37d3cb47 100644
--- a/sysdeps/x86_64/dl-tlsdesc.S
+++ b/sysdeps/x86_64/dl-tlsdesc.S
@@ -1,5 +1,5 @@
/* Thread-local storage handling in the ELF dynamic linker. x86_64 version.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <tls.h>
diff --git a/sysdeps/x86_64/dl-tlsdesc.h b/sysdeps/x86_64/dl-tlsdesc.h
index 66e659bb5c..5734ba4530 100644
--- a/sysdeps/x86_64/dl-tlsdesc.h
+++ b/sysdeps/x86_64/dl-tlsdesc.h
@@ -1,6 +1,6 @@
/* Thread-local storage descriptor handling in the ELF dynamic linker.
x86_64 version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/sysdeps/x86_64/dl-trampoline.S b/sysdeps/x86_64/dl-trampoline.S
index ef1425cbb9..6cbd8bd01f 100644
--- a/sysdeps/x86_64/dl-trampoline.S
+++ b/sysdeps/x86_64/dl-trampoline.S
@@ -1,5 +1,5 @@
/* PLT trampolines. x86-64 version.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,11 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <config.h>
#include <sysdep.h>
-#include <cpu-features.h>
+#include <cpu-features-offsets.h>
#include <link-defines.h>
#ifndef DL_STACK_ALIGNMENT
diff --git a/sysdeps/x86_64/dl-trampoline.h b/sysdeps/x86_64/dl-trampoline.h
index a28b1e73a4..be6627cc49 100644
--- a/sysdeps/x86_64/dl-trampoline.h
+++ b/sysdeps/x86_64/dl-trampoline.h
@@ -1,5 +1,5 @@
/* PLT trampolines. x86-64 version.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
.text
#ifdef _dl_runtime_resolve
diff --git a/sysdeps/x86_64/ffs.c b/sysdeps/x86_64/ffs.c
index fa5b20544d..4481754e66 100644
--- a/sysdeps/x86_64/ffs.c
+++ b/sysdeps/x86_64/ffs.c
@@ -1,7 +1,7 @@
/* ffs -- find first set bit in a word, counted from least significant end.
For AMD x86-64.
This file is part of the GNU C Library.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 Free Software Foundation, Inc.
Contributed by Ulrich Drepper <drepper@cygnus.com>.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
diff --git a/sysdeps/x86_64/ffsll.c b/sysdeps/x86_64/ffsll.c
index 206deb6810..09f384ebc2 100644
--- a/sysdeps/x86_64/ffsll.c
+++ b/sysdeps/x86_64/ffsll.c
@@ -1,7 +1,7 @@
/* ffsll -- find first set bit in a word, counted from least significant end.
For AMD x86-64.
This file is part of the GNU C Library.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-2019 Free Software Foundation, Inc.
Contributed by Ulrich Drepper <drepper@cygnus.com>.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define ffsl __something_else
#include <string.h>
diff --git a/sysdeps/x86_64/fpu/Makefile b/sysdeps/x86_64/fpu/Makefile
index 2b7d69bb50..a4ff2723a8 100644
--- a/sysdeps/x86_64/fpu/Makefile
+++ b/sysdeps/x86_64/fpu/Makefile
@@ -20,9 +20,7 @@ libmvec-support += svml_d_cos2_core svml_d_cos4_core_avx \
svml_d_pow_data svml_s_powf4_core svml_s_powf8_core_avx \
svml_s_powf8_core svml_s_powf16_core svml_s_powf_data \
svml_s_sincosf4_core svml_s_sincosf8_core_avx \
- svml_s_sincosf8_core svml_s_sincosf16_core svml_finite_alias
-
-libmvec-static-only-routines = svml_finite_alias
+ svml_s_sincosf8_core svml_s_sincosf16_core
endif
# Variables for libmvec tests.
@@ -30,93 +28,15 @@ ifeq ($(subdir),math)
ifeq ($(build-mathvec),yes)
libmvec-tests += double-vlen2 double-vlen4 double-vlen4-avx2 \
float-vlen4 float-vlen8 float-vlen8-avx2
-tests += test-double-libmvec-alias test-double-libmvec-alias-avx \
- test-double-libmvec-alias-avx2 test-double-libmvec-alias-main \
- test-double-libmvec-alias-avx-main test-double-libmvec-alias-avx2-main \
- test-float-libmvec-alias test-float-libmvec-alias-avx \
- test-float-libmvec-alias-avx2 test-float-libmvec-alias-main \
- test-float-libmvec-alias-avx-main test-float-libmvec-alias-avx2-main \
- test-double-libmvec-sincos test-double-libmvec-sincos-avx \
+tests += test-double-libmvec-sincos test-double-libmvec-sincos-avx \
test-double-libmvec-sincos-avx2 test-float-libmvec-sincosf \
test-float-libmvec-sincosf-avx test-float-libmvec-sincosf-avx2
-modules-names += test-double-libmvec-alias-mod \
- test-double-libmvec-alias-avx-mod \
- test-double-libmvec-alias-avx2-mod \
- test-float-libmvec-alias-mod \
- test-float-libmvec-alias-avx-mod \
- test-float-libmvec-alias-avx2-mod
-modules-names-tests += test-double-libmvec-alias-mod \
- test-double-libmvec-alias-avx-mod \
- test-double-libmvec-alias-avx2-mod \
- test-float-libmvec-alias-mod \
- test-float-libmvec-alias-avx-mod \
- test-float-libmvec-alias-avx2-mod
extra-test-objs += test-double-libmvec-sincos-avx-main.o \
test-double-libmvec-sincos-avx2-main.o \
test-double-libmvec-sincos-main.o \
test-float-libmvec-sincosf-avx-main.o \
test-float-libmvec-sincosf-avx2-main.o\
test-float-libmvec-sincosf-main.o
-test-double-libmvec-alias-mod.so-no-z-defs = yes
-test-double-libmvec-alias-avx-mod.so-no-z-defs = yes
-test-double-libmvec-alias-avx2-mod.so-no-z-defs = yes
-test-float-libmvec-alias-mod.so-no-z-defs = yes
-test-float-libmvec-alias-avx-mod.so-no-z-defs = yes
-test-float-libmvec-alias-avx2-mod.so-no-z-defs = yes
-
-$(objpfx)test-double-libmvec-alias: \
- $(objpfx)test-double-libmvec-alias-mod.so
-$(objpfx)test-double-libmvec-alias-mod.so: \
- $(objpfx)../mathvec/libmvec_nonshared.a $(libmvec)
-
-$(objpfx)test-double-libmvec-alias-avx: \
- $(objpfx)test-double-libmvec-alias-avx-mod.so
-$(objpfx)test-double-libmvec-alias-avx-mod.so: \
- $(objpfx)../mathvec/libmvec_nonshared.a $(libmvec)
-
-$(objpfx)test-double-libmvec-alias-avx2: \
- $(objpfx)test-double-libmvec-alias-avx2-mod.so
-$(objpfx)test-double-libmvec-alias-avx2-mod.so: \
- $(objpfx)../mathvec/libmvec_nonshared.a $(libmvec)
-
-$(objpfx)test-double-libmvec-alias-main: \
- $(objpfx)test-double-libmvec-alias-mod.os \
- $(objpfx)../mathvec/libmvec_nonshared.a $(libmvec)
-
-$(objpfx)test-double-libmvec-alias-avx-main: \
- $(objpfx)test-double-libmvec-alias-avx-mod.os \
- $(objpfx)../mathvec/libmvec_nonshared.a $(libmvec)
-
-$(objpfx)test-double-libmvec-alias-avx2-main: \
- $(objpfx)test-double-libmvec-alias-avx2-mod.os \
- $(objpfx)../mathvec/libmvec_nonshared.a $(libmvec)
-
-$(objpfx)test-float-libmvec-alias: \
- $(objpfx)test-float-libmvec-alias-mod.so
-$(objpfx)test-float-libmvec-alias-mod.so: \
- $(objpfx)../mathvec/libmvec_nonshared.a $(libmvec)
-
-$(objpfx)test-float-libmvec-alias-avx: \
- $(objpfx)test-float-libmvec-alias-avx-mod.so
-$(objpfx)test-float-libmvec-alias-avx-mod.so: \
- $(objpfx)../mathvec/libmvec_nonshared.a $(libmvec)
-
-$(objpfx)test-float-libmvec-alias-avx2: \
- $(objpfx)test-float-libmvec-alias-avx2-mod.so
-$(objpfx)test-float-libmvec-alias-avx2-mod.so: \
- $(objpfx)../mathvec/libmvec_nonshared.a $(libmvec)
-
-$(objpfx)test-float-libmvec-alias-main: \
- $(objpfx)test-float-libmvec-alias-mod.os \
- $(objpfx)../mathvec/libmvec_nonshared.a $(libmvec)
-
-$(objpfx)test-float-libmvec-alias-avx-main: \
- $(objpfx)test-float-libmvec-alias-avx-mod.os \
- $(objpfx)../mathvec/libmvec_nonshared.a $(libmvec)
-
-$(objpfx)test-float-libmvec-alias-avx2-main: \
- $(objpfx)test-float-libmvec-alias-avx2-mod.os \
- $(objpfx)../mathvec/libmvec_nonshared.a $(libmvec)
$(objpfx)test-double-libmvec-sincos: \
$(objpfx)test-double-libmvec-sincos.o \
@@ -144,38 +64,10 @@ $(objpfx)test-float-libmvec-sincosf-avx2: \
ifeq (yes,$(config-cflags-avx512))
libmvec-tests += double-vlen8 float-vlen16
-tests += test-double-libmvec-alias-avx512 \
- test-float-libmvec-alias-avx512 \
- test-double-libmvec-alias-avx512-main \
- test-float-libmvec-alias-avx512-main \
- test-double-libmvec-sincos-avx512 \
+tests += test-double-libmvec-sincos-avx512 \
test-float-libmvec-sincosf-avx512
-modules-names += test-double-libmvec-alias-avx512-mod \
- test-float-libmvec-alias-avx512-mod
-modules-names-tests += test-double-libmvec-alias-avx512-mod \
- test-float-libmvec-alias-avx512-mod
extra-test-objs += test-double-libmvec-sincos-avx512-main.o \
test-float-libmvec-sincosf-avx512-main.o
-test-double-libmvec-alias-avx512-mod.so-no-z-defs = yes
-test-float-libmvec-alias-avx512-mod.so-no-z-defs = yes
-
-$(objpfx)test-double-libmvec-alias-avx512: \
- $(objpfx)test-double-libmvec-alias-avx512-mod.so
-$(objpfx)test-double-libmvec-alias-avx512-mod.so: \
- $(objpfx)../mathvec/libmvec_nonshared.a $(libmvec)
-
-$(objpfx)test-double-libmvec-alias-avx512-main: \
- $(objpfx)test-double-libmvec-alias-avx512-mod.os \
- $(objpfx)../mathvec/libmvec_nonshared.a $(libmvec)
-
-$(objpfx)test-float-libmvec-alias-avx512: \
- $(objpfx)test-float-libmvec-alias-avx512-mod.so
-$(objpfx)test-float-libmvec-alias-avx512-mod.so: \
- $(objpfx)../mathvec/libmvec_nonshared.a $(libmvec)
-
-$(objpfx)test-float-libmvec-alias-avx512-main: \
- $(objpfx)test-float-libmvec-alias-avx512-mod.os \
- $(objpfx)../mathvec/libmvec_nonshared.a $(libmvec)
$(objpfx)test-double-libmvec-sincos-avx512: \
$(objpfx)test-double-libmvec-sincos-avx512.o \
@@ -204,17 +96,6 @@ float-vlen8-arch-ext2-cflags = -mavx2
float-vlen16-arch-ext-cflags = -mavx512f
libmvec-sincos-cflags = $(libm-test-fast-math-cflags) -fno-inline -fopenmp -Wno-unknown-pragmas
-libmvec-alias-cflags = $(libmvec-sincos-cflags) -ffloat-store -ffinite-math-only
-
-CFLAGS-test-double-libmvec-alias-mod.c = $(libmvec-alias-cflags)
-CFLAGS-test-double-libmvec-alias-avx-mod.c = $(double-vlen4-arch-ext-cflags) $(libmvec-alias-cflags) -DREQUIRE_AVX
-CFLAGS-test-double-libmvec-alias-avx2-mod.c = $(double-vlen4-arch-ext2-cflags) $(libmvec-alias-cflags) -DREQUIRE_AVX2
-CFLAGS-test-double-libmvec-alias-avx512-mod.c = $(double-vlen8-arch-ext-cflags) $(libmvec-alias-cflags) -DREQUIRE_AVX512F
-
-CFLAGS-test-float-libmvec-alias-mod.c = $(libmvec-alias-cflags)
-CFLAGS-test-float-libmvec-alias-avx-mod.c = $(double-vlen4-arch-ext-cflags) $(libmvec-alias-cflags) -DREQUIRE_AVX
-CFLAGS-test-float-libmvec-alias-avx2-mod.c = $(double-vlen4-arch-ext2-cflags) $(libmvec-alias-cflags) -DREQUIRE_AVX2
-CFLAGS-test-float-libmvec-alias-avx512-mod.c = $(double-vlen8-arch-ext-cflags) $(libmvec-alias-cflags) -DREQUIRE_AVX512F
CFLAGS-test-double-vlen4-avx2-wrappers.c = $(double-vlen4-arch-ext2-cflags)
@@ -237,3 +118,15 @@ CFLAGS-test-float-libmvec-sincosf-avx512.c = -DREQUIRE_AVX512F
CFLAGS-test-float-libmvec-sincosf-avx512-main.c = $(libmvec-sincos-cflags) $(float-vlen16-arch-ext-cflags)
endif
endif
+
+ifeq ($(subdir)$(config-cflags-mprefer-vector-width),mathyes)
+# When compiled with -O3 -march=skylake, GCC 8 and 9 optimize some loops
+# in branred.c with 256-bit vector instructions, which leads to store
+# forward stall:
+#
+# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90579
+#
+# Limit vector width to 128 bits to work around this issue. It improves
+# performance of sin and cos by more than 40% on Skylake.
+CFLAGS-branred.c = -mprefer-vector-width=128
+endif
diff --git a/sysdeps/x86_64/fpu/e_powl.S b/sysdeps/x86_64/fpu/e_powl.S
index f32228104e..997736ab53 100644
--- a/sysdeps/x86_64/fpu/e_powl.S
+++ b/sysdeps/x86_64/fpu/e_powl.S
@@ -1,5 +1,5 @@
/* ix87 specific implementation of pow function.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <machine/asm.h>
#include <x86_64-math-asm.h>
diff --git a/sysdeps/x86_64/fpu/e_sqrt.c b/sysdeps/x86_64/fpu/e_sqrt.c
index f4c2e5fd7c..df58eaab60 100644
--- a/sysdeps/x86_64/fpu/e_sqrt.c
+++ b/sysdeps/x86_64/fpu/e_sqrt.c
@@ -1,5 +1,5 @@
/* Square root of floating point number.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math_private.h>
diff --git a/sysdeps/x86_64/fpu/e_sqrtf.c b/sysdeps/x86_64/fpu/e_sqrtf.c
index 8f76ccb530..b5ad96057e 100644
--- a/sysdeps/x86_64/fpu/e_sqrtf.c
+++ b/sysdeps/x86_64/fpu/e_sqrtf.c
@@ -1,5 +1,5 @@
/* Square root of floating point number.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math_private.h>
diff --git a/sysdeps/x86_64/fpu/fclrexcpt.c b/sysdeps/x86_64/fpu/fclrexcpt.c
index e7f6aa341f..2e9e9fa789 100644
--- a/sysdeps/x86_64/fpu/fclrexcpt.c
+++ b/sysdeps/x86_64/fpu/fclrexcpt.c
@@ -1,5 +1,5 @@
/* Clear given exceptions in current floating-point environment.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/x86_64/fpu/fedisblxcpt.c b/sysdeps/x86_64/fpu/fedisblxcpt.c
index 9153f997ed..48072b843f 100644
--- a/sysdeps/x86_64/fpu/fedisblxcpt.c
+++ b/sysdeps/x86_64/fpu/fedisblxcpt.c
@@ -1,5 +1,5 @@
/* Disable floating-point exceptions.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/x86_64/fpu/feenablxcpt.c b/sysdeps/x86_64/fpu/feenablxcpt.c
index 7a3e26b3f9..f77ca646a6 100644
--- a/sysdeps/x86_64/fpu/feenablxcpt.c
+++ b/sysdeps/x86_64/fpu/feenablxcpt.c
@@ -1,5 +1,5 @@
/* Enable floating-point exceptions.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/x86_64/fpu/fegetenv.c b/sysdeps/x86_64/fpu/fegetenv.c
index 9461af7575..227e9029eb 100644
--- a/sysdeps/x86_64/fpu/fegetenv.c
+++ b/sysdeps/x86_64/fpu/fegetenv.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/x86_64/fpu/fegetexcept.c b/sysdeps/x86_64/fpu/fegetexcept.c
index ce54c251ba..0c3ae3b2f1 100644
--- a/sysdeps/x86_64/fpu/fegetexcept.c
+++ b/sysdeps/x86_64/fpu/fegetexcept.c
@@ -1,5 +1,5 @@
/* Get enabled floating-point exceptions.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/x86_64/fpu/fegetmode.c b/sysdeps/x86_64/fpu/fegetmode.c
index cc4f12649b..5d6f7fde71 100644
--- a/sysdeps/x86_64/fpu/fegetmode.c
+++ b/sysdeps/x86_64/fpu/fegetmode.c
@@ -1,5 +1,5 @@
/* Store current floating-point control modes. x86_64 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/x86_64/fpu/fegetround.c b/sysdeps/x86_64/fpu/fegetround.c
index 0f31cafedd..f33da61391 100644
--- a/sysdeps/x86_64/fpu/fegetround.c
+++ b/sysdeps/x86_64/fpu/fegetround.c
@@ -1,5 +1,5 @@
/* Return current rounding direction.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/x86_64/fpu/feholdexcpt.c b/sysdeps/x86_64/fpu/feholdexcpt.c
index dec689beb2..be3e676c0f 100644
--- a/sysdeps/x86_64/fpu/feholdexcpt.c
+++ b/sysdeps/x86_64/fpu/feholdexcpt.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment and clear exceptions.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/x86_64/fpu/fesetenv.c b/sysdeps/x86_64/fpu/fesetenv.c
index c12dba5101..cf98866265 100644
--- a/sysdeps/x86_64/fpu/fesetenv.c
+++ b/sysdeps/x86_64/fpu/fesetenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/x86_64/fpu/fesetexcept.c b/sysdeps/x86_64/fpu/fesetexcept.c
index 122a7629dc..bffda1f5d1 100644
--- a/sysdeps/x86_64/fpu/fesetexcept.c
+++ b/sysdeps/x86_64/fpu/fesetexcept.c
@@ -1,5 +1,5 @@
/* Set given exception flags. x86_64 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/x86_64/fpu/fesetmode.c b/sysdeps/x86_64/fpu/fesetmode.c
index 0771e4c10a..2dbf0781e7 100644
--- a/sysdeps/x86_64/fpu/fesetmode.c
+++ b/sysdeps/x86_64/fpu/fesetmode.c
@@ -1,5 +1,5 @@
/* Install given floating-point control modes. x86_64 version.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <fpu_control.h>
diff --git a/sysdeps/x86_64/fpu/fesetround.c b/sysdeps/x86_64/fpu/fesetround.c
index e5afc1d57a..6f286ad2e4 100644
--- a/sysdeps/x86_64/fpu/fesetround.c
+++ b/sysdeps/x86_64/fpu/fesetround.c
@@ -1,5 +1,5 @@
/* Set current rounding direction.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/x86_64/fpu/feupdateenv.c b/sysdeps/x86_64/fpu/feupdateenv.c
index 00da535e64..ff790bde05 100644
--- a/sysdeps/x86_64/fpu/feupdateenv.c
+++ b/sysdeps/x86_64/fpu/feupdateenv.c
@@ -1,5 +1,5 @@
/* Install given floating-point environment and raise exceptions.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/x86_64/fpu/fgetexcptflg.c b/sysdeps/x86_64/fpu/fgetexcptflg.c
index 16719ceb5e..6503dec995 100644
--- a/sysdeps/x86_64/fpu/fgetexcptflg.c
+++ b/sysdeps/x86_64/fpu/fgetexcptflg.c
@@ -1,5 +1,5 @@
/* Store current representation for exceptions.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/x86_64/fpu/fraiseexcpt.c b/sysdeps/x86_64/fpu/fraiseexcpt.c
index ca1c223053..01ad276b63 100644
--- a/sysdeps/x86_64/fpu/fraiseexcpt.c
+++ b/sysdeps/x86_64/fpu/fraiseexcpt.c
@@ -1,5 +1,5 @@
/* Raise given exceptions.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <math.h>
diff --git a/sysdeps/x86_64/fpu/fsetexcptflg.c b/sysdeps/x86_64/fpu/fsetexcptflg.c
index 821dd9d786..7c24dedb77 100644
--- a/sysdeps/x86_64/fpu/fsetexcptflg.c
+++ b/sysdeps/x86_64/fpu/fsetexcptflg.c
@@ -1,5 +1,5 @@
/* Set floating-point environment exception handling.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
#include <math.h>
diff --git a/sysdeps/x86_64/fpu/ftestexcept.c b/sysdeps/x86_64/fpu/ftestexcept.c
index 63167c68df..3adf6e489b 100644
--- a/sysdeps/x86_64/fpu/ftestexcept.c
+++ b/sysdeps/x86_64/fpu/ftestexcept.c
@@ -1,5 +1,5 @@
/* Test exception in current environment.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <fenv.h>
diff --git a/sysdeps/x86_64/fpu/libm-test-ulps b/sysdeps/x86_64/fpu/libm-test-ulps
index 912db318b6..ee5bcbd05c 100644
--- a/sysdeps/x86_64/fpu/libm-test-ulps
+++ b/sysdeps/x86_64/fpu/libm-test-ulps
@@ -894,10 +894,10 @@ ildouble: 3
ldouble: 3
Function: Imaginary part of "ccos_downward":
-double: 2
+double: 3
float: 3
float128: 2
-idouble: 2
+idouble: 3
ifloat: 3
ifloat128: 2
ildouble: 3
@@ -914,10 +914,10 @@ ildouble: 3
ldouble: 3
Function: Imaginary part of "ccos_towardzero":
-double: 2
+double: 3
float: 3
float128: 2
-idouble: 2
+idouble: 3
ifloat: 3
ifloat128: 2
ildouble: 3
@@ -964,40 +964,40 @@ ildouble: 1
ldouble: 1
Function: Real part of "ccosh_downward":
-double: 1
+double: 2
float: 2
float128: 2
-idouble: 1
+idouble: 2
ifloat: 2
ifloat128: 2
ildouble: 3
ldouble: 3
Function: Imaginary part of "ccosh_downward":
-double: 2
+double: 3
float: 3
float128: 2
-idouble: 2
+idouble: 3
ifloat: 3
ifloat128: 2
ildouble: 3
ldouble: 3
Function: Real part of "ccosh_towardzero":
-double: 1
+double: 2
float: 3
float128: 2
-idouble: 1
+idouble: 2
ifloat: 3
ifloat128: 2
ildouble: 3
ldouble: 3
Function: Imaginary part of "ccosh_towardzero":
-double: 2
+double: 3
float: 3
float128: 2
-idouble: 2
+idouble: 3
ifloat: 3
ifloat128: 2
ildouble: 3
@@ -1044,40 +1044,40 @@ ildouble: 1
ldouble: 1
Function: Real part of "cexp_downward":
-double: 1
+double: 2
float: 2
float128: 2
-idouble: 1
+idouble: 2
ifloat: 2
ifloat128: 2
ildouble: 3
ldouble: 3
Function: Imaginary part of "cexp_downward":
-double: 1
+double: 3
float: 3
float128: 2
-idouble: 1
+idouble: 3
ifloat: 3
ifloat128: 2
ildouble: 3
ldouble: 3
Function: Real part of "cexp_towardzero":
-double: 1
+double: 2
float: 2
float128: 2
-idouble: 1
+idouble: 2
ifloat: 2
ifloat128: 2
ildouble: 3
ldouble: 3
Function: Imaginary part of "cexp_towardzero":
-double: 1
+double: 3
float: 3
float128: 2
-idouble: 1
+idouble: 3
ifloat: 3
ifloat128: 2
ildouble: 3
@@ -1094,10 +1094,10 @@ ildouble: 2
ldouble: 2
Function: Imaginary part of "cexp_upward":
-double: 1
+double: 3
float: 2
float128: 3
-idouble: 1
+idouble: 3
ifloat: 2
ifloat128: 3
ildouble: 3
@@ -1271,24 +1271,30 @@ ldouble: 1
Function: "cos_downward":
double: 1
+float: 1
float128: 3
idouble: 1
+ifloat: 1
ifloat128: 3
ildouble: 3
ldouble: 3
Function: "cos_towardzero":
double: 1
+float: 1
float128: 1
idouble: 1
+ifloat: 1
ifloat128: 1
ildouble: 2
ldouble: 2
Function: "cos_upward":
double: 1
+float: 1
float128: 2
idouble: 1
+ifloat: 1
ifloat128: 2
ildouble: 2
ldouble: 2
@@ -1324,30 +1330,30 @@ ildouble: 2
ldouble: 2
Function: "cosh_downward":
-double: 1
+double: 2
float: 1
float128: 2
-idouble: 1
+idouble: 2
ifloat: 1
ifloat128: 1
ildouble: 2
ldouble: 3
Function: "cosh_towardzero":
-double: 1
+double: 2
float: 1
float128: 2
-idouble: 1
+idouble: 2
ifloat: 1
ifloat128: 1
ildouble: 2
ldouble: 2
Function: "cosh_upward":
-double: 1
+double: 2
float: 2
float128: 3
-idouble: 1
+idouble: 2
ifloat: 2
ifloat128: 1
ildouble: 2
@@ -1372,10 +1378,10 @@ ildouble: 4
ldouble: 4
Function: Real part of "cpow_downward":
-double: 4
+double: 5
float: 8
float128: 6
-idouble: 4
+idouble: 5
ifloat: 8
ifloat128: 6
ildouble: 7
@@ -1392,10 +1398,10 @@ ildouble: 2
ldouble: 2
Function: Real part of "cpow_towardzero":
-double: 4
+double: 5
float: 8
float128: 6
-idouble: 4
+idouble: 5
ifloat: 8
ifloat128: 6
ildouble: 7
@@ -1446,10 +1452,10 @@ float128: 1
ifloat128: 1
Function: Real part of "csin_downward":
-double: 2
+double: 3
float: 3
float128: 2
-idouble: 2
+idouble: 3
ifloat: 3
ifloat128: 2
ildouble: 3
@@ -1466,10 +1472,10 @@ ildouble: 3
ldouble: 3
Function: Real part of "csin_towardzero":
-double: 2
+double: 3
float: 3
float128: 2
-idouble: 2
+idouble: 3
ifloat: 3
ifloat128: 2
ildouble: 3
@@ -1534,10 +1540,10 @@ ildouble: 3
ldouble: 3
Function: Imaginary part of "csinh_downward":
-double: 2
+double: 3
float: 3
float128: 2
-idouble: 2
+idouble: 3
ifloat: 3
ifloat128: 2
ildouble: 3
@@ -1554,10 +1560,10 @@ ildouble: 3
ldouble: 3
Function: Imaginary part of "csinh_towardzero":
-double: 2
+double: 3
float: 3
float128: 2
-idouble: 2
+idouble: 3
ifloat: 3
ifloat128: 2
ildouble: 3
@@ -1918,20 +1924,20 @@ ildouble: 1
ldouble: 1
Function: "exp10_downward":
-double: 2
+double: 3
float: 1
float128: 3
-idouble: 2
+idouble: 3
ifloat: 1
ifloat128: 3
ildouble: 2
ldouble: 2
Function: "exp10_towardzero":
-double: 2
+double: 3
float: 1
float128: 3
-idouble: 2
+idouble: 3
ifloat: 1
ifloat128: 3
ildouble: 2
@@ -2539,24 +2545,30 @@ ldouble: 1
Function: "sin_downward":
double: 1
+float: 1
float128: 3
idouble: 1
+ifloat: 1
ifloat128: 3
ildouble: 3
ldouble: 3
Function: "sin_towardzero":
double: 1
+float: 1
float128: 2
idouble: 1
+ifloat: 1
ifloat128: 2
ildouble: 2
ldouble: 2
Function: "sin_upward":
double: 1
+float: 1
float128: 3
idouble: 1
+ifloat: 1
ifloat128: 3
ildouble: 3
ldouble: 3
@@ -2591,24 +2603,30 @@ ldouble: 1
Function: "sincos_downward":
double: 1
+float: 1
float128: 3
idouble: 1
+ifloat: 1
ifloat128: 3
ildouble: 3
ldouble: 3
Function: "sincos_towardzero":
double: 1
+float: 1
float128: 2
idouble: 1
+ifloat: 1
ifloat128: 2
ildouble: 2
ldouble: 2
Function: "sincos_upward":
double: 1
+float: 1
float128: 3
idouble: 1
+ifloat: 1
ifloat128: 3
ildouble: 3
ldouble: 3
diff --git a/sysdeps/x86_64/fpu/math-tests-arch.h b/sysdeps/x86_64/fpu/math-tests-arch.h
index a5df133292..0be0ac5701 100644
--- a/sysdeps/x86_64/fpu/math-tests-arch.h
+++ b/sysdeps/x86_64/fpu/math-tests-arch.h
@@ -1,5 +1,5 @@
/* Runtime architecture check for math tests. x86_64 version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <cpu-features.h>
diff --git a/sysdeps/x86_64/fpu/math-tests-snan.h b/sysdeps/x86_64/fpu/math-tests-snan.h
new file mode 100644
index 0000000000..82b66ff58a
--- /dev/null
+++ b/sysdeps/x86_64/fpu/math-tests-snan.h
@@ -0,0 +1,34 @@
+/* Configuration for math tests: sNaN support. x86_64 version.
+ Copyright (C) 2013-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef X86_64_MATH_TESTS_SNAN_H
+#define X86_64_MATH_TESTS_SNAN_H 1
+
+#define SNAN_TESTS_float 1
+#define SNAN_TESTS_double 1
+#define SNAN_TESTS_long_double 1
+
+/* Before GCC 7, there is no built-in function to provide a __float128
+ sNaN, so most sNaN tests for this type cannot work. */
+#if __GNUC_PREREQ (7, 0)
+# define SNAN_TESTS_float128 1
+#else
+# define SNAN_TESTS_float128 0
+#endif
+
+#endif /* math-tests-snan.h. */
diff --git a/sysdeps/x86_64/fpu/math_ldbl.h b/sysdeps/x86_64/fpu/math_ldbl.h
index 27f8fce904..fe3b3c3738 100644
--- a/sysdeps/x86_64/fpu/math_ldbl.h
+++ b/sysdeps/x86_64/fpu/math_ldbl.h
@@ -1,5 +1,5 @@
/* Manipulation of the bit representation of 'long double' quantities.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _MATH_LDBL_H_
#define _MATH_LDBL_H_ 1
diff --git a/sysdeps/x86_64/fpu/math_private.h b/sysdeps/x86_64/fpu/math_private.h
deleted file mode 100644
index 13052893ef..0000000000
--- a/sysdeps/x86_64/fpu/math_private.h
+++ /dev/null
@@ -1,101 +0,0 @@
-#ifndef X86_64_MATH_PRIVATE_H
-#define X86_64_MATH_PRIVATE_H 1
-
-/* We can do a few things better on x86-64. */
-
-#if defined __AVX__ || defined SSE2AVX
-# define MOVD "vmovd"
-# define MOVQ "vmovq"
-#else
-# define MOVD "movd"
-# define MOVQ "movq"
-#endif
-
-/* Direct movement of float into integer register. */
-#define EXTRACT_WORDS64(i, d) \
- do { \
- int64_t i_; \
- asm (MOVQ " %1, %0" : "=rm" (i_) : "x" ((double) (d))); \
- (i) = i_; \
- } while (0)
-
-/* And the reverse. */
-#define INSERT_WORDS64(d, i) \
- do { \
- int64_t i_ = i; \
- double d__; \
- asm (MOVQ " %1, %0" : "=x" (d__) : "rm" (i_)); \
- d = d__; \
- } while (0)
-
-/* Direct movement of float into integer register. */
-#define GET_FLOAT_WORD(i, d) \
- do { \
- int i_; \
- asm (MOVD " %1, %0" : "=rm" (i_) : "x" ((float) (d))); \
- (i) = i_; \
- } while (0)
-
-/* And the reverse. */
-#define SET_FLOAT_WORD(f, i) \
- do { \
- int i_ = i; \
- float f__; \
- asm (MOVD " %1, %0" : "=x" (f__) : "rm" (i_)); \
- f = f__; \
- } while (0)
-
-#include <sysdeps/i386/fpu/fenv_private.h>
-#include_next <math_private.h>
-
-#ifdef __SSE4_1__
-extern __always_inline double
-__rint (double d)
-{
- double res;
-# if defined __AVX__ || defined SSE2AVX
- asm ("vroundsd $4, %1, %0, %0" : "=x" (res) : "xm" (d));
-# else
- asm ("roundsd $4, %1, %0" : "=x" (res) : "xm" (d));
-# endif
- return res;
-}
-
-extern __always_inline float
-__rintf (float d)
-{
- float res;
-# if defined __AVX__ || defined SSE2AVX
- asm ("vroundss $4, %1, %0, %0" : "=x" (res) : "xm" (d));
-# else
- asm ("roundss $4, %1, %0" : "=x" (res) : "xm" (d));
-# endif
- return res;
-}
-
-extern __always_inline double
-__floor (double d)
-{
- double res;
-# if defined __AVX__ || defined SSE2AVX
- asm ("vroundsd $1, %1, %0, %0" : "=x" (res) : "xm" (d));
-# else
- asm ("roundsd $1, %1, %0" : "=x" (res) : "xm" (d));
-# endif
- return res;
-}
-
-extern __always_inline float
-__floorf (float d)
-{
- float res;
-# if defined __AVX__ || defined SSE2AVX
- asm ("vroundss $1, %1, %0, %0" : "=x" (res) : "xm" (d));
-# else
- asm ("roundss $1, %1, %0" : "=x" (res) : "xm" (d));
-# endif
- return res;
-}
-#endif /* __SSE4_1__ */
-
-#endif /* X86_64_MATH_PRIVATE_H */
diff --git a/sysdeps/x86_64/fpu/multiarch/Makefile b/sysdeps/x86_64/fpu/multiarch/Makefile
index 9f387248aa..3836574f48 100644
--- a/sysdeps/x86_64/fpu/multiarch/Makefile
+++ b/sysdeps/x86_64/fpu/multiarch/Makefile
@@ -20,7 +20,7 @@ CFLAGS-e_asin-fma.c = -mfma -mavx2
CFLAGS-e_atan2-fma.c = -mfma -mavx2
CFLAGS-e_exp-fma.c = -mfma -mavx2
CFLAGS-e_log-fma.c = -mfma -mavx2
-CFLAGS-e_pow-fma.c = -mfma -mavx2 $(config-cflags-nofma)
+CFLAGS-e_pow-fma.c = -mfma -mavx2
CFLAGS-mpa-fma.c = -mfma -mavx2
CFLAGS-mpatan-fma.c = -mfma -mavx2
CFLAGS-mpatan2-fma.c = -mfma -mavx2
@@ -57,7 +57,7 @@ CFLAGS-e_asin-fma4.c = -mfma4
CFLAGS-e_atan2-fma4.c = -mfma4
CFLAGS-e_exp-fma4.c = -mfma4
CFLAGS-e_log-fma4.c = -mfma4
-CFLAGS-e_pow-fma4.c = -mfma4 $(config-cflags-nofma)
+CFLAGS-e_pow-fma4.c = -mfma4
CFLAGS-mpa-fma4.c = -mfma4
CFLAGS-mpatan-fma4.c = -mfma4
CFLAGS-mpatan2-fma4.c = -mfma4
diff --git a/sysdeps/x86_64/fpu/multiarch/e_asin.c b/sysdeps/x86_64/fpu/multiarch/e_asin.c
index 8d47004e4f..b8eb074b23 100644
--- a/sysdeps/x86_64/fpu/multiarch/e_asin.c
+++ b/sysdeps/x86_64/fpu/multiarch/e_asin.c
@@ -1,5 +1,5 @@
/* Multiple versions of IEEE 754 asin and acos.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
extern double __redirect_ieee754_asin (double);
extern double __redirect_ieee754_acos (double);
diff --git a/sysdeps/x86_64/fpu/multiarch/e_atan2.c b/sysdeps/x86_64/fpu/multiarch/e_atan2.c
index 6c2dd5af37..2dac79091a 100644
--- a/sysdeps/x86_64/fpu/multiarch/e_atan2.c
+++ b/sysdeps/x86_64/fpu/multiarch/e_atan2.c
@@ -1,5 +1,5 @@
/* Multiple versions of IEEE 754 atan.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
extern double __redirect_ieee754_atan2 (double, double);
diff --git a/sysdeps/x86_64/fpu/multiarch/e_exp-avx.c b/sysdeps/x86_64/fpu/multiarch/e_exp-avx.c
index afd917442a..9044823feb 100644
--- a/sysdeps/x86_64/fpu/multiarch/e_exp-avx.c
+++ b/sysdeps/x86_64/fpu/multiarch/e_exp-avx.c
@@ -1,5 +1,5 @@
-#define __ieee754_exp __ieee754_exp_avx
-#define __exp1 __exp1_avx
+#include <math.h>
+#define __exp __ieee754_exp_avx
#define SECTION __attribute__ ((section (".text.avx")))
#include <sysdeps/ieee754/dbl-64/e_exp.c>
diff --git a/sysdeps/x86_64/fpu/multiarch/e_exp-fma.c b/sysdeps/x86_64/fpu/multiarch/e_exp-fma.c
index 765b1b9dd3..9d6e544ee0 100644
--- a/sysdeps/x86_64/fpu/multiarch/e_exp-fma.c
+++ b/sysdeps/x86_64/fpu/multiarch/e_exp-fma.c
@@ -1,5 +1,5 @@
-#define __ieee754_exp __ieee754_exp_fma
-#define __exp1 __exp1_fma
+#include <math.h>
+#define __exp __ieee754_exp_fma
#define SECTION __attribute__ ((section (".text.fma")))
#include <sysdeps/ieee754/dbl-64/e_exp.c>
diff --git a/sysdeps/x86_64/fpu/multiarch/e_exp-fma4.c b/sysdeps/x86_64/fpu/multiarch/e_exp-fma4.c
index 9ac7acad28..25643b6ad7 100644
--- a/sysdeps/x86_64/fpu/multiarch/e_exp-fma4.c
+++ b/sysdeps/x86_64/fpu/multiarch/e_exp-fma4.c
@@ -1,5 +1,5 @@
-#define __ieee754_exp __ieee754_exp_fma4
-#define __exp1 __exp1_fma4
+#include <math.h>
+#define __exp __ieee754_exp_fma4
#define SECTION __attribute__ ((section (".text.fma4")))
#include <sysdeps/ieee754/dbl-64/e_exp.c>
diff --git a/sysdeps/x86_64/fpu/multiarch/e_exp.c b/sysdeps/x86_64/fpu/multiarch/e_exp.c
index 7cd7d1729c..1da616f7f9 100644
--- a/sysdeps/x86_64/fpu/multiarch/e_exp.c
+++ b/sysdeps/x86_64/fpu/multiarch/e_exp.c
@@ -1,5 +1,5 @@
/* Multiple versions of IEEE 754 exp.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+
+#include <math.h>
extern double __redirect_ieee754_exp (double);
@@ -25,5 +27,5 @@ libc_ifunc_redirected (__redirect_ieee754_exp, __ieee754_exp,
IFUNC_SELECTOR ());
strong_alias (__ieee754_exp, __exp_finite)
-#define __ieee754_exp __ieee754_exp_sse2
+#define __exp __ieee754_exp_sse2
#include <sysdeps/ieee754/dbl-64/e_exp.c>
diff --git a/sysdeps/x86_64/fpu/multiarch/e_exp2f.c b/sysdeps/x86_64/fpu/multiarch/e_exp2f.c
index e3a0706839..7c10b16599 100644
--- a/sysdeps/x86_64/fpu/multiarch/e_exp2f.c
+++ b/sysdeps/x86_64/fpu/multiarch/e_exp2f.c
@@ -1,5 +1,5 @@
/* Multiple versions of exp2f.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libm-alias-float.h>
diff --git a/sysdeps/x86_64/fpu/multiarch/e_expf.c b/sysdeps/x86_64/fpu/multiarch/e_expf.c
index 2b7c7ccbd0..077929bde4 100644
--- a/sysdeps/x86_64/fpu/multiarch/e_expf.c
+++ b/sysdeps/x86_64/fpu/multiarch/e_expf.c
@@ -1,5 +1,5 @@
/* Multiple versions of expf.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libm-alias-float.h>
diff --git a/sysdeps/x86_64/fpu/multiarch/e_log-avx.c b/sysdeps/x86_64/fpu/multiarch/e_log-avx.c
index b22a5767be..b9f5be55fb 100644
--- a/sysdeps/x86_64/fpu/multiarch/e_log-avx.c
+++ b/sysdeps/x86_64/fpu/multiarch/e_log-avx.c
@@ -1,4 +1,5 @@
-#define __ieee754_log __ieee754_log_avx
+#include <math.h>
+#define __log __ieee754_log_avx
#define SECTION __attribute__ ((section (".text.avx")))
#include <sysdeps/ieee754/dbl-64/e_log.c>
diff --git a/sysdeps/x86_64/fpu/multiarch/e_log-fma.c b/sysdeps/x86_64/fpu/multiarch/e_log-fma.c
index bce0ee03c2..13b0a2ae4f 100644
--- a/sysdeps/x86_64/fpu/multiarch/e_log-fma.c
+++ b/sysdeps/x86_64/fpu/multiarch/e_log-fma.c
@@ -1,4 +1,5 @@
-#define __ieee754_log __ieee754_log_fma
+#include <math.h>
+#define __log __ieee754_log_fma
#define SECTION __attribute__ ((section (".text.fma")))
#include <sysdeps/ieee754/dbl-64/e_log.c>
diff --git a/sysdeps/x86_64/fpu/multiarch/e_log-fma4.c b/sysdeps/x86_64/fpu/multiarch/e_log-fma4.c
index f458f9c23c..16ef3ab837 100644
--- a/sysdeps/x86_64/fpu/multiarch/e_log-fma4.c
+++ b/sysdeps/x86_64/fpu/multiarch/e_log-fma4.c
@@ -1,4 +1,5 @@
-#define __ieee754_log __ieee754_log_fma4
+#include <math.h>
+#define __log __ieee754_log_fma4
#define SECTION __attribute__ ((section (".text.fma4")))
#include <sysdeps/ieee754/dbl-64/e_log.c>
diff --git a/sysdeps/x86_64/fpu/multiarch/e_log.c b/sysdeps/x86_64/fpu/multiarch/e_log.c
index e0a1b02fae..5973a1d0a6 100644
--- a/sysdeps/x86_64/fpu/multiarch/e_log.c
+++ b/sysdeps/x86_64/fpu/multiarch/e_log.c
@@ -1,5 +1,5 @@
/* Multiple versions of IEEE 754 log.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+
+#include <math.h>
extern double __redirect_ieee754_log (double);
@@ -25,5 +27,5 @@ libc_ifunc_redirected (__redirect_ieee754_log, __ieee754_log,
IFUNC_SELECTOR ());
strong_alias (__ieee754_log, __log_finite)
-#define __ieee754_log __ieee754_log_sse2
+#define __log __ieee754_log_sse2
#include <sysdeps/ieee754/dbl-64/e_log.c>
diff --git a/sysdeps/x86_64/fpu/multiarch/e_log2f.c b/sysdeps/x86_64/fpu/multiarch/e_log2f.c
index 12d0c30dd3..b57041e62a 100644
--- a/sysdeps/x86_64/fpu/multiarch/e_log2f.c
+++ b/sysdeps/x86_64/fpu/multiarch/e_log2f.c
@@ -1,5 +1,5 @@
/* Multiple versions of log2f.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libm-alias-float.h>
diff --git a/sysdeps/x86_64/fpu/multiarch/e_logf.c b/sysdeps/x86_64/fpu/multiarch/e_logf.c
index 224d40a1e4..c149d05684 100644
--- a/sysdeps/x86_64/fpu/multiarch/e_logf.c
+++ b/sysdeps/x86_64/fpu/multiarch/e_logf.c
@@ -1,5 +1,5 @@
/* Multiple versions of logf.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libm-alias-float.h>
diff --git a/sysdeps/x86_64/fpu/multiarch/e_pow-fma.c b/sysdeps/x86_64/fpu/multiarch/e_pow-fma.c
index 73c1e7fb89..2c5bfaeed7 100644
--- a/sysdeps/x86_64/fpu/multiarch/e_pow-fma.c
+++ b/sysdeps/x86_64/fpu/multiarch/e_pow-fma.c
@@ -1,5 +1,5 @@
-#define __ieee754_pow __ieee754_pow_fma
-#define __exp1 __exp1_fma
+#include <math.h>
+#define __pow __ieee754_pow_fma
#define SECTION __attribute__ ((section (".text.fma")))
#include <sysdeps/ieee754/dbl-64/e_pow.c>
diff --git a/sysdeps/x86_64/fpu/multiarch/e_pow-fma4.c b/sysdeps/x86_64/fpu/multiarch/e_pow-fma4.c
index 8971b655ca..7ec1a0ac84 100644
--- a/sysdeps/x86_64/fpu/multiarch/e_pow-fma4.c
+++ b/sysdeps/x86_64/fpu/multiarch/e_pow-fma4.c
@@ -1,5 +1,5 @@
-#define __ieee754_pow __ieee754_pow_fma4
-#define __exp1 __exp1_fma4
+#include <math.h>
+#define __pow __ieee754_pow_fma4
#define SECTION __attribute__ ((section (".text.fma4")))
#include <sysdeps/ieee754/dbl-64/e_pow.c>
diff --git a/sysdeps/x86_64/fpu/multiarch/e_pow.c b/sysdeps/x86_64/fpu/multiarch/e_pow.c
index 084073c936..27e7c47f0b 100644
--- a/sysdeps/x86_64/fpu/multiarch/e_pow.c
+++ b/sysdeps/x86_64/fpu/multiarch/e_pow.c
@@ -1,5 +1,5 @@
/* Multiple versions of IEEE 754 pow.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+
+#include <math.h>
extern double __redirect_ieee754_pow (double, double);
@@ -25,5 +27,5 @@ libc_ifunc_redirected (__redirect_ieee754_pow,
__ieee754_pow, IFUNC_SELECTOR ());
strong_alias (__ieee754_pow, __pow_finite)
-#define __ieee754_pow __ieee754_pow_sse2
+#define __pow __ieee754_pow_sse2
#include <sysdeps/ieee754/dbl-64/e_pow.c>
diff --git a/sysdeps/x86_64/fpu/multiarch/e_powf.c b/sysdeps/x86_64/fpu/multiarch/e_powf.c
index a185006f40..ab35e069a5 100644
--- a/sysdeps/x86_64/fpu/multiarch/e_powf.c
+++ b/sysdeps/x86_64/fpu/multiarch/e_powf.c
@@ -1,5 +1,5 @@
/* Multiple versions of powf.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libm-alias-float.h>
diff --git a/sysdeps/x86_64/fpu/multiarch/ifunc-avx-fma4.h b/sysdeps/x86_64/fpu/multiarch/ifunc-avx-fma4.h
index a5f9375afc..1545d45e6a 100644
--- a/sysdeps/x86_64/fpu/multiarch/ifunc-avx-fma4.h
+++ b/sysdeps/x86_64/fpu/multiarch/ifunc-avx-fma4.h
@@ -1,6 +1,6 @@
/* Common definition for ifunc selections optimized with AVX, AVX2/FMA
and FMA4.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <init-arch.h>
diff --git a/sysdeps/x86_64/fpu/multiarch/ifunc-fma.h b/sysdeps/x86_64/fpu/multiarch/ifunc-fma.h
index 63a8cd221f..a04622d6fd 100644
--- a/sysdeps/x86_64/fpu/multiarch/ifunc-fma.h
+++ b/sysdeps/x86_64/fpu/multiarch/ifunc-fma.h
@@ -1,5 +1,5 @@
/* Common definition for ifunc selections optimized with AVX2/FMA.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <init-arch.h>
diff --git a/sysdeps/x86_64/fpu/multiarch/ifunc-fma4.h b/sysdeps/x86_64/fpu/multiarch/ifunc-fma4.h
index a2526a2ee0..b35b2ca293 100644
--- a/sysdeps/x86_64/fpu/multiarch/ifunc-fma4.h
+++ b/sysdeps/x86_64/fpu/multiarch/ifunc-fma4.h
@@ -1,6 +1,6 @@
/* Common definition for ifunc selections optimized with AVX2/FMA and
FMA4.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <init-arch.h>
diff --git a/sysdeps/x86_64/fpu/multiarch/ifunc-mathvec-avx2.h b/sysdeps/x86_64/fpu/multiarch/ifunc-mathvec-avx2.h
index bd2d32e418..285f73494a 100644
--- a/sysdeps/x86_64/fpu/multiarch/ifunc-mathvec-avx2.h
+++ b/sysdeps/x86_64/fpu/multiarch/ifunc-mathvec-avx2.h
@@ -1,6 +1,6 @@
/* Common definition for libmathvec ifunc selections optimized with
AVX2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <init-arch.h>
diff --git a/sysdeps/x86_64/fpu/multiarch/ifunc-mathvec-avx512.h b/sysdeps/x86_64/fpu/multiarch/ifunc-mathvec-avx512.h
index 174e462cfb..abf2786bf4 100644
--- a/sysdeps/x86_64/fpu/multiarch/ifunc-mathvec-avx512.h
+++ b/sysdeps/x86_64/fpu/multiarch/ifunc-mathvec-avx512.h
@@ -1,6 +1,6 @@
/* Common definition for libmathvec ifunc selections optimized with
AVX512.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <init-arch.h>
diff --git a/sysdeps/x86_64/fpu/multiarch/ifunc-mathvec-sse4_1.h b/sysdeps/x86_64/fpu/multiarch/ifunc-mathvec-sse4_1.h
index c1e70ebfc1..48e1c2afcc 100644
--- a/sysdeps/x86_64/fpu/multiarch/ifunc-mathvec-sse4_1.h
+++ b/sysdeps/x86_64/fpu/multiarch/ifunc-mathvec-sse4_1.h
@@ -1,6 +1,6 @@
/* Common definition for libmathvec ifunc selections optimized with
SSE4.1.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <init-arch.h>
diff --git a/sysdeps/x86_64/fpu/multiarch/ifunc-sse4_1.h b/sysdeps/x86_64/fpu/multiarch/ifunc-sse4_1.h
index a8710ba802..d925786fef 100644
--- a/sysdeps/x86_64/fpu/multiarch/ifunc-sse4_1.h
+++ b/sysdeps/x86_64/fpu/multiarch/ifunc-sse4_1.h
@@ -1,5 +1,5 @@
/* Common definition for ifunc selections optimized with SSE4.1.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <init-arch.h>
diff --git a/sysdeps/x86_64/fpu/multiarch/s_atan.c b/sysdeps/x86_64/fpu/multiarch/s_atan.c
index f9ce8549ab..597143f5b5 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_atan.c
+++ b/sysdeps/x86_64/fpu/multiarch/s_atan.c
@@ -1,5 +1,5 @@
/* Multiple versions of atan.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libm-alias-double.h>
diff --git a/sysdeps/x86_64/fpu/multiarch/s_ceil-c.c b/sysdeps/x86_64/fpu/multiarch/s_ceil-c.c
index 6a5ea3ff27..ada28baa1a 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_ceil-c.c
+++ b/sysdeps/x86_64/fpu/multiarch/s_ceil-c.c
@@ -1,2 +1,2 @@
#define __ceil __ceil_c
-#include <sysdeps/ieee754/dbl-64/wordsize-64/s_ceil.c>
+#include <sysdeps/ieee754/dbl-64/s_ceil.c>
diff --git a/sysdeps/x86_64/fpu/multiarch/s_ceil-sse4_1.S b/sysdeps/x86_64/fpu/multiarch/s_ceil-sse4_1.S
index e90f05b42f..025b7df73e 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_ceil-sse4_1.S
+++ b/sysdeps/x86_64/fpu/multiarch/s_ceil-sse4_1.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.come>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/x86_64/fpu/multiarch/s_ceil.c b/sysdeps/x86_64/fpu/multiarch/s_ceil.c
index 070fcdddea..dbc7800387 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_ceil.c
+++ b/sysdeps/x86_64/fpu/multiarch/s_ceil.c
@@ -1,5 +1,5 @@
/* Multiple versions of __ceil.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,8 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <libm-alias-double.h>
#define ceil __redirect_ceil
diff --git a/sysdeps/x86_64/fpu/multiarch/s_ceilf-sse4_1.S b/sysdeps/x86_64/fpu/multiarch/s_ceilf-sse4_1.S
index c3bd24c5ae..4d2dea9964 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_ceilf-sse4_1.S
+++ b/sysdeps/x86_64/fpu/multiarch/s_ceilf-sse4_1.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.come>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/x86_64/fpu/multiarch/s_ceilf.c b/sysdeps/x86_64/fpu/multiarch/s_ceilf.c
index db0c6c4bc3..4f8d8a4b60 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_ceilf.c
+++ b/sysdeps/x86_64/fpu/multiarch/s_ceilf.c
@@ -1,5 +1,5 @@
/* Multiple versions of __ceilf.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,8 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <libm-alias-float.h>
#define ceilf __redirect_ceilf
diff --git a/sysdeps/x86_64/fpu/multiarch/s_cosf.c b/sysdeps/x86_64/fpu/multiarch/s_cosf.c
index 33959d3d01..fc2a35171c 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_cosf.c
+++ b/sysdeps/x86_64/fpu/multiarch/s_cosf.c
@@ -1,5 +1,5 @@
/* Multiple versions of cosf.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libm-alias-float.h>
diff --git a/sysdeps/x86_64/fpu/multiarch/s_floor-c.c b/sysdeps/x86_64/fpu/multiarch/s_floor-c.c
index 68733b69ef..002d12247e 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_floor-c.c
+++ b/sysdeps/x86_64/fpu/multiarch/s_floor-c.c
@@ -1,3 +1,3 @@
#undef __floor
#define __floor __floor_c
-#include <sysdeps/ieee754/dbl-64/wordsize-64/s_floor.c>
+#include <sysdeps/ieee754/dbl-64/s_floor.c>
diff --git a/sysdeps/x86_64/fpu/multiarch/s_floor-sse4_1.S b/sysdeps/x86_64/fpu/multiarch/s_floor-sse4_1.S
index b3c7aa29ff..d9aef1389d 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_floor-sse4_1.S
+++ b/sysdeps/x86_64/fpu/multiarch/s_floor-sse4_1.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.come>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/x86_64/fpu/multiarch/s_floor.c b/sysdeps/x86_64/fpu/multiarch/s_floor.c
index 58f8ed8eaf..7184fdcea7 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_floor.c
+++ b/sysdeps/x86_64/fpu/multiarch/s_floor.c
@@ -1,5 +1,5 @@
/* Multiple versions of __floor.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,8 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <libm-alias-double.h>
#define floor __redirect_floor
diff --git a/sysdeps/x86_64/fpu/multiarch/s_floorf-sse4_1.S b/sysdeps/x86_64/fpu/multiarch/s_floorf-sse4_1.S
index 43461d3e6b..aaf195dca8 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_floorf-sse4_1.S
+++ b/sysdeps/x86_64/fpu/multiarch/s_floorf-sse4_1.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.come>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/x86_64/fpu/multiarch/s_floorf.c b/sysdeps/x86_64/fpu/multiarch/s_floorf.c
index 5ef2fec2e3..417eacab38 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_floorf.c
+++ b/sysdeps/x86_64/fpu/multiarch/s_floorf.c
@@ -1,5 +1,5 @@
/* Multiple versions of __floorf.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,8 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <libm-alias-float.h>
#define floorf __redirect_floorf
diff --git a/sysdeps/x86_64/fpu/multiarch/s_fma.c b/sysdeps/x86_64/fpu/multiarch/s_fma.c
index 875c76d372..fe444ac848 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_fma.c
+++ b/sysdeps/x86_64/fpu/multiarch/s_fma.c
@@ -1,5 +1,5 @@
/* FMA version of fma.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <config.h>
#include <math.h>
diff --git a/sysdeps/x86_64/fpu/multiarch/s_fmaf.c b/sysdeps/x86_64/fpu/multiarch/s_fmaf.c
index 5f4c2ec0be..754e38ca62 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_fmaf.c
+++ b/sysdeps/x86_64/fpu/multiarch/s_fmaf.c
@@ -1,5 +1,5 @@
/* FMA version of fmaf.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <config.h>
#include <math.h>
diff --git a/sysdeps/x86_64/fpu/multiarch/s_nearbyint-c.c b/sysdeps/x86_64/fpu/multiarch/s_nearbyint-c.c
index f897a2a6a6..4fdeb11291 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_nearbyint-c.c
+++ b/sysdeps/x86_64/fpu/multiarch/s_nearbyint-c.c
@@ -1,3 +1,3 @@
#undef __nearbyint
#define __nearbyint __nearbyint_c
-#include <sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c>
+#include <sysdeps/ieee754/dbl-64/s_nearbyint.c>
diff --git a/sysdeps/x86_64/fpu/multiarch/s_nearbyint-sse4_1.S b/sysdeps/x86_64/fpu/multiarch/s_nearbyint-sse4_1.S
index f9ac36e4f0..a4c4798f08 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_nearbyint-sse4_1.S
+++ b/sysdeps/x86_64/fpu/multiarch/s_nearbyint-sse4_1.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.come>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/x86_64/fpu/multiarch/s_nearbyint.c b/sysdeps/x86_64/fpu/multiarch/s_nearbyint.c
index d92945fd14..f991879964 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_nearbyint.c
+++ b/sysdeps/x86_64/fpu/multiarch/s_nearbyint.c
@@ -1,5 +1,5 @@
/* Multiple versions of __nearbyint.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libm-alias-double.h>
diff --git a/sysdeps/x86_64/fpu/multiarch/s_nearbyintf-sse4_1.S b/sysdeps/x86_64/fpu/multiarch/s_nearbyintf-sse4_1.S
index 2f427da778..e1b236df47 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_nearbyintf-sse4_1.S
+++ b/sysdeps/x86_64/fpu/multiarch/s_nearbyintf-sse4_1.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.come>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/x86_64/fpu/multiarch/s_nearbyintf.c b/sysdeps/x86_64/fpu/multiarch/s_nearbyintf.c
index ba7be27956..04987a675c 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_nearbyintf.c
+++ b/sysdeps/x86_64/fpu/multiarch/s_nearbyintf.c
@@ -1,5 +1,5 @@
/* Multiple versions of __nearbyintf.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libm-alias-float.h>
diff --git a/sysdeps/x86_64/fpu/multiarch/s_rint-c.c b/sysdeps/x86_64/fpu/multiarch/s_rint-c.c
index 162a630ff9..b010150f52 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_rint-c.c
+++ b/sysdeps/x86_64/fpu/multiarch/s_rint-c.c
@@ -1,3 +1,3 @@
#undef __rint
#define __rint __rint_c
-#include <sysdeps/ieee754/dbl-64/wordsize-64/s_rint.c>
+#include <sysdeps/ieee754/dbl-64/s_rint.c>
diff --git a/sysdeps/x86_64/fpu/multiarch/s_rint-sse4_1.S b/sysdeps/x86_64/fpu/multiarch/s_rint-sse4_1.S
index 7d7568a1a0..73240a6fee 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_rint-sse4_1.S
+++ b/sysdeps/x86_64/fpu/multiarch/s_rint-sse4_1.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.come>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/x86_64/fpu/multiarch/s_rint.c b/sysdeps/x86_64/fpu/multiarch/s_rint.c
index f1cb2fed0c..63dfcc3bd3 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_rint.c
+++ b/sysdeps/x86_64/fpu/multiarch/s_rint.c
@@ -1,5 +1,5 @@
/* Multiple versions of __rint.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,8 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <libm-alias-double.h>
#define rint __redirect_rint
diff --git a/sysdeps/x86_64/fpu/multiarch/s_rintf-sse4_1.S b/sysdeps/x86_64/fpu/multiarch/s_rintf-sse4_1.S
index ef5d896f55..b656a21a42 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_rintf-sse4_1.S
+++ b/sysdeps/x86_64/fpu/multiarch/s_rintf-sse4_1.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.come>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/x86_64/fpu/multiarch/s_rintf.c b/sysdeps/x86_64/fpu/multiarch/s_rintf.c
index 41323b3b5b..e81fe328ff 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_rintf.c
+++ b/sysdeps/x86_64/fpu/multiarch/s_rintf.c
@@ -1,5 +1,5 @@
/* Multiple versions of __rintf.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,8 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <libm-alias-float.h>
#define rintf __redirect_rintf
diff --git a/sysdeps/x86_64/fpu/multiarch/s_sin.c b/sysdeps/x86_64/fpu/multiarch/s_sin.c
index b289269240..8091414a65 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_sin.c
+++ b/sysdeps/x86_64/fpu/multiarch/s_sin.c
@@ -1,5 +1,5 @@
/* Multiple versions of sin and cos.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libm-alias-double.h>
diff --git a/sysdeps/x86_64/fpu/multiarch/s_sincosf-fma.c b/sysdeps/x86_64/fpu/multiarch/s_sincosf-fma.c
index 64abe7abca..253dab15d8 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_sincosf-fma.c
+++ b/sysdeps/x86_64/fpu/multiarch/s_sincosf-fma.c
@@ -1,240 +1,2 @@
-/* Compute sine and cosine of argument optimized with vector.
- Copyright (C) 2017 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <math.h>
-#include <math_private.h>
-#include <x86intrin.h>
-#include <libm-alias-float.h>
-#include "s_sincosf.h"
-
#define SINCOSF __sincosf_fma
-
-#ifndef SINCOSF
-# define SINCOSF_FUNC __sincosf
-#else
-# define SINCOSF_FUNC SINCOSF
-#endif
-
-/* Chebyshev constants for sin and cos, range -PI/4 - PI/4. */
-static const __v2df V0 = { -0x1.5555555551cd9p-3, -0x1.ffffffffe98aep-2};
-static const __v2df V1 = { 0x1.1111110c2688bp-7, 0x1.55555545c50c7p-5 };
-static const __v2df V2 = { -0x1.a019f8b4bd1f9p-13, -0x1.6c16b348b6874p-10 };
-static const __v2df V3 = { 0x1.71d7264e6b5b4p-19, 0x1.a00eb9ac43ccp-16 };
-static const __v2df V4 = { -0x1.a947e1674b58ap-26, -0x1.23c97dd8844d7p-22 };
-
-/* Chebyshev constants for sin and cos, range 2^-27 - 2^-5. */
-static const __v2df VC0 = { -0x1.555555543d49dp-3, -0x1.fffffff5cc6fdp-2 };
-static const __v2df VC1 = { 0x1.110f475cec8c5p-7, 0x1.55514b178dac5p-5 };
-
-static const __v2df v2ones = { 1.0, 1.0 };
-
-/* Compute the sine and cosine values using Chebyshev polynomials where
- THETA is the range reduced absolute value of the input
- and it is less than Pi/4,
- N is calculated as trunc(|x|/(Pi/4)) + 1 and it is used to decide
- whether a sine or cosine approximation is more accurate and
- SIGNBIT is used to add the correct sign after the Chebyshev
- polynomial is computed. */
-static void
-reduced_sincos (const double theta, const unsigned int n,
- const unsigned int signbit, float *sinx, float *cosx)
-{
- __v2df v2x, v2sx, v2cx;
- const __v2df v2theta = { theta, theta };
- const __v2df v2theta2 = v2theta * v2theta;
- /* Here sinf() and cosf() are calculated using sin Chebyshev polynomial:
- x+x^3*(S0+x^2*(S1+x^2*(S2+x^2*(S3+x^2*S4)))). */
- v2x = V3 + v2theta2 * V4; /* S3+x^2*S4. */
- v2x = V2 + v2theta2 * v2x; /* S2+x^2*(S3+x^2*S4). */
- v2x = V1 + v2theta2 * v2x; /* S1+x^2*(S2+x^2*(S3+x^2*S4)). */
- v2x = V0 + v2theta2 * v2x; /* S0+x^2*(S1+x^2*(S2+x^2*(S3+x^2*S4))). */
- v2x = v2theta2 * v2x;
- v2cx = v2ones + v2x;
- v2sx = v2theta + v2theta * v2x;
- /* We are operating on |x|, so we need to add back the original
- signbit for sinf. */
- /* Determine positive or negative primary interval. */
- /* Are we in the primary interval of sin or cos? */
- if ((n & 2) == 0)
- {
- const __v2df v2sign =
- {
- ones[((n >> 2) & 1) ^ signbit],
- ones[((n + 2) >> 2) & 1]
- };
- v2cx[0] = v2sx[0];
- v2cx *= v2sign;
- __v4sf v4sx = _mm_cvtpd_ps (v2cx);
- *sinx = v4sx[0];
- *cosx = v4sx[1];
- }
- else
- {
- const __v2df v2sign =
- {
- ones[((n + 2) >> 2) & 1],
- ones[((n >> 2) & 1) ^ signbit]
- };
- v2cx[0] = v2sx[0];
- v2cx *= v2sign;
- __v4sf v4sx = _mm_cvtpd_ps (v2cx);
- *sinx = v4sx[1];
- *cosx = v4sx[0];
- }
-}
-
-void
-SINCOSF_FUNC (float x, float *sinx, float *cosx)
-{
- double theta = x;
- double abstheta = fabs (theta);
- uint32_t ix, xi;
- GET_FLOAT_WORD (xi, x);
- /* |x| */
- ix = xi & 0x7fffffff;
- /* If |x|< Pi/4. */
- if (ix < 0x3f490fdb)
- {
- if (ix >= 0x3d000000) /* |x| >= 2^-5. */
- {
- __v2df v2x, v2sx, v2cx;
- const __v2df v2theta = { theta, theta };
- const __v2df v2theta2 = v2theta * v2theta;
- /* Chebyshev polynomial of the form for sin and cos. */
- v2x = V3 + v2theta2 * V4;
- v2x = V2 + v2theta2 * v2x;
- v2x = V1 + v2theta2 * v2x;
- v2x = V0 + v2theta2 * v2x;
- v2x = v2theta2 * v2x;
- v2cx = v2ones + v2x;
- v2sx = v2theta + v2theta * v2x;
- v2cx[0] = v2sx[0];
- __v4sf v4sx = _mm_cvtpd_ps (v2cx);
- *sinx = v4sx[0];
- *cosx = v4sx[1];
- }
- else if (ix >= 0x32000000) /* |x| >= 2^-27. */
- {
- /* A simpler Chebyshev approximation is close enough for this range:
- for sin: x+x^3*(SS0+x^2*SS1)
- for cos: 1.0+x^2*(CC0+x^3*CC1). */
- __v2df v2x, v2sx, v2cx;
- const __v2df v2theta = { theta, theta };
- const __v2df v2theta2 = v2theta * v2theta;
- v2x = VC0 + v2theta * v2theta2 * VC1;
- v2x = v2theta2 * v2x;
- v2cx = v2ones + v2x;
- v2sx = v2theta + v2theta * v2x;
- v2cx[0] = v2sx[0];
- __v4sf v4sx = _mm_cvtpd_ps (v2cx);
- *sinx = v4sx[0];
- *cosx = v4sx[1];
- }
- else
- {
- /* Handle some special cases. */
- if (ix)
- *sinx = theta - (theta * SMALL);
- else
- *sinx = theta;
- *cosx = 1.0 - abstheta;
- }
- }
- else /* |x| >= Pi/4. */
- {
- unsigned int signbit = xi >> 31;
- if (ix < 0x40e231d6) /* |x| < 9*Pi/4. */
- {
- /* There are cases where FE_UPWARD rounding mode can
- produce a result of abstheta * inv_PI_4 == 9,
- where abstheta < 9pi/4, so the domain for
- pio2_table must go to 5 (9 / 2 + 1). */
- unsigned int n = (abstheta * inv_PI_4) + 1;
- theta = abstheta - pio2_table[n / 2];
- reduced_sincos (theta, n, signbit, sinx, cosx);
- }
- else if (ix < 0x7f800000)
- {
- if (ix < 0x4b000000) /* |x| < 2^23. */
- {
- unsigned int n = ((unsigned int) (abstheta * inv_PI_4)) + 1;
- double x = n / 2;
- theta = (abstheta - x * PI_2_hi) - x * PI_2_lo;
- /* Argument reduction needed. */
- reduced_sincos (theta, n, signbit, sinx, cosx);
- }
- else /* |x| >= 2^23. */
- {
- x = fabsf (x);
- int exponent
- = (ix >> FLOAT_EXPONENT_SHIFT) - FLOAT_EXPONENT_BIAS;
- exponent += 3;
- exponent /= 28;
- double a = invpio4_table[exponent] * x;
- double b = invpio4_table[exponent + 1] * x;
- double c = invpio4_table[exponent + 2] * x;
- double d = invpio4_table[exponent + 3] * x;
- uint64_t l = a;
- l &= ~0x7;
- a -= l;
- double e = a + b;
- l = e;
- e = a - l;
- if (l & 1)
- {
- e -= 1.0;
- e += b;
- e += c;
- e += d;
- e *= M_PI_4;
- reduced_sincos (e, l + 1, signbit, sinx, cosx);
- }
- else
- {
- e += b;
- e += c;
- e += d;
- if (e <= 1.0)
- {
- e *= M_PI_4;
- reduced_sincos (e, l + 1, signbit, sinx, cosx);
- }
- else
- {
- l++;
- e -= 2.0;
- e *= M_PI_4;
- reduced_sincos (e, l + 1, signbit, sinx, cosx);
- }
- }
- }
- }
- else
- {
- if (ix == 0x7f800000)
- __set_errno (EDOM);
- /* sin/cos(Inf or NaN) is NaN. */
- *sinx = *cosx = x - x;
- }
- }
-}
-
-#ifndef SINCOSF
-libm_alias_float (__sincos, sincos)
-#endif
+#include <sysdeps/ieee754/flt-32/s_sincosf.c>
diff --git a/sysdeps/x86_64/fpu/multiarch/s_sincosf-sse2.S b/sysdeps/x86_64/fpu/multiarch/s_sincosf-sse2.S
deleted file mode 100644
index 51d012bb12..0000000000
--- a/sysdeps/x86_64/fpu/multiarch/s_sincosf-sse2.S
+++ /dev/null
@@ -1,2 +0,0 @@
-#define __sincosf __sincosf_sse2
-#include <sysdeps/x86_64/fpu/s_sincosf.S>
diff --git a/sysdeps/x86_64/fpu/multiarch/s_sincosf-sse2.c b/sysdeps/x86_64/fpu/multiarch/s_sincosf-sse2.c
new file mode 100644
index 0000000000..3c6d293803
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/s_sincosf-sse2.c
@@ -0,0 +1,2 @@
+#define SINCOSF __sincosf_sse2
+#include <sysdeps/ieee754/flt-32/s_sincosf.c>
diff --git a/sysdeps/x86_64/fpu/multiarch/s_sincosf.c b/sysdeps/x86_64/fpu/multiarch/s_sincosf.c
index 6cb4295558..57fac94662 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_sincosf.c
+++ b/sysdeps/x86_64/fpu/multiarch/s_sincosf.c
@@ -1,5 +1,5 @@
/* Multiple versions of sincosf.
- Copyright (C) 2017 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libm-alias-float.h>
diff --git a/sysdeps/x86_64/fpu/multiarch/s_sinf.c b/sysdeps/x86_64/fpu/multiarch/s_sinf.c
index 4fdfbd8d3e..8583859315 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_sinf.c
+++ b/sysdeps/x86_64/fpu/multiarch/s_sinf.c
@@ -1,5 +1,5 @@
/* Multiple versions of sinf.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libm-alias-float.h>
diff --git a/sysdeps/x86_64/fpu/multiarch/s_tan.c b/sysdeps/x86_64/fpu/multiarch/s_tan.c
index bb75d8d0bc..973cca99e5 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_tan.c
+++ b/sysdeps/x86_64/fpu/multiarch/s_tan.c
@@ -1,5 +1,5 @@
/* Multiple versions of tan.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libm-alias-double.h>
diff --git a/sysdeps/x86_64/fpu/multiarch/s_trunc-c.c b/sysdeps/x86_64/fpu/multiarch/s_trunc-c.c
index 6204ae3c77..8aa499fbb8 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_trunc-c.c
+++ b/sysdeps/x86_64/fpu/multiarch/s_trunc-c.c
@@ -1,2 +1,2 @@
#define __trunc __trunc_c
-#include <sysdeps/ieee754/dbl-64/wordsize-64/s_trunc.c>
+#include <sysdeps/ieee754/dbl-64/s_trunc.c>
diff --git a/sysdeps/x86_64/fpu/multiarch/s_trunc-sse4_1.S b/sysdeps/x86_64/fpu/multiarch/s_trunc-sse4_1.S
index b8046bfa0c..f783d0ee8f 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_trunc-sse4_1.S
+++ b/sysdeps/x86_64/fpu/multiarch/s_trunc-sse4_1.S
@@ -1,5 +1,5 @@
/* trunc for SSE4.1.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/x86_64/fpu/multiarch/s_trunc.c b/sysdeps/x86_64/fpu/multiarch/s_trunc.c
index a1b0c60630..d93e146aa4 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_trunc.c
+++ b/sysdeps/x86_64/fpu/multiarch/s_trunc.c
@@ -1,5 +1,5 @@
/* Multiple versions of __trunc.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,8 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <libm-alias-double.h>
#define trunc __redirect_trunc
diff --git a/sysdeps/x86_64/fpu/multiarch/s_truncf-sse4_1.S b/sysdeps/x86_64/fpu/multiarch/s_truncf-sse4_1.S
index 2dabc0be57..aedac3f39d 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_truncf-sse4_1.S
+++ b/sysdeps/x86_64/fpu/multiarch/s_truncf-sse4_1.S
@@ -1,5 +1,5 @@
/* truncf for SSE4.1.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/x86_64/fpu/multiarch/s_truncf.c b/sysdeps/x86_64/fpu/multiarch/s_truncf.c
index a7e220bd0c..c134032f58 100644
--- a/sysdeps/x86_64/fpu/multiarch/s_truncf.c
+++ b/sysdeps/x86_64/fpu/multiarch/s_truncf.c
@@ -1,5 +1,5 @@
/* Multiple versions of __truncf.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,8 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+#define NO_MATH_REDIRECT
#include <libm-alias-float.h>
#define truncf __redirect_truncf
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_cos2_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_cos2_core-sse2.S
index a85729807f..c659e92f36 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_cos2_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_cos2_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized cos, vector length is 2.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _ZGVbN2v_cos _ZGVbN2v_cos_sse2
#include "../svml_d_cos2_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_cos2_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_cos2_core.c
index 3ff39eecd7..4fefacc7cf 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_cos2_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_cos2_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized cos, vector length is 2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define SYMBOL_NAME _ZGVbN2v_cos
#include "ifunc-mathvec-sse4_1.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_cos2_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_d_cos2_core_sse4.S
index 10be76e207..618f1b8c08 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_cos2_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_cos2_core_sse4.S
@@ -1,5 +1,5 @@
/* Function cos vectorized with SSE4.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_d_trig_data.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_cos4_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_d_cos4_core-sse.S
index 9f406ea7c9..276e407b51 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_cos4_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_cos4_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized cos, vector length is 4.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _ZGVdN4v_cos _ZGVdN4v_cos_sse_wrapper
#include "../svml_d_cos4_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_cos4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_cos4_core.c
index cb8405201a..d2fa79de19 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_cos4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_cos4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized cos, vector length is 4.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define SYMBOL_NAME _ZGVdN4v_cos
#include "ifunc-mathvec-avx2.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_cos4_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_cos4_core_avx2.S
index 38cdc6bb03..2f28ec23d2 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_cos4_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_cos4_core_avx2.S
@@ -1,5 +1,5 @@
/* Function cos vectorized with AVX2.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_d_trig_data.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_cos8_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_cos8_core-avx2.S
index 081baeeff5..fd95d6a6dd 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_cos8_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_cos8_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized cos, vector length is 8.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _ZGVeN8v_cos _ZGVeN8v_cos_avx2_wrapper
#include "../svml_d_cos8_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_cos8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_cos8_core.c
index 4aa12595bc..2e479c007b 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_cos8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_cos8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized cos, vector length is 8.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define SYMBOL_NAME _ZGVeN8v_cos
#include "ifunc-mathvec-avx512.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_cos8_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_d_cos8_core_avx512.S
index 24e3b36357..82f9a41754 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_cos8_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_cos8_core_avx512.S
@@ -1,5 +1,5 @@
/* Function cos vectorized with AVX-512, KNL and SKX versions.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_d_trig_data.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core-sse2.S
index 3591eb1f19..59ffd0d796 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized exp.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _ZGVbN2v_exp _ZGVbN2v_exp_sse2
#include "../svml_d_exp2_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core.c
index 2cfe8937c9..3ec334d990 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized exp, vector length is 2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define SYMBOL_NAME _ZGVbN2v_exp
#include "ifunc-mathvec-sse4_1.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core_sse4.S
index e98d11b311..387fbf7feb 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core_sse4.S
@@ -1,5 +1,5 @@
/* Function exp vectorized with SSE4.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_d_exp_data.h"
@@ -207,7 +207,7 @@ ENTRY (_ZGVbN2v_exp_sse4)
shlq $4, %r15
movsd 200(%rsp,%r15), %xmm0
- call JUMPTARGET(__exp_finite)
+ call JUMPTARGET(exp)
movsd %xmm0, 264(%rsp,%r15)
jmp .LBL_1_8
@@ -217,7 +217,7 @@ ENTRY (_ZGVbN2v_exp_sse4)
shlq $4, %r15
movsd 192(%rsp,%r15), %xmm0
- call JUMPTARGET(__exp_finite)
+ call JUMPTARGET(exp)
movsd %xmm0, 256(%rsp,%r15)
jmp .LBL_1_7
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core-sse.S
index f8e0b5517a..612c505b68 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized exp.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _ZGVdN4v_exp _ZGVdN4v_exp_sse_wrapper
#include "../svml_d_exp4_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core.c
index 59bb36984a..18c9286579 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized exp, vector length is 4.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define SYMBOL_NAME _ZGVdN4v_exp
#include "ifunc-mathvec-avx2.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core_avx2.S
index 87990f8ad7..93fb77ebea 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core_avx2.S
@@ -1,5 +1,5 @@
/* Function exp vectorized with AVX2.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_d_exp_data.h"
@@ -193,7 +193,7 @@ ENTRY (_ZGVdN4v_exp_avx2)
vmovsd 328(%rsp,%r15), %xmm0
vzeroupper
- call JUMPTARGET(__exp_finite)
+ call JUMPTARGET(exp)
vmovsd %xmm0, 392(%rsp,%r15)
jmp .LBL_1_8
@@ -204,7 +204,7 @@ ENTRY (_ZGVdN4v_exp_avx2)
vmovsd 320(%rsp,%r15), %xmm0
vzeroupper
- call JUMPTARGET(__exp_finite)
+ call JUMPTARGET(exp)
vmovsd %xmm0, 384(%rsp,%r15)
jmp .LBL_1_7
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core-avx2.S
index b1d3cad0e1..c4c2232137 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized exp.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _ZGVeN8v_exp _ZGVeN8v_exp_avx2_wrapper
#include "../svml_d_exp8_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core.c
index cfdc96ec86..3c89c4af1d 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized exp, vector length is 8.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define SYMBOL_NAME _ZGVeN8v_exp
#include "ifunc-mathvec-avx512.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core_avx512.S
index 8dd8a03e4b..ba6b6de490 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core_avx512.S
@@ -1,5 +1,5 @@
/* Function exp vectorized with AVX-512. KNL and SKX versions.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_d_exp_data.h"
@@ -223,7 +223,7 @@ WRAPPER_IMPL_AVX512 _ZGVdN4v_exp
movzbl %r12b, %r15d
shlq $4, %r15
vmovsd 1160(%rsp,%r15), %xmm0
- call JUMPTARGET(__exp_finite)
+ call JUMPTARGET(exp)
vmovsd %xmm0, 1224(%rsp,%r15)
jmp .LBL_1_8
@@ -231,7 +231,7 @@ WRAPPER_IMPL_AVX512 _ZGVdN4v_exp
movzbl %r12b, %r15d
shlq $4, %r15
vmovsd 1152(%rsp,%r15), %xmm0
- call JUMPTARGET(__exp_finite)
+ call JUMPTARGET(exp)
vmovsd %xmm0, 1216(%rsp,%r15)
jmp .LBL_1_7
#endif
@@ -438,7 +438,7 @@ WRAPPER_IMPL_AVX512 _ZGVdN4v_exp
vmovsd 1160(%rsp,%r15), %xmm0
vzeroupper
vmovsd 1160(%rsp,%r15), %xmm0
- call JUMPTARGET(__exp_finite)
+ call JUMPTARGET(exp)
vmovsd %xmm0, 1224(%rsp,%r15)
jmp .LBL_2_8
@@ -448,7 +448,7 @@ WRAPPER_IMPL_AVX512 _ZGVdN4v_exp
vmovsd 1152(%rsp,%r15), %xmm0
vzeroupper
vmovsd 1152(%rsp,%r15), %xmm0
- call JUMPTARGET(__exp_finite)
+ call JUMPTARGET(exp)
vmovsd %xmm0, 1216(%rsp,%r15)
jmp .LBL_2_7
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log2_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_log2_core-sse2.S
index 761a1a537d..77993b3f3a 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_log2_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log2_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized log.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _ZGVbN2v_log _ZGVbN2v_log_sse2
#include "../svml_d_log2_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log2_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_log2_core.c
index c24437a3be..adec113230 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_log2_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log2_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized log, vector length is 2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define SYMBOL_NAME _ZGVbN2v_log
#include "ifunc-mathvec-sse4_1.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log2_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_d_log2_core_sse4.S
index eb854c68d6..e089d15236 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_log2_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log2_core_sse4.S
@@ -1,5 +1,5 @@
/* Function log vectorized with SSE4.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_d_log_data.h"
@@ -211,7 +211,7 @@ ENTRY (_ZGVbN2v_log_sse4)
shlq $4, %r15
movsd 200(%rsp,%r15), %xmm0
- call JUMPTARGET(__log_finite)
+ call JUMPTARGET(log)
movsd %xmm0, 264(%rsp,%r15)
jmp .LBL_1_8
@@ -221,7 +221,7 @@ ENTRY (_ZGVbN2v_log_sse4)
shlq $4, %r15
movsd 192(%rsp,%r15), %xmm0
- call JUMPTARGET(__log_finite)
+ call JUMPTARGET(log)
movsd %xmm0, 256(%rsp,%r15)
jmp .LBL_1_7
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log4_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_d_log4_core-sse.S
index 2460512f78..e99fb80650 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_log4_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log4_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized log.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _ZGVdN4v_log _ZGVdN4v_log_sse_wrapper
#include "../svml_d_log4_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_log4_core.c
index 5751370d65..e8596277f9 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_log4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized log, vector length is 4.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define SYMBOL_NAME _ZGVdN4v_log
#include "ifunc-mathvec-avx2.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log4_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_log4_core_avx2.S
index 81515850e1..39b7eb4ea5 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_log4_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log4_core_avx2.S
@@ -1,5 +1,5 @@
/* Function log vectorized with AVX2.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_d_log_data.h"
@@ -191,7 +191,7 @@ ENTRY (_ZGVdN4v_log_avx2)
vmovsd 328(%rsp,%r15), %xmm0
vzeroupper
- call JUMPTARGET(__log_finite)
+ call JUMPTARGET(log)
vmovsd %xmm0, 392(%rsp,%r15)
jmp .LBL_1_8
@@ -202,7 +202,7 @@ ENTRY (_ZGVdN4v_log_avx2)
vmovsd 320(%rsp,%r15), %xmm0
vzeroupper
- call JUMPTARGET(__log_finite)
+ call JUMPTARGET(log)
vmovsd %xmm0, 384(%rsp,%r15)
jmp .LBL_1_7
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log8_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_log8_core-avx2.S
index ecfbeafb23..a04936fa86 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_log8_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log8_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized log.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _ZGVeN8v_log _ZGVeN8v_log_avx2_wrapper
#include "../svml_d_log8_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_log8_core.c
index 1e796dcfdd..978b496898 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_log8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized log, vector length is 8.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define SYMBOL_NAME _ZGVeN8v_log
#include "ifunc-mathvec-avx512.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_log8_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_d_log8_core_avx512.S
index ae8af8d861..7e12ffadcd 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_log8_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_log8_core_avx512.S
@@ -1,5 +1,5 @@
/* Function log vectorized with AVX-512. KNL and SKX versions.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_d_log_data.h"
@@ -222,7 +222,7 @@ WRAPPER_IMPL_AVX512 _ZGVdN4v_log
movzbl %r12b, %r15d
shlq $4, %r15
vmovsd 1160(%rsp,%r15), %xmm0
- call JUMPTARGET(__log_finite)
+ call JUMPTARGET(log)
vmovsd %xmm0, 1224(%rsp,%r15)
jmp .LBL_1_8
@@ -230,7 +230,7 @@ WRAPPER_IMPL_AVX512 _ZGVdN4v_log
movzbl %r12b, %r15d
shlq $4, %r15
vmovsd 1152(%rsp,%r15), %xmm0
- call JUMPTARGET(__log_finite)
+ call JUMPTARGET(log)
vmovsd %xmm0, 1216(%rsp,%r15)
jmp .LBL_1_7
#endif
@@ -443,7 +443,7 @@ WRAPPER_IMPL_AVX512 _ZGVdN4v_log
vzeroupper
vmovsd 1160(%rsp,%r15), %xmm0
- call JUMPTARGET(__log_finite)
+ call JUMPTARGET(log)
vmovsd %xmm0, 1224(%rsp,%r15)
jmp .LBL_2_8
@@ -455,7 +455,7 @@ WRAPPER_IMPL_AVX512 _ZGVdN4v_log
vzeroupper
vmovsd 1152(%rsp,%r15), %xmm0
- call JUMPTARGET(__log_finite)
+ call JUMPTARGET(log)
vmovsd %xmm0, 1216(%rsp,%r15)
jmp .LBL_2_7
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core-sse2.S
index 2d8ad50681..e6f44a1f3d 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized pow.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _ZGVbN2vv_pow _ZGVbN2vv_pow_sse2
#include "../svml_d_pow2_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core.c
index 3424c0e326..473ae14374 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized pow, vector length is 2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define SYMBOL_NAME _ZGVbN2vv_pow
#include "ifunc-mathvec-sse4_1.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core_sse4.S
index 77828b44d5..9c543204e9 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core_sse4.S
@@ -1,5 +1,5 @@
/* Function pow vectorized with SSE4.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_d_pow_data.h"
@@ -413,7 +413,7 @@ ENTRY (_ZGVbN2vv_pow_sse4)
movsd 72(%rsp,%r15), %xmm0
movsd 136(%rsp,%r15), %xmm1
- call JUMPTARGET(__pow_finite)
+ call JUMPTARGET(pow)
movsd %xmm0, 200(%rsp,%r15)
jmp .LBL_1_8
@@ -424,7 +424,7 @@ ENTRY (_ZGVbN2vv_pow_sse4)
movsd 64(%rsp,%r15), %xmm0
movsd 128(%rsp,%r15), %xmm1
- call JUMPTARGET(__pow_finite)
+ call JUMPTARGET(pow)
movsd %xmm0, 192(%rsp,%r15)
jmp .LBL_1_7
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core-sse.S
index 4dcd14ff20..b9d96f9a30 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized pow.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _ZGVdN4vv_pow _ZGVdN4vv_pow_sse_wrapper
#include "../svml_d_pow4_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core.c
index 447be39401..f8a8fd1a68 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized pow, vector length is 4.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define SYMBOL_NAME _ZGVdN4vv_pow
#include "ifunc-mathvec-avx2.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core_avx2.S
index c43d62f202..4b3e8d64ad 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core_avx2.S
@@ -1,5 +1,5 @@
/* Function pow vectorized with AVX2.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_d_pow_data.h"
@@ -367,7 +367,7 @@ ENTRY (_ZGVdN4vv_pow_avx2)
vmovsd 264(%rsp,%r15), %xmm1
vzeroupper
- call JUMPTARGET(__pow_finite)
+ call JUMPTARGET(pow)
vmovsd %xmm0, 328(%rsp,%r15)
jmp .LBL_1_8
@@ -379,7 +379,7 @@ ENTRY (_ZGVdN4vv_pow_avx2)
vmovsd 256(%rsp,%r15), %xmm1
vzeroupper
- call JUMPTARGET(__pow_finite)
+ call JUMPTARGET(pow)
vmovsd %xmm0, 320(%rsp,%r15)
jmp .LBL_1_7
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core-avx2.S
index 8acf700e76..0fc68996b9 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized pow.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _ZGVeN8vv_pow _ZGVeN8vv_pow_avx2_wrapper
#include "../svml_d_pow8_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core.c
index 62f96965bb..72bd0e965e 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized pow, vector length is 8.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define SYMBOL_NAME _ZGVeN8vv_pow
#include "ifunc-mathvec-avx512.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core_avx512.S
index a28c39b73d..246ae6426b 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core_avx512.S
@@ -1,5 +1,5 @@
/* Function pow vectorized with AVX-512. KNL and SKX versions.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_d_pow_data.h"
@@ -392,7 +392,7 @@ WRAPPER_IMPL_AVX512_ff _ZGVdN4vv_pow
shlq $4, %r15
vmovsd 1160(%rsp,%r15), %xmm0
vmovsd 1224(%rsp,%r15), %xmm1
- call JUMPTARGET(__pow_finite)
+ call JUMPTARGET(pow)
vmovsd %xmm0, 1288(%rsp,%r15)
jmp .LBL_1_8
@@ -401,7 +401,7 @@ WRAPPER_IMPL_AVX512_ff _ZGVdN4vv_pow
shlq $4, %r15
vmovsd 1152(%rsp,%r15), %xmm0
vmovsd 1216(%rsp,%r15), %xmm1
- call JUMPTARGET(__pow_finite)
+ call JUMPTARGET(pow)
vmovsd %xmm0, 1280(%rsp,%r15)
jmp .LBL_1_7
@@ -720,7 +720,7 @@ WRAPPER_IMPL_AVX512_ff _ZGVdN4vv_pow
vzeroupper
vmovsd 1160(%rsp,%r15), %xmm0
- call JUMPTARGET(__pow_finite)
+ call JUMPTARGET(pow)
vmovsd %xmm0, 1288(%rsp,%r15)
jmp .LBL_2_8
@@ -732,7 +732,7 @@ WRAPPER_IMPL_AVX512_ff _ZGVdN4vv_pow
vzeroupper
vmovsd 1152(%rsp,%r15), %xmm0
- call JUMPTARGET(__pow_finite)
+ call JUMPTARGET(pow)
vmovsd %xmm0, 1280(%rsp,%r15)
jmp .LBL_2_7
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sin2_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_sin2_core-sse2.S
index cb7b31aa1c..8173e31d54 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_sin2_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sin2_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized sin.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _ZGVbN2v_sin _ZGVbN2v_sin_sse2
#include "../svml_d_sin2_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sin2_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_sin2_core.c
index 1c5788f205..c8bb82a33a 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_sin2_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sin2_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized sin, vector length is 2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define SYMBOL_NAME _ZGVbN2v_sin
#include "ifunc-mathvec-sse4_1.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sin2_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_d_sin2_core_sse4.S
index 15980e9eeb..f505e12bf3 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_sin2_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sin2_core_sse4.S
@@ -1,5 +1,5 @@
/* Function sin vectorized with SSE4.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_d_trig_data.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sin4_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_d_sin4_core-sse.S
index 07fae6f3b4..c867f02b2c 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_sin4_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sin4_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized sin, vector length is 4.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _ZGVdN4v_sin _ZGVdN4v_sin_sse_wrapper
#include "../svml_d_sin4_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sin4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_sin4_core.c
index b5933914aa..def415594b 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_sin4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sin4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized sin, vector length is 4.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define SYMBOL_NAME _ZGVdN4v_sin
#include "ifunc-mathvec-avx2.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sin4_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_sin4_core_avx2.S
index 4f0917c56d..8b41590702 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_sin4_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sin4_core_avx2.S
@@ -1,5 +1,5 @@
/* Function sin vectorized with AVX2.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_d_trig_data.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sin8_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_sin8_core-avx2.S
index b64c3390d6..afbf892560 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_sin8_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sin8_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized sin.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,10 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
-#include <init-arch.h>
#define _ZGVeN8v_sin _ZGVeN8v_sin_avx2_wrapper
#include "../svml_d_sin8_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sin8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_sin8_core.c
index 57023d8494..a6390f6b66 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_sin8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sin8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized sin, vector length is 8.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define SYMBOL_NAME _ZGVeN8v_sin
#include "ifunc-mathvec-avx512.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sin8_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_d_sin8_core_avx512.S
index 2d4b14fd1b..606745ff84 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_sin8_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sin8_core_avx512.S
@@ -1,5 +1,5 @@
/* Function sin vectorized with AVX-512, KNL and SKX versions.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_d_trig_data.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sincos2_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_sincos2_core-sse2.S
index ab7f9c500d..5592508e14 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_sincos2_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sincos2_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized sincos.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _ZGVbN2vvv_sincos _ZGVbN2vvv_sincos_sse2
#include "../svml_d_sincos2_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sincos2_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_sincos2_core.c
index f373bb40a3..5d95cea6fd 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_sincos2_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sincos2_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized sincos, vector length is 2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define SYMBOL_NAME _ZGVbN2vvv_sincos
#include "ifunc-mathvec-sse4_1.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sincos2_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_d_sincos2_core_sse4.S
index b4dfa37898..76181cf58b 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_sincos2_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sincos2_core_sse4.S
@@ -1,5 +1,5 @@
/* Function sincos vectorized with SSE4.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_d_trig_data.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sincos4_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_d_sincos4_core-sse.S
index 10b4a2cf16..98ee2aca54 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_sincos4_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sincos4_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized sincos.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _ZGVdN4vvv_sincos _ZGVdN4vvv_sincos_sse_wrapper
#include "../svml_d_sincos4_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sincos4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_sincos4_core.c
index 1fabd7b471..3f8e9f18db 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_sincos4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sincos4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized sincos, vector length is 4.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define SYMBOL_NAME _ZGVdN4vvv_sincos
#include "ifunc-mathvec-avx2.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sincos4_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_sincos4_core_avx2.S
index d56aa96ac9..ac876b727f 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_sincos4_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sincos4_core_avx2.S
@@ -1,5 +1,5 @@
/* Function sincos vectorized with AVX2.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_d_trig_data.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sincos8_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_d_sincos8_core-avx2.S
index 8cf88f6461..be7f8180d2 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_sincos8_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sincos8_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized sincos.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _ZGVeN8vvv_sincos _ZGVeN8vvv_sincos_avx2_wrapper
#include "../svml_d_sincos8_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sincos8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_d_sincos8_core.c
index 1409872ed2..f54e8c0737 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_sincos8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sincos8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized sincos, vector length is 8.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define SYMBOL_NAME _ZGVeN8vvv_sincos
#include "ifunc-mathvec-avx512.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_d_sincos8_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_d_sincos8_core_avx512.S
index 2df626c0c1..06631ab809 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_d_sincos8_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_d_sincos8_core_avx512.S
@@ -1,5 +1,5 @@
/* Function sincos vectorized with AVX-512. KNL and SKX versions.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_d_trig_data.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_cosf16_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_cosf16_core-avx2.S
index f01f89f294..325a395f04 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_cosf16_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_cosf16_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized cosf.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _ZGVeN16v_cosf _ZGVeN16v_cosf_avx2_wrapper
#include "../svml_s_cosf16_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_cosf16_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_cosf16_core.c
index 5bd0441b16..d438d81577 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_cosf16_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_cosf16_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized cosf, vector length is 16.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define SYMBOL_NAME _ZGVeN16v_cosf
#include "ifunc-mathvec-avx512.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_cosf16_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_s_cosf16_core_avx512.S
index 6ea1137b42..31a26639cb 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_cosf16_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_cosf16_core_avx512.S
@@ -1,5 +1,5 @@
/* Function cosf vectorized with AVX-512. KNL and SKX versions.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_s_trig_data.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_cosf4_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_cosf4_core-sse2.S
index 727189f8e6..02c424861e 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_cosf4_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_cosf4_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized cosf, vector length is 4.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _ZGVbN4v_cosf _ZGVbN4v_cosf_sse2
#include "../svml_s_cosf4_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_cosf4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_cosf4_core.c
index dde470af5d..af0f753d84 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_cosf4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_cosf4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized cosf, vector length is 4.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define SYMBOL_NAME _ZGVbN4v_cosf
#include "ifunc-mathvec-sse4_1.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_cosf4_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_s_cosf4_core_sse4.S
index f4e0553bb3..4f5f53bba7 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_cosf4_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_cosf4_core_sse4.S
@@ -1,5 +1,5 @@
/* Function cosf vectorized with SSE4.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_s_trig_data.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_cosf8_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_s_cosf8_core-sse.S
index 1e1a5540c3..23ae3b336f 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_cosf8_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_cosf8_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized cosf, vector length is 8.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _ZGVdN8v_cosf _ZGVdN8v_cosf_sse_wrapper
#include "../svml_s_cosf8_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_cosf8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_cosf8_core.c
index 56531b215a..8f60b06dcf 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_cosf8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_cosf8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized cosf, vector length is 8.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define SYMBOL_NAME _ZGVdN8v_cosf
#include "ifunc-mathvec-avx2.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_cosf8_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_cosf8_core_avx2.S
index dbff4a7b7e..6b91316722 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_cosf8_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_cosf8_core_avx2.S
@@ -1,5 +1,5 @@
/* Function cosf vectorized with AVX2.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_expf16_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_expf16_core-avx2.S
index e0b7fd787f..ec6e36529a 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_expf16_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_expf16_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized expf.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,10 +14,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
-#include <init-arch.h>
#define _ZGVeN16v_expf _ZGVeN16v_expf_avx2_wrapper
#include "../svml_s_expf16_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_expf16_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_expf16_core.c
index d358d93546..c8f0d42911 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_expf16_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_expf16_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized expf, vector length is 16.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define SYMBOL_NAME _ZGVeN16v_expf
#include "ifunc-mathvec-avx512.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_expf16_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_s_expf16_core_avx512.S
index 89ba0df28f..6a78965fb8 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_expf16_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_expf16_core_avx512.S
@@ -1,5 +1,5 @@
/* Function expf vectorized with AVX-512. KNL and SKX versions.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_s_expf_data.h"
@@ -212,14 +212,14 @@ WRAPPER_IMPL_AVX512 _ZGVdN8v_expf
cfi_restore_state
movzbl %r12b, %r15d
vmovss 1156(%rsp,%r15,8), %xmm0
- call JUMPTARGET(__expf_finite)
+ call JUMPTARGET(expf)
vmovss %xmm0, 1220(%rsp,%r15,8)
jmp .LBL_1_8
.LBL_1_12:
movzbl %r12b, %r15d
vmovss 1152(%rsp,%r15,8), %xmm0
- call JUMPTARGET(__expf_finite)
+ call JUMPTARGET(expf)
vmovss %xmm0, 1216(%rsp,%r15,8)
jmp .LBL_1_7
@@ -422,7 +422,7 @@ WRAPPER_IMPL_AVX512 _ZGVdN8v_expf
vzeroupper
vmovss 1156(%rsp,%r15,8), %xmm0
- call JUMPTARGET(__expf_finite)
+ call JUMPTARGET(expf)
vmovss %xmm0, 1220(%rsp,%r15,8)
jmp .LBL_2_8
@@ -433,7 +433,7 @@ WRAPPER_IMPL_AVX512 _ZGVdN8v_expf
vzeroupper
vmovss 1152(%rsp,%r15,8), %xmm0
- call JUMPTARGET(__expf_finite)
+ call JUMPTARGET(expf)
vmovss %xmm0, 1216(%rsp,%r15,8)
jmp .LBL_2_7
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_expf4_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_expf4_core-sse2.S
index 8f57e4bbd9..1c0da6fced 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_expf4_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_expf4_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized expf.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _ZGVbN4v_expf _ZGVbN4v_expf_sse2
#include "../svml_s_expf4_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_expf4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_expf4_core.c
index 82befe0b5d..1c62a22cda 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_expf4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_expf4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized expf, vector length is 4.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define SYMBOL_NAME _ZGVbN4v_expf
#include "ifunc-mathvec-sse4_1.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_expf4_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_s_expf4_core_sse4.S
index 254ec94096..53fbd98365 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_expf4_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_expf4_core_sse4.S
@@ -1,5 +1,5 @@
/* Function expf vectorized with SSE4.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_s_expf_data.h"
@@ -195,7 +195,7 @@ ENTRY (_ZGVbN4v_expf_sse4)
movzbl %r12b, %r15d
movss 196(%rsp,%r15,8), %xmm0
- call JUMPTARGET(__expf_finite)
+ call JUMPTARGET(expf)
movss %xmm0, 260(%rsp,%r15,8)
jmp .LBL_1_8
@@ -204,7 +204,7 @@ ENTRY (_ZGVbN4v_expf_sse4)
movzbl %r12b, %r15d
movss 192(%rsp,%r15,8), %xmm0
- call JUMPTARGET(__expf_finite)
+ call JUMPTARGET(expf)
movss %xmm0, 256(%rsp,%r15,8)
jmp .LBL_1_7
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_expf8_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_s_expf8_core-sse.S
index 459699c80c..2b29ebd8fe 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_expf8_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_expf8_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized expf.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _ZGVdN8v_expf _ZGVdN8v_expf_sse_wrapper
#include "../svml_s_expf8_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_expf8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_expf8_core.c
index 0b8a47ede0..6f2f101b20 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_expf8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_expf8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized expf, vector length is 8.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define SYMBOL_NAME _ZGVdN8v_expf
#include "ifunc-mathvec-avx2.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_expf8_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_expf8_core_avx2.S
index ae1d5317e4..a0868fc4e2 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_expf8_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_expf8_core_avx2.S
@@ -1,5 +1,5 @@
/* Function expf vectorized with AVX2.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_s_expf_data.h"
@@ -184,7 +184,7 @@ ENTRY(_ZGVdN8v_expf_avx2)
vmovss 324(%rsp,%r15,8), %xmm0
vzeroupper
- call JUMPTARGET(__expf_finite)
+ call JUMPTARGET(expf)
vmovss %xmm0, 388(%rsp,%r15,8)
jmp .LBL_1_8
@@ -194,7 +194,7 @@ ENTRY(_ZGVdN8v_expf_avx2)
vmovss 320(%rsp,%r15,8), %xmm0
vzeroupper
- call JUMPTARGET(__expf_finite)
+ call JUMPTARGET(expf)
vmovss %xmm0, 384(%rsp,%r15,8)
jmp .LBL_1_7
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_logf16_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_logf16_core-avx2.S
index b23bd12fa0..8eda445bce 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_logf16_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_logf16_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized logf.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _ZGVeN16v_logf _ZGVeN16v_logf_avx2_wrapper
#include "../svml_s_logf16_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_logf16_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_logf16_core.c
index fec61883b4..7386c9135d 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_logf16_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_logf16_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized logf, vector length is 16.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define SYMBOL_NAME _ZGVeN16v_logf
#include "ifunc-mathvec-avx512.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_logf16_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_s_logf16_core_avx512.S
index 4cf0a96fe4..a32fd1f403 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_logf16_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_logf16_core_avx512.S
@@ -1,5 +1,5 @@
/* Function logf vectorized with AVX-512. KNL and SKX versions.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_s_logf_data.h"
@@ -197,14 +197,14 @@ WRAPPER_IMPL_AVX512 _ZGVdN8v_logf
cfi_restore_state
movzbl %r12b, %r15d
vmovss 1156(%rsp,%r15,8), %xmm0
- call JUMPTARGET(__logf_finite)
+ call JUMPTARGET(logf)
vmovss %xmm0, 1220(%rsp,%r15,8)
jmp .LBL_1_8
.LBL_1_12:
movzbl %r12b, %r15d
vmovss 1152(%rsp,%r15,8), %xmm0
- call JUMPTARGET(__logf_finite)
+ call JUMPTARGET(logf)
vmovss %xmm0, 1216(%rsp,%r15,8)
jmp .LBL_1_7
#endif
@@ -391,7 +391,7 @@ WRAPPER_IMPL_AVX512 _ZGVdN8v_logf
vzeroupper
vmovss 1156(%rsp,%r15,8), %xmm0
- call JUMPTARGET(__logf_finite)
+ call JUMPTARGET(logf)
vmovss %xmm0, 1220(%rsp,%r15,8)
jmp .LBL_2_8
@@ -402,7 +402,7 @@ WRAPPER_IMPL_AVX512 _ZGVdN8v_logf
vzeroupper
vmovss 1152(%rsp,%r15,8), %xmm0
- call JUMPTARGET(__logf_finite)
+ call JUMPTARGET(logf)
vmovss %xmm0, 1216(%rsp,%r15,8)
jmp .LBL_2_7
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_logf4_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_logf4_core-sse2.S
index 2c2331e1d8..4433446208 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_logf4_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_logf4_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized logf.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _ZGVbN4v_logf _ZGVbN4v_logf_sse2
#include "../svml_s_logf4_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_logf4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_logf4_core.c
index f249c351bd..f72eb6bdfc 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_logf4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_logf4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized logf, vector length is 4.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define SYMBOL_NAME _ZGVbN4v_logf
#include "ifunc-mathvec-sse4_1.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_logf4_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_s_logf4_core_sse4.S
index 651eb5eb1a..347513a2a6 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_logf4_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_logf4_core_sse4.S
@@ -1,5 +1,5 @@
/* Function logf vectorized with SSE4.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_s_logf_data.h"
@@ -177,7 +177,7 @@ ENTRY (_ZGVbN4v_logf_sse4)
movzbl %r12b, %r15d
movss 196(%rsp,%r15,8), %xmm0
- call JUMPTARGET(__logf_finite)
+ call JUMPTARGET(logf)
movss %xmm0, 260(%rsp,%r15,8)
jmp .LBL_1_8
@@ -186,7 +186,7 @@ ENTRY (_ZGVbN4v_logf_sse4)
movzbl %r12b, %r15d
movss 192(%rsp,%r15,8), %xmm0
- call JUMPTARGET(__logf_finite)
+ call JUMPTARGET(logf)
movss %xmm0, 256(%rsp,%r15,8)
jmp .LBL_1_7
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_logf8_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_s_logf8_core-sse.S
index 862379277b..d4268a1e31 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_logf8_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_logf8_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized logf.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _ZGVdN8v_logf _ZGVdN8v_logf_sse_wrapper
#include "../svml_s_logf8_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_logf8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_logf8_core.c
index dbd29657ca..a32fbb8985 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_logf8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_logf8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized logf, vector length is 8.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define SYMBOL_NAME _ZGVdN8v_logf
#include "ifunc-mathvec-avx2.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_logf8_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_logf8_core_avx2.S
index c7f5448fcb..9462edffe6 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_logf8_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_logf8_core_avx2.S
@@ -1,5 +1,5 @@
/* Function logf vectorized with AVX2.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_s_logf_data.h"
@@ -166,7 +166,7 @@ ENTRY(_ZGVdN8v_logf_avx2)
vmovss 324(%rsp,%r15,8), %xmm0
vzeroupper
- call JUMPTARGET(__logf_finite)
+ call JUMPTARGET(logf)
vmovss %xmm0, 388(%rsp,%r15,8)
jmp .LBL_1_8
@@ -176,7 +176,7 @@ ENTRY(_ZGVdN8v_logf_avx2)
vmovss 320(%rsp,%r15,8), %xmm0
vzeroupper
- call JUMPTARGET(__logf_finite)
+ call JUMPTARGET(logf)
vmovss %xmm0, 384(%rsp,%r15,8)
jmp .LBL_1_7
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_powf16_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_powf16_core-avx2.S
index de705c8632..a10c404f46 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_powf16_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_powf16_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized powf.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _ZGVeN16vv_powf _ZGVeN16vv_powf_avx2_wrapper
#include "../svml_s_powf16_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_powf16_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_powf16_core.c
index 91ea810441..ca87957071 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_powf16_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_powf16_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized powf, vector length is 16.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define SYMBOL_NAME _ZGVeN16vv_powf
#include "ifunc-mathvec-avx512.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_powf16_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_s_powf16_core_avx512.S
index bdcd50afe1..0356ea93f4 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_powf16_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_powf16_core_avx512.S
@@ -1,5 +1,5 @@
/* Function powf vectorized with AVX-512. KNL and SKX versions.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_s_powf_data.h"
@@ -344,7 +344,7 @@ WRAPPER_IMPL_AVX512_ff _ZGVdN8vv_powf
movzbl %r12b, %r15d
vmovss 1156(%rsp,%r15,8), %xmm0
vmovss 1220(%rsp,%r15,8), %xmm1
- call JUMPTARGET(__powf_finite)
+ call JUMPTARGET(powf)
vmovss %xmm0, 1284(%rsp,%r15,8)
jmp .LBL_1_8
@@ -352,7 +352,7 @@ WRAPPER_IMPL_AVX512_ff _ZGVdN8vv_powf
movzbl %r12b, %r15d
vmovss 1152(%rsp,%r15,8), %xmm0
vmovss 1216(%rsp,%r15,8), %xmm1
- call JUMPTARGET(__powf_finite)
+ call JUMPTARGET(powf)
vmovss %xmm0, 1280(%rsp,%r15,8)
jmp .LBL_1_7
#endif
@@ -629,7 +629,7 @@ WRAPPER_IMPL_AVX512_ff _ZGVdN8vv_powf
vmovss 1156(%rsp,%r15,8), %xmm1
vzeroupper
vmovss 1092(%rsp,%r15,8), %xmm0
- call JUMPTARGET(__powf_finite)
+ call JUMPTARGET(powf)
vmovss %xmm0, 1220(%rsp,%r15,8)
jmp .LBL_2_8
@@ -638,7 +638,7 @@ WRAPPER_IMPL_AVX512_ff _ZGVdN8vv_powf
vmovss 1152(%rsp,%r15,8), %xmm1
vzeroupper
vmovss 1088(%rsp,%r15,8), %xmm0
- call JUMPTARGET(__powf_finite)
+ call JUMPTARGET(powf)
vmovss %xmm0, 1216(%rsp,%r15,8)
jmp .LBL_2_7
#endif
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_powf4_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_powf4_core-sse2.S
index b6789a621d..1306e7a2fb 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_powf4_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_powf4_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized powf.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _ZGVbN4vv_powf _ZGVbN4vv_powf_sse2
#include "../svml_s_powf4_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_powf4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_powf4_core.c
index 8149d7c991..8efd8325cc 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_powf4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_powf4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized powf, vector length is 4.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define SYMBOL_NAME _ZGVbN4vv_powf
#include "ifunc-mathvec-sse4_1.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_powf4_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_s_powf4_core_sse4.S
index bc59545c98..9ae85979a9 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_powf4_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_powf4_core_sse4.S
@@ -1,5 +1,5 @@
/* Function powf vectorized with SSE4.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_s_powf_data.h"
@@ -356,7 +356,7 @@ ENTRY (_ZGVbN4vv_powf_sse4)
movss 68(%rsp,%r15,8), %xmm0
movss 132(%rsp,%r15,8), %xmm1
- call JUMPTARGET(__powf_finite)
+ call JUMPTARGET(powf)
movss %xmm0, 196(%rsp,%r15,8)
jmp .LBL_1_8
@@ -366,7 +366,7 @@ ENTRY (_ZGVbN4vv_powf_sse4)
movss 64(%rsp,%r15,8), %xmm0
movss 128(%rsp,%r15,8), %xmm1
- call JUMPTARGET(__powf_finite)
+ call JUMPTARGET(powf)
movss %xmm0, 192(%rsp,%r15,8)
jmp .LBL_1_7
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_powf8_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_s_powf8_core-sse.S
index 48da6d25c7..647fd0d3fb 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_powf8_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_powf8_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized powf.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _ZGVdN8vv_powf _ZGVdN8vv_powf_sse_wrapper
#include "../svml_s_powf8_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_powf8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_powf8_core.c
index 0da188180e..943de4d108 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_powf8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_powf8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized sinf, vector length is 8.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define SYMBOL_NAME _ZGVdN8vv_powf
#include "ifunc-mathvec-avx2.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_powf8_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_powf8_core_avx2.S
index 53a4b4bc2b..23f36227bd 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_powf8_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_powf8_core_avx2.S
@@ -1,5 +1,5 @@
/* Function powf vectorized with AVX2.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_s_powf_data.h"
@@ -317,7 +317,7 @@ ENTRY(_ZGVdN8vv_powf_avx2)
vmovss 132(%rsp,%r15,8), %xmm1
vzeroupper
- call JUMPTARGET(__powf_finite)
+ call JUMPTARGET(powf)
vmovss %xmm0, 196(%rsp,%r15,8)
jmp .LBL_1_8
@@ -328,7 +328,7 @@ ENTRY(_ZGVdN8vv_powf_avx2)
vmovss 128(%rsp,%r15,8), %xmm1
vzeroupper
- call JUMPTARGET(__powf_finite)
+ call JUMPTARGET(powf)
vmovss %xmm0, 192(%rsp,%r15,8)
jmp .LBL_1_7
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf16_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf16_core-avx2.S
index c677e3f1cf..dfc2e2eb4c 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf16_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf16_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized sincosf.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _ZGVeN16vvv_sincosf _ZGVeN16vvv_sincosf_avx2_wrapper
#include "../svml_s_sincosf16_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf16_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf16_core.c
index b753be6bbd..45b88c48e6 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf16_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf16_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized sincosf, vector length is 16.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define SYMBOL_NAME _ZGVeN16vvv_sincosf
#include "ifunc-mathvec-avx512.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf16_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf16_core_avx512.S
index 5fa4bc412a..66224ec40b 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf16_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf16_core_avx512.S
@@ -1,5 +1,5 @@
/* Function sincosf vectorized with AVX-512. KNL and SKX versions.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_s_trig_data.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf4_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf4_core-sse2.S
index cc718b3a2e..7915771a35 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf4_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf4_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized sincosf.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _ZGVbN4vvv_sincosf _ZGVbN4vvv_sincosf_sse2
#include "../svml_s_sincosf4_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf4_core.c
index 705d96a8fb..44fabc45a4 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized sincosf, vector length is 4.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define SYMBOL_NAME _ZGVbN4vvv_sincosf
#include "ifunc-mathvec-sse4_1.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf4_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf4_core_sse4.S
index d758ceeb30..c457827491 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf4_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf4_core_sse4.S
@@ -1,5 +1,5 @@
/* Function sincosf vectorized with SSE4.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_s_trig_data.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf8_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf8_core-sse.S
index 348d1e6619..ba8c0d7364 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf8_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf8_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized sincosf.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _ZGVdN8vvv_sincosf _ZGVdN8vvv_sincosf_sse_wrapper
#include "../svml_s_sincosf8_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf8_core.c
index 74f3d3f041..785b34777d 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized sincosf, vector length is 8.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define SYMBOL_NAME _ZGVdN8vvv_sincosf
#include "ifunc-mathvec-avx2.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf8_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf8_core_avx2.S
index 8b4b92dd94..70712cdedf 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf8_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sincosf8_core_avx2.S
@@ -1,5 +1,5 @@
/* Function sincosf vectorized with AVX2.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_s_trig_data.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sinf16_core-avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_sinf16_core-avx2.S
index fa521b9dac..76017149b7 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_sinf16_core-avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sinf16_core-avx2.S
@@ -1,5 +1,5 @@
/* AVX2 version of vectorized sinf.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _ZGVeN16v_sinf _ZGVeN16v_sinf_avx2_wrapper
#include "../svml_s_sinf16_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sinf16_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_sinf16_core.c
index 97e5b58284..7ab95bda52 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_sinf16_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sinf16_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized sinf, vector length is 16.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define SYMBOL_NAME _ZGVeN16v_sinf
#include "ifunc-mathvec-avx512.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sinf16_core_avx512.S b/sysdeps/x86_64/fpu/multiarch/svml_s_sinf16_core_avx512.S
index 141f747eb5..61ce86619b 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_sinf16_core_avx512.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sinf16_core_avx512.S
@@ -1,5 +1,5 @@
/* Function sinf vectorized with AVX-512. KNL and SKX versions.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_s_trig_data.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sinf4_core-sse2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_sinf4_core-sse2.S
index 1d2e65c39d..b9d388f206 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_sinf4_core-sse2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sinf4_core-sse2.S
@@ -1,5 +1,5 @@
/* SSE2 version of vectorized sinf.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _ZGVbN4v_sinf _ZGVbN4v_sinf_sse2
#include "../svml_s_sinf4_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sinf4_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_sinf4_core.c
index 93b8bfebbf..6b3da68387 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_sinf4_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sinf4_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized sinf, vector length is 4.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define SYMBOL_NAME _ZGVbN4v_sinf
#include "ifunc-mathvec-sse4_1.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sinf4_core_sse4.S b/sysdeps/x86_64/fpu/multiarch/svml_s_sinf4_core_sse4.S
index 39a4c92235..13bd8665ad 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_sinf4_core_sse4.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sinf4_core_sse4.S
@@ -1,5 +1,5 @@
/* Function sinf vectorized with SSE4.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sinf8_core-sse.S b/sysdeps/x86_64/fpu/multiarch/svml_s_sinf8_core-sse.S
index f2af3a0b4b..735f43a4a0 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_sinf8_core-sse.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sinf8_core-sse.S
@@ -1,5 +1,5 @@
/* SSE version of vectorized sinf, vector length is 8.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _ZGVdN8v_sinf _ZGVdN8v_sinf_sse_wrapper
#include "../svml_s_sinf8_core.S"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sinf8_core.c b/sysdeps/x86_64/fpu/multiarch/svml_s_sinf8_core.c
index cf13b6647c..0ad22aa48d 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_sinf8_core.c
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sinf8_core.c
@@ -1,5 +1,5 @@
/* Multiple versions of vectorized sinf, vector length is 8.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define SYMBOL_NAME _ZGVdN8v_sinf
#include "ifunc-mathvec-avx2.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/svml_s_sinf8_core_avx2.S b/sysdeps/x86_64/fpu/multiarch/svml_s_sinf8_core_avx2.S
index 5f7a95e9ad..bc8d63b8c9 100644
--- a/sysdeps/x86_64/fpu/multiarch/svml_s_sinf8_core_avx2.S
+++ b/sysdeps/x86_64/fpu/multiarch/svml_s_sinf8_core_avx2.S
@@ -1,5 +1,5 @@
/* Function sinf vectorized with AVX2.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_s_trig_data.h"
diff --git a/sysdeps/x86_64/fpu/multiarch/w_exp.c b/sysdeps/x86_64/fpu/multiarch/w_exp.c
new file mode 100644
index 0000000000..27eee98a0a
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/w_exp.c
@@ -0,0 +1 @@
+#include <sysdeps/../math/w_exp.c>
diff --git a/sysdeps/x86_64/fpu/multiarch/w_log.c b/sysdeps/x86_64/fpu/multiarch/w_log.c
new file mode 100644
index 0000000000..9b2b018711
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/w_log.c
@@ -0,0 +1 @@
+#include <sysdeps/../math/w_log.c>
diff --git a/sysdeps/x86_64/fpu/multiarch/w_pow.c b/sysdeps/x86_64/fpu/multiarch/w_pow.c
new file mode 100644
index 0000000000..b50c1988de
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/w_pow.c
@@ -0,0 +1 @@
+#include <sysdeps/../math/w_pow.c>
diff --git a/sysdeps/x86_64/fpu/printf_fphex.c b/sysdeps/x86_64/fpu/printf_fphex.c
index 62efed10da..c622c5b7d5 100644
--- a/sysdeps/x86_64/fpu/printf_fphex.c
+++ b/sysdeps/x86_64/fpu/printf_fphex.c
@@ -1,5 +1,5 @@
/* Print floating point number in hexadecimal notation according to ISO C99.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef LONG_DOUBLE_DENORM_BIAS
# define LONG_DOUBLE_DENORM_BIAS (IEEE854_LONG_DOUBLE_BIAS - 1)
diff --git a/sysdeps/x86_64/fpu/s_copysign.S b/sysdeps/x86_64/fpu/s_copysign.S
index e2921ce770..d53409e8c8 100644
--- a/sysdeps/x86_64/fpu/s_copysign.S
+++ b/sysdeps/x86_64/fpu/s_copysign.S
@@ -1,5 +1,5 @@
/* copy sign, double version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <machine/asm.h>
#include <libm-alias-double.h>
diff --git a/sysdeps/x86_64/fpu/s_copysignf.S b/sysdeps/x86_64/fpu/s_copysignf.S
index 4093e781fe..8c9cf11cbf 100644
--- a/sysdeps/x86_64/fpu/s_copysignf.S
+++ b/sysdeps/x86_64/fpu/s_copysignf.S
@@ -1,5 +1,5 @@
/* copy sign, double version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <machine/asm.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/x86_64/fpu/s_fabs.c b/sysdeps/x86_64/fpu/s_fabs.c
index d1e17878d4..59adbc35bd 100644
--- a/sysdeps/x86_64/fpu/s_fabs.c
+++ b/sysdeps/x86_64/fpu/s_fabs.c
@@ -1,5 +1,5 @@
/* Absolute value of floating point number.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <libm-alias-double.h>
diff --git a/sysdeps/x86_64/fpu/s_fabsf.c b/sysdeps/x86_64/fpu/s_fabsf.c
index 2f39228560..c2791563b6 100644
--- a/sysdeps/x86_64/fpu/s_fabsf.c
+++ b/sysdeps/x86_64/fpu/s_fabsf.c
@@ -1,5 +1,5 @@
/* Absolute value of floating point number.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/x86_64/fpu/s_fabsl.S b/sysdeps/x86_64/fpu/s_fabsl.S
index 7f03ecdccb..312f793ad0 100644
--- a/sysdeps/x86_64/fpu/s_fabsl.S
+++ b/sysdeps/x86_64/fpu/s_fabsl.S
@@ -1,5 +1,5 @@
/* Absolute value of floating point number.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <libm-alias-ldouble.h>
diff --git a/sysdeps/x86_64/fpu/s_fmax.S b/sysdeps/x86_64/fpu/s_fmax.S
index 7cd8f1ed10..a2373bb02f 100644
--- a/sysdeps/x86_64/fpu/s_fmax.S
+++ b/sysdeps/x86_64/fpu/s_fmax.S
@@ -1,5 +1,5 @@
/* Compute maximum of two numbers, regarding NaN as missing argument.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <libm-alias-double.h>
diff --git a/sysdeps/x86_64/fpu/s_fmaxf.S b/sysdeps/x86_64/fpu/s_fmaxf.S
index 9b932fddc2..c1a9455cb7 100644
--- a/sysdeps/x86_64/fpu/s_fmaxf.S
+++ b/sysdeps/x86_64/fpu/s_fmaxf.S
@@ -1,5 +1,5 @@
/* Compute maximum of two numbers, regarding NaN as missing argument.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/x86_64/fpu/s_fmaxl.S b/sysdeps/x86_64/fpu/s_fmaxl.S
index 3463a07083..8f9328a1ff 100644
--- a/sysdeps/x86_64/fpu/s_fmaxl.S
+++ b/sysdeps/x86_64/fpu/s_fmaxl.S
@@ -1,5 +1,5 @@
/* Compute maximum of two numbers, regarding NaN as missing argument.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <libm-alias-ldouble.h>
diff --git a/sysdeps/x86_64/fpu/s_fmin.S b/sysdeps/x86_64/fpu/s_fmin.S
index 15b6eaed90..c7f19c5b5c 100644
--- a/sysdeps/x86_64/fpu/s_fmin.S
+++ b/sysdeps/x86_64/fpu/s_fmin.S
@@ -1,5 +1,5 @@
/* Compute minimum of two numbers, regarding NaN as missing argument.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <libm-alias-double.h>
diff --git a/sysdeps/x86_64/fpu/s_fminf.S b/sysdeps/x86_64/fpu/s_fminf.S
index 28e26aead5..3d832ccaf7 100644
--- a/sysdeps/x86_64/fpu/s_fminf.S
+++ b/sysdeps/x86_64/fpu/s_fminf.S
@@ -1,5 +1,5 @@
/* Compute minimum of two numbers, regarding NaN as missing argument.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/x86_64/fpu/s_fminl.S b/sysdeps/x86_64/fpu/s_fminl.S
index df81762449..7dd9ad0b47 100644
--- a/sysdeps/x86_64/fpu/s_fminl.S
+++ b/sysdeps/x86_64/fpu/s_fminl.S
@@ -1,5 +1,5 @@
/* Compute minimum of two numbers, regarding NaN as missing argument.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <libm-alias-ldouble.h>
diff --git a/sysdeps/x86_64/fpu/s_llrint.S b/sysdeps/x86_64/fpu/s_llrint.S
index 7b93724e46..855d5f0640 100644
--- a/sysdeps/x86_64/fpu/s_llrint.S
+++ b/sysdeps/x86_64/fpu/s_llrint.S
@@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.d>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <libm-alias-double.h>
diff --git a/sysdeps/x86_64/fpu/s_llrintf.S b/sysdeps/x86_64/fpu/s_llrintf.S
index b6088de1ff..26a2d336d5 100644
--- a/sysdeps/x86_64/fpu/s_llrintf.S
+++ b/sysdeps/x86_64/fpu/s_llrintf.S
@@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.d>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/x86_64/fpu/s_llrintl.S b/sysdeps/x86_64/fpu/s_llrintl.S
index 49f6ff1961..d3139931f7 100644
--- a/sysdeps/x86_64/fpu/s_llrintl.S
+++ b/sysdeps/x86_64/fpu/s_llrintl.S
@@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <libm-alias-ldouble.h>
diff --git a/sysdeps/x86_64/fpu/s_signbit.S b/sysdeps/x86_64/fpu/s_signbit.S
index becfc646cb..3d4f178835 100644
--- a/sysdeps/x86_64/fpu/s_signbit.S
+++ b/sysdeps/x86_64/fpu/s_signbit.S
@@ -1,5 +1,5 @@
/* Return nonzero value if number is negative.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redha.com>, 2009.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/x86_64/fpu/s_signbitf.S b/sysdeps/x86_64/fpu/s_signbitf.S
index c7be6a6329..1d65c262ff 100644
--- a/sysdeps/x86_64/fpu/s_signbitf.S
+++ b/sysdeps/x86_64/fpu/s_signbitf.S
@@ -1,5 +1,5 @@
/* Return nonzero value if number is negative.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redha.com>, 2009.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/x86_64/fpu/s_sincosf.S b/sysdeps/x86_64/fpu/s_sincosf.S
deleted file mode 100644
index 2086e8ca5c..0000000000
--- a/sysdeps/x86_64/fpu/s_sincosf.S
+++ /dev/null
@@ -1,566 +0,0 @@
-/* Optimized sincosf function.
- Copyright (C) 2012-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <errno.h>
-#include <libm-alias-float.h>
-
-/* Short algorithm description:
- *
- * 1) if |x|==0: sin(x)=x,
- * cos(x)=1.
- * 2) if |x|<2^-27: sin(x)=x-x*DP_SMALL, raising underflow only when needed,
- * cos(x)=1-|x|.
- * 3) if |x|<2^-5 : sin(x)=x+x*x^2*DP_SIN2_0+x^5*DP_SIN2_1,
- * cos(x)=1+1*x^2*DP_COS2_0+x^5*DP_COS2_1
- * 4) if |x|< Pi/4: sin(x)=x+x*x^2*(S0+x^2*(S1+x^2*(S2+x^2*(S3+x^2*S4)))),
- * cos(x)=1+1*x^2*(C0+x^2*(C1+x^2*(C2+x^2*(C3+x^2*C4)))).
- * 5) if |x| < 9*Pi/4:
- * 5.1) Range reduction:
- * k=trunc(|x|/(Pi/4)), j=(k+1)&0x0e, n=k+1, t=|x|-j*Pi/4.
- * 5.2) Reconstruction:
- * sign_sin = sign(x) * (-1.0)^(( n >>2)&1)
- * sign_cos = (-1.0)^(((n+2)>>2)&1)
- * poly_sin = ((((S4*t^2 + S3)*t^2 + S2)*t^2 + S1)*t^2 + S0)*t^2*t+t
- * poly_cos = ((((C4*t^2 + C3)*t^2 + C2)*t^2 + C1)*t^2 + C0)*t^2*s+s
- * if(n&2 != 0) {
- * using cos(t) and sin(t) polynomials for |t|<Pi/4, results are
- * cos(x) = poly_sin * sign_cos
- * sin(x) = poly_cos * sign_sin
- * } else {
- * sin(x) = poly_sin * sign_sin
- * cos(x) = poly_cos * sign_cos
- * }
- * 6) if |x| < 2^23, large args:
- * 6.1) Range reduction:
- * k=trunc(|x|/(Pi/4)), j=(k+1)&0xfffffffe, n=k+1, t=|x|-j*Pi/4
- * 6.2) Reconstruction same as (5.2).
- * 7) if |x| >= 2^23, very large args:
- * 7.1) Range reduction:
- * k=trunc(|x|/(Pi/4)), j=(k+1)&0xfffffffe, n=k+1, t=|x|-j*Pi/4.
- * 7.2) Reconstruction same as (5.2).
- * 8) if x is Inf, return x-x, and set errno=EDOM.
- * 9) if x is NaN, return x-x.
- *
- * Special cases:
- * sin/cos(+-0) = +-0/1 not raising inexact/underflow,
- * sin/cos(subnormal) raises inexact/underflow,
- * sin/cos(min_normalized) raises inexact/underflow,
- * sin/cos(normalized) raises inexact,
- * sin/cos(Inf) = NaN, raises invalid, sets errno to EDOM,
- * sin/cos(NaN) = NaN.
- */
-
-# define ARG_SIN_PTR %rdi
-# define ARG_COS_PTR %rsi
-
- .text
-ENTRY(__sincosf)
- /* Input: %xmm0 contains single precision argument x */
- /* %rdi points to sin result */
- /* %rsi points to cos result */
-
- movd %xmm0, %eax /* Bits of x */
- movaps %xmm0, %xmm7 /* Copy of x */
- cvtss2sd %xmm0, %xmm0 /* DP x */
- movss L(SP_ABS_MASK)(%rip), %xmm3
- movl %eax, %r8d /* Copy of x bits */
- andl $0x7fffffff, %eax /* |x| */
-
- cmpl $0x3f490fdb, %eax /* |x|<Pi/4 ? */
- jb L(arg_less_pio4)
-
- /* Here if |x|>=Pi/4 */
- andps %xmm7, %xmm3 /* SP |x| */
- andpd L(DP_ABS_MASK)(%rip),%xmm0 /* DP |x| */
- movss L(SP_INVPIO4)(%rip), %xmm2 /* SP 1/(Pi/4) */
-
- cmpl $0x40e231d6, %eax /* |x|<9*Pi/4 ? */
- jae L(large_args)
-
- /* Here if Pi/4<=|x|<9*Pi/4 */
- mulss %xmm3, %xmm2 /* SP |x|/(Pi/4) */
- movl %r8d, %ecx /* Load x */
- cvttss2si %xmm2, %eax /* k, number of Pi/4 in x */
- lea L(PIO4J)(%rip), %r9
- shrl $29, %ecx /* (sign of x) << 2 */
- addl $1, %eax /* k+1 */
- movl $0x0e, %edx
- andl %eax, %edx /* j = (k+1)&0x0e */
- subsd (%r9,%rdx,8), %xmm0 /* t = |x| - j * Pi/4 */
-
-L(reconstruction):
- /* Input: %eax=n, %xmm0=t, %ecx=sign(x) */
-
- movaps %xmm0, %xmm4 /* t */
- movhpd L(DP_ONES)(%rip), %xmm4 /* 1|t */
- mulsd %xmm0, %xmm0 /* y=t^2 */
- movl $2, %edx
- unpcklpd %xmm0, %xmm0 /* y|y */
- addl %eax, %edx /* k+2 */
- movaps %xmm0, %xmm1 /* y|y */
- mulpd %xmm0, %xmm0 /* z=t^4|z=t^4 */
-
- movaps L(DP_SC4)(%rip), %xmm2 /* S4 */
- mulpd %xmm0, %xmm2 /* z*S4 */
- movaps L(DP_SC3)(%rip), %xmm3 /* S3 */
- mulpd %xmm0, %xmm3 /* z*S3 */
- xorl %eax, %ecx /* (sign_x ^ (k>>2))<<2 */
- addpd L(DP_SC2)(%rip), %xmm2 /* S2+z*S4 */
- mulpd %xmm0, %xmm2 /* z*(S2+z*S4) */
- shrl $2, %edx /* (k+2)>>2 */
- addpd L(DP_SC1)(%rip), %xmm3 /* S1+z*S3 */
- mulpd %xmm0, %xmm3 /* z*(S1+z*S3) */
- shrl $2, %ecx /* sign_x ^ k>>2 */
- addpd L(DP_SC0)(%rip), %xmm2 /* S0+z*(S2+z*S4) */
- andl $1, %edx /* sign_cos = ((k+2)>>2)&1 */
- mulpd %xmm1, %xmm2 /* y*(S0+z*(S2+z*S4)) */
- andl $1, %ecx /* sign_sin = sign_x ^ ((k>>2)&1) */
- addpd %xmm2, %xmm3 /* y*(S0+y*(S1+y*(S2+y*(S3+y*S4)))) */
- lea L(DP_ONES)(%rip), %r9
- mulpd %xmm4, %xmm3 /*t*y*(S0+y*(S1+y*(S2+y*(S3+y*S4))))*/
- testl $2, %eax /* n&2 != 0 ? */
- addpd %xmm4, %xmm3 /*t+t*y*(S0+y*(S1+y*(S2+y*(S3+y*S4))*/
- jnz L(sin_result_sin_poly)
-
-/*L(sin_result_cos_poly):*/
- /*
- * Here if
- * cos(x) = poly_sin * sign_cos
- * sin(x) = poly_cos * sign_sin
- */
- movsd (%r9,%rcx,8), %xmm4 /* 0|sign_sin */
- movhpd (%r9,%rdx,8), %xmm4 /* sign_cos|sign_sin */
- mulpd %xmm4, %xmm3 /* result_cos|result_sin */
- cvtpd2ps %xmm3, %xmm0 /* SP results */
- movss %xmm0, (ARG_SIN_PTR) /* store sin(x) from xmm0[0] */
- shufps $1, %xmm0, %xmm0 /* move cos(x) to xmm0[0] */
- movss %xmm0, (ARG_COS_PTR) /* store cos(x) */
- ret
-
- .p2align 4
-L(sin_result_sin_poly):
- /*
- * Here if
- * sin(x) = poly_sin * sign_sin
- * cos(x) = poly_cos * sign_cos
- */
- movsd (%r9,%rdx,8), %xmm4 /* 0|sign_cos */
- movhpd (%r9,%rcx,8), %xmm4 /* sign_sin|sign_cos */
- mulpd %xmm4, %xmm3 /* result_sin|result_cos */
- cvtpd2ps %xmm3, %xmm0 /* SP results */
- movss %xmm0, (ARG_COS_PTR) /* store cos(x) from xmm0[0] */
- shufps $1, %xmm0, %xmm0 /* move sin(x) to xmm0[0] */
- movss %xmm0, (ARG_SIN_PTR) /* store sin(x) */
- ret
-
- .p2align 4
-L(large_args):
- /* Here if |x|>=9*Pi/4 */
- cmpl $0x7f800000, %eax /* x is Inf or NaN ? */
- jae L(arg_inf_or_nan)
-
- /* Here if finite |x|>=9*Pi/4 */
- cmpl $0x4b000000, %eax /* |x|<2^23 ? */
- jae L(very_large_args)
-
- /* Here if 9*Pi/4<=|x|<2^23 */
- movsd L(DP_INVPIO4)(%rip), %xmm1 /* 1/(Pi/4) */
- mulsd %xmm0, %xmm1 /* |x|/(Pi/4) */
- cvttsd2si %xmm1, %eax /* k=trunc(|x|/(Pi/4)) */
- addl $1, %eax /* k+1 */
- movl %eax, %edx
- andl $0xfffffffe, %edx /* j=(k+1)&0xfffffffe */
- cvtsi2sdl %edx, %xmm4 /* DP j */
- movl %r8d, %ecx /* Load x */
- movsd L(DP_PIO4HI)(%rip), %xmm2 /* -PIO4HI = high part of -Pi/4 */
- shrl $29, %ecx /* (sign of x) << 2 */
- mulsd %xmm4, %xmm2 /* -j*PIO4HI */
- movsd L(DP_PIO4LO)(%rip), %xmm3 /* -PIO4LO = low part of -Pi/4 */
- addsd %xmm2, %xmm0 /* |x| - j*PIO4HI */
- mulsd %xmm3, %xmm4 /* j*PIO4LO */
- addsd %xmm4, %xmm0 /* t = |x| - j*PIO4HI - j*PIO4LO */
- jmp L(reconstruction)
-
- .p2align 4
-L(very_large_args):
- /* Here if finite |x|>=2^23 */
-
- /* bitpos = (ix>>23) - BIAS_32 + 59; */
- shrl $23, %eax /* eb = biased exponent of x */
- subl $68, %eax /* bitpos=eb-0x7f+59, where 0x7f */
- /*is exponent bias */
- movl $28, %ecx /* %cl=28 */
- movl %eax, %edx /* bitpos copy */
-
- /* j = bitpos/28; */
- div %cl /* j in register %al=%ax/%cl */
- movapd %xmm0, %xmm3 /* |x| */
- andl $0xff, %eax /* clear unneeded remainder from %ah*/
-
- imull $28, %eax, %ecx /* j*28 */
- lea L(_FPI)(%rip), %r9
- movsd L(DP_HI_MASK)(%rip), %xmm4 /* DP_HI_MASK */
- movapd %xmm0, %xmm5 /* |x| */
- mulsd -16(%r9,%rax,8), %xmm3 /* tmp3 = FPI[j-2]*|x| */
- movapd %xmm0, %xmm1 /* |x| */
- mulsd -8(%r9,%rax,8), %xmm5 /* tmp2 = FPI[j-1]*|x| */
- mulsd (%r9,%rax,8), %xmm0 /* tmp0 = FPI[j]*|x| */
- addl $19, %ecx /* j*28+19 */
- mulsd 8(%r9,%rax,8), %xmm1 /* tmp1 = FPI[j+1]*|x| */
- cmpl %ecx, %edx /* bitpos>=j*28+19 ? */
- jl L(very_large_skip1)
-
- /* Here if bitpos>=j*28+19 */
- andpd %xmm3, %xmm4 /* HI(tmp3) */
- subsd %xmm4, %xmm3 /* tmp3 = tmp3 - HI(tmp3) */
-L(very_large_skip1):
-
- movsd L(DP_2POW52)(%rip), %xmm6
- movapd %xmm5, %xmm2 /* tmp2 copy */
- addsd %xmm3, %xmm5 /* tmp5 = tmp3 + tmp2 */
- movl $1, %edx
- addsd %xmm5, %xmm6 /* tmp6 = tmp5 + 2^52 */
- movsd 8+L(DP_2POW52)(%rip), %xmm4
- movd %xmm6, %eax /* k = I64_LO(tmp6); */
- addsd %xmm6, %xmm4 /* tmp4 = tmp6 - 2^52 */
- movl %r8d, %ecx /* Load x */
- comisd %xmm5, %xmm4 /* tmp4 > tmp5 ? */
- jbe L(very_large_skip2)
-
- /* Here if tmp4 > tmp5 */
- subl $1, %eax /* k-- */
- addsd 8+L(DP_ONES)(%rip), %xmm4 /* tmp4 -= 1.0 */
-L(very_large_skip2):
-
- andl %eax, %edx /* k&1 */
- lea L(DP_ZERONE)(%rip), %r9
- subsd %xmm4, %xmm3 /* tmp3 -= tmp4 */
- addsd (%r9,%rdx,8), %xmm3 /* t = DP_ZERONE[k&1] + tmp3 */
- addsd %xmm2, %xmm3 /* t += tmp2 */
- shrl $29, %ecx /* (sign of x) << 2 */
- addsd %xmm3, %xmm0 /* t += tmp0 */
- addl $1, %eax /* n=k+1 */
- addsd %xmm1, %xmm0 /* t += tmp1 */
- mulsd L(DP_PIO4)(%rip), %xmm0 /* t *= PI04 */
-
- jmp L(reconstruction) /* end of very_large_args peth */
-
- .p2align 4
-L(arg_less_pio4):
- /* Here if |x|<Pi/4 */
- cmpl $0x3d000000, %eax /* |x|<2^-5 ? */
- jl L(arg_less_2pn5)
-
- /* Here if 2^-5<=|x|<Pi/4 */
- movaps %xmm0, %xmm3 /* DP x */
- movhpd L(DP_ONES)(%rip), %xmm3 /* DP 1|x */
- mulsd %xmm0, %xmm0 /* DP y=x^2 */
- unpcklpd %xmm0, %xmm0 /* DP y|y */
- movaps %xmm0, %xmm1 /* y|y */
- mulpd %xmm0, %xmm0 /* z=x^4|z=x^4 */
-
- movapd L(DP_SC4)(%rip), %xmm4 /* S4 */
- mulpd %xmm0, %xmm4 /* z*S4 */
- movapd L(DP_SC3)(%rip), %xmm5 /* S3 */
- mulpd %xmm0, %xmm5 /* z*S3 */
- addpd L(DP_SC2)(%rip), %xmm4 /* S2+z*S4 */
- mulpd %xmm0, %xmm4 /* z*(S2+z*S4) */
- addpd L(DP_SC1)(%rip), %xmm5 /* S1+z*S3 */
- mulpd %xmm0, %xmm5 /* z*(S1+z*S3) */
- addpd L(DP_SC0)(%rip), %xmm4 /* S0+z*(S2+z*S4) */
- mulpd %xmm1, %xmm4 /* y*(S0+z*(S2+z*S4)) */
- mulpd %xmm3, %xmm5 /* x*z*(S1+z*S3) */
- mulpd %xmm3, %xmm4 /* x*y*(S0+z*(S2+z*S4)) */
- addpd %xmm5, %xmm4 /*x*y*(S0+y*(S1+y*(S2+y*(S3+y*S4))))*/
- addpd %xmm4, %xmm3 /*x+x*y*(S0+y*(S1+y*(S2+y*(S3+y*S4))*/
- cvtpd2ps %xmm3, %xmm0 /* SP results */
- movss %xmm0, (ARG_SIN_PTR) /* store sin(x) from xmm0[0] */
- shufps $1, %xmm0, %xmm0 /* move cos(x) to xmm0[0] */
- movss %xmm0, (ARG_COS_PTR) /* store cos(x) */
- ret
-
- .p2align 4
-L(arg_less_2pn5):
- /* Here if |x|<2^-5 */
- cmpl $0x32000000, %eax /* |x|<2^-27 ? */
- jl L(arg_less_2pn27)
-
- /* Here if 2^-27<=|x|<2^-5 */
- movaps %xmm0, %xmm1 /* DP x */
- movhpd L(DP_ONES)(%rip), %xmm1 /* DP 1|x */
- mulsd %xmm0, %xmm0 /* DP x^2 */
- unpcklpd %xmm0, %xmm0 /* DP x^2|x^2 */
-
- movaps L(DP_SINCOS2_1)(%rip), %xmm3 /* DP DP_SIN2_1 */
- mulpd %xmm0, %xmm3 /* DP x^2*DP_SIN2_1 */
- addpd L(DP_SINCOS2_0)(%rip), %xmm3 /* DP DP_SIN2_0+x^2*DP_SIN2_1 */
- mulpd %xmm0, %xmm3 /* DP x^2*DP_SIN2_0+x^4*DP_SIN2_1 */
- mulpd %xmm1, %xmm3 /* DP x^3*DP_SIN2_0+x^5*DP_SIN2_1 */
- addpd %xmm1, %xmm3 /* DP x+x^3*DP_SIN2_0+x^5*DP_SIN2_1 */
- cvtpd2ps %xmm3, %xmm0 /* SP results */
- movss %xmm0, (ARG_SIN_PTR) /* store sin(x) from xmm0[0] */
- shufps $1, %xmm0, %xmm0 /* move cos(x) to xmm0[0] */
- movss %xmm0, (ARG_COS_PTR) /* store cos(x) */
- ret
-
- .p2align 4
-L(arg_less_2pn27):
- cmpl $0, %eax /* x=0 ? */
- je L(arg_zero) /* in case x=0 return sin(+-0)==+-0 */
- /* Here if |x|<2^-27 */
- /*
- * Special cases here:
- * sin(subnormal) raises inexact/underflow
- * sin(min_normalized) raises inexact/underflow
- * sin(normalized) raises inexact
- * cos(here)=1-|x| (raising inexact)
- */
- movaps %xmm0, %xmm3 /* DP x */
- mulsd L(DP_SMALL)(%rip), %xmm0/* DP x*DP_SMALL */
- subsd %xmm0, %xmm3 /* DP sin result is x-x*DP_SMALL */
- andps L(SP_ABS_MASK)(%rip), %xmm7/* SP |x| */
- cvtsd2ss %xmm3, %xmm0 /* sin(x) */
- movss L(SP_ONE)(%rip), %xmm1 /* SP 1.0 */
- movss %xmm0, (ARG_SIN_PTR) /* sin(x) store */
- subss %xmm7, %xmm1 /* cos(x) */
- movss %xmm1, (ARG_COS_PTR) /* cos(x) store */
- ret
-
- .p2align 4
-L(arg_zero):
- movss L(SP_ONE)(%rip), %xmm0 /* 1.0 */
- movss %xmm7, (ARG_SIN_PTR) /* sin(+-0)==x */
- movss %xmm0, (ARG_COS_PTR) /* cos(+-0)==1 */
- ret
-
- .p2align 4
-L(arg_inf_or_nan):
- /* Here if |x| is Inf or NAN */
- jne L(skip_errno_setting) /* in case of x is NaN */
-
- /* Align stack to 16 bytes. */
- subq $8, %rsp
- cfi_adjust_cfa_offset (8)
- /* Here if x is Inf. Set errno to EDOM. */
- call JUMPTARGET(__errno_location)
- addq $8, %rsp
- cfi_adjust_cfa_offset (-8)
-
- movl $EDOM, (%rax)
-
- .p2align 4
-L(skip_errno_setting):
- /* Here if |x| is Inf or NAN. Continued. */
- subss %xmm7, %xmm7 /* x-x, result is NaN */
- movss %xmm7, (ARG_SIN_PTR)
- movss %xmm7, (ARG_COS_PTR)
- ret
-END(__sincosf)
-
- .section .rodata, "a"
- .p2align 3
-L(PIO4J): /* Table of j*Pi/4, for j=0,1,..,10 */
- .long 0x00000000,0x00000000
- .long 0x54442d18,0x3fe921fb
- .long 0x54442d18,0x3ff921fb
- .long 0x7f3321d2,0x4002d97c
- .long 0x54442d18,0x400921fb
- .long 0x2955385e,0x400f6a7a
- .long 0x7f3321d2,0x4012d97c
- .long 0xe9bba775,0x4015fdbb
- .long 0x54442d18,0x401921fb
- .long 0xbeccb2bb,0x401c463a
- .long 0x2955385e,0x401f6a7a
- .type L(PIO4J), @object
- ASM_SIZE_DIRECTIVE(L(PIO4J))
-
- .p2align 3
-L(_FPI): /* 4/Pi broken into sum of positive DP values */
- .long 0x00000000,0x00000000
- .long 0x6c000000,0x3ff45f30
- .long 0x2a000000,0x3e3c9c88
- .long 0xa8000000,0x3c54fe13
- .long 0xd0000000,0x3aaf47d4
- .long 0x6c000000,0x38fbb81b
- .long 0xe0000000,0x3714acc9
- .long 0x7c000000,0x3560e410
- .long 0x56000000,0x33bca2c7
- .long 0xac000000,0x31fbd778
- .long 0xe0000000,0x300b7246
- .long 0xe8000000,0x2e5d2126
- .long 0x48000000,0x2c970032
- .long 0xe8000000,0x2ad77504
- .long 0xe0000000,0x290921cf
- .long 0xb0000000,0x274deb1c
- .long 0xe0000000,0x25829a73
- .long 0xbe000000,0x23fd1046
- .long 0x10000000,0x2224baed
- .long 0x8e000000,0x20709d33
- .long 0x80000000,0x1e535a2f
- .long 0x64000000,0x1cef904e
- .long 0x30000000,0x1b0d6398
- .long 0x24000000,0x1964ce7d
- .long 0x16000000,0x17b908bf
- .type L(_FPI), @object
- ASM_SIZE_DIRECTIVE(L(_FPI))
-
-/* Coefficients of polynomials for */
-/* sin(x)~=x+x*x^2*(DP_SIN2_0+x^2*DP_SIN2_1) in low DP part, */
-/* cos(x)~=1+1*x^2*(DP_COS2_0+x^2*DP_COS2_1) in high DP part, */
-/* for |x|<2^-5. */
- .p2align 4
-L(DP_SINCOS2_0):
- .long 0x5543d49d,0xbfc55555
- .long 0xff5cc6fd,0xbfdfffff
- .type L(DP_SINCOS2_0), @object
- ASM_SIZE_DIRECTIVE(L(DP_SINCOS2_0))
-
- .p2align 4
-L(DP_SINCOS2_1):
- .long 0x75cec8c5,0x3f8110f4
- .long 0xb178dac5,0x3fa55514
- .type L(DP_SINCOS2_1), @object
- ASM_SIZE_DIRECTIVE(L(DP_SINCOS2_1))
-
-
- .p2align 3
-L(DP_ZERONE):
- .long 0x00000000,0x00000000 /* 0.0 */
- .long 0x00000000,0xbff00000 /* 1.0 */
- .type L(DP_ZERONE), @object
- ASM_SIZE_DIRECTIVE(L(DP_ZERONE))
-
- .p2align 3
-L(DP_ONES):
- .long 0x00000000,0x3ff00000 /* +1.0 */
- .long 0x00000000,0xbff00000 /* -1.0 */
- .type L(DP_ONES), @object
- ASM_SIZE_DIRECTIVE(L(DP_ONES))
-
-/* Coefficients of polynomials for */
-/* sin(t)~=t+t*t^2*(S0+t^2*(S1+t^2*(S2+t^2*(S3+t^2*S4)))) in low DP part, */
-/* cos(t)~=1+1*t^2*(C0+t^2*(C1+t^2*(C2+t^2*(C3+t^2*C4)))) in high DP part, */
-/* for |t|<Pi/4. */
- .p2align 4
-L(DP_SC4):
- .long 0x1674b58a,0xbe5a947e
- .long 0xdd8844d7,0xbe923c97
- .type L(DP_SC4), @object
- ASM_SIZE_DIRECTIVE(L(DP_SC4))
-
- .p2align 4
-L(DP_SC3):
- .long 0x64e6b5b4,0x3ec71d72
- .long 0x9ac43cc0,0x3efa00eb
- .type L(DP_SC3), @object
- ASM_SIZE_DIRECTIVE(L(DP_SC3))
-
- .p2align 4
-L(DP_SC2):
- .long 0x8b4bd1f9,0xbf2a019f
- .long 0x348b6874,0xbf56c16b
- .type L(DP_SC2), @object
- ASM_SIZE_DIRECTIVE(L(DP_SC2))
-
- .p2align 4
-L(DP_SC1):
- .long 0x10c2688b,0x3f811111
- .long 0x545c50c7,0x3fa55555
- .type L(DP_SC1), @object
- ASM_SIZE_DIRECTIVE(L(DP_SC1))
-
- .p2align 4
-L(DP_SC0):
- .long 0x55551cd9,0xbfc55555
- .long 0xfffe98ae,0xbfdfffff
- .type L(DP_SC0), @object
- ASM_SIZE_DIRECTIVE(L(DP_SC0))
-
- .p2align 3
-L(DP_SMALL):
- .long 0x00000000,0x3cd00000 /* 2^(-50) */
- .type L(DP_SMALL), @object
- ASM_SIZE_DIRECTIVE(L(DP_SMALL))
-
- .p2align 3
-L(DP_PIO4):
- .long 0x54442d18,0x3fe921fb /* Pi/4 */
- .type L(DP_PIO4), @object
- ASM_SIZE_DIRECTIVE(L(DP_PIO4))
-
- .p2align 3
-L(DP_2POW52):
- .long 0x00000000,0x43300000 /* +2^52 */
- .long 0x00000000,0xc3300000 /* -2^52 */
- .type L(DP_2POW52), @object
- ASM_SIZE_DIRECTIVE(L(DP_2POW52))
-
- .p2align 3
-L(DP_INVPIO4):
- .long 0x6dc9c883,0x3ff45f30 /* 4/Pi */
- .type L(DP_INVPIO4), @object
- ASM_SIZE_DIRECTIVE(L(DP_INVPIO4))
-
- .p2align 3
-L(DP_PIO4HI):
- .long 0x54000000,0xbfe921fb /* High part of Pi/4 */
- .type L(DP_PIO4HI), @object
- ASM_SIZE_DIRECTIVE(L(DP_PIO4HI))
-
- .p2align 3
-L(DP_PIO4LO):
- .long 0x11A62633,0xbe010b46 /* Low part of Pi/4 */
- .type L(DP_PIO4LO), @object
- ASM_SIZE_DIRECTIVE(L(DP_PIO4LO))
-
- .p2align 2
-L(SP_INVPIO4):
- .long 0x3fa2f983 /* 4/Pi */
- .type L(SP_INVPIO4), @object
- ASM_SIZE_DIRECTIVE(L(SP_INVPIO4))
-
- .p2align 4
-L(DP_ABS_MASK): /* Mask for getting DP absolute value */
- .long 0xffffffff,0x7fffffff
- .long 0xffffffff,0x7fffffff
- .type L(DP_ABS_MASK), @object
- ASM_SIZE_DIRECTIVE(L(DP_ABS_MASK))
-
- .p2align 3
-L(DP_HI_MASK): /* Mask for getting high 21 bits of DP value */
- .long 0x00000000,0xffffffff
- .type L(DP_HI_MASK), @object
- ASM_SIZE_DIRECTIVE(L(DP_HI_MASK))
-
- .p2align 4
-L(SP_ABS_MASK): /* Mask for getting SP absolute value */
- .long 0x7fffffff,0x7fffffff
- .long 0x7fffffff,0x7fffffff
- .type L(SP_ABS_MASK), @object
- ASM_SIZE_DIRECTIVE(L(SP_ABS_MASK))
-
- .p2align 2
-L(SP_ONE):
- .long 0x3f800000 /* 1.0 */
- .type L(SP_ONE), @object
- ASM_SIZE_DIRECTIVE(L(SP_ONE))
-
-#ifndef __sincosf
-libm_alias_float (__sincos, sincos)
-#endif
diff --git a/sysdeps/x86_64/fpu/s_truncl.S b/sysdeps/x86_64/fpu/s_truncl.S
index 22427ece00..e0d628665f 100644
--- a/sysdeps/x86_64/fpu/s_truncl.S
+++ b/sysdeps/x86_64/fpu/s_truncl.S
@@ -1,5 +1,5 @@
/* Truncate long double value.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libm-alias-ldouble.h>
#include <machine/asm.h>
diff --git a/sysdeps/x86_64/fpu/svml_d_cos2_core.S b/sysdeps/x86_64/fpu/svml_d_cos2_core.S
index 111548367b..2f7192777c 100644
--- a/sysdeps/x86_64/fpu/svml_d_cos2_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_cos2_core.S
@@ -1,5 +1,5 @@
/* Function cos vectorized with SSE2.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_d_wrapper_impl.h"
diff --git a/sysdeps/x86_64/fpu/svml_d_cos4_core.S b/sysdeps/x86_64/fpu/svml_d_cos4_core.S
index 28b31d510c..3a00c134c0 100644
--- a/sysdeps/x86_64/fpu/svml_d_cos4_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_cos4_core.S
@@ -1,5 +1,5 @@
/* Function cos vectorized with AVX2, wrapper version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_d_wrapper_impl.h"
diff --git a/sysdeps/x86_64/fpu/svml_d_cos4_core_avx.S b/sysdeps/x86_64/fpu/svml_d_cos4_core_avx.S
index 988d0650ca..1405542a2b 100644
--- a/sysdeps/x86_64/fpu/svml_d_cos4_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_d_cos4_core_avx.S
@@ -1,5 +1,5 @@
/* Function cos vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_d_wrapper_impl.h"
diff --git a/sysdeps/x86_64/fpu/svml_d_cos8_core.S b/sysdeps/x86_64/fpu/svml_d_cos8_core.S
index 830776b5d2..f432c6eea8 100644
--- a/sysdeps/x86_64/fpu/svml_d_cos8_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_cos8_core.S
@@ -1,5 +1,5 @@
/* Function cos vectorized with AVX-512, wrapper to AVX2.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_d_wrapper_impl.h"
diff --git a/sysdeps/x86_64/fpu/svml_d_exp2_core.S b/sysdeps/x86_64/fpu/svml_d_exp2_core.S
index e19ddb7f3b..925263a685 100644
--- a/sysdeps/x86_64/fpu/svml_d_exp2_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_exp2_core.S
@@ -1,5 +1,5 @@
/* Function exp vectorized with SSE2.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,14 +14,14 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_d_wrapper_impl.h"
.text
ENTRY (_ZGVbN2v_exp)
-WRAPPER_IMPL_SSE2 __exp_finite
+WRAPPER_IMPL_SSE2 exp
END (_ZGVbN2v_exp)
#ifndef USE_MULTIARCH
diff --git a/sysdeps/x86_64/fpu/svml_d_exp4_core.S b/sysdeps/x86_64/fpu/svml_d_exp4_core.S
index 341fea8f30..4c450796f6 100644
--- a/sysdeps/x86_64/fpu/svml_d_exp4_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_exp4_core.S
@@ -1,5 +1,5 @@
/* Function exp vectorized with AVX2, wrapper version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_d_wrapper_impl.h"
diff --git a/sysdeps/x86_64/fpu/svml_d_exp4_core_avx.S b/sysdeps/x86_64/fpu/svml_d_exp4_core_avx.S
index 39e6fcf228..9dcfbeb7f1 100644
--- a/sysdeps/x86_64/fpu/svml_d_exp4_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_d_exp4_core_avx.S
@@ -1,5 +1,5 @@
/* Function exp vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_d_wrapper_impl.h"
diff --git a/sysdeps/x86_64/fpu/svml_d_exp8_core.S b/sysdeps/x86_64/fpu/svml_d_exp8_core.S
index 94edc01fcb..79e8719672 100644
--- a/sysdeps/x86_64/fpu/svml_d_exp8_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_exp8_core.S
@@ -1,5 +1,5 @@
/* Function exp vectorized with AVX-512. Wrapper to AVX2 version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_d_wrapper_impl.h"
diff --git a/sysdeps/x86_64/fpu/svml_d_exp_data.S b/sysdeps/x86_64/fpu/svml_d_exp_data.S
index 5e229c9bcc..41d92a69ec 100644
--- a/sysdeps/x86_64/fpu/svml_d_exp_data.S
+++ b/sysdeps/x86_64/fpu/svml_d_exp_data.S
@@ -1,5 +1,5 @@
/* Data for vector function exp.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "svml_d_exp_data.h"
diff --git a/sysdeps/x86_64/fpu/svml_d_exp_data.h b/sysdeps/x86_64/fpu/svml_d_exp_data.h
index a3721ce137..94e2823bff 100644
--- a/sysdeps/x86_64/fpu/svml_d_exp_data.h
+++ b/sysdeps/x86_64/fpu/svml_d_exp_data.h
@@ -1,5 +1,5 @@
/* Offsets for data table for function exp.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef D_EXP_DATA_H
#define D_EXP_DATA_H
diff --git a/sysdeps/x86_64/fpu/svml_d_log2_core.S b/sysdeps/x86_64/fpu/svml_d_log2_core.S
index 41522f2069..da25900285 100644
--- a/sysdeps/x86_64/fpu/svml_d_log2_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_log2_core.S
@@ -1,5 +1,5 @@
/* Function log vectorized with SSE2.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,14 +14,14 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_d_wrapper_impl.h"
.text
ENTRY (_ZGVbN2v_log)
-WRAPPER_IMPL_SSE2 __log_finite
+WRAPPER_IMPL_SSE2 log
END (_ZGVbN2v_log)
#ifndef USE_MULTIARCH
diff --git a/sysdeps/x86_64/fpu/svml_d_log4_core.S b/sysdeps/x86_64/fpu/svml_d_log4_core.S
index 5857b45aa0..078e90c07e 100644
--- a/sysdeps/x86_64/fpu/svml_d_log4_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_log4_core.S
@@ -1,5 +1,5 @@
/* Function log vectorized with AVX2, wrapper version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_d_wrapper_impl.h"
diff --git a/sysdeps/x86_64/fpu/svml_d_log4_core_avx.S b/sysdeps/x86_64/fpu/svml_d_log4_core_avx.S
index bab3ba9877..ceaa331fde 100644
--- a/sysdeps/x86_64/fpu/svml_d_log4_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_d_log4_core_avx.S
@@ -1,5 +1,5 @@
/* Function log vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_d_wrapper_impl.h"
diff --git a/sysdeps/x86_64/fpu/svml_d_log8_core.S b/sysdeps/x86_64/fpu/svml_d_log8_core.S
index bb3523ee0d..4964cf98f3 100644
--- a/sysdeps/x86_64/fpu/svml_d_log8_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_log8_core.S
@@ -1,5 +1,5 @@
/* Function log vectorized with AVX-512. Wrapper to AVX2 version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_d_wrapper_impl.h"
diff --git a/sysdeps/x86_64/fpu/svml_d_log_data.S b/sysdeps/x86_64/fpu/svml_d_log_data.S
index 0514551ccf..1edc951041 100644
--- a/sysdeps/x86_64/fpu/svml_d_log_data.S
+++ b/sysdeps/x86_64/fpu/svml_d_log_data.S
@@ -1,5 +1,5 @@
/* Data for function log.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "svml_d_log_data.h"
diff --git a/sysdeps/x86_64/fpu/svml_d_log_data.h b/sysdeps/x86_64/fpu/svml_d_log_data.h
index a317c7b845..96b9c4c9f2 100644
--- a/sysdeps/x86_64/fpu/svml_d_log_data.h
+++ b/sysdeps/x86_64/fpu/svml_d_log_data.h
@@ -1,5 +1,5 @@
/* Offsets for data table for function log.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef D_LOG_DATA_H
#define D_LOG_DATA_H
diff --git a/sysdeps/x86_64/fpu/svml_d_pow2_core.S b/sysdeps/x86_64/fpu/svml_d_pow2_core.S
index b2451b2ed5..6a6175cb9f 100644
--- a/sysdeps/x86_64/fpu/svml_d_pow2_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_pow2_core.S
@@ -1,5 +1,5 @@
/* Function pow vectorized with SSE2.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,14 +14,14 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_d_wrapper_impl.h"
.text
ENTRY (_ZGVbN2vv_pow)
-WRAPPER_IMPL_SSE2_ff __pow_finite
+WRAPPER_IMPL_SSE2_ff pow
END (_ZGVbN2vv_pow)
#ifndef USE_MULTIARCH
diff --git a/sysdeps/x86_64/fpu/svml_d_pow4_core.S b/sysdeps/x86_64/fpu/svml_d_pow4_core.S
index 1520ba1d45..77869a3fe8 100644
--- a/sysdeps/x86_64/fpu/svml_d_pow4_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_pow4_core.S
@@ -1,5 +1,5 @@
/* Function pow vectorized with AVX2, wrapper version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_d_wrapper_impl.h"
diff --git a/sysdeps/x86_64/fpu/svml_d_pow4_core_avx.S b/sysdeps/x86_64/fpu/svml_d_pow4_core_avx.S
index d4b265c91a..edb300af23 100644
--- a/sysdeps/x86_64/fpu/svml_d_pow4_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_d_pow4_core_avx.S
@@ -1,5 +1,5 @@
/* Function pow vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_d_wrapper_impl.h"
diff --git a/sysdeps/x86_64/fpu/svml_d_pow8_core.S b/sysdeps/x86_64/fpu/svml_d_pow8_core.S
index 15292ccebd..2196d07fb2 100644
--- a/sysdeps/x86_64/fpu/svml_d_pow8_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_pow8_core.S
@@ -1,5 +1,5 @@
/* Function pow vectorized with AVX-512. Wrapper to AVX2 version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_d_wrapper_impl.h"
diff --git a/sysdeps/x86_64/fpu/svml_d_pow_data.S b/sysdeps/x86_64/fpu/svml_d_pow_data.S
index 9e5f99c25e..089e6e0bba 100644
--- a/sysdeps/x86_64/fpu/svml_d_pow_data.S
+++ b/sysdeps/x86_64/fpu/svml_d_pow_data.S
@@ -1,5 +1,5 @@
/* Data for function pow.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "svml_d_pow_data.h"
diff --git a/sysdeps/x86_64/fpu/svml_d_pow_data.h b/sysdeps/x86_64/fpu/svml_d_pow_data.h
index 55b573b2a7..a571d7d20b 100644
--- a/sysdeps/x86_64/fpu/svml_d_pow_data.h
+++ b/sysdeps/x86_64/fpu/svml_d_pow_data.h
@@ -1,5 +1,5 @@
/* Offsets for data table for function pow.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef D_POW_DATA_H
#define D_POW_DATA_H
diff --git a/sysdeps/x86_64/fpu/svml_d_sin2_core.S b/sysdeps/x86_64/fpu/svml_d_sin2_core.S
index 6485e0819f..7557720c2d 100644
--- a/sysdeps/x86_64/fpu/svml_d_sin2_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_sin2_core.S
@@ -1,5 +1,5 @@
/* Function sin vectorized with SSE2.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_d_wrapper_impl.h"
diff --git a/sysdeps/x86_64/fpu/svml_d_sin4_core.S b/sysdeps/x86_64/fpu/svml_d_sin4_core.S
index 7c7c426451..69b9dbebfa 100644
--- a/sysdeps/x86_64/fpu/svml_d_sin4_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_sin4_core.S
@@ -1,5 +1,5 @@
/* Function sin vectorized with AVX2, wrapper version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_d_wrapper_impl.h"
diff --git a/sysdeps/x86_64/fpu/svml_d_sin4_core_avx.S b/sysdeps/x86_64/fpu/svml_d_sin4_core_avx.S
index a8200dfc58..b83036bf9d 100644
--- a/sysdeps/x86_64/fpu/svml_d_sin4_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_d_sin4_core_avx.S
@@ -1,5 +1,5 @@
/* Function sin vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_d_wrapper_impl.h"
diff --git a/sysdeps/x86_64/fpu/svml_d_sin8_core.S b/sysdeps/x86_64/fpu/svml_d_sin8_core.S
index 7f07a41ba1..2c3e258251 100644
--- a/sysdeps/x86_64/fpu/svml_d_sin8_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_sin8_core.S
@@ -1,5 +1,5 @@
/* Function sin vectorized with AVX-512, wrapper to AVX2 version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_d_wrapper_impl.h"
diff --git a/sysdeps/x86_64/fpu/svml_d_sincos2_core.S b/sysdeps/x86_64/fpu/svml_d_sincos2_core.S
index ebf9e25aca..b768619b97 100644
--- a/sysdeps/x86_64/fpu/svml_d_sincos2_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_sincos2_core.S
@@ -1,5 +1,5 @@
/* Function sincos vectorized with SSE2.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_d_wrapper_impl.h"
diff --git a/sysdeps/x86_64/fpu/svml_d_sincos4_core.S b/sysdeps/x86_64/fpu/svml_d_sincos4_core.S
index 626a2b3a7b..e9ec8ac939 100644
--- a/sysdeps/x86_64/fpu/svml_d_sincos4_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_sincos4_core.S
@@ -1,5 +1,5 @@
/* Function sincos vectorized with AVX2, wrapper version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_d_wrapper_impl.h"
diff --git a/sysdeps/x86_64/fpu/svml_d_sincos4_core_avx.S b/sysdeps/x86_64/fpu/svml_d_sincos4_core_avx.S
index 4a5d4f637a..eea92608a3 100644
--- a/sysdeps/x86_64/fpu/svml_d_sincos4_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_d_sincos4_core_avx.S
@@ -1,5 +1,5 @@
/* Function sincos vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_d_wrapper_impl.h"
diff --git a/sysdeps/x86_64/fpu/svml_d_sincos8_core.S b/sysdeps/x86_64/fpu/svml_d_sincos8_core.S
index 7cf453872b..53f79872c8 100644
--- a/sysdeps/x86_64/fpu/svml_d_sincos8_core.S
+++ b/sysdeps/x86_64/fpu/svml_d_sincos8_core.S
@@ -1,5 +1,5 @@
/* Function sincos vectorized with AVX-512. Wrapper to AVX2 version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_d_wrapper_impl.h"
diff --git a/sysdeps/x86_64/fpu/svml_d_trig_data.S b/sysdeps/x86_64/fpu/svml_d_trig_data.S
index 2b148325fc..12fe31e260 100644
--- a/sysdeps/x86_64/fpu/svml_d_trig_data.S
+++ b/sysdeps/x86_64/fpu/svml_d_trig_data.S
@@ -1,5 +1,5 @@
/* Data for vectorized sin, cos, sincos.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "svml_d_trig_data.h"
diff --git a/sysdeps/x86_64/fpu/svml_d_trig_data.h b/sysdeps/x86_64/fpu/svml_d_trig_data.h
index b9bb5dc6af..a6bdd9445d 100644
--- a/sysdeps/x86_64/fpu/svml_d_trig_data.h
+++ b/sysdeps/x86_64/fpu/svml_d_trig_data.h
@@ -1,5 +1,5 @@
/* Offsets for data table for vectorized sin, cos, sincos.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef D_TRIG_DATA_H
#define D_TRIG_DATA_H
diff --git a/sysdeps/x86_64/fpu/svml_d_wrapper_impl.h b/sysdeps/x86_64/fpu/svml_d_wrapper_impl.h
index d8452e0c2b..fe97c9164a 100644
--- a/sysdeps/x86_64/fpu/svml_d_wrapper_impl.h
+++ b/sysdeps/x86_64/fpu/svml_d_wrapper_impl.h
@@ -1,5 +1,5 @@
/* Wrapper implementations of vector math functions.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* SSE2 ISA version as wrapper to scalar. */
.macro WRAPPER_IMPL_SSE2 callee
diff --git a/sysdeps/x86_64/fpu/svml_finite_alias.S b/sysdeps/x86_64/fpu/svml_finite_alias.S
deleted file mode 100644
index 21a9d6d2ee..0000000000
--- a/sysdeps/x86_64/fpu/svml_finite_alias.S
+++ /dev/null
@@ -1,58 +0,0 @@
-/* These aliases added as workaround to exclude unnecessary symbol
- aliases in libmvec.so while compiler creates the vector names
- based on scalar asm name. Corresponding discussion is at
- <https://gcc.gnu.org/ml/gcc/2015-06/msg00173.html>.
- Copyright (C) 2015-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-
-#define ALIAS_IMPL(alias, target) \
-ENTRY (alias); \
- jmp *target@GOTPCREL(%rip); \
-END (alias)
-
- .text
-ALIAS_IMPL (_ZGVbN2v___log_finite, _ZGVbN2v_log)
-ALIAS_IMPL (_ZGVcN4v___log_finite, _ZGVcN4v_log)
-ALIAS_IMPL (_ZGVdN4v___log_finite, _ZGVdN4v_log)
-ALIAS_IMPL (_ZGVeN8v___log_finite, _ZGVeN8v_log)
-
-ALIAS_IMPL (_ZGVbN4v___logf_finite, _ZGVbN4v_logf)
-ALIAS_IMPL (_ZGVcN8v___logf_finite, _ZGVcN8v_logf)
-ALIAS_IMPL (_ZGVdN8v___logf_finite, _ZGVdN8v_logf)
-ALIAS_IMPL (_ZGVeN16v___logf_finite, _ZGVeN16v_logf)
-
-ALIAS_IMPL (_ZGVbN2v___exp_finite, _ZGVbN2v_exp)
-ALIAS_IMPL (_ZGVcN4v___exp_finite, _ZGVcN4v_exp)
-ALIAS_IMPL (_ZGVdN4v___exp_finite, _ZGVdN4v_exp)
-ALIAS_IMPL (_ZGVeN8v___exp_finite, _ZGVeN8v_exp)
-
-ALIAS_IMPL (_ZGVbN4v___expf_finite, _ZGVbN4v_expf)
-ALIAS_IMPL (_ZGVcN8v___expf_finite, _ZGVcN8v_expf)
-ALIAS_IMPL (_ZGVdN8v___expf_finite, _ZGVdN8v_expf)
-ALIAS_IMPL (_ZGVeN16v___expf_finite, _ZGVeN16v_expf)
-
-ALIAS_IMPL (_ZGVbN2vv___pow_finite, _ZGVbN2vv_pow)
-ALIAS_IMPL (_ZGVcN4vv___pow_finite, _ZGVcN4vv_pow)
-ALIAS_IMPL (_ZGVdN4vv___pow_finite, _ZGVdN4vv_pow)
-ALIAS_IMPL (_ZGVeN8vv___pow_finite, _ZGVeN8vv_pow)
-
-ALIAS_IMPL (_ZGVbN4vv___powf_finite, _ZGVbN4vv_powf)
-ALIAS_IMPL (_ZGVcN8vv___powf_finite, _ZGVcN8vv_powf)
-ALIAS_IMPL (_ZGVdN8vv___powf_finite, _ZGVdN8vv_powf)
-ALIAS_IMPL (_ZGVeN16vv___powf_finite, _ZGVeN16vv_powf)
diff --git a/sysdeps/x86_64/fpu/svml_s_cosf16_core.S b/sysdeps/x86_64/fpu/svml_s_cosf16_core.S
index d1a4647082..4b7fd8a7e2 100644
--- a/sysdeps/x86_64/fpu/svml_s_cosf16_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_cosf16_core.S
@@ -1,5 +1,5 @@
/* Function cosf vectorized with AVX-512. Wrapper to AVX2 version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_s_wrapper_impl.h"
diff --git a/sysdeps/x86_64/fpu/svml_s_cosf4_core.S b/sysdeps/x86_64/fpu/svml_s_cosf4_core.S
index d58ccecc09..38f8c11945 100644
--- a/sysdeps/x86_64/fpu/svml_s_cosf4_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_cosf4_core.S
@@ -1,5 +1,5 @@
/* Function cosf vectorized with SSE2, wrapper version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_s_wrapper_impl.h"
diff --git a/sysdeps/x86_64/fpu/svml_s_cosf8_core.S b/sysdeps/x86_64/fpu/svml_s_cosf8_core.S
index f9dc74fc49..211fe79d04 100644
--- a/sysdeps/x86_64/fpu/svml_s_cosf8_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_cosf8_core.S
@@ -1,5 +1,5 @@
/* Function cosf vectorized with AVX2, wrapper version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_s_wrapper_impl.h"
diff --git a/sysdeps/x86_64/fpu/svml_s_cosf8_core_avx.S b/sysdeps/x86_64/fpu/svml_s_cosf8_core_avx.S
index 45f14e23df..bd13e231dc 100644
--- a/sysdeps/x86_64/fpu/svml_s_cosf8_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_s_cosf8_core_avx.S
@@ -1,5 +1,5 @@
/* Function cosf vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_s_wrapper_impl.h"
diff --git a/sysdeps/x86_64/fpu/svml_s_expf16_core.S b/sysdeps/x86_64/fpu/svml_s_expf16_core.S
index 4e18b6f544..9f36422304 100644
--- a/sysdeps/x86_64/fpu/svml_s_expf16_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_expf16_core.S
@@ -1,5 +1,5 @@
/* Function expf vectorized with AVX-512. Wrapper to AVX2 version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_s_wrapper_impl.h"
diff --git a/sysdeps/x86_64/fpu/svml_s_expf4_core.S b/sysdeps/x86_64/fpu/svml_s_expf4_core.S
index a2a6209621..fe007e92f4 100644
--- a/sysdeps/x86_64/fpu/svml_s_expf4_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_expf4_core.S
@@ -1,5 +1,5 @@
/* Function expf vectorized with SSE2.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
@@ -22,7 +22,7 @@
.text
ENTRY (_ZGVbN4v_expf)
-WRAPPER_IMPL_SSE2 __expf_finite
+WRAPPER_IMPL_SSE2 expf
END (_ZGVbN4v_expf)
#ifndef USE_MULTIARCH
diff --git a/sysdeps/x86_64/fpu/svml_s_expf8_core.S b/sysdeps/x86_64/fpu/svml_s_expf8_core.S
index 46297208cd..0888936ab1 100644
--- a/sysdeps/x86_64/fpu/svml_s_expf8_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_expf8_core.S
@@ -1,5 +1,5 @@
/* Function expf vectorized with AVX2, wrapper version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_s_wrapper_impl.h"
diff --git a/sysdeps/x86_64/fpu/svml_s_expf8_core_avx.S b/sysdeps/x86_64/fpu/svml_s_expf8_core_avx.S
index 1210dcf885..8bbfdf87cf 100644
--- a/sysdeps/x86_64/fpu/svml_s_expf8_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_s_expf8_core_avx.S
@@ -1,5 +1,5 @@
/* Function expf vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_s_wrapper_impl.h"
diff --git a/sysdeps/x86_64/fpu/svml_s_expf_data.S b/sysdeps/x86_64/fpu/svml_s_expf_data.S
index a1cb6e7591..cc6a7ecb0e 100644
--- a/sysdeps/x86_64/fpu/svml_s_expf_data.S
+++ b/sysdeps/x86_64/fpu/svml_s_expf_data.S
@@ -1,5 +1,5 @@
/* Data for function expf.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "svml_s_expf_data.h"
diff --git a/sysdeps/x86_64/fpu/svml_s_expf_data.h b/sysdeps/x86_64/fpu/svml_s_expf_data.h
index 56a1d8bdf6..a09db9af82 100644
--- a/sysdeps/x86_64/fpu/svml_s_expf_data.h
+++ b/sysdeps/x86_64/fpu/svml_s_expf_data.h
@@ -1,5 +1,5 @@
/* Offsets for data table for vector function expf.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef S_EXPF_DATA_H
#define S_EXPF_DATA_H
diff --git a/sysdeps/x86_64/fpu/svml_s_logf16_core.S b/sysdeps/x86_64/fpu/svml_s_logf16_core.S
index e1f4b0cf0c..cb8e889f33 100644
--- a/sysdeps/x86_64/fpu/svml_s_logf16_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_logf16_core.S
@@ -1,5 +1,5 @@
/* Function logf vectorized with AVX-512. Wrapper to AVX2 version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_s_wrapper_impl.h"
diff --git a/sysdeps/x86_64/fpu/svml_s_logf4_core.S b/sysdeps/x86_64/fpu/svml_s_logf4_core.S
index 496b93ffa6..a977631fa0 100644
--- a/sysdeps/x86_64/fpu/svml_s_logf4_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_logf4_core.S
@@ -1,5 +1,5 @@
/* Function logf vectorized with SSE2.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
@@ -22,7 +22,7 @@
.text
ENTRY (_ZGVbN4v_logf)
-WRAPPER_IMPL_SSE2 __logf_finite
+WRAPPER_IMPL_SSE2 logf
END (_ZGVbN4v_logf)
#ifndef USE_MULTIARCH
diff --git a/sysdeps/x86_64/fpu/svml_s_logf8_core.S b/sysdeps/x86_64/fpu/svml_s_logf8_core.S
index f0ccee7205..8885d27a04 100644
--- a/sysdeps/x86_64/fpu/svml_s_logf8_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_logf8_core.S
@@ -1,5 +1,5 @@
/* Function logf vectorized with AVX2, wrapper version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_s_wrapper_impl.h"
diff --git a/sysdeps/x86_64/fpu/svml_s_logf8_core_avx.S b/sysdeps/x86_64/fpu/svml_s_logf8_core_avx.S
index 1ddd0381cd..cd4929c1bf 100644
--- a/sysdeps/x86_64/fpu/svml_s_logf8_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_s_logf8_core_avx.S
@@ -1,5 +1,5 @@
/* Function logf vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_s_wrapper_impl.h"
diff --git a/sysdeps/x86_64/fpu/svml_s_logf_data.S b/sysdeps/x86_64/fpu/svml_s_logf_data.S
index 154f98c2e0..c5a0ad0680 100644
--- a/sysdeps/x86_64/fpu/svml_s_logf_data.S
+++ b/sysdeps/x86_64/fpu/svml_s_logf_data.S
@@ -1,5 +1,5 @@
/* Data for vector function logf.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "svml_s_logf_data.h"
diff --git a/sysdeps/x86_64/fpu/svml_s_logf_data.h b/sysdeps/x86_64/fpu/svml_s_logf_data.h
index 82a9903b10..b8758076eb 100644
--- a/sysdeps/x86_64/fpu/svml_s_logf_data.h
+++ b/sysdeps/x86_64/fpu/svml_s_logf_data.h
@@ -1,5 +1,5 @@
/* Offsets for data table for vectorized function logf.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef S_LOGF_DATA_H
#define S_LOGF_DATA_H
diff --git a/sysdeps/x86_64/fpu/svml_s_powf16_core.S b/sysdeps/x86_64/fpu/svml_s_powf16_core.S
index 0859996d0a..015f17b3ce 100644
--- a/sysdeps/x86_64/fpu/svml_s_powf16_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_powf16_core.S
@@ -1,5 +1,5 @@
/* Function powf vectorized with AVX-512. Wrapper to AVX2 version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_s_wrapper_impl.h"
diff --git a/sysdeps/x86_64/fpu/svml_s_powf4_core.S b/sysdeps/x86_64/fpu/svml_s_powf4_core.S
index 4276e6ea28..bd8c809791 100644
--- a/sysdeps/x86_64/fpu/svml_s_powf4_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_powf4_core.S
@@ -1,5 +1,5 @@
/* Function powf vectorized with SSE2.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,14 +14,14 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_s_wrapper_impl.h"
.text
ENTRY (_ZGVbN4vv_powf)
-WRAPPER_IMPL_SSE2_ff __powf_finite
+WRAPPER_IMPL_SSE2_ff powf
END (_ZGVbN4vv_powf)
#ifndef USE_MULTIARCH
diff --git a/sysdeps/x86_64/fpu/svml_s_powf8_core.S b/sysdeps/x86_64/fpu/svml_s_powf8_core.S
index 764dc99ee7..ee44bde294 100644
--- a/sysdeps/x86_64/fpu/svml_s_powf8_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_powf8_core.S
@@ -1,5 +1,5 @@
/* Function powf vectorized with AVX2, wrapper version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_s_wrapper_impl.h"
diff --git a/sysdeps/x86_64/fpu/svml_s_powf8_core_avx.S b/sysdeps/x86_64/fpu/svml_s_powf8_core_avx.S
index 8bb1ef22fd..bac65b0199 100644
--- a/sysdeps/x86_64/fpu/svml_s_powf8_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_s_powf8_core_avx.S
@@ -1,5 +1,5 @@
/* Function powf vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_s_wrapper_impl.h"
diff --git a/sysdeps/x86_64/fpu/svml_s_powf_data.S b/sysdeps/x86_64/fpu/svml_s_powf_data.S
index 74a31abd1e..d86a13f5bf 100644
--- a/sysdeps/x86_64/fpu/svml_s_powf_data.S
+++ b/sysdeps/x86_64/fpu/svml_s_powf_data.S
@@ -1,5 +1,5 @@
/* Data for function powf.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "svml_s_powf_data.h"
diff --git a/sysdeps/x86_64/fpu/svml_s_powf_data.h b/sysdeps/x86_64/fpu/svml_s_powf_data.h
index 5d3270cf27..f78199f396 100644
--- a/sysdeps/x86_64/fpu/svml_s_powf_data.h
+++ b/sysdeps/x86_64/fpu/svml_s_powf_data.h
@@ -1,5 +1,5 @@
/* Offsets for data table for function powf.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef S_POWF_DATA_H
#define S_POWF_DATA_H
diff --git a/sysdeps/x86_64/fpu/svml_s_sincosf16_core.S b/sysdeps/x86_64/fpu/svml_s_sincosf16_core.S
index 40eb974a74..730df85678 100644
--- a/sysdeps/x86_64/fpu/svml_s_sincosf16_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_sincosf16_core.S
@@ -1,5 +1,5 @@
/* Function sincosf vectorized with AVX-512. Wrapper to AVX2 version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_s_wrapper_impl.h"
diff --git a/sysdeps/x86_64/fpu/svml_s_sincosf4_core.S b/sysdeps/x86_64/fpu/svml_s_sincosf4_core.S
index 5daa5118d6..f092f95c55 100644
--- a/sysdeps/x86_64/fpu/svml_s_sincosf4_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_sincosf4_core.S
@@ -1,5 +1,5 @@
/* Function sincosf vectorized with SSE2.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_s_wrapper_impl.h"
diff --git a/sysdeps/x86_64/fpu/svml_s_sincosf8_core.S b/sysdeps/x86_64/fpu/svml_s_sincosf8_core.S
index d6d4600d10..36b03b2cd4 100644
--- a/sysdeps/x86_64/fpu/svml_s_sincosf8_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_sincosf8_core.S
@@ -1,5 +1,5 @@
/* Function sincosf vectorized with AVX2, wrapper version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_s_wrapper_impl.h"
diff --git a/sysdeps/x86_64/fpu/svml_s_sincosf8_core_avx.S b/sysdeps/x86_64/fpu/svml_s_sincosf8_core_avx.S
index 585e6d87c4..1af79eae09 100644
--- a/sysdeps/x86_64/fpu/svml_s_sincosf8_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_s_sincosf8_core_avx.S
@@ -1,5 +1,5 @@
/* Function sincosf vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_s_wrapper_impl.h"
diff --git a/sysdeps/x86_64/fpu/svml_s_sinf16_core.S b/sysdeps/x86_64/fpu/svml_s_sinf16_core.S
index 8c5547e26f..27a56b9fb6 100644
--- a/sysdeps/x86_64/fpu/svml_s_sinf16_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_sinf16_core.S
@@ -1,5 +1,5 @@
/* Function sinf vectorized with AVX-512. Wrapper to AVX2 version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_s_wrapper_impl.h"
diff --git a/sysdeps/x86_64/fpu/svml_s_sinf4_core.S b/sysdeps/x86_64/fpu/svml_s_sinf4_core.S
index d56137b32a..d4bb296302 100644
--- a/sysdeps/x86_64/fpu/svml_s_sinf4_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_sinf4_core.S
@@ -1,5 +1,5 @@
/* Function sinf vectorized with SSE2.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/x86_64/fpu/svml_s_sinf8_core.S b/sysdeps/x86_64/fpu/svml_s_sinf8_core.S
index e39392243e..84768acbe6 100644
--- a/sysdeps/x86_64/fpu/svml_s_sinf8_core.S
+++ b/sysdeps/x86_64/fpu/svml_s_sinf8_core.S
@@ -1,5 +1,5 @@
/* Function sinf vectorized with AVX2, wrapper version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_s_wrapper_impl.h"
diff --git a/sysdeps/x86_64/fpu/svml_s_sinf8_core_avx.S b/sysdeps/x86_64/fpu/svml_s_sinf8_core_avx.S
index 9984e6f9f7..13bd3abdac 100644
--- a/sysdeps/x86_64/fpu/svml_s_sinf8_core_avx.S
+++ b/sysdeps/x86_64/fpu/svml_s_sinf8_core_avx.S
@@ -1,5 +1,5 @@
/* Function sinf vectorized in AVX ISA as wrapper to SSE4 ISA version.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "svml_s_wrapper_impl.h"
diff --git a/sysdeps/x86_64/fpu/svml_s_trig_data.S b/sysdeps/x86_64/fpu/svml_s_trig_data.S
index 8f1e1f60b8..dcaba08dd6 100644
--- a/sysdeps/x86_64/fpu/svml_s_trig_data.S
+++ b/sysdeps/x86_64/fpu/svml_s_trig_data.S
@@ -1,5 +1,5 @@
/* Data for function cosf.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "svml_s_trig_data.h"
diff --git a/sysdeps/x86_64/fpu/svml_s_trig_data.h b/sysdeps/x86_64/fpu/svml_s_trig_data.h
index 0faf161c08..531f1e9b48 100644
--- a/sysdeps/x86_64/fpu/svml_s_trig_data.h
+++ b/sysdeps/x86_64/fpu/svml_s_trig_data.h
@@ -1,5 +1,5 @@
/* Offsets for data table for vectorized sinf, cosf, sincosf.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef S_TRIG_DATA_H
#define S_TRIG_DATA_H
diff --git a/sysdeps/x86_64/fpu/svml_s_wrapper_impl.h b/sysdeps/x86_64/fpu/svml_s_wrapper_impl.h
index 937afb5cbc..6a0a0b5685 100644
--- a/sysdeps/x86_64/fpu/svml_s_wrapper_impl.h
+++ b/sysdeps/x86_64/fpu/svml_s_wrapper_impl.h
@@ -1,5 +1,5 @@
/* Wrapper implementations of vector math functions.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* SSE2 ISA version as wrapper to scalar. */
.macro WRAPPER_IMPL_SSE2 callee
diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-alias-avx-main.c b/sysdeps/x86_64/fpu/test-double-libmvec-alias-avx-main.c
deleted file mode 100644
index 43914ef0e7..0000000000
--- a/sysdeps/x86_64/fpu/test-double-libmvec-alias-avx-main.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "test-double-libmvec-alias.c"
diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-alias-avx-mod.c b/sysdeps/x86_64/fpu/test-double-libmvec-alias-avx-mod.c
deleted file mode 100644
index 514883dcf9..0000000000
--- a/sysdeps/x86_64/fpu/test-double-libmvec-alias-avx-mod.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "test-double-libmvec-alias-mod.c"
diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-alias-avx.c b/sysdeps/x86_64/fpu/test-double-libmvec-alias-avx.c
deleted file mode 100644
index 43914ef0e7..0000000000
--- a/sysdeps/x86_64/fpu/test-double-libmvec-alias-avx.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "test-double-libmvec-alias.c"
diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-alias-avx2-main.c b/sysdeps/x86_64/fpu/test-double-libmvec-alias-avx2-main.c
deleted file mode 100644
index 43914ef0e7..0000000000
--- a/sysdeps/x86_64/fpu/test-double-libmvec-alias-avx2-main.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "test-double-libmvec-alias.c"
diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-alias-avx2-mod.c b/sysdeps/x86_64/fpu/test-double-libmvec-alias-avx2-mod.c
deleted file mode 100644
index 514883dcf9..0000000000
--- a/sysdeps/x86_64/fpu/test-double-libmvec-alias-avx2-mod.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "test-double-libmvec-alias-mod.c"
diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-alias-avx2.c b/sysdeps/x86_64/fpu/test-double-libmvec-alias-avx2.c
deleted file mode 100644
index 43914ef0e7..0000000000
--- a/sysdeps/x86_64/fpu/test-double-libmvec-alias-avx2.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "test-double-libmvec-alias.c"
diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-alias-avx512-main.c b/sysdeps/x86_64/fpu/test-double-libmvec-alias-avx512-main.c
deleted file mode 100644
index 43914ef0e7..0000000000
--- a/sysdeps/x86_64/fpu/test-double-libmvec-alias-avx512-main.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "test-double-libmvec-alias.c"
diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-alias-avx512-mod.c b/sysdeps/x86_64/fpu/test-double-libmvec-alias-avx512-mod.c
deleted file mode 100644
index 514883dcf9..0000000000
--- a/sysdeps/x86_64/fpu/test-double-libmvec-alias-avx512-mod.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "test-double-libmvec-alias-mod.c"
diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-alias-avx512.c b/sysdeps/x86_64/fpu/test-double-libmvec-alias-avx512.c
deleted file mode 100644
index 43914ef0e7..0000000000
--- a/sysdeps/x86_64/fpu/test-double-libmvec-alias-avx512.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "test-double-libmvec-alias.c"
diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-alias-main.c b/sysdeps/x86_64/fpu/test-double-libmvec-alias-main.c
deleted file mode 100644
index 43914ef0e7..0000000000
--- a/sysdeps/x86_64/fpu/test-double-libmvec-alias-main.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "test-double-libmvec-alias.c"
diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-alias-mod.c b/sysdeps/x86_64/fpu/test-double-libmvec-alias-mod.c
deleted file mode 100644
index 6f2e588021..0000000000
--- a/sysdeps/x86_64/fpu/test-double-libmvec-alias-mod.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Part of test to build shared library to ensure link against
- *_finite aliases from libmvec.
- Copyright (C) 2016-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-#include <stdlib.h>
-#include <math-tests-arch.h>
-
-#include "test-double.h"
-#include "test-libmvec-alias-mod.c"
diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-alias.c b/sysdeps/x86_64/fpu/test-double-libmvec-alias.c
deleted file mode 100644
index d38b49d6c8..0000000000
--- a/sysdeps/x86_64/fpu/test-double-libmvec-alias.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Part of test to ensure link against *_finite aliases from libmvec.
- Copyright (C) 2016-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-extern int
-test_finite_alias (void);
-
-static int
-do_test (void)
-{
- return test_finite_alias ();
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../../../test-skeleton.c"
diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-sincos-main.c b/sysdeps/x86_64/fpu/test-double-libmvec-sincos-main.c
index 2e52fddf5d..1f1568ddd9 100644
--- a/sysdeps/x86_64/fpu/test-double-libmvec-sincos-main.c
+++ b/sysdeps/x86_64/fpu/test-double-libmvec-sincos-main.c
@@ -1,5 +1,5 @@
/* Test for vector sincos ABI.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-sincos.c b/sysdeps/x86_64/fpu/test-double-libmvec-sincos.c
index cffaa73135..78e50fd76a 100644
--- a/sysdeps/x86_64/fpu/test-double-libmvec-sincos.c
+++ b/sysdeps/x86_64/fpu/test-double-libmvec-sincos.c
@@ -1,5 +1,5 @@
/* Test for vector sincos ABI.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math-tests-arch.h>
diff --git a/sysdeps/x86_64/fpu/test-double-vlen2-wrappers.c b/sysdeps/x86_64/fpu/test-double-vlen2-wrappers.c
index 4ff1439f9c..08c6d87e4a 100644
--- a/sysdeps/x86_64/fpu/test-double-vlen2-wrappers.c
+++ b/sysdeps/x86_64/fpu/test-double-vlen2-wrappers.c
@@ -1,5 +1,5 @@
/* Wrapper part of tests for SSE ISA versions of vector math functions.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "test-double-vlen2.h"
#include "test-math-vector-sincos.h"
diff --git a/sysdeps/x86_64/fpu/test-double-vlen4-avx2-wrappers.c b/sysdeps/x86_64/fpu/test-double-vlen4-avx2-wrappers.c
index c7bdad517b..ff4630b91e 100644
--- a/sysdeps/x86_64/fpu/test-double-vlen4-avx2-wrappers.c
+++ b/sysdeps/x86_64/fpu/test-double-vlen4-avx2-wrappers.c
@@ -1,5 +1,5 @@
/* Wrapper part of tests for AVX2 ISA versions of vector math functions.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "test-double-vlen4.h"
#include "test-math-vector-sincos.h"
diff --git a/sysdeps/x86_64/fpu/test-double-vlen4-avx2.h b/sysdeps/x86_64/fpu/test-double-vlen4-avx2.h
index 4b196e66fc..eace9b6d00 100644
--- a/sysdeps/x86_64/fpu/test-double-vlen4-avx2.h
+++ b/sysdeps/x86_64/fpu/test-double-vlen4-avx2.h
@@ -1,5 +1,5 @@
/* Tests for AVX2 ISA versions of vector math functions.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <test-double-vlen4.h>
diff --git a/sysdeps/x86_64/fpu/test-double-vlen4-wrappers.c b/sysdeps/x86_64/fpu/test-double-vlen4-wrappers.c
index 2bb0085700..2306166fe9 100644
--- a/sysdeps/x86_64/fpu/test-double-vlen4-wrappers.c
+++ b/sysdeps/x86_64/fpu/test-double-vlen4-wrappers.c
@@ -1,5 +1,5 @@
/* Wrapper part of tests for AVX ISA versions of vector math functions.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "test-double-vlen4.h"
#include "test-math-vector-sincos.h"
diff --git a/sysdeps/x86_64/fpu/test-double-vlen4.h b/sysdeps/x86_64/fpu/test-double-vlen4.h
index 316340cb59..39d16196dd 100644
--- a/sysdeps/x86_64/fpu/test-double-vlen4.h
+++ b/sysdeps/x86_64/fpu/test-double-vlen4.h
@@ -1,5 +1,5 @@
/* Tests for AVX ISA versions of vector math functions.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include_next <test-double-vlen4.h>
diff --git a/sysdeps/x86_64/fpu/test-double-vlen8-wrappers.c b/sysdeps/x86_64/fpu/test-double-vlen8-wrappers.c
index ea179284ed..7baae5842e 100644
--- a/sysdeps/x86_64/fpu/test-double-vlen8-wrappers.c
+++ b/sysdeps/x86_64/fpu/test-double-vlen8-wrappers.c
@@ -1,5 +1,5 @@
/* Wrapper part of tests for AVX-512 versions of vector math functions.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "test-double-vlen8.h"
#include "test-math-vector-sincos.h"
diff --git a/sysdeps/x86_64/fpu/test-double-vlen8.h b/sysdeps/x86_64/fpu/test-double-vlen8.h
index 41d188081e..a2dcd59dbb 100644
--- a/sysdeps/x86_64/fpu/test-double-vlen8.h
+++ b/sysdeps/x86_64/fpu/test-double-vlen8.h
@@ -1,5 +1,5 @@
/* Tests for AVX-512 versions of vector math functions.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include_next <test-double-vlen8.h>
diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-alias-avx-main.c b/sysdeps/x86_64/fpu/test-float-libmvec-alias-avx-main.c
deleted file mode 100644
index f3691cc8e6..0000000000
--- a/sysdeps/x86_64/fpu/test-float-libmvec-alias-avx-main.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "test-float-libmvec-alias.c"
diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-alias-avx-mod.c b/sysdeps/x86_64/fpu/test-float-libmvec-alias-avx-mod.c
deleted file mode 100644
index 7fc3d8aedd..0000000000
--- a/sysdeps/x86_64/fpu/test-float-libmvec-alias-avx-mod.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "test-float-libmvec-alias-mod.c"
diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-alias-avx.c b/sysdeps/x86_64/fpu/test-float-libmvec-alias-avx.c
deleted file mode 100644
index f3691cc8e6..0000000000
--- a/sysdeps/x86_64/fpu/test-float-libmvec-alias-avx.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "test-float-libmvec-alias.c"
diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-alias-avx2-main.c b/sysdeps/x86_64/fpu/test-float-libmvec-alias-avx2-main.c
deleted file mode 100644
index f3691cc8e6..0000000000
--- a/sysdeps/x86_64/fpu/test-float-libmvec-alias-avx2-main.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "test-float-libmvec-alias.c"
diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-alias-avx2-mod.c b/sysdeps/x86_64/fpu/test-float-libmvec-alias-avx2-mod.c
deleted file mode 100644
index 7fc3d8aedd..0000000000
--- a/sysdeps/x86_64/fpu/test-float-libmvec-alias-avx2-mod.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "test-float-libmvec-alias-mod.c"
diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-alias-avx2.c b/sysdeps/x86_64/fpu/test-float-libmvec-alias-avx2.c
deleted file mode 100644
index f3691cc8e6..0000000000
--- a/sysdeps/x86_64/fpu/test-float-libmvec-alias-avx2.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "test-float-libmvec-alias.c"
diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-alias-avx512-main.c b/sysdeps/x86_64/fpu/test-float-libmvec-alias-avx512-main.c
deleted file mode 100644
index f3691cc8e6..0000000000
--- a/sysdeps/x86_64/fpu/test-float-libmvec-alias-avx512-main.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "test-float-libmvec-alias.c"
diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-alias-avx512-mod.c b/sysdeps/x86_64/fpu/test-float-libmvec-alias-avx512-mod.c
deleted file mode 100644
index 7fc3d8aedd..0000000000
--- a/sysdeps/x86_64/fpu/test-float-libmvec-alias-avx512-mod.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "test-float-libmvec-alias-mod.c"
diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-alias-avx512.c b/sysdeps/x86_64/fpu/test-float-libmvec-alias-avx512.c
deleted file mode 100644
index f3691cc8e6..0000000000
--- a/sysdeps/x86_64/fpu/test-float-libmvec-alias-avx512.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "test-float-libmvec-alias.c"
diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-alias-main.c b/sysdeps/x86_64/fpu/test-float-libmvec-alias-main.c
deleted file mode 100644
index f3691cc8e6..0000000000
--- a/sysdeps/x86_64/fpu/test-float-libmvec-alias-main.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "test-float-libmvec-alias.c"
diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-alias-mod.c b/sysdeps/x86_64/fpu/test-float-libmvec-alias-mod.c
deleted file mode 100644
index 5e6a587a94..0000000000
--- a/sysdeps/x86_64/fpu/test-float-libmvec-alias-mod.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Part of test to build shared library to ensure link against
- *_finite aliases from libmvec.
- Copyright (C) 2016-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <math.h>
-#include <stdlib.h>
-#include <math-tests-arch.h>
-
-#include "test-float.h"
-#include "test-libmvec-alias-mod.c"
diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-alias.c b/sysdeps/x86_64/fpu/test-float-libmvec-alias.c
deleted file mode 100644
index d38b49d6c8..0000000000
--- a/sysdeps/x86_64/fpu/test-float-libmvec-alias.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Part of test to ensure link against *_finite aliases from libmvec.
- Copyright (C) 2016-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-extern int
-test_finite_alias (void);
-
-static int
-do_test (void)
-{
- return test_finite_alias ();
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../../../test-skeleton.c"
diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-sincosf-main.c b/sysdeps/x86_64/fpu/test-float-libmvec-sincosf-main.c
index ce1dd1a8a4..f00e708c16 100644
--- a/sysdeps/x86_64/fpu/test-float-libmvec-sincosf-main.c
+++ b/sysdeps/x86_64/fpu/test-float-libmvec-sincosf-main.c
@@ -1,5 +1,5 @@
/* Test for vector sincosf ABI.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/sysdeps/x86_64/fpu/test-float-libmvec-sincosf.c b/sysdeps/x86_64/fpu/test-float-libmvec-sincosf.c
index a56d9680a0..cc86aca336 100644
--- a/sysdeps/x86_64/fpu/test-float-libmvec-sincosf.c
+++ b/sysdeps/x86_64/fpu/test-float-libmvec-sincosf.c
@@ -1,5 +1,5 @@
/* Test for vector sincosf ABI.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math-tests-arch.h>
diff --git a/sysdeps/x86_64/fpu/test-float-vlen16-wrappers.c b/sysdeps/x86_64/fpu/test-float-vlen16-wrappers.c
index d2a81ecf53..ca91f795ec 100644
--- a/sysdeps/x86_64/fpu/test-float-vlen16-wrappers.c
+++ b/sysdeps/x86_64/fpu/test-float-vlen16-wrappers.c
@@ -1,5 +1,5 @@
/* Wrapper part of tests for AVX-512 ISA versions of vector math functions.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "test-float-vlen16.h"
#include "test-math-vector-sincos.h"
diff --git a/sysdeps/x86_64/fpu/test-float-vlen16.h b/sysdeps/x86_64/fpu/test-float-vlen16.h
index ffe27866b5..93b9e914bc 100644
--- a/sysdeps/x86_64/fpu/test-float-vlen16.h
+++ b/sysdeps/x86_64/fpu/test-float-vlen16.h
@@ -1,5 +1,5 @@
/* Tests for AVX-512 ISA versions of vector math functions.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include_next <test-float-vlen16.h>
diff --git a/sysdeps/x86_64/fpu/test-float-vlen4-wrappers.c b/sysdeps/x86_64/fpu/test-float-vlen4-wrappers.c
index afa7da26f6..f6ed0eb849 100644
--- a/sysdeps/x86_64/fpu/test-float-vlen4-wrappers.c
+++ b/sysdeps/x86_64/fpu/test-float-vlen4-wrappers.c
@@ -1,5 +1,5 @@
/* Wrapper part of tests for SSE ISA versions of vector math functions.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "test-float-vlen4.h"
#include "test-math-vector-sincos.h"
diff --git a/sysdeps/x86_64/fpu/test-float-vlen8-avx2-wrappers.c b/sysdeps/x86_64/fpu/test-float-vlen8-avx2-wrappers.c
index d7e79a3f37..caba3fb347 100644
--- a/sysdeps/x86_64/fpu/test-float-vlen8-avx2-wrappers.c
+++ b/sysdeps/x86_64/fpu/test-float-vlen8-avx2-wrappers.c
@@ -1,5 +1,5 @@
/* Wrapper part of tests for AVX2 ISA versions of vector math functions.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "test-float-vlen8.h"
#include "test-math-vector-sincos.h"
diff --git a/sysdeps/x86_64/fpu/test-float-vlen8-avx2.h b/sysdeps/x86_64/fpu/test-float-vlen8-avx2.h
index c468dd6e69..2b145db7ce 100644
--- a/sysdeps/x86_64/fpu/test-float-vlen8-avx2.h
+++ b/sysdeps/x86_64/fpu/test-float-vlen8-avx2.h
@@ -1,5 +1,5 @@
/* Tests for AVX2 ISA versions of vector math functions.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <test-float-vlen8.h>
diff --git a/sysdeps/x86_64/fpu/test-float-vlen8-wrappers.c b/sysdeps/x86_64/fpu/test-float-vlen8-wrappers.c
index 6f7869ba3d..5903a64144 100644
--- a/sysdeps/x86_64/fpu/test-float-vlen8-wrappers.c
+++ b/sysdeps/x86_64/fpu/test-float-vlen8-wrappers.c
@@ -1,5 +1,5 @@
/* Wrapper part of tests for AVX ISA versions of vector math functions.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "test-float-vlen8.h"
#include "test-math-vector-sincos.h"
diff --git a/sysdeps/x86_64/fpu/test-float-vlen8.h b/sysdeps/x86_64/fpu/test-float-vlen8.h
index 153820ecc2..eb056c2cba 100644
--- a/sysdeps/x86_64/fpu/test-float-vlen8.h
+++ b/sysdeps/x86_64/fpu/test-float-vlen8.h
@@ -1,5 +1,5 @@
/* Tests for AVX ISA versions of vector math functions.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include_next <test-float-vlen8.h>
diff --git a/sysdeps/x86_64/fpu/test-libmvec-alias-mod.c b/sysdeps/x86_64/fpu/test-libmvec-alias-mod.c
deleted file mode 100644
index 6d70844147..0000000000
--- a/sysdeps/x86_64/fpu/test-libmvec-alias-mod.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/* Part of test to build shared library to ensure link against
- *_finite aliases from libmvec.
- Copyright (C) 2016-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#define N 4000
-FLOAT log_arg[N];
-FLOAT exp_arg[N];
-FLOAT log_res[N];
-FLOAT exp_res[N];
-FLOAT pow_res[N];
-int arch_check = 1;
-
-static void
-init_arg (void)
-{
- int i;
-
- CHECK_ARCH_EXT;
-
- arch_check = 0;
-
- for (i = 0; i < N; i += 1)
- {
- log_arg[i] = 1.0;
- exp_arg[i] = 0.0;
- }
-}
-
-int
-test_finite_alias (void)
-{
- int i;
-
- init_arg ();
-
- if (arch_check) return 77;
-
-#pragma omp simd
- for (i = 0; i < N; i += 1)
- {
- log_res[i] = FUNC (log) (log_arg[i]);
- exp_res[i] = FUNC (exp) (exp_arg[i]);
- pow_res[i] = FUNC (pow) (log_arg[i], log_arg[i]);
- }
-
- if (log_res[0] != 0.0) return 1;
- if (exp_res[0] != 1.0) return 1;
- if (pow_res[0] != 1.0) return 1;
-
- return 0;
-}
diff --git a/sysdeps/x86_64/fpu/x86_64-math-asm.h b/sysdeps/x86_64/fpu/x86_64-math-asm.h
index 597b967b7b..a0a43740e4 100644
--- a/sysdeps/x86_64/fpu/x86_64-math-asm.h
+++ b/sysdeps/x86_64/fpu/x86_64-math-asm.h
@@ -1,5 +1,5 @@
/* Helper macros for x86_64 libm functions.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _X86_64_MATH_ASM_H
#define _X86_64_MATH_ASM_H 1
diff --git a/sysdeps/x86_64/hp-timing.h b/sysdeps/x86_64/hp-timing.h
deleted file mode 100644
index ec543bef03..0000000000
--- a/sysdeps/x86_64/hp-timing.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* High precision, low overhead timing functions. x86-64 version.
- Copyright (C) 2002-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _HP_TIMING_H
-#define _HP_TIMING_H 1
-
-/* We always assume having the timestamp register. */
-#define HP_TIMING_AVAIL (1)
-#define HP_SMALL_TIMING_AVAIL (1)
-
-/* We indeed have inlined functions. */
-#define HP_TIMING_INLINE (1)
-
-/* We use 64bit values for the times. */
-typedef unsigned long long int hp_timing_t;
-
-/* The "=A" constraint used in 32-bit mode does not work in 64-bit mode. */
-#define HP_TIMING_NOW(Var) \
- ({ unsigned int _hi, _lo; \
- asm volatile ("rdtsc" : "=a" (_lo), "=d" (_hi)); \
- (Var) = ((unsigned long long int) _hi << 32) | _lo; })
-
-#include <hp-timing-common.h>
-
-#endif /* hp-timing.h */
diff --git a/sysdeps/x86_64/htonl.S b/sysdeps/x86_64/htonl.S
index 23e2046caa..e4ee2ed773 100644
--- a/sysdeps/x86_64/htonl.S
+++ b/sysdeps/x86_64/htonl.S
@@ -1,5 +1,5 @@
/* Change byte order in word. For AMD x86-64.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "asm-syntax.h"
diff --git a/sysdeps/x86_64/ifuncmain8.c b/sysdeps/x86_64/ifuncmain8.c
index 449998df50..03b3dad4df 100644
--- a/sysdeps/x86_64/ifuncmain8.c
+++ b/sysdeps/x86_64/ifuncmain8.c
@@ -1,5 +1,5 @@
/* Test IFUNC selector with floating-point parameters.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
diff --git a/sysdeps/x86_64/ifuncmod8.c b/sysdeps/x86_64/ifuncmod8.c
index 8225c4da12..f396bb245f 100644
--- a/sysdeps/x86_64/ifuncmod8.c
+++ b/sysdeps/x86_64/ifuncmod8.c
@@ -1,5 +1,5 @@
/* Test IFUNC selector with floating-point parameters.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <emmintrin.h>
diff --git a/sysdeps/x86_64/isa.h b/sysdeps/x86_64/isa.h
new file mode 100644
index 0000000000..f2bfc4743f
--- /dev/null
+++ b/sysdeps/x86_64/isa.h
@@ -0,0 +1,24 @@
+/* x86 ISA info. x86-64 version.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _ISA_H
+#define _ISA_H
+
+#define MINIMUM_ISA 8664
+
+#endif
diff --git a/sysdeps/x86_64/jmpbuf-offsets.h b/sysdeps/x86_64/jmpbuf-offsets.h
index 6d1ee5e812..9e48cbe76c 100644
--- a/sysdeps/x86_64/jmpbuf-offsets.h
+++ b/sysdeps/x86_64/jmpbuf-offsets.h
@@ -1,5 +1,5 @@
/* Private macros for accessing __jmp_buf contents. x86-64 version.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* We only need to save callee-saved registers plus stackpointer and
program counter. */
diff --git a/sysdeps/x86_64/jmpbuf-unwind.h b/sysdeps/x86_64/jmpbuf-unwind.h
index 49208bdd9e..3257128a58 100644
--- a/sysdeps/x86_64/jmpbuf-unwind.h
+++ b/sysdeps/x86_64/jmpbuf-unwind.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <setjmp.h>
#include <jmpbuf-offsets.h>
diff --git a/sysdeps/x86_64/lshift.S b/sysdeps/x86_64/lshift.S
index af568768d0..be32b5c7f0 100644
--- a/sysdeps/x86_64/lshift.S
+++ b/sysdeps/x86_64/lshift.S
@@ -1,5 +1,5 @@
/* x86-64 __mpn_lshift --
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
The GNU MP Library is free software; you can redistribute it and/or modify
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not,
- see <http://www.gnu.org/licenses/>. */
+ see <https://www.gnu.org/licenses/>. */
#include "sysdep.h"
#include "asm-syntax.h"
diff --git a/sysdeps/x86_64/machine-gmon.h b/sysdeps/x86_64/machine-gmon.h
index 8bc111612c..8c8d5bc7a7 100644
--- a/sysdeps/x86_64/machine-gmon.h
+++ b/sysdeps/x86_64/machine-gmon.h
@@ -1,5 +1,5 @@
/* x86-64-specific implementation of profiling support.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/x86_64/memchr.S b/sysdeps/x86_64/memchr.S
index feef5d4f24..b1de9baf8d 100644
--- a/sysdeps/x86_64/memchr.S
+++ b/sysdeps/x86_64/memchr.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
@@ -34,12 +34,16 @@ ENTRY(MEMCHR)
mov %edi, %ecx
#ifdef USE_AS_WMEMCHR
- test %rdx, %rdx
+ test %RDX_LP, %RDX_LP
jz L(return_null)
- shl $2, %rdx
+ shl $2, %RDX_LP
#else
+# ifdef __ILP32__
+ /* Clear the upper 32 bits. */
+ movl %edx, %edx
+# endif
punpcklbw %xmm1, %xmm1
- test %rdx, %rdx
+ test %RDX_LP, %RDX_LP
jz L(return_null)
punpcklbw %xmm1, %xmm1
#endif
diff --git a/sysdeps/x86_64/memcmp.S b/sysdeps/x86_64/memcmp.S
index bcb4a2e88d..2f59e0973d 100644
--- a/sysdeps/x86_64/memcmp.S
+++ b/sysdeps/x86_64/memcmp.S
@@ -1,5 +1,5 @@
/* memcmp with SSE2
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,20 +15,24 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
.text
ENTRY (memcmp)
- test %rdx, %rdx
+#ifdef __ILP32__
+ /* Clear the upper 32 bits. */
+ movl %edx, %edx
+#endif
+ test %RDX_LP, %RDX_LP
jz L(finz)
cmpq $1, %rdx
- jle L(finr1b)
+ jbe L(finr1b)
subq %rdi, %rsi
movq %rdx, %r10
cmpq $32, %r10
- jge L(gt32)
+ jae L(gt32)
/* Handle small chunks and last block of less than 32 bytes. */
L(small):
testq $1, %r10
@@ -156,7 +160,7 @@ L(A32):
movq %r11, %r10
andq $-32, %r10
cmpq %r10, %rdi
- jge L(mt16)
+ jae L(mt16)
/* Pre-unroll to be ready for unrolled 64B loop. */
testq $32, %rdi
jz L(A64)
@@ -178,7 +182,7 @@ L(A64):
movq %r11, %r10
andq $-64, %r10
cmpq %r10, %rdi
- jge L(mt32)
+ jae L(mt32)
L(A64main):
movdqu (%rdi,%rsi), %xmm0
@@ -216,7 +220,7 @@ L(mt32):
movq %r11, %r10
andq $-32, %r10
cmpq %r10, %rdi
- jge L(mt16)
+ jae L(mt16)
L(A32main):
movdqu (%rdi,%rsi), %xmm0
@@ -254,7 +258,7 @@ L(ATR):
movq %r11, %r10
andq $-32, %r10
cmpq %r10, %rdi
- jge L(mt16)
+ jae L(mt16)
testq $16, %rdi
jz L(ATR32)
@@ -325,7 +329,7 @@ L(ATR64main):
movq %r11, %r10
andq $-32, %r10
cmpq %r10, %rdi
- jge L(mt16)
+ jae L(mt16)
L(ATR32res):
movdqa (%rdi,%rsi), %xmm0
diff --git a/sysdeps/x86_64/memcopy.h b/sysdeps/x86_64/memcopy.h
deleted file mode 100644
index 590b6cb16b..0000000000
--- a/sysdeps/x86_64/memcopy.h
+++ /dev/null
@@ -1 +0,0 @@
-/* X86-64 doesn't use memory copy functions. */
diff --git a/sysdeps/x86_64/memcpy_chk.S b/sysdeps/x86_64/memcpy_chk.S
index aa33cd5fc1..a2cbd5992b 100644
--- a/sysdeps/x86_64/memcpy_chk.S
+++ b/sysdeps/x86_64/memcpy_chk.S
@@ -1,5 +1,5 @@
/* Checking memcpy for x86-64.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "asm-syntax.h"
diff --git a/sysdeps/x86_64/memmove.S b/sysdeps/x86_64/memmove.S
index 9cc92ff9a9..68d8ddcbb0 100644
--- a/sysdeps/x86_64/memmove.S
+++ b/sysdeps/x86_64/memmove.S
@@ -1,5 +1,5 @@
/* Optimized memmove for x86-64.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/x86_64/memmove_chk.S b/sysdeps/x86_64/memmove_chk.S
index 39b56dde65..e81df77445 100644
--- a/sysdeps/x86_64/memmove_chk.S
+++ b/sysdeps/x86_64/memmove_chk.S
@@ -1,5 +1,5 @@
/* Checking memmove for x86-64.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "asm-syntax.h"
diff --git a/sysdeps/x86_64/mempcpy_chk.S b/sysdeps/x86_64/mempcpy_chk.S
index 0e9e24db00..e15f2eed22 100644
--- a/sysdeps/x86_64/mempcpy_chk.S
+++ b/sysdeps/x86_64/mempcpy_chk.S
@@ -1,5 +1,5 @@
/* Checking mempcpy for x86-64.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "asm-syntax.h"
diff --git a/sysdeps/x86_64/memrchr.S b/sysdeps/x86_64/memrchr.S
index b8e3fa1d87..ba77bbc193 100644
--- a/sysdeps/x86_64/memrchr.S
+++ b/sysdeps/x86_64/memrchr.S
@@ -1,6 +1,6 @@
/* fast SSE2 memrchr with 64 byte loop and pmaxub instruction using
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
@@ -24,13 +24,13 @@
ENTRY (__memrchr)
movd %esi, %xmm1
- sub $16, %rdx
+ sub $16, %RDX_LP
jbe L(length_less16)
punpcklbw %xmm1, %xmm1
punpcklbw %xmm1, %xmm1
- add %rdx, %rdi
+ add %RDX_LP, %RDI_LP
pshufd $0, %xmm1, %xmm1
movdqu (%rdi), %xmm0
diff --git a/sysdeps/x86_64/memset.S b/sysdeps/x86_64/memset.S
index b342679576..10e9bc0074 100644
--- a/sysdeps/x86_64/memset.S
+++ b/sysdeps/x86_64/memset.S
@@ -1,6 +1,6 @@
/* memset/bzero -- set memory area to CH/0
Optimized version for x86-64.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/x86_64/memset_chk.S b/sysdeps/x86_64/memset_chk.S
index 4ecf914fbe..826049e53f 100644
--- a/sysdeps/x86_64/memset_chk.S
+++ b/sysdeps/x86_64/memset_chk.S
@@ -1,5 +1,5 @@
/* Checking memset for x86-64.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "asm-syntax.h"
diff --git a/sysdeps/x86_64/memusage.h b/sysdeps/x86_64/memusage.h
index 45fd920b52..9e9dad0792 100644
--- a/sysdeps/x86_64/memusage.h
+++ b/sysdeps/x86_64/memusage.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define GETSP() ({ register uintptr_t stack_ptr asm ("rsp"); stack_ptr; })
#define GETTIME(low,high) asm ("rdtsc" : "=a" (low), "=d" (high))
diff --git a/sysdeps/x86_64/mul_1.S b/sysdeps/x86_64/mul_1.S
index c38927b5a0..117c77cca0 100644
--- a/sysdeps/x86_64/mul_1.S
+++ b/sysdeps/x86_64/mul_1.S
@@ -1,6 +1,6 @@
/* AMD64 __mpn_mul_1 -- Multiply a limb vector with a limb and store
the result in a second limb vector.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
The GNU MP Library is free software; you can redistribute it and/or modify
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not,
- see <http://www.gnu.org/licenses/>. */
+ see <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "asm-syntax.h"
diff --git a/sysdeps/x86_64/multiarch/Makefile b/sysdeps/x86_64/multiarch/Makefile
index bb5e970735..395e432c09 100644
--- a/sysdeps/x86_64/multiarch/Makefile
+++ b/sysdeps/x86_64/multiarch/Makefile
@@ -24,11 +24,14 @@ sysdep_routines += strncat-c stpncpy-c strncpy-c \
strchr-sse2 strchrnul-sse2 strchr-avx2 strchrnul-avx2 \
strrchr-sse2 strrchr-avx2 \
strlen-sse2 strnlen-sse2 strlen-avx2 strnlen-avx2 \
+ strcat-avx2 strncat-avx2 \
strcat-ssse3 strncat-ssse3\
+ strcpy-avx2 strncpy-avx2 \
strcpy-sse2 stpcpy-sse2 \
strcpy-ssse3 strncpy-ssse3 stpcpy-ssse3 stpncpy-ssse3 \
strcpy-sse2-unaligned strncpy-sse2-unaligned \
stpcpy-sse2-unaligned stpncpy-sse2-unaligned \
+ stpcpy-avx2 stpncpy-avx2 \
strcat-sse2 \
strcat-sse2-unaligned strncat-sse2-unaligned \
strchr-sse2-no-bsf memcmp-ssse3 strstr-sse2-unaligned \
diff --git a/sysdeps/x86_64/multiarch/ifunc-avx2.h b/sysdeps/x86_64/multiarch/ifunc-avx2.h
index 9cab837642..8aed50cf54 100644
--- a/sysdeps/x86_64/multiarch/ifunc-avx2.h
+++ b/sysdeps/x86_64/multiarch/ifunc-avx2.h
@@ -1,6 +1,6 @@
/* Common definition for ifunc selections optimized with SSE2 and AVX2.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <init-arch.h>
diff --git a/sysdeps/x86_64/multiarch/ifunc-impl-list.c b/sysdeps/x86_64/multiarch/ifunc-impl-list.c
index 9aaaef7251..f0a7766de2 100644
--- a/sysdeps/x86_64/multiarch/ifunc-impl-list.c
+++ b/sysdeps/x86_64/multiarch/ifunc-impl-list.c
@@ -1,5 +1,5 @@
/* Enumerate available IFUNC implementations of a function. x86-64 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <string.h>
@@ -199,6 +199,8 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
IFUNC_IMPL (i, name, stpncpy,
IFUNC_IMPL_ADD (array, i, stpncpy, HAS_CPU_FEATURE (SSSE3),
__stpncpy_ssse3)
+ IFUNC_IMPL_ADD (array, i, stpncpy, HAS_ARCH_FEATURE (AVX2_Usable),
+ __stpncpy_avx2)
IFUNC_IMPL_ADD (array, i, stpncpy, 1,
__stpncpy_sse2_unaligned)
IFUNC_IMPL_ADD (array, i, stpncpy, 1, __stpncpy_sse2))
@@ -207,6 +209,8 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
IFUNC_IMPL (i, name, stpcpy,
IFUNC_IMPL_ADD (array, i, stpcpy, HAS_CPU_FEATURE (SSSE3),
__stpcpy_ssse3)
+ IFUNC_IMPL_ADD (array, i, stpcpy, HAS_ARCH_FEATURE (AVX2_Usable),
+ __stpcpy_avx2)
IFUNC_IMPL_ADD (array, i, stpcpy, 1, __stpcpy_sse2_unaligned)
IFUNC_IMPL_ADD (array, i, stpcpy, 1, __stpcpy_sse2))
@@ -239,6 +243,8 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
/* Support sysdeps/x86_64/multiarch/strcat.c. */
IFUNC_IMPL (i, name, strcat,
+ IFUNC_IMPL_ADD (array, i, strcat, HAS_ARCH_FEATURE (AVX2_Usable),
+ __strcat_avx2)
IFUNC_IMPL_ADD (array, i, strcat, HAS_CPU_FEATURE (SSSE3),
__strcat_ssse3)
IFUNC_IMPL_ADD (array, i, strcat, 1, __strcat_sse2_unaligned)
@@ -280,6 +286,8 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
/* Support sysdeps/x86_64/multiarch/strcpy.c. */
IFUNC_IMPL (i, name, strcpy,
+ IFUNC_IMPL_ADD (array, i, strcpy, HAS_ARCH_FEATURE (AVX2_Usable),
+ __strcpy_avx2)
IFUNC_IMPL_ADD (array, i, strcpy, HAS_CPU_FEATURE (SSSE3),
__strcpy_ssse3)
IFUNC_IMPL_ADD (array, i, strcpy, 1, __strcpy_sse2_unaligned)
@@ -321,6 +329,8 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
/* Support sysdeps/x86_64/multiarch/strncat.c. */
IFUNC_IMPL (i, name, strncat,
+ IFUNC_IMPL_ADD (array, i, strncat, HAS_ARCH_FEATURE (AVX2_Usable),
+ __strncat_avx2)
IFUNC_IMPL_ADD (array, i, strncat, HAS_CPU_FEATURE (SSSE3),
__strncat_ssse3)
IFUNC_IMPL_ADD (array, i, strncat, 1,
@@ -329,6 +339,8 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
/* Support sysdeps/x86_64/multiarch/strncpy.c. */
IFUNC_IMPL (i, name, strncpy,
+ IFUNC_IMPL_ADD (array, i, strncpy, HAS_ARCH_FEATURE (AVX2_Usable),
+ __strncpy_avx2)
IFUNC_IMPL_ADD (array, i, strncpy, HAS_CPU_FEATURE (SSSE3),
__strncpy_ssse3)
IFUNC_IMPL_ADD (array, i, strncpy, 1,
diff --git a/sysdeps/x86_64/multiarch/ifunc-memcmp.h b/sysdeps/x86_64/multiarch/ifunc-memcmp.h
index bf5ab8eb7f..ef25ded451 100644
--- a/sysdeps/x86_64/multiarch/ifunc-memcmp.h
+++ b/sysdeps/x86_64/multiarch/ifunc-memcmp.h
@@ -1,6 +1,6 @@
/* Common definition for memcmp/wmemcmp ifunc selections.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
# include <init-arch.h>
diff --git a/sysdeps/x86_64/multiarch/ifunc-memmove.h b/sysdeps/x86_64/multiarch/ifunc-memmove.h
index 5b1eb1c92c..9ba770f448 100644
--- a/sysdeps/x86_64/multiarch/ifunc-memmove.h
+++ b/sysdeps/x86_64/multiarch/ifunc-memmove.h
@@ -1,6 +1,6 @@
/* Common definition for memcpy, mempcpy and memmove implementation.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <init-arch.h>
diff --git a/sysdeps/x86_64/multiarch/ifunc-memset.h b/sysdeps/x86_64/multiarch/ifunc-memset.h
index 19b5ae676c..0c25eae4a4 100644
--- a/sysdeps/x86_64/multiarch/ifunc-memset.h
+++ b/sysdeps/x86_64/multiarch/ifunc-memset.h
@@ -1,6 +1,6 @@
/* Common definition for memset/memset_chk ifunc selections.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <init-arch.h>
diff --git a/sysdeps/x86_64/multiarch/ifunc-sse4_2.h b/sysdeps/x86_64/multiarch/ifunc-sse4_2.h
index f2b791cccf..b736e336c7 100644
--- a/sysdeps/x86_64/multiarch/ifunc-sse4_2.h
+++ b/sysdeps/x86_64/multiarch/ifunc-sse4_2.h
@@ -1,6 +1,6 @@
/* Common definition for ifunc selections optimized with SSE2 and SSE4.2.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <init-arch.h>
diff --git a/sysdeps/x86_64/multiarch/ifunc-strcasecmp.h b/sysdeps/x86_64/multiarch/ifunc-strcasecmp.h
index 1ca170b663..17704ba841 100644
--- a/sysdeps/x86_64/multiarch/ifunc-strcasecmp.h
+++ b/sysdeps/x86_64/multiarch/ifunc-strcasecmp.h
@@ -1,6 +1,6 @@
/* Common definition for strcasecmp famly ifunc selections.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <init-arch.h>
diff --git a/sysdeps/x86_64/multiarch/ifunc-strcpy.h b/sysdeps/x86_64/multiarch/ifunc-strcpy.h
new file mode 100644
index 0000000000..74a385af74
--- /dev/null
+++ b/sysdeps/x86_64/multiarch/ifunc-strcpy.h
@@ -0,0 +1,46 @@
+/* Common definition for ifunc selections optimized with SSE2, unaligned
+ SSE2 and SSSE3.
+ All versions must be listed in ifunc-impl-list.c.
+ Copyright (C) 2017-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <init-arch.h>
+
+extern __typeof (REDIRECT_NAME) OPTIMIZE (sse2) attribute_hidden;
+extern __typeof (REDIRECT_NAME) OPTIMIZE (sse2_unaligned)
+ attribute_hidden;
+extern __typeof (REDIRECT_NAME) OPTIMIZE (ssse3) attribute_hidden;
+extern __typeof (REDIRECT_NAME) OPTIMIZE (avx2) attribute_hidden;
+
+static inline void *
+IFUNC_SELECTOR (void)
+{
+ const struct cpu_features* cpu_features = __get_cpu_features ();
+
+ if (!CPU_FEATURES_ARCH_P (cpu_features, Prefer_No_VZEROUPPER)
+ && CPU_FEATURES_ARCH_P (cpu_features, AVX2_Usable)
+ && CPU_FEATURES_ARCH_P (cpu_features, AVX_Fast_Unaligned_Load))
+ return OPTIMIZE (avx2);
+
+ if (CPU_FEATURES_ARCH_P (cpu_features, Fast_Unaligned_Load))
+ return OPTIMIZE (sse2_unaligned);
+
+ if (CPU_FEATURES_CPU_P (cpu_features, SSSE3))
+ return OPTIMIZE (ssse3);
+
+ return OPTIMIZE (sse2);
+}
diff --git a/sysdeps/x86_64/multiarch/ifunc-unaligned-ssse3.h b/sysdeps/x86_64/multiarch/ifunc-unaligned-ssse3.h
deleted file mode 100644
index 81805f9832..0000000000
--- a/sysdeps/x86_64/multiarch/ifunc-unaligned-ssse3.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Common definition for ifunc selections optimized with SSE2, unaligned
- SSE2 and SSSE3.
- All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software 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
- <http://www.gnu.org/licenses/>. */
-
-#include <init-arch.h>
-
-extern __typeof (REDIRECT_NAME) OPTIMIZE (sse2) attribute_hidden;
-extern __typeof (REDIRECT_NAME) OPTIMIZE (sse2_unaligned)
- attribute_hidden;
-extern __typeof (REDIRECT_NAME) OPTIMIZE (ssse3) attribute_hidden;
-
-static inline void *
-IFUNC_SELECTOR (void)
-{
- const struct cpu_features* cpu_features = __get_cpu_features ();
-
- if (CPU_FEATURES_ARCH_P (cpu_features, Fast_Unaligned_Load))
- return OPTIMIZE (sse2_unaligned);
-
- if (CPU_FEATURES_CPU_P (cpu_features, SSSE3))
- return OPTIMIZE (ssse3);
-
- return OPTIMIZE (sse2);
-}
diff --git a/sysdeps/x86_64/multiarch/ifunc-wmemset.h b/sysdeps/x86_64/multiarch/ifunc-wmemset.h
index 2f1085f5fc..57a220eb8f 100644
--- a/sysdeps/x86_64/multiarch/ifunc-wmemset.h
+++ b/sysdeps/x86_64/multiarch/ifunc-wmemset.h
@@ -1,5 +1,5 @@
/* Common definition for wmemset/wmemset_chk ifunc selections.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <init-arch.h>
diff --git a/sysdeps/x86_64/multiarch/memchr-avx2.S b/sysdeps/x86_64/multiarch/memchr-avx2.S
index 5f5e772554..d210addd71 100644
--- a/sysdeps/x86_64/multiarch/memchr-avx2.S
+++ b/sysdeps/x86_64/multiarch/memchr-avx2.S
@@ -1,5 +1,5 @@
/* memchr/wmemchr optimized with AVX2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
@@ -40,16 +40,20 @@
ENTRY (MEMCHR)
# ifndef USE_AS_RAWMEMCHR
/* Check for zero length. */
- testq %rdx, %rdx
+ test %RDX_LP, %RDX_LP
jz L(null)
# endif
movl %edi, %ecx
/* Broadcast CHAR to YMM0. */
vmovd %esi, %xmm0
# ifdef USE_AS_WMEMCHR
- shl $2, %rdx
+ shl $2, %RDX_LP
vpbroadcastd %xmm0, %ymm0
# else
+# ifdef __ILP32__
+ /* Clear the upper 32 bits. */
+ movl %edx, %edx
+# endif
vpbroadcastb %xmm0, %ymm0
# endif
/* Check if we may cross page boundary with one vector load. */
diff --git a/sysdeps/x86_64/multiarch/memchr-sse2.S b/sysdeps/x86_64/multiarch/memchr-sse2.S
index 8a5e7fd1c5..1d8a0b5776 100644
--- a/sysdeps/x86_64/multiarch/memchr-sse2.S
+++ b/sysdeps/x86_64/multiarch/memchr-sse2.S
@@ -1,5 +1,5 @@
/* memchr optimized with SSE2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# define memchr __memchr_sse2
diff --git a/sysdeps/x86_64/multiarch/memchr.c b/sysdeps/x86_64/multiarch/memchr.c
index 016f57846a..cda995d589 100644
--- a/sysdeps/x86_64/multiarch/memchr.c
+++ b/sysdeps/x86_64/multiarch/memchr.c
@@ -1,6 +1,6 @@
/* Multiple versions of memchr
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
@@ -30,6 +30,6 @@ libc_ifunc_redirected (__redirect_memchr, memchr, IFUNC_SELECTOR ());
strong_alias (memchr, __memchr)
# ifdef SHARED
__hidden_ver1 (memchr, __GI_memchr, __redirect_memchr)
- __attribute__((visibility ("hidden")));
+ __attribute__((visibility ("hidden"))) __attribute_copy__ (memchr);
# endif
#endif
diff --git a/sysdeps/x86_64/multiarch/memcmp-avx2-movbe.S b/sysdeps/x86_64/multiarch/memcmp-avx2-movbe.S
index 30f764c393..1a23561095 100644
--- a/sysdeps/x86_64/multiarch/memcmp-avx2-movbe.S
+++ b/sysdeps/x86_64/multiarch/memcmp-avx2-movbe.S
@@ -1,5 +1,5 @@
/* memcmp/wmemcmp optimized with AVX2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
@@ -58,9 +58,12 @@
.section .text.avx,"ax",@progbits
ENTRY (MEMCMP)
# ifdef USE_AS_WMEMCMP
- shl $2, %rdx
+ shl $2, %RDX_LP
+# elif defined __ILP32__
+ /* Clear the upper 32 bits. */
+ movl %edx, %edx
# endif
- cmpq $VEC_SIZE, %rdx
+ cmp $VEC_SIZE, %RDX_LP
jb L(less_vec)
/* From VEC to 2 * VEC. No branch when size == VEC_SIZE. */
diff --git a/sysdeps/x86_64/multiarch/memcmp-sse2.S b/sysdeps/x86_64/multiarch/memcmp-sse2.S
index 6058aa751e..8905dd07ec 100644
--- a/sysdeps/x86_64/multiarch/memcmp-sse2.S
+++ b/sysdeps/x86_64/multiarch/memcmp-sse2.S
@@ -1,5 +1,5 @@
/* memcmp with SSE2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# define memcmp __memcmp_sse2
diff --git a/sysdeps/x86_64/multiarch/memcmp-sse4.S b/sysdeps/x86_64/multiarch/memcmp-sse4.S
index 8e164f2cb6..e22f2d683b 100644
--- a/sysdeps/x86_64/multiarch/memcmp-sse4.S
+++ b/sysdeps/x86_64/multiarch/memcmp-sse4.S
@@ -1,5 +1,5 @@
/* memcmp with SSE4.1, wmemcmp with SSE4.1
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
@@ -42,13 +42,16 @@
.section .text.sse4.1,"ax",@progbits
ENTRY (MEMCMP)
# ifdef USE_AS_WMEMCMP
- shl $2, %rdx
+ shl $2, %RDX_LP
+# elif defined __ILP32__
+ /* Clear the upper 32 bits. */
+ mov %edx, %edx
# endif
pxor %xmm0, %xmm0
- cmp $79, %rdx
+ cmp $79, %RDX_LP
ja L(79bytesormore)
# ifndef USE_AS_WMEMCMP
- cmp $1, %rdx
+ cmp $1, %RDX_LP
je L(firstbyte)
# endif
add %rdx, %rsi
diff --git a/sysdeps/x86_64/multiarch/memcmp-ssse3.S b/sysdeps/x86_64/multiarch/memcmp-ssse3.S
index 6f76c64123..698d4dec5f 100644
--- a/sysdeps/x86_64/multiarch/memcmp-ssse3.S
+++ b/sysdeps/x86_64/multiarch/memcmp-ssse3.S
@@ -1,5 +1,5 @@
/* memcmp with SSSE3, wmemcmp with SSSE3
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
@@ -33,9 +33,12 @@
atom_text_section
ENTRY (MEMCMP)
# ifdef USE_AS_WMEMCMP
- shl $2, %rdx
- test %rdx, %rdx
+ shl $2, %RDX_LP
+ test %RDX_LP, %RDX_LP
jz L(equal)
+# elif defined __ILP32__
+ /* Clear the upper 32 bits. */
+ mov %edx, %edx
# endif
mov %rdx, %rcx
mov %rdi, %rdx
diff --git a/sysdeps/x86_64/multiarch/memcmp.c b/sysdeps/x86_64/multiarch/memcmp.c
index 6f3ca43128..b06fe8b22a 100644
--- a/sysdeps/x86_64/multiarch/memcmp.c
+++ b/sysdeps/x86_64/multiarch/memcmp.c
@@ -1,6 +1,6 @@
/* Multiple versions of memcmp.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
@@ -32,6 +32,6 @@ weak_alias (memcmp, bcmp)
# ifdef SHARED
__hidden_ver1 (memcmp, __GI_memcmp, __redirect_memcmp)
- __attribute__ ((visibility ("hidden")));
+ __attribute__ ((visibility ("hidden"))) __attribute_copy__ (memcmp);
# endif
#endif
diff --git a/sysdeps/x86_64/multiarch/memcpy-ssse3-back.S b/sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
index 3cd1123326..fc4b45f9fd 100644
--- a/sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
+++ b/sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
@@ -1,5 +1,5 @@
/* memcpy with SSSE3 and REP string
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
@@ -45,28 +45,33 @@
.section .text.ssse3,"ax",@progbits
#if !defined USE_AS_MEMPCPY && !defined USE_AS_MEMMOVE
ENTRY (MEMPCPY_CHK)
- cmpq %rdx, %rcx
+ cmp %RDX_LP, %RCX_LP
jb HIDDEN_JUMPTARGET (__chk_fail)
END (MEMPCPY_CHK)
ENTRY (MEMPCPY)
- movq %rdi, %rax
- addq %rdx, %rax
+ mov %RDI_LP, %RAX_LP
+ add %RDX_LP, %RAX_LP
jmp L(start)
END (MEMPCPY)
#endif
#if !defined USE_AS_BCOPY
ENTRY (MEMCPY_CHK)
- cmpq %rdx, %rcx
+ cmp %RDX_LP, %RCX_LP
jb HIDDEN_JUMPTARGET (__chk_fail)
END (MEMCPY_CHK)
#endif
ENTRY (MEMCPY)
- mov %rdi, %rax
+ mov %RDI_LP, %RAX_LP
#ifdef USE_AS_MEMPCPY
- add %rdx, %rax
+ add %RDX_LP, %RAX_LP
+#endif
+
+#ifdef __ILP32__
+ /* Clear the upper 32 bits. */
+ mov %edx, %edx
#endif
#ifdef USE_AS_MEMMOVE
diff --git a/sysdeps/x86_64/multiarch/memcpy-ssse3.S b/sysdeps/x86_64/multiarch/memcpy-ssse3.S
index 0240bfa309..580b630cee 100644
--- a/sysdeps/x86_64/multiarch/memcpy-ssse3.S
+++ b/sysdeps/x86_64/multiarch/memcpy-ssse3.S
@@ -1,5 +1,5 @@
/* memcpy with SSSE3
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
@@ -45,28 +45,33 @@
.section .text.ssse3,"ax",@progbits
#if !defined USE_AS_MEMPCPY && !defined USE_AS_MEMMOVE
ENTRY (MEMPCPY_CHK)
- cmpq %rdx, %rcx
+ cmp %RDX_LP, %RCX_LP
jb HIDDEN_JUMPTARGET (__chk_fail)
END (MEMPCPY_CHK)
ENTRY (MEMPCPY)
- movq %rdi, %rax
- addq %rdx, %rax
+ mov %RDI_LP, %RAX_LP
+ add %RDX_LP, %RAX_LP
jmp L(start)
END (MEMPCPY)
#endif
#if !defined USE_AS_BCOPY
ENTRY (MEMCPY_CHK)
- cmpq %rdx, %rcx
+ cmp %RDX_LP, %RCX_LP
jb HIDDEN_JUMPTARGET (__chk_fail)
END (MEMCPY_CHK)
#endif
ENTRY (MEMCPY)
- mov %rdi, %rax
+ mov %RDI_LP, %RAX_LP
#ifdef USE_AS_MEMPCPY
- add %rdx, %rax
+ add %RDX_LP, %RAX_LP
+#endif
+
+#ifdef __ILP32__
+ /* Clear the upper 32 bits. */
+ mov %edx, %edx
#endif
#ifdef USE_AS_MEMMOVE
diff --git a/sysdeps/x86_64/multiarch/memcpy.c b/sysdeps/x86_64/multiarch/memcpy.c
index 419f76aefc..74bedc10a4 100644
--- a/sysdeps/x86_64/multiarch/memcpy.c
+++ b/sysdeps/x86_64/multiarch/memcpy.c
@@ -1,6 +1,6 @@
/* Multiple versions of memcpy.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/x86_64/multiarch/memcpy_chk-nonshared.S b/sysdeps/x86_64/multiarch/memcpy_chk-nonshared.S
index 84c8842ce7..6dece43e4e 100644
--- a/sysdeps/x86_64/multiarch/memcpy_chk-nonshared.S
+++ b/sysdeps/x86_64/multiarch/memcpy_chk-nonshared.S
@@ -1,5 +1,5 @@
/* Non-shared version of memcpy_chk for x86-64.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc) && !defined SHARED
# include <sysdeps/x86_64/memcpy_chk.S>
diff --git a/sysdeps/x86_64/multiarch/memcpy_chk.c b/sysdeps/x86_64/multiarch/memcpy_chk.c
index c9b901a6dd..695c675101 100644
--- a/sysdeps/x86_64/multiarch/memcpy_chk.c
+++ b/sysdeps/x86_64/multiarch/memcpy_chk.c
@@ -1,6 +1,6 @@
/* Multiple versions of __memcpy_chk
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc.so. */
#if IS_IN (libc) && defined SHARED
diff --git a/sysdeps/x86_64/multiarch/memmove-avx512-no-vzeroupper.S b/sysdeps/x86_64/multiarch/memmove-avx512-no-vzeroupper.S
index effc3ac2de..3ce09975e5 100644
--- a/sysdeps/x86_64/multiarch/memmove-avx512-no-vzeroupper.S
+++ b/sysdeps/x86_64/multiarch/memmove-avx512-no-vzeroupper.S
@@ -1,5 +1,5 @@
/* memmove/memcpy/mempcpy optimized with AVX512 for KNL hardware.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
@@ -24,27 +24,31 @@
.section .text.avx512,"ax",@progbits
ENTRY (__mempcpy_chk_avx512_no_vzeroupper)
- cmpq %rdx, %rcx
+ cmp %RDX_LP, %RCX_LP
jb HIDDEN_JUMPTARGET (__chk_fail)
END (__mempcpy_chk_avx512_no_vzeroupper)
ENTRY (__mempcpy_avx512_no_vzeroupper)
- movq %rdi, %rax
- addq %rdx, %rax
+ mov %RDI_LP, %RAX_LP
+ add %RDX_LP, %RAX_LP
jmp L(start)
END (__mempcpy_avx512_no_vzeroupper)
ENTRY (__memmove_chk_avx512_no_vzeroupper)
- cmpq %rdx, %rcx
+ cmp %RDX_LP, %RCX_LP
jb HIDDEN_JUMPTARGET (__chk_fail)
END (__memmove_chk_avx512_no_vzeroupper)
ENTRY (__memmove_avx512_no_vzeroupper)
- mov %rdi, %rax
+ mov %RDI_LP, %RAX_LP
# ifdef USE_AS_MEMPCPY
- add %rdx, %rax
+ add %RDX_LP, %RAX_LP
# endif
L(start):
+# ifdef __ILP32__
+ /* Clear the upper 32 bits. */
+ mov %edx, %edx
+# endif
lea (%rsi, %rdx), %rcx
lea (%rdi, %rdx), %r9
cmp $512, %rdx
diff --git a/sysdeps/x86_64/multiarch/memmove-sse2-unaligned-erms.S b/sysdeps/x86_64/multiarch/memmove-sse2-unaligned-erms.S
index 7c6163ddcb..6ff53de3d9 100644
--- a/sysdeps/x86_64/multiarch/memmove-sse2-unaligned-erms.S
+++ b/sysdeps/x86_64/multiarch/memmove-sse2-unaligned-erms.S
@@ -1,5 +1,5 @@
/* memmove with SSE2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# define MEMMOVE_SYMBOL(p,s) p##_sse2_##s
diff --git a/sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S b/sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S
index e2ede45e9f..a7100098ee 100644
--- a/sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S
+++ b/sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S
@@ -1,5 +1,5 @@
/* memmove/memcpy/mempcpy with unaligned load/store and rep movsb
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* memmove/memcpy/mempcpy is implemented as:
1. Use overlapping load and store to avoid branch.
@@ -106,20 +106,20 @@
.section SECTION(.text),"ax",@progbits
#if defined SHARED && IS_IN (libc)
ENTRY (MEMMOVE_CHK_SYMBOL (__mempcpy_chk, unaligned))
- cmpq %rdx, %rcx
+ cmp %RDX_LP, %RCX_LP
jb HIDDEN_JUMPTARGET (__chk_fail)
END (MEMMOVE_CHK_SYMBOL (__mempcpy_chk, unaligned))
#endif
ENTRY (MEMPCPY_SYMBOL (__mempcpy, unaligned))
- movq %rdi, %rax
- addq %rdx, %rax
+ mov %RDI_LP, %RAX_LP
+ add %RDX_LP, %RAX_LP
jmp L(start)
END (MEMPCPY_SYMBOL (__mempcpy, unaligned))
#if defined SHARED && IS_IN (libc)
ENTRY (MEMMOVE_CHK_SYMBOL (__memmove_chk, unaligned))
- cmpq %rdx, %rcx
+ cmp %RDX_LP, %RCX_LP
jb HIDDEN_JUMPTARGET (__chk_fail)
END (MEMMOVE_CHK_SYMBOL (__memmove_chk, unaligned))
#endif
@@ -127,9 +127,13 @@ END (MEMMOVE_CHK_SYMBOL (__memmove_chk, unaligned))
ENTRY (MEMMOVE_SYMBOL (__memmove, unaligned))
movq %rdi, %rax
L(start):
- cmpq $VEC_SIZE, %rdx
+# ifdef __ILP32__
+ /* Clear the upper 32 bits. */
+ movl %edx, %edx
+# endif
+ cmp $VEC_SIZE, %RDX_LP
jb L(less_vec)
- cmpq $(VEC_SIZE * 2), %rdx
+ cmp $(VEC_SIZE * 2), %RDX_LP
ja L(more_2x_vec)
#if !defined USE_MULTIARCH || !IS_IN (libc)
L(last_2x_vec):
@@ -149,38 +153,38 @@ END (MEMMOVE_SYMBOL (__memmove, unaligned))
# if VEC_SIZE == 16
ENTRY (__mempcpy_chk_erms)
- cmpq %rdx, %rcx
+ cmp %RDX_LP, %RCX_LP
jb HIDDEN_JUMPTARGET (__chk_fail)
END (__mempcpy_chk_erms)
/* Only used to measure performance of REP MOVSB. */
ENTRY (__mempcpy_erms)
- movq %rdi, %rax
+ mov %RDI_LP, %RAX_LP
/* Skip zero length. */
- testq %rdx, %rdx
+ test %RDX_LP, %RDX_LP
jz 2f
- addq %rdx, %rax
+ add %RDX_LP, %RAX_LP
jmp L(start_movsb)
END (__mempcpy_erms)
ENTRY (__memmove_chk_erms)
- cmpq %rdx, %rcx
+ cmp %RDX_LP, %RCX_LP
jb HIDDEN_JUMPTARGET (__chk_fail)
END (__memmove_chk_erms)
ENTRY (__memmove_erms)
movq %rdi, %rax
/* Skip zero length. */
- testq %rdx, %rdx
+ test %RDX_LP, %RDX_LP
jz 2f
L(start_movsb):
- movq %rdx, %rcx
- cmpq %rsi, %rdi
+ mov %RDX_LP, %RCX_LP
+ cmp %RSI_LP, %RDI_LP
jb 1f
/* Source == destination is less common. */
je 2f
- leaq (%rsi,%rcx), %rdx
- cmpq %rdx, %rdi
+ lea (%rsi,%rcx), %RDX_LP
+ cmp %RDX_LP, %RDI_LP
jb L(movsb_backward)
1:
rep movsb
@@ -200,20 +204,20 @@ strong_alias (__memmove_chk_erms, __memcpy_chk_erms)
# ifdef SHARED
ENTRY (MEMMOVE_CHK_SYMBOL (__mempcpy_chk, unaligned_erms))
- cmpq %rdx, %rcx
+ cmp %RDX_LP, %RCX_LP
jb HIDDEN_JUMPTARGET (__chk_fail)
END (MEMMOVE_CHK_SYMBOL (__mempcpy_chk, unaligned_erms))
# endif
ENTRY (MEMMOVE_SYMBOL (__mempcpy, unaligned_erms))
- movq %rdi, %rax
- addq %rdx, %rax
+ mov %RDI_LP, %RAX_LP
+ add %RDX_LP, %RAX_LP
jmp L(start_erms)
END (MEMMOVE_SYMBOL (__mempcpy, unaligned_erms))
# ifdef SHARED
ENTRY (MEMMOVE_CHK_SYMBOL (__memmove_chk, unaligned_erms))
- cmpq %rdx, %rcx
+ cmp %RDX_LP, %RCX_LP
jb HIDDEN_JUMPTARGET (__chk_fail)
END (MEMMOVE_CHK_SYMBOL (__memmove_chk, unaligned_erms))
# endif
@@ -221,9 +225,13 @@ END (MEMMOVE_CHK_SYMBOL (__memmove_chk, unaligned_erms))
ENTRY (MEMMOVE_SYMBOL (__memmove, unaligned_erms))
movq %rdi, %rax
L(start_erms):
- cmpq $VEC_SIZE, %rdx
+# ifdef __ILP32__
+ /* Clear the upper 32 bits. */
+ movl %edx, %edx
+# endif
+ cmp $VEC_SIZE, %RDX_LP
jb L(less_vec)
- cmpq $(VEC_SIZE * 2), %rdx
+ cmp $(VEC_SIZE * 2), %RDX_LP
ja L(movsb_more_2x_vec)
L(last_2x_vec):
/* From VEC and to 2 * VEC. No branch when size == VEC_SIZE. */
@@ -250,7 +258,7 @@ L(movsb):
# endif
jb L(more_8x_vec_backward)
1:
- movq %rdx, %rcx
+ mov %RDX_LP, %RCX_LP
rep movsb
L(nop):
ret
diff --git a/sysdeps/x86_64/multiarch/memmove.c b/sysdeps/x86_64/multiarch/memmove.c
index d512228eae..61a18a2c08 100644
--- a/sysdeps/x86_64/multiarch/memmove.c
+++ b/sysdeps/x86_64/multiarch/memmove.c
@@ -1,6 +1,6 @@
/* Multiple versions of memmmove.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/x86_64/multiarch/memmove_chk-nonshared.S b/sysdeps/x86_64/multiarch/memmove_chk-nonshared.S
index c362a3324d..bd79230b5e 100644
--- a/sysdeps/x86_64/multiarch/memmove_chk-nonshared.S
+++ b/sysdeps/x86_64/multiarch/memmove_chk-nonshared.S
@@ -1,5 +1,5 @@
/* Non-shared version of memmove_chk for x86-64.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc) && !defined SHARED
# include <sysdeps/x86_64/memmove_chk.S>
diff --git a/sysdeps/x86_64/multiarch/memmove_chk.c b/sysdeps/x86_64/multiarch/memmove_chk.c
index 0e9dc7e07f..718394f554 100644
--- a/sysdeps/x86_64/multiarch/memmove_chk.c
+++ b/sysdeps/x86_64/multiarch/memmove_chk.c
@@ -1,6 +1,6 @@
/* Multiple versions of __memmove_chk
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc.so. */
#if IS_IN (libc) && defined SHARED
diff --git a/sysdeps/x86_64/multiarch/mempcpy.c b/sysdeps/x86_64/multiarch/mempcpy.c
index 9fe41dda82..5c5ac6f7fe 100644
--- a/sysdeps/x86_64/multiarch/mempcpy.c
+++ b/sysdeps/x86_64/multiarch/mempcpy.c
@@ -1,6 +1,6 @@
/* Multiple versions of mempcpy.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
@@ -35,8 +35,8 @@ libc_ifunc_redirected (__redirect_mempcpy, __mempcpy, IFUNC_SELECTOR ());
weak_alias (__mempcpy, mempcpy)
# ifdef SHARED
__hidden_ver1 (__mempcpy, __GI___mempcpy, __redirect___mempcpy)
- __attribute__ ((visibility ("hidden")));
+ __attribute__ ((visibility ("hidden"))) __attribute_copy__ (mempcpy);
__hidden_ver1 (mempcpy, __GI_mempcpy, __redirect_mempcpy)
- __attribute__ ((visibility ("hidden")));
+ __attribute__ ((visibility ("hidden"))) __attribute_copy__ (mempcpy);
# endif
#endif
diff --git a/sysdeps/x86_64/multiarch/mempcpy_chk-nonshared.S b/sysdeps/x86_64/multiarch/mempcpy_chk-nonshared.S
index 7133246a1d..af5bcb5fd8 100644
--- a/sysdeps/x86_64/multiarch/mempcpy_chk-nonshared.S
+++ b/sysdeps/x86_64/multiarch/mempcpy_chk-nonshared.S
@@ -1,5 +1,5 @@
/* Non-shared version of mempcpy_chk for x86-64.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc) && !defined SHARED
# include <sysdeps/x86_64/mempcpy_chk.S>
diff --git a/sysdeps/x86_64/multiarch/mempcpy_chk.c b/sysdeps/x86_64/multiarch/mempcpy_chk.c
index 956918b3a1..088a7d7d6f 100644
--- a/sysdeps/x86_64/multiarch/mempcpy_chk.c
+++ b/sysdeps/x86_64/multiarch/mempcpy_chk.c
@@ -1,6 +1,6 @@
/* Multiple versions of __mempcpy_chk
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc.so. */
#if IS_IN (libc) && defined SHARED
diff --git a/sysdeps/x86_64/multiarch/memrchr-avx2.S b/sysdeps/x86_64/multiarch/memrchr-avx2.S
index b41a58bcba..8da5dbbf77 100644
--- a/sysdeps/x86_64/multiarch/memrchr-avx2.S
+++ b/sysdeps/x86_64/multiarch/memrchr-avx2.S
@@ -1,5 +1,5 @@
/* memrchr optimized with AVX2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
@@ -32,10 +32,10 @@ ENTRY (__memrchr_avx2)
vmovd %esi, %xmm0
vpbroadcastb %xmm0, %ymm0
- subq $VEC_SIZE, %rdx
+ sub $VEC_SIZE, %RDX_LP
jbe L(last_vec_or_less)
- addq %rdx, %rdi
+ add %RDX_LP, %RDI_LP
/* Check the last VEC_SIZE bytes. */
vpcmpeqb (%rdi), %ymm0, %ymm1
diff --git a/sysdeps/x86_64/multiarch/memrchr-sse2.S b/sysdeps/x86_64/multiarch/memrchr-sse2.S
index 12281663ec..fc67866cf3 100644
--- a/sysdeps/x86_64/multiarch/memrchr-sse2.S
+++ b/sysdeps/x86_64/multiarch/memrchr-sse2.S
@@ -1,5 +1,5 @@
/* memrchr optimized with SSE2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# define __memrchr __memrchr_sse2
diff --git a/sysdeps/x86_64/multiarch/memrchr.c b/sysdeps/x86_64/multiarch/memrchr.c
index d227fe7819..dcab0adab6 100644
--- a/sysdeps/x86_64/multiarch/memrchr.c
+++ b/sysdeps/x86_64/multiarch/memrchr.c
@@ -1,6 +1,6 @@
/* Multiple versions of memrchr
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/x86_64/multiarch/memset-avx512-no-vzeroupper.S b/sysdeps/x86_64/multiarch/memset-avx512-no-vzeroupper.S
index 689cc1199c..47c564ae5a 100644
--- a/sysdeps/x86_64/multiarch/memset-avx512-no-vzeroupper.S
+++ b/sysdeps/x86_64/multiarch/memset-avx512-no-vzeroupper.S
@@ -1,5 +1,5 @@
/* memset optimized with AVX512 for KNL hardware.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
@@ -29,12 +29,16 @@
.section .text.avx512,"ax",@progbits
#if defined PIC
ENTRY (MEMSET_CHK)
- cmpq %rdx, %rcx
+ cmp %RDX_LP, %RCX_LP
jb HIDDEN_JUMPTARGET (__chk_fail)
END (MEMSET_CHK)
#endif
ENTRY (MEMSET)
+# ifdef __ILP32__
+ /* Clear the upper 32 bits. */
+ mov %edx, %edx
+# endif
vpxor %xmm0, %xmm0, %xmm0
vmovd %esi, %xmm1
lea (%rdi, %rdx), %rsi
diff --git a/sysdeps/x86_64/multiarch/memset-sse2-unaligned-erms.S b/sysdeps/x86_64/multiarch/memset-sse2-unaligned-erms.S
index be6671759b..05ca61c2f8 100644
--- a/sysdeps/x86_64/multiarch/memset-sse2-unaligned-erms.S
+++ b/sysdeps/x86_64/multiarch/memset-sse2-unaligned-erms.S
@@ -1,6 +1,6 @@
/* memset with SSE2.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -15,11 +15,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <shlib-compat.h>
-#include <init-arch.h>
#if IS_IN (libc)
# define MEMSET_SYMBOL(p,s) p##_sse2_##s
diff --git a/sysdeps/x86_64/multiarch/memset-vec-unaligned-erms.S b/sysdeps/x86_64/multiarch/memset-vec-unaligned-erms.S
index dc9cb88b37..50dd69c7ca 100644
--- a/sysdeps/x86_64/multiarch/memset-vec-unaligned-erms.S
+++ b/sysdeps/x86_64/multiarch/memset-vec-unaligned-erms.S
@@ -1,5 +1,5 @@
/* memset/bzero with unaligned store and rep stosb
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* memset is implemented as:
1. Use overlapping store to avoid branch.
@@ -75,8 +75,8 @@
.section SECTION(.text),"ax",@progbits
#if VEC_SIZE == 16 && IS_IN (libc)
ENTRY (__bzero)
- movq %rdi, %rax /* Set return value. */
- movq %rsi, %rdx /* Set n. */
+ mov %RDI_LP, %RAX_LP /* Set return value. */
+ mov %RSI_LP, %RDX_LP /* Set n. */
pxor %xmm0, %xmm0
jmp L(entry_from_bzero)
END (__bzero)
@@ -86,13 +86,13 @@ weak_alias (__bzero, bzero)
#if IS_IN (libc)
# if defined SHARED
ENTRY_CHK (WMEMSET_CHK_SYMBOL (__wmemset_chk, unaligned))
- cmpq %rdx, %rcx
+ cmp %RDX_LP, %RCX_LP
jb HIDDEN_JUMPTARGET (__chk_fail)
END_CHK (WMEMSET_CHK_SYMBOL (__wmemset_chk, unaligned))
# endif
ENTRY (WMEMSET_SYMBOL (__wmemset, unaligned))
- shlq $2, %rdx
+ shl $2, %RDX_LP
WMEMSET_VDUP_TO_VEC0_AND_SET_RETURN (%esi, %rdi)
jmp L(entry_from_bzero)
END (WMEMSET_SYMBOL (__wmemset, unaligned))
@@ -100,13 +100,17 @@ END (WMEMSET_SYMBOL (__wmemset, unaligned))
#if defined SHARED && IS_IN (libc)
ENTRY_CHK (MEMSET_CHK_SYMBOL (__memset_chk, unaligned))
- cmpq %rdx, %rcx
+ cmp %RDX_LP, %RCX_LP
jb HIDDEN_JUMPTARGET (__chk_fail)
END_CHK (MEMSET_CHK_SYMBOL (__memset_chk, unaligned))
#endif
ENTRY (MEMSET_SYMBOL (__memset, unaligned))
MEMSET_VDUP_TO_VEC0_AND_SET_RETURN (%esi, %rdi)
+# ifdef __ILP32__
+ /* Clear the upper 32 bits. */
+ mov %edx, %edx
+# endif
L(entry_from_bzero):
cmpq $VEC_SIZE, %rdx
jb L(less_vec)
@@ -122,14 +126,14 @@ END (MEMSET_SYMBOL (__memset, unaligned))
# if VEC_SIZE == 16
ENTRY (__memset_chk_erms)
- cmpq %rdx, %rcx
+ cmp %RDX_LP, %RCX_LP
jb HIDDEN_JUMPTARGET (__chk_fail)
END (__memset_chk_erms)
/* Only used to measure performance of REP STOSB. */
ENTRY (__memset_erms)
/* Skip zero length. */
- testq %rdx, %rdx
+ test %RDX_LP, %RDX_LP
jnz L(stosb)
movq %rdi, %rax
ret
@@ -141,11 +145,11 @@ ENTRY (MEMSET_SYMBOL (__memset, erms))
L(stosb):
/* Issue vzeroupper before rep stosb. */
VZEROUPPER
- movq %rdx, %rcx
+ mov %RDX_LP, %RCX_LP
movzbl %sil, %eax
- movq %rdi, %rdx
+ mov %RDI_LP, %RDX_LP
rep stosb
- movq %rdx, %rax
+ mov %RDX_LP, %RAX_LP
ret
# if VEC_SIZE == 16
END (__memset_erms)
@@ -155,16 +159,20 @@ END (MEMSET_SYMBOL (__memset, erms))
# if defined SHARED && IS_IN (libc)
ENTRY_CHK (MEMSET_CHK_SYMBOL (__memset_chk, unaligned_erms))
- cmpq %rdx, %rcx
+ cmp %RDX_LP, %RCX_LP
jb HIDDEN_JUMPTARGET (__chk_fail)
END_CHK (MEMSET_CHK_SYMBOL (__memset_chk, unaligned_erms))
# endif
ENTRY (MEMSET_SYMBOL (__memset, unaligned_erms))
MEMSET_VDUP_TO_VEC0_AND_SET_RETURN (%esi, %rdi)
- cmpq $VEC_SIZE, %rdx
+# ifdef __ILP32__
+ /* Clear the upper 32 bits. */
+ mov %edx, %edx
+# endif
+ cmp $VEC_SIZE, %RDX_LP
jb L(less_vec)
- cmpq $(VEC_SIZE * 2), %rdx
+ cmp $(VEC_SIZE * 2), %RDX_LP
ja L(stosb_more_2x_vec)
/* From VEC and to 2 * VEC. No branch when size == VEC_SIZE. */
VMOVU %VEC(0), -VEC_SIZE(%rdi,%rdx)
diff --git a/sysdeps/x86_64/multiarch/memset.c b/sysdeps/x86_64/multiarch/memset.c
index 064841d5fc..5eedcdbc1b 100644
--- a/sysdeps/x86_64/multiarch/memset.c
+++ b/sysdeps/x86_64/multiarch/memset.c
@@ -1,6 +1,6 @@
/* Multiple versions of memset.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
@@ -30,6 +30,6 @@ libc_ifunc_redirected (__redirect_memset, memset, IFUNC_SELECTOR ());
# ifdef SHARED
__hidden_ver1 (memset, __GI_memset, __redirect_memset)
- __attribute__ ((visibility ("hidden")));
+ __attribute__ ((visibility ("hidden"))) __attribute_copy__ (memset);
# endif
#endif
diff --git a/sysdeps/x86_64/multiarch/memset_chk-nonshared.S b/sysdeps/x86_64/multiarch/memset_chk-nonshared.S
index dcc2384a27..ce8e19cc8d 100644
--- a/sysdeps/x86_64/multiarch/memset_chk-nonshared.S
+++ b/sysdeps/x86_64/multiarch/memset_chk-nonshared.S
@@ -1,5 +1,5 @@
/* Non-shared version of memcpy_chk for x86-64.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc) && !defined SHARED
# include <sysdeps/x86_64/memset_chk.S>
diff --git a/sysdeps/x86_64/multiarch/memset_chk.c b/sysdeps/x86_64/multiarch/memset_chk.c
index f9c05b364e..ced2738a8f 100644
--- a/sysdeps/x86_64/multiarch/memset_chk.c
+++ b/sysdeps/x86_64/multiarch/memset_chk.c
@@ -1,6 +1,6 @@
/* Multiple versions of __memset_chk
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc.so. */
#if IS_IN (libc) && defined SHARED
diff --git a/sysdeps/x86_64/multiarch/rawmemchr-sse2.S b/sysdeps/x86_64/multiarch/rawmemchr-sse2.S
index c681d84037..fdbdd2efba 100644
--- a/sysdeps/x86_64/multiarch/rawmemchr-sse2.S
+++ b/sysdeps/x86_64/multiarch/rawmemchr-sse2.S
@@ -1,5 +1,5 @@
/* rawmemchr optimized with SSE2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/x86_64/multiarch/rawmemchr.c b/sysdeps/x86_64/multiarch/rawmemchr.c
index 8a0bc3137e..9d9f973b85 100644
--- a/sysdeps/x86_64/multiarch/rawmemchr.c
+++ b/sysdeps/x86_64/multiarch/rawmemchr.c
@@ -1,6 +1,6 @@
/* Multiple versions of rawmemchr
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/x86_64/multiarch/sched_cpucount.c b/sysdeps/x86_64/multiarch/sched_cpucount.c
index d10d74ae21..77b0f71407 100644
--- a/sysdeps/x86_64/multiarch/sched_cpucount.c
+++ b/sysdeps/x86_64/multiarch/sched_cpucount.c
@@ -1,6 +1,6 @@
/* Count bits in CPU set. x86-64 multi-arch version.
This file is part of the GNU C Library.
- Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ Copyright (C) 2008-2019 Free Software Foundation, Inc.
Contributed by Ulrich Drepper <drepper@redhat.com>.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sched.h>
#include "init-arch.h"
@@ -33,4 +33,4 @@
#undef __sched_cpucount
libc_ifunc (__sched_cpucount,
- HAS_CPU_FEATURE (POPCOUNT) ? popcount_cpucount : generic_cpucount);
+ HAS_CPU_FEATURE (POPCNT) ? popcount_cpucount : generic_cpucount);
diff --git a/sysdeps/x86_64/multiarch/stpcpy-avx2.S b/sysdeps/x86_64/multiarch/stpcpy-avx2.S
new file mode 100644
index 0000000000..f0bd3029fe
--- /dev/null
+++ b/sysdeps/x86_64/multiarch/stpcpy-avx2.S
@@ -0,0 +1,3 @@
+#define USE_AS_STPCPY
+#define STRCPY __stpcpy_avx2
+#include "strcpy-avx2.S"
diff --git a/sysdeps/x86_64/multiarch/stpcpy-sse2.S b/sysdeps/x86_64/multiarch/stpcpy-sse2.S
index b91a988399..879e2c9173 100644
--- a/sysdeps/x86_64/multiarch/stpcpy-sse2.S
+++ b/sysdeps/x86_64/multiarch/stpcpy-sse2.S
@@ -1,5 +1,5 @@
/* stpcpy optimized with SSE2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
diff --git a/sysdeps/x86_64/multiarch/stpcpy.c b/sysdeps/x86_64/multiarch/stpcpy.c
index 1e340fca99..26eacd3f27 100644
--- a/sysdeps/x86_64/multiarch/stpcpy.c
+++ b/sysdeps/x86_64/multiarch/stpcpy.c
@@ -1,6 +1,6 @@
/* Multiple versions of stpcpy.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
@@ -28,15 +28,15 @@
# undef __stpcpy
# define SYMBOL_NAME stpcpy
-# include "ifunc-unaligned-ssse3.h"
+# include "ifunc-strcpy.h"
libc_ifunc_redirected (__redirect_stpcpy, __stpcpy, IFUNC_SELECTOR ());
weak_alias (__stpcpy, stpcpy)
# ifdef SHARED
__hidden_ver1 (__stpcpy, __GI___stpcpy, __redirect___stpcpy)
- __attribute__ ((visibility ("hidden")));
+ __attribute__ ((visibility ("hidden"))) __attribute_copy__ (stpcpy);
__hidden_ver1 (stpcpy, __GI_stpcpy, __redirect_stpcpy)
- __attribute__ ((visibility ("hidden")));
+ __attribute__ ((visibility ("hidden"))) __attribute_copy__ (stpcpy);
# endif
#endif
diff --git a/sysdeps/x86_64/multiarch/stpncpy-avx2.S b/sysdeps/x86_64/multiarch/stpncpy-avx2.S
new file mode 100644
index 0000000000..032b0407d0
--- /dev/null
+++ b/sysdeps/x86_64/multiarch/stpncpy-avx2.S
@@ -0,0 +1,4 @@
+#define USE_AS_STPCPY
+#define USE_AS_STRNCPY
+#define STRCPY __stpncpy_avx2
+#include "strcpy-avx2.S"
diff --git a/sysdeps/x86_64/multiarch/stpncpy.c b/sysdeps/x86_64/multiarch/stpncpy.c
index 28842ece2b..36d0176145 100644
--- a/sysdeps/x86_64/multiarch/stpncpy.c
+++ b/sysdeps/x86_64/multiarch/stpncpy.c
@@ -1,6 +1,6 @@
/* Multiple versions of stpncpy.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
@@ -26,7 +26,7 @@
# undef __stpncpy
# define SYMBOL_NAME stpncpy
-# include "ifunc-unaligned-ssse3.h"
+# include "ifunc-strcpy.h"
libc_ifunc_redirected (__redirect_stpncpy, __stpncpy, IFUNC_SELECTOR ());
diff --git a/sysdeps/x86_64/multiarch/strcasecmp.c b/sysdeps/x86_64/multiarch/strcasecmp.c
index 8676a621c6..0c56e0fa9b 100644
--- a/sysdeps/x86_64/multiarch/strcasecmp.c
+++ b/sysdeps/x86_64/multiarch/strcasecmp.c
@@ -1,6 +1,6 @@
/* Multiple versions of strcasecmp.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/x86_64/multiarch/strcasecmp_l-avx.S b/sysdeps/x86_64/multiarch/strcasecmp_l-avx.S
index 56a03547eb..6c6b16a235 100644
--- a/sysdeps/x86_64/multiarch/strcasecmp_l-avx.S
+++ b/sysdeps/x86_64/multiarch/strcasecmp_l-avx.S
@@ -1,5 +1,5 @@
/* strcasecmp_l optimized with AVX.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define STRCMP_SSE42 __strcasecmp_l_avx
#define USE_AVX 1
diff --git a/sysdeps/x86_64/multiarch/strcasecmp_l-sse2.S b/sysdeps/x86_64/multiarch/strcasecmp_l-sse2.S
index 2984640405..cc1562f12e 100644
--- a/sysdeps/x86_64/multiarch/strcasecmp_l-sse2.S
+++ b/sysdeps/x86_64/multiarch/strcasecmp_l-sse2.S
@@ -1,5 +1,5 @@
/* strcasecmp_l optimized with SSE2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define STRCMP __strcasecmp_l_sse2
#define USE_AS_STRCASECMP_L
diff --git a/sysdeps/x86_64/multiarch/strcasecmp_l-sse4_2.S b/sysdeps/x86_64/multiarch/strcasecmp_l-sse4_2.S
index 31e2f9075d..8a0953a67d 100644
--- a/sysdeps/x86_64/multiarch/strcasecmp_l-sse4_2.S
+++ b/sysdeps/x86_64/multiarch/strcasecmp_l-sse4_2.S
@@ -1,5 +1,5 @@
/* strcasecmp_l optimized with SSE4.2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define STRCMP_SSE42 __strcasecmp_l_sse42
#define USE_AS_STRCASECMP_L
diff --git a/sysdeps/x86_64/multiarch/strcasecmp_l.c b/sysdeps/x86_64/multiarch/strcasecmp_l.c
index dc674510df..05c7dbf3cb 100644
--- a/sysdeps/x86_64/multiarch/strcasecmp_l.c
+++ b/sysdeps/x86_64/multiarch/strcasecmp_l.c
@@ -1,6 +1,6 @@
/* Multiple versions of strcasecmp_l.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/x86_64/multiarch/strcat-avx2.S b/sysdeps/x86_64/multiarch/strcat-avx2.S
new file mode 100644
index 0000000000..7ad992ba43
--- /dev/null
+++ b/sysdeps/x86_64/multiarch/strcat-avx2.S
@@ -0,0 +1,275 @@
+/* strcat with AVX2
+ Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Contributed by Intel Corporation.
+ 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
+ <https://www.gnu.org/licenses/>. */
+
+#if IS_IN (libc)
+
+# include <sysdep.h>
+
+# ifndef STRCAT
+# define STRCAT __strcat_avx2
+# endif
+
+# define USE_AS_STRCAT
+
+/* Number of bytes in a vector register */
+# define VEC_SIZE 32
+
+ .section .text.avx,"ax",@progbits
+ENTRY (STRCAT)
+ mov %rdi, %r9
+# ifdef USE_AS_STRNCAT
+ mov %rdx, %r8
+# endif
+
+ xor %eax, %eax
+ mov %edi, %ecx
+ and $((VEC_SIZE * 4) - 1), %ecx
+ vpxor %xmm6, %xmm6, %xmm6
+ cmp $(VEC_SIZE * 3), %ecx
+ ja L(fourth_vector_boundary)
+ vpcmpeqb (%rdi), %ymm6, %ymm0
+ vpmovmskb %ymm0, %edx
+ test %edx, %edx
+ jnz L(exit_null_on_first_vector)
+ mov %rdi, %rax
+ and $-VEC_SIZE, %rax
+ jmp L(align_vec_size_start)
+L(fourth_vector_boundary):
+ mov %rdi, %rax
+ and $-VEC_SIZE, %rax
+ vpcmpeqb (%rax), %ymm6, %ymm0
+ mov $-1, %r10d
+ sub %rax, %rcx
+ shl %cl, %r10d
+ vpmovmskb %ymm0, %edx
+ and %r10d, %edx
+ jnz L(exit)
+
+L(align_vec_size_start):
+ vpcmpeqb VEC_SIZE(%rax), %ymm6, %ymm0
+ vpmovmskb %ymm0, %edx
+ test %edx, %edx
+ jnz L(exit_null_on_second_vector)
+
+ vpcmpeqb (VEC_SIZE * 2)(%rax), %ymm6, %ymm1
+ vpmovmskb %ymm1, %edx
+ test %edx, %edx
+ jnz L(exit_null_on_third_vector)
+
+ vpcmpeqb (VEC_SIZE * 3)(%rax), %ymm6, %ymm2
+ vpmovmskb %ymm2, %edx
+ test %edx, %edx
+ jnz L(exit_null_on_fourth_vector)
+
+ vpcmpeqb (VEC_SIZE * 4)(%rax), %ymm6, %ymm3
+ vpmovmskb %ymm3, %edx
+ test %edx, %edx
+ jnz L(exit_null_on_fifth_vector)
+
+ vpcmpeqb (VEC_SIZE * 5)(%rax), %ymm6, %ymm0
+ add $(VEC_SIZE * 4), %rax
+ vpmovmskb %ymm0, %edx
+ test %edx, %edx
+ jnz L(exit_null_on_second_vector)
+
+ vpcmpeqb (VEC_SIZE * 2)(%rax), %ymm6, %ymm1
+ vpmovmskb %ymm1, %edx
+ test %edx, %edx
+ jnz L(exit_null_on_third_vector)
+
+ vpcmpeqb (VEC_SIZE * 3)(%rax), %ymm6, %ymm2
+ vpmovmskb %ymm2, %edx
+ test %edx, %edx
+ jnz L(exit_null_on_fourth_vector)
+
+ vpcmpeqb (VEC_SIZE * 4)(%rax), %ymm6, %ymm3
+ vpmovmskb %ymm3, %edx
+ test %edx, %edx
+ jnz L(exit_null_on_fifth_vector)
+
+ vpcmpeqb (VEC_SIZE * 5)(%rax), %ymm6, %ymm0
+ add $(VEC_SIZE * 4), %rax
+ vpmovmskb %ymm0, %edx
+ test %edx, %edx
+ jnz L(exit_null_on_second_vector)
+
+ vpcmpeqb (VEC_SIZE * 2)(%rax), %ymm6, %ymm1
+ vpmovmskb %ymm1, %edx
+ test %edx, %edx
+ jnz L(exit_null_on_third_vector)
+
+ vpcmpeqb (VEC_SIZE * 3)(%rax), %ymm6, %ymm2
+ vpmovmskb %ymm2, %edx
+ test %edx, %edx
+ jnz L(exit_null_on_fourth_vector)
+
+ vpcmpeqb (VEC_SIZE * 4)(%rax), %ymm6, %ymm3
+ vpmovmskb %ymm3, %edx
+ test %edx, %edx
+ jnz L(exit_null_on_fifth_vector)
+
+ vpcmpeqb (VEC_SIZE * 5)(%rax), %ymm6, %ymm0
+ add $(VEC_SIZE * 4), %rax
+ vpmovmskb %ymm0, %edx
+ test %edx, %edx
+ jnz L(exit_null_on_second_vector)
+
+ vpcmpeqb (VEC_SIZE * 2)(%rax), %ymm6, %ymm1
+ vpmovmskb %ymm1, %edx
+ test %edx, %edx
+ jnz L(exit_null_on_third_vector)
+
+ vpcmpeqb (VEC_SIZE * 3)(%rax), %ymm6, %ymm2
+ vpmovmskb %ymm2, %edx
+ test %edx, %edx
+ jnz L(exit_null_on_fourth_vector)
+
+ vpcmpeqb (VEC_SIZE * 4)(%rax), %ymm6, %ymm3
+ vpmovmskb %ymm3, %edx
+ test %edx, %edx
+ jnz L(exit_null_on_fifth_vector)
+
+ test $((VEC_SIZE * 4) - 1), %rax
+ jz L(align_four_vec_loop)
+
+ vpcmpeqb (VEC_SIZE * 5)(%rax), %ymm6, %ymm0
+ add $(VEC_SIZE * 5), %rax
+ vpmovmskb %ymm0, %edx
+ test %edx, %edx
+ jnz L(exit)
+
+ test $((VEC_SIZE * 4) - 1), %rax
+ jz L(align_four_vec_loop)
+
+ vpcmpeqb VEC_SIZE(%rax), %ymm6, %ymm1
+ add $VEC_SIZE, %rax
+ vpmovmskb %ymm1, %edx
+ test %edx, %edx
+ jnz L(exit)
+
+ test $((VEC_SIZE * 4) - 1), %rax
+ jz L(align_four_vec_loop)
+
+ vpcmpeqb VEC_SIZE(%rax), %ymm6, %ymm2
+ add $VEC_SIZE, %rax
+ vpmovmskb %ymm2, %edx
+ test %edx, %edx
+ jnz L(exit)
+
+ test $((VEC_SIZE * 4) - 1), %rax
+ jz L(align_four_vec_loop)
+
+ vpcmpeqb VEC_SIZE(%rax), %ymm6, %ymm3
+ add $VEC_SIZE, %rax
+ vpmovmskb %ymm3, %edx
+ test %edx, %edx
+ jnz L(exit)
+
+ add $VEC_SIZE, %rax
+
+ .p2align 4
+L(align_four_vec_loop):
+ vmovaps (%rax), %ymm4
+ vpminub VEC_SIZE(%rax), %ymm4, %ymm4
+ vmovaps (VEC_SIZE * 2)(%rax), %ymm5
+ vpminub (VEC_SIZE * 3)(%rax), %ymm5, %ymm5
+ add $(VEC_SIZE * 4), %rax
+ vpminub %ymm4, %ymm5, %ymm5
+ vpcmpeqb %ymm5, %ymm6, %ymm5
+ vpmovmskb %ymm5, %edx
+ test %edx, %edx
+ jz L(align_four_vec_loop)
+
+ vpcmpeqb -(VEC_SIZE * 4)(%rax), %ymm6, %ymm0
+ sub $(VEC_SIZE * 5), %rax
+ vpmovmskb %ymm0, %edx
+ test %edx, %edx
+ jnz L(exit_null_on_second_vector)
+
+ vpcmpeqb (VEC_SIZE * 2)(%rax), %ymm6, %ymm1
+ vpmovmskb %ymm1, %edx
+ test %edx, %edx
+ jnz L(exit_null_on_third_vector)
+
+ vpcmpeqb (VEC_SIZE * 3)(%rax), %ymm6, %ymm2
+ vpmovmskb %ymm2, %edx
+ test %edx, %edx
+ jnz L(exit_null_on_fourth_vector)
+
+ vpcmpeqb (VEC_SIZE * 4)(%rax), %ymm6, %ymm3
+ vpmovmskb %ymm3, %edx
+ sub %rdi, %rax
+ bsf %rdx, %rdx
+ add %rdx, %rax
+ add $(VEC_SIZE * 4), %rax
+ jmp L(StartStrcpyPart)
+
+ .p2align 4
+L(exit):
+ sub %rdi, %rax
+L(exit_null_on_first_vector):
+ bsf %rdx, %rdx
+ add %rdx, %rax
+ jmp L(StartStrcpyPart)
+
+ .p2align 4
+L(exit_null_on_second_vector):
+ sub %rdi, %rax
+ bsf %rdx, %rdx
+ add %rdx, %rax
+ add $VEC_SIZE, %rax
+ jmp L(StartStrcpyPart)
+
+ .p2align 4
+L(exit_null_on_third_vector):
+ sub %rdi, %rax
+ bsf %rdx, %rdx
+ add %rdx, %rax
+ add $(VEC_SIZE * 2), %rax
+ jmp L(StartStrcpyPart)
+
+ .p2align 4
+L(exit_null_on_fourth_vector):
+ sub %rdi, %rax
+ bsf %rdx, %rdx
+ add %rdx, %rax
+ add $(VEC_SIZE * 3), %rax
+ jmp L(StartStrcpyPart)
+
+ .p2align 4
+L(exit_null_on_fifth_vector):
+ sub %rdi, %rax
+ bsf %rdx, %rdx
+ add %rdx, %rax
+ add $(VEC_SIZE * 4), %rax
+
+ .p2align 4
+L(StartStrcpyPart):
+ lea (%r9, %rax), %rdi
+ mov %rsi, %rcx
+ mov %r9, %rax /* save result */
+
+# ifdef USE_AS_STRNCAT
+ test %r8, %r8
+ jz L(ExitZero)
+# define USE_AS_STRNCPY
+# endif
+
+# include "strcpy-avx2.S"
+#endif
diff --git a/sysdeps/x86_64/multiarch/strcat-sse2-unaligned.S b/sysdeps/x86_64/multiarch/strcat-sse2-unaligned.S
index 852f179bf4..1004da1f80 100644
--- a/sysdeps/x86_64/multiarch/strcat-sse2-unaligned.S
+++ b/sysdeps/x86_64/multiarch/strcat-sse2-unaligned.S
@@ -1,5 +1,5 @@
/* strcat with SSE2
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
diff --git a/sysdeps/x86_64/multiarch/strcat-sse2.S b/sysdeps/x86_64/multiarch/strcat-sse2.S
index 8eb64e104c..ccccc74e2c 100644
--- a/sysdeps/x86_64/multiarch/strcat-sse2.S
+++ b/sysdeps/x86_64/multiarch/strcat-sse2.S
@@ -1,5 +1,5 @@
/* strcat optimized with SSE2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
diff --git a/sysdeps/x86_64/multiarch/strcat-ssse3.S b/sysdeps/x86_64/multiarch/strcat-ssse3.S
index 2d4fd78f99..3af2a5eef4 100644
--- a/sysdeps/x86_64/multiarch/strcat-ssse3.S
+++ b/sysdeps/x86_64/multiarch/strcat-ssse3.S
@@ -1,5 +1,5 @@
/* strcat with SSSE3
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
diff --git a/sysdeps/x86_64/multiarch/strcat.c b/sysdeps/x86_64/multiarch/strcat.c
index 1f7f6263f3..7d53e351ef 100644
--- a/sysdeps/x86_64/multiarch/strcat.c
+++ b/sysdeps/x86_64/multiarch/strcat.c
@@ -1,6 +1,6 @@
/* Multiple versions of strcat.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
@@ -24,12 +24,12 @@
# undef strcat
# define SYMBOL_NAME strcat
-# include "ifunc-unaligned-ssse3.h"
+# include "ifunc-strcpy.h"
libc_ifunc_redirected (__redirect_strcat, strcat, IFUNC_SELECTOR ());
# ifdef SHARED
__hidden_ver1 (strcat, __GI_strcat, __redirect_strcat)
- __attribute__ ((visibility ("hidden")));
+ __attribute__ ((visibility ("hidden"))) __attribute_copy__ (strcat);
# endif
#endif
diff --git a/sysdeps/x86_64/multiarch/strchr-avx2.S b/sysdeps/x86_64/multiarch/strchr-avx2.S
index 47bc3c9949..5dd290a6c0 100644
--- a/sysdeps/x86_64/multiarch/strchr-avx2.S
+++ b/sysdeps/x86_64/multiarch/strchr-avx2.S
@@ -1,5 +1,5 @@
/* strchr/strchrnul optimized with AVX2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
diff --git a/sysdeps/x86_64/multiarch/strchr-sse2-no-bsf.S b/sysdeps/x86_64/multiarch/strchr-sse2-no-bsf.S
index 93fb661da2..e7a20b18aa 100644
--- a/sysdeps/x86_64/multiarch/strchr-sse2-no-bsf.S
+++ b/sysdeps/x86_64/multiarch/strchr-sse2-no-bsf.S
@@ -1,5 +1,5 @@
/* strchr with SSE2 without bsf
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
diff --git a/sysdeps/x86_64/multiarch/strchr-sse2.S b/sysdeps/x86_64/multiarch/strchr-sse2.S
index 8a6e77195c..86fd1599f0 100644
--- a/sysdeps/x86_64/multiarch/strchr-sse2.S
+++ b/sysdeps/x86_64/multiarch/strchr-sse2.S
@@ -1,5 +1,5 @@
/* strchr optimized with SSE2.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# define strchr __strchr_sse2
diff --git a/sysdeps/x86_64/multiarch/strchr.c b/sysdeps/x86_64/multiarch/strchr.c
index 76d64fb378..9ff0b63b6d 100644
--- a/sysdeps/x86_64/multiarch/strchr.c
+++ b/sysdeps/x86_64/multiarch/strchr.c
@@ -1,6 +1,6 @@
/* Multiple versions of strchr.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
@@ -50,6 +50,6 @@ libc_ifunc_redirected (__redirect_strchr, strchr, IFUNC_SELECTOR ());
weak_alias (strchr, index)
# ifdef SHARED
__hidden_ver1 (strchr, __GI_strchr, __redirect_strchr)
- __attribute__((visibility ("hidden")));
+ __attribute__((visibility ("hidden"))) __attribute_copy__ (strchr);
# endif
#endif
diff --git a/sysdeps/x86_64/multiarch/strchrnul-sse2.S b/sysdeps/x86_64/multiarch/strchrnul-sse2.S
index d4a2be118e..f94f234ed2 100644
--- a/sysdeps/x86_64/multiarch/strchrnul-sse2.S
+++ b/sysdeps/x86_64/multiarch/strchrnul-sse2.S
@@ -1,5 +1,5 @@
/* strchrnul optimized with SSE2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# define __strchrnul __strchrnul_sse2
diff --git a/sysdeps/x86_64/multiarch/strchrnul.c b/sysdeps/x86_64/multiarch/strchrnul.c
index 7514999341..f14b539393 100644
--- a/sysdeps/x86_64/multiarch/strchrnul.c
+++ b/sysdeps/x86_64/multiarch/strchrnul.c
@@ -1,6 +1,6 @@
/* Multiple versions of strchrnul.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/x86_64/multiarch/strcmp-avx2.S b/sysdeps/x86_64/multiarch/strcmp-avx2.S
index e8397f3b05..2f445e6930 100644
--- a/sysdeps/x86_64/multiarch/strcmp-avx2.S
+++ b/sysdeps/x86_64/multiarch/strcmp-avx2.S
@@ -1,5 +1,5 @@
/* strcmp/wcscmp/strncmp/wcsncmp optimized with AVX2.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
@@ -79,15 +79,15 @@
ENTRY (STRCMP)
# ifdef USE_AS_STRNCMP
/* Check for simple cases (0 or 1) in offset. */
- cmp $1, %rdx
+ cmp $1, %RDX_LP
je L(char0)
jb L(zero)
# ifdef USE_AS_WCSCMP
/* Convert units: from wide to byte char. */
- shl $2, %rdx
+ shl $2, %RDX_LP
# endif
/* Register %r11 tracks the maximum offset. */
- movq %rdx, %r11
+ mov %RDX_LP, %R11_LP
# endif
movl %edi, %eax
xorl %edx, %edx
diff --git a/sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S b/sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S
index a9b6267d15..59855aa734 100644
--- a/sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S
+++ b/sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S
@@ -1,5 +1,5 @@
/* strcmp with unaligned loads
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
diff --git a/sysdeps/x86_64/multiarch/strcmp-sse2.S b/sysdeps/x86_64/multiarch/strcmp-sse2.S
index d173ded8c0..1dfba177a8 100644
--- a/sysdeps/x86_64/multiarch/strcmp-sse2.S
+++ b/sysdeps/x86_64/multiarch/strcmp-sse2.S
@@ -1,5 +1,5 @@
/* strcmp optimized with SSE2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# include <sysdep.h>
diff --git a/sysdeps/x86_64/multiarch/strcmp-sse42.S b/sysdeps/x86_64/multiarch/strcmp-sse42.S
index d3c07bd292..ccac8068ca 100644
--- a/sysdeps/x86_64/multiarch/strcmp-sse42.S
+++ b/sysdeps/x86_64/multiarch/strcmp-sse42.S
@@ -1,5 +1,5 @@
/* strcmp with SSE4.2
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
@@ -156,11 +156,11 @@ STRCMP_SSE42:
#endif
#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
- test %rdx, %rdx
+ test %RDX_LP, %RDX_LP
je LABEL(strcmp_exitz)
- cmp $1, %rdx
+ cmp $1, %RDX_LP
je LABEL(Byte0)
- mov %rdx, %r11
+ mov %RDX_LP, %R11_LP
#endif
mov %esi, %ecx
mov %edi, %eax
diff --git a/sysdeps/x86_64/multiarch/strcmp-sse4_2.S b/sysdeps/x86_64/multiarch/strcmp-sse4_2.S
index 776e5e060f..924041d5fe 100644
--- a/sysdeps/x86_64/multiarch/strcmp-sse4_2.S
+++ b/sysdeps/x86_64/multiarch/strcmp-sse4_2.S
@@ -1,5 +1,5 @@
/* strcmp optimized with SSE4.2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# include "strcmp-sse42.S"
diff --git a/sysdeps/x86_64/multiarch/strcmp.c b/sysdeps/x86_64/multiarch/strcmp.c
index b903e418df..e221b8d45f 100644
--- a/sysdeps/x86_64/multiarch/strcmp.c
+++ b/sysdeps/x86_64/multiarch/strcmp.c
@@ -1,6 +1,6 @@
/* Multiple versions of strcmp.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
@@ -54,6 +54,6 @@ libc_ifunc_redirected (__redirect_strcmp, strcmp, IFUNC_SELECTOR ());
# ifdef SHARED
__hidden_ver1 (strcmp, __GI_strcmp, __redirect_strcmp)
- __attribute__ ((visibility ("hidden")));
+ __attribute__ ((visibility ("hidden"))) __attribute_copy__ (strcmp);
# endif
#endif
diff --git a/sysdeps/x86_64/multiarch/strcpy-avx2.S b/sysdeps/x86_64/multiarch/strcpy-avx2.S
new file mode 100644
index 0000000000..a12681188f
--- /dev/null
+++ b/sysdeps/x86_64/multiarch/strcpy-avx2.S
@@ -0,0 +1,1022 @@
+/* strcpy with AVX2
+ Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Contributed by Intel Corporation.
+ 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
+ <https://www.gnu.org/licenses/>. */
+
+#if IS_IN (libc)
+
+# ifndef USE_AS_STRCAT
+# include <sysdep.h>
+
+# ifndef STRCPY
+# define STRCPY __strcpy_avx2
+# endif
+
+# endif
+
+/* Number of bytes in a vector register */
+# ifndef VEC_SIZE
+# define VEC_SIZE 32
+# endif
+
+# ifndef VZEROUPPER
+# define VZEROUPPER vzeroupper
+# endif
+
+/* zero register */
+#define xmmZ xmm0
+#define ymmZ ymm0
+
+/* mask register */
+#define ymmM ymm1
+
+# ifndef USE_AS_STRCAT
+
+ .section .text.avx,"ax",@progbits
+ENTRY (STRCPY)
+# ifdef USE_AS_STRNCPY
+ mov %RDX_LP, %R8_LP
+ test %R8_LP, %R8_LP
+ jz L(ExitZero)
+# endif
+ mov %rsi, %rcx
+# ifndef USE_AS_STPCPY
+ mov %rdi, %rax /* save result */
+# endif
+
+# endif
+
+ vpxor %xmmZ, %xmmZ, %xmmZ
+
+ and $((VEC_SIZE * 4) - 1), %ecx
+ cmp $(VEC_SIZE * 2), %ecx
+ jbe L(SourceStringAlignmentLessTwoVecSize)
+
+ and $-VEC_SIZE, %rsi
+ and $(VEC_SIZE - 1), %ecx
+
+ vpcmpeqb (%rsi), %ymmZ, %ymmM
+ vpmovmskb %ymmM, %edx
+ shr %cl, %rdx
+
+# ifdef USE_AS_STRNCPY
+# if defined USE_AS_STPCPY || defined USE_AS_STRCAT
+ mov $VEC_SIZE, %r10
+ sub %rcx, %r10
+ cmp %r10, %r8
+# else
+ mov $(VEC_SIZE + 1), %r10
+ sub %rcx, %r10
+ cmp %r10, %r8
+# endif
+ jbe L(CopyVecSizeTailCase2OrCase3)
+# endif
+ test %edx, %edx
+ jnz L(CopyVecSizeTail)
+
+ vpcmpeqb VEC_SIZE(%rsi), %ymmZ, %ymm2
+ vpmovmskb %ymm2, %edx
+
+# ifdef USE_AS_STRNCPY
+ add $VEC_SIZE, %r10
+ cmp %r10, %r8
+ jbe L(CopyTwoVecSizeCase2OrCase3)
+# endif
+ test %edx, %edx
+ jnz L(CopyTwoVecSize)
+
+ vmovdqu (%rsi, %rcx), %ymm2 /* copy VEC_SIZE bytes */
+ vmovdqu %ymm2, (%rdi)
+
+/* If source address alignment != destination address alignment */
+ .p2align 4
+L(UnalignVecSizeBoth):
+ sub %rcx, %rdi
+# ifdef USE_AS_STRNCPY
+ add %rcx, %r8
+ sbb %rcx, %rcx
+ or %rcx, %r8
+# endif
+ mov $VEC_SIZE, %rcx
+ vmovdqa (%rsi, %rcx), %ymm2
+ vmovdqu %ymm2, (%rdi, %rcx)
+ vmovdqa VEC_SIZE(%rsi, %rcx), %ymm2
+ vpcmpeqb %ymm2, %ymmZ, %ymmM
+ vpmovmskb %ymmM, %edx
+ add $VEC_SIZE, %rcx
+# ifdef USE_AS_STRNCPY
+ sub $(VEC_SIZE * 3), %r8
+ jbe L(CopyVecSizeCase2OrCase3)
+# endif
+ test %edx, %edx
+# if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
+ jnz L(CopyVecSizeUnalignedVec2)
+# else
+ jnz L(CopyVecSize)
+# endif
+
+ vmovdqu %ymm2, (%rdi, %rcx)
+ vmovdqa VEC_SIZE(%rsi, %rcx), %ymm3
+ vpcmpeqb %ymm3, %ymmZ, %ymmM
+ vpmovmskb %ymmM, %edx
+ add $VEC_SIZE, %rcx
+# ifdef USE_AS_STRNCPY
+ sub $VEC_SIZE, %r8
+ jbe L(CopyVecSizeCase2OrCase3)
+# endif
+ test %edx, %edx
+# if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
+ jnz L(CopyVecSizeUnalignedVec3)
+# else
+ jnz L(CopyVecSize)
+# endif
+
+ vmovdqu %ymm3, (%rdi, %rcx)
+ vmovdqa VEC_SIZE(%rsi, %rcx), %ymm4
+ vpcmpeqb %ymm4, %ymmZ, %ymmM
+ vpmovmskb %ymmM, %edx
+ add $VEC_SIZE, %rcx
+# ifdef USE_AS_STRNCPY
+ sub $VEC_SIZE, %r8
+ jbe L(CopyVecSizeCase2OrCase3)
+# endif
+ test %edx, %edx
+# if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
+ jnz L(CopyVecSizeUnalignedVec4)
+# else
+ jnz L(CopyVecSize)
+# endif
+
+ vmovdqu %ymm4, (%rdi, %rcx)
+ vmovdqa VEC_SIZE(%rsi, %rcx), %ymm2
+ vpcmpeqb %ymm2, %ymmZ, %ymmM
+ vpmovmskb %ymmM, %edx
+ add $VEC_SIZE, %rcx
+# ifdef USE_AS_STRNCPY
+ sub $VEC_SIZE, %r8
+ jbe L(CopyVecSizeCase2OrCase3)
+# endif
+ test %edx, %edx
+# if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
+ jnz L(CopyVecSizeUnalignedVec2)
+# else
+ jnz L(CopyVecSize)
+# endif
+
+ vmovdqu %ymm2, (%rdi, %rcx)
+ vmovdqa VEC_SIZE(%rsi, %rcx), %ymm2
+ vpcmpeqb %ymm2, %ymmZ, %ymmM
+ vpmovmskb %ymmM, %edx
+ add $VEC_SIZE, %rcx
+# ifdef USE_AS_STRNCPY
+ sub $VEC_SIZE, %r8
+ jbe L(CopyVecSizeCase2OrCase3)
+# endif
+ test %edx, %edx
+# if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
+ jnz L(CopyVecSizeUnalignedVec2)
+# else
+ jnz L(CopyVecSize)
+# endif
+
+ vmovdqa VEC_SIZE(%rsi, %rcx), %ymm3
+ vmovdqu %ymm2, (%rdi, %rcx)
+ vpcmpeqb %ymm3, %ymmZ, %ymmM
+ vpmovmskb %ymmM, %edx
+ add $VEC_SIZE, %rcx
+# ifdef USE_AS_STRNCPY
+ sub $VEC_SIZE, %r8
+ jbe L(CopyVecSizeCase2OrCase3)
+# endif
+ test %edx, %edx
+# if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
+ jnz L(CopyVecSizeUnalignedVec3)
+# else
+ jnz L(CopyVecSize)
+# endif
+
+ vmovdqu %ymm3, (%rdi, %rcx)
+ mov %rsi, %rdx
+ lea VEC_SIZE(%rsi, %rcx), %rsi
+ and $-(VEC_SIZE * 4), %rsi
+ sub %rsi, %rdx
+ sub %rdx, %rdi
+# ifdef USE_AS_STRNCPY
+ lea (VEC_SIZE * 8)(%r8, %rdx), %r8
+# endif
+L(UnalignedFourVecSizeLoop):
+ vmovdqa (%rsi), %ymm4
+ vmovdqa VEC_SIZE(%rsi), %ymm5
+ vmovdqa (VEC_SIZE * 2)(%rsi), %ymm6
+ vmovdqa (VEC_SIZE * 3)(%rsi), %ymm7
+ vpminub %ymm5, %ymm4, %ymm2
+ vpminub %ymm7, %ymm6, %ymm3
+ vpminub %ymm2, %ymm3, %ymm3
+ vpcmpeqb %ymmM, %ymm3, %ymm3
+ vpmovmskb %ymm3, %edx
+# ifdef USE_AS_STRNCPY
+ sub $(VEC_SIZE * 4), %r8
+ jbe L(UnalignedLeaveCase2OrCase3)
+# endif
+ test %edx, %edx
+ jnz L(UnalignedFourVecSizeLeave)
+
+L(UnalignedFourVecSizeLoop_start):
+ add $(VEC_SIZE * 4), %rdi
+ add $(VEC_SIZE * 4), %rsi
+ vmovdqu %ymm4, -(VEC_SIZE * 4)(%rdi)
+ vmovdqa (%rsi), %ymm4
+ vmovdqu %ymm5, -(VEC_SIZE * 3)(%rdi)
+ vmovdqa VEC_SIZE(%rsi), %ymm5
+ vpminub %ymm5, %ymm4, %ymm2
+ vmovdqu %ymm6, -(VEC_SIZE * 2)(%rdi)
+ vmovdqa (VEC_SIZE * 2)(%rsi), %ymm6
+ vmovdqu %ymm7, -VEC_SIZE(%rdi)
+ vmovdqa (VEC_SIZE * 3)(%rsi), %ymm7
+ vpminub %ymm7, %ymm6, %ymm3
+ vpminub %ymm2, %ymm3, %ymm3
+ vpcmpeqb %ymmM, %ymm3, %ymm3
+ vpmovmskb %ymm3, %edx
+# ifdef USE_AS_STRNCPY
+ sub $(VEC_SIZE * 4), %r8
+ jbe L(UnalignedLeaveCase2OrCase3)
+# endif
+ test %edx, %edx
+ jz L(UnalignedFourVecSizeLoop_start)
+
+L(UnalignedFourVecSizeLeave):
+ vpcmpeqb %ymm4, %ymmZ, %ymmM
+ vpmovmskb %ymmM, %edx
+ test %edx, %edx
+ jnz L(CopyVecSizeUnaligned_0)
+
+ vpcmpeqb %ymm5, %ymmZ, %ymmM
+ vpmovmskb %ymmM, %ecx
+ test %ecx, %ecx
+ jnz L(CopyVecSizeUnaligned_16)
+
+ vpcmpeqb %ymm6, %ymmZ, %ymmM
+ vpmovmskb %ymmM, %edx
+ test %edx, %edx
+ jnz L(CopyVecSizeUnaligned_32)
+
+ vpcmpeqb %ymm7, %ymmZ, %ymmM
+ vpmovmskb %ymmM, %ecx
+ bsf %ecx, %edx
+ vmovdqu %ymm4, (%rdi)
+ vmovdqu %ymm5, VEC_SIZE(%rdi)
+ vmovdqu %ymm6, (VEC_SIZE * 2)(%rdi)
+# if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
+# ifdef USE_AS_STPCPY
+ lea (VEC_SIZE * 3)(%rdi, %rdx), %rax
+# endif
+ vmovdqu %ymm7, (VEC_SIZE * 3)(%rdi)
+ add $(VEC_SIZE - 1), %r8
+ sub %rdx, %r8
+ lea ((VEC_SIZE * 3) + 1)(%rdi, %rdx), %rdi
+ jmp L(StrncpyFillTailWithZero)
+# else
+ add $(VEC_SIZE * 3), %rsi
+ add $(VEC_SIZE * 3), %rdi
+ jmp L(CopyVecSizeExit)
+# endif
+
+/* If source address alignment == destination address alignment */
+
+L(SourceStringAlignmentLessTwoVecSize):
+ vmovdqu (%rsi), %ymm3
+ vmovdqu VEC_SIZE(%rsi), %ymm2
+ vpcmpeqb %ymm3, %ymmZ, %ymmM
+ vpmovmskb %ymmM, %edx
+
+# ifdef USE_AS_STRNCPY
+# if defined USE_AS_STPCPY || defined USE_AS_STRCAT
+ cmp $VEC_SIZE, %r8
+# else
+ cmp $(VEC_SIZE + 1), %r8
+# endif
+ jbe L(CopyVecSizeTail1Case2OrCase3)
+# endif
+ test %edx, %edx
+ jnz L(CopyVecSizeTail1)
+
+ vmovdqu %ymm3, (%rdi)
+ vpcmpeqb %ymm2, %ymmZ, %ymmM
+ vpmovmskb %ymmM, %edx
+
+# ifdef USE_AS_STRNCPY
+# if defined USE_AS_STPCPY || defined USE_AS_STRCAT
+ cmp $(VEC_SIZE * 2), %r8
+# else
+ cmp $((VEC_SIZE * 2) + 1), %r8
+# endif
+ jbe L(CopyTwoVecSize1Case2OrCase3)
+# endif
+ test %edx, %edx
+ jnz L(CopyTwoVecSize1)
+
+ and $-VEC_SIZE, %rsi
+ and $(VEC_SIZE - 1), %ecx
+ jmp L(UnalignVecSizeBoth)
+
+/*------End of main part with loops---------------------*/
+
+/* Case1 */
+
+# if (!defined USE_AS_STRNCPY) || (defined USE_AS_STRCAT)
+ .p2align 4
+L(CopyVecSize):
+ add %rcx, %rdi
+# endif
+L(CopyVecSizeTail):
+ add %rcx, %rsi
+L(CopyVecSizeTail1):
+ bsf %edx, %edx
+L(CopyVecSizeExit):
+ cmp $32, %edx
+ jae L(Exit32_63)
+ cmp $16, %edx
+ jae L(Exit16_31)
+ cmp $8, %edx
+ jae L(Exit8_15)
+ cmp $4, %edx
+ jae L(Exit4_7)
+ cmp $3, %edx
+ je L(Exit3)
+ cmp $1, %edx
+ ja L(Exit2)
+ je L(Exit1)
+ movb $0, (%rdi)
+# ifdef USE_AS_STPCPY
+ lea (%rdi), %rax
+# endif
+# if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
+ sub $1, %r8
+ lea 1(%rdi), %rdi
+ jnz L(StrncpyFillTailWithZero)
+# endif
+ VZEROUPPER
+ ret
+
+ .p2align 4
+L(CopyTwoVecSize1):
+ add $VEC_SIZE, %rsi
+ add $VEC_SIZE, %rdi
+# if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
+ sub $VEC_SIZE, %r8
+# endif
+ jmp L(CopyVecSizeTail1)
+
+ .p2align 4
+L(CopyTwoVecSize):
+ bsf %edx, %edx
+ add %rcx, %rsi
+ add $VEC_SIZE, %edx
+ sub %ecx, %edx
+ jmp L(CopyVecSizeExit)
+
+ .p2align 4
+L(CopyVecSizeUnaligned_0):
+ bsf %edx, %edx
+# if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
+# ifdef USE_AS_STPCPY
+ lea (%rdi, %rdx), %rax
+# endif
+ vmovdqu %ymm4, (%rdi)
+ add $((VEC_SIZE * 4) - 1), %r8
+ sub %rdx, %r8
+ lea 1(%rdi, %rdx), %rdi
+ jmp L(StrncpyFillTailWithZero)
+# else
+ jmp L(CopyVecSizeExit)
+# endif
+
+ .p2align 4
+L(CopyVecSizeUnaligned_16):
+ bsf %ecx, %edx
+ vmovdqu %ymm4, (%rdi)
+# if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
+# ifdef USE_AS_STPCPY
+ lea VEC_SIZE(%rdi, %rdx), %rax
+# endif
+ vmovdqu %ymm5, VEC_SIZE(%rdi)
+ add $((VEC_SIZE * 3) - 1), %r8
+ sub %rdx, %r8
+ lea (VEC_SIZE + 1)(%rdi, %rdx), %rdi
+ jmp L(StrncpyFillTailWithZero)
+# else
+ add $VEC_SIZE, %rsi
+ add $VEC_SIZE, %rdi
+ jmp L(CopyVecSizeExit)
+# endif
+
+ .p2align 4
+L(CopyVecSizeUnaligned_32):
+ bsf %edx, %edx
+ vmovdqu %ymm4, (%rdi)
+ vmovdqu %ymm5, VEC_SIZE(%rdi)
+# if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
+# ifdef USE_AS_STPCPY
+ lea (VEC_SIZE * 2)(%rdi, %rdx), %rax
+# endif
+ vmovdqu %ymm6, (VEC_SIZE * 2)(%rdi)
+ add $((VEC_SIZE * 2) - 1), %r8
+ sub %rdx, %r8
+ lea ((VEC_SIZE * 2) + 1)(%rdi, %rdx), %rdi
+ jmp L(StrncpyFillTailWithZero)
+# else
+ add $(VEC_SIZE * 2), %rsi
+ add $(VEC_SIZE * 2), %rdi
+ jmp L(CopyVecSizeExit)
+# endif
+
+# ifdef USE_AS_STRNCPY
+# ifndef USE_AS_STRCAT
+ .p2align 4
+L(CopyVecSizeUnalignedVec6):
+ vmovdqu %ymm6, (%rdi, %rcx)
+ jmp L(CopyVecSizeVecExit)
+
+ .p2align 4
+L(CopyVecSizeUnalignedVec5):
+ vmovdqu %ymm5, (%rdi, %rcx)
+ jmp L(CopyVecSizeVecExit)
+
+ .p2align 4
+L(CopyVecSizeUnalignedVec4):
+ vmovdqu %ymm4, (%rdi, %rcx)
+ jmp L(CopyVecSizeVecExit)
+
+ .p2align 4
+L(CopyVecSizeUnalignedVec3):
+ vmovdqu %ymm3, (%rdi, %rcx)
+ jmp L(CopyVecSizeVecExit)
+# endif
+
+/* Case2 */
+
+ .p2align 4
+L(CopyVecSizeCase2):
+ add $VEC_SIZE, %r8
+ add %rcx, %rdi
+ add %rcx, %rsi
+ bsf %edx, %edx
+ cmp %r8d, %edx
+ jb L(CopyVecSizeExit)
+ jmp L(StrncpyExit)
+
+ .p2align 4
+L(CopyTwoVecSizeCase2):
+ add %rcx, %rsi
+ bsf %edx, %edx
+ add $VEC_SIZE, %edx
+ sub %ecx, %edx
+ cmp %r8d, %edx
+ jb L(CopyVecSizeExit)
+ jmp L(StrncpyExit)
+
+L(CopyVecSizeTailCase2):
+ add %rcx, %rsi
+ bsf %edx, %edx
+ cmp %r8d, %edx
+ jb L(CopyVecSizeExit)
+ jmp L(StrncpyExit)
+
+L(CopyVecSizeTail1Case2):
+ bsf %edx, %edx
+ cmp %r8d, %edx
+ jb L(CopyVecSizeExit)
+ jmp L(StrncpyExit)
+
+/* Case2 or Case3, Case3 */
+
+ .p2align 4
+L(CopyVecSizeCase2OrCase3):
+ test %rdx, %rdx
+ jnz L(CopyVecSizeCase2)
+L(CopyVecSizeCase3):
+ add $VEC_SIZE, %r8
+ add %rcx, %rdi
+ add %rcx, %rsi
+ jmp L(StrncpyExit)
+
+ .p2align 4
+L(CopyTwoVecSizeCase2OrCase3):
+ test %rdx, %rdx
+ jnz L(CopyTwoVecSizeCase2)
+ add %rcx, %rsi
+ jmp L(StrncpyExit)
+
+ .p2align 4
+L(CopyVecSizeTailCase2OrCase3):
+ test %rdx, %rdx
+ jnz L(CopyVecSizeTailCase2)
+ add %rcx, %rsi
+ jmp L(StrncpyExit)
+
+ .p2align 4
+L(CopyTwoVecSize1Case2OrCase3):
+ add $VEC_SIZE, %rdi
+ add $VEC_SIZE, %rsi
+ sub $VEC_SIZE, %r8
+L(CopyVecSizeTail1Case2OrCase3):
+ test %rdx, %rdx
+ jnz L(CopyVecSizeTail1Case2)
+ jmp L(StrncpyExit)
+# endif
+
+/*------------End labels regarding with copying 1-VEC_SIZE bytes--and 1-(VEC_SIZE*2) bytes----*/
+
+ .p2align 4
+L(Exit1):
+ movzwl (%rsi), %edx
+ mov %dx, (%rdi)
+# ifdef USE_AS_STPCPY
+ lea 1(%rdi), %rax
+# endif
+# if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
+ sub $2, %r8
+ lea 2(%rdi), %rdi
+ jnz L(StrncpyFillTailWithZero)
+# endif
+ VZEROUPPER
+ ret
+
+ .p2align 4
+L(Exit2):
+ movzwl (%rsi), %ecx
+ mov %cx, (%rdi)
+ movb $0, 2(%rdi)
+# ifdef USE_AS_STPCPY
+ lea 2(%rdi), %rax
+# endif
+# if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
+ sub $3, %r8
+ lea 3(%rdi), %rdi
+ jnz L(StrncpyFillTailWithZero)
+# endif
+ VZEROUPPER
+ ret
+
+ .p2align 4
+L(Exit3):
+ mov (%rsi), %edx
+ mov %edx, (%rdi)
+# ifdef USE_AS_STPCPY
+ lea 3(%rdi), %rax
+# endif
+# if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
+ sub $4, %r8
+ lea 4(%rdi), %rdi
+ jnz L(StrncpyFillTailWithZero)
+# endif
+ VZEROUPPER
+ ret
+
+ .p2align 4
+L(Exit4_7):
+ mov (%rsi), %ecx
+ mov %ecx, (%rdi)
+ mov -3(%rsi, %rdx), %ecx
+ mov %ecx, -3(%rdi, %rdx)
+# ifdef USE_AS_STPCPY
+ lea (%rdi, %rdx), %rax
+# endif
+# if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
+ sub %rdx, %r8
+ sub $1, %r8
+ lea 1(%rdi, %rdx), %rdi
+ jnz L(StrncpyFillTailWithZero)
+# endif
+ VZEROUPPER
+ ret
+
+ .p2align 4
+L(Exit8_15):
+ mov (%rsi), %rcx
+ mov -7(%rsi, %rdx), %r9
+ mov %rcx, (%rdi)
+ mov %r9, -7(%rdi, %rdx)
+# ifdef USE_AS_STPCPY
+ lea (%rdi, %rdx), %rax
+# endif
+# if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
+ sub %rdx, %r8
+ sub $1, %r8
+ lea 1(%rdi, %rdx), %rdi
+ jnz L(StrncpyFillTailWithZero)
+# endif
+ VZEROUPPER
+ ret
+
+ .p2align 4
+L(Exit16_31):
+ vmovdqu (%rsi), %xmm2
+ vmovdqu -15(%rsi, %rdx), %xmm3
+ vmovdqu %xmm2, (%rdi)
+ vmovdqu %xmm3, -15(%rdi, %rdx)
+# ifdef USE_AS_STPCPY
+ lea (%rdi, %rdx), %rax
+# endif
+# if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
+ sub %rdx, %r8
+ sub $1, %r8
+ lea 1(%rdi, %rdx), %rdi
+ jnz L(StrncpyFillTailWithZero)
+# endif
+ VZEROUPPER
+ ret
+
+ .p2align 4
+L(Exit32_63):
+ vmovdqu (%rsi), %ymm2
+ vmovdqu -31(%rsi, %rdx), %ymm3
+ vmovdqu %ymm2, (%rdi)
+ vmovdqu %ymm3, -31(%rdi, %rdx)
+# ifdef USE_AS_STPCPY
+ lea (%rdi, %rdx), %rax
+# endif
+# if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
+ sub %rdx, %r8
+ sub $1, %r8
+ lea 1(%rdi, %rdx), %rdi
+ jnz L(StrncpyFillTailWithZero)
+# endif
+ VZEROUPPER
+ ret
+
+# ifdef USE_AS_STRNCPY
+
+ .p2align 4
+L(StrncpyExit1):
+ movzbl (%rsi), %edx
+ mov %dl, (%rdi)
+# ifdef USE_AS_STPCPY
+ lea 1(%rdi), %rax
+# endif
+# ifdef USE_AS_STRCAT
+ movb $0, 1(%rdi)
+# endif
+ VZEROUPPER
+ ret
+
+ .p2align 4
+L(StrncpyExit2):
+ movzwl (%rsi), %edx
+ mov %dx, (%rdi)
+# ifdef USE_AS_STPCPY
+ lea 2(%rdi), %rax
+# endif
+# ifdef USE_AS_STRCAT
+ movb $0, 2(%rdi)
+# endif
+ VZEROUPPER
+ ret
+
+ .p2align 4
+L(StrncpyExit3_4):
+ movzwl (%rsi), %ecx
+ movzwl -2(%rsi, %r8), %edx
+ mov %cx, (%rdi)
+ mov %dx, -2(%rdi, %r8)
+# ifdef USE_AS_STPCPY
+ lea (%rdi, %r8), %rax
+# endif
+# ifdef USE_AS_STRCAT
+ movb $0, (%rdi, %r8)
+# endif
+ VZEROUPPER
+ ret
+
+ .p2align 4
+L(StrncpyExit5_8):
+ mov (%rsi), %ecx
+ mov -4(%rsi, %r8), %edx
+ mov %ecx, (%rdi)
+ mov %edx, -4(%rdi, %r8)
+# ifdef USE_AS_STPCPY
+ lea (%rdi, %r8), %rax
+# endif
+# ifdef USE_AS_STRCAT
+ movb $0, (%rdi, %r8)
+# endif
+ VZEROUPPER
+ ret
+
+ .p2align 4
+L(StrncpyExit9_16):
+ mov (%rsi), %rcx
+ mov -8(%rsi, %r8), %rdx
+ mov %rcx, (%rdi)
+ mov %rdx, -8(%rdi, %r8)
+# ifdef USE_AS_STPCPY
+ lea (%rdi, %r8), %rax
+# endif
+# ifdef USE_AS_STRCAT
+ movb $0, (%rdi, %r8)
+# endif
+ VZEROUPPER
+ ret
+
+ .p2align 4
+L(StrncpyExit17_32):
+ vmovdqu (%rsi), %xmm2
+ vmovdqu -16(%rsi, %r8), %xmm3
+ vmovdqu %xmm2, (%rdi)
+ vmovdqu %xmm3, -16(%rdi, %r8)
+# ifdef USE_AS_STPCPY
+ lea (%rdi, %r8), %rax
+# endif
+# ifdef USE_AS_STRCAT
+ movb $0, (%rdi, %r8)
+# endif
+ VZEROUPPER
+ ret
+
+ .p2align 4
+L(StrncpyExit33_64):
+ /* 0/32, 31/16 */
+ vmovdqu (%rsi), %ymm2
+ vmovdqu -VEC_SIZE(%rsi, %r8), %ymm3
+ vmovdqu %ymm2, (%rdi)
+ vmovdqu %ymm3, -VEC_SIZE(%rdi, %r8)
+# ifdef USE_AS_STPCPY
+ lea (%rdi, %r8), %rax
+# endif
+# ifdef USE_AS_STRCAT
+ movb $0, (%rdi, %r8)
+# endif
+ VZEROUPPER
+ ret
+
+ .p2align 4
+L(StrncpyExit65):
+ /* 0/32, 32/32, 64/1 */
+ vmovdqu (%rsi), %ymm2
+ vmovdqu 32(%rsi), %ymm3
+ mov 64(%rsi), %cl
+ vmovdqu %ymm2, (%rdi)
+ vmovdqu %ymm3, 32(%rdi)
+ mov %cl, 64(%rdi)
+# ifdef USE_AS_STPCPY
+ lea 65(%rdi), %rax
+# endif
+# ifdef USE_AS_STRCAT
+ movb $0, 65(%rdi)
+# endif
+ VZEROUPPER
+ ret
+
+# ifndef USE_AS_STRCAT
+
+ .p2align 4
+L(Fill1):
+ mov %dl, (%rdi)
+ VZEROUPPER
+ ret
+
+ .p2align 4
+L(Fill2):
+ mov %dx, (%rdi)
+ VZEROUPPER
+ ret
+
+ .p2align 4
+L(Fill3_4):
+ mov %dx, (%rdi)
+ mov %dx, -2(%rdi, %r8)
+ VZEROUPPER
+ ret
+
+ .p2align 4
+L(Fill5_8):
+ mov %edx, (%rdi)
+ mov %edx, -4(%rdi, %r8)
+ VZEROUPPER
+ ret
+
+ .p2align 4
+L(Fill9_16):
+ mov %rdx, (%rdi)
+ mov %rdx, -8(%rdi, %r8)
+ VZEROUPPER
+ ret
+
+ .p2align 4
+L(Fill17_32):
+ vmovdqu %xmmZ, (%rdi)
+ vmovdqu %xmmZ, -16(%rdi, %r8)
+ VZEROUPPER
+ ret
+
+ .p2align 4
+L(CopyVecSizeUnalignedVec2):
+ vmovdqu %ymm2, (%rdi, %rcx)
+
+ .p2align 4
+L(CopyVecSizeVecExit):
+ bsf %edx, %edx
+ add $(VEC_SIZE - 1), %r8
+ add %rcx, %rdi
+# ifdef USE_AS_STPCPY
+ lea (%rdi, %rdx), %rax
+# endif
+ sub %rdx, %r8
+ lea 1(%rdi, %rdx), %rdi
+
+ .p2align 4
+L(StrncpyFillTailWithZero):
+ xor %edx, %edx
+ sub $VEC_SIZE, %r8
+ jbe L(StrncpyFillExit)
+
+ vmovdqu %ymmZ, (%rdi)
+ add $VEC_SIZE, %rdi
+
+ mov %rdi, %rsi
+ and $(VEC_SIZE - 1), %esi
+ sub %rsi, %rdi
+ add %rsi, %r8
+ sub $(VEC_SIZE * 4), %r8
+ jb L(StrncpyFillLessFourVecSize)
+
+L(StrncpyFillLoopVmovdqa):
+ vmovdqa %ymmZ, (%rdi)
+ vmovdqa %ymmZ, VEC_SIZE(%rdi)
+ vmovdqa %ymmZ, (VEC_SIZE * 2)(%rdi)
+ vmovdqa %ymmZ, (VEC_SIZE * 3)(%rdi)
+ add $(VEC_SIZE * 4), %rdi
+ sub $(VEC_SIZE * 4), %r8
+ jae L(StrncpyFillLoopVmovdqa)
+
+L(StrncpyFillLessFourVecSize):
+ add $(VEC_SIZE * 2), %r8
+ jl L(StrncpyFillLessTwoVecSize)
+ vmovdqa %ymmZ, (%rdi)
+ vmovdqa %ymmZ, VEC_SIZE(%rdi)
+ add $(VEC_SIZE * 2), %rdi
+ sub $VEC_SIZE, %r8
+ jl L(StrncpyFillExit)
+ vmovdqa %ymmZ, (%rdi)
+ add $VEC_SIZE, %rdi
+ jmp L(Fill)
+
+ .p2align 4
+L(StrncpyFillLessTwoVecSize):
+ add $VEC_SIZE, %r8
+ jl L(StrncpyFillExit)
+ vmovdqa %ymmZ, (%rdi)
+ add $VEC_SIZE, %rdi
+ jmp L(Fill)
+
+ .p2align 4
+L(StrncpyFillExit):
+ add $VEC_SIZE, %r8
+L(Fill):
+ cmp $17, %r8d
+ jae L(Fill17_32)
+ cmp $9, %r8d
+ jae L(Fill9_16)
+ cmp $5, %r8d
+ jae L(Fill5_8)
+ cmp $3, %r8d
+ jae L(Fill3_4)
+ cmp $1, %r8d
+ ja L(Fill2)
+ je L(Fill1)
+ VZEROUPPER
+ ret
+
+/* end of ifndef USE_AS_STRCAT */
+# endif
+
+ .p2align 4
+L(UnalignedLeaveCase2OrCase3):
+ test %rdx, %rdx
+ jnz L(UnalignedFourVecSizeLeaveCase2)
+L(UnalignedFourVecSizeLeaveCase3):
+ lea (VEC_SIZE * 4)(%r8), %rcx
+ and $-VEC_SIZE, %rcx
+ add $(VEC_SIZE * 3), %r8
+ jl L(CopyVecSizeCase3)
+ vmovdqu %ymm4, (%rdi)
+ sub $VEC_SIZE, %r8
+ jb L(CopyVecSizeCase3)
+ vmovdqu %ymm5, VEC_SIZE(%rdi)
+ sub $VEC_SIZE, %r8
+ jb L(CopyVecSizeCase3)
+ vmovdqu %ymm6, (VEC_SIZE * 2)(%rdi)
+ sub $VEC_SIZE, %r8
+ jb L(CopyVecSizeCase3)
+ vmovdqu %ymm7, (VEC_SIZE * 3)(%rdi)
+# ifdef USE_AS_STPCPY
+ lea (VEC_SIZE * 4)(%rdi), %rax
+# endif
+# ifdef USE_AS_STRCAT
+ movb $0, (VEC_SIZE * 4)(%rdi)
+# endif
+ VZEROUPPER
+ ret
+
+ .p2align 4
+L(UnalignedFourVecSizeLeaveCase2):
+ xor %ecx, %ecx
+ vpcmpeqb %ymm4, %ymmZ, %ymmM
+ vpmovmskb %ymmM, %edx
+ add $(VEC_SIZE * 3), %r8
+ jle L(CopyVecSizeCase2OrCase3)
+ test %edx, %edx
+# ifndef USE_AS_STRCAT
+ jnz L(CopyVecSizeUnalignedVec4)
+# else
+ jnz L(CopyVecSize)
+# endif
+ vpcmpeqb %ymm5, %ymmZ, %ymmM
+ vpmovmskb %ymmM, %edx
+ vmovdqu %ymm4, (%rdi)
+ add $VEC_SIZE, %rcx
+ sub $VEC_SIZE, %r8
+ jbe L(CopyVecSizeCase2OrCase3)
+ test %edx, %edx
+# ifndef USE_AS_STRCAT
+ jnz L(CopyVecSizeUnalignedVec5)
+# else
+ jnz L(CopyVecSize)
+# endif
+
+ vpcmpeqb %ymm6, %ymmZ, %ymmM
+ vpmovmskb %ymmM, %edx
+ vmovdqu %ymm5, VEC_SIZE(%rdi)
+ add $VEC_SIZE, %rcx
+ sub $VEC_SIZE, %r8
+ jbe L(CopyVecSizeCase2OrCase3)
+ test %edx, %edx
+# ifndef USE_AS_STRCAT
+ jnz L(CopyVecSizeUnalignedVec6)
+# else
+ jnz L(CopyVecSize)
+# endif
+
+ vpcmpeqb %ymm7, %ymmZ, %ymmM
+ vpmovmskb %ymmM, %edx
+ vmovdqu %ymm6, (VEC_SIZE * 2)(%rdi)
+ lea VEC_SIZE(%rdi, %rcx), %rdi
+ lea VEC_SIZE(%rsi, %rcx), %rsi
+ bsf %edx, %edx
+ cmp %r8d, %edx
+ jb L(CopyVecSizeExit)
+L(StrncpyExit):
+ cmp $65, %r8d
+ je L(StrncpyExit65)
+ cmp $33, %r8d
+ jae L(StrncpyExit33_64)
+ cmp $17, %r8d
+ jae L(StrncpyExit17_32)
+ cmp $9, %r8d
+ jae L(StrncpyExit9_16)
+ cmp $5, %r8d
+ jae L(StrncpyExit5_8)
+ cmp $3, %r8d
+ jae L(StrncpyExit3_4)
+ cmp $1, %r8d
+ ja L(StrncpyExit2)
+ je L(StrncpyExit1)
+# ifdef USE_AS_STPCPY
+ mov %rdi, %rax
+# endif
+# ifdef USE_AS_STRCAT
+ movb $0, (%rdi)
+# endif
+ VZEROUPPER
+ ret
+
+ .p2align 4
+L(ExitZero):
+# ifndef USE_AS_STRCAT
+ mov %rdi, %rax
+# endif
+ VZEROUPPER
+ ret
+
+# endif
+
+# ifndef USE_AS_STRCAT
+END (STRCPY)
+# else
+END (STRCAT)
+# endif
+#endif
diff --git a/sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S b/sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S
index 72bf7e8586..456226d064 100644
--- a/sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S
+++ b/sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S
@@ -1,5 +1,5 @@
/* strcpy with SSE2 and unaligned load
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
@@ -40,8 +40,8 @@
.text
ENTRY (STRCPY)
# ifdef USE_AS_STRNCPY
- mov %rdx, %r8
- test %r8, %r8
+ mov %RDX_LP, %R8_LP
+ test %R8_LP, %R8_LP
jz L(ExitZero)
# endif
mov %rsi, %rcx
diff --git a/sysdeps/x86_64/multiarch/strcpy-sse2.S b/sysdeps/x86_64/multiarch/strcpy-sse2.S
index 70136017fa..ec76c1e449 100644
--- a/sysdeps/x86_64/multiarch/strcpy-sse2.S
+++ b/sysdeps/x86_64/multiarch/strcpy-sse2.S
@@ -1,5 +1,5 @@
/* strcpy optimized with SSE2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
diff --git a/sysdeps/x86_64/multiarch/strcpy-ssse3.S b/sysdeps/x86_64/multiarch/strcpy-ssse3.S
index 9858d0c4d5..b042beb22c 100644
--- a/sysdeps/x86_64/multiarch/strcpy-ssse3.S
+++ b/sysdeps/x86_64/multiarch/strcpy-ssse3.S
@@ -1,5 +1,5 @@
/* strcpy with SSSE3
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
@@ -31,13 +31,13 @@ ENTRY (STRCPY)
mov %rsi, %rcx
# ifdef USE_AS_STRNCPY
- mov %rdx, %r8
+ mov %RDX_LP, %R8_LP
# endif
mov %rdi, %rdx
# ifdef USE_AS_STRNCPY
- test %r8, %r8
+ test %R8_LP, %R8_LP
jz L(Exit0)
- cmp $8, %r8
+ cmp $8, %R8_LP
jbe L(StrncpyExit8Bytes)
# endif
cmpb $0, (%rcx)
diff --git a/sysdeps/x86_64/multiarch/strcpy.c b/sysdeps/x86_64/multiarch/strcpy.c
index 12e0e3ffe2..8fa5511697 100644
--- a/sysdeps/x86_64/multiarch/strcpy.c
+++ b/sysdeps/x86_64/multiarch/strcpy.c
@@ -1,6 +1,6 @@
/* Multiple versions of strcpy.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
@@ -24,12 +24,12 @@
# undef strcpy
# define SYMBOL_NAME strcpy
-# include "ifunc-unaligned-ssse3.h"
+# include "ifunc-strcpy.h"
libc_ifunc_redirected (__redirect_strcpy, strcpy, IFUNC_SELECTOR ());
# ifdef SHARED
__hidden_ver1 (strcpy, __GI_strcpy, __redirect_strcpy)
- __attribute__ ((visibility ("hidden")));
+ __attribute__ ((visibility ("hidden"))) __attribute_copy__ (strcpy);
# endif
#endif
diff --git a/sysdeps/x86_64/multiarch/strcspn-c.c b/sysdeps/x86_64/multiarch/strcspn-c.c
index 857af10486..07deba1eff 100644
--- a/sysdeps/x86_64/multiarch/strcspn-c.c
+++ b/sysdeps/x86_64/multiarch/strcspn-c.c
@@ -1,5 +1,5 @@
/* strcspn with SSE4.2 intrinsics
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <nmmintrin.h>
#include <string.h>
diff --git a/sysdeps/x86_64/multiarch/strcspn-sse2.S b/sysdeps/x86_64/multiarch/strcspn-sse2.S
index 8a0c69d7f5..abbd7e9345 100644
--- a/sysdeps/x86_64/multiarch/strcspn-sse2.S
+++ b/sysdeps/x86_64/multiarch/strcspn-sse2.S
@@ -1,5 +1,5 @@
/* strcspn optimized with SSE2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
diff --git a/sysdeps/x86_64/multiarch/strcspn.c b/sysdeps/x86_64/multiarch/strcspn.c
index 9712e8410c..6d0b3ac2af 100644
--- a/sysdeps/x86_64/multiarch/strcspn.c
+++ b/sysdeps/x86_64/multiarch/strcspn.c
@@ -1,6 +1,6 @@
/* Multiple versions of strcspn.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
@@ -30,6 +30,6 @@ libc_ifunc_redirected (__redirect_strcspn, strcspn, IFUNC_SELECTOR ());
# ifdef SHARED
__hidden_ver1 (strcspn, __GI_strcspn, __redirect_strcspn)
- __attribute__ ((visibility ("hidden")));
+ __attribute__ ((visibility ("hidden"))) __attribute_copy__ (strcspn);
# endif
#endif
diff --git a/sysdeps/x86_64/multiarch/strlen-avx2.S b/sysdeps/x86_64/multiarch/strlen-avx2.S
index fb2418cddc..e131b55f56 100644
--- a/sysdeps/x86_64/multiarch/strlen-avx2.S
+++ b/sysdeps/x86_64/multiarch/strlen-avx2.S
@@ -1,5 +1,5 @@
/* strlen/strnlen/wcslen/wcsnlen optimized with AVX2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
@@ -42,12 +42,15 @@
ENTRY (STRLEN)
# ifdef USE_AS_STRNLEN
/* Check for zero length. */
- testq %rsi, %rsi
+ test %RSI_LP, %RSI_LP
jz L(zero)
# ifdef USE_AS_WCSLEN
- shl $2, %rsi
+ shl $2, %RSI_LP
+# elif defined __ILP32__
+ /* Clear the upper 32 bits. */
+ movl %esi, %esi
# endif
- movq %rsi, %r8
+ mov %RSI_LP, %R8_LP
# endif
movl %edi, %ecx
movq %rdi, %rdx
diff --git a/sysdeps/x86_64/multiarch/strlen-sse2.S b/sysdeps/x86_64/multiarch/strlen-sse2.S
index 7bc57b8d0f..353b3cba6b 100644
--- a/sysdeps/x86_64/multiarch/strlen-sse2.S
+++ b/sysdeps/x86_64/multiarch/strlen-sse2.S
@@ -1,5 +1,5 @@
/* strlen optimized with SSE2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# define strlen __strlen_sse2
diff --git a/sysdeps/x86_64/multiarch/strlen.c b/sysdeps/x86_64/multiarch/strlen.c
index 1758d22b8f..b1f6fe2e4e 100644
--- a/sysdeps/x86_64/multiarch/strlen.c
+++ b/sysdeps/x86_64/multiarch/strlen.c
@@ -1,6 +1,6 @@
/* Multiple versions of strlen.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
@@ -29,6 +29,6 @@
libc_ifunc_redirected (__redirect_strlen, strlen, IFUNC_SELECTOR ());
# ifdef SHARED
__hidden_ver1 (strlen, __GI_strlen, __redirect_strlen)
- __attribute__((visibility ("hidden")));
+ __attribute__((visibility ("hidden"))) __attribute_copy__ (strlen);
# endif
#endif
diff --git a/sysdeps/x86_64/multiarch/strncase.c b/sysdeps/x86_64/multiarch/strncase.c
index 798966cf3e..a8ac5faff9 100644
--- a/sysdeps/x86_64/multiarch/strncase.c
+++ b/sysdeps/x86_64/multiarch/strncase.c
@@ -1,6 +1,6 @@
/* Multiple versions of strncasecmp.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/x86_64/multiarch/strncase_l-avx.S b/sysdeps/x86_64/multiarch/strncase_l-avx.S
index 0c4e525bd4..5cc73a0f36 100644
--- a/sysdeps/x86_64/multiarch/strncase_l-avx.S
+++ b/sysdeps/x86_64/multiarch/strncase_l-avx.S
@@ -1,5 +1,5 @@
/* strncasecmp_l optimized with AVX.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define STRCMP_SSE42 __strncasecmp_l_avx
#define USE_AVX 1
diff --git a/sysdeps/x86_64/multiarch/strncase_l-sse2.S b/sysdeps/x86_64/multiarch/strncase_l-sse2.S
index e7841334b7..345929f21c 100644
--- a/sysdeps/x86_64/multiarch/strncase_l-sse2.S
+++ b/sysdeps/x86_64/multiarch/strncase_l-sse2.S
@@ -1,5 +1,5 @@
/* strncasecmp_l optimized with SSE2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define STRCMP __strncasecmp_l_sse2
#define NO_NOLOCALE_ALIAS
diff --git a/sysdeps/x86_64/multiarch/strncase_l-sse4_2.S b/sysdeps/x86_64/multiarch/strncase_l-sse4_2.S
index d2ea88c4ce..42ef481135 100644
--- a/sysdeps/x86_64/multiarch/strncase_l-sse4_2.S
+++ b/sysdeps/x86_64/multiarch/strncase_l-sse4_2.S
@@ -1,5 +1,5 @@
/* strncasecmp_l optimized with SSE4.2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define STRCMP_SSE42 __strncasecmp_l_sse42
#define USE_AS_STRNCASECMP_L
diff --git a/sysdeps/x86_64/multiarch/strncase_l.c b/sysdeps/x86_64/multiarch/strncase_l.c
index 97631cf401..656d7cf4b5 100644
--- a/sysdeps/x86_64/multiarch/strncase_l.c
+++ b/sysdeps/x86_64/multiarch/strncase_l.c
@@ -1,6 +1,6 @@
/* Multiple versions of strncasecmp_l.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/x86_64/multiarch/strncat-avx2.S b/sysdeps/x86_64/multiarch/strncat-avx2.S
new file mode 100644
index 0000000000..bfefa659bb
--- /dev/null
+++ b/sysdeps/x86_64/multiarch/strncat-avx2.S
@@ -0,0 +1,3 @@
+#define USE_AS_STRNCAT
+#define STRCAT __strncat_avx2
+#include "strcat-avx2.S"
diff --git a/sysdeps/x86_64/multiarch/strncat.c b/sysdeps/x86_64/multiarch/strncat.c
index 841c165565..438565768a 100644
--- a/sysdeps/x86_64/multiarch/strncat.c
+++ b/sysdeps/x86_64/multiarch/strncat.c
@@ -1,6 +1,6 @@
/* Multiple versions of strncat.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
@@ -24,12 +24,12 @@
# undef strncat
# define SYMBOL_NAME strncat
-# include "ifunc-unaligned-ssse3.h"
+# include "ifunc-strcpy.h"
libc_ifunc_redirected (__redirect_strncat, strncat, IFUNC_SELECTOR ());
strong_alias (strncat, __strncat);
# ifdef SHARED
__hidden_ver1 (strncat, __GI___strncat, __redirect_strncat)
- __attribute__((visibility ("hidden")));
+ __attribute__((visibility ("hidden"))) __attribute_copy__ (strncat);
# endif
#endif
diff --git a/sysdeps/x86_64/multiarch/strncmp-sse2.S b/sysdeps/x86_64/multiarch/strncmp-sse2.S
index a5ecb82b13..93d4dc4ea3 100644
--- a/sysdeps/x86_64/multiarch/strncmp-sse2.S
+++ b/sysdeps/x86_64/multiarch/strncmp-sse2.S
@@ -1,5 +1,5 @@
/* strcmp optimized with SSE2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/x86_64/multiarch/strncmp-sse4_2.S b/sysdeps/x86_64/multiarch/strncmp-sse4_2.S
index b859c1eb74..9fe4a81d0f 100644
--- a/sysdeps/x86_64/multiarch/strncmp-sse4_2.S
+++ b/sysdeps/x86_64/multiarch/strncmp-sse4_2.S
@@ -1,5 +1,5 @@
/* strncmp optimized with SSE4.2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define STRCMP_SSE42 __strncmp_sse42
#define USE_AS_STRNCMP
diff --git a/sysdeps/x86_64/multiarch/strncmp-ssse3.S b/sysdeps/x86_64/multiarch/strncmp-ssse3.S
index fa43484b54..d7b378941f 100644
--- a/sysdeps/x86_64/multiarch/strncmp-ssse3.S
+++ b/sysdeps/x86_64/multiarch/strncmp-ssse3.S
@@ -1,5 +1,5 @@
/* strcmp optimized with SSSE3.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/x86_64/multiarch/strncmp.c b/sysdeps/x86_64/multiarch/strncmp.c
index 02b6d0b6f5..ae901f5b31 100644
--- a/sysdeps/x86_64/multiarch/strncmp.c
+++ b/sysdeps/x86_64/multiarch/strncmp.c
@@ -1,6 +1,6 @@
/* Multiple versions of strncmp.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
@@ -55,6 +55,6 @@ libc_ifunc_redirected (__redirect_strncmp, strncmp, IFUNC_SELECTOR ());
# ifdef SHARED
__hidden_ver1 (strncmp, __GI_strncmp, __redirect_strncmp)
- __attribute__ ((visibility ("hidden")));
+ __attribute__ ((visibility ("hidden"))) __attribute_copy__ (strncmp);
# endif
#endif
diff --git a/sysdeps/x86_64/multiarch/strncpy-avx2.S b/sysdeps/x86_64/multiarch/strncpy-avx2.S
new file mode 100644
index 0000000000..9ef8c87627
--- /dev/null
+++ b/sysdeps/x86_64/multiarch/strncpy-avx2.S
@@ -0,0 +1,3 @@
+#define USE_AS_STRNCPY
+#define STRCPY __strncpy_avx2
+#include "strcpy-avx2.S"
diff --git a/sysdeps/x86_64/multiarch/strncpy.c b/sysdeps/x86_64/multiarch/strncpy.c
index 3c3de8b18e..38b38c1646 100644
--- a/sysdeps/x86_64/multiarch/strncpy.c
+++ b/sysdeps/x86_64/multiarch/strncpy.c
@@ -1,6 +1,6 @@
/* Multiple versions of strncpy.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
@@ -24,12 +24,12 @@
# undef strncpy
# define SYMBOL_NAME strncpy
-# include "ifunc-unaligned-ssse3.h"
+# include "ifunc-strcpy.h"
libc_ifunc_redirected (__redirect_strncpy, strncpy, IFUNC_SELECTOR ());
# ifdef SHARED
__hidden_ver1 (strncpy, __GI_strncpy, __redirect_strncpy)
- __attribute__ ((visibility ("hidden")));
+ __attribute__ ((visibility ("hidden"))) __attribute_copy__ (strncpy);
# endif
#endif
diff --git a/sysdeps/x86_64/multiarch/strnlen-sse2.S b/sysdeps/x86_64/multiarch/strnlen-sse2.S
index 41f33f6f6f..29e574978e 100644
--- a/sysdeps/x86_64/multiarch/strnlen-sse2.S
+++ b/sysdeps/x86_64/multiarch/strnlen-sse2.S
@@ -1,5 +1,5 @@
/* strnlen optimized with SSE2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# define __strnlen __strnlen_sse2
diff --git a/sysdeps/x86_64/multiarch/strnlen.c b/sysdeps/x86_64/multiarch/strnlen.c
index 3ab94ce230..688dd83ed7 100644
--- a/sysdeps/x86_64/multiarch/strnlen.c
+++ b/sysdeps/x86_64/multiarch/strnlen.c
@@ -1,6 +1,6 @@
/* Multiple versions of strnlen.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
@@ -32,8 +32,8 @@ libc_ifunc_redirected (__redirect_strnlen, __strnlen, IFUNC_SELECTOR ());
weak_alias (__strnlen, strnlen);
# ifdef SHARED
__hidden_ver1 (__strnlen, __GI___strnlen, __redirect___strnlen)
- __attribute__((visibility ("hidden")));
+ __attribute__((visibility ("hidden"))) __attribute_copy__ (strnlen);
__hidden_ver1 (strnlen, __GI_strnlen, __redirect_strnlen)
- __attribute__((weak, visibility ("hidden")));
+ __attribute__((weak, visibility ("hidden"))) __attribute_copy__ (strnlen);
# endif
#endif
diff --git a/sysdeps/x86_64/multiarch/strpbrk-sse2.S b/sysdeps/x86_64/multiarch/strpbrk-sse2.S
index 3c6a74db29..59efe35ca7 100644
--- a/sysdeps/x86_64/multiarch/strpbrk-sse2.S
+++ b/sysdeps/x86_64/multiarch/strpbrk-sse2.S
@@ -1,5 +1,5 @@
/* strpbrk optimized with SSE2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
diff --git a/sysdeps/x86_64/multiarch/strpbrk.c b/sysdeps/x86_64/multiarch/strpbrk.c
index a0d435a504..94917f1d4e 100644
--- a/sysdeps/x86_64/multiarch/strpbrk.c
+++ b/sysdeps/x86_64/multiarch/strpbrk.c
@@ -1,6 +1,6 @@
/* Multiple versions of strpbrk.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
@@ -30,6 +30,6 @@ libc_ifunc_redirected (__redirect_strpbrk, strpbrk, IFUNC_SELECTOR ());
# ifdef SHARED
__hidden_ver1 (strpbrk, __GI_strpbrk, __redirect_strpbrk)
- __attribute__ ((visibility ("hidden")));
+ __attribute__ ((visibility ("hidden"))) __attribute_copy__ (strpbrk);
# endif
#endif
diff --git a/sysdeps/x86_64/multiarch/strrchr-avx2.S b/sysdeps/x86_64/multiarch/strrchr-avx2.S
index 4381e6ab3e..53625292e5 100644
--- a/sysdeps/x86_64/multiarch/strrchr-avx2.S
+++ b/sysdeps/x86_64/multiarch/strrchr-avx2.S
@@ -1,5 +1,5 @@
/* strrchr/wcsrchr optimized with AVX2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
diff --git a/sysdeps/x86_64/multiarch/strrchr-sse2.S b/sysdeps/x86_64/multiarch/strrchr-sse2.S
index 0ec76fe9cc..eaed3eaeac 100644
--- a/sysdeps/x86_64/multiarch/strrchr-sse2.S
+++ b/sysdeps/x86_64/multiarch/strrchr-sse2.S
@@ -1,5 +1,5 @@
/* strrchr optimized with SSE2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# define strrchr __strrchr_sse2
diff --git a/sysdeps/x86_64/multiarch/strrchr.c b/sysdeps/x86_64/multiarch/strrchr.c
index a719edde10..977eb9f14f 100644
--- a/sysdeps/x86_64/multiarch/strrchr.c
+++ b/sysdeps/x86_64/multiarch/strrchr.c
@@ -1,5 +1,5 @@
/* Multiple versions of strrchr.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
@@ -29,6 +29,6 @@ libc_ifunc_redirected (__redirect_strrchr, strrchr, IFUNC_SELECTOR ());
weak_alias (strrchr, rindex);
# ifdef SHARED
__hidden_ver1 (strrchr, __GI_strrchr, __redirect_strrchr)
- __attribute__((visibility ("hidden")));
+ __attribute__((visibility ("hidden"))) __attribute_copy__ (strrchr);
# endif
#endif
diff --git a/sysdeps/x86_64/multiarch/strspn-c.c b/sysdeps/x86_64/multiarch/strspn-c.c
index 4554cff0c2..f8ac62e5a3 100644
--- a/sysdeps/x86_64/multiarch/strspn-c.c
+++ b/sysdeps/x86_64/multiarch/strspn-c.c
@@ -1,5 +1,5 @@
/* strspn with SSE4.2 intrinsics
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <nmmintrin.h>
#include <string.h>
diff --git a/sysdeps/x86_64/multiarch/strspn-sse2.S b/sysdeps/x86_64/multiarch/strspn-sse2.S
index 4686cdd55d..028fbbff12 100644
--- a/sysdeps/x86_64/multiarch/strspn-sse2.S
+++ b/sysdeps/x86_64/multiarch/strspn-sse2.S
@@ -1,5 +1,5 @@
/* strspn optimized with SSE2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
diff --git a/sysdeps/x86_64/multiarch/strspn.c b/sysdeps/x86_64/multiarch/strspn.c
index 56ab4d9558..c6968a85d6 100644
--- a/sysdeps/x86_64/multiarch/strspn.c
+++ b/sysdeps/x86_64/multiarch/strspn.c
@@ -1,6 +1,6 @@
/* Multiple versions of strspn.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
@@ -30,6 +30,6 @@ libc_ifunc_redirected (__redirect_strspn, strspn, IFUNC_SELECTOR ());
# ifdef SHARED
__hidden_ver1 (strspn, __GI_strspn, __redirect_strspn)
- __attribute__ ((visibility ("hidden")));
+ __attribute__ ((visibility ("hidden"))) __attribute_copy__ (strspn);
# endif
#endif
diff --git a/sysdeps/x86_64/multiarch/strstr-sse2-unaligned.S b/sysdeps/x86_64/multiarch/strstr-sse2-unaligned.S
index 8188b8f643..31afed598a 100644
--- a/sysdeps/x86_64/multiarch/strstr-sse2-unaligned.S
+++ b/sysdeps/x86_64/multiarch/strstr-sse2-unaligned.S
@@ -1,5 +1,5 @@
/* strstr with unaligned loads
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/x86_64/multiarch/strstr.c b/sysdeps/x86_64/multiarch/strstr.c
index 30ce597a16..3dc43d3606 100644
--- a/sysdeps/x86_64/multiarch/strstr.c
+++ b/sysdeps/x86_64/multiarch/strstr.c
@@ -1,6 +1,6 @@
/* Multiple versions of strstr.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Redefine strstr so that the compiler won't complain about the type
mismatch with the IFUNC selector in strong_alias, below. */
diff --git a/sysdeps/x86_64/multiarch/test-multiarch.c b/sysdeps/x86_64/multiarch/test-multiarch.c
index aa872f27db..9d7a3b3e8d 100644
--- a/sysdeps/x86_64/multiarch/test-multiarch.c
+++ b/sysdeps/x86_64/multiarch/test-multiarch.c
@@ -1,6 +1,6 @@
/* Test CPU feature data.
This file is part of the GNU C Library.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <cpu-features.h>
#include <stdio.h>
@@ -85,8 +85,8 @@ do_test (int argc, char **argv)
, "HAS_CPU_FEATURE (SSE4_1)");
fails += check_proc ("ssse3", HAS_CPU_FEATURE (SSSE3),
"HAS_CPU_FEATURE (SSSE3)");
- fails += check_proc ("popcnt", HAS_CPU_FEATURE (POPCOUNT),
- "HAS_CPU_FEATURE (POPCOUNT)");
+ fails += check_proc ("popcnt", HAS_CPU_FEATURE (POPCNT),
+ "HAS_CPU_FEATURE (POPCNT)");
printf ("%d differences between /proc/cpuinfo and glibc code.\n", fails);
diff --git a/sysdeps/x86_64/multiarch/varshift.c b/sysdeps/x86_64/multiarch/varshift.c
index 2838736544..8317b9203e 100644
--- a/sysdeps/x86_64/multiarch/varshift.c
+++ b/sysdeps/x86_64/multiarch/varshift.c
@@ -1,5 +1,5 @@
/* Helper for variable shifts of SSE registers.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "varshift.h"
diff --git a/sysdeps/x86_64/multiarch/varshift.h b/sysdeps/x86_64/multiarch/varshift.h
index 76f2759874..ee553a9e71 100644
--- a/sysdeps/x86_64/multiarch/varshift.h
+++ b/sysdeps/x86_64/multiarch/varshift.h
@@ -1,5 +1,5 @@
/* Helper for variable shifts of SSE registers.
- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+ Copyright (C) 2010-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
#include <tmmintrin.h>
diff --git a/sysdeps/x86_64/multiarch/wcschr-sse2.S b/sysdeps/x86_64/multiarch/wcschr-sse2.S
index 67e4742ef1..ebbdbb0f31 100644
--- a/sysdeps/x86_64/multiarch/wcschr-sse2.S
+++ b/sysdeps/x86_64/multiarch/wcschr-sse2.S
@@ -1,5 +1,5 @@
/* wcschr optimized with SSE2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# define __wcschr __wcschr_sse2
diff --git a/sysdeps/x86_64/multiarch/wcschr.c b/sysdeps/x86_64/multiarch/wcschr.c
index 20a03833b9..7c295599fb 100644
--- a/sysdeps/x86_64/multiarch/wcschr.c
+++ b/sysdeps/x86_64/multiarch/wcschr.c
@@ -1,6 +1,6 @@
/* Multiple versions of wcschr.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/x86_64/multiarch/wcscmp-sse2.S b/sysdeps/x86_64/multiarch/wcscmp-sse2.S
index b129d1c073..85839dab10 100644
--- a/sysdeps/x86_64/multiarch/wcscmp-sse2.S
+++ b/sysdeps/x86_64/multiarch/wcscmp-sse2.S
@@ -1,5 +1,5 @@
/* wcscmp optimized with SSE2.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# define __wcscmp __wcscmp_sse2
diff --git a/sysdeps/x86_64/multiarch/wcscmp.c b/sysdeps/x86_64/multiarch/wcscmp.c
index 74d92cf0f9..7fbf99a15b 100644
--- a/sysdeps/x86_64/multiarch/wcscmp.c
+++ b/sysdeps/x86_64/multiarch/wcscmp.c
@@ -1,5 +1,5 @@
/* Multiple versions of wcscmp.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/x86_64/multiarch/wcscpy-c.c b/sysdeps/x86_64/multiarch/wcscpy-c.c
index a51a83a9be..26d6984e9b 100644
--- a/sysdeps/x86_64/multiarch/wcscpy-c.c
+++ b/sysdeps/x86_64/multiarch/wcscpy-c.c
@@ -1,5 +1,5 @@
#if IS_IN (libc)
-# define wcscpy __wcscpy_sse2
+# define WCSCPY __wcscpy_sse2
#endif
-#include "wcsmbs/wcscpy.c"
+#include <wcsmbs/wcscpy.c>
diff --git a/sysdeps/x86_64/multiarch/wcscpy-ssse3.S b/sysdeps/x86_64/multiarch/wcscpy-ssse3.S
index ea1589052b..892abd1bec 100644
--- a/sysdeps/x86_64/multiarch/wcscpy-ssse3.S
+++ b/sysdeps/x86_64/multiarch/wcscpy-ssse3.S
@@ -1,5 +1,5 @@
/* wcscpy with SSSE3
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# include <sysdep.h>
diff --git a/sysdeps/x86_64/multiarch/wcscpy.c b/sysdeps/x86_64/multiarch/wcscpy.c
index f23b1fd853..26eebac66c 100644
--- a/sysdeps/x86_64/multiarch/wcscpy.c
+++ b/sysdeps/x86_64/multiarch/wcscpy.c
@@ -1,6 +1,6 @@
/* Multiple versions of wcscpy.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,13 +15,13 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
-# define wcscpy __redirect_wcscpy
+# define __wcscpy __redirect_wcscpy
# include <wchar.h>
-# undef wcscpy
+# undef __wcscpy
# define SYMBOL_NAME wcscpy
# include <init-arch.h>
@@ -40,5 +40,10 @@ IFUNC_SELECTOR (void)
return OPTIMIZE (sse2);
}
-libc_ifunc_redirected (__redirect_wcscpy, wcscpy, IFUNC_SELECTOR ());
+libc_ifunc_redirected (__redirect_wcscpy, __wcscpy, IFUNC_SELECTOR ());
+weak_alias (__wcscpy, wcscpy)
+# ifdef SHARED
+__hidden_ver1 (__wcscpy, __GI___wcscpy, __redirect_wcscpy)
+ __attribute__((visibility ("hidden"))) __attribute_copy__ (wcscpy);
+# endif
#endif
diff --git a/sysdeps/x86_64/multiarch/wcslen-sse2.S b/sysdeps/x86_64/multiarch/wcslen-sse2.S
index 6031978363..636fe98cee 100644
--- a/sysdeps/x86_64/multiarch/wcslen-sse2.S
+++ b/sysdeps/x86_64/multiarch/wcslen-sse2.S
@@ -1,5 +1,5 @@
/* wcslen optimized with SSE2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# define __wcslen __wcslen_sse2
diff --git a/sysdeps/x86_64/multiarch/wcslen.c b/sysdeps/x86_64/multiarch/wcslen.c
index 6d06e47cbd..90abb8ca8f 100644
--- a/sysdeps/x86_64/multiarch/wcslen.c
+++ b/sysdeps/x86_64/multiarch/wcslen.c
@@ -1,6 +1,6 @@
/* Multiple versions of wcslen.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/x86_64/multiarch/wcsncmp-sse2.c b/sysdeps/x86_64/multiarch/wcsncmp-sse2.c
index 2bc7b4f693..bc6240cc1a 100644
--- a/sysdeps/x86_64/multiarch/wcsncmp-sse2.c
+++ b/sysdeps/x86_64/multiarch/wcsncmp-sse2.c
@@ -1,5 +1,5 @@
/* wcsncmp optimized with SSE2.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define WCSNCMP __wcsncmp_sse2
#include <wcsmbs/wcsncmp.c>
diff --git a/sysdeps/x86_64/multiarch/wcsncmp.c b/sysdeps/x86_64/multiarch/wcsncmp.c
index 90e9a352d9..04cf08898c 100644
--- a/sysdeps/x86_64/multiarch/wcsncmp.c
+++ b/sysdeps/x86_64/multiarch/wcsncmp.c
@@ -1,5 +1,5 @@
/* Multiple versions of wcsncmp.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/x86_64/multiarch/wcsnlen.c b/sysdeps/x86_64/multiarch/wcsnlen.c
index bd376057e3..4c69c5cd01 100644
--- a/sysdeps/x86_64/multiarch/wcsnlen.c
+++ b/sysdeps/x86_64/multiarch/wcsnlen.c
@@ -1,6 +1,6 @@
/* Multiple versions of wcsnlen.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/x86_64/multiarch/wcsrchr-sse2.S b/sysdeps/x86_64/multiarch/wcsrchr-sse2.S
index d015e95317..14827183f9 100644
--- a/sysdeps/x86_64/multiarch/wcsrchr-sse2.S
+++ b/sysdeps/x86_64/multiarch/wcsrchr-sse2.S
@@ -1,5 +1,5 @@
/* wcsrchr optimized with SSE2.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc)
# define wcsrchr __wcsrchr_sse2
diff --git a/sysdeps/x86_64/multiarch/wcsrchr.c b/sysdeps/x86_64/multiarch/wcsrchr.c
index 219fc828a6..4b70decec3 100644
--- a/sysdeps/x86_64/multiarch/wcsrchr.c
+++ b/sysdeps/x86_64/multiarch/wcsrchr.c
@@ -1,5 +1,5 @@
/* Multiple versions of wcsrchr.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/x86_64/multiarch/wmemchr.c b/sysdeps/x86_64/multiarch/wmemchr.c
index 6d833702c6..b5fd00265a 100644
--- a/sysdeps/x86_64/multiarch/wmemchr.c
+++ b/sysdeps/x86_64/multiarch/wmemchr.c
@@ -1,6 +1,6 @@
/* Multiple versions of wmemchr
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/x86_64/multiarch/wmemcmp.c b/sysdeps/x86_64/multiarch/wmemcmp.c
index 3f4a7422f3..fb03c97b58 100644
--- a/sysdeps/x86_64/multiarch/wmemcmp.c
+++ b/sysdeps/x86_64/multiarch/wmemcmp.c
@@ -1,6 +1,6 @@
/* Multiple versions of wmemcmp
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
@@ -26,5 +26,6 @@
# define SYMBOL_NAME wmemcmp
# include "ifunc-memcmp.h"
-libc_ifunc_redirected (__redirect_wmemcmp, wmemcmp, IFUNC_SELECTOR ());
+libc_ifunc_redirected (__redirect_wmemcmp, __wmemcmp, IFUNC_SELECTOR ());
+weak_alias (__wmemcmp, wmemcmp)
#endif
diff --git a/sysdeps/x86_64/multiarch/wmemset.c b/sysdeps/x86_64/multiarch/wmemset.c
index 9fee77ea81..bd858ea075 100644
--- a/sysdeps/x86_64/multiarch/wmemset.c
+++ b/sysdeps/x86_64/multiarch/wmemset.c
@@ -1,6 +1,6 @@
/* Multiple versions of wmemset.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc. */
#if IS_IN (libc)
diff --git a/sysdeps/x86_64/multiarch/wmemset_chk-nonshared.S b/sysdeps/x86_64/multiarch/wmemset_chk-nonshared.S
index 140c93d6f0..87b0e3a23d 100644
--- a/sysdeps/x86_64/multiarch/wmemset_chk-nonshared.S
+++ b/sysdeps/x86_64/multiarch/wmemset_chk-nonshared.S
@@ -1,5 +1,5 @@
/* Non-shared version of wmemset_chk for x86-64.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#if IS_IN (libc) && !defined SHARED
# include <sysdeps/x86_64/wmemset_chk.S>
diff --git a/sysdeps/x86_64/multiarch/wmemset_chk.c b/sysdeps/x86_64/multiarch/wmemset_chk.c
index 88280192c5..f40dde3d26 100644
--- a/sysdeps/x86_64/multiarch/wmemset_chk.c
+++ b/sysdeps/x86_64/multiarch/wmemset_chk.c
@@ -1,6 +1,6 @@
/* Multiple versions of wmemset_chk.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Define multiple versions only for the definition in libc.so. */
#if IS_IN (libc) && defined SHARED
diff --git a/sysdeps/x86_64/nptl/Makefile b/sysdeps/x86_64/nptl/Makefile
index 73024033ee..36e6089513 100644
--- a/sysdeps/x86_64/nptl/Makefile
+++ b/sysdeps/x86_64/nptl/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2018 Free Software Foundation, Inc.
+# Copyright (C) 2002-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
ifeq ($(subdir),csu)
gen-as-const-headers += tcb-offsets.sym
diff --git a/sysdeps/x86_64/nptl/pthread-offsets.h b/sysdeps/x86_64/nptl/pthread-offsets.h
index 16c6b0d9fd..a311da40c6 100644
--- a/sysdeps/x86_64/nptl/pthread-offsets.h
+++ b/sysdeps/x86_64/nptl/pthread-offsets.h
@@ -1,5 +1,7 @@
-#define __PTHREAD_MUTEX_NUSERS_OFFSET 12
#define __PTHREAD_MUTEX_KIND_OFFSET 16
-#define __PTHREAD_MUTEX_SPINS_OFFSET 20
-#define __PTHREAD_MUTEX_ELISION_OFFSET 22
-#define __PTHREAD_MUTEX_LIST_OFFSET 24
+
+#ifdef __ILP32__
+# define __PTHREAD_RWLOCK_FLAGS_OFFSET 40
+#else
+# define __PTHREAD_RWLOCK_FLAGS_OFFSET 48
+#endif
diff --git a/sysdeps/x86_64/nptl/pthread_spin_lock.S b/sysdeps/x86_64/nptl/pthread_spin_lock.S
index 730fd65034..b3b4dd89fd 100644
--- a/sysdeps/x86_64/nptl/pthread_spin_lock.S
+++ b/sysdeps/x86_64/nptl/pthread_spin_lock.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <lowlevellock.h>
#include <sysdep.h>
diff --git a/sysdeps/x86_64/nptl/pthread_spin_trylock.S b/sysdeps/x86_64/nptl/pthread_spin_trylock.S
index a8f1b72d60..27f958560e 100644
--- a/sysdeps/x86_64/nptl/pthread_spin_trylock.S
+++ b/sysdeps/x86_64/nptl/pthread_spin_trylock.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <pthread-errnos.h>
#include <sysdep.h>
diff --git a/sysdeps/x86_64/nptl/pthread_spin_unlock.S b/sysdeps/x86_64/nptl/pthread_spin_unlock.S
index afd114e855..07805bb6e8 100644
--- a/sysdeps/x86_64/nptl/pthread_spin_unlock.S
+++ b/sysdeps/x86_64/nptl/pthread_spin_unlock.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/x86_64/nptl/pthreaddef.h b/sysdeps/x86_64/nptl/pthreaddef.h
index 036deb5772..dc83b73619 100644
--- a/sysdeps/x86_64/nptl/pthreaddef.h
+++ b/sysdeps/x86_64/nptl/pthreaddef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Default stack size. */
#define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024)
diff --git a/sysdeps/x86_64/nptl/tls.h b/sysdeps/x86_64/nptl/tls.h
index e88561c934..2d4778a332 100644
--- a/sysdeps/x86_64/nptl/tls.h
+++ b/sysdeps/x86_64/nptl/tls.h
@@ -1,5 +1,5 @@
/* Definition for thread-local data handling. nptl/x86_64 version.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _TLS_H
#define _TLS_H 1
@@ -306,43 +306,6 @@ _Static_assert (offsetof (tcbhead_t, __glibc_unused2) == 0x80,
}})
-/* Atomic compare and exchange on TLS, returning old value. */
-# define THREAD_ATOMIC_CMPXCHG_VAL(descr, member, newval, oldval) \
- ({ __typeof (descr->member) __ret; \
- __typeof (oldval) __old = (oldval); \
- if (sizeof (descr->member) == 4) \
- asm volatile (LOCK_PREFIX "cmpxchgl %2, %%fs:%P3" \
- : "=a" (__ret) \
- : "0" (__old), "r" (newval), \
- "i" (offsetof (struct pthread, member))); \
- else \
- /* Not necessary for other sizes in the moment. */ \
- abort (); \
- __ret; })
-
-
-/* Atomic logical and. */
-# define THREAD_ATOMIC_AND(descr, member, val) \
- (void) ({ if (sizeof ((descr)->member) == 4) \
- asm volatile (LOCK_PREFIX "andl %1, %%fs:%P0" \
- :: "i" (offsetof (struct pthread, member)), \
- "ir" (val)); \
- else \
- /* Not necessary for other sizes in the moment. */ \
- abort (); })
-
-
-/* Atomic set bit. */
-# define THREAD_ATOMIC_BIT_SET(descr, member, bit) \
- (void) ({ if (sizeof ((descr)->member) == 4) \
- asm volatile (LOCK_PREFIX "orl %1, %%fs:%P0" \
- :: "i" (offsetof (struct pthread, member)), \
- "ir" (1 << (bit))); \
- else \
- /* Not necessary for other sizes in the moment. */ \
- abort (); })
-
-
/* Set the stack guard field in TCB head. */
# define THREAD_SET_STACK_GUARD(value) \
THREAD_SETMEM (THREAD_SELF, header.stack_guard, value)
diff --git a/sysdeps/x86_64/rawmemchr.S b/sysdeps/x86_64/rawmemchr.S
index cf972768ec..20f3e1671e 100644
--- a/sysdeps/x86_64/rawmemchr.S
+++ b/sysdeps/x86_64/rawmemchr.S
@@ -1,6 +1,6 @@
/* fast SSE2 memchr with 64 byte loop and pmaxub instruction using
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/x86_64/rshift.S b/sysdeps/x86_64/rshift.S
index 1d018b857b..f2f446f792 100644
--- a/sysdeps/x86_64/rshift.S
+++ b/sysdeps/x86_64/rshift.S
@@ -1,5 +1,5 @@
/* x86-64 __mpn_rshift --
- Copyright (C) 2007-2018 Free Software Foundation, Inc.
+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
The GNU MP Library is free software; you can redistribute it and/or modify
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not,
- see <http://www.gnu.org/licenses/>. */
+ see <https://www.gnu.org/licenses/>. */
#include "sysdep.h"
#include "asm-syntax.h"
diff --git a/sysdeps/x86_64/sched_cpucount.c b/sysdeps/x86_64/sched_cpucount.c
index af5bbcc044..256e138c61 100644
--- a/sysdeps/x86_64/sched_cpucount.c
+++ b/sysdeps/x86_64/sched_cpucount.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2007-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifdef __amdfam10
# define POPCNT(l) \
diff --git a/sysdeps/x86_64/setjmp.S b/sysdeps/x86_64/setjmp.S
index 78a8bf4644..fc6d4566c8 100644
--- a/sysdeps/x86_64/setjmp.S
+++ b/sysdeps/x86_64/setjmp.S
@@ -1,5 +1,5 @@
/* setjmp for x86-64.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <jmpbuf-offsets.h>
diff --git a/sysdeps/x86_64/stackinfo.h b/sysdeps/x86_64/stackinfo.h
index f7a5672f27..9d86926d54 100644
--- a/sysdeps/x86_64/stackinfo.h
+++ b/sysdeps/x86_64/stackinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2001-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This file contains a bit of information about the stack allocation
of the processor. */
diff --git a/sysdeps/x86_64/start.S b/sysdeps/x86_64/start.S
index 354d2e6ec7..ae08f98180 100644
--- a/sysdeps/x86_64/start.S
+++ b/sysdeps/x86_64/start.S
@@ -1,5 +1,5 @@
/* Startup code compliant to the ELF x86-64 ABI.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 2001.
@@ -32,7 +32,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This is the canonical entry point, usually the first thing in the text
segment. The SVR4/i386 ABI (pages 3-31, 3-32) says that when the entry
diff --git a/sysdeps/x86_64/strcat.S b/sysdeps/x86_64/strcat.S
index 9a4a4e6feb..e524a357e9 100644
--- a/sysdeps/x86_64/strcat.S
+++ b/sysdeps/x86_64/strcat.S
@@ -1,6 +1,6 @@
/* strcat(dest, src) -- Append SRC on the end of DEST.
Optimized for x86-64.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "asm-syntax.h"
diff --git a/sysdeps/x86_64/strchr.S b/sysdeps/x86_64/strchr.S
index 1d5112746f..75019056cf 100644
--- a/sysdeps/x86_64/strchr.S
+++ b/sysdeps/x86_64/strchr.S
@@ -1,6 +1,6 @@
/* strchr (str, ch) -- Return pointer to first occurrence of CH in STR.
For AMD x86-64.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/x86_64/strchrnul.S b/sysdeps/x86_64/strchrnul.S
index 149f3a9ced..913e559f33 100644
--- a/sysdeps/x86_64/strchrnul.S
+++ b/sysdeps/x86_64/strchrnul.S
@@ -1,7 +1,7 @@
/* strchrnul (str, ch) -- Return pointer to first occurrence of CH in STR
or terminating NUL byte.
For AMD x86-64.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/x86_64/strcmp.S b/sysdeps/x86_64/strcmp.S
index e16945b961..95d06b675f 100644
--- a/sysdeps/x86_64/strcmp.S
+++ b/sysdeps/x86_64/strcmp.S
@@ -1,5 +1,5 @@
/* Highly optimized version for x86-64.
- Copyright (C) 1999-2018 Free Software Foundation, Inc.
+ Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Based on i686 version contributed by Ulrich Drepper
<drepper@cygnus.com>, 1999.
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "asm-syntax.h"
@@ -135,11 +135,11 @@ ENTRY (STRCMP)
* This implementation uses SSE to compare up to 16 bytes at a time.
*/
#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
- test %rdx, %rdx
+ test %RDX_LP, %RDX_LP
je LABEL(strcmp_exitz)
- cmp $1, %rdx
+ cmp $1, %RDX_LP
je LABEL(Byte0)
- mov %rdx, %r11
+ mov %RDX_LP, %R11_LP
#endif
mov %esi, %ecx
mov %edi, %eax
diff --git a/sysdeps/x86_64/strcpy.S b/sysdeps/x86_64/strcpy.S
index 66128a7cb5..c445428218 100644
--- a/sysdeps/x86_64/strcpy.S
+++ b/sysdeps/x86_64/strcpy.S
@@ -1,5 +1,5 @@
/* strcpy/stpcpy implementation for x86-64.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "asm-syntax.h"
diff --git a/sysdeps/x86_64/strcspn.S b/sysdeps/x86_64/strcspn.S
index 7f9202d656..1c59c454c3 100644
--- a/sysdeps/x86_64/strcspn.S
+++ b/sysdeps/x86_64/strcspn.S
@@ -1,7 +1,7 @@
/* strcspn (str, ss) -- Return the length of the initial segment of STR
which contains no characters from SS.
For AMD x86-64.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>.
Bug fixes by Alan Modra <Alan@SPRI.Levels.UniSA.Edu.Au>.
@@ -19,7 +19,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "asm-syntax.h"
diff --git a/sysdeps/x86_64/strlen.S b/sysdeps/x86_64/strlen.S
index 01cb5fa846..2a17e6c259 100644
--- a/sysdeps/x86_64/strlen.S
+++ b/sysdeps/x86_64/strlen.S
@@ -1,5 +1,5 @@
/* SSE2 version of strlen/wcslen.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
@@ -59,21 +59,21 @@ ENTRY(strlen)
#ifdef AS_STRNLEN
/* Do not read anything when n==0. */
- test %rsi, %rsi
+ test %RSI_LP, %RSI_LP
jne L(n_nonzero)
xor %rax, %rax
ret
L(n_nonzero):
# ifdef AS_WCSLEN
- shlq $2, %rsi
+ shl $2, %RSI_LP
# endif
/* Initialize long lived registers. */
- add %rdi, %rsi
- mov %rsi, %r10
- and $-64, %r10
- mov %rsi, %r11
+ add %RDI_LP, %RSI_LP
+ mov %RSI_LP, %R10_LP
+ and $-64, %R10_LP
+ mov %RSI_LP, %R11_LP
#endif
pxor %xmm0, %xmm0
diff --git a/sysdeps/x86_64/strrchr.S b/sysdeps/x86_64/strrchr.S
index aca98e7eaa..48c57e7488 100644
--- a/sysdeps/x86_64/strrchr.S
+++ b/sysdeps/x86_64/strrchr.S
@@ -1,5 +1,5 @@
/* strrchr (str, ch) -- Return pointer to last occurrence of CH in STR.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/x86_64/strspn.S b/sysdeps/x86_64/strspn.S
index 635f1bc6ce..2cf63e0a69 100644
--- a/sysdeps/x86_64/strspn.S
+++ b/sysdeps/x86_64/strspn.S
@@ -1,7 +1,7 @@
/* strspn (str, ss) -- Return the length of the initial segment of STR
which contains only characters from SS.
For AMD x86-64.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>.
Bug fixes by Alan Modra <Alan@SPRI.Levels.UniSA.Edu.Au>.
@@ -19,7 +19,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/x86_64/sub_n.S b/sysdeps/x86_64/sub_n.S
index e70d48ba47..a6422d9084 100644
--- a/sysdeps/x86_64/sub_n.S
+++ b/sysdeps/x86_64/sub_n.S
@@ -1,6 +1,6 @@
/* x86-64 __mpn_sub_n -- Add two limb vectors of the same length > 0 and store
sum in a third limb vector.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
The GNU MP Library is free software; you can redistribute it and/or modify
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not,
- see <http://www.gnu.org/licenses/>. */
+ see <https://www.gnu.org/licenses/>. */
#define func __mpn_sub_n
#define ADCSBB sbb
diff --git a/sysdeps/x86_64/submul_1.S b/sysdeps/x86_64/submul_1.S
index ba1bf92bc5..a19eb2e717 100644
--- a/sysdeps/x86_64/submul_1.S
+++ b/sysdeps/x86_64/submul_1.S
@@ -1,6 +1,6 @@
/* x86-64 __mpn_submul_1 -- Multiply a limb vector with a limb and subtract
the result from a second limb vector.
- Copyright (C) 2003-2018 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
The GNU MP Library is free software; you can redistribute it and/or modify
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not,
- see <http://www.gnu.org/licenses/>. */
+ see <https://www.gnu.org/licenses/>. */
#define func __mpn_submul_1
#define ADDSUB sub
diff --git a/sysdeps/x86_64/sysdep.h b/sysdeps/x86_64/sysdep.h
index 1738d7f955..e8c7af257c 100644
--- a/sysdeps/x86_64/sysdep.h
+++ b/sysdeps/x86_64/sysdep.h
@@ -1,5 +1,5 @@
/* Assembler macros for x86-64.
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _X86_64_SYSDEP_H
#define _X86_64_SYSDEP_H 1
diff --git a/sysdeps/x86_64/tls_get_addr.S b/sysdeps/x86_64/tls_get_addr.S
index cf8c6d101b..3e0b9bfa52 100644
--- a/sysdeps/x86_64/tls_get_addr.S
+++ b/sysdeps/x86_64/tls_get_addr.S
@@ -1,5 +1,5 @@
/* Stack-aligning implementation of __tls_get_addr. x86-64 version.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifdef SHARED
diff --git a/sysdeps/x86_64/tlsdesc.c b/sysdeps/x86_64/tlsdesc.c
index 302d097dbb..2ab228b2d4 100644
--- a/sysdeps/x86_64/tlsdesc.c
+++ b/sysdeps/x86_64/tlsdesc.c
@@ -1,5 +1,5 @@
/* Manage TLS descriptors. x86_64 version.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <link.h>
#include <ldsodefs.h>
diff --git a/sysdeps/x86_64/tst-audit.h b/sysdeps/x86_64/tst-audit.h
index 623ef8920c..8b7ca4caa9 100644
--- a/sysdeps/x86_64/tst-audit.h
+++ b/sysdeps/x86_64/tst-audit.h
@@ -1,6 +1,6 @@
/* Definitions for testing PLT entry/exit auditing. x86_64 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef __ILP32__
# define pltenter la_x86_64_gnu_pltenter
diff --git a/sysdeps/x86_64/tst-audit10-aux.c b/sysdeps/x86_64/tst-audit10-aux.c
index e1b2d92f75..ff570237c1 100644
--- a/sysdeps/x86_64/tst-audit10-aux.c
+++ b/sysdeps/x86_64/tst-audit10-aux.c
@@ -1,5 +1,5 @@
/* Test case for preserved AVX512 registers in dynamic linker, -mavx512f part.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <immintrin.h>
#include <stdlib.h>
diff --git a/sysdeps/x86_64/tst-audit10.c b/sysdeps/x86_64/tst-audit10.c
index 568011cb96..33fedd0f91 100644
--- a/sysdeps/x86_64/tst-audit10.c
+++ b/sysdeps/x86_64/tst-audit10.c
@@ -1,5 +1,5 @@
/* Test case for preserved AVX512 registers in dynamic linker.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <cpuid.h>
diff --git a/sysdeps/x86_64/tst-audit4-aux.c b/sysdeps/x86_64/tst-audit4-aux.c
index 2770be5b5e..79cbab337e 100644
--- a/sysdeps/x86_64/tst-audit4-aux.c
+++ b/sysdeps/x86_64/tst-audit4-aux.c
@@ -1,5 +1,5 @@
/* Test case for preserved AVX registers in dynamic linker, -mavx part.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <immintrin.h>
#include <stdlib.h>
diff --git a/sysdeps/x86_64/tst-audit4.c b/sysdeps/x86_64/tst-audit4.c
index d7ca24ac2d..8f8d26b2ea 100644
--- a/sysdeps/x86_64/tst-audit4.c
+++ b/sysdeps/x86_64/tst-audit4.c
@@ -1,5 +1,5 @@
/* Test case for preserved AVX registers in dynamic linker.
- Copyright (C) 2009-2018 Free Software Foundation, Inc.
+ Copyright (C) 2009-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <cpuid.h>
diff --git a/sysdeps/x86_64/tst-auditmod10a.c b/sysdeps/x86_64/tst-auditmod10a.c
index ff6021a79a..b6a83bd6e2 100644
--- a/sysdeps/x86_64/tst-auditmod10a.c
+++ b/sysdeps/x86_64/tst-auditmod10a.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Test case for x86-64 preserved registers in dynamic linker. */
diff --git a/sysdeps/x86_64/tst-auditmod10b.c b/sysdeps/x86_64/tst-auditmod10b.c
index de1bbbb7fb..5b687c6f47 100644
--- a/sysdeps/x86_64/tst-auditmod10b.c
+++ b/sysdeps/x86_64/tst-auditmod10b.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Verify that changing AVX512 registers in audit library won't affect
function parameter passing/return. */
diff --git a/sysdeps/x86_64/tst-avx-aux.c b/sysdeps/x86_64/tst-avx-aux.c
index e6ae368fd8..a51b528aeb 100644
--- a/sysdeps/x86_64/tst-avx-aux.c
+++ b/sysdeps/x86_64/tst-avx-aux.c
@@ -1,5 +1,5 @@
/* Test case for preserved AVX registers in dynamic linker, -mavx part.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <immintrin.h>
#include <stdlib.h>
diff --git a/sysdeps/x86_64/tst-avx.c b/sysdeps/x86_64/tst-avx.c
index 9c52fc264a..09347ac29a 100644
--- a/sysdeps/x86_64/tst-avx.c
+++ b/sysdeps/x86_64/tst-avx.c
@@ -1,5 +1,5 @@
/* Test case for preserved AVX registers in dynamic linker.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <cpuid.h>
diff --git a/sysdeps/x86_64/tst-avx512-aux.c b/sysdeps/x86_64/tst-avx512-aux.c
index 87c4124398..14de276a27 100644
--- a/sysdeps/x86_64/tst-avx512-aux.c
+++ b/sysdeps/x86_64/tst-avx512-aux.c
@@ -1,6 +1,6 @@
/* Test case for preserved AVX512 registers in dynamic linker,
-mavx512 part.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <immintrin.h>
#include <stdlib.h>
diff --git a/sysdeps/x86_64/tst-avx512.c b/sysdeps/x86_64/tst-avx512.c
index 63d8bc9c27..97263b2933 100644
--- a/sysdeps/x86_64/tst-avx512.c
+++ b/sysdeps/x86_64/tst-avx512.c
@@ -1,5 +1,5 @@
/* Test case for preserved AVX512 registers in dynamic linker.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <cpuid.h>
diff --git a/sysdeps/x86_64/tst-mallocalign1.c b/sysdeps/x86_64/tst-mallocalign1.c
index 0f2e725e3b..bdf16be862 100644
--- a/sysdeps/x86_64/tst-mallocalign1.c
+++ b/sysdeps/x86_64/tst-mallocalign1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
diff --git a/sysdeps/x86_64/tst-platform-1.c b/sysdeps/x86_64/tst-platform-1.c
index 91dbbb93db..96981d6c80 100644
--- a/sysdeps/x86_64/tst-platform-1.c
+++ b/sysdeps/x86_64/tst-platform-1.c
@@ -1,5 +1,5 @@
/* Test PRELOAD with $PLATFORM.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
diff --git a/sysdeps/x86_64/tst-platformmod-1.c b/sysdeps/x86_64/tst-platformmod-1.c
index be0e786e76..218ae5bd19 100644
--- a/sysdeps/x86_64/tst-platformmod-1.c
+++ b/sysdeps/x86_64/tst-platformmod-1.c
@@ -1,5 +1,5 @@
/* Test PRELOAD with $PLATFORM.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
int
preload (void)
diff --git a/sysdeps/x86_64/tst-platformmod-2.c b/sysdeps/x86_64/tst-platformmod-2.c
index 413d0bd94b..c00ac53ead 100644
--- a/sysdeps/x86_64/tst-platformmod-2.c
+++ b/sysdeps/x86_64/tst-platformmod-2.c
@@ -1,5 +1,5 @@
/* Test PRELOAD with $PLATFORM.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
int
preload (void)
diff --git a/sysdeps/x86_64/tst-quad1.c b/sysdeps/x86_64/tst-quad1.c
index 089b25d2df..c92b9a9a22 100644
--- a/sysdeps/x86_64/tst-quad1.c
+++ b/sysdeps/x86_64/tst-quad1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
extern void foo (void);
diff --git a/sysdeps/x86_64/tst-quadmod1.S b/sysdeps/x86_64/tst-quadmod1.S
index c60f9dc89d..e8c21b8811 100644
--- a/sysdeps/x86_64/tst-quadmod1.S
+++ b/sysdeps/x86_64/tst-quadmod1.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef BIAS
# define BIAS 0x7fffffff
diff --git a/sysdeps/x86_64/tst-quadmod2.S b/sysdeps/x86_64/tst-quadmod2.S
index af03444d4f..3e8dc5cd42 100644
--- a/sysdeps/x86_64/tst-quadmod2.S
+++ b/sysdeps/x86_64/tst-quadmod2.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef BIAS
# define BIAS 0x7fff0000
diff --git a/sysdeps/x86_64/tst-sse.c b/sysdeps/x86_64/tst-sse.c
index d219889d1f..517f8bf678 100644
--- a/sysdeps/x86_64/tst-sse.c
+++ b/sysdeps/x86_64/tst-sse.c
@@ -1,5 +1,5 @@
/* Test case for preserved SSE registers in dynamic linker.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <immintrin.h>
#include <stdlib.h>
diff --git a/sysdeps/x86_64/tst-stack-align.h b/sysdeps/x86_64/tst-stack-align.h
index b2ef77f65d..e11e19ede6 100644
--- a/sysdeps/x86_64/tst-stack-align.h
+++ b/sysdeps/x86_64/tst-stack-align.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdint.h>
diff --git a/sysdeps/x86_64/tst-x86_64-1.c b/sysdeps/x86_64/tst-x86_64-1.c
index 801c866bdd..ff8bca5d96 100644
--- a/sysdeps/x86_64/tst-x86_64-1.c
+++ b/sysdeps/x86_64/tst-x86_64-1.c
@@ -1,5 +1,5 @@
/* Test searching the "x86_64" directory for shared libraries.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
extern void foo (void);
diff --git a/sysdeps/x86_64/tst-x86_64mod-1.c b/sysdeps/x86_64/tst-x86_64mod-1.c
index 57e955d5d9..dc4e6c0daf 100644
--- a/sysdeps/x86_64/tst-x86_64mod-1.c
+++ b/sysdeps/x86_64/tst-x86_64mod-1.c
@@ -1,5 +1,5 @@
/* Test searching the "x86_64" directory for shared libraries.
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
void
foo (void)
diff --git a/sysdeps/x86_64/wcschr.S b/sysdeps/x86_64/wcschr.S
index 29284662a1..1b0a36a36a 100644
--- a/sysdeps/x86_64/wcschr.S
+++ b/sysdeps/x86_64/wcschr.S
@@ -1,5 +1,5 @@
/* wcschr with SSSE3
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/x86_64/wcscmp.S b/sysdeps/x86_64/wcscmp.S
index 0d506c8b5c..fb80796aab 100644
--- a/sysdeps/x86_64/wcscmp.S
+++ b/sysdeps/x86_64/wcscmp.S
@@ -1,5 +1,5 @@
/* Optimized wcscmp for x86-64 with SSE2.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/x86_64/wcslen.S b/sysdeps/x86_64/wcslen.S
index 9f5f723227..172c00e7c5 100644
--- a/sysdeps/x86_64/wcslen.S
+++ b/sysdeps/x86_64/wcslen.S
@@ -1,5 +1,5 @@
/* Optimized wcslen for x86-64 with SSE2.
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/x86_64/wcsrchr.S b/sysdeps/x86_64/wcsrchr.S
index 2f38853727..30189354e4 100644
--- a/sysdeps/x86_64/wcsrchr.S
+++ b/sysdeps/x86_64/wcsrchr.S
@@ -1,5 +1,5 @@
/* wcsrchr with SSSE3
- Copyright (C) 2011-2018 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
diff --git a/sysdeps/x86_64/wmemset_chk.S b/sysdeps/x86_64/wmemset_chk.S
index 9275ebb40d..49ca0a4c60 100644
--- a/sysdeps/x86_64/wmemset_chk.S
+++ b/sysdeps/x86_64/wmemset_chk.S
@@ -1,5 +1,5 @@
/* Checking wmemset for x86-64.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include "asm-syntax.h"
diff --git a/sysdeps/x86_64/x32/Makefile b/sysdeps/x86_64/x32/Makefile
index f2ebc24fb0..8748956563 100644
--- a/sysdeps/x86_64/x32/Makefile
+++ b/sysdeps/x86_64/x32/Makefile
@@ -4,3 +4,15 @@ ifeq ($(subdir),math)
# 64-bit llround. Add -fno-builtin-lround to silence the compiler.
CFLAGS-s_llround.c += -fno-builtin-lround
endif
+
+ifeq ($(subdir),string)
+tests += tst-size_t-memchr tst-size_t-memcmp tst-size_t-memcpy \
+ tst-size_t-memrchr tst-size_t-memset tst-size_t-strncasecmp \
+ tst-size_t-strncmp tst-size_t-strncpy tst-size_t-strnlen \
+ tst-size_t-memcmp-2
+endif
+
+ifeq ($(subdir),wcsmbs)
+tests += tst-size_t-wmemchr tst-size_t-wmemcmp tst-size_t-wmemset \
+ tst-size_t-wcsncmp tst-size_t-wcsnlen
+endif
diff --git a/sysdeps/x86_64/x32/dl-machine.h b/sysdeps/x86_64/x32/dl-machine.h
index 2a612913ff..a7060a6e58 100644
--- a/sysdeps/x86_64/x32/dl-machine.h
+++ b/sysdeps/x86_64/x32/dl-machine.h
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation inline functions. x32 version.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Must allow <sysdeps/x86_64/dl-machine.h> to be included more than once.
See #ifdef RESOLVE_MAP in sysdeps/x86_64/dl-machine.h. */
diff --git a/sysdeps/x86_64/x32/fpu/s_lrint.S b/sysdeps/x86_64/x32/fpu/s_lrint.S
index 381684583e..06a92f5d06 100644
--- a/sysdeps/x86_64/x32/fpu/s_lrint.S
+++ b/sysdeps/x86_64/x32/fpu/s_lrint.S
@@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <libm-alias-double.h>
diff --git a/sysdeps/x86_64/x32/fpu/s_lrintf.S b/sysdeps/x86_64/x32/fpu/s_lrintf.S
index 361d34a989..29017ad6dd 100644
--- a/sysdeps/x86_64/x32/fpu/s_lrintf.S
+++ b/sysdeps/x86_64/x32/fpu/s_lrintf.S
@@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <libm-alias-float.h>
diff --git a/sysdeps/x86_64/x32/fpu/s_lrintl.S b/sysdeps/x86_64/x32/fpu/s_lrintl.S
index b68313e916..ef074a3e40 100644
--- a/sysdeps/x86_64/x32/fpu/s_lrintl.S
+++ b/sysdeps/x86_64/x32/fpu/s_lrintl.S
@@ -1,6 +1,6 @@
/* Round argument to nearest integral value according to current rounding
direction.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdep.h>
#include <libm-alias-ldouble.h>
diff --git a/sysdeps/x86_64/x32/gmp-mparam.h b/sysdeps/x86_64/x32/gmp-mparam.h
index 331c26d587..1e078dcb17 100644
--- a/sysdeps/x86_64/x32/gmp-mparam.h
+++ b/sysdeps/x86_64/x32/gmp-mparam.h
@@ -1,6 +1,6 @@
/* gmp-mparam.h -- Compiler/machine parameter header file.
-Copyright (C) 2012-2018 Free Software Foundation, Inc.
+Copyright (C) 2012-2019 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -16,7 +16,7 @@ License for more details.
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB. If not, see
-<http://www.gnu.org/licenses/>. */
+<https://www.gnu.org/licenses/>. */
#if defined __GMP_H__ && ! defined _LONG_LONG_LIMB
#error "Included too late for _LONG_LONG_LIMB to take effect"
diff --git a/sysdeps/x86_64/x32/sysdep.h b/sysdeps/x86_64/x32/sysdep.h
index b40a438771..ad575f6850 100644
--- a/sysdeps/x86_64/x32/sysdep.h
+++ b/sysdeps/x86_64/x32/sysdep.h
@@ -1,5 +1,5 @@
/* Assembler macros for x32.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sysdeps/x86_64/sysdep.h>
diff --git a/sysdeps/x86_64/x32/test-size_t.h b/sysdeps/x86_64/x32/test-size_t.h
new file mode 100644
index 0000000000..d9bbf67e65
--- /dev/null
+++ b/sysdeps/x86_64/x32/test-size_t.h
@@ -0,0 +1,35 @@
+/* Test string/memory functions with size_t in the lower 32 bits of
+ 64-bit register.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#define TEST_MAIN
+#include <string/test-string.h>
+
+/* On x32, parameter_t may be passed in a 64-bit register with the LEN
+ field in the lower 32 bits. When the LEN field of 64-bit register
+ is passed to string/memory function as the size_t parameter, only
+ the lower 32 bits can be used. */
+typedef struct
+{
+ union
+ {
+ size_t len;
+ void (*fn) (void);
+ };
+ void *p;
+} parameter_t;
diff --git a/sysdeps/x86_64/x32/tst-size_t-memchr.c b/sysdeps/x86_64/x32/tst-size_t-memchr.c
new file mode 100644
index 0000000000..2df15c3ae5
--- /dev/null
+++ b/sysdeps/x86_64/x32/tst-size_t-memchr.c
@@ -0,0 +1,72 @@
+/* Test memchr with size_t in the lower 32 bits of 64-bit register.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef WIDE
+# define TEST_NAME "memchr"
+#else
+# define TEST_NAME "wmemchr"
+#endif /* WIDE */
+#include "test-size_t.h"
+
+#ifndef WIDE
+# define MEMCHR memchr
+# define CHAR char
+# define UCHAR unsigned char
+#else
+# include <wchar.h>
+# define MEMCHR wmemchr
+# define CHAR wchar_t
+# define UCHAR wchar_t
+#endif /* WIDE */
+
+IMPL (MEMCHR, 1)
+
+typedef CHAR * (*proto_t) (const CHAR*, int, size_t);
+
+static CHAR *
+__attribute__ ((noinline, noclone))
+do_memchr (parameter_t a, parameter_t b)
+{
+ return CALL (&b, a.p, (uintptr_t) b.p, a.len);
+}
+
+static int
+test_main (void)
+{
+ test_init ();
+
+ parameter_t src = { { page_size / sizeof (CHAR) }, buf2 };
+ parameter_t c = { { 0 }, (void *) (uintptr_t) 0x12 };
+
+ int ret = 0;
+ FOR_EACH_IMPL (impl, 0)
+ {
+ c.fn = impl->fn;
+ CHAR *res = do_memchr (src, c);
+ if (res)
+ {
+ error (0, 0, "Wrong result in function %s: %p != NULL",
+ impl->name, res);
+ ret = 1;
+ }
+ }
+
+ return ret ? EXIT_FAILURE : EXIT_SUCCESS;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/x86_64/x32/tst-size_t-memcmp-2.c b/sysdeps/x86_64/x32/tst-size_t-memcmp-2.c
new file mode 100644
index 0000000000..d4e831a480
--- /dev/null
+++ b/sysdeps/x86_64/x32/tst-size_t-memcmp-2.c
@@ -0,0 +1,79 @@
+/* Test memcmp with size_t in the lower 32 bits of 64-bit register.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#define TEST_MAIN
+#ifdef WIDE
+# define TEST_NAME "wmemcmp"
+#else
+# define TEST_NAME "memcmp"
+#endif
+
+#include "test-size_t.h"
+
+#ifdef WIDE
+# include <inttypes.h>
+# include <wchar.h>
+
+# define MEMCMP wmemcmp
+# define CHAR wchar_t
+#else
+# define MEMCMP memcmp
+# define CHAR char
+#endif
+
+IMPL (MEMCMP, 1)
+
+typedef int (*proto_t) (const CHAR *, const CHAR *, size_t);
+
+static int
+__attribute__ ((noinline, noclone))
+do_memcmp (parameter_t a, parameter_t b)
+{
+ return CALL (&b, a.p, b.p, a.len);
+}
+
+static int
+test_main (void)
+{
+ test_init ();
+
+ parameter_t dest = { { page_size / sizeof (CHAR) }, buf1 };
+ parameter_t src = { { 0 }, buf2 };
+
+ memcpy (buf1, buf2, page_size);
+
+ CHAR *p = (CHAR *) buf1;
+ p[page_size / sizeof (CHAR) - 1] = (CHAR) 1;
+
+ int ret = 0;
+ FOR_EACH_IMPL (impl, 0)
+ {
+ src.fn = impl->fn;
+ int res = do_memcmp (dest, src);
+ if (res >= 0)
+ {
+ error (0, 0, "Wrong result in function %s: %i >= 0",
+ impl->name, res);
+ ret = 1;
+ }
+ }
+
+ return ret ? EXIT_FAILURE : EXIT_SUCCESS;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/x86_64/x32/tst-size_t-memcmp.c b/sysdeps/x86_64/x32/tst-size_t-memcmp.c
new file mode 100644
index 0000000000..162695739a
--- /dev/null
+++ b/sysdeps/x86_64/x32/tst-size_t-memcmp.c
@@ -0,0 +1,76 @@
+/* Test memcmp with size_t in the lower 32 bits of 64-bit register.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#define TEST_MAIN
+#ifdef WIDE
+# define TEST_NAME "wmemcmp"
+#else
+# define TEST_NAME "memcmp"
+#endif
+
+#include "test-size_t.h"
+
+#ifdef WIDE
+# include <inttypes.h>
+# include <wchar.h>
+
+# define MEMCMP wmemcmp
+# define CHAR wchar_t
+#else
+# define MEMCMP memcmp
+# define CHAR char
+#endif
+
+IMPL (MEMCMP, 1)
+
+typedef int (*proto_t) (const CHAR *, const CHAR *, size_t);
+
+static int
+__attribute__ ((noinline, noclone))
+do_memcmp (parameter_t a, parameter_t b)
+{
+ return CALL (&b, a.p, b.p, a.len);
+}
+
+static int
+test_main (void)
+{
+ test_init ();
+
+ parameter_t dest = { { page_size / sizeof (CHAR) }, buf1 };
+ parameter_t src = { { 0 }, buf2 };
+
+ memcpy (buf1, buf2, page_size);
+
+ int ret = 0;
+ FOR_EACH_IMPL (impl, 0)
+ {
+ src.fn = impl->fn;
+ int res = do_memcmp (dest, src);
+ if (res)
+ {
+ error (0, 0, "Wrong result in function %s: %i != 0",
+ impl->name, res);
+ ret = 1;
+ }
+ }
+
+ return ret ? EXIT_FAILURE : EXIT_SUCCESS;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/x86_64/x32/tst-size_t-memcpy.c b/sysdeps/x86_64/x32/tst-size_t-memcpy.c
new file mode 100644
index 0000000000..4a3cbca3d1
--- /dev/null
+++ b/sysdeps/x86_64/x32/tst-size_t-memcpy.c
@@ -0,0 +1,58 @@
+/* Test memcpy with size_t in the lower 32 bits of 64-bit register.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#define TEST_NAME "memcpy"
+#include "test-size_t.h"
+
+IMPL (memcpy, 1)
+
+typedef void *(*proto_t) (void *, const void *, size_t);
+
+static void *
+__attribute__ ((noinline, noclone))
+do_memcpy (parameter_t a, parameter_t b)
+{
+ return CALL (&b, a.p, b.p, a.len);
+}
+
+static int
+test_main (void)
+{
+ test_init ();
+
+ parameter_t dest = { { page_size }, buf1 };
+ parameter_t src = { { 0 }, buf2 };
+
+ int ret = 0;
+ FOR_EACH_IMPL (impl, 0)
+ {
+ src.fn = impl->fn;
+ do_memcpy (dest, src);
+ int res = memcmp (dest.p, src.p, dest.len);
+ if (res)
+ {
+ error (0, 0, "Wrong result in function %s: %i != 0",
+ impl->name, res);
+ ret = 1;
+ }
+ }
+
+ return ret ? EXIT_FAILURE : EXIT_SUCCESS;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/x86_64/x32/tst-size_t-memrchr.c b/sysdeps/x86_64/x32/tst-size_t-memrchr.c
new file mode 100644
index 0000000000..6a86a63f27
--- /dev/null
+++ b/sysdeps/x86_64/x32/tst-size_t-memrchr.c
@@ -0,0 +1,57 @@
+/* Test memrchr with size_t in the lower 32 bits of 64-bit register.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#define TEST_NAME "memrchr"
+#include "test-size_t.h"
+
+IMPL (memchr, 1)
+
+typedef void * (*proto_t) (const void *, int, size_t);
+
+static void *
+__attribute__ ((noinline, noclone))
+do_memrchr (parameter_t a, parameter_t b)
+{
+ return CALL (&b, a.p, (uintptr_t) b.p, a.len);
+}
+
+static int
+test_main (void)
+{
+ test_init ();
+
+ parameter_t src = { { page_size }, buf2 };
+ parameter_t c = { { 0 }, (void *) (uintptr_t) 0x12 };
+
+ int ret = 0;
+ FOR_EACH_IMPL (impl, 0)
+ {
+ c.fn = impl->fn;
+ void * res = do_memrchr (src, c);
+ if (res)
+ {
+ error (0, 0, "Wrong result in function %s: %p != NULL",
+ impl->name, res);
+ ret = 1;
+ }
+ }
+
+ return ret ? EXIT_FAILURE : EXIT_SUCCESS;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/x86_64/x32/tst-size_t-memset.c b/sysdeps/x86_64/x32/tst-size_t-memset.c
new file mode 100644
index 0000000000..e5e499fb98
--- /dev/null
+++ b/sysdeps/x86_64/x32/tst-size_t-memset.c
@@ -0,0 +1,73 @@
+/* Test memset with size_t in the lower 32 bits of 64-bit register.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifdef WIDE
+# define TEST_NAME "wmemset"
+#else
+# define TEST_NAME "memset"
+#endif /* WIDE */
+
+#include "test-size_t.h"
+
+#ifdef WIDE
+# include <wchar.h>
+# define MEMSET wmemset
+# define CHAR wchar_t
+#else
+# define MEMSET memset
+# define CHAR char
+#endif /* WIDE */
+
+IMPL (MEMSET, 1)
+
+typedef CHAR *(*proto_t) (CHAR *, int, size_t);
+
+static void *
+__attribute__ ((noinline, noclone))
+do_memset (parameter_t a, parameter_t b)
+{
+ return CALL (&b, a.p, (uintptr_t) b.p, a.len);
+}
+
+static int
+test_main (void)
+{
+ test_init ();
+
+ CHAR ch = 0x23;
+ parameter_t src = { { page_size / sizeof (CHAR) }, buf2 };
+ parameter_t c = { { 0 }, (void *) (uintptr_t) ch };
+
+ int ret = 0;
+ FOR_EACH_IMPL (impl, 0)
+ {
+ c.fn = impl->fn;
+ CHAR *p = (CHAR *) do_memset (src, c);
+ size_t i;
+ for (i = 0; i < src.len; i++)
+ if (p[i] != ch)
+ {
+ error (0, 0, "Wrong result in function %s", impl->name);
+ ret = 1;
+ }
+ }
+
+ return ret ? EXIT_FAILURE : EXIT_SUCCESS;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/x86_64/x32/tst-size_t-strncasecmp.c b/sysdeps/x86_64/x32/tst-size_t-strncasecmp.c
new file mode 100644
index 0000000000..2f21c739ea
--- /dev/null
+++ b/sysdeps/x86_64/x32/tst-size_t-strncasecmp.c
@@ -0,0 +1,59 @@
+/* Test strncaecmp with size_t in the lower 32 bits of 64-bit register.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#define TEST_NAME "strncasecmp"
+#include "test-size_t.h"
+
+IMPL (strncasecmp, 1)
+
+typedef int (*proto_t) (const char *, const char *, size_t);
+
+static int
+__attribute__ ((noinline, noclone))
+do_strncasecmp (parameter_t a, parameter_t b)
+{
+ return CALL (&b, a.p, b.p, a.len);
+}
+
+static int
+test_main (void)
+{
+ test_init ();
+
+ parameter_t dest = { { page_size }, buf1 };
+ parameter_t src = { { 0 }, buf2 };
+
+ strncpy ((char *) buf1, (const char *) buf2, page_size);
+
+ int ret = 0;
+ FOR_EACH_IMPL (impl, 0)
+ {
+ src.fn = impl->fn;
+ int res = do_strncasecmp (dest, src);
+ if (res)
+ {
+ error (0, 0, "Wrong result in function %s: %i != 0",
+ impl->name, res);
+ ret = 1;
+ }
+ }
+
+ return ret ? EXIT_FAILURE : EXIT_SUCCESS;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/x86_64/x32/tst-size_t-strncmp.c b/sysdeps/x86_64/x32/tst-size_t-strncmp.c
new file mode 100644
index 0000000000..506d4df665
--- /dev/null
+++ b/sysdeps/x86_64/x32/tst-size_t-strncmp.c
@@ -0,0 +1,78 @@
+/* Test strncmp with size_t in the lower 32 bits of 64-bit register.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifdef WIDE
+# define TEST_NAME "wcsncmp"
+#else
+# define TEST_NAME "strncmp"
+#endif
+
+#include "test-size_t.h"
+
+#ifdef WIDE
+# include <wchar.h>
+
+# define STRNCMP wcsncmp
+# define STRNCPY wcsncpy
+# define CHAR wchar_t
+#else
+# define STRNCMP strncmp
+# define STRNCPY strncpy
+# define CHAR char
+#endif
+
+IMPL (STRNCMP, 1)
+
+typedef int (*proto_t) (const CHAR *, const CHAR *, size_t);
+
+
+static int
+__attribute__ ((noinline, noclone))
+do_strncmp (parameter_t a, parameter_t b)
+{
+ return CALL (&b, a.p, b.p, a.len);
+}
+
+static int
+test_main (void)
+{
+ test_init ();
+
+ size_t size = page_size / sizeof (CHAR);
+ parameter_t dest = { { size }, buf1 };
+ parameter_t src = { { 0 }, buf2 };
+
+ STRNCPY ((CHAR *) buf1, (const CHAR *) buf2, size);
+
+ int ret = 0;
+ FOR_EACH_IMPL (impl, 0)
+ {
+ src.fn = impl->fn;
+ int res = do_strncmp (dest, src);
+ if (res)
+ {
+ error (0, 0, "Wrong result in function %s: %i != 0",
+ impl->name, res);
+ ret = 1;
+ }
+ }
+
+ return ret ? EXIT_FAILURE : EXIT_SUCCESS;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/x86_64/x32/tst-size_t-strncpy.c b/sysdeps/x86_64/x32/tst-size_t-strncpy.c
new file mode 100644
index 0000000000..2b629865fb
--- /dev/null
+++ b/sysdeps/x86_64/x32/tst-size_t-strncpy.c
@@ -0,0 +1,58 @@
+/* Test strncpy with size_t in the lower 32 bits of 64-bit register.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#define TEST_NAME "strncpy"
+#include "test-size_t.h"
+
+IMPL (strncpy, 1)
+
+typedef char *(*proto_t) (char *, const char*, size_t);
+
+static void *
+__attribute__ ((noinline, noclone))
+do_strncpy (parameter_t a, parameter_t b)
+{
+ return CALL (&b, a.p, b.p, a.len);
+}
+
+static int
+test_main (void)
+{
+ test_init ();
+
+ parameter_t dest = { { page_size }, buf1 };
+ parameter_t src = { { 0 }, buf2 };
+
+ int ret = 0;
+ FOR_EACH_IMPL (impl, 0)
+ {
+ src.fn = impl->fn;
+ do_strncpy (dest, src);
+ int res = strncmp (dest.p, src.p, dest.len);
+ if (res)
+ {
+ error (0, 0, "Wrong result in function %s: %i != 0",
+ impl->name, res);
+ ret = 1;
+ }
+ }
+
+ return ret ? EXIT_FAILURE : EXIT_SUCCESS;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/x86_64/x32/tst-size_t-strnlen.c b/sysdeps/x86_64/x32/tst-size_t-strnlen.c
new file mode 100644
index 0000000000..cf845bea71
--- /dev/null
+++ b/sysdeps/x86_64/x32/tst-size_t-strnlen.c
@@ -0,0 +1,72 @@
+/* Test strnlen with size_t in the lower 32 bits of 64-bit register.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifdef WIDE
+# define TEST_NAME "wcsnlen"
+#else
+# define TEST_NAME "strnlen"
+#endif /* WIDE */
+
+#include "test-size_t.h"
+
+#ifdef WIDE
+# include <wchar.h>
+# define STRNLEN wcsnlen
+# define CHAR wchar_t
+#else
+# define STRNLEN strnlen
+# define CHAR char
+#endif /* WIDE */
+
+IMPL (STRNLEN, 1)
+
+typedef size_t (*proto_t) (const CHAR *, size_t);
+
+static size_t
+__attribute__ ((noinline, noclone))
+do_strnlen (parameter_t a, parameter_t b)
+{
+ return CALL (&a, a.p, b.len);
+}
+
+static int
+test_main (void)
+{
+ test_init ();
+
+ size_t size = page_size / sizeof (CHAR);
+ parameter_t src = { { 0 }, buf2 };
+ parameter_t c = { { size }, (void *) (uintptr_t) 'a' };
+
+ int ret = 0;
+ FOR_EACH_IMPL (impl, 0)
+ {
+ src.fn = impl->fn;
+ size_t res = do_strnlen (src, c);
+ if (res != size)
+ {
+ error (0, 0, "Wrong result in function %s: 0x%x != 0x%x",
+ impl->name, res, size);
+ ret = 1;
+ }
+ }
+
+ return ret ? EXIT_FAILURE : EXIT_SUCCESS;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/x86_64/x32/tst-size_t-wcsncmp.c b/sysdeps/x86_64/x32/tst-size_t-wcsncmp.c
new file mode 100644
index 0000000000..ae94a734b3
--- /dev/null
+++ b/sysdeps/x86_64/x32/tst-size_t-wcsncmp.c
@@ -0,0 +1,20 @@
+/* Test wcsncmp with size_t in the lower 32 bits of 64-bit register.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#define WIDE 1
+#include "tst-size_t-strncmp.c"
diff --git a/sysdeps/x86_64/x32/tst-size_t-wcsnlen.c b/sysdeps/x86_64/x32/tst-size_t-wcsnlen.c
new file mode 100644
index 0000000000..00ef9bd5f8
--- /dev/null
+++ b/sysdeps/x86_64/x32/tst-size_t-wcsnlen.c
@@ -0,0 +1,20 @@
+/* Test wcsnlen with size_t in the lower 32 bits of 64-bit register.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#define WIDE 1
+#include "tst-size_t-strnlen.c"
diff --git a/sysdeps/x86_64/x32/tst-size_t-wmemchr.c b/sysdeps/x86_64/x32/tst-size_t-wmemchr.c
new file mode 100644
index 0000000000..94338b7ccf
--- /dev/null
+++ b/sysdeps/x86_64/x32/tst-size_t-wmemchr.c
@@ -0,0 +1,20 @@
+/* Test wmemchr with size_t in the lower 32 bits of 64-bit register.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#define WIDE 1
+#include "tst-size_t-memchr.c"
diff --git a/sysdeps/x86_64/x32/tst-size_t-wmemcmp.c b/sysdeps/x86_64/x32/tst-size_t-wmemcmp.c
new file mode 100644
index 0000000000..fa37b5fafc
--- /dev/null
+++ b/sysdeps/x86_64/x32/tst-size_t-wmemcmp.c
@@ -0,0 +1,20 @@
+/* Test wmemcmp with size_t in the lower 32 bits of 64-bit register.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#define WIDE 1
+#include "tst-size_t-memcmp.c"
diff --git a/sysdeps/x86_64/x32/tst-size_t-wmemset.c b/sysdeps/x86_64/x32/tst-size_t-wmemset.c
new file mode 100644
index 0000000000..9c2e8668e4
--- /dev/null
+++ b/sysdeps/x86_64/x32/tst-size_t-wmemset.c
@@ -0,0 +1,20 @@
+/* Test wmemset with size_t in the lower 32 bits of 64-bit register.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#define WIDE 1
+#include "tst-size_t-memset.c"
diff --git a/sysvipc/Makefile b/sysvipc/Makefile
index d05bf3e3ec..fa1db22010 100644
--- a/sysvipc/Makefile
+++ b/sysvipc/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1995-2018 Free Software Foundation, Inc.
+# Copyright (C) 1995-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
# Sub-makefile for sysvipc portion of the library.
diff --git a/sysvipc/ftok.c b/sysvipc/ftok.c
index 364f510912..ae9682fd0f 100644
--- a/sysvipc/ftok.c
+++ b/sysvipc/ftok.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/ipc.h>
#include <sys/stat.h>
diff --git a/sysvipc/msgctl.c b/sysvipc/msgctl.c
index 29d112fb33..7d803ea37b 100644
--- a/sysvipc/msgctl.c
+++ b/sysvipc/msgctl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/msg.h>
#include <errno.h>
diff --git a/sysvipc/msgget.c b/sysvipc/msgget.c
index d193f433be..4edd424436 100644
--- a/sysvipc/msgget.c
+++ b/sysvipc/msgget.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/msg.h>
#include <errno.h>
diff --git a/sysvipc/msgrcv.c b/sysvipc/msgrcv.c
index f1ad93a39c..3b727890f4 100644
--- a/sysvipc/msgrcv.c
+++ b/sysvipc/msgrcv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/msg.h>
#include <errno.h>
diff --git a/sysvipc/msgsnd.c b/sysvipc/msgsnd.c
index 7af777221a..43051ace12 100644
--- a/sysvipc/msgsnd.c
+++ b/sysvipc/msgsnd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, August 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/msg.h>
#include <errno.h>
diff --git a/sysvipc/semctl.c b/sysvipc/semctl.c
index 90fb8bf0a2..cee6be58de 100644
--- a/sysvipc/semctl.c
+++ b/sysvipc/semctl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/sem.h>
#include <errno.h>
diff --git a/sysvipc/semget.c b/sysvipc/semget.c
index 6b1c991e59..707798b47a 100644
--- a/sysvipc/semget.c
+++ b/sysvipc/semget.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/sem.h>
#include <errno.h>
diff --git a/sysvipc/semop.c b/sysvipc/semop.c
index 3c6e23de61..580cc14653 100644
--- a/sysvipc/semop.c
+++ b/sysvipc/semop.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, August 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/sem.h>
#include <errno.h>
diff --git a/sysvipc/semtimedop.c b/sysvipc/semtimedop.c
index 4163c78791..a4b750c813 100644
--- a/sysvipc/semtimedop.c
+++ b/sysvipc/semtimedop.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/sem.h>
#include <errno.h>
@@ -22,11 +22,12 @@
/* Perform user-defined atomical operation of array of semaphores. */
int
-semtimedop (int semid, struct sembuf *sops, size_t nsops,
- const struct timespec *timeout)
+__semtimedop (int semid, struct sembuf *sops, size_t nsops,
+ const struct timespec *timeout)
{
__set_errno (ENOSYS);
return -1;
}
+weak_alias (__semtimedop, semtimedop)
stub_warning (semtimedop)
diff --git a/sysvipc/shmat.c b/sysvipc/shmat.c
index c9d9ca784c..54560e9f56 100644
--- a/sysvipc/shmat.c
+++ b/sysvipc/shmat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/shm.h>
#include <errno.h>
diff --git a/sysvipc/shmctl.c b/sysvipc/shmctl.c
index 55381b8405..913d536455 100644
--- a/sysvipc/shmctl.c
+++ b/sysvipc/shmctl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/shm.h>
#include <errno.h>
diff --git a/sysvipc/shmdt.c b/sysvipc/shmdt.c
index e95b2502bd..9f9684d1de 100644
--- a/sysvipc/shmdt.c
+++ b/sysvipc/shmdt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/shm.h>
#include <errno.h>
diff --git a/sysvipc/shmget.c b/sysvipc/shmget.c
index f3e9d68ec1..c4252aa809 100644
--- a/sysvipc/shmget.c
+++ b/sysvipc/shmget.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, August 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/shm.h>
#include <errno.h>
diff --git a/sysvipc/sys/ipc.h b/sysvipc/sys/ipc.h
index b8c6836e37..6400fe3c35 100644
--- a/sysvipc/sys/ipc.h
+++ b/sysvipc/sys/ipc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_IPC_H
#define _SYS_IPC_H 1
diff --git a/sysvipc/sys/msg.h b/sysvipc/sys/msg.h
index 1635839617..aee73bbe83 100644
--- a/sysvipc/sys/msg.h
+++ b/sysvipc/sys/msg.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_MSG_H
#define _SYS_MSG_H
diff --git a/sysvipc/sys/sem.h b/sysvipc/sys/sem.h
index 200765bcba..f90409f845 100644
--- a/sysvipc/sys/sem.h
+++ b/sysvipc/sys/sem.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_SEM_H
#define _SYS_SEM_H 1
diff --git a/sysvipc/sys/shm.h b/sysvipc/sys/shm.h
index 8936af7594..b43d60f778 100644
--- a/sysvipc/sys/shm.h
+++ b/sysvipc/sys/shm.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_SHM_H
#define _SYS_SHM_H 1
diff --git a/sysvipc/test-sysvmsg.c b/sysvipc/test-sysvmsg.c
index 1e0471807c..8a43d34fcb 100644
--- a/sysvipc/test-sysvmsg.c
+++ b/sysvipc/test-sysvmsg.c
@@ -1,5 +1,5 @@
/* Basic tests for SYSV message queue functions.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
diff --git a/sysvipc/test-sysvsem.c b/sysvipc/test-sysvsem.c
index a8e9bff000..da1992482b 100644
--- a/sysvipc/test-sysvsem.c
+++ b/sysvipc/test-sysvsem.c
@@ -1,5 +1,5 @@
/* Basic tests for SYSV semaphore functions.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
diff --git a/sysvipc/test-sysvshm.c b/sysvipc/test-sysvshm.c
index a7c2e0bd40..c7c25d24de 100644
--- a/sysvipc/test-sysvshm.c
+++ b/sysvipc/test-sysvshm.c
@@ -1,5 +1,5 @@
/* Basic tests for SYSV shared memory functions.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
diff --git a/termios/Makefile b/termios/Makefile
index a79e4f1565..ac3bf0d09c 100644
--- a/termios/Makefile
+++ b/termios/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1991-2018 Free Software Foundation, Inc.
+# Copyright (C) 1991-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
# Makefile for the terminal I/O functions.
diff --git a/termios/cfmakeraw.c b/termios/cfmakeraw.c
index 4711b1c723..89d65bb3e2 100644
--- a/termios/cfmakeraw.c
+++ b/termios/cfmakeraw.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <termios.h>
diff --git a/termios/cfsetspeed.c b/termios/cfsetspeed.c
index 89f60367a2..f207ada2bd 100644
--- a/termios/cfsetspeed.c
+++ b/termios/cfsetspeed.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <termios.h>
#include <errno.h>
diff --git a/termios/speed.c b/termios/speed.c
index 6f332ea885..875bbe482b 100644
--- a/termios/speed.c
+++ b/termios/speed.c
@@ -1,5 +1,5 @@
/* `struct termios' speed frobnication functions. 4.4 BSD/generic GNU version.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <errno.h>
diff --git a/termios/tcdrain.c b/termios/tcdrain.c
index 466da83797..37268157dd 100644
--- a/termios/tcdrain.c
+++ b/termios/tcdrain.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <termios.h>
diff --git a/termios/tcflow.c b/termios/tcflow.c
index 7108317ffd..75804218ae 100644
--- a/termios/tcflow.c
+++ b/termios/tcflow.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <termios.h>
diff --git a/termios/tcflush.c b/termios/tcflush.c
index 325b49f512..e0b69ba469 100644
--- a/termios/tcflush.c
+++ b/termios/tcflush.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <termios.h>
diff --git a/termios/tcgetattr.c b/termios/tcgetattr.c
index f7c5a07cc9..a111aa203b 100644
--- a/termios/tcgetattr.c
+++ b/termios/tcgetattr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
diff --git a/termios/tcgetpgrp.c b/termios/tcgetpgrp.c
index 9693e0561f..f31d44eb51 100644
--- a/termios/tcgetpgrp.c
+++ b/termios/tcgetpgrp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/termios/tcgetsid.c b/termios/tcgetsid.c
index 600e8ce151..c68c4fa9c2 100644
--- a/termios/tcgetsid.c
+++ b/termios/tcgetsid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <termios.h>
diff --git a/termios/tcsendbrk.c b/termios/tcsendbrk.c
index f8279a2223..dde2cc1efb 100644
--- a/termios/tcsendbrk.c
+++ b/termios/tcsendbrk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <termios.h>
diff --git a/termios/tcsetattr.c b/termios/tcsetattr.c
index 32829e9055..6768c73c46 100644
--- a/termios/tcsetattr.c
+++ b/termios/tcsetattr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stddef.h>
@@ -46,9 +46,9 @@ tcsetattr (int fd, int optional_actions, const struct termios *termios_p)
return -1;
}
- if (bad_speed(termios_p->__ospeed) ||
- bad_speed(termios_p->__ispeed == 0 ?
- termios_p->__ospeed : termios_p->__ispeed))
+ if (bad_speed(termios_p->__ospeed)
+ || bad_speed(termios_p->__ispeed == 0
+ ? termios_p->__ospeed : termios_p->__ispeed))
{
__set_errno (EINVAL);
return -1;
diff --git a/termios/tcsetpgrp.c b/termios/tcsetpgrp.c
index 7ba765d6b0..f478bdeed6 100644
--- a/termios/tcsetpgrp.c
+++ b/termios/tcsetpgrp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <unistd.h>
diff --git a/termios/termios.h b/termios/termios.h
index a932fd680e..6882cb2f1c 100644
--- a/termios/termios.h
+++ b/termios/termios.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* POSIX Standard: 7.1-2 General Terminal Interface <termios.h>
diff --git a/test-skeleton.c b/test-skeleton.c
index be40cb0dca..f1d6fdce88 100644
--- a/test-skeleton.c
+++ b/test-skeleton.c
@@ -1,5 +1,5 @@
/* Legacy test skeleton.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* This test skeleton is to support running existing tests. New tests
should use <support/test-driver.c> instead; see the documentation
diff --git a/time/Makefile b/time/Makefile
index ec3e39dcea..23630ae3fe 100644
--- a/time/Makefile
+++ b/time/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1991-2018 Free Software Foundation, Inc.
+# Copyright (C) 1991-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
# Makefile for time routines
@@ -31,29 +31,38 @@ headers := time.h sys/time.h sys/timeb.h bits/time.h \
routines := offtime asctime clock ctime ctime_r difftime \
gmtime localtime mktime time \
- gettimeofday settimeofday adjtime tzset \
- tzfile getitimer setitimer \
+ gettimeofday settimeofday settimezone \
+ adjtime tzset tzfile getitimer setitimer \
stime dysize timegm ftime \
getdate strptime strptime_l \
strftime wcsftime strftime_l wcsftime_l \
- timespec_get
+ timespec_get \
+ clock_getcpuclockid clock_getres \
+ clock_gettime clock_settime clock_nanosleep
+
aux := era alt_digit lc-time-cleanup
tests := test_time clocktest tst-posixtz tst-strptime tst_wcsftime \
tst-getdate tst-mktime tst-mktime2 tst-ftime_l tst-strftime \
tst-mktime3 tst-strptime2 bug-asctime bug-asctime_r bug-mktime1 \
tst-strptime3 bug-getdate1 tst-strptime-whitespace tst-ftime \
- tst-tzname tst-y2039
+ tst-tzname tst-y2039 bug-mktime4 tst-strftime2 tst-strftime3 \
+ tst-clock tst-clock2 tst-clock_nanosleep tst-cpuclock1
include ../Rules
ifeq ($(run-built-tests),yes)
LOCALES := de_DE.ISO-8859-1 en_US.ISO-8859-1 ja_JP.EUC-JP fr_FR.UTF-8 \
- es_ES.UTF-8 pl_PL.UTF-8 ru_RU.UTF-8
+ es_ES.UTF-8 pl_PL.UTF-8 ru_RU.UTF-8 \
+ ja_JP.UTF-8 lo_LA.UTF-8 th_TH.UTF-8 \
+ zh_TW.UTF-8 cmn_TW.UTF-8 hak_TW.UTF-8 \
+ nan_TW.UTF-8 lzh_TW.UTF-8
include ../gen-locales.mk
$(objpfx)tst-ftime_l.out: $(gen-locales)
$(objpfx)tst-strptime.out: $(gen-locales)
+$(objpfx)tst-strftime2.out: $(gen-locales)
+$(objpfx)tst-strftime3.out: $(gen-locales)
endif
tz-cflags = -DTZDIR='"$(zonedir)"' \
@@ -63,6 +72,8 @@ tz-cflags = -DTZDIR='"$(zonedir)"' \
CFLAGS-tzfile.c += $(tz-cflags)
CFLAGS-tzset.c += $(tz-cflags)
CFLAGS-getdate.c += -fexceptions
+CFLAGS-clock_nanosleep.c += -fexceptions -fasynchronous-unwind-tables
+CFLAGS-nanosleep.c += -fexceptions -fasynchronous-unwind-tables
# Don't warn about Y2k problem in strftime format string.
CFLAGS-test_time.c += -Wno-format
diff --git a/time/Versions b/time/Versions
index fd838181e4..8788e192ce 100644
--- a/time/Versions
+++ b/time/Versions
@@ -49,6 +49,10 @@ libc {
GLIBC_2.2 {
# w*
wcsftime;
+
+ # c*; actually in librt in version 2.2, moved to libc in 2.17
+ clock_getres; clock_gettime; clock_settime; clock_getcpuclockid;
+ clock_nanosleep;
}
GLIBC_2.3 {
# these internal names are used by libstdc++
@@ -65,4 +69,13 @@ libc {
GLIBC_2.16 {
timespec_get;
}
+ GLIBC_2.17 {
+ # c*
+ clock_getres; clock_gettime; clock_settime; clock_getcpuclockid;
+ clock_nanosleep;
+ }
+ GLIBC_PRIVATE {
+ # same as clock_gettime; used in other libraries
+ __clock_gettime;
+ }
}
diff --git a/time/adjtime.c b/time/adjtime.c
index 4a972d66cd..f209f31d60 100644
--- a/time/adjtime.c
+++ b/time/adjtime.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <sys/time.h>
diff --git a/time/alt_digit.c b/time/alt_digit.c
index 3b78384ddf..1504c2042e 100644
--- a/time/alt_digit.c
+++ b/time/alt_digit.c
@@ -1,5 +1,5 @@
/* Helper functions used by strftime/strptime to handle alternate digits.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "../locale/localeinfo.h"
#include <libc-lock.h>
@@ -162,8 +162,8 @@ _nl_parse_alt_digit (const char **strp, struct __locale_data *current)
|| ! current->private.time->alt_digits_initialized)
_nl_init_alt_digit (current);
- if (current->private.time != NULL &&
- current->private.time->alt_digits != NULL)
+ if (current->private.time != NULL
+ && current->private.time->alt_digits != NULL)
/* Matching is not unambiguous. The alternative digits could be like
I, II, III, ... and the first one is a substring of the second
and third. Therefore we must keep on searching until we found
diff --git a/time/asctime.c b/time/asctime.c
index ed9286f64e..2bdcd40d5a 100644
--- a/time/asctime.c
+++ b/time/asctime.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "../locale/localeinfo.h"
#include <errno.h>
@@ -54,10 +54,10 @@ asctime_internal (const struct tm *tp, char *buf, size_t buflen)
}
int n = __snprintf (buf, buflen, format,
- (tp->tm_wday < 0 || tp->tm_wday >= 7 ?
- "???" : ab_day_name (tp->tm_wday)),
- (tp->tm_mon < 0 || tp->tm_mon >= 12 ?
- "???" : ab_month_name (tp->tm_mon)),
+ (tp->tm_wday < 0 || tp->tm_wday >= 7
+ ? "???" : ab_day_name (tp->tm_wday)),
+ (tp->tm_mon < 0 || tp->tm_mon >= 12
+ ? "???" : ab_month_name (tp->tm_mon)),
tp->tm_mday, tp->tm_hour, tp->tm_min,
tp->tm_sec, 1900 + tp->tm_year);
if (n < 0)
diff --git a/time/bits/types/struct_timespec.h b/time/bits/types/struct_timespec.h
index 5b77c52b4f..d11c69cfd3 100644
--- a/time/bits/types/struct_timespec.h
+++ b/time/bits/types/struct_timespec.h
@@ -3,13 +3,26 @@
#define _STRUCT_TIMESPEC 1
#include <bits/types.h>
+#include <bits/endian.h>
/* POSIX.1b structure for a time value. This is like a `struct timeval' but
has nanoseconds instead of microseconds. */
struct timespec
{
__time_t tv_sec; /* Seconds. */
+#if __WORDSIZE == 64 \
+ || (defined __SYSCALL_WORDSIZE && __SYSCALL_WORDSIZE == 64) \
+ || __TIMESIZE == 32
__syscall_slong_t tv_nsec; /* Nanoseconds. */
+#else
+# if __BYTE_ORDER == __BIG_ENDIAN
+ int: 32; /* Padding. */
+ long int tv_nsec; /* Nanoseconds. */
+# else
+ long int tv_nsec; /* Nanoseconds. */
+ int: 32; /* Padding. */
+# endif
+#endif
};
#endif
diff --git a/time/bug-mktime4.c b/time/bug-mktime4.c
new file mode 100644
index 0000000000..9c076eb623
--- /dev/null
+++ b/time/bug-mktime4.c
@@ -0,0 +1,92 @@
+#include <time.h>
+#include <errno.h>
+#include <limits.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <string.h>
+
+static bool
+equal_tm (struct tm const *t, struct tm const *u)
+{
+ return (t->tm_sec == u->tm_sec && t->tm_min == u->tm_min
+ && t->tm_hour == u->tm_hour && t->tm_mday == u->tm_mday
+ && t->tm_mon == u->tm_mon && t->tm_year == u->tm_year
+ && t->tm_wday == u->tm_wday && t->tm_yday == u->tm_yday
+ && t->tm_isdst == u->tm_isdst && t->tm_gmtoff == u->tm_gmtoff
+ && t->tm_zone == u->tm_zone);
+}
+
+static int
+do_test (void)
+{
+ /* Calculate minimum time_t value. This would be simpler with C11,
+ which has _Generic, but we cannot assume C11. It would also
+ be simpler with intprops.h, which has TYPE_MINIMUM, but it's
+ better not to use glibc internals. */
+ time_t time_t_min = -1;
+ time_t_min = (0 < time_t_min ? 0
+ : sizeof time_t_min == sizeof (long int) ? LONG_MIN
+ : sizeof time_t_min == sizeof (long long int) ? LLONG_MIN
+ : 1);
+ if (time_t_min == 1)
+ {
+ printf ("unknown time type\n");
+ return 1;
+ }
+ time_t ymin = time_t_min / 60 / 60 / 24 / 366;
+ bool mktime_should_fail = ymin == 0 || INT_MIN + 1900 < ymin + 1970;
+
+ struct tm tm0 = { .tm_year = INT_MIN, .tm_mday = 1, .tm_wday = -1 };
+ struct tm tm = tm0;
+ errno = 0;
+ time_t t = mktime (&tm);
+ long long int llt = t;
+ bool mktime_failed = tm.tm_wday == tm0.tm_wday;
+
+ if (mktime_failed)
+ {
+ if (! mktime_should_fail)
+ {
+ printf ("mktime failed but should have succeeded\n");
+ return 1;
+ }
+ if (errno == 0)
+ {
+ printf ("mktime failed without setting errno");
+ return 1;
+ }
+ if (t != (time_t) -1)
+ {
+ printf ("mktime returned %lld but did not set tm_wday\n", llt);
+ return 1;
+ }
+ if (! equal_tm (&tm, &tm0))
+ {
+ printf ("mktime (P) failed but modified *P\n");
+ return 1;
+ }
+ }
+ else
+ {
+ if (mktime_should_fail)
+ {
+ printf ("mktime succeeded but should have failed\n");
+ return 1;
+ }
+ struct tm *lt = localtime (&t);
+ if (lt == NULL)
+ {
+ printf ("mktime returned a value rejected by localtime\n");
+ return 1;
+ }
+ if (! equal_tm (lt, &tm))
+ {
+ printf ("mktime result does not match localtime result\n");
+ return 1;
+ }
+ }
+ return 0;
+}
+
+#define TIMEOUT 1000
+#include "support/test-driver.c"
diff --git a/time/clock.c b/time/clock.c
index e5e896c5cb..dcd0e1e99f 100644
--- a/time/clock.c
+++ b/time/clock.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/times.h>
#include <time.h>
diff --git a/time/clock_getcpuclockid.c b/time/clock_getcpuclockid.c
new file mode 100644
index 0000000000..3c69d5157c
--- /dev/null
+++ b/time/clock_getcpuclockid.c
@@ -0,0 +1,47 @@
+/* Get a clockid_t for the process CPU clock of a given process. Generic.
+ Copyright (C) 2000-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <time.h>
+#include <unistd.h>
+#include <shlib-compat.h>
+
+int
+__clock_getcpuclockid (pid_t pid, clockid_t *clock_id)
+{
+ /* We don't allow any process ID but our own. */
+ if (pid != 0 && pid != getpid ())
+ return EPERM;
+
+#ifdef CLOCK_PROCESS_CPUTIME_ID
+ /* Store the number. */
+ *clock_id = CLOCK_PROCESS_CPUTIME_ID;
+
+ return 0;
+#else
+ /* We don't have a timer for that. */
+ return ENOENT;
+#endif
+}
+versioned_symbol (libc, __clock_getcpuclockid, clock_getcpuclockid, GLIBC_2_17);
+/* clock_getcpuclockid moved to libc in version 2.17;
+ old binaries may expect the symbol version it had in librt. */
+#if SHLIB_COMPAT (libc, GLIBC_2_2, GLIBC_2_17)
+strong_alias (__clock_getcpuclockid, __clock_getcpuclockid_2);
+compat_symbol (libc, __clock_getcpuclockid_2, clock_getcpuclockid, GLIBC_2_2);
+#endif
diff --git a/time/clock_getres.c b/time/clock_getres.c
new file mode 100644
index 0000000000..82472c7db8
--- /dev/null
+++ b/time/clock_getres.c
@@ -0,0 +1,39 @@
+/* Get the resolution of a clock. Stub version.
+ Copyright (C) 1999-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <time.h>
+#include <shlib-compat.h>
+
+/* Get resolution of clock. */
+int
+__clock_getres (clockid_t clock_id, struct timespec *res)
+{
+ __set_errno (ENOSYS);
+ return -1;
+}
+
+versioned_symbol (libc, __clock_getres, clock_getres, GLIBC_2_17);
+/* clock_getres moved to libc in version 2.17;
+ old binaries may expect the symbol version it had in librt. */
+#if SHLIB_COMPAT (libc, GLIBC_2_2, GLIBC_2_17)
+strong_alias (__clock_getres, __clock_getres_2);
+compat_symbol (libc, __clock_getres_2, clock_getres, GLIBC_2_2);
+#endif
+
+stub_warning (clock_getres)
diff --git a/time/clock_gettime.c b/time/clock_gettime.c
new file mode 100644
index 0000000000..ae39f932a7
--- /dev/null
+++ b/time/clock_gettime.c
@@ -0,0 +1,40 @@
+/* Get the current value of a clock. Stub version.
+ Copyright (C) 1999-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <time.h>
+#include <shlib-compat.h>
+
+/* Get current value of CLOCK and store it in TP. */
+int
+__clock_gettime (clockid_t clock_id, struct timespec *tp)
+{
+ __set_errno (ENOSYS);
+ return -1;
+}
+libc_hidden_def (__clock_gettime)
+
+versioned_symbol (libc, __clock_gettime, clock_gettime, GLIBC_2_17);
+/* clock_gettime moved to libc in version 2.17;
+ old binaries may expect the symbol version it had in librt. */
+#if SHLIB_COMPAT (libc, GLIBC_2_2, GLIBC_2_17)
+strong_alias (__clock_gettime, __clock_gettime_2);
+compat_symbol (libc, __clock_gettime_2, clock_gettime, GLIBC_2_2);
+#endif
+
+stub_warning (clock_gettime)
diff --git a/time/clock_nanosleep.c b/time/clock_nanosleep.c
new file mode 100644
index 0000000000..d4fc16f6ec
--- /dev/null
+++ b/time/clock_nanosleep.c
@@ -0,0 +1,45 @@
+/* High-resolution sleep with the specified clock. Stub version.
+ Copyright (C) 2000-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <time.h>
+#include <shlib-compat.h>
+
+int
+__clock_nanosleep (clockid_t clock_id, int flags, const struct timespec *req,
+ struct timespec *rem)
+{
+ if (! valid_nanoseconds (req->tv_nsec))
+ return EINVAL;
+
+ if (flags != TIMER_ABSTIME && flags != 0)
+ return EINVAL;
+
+ /* Not implemented. */
+ return ENOSYS;
+}
+libc_hidden_def (__clock_nanosleep)
+versioned_symbol (libc, __clock_nanosleep, clock_nanosleep, GLIBC_2_17);
+/* clock_nanosleep moved to libc in version 2.17;
+ old binaries may expect the symbol version it had in librt. */
+#if SHLIB_COMPAT (libc, GLIBC_2_2, GLIBC_2_17)
+strong_alias (__clock_nanosleep, __clock_nanosleep_2);
+compat_symbol (libc, __clock_nanosleep_2, clock_nanosleep, GLIBC_2_2);
+#endif
+
+stub_warning (clock_nanosleep)
diff --git a/time/clock_settime.c b/time/clock_settime.c
new file mode 100644
index 0000000000..7f782721fc
--- /dev/null
+++ b/time/clock_settime.c
@@ -0,0 +1,40 @@
+/* Set a clock to a given value. Stub version.
+ Copyright (C) 1999-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <time.h>
+#include <shlib-compat.h>
+
+/* Set CLOCK to value TP. */
+int
+__clock_settime (clockid_t clock_id, const struct timespec *tp)
+{
+ __set_errno (ENOSYS);
+ return -1;
+}
+libc_hidden_def (__clock_settime)
+
+versioned_symbol (libc, __clock_settime, clock_settime, GLIBC_2_17);
+/* clock_settime moved to libc in version 2.17;
+ old binaries may expect the symbol version it had in librt. */
+#if SHLIB_COMPAT (libc, GLIBC_2_2, GLIBC_2_17)
+strong_alias (__clock_settime, __clock_settime_2);
+compat_symbol (libc, __clock_settime_2, clock_settime, GLIBC_2_2);
+#endif
+
+stub_warning (clock_settime)
diff --git a/time/ctime.c b/time/ctime.c
index 1222614f29..fcafdc3e58 100644
--- a/time/ctime.c
+++ b/time/ctime.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -13,16 +13,31 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <time.h>
/* Return a string as returned by asctime which
is the representation of *T in that form. */
char *
-ctime (const time_t *t)
+__ctime64 (const __time64_t *t)
{
/* The C Standard says ctime (t) is equivalent to asctime (localtime (t)).
In particular, ctime and asctime must yield the same pointer. */
- return asctime (localtime (t));
+ return asctime (__localtime64 (t));
+}
+
+/* Provide a 32-bit variant if needed. */
+
+#if __TIMESIZE != 64
+
+libc_hidden_def (__ctime64)
+
+char *
+ctime (const time_t *t)
+{
+ __time64_t t64 = *t;
+ return __ctime64 (&t64);
}
+
+#endif
diff --git a/time/ctime_r.c b/time/ctime_r.c
index c111146d76..c81039f536 100644
--- a/time/ctime_r.c
+++ b/time/ctime_r.c
@@ -1,5 +1,5 @@
/* Return in BUF representation of time T in form of asctime
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
@@ -15,15 +15,30 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <time.h>
/* Return a string as returned by asctime which is the representation
of *T in that form. Reentrant version. */
char *
-ctime_r (const time_t *t, char *buf)
+__ctime64_r (const __time64_t *t, char *buf)
{
struct tm tm;
- return __asctime_r (__localtime_r (t, &tm), buf);
+ return __asctime_r (__localtime64_r (t, &tm), buf);
+}
+
+/* Provide a 32-bit variant if needed. */
+
+#if __TIMESIZE != 64
+
+libc_hidden_def (__ctime64_r)
+
+char *
+ctime_r (const time_t *t, char *buf)
+{
+ __time64_t t64 = *t;
+ return __ctime64_r (&t64, buf);
}
+
+#endif
diff --git a/time/difftime.c b/time/difftime.c
index 7c5dd9898b..e0c0b64afa 100644
--- a/time/difftime.c
+++ b/time/difftime.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* Written by Paul Eggert <eggert@cs.ucla.edu>. */
@@ -31,9 +31,9 @@
time_t is known to be an integer type. */
static double
-subtract (time_t time1, time_t time0)
+subtract (__time64_t time1, __time64_t time0)
{
- if (! TYPE_SIGNED (time_t))
+ if (! TYPE_SIGNED (__time64_t))
return time1 - time0;
else
{
@@ -76,9 +76,9 @@ subtract (time_t time1, time_t time0)
1 is unsigned in C, so it need not be compared to zero. */
uintmax_t hdt = dt / 2;
- time_t ht1 = time1 / 2;
- time_t ht0 = time0 / 2;
- time_t dht = ht1 - ht0;
+ __time64_t ht1 = time1 / 2;
+ __time64_t ht0 = time0 / 2;
+ __time64_t dht = ht1 - ht0;
if (2 < dht - hdt + 1)
{
@@ -99,18 +99,18 @@ subtract (time_t time1, time_t time0)
/* Return the difference between TIME1 and TIME0. */
double
-__difftime (time_t time1, time_t time0)
+__difftime64 (__time64_t time1, __time64_t time0)
{
/* Convert to double and then subtract if no double-rounding error could
result. */
- if (TYPE_BITS (time_t) <= DBL_MANT_DIG
- || (TYPE_FLOATING (time_t) && sizeof (time_t) < sizeof (long double)))
+ if (TYPE_BITS (__time64_t) <= DBL_MANT_DIG
+ || (TYPE_FLOATING (__time64_t) && sizeof (__time64_t) < sizeof (long double)))
return (double) time1 - (double) time0;
/* Likewise for long double. */
- if (TYPE_BITS (time_t) <= LDBL_MANT_DIG || TYPE_FLOATING (time_t))
+ if (TYPE_BITS (__time64_t) <= LDBL_MANT_DIG || TYPE_FLOATING (__time64_t))
return (long double) time1 - (long double) time0;
/* Subtract the smaller integer from the larger, convert the difference to
@@ -118,4 +118,19 @@ __difftime (time_t time1, time_t time0)
return time1 < time0 ? - subtract (time0, time1) : subtract (time1, time0);
}
+
+/* Provide a 32-bit wrapper if needed. */
+
+#if __TIMESIZE != 64
+
+libc_hidden_def (__difftime64)
+
+double
+__difftime (time_t time1, time_t time0)
+{
+ return __difftime64 (time1, time0);
+}
+
+#endif
+
strong_alias (__difftime, difftime)
diff --git a/time/dysize.c b/time/dysize.c
index 6c511a70f2..99416aa592 100644
--- a/time/dysize.c
+++ b/time/dysize.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <time.h>
diff --git a/time/era.c b/time/era.c
index 4bae7077e1..892589e336 100644
--- a/time/era.c
+++ b/time/era.c
@@ -1,5 +1,5 @@
/* Helper functions used by strftime/strptime to handle locale-specific "eras".
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
+ Copyright (C) 1995-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "../locale/localeinfo.h"
#include <libc-lock.h>
diff --git a/time/ftime.c b/time/ftime.c
index 622c6ce8e8..b4bd58ecef 100644
--- a/time/ftime.c
+++ b/time/ftime.c
@@ -1,4 +1,5 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Deprecated return date and time.
+ Copyright (C) 1994-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
@@ -13,29 +14,20 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#include <errno.h>
-#include <time.h>
#include <sys/timeb.h>
+#include <time.h>
int
ftime (struct timeb *timebuf)
{
- int save = errno;
- struct tm tp;
-
- __set_errno (0);
- if (time (&timebuf->time) == (time_t) -1 && errno != 0)
- return -1;
- timebuf->millitm = 0;
-
- if (__localtime_r (&timebuf->time, &tp) == NULL)
- return -1;
-
- timebuf->timezone = tp.tm_gmtoff / 60;
- timebuf->dstflag = tp.tm_isdst;
+ struct timespec ts;
+ __clock_gettime (CLOCK_REALTIME, &ts);
- __set_errno (save);
+ timebuf->time = ts.tv_sec;
+ timebuf->millitm = ts.tv_nsec / 1000000;
+ timebuf->timezone = 0;
+ timebuf->dstflag = 0;
return 0;
}
diff --git a/time/getdate.c b/time/getdate.c
index e568149cdf..8e15af9f15 100644
--- a/time/getdate.c
+++ b/time/getdate.c
@@ -1,5 +1,5 @@
/* Convert a string representation of time to a time value.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Mark Kettenis <kettenis@phys.uva.nl>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <limits.h>
#include <stdio.h>
@@ -219,7 +219,7 @@ __getdate_r (const char *string, struct tm *tp)
return 7;
/* Get current time. */
- time (&timer);
+ timer = time_now ();
__localtime_r (&timer, &tm);
/* If only the weekday is given, today is assumed if the given day
diff --git a/time/getitimer.c b/time/getitimer.c
index 2ff832f84a..790c1e4fa4 100644
--- a/time/getitimer.c
+++ b/time/getitimer.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <errno.h>
diff --git a/time/gettimeofday.c b/time/gettimeofday.c
index d1ab9acd17..ddaf46f481 100644
--- a/time/gettimeofday.c
+++ b/time/gettimeofday.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -13,22 +13,34 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#include <errno.h>
+#include <string.h>
+#include <time.h>
#include <sys/time.h>
-/* Get the current time of day and timezone information,
- putting it into *TV and *TZ. If TZ is NULL, *TZ is not filled.
+/* Get the current time of day, putting it into *TV.
+ If *TZ is not NULL, clear it.
Returns 0 on success, -1 on errors. */
int
-__gettimeofday (struct timeval *tv, struct timezone *tz)
+___gettimeofday (struct timeval *restrict tv, void *restrict tz)
{
- __set_errno (ENOSYS);
- return -1;
+ if (__glibc_unlikely (tz != 0))
+ memset (tz, 0, sizeof (struct timezone));
+
+ struct timespec ts;
+ if (__clock_gettime (CLOCK_REALTIME, &ts))
+ return -1;
+
+ TIMESPEC_TO_TIMEVAL (tv, &ts);
+ return 0;
}
-libc_hidden_def (__gettimeofday)
-weak_alias (__gettimeofday, gettimeofday)
-libc_hidden_weak (gettimeofday)
-stub_warning (gettimeofday)
+#ifdef VERSION_gettimeofday
+weak_alias (___gettimeofday, __wgettimeofday);
+default_symbol_version (___gettimeofday, __gettimeofday, VERSION_gettimeofday);
+default_symbol_version (__wgettimeofday, gettimeofday, VERSION_gettimeofday);
+#else
+strong_alias (___gettimeofday, __gettimeofday)
+weak_alias (___gettimeofday, gettimeofday)
+#endif
diff --git a/time/gmtime.c b/time/gmtime.c
index dc33b3e68a..0d282bab6a 100644
--- a/time/gmtime.c
+++ b/time/gmtime.c
@@ -1,5 +1,5 @@
/* Convert `time_t' to `struct tm' in UTC.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,24 +14,54 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <time.h>
/* Return the `struct tm' representation of *T in UTC,
using *TP to store the result. */
struct tm *
+__gmtime64_r (const __time64_t *t, struct tm *tp)
+{
+ return __tz_convert (*t, 0, tp);
+}
+
+/* Provide a 32-bit variant if needed. */
+
+#if __TIMESIZE != 64
+
+libc_hidden_def (__gmtime64_r)
+
+struct tm *
__gmtime_r (const time_t *t, struct tm *tp)
{
- return __tz_convert (t, 0, tp);
+ __time64_t t64 = *t;
+ return __gmtime64_r (&t64, tp);
}
+
+#endif
+
libc_hidden_def (__gmtime_r)
weak_alias (__gmtime_r, gmtime_r)
+/* Return the `struct tm' representation of *T in UTC. */
+struct tm *
+__gmtime64 (const __time64_t *t)
+{
+ return __tz_convert (*t, 0, &_tmbuf);
+}
+
+/* Provide a 32-bit variant if needed. */
+
+#if __TIMESIZE != 64
+
+libc_hidden_def (__gmtime64)
-/* Return the `struct tm' representation of *T in UTC. */
struct tm *
gmtime (const time_t *t)
{
- return __tz_convert (t, 0, &_tmbuf);
+ __time64_t t64 = *t;
+ return __gmtime64 (&t64);
}
+
+#endif
diff --git a/time/lc-time-cleanup.c b/time/lc-time-cleanup.c
index 6fa1024120..e406d3924b 100644
--- a/time/lc-time-cleanup.c
+++ b/time/lc-time-cleanup.c
@@ -1,5 +1,5 @@
/* Cleanup code for data structures kept by strftime/strptime helper functions.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "../locale/localeinfo.h"
#include <stdlib.h>
diff --git a/time/localtime.c b/time/localtime.c
index 8684a8a971..af5fba02ed 100644
--- a/time/localtime.c
+++ b/time/localtime.c
@@ -1,5 +1,5 @@
/* Convert `time_t' to `struct tm' in local time zone.
- Copyright (C) 1991-2018 Free Software Foundation, Inc.
+ Copyright (C) 1991-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <time.h>
@@ -25,17 +25,46 @@ struct tm _tmbuf;
/* Return the `struct tm' representation of *T in local time,
using *TP to store the result. */
struct tm *
+__localtime64_r (const __time64_t *t, struct tm *tp)
+{
+ return __tz_convert (*t, 1, tp);
+}
+
+/* Provide a 32-bit variant if needed. */
+
+#if __TIMESIZE != 64
+
+struct tm *
__localtime_r (const time_t *t, struct tm *tp)
{
- return __tz_convert (t, 1, tp);
+ __time64_t t64 = *t;
+ return __localtime64_r (&t64, tp);
}
+libc_hidden_def (__localtime64_r)
+
+#endif
+
weak_alias (__localtime_r, localtime_r)
/* Return the `struct tm' representation of *T in local time. */
struct tm *
+__localtime64 (const __time64_t *t)
+{
+ return __tz_convert (*t, 1, &_tmbuf);
+}
+libc_hidden_def (__localtime64)
+
+/* Provide a 32-bit variant if needed. */
+
+#if __TIMESIZE != 64
+
+struct tm *
localtime (const time_t *t)
{
- return __tz_convert (t, 1, &_tmbuf);
+ __time64_t t64 = *t;
+ return __localtime64 (&t64);
}
libc_hidden_def (localtime)
+
+#endif
diff --git a/time/mktime-internal.h b/time/mktime-internal.h
new file mode 100644
index 0000000000..4cdeb9c2f4
--- /dev/null
+++ b/time/mktime-internal.h
@@ -0,0 +1,79 @@
+/* Internals of mktime and related functions
+ Copyright 2016-2019 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Paul Eggert <eggert@cs.ucla.edu>.
+
+ 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
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _LIBC
+# include <time.h>
+#endif
+
+/* mktime_offset_t is a signed type wide enough to hold a UTC offset
+ in seconds, and used as part of the type of the offset-guess
+ argument to mktime_internal. In Glibc, it is always long int.
+ When in Gnulib, use time_t on platforms where time_t
+ is signed, to be compatible with platforms like BeOS that export
+ this implementation detail of mktime. On platforms where time_t is
+ unsigned, GNU and POSIX code can assume 'int' is at least 32 bits
+ which is wide enough for a UTC offset. */
+#ifdef _LIBC
+typedef long int mktime_offset_t;
+#elif defined TIME_T_IS_SIGNED
+typedef time_t mktime_offset_t;
+#else
+typedef int mktime_offset_t;
+#endif
+
+/* The source code uses identifiers like __time64_t for glibc
+ timestamps that can contain 64-bit values even when time_t is only
+ 32 bits. These are just macros for the ordinary identifiers unless
+ compiling within glibc when time_t is 32 bits. */
+#if ! (defined _LIBC && __TIMESIZE != 64)
+# undef __time64_t
+# define __time64_t time_t
+# define __gmtime64_r __gmtime_r
+# define __localtime64_r __localtime_r
+# define __mktime64 mktime
+# define __timegm64 timegm
+#endif
+
+#ifndef _LIBC
+
+/* Although glibc source code uses leading underscores, Gnulib wants
+ ordinary names.
+
+ Portable standalone applications should supply a <time.h> that
+ declares a POSIX-compliant localtime_r, for the benefit of older
+ implementations that lack localtime_r or have a nonstandard one.
+ Similarly for gmtime_r. See the gnulib time_r module for one way
+ to implement this. */
+
+# undef __gmtime_r
+# undef __localtime_r
+# define __gmtime_r gmtime_r
+# define __localtime_r localtime_r
+
+# define __mktime_internal mktime_internal
+
+#endif
+
+/* Subroutine of mktime. Return the time_t representation of TP and
+ normalize TP, given that a struct tm * maps to a time_t as performed
+ by FUNC. Record next guess for localtime-gmtime offset in *OFFSET. */
+extern __time64_t __mktime_internal (struct tm *tp,
+ struct tm *(*func) (__time64_t const *,
+ struct tm *),
+ mktime_offset_t *offset) attribute_hidden;
diff --git a/time/mktime.c b/time/mktime.c
index 5f038a212f..11b0d5353b 100644
--- a/time/mktime.c
+++ b/time/mktime.c
@@ -1,5 +1,5 @@
/* Convert a 'struct tm' to a time_t value.
- Copyright (C) 1993-2018 Free Software Foundation, Inc.
+ Copyright (C) 1993-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Paul Eggert <eggert@twinsun.com>.
@@ -15,14 +15,23 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-/* Define this to have a standalone program to test this implementation of
- mktime. */
-/* #define DEBUG_MKTIME 1 */
+/* The following macros influence what gets defined when this file is compiled:
+
+ Macro/expression Which gnulib module This compilation unit
+ should define
+
+ _LIBC (glibc proper) mktime
+
+ NEED_MKTIME_WORKING mktime rpl_mktime
+ || NEED_MKTIME_WINDOWS
+
+ NEED_MKTIME_INTERNAL mktime-internal mktime_internal
+ */
#ifndef _LIBC
-# include <config.h>
+# include <libc-config.h>
#endif
/* Assume that leap seconds are possible, unless told otherwise.
@@ -34,115 +43,123 @@
#include <time.h>
+#include <errno.h>
#include <limits.h>
+#include <stdbool.h>
+#include <stdlib.h>
+#include <string.h>
-#include <string.h> /* For the real memcpy prototype. */
-
-#if defined DEBUG_MKTIME && DEBUG_MKTIME
-# include <stdio.h>
-# include <stdlib.h>
-/* Make it work even if the system's libc has its own mktime routine. */
-# undef mktime
-# define mktime my_mktime
-#endif /* DEBUG_MKTIME */
-
-/* Some of the code in this file assumes that signed integer overflow
- silently wraps around. This assumption can't easily be programmed
- around, nor can it be checked for portably at compile-time or
- easily eliminated at run-time.
-
- Define WRAPV to 1 if the assumption is valid and if
- #pragma GCC optimize ("wrapv")
- does not trigger GCC bug 51793
- <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51793>.
- Otherwise, define it to 0; this forces the use of slower code that,
- while not guaranteed by the C Standard, works on all production
- platforms that we know about. */
-#ifndef WRAPV
-# if (((__GNUC__ == 4 && 4 <= __GNUC_MINOR__) || 4 < __GNUC__) \
- && defined __GLIBC__)
-# pragma GCC optimize ("wrapv")
-# define WRAPV 1
-# else
-# define WRAPV 0
+#include <intprops.h>
+#include <verify.h>
+
+#ifndef NEED_MKTIME_INTERNAL
+# define NEED_MKTIME_INTERNAL 0
+#endif
+#ifndef NEED_MKTIME_WINDOWS
+# define NEED_MKTIME_WINDOWS 0
+#endif
+#ifndef NEED_MKTIME_WORKING
+# define NEED_MKTIME_WORKING 0
+#endif
+
+#include "mktime-internal.h"
+
+#if !defined _LIBC && (NEED_MKTIME_WORKING || NEED_MKTIME_WINDOWS)
+static void
+my_tzset (void)
+{
+# if NEED_MKTIME_WINDOWS
+ /* Rectify the value of the environment variable TZ.
+ There are four possible kinds of such values:
+ - Traditional US time zone names, e.g. "PST8PDT". Syntax: see
+ <https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/tzset>
+ - Time zone names based on geography, that contain one or more
+ slashes, e.g. "Europe/Moscow".
+ - Time zone names based on geography, without slashes, e.g.
+ "Singapore".
+ - Time zone names that contain explicit DST rules. Syntax: see
+ <https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html#tag_08_03>
+ The Microsoft CRT understands only the first kind. It produces incorrect
+ results if the value of TZ is of the other kinds.
+ But in a Cygwin environment, /etc/profile.d/tzset.sh sets TZ to a value
+ of the second kind for most geographies, or of the first kind in a few
+ other geographies. If it is of the second kind, neutralize it. For the
+ Microsoft CRT, an absent or empty TZ means the time zone that the user
+ has set in the Windows Control Panel.
+ If the value of TZ is of the third or fourth kind -- Cygwin programs
+ understand these syntaxes as well --, it does not matter whether we
+ neutralize it or not, since these values occur only when a Cygwin user
+ has set TZ explicitly; this case is 1. rare and 2. under the user's
+ responsibility. */
+ const char *tz = getenv ("TZ");
+ if (tz != NULL && strchr (tz, '/') != NULL)
+ _putenv ("TZ=");
+# elif HAVE_TZSET
+ tzset ();
# endif
+}
+# undef __tzset
+# define __tzset() my_tzset ()
#endif
-/* Verify a requirement at compile-time (unlike assert, which is runtime). */
-#define verify(name, assertion) struct name { char a[(assertion) ? 1 : -1]; }
+#if defined _LIBC || NEED_MKTIME_WORKING || NEED_MKTIME_INTERNAL
+
+/* A signed type that can represent an integer number of years
+ multiplied by four times the number of seconds in a year. It is
+ needed when converting a tm_year value times the number of seconds
+ in a year. The factor of four comes because these products need
+ to be subtracted from each other, and sometimes with an offset
+ added to them, and then with another timestamp added, without
+ worrying about overflow.
+
+ Much of the code uses long_int to represent __time64_t values, to
+ lessen the hassle of dealing with platforms where __time64_t is
+ unsigned, and because long_int should suffice to represent all
+ __time64_t values that mktime can generate even on platforms where
+ __time64_t is wider than the int components of struct tm. */
-/* A signed type that is at least one bit wider than int. */
-#if INT_MAX <= LONG_MAX / 2
+#if INT_MAX <= LONG_MAX / 4 / 366 / 24 / 60 / 60
typedef long int long_int;
#else
typedef long long int long_int;
#endif
-verify (long_int_is_wide_enough, INT_MAX == INT_MAX * (long_int) 2 / 2);
+verify (INT_MAX <= TYPE_MAXIMUM (long_int) / 4 / 366 / 24 / 60 / 60);
/* Shift A right by B bits portably, by dividing A by 2**B and
- truncating towards minus infinity. A and B should be free of side
- effects, and B should be in the range 0 <= B <= INT_BITS - 2, where
- INT_BITS is the number of useful bits in an int. GNU code can
- assume that INT_BITS is at least 32.
+ truncating towards minus infinity. B should be in the range 0 <= B
+ <= LONG_INT_BITS - 2, where LONG_INT_BITS is the number of useful
+ bits in a long_int. LONG_INT_BITS is at least 32.
ISO C99 says that A >> B is implementation-defined if A < 0. Some
implementations (e.g., UNICOS 9.0 on a Cray Y-MP EL) don't shift
right in the usual way when A < 0, so SHR falls back on division if
ordinary A >> B doesn't seem to be the usual signed shift. */
-#define SHR(a, b) \
- ((-1 >> 1 == -1 \
- && (long_int) -1 >> 1 == -1 \
- && ((time_t) -1 >> 1 == -1 || ! TYPE_SIGNED (time_t))) \
- ? (a) >> (b) \
- : (a) / (1 << (b)) - ((a) % (1 << (b)) < 0))
-
-/* The extra casts in the following macros work around compiler bugs,
- e.g., in Cray C 5.0.3.0. */
-
-/* True if the arithmetic type T is an integer type. bool counts as
- an integer. */
-#define TYPE_IS_INTEGER(t) ((t) 1.5 == 1)
-
-/* True if negative values of the signed integer type T use two's
- complement, or if T is an unsigned integer type. */
-#define TYPE_TWOS_COMPLEMENT(t) ((t) ~ (t) 0 == (t) -1)
-
-/* True if the arithmetic type T is signed. */
-#define TYPE_SIGNED(t) (! ((t) 0 < (t) -1))
-
-/* The maximum and minimum values for the integer type T. These
- macros have undefined behavior if T is signed and has padding bits.
- If this is a problem for you, please let us know how to fix it for
- your host. */
-#define TYPE_MINIMUM(t) \
- ((t) (! TYPE_SIGNED (t) \
- ? (t) 0 \
- : ~ TYPE_MAXIMUM (t)))
-#define TYPE_MAXIMUM(t) \
- ((t) (! TYPE_SIGNED (t) \
- ? (t) -1 \
- : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1)))
-
-#ifndef TIME_T_MIN
-# define TIME_T_MIN TYPE_MINIMUM (time_t)
-#endif
-#ifndef TIME_T_MAX
-# define TIME_T_MAX TYPE_MAXIMUM (time_t)
-#endif
-#define TIME_T_MIDPOINT (SHR (TIME_T_MIN + TIME_T_MAX, 1) + 1)
-verify (time_t_is_integer, TYPE_IS_INTEGER (time_t));
-verify (twos_complement_arithmetic,
- (TYPE_TWOS_COMPLEMENT (int)
- && TYPE_TWOS_COMPLEMENT (long_int)
- && TYPE_TWOS_COMPLEMENT (time_t)));
+static long_int
+shr (long_int a, int b)
+{
+ long_int one = 1;
+ return (-one >> 1 == -1
+ ? a >> b
+ : a / (one << b) - (a % (one << b) < 0));
+}
+
+/* Bounds for the intersection of __time64_t and long_int. */
+
+static long_int const mktime_min
+ = ((TYPE_SIGNED (__time64_t)
+ && TYPE_MINIMUM (__time64_t) < TYPE_MINIMUM (long_int))
+ ? TYPE_MINIMUM (long_int) : TYPE_MINIMUM (__time64_t));
+static long_int const mktime_max
+ = (TYPE_MAXIMUM (long_int) < TYPE_MAXIMUM (__time64_t)
+ ? TYPE_MAXIMUM (long_int) : TYPE_MAXIMUM (__time64_t));
#define EPOCH_YEAR 1970
#define TM_YEAR_BASE 1900
-verify (base_year_is_a_multiple_of_100, TM_YEAR_BASE % 100 == 0);
+verify (TM_YEAR_BASE % 100 == 0);
-/* Return 1 if YEAR + TM_YEAR_BASE is a leap year. */
-static int
+/* Is YEAR + TM_YEAR_BASE a leap year? */
+static bool
leapyear (long_int year)
{
/* Don't add YEAR to TM_YEAR_BASE, as that might overflow.
@@ -166,20 +183,9 @@ const unsigned short int __mon_yday[2][13] =
};
-#ifndef _LIBC
-/* Portable standalone applications should supply a <time.h> that
- declares a POSIX-compliant localtime_r, for the benefit of older
- implementations that lack localtime_r or have a nonstandard one.
- See the gnulib time_r module for one way to implement this. */
-# undef __localtime_r
-# define __localtime_r localtime_r
-# define __mktime_internal mktime_internal
-# include "mktime-internal.h"
-#endif
-
-/* Return 1 if the values A and B differ according to the rules for
- tm_isdst: A and B differ if one is zero and the other positive. */
-static int
+/* Do the values A and B differ according to the rules for tm_isdst?
+ A and B differ if one is zero and the other positive. */
+static bool
isdst_differ (int a, int b)
{
return (!a != !b) && (0 <= a) && (0 <= b);
@@ -187,171 +193,135 @@ isdst_differ (int a, int b)
/* Return an integer value measuring (YEAR1-YDAY1 HOUR1:MIN1:SEC1) -
(YEAR0-YDAY0 HOUR0:MIN0:SEC0) in seconds, assuming that the clocks
- were not adjusted between the time stamps.
+ were not adjusted between the timestamps.
The YEAR values uses the same numbering as TP->tm_year. Values
- need not be in the usual range. However, YEAR1 must not be less
- than 2 * INT_MIN or greater than 2 * INT_MAX.
-
- The result may overflow. It is the caller's responsibility to
- detect overflow. */
+ need not be in the usual range. However, YEAR1 - YEAR0 must not
+ overflow even when multiplied by three times the number of seconds
+ in a year, and likewise for YDAY1 - YDAY0 and three times the
+ number of seconds in a day. */
-static time_t
+static long_int
ydhms_diff (long_int year1, long_int yday1, int hour1, int min1, int sec1,
int year0, int yday0, int hour0, int min0, int sec0)
{
- verify (C99_integer_division, -1 / 2 == 0);
+ verify (-1 / 2 == 0);
/* Compute intervening leap days correctly even if year is negative.
Take care to avoid integer overflow here. */
- int a4 = SHR (year1, 2) + SHR (TM_YEAR_BASE, 2) - ! (year1 & 3);
- int b4 = SHR (year0, 2) + SHR (TM_YEAR_BASE, 2) - ! (year0 & 3);
+ int a4 = shr (year1, 2) + shr (TM_YEAR_BASE, 2) - ! (year1 & 3);
+ int b4 = shr (year0, 2) + shr (TM_YEAR_BASE, 2) - ! (year0 & 3);
int a100 = a4 / 25 - (a4 % 25 < 0);
int b100 = b4 / 25 - (b4 % 25 < 0);
- int a400 = SHR (a100, 2);
- int b400 = SHR (b100, 2);
+ int a400 = shr (a100, 2);
+ int b400 = shr (b100, 2);
int intervening_leap_days = (a4 - b4) - (a100 - b100) + (a400 - b400);
- /* Compute the desired time in time_t precision. Overflow might
- occur here. */
- time_t tyear1 = year1;
- time_t years = tyear1 - year0;
- time_t days = 365 * years + yday1 - yday0 + intervening_leap_days;
- time_t hours = 24 * days + hour1 - hour0;
- time_t minutes = 60 * hours + min1 - min0;
- time_t seconds = 60 * minutes + sec1 - sec0;
+ /* Compute the desired time without overflowing. */
+ long_int years = year1 - year0;
+ long_int days = 365 * years + yday1 - yday0 + intervening_leap_days;
+ long_int hours = 24 * days + hour1 - hour0;
+ long_int minutes = 60 * hours + min1 - min0;
+ long_int seconds = 60 * minutes + sec1 - sec0;
return seconds;
}
-/* Return the average of A and B, even if A + B would overflow. */
-static time_t
-time_t_avg (time_t a, time_t b)
+/* Return the average of A and B, even if A + B would overflow.
+ Round toward positive infinity. */
+static long_int
+long_int_avg (long_int a, long_int b)
{
- return SHR (a, 1) + SHR (b, 1) + (a & b & 1);
+ return shr (a, 1) + shr (b, 1) + ((a | b) & 1);
}
-/* Return 1 if A + B does not overflow. If time_t is unsigned and if
- B's top bit is set, assume that the sum represents A - -B, and
- return 1 if the subtraction does not wrap around. */
-static int
-time_t_add_ok (time_t a, time_t b)
-{
- if (! TYPE_SIGNED (time_t))
- {
- time_t sum = a + b;
- return (sum < a) == (TIME_T_MIDPOINT <= b);
- }
- else if (WRAPV)
- {
- time_t sum = a + b;
- return (sum < a) == (b < 0);
- }
- else
- {
- time_t avg = time_t_avg (a, b);
- return TIME_T_MIN / 2 <= avg && avg <= TIME_T_MAX / 2;
- }
-}
+/* Return a long_int value corresponding to (YEAR-YDAY HOUR:MIN:SEC)
+ minus *TP seconds, assuming no clock adjustments occurred between
+ the two timestamps.
-/* Return 1 if A + B does not overflow. */
-static int
-time_t_int_add_ok (time_t a, int b)
+ YEAR and YDAY must not be so large that multiplying them by three times the
+ number of seconds in a year (or day, respectively) would overflow long_int.
+ *TP should be in the usual range. */
+static long_int
+tm_diff (long_int year, long_int yday, int hour, int min, int sec,
+ struct tm const *tp)
{
- verify (int_no_wider_than_time_t, INT_MAX <= TIME_T_MAX);
- if (WRAPV)
- {
- time_t sum = a + b;
- return (sum < a) == (b < 0);
- }
- else
- {
- int a_odd = a & 1;
- time_t avg = SHR (a, 1) + (SHR (b, 1) + (a_odd & b));
- return TIME_T_MIN / 2 <= avg && avg <= TIME_T_MAX / 2;
- }
+ return ydhms_diff (year, yday, hour, min, sec,
+ tp->tm_year, tp->tm_yday,
+ tp->tm_hour, tp->tm_min, tp->tm_sec);
}
-/* Return a time_t value corresponding to (YEAR-YDAY HOUR:MIN:SEC),
- assuming that *T corresponds to *TP and that no clock adjustments
- occurred between *TP and the desired time.
- If TP is null, return a value not equal to *T; this avoids false matches.
- If overflow occurs, yield the minimal or maximal value, except do not
- yield a value equal to *T. */
-static time_t
-guess_time_tm (long_int year, long_int yday, int hour, int min, int sec,
- const time_t *t, const struct tm *tp)
+/* Use CONVERT to convert T to a struct tm value in *TM. T must be in
+ range for __time64_t. Return TM if successful, NULL (setting errno) on
+ failure. */
+static struct tm *
+convert_time (struct tm *(*convert) (const __time64_t *, struct tm *),
+ long_int t, struct tm *tm)
{
- if (tp)
- {
- time_t d = ydhms_diff (year, yday, hour, min, sec,
- tp->tm_year, tp->tm_yday,
- tp->tm_hour, tp->tm_min, tp->tm_sec);
- if (time_t_add_ok (*t, d))
- return *t + d;
- }
-
- /* Overflow occurred one way or another. Return the nearest result
- that is actually in range, except don't report a zero difference
- if the actual difference is nonzero, as that would cause a false
- match; and don't oscillate between two values, as that would
- confuse the spring-forward gap detector. */
- return (*t < TIME_T_MIDPOINT
- ? (*t <= TIME_T_MIN + 1 ? *t + 1 : TIME_T_MIN)
- : (TIME_T_MAX - 1 <= *t ? *t - 1 : TIME_T_MAX));
+ __time64_t x = t;
+ return convert (&x, tm);
}
/* Use CONVERT to convert *T to a broken down time in *TP.
If *T is out of range for conversion, adjust it so that
- it is the nearest in-range value and then convert that. */
+ it is the nearest in-range value and then convert that.
+ A value is in range if it fits in both __time64_t and long_int.
+ Return TP on success, NULL (setting errno) on failure. */
static struct tm *
-ranged_convert (struct tm *(*convert) (const time_t *, struct tm *),
- time_t *t, struct tm *tp)
+ranged_convert (struct tm *(*convert) (const __time64_t *, struct tm *),
+ long_int *t, struct tm *tp)
{
- struct tm *r = convert (t, tp);
-
- if (!r && *t)
+ long_int t1 = (*t < mktime_min ? mktime_min
+ : *t <= mktime_max ? *t : mktime_max);
+ struct tm *r = convert_time (convert, t1, tp);
+ if (r)
{
- time_t bad = *t;
- time_t ok = 0;
+ *t = t1;
+ return r;
+ }
+ if (errno != EOVERFLOW)
+ return NULL;
- /* BAD is a known unconvertible time_t, and OK is a known good one.
- Use binary search to narrow the range between BAD and OK until
- they differ by 1. */
- while (bad != ok + (bad < 0 ? -1 : 1))
- {
- time_t mid = *t = time_t_avg (ok, bad);
- r = convert (t, tp);
- if (r)
- ok = mid;
- else
- bad = mid;
- }
+ long_int bad = t1;
+ long_int ok = 0;
+ struct tm oktm; oktm.tm_sec = -1;
- if (!r && ok)
- {
- /* The last conversion attempt failed;
- revert to the most recent successful attempt. */
- *t = ok;
- r = convert (t, tp);
- }
+ /* BAD is a known out-of-range value, and OK is a known in-range one.
+ Use binary search to narrow the range between BAD and OK until
+ they differ by 1. */
+ while (true)
+ {
+ long_int mid = long_int_avg (ok, bad);
+ if (mid == ok || mid == bad)
+ break;
+ if (convert_time (convert, mid, tp))
+ ok = mid, oktm = *tp;
+ else if (errno != EOVERFLOW)
+ return NULL;
+ else
+ bad = mid;
}
- return r;
+ if (oktm.tm_sec < 0)
+ return NULL;
+ *t = ok;
+ *tp = oktm;
+ return tp;
}
-/* Convert *TP to a time_t value, inverting
+/* Convert *TP to a __time64_t value, inverting
the monotonic and mostly-unit-linear conversion function CONVERT.
Use *OFFSET to keep track of a guess at the offset of the result,
compared to what the result would be for UTC without leap seconds.
If *OFFSET's guess is correct, only one CONVERT call is needed.
+ If successful, set *TP to the canonicalized struct tm;
+ otherwise leave *TP alone, return ((time_t) -1) and set errno.
This function is external because it is used also by timegm.c. */
-time_t
+__time64_t
__mktime_internal (struct tm *tp,
- struct tm *(*convert) (const time_t *, struct tm *),
- time_t *offset)
+ struct tm *(*convert) (const __time64_t *, struct tm *),
+ mktime_offset_t *offset)
{
- time_t t, gt, t0, t1, t2;
struct tm tm;
/* The maximum number of probes (calls to CONVERT) should be enough
@@ -371,7 +341,7 @@ __mktime_internal (struct tm *tp,
int isdst = tp->tm_isdst;
/* 1 if the previous probe was DST. */
- int dst2;
+ int dst2 = 0;
/* Ensure that mon is in range, and set year accordingly. */
int mon_remainder = mon % 12;
@@ -381,9 +351,7 @@ __mktime_internal (struct tm *tp,
long_int year = lyear_requested + mon_years;
/* The other values need not be in range:
- the remaining code handles minor overflows correctly,
- assuming int and time_t arithmetic wraps around.
- Major overflows are caught at the end. */
+ the remaining code handles overflows correctly. */
/* Calculate day of year from year, month, and day of month.
The result need not be in range. */
@@ -393,14 +361,15 @@ __mktime_internal (struct tm *tp,
long_int lmday = mday;
long_int yday = mon_yday + lmday;
- time_t guessed_offset = *offset;
+ mktime_offset_t off = *offset;
+ int negative_offset_guess;
int sec_requested = sec;
if (LEAP_SECONDS_POSSIBLE)
{
/* Handle out-of-range seconds specially,
- since ydhms_tm_diff assumes every minute has 60 seconds. */
+ since ydhms_diff assumes every minute has 60 seconds. */
if (sec < 0)
sec = 0;
if (59 < sec)
@@ -410,91 +379,47 @@ __mktime_internal (struct tm *tp,
/* Invert CONVERT by probing. First assume the same offset as last
time. */
- t0 = ydhms_diff (year, yday, hour, min, sec,
- EPOCH_YEAR - TM_YEAR_BASE, 0, 0, 0, - guessed_offset);
+ INT_SUBTRACT_WRAPV (0, off, &negative_offset_guess);
+ long_int t0 = ydhms_diff (year, yday, hour, min, sec,
+ EPOCH_YEAR - TM_YEAR_BASE, 0, 0, 0,
+ negative_offset_guess);
+ long_int t = t0, t1 = t0, t2 = t0;
- if (TIME_T_MAX / INT_MAX / 366 / 24 / 60 / 60 < 3)
+ /* Repeatedly use the error to improve the guess. */
+
+ while (true)
{
- /* time_t isn't large enough to rule out overflows, so check
- for major overflows. A gross check suffices, since if t0
- has overflowed, it is off by a multiple of TIME_T_MAX -
- TIME_T_MIN + 1. So ignore any component of the difference
- that is bounded by a small value. */
-
- /* Approximate log base 2 of the number of time units per
- biennium. A biennium is 2 years; use this unit instead of
- years to avoid integer overflow. For example, 2 average
- Gregorian years are 2 * 365.2425 * 24 * 60 * 60 seconds,
- which is 63113904 seconds, and rint (log2 (63113904)) is
- 26. */
- int ALOG2_SECONDS_PER_BIENNIUM = 26;
- int ALOG2_MINUTES_PER_BIENNIUM = 20;
- int ALOG2_HOURS_PER_BIENNIUM = 14;
- int ALOG2_DAYS_PER_BIENNIUM = 10;
- int LOG2_YEARS_PER_BIENNIUM = 1;
-
- int approx_requested_biennia =
- (SHR (year_requested, LOG2_YEARS_PER_BIENNIUM)
- - SHR (EPOCH_YEAR - TM_YEAR_BASE, LOG2_YEARS_PER_BIENNIUM)
- + SHR (mday, ALOG2_DAYS_PER_BIENNIUM)
- + SHR (hour, ALOG2_HOURS_PER_BIENNIUM)
- + SHR (min, ALOG2_MINUTES_PER_BIENNIUM)
- + (LEAP_SECONDS_POSSIBLE
- ? 0
- : SHR (sec, ALOG2_SECONDS_PER_BIENNIUM)));
-
- int approx_biennia = SHR (t0, ALOG2_SECONDS_PER_BIENNIUM);
- int diff = approx_biennia - approx_requested_biennia;
- int approx_abs_diff = diff < 0 ? -1 - diff : diff;
-
- /* IRIX 4.0.5 cc miscalculates TIME_T_MIN / 3: it erroneously
- gives a positive value of 715827882. Setting a variable
- first then doing math on it seems to work.
- (ghazi@caip.rutgers.edu) */
- time_t time_t_max = TIME_T_MAX;
- time_t time_t_min = TIME_T_MIN;
- time_t overflow_threshold =
- (time_t_max / 3 - time_t_min / 3) >> ALOG2_SECONDS_PER_BIENNIUM;
-
- if (overflow_threshold < approx_abs_diff)
+ if (! ranged_convert (convert, &t, &tm))
+ return -1;
+ long_int dt = tm_diff (year, yday, hour, min, sec, &tm);
+ if (dt == 0)
+ break;
+
+ if (t == t1 && t != t2
+ && (tm.tm_isdst < 0
+ || (isdst < 0
+ ? dst2 <= (tm.tm_isdst != 0)
+ : (isdst != 0) != (tm.tm_isdst != 0))))
+ /* We can't possibly find a match, as we are oscillating
+ between two values. The requested time probably falls
+ within a spring-forward gap of size DT. Follow the common
+ practice in this case, which is to return a time that is DT
+ away from the requested time, preferring a time whose
+ tm_isdst differs from the requested value. (If no tm_isdst
+ was requested and only one of the two values has a nonzero
+ tm_isdst, prefer that value.) In practice, this is more
+ useful than returning -1. */
+ goto offset_found;
+
+ remaining_probes--;
+ if (remaining_probes == 0)
{
- /* Overflow occurred. Try repairing it; this might work if
- the time zone offset is enough to undo the overflow. */
- time_t repaired_t0 = -1 - t0;
- approx_biennia = SHR (repaired_t0, ALOG2_SECONDS_PER_BIENNIUM);
- diff = approx_biennia - approx_requested_biennia;
- approx_abs_diff = diff < 0 ? -1 - diff : diff;
- if (overflow_threshold < approx_abs_diff)
- return -1;
- guessed_offset += repaired_t0 - t0;
- t0 = repaired_t0;
+ __set_errno (EOVERFLOW);
+ return -1;
}
- }
- /* Repeatedly use the error to improve the guess. */
-
- for (t = t1 = t2 = t0, dst2 = 0;
- (gt = guess_time_tm (year, yday, hour, min, sec, &t,
- ranged_convert (convert, &t, &tm)),
- t != gt);
- t1 = t2, t2 = t, t = gt, dst2 = tm.tm_isdst != 0)
- if (t == t1 && t != t2
- && (tm.tm_isdst < 0
- || (isdst < 0
- ? dst2 <= (tm.tm_isdst != 0)
- : (isdst != 0) != (tm.tm_isdst != 0))))
- /* We can't possibly find a match, as we are oscillating
- between two values. The requested time probably falls
- within a spring-forward gap of size GT - T. Follow the common
- practice in this case, which is to return a time that is GT - T
- away from the requested time, preferring a time whose
- tm_isdst differs from the requested value. (If no tm_isdst
- was requested and only one of the two values has a nonzero
- tm_isdst, prefer that value.) In practice, this is more
- useful than returning -1. */
- goto offset_found;
- else if (--remaining_probes == 0)
- return -1;
+ t1 = t2, t2 = t, t += dt, dst2 = tm.tm_isdst != 0;
+ }
/* We have a match. Check whether tm.tm_isdst has the requested
value, if any. */
@@ -531,211 +456,111 @@ __mktime_internal (struct tm *tp,
for (delta = stride; delta < delta_bound; delta += stride)
for (direction = -1; direction <= 1; direction += 2)
- if (time_t_int_add_ok (t, delta * direction))
- {
- time_t ot = t + delta * direction;
- struct tm otm;
- ranged_convert (convert, &ot, &otm);
- if (! isdst_differ (isdst, otm.tm_isdst))
- {
- /* We found the desired tm_isdst.
- Extrapolate back to the desired time. */
- t = guess_time_tm (year, yday, hour, min, sec, &ot, &otm);
- ranged_convert (convert, &t, &tm);
- goto offset_found;
- }
- }
+ {
+ long_int ot;
+ if (! INT_ADD_WRAPV (t, delta * direction, &ot))
+ {
+ struct tm otm;
+ if (! ranged_convert (convert, &ot, &otm))
+ return -1;
+ if (! isdst_differ (isdst, otm.tm_isdst))
+ {
+ /* We found the desired tm_isdst.
+ Extrapolate back to the desired time. */
+ long_int gt = ot + tm_diff (year, yday, hour, min, sec,
+ &otm);
+ if (mktime_min <= gt && gt <= mktime_max)
+ {
+ if (convert_time (convert, gt, &tm))
+ {
+ t = gt;
+ goto offset_found;
+ }
+ if (errno != EOVERFLOW)
+ return -1;
+ }
+ }
+ }
+ }
+
+ __set_errno (EOVERFLOW);
+ return -1;
}
offset_found:
- *offset = guessed_offset + t - t0;
+ /* Set *OFFSET to the low-order bits of T - T0 - NEGATIVE_OFFSET_GUESS.
+ This is just a heuristic to speed up the next mktime call, and
+ correctness is unaffected if integer overflow occurs here. */
+ INT_SUBTRACT_WRAPV (t, t0, offset);
+ INT_SUBTRACT_WRAPV (*offset, negative_offset_guess, offset);
if (LEAP_SECONDS_POSSIBLE && sec_requested != tm.tm_sec)
{
/* Adjust time to reflect the tm_sec requested, not the normalized value.
Also, repair any damage from a false match due to a leap second. */
- int sec_adjustment = (sec == 0 && tm.tm_sec == 60) - sec;
- if (! time_t_int_add_ok (t, sec_requested))
- return -1;
- t1 = t + sec_requested;
- if (! time_t_int_add_ok (t1, sec_adjustment))
- return -1;
- t2 = t1 + sec_adjustment;
- if (! convert (&t2, &tm))
+ long_int sec_adjustment = sec == 0 && tm.tm_sec == 60;
+ sec_adjustment -= sec;
+ sec_adjustment += sec_requested;
+ if (INT_ADD_WRAPV (t, sec_adjustment, &t)
+ || ! (mktime_min <= t && t <= mktime_max))
+ {
+ __set_errno (EOVERFLOW);
+ return -1;
+ }
+ if (! convert_time (convert, t, &tm))
return -1;
- t = t2;
}
*tp = tm;
return t;
}
+#endif /* _LIBC || NEED_MKTIME_WORKING || NEED_MKTIME_INTERNAL */
-/* FIXME: This should use a signed type wide enough to hold any UTC
- offset in seconds. 'int' should be good enough for GNU code. We
- can't fix this unilaterally though, as other modules invoke
- __mktime_internal. */
-static time_t localtime_offset;
+#if defined _LIBC || NEED_MKTIME_WORKING || NEED_MKTIME_WINDOWS
-/* Convert *TP to a time_t value. */
-time_t
-mktime (struct tm *tp)
+/* Convert *TP to a __time64_t value. */
+__time64_t
+__mktime64 (struct tm *tp)
{
-#ifdef _LIBC
/* POSIX.1 8.1.1 requires that whenever mktime() is called, the
time zone names contained in the external variable 'tzname' shall
be set as if the tzset() function had been called. */
__tzset ();
-#endif
- return __mktime_internal (tp, __localtime_r, &localtime_offset);
+# if defined _LIBC || NEED_MKTIME_WORKING
+ static mktime_offset_t localtime_offset;
+ return __mktime_internal (tp, __localtime64_r, &localtime_offset);
+# else
+# undef mktime
+ return mktime (tp);
+# endif
}
+#endif /* _LIBC || NEED_MKTIME_WORKING || NEED_MKTIME_WINDOWS */
-#ifdef weak_alias
-weak_alias (mktime, timelocal)
-#endif
-
-#ifdef _LIBC
-libc_hidden_def (mktime)
-libc_hidden_weak (timelocal)
-#endif
-
-#if defined DEBUG_MKTIME && DEBUG_MKTIME
+#if defined _LIBC && __TIMESIZE != 64
-static int
-not_equal_tm (const struct tm *a, const struct tm *b)
-{
- return ((a->tm_sec ^ b->tm_sec)
- | (a->tm_min ^ b->tm_min)
- | (a->tm_hour ^ b->tm_hour)
- | (a->tm_mday ^ b->tm_mday)
- | (a->tm_mon ^ b->tm_mon)
- | (a->tm_year ^ b->tm_year)
- | (a->tm_yday ^ b->tm_yday)
- | isdst_differ (a->tm_isdst, b->tm_isdst));
-}
+libc_hidden_def (__mktime64)
-static void
-print_tm (const struct tm *tp)
-{
- if (tp)
- printf ("%04d-%02d-%02d %02d:%02d:%02d yday %03d wday %d isdst %d",
- tp->tm_year + TM_YEAR_BASE, tp->tm_mon + 1, tp->tm_mday,
- tp->tm_hour, tp->tm_min, tp->tm_sec,
- tp->tm_yday, tp->tm_wday, tp->tm_isdst);
- else
- printf ("0");
-}
-
-static int
-check_result (time_t tk, struct tm tmk, time_t tl, const struct tm *lt)
-{
- if (tk != tl || !lt || not_equal_tm (&tmk, lt))
- {
- printf ("mktime (");
- print_tm (lt);
- printf (")\nyields (");
- print_tm (&tmk);
- printf (") == %ld, should be %ld\n", (long int) tk, (long int) tl);
- return 1;
- }
-
- return 0;
-}
-
-int
-main (int argc, char **argv)
+time_t
+mktime (struct tm *tp)
{
- int status = 0;
- struct tm tm, tmk, tml;
- struct tm *lt;
- time_t tk, tl, tl1;
- char trailer;
-
- if ((argc == 3 || argc == 4)
- && (sscanf (argv[1], "%d-%d-%d%c",
- &tm.tm_year, &tm.tm_mon, &tm.tm_mday, &trailer)
- == 3)
- && (sscanf (argv[2], "%d:%d:%d%c",
- &tm.tm_hour, &tm.tm_min, &tm.tm_sec, &trailer)
- == 3))
+ struct tm tm = *tp;
+ __time64_t t = __mktime64 (&tm);
+ if (in_time_t_range (t))
{
- tm.tm_year -= TM_YEAR_BASE;
- tm.tm_mon--;
- tm.tm_isdst = argc == 3 ? -1 : atoi (argv[3]);
- tmk = tm;
- tl = mktime (&tmk);
- lt = localtime (&tl);
- if (lt)
- {
- tml = *lt;
- lt = &tml;
- }
- printf ("mktime returns %ld == ", (long int) tl);
- print_tm (&tmk);
- printf ("\n");
- status = check_result (tl, tmk, tl, lt);
+ *tp = tm;
+ return t;
}
- else if (argc == 4 || (argc == 5 && strcmp (argv[4], "-") == 0))
+ else
{
- time_t from = atol (argv[1]);
- time_t by = atol (argv[2]);
- time_t to = atol (argv[3]);
-
- if (argc == 4)
- for (tl = from; by < 0 ? to <= tl : tl <= to; tl = tl1)
- {
- lt = localtime (&tl);
- if (lt)
- {
- tmk = tml = *lt;
- tk = mktime (&tmk);
- status |= check_result (tk, tmk, tl, &tml);
- }
- else
- {
- printf ("localtime (%ld) yields 0\n", (long int) tl);
- status = 1;
- }
- tl1 = tl + by;
- if ((tl1 < tl) != (by < 0))
- break;
- }
- else
- for (tl = from; by < 0 ? to <= tl : tl <= to; tl = tl1)
- {
- /* Null benchmark. */
- lt = localtime (&tl);
- if (lt)
- {
- tmk = tml = *lt;
- tk = tl;
- status |= check_result (tk, tmk, tl, &tml);
- }
- else
- {
- printf ("localtime (%ld) yields 0\n", (long int) tl);
- status = 1;
- }
- tl1 = tl + by;
- if ((tl1 < tl) != (by < 0))
- break;
- }
+ __set_errno (EOVERFLOW);
+ return -1;
}
- else
- printf ("Usage:\
-\t%s YYYY-MM-DD HH:MM:SS [ISDST] # Test given time.\n\
-\t%s FROM BY TO # Test values FROM, FROM+BY, ..., TO.\n\
-\t%s FROM BY TO - # Do not test those values (for benchmark).\n",
- argv[0], argv[0], argv[0]);
-
- return status;
}
-#endif /* DEBUG_MKTIME */
-
-/*
-Local Variables:
-compile-command: "gcc -DDEBUG_MKTIME -I. -Wall -W -O2 -g mktime.c -o mktime"
-End:
-*/
+#endif
+
+weak_alias (mktime, timelocal)
+libc_hidden_def (mktime)
+libc_hidden_weak (timelocal)
diff --git a/time/offtime.c b/time/offtime.c
index 04c48389fc..0e97a9c9ad 100644
--- a/time/offtime.c
+++ b/time/offtime.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <time.h>
@@ -21,18 +21,18 @@
#define SECS_PER_HOUR (60 * 60)
#define SECS_PER_DAY (SECS_PER_HOUR * 24)
-/* Compute the `struct tm' representation of *T,
+/* Compute the `struct tm' representation of T,
offset OFFSET seconds east of UTC,
and store year, yday, mon, mday, wday, hour, min, sec into *TP.
Return nonzero if successful. */
int
-__offtime (const time_t *t, long int offset, struct tm *tp)
+__offtime (__time64_t t, long int offset, struct tm *tp)
{
- time_t days, rem, y;
+ __time64_t days, rem, y;
const unsigned short int *ip;
- days = *t / SECS_PER_DAY;
- rem = *t % SECS_PER_DAY;
+ days = t / SECS_PER_DAY;
+ rem = t % SECS_PER_DAY;
rem += offset;
while (rem < 0)
{
@@ -60,7 +60,7 @@ __offtime (const time_t *t, long int offset, struct tm *tp)
while (days < 0 || days >= (__isleap (y) ? 366 : 365))
{
/* Guess a corrected year, assuming 365 days per year. */
- time_t yg = y + days / 365 - (days % 365 < 0);
+ __time64_t yg = y + days / 365 - (days % 365 < 0);
/* Adjust DAYS and Y to match the guessed year. */
days -= ((yg - y) * 365
diff --git a/time/setitimer.c b/time/setitimer.c
index 468f86b6c2..d7c8a1cca6 100644
--- a/time/setitimer.c
+++ b/time/setitimer.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <errno.h>
diff --git a/time/settimeofday.c b/time/settimeofday.c
index 01bf4b032d..ad57ad41a1 100644
--- a/time/settimeofday.c
+++ b/time/settimeofday.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -13,9 +13,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
+#include <time.h>
#include <sys/time.h>
/* Set the current time of day and timezone information.
@@ -23,9 +24,24 @@
int
__settimeofday (const struct timeval *tv, const struct timezone *tz)
{
- __set_errno (ENOSYS);
- return -1;
+ if (__glibc_unlikely (tz != 0))
+ {
+ if (tv != 0)
+ {
+ __set_errno (EINVAL);
+ return -1;
+ }
+ return __settimezone (tz);
+ }
+
+ struct timespec ts;
+ TIMEVAL_TO_TIMESPEC (tv, &ts);
+ return __clock_settime (CLOCK_REALTIME, &ts);
}
-stub_warning (settimeofday)
-weak_alias (__settimeofday, settimeofday)
+#ifdef VERSION_settimeofday
+weak_alias (__settimeofday, __settimeofday_w);
+default_symbol_version (__settimeofday_w, settimeofday, VERSION_settimeofday);
+#else
+weak_alias (__settimeofday, settimeofday);
+#endif
diff --git a/time/settimezone.c b/time/settimezone.c
new file mode 100644
index 0000000000..b9969c9dd5
--- /dev/null
+++ b/time/settimezone.c
@@ -0,0 +1,28 @@
+/* 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <sys/time.h>
+
+/* Set the system-wide timezone.
+ This call is restricted to the super-user. */
+int
+__settimezone (const struct timezone *tz)
+{
+ __set_errno (ENOSYS);
+ return -1;
+}
diff --git a/time/stime.c b/time/stime.c
index 0378e23888..6ea3b6dcc1 100644
--- a/time/stime.c
+++ b/time/stime.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -13,25 +13,26 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
+
+#include <shlib-compat.h>
+
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_31)
-#include <errno.h>
#include <time.h>
-#include <stddef.h>
/* Set the system clock to *WHEN. */
int
-stime (const time_t *when)
+attribute_compat_text_section
+__stime (const time_t *when)
{
- if (when == NULL)
- {
- __set_errno (EINVAL);
- return -1;
- }
-
- __set_errno (ENOSYS);
- return -1;
+ struct timespec ts;
+ ts.tv_sec = *when;
+ ts.tv_nsec = 0;
+
+ return __clock_settime (CLOCK_REALTIME, &ts);
}
-stub_warning (stime)
+compat_symbol (libc, __stime, stime, GLIBC_2_0);
+#endif
diff --git a/time/strftime.c b/time/strftime.c
index 65dda8ede1..c6a54cc7cc 100644
--- a/time/strftime.c
+++ b/time/strftime.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <time.h>
#include <locale/localeinfo.h>
diff --git a/time/strftime_l.c b/time/strftime_l.c
index c71f9f47a9..b876da0fda 100644
--- a/time/strftime_l.c
+++ b/time/strftime_l.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
@@ -434,7 +434,7 @@ static CHAR_T const month_name[][10] =
#endif
static size_t __strftime_internal (CHAR_T *, size_t, const CHAR_T *,
- const struct tm *, bool *
+ const struct tm *, int, bool *
ut_argument_spec
LOCALE_PARAM) __THROW;
@@ -457,7 +457,7 @@ my_strftime (CHAR_T *s, size_t maxsize, const CHAR_T *format,
tp = &tmcopy;
#endif
bool tzset_called = false;
- return __strftime_internal (s, maxsize, format, tp, &tzset_called
+ return __strftime_internal (s, maxsize, format, tp, 0, &tzset_called
ut_argument LOCALE_ARG);
}
#ifdef _LIBC
@@ -466,7 +466,7 @@ libc_hidden_def (my_strftime)
static size_t
__strftime_internal (CHAR_T *s, size_t maxsize, const CHAR_T *format,
- const struct tm *tp, bool *tzset_called
+ const struct tm *tp, int yr_spec, bool *tzset_called
ut_argument_spec LOCALE_PARAM)
{
#if defined _LIBC && defined USE_IN_EXTENDED_LOCALE_MODEL
@@ -562,7 +562,7 @@ __strftime_internal (CHAR_T *s, size_t maxsize, const CHAR_T *format,
int pad = 0; /* Padding for number ('-', '_', or 0). */
int modifier; /* Field modifier ('E', 'O', or 0). */
int digits; /* Max digits for numeric format. */
- int number_value; /* Numeric value to be printed. */
+ int number_value; /* Numeric value to be printed. */
int negative_number; /* 1 if the number is negative. */
const CHAR_T *subfmt;
CHAR_T *bufp;
@@ -820,7 +820,7 @@ __strftime_internal (CHAR_T *s, size_t maxsize, const CHAR_T *format,
if (modifier == L_('O'))
goto bad_format;
#ifdef _NL_CURRENT
- if (! (modifier == 'E'
+ if (! (modifier == L_('E')
&& (*(subfmt =
(const CHAR_T *) _NL_CURRENT (LC_TIME,
NLW(ERA_D_T_FMT)))
@@ -838,11 +838,11 @@ __strftime_internal (CHAR_T *s, size_t maxsize, const CHAR_T *format,
{
CHAR_T *old_start = p;
size_t len = __strftime_internal (NULL, (size_t) -1, subfmt,
- tp, tzset_called ut_argument
- LOCALE_ARG);
+ tp, yr_spec, tzset_called
+ ut_argument LOCALE_ARG);
add (len, __strftime_internal (p, maxsize - i, subfmt,
- tp, tzset_called ut_argument
- LOCALE_ARG));
+ tp, yr_spec, tzset_called
+ ut_argument LOCALE_ARG));
if (to_uppcase)
while (old_start < p)
@@ -917,7 +917,7 @@ __strftime_internal (CHAR_T *s, size_t maxsize, const CHAR_T *format,
#ifdef _NL_CURRENT
if (! (modifier == L_('E')
&& (*(subfmt =
- (const CHAR_T *)_NL_CURRENT (LC_TIME, NLW(ERA_D_FMT)))
+ (const CHAR_T *) _NL_CURRENT (LC_TIME, NLW(ERA_D_FMT)))
!= L_('\0'))))
subfmt = (const CHAR_T *) _NL_CURRENT (LC_TIME, NLW(D_FMT));
goto subformat;
@@ -992,7 +992,7 @@ __strftime_internal (CHAR_T *s, size_t maxsize, const CHAR_T *format,
do
*--bufp = u % 10 + L_('0');
while ((u /= 10) != 0);
- }
+ }
do_number_sign_and_padding:
if (negative_number)
@@ -1136,7 +1136,7 @@ __strftime_internal (CHAR_T *s, size_t maxsize, const CHAR_T *format,
DO_NUMBER (2, tp->tm_sec);
case L_('s'): /* GNU extension. */
- {
+ {
struct tm ltm;
time_t t;
@@ -1262,7 +1262,7 @@ __strftime_internal (CHAR_T *s, size_t maxsize, const CHAR_T *format,
DO_NUMBER (1, tp->tm_wday);
case L_('Y'):
- if (modifier == 'E')
+ if (modifier == L_('E'))
{
#if HAVE_STRUCT_ERA_ENTRY
struct era_entry *era = _nl_get_era_entry (tp HELPER_LOCALE_ARG);
@@ -1273,6 +1273,8 @@ __strftime_internal (CHAR_T *s, size_t maxsize, const CHAR_T *format,
# else
subfmt = era->era_format;
# endif
+ if (pad != 0)
+ yr_spec = pad;
goto subformat;
}
#else
@@ -1294,7 +1296,9 @@ __strftime_internal (CHAR_T *s, size_t maxsize, const CHAR_T *format,
if (era)
{
int delta = tp->tm_year - era->start_date[0];
- DO_NUMBER (1, (era->offset
+ if (yr_spec != 0)
+ pad = yr_spec;
+ DO_NUMBER (2, (era->offset
+ delta * era->absolute_direction));
}
#else
diff --git a/time/strptime.c b/time/strptime.c
index bbc5239aa1..a25697f5bf 100644
--- a/time/strptime.c
+++ b/time/strptime.c
@@ -1,5 +1,5 @@
/* Convert a string representation of time to a time value.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* XXX This version of the implementation is not really complete.
Some of the fields cannot add information alone. But if seeing
diff --git a/time/strptime_l.c b/time/strptime_l.c
index cd901c2606..66789076f1 100644
--- a/time/strptime_l.c
+++ b/time/strptime_l.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
@@ -306,7 +306,7 @@ __strptime_internal (const char *rp, const char *fmt, struct tm *tmp,
}
/* Any character but `%' must be matched by the same character
- in the iput string. */
+ in the input string. */
if (*fmt != '%')
{
match_char (*fmt++, *rp++);
@@ -495,8 +495,8 @@ __strptime_internal (const char *rp, const char *fmt, struct tm *tmp,
}
else
{
- if (s.decided == not &&
- strcmp (_NL_CURRENT (LC_TIME, D_T_FMT), HERE_D_T_FMT))
+ if (s.decided == not
+ && strcmp (_NL_CURRENT (LC_TIME, D_T_FMT), HERE_D_T_FMT))
s.decided = loc;
s.want_xday = 1;
break;
@@ -641,9 +641,9 @@ __strptime_internal (const char *rp, const char *fmt, struct tm *tmp,
}
else
{
- if (s.decided == not &&
- strcmp (_NL_CURRENT (LC_TIME, T_FMT_AMPM),
- HERE_T_FMT_AMPM))
+ if (s.decided == not
+ && strcmp (_NL_CURRENT (LC_TIME, T_FMT_AMPM),
+ HERE_T_FMT_AMPM))
s.decided = loc;
break;
}
@@ -907,10 +907,15 @@ __strptime_internal (const char *rp, const char *fmt, struct tm *tmp,
{
int delta = ((tm->tm_year - era->offset)
* era->absolute_direction);
+ /* The difference between two sets of years
+ does not include the final year itself,
+ therefore add 1 to the difference to
+ account for that final year. */
match = (delta >= 0
&& delta < (((int64_t) era->stop_date[0]
- (int64_t) era->start_date[0])
- * era->absolute_direction));
+ * era->absolute_direction
+ + 1));
}
if (! match)
return NULL;
@@ -928,10 +933,12 @@ __strptime_internal (const char *rp, const char *fmt, struct tm *tmp,
{
int delta = ((tm->tm_year - era->offset)
* era->absolute_direction);
+ /* See comment above about year difference + 1. */
if (delta >= 0
&& delta < (((int64_t) era->stop_date[0]
- (int64_t) era->start_date[0])
- * era->absolute_direction))
+ * era->absolute_direction
+ + 1))
{
s.decided = loc;
break;
diff --git a/time/sys/time.h b/time/sys/time.h
index 4166a5b10f..0473dae339 100644
--- a/time/sys/time.h
+++ b/time/sys/time.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_TIME_H
#define _SYS_TIME_H 1
@@ -54,23 +54,24 @@ struct timezone
int tz_minuteswest; /* Minutes west of GMT. */
int tz_dsttime; /* Nonzero if DST is ever in effect. */
};
-
-typedef struct timezone *__restrict __timezone_ptr_t;
-#else
-typedef void *__restrict __timezone_ptr_t;
#endif
-/* Get the current time of day and timezone information,
- putting it into *TV and *TZ. If TZ is NULL, *TZ is not filled.
- Returns 0 on success, -1 on errors.
- NOTE: This form of timezone information is obsolete.
- Use the functions and variables declared in <time.h> instead. */
+/* Get the current time of day, putting it into *TV.
+ If TZ is not null, *TZ must be a struct timezone, and both fields
+ will be set to zero.
+ Calling this function with a non-null TZ is obsolete;
+ use localtime etc. instead.
+ This function itself is semi-obsolete;
+ most callers should use time or clock_gettime instead. */
extern int gettimeofday (struct timeval *__restrict __tv,
- __timezone_ptr_t __tz) __THROW __nonnull ((1));
+ void *__restrict __tz) __THROW __nonnull ((1));
#ifdef __USE_MISC
/* Set the current time of day and timezone information.
- This call is restricted to the super-user. */
+ This call is restricted to the super-user.
+ Setting the timezone in this way is obsolete, but we don't yet
+ warn about it because it still has some uses for which there is
+ no alternative. */
extern int settimeofday (const struct timeval *__tv,
const struct timezone *__tz)
__THROW;
@@ -159,9 +160,9 @@ extern int futimesat (int __fd, const char *__file,
# define timerisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec)
# define timerclear(tvp) ((tvp)->tv_sec = (tvp)->tv_usec = 0)
# define timercmp(a, b, CMP) \
- (((a)->tv_sec == (b)->tv_sec) ? \
- ((a)->tv_usec CMP (b)->tv_usec) : \
- ((a)->tv_sec CMP (b)->tv_sec))
+ (((a)->tv_sec == (b)->tv_sec) \
+ ? ((a)->tv_usec CMP (b)->tv_usec) \
+ : ((a)->tv_sec CMP (b)->tv_sec))
# define timeradd(a, b, result) \
do { \
(result)->tv_sec = (a)->tv_sec + (b)->tv_sec; \
diff --git a/time/sys/timeb.h b/time/sys/timeb.h
index e9b4a37f1b..5c16f79da2 100644
--- a/time/sys/timeb.h
+++ b/time/sys/timeb.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _SYS_TIMEB_H
#define _SYS_TIMEB_H 1
@@ -36,7 +36,8 @@ struct timeb
/* Fill in TIMEBUF with information about the current time. */
-extern int ftime (struct timeb *__timebuf);
+extern int ftime (struct timeb *__timebuf)
+ __nonnull ((1)) __attribute_deprecated__;
__END_DECLS
diff --git a/time/test_time.c b/time/test_time.c
index 4bed27996d..26e31bf1f6 100644
--- a/time/test_time.c
+++ b/time/test_time.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
@@ -67,7 +67,7 @@ main (int argc, char **argv)
puts("localtime() failed.");
lose = 1;
}
- else if (strftime(buf, sizeof(buf), "%a %b %d %X %Z %Y", tp) == 0)
+ else if (strftime (buf, sizeof (buf), "%a %b %d %X %Z %Y", tp) == 0)
{
puts("strftime() failed.");
lose = 1;
diff --git a/time/time.c b/time/time.c
index 4996d26f13..58aac308e3 100644
--- a/time/time.c
+++ b/time/time.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -13,21 +13,19 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#include <errno.h>
#include <time.h>
+#include <time-clockid.h>
/* Return the time now, and store it in *TIMER if not NULL. */
time_t
time (time_t *timer)
{
- __set_errno (ENOSYS);
+ struct timespec ts;
+ __clock_gettime (TIME_CLOCK_GETTIME_CLOCKID, &ts);
- if (timer != NULL)
- *timer = (time_t) -1;
- return (time_t) -1;
+ if (timer)
+ *timer = ts.tv_sec;
+ return ts.tv_sec;
}
-libc_hidden_def (time)
-
-stub_warning (time)
diff --git a/time/time.h b/time/time.h
index 4b55e34402..05d9098c13 100644
--- a/time/time.h
+++ b/time/time.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* ISO C99 Standard: 7.23 Date and time <time.h>
@@ -122,7 +122,7 @@ extern struct tm *gmtime (const time_t *__timer) __THROW;
of *TIMER in the local timezone. */
extern struct tm *localtime (const time_t *__timer) __THROW;
-#ifdef __USE_POSIX
+#if defined __USE_POSIX || __GLIBC_USE (ISOC2X)
/* Return the `struct tm' representation of *TIMER in UTC,
using *TP to store the result. */
extern struct tm *gmtime_r (const time_t *__restrict __timer,
@@ -132,7 +132,7 @@ extern struct tm *gmtime_r (const time_t *__restrict __timer,
using *TP to store the result. */
extern struct tm *localtime_r (const time_t *__restrict __timer,
struct tm *__restrict __tp) __THROW;
-#endif /* POSIX */
+#endif /* POSIX || C2X */
/* Return a string of the form "Day Mon dd hh:mm:ss yyyy\n"
that is the representation of TP in this format. */
@@ -141,7 +141,7 @@ extern char *asctime (const struct tm *__tp) __THROW;
/* Equivalent to `asctime (localtime (timer))'. */
extern char *ctime (const time_t *__timer) __THROW;
-#ifdef __USE_POSIX
+#if defined __USE_POSIX || __GLIBC_USE (ISOC2X)
/* Reentrant versions of the above functions. */
/* Return in BUF a string of the form "Day Mon dd hh:mm:ss yyyy\n"
@@ -152,7 +152,7 @@ extern char *asctime_r (const struct tm *__restrict __tp,
/* Equivalent to `asctime_r (localtime_r (timer, *TMP*), buf)'. */
extern char *ctime_r (const time_t *__restrict __timer,
char *__restrict __buf) __THROW;
-#endif /* POSIX */
+#endif /* POSIX || C2X */
/* Defined in localtime.c. */
@@ -175,12 +175,6 @@ extern int daylight;
extern long int timezone;
#endif
-#ifdef __USE_MISC
-/* Set the system time to *WHEN.
- This call is restricted to the superuser. */
-extern int stime (const time_t *__when) __THROW;
-#endif
-
/* Nonzero if YEAR is a leap year (every 4 years,
except every 100th isn't, and every 400th is). */
diff --git a/time/timegm.c b/time/timegm.c
index fb720e2d7d..00854c796a 100644
--- a/time/timegm.c
+++ b/time/timegm.c
@@ -1,6 +1,6 @@
/* Convert UTC calendar time to simple time. Like mktime but assumes UTC.
- Copyright (C) 1994-2018 Free Software Foundation, Inc.
+ Copyright (C) 1994-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
@@ -15,33 +15,44 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#ifdef HAVE_CONFIG_H
-# include <config.h>
+#ifndef _LIBC
+# include <libc-config.h>
#endif
-#ifdef _LIBC
-# include <time.h>
-#else
-# include "timegm.h"
-
-/* Portable standalone applications should supply a "time_r.h" that
- declares a POSIX-compliant gmtime_r, for the benefit of older
- implementations that lack gmtime_r or have a nonstandard one.
- See the gnulib time_r module for one way to implement this. */
-# include <time_r.h>
-# undef __gmtime_r
-# define __gmtime_r gmtime_r
-time_t __mktime_internal (struct tm *,
- struct tm * (*) (time_t const *, struct tm *),
- time_t *);
-#endif
+#include <time.h>
+#include <errno.h>
+
+#include "mktime-internal.h"
+
+__time64_t
+__timegm64 (struct tm *tmp)
+{
+ static mktime_offset_t gmtime_offset;
+ tmp->tm_isdst = 0;
+ return __mktime_internal (tmp, __gmtime64_r, &gmtime_offset);
+}
+
+#if defined _LIBC && __TIMESIZE != 64
+
+libc_hidden_def (__timegm64)
time_t
timegm (struct tm *tmp)
{
- static time_t gmtime_offset;
- tmp->tm_isdst = 0;
- return __mktime_internal (tmp, __gmtime_r, &gmtime_offset);
+ struct tm tm = *tmp;
+ __time64_t t = __timegm64 (&tm);
+ if (in_time_t_range (t))
+ {
+ *tmp = tm;
+ return t;
+ }
+ else
+ {
+ __set_errno (EOVERFLOW);
+ return -1;
+ }
}
+
+#endif
diff --git a/time/timespec_get.c b/time/timespec_get.c
index 50843f9b58..5124c747c2 100644
--- a/time/timespec_get.c
+++ b/time/timespec_get.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* 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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <time.h>
@@ -22,16 +22,10 @@
int
timespec_get (struct timespec *ts, int base)
{
- switch (base)
+ if (base == TIME_UTC)
{
- case TIME_UTC:
- /* Not supported. */
- return 0;
-
- default:
- return 0;
+ __clock_gettime (CLOCK_REALTIME, ts);
+ return base;
}
-
- return base;
+ return 0;
}
-stub_warning (timespec_get)
diff --git a/rt/tst-clock.c b/time/tst-clock.c
index bec76d0152..3bd9f6758e 100644
--- a/rt/tst-clock.c
+++ b/time/tst-clock.c
@@ -1,5 +1,5 @@
/* Test program for POSIX clock_* functions.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <string.h>
@@ -26,9 +26,6 @@
/* We want to see output immediately. */
#define STDOUT_UNBUFFERED
-/* We expect to run at least 10 seconds. */
-#define TIMEOUT 15
-
static int
clock_test (clockid_t cl)
{
diff --git a/rt/tst-clock2.c b/time/tst-clock2.c
index 4c8fb9f247..4c8fb9f247 100644
--- a/rt/tst-clock2.c
+++ b/time/tst-clock2.c
diff --git a/rt/tst-clock_nanosleep.c b/time/tst-clock_nanosleep.c
index eb2b906c07..3da452560a 100644
--- a/rt/tst-clock_nanosleep.c
+++ b/time/tst-clock_nanosleep.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <errno.h>
#include <stdio.h>
diff --git a/rt/tst-cpuclock1.c b/time/tst-cpuclock1.c
index f6d76e3614..4ffcd5ce04 100644
--- a/rt/tst-cpuclock1.c
+++ b/time/tst-cpuclock1.c
@@ -1,5 +1,5 @@
/* Test program for process CPU clocks.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
@@ -316,6 +316,5 @@ do_test (void)
}
-#define TIMEOUT 5
#define TEST_FUNCTION do_test ()
#include "../test-skeleton.c"
diff --git a/time/tst-ftime.c b/time/tst-ftime.c
index 74e6d1cea3..39d94a1b26 100644
--- a/time/tst-ftime.c
+++ b/time/tst-ftime.c
@@ -1,5 +1,5 @@
/* Verify that ftime is sane.
- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+ Copyright (C) 2014-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
@@ -14,10 +14,11 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <sys/timeb.h>
#include <stdio.h>
+#include <libc-diag.h>
static int
do_test (void)
@@ -29,12 +30,18 @@ do_test (void)
{
prev = curr;
+ /* ftime was deprecated on 2.31. */
+ DIAG_PUSH_NEEDS_COMMENT;
+ DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wdeprecated-declarations");
+
if (ftime (&curr))
{
printf ("ftime returned an error\n");
return 1;
}
+ DIAG_POP_NEEDS_COMMENT;
+
if (curr.time < prev.time)
{
printf ("ftime's time flowed backwards\n");
@@ -54,6 +61,5 @@ do_test (void)
return 0;
}
-#define TIMEOUT 3
#define TEST_FUNCTION do_test ()
#include "../test-skeleton.c"
diff --git a/time/tst-getdate.c b/time/tst-getdate.c
index 53843602b1..6da5c3ab86 100644
--- a/time/tst-getdate.c
+++ b/time/tst-getdate.c
@@ -1,5 +1,5 @@
/* Test for getdate.
- Copyright (C) 2000-2018 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
diff --git a/time/tst-mktime2.c b/time/tst-mktime2.c
index c41db3e3b7..09f85134d2 100644
--- a/time/tst-mktime2.c
+++ b/time/tst-mktime2.c
@@ -1,8 +1,12 @@
/* Test program from Paul Eggert and Tony Leneis. */
+#include <array_length.h>
+#include <errno.h>
#include <limits.h>
-#include <time.h>
+#include <stdio.h>
#include <stdlib.h>
+#include <support/check.h>
+#include <time.h>
#include <unistd.h>
/* True if the arithmetic type T is signed. */
@@ -34,7 +38,14 @@ static const char *tz_strings[] =
(const char *) 0, "GMT0", "JST-9",
"EST+3EDT+2,M10.1.0/00:00:00,M2.3.0/00:00:00"
};
-#define N_STRINGS ((int) (sizeof (tz_strings) / sizeof (tz_strings[0])))
+
+static void
+set_timezone (const char *tz)
+{
+ printf ("info: setting TZ=%s\n", tz);
+ if (setenv ("TZ", tz, 1) != 0)
+ FAIL_EXIT1 ("setenv: %m");
+}
/* Fail if mktime fails to convert a date in the spring-forward gap.
Based on a problem report from Andreas Jaeger. */
@@ -48,7 +59,7 @@ spring_forward_gap (void)
instead of "TZ=America/Vancouver" in order to detect the bug even
on systems that don't support the Olson extension, or don't have the
full zoneinfo tables installed. */
- setenv ("TZ", "PST8PDT,M4.1.0,M10.5.0", 1);
+ set_timezone ("PST8PDT,M4.1.0,M10.5.0");
tm.tm_year = 98;
tm.tm_mon = 3;
@@ -58,15 +69,22 @@ spring_forward_gap (void)
tm.tm_sec = 0;
tm.tm_isdst = -1;
if (mktime (&tm) == (time_t)-1)
- exit (1);
+ FAIL_EXIT1 ("mktime: %m");
}
static void
mktime_test1 (time_t now)
{
struct tm *lt = localtime (&now);
- if (lt && mktime (lt) != now)
- exit (2);
+ if (lt == NULL)
+ {
+ /* For extreme input values, it is expected that localtime fails
+ with EOVERFLOW. */
+ printf ("info: localtime (%lld) failed: %m\n", (long long int) now);
+ TEST_COMPARE (errno, EOVERFLOW);
+ return;
+ }
+ TEST_COMPARE (mktime (lt), now);
}
static void
@@ -90,8 +108,8 @@ irix_6_4_bug (void)
tm.tm_sec = 0;
tm.tm_isdst = -1;
mktime (&tm);
- if (tm.tm_mon != 2 || tm.tm_mday != 31)
- exit (3);
+ TEST_COMPARE (tm.tm_mon, 2);
+ TEST_COMPARE (tm.tm_mday, 31);
}
static void
@@ -105,18 +123,16 @@ bigtime_test (int j)
if (now != (time_t) -1)
{
struct tm *lt = localtime (&now);
- if (! (lt
- && lt->tm_year == tm.tm_year
- && lt->tm_mon == tm.tm_mon
- && lt->tm_mday == tm.tm_mday
- && lt->tm_hour == tm.tm_hour
- && lt->tm_min == tm.tm_min
- && lt->tm_sec == tm.tm_sec
- && lt->tm_yday == tm.tm_yday
- && lt->tm_wday == tm.tm_wday
- && ((lt->tm_isdst < 0 ? -1 : 0 < lt->tm_isdst)
- == (tm.tm_isdst < 0 ? -1 : 0 < tm.tm_isdst))))
- exit (4);
+ TEST_COMPARE (lt->tm_year, tm.tm_year);
+ TEST_COMPARE (lt->tm_mon, tm.tm_mon);
+ TEST_COMPARE (lt->tm_mday, tm.tm_mday);
+ TEST_COMPARE (lt->tm_hour, tm.tm_hour);
+ TEST_COMPARE (lt->tm_min, tm.tm_min);
+ TEST_COMPARE (lt->tm_sec, tm.tm_sec);
+ TEST_COMPARE (lt->tm_yday, tm.tm_yday);
+ TEST_COMPARE (lt->tm_wday, tm.tm_wday);
+ TEST_COMPARE (lt->tm_isdst < 0 ? -1 : 0 < lt->tm_isdst,
+ tm.tm_isdst < 0 ? -1 : 0 < tm.tm_isdst);
}
}
@@ -127,17 +143,13 @@ do_test (void)
int i;
unsigned int j;
- setenv ("TZ", "America/Sao_Paulo", 1);
- /* This test makes some buggy mktime implementations loop.
- Give up after 60 seconds; a mktime slower than that
- isn't worth using anyway. */
- alarm (60);
+ set_timezone ("America/Sao_Paulo");
delta = TIME_T_MAX / 997; /* a suitable prime number */
- for (i = 0; i < N_STRINGS; i++)
+ for (i = 0; i < array_length (tz_strings); i++)
{
- if (tz_strings[i])
- setenv ("TZ", tz_strings[i], 1);
+ if (tz_strings[i] != NULL)
+ set_timezone (tz_strings[i]);
for (t = 0; t <= TIME_T_MAX - delta; t += delta)
mktime_test (t);
@@ -154,5 +166,4 @@ do_test (void)
return 0;
}
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/test-driver.c>
diff --git a/time/tst-strftime2.c b/time/tst-strftime2.c
new file mode 100644
index 0000000000..b741f8eaf6
--- /dev/null
+++ b/time/tst-strftime2.c
@@ -0,0 +1,196 @@
+/* Verify the behavior of strftime on alternative representation for
+ year.
+
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <array_length.h>
+#include <stdbool.h>
+#include <support/check.h>
+#include <stdlib.h>
+#include <locale.h>
+#include <time.h>
+#include <stdio.h>
+#include <string.h>
+
+static const char *locales[] =
+{
+ "ja_JP.UTF-8", "lo_LA.UTF-8", "th_TH.UTF-8",
+ "zh_TW.UTF-8", "cmn_TW.UTF-8", "hak_TW.UTF-8",
+ "nan_TW.UTF-8", "lzh_TW.UTF-8"
+};
+
+/* Must match locale index into locales array. */
+enum
+{
+ ja_JP, lo_LA, th_TH,
+ zh_TW, cmn_TW, hak_TW, nan_TW, lzh_TW
+};
+
+static const char *formats[] = { "%EY", "%_EY", "%-EY" };
+
+typedef struct
+{
+ const int d, m, y;
+} date_t;
+
+static const date_t dates[] =
+{
+ { 1, 4, 1910 },
+ { 31, 12, 1911 },
+ { 1, 1, 1912 },
+ { 1, 4, 1913 },
+ { 1, 4, 1988 },
+ { 7, 1, 1989 },
+ { 8, 1, 1989 },
+ { 1, 4, 1990 },
+ { 1, 4, 1997 },
+ { 1, 4, 1998 },
+ { 1, 4, 2010 },
+ { 1, 4, 2011 },
+ { 30, 4, 2019 },
+ { 1, 5, 2019 }
+};
+
+static char ref[array_length (locales)][array_length (formats)]
+ [array_length (dates)][100];
+
+static bool
+is_before (const int i, const int d, const int m, const int y)
+{
+ if (dates[i].y < y)
+ return true;
+ else if (dates[i].y > y)
+ return false;
+ else if (dates[i].m < m)
+ return true;
+ else if (dates[i].m > m)
+ return false;
+ else
+ return dates[i].d < d;
+}
+
+static void
+mkreftable (void)
+{
+ int i, j, k, yr;
+ const char *era, *sfx;
+ /* Japanese era year to be checked. */
+ static const int yrj[] =
+ {
+ 43, 44, 45, 2,
+ 63, 64, 1, 2, 9, 10, 22, 23, 31, 1
+ };
+ /* Buddhist calendar year to be checked. */
+ static const int yrb[] =
+ {
+ 2453, 2454, 2455, 2456,
+ 2531, 2532, 2532, 2533, 2540, 2541, 2553, 2554, 2562, 2562
+ };
+ /* R.O.C. calendar year to be checked. Negative number is prior to
+ Minguo counting up. */
+ static const int yrc[] =
+ {
+ -2, -1, 1, 2,
+ 77, 78, 78, 79, 86, 87, 99, 100, 108, 108
+ };
+
+ for (i = 0; i < array_length (locales); i++)
+ for (j = 0; j < array_length (formats); j++)
+ for (k = 0; k < array_length (dates); k++)
+ {
+ if (i == ja_JP)
+ {
+ era = (is_before (k, 30, 7, 1912)) ? "\u660e\u6cbb"
+ : (is_before (k, 25, 12, 1926)) ? "\u5927\u6b63"
+ : (is_before (k, 8, 1, 1989)) ? "\u662d\u548c"
+ : (is_before (k, 1, 5, 2019)) ? "\u5e73\u6210"
+ : "\u4ee4\u548c";
+ yr = yrj[k], sfx = "\u5e74";
+ }
+ else if (i == lo_LA)
+ era = "\u0e9e.\u0eaa. ", yr = yrb[k], sfx = "";
+ else if (i == th_TH)
+ era = "\u0e1e.\u0e28. ", yr = yrb[k], sfx = "";
+ else if (i == zh_TW || i == cmn_TW || i == hak_TW
+ || i == nan_TW || i == lzh_TW)
+ {
+ era = (is_before (k, 1, 1, 1912)) ? "\u6c11\u524d"
+ : "\u6c11\u570b";
+ yr = yrc[k], sfx = "\u5e74";
+ }
+ else
+ FAIL_EXIT1 ("Invalid table index!");
+ if (yr == 1)
+ sprintf (ref[i][j][k], "%s\u5143%s", era, sfx);
+ else if (j == 0)
+ sprintf (ref[i][j][k], "%s%02d%s", era, abs (yr), sfx);
+ else if (j == 1)
+ sprintf (ref[i][j][k], "%s%2d%s", era, abs (yr), sfx);
+ else if (j == 2)
+ sprintf (ref[i][j][k], "%s%d%s", era, abs (yr), sfx);
+ else
+ FAIL_EXIT1 ("Invalid table index!");
+ }
+}
+
+static int
+do_test (void)
+{
+ int i, j, k, result = 0;
+ struct tm ttm;
+ char date[11], buf[100];
+ size_t r, e;
+
+ mkreftable ();
+ for (i = 0; i < array_length (locales); i++)
+ {
+ if (setlocale (LC_ALL, locales[i]) == NULL)
+ {
+ printf ("locale %s does not exist, skipping...\n", locales[i]);
+ continue;
+ }
+ printf ("[%s]\n", locales[i]);
+ for (j = 0; j < array_length (formats); j++)
+ {
+ for (k = 0; k < array_length (dates); k++)
+ {
+ ttm.tm_mday = dates[k].d;
+ ttm.tm_mon = dates[k].m - 1;
+ ttm.tm_year = dates[k].y - 1900;
+ strftime (date, sizeof (date), "%F", &ttm);
+ r = strftime (buf, sizeof (buf), formats[j], &ttm);
+ e = strlen (ref[i][j][k]);
+ printf ("%s\t\"%s\"\t\"%s\"", date, formats[j], buf);
+ if (strcmp (buf, ref[i][j][k]) != 0)
+ {
+ printf ("\tshould be \"%s\"", ref[i][j][k]);
+ if (r != e)
+ printf ("\tgot: %zu, expected: %zu", r, e);
+ result = 1;
+ }
+ else
+ printf ("\tOK");
+ putchar ('\n');
+ }
+ putchar ('\n');
+ }
+ }
+ return result;
+}
+
+#include <support/test-driver.c>
diff --git a/time/tst-strftime3.c b/time/tst-strftime3.c
new file mode 100644
index 0000000000..a91f000797
--- /dev/null
+++ b/time/tst-strftime3.c
@@ -0,0 +1,522 @@
+/* Data-driven tests for strftime/strptime.
+ 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; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <locale.h>
+#include <wchar.h>
+
+#include <support/check.h>
+#include <array_length.h>
+#include <libc-diag.h>
+
+/* These exist for the convenience of writing the test data, because
+ zero-based vs one-based. */
+typedef enum
+ {
+ Sun, Mon, Tue, Wed, Thu, Fri, Sat
+ } WeekDay;
+
+typedef enum
+ {
+ Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec
+ } Month;
+
+typedef struct
+{
+ /* A descriptive name of the test. */
+ const char *name;
+
+ /* The specific date and time to be tested. */
+ int y, m, d;
+ WeekDay w;
+ int hh, mm, ss;
+
+ /* The locale under which the conversion is done. */
+ const char *locale;
+
+ /* Format passed to strftime. */
+ const char *format;
+
+ /* Expected data, NUL terminated. */
+ const char *printed;
+
+} Data;
+
+/* Notes:
+
+ Years are full 4-digit years, the code compensates. Likewise,
+ use month and weekday enums (above) which are zero-based.
+
+ The encoded strings are multibyte strings in the C locale which
+ reflect the same binary data as the expected strings. When you run
+ the test, the strings are printed as-is to stdout, so if your
+ terminal is set for the correct encoding, they'll be printed
+ "correctly". Put the Unicode codes and UTF-8 samples in the
+ comments.
+
+ For convenience, mis-matched strings are printed in
+ paste-compatible format, raw text format, and Unicode format. Use
+ "" between a hex escape sequence (like \xe8) and a following hex
+ digit which should be considered as a printable character.
+
+ To verify text, save the correct text in a file, and use "od -tx1
+ -tc file" to see the raw hex values. */
+
+const Data data[] = {
+
+ { "Baseline test",
+ 2019, Mar, 27, Wed, 14, 3, 22, "en_US.ISO-8859-1", "%Y-%m-%d %T",
+ "2019-03-27 14:03:22" },
+
+
+ { "Japanese era change, BCE/CE, before transition",
+ 0, Dec, 31, Sun, 12, 00, 00, "ja_JP.UTF-8", "%EY",
+ /* <U7D00><U5143><U524D>01<U5E74> 紀元å‰01å¹´ */
+ "\xe7\xb4\x80\xe5\x85\x83\xe5\x89\x8d""01\xe5\xb9\xb4" },
+ { "Japanese era change, BCE/CE, after transition",
+ 1, Jan, 1, Mon, 12, 00, 00, "ja_JP.UTF-8", "%EY",
+ /* <U897F><U66A6>01<U5E74> 西暦01年 */
+ "\xe8\xa5\xbf\xe6\x9a\xa6""01\xe5\xb9\xb4" },
+
+ { "Japanese era change, BCE/CE, before transition",
+ 0, Dec, 31, Sun, 12, 00, 00, "ja_JP.EUC-JP", "%EY",
+ /* <U7D00><U5143><U524D>01<U5E74> 紀元å‰01å¹´ */
+ "\xb5\xaa\xb8\xb5\xc1\xb0""01\xc7\xaf" },
+ { "Japanese era change, BCE/CE, after transition",
+ 1, Jan, 1, Mon, 12, 00, 00, "ja_JP.EUC-JP", "%EY",
+ /* <U897F><U66A6>01<U5E74> 西暦01年 */
+ "\xc0\xbe\xce\xf1""01\xc7\xaf" },
+
+
+ { "Japanese era change, 1873, before transition",
+ 1872, Dec, 31, Tue, 12, 00, 00, "ja_JP.UTF-8", "%EY",
+ /* <U897F><U66A6>1872<U5E74> 西暦1872年 */
+ "\xe8\xa5\xbf\xe6\x9a\xa6""1872\xe5\xb9\xb4" },
+ { "Japanese era change, 1873, after transition",
+ 1873, Jan, 1, Wed, 12, 00, 00, "ja_JP.UTF-8", "%EY",
+ /* <U660E><U6CBB>06<U5E74> 明治06年 */
+ "\xe6\x98\x8e\xe6\xb2\xbb""06\xe5\xb9\xb4" },
+
+
+ { "Japanese era change, 1873, before transition",
+ 1872, Dec, 31, Tue, 12, 00, 00, "ja_JP.EUC-JP", "%EY",
+ /* <U897F><U66A6>1872<U5E74> 西暦1872年 */
+ "\xc0\xbe\xce\xf1""1872\xc7\xaf" },
+ { "Japanese era change, 1873, after transition",
+ 1873, Jan, 1, Wed, 12, 00, 00, "ja_JP.EUC-JP", "%EY",
+ /* <U660E><U6CBB>06<U5E74> 明治06年 */
+ "\xcc\xc0\xbc\xa3""06\xc7\xaf" },
+
+
+ { "Japanese era change, 1912, before transition year",
+ 1911, Dec, 31, Sun, 12, 00, 00, "ja_JP.UTF-8", "%EY",
+ /* <U660E><U6CBB>44<U5E74> 明治44年 */
+ "\xe6\x98\x8e\xe6\xb2\xbb""44\xe5\xb9\xb4" },
+ { "Japanese era change, 1912, start of transition year",
+ 1912, Jan, 1, Mon, 12, 00, 00, "ja_JP.UTF-8", "%EY",
+ /* <U660E><U6CBB>45<U5E74> 明治45年 */
+ "\xe6\x98\x8e\xe6\xb2\xbb""45\xe5\xb9\xb4" },
+
+ { "Japanese era change, 1912, before transition",
+ 1912, Jul, 29, Mon, 12, 00, 00, "ja_JP.UTF-8", "%EY",
+ /* <U660E><U6CBB>45<U5E74> 明治45年 */
+ "\xe6\x98\x8e\xe6\xb2\xbb""45\xe5\xb9\xb4" },
+ { "Japanese era change, 1912, after transition",
+ 1912, Jul, 30, Tue, 12, 00, 00, "ja_JP.UTF-8", "%EY",
+ /* <U5927><U6B63><U5143><U5E74> 大正元年 */
+ "\xe5\xa4\xa7\xe6\xad\xa3\xe5\x85\x83\xe5\xb9\xb4" },
+
+ { "Japanese era change, 1912, before end of transition year",
+ 1912, Dec, 31, Tue, 12, 00, 00, "ja_JP.UTF-8", "%EY",
+ /* <U5927><U6B63><U5143><U5E74> 大正元年 */
+ "\xe5\xa4\xa7\xe6\xad\xa3\xe5\x85\x83\xe5\xb9\xb4" },
+ { "Japanese era change, 1912, after transition year",
+ 1913, Jan, 1, Wed, 12, 00, 00, "ja_JP.UTF-8", "%EY",
+ /* <U5927><U6B63>02<U5E74> 大正02年 */
+ "\xe5\xa4\xa7\xe6\xad\xa3""02\xe5\xb9\xb4" },
+
+
+ { "Japanese era change, 1912, before transition year",
+ 1911, Dec, 31, Sun, 12, 00, 00, "ja_JP.EUC-JP", "%EY",
+ /* <U660E><U6CBB>44<U5E74> 明治44年 */
+ "\xcc\xc0\xbc\xa3""44\xc7\xaf" },
+ { "Japanese era change, 1912, start of transition year",
+ 1912, Jan, 1, Mon, 12, 00, 00, "ja_JP.EUC-JP", "%EY",
+ /* <U660E><U6CBB>45<U5E74> 明治45年 */
+ "\xcc\xc0\xbc\xa3""45\xc7\xaf" },
+
+ { "Japanese era change, 1912, before transition",
+ 1912, Jul, 29, Mon, 12, 00, 00, "ja_JP.EUC-JP", "%EY",
+ /* <U660E><U6CBB>45<U5E74> 明治45年 */
+ "\xcc\xc0\xbc\xa3""45\xc7\xaf" },
+ { "Japanese era change, 1912, after transition",
+ 1912, Jul, 30, Tue, 12, 00, 00, "ja_JP.EUC-JP", "%EY",
+ /* <U5927><U6B63><U5143><U5E74> 大正元年 */
+ "\xc2\xe7\xc0\xb5\xb8\xb5\xc7\xaf" },
+
+ { "Japanese era change, 1912, before end of transition year",
+ 1912, Dec, 31, Tue, 12, 00, 00, "ja_JP.EUC-JP", "%EY",
+ /* <U5927><U6B63><U5143><U5E74> 大正元年 */
+ "\xc2\xe7\xc0\xb5\xb8\xb5\xc7\xaf" },
+ { "Japanese era change, 1912, after transition year",
+ 1913, Jan, 1, Wed, 12, 00, 00, "ja_JP.EUC-JP", "%EY",
+ /* <U5927><U6B63>02<U5E74> 大正02年 */
+ "\xc2\xe7\xc0\xb5""02\xc7\xaf" },
+
+
+ { "Japanese era change, 1926, before transition year",
+ 1925, Dec, 31, Thu, 12, 00, 00, "ja_JP.UTF-8", "%EY",
+ /* <U5927><U6B63>14<U5E74> 大正14年 */
+ "\xe5\xa4\xa7\xe6\xad\xa3""14\xe5\xb9\xb4" },
+ { "Japanese era change, 1926, start of transition year",
+ 1926, Jan, 1, Fri, 12, 00, 00, "ja_JP.UTF-8", "%EY",
+ /* <U5927><U6B63>15<U5E74> 大正15年 */
+ "\xe5\xa4\xa7\xe6\xad\xa3""15\xe5\xb9\xb4" },
+
+ { "Japanese era change, 1926, before transition",
+ 1926, Dec, 24, Fri, 12, 00, 00, "ja_JP.UTF-8", "%EY",
+ /* <U5927><U6B63>15<U5E74> 大正15年 */
+ "\xe5\xa4\xa7\xe6\xad\xa3""15\xe5\xb9\xb4" },
+ { "Japanese era change, 1926, after transition",
+ 1926, Dec, 25, Sat, 12, 00, 00, "ja_JP.UTF-8", "%EY",
+ /* <U662D><U548C><U5143><U5E74> 昭和元年 */
+ "\xe6\x98\xad\xe5\x92\x8c\xe5\x85\x83\xe5\xb9\xb4" },
+
+ { "Japanese era change, 1926, before end of transition year",
+ 1926, Dec, 31, Fri, 12, 00, 00, "ja_JP.UTF-8", "%EY",
+ /* <U662D><U548C><U5143><U5E74> 昭和元年 */
+ "\xe6\x98\xad\xe5\x92\x8c\xe5\x85\x83\xe5\xb9\xb4" },
+ { "Japanese era change, 1926, after transition year",
+ 1927, Jan, 1, Sat, 12, 00, 00, "ja_JP.UTF-8", "%EY",
+ /* <U662D><U548C>02<U5E74> 昭和02年 */
+ "\xe6\x98\xad\xe5\x92\x8c""02\xe5\xb9\xb4" },
+
+
+ { "Japanese era change, 1926, before transition year",
+ 1925, Dec, 31, Thu, 12, 00, 00, "ja_JP.EUC-JP", "%EY",
+ /* <U5927><U6B63>14<U5E74> 大正14年 */
+ "\xc2\xe7\xc0\xb5""14\xc7\xaf" },
+ { "Japanese era change, 1926, start of transition year",
+ 1926, Jan, 1, Fri, 12, 00, 00, "ja_JP.EUC-JP", "%EY",
+ /* <U5927><U6B63>15<U5E74> 大正15年 */
+ "\xc2\xe7\xc0\xb5""15\xc7\xaf" },
+
+ { "Japanese era change, 1926, before transition",
+ 1926, Dec, 24, Fri, 12, 00, 00, "ja_JP.EUC-JP", "%EY",
+ /* <U5927><U6B63>15<U5E74> 大正15年 */
+ "\xc2\xe7\xc0\xb5""15\xc7\xaf" },
+ { "Japanese era change, 1926, after transition",
+ 1926, Dec, 25, Sat, 12, 00, 00, "ja_JP.EUC-JP", "%EY",
+ /* <U662D><U548C><U5143><U5E74> 昭和元年 */
+ "\xbe\xbc\xcf\xc2\xb8\xb5\xc7\xaf" },
+
+ { "Japanese era change, 1926, before end of transition year",
+ 1926, Dec, 31, Fri, 12, 00, 00, "ja_JP.EUC-JP", "%EY",
+ /* <U662D><U548C><U5143><U5E74> 昭和元年 */
+ "\xbe\xbc\xcf\xc2\xb8\xb5\xc7\xaf" },
+ { "Japanese era change, 1926, after transition year",
+ 1927, Jan, 1, Sat, 12, 00, 00, "ja_JP.EUC-JP", "%EY",
+ /* <U662D><U548C>02<U5E74> 昭和02年 */
+ "\xbe\xbc\xcf\xc2""02\xc7\xaf" },
+
+
+ { "Japanese era change, 1989, before transition year",
+ 1988, Dec, 31, Sat, 12, 00, 00, "ja_JP.UTF-8", "%EY",
+ /* <U662D><U548C>63<U5E74> 昭和63年 */
+ "\xe6\x98\xad\xe5\x92\x8c""63\xe5\xb9\xb4" },
+ { "Japanese era change, 1989, start of transition year",
+ 1989, Jan, 1, Sun, 12, 00, 00, "ja_JP.UTF-8", "%EY",
+ /* <U662D><U548C>64<U5E74> 昭和64年 */
+ "\xe6\x98\xad\xe5\x92\x8c""64\xe5\xb9\xb4" },
+
+ { "Japanese era change, 1989, before transition",
+ 1989, Jan, 7, Sat, 12, 00, 00, "ja_JP.UTF-8", "%EY",
+ /* <U662D><U548C>64<U5E74> 昭和64年 */
+ "\xe6\x98\xad\xe5\x92\x8c""64\xe5\xb9\xb4" },
+ { "Japanese era change, 1989, after transition",
+ 1989, Jan, 8, Sun, 12, 00, 00, "ja_JP.UTF-8", "%EY",
+ /* <U5E73><U6210><U5143><U5E74> å¹³æˆå…ƒå¹´ */
+ "\xe5\xb9\xb3\xe6\x88\x90\xe5\x85\x83\xe5\xb9\xb4" },
+
+ { "Japanese era change, 1989, end of transition year",
+ 1989, Dec, 31, Sun, 12, 00, 00, "ja_JP.UTF-8", "%EY",
+ /* <U5E73><U6210><U5143><U5E74> å¹³æˆå…ƒå¹´ */
+ "\xe5\xb9\xb3\xe6\x88\x90\xe5\x85\x83\xe5\xb9\xb4" },
+ { "Japanese era change, 1989, after transition year",
+ 1990, Jan, 1, Mon, 12, 00, 00, "ja_JP.UTF-8", "%EY",
+ /* <U5E73><U6210>02<U5E74> å¹³æˆ02å¹´ */
+ "\xe5\xb9\xb3\xe6\x88\x90""02\xe5\xb9\xb4" },
+
+
+ { "Japanese era change, 1989, before transition year",
+ 1988, Dec, 31, Sat, 12, 00, 00, "ja_JP.EUC-JP", "%EY",
+ /* <U662D><U548C>63<U5E74> 昭和63年 */
+ "\xbe\xbc\xcf\xc2""63\xc7\xaf" },
+ { "Japanese era change, 1989, start of transition year",
+ 1989, Jan, 1, Sun, 12, 00, 00, "ja_JP.EUC-JP", "%EY",
+ /* <U662D><U548C>64<U5E74> 昭和64年 */
+ "\xbe\xbc\xcf\xc2""64\xc7\xaf" },
+
+ { "Japanese era change, 1989, before transition",
+ 1989, Jan, 7, Sat, 12, 00, 00, "ja_JP.EUC-JP", "%EY",
+ /* <U662D><U548C>64<U5E74> 昭和64年 */
+ "\xbe\xbc\xcf\xc2""64\xc7\xaf" },
+ { "Japanese era change, 1989, after transition",
+ 1989, Jan, 8, Sun, 12, 00, 00, "ja_JP.EUC-JP", "%EY",
+ /* <U5E73><U6210><U5143><U5E74> å¹³æˆå…ƒå¹´ */
+ "\xca\xbf\xc0\xae\xb8\xb5\xc7\xaf" },
+
+ { "Japanese era change, 1989, end of transition year",
+ 1989, Dec, 31, Sun, 12, 00, 00, "ja_JP.EUC-JP", "%EY",
+ /* <U5E73><U6210><U5143><U5E74> å¹³æˆå…ƒå¹´ */
+ "\xca\xbf\xc0\xae\xb8\xb5\xc7\xaf" },
+ { "Japanese era change, 1989, after transition year",
+ 1990, Jan, 1, Mon, 12, 00, 00, "ja_JP.EUC-JP", "%EY",
+ /* <U5E73><U6210>02<U5E74> å¹³æˆ02å¹´ */
+ "\xca\xbf\xc0\xae""02\xc7\xaf" },
+
+
+ { "Japanese era change, 2019, before transition year",
+ 2018, Dec, 31, Mon, 12, 00, 00, "ja_JP.UTF-8", "%EY",
+ /* <U5E73><U6210>30<U5E74> 昭和30年 */
+ "\xe5\xb9\xb3\xe6\x88\x90""30\xe5\xb9\xb4" },
+ { "Japanese era change, 2019, start of transition year",
+ 2019, Jan, 1, Tue, 12, 00, 00, "ja_JP.UTF-8", "%EY",
+ /* <U5E73><U6210>30<U5E74> 昭和31年 */
+ "\xe5\xb9\xb3\xe6\x88\x90""31\xe5\xb9\xb4" },
+
+ { "Japanese era change, 2019, before transition",
+ 2019, Apr, 30, Tue, 12, 00, 00, "ja_JP.UTF-8", "%EY",
+ /* <U5E73><U6210>30<U5E74> 昭和31年 */
+ "\xe5\xb9\xb3\xe6\x88\x90""31\xe5\xb9\xb4" },
+ { "Japanese era change, 2019, after transition",
+ 2019, May, 1, Wed, 12, 00, 00, "ja_JP.UTF-8", "%EY",
+ /* <U4EE4><U548C><U5143><U5E74> 令和元年 */
+ "\xe4\xbb\xa4\xe5\x92\x8c\xe5\x85\x83\xe5\xb9\xb4" },
+
+ { "Japanese era change, 2019, end of transition year",
+ 2019, Dec, 31, Tue, 12, 00, 00, "ja_JP.UTF-8", "%EY",
+ /* <U4EE4><U548C><U5143><U5E74> 令和元年 */
+ "\xe4\xbb\xa4\xe5\x92\x8c\xe5\x85\x83\xe5\xb9\xb4" },
+ { "Japanese era change, 2019, after transition year",
+ 2020, Jan, 1, Wed, 12, 00, 00, "ja_JP.UTF-8", "%EY",
+ /* <U4EE4><U548C>02<U5E74> 令和02年 */
+ "\xe4\xbb\xa4\xe5\x92\x8c""02\xe5\xb9\xb4" },
+
+
+ { "Japanese era change, 2019, before transition year",
+ 2018, Dec, 31, Mon, 12, 00, 00, "ja_JP.EUC-JP", "%EY",
+ /* <U5E73><U6210>30<U5E74> 昭和30年 */
+ "\xca\xbf\xc0\xae""30\xc7\xaf" },
+ { "Japanese era change, 2019, start of transition year",
+ 2019, Jan, 1, Tue, 12, 00, 00, "ja_JP.EUC-JP", "%EY",
+ /* <U5E73><U6210>30<U5E74> 昭和31年 */
+ "\xca\xbf\xc0\xae""31\xc7\xaf" },
+
+ { "Japanese era change, 2019, before transition",
+ 2019, Apr, 30, Tue, 12, 00, 00, "ja_JP.EUC-JP", "%EY",
+ /* <U5E73><U6210>30<U5E74> 昭和31年 */
+ "\xca\xbf\xc0\xae""31\xc7\xaf" },
+ { "Japanese era change, 2019, after transition",
+ 2019, May, 1, Wed, 12, 00, 00, "ja_JP.EUC-JP", "%EY",
+ /* <U4EE4><U548C><U5143><U5E74> 令和元年 */
+ "\xce\xe1\xcf\xc2\xb8\xb5\xc7\xaf" },
+
+ { "Japanese era change, 2019, end of transition year",
+ 2019, Dec, 31, Tue, 12, 00, 00, "ja_JP.EUC-JP", "%EY",
+ /* <U4EE4><U548C><U5143><U5E74> 令和元年 */
+ "\xce\xe1\xcf\xc2\xb8\xb5\xc7\xaf" },
+ { "Japanese era change, 2019, after transition year",
+ 2020, Jan, 1, Wed, 12, 00, 00, "ja_JP.EUC-JP", "%EY",
+ /* <U4EE4><U548C>02<U5E74> 令和02年 */
+ "\xce\xe1\xcf\xc2""02\xc7\xaf" },
+};
+
+#define NDATA array_length(data)
+
+/* Size of buffer passed to strftime. */
+#define STRBUFLEN 1000
+/* Size of buffer passed to tm_to_printed. */
+#define TMBUFLEN 50
+
+/* Helper function to compare strings and print out mismatches in a
+ format suitable for maintaining this test. TEST_COMPARE_STRINGS
+ prints out a less suitable format. */
+
+static void
+print_string_hex (const char *header, const char *str)
+{
+ int tictoc = 0;
+ const char *s = str;
+ wchar_t w[STRBUFLEN];
+ size_t i, wlen;
+
+ printf ("%s : ", header);
+
+ if (str == NULL)
+ {
+ printf ("<NULL>\n");
+ return;
+ }
+
+ while (*s)
+ {
+ /* isgraph equivalent, but independent of current locale. */
+ if (' ' <= *s && *s <= '~')
+ putchar (*s);
+ else
+ {
+ if (tictoc)
+ printf ("\033[36m");
+ else
+ printf ("\033[31m");
+ tictoc = ! tictoc;
+
+ printf ("\\x%02x\033[0m", (unsigned char) *s);
+ }
+
+ ++ s;
+ }
+ printf (" - %s\n", str);
+
+ s = str;
+ wlen = mbsrtowcs (w, &s, strlen (s), NULL);
+ printf ("%*s", (int) strlen (header) + 3, " ");
+ for (i = 0; i < wlen && i < strlen (str); i ++)
+ {
+ if (' ' <= w[i] && w[i] <= '~')
+ putchar (w[i]);
+ else
+ printf ("<U%04X>", (int) w[i]);
+ }
+ printf ("\n");
+}
+
+static void
+compare_strings (const char *got, const char *expected,
+ const char *filename, int lineno)
+{
+ if (got && expected && strcmp (got, expected) == 0)
+ return;
+ support_record_failure ();
+ printf ("%s:%d: error: strftime output incorrect\n", filename, lineno);
+ print_string_hex ("Got", got);
+ print_string_hex ("Exp", expected);
+}
+#define COMPARE_STRINGS(g,e) compare_strings (g, e, __FILE__, __LINE__)
+
+const char *weekday_name[] = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri",
+ "Sat" };
+
+/* Helper function to create a printable version of struct tm. */
+static void
+tm_to_printed (struct tm *tm, char *buffer)
+{
+ const char *wn;
+ char temp[50];
+
+ if (0 <= tm->tm_wday && tm->tm_wday <= 6)
+ wn = weekday_name[tm->tm_wday];
+ else
+ {
+ wn = temp;
+ sprintf (temp, "%d", tm->tm_wday);
+ }
+
+ DIAG_PUSH_NEEDS_COMMENT;
+#if __GNUC_PREREQ (9, 0)
+ /* GCC 9 warns that strncmp may truncate its output, but that's why
+ we're using it. When it needs to truncate, it got corrupted
+ data, and we only care that the string is different than valid
+ data, which won't truncate. */
+ DIAG_IGNORE_NEEDS_COMMENT (9, "-Wformat-truncation=");
+#endif
+ snprintf (buffer, TMBUFLEN, "%04d/%02d/%02d %02d:%02d:%02d %s",
+ tm->tm_year + 1900,
+ tm->tm_mon + 1,
+ tm->tm_mday,
+ tm->tm_hour,
+ tm->tm_min,
+ tm->tm_sec,
+ wn);
+ DIAG_POP_NEEDS_COMMENT;
+}
+
+static int
+do_test (void)
+{
+ int i;
+ char buffer[STRBUFLEN];
+ char expected_time[TMBUFLEN];
+ char got_time[TMBUFLEN];
+
+ for (i = 0; i < NDATA; i ++)
+ {
+ const Data *d = &(data[i]);
+ struct tm tm;
+ struct tm tm2;
+ size_t rv;
+ char *rvp;
+
+ /* Print this just to help debug failures. */
+ printf ("%s:\n\t%s %s %s\n", d->name, d->locale, d->format, d->printed);
+
+ tm.tm_year = d->y - 1900;
+ tm.tm_mon = d->m;
+ tm.tm_mday = d->d;
+ tm.tm_wday = d->w;
+ tm.tm_hour = d->hh;
+ tm.tm_min = d->mm;
+ tm.tm_sec = d->ss;
+ tm.tm_isdst = -1;
+
+ /* LC_ALL may interfere with the snprintf in tm_to_printed. */
+ if (setlocale (LC_TIME, d->locale) == NULL)
+ {
+ /* See the LOCALES list in the Makefile. */
+ printf ("locale %s does not exist!\n", d->locale);
+ exit (EXIT_FAILURE);
+ }
+ /* This is just for printing wide characters if there's an error. */
+ setlocale (LC_CTYPE, d->locale);
+
+ rv = strftime (buffer, sizeof (buffer), d->format, &tm);
+
+ TEST_COMPARE (rv, strlen (d->printed));
+ COMPARE_STRINGS (buffer, d->printed);
+
+ /* Copy the original time, so that any fields not affected by
+ the call to strptime will match. */
+ tm2 = tm;
+
+ rvp = strptime (d->printed, d->format, &tm2);
+
+ TEST_COMPARE_STRING (rvp, "");
+
+ tm_to_printed (&tm, expected_time);
+ tm_to_printed (&tm2, got_time);
+ TEST_COMPARE_STRING (got_time, expected_time);
+ }
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/time/tst-strptime-whitespace.c b/time/tst-strptime-whitespace.c
index 6cfcc2f806..e920aa5a2b 100644
--- a/time/tst-strptime-whitespace.c
+++ b/time/tst-strptime-whitespace.c
@@ -1,6 +1,6 @@
/* Verify that strptime accepts arbitrary whitespace between tokens.
- Copyright (C) 2013-2018 Free Software Foundation, Inc.
+ Copyright (C) 2013-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _XOPEN_SOURCE
#include <time.h>
diff --git a/time/tst-strptime.c b/time/tst-strptime.c
index 441e04b454..b354a9fd84 100644
--- a/time/tst-strptime.c
+++ b/time/tst-strptime.c
@@ -1,5 +1,5 @@
/* Test for strptime.
- Copyright (C) 1998-2018 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <locale.h>
#include <stdio.h>
diff --git a/time/tst-tzname.c b/time/tst-tzname.c
index f3c3757060..cd619ebb46 100644
--- a/time/tst-tzname.c
+++ b/time/tst-tzname.c
@@ -1,5 +1,5 @@
/* Test that tzset sets tzname correctly (BZ #19253).
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
diff --git a/time/tst-y2039.c b/time/tst-y2039.c
index cdc6bca54b..fd40aeef18 100644
--- a/time/tst-y2039.c
+++ b/time/tst-y2039.c
@@ -1,5 +1,5 @@
/* Test for localtime bug in year 2039 (bug 22639).
- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <time.h>
#include <stdlib.h>
diff --git a/time/tst_wcsftime.c b/time/tst_wcsftime.c
index 3f6f0d9f77..55c45f6a81 100644
--- a/time/tst_wcsftime.c
+++ b/time/tst_wcsftime.c
@@ -10,7 +10,7 @@ main (int argc, char *argv[])
int result = 0;
size_t n;
- time (&t);
+ t = time (NULL);
tp = gmtime (&t);
n = wcsftime (buf, sizeof (buf) / sizeof (buf[0]),
diff --git a/time/tzfile.c b/time/tzfile.c
index 2a385b92bc..7383ae55eb 100644
--- a/time/tzfile.c
+++ b/time/tzfile.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <limits.h>
@@ -25,6 +25,7 @@
#include <unistd.h>
#include <sys/stat.h>
#include <stdint.h>
+#include <alloc_buffer.h>
#include <timezone/tzfile.h>
@@ -35,7 +36,7 @@ static time_t tzfile_mtime;
struct ttinfo
{
- long int offset; /* Seconds east of GMT. */
+ int offset; /* Seconds east of GMT. */
unsigned char isdst; /* Used to set tm_isdst. */
unsigned char idx; /* Index into `zone_names'. */
unsigned char isstd; /* Transition times are in standard time. */
@@ -44,12 +45,12 @@ struct ttinfo
struct leap
{
- internal_time_t transition; /* Time the transition takes effect. */
+ __time64_t transition; /* Time the transition takes effect. */
long int change; /* Seconds of correction to apply. */
};
static size_t num_transitions;
-libc_freeres_ptr (static internal_time_t *transitions);
+libc_freeres_ptr (static __time64_t *transitions);
static unsigned char *type_idxs;
static size_t num_types;
static struct ttinfo *types;
@@ -105,16 +106,12 @@ __tzfile_read (const char *file, size_t extra, char **extrap)
struct tzhead tzhead;
size_t chars;
size_t i;
- size_t total_size;
- size_t types_idx;
- size_t leaps_idx;
int was_using_tzfile = __use_tzfile;
int trans_width = 4;
- size_t tzspec_len;
char *new = NULL;
- _Static_assert (sizeof (internal_time_t) == 8,
- "internal_time_t must be eight bytes");
+ _Static_assert (sizeof (__time64_t) == 8,
+ "__time64_t must be eight bytes");
__use_tzfile = 0;
@@ -168,10 +165,7 @@ __tzfile_read (const char *file, size_t extra, char **extrap)
/* Get information about the file we are actually using. */
if (fstat64 (__fileno (f), &st) != 0)
- {
- fclose (f);
- goto ret_free_transitions;
- }
+ goto lose;
free ((void *) transitions);
transitions = NULL;
@@ -218,32 +212,9 @@ __tzfile_read (const char *file, size_t extra, char **extrap)
goto read_again;
}
- if (__builtin_expect (num_transitions
- > ((SIZE_MAX - (__alignof__ (struct ttinfo) - 1))
- / (sizeof (internal_time_t) + 1)), 0))
- goto lose;
- total_size = num_transitions * (sizeof (internal_time_t) + 1);
- total_size = ((total_size + __alignof__ (struct ttinfo) - 1)
- & ~(__alignof__ (struct ttinfo) - 1));
- types_idx = total_size;
- if (__builtin_expect (num_types
- > (SIZE_MAX - total_size) / sizeof (struct ttinfo), 0))
- goto lose;
- total_size += num_types * sizeof (struct ttinfo);
- if (__glibc_unlikely (chars > SIZE_MAX - total_size))
- goto lose;
- total_size += chars;
- if (__builtin_expect (__alignof__ (struct leap) - 1
- > SIZE_MAX - total_size, 0))
- goto lose;
- total_size = ((total_size + __alignof__ (struct leap) - 1)
- & ~(__alignof__ (struct leap) - 1));
- leaps_idx = total_size;
- if (__builtin_expect (num_leaps
- > (SIZE_MAX - total_size) / sizeof (struct leap), 0))
- goto lose;
- total_size += num_leaps * sizeof (struct leap);
- tzspec_len = 0;
+ /* Compute the size of the POSIX time zone specification in the
+ file. */
+ size_t tzspec_len;
if (trans_width == 8)
{
off_t rem = st.st_size - __ftello (f);
@@ -265,47 +236,70 @@ __tzfile_read (const char *file, size_t extra, char **extrap)
if (__glibc_unlikely (tzspec_len == 0 || tzspec_len - 1 < num_isgmt))
goto lose;
tzspec_len -= num_isgmt + 1;
- if (__glibc_unlikely (tzspec_len == 0
- || SIZE_MAX - total_size < tzspec_len))
+ if (tzspec_len == 0)
goto lose;
}
- if (__glibc_unlikely (SIZE_MAX - total_size - tzspec_len < extra))
- goto lose;
-
- /* Allocate enough memory including the extra block requested by the
- caller. */
- transitions = malloc (total_size + tzspec_len + extra);
- if (transitions == NULL)
- goto lose;
-
- type_idxs = (unsigned char *) transitions + (num_transitions
- * sizeof (internal_time_t));
- types = (struct ttinfo *) ((char *) transitions + types_idx);
- zone_names = (char *) types + num_types * sizeof (struct ttinfo);
- leaps = (struct leap *) ((char *) transitions + leaps_idx);
+ else
+ tzspec_len = 0;
+
+ /* The file is parsed into a single heap allocation, comprising of
+ the following arrays:
+
+ __time64_t transitions[num_transitions];
+ struct leap leaps[num_leaps];
+ struct ttinfo types[num_types];
+ unsigned char type_idxs[num_types];
+ char zone_names[chars];
+ char tzspec[tzspec_len];
+ char extra_array[extra]; // Stored into *pextras if requested.
+
+ The piece-wise allocations from buf below verify that no
+ overflow/wraparound occurred in these computations.
+
+ The order of the suballocations is important for alignment
+ purposes. __time64_t outside a struct may require more alignment
+ then inside a struct on some architectures, so it must come
+ first. */
+ _Static_assert (__alignof (__time64_t) >= __alignof (struct leap),
+ "alignment of __time64_t");
+ _Static_assert (__alignof (struct leap) >= __alignof (struct ttinfo),
+ "alignment of struct leap");
+ struct alloc_buffer buf;
+ {
+ size_t total_size = (num_transitions * sizeof (__time64_t)
+ + num_leaps * sizeof (struct leap)
+ + num_types * sizeof (struct ttinfo)
+ + num_transitions /* type_idxs */
+ + chars /* zone_names */
+ + tzspec_len + extra);
+ transitions = malloc (total_size);
+ if (transitions == NULL)
+ goto lose;
+ buf = alloc_buffer_create (transitions, total_size);
+ }
+
+ /* The address of the first allocation is already stored in the
+ pointer transitions. */
+ (void) alloc_buffer_alloc_array (&buf, __time64_t, num_transitions);
+ leaps = alloc_buffer_alloc_array (&buf, struct leap, num_leaps);
+ types = alloc_buffer_alloc_array (&buf, struct ttinfo, num_types);
+ type_idxs = alloc_buffer_alloc_array (&buf, unsigned char, num_transitions);
+ zone_names = alloc_buffer_alloc_array (&buf, char, chars);
if (trans_width == 8)
- tzspec = (char *) leaps + num_leaps * sizeof (struct leap) + extra;
+ tzspec = alloc_buffer_alloc_array (&buf, char, tzspec_len);
else
tzspec = NULL;
if (extra > 0)
- *extrap = (char *) &leaps[num_leaps];
+ *extrap = alloc_buffer_alloc_array (&buf, char, extra);
+ if (alloc_buffer_has_failed (&buf))
+ goto lose;
- if (__builtin_expect (trans_width == 8, 1))
- {
- if (__builtin_expect (__fread_unlocked (transitions, trans_width + 1,
- num_transitions, f)
- != num_transitions, 0))
+ if (__glibc_unlikely (__fread_unlocked (transitions, trans_width,
+ num_transitions, f)
+ != num_transitions)
+ || __glibc_unlikely (__fread_unlocked (type_idxs, 1, num_transitions, f)
+ != num_transitions))
goto lose;
- }
- else
- {
- if (__builtin_expect (__fread_unlocked (transitions, 4,
- num_transitions, f)
- != num_transitions, 0)
- || __builtin_expect (__fread_unlocked (type_idxs, 1, num_transitions,
- f) != num_transitions, 0))
- goto lose;
- }
/* Check for bogus indices in the data file, so we can hereafter
safely use type_idxs[T] as indices into `types' and never crash. */
@@ -348,7 +342,7 @@ __tzfile_read (const char *file, size_t extra, char **extrap)
/* Bogus index in data file. */
goto lose;
types[i].idx = c;
- types[i].offset = (long int) decode (x);
+ types[i].offset = decode (x);
}
if (__glibc_unlikely (__fread_unlocked (zone_names, 1, chars, f) != chars))
@@ -393,6 +387,7 @@ __tzfile_read (const char *file, size_t extra, char **extrap)
/* Read the POSIX TZ-style information if possible. */
if (tzspec != NULL)
{
+ assert (tzspec_len > 0);
/* Skip over the newline first. */
if (__getc_unlocked (f) != '\n'
|| (__fread_unlocked (tzspec, 1, tzspec_len - 1, f)
@@ -410,7 +405,8 @@ __tzfile_read (const char *file, size_t extra, char **extrap)
/* First "register" all timezone names. */
for (i = 0; i < num_types; ++i)
- (void) __tzstring (&zone_names[types[i].idx]);
+ if (__tzstring (&zone_names[types[i].idx]) == NULL)
+ goto ret_free_transitions;
/* Find the standard and daylight time offsets used by the rule file.
We choose the offsets in the types of each flavor that are
@@ -493,7 +489,7 @@ __tzfile_read (const char *file, size_t extra, char **extrap)
void
__tzfile_default (const char *std, const char *dst,
- long int stdoff, long int dstoff)
+ int stdoff, int dstoff)
{
size_t stdlen = strlen (std) + 1;
size_t dstlen = strlen (dst) + 1;
@@ -580,7 +576,7 @@ __tzfile_default (const char *std, const char *dst,
}
void
-__tzfile_compute (internal_time_t timer, int use_localtime,
+__tzfile_compute (__time64_t timer, int use_localtime,
long int *leap_correct, int *leap_hit,
struct tm *tp)
{
@@ -635,16 +631,10 @@ __tzfile_compute (internal_time_t timer, int use_localtime,
/* Convert to broken down structure. If this fails do not
use the string. */
- {
- time_t truncated = timer;
- if (__glibc_unlikely (truncated != timer
- || ! __offtime (&truncated, 0, tp)))
- goto use_last;
- }
-
- /* Use the rules from the TZ string to compute the change.
- timer fits into time_t due to the truncation check
- above. */
+ if (__glibc_unlikely (! __offtime (timer, 0, tp)))
+ goto use_last;
+
+ /* Use the rules from the TZ string to compute the change. */
__tz_compute (timer, tp, 1);
/* If tzspec comes from posixrules loaded by __tzfile_default,
@@ -669,7 +659,7 @@ __tzfile_compute (internal_time_t timer, int use_localtime,
initial search spot from it. Half of a gregorian year
has on average 365.2425 * 86400 / 2 = 15778476 seconds.
The value i can be truncated if size_t is smaller than
- internal_time_t, but this is harmless because it is just
+ __time64_t, but this is harmless because it is just
a guess. */
i = (transitions[num_transitions - 1] - timer) / 15778476;
if (i < num_transitions)
@@ -774,9 +764,9 @@ __tzfile_compute (internal_time_t timer, int use_localtime,
/* Apply its correction. */
*leap_correct = leaps[i].change;
- if (timer == leaps[i].transition && /* Exactly at the transition time. */
- ((i == 0 && leaps[i].change > 0) ||
- leaps[i].change > leaps[i - 1].change))
+ if (timer == leaps[i].transition /* Exactly at the transition time. */
+ && ((i == 0 && leaps[i].change > 0)
+ || leaps[i].change > leaps[i - 1].change))
{
*leap_hit = 1;
while (i > 0
diff --git a/time/tzset.c b/time/tzset.c
index a828b9fb75..bf65d3c95a 100644
--- a/time/tzset.c
+++ b/time/tzset.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -13,10 +13,9 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
-#include <errno.h>
#include <libc-lock.h>
#include <stdbool.h>
#include <stddef.h>
@@ -27,7 +26,7 @@
#include <timezone/tzfile.h>
-#define SECSPERDAY ((time_t) 86400)
+#define SECSPERDAY ((__time64_t) 86400)
char *__tzname[2] = { (char *) "GMT", (char *) "GMT" };
int __daylight = 0;
@@ -51,11 +50,11 @@ typedef struct
unsigned short int m, n, d; /* Month, week, day. */
int secs; /* Time of day. */
- long int offset; /* Seconds east of GMT (west if < 0). */
+ int offset; /* Seconds east of GMT (west if < 0). */
/* We cache the computed time of change for a
given year so we don't have to recompute it. */
- time_t change; /* When to change to this zone. */
+ __time64_t change; /* When to change to this zone. */
int computed_for; /* Year above is computed for. */
} tz_rule;
@@ -194,11 +193,11 @@ parse_offset (const char **tzp, int whichrule)
&& (*tz == '\0' || (*tz != '+' && *tz != '-' && !isdigit (*tz))))
return false;
- long sign;
+ int sign;
if (*tz == '-' || *tz == '+')
- sign = *tz++ == '-' ? 1L : -1L;
+ sign = *tz++ == '-' ? 1 : -1;
else
- sign = -1L;
+ sign = -1;
*tzp = tz;
unsigned short int hh;
@@ -416,7 +415,7 @@ tzset_internal (int always)
tz_rules[0].name = tz_rules[1].name = "UTC";
if (J0 != 0)
tz_rules[0].type = tz_rules[1].type = J0;
- tz_rules[0].change = tz_rules[1].change = (time_t) -1;
+ tz_rules[0].change = tz_rules[1].change = -1;
update_vars ();
return;
}
@@ -424,13 +423,13 @@ tzset_internal (int always)
__tzset_parse_tz (tz);
}
-/* Figure out the exact time (as a time_t) in YEAR
+/* Figure out the exact time (as a __time64_t) in YEAR
when the change described by RULE will occur and
put it in RULE->change, saving YEAR in RULE->computed_for. */
static void
compute_change (tz_rule *rule, int year)
{
- time_t t;
+ __time64_t t;
if (year != -1 && rule->computed_for == year)
/* Operations on times in 2 BC will be slower. Oh well. */
@@ -516,7 +515,7 @@ compute_change (tz_rule *rule, int year)
/* Figure out the correct timezone for TM and set `__tzname',
`__timezone', and `__daylight' accordingly. */
void
-__tz_compute (time_t timer, struct tm *tm, int use_localtime)
+__tz_compute (__time64_t timer, struct tm *tm, int use_localtime)
{
compute_change (&tz_rules[0], 1900 + tm->tm_year);
compute_change (&tz_rules[1], 1900 + tm->tm_year);
@@ -562,20 +561,14 @@ __tzset (void)
}
weak_alias (__tzset, tzset)
-/* Return the `struct tm' representation of *TIMER in the local timezone.
+/* Return the `struct tm' representation of TIMER in the local timezone.
Use local time if USE_LOCALTIME is nonzero, UTC otherwise. */
struct tm *
-__tz_convert (const time_t *timer, int use_localtime, struct tm *tp)
+__tz_convert (__time64_t timer, int use_localtime, struct tm *tp)
{
long int leap_correction;
int leap_extra_secs;
- if (timer == NULL)
- {
- __set_errno (EINVAL);
- return NULL;
- }
-
__libc_lock_lock (tzset_lock);
/* Update internal database according to current TZ setting.
@@ -584,14 +577,14 @@ __tz_convert (const time_t *timer, int use_localtime, struct tm *tp)
tzset_internal (tp == &_tmbuf && use_localtime);
if (__use_tzfile)
- __tzfile_compute (*timer, use_localtime, &leap_correction,
+ __tzfile_compute (timer, use_localtime, &leap_correction,
&leap_extra_secs, tp);
else
{
if (! __offtime (timer, 0, tp))
tp = NULL;
else
- __tz_compute (*timer, tp, use_localtime);
+ __tz_compute (timer, tp, use_localtime);
leap_correction = 0L;
leap_extra_secs = 0;
}
diff --git a/time/wcsftime.c b/time/wcsftime.c
index 5a3afeabfc..0fb4f8d35a 100644
--- a/time/wcsftime.c
+++ b/time/wcsftime.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <wchar.h>
#include <locale/localeinfo.h>
diff --git a/time/wcsftime_l.c b/time/wcsftime_l.c
index b667893b71..dcbceafb78 100644
--- a/time/wcsftime_l.c
+++ b/time/wcsftime_l.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <wchar.h>
#include <wctype.h>
diff --git a/timezone/Makefile b/timezone/Makefile
index 0194aba4a1..e149459cb3 100644
--- a/timezone/Makefile
+++ b/timezone/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1998-2018 Free Software Foundation, Inc.
+# Copyright (C) 1998-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
# Makefile for timezone information
diff --git a/timezone/private.h b/timezone/private.h
index e2f23f5f40..1ead14793b 100644
--- a/timezone/private.h
+++ b/timezone/private.h
@@ -1,3 +1,5 @@
+/* Private header for tzdb code. */
+
#ifndef PRIVATE_H
#define PRIVATE_H
@@ -15,6 +17,16 @@
** Thank you!
*/
+/*
+** zdump has been made independent of the rest of the time
+** conversion package to increase confidence in the verification it provides.
+** You can use zdump to help in verifying other implementations.
+** To do this, compile with -DUSE_LTZ=0 and link without the tz library.
+*/
+#ifndef USE_LTZ
+# define USE_LTZ 1
+#endif
+
/* This string was in the Factory zone through version 2016f. */
#define GRANDPARENTED "Local time zone must be set--see zic manual page"
@@ -27,13 +39,28 @@
#define HAVE_DECL_ASCTIME_R 1
#endif
+#if !defined HAVE_GENERIC && defined __has_extension
+# if __has_extension(c_generic_selections)
+# define HAVE_GENERIC 1
+# else
+# define HAVE_GENERIC 0
+# endif
+#endif
+/* _Generic is buggy in pre-4.9 GCC. */
+#if !defined HAVE_GENERIC && defined __GNUC__
+# define HAVE_GENERIC (4 < __GNUC__ + (9 <= __GNUC_MINOR__))
+#endif
+#ifndef HAVE_GENERIC
+# define HAVE_GENERIC (201112 <= __STDC_VERSION__)
+#endif
+
#ifndef HAVE_GETTEXT
#define HAVE_GETTEXT 0
#endif /* !defined HAVE_GETTEXT */
#ifndef HAVE_INCOMPATIBLE_CTIME_R
#define HAVE_INCOMPATIBLE_CTIME_R 0
-#endif /* !defined INCOMPATIBLE_CTIME_R */
+#endif
#ifndef HAVE_LINK
#define HAVE_LINK 1
@@ -43,10 +70,18 @@
#define HAVE_POSIX_DECLS 1
#endif
+#ifndef HAVE_STDBOOL_H
+#define HAVE_STDBOOL_H (199901 <= __STDC_VERSION__)
+#endif
+
#ifndef HAVE_STRDUP
#define HAVE_STRDUP 1
#endif
+#ifndef HAVE_STRTOLL
+#define HAVE_STRTOLL 1
+#endif
+
#ifndef HAVE_SYMLINK
#define HAVE_SYMLINK 1
#endif /* !defined HAVE_SYMLINK */
@@ -76,13 +111,23 @@
#define ctime_r _incompatible_ctime_r
#endif /* HAVE_INCOMPATIBLE_CTIME_R */
-/* Enable tm_gmtoff and tm_zone on GNUish systems. */
+/* Enable tm_gmtoff, tm_zone, and environ on GNUish systems. */
#define _GNU_SOURCE 1
/* Fix asctime_r on Solaris 11. */
#define _POSIX_PTHREAD_SEMANTICS 1
/* Enable strtoimax on pre-C99 Solaris 11. */
#define __EXTENSIONS__ 1
+/* To avoid having 'stat' fail unnecessarily with errno == EOVERFLOW,
+ enable large files on GNUish systems ... */
+#ifndef _FILE_OFFSET_BITS
+# define _FILE_OFFSET_BITS 64
+#endif
+/* ... and on AIX ... */
+#define _LARGE_FILES 1
+/* ... and enable large inode numbers on Mac OS X 10.5 and later. */
+#define _DARWIN_USE_64_BIT_INODE 1
+
/*
** Nested includes
*/
@@ -105,7 +150,6 @@
#undef tzfree
#include <sys/types.h> /* for time_t */
-#include <stdio.h>
#include <string.h>
#include <limits.h> /* for CHAR_BIT et al. */
#include <stdlib.h>
@@ -126,19 +170,8 @@
#include <libintl.h>
#endif /* HAVE_GETTEXT */
-#if HAVE_SYS_WAIT_H
-#include <sys/wait.h> /* for WIFEXITED and WEXITSTATUS */
-#endif /* HAVE_SYS_WAIT_H */
-
-#ifndef WIFEXITED
-#define WIFEXITED(status) (((status) & 0xff) == 0)
-#endif /* !defined WIFEXITED */
-#ifndef WEXITSTATUS
-#define WEXITSTATUS(status) (((status) >> 8) & 0xff)
-#endif /* !defined WEXITSTATUS */
-
#if HAVE_UNISTD_H
-#include <unistd.h> /* for F_OK, R_OK, and other POSIX goodness */
+#include <unistd.h> /* for R_OK, and other POSIX goodness */
#endif /* HAVE_UNISTD_H */
#ifndef HAVE_STRFTIME_L
@@ -149,9 +182,22 @@
# endif
#endif
-#ifndef F_OK
-#define F_OK 0
-#endif /* !defined F_OK */
+#ifndef USG_COMPAT
+# ifndef _XOPEN_VERSION
+# define USG_COMPAT 0
+# else
+# define USG_COMPAT 1
+# endif
+#endif
+
+#ifndef HAVE_TZNAME
+# if _POSIX_VERSION < 198808 && !USG_COMPAT
+# define HAVE_TZNAME 0
+# else
+# define HAVE_TZNAME 1
+# endif
+#endif
+
#ifndef R_OK
#define R_OK 4
#endif /* !defined R_OK */
@@ -236,15 +282,19 @@ typedef int int_fast32_t;
#ifndef INTMAX_MAX
# ifdef LLONG_MAX
typedef long long intmax_t;
-# define strtoimax strtoll
+# if HAVE_STRTOLL
+# define strtoimax strtoll
+# endif
# define INTMAX_MAX LLONG_MAX
# define INTMAX_MIN LLONG_MIN
# else
typedef long intmax_t;
-# define strtoimax strtol
# define INTMAX_MAX LONG_MAX
# define INTMAX_MIN LONG_MIN
# endif
+# ifndef strtoimax
+# define strtoimax strtol
+# endif
#endif
#ifndef PRIdMAX
@@ -294,12 +344,14 @@ typedef unsigned long uintmax_t;
#define SIZE_MAX ((size_t) -1)
#endif
-#if 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
+#if 3 <= __GNUC__
# define ATTRIBUTE_CONST __attribute__ ((const))
+# define ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
# define ATTRIBUTE_PURE __attribute__ ((__pure__))
# define ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec))
#else
# define ATTRIBUTE_CONST /* empty */
+# define ATTRIBUTE_MALLOC /* empty */
# define ATTRIBUTE_PURE /* empty */
# define ATTRIBUTE_FORMAT(spec) /* empty */
#endif
@@ -326,6 +378,16 @@ typedef unsigned long uintmax_t;
#ifndef EPOCH_OFFSET
# define EPOCH_OFFSET 0
#endif
+#ifndef RESERVE_STD_EXT_IDS
+# define RESERVE_STD_EXT_IDS 0
+#endif
+
+/* If standard C identifiers with external linkage (e.g., localtime)
+ are reserved and are not already being renamed anyway, rename them
+ as if compiling with '-Dtime_tz=time_t'. */
+#if !defined time_tz && RESERVE_STD_EXT_IDS && USE_LTZ
+# define time_tz time_t
+#endif
/*
** Compile with -Dtime_tz=T to build the tz package with a private
@@ -335,6 +397,12 @@ typedef unsigned long uintmax_t;
** typical platforms.
*/
#if defined time_tz || EPOCH_LOCAL || EPOCH_OFFSET != 0
+# define TZ_TIME_T 1
+#else
+# define TZ_TIME_T 0
+#endif
+
+#if TZ_TIME_T
# ifdef LOCALTIME_IMPLEMENTATION
static time_t sys_time(time_t *x) { return time(x); }
# endif
@@ -367,6 +435,8 @@ typedef time_tz tz_time_t;
# define posix2time tz_posix2time
# undef posix2time_z
# define posix2time_z tz_posix2time_z
+# undef strftime
+# define strftime tz_strftime
# undef time
# define time tz_time
# undef time2posix
@@ -389,10 +459,34 @@ typedef time_tz tz_time_t;
# define tzset tz_tzset
# undef tzsetwall
# define tzsetwall tz_tzsetwall
+# if HAVE_STRFTIME_L
+# undef strftime_l
+# define strftime_l tz_strftime_l
+# endif
+# if HAVE_TZNAME
+# undef tzname
+# define tzname tz_tzname
+# endif
+# if USG_COMPAT
+# undef daylight
+# define daylight tz_daylight
+# undef timezone
+# define timezone tz_timezone
+# endif
+# ifdef ALTZONE
+# undef altzone
+# define altzone tz_altzone
+# endif
char *ctime(time_t const *);
char *ctime_r(time_t const *, char *);
-double difftime(time_t, time_t);
+double difftime(time_t, time_t) ATTRIBUTE_CONST;
+size_t strftime(char *restrict, size_t, char const *restrict,
+ struct tm const *restrict);
+# if HAVE_STRFTIME_L
+size_t strftime_l(char *restrict, size_t, char const *restrict,
+ struct tm const *restrict, locale_t);
+# endif
struct tm *gmtime(time_t const *);
struct tm *gmtime_r(time_t const *restrict, struct tm *restrict);
struct tm *localtime(time_t const *);
@@ -406,18 +500,29 @@ void tzset(void);
extern char *asctime_r(struct tm const *restrict, char *restrict);
#endif
-#if !HAVE_POSIX_DECLS
-# ifdef USG_COMPAT
-# ifndef timezone
+#ifndef HAVE_DECL_ENVIRON
+# if defined environ || defined __USE_GNU
+# define HAVE_DECL_ENVIRON 1
+# else
+# define HAVE_DECL_ENVIRON 0
+# endif
+#endif
+
+#if !HAVE_DECL_ENVIRON
+extern char **environ;
+#endif
+
+#if TZ_TIME_T || !HAVE_POSIX_DECLS
+# if HAVE_TZNAME
+extern char *tzname[];
+# endif
+# if USG_COMPAT
extern long timezone;
-# endif
-# ifndef daylight
extern int daylight;
-# endif
# endif
#endif
-#if defined ALTZONE && !defined altzone
+#ifdef ALTZONE
extern long altzone;
#endif
@@ -427,25 +532,25 @@ extern long altzone;
*/
#ifdef STD_INSPIRED
-# if !defined tzsetwall || defined time_tz
+# if TZ_TIME_T || !defined tzsetwall
void tzsetwall(void);
# endif
-# if !defined offtime || defined time_tz
+# if TZ_TIME_T || !defined offtime
struct tm *offtime(time_t const *, long);
# endif
-# if !defined timegm || defined time_tz
+# if TZ_TIME_T || !defined timegm
time_t timegm(struct tm *);
# endif
-# if !defined timelocal || defined time_tz
+# if TZ_TIME_T || !defined timelocal
time_t timelocal(struct tm *);
# endif
-# if !defined timeoff || defined time_tz
+# if TZ_TIME_T || !defined timeoff
time_t timeoff(struct tm *, long);
# endif
-# if !defined time2posix || defined time_tz
+# if TZ_TIME_T || !defined time2posix
time_t time2posix(time_t);
# endif
-# if !defined posix2time || defined time_tz
+# if TZ_TIME_T || !defined posix2time
time_t posix2time(time_t);
# endif
#endif
@@ -479,10 +584,10 @@ time_t mktime_z(timezone_t restrict, struct tm *restrict);
timezone_t tzalloc(char const *);
void tzfree(timezone_t);
# ifdef STD_INSPIRED
-# if !defined posix2time_z || defined time_tz
+# if TZ_TIME_T || !defined posix2time_z
time_t posix2time_z(timezone_t, time_t) ATTRIBUTE_PURE;
# endif
-# if !defined time2posix_z || defined time_tz
+# if TZ_TIME_T || !defined time2posix_z
time_t time2posix_z(timezone_t, time_t) ATTRIBUTE_PURE;
# endif
# endif
@@ -492,12 +597,12 @@ time_t time2posix_z(timezone_t, time_t) ATTRIBUTE_PURE;
** Finally, some convenience items.
*/
-#if __STDC_VERSION__ < 199901
+#if HAVE_STDBOOL_H
+# include <stdbool.h>
+#else
# define true 1
# define false 0
# define bool int
-#else
-# include <stdbool.h>
#endif
#define TYPE_BIT(type) (sizeof (type) * CHAR_BIT)
@@ -513,27 +618,32 @@ time_t time2posix_z(timezone_t, time_t) ATTRIBUTE_PURE;
#define MINVAL(t, b) \
((t) (TYPE_SIGNED(t) ? - TWOS_COMPLEMENT(t) - MAXVAL(t, b) : 0))
-/* The minimum and maximum finite time values. This implementation
- assumes no padding if time_t is signed and either the compiler is
- pre-C11 or time_t is not one of the standard signed integer types. */
-#if 201112 <= __STDC_VERSION__
-static time_t const time_t_min
- = (TYPE_SIGNED(time_t)
- ? _Generic((time_t) 0,
- signed char: SCHAR_MIN, short: SHRT_MIN,
- int: INT_MIN, long: LONG_MIN, long long: LLONG_MIN,
- default: MINVAL(time_t, TYPE_BIT(time_t)))
- : 0);
-static time_t const time_t_max
- = (TYPE_SIGNED(time_t)
- ? _Generic((time_t) 0,
- signed char: SCHAR_MAX, short: SHRT_MAX,
- int: INT_MAX, long: LONG_MAX, long long: LLONG_MAX,
- default: MAXVAL(time_t, TYPE_BIT(time_t)))
- : -1);
+/* The extreme time values, assuming no padding. */
+#define TIME_T_MIN_NO_PADDING MINVAL(time_t, TYPE_BIT(time_t))
+#define TIME_T_MAX_NO_PADDING MAXVAL(time_t, TYPE_BIT(time_t))
+
+/* The extreme time values. These are macros, not constants, so that
+ any portability problem occur only when compiling .c files that use
+ the macros, which is safer for applications that need only zdump and zic.
+ This implementation assumes no padding if time_t is signed and
+ either the compiler lacks support for _Generic or time_t is not one
+ of the standard signed integer types. */
+#if HAVE_GENERIC
+# define TIME_T_MIN \
+ _Generic((time_t) 0, \
+ signed char: SCHAR_MIN, short: SHRT_MIN, \
+ int: INT_MIN, long: LONG_MIN, long long: LLONG_MIN, \
+ default: TIME_T_MIN_NO_PADDING)
+# define TIME_T_MAX \
+ (TYPE_SIGNED(time_t) \
+ ? _Generic((time_t) 0, \
+ signed char: SCHAR_MAX, short: SHRT_MAX, \
+ int: INT_MAX, long: LONG_MAX, long long: LLONG_MAX, \
+ default: TIME_T_MAX_NO_PADDING) \
+ : (time_t) -1)
#else
-static time_t const time_t_min = MINVAL(time_t, TYPE_BIT(time_t));
-static time_t const time_t_max = MAXVAL(time_t, TYPE_BIT(time_t));
+# define TIME_T_MIN TIME_T_MIN_NO_PADDING
+# define TIME_T_MAX TIME_T_MAX_NO_PADDING
#endif
/*
@@ -550,7 +660,7 @@ static time_t const time_t_max = MAXVAL(time_t, TYPE_BIT(time_t));
** INITIALIZE(x)
*/
-#ifdef lint
+#ifdef GCC_LINT
# define INITIALIZE(x) ((x) = 0)
#else
# define INITIALIZE(x)
@@ -633,7 +743,7 @@ char *ctime_r(time_t const *, char *);
** or
** isleap(a + b) == isleap(a % 400 + b % 400)
** This is true even if % means modulo rather than Fortran remainder
-** (which is allowed by C89 but not C99).
+** (which is allowed by C89 but not by C99 or later).
** We use this to avoid addition overflow problems.
*/
diff --git a/timezone/tst-timezone.c b/timezone/tst-timezone.c
index d3726e2063..79b38f9abf 100644
--- a/timezone/tst-timezone.c
+++ b/timezone/tst-timezone.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <time.h>
#include <stdio.h>
diff --git a/timezone/tst-tzset.c b/timezone/tst-tzset.c
index 27f986b56d..299db6f1fa 100644
--- a/timezone/tst-tzset.c
+++ b/timezone/tst-tzset.c
@@ -1,5 +1,5 @@
/* tzset tests with crafted time zone data.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-2019 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define _GNU_SOURCE 1
@@ -24,8 +24,8 @@
#include <sys/resource.h>
#include <time.h>
#include <unistd.h>
+#include <support/check.h>
-#define TIMEOUT 5
static int do_test (void);
#define TEST_FUNCTION do_test ()
#include "../test-skeleton.c"
@@ -38,6 +38,8 @@ create_tz_file (off64_t size)
int fd = create_temp_file ("tst-tzset-", &path);
if (fd < 0)
exit (1);
+ if (!support_descriptor_supports_holes (fd))
+ FAIL_UNSUPPORTED ("File %s does not support holes", path);
// Reopen for large-file support.
close (fd);
diff --git a/timezone/tzfile.h b/timezone/tzfile.h
index 0e51dce1d7..27a38cc74d 100644
--- a/timezone/tzfile.h
+++ b/timezone/tzfile.h
@@ -1,3 +1,5 @@
+/* Layout and location of TZif files. */
+
#ifndef TZFILE_H
#define TZFILE_H
@@ -20,11 +22,11 @@
*/
#ifndef TZDIR
-#define TZDIR "/usr/local/etc/zoneinfo" /* Time zone object file directory */
+#define TZDIR "/usr/share/zoneinfo" /* Time zone object file directory */
#endif /* !defined TZDIR */
#ifndef TZDEFAULT
-#define TZDEFAULT "localtime"
+#define TZDEFAULT "/etc/localtime"
#endif /* !defined TZDEFAULT */
#ifndef TZDEFRULES
diff --git a/timezone/tzselect.ksh b/timezone/tzselect.ksh
index d2c3a6d1dd..18fce27e24 100755
--- a/timezone/tzselect.ksh
+++ b/timezone/tzselect.ksh
@@ -1,12 +1,11 @@
#!/bin/bash
+# Ask the user about the time zone, and output the resulting TZ value to stdout.
+# Interact with the user via stderr and stdin.
PKGVERSION='(tzcode) '
TZVERSION=see_Makefile
REPORT_BUGS_TO=tz@iana.org
-# Ask the user about the time zone, and output the resulting TZ value to stdout.
-# Interact with the user via stderr and stdin.
-
# Contributed by Paul Eggert. This file is in the public domain.
# Porting notes:
@@ -17,9 +16,9 @@ REPORT_BUGS_TO=tz@iana.org
# If your host lacks both Bash and the Korn shell, you can get their
# source from one of these locations:
#
-# Bash <http://www.gnu.org/software/bash/bash.html>
+# Bash <https://www.gnu.org/software/bash/>
# Korn Shell <http://www.kornshell.com/>
-# Public Domain Korn Shell <http://www.cs.mun.ca/~michael/pdksh/>
+# MirBSD Korn Shell <https://www.mirbsd.org/mksh.htm>
#
# For portability to Solaris 9 /bin/sh this script avoids some POSIX
# features and common extensions, such as $(...) (which works sometimes
@@ -29,8 +28,8 @@ REPORT_BUGS_TO=tz@iana.org
# If your host lacks awk, or has an old awk that does not conform to Posix,
# you can use either of the following free programs instead:
#
-# Gawk (GNU awk) <http://www.gnu.org/software/gawk/>
-# mawk <http://invisible-island.net/mawk/>
+# Gawk (GNU awk) <https://www.gnu.org/software/gawk/>
+# mawk <https://invisible-island.net/mawk/>
# Specify default values for environment variables if they are unset.
@@ -55,7 +54,7 @@ location_limit=10
zonetabtype=zone1970
usage="Usage: tzselect [--version] [--help] [-c COORD] [-n LIMIT]
-Select a time zone interactively.
+Select a timezone interactively.
Options:
@@ -327,7 +326,7 @@ while
eval '
doselect '"$quoted_continents"' \
"coord - I want to use geographical coordinates." \
- "TZ - I want to specify the time zone using the Posix TZ format."
+ "TZ - I want to specify the timezone using the Posix TZ format."
continent=$select_result
case $continent in
Americas) continent=America;;
@@ -342,8 +341,10 @@ while
while
echo >&2 'Please enter the desired value' \
'of the TZ environment variable.'
- echo >&2 'For example, GST-10 is a zone named GST' \
- 'that is 10 hours ahead (east) of UTC.'
+ echo >&2 'For example, AEST-10 is abbreviated' \
+ 'AEST and is 10 hours'
+ echo >&2 'ahead (east) of Greenwich,' \
+ 'with no daylight saving time.'
read TZ
$AWK -v TZ="$TZ" 'BEGIN {
tzname = "(<[[:alnum:]+-]{3,}>|[[:alpha:]]{3,})"
@@ -360,7 +361,7 @@ while
exit 0
}'
do
- say >&2 "'$TZ' is not a conforming Posix time zone string."
+ say >&2 "'$TZ' is not a conforming Posix timezone string."
done
TZ_for_date=$TZ;;
*)
@@ -386,8 +387,7 @@ while
BEGIN { FS = "\t" }
{ print $NF }
'`
- echo >&2 'Please select one of the following' \
- 'time zone regions,'
+ echo >&2 'Please select one of the following timezones,' \
echo >&2 'listed roughly in increasing order' \
"of distance from $coord".
doselect $regions
@@ -437,7 +437,7 @@ while
esac
- # Get list of names of time zone rule regions in the country.
+ # Get list of timezones in the country.
regions=`$AWK \
-v country="$country" \
-v TZ_COUNTRY_TABLE="$TZ_COUNTRY_TABLE" \
@@ -460,8 +460,7 @@ while
# If there's more than one region, ask the user which one.
case $regions in
*"$newline"*)
- echo >&2 'Please select one of the following' \
- 'time zone regions.'
+ echo >&2 'Please select one of the following timezones.'
doselect $regions
region=$select_result;;
*)
diff --git a/timezone/zdump.c b/timezone/zdump.c
index bf75800101..0fc8ced96a 100644
--- a/timezone/zdump.c
+++ b/timezone/zdump.c
@@ -1,3 +1,5 @@
+/* Dump time zone data in a textual format. */
+
/*
** This file is in the public domain, so clarified as of
** 2009-05-17 by Arthur David Olson.
@@ -5,21 +7,16 @@
#include "version.h"
-/*
-** This code has been made independent of the rest of the time
-** conversion package to increase confidence in the verification it provides.
-** You can use this code to help in verifying other implementations.
-** To do this, compile with -DUSE_LTZ=0 and link without the tz library.
-*/
-
#ifndef NETBSD_INSPIRED
# define NETBSD_INSPIRED 1
#endif
-#ifndef USE_LTZ
-# define USE_LTZ 1
-#endif
#include "private.h"
+#include <stdio.h>
+
+#ifndef HAVE_SNPRINTF
+# define HAVE_SNPRINTF (199901 <= __STDC_VERSION__)
+#endif
#ifndef HAVE_LOCALTIME_R
# define HAVE_LOCALTIME_R 1
@@ -72,14 +69,11 @@ enum { SECSPER400YEARS_FITS = SECSPERLYEAR <= INTMAX_MAX / 400 };
# define timezone_t char **
#endif
-extern char ** environ;
-
#if !HAVE_POSIX_DECLS
extern int getopt(int argc, char * const argv[],
const char * options);
extern char * optarg;
extern int optind;
-extern char * tzname[];
#endif
/* The minimum and maximum finite time values. */
@@ -144,7 +138,7 @@ sumsize(size_t a, size_t b)
/* Return a pointer to a newly allocated buffer of size SIZE, exiting
on failure. SIZE should be nonzero. */
-static void *
+static void * ATTRIBUTE_MALLOC
xmalloc(size_t size)
{
void *p = malloc(size);
@@ -263,7 +257,7 @@ tzfree(timezone_t env)
}
#endif /* ! USE_LOCALTIME_RZ */
-/* A UTC time zone, and its initializer. */
+/* A UT time zone, and its initializer. */
static timezone_t gmtz;
static void
gmtzinit(void)
@@ -278,7 +272,7 @@ gmtzinit(void)
}
}
-/* Convert *TP to UTC, storing the broken-down time into *TMP.
+/* Convert *TP to UT, storing the broken-down time into *TMP.
Return TMP if successful, NULL otherwise. This is like gmtime_r(TP, TMP),
except typically faster if USE_LOCALTIME_RZ. */
static struct tm *
@@ -390,7 +384,7 @@ static void
usage(FILE * const stream, const int status)
{
fprintf(stream,
-_("%s: usage: %s OPTIONS ZONENAME ...\n"
+_("%s: usage: %s OPTIONS TIMEZONE ...\n"
"Options include:\n"
" -c [L,]U Start at year L (default -500), end before year U (default 2500)\n"
" -t [L,]U Start at time L, end before time U (in seconds since 1970)\n"
@@ -550,6 +544,7 @@ main(int argc, char *argv[])
}
if (t < cutlotime)
t = cutlotime;
+ INITIALIZE (ab);
tm_ok = my_localtime_rz(tz, &t, &tm) != NULL;
if (tm_ok) {
ab = saveabbr(&abbrev, &abbrevsize, &tm);
@@ -565,11 +560,10 @@ main(int argc, char *argv[])
: cuthitime);
struct tm *newtmp = localtime_rz(tz, &newt, &newtm);
bool newtm_ok = newtmp != NULL;
- if (! (tm_ok & newtm_ok
- ? (delta(&newtm, &tm) == newt - t
- && newtm.tm_isdst == tm.tm_isdst
- && strcmp(abbr(&newtm), ab) == 0)
- : tm_ok == newtm_ok)) {
+ if (tm_ok != newtm_ok
+ || (tm_ok && (delta(&newtm, &tm) != newt - t
+ || newtm.tm_isdst != tm.tm_isdst
+ || strcmp(abbr(&newtm), ab) != 0))) {
newt = hunt(tz, argv[i], t, newt);
newtmp = localtime_rz(tz, &newt, &newtm);
newtm_ok = newtmp != NULL;
@@ -685,17 +679,15 @@ hunt(timezone_t tz, char *name, time_t lot, time_t hit)
}
/*
-** Thanks to Paul Eggert for logic used in delta.
+** Thanks to Paul Eggert for logic used in delta_nonneg.
*/
static intmax_t
-delta(struct tm * newp, struct tm *oldp)
+delta_nonneg(struct tm *newp, struct tm *oldp)
{
register intmax_t result;
register int tmy;
- if (newp->tm_year < oldp->tm_year)
- return -delta(oldp, newp);
result = 0;
for (tmy = oldp->tm_year; tmy < newp->tm_year; ++tmy)
result += DAYSPERNYEAR + isleap_sum(tmy, TM_YEAR_BASE);
@@ -709,6 +701,14 @@ delta(struct tm * newp, struct tm *oldp)
return result;
}
+static intmax_t
+delta(struct tm *newp, struct tm *oldp)
+{
+ return (newp->tm_year < oldp->tm_year
+ ? -delta_nonneg(oldp, newp)
+ : delta_nonneg(newp, oldp));
+}
+
#ifndef TM_GMTOFF
/* Return A->tm_yday, adjusted to compare it fairly to B->tm_yday.
Assume A and B differ by at most one year. */
@@ -722,8 +722,8 @@ adjusted_yday(struct tm const *a, struct tm const *b)
}
#endif
-/* If A is the broken-down local time and B the broken-down UTC for
- the same instant, return A's UTC offset in seconds, where positive
+/* If A is the broken-down local time and B the broken-down UT for
+ the same instant, return A's UT offset in seconds, where positive
offsets are east of Greenwich. On failure, return LONG_MIN.
If T is nonnull, *T is the timestamp that corresponds to A; call
@@ -787,6 +787,42 @@ show(timezone_t tz, char *zone, time_t t, bool v)
abbrok(abbr(tmp), zone);
}
+#if HAVE_SNPRINTF
+# define my_snprintf snprintf
+#else
+# include <stdarg.h>
+
+/* A substitute for snprintf that is good enough for zdump. */
+static int ATTRIBUTE_FORMAT((printf, 3, 4))
+my_snprintf(char *s, size_t size, char const *format, ...)
+{
+ int n;
+ va_list args;
+ char const *arg;
+ size_t arglen, slen;
+ char buf[1024];
+ va_start(args, format);
+ if (strcmp(format, "%s") == 0) {
+ arg = va_arg(args, char const *);
+ arglen = strlen(arg);
+ } else {
+ n = vsprintf(buf, format, args);
+ if (n < 0) {
+ va_end(args);
+ return n;
+ }
+ arg = buf;
+ arglen = n;
+ }
+ slen = arglen < size ? arglen : size - 1;
+ memcpy(s, arg, slen);
+ s[slen] = '\0';
+ n = arglen <= INT_MAX ? arglen : -1;
+ va_end(args);
+ return n;
+}
+#endif
+
/* Store into BUF, of size SIZE, a formatted local time taken from *TM.
Use ISO 8601 format +HH:MM:SS. Omit :SS if SS is zero, and omit
:MM too if MM is also zero.
@@ -799,16 +835,16 @@ format_local_time(char *buf, size_t size, struct tm const *tm)
{
int ss = tm->tm_sec, mm = tm->tm_min, hh = tm->tm_hour;
return (ss
- ? snprintf(buf, size, "%02d:%02d:%02d", hh, mm, ss)
+ ? my_snprintf(buf, size, "%02d:%02d:%02d", hh, mm, ss)
: mm
- ? snprintf(buf, size, "%02d:%02d", hh, mm)
- : snprintf(buf, size, "%02d", hh));
+ ? my_snprintf(buf, size, "%02d:%02d", hh, mm)
+ : my_snprintf(buf, size, "%02d", hh));
}
-/* Store into BUF, of size SIZE, a formatted UTC offset for the
+/* Store into BUF, of size SIZE, a formatted UT offset for the
localtime *TM corresponding to time T. Use ISO 8601 format
+HHMMSS, or -HHMMSS for timestamps west of Greenwich; use the
- format -00 for unknown UTC offsets. If the hour needs more than
+ format -00 for unknown UT offsets. If the hour needs more than
two digits to represent, extend the length of HH as needed.
Otherwise, omit SS if SS is zero, and omit MM too if MM is also
zero.
@@ -837,10 +873,10 @@ format_utc_offset(char *buf, size_t size, struct tm const *tm, time_t t)
mm = off / 60 % 60;
hh = off / 60 / 60;
return (ss || 100 <= hh
- ? snprintf(buf, size, "%c%02ld%02d%02d", sign, hh, mm, ss)
+ ? my_snprintf(buf, size, "%c%02ld%02d%02d", sign, hh, mm, ss)
: mm
- ? snprintf(buf, size, "%c%02ld%02d", sign, hh, mm)
- : snprintf(buf, size, "%c%02ld", sign, hh));
+ ? my_snprintf(buf, size, "%c%02ld%02d", sign, hh, mm)
+ : my_snprintf(buf, size, "%c%02ld", sign, hh));
}
/* Store into BUF (of size SIZE) a quoted string representation of P.
@@ -883,7 +919,7 @@ format_quoted_string(char *buf, size_t size, char const *p)
%f zone name
%L local time as per format_local_time
- %Q like "U\t%Z\tD" where U is the UTC offset as for format_utc_offset
+ %Q like "U\t%Z\tD" where U is the UT offset as for format_utc_offset
and D is the isdst flag; except omit D if it is zero, omit %Z if
it equals U, quote and escape %Z if it contains nonalphabetics,
and omit any trailing tabs. */
@@ -943,15 +979,16 @@ istrftime(char *buf, size_t size, char const *time_fmt,
for (abp = ab; is_alpha(*abp); abp++)
continue;
len = (!*abp && *ab
- ? snprintf(b, s, "%s", ab)
+ ? my_snprintf(b, s, "%s", ab)
: format_quoted_string(b, s, ab));
if (s <= len)
return false;
b += len, s -= len;
}
- formatted_len = (tm->tm_isdst
- ? snprintf(b, s, &"\t\t%d"[show_abbr], tm->tm_isdst)
- : 0);
+ formatted_len
+ = (tm->tm_isdst
+ ? my_snprintf(b, s, &"\t\t%d"[show_abbr], tm->tm_isdst)
+ : 0);
}
break;
}
@@ -993,9 +1030,11 @@ abbr(struct tm const *tmp)
#ifdef TM_ZONE
return tmp->TM_ZONE;
#else
- return (0 <= tmp->tm_isdst && tzname[0 < tmp->tm_isdst]
- ? tzname[0 < tmp->tm_isdst]
- : "");
+# if HAVE_TZNAME
+ if (0 <= tmp->tm_isdst && tzname[0 < tmp->tm_isdst])
+ return tzname[0 < tmp->tm_isdst];
+# endif
+ return "";
#endif
}
@@ -1030,10 +1069,10 @@ tformat(void)
static void
dumptime(register const struct tm *timeptr)
{
- static const char wday_name[][3] = {
+ static const char wday_name[][4] = {
"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
};
- static const char mon_name[][3] = {
+ static const char mon_name[][4] = {
"Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
};
@@ -1059,7 +1098,7 @@ dumptime(register const struct tm *timeptr)
(int) (sizeof mon_name / sizeof mon_name[0]))
mn = "???";
else mn = mon_name[timeptr->tm_mon];
- printf("%.3s %.3s%3d %.2d:%.2d:%.2d ",
+ printf("%s %s%3d %.2d:%.2d:%.2d ",
wn, mn,
timeptr->tm_mday, timeptr->tm_hour,
timeptr->tm_min, timeptr->tm_sec);
diff --git a/timezone/zic.c b/timezone/zic.c
index e738386600..2ebc66a9af 100644
--- a/timezone/zic.c
+++ b/timezone/zic.c
@@ -1,3 +1,5 @@
+/* Compile .zi time zone data into TZif binary files. */
+
/*
** This file is in the public domain, so clarified as of
** 2006-07-17 by Arthur David Olson.
@@ -11,6 +13,7 @@
#include <locale.h>
#include <stdarg.h>
#include <stddef.h>
+#include <stdio.h>
#define ZIC_VERSION_PRE_2013 '2'
#define ZIC_VERSION '3'
@@ -40,12 +43,32 @@ typedef int_fast64_t zic_t;
#else
#define MKDIR_UMASK 0755
#endif
+/* Port to native MS-Windows and to ancient UNIX. */
+#if !defined S_ISDIR && defined S_IFDIR && defined S_IFMT
+# define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR)
+#endif
+
+#if HAVE_SYS_WAIT_H
+#include <sys/wait.h> /* for WIFEXITED and WEXITSTATUS */
+#endif /* HAVE_SYS_WAIT_H */
+
+#ifndef WIFEXITED
+#define WIFEXITED(status) (((status) & 0xff) == 0)
+#endif /* !defined WIFEXITED */
+#ifndef WEXITSTATUS
+#define WEXITSTATUS(status) (((status) >> 8) & 0xff)
+#endif /* !defined WEXITSTATUS */
/* The maximum ptrdiff_t value, for pre-C99 platforms. */
#ifndef PTRDIFF_MAX
static ptrdiff_t const PTRDIFF_MAX = MAXVAL(ptrdiff_t, TYPE_BIT(ptrdiff_t));
#endif
+/* The minimum alignment of a type, for pre-C11 platforms. */
+#if __STDC_VERSION__ < 201112
+# define _Alignof(type) offsetof(struct { char a; type b; }, b)
+#endif
+
/* The type for line numbers. Use PRIdMAX to format them; formerly
there was also "#define PRIdLINENO PRIdMAX" and formats used
PRIdLINENO, but xgettext cannot grok that. */
@@ -73,7 +96,9 @@ struct rule {
/* or wall clock time if 0 */
bool r_todisgmt; /* above is GMT if 1 */
/* or local time if 0 */
- zic_t r_stdoff; /* offset from standard time */
+ bool r_isdst; /* is this daylight saving time? */
+ zic_t r_stdoff; /* offset from default time (which is
+ usually standard time) */
const char * r_abbrvar; /* variable part of abbreviation */
bool r_todo; /* a rule to do (used in outzone) */
@@ -94,10 +119,11 @@ struct zone {
const char * z_name;
zic_t z_gmtoff;
- const char * z_rule;
+ char * z_rule;
const char * z_format;
char z_format_specifier;
+ bool z_isdst;
zic_t z_stdoff;
struct rule * z_rules;
@@ -135,8 +161,8 @@ static void adjleap(void);
static void associate(void);
static void dolink(const char *, const char *, bool);
static char ** getfields(char * buf);
-static zic_t gethms(const char * string, const char * errstring,
- bool);
+static zic_t gethms(const char * string, const char * errstring);
+static zic_t getstdoff(char *, bool *);
static void infile(const char * filename);
static void inleap(char ** fields, int nfields);
static void inlink(char ** fields, int nfields);
@@ -164,11 +190,13 @@ static bool yearistype(zic_t year, const char * type);
enum { PERCENT_Z_LEN_BOUND = sizeof "+995959" - 1 };
/* If true, work around a bug in Qt 5.6.1 and earlier, which mishandles
- tz binary files whose POSIX-TZ-style strings contain '<'; see
+ TZif files whose POSIX-TZ-style strings contain '<'; see
QTBUG-53071 <https://bugreports.qt.io/browse/QTBUG-53071>. This
workaround will no longer be needed when Qt 5.6.1 and earlier are
obsolete, say in the year 2021. */
+#ifndef WORK_AROUND_QTBUG_53071
enum { WORK_AROUND_QTBUG_53071 = true };
+#endif
static int charcnt;
static bool errors;
@@ -299,10 +327,13 @@ struct lookup {
static struct lookup const * byword(const char * string,
const struct lookup * lp);
-static struct lookup const line_codes[] = {
+static struct lookup const zi_line_codes[] = {
{ "Rule", LC_RULE },
{ "Zone", LC_ZONE },
{ "Link", LC_LINK },
+ { NULL, 0 }
+};
+static struct lookup const leap_line_codes[] = {
{ "Leap", LC_LEAP },
{ NULL, 0}
};
@@ -407,6 +438,16 @@ size_product(size_t nitems, size_t itemsize)
return nitems * itemsize;
}
+static ATTRIBUTE_PURE size_t
+align_to(size_t size, size_t alignment)
+{
+ size_t aligned_size = size + alignment - 1;
+ aligned_size -= aligned_size % alignment;
+ if (aligned_size < size)
+ memory_exhausted(_("alignment overflow"));
+ return aligned_size;
+}
+
#if !HAVE_STRDUP
static char *
strdup(char const *str)
@@ -416,7 +457,7 @@ strdup(char const *str)
}
#endif
-static ATTRIBUTE_PURE void *
+static void *
memcheck(void *ptr)
{
if (ptr == NULL)
@@ -424,7 +465,7 @@ memcheck(void *ptr)
return ptr;
}
-static void *
+static void * ATTRIBUTE_MALLOC
emalloc(size_t size)
{
return memcheck(malloc(size));
@@ -436,7 +477,7 @@ erealloc(void *ptr, size_t size)
return memcheck(realloc(ptr, size));
}
-static char *
+static char * ATTRIBUTE_MALLOC
ecpyalloc (char const *str)
{
return memcheck(strdup(str));
@@ -534,7 +575,7 @@ usage(FILE *stream, int status)
fprintf(stream,
_("%s: usage is %s [ --version ] [ --help ] [ -v ] \\\n"
"\t[ -l localtime ] [ -p posixrules ] [ -d directory ] \\\n"
- "\t[ -L leapseconds ] [ filename ... ]\n\n"
+ "\t[ -t localtime-link ] [ -L leapseconds ] [ filename ... ]\n\n"
"Report bugs to %s.\n"),
progname, progname, REPORT_BUGS_TO);
if (status == EXIT_SUCCESS)
@@ -566,6 +607,7 @@ static const char * psxrules;
static const char * lcltime;
static const char * directory;
static const char * leapsec;
+static const char * tzdefault;
static const char * yitcommand;
int
@@ -598,7 +640,7 @@ main(int argc, char **argv)
} else if (strcmp(argv[k], "--help") == 0) {
usage(stdout, EXIT_SUCCESS);
}
- while ((c = getopt(argc, argv, "d:l:p:L:vsy:")) != EOF && c != -1)
+ while ((c = getopt(argc, argv, "d:l:L:p:st:vy:")) != EOF && c != -1)
switch (c) {
default:
usage(stderr, EXIT_FAILURE);
@@ -632,10 +674,21 @@ _("%s: More than one -p option specified\n"),
return EXIT_FAILURE;
}
break;
+ case 't':
+ if (tzdefault != NULL) {
+ fprintf(stderr,
+ _("%s: More than one -t option"
+ " specified\n"),
+ progname);
+ return EXIT_FAILURE;
+ }
+ tzdefault = optarg;
+ break;
case 'y':
- if (yitcommand == NULL)
+ if (yitcommand == NULL) {
+ warning(_("-y is obsolescent"));
yitcommand = optarg;
- else {
+ } else {
fprintf(stderr,
_("%s: More than one -y option specified\n"),
progname);
@@ -663,6 +716,8 @@ _("%s: More than one -L option specified\n"),
usage(stderr, EXIT_FAILURE); /* usage message by request */
if (directory == NULL)
directory = TZDIR;
+ if (tzdefault == NULL)
+ tzdefault = TZDEFAULT;
if (yitcommand == NULL)
yitcommand = "yearistype";
@@ -699,7 +754,7 @@ _("%s: More than one -L option specified\n"),
}
if (lcltime != NULL) {
eat(_("command line"), 1);
- dolink(lcltime, TZDEFAULT, true);
+ dolink(lcltime, tzdefault, true);
}
if (psxrules != NULL) {
eat(_("command line"), 1);
@@ -864,9 +919,11 @@ dolink(char const *fromfield, char const *tofield, bool staysymlink)
char *linkalloc = absolute ? NULL : relname(fromfield, tofield);
char const *contents = absolute ? fromfield : linkalloc;
int symlink_errno = symlink(contents, tofield) == 0 ? 0 : errno;
- if (symlink_errno == ENOENT && !todirs_made) {
+ if (!todirs_made
+ && (symlink_errno == ENOENT || symlink_errno == ENOTSUP)) {
mkdirs(tofield, true);
- symlink_errno = symlink(contents, tofield) == 0 ? 0 : errno;
+ if (symlink_errno == ENOENT)
+ symlink_errno = symlink(contents, tofield) == 0 ? 0 : errno;
}
free(linkalloc);
if (symlink_errno == 0) {
@@ -909,44 +966,6 @@ dolink(char const *fromfield, char const *tofield, bool staysymlink)
static zic_t const min_time = MINVAL(zic_t, TIME_T_BITS_IN_FILE);
static zic_t const max_time = MAXVAL(zic_t, TIME_T_BITS_IN_FILE);
-/* Estimated time of the Big Bang, in seconds since the POSIX epoch.
- rounded downward to the negation of a power of two that is
- comfortably outside the error bounds.
-
- For the time of the Big Bang, see:
-
- Ade PAR, Aghanim N, Armitage-Caplan C et al. Planck 2013 results.
- I. Overview of products and scientific results.
- arXiv:1303.5062 2013-03-20 20:10:01 UTC
- <http://arxiv.org/pdf/1303.5062v1> [PDF]
-
- Page 36, Table 9, row Age/Gyr, column Planck+WP+highL+BAO 68% limits
- gives the value 13.798 plus-or-minus 0.037 billion years.
- Multiplying this by 1000000000 and then by 31557600 (the number of
- seconds in an astronomical year) gives a value that is comfortably
- less than 2**59, so BIG_BANG is - 2**59.
-
- BIG_BANG is approximate, and may change in future versions.
- Please do not rely on its exact value. */
-
-#ifndef BIG_BANG
-#define BIG_BANG (- (1LL << 59))
-#endif
-
-/* If true, work around GNOME bug 730332
- <https://bugzilla.gnome.org/show_bug.cgi?id=730332>
- by refusing to output time stamps before BIG_BANG.
- Such time stamps are physically suspect anyway.
-
- The GNOME bug is scheduled to be fixed in GNOME 3.22, and if so
- this workaround will no longer be needed when GNOME 3.21 and
- earlier are obsolete, say in the year 2021. */
-enum { WORK_AROUND_GNOME_BUG_730332 = true };
-
-static const zic_t early_time = (WORK_AROUND_GNOME_BUG_730332
- ? BIG_BANG
- : MINVAL(zic_t, TIME_T_BITS_IN_FILE));
-
/* Return true if NAME is a directory. */
static bool
itsdir(char const *name)
@@ -1053,8 +1072,7 @@ associate(void)
** Maybe we have a local standard time offset.
*/
eat(zp->z_filename, zp->z_linenum);
- zp->z_stdoff = gethms(zp->z_rule, _("unruly zone"),
- true);
+ zp->z_stdoff = getstdoff(zp->z_rule, &zp->z_isdst);
/*
** Note, though, that if there's no rule,
** a '%s' in the format is a bad thing.
@@ -1114,6 +1132,8 @@ infile(const char *name)
} else if (wantcont) {
wantcont = inzcont(fields, nfields);
} else {
+ struct lookup const *line_codes
+ = name == leapsec ? leap_line_codes : zi_line_codes;
lp = byword(fields[0], line_codes);
if (lp == NULL)
error(_("input line of unknown type"));
@@ -1130,11 +1150,7 @@ infile(const char *name)
wantcont = false;
break;
case LC_LEAP:
- if (name != leapsec)
- warning(_("%s: Leap line in non leap"
- " seconds file %s"),
- progname, name);
- else inleap(fields, nfields);
+ inleap(fields, nfields);
wantcont = false;
break;
default: /* "cannot happen" */
@@ -1160,26 +1176,38 @@ _("%s: panic: Invalid l_value %d\n"),
*/
static zic_t
-gethms(char const *string, char const *errstring, bool signable)
+gethms(char const *string, char const *errstring)
{
zic_t hh;
- int mm, ss, sign;
- char xs;
+ int sign, mm = 0, ss = 0;
+ char hhx, mmx, ssx, xr = '0', xs;
+ int tenths = 0;
+ bool ok = true;
if (string == NULL || *string == '\0')
return 0;
- if (!signable)
- sign = 1;
- else if (*string == '-') {
+ if (*string == '-') {
sign = -1;
++string;
} else sign = 1;
- if (sscanf(string, "%"SCNdZIC"%c", &hh, &xs) == 1)
- mm = ss = 0;
- else if (sscanf(string, "%"SCNdZIC":%d%c", &hh, &mm, &xs) == 2)
- ss = 0;
- else if (sscanf(string, "%"SCNdZIC":%d:%d%c", &hh, &mm, &ss, &xs)
- != 3) {
+ switch (sscanf(string,
+ "%"SCNdZIC"%c%d%c%d%c%1d%*[0]%c%*[0123456789]%c",
+ &hh, &hhx, &mm, &mmx, &ss, &ssx, &tenths, &xr, &xs)) {
+ default: ok = false; break;
+ case 8:
+ ok = '0' <= xr && xr <= '9';
+ /* fallthrough */
+ case 7:
+ ok &= ssx == '.';
+ if (ok && noise)
+ warning(_("fractional seconds rejected by"
+ " pre-2018 versions of zic"));
+ /* fallthrough */
+ case 5: ok &= mmx == ':'; /* fallthrough */
+ case 3: ok &= hhx == ':'; /* fallthrough */
+ case 1: break;
+ }
+ if (!ok) {
error("%s", errstring);
return 0;
}
@@ -1193,6 +1221,7 @@ gethms(char const *string, char const *errstring, bool signable)
error(_("time overflow"));
return 0;
}
+ ss += 5 + ((ss ^ 1) & (xr == '0')) <= tenths; /* Round to even. */
if (noise && (hh > HOURSPERDAY ||
(hh == HOURSPERDAY && (mm != 0 || ss != 0))))
warning(_("values over 24 hours not handled by pre-2007 versions of zic"));
@@ -1200,6 +1229,24 @@ warning(_("values over 24 hours not handled by pre-2007 versions of zic"));
sign * (mm * SECSPERMIN + ss));
}
+static zic_t
+getstdoff(char *field, bool *isdst)
+{
+ int dst = -1;
+ zic_t stdoff;
+ size_t fieldlen = strlen(field);
+ if (fieldlen != 0) {
+ char *ep = field + fieldlen - 1;
+ switch (*ep) {
+ case 'd': dst = 1; *ep = '\0'; break;
+ case 's': dst = 0; *ep = '\0'; break;
+ }
+ }
+ stdoff = gethms(field, _("invalid saved time"));
+ *isdst = dst < 0 ? stdoff != 0 : dst;
+ return stdoff;
+}
+
static void
inrule(char **fields, int nfields)
{
@@ -1209,13 +1256,18 @@ inrule(char **fields, int nfields)
error(_("wrong number of fields on Rule line"));
return;
}
- if (*fields[RF_NAME] == '\0') {
- error(_("nameless rule"));
+ switch (*fields[RF_NAME]) {
+ case '\0':
+ case ' ': case '\f': case '\n': case '\r': case '\t': case '\v':
+ case '+': case '-':
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ error(_("Invalid rule name \"%s\""), fields[RF_NAME]);
return;
}
r.r_filename = filename;
r.r_linenum = linenum;
- r.r_stdoff = gethms(fields[RF_STDOFF], _("invalid saved time"), true);
+ r.r_stdoff = getstdoff(fields[RF_STDOFF], &r.r_isdst);
rulesub(&r, fields[RF_LOYEAR], fields[RF_HIYEAR], fields[RF_COMMAND],
fields[RF_MONTH], fields[RF_DAY], fields[RF_TOD]);
r.r_name = ecpyalloc(fields[RF_NAME]);
@@ -1235,10 +1287,10 @@ inzone(char **fields, int nfields)
error(_("wrong number of fields on Zone line"));
return false;
}
- if (strcmp(fields[ZF_NAME], TZDEFAULT) == 0 && lcltime != NULL) {
+ if (lcltime != NULL && strcmp(fields[ZF_NAME], tzdefault) == 0) {
error(
_("\"Zone %s\" line and -l option are mutually exclusive"),
- TZDEFAULT);
+ tzdefault);
return false;
}
if (strcmp(fields[ZF_NAME], TZDEFRULES) == 0 && psxrules != NULL) {
@@ -1304,7 +1356,7 @@ inzsub(char **fields, int nfields, bool iscont)
}
z.z_filename = filename;
z.z_linenum = linenum;
- z.z_gmtoff = gethms(fields[i_gmtoff], _("invalid UT offset"), true);
+ z.z_gmtoff = gethms(fields[i_gmtoff], _("invalid UT offset"));
if ((cp = strchr(fields[i_format], '%')) != 0) {
if ((*++cp != 's' && *cp != 'z') || strchr(cp, '%')
|| strchr(fields[i_format], '/')) {
@@ -1426,7 +1478,7 @@ inleap(char **fields, int nfields)
return;
}
t = dayoff * SECSPERDAY;
- tod = gethms(fields[LP_TIME], _("invalid time of day"), false);
+ tod = gethms(fields[LP_TIME], _("invalid time of day"));
cp = fields[LP_CORR];
{
register bool positive;
@@ -1435,15 +1487,9 @@ inleap(char **fields, int nfields)
if (strcmp(cp, "") == 0) { /* infile() turns "-" into "" */
positive = false;
count = 1;
- } else if (strcmp(cp, "--") == 0) {
- positive = false;
- count = 2;
} else if (strcmp(cp, "+") == 0) {
positive = true;
count = 1;
- } else if (strcmp(cp, "++") == 0) {
- positive = true;
- count = 2;
} else {
error(_("illegal CORRECTION field on Leap line"));
return;
@@ -1455,8 +1501,8 @@ inleap(char **fields, int nfields)
return;
}
t = tadd(t, tod);
- if (t < early_time) {
- error(_("leap second precedes Big Bang"));
+ if (t < 0) {
+ error(_("leap second precedes Epoch"));
return;
}
leapadd(t, positive, lp->l_value, count);
@@ -1527,7 +1573,7 @@ rulesub(struct rule *rp, const char *loyearp, const char *hiyearp,
break;
}
}
- rp->r_tod = gethms(dp, _("invalid time of day"), false);
+ rp->r_tod = gethms(dp, _("invalid time of day"));
free(dp);
/*
** Year work.
@@ -1584,13 +1630,16 @@ rulesub(struct rule *rp, const char *loyearp, const char *hiyearp,
error(_("typed single year"));
return;
}
+ warning(_("year type \"%s\" is obsolete; use \"-\" instead"),
+ typep);
rp->r_yrtype = ecpyalloc(typep);
}
/*
** Day work.
** Accept things such as:
** 1
- ** last-Sunday
+ ** lastSunday
+ ** last-Sunday (undocumented; warn about this)
** Sun<=20
** Sun>=7
*/
@@ -1682,14 +1731,20 @@ atcomp(const void *avp, const void *bvp)
return (a < b) ? -1 : (a > b);
}
-static bool
-is32(const zic_t x)
+static void
+swaptypes(int i, int j)
{
- return INT32_MIN <= x && x <= INT32_MAX;
+ { zic_t t = gmtoffs[i]; gmtoffs[i] = gmtoffs[j]; gmtoffs[j] = t; }
+ { char t = isdsts[i]; isdsts[i] = isdsts[j]; isdsts[j] = t; }
+ { unsigned char t = abbrinds[i]; abbrinds[i] = abbrinds[j];
+ abbrinds[j] = t; }
+ { bool t = ttisstds[i]; ttisstds[i] = ttisstds[j]; ttisstds[j] = t; }
+ { bool t = ttisgmts[i]; ttisgmts[i] = ttisgmts[j]; ttisgmts[j] = t; }
}
static void
-writezone(const char *const name, const char *const string, char version)
+writezone(const char *const name, const char *const string, char version,
+ int defaulttype)
{
register FILE * fp;
register ptrdiff_t i, j;
@@ -1702,7 +1757,11 @@ writezone(const char *const name, const char *const string, char version)
zic_t one = 1;
zic_t y2038_boundary = one << 31;
ptrdiff_t nats = timecnt + WORK_AROUND_QTBUG_53071;
- zic_t *ats = emalloc(size_product(nats, sizeof *ats + 1));
+
+ /* Allocate the ATS and TYPES arrays via a single malloc,
+ as this is a bit faster. */
+ zic_t *ats = emalloc(align_to(size_product(nats, sizeof *ats + 1),
+ _Alignof(zic_t)));
void *typesptr = ats + nats;
unsigned char *types = typesptr;
@@ -1719,13 +1778,11 @@ writezone(const char *const name, const char *const string, char version)
toi = 0;
fromi = 0;
- while (fromi < timecnt && attypes[fromi].at < early_time)
- ++fromi;
for ( ; fromi < timecnt; ++fromi) {
- if (toi > 1 && ((attypes[fromi].at +
+ if (toi != 0 && ((attypes[fromi].at +
gmtoffs[attypes[toi - 1].type]) <=
- (attypes[toi - 1].at +
- gmtoffs[attypes[toi - 2].type]))) {
+ (attypes[toi - 1].at + gmtoffs[toi == 1 ? 0
+ : attypes[toi - 2].type]))) {
attypes[toi - 1].type =
attypes[fromi].type;
continue;
@@ -1755,18 +1812,6 @@ writezone(const char *const name, const char *const string, char version)
types[i] = attypes[i].type;
}
- /* Work around QTBUG-53071 for time stamps less than y2038_boundary - 1,
- by inserting a no-op transition at time y2038_boundary - 1.
- This works only for timestamps before the boundary, which
- should be good enough in practice as QTBUG-53071 should be
- long-dead by 2038. */
- if (WORK_AROUND_QTBUG_53071 && timecnt != 0
- && ats[timecnt - 1] < y2038_boundary - 1 && strchr(string, '<')) {
- ats[timecnt] = y2038_boundary - 1;
- types[timecnt] = types[timecnt - 1];
- timecnt++;
- }
-
/*
** Correct for leap seconds.
*/
@@ -1778,6 +1823,22 @@ writezone(const char *const name, const char *const string, char version)
break;
}
}
+
+ /* Work around QTBUG-53071 for timestamps less than y2038_boundary - 1,
+ by inserting a no-op transition at time y2038_boundary - 1.
+ This works only for timestamps before the boundary, which
+ should be good enough in practice as QTBUG-53071 should be
+ long-dead by 2038. Do this after correcting for leap
+ seconds, as the idea is to insert a transition just before
+ 32-bit time_t rolls around, and this occurs at a slightly
+ different moment if transitions are leap-second corrected. */
+ if (WORK_AROUND_QTBUG_53071 && timecnt != 0
+ && ats[timecnt - 1] < y2038_boundary - 1 && strchr(string, '<')) {
+ ats[timecnt] = y2038_boundary - 1;
+ types[timecnt] = types[timecnt - 1];
+ timecnt++;
+ }
+
/*
** Figure out 32-bit-limited starts and counts.
*/
@@ -1785,22 +1846,22 @@ writezone(const char *const name, const char *const string, char version)
timei32 = 0;
leapcnt32 = leapcnt;
leapi32 = 0;
- while (timecnt32 > 0 && !is32(ats[timecnt32 - 1]))
+ while (0 < timecnt32 && INT32_MAX < ats[timecnt32 - 1])
--timecnt32;
- while (timecnt32 > 0 && !is32(ats[timei32])) {
+ while (1 < timecnt32 && ats[timei32] < INT32_MIN
+ && ats[timei32 + 1] <= INT32_MIN) {
+ /* Discard too-low transitions, except keep any last too-low
+ transition if no transition is exactly at INT32_MIN.
+ The kept transition will be output as an INT32_MIN
+ "transition" appropriate for buggy 32-bit clients that do
+ not use time type 0 for timestamps before the first
+ transition; see below. */
--timecnt32;
++timei32;
}
- /*
- ** Output an INT32_MIN "transition" if appropriate; see below.
- */
- if (timei32 > 0 && ats[timei32] > INT32_MIN) {
- --timei32;
- ++timecnt32;
- }
- while (leapcnt32 > 0 && !is32(trans[leapcnt32 - 1]))
+ while (0 < leapcnt32 && INT32_MAX < trans[leapcnt32 - 1])
--leapcnt32;
- while (leapcnt32 > 0 && !is32(trans[leapi32])) {
+ while (0 < leapcnt32 && trans[leapi32] < INT32_MIN) {
--leapcnt32;
++leapi32;
}
@@ -1833,7 +1894,8 @@ writezone(const char *const name, const char *const string, char version)
for (pass = 1; pass <= 2; ++pass) {
register ptrdiff_t thistimei, thistimecnt, thistimelim;
register int thisleapi, thisleapcnt, thisleaplim;
- int writetype[TZ_MAX_TYPES];
+ int old0;
+ char omittype[TZ_MAX_TYPES];
int typemap[TZ_MAX_TYPES];
register int thistypecnt;
char thischars[TZ_MAX_CHARS];
@@ -1858,25 +1920,18 @@ writezone(const char *const name, const char *const string, char version)
error(_("too many transition times"));
thistimelim = thistimei + thistimecnt;
thisleaplim = thisleapi + thisleapcnt;
- for (i = 0; i < typecnt; ++i)
- writetype[i] = thistimecnt == timecnt;
- if (thistimecnt == 0) {
- /*
- ** No transition times fall in the current
- ** (32- or 64-bit) window.
- */
- if (typecnt != 0)
- writetype[typecnt - 1] = true;
- } else {
- for (i = thistimei - 1; i < thistimelim; ++i)
- if (i >= 0)
- writetype[types[i]] = true;
- /*
- ** For America/Godthab and Antarctica/Palmer
- */
- if (thistimei == 0)
- writetype[0] = true;
- }
+ memset(omittype, true, typecnt);
+ omittype[defaulttype] = false;
+ for (i = thistimei; i < thistimelim; i++)
+ omittype[types[i]] = false;
+
+ /* Reorder types to make DEFAULTTYPE type 0.
+ Use TYPEMAP to swap OLD0 and DEFAULTTYPE so that
+ DEFAULTTYPE appears as type 0 in the output instead
+ of OLD0. TYPEMAP also omits unused types. */
+ old0 = strlen(omittype);
+ swaptypes(old0, defaulttype);
+
#ifndef LEAVE_SOME_PRE_2011_SYSTEMS_IN_THE_LURCH
/*
** For some pre-2011 systems: if the last-to-be-written
@@ -1894,8 +1949,8 @@ writezone(const char *const name, const char *const string, char version)
if (isdsts[types[i]])
mrudst = types[i];
else mrustd = types[i];
- for (i = 0; i < typecnt; ++i)
- if (writetype[i]) {
+ for (i = old0; i < typecnt; i++)
+ if (!omittype[i]) {
if (isdsts[i])
hidst = i;
else histd = i;
@@ -1909,7 +1964,7 @@ writezone(const char *const name, const char *const string, char version)
ttisstds[mrudst],
ttisgmts[mrudst]);
isdsts[mrudst] = 1;
- writetype[type] = true;
+ omittype[type] = false;
}
if (histd >= 0 && mrustd >= 0 && histd != mrustd &&
gmtoffs[histd] != gmtoffs[mrustd]) {
@@ -1920,20 +1975,24 @@ writezone(const char *const name, const char *const string, char version)
ttisstds[mrustd],
ttisgmts[mrustd]);
isdsts[mrustd] = 0;
- writetype[type] = true;
+ omittype[type] = false;
}
}
#endif /* !defined LEAVE_SOME_PRE_2011_SYSTEMS_IN_THE_LURCH */
thistypecnt = 0;
- for (i = 0; i < typecnt; ++i)
- typemap[i] = writetype[i] ? thistypecnt++ : -1;
+ for (i = old0; i < typecnt; i++)
+ if (!omittype[i])
+ typemap[i == old0 ? defaulttype
+ : i == defaulttype ? old0 : i]
+ = thistypecnt++;
+
for (i = 0; i < sizeof indmap / sizeof indmap[0]; ++i)
indmap[i] = -1;
thischarcnt = 0;
- for (i = 0; i < typecnt; ++i) {
+ for (i = old0; i < typecnt; i++) {
register char * thisabbr;
- if (!writetype[i])
+ if (omittype[i])
continue;
if (indmap[abbrinds[i]] >= 0)
continue;
@@ -1982,8 +2041,8 @@ writezone(const char *const name, const char *const string, char version)
uc = typemap[types[i]];
fwrite(&uc, sizeof uc, 1, fp);
}
- for (i = 0; i < typecnt; ++i)
- if (writetype[i]) {
+ for (i = old0; i < typecnt; i++)
+ if (!omittype[i]) {
puttzcode(gmtoffs[i], fp);
putc(isdsts[i], fp);
putc((unsigned char) indmap[abbrinds[i]], fp);
@@ -2016,12 +2075,13 @@ writezone(const char *const name, const char *const string, char version)
else puttzcode64(todo, fp);
puttzcode(corr[i], fp);
}
- for (i = 0; i < typecnt; ++i)
- if (writetype[i])
+ for (i = old0; i < typecnt; i++)
+ if (!omittype[i])
putc(ttisstds[i], fp);
- for (i = 0; i < typecnt; ++i)
- if (writetype[i])
+ for (i = old0; i < typecnt; i++)
+ if (!omittype[i])
putc(ttisgmts[i], fp);
+ swaptypes(old0, defaulttype);
}
fprintf(fp, "\n%s\n", string);
close_file(fp, directory, name);
@@ -2044,7 +2104,7 @@ abbroffset(char *buf, zic_t offset)
minutes = offset % MINSPERHOUR;
offset /= MINSPERHOUR;
if (100 <= offset) {
- error(_("%%z UTC offset magnitude exceeds 99:59:59"));
+ error(_("%%z UT offset magnitude exceeds 99:59:59"));
return "%z";
} else {
char *p = buf;
@@ -2066,7 +2126,7 @@ abbroffset(char *buf, zic_t offset)
static size_t
doabbr(char *abbr, struct zone const *zp, char const *letters,
- zic_t stdoff, bool doquotes)
+ bool isdst, zic_t stdoff, bool doquotes)
{
register char * cp;
register char * slashp;
@@ -2081,7 +2141,7 @@ doabbr(char *abbr, struct zone const *zp, char const *letters,
else if (!letters)
letters = "%s";
sprintf(abbr, format, letters);
- } else if (stdoff != 0) {
+ } else if (isdst) {
strcpy(abbr, slashp + 1);
} else {
memcpy(abbr, format, slashp - format);
@@ -2192,7 +2252,7 @@ stringrule(char *result, const struct rule *const rp, const zic_t dstoff,
}
if (rp->r_todisgmt)
tod += gmtoff;
- if (rp->r_todisstd && rp->r_stdoff == 0)
+ if (rp->r_todisstd && !rp->r_isdst)
tod += dstoff;
if (tod != 2 * SECSPERMIN * MINSPERHOUR) {
*result++ = '/';
@@ -2249,7 +2309,7 @@ stringzone(char *result, struct zone const *zpfirst, ptrdiff_t zonecount)
continue;
if (rp->r_yrtype != NULL)
continue;
- if (rp->r_stdoff == 0) {
+ if (!rp->r_isdst) {
if (stdrp == NULL)
stdrp = rp;
else return -1;
@@ -2268,7 +2328,7 @@ stringzone(char *result, struct zone const *zpfirst, ptrdiff_t zonecount)
register struct rule *stdabbrrp = NULL;
for (i = 0; i < zp->z_nrules; ++i) {
rp = &zp->z_rules[i];
- if (rp->r_stdoff == 0 && rule_cmp(stdabbrrp, rp) < 0)
+ if (!rp->r_isdst && rule_cmp(stdabbrrp, rp) < 0)
stdabbrrp = rp;
if (rule_cmp(stdrp, rp) < 0)
stdrp = rp;
@@ -2281,13 +2341,14 @@ stringzone(char *result, struct zone const *zpfirst, ptrdiff_t zonecount)
if (stdrp != NULL && stdrp->r_hiyear == 2037)
return YEAR_BY_YEAR_ZONE;
- if (stdrp != NULL && stdrp->r_stdoff != 0) {
+ if (stdrp != NULL && stdrp->r_isdst) {
/* Perpetual DST. */
dstr.r_month = TM_JANUARY;
dstr.r_dycode = DC_DOM;
dstr.r_dayofmonth = 1;
dstr.r_tod = 0;
dstr.r_todisstd = dstr.r_todisgmt = false;
+ dstr.r_isdst = stdrp->r_isdst;
dstr.r_stdoff = stdrp->r_stdoff;
dstr.r_abbrvar = stdrp->r_abbrvar;
stdr.r_month = TM_DECEMBER;
@@ -2295,6 +2356,7 @@ stringzone(char *result, struct zone const *zpfirst, ptrdiff_t zonecount)
stdr.r_dayofmonth = 31;
stdr.r_tod = SECSPERDAY + stdrp->r_stdoff;
stdr.r_todisstd = stdr.r_todisgmt = false;
+ stdr.r_isdst = false;
stdr.r_stdoff = 0;
stdr.r_abbrvar
= (stdabbrrp ? stdabbrrp->r_abbrvar : "");
@@ -2302,10 +2364,10 @@ stringzone(char *result, struct zone const *zpfirst, ptrdiff_t zonecount)
stdrp = &stdr;
}
}
- if (stdrp == NULL && (zp->z_nrules != 0 || zp->z_stdoff != 0))
+ if (stdrp == NULL && (zp->z_nrules != 0 || zp->z_isdst))
return -1;
abbrvar = (stdrp == NULL) ? "" : stdrp->r_abbrvar;
- len = doabbr(result, zp, abbrvar, 0, true);
+ len = doabbr(result, zp, abbrvar, false, 0, true);
offsetlen = stringoffset(result + len, -zp->z_gmtoff);
if (! offsetlen) {
result[0] = '\0';
@@ -2314,7 +2376,8 @@ stringzone(char *result, struct zone const *zpfirst, ptrdiff_t zonecount)
len += offsetlen;
if (dstrp == NULL)
return compat;
- len += doabbr(result + len, zp, dstrp->r_abbrvar, dstrp->r_stdoff, true);
+ len += doabbr(result + len, zp, dstrp->r_abbrvar,
+ dstrp->r_isdst, dstrp->r_stdoff, true);
if (dstrp->r_stdoff != SECSPERMIN * MINSPERHOUR) {
offsetlen = stringoffset(result + len,
-(zp->z_gmtoff + dstrp->r_stdoff));
@@ -2372,6 +2435,7 @@ outzone(const struct zone *zpfirst, ptrdiff_t zonecount)
zic_t one = 1;
zic_t y2038_boundary = one << 31;
zic_t max_year0;
+ int defaulttype = -1;
max_abbr_len = 2 + max_format_len + max_abbrvar_len;
max_envvar_len = 2 * max_abbr_len + 5 * 9;
@@ -2480,9 +2544,9 @@ outzone(const struct zone *zpfirst, ptrdiff_t zonecount)
*/
stdoff = 0;
zp = &zpfirst[i];
- usestart = i > 0 && (zp - 1)->z_untiltime > early_time;
+ usestart = i > 0 && (zp - 1)->z_untiltime > min_time;
useuntil = i < (zonecount - 1);
- if (useuntil && zp->z_untiltime <= early_time)
+ if (useuntil && zp->z_untiltime <= min_time)
continue;
gmtoff = zp->z_gmtoff;
eat(zp->z_filename, zp->z_linenum);
@@ -2490,14 +2554,15 @@ outzone(const struct zone *zpfirst, ptrdiff_t zonecount)
startoff = zp->z_gmtoff;
if (zp->z_nrules == 0) {
stdoff = zp->z_stdoff;
- doabbr(startbuf, zp, NULL, stdoff, false);
+ doabbr(startbuf, zp, NULL, zp->z_isdst, stdoff, false);
type = addtype(oadd(zp->z_gmtoff, stdoff),
- startbuf, stdoff != 0, startttisstd,
+ startbuf, zp->z_isdst, startttisstd,
startttisgmt);
if (usestart) {
addtt(starttime, type);
usestart = false;
- } else addtt(early_time, type);
+ } else
+ defaulttype = type;
} else for (year = min_year; year <= max_year; ++year) {
if (useuntil && year > zp->z_untilrule.r_hiyear)
break;
@@ -2588,6 +2653,7 @@ outzone(const struct zone *zpfirst, ptrdiff_t zonecount)
stdoff);
doabbr(startbuf, zp,
rp->r_abbrvar,
+ rp->r_isdst,
rp->r_stdoff,
false);
continue;
@@ -2598,6 +2664,7 @@ outzone(const struct zone *zpfirst, ptrdiff_t zonecount)
doabbr(startbuf,
zp,
rp->r_abbrvar,
+ rp->r_isdst,
rp->r_stdoff,
false);
}
@@ -2605,10 +2672,12 @@ outzone(const struct zone *zpfirst, ptrdiff_t zonecount)
eats(zp->z_filename, zp->z_linenum,
rp->r_filename, rp->r_linenum);
doabbr(ab, zp, rp->r_abbrvar,
- rp->r_stdoff, false);
+ rp->r_isdst, rp->r_stdoff, false);
offset = oadd(zp->z_gmtoff, rp->r_stdoff);
- type = addtype(offset, ab, rp->r_stdoff != 0,
+ type = addtype(offset, ab, rp->r_isdst,
rp->r_todisstd, rp->r_todisgmt);
+ if (defaulttype < 0 && !rp->r_isdst)
+ defaulttype = type;
if (rp->r_hiyear == ZIC_MAX
&& ! (0 <= lastatmax
&& ktime < attypes[lastatmax].at))
@@ -2625,11 +2694,14 @@ outzone(const struct zone *zpfirst, ptrdiff_t zonecount)
eat(zp->z_filename, zp->z_linenum);
if (*startbuf == '\0')
error(_("can't determine time zone abbreviation to use just after until time"));
- else addtt(starttime,
- addtype(startoff, startbuf,
- startoff != zp->z_gmtoff,
- startttisstd,
- startttisgmt));
+ else {
+ bool isdst = startoff != zp->z_gmtoff;
+ type = addtype(startoff, startbuf, isdst,
+ startttisstd, startttisgmt);
+ if (defaulttype < 0 && !isdst)
+ defaulttype = type;
+ addtt(starttime, type);
+ }
}
/*
** Now we may get to set starttime for the next zone line.
@@ -2644,6 +2716,8 @@ error(_("can't determine time zone abbreviation to use just after until time"));
starttime = tadd(starttime, -gmtoff);
}
}
+ if (defaulttype < 0)
+ defaulttype = 0;
if (0 <= lastatmax)
attypes[lastatmax].dontmerge = true;
if (do_extend) {
@@ -2667,11 +2741,11 @@ error(_("can't determine time zone abbreviation to use just after until time"));
if (attypes[i].at > lastat->at)
lastat = &attypes[i];
if (lastat->at < rpytime(&xr, max_year - 1)) {
- addtt(rpytime(&xr, max_year + 1), typecnt-1);
+ addtt(rpytime(&xr, max_year + 1), lastat->type);
attypes[timecnt - 1].dontmerge = true;
}
}
- writezone(zpfirst->z_name, envvar, version);
+ writezone(zpfirst->z_name, envvar, version, defaulttype);
free(startbuf);
free(ab);
free(envvar);
@@ -2680,20 +2754,6 @@ error(_("can't determine time zone abbreviation to use just after until time"));
static void
addtt(zic_t starttime, int type)
{
- if (starttime <= early_time
- || (timecnt == 1 && attypes[0].at < early_time)) {
- gmtoffs[0] = gmtoffs[type];
- isdsts[0] = isdsts[type];
- ttisstds[0] = ttisstds[type];
- ttisgmts[0] = ttisgmts[type];
- if (abbrinds[type] != 0)
- strcpy(chars, &chars[abbrinds[type]]);
- abbrinds[0] = 0;
- charcnt = strlen(chars) + 1;
- typecnt = 1;
- timecnt = 0;
- type = 0;
- }
attypes = growalloc(attypes, sizeof *attypes, timecnt, &timecnt_alloc);
attypes[timecnt].at = starttime;
attypes[timecnt].dontmerge = false;
@@ -2754,13 +2814,8 @@ leapadd(zic_t t, bool positive, int rolling, int count)
exit(EXIT_FAILURE);
}
for (i = 0; i < leapcnt; ++i)
- if (t <= trans[i]) {
- if (t == trans[i]) {
- error(_("repeated leap second moment"));
- exit(EXIT_FAILURE);
- }
+ if (t <= trans[i])
break;
- }
do {
for (j = leapcnt; j > i; --j) {
trans[j] = trans[j - 1];
@@ -2779,11 +2834,17 @@ adjleap(void)
{
register int i;
register zic_t last = 0;
+ register zic_t prevtrans = 0;
/*
** propagate leap seconds forward
*/
for (i = 0; i < leapcnt; ++i) {
+ if (trans[i] - prevtrans < 28 * SECSPERDAY) {
+ error(_("Leap seconds too close together"));
+ exit(EXIT_FAILURE);
+ }
+ prevtrans = trans[i];
trans[i] = tadd(trans[i], last);
last = corr[i] += last;
}
@@ -2907,7 +2968,20 @@ itsabbr(register const char *abbr, register const char *word)
return true;
}
-static ATTRIBUTE_PURE const struct lookup *
+/* Return true if ABBR is an initial prefix of WORD, ignoring ASCII case. */
+
+static ATTRIBUTE_PURE bool
+ciprefix(char const *abbr, char const *word)
+{
+ do
+ if (!*abbr)
+ return true;
+ while (lowerit(*abbr++) == lowerit(*word++));
+
+ return false;
+}
+
+static const struct lookup *
byword(const char *word, const struct lookup *table)
{
register const struct lookup * foundlp;
@@ -2915,6 +2989,20 @@ byword(const char *word, const struct lookup *table)
if (word == NULL || table == NULL)
return NULL;
+
+ /* If TABLE is LASTS and the word starts with "last" followed
+ by a non-'-', skip the "last" and look in WDAY_NAMES instead.
+ Warn about any usage of the undocumented prefix "last-". */
+ if (table == lasts && ciprefix("last", word) && word[4]) {
+ if (word[4] == '-')
+ warning(_("\"%s\" is undocumented; use \"last%s\" instead"),
+ word, word + 5);
+ else {
+ word += 4;
+ table = wday_names;
+ }
+ }
+
/*
** Look for exact match.
*/
@@ -2926,11 +3014,25 @@ byword(const char *word, const struct lookup *table)
*/
foundlp = NULL;
for (lp = table; lp->l_word != NULL; ++lp)
- if (itsabbr(word, lp->l_word)) {
+ if (ciprefix(word, lp->l_word)) {
if (foundlp == NULL)
foundlp = lp;
else return NULL; /* multiple inexact matches */
}
+
+ /* Warn about any backward-compatibility issue with pre-2017c zic. */
+ if (foundlp) {
+ bool pre_2017c_match = false;
+ for (lp = table; lp->l_word; lp++)
+ if (itsabbr(word, lp->l_word)) {
+ if (pre_2017c_match) {
+ warning(_("\"%s\" is ambiguous in pre-2017c zic"), word);
+ break;
+ }
+ pre_2017c_match = true;
+ }
+ }
+
return foundlp;
}
@@ -3023,6 +3125,15 @@ rpytime(const struct rule *rp, zic_t wantedy)
dayoff = 0;
m = TM_JANUARY;
y = EPOCH_YEAR;
+ if (y < wantedy) {
+ wantedy -= y;
+ dayoff = (wantedy / YEARSPERREPEAT) * (SECSPERREPEAT / SECSPERDAY);
+ wantedy %= YEARSPERREPEAT;
+ wantedy += y;
+ } else if (wantedy < 0) {
+ dayoff = (wantedy / YEARSPERREPEAT) * (SECSPERREPEAT / SECSPERDAY);
+ wantedy %= YEARSPERREPEAT;
+ }
while (wantedy != y) {
if (wantedy > y) {
i = len_years[isleap(y)];
@@ -3134,11 +3245,14 @@ mkdirs(char const *argname, bool ancestors)
cp = name = ecpyalloc(argname);
+ /* On MS-Windows systems, do not worry about drive letters or
+ backslashes, as this should suffice in practice. Time zone
+ names do not use drive letters and backslashes. If the -d
+ option of zic does not name an already-existing directory,
+ it can use slashes to separate the already-existing
+ ancestor prefix from the to-be-created subdirectories. */
+
/* Do not mkdir a root directory, as it must exist. */
-#ifdef HAVE_DOS_FILE_NAMES
- if (is_alpha(name[0]) && name[1] == ':')
- cp += 2;
-#endif
while (*cp == '/')
cp++;
diff --git a/version.h b/version.h
index 543255a512..3c9e87f394 100644
--- a/version.h
+++ b/version.h
@@ -1,4 +1,4 @@
/* This file just defines the current version number of libc. */
-#define RELEASE "stable"
-#define VERSION "2.28"
+#define RELEASE "development"
+#define VERSION "2.30.9000"
diff --git a/wcsmbs/Makefile b/wcsmbs/Makefile
index 2e02b22c3b..d8e465a662 100644
--- a/wcsmbs/Makefile
+++ b/wcsmbs/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1995-2018 Free Software Foundation, Inc.
+# Copyright (C) 1995-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
# Sub-makefile for wcsmbs portion of the library.
@@ -42,7 +42,7 @@ routines := wcscat wcschr wcscmp wcscpy wcscspn wcsdup wcslen wcsncat \
wcsmbsload mbsrtowcs_l \
isoc99_wscanf isoc99_vwscanf isoc99_fwscanf isoc99_vfwscanf \
isoc99_swscanf isoc99_vswscanf \
- mbrtoc16 c16rtomb
+ mbrtoc16 c16rtomb mbrtoc32 c32rtomb
strop-tests := wcscmp wcsncmp wmemcmp wcslen wcschr wcsrchr wcscpy wcsnlen \
wcpcpy wcsncpy wcpncpy wcscat wcsncat wcschrnul wcsspn wcspbrk \
@@ -51,7 +51,8 @@ tests := tst-wcstof wcsmbs-tst1 tst-wcsnlen tst-btowc tst-mbrtowc \
tst-wcrtomb tst-wcpncpy tst-mbsrtowcs tst-wchar-h tst-mbrtowc2 \
tst-c16c32-1 wcsatcliff tst-wcstol-locale tst-wcstod-nan-locale \
tst-wcstod-round test-char-types tst-fgetwc-after-eof \
- tst-wcstod-nan-sign $(addprefix test-,$(strop-tests))
+ tst-wcstod-nan-sign tst-c16-surrogate tst-c32-state \
+ $(addprefix test-,$(strop-tests))
include ../Rules
@@ -68,6 +69,8 @@ $(objpfx)tst-wcrtomb.out: $(gen-locales)
$(objpfx)wcsmbs-tst1.out: $(gen-locales)
$(objpfx)tst-wcstol-locale.out: $(gen-locales)
$(objpfx)tst-wcstod-nan-locale.out: $(gen-locales)
+$(objpfx)tst-c16-surrogate.out: $(gen-locales)
+$(objpfx)tst-c32-state.out: $(gen-locales)
endif
$(objpfx)tst-wcstod-round: $(libm)
diff --git a/wcsmbs/bits/wchar-ldbl.h b/wcsmbs/bits/wchar-ldbl.h
index b91ee9fbf5..ae8f09800f 100644
--- a/wcsmbs/bits/wchar-ldbl.h
+++ b/wcsmbs/bits/wchar-ldbl.h
@@ -1,5 +1,5 @@
/* -mlong-double-64 compatibility mode for <wchar.h> functions.
- Copyright (C) 2006-2018 Free Software Foundation, Inc.
+ Copyright (C) 2006-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _WCHAR_H
# error "Never include <bits/wchar-ldbl.h> directly; use <wchar.h> instead."
@@ -27,9 +27,7 @@ __LDBL_REDIR_DECL (swprintf);
__LDBL_REDIR_DECL (vfwprintf);
__LDBL_REDIR_DECL (vwprintf);
__LDBL_REDIR_DECL (vswprintf);
-# if defined __USE_ISOC99 && !defined __USE_GNU \
- && !defined __REDIRECT \
- && (defined __STRICT_ANSI__ || defined __USE_XOPEN2K)
+# if !__GLIBC_USE (DEPRECATED_SCANF)
__LDBL_REDIR1_DECL (fwscanf, __nldbl___isoc99_fwscanf)
__LDBL_REDIR1_DECL (wscanf, __nldbl___isoc99_wscanf)
__LDBL_REDIR1_DECL (swscanf, __nldbl___isoc99_swscanf)
@@ -42,8 +40,7 @@ __LDBL_REDIR_DECL (swscanf);
#ifdef __USE_ISOC99
__LDBL_REDIR1_DECL (wcstold, wcstod);
-# if !defined __USE_GNU && !defined __REDIRECT \
- && (defined __STRICT_ANSI__ || defined __USE_XOPEN2K)
+# if !__GLIBC_USE (DEPRECATED_SCANF)
__LDBL_REDIR1_DECL (vfwscanf, __nldbl___isoc99_vfwscanf)
__LDBL_REDIR1_DECL (vwscanf, __nldbl___isoc99_vwscanf)
__LDBL_REDIR1_DECL (vswscanf, __nldbl___isoc99_vswscanf)
diff --git a/wcsmbs/bits/wchar2.h b/wcsmbs/bits/wchar2.h
index d62b86de3e..f3fa74c90b 100644
--- a/wcsmbs/bits/wchar2.h
+++ b/wcsmbs/bits/wchar2.h
@@ -1,5 +1,5 @@
/* Checking macros for wchar functions.
- Copyright (C) 2005-2018 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _WCHAR_H
# error "Never include <bits/wchar2.h> directly; use <wchar.h> instead."
diff --git a/wcsmbs/btowc.c b/wcsmbs/btowc.c
index 39069a28d3..a57027a320 100644
--- a/wcsmbs/btowc.c
+++ b/wcsmbs/btowc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <dlfcn.h>
diff --git a/wcsmbs/c16rtomb.c b/wcsmbs/c16rtomb.c
index 48a63d067b..7af9c15898 100644
--- a/wcsmbs/c16rtomb.c
+++ b/wcsmbs/c16rtomb.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <uchar.h>
#include <wchar.h>
@@ -26,7 +26,42 @@ static mbstate_t state;
size_t
c16rtomb (char *s, char16_t c16, mbstate_t *ps)
{
- // XXX The ISO C 11 spec I have does not say anything about handling
- // XXX surrogates in this interface.
- return wcrtomb (s, c16, ps ?: &state);
+ wchar_t wc = c16;
+
+ if (ps == NULL)
+ ps = &state;
+
+ if (s == NULL)
+ {
+ /* Reset any state relating to surrogate pairs. */
+ ps->__count &= 0x7fffffff;
+ ps->__value.__wch = 0;
+ wc = 0;
+ }
+
+ if (ps->__count & 0x80000000)
+ {
+ /* The previous call passed in the first surrogate of a
+ surrogate pair. */
+ ps->__count &= 0x7fffffff;
+ if (wc >= 0xdc00 && wc < 0xe000)
+ wc = (0x10000
+ + ((ps->__value.__wch & 0x3ff) << 10)
+ + (wc & 0x3ff));
+ else
+ /* This is not a low surrogate; ensure an EILSEQ error by
+ trying to decode the high surrogate as a wide character on
+ its own. */
+ wc = ps->__value.__wch;
+ ps->__value.__wch = 0;
+ }
+ else if (wc >= 0xd800 && wc < 0xdc00)
+ {
+ /* The high part of a surrogate pair. */
+ ps->__count |= 0x80000000;
+ ps->__value.__wch = wc;
+ return 0;
+ }
+
+ return wcrtomb (s, wc, ps);
}
diff --git a/wcsmbs/c32rtomb.c b/wcsmbs/c32rtomb.c
new file mode 100644
index 0000000000..c966e85214
--- /dev/null
+++ b/wcsmbs/c32rtomb.c
@@ -0,0 +1,32 @@
+/* Convert char32_t to multibyte.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <uchar.h>
+#include <wchar.h>
+
+
+/* This is the private state used if PS is NULL. */
+static mbstate_t state;
+
+size_t
+c32rtomb (char *s, char32_t c32, mbstate_t *ps)
+{
+ if (ps == NULL)
+ ps = &state;
+ return wcrtomb (s, c32, ps);
+}
diff --git a/wcsmbs/isoc99_fwscanf.c b/wcsmbs/isoc99_fwscanf.c
index 0c6a2c47ac..480ca9b7fb 100644
--- a/wcsmbs/isoc99_fwscanf.c
+++ b/wcsmbs/isoc99_fwscanf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libioP.h>
#include <stdarg.h>
@@ -21,20 +21,15 @@
#include <wchar.h>
/* Read formatted input from STREAM according to the format string FORMAT. */
-/* VARARGS2 */
int
__isoc99_fwscanf (FILE *stream, const wchar_t *format, ...)
{
va_list arg;
int done;
- _IO_acquire_lock_clear_flags2 (stream);
- stream->_flags2 |= _IO_FLAGS2_SCANF_STD;
-
va_start (arg, format);
- done = _IO_vfwscanf (stream, format, arg, NULL);
+ done = __vfwscanf_internal (stream, format, arg, SCANF_ISOC99_A);
va_end (arg);
- _IO_release_lock (stream);
return done;
}
diff --git a/wcsmbs/isoc99_swscanf.c b/wcsmbs/isoc99_swscanf.c
index ff523db706..c29e5ad59e 100644
--- a/wcsmbs/isoc99_swscanf.c
+++ b/wcsmbs/isoc99_swscanf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -13,23 +13,24 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdarg.h>
-#include <stdio.h>
-#include <libioP.h>
-#include <wchar.h>
+#include <libio/strfile.h>
/* Read formatted input from S, according to the format string FORMAT. */
-/* VARARGS2 */
+
int
__isoc99_swscanf (const wchar_t *s, const wchar_t *format, ...)
{
va_list arg;
int done;
+ _IO_strfile sf;
+ struct _IO_wide_data wd;
+ FILE *f = _IO_strfile_readw (&sf, &wd, s);
va_start (arg, format);
- done = __isoc99_vswscanf (s, format, arg);
+ done = __vfwscanf_internal (f, format, arg, SCANF_ISOC99_A);
va_end (arg);
return done;
diff --git a/wcsmbs/isoc99_vfwscanf.c b/wcsmbs/isoc99_vfwscanf.c
index 7beb45b4d3..bd4e86df8c 100644
--- a/wcsmbs/isoc99_vfwscanf.c
+++ b/wcsmbs/isoc99_vfwscanf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -13,23 +13,16 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libioP.h>
#include <stdio.h>
#include <wchar.h>
/* Read formatted input from STREAM according to the format string FORMAT. */
-/* VARARGS2 */
int
__isoc99_vfwscanf (FILE *stream, const wchar_t *format, va_list args)
{
- int done;
-
- _IO_acquire_lock_clear_flags2 (stream);
- stream->_flags2 |= _IO_FLAGS2_SCANF_STD;
- done = _IO_vfwscanf (stream, format, args, NULL);
- _IO_release_lock (stream);
- return done;
+ return __vfwscanf_internal (stream, format, args, SCANF_ISOC99_A);
}
libc_hidden_def (__isoc99_vfwscanf)
diff --git a/wcsmbs/isoc99_vswscanf.c b/wcsmbs/isoc99_vswscanf.c
index 130769154d..678a40c5a1 100644
--- a/wcsmbs/isoc99_vswscanf.c
+++ b/wcsmbs/isoc99_vswscanf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1993-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
@@ -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
- <http://www.gnu.org/licenses/>.
+ <https://www.gnu.org/licenses/>.
As a special exception, if you link the code in this file with
files compiled with a GNU compiler to produce an executable,
@@ -24,24 +24,15 @@
This exception applies to code released by its copyright holders
in files containing the exception. */
-#include <libioP.h>
#include <wchar.h>
-#include "../libio/strfile.h"
+#include <libio/strfile.h>
int
__isoc99_vswscanf (const wchar_t *string, const wchar_t *format, va_list args)
{
- int ret;
_IO_strfile sf;
struct _IO_wide_data wd;
-#ifdef _IO_MTSAFE_IO
- sf._sbf._f._lock = NULL;
-#endif
- _IO_no_init (&sf._sbf._f, _IO_USER_LOCK, 0, &wd, &_IO_wstr_jumps);
- _IO_fwide (&sf._sbf._f, 1);
- _IO_wstr_init_static (&sf._sbf._f, (wchar_t *)string, 0, NULL);
- sf._sbf._f._flags2 |= _IO_FLAGS2_SCANF_STD;
- ret = _IO_vfwscanf ((FILE *) &sf._sbf, format, args, NULL);
- return ret;
+ FILE *f = _IO_strfile_readw (&sf, &wd, string);
+ return __vfwscanf_internal (f, format, args, SCANF_ISOC99_A);
}
libc_hidden_def (__isoc99_vswscanf)
diff --git a/wcsmbs/isoc99_vwscanf.c b/wcsmbs/isoc99_vwscanf.c
index 049521b964..0680684290 100644
--- a/wcsmbs/isoc99_vwscanf.c
+++ b/wcsmbs/isoc99_vwscanf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -13,22 +13,15 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <libioP.h>
#include <stdio.h>
#include <wchar.h>
/* Read formatted input from STDIN according to the format string FORMAT. */
-/* VARARGS2 */
int
__isoc99_vwscanf (const wchar_t *format, va_list args)
{
- int done;
-
- _IO_acquire_lock_clear_flags2 (stdin);
- stdin->_flags2 |= _IO_FLAGS2_SCANF_STD;
- done = _IO_vfwscanf (stdin, format, args, NULL);
- _IO_release_lock (stdin);
- return done;
+ return __vfwscanf_internal (stdin, format, args, SCANF_ISOC99_A);
}
diff --git a/wcsmbs/isoc99_wscanf.c b/wcsmbs/isoc99_wscanf.c
index abfbd50c11..f59b7620ce 100644
--- a/wcsmbs/isoc99_wscanf.c
+++ b/wcsmbs/isoc99_wscanf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdarg.h>
#include <stdio.h>
@@ -22,20 +22,15 @@
/* Read formatted input from stdin according to the format string FORMAT. */
-/* VARARGS1 */
int
__isoc99_wscanf (const wchar_t *format, ...)
{
va_list arg;
int done;
- _IO_acquire_lock_clear_flags2 (stdin);
- stdin->_flags2 |= _IO_FLAGS2_SCANF_STD;
-
va_start (arg, format);
- done = _IO_vfwscanf (stdin, format, arg, NULL);
+ done = __vfwscanf_internal (stdin, format, arg, SCANF_ISOC99_A);
va_end (arg);
- _IO_release_lock (stdin);
return done;
}
diff --git a/wcsmbs/mbrlen.c b/wcsmbs/mbrlen.c
index 405a7aefe3..2a2844c2e3 100644
--- a/wcsmbs/mbrlen.c
+++ b/wcsmbs/mbrlen.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <wchar.h>
diff --git a/wcsmbs/mbrtoc16.c b/wcsmbs/mbrtoc16.c
index e054743cd0..23906d3fec 100644
--- a/wcsmbs/mbrtoc16.c
+++ b/wcsmbs/mbrtoc16.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gmail.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <dlfcn.h>
diff --git a/wcsmbs/mbrtoc32.c b/wcsmbs/mbrtoc32.c
new file mode 100644
index 0000000000..4fc470d016
--- /dev/null
+++ b/wcsmbs/mbrtoc32.c
@@ -0,0 +1,32 @@
+/* Convert multibyte to char32_t.
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <uchar.h>
+#include <wchar.h>
+
+
+/* This is the private state used if PS is NULL. */
+static mbstate_t state;
+
+size_t
+mbrtoc32 (char32_t *pc32, const char *s, size_t n, mbstate_t *ps)
+{
+ if (ps == NULL)
+ ps = &state;
+ return mbrtowc ((wchar_t *) pc32, s, n, ps);
+}
diff --git a/wcsmbs/mbrtowc.c b/wcsmbs/mbrtowc.c
index 954933d068..e4fd729ead 100644
--- a/wcsmbs/mbrtowc.c
+++ b/wcsmbs/mbrtowc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <dlfcn.h>
@@ -122,8 +122,3 @@ __mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
libc_hidden_def (__mbrtowc)
weak_alias (__mbrtowc, mbrtowc)
libc_hidden_weak (mbrtowc)
-
-/* There should be no difference between the UTF-32 handling required
- by mbrtoc32 and the wchar_t handling which has long since been
- implemented in mbrtowc. */
-weak_alias (__mbrtowc, mbrtoc32)
diff --git a/wcsmbs/mbsinit.c b/wcsmbs/mbsinit.c
index d2a0668193..d1c2081fb0 100644
--- a/wcsmbs/mbsinit.c
+++ b/wcsmbs/mbsinit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <string.h>
#include <wchar.h>
diff --git a/wcsmbs/mbsnrtowcs.c b/wcsmbs/mbsnrtowcs.c
index aef7858082..ce1ce54f07 100644
--- a/wcsmbs/mbsnrtowcs.c
+++ b/wcsmbs/mbsnrtowcs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <dlfcn.h>
diff --git a/wcsmbs/mbsrtowcs.c b/wcsmbs/mbsrtowcs.c
index ed854e792b..5c03d1be8a 100644
--- a/wcsmbs/mbsrtowcs.c
+++ b/wcsmbs/mbsrtowcs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <wchar.h>
#include <locale/localeinfo.h>
diff --git a/wcsmbs/mbsrtowcs_l.c b/wcsmbs/mbsrtowcs_l.c
index c86055b505..527f4722ff 100644
--- a/wcsmbs/mbsrtowcs_l.c
+++ b/wcsmbs/mbsrtowcs_l.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <ctype.h>
diff --git a/wcsmbs/test-char-types.c b/wcsmbs/test-char-types.c
index 31237619d2..efda40d2ea 100644
--- a/wcsmbs/test-char-types.c
+++ b/wcsmbs/test-char-types.c
@@ -1,5 +1,5 @@
/* Test char16_t and char32_t types consistent with compiler.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <uchar.h>
diff --git a/wcsmbs/test-wcpcpy.c b/wcsmbs/test-wcpcpy.c
index 78ea4da2fd..7f6d60f3ce 100644
--- a/wcsmbs/test-wcpcpy.c
+++ b/wcsmbs/test-wcpcpy.c
@@ -1,5 +1,5 @@
/* Test wcspcpy functions.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define WIDE 1
#include "../string/test-stpcpy.c"
diff --git a/wcsmbs/test-wcpncpy.c b/wcsmbs/test-wcpncpy.c
index e86a51c7be..133e950572 100644
--- a/wcsmbs/test-wcpncpy.c
+++ b/wcsmbs/test-wcpncpy.c
@@ -1,5 +1,5 @@
/* Test wcpncpy functions.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define WIDE 1
#include "../string/test-stpncpy.c"
diff --git a/wcsmbs/test-wcscat.c b/wcsmbs/test-wcscat.c
index 22c64de38e..79d5457f95 100644
--- a/wcsmbs/test-wcscat.c
+++ b/wcsmbs/test-wcscat.c
@@ -1,5 +1,5 @@
/* Test wcscat functions.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define WIDE 1
#include "../string/test-strcat.c"
diff --git a/wcsmbs/test-wcschrnul.c b/wcsmbs/test-wcschrnul.c
index 10610f32cf..1f4acec957 100644
--- a/wcsmbs/test-wcschrnul.c
+++ b/wcsmbs/test-wcschrnul.c
@@ -1,5 +1,5 @@
/* Test wcschrnul functions.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define WIDE 1
#include "../string/test-strchrnul.c"
diff --git a/wcsmbs/test-wcscspn.c b/wcsmbs/test-wcscspn.c
index 3b37bda6a2..772147718d 100644
--- a/wcsmbs/test-wcscspn.c
+++ b/wcsmbs/test-wcscspn.c
@@ -1,5 +1,5 @@
/* Test wcscspn functions.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define WIDE 1
#include "../string/test-strcspn.c"
diff --git a/wcsmbs/test-wcsncat.c b/wcsmbs/test-wcsncat.c
index 4532995412..87916e7836 100644
--- a/wcsmbs/test-wcsncat.c
+++ b/wcsmbs/test-wcsncat.c
@@ -1,5 +1,5 @@
/* Test wcsncat functions.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define WIDE 1
#include "../string/test-strncat.c"
diff --git a/wcsmbs/test-wcsncpy.c b/wcsmbs/test-wcsncpy.c
index 98f98b1e37..5dc03e5605 100644
--- a/wcsmbs/test-wcsncpy.c
+++ b/wcsmbs/test-wcsncpy.c
@@ -1,5 +1,5 @@
/* Test wcsncpy functions.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define WIDE 1
#include "../string/test-strncpy.c"
diff --git a/wcsmbs/test-wcsnlen.c b/wcsmbs/test-wcsnlen.c
index 0f7a1b8769..5ff3aeeafb 100644
--- a/wcsmbs/test-wcsnlen.c
+++ b/wcsmbs/test-wcsnlen.c
@@ -1,5 +1,5 @@
/* Test wcsnlen function.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define WIDE 1
#include "../string/test-strnlen.c"
diff --git a/wcsmbs/test-wcspbrk.c b/wcsmbs/test-wcspbrk.c
index 31206485cf..74f8a0bd9d 100644
--- a/wcsmbs/test-wcspbrk.c
+++ b/wcsmbs/test-wcspbrk.c
@@ -1,5 +1,5 @@
/* Test wcspbrk functions.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define WIDE 1
#include "../string/test-strpbrk.c"
diff --git a/wcsmbs/test-wcsspn.c b/wcsmbs/test-wcsspn.c
index 395f44431d..7f362a3fc9 100644
--- a/wcsmbs/test-wcsspn.c
+++ b/wcsmbs/test-wcsspn.c
@@ -1,5 +1,5 @@
/* Test wcsspn functions.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define WIDE 1
#include "../string/test-strspn.c"
diff --git a/wcsmbs/test-wmemchr.c b/wcsmbs/test-wmemchr.c
index 36d890bd69..94392d515b 100644
--- a/wcsmbs/test-wmemchr.c
+++ b/wcsmbs/test-wmemchr.c
@@ -1,5 +1,5 @@
/* Test wmemchr functions.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define WIDE 1
#include "../string/test-memchr.c"
diff --git a/wcsmbs/test-wmemset.c b/wcsmbs/test-wmemset.c
index 856663d04b..e614fe15e7 100644
--- a/wcsmbs/test-wmemset.c
+++ b/wcsmbs/test-wmemset.c
@@ -1,5 +1,5 @@
/* Test wmemset functions.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define WIDE 1
#include "../string/test-memset.c"
diff --git a/wcsmbs/tst-btowc.c b/wcsmbs/tst-btowc.c
index 39ad0c23c0..6dbbad25b9 100644
--- a/wcsmbs/tst-btowc.c
+++ b/wcsmbs/tst-btowc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <locale.h>
#include <stdio.h>
diff --git a/wcsmbs/tst-c16-surrogate.c b/wcsmbs/tst-c16-surrogate.c
new file mode 100644
index 0000000000..19e22099a5
--- /dev/null
+++ b/wcsmbs/tst-c16-surrogate.c
@@ -0,0 +1,89 @@
+/* Test c16rtomb handling of surrogate pairs (DR#488, bug 23794).
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <locale.h>
+#include <stdio.h>
+#include <string.h>
+#include <uchar.h>
+#include <wchar.h>
+#include <array_length.h>
+#include <support/check.h>
+
+static int
+do_test (void)
+{
+ TEST_VERIFY_EXIT (setlocale (LC_ALL, "de_DE.UTF-8") != NULL);
+ /* Test conversions of surrogate pairs. */
+ for (char32_t c = 0x10000; c <= 0x10ffff; c += 0x123)
+ {
+ char32_t c_pos = c - 0x10000;
+ char16_t c_hi = (c_pos >> 10) + 0xd800;
+ char16_t c_lo = (c_pos & 0x3ff) + 0xdc00;
+ printf ("testing U+0x%08x (0x%x 0x%x)\n",
+ (unsigned int) c, (unsigned int) c_hi, (unsigned int) c_lo);
+ char buf[16] = { 0 };
+ size_t ret_hi = c16rtomb (buf, c_hi, NULL);
+ TEST_COMPARE (ret_hi, 0);
+ size_t ret_lo = c16rtomb (buf, c_lo, NULL);
+ TEST_COMPARE (ret_lo, 4);
+ wchar_t wc = 0;
+ size_t ret_wc = mbrtowc (&wc, buf, 4, NULL);
+ TEST_COMPARE (ret_wc, 4);
+ TEST_COMPARE (wc, (wchar_t) c);
+ }
+ /* Test errors for invalid conversions. */
+ static const char16_t err_cases[][2] =
+ {
+ /* High surrogate followed by non-surrogate. */
+ { 0xd800, 0x1 },
+ /* High surrogate followed by another high surrogate. */
+ { 0xd800, 0xd800 },
+ /* Low surrogate not following high surrogate. */
+ { 0xdc00, 0 }
+ };
+ for (size_t i = 0; i < array_length (err_cases); i++)
+ {
+ char16_t c_hi = err_cases[i][0];
+ char16_t c_lo = err_cases[i][1];
+ printf ("testing error case: 0x%x 0x%x\n", (unsigned int) c_hi,
+ (unsigned int) c_lo);
+ c16rtomb (NULL, 0, NULL);
+ char buf[16] = { 0 };
+ errno = 0;
+ size_t ret_hi = c16rtomb (buf, c_hi, NULL);
+ if (c_lo == 0)
+ {
+ /* Unmatched low surrogate in first place. */
+ TEST_COMPARE (ret_hi, (size_t) -1);
+ TEST_COMPARE (errno, EILSEQ);
+ }
+ else
+ {
+ /* High surrogate; error in second place. */
+ TEST_COMPARE (ret_hi, 0);
+ errno = 0;
+ size_t ret_lo = c16rtomb (buf, c_lo, NULL);
+ TEST_COMPARE (ret_lo, (size_t) -1);
+ TEST_COMPARE (errno, EILSEQ);
+ }
+ }
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/wcsmbs/tst-c32-state.c b/wcsmbs/tst-c32-state.c
new file mode 100644
index 0000000000..44bacd3185
--- /dev/null
+++ b/wcsmbs/tst-c32-state.c
@@ -0,0 +1,44 @@
+/* Test mbrtowc and mbrtoc32 do not share state (bug 23793).
+ Copyright (C) 2018-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
+ <https://www.gnu.org/licenses/>. */
+
+#include <locale.h>
+#include <uchar.h>
+#include <wchar.h>
+#include <support/check.h>
+
+static int
+do_test (void)
+{
+ TEST_VERIFY_EXIT (setlocale (LC_ALL, "de_DE.UTF-8") != NULL);
+ const char buf[] = "\u00ff";
+ wchar_t wc = 0;
+ char32_t c32 = 0;
+ size_t ret = mbrtowc (&wc, buf, 1, NULL);
+ TEST_COMPARE (ret, (size_t) -2);
+ ret = mbrtoc32 (&c32, buf, 1, NULL);
+ TEST_COMPARE (ret, (size_t) -2);
+ ret = mbrtowc (&wc, buf + 1, 1, NULL);
+ TEST_COMPARE (ret, 1);
+ TEST_COMPARE (wc, 0xff);
+ ret = mbrtoc32 (&c32, buf + 1, 1, NULL);
+ TEST_COMPARE (ret, 1);
+ TEST_COMPARE (c32, 0xff);
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/wcsmbs/tst-mbrtowc.c b/wcsmbs/tst-mbrtowc.c
index 511859013c..6534d856de 100644
--- a/wcsmbs/tst-mbrtowc.c
+++ b/wcsmbs/tst-mbrtowc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/* We always want assert to be fully defined. */
#undef NDEBUG
diff --git a/wcsmbs/tst-mbsrtowcs.c b/wcsmbs/tst-mbsrtowcs.c
index 253ef2b278..1856ada1f8 100644
--- a/wcsmbs/tst-mbsrtowcs.c
+++ b/wcsmbs/tst-mbsrtowcs.c
@@ -1,5 +1,5 @@
/* Test NUL handling of mbsrtowcs.
- Copyright (C) 2004-2018 Free Software Foundation, Inc.
+ Copyright (C) 2004-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <string.h>
diff --git a/wcsmbs/tst-wcpncpy.c b/wcsmbs/tst-wcpncpy.c
index 5ec42d2f53..ef92b63799 100644
--- a/wcsmbs/tst-wcpncpy.c
+++ b/wcsmbs/tst-wcpncpy.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <wchar.h>
diff --git a/wcsmbs/tst-wcrtomb.c b/wcsmbs/tst-wcrtomb.c
index 7d146751dd..ad700385d1 100644
--- a/wcsmbs/tst-wcrtomb.c
+++ b/wcsmbs/tst-wcrtomb.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <locale.h>
#include <stdio.h>
diff --git a/wcsmbs/tst-wcsnlen.c b/wcsmbs/tst-wcsnlen.c
index 5aff054e5d..bd5c92d1f7 100644
--- a/wcsmbs/tst-wcsnlen.c
+++ b/wcsmbs/tst-wcsnlen.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <wchar.h>
diff --git a/wcsmbs/tst-wcstod-nan-locale.c b/wcsmbs/tst-wcstod-nan-locale.c
index 1435a426dc..8e8db8f471 100644
--- a/wcsmbs/tst-wcstod-nan-locale.c
+++ b/wcsmbs/tst-wcstod-nan-locale.c
@@ -1,6 +1,6 @@
/* Test strtod functions work with all ASCII letters in NAN(...) in
Turkish locales (bug 19266). Wide string version.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define CHAR wchar_t
#define SFMT "L\"%ls\""
diff --git a/wcsmbs/tst-wcstod-nan-sign.c b/wcsmbs/tst-wcstod-nan-sign.c
index 4c40e50f4f..cda8f2f17e 100644
--- a/wcsmbs/tst-wcstod-nan-sign.c
+++ b/wcsmbs/tst-wcstod-nan-sign.c
@@ -1,6 +1,6 @@
/* Test strtod functions handle signs of NaNs (bug 23007).
Wide string version.
- Copyright (C) 2018 Free Software Foundation, Inc.
+ Copyright (C) 2018-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define FNPFX wcsto
#define L_(C) L ## C
diff --git a/wcsmbs/tst-wcstod-round.c b/wcsmbs/tst-wcstod-round.c
index 9db907972f..3ec414be14 100644
--- a/wcsmbs/tst-wcstod-round.c
+++ b/wcsmbs/tst-wcstod-round.c
@@ -1,5 +1,5 @@
/* wide character shim for tst-strtod-round-skeleton.c.
- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <wchar.h>
diff --git a/wcsmbs/tst-wcstol-locale.c b/wcsmbs/tst-wcstol-locale.c
index db75145338..677d925e71 100644
--- a/wcsmbs/tst-wcstol-locale.c
+++ b/wcsmbs/tst-wcstol-locale.c
@@ -1,6 +1,6 @@
/* Test strtol functions work with all ASCII letters in Turkish
locales (bug 19242). Wide string version.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define CHAR wchar_t
#define SFMT "L\"%ls\""
diff --git a/wcsmbs/uchar.h b/wcsmbs/uchar.h
index 4d9b2ec14d..7b09ecedcc 100644
--- a/wcsmbs/uchar.h
+++ b/wcsmbs/uchar.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
+/* 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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* ISO C11 Standard: 7.28
diff --git a/wcsmbs/wchar.h b/wcsmbs/wchar.h
index 6c94f3ebc6..fc62fa3e26 100644
--- a/wcsmbs/wchar.h
+++ b/wcsmbs/wchar.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* ISO C99 Standard: 7.24
@@ -632,13 +632,11 @@ extern int swscanf (const wchar_t *__restrict __s,
const wchar_t *__restrict __format, ...)
__THROW /* __attribute__ ((__format__ (__wscanf__, 2, 3))) */;
-# if defined __USE_ISOC99 && !defined __USE_GNU \
- && (!defined __LDBL_COMPAT || !defined __REDIRECT) \
- && (defined __STRICT_ANSI__ || defined __USE_XOPEN2K)
+/* For historical reasons, the C99-compliant versions of the scanf
+ functions are at alternative names. When __LDBL_COMPAT is in
+ effect, this is handled in bits/wchar-ldbl.h. */
+#if !__GLIBC_USE (DEPRECATED_SCANF) && !defined __LDBL_COMPAT
# ifdef __REDIRECT
-/* For strict ISO C99 or POSIX compliance disallow %as, %aS and %a[
- GNU extension which conflicts with valid %a followed by letter
- s, S or [. */
extern int __REDIRECT (fwscanf, (__FILE *__restrict __stream,
const wchar_t *__restrict __format, ...),
__isoc99_fwscanf)
@@ -687,7 +685,8 @@ extern int vswscanf (const wchar_t *__restrict __s,
__gnuc_va_list __arg)
__THROW /* __attribute__ ((__format__ (__wscanf__, 2, 0))) */;
-# if !defined __USE_GNU \
+/* Same redirection as above for the v*wscanf family. */
+# if !__GLIBC_USE (DEPRECATED_SCANF) \
&& (!defined __LDBL_COMPAT || !defined __REDIRECT) \
&& (defined __STRICT_ANSI__ || defined __USE_XOPEN2K)
# ifdef __REDIRECT
diff --git a/wcsmbs/wcpcpy.c b/wcsmbs/wcpcpy.c
index af0cf28d74..a1c26409aa 100644
--- a/wcsmbs/wcpcpy.c
+++ b/wcsmbs/wcpcpy.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1996.
@@ -14,35 +14,22 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <wchar.h>
-#define __need_ptrdiff_t
-#include <stddef.h>
-
#ifdef WCPCPY
# define __wcpcpy WCPCPY
#endif
+
/* Copy SRC to DEST, returning the address of the terminating L'\0' in
DEST. */
wchar_t *
__wcpcpy (wchar_t *dest, const wchar_t *src)
{
- wchar_t *wcp = (wchar_t *) dest - 1;
- wint_t c;
- const ptrdiff_t off = src - dest + 1;
-
- do
- {
- c = wcp[off];
- *++wcp = c;
- }
- while (c != L'\0');
-
- return wcp;
+ size_t len = __wcslen (src);
+ return __wmemcpy (dest, src, len + 1) + len;
}
-
#ifndef WCPCPY
weak_alias (__wcpcpy, wcpcpy)
#endif
diff --git a/wcsmbs/wcpncpy.c b/wcsmbs/wcpncpy.c
index e633faf797..c39d3284ad 100644
--- a/wcsmbs/wcpncpy.c
+++ b/wcsmbs/wcpncpy.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <wchar.h>
@@ -27,59 +27,12 @@
wchar_t *
__wcpncpy (wchar_t *dest, const wchar_t *src, size_t n)
{
- wint_t c;
- wchar_t *const s = dest;
-
- if (n >= 4)
- {
- size_t n4 = n >> 2;
-
- for (;;)
- {
- c = *src++;
- *dest++ = c;
- if (c == L'\0')
- break;
- c = *src++;
- *dest++ = c;
- if (c == L'\0')
- break;
- c = *src++;
- *dest++ = c;
- if (c == L'\0')
- break;
- c = *src++;
- *dest++ = c;
- if (c == L'\0')
- break;
- if (--n4 == 0)
- goto last_chars;
- }
- n -= dest - s;
- goto zero_fill;
- }
-
- last_chars:
- n &= 3;
- if (n == 0)
+ size_t size = __wcsnlen (src, n);
+ __wmemcpy (dest, src, size);
+ dest += size;
+ if (size == n)
return dest;
-
- for (;;)
- {
- c = *src++;
- --n;
- *dest++ = c;
- if (c == L'\0')
- break;
- if (n == 0)
- return dest;
- }
-
- zero_fill:
- while (n-- > 0)
- dest[n] = L'\0';
-
- return dest - 1;
+ return wmemset (dest, L'\0', (n - size));
}
#ifndef WCPNCPY
diff --git a/wcsmbs/wcrtomb.c b/wcsmbs/wcrtomb.c
index 23f122599a..6ea3c09cb4 100644
--- a/wcsmbs/wcrtomb.c
+++ b/wcsmbs/wcrtomb.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <dlfcn.h>
@@ -113,8 +113,3 @@ __wcrtomb (char *s, wchar_t wc, mbstate_t *ps)
}
weak_alias (__wcrtomb, wcrtomb)
libc_hidden_weak (wcrtomb)
-
-/* There should be no difference between the UTF-32 handling required
- by c32rtomb and the wchar_t handling which has long since been
- implemented in wcrtomb. */
-weak_alias (__wcrtomb, c32rtomb)
diff --git a/wcsmbs/wcscasecmp.c b/wcsmbs/wcscasecmp.c
index e2d7f7ce84..f1c7ab248d 100644
--- a/wcsmbs/wcscasecmp.c
+++ b/wcsmbs/wcscasecmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1991-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
diff --git a/wcsmbs/wcscasecmp_l.c b/wcsmbs/wcscasecmp_l.c
index bbe50c607a..a5b6dff863 100644
--- a/wcsmbs/wcscasecmp_l.c
+++ b/wcsmbs/wcscasecmp_l.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define USE_IN_EXTENDED_LOCALE_MODEL 1
#include <wcscasecmp.c>
diff --git a/wcsmbs/wcscat.c b/wcsmbs/wcscat.c
index 5fe4e02adc..54ce191fd4 100644
--- a/wcsmbs/wcscat.c
+++ b/wcsmbs/wcscat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <wchar.h>
@@ -26,26 +26,7 @@
wchar_t *
__wcscat (wchar_t *dest, const wchar_t *src)
{
- wchar_t *s1 = dest;
- const wchar_t *s2 = src;
- wchar_t c;
-
- /* Find the end of the string. */
- do
- c = *s1++;
- while (c != L'\0');
-
- /* Make S1 point before the next character, so we can increment
- it while memory is read (wins on pipelined cpus). */
- s1 -= 2;
-
- do
- {
- c = *s2++;
- *++s1 = c;
- }
- while (c != L'\0');
-
+ __wcscpy (dest + __wcslen (dest), src);
return dest;
}
#ifndef WCSCAT
diff --git a/wcsmbs/wcschr.c b/wcsmbs/wcschr.c
index 2136050f7a..6aca9bbcad 100644
--- a/wcsmbs/wcschr.c
+++ b/wcsmbs/wcschr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -13,9 +13,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <wchar.h>
+#include <loop_unroll.h>
#ifndef WCSCHR
# define WCSCHR __wcschr
@@ -25,12 +26,23 @@
wchar_t *
WCSCHR (const wchar_t *wcs, const wchar_t wc)
{
- do
- if (*wcs == wc)
- return (wchar_t *) wcs;
- while (*wcs++ != L'\0');
+ wchar_t *dest = NULL;
- return NULL;
+#define ITERATION(index) \
+ ({ \
+ if (*wcs == wc) \
+ dest = (wchar_t*) wcs; \
+ dest == NULL && *wcs++ != L'\0'; \
+ })
+
+#ifndef UNROLL_NTIMES
+# define UNROLL_NTIMES 1
+#endif
+
+ while (1)
+ UNROLL_REPEAT (UNROLL_NTIMES, ITERATION);
+
+ return dest;
}
libc_hidden_def (__wcschr)
weak_alias (__wcschr, wcschr)
diff --git a/wcsmbs/wcschrnul.c b/wcsmbs/wcschrnul.c
index af35da8ae3..a6af33d951 100644
--- a/wcsmbs/wcschrnul.c
+++ b/wcsmbs/wcschrnul.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <wchar.h>
diff --git a/wcsmbs/wcscmp.c b/wcsmbs/wcscmp.c
index 254bc7e257..bb06728050 100644
--- a/wcsmbs/wcscmp.c
+++ b/wcsmbs/wcscmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <wchar.h>
diff --git a/wcsmbs/wcscoll.c b/wcsmbs/wcscoll.c
index eb71842b8b..2693445cc1 100644
--- a/wcsmbs/wcscoll.c
+++ b/wcsmbs/wcscoll.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <wchar.h>
#include "../locale/coll-lookup.h"
diff --git a/wcsmbs/wcscoll_l.c b/wcsmbs/wcscoll_l.c
index 2f0fa2fe27..602b281fb6 100644
--- a/wcsmbs/wcscoll_l.c
+++ b/wcsmbs/wcscoll_l.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <wchar.h>
diff --git a/wcsmbs/wcscpy.c b/wcsmbs/wcscpy.c
index 31a2dd0897..1d3ca33cbf 100644
--- a/wcsmbs/wcscpy.c
+++ b/wcsmbs/wcscpy.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
@@ -14,47 +14,41 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#include <stddef.h>
#include <wchar.h>
+#include <loop_unroll.h>
-#ifndef WCSCPY
-# define WCSCPY wcscpy
+#ifdef WCSCPY
+# define __wcscpy WCSCPY
#endif
/* Copy SRC to DEST. */
wchar_t *
-WCSCPY (wchar_t *dest, const wchar_t *src)
+__wcscpy (wchar_t *dest, const wchar_t *src)
{
- wint_t c;
- wchar_t *wcp;
-
- if (__alignof__ (wchar_t) >= sizeof (wchar_t))
- {
- const ptrdiff_t off = dest - src - 1;
-
- wcp = (wchar_t *) src;
-
- do
- {
- c = *wcp++;
- wcp[off] = c;
- }
- while (c != L'\0');
- }
- else
- {
- wcp = dest;
-
- do
- {
- c = *src++;
- *wcp++ = c;
- }
- while (c != L'\0');
- }
-
+#ifndef UNROLL_NTIMES
+ return __wmemcpy (dest, src, __wcslen (src) + 1);
+#else
+ /* Some architectures might have costly tail function call (powerpc
+ for instance) where wmemcpy call overhead for smalls sizes might
+ be more costly than just unrolling the main loop. */
+ wchar_t *wcp = dest;
+
+#define ITERATION(index) \
+ ({ \
+ wchar_t c = *src++; \
+ *wcp++ = c; \
+ c != L'\0'; \
+ })
+
+ while (1)
+ UNROLL_REPEAT(UNROLL_NTIMES, ITERATION);
return dest;
+#endif
}
+#ifndef WCSCPY
+weak_alias (__wcscpy, wcscpy)
+libc_hidden_def (__wcscpy)
+#endif
diff --git a/wcsmbs/wcscspn.c b/wcsmbs/wcscspn.c
index 845f532c82..2e3d65ca56 100644
--- a/wcsmbs/wcscspn.c
+++ b/wcsmbs/wcscspn.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <wchar.h>
diff --git a/wcsmbs/wcsdup.c b/wcsmbs/wcsdup.c
index cebf6eda95..1df5230069 100644
--- a/wcsmbs/wcsdup.c
+++ b/wcsmbs/wcsdup.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <wchar.h>
#include <string.h>
diff --git a/wcsmbs/wcslen.c b/wcsmbs/wcslen.c
index cfb076e469..482839a89f 100644
--- a/wcsmbs/wcslen.c
+++ b/wcsmbs/wcslen.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <wchar.h>
diff --git a/wcsmbs/wcsmbsload.c b/wcsmbs/wcsmbsload.c
index 02cf94bab8..39611b7636 100644
--- a/wcsmbs/wcsmbsload.c
+++ b/wcsmbs/wcsmbsload.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@@ -14,12 +14,13 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <langinfo.h>
#include <limits.h>
#include <stdlib.h>
+#include <stdio.h>
#include <string.h>
#include <locale/localeinfo.h>
@@ -223,12 +224,25 @@ __wcsmbs_clone_conv (struct gconv_fcts *copy)
/* Copy the data. */
*copy = *orig;
- /* Now increment the usage counters.
- Note: This assumes copy->*_nsteps == 1. */
+ /* Now increment the usage counters. Note: This assumes
+ copy->*_nsteps == 1. The current locale holds a reference, so it
+ is still there after acquiring the lock. */
+
+ __libc_lock_lock (__gconv_lock);
+
+ bool overflow = false;
if (copy->towc->__shlib_handle != NULL)
- ++copy->towc->__counter;
+ overflow |= __builtin_add_overflow (copy->towc->__counter, 1,
+ &copy->towc->__counter);
if (copy->tomb->__shlib_handle != NULL)
- ++copy->tomb->__counter;
+ overflow |= __builtin_add_overflow (copy->tomb->__counter, 1,
+ &copy->tomb->__counter);
+
+ __libc_lock_unlock (__gconv_lock);
+
+ if (overflow)
+ __libc_fatal ("\
+Fatal glibc error: gconv module reference counter overflow\n");
}
diff --git a/wcsmbs/wcsmbsload.h b/wcsmbs/wcsmbsload.h
index 8ad9fcadf9..10a10b961c 100644
--- a/wcsmbs/wcsmbsload.h
+++ b/wcsmbs/wcsmbsload.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifndef _WCSMBSLOAD_H
#define _WCSMBSLOAD_H 1
diff --git a/wcsmbs/wcsncase.c b/wcsmbs/wcsncase.c
index 2f149b2434..4712860e85 100644
--- a/wcsmbs/wcsncase.c
+++ b/wcsmbs/wcsncase.c
@@ -1,6 +1,6 @@
/* Compare at most N wide characters of two strings without taking care
for the case.
- Copyright (C) 1992-2018 Free Software Foundation, Inc.
+ Copyright (C) 1992-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
# include <config.h>
diff --git a/wcsmbs/wcsncase_l.c b/wcsmbs/wcsncase_l.c
index ed0b1a81a8..83ce3a9e5c 100644
--- a/wcsmbs/wcsncase_l.c
+++ b/wcsmbs/wcsncase_l.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define USE_IN_EXTENDED_LOCALE_MODEL 1
#include <wcsncase.c>
diff --git a/wcsmbs/wcsncat.c b/wcsmbs/wcsncat.c
index 8d4013b53d..94d7347175 100644
--- a/wcsmbs/wcsncat.c
+++ b/wcsmbs/wcsncat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <wchar.h>
@@ -26,54 +26,15 @@
wchar_t *
WCSNCAT (wchar_t *dest, const wchar_t *src, size_t n)
{
- wchar_t c;
- wchar_t * const s = dest;
+ wchar_t *ret = dest;
- /* Find the end of DEST. */
- do
- c = *dest++;
- while (c != L'\0');
+ /* Find the end of dest. */
+ dest += __wcslen (dest);
- /* Make DEST point before next character, so we can increment
- it while memory is read (wins on pipelined cpus). */
- dest -= 2;
+ size_t ds = __wcsnlen (src, n);
- if (n >= 4)
- {
- size_t n4 = n >> 2;
- do
- {
- c = *src++;
- *++dest = c;
- if (c == L'\0')
- return s;
- c = *src++;
- *++dest = c;
- if (c == L'\0')
- return s;
- c = *src++;
- *++dest = c;
- if (c == L'\0')
- return s;
- c = *src++;
- *++dest = c;
- if (c == L'\0')
- return s;
- } while (--n4 > 0);
- n &= 3;
- }
+ dest[ds] = L'\0';
+ __wmemcpy (dest, src, ds);
- while (n > 0)
- {
- c = *src++;
- *++dest = c;
- if (c == L'\0')
- return s;
- n--;
- }
-
- if (c != L'\0')
- *++dest = L'\0';
-
- return s;
+ return ret;
}
diff --git a/wcsmbs/wcsncmp.c b/wcsmbs/wcsncmp.c
index 5e8201243b..774ec33331 100644
--- a/wcsmbs/wcsncmp.c
+++ b/wcsmbs/wcsncmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <wchar.h>
diff --git a/wcsmbs/wcsncpy.c b/wcsmbs/wcsncpy.c
index e9735854d2..721b7dab97 100644
--- a/wcsmbs/wcsncpy.c
+++ b/wcsmbs/wcsncpy.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <wchar.h>
@@ -26,62 +26,10 @@
wchar_t *
__wcsncpy (wchar_t *dest, const wchar_t *src, size_t n)
{
- wint_t c;
- wchar_t *const s = dest;
-
- --dest;
-
- if (n >= 4)
- {
- size_t n4 = n >> 2;
-
- for (;;)
- {
- c = *src++;
- *++dest = c;
- if (c == L'\0')
- break;
- c = *src++;
- *++dest = c;
- if (c == L'\0')
- break;
- c = *src++;
- *++dest = c;
- if (c == L'\0')
- break;
- c = *src++;
- *++dest = c;
- if (c == L'\0')
- break;
- if (--n4 == 0)
- goto last_chars;
- }
- n = n - (dest - s) - 1;
- if (n == 0)
- return s;
- goto zero_fill;
- }
-
- last_chars:
- n &= 3;
- if (n == 0)
- return s;
-
- do
- {
- c = *src++;
- *++dest = c;
- if (--n == 0)
- return s;
- }
- while (c != L'\0');
-
- zero_fill:
- do
- *++dest = L'\0';
- while (--n > 0);
-
- return s;
+ size_t size = __wcsnlen (src, n);
+ if (size != n)
+ __wmemset (dest + size, L'\0', n - size);
+ return __wmemcpy (dest, src, size);
}
#ifndef WCSNCPY
weak_alias (__wcsncpy, wcsncpy)
diff --git a/wcsmbs/wcsnlen.c b/wcsmbs/wcsnlen.c
index d8f60a3b5a..17e004dcc0 100644
--- a/wcsmbs/wcsnlen.c
+++ b/wcsmbs/wcsnlen.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <wchar.h>
@@ -26,24 +26,10 @@
size_t
__wcsnlen (const wchar_t *s, size_t maxlen)
{
- size_t len = 0;
-
- while (maxlen > 0 && s[len] != L'\0')
- {
- ++len;
- if (--maxlen == 0 || s[len] == L'\0')
- return len;
- ++len;
- if (--maxlen == 0 || s[len] == L'\0')
- return len;
- ++len;
- if (--maxlen == 0 || s[len] == L'\0')
- return len;
- ++len;
- --maxlen;
- }
-
- return len;
+ const wchar_t *ret = __wmemchr (s, L'\0', maxlen);
+ if (ret)
+ maxlen = ret - s;
+ return maxlen;
}
#ifndef WCSNLEN
weak_alias (__wcsnlen, wcsnlen)
diff --git a/wcsmbs/wcsnrtombs.c b/wcsmbs/wcsnrtombs.c
index 93d51cae37..ed86a1ecee 100644
--- a/wcsmbs/wcsnrtombs.c
+++ b/wcsmbs/wcsnrtombs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <dlfcn.h>
diff --git a/wcsmbs/wcspbrk.c b/wcsmbs/wcspbrk.c
index 24f9da352f..882f875c48 100644
--- a/wcsmbs/wcspbrk.c
+++ b/wcsmbs/wcspbrk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <wchar.h>
diff --git a/wcsmbs/wcsrchr.c b/wcsmbs/wcsrchr.c
index f81c8f52d4..90fc3f5077 100644
--- a/wcsmbs/wcsrchr.c
+++ b/wcsmbs/wcsrchr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>
@@ -14,9 +14,10 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <wchar.h>
+#include <loop_unroll.h>
#ifndef WCSRCHR
# define WCSRCHR wcsrchr
@@ -26,12 +27,21 @@
wchar_t *
WCSRCHR (const wchar_t *wcs, const wchar_t wc)
{
- const wchar_t *retval = NULL;
+ wchar_t *retval = NULL;
- do
- if (*wcs == wc)
- retval = wcs;
- while (*wcs++ != L'\0');
+#define ITERATION(index) \
+ ({ \
+ if (*wcs == wc) \
+ retval = (wchar_t*) wcs; \
+ *wcs++ != L'\0'; \
+ })
- return (wchar_t *) retval;
+#ifndef UNROLL_NTIMES
+# define UNROLL_NTIMES 1
+#endif
+
+ while (1)
+ UNROLL_REPEAT (UNROLL_NTIMES, ITERATION);
+
+ return retval;
}
diff --git a/wcsmbs/wcsrtombs.c b/wcsmbs/wcsrtombs.c
index 9b85822464..27e59e4f46 100644
--- a/wcsmbs/wcsrtombs.c
+++ b/wcsmbs/wcsrtombs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <assert.h>
#include <dlfcn.h>
diff --git a/wcsmbs/wcsspn.c b/wcsmbs/wcsspn.c
index e6caafcc2b..7a2ac80b27 100644
--- a/wcsmbs/wcsspn.c
+++ b/wcsmbs/wcsspn.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <wchar.h>
diff --git a/wcsmbs/wcsstr.c b/wcsmbs/wcsstr.c
index fba0325bf3..9661cb3d97 100644
--- a/wcsmbs/wcsstr.c
+++ b/wcsmbs/wcsstr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* The original strstr() file contains the following comment:
diff --git a/wcsmbs/wcstod.c b/wcsmbs/wcstod.c
index b081c0ae16..74c1b3f33d 100644
--- a/wcsmbs/wcstod.c
+++ b/wcsmbs/wcstod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <locale.h>
diff --git a/wcsmbs/wcstod_l.c b/wcsmbs/wcstod_l.c
index 921c1fb229..2a33a0bdd1 100644
--- a/wcsmbs/wcstod_l.c
+++ b/wcsmbs/wcstod_l.c
@@ -1,5 +1,5 @@
/* Convert string representing a number to integer value, using given locale.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <locale.h>
diff --git a/wcsmbs/wcstod_nan.c b/wcsmbs/wcstod_nan.c
index 1423f3e8aa..9638a4a627 100644
--- a/wcsmbs/wcstod_nan.c
+++ b/wcsmbs/wcstod_nan.c
@@ -1,5 +1,5 @@
/* Convert string for NaN payload to corresponding NaN. Wide strings, double.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "../stdlib/strtod_nan_wide.h"
#include <math-type-macros-double.h>
diff --git a/wcsmbs/wcstof.c b/wcsmbs/wcstof.c
index f27c9a68a6..95f41c485f 100644
--- a/wcsmbs/wcstof.c
+++ b/wcsmbs/wcstof.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <locale.h>
diff --git a/wcsmbs/wcstof_l.c b/wcsmbs/wcstof_l.c
index 3c8c9a7e1e..74bda419d9 100644
--- a/wcsmbs/wcstof_l.c
+++ b/wcsmbs/wcstof_l.c
@@ -1,5 +1,5 @@
/* Convert string representing a number to integer value, using given locale.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <locale.h>
diff --git a/wcsmbs/wcstof_nan.c b/wcsmbs/wcstof_nan.c
index 96f2198667..fab41554f0 100644
--- a/wcsmbs/wcstof_nan.c
+++ b/wcsmbs/wcstof_nan.c
@@ -1,5 +1,5 @@
/* Convert string for NaN payload to corresponding NaN. Wide strings, float.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "../stdlib/strtod_nan_wide.h"
#include <math-type-macros-float.h>
diff --git a/wcsmbs/wcstok.c b/wcsmbs/wcstok.c
index 8fbf4af9d9..3ffac895a8 100644
--- a/wcsmbs/wcstok.c
+++ b/wcsmbs/wcstok.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <wchar.h>
#include <errno.h>
diff --git a/wcsmbs/wcstol.c b/wcsmbs/wcstol.c
index e9e09ca48c..308860a000 100644
--- a/wcsmbs/wcstol.c
+++ b/wcsmbs/wcstol.c
@@ -1,5 +1,5 @@
/* Function to parse a `long int' from text.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define USE_WIDE_CHAR 1
diff --git a/wcsmbs/wcstol_l.c b/wcsmbs/wcstol_l.c
index e6f9e8523e..1b08e52970 100644
--- a/wcsmbs/wcstol_l.c
+++ b/wcsmbs/wcstol_l.c
@@ -1,5 +1,5 @@
/* Convert string representing a number to integer value, using given locale.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __need_wchar_t
#include <stddef.h>
diff --git a/wcsmbs/wcstold.c b/wcsmbs/wcstold.c
index b6c8ccb3c4..054f14185c 100644
--- a/wcsmbs/wcstold.c
+++ b/wcsmbs/wcstold.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <locale.h>
diff --git a/wcsmbs/wcstold_l.c b/wcsmbs/wcstold_l.c
index 1002f25574..0bea84848c 100644
--- a/wcsmbs/wcstold_l.c
+++ b/wcsmbs/wcstold_l.c
@@ -1,5 +1,5 @@
/* Convert string representing a number to integer value, using given locale.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stddef.h>
#include <locale.h>
diff --git a/wcsmbs/wcstold_nan.c b/wcsmbs/wcstold_nan.c
index 66793ec459..5d28dd2443 100644
--- a/wcsmbs/wcstold_nan.c
+++ b/wcsmbs/wcstold_nan.c
@@ -1,6 +1,6 @@
/* Convert string for NaN payload to corresponding NaN. Wide strings,
long double.
- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <math.h>
diff --git a/wcsmbs/wcstoll.c b/wcsmbs/wcstoll.c
index d821d60b54..7e9e94ba0b 100644
--- a/wcsmbs/wcstoll.c
+++ b/wcsmbs/wcstoll.c
@@ -1,5 +1,5 @@
/* Function to parse a `long long int' from text.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define QUAD 1
diff --git a/wcsmbs/wcstoll_l.c b/wcsmbs/wcstoll_l.c
index bca3900d75..cf8aa73325 100644
--- a/wcsmbs/wcstoll_l.c
+++ b/wcsmbs/wcstoll_l.c
@@ -1,5 +1,5 @@
/* Convert string representing a number to integer value, using given locale.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __need_wchar_t
#include <stddef.h>
diff --git a/wcsmbs/wcstoul.c b/wcsmbs/wcstoul.c
index b2e1bc918c..5c53ac96b4 100644
--- a/wcsmbs/wcstoul.c
+++ b/wcsmbs/wcstoul.c
@@ -1,5 +1,5 @@
/* Function to parse an `unsigned long int' from text.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define UNSIGNED 1
diff --git a/wcsmbs/wcstoul_l.c b/wcsmbs/wcstoul_l.c
index 6bdf43a06d..a642c8a1a1 100644
--- a/wcsmbs/wcstoul_l.c
+++ b/wcsmbs/wcstoul_l.c
@@ -1,5 +1,5 @@
/* Convert string representing a number to integer value, using given locale.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __need_wchar_t
#include <stddef.h>
diff --git a/wcsmbs/wcstoull.c b/wcsmbs/wcstoull.c
index 6195b6f376..1129964088 100644
--- a/wcsmbs/wcstoull.c
+++ b/wcsmbs/wcstoull.c
@@ -1,5 +1,5 @@
/* Function to parse an `unsigned long long int' from text.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define QUAD 1
diff --git a/wcsmbs/wcstoull_l.c b/wcsmbs/wcstoull_l.c
index 8526d51266..9047e35243 100644
--- a/wcsmbs/wcstoull_l.c
+++ b/wcsmbs/wcstoull_l.c
@@ -1,5 +1,5 @@
/* Convert string representing a number to integer value, using given locale.
- Copyright (C) 1997-2018 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#define __need_wchar_t
#include <stddef.h>
diff --git a/wcsmbs/wcswidth.c b/wcsmbs/wcswidth.c
index bdbc171b86..a3461c7082 100644
--- a/wcsmbs/wcswidth.c
+++ b/wcsmbs/wcswidth.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "wcwidth.h"
diff --git a/wcsmbs/wcsxfrm.c b/wcsmbs/wcsxfrm.c
index d9c3489240..fb4f2537fd 100644
--- a/wcsmbs/wcsxfrm.c
+++ b/wcsmbs/wcsxfrm.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <wchar.h>
#include "../locale/coll-lookup.h"
diff --git a/wcsmbs/wcsxfrm_l.c b/wcsmbs/wcsxfrm_l.c
index 27f8e2a503..998638fb59 100644
--- a/wcsmbs/wcsxfrm_l.c
+++ b/wcsmbs/wcsxfrm_l.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <wchar.h>
#include "../locale/coll-lookup.h"
diff --git a/wcsmbs/wctob.c b/wcsmbs/wctob.c
index 906d68bd60..2c32ff8b22 100644
--- a/wcsmbs/wctob.c
+++ b/wcsmbs/wctob.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <dlfcn.h>
#include <gconv.h>
diff --git a/wcsmbs/wcwidth.c b/wcsmbs/wcwidth.c
index 26f6960e08..8393e56dda 100644
--- a/wcsmbs/wcwidth.c
+++ b/wcsmbs/wcwidth.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include "wcwidth.h"
diff --git a/wcsmbs/wcwidth.h b/wcsmbs/wcwidth.h
index 6fb3503196..91fb8d9fd5 100644
--- a/wcsmbs/wcwidth.h
+++ b/wcsmbs/wcwidth.h
@@ -1,5 +1,5 @@
/* Internal header containing implementation of wcwidth() function.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <wchar.h>
#include <wctype.h>
diff --git a/wcsmbs/wmemchr.c b/wcsmbs/wmemchr.c
index d01939355e..19bf2cc515 100644
--- a/wcsmbs/wmemchr.c
+++ b/wcsmbs/wmemchr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <wchar.h>
diff --git a/wcsmbs/wmemcmp.c b/wcsmbs/wmemcmp.c
index d6cfd692c0..5d2624ed33 100644
--- a/wcsmbs/wmemcmp.c
+++ b/wcsmbs/wmemcmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1996.
@@ -14,16 +14,16 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <wchar.h>
-#ifndef WMEMCMP
-# define WMEMCMP wmemcmp
+#ifdef WMEMCMP
+# define __wmemcmp WMEMCMP
#endif
int
-WMEMCMP (const wchar_t *s1, const wchar_t *s2, size_t n)
+__wmemcmp (const wchar_t *s1, const wchar_t *s2, size_t n)
{
wchar_t c1;
wchar_t c2;
@@ -81,3 +81,6 @@ WMEMCMP (const wchar_t *s1, const wchar_t *s2, size_t n)
return 0;
}
+#ifndef WMEMCMP
+weak_alias (__wmemcmp, wmemcmp)
+#endif
diff --git a/wcsmbs/wmemcpy.c b/wcsmbs/wmemcpy.c
index 4980c9ba52..83da4a0a91 100644
--- a/wcsmbs/wmemcpy.c
+++ b/wcsmbs/wmemcpy.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <wchar.h>
#include <string.h>
diff --git a/wcsmbs/wmemmove.c b/wcsmbs/wmemmove.c
index f22ff6fbb5..b5296205b5 100644
--- a/wcsmbs/wmemmove.c
+++ b/wcsmbs/wmemmove.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <wchar.h>
#include <string.h>
diff --git a/wcsmbs/wmempcpy.c b/wcsmbs/wmempcpy.c
index fae854b804..1bc04d1d94 100644
--- a/wcsmbs/wmempcpy.c
+++ b/wcsmbs/wmempcpy.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <wchar.h>
#include <string.h>
diff --git a/wcsmbs/wmemset.c b/wcsmbs/wmemset.c
index 330f5a30e4..122e97ca56 100644
--- a/wcsmbs/wmemset.c
+++ b/wcsmbs/wmemset.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <wchar.h>
diff --git a/wctype/Makefile b/wctype/Makefile
index 0f78654e30..7c7c1e3128 100644
--- a/wctype/Makefile
+++ b/wctype/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-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
@@ -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
-# <http://www.gnu.org/licenses/>.
+# <https://www.gnu.org/licenses/>.
#
# Sub-makefile for wctype portion of the library.
diff --git a/wctype/bits/wctype-wchar.h b/wctype/bits/wctype-wchar.h
index 03c20770af..f584669f35 100644
--- a/wctype/bits/wctype-wchar.h
+++ b/wctype/bits/wctype-wchar.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* ISO C99 Standard: 7.25
@@ -42,7 +42,7 @@ typedef unsigned long int wctype_t;
endian). We define the bit value interpretations here dependent on the
machine's byte order. */
-# include <endian.h>
+# include <bits/endian.h>
# if __BYTE_ORDER == __BIG_ENDIAN
# define _ISwbit(bit) (1 << (bit))
# else /* __BYTE_ORDER == __LITTLE_ENDIAN */
diff --git a/wctype/iswctype.c b/wctype/iswctype.c
index d9861bad21..7627120ef4 100644
--- a/wctype/iswctype.c
+++ b/wctype/iswctype.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>.
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <wctype.h>
diff --git a/wctype/iswctype_l.c b/wctype/iswctype_l.c
index b89edd61d7..bb9d13cb51 100644
--- a/wctype/iswctype_l.c
+++ b/wctype/iswctype_l.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <wctype.h>
diff --git a/wctype/test_wcfuncs.c b/wctype/test_wcfuncs.c
index c955eb4656..48d0b0c8bb 100644
--- a/wctype/test_wcfuncs.c
+++ b/wctype/test_wcfuncs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1999-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <stdlib.h>
diff --git a/wctype/test_wctype.c b/wctype/test_wctype.c
index b6b5f52821..727c3c22d9 100644
--- a/wctype/test_wctype.c
+++ b/wctype/test_wctype.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <stdio.h>
diff --git a/wctype/towctrans.c b/wctype/towctrans.c
index 505be6f4e7..a7f8edab97 100644
--- a/wctype/towctrans.c
+++ b/wctype/towctrans.c
@@ -1,5 +1,5 @@
/* Map wide character using given mapping.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <wctype.h>
diff --git a/wctype/towctrans_l.c b/wctype/towctrans_l.c
index 164694cfe7..f113af5eab 100644
--- a/wctype/towctrans_l.c
+++ b/wctype/towctrans_l.c
@@ -1,5 +1,5 @@
/* Map wide character using given mapping and locale.
- Copyright (C) 1996-2018 Free Software Foundation, Inc.
+ Copyright (C) 1996-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
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <wctype.h>
diff --git a/wctype/wcfuncs.c b/wctype/wcfuncs.c
index 3eb9f34191..29ab75c28f 100644
--- a/wctype/wcfuncs.c
+++ b/wctype/wcfuncs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <wctype.h>
diff --git a/wctype/wcfuncs_l.c b/wctype/wcfuncs_l.c
index 8befbd1e9a..8982f016f2 100644
--- a/wctype/wcfuncs_l.c
+++ b/wctype/wcfuncs_l.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <ctype.h>
#include <wctype.h>
diff --git a/wctype/wchar-lookup.h b/wctype/wchar-lookup.h
index ae96b29bff..a16e6ca4e1 100644
--- a/wctype/wchar-lookup.h
+++ b/wctype/wchar-lookup.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Bruno Haible <haible@clisp.cons.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <stdint.h>
diff --git a/wctype/wctrans.c b/wctype/wctrans.c
index 8396655a52..d0ab7d8f35 100644
--- a/wctype/wctrans.c
+++ b/wctype/wctrans.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <inttypes.h>
#include <string.h>
diff --git a/wctype/wctrans_l.c b/wctype/wctrans_l.c
index 25810782f5..c840892c3d 100644
--- a/wctype/wctrans_l.c
+++ b/wctype/wctrans_l.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <locale.h>
#include <string.h>
diff --git a/wctype/wctype.c b/wctype/wctype.c
index 8db169a932..6e19086ba8 100644
--- a/wctype/wctype.c
+++ b/wctype/wctype.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <endian.h>
#include <string.h>
diff --git a/wctype/wctype.h b/wctype/wctype.h
index 14bf160d7e..52b2834736 100644
--- a/wctype/wctype.h
+++ b/wctype/wctype.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
/*
* ISO C99 Standard: 7.25
diff --git a/wctype/wctype_l.c b/wctype/wctype_l.c
index 449fc51e2c..9afe058d1e 100644
--- a/wctype/wctype_l.c
+++ b/wctype/wctype_l.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 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
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
#include <endian.h>
#include <locale.h>